<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ext/-test-/proc/init.c, branch v2_4_0_preview2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>vm.c: super in bmethod</title>
<updated>2014-11-09T14:25:52+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2014-11-09T14:25:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=26ae6455014e0155cf37a3a0b77ed7323e15ed39'/>
<id>26ae6455014e0155cf37a3a0b77ed7323e15ed39</id>
<content type='text'>
* vm_eval.c (vm_call_super): allow bound proc method to call super
  method.
* vm_insnhelper.c (vm_yield_with_cfunc): push defined class and
  bound proc method entry to the control frame.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* vm_eval.c (vm_call_super): allow bound proc method to call super
  method.
* vm_insnhelper.c (vm_yield_with_cfunc): push defined class and
  bound proc method entry to the control frame.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
</feed>
_0'>ruby_2_0_0</option>
<option value='ruby_2_1'>ruby_2_1</option>
<option value='ruby_2_2'>ruby_2_2</option>
<option value='ruby_2_3'>ruby_2_3</option>
<option value='ruby_2_4'>ruby_2_4</option>
<option value='ruby_2_5'>ruby_2_5</option>
<option value='ruby_2_6'>ruby_2_6</option>
<option value='ruby_2_7'>ruby_2_7</option>
<option value='ruby_3_0'>ruby_3_0</option>
<option value='ruby_3_1'>ruby_3_1</option>
<option value='ruby_3_2'>ruby_3_2</option>
<option value='ruby_3_3'>ruby_3_3</option>
<option value='ruby_3_4'>ruby_3_4</option>
<option value='ruby_4_0'>ruby_4_0</option>
<option value='v1_0r'>v1_0r</option>
<option value='v1_1dev'>v1_1dev</option>
<option value='v1_1r'>v1_1r</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>The Ruby Programming Language</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/ruby.git/?h=v3_2_9'>summary</a><a href='/ruby.git/refs/?h=v3_2_9'>refs</a><a href='/ruby.git/log/?h=v3_2_9'>log</a><a href='/ruby.git/tree/?h=v3_2_9'>tree</a><a href='/ruby.git/commit/?h=v3_2_9'>commit</a><a class='active' href='/ruby.git/diff/?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>diff</a></td><td class='form'><form class='right' method='get' action='/ruby.git/log/'>
<input type='hidden' name='h' value='v3_2_9'/><input type='hidden' name='id2' value='6f91160fa9413e501239ab883dacc5064d0a2661'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='h' value='v3_2_9'/><input type='hidden' name='id2' value='6f91160fa9413e501239ab883dacc5064d0a2661'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><div class='diffstat-header'><a href='/ruby.git/diff/?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>Diffstat</a></div><table summary='diffstat' class='diffstat'><tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.appveyor.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.appveyor.yml</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.dir-locals.el?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.dir-locals.el</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.document</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/.editorconfig?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.editorconfig</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/.gdbinit?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.gdbinit</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.git-blame-ignore-revs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.git-blame-ignore-revs</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/.gitattributes?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.gitattributes</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/SECURITY.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/SECURITY.md</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/codeql/codeql-config.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/codeql/codeql-config.yml</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/dependabot.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/dependabot.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/baseruby.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/baseruby.yml</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/bundled_gems.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/bundled_gems.yml</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/check_dependencies.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/check_dependencies.yml</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/codeql-analysis.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/codeql-analysis.yml</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/compilers.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/compilers.yml</a></td><td class='right'>281</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/macos.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/macos.yml</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/mingw.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/mingw.yml</a></td><td class='right'>179</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/mjit-bindgen.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/mjit-bindgen.yml</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/mjit.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/mjit.yml</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/publish.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/publish.yml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/scorecards.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/scorecards.yml</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/spec_guards.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/spec_guards.yml</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/ubuntu.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/ubuntu.yml</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/wasm.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/wasm.yml</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/windows.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/windows.yml</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.github/workflows/yjit-ubuntu.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.github/workflows/yjit-ubuntu.yml</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/.gitignore?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.gitignore</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/.indent.pro?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.indent.pro</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.rdoc_options?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.rdoc_options</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/.rspec_parallel?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.rspec_parallel</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/.travis.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>.travis.yml</a></td><td class='right'>416</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/BSDL?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>BSDL</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/CONTRIBUTING.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>CONTRIBUTING.md</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/COPYING?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>COPYING</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/COPYING.ja?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>COPYING.ja</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/LEGAL?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>LEGAL</a></td><td class='right'>764</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/Makefile.in?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>Makefile.in</a></td><td class='right'>633</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/NEWS?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>NEWS</a></td><td class='right'>634</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/NEWS.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>NEWS.md</a></td><td class='right'>820</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/README.ja.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>README.ja.md</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/README.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>README.md</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/aclocal.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>aclocal.m4</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/addr2line.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>addr2line.c</a></td><td class='right'>835</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/addr2line.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>addr2line.h</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/appveyor.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>appveyor.yml</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/array.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>array.c</a></td><td class='right'>7174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.9%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 97.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/array.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>array.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ast.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ast.c</a></td><td class='right'>440</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ast.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ast.rb</a></td><td class='right'>276</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/autogen.sh?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>autogen.sh</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/basictest/test.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>basictest/test.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/README.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/README.md</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/app_aobench.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/app_aobench.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/app_erb.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/app_erb.yml</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/array_flatten.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/array_flatten.yml</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/array_intersection.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/array_intersection.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/array_max_float.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/array_max_float.yml</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/array_max_int.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/array_max_int.yml</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/array_max_str.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/array_max_str.yml</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/array_min.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/array_min.yml</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/array_sample.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/array_sample.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/array_sort_int.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/array_sort_int.yml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/attr_accessor.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/attr_accessor.yml</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/buffer_each.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/buffer_each.yml</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/buffer_get.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/buffer_get.yml</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/cgi_escape_html.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/cgi_escape_html.yml</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/complex_float_add.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/complex_float_add.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/complex_float_div.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/complex_float_div.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/complex_float_mul.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/complex_float_mul.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/complex_float_new.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/complex_float_new.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/complex_float_power.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/complex_float_power.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/complex_float_sub.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/complex_float_sub.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/constant_invalidation.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/constant_invalidation.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/enum_lazy_flat_map.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/enum_lazy_flat_map.yml</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/enum_lazy_zip.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/enum_lazy_zip.yml</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/enum_minmax.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/enum_minmax.yml</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/enum_sort.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/enum_sort.yml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/enum_tally.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/enum_tally.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/erb_escape_html.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/erb_escape_html.yml</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/benchmark/fiber_chain.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/fiber_chain.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/fiber_chain.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/fiber_chain.yml</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/fiber_locals.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/fiber_locals.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/float_methods.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/float_methods.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/float_neg_posi.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/float_neg_posi.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/float_to_s.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/float_to_s.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/hash_aref_array.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/hash_aref_array.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/hash_defaults.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/hash_defaults.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/hash_dup.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/hash_dup.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/hash_first.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/hash_first.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/io_write.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/io_write.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/irb_color.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/irb_color.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/irb_exec.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/irb_exec.yml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/iseq_load_from_binary.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/iseq_load_from_binary.yml</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/ivar_extend.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/ivar_extend.yml</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/kernel_clone.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/kernel_clone.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/kernel_float.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/kernel_float.yml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/kernel_tap.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/kernel_tap.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/kernel_then.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/kernel_then.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/keyword_arguments.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/keyword_arguments.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/lib/benchmark_driver/runner/mjit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/lib/benchmark_driver/runner/mjit.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/lib/benchmark_driver/runner/peak.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/lib/benchmark_driver/runner/peak.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/lib/benchmark_driver/runner/ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/lib/benchmark_driver/runner/ractor.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/benchmark/lib/load.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/lib/load.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/marshal_dump_load_integer.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/marshal_dump_load_integer.yml</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/masgn.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/masgn.yml</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/match_gt4.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/match_gt4.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/match_small.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/match_small.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/method_bind_call.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/method_bind_call.yml</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/mjit_exivar.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/mjit_exivar.yml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/mjit_integer.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/mjit_integer.yml</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/mjit_kernel.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/mjit_kernel.yml</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/mjit_leave.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/mjit_leave.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/mjit_opt_cc_insns.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/mjit_opt_cc_insns.yml</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/mjit_struct_aref.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/mjit_struct_aref.yml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/module_eqq.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/module_eqq.yml</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/nil_p.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/nil_p.yml</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/nilclass.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/nilclass.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/num_zero_p.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/num_zero_p.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/numeric_methods.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/numeric_methods.yml</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/object_allocate.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/object_allocate.yml</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/objspace_dump_all.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/objspace_dump_all.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/other-lang/fact.py?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/other-lang/fact.py</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/pm_array.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/pm_array.yml</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/ractor_const.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/ractor_const.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/ractor_float_to_s.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/ractor_float_to_s.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/range_last.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/range_last.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/range_min.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/range_min.yml</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/realpath.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/realpath.yml</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/require.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/require.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/require_thread.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/require_thread.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/so_ackermann.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_ackermann.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/so_array.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_array.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/so_concatenate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_concatenate.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/so_count_words.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_count_words.yml</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/so_exception.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_exception.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/so_matrix.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_matrix.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/so_nbody.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_nbody.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/so_nested_loop.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_nested_loop.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/so_object.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_object.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/string_capitalize.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/string_capitalize.yml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/string_casecmp.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/string_casecmp.yml</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/string_casecmp_p.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/string_casecmp_p.yml</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/string_concat.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/string_concat.yml</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/string_downcase.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/string_downcase.yml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/string_slice.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/string_slice.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/string_split.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/string_split.yml</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/string_swapcase.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/string_swapcase.yml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/string_upcase.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/string_upcase.yml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/time_at.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/time_at.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/time_new.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/time_new.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/time_now.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/time_now.yml</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/time_parse.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/time_parse.yml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/time_strptime.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/time_strptime.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_attr_ivar.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_attr_ivar.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_attr_ivar_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_attr_ivar_set.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_block.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_block.yml</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_blockparam.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_blockparam.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_blockparam_call.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_blockparam_call.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_blockparam_pass.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_blockparam_pass.yml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_blockparam_yield.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_blockparam_yield.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_const.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_const.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_ensure.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_ensure.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_float_simple.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_float_simple.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_gc_short_lived.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_short_lived.yml</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_gc_short_with_complex_long.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_short_with_complex_long.yml</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_gc_short_with_long.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_short_with_long.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_gc_short_with_symbol.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_short_with_symbol.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_gc_wb_ary.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_wb_ary.yml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_gc_wb_ary_promoted.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_wb_ary_promoted.yml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_gc_wb_obj.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_wb_obj.yml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_gc_wb_obj_promoted.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_wb_obj_promoted.yml</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_ivar.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_ivar.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_ivar_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_ivar_set.yml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_length.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_length.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_lvar_init.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_lvar_init.yml</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_lvar_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_lvar_set.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_neq.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_neq.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_not.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_not.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_rescue.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_rescue.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_simplereturn.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_simplereturn.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_swap.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_swap.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm1_yield.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_yield.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_array.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_array.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_bigarray.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_bigarray.yml</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_bighash.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_bighash.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_case.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_case.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_case_lit.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_case_lit.yml</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_defined_method.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_defined_method.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_dstr.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_dstr.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_eval.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_eval.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_fiber_switch.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_fiber_switch.yml</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_freezestring.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_freezestring.yml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_method.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_method.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_method_missing.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_method_missing.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_method_with_block.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_method_with_block.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_module_ann_const_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_module_ann_const_set.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_module_const_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_module_const_set.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_mutex.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_mutex.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_newlambda.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_newlambda.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_poly_method.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_poly_method.yml</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_poly_method_ov.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_poly_method_ov.yml</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_poly_singleton.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_poly_singleton.yml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_proc.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_proc.yml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_raise1.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_raise1.yml</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_raise2.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_raise2.yml</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_regexp.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_regexp.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_send.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_send.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_string_literal.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_string_literal.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_struct_big_aref_hi.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_aref_hi.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_struct_big_aref_lo.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_aref_lo.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_struct_big_aset.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_aset.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_struct_big_href_hi.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_href_hi.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_struct_big_href_lo.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_href_lo.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_struct_big_hset.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_hset.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_struct_small_aref.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_small_aref.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_struct_small_aset.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_small_aset.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_struct_small_href.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_small_href.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_struct_small_hset.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_small_hset.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_super.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_super.yml</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_unif1.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_unif1.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm2_zsuper.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_zsuper.yml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_array.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_array.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_attr_ivar.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_attr_ivar.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_attr_ivar_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_attr_ivar_set.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/benchmark/vm_backtrace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_backtrace.rb</a> (renamed from benchmark/vm3_backtrace.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_bigarray.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_bigarray.yml</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_bighash.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_bighash.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_block.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_block.yml</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_block_handler.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_block_handler.yml</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_blockparam.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_blockparam.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_blockparam_call.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_blockparam_call.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_blockparam_pass.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_blockparam_pass.yml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_blockparam_yield.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_blockparam_yield.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_case.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_case.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_case_classes.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_case_classes.yml</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_case_lit.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_case_lit.yml</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/benchmark/vm_clearmethodcache.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_clearmethodcache.rb</a> (renamed from benchmark/vm3_clearmethodcache.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_const.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_const.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_cvar.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_cvar.yml</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_defined_method.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_defined_method.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_dstr.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_dstr.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_dstr_ary.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_dstr_ary.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_dstr_bool.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_dstr_bool.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_dstr_class_module.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_dstr_class_module.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_dstr_digit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_dstr_digit.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_dstr_int.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_dstr_int.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_dstr_nil.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_dstr_nil.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_dstr_obj.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_dstr_obj.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_dstr_obj_def.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_dstr_obj_def.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_dstr_str.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_dstr_str.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_dstr_sym.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_dstr_sym.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ensure.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ensure.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_eval.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_eval.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_fiber_allocate.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_fiber_allocate.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_fiber_count.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_fiber_count.yml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_fiber_reuse.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_fiber_reuse.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_fiber_reuse_gc.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_fiber_reuse_gc.yml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_fiber_switch.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_fiber_switch.yml</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_float_simple.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_float_simple.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_freezeobj.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_freezeobj.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_freezestring.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_freezestring.yml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/benchmark/vm_gc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc.rb</a> (renamed from benchmark/vm3_gc.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/benchmark/vm_gc_old_full.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc_old_full.rb</a> (renamed from benchmark/vm3_gc_old_full.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/benchmark/vm_gc_old_immediate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc_old_immediate.rb</a> (renamed from benchmark/vm3_gc_old_immediate.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/benchmark/vm_gc_old_lazy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc_old_lazy.rb</a> (renamed from benchmark/vm3_gc_old_lazy.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_gc_short_lived.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc_short_lived.yml</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_gc_short_with_complex_long.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc_short_with_complex_long.yml</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_gc_short_with_long.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc_short_with_long.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_gc_short_with_symbol.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc_short_with_symbol.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_gc_wb_ary.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc_wb_ary.yml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_gc_wb_ary_promoted.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc_wb_ary_promoted.yml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_gc_wb_obj.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc_wb_obj.yml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_gc_wb_obj_promoted.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_gc_wb_obj_promoted.yml</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_iclass_super.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_iclass_super.yml</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_embedded_obj_init.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_embedded_obj_init.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_extended_obj_init.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_extended_obj_init.yml</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_generic_get.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_generic_get.yml</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_generic_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_generic_set.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_get.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_get.yml</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_get_unintialized.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_get_unintialized.yml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_lazy_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_lazy_set.yml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_of_class.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_of_class.yml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_of_class_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_of_class_set.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_set.yml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_set_on_instance.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_set_on_instance.yml</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_ivar_set_subclass.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_ivar_set_subclass.yml</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_length.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_length.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_lvar_cond_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_lvar_cond_set.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_lvar_init.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_lvar_init.yml</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_lvar_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_lvar_set.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_method.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_method.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_method_missing.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_method_missing.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_method_with_block.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_method_with_block.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_module_ann_const_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_module_ann_const_set.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_module_const_set.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_module_const_set.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_mutex.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_mutex.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_neq.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_neq.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_newlambda.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_newlambda.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_not.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_not.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_poly_method.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_poly_method.yml</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_poly_method_ov.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_poly_method_ov.yml</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_poly_same_method.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_poly_same_method.yml</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_poly_singleton.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_poly_singleton.yml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_proc.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_proc.yml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_raise1.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_raise1.yml</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_raise2.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_raise2.yml</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_regexp.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_regexp.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_rescue.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_rescue.yml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_send.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_send.yml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_send_cfunc.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_send_cfunc.yml</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_simplereturn.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_simplereturn.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_string_literal.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_string_literal.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_struct_big_aref_hi.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_struct_big_aref_hi.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_struct_big_aref_lo.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_struct_big_aref_lo.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_struct_big_aset.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_struct_big_aset.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_struct_big_href_hi.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_struct_big_href_hi.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_struct_big_href_lo.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_struct_big_href_lo.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_struct_big_hset.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_struct_big_hset.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_struct_small_aref.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_struct_small_aref.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_struct_small_aset.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_struct_small_aset.yml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_struct_small_href.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_struct_small_href.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_struct_small_hset.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_struct_small_hset.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_super.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_super.yml</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_swap.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_swap.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_thread_alive_check.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_alive_check.yml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/benchmark/vm_thread_alive_check1.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_alive_check1.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/vm_thread_condvar1.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_condvar1.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/vm_thread_condvar2.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_condvar2.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/vm_thread_pass.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_pass.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/vm_thread_pass_flood.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_pass_flood.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/benchmark/vm_thread_queue.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_queue.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_thread_sleep.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_sleep.yml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_unif1.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_unif1.yml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_yield.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_yield.yml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/vm_zsuper.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_zsuper.yml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bignum.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bignum.c</a></td><td class='right'>1496</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/bin/bundle?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/bundle</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/bin/bundler?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/bundler</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/bin/erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/erb</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/bin/gem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/gem</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/bin/irb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/irb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/bin/rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/rdoc</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/bin/ri?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/ri</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/pending.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/pending.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/runner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/runner.rb</a></td><td class='right'>836</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_attr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_attr.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_autoload.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_autoload.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_constant_cache.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_constant_cache.rb</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_eval.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_eval.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_fiber.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_fiber.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_flow.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_flow.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_insns.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_insns.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_io.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_io.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_jump.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_jump.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_literal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_literal.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_literal_suffix.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_literal_suffix.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_method.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_objectspace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_objectspace.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_proc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_proc.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_ractor.rb</a></td><td class='right'>1628</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_syntax.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_syntax.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/bootstraptest/test_thread.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_thread.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_yjit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_yjit.rb</a></td><td class='right'>3530</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_yjit_30k_ifelse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_yjit_30k_ifelse.rb</a></td><td class='right'>241023</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 100.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 0.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_yjit_30k_methods.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_yjit_30k_methods.rb</a></td><td class='right'>121018</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 50.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 49.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/bootstraptest/test_yjit_rust_port.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_yjit_rust_port.rb</a></td><td class='right'>422</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/builtin.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>builtin.c</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/builtin.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>builtin.h</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ccan/build_assert/build_assert.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ccan/build_assert/build_assert.h</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ccan/check_type/check_type.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ccan/check_type/check_type.h</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ccan/container_of/container_of.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ccan/container_of/container_of.h</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ccan/list/list.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ccan/list/list.h</a></td><td class='right'>597</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ccan/str/str.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ccan/str/str.h</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/class.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>class.c</a></td><td class='right'>2159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/common.mk?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>common.mk</a></td><td class='right'>16377</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.5%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 93.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/compar.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>compar.c</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/compile.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>compile.c</a></td><td class='right'>15371</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.9%;'/><td class='rem' style='width: 2.5%;'/><td class='none' style='width: 93.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/complex.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>complex.c</a></td><td class='right'>1224</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/configure.ac?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>configure.ac</a></td><td class='right'>2288</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/constant.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>constant.h</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/cont.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>cont.c</a></td><td class='right'>3516</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/amd64/Context.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/amd64/Context.S</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/amd64/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/amd64/Context.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/arm32/Context.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/arm32/Context.S</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/arm32/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/arm32/Context.h</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/arm64/Context.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/arm64/Context.S</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/arm64/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/arm64/Context.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/asyncify/Context.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/asyncify/Context.c</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/asyncify/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/asyncify/Context.h</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/emscripten/Context.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/emscripten/Context.c</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/emscripten/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/emscripten/Context.h</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/ppc/Context.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/ppc/Context.S</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/ppc/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/ppc/Context.h</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/ppc64/Context.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/ppc64/Context.S</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/ppc64/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/ppc64/Context.h</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/ppc64le/Context.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/ppc64le/Context.S</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/ppc64le/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/ppc64le/Context.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/pthread/Context.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/pthread/Context.c</a></td><td class='right'>272</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/pthread/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/pthread/Context.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/riscv64/Context.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/riscv64/Context.S</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/riscv64/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/riscv64/Context.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/ucontext/Context.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/ucontext/Context.c</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/ucontext/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/ucontext/Context.h</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/universal/Context.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/universal/Context.S</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/universal/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/universal/Context.h</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/coroutine/win32/Context.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/win32/Context.S</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/win32/Context.asm?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/win32/Context.asm</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/win32/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/win32/Context.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/win64/Context.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/win64/Context.S</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/win64/Context.asm?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/win64/Context.asm</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/win64/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/win64/Context.h</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/x86/Context.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/x86/Context.S</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coroutine/x86/Context.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/x86/Context.h</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/coverage/README?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>coverage/README</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/cygwin/GNUmakefile.in?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>cygwin/GNUmakefile.in</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/darray.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>darray.h</a></td><td class='right'>179</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/debug.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>debug.c</a></td><td class='right'>534</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/debug_counter.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>debug_counter.c</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/debug_counter.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>debug_counter.h</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/defs/gmake.mk?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>defs/gmake.mk</a></td><td class='right'>337</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/defs/id.def?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>defs/id.def</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/defs/keywords?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>defs/keywords</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/defs/lex.c.src?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>defs/lex.c.src</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/defs/separated_version.mk?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>defs/separated_version.mk</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/dir.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>dir.c</a></td><td class='right'>2562</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/dir.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>dir.rb</a></td><td class='right'>314</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/dln.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>dln.c</a></td><td class='right'>1426</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/dln.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>dln.h</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/dln_find.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>dln_find.c</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/dmyenc.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>dmyenc.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/.document</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/ChangeLog-0.60_to_1.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-0.60_to_1.1</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/ChangeLog-1.8.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-1.8.0</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/ChangeLog-1.9.3?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-1.9.3</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/ChangeLog-2.0.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-2.0.0</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/ChangeLog-2.1.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-2.1.0</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/ChangeLog-2.3.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-2.3.0</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/ChangeLog-2.4.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-2.4.0</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/ChangeLog-2016?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-2016</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/ChangeLog-YARV?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-YARV</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/NEWS-1.9.2?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-1.9.2</a></td><td class='right'>509</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/NEWS-2.0.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.0.0</a></td><td class='right'>530</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/NEWS-2.1.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.1.0</a></td><td class='right'>376</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/NEWS-2.2.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.2.0</a></td><td class='right'>361</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/NEWS-2.3.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.3.0</a></td><td class='right'>404</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/NEWS-2.4.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.4.0</a></td><td class='right'>397</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/NEWS-2.5.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.5.0</a></td><td class='right'>567</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/doc/NEWS/NEWS-1.8.7?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-1.8.7</a> (renamed from doc/NEWS-1.8.7)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/doc/NEWS/NEWS-1.9.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-1.9.1</a> (renamed from doc/NEWS-1.9.1)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS/NEWS-1.9.2?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-1.9.2</a></td><td class='right'>509</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/doc/NEWS/NEWS-1.9.3?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-1.9.3</a> (renamed from doc/NEWS-1.9.3)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS/NEWS-2.0.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-2.0.0</a></td><td class='right'>529</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS/NEWS-2.1.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-2.1.0</a></td><td class='right'>376</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS/NEWS-2.2.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-2.2.0</a></td><td class='right'>359</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS/NEWS-2.3.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-2.3.0</a></td><td class='right'>384</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS/NEWS-2.4.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-2.4.0</a></td><td class='right'>399</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS/NEWS-2.5.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-2.5.0</a></td><td class='right'>565</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS/NEWS-2.6.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-2.6.0</a></td><td class='right'>662</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS/NEWS-2.7.0?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-2.7.0</a></td><td class='right'>845</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS/NEWS-3.0.0.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-3.0.0.md</a></td><td class='right'>829</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/NEWS/NEWS-3.1.0.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS/NEWS-3.1.0.md</a></td><td class='right'>660</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/bsearch.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/bsearch.rdoc</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/bug_triaging.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/bug_triaging.rdoc</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/case_mapping.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/case_mapping.rdoc</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/character_selectors.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/character_selectors.rdoc</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/command_injection.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/command_injection.rdoc</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/contributing.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/contributing.md</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/contributing.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/contributing.rdoc</a></td><td class='right'>459</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/contributing/building_ruby.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/contributing/building_ruby.md</a></td><td class='right'>172</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/contributing/documentation_guide.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/contributing/documentation_guide.md</a></td><td class='right'>435</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/contributing/making_changes_to_ruby.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/contributing/making_changes_to_ruby.md</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/contributing/making_changes_to_stdlibs.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/contributing/making_changes_to_stdlibs.md</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/contributing/reporting_issues.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/contributing/reporting_issues.md</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/contributing/testing_ruby.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/contributing/testing_ruby.md</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/contributors.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/contributors.rdoc</a></td><td class='right'>793</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/arguments/io.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/arguments/io.rdoc</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/common/col_sep.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/common/col_sep.rdoc</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/common/quote_char.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/common/quote_char.rdoc</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/common/row_sep.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/common/row_sep.rdoc</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/generating/force_quotes.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/generating/force_quotes.rdoc</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/generating/quote_empty.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/generating/quote_empty.rdoc</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/generating/write_converters.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/generating/write_converters.rdoc</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/generating/write_empty_value.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/generating/write_empty_value.rdoc</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/generating/write_headers.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/generating/write_headers.rdoc</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/generating/write_nil_value.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/generating/write_nil_value.rdoc</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/converters.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/converters.rdoc</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/empty_value.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/empty_value.rdoc</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/field_size_limit.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/field_size_limit.rdoc</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/header_converters.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/header_converters.rdoc</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/headers.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/headers.rdoc</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/liberal_parsing.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/liberal_parsing.rdoc</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/nil_value.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/nil_value.rdoc</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/return_headers.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/return_headers.rdoc</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/skip_blanks.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/skip_blanks.rdoc</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/skip_lines.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/skip_lines.rdoc</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/strip.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/strip.rdoc</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/options/parsing/unconverted_fields.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/options/parsing/unconverted_fields.rdoc</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/recipes/filtering.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/recipes/filtering.rdoc</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/recipes/generating.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/recipes/generating.rdoc</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/recipes/parsing.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/recipes/parsing.rdoc</a></td><td class='right'>543</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/csv/recipes/recipes.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/csv/recipes/recipes.rdoc</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/date/calendars.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/date/calendars.rdoc</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/dig_methods.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/dig_methods.rdoc</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/dtrace_probes.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/dtrace_probes.rdoc</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/encodings.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/encodings.rdoc</a></td><td class='right'>479</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/etc.rd.ja?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/etc.rd.ja</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/examples/files.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/examples/files.rdoc</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/extension.ja.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/extension.ja.rdoc</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/extension.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/extension.rdoc</a></td><td class='right'>382</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/fiber.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/fiber.md</a></td><td class='right'>232</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/format_specifications.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/format_specifications.rdoc</a></td><td class='right'>348</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/globals.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/globals.rdoc</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/implicit_conversion.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/implicit_conversion.rdoc</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/irb/irb.rd.ja?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/irb/irb.rd.ja</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/keywords.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/keywords.rdoc</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/maintainers.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/maintainers.rdoc</a></td><td class='right'>442</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/marshal.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/marshal.rdoc</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/matchdata/begin.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/matchdata/begin.rdoc</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/matchdata/end.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/matchdata/end.rdoc</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/matchdata/offset.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/matchdata/offset.rdoc</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/math/math.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/math/math.rdoc</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/memory_view.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/memory_view.md</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/mjit/mjit.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/mjit/mjit.md</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/net-http/examples.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/net-http/examples.rdoc</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/net-http/included_getters.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/net-http/included_getters.rdoc</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/.document</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/argument_converters.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/argument_converters.rdoc</a></td><td class='right'>380</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/creates_option.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/creates_option.rdoc</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/option_params.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/option_params.rdoc</a></td><td class='right'>509</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/argument_keywords.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/argument_keywords.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/argument_strings.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/argument_strings.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/argv.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/argv.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/array.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/array.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/basic.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/basic.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/block.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/block.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/collected_options.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/collected_options.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/custom_converter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/custom_converter.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/date.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/date.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/datetime.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/datetime.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/decimal_integer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/decimal_integer.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/decimal_numeric.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/decimal_numeric.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/default_values.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/default_values.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/descriptions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/descriptions.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/explicit_array_values.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/explicit_array_values.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/explicit_hash_values.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/explicit_hash_values.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/false_class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/false_class.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/float.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/float.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/help.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/help.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/help_banner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/help_banner.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/help_format.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/help_format.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/help_program_name.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/help_program_name.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/integer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/integer.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/long_names.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/long_names.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/long_optional.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/long_optional.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/long_required.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/long_required.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/long_simple.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/long_simple.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/long_with_negation.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/long_with_negation.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/match_converter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/match_converter.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/matched_values.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/matched_values.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/method.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/missing_options.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/missing_options.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/mixed_names.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/mixed_names.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/name_abbrev.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/name_abbrev.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/no_abbreviation.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/no_abbreviation.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/numeric.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/numeric.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/object.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/object.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/octal_integer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/octal_integer.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/optional_argument.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/optional_argument.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/parse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/parse.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/parse_bang.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/parse_bang.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/proc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/proc.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/regexp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/regexp.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/required_argument.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/required_argument.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/shellwords.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/shellwords.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/short_names.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/short_names.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/short_optional.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/short_optional.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/short_range.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/short_range.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/short_required.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/short_required.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/short_simple.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/short_simple.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/string.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/string.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/terminator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/terminator.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/time.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/time.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/true_class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/true_class.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/ruby/uri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/ruby/uri.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/optparse/tutorial.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/optparse/tutorial.rdoc</a></td><td class='right'>835</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/packed_data.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/packed_data.rdoc</a></td><td class='right'>590</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/ractor.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ractor.md</a></td><td class='right'>952</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/rdoc/markup_reference.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/rdoc/markup_reference.rb</a></td><td class='right'>1257</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/regexp.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/regexp.rdoc</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/security.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/security.rdoc</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/doc/shell.rd.ja?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/shell.rd.ja</a></td><td class='right'>335</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/signals.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/signals.rdoc</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/standard_library.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/standard_library.rdoc</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/strftime_formatting.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/strftime_formatting.rdoc</a></td><td class='right'>527</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/b.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/b.rdoc</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/bytes.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/bytes.rdoc</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/bytesize.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/bytesize.rdoc</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/center.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/center.rdoc</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/chars.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/chars.rdoc</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/chomp.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/chomp.rdoc</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/chop.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/chop.rdoc</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/codepoints.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/codepoints.rdoc</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/delete_prefix.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/delete_prefix.rdoc</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/delete_suffix.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/delete_suffix.rdoc</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/each_byte.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/each_byte.rdoc</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/each_char.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/each_char.rdoc</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/each_codepoint.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/each_codepoint.rdoc</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/each_grapheme_cluster.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/each_grapheme_cluster.rdoc</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/each_line.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/each_line.rdoc</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/end_with_p.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/end_with_p.rdoc</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/force_encoding.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/force_encoding.rdoc</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/grapheme_clusters.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/grapheme_clusters.rdoc</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/index.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/index.rdoc</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/length.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/length.rdoc</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/ljust.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/ljust.rdoc</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/new.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/new.rdoc</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/ord.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/ord.rdoc</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/partition.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/partition.rdoc</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/rjust.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/rjust.rdoc</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/rpartition.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/rpartition.rdoc</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/scrub.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/scrub.rdoc</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/split.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/split.rdoc</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/start_with_p.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/start_with_p.rdoc</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/string/sum.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/string/sum.rdoc</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/symbol/casecmp.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/symbol/casecmp.rdoc</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/symbol/casecmp_p.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/symbol/casecmp_p.rdoc</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/syntax.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax.rdoc</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/syntax/assignment.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/assignment.rdoc</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/syntax/calling_methods.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/calling_methods.rdoc</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/comments.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/comments.rdoc</a></td><td class='right'>253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/syntax/control_expressions.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/control_expressions.rdoc</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/syntax/exceptions.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/exceptions.rdoc</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/syntax/literals.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/literals.rdoc</a></td><td class='right'>294</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/syntax/methods.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/methods.rdoc</a></td><td class='right'>239</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/syntax/miscellaneous.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/miscellaneous.rdoc</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/syntax/modules_and_classes.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/modules_and_classes.rdoc</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/syntax/pattern_matching.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/pattern_matching.rdoc</a></td><td class='right'>540</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/syntax/precedence.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/precedence.rdoc</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/doc/syntax/refinements.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/refinements.rdoc</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/timezones.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/timezones.rdoc</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/transcode.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/transcode.rdoc</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/yjit/yjit.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/yjit/yjit.md</a></td><td class='right'>417</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/yjit/yjit_hacking.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/yjit/yjit_hacking.md</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/Makefile.in?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/Makefile.in</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/ascii.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/ascii.c</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/cesu_8.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/cesu_8.c</a></td><td class='right'>469</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/cp949.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/cp949.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/depend</a></td><td class='right'>10206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/encdb.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/encdb.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/encinit.c.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/encinit.c.erb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/euc_jp.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/euc_jp.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/gb2312.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/gb2312.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/iso_8859_11.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/iso_8859_11.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/iso_8859_6.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/iso_8859_6.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/iso_8859_8.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/iso_8859_8.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/jis/props.h.blt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/jis/props.h.blt</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/jis/props.kwd?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/jis/props.kwd</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/jis/props.src?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/jis/props.src</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/enc/make_encmake.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/make_encmake.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/shift_jis.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/shift_jis.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/trans/JIS/JISX0212%25UCS.src?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/JIS/JISX0212%UCS.src</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/trans/JIS/UCS%25JISX0212.src?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/JIS/UCS%JISX0212.src</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/cesu_8.trans?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/cesu_8.trans</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/trans/escape.trans?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/escape.trans</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/trans/ibm720-tbl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/ibm720-tbl.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/trans/newline.trans?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/newline.trans</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/trans/single_byte.trans?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/single_byte.trans</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/trans/transdb.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/transdb.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/unicode.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/unicode.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/enc/unicode/11.0.0/casefold.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/unicode/11.0.0/casefold.h</a></td><td class='right'>7485</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.1%;'/><td class='none' style='width: 96.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/enc/unicode/11.0.0/name2ctype.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/unicode/11.0.0/name2ctype.h</a></td><td class='right'>39943</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 16.6%;'/><td class='none' style='width: 83.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/unicode/15.0.0/casefold.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/unicode/15.0.0/casefold.h</a></td><td class='right'>7629</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/unicode/15.0.0/name2ctype.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/unicode/15.0.0/name2ctype.h</a></td><td class='right'>45690</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 19.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 81.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/enc/unicode/case-folding.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/unicode/case-folding.rb</a></td><td class='right'>418</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/utf_16_32.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/utf_16_32.h</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/windows_1250.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1250.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/windows_1251.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1251.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/windows_1252.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1252.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/windows_1253.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1253.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/windows_1254.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1254.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/windows_1257.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1257.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/windows_31j.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_31j.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enc/x_emoji.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/x_emoji.h</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/encindex.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>encindex.h</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/encoding.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>encoding.c</a></td><td class='right'>1237</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enum.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enum.c</a></td><td class='right'>3298</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/enumerator.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>enumerator.c</a></td><td class='right'>2510</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/error.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>error.c</a></td><td class='right'>1978</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/eval.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>eval.c</a></td><td class='right'>1687</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/eval_error.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>eval_error.c</a></td><td class='right'>587</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/eval_intern.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>eval_intern.h</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/eval_jump.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>eval_jump.c</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/RUBY_ALIGNOF/c.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/RUBY_ALIGNOF/c.c</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/RUBY_ALIGNOF/cpp.cpp?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/RUBY_ALIGNOF/cpp.cpp</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/RUBY_ALIGNOF/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/RUBY_ALIGNOF/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/RUBY_ALIGNOF/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/RUBY_ALIGNOF/extconf.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/abi/abi.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/abi/abi.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/abi/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/abi/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/arith_seq/beg_len_step/beg_len_step.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/arith_seq/beg_len_step/beg_len_step.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/arith_seq/beg_len_step/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/arith_seq/beg_len_step/depend</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/arith_seq/beg_len_step/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/arith_seq/beg_len_step/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/arith_seq/extract/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/arith_seq/extract/depend</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/array/concat/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/array/concat/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/array/concat/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/array/concat/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/array/concat/to_ary_concat.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/array/concat/to_ary_concat.c</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/array/resize/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/array/resize/depend</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/array/resize/resize.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/array/resize/resize.c</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/auto_ext.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/auto_ext.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/bignum/big2str.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/big2str.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/bignum/bigzero.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/bigzero.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/bignum/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/depend</a></td><td class='right'>1093</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/bignum/div.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/div.c</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/bignum/intpack.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/intpack.c</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/bignum/mul.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/mul.c</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/bignum/str2big.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/str2big.c</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug-14834/bug-14384.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bug-14834/bug-14384.c</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug-14834/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bug-14834/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug-14834/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bug-14834/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/bug-3571/bug.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bug-3571/bug.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug-3571/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bug-3571/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug-5832/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bug-5832/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/bug_reporter/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bug_reporter/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/class/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/class/depend</a></td><td class='right'>300</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/cxxanyargs/cxxanyargs.cpp?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/cxxanyargs/cxxanyargs.cpp</a></td><td class='right'>961</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/cxxanyargs/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/cxxanyargs/depend</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/cxxanyargs/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/cxxanyargs/extconf.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/cxxanyargs/failure.cpp?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/cxxanyargs/failure.cpp</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/cxxanyargs/failurem1.cpp?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/cxxanyargs/failurem1.cpp</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/debug/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/debug/depend</a></td><td class='right'>449</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/debug/inspector.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/debug/inspector.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/debug/profile_frames.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/debug/profile_frames.c</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/dln/empty/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/dln/empty/depend</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/dln/empty/empty.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/dln/empty/empty.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/econv/append.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/econv/append.c</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/econv/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/econv/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/econv/init.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/econv/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/enumerator_kw/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/enumerator_kw/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/enumerator_kw/enumerator_kw.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/enumerator_kw/enumerator_kw.c</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/enumerator_kw/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/enumerator_kw/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/eval/eval.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/eval/eval.c</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/eval/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/eval/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/exception/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/exception/depend</a></td><td class='right'>611</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/fatal/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/fatal/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/fatal/rb_fatal.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/fatal/rb_fatal.c</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/file/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/file/depend</a></td><td class='right'>467</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/file/fs.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/file/fs.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/float/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/float/depend</a></td><td class='right'>327</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/funcall/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/funcall/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/funcall/funcall.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/funcall/funcall.c</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/gvl/call_without_gvl/call_without_gvl.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/gvl/call_without_gvl/call_without_gvl.c</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/gvl/call_without_gvl/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/gvl/call_without_gvl/depend</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/hash/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/hash/depend</a></td><td class='right'>322</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/integer/core_ext.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/integer/core_ext.c</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/integer/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/integer/depend</a></td><td class='right'>466</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/iseq_load/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/iseq_load/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/iter/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/iter/depend</a></td><td class='right'>482</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/iter/yield.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/iter/yield.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/load/dot.dot/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/load/dot.dot/depend</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/load/dot.dot/dot.dot.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/load/dot.dot/dot.dot.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/load/protect/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/load/protect/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/marshal/compat/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/marshal/compat/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/marshal/internal_ivar/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/marshal/internal_ivar/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/marshal/internal_ivar/internal_ivar.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/marshal/internal_ivar/internal_ivar.c</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/marshal/usr/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/marshal/usr/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/memory_status/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/memory_status/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/memory_status/memory_status.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/memory_status/memory_status.c</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/memory_view/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/memory_view/depend</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/memory_view/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/memory_view/extconf.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/memory_view/memory_view.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/memory_view/memory_view.c</a></td><td class='right'>450</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/method/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/method/depend</a></td><td class='right'>322</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/notimplement/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/notimplement/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/num2int/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/num2int/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/num2int/num2int.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/num2int/num2int.c</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/path_to_class/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/path_to_class/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/popen_deadlock/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/popen_deadlock/depend</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/popen_deadlock/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/popen_deadlock/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/postponed_job/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/postponed_job/depend</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/postponed_job/postponed_job.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/postponed_job/postponed_job.c</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/printf/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/printf/depend</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/printf/printf.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/printf/printf.c</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/proc/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/proc/depend</a></td><td class='right'>482</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/proc/super.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/proc/super.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/random/bad_version.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/random/bad_version.c</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/random/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/random/depend</a></td><td class='right'>482</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/random/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/random/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/random/init.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/random/init.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/random/loop.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/random/loop.c</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/rational/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/rational/depend</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/rational/rat.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/rational/rat.c</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/rb_call_super_kw/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/rb_call_super_kw/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/rb_call_super_kw/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/rb_call_super_kw/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/rb_call_super_kw/rb_call_super_kw.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/rb_call_super_kw/rb_call_super_kw.c</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/recursion/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/recursion/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/regexp/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/regexp/depend</a></td><td class='right'>323</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/scan_args/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/scan_args/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/ext/-test-/scan_args/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/scan_args/extconf.rb</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/scan_args/scan_args.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/scan_args/scan_args.c</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/st/foreach/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/st/foreach/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/st/foreach/foreach.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/st/foreach/foreach.c</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/st/numhash/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/st/numhash/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/st/numhash/numhash.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/st/numhash/numhash.c</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/st/update/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/st/update/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/st/update/update.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/st/update/update.c</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/string/capacity.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/capacity.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/string/coderange.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/coderange.c</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/string/cstr.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/cstr.c</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/string/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/depend</a></td><td class='right'>2526</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/string/enc_str_buf_cat.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/enc_str_buf_cat.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/string/fstring.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/fstring.c</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/string/normalize.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/normalize.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/string/qsort.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/qsort.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/rb_interned_str.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/rb_interned_str.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/string/rb_str_dup.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/rb_str_dup.c</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/string/set_len.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/set_len.c</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/struct/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/struct/depend</a></td><td class='right'>604</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/struct/member.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/struct/member.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/symbol/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/symbol/depend</a></td><td class='right'>322</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/symbol/init.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/symbol/init.c</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/symbol/type.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/symbol/type.c</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/thread/instrumentation/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread/instrumentation/depend</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/thread/instrumentation/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread/instrumentation/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/thread/instrumentation/instrumentation.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread/instrumentation/instrumentation.c</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/thread_fd/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread_fd/depend</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/thread_fd/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread_fd/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/thread_fd/thread_fd.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread_fd/thread_fd.c</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/-test-/thread_fd_close/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread_fd_close/depend</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/-test-/thread_fd_close/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread_fd_close/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/-test-/thread_fd_close/thread_fd_close.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread_fd_close/thread_fd_close.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/time/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/time/depend</a></td><td class='right'>458</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/time/leap_second.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/time/leap_second.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/tracepoint/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/tracepoint/depend</a></td><td class='right'>298</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/tracepoint/gc_hook.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/tracepoint/gc_hook.c</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/tracepoint/tracepoint.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/tracepoint/tracepoint.c</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/typeddata/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/typeddata/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/typeddata/typeddata.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/typeddata/typeddata.c</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/vm/at_exit.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/vm/at_exit.c</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/vm/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/vm/depend</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/wait/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/wait/depend</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/wait/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/wait/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/-test-/wait/wait.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/wait/wait.c</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/-test-/wait_for_single_fd/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/wait_for_single_fd/depend</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/-test-/wait_for_single_fd/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/wait_for_single_fd/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/-test-/wait_for_single_fd/wait_for_single_fd.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/wait_for_single_fd/wait_for_single_fd.c</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/win32/console/attribute.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/win32/console/attribute.c</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/-test-/win32/fd_setsize/fd_setsize.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/win32/fd_setsize/fd_setsize.c</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/.document</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/Setup?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/Setup</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/Setup.atheos?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/Setup.atheos</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/Setup.nt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/Setup.nt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/bigdecimal.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/bigdecimal.c</a></td><td class='right'>3545</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/bigdecimal/bigdecimal.def?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/bigdecimal.def</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/bigdecimal.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/bigdecimal.gemspec</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/bigdecimal.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/bigdecimal.h</a></td><td class='right'>283</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/bigdecimal/bits.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/bits.h</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/depend</a></td><td class='right'>314</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/extconf.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/bigdecimal/feature.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/feature.h</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/lib/bigdecimal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/lib/bigdecimal.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/lib/bigdecimal/jacobian.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/lib/bigdecimal/jacobian.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/bigdecimal/lib/bigdecimal/util.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/lib/bigdecimal/util.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/bigdecimal/missing.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/missing.c</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/bigdecimal/missing.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/missing.h</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/bigdecimal/missing/dtoa.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/missing/dtoa.c</a></td><td class='right'>3462</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/bigdecimal/static_assert.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/static_assert.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/bigdecimal/util/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/util/extconf.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/bigdecimal/util/util.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/util/util.c</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/cgi/escape/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/cgi/escape/depend</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/cgi/escape/escape.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/cgi/escape/escape.c</a></td><td class='right'>452</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/continuation/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/continuation/depend</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/coverage/coverage.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/coverage/coverage.c</a></td><td class='right'>514</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/coverage/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/coverage/depend</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/date/date.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/date.gemspec</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/date/date_core.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/date_core.c</a></td><td class='right'>2464</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/date/date_parse.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/date_parse.c</a></td><td class='right'>305</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/date/date_strftime.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/date_strftime.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/date/date_strptime.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/date_strptime.c</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/date/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/depend</a></td><td class='right'>631</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/date/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/extconf.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/date/lib/date.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/lib/date.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/date/prereq.mk?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/prereq.mk</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/date/update-abbr?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/update-abbr</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/date/zonetab.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/zonetab.h</a></td><td class='right'>2063</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/date/zonetab.list?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/zonetab.list</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dbm/dbm.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/dbm/dbm.c</a></td><td class='right'>1157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dbm/dbm.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/dbm/dbm.gemspec</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dbm/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/dbm/depend</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/dbm/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/dbm/extconf.rb</a></td><td class='right'>292</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/bubblebabble/bubblebabble.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/bubblebabble/bubblebabble.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/bubblebabble/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/bubblebabble/depend</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/bubblebabble/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/bubblebabble/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/depend</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/digest.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/digest.c</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/digest/digest.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/digest.gemspec</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/digest.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/digest.h</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/digest_conf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/digest_conf.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/lib/digest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/lib/digest.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/digest/lib/digest/loader.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/lib/digest/loader.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/digest/lib/digest/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/lib/digest/version.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/md5/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/depend</a></td><td class='right'>319</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/md5/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/md5/md5.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/md5.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/md5/md5cc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/md5cc.h</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/md5/md5init.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/md5init.c</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/md5/md5ossl.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/md5ossl.h</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/rmd160/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/rmd160/depend</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/rmd160/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/rmd160/extconf.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/rmd160/rmd160init.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/rmd160/rmd160init.c</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/rmd160/rmd160ossl.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/rmd160/rmd160ossl.h</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha1/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha1/depend</a></td><td class='right'>319</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha1/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha1/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha1/sha1init.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha1/sha1init.c</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/sha1/sha1ossl.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha1/sha1ossl.h</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha2/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/depend</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha2/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha2/lib/sha2.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/lib/sha2.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/digest/sha2/lib/sha2/loader.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/lib/sha2/loader.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha2/sha2.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/sha2.c</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/digest/sha2/sha2init.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/sha2init.c</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/digest/sha2/sha2ossl.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/sha2ossl.h</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/erb/escape/escape.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/erb/escape/escape.c</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/erb/escape/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/erb/escape/extconf.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/etc/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/etc/depend</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/etc/etc.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/etc/etc.c</a></td><td class='right'>202</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/etc/etc.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/etc/etc.gemspec</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/etc/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/etc/extconf.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/ext/extmk.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/extmk.rb</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fcntl/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fcntl/depend</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fcntl/fcntl.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fcntl/fcntl.c</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fcntl/fcntl.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fcntl/fcntl.gemspec</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/fiber/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiber/depend</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/fiber/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiber/extconf.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/fiber/fiber.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiber/fiber.c</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/closure.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/closure.c</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/conversions.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/conversions.c</a></td><td class='right'>241</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/conversions.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/conversions.h</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/depend</a></td><td class='right'>1262</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/extconf.rb</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/fiddle/extlibs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/extlibs</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/fiddle.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/fiddle.c</a></td><td class='right'>357</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/fiddle.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/fiddle.gemspec</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/fiddle.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/fiddle.h</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/function.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/function.c</a></td><td class='right'>364</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/handle.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/handle.c</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/closure.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/closure.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/cparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/cparser.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/function.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/function.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/import.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/import.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/pack.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/pack.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/struct.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/struct.rb</a></td><td class='right'>381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/types.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/types.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/lib/fiddle/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/version.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/memory_view.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/memory_view.c</a></td><td class='right'>321</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/fiddle/pinned.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/pinned.c</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/pointer.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/pointer.c</a></td><td class='right'>183</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/win32/fficonfig.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/win32/fficonfig.h</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/win32/libffi-config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/win32/libffi-config.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/ext/fiddle/win32/libffi.mk.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/win32/libffi.mk.tmpl</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/gdbm/README?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/gdbm/README</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/gdbm/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/gdbm/depend</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/gdbm/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/gdbm/extconf.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/gdbm/gdbm.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/gdbm/gdbm.c</a></td><td class='right'>1309</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/gdbm/gdbm.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/gdbm/gdbm.gemspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/console/console.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/console.c</a></td><td class='right'>843</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/console/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/depend</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/console/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/extconf.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/console/io-console.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/io-console.gemspec</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/console/win32_vk.inc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/win32_vk.inc</a></td><td class='right'>327</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/console/win32_vk.list?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/win32_vk.list</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/nonblock/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/nonblock/depend</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/nonblock/io-nonblock.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/nonblock/io-nonblock.gemspec</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/nonblock/nonblock.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/nonblock/nonblock.c</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/wait/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/wait/depend</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/wait/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/wait/extconf.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/io/wait/io-wait.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/wait/io-wait.gemspec</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/io/wait/wait.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/wait/wait.c</a></td><td class='right'>274</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/VERSION?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/VERSION</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/depend</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/generator/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/generator/depend</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/generator/generator.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/generator/generator.c</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/generator/generator.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/generator/generator.h</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/json.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/json.gemspec</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/lib/json.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json.rb</a></td><td class='right'>578</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/lib/json/add/bigdecimal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/add/bigdecimal.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/lib/json/add/complex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/add/complex.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/lib/json/add/ostruct.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/add/ostruct.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/lib/json/add/rational.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/add/rational.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/lib/json/add/regexp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/add/regexp.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/json/lib/json/add/set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/add/set.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/lib/json/common.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/common.rb</a></td><td class='right'>497</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/lib/json/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/version.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/parser/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/depend</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/parser/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/extconf.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/parser/parser.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/parser.c</a></td><td class='right'>4746</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 98.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/parser/parser.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/parser.h</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/parser/parser.rl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/parser.rl</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/json/parser/prereq.mk?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/prereq.mk</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/monitor/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/monitor/depend</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/monitor/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/monitor/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/monitor/lib/monitor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/monitor/lib/monitor.rb</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/monitor/monitor.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/monitor/monitor.c</a></td><td class='right'>225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/nkf/depend</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/nkf-utf8/config.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/nkf/nkf-utf8/config.h</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/nkf-utf8/nkf.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/nkf/nkf-utf8/nkf.c</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/nkf-utf8/nkf.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/nkf/nkf-utf8/nkf.h</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/nkf/nkf.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/nkf/nkf.c</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/nkf/nkf.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/nkf/nkf.gemspec</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/objspace/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/objspace/depend</a></td><td class='right'>523</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/objspace/lib/objspace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/objspace/lib/objspace.rb</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/objspace/lib/objspace/trace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/objspace/lib/objspace/trace.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/objspace/object_tracing.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/objspace/object_tracing.c</a></td><td class='right'>260</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/objspace/objspace.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/objspace/objspace.c</a></td><td class='right'>654</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/objspace/objspace_dump.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/objspace/objspace_dump.c</a></td><td class='right'>878</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/History.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/History.md</a></td><td class='right'>337</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/depend</a></td><td class='right'>5249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 97.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/openssl/deprecation.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/deprecation.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/extconf.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/bn.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/bn.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/buffering.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/buffering.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/cipher.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/cipher.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/openssl/lib/openssl/config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/config.rb</a></td><td class='right'>474</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/digest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/digest.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/lib/openssl/hmac.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/hmac.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/lib/openssl/marshal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/marshal.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/pkcs5.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/pkcs5.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/pkey.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/pkey.rb</a></td><td class='right'>448</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/ssl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/ssl.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/lib/openssl/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/version.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/lib/openssl/x509.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/x509.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/openssl.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/openssl.gemspec</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/openssl_missing.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/openssl_missing.c</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/openssl_missing.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/openssl_missing.h</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl.c</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl.h</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_asn1.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_asn1.c</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_bn.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_bn.c</a></td><td class='right'>432</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_bn.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_bn.h</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_cipher.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_cipher.c</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_config.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_config.c</a></td><td class='right'>453</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_config.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_config.h</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_digest.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_digest.c</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_engine.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_engine.c</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_hmac.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_hmac.c</a></td><td class='right'>205</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_kdf.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_kdf.c</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_ns_spki.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ns_spki.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_ocsp.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ocsp.c</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_ocsp.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ocsp.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkcs12.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkcs12.c</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkcs7.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkcs7.c</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkcs7.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkcs7.h</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkey.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey.c</a></td><td class='right'>1473</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkey.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey.h</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkey_dh.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey_dh.c</a></td><td class='right'>470</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkey_dsa.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey_dsa.c</a></td><td class='right'>505</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkey_ec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey_ec.c</a></td><td class='right'>529</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_pkey_rsa.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey_rsa.c</a></td><td class='right'>599</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_rand.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_rand.c</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_ssl.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ssl.c</a></td><td class='right'>1008</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_ssl_session.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ssl_session.c</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/ossl_ts.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ts.c</a></td><td class='right'>1539</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/ossl_ts.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ts.h</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/openssl/ossl_version.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_version.h</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509.c</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509cert.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509cert.c</a></td><td class='right'>182</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509crl.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509crl.c</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509ext.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509ext.c</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509name.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509name.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509req.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509req.c</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509revoked.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509revoked.c</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/openssl/ossl_x509store.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509store.c</a></td><td class='right'>285</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/openssl/ruby_missing.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ruby_missing.h</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pathname/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pathname/depend</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pathname/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pathname/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pathname/lib/pathname.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pathname/lib/pathname.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pathname/pathname.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pathname/pathname.c</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/pathname/pathname.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pathname/pathname.gemspec</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/psych/.gitignore?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/.gitignore</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/depend</a></td><td class='right'>814</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/extconf.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych.rb</a></td><td class='right'>348</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/class_loader.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/class_loader.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/core_ext.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/core_ext.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/exception.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/exception.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/handler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/handler.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/handlers/document_stream.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/handlers/document_stream.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/handlers/recorder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/handlers/recorder.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/json/stream.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/json/stream.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/json/tree_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/json/tree_builder.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/nodes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/nodes.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/nodes/node.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/nodes/node.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/nodes/scalar.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/nodes/scalar.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/parser.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/scalar_scanner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/scalar_scanner.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/syntax_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/syntax_error.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/tree_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/tree_builder.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/versions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/versions.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/visitors.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors/json_tree.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/visitors/json_tree.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors/to_ruby.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/visitors/to_ruby.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors/visitor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/visitors/visitor.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/lib/psych/visitors/yaml_tree.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/visitors/yaml_tree.rb</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/psych.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/psych.c</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/psych.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/psych.gemspec</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/psych_parser.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/psych_parser.c</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/psych/psych_yaml_tree.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/psych_yaml_tree.c</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/psych/yaml/api.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/api.c</a></td><td class='right'>1393</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/psych/yaml/config.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/config.h</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/psych/yaml/dumper.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/dumper.c</a></td><td class='right'>394</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/psych/yaml/emitter.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/emitter.c</a></td><td class='right'>2324</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/psych/yaml/loader.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/loader.c</a></td><td class='right'>444</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/psych/yaml/parser.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/parser.c</a></td><td class='right'>1370</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/psych/yaml/reader.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/reader.c</a></td><td class='right'>469</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/psych/yaml/scanner.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/scanner.c</a></td><td class='right'>3578</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/psych/yaml/writer.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/writer.c</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/psych/yaml/yaml.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/yaml.h</a></td><td class='right'>1971</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/psych/yaml/yaml_private.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/yaml_private.h</a></td><td class='right'>688</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pty/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pty/depend</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pty/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pty/extconf.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pty/lib/expect.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pty/lib/expect.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/pty/pty.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pty/pty.c</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/racc/cparse/README?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/racc/cparse/README</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/racc/cparse/cparse.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/racc/cparse/cparse.c</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/racc/cparse/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/racc/cparse/depend</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/racc/cparse/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/racc/cparse/extconf.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/rbconfig/sizeof/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/rbconfig/sizeof/depend</a></td><td class='right'>298</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/readline/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/readline/depend</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/readline/depend-gem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/readline/depend-gem</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/readline/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/readline/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/readline/readline-ext.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/readline/readline-ext.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/readline/readline.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/readline/readline.c</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/ripper/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/depend</a></td><td class='right'>197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/ripper/eventids2.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/eventids2.c</a></td><td class='right'>341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/ripper/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/extconf.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/ripper/lib/ripper/core.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/lib/ripper/core.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/ripper/lib/ripper/lexer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/lib/ripper/lexer.rb</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/ripper/lib/ripper/sexp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/lib/ripper/sexp.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/ripper/tools/dsl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/tools/dsl.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/ext/ripper/tools/generate-param-macros.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/tools/generate-param-macros.rb</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/ext/ripper/tools/generate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/tools/generate.rb</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/ext/ripper/tools/preproc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/tools/preproc.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/ext/ripper/tools/strip.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/tools/strip.rb</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/rubyvm/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/rubyvm/depend</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/sdbm/_sdbm.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/_sdbm.c</a></td><td class='right'>952</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/sdbm/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/depend</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/sdbm/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/extconf.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/sdbm/init.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/init.c</a></td><td class='right'>1067</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/sdbm/sdbm.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/sdbm.gemspec</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/sdbm/sdbm.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/sdbm.h</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/addrinfo.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/addrinfo.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/ancdata.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/ancdata.c</a></td><td class='right'>296</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/basicsocket.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/basicsocket.c</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/constants.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/constants.c</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/depend</a></td><td class='right'>2595</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/extconf.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/getaddrinfo.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/getaddrinfo.c</a></td><td class='right'>898</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/getnameinfo.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/getnameinfo.c</a></td><td class='right'>226</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/ifaddr.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/ifaddr.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/init.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/init.c</a></td><td class='right'>442</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/ipsocket.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/ipsocket.c</a></td><td class='right'>220</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/lib/socket.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/lib/socket.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/mkconstants.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/mkconstants.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/option.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/option.c</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/raddrinfo.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/raddrinfo.c</a></td><td class='right'>526</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/rubysocket.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/rubysocket.h</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/socket.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/socket.c</a></td><td class='right'>647</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/sockssocket.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/sockssocket.c</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/tcpserver.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/tcpserver.c</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/tcpsocket.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/tcpsocket.c</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/udpsocket.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/udpsocket.c</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/unixserver.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/unixserver.c</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/socket/unixsocket.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/unixsocket.c</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/stringio/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/stringio/depend</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/stringio/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/stringio/extconf.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/stringio/stringio.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/stringio/stringio.c</a></td><td class='right'>731</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/stringio/stringio.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/stringio/stringio.gemspec</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/strscan/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/strscan/depend</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/strscan/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/strscan/extconf.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/strscan/strscan.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/strscan/strscan.c</a></td><td class='right'>464</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/strscan/strscan.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/strscan/strscan.gemspec</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/syslog/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/syslog/depend</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/syslog/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/syslog/extconf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/syslog/lib/syslog/logger.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/syslog/lib/syslog/logger.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/syslog/syslog.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/syslog/syslog.c</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/syslog/syslog.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/syslog/syslog.gemspec</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/depend</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32/lib/Win32API.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/Win32API.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32/lib/win32/importer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/win32/importer.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32/lib/win32/registry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/win32/registry.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32/lib/win32/resolv.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/win32/resolv.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/win32/lib/win32/resolv9x.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/win32/resolv9x.rb</a></td><td class='right'>253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32/lib/win32/sspi.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/win32/sspi.rb</a></td><td class='right'>627</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32/resolv/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/resolv/depend</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32/resolv/resolv.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/resolv/resolv.c</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/sample/xml.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/sample/xml.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole.c</a></td><td class='right'>202</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/win32ole/win32ole.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole.h</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_error.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_error.c</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_error.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_error.h</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_event.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_event.c</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_method.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_method.c</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_method.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_method.h</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_param.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_param.c</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_record.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_record.c</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_record.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_record.h</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_type.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_type.c</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_type.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_type.h</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_typelib.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_typelib.c</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_typelib.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_typelib.h</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_variable.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variable.c</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_variable.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variable.h</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_variant.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variant.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_variant.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variant.h</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_variant_m.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variant_m.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/win32ole/win32ole_variant_m.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variant_m.h</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/zlib/depend?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/zlib/depend</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/zlib/extconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/zlib/extconf.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/zlib/zlib.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/zlib/zlib.c</a></td><td class='right'>462</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/zlib/zlib.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/zlib/zlib.gemspec</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/file.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>file.c</a></td><td class='right'>4212</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/gc.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>gc.c</a></td><td class='right'>12145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.5%;'/><td class='rem' style='width: 1.6%;'/><td class='none' style='width: 95.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/gc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>gc.h</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/gc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>gc.rb</a></td><td class='right'>296</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/gem_prelude.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>gem_prelude.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/gems/bundled_gems?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>gems/bundled_gems</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/gems/lib/core_assertions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>gems/lib/core_assertions.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/gems/lib/envutil.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>gems/lib/envutil.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/gems/lib/rake/extensiontask.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>gems/lib/rake/extensiontask.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/golf_prelude.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>golf_prelude.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/goruby.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>goruby.c</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/hash.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>hash.c</a></td><td class='right'>6076</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/hrtime.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>hrtime.h</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ia64.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ia64.S</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/id_table.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>id_table.c</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/id_table.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>id_table.h</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/assert.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/assert.h</a></td><td class='right'>234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/atomic.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/atomic.h</a></td><td class='right'>890</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/backward.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward.h</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/2/assume.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/2/assume.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/2/attributes.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/2/attributes.h</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/2/bool.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/2/bool.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/2/gcc_version_since.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/2/gcc_version_since.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/2/inttypes.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/2/inttypes.h</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/2/limits.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/2/limits.h</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/2/long_long.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/2/long_long.h</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/2/r_cast.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/2/r_cast.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/2/rmodule.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/2/rmodule.h</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/2/stdalign.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/2/stdalign.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/2/stdarg.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/2/stdarg.h</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/include/ruby/backward/classext.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/classext.h</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/backward/cxxanyargs.hpp?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/cxxanyargs.hpp</a></td><td class='right'>700</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/include/ruby/backward/rubyio.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/rubyio.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/include/ruby/backward/rubysig.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/rubysig.h</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/include/ruby/backward/st.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/st.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/include/ruby/backward/util.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/util.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/debug.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/debug.h</a></td><td class='right'>622</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/defines.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/defines.h</a></td><td class='right'>505</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/encoding.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/encoding.h</a></td><td class='right'>450</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/fiber/scheduler.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/fiber/scheduler.h</a></td><td class='right'>374</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/intern.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/intern.h</a></td><td class='right'>1041</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/abi.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/abi.h</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/anyargs.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/anyargs.h</a></td><td class='right'>398</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic.h</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/char.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/char.h</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/double.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/double.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/fixnum.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/fixnum.h</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/gid_t.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/gid_t.h</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/int.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/int.h</a></td><td class='right'>264</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/intptr_t.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/intptr_t.h</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/long.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/long.h</a></td><td class='right'>356</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/long_long.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/long_long.h</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/mode_t.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/mode_t.h</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/off_t.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/off_t.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/pid_t.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/pid_t.h</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/short.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/short.h</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/size_t.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/size_t.h</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/st_data_t.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/st_data_t.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/arithmetic/uid_t.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/arithmetic/uid_t.h</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/assume.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/assume.h</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/alloc_size.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/alloc_size.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/artificial.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/artificial.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/cold.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/cold.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/const.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/const.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/constexpr.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/constexpr.h</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/deprecated.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/deprecated.h</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/diagnose_if.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/diagnose_if.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/enum_extensibility.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/enum_extensibility.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/error.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/error.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/flag_enum.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/flag_enum.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/forceinline.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/forceinline.h</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/format.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/format.h</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/maybe_unused.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/maybe_unused.h</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/noalias.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/noalias.h</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/nodiscard.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/nodiscard.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/noexcept.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/noexcept.h</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/noinline.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/noinline.h</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/nonnull.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/nonnull.h</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/nonstring.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/nonstring.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/noreturn.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/noreturn.h</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/pure.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/pure.h</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/restrict.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/restrict.h</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/returns_nonnull.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/returns_nonnull.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/warning.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/warning.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/attr/weakref.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/attr/weakref.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/cast.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/cast.h</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/compiler_is.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/compiler_is.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/compiler_is/apple.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/compiler_is/apple.h</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/compiler_is/clang.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/compiler_is/clang.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/compiler_is/gcc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/compiler_is/gcc.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/compiler_is/intel.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/compiler_is/intel.h</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/compiler_is/msvc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/compiler_is/msvc.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/compiler_is/sunpro.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/compiler_is/sunpro.h</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/compiler_since.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/compiler_since.h</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/config.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/config.h</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/constant_p.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/constant_p.h</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core.h</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rarray.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rarray.h</a></td><td class='right'>585</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rbasic.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rbasic.h</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rbignum.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rbignum.h</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rclass.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rclass.h</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rdata.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rdata.h</a></td><td class='right'>386</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rfile.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rfile.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rhash.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rhash.h</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rmatch.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rmatch.h</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/robject.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/robject.h</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rregexp.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rregexp.h</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rstring.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rstring.h</a></td><td class='right'>578</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rstruct.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rstruct.h</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/core/rtypeddata.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/core/rtypeddata.h</a></td><td class='right'>604</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/ctype.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/ctype.h</a></td><td class='right'>545</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/dllexport.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/dllexport.h</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/dosish.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/dosish.h</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/encoding/coderange.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/encoding/coderange.h</a></td><td class='right'>202</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/encoding/ctype.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/encoding/ctype.h</a></td><td class='right'>258</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/encoding/encoding.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/encoding/encoding.h</a></td><td class='right'>1060</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/encoding/pathname.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/encoding/pathname.h</a></td><td class='right'>184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/encoding/re.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/encoding/re.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/encoding/sprintf.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/encoding/sprintf.h</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/encoding/string.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/encoding/string.h</a></td><td class='right'>346</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/encoding/symbol.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/encoding/symbol.h</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/encoding/transcode.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/encoding/transcode.h</a></td><td class='right'>562</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/error.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/error.h</a></td><td class='right'>582</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/eval.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/eval.h</a></td><td class='right'>400</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/event.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/event.h</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/fl_type.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/fl_type.h</a></td><td class='right'>948</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/gc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/gc.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/glob.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/glob.h</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/globals.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/globals.h</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/has/attribute.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/has/attribute.h</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/has/builtin.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/has/builtin.h</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/has/c_attribute.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/has/c_attribute.h</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/has/cpp_attribute.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/has/cpp_attribute.h</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/has/declspec_attribute.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/has/declspec_attribute.h</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/has/extension.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/has/extension.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/has/feature.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/has/feature.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/has/warning.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/has/warning.h</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/array.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/array.h</a></td><td class='right'>657</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/bignum.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/bignum.h</a></td><td class='right'>846</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/class.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/class.h</a></td><td class='right'>394</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/compar.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/compar.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/complex.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/complex.h</a></td><td class='right'>253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/cont.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/cont.h</a></td><td class='right'>282</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/dir.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/dir.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/enum.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/enum.h</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/enumerator.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/enumerator.h</a></td><td class='right'>259</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/error.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/error.h</a></td><td class='right'>287</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/eval.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/eval.h</a></td><td class='right'>222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/file.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/file.h</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/gc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/gc.h</a></td><td class='right'>392</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/hash.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/hash.h</a></td><td class='right'>320</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/io.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/io.h</a></td><td class='right'>661</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/load.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/load.h</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/marshal.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/marshal.h</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/numeric.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/numeric.h</a></td><td class='right'>208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/object.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/object.h</a></td><td class='right'>501</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/parse.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/parse.h</a></td><td class='right'>194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/proc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/proc.h</a></td><td class='right'>353</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/process.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/process.h</a></td><td class='right'>273</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/random.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/random.h</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/range.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/range.h</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/rational.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/rational.h</a></td><td class='right'>172</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/re.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/re.h</a></td><td class='right'>249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/ruby.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/ruby.h</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/select.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/select.h</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/select/largesize.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/select/largesize.h</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/select/posix.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/select/posix.h</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/select/win32.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/select/win32.h</a></td><td class='right'>259</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/signal.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/signal.h</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/sprintf.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/sprintf.h</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/string.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/string.h</a></td><td class='right'>1757</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/struct.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/struct.h</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/thread.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/thread.h</a></td><td class='right'>492</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/time.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/time.h</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/variable.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/variable.h</a></td><td class='right'>628</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/intern/vm.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/intern/vm.h</a></td><td class='right'>431</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/interpreter.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/interpreter.h</a></td><td class='right'>304</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/iterator.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/iterator.h</a></td><td class='right'>513</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/memory.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/memory.h</a></td><td class='right'>666</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/method.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/method.h</a></td><td class='right'>205</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/module.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/module.h</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/newobj.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/newobj.h</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/rgengc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/rgengc.h</a></td><td class='right'>443</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/scan_args.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/scan_args.h</a></td><td class='right'>534</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/special_consts.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/special_consts.h</a></td><td class='right'>362</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/static_assert.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/static_assert.h</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/stdalign.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/stdalign.h</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/stdbool.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/stdbool.h</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/symbol.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/symbol.h</a></td><td class='right'>332</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/value.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/value.h</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/value_type.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/value_type.h</a></td><td class='right'>449</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/variable.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/variable.h</a></td><td class='right'>337</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/warning_push.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/warning_push.h</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/internal/xmalloc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/internal/xmalloc.h</a></td><td class='right'>392</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/io.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/io.h</a></td><td class='right'>994</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/io/buffer.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/io/buffer.h</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/memory_view.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/memory_view.h</a></td><td class='right'>325</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/missing.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/missing.h</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/onigmo.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/onigmo.h</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/ractor.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/ractor.h</a></td><td class='right'>264</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/include/ruby/random.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/random.h</a></td><td class='right'>359</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/re.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/re.h</a></td><td class='right'>199</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/regex.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/regex.h</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/ruby.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/ruby.h</a></td><td class='right'>2858</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/st.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/st.h</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/subst.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/subst.h</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/thread.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/thread.h</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/thread_native.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/thread_native.h</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/util.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/util.h</a></td><td class='right'>259</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/version.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/version.h</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/vm.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/vm.h</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/include/ruby/win32.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/win32.h</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/inits.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>inits.c</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/insns.def?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>insns.def</a></td><td class='right'>572</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/internal.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal.h</a></td><td class='right'>2488</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/array.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/array.h</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/basic_operators.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/basic_operators.h</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/bignum.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/bignum.h</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/bits.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/bits.h</a></td><td class='right'>565</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/class.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/class.h</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/cmdlineopt.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/cmdlineopt.h</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/compar.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/compar.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/compile.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/compile.h</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/compilers.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/compilers.h</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/complex.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/complex.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/cont.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/cont.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/dir.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/dir.h</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/enc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/enc.h</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/encoding.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/encoding.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/enum.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/enum.h</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/enumerator.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/enumerator.h</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/error.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/error.h</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/eval.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/eval.h</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/file.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/file.h</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/fixnum.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/fixnum.h</a></td><td class='right'>184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/gc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/gc.h</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/hash.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/hash.h</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/imemo.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/imemo.h</a></td><td class='right'>242</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/inits.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/inits.h</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/io.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/io.h</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/load.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/load.h</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/loadpath.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/loadpath.h</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/math.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/math.h</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/missing.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/missing.h</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/numeric.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/numeric.h</a></td><td class='right'>275</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/object.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/object.h</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/parse.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/parse.h</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/proc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/proc.h</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/process.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/process.h</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/ractor.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/ractor.h</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/random.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/random.h</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/range.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/range.h</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/rational.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/rational.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/re.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/re.h</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/sanitizers.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/sanitizers.h</a></td><td class='right'>190</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/serial.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/serial.h</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/signal.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/signal.h</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/static_assert.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/static_assert.h</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/string.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/string.h</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/struct.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/struct.h</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/symbol.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/symbol.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/thread.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/thread.h</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/time.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/time.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/transcode.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/transcode.h</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/util.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/util.h</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/variable.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/variable.h</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/vm.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/vm.h</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/internal/warnings.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>internal/warnings.h</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/io.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>io.c</a></td><td class='right'>11077</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.8%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 95.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/io.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>io.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/io_buffer.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>io_buffer.c</a></td><td class='right'>3515</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/iseq.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>iseq.c</a></td><td class='right'>2918</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/iseq.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>iseq.h</a></td><td class='right'>172</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/kernel.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>kernel.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lex.c.blt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lex.c.blt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/.document</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/English.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/English.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/English.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/English.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/abbrev.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/abbrev.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/base64.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/base64.gemspec</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/base64.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/base64.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/benchmark.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/benchmark.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/benchmark/benchmark.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/benchmark/benchmark.gemspec</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/benchmark/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/benchmark/version.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler.gemspec</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler.rb</a></td><td class='right'>475</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/.document</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/build_metadata.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/build_metadata.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/bundler.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/bundler.gemspec</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/capistrano.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/capistrano.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli.rb</a></td><td class='right'>434</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/add.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/add.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/binstubs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/binstubs.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/cache.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/cache.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/check.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/check.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/clean.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/clean.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/common.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/common.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/config.rb</a></td><td class='right'>256</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/console.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/console.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/doctor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/doctor.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/exec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/exec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/cli/fund.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/fund.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/gem.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/gem.rb</a></td><td class='right'>309</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/info.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/info.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/init.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/init.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/inject.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/inject.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/install.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/install.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/issue.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/issue.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/list.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/lock.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/lock.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/open.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/open.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/outdated.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/outdated.rb</a></td><td class='right'>275</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/cli/package.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/package.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/platform.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/platform.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/plugin.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/plugin.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/pristine.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/pristine.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/remove.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/remove.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/show.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/show.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/update.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/update.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/cli/viz.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/viz.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/compact_index_client.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/compact_index_client.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/compact_index_client/cache.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/compact_index_client/cache.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/compact_index_client/gem_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/compact_index_client/gem_parser.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/compact_index_client/updater.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/compact_index_client/updater.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/compatibility_guard.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/compatibility_guard.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/constants.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/constants.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/current_ruby.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/current_ruby.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/definition.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/definition.rb</a></td><td class='right'>896</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/dep_proxy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/dep_proxy.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/dependency.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/dependency.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/deployment.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/deployment.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/digest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/digest.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/dsl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/dsl.rb</a></td><td class='right'>202</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/endpoint_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/endpoint_specification.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/env.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/env.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/environment_preserver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/environment_preserver.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/errors.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/errors.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/feature_flag.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/feature_flag.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/fetcher.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/fetcher/base.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher/base.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/fetcher/compact_index.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher/compact_index.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/fetcher/dependency.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher/dependency.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/fetcher/downloader.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher/downloader.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/fetcher/index.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher/index.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/force_platform.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/force_platform.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/friendly_errors.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/friendly_errors.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/gem_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gem_helper.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/gem_helpers.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gem_helpers.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/gem_remote_fetcher.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gem_remote_fetcher.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/gem_tasks.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gem_tasks.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/gem_version_promoter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gem_version_promoter.rb</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/gemdeps.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gemdeps.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/graph.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/graph.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/index.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/index.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/injector.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/injector.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/inline.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/inline.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/installer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/installer.rb</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/installer/gem_installer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/installer/gem_installer.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/installer/parallel_installer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/installer/parallel_installer.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/installer/standalone.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/installer/standalone.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/lazy_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/lazy_specification.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/lockfile_generator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/lockfile_generator.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/lockfile_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/lockfile_parser.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/lib/bundler/man/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/.document</a> (renamed from lib/bundler/ssl_certs/.document)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-add.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-add.1</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-add.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-add.1.ronn</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-binstubs.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-binstubs.1</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-binstubs.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-binstubs.1.ronn</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-cache.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-cache.1</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-cache.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-cache.1.ronn</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-check.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-check.1</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/lib/bundler/man/bundle-check.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-check.1.ronn</a> (renamed from man/bundle-check.ronn)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-clean.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-clean.1</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-clean.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-clean.1.ronn</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-config.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-config.1</a></td><td class='right'>512</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-config.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-config.1.ronn</a></td><td class='right'>405</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-console.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-console.1</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-console.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-console.1.ronn</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-doctor.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-doctor.1</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/lib/bundler/man/bundle-doctor.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-doctor.1.ronn</a> (renamed from man/bundle-doctor.ronn)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-exec.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-exec.1</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-exec.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-exec.1.ronn</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-gem.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-gem.1</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-gem.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-gem.1.ronn</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-help.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-help.1</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-help.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-help.1.ronn</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-info.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-info.1</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-info.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-info.1.ronn</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-init.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-init.1</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-init.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-init.1.ronn</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-inject.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-inject.1</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-inject.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-inject.1.ronn</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-install.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-install.1</a></td><td class='right'>313</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-install.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-install.1.ronn</a></td><td class='right'>382</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-list.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-list.1</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-list.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-list.1.ronn</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-lock.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-lock.1</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/lib/bundler/man/bundle-lock.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-lock.1.ronn</a> (renamed from man/bundle-lock.ronn)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-open.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-open.1</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-open.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-open.1.ronn</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-outdated.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-outdated.1</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-outdated.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-outdated.1.ronn</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-platform.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-platform.1</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-platform.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-platform.1.ronn</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-plugin.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-plugin.1</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-plugin.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-plugin.1.ronn</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-pristine.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-pristine.1</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/lib/bundler/man/bundle-pristine.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-pristine.1.ronn</a> (renamed from man/bundle-pristine.ronn)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-remove.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-remove.1</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/lib/bundler/man/bundle-remove.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-remove.1.ronn</a> (renamed from man/bundle-remove.ronn)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-show.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-show.1</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/lib/bundler/man/bundle-show.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-show.1.ronn</a> (renamed from man/bundle-show.ronn)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-update.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-update.1</a></td><td class='right'>394</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-update.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-update.1.ronn</a></td><td class='right'>351</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-version.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-version.1</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-version.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-version.1.ronn</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-viz.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-viz.1</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle-viz.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle-viz.1.ronn</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle.1</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/bundle.1.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/bundle.1.ronn</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/gemfile.5?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/gemfile.5</a></td><td class='right'>736</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/gemfile.5.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/gemfile.5.ronn</a></td><td class='right'>543</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/man/index.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/man/index.txt</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/match_metadata.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/match_metadata.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/match_platform.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/match_platform.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/match_remote_metadata.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/match_remote_metadata.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/mirror.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/mirror.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/plugin.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin.rb</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/plugin/api.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/api.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/plugin/api/source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/api/source.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/plugin/dsl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/dsl.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/plugin/index.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/index.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/plugin/installer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/installer.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/plugin/installer/git.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/installer/git.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/plugin/installer/rubygems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/installer/rubygems.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/plugin/source_list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/source_list.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/process_lock.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/process_lock.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/psyched_yaml.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/psyched_yaml.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/remote_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/remote_specification.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/resolver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/resolver.rb</a></td><td class='right'>656</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/resolver/base.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/resolver/base.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/resolver/candidate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/resolver/candidate.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/resolver/incompatibility.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/resolver/incompatibility.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/resolver/package.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/resolver/package.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/resolver/root.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/resolver/root.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/resolver/spec_group.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/resolver/spec_group.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/retry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/retry.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/ruby_dsl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ruby_dsl.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/ruby_version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ruby_version.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/rubygems_ext.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/rubygems_ext.rb</a></td><td class='right'>329</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/rubygems_gem_installer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/rubygems_gem_installer.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/rubygems_integration.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/rubygems_integration.rb</a></td><td class='right'>696</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/runtime.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/runtime.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/safe_marshal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/safe_marshal.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/self_manager.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/self_manager.rb</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/settings.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/settings.rb</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/setup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/setup.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/shared_helpers.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/shared_helpers.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/similarity_detector.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/similarity_detector.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/source/git.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/git.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/source/git/git_proxy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/git/git_proxy.rb</a></td><td class='right'>425</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/source/metadata.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/metadata.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/source/path.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/path.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/source/path/installer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/path/installer.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/source/rubygems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/rubygems.rb</a></td><td class='right'>389</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/source/rubygems/remote.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/rubygems/remote.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/source/rubygems_aggregate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/rubygems_aggregate.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/source_list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source_list.rb</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/source_map.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source_map.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/spec_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/spec_set.rb</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/ssl_certs/certificate_manager.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ssl_certs/certificate_manager.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/stub_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/stub_specification.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/Executable?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/Executable</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/Executable.bundler?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/Executable.bundler</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/Executable.standalone?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/Executable.standalone</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/Gemfile?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/Gemfile</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/templates/gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/gems.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/CHANGELOG.md.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/CHANGELOG.md.tt</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/Cargo.toml.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/Cargo.toml.tt</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/Gemfile.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/Gemfile.tt</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/README.md.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/README.md.tt</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/Rakefile.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/Rakefile.tt</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/bin/console.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/bin/console.tt</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/circleci/config.yml.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/circleci/config.yml.tt</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/ext/newgem/newgem.c.tt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/github/workflows/main.yml.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/github/workflows/main.yml.tt</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/gitignore.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/gitignore.tt</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/gitlab-ci.yml.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/gitlab-ci.yml.tt</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/lib/newgem.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/lib/newgem.rb.tt</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/lib/newgem/version.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/lib/newgem/version.rb.tt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/newgem.gemspec.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/newgem.gemspec.tt</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/rubocop.yml.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/rubocop.yml.tt</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/sig/newgem.rbs.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/sig/newgem.rbs.tt</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/spec/newgem_spec.rb.tt</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/templates/newgem/spec/spec_helper.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/spec/spec_helper.rb.tt</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/standard.yml.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/standard.yml.tt</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/templates/newgem/test/newgem_test.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/test/newgem_test.rb.tt</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/templates/newgem/test/test_helper.rb.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/test/test_helper.rb.tt</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/templates/newgem/travis.yml.tt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/travis.yml.tt</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/ui.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ui.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/ui/rg_proxy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ui/rg_proxy.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/ui/shell.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ui/shell.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/ui/silent.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ui/silent.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/uri_credentials_filter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/uri_credentials_filter.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/uri_normalizer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/uri_normalizer.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/.document</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/connection_pool/lib/connection_pool.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/connection_pool/lib/connection_pool.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/fileutils/lib/fileutils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/fileutils/lib/fileutils.rb</a></td><td class='right'>1918</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/errors.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb</a></td><td class='right'>837</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/molinillo/lib/molinillo/state.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/state.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb</a></td><td class='right'>764</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb</a></td><td class='right'>189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb</a></td><td class='right'>182</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb</a></td><td class='right'>411</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb</a></td><td class='right'>248</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/actions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions/create_file.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions/create_link.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/actions/directory.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions/directory.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/base.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/base.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/command.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/error.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/group.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/group.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/invocation.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/invocation.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/line_editor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/line_editor.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/nested_context.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/nested_context.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/parser.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/parser/arguments.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/parser/option.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/parser/option.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/parser/options.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/parser/options.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/rake_compat.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/rake_compat.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/runner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/runner.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/shell.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/shell.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/shell/basic.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/shell/basic.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/shell/color.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/shell/color.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/shell/html.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/shell/html.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/util.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/util.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendor/thor/lib/thor/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/version.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/tsort/lib/tsort.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/tsort/lib/tsort.rb</a></td><td class='right'>452</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/common.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/common.rb</a></td><td class='right'>729</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/file.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/ftp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/ftp.rb</a></td><td class='right'>267</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/generic.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/generic.rb</a></td><td class='right'>1587</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/http.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/http.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/https.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/https.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/ldap.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/ldap.rb</a></td><td class='right'>261</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/ldaps.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/ldaps.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/mailto.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/mailto.rb</a></td><td class='right'>293</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb</a></td><td class='right'>539</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/version.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/ws.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/ws.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendor/uri/lib/uri/wss.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/uri/lib/uri/wss.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendored_fileutils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendored_fileutils.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/vendored_molinillo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendored_molinillo.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendored_persistent.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendored_persistent.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendored_pub_grub.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendored_pub_grub.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vendored_thor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendored_thor.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendored_tsort.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendored_tsort.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/bundler/vendored_uri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendored_uri.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/version.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/bundler/version_ranges.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/version_ranges.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/vlad.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vlad.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/worker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/worker.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/bundler/yaml_serializer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/yaml_serializer.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/cgi.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/cgi/cgi.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/cgi.gemspec</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/cgi/cookie.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/cookie.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/cgi/core.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/core.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/cgi/html.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/html.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/cgi/session.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/session.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/cgi/session/pstore.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/session/pstore.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/cgi/util.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/util.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/cmath.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cmath.gemspec</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/cmath.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cmath.rb</a></td><td class='right'>435</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/csv.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv.rb</a></td><td class='right'>3765</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/csv/core_ext/array.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/core_ext/array.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/csv/core_ext/string.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/core_ext/string.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/csv/csv.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/csv.gemspec</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/csv/delete_suffix.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/delete_suffix.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/csv/fields_converter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/fields_converter.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/csv/input_record_separator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/input_record_separator.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/csv/match_p.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/match_p.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/csv/parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/parser.rb</a></td><td class='right'>1289</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/csv/row.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/row.rb</a></td><td class='right'>640</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/csv/table.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/table.rb</a></td><td class='right'>903</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/csv/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/version.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/csv/writer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/writer.rb</a></td><td class='right'>210</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/debug.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/debug.rb</a></td><td class='right'>1111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/delegate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/delegate.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/delegate/delegate.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/delegate/delegate.gemspec</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean.rb</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/core_ext/name_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/core_ext/name_error.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/did_you_mean.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/did_you_mean.gemspec</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/experimental.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/experimental.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/formatter.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/formatters/plain_formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/formatters/plain_formatter.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/formatters/verbose_formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/formatters/verbose_formatter.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/jaro_winkler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/jaro_winkler.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/levenshtein.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/levenshtein.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/spell_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/spell_checker.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/spell_checkers/key_error_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/spell_checkers/key_error_checker.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/spell_checkers/method_name_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/spell_checkers/method_name_checker.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/spell_checkers/name_error_checkers.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/spell_checkers/name_error_checkers.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/spell_checkers/null_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/spell_checkers/null_checker.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/spell_checkers/pattern_key_name_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/spell_checkers/pattern_key_name_checker.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/spell_checkers/require_path_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/spell_checkers/require_path_checker.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/tree_spell_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/tree_spell_checker.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/verbose.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/verbose.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/did_you_mean/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/did_you_mean/version.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/drb/drb.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/drb.gemspec</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/drb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/drb.rb</a></td><td class='right'>269</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/extserv.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/extserv.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/extservm.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/extservm.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/observer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/observer.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/ssl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/ssl.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/drb/unix.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/unix.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/drb/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/version.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/drb/weakidconv.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/weakidconv.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/e2mmap.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/e2mmap.gemspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/e2mmap.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/e2mmap.rb</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/e2mmap/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/e2mmap/version.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/erb.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/erb.gemspec</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/erb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/erb.rb</a></td><td class='right'>646</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/erb/compiler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/erb/compiler.rb</a></td><td class='right'>471</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/erb/def_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/erb/def_method.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/erb/util.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/erb/util.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/erb/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/erb/version.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/error_highlight.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/error_highlight.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/error_highlight/base.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/error_highlight/base.rb</a></td><td class='right'>514</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/error_highlight/core_ext.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/error_highlight/core_ext.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/error_highlight/error_highlight.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/error_highlight/error_highlight.gemspec</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/error_highlight/formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/error_highlight/formatter.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/error_highlight/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/error_highlight/version.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/fileutils.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/fileutils.gemspec</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/fileutils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/fileutils.rb</a></td><td class='right'>1836</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/fileutils/fileutils.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/fileutils/fileutils.gemspec</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/fileutils/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/fileutils/version.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/find.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/find.gemspec</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/find.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/find.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/forwardable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/forwardable.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/forwardable/forwardable.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/forwardable/forwardable.gemspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/forwardable/impl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/forwardable/impl.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/getoptlong.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/getoptlong.rb</a></td><td class='right'>576</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/getoptlong/getoptlong.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/getoptlong/getoptlong.gemspec</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/ipaddr.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ipaddr.gemspec</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/ipaddr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ipaddr.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb.rb</a></td><td class='right'>445</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/.document</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/backtrace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/backtrace.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/break.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/break.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/catch.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/catch.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/chws.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/chws.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/continue.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/continue.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/debug.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/debug.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/delete.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/delete.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/edit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/edit.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/finish.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/finish.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/fork.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/fork.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/help.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/help.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/info.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/info.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/irb_info.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/irb_info.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/load.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/load.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/ls.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/ls.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/measure.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/measure.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/next.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/next.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/nop.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/nop.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/pushws.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/pushws.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/show_cmds.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/show_cmds.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/show_source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/show_source.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/step.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/step.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/cmd/subirb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/subirb.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/cmd/whereami.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/whereami.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/color.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/color.rb</a></td><td class='right'>266</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/color_printer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/color_printer.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/completion.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/completion.rb</a></td><td class='right'>373</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/context.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/context.rb</a></td><td class='right'>281</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/easter-egg.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/easter-egg.rb</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/change-ws.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/change-ws.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/history.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/history.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/loader.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/loader.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/multi-irb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/multi-irb.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/save-history.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/save-history.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/tracer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/tracer.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/use-loader.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/use-loader.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ext/workspaces.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/workspaces.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/extend-command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/extend-command.rb</a></td><td class='right'>297</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/frame.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/frame.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/help.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/help.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/init.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/init.rb</a></td><td class='right'>208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/input-method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/input-method.rb</a></td><td class='right'>311</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/inspector.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/inspector.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/irb.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/irb.gemspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/irb/lc/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/.document</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/lc/error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/error.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/lc/help-message?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/help-message</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/lc/ja/encoding_aliases.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/ja/encoding_aliases.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/lc/ja/error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/ja/error.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/lc/ja/help-message?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/ja/help-message</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/locale.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/locale.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/notifier.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/notifier.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/output-method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/output-method.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/ruby-lex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ruby-lex.rb</a></td><td class='right'>1660</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/irb/ruby-token.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ruby-token.rb</a></td><td class='right'>267</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/irb/ruby_logo.aa?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ruby_logo.aa</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/irb/slex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/slex.rb</a></td><td class='right'>282</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/version.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/workspace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/workspace.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/irb/xmp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/xmp.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/logger.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/logger.gemspec</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/logger.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/logger.rb</a></td><td class='right'>1100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/logger/errors.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/logger/errors.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/logger/formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/logger/formatter.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/logger/log_device.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/logger/log_device.rb</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/logger/logger.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/logger/logger.gemspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/logger/period.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/logger/period.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/logger/severity.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/logger/severity.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/logger/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/logger/version.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/matrix.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/matrix.rb</a></td><td class='right'>2374</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/matrix/eigenvalue_decomposition.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/matrix/eigenvalue_decomposition.rb</a></td><td class='right'>882</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/matrix/lup_decomposition.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/matrix/lup_decomposition.rb</a></td><td class='right'>219</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/matrix/matrix.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/matrix/matrix.gemspec</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/mkmf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/mkmf.rb</a></td><td class='right'>339</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/monitor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/monitor.rb</a></td><td class='right'>323</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/mutex_m.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/mutex_m.gemspec</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/mutex_m.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/mutex_m.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/net/ftp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/ftp.rb</a></td><td class='right'>1493</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http.rb</a></td><td class='right'>2176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http/backward.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http/backward.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http/exceptions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http/exceptions.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http/generic_request.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http/generic_request.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http/header.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http/header.rb</a></td><td class='right'>763</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/http/net-http.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http/net-http.gemspec</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http/proxy_delta.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http/proxy_delta.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http/request.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http/request.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http/requests.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http/requests.rb</a></td><td class='right'>352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http/response.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http/response.rb</a></td><td class='right'>374</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http/responses.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http/responses.rb</a></td><td class='right'>1313</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/http/status.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http/status.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/https.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/https.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/net/imap.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/imap.rb</a></td><td class='right'>3726</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/net-protocol.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/net-protocol.gemspec</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/net/pop.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/pop.rb</a></td><td class='right'>1022</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/net/protocol.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/protocol.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/net/smtp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/smtp.rb</a></td><td class='right'>1078</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/observer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/observer.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/observer/observer.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/observer/observer.gemspec</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/open-uri.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/open-uri.gemspec</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/open-uri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/open-uri.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/open3.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/open3.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/open3/open3.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/open3/open3.gemspec</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/open3/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/open3/version.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/optparse.rb</a></td><td class='right'>353</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse/ac.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/optparse/ac.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse/date.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/optparse/date.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse/kwargs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/optparse/kwargs.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/optparse/optparse.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/optparse/optparse.gemspec</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse/shellwords.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/optparse/shellwords.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse/time.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/optparse/time.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/optparse/uri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/optparse/uri.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/ostruct.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ostruct.gemspec</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/ostruct.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ostruct.rb</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/ostruct/ostruct.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ostruct/ostruct.gemspec</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/pp.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/pp.gemspec</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/pp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/pp.rb</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/prettyprint.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/prettyprint.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/prettyprint.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/prettyprint.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/prime.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/prime.gemspec</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/prime.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/prime.rb</a></td><td class='right'>463</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/profile.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/profile.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/profiler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/profiler.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/pstore.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/pstore.rb</a></td><td class='right'>584</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/pstore/pstore.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/pstore/pstore.gemspec</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/compat.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/compat.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/debugflags.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/debugflags.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/exception.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/exception.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/grammar.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/grammar.rb</a></td><td class='right'>1118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/grammarfileparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/grammarfileparser.rb</a></td><td class='right'>561</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/info.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/info.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/iset.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/iset.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/logfilegenerator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/logfilegenerator.rb</a></td><td class='right'>212</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/parser-text.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/parser-text.rb</a></td><td class='right'>637</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/racc/parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/parser.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/parserfilegenerator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/parserfilegenerator.rb</a></td><td class='right'>468</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/racc.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/racc.gemspec</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/racc/rdoc/grammar.en.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/rdoc/grammar.en.rdoc</a></td><td class='right'>219</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/sourcetext.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/sourcetext.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/state.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/state.rb</a></td><td class='right'>972</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/statetransitiontable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/statetransitiontable.rb</a></td><td class='right'>311</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/racc/static.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/racc/static.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/random/formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/random/formatter.rb</a></td><td class='right'>245</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/.document</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/any_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/any_method.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/class_module.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/class_module.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/code_objects.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/code_objects.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/comment.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/comment.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/context.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/context.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/context/section.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/context/section.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/cross_reference.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/cross_reference.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/erb_partial.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/erb_partial.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/erbio.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/erbio.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/darkfish.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/darkfish.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/markup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/markup.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/pot.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/pot.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_head.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_head.rhtml</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/class.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/class.rhtml</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/css/rdoc.css?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/css/rdoc.css</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf</a></td><td class='right'>bin</td><td class='graph'>71200 -> 138268 bytes<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf</a></td><td class='right'>bin</td><td class='graph'>71692 -> 138680 bytes<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/index.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/index.rhtml</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/js/darkfish.js?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/js/darkfish.js</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/js/jquery.js?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/js/jquery.js</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/js/search.js?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/js/search.js</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/servlet_root.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/servlet_root.rhtml</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/darkfish/table_of_contents.rhtml</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/json_index/js/navigation.js?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/json_index/js/navigation.js</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/generator/template/json_index/js/searcher.js?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/generator/template/json_index/js/searcher.js</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/i18n.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/i18n.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/known_classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/known_classes.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markdown.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markdown.rb</a></td><td class='right'>786</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markdown/literals.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markdown/literals.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup.rb</a></td><td class='right'>703</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup/attr_span.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/attr_span.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup/attribute_manager.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/attribute_manager.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup/formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/formatter.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rdoc/markup/formatter_test_case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/formatter_test_case.rb</a></td><td class='right'>764</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup/parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/parser.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup/pre_process.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/pre_process.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rdoc/markup/table.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/table.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup/to_html.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/to_html.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup/to_html_crossref.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/to_html_crossref.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup/to_joined_paragraph.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/to_joined_paragraph.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup/to_label.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/to_label.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup/to_rdoc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/to_rdoc.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/markup/to_table_of_contents.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/markup/to_table_of_contents.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/method_attr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/method_attr.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/normal_class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/normal_class.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/normal_module.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/normal_module.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/options.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/options.rb</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/parser.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/parser/c.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/parser/c.rb</a></td><td class='right'>380</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/parser/changelog.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/parser/changelog.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/parser/ripper_state_lex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/parser/ripper_state_lex.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/parser/ruby.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/parser/ruby.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/rd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/rd.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/rd/block_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/rd/block_parser.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/rd/inline_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/rd/inline_parser.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/rdoc.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/rdoc.gemspec</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/rdoc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/rdoc.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/ri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/ri.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/ri/driver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/ri/driver.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/ri/paths.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/ri/paths.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/ri/task.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/ri/task.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/rubygems_hook.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/rubygems_hook.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/servlet.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/servlet.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/single_class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/single_class.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/stats.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/stats.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/store.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/store.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/task.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/task.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/text.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/text.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/token_stream.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/token_stream.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/tom_doc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/tom_doc.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rdoc/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rdoc/version.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/readline.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/readline.gemspec</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/readline.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/readline.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline.rb</a></td><td class='right'>600</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/ansi.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/ansi.rb</a></td><td class='right'>350</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/config.rb</a></td><td class='right'>401</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/general_io.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/general_io.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/history.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/history.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/key_actor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/key_actor.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/key_actor/base.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/key_actor/base.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/key_actor/emacs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/key_actor/emacs.rb</a></td><td class='right'>517</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/key_actor/vi_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/key_actor/vi_command.rb</a></td><td class='right'>518</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/key_actor/vi_insert.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/key_actor/vi_insert.rb</a></td><td class='right'>517</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/key_stroke.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/key_stroke.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/kill_ring.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/kill_ring.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/line_editor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/line_editor.rb</a></td><td class='right'>3357</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/reline.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/reline.gemspec</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/terminfo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/terminfo.rb</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/unicode.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/unicode.rb</a></td><td class='right'>665</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/unicode/east_asian_width.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/unicode/east_asian_width.rb</a></td><td class='right'>1164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/version.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/reline/windows.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/reline/windows.rb</a></td><td class='right'>497</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/resolv-replace.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/resolv-replace.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/resolv.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/resolv.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/resolv.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/resolv.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/attlistdecl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/attlistdecl.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/attribute.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/attribute.rb</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/cdata.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/cdata.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/child.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/child.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/comment.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/comment.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/doctype.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/doctype.rb</a></td><td class='right'>287</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/document.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/document.rb</a></td><td class='right'>291</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/dtd/attlistdecl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/dtd/attlistdecl.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/dtd/dtd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/dtd/dtd.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/dtd/elementdecl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/dtd/elementdecl.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/dtd/entitydecl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/dtd/entitydecl.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/dtd/notationdecl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/dtd/notationdecl.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/element.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/element.rb</a></td><td class='right'>1267</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/encoding.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/encoding.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/entity.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/entity.rb</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/formatters/default.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/formatters/default.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/formatters/pretty.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/formatters/pretty.rb</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/formatters/transitive.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/formatters/transitive.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/functions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/functions.rb</a></td><td class='right'>447</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/instruction.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/instruction.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/light/node.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/light/node.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/namespace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/namespace.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/node.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/node.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/output.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/output.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/parent.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/parent.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/parseexception.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/parseexception.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/parsers/baseparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/parsers/baseparser.rb</a></td><td class='right'>586</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/parsers/lightparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/parsers/lightparser.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/parsers/pullparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/parsers/pullparser.rb</a></td><td class='right'>197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/parsers/sax2parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/parsers/sax2parser.rb</a></td><td class='right'>273</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/parsers/streamparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/parsers/streamparser.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/parsers/treeparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/parsers/treeparser.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/parsers/ultralightparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/parsers/ultralightparser.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/parsers/xpathparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/parsers/xpathparser.rb</a></td><td class='right'>675</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/quickpath.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/quickpath.rb</a></td><td class='right'>266</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/rexml.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/rexml.gemspec</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/rexml.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/rexml.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/sax2listener.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/sax2listener.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/security.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/security.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/source.rb</a></td><td class='right'>298</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/streamlistener.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/streamlistener.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/syncenumerator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/syncenumerator.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/text.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/text.rb</a></td><td class='right'>424</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/undefinednamespaceexception.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/undefinednamespaceexception.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/validation/relaxng.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/validation/relaxng.rb</a></td><td class='right'>539</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/validation/validation.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/validation/validation.rb</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/validation/validationexception.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/validation/validationexception.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/xmldecl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/xmldecl.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/xmltokens.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/xmltokens.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/xpath.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/xpath.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rexml/xpath_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rexml/xpath_parser.rb</a></td><td class='right'>934</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rinda/rinda.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rinda/rinda.gemspec</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/0.9.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/0.9.rb</a></td><td class='right'>462</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/1.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/1.0.rb</a></td><td class='right'>485</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/2.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/2.0.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/atom.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/atom.rb</a></td><td class='right'>1025</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/content.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/content.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/content/1.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/content/1.0.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/content/2.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/content/2.0.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/converter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/converter.rb</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/dublincore.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/dublincore.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/dublincore/1.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/dublincore/1.0.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/dublincore/2.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/dublincore/2.0.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/dublincore/atom.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/dublincore/atom.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/image.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/image.rb</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/itunes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/itunes.rb</a></td><td class='right'>413</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/0.9.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/0.9.rb</a></td><td class='right'>509</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/1.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/1.0.rb</a></td><td class='right'>436</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/2.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/2.0.rb</a></td><td class='right'>224</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/atom.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/atom.rb</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/base.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/base.rb</a></td><td class='right'>945</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/content.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/content.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/dublincore.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/dublincore.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/entry.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/feed.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/feed.rb</a></td><td class='right'>427</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/image.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/image.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/itunes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/itunes.rb</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/slash.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/slash.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/syndication.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/syndication.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/taxonomy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/taxonomy.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/maker/trackback.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/maker/trackback.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/parser.rb</a></td><td class='right'>589</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/rexmlparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/rexmlparser.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/rss.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/rss.gemspec</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/rss.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/rss.rb</a></td><td class='right'>1346</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/slash.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/slash.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/syndication.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/syndication.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/taxonomy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/taxonomy.rb</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/trackback.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/trackback.rb</a></td><td class='right'>291</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/utils.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/xml-stylesheet.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/xml-stylesheet.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/xml.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/xml.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/xmlparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/xmlparser.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rss/xmlscanner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rss/xmlscanner.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/ruby2_keywords.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ruby2_keywords.gemspec</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/ruby_vm/mjit/c_pointer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ruby_vm/mjit/c_pointer.rb</a></td><td class='right'>329</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/ruby_vm/mjit/c_type.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ruby_vm/mjit/c_type.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/ruby_vm/mjit/compiler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ruby_vm/mjit/compiler.rb</a></td><td class='right'>952</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/ruby_vm/mjit/hooks.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ruby_vm/mjit/hooks.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems.rb</a></td><td class='right'>643</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/available_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/available_set.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/basic_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/basic_specification.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/bundler_version_finder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/bundler_version_finder.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/command.rb</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/command_manager.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/command_manager.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/build_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/build_command.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/cert_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/cert_command.rb</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/check_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/check_command.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/cleanup_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/cleanup_command.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/contents_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/contents_command.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/dependency_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/dependency_command.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/environment_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/environment_command.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/commands/exec_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/exec_command.rb</a></td><td class='right'>249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/fetch_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/fetch_command.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/generate_index_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/generate_index_command.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/help_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/help_command.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/info_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/info_command.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/install_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/install_command.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/list_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/list_command.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/lock_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/lock_command.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/mirror_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/mirror_command.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/open_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/open_command.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/outdated_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/outdated_command.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/owner_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/owner_command.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/pristine_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/pristine_command.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/push_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/push_command.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/query_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/query_command.rb</a></td><td class='right'>359</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/rdoc_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/rdoc_command.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/search_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/search_command.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/server_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/server_command.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/setup_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/setup_command.rb</a></td><td class='right'>530</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/signin_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/signin_command.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/signout_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/signout_command.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/sources_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/sources_command.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/specification_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/specification_command.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/stale_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/stale_command.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/uninstall_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/uninstall_command.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/unpack_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/unpack_command.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/update_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/update_command.rb</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/which_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/which_command.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/commands/yank_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/commands/yank_command.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/compatibility.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/compatibility.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/config_file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/config_file.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/core_ext/kernel_gem.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/core_ext/kernel_gem.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/core_ext/kernel_require.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/core_ext/kernel_require.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/core_ext/kernel_warn.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/core_ext/kernel_warn.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/core_ext/tcpsocket_init.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/core_ext/tcpsocket_init.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/defaults.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/defaults.rb</a></td><td class='right'>189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/dependency.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/dependency.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/dependency_installer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/dependency_installer.rb</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/dependency_list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/dependency_list.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/deprecate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/deprecate.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/doctor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/doctor.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/errors.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/errors.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/exceptions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/exceptions.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/ext.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ext.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/ext/build_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ext/build_error.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/ext/builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ext/builder.rb</a></td><td class='right'>179</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ext/cargo_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ext/cargo_builder.rb</a></td><td class='right'>360</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ext/cargo_builder/link_flag_converter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ext/cargo_builder/link_flag_converter.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/ext/cmake_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ext/cmake_builder.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/ext/configure_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ext/configure_builder.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/ext/ext_conf_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ext/ext_conf_builder.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/ext/rake_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ext/rake_builder.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/gem_runner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/gem_runner.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/gemcutter_utilities.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/gemcutter_utilities.rb</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/gemcutter_utilities/webauthn_listener.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/gemcutter_utilities/webauthn_listener.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/gemcutter_utilities/webauthn_poller.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/gemcutter_utilities/webauthn_poller.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/indexer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/indexer.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/install_default_message.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/install_default_message.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/install_message.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/install_message.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/install_update_options.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/install_update_options.rb</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/installer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/installer.rb</a></td><td class='right'>450</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/installer_test_case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/installer_test_case.rb</a></td><td class='right'>185</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/installer_uninstaller_utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/installer_uninstaller_utils.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/local_remote_options.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/local_remote_options.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/mock_gem_ui.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/mock_gem_ui.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/name_tuple.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/name_tuple.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/openssl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/openssl.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/optparse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/optparse.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/optparse/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/optparse/.document</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/optparse/lib/optionparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/optparse/lib/optionparser.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/optparse/lib/optparse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/optparse/lib/optparse.rb</a></td><td class='right'>2308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/optparse/lib/optparse/ac.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/optparse/lib/optparse/ac.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/optparse/lib/optparse/date.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/optparse/lib/optparse/date.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/optparse/lib/optparse/kwargs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/optparse/lib/optparse/kwargs.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/optparse/lib/optparse/shellwords.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/optparse/lib/optparse/shellwords.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/optparse/lib/optparse/time.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/optparse/lib/optparse/time.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/optparse/lib/optparse/uri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/optparse/lib/optparse/uri.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/optparse/lib/optparse/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/optparse/lib/optparse/version.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/package.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package.rb</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/package/digest_io.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package/digest_io.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/package/file_source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package/file_source.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/package/io_source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package/io_source.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/package/old.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package/old.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/package/source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package/source.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/package/tar_header.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package/tar_header.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/package/tar_reader.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package/tar_reader.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/package/tar_reader/entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package/tar_reader/entry.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/package/tar_test_case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package/tar_test_case.rb</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/package/tar_writer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package/tar_writer.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/package_task.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/package_task.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/path_support.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/path_support.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/platform.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/platform.rb</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/psych_additions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/psych_additions.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/psych_tree.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/psych_tree.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/query_utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/query_utils.rb</a></td><td class='right'>351</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/rdoc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/rdoc.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/remote_fetcher.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/remote_fetcher.rb</a></td><td class='right'>201</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/request.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/request.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/request/connection_pools.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/request/connection_pools.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/request/http_pool.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/request/http_pool.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/request/https_pool.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/request/https_pool.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/request_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/request_set.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/request_set/gem_dependency_api.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/request_set/gem_dependency_api.rb</a></td><td class='right'>271</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/request_set/lockfile.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/request_set/lockfile.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/request_set/lockfile/parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/request_set/lockfile/parser.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/request_set/lockfile/tokenizer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/request_set/lockfile/tokenizer.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/requirement.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/requirement.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/activation_request.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/activation_request.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/api_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/api_set.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/resolver/api_set/gem_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/api_set/gem_parser.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/api_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/api_specification.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/best_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/best_set.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/composed_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/composed_set.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/conflict.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/conflict.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/current_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/current_set.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/dependency_request.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/dependency_request.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/git_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/git_set.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/git_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/git_specification.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/index_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/index_set.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/index_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/index_specification.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/installed_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/installed_specification.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/installer_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/installer_set.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/local_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/local_specification.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/lock_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/lock_set.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/lock_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/lock_specification.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb</a></td><td class='right'>675</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/molinillo/lib/molinillo/state.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/requirement_list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/requirement_list.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/set.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/source_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/source_set.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/spec_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/spec_specification.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/specification.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/stats.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/stats.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/vendor_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/vendor_set.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/resolver/vendor_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/resolver/vendor_specification.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/s3_uri_signer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/s3_uri_signer.rb</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/safe_yaml.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/safe_yaml.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/security.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/security.rb</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/security/policies.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/security/policies.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/security/policy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/security/policy.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/security/signer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/security/signer.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/security/trust_dir.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/security/trust_dir.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/security_option.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/security_option.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/server.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/server.rb</a></td><td class='right'>878</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/shellwords.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/shellwords.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/source.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/source/git.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/source/git.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/source/installed.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/source/installed.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/source/local.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/source/local.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/source/lock.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/source/lock.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/source/specific_file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/source/specific_file.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/source/vendor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/source/vendor.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/source_list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/source_list.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/source_local.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/source_local.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/source_specific_file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/source_specific_file.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/spec_fetcher.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/spec_fetcher.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/specification.rb</a></td><td class='right'>921</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/specification_policy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/specification_policy.rb</a></td><td class='right'>274</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem</a> (renamed from lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/stub_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/stub_specification.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/syck_hack.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/syck_hack.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/test_case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/test_case.rb</a></td><td class='right'>1631</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/rubygems/test_utilities.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/test_utilities.rb</a></td><td class='right'>369</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/text.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/text.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/tsort.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/tsort.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/tsort/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/tsort/.document</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/tsort/lib/tsort.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/tsort/lib/tsort.rb</a></td><td class='right'>452</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/uninstaller.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/uninstaller.rb</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/unknown_command_spell_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/unknown_command_spell_checker.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/update_suggestion.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/update_suggestion.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/rubygems/uri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/uri.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/uri_formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/uri_formatter.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/user_interaction.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/user_interaction.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/util.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/util.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/util/licenses.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/util/licenses.rb</a></td><td class='right'>916</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/util/list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/util/list.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/validator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/validator.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/version.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/rubygems/version_option.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/rubygems/version_option.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/scanf.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/scanf.gemspec</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/scanf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/scanf.rb</a></td><td class='right'>776</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/securerandom.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/securerandom.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/securerandom.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/securerandom.rb</a></td><td class='right'>279</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/set.rb</a></td><td class='right'>635</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/set/set.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/set/set.gemspec</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/set/sorted_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/set/sorted_set.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/shell.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/shell.rb</a></td><td class='right'>462</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/shell/builtin-command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/shell/builtin-command.rb</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/shell/command-processor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/shell/command-processor.rb</a></td><td class='right'>668</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/shell/error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/shell/error.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/shell/filter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/shell/filter.rb</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/shell/process-controller.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/shell/process-controller.rb</a></td><td class='right'>309</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/shell/shell.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/shell/shell.gemspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/shell/system-command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/shell/system-command.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/shell/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/shell/version.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/shellwords.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/shellwords.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/shellwords.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/shellwords.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/singleton.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/singleton.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/singleton/singleton.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/singleton/singleton.gemspec</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/sync.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/sync.gemspec</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/sync.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/sync.rb</a></td><td class='right'>328</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/api.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/api.rb</a></td><td class='right'>201</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/around_block_scan.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/around_block_scan.rb</a></td><td class='right'>232</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/block_expand.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/block_expand.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/capture/before_after_keyword_ends.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/capture/before_after_keyword_ends.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/capture/falling_indent_lines.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/capture/falling_indent_lines.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/capture_code_context.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/capture_code_context.rb</a></td><td class='right'>245</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/clean_document.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/clean_document.rb</a></td><td class='right'>306</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/cli.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/cli.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/code_block.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/code_block.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/code_frontier.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/code_frontier.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/code_line.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/code_line.rb</a></td><td class='right'>237</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/code_search.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/code_search.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/core_ext.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/core_ext.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/display_code_with_line_numbers.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/display_code_with_line_numbers.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/display_invalid_blocks.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/display_invalid_blocks.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/explain_syntax.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/explain_syntax.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/left_right_lex_count.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/left_right_lex_count.rb</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/lex_all.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/lex_all.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/lex_value.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/lex_value.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/parse_blocks_from_indent_line.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/parse_blocks_from_indent_line.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/pathname_from_message.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/pathname_from_message.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/priority_engulf_queue.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/priority_engulf_queue.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/priority_queue.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/priority_queue.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/ripper_errors.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/ripper_errors.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/scan_history.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/scan_history.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/syntax_suggest.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/syntax_suggest.gemspec</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/unvisited_lines.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/unvisited_lines.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/syntax_suggest/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/syntax_suggest/version.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/tempfile.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/tempfile.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/tempfile.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/tempfile.rb</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/thwait.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/thwait.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/thwait/thwait.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/thwait/thwait.gemspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/thwait/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/thwait/version.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/time.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/time.gemspec</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/time.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/time.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/timeout.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/timeout.rb</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/timeout/timeout.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/timeout/timeout.gemspec</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/tmpdir.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/tmpdir.gemspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/tmpdir.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/tmpdir.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/tracer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/tracer.rb</a></td><td class='right'>287</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/tracer/tracer.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/tracer/tracer.gemspec</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/tracer/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/tracer/version.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/tsort.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/tsort.gemspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/tsort.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/tsort.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/un.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/un.gemspec</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/un.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/un.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/unicode_normalize/normalize.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/unicode_normalize/normalize.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/unicode_normalize/tables.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/unicode_normalize/tables.rb</a></td><td class='right'>10335</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.8%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 95.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/common.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/common.rb</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/file.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/ftp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/ftp.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/generic.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/generic.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/http.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/http.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/https.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/https.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/ldap.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/ldap.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/ldaps.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/ldaps.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/mailto.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/mailto.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/rfc2396_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/rfc2396_parser.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/uri/rfc3986_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/rfc3986_parser.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/uri/uri.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/uri.gemspec</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/uri/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/version.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/uri/ws.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/ws.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/uri/wss.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/uri/wss.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/weakref.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/weakref.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/weakref/weakref.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/weakref/weakref.gemspec</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick.rb</a></td><td class='right'>227</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/accesslog.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/accesslog.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/httpauth/authenticator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/httpauth/authenticator.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/httpauth/digestauth.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/httpauth/digestauth.rb</a></td><td class='right'>410</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/httpproxy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/httpproxy.rb</a></td><td class='right'>350</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/httprequest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/httprequest.rb</a></td><td class='right'>626</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/httpresponse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/httpresponse.rb</a></td><td class='right'>518</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/httpserver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/httpserver.rb</a></td><td class='right'>294</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/httpservlet/cgihandler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/httpservlet/cgihandler.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/httpservlet/filehandler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/httpservlet/filehandler.rb</a></td><td class='right'>541</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/httputils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/httputils.rb</a></td><td class='right'>513</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/server.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/server.rb</a></td><td class='right'>378</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/ssl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/ssl.rb</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/utils.rb</a></td><td class='right'>270</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/version.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/webrick/webrick.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/webrick/webrick.gemspec</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/yaml.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/yaml.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/yaml/store.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/yaml/store.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/yaml/yaml.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/yaml/yaml.gemspec</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/libexec/bundle?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>libexec/bundle</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/libexec/bundle_ruby?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>libexec/bundle_ruby</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/libexec/bundler?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>libexec/bundler</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/libexec/erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>libexec/erb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/libexec/racc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>libexec/racc</a></td><td class='right'>320</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/libexec/rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>libexec/rdoc</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/libexec/syntax_suggest?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>libexec/syntax_suggest</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/load.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>load.c</a></td><td class='right'>1410</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/localeinit.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>localeinit.c</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/main.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>main.c</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-add.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-add.1</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-add.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-add.1.txt</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-add.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-add.ronn</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-binstubs.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-binstubs.1</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-binstubs.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-binstubs.1.txt</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-binstubs.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-binstubs.ronn</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-check.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-check.1</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-check.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-check.1.txt</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-clean.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-clean.1</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-clean.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-clean.1.txt</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-clean.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-clean.ronn</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-config.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-config.1</a></td><td class='right'>497</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-config.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-config.1.txt</a></td><td class='right'>529</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-config.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-config.ronn</a></td><td class='right'>397</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-doctor.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-doctor.1</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-doctor.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-doctor.1.txt</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-exec.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-exec.1</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-exec.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-exec.1.txt</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-exec.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-exec.ronn</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-gem.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-gem.1</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-gem.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-gem.1.txt</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-gem.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-gem.ronn</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-info.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-info.1</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-info.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-info.1.txt</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-info.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-info.ronn</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-init.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-init.1</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-init.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-init.1.txt</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-init.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-init.ronn</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-inject.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-inject.1</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-inject.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-inject.1.txt</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-inject.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-inject.ronn</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-install.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-install.1</a></td><td class='right'>308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-install.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-install.1.txt</a></td><td class='right'>396</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-install.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-install.ronn</a></td><td class='right'>378</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-list.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-list.1</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-list.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-list.1.txt</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-list.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-list.ronn</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-lock.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-lock.1</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-lock.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-lock.1.txt</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-open.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-open.1</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-open.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-open.1.txt</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-open.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-open.ronn</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-outdated.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-outdated.1</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-outdated.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-outdated.1.txt</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-outdated.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-outdated.ronn</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-package.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-package.1</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-package.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-package.1.txt</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-package.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-package.ronn</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-platform.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-platform.1</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-platform.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-platform.1.txt</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-platform.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-platform.ronn</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-pristine.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-pristine.1</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-pristine.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-pristine.1.txt</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-remove.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-remove.1</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-remove.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-remove.1.txt</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-show.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-show.1</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-show.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-show.1.txt</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-update.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-update.1</a></td><td class='right'>394</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-update.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-update.1.txt</a></td><td class='right'>391</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-update.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-update.ronn</a></td><td class='right'>350</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-viz.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-viz.1</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-viz.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-viz.1.txt</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle-viz.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-viz.ronn</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle.1</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle.1.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle.1.txt</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/bundle.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle.ronn</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/gemfile.5?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/gemfile.5</a></td><td class='right'>689</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/gemfile.5.ronn?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/gemfile.5.ronn</a></td><td class='right'>521</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/man/gemfile.5.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/gemfile.5.txt</a></td><td class='right'>653</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/man/index.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/index.txt</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/man/irb.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/irb.1</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/man/ruby.1?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>man/ruby.1</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/marshal.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>marshal.c</a></td><td class='right'>2128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/marshal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>marshal.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/math.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>math.c</a></td><td class='right'>713</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/memory_view.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>memory_view.c</a></td><td class='right'>872</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/method.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>method.h</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/mini_builtin.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>mini_builtin.c</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/miniinit.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>miniinit.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/misc/expand_tabs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/expand_tabs.rb</a></td><td class='right'>208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/misc/lldb_cruby.py?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/lldb_cruby.py</a></td><td class='right'>597</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/lldb_disasm.py?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/lldb_disasm.py</a></td><td class='right'>250</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/lldb_rb/commands/command_template.py?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/lldb_rb/commands/command_template.py</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/lldb_rb/commands/heap_page_command.py?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/lldb_rb/commands/heap_page_command.py</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/lldb_rb/commands/rclass_ext_command.py?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/lldb_rb/commands/rclass_ext_command.py</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/lldb_rb/constants.py?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/lldb_rb/constants.py</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/lldb_rb/rb_base_command.py?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/lldb_rb/rb_base_command.py</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/misc/lldb_yjit.py?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/lldb_yjit.py</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/misc/rb_optparse.bash?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/rb_optparse.bash</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/misc/rb_optparse.zsh?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/rb_optparse.zsh</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/misc/test_lldb_cruby.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>misc/test_lldb_cruby.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/alloca.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/alloca.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/crypt.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/crypt.h</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/dtoa.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/dtoa.c</a></td><td class='right'>3470</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/dup2.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/dup2.c</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/erf.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/erf.c</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/explicit_bzero.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/explicit_bzero.c</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/file.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/file.h</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/fileblocks.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/fileblocks.c</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/finite.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/finite.c</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/flock.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/flock.c</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/isinf.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/isinf.c</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/isnan.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/isnan.c</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/langinfo.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/langinfo.c</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/memcmp.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/memcmp.c</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/mt19937.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/mt19937.c</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/missing/procstat_vm.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/procstat_vm.c</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/setproctitle.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/setproctitle.c</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/signbit.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/signbit.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/stdbool.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/stdbool.h</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/missing/tgamma.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/tgamma.c</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/missing/x86_64-chkstk.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>missing/x86_64-chkstk.S</a> (renamed from missing/x86_64-chkstk.s)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/mjit.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>mjit.c</a></td><td class='right'>2116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/mjit.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>mjit.h</a></td><td class='right'>233</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/mjit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>mjit.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/mjit_c.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>mjit_c.c</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/mjit_c.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>mjit_c.h</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/mjit_c.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>mjit_c.rb</a></td><td class='right'>807</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/mjit_compile.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>mjit_compile.c</a></td><td class='right'>254</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/mjit_worker.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>mjit_worker.c</a></td><td class='right'>1253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/nilclass.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>nilclass.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/node.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>node.c</a></td><td class='right'>1841</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/node.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>node.h</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/numeric.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>numeric.c</a></td><td class='right'>5529</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.3%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 97.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/numeric.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>numeric.rb</a></td><td class='right'>405</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/object.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>object.c</a></td><td class='right'>3010</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/pack.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>pack.c</a></td><td class='right'>2692</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/pack.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>pack.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/parse.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>parse.y</a></td><td class='right'>5721</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.8%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/prelude.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>prelude.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/probes.d?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>probes.d</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/probes_helper.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>probes_helper.h</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/proc.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>proc.c</a></td><td class='right'>2405</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/process.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>process.c</a></td><td class='right'>3541</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ractor.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ractor.c</a></td><td class='right'>3327</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ractor.rb</a></td><td class='right'>842</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ractor_core.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ractor_core.h</a></td><td class='right'>342</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/random.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>random.c</a></td><td class='right'>1399</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/range.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>range.c</a></td><td class='right'>2235</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/rational.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>rational.c</a></td><td class='right'>1343</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/re.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>re.c</a></td><td class='right'>3132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/regcomp.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>regcomp.c</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/regenc.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>regenc.c</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/regenc.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>regenc.h</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/regerror.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>regerror.c</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/regexec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>regexec.c</a></td><td class='right'>843</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/regint.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>regint.h</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/regparse.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>regparse.c</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ruby-runner.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ruby-runner.c</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ruby.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ruby.c</a></td><td class='right'>2790</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ruby_assert.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ruby_assert.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ruby_atomic.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>ruby_atomic.h</a></td><td class='right'>267</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/rubystub.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>rubystub.c</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/safe.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>safe.c</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/README?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/README</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/biorhythm.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/biorhythm.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/coverage.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/coverage.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/dir.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/dir.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/README.ja.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/drb/README.ja.rdoc</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/README.rdoc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/drb/README.rdoc</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/dchats.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/drb/dchats.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/http0serv.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/drb/http0serv.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/name.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/drb/name.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/drb/old_tuplespace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/drb/old_tuplespace.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/exyacc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/exyacc.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/fact.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/fact.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/freq.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/freq.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/from.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/from.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/getoptlong/abbrev.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/getoptlong/abbrev.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/getoptlong/aliases.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/getoptlong/aliases.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/getoptlong/argv.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/getoptlong/argv.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/getoptlong/each.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/getoptlong/each.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/getoptlong/fibonacci.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/getoptlong/fibonacci.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/getoptlong/permute.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/getoptlong/permute.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/getoptlong/require_order.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/getoptlong/require_order.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/getoptlong/return_in_order.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/getoptlong/return_in_order.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/getoptlong/simple.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/getoptlong/simple.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/getoptlong/types.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/getoptlong/types.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/list.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/list3.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/list3.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/sample/mine.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/mine.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/mpart.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/mpart.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/observ.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/observ.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/occur.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/occur.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/occur2.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/occur2.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/c_rehash.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/openssl/c_rehash.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/cert2text.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/openssl/cert2text.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/certstore.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/openssl/certstore.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/echo_cli.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/openssl/echo_cli.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/echo_svr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/openssl/echo_svr.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/gen_csr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/openssl/gen_csr.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/smime_read.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/openssl/smime_read.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/openssl/smime_write.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/openssl/smime_write.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/sample/rss/blend.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/rss/blend.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/sample/rss/convert.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/rss/convert.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/sample/rss/list_description.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/rss/list_description.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/sample/rss/re_read.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/rss/re_read.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/sample/rss/rss_recent.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/rss/rss_recent.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/sample/test.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/test.rb</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/testunit/adder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/testunit/adder.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/testunit/subtracter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/testunit/subtracter.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/testunit/tc_adder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/testunit/tc_adder.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/testunit/tc_subtracter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/testunit/tc_subtracter.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/testunit/ts_examples.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/testunit/ts_examples.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/trick2013/kinaba/remarks.markdown?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2013/kinaba/remarks.markdown</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/trick2013/mame/remarks.markdown?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2013/mame/remarks.markdown</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/trick2013/yhara/entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2013/yhara/entry.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/trick2015/kinaba/entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2015/kinaba/entry.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/trick2015/ksk_2/remarks.markdown?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2015/ksk_2/remarks.markdown</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/trick2018/01-kinaba/remarks.markdown?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2018/01-kinaba/remarks.markdown</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/trick2018/02-mame/entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2018/02-mame/entry.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/trick2018/05-tompng/remarks.markdown?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2018/05-tompng/remarks.markdown</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/01-tompng/Gemfile?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/01-tompng/Gemfile</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/01-tompng/Gemfile.lock?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/01-tompng/Gemfile.lock</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/01-tompng/authors.markdown?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/01-tompng/authors.markdown</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/01-tompng/entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/01-tompng/entry.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/01-tompng/remarks.markdown?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/01-tompng/remarks.markdown</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/02-tompng/authors.markdown?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/02-tompng/authors.markdown</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/02-tompng/entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/02-tompng/entry.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/02-tompng/remarks.markdown?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/02-tompng/remarks.markdown</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/03-mame/authors.markdown?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/03-mame/authors.markdown</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/03-mame/entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/03-mame/entry.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/03-mame/remarks.markdown?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/03-mame/remarks.markdown</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/03-mame/test.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/03-mame/test.txt</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/sample/trick2022/README.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/trick2022/README.md</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sample/uumerge.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/uumerge.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/webrick/demo-app.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/webrick/demo-app.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/webrick/demo-multipart.cgi?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/webrick/demo-multipart.cgi</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/webrick/demo-servlet.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/webrick/demo-servlet.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/webrick/demo-urlencoded.cgi?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/webrick/demo-urlencoded.cgi</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/webrick/hello.cgi?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/webrick/hello.cgi</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/webrick/hello.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/webrick/hello.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/webrick/httpd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/webrick/httpd.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/webrick/httpproxy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/webrick/httpproxy.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/sample/webrick/httpsd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sample/webrick/httpsd.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/scheduler.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>scheduler.c</a></td><td class='right'>687</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/shape.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>shape.c</a></td><td class='right'>825</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/shape.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>shape.h</a></td><td class='right'>232</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/signal.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>signal.c</a></td><td class='right'>784</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/siphash.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>siphash.c</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sparc.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sparc.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/README.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/README.md</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/bundler/build_metadata_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/build_metadata_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/bundler_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/bundler_spec.rb</a></td><td class='right'>316</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/cli_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/cli_spec.rb</a></td><td class='right'>187</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/compact_index_client/updater_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/compact_index_client/updater_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/definition_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/definition_spec.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/bundler/dep_proxy_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/dep_proxy_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/bundler/dependency_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/dependency_spec.rb</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/bundler/digest_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/digest_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/dsl_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/dsl_spec.rb</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/endpoint_specification_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/endpoint_specification_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/env_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/env_spec.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/fetcher/base_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/fetcher/base_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/fetcher/compact_index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/fetcher/compact_index_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/fetcher/dependency_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/fetcher/dependency_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/fetcher/downloader_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/fetcher/downloader_spec.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/fetcher/index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/fetcher/index_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/fetcher_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/fetcher_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/friendly_errors_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/friendly_errors_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/gem_helper_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/gem_helper_spec.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/gem_version_promoter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/gem_version_promoter_spec.rb</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/installer/gem_installer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/installer/gem_installer_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/installer/parallel_installer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/installer/parallel_installer_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/installer/spec_installation_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/installer/spec_installation_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/mirror_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/mirror_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/plugin/api/source_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/plugin/api/source_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/plugin/dsl_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/plugin/dsl_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/plugin/events_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/plugin/events_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/plugin/index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/plugin/index_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/plugin/installer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/plugin/installer_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/plugin_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/plugin_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/bundler/psyched_yaml_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/psyched_yaml_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/remote_specification_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/remote_specification_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/bundler/resolver/candidate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/resolver/candidate_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/ruby_dsl_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/ruby_dsl_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/ruby_version_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/ruby_version_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/rubygems_integration_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/rubygems_integration_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/settings_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/settings_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/shared_helpers_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/shared_helpers_spec.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/source/git/git_proxy_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/source/git/git_proxy_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/source/git_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/source/git_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/source/rubygems/remote_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/source/rubygems/remote_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/source/rubygems_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/source/rubygems_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/source_list_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/source_list_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/source_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/source_spec.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/bundler/ssl_certs/certificate_manager_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/ssl_certs/certificate_manager_spec.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/stub_specification_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/stub_specification_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/ui/shell_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/ui/shell_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/ui_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/ui_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/uri_credentials_filter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/uri_credentials_filter_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/bundler/vendored_persistent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/vendored_persistent_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/bundler/version_ranges_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/version_ranges_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/bundler/worker_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/bundler/worker_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/cache/cache_path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/cache/cache_path_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/cache/gems_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/cache/gems_spec.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/cache/git_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/cache/git_spec.rb</a></td><td class='right'>358</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/cache/path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/cache/path_spec.rb</a></td><td class='right'>230</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/cache/platform_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/cache/platform_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/add_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/add_spec.rb</a></td><td class='right'>198</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/binstubs_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/binstubs_spec.rb</a></td><td class='right'>363</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/commands/cache_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/cache_spec.rb</a></td><td class='right'>428</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/check_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/check_spec.rb</a></td><td class='right'>432</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/clean_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/clean_spec.rb</a></td><td class='right'>403</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/config_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/config_spec.rb</a></td><td class='right'>386</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/console_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/console_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/doctor_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/doctor_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/exec_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/exec_spec.rb</a></td><td class='right'>824</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/commands/fund_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/fund_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/help_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/help_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/info_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/info_spec.rb</a></td><td class='right'>222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/init_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/init_spec.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/inject_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/inject_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/install_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/install_spec.rb</a></td><td class='right'>827</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/issue_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/issue_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/licenses_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/licenses_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/list_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/list_spec.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/lock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/lock_spec.rb</a></td><td class='right'>1031</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/newgem_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/newgem_spec.rb</a></td><td class='right'>1606</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/open_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/open_spec.rb</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/outdated_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/outdated_spec.rb</a></td><td class='right'>1098</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/commands/package_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/package_spec.rb</a></td><td class='right'>306</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/commands/platform_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/platform_spec.rb</a></td><td class='right'>1307</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/commands/post_bundle_message_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/post_bundle_message_spec.rb</a></td><td class='right'>205</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/pristine_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/pristine_spec.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/remove_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/remove_spec.rb</a></td><td class='right'>393</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/show_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/show_spec.rb</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/update_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/update_spec.rb</a></td><td class='right'>1366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/version_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/version_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/commands/viz_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/commands/viz_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/allow_offline_install_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/allow_offline_install_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/binstubs_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/binstubs_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/bundler_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/bundler_spec.rb</a></td><td class='right'>237</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/deploy_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/deploy_spec.rb</a></td><td class='right'>531</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/failure_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/failure_spec.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemfile/eval_gemfile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/eval_gemfile_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/install/gemfile/force_ruby_platform_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/force_ruby_platform_spec.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemfile/gemspec_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/gemspec_spec.rb</a></td><td class='right'>527</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemfile/git_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/git_spec.rb</a></td><td class='right'>727</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemfile/groups_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/groups_spec.rb</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/install/gemfile/install_if.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/install_if.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/install/gemfile/install_if_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/install_if_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemfile/lockfile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/lockfile_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemfile/path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/path_spec.rb</a></td><td class='right'>526</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemfile/platform_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/platform_spec.rb</a></td><td class='right'>400</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemfile/ruby_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/ruby_spec.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemfile/sources_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/sources_spec.rb</a></td><td class='right'>1593</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemfile/specific_platform_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile/specific_platform_spec.rb</a></td><td class='right'>1001</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemfile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemfile_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gems/compact_index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/compact_index_spec.rb</a></td><td class='right'>400</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gems/dependency_api_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/dependency_api_spec.rb</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gems/env_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/env_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gems/flex_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/flex_spec.rb</a></td><td class='right'>219</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/install/gems/fund_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/fund_spec.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gems/mirror_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/mirror_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gems/native_extensions_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/native_extensions_spec.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gems/post_install_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/post_install_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gems/resolving_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/resolving_spec.rb</a></td><td class='right'>489</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gems/standalone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/standalone_spec.rb</a></td><td class='right'>390</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/install/gems/sudo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/sudo_spec.rb</a></td><td class='right'>178</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gems/win32_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gems/win32_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/gemspecs_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/gemspecs_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/git_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/git_spec.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/global_cache_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/global_cache_spec.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/path_spec.rb</a></td><td class='right'>184</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/install/post_bundle_message_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/post_bundle_message_spec.rb</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/prereleases_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/prereleases_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/process_lock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/process_lock_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/redownload_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/redownload_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/security_policy_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/security_policy_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/install/yanked_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/install/yanked_spec.rb</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/lock/git_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/lock/git_spec.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/lock/lockfile_bundler_1_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/lock/lockfile_bundler_1_spec.rb</a></td><td class='right'>1386</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/lock/lockfile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/lock/lockfile_spec.rb</a></td><td class='right'>905</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/other/bundle_ruby_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/other/bundle_ruby_spec.rb</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/other/cli_dispatch_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/other/cli_dispatch_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/other/compatibility_guard_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/other/compatibility_guard_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/other/ext_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/other/ext_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/other/major_deprecation_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/other/major_deprecation_spec.rb</a></td><td class='right'>693</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/other/platform_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/other/platform_spec.rb</a></td><td class='right'>1312</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/other/ssl_cert_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/other/ssl_cert_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/plugins/command_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/plugins/command_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/plugins/hook_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/plugins/hook_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/plugins/install_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/plugins/install_spec.rb</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/plugins/list_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/plugins/list_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/plugins/source/example_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/plugins/source/example_spec.rb</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/plugins/source_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/plugins/source_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/plugins/uninstall_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/plugins/uninstall_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/quality_es_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/quality_es_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/quality_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/quality_spec.rb</a></td><td class='right'>231</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/realworld/dependency_api_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/dependency_api_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/realworld/double_check_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/double_check_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/realworld/edgecases_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/edgecases_spec.rb</a></td><td class='right'>514</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/realworld/ffi_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/ffi_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/realworld/fixtures/warbler/.gitignore?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/fixtures/warbler/.gitignore</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/realworld/fixtures/warbler/Gemfile?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/fixtures/warbler/Gemfile</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/realworld/fixtures/warbler/Gemfile.lock?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/fixtures/warbler/Gemfile.lock</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/realworld/fixtures/warbler/bin/warbler-example.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/fixtures/warbler/bin/warbler-example.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/realworld/fixtures/warbler/demo/demo.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/fixtures/warbler/demo/demo.gemspec</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/realworld/gemfile_source_header_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/gemfile_source_header_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/realworld/git_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/git_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/realworld/mirror_probe_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/mirror_probe_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/realworld/parallel_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/parallel_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/realworld/slow_perf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/realworld/slow_perf_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/resolver/basic_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/resolver/basic_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/resolver/platform_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/resolver/platform_spec.rb</a></td><td class='right'>335</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/runtime/executable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/runtime/executable_spec.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/runtime/gem_tasks_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/runtime/gem_tasks_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/runtime/inline_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/runtime/inline_spec.rb</a></td><td class='right'>450</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/runtime/load_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/runtime/load_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/runtime/platform_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/runtime/platform_spec.rb</a></td><td class='right'>360</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/runtime/require_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/runtime/require_spec.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/runtime/self_management_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/runtime/self_management_spec.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/runtime/setup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/runtime/setup_spec.rb</a></td><td class='right'>902</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/runtime/with_clean_env_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/runtime/with_clean_env_spec.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/runtime/with_unbundled_env_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/runtime/with_unbundled_env_spec.rb</a></td><td class='right'>302</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/spec_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/spec_helper.rb</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_api_missing.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_api_missing.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_basic_authentication.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_basic_authentication.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_checksum_mismatch.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_checksum_mismatch.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_concurrent_download.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_concurrent_download.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_creds_diff_host.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_creds_diff_host.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_extra.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_extra.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_extra_api.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_extra_api.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_extra_api_missing.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_extra_api_missing.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_extra_missing.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_extra_missing.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_forbidden.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_forbidden.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_host_redirect.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_host_redirect.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_no_gem.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_no_gem.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_partial_update.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_partial_update.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_partial_update_no_etag_not_incremental.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_partial_update_no_etag_not_incremental.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_precompiled_before.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_precompiled_before.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_range_not_satisfiable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_range_not_satisfiable.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_rate_limited.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_rate_limited.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_redirects.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_redirects.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_strict_basic_authentication.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_strict_basic_authentication.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_wrong_dependencies.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_wrong_dependencies.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/compact_index_wrong_gem_checksum.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/compact_index_wrong_gem_checksum.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/support/artifice/endopint_marshal_fail_basic_authentication.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endopint_marshal_fail_basic_authentication.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_500.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_500.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_api_forbidden.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_api_forbidden.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_api_missing.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_api_missing.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_basic_authentication.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_basic_authentication.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_creds_diff_host.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_creds_diff_host.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_extra.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_extra.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_extra_api.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_extra_api.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_extra_missing.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_extra_missing.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_fallback.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_fallback.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_host_redirect.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_host_redirect.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_marshal_fail.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_marshal_fail.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_marshal_fail_basic_authentication.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_marshal_fail_basic_authentication.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_mirror_source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_mirror_source.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_redirect.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_redirect.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_strict_basic_authentication.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_strict_basic_authentication.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/endpoint_timeout.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/endpoint_timeout.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/fail.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/fail.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/helpers/artifice.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/helpers/artifice.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/helpers/compact_index.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/helpers/compact_index.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/helpers/compact_index_extra.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/helpers/compact_index_extra.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/helpers/compact_index_extra_api.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/helpers/compact_index_extra_api.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/helpers/endpoint.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/helpers/endpoint.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/helpers/endpoint_extra.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/helpers/endpoint_extra.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/helpers/endpoint_fallback.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/helpers/endpoint_fallback.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/helpers/endpoint_marshal_fail.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/helpers/endpoint_marshal_fail.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/helpers/rack_request.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/helpers/rack_request.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/artifice/used_cassettes.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/used_cassettes.txt</a></td><td class='right'>20908</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 8.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/vcr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/vcr.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/artifice/windows.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/artifice/windows.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/build_metadata.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/build_metadata.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/builders.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/builders.rb</a></td><td class='right'>366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/bundle.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/bundle.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/support/code_climate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/code_climate.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/command_execution.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/command_execution.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/filters.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/filters.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/hax.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/hax.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/helpers.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/helpers.rb</a></td><td class='right'>567</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/indexes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/indexes.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/support/less_than_proc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/less_than_proc.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/support/manpages.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/manpages.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/matchers.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/matchers.rb</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/path.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/path.rb</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/platforms.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/platforms.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/rubygems_ext.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/rubygems_ext.rb</a></td><td class='right'>212</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/rubygems_version_manager.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/rubygems_version_manager.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/support/sometimes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/sometimes.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/support/streams.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/streams.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/bundler/support/sudo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/sudo.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/support/switch_rubygems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/switch_rubygems.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/support/the_bundle.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/support/the_bundle.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/update/gemfile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/update/gemfile_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/bundler/update/gems/fund_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/update/gems/fund_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/update/gems/post_install_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/update/gems/post_install_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/update/git_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/update/git_spec.rb</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/update/path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/update/path_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/bundler/update/redownload_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/bundler/update/redownload_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/default.mspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/default.mspec</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/.rspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/.rspec</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/Gemfile?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/Gemfile</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/Gemfile.lock?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/Gemfile.lock</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/README.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/README.md</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/bin/mspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/bin/mspec</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/commands/mkspec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/commands/mkspec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/commands/mspec-ci.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/commands/mspec-ci.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/commands/mspec-run.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/commands/mspec-run.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/commands/mspec-tag.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/commands/mspec-tag.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/commands/mspec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/commands/mspec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/expectations/expectations.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/expectations/expectations.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/expectations/should.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/expectations/should.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/bug.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/guards/bug.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/guard.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/guards/guard.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/platform.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/guards/platform.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/superuser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/guards/superuser.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/guards/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/guards/version.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/helpers.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/datetime.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/helpers/datetime.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/flunk.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/helpers/flunk.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/frozen_error_class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/helpers/frozen_error_class.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/fs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/helpers/fs.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/io.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/helpers/io.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/numeric.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/helpers/numeric.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/ruby_exe.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/helpers/ruby_exe.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/scratch.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/helpers/scratch.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/tmp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/helpers/tmp.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/helpers/warning.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/helpers/warning.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/base.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/base.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/be_close.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/be_close.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/complain.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/complain.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/eql.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/eql.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/equal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/equal.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/equal_element.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/equal_element.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_instance_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/have_instance_method.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/have_method.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_private_instance_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/have_private_instance_method.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_private_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/have_private_method.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/have_protected_instance_method.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_public_instance_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/have_public_instance_method.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/have_singleton_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/have_singleton_method.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/include.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/include.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/match_yaml.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/match_yaml.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/method.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/output.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/output.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/raise_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/raise_error.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/matchers/skip.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/matchers/skip.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/mocks/mock.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/mocks/mock.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/mocks/object.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/mocks/object.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/mocks/proxy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/mocks/proxy.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/constants_leak_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/actions/constants_leak_checker.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/filter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/actions/filter.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/leakchecker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/actions/leakchecker.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/profile.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/actions/profile.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/tag.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/actions/tag.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/taglist.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/actions/taglist.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/tally.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/actions/tally.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/actions/timeout.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/actions/timeout.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/context.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/context.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/evaluate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/evaluate.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/example.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/example.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/exception.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/exception.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/base.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/base.rb</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/describe.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/describe.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/dotted.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/dotted.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/file.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/html.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/html.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/junit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/junit.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/method.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/multi.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/multi.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/profile.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/profile.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/specdoc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/specdoc.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/spinner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/spinner.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/stats.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/stats.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/summary.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/summary.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/unit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/unit.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/formatters/yaml.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/formatters/yaml.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/mspec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/mspec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/object.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/object.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/parallel.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/parallel.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/shared.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/shared.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/runner/tag.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/runner/tag.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/format.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/utils/format.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/name_map.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/utils/name_map.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/options.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/utils/options.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/script.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/utils/script.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/utils/version.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/lib/mspec/utils/warnings.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/lib/mspec/utils/warnings.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/commands/mkspec_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/commands/mkspec_spec.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/commands/mspec_ci_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/commands/mspec_ci_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/commands/mspec_run_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/commands/mspec_run_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/commands/mspec_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/commands/mspec_spec.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/commands/mspec_tag_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/commands/mspec_tag_spec.rb</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/expectations/expectations_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/expectations/expectations_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/mspec/spec/expectations/should.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/expectations/should.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/expectations/should_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/expectations/should_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/fixtures/config.mspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/fixtures/config.mspec</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/fixtures/my_ruby?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/fixtures/my_ruby</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/mspec/spec/fixtures/should.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/fixtures/should.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/block_device_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/block_device_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/bug_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/bug_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/conflict_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/conflict_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/endian_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/endian_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/feature_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/feature_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/guard_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/guard_spec.rb</a></td><td class='right'>222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/platform_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/platform_spec.rb</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/quarantine_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/quarantine_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/superuser_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/superuser_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/support_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/support_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/user_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/user_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/guards/version_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/guards/version_spec.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/argf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/argf_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/argv_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/argv_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/datetime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/datetime_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/fixture_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/fixture_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/flunk_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/flunk_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/fs_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/fs_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/io_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/io_spec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/mock_to_path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/mock_to_path_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/numeric_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/numeric_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/ruby_exe_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/ruby_exe_spec.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/scratch_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/scratch_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/suppress_warning_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/suppress_warning_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/helpers/tmp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/helpers/tmp_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/integration/interpreter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/integration/interpreter_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/integration/object_methods_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/integration/object_methods_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/integration/run_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/integration/run_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/integration/tag_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/integration/tag_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/base_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/base_spec.rb</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_an_instance_of_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/be_an_instance_of_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_ancestor_of_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/be_ancestor_of_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/be_close_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_computed_by_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/be_computed_by_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/be_empty_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_false_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/be_false_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_kind_of_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/be_kind_of_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_nan_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/be_nan_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_nil_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/be_nil_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_true_or_false_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/be_true_or_false_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/be_true_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/be_true_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/block_caller_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/block_caller_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/complain_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/complain_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/eql_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/eql_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/equal_element_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/equal_element_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/equal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/equal_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_class_variable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/have_class_variable_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_constant_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/have_constant_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_instance_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/have_instance_method_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_instance_variable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/have_instance_variable_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/have_method_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_private_instance_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/have_private_instance_method_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_private_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/have_private_method_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_protected_instance_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/have_protected_instance_method_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_public_instance_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/have_public_instance_method_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/have_singleton_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/have_singleton_method_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/include_any_of_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/include_any_of_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/include_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/include_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/infinity_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/infinity_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/match_yaml_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/match_yaml_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/output_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/output_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/output_to_fd_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/output_to_fd_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/raise_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/raise_error_spec.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/respond_to_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/respond_to_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/matchers/signed_zero_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/matchers/signed_zero_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/mocks/mock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/mocks/mock_spec.rb</a></td><td class='right'>238</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/mocks/proxy_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/mocks/proxy_spec.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/filter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/actions/filter_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/tag_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/actions/tag_spec.rb</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/taglist_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/actions/taglist_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/tagpurge_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/actions/tagpurge_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/tally_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/actions/tally_spec.rb</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/actions/timer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/actions/timer_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/context_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/context_spec.rb</a></td><td class='right'>369</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/example_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/example_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/exception_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/exception_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/filters/match_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/filters/match_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/filters/profile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/filters/profile_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/filters/regexp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/filters/regexp_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/filters/tag_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/filters/tag_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/describe_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/describe_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/dotted_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/dotted_spec.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/file_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/file_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/html_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/html_spec.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/junit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/junit_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/method_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/multi_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/multi_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/specdoc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/specdoc_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/spinner_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/spinner_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/summary_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/summary_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/unit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/unit_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/formatters/yaml_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/formatters/yaml_spec.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/mspec_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/mspec_spec.rb</a></td><td class='right'>300</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/shared_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/shared_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/runner/tag_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/runner/tag_spec.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/spec_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/spec_helper.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/utils/deprecate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/utils/deprecate_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/utils/name_map_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/utils/name_map_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/utils/options_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/utils/options_spec.rb</a></td><td class='right'>491</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/utils/script_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/utils/script_spec.rb</a></td><td class='right'>257</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/spec/utils/version_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/spec/utils/version_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/tool/pull-latest-mspec-spec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/tool/pull-latest-mspec-spec</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/tool/remove_old_guards.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/tool/remove_old_guards.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/mspec/tool/sync/sync-rubyspec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/tool/sync/sync-rubyspec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/tool/tag_from_output.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/tool/tag_from_output.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/mspec/tool/wrap_with_guard.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/mspec/tool/wrap_with_guard.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/.mspec.constants?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/.mspec.constants</a></td><td class='right'>234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/.rubocop.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/.rubocop.yml</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/.rubocop_todo.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/.rubocop_todo.yml</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/.travis.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/.travis.yml</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/CHANGES.before-2008-05-10?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/CHANGES.before-2008-05-10</a></td><td class='right'>17796</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 7.4%;'/><td class='none' style='width: 92.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/CONTRIBUTING.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/CONTRIBUTING.md</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/README.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/README.md</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/appveyor.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/appveyor.yml</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/backtrace_limit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/backtrace_limit_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_e_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_e_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_encoding_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_l_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_l_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_r_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_r_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_c_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_upper_c_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_e_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_upper_e_spec.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_k_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_upper_k_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_upper_s_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_u_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_upper_u_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_w_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_upper_w_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/dash_upper_x_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_upper_x_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_v_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_v_spec.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_w_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_w_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/dash_x_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/dash_x_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/error_message_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/error_message_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/feature_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/feature_spec.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/backtrace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/fixtures/backtrace.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/bin/hybrid_launcher.sh?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/fixtures/bin/hybrid_launcher.sh</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/change_directory_script.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/fixtures/change_directory_script.rb</a> (renamed from spec/ruby/command_line/fixtures/dash_upper_c_script.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/freeze_flag_two_literals.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/fixtures/freeze_flag_two_literals.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/fixtures/test_file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/fixtures/test_file.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/frozen_strings_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/frozen_strings_spec.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/rubylib_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/rubylib_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/rubyopt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/rubyopt_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/command_line/shared/change_directory.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/shared/change_directory.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/shared/verbose.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/shared/verbose.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/command_line/syntax_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/command_line/syntax_error_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/binmode_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/binmode_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/bytes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/bytes_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/chars_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/chars_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/close_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/codepoints_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/codepoints_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/gets_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/gets_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/lines_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/lines_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/read_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/read_nonblock_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/read_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/read_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/readchar_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/readchar_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/readline_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/readline_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/readpartial_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/readpartial_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/rewind_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/rewind_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/seek_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/seek_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/eof.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/shared/eof.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/fileno.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/shared/fileno.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/shared/pos.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/shared/pos.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/argf/skip_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/argf/skip_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/allocate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/allocate_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/any_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/any_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/append_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/at_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/at_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/bsearch_index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/bsearch_index_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/bsearch_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/bsearch_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/clear_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/clear_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/clone_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/combination_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/combination_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/compact_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/compact_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/concat_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/concat_spec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/cycle_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/cycle_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/deconstruct_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/deconstruct_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/delete_at_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/delete_at_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/delete_if_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/delete_if_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/delete_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/delete_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/difference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/difference_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/dig_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/dig_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/drop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/drop_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/drop_while_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/drop_while_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/each_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/element_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/element_set_spec.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/empty_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/equal_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/equal_value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/fetch_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/fetch_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/fill_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/fill_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/filter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/filter_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/first_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/first_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/fixtures/classes.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/fixtures/encoded_strings.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/fixtures/encoded_strings.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/flatten_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/flatten_spec.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/frozen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/frozen_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/hash_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/initialize_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/insert_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/insert_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/intersect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/intersect_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/intersection_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/intersection_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/join_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/join_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/keep_if_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/keep_if_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/last_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/last_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/max_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/max_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/min_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/min_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/minmax_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/minmax_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/minus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/minus_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/multiply_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/multiply_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/new_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/a_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/a_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/at_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/at_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/b_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/b_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/buffer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/buffer_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/c_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/c_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/comment_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/comment_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/h_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/h_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/l_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/l_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/m_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/m_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/p_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/p_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/percent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/percent_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/basic.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/shared/basic.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/encodings.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/shared/encodings.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/float.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/shared/float.rb</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/integer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/shared/integer.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/numeric_basic.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/shared/numeric_basic.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/string.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/shared/string.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/taint.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/shared/taint.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/shared/unicode.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/shared/unicode.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/u_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/u_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/w_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/w_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/x_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/x_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pack/z_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pack/z_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/plus_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/pop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/pop_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/prepend_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/prepend_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/product_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/product_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/rassoc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/rassoc_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/reject_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/reject_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/repeated_combination_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/repeated_combination_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/reverse_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/reverse_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/rotate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/rotate_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/sample_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/sample_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/shared/clone.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/clone.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/shared/collect.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/collect.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/difference.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/difference.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/shared/inspect.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/inspect.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/intersection.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/intersection.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/shared/join.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/join.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/shared/keep_if.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/keep_if.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/shared/push.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/push.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/shared/replace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/replace.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/shared/slice.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/slice.rb</a></td><td class='right'>482</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/array/shared/union.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/union.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/shared/unshift.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shared/unshift.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/shift_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shift_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/shuffle_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/shuffle_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/slice_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/slice_spec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/sort_by_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/sort_by_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/sort_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/sort_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/sum_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/sum_spec.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/take_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/take_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/take_while_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/take_while_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/to_h_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/to_h_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/transpose_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/transpose_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/try_convert_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/try_convert_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/union_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/union_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/uniq_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/uniq_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/values_at_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/values_at_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/array/zip_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/array/zip_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/basicobject/basicobject_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/basicobject/basicobject_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/basicobject/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/basicobject/initialize_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/basicobject/instance_eval_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/basicobject/instance_eval_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/basicobject/instance_exec_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/basicobject/instance_exec_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/basicobject/singleton_method_added_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/basicobject/singleton_method_added_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/binding/eval_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/binding/eval_spec.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/binding/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/binding/fixtures/classes.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/fixtures/irb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/binding/fixtures/irb.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/fixtures/irbrc?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/binding/fixtures/irbrc</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/fixtures/location.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/binding/fixtures/location.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/irb_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/binding/irb_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/binding/local_variable_defined_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/binding/local_variable_defined_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/binding/local_variable_get_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/binding/local_variable_get_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/binding/local_variable_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/binding/local_variable_set_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/binding/source_location_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/binding/source_location_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/builtin_constants/builtin_constants_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/builtin_constants/builtin_constants_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/class/allocate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/class/allocate_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/class/attached_object_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/class/attached_object_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/class/inherited_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/class/inherited_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/class/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/class/initialize_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/class/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/class/new_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/class/subclasses_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/class/subclasses_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/class/superclass_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/class/superclass_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/class/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/class/to_s_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/comparable/clamp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/comparable/clamp_spec.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/comparable/equal_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/comparable/equal_value_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/comparable/gt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/comparable/gt_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/comparable/gte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/comparable/gte_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/comparable/lt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/comparable/lt_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/comparable/lte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/comparable/lte_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/coerce_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/coerce_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/comparison_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/comparison_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/equal_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/equal_value_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/exponent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/exponent_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/fdiv_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/fdiv_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/finite_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/finite_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/infinite_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/infinite_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/negative_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/negative_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/polar_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/polar_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/positive_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/positive_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/rationalize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/rationalize_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/shared/divide.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/shared/divide.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/shared/rect.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/shared/rect.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/complex/to_c_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/to_c_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/to_f_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/to_f_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/to_i_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/to_i_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/complex/to_r_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/complex/to_r_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/conditionvariable/broadcast_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/conditionvariable/broadcast_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/spec/ruby/core/conditionvariable/marshal_dump_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/conditionvariable/marshal_dump_spec.rb</a> (renamed from spec/ruby/library/conditionvariable/marshal_dump_spec.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/conditionvariable/signal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/conditionvariable/signal_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/conditionvariable/wait_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/conditionvariable/wait_spec.rb</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/data/constants_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/data/constants_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/chdir_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/chdir_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/children_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/children_spec.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/chroot_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/chroot_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/close_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/each_child_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/each_child_spec.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/empty_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/entries_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/entries_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/dir/exists_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/exists_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/fileno_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/fileno_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/fixtures/common.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/fixtures/common.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/foreach_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/foreach_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/glob_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/glob_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/home_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/home_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/mkdir_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/mkdir_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/read_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/read_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/chroot.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/shared/chroot.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/closed.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/shared/closed.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/delete.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/shared/delete.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/exist.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/shared/exist.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/glob.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/shared/glob.rb</a></td><td class='right'>229</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/open.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/shared/open.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/path.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/shared/path.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/dir/shared/pwd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/dir/shared/pwd.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/aliases_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/aliases_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/ascii_compatible_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/ascii_compatible_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/compatible_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/compatible_spec.rb</a></td><td class='right'>572</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/asciicompat_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/asciicompat_encoding_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/constants_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/constants_spec.rb</a></td><td class='right'>182</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/convert_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/convert_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/convpath_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/convpath_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/destination_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/destination_encoding_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/finish_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/finish_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/last_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/last_error_spec.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/new_spec.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/primitive_convert_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/primitive_convert_spec.rb</a></td><td class='right'>414</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/primitive_errinfo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/primitive_errinfo_spec.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/putback_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/putback_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/replacement_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/replacement_spec.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/search_convpath_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/search_convpath_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/converter/source_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/converter/source_encoding_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/default_external_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/default_external_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/default_internal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/default_internal_spec.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/dummy_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/dummy_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/find_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/find_spec.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/inspect_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/destination_encoding_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/invalid_byte_sequence_error/destination_encoding_name_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/destination_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/invalid_byte_sequence_error/destination_encoding_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/error_bytes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/invalid_byte_sequence_error/error_bytes_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/incomplete_input_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/invalid_byte_sequence_error/incomplete_input_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/readagain_bytes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/invalid_byte_sequence_error/readagain_bytes_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/source_encoding_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/invalid_byte_sequence_error/source_encoding_name_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/invalid_byte_sequence_error/source_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/invalid_byte_sequence_error/source_encoding_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/list_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/list_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/locale_charmap_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/locale_charmap_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/name_list_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/name_list_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/name_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/names_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/names_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/replicate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/replicate_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/to_s_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/undefined_conversion_error/destination_encoding_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/undefined_conversion_error/destination_encoding_name_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/undefined_conversion_error/destination_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/undefined_conversion_error/destination_encoding_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/undefined_conversion_error/error_char_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/undefined_conversion_error/error_char_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/undefined_conversion_error/source_encoding_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/undefined_conversion_error/source_encoding_name_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/encoding/undefined_conversion_error/source_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/encoding/undefined_conversion_error/source_encoding_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/all_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/all_spec.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/any_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/any_spec.rb</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/chain_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/chain_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/chunk_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/chunk_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/chunk_while_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/chunk_while_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/compact_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/compact_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/cycle_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/cycle_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/drop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/drop_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/each_cons_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/each_cons_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/each_entry_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/each_entry_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/each_slice_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/each_slice_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/filter_map_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/filter_map_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/filter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/filter_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/first_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/first_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/fixtures/classes.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/grep_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/grep_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/grep_v_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/grep_v_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/group_by_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/group_by_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/max_by_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/max_by_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/max_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/max_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/min_by_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/min_by_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/min_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/min_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/minmax_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/minmax_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/none_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/none_spec.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/one_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/one_spec.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/collect.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/shared/collect.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/collect_concat.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/shared/collect_concat.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/entries.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/shared/entries.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/find.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/shared/find.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/inject.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/shared/inject.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/shared/take.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/shared/take.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/slice_after_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/slice_after_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/slice_before_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/slice_before_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/slice_when_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/slice_when_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/sort_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/sort_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/sum_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/sum_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/take_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/take_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerable/tally_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/tally_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/to_h_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/to_h_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/uniq_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/uniq_spec.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerable/zip_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerable/zip_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/begin_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/begin_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/each_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/end_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/end_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/eq_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/eq_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/exclude_end_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/exclude_end_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/first_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/first_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/hash_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/inspect_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/last_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/last_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/new_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/size_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/arithmetic_sequence/step_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/arithmetic_sequence/step_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/chain/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/chain/each_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/chain/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/chain/initialize_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/chain/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/chain/inspect_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/chain/rewind_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/chain/rewind_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/chain/size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/chain/size_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/each_spec.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/each_with_index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/each_with_index_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/feed_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/feed_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/generator/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/generator/each_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/generator/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/generator/initialize_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/initialize_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/enumerator/inject_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/inject_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/chunk_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/chunk_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/chunk_while_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/chunk_while_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/compact_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/compact_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/drop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/drop_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/drop_while_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/drop_while_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/eager_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/eager_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/filter_map_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/filter_map_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/filter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/filter_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/flat_map_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/flat_map_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/force_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/force_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/grep_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/grep_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/grep_v_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/grep_v_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/initialize_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/lazy_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/lazy_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/reject_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/reject_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/select_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/select_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/shared/collect.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/shared/collect.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/shared/collect_concat.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/shared/collect_concat.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/shared/select.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/shared/select.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/shared/to_enum.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/shared/to_enum.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/slice_after_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/slice_after_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/slice_before_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/slice_before_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/slice_when_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/slice_when_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/take_while_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/take_while_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/uniq_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/uniq_spec.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/with_index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/with_index_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/lazy/zip_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/lazy/zip_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/new_spec.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/next_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/next_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/next_values_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/next_values_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/peek_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/peek_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/peek_values_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/peek_values_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/plus_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/produce_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/produce_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/rewind_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/rewind_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/size_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/with_index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/with_index_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/yielder/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/yielder/append_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/enumerator/yielder/to_proc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/yielder/to_proc_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/enumerator/yielder/yield_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/enumerator/yielder/yield_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/assoc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/assoc_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/clear_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/clear_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/delete_if_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/delete_if_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/delete_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/delete_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/each_key_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/each_key_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/each_pair_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/each_pair_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/each_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/each_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/each_value_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/element_reference_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/empty_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/except_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/except_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/fetch_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/fetch_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/filter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/filter_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/fixtures/common.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/fixtures/common.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/index_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/keep_if_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/keep_if_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/keys_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/keys_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/merge_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/merge_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/rassoc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/rassoc_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/rehash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/rehash_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/reject_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/reject_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/replace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/replace_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/select_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/select_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/shared/each.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/shared/each.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/shared/include.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/shared/include.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/shared/key.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/shared/key.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/shared/select.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/shared/select.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/shared/store.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/shared/store.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/shared/to_hash.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/shared/to_hash.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/shared/update.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/shared/update.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/shared/value.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/shared/value.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/shift_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/shift_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/slice_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/slice_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/env/spec_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/spec_helper.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/to_a_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/to_a_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/to_h_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/to_h_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/to_hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/to_hash_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/update_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/update_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/values_at_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/values_at_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/env/values_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/env/values_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/args_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/args_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/arguments_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/arguments_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/backtrace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/backtrace_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/case_compare_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/case_compare_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/cause_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/cause_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/destination_encoding_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/destination_encoding_name_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/destination_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/destination_encoding_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/dup_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/errno_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/errno_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/error_bytes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/error_bytes_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/error_char_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/error_char_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/exception_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/exception_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/exit_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/exit_value_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/frozen_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/frozen_error_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/full_message_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/full_message_spec.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/hierarchy_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/hierarchy_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/incomplete_input_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/incomplete_input_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/initialize_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/inspect_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/interrupt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/interrupt_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/io_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/io_error_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/key_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/key_error_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/name_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/name_error_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/name_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/no_method_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/no_method_error_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/range_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/range_error_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/readagain_bytes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/readagain_bytes_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/reason_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/reason_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/receiver_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/receiver_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/result_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/result_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/script_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/script_error_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/set_backtrace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/set_backtrace_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/signal_exception_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/signal_exception_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/signm_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/signm_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/signo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/signo_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/source_encoding_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/source_encoding_name_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/source_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/source_encoding_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/standard_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/standard_error_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/status_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/status_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/success_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/success_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/system_call_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/system_call_error_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/system_exit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/system_exit_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/exception/system_stack_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/system_stack_error_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/to_s_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/exception/top_level_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/top_level_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/exception/uncaught_throw_error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/exception/uncaught_throw_error_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/false/case_compare_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/false/case_compare_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/false/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/false/dup_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/false/falseclass_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/false/falseclass_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/false/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/false/to_s_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fiber/blocking_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/fiber/blocking_spec.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fiber/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/fiber/fixtures/classes.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/fiber/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/fiber/new_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fiber/raise_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/fiber/raise_spec.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/fiber/resume_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/fiber/resume_spec.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fiber/shared/blocking.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/fiber/shared/blocking.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/fiber/storage_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/fiber/storage_spec.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/fiber/yield_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/fiber/yield_spec.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/absolute_path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/absolute_path_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/atime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/atime_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/basename_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/basename_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/birthtime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/birthtime_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/chmod_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/chmod_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/chown_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/chown_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/ctime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/ctime_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/dirname_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/dirname_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/empty_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/file/exists_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/exists_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/expand_path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/expand_path_spec.rb</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/extname_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/extname_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/fixtures/file_types.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/fixtures/file_types.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/flock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/flock_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/ftype_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/ftype_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/initialize_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/join_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/join_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/lchmod_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/lchmod_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/lchown_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/lchown_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/link_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/link_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/lstat_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/lstat_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/file/lutime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/lutime_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/mkfifo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/mkfifo_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/mtime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/mtime_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/new_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/open_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/open_spec.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/printf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/printf_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/readlink_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/readlink_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/realdirpath_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/realdirpath_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/realpath_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/realpath_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/rename_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/rename_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/reopen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/reopen_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/shared/fnmatch.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/shared/fnmatch.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/shared/path.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/shared/path.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/shared/read.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/shared/read.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/shared/stat.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/shared/stat.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/shared/unlink.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/shared/unlink.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/size_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/split_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/split_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat/birthtime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat/birthtime_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat/ftype_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat/ftype_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat/inspect_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat/new_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat/nlink_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat/nlink_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat/owned_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat/owned_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat/pipe_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat/pipe_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat/setgid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat/setgid_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat/setuid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat/setuid_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat/socket_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat/socket_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat/sticky_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat/sticky_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/stat_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/stat_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/sticky_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/sticky_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/symlink_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/symlink_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/truncate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/truncate_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/umask_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/umask_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/utime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/utime_spec.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/world_readable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/world_readable_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/file/world_writable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/file/world_writable_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/filetest/exists_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/filetest/exists_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/filetest/owned_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/filetest/owned_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/filetest/pipe_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/filetest/pipe_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/filetest/setgid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/filetest/setgid_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/filetest/setuid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/filetest/setuid_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/filetest/socket_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/filetest/socket_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/ceil_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/ceil_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/coerce_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/coerce_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/comparison_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/comparison_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/divide_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/divide_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/divmod_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/divmod_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/dup_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/finite_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/finite_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/float_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/float_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/floor_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/floor_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/gt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/gt_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/gte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/gte_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/inspect_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/lt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/lt_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/lte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/lte_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/minus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/minus_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/multiply_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/multiply_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/nan_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/nan_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/negative_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/negative_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/next_float_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/next_float_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/plus_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/positive_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/positive_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/prev_float_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/prev_float_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/rationalize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/rationalize_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/round_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/round_spec.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/shared/arithmetic_exception_in_coerce.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/shared/arithmetic_exception_in_coerce.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/shared/comparison_exception_in_coerce.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/shared/comparison_exception_in_coerce.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/shared/equal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/shared/equal.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/shared/modulo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/shared/modulo.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/shared/quo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/shared/quo.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/shared/to_i.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/shared/to_i.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/float/shared/to_s.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/shared/to_s.rb</a></td><td class='right'>308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/to_s_spec.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/truncate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/truncate_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/uminus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/uminus_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/float/zero_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/float/zero_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/auto_compact_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/gc/auto_compact_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/gc/disable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/gc/disable_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/gc/enable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/gc/enable_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/measure_total_time_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/gc/measure_total_time_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/gc/profiler/disable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/gc/profiler/disable_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/gc/profiler/enable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/gc/profiler/enable_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/gc/start_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/gc/start_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/stat_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/gc/stat_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/gc/total_time_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/gc/total_time_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/any_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/any_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/clear_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/clear_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/compact_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/compact_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/compare_by_identity_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/compare_by_identity_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/constructor_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/constructor_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/deconstruct_keys_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/deconstruct_keys_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/default_proc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/default_proc_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/default_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/default_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/delete_if_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/delete_if_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/delete_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/delete_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/dig_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/dig_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/element_reference_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/empty_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/except_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/except_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/fetch_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/fetch_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/fetch_values_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/fetch_values_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/filter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/filter_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/fixtures/name.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/fixtures/name.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/flatten_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/flatten_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/hash_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/index_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/initialize_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/keep_if_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/keep_if_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/merge_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/merge_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/new_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/rehash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/rehash_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/reject_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/reject_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/hash/ruby2_keywords_hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/ruby2_keywords_hash_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/comparison.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/shared/comparison.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/each.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/shared/each.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/eql.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/shared/eql.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/index.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/shared/index.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/replace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/shared/replace.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/select.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/shared/select.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/store.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/shared/store.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/to_s.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/shared/to_s.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/shared/update.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/shared/update.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/shift_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/shift_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/slice_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/slice_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/to_a_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/to_a_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/to_h_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/to_h_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/to_proc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/to_proc_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/transform_keys_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/transform_keys_spec.rb</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/transform_values_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/transform_values_spec.rb</a></td><td class='right'>146</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/hash/try_convert_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/hash/try_convert_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/allbits_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/allbits_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/anybits_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/anybits_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/bit_and_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/bit_and_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/bit_or_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/bit_or_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/bit_xor_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/bit_xor_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/ceil_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/ceil_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/chr_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/chr_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/coerce_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/coerce_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/comparison_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/comparison_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/complement_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/complement_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/constants_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/constants_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/digits_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/digits_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/div_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/div_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/divide_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/divide_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/divmod_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/divmod_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/downto_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/downto_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/dup_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/element_reference_spec.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/fdiv_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/fdiv_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/floor_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/floor_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/gcd_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/gcd_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/gcdlcm_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/gcdlcm_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/gt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/gt_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/gte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/gte_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/integer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/integer_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/lcm_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/lcm_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/left_shift_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/left_shift_spec.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/lt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/lt_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/lte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/lte_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/minus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/minus_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/multiply_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/multiply_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/nobits_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/nobits_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/plus_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/pow_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/pow_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/rationalize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/rationalize_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/remainder_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/remainder_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/right_shift_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/right_shift_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/round_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/round_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/shared/abs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/shared/abs.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/shared/comparison_coerce.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/shared/comparison_coerce.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/shared/equal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/shared/equal.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/shared/exponent.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/shared/exponent.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/shared/integer_rounding.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/shared/integer_rounding.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/shared/modulo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/shared/modulo.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/sqrt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/sqrt_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/to_f_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/to_f_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/to_r_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/to_r_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/to_s_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/truncate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/truncate_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/try_convert_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/try_convert_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/uminus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/uminus_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/integer/upto_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/upto_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/integer/zero_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/integer/zero_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/advise_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/advise_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/binmode_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/binmode_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/binread_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/binread_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/binwrite_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/binwrite_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/bytes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/bytes_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/chars_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/chars_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/close_on_exec_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/close_on_exec_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/close_read_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/close_read_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/close_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/close_write_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/close_write_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/codepoints_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/codepoints_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/copy_stream_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/copy_stream_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/dup_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/each_byte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/each_byte_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/each_codepoint_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/each_codepoint_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/eof_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/eof_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/external_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/external_encoding_spec.rb</a></td><td class='right'>311</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/fcntl_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/fcntl_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/fileno_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/fileno_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/fixtures/classes.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/fixtures/copy_in_out.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/fixtures/copy_in_out.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/flush_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/flush_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/foreach_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/foreach_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/fsync_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/fsync_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/getbyte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/getbyte_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/getc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/getc_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/gets_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/gets_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/initialize_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/internal_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/internal_encoding_spec.rb</a></td><td class='right'>237</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/ioctl_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/ioctl_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/lineno_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/lineno_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/lines_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/lines_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/new_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/nonblock_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/open_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/open_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/output_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/output_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/path_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/pid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/pid_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/pipe_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/pipe_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/popen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/popen_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/pread_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/pread_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/print_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/print_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/printf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/printf_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/puts_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/puts_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/pwrite_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/pwrite_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/read_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/read_nonblock_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/read_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/read_spec.rb</a></td><td class='right'>279</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/readbyte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/readbyte_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/readchar_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/readchar_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/readline_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/readline_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/readlines_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/readlines_spec.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/readpartial_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/readpartial_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/reopen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/reopen_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/rewind_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/rewind_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/seek_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/seek_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/select_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/select_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/io/set_encoding_by_bom_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/set_encoding_by_bom_spec.rb</a></td><td class='right'>262</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/set_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/set_encoding_spec.rb</a></td><td class='right'>329</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/shared/binwrite.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/shared/binwrite.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/shared/chars.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/shared/chars.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/shared/codepoints.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/shared/codepoints.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/shared/each.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/shared/each.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/shared/new.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/shared/new.rb</a></td><td class='right'>190</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/shared/pos.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/shared/pos.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/shared/readlines.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/shared/readlines.rb</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/shared/tty.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/shared/tty.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/shared/write.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/shared/write.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/stat_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/stat_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/sync_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/sync_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/sysopen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/sysopen_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/sysread_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/sysread_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/sysseek_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/sysseek_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/syswrite_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/syswrite_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/to_i_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/to_i_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/try_convert_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/try_convert_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/ungetbyte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/ungetbyte_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/ungetc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/ungetc_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/write_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/write_nonblock_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/io/write_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/io/write_spec.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/Array_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/Array_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/Complex_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/Complex_spec.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/Float_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/Float_spec.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/Hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/Hash_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/Integer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/Integer_spec.rb</a></td><td class='right'>332</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/String_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/String_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/__dir___spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/__dir___spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/at_exit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/at_exit_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/autoload_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/autoload_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/backtick_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/backtick_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/binding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/binding_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/caller_locations_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/caller_locations_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/caller_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/caller_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/catch_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/catch_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/chomp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/chomp_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/chop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/chop_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/class_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/class_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/clone_spec.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/define_singleton_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/define_singleton_method_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/dup_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/eval_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/eval_spec.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/extend_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/extend_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/fail_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/fail_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/Complex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/fixtures/Complex.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/__dir__.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/fixtures/__dir__.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/at_exit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/fixtures/at_exit.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/fixtures/classes.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/eval_return_with_lambda.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/fixtures/eval_return_with_lambda.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/warn_core_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/fixtures/warn_core_method.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/warn_require.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/fixtures/warn_require.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/fixtures/warn_require_caller.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/fixtures/warn_require_caller.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/format_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/format_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/freeze_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/freeze_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/frozen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/frozen_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/gsub_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/gsub_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/initialize_clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/initialize_clone_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/initialize_copy_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/initialize_copy_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/initialize_dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/initialize_dup_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/inspect_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/instance_of_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/instance_of_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/instance_variable_defined_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/instance_variable_defined_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/instance_variable_get_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/instance_variable_get_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/instance_variable_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/instance_variable_set_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/instance_variables_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/instance_variables_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/iterator_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/iterator_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/lambda_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/lambda_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/local_variables_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/local_variables_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/loop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/loop_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/match_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/match_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/method_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/nil_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/nil_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/open_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/open_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/p_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/p_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/kernel/pp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/pp_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/print_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/print_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/printf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/printf_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/proc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/proc_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/public_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/public_method_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/public_send_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/public_send_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/raise_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/raise_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/rand_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/rand_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/remove_instance_variable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/remove_instance_variable_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/require_relative_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/require_relative_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/respond_to_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/respond_to_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/select_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/select_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/dup_clone.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/shared/dup_clone.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/kind_of.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/shared/kind_of.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/lambda.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/shared/lambda.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/load.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/shared/load.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/shared/method.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/require.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/shared/require.rb</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/sprintf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/shared/sprintf.rb</a></td><td class='right'>1006</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/shared/sprintf_encoding.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/shared/sprintf_encoding.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/singleton_class_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/singleton_class_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/singleton_methods_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/singleton_methods_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/sleep_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/sleep_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/spawn_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/spawn_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/sprintf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/sprintf_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/srand_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/srand_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/system_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/system_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/taint_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/taint_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/tainted_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/tainted_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/tap_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/tap_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/then_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/then_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/throw_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/throw_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/to_s_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/trace_var_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/trace_var_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/trap_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/trap_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/trust_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/trust_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/untaint_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/untaint_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/untrust_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/untrust_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/untrusted_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/untrusted_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/warn_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/warn_spec.rb</a></td><td class='right'>264</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/kernel/yield_self_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/kernel/yield_self_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/main/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/main/fixtures/classes.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/fixtures/using.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/main/fixtures/using.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/fixtures/using_in_main.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/main/fixtures/using_in_main.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/fixtures/using_in_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/main/fixtures/using_in_method.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/main/private_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/main/private_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/main/public_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/main/public_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/main/ruby2_keywords_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/main/ruby2_keywords_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/main/using_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/main/using_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/marshal/dump_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/marshal/dump_spec.rb</a></td><td class='right'>253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/marshal/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/marshal/fixtures/classes.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/marshal/fixtures/marshal_data.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/marshal/fixtures/marshal_data.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/marshal/shared/load.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/marshal/shared/load.rb</a></td><td class='right'>591</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/allocate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/allocate_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/begin_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/begin_spec.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/captures_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/captures_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/dup_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/element_reference_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/end_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/end_spec.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/fixtures/classes.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/match_length_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/match_length_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/matchdata/match_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/match_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/named_captures_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/named_captures_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/post_match_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/post_match_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/pre_match_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/pre_match_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/regexp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/regexp_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/string_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/string_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/to_a_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/to_a_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/to_s_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/matchdata/values_at_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/matchdata/values_at_spec.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/acos_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/acos_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/acosh_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/acosh_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/asin_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/asin_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/asinh_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/asinh_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/atan2_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/atan2_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/atan_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/atan_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/cbrt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/cbrt_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/cos_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/cos_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/cosh_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/cosh_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/erf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/erf_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/erfc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/erfc_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/exp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/exp_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/frexp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/frexp_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/gamma_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/gamma_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/hypot_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/hypot_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/ldexp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/ldexp_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/lgamma_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/lgamma_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/log10_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/log10_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/log2_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/log2_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/log_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/log_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/sin_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/sin_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/sinh_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/sinh_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/sqrt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/sqrt_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/tan_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/tan_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/math/tanh_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/math/tanh_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/case_compare_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/case_compare_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/compose_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/compose_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/curry_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/curry_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/fixtures/classes.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/hash_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/original_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/original_name_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/owner_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/owner_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/parameters_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/parameters_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/private_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/private_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/protected_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/protected_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/method/public_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/public_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/shared/call.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/shared/call.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/shared/to_s.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/shared/to_s.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/source_location_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/source_location_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/super_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/super_method_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/to_proc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/to_proc_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/method/unbind_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/method/unbind_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/alias_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/alias_method_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/module/allocate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/allocate_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/append_features_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/append_features_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/attr_accessor_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/attr_accessor_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/attr_reader_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/attr_reader_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/attr_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/attr_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/attr_writer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/attr_writer_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/autoload_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/autoload_spec.rb</a></td><td class='right'>321</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/class_variable_defined_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/class_variable_defined_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/class_variable_get_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/class_variable_get_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/class_variable_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/class_variable_set_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/class_variables_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/class_variables_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/comparison_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/comparison_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/const_added_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/const_added_spec.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/const_defined_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/const_defined_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/const_get_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/const_get_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/const_missing_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/const_missing_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/const_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/const_set_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/const_source_location_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/const_source_location_spec.rb</a></td><td class='right'>225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/constants_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/constants_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/define_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/define_method_spec.rb</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/define_singleton_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/define_singleton_method_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/deprecate_constant_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/deprecate_constant_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/extend_object_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/extend_object_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_during_require_current_file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/fixtures/autoload_during_require_current_file.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_location.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/fixtures/autoload_location.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_overridden.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/fixtures/autoload_overridden.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_required_directly_no_constant.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/fixtures/autoload_required_directly_no_constant.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_self_during_require.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/fixtures/autoload_self_during_require.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/autoload_subclass.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/fixtures/autoload_subclass.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/fixtures/classes.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/multi/foo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/fixtures/multi/foo.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/multi/foo/bar_baz.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/fixtures/multi/foo/bar_baz.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/fixtures/refine.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/fixtures/refine.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/gt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/gt_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/gte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/gte_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/include_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/include_spec.rb</a></td><td class='right'>357</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/included_modules_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/included_modules_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/included_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/included_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/instance_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/instance_method_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/lt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/lt_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/lte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/lte_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/method_added_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/method_added_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/method_defined_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/method_defined_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/module_function_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/module_function_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/name_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/prepend_features_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/prepend_features_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/prepend_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/prepend_spec.rb</a></td><td class='right'>454</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/private_class_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/private_class_method_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/private_constant_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/private_constant_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/private_method_defined_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/private_method_defined_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/private_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/private_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/protected_method_defined_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/protected_method_defined_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/protected_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/protected_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/public_class_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/public_class_method_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/public_constant_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/public_constant_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/public_instance_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/public_instance_method_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/public_method_defined_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/public_method_defined_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/public_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/public_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/refine_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/refine_spec.rb</a></td><td class='right'>784</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/remove_class_variable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/remove_class_variable_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/remove_const_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/remove_const_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/remove_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/remove_method_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/module/ruby2_keywords_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/ruby2_keywords_spec.rb</a></td><td class='right'>319</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/shared/class_eval.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/shared/class_eval.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/shared/class_exec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/shared/class_exec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/shared/set_visibility.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/shared/set_visibility.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/singleton_class_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/singleton_class_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/to_s_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/undef_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/undef_method_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/module/using_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/module/using_spec.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/mutex/lock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/mutex/lock_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/mutex/owned_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/mutex/owned_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/mutex/sleep_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/mutex/sleep_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/mutex/synchronize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/mutex/synchronize_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/mutex/unlock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/mutex/unlock_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/case_compare_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/nil/case_compare_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/nil/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/nil/dup_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/nil/match_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/nil/match_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/nil/nil_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/nil/nil_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/nil/nilclass_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/nil/nilclass_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/nil/rationalize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/nil/rationalize_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/nil/to_i_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/nil/to_i_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/nil/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/nil/to_s_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/clone_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/coerce_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/coerce_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/div_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/div_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/numeric/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/dup_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/finite_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/finite_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/infinite_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/infinite_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/integer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/integer_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/negative_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/negative_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/positive_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/positive_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/quo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/quo_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/real_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/real_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/shared/imag.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/shared/imag.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/shared/rect.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/shared/rect.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/shared/step.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/shared/step.rb</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/singleton_method_added_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/singleton_method_added_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/step_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/step_spec.rb</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/numeric/zero_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/numeric/zero_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/objectspace/_id2ref_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/_id2ref_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/objectspace/define_finalizer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/define_finalizer_spec.rb</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/objectspace/each_object_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/each_object_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/objectspace/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/fixtures/classes.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/objectspace/garbage_collect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/garbage_collect_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/each_key_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/each_key_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/each_pair_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/each_pair_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/each_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/each_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/each_value_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/element_reference_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/element_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/element_set_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/include_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/include_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/inspect_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/key_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/key_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/keys_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/keys_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/length_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/length_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/member_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/member_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/shared/each.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/shared/each.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/shared/include.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/shared/include.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/shared/members.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/shared/members.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/shared/size.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/shared/size.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/size_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap/values_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap/values_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/objectspace/weakmap_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/objectspace/weakmap_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/allocate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/allocate_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/binding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/binding_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/block_pass_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/block_pass_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/compose_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/compose_spec.rb</a></td><td class='right'>162</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/curry_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/curry_spec.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/element_reference_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/eql_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/eql_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/equal_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/equal_value_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/fixtures/source_location.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/fixtures/source_location.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/hash_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/lambda_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/lambda_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/new_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/parameters_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/parameters_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/ruby2_keywords_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/ruby2_keywords_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/shared/call.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/shared/call.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/shared/call_arguments.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/shared/call_arguments.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/proc/shared/compose.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/shared/compose.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/shared/dup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/shared/dup.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/shared/equal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/shared/equal.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/shared/to_s.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/shared/to_s.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/source_location_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/source_location_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/proc/to_proc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/proc/to_proc_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/_fork_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/_fork_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/clock_getres_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/clock_getres_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/clock_gettime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/clock_gettime_spec.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/constants_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/constants_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/daemon_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/daemon_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/detach_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/detach_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/egid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/egid_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/euid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/euid_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/exec_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/exec_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/fixtures/clocks.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/fixtures/clocks.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/fixtures/common.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/fixtures/common.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/fixtures/in.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/fixtures/in.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/getpriority_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/getpriority_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/getrlimit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/getrlimit_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/groups_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/groups_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/initgroups_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/initgroups_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/kill_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/kill_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/last_status_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/last_status_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/maxgroups_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/maxgroups_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/pid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/pid_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/ppid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/ppid_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/setpgid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/setpgid_spec.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/setpriority_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/setpriority_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/setrlimit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/setrlimit_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/setsid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/setsid_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/spawn_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/spawn_spec.rb</a></td><td class='right'>404</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/status/equal_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/status/equal_value_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/status/exited_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/status/exited_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/status/exitstatus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/status/exitstatus_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/status/signaled_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/status/signaled_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/status/success_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/status/success_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/status/termsig_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/status/termsig_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/status/to_i_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/status/to_i_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/process/status/wait_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/status/wait_spec.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/times_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/times_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/process/tms/cstime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/tms/cstime_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/process/tms/cutime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/tms/cutime_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/process/tms/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/tms/element_reference_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/process/tms/members_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/tms/members_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/process/tms/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/tms/new_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/process/tms/stime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/tms/stime_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/process/tms/utime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/tms/utime_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/uid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/uid_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/wait2_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/wait2_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/wait_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/wait_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/waitall_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/waitall_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/process/waitpid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/process/waitpid_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/queue/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/queue/initialize_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/random/bytes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/bytes_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/random/default_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/default_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/fixtures/classes.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/random/new_seed_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/new_seed_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/random/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/new_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/random/rand_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/rand_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/random_number_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/random_number_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/random/raw_seed_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/raw_seed_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/random/shared/bytes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/shared/bytes.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/random/shared/rand.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/shared/rand.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/random/shared/urandom.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/shared/urandom.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/random/urandom_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/random/urandom_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/bsearch_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/bsearch_spec.rb</a></td><td class='right'>311</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/case_compare_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/case_compare_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/clone_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/count_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/count_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/cover_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/cover_spec.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/dup_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/each_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/equal_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/equal_value_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/exclude_end_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/exclude_end_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/first_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/first_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/fixtures/classes.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/frozen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/frozen_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/hash_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/include_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/include_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/initialize_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/inspect_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/last_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/last_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/max_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/max_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/member_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/member_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/min_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/min_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/minmax_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/minmax_spec.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/new_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/range/percent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/percent_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/shared/cover.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/shared/cover.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/shared/cover_and_include.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/shared/cover_and_include.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/shared/equal_value.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/shared/equal_value.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/shared/include.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/shared/include.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/size_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/step_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/step_spec.rb</a></td><td class='right'>252</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/to_a_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/to_a_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/range/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/range/to_s_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/rational/comparison_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/rational/comparison_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/rational/minus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/rational/minus_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/rational/rational_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/rational/rational_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/rational/rationalize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/rational/rationalize_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/rational/round_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/rational/round_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/rational/to_r_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/rational/to_r_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/refinement/append_features_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/refinement/append_features_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/refinement/extend_object_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/refinement/extend_object_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/refinement/import_methods_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/refinement/import_methods_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/refinement/include_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/refinement/include_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/refinement/prepend_features_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/refinement/prepend_features_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/refinement/prepend_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/refinement/prepend_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/case_compare_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/case_compare_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/casefold_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/casefold_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/compile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/compile_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/encoding_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/initialize_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/last_match_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/last_match_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/match_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/match_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/new_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/options_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/options_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/shared/new.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/shared/new.rb</a></td><td class='right'>609</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/regexp/shared/new_ascii.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/shared/new_ascii.rb</a></td><td class='right'>464</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/regexp/shared/new_ascii_8bit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/shared/new_ascii_8bit.rb</a></td><td class='right'>553</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/shared/quote.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/shared/quote.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/source_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/source_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/regexp/timeout_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/timeout_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/regexp/union_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/regexp/union_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/signal/fixtures/trap_all.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/signal/fixtures/trap_all.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/signal/signame_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/signal/signame_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/signal/trap_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/signal/trap_spec.rb</a></td><td class='right'>232</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/sizedqueue/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/sizedqueue/append_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/sizedqueue/enq_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/sizedqueue/enq_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/sizedqueue/max_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/sizedqueue/max_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/sizedqueue/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/sizedqueue/new_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/sizedqueue/num_waiting_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/sizedqueue/num_waiting_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/sizedqueue/push_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/sizedqueue/push_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/allocate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/allocate_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/append_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/ascii_only_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/ascii_only_spec.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/b_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/b_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/byteindex_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/byteindex_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/bytes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/bytes_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/bytesize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/bytesize_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/byteslice_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/byteslice_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/capitalize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/capitalize_spec.rb</a></td><td class='right'>253</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/casecmp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/casecmp_spec.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/center_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/center_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/chars_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/chars_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/chomp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/chomp_spec.rb</a></td><td class='right'>185</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/chop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/chop_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/chr_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/chr_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/clear_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/clear_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/clone_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/codepoints_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/codepoints_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/comparison_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/comparison_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/concat_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/concat_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/count_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/count_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/crypt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/crypt_spec.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/dedup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/dedup_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/delete_prefix_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/delete_prefix_spec.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/delete_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/delete_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/delete_suffix_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/delete_suffix_spec.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/downcase_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/downcase_spec.rb</a></td><td class='right'>258</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/dump_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/dump_spec.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/dup_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/each_codepoint_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/each_codepoint_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/each_grapheme_cluster_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/each_grapheme_cluster_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/element_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/element_set_spec.rb</a></td><td class='right'>454</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/empty_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/encode_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/encode_spec.rb</a></td><td class='right'>289</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/encoding_spec.rb</a></td><td class='right'>365</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/end_with_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/end_with_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/fixtures/classes.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/fixtures/iso-8859-9-encoding.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/fixtures/iso-8859-9-encoding.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/fixtures/to_c.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/fixtures/to_c.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/force_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/force_encoding_spec.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/getbyte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/getbyte_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/grapheme_clusters_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/grapheme_clusters_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/gsub_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/gsub_spec.rb</a></td><td class='right'>245</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/include_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/include_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/index_spec.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/insert_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/insert_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/inspect_spec.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/lines_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/lines_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/ljust_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/ljust_spec.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/lstrip_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/lstrip_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/match_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/match_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/modulo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/modulo_spec.rb</a></td><td class='right'>211</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/multiply_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/multiply_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/new_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/ord_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/ord_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/partition_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/partition_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/string/percent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/percent_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/plus_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/prepend_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/prepend_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/reverse_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/reverse_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/rindex_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/rindex_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/rjust_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/rjust_spec.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/rpartition_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/rpartition_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/rstrip_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/rstrip_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/scan_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/scan_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/scrub_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/scrub_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/setbyte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/setbyte_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/chars.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/chars.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/codepoints.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/codepoints.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/concat.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/concat.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/dedup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/dedup.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/each_line.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/each_line.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/encode.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/encode.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/eql.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/eql.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/equal_value.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/equal_value.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/length.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/length.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/partition.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/partition.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/replace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/replace.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/slice.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/slice.rb</a></td><td class='right'>307</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/shared/strip.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/strip.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/succ.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/succ.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/to_s.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/to_s.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/shared/to_sym.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/shared/to_sym.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/slice_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/slice_spec.rb</a></td><td class='right'>291</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/split_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/split_spec.rb</a></td><td class='right'>405</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/squeeze_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/squeeze_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/start_with_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/start_with_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/strip_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/strip_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/sub_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/sub_spec.rb</a></td><td class='right'>181</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/swapcase_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/swapcase_spec.rb</a></td><td class='right'>234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/to_c_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/to_c_spec.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/to_f_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/to_f_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/to_i_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/to_i_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/to_r_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/to_r_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/tr_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/tr_s_spec.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/tr_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/tr_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/try_convert_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/try_convert_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/uminus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/uminus_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/undump_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/undump_spec.rb</a></td><td class='right'>824</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unicode_normalize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unicode_normalize_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unicode_normalized_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unicode_normalized_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/a_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/a_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/at_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/at_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/b_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/b_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/c_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/c_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/comment_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/comment_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/h_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/h_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/l_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/l_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/m_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/m_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/p_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/p_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/percent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/percent_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/shared/basic.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/shared/basic.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/shared/float.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/shared/float.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/shared/integer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/shared/integer.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/shared/taint.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/shared/taint.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/shared/unicode.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/shared/unicode.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/u_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/u_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/w_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/w_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/x_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/x_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack/z_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack/z_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/unpack1_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack1_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/unpack_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/unpack_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/upcase_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/upcase_spec.rb</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/uplus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/uplus_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/upto_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/upto_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/string/valid_encoding/utf_8_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/valid_encoding/utf_8_spec.rb</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/string/valid_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/string/valid_encoding_spec.rb</a></td><td class='right'>242</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/clone_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/deconstruct_keys_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/deconstruct_keys_spec.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/deconstruct_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/deconstruct_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/dig_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/dig_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/dup_spec.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/element_reference_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/element_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/element_set_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/filter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/filter_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/hash_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/initialize_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/inspect_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/instance_variable_get_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/instance_variable_get_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/keyword_init_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/keyword_init_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/new_spec.rb</a></td><td class='right'>160</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/struct/shared/dup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/shared/dup.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/struct_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/struct_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/to_h_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/to_h_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/struct/values_at_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/struct/values_at_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/all_symbols_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/all_symbols_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/capitalize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/capitalize_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/casecmp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/casecmp_spec.rb</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/comparison_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/comparison_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/downcase_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/downcase_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/dup_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/end_with_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/end_with_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/match_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/match_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/name_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/shared/id2name.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/shared/id2name.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/shared/slice.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/shared/slice.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/symbol/start_with_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/start_with_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/swapcase_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/swapcase_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/symbol_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/symbol_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/to_proc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/to_proc_spec.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/symbol/upcase_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/symbol/upcase_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/systemexit/success_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/systemexit/success_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/abort_on_exception_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/abort_on_exception_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/alive_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/alive_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/allocate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/allocate_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/limit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/limit_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/absolute_path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/absolute_path_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/base_label_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/base_label_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/fixtures/absolute_path_main.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/fixtures/absolute_path_main.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/fixtures/classes.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/fixtures/locations_in_main.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/fixtures/locations_in_main.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/fixtures/locations_in_required.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/fixtures/locations_in_required.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/fixtures/main.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/fixtures/main.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/fixtures/path.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/fixtures/path.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/fixtures/subdir/absolute_path_main_chdir.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/fixtures/subdir/absolute_path_main_chdir.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/fixtures/subdir/sibling.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/fixtures/subdir/sibling.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/label_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/label_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/lineno_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/lineno_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace/location/path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace/location/path_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace_locations_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace_locations_spec.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/backtrace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/backtrace_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/element_reference_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/element_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/element_set_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/exclusive_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/exclusive_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/fetch_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/fetch_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/fixtures/classes.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/handle_interrupt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/handle_interrupt_spec.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/ignore_deadlock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/ignore_deadlock_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/initialize_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/inspect_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/join_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/join_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/key_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/key_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/list_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/list_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/name_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/native_thread_id_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/native_thread_id_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/new_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/pending_interrupt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/pending_interrupt_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/priority_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/priority_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/raise_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/raise_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/report_on_exception_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/report_on_exception_spec.rb</a></td><td class='right'>219</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/shared/exit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/shared/exit.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/shared/start.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/shared/start.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/shared/to_s.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/shared/to_s.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/shared/wakeup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/shared/wakeup.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/stop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/stop_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/thread/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/to_s_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/thread/value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/thread/value_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/threadgroup/add_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/threadgroup/add_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/threadgroup/enclose_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/threadgroup/enclose_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/core/threadgroup/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/threadgroup/fixtures/classes.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/threadgroup/list_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/threadgroup/list_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/_dump_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/_dump_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/_load_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/_load_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/at_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/at_spec.rb</a></td><td class='right'>186</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/ceil_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/ceil_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/dup_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/fixtures/classes.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/time/floor_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/floor_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/friday_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/friday_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/getlocal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/getlocal_spec.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/gmt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/gmt_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/hash_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/inspect_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/localtime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/localtime_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/minus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/minus_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/monday_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/monday_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/new_spec.rb</a></td><td class='right'>373</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/now_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/now_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/plus_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/saturday_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/saturday_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/shared/gmt_offset.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/shared/gmt_offset.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/shared/gmtime.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/shared/gmtime.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/shared/inspect.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/shared/inspect.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/shared/local.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/shared/local.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/shared/now.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/shared/now.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/shared/time_params.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/shared/time_params.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/shared/to_i.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/shared/to_i.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/strftime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/strftime_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/subsec_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/subsec_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/succ_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/succ_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/sunday_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/sunday_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/thursday_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/thursday_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/tuesday_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/tuesday_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/utc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/utc_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/wednesday_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/wednesday_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/time/zone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/time/zone_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/allow_reentry_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/allow_reentry_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/binding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/binding_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/callee_id_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/callee_id_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/defined_class_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/defined_class_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/disable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/disable_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/enable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/enable_spec.rb</a></td><td class='right'>566</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/enabled_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/enabled_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/eval_script_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/eval_script_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/event_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/event_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/fixtures/classes.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/inspect_spec.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/lineno_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/lineno_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/method_id_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/method_id_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/new_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/parameters_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/parameters_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/path_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/raised_exception_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/raised_exception_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/return_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/return_value_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/self_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/self_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/tracepoint/trace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/tracepoint/trace_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/true/case_compare_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/true/case_compare_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/true/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/true/dup_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/true/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/true/to_s_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/true/trueclass_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/true/trueclass_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/bind_call_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/bind_call_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/bind_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/bind_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/equal_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/equal_value_spec.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/fixtures/classes.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/hash_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/original_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/original_name_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/owner_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/owner_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/private_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/private_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/protected_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/protected_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/public_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/public_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/shared/to_s.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/shared/to_s.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/source_location_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/source_location_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/unboundmethod/super_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/unboundmethod/super_method_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/warning/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/warning/element_reference_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/core/warning/element_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/warning/element_set_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/core/warning/warn_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/core/warning/warn_spec.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/default.mspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/default.mspec</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/fixtures/class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/fixtures/class.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/a/load_fixture.dylib?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/fixtures/code/a/load_fixture.dylib</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/c/load_fixture.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/fixtures/code/c/load_fixture.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/fixtures/code/concurrent.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/fixtures/code/concurrent.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/concurrent_require_fixture.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/fixtures/code/concurrent_require_fixture.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture.dylib?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/fixtures/code/load_fixture.dylib</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_fixture.ext.dylib?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/fixtures/code/load_fixture.ext.dylib</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/fixtures/code/load_wrap_fixture.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/fixtures/code/load_wrap_fixture.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/fixtures/code/wrap_fixture.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/fixtures/code/wrap_fixture.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/fixtures/code_loading.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/fixtures/code_loading.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/fixtures/constants.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/fixtures/constants.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/BEGIN_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/BEGIN_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/END_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/END_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/README?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/README</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/alias_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/alias_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/block_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/block_spec.rb</a></td><td class='right'>400</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/break_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/break_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/case_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/case_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/class_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/class_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/class_variable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/class_variable_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/comment_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/comment_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/constants_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/constants_spec.rb</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/def_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/def_spec.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/defined_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/defined_spec.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/delegation_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/delegation_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/encoding_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/ensure_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/ensure_spec.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/file_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/file_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/block.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/block.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/break.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/break.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/break_lambda_toplevel.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/break_lambda_toplevel.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/break_lambda_toplevel_block.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/break_lambda_toplevel_block.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/break_lambda_toplevel_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/break_lambda_toplevel_method.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/constant_visibility.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/constant_visibility.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/defined.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/defined.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/delegation.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/delegation.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/for_scope.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/for_scope.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/freeze_magic_comment_two_literals.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/freeze_magic_comment_two_literals.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/language/fixtures/hash_strings_ascii8bit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/hash_strings_ascii8bit.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/hash_strings_binary.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/hash_strings_binary.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/fixtures/rescue_captures.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/rescue_captures.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/return.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/return.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/send.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/send.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/squiggly_heredoc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/squiggly_heredoc.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/super.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/super.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/fixtures/yield.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/fixtures/yield.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/for_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/for_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/hash_spec.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/heredoc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/heredoc_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/if_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/if_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/keyword_arguments_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/keyword_arguments_spec.rb</a></td><td class='right'>397</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/lambda_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/lambda_spec.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/line_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/line_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/loop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/loop_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/match_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/match_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/metaclass_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/metaclass_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/method_spec.rb</a></td><td class='right'>945</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/module_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/module_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/next_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/next_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/numbered_parameters_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/numbered_parameters_spec.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/numbers_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/numbers_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/optional_assignments_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/optional_assignments_spec.rb</a></td><td class='right'>204</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/or_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/or_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/pattern_matching_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/pattern_matching_spec.rb</a></td><td class='right'>1403</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/precedence_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/precedence_spec.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/predefined_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/predefined_spec.rb</a></td><td class='right'>781</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/private_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/private_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/proc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/proc_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/range_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/range_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/redo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/redo_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/regexp/back-references_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/regexp/back-references_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/regexp/character_classes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/regexp/character_classes_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp/empty_checks_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/regexp/empty_checks_spec.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/regexp/encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/regexp/encoding_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/regexp/escapes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/regexp/escapes_spec.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/regexp/grouping_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/regexp/grouping_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/regexp/interpolation_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/regexp/interpolation_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/regexp/modifiers_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/regexp/modifiers_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/regexp/repetition_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/regexp/repetition_spec.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/language/regexp/subexpression_call_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/regexp/subexpression_call_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/regexp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/regexp_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/rescue_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/rescue_spec.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/retry_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/retry_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/return_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/return_spec.rb</a></td><td class='right'>371</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/safe_navigator_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/safe_navigator_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/safe_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/safe_spec.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/send_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/send_spec.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/singleton_class_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/singleton_class_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/source_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/source_encoding_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/string_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/string_spec.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/super_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/super_spec.rb</a></td><td class='right'>225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/symbol_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/symbol_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/throw_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/throw_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/undef_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/undef_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/until_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/until_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/variables_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/variables_spec.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/while_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/while_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/language/yield_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/language/yield_spec.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/English/English_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/English/English_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/English/alias_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/English/alias_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/abbrev/abbrev_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/abbrev/abbrev_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/base64/decode64_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/base64/decode64_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/base64/encode64_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/base64/encode64_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/base64/strict_decode64_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/base64/strict_decode64_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/base64/strict_encode64_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/base64/strict_encode64_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/BigDecimal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/BigDecimal_spec.rb</a></td><td class='right'>243</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/abs_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/abs_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/add_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/add_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/ceil_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/ceil_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/clone_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/comparison_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/comparison_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/constants_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/constants_spec.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/div_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/div_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/divide_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/divide_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/divmod_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/divmod_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/dup_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/exponent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/exponent_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/finite_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/finite_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/fix_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/fix_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/floor_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/floor_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/frac_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/frac_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/gt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/gt_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/gte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/gte_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/hash_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/inspect_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/lt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/lt_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/lte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/lte_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/minus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/minus_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/mode_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/mode_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/mult_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/mult_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/multiply_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/multiply_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/nan_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/nan_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/plus_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/precs_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/precs_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/quo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/quo_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/remainder_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/remainder_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/round_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/round_spec.rb</a></td><td class='right'>262</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/clone.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/shared/clone.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/modulo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/shared/modulo.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/mult.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/shared/mult.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/power.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/shared/power.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/quo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/shared/quo.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/shared/to_int.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/shared/to_int.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/sqrt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/sqrt_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/sub_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/sub_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/to_d_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/to_d_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/to_f_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/to_f_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/to_r_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/to_r_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/to_s_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/truncate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/truncate_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/uminus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/uminus_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/util_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/util_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/bigdecimal/zero_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/bigdecimal/zero_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/cgi/cookie/initialize_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/cgi/cookie/name_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/parse_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/cgi/cookie/parse_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/cgi/cookie/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/cgi/cookie/to_s_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/cgi/escapeHTML_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/cgi/escapeHTML_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/cgi/escape_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/cgi/escape_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/cgi/out_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/cgi/out_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/cgi/rfc1123_date_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/cgi/rfc1123_date_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/cgi/unescapeHTML_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/cgi/unescapeHTML_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/cgi/unescape_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/cgi/unescape_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/acos_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/acos_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/acosh_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/acosh_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/asin_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/asin_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/asinh_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/asinh_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/atan2_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/atan2_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/atan_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/atan_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/atanh_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/atanh_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/cos_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/cos_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/cosh_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/cosh_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/exp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/exp_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/fixtures/classes.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/log10_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/log10_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/log_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/log_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/acos.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/acos.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/acosh.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/acosh.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/asin.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/asin.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/asinh.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/asinh.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/atan.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/atan.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/atan2.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/atan2.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/atanh.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/atanh.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/cos.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/cos.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/cosh.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/cosh.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/exp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/exp.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/log.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/log.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/log10.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/log10.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/sin.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/sin.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/sinh.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/sinh.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/sqrt.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/sqrt.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/tan.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/tan.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/shared/tanh.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/shared/tanh.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/sin_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/sin_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/sinh_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/sinh_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/sqrt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/sqrt_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/tan_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/tan_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/math/tanh_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/math/tanh_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/complex/numeric/im_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/complex/numeric/im_spec.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/conditionvariable/broadcast_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/conditionvariable/broadcast_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/conditionvariable/signal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/conditionvariable/signal_spec.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/conditionvariable/wait_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/conditionvariable/wait_spec.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/coverage/fixtures/eval_code.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/coverage/fixtures/eval_code.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/coverage/fixtures/spec_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/coverage/fixtures/spec_helper.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/coverage/peek_result_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/coverage/peek_result_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/coverage/result_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/coverage/result_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/coverage/running_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/coverage/running_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/coverage/start_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/coverage/start_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/csv/liberal_parsing_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/csv/liberal_parsing_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/csv/parse_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/csv/parse_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/csv/readlines_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/csv/readlines_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/add_month_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/add_month_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/add_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/add_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/civil_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/civil_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/constants_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/constants_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/gregorian_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/gregorian_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/infinity_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/infinity_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/iso8601_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/iso8601_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/julian_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/julian_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/minus_month_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/minus_month_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/minus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/minus_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/parse_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/parse_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/plus_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/date/rfc3339_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/rfc3339_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/shared/civil.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/shared/civil.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/shared/commercial.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/shared/commercial.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/shared/valid_jd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/shared/valid_jd.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/date/strftime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/date/strftime_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/add_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/add_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/hour_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/hour_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/new_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/now_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/now_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/parse_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/parse_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/shared/min.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/shared/min.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/shared/sec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/shared/sec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/strftime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/strftime_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/subtract_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/subtract_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/to_date_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/to_date_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/to_s_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/datetime/to_time_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/datetime/to_time_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegate_class/instance_method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/delegate/delegate_class/instance_method_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/eql_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/delegate/delegator/eql_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/frozen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/delegate/delegator/frozen_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/method_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/delegate/delegator/method_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/send_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/delegate/delegator/send_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/taint_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/delegate/delegator/taint_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/trust_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/delegate/delegator/trust_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/untaint_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/delegate/delegator/untaint_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/delegate/delegator/untrust_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/delegate/delegator/untrust_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/bubblebabble_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/bubblebabble_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/hexencode_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/hexencode_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/instance/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/instance/append_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/instance/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/instance/new_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/instance/shared/update.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/instance/shared/update.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/instance/update_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/instance/update_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/file_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/md5/file_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/md5/shared/constants.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/md5/shared/constants.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/sha1/file_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/sha1/file_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/sha1/shared/constants.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/sha1/shared/constants.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/digest/sha2/hexdigest_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/sha2/hexdigest_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/file_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/sha256/file_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/sha256/shared/constants.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/sha256/shared/constants.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/file_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/sha384/file_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/sha384/shared/constants.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/sha384/shared/constants.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/file_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/sha512/file_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/digest/sha512/shared/constants.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/digest/sha512/shared/constants.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/erb/filename_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/erb/filename_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/erb/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/erb/fixtures/classes.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/erb/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/erb/new_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/erb/result_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/erb/result_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/erb/run_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/erb/run_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/erb/util/shared/url_encode.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/erb/util/shared/url_encode.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/etc/confstr_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/etc/confstr_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/etc/getgrgid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/etc/getgrgid_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/etc/getgrnam_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/etc/getgrnam_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/etc/getpwnam_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/etc/getpwnam_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/etc/getpwuid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/etc/getpwuid_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/etc/group_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/etc/group_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/etc/struct_group_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/etc/struct_group_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/etc/struct_passwd_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/etc/struct_passwd_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/expect/expect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/expect/expect_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/fiber/alive_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/fiber/alive_spec.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/fiber/current_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/fiber/current_spec.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/fiber/resume_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/fiber/resume_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/fiber/transfer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/fiber/transfer_spec.rb</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/fiddle/handle/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/fiddle/handle/initialize_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/ordering_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/getoptlong/ordering_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/set_options_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/getoptlong/set_options_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/shared/get.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/getoptlong/shared/get.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/terminate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/getoptlong/terminate_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/getoptlong/terminated_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/getoptlong/terminated_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/io-wait/wait_readable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/io-wait/wait_readable_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/io-wait/wait_writable_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/io-wait/wait_writable_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/ipaddr/ipv4_conversion_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/ipaddr/ipv4_conversion_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/ipaddr/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/ipaddr/new_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/ipaddr/operator_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/ipaddr/operator_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/ipaddr/reverse_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/ipaddr/reverse_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/device/close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/device/close_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/device/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/device/new_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/device/write_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/device/write_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/add_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/logger/add_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/logger/close_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/datetime_format_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/logger/datetime_format_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/debug_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/logger/debug_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/logger/error_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/fatal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/logger/fatal_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/info_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/logger/info_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/logger/new_spec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/unknown_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/logger/unknown_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/logger/logger/warn_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/logger/logger/warn_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/bignum/exponent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/bignum/exponent_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/complex/Complex_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/complex/Complex_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/fixnum/exponent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/fixnum/exponent_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/float/exponent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/float/exponent_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/integer/from_prime_division_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/integer/from_prime_division_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/integer/prime_division_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/integer/prime_division_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/math/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/math/fixtures/classes.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/math/rsqrt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/math/rsqrt_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/math/shared/rsqrt.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/math/shared/rsqrt.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/math/shared/sqrt.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/math/shared/sqrt.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/math/sqrt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/math/sqrt_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/mathn_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/mathn_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/rational/Rational_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/rational/Rational_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/mathn/rational/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mathn/rational/inspect_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/I_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/I_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/antisymmetric_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/antisymmetric_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/build_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/build_spec.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/clone_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/coerce_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/coerce_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/collect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/collect_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/column_size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/column_size_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/column_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/column_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/column_vector_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/column_vector_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/column_vectors_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/column_vectors_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/columns_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/columns_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/conj_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/conj_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/conjugate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/conjugate_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/constructor_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/constructor_spec.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/det_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/det_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/determinant_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/determinant_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/diagonal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/diagonal_spec.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/divide_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/divide_spec.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/each_spec.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/each_with_index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/each_with_index_spec.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/eigenvalue_matrix_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/eigenvalue_decomposition/eigenvalue_matrix_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/eigenvalues_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/eigenvalue_decomposition/eigenvalues_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/eigenvector_matrix_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/eigenvalue_decomposition/eigenvector_matrix_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/eigenvectors_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/eigenvalue_decomposition/eigenvectors_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/eigenvalue_decomposition/initialize_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/eigenvalue_decomposition/to_a_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/eigenvalue_decomposition/to_a_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/element_reference_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/empty_spec.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/eql_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/eql_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/equal_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/equal_value_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/exponent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/exponent_spec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/find_index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/find_index_spec.rb</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/hash_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/hermitian_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/hermitian_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/identity_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/identity_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/imag_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/imag_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/imaginary_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/imaginary_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/inspect_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/inv_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/inv_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/inverse_from_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/inverse_from_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/inverse_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/inverse_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/lower_triangular_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/lower_triangular_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/determinant_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/lup_decomposition/determinant_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/lup_decomposition/initialize_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/l_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/lup_decomposition/l_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/p_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/lup_decomposition/p_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/solve_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/lup_decomposition/solve_spec.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/to_a_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/lup_decomposition/to_a_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/lup_decomposition/u_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/lup_decomposition/u_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/map_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/map_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/minor_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/minor_spec.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/minus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/minus_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/multiply_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/multiply_spec.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/new_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/normal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/normal_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/orthogonal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/orthogonal_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/permutation_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/permutation_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/plus_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/rank_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/rank_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/real_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/real_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/rect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/rect_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/rectangular_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/rectangular_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/regular_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/regular_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/round_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/round_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/row_size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/row_size_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/row_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/row_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/row_vector_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/row_vector_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/row_vectors_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/row_vectors_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/rows_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/rows_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/Fail_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/scalar/Fail_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/Raise_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/scalar/Raise_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/divide_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/scalar/divide_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/exponent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/scalar/exponent_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/included_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/scalar/included_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/scalar/initialize_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/minus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/scalar/minus_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/multiply_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/scalar/multiply_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/scalar/plus_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/scalar_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/scalar_spec.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/determinant.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/shared/determinant.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/inverse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/shared/inverse.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/shared/trace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/shared/trace.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/singular_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/singular_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/square_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/square_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/symmetric_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/symmetric_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/t_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/t_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/to_a_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/to_a_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/to_s_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/tr_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/tr_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/trace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/trace_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/transpose_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/transpose_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/unit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/unit_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/unitary_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/unitary_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/upper_triangular_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/upper_triangular_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/vector/cross_product_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/vector/cross_product_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/vector/each2_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/vector/each2_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/vector/eql_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/vector/eql_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/vector/inner_product_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/vector/inner_product_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/vector/normalize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/vector/normalize_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/matrix/zero_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/matrix/zero_spec.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/mkmf/mkmf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/mkmf/mkmf_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/monitor/enter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/monitor/enter_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/monitor/new_cond_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/monitor/new_cond_spec.rb</a></td><td class='right'>88</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/monitor/synchronize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/monitor/synchronize_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/monitor/try_enter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/monitor/try_enter_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/FTPError_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/FTPError_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/FTPPermError_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/FTPPermError_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/FTPProtoError_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/FTPProtoError_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/FTPReplyError_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/FTPReplyError_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/FTPTempError_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/FTPTempError_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/abort_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/abort_spec.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/acct_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/acct_spec.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/binary_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/binary_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/chdir_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/chdir_spec.rb</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/close_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/closed_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/closed_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/connect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/connect_spec.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/debug_mode_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/debug_mode_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/default_passive_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/default_passive_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/delete_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/delete_spec.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/dir_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/dir_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/fixtures/server.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/fixtures/server.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/get_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/get_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/getbinaryfile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/getbinaryfile_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/getdir_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/getdir_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/gettextfile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/gettextfile_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/help_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/help_spec.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/initialize_spec.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/last_response_code_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/last_response_code_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/last_response_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/last_response_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/lastresp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/lastresp_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/list_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/list_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/login_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/login_spec.rb</a></td><td class='right'>379</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/ls_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/ls_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/mdtm_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/mdtm_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/mkdir_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/mkdir_spec.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/mtime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/mtime_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/nlst_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/nlst_spec.rb</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/noop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/noop_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/open_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/open_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/passive_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/passive_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/put_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/put_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/putbinaryfile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/putbinaryfile_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/puttextfile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/puttextfile_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/pwd_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/pwd_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/quit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/quit_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/rename_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/rename_spec.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/resume_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/resume_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/retrbinary_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/retrbinary_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/retrlines_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/retrlines_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/return_code_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/return_code_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/rmdir_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/rmdir_spec.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/sendcmd_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/sendcmd_spec.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/set_socket_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/set_socket_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/getbinaryfile.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/shared/getbinaryfile.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/gettextfile.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/shared/gettextfile.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/shared/list.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/putbinaryfile.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/shared/putbinaryfile.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/shared/puttextfile.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/shared/puttextfile.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/site_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/site_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/size_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/status_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/status_spec.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/storbinary_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/storbinary_spec.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/storlines_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/storlines_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/system_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/system_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/voidcmd_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/voidcmd_spec.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/ftp/welcome_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/ftp/welcome_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/HTTPClientExcepton_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/HTTPClientExcepton_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/HTTPServerException_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/HTTPServerException_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/finish_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/finish_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/fixtures/http_server.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/fixtures/http_server.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/get2_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/get2_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/get_print_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/get_print_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/get_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/get_spec.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/head2_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/head2_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/post2_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/post2_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/post_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/post_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/proxy_class_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/proxy_class_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/put2_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/put2_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/request_get_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/request_get_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/request_head_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/request_head_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/request_post_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/request_post_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/request_put_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/request_put_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/send_request_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/send_request_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/set_debug_output_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/set_debug_output_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/shared/request_get.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/shared/request_get.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/shared/request_head.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/shared/request_head.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/shared/request_post.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/shared/request_post.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/shared/request_put.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/shared/request_put.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/http/start_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/http/start_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/body_exist_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpgenericrequest/body_exist_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/exec_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpgenericrequest/exec_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpgenericrequest/set_body_internal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpgenericrequest/set_body_internal_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/content_length_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpheader/content_length_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/content_range_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpheader/content_range_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/fetch_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpheader/fetch_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/initialize_http_header_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpheader/initialize_http_header_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/range_length_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpheader/range_length_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/range_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpheader/range_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpheader/shared/set_range.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpheader/shared/set_range.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/body_permitted_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpresponse/body_permitted_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/error_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpresponse/error_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/error_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpresponse/error_type_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/exception_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpresponse/exception_type_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/read_body_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpresponse/read_body_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/read_new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpresponse/read_new_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/shared/body.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpresponse/shared/body.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/net/http/httpresponse/value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/net/http/httpresponse/value_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/objectspace/fixtures/trace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/objectspace/fixtures/trace.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/objectspace/memsize_of_all_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/objectspace/memsize_of_all_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/objectspace/memsize_of_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/objectspace/memsize_of_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/objectspace/reachable_objects_from_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/objectspace/reachable_objects_from_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/objectspace/trace_object_allocations_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/objectspace/trace_object_allocations_spec.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/objectspace/trace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/objectspace/trace_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/observer/notify_observers_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/observer/notify_observers_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/open3/popen3_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/open3/popen3_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/openssl/config/freeze_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/openssl/config/freeze_spec.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openssl/digest_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/openssl/digest_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/openssl/hmac/digest_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/openssl/hmac/digest_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/openssl/hmac/hexdigest_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/openssl/hmac/hexdigest_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/openssl/random/shared/random_bytes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/openssl/random/shared/random_bytes.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/openssl/x509/name/parse_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/openssl/x509/name/parse_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/openssl/x509/name/verify_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/openssl/x509/name/verify_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/openstruct/frozen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/openstruct/frozen_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/openstruct/marshal_load_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/openstruct/marshal_load_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/openstruct/method_missing_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/openstruct/method_missing_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/openstruct/to_h_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/openstruct/to_h_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/optionparser/order_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/optionparser/order_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/optionparser/parse_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/optionparser/parse_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/pathname/absolute_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/absolute_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/birthtime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/birthtime_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/divide_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/divide_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/pathname/empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/empty_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/glob_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/glob_spec.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/inspect_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/pathname/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/new_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/pathname_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/pathname_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/plus_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/pathname/relative_path_from_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/relative_path_from_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/pathname/relative_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/relative_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/pathname/root_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/root_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/pathname/shared/plus.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pathname/shared/plus.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/pp/pp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/pp/pp_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/prime/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/prime/each_spec.rb</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/prime/instance_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/prime/instance_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/prime/int_from_prime_division_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/prime/int_from_prime_division_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/prime/integer/each_prime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/prime/integer/each_prime_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/prime/integer/from_prime_division_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/prime/integer/from_prime_division_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/prime/integer/prime_division_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/prime/integer/prime_division_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/prime/integer/prime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/prime/integer/prime_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/prime/next_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/prime/next_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/prime/prime_division_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/prime/prime_division_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/prime/prime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/prime/prime_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/prime/succ_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/prime/succ_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rbconfig/rbconfig_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rbconfig/rbconfig_spec.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rbconfig/sizeof/limits_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rbconfig/sizeof/limits_spec.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rbconfig/unicode_emoji_version_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rbconfig/unicode_emoji_version_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rbconfig/unicode_version_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rbconfig/unicode_version_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/readline/completion_proc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/readline/completion_proc_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/readline/history/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/readline/history/append_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/readline/history/delete_at_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/readline/history/delete_at_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/readline/history/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/readline/history/each_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/readline/history/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/readline/history/element_reference_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/readline/history/element_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/readline/history/element_set_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/readline/history/pop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/readline/history/pop_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/readline/history/push_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/readline/history/push_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/readline/history/shift_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/readline/history/shift_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/readline/readline_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/readline/readline_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/readline/spec_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/readline/spec_helper.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/resolv/fixtures/hosts?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/resolv/fixtures/hosts</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/resolv/get_address_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/resolv/get_address_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/resolv/get_addresses_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/resolv/get_addresses_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/resolv/get_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/resolv/get_name_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/resolv/get_names_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/resolv/get_names_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/clone_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/element_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/element_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/equal_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/equal_value_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/hash_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/initialize_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/inspect_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/namespace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/namespace_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/node_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/node_type_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/prefix_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/prefix_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/remove_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/remove_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/to_s_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/to_string_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/to_string_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/value_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/write_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/write_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attribute/xpath_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attribute/xpath_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/add_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/add_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/append_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/delete_all_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/delete_all_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/delete_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/delete_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/each_attribute_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/each_attribute_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/each_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/element_reference_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/element_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/element_set_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/get_attribute_ns_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/get_attribute_ns_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/get_attribute_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/get_attribute_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/initialize_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/length_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/length_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/namespaces_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/namespaces_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/prefixes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/prefixes_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/size_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/attributes/to_a_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/attributes/to_a_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/cdata/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/cdata/clone_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/cdata/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/cdata/initialize_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/cdata/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/cdata/to_s_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/cdata/value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/cdata/value_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/add_element_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/add_element_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/add_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/add_spec.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/clone_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/doctype_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/doctype_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/encoding_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/expanded_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/expanded_name_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/new_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/node_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/node_type_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/root_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/root_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/stand_alone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/stand_alone_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/version_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/version_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/write_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/write_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/document/xml_decl_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/document/xml_decl_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/add_attribute_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/add_attribute_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/add_attributes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/add_attributes_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/add_element_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/add_element_spec.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/add_namespace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/add_namespace_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/add_text_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/add_text_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/attribute_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/attribute_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/attributes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/attributes_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/cdatas_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/cdatas_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/clone_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/comments_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/comments_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/delete_attribute_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/delete_attribute_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/delete_element_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/delete_element_spec.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/delete_namespace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/delete_namespace_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/document_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/document_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/each_element_with_attribute_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/each_element_with_attribute_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/each_element_with_text_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/each_element_with_text_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/element_reference_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/get_text_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/get_text_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/has_attributes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/has_attributes_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/has_elements_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/has_elements_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/has_text_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/has_text_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/inspect_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/instructions_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/instructions_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/namespace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/namespace_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/namespaces_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/namespaces_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/new_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/next_element_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/next_element_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/node_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/node_type_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/prefixes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/prefixes_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/previous_element_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/previous_element_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/raw_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/raw_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/root_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/root_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/text_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/text_spec.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/texts_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/texts_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/element/whitespace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/element/whitespace_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/each_recursive_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/node/each_recursive_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/find_first_recursive_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/node/find_first_recursive_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/index_in_parent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/node/index_in_parent_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/next_sibling_node_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/node/next_sibling_node_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/parent_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/node/parent_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/node/previous_sibling_node_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/node/previous_sibling_node_spec.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/shared/elements_to_a.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/shared/elements_to_a.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/append_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/clone_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/comparison_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/comparison_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/empty_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/indent_text_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/indent_text_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/inspect_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/new_spec.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/node_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/node_type_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/normalize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/normalize_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/read_with_substitution_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/read_with_substitution_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/to_s_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/unnormalize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/unnormalize_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/value_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/wrap_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/wrap_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/rexml/text/write_with_substitution_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rexml/text/write_with_substitution_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/ripper/lex_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/ripper/lex_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/ripper/sexp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/ripper/sexp_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rubygems/gem/bin_path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rubygems/gem/bin_path_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/rubygems/gem/load_path_insert_index_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/rubygems/gem/load_path_insert_index_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/scanf/io/block_scanf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/scanf/io/block_scanf_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/scanf/io/fixtures/date.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/scanf/io/fixtures/date.txt</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/scanf/io/fixtures/helloworld.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/scanf/io/fixtures/helloworld.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/scanf/io/scanf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/scanf/io/scanf_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/scanf/io/shared/block_scanf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/scanf/io/shared/block_scanf.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/scanf/string/block_scanf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/scanf/string/block_scanf_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/scanf/string/scanf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/scanf/string/scanf_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/scanf/string/shared/block_scanf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/scanf/string/shared/block_scanf.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/securerandom/base64_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/securerandom/base64_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/securerandom/bytes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/securerandom/bytes_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/securerandom/hex_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/securerandom/hex_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/securerandom/random_bytes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/securerandom/random_bytes_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/securerandom/random_number_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/securerandom/random_number_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/case_compare_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/case_compare_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/case_equality_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/case_equality_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/compare_by_identity_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/compare_by_identity_spec.rb</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/comparison_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/comparison_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/disjoint_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/disjoint_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/enumerable/to_set_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/enumerable/to_set_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/equal_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/equal_value_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/exclusion_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/exclusion_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/filter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/filter_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/fixtures/set_like.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/fixtures/set_like.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/flatten_merge_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/flatten_merge_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/flatten_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/flatten_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/initialize_clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/initialize_clone_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/initialize_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/intersect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/intersect_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/join_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/join_spec.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/merge_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/merge_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/pretty_print_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/pretty_print_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/proper_subset_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/proper_subset_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/proper_superset_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/proper_superset_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/shared/difference.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/shared/difference.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/shared/intersection.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/shared/intersection.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/shared/union.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/shared/union.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/add_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/add_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/append_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/case_equality_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/case_equality_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/classify_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/classify_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/clear_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/clear_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/collect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/collect_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/constructor_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/constructor_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/delete_if_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/delete_if_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/delete_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/delete_spec.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/difference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/difference_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/divide_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/divide_spec.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/each_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/empty_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/eql_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/eql_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/equal_value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/equal_value_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/exclusion_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/exclusion_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/filter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/filter_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/flatten_merge_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/flatten_merge_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/flatten_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/flatten_spec.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/hash_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/include_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/include_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/initialize_spec.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/inspect_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/intersection_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/intersection_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/keep_if_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/keep_if_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/length_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/length_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/map_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/map_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/member_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/member_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/merge_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/merge_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/minus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/minus_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/plus_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/pretty_print_cycle_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/pretty_print_cycle_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/pretty_print_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/pretty_print_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/proper_subset_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/proper_subset_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/proper_superset_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/proper_superset_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/reject_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/reject_spec.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/replace_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/replace_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/select_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/select_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/shared/difference.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/shared/difference.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/shared/intersection.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/shared/intersection.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/shared/union.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/shared/union.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/size_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/sortedset_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/sortedset_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/subset_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/subset_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/subtract_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/subtract_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/superset_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/superset_spec.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/to_a_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/to_a_spec.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/sortedset/union_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/sortedset/union_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/subset_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/subset_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/superset_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/superset_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/set/to_s_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/set/to_s_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/shellwords/shellwords_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/shellwords/shellwords_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/singleton/allocate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/singleton/allocate_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/singleton/clone_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/singleton/clone_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/singleton/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/singleton/dup_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/singleton/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/singleton/new_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/family_addrinfo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/family_addrinfo_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/getnameinfo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/getnameinfo_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/initialize_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ip_address_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ip_address_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ip_port_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ip_port_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ip_unpack_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ip_unpack_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv4_loopback_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv4_loopback_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv4_multicast_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv4_multicast_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv4_private_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv4_private_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_linklocal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_linklocal_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_mc_global_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_mc_global_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_mc_linklocal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_mc_linklocal_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_mc_nodelocal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_mc_nodelocal_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_mc_orglocal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_mc_orglocal_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_mc_sitelocal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_mc_sitelocal_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_multicast_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_multicast_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_sitelocal_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_sitelocal_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_unique_local_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_unique_local_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_unspecified_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_unspecified_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_v4compat_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_v4compat_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/ipv6_v4mapped_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/ipv6_v4mapped_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/listen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/listen_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/addrinfo/unix_path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/addrinfo/unix_path_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/ancillarydata/cmsg_is_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/ancillarydata/cmsg_is_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/ancillarydata/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/ancillarydata/initialize_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/ancillarydata/int_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/ancillarydata/int_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/ancillarydata/ip_pktinfo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/ancillarydata/ip_pktinfo_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/ancillarydata/ipv6_pktinfo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/ancillarydata/ipv6_pktinfo_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/ancillarydata/unix_rights_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/ancillarydata/unix_rights_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/close_read_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/close_read_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/close_write_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/close_write_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/connect_address_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/connect_address_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/do_not_reverse_lookup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/do_not_reverse_lookup_spec.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/getpeereid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/getpeereid_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/getpeername_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/getpeername_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/getsockname_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/getsockname_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/getsockopt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/getsockopt_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/local_address_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/local_address_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/read_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/read_nonblock_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/recv_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/recv_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/recvmsg_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/recvmsg_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/remote_address_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/remote_address_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/send_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/send_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/sendmsg_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/sendmsg_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/setsockopt_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/setsockopt_spec.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/shutdown_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/shutdown_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/basicsocket/write_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/basicsocket/write_nonblock_spec.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/constants/constants_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/constants/constants_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/fixtures/classes.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/ipsocket/addr_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/ipsocket/addr_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/ipsocket/getaddress_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/ipsocket/getaddress_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/ipsocket/peeraddr_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/ipsocket/peeraddr_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/ipsocket/recvfrom_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/ipsocket/recvfrom_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/option/bool_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/option/bool_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/option/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/option/initialize_spec.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/option/int_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/option/int_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/option/linger_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/option/linger_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/option/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/option/new_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/socket/shared/address.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/shared/address.rb</a></td><td class='right'>249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/shared/pack_sockaddr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/shared/pack_sockaddr.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/shared/socketpair.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/shared/socketpair.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/accept_loop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/accept_loop_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/accept_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/accept_nonblock_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/accept_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/accept_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/bind_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/bind_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/connect_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/connect_nonblock_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/connect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/connect_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/gethostbyaddr_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/gethostbyaddr_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/gethostbyname_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/gethostbyname_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/getnameinfo_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/getnameinfo_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/getservbyname_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/getservbyname_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/getservbyport_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/getservbyport_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/initialize_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/listen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/listen_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/recvfrom_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/recvfrom_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/sysaccept_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/sysaccept_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/tcp_server_loop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/tcp_server_loop_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/tcp_server_sockets_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/tcp_server_sockets_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/tcp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/tcp_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/udp_server_loop_on_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/udp_server_loop_on_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/udp_server_loop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/udp_server_loop_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/udp_server_recv_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/udp_server_recv_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/udp_server_sockets_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/udp_server_sockets_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/unix_server_loop_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/unix_server_loop_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/unix_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/unix_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/unpack_sockaddr_in_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/socket/unpack_sockaddr_un_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/socket/unpack_sockaddr_un_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/spec_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/spec_helper.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/accept_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpserver/accept_nonblock_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/accept_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpserver/accept_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/gets_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpserver/gets_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpserver/initialize_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/listen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpserver/listen_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpserver/new_spec.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpserver/sysaccept_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpserver/sysaccept_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/gethostbyname_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpsocket/gethostbyname_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpsocket/initialize_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpsocket/new_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/recv_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpsocket/recv_nonblock_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/tcpsocket/shared/new.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/tcpsocket/shared/new.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/bind_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/udpsocket/bind_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/udpsocket/initialize_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/udpsocket/inspect_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/udpsocket/new_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/recvfrom_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/udpsocket/recvfrom_nonblock_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/send_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/udpsocket/send_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/udpsocket/write_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/udpsocket/write_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/unixserver/accept_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/unixserver/accept_nonblock_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/unixserver/accept_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/unixserver/accept_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/unixserver/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/unixserver/initialize_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/unixserver/sysaccept_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/unixserver/sysaccept_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/unixsocket/initialize_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/local_address_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/unixsocket/local_address_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/open_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/unixsocket/open_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/peeraddr_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/unixsocket/peeraddr_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/recvfrom_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/unixsocket/recvfrom_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/socket/unixsocket/shared/new.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/socket/unixsocket/shared/new.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/append_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/binmode_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/binmode_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/bytes_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/bytes_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/chars_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/chars_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/close_read_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/close_read_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/close_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/close_write_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/close_write_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/codepoints_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/codepoints_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/each_char_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/each_char_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/each_codepoint_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/each_codepoint_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/each_line_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/each_line_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/each_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/fcntl_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/fcntl_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/getch_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/getch_spec.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/getpass_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/getpass_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/gets_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/gets_spec.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/initialize_spec.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/inspect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/inspect_spec.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/lines_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/lines_spec.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringio/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/new_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/open_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/open_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/path_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/path_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/pos_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/pos_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/print_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/print_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/printf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/printf_spec.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/putc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/putc_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/puts_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/puts_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/read_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/read_nonblock_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/readline_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/readline_spec.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/readlines_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/readlines_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/readpartial_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/readpartial_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/reopen_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/reopen_spec.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/seek_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/seek_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/set_encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/set_encoding_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/codepoints.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/shared/codepoints.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/each.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/shared/each.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/each_byte.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/shared/each_byte.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/each_char.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/shared/each_char.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/getc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/shared/getc.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/read.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/shared/read.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/readchar.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/shared/readchar.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/sysread.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/shared/sysread.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/shared/write.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/shared/write.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/string_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/string_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/sysread_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/sysread_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/truncate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/truncate_spec.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/ungetbyte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/ungetbyte_spec.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/ungetc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/ungetc_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringio/write_nonblock_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringio/write_nonblock_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/append_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/check_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/check_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/check_until_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/check_until_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/clear_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/clear_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/concat_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/concat_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/dup_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/dup_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/element_reference_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/element_reference_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/empty_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/empty_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/exist_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/exist_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/getbyte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/getbyte_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/initialize_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/matched_size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/matched_size_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/peep_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/peep_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/restsize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/restsize_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/scan_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/scan_spec.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/scan_until_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/scan_until_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/search_full_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/search_full_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/concat.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/shared/concat.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/extract_range.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/shared/extract_range.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/extract_range_matched.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/shared/extract_range_matched.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/matched_size.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/shared/matched_size.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/peek.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/shared/peek.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/shared/pos.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/shared/pos.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/size_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/size_spec.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/skip_until_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/skip_until_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/stringscanner/unscan_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/stringscanner/unscan_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/syslog/close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/syslog/close_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/syslog/ident_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/syslog/ident_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/syslog/log_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/syslog/log_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/syslog/mask_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/syslog/mask_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/syslog/open_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/syslog/open_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/syslog/shared/log.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/syslog/shared/log.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/syslog/shared/reopen.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/syslog/shared/reopen.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/tempfile/close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/tempfile/close_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/tempfile/initialize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/tempfile/initialize_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/tempfile/open_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/tempfile/open_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/tempfile/shared/unlink.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/tempfile/shared/unlink.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/time/shared/rfc2822.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/time/shared/rfc2822.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/time/to_datetime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/time/to_datetime_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/time/to_time_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/time/to_time_spec.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/timeout/timeout_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/timeout/timeout_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/tmpdir/dir/mktmpdir_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/tmpdir/dir/mktmpdir_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/uri/join_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/uri/join_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/uri/mailto/build_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/uri/mailto/build_spec.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/uri/plus_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/uri/plus_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/uri/select_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/uri/select_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/uri/set_component_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/uri/set_component_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/uri/shared/join.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/uri/shared/join.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/uri/shared/parse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/uri/shared/parse.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/uri/uri_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/uri/uri_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/weakref/__getobj___spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/weakref/__getobj___spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/weakref/allocate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/weakref/allocate_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/weakref/fixtures/classes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/weakref/fixtures/classes.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/weakref/send_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/weakref/send_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/weakref/weakref_alive_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/weakref/weakref_alive_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/_invoke_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole/_invoke_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/connect_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole/connect_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/locale_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole/locale_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole/new_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole/ole_func_methods_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/ole_methods_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole/ole_methods_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/ole_obj_help_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole/ole_obj_help_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/ole_put_methods_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole/ole_put_methods_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/shared/ole_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole/shared/ole_method.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole/shared/setproperty.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole/shared/setproperty.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_event/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_event/new_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/dispid_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/dispid_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/event_interface_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/event_interface_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/event_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/event_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/helpcontext_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/helpcontext_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/helpfile_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/helpfile_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/helpstring_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/helpstring_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/invkind_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/invkind_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/invoke_kind_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/invoke_kind_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/new_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/offset_vtbl_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/offset_vtbl_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/params_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/params_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/return_type_detail_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/return_type_detail_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/return_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/return_type_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/return_vtype_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/return_vtype_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/shared/name.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/shared/name.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/size_opt_params_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/size_opt_params_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/size_params_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/size_params_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_method/visible_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_method/visible_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/default_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_param/default_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/input_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_param/input_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/ole_type_detail_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_param/ole_type_detail_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/ole_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_param/ole_type_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/optional_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_param/optional_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/retval_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_param/retval_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_param/shared/name.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_param/shared/name.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_type/new_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/progids_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_type/progids_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/shared/name.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_type/shared/name.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_type/typelibs_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_type/typelibs_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/win32ole/win32ole_variable/value_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/win32ole/win32ole_variable/value_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/add_builtin_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/add_builtin_type_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/add_domain_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/add_domain_type_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/add_private_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/add_private_type_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/add_ruby_type_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/add_ruby_type_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/detect_implicit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/detect_implicit_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/yaml/dump_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/dump_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/each_node_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/each_node_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/emitter_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/emitter_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/yaml/fixtures/common.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/fixtures/common.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/yaml/fixtures/example_class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/fixtures/example_class.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/generic_parser_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/generic_parser_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/load_documents_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/load_documents_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/yaml/load_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/load_spec.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/object_maker_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/object_maker_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/parse_documents_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/parse_documents_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/yaml/parse_file_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/parse_file_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/parser_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/parser_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/quick_emit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/quick_emit_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/read_type_class_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/read_type_class_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/shared/load.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/shared/load.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/tagurize_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/tagurize_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/yaml/to_yaml_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/to_yaml_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/transfer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/transfer_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/yaml/try_implicit_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/try_implicit_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/yaml/unsafe_load_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/yaml/unsafe_load_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/adler32_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/adler32_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/crc32_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/crc32_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/crc_table_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/crc_table_spec.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/deflate/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/deflate/append_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/deflate/deflate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/deflate/deflate_spec.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/deflate/flush_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/deflate/flush_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/deflate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/deflate_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gunzip_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gunzip_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzip_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzip_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/close_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/closed_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/closed_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/comment_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/comment_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/crc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/crc_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/finish_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/finish_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/level_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/level_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/mtime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/mtime_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/orig_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/orig_name_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/os_code_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/os_code_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/sync_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/sync_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/to_io_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/to_io_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipfile/wrap_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipfile/wrap_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/each_byte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/each_byte_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/each_line_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/each_line_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/each_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/each_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/eof_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/eof_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/getc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/getc_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/gets_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/gets_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/lineno_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/lineno_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/open_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/open_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/pos_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/pos_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/read_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/read_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/readchar_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/readchar_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/readline_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/readline_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/readlines_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/readlines_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/readpartial_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/readpartial_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/rewind_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/rewind_spec.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/shared/each.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/shared/each.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/tell_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/tell_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/ungetbyte_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/ungetbyte_spec.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/ungetc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/ungetc_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipreader/unused_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipreader/unused_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/append_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/comment_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/comment_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/flush_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/flush_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/mtime_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/mtime_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/new_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/new_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/open_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/open_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/orig_name_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/orig_name_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/pos_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/pos_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/print_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/print_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/printf_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/printf_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/putc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/putc_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/puts_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/puts_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/tell_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/tell_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/gzipwriter/write_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/gzipwriter/write_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate/append_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/inflate/append_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate/inflate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/inflate/inflate_spec.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate/sync_point_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/inflate/sync_point_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate/sync_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/inflate/sync_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/inflate_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/inflate_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/zlib_version_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zlib_version_spec.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/close_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/close_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/closed_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/closed_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/end_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/end_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/ended_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/ended_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/finish_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/finish_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/finished_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/finished_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/flush_next_in_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/flush_next_in_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/flush_next_out_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/flush_next_out_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/reset_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/reset_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/stream_end_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/stream_end_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/total_in_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/total_in_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/library/zlib/zstream/total_out_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/library/zlib/zstream/total_out_spec.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/README?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/README</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/array_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/array_spec.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/basic_object_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/basic_object_spec.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/bignum_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/bignum_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/binding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/binding_spec.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/class_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/class_spec.rb</a></td><td class='right'>168</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/constants_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/constants_spec.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/data_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/data_spec.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/debug_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/debug_spec.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/encoding_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/encoding_spec.rb</a></td><td class='right'>297</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/exception_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/exception_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/array_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/array_spec.c</a></td><td class='right'>241</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/basic_object_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/basic_object_spec.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/bignum_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/bignum_spec.c</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/binding_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/binding_spec.c</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/boolean_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/boolean_spec.c</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/class_id_under_autoload_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/class_id_under_autoload_spec.c</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/class_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/class_spec.c</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/class_under_autoload_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/class_under_autoload_spec.c</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/complex_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/complex_spec.c</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/constants_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/constants_spec.c</a></td><td class='right'>694</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/data_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/data_spec.c</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/debug_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/debug_spec.c</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/encoding_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/encoding_spec.c</a></td><td class='right'>310</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/enumerator_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/enumerator_spec.c</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/exception_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/exception_spec.c</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/fiber_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/fiber_spec.c</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/file_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/file_spec.c</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/fixnum_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/fixnum_spec.c</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/float_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/float_spec.c</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/gc_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/gc_spec.c</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/globals_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/globals_spec.c</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/hash_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/hash_spec.c</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/integer_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/integer_spec.c</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/io_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/io_spec.c</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/kernel_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/kernel_spec.c</a></td><td class='right'>254</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/language_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/language_spec.c</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/marshal_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/marshal_spec.c</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/module_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/module_spec.c</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/module_under_autoload_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/module_under_autoload_spec.c</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/mutex_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/mutex_spec.c</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/numeric_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/numeric_spec.c</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/object_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/object_spec.c</a></td><td class='right'>358</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/proc_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/proc_spec.c</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/range_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/range_spec.c</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/rational_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/rational_spec.c</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/rbasic_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/rbasic_spec.c</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/regexp_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/regexp_spec.c</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/rubyspec.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/rubyspec.h</a></td><td class='right'>603</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/st_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/st_spec.c</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/string_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/string_spec.c</a></td><td class='right'>569</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/struct_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/struct_spec.c</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/symbol_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/symbol_spec.c</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/thread_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/thread_spec.c</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/time_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/time_spec.c</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/tracepoint_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/tracepoint_spec.c</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/typed_data_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/typed_data_spec.c</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/ext/util_spec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/ext/util_spec.c</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fiber_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/fiber_spec.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/file_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/file_spec.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixnum_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/fixnum_spec.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/fixtures/class.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/module.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/fixtures/module.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/object.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/fixtures/object.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/fixtures/read.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/fixtures/read.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/float_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/float_spec.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/gc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/gc_spec.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/globals_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/globals_spec.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/hash_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/hash_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/integer_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/integer_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/io_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/io_spec.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/kernel_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/kernel_spec.rb</a></td><td class='right'>349</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/language_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/language_spec.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/module_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/module_spec.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/mutex_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/mutex_spec.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/numeric_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/numeric_spec.rb</a></td><td class='right'>302</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/object_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/object_spec.rb</a></td><td class='right'>336</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/proc_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/proc_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/range_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/range_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/rbasic_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/rbasic_spec.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/regexp_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/regexp_spec.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/shared/rbasic.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/shared/rbasic.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/spec_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/spec_helper.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/string_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/string_spec.rb</a></td><td class='right'>618</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/struct_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/struct_spec.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/symbol_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/symbol_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/thread_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/thread_spec.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/time_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/time_spec.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/optional/capi/tracepoint_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/tracepoint_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/typed_data_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/typed_data_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/optional/capi/util_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/optional/capi/util_spec.rb</a></td><td class='right'>183</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/security/cve_2010_1330_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2010_1330_spec.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/security/cve_2011_4815_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2011_4815_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/security/cve_2013_4164_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2013_4164_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/security/cve_2014_8080_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2014_8080_spec.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/security/cve_2017_17742_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2017_17742_spec.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/security/cve_2018_16396_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2018_16396_spec.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/security/cve_2018_6914_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2018_6914_spec.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/security/cve_2018_8778_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2018_8778_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/security/cve_2018_8779_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2018_8779_spec.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/security/cve_2018_8780_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2018_8780_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/security/cve_2019_8321_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2019_8321_spec.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/security/cve_2019_8322_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2019_8322_spec.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/security/cve_2019_8323_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2019_8323_spec.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/security/cve_2019_8325_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2019_8325_spec.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/security/cve_2020_10663_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/security/cve_2020_10663_spec.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/basicobject/method_missing.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/basicobject/method_missing.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/basicobject/send.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/basicobject/send.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/enumerable/minmax.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/enumerable/minmax.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/each.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/enumerator/each.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/enum_cons.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/enumerator/enum_cons.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/enum_for.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/enumerator/enum_for.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/new.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/enumerator/new.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/next.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/enumerator/next.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/rewind.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/enumerator/rewind.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/enumerator/with_index.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/enumerator/with_index.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/fiber/resume.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/fiber/resume.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/directory.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/directory.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/executable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/executable.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/executable_real.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/executable_real.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/exist.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/exist.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/file.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/grpowned.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/grpowned.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/identical.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/identical.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/readable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/readable.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/readable_real.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/readable_real.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/size.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/size.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/world_readable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/world_readable.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/world_writable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/world_writable.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/writable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/writable.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/writable_real.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/writable_real.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/file/zero.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/file/zero.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/hash/key_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/hash/key_error.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/io/putc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/io/putc.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/kernel/complex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/kernel/complex.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/kernel/raise.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/kernel/raise.rb</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/math/atanh.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/math/atanh.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/process/abort.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/process/abort.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/process/exit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/process/exit.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/process/fork.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/process/fork.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/queue/deque.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/queue/deque.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/queue/enque.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/queue/enque.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/rational/Rational.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/Rational.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/rational/arithmetic_exception_in_coerce.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/arithmetic_exception_in_coerce.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/rational/coerce.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/coerce.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/rational/comparison.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/comparison.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/rational/div.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/div.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/rational/divide.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/divide.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/rational/divmod.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/divmod.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/rational/exponent.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/exponent.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/spec/ruby/shared/rational/minus.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/minus.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/rational/modulo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/modulo.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/rational/round.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/round.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/rational/to_f.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/rational/to_f.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/sizedqueue/enque.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/sizedqueue/enque.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/sizedqueue/max.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/sizedqueue/max.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/sizedqueue/new.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/sizedqueue/new.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/string/end_with.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/string/end_with.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/ruby/shared/string/start_with.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/string/start_with.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/string/times.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/string/times.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/time/strftime_for_date.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/time/strftime_for_date.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/shared/time/strftime_for_time.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/shared/time/strftime_for_time.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/spec/ruby/spec_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/ruby/spec_helper.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/fixtures/derailed_require_tree.rb.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/fixtures/derailed_require_tree.rb.txt</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/fixtures/rexe.rb.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/fixtures/rexe.rb.txt</a></td><td class='right'>569</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/fixtures/routes.rb.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/fixtures/routes.rb.txt</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/fixtures/ruby_buildpack.rb.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/fixtures/ruby_buildpack.rb.txt</a></td><td class='right'>1344</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/fixtures/syntax_tree.rb.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/fixtures/syntax_tree.rb.txt</a></td><td class='right'>9234</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/fixtures/this_project_extra_def.rb.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/fixtures/this_project_extra_def.rb.txt</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/fixtures/webmock.rb.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/fixtures/webmock.rb.txt</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/integration/exe_cli_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/integration/exe_cli_spec.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/integration/ruby_command_line_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/integration/ruby_command_line_spec.rb</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/integration/syntax_suggest_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/integration/syntax_suggest_spec.rb</a></td><td class='right'>239</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/spec_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/spec_helper.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/api_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/api_spec.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/around_block_scan_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/around_block_scan_spec.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/block_expand_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/block_expand_spec.rb</a></td><td class='right'>230</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/capture/before_after_keyword_ends_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/capture/before_after_keyword_ends_spec.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/capture/falling_indent_lines_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/capture/falling_indent_lines_spec.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/capture_code_context_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/capture_code_context_spec.rb</a></td><td class='right'>229</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/clean_document_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/clean_document_spec.rb</a></td><td class='right'>260</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/cli_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/cli_spec.rb</a></td><td class='right'>224</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/code_block_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/code_block_spec.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/code_frontier_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/code_frontier_spec.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/code_line_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/code_line_spec.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/code_search_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/code_search_spec.rb</a></td><td class='right'>505</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/core_ext_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/core_ext_spec.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/display_invalid_blocks_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/display_invalid_blocks_spec.rb</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/explain_syntax_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/explain_syntax_spec.rb</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/lex_all_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/lex_all_spec.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/pathname_from_message_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/pathname_from_message_spec.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/priority_queue_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/priority_queue_spec.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/spec/syntax_suggest/unit/scan_history_spec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>spec/syntax_suggest/unit/scan_history_spec.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/sprintf.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>sprintf.c</a></td><td class='right'>1671</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/st.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>st.c</a></td><td class='right'>1100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/strftime.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>strftime.c</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/string.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>string.c</a></td><td class='right'>10736</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.4%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 95.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/string.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>string.rb</a></td><td class='right'>552</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/struct.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>struct.c</a></td><td class='right'>1837</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/symbol.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>symbol.c</a></td><td class='right'>1066</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/symbol.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>symbol.h</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/symbol.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>symbol.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/Doxyfile.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/Doxyfile.tmpl</a></td><td class='right'>2506</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/GNUmakefile.in?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/GNUmakefile.in</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/Makefile.in?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/Makefile.in</a></td><td class='right'>728</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/builtin_binary.inc.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/builtin_binary.inc.tmpl</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/call_iseq_optimized.inc.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/call_iseq_optimized.inc.tmpl</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/configure-ext.mk.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/configure-ext.mk.tmpl</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/template/depend.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/depend.tmpl</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/encdb.h.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/encdb.h.tmpl</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/extinit.c.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/extinit.c.tmpl</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/exts.mk.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/exts.mk.tmpl</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/fake.rb.in?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/fake.rb.in</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/id.c.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/id.c.tmpl</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/id.h.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/id.h.tmpl</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/prelude.c.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/prelude.c.tmpl</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/template/ruby-gdb.in?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/ruby-gdb.in</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/template/ruby-lldb.in?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/ruby-lldb.in</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/ruby.pc.in?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/ruby.pc.in</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/sizes.c.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/sizes.c.tmpl</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/transdb.h.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/transdb.h.tmpl</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/template/unicode_norm_gen.tmpl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>template/unicode_norm_gen.tmpl</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/arith_seq/test_arith_seq_beg_len_step.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/arith_seq/test_arith_seq_beg_len_step.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/array/test_resize.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/array/test_resize.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/array/test_to_ary_concat.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/array/test_to_ary_concat.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/bignum/test_big2str.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/bignum/test_big2str.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/bignum/test_bigzero.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/bignum/test_bigzero.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/bignum/test_div.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/bignum/test_div.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/bignum/test_mul.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/bignum/test_mul.rb</a></td><td class='right'>260</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/bignum/test_pack.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/bignum/test_pack.rb</a></td><td class='right'>737</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/bignum/test_str2big.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/bignum/test_str2big.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/bug_reporter/test_bug_reporter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/bug_reporter/test_bug_reporter.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/debug/test_debug.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/debug/test_debug.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/debug/test_profile_frames.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/debug/test_profile_frames.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/econv/test_append.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/econv/test_append.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/eval/test_eval.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/eval/test_eval.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/float/test_nextafter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/float/test_nextafter.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/-ext-/funcall/test_funcall.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/funcall/test_funcall.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/funcall/test_passing_block.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/funcall/test_passing_block.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/gvl/test_last_thread.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/gvl/test_last_thread.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/gvl/test_ubf_async_safe.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/gvl/test_ubf_async_safe.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/integer/test_integer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/integer/test_integer.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/iseq_load/test_iseq_load.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/iseq_load/test_iseq_load.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/iter/test_yield_block.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/iter/test_yield_block.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/marshal/test_internal_ivar.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/marshal/test_internal_ivar.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/num2int/test_num2int.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/num2int/test_num2int.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/popen_deadlock/test_popen_deadlock.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/popen_deadlock/test_popen_deadlock.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/postponed_job/test_postponed_job.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/postponed_job/test_postponed_job.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/rational/test_rat.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/rational/test_rat.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/string/test_capacity.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/string/test_capacity.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/string/test_cstr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/string/test_cstr.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/string/test_ellipsize.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/string/test_ellipsize.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/string/test_enc_str_buf_cat.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/string/test_enc_str_buf_cat.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/string/test_fstring.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/string/test_fstring.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_interned_str.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/string/test_interned_str.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/string/test_modify_expand.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/string/test_modify_expand.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/string/test_normalize.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/string/test_normalize.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/string/test_rb_str_dup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/string/test_rb_str_dup.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/string/test_set_len.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/string/test_set_len.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/struct/test_duplicate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/struct/test_duplicate.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/symbol/noninterned_name.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/symbol/noninterned_name.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/symbol/test_inadvertent_creation.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/symbol/test_inadvertent_creation.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/symbol/test_type.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/symbol/test_type.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/test_abi.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/test_abi.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/test_bug-14834.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/test_bug-14834.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/test_enumerator_kw.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/test_enumerator_kw.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/test_notimplement.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/test_notimplement.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/test_printf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/test_printf.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/test_random.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/test_random.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/test_scan_args.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/test_scan_args.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/thread/test_instrumentation_api.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/thread/test_instrumentation_api.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/thread_fd/test_thread_fd_close.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/thread_fd/test_thread_fd_close.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/-ext-/thread_fd_close/test_thread_fd_close.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/thread_fd_close/test_thread_fd_close.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/tracepoint/test_tracepoint.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/tracepoint/test_tracepoint.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/-ext-/wait/test_wait.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/wait/test_wait.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/-ext-/win32/test_console_attr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/-ext-/win32/test_console_attr.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/benchmark/test_benchmark.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/benchmark/test_benchmark.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/bigdecimal/helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/bigdecimal/helper.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/bigdecimal/test_bigdecimal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/bigdecimal/test_bigdecimal.rb</a></td><td class='right'>534</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/bigdecimal/test_bigdecimal_util.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/bigdecimal/test_bigdecimal_util.rb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/bigdecimal/test_bigmath.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/bigdecimal/test_bigmath.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/bigdecimal/test_ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/bigdecimal/test_ractor.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/bigdecimal/testbase.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/bigdecimal/testbase.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/cgi/test_cgi_cookie.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/cgi/test_cgi_cookie.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/cgi/test_cgi_core.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/cgi/test_cgi_core.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/cgi/test_cgi_header.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/cgi/test_cgi_header.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/cgi/test_cgi_multipart.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/cgi/test_cgi_multipart.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/cgi/test_cgi_util.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/cgi/test_cgi_util.rb</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/coverage/autostart.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/coverage/autostart.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/coverage/main.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/coverage/main.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/coverage/test_coverage.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/coverage/test_coverage.rb</a></td><td class='right'>326</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/csv/base.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/base.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/helper.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/interface/test_delegation.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/interface/test_delegation.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/interface/test_read.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/interface/test_read.rb</a></td><td class='right'>381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/interface/test_read_write.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/interface/test_read_write.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/interface/test_write.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/interface/test_write.rb</a></td><td class='right'>217</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_column_separator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_column_separator.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_convert.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_convert.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_each.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_each.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_general.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_general.rb</a></td><td class='right'>341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_header.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_header.rb</a></td><td class='right'>342</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_inputs_scanner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_inputs_scanner.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_invalid.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_invalid.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_liberal_parsing.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_liberal_parsing.rb</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_quote_char_nil.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_quote_char_nil.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_read.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_read.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_rewind.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_rewind.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_row_separator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_row_separator.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_skip_lines.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_skip_lines.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_strip.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_strip.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/parse/test_unconverted_fields.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/parse/test_unconverted_fields.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/test/csv/test_csv_parsing.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/test_csv_parsing.rb</a></td><td class='right'>252</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/test/csv/test_csv_writing.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/test_csv_writing.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/test/csv/test_data_converters.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/test_data_converters.rb</a></td><td class='right'>266</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/test/csv/test_encodings.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/test_encodings.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/test/csv/test_features.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/test_features.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/test/csv/test_headers.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/test_headers.rb</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/test/csv/test_interface.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/test_interface.rb</a></td><td class='right'>443</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/test_patterns.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/test_patterns.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/test/csv/test_row.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/test_row.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--<span class='modechange'>[-rwxr-xr-x]</span></td><td class='upd'><a href='/ruby.git/diff/test/csv/test_table.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/test_table.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/csv/ts_all.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/ts_all.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/write/test_converters.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/write/test_converters.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/write/test_force_quotes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/write/test_force_quotes.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/write/test_general.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/write/test_general.rb</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/csv/write/test_quote_empty.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/csv/write/test_quote_empty.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/date/test_date.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/date/test_date.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/date/test_date_arith.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/date/test_date_arith.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/date/test_date_conv.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/date/test_date_conv.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/date/test_date_marshal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/date/test_date_marshal.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/date/test_date_new.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/date/test_date_new.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/date/test_date_parse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/date/test_date_parse.rb</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/date/test_date_ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/date/test_date_ractor.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/date/test_date_strftime.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/date/test_date_strftime.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/date/test_date_strptime.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/date/test_date_strptime.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/date/test_switch_hitter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/date/test_switch_hitter.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/dbm/test_dbm.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/dbm/test_dbm.rb</a></td><td class='right'>635</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/core_ext/test_name_error_extension.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/core_ext/test_name_error_extension.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/edit_distance/test_jaro_winkler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/edit_distance/test_jaro_winkler.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/fixtures/book.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/fixtures/book.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/fixtures/mini_dir.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/fixtures/mini_dir.yml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/fixtures/rspec_dir.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/fixtures/rspec_dir.yml</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/helper.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/spell_checking/test_class_name_check.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/spell_checking/test_class_name_check.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/spell_checking/test_key_name_check.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/spell_checking/test_key_name_check.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/spell_checking/test_method_name_check.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/spell_checking/test_method_name_check.rb</a></td><td class='right'>165</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/spell_checking/test_pattern_key_name_check.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/spell_checking/test_pattern_key_name_check.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/spell_checking/test_require_path_check.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/spell_checking/test_require_path_check.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/spell_checking/test_uncorrectable_name_check.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/spell_checking/test_uncorrectable_name_check.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/spell_checking/test_variable_name_check.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/spell_checking/test_variable_name_check.rb</a></td><td class='right'>152</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/test_ractor_compatibility.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/test_ractor_compatibility.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/test_spell_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/test_spell_checker.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/test_tree_spell_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/test_tree_spell_checker.rb</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/tree_spell/change_word.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/tree_spell/change_word.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/tree_spell/human_typo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/tree_spell/human_typo.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/tree_spell/test_change_word.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/tree_spell/test_change_word.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/did_you_mean/tree_spell/test_human_typo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/did_you_mean/tree_spell/test_human_typo.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/digest/test_digest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/digest/test_digest.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/digest/test_digest_extend.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/digest/test_digest_extend.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/digest/test_ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/digest/test_ractor.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/drbtest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/drb/drbtest.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/test_drb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/drb/test_drb.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/drb/test_drbobject.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/drb/test_drbobject.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/test_drbssl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/drb/test_drbssl.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/drb/ut_drb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/drb/ut_drb.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/dtrace/helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/dtrace/helper.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/dtrace/test_function_entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/dtrace/test_function_entry.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/dtrace/test_require.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/dtrace/test_require.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/dtrace/test_singleton_function.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/dtrace/test_singleton_function.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/erb/test_erb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/erb/test_erb.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/erb/test_erb_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/erb/test_erb_command.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/error_highlight/test_error_highlight.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/error_highlight/test_error_highlight.rb</a></td><td class='right'>1290</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/etc/test_etc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/etc/test_etc.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/excludes/TestArray.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/TestArray.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/excludes/TestGem.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/TestGem.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/excludes/TestThread.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/TestThread.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/excludes/TestThreadQueue.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/TestThreadQueue.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/excludes/_travis/osx/IMAPTest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/_travis/osx/IMAPTest.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/excludes/_travis/osx/TestGemRemoteFetcher.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/_travis/osx/TestGemRemoteFetcher.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/excludes/_travis/osx/TestWEBrickUtils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/_travis/osx/TestWEBrickUtils.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/excludes/_wercker/jit-wait/TestDelegateClass.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/_wercker/jit-wait/TestDelegateClass.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/excludes/_wercker/jit-wait/TestGemRemoteFetcher.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/_wercker/jit-wait/TestGemRemoteFetcher.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/excludes/_wercker/jit-wait/TestParallel/TestParallel.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/_wercker/jit-wait/TestParallel/TestParallel.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/excludes/_wercker/jit-wait/TestThreadQueue.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/_wercker/jit-wait/TestThreadQueue.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/excludes/_wercker/jit/TestThreadQueue.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/excludes/_wercker/jit/TestThreadQueue.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/autoload.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/autoload.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/http.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/http.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/scheduler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/scheduler.rb</a></td><td class='right'>363</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_address_resolve.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_address_resolve.rb</a></td><td class='right'>278</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_backtrace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_backtrace.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_enumerator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_enumerator.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_io.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_io.rb</a></td><td class='right'>222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_io_buffer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_io_buffer.rb</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_mutex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_mutex.rb</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_process.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_process.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_queue.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_queue.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_ractor.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_scheduler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_scheduler.rb</a></td><td class='right'>226</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_sleep.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_sleep.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_storage.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_storage.rb</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_thread.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_thread.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiber/test_timeout.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiber/test_timeout.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fiddle/helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/helper.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_c_struct_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_c_struct_builder.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fiddle/test_c_struct_entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_c_struct_entry.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fiddle/test_c_union_entity.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_c_union_entity.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fiddle/test_closure.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_closure.rb</a></td><td class='right'>106</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fiddle/test_cparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_cparser.rb</a></td><td class='right'>169</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fiddle/test_fiddle.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_fiddle.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fiddle/test_func.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_func.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fiddle/test_function.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_function.rb</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fiddle/test_handle.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_handle.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fiddle/test_import.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_import.rb</a></td><td class='right'>395</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_memory_view.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_memory_view.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_pack.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_pack.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fiddle/test_pinned.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_pinned.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fiddle/test_pointer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fiddle/test_pointer.rb</a></td><td class='right'>120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fileutils/clobber.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fileutils/clobber.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fileutils/test_dryrun.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fileutils/test_dryrun.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fileutils/test_fileutils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fileutils/test_fileutils.rb</a></td><td class='right'>236</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fileutils/test_nowrite.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fileutils/test_nowrite.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fileutils/test_verbose.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fileutils/test_verbose.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/fileutils/visibility_tests.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fileutils/visibility_tests.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/fixtures/fake_sorted_set_gem/sorted_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/fixtures/fake_sorted_set_gem/sorted_set.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/gdbm/test_gdbm.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/gdbm/test_gdbm.rb</a></td><td class='right'>734</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/io/console/test_io_console.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/io/console/test_io_console.rb</a></td><td class='right'>194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/io/nonblock/test_flush.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/io/nonblock/test_flush.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/io/wait/test_io_wait.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/io/wait/test_io_wait.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/io/wait/test_io_wait_uncommon.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/io/wait/test_io_wait_uncommon.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/io/wait/test_ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/io/wait/test_ractor.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/helper.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_cmd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_cmd.rb</a></td><td class='right'>692</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_color.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_color.rb</a></td><td class='right'>291</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_color_printer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_color_printer.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/irb/test_completion.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_completion.rb</a></td><td class='right'>349</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/irb/test_context.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_context.rb</a></td><td class='right'>621</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_debug_cmd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_debug_cmd.rb</a></td><td class='right'>303</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_history.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_history.rb</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/irb/test_init.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_init.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_input_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_input_method.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/irb/test_option.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_option.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/irb/test_raise_no_backtrace_exception.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_raise_no_backtrace_exception.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/irb/test_ruby-lex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_ruby-lex.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/test_ruby_lex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_ruby_lex.rb</a></td><td class='right'>725</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/irb/test_workspace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/test_workspace.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/irb/yamatanooroti/test_rendering.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/irb/yamatanooroti/test_rendering.rb</a></td><td class='right'>249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail29.json?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/json/fixtures/fail29.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail30.json?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/json/fixtures/fail30.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail31.json?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/json/fixtures/fail31.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/fixtures/fail32.json?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/json/fixtures/fail32.json</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/json/json_addition_test.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/json/json_addition_test.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/json/json_common_interface_test.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/json/json_common_interface_test.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/json/json_fixtures_test.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/json/json_fixtures_test.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/json/json_generator_test.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/json/json_generator_test.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/json/json_parser_test.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/json/json_parser_test.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/json/ractor_test.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/json/ractor_test.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/json/test_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/json/test_helper.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/-test-/integer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/-test-/integer.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/envutil.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/envutil.rb</a></td><td class='right'>298</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/iseq_loader_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/iseq_loader_checker.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/lib/jit_support.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/jit_support.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/leakchecker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/leakchecker.rb</a></td><td class='right'>240</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/memory_status.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/memory_status.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/minitest/README.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/minitest/README.txt</a></td><td class='right'>457</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/minitest/autorun.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/minitest/autorun.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/minitest/benchmark.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/minitest/benchmark.rb</a></td><td class='right'>418</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/minitest/mock.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/minitest/mock.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/minitest/unit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/minitest/unit.rb</a></td><td class='right'>1424</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/profile_test_all.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/profile_test_all.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/test/unit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/test/unit.rb</a></td><td class='right'>1189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/test/unit/assertions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/test/unit/assertions.rb</a></td><td class='right'>958</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/test/unit/parallel.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/test/unit/parallel.rb</a></td><td class='right'>208</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/test/unit/testcase.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/test/unit/testcase.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/lib/tracepointchecker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/tracepointchecker.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/lib/with_different_ofs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/lib/with_different_ofs.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/logger/test_formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/logger/test_formatter.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/logger/test_logdevice.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/logger/test_logdevice.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/logger/test_logger.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/logger/test_logger.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/logger/test_logperiod.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/logger/test_logperiod.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/logger/test_severity.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/logger/test_severity.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/matrix/test_matrix.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/matrix/test_matrix.rb</a></td><td class='right'>790</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/matrix/test_vector.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/matrix/test_vector.rb</a></td><td class='right'>335</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/minitest/metametameta.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/minitest/metametameta.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/minitest/test_minitest_benchmark.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/minitest/test_minitest_benchmark.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/minitest/test_minitest_mock.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/minitest/test_minitest_mock.rb</a></td><td class='right'>404</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/minitest/test_minitest_unit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/minitest/test_minitest_unit.rb</a></td><td class='right'>1781</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/misc/test_ruby_mode.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/misc/test_ruby_mode.rb</a></td><td class='right'>183</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/base.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/base.rb</a></td><td class='right'>228</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_config.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_constant.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_constant.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_convertible.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_convertible.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_egrep_cpp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_egrep_cpp.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_find_executable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_find_executable.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_flags.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_flags.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_framework.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_framework.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_have_func.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_have_func.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_have_library.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_have_library.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_have_macro.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_have_macro.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_install.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_install.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_libs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_libs.rb</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_mkmf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_mkmf.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/mkmf/test_pkg_config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_pkg_config.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_signedness.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_signedness.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/mkmf/test_sizeof.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/mkmf/test_sizeof.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/monitor/test_monitor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/monitor/test_monitor.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/net/fixtures/Makefile?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/fixtures/Makefile</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/fixtures/cacert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/fixtures/cacert.pem</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/fixtures/server.crt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/fixtures/server.crt</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/fixtures/server.key?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/fixtures/server.key</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/net/ftp/test_buffered_socket.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/ftp/test_buffered_socket.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/net/ftp/test_ftp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/ftp/test_ftp.rb</a></td><td class='right'>2471</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/net/ftp/test_mlsx_entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/ftp/test_mlsx_entry.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/http/test_http.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/http/test_http.rb</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/http/test_http_request.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/http/test_http_request.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/http/test_httpheader.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/http/test_httpheader.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/http/test_httpresponse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/http/test_httpresponse.rb</a></td><td class='right'>287</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/http/test_https.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/http/test_https.rb</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/http/test_https_proxy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/http/test_https_proxy.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/http/utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/http/utils.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/net/imap/Makefile?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/imap/Makefile</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/net/imap/test_imap.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/imap/test_imap.rb</a></td><td class='right'>772</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/net/imap/test_imap_response_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/imap/test_imap_response_parser.rb</a></td><td class='right'>324</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/net/pop/test_pop.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/pop/test_pop.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/net/protocol/test_protocol.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/protocol/test_protocol.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/net/smtp/test_response.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/smtp/test_response.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/net/smtp/test_smtp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/smtp/test_smtp.rb</a></td><td class='right'>200</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/net/smtp/test_ssl_socket.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/net/smtp/test_ssl_socket.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/objspace/test_objspace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/objspace/test_objspace.rb</a></td><td class='right'>411</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/objspace/test_ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/objspace/test_ractor.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/open-uri/test_open-uri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/open-uri/test_open-uri.rb</a></td><td class='right'>363</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/open-uri/test_ssl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/open-uri/test_ssl.rb</a></td><td class='right'>372</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/certificate.der?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/fixtures/pkey/certificate.der</a></td><td class='right'>bin</td><td class='graph'>0 -> 1325 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/dh-1.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/fixtures/pkey/dh-1.pem</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/empty.der?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/fixtures/pkey/empty.der</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/empty.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/fixtures/pkey/empty.pem</a></td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/fullchain.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/fixtures/pkey/fullchain.pem</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/garbage.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/fixtures/pkey/garbage.txt</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/p256_too_large.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/fixtures/pkey/p256_too_large.pem</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/p384_invalid.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/fixtures/pkey/p384_invalid.pem</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/rsa-1.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/fixtures/pkey/rsa-1.pem</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/rsa-2.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/fixtures/pkey/rsa-2.pem</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/fixtures/pkey/rsa-3.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/fixtures/pkey/rsa-3.pem</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_asn1.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_asn1.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_bn.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_bn.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_buffering.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_buffering.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_cipher.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_cipher.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_config.rb</a></td><td class='right'>194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_digest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_digest.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_engine.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_engine.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_fips.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_fips.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_hmac.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_hmac.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_kdf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_kdf.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_ns_spki.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_ns_spki.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_ocsp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_ocsp.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_ossl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_ossl.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_pair.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_pair.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_pkcs12.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_pkcs12.rb</a></td><td class='right'>299</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_pkcs7.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_pkcs7.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_pkey.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_pkey.rb</a></td><td class='right'>177</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_pkey_dh.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_pkey_dh.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_pkey_dsa.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_pkey_dsa.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_pkey_ec.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_pkey_ec.rb</a></td><td class='right'>231</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_pkey_rsa.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_pkey_rsa.rb</a></td><td class='right'>383</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_random.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_random.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_ssl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_ssl.rb</a></td><td class='right'>864</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_ssl_session.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_ssl_session.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/openssl/test_ts.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_ts.rb</a></td><td class='right'>680</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509attr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_x509attr.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509cert.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_x509cert.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509crl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_x509crl.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509ext.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_x509ext.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509name.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_x509name.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509req.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_x509req.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/test_x509store.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/test_x509store.rb</a></td><td class='right'>414</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/ut_eof.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/ut_eof.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/openssl/utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/openssl/utils.rb</a></td><td class='right'>149</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_acceptable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_acceptable.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_autoconf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_autoconf.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_bash_completion.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_bash_completion.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_cclass.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_cclass.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/optparse/test_did_you_mean.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_did_you_mean.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_getopts.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_getopts.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_kwargs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_kwargs.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/optparse/test_load.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_load.rb</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_noarg.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_noarg.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_optarg.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_optarg.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_optparse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_optparse.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_placearg.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_placearg.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_reqarg.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_reqarg.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_summary.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_summary.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/optparse/test_zsh_completion.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/optparse/test_zsh_completion.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ostruct/test_ostruct.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ostruct/test_ostruct.rb</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/pathname/test_pathname.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/pathname/test_pathname.rb</a></td><td class='right'>278</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/pathname/test_ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/pathname/test_ractor.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/helper.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_alias_and_anchor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_alias_and_anchor.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_array.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_array.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_class.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_coder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_coder.rb</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_date_time.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_date_time.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_deprecated.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_deprecated.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_document.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_document.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_emitter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_emitter.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_encoding.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_encoding.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_exception.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_exception.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_hash.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_hash.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_marshalable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_marshalable.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_merge_keys.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_merge_keys.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_nil.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_nil.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_numeric.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_numeric.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_object.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_object.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_object_references.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_object_references.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_omap.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_omap.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_parser.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_psych.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_psych.rb</a></td><td class='right'>181</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/test_ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_ractor.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_safe_load.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_safe_load.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_scalar_scanner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_scalar_scanner.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_serialize_subclasses.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_serialize_subclasses.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_set.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_string.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_string.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_struct.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_struct.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/psych/test_tainted.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_tainted.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_yaml.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_yaml.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_yaml_special_cases.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_yaml_special_cases.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/test_yamlstore.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/test_yamlstore.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/visitors/test_to_ruby.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/visitors/test_to_ruby.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/psych/visitors/test_yaml_tree.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/psych/visitors/test_yaml_tree.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/cadenza.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/cadenza.y</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/cast.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/cast.y</a></td><td class='right'>926</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/chk.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/chk.y</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/conf.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/conf.y</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/csspool.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/csspool.y</a></td><td class='right'>729</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/digraph.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/digraph.y</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/echk.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/echk.y</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/edtf.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/edtf.y</a></td><td class='right'>583</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/err.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/err.y</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/error_recovery.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/error_recovery.y</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/expect.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/expect.y</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/firstline.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/firstline.y</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/huia.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/huia.y</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/ichk.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/ichk.y</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/ifelse.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/ifelse.y</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/intp.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/intp.y</a></td><td class='right'>546</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/journey.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/journey.y</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/liquor.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/liquor.y</a></td><td class='right'>313</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/machete.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/machete.y</a></td><td class='right'>423</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/macruby.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/macruby.y</a></td><td class='right'>2197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/mailp.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/mailp.y</a></td><td class='right'>437</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/mediacloth.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/mediacloth.y</a></td><td class='right'>599</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/mof.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/mof.y</a></td><td class='right'>649</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/namae.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/namae.y</a></td><td class='right'>302</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/nasl.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/nasl.y</a></td><td class='right'>626</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/newsyn.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/newsyn.y</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/noend.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/noend.y</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/nokogiri-css.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/nokogiri-css.y</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/nonass.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/nonass.y</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/normal.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/normal.y</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/norule.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/norule.y</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/nullbug1.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/nullbug1.y</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/nullbug2.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/nullbug2.y</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/opal.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/opal.y</a></td><td class='right'>1807</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/opt.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/opt.y</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/percent.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/percent.y</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/php_serialization.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/php_serialization.y</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/recv.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/recv.y</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/riml.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/riml.y</a></td><td class='right'>665</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/rrconf.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/rrconf.y</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/ruby18.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/ruby18.y</a></td><td class='right'>1943</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/ruby19.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/ruby19.y</a></td><td class='right'>2174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/ruby20.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/ruby20.y</a></td><td class='right'>2350</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/ruby21.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/ruby21.y</a></td><td class='right'>2359</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/ruby22.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/ruby22.y</a></td><td class='right'>2381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/scan.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/scan.y</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/syntax.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/syntax.y</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/tp_plus.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/tp_plus.y</a></td><td class='right'>622</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/twowaysql.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/twowaysql.y</a></td><td class='right'>278</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/unterm.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/unterm.y</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/useless.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/useless.y</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/assets/yyerr.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/assets/yyerr.y</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/bench.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/bench.y</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/case.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/infini.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/infini.y</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/README.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/README.txt</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/cadenza?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/cadenza</a></td><td class='right'>796</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/cast?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/cast</a></td><td class='right'>3945</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/csspool?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/csspool</a></td><td class='right'>2314</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/edtf?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/edtf</a></td><td class='right'>1794</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/huia?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/huia</a></td><td class='right'>1681</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/journey?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/journey</a></td><td class='right'>222</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/liquor?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/liquor</a></td><td class='right'>885</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/machete?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/machete</a></td><td class='right'>833</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/mediacloth?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/mediacloth</a></td><td class='right'>1463</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/mof?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/mof</a></td><td class='right'>1368</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/namae?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/namae</a></td><td class='right'>634</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/nasl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/nasl</a></td><td class='right'>2548</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/nokogiri-css?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/nokogiri-css</a></td><td class='right'>836</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/opal?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/opal</a></td><td class='right'>10107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/php_serialization?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/php_serialization</a></td><td class='right'>336</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/riml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/riml</a></td><td class='right'>4037</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/ruby18?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/ruby18</a></td><td class='right'>9945</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/ruby22?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/ruby22</a></td><td class='right'>11180</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/tp_plus?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/tp_plus</a></td><td class='right'>1933</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/regress/twowaysql?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/regress/twowaysql</a></td><td class='right'>556</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/scandata/brace?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/scandata/brace</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/scandata/gvar?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/scandata/gvar</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/scandata/normal?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/scandata/normal</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/scandata/percent?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/scandata/percent</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/scandata/slash?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/scandata/slash</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/src.intp?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/src.intp</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/start.y?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/start.y</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/test_chk_y.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/test_chk_y.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/test_grammar_file_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/test_grammar_file_parser.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/test_racc_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/test_racc_command.rb</a></td><td class='right'>339</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/test_scan_y.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/test_scan_y.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/racc/testscanner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/racc/testscanner.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/MarkdownTest_1.0.3/Markdown%20Documentation%20-%20Basics.text?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/MarkdownTest_1.0.3/Markdown Documentation - Basics.text</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/helper.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rdoc/minitest_helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/minitest_helper.rb</a></td><td class='right'>204</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/support/formatter_test_case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/support/formatter_test_case.rb</a></td><td class='right'>764</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rdoc/support/test_case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/support/test_case.rb</a></td><td class='right'>217</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/test/rdoc/support/text_formatter_test_case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/support/text_formatter_test_case.rb</a> (renamed from lib/rdoc/markup/text_formatter_test_case.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_alias.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_alias.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_any_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_any_method.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_attr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_attr.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_class_module.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_class_module.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_code_object.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_code_object.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_comment.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_comment.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_constant.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_constant.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_context.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_context.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_context_section.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_context_section.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_cross_reference.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_cross_reference.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_encoding.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_encoding.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_extend.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_extend.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_darkfish.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_generator_darkfish.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_json_index.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_generator_json_index.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_markup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_generator_markup.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_pot.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_generator_pot.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_pot_po.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_generator_pot_po.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_pot_po_entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_generator_pot_po_entry.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_generator_ri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_generator_ri.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_i18n_locale.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_i18n_locale.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_i18n_text.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_i18n_text.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_include.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_include.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markdown.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markdown.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markdown_test.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markdown_test.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_attribute_manager.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_attribute_manager.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_attributes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_attributes.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_document.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_document.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_formatter.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_hard_break.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_hard_break.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_heading.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_heading.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_include.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_include.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_indented_paragraph.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_indented_paragraph.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_paragraph.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_paragraph.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_parser.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_pre_process.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_pre_process.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_raw.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_raw.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_ansi.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_to_ansi.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_bs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_to_bs.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_html.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_to_html.rb</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_html_crossref.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_to_html_crossref.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_html_snippet.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_to_html_snippet.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_joined_paragraph.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_to_joined_paragraph.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_label.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_to_label.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_markdown.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_to_markdown.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_rdoc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_to_rdoc.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_table_of_contents.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_to_table_of_contents.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_to_tt_only.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_to_tt_only.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_markup_verbatim.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_markup_verbatim.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_method_attr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_method_attr.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_normal_class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_normal_class.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_normal_module.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_normal_module.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_options.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_options.rb</a></td><td class='right'>241</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_parser.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_c.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_parser_c.rb</a></td><td class='right'>314</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_changelog.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_parser_changelog.rb</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_markdown.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_parser_markdown.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_rd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_parser_rd.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_ruby.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_parser_ruby.rb</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_parser_simple.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_parser_simple.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_rd.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rd_block_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_rd_block_parser.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rd_inline.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_rd_inline.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rd_inline_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_rd_inline_parser.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rdoc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_rdoc.rb</a></td><td class='right'>145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_require.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_require.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_ri_driver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_ri_driver.rb</a></td><td class='right'>182</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_ri_paths.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_ri_paths.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_rubygems_hook.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_rubygems_hook.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_servlet.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_servlet.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_single_class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_single_class.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_stats.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_stats.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_store.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_store.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_task.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_task.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_text.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_text.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_token_stream.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_token_stream.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_tom_doc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_tom_doc.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/test_rdoc_top_level.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/test_rdoc_top_level.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/xref_data.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/xref_data.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rdoc/xref_test_case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rdoc/xref_test_case.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/readline/helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/readline/helper.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/readline/test_readline.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/readline/test_readline.rb</a></td><td class='right'>628</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/readline/test_readline_history.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/readline/test_readline_history.rb</a></td><td class='right'>197</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/helper.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_config.rb</a></td><td class='right'>412</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_history.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_history.rb</a></td><td class='right'>308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_key_actor_emacs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_key_actor_emacs.rb</a></td><td class='right'>2354</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_key_actor_vi.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_key_actor_vi.rb</a></td><td class='right'>1465</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_key_stroke.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_key_stroke.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_kill_ring.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_kill_ring.rb</a></td><td class='right'>268</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_macro.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_macro.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_reline.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_reline.rb</a></td><td class='right'>386</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_reline_key.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_reline_key.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_string_processing.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_string_processing.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_terminfo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_terminfo.rb</a></td><td class='right'>61</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_unicode.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_unicode.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/test_within_pipe.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/test_within_pipe.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/windows/test_key_event_record.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/windows/test_key_event_record.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/reline/yamatanooroti/multiline_repl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/yamatanooroti/multiline_repl</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/yamatanooroti/termination_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/yamatanooroti/termination_checker.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/reline/yamatanooroti/test_rendering.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/reline/yamatanooroti/test_rendering.rb</a></td><td class='right'>1345</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/resolv/test_addr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/resolv/test_addr.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/resolv/test_dns.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/resolv/test_dns.rb</a></td><td class='right'>211</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/LostineRiver.kml.gz?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/LostineRiver.kml.gz</a></td><td class='right'>bin</td><td class='graph'>50154 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/ProductionSupport.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/ProductionSupport.xml</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/axis.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/axis.xml</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/bad.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/bad.xml</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/basic.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/basic.xml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/basicupdate.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/basicupdate.xml</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/broken.rss?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/broken.rss</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/contents.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/contents.xml</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/dash.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/dash.xml</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/defaultNamespace.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/defaultNamespace.xml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/doctype_test.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/doctype_test.xml</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/documentation.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/documentation.xml</a></td><td class='right'>542</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/euc.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/euc.xml</a></td><td class='right'>296</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/evaluate.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/evaluate.xml</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/fibo.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/fibo.xml</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/foo.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/foo.xml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/google.2.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/google.2.xml</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/id.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/id.xml</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/iso8859-1.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/iso8859-1.xml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/jaxen24.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/jaxen24.xml</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/jaxen3.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/jaxen3.xml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/lang.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/lang.xml</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/lang0.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/lang0.xml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/message.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/message.xml</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/moreover.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/moreover.xml</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/much_ado.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/much_ado.xml</a></td><td class='right'>6850</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.8%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/namespaces.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/namespaces.xml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/nitf.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/nitf.xml</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/numbers.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/numbers.xml</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/ofbiz-issues-full-177.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/ofbiz-issues-full-177.xml</a></td><td class='right'>13971</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.8%;'/><td class='none' style='width: 94.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/pi.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/pi.xml</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/pi2.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/pi2.xml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/project.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/project.xml</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/simple.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/simple.xml</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/stream_accents.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/stream_accents.xml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/t63-1.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/t63-1.xml</a></td><td class='right'>bin</td><td class='graph'>161690 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/t63-2.svg?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/t63-2.svg</a></td><td class='right'>2828</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 98.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/t75.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/t75.xml</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/test/tests.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/test/tests.xml</a></td><td class='right'>683</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/test/tests.xsl?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/test/tests.xsl</a></td><td class='right'>369</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/testNamespaces.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/testNamespaces.xml</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/testsrc.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/testsrc.xml</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/text.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/text.xml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/ticket_61.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/ticket_61.xml</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/ticket_68.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/ticket_68.xml</a></td><td class='right'>590</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/tutorial.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/tutorial.xml</a></td><td class='right'>678</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/underscore.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/underscore.xml</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/utf16.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/utf16.xml</a></td><td class='right'>bin</td><td class='graph'>207464 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/web.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/web.xml</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/web2.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/web2.xml</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/working.rss?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/working.rss</a></td><td class='right'>202</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/xmlfile-bug.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/xmlfile-bug.xml</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/xp.tst?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/xp.tst</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/data/yahoo.xml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/data/yahoo.xml</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/formatter/test_default.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/formatter/test_default.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/listener.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/listener.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/parse/test_document_type_declaration.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/parse/test_document_type_declaration.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/parse/test_element.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/parse/test_element.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/parse/test_notation_declaration.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/parse/test_notation_declaration.rb</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/parse/test_processing_instruction.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/parse/test_processing_instruction.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/parser/test_sax2.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/parser/test_sax2.rb</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/parser/test_stream.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/parser/test_stream.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/parser/test_tree.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/parser/test_tree.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/parser/test_ultra_light.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/parser/test_ultra_light.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/rexml_test_utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/rexml_test_utils.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_attribute.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_attribute.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_attributes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_attributes.rb</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_attributes_mixin.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_attributes_mixin.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_changing_encoding.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_changing_encoding.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_comment.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_comment.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_contrib.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_contrib.rb</a></td><td class='right'>585</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_core.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_core.rb</a></td><td class='right'>1469</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_doctype.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_doctype.rb</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_document.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_document.rb</a></td><td class='right'>416</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_element.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_element.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_elements.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_elements.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_encoding.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_encoding.rb</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_entity.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_entity.rb</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_functions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_functions.rb</a></td><td class='right'>238</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_functions_number.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_functions_number.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_instruction.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_instruction.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_jaxen.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_jaxen.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_light.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_light.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_lightparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_lightparser.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_listener.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_listener.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_martin_fowler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_martin_fowler.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_namespace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_namespace.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_order.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_order.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_preceding_sibling.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_preceding_sibling.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_pullparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_pullparser.rb</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_rexml_issuezilla.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_rexml_issuezilla.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_sax.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_sax.rb</a></td><td class='right'>287</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_stream.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_stream.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_text.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_text.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_ticket_80.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_ticket_80.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_validation_rng.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_validation_rng.rb</a></td><td class='right'>793</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/test_xml_declaration.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/test_xml_declaration.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/xpath/test_attribute.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/xpath/test_attribute.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/xpath/test_axis_preceding_sibling.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/xpath/test_axis_preceding_sibling.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/xpath/test_base.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/xpath/test_base.rb</a></td><td class='right'>1121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/xpath/test_node.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/xpath/test_node.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/xpath/test_predicate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/xpath/test_predicate.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rexml/xpath/test_text.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rexml/xpath/test_text.rb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rinda/test_rinda.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rinda/test_rinda.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/assert_parse_files.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/assert_parse_files.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ripper/dummyparser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/dummyparser.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/ripper/test_files.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_files.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_files_ext.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_files_ext.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_files_lib.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_files_lib.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_files_sample.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_files_sample.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_files_test.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_files_test.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_files_test_1.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_files_test_1.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ripper/test_files_test_2.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_files_test_2.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ripper/test_lexer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_lexer.rb</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ripper/test_parser_events.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_parser_events.rb</a></td><td class='right'>244</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ripper/test_ripper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_ripper.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ripper/test_scanner_events.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_scanner_events.rb</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ripper/test_sexp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ripper/test_sexp.rb</a></td><td class='right'>402</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/dot.png?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/dot.png</a></td><td class='right'>bin</td><td class='graph'>111 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/rss-assertions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/rss-assertions.rb</a></td><td class='right'>2091</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.9%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/rss-testcase.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/rss-testcase.rb</a></td><td class='right'>479</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_1.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_1.0.rb</a></td><td class='right'>308</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_2.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_2.0.rb</a></td><td class='right'>412</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_accessor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_accessor.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_atom.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_atom.rb</a></td><td class='right'>684</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_content.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_content.rb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_dublincore.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_dublincore.rb</a></td><td class='right'>270</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_image.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_image.rb</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_inherit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_inherit.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_itunes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_itunes.rb</a></td><td class='right'>352</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_0.9.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_0.9.rb</a></td><td class='right'>477</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_1.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_1.0.rb</a></td><td class='right'>519</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_2.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_2.0.rb</a></td><td class='right'>758</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_atom_entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_atom_entry.rb</a></td><td class='right'>394</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_atom_feed.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_atom_feed.rb</a></td><td class='right'>455</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_content.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_content.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_dc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_dc.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_image.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_image.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_itunes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_itunes.rb</a></td><td class='right'>480</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_slash.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_slash.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_sy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_sy.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_taxo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_taxo.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_trackback.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_trackback.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_maker_xml-stylesheet.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_maker_xml-stylesheet.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_parser.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_parser_1.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_parser_1.0.rb</a></td><td class='right'>529</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_parser_2.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_parser_2.0.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_parser_atom_entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_parser_atom_entry.rb</a></td><td class='right'>164</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_parser_atom_feed.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_parser_atom_feed.rb</a></td><td class='right'>277</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_setup_maker_0.9.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_setup_maker_0.9.rb</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_setup_maker_1.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_setup_maker_1.0.rb</a></td><td class='right'>551</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_setup_maker_2.0.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_setup_maker_2.0.rb</a></td><td class='right'>309</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_setup_maker_atom_entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_setup_maker_atom_entry.rb</a></td><td class='right'>410</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_setup_maker_atom_feed.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_setup_maker_atom_feed.rb</a></td><td class='right'>446</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_setup_maker_itunes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_setup_maker_itunes.rb</a></td><td class='right'>144</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_setup_maker_slash.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_setup_maker_slash.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_slash.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_slash.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_syndication.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_syndication.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_taxonomy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_taxonomy.rb</a></td><td class='right'>173</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_to_s.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_to_s.rb</a></td><td class='right'>701</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_trackback.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_trackback.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_version.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rss/test_xml-stylesheet.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rss/test_xml-stylesheet.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/enc/test_case_comprehensive.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/enc/test_case_comprehensive.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/enc/test_case_mapping.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/enc/test_case_mapping.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/enc/test_cesu8.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/enc/test_cesu8.rb</a></td><td class='right'>113</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/enc/test_emoji_breaks.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/enc/test_emoji_breaks.rb</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/enc/test_grapheme_breaks.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/enc/test_grapheme_breaks.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/enc/test_regex_casefold.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/enc/test_regex_casefold.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/marshaltestlib.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/marshaltestlib.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/sentence.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/sentence.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_alias.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_alias.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_argf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_argf.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_arithmetic_sequence.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_arithmetic_sequence.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_arity.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_arity.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_array.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_array.rb</a></td><td class='right'>793</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_assignment.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_assignment.rb</a></td><td class='right'>199</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_ast.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_ast.rb</a></td><td class='right'>829</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_autoload.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_autoload.rb</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_backtrace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_backtrace.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_basicinstructions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_basicinstructions.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_beginendblock.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_beginendblock.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_bignum.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_bignum.rb</a></td><td class='right'>112</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_call.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_call.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_case.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_class.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_class.rb</a></td><td class='right'>238</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_clone.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_clone.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_comparable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_comparable.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_complex.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_complex.rb</a></td><td class='right'>246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_complex2.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_complex2.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_complexrational.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_complexrational.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_const.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_const.rb</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_data.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_data.rb</a></td><td class='right'>249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_default_gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_default_gems.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_defined.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_defined.rb</a></td><td class='right'>161</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_dir.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_dir.rb</a></td><td class='right'>331</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_dir_m17n.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_dir_m17n.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_dup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_dup.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_econv.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_econv.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_encoding.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_encoding.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_enum.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_enum.rb</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_enumerator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_enumerator.rb</a></td><td class='right'>252</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_env.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_env.rb</a></td><td class='right'>978</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_eval.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_eval.rb</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_exception.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_exception.rb</a></td><td class='right'>688</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_fiber.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_fiber.rb</a></td><td class='right'>217</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_file.rb</a></td><td class='right'>153</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_file_exhaustive.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_file_exhaustive.rb</a></td><td class='right'>225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_fixnum.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_fixnum.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_flip.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_flip.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_float.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_float.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_fnmatch.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_fnmatch.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_frozen.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_frozen.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_frozen_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_frozen_error.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_gc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_gc.rb</a></td><td class='right'>257</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_gc_compact.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_gc_compact.rb</a></td><td class='right'>456</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_hash.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_hash.rb</a></td><td class='right'>700</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_inlinecache.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_inlinecache.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_insns_leaf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_insns_leaf.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_integer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_integer.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_io.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_io.rb</a></td><td class='right'>615</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_io_buffer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_io_buffer.rb</a></td><td class='right'>562</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_io_m17n.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_io_m17n.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_io_timeout.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_io_timeout.rb</a></td><td class='right'>58</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_iseq.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_iseq.rb</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_iterator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_iterator.rb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/ruby/test_jit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_jit.rb</a></td><td class='right'>966</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_keyword.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_keyword.rb</a></td><td class='right'>3710</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_lambda.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_lambda.rb</a></td><td class='right'>171</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_lazy_enumerator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_lazy_enumerator.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_literal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_literal.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_m17n.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_m17n.rb</a></td><td class='right'>119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_m17n_comb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_m17n_comb.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_marshal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_marshal.rb</a></td><td class='right'>334</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_math.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_math.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_memory_view.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_memory_view.rb</a></td><td class='right'>341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_method.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_method.rb</a></td><td class='right'>599</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_method_cache.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_method_cache.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_mjit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_mjit.rb</a></td><td class='right'>1327</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_mjit_debug.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_mjit_debug.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_module.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_module.rb</a></td><td class='right'>1167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_name_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_name_error.rb</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_nomethod_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_nomethod_error.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/ruby/test_notimp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_notimp.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_numeric.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_numeric.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_object.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_object.rb</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_objectspace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_objectspace.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_optimization.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_optimization.rb</a></td><td class='right'>182</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_pack.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_pack.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_parse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_parse.rb</a></td><td class='right'>737</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_path.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_path.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_pattern_matching.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_pattern_matching.rb</a></td><td class='right'>1713</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_primitive.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_primitive.rb</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_proc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_proc.rb</a></td><td class='right'>527</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_process.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_process.rb</a></td><td class='right'>469</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_rand.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_rand.rb</a></td><td class='right'>362</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_random_formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_random_formatter.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_range.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_range.rb</a></td><td class='right'>231</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_rational.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_rational.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_refinement.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_refinement.rb</a></td><td class='right'>661</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_regexp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_regexp.rb</a></td><td class='right'>665</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_require.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_require.rb</a></td><td class='right'>347</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_require_lib.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_require_lib.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_rubyoptions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_rubyoptions.rb</a></td><td class='right'>270</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_rubyvm.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_rubyvm.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_rubyvm_mjit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_rubyvm_mjit.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_settracefunc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_settracefunc.rb</a></td><td class='right'>977</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_shapes.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_shapes.rb</a></td><td class='right'>441</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_signal.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_signal.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_sprintf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_sprintf.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_stack.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_stack.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_string.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_string.rb</a></td><td class='right'>1205</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_struct.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_struct.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_super.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_super.rb</a></td><td class='right'>166</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_symbol.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_symbol.rb</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_syntax.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_syntax.rb</a></td><td class='right'>864</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_system.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_system.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_thread.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_thread.rb</a></td><td class='right'>281</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_thread_cv.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_thread_cv.rb</a></td><td class='right'>63</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_thread_queue.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_thread_queue.rb</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_time.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_time.rb</a></td><td class='right'>333</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_time_tz.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_time_tz.rb</a></td><td class='right'>218</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_trace.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_trace.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_transcode.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_transcode.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_undef.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_undef.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_variable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_variable.rb</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_vm_dump.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_vm_dump.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/ruby/test_weakmap.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_weakmap.rb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_yjit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_yjit.rb</a></td><td class='right'>1333</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_yjit_exit_locations.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/ruby/test_yjit_exit_locations.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/alternate_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/alternate_cert.pem</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/alternate_cert_32.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/alternate_cert_32.pem</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/alternate_key.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/alternate_key.pem</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/bad_rake.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/bad_rake.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rubygems/bogussources.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/bogussources.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/bundler_test_gem.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/bundler_test_gem.rb</a></td><td class='right'>421</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/ca_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/ca_cert.pem</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/child_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/child_cert.pem</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/child_cert_32.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/child_cert_32.pem</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/child_key.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/child_key.pem</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/client.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/client.pem</a></td><td class='right'>148</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/data/excon-0.7.7.gemspec.rz?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/data/excon-0.7.7.gemspec.rz</a></td><td class='right'>bin</td><td class='graph'>0 -> 388 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/data/null-required-ruby-version.gemspec.rz?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/data/null-required-ruby-version.gemspec.rz</a></td><td class='right'>bin</td><td class='graph'>0 -> 403 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/data/null-required-rubygems-version.gemspec.rz?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/data/null-required-rubygems-version.gemspec.rz</a></td><td class='right'>bin</td><td class='graph'>0 -> 421 bytes<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rubygems/data/null-type.gemspec.rz?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/data/null-type.gemspec.rz</a></td><td class='right'>bin</td><td class='graph'>554 -> 0 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/data/pry-0.4.7.gemspec.rz?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/data/pry-0.4.7.gemspec.rz</a></td><td class='right'>bin</td><td class='graph'>0 -> 433 bytes<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/encrypted_private_key.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/encrypted_private_key.pem</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/expired_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/expired_cert.pem</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/fake_certlib/openssl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/fake_certlib/openssl.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/future_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/future_cert.pem</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/future_cert_32.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/future_cert_32.pem</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/good_rake.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/good_rake.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/grandchild_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/grandchild_cert.pem</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/grandchild_cert_32.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/grandchild_cert_32.pem</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/grandchild_key.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/grandchild_key.pem</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/helper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/helper.rb</a></td><td class='right'>1643</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/installer_test_case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/installer_test_case.rb</a></td><td class='right'>248</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/invalid_issuer_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/invalid_issuer_cert.pem</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/invalid_issuer_cert_32.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/invalid_issuer_cert_32.pem</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/invalid_key.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/invalid_key.pem</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/invalid_signer_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/invalid_signer_cert.pem</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/invalid_signer_cert_32.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/invalid_signer_cert_32.pem</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/invalidchild_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/invalidchild_cert.pem</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/invalidchild_cert_32.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/invalidchild_cert_32.pem</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/invalidchild_key.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/invalidchild_key.pem</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/multifactor_auth_utilities.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/multifactor_auth_utilities.rb</a></td><td class='right'>111</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/package/tar_test_case.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/package/tar_test_case.rb</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/packages/Bluebie-legs-0.6.2.gem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/packages/Bluebie-legs-0.6.2.gem</a></td><td class='right'>bin</td><td class='graph'>0 -> 14336 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/packages/ascii_binder-0.1.10.1.gem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/packages/ascii_binder-0.1.10.1.gem</a></td><td class='right'>bin</td><td class='graph'>0 -> 244736 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem</a></td><td class='right'>bin</td><td class='graph'>0 -> 10240 bytes<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/plugin/exception/rubygems_plugin.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/plugin/exception/rubygems_plugin.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/plugin/load/rubygems_plugin.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/plugin/load/rubygems_plugin.rb</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/plugin/standarderror/rubygems_plugin.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/plugin/standarderror/rubygems_plugin.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/private_ec_key.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/private_ec_key.pem</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/private_key.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/private_key.pem</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/public_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/public_cert.pem</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/public_cert_32.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/public_cert_32.pem</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/public_key.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/public_key.pem</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/rubygems/commands/crash_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/rubygems/commands/crash_command.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/rubygems_plugin.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/rubygems_plugin.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/simple_gem.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/simple_gem.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/specifications/bar-0.0.2.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/specifications/bar-0.0.2.gemspec</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/specifications/rubyforge-0.0.1.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/specifications/rubyforge-0.0.1.gemspec</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/ssl_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/ssl_cert.pem</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/ssl_key.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/ssl_key.pem</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_bundled_ca.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_bundled_ca.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_config.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_deprecate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_deprecate.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_exit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_exit.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem.rb</a></td><td class='right'>1587</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_available_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_available_set.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_bundler_version_finder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_bundler_version_finder.rb</a></td><td class='right'>85</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_command.rb</a></td><td class='right'>226</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_command_manager.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_command_manager.rb</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_build_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_build_command.rb</a></td><td class='right'>489</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_cert_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_cert_command.rb</a></td><td class='right'>318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_check_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_check_command.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_cleanup_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_cleanup_command.rb</a></td><td class='right'>150</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_contents_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_contents_command.rb</a></td><td class='right'>116</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_dependency_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_dependency_command.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_environment_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_environment_command.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_exec_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_exec_command.rb</a></td><td class='right'>853</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_fetch_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_fetch_command.rb</a></td><td class='right'>196</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_generate_index_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_generate_index_command.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_help_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_help_command.rb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_info_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_info_command.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_install_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_install_command.rb</a></td><td class='right'>776</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_list_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_list_command.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_lock_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_lock_command.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_mirror.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_mirror.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_open_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_open_command.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_outdated_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_outdated_command.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_owner_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_owner_command.rb</a></td><td class='right'>334</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_pristine_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_pristine_command.rb</a></td><td class='right'>360</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_push_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_push_command.rb</a></td><td class='right'>355</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_query_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_query_command.rb</a></td><td class='right'>204</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_search_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_search_command.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_server_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_server_command.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_setup_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_setup_command.rb</a></td><td class='right'>491</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_signin_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_signin_command.rb</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_signout_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_signout_command.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_sources_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_sources_command.rb</a></td><td class='right'>300</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_specification_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_specification_command.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_stale_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_stale_command.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_uninstall_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_uninstall_command.rb</a></td><td class='right'>351</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_unpack_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_unpack_command.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_update_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_update_command.rb</a></td><td class='right'>515</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_which_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_which_command.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_commands_yank_command.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_commands_yank_command.rb</a></td><td class='right'>254</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_config_file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_config_file.rb</a></td><td class='right'>217</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_dependency.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_dependency.rb</a></td><td class='right'>181</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_dependency_installer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_dependency_installer.rb</a></td><td class='right'>728</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_dependency_list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_dependency_list.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_dependency_resolution_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_dependency_resolution_error.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_doctor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_doctor.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_builder.rb</a></td><td class='right'>225</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder.rb</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock</a></td><td class='right'>233</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock</a></td><td class='right'>247</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb</a></td><td class='right'>34</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cargo_builder_unit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cargo_builder_unit.rb</a></td><td class='right'>60</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_cmake_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_cmake_builder.rb</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_configure_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_configure_builder.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_ext_conf_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_ext_conf_builder.rb</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_ext_rake_builder.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_ext_rake_builder.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_gem_runner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_gem_runner.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_gemcutter_utilities.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_gemcutter_utilities.rb</a></td><td class='right'>281</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_impossible_dependencies_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_impossible_dependencies_error.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_indexer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_indexer.rb</a></td><td class='right'>224</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_install_update_options.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_install_update_options.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_installer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_installer.rb</a></td><td class='right'>1937</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_local_remote_options.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_local_remote_options.rb</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_name_tuple.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_name_tuple.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_package.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_package.rb</a></td><td class='right'>680</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_package_old.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_package_old.rb</a></td><td class='right'>114</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_package_tar_header.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_package_tar_header.rb</a></td><td class='right'>159</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_package_tar_reader.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_package_tar_reader.rb</a></td><td class='right'>64</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_package_tar_reader_entry.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_package_tar_reader_entry.rb</a></td><td class='right'>193</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_package_tar_writer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_package_tar_writer.rb</a></td><td class='right'>212</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_package_task.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_package_task.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_path_support.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_path_support.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_platform.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_platform.rb</a></td><td class='right'>588</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_rdoc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_rdoc.rb</a></td><td class='right'>176</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_remote_fetcher.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_remote_fetcher.rb</a></td><td class='right'>780</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_request.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_request.rb</a></td><td class='right'>223</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_request_connection_pools.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_request_connection_pools.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_request_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_request_set.rb</a></td><td class='right'>297</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_request_set_gem_dependency_api.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_request_set_gem_dependency_api.rb</a></td><td class='right'>548</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_request_set_lockfile.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_request_set_lockfile.rb</a></td><td class='right'>188</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_request_set_lockfile_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_request_set_lockfile_parser.rb</a></td><td class='right'>140</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_request_set_lockfile_tokenizer.rb</a></td><td class='right'>273</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_requirement.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_requirement.rb</a></td><td class='right'>202</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver.rb</a></td><td class='right'>340</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_activation_request.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_activation_request.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_api_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_api_set.rb</a></td><td class='right'>158</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_api_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_api_specification.rb</a></td><td class='right'>97</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_best_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_best_set.rb</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_composed_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_composed_set.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_conflict.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_conflict.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_dependency_request.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_dependency_request.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_git_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_git_set.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_git_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_git_specification.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_index_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_index_set.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_index_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_index_specification.rb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_installed_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_installed_specification.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_installer_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_installer_set.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_local_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_local_specification.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_lock_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_lock_set.rb</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_lock_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_lock_specification.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_requirement_list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_requirement_list.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_specification.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_vendor_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_vendor_set.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_resolver_vendor_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_resolver_vendor_specification.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_security.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_security.rb</a></td><td class='right'>189</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_security_policy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_security_policy.rb</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_security_signer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_security_signer.rb</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_security_trust_dir.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_security_trust_dir.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/rubygems/test_gem_server.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_server.rb</a></td><td class='right'>607</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_silent_ui.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_silent_ui.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_source.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_source.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_source_fetch_problem.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_source_fetch_problem.rb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_source_git.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_source_git.rb</a></td><td class='right'>156</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_source_installed.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_source_installed.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_source_list.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_source_list.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_source_local.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_source_local.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_source_lock.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_source_lock.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_source_specific_file.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_source_specific_file.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_source_subpath_problem.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_source_subpath_problem.rb</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_source_vendor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_source_vendor.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_spec_fetcher.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_spec_fetcher.rb</a></td><td class='right'>142</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_specification.rb</a></td><td class='right'>2155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 99.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_stream_ui.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_stream_ui.rb</a></td><td class='right'>79</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_stub_specification.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_stub_specification.rb</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_text.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_text.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_uninstaller.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_uninstaller.rb</a></td><td class='right'>370</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_unsatisfiable_dependency_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_unsatisfiable_dependency_error.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_update_suggestion.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_update_suggestion.rb</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_gem_uri.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_uri.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_uri_formatter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_uri_formatter.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_util.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_util.rb</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_validator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_validator.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_version.rb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_gem_version_option.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_gem_version_option.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_kernel.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_kernel.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_project_sanity.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_project_sanity.rb</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_remote_fetch_error.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_remote_fetch_error.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/test_require.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_require.rb</a></td><td class='right'>537</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_rubygems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_rubygems.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_webauthn_listener.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_webauthn_listener.rb</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_webauthn_listener_response.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_webauthn_listener_response.rb</a></td><td class='right'>93</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/test_webauthn_poller.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/test_webauthn_poller.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/utilities.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/utilities.rb</a></td><td class='right'>435</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/wrong_key_cert.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/wrong_key_cert.pem</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/rubygems/wrong_key_cert_32.pem?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/rubygems/wrong_key_cert_32.pem</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/runner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/runner.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/scanf/data.txt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/scanf/data.txt</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/scanf/test_scanf.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/scanf/test_scanf.rb</a></td><td class='right'>305</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/scanf/test_scanfblocks.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/scanf/test_scanfblocks.rb</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/scanf/test_scanfio.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/scanf/test_scanfio.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/sdbm/test_sdbm.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/sdbm/test_sdbm.rb</a></td><td class='right'>544</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/shell/test_command_processor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/shell/test_command_processor.rb</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/socket/test_addrinfo.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/socket/test_addrinfo.rb</a></td><td class='right'>22</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/socket/test_basicsocket.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/socket/test_basicsocket.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/socket/test_nonblock.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/socket/test_nonblock.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/socket/test_socket.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/socket/test_socket.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/socket/test_sockopt.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/socket/test_sockopt.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/socket/test_tcp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/socket/test_tcp.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/socket/test_udp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/socket/test_udp.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/socket/test_unix.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/socket/test_unix.rb</a></td><td class='right'>167</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/stringio/test_ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/stringio/test_ractor.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/stringio/test_stringio.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/stringio/test_stringio.rb</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/strscan/test_ractor.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/strscan/test_ractor.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/strscan/test_stringscanner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/strscan/test_stringscanner.rb</a></td><td class='right'>369</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/syslog/test_syslog_logger.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/syslog/test_syslog_logger.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/test_cmath.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_cmath.rb</a></td><td class='right'>118</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_delegate.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_delegate.rb</a></td><td class='right'>141</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_extlibs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_extlibs.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_find.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_find.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_forwardable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_forwardable.rb</a></td><td class='right'>59</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_getoptlong.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_getoptlong.rb</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_ipaddr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_ipaddr.rb</a></td><td class='right'>98</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_mutex_m.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_mutex_m.rb</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_open3.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_open3.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_pp.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_pp.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/test_prime.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_prime.rb</a></td><td class='right'>279</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_pstore.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_pstore.rb</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_pty.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_pty.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_securerandom.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_securerandom.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_set.rb</a></td><td class='right'>206</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_shellwords.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_shellwords.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_sorted_set.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_sorted_set.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/test_sync.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_sync.rb</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_syslog.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_syslog.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_tempfile.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_tempfile.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_time.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_time.rb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_timeout.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_timeout.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_tmpdir.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_tmpdir.rb</a></td><td class='right'>102</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/test_tracer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_tracer.rb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/test_trick.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_trick.rb</a></td><td class='right'>214</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/test_unicode_normalize.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_unicode_normalize.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/test_win32api.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/test_win32api.rb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test4test_hideskip.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/testunit/test4test_hideskip.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test4test_redefinition.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/testunit/test4test_redefinition.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test4test_sorting.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/testunit/test4test_sorting.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test_assertion.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/testunit/test_assertion.rb</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test_hideskip.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/testunit/test_hideskip.rb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test_parallel.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/testunit/test_parallel.rb</a></td><td class='right'>203</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test_redefinition.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/testunit/test_redefinition.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/test_sorting.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/testunit/test_sorting.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/testunit/tests_for_parallel/runner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/testunit/tests_for_parallel/runner.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/uri/test_common.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/uri/test_common.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/uri/test_generic.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/uri/test_generic.rb</a></td><td class='right'>90</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/uri/test_http.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/uri/test_http.rb</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/uri/test_ldap.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/uri/test_ldap.rb</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/uri/test_parser.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/uri/test_parser.rb</a></td><td class='right'>48</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/uri/test_ws.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/uri/test_ws.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/uri/test_wss.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/uri/test_wss.rb</a></td><td class='right'>71</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/webrick/test_cgi.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/webrick/test_cgi.rb</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/webrick/test_filehandler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/webrick/test_filehandler.rb</a></td><td class='right'>351</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/webrick/test_httpauth.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/webrick/test_httpauth.rb</a></td><td class='right'>341</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/webrick/test_httpproxy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/webrick/test_httpproxy.rb</a></td><td class='right'>427</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/webrick/test_httprequest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/webrick/test_httprequest.rb</a></td><td class='right'>432</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/webrick/test_httpresponse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/webrick/test_httpresponse.rb</a></td><td class='right'>226</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/webrick/test_httpserver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/webrick/test_httpserver.rb</a></td><td class='right'>543</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/webrick/test_server.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/webrick/test_server.rb</a></td><td class='right'>163</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/webrick/test_ssl_server.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/webrick/test_ssl_server.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/webrick/test_utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/webrick/test_utils.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/test/webrick/utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/webrick/utils.rb</a></td><td class='right'>74</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/win32ole/test_err_in_callback.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/win32ole/test_err_in_callback.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/win32ole/test_win32ole.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/win32ole/test_win32ole.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/win32ole/test_win32ole_event.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/win32ole/test_win32ole_event.rb</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/win32ole/test_win32ole_method_event.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/win32ole/test_win32ole_method_event.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/win32ole/test_win32ole_param_event.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/win32ole/test_win32ole_param_event.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/win32ole/test_win32ole_record.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/win32ole/test_win32ole_record.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/win32ole/test_win32ole_type_event.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/win32ole/test_win32ole_type_event.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/win32ole/test_win32ole_variable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/win32ole/test_win32ole_variable.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/win32ole/test_win32ole_variant.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/win32ole/test_win32ole_variant.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/win32ole/test_win32ole_variant_outarg.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/win32ole/test_win32ole_variant_outarg.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/win32ole/test_word.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/win32ole/test_word.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/yaml/test_store.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/yaml/test_store.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/test/zlib/test_zlib.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>test/zlib/test_zlib.rb</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/thread.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>thread.c</a></td><td class='right'>3132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/thread_none.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>thread_none.c</a></td><td class='right'>284</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/thread_none.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>thread_none.h</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/thread_pthread.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>thread_pthread.c</a></td><td class='right'>1287</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/thread_pthread.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>thread_pthread.h</a></td><td class='right'>96</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/thread_sync.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>thread_sync.c</a></td><td class='right'>965</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/thread_sync.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>thread_sync.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/thread_win32.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>thread_win32.c</a></td><td class='right'>514</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/thread_win32.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>thread_win32.h</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/time.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>time.c</a></td><td class='right'>3408</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 98.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/timev.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>timev.h</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/timev.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>timev.rb</a></td><td class='right'>404</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/annocheck/Dockerfile?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/annocheck/Dockerfile</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/annocheck/Dockerfile-copy?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/annocheck/Dockerfile-copy</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/bisect.sh?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/bisect.sh</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/bundler/dev_gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/bundler/dev_gems.rb</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/bundler/dev_gems.rb.lock?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/bundler/dev_gems.rb.lock</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/bundler/rubocop_gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/bundler/rubocop_gems.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/bundler/rubocop_gems.rb.lock?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/bundler/rubocop_gems.rb.lock</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/bundler/standard_gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/bundler/standard_gems.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/bundler/standard_gems.rb.lock?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/bundler/standard_gems.rb.lock</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/bundler/test_gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/bundler/test_gems.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/bundler/test_gems.rb.lock?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/bundler/test_gems.rb.lock</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/tool/change_maker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/change_maker.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/checksum.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/checksum.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/ci_functions.sh?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ci_functions.sh</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/colorize.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/colorize.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/colors?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/colors</a> (renamed from test/colors)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/disable_ipv6.sh?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/disable_ipv6.sh</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/downloader.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/downloader.rb</a></td><td class='right'>175</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/enc-case-folding.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/enc-case-folding.rb</a></td><td class='right'>416</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/enc-emoji-citrus-gen.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/enc-emoji-citrus-gen.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/enc-unicode.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/enc-unicode.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/expand-config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/expand-config.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/extlibs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/extlibs.rb</a></td><td class='right'>209</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/fake.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/fake.rb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/fetch-bundled_gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/fetch-bundled_gems.rb</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/file2lastrev.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/file2lastrev.rb</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/format-release?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/format-release</a></td><td class='right'>262</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/tool/gem-unpack.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/gem-unpack.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/gen-mailmap.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/gen-mailmap.rb</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/generate-backport-changelog.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/generate-backport-changelog.rb</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/generic_erb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/generic_erb.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/gperf.sed?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/gperf.sed</a></td><td class='right'>1</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/id2token.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/id2token.rb</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/ifchange?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ifchange</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/intern_ids.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/intern_ids.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/leaked-globals?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/leaked-globals</a></td><td class='right'>65</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/-test-/integer.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/-test-/integer.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/bundled_gem.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/bundled_gem.rb</a></td><td class='right'>68</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/colorize.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/colorize.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/core_assertions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/core_assertions.rb</a></td><td class='right'>821</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/envutil.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/envutil.rb</a></td><td class='right'>380</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/find_executable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/find_executable.rb</a> (renamed from test/lib/find_executable.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/gc_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/gc_checker.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/iseq_loader_checker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/iseq_loader_checker.rb</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/jisx0208.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/jisx0208.rb</a> (renamed from tool/jisx0208.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/leakchecker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/leakchecker.rb</a></td><td class='right'>321</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/memory_status.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/memory_status.rb</a></td><td class='right'>151</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/output.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/output.rb</a></td><td class='right'>57</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/profile_test_all.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/profile_test_all.rb</a></td><td class='right'>91</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/test/unit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/test/unit.rb</a></td><td class='right'>1822</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/test/unit/assertions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/test/unit/assertions.rb</a></td><td class='right'>833</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/test/unit/parallel.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/test/unit/parallel.rb</a></td><td class='right'>212</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/test/unit/testcase.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/test/unit/testcase.rb</a></td><td class='right'>296</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/tracepointchecker.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/tracepointchecker.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/vcs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/vcs.rb</a></td><td class='right'>845</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/vpath.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/vpath.rb</a></td><td class='right'>92</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick.rb</a></td><td class='right'>232</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/.document?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/.document</a> (renamed from lib/webrick/.document)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/accesslog.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/accesslog.rb</a></td><td class='right'>157</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/cgi.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/cgi.rb</a> (renamed from lib/webrick/cgi.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/compat.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/compat.rb</a> (renamed from lib/webrick/compat.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/config.rb</a> (renamed from lib/webrick/config.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/cookie.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/cookie.rb</a> (renamed from lib/webrick/cookie.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/htmlutils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/htmlutils.rb</a> (renamed from lib/webrick/htmlutils.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpauth.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpauth.rb</a> (renamed from lib/webrick/httpauth.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/httpauth/authenticator.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpauth/authenticator.rb</a></td><td class='right'>117</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpauth/basicauth.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpauth/basicauth.rb</a> (renamed from lib/webrick/httpauth/basicauth.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/httpauth/digestauth.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpauth/digestauth.rb</a></td><td class='right'>395</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpauth/htdigest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpauth/htdigest.rb</a> (renamed from lib/webrick/httpauth/htdigest.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpauth/htgroup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpauth/htgroup.rb</a> (renamed from lib/webrick/httpauth/htgroup.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpauth/htpasswd.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpauth/htpasswd.rb</a> (renamed from lib/webrick/httpauth/htpasswd.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpauth/userdb.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpauth/userdb.rb</a> (renamed from lib/webrick/httpauth/userdb.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/httpproxy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpproxy.rb</a></td><td class='right'>354</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/httprequest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httprequest.rb</a></td><td class='right'>636</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/httpresponse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpresponse.rb</a></td><td class='right'>564</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/https.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/https.rb</a> (renamed from lib/webrick/https.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/httpserver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpserver.rb</a></td><td class='right'>293</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpservlet.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpservlet.rb</a> (renamed from lib/webrick/httpservlet.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpservlet/abstract.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpservlet/abstract.rb</a> (renamed from lib/webrick/httpservlet/abstract.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpservlet/cgi_runner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpservlet/cgi_runner.rb</a> (renamed from lib/webrick/httpservlet/cgi_runner.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/httpservlet/cgihandler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpservlet/cgihandler.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpservlet/erbhandler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpservlet/erbhandler.rb</a> (renamed from lib/webrick/httpservlet/erbhandler.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/httpservlet/filehandler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpservlet/filehandler.rb</a></td><td class='right'>552</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpservlet/prochandler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpservlet/prochandler.rb</a> (renamed from lib/webrick/httpservlet/prochandler.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpstatus.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpstatus.rb</a> (renamed from lib/webrick/httpstatus.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/httputils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httputils.rb</a></td><td class='right'>512</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/httpversion.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/httpversion.rb</a> (renamed from lib/webrick/httpversion.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/webrick/log.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/log.rb</a> (renamed from lib/webrick/log.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/server.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/server.rb</a></td><td class='right'>381</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/ssl.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/ssl.rb</a></td><td class='right'>215</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/utils.rb</a></td><td class='right'>265</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/lib/webrick/version.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/webrick/version.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/lib/zombie_hunter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/lib/zombie_hunter.rb</a> (renamed from test/lib/zombie_hunter.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/ln_sr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ln_sr.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/_colorize_result_prepare.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/_colorize_result_prepare.m4</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ac_msg_result.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ac_msg_result.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/colorize_result.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/colorize_result.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_append_option.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_append_option.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_append_options.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_append_options.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_check_builtin_func.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_check_builtin_func.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_check_builtin_setjmp.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_check_builtin_setjmp.m4</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_check_printf_prefix.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_check_printf_prefix.m4</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_check_setjmp.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_check_setjmp.m4</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_check_signedness.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_check_signedness.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_check_sizeof.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_check_sizeof.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_check_sysconf.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_check_sysconf.m4</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_cppoutfile.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_cppoutfile.m4</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_decl_attribute.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_decl_attribute.m4</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_default_arch.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_default_arch.m4</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_define_if.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_define_if.m4</a></td><td class='right'>12</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_defint.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_defint.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_dtrace_available.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_dtrace_available.m4</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_dtrace_postprocess.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_dtrace_postprocess.m4</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_func_attribute.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_func_attribute.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_mingw32.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_mingw32.m4</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_prepend_option.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_prepend_option.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_prog_gnu_ld.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_prog_gnu_ld.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/m4/ruby_prog_makedirs.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_prog_makedirs.m4</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/m4/ruby_replace_funcs.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_replace_funcs.m4</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_replace_type.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_replace_type.m4</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/m4/ruby_require_funcs.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_require_funcs.m4</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_rm_recursive.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_rm_recursive.m4</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_setjmp_type.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_setjmp_type.m4</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_stack_grow_direction.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_stack_grow_direction.m4</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/m4/ruby_thread.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_thread.m4</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_try_cflags.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_try_cflags.m4</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/m4/ruby_try_cxxflags.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_try_cxxflags.m4</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_try_ldflags.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_try_ldflags.m4</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_type_attribute.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_type_attribute.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_universal_arch.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_universal_arch.m4</a></td><td class='right'>39</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/m4/ruby_wasm_tools.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_wasm_tools.m4</a></td><td class='right'>24</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/m4/ruby_werror_flag.m4?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/m4/ruby_werror_flag.m4</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/make-snapshot?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/make-snapshot</a></td><td class='right'>396</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/make_hgraph.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/make_hgraph.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/merger.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/merger.rb</a></td><td class='right'>427</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/mjit/bindgen.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/mjit/bindgen.rb</a></td><td class='right'>435</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/mjit_tabs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/mjit_tabs.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/mk_builtin_loader.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/mk_builtin_loader.rb</a></td><td class='right'>411</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/mk_call_iseq_optimized.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/mk_call_iseq_optimized.rb</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/mkconfig.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/mkconfig.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/mkrunnable.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/mkrunnable.rb</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/outdate-bundled-gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/outdate-bundled-gems.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/prereq.status?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/prereq.status</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/rbinstall.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/rbinstall.rb</a></td><td class='right'>541</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/rbs_skip_tests?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/rbs_skip_tests</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/rbuninstall.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/rbuninstall.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/redmine-backporter.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/redmine-backporter.rb</a></td><td class='right'>221</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/release.sh?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/release.sh</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/releng/gen-mail.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/releng/gen-mail.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/releng/gen-release-note.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/releng/gen-release-note.rb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/releng/update-www-meta.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/releng/update-www-meta.rb</a></td><td class='right'>213</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/controllers/application_controller.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/controllers/application_controller.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/helpers/c_escape.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/helpers/c_escape.rb</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/helpers/dumper.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/helpers/dumper.rb</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/helpers/scanner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/helpers/scanner.rb</a></td><td class='right'>5</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/loaders/insns_def.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/loaders/insns_def.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/loaders/opt_insn_unif_def.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/loaders/opt_insn_unif_def.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/loaders/opt_operand_def.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/loaders/opt_operand_def.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/loaders/vm_opts_h.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/loaders/vm_opts_h.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/models/attribute.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/models/attribute.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/models/bare_instructions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/models/bare_instructions.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/models/c_expr.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/models/c_expr.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/models/instructions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/models/instructions.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/models/instructions_unifications.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/models/instructions_unifications.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/models/operands_unifications.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/models/operands_unifications.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/models/trace_instructions.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/models/trace_instructions.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/models/typemap.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/models/typemap.rb</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/scripts/insns2vm.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/scripts/insns2vm.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/_attributes.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_attributes.erb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/_c_expr.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_c_expr.erb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/ruby_vm/views/_comptime_insn_stack_increase.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_comptime_insn_stack_increase.erb</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/_copyright.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_copyright.erb</a></td><td class='right'>20</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/_insn_entry.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_insn_entry.erb</a></td><td class='right'>56</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/_insn_len_info.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_insn_len_info.erb</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/_insn_name_info.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_insn_name_info.erb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/_insn_operand_info.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_insn_operand_info.erb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/ruby_vm/views/_insn_sp_pc_dependency.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_insn_sp_pc_dependency.erb</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/ruby_vm/views/_insn_stack_increase.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_insn_stack_increase.erb</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/_insn_type_chars.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_insn_type_chars.erb</a></td><td class='right'>26</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/_leaf_helpers.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_leaf_helpers.erb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/ruby_vm/views/_mjit_compile_insn.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_mjit_compile_insn.erb</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/ruby_vm/views/_mjit_compile_insn_body.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_mjit_compile_insn_body.erb</a></td><td class='right'>105</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/ruby_vm/views/_mjit_compile_ivar.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_mjit_compile_ivar.erb</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/ruby_vm/views/_mjit_compile_send.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_mjit_compile_send.erb</a></td><td class='right'>94</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/_notice.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_notice.erb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/ruby_vm/views/_sp_inc_helpers.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_sp_inc_helpers.erb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/_trace_instruction.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/_trace_instruction.erb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/insns.inc.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/insns.inc.erb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/insns_info.inc.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/insns_info.inc.erb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/ruby_vm/views/lib/ruby_vm/mjit/instruction.rb.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/lib/ruby_vm/mjit/instruction.rb.erb</a></td><td class='right'>40</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/ruby_vm/views/mjit_compile.inc.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/mjit_compile.inc.erb</a></td><td class='right'>77</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/ruby_vm/views/mjit_sp_inc.inc.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/mjit_sp_inc.inc.erb</a></td><td class='right'>17</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/opt_sc.inc.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/opt_sc.inc.erb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/optinsn.inc.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/optinsn.inc.erb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/optunifs.inc.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/optunifs.inc.erb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/vm.inc.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/vm.inc.erb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/ruby_vm/views/vmtc.inc.erb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ruby_vm/views/vmtc.inc.erb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/runruby.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/runruby.rb</a></td><td class='right'>51</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/search-cgvars.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/search-cgvars.rb</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/strip-rdoc.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/strip-rdoc.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x<span class='modechange'>[-rw-r--r--]</span></td><td class='upd'><a href='/ruby.git/diff/tool/sync_default_gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/sync_default_gems.rb</a></td><td class='right'>987</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/test-annocheck.sh?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test-annocheck.sh</a></td><td class='right'>33</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test-bundled-gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test-bundled-gems.rb</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/test-coverage.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test-coverage.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/runner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/runner.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/test/test_jisx0208.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/test_jisx0208.rb</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/test/test_sync_default_gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/test_sync_default_gems.rb</a></td><td class='right'>76</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/metametameta.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/metametameta.rb</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/test4test_hideskip.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/test4test_hideskip.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/test4test_redefinition.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/test4test_redefinition.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/test4test_sorting.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/test4test_sorting.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/test_assertion.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/test_assertion.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/test_hideskip.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/test_hideskip.rb</a></td><td class='right'>21</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/test_minitest_unit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/test_minitest_unit.rb</a></td><td class='right'>1488</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/test_parallel.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/test_parallel.rb</a></td><td class='right'>219</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/test_redefinition.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/test_redefinition.rb</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/test_sorting.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/test_sorting.rb</a></td><td class='right'>75</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/testunit/tests_for_parallel/ptest_first.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/tests_for_parallel/ptest_first.rb</a> (renamed from test/testunit/tests_for_parallel/ptest_first.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/testunit/tests_for_parallel/ptest_forth.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/tests_for_parallel/ptest_forth.rb</a> (renamed from test/testunit/tests_for_parallel/ptest_forth.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/testunit/tests_for_parallel/ptest_second.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/tests_for_parallel/ptest_second.rb</a> (renamed from test/testunit/tests_for_parallel/ptest_second.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/testunit/tests_for_parallel/ptest_third.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/tests_for_parallel/ptest_third.rb</a> (renamed from test/testunit/tests_for_parallel/ptest_third.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/tests_for_parallel/runner.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/tests_for_parallel/runner.rb</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/testunit/tests_for_parallel/test4test_hungup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/testunit/tests_for_parallel/test4test_hungup.rb</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/.htaccess?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/.htaccess</a> (renamed from test/webrick/.htaccess)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/test_cgi.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_cgi.rb</a></td><td class='right'>170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/test_config.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_config.rb</a> (renamed from test/webrick/test_config.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/test_cookie.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_cookie.rb</a> (renamed from test/webrick/test_cookie.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/test_do_not_reverse_lookup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_do_not_reverse_lookup.rb</a> (renamed from test/webrick/test_do_not_reverse_lookup.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/test_filehandler.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_filehandler.rb</a></td><td class='right'>403</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/test_htgroup.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_htgroup.rb</a> (renamed from test/webrick/test_htgroup.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/test_htmlutils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_htmlutils.rb</a> (renamed from test/webrick/test_htmlutils.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/test_httpauth.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_httpauth.rb</a></td><td class='right'>366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/test_httpproxy.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_httpproxy.rb</a></td><td class='right'>467</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/test_httprequest.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_httprequest.rb</a></td><td class='right'>488</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/test_httpresponse.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_httpresponse.rb</a></td><td class='right'>282</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/test_https.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_https.rb</a> (renamed from test/webrick/test_https.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/test_httpserver.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_httpserver.rb</a></td><td class='right'>543</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/test_httpstatus.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_httpstatus.rb</a></td><td class='right'>35</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/test_httputils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_httputils.rb</a> (renamed from test/webrick/test_httputils.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/test_httpversion.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_httpversion.rb</a> (renamed from test/webrick/test_httpversion.rb)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/test_server.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_server.rb</a></td><td class='right'>191</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/test_ssl_server.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_ssl_server.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/test_utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/test_utils.rb</a></td><td class='right'>110</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/test/webrick/utils.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/utils.rb</a></td><td class='right'>84</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/webrick.cgi?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/webrick.cgi</a> (renamed from test/webrick/webrick.cgi)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/webrick.rhtml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/webrick.rhtml</a> (renamed from test/webrick/webrick.rhtml)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/tool/test/webrick/webrick_long_filename.cgi?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/test/webrick/webrick_long_filename.cgi</a> (renamed from test/webrick/webrick_long_filename.cgi)</td><td class='right'>0</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/transcode-tblgen.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/transcode-tblgen.rb</a></td><td class='right'>30</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/tool/transform_mjit_header.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/transform_mjit_header.rb</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/travis_retry.sh?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/travis_retry.sh</a></td><td class='right'>13</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/travis_wait.sh?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/travis_wait.sh</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/tool/update-NEWS-refs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/update-NEWS-refs.rb</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/update-bundled_gems.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/update-bundled_gems.rb</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/update-deps?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/update-deps</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/vcs.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/vcs.rb</a></td><td class='right'>534</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/tool/vpath.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/vpath.rb</a></td><td class='right'>87</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/wasm-clangw?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/wasm-clangw</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/tool/ytab.sed?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>tool/ytab.sed</a></td><td class='right'>3</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/trace_point.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>trace_point.rb</a></td><td class='right'>420</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/transcode.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>transcode.c</a></td><td class='right'>858</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/transcode_data.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>transcode_data.h</a></td><td class='right'>37</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/transient_heap.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>transient_heap.c</a></td><td class='right'>239</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/transient_heap.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>transient_heap.h</a></td><td class='right'>11</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/util.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>util.c</a></td><td class='right'>3638</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 1.5%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/variable.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>variable.c</a></td><td class='right'>3735</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/variable.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>variable.h</a></td><td class='right'>29</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/version.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>version.c</a></td><td class='right'>82</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/version.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>version.h</a></td><td class='right'>72</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm.c</a></td><td class='right'>3067</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.8%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 98.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_args.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_args.c</a></td><td class='right'>927</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_backtrace.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_backtrace.c</a></td><td class='right'>1205</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_callinfo.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_callinfo.h</a></td><td class='right'>550</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_core.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_core.h</a></td><td class='right'>1123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_debug.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_debug.h</a></td><td class='right'>99</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_dump.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_dump.c</a></td><td class='right'>1294</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_eval.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_eval.c</a></td><td class='right'>1769</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_exec.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_exec.c</a></td><td class='right'>80</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_exec.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_exec.h</a></td><td class='right'>67</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_insnhelper.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_insnhelper.c</a></td><td class='right'>6145</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.8%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 97.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_insnhelper.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_insnhelper.h</a></td><td class='right'>182</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_method.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_method.c</a></td><td class='right'>2391</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_opts.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_opts.h</a></td><td class='right'>15</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_sync.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_sync.c</a></td><td class='right'>301</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/vm_sync.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_sync.h</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vm_trace.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vm_trace.c</a></td><td class='right'>1120</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/vsnprintf.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>vsnprintf.c</a></td><td class='right'>28</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/warning.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>warning.rb</a></td><td class='right'>53</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/GNUmakefile.in?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/GNUmakefile.in</a></td><td class='right'>32</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/README.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/README.md</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/asyncify.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/asyncify.h</a></td><td class='right'>23</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/fiber.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/fiber.c</a></td><td class='right'>83</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/fiber.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/fiber.h</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/machine.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/machine.c</a></td><td class='right'>62</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/machine.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/machine.h</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/machine_core.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/machine_core.S</a></td><td class='right'>25</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/missing.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/missing.c</a></td><td class='right'>199</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/runtime.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/runtime.c</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/setjmp.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/setjmp.c</a></td><td class='right'>204</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/setjmp.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/setjmp.h</a></td><td class='right'>95</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/setjmp_core.S?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/setjmp_core.S</a></td><td class='right'>27</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/tests/fiber_test.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/tests/fiber_test.c</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/tests/machine_test.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/tests/machine_test.c</a></td><td class='right'>115</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/wasm/tests/setjmp_test.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/tests/setjmp_test.c</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/wasm/wasm-opt?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wasm/wasm-opt</a></td><td class='right'>36</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/wercker.yml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>wercker.yml</a></td><td class='right'>282</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/Makefile.sub?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/Makefile.sub</a></td><td class='right'>383</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/README.win32?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/README.win32</a></td><td class='right'>101</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/win32/configure.bat?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/configure.bat</a></td><td class='right'>54</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/dir.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/dir.h</a></td><td class='right'>9</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/file.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/file.c</a></td><td class='right'>636</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.1%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/file.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/file.h</a></td><td class='right'>38</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/win32/ifchange.bat?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/ifchange.bat</a></td><td class='right'>31</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/win32/mkexports.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/mkexports.rb</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/win32/resource.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/resource.rb</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='upd'><a href='/ruby.git/diff/win32/rm.bat?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/rm.bat</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/win32/ruby.manifest?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/ruby.manifest</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/setup.mak?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/setup.mak</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/win32.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/win32.c</a></td><td class='right'>6266</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 1.2%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/win32/winmain.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>win32/winmain.c</a></td><td class='right'>4</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit.c?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit.c</a></td><td class='right'>1109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit.h?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit.h</a></td><td class='right'>70</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit.rb?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit.rb</a></td><td class='right'>356</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/.gitignore?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/.gitignore</a></td><td class='right'>2</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/Cargo.lock?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/Cargo.lock</a></td><td class='right'>49</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/Cargo.toml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/Cargo.toml</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/bindgen/Cargo.lock?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/bindgen/Cargo.lock</a></td><td class='right'>311</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/bindgen/Cargo.toml?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/bindgen/Cargo.toml</a></td><td class='right'>10</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/bindgen/src/main.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/bindgen/src/main.rs</a></td><td class='right'>430</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/not_gmake.mk?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/not_gmake.mk</a></td><td class='right'>14</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/README.md?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/README.md</a></td><td class='right'>16</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/arg/bitmask_imm.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/arg/bitmask_imm.rs</a></td><td class='right'>255</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/arg/condition.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/arg/condition.rs</a></td><td class='right'>52</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/arg/inst_offset.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/arg/inst_offset.rs</a></td><td class='right'>47</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/arg/mod.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/arg/mod.rs</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/arg/sf.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/arg/sf.rs</a></td><td class='right'>19</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/arg/shifted_imm.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/arg/shifted_imm.rs</a></td><td class='right'>81</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/arg/sys_reg.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/arg/sys_reg.rs</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/arg/truncate.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/arg/truncate.rs</a></td><td class='right'>66</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/atomic.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/atomic.rs</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/branch.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/branch.rs</a></td><td class='right'>100</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/branch_cond.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/branch_cond.rs</a></td><td class='right'>78</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/breakpoint.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/breakpoint.rs</a></td><td class='right'>55</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/call.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/call.rs</a></td><td class='right'>104</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/conditional.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/conditional.rs</a></td><td class='right'>73</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/data_imm.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/data_imm.rs</a></td><td class='right'>143</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/data_reg.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/data_reg.rs</a></td><td class='right'>192</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/halfword_imm.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/halfword_imm.rs</a></td><td class='right'>179</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/load_literal.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/load_literal.rs</a></td><td class='right'>89</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/load_register.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/load_register.rs</a></td><td class='right'>108</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/load_store.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/load_store.rs</a></td><td class='right'>249</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/load_store_exclusive.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/load_store_exclusive.rs</a></td><td class='right'>109</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/logical_imm.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/logical_imm.rs</a></td><td class='right'>154</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/logical_reg.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/logical_reg.rs</a></td><td class='right'>207</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/mod.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/mod.rs</a></td><td class='right'>50</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/mov.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/mov.rs</a></td><td class='right'>155</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/nop.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/nop.rs</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/pc_rel.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/pc_rel.rs</a></td><td class='right'>107</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/reg_pair.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/reg_pair.rs</a></td><td class='right'>212</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/sbfm.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/sbfm.rs</a></td><td class='right'>103</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/shift_imm.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/shift_imm.rs</a></td><td class='right'>147</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/sys_reg.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/sys_reg.rs</a></td><td class='right'>86</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/inst/test_bit.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/inst/test_bit.rs</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/mod.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/mod.rs</a></td><td class='right'>1580</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/arm64/opnd.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/arm64/opnd.rs</a></td><td class='right'>195</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/mod.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/mod.rs</a></td><td class='right'>792</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/x86_64/mod.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/x86_64/mod.rs</a></td><td class='right'>1415</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/asm/x86_64/tests.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/asm/x86_64/tests.rs</a></td><td class='right'>449</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/backend/arm64/mod.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/backend/arm64/mod.rs</a></td><td class='right'>1491</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/backend/ir.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/backend/ir.rs</a></td><td class='right'>1576</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/backend/mod.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/backend/mod.rs</a></td><td class='right'>8</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/backend/tests.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/backend/tests.rs</a></td><td class='right'>331</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/backend/x86_64/mod.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/backend/x86_64/mod.rs</a></td><td class='right'>895</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/codegen.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/codegen.rs</a></td><td class='right'>7721</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/core.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/core.rs</a></td><td class='right'>2400</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/cruby.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/cruby.rs</a></td><td class='right'>715</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/cruby_bindings.inc.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/cruby_bindings.inc.rs</a></td><td class='right'>1310</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/disasm.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/disasm.rs</a></td><td class='right'>269</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/invariants.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/invariants.rs</a></td><td class='right'>567</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/lib.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/lib.rs</a></td><td class='right'>18</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/options.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/options.rs</a></td><td class='right'>174</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/stats.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/stats.rs</a></td><td class='right'>640</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/utils.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/utils.rs</a></td><td class='right'>274</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/virtualmem.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/virtualmem.rs</a></td><td class='right'>443</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/src/yjit.rs?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/src/yjit.rs</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/yjit/yjit.mk?h=v3_2_9&amp;id2=6f91160fa9413e501239ab883dacc5064d0a2661'>yjit/yjit.mk</a></td><td class='right'>69</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
</table><div class='diffstat-summary'>7799 files changed, 1180120 insertions, 434408 deletions</div><table summary='diff' class='diff'><tr><td><div class='head'>diff --git a/.appveyor.yml b/.appveyor.yml<br/>new file mode 100644<br/>index 0000000000..05ff204541<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.appveyor.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.appveyor.yml</a></div><div class='hunk'>@@ -0,0 +1,134 @@</div><div class='add'>+---</div><div class='add'>+version: '{build}'</div><div class='add'>+init:</div><div class='add'>+  - git config --global user.name git</div><div class='add'>+  - git config --global user.email svn-admin@ruby-lang.org</div><div class='add'>+  - git config --global core.autocrlf false</div><div class='add'>+  - git config --global core.eol lf</div><div class='add'>+  - git config --global advice.detachedHead 0</div><div class='add'>+shallow_clone: true</div><div class='add'>+clone_depth: 10</div><div class='add'>+platform:</div><div class='add'>+  - x64</div><div class='add'>+skip_commits:</div><div class='add'>+  message: /\[DOC\]/</div><div class='add'>+  files:</div><div class='add'>+    - doc/*</div><div class='add'>+    - '**/*.md'</div><div class='add'>+    - '**/*.rdoc'</div><div class='add'>+    - '**/.document'</div><div class='add'>+    - '**/*.[1-8]'</div><div class='add'>+    - '**/*.ronn'</div><div class='add'>+environment:</div><div class='add'>+  ruby_version: "24-%Platform%"</div><div class='add'>+  matrix:</div><div class='add'>+    # Test only the oldest supported version because AppVeyor is unstable, its concurrency</div><div class='add'>+    # is limited, and compatibility issues that happen only in newer versions are rare.</div><div class='add'>+    # You may test some other stuff on GitHub Actions instead.</div><div class='add'>+    - build: vs</div><div class='add'>+      vs: 120 # Visual Studio 2013</div><div class='add'>+      ssl: OpenSSL-v111</div><div class='add'>+      # The worker image name. This is NOT the Visual Studio version we're using here.</div><div class='add'>+      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015</div><div class='add'>+      GEMS_FOR_TEST: ""</div><div class='add'>+  RELINE_TEST_ENCODING: "UTF-8"</div><div class='add'>+cache:</div><div class='add'>+  - c:\Tools\vcpkg\installed\</div><div class='add'>+for:</div><div class='add'>+-</div><div class='add'>+  matrix:</div><div class='add'>+    only:</div><div class='add'>+      - build: vs</div><div class='add'>+  install:</div><div class='add'>+    - ver</div><div class='add'>+    - chcp</div><div class='add'>+    - SET BITS=%Platform:x86=32%</div><div class='add'>+    - SET BITS=%BITS:x=%</div><div class='add'>+    - SET OPENSSL_DIR=C:\%ssl%-Win%BITS%</div><div class='add'>+    - cd C:\Tools\vcpkg</div><div class='add'>+    - git pull -q</div><div class='add'>+    - .\bootstrap-vcpkg.bat</div><div class='add'>+    - ps: Start-FileDownload 'https://github.com/microsoft/vcpkg-tool/releases/download/2023-08-09/vcpkg.exe' -FileName 'C:\Tools\vcpkg\vcpkg.exe'</div><div class='add'>+    - cd %APPVEYOR_BUILD_FOLDER%</div><div class='add'>+    - vcpkg --triplet %Platform%-windows install --x-use-aria2 libffi libyaml readline zlib</div><div class='add'>+    - CALL SET vcvars=%%^VS%VS%COMNTOOLS^%%..\..\VC\vcvarsall.bat</div><div class='add'>+    - SET vcvars</div><div class='add'>+    - '"%vcvars%" %Platform:x64=amd64%'</div><div class='add'>+    - SET ruby_path=C:\Ruby%ruby_version:-x86=%</div><div class='add'>+    - SET PATH=\usr\local\bin;%ruby_path%\bin;%PATH%;C:\msys64\mingw64\bin;C:\msys64\usr\bin</div><div class='add'>+    - ruby --version</div><div class='add'>+    - 'cl'</div><div class='add'>+    - echo&gt; Makefile srcdir=.</div><div class='add'>+    - echo&gt;&gt; Makefile MSC_VER=0</div><div class='add'>+    - echo&gt;&gt; Makefile RT=none</div><div class='add'>+    - echo&gt;&gt; Makefile RT_VER=0</div><div class='add'>+    - echo&gt;&gt; Makefile BUILTIN_ENCOBJS=nul</div><div class='add'>+    - type win32\Makefile.sub &gt;&gt; Makefile</div><div class='add'>+    - nmake %mflags% up VCSUP="echo Update OK"</div><div class='add'>+    - nmake %mflags% extract-extlibs</div><div class='add'>+    - del Makefile</div><div class='add'>+    - mkdir \usr\local\bin</div><div class='add'>+    - mkdir \usr\local\include</div><div class='add'>+    - mkdir \usr\local\lib</div><div class='add'>+    - for %%I in (%OPENSSL_DIR%\*.dll) do mklink /h \usr\local\bin\%%~nxI %%I</div><div class='add'>+    - for %%I in (c:\Tools\vcpkg\installed\%Platform%-windows\bin\*.dll) do (</div><div class='add'>+        if not %%~nI == readline mklink \usr\local\bin\%%~nxI %%I</div><div class='add'>+      )</div><div class='add'>+    - attrib +r /s /d</div><div class='add'>+    - mkdir %Platform%-mswin_%vs%</div><div class='add'>+  build_script:</div><div class='add'>+    - set HAVE_GIT=no</div><div class='add'>+    - cd %APPVEYOR_BUILD_FOLDER%</div><div class='add'>+    - cd %Platform%-mswin_%vs%</div><div class='add'>+    - &gt;-</div><div class='add'>+      ..\win32\configure.bat</div><div class='add'>+      --with-opt-dir="/usr/local;c:/Tools/vcpkg/installed/%Platform%-windows"</div><div class='add'>+      --with-openssl-dir=%OPENSSL_DIR:\=/%</div><div class='add'>+    - nmake -l</div><div class='add'>+    - nmake install-nodoc</div><div class='add'>+    - \usr\bin\ruby -v -e "p :locale =&gt; Encoding.find('locale'), :filesystem =&gt; Encoding.find('filesystem')"</div><div class='add'>+    - if not "%GEMS_FOR_TEST%" == "" \usr\bin\gem install --no-document %GEMS_FOR_TEST%</div><div class='add'>+    - \usr\bin\ruby -ropenssl -e "puts 'Build    ' + OpenSSL::OPENSSL_VERSION, 'Runtime  ' + OpenSSL::OPENSSL_LIBRARY_VERSION"</div><div class='add'>+  test_script:</div><div class='add'>+    - set /a JOBS=%NUMBER_OF_PROCESSORS%</div><div class='add'>+    - nmake -l "TESTOPTS=-v -q" btest</div><div class='add'>+    - nmake -l "TESTOPTS=-v -q" test-basic</div><div class='add'>+    - &gt;-</div><div class='add'>+      nmake -l "TESTOPTS=--timeout-scale=3.0</div><div class='add'>+      --excludes=../test/excludes/_appveyor -j%JOBS%</div><div class='add'>+      --exclude win32ole</div><div class='add'>+      --exclude test_bignum</div><div class='add'>+      --exclude test_syntax</div><div class='add'>+      --exclude test_open-uri</div><div class='add'>+      --exclude test_bundled_ca</div><div class='add'>+      " test-all</div><div class='add'>+    # separately execute tests without -j which may crash worker with -j.</div><div class='add'>+    - &gt;-</div><div class='add'>+      nmake -l</div><div class='add'>+      "TESTOPTS=--timeout-scale=3.0 --excludes=../test/excludes/_appveyor"</div><div class='add'>+      TESTS="</div><div class='add'>+      ../test/win32ole</div><div class='add'>+      ../test/ruby/test_bignum.rb</div><div class='add'>+      ../test/ruby/test_syntax.rb</div><div class='add'>+      ../test/open-uri/test_open-uri.rb</div><div class='add'>+      ../test/rubygems/test_bundled_ca.rb</div><div class='add'>+      " test-all</div><div class='add'>+    - nmake -l test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows</div><div class='add'>+notifications:</div><div class='add'>+  - provider: Webhook</div><div class='add'>+    method: POST</div><div class='add'>+    url:</div><div class='add'>+      secure: CcFlJNDJ/a6to7u3Z4Fnz6dScEPNx7hTha2GkSRlV+1U6dqmxY/7uBcLXYb9gR3jfQk6w+2o/HrjNAyXMNGU/JOka3s2WRI4VKitzM+lQ08owvJIh0R7LxrGH0J2e81U # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+    body: &gt;-</div><div class='add'>+      {{^isPullRequest}}</div><div class='add'>+        {</div><div class='add'>+          "ci": "AppVeyor CI",</div><div class='add'>+          "env": "Visual Studio 2013",</div><div class='add'>+          "url": "{{buildUrl}}",</div><div class='add'>+          "commit": "{{commitId}}",</div><div class='add'>+          "branch": "{{branch}}"</div><div class='add'>+        }</div><div class='add'>+      {{/isPullRequest}}</div><div class='add'>+    on_build_success: false</div><div class='add'>+    on_build_failure: true</div><div class='add'>+    on_build_status_changed: false</div><div class='head'>diff --git a/.dir-locals.el b/.dir-locals.el<br/>new file mode 100644<br/>index 0000000000..8f4b96445c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.dir-locals.el?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.dir-locals.el</a></div><div class='hunk'>@@ -0,0 +1,39 @@</div><div class='add'>+;; Copyright (c) 2018 Urabe, Shyouhei.  All rights reserved.</div><div class='add'>+;;</div><div class='add'>+;; This file is a part of  the programming language Ruby.  Permission is hereby</div><div class='add'>+;; granted, to either  redistribute and/or modify this file,  provided that the</div><div class='add'>+;; conditions mentioned  in the  file COPYING  are met.   Consult the  file for</div><div class='add'>+;; details.</div><div class='add'>+</div><div class='add'>+((nil .</div><div class='add'>+     ((indent-tabs-mode . nil)</div><div class='add'>+      (require-final-newline . t)</div><div class='add'>+      (tab-width . 8)</div><div class='add'>+      (show-trailing-whitespace . t)</div><div class='add'>+      (whitespace-line-column . 80))) ;; See also [Misc #12277]</div><div class='add'>+</div><div class='add'>+ ;; (bat-mode . ((buffer-file-coding-system . utf-8-dos)))</div><div class='add'>+</div><div class='add'>+ (ruby-mode . ((ruby-indent-level . 2)))</div><div class='add'>+</div><div class='add'>+ (rdoc-mode . ((fill-column . 74)))</div><div class='add'>+</div><div class='add'>+ (yaml-mode . ((yaml-indent-offset . 2)))</div><div class='add'>+</div><div class='add'>+ (makefile-mode . ((indent-tabs-mode . t)))</div><div class='add'>+</div><div class='add'>+ (c-mode . ((c-file-style . "ruby")))</div><div class='add'>+</div><div class='add'>+ (c++-mode . ((c-file-style . "ruby")))</div><div class='add'>+</div><div class='add'>+ (change-log-mode .</div><div class='add'>+     ((buffer-file-coding-system . us-ascii)</div><div class='add'>+      (indent-tabs-mode . t)</div><div class='add'>+      (change-log-indent-text . 2)</div><div class='add'>+      (add-log-time-format . (lambda (&amp;optional x y)</div><div class='add'>+        (let* ((time (or x (current-time)))</div><div class='add'>+	       (system-time-locale "C")</div><div class='add'>+	       (diff (+ (cadr time) 32400))</div><div class='add'>+	       (lo (% diff 65536))</div><div class='add'>+	       (hi (+ (car time) (/ diff 65536))))</div><div class='add'>+        (format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t)))))))</div><div class='head'>diff --git a/.document b/.document<br/>index 2116ca6d26..3a6b0c238c 100644<br/>--- a/<a href='/ruby.git/tree/.document?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>.document</a><br/>+++ b/<a href='/ruby.git/tree/.document?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.document</a></div><div class='hunk'>@@ -9,9 +9,28 @@</div><div class='ctx'> </div><div class='ctx'> # prelude</div><div class='ctx'> prelude.rb</div><div class='del'>-</div><div class='ctx'> rbconfig.rb</div><div class='ctx'> </div><div class='add'>+array.rb</div><div class='add'>+ast.rb</div><div class='add'>+dir.rb</div><div class='add'>+gc.rb</div><div class='add'>+io.rb</div><div class='add'>+kernel.rb</div><div class='add'>+marshal.rb</div><div class='add'>+mjit.rb</div><div class='add'>+numeric.rb</div><div class='add'>+nilclass.rb</div><div class='add'>+pack.rb</div><div class='add'>+ractor.rb</div><div class='add'>+string.rb</div><div class='add'>+symbol.rb</div><div class='add'>+timev.rb</div><div class='add'>+thread_sync.rb</div><div class='add'>+trace_point.rb</div><div class='add'>+warning.rb</div><div class='add'>+yjit.rb</div><div class='add'>+</div><div class='ctx'> # the lib/ directory (which has its own .document file)</div><div class='ctx'> lib</div><div class='ctx'> </div><div class='hunk'>@@ -19,14 +38,13 @@ lib</div><div class='ctx'> ext</div><div class='ctx'> </div><div class='ctx'> # rdoc files</div><div class='del'>-NEWS</div><div class='add'>+NEWS.md</div><div class='ctx'> </div><div class='ctx'> README.md</div><div class='ctx'> README.ja.md</div><div class='ctx'> </div><div class='ctx'> COPYING</div><div class='ctx'> COPYING.ja</div><div class='del'>-CONTRIBUTING.md</div><div class='ctx'> </div><div class='ctx'> LEGAL</div><div class='ctx'> </div><div class='head'>diff --git a/.editorconfig b/.editorconfig<br/>index cb2729fff9..4633a7acae 100644<br/>--- a/<a href='/ruby.git/tree/.editorconfig?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>.editorconfig</a><br/>+++ b/<a href='/ruby.git/tree/.editorconfig?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.editorconfig</a></div><div class='hunk'>@@ -23,5 +23,8 @@ indent_size = 2</div><div class='ctx'> [{*[Mm]akefile*,*.mak,*.mk,depend}]</div><div class='ctx'> indent_style = tab</div><div class='ctx'> </div><div class='add'>+[enc/*]</div><div class='add'>+indent_size = 2</div><div class='add'>+</div><div class='ctx'> [reg*.[ch]]</div><div class='ctx'> indent_size = 2</div><div class='head'>diff --git a/.gdbinit b/.gdbinit<br/>index 1806196a42..34d044caf6 100644<br/>--- a/<a href='/ruby.git/tree/.gdbinit?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>.gdbinit</a><br/>+++ b/<a href='/ruby.git/tree/.gdbinit?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.gdbinit</a></div><div class='hunk'>@@ -136,7 +136,7 @@ define rp</div><div class='ctx'>       printf "%sT_ARRAY%s: len=%ld ", $color_type, $color_end, $len</div><div class='ctx'>       if ($flags &amp; RUBY_FL_USER2)</div><div class='ctx'> 	printf "(shared) shared="</div><div class='del'>-	output/x ((struct RArray*)($arg0))-&gt;as.heap.aux.shared</div><div class='add'>+	output/x ((struct RArray*)($arg0))-&gt;as.heap.aux.shared_root</div><div class='ctx'> 	printf " "</div><div class='ctx'>       else</div><div class='ctx'> 	printf "(ownership) capa=%ld ", ((struct RArray*)($arg0))-&gt;as.heap.aux.capa</div><div class='hunk'>@@ -156,12 +156,12 @@ define rp</div><div class='ctx'>   else</div><div class='ctx'>   if ($flags &amp; RUBY_T_MASK) == RUBY_T_HASH</div><div class='ctx'>     printf "%sT_HASH%s: ", $color_type, $color_end,</div><div class='del'>-    if (((struct RHash *)($arg0))-&gt;basic-&gt;flags &amp; RHASH_ST_TABLE_FLAG)</div><div class='add'>+    if (((struct RHash *)($arg0))-&gt;basic.flags &amp; RHASH_ST_TABLE_FLAG)</div><div class='ctx'>       printf "st len=%ld ", ((struct RHash *)($arg0))-&gt;as.st-&gt;num_entries</div><div class='ctx'>     else</div><div class='ctx'>       printf "li len=%ld bound=%ld ", \</div><div class='del'>-        ((((struct RHash *)($arg0))-&gt;basic-&gt;flags &amp; RHASH_ARRAY_LEN_MASK) &gt;&gt; RHASH_ARRAY_LEN_SHIFT), \</div><div class='del'>-        ((((struct RHash *)($arg0))-&gt;basic-&gt;flags &amp; RHASH_ARRAY_BOUND_MASK) &gt;&gt; RHASH_ARRAY_BOUND_SHIFT)</div><div class='add'>+        ((((struct RHash *)($arg0))-&gt;basic.flags &amp; RHASH_AR_TABLE_SIZE_MASK) &gt;&gt; RHASH_AR_TABLE_SIZE_SHIFT), \</div><div class='add'>+        ((((struct RHash *)($arg0))-&gt;basic.flags &amp; RHASH_AR_TABLE_BOUND_MASK) &gt;&gt; RHASH_AR_TABLE_BOUND_SHIFT)</div><div class='ctx'>     end</div><div class='ctx'>     print (struct RHash *)($arg0)</div><div class='ctx'>   else</div><div class='hunk'>@@ -265,6 +265,10 @@ define rp</div><div class='ctx'>     printf "%sT_ZOMBIE%s: ", $color_type, $color_end</div><div class='ctx'>     print (struct RData *)($arg0)</div><div class='ctx'>   else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_MOVED</div><div class='add'>+    printf "%sT_MOVED%s: ", $color_type, $color_end</div><div class='add'>+    print *(struct RMoved *)$arg0</div><div class='add'>+  else</div><div class='ctx'>     printf "%sunknown%s: ", $color_type, $color_end</div><div class='ctx'>     print (struct RBasic *)($arg0)</div><div class='ctx'>   end</div><div class='hunk'>@@ -300,6 +304,7 @@ define rp</div><div class='ctx'>   end</div><div class='ctx'>   end</div><div class='ctx'>   end</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> document rp</div><div class='ctx'>   Print a Ruby's VALUE.</div><div class='hunk'>@@ -539,13 +544,13 @@ end</div><div class='ctx'> </div><div class='ctx'> define rp_class</div><div class='ctx'>   printf "(struct RClass *) %p", (void*)$arg0</div><div class='del'>-  if ((struct RClass *)($arg0))-&gt;ptr.origin_ != $arg0</div><div class='del'>-    printf " -&gt; %p", ((struct RClass *)($arg0))-&gt;ptr.origin_</div><div class='add'>+  if RCLASS_ORIGIN((struct RClass *)($arg0)) != $arg0</div><div class='add'>+    printf " -&gt; %p", RCLASS_ORIGIN((struct RClass *)($arg0))</div><div class='ctx'>   end</div><div class='ctx'>   printf "\n"</div><div class='ctx'>   rb_classname $arg0</div><div class='ctx'>   print/x *(struct RClass *)($arg0)</div><div class='del'>-  print *((struct RClass *)($arg0))-&gt;ptr</div><div class='add'>+  print *RCLASS_EXT((struct RClass *)($arg0))</div><div class='ctx'> end</div><div class='ctx'> document rp_class</div><div class='ctx'>   Print the content of a Class/Module.</div><div class='hunk'>@@ -974,8 +979,8 @@ end</div><div class='ctx'> </div><div class='ctx'> define rb_ps_vm</div><div class='ctx'>   print $ps_vm = (rb_vm_t*)$arg0</div><div class='del'>-  set $ps_thread_ln = $ps_vm-&gt;living_threads.n.next</div><div class='del'>-  set $ps_thread_ln_last = $ps_vm-&gt;living_threads.n.prev</div><div class='add'>+  set $ps_thread_ln      = $ps_vm-&gt;ractor.main_ractor.threads.set.n.next</div><div class='add'>+  set $ps_thread_ln_last = $ps_vm-&gt;ractor.main_ractor.threads.set.n.prev</div><div class='ctx'>   while 1</div><div class='ctx'>     set $ps_thread_th = (rb_thread_t *)$ps_thread_ln</div><div class='ctx'>     set $ps_thread = (VALUE)($ps_thread_th-&gt;self)</div><div class='hunk'>@@ -1073,9 +1078,9 @@ define print_id</div><div class='ctx'>   else</div><div class='ctx'>     set $serial = (rb_id_serial_t)$id</div><div class='ctx'>   end</div><div class='del'>-  if $serial &amp;&amp; $serial &lt;= global_symbols.last_id</div><div class='add'>+  if $serial &amp;&amp; $serial &lt;= ruby_global_symbols.last_id</div><div class='ctx'>     set $idx = $serial / ID_ENTRY_UNIT</div><div class='del'>-    set $ids = (struct RArray *)global_symbols.ids</div><div class='add'>+    set $ids = (struct RArray *)ruby_global_symbols.ids</div><div class='ctx'>     set $flags = $ids-&gt;basic.flags</div><div class='ctx'>     if ($flags &amp; RUBY_FL_USER1)</div><div class='ctx'>       set $idsptr = $ids-&gt;as.ary</div><div class='hunk'>@@ -1097,11 +1102,11 @@ define print_id</div><div class='ctx'>           set $arylen = $ary-&gt;as.heap.len</div><div class='ctx'>         end</div><div class='ctx'>         set $result = $aryptr[($serial % ID_ENTRY_UNIT) * ID_ENTRY_SIZE + $t]</div><div class='del'>-	if $result != RUBY_Qnil</div><div class='add'>+        if $result != RUBY_Qnil</div><div class='ctx'>           print_string $result</div><div class='del'>-	else</div><div class='del'>-	  echo undef</div><div class='del'>-	end</div><div class='add'>+        else</div><div class='add'>+          echo undef</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='hunk'>@@ -1274,7 +1279,7 @@ document rb_count_objects</div><div class='ctx'>   Counts all objects grouped by type.</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-# Details: https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/MachineInstructionsTraceWithGDB</div><div class='add'>+# Details: https://bugs.ruby-lang.org/projects/ruby-master/wiki/MachineInstructionsTraceWithGDB</div><div class='ctx'> define trace_machine_instructions</div><div class='ctx'>   set logging on</div><div class='ctx'>   set height 0</div><div class='hunk'>@@ -1319,8 +1324,7 @@ define print_flags</div><div class='ctx'>   printf "RUBY_FL_PROMOTED0   : %s\n", ((struct RBasic*)($arg0))-&gt;flags &amp; RUBY_FL_PROMOTED0 ? "1" : "0"</div><div class='ctx'>   printf "RUBY_FL_PROMOTED1   : %s\n", ((struct RBasic*)($arg0))-&gt;flags &amp; RUBY_FL_PROMOTED1 ? "1" : "0"</div><div class='ctx'>   printf "RUBY_FL_FINALIZE    : %s\n", ((struct RBasic*)($arg0))-&gt;flags &amp; RUBY_FL_FINALIZE ? "1" : "0"</div><div class='del'>-  printf "RUBY_FL_TAINT       : %s\n", ((struct RBasic*)($arg0))-&gt;flags &amp; RUBY_FL_TAINT ? "1" : "0"</div><div class='del'>-  printf "RUBY_FL_UNTRUSTED   : %s\n", ((struct RBasic*)($arg0))-&gt;flags &amp; RUBY_FL_UNTRUSTED ? "1" : "0"</div><div class='add'>+  printf "RUBY_FL_SHAREABLE   : %s\n", ((struct RBasic*)($arg0))-&gt;flags &amp; RUBY_FL_SHAREABLE ? "1" : "0"</div><div class='ctx'>   printf "RUBY_FL_EXIVAR      : %s\n", ((struct RBasic*)($arg0))-&gt;flags &amp; RUBY_FL_EXIVAR ? "1" : "0"</div><div class='ctx'>   printf "RUBY_FL_FREEZE      : %s\n", ((struct RBasic*)($arg0))-&gt;flags &amp; RUBY_FL_FREEZE ? "1" : "0"</div><div class='ctx'> </div><div class='head'>diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs<br/>new file mode 100644<br/>index 0000000000..6c5eac5a0f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.git-blame-ignore-revs?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.git-blame-ignore-revs</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+# This is a file used by GitHub to ignore the following commits on `git blame`.</div><div class='add'>+#</div><div class='add'>+# You can also do the same thing in your local repository with:</div><div class='add'>+# $ git config --local blame.ignoreRevsFile .git-blame-ignore-revs</div><div class='add'>+</div><div class='add'>+# Expand tabs</div><div class='add'>+5b21e94bebed90180d8ff63dad03b8b948361089</div><div class='add'>+</div><div class='add'>+# Enable Style/StringLiterals cop for RubyGems/Bundler</div><div class='add'>+d7ffd3fea402239b16833cc434404a7af82d44f3</div><div class='add'>+</div><div class='add'>+# [ruby/digest] Revert tab-expansion in external files</div><div class='add'>+48b09aae7ec5632209229dcc294dd0d75a93a17f</div><div class='add'>+8a65cf3b61c60e4cb886f59a73ff6db44364bfa9</div><div class='add'>+39dc9f9093901d40d2998653948d5da38b18ee2c</div><div class='add'>+</div><div class='add'>+# [ruby/io-nonblock] Revert tab expansion</div><div class='add'>+f28287d34c03f472ffe90ea262bdde9affd4b965</div><div class='add'>+0d842fecb4f75ab3b1d4097ebdb8e88f51558041</div><div class='add'>+4ba2c66761d6a293abdfba409241d31063cefd62</div><div class='add'>+</div><div class='add'>+# Make benchmark indentation consistent</div><div class='add'>+fc4acf8cae82e5196186d3278d831f2438479d91</div><div class='head'>diff --git a/.gitattributes b/.gitattributes<br/>index 6ca2f89462..d0c2d266b4 100644<br/>--- a/<a href='/ruby.git/tree/.gitattributes?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>.gitattributes</a><br/>+++ b/<a href='/ruby.git/tree/.gitattributes?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.gitattributes</a></div><div class='hunk'>@@ -4,3 +4,5 @@ bin svn-properties=svn:ignore=ruby</div><div class='ctx'> bin/* diff=ruby</div><div class='ctx'> tool/update-deps diff=ruby</div><div class='ctx'> tool/make-snapshot diff=ruby</div><div class='add'>+tool/format-release diff=ruby</div><div class='add'>+tool/leaked-globals diff=ruby</div><div class='head'>diff --git a/.github/SECURITY.md b/.github/SECURITY.md<br/>new file mode 100644<br/>index 0000000000..56baa29942<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/SECURITY.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/SECURITY.md</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+# Security Policy</div><div class='add'>+</div><div class='add'>+## Supported Versions</div><div class='add'>+</div><div class='add'>+See &lt;https://www.ruby-lang.org/en/downloads/branches/&gt;.</div><div class='add'>+</div><div class='add'>+## Reporting a Vulnerability</div><div class='add'>+</div><div class='add'>+See &lt;https://www.ruby-lang.org/en/security/&gt;.</div><div class='head'>diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml<br/>new file mode 100644<br/>index 0000000000..91f82b842b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/codeql/codeql-config.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/codeql/codeql-config.yml</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+name: "CodeQL config for the Ruby language"</div><div class='add'>+</div><div class='add'>+languages: cpp</div><div class='head'>diff --git a/.github/dependabot.yml b/.github/dependabot.yml<br/>new file mode 100644<br/>index 0000000000..bc63aca35b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/dependabot.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/dependabot.yml</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+version: 2</div><div class='add'>+updates:</div><div class='add'>+  - package-ecosystem: 'github-actions'</div><div class='add'>+    directory: '/'</div><div class='add'>+    schedule:</div><div class='add'>+      interval: 'monthly'</div><div class='head'>diff --git a/.github/workflows/baseruby.yml b/.github/workflows/baseruby.yml<br/>new file mode 100644<br/>index 0000000000..ebaafe3bf0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/baseruby.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/baseruby.yml</a></div><div class='hunk'>@@ -0,0 +1,80 @@</div><div class='add'>+name: BASERUBY Check</div><div class='add'>+</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  merge_group:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  baseruby:</div><div class='add'>+    name: BASERUBY</div><div class='add'>+    runs-on: ubuntu-22.04</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') }}</div><div class='add'>+    strategy:</div><div class='add'>+      matrix:</div><div class='add'>+        ruby:</div><div class='add'>+          - ruby-2.2</div><div class='add'>+#         - ruby-2.3</div><div class='add'>+#         - ruby-2.4</div><div class='add'>+#         - ruby-2.5</div><div class='add'>+#         - ruby-2.6</div><div class='add'>+#         - ruby-2.7</div><div class='add'>+          - ruby-3.0</div><div class='add'>+          - ruby-3.1</div><div class='add'>+</div><div class='add'>+    steps:</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: .downloaded-cache</div><div class='add'>+          key: downloaded-cache</div><div class='add'>+      - uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0</div><div class='add'>+        with:</div><div class='add'>+          ruby-version: ${{ matrix.ruby }}</div><div class='add'>+          bundler: none</div><div class='add'>+      - run: echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" &gt;&gt; $GITHUB_ENV</div><div class='add'>+      - run: sudo apt-get install build-essential autoconf bison libyaml-dev</div><div class='add'>+      - run: ./autogen.sh</div><div class='add'>+      - run: ./configure --disable-install-doc</div><div class='add'>+      - run: make common-srcs</div><div class='add'>+      - run: make incs</div><div class='add'>+      - run: make all</div><div class='add'>+      - run: make test</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ github.workflow }} / BASERUBY @ ${{ matrix.ruby }}",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='head'>diff --git a/.github/workflows/bundled_gems.yml b/.github/workflows/bundled_gems.yml<br/>new file mode 100644<br/>index 0000000000..070c0fa1dd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/bundled_gems.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/bundled_gems.yml</a></div><div class='hunk'>@@ -0,0 +1,166 @@</div><div class='add'>+name: bundled_gems</div><div class='add'>+</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    branches: [ "master" ]</div><div class='add'>+    paths:</div><div class='add'>+      - '.github/workflows/bundled_gems.yml'</div><div class='add'>+      - 'gems/bundled_gems'</div><div class='add'>+  pull_request:</div><div class='add'>+    branches: [ "master" ]</div><div class='add'>+    paths:</div><div class='add'>+      - '.github/workflows/bundled_gems.yml'</div><div class='add'>+      - 'gems/bundled_gems'</div><div class='add'>+  merge_group:</div><div class='add'>+    branches: [ "master" ]</div><div class='add'>+    paths:</div><div class='add'>+      - '.github/workflows/bundled_gems.yml'</div><div class='add'>+      - 'gems/bundled_gems'</div><div class='add'>+  schedule:</div><div class='add'>+    - cron: '45 6 * * *'</div><div class='add'>+  workflow_dispatch:</div><div class='add'>+</div><div class='add'>+permissions:  # added using https://github.com/step-security/secure-workflows</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  update:</div><div class='add'>+    permissions:</div><div class='add'>+      contents: write  # for Git to git push</div><div class='add'>+    if: ${{ github.event_name != 'schedule' || github.repository == 'ruby/ruby' }}</div><div class='add'>+    name: update ${{ github.workflow }}</div><div class='add'>+    runs-on: ubuntu-latest</div><div class='add'>+    steps:</div><div class='add'>+      - name: git config</div><div class='add'>+        run: |</div><div class='add'>+          git config --global advice.detachedHead 0</div><div class='add'>+          git config --global init.defaultBranch garbage</div><div class='add'>+</div><div class='add'>+      - name: Set ENV</div><div class='add'>+        run: |</div><div class='add'>+          echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" &gt;&gt; $GITHUB_ENV</div><div class='add'>+          echo "TODAY=$(date +%F)" &gt;&gt; $GITHUB_ENV</div><div class='add'>+</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: .downloaded-cache</div><div class='add'>+          key: downloaded-cache-${{ github.sha }}</div><div class='add'>+          restore-keys: |</div><div class='add'>+            downloaded-cache</div><div class='add'>+</div><div class='add'>+      - name: Download previous gems list</div><div class='add'>+        run: |</div><div class='add'>+          data=bundled_gems.json</div><div class='add'>+          mkdir -p .downloaded-cache</div><div class='add'>+          ln -s .downloaded-cache/$data .</div><div class='add'>+          curl -O -R -z ./$data https://stdgems.org/$data</div><div class='add'>+</div><div class='add'>+      - name: Update bundled gems list</div><div class='add'>+        run: |</div><div class='add'>+          ruby -i~ tool/update-bundled_gems.rb gems/bundled_gems</div><div class='add'>+</div><div class='add'>+      - name: Maintain updated gems list in NEWS</div><div class='add'>+        run: |</div><div class='add'>+          #!ruby</div><div class='add'>+          require 'json'</div><div class='add'>+          news = File.read("NEWS.md")</div><div class='add'>+          prev = news[/since the \*+(\d+\.\d+\.\d+)\*+/, 1]</div><div class='add'>+          prevs = [prev, prev.sub(/\.\d+\z/, '')]</div><div class='add'>+          %W[bundled].each do |type|</div><div class='add'>+            last = JSON.parse(File.read("#{type}_gems.json"))['gems'].filter_map do |g|</div><div class='add'>+              v = g['versions'].values_at(*prevs).compact.first</div><div class='add'>+              g = g['gem']</div><div class='add'>+              g = 'RubyGems' if g == 'rubygems'</div><div class='add'>+              [g, v] if v</div><div class='add'>+            end.to_h</div><div class='add'>+            changed = File.foreach("gems/#{type}_gems").filter_map do |l|</div><div class='add'>+              next if l.start_with?("#")</div><div class='add'>+              g, v = l.split(" ", 3)</div><div class='add'>+              [g, v] unless last[g] == v</div><div class='add'>+            end</div><div class='add'>+            changed, added = changed.partition {|g, _| last[g]}</div><div class='add'>+            news.sub!(/^\*( +)The following #{type} gems? are updated\.\n+\K(?: \1\*( +).*\n)*/) do</div><div class='add'>+              mark = "#{$1} *#{$2}"</div><div class='add'>+              changed.map {|g, v|"#{mark}#{g} #{v}\n"}.join("")</div><div class='add'>+            end or next</div><div class='add'>+            news.sub!(/^\*( +)The following default gems are now bundled gems\.\n+\K(?: \1\*( +).*\n)*/) do</div><div class='add'>+              mark = "#{$1} *#{$2}"</div><div class='add'>+              added.map {|g, v|"#{mark}#{g} #{v}\n"}.join("")</div><div class='add'>+            end or next unless added.empty?</div><div class='add'>+            File.write("NEWS.md", news)</div><div class='add'>+          end</div><div class='add'>+        shell: ruby {0}</div><div class='add'>+</div><div class='add'>+      - name: Check diffs</div><div class='add'>+        id: diff</div><div class='add'>+        run: |</div><div class='add'>+          git add -- NEWS.md</div><div class='add'>+          git diff --no-ext-diff --ignore-submodules --quiet -- gems/bundled_gems</div><div class='add'>+        continue-on-error: true</div><div class='add'>+</div><div class='add'>+      - name: Install libraries</div><div class='add'>+        run: |</div><div class='add'>+          set -x</div><div class='add'>+          sudo apt-get update -q || :</div><div class='add'>+          sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby</div><div class='add'>+        if: ${{ steps.diff.outcome == 'failure' }}</div><div class='add'>+</div><div class='add'>+      - name: Build</div><div class='add'>+        run: |</div><div class='add'>+          ./autogen.sh</div><div class='add'>+          ./configure -C --disable-install-doc</div><div class='add'>+          make</div><div class='add'>+        if: ${{ steps.diff.outcome == 'failure' }}</div><div class='add'>+</div><div class='add'>+      - name: Prepare bundled gems</div><div class='add'>+        run: |</div><div class='add'>+          make -s prepare-gems</div><div class='add'>+        if: ${{ steps.diff.outcome == 'failure' }}</div><div class='add'>+</div><div class='add'>+      - name: Test bundled gems</div><div class='add'>+        run: |</div><div class='add'>+          make -s test-bundled-gems</div><div class='add'>+          git add -- gems/bundled_gems</div><div class='add'>+        timeout-minutes: 30</div><div class='add'>+        env:</div><div class='add'>+          RUBY_TESTOPTS: "-q --tty=no"</div><div class='add'>+          TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""</div><div class='add'>+        if: ${{ steps.diff.outcome == 'failure' }}</div><div class='add'>+</div><div class='add'>+      - name: Show diffs</div><div class='add'>+        id: show</div><div class='add'>+        run: |</div><div class='add'>+          git diff --cached --color --no-ext-diff --ignore-submodules --exit-code --</div><div class='add'>+        continue-on-error: true</div><div class='add'>+</div><div class='add'>+      - name: Commit</div><div class='add'>+        run: |</div><div class='add'>+          git pull --ff-only origin ${GITHUB_REF#refs/heads/}</div><div class='add'>+          message="Update bundled gems list at "</div><div class='add'>+          if [ ${{ steps.diff.outcome }} = success ]; then</div><div class='add'>+            git commit --message="${message}${GITHUB_SHA:0:30} [ci skip]"</div><div class='add'>+          else</div><div class='add'>+            git commit --message="${message}${TODAY}"</div><div class='add'>+          fi</div><div class='add'>+          git push origin ${GITHUB_REF#refs/heads/}</div><div class='add'>+        env:</div><div class='add'>+          EMAIL: svn-admin@ruby-lang.org</div><div class='add'>+          GIT_AUTHOR_NAME: git</div><div class='add'>+          GIT_COMMITTER_NAME: git</div><div class='add'>+        if: ${{ github.repository == 'ruby/ruby' &amp;&amp; !startsWith(github.event_name, 'pull') &amp;&amp; steps.show.outcome == 'failure' }}</div><div class='add'>+</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ github.workflow }} / update",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='head'>diff --git a/.github/workflows/check_dependencies.yml b/.github/workflows/check_dependencies.yml<br/>new file mode 100644<br/>index 0000000000..79b2916feb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/check_dependencies.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/check_dependencies.yml</a></div><div class='hunk'>@@ -0,0 +1,78 @@</div><div class='add'>+name: Check Dependencies</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  merge_group:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  update-deps:</div><div class='add'>+    strategy:</div><div class='add'>+      matrix:</div><div class='add'>+        os: [ubuntu-22.04]</div><div class='add'>+      fail-fast: true</div><div class='add'>+    runs-on: ${{ matrix.os }}</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') }}</div><div class='add'>+    steps:</div><div class='add'>+      - name: Install libraries</div><div class='add'>+        run: |</div><div class='add'>+          set -x</div><div class='add'>+          sudo apt-get update -q || :</div><div class='add'>+          sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby</div><div class='add'>+        if: ${{ contains(matrix.os, 'ubuntu') }}</div><div class='add'>+      - name: Install libraries</div><div class='add'>+        run: |</div><div class='add'>+          brew install gmp libffi openssl@1.1 zlib autoconf automake libtool readline</div><div class='add'>+        if: ${{ contains(matrix.os, 'macos') }}</div><div class='add'>+      - name: git config</div><div class='add'>+        run: |</div><div class='add'>+          git config --global advice.detachedHead 0</div><div class='add'>+          git config --global init.defaultBranch garbage</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: .downloaded-cache</div><div class='add'>+          key: downloaded-cache</div><div class='add'>+      - run: ./autogen.sh</div><div class='add'>+      - name: Run configure</div><div class='add'>+        run: ./configure -C --disable-install-doc --disable-rubygems --with-gcc 'optflags=-O0' 'debugflags=-save-temps=obj -g'</div><div class='add'>+      - run: make all golf</div><div class='add'>+      - run: ruby tool/update-deps --fix</div><div class='add'>+      - run: git diff --no-ext-diff --ignore-submodules --exit-code</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ matrix.os }} / Dependencies need to update",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='head'>diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml<br/>new file mode 100644<br/>index 0000000000..8dba76fbe2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/codeql-analysis.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/codeql-analysis.yml</a></div><div class='hunk'>@@ -0,0 +1,75 @@</div><div class='add'>+name: "Code scanning - action"</div><div class='add'>+</div><div class='add'>+on:</div><div class='add'>+  # push:</div><div class='add'>+  #   paths-ignore:</div><div class='add'>+  #     - 'doc/**'</div><div class='add'>+  #     - '**/man'</div><div class='add'>+  #     - '**.md'</div><div class='add'>+  #     - '**.rdoc'</div><div class='add'>+  #     - '**/.document'</div><div class='add'>+  # pull_request:</div><div class='add'>+  #   paths-ignore:</div><div class='add'>+  #     - 'doc/**'</div><div class='add'>+  #     - '**/man'</div><div class='add'>+  #     - '**.md'</div><div class='add'>+  #     - '**.rdoc'</div><div class='add'>+  #     - '**/.document'</div><div class='add'>+  schedule:</div><div class='add'>+    - cron: '0 12 * * *'</div><div class='add'>+  workflow_dispatch:</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:  # added using https://github.com/step-security/secure-workflows</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  CodeQL-Build:</div><div class='add'>+</div><div class='add'>+    # CodeQL runs on ubuntu-latest and windows-latest</div><div class='add'>+    permissions:</div><div class='add'>+      actions: read  # for github/codeql-action/init to get workflow details</div><div class='add'>+      contents: read  # for actions/checkout to fetch code</div><div class='add'>+      security-events: write  # for github/codeql-action/autobuild to send a status report</div><div class='add'>+    runs-on: ubuntu-latest</div><div class='add'>+    # CodeQL fails to run pull requests from dependabot due to missing write access to upload results.</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') &amp;&amp; github.event.head_commit.pusher.name != 'dependabot[bot]' }}</div><div class='add'>+</div><div class='add'>+    env:</div><div class='add'>+      enable_install_doc: no</div><div class='add'>+</div><div class='add'>+    steps:</div><div class='add'>+    - name: Install libraries</div><div class='add'>+      run: |</div><div class='add'>+        set -x</div><div class='add'>+        sudo apt-get update -q || :</div><div class='add'>+        sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby</div><div class='add'>+</div><div class='add'>+    - name: Checkout repository</div><div class='add'>+      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+</div><div class='add'>+    - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+      with:</div><div class='add'>+        path: .downloaded-cache</div><div class='add'>+        key: downloaded-cache</div><div class='add'>+</div><div class='add'>+    - name: Remove an obsolete rubygems vendored file</div><div class='add'>+      run: sudo rm /usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb</div><div class='add'>+</div><div class='add'>+    - name: Initialize CodeQL</div><div class='add'>+      uses: github/codeql-action/init@959cbb7472c4d4ad70cdfe6f4976053fe48ab394 # v2.1.37</div><div class='add'>+      with:</div><div class='add'>+        config-file: ./.github/codeql/codeql-config.yml</div><div class='add'>+        trap-caching: false</div><div class='add'>+</div><div class='add'>+    - name: Set ENV</div><div class='add'>+      run: echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" &gt;&gt; $GITHUB_ENV</div><div class='add'>+</div><div class='add'>+    - name: Autobuild</div><div class='add'>+      uses: github/codeql-action/autobuild@959cbb7472c4d4ad70cdfe6f4976053fe48ab394 # v2.1.37</div><div class='add'>+</div><div class='add'>+    - name: Perform CodeQL Analysis</div><div class='add'>+      uses: github/codeql-action/analyze@959cbb7472c4d4ad70cdfe6f4976053fe48ab394 # v2.1.37</div><div class='head'>diff --git a/.github/workflows/compilers.yml b/.github/workflows/compilers.yml<br/>new file mode 100644<br/>index 0000000000..caf12cc0f4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/compilers.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/compilers.yml</a></div><div class='hunk'>@@ -0,0 +1,281 @@</div><div class='add'>+name: Compilations</div><div class='add'>+</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  merge_group:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+# GitHub actions does not support YAML anchors.  This creative use of</div><div class='add'>+# environment variables (plus the "echo $GITHUB_ENV" hack) is to reroute that</div><div class='add'>+# restriction.</div><div class='add'>+env:</div><div class='add'>+  default_cc: clang-15</div><div class='add'>+  append_cc: ''</div><div class='add'>+</div><div class='add'>+  # -O1 is faster than -O3 in our tests... Majority of time are consumed trying</div><div class='add'>+  # to optimize binaries.  Also GitHub Actions run on relatively modern CPUs</div><div class='add'>+  # compared to, say, GCC 4 or Clang 3.  We don't specify `-march=native`</div><div class='add'>+  # because compilers tend not understand what the CPU is.</div><div class='add'>+  optflags: '-O1'</div><div class='add'>+</div><div class='add'>+  # -g0 disables backtraces when SEGV.  Do not set that.</div><div class='add'>+  debugflags: '-ggdb3'</div><div class='add'>+</div><div class='add'>+  default_configure: &gt;-</div><div class='add'>+    --enable-debug-env</div><div class='add'>+    --disable-install-doc</div><div class='add'>+    --with-ext=-test-/cxxanyargs,+</div><div class='add'>+  append_configure: &gt;-</div><div class='add'>+    --without-valgrind</div><div class='add'>+    --without-jemalloc</div><div class='add'>+    --without-gmp</div><div class='add'>+</div><div class='add'>+  UPDATE_UNICODE: &gt;-</div><div class='add'>+    UNICODE_FILES=.</div><div class='add'>+    UNICODE_PROPERTY_FILES=.</div><div class='add'>+    UNICODE_AUXILIARY_FILES=.</div><div class='add'>+    UNICODE_EMOJI_FILES=.</div><div class='add'>+  CONFIGURE_TTY: never</div><div class='add'>+  GITPULLOPTIONS: --no-tags origin ${{github.ref}}</div><div class='add'>+  RUBY_DEBUG: ci rgengc</div><div class='add'>+  RUBY_TESTOPTS: &gt;-</div><div class='add'>+    -q</div><div class='add'>+    --color=always</div><div class='add'>+    --tty=no</div><div class='add'>+</div><div class='add'>+permissions:</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  compile:</div><div class='add'>+    strategy:</div><div class='add'>+      fail-fast: false</div><div class='add'>+      matrix:</div><div class='add'>+        env:</div><div class='add'>+          - {}</div><div class='add'>+        entry:</div><div class='add'>+          - { name: gcc-12,    env: { default_cc: gcc-12 } }</div><div class='add'>+          - { name: gcc-11,    env: { default_cc: gcc-11 } }</div><div class='add'>+          - { name: gcc-10,    env: { default_cc: gcc-10 } }</div><div class='add'>+          - { name: gcc-9,     env: { default_cc: gcc-9 } }</div><div class='add'>+          - { name: gcc-8,     env: { default_cc: gcc-8 } }</div><div class='add'>+          - { name: gcc-7,     env: { default_cc: gcc-7 } }</div><div class='add'>+          - name: 'gcc-13 LTO'</div><div class='add'>+            container: gcc-13</div><div class='add'>+            env:</div><div class='add'>+              default_cc: 'gcc-13 -flto=auto -ffat-lto-objects -Werror=lto-type-mismatch'</div><div class='add'>+              optflags: '-O2'</div><div class='add'>+            shared: disable</div><div class='add'>+            # check: true</div><div class='add'>+          - { name: clang-16,  env: { default_cc: clang-16 } }</div><div class='add'>+          - { name: clang-15,  env: { default_cc: clang-15 } }</div><div class='add'>+          - { name: clang-14,  env: { default_cc: clang-14 } }</div><div class='add'>+          - { name: clang-13,  env: { default_cc: clang-13 } }</div><div class='add'>+          - { name: clang-12,  env: { default_cc: clang-12 } }</div><div class='add'>+          - { name: clang-11,  env: { default_cc: clang-11 } }</div><div class='add'>+          - { name: clang-10,  env: { default_cc: clang-10 } }</div><div class='add'>+          # llvm-objcopy&lt;=9 doesn't have --wildcard. It compiles, but leaves Rust symbols in libyjit.o.</div><div class='add'>+          - { name: clang-9,   env: { default_cc: clang-9,   append_configure: '--disable-yjit' } }</div><div class='add'>+          - { name: clang-8,   env: { default_cc: clang-8,   append_configure: '--disable-yjit' } }</div><div class='add'>+          - { name: clang-7,   env: { default_cc: clang-7,   append_configure: '--disable-yjit' } }</div><div class='add'>+          - { name: clang-6.0, env: { default_cc: clang-6.0, append_configure: '--disable-yjit' } }</div><div class='add'>+          - name: 'clang-16 LTO'</div><div class='add'>+            container: clang-16</div><div class='add'>+            env:</div><div class='add'>+              default_cc: 'clang-16 -flto=auto'</div><div class='add'>+              optflags: '-O2'</div><div class='add'>+            shared: disable</div><div class='add'>+            # check: true</div><div class='add'>+</div><div class='add'>+#         - { name: aarch64-linux-gnu,     crosshost: aarch64-linux-gnu, container: crossbuild-essential-arm64 }</div><div class='add'>+#         - { name: arm-linux-gnueabi,     crosshost: arm-linux-gnueabi }</div><div class='add'>+#         - { name: arm-linux-gnueabihf,   crosshost: arm-linux-gnueabihf }</div><div class='add'>+#         - { name: i686-w64-mingw32,      crosshost: i686-w64-mingw32 }</div><div class='add'>+#         - { name: powerpc-linux-gnu,     crosshost: powerpc-linux-gnu }</div><div class='add'>+#         - { name: powerpc64le-linux-gnu, crosshost: powerpc64le-linux-gnu, container: crossbuild-essential-ppc64el }</div><div class='add'>+#         - { name: s390x-linux-gnu,       crosshost: s390x-linux-gnu, container: crossbuild-essential-s390x }</div><div class='add'>+#         - { name: x86_64-w64-mingw32,    crosshost: x86_64-w64-mingw32, container: mingw-w64 }</div><div class='add'>+</div><div class='add'>+          # -Wno-strict-prototypes is necessary with current clang-15 since</div><div class='add'>+          # older autoconf generate functions without prototype and -pedantic</div><div class='add'>+          # now implies strict-prototypes. Disabling the error but leaving the</div><div class='add'>+          # warning generates a lot of noise from use of ANYARGS in</div><div class='add'>+          # rb_define_method() and friends.</div><div class='add'>+          # See: https://github.com/llvm/llvm-project/commit/11da1b53d8cd3507959022cd790d5a7ad4573d94</div><div class='add'>+          - { name: c99,   env: { append_cc: '-std=c99   -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }</div><div class='add'>+#         - { name: c11,   env: { append_cc: '-std=c11   -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }</div><div class='add'>+#         - { name: c17,   env: { append_cc: '-std=c17   -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }</div><div class='add'>+          - { name: c2x,   env: { append_cc: '-std=c2x   -Werror=pedantic -pedantic-errors -Wno-strict-prototypes' } }</div><div class='add'>+          - { name: c++98, env: { CXXFLAGS: '-std=c++98 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }</div><div class='add'>+#         - { name: c++11, env: { CXXFLAGS: '-std=c++11 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }</div><div class='add'>+#         - { name: c++14, env: { CXXFLAGS: '-std=c++14 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }</div><div class='add'>+#         - { name: c++17, env: { CXXFLAGS: '-std=c++17 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }</div><div class='add'>+          - { name: c++2a, env: { CXXFLAGS: '-std=c++2a -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' } }</div><div class='add'>+</div><div class='add'>+          - { name: '-O0', env: { optflags: '-O0 -march=x86-64 -mtune=generic' } }</div><div class='add'>+#         - { name: '-O3', env: { optflags: '-O3 -march=x86-64 -mtune=generic' }, check: true }</div><div class='add'>+</div><div class='add'>+          - { name: gmp,                  env: { append_configure: '--with-gmp' } }</div><div class='add'>+          - { name: jemalloc,             env: { append_configure: '--with-jemalloc' } }</div><div class='add'>+          - { name: valgrind,             env: { append_configure: '--with-valgrind' } }</div><div class='add'>+          - { name: 'coroutine=ucontext', env: { append_configure: '--with-coroutine=ucontext' } }</div><div class='add'>+          - { name: 'coroutine=pthread',  env: { append_configure: '--with-coroutine=pthread' } }</div><div class='add'>+          - { name: disable-jit-support,  env: { append_configure: '--disable-jit-support' } }</div><div class='add'>+          - { name: disable-dln,          env: { append_configure: '--disable-dln' } }</div><div class='add'>+          - { name: enable-mkmf-verbose,  env: { append_configure: '--enable-mkmf-verbose' } }</div><div class='add'>+          - { name: disable-rubygems,     env: { append_configure: '--disable-rubygems' } }</div><div class='add'>+          - { name: RUBY_DEVEL,           env: { append_configure: '--enable-devel' } }</div><div class='add'>+</div><div class='add'>+          - { name: OPT_THREADED_CODE=1,            env: { cppflags: '-DOPT_THREADED_CODE=1' } }</div><div class='add'>+          - { name: OPT_THREADED_CODE=2,            env: { cppflags: '-DOPT_THREADED_CODE=2' } }</div><div class='add'>+          - { name: OPT_THREADED_CODE=3,            env: { cppflags: '-DOPT_THREADED_CODE=3' } }</div><div class='add'>+</div><div class='add'>+          - { name: NDEBUG,                         env: { cppflags: '-DNDEBUG' } }</div><div class='add'>+          - { name: RUBY_DEBUG,                     env: { cppflags: '-DRUBY_DEBUG' } }</div><div class='add'>+#         - { name: ARRAY_DEBUG,                    env: { cppflags: '-DARRAY_DEBUG' } }</div><div class='add'>+#         - { name: BIGNUM_DEBUG,                   env: { cppflags: '-DBIGNUM_DEBUG' } }</div><div class='add'>+#         - { name: CCAN_LIST_DEBUG,                env: { cppflags: '-DCCAN_LIST_DEBUG' } }</div><div class='add'>+#         - { name: CPDEBUG=-1,                     env: { cppflags: '-DCPDEBUG=-1' } }</div><div class='add'>+#         - { name: ENC_DEBUG,                      env: { cppflags: '-DENC_DEBUG' } }</div><div class='add'>+#         - { name: GC_DEBUG,                       env: { cppflags: '-DGC_DEBUG' } }</div><div class='add'>+#         - { name: HASH_DEBUG,                     env: { cppflags: '-DHASH_DEBUG' } }</div><div class='add'>+#         - { name: ID_TABLE_DEBUG,                 env: { cppflags: '-DID_TABLE_DEBUG' } }</div><div class='add'>+#         - { name: RGENGC_DEBUG=-1,                env: { cppflags: '-DRGENGC_DEBUG=-1' } }</div><div class='add'>+#         - { name: SYMBOL_DEBUG,                   env: { cppflags: '-DSYMBOL_DEBUG' } }</div><div class='add'>+</div><div class='add'>+#         - { name: RGENGC_CHECK_MODE,              env: { cppflags: '-DRGENGC_CHECK_MODE' } }</div><div class='add'>+#         - { name: TRANSIENT_HEAP_CHECK_MODE,      env: { cppflags: '-DTRANSIENT_HEAP_CHECK_MODE' } }</div><div class='add'>+#         - { name: VM_CHECK_MODE,                  env: { cppflags: '-DVM_CHECK_MODE' } }</div><div class='add'>+</div><div class='add'>+          - { name: USE_EMBED_CI=0,                 env: { cppflags: '-DUSE_EMBED_CI=0' } }</div><div class='add'>+          - name: USE_FLONUM=0,</div><div class='add'>+            env:</div><div class='add'>+              cppflags: '-DUSE_FLONUM=0'</div><div class='add'>+              # yjit requires FLONUM for the pointer tagging scheme</div><div class='add'>+              append_configure: '--disable-yjit'</div><div class='add'>+#         - { name: USE_GC_MALLOC_OBJ_INFO_DETAILS, env: { cppflags: '-DUSE_GC_MALLOC_OBJ_INFO_DETAILS' } }</div><div class='add'>+          - { name: USE_LAZY_LOAD,                  env: { cppflags: '-DUSE_LAZY_LOAD' } }</div><div class='add'>+#         - { name: USE_RINCGC=0,                   env: { cppflags: '-DUSE_RINCGC=0' } }</div><div class='add'>+#         - { name: USE_SYMBOL_GC=0,                env: { cppflags: '-DUSE_SYMBOL_GC=0' } }</div><div class='add'>+#         - { name: USE_THREAD_CACHE=0,             env: { cppflags: '-DUSE_THREAD_CACHE=0' } }</div><div class='add'>+#         - { name: USE_TRANSIENT_HEAP=0,           env: { cppflags: '-DUSE_TRANSIENT_HEAP=0' } }</div><div class='add'>+#         - { name: USE_RUBY_DEBUG_LOG=1,           env: { cppflags: '-DUSE_RUBY_DEBUG_LOG=1' } }</div><div class='add'>+          - { name: USE_RVARGC=0,                   env: { cppflags: '-DUSE_RVARGC=0' } }</div><div class='add'>+#         - { name: USE_RVARGC=1,                   env: { cppflags: '-DUSE_RVARGC=1' } }</div><div class='add'>+#         - { name: USE_DEBUG_COUNTER,              env: { cppflags: '-DUSE_DEBUG_COUNTER=1', RUBY_DEBUG_COUNTER_DISABLE: '1' } }</div><div class='add'>+</div><div class='add'>+          - { name: DEBUG_FIND_TIME_NUMGUESS,       env: { cppflags: '-DDEBUG_FIND_TIME_NUMGUESS' } }</div><div class='add'>+          - { name: DEBUG_INTEGER_PACK,             env: { cppflags: '-DDEBUG_INTEGER_PACK' } }</div><div class='add'>+#         - { name: ENABLE_PATH_CHECK,              env: { cppflags: '-DENABLE_PATH_CHECK' } }</div><div class='add'>+</div><div class='add'>+          - { name: GC_DEBUG_STRESS_TO_CLASS,       env: { cppflags: '-DGC_DEBUG_STRESS_TO_CLASS' } }</div><div class='add'>+#         - { name: GC_ENABLE_LAZY_SWEEP=0,         env: { cppflags: '-DGC_ENABLE_LAZY_SWEEP=0' } }</div><div class='add'>+#         - { name: GC_PROFILE_DETAIL_MEMOTY,       env: { cppflags: '-DGC_PROFILE_DETAIL_MEMOTY' } }</div><div class='add'>+#         - { name: GC_PROFILE_MORE_DETAIL,         env: { cppflags: '-DGC_PROFILE_MORE_DETAIL' } }</div><div class='add'>+</div><div class='add'>+#         - { name: CALC_EXACT_MALLOC_SIZE,         env: { cppflags: '-DCALC_EXACT_MALLOC_SIZE' } }</div><div class='add'>+#         - { name: MALLOC_ALLOCATED_SIZE_CHECK,    env: { cppflags: '-DMALLOC_ALLOCATED_SIZE_CHECK' } }</div><div class='add'>+</div><div class='add'>+#         - { name: IBF_ISEQ_ENABLE_LOCAL_BUFFER,   env: { cppflags: '-DIBF_ISEQ_ENABLE_LOCAL_BUFFER' } }</div><div class='add'>+</div><div class='add'>+#         - { name: RGENGC_ESTIMATE_OLDMALLOC,      env: { cppflags: '-DRGENGC_ESTIMATE_OLDMALLOC' } }</div><div class='add'>+#         - { name: RGENGC_FORCE_MAJOR_GC,          env: { cppflags: '-DRGENGC_FORCE_MAJOR_GC' } }</div><div class='add'>+#         - { name: RGENGC_OBJ_INFO,                env: { cppflags: '-DRGENGC_OBJ_INFO' } }</div><div class='add'>+#         - { name: RGENGC_OLD_NEWOBJ_CHECK,        env: { cppflags: '-DRGENGC_OLD_NEWOBJ_CHECK' } }</div><div class='add'>+#         - { name: RGENGC_PROFILE,                 env: { cppflags: '-DRGENGC_PROFILE' } }</div><div class='add'>+</div><div class='add'>+#         - { name: VM_DEBUG_BP_CHECK,              env: { cppflags: '-DVM_DEBUG_BP_CHECK' } }</div><div class='add'>+#         - { name: VM_DEBUG_VERIFY_METHOD_CACHE,   env: { cppflags: '-DVM_DEBUG_VERIFY_METHOD_CACHE' } }</div><div class='add'>+</div><div class='add'>+          - { name: MJIT_FORCE_ENABLE,              env: { cppflags: '-DMJIT_FORCE_ENABLE' } }</div><div class='add'>+          - { name: YJIT_FORCE_ENABLE,              env: { cppflags: '-DYJIT_FORCE_ENABLE' } }</div><div class='add'>+</div><div class='add'>+    name: ${{ matrix.entry.name }}</div><div class='add'>+    runs-on: ubuntu-latest</div><div class='add'>+    container:</div><div class='add'>+      image: ghcr.io/ruby/ruby-ci-image:${{ matrix.entry.container || matrix.entry.env.default_cc || 'clang-15' }}</div><div class='add'>+      options: --user root</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') }}</div><div class='add'>+    env: ${{ matrix.entry.env || matrix.env }}</div><div class='add'>+    steps:</div><div class='add'>+      - run: id</div><div class='add'>+        working-directory:</div><div class='add'>+      - run: mkdir build</div><div class='add'>+        working-directory:</div><div class='add'>+      - name: setenv</div><div class='add'>+        run: |</div><div class='add'>+          echo "GNUMAKEFLAGS=-sj$((1 + $(nproc --all)))" &gt;&gt; $GITHUB_ENV</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+        with:</div><div class='add'>+          path: src</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: src/.downloaded-cache</div><div class='add'>+          key: downloaded-cache</div><div class='add'>+      - run: ./autogen.sh</div><div class='add'>+        working-directory: src</div><div class='add'>+      - name: Run configure</div><div class='add'>+        run: &gt;</div><div class='add'>+          ../src/configure -C ${default_configure} ${append_configure}</div><div class='add'>+          --${{</div><div class='add'>+            matrix.entry.crosshost &amp;&amp; 'host' || 'with-gcc'</div><div class='add'>+          }}=${{</div><div class='add'>+            matrix.entry.crosshost || '"${default_cc}${append_cc:+ $append_cc}"'</div><div class='add'>+          }}</div><div class='add'>+          --${{ matrix.entry.shared || 'enable' }}-shared</div><div class='add'>+      - run: make extract-extlibs</div><div class='add'>+      - run: make incs</div><div class='add'>+      - run: make showflags</div><div class='add'>+      - run: make</div><div class='add'>+      - run: make leaked-globals</div><div class='add'>+      - run: make test</div><div class='add'>+      - run: make install</div><div class='add'>+        if: ${{ matrix.entry.check }}</div><div class='add'>+      - run: make test-tool</div><div class='add'>+        if: ${{ matrix.entry.check }}</div><div class='add'>+      - run: make test-all TESTS='-- ruby -ext-'</div><div class='add'>+        if: ${{ matrix.entry.check }}</div><div class='add'>+      - run: make test-spec</div><div class='add'>+        env:</div><div class='add'>+          CHECK_LEAKS: true</div><div class='add'>+        if: ${{ matrix.entry.check }}</div><div class='add'>+      - run: make test-annocheck</div><div class='add'>+        if: ${{ matrix.entry.check &amp;&amp; endsWith(matrix.entry.name, 'annocheck') }}</div><div class='add'>+</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ github.workflow }} / ${{ matrix.entry.name }}",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='add'>+</div><div class='add'>+defaults:</div><div class='add'>+  run:</div><div class='add'>+    working-directory: build</div><div class='head'>diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml<br/>new file mode 100644<br/>index 0000000000..d8dc58b119<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/macos.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/macos.yml</a></div><div class='hunk'>@@ -0,0 +1,113 @@</div><div class='add'>+name: macOS</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  merge_group:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  make:</div><div class='add'>+    strategy:</div><div class='add'>+      matrix:</div><div class='add'>+        test_task: ["check"] # "test-bundler-parallel", "test-bundled-gems"</div><div class='add'>+        os:</div><div class='add'>+          - macos-13</div><div class='add'>+          - macos-14</div><div class='add'>+          - macos-15</div><div class='add'>+      fail-fast: false</div><div class='add'>+    env:</div><div class='add'>+      GITPULLOPTIONS: --no-tags origin ${{github.ref}}</div><div class='add'>+    runs-on: ${{ matrix.os }}</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') }}</div><div class='add'>+    steps:</div><div class='add'>+      - run: mkdir build</div><div class='add'>+        working-directory:</div><div class='add'>+      - name: git config</div><div class='add'>+        run: |</div><div class='add'>+          git config --global advice.detachedHead 0</div><div class='add'>+          git config --global init.defaultBranch garbage</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+        with:</div><div class='add'>+          path: src</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: src/.downloaded-cache</div><div class='add'>+          key: downloaded-cache</div><div class='add'>+      - name: Install libraries</div><div class='add'>+        run: |</div><div class='add'>+          brew install gmp libffi openssl@1.1 zlib autoconf automake libtool readline bison</div><div class='add'>+        working-directory: src</div><div class='add'>+      - name: Set ENV</div><div class='add'>+        run: |</div><div class='add'>+          echo "MAKEFLAGS=-j$((1 + $(sysctl -n hw.activecpu)))" &gt;&gt; $GITHUB_ENV</div><div class='add'>+          echo "PATH="/usr/local/opt/bison/bin:/opt/homebrew/opt/bison/bin:$PATH"" &gt;&gt; $GITHUB_ENV</div><div class='add'>+      - run: ./autogen.sh</div><div class='add'>+        working-directory: src</div><div class='add'>+      - name: Run configure</div><div class='add'>+        run: ../src/configure -C --disable-install-doc --with-openssl-dir=$(brew --prefix openssl@1.1) --with-readline-dir=$(brew --prefix readline)</div><div class='add'>+      - run: make incs</div><div class='add'>+      - run: make prepare-gems</div><div class='add'>+        if: ${{ matrix.test_task == 'test-bundled-gems' }}</div><div class='add'>+      - run: make</div><div class='add'>+      - run: make leaked-globals</div><div class='add'>+        if: ${{ matrix.test_task == 'check' }}</div><div class='add'>+      - name: make ${{ matrix.test_task }}</div><div class='add'>+        run: |</div><div class='add'>+          make -s ${{ matrix.test_task }} ${TESTS:+TESTS=`echo "$TESTS" | sed 's| |$$/ -n!/|g;s|^|-n!/|;s|$|$$/|'`}</div><div class='add'>+        timeout-minutes: 40</div><div class='add'>+        env:</div><div class='add'>+          RUBY_TESTOPTS: "-q --tty=no"</div><div class='add'>+          TESTS: ${{ matrix.test_task == 'check' &amp;&amp; matrix.skipped_tests || '' }}</div><div class='add'>+          TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""</div><div class='add'>+          PRECHECK_BUNDLED_GEMS: "no"</div><div class='add'>+      - name: make skipped tests</div><div class='add'>+        run: |</div><div class='add'>+          make -s test-all TESTS=`echo "$TESTS" | sed 's| |$$/ -n/|g;s|^|-n/|;s|$|$$/|'`</div><div class='add'>+        env:</div><div class='add'>+          GNUMAKEFLAGS: ""</div><div class='add'>+          RUBY_TESTOPTS: "-v --tty=no"</div><div class='add'>+          TESTS: ${{ matrix.skipped_tests }}</div><div class='add'>+          PRECHECK_BUNDLED_GEMS: "no"</div><div class='add'>+        if: ${{ matrix.test_task == 'check' &amp;&amp; matrix.skipped_tests != '' }}</div><div class='add'>+        continue-on-error: ${{ matrix.continue-on-skipped_tests || false }}</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ matrix.os }} / ${{ matrix.test_task }}${{ matrix.configure }}",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='add'>+</div><div class='add'>+defaults:</div><div class='add'>+  run:</div><div class='add'>+    working-directory: build</div><div class='head'>diff --git a/.github/workflows/mingw.yml b/.github/workflows/mingw.yml<br/>new file mode 100644<br/>index 0000000000..0df917d3d8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/mingw.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/mingw.yml</a></div><div class='hunk'>@@ -0,0 +1,179 @@</div><div class='add'>+name: MinGW</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  merge_group:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+# Notes:</div><div class='add'>+# Actions console encoding causes issues, see test-all &amp; test-spec steps</div><div class='add'>+#</div><div class='add'>+jobs:</div><div class='add'>+  make:</div><div class='add'>+    runs-on: windows-2022</div><div class='add'>+    name: ${{ github.workflow }} (${{ matrix.msystem }})</div><div class='add'>+    env:</div><div class='add'>+      MSYSTEM: ${{ matrix.msystem }}</div><div class='add'>+      MSYS2_ARCH: x86_64</div><div class='add'>+      CHOST: "x86_64-w64-mingw32"</div><div class='add'>+      CFLAGS:   "-march=x86-64 -mtune=generic -O3 -pipe"</div><div class='add'>+      CXXFLAGS: "-march=x86-64 -mtune=generic -O3 -pipe"</div><div class='add'>+      CPPFLAGS: "-D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -DFD_SETSIZE=2048"</div><div class='add'>+      LDFLAGS:  "-pipe"</div><div class='add'>+      UPDATE_UNICODE: "UNICODE_FILES=. UNICODE_PROPERTY_FILES=. UNICODE_AUXILIARY_FILES=. UNICODE_EMOJI_FILES=."</div><div class='add'>+      GITPULLOPTIONS: --no-tags origin ${{github.ref}}</div><div class='add'>+    strategy:</div><div class='add'>+      matrix:</div><div class='add'>+        include:</div><div class='add'>+          # To mitigate flakiness of MinGW CI, we test only one runtime that newer MSYS2 uses.</div><div class='add'>+          - msystem: "UCRT64"</div><div class='add'>+            base_ruby: head</div><div class='add'>+            test_task: "check"</div><div class='add'>+            test-all-opts: "--name=!/TestObjSpace#test_reachable_objects_during_iteration/"</div><div class='add'>+      fail-fast: false</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') }}</div><div class='add'>+    steps:</div><div class='add'>+      - run: mkdir build</div><div class='add'>+        working-directory:</div><div class='add'>+      - name: git config</div><div class='add'>+        run: |</div><div class='add'>+          git config --global core.autocrlf false</div><div class='add'>+          git config --global core.eol lf</div><div class='add'>+          git config --global advice.detachedHead 0</div><div class='add'>+          git config --global init.defaultBranch garbage</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+        with:</div><div class='add'>+          path: src</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: src/.downloaded-cache</div><div class='add'>+          key: downloaded-cache</div><div class='add'>+      - name: Set up Ruby &amp; MSYS2</div><div class='add'>+        uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0</div><div class='add'>+        with:</div><div class='add'>+          ruby-version: ${{ matrix.base_ruby }}</div><div class='add'>+      - name: set env</div><div class='add'>+        run: |</div><div class='add'>+          echo "GNUMAKEFLAGS=-j$((2 * NUMBER_OF_PROCESSORS))" &gt;&gt; $GITHUB_ENV</div><div class='add'>+</div><div class='add'>+      - name: where check</div><div class='add'>+        run: |</div><div class='add'>+          # show where</div><div class='add'>+          mv /c/Windows/System32/libcrypto-1_1-x64.dll /c/Windows/System32/libcrypto-1_1-x64.dll_</div><div class='add'>+          mv /c/Windows/System32/libssl-1_1-x64.dll    /c/Windows/System32/libssl-1_1-x64.dll_</div><div class='add'>+          result=true</div><div class='add'>+          for e in gcc.exe ragel.exe make.exe bison.exe libcrypto-1_1-x64.dll libssl-1_1-x64.dll; do</div><div class='add'>+            echo '##['group']'$'\033[93m'$e$'\033[m'</div><div class='add'>+            where $e || result=false</div><div class='add'>+            echo '##['endgroup']'</div><div class='add'>+          done</div><div class='add'>+          $result</div><div class='add'>+</div><div class='add'>+      - name: version check</div><div class='add'>+        run: |</div><div class='add'>+          # show version</div><div class='add'>+          result=true</div><div class='add'>+          for e in gcc ragel make bison "openssl version"; do</div><div class='add'>+            case "$e" in *" "*) ;; *) e="$e --version";; esac</div><div class='add'>+            echo '##['group']'$'\033[93m'$e$'\033[m'</div><div class='add'>+            $e || result=false</div><div class='add'>+            echo '##['endgroup']'</div><div class='add'>+          done</div><div class='add'>+          $result</div><div class='add'>+</div><div class='add'>+      - name: autogen</div><div class='add'>+        run: |</div><div class='add'>+          ./autogen.sh</div><div class='add'>+        working-directory: src</div><div class='add'>+</div><div class='add'>+      - name: configure</div><div class='add'>+        run: &gt;</div><div class='add'>+          ../src/configure --disable-install-doc --prefix=/.</div><div class='add'>+          --build=$CHOST --host=$CHOST --target=$CHOST</div><div class='add'>+</div><div class='add'>+      - name: update</div><div class='add'>+        run: |</div><div class='add'>+          make incs</div><div class='add'>+</div><div class='add'>+      - name: download gems</div><div class='add'>+        run: |</div><div class='add'>+          make update-gems</div><div class='add'>+</div><div class='add'>+      - name: make all</div><div class='add'>+        timeout-minutes: 30</div><div class='add'>+        run: |</div><div class='add'>+          make</div><div class='add'>+</div><div class='add'>+      - run: make leaked-globals</div><div class='add'>+</div><div class='add'>+      - name: make install</div><div class='add'>+        run: |</div><div class='add'>+          make DESTDIR=../install install-nodoc</div><div class='add'>+</div><div class='add'>+      - name: test</div><div class='add'>+        timeout-minutes: 5</div><div class='add'>+        run: |</div><div class='add'>+          make test</div><div class='add'>+        if: ${{matrix.test_task == 'check' || matrix.test_task == 'test'}}</div><div class='add'>+</div><div class='add'>+      - name: test-all</div><div class='add'>+        timeout-minutes: 45</div><div class='add'>+        run: |</div><div class='add'>+          # Actions uses UTF8, causes test failures, similar to normal OS setup</div><div class='add'>+          chcp.com 437</div><div class='add'>+          make ${{ StartsWith(matrix.test_task, 'test/') &amp;&amp; matrix.test_task || 'test-all' }}</div><div class='add'>+        env:</div><div class='add'>+          RUBY_TESTOPTS: &gt;-</div><div class='add'>+            --retry --job-status=normal --show-skip --timeout-scale=1.5</div><div class='add'>+            ${{ matrix.test-all-opts }}</div><div class='add'>+          BUNDLER_VERSION:</div><div class='add'>+        if: ${{matrix.test_task == 'check' || matrix.test_task == 'test-all' || StartsWith(matrix.test_task, 'test/')}}</div><div class='add'>+</div><div class='add'>+      - name: test-spec</div><div class='add'>+        timeout-minutes: 10</div><div class='add'>+        run: |</div><div class='add'>+          make ${{ StartsWith(matrix.test_task, 'spec/') &amp;&amp; matrix.test_task || 'test-spec' }}</div><div class='add'>+        if: ${{matrix.test_task == 'check' || matrix.test_task == 'test-spec' || StartsWith(matrix.test_task, 'spec/')}}</div><div class='add'>+</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ github.workflow }} ${{ matrix.msystem }} / ${{ matrix.test_task }}",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='add'>+</div><div class='add'>+defaults:</div><div class='add'>+  run:</div><div class='add'>+    working-directory: build</div><div class='add'>+    shell: sh</div><div class='head'>diff --git a/.github/workflows/mjit-bindgen.yml b/.github/workflows/mjit-bindgen.yml<br/>new file mode 100644<br/>index 0000000000..26f8a1b2aa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/mjit-bindgen.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/mjit-bindgen.yml</a></div><div class='hunk'>@@ -0,0 +1,104 @@</div><div class='add'>+name: MJIT bindgen</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  merge_group:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  make:</div><div class='add'>+    strategy:</div><div class='add'>+      matrix:</div><div class='add'>+        include:</div><div class='add'>+          - task: mjit-bindgen</div><div class='add'>+      fail-fast: false</div><div class='add'>+    runs-on: ubuntu-22.04</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') }}</div><div class='add'>+    steps:</div><div class='add'>+      - run: mkdir build</div><div class='add'>+        working-directory:</div><div class='add'>+      - name: Set ENV</div><div class='add'>+        run: |</div><div class='add'>+          echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" &gt;&gt; $GITHUB_ENV</div><div class='add'>+      - name: Install libraries</div><div class='add'>+        run: |</div><div class='add'>+          set -x</div><div class='add'>+          sudo apt-get update -q || :</div><div class='add'>+          sudo apt-get install --no-install-recommends -q -y \</div><div class='add'>+          build-essential \</div><div class='add'>+          libssl-dev libyaml-dev libreadline6-dev \</div><div class='add'>+          zlib1g-dev libncurses5-dev libffi-dev \</div><div class='add'>+          libclang1-14 \</div><div class='add'>+          bison autoconf</div><div class='add'>+          sudo apt-get install -q -y pkg-config || :</div><div class='add'>+      - name: Set up Ruby</div><div class='add'>+        uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0</div><div class='add'>+        with:</div><div class='add'>+          ruby-version: '3.1'</div><div class='add'>+      - name: git config</div><div class='add'>+        run: |</div><div class='add'>+          git config --global advice.detachedHead 0</div><div class='add'>+          git config --global init.defaultBranch garbage</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+        with:</div><div class='add'>+          path: src</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: src/.downloaded-cache</div><div class='add'>+          key: downloaded-cache</div><div class='add'>+      - name: Fixed world writable dirs</div><div class='add'>+        run: |</div><div class='add'>+          chmod -v go-w $HOME $HOME/.config</div><div class='add'>+          sudo chmod -R go-w /usr/share</div><div class='add'>+          sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :</div><div class='add'>+      - run: ./autogen.sh</div><div class='add'>+        working-directory: src</div><div class='add'>+      - name: Run configure</div><div class='add'>+        run: ../src/configure -C --disable-install-doc --prefix=$(pwd)/install --enable-yjit=dev_nodebug</div><div class='add'>+      - run: make incs</div><div class='add'>+      - run: make</div><div class='add'>+      - run: make install</div><div class='add'>+      - run: make ${{ matrix.task }}</div><div class='add'>+      - run: git diff --exit-code</div><div class='add'>+        working-directory: src</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ matrix.os }} / ${{ matrix.test_task }}${{ matrix.configure }}",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='add'>+</div><div class='add'>+defaults:</div><div class='add'>+  run:</div><div class='add'>+    working-directory: build</div><div class='head'>diff --git a/.github/workflows/mjit.yml b/.github/workflows/mjit.yml<br/>new file mode 100644<br/>index 0000000000..6f7181489a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/mjit.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/mjit.yml</a></div><div class='hunk'>@@ -0,0 +1,113 @@</div><div class='add'>+name: MJIT</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+      - '**.[1-8]'</div><div class='add'>+      - '**.ronn'</div><div class='add'>+  merge_group:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+      - '**.[1-8]'</div><div class='add'>+      - '**.ronn'</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  make:</div><div class='add'>+    strategy:</div><div class='add'>+      matrix:</div><div class='add'>+        test_task: [check] # to make job names consistent</div><div class='add'>+        mjit_opts: [--mjit-wait]</div><div class='add'>+      fail-fast: false</div><div class='add'>+    runs-on: ubuntu-latest</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') }}</div><div class='add'>+    env:</div><div class='add'>+      TESTOPTS: '-q --tty=no'</div><div class='add'>+      RUN_OPTS: '--disable-gems ${{ matrix.mjit_opts }} --mjit-debug=-ggdb3'</div><div class='add'>+      GITPULLOPTIONS: --no-tags origin ${{github.ref}}</div><div class='add'>+    steps:</div><div class='add'>+      - run: mkdir build</div><div class='add'>+        working-directory:</div><div class='add'>+      - name: Install libraries</div><div class='add'>+        run: |</div><div class='add'>+          set -x</div><div class='add'>+          sudo apt-get update -q || :</div><div class='add'>+          sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby</div><div class='add'>+      - name: git config</div><div class='add'>+        run: |</div><div class='add'>+          git config --global advice.detachedHead 0</div><div class='add'>+          git config --global init.defaultBranch garbage</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+        with:</div><div class='add'>+          path: src</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: src/.downloaded-cache</div><div class='add'>+          key: downloaded-cache</div><div class='add'>+      - name: Fixed world writable dirs</div><div class='add'>+        run: |</div><div class='add'>+          chmod -v go-w $HOME $HOME/.config</div><div class='add'>+          sudo chmod -R go-w /usr/share</div><div class='add'>+          sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :</div><div class='add'>+      - name: Set ENV</div><div class='add'>+        run: |</div><div class='add'>+          echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" &gt;&gt; $GITHUB_ENV</div><div class='add'>+      - run: ./autogen.sh</div><div class='add'>+        working-directory: src</div><div class='add'>+      - name: Run configure</div><div class='add'>+        run: ../src/configure -C --disable-install-doc cppflags=-DVM_CHECK_MODE</div><div class='add'>+      - run: make incs</div><div class='add'>+      - run: make</div><div class='add'>+      - run: sudo make -s install</div><div class='add'>+      - name: Run test</div><div class='add'>+        run: |</div><div class='add'>+          unset GNUMAKEFLAGS</div><div class='add'>+          make -s test RUN_OPTS="$RUN_OPTS"</div><div class='add'>+        timeout-minutes: 60</div><div class='add'>+      # - name: Run test-all</div><div class='add'>+      #   run: |</div><div class='add'>+      #     ulimit -c unlimited</div><div class='add'>+      #     make -s test-all RUN_OPTS="$RUN_OPTS"</div><div class='add'>+      #   timeout-minutes: 60</div><div class='add'>+      - name: Run test-spec</div><div class='add'>+        run: |</div><div class='add'>+          unset GNUMAKEFLAGS</div><div class='add'>+          make -s test-spec RUN_OPTS="$RUN_OPTS"</div><div class='add'>+        timeout-minutes: 60</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ github.workflow }} / ${{ matrix.test_task }} ${{ matrix.mjit_opts }}",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='add'>+</div><div class='add'>+defaults:</div><div class='add'>+  run:</div><div class='add'>+    working-directory: build</div><div class='head'>diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml<br/>new file mode 100644<br/>index 0000000000..5d4474d978<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/publish.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/publish.yml</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+name: Start release workflow</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    tags:</div><div class='add'>+      - '*'</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  notify:</div><div class='add'>+    runs-on: ubuntu-latest</div><div class='add'>+    steps:</div><div class='add'>+      - name: Build release package</div><div class='add'>+        run: |</div><div class='add'>+          curl -L -X POST \</div><div class='add'>+            -H "Authorization: Bearer ${{ secrets.MATZBOT_GITHUB_WORKFLOW_TOKEN }}" \</div><div class='add'>+            -H "Accept: application/vnd.github+json" \</div><div class='add'>+            -H "X-GitHub-Api-Version: 2022-11-28" \</div><div class='add'>+            https://api.github.com/repos/ruby/actions/dispatches \</div><div class='add'>+            -d '{"event_type": "${{ github.ref }}"}'</div><div class='head'>diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml<br/>new file mode 100644<br/>index 0000000000..c12a95362d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/scorecards.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/scorecards.yml</a></div><div class='hunk'>@@ -0,0 +1,72 @@</div><div class='add'>+# This workflow uses actions that are not certified by GitHub. They are provided</div><div class='add'>+# by a third-party and are governed by separate terms of service, privacy</div><div class='add'>+# policy, and support documentation.</div><div class='add'>+</div><div class='add'>+name: Scorecards supply-chain security</div><div class='add'>+on:</div><div class='add'>+  # For Branch-Protection check. Only the default branch is supported. See</div><div class='add'>+  # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection</div><div class='add'>+  branch_protection_rule:</div><div class='add'>+  # To guarantee Maintained check is occasionally updated. See</div><div class='add'>+  # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained</div><div class='add'>+  schedule:</div><div class='add'>+    - cron: '22 4 * * 2'</div><div class='add'>+  push:</div><div class='add'>+    branches: [ "master" ]</div><div class='add'>+</div><div class='add'>+# Declare default permissions as read only.</div><div class='add'>+permissions: read-all</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  analysis:</div><div class='add'>+    name: Scorecards analysis</div><div class='add'>+    runs-on: ubuntu-latest</div><div class='add'>+    permissions:</div><div class='add'>+      # Needed to upload the results to code-scanning dashboard.</div><div class='add'>+      security-events: write</div><div class='add'>+      # Needed to publish results and get a badge (see publish_results below).</div><div class='add'>+      id-token: write</div><div class='add'>+      # Uncomment the permissions below if installing in a private repository.</div><div class='add'>+      # contents: read</div><div class='add'>+      # actions: read</div><div class='add'>+</div><div class='add'>+    steps:</div><div class='add'>+      - name: "Checkout code"</div><div class='add'>+        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+        with:</div><div class='add'>+          persist-credentials: false</div><div class='add'>+</div><div class='add'>+      - name: "Run analysis"</div><div class='add'>+        uses: ossf/scorecard-action@ea651e62978af7915d09fe2e282747c798bf2dab # v2.4.1</div><div class='add'>+        with:</div><div class='add'>+          results_file: results.sarif</div><div class='add'>+          results_format: sarif</div><div class='add'>+          # (Optional) Read-only PAT token. Uncomment the `repo_token` line below if:</div><div class='add'>+          # - you want to enable the Branch-Protection check on a *public* repository, or</div><div class='add'>+          # - you are installing Scorecards on a *private* repository</div><div class='add'>+          # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.</div><div class='add'>+          repo_token: ${{ secrets.SCORECARD_READ_TOKEN }}</div><div class='add'>+</div><div class='add'>+          # Public repositories:</div><div class='add'>+          #   - Publish results to OpenSSF REST API for easy access by consumers</div><div class='add'>+          #   - Allows the repository to include the Scorecard badge.</div><div class='add'>+          #   - See https://github.com/ossf/scorecard-action#publishing-results.</div><div class='add'>+          # For private repositories:</div><div class='add'>+          #   - `publish_results` will always be set to `false`, regardless</div><div class='add'>+          #     of the value entered here.</div><div class='add'>+          publish_results: true</div><div class='add'>+</div><div class='add'>+      # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF</div><div class='add'>+      # format to the repository Actions tab.</div><div class='add'>+      - name: "Upload artifact"</div><div class='add'>+        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2</div><div class='add'>+        with:</div><div class='add'>+          name: SARIF file</div><div class='add'>+          path: results.sarif</div><div class='add'>+          retention-days: 5</div><div class='add'>+</div><div class='add'>+      # Upload the results to GitHub's code scanning dashboard.</div><div class='add'>+      - name: "Upload to code-scanning"</div><div class='add'>+        uses: github/codeql-action/upload-sarif@959cbb7472c4d4ad70cdfe6f4976053fe48ab394 # v2.1.27</div><div class='add'>+        with:</div><div class='add'>+          sarif_file: results.sarif</div><div class='head'>diff --git a/.github/workflows/spec_guards.yml b/.github/workflows/spec_guards.yml<br/>new file mode 100644<br/>index 0000000000..4521195a2b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/spec_guards.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/spec_guards.yml</a></div><div class='hunk'>@@ -0,0 +1,71 @@</div><div class='add'>+name: Rubyspec Version Guards Check</div><div class='add'>+</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths:</div><div class='add'>+      - 'spec/**'</div><div class='add'>+      - '!spec/*.md'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths:</div><div class='add'>+      - 'spec/**'</div><div class='add'>+      - '!spec/*.md'</div><div class='add'>+  merge_group:</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  rubyspec:</div><div class='add'>+    name: Rubyspec</div><div class='add'>+</div><div class='add'>+    runs-on: ubuntu-22.04</div><div class='add'>+</div><div class='add'>+    if: &gt;-</div><div class='add'>+      ${{!(false</div><div class='add'>+      || contains(github.event.head_commit.message, '[DOC]')</div><div class='add'>+      || contains(github.event.head_commit.message, 'Document')</div><div class='add'>+      || contains(github.event.pull_request.title, '[DOC]')</div><div class='add'>+      || contains(github.event.pull_request.title, 'Document')</div><div class='add'>+      || contains(github.event.pull_request.labels.*.name, 'Document')</div><div class='add'>+      || (github.event_name == 'push' &amp;&amp; github.actor == 'dependabot[bot]')</div><div class='add'>+      )}}</div><div class='add'>+</div><div class='add'>+    strategy:</div><div class='add'>+      matrix:</div><div class='add'>+        # Specs from ruby/spec should still run on all supported Ruby versions.</div><div class='add'>+        # This also ensures the needed ruby_version_is guards are there, see spec/README.md.</div><div class='add'>+        ruby:</div><div class='add'>+          - ruby-3.1</div><div class='add'>+          - ruby-3.2</div><div class='add'>+</div><div class='add'>+    steps:</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+</div><div class='add'>+      - uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0</div><div class='add'>+        with:</div><div class='add'>+          ruby-version: ${{ matrix.ruby }}</div><div class='add'>+          bundler: none</div><div class='add'>+</div><div class='add'>+      - run: gem install webrick</div><div class='add'>+</div><div class='add'>+      - run: ruby ../mspec/bin/mspec</div><div class='add'>+        working-directory: spec/ruby</div><div class='add'>+        env:</div><div class='add'>+          CHECK_LEAKS: true</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ github.workflow }} / rubyspec @ ${{ matrix.ruby }}",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() }}</div><div class='head'>diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml<br/>new file mode 100644<br/>index 0000000000..4fbca1170e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/ubuntu.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/ubuntu.yml</a></div><div class='hunk'>@@ -0,0 +1,146 @@</div><div class='add'>+name: Ubuntu</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  merge_group:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  make:</div><div class='add'>+    strategy:</div><div class='add'>+      matrix:</div><div class='add'>+        # main variables included in the job name</div><div class='add'>+        test_task: [check]</div><div class='add'>+        configure: [cppflags=-DRUBY_DEBUG] # default to use more assertions</div><div class='add'>+        arch: ['']</div><div class='add'>+        # specify all jobs with `include` to avoid testing duplicated things</div><div class='add'>+        include:</div><div class='add'>+          - test_task: check</div><div class='add'>+          - test_task: check</div><div class='add'>+            arch: i686</div><div class='add'>+            configure: '' # test without -DRUBY_DEBUG as well</div><div class='add'>+          - test_task: check</div><div class='add'>+            configure: "--enable-shared --enable-load-relative"</div><div class='add'>+          - test_task: test-all TESTS=--repeat-count=2</div><div class='add'>+          - test_task: test-bundler-parallel</div><div class='add'>+          - test_task: test-bundled-gems</div><div class='add'>+      fail-fast: false</div><div class='add'>+    env:</div><div class='add'>+      GITPULLOPTIONS: --no-tags origin ${{github.ref}}</div><div class='add'>+      RUBY_DEBUG: ci</div><div class='add'>+      SETARCH: ${{ matrix.arch &amp;&amp; format('setarch {0}', matrix.arch) }}</div><div class='add'>+    runs-on: ubuntu-22.04</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') }}</div><div class='add'>+    steps:</div><div class='add'>+      - run: mkdir build</div><div class='add'>+        working-directory:</div><div class='add'>+      - name: Set ENV</div><div class='add'>+        run: |</div><div class='add'>+          echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" &gt;&gt; $GITHUB_ENV</div><div class='add'>+      - name: Install libraries</div><div class='add'>+        env:</div><div class='add'>+          arch: ${{matrix.arch}}</div><div class='add'>+        run: |</div><div class='add'>+          set -x</div><div class='add'>+          arch=${arch:+:${arch/i[3-6]86/i386}}</div><div class='add'>+          ${arch:+sudo dpkg --add-architecture ${arch#:}}</div><div class='add'>+          sudo apt-get update -q || :</div><div class='add'>+          sudo apt-get install --no-install-recommends -q -y \</div><div class='add'>+          ${arch:+cross}build-essential${arch/:/-} \</div><div class='add'>+          libssl-dev${arch} libyaml-dev${arch} libreadline6-dev${arch} \</div><div class='add'>+          zlib1g-dev${arch} libncurses5-dev${arch} libffi-dev${arch} \</div><div class='add'>+          bison autoconf ruby</div><div class='add'>+          sudo apt-get install -q -y pkg-config${arch} || :</div><div class='add'>+      - name: git config</div><div class='add'>+        run: |</div><div class='add'>+          git config --global advice.detachedHead 0</div><div class='add'>+          git config --global init.defaultBranch garbage</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+        with:</div><div class='add'>+          path: src</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: src/.downloaded-cache</div><div class='add'>+          key: downloaded-cache</div><div class='add'>+      - name: Fixed world writable dirs</div><div class='add'>+        run: |</div><div class='add'>+          chmod -v go-w $HOME $HOME/.config</div><div class='add'>+          sudo chmod -R go-w /usr/share</div><div class='add'>+          sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :</div><div class='add'>+      - run: ./autogen.sh</div><div class='add'>+        working-directory: src</div><div class='add'>+      - name: Run configure</div><div class='add'>+        env:</div><div class='add'>+          arch: ${{matrix.arch}}</div><div class='add'>+        run: &gt;-</div><div class='add'>+          $SETARCH ../src/configure -C --disable-install-doc ${{ matrix.configure }}</div><div class='add'>+          ${arch:+--target=$arch-$OSTYPE --host=$arch-$OSTYPE}</div><div class='add'>+      - run: $SETARCH make incs</div><div class='add'>+      - run: $SETARCH make prepare-gems</div><div class='add'>+        if: ${{ matrix.test_task == 'test-bundled-gems' }}</div><div class='add'>+      - run: $SETARCH make</div><div class='add'>+      - run: $SETARCH make leaked-globals</div><div class='add'>+        if: ${{ matrix.test_task == 'check' }}</div><div class='add'>+      - name: Create dummy files in build dir</div><div class='add'>+        run: |</div><div class='add'>+          $SETARCH ./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'</div><div class='add'>+        if: ${{ matrix.test_task == 'check' }}</div><div class='add'>+      - name: make ${{ matrix.test_task }}</div><div class='add'>+        run: |</div><div class='add'>+          $SETARCH make -s ${{ matrix.test_task }} ${TESTS:+TESTS=`echo "$TESTS" | sed 's| |$$/ -n!/|g;s|^|-n!/|;s|$|$$/|'`}</div><div class='add'>+        timeout-minutes: 40</div><div class='add'>+        env:</div><div class='add'>+          RUBY_TESTOPTS: "-q --tty=no"</div><div class='add'>+          TESTS: ${{ matrix.test_task == 'check' &amp;&amp; matrix.skipped_tests || '' }}</div><div class='add'>+          TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""</div><div class='add'>+          PRECHECK_BUNDLED_GEMS: "no"</div><div class='add'>+      - name: make skipped tests</div><div class='add'>+        run: |</div><div class='add'>+          $SETARCH make -s test-all TESTS=`echo "$TESTS" | sed 's| |$$/ -n/|g;s|^|-n/|;s|$|$$/|'`</div><div class='add'>+        env:</div><div class='add'>+          GNUMAKEFLAGS: ""</div><div class='add'>+          RUBY_TESTOPTS: "-v --tty=no"</div><div class='add'>+          TESTS: ${{ matrix.skipped_tests }}</div><div class='add'>+        if: ${{ matrix.test_task == 'check' &amp;&amp; matrix.skipped_tests != '' }}</div><div class='add'>+        continue-on-error: ${{ matrix.continue-on-skipped_tests || false }}</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ github.workflow }} / ${{ matrix.test_task }} ${{ matrix.configure }}${{ matrix.arch }}",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='add'>+</div><div class='add'>+defaults:</div><div class='add'>+  run:</div><div class='add'>+    working-directory: build</div><div class='head'>diff --git a/.github/workflows/wasm.yml b/.github/workflows/wasm.yml<br/>new file mode 100644<br/>index 0000000000..27920b5821<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/wasm.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/wasm.yml</a></div><div class='hunk'>@@ -0,0 +1,146 @@</div><div class='add'>+name: WebAssembly</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  merge_group:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:  # added using https://github.com/step-security/secure-workflows</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  make:</div><div class='add'>+    strategy:</div><div class='add'>+      matrix:</div><div class='add'>+        entry:</div><div class='add'>+#         # wasmtime can't compile non-optimized Asyncified binary due to locals explosion</div><div class='add'>+#         - { name: O0-debuginfo, optflags: "-O0", debugflags: "-g", wasmoptflags: "-O1" }</div><div class='add'>+#         - { name: O1,           optflags: "-O1", debugflags: ""  , wasmoptflags: "-O1" }</div><div class='add'>+          - { name: O2,           optflags: "-O2", debugflags: ""  , wasmoptflags: "-O2" }</div><div class='add'>+#         - { name: O3,           optflags: "-O3", debugflags: ""  , wasmoptflags: "-O3" }</div><div class='add'>+#         # -O4 is equivalent to -O3 in clang, but it's different in wasm-opt</div><div class='add'>+#         - { name: O4,           optflags: "-O3", debugflags: ""  , wasmoptflags: "-O4" }</div><div class='add'>+#         - { name: Oz,           optflags: "-Oz", debugflags: ""  , wasmoptflags: "-Oz" }</div><div class='add'>+      fail-fast: false</div><div class='add'>+    env:</div><div class='add'>+      RUBY_TESTOPTS: '-q --tty=no'</div><div class='add'>+      GITPULLOPTIONS: --no-tags origin ${{github.ref}}</div><div class='add'>+      WASI_SDK_VERSION_MAJOR: 14</div><div class='add'>+      WASI_SDK_VERSION_MINOR: 0</div><div class='add'>+      BINARYEN_VERSION: 109</div><div class='add'>+      WASMTIME_VERSION: v0.33.0</div><div class='add'>+    runs-on: ubuntu-22.04</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') }}</div><div class='add'>+    steps:</div><div class='add'>+      - run: mkdir build</div><div class='add'>+        working-directory:</div><div class='add'>+      - name: git config</div><div class='add'>+        run: |</div><div class='add'>+          git config --global advice.detachedHead 0</div><div class='add'>+          git config --global init.defaultBranch garbage</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+        with:</div><div class='add'>+          path: src</div><div class='add'>+      - name: Install libraries</div><div class='add'>+        run: |</div><div class='add'>+          set -ex</div><div class='add'>+          sudo apt-get update -q || :</div><div class='add'>+          sudo apt-get install --no-install-recommends -q -y ruby bison make autoconf git wget</div><div class='add'>+</div><div class='add'>+          wasi_sdk_deb="wasi-sdk_${WASI_SDK_VERSION_MAJOR}.${WASI_SDK_VERSION_MINOR}_amd64.deb"</div><div class='add'>+          wget "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION_MAJOR}/${wasi_sdk_deb}"</div><div class='add'>+          sudo dpkg -i "$wasi_sdk_deb"</div><div class='add'>+          rm -f "$wasi_sdk_deb"</div><div class='add'>+</div><div class='add'>+          mkdir build-sdk</div><div class='add'>+          pushd build-sdk</div><div class='add'>+</div><div class='add'>+          wasmtime_url="https://github.com/bytecodealliance/wasmtime/releases/download/${WASMTIME_VERSION}/wasmtime-${WASMTIME_VERSION}-x86_64-linux.tar.xz"</div><div class='add'>+          wget -O - "$wasmtime_url" | tar xJf -</div><div class='add'>+          sudo ln -fs "$PWD/wasmtime-${WASMTIME_VERSION}-x86_64-linux/wasmtime" /usr/local/bin/wasmtime</div><div class='add'>+</div><div class='add'>+          binaryen_tarball="binaryen-version_${BINARYEN_VERSION}-x86_64-linux.tar.gz"</div><div class='add'>+          binaryen_url="https://github.com/WebAssembly/binaryen/releases/download/version_${BINARYEN_VERSION}/${binaryen_tarball}"</div><div class='add'>+          wget -O - "$binaryen_url" | tar xfz -</div><div class='add'>+          sudo ln -fs "$PWD/binaryen-version_${BINARYEN_VERSION}/bin/wasm-opt" /usr/local/bin/wasm-opt</div><div class='add'>+        working-directory: src</div><div class='add'>+      - name: Set ENV</div><div class='add'>+        run: |</div><div class='add'>+          echo "MAKEFLAGS=-j$((1 + $(sysctl -n hw.activecpu)))" &gt;&gt; $GITHUB_ENV</div><div class='add'>+          echo "WASI_SDK_PATH=/opt/wasi-sdk" &gt;&gt; $GITHUB_ENV</div><div class='add'>+      - run: ./autogen.sh</div><div class='add'>+        working-directory: src</div><div class='add'>+</div><div class='add'>+      - uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0</div><div class='add'>+        with:</div><div class='add'>+          ruby-version: '3.0'</div><div class='add'>+          bundler: none</div><div class='add'>+</div><div class='add'>+      - name: Download config.guess with wasi version</div><div class='add'>+        run: |</div><div class='add'>+          rm tool/config.guess tool/config.sub</div><div class='add'>+          ruby tool/downloader.rb -d tool -e gnu config.guess config.sub</div><div class='add'>+        working-directory: src</div><div class='add'>+</div><div class='add'>+      - name: Run configure</div><div class='add'>+        run: |</div><div class='add'>+          ../src/configure \</div><div class='add'>+            --host wasm32-unknown-wasi \</div><div class='add'>+            --with-static-linked-ext \</div><div class='add'>+            LDFLAGS=" \</div><div class='add'>+              -Xlinker --stack-first \</div><div class='add'>+              -Xlinker -z -Xlinker stack-size=16777216 \</div><div class='add'>+            " \</div><div class='add'>+            optflags="${{ matrix.entry.optflags }}" \</div><div class='add'>+            debugflags="${{ matrix.entry.debugflags }}" \</div><div class='add'>+            wasmoptflags="${{ matrix.entry.wasmoptflags }} ${{ matrix.entry.debugflags }}"</div><div class='add'>+</div><div class='add'>+      # miniruby may not be built when cross-compling</div><div class='add'>+      - run: make mini ruby</div><div class='add'>+      - name: Run basictest</div><div class='add'>+        run: wasmtime run ./../build/miniruby --mapdir /::./ -- basictest/test.rb</div><div class='add'>+        working-directory: src</div><div class='add'>+      - name: Run bootstraptest (no thread)</div><div class='add'>+        run: |</div><div class='add'>+          NO_THREAD_TESTS="$(grep -L Thread -R ./bootstraptest | awk -F/ '{ print $NF }' | uniq | sed -n 's/test_\(.*\).rb/\1/p' | paste -s -d, -)"</div><div class='add'>+          ruby ./bootstraptest/runner.rb --ruby="$(which wasmtime) run $PWD/../build/ruby --mapdir /::./ -- " --verbose "--sets=$NO_THREAD_TESTS"</div><div class='add'>+        working-directory: src</div><div class='add'>+</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ github.workflow }} / ${{ matrix.name }}",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='add'>+</div><div class='add'>+defaults:</div><div class='add'>+  run:</div><div class='add'>+    working-directory: build</div><div class='head'>diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml<br/>new file mode 100644<br/>index 0000000000..c2bd4881c2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/windows.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/windows.yml</a></div><div class='hunk'>@@ -0,0 +1,149 @@</div><div class='add'>+name: Windows</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  merge_group:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  make:</div><div class='add'>+    strategy:</div><div class='add'>+      matrix:</div><div class='add'>+        include:</div><div class='add'>+          - vs: 2022</div><div class='add'>+            vcvers: -vcvars_ver=14.2</div><div class='add'>+      fail-fast: false</div><div class='add'>+    runs-on: windows-${{ matrix.vs }}</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') }}</div><div class='add'>+    name: VisualStudio ${{ matrix.vs }}</div><div class='add'>+    env:</div><div class='add'>+      GITPULLOPTIONS: --no-tags origin ${{github.ref}}</div><div class='add'>+      PATCH: C:\msys64\usr\bin\patch.exe</div><div class='add'>+      OS_VER: windows-${{ matrix.vs }}</div><div class='add'>+    steps:</div><div class='add'>+      - run: md build</div><div class='add'>+        working-directory:</div><div class='add'>+      - uses: msys2/setup-msys2@61f9e5e925871ba6c9e3e8da24ede83ea27fa91f # v2.27.0</div><div class='add'>+        id: setup-msys2</div><div class='add'>+        with:</div><div class='add'>+          update: true</div><div class='add'>+          install: bison patch</div><div class='add'>+      - name: patch path</div><div class='add'>+        shell: msys2 {0}</div><div class='add'>+        run: echo PATCH=$(cygpath -wa $(command -v patch)) &gt;&gt; $GITHUB_ENV</div><div class='add'>+        if: ${{ steps.setup-msys2.outcome == 'success' }}</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: C:\vcpkg\installed</div><div class='add'>+          key: ${{ runner.os }}-vcpkg-installed-windows-${{ matrix.vs }}-${{ github.sha }}</div><div class='add'>+          restore-keys: |</div><div class='add'>+            ${{ runner.os }}-vcpkg-installed-windows-${{ matrix.vs }}-</div><div class='add'>+            ${{ runner.os }}-vcpkg-installed-windows-</div><div class='add'>+      - name: Install libraries with vcpkg</div><div class='add'>+        run: |</div><div class='add'>+          iex "&amp; {$(irm get.scoop.sh)} -RunAsAdmin"</div><div class='add'>+          Join-Path (Resolve-Path ~).Path "scoop\shims" &gt;&gt; $Env:GITHUB_PATH</div><div class='add'>+          scoop install cmake@3.31.6</div><div class='add'>+          vcpkg --triplet x64-windows install libffi libyaml openssl readline zlib</div><div class='add'>+        shell:</div><div class='add'>+          pwsh</div><div class='add'>+      - name: git config</div><div class='add'>+        run: |</div><div class='add'>+          git config --global core.autocrlf false</div><div class='add'>+          git config --global core.eol lf</div><div class='add'>+          git config --global advice.detachedHead 0</div><div class='add'>+          git config --global init.defaultBranch garbage</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+        with:</div><div class='add'>+          path: src</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: src/.downloaded-cache</div><div class='add'>+          key: downloaded-cache</div><div class='add'>+      - name: setup env</div><div class='add'>+        # %TEMP% is inconsistent with %TMP% and test-all expects they are consistent.</div><div class='add'>+        # https://github.com/actions/virtual-environments/issues/712#issuecomment-613004302</div><div class='add'>+        # msys2/setup-msys2 installs MSYS2 to D:/a/_temp/msys64/usr/bin</div><div class='add'>+        run: |</div><div class='add'>+          set Path=D:/a/_temp/msys64/usr/bin;%Path%</div><div class='add'>+          if not "%VCVARS%" == "" goto :vcset</div><div class='add'>+            set VCVARS="C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat"</div><div class='add'>+            if not exist %VCVARS% set VCVARS="C:\Program Files\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat"</div><div class='add'>+          :vcset</div><div class='add'>+          set | C:\msys64\usr\bin\sort &gt; old.env</div><div class='add'>+          call %VCVARS% ${{ matrix.vcvers || ''}}</div><div class='add'>+          set TMP=%USERPROFILE%\AppData\Local\Temp</div><div class='add'>+          set TEMP=%USERPROFILE%\AppData\Local\Temp</div><div class='add'>+          set /a TEST_JOBS=(15 * %NUMBER_OF_PROCESSORS% / 10) &gt; nul</div><div class='add'>+          set | C:\msys64\usr\bin\sort &gt; new.env</div><div class='add'>+          C:\msys64\usr\bin\comm -13 old.env new.env &gt;&gt; %GITHUB_ENV%</div><div class='add'>+          del *.env</div><div class='add'>+      - name: compiler version</div><div class='add'>+        run: cl</div><div class='add'>+      - name: link libraries</div><div class='add'>+        run: |</div><div class='add'>+          for %%I in (C:\vcpkg\installed\x64-windows\bin\*.dll) do (</div><div class='add'>+            if not %%~nI == readline mklink %%~nxI %%I</div><div class='add'>+          )</div><div class='add'>+          for %%I in (libcrypto-1_1-x64 libssl-1_1-x64) do (</div><div class='add'>+            ren c:\Windows\System32\%%I.dll %%I.dll_</div><div class='add'>+          )</div><div class='add'>+      - name: Configure</div><div class='add'>+        run: &gt;-</div><div class='add'>+          ../src/win32/configure.bat --disable-install-doc</div><div class='add'>+          --with-opt-dir=C:/vcpkg/installed/x64-windows</div><div class='add'>+      - run: nmake incs</div><div class='add'>+      - run: nmake extract-extlibs</div><div class='add'>+      - run: nmake</div><div class='add'>+        env:</div><div class='add'>+          YACC: bison.exe</div><div class='add'>+      - run: nmake test</div><div class='add'>+        timeout-minutes: 5</div><div class='add'>+      - run: nmake test-spec</div><div class='add'>+        timeout-minutes: 10</div><div class='add'>+      - run: nmake test-all</div><div class='add'>+        env:</div><div class='add'>+          RUBY_TESTOPTS: -j${{env.TEST_JOBS}} --job-status=normal</div><div class='add'>+        timeout-minutes: 60</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "VS${{ matrix.vs }} / ${{ matrix.test_task || 'check' }}",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='add'>+</div><div class='add'>+defaults:</div><div class='add'>+  run:</div><div class='add'>+    working-directory: build</div><div class='add'>+    shell: cmd</div><div class='head'>diff --git a/.github/workflows/yjit-ubuntu.yml b/.github/workflows/yjit-ubuntu.yml<br/>new file mode 100644<br/>index 0000000000..0b7b9046e9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.github/workflows/yjit-ubuntu.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.github/workflows/yjit-ubuntu.yml</a></div><div class='hunk'>@@ -0,0 +1,170 @@</div><div class='add'>+name: YJIT Ubuntu</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  pull_request:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+  merge_group:</div><div class='add'>+    paths-ignore:</div><div class='add'>+      - 'doc/**'</div><div class='add'>+      - '**/man'</div><div class='add'>+      - '**.md'</div><div class='add'>+      - '**.rdoc'</div><div class='add'>+      - '**/.document'</div><div class='add'>+</div><div class='add'>+concurrency:</div><div class='add'>+  group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') &amp;&amp; github.ref_name || github.sha }}</div><div class='add'>+  cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}</div><div class='add'>+</div><div class='add'>+permissions:</div><div class='add'>+  contents: read</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  cargo:</div><div class='add'>+    name: Rust cargo test</div><div class='add'>+    # GitHub Action's image seems to already contain a Rust 1.58.0.</div><div class='add'>+    runs-on: ubuntu-22.04</div><div class='add'>+    steps:</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+      # For now we can't run cargo test --offline because it complains about the</div><div class='add'>+      # capstone dependency, even though the dependency is optional</div><div class='add'>+      #- run: cargo test --offline</div><div class='add'>+      - run: RUST_BACKTRACE=1 cargo test</div><div class='add'>+        working-directory: yjit</div><div class='add'>+      # Also compile and test with all features enabled</div><div class='add'>+      - run: RUST_BACKTRACE=1 cargo test --all-features</div><div class='add'>+        working-directory: yjit</div><div class='add'>+      # Check that we can build in release mode too</div><div class='add'>+      - run: cargo build --release</div><div class='add'>+        working-directory: yjit</div><div class='add'>+  make:</div><div class='add'>+    strategy:</div><div class='add'>+      fail-fast: false</div><div class='add'>+      matrix:</div><div class='add'>+        include:</div><div class='add'>+          - test_task: 'yjit-bindgen'</div><div class='add'>+            hint: 'To fix: use patch in logs'</div><div class='add'>+            configure: '--with-gcc=clang-14 --enable-yjit=dev'</div><div class='add'>+            libclang_path: '/usr/lib/llvm-14/lib/libclang.so.1'</div><div class='add'>+</div><div class='add'>+          - test_task: "check"</div><div class='add'>+            # YJIT should be automatically built in release mode on x86-64 Linux with rustc present</div><div class='add'>+            #configure: "--enable-yjit RUSTC='rustc +1.58.0'"</div><div class='add'>+            configure: "RUSTC='rustc +1.58.0'"</div><div class='add'>+            rust_version: "1.58.0"</div><div class='add'>+</div><div class='add'>+          - test_task: "check"</div><div class='add'>+            configure: "--enable-yjit=dev"</div><div class='add'>+</div><div class='add'>+          - test_task: "check"</div><div class='add'>+            configure: "--enable-yjit=dev"</div><div class='add'>+            yjit_opts: "--yjit-call-threshold=1 --yjit-verify-ctx"</div><div class='add'>+</div><div class='add'>+          - test_task: "test-all TESTS=--repeat-count=2"</div><div class='add'>+            configure: "--enable-yjit=dev"</div><div class='add'>+</div><div class='add'>+          - test_task: "test-bundled-gems"</div><div class='add'>+            configure: "--enable-yjit=dev"</div><div class='add'>+</div><div class='add'>+          - test_task: "yjit-bench"</div><div class='add'>+            configure: "--enable-yjit=dev"</div><div class='add'>+            yjit_bench_opts: "--yjit-stats"</div><div class='add'>+    env:</div><div class='add'>+      GITPULLOPTIONS: --no-tags origin ${{github.ref}}</div><div class='add'>+      RUN_OPTS: ${{ matrix.yjit_opts }}</div><div class='add'>+      YJIT_BENCH_OPTS: ${{ matrix.yjit_bench_opts }}</div><div class='add'>+      RUBY_DEBUG: ci</div><div class='add'>+      BUNDLE_JOBS: 8 # for yjit-bench</div><div class='add'>+    runs-on: ubuntu-22.04</div><div class='add'>+    if: ${{ !contains(github.event.head_commit.message, '[DOC]') &amp;&amp; !contains(github.event.pull_request.labels.*.name, 'Documentation') }}</div><div class='add'>+    steps:</div><div class='add'>+      - run: mkdir build</div><div class='add'>+        working-directory:</div><div class='add'>+      - name: Install libraries</div><div class='add'>+        run: |</div><div class='add'>+          set -x</div><div class='add'>+          sudo apt-get update -q || :</div><div class='add'>+          sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby</div><div class='add'>+      - name: Install Rust</div><div class='add'>+        if: ${{ matrix.rust_version }}</div><div class='add'>+        run: rustup install ${{ matrix.rust_version }} --profile minimal</div><div class='add'>+      - name: git config</div><div class='add'>+        run: |</div><div class='add'>+          git config --global advice.detachedHead 0</div><div class='add'>+          git config --global init.defaultBranch garbage</div><div class='add'>+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2</div><div class='add'>+        with:</div><div class='add'>+          path: src</div><div class='add'>+      - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3</div><div class='add'>+        with:</div><div class='add'>+          path: src/.downloaded-cache</div><div class='add'>+          key: downloaded-cache</div><div class='add'>+      - name: Fixed world writable dirs</div><div class='add'>+        run: |</div><div class='add'>+          chmod -v go-w $HOME $HOME/.config</div><div class='add'>+          sudo chmod -R go-w /usr/share</div><div class='add'>+          sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :</div><div class='add'>+      - name: Set ENV</div><div class='add'>+        run: |</div><div class='add'>+          echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" &gt;&gt; $GITHUB_ENV</div><div class='add'>+      - run: ./autogen.sh</div><div class='add'>+        working-directory: src</div><div class='add'>+      - name: Run configure</div><div class='add'>+        run: ../src/configure -C --disable-install-doc --prefix=$(pwd)/install ${{ matrix.configure }}</div><div class='add'>+      - run: make incs</div><div class='add'>+      - run: make prepare-gems</div><div class='add'>+        if: ${{ matrix.test_task == 'test-bundled-gems' }}</div><div class='add'>+      - run: make -j</div><div class='add'>+      - run: make leaked-globals</div><div class='add'>+        if: ${{ matrix.test_task == 'check' }}</div><div class='add'>+      - name: Create dummy files in build dir</div><div class='add'>+        run: |</div><div class='add'>+          ./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'</div><div class='add'>+        if: ${{ matrix.test_task == 'check' }}</div><div class='add'>+      - name: Enable YJIT through ENV</div><div class='add'>+        run: echo "RUBY_YJIT_ENABLE=1" &gt;&gt; $GITHUB_ENV</div><div class='add'>+      # Check that the binary was built with YJIT</div><div class='add'>+      - name: Check YJIT enabled</div><div class='add'>+        run: ./miniruby --yjit -v | grep "+YJIT"</div><div class='add'>+      - name: make ${{ matrix.test_task }}</div><div class='add'>+        run: make -s -j ${{ matrix.test_task }} RUN_OPTS="$RUN_OPTS" YJIT_BENCH_OPTS="$YJIT_BENCH_OPTS"</div><div class='add'>+        timeout-minutes: 60</div><div class='add'>+        env:</div><div class='add'>+          RUBY_TESTOPTS: "-q --tty=no"</div><div class='add'>+          TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""</div><div class='add'>+          PRECHECK_BUNDLED_GEMS: "no"</div><div class='add'>+          LIBCLANG_PATH: ${{ matrix.libclang_path }}</div><div class='add'>+        continue-on-error: ${{ matrix.test_task == 'yjit-bench' }}</div><div class='add'>+      - name: Show ${{ github.event.pull_request.base.ref }} GitHub URL for yjit-bench comparison</div><div class='add'>+        run: echo "https://github.com/${BASE_REPO}/commit/${BASE_SHA}"</div><div class='add'>+        env:</div><div class='add'>+          BASE_REPO: ${{ github.event.pull_request.base.repo.full_name }}</div><div class='add'>+          BASE_SHA: ${{ github.event.pull_request.base.sha }}</div><div class='add'>+        if: ${{ matrix.test_task == 'yjit-bench' &amp;&amp; startsWith(github.event_name, 'pull') }}</div><div class='add'>+      - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1</div><div class='add'>+        with:</div><div class='add'>+          payload: |</div><div class='add'>+            {</div><div class='add'>+              "ci": "GitHub Actions",</div><div class='add'>+              "env": "${{ github.workflow }} / ${{ matrix.test_task }} ${{ matrix.configure }}",</div><div class='add'>+              "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",</div><div class='add'>+              "commit": "${{ github.sha }}",</div><div class='add'>+              "branch": "${{ github.ref_name }}"</div><div class='add'>+            }</div><div class='add'>+        env:</div><div class='add'>+          SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot</div><div class='add'>+        if: ${{ failure() &amp;&amp; github.event_name == 'push' }}</div><div class='add'>+</div><div class='add'>+defaults:</div><div class='add'>+  run:</div><div class='add'>+    working-directory: build</div><div class='head'>diff --git a/.gitignore b/.gitignore<br/>index 50bf27f28a..99d32a1825 100644<br/>--- a/<a href='/ruby.git/tree/.gitignore?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>.gitignore</a><br/>+++ b/<a href='/ruby.git/tree/.gitignore?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.gitignore</a></div><div class='hunk'>@@ -10,23 +10,26 @@</div><div class='ctx'> *.dylib</div><div class='ctx'> *.elc</div><div class='ctx'> *.i</div><div class='add'>+*.ii</div><div class='ctx'> *.inc</div><div class='ctx'> *.log</div><div class='ctx'> *.o</div><div class='add'>+*.o.tmp</div><div class='ctx'> *.obj</div><div class='ctx'> *.old</div><div class='ctx'> *.orig</div><div class='ctx'> *.pch</div><div class='ctx'> *.pdb</div><div class='add'>+*.rbinc</div><div class='ctx'> *.rej</div><div class='ctx'> *.s</div><div class='ctx'> *.sav</div><div class='ctx'> *.sl</div><div class='ctx'> *.so</div><div class='add'>+*.so.*</div><div class='ctx'> *.swp</div><div class='ctx'> *.yarb</div><div class='ctx'> *~</div><div class='del'>-.*-*</div><div class='ctx'> .*.list</div><div class='ctx'> .*.time</div><div class='ctx'> .DS_Store</div><div class='hunk'>@@ -36,6 +39,8 @@</div><div class='ctx'> .pc</div><div class='ctx'> .ppack</div><div class='ctx'> .svn</div><div class='add'>+.time</div><div class='add'>+.ruby-version</div><div class='ctx'> Makefile</div><div class='ctx'> cygruby*.def</div><div class='ctx'> extconf.h</div><div class='hunk'>@@ -44,6 +49,7 @@ y.tab.c</div><div class='ctx'> *.gcda</div><div class='ctx'> *.gcno</div><div class='ctx'> *.gcov</div><div class='add'>+*.vscode</div><div class='ctx'> lcov*.info</div><div class='ctx'> </div><div class='ctx'> # /</div><div class='hunk'>@@ -54,7 +60,11 @@ lcov*.info</div><div class='ctx'> /*.pc</div><div class='ctx'> /*.rc</div><div class='ctx'> /*_prelude.c</div><div class='add'>+/.downloaded-cache</div><div class='add'>+/.top-enc.mk</div><div class='add'>+/build*/</div><div class='ctx'> /COPYING.LIB</div><div class='add'>+/ChangeLog</div><div class='ctx'> /Doxyfile</div><div class='ctx'> /GNUmakefile</div><div class='ctx'> /README.atheos</div><div class='hunk'>@@ -112,14 +122,17 @@ lcov*.info</div><div class='ctx'> /rename2.h</div><div class='ctx'> /repack</div><div class='ctx'> /revision.h</div><div class='add'>+/revision.tmp</div><div class='ctx'> /riscos</div><div class='ctx'> /rubicon</div><div class='ctx'> /ruby</div><div class='ctx'> /ruby-runner</div><div class='ctx'> /ruby-runner.h</div><div class='ctx'> /ruby-man.rd.gz</div><div class='add'>+/rubyspec_temp</div><div class='ctx'> /run.gdb</div><div class='ctx'> /sizes.c</div><div class='add'>+/static-ruby</div><div class='ctx'> /test.rb</div><div class='ctx'> /test-coverage.dat</div><div class='ctx'> /tmp</div><div class='hunk'>@@ -130,6 +143,13 @@ lcov*.info</div><div class='ctx'> /web</div><div class='ctx'> /yasmdata.rb</div><div class='ctx'> </div><div class='add'>+# /bin/</div><div class='add'>+</div><div class='add'>+/bin/*.exe</div><div class='add'>+/bin/*.dll</div><div class='add'>+/bin/goruby</div><div class='add'>+/bin/ruby</div><div class='add'>+</div><div class='ctx'> # /benchmark/</div><div class='ctx'> /benchmark/bm_require.data</div><div class='ctx'> /benchmark/bmx_*.rb</div><div class='hunk'>@@ -144,30 +164,33 @@ lcov*.info</div><div class='ctx'> </div><div class='ctx'> # /coroutine/</div><div class='ctx'> !/coroutine/**/*.s</div><div class='del'>-/coroutine/**/.time</div><div class='ctx'> </div><div class='ctx'> # /enc/trans/</div><div class='ctx'> /enc/trans/*.c</div><div class='ctx'> /enc/trans/*.def</div><div class='ctx'> /enc/trans/*.exp</div><div class='ctx'> /enc/trans/*.lib</div><div class='del'>-/enc/trans/.time</div><div class='ctx'> </div><div class='ctx'> # /exe/</div><div class='ctx'> /exe/goruby</div><div class='ctx'> /exe/ruby</div><div class='del'>-/exe/.time</div><div class='ctx'> </div><div class='ctx'> # /ext/</div><div class='ctx'> /ext/extinit.c</div><div class='ctx'> /ext/configure-ext.mk</div><div class='ctx'> /ext/*/exts.mk</div><div class='ctx'> </div><div class='add'>+# /ext/-test-/cxxanyargs</div><div class='add'>+/ext/-test-/cxxanyargs/failure*.failed</div><div class='add'>+</div><div class='ctx'> # /ext/-test-/win32/dln/</div><div class='ctx'> /ext/-test-/win32/dln/dlntest.dll</div><div class='ctx'> /ext/-test-/win32/dln/dlntest.exp</div><div class='ctx'> /ext/-test-/win32/dln/dlntest.lib</div><div class='ctx'> </div><div class='add'>+# /ext/-test-/gems</div><div class='add'>+/ext/-test-/gems</div><div class='add'>+</div><div class='ctx'> # /ext/etc/</div><div class='ctx'> /ext/etc/constdefs.h</div><div class='ctx'> </div><div class='hunk'>@@ -180,6 +203,7 @@ lcov*.info</div><div class='ctx'> </div><div class='ctx'> # /ext/ripper/</div><div class='ctx'> /ext/ripper/eventids1.c</div><div class='add'>+/ext/ripper/.eventids2-check</div><div class='ctx'> /ext/ripper/eventids2table.c</div><div class='ctx'> /ext/ripper/ripper.*</div><div class='ctx'> /ext/ripper/ids1</div><div class='hunk'>@@ -195,6 +219,13 @@ lcov*.info</div><div class='ctx'> /gems/src</div><div class='ctx'> /gems/*-*</div><div class='ctx'> </div><div class='add'>+# /lib/</div><div class='add'>+/lib/ruby/[1-9]*.*</div><div class='add'>+/lib/ruby/vendor_ruby</div><div class='add'>+</div><div class='add'>+# /misc/</div><div class='add'>+/misc/**/__pycache__</div><div class='add'>+</div><div class='ctx'> # /spec/bundler</div><div class='ctx'> /.rspec_status</div><div class='ctx'> </div><div class='hunk'>@@ -204,9 +235,16 @@ lcov*.info</div><div class='ctx'> </div><div class='ctx'> # /win32/</div><div class='ctx'> /win32/*.ico</div><div class='del'>-/win32/.time</div><div class='ctx'> </div><div class='ctx'> # MJIT</div><div class='del'>-/rb_mjit_header.h</div><div class='del'>-/mjit_config.h</div><div class='ctx'> /include/ruby-*/*/rb_mjit_min_header-*.h</div><div class='add'>+/lib/ruby_vm/mjit/instruction.rb</div><div class='add'>+/mjit_config.h</div><div class='add'>+/rb_mjit_header.h</div><div class='add'>+</div><div class='add'>+# YJIT</div><div class='add'>+/yjit-bench</div><div class='add'>+/yjit_exit_locations.dump</div><div class='add'>+</div><div class='add'>+# /wasm/</div><div class='add'>+/wasm/tests/*.wasm</div><div class='head'>diff --git a/.indent.pro b/.indent.pro<br/>index 6a207a0554..1d61cbcad1 100644<br/>--- a/<a href='/ruby.git/tree/.indent.pro?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>.indent.pro</a><br/>+++ b/<a href='/ruby.git/tree/.indent.pro?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.indent.pro</a></div><div class='hunk'>@@ -2,12 +2,15 @@</div><div class='ctx'> -nbbb</div><div class='ctx'> -nbc</div><div class='ctx'> -br</div><div class='add'>+-brs</div><div class='ctx'> -nbs</div><div class='ctx'> -ncdb</div><div class='del'>--ce</div><div class='del'>--cli0.5</div><div class='add'>+-nce</div><div class='add'>+-cdw</div><div class='add'>+-cli2</div><div class='add'>+-cbi2</div><div class='ctx'> -ndj</div><div class='del'>--ei</div><div class='add'>+-ncs</div><div class='ctx'> -nfc1</div><div class='ctx'> -i4</div><div class='ctx'> -l120</div><div class='hunk'>@@ -16,6 +19,14 @@</div><div class='ctx'> -psl</div><div class='ctx'> -sc</div><div class='ctx'> -sob</div><div class='add'>+-sbi4</div><div class='add'>+-nut</div><div class='add'>+-par</div><div class='ctx'> </div><div class='ctx'> -TID</div><div class='ctx'> -TVALUE</div><div class='add'>+-Tst_data_t</div><div class='add'>+-Tst_index_t</div><div class='add'>+-Tst_table</div><div class='add'>+-Trb_data_type_t</div><div class='add'>+-TFILE</div><div class='head'>diff --git a/.rdoc_options b/.rdoc_options<br/>new file mode 100644<br/>index 0000000000..760507c7a2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.rdoc_options?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.rdoc_options</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+---</div><div class='add'>+page_dir: doc</div><div class='add'>+main_page: README.md</div><div class='add'>+title: Documentation for Ruby development version</div><div class='head'>diff --git a/.rspec_parallel b/.rspec_parallel<br/>new file mode 100644<br/>index 0000000000..aaff198a32<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.rspec_parallel?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>.rspec_parallel</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+--format progress</div><div class='add'>+--format ParallelTests::RSpec::RuntimeLogger --out tmp/parallel_runtime_rspec.log</div><div class='head'>diff --git a/.travis.yml b/.travis.yml<br/>deleted file mode 100644<br/>index cc568e088b..0000000000<br/>--- a/<a href='/ruby.git/tree/.travis.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>.travis.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,416 +0,0 @@</div><div class='del'>-# Copyright (C) 2011 Urabe, Shyouhei.  All rights reserved.</div><div class='del'>-#</div><div class='del'>-# This file is  a part of the programming language  Ruby.  Permission is hereby</div><div class='del'>-# granted,  to either  redistribute  or  modify this  file,  provided that  the</div><div class='del'>-# conditions  mentioned in  the file  COPYING are  met.  Consult  the  file for</div><div class='del'>-# details.</div><div class='del'>-</div><div class='del'>-# This is  a Travis-CI  build configuration file.   The list  of configurations</div><div class='del'>-# available is located in</div><div class='del'>-#</div><div class='del'>-#     http://about.travis-ci.org/docs/user/build-configuration/</div><div class='del'>-#</div><div class='del'>-# and as Ruby itself is a project written in C language,</div><div class='del'>-#</div><div class='del'>-#     http://about.travis-ci.org/docs/user/languages/c/</div><div class='del'>-#</div><div class='del'>-# is also a good place to look at.</div><div class='del'>-</div><div class='del'>-language: c</div><div class='del'>-</div><div class='del'>-dist: xenial</div><div class='del'>-</div><div class='del'>-osx_image: xcode10.1</div><div class='del'>-</div><div class='del'>-sudo: false</div><div class='del'>-</div><div class='del'>-git:</div><div class='del'>-  quiet: true</div><div class='del'>-</div><div class='del'>-addons:</div><div class='del'>-  apt:</div><div class='del'>-    config:</div><div class='del'>-      retries: true</div><div class='del'>-    update: true</div><div class='del'>-    sources:</div><div class='del'>-      - ubuntu-toolchain-r-test</div><div class='del'>-    packages:</div><div class='del'>-      - gcc-8</div><div class='del'>-      - libffi-dev</div><div class='del'>-      - libgdbm-dev</div><div class='del'>-      - libgmp-dev</div><div class='del'>-      - libjemalloc-dev</div><div class='del'>-      - libncurses5-dev</div><div class='del'>-      - libncursesw5-dev</div><div class='del'>-      - libreadline6-dev</div><div class='del'>-      - libssl-dev</div><div class='del'>-      - libyaml-dev</div><div class='del'>-      - openssl</div><div class='del'>-      - valgrind</div><div class='del'>-      - zlib1g-dev</div><div class='del'>-  homebrew:</div><div class='del'>-    packages:</div><div class='del'>-      - gdbm</div><div class='del'>-      - gmp</div><div class='del'>-      - libffi</div><div class='del'>-      - openssl@1.1</div><div class='del'>-      - zlib</div><div class='del'>-      - ccache</div><div class='del'>-</div><div class='del'>-cache:</div><div class='del'>-  ccache: true</div><div class='del'>-  directories:</div><div class='del'>-    - $HOME/config_2nd</div><div class='del'>-    - $HOME/.downloaded-cache</div><div class='del'>-</div><div class='del'>-env:</div><div class='del'>-  global:</div><div class='del'>-    - CONFIGURE_TTY=no</div><div class='del'>-    - CCACHE_COMPILERCHECK=none</div><div class='del'>-    - CCACHE_NOCOMPRESS=1</div><div class='del'>-    - CCACHE_MAXSIZE=512Mi</div><div class='del'>-    - &gt;-</div><div class='del'>-      NPROC="`case ${TRAVIS_OS_NAME} in</div><div class='del'>-      osx)   sysctl -n hw.activecpu ;;</div><div class='del'>-      linux) nproc ;;</div><div class='del'>-      esac`"</div><div class='del'>-    # JOBS and SETARCH are overridden when necessary; see below.</div><div class='del'>-    - JOBS=-j$((1+${NPROC}))</div><div class='del'>-    - SETARCH=</div><div class='del'>-    - RUBY_PREFIX=/tmp/ruby-prefix</div><div class='del'>-    - GEMS_FOR_TEST='timezone tzinfo'</div><div class='del'>-</div><div class='del'>-.org.ruby-lang.ci.matrix-definitions:</div><div class='del'>-</div><div class='del'>-  - &amp;cron-only</div><div class='del'>-    if: (type = cron) AND (branch = trunk) AND (fork = false)</div><div class='del'>-</div><div class='del'>-  - &amp;make-test-only</div><div class='del'>-    script:</div><div class='del'>-      - $SETARCH make -s test TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"</div><div class='del'>-</div><div class='del'>-  - &amp;linux</div><div class='del'>-    os: linux</div><div class='del'>-    compiler: gcc-8</div><div class='del'>-</div><div class='del'>-  - &amp;osx</div><div class='del'>-    os: osx</div><div class='del'>-    compiler: clang</div><div class='del'>-    before_install:</div><div class='del'>-      - /usr/local/opt/openssl@1.1/bin/openssl version</div><div class='del'>-</div><div class='del'>-  # --------</div><div class='del'>-</div><div class='del'>-  - &amp;x86_64-linux</div><div class='del'>-    name: x86_64-linux</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-</div><div class='del'>-  - &amp;jemalloc</div><div class='del'>-    name: --with-jemalloc</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    &lt;&lt;: *cron-only</div><div class='del'>-    env:</div><div class='del'>-      - CONFIG_FLAG='--with-gmp --with-jemalloc --with-valgrind'</div><div class='del'>-</div><div class='del'>-  - &amp;VM_CHECK_MODE</div><div class='del'>-    name: VM_CHECK_MODE=3</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    &lt;&lt;: *cron-only</div><div class='del'>-    &lt;&lt;: *make-test-only</div><div class='del'>-    env:</div><div class='del'>-      - cppflags=-DVM_CHECK_MODE=0x0003</div><div class='del'>-</div><div class='del'>-  - &amp;FIBER_USE_sjlj</div><div class='del'>-    name: FIBER_USE_NATIVE=0</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    &lt;&lt;: *cron-only</div><div class='del'>-    env:</div><div class='del'>-      - cppflags=-DFIBER_USE_NATIVE=0</div><div class='del'>-</div><div class='del'>-  - &amp;TOKEN_THREADED_CODE</div><div class='del'>-    name: TOKEN_THREADED_CODE</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    &lt;&lt;: *cron-only</div><div class='del'>-    &lt;&lt;: *make-test-only</div><div class='del'>-    env:</div><div class='del'>-      - cppflags=-DOPT_THREADED_CODE=1</div><div class='del'>-</div><div class='del'>-  - &amp;CALL_THREADED_CODE</div><div class='del'>-    name: CALL_THREADED_CODE</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    &lt;&lt;: *cron-only</div><div class='del'>-    &lt;&lt;: *make-test-only</div><div class='del'>-    env:</div><div class='del'>-      - cppflags=-DOPT_THREADED_CODE=2</div><div class='del'>-</div><div class='del'>-  - &amp;NO_THREADED_CODE</div><div class='del'>-    name: NO_THREADED_CODE</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    &lt;&lt;: *cron-only</div><div class='del'>-    &lt;&lt;: *make-test-only</div><div class='del'>-    env:</div><div class='del'>-      - cppflags=-DOPT_THREADED_CODE=3</div><div class='del'>-</div><div class='del'>-  - &amp;ASAN</div><div class='del'>-    name: -fsanitize=address</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    #&lt;&lt;: *cron-only</div><div class='del'>-    &lt;&lt;: *make-test-only</div><div class='del'>-    compiler: clang</div><div class='del'>-    env:</div><div class='del'>-      - ASAN_OPTIONS=detect_leaks=0</div><div class='del'>-      - cflags='-march=native -fsanitize=address -fno-omit-frame-pointer'</div><div class='del'>-      - debugflags=-ggdb3</div><div class='del'>-      - optflags=-O1</div><div class='del'>-      - LD=clang</div><div class='del'>-      - LDFLAGS=-fsanitize=address</div><div class='del'>-</div><div class='del'>-  - &amp;MSAN</div><div class='del'>-    name: -fsanitize=memory</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    #&lt;&lt;: *cron-only</div><div class='del'>-    &lt;&lt;: *make-test-only</div><div class='del'>-    compiler: clang</div><div class='del'>-    env:</div><div class='del'>-      - cflags='-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer'</div><div class='del'>-      - optflags=-O1</div><div class='del'>-      - LD=clang</div><div class='del'>-      - LDFLAGS=-fsanitize=memory</div><div class='del'>-      - CONFIG_FLAG=--with-out-ext=openssl</div><div class='del'>-</div><div class='del'>-  - &amp;UBSAN</div><div class='del'>-    name: -fsanitize=undefined</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    #&lt;&lt;: *cron-only</div><div class='del'>-    &lt;&lt;: *make-test-only</div><div class='del'>-    compiler: clang</div><div class='del'>-    env:</div><div class='del'>-      - cflags='-fsanitize=undefined,integer,nullability -fno-omit-frame-pointer'</div><div class='del'>-      - cppflags=-DUNALIGNED_WORD_ACCESS=0</div><div class='del'>-      - debugflags=-ggdb3</div><div class='del'>-      - optflags='-O1 -march=native'</div><div class='del'>-      - LD=clang</div><div class='del'>-      - LDFLAGS=-fsanitize=undefined,integer,nullability</div><div class='del'>-</div><div class='del'>-  - &amp;i686-linux</div><div class='del'>-    name: i686-linux</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    sudo: required</div><div class='del'>-    env:</div><div class='del'>-      - GCC_FLAGS=-m32</div><div class='del'>-      - debugflags=-g0</div><div class='del'>-      - SETARCH='setarch i686 --verbose --3gb'</div><div class='del'>-    addons:</div><div class='del'>-      apt:</div><div class='del'>-        config:</div><div class='del'>-          retries: true</div><div class='del'>-        update: true</div><div class='del'>-        sources:</div><div class='del'>-          - ubuntu-toolchain-r-test</div><div class='del'>-        packages:</div><div class='del'>-          - gcc-8-multilib</div><div class='del'>-          - libffi-dev:i386</div><div class='del'>-          - libffi6:i386</div><div class='del'>-          - libgdbm-dev:i386</div><div class='del'>-          - libgdbm3:i386</div><div class='del'>-          - libncurses5-dev:i386</div><div class='del'>-          - libncurses5:i386</div><div class='del'>-          - libncursesw5-dev:i386</div><div class='del'>-          - libreadline6-dev:i386</div><div class='del'>-          - libreadline6:i386</div><div class='del'>-          - libssl-dev:i386</div><div class='del'>-          - libssl1.0.0:i386</div><div class='del'>-          - linux-libc-dev:i386</div><div class='del'>-          - zlib1g-dev:i386</div><div class='del'>-          - zlib1g:i386</div><div class='del'>-</div><div class='del'>-  - &amp;pedanticism</div><div class='del'>-    name: -ansi -pedantic</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    &lt;&lt;: *make-test-only</div><div class='del'>-    compiler: clang</div><div class='del'>-    env:</div><div class='del'>-      - GCC_FLAGS='-ansi -Werror=pedantic -pedantic-errors -std=iso9899:1990'</div><div class='del'>-      - CONFIG_FLAG=</div><div class='del'>-      - JOBS=</div><div class='del'>-      - &gt;-</div><div class='del'>-        warnflags='</div><div class='del'>-        -Wall</div><div class='del'>-        -Wextra</div><div class='del'>-        -Werror=declaration-after-statement</div><div class='del'>-        -Werror=deprecated-declarations</div><div class='del'>-        -Werror=division-by-zero</div><div class='del'>-        -Werror=extra-tokens</div><div class='del'>-        -Werror=implicit-function-declaration</div><div class='del'>-        -Werror=implicit-int</div><div class='del'>-        -Werror=long-long</div><div class='del'>-        -Werror=pointer-arith</div><div class='del'>-        -Werror=shorten-64-to-32</div><div class='del'>-        -Werror=write-strings</div><div class='del'>-        -Wmissing-noreturn</div><div class='del'>-        -Wno-constant-logical-operand</div><div class='del'>-        -Wno-missing-field-initializers</div><div class='del'>-        -Wno-overlength-strings</div><div class='del'>-        -Wno-parentheses-equality</div><div class='del'>-        -Wno-self-assign</div><div class='del'>-        -Wno-tautological-compare</div><div class='del'>-        -Wno-unused-local-typedef</div><div class='del'>-        -Wno-unused-parameter</div><div class='del'>-        -Wunused-variable</div><div class='del'>-        '</div><div class='del'>-      - LDFLAGS=-Wno-unused-command-line-argument</div><div class='del'>-</div><div class='del'>-  - &amp;rubyspec</div><div class='del'>-    name: ruby/spec on Ruby 2.3 # to ensure version guards are correctly added</div><div class='del'>-    &lt;&lt;: *linux</div><div class='del'>-    language: ruby</div><div class='del'>-    rvm: 2.3.8</div><div class='del'>-    addons:</div><div class='del'>-      apt:</div><div class='del'>-        packages:</div><div class='del'>-    before_install:</div><div class='del'>-    install:</div><div class='del'>-    before_script: chmod -R u+w spec/ruby</div><div class='del'>-    # -j randomly hangs. Using -fs to make sure we can know problematic spec on failure.</div><div class='del'>-    script: ruby -C spec/ruby ../mspec/bin/mspec -fs .</div><div class='del'>-</div><div class='del'>-  - &amp;x86_64-darwin17</div><div class='del'>-    name: x86_64-darwin17</div><div class='del'>-    &lt;&lt;: *osx</div><div class='del'>-    env:</div><div class='del'>-      - CONFIG_FLAG=--with-opt-dir=/usr/local/opt/openssl@1.1:/usr/local/opt/zlib</div><div class='del'>-      # Not using $JOBS which might be harmful for some tests because osx build often hangs for unknown reasons.</div><div class='del'>-      # Using -v because we're too lazy to build hard timeout for each test and thus can't easily detect which test is hanging forever without -v.</div><div class='del'>-      - TEST_ALL_OPTS="-v --tty=no --excludes=\$(TESTSDIR)/excludes/_travis/osx"</div><div class='del'>-      # Also globally disabling $JOBS because even just building ruby could hang forever on osx.</div><div class='del'>-      - JOBS=</div><div class='del'>-</div><div class='del'>-  - &amp;universal-darwin17</div><div class='del'>-    name: uinversal.x86_64h-darwin17</div><div class='del'>-    &lt;&lt;: *osx</div><div class='del'>-    &lt;&lt;: *cron-only</div><div class='del'>-    &lt;&lt;: *make-test-only</div><div class='del'>-    env:</div><div class='del'>-      - CONFIG_FLAG=--with-arch=x86_64h,x86_64,i386</div><div class='del'>-      - TEST_ALL_OPTS="$JOBS -q --tty=no --excludes=\$(TESTSDIR)/excludes/_travis/osx"</div><div class='del'>-</div><div class='del'>-matrix:</div><div class='del'>-  include:</div><div class='del'>-    # to reduce time for finishing all jobs, run the slowest osx build first.</div><div class='del'>-    - &lt;&lt;: *x86_64-darwin17</div><div class='del'>-    - &lt;&lt;: *x86_64-linux</div><div class='del'>-    - &lt;&lt;: *i686-linux</div><div class='del'>-    - &lt;&lt;: *jemalloc</div><div class='del'>-    - &lt;&lt;: *pedanticism</div><div class='del'>-    - &lt;&lt;: *ASAN</div><div class='del'>-    - &lt;&lt;: *MSAN</div><div class='del'>-    - &lt;&lt;: *UBSAN</div><div class='del'>-    - &lt;&lt;: *VM_CHECK_MODE</div><div class='del'>-    - &lt;&lt;: *FIBER_USE_sjlj</div><div class='del'>-    - &lt;&lt;: *TOKEN_THREADED_CODE</div><div class='del'>-    - &lt;&lt;: *CALL_THREADED_CODE</div><div class='del'>-    - &lt;&lt;: *NO_THREADED_CODE</div><div class='del'>-    - &lt;&lt;: *rubyspec</div><div class='del'>-  allow_failures:</div><div class='del'>-    - name: uinversal.x86_64h-darwin17</div><div class='del'>-    - name: -fsanitize=address</div><div class='del'>-    - name: -fsanitize=memory</div><div class='del'>-    - name: -fsanitize=undefined</div><div class='del'>-  fast_finish: true</div><div class='del'>-</div><div class='del'>-before_script:</div><div class='del'>-  - echo JOBS=${JOBS} SETARCH=${SETARCH}</div><div class='del'>-  - $SETARCH uname -a</div><div class='del'>-  - $SETARCH uname -r</div><div class='del'>-  - rm -fr .ext autom4te.cache</div><div class='del'>-  - echo $TERM</div><div class='del'>-  - |-</div><div class='del'>-    [ -d ~/.downloaded-cache ] ||</div><div class='del'>-    mkdir ~/.downloaded-cache</div><div class='del'>-  - ln -s ~/.downloaded-cache</div><div class='del'>-  - "&gt; config.status"</div><div class='del'>-  - sed -f tool/prereq.status Makefile.in common.mk &gt; Makefile</div><div class='del'>-  - make -s $JOBS update-download</div><div class='del'>-  - make -s $JOBS srcs</div><div class='del'>-  - rm config.status Makefile rbconfig.rb .rbconfig.time</div><div class='del'>-  - |-</div><div class='del'>-    if [ -d ~/config_2nd ]; then</div><div class='del'>-      cp -pr ~/config_2nd build</div><div class='del'>-    else</div><div class='del'>-      mkdir build</div><div class='del'>-    fi</div><div class='del'>-  - mkdir config_1st config_2nd</div><div class='del'>-  - chmod -R a-w .</div><div class='del'>-  - chmod -R u+w build config_1st config_2nd</div><div class='del'>-  - cd build</div><div class='del'>-  - ccache --show-stats</div><div class='del'>-  - |-</div><div class='del'>-    case "$CC" in</div><div class='del'>-    gcc*)   CC="ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-diagnostics-color";;</div><div class='del'>-    clang*) CC="ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-color-diagnostics";;</div><div class='del'>-    esac</div><div class='del'>-  - |-</div><div class='del'>-    [ ! -f config.cache ] ||</div><div class='del'>-    [ "$CC" = "`sed -n s/^ac_cv_prog_CC=//p config.cache`" ] ||</div><div class='del'>-    (set -x; exec rm config.cache)</div><div class='del'>-  - $SETARCH ../configure -C --disable-install-doc --prefix=$RUBY_PREFIX $CONFIG_FLAG</div><div class='del'>-  - cp -pr config.cache config.status .ext/include ../config_1st</div><div class='del'>-  - $SETARCH make reconfig</div><div class='del'>-  - cp -pr config.cache config.status .ext/include ../config_2nd</div><div class='del'>-  - (cd .. &amp;&amp; exec diff -ru config_1st config_2nd)</div><div class='del'>-  - chmod u+w ..</div><div class='del'>-  - rm -rf ~/config_2nd</div><div class='del'>-  - mv ../config_2nd ~</div><div class='del'>-  - chmod u-w ..</div><div class='del'>-  - $SETARCH make -s $JOBS &amp;&amp; make install</div><div class='del'>-  - ccache --show-stats</div><div class='del'>-  - |-</div><div class='del'>-    [ -z "${GEMS_FOR_TEST}" ] ||</div><div class='del'>-    $RUBY_PREFIX/bin/gem install --no-document $GEMS_FOR_TEST</div><div class='del'>-</div><div class='del'>-script:</div><div class='del'>-  - $SETARCH make -s test TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"</div><div class='del'>-  - $SETARCH make -s test-all -o exts TESTOPTS="${TEST_ALL_OPTS=$TESTOPTS}"</div><div class='del'>-  - $SETARCH make -s test-spec MSPECOPT=-ff # not using `-j` because sometimes `mspec -j` silently dies</div><div class='del'>-</div><div class='del'>-# Branch matrix.  Not all branches are Travis-ready so we limit branches here.</div><div class='del'>-branches:</div><div class='del'>-  only:</div><div class='del'>-    - trunk</div><div class='del'>-    - ruby_2_3</div><div class='del'>-    - ruby_2_4</div><div class='del'>-    - ruby_2_5</div><div class='del'>-    - /^feature\//</div><div class='del'>-    - /^bug\//</div><div class='del'>-    - /^travis-/</div><div class='del'>-</div><div class='del'>-# We want to be notified when something happens.</div><div class='del'>-notifications:</div><div class='del'>-  irc:</div><div class='del'>-    channels:</div><div class='del'>-      - "chat.freenode.net#ruby-core"</div><div class='del'>-      - "chat.freenode.net#ruby-ja"</div><div class='del'>-    on_success: change # [always|never|change] # default: always</div><div class='del'>-    on_failure: always # [always|never|change] # default: always</div><div class='del'>-    template:</div><div class='del'>-      - "%{message} by @%{author}: See %{build_url}"</div><div class='del'>-</div><div class='del'>-  slack:</div><div class='del'>-    rooms:</div><div class='del'>-      - secure: i1GLETSKye85ea6dGNA3MxI/5myChmMFiZtBd5C69xK+s1sBFqEgOSbaSf9KHc0CYrHVyNhQMaZRruieV7xS+6Pfs0Zvxf1DO6QQTWC2KhkqwFDLvZncAzjoyASdR90hbr+iRPOngQ+HJuE94zemALAwEqNAinzA74PMiJXktqY= # ruby:&lt;token&gt;#commits</div><div class='del'>-      - secure: ah7UEHBvncXT7bM5mvYIQAO+tIyV/wl7nXLb7wQD16dO2v8Gragy0mWjB79Q09hrrMGmp6H9bCDpdGS80boIA5EHaHoG4QaP0i9bsSt8U2AMWgZtfyIgQKJ4H2kXkGlrjO+AXTgnIkP7LNjdgAVUUTGQPb26T3QmoN2Splt+fIQ= # ruby:&lt;token&gt;#alerts</div><div class='del'>-    on_pull_requests: false</div><div class='del'>-    on_success: change</div><div class='del'>-    on_failure: always</div><div class='del'>-</div><div class='del'>-  email:</div><div class='del'>-    - ko1c-failure@atdot.net</div><div class='del'>-</div><div class='del'>-# Local Variables:</div><div class='del'>-# mode: YAML</div><div class='del'>-# coding: utf-8-unix</div><div class='del'>-# indent-tabs-mode: nil</div><div class='del'>-# tab-width: 4</div><div class='del'>-# fill-column: 79</div><div class='del'>-# default-justification: full</div><div class='del'>-# End:</div><div class='head'>diff --git a/BSDL b/BSDL<br/>index a009caefea..66d93598aa 100644<br/>--- a/<a href='/ruby.git/tree/BSDL?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>BSDL</a><br/>+++ b/<a href='/ruby.git/tree/BSDL?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>BSDL</a></div><div class='hunk'>@@ -4,10 +4,10 @@ Redistribution and use in source and binary forms, with or without</div><div class='ctx'> modification, are permitted provided that the following conditions</div><div class='ctx'> are met:</div><div class='ctx'> 1. Redistributions of source code must retain the above copyright</div><div class='del'>-notice, this list of conditions and the following disclaimer.</div><div class='add'>+   notice, this list of conditions and the following disclaimer.</div><div class='ctx'> 2. Redistributions in binary form must reproduce the above copyright</div><div class='del'>-notice, this list of conditions and the following disclaimer in the</div><div class='del'>-documentation and/or other materials provided with the distribution.</div><div class='add'>+   notice, this list of conditions and the following disclaimer in the</div><div class='add'>+   documentation and/or other materials provided with the distribution.</div><div class='ctx'> </div><div class='ctx'> THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div class='ctx'> ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='head'>diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md<br/>index ffdf2dd4b8..13df6087ca 100644<br/>--- a/<a href='/ruby.git/tree/CONTRIBUTING.md?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>CONTRIBUTING.md</a><br/>+++ b/<a href='/ruby.git/tree/CONTRIBUTING.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>CONTRIBUTING.md</a></div><div class='hunk'>@@ -1,4 +1 @@</div><div class='del'>-Please see the [official issue tracker] and wiki [HowToContribute].</div><div class='del'>-</div><div class='del'>-[official issue tracker]: https://bugs.ruby-lang.org</div><div class='del'>-[HowToContribute]: https://bugs.ruby-lang.org/projects/ruby/wiki/HowToContribute</div><div class='add'>+See ["Contributing to Ruby"](https://docs.ruby-lang.org/en/master/contributing_md.html), which includes setup and build instructions.</div><div class='head'>diff --git a/COPYING b/COPYING<br/>index f06056fb45..48e5a96de7 100644<br/>--- a/<a href='/ruby.git/tree/COPYING?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>COPYING</a><br/>+++ b/<a href='/ruby.git/tree/COPYING?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>COPYING</a></div><div class='hunk'>@@ -2,55 +2,55 @@ Ruby is copyrighted free software by Yukihiro Matsumoto &lt;matz@netlab.jp&gt;.</div><div class='ctx'> You can redistribute it and/or modify it under either the terms of the</div><div class='ctx'> 2-clause BSDL (see the file BSDL), or the conditions below:</div><div class='ctx'> </div><div class='del'>-  1. You may make and give away verbatim copies of the source form of the</div><div class='del'>-     software without restriction, provided that you duplicate all of the</div><div class='del'>-     original copyright notices and associated disclaimers.</div><div class='add'>+1. You may make and give away verbatim copies of the source form of the</div><div class='add'>+   software without restriction, provided that you duplicate all of the</div><div class='add'>+   original copyright notices and associated disclaimers.</div><div class='ctx'> </div><div class='del'>-  2. You may modify your copy of the software in any way, provided that</div><div class='del'>-     you do at least ONE of the following:</div><div class='add'>+2. You may modify your copy of the software in any way, provided that</div><div class='add'>+   you do at least ONE of the following:</div><div class='ctx'> </div><div class='del'>-       a) place your modifications in the Public Domain or otherwise</div><div class='del'>-          make them Freely Available, such as by posting said</div><div class='del'>-          modifications to Usenet or an equivalent medium, or by allowing</div><div class='del'>-          the author to include your modifications in the software.</div><div class='add'>+   a. place your modifications in the Public Domain or otherwise</div><div class='add'>+      make them Freely Available, such as by posting said</div><div class='add'>+      modifications to Usenet or an equivalent medium, or by allowing</div><div class='add'>+      the author to include your modifications in the software.</div><div class='ctx'> </div><div class='del'>-       b) use the modified software only within your corporation or</div><div class='del'>-          organization.</div><div class='add'>+   b. use the modified software only within your corporation or</div><div class='add'>+      organization.</div><div class='ctx'> </div><div class='del'>-       c) give non-standard binaries non-standard names, with</div><div class='del'>-          instructions on where to get the original software distribution.</div><div class='add'>+   c. give non-standard binaries non-standard names, with</div><div class='add'>+      instructions on where to get the original software distribution.</div><div class='ctx'> </div><div class='del'>-       d) make other distribution arrangements with the author.</div><div class='add'>+   d. make other distribution arrangements with the author.</div><div class='ctx'> </div><div class='del'>-  3. You may distribute the software in object code or binary form,</div><div class='del'>-     provided that you do at least ONE of the following:</div><div class='add'>+3. You may distribute the software in object code or binary form,</div><div class='add'>+   provided that you do at least ONE of the following:</div><div class='ctx'> </div><div class='del'>-       a) distribute the binaries and library files of the software,</div><div class='del'>-          together with instructions (in the manual page or equivalent)</div><div class='del'>-          on where to get the original distribution.</div><div class='add'>+   a. distribute the binaries and library files of the software,</div><div class='add'>+      together with instructions (in the manual page or equivalent)</div><div class='add'>+      on where to get the original distribution.</div><div class='ctx'> </div><div class='del'>-       b) accompany the distribution with the machine-readable source of</div><div class='del'>-          the software.</div><div class='add'>+   b. accompany the distribution with the machine-readable source of</div><div class='add'>+      the software.</div><div class='ctx'> </div><div class='del'>-       c) give non-standard binaries non-standard names, with</div><div class='del'>-          instructions on where to get the original software distribution.</div><div class='add'>+   c. give non-standard binaries non-standard names, with</div><div class='add'>+      instructions on where to get the original software distribution.</div><div class='ctx'> </div><div class='del'>-       d) make other distribution arrangements with the author.</div><div class='add'>+   d. make other distribution arrangements with the author.</div><div class='ctx'> </div><div class='del'>-  4. You may modify and include the part of the software into any other</div><div class='del'>-     software (possibly commercial).  But some files in the distribution</div><div class='del'>-     are not written by the author, so that they are not under these terms.</div><div class='add'>+4. You may modify and include the part of the software into any other</div><div class='add'>+   software (possibly commercial).  But some files in the distribution</div><div class='add'>+   are not written by the author, so that they are not under these terms.</div><div class='ctx'> </div><div class='del'>-     For the list of those files and their copying conditions, see the</div><div class='del'>-     file LEGAL.</div><div class='add'>+   For the list of those files and their copying conditions, see the</div><div class='add'>+   file LEGAL.</div><div class='ctx'> </div><div class='del'>-  5. The scripts and library files supplied as input to or produced as</div><div class='del'>-     output from the software do not automatically fall under the</div><div class='del'>-     copyright of the software, but belong to whomever generated them,</div><div class='del'>-     and may be sold commercially, and may be aggregated with this</div><div class='del'>-     software.</div><div class='add'>+5. The scripts and library files supplied as input to or produced as</div><div class='add'>+   output from the software do not automatically fall under the</div><div class='add'>+   copyright of the software, but belong to whomever generated them,</div><div class='add'>+   and may be sold commercially, and may be aggregated with this</div><div class='add'>+   software.</div><div class='ctx'> </div><div class='del'>-  6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR</div><div class='del'>-     IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED</div><div class='del'>-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR</div><div class='del'>-     PURPOSE.</div><div class='add'>+6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR</div><div class='add'>+   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED</div><div class='add'>+   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR</div><div class='add'>+   PURPOSE.</div><div class='head'>diff --git a/COPYING.ja b/COPYING.ja<br/>index e50d01c8d1..230376bc60 100644<br/>--- a/<a href='/ruby.git/tree/COPYING.ja?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>COPYING.ja</a><br/>+++ b/<a href='/ruby.git/tree/COPYING.ja?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>COPYING.ja</a></div><div class='hunk'>@@ -2,50 +2,50 @@</div><div class='ctx'> ã¾ãŸã¯ä»¥ä¸‹ã«ç¤ºã™æ¡ä»¶ã§æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’å†é…å¸ƒã§ãã¾ã™</div><div class='ctx'> 2-clause BSDLã«ã¤ã„ã¦ã¯BSDLãƒ•ã‚¡ã‚¤ãƒ«ã‚’å‚ç…§ã—ã¦ä¸‹ã•ã„ï¼Ž</div><div class='ctx'> </div><div class='del'>-  1. è¤‡è£½ã¯åˆ¶é™ãªãè‡ªç”±ã§ã™ï¼Ž</div><div class='add'>+1. è¤‡è£½ã¯åˆ¶é™ãªãè‡ªç”±ã§ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-  2. ä»¥ä¸‹ã®æ¡ä»¶ã®ã„ãšã‚Œã‹ã‚’æº€ãŸã™æ™‚ã«æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®ã‚½ãƒ¼ã‚¹ã‚’</div><div class='del'>-     è‡ªç”±ã«å¤‰æ›´ã§ãã¾ã™ï¼Ž</div><div class='add'>+2. ä»¥ä¸‹ã®æ¡ä»¶ã®ã„ãšã‚Œã‹ã‚’æº€ãŸã™æ™‚ã«æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®ã‚½ãƒ¼ã‚¹ã‚’</div><div class='add'>+   è‡ªç”±ã«å¤‰æ›´ã§ãã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (a) ãƒãƒƒãƒˆãƒ‹ãƒ¥ãƒ¼ã‚ºã«ãƒã‚¹ãƒˆã—ãŸã‚Šï¼Œä½œè€…ã«å¤‰æ›´ã‚’é€ä»˜ã™ã‚‹</div><div class='del'>-         ãªã©ã®æ–¹æ³•ã§ï¼Œå¤‰æ›´ã‚’å…¬é–‹ã™ã‚‹ï¼Ž</div><div class='add'>+   a.  ãƒãƒƒãƒˆãƒ‹ãƒ¥ãƒ¼ã‚ºã«ãƒã‚¹ãƒˆã—ãŸã‚Šï¼Œä½œè€…ã«å¤‰æ›´ã‚’é€ä»˜ã™ã‚‹</div><div class='add'>+       ãªã©ã®æ–¹æ³•ã§ï¼Œå¤‰æ›´ã‚’å…¬é–‹ã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (b) å¤‰æ›´ã—ãŸæœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’è‡ªåˆ†ã®æ‰€å±žã™ã‚‹çµ„ç¹”å†…éƒ¨ã ã‘ã§</div><div class='del'>-         ä½¿ã†ï¼Ž</div><div class='add'>+   b.  å¤‰æ›´ã—ãŸæœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’è‡ªåˆ†ã®æ‰€å±žã™ã‚‹çµ„ç¹”å†…éƒ¨ã ã‘ã§</div><div class='add'>+       ä½¿ã†ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (c) å¤‰æ›´ç‚¹ã‚’æ˜Žç¤ºã—ãŸã†ãˆï¼Œã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®åå‰ã‚’å¤‰æ›´ã™ã‚‹ï¼Ž</div><div class='del'>-         ãã®ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’é…å¸ƒã™ã‚‹æ™‚ã«ã¯å¤‰æ›´å‰ã®æœ¬ãƒ—ãƒ­ã‚°ãƒ©</div><div class='del'>-         ãƒ ã‚‚åŒæ™‚ã«é…å¸ƒã™ã‚‹ï¼Žã¾ãŸã¯å¤‰æ›´å‰ã®æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®ã‚½ãƒ¼</div><div class='del'>-         ã‚¹ã®å…¥æ‰‹æ³•ã‚’æ˜Žç¤ºã™ã‚‹ï¼Ž</div><div class='add'>+   c.  å¤‰æ›´ç‚¹ã‚’æ˜Žç¤ºã—ãŸã†ãˆï¼Œã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®åå‰ã‚’å¤‰æ›´ã™ã‚‹ï¼Ž</div><div class='add'>+       ãã®ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’é…å¸ƒã™ã‚‹æ™‚ã«ã¯å¤‰æ›´å‰ã®æœ¬ãƒ—ãƒ­ã‚°ãƒ©</div><div class='add'>+       ãƒ ã‚‚åŒæ™‚ã«é…å¸ƒã™ã‚‹ï¼Žã¾ãŸã¯å¤‰æ›´å‰ã®æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®ã‚½ãƒ¼</div><div class='add'>+       ã‚¹ã®å…¥æ‰‹æ³•ã‚’æ˜Žç¤ºã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (d) ãã®ä»–ã®å¤‰æ›´æ¡ä»¶ã‚’ä½œè€…ã¨åˆæ„ã™ã‚‹ï¼Ž</div><div class='add'>+   d.  ãã®ä»–ã®å¤‰æ›´æ¡ä»¶ã‚’ä½œè€…ã¨åˆæ„ã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-  3. ä»¥ä¸‹ã®æ¡ä»¶ã®ã„ãšã‚Œã‹ã‚’æº€ãŸã™æ™‚ã«æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’ã‚³ãƒ³ãƒ‘ã‚¤</div><div class='del'>-     ãƒ«ã—ãŸã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚³ãƒ¼ãƒ‰ã‚„å®Ÿè¡Œå½¢å¼ã§ã‚‚é…å¸ƒã§ãã¾ã™ï¼Ž</div><div class='add'>+3. ä»¥ä¸‹ã®æ¡ä»¶ã®ã„ãšã‚Œã‹ã‚’æº€ãŸã™æ™‚ã«æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’ã‚³ãƒ³ãƒ‘ã‚¤</div><div class='add'>+   ãƒ«ã—ãŸã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚³ãƒ¼ãƒ‰ã‚„å®Ÿè¡Œå½¢å¼ã§ã‚‚é…å¸ƒã§ãã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (a) ãƒã‚¤ãƒŠãƒªã‚’å—ã‘å–ã£ãŸäººãŒã‚½ãƒ¼ã‚¹ã‚’å…¥æ‰‹ã§ãã‚‹ã‚ˆã†ã«ï¼Œ</div><div class='del'>-         ã‚½ãƒ¼ã‚¹ã®å…¥æ‰‹æ³•ã‚’æ˜Žç¤ºã™ã‚‹ï¼Ž</div><div class='add'>+   a.  ãƒã‚¤ãƒŠãƒªã‚’å—ã‘å–ã£ãŸäººãŒã‚½ãƒ¼ã‚¹ã‚’å…¥æ‰‹ã§ãã‚‹ã‚ˆã†ã«ï¼Œ</div><div class='add'>+       ã‚½ãƒ¼ã‚¹ã®å…¥æ‰‹æ³•ã‚’æ˜Žç¤ºã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (b) æ©Ÿæ¢°å¯èª­ãªã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’æ·»ä»˜ã™ã‚‹ï¼Ž</div><div class='add'>+   b.  æ©Ÿæ¢°å¯èª­ãªã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’æ·»ä»˜ã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (c) å¤‰æ›´ã‚’è¡Œã£ãŸãƒã‚¤ãƒŠãƒªã¯åå‰ã‚’å¤‰æ›´ã—ãŸã†ãˆï¼Œã‚ªãƒªã‚¸ãƒŠ</div><div class='del'>-         ãƒ«ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®å…¥æ‰‹æ³•ã‚’æ˜Žç¤ºã™ã‚‹ï¼Ž</div><div class='add'>+   c.  å¤‰æ›´ã‚’è¡Œã£ãŸãƒã‚¤ãƒŠãƒªã¯åå‰ã‚’å¤‰æ›´ã—ãŸã†ãˆï¼Œã‚ªãƒªã‚¸ãƒŠ</div><div class='add'>+       ãƒ«ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®å…¥æ‰‹æ³•ã‚’æ˜Žç¤ºã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-     (d) ãã®ä»–ã®é…å¸ƒæ¡ä»¶ã‚’ä½œè€…ã¨åˆæ„ã™ã‚‹ï¼Ž</div><div class='add'>+   d.  ãã®ä»–ã®é…å¸ƒæ¡ä»¶ã‚’ä½œè€…ã¨åˆæ„ã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-  4. ä»–ã®ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¸ã®å¼•ç”¨ã¯ã„ã‹ãªã‚‹ç›®çš„ã§ã‚ã‚Œè‡ªç”±ã§ã™ï¼ŽãŸ</div><div class='del'>-     ã ã—ï¼Œæœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã«å«ã¾ã‚Œã‚‹ä»–ã®ä½œè€…ã«ã‚ˆã‚‹ã‚³ãƒ¼ãƒ‰ã¯ï¼Œã</div><div class='del'>-     ã‚Œãžã‚Œã®ä½œè€…ã®æ„å‘ã«ã‚ˆã‚‹åˆ¶é™ãŒåŠ ãˆã‚‰ã‚Œã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ï¼Ž</div><div class='add'>+4. ä»–ã®ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¸ã®å¼•ç”¨ã¯ã„ã‹ãªã‚‹ç›®çš„ã§ã‚ã‚Œè‡ªç”±ã§ã™ï¼ŽãŸ</div><div class='add'>+   ã ã—ï¼Œæœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã«å«ã¾ã‚Œã‚‹ä»–ã®ä½œè€…ã«ã‚ˆã‚‹ã‚³ãƒ¼ãƒ‰ã¯ï¼Œã</div><div class='add'>+   ã‚Œãžã‚Œã®ä½œè€…ã®æ„å‘ã«ã‚ˆã‚‹åˆ¶é™ãŒåŠ ãˆã‚‰ã‚Œã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-     ãã‚Œã‚‰ãƒ•ã‚¡ã‚¤ãƒ«ã®ä¸€è¦§ã¨ãã‚Œãžã‚Œã®é…å¸ƒæ¡ä»¶ãªã©ã«ä»˜ã„ã¦ã¯</div><div class='del'>-     LEGALãƒ•ã‚¡ã‚¤ãƒ«ã‚’å‚ç…§ã—ã¦ãã ã•ã„ï¼Ž</div><div class='add'>+   ãã‚Œã‚‰ãƒ•ã‚¡ã‚¤ãƒ«ã®ä¸€è¦§ã¨ãã‚Œãžã‚Œã®é…å¸ƒæ¡ä»¶ãªã©ã«ä»˜ã„ã¦ã¯</div><div class='add'>+   LEGALãƒ•ã‚¡ã‚¤ãƒ«ã‚’å‚ç…§ã—ã¦ãã ã•ã„ï¼Ž</div><div class='ctx'> </div><div class='del'>-  5. æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¸ã®å…¥åŠ›ã¨ãªã‚‹ã‚¹ã‚¯ãƒªãƒ—ãƒˆãŠã‚ˆã³ï¼Œæœ¬ãƒ—ãƒ­ã‚°ãƒ©</div><div class='del'>-     ãƒ ã‹ã‚‰ã®å‡ºåŠ›ã®æ¨©åˆ©ã¯æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®ä½œè€…ã§ã¯ãªãï¼Œãã‚Œãž</div><div class='del'>-     ã‚Œã®å…¥å‡ºåŠ›ã‚’ç”Ÿæˆã—ãŸäººã«å±žã—ã¾ã™ï¼Žã¾ãŸï¼Œæœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã«</div><div class='del'>-     çµ„ã¿è¾¼ã¾ã‚Œã‚‹ãŸã‚ã®æ‹¡å¼µãƒ©ã‚¤ãƒ–ãƒ©ãƒªã«ã¤ã„ã¦ã‚‚åŒæ§˜ã§ã™ï¼Ž</div><div class='add'>+5. æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¸ã®å…¥åŠ›ã¨ãªã‚‹ã‚¹ã‚¯ãƒªãƒ—ãƒˆãŠã‚ˆã³ï¼Œæœ¬ãƒ—ãƒ­ã‚°ãƒ©</div><div class='add'>+   ãƒ ã‹ã‚‰ã®å‡ºåŠ›ã®æ¨©åˆ©ã¯æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã®ä½œè€…ã§ã¯ãªãï¼Œãã‚Œãž</div><div class='add'>+   ã‚Œã®å…¥å‡ºåŠ›ã‚’ç”Ÿæˆã—ãŸäººã«å±žã—ã¾ã™ï¼Žã¾ãŸï¼Œæœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã«</div><div class='add'>+   çµ„ã¿è¾¼ã¾ã‚Œã‚‹ãŸã‚ã®æ‹¡å¼µãƒ©ã‚¤ãƒ–ãƒ©ãƒªã«ã¤ã„ã¦ã‚‚åŒæ§˜ã§ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-  6. æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¯ç„¡ä¿è¨¼ã§ã™ï¼Žä½œè€…ã¯æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’ã‚µãƒãƒ¼ãƒˆ</div><div class='del'>-     ã™ã‚‹æ„å¿—ã¯ã‚ã‚Šã¾ã™ãŒï¼Œãƒ—ãƒ­ã‚°ãƒ©ãƒ è‡ªèº«ã®ãƒã‚°ã‚ã‚‹ã„ã¯æœ¬ãƒ—</div><div class='del'>-     ãƒ­ã‚°ãƒ©ãƒ ã®å®Ÿè¡Œãªã©ã‹ã‚‰ç™ºç”Ÿã™ã‚‹ã„ã‹ãªã‚‹æå®³ã«å¯¾ã—ã¦ã‚‚è²¬</div><div class='del'>-     ä»»ã‚’æŒã¡ã¾ã›ã‚“ï¼Ž</div><div class='add'>+6. æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¯ç„¡ä¿è¨¼ã§ã™ï¼Žä½œè€…ã¯æœ¬ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’ã‚µãƒãƒ¼ãƒˆ</div><div class='add'>+   ã™ã‚‹æ„å¿—ã¯ã‚ã‚Šã¾ã™ãŒï¼Œãƒ—ãƒ­ã‚°ãƒ©ãƒ è‡ªèº«ã®ãƒã‚°ã‚ã‚‹ã„ã¯æœ¬ãƒ—</div><div class='add'>+   ãƒ­ã‚°ãƒ©ãƒ ã®å®Ÿè¡Œãªã©ã‹ã‚‰ç™ºç”Ÿã™ã‚‹ã„ã‹ãªã‚‹æå®³ã«å¯¾ã—ã¦ã‚‚è²¬</div><div class='add'>+   ä»»ã‚’æŒã¡ã¾ã›ã‚“ï¼Ž</div><div class='head'>diff --git a/LEGAL b/LEGAL<br/>index 0fe24dfc3c..0423d57ac9 100644<br/>--- a/<a href='/ruby.git/tree/LEGAL?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>LEGAL</a><br/>+++ b/<a href='/ruby.git/tree/LEGAL?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>LEGAL</a></div><div class='hunk'>@@ -7,92 +7,118 @@ All the files in this distribution are covered under either the Ruby's</div><div class='ctx'> license (see the file COPYING) or public-domain except some files</div><div class='ctx'> mentioned below.</div><div class='ctx'> </div><div class='del'>-ccan/build_assert/build_assert.h::</div><div class='del'>-ccan/check_type/check_type.h::</div><div class='del'>-ccan/container_of/container_of.h::</div><div class='del'>-ccan/str/str.h::</div><div class='add'>+[addr2line.c]</div><div class='ctx'> </div><div class='del'>-  These files are licensed under the CC0.</div><div class='add'>+  A part of this file is from FreeBSD.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    https://creativecommons.org/choose/zero/</div><div class='add'>+    Copyright (c) 1986, 1988, 1991, 1993::</div><div class='add'>+    The Regents of the University of California.  All rights reserved.</div><div class='ctx'> </div><div class='del'>-ccan/list/list.h::</div><div class='add'>+    (c) UNIX System Laboratories, Inc.</div><div class='ctx'> </div><div class='del'>-  This file is licensed under the MIT License.</div><div class='add'>+    All or some portions of this file are derived from material licensed</div><div class='add'>+    to the University of California by American Telephone and Telegraph</div><div class='add'>+    Co. or Unix System Laboratories, Inc. and are reproduced herein with</div><div class='add'>+    the permission of UNIX System Laboratories, Inc.</div><div class='ctx'> </div><div class='del'>-  &gt;&gt;&gt;</div><div class='del'>-    Permission is hereby granted, free of charge, to any person obtaining a copy</div><div class='del'>-    of this software and associated documentation files (the "Software"), to deal</div><div class='del'>-    in the Software without restriction, including without limitation the rights</div><div class='del'>-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</div><div class='del'>-    copies of the Software, and to permit persons to whom the Software is</div><div class='del'>-    furnished to do so, subject to the following conditions:</div><div class='add'>+    Redistribution and use in source and binary forms, with or without</div><div class='add'>+    modification, are permitted provided that the following conditions</div><div class='add'>+    are met:</div><div class='add'>+    1. Redistributions of source code must retain the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer.</div><div class='add'>+    2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer in the</div><div class='add'>+       documentation and/or other materials provided with the distribution.</div><div class='add'>+    4. Neither the name of the University nor the names of its contributors</div><div class='add'>+       may be used to endorse or promote products derived from this software</div><div class='add'>+       without specific prior written permission.</div><div class='ctx'> </div><div class='del'>-    The above copyright notice and this permission notice shall be included in</div><div class='del'>-    all copies or substantial portions of the Software.</div><div class='add'>+    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE</div><div class='add'>+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+    SUCH DAMAGE.</div><div class='ctx'> </div><div class='del'>-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</div><div class='del'>-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</div><div class='del'>-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</div><div class='del'>-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</div><div class='del'>-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</div><div class='del'>-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</div><div class='del'>-    THE SOFTWARE.</div><div class='del'>-</div><div class='del'>-include/ruby/onigmo.h::</div><div class='del'>-include/ruby/oniguruma.h::</div><div class='del'>-regcomp.c::</div><div class='del'>-regenc.c::</div><div class='del'>-regenc.h::</div><div class='del'>-regerror.c::</div><div class='del'>-regexec.c::</div><div class='del'>-regint.h::</div><div class='del'>-regparse.c::</div><div class='del'>-regparse.h::</div><div class='del'>-enc/ascii.c::</div><div class='del'>-enc/big5.c::</div><div class='del'>-enc/cp949.c::</div><div class='del'>-enc/emacs_mule.c::</div><div class='del'>-enc/encdb.c::</div><div class='del'>-enc/euc_jp.c::</div><div class='del'>-enc/euc_kr.c::</div><div class='del'>-enc/euc_tw.c::</div><div class='del'>-enc/gb18030.c::</div><div class='del'>-enc/gb2312.c::</div><div class='del'>-enc/gbk.c::</div><div class='del'>-enc/iso_8859_1.c::</div><div class='del'>-enc/iso_8859_10.c::</div><div class='del'>-enc/iso_8859_11.c::</div><div class='del'>-enc/iso_8859_13.c::</div><div class='del'>-enc/iso_8859_14.c::</div><div class='del'>-enc/iso_8859_15.c::</div><div class='del'>-enc/iso_8859_16.c::</div><div class='del'>-enc/iso_8859_2.c::</div><div class='del'>-enc/iso_8859_3.c::</div><div class='del'>-enc/iso_8859_4.c::</div><div class='del'>-enc/iso_8859_5.c::</div><div class='del'>-enc/iso_8859_6.c::</div><div class='del'>-enc/iso_8859_7.c::</div><div class='del'>-enc/iso_8859_8.c::</div><div class='del'>-enc/iso_8859_9.c::</div><div class='del'>-enc/koi8_r.c::</div><div class='del'>-enc/koi8_u.c::</div><div class='del'>-enc/shift_jis.c::</div><div class='del'>-enc/unicode.c::</div><div class='del'>-enc/us_ascii.c::</div><div class='del'>-enc/utf_16be.c::</div><div class='del'>-enc/utf_16le.c::</div><div class='del'>-enc/utf_32be.c::</div><div class='del'>-enc/utf_32le.c::</div><div class='del'>-enc/utf_8.c::</div><div class='del'>-enc/windows_1251.c::</div><div class='add'>+	@(#)subr_prf.c	8.3 (Berkeley) 1/21/94</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+[ccan/build_assert/build_assert.h]</div><div class='add'>+[ccan/check_type/check_type.h]</div><div class='add'>+[ccan/container_of/container_of.h]</div><div class='add'>+[ccan/str/str.h]</div><div class='add'>+</div><div class='add'>+  These files are licensed under the {CC0}[https://creativecommons.org/choose/zero/].</div><div class='add'>+</div><div class='add'>+[ccan/list/list.h]</div><div class='add'>+</div><div class='add'>+  This file is licensed under the {MIT License}[rdoc-label:label-MIT+License].</div><div class='add'>+</div><div class='add'>+[coroutine]</div><div class='add'>+</div><div class='add'>+  Unless otherwise specified, these files are licensed under the</div><div class='add'>+  {MIT License}[rdoc-label:label-MIT+License].</div><div class='add'>+</div><div class='add'>+[include/ruby/onigmo.h]</div><div class='add'>+[include/ruby/oniguruma.h]</div><div class='add'>+[regcomp.c]</div><div class='add'>+[regenc.c]</div><div class='add'>+[regenc.h]</div><div class='add'>+[regerror.c]</div><div class='add'>+[regexec.c]</div><div class='add'>+[regint.h]</div><div class='add'>+[regparse.c]</div><div class='add'>+[regparse.h]</div><div class='add'>+[enc/ascii.c]</div><div class='add'>+[enc/big5.c]</div><div class='add'>+[enc/cp949.c]</div><div class='add'>+[enc/emacs_mule.c]</div><div class='add'>+[enc/encdb.c]</div><div class='add'>+[enc/euc_jp.c]</div><div class='add'>+[enc/euc_kr.c]</div><div class='add'>+[enc/euc_tw.c]</div><div class='add'>+[enc/gb18030.c]</div><div class='add'>+[enc/gb2312.c]</div><div class='add'>+[enc/gbk.c]</div><div class='add'>+[enc/iso_8859_1.c]</div><div class='add'>+[enc/iso_8859_10.c]</div><div class='add'>+[enc/iso_8859_11.c]</div><div class='add'>+[enc/iso_8859_13.c]</div><div class='add'>+[enc/iso_8859_14.c]</div><div class='add'>+[enc/iso_8859_15.c]</div><div class='add'>+[enc/iso_8859_16.c]</div><div class='add'>+[enc/iso_8859_2.c]</div><div class='add'>+[enc/iso_8859_3.c]</div><div class='add'>+[enc/iso_8859_4.c]</div><div class='add'>+[enc/iso_8859_5.c]</div><div class='add'>+[enc/iso_8859_6.c]</div><div class='add'>+[enc/iso_8859_7.c]</div><div class='add'>+[enc/iso_8859_8.c]</div><div class='add'>+[enc/iso_8859_9.c]</div><div class='add'>+[enc/koi8_r.c]</div><div class='add'>+[enc/koi8_u.c]</div><div class='add'>+[enc/shift_jis.c]</div><div class='add'>+[enc/unicode.c]</div><div class='add'>+[enc/us_ascii.c]</div><div class='add'>+[enc/utf_16be.c]</div><div class='add'>+[enc/utf_16le.c]</div><div class='add'>+[enc/utf_32be.c]</div><div class='add'>+[enc/utf_32le.c]</div><div class='add'>+[enc/utf_8.c]</div><div class='add'>+[enc/windows_1251.c]</div><div class='add'>+[enc/windows_31j.c]</div><div class='ctx'> </div><div class='ctx'>   Onigmo (Oniguruma-mod) LICENSE</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (c) 2002-2009  K.Kosako  &lt;sndgk393 AT ybb DOT ne DOT jp&gt;  </div><div class='del'>-    Copyright (c) 2011-2014  K.Takata  &lt;kentkt AT csc DOT jp&gt;  </div><div class='add'>+    Copyright (c) 2002-2009::  K.Kosako  &lt;sndgk393 AT ybb DOT ne DOT jp&gt;</div><div class='add'>+    Copyright (c) 2011-2014::  K.Takata  &lt;kentkt AT csc DOT jp&gt;</div><div class='ctx'>     All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     Redistribution and use in source and binary forms, with or without</div><div class='hunk'>@@ -119,7 +145,7 @@ enc/windows_1251.c::</div><div class='ctx'>   Oniguruma LICENSE</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (c) 2002-2009  K.Kosako  &lt;sndgk393 AT ybb DOT ne DOT jp&gt;  </div><div class='add'>+    Copyright (c) 2002-2009::  K.Kosako  &lt;sndgk393 AT ybb DOT ne DOT jp&gt;</div><div class='ctx'>     All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     Redistribution and use in source and binary forms, with or without</div><div class='hunk'>@@ -150,10 +176,69 @@ enc/windows_1251.c::</div><div class='ctx'>     When this software is partly used or it is distributed with Ruby,</div><div class='ctx'>     this of Ruby follows the license of Ruby.</div><div class='ctx'> </div><div class='del'>-enc/trans/GB/GB12345%UCS.src::</div><div class='del'>-enc/trans/GB/UCS%GB12345.src::</div><div class='del'>-enc/trans/GB/GB2312%UCS.src::</div><div class='del'>-enc/trans/GB/UCS%GB2312.src::</div><div class='add'>+[enc/windows_1250.c]</div><div class='add'>+[enc/windows_1252.c]</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (c) 2006-2007::  Byte      &lt;byte AT mail DOT kna DOT ru&gt;</div><div class='add'>+                               K.Kosako  &lt;sndgk393 AT ybb DOT ne DOT jp&gt;</div><div class='add'>+    All rights reserved.</div><div class='add'>+</div><div class='add'>+    Redistribution and use in source and binary forms, with or without</div><div class='add'>+    modification, are permitted provided that the following conditions</div><div class='add'>+    are met:</div><div class='add'>+    1. Redistributions of source code must retain the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer.</div><div class='add'>+    2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer in the</div><div class='add'>+       documentation and/or other materials provided with the distribution.</div><div class='add'>+</div><div class='add'>+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</div><div class='add'>+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+    SUCH DAMAGE.</div><div class='add'>+</div><div class='add'>+[enc/cesu_8.c]</div><div class='add'>+[enc/windows_1253.c]</div><div class='add'>+[enc/windows_1254.c]</div><div class='add'>+[enc/windows_1257.c]</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (c) 2002-2007::  K.Kosako  &lt;sndgk393 AT ybb DOT ne DOT jp&gt;</div><div class='add'>+    All rights reserved.</div><div class='add'>+</div><div class='add'>+    Redistribution and use in source and binary forms, with or without</div><div class='add'>+    modification, are permitted provided that the following conditions</div><div class='add'>+    are met:</div><div class='add'>+    1. Redistributions of source code must retain the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer.</div><div class='add'>+    2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+       notice, this list of conditions and the following disclaimer in the</div><div class='add'>+       documentation and/or other materials provided with the distribution.</div><div class='add'>+</div><div class='add'>+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</div><div class='add'>+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+    SUCH DAMAGE.</div><div class='add'>+</div><div class='add'>+[enc/trans/GB/GB12345%UCS.src]</div><div class='add'>+[enc/trans/GB/UCS%GB12345.src]</div><div class='add'>+[enc/trans/GB/GB2312%UCS.src]</div><div class='add'>+[enc/trans/GB/UCS%GB2312.src]</div><div class='ctx'> </div><div class='ctx'>   These files have this explanatory texts.</div><div class='ctx'> </div><div class='hunk'>@@ -165,12 +250,12 @@ enc/trans/GB/UCS%GB2312.src::</div><div class='ctx'>     files for any particular purpose, and has ceased to publish the files many</div><div class='ctx'>     years ago.</div><div class='ctx'> </div><div class='del'>-enc/trans/JIS/JISX0201-KANA%UCS.src::</div><div class='del'>-enc/trans/JIS/JISX0208\@1990%UCS.src::</div><div class='del'>-enc/trans/JIS/JISX0212%UCS.src::</div><div class='del'>-enc/trans/JIS/UCS%JISX0201-KANA.src::</div><div class='del'>-enc/trans/JIS/UCS%JISX0208@1990.src::</div><div class='del'>-enc/trans/JIS/UCS%JISX0212.src::</div><div class='add'>+[enc/trans/JIS/JISX0201-KANA%UCS.src]</div><div class='add'>+[enc/trans/JIS/JISX0208\@1990%UCS.src]</div><div class='add'>+[enc/trans/JIS/JISX0212%UCS.src]</div><div class='add'>+[enc/trans/JIS/UCS%JISX0201-KANA.src]</div><div class='add'>+[enc/trans/JIS/UCS%JISX0208@1990.src]</div><div class='add'>+[enc/trans/JIS/UCS%JISX0212.src]</div><div class='ctx'> </div><div class='ctx'>   These files are copyrighted as the following.</div><div class='ctx'> </div><div class='hunk'>@@ -179,49 +264,64 @@ enc/trans/JIS/UCS%JISX0212.src::</div><div class='ctx'> </div><div class='ctx'>     For terms of use, see http://www.unicode.org/terms_of_use.html</div><div class='ctx'> </div><div class='del'>-enc/trans/JIS/JISX0213-1%UCS@BMP.src::</div><div class='del'>-enc/trans/JIS/JISX0213-1%UCS@SIP.src::</div><div class='del'>-enc/trans/JIS/JISX0213-2%UCS@BMP.src::</div><div class='del'>-enc/trans/JIS/JISX0213-2%UCS@SIP.src::</div><div class='add'>+[enc/trans/JIS/JISX0213-1%UCS@BMP.src]</div><div class='add'>+[enc/trans/JIS/JISX0213-1%UCS@SIP.src]</div><div class='add'>+[enc/trans/JIS/JISX0213-2%UCS@BMP.src]</div><div class='add'>+[enc/trans/JIS/JISX0213-2%UCS@SIP.src]</div><div class='ctx'> </div><div class='ctx'>   These files are copyrighted as the following.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (C) 2001 earthian@tama.or.jp, All Rights Reserved.  </div><div class='del'>-    Copyright (C) 2001 I'O, All Rights Reserved.  </div><div class='del'>-    Copyright (C) 2006 Project X0213, All Rights Reserved.  </div><div class='add'>+    Copyright (C) 2001:: earthian@tama.or.jp, All Rights Reserved.</div><div class='add'>+    Copyright (C) 2001:: I'O, All Rights Reserved.</div><div class='add'>+    Copyright (C) 2006:: Project X0213, All Rights Reserved.</div><div class='ctx'>     You can use, modify, distribute this table freely.</div><div class='ctx'> </div><div class='del'>-enc/trans/JIS/UCS@BMP%JISX0213-1.src::</div><div class='del'>-enc/trans/JIS/UCS@BMP%JISX0213-2.src::</div><div class='del'>-enc/trans/JIS/UCS@SIP%JISX0213-1.src::</div><div class='del'>-enc/trans/JIS/UCS@SIP%JISX0213-2.src::</div><div class='add'>+[enc/trans/JIS/UCS@BMP%JISX0213-1.src]</div><div class='add'>+[enc/trans/JIS/UCS@BMP%JISX0213-2.src]</div><div class='add'>+[enc/trans/JIS/UCS@SIP%JISX0213-1.src]</div><div class='add'>+[enc/trans/JIS/UCS@SIP%JISX0213-2.src]</div><div class='ctx'> </div><div class='ctx'>   These files are copyrighted as the following.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (C) 2001 earthian@tama.or.jp, All Rights Reserved.  </div><div class='del'>-    Copyright (C) 2001 I'O, All Rights Reserved.  </div><div class='add'>+    Copyright (C) 2001:: earthian@tama.or.jp, All Rights Reserved.</div><div class='add'>+    Copyright (C) 2001:: I'O, All Rights Reserved.</div><div class='ctx'>     You can use, modify, distribute this table freely.</div><div class='ctx'> </div><div class='del'>-configure::</div><div class='add'>+[enc/trans/ucm/glibc-BIG5-2.3.3.ucm]</div><div class='add'>+[enc/trans/ucm/glibc-BIG5HKSCS-2.3.3.ucm]</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (C) 2001-2005:: International Business Machines</div><div class='add'>+                              Corporation and others.  All Rights Reserved.</div><div class='add'>+</div><div class='add'>+[enc/trans/ucm/windows-950-2000.ucm]</div><div class='add'>+[enc/trans/ucm/windows-950_hkscs-2001.ucm]</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (C) 2001-2002:: International Business Machines</div><div class='add'>+                              Corporation and others.  All Rights Reserved.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+[configure]</div><div class='ctx'> </div><div class='ctx'>   This file is free software.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.</div><div class='add'>+    Copyright (C) 1992-1996, 1998-2012:: Free Software Foundation, Inc.</div><div class='ctx'> </div><div class='ctx'>     This configure script is free software; the Free Software Foundation</div><div class='ctx'>     gives unlimited permission to copy, distribute and modify it.</div><div class='ctx'> </div><div class='del'>-tool/config.guess::</div><div class='del'>-tool/config.sub::</div><div class='add'>+[tool/config.guess]</div><div class='add'>+[tool/config.sub]</div><div class='ctx'> </div><div class='ctx'>   As long as you distribute these files with the file configure, they</div><div class='ctx'>   are covered under the Ruby's license.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright 1992-2018 Free Software Foundation, Inc.</div><div class='add'>+    Copyright 1992-2018:: Free Software Foundation, Inc.</div><div class='ctx'> </div><div class='ctx'>     This file is free software; you can redistribute it and/or modify it</div><div class='ctx'>     under the terms of the GNU General Public License as published by</div><div class='hunk'>@@ -243,14 +343,43 @@ tool/config.sub::</div><div class='ctx'>     program.  This Exception is an additional permission under section 7</div><div class='ctx'>     of the GNU General Public License, version 3 ("GPLv3").</div><div class='ctx'> </div><div class='del'>-parse.c::</div><div class='add'>+[tool/lib/test/*]</div><div class='add'>+[tool/lib/core_assertions.rb]</div><div class='add'>+</div><div class='add'>+  Some of methods on these files are based on MiniTest 4. MiniTest 4 is</div><div class='add'>+  distributed under the MIT License.</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (c) Ryan Davis, seattle.rb</div><div class='add'>+</div><div class='add'>+    Permission is hereby granted, free of charge, to any person obtaining</div><div class='add'>+    a copy of this software and associated documentation files (the</div><div class='add'>+    'Software'), to deal in the Software without restriction, including</div><div class='add'>+    without limitation the rights to use, copy, modify, merge, publish,</div><div class='add'>+    distribute, sublicense, and/or sell copies of the Software, and to</div><div class='add'>+    permit persons to whom the Software is furnished to do so, subject to</div><div class='add'>+    the following conditions:</div><div class='add'>+</div><div class='add'>+    The above copyright notice and this permission notice shall be</div><div class='add'>+    included in all copies or substantial portions of the Software.</div><div class='add'>+</div><div class='add'>+    THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,</div><div class='add'>+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</div><div class='add'>+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</div><div class='add'>+    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY</div><div class='add'>+    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,</div><div class='add'>+    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE</div><div class='add'>+    SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</div><div class='ctx'> </div><div class='del'>-  This file is licensed under the GPL, but is incorporated into Ruby and</div><div class='add'>+[parse.c]</div><div class='add'>+[parse.h]</div><div class='add'>+</div><div class='add'>+  These files are licensed under the GPL, but are incorporated into Ruby and</div><div class='ctx'>   redistributed under the terms of the Ruby license, as permitted by the</div><div class='ctx'>   exception to the GPL below.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.</div><div class='add'>+    Copyright (C) 1984, 1989-1990, 2000-2015, 2018:: Free Software Foundation, Inc.</div><div class='ctx'> </div><div class='ctx'>     This program is free software: you can redistribute it and/or modify</div><div class='ctx'>     it under the terms of the GNU General Public License as published by</div><div class='hunk'>@@ -278,12 +407,12 @@ parse.c::</div><div class='ctx'>     This special exception was added by the Free Software Foundation in</div><div class='ctx'>     version 2.2 of Bison.</div><div class='ctx'> </div><div class='del'>-util.c (partly)::</div><div class='add'>+[missing/dtoa.c]</div><div class='ctx'> </div><div class='del'>-  This file contains the source code under these licenses.</div><div class='add'>+  This file is under these licenses.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (c) 1991, 2000, 2001 by Lucent Technologies.</div><div class='add'>+    Copyright (c) 1991, 2000, 2001:: by Lucent Technologies.</div><div class='ctx'> </div><div class='ctx'>     Permission to use, copy, modify, and distribute this software for any</div><div class='ctx'>     purpose without fee is hereby granted, provided that this entire notice</div><div class='hunk'>@@ -297,8 +426,8 @@ util.c (partly)::</div><div class='ctx'>     OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (c) 2004-2008 David Schultz &lt;das@FreeBSD.ORG&gt;  </div><div class='del'>-    All rights reserved.</div><div class='add'>+    Copyright (c) 2004-2008:: David Schultz &lt;das@FreeBSD.ORG&gt;</div><div class='add'>+                              All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     Redistribution and use in source and binary forms, with or without</div><div class='ctx'>     modification, are permitted provided that the following conditions</div><div class='hunk'>@@ -321,32 +450,34 @@ util.c (partly)::</div><div class='ctx'>     OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='ctx'>     SUCH DAMAGE.</div><div class='ctx'> </div><div class='del'>-win32/win32.{c,h}::</div><div class='add'>+[win32/win32.c]</div><div class='add'>+[include/ruby/win32.h]</div><div class='ctx'> </div><div class='ctx'>   You can apply the Artistic License to these files. (or GPL,</div><div class='ctx'>   alternatively)</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (c) 1993, Intergraph Corporation</div><div class='add'>+    Copyright (c) 1993:: Intergraph Corporation</div><div class='ctx'> </div><div class='ctx'>     You may distribute under the terms of either the GNU General Public</div><div class='ctx'>     License or the Artistic License, as specified in the perl README file.</div><div class='ctx'> </div><div class='del'>-random.c::</div><div class='add'>+[missing/mt19937.c]</div><div class='ctx'> </div><div class='del'>-  This file contains the source code under the new-style BSD license.</div><div class='add'>+  This file is under the new-style BSD license.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    A C-program for MT19937, with initialization improved 2002/2/10.</div><div class='del'>-    Coded by Takuji Nishimura and Makoto Matsumoto.  </div><div class='add'>+    A C-program for MT19937, with initialization improved 2002/2/10.::</div><div class='add'>+    Coded by Takuji Nishimura and Makoto Matsumoto.</div><div class='add'>+</div><div class='ctx'>     This is a faster version by taking Shawn Cokus's optimization,</div><div class='ctx'>     Matthe Bellew's simplification, Isaku Wada's real version.</div><div class='ctx'> </div><div class='ctx'>     Before using, initialize the state by using init_genrand(seed)</div><div class='ctx'>     or init_by_array(init_key, key_length).</div><div class='ctx'> </div><div class='del'>-    Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,</div><div class='del'>-    All rights reserved.</div><div class='add'>+    Copyright (C) 1997 - 2002:: Makoto Matsumoto and Takuji Nishimura,</div><div class='add'>+                                All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     Redistribution and use in source and binary forms, with or without</div><div class='ctx'>     modification, are permitted provided that the following conditions</div><div class='hunk'>@@ -382,13 +513,13 @@ random.c::</div><div class='ctx'> </div><div class='ctx'>   The Wayback Machine url: http://web.archive.org/web/19990429082237/http://www.math.keio.ac.jp/matumoto/emt.html</div><div class='ctx'> </div><div class='del'>-vm_dump.c:procstat_vm::</div><div class='add'>+[missing/procstat_vm.c]</div><div class='ctx'> </div><div class='del'>-  This file contains the source code under the new-style BSD license.</div><div class='add'>+  This file is under the new-style BSD license.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (c) 2007 Robert N. M. Watson  </div><div class='del'>-    All rights reserved.</div><div class='add'>+    Copyright (c) 2007:: Robert N. M. Watson</div><div class='add'>+                         All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     Redistribution and use in source and binary forms, with or without</div><div class='ctx'>     modification, are permitted provided that the following conditions</div><div class='hunk'>@@ -413,151 +544,65 @@ vm_dump.c:procstat_vm::</div><div class='ctx'> </div><div class='ctx'>     $FreeBSD: head/usr.bin/procstat/procstat_vm.c 261780 2014-02-11 21:57:37Z jhb $</div><div class='ctx'> </div><div class='del'>-vsnprintf.c::</div><div class='add'>+[vsnprintf.c]</div><div class='ctx'> </div><div class='del'>-  This file is under the old-style BSD license.  Note that the</div><div class='del'>-  paragraph 3 below is now null and void.</div><div class='add'>+  This file is under the {old-style BSD license}[rdoc-label:label-Old-style+BSD+license].</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (c) 1990, 1993  </div><div class='add'>+    Copyright (c) 1990, 1993::</div><div class='ctx'>     The Regents of the University of California.  All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     This code is derived from software contributed to Berkeley by</div><div class='ctx'>     Chris Torek.</div><div class='ctx'> </div><div class='del'>-    Redistribution and use in source and binary forms, with or without</div><div class='del'>-    modification, are permitted provided that the following conditions</div><div class='del'>-    are met:</div><div class='del'>-    1. Redistributions of source code must retain the above copyright</div><div class='del'>-       notice, this list of conditions and the following disclaimer.</div><div class='del'>-    2. Redistributions in binary form must reproduce the above copyright</div><div class='del'>-       notice, this list of conditions and the following disclaimer in the</div><div class='del'>-       documentation and/or other materials provided with the distribution.</div><div class='del'>-    3. Neither the name of the University nor the names of its contributors</div><div class='del'>-       may be used to endorse or promote products derived from this software</div><div class='del'>-       without specific prior written permission.</div><div class='del'>-</div><div class='del'>-    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND</div><div class='del'>-    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='del'>-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='del'>-    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE</div><div class='del'>-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='del'>-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='del'>-    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='del'>-    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='del'>-    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='del'>-    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='del'>-    SUCH DAMAGE.</div><div class='del'>-</div><div class='del'>-    IMPORTANT NOTE:</div><div class='del'>-    --------------</div><div class='del'>-    From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change</div><div class='del'>-    paragraph 3 above is now null and void.</div><div class='del'>-</div><div class='del'>-st.c::</div><div class='del'>-strftime.c::</div><div class='del'>-include/ruby/st.h::</div><div class='del'>-missing/acosh.c::</div><div class='del'>-missing/alloca.c::</div><div class='del'>-missing/dup2.c::</div><div class='del'>-missing/erf.c::</div><div class='del'>-missing/finite.c::</div><div class='del'>-missing/hypot.c::</div><div class='del'>-missing/isinf.c::</div><div class='del'>-missing/isnan.c::</div><div class='del'>-missing/lgamma_r.c::</div><div class='del'>-missing/memcmp.c::</div><div class='del'>-missing/memmove.c::</div><div class='del'>-missing/strchr.c::</div><div class='del'>-missing/strerror.c::</div><div class='del'>-missing/strstr.c::</div><div class='del'>-missing/tgamma.c::</div><div class='del'>-ext/date/date_strftime.c::</div><div class='del'>-ext/digest/sha1/sha1.c::</div><div class='del'>-ext/digest/sha1/sha1.h::</div><div class='del'>-ext/sdbm/_sdbm.c::</div><div class='del'>-ext/sdbm/sdbm.h::</div><div class='add'>+[st.c]</div><div class='add'>+[strftime.c]</div><div class='add'>+[include/ruby/st.h]</div><div class='add'>+[missing/acosh.c]</div><div class='add'>+[missing/alloca.c]</div><div class='add'>+[missing/erf.c]</div><div class='add'>+[missing/hypot.c]</div><div class='add'>+[missing/lgamma_r.c]</div><div class='add'>+[missing/memcmp.c]</div><div class='add'>+[missing/memmove.c]</div><div class='add'>+[missing/strchr.c]</div><div class='add'>+[missing/strerror.c]</div><div class='add'>+[missing/strstr.c]</div><div class='add'>+[missing/tgamma.c]</div><div class='add'>+[ext/date/date_strftime.c]</div><div class='add'>+[ext/digest/sha1/sha1.c]</div><div class='add'>+[ext/digest/sha1/sha1.h]</div><div class='ctx'> </div><div class='ctx'>   These files are all under public domain.</div><div class='ctx'> </div><div class='del'>-missing/crypt.c::</div><div class='add'>+[missing/crypt.c]</div><div class='ctx'> </div><div class='del'>-  This file is under the old-style BSD license.  Note that the</div><div class='del'>-  paragraph 3 below is now null and void.</div><div class='add'>+  This file is under the {old-style BSD license}[rdoc-label:label-Old-style+BSD+license].</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (c) 1989, 1993  </div><div class='add'>+    Copyright (c) 1989, 1993::</div><div class='ctx'>     The Regents of the University of California.  All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     This code is derived from software contributed to Berkeley by</div><div class='ctx'>     Tom Truscott.</div><div class='ctx'> </div><div class='del'>-    Redistribution and use in source and binary forms, with or without</div><div class='del'>-    modification, are permitted provided that the following conditions</div><div class='del'>-    are met:</div><div class='del'>-    1. Redistributions of source code must retain the above copyright</div><div class='del'>-       notice, this list of conditions and the following disclaimer.</div><div class='del'>-    2. Redistributions in binary form must reproduce the above copyright</div><div class='del'>-       notice, this list of conditions and the following disclaimer in the</div><div class='del'>-       documentation and/or other materials provided with the distribution.</div><div class='del'>-    3. Neither the name of the University nor the names of its contributors</div><div class='del'>-       may be used to endorse or promote products derived from this software</div><div class='del'>-       without specific prior written permission.</div><div class='del'>-</div><div class='del'>-    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND</div><div class='del'>-    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='del'>-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='del'>-    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE</div><div class='del'>-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='del'>-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='del'>-    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='del'>-    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='del'>-    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='del'>-    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='del'>-    SUCH DAMAGE.</div><div class='del'>-</div><div class='del'>-missing/setproctitle.c::</div><div class='add'>+[missing/setproctitle.c]</div><div class='ctx'> </div><div class='del'>-  This file is under the old-style BSD license.  Note that the</div><div class='del'>-  paragraph 3 below is now null and void.</div><div class='add'>+  This file is under the {old-style BSD license}[rdoc-label:label-Old-style+BSD+license].</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright 2003 Damien Miller  </div><div class='del'>-    Copyright (c) 1983, 1995-1997 Eric P. Allman  </div><div class='del'>-    Copyright (c) 1988, 1993  </div><div class='add'>+    Copyright 2003:: Damien Miller</div><div class='add'>+    Copyright (c) 1983, 1995-1997:: Eric P. Allman</div><div class='add'>+    Copyright (c) 1988, 1993::</div><div class='ctx'>     The Regents of the University of California.  All rights reserved.</div><div class='ctx'> </div><div class='del'>-    Redistribution and use in source and binary forms, with or without</div><div class='del'>-    modification, are permitted provided that the following conditions</div><div class='del'>-    are met:</div><div class='del'>-    1. Redistributions of source code must retain the above copyright</div><div class='del'>-       notice, this list of conditions and the following disclaimer.</div><div class='del'>-    2. Redistributions in binary form must reproduce the above copyright</div><div class='del'>-       notice, this list of conditions and the following disclaimer in the</div><div class='del'>-       documentation and/or other materials provided with the distribution.</div><div class='del'>-    3. Neither the name of the University nor the names of its contributors</div><div class='del'>-       may be used to endorse or promote products derived from this software</div><div class='del'>-       without specific prior written permission.</div><div class='del'>-</div><div class='del'>-    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND</div><div class='del'>-    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='del'>-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='del'>-    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE</div><div class='del'>-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='del'>-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='del'>-    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='del'>-    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='del'>-    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='del'>-    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='del'>-    SUCH DAMAGE.</div><div class='del'>-</div><div class='del'>-missing/strlcat.c::</div><div class='del'>-missing/strlcpy.c::</div><div class='add'>+[missing/strlcat.c]</div><div class='add'>+[missing/strlcpy.c]</div><div class='ctx'> </div><div class='ctx'>   These files are under an ISC-style license.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (c) 1998, 2015 Todd C. Miller &lt;Todd.Miller@courtesan.com&gt;</div><div class='add'>+    Copyright (c) 1998, 2015:: Todd C. Miller &lt;Todd.Miller@courtesan.com&gt;</div><div class='ctx'> </div><div class='ctx'>     Permission to use, copy, modify, and distribute this software for any</div><div class='ctx'>     purpose with or without fee is hereby granted, provided that the above</div><div class='hunk'>@@ -571,26 +616,26 @@ missing/strlcpy.c::</div><div class='ctx'>     ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF</div><div class='ctx'>     OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</div><div class='ctx'> </div><div class='del'>-missing/langinfo.c::</div><div class='add'>+[missing/langinfo.c]</div><div class='ctx'> </div><div class='ctx'>   This file is from http://www.cl.cam.ac.uk/~mgk25/ucs/langinfo.c.</div><div class='ctx'>   Ruby uses a modified version. The file contains the following</div><div class='ctx'>   author/copyright notice:</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Markus.Kuhn@cl.cam.ac.uk -- 2002-03-11  </div><div class='add'>+    Markus.Kuhn@cl.cam.ac.uk -- 2002-03-11::</div><div class='ctx'>     Permission to use, copy, modify, and distribute this software</div><div class='ctx'>     for any purpose and without fee is hereby granted. The author</div><div class='ctx'>     disclaims all warranties with regard to this software.</div><div class='ctx'> </div><div class='del'>-ext/digest/md5/md5.c::</div><div class='del'>-ext/digest/md5/md5.h::</div><div class='add'>+[ext/digest/md5/md5.c]</div><div class='add'>+[ext/digest/md5/md5.h]</div><div class='ctx'> </div><div class='ctx'>   These files are under the following license.  Ruby uses modified</div><div class='ctx'>   versions of them.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (C) 1999, 2000 Aladdin Enterprises.  All rights reserved.</div><div class='add'>+    Copyright (C) 1999, 2000:: Aladdin Enterprises.  All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     This software is provided 'as-is', without any express or implied</div><div class='ctx'>     warranty.  In no event will the authors be held liable for any damages</div><div class='hunk'>@@ -611,8 +656,8 @@ ext/digest/md5/md5.h::</div><div class='ctx'>     L. Peter Deutsch</div><div class='ctx'>     ghost@aladdin.com</div><div class='ctx'> </div><div class='del'>-ext/digest/rmd160/rmd160.c::</div><div class='del'>-ext/digest/rmd160/rmd160.h::</div><div class='add'>+[ext/digest/rmd160/rmd160.c]</div><div class='add'>+[ext/digest/rmd160/rmd160.h]</div><div class='ctx'> </div><div class='ctx'>   These files have the following copyright information, and by the</div><div class='ctx'>   author we are allowed to use it under the new-style BSD license.</div><div class='hunk'>@@ -622,16 +667,16 @@ ext/digest/rmd160/rmd160.h::</div><div class='ctx'>               (Arranged for libc by Todd C. Miller)</div><div class='ctx'>     DATE::    1 March 1996</div><div class='ctx'> </div><div class='del'>-    Copyright (c) Katholieke Universiteit Leuven</div><div class='add'>+    Copyright (c):: Katholieke Universiteit Leuven</div><div class='ctx'>     1996, All Rights Reserved</div><div class='ctx'> </div><div class='del'>-ext/digest/sha2/sha2.c::</div><div class='del'>-ext/digest/sha2/sha2.h::</div><div class='add'>+[ext/digest/sha2/sha2.c]</div><div class='add'>+[ext/digest/sha2/sha2.h]</div><div class='ctx'> </div><div class='ctx'>   These files are under the new-style BSD license.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright 2000 Aaron D. Gifford.  All rights reserved.</div><div class='add'>+    Copyright 2000:: Aaron D. Gifford.  All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     Redistribution and use in source and binary forms, with or without</div><div class='ctx'>     modification, are permitted provided that the following conditions</div><div class='hunk'>@@ -657,12 +702,12 @@ ext/digest/sha2/sha2.h::</div><div class='ctx'>     OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='ctx'>     SUCH DAMAGE.</div><div class='ctx'> </div><div class='del'>-ext/json/generator/generator.c::</div><div class='add'>+[ext/json/generator/generator.c]</div><div class='ctx'> </div><div class='ctx'>   The file contains the following copyright notice.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright 2001-2004 Unicode, Inc.</div><div class='add'>+    Copyright 2001-2004:: Unicode, Inc.</div><div class='ctx'> </div><div class='ctx'>     Disclaimer::</div><div class='ctx'> </div><div class='hunk'>@@ -682,15 +727,15 @@ ext/json/generator/generator.c::</div><div class='ctx'>       for internal or external distribution as long as this notice</div><div class='ctx'>       remains attached.</div><div class='ctx'> </div><div class='del'>-ext/nkf/nkf-utf8/config.h::</div><div class='del'>-ext/nkf/nkf-utf8/nkf.c::</div><div class='del'>-ext/nkf/nkf-utf8/utf8tbl.c::</div><div class='add'>+[ext/nkf/nkf-utf8/config.h]</div><div class='add'>+[ext/nkf/nkf-utf8/nkf.c]</div><div class='add'>+[ext/nkf/nkf-utf8/utf8tbl.c]</div><div class='ctx'> </div><div class='ctx'>   These files are under the following license.  So to speak, it is</div><div class='ctx'>   copyrighted semi-public-domain software.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA)</div><div class='add'>+    Copyright (C) 1987:: Fujitsu LTD. (Itaru ICHIKAWA)</div><div class='ctx'> </div><div class='ctx'>     Everyone is permitted to do anything on this program</div><div class='ctx'>     including copying, modifying, improving,</div><div class='hunk'>@@ -700,14 +745,14 @@ ext/nkf/nkf-utf8/utf8tbl.c::</div><div class='ctx'>     You don't have to ask before copying, redistribution or publishing.</div><div class='ctx'>     THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE.</div><div class='ctx'> </div><div class='del'>-ext/psych::</div><div class='del'>-test/psych::</div><div class='add'>+[ext/psych]</div><div class='add'>+[test/psych]</div><div class='ctx'> </div><div class='ctx'>   The files under these directories are under the following license, except for</div><div class='ctx'>   ext/psych/yaml.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright 2009 Aaron Patterson, et al.</div><div class='add'>+    Copyright 2009:: Aaron Patterson, et al.</div><div class='ctx'> </div><div class='ctx'>     Permission is hereby granted, free of charge, to any person obtaining a copy of</div><div class='ctx'>     this software and associated documentation files (the 'Software'), to deal in</div><div class='hunk'>@@ -727,12 +772,12 @@ test/psych::</div><div class='ctx'>     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</div><div class='ctx'>     SOFTWARE.</div><div class='ctx'> </div><div class='del'>-ext/psych/yaml::</div><div class='add'>+[ext/psych/yaml]</div><div class='ctx'> </div><div class='ctx'>   The files under this directory are under the following license.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (c) 2006 Kirill Simonov</div><div class='add'>+    Copyright (c) 2006:: Kirill Simonov</div><div class='ctx'> </div><div class='ctx'>     Permission is hereby granted, free of charge, to any person obtaining a copy of</div><div class='ctx'>     this software and associated documentation files (the "Software"), to deal in</div><div class='hunk'>@@ -752,14 +797,28 @@ ext/psych/yaml::</div><div class='ctx'>     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</div><div class='ctx'>     SOFTWARE.</div><div class='ctx'> </div><div class='del'>-ext/socket/addrinfo.h::</div><div class='del'>-ext/socket/getaddrinfo.c::</div><div class='del'>-ext/socket/getnameinfo.c::</div><div class='add'>+[ext/pty/pty.c]</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    C) Copyright 1998:: by Akinori Ito.</div><div class='add'>+</div><div class='add'>+    This software may be redistributed freely for this purpose, in full</div><div class='add'>+    or in part, provided that this entire copyright notice is included</div><div class='add'>+    on any copies of this software and applications and derivations thereof.</div><div class='add'>+</div><div class='add'>+    This software is provided on an "as is" basis, without warranty of any</div><div class='add'>+    kind, either expressed or implied, as to any matter including, but not</div><div class='add'>+    limited to warranty of fitness of purpose, or merchantability, or</div><div class='add'>+    results obtained from use of this software.</div><div class='add'>+</div><div class='add'>+[ext/socket/addrinfo.h]</div><div class='add'>+[ext/socket/getaddrinfo.c]</div><div class='add'>+[ext/socket/getnameinfo.c]</div><div class='ctx'> </div><div class='ctx'>   These files are under the new-style BSD license.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.</div><div class='add'>+    Copyright (C) 1995, 1996, 1997, 1998, and 1999:: WIDE Project.</div><div class='ctx'>     All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     Redistribution and use in source and binary forms, with or without</div><div class='hunk'>@@ -786,16 +845,16 @@ ext/socket/getnameinfo.c::</div><div class='ctx'>     OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='ctx'>     SUCH DAMAGE.</div><div class='ctx'> </div><div class='del'>-ext/win32ole/win32ole.c::</div><div class='add'>+[ext/win32ole/win32ole.c]</div><div class='ctx'> </div><div class='ctx'>   You can apply the Artistic License to this file. (or GPL,</div><div class='ctx'>   alternatively)</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    (c) 1995 Microsoft Corporation. All rights reserved.</div><div class='add'>+    (c) 1995:: Microsoft Corporation. All rights reserved.</div><div class='ctx'>     Developed by ActiveWare Internet Corp., http://www.ActiveWare.com</div><div class='ctx'> </div><div class='del'>-    Other modifications Copyright (c) 1997, 1998 by Gurusamy Sarathy</div><div class='add'>+    Other modifications Copyright (c) 1997, 1998:: by Gurusamy Sarathy</div><div class='ctx'>     &lt;gsar@umich.edu&gt; and Jan Dubois &lt;jan.dubois@ibm.net&gt;</div><div class='ctx'> </div><div class='ctx'>     You may distribute under the terms of either the GNU General Public</div><div class='hunk'>@@ -804,20 +863,17 @@ ext/win32ole/win32ole.c::</div><div class='ctx'> </div><div class='ctx'>   The Wayback Machine url: http://web.archive.org/web/19970607104352/http://www.activeware.com:80/</div><div class='ctx'> </div><div class='del'>-lib/rdoc/generator/template/darkfish/css/fonts.css::</div><div class='add'>+[lib/rdoc/generator/template/darkfish/css/fonts.css]</div><div class='ctx'> </div><div class='del'>-  This file is licensed under the SIL Open Font License.</div><div class='add'>+  This file is licensed under the {SIL Open Font License}[http://scripts.sil.org/OFL].</div><div class='ctx'> </div><div class='del'>-  &gt;&gt;&gt;</div><div class='del'>-    http://scripts.sil.org/OFL</div><div class='del'>-</div><div class='del'>-spec/mspec::</div><div class='del'>-spec/ruby::</div><div class='add'>+[spec/mspec]</div><div class='add'>+[spec/ruby]</div><div class='ctx'> </div><div class='ctx'>   The files under these directories are under the following license.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Copyright (c) 2008 Engine Yard, Inc. All rights reserved.</div><div class='add'>+    Copyright (c) 2008:: Engine Yard, Inc. All rights reserved.</div><div class='ctx'> </div><div class='ctx'>     Permission is hereby granted, free of charge, to any person</div><div class='ctx'>     obtaining a copy of this software and associated documentation</div><div class='hunk'>@@ -840,17 +896,17 @@ spec/ruby::</div><div class='ctx'>     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR</div><div class='ctx'>     OTHER DEALINGS IN THE SOFTWARE.</div><div class='ctx'> </div><div class='del'>-lib/rubygems.rb::</div><div class='del'>-lib/rubygems::</div><div class='del'>-test/rubygems::</div><div class='add'>+[lib/rubygems.rb]</div><div class='add'>+[lib/rubygems]</div><div class='add'>+[test/rubygems]</div><div class='ctx'> </div><div class='ctx'>   RubyGems is under the following license.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='ctx'>     RubyGems is copyrighted free software by Chad Fowler, Rich Kilmer, Jim</div><div class='ctx'>     Weirich and others.  You can redistribute it and/or modify it under</div><div class='del'>-    either the terms of the MIT license (see the file MIT.txt), or the</div><div class='del'>-    conditions below:</div><div class='add'>+    either the terms of the {MIT license}[rdoc-label:label-MIT+License], or the conditions</div><div class='add'>+    below:</div><div class='ctx'> </div><div class='ctx'>     1. You may make and give away verbatim copies of the source form of the</div><div class='ctx'>        software without restriction, provided that you duplicate all of the</div><div class='hunk'>@@ -901,20 +957,117 @@ test/rubygems::</div><div class='ctx'>        WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR</div><div class='ctx'>        PURPOSE.</div><div class='ctx'> </div><div class='del'>-lib/bundler::</div><div class='del'>-lib/bundler.rb::</div><div class='del'>-lib/bundler.gemspec::</div><div class='del'>-spec/bundler::</div><div class='del'>-man/bundle-*,gemfile.*::</div><div class='add'>+[lib/bundler]</div><div class='add'>+[lib/bundler.rb]</div><div class='add'>+[spec/bundler]</div><div class='ctx'> </div><div class='ctx'>   Bundler is under the following license.</div><div class='ctx'> </div><div class='ctx'>   &gt;&gt;&gt;</div><div class='del'>-    Portions copyright (c) 2010 Andre Arko  </div><div class='del'>-    Portions copyright (c) 2009 Engine Yard  </div><div class='add'>+    Portions copyright (c) 2010:: Andre Arko</div><div class='add'>+    Portions copyright (c) 2009:: Engine Yard</div><div class='add'>+</div><div class='add'>+    {MIT License}[rdoc-label:label-MIT+License]</div><div class='add'>+</div><div class='add'>+[lib/bundler/vendor/thor]</div><div class='add'>+</div><div class='add'>+  Thor is under the following license.</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (c) 2008 Yehuda Katz, Eric Hodel, et al.</div><div class='add'>+</div><div class='add'>+    {MIT License}[rdoc-label:label-MIT+License]</div><div class='add'>+</div><div class='add'>+[lib/rubygems/resolver/molinillo]</div><div class='add'>+</div><div class='add'>+  molinillo is under the following license.</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (c) 2014 Samuel E. Giddins segiddins@segiddins.me</div><div class='add'>+</div><div class='add'>+    {MIT License}[rdoc-label:label-MIT+License]</div><div class='add'>+</div><div class='add'>+[lib/bundler/vendor/pub_grub]</div><div class='add'>+</div><div class='add'>+  pub_grub is under the following license.</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (c) 2018 John Hawthorn</div><div class='add'>+</div><div class='add'>+    {MIT License}[rdoc-label:label-MIT+License]</div><div class='add'>+</div><div class='add'>+[lib/bundler/vendor/connection_pool]</div><div class='add'>+</div><div class='add'>+  connection_pool is under the following license.</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (c) 2011 Mike Perham</div><div class='add'>+</div><div class='add'>+    {MIT License}[rdoc-label:label-MIT+License]</div><div class='add'>+</div><div class='add'>+[lib/bundler/vendor/net-http-persistent]</div><div class='add'>+</div><div class='add'>+  net-http-persistent is under the following license.</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (c) Eric Hodel, Aaron Patterson</div><div class='ctx'> </div><div class='del'>-    MIT License::</div><div class='add'>+    {MIT License}[rdoc-label:label-MIT+License]</div><div class='ctx'> </div><div class='add'>+[lib/did_you_mean]</div><div class='add'>+[lib/did_you_mean.rb]</div><div class='add'>+[test/did_you_mean]</div><div class='add'>+</div><div class='add'>+  did_you_mean is under the following license.</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (c) 2014-2016 Yuki Nishijima</div><div class='add'>+</div><div class='add'>+    {MIT License}[rdoc-label:label-MIT+License]</div><div class='add'>+</div><div class='add'>+[lib/error_highlight]</div><div class='add'>+[lib/error_highlight.rb]</div><div class='add'>+[test/error_highlight]</div><div class='add'>+</div><div class='add'>+  error_highlight is under the following license.</div><div class='add'>+</div><div class='add'>+  &gt;&gt;&gt;</div><div class='add'>+    Copyright (c) 2021 Yusuke Endoh</div><div class='add'>+</div><div class='add'>+    {MIT License}[rdoc-label:label-MIT+License]</div><div class='add'>+</div><div class='add'>+[benchmark/so_ackermann.rb]</div><div class='add'>+[benchmark/so_array.rb]</div><div class='add'>+[benchmark/so_binary_trees.rb]</div><div class='add'>+[benchmark/so_concatenate.rb]</div><div class='add'>+[benchmark/so_count_words.yml]</div><div class='add'>+[benchmark/so_exception.rb]</div><div class='add'>+[benchmark/so_fannkuch.rb]</div><div class='add'>+[benchmark/so_fasta.rb]</div><div class='add'>+[benchmark/so_k_nucleotide.yml]</div><div class='add'>+[benchmark/so_lists.rb]</div><div class='add'>+[benchmark/so_mandelbrot.rb]</div><div class='add'>+[benchmark/so_matrix.rb]</div><div class='add'>+[benchmark/so_meteor_contest.rb]</div><div class='add'>+[benchmark/so_nbody.rb]</div><div class='add'>+[benchmark/so_nested_loop.rb]</div><div class='add'>+[benchmark/so_nsieve.rb]</div><div class='add'>+[benchmark/so_nsieve_bits.rb]</div><div class='add'>+[benchmark/so_object.rb]</div><div class='add'>+[benchmark/so_partial_sums.rb]</div><div class='add'>+[benchmark/so_pidigits.rb]</div><div class='add'>+[benchmark/so_random.rb]</div><div class='add'>+[benchmark/so_reverse_complement.yml]</div><div class='add'>+[benchmark/so_sieve.rb]</div><div class='add'>+[benchmark/so_spectralnorm.rb]</div><div class='add'>+</div><div class='add'>+  These files are very old copy of then-called "The Great Computer Language</div><div class='add'>+  Shootout".  LEGAL SITUATION OF THESE FILES ARE UNCLEAR because the original</div><div class='add'>+  site has been lost.  Upstream diverged to delete several benchmarks listed</div><div class='add'>+  above.</div><div class='add'>+</div><div class='add'>+== MIT License</div><div class='add'>+&gt;&gt;&gt;</div><div class='ctx'>       Permission is hereby granted, free of charge, to any person obtaining</div><div class='ctx'>       a copy of this software and associated documentation files (the</div><div class='ctx'>       "Software"), to deal in the Software without restriction, including</div><div class='hunk'>@@ -933,3 +1086,34 @@ man/bundle-*,gemfile.*::</div><div class='ctx'>       LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION</div><div class='ctx'>       OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</div><div class='ctx'>       WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</div><div class='add'>+</div><div class='add'>+== Old-style BSD license</div><div class='add'>+&gt;&gt;&gt;</div><div class='add'>+      Redistribution and use in source and binary forms, with or without</div><div class='add'>+      modification, are permitted provided that the following conditions</div><div class='add'>+      are met:</div><div class='add'>+      1. Redistributions of source code must retain the above copyright</div><div class='add'>+         notice, this list of conditions and the following disclaimer.</div><div class='add'>+      2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+         notice, this list of conditions and the following disclaimer in the</div><div class='add'>+         documentation and/or other materials provided with the distribution.</div><div class='add'>+      3. Neither the name of the University nor the names of its contributors</div><div class='add'>+         may be used to endorse or promote products derived from this software</div><div class='add'>+         without specific prior written permission.</div><div class='add'>+</div><div class='add'>+      THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+      ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+      IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+      ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE</div><div class='add'>+      FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+      DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+      OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+      LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+      OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+      SUCH DAMAGE.</div><div class='add'>+</div><div class='add'>+      IMPORTANT NOTE::</div><div class='add'>+</div><div class='add'>+      From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change</div><div class='add'>+      paragraph 3 above is now null and void.</div><div class='head'>diff --git a/Makefile.in b/Makefile.in<br/>deleted file mode 100644<br/>index fa1e19ef37..0000000000<br/>--- a/<a href='/ruby.git/tree/Makefile.in?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>Makefile.in</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,633 +0,0 @@</div><div class='del'>-SHELL = /bin/sh</div><div class='del'>-NULLCMD = @NULLCMD@</div><div class='del'>-n=$(NULLCMD)</div><div class='del'>-ECHO1 = $(V:1=$n)</div><div class='del'>-RUNCMD = $(SHELL)</div><div class='del'>-CDPATH = .</div><div class='del'>-CHDIR = @CHDIR@</div><div class='del'>-exec = exec</div><div class='del'>-NULL = /dev/null</div><div class='del'>-PATH_SEPARATOR = @PATH_SEPARATOR@</div><div class='del'>-</div><div class='del'>-#### Start of system configuration section. ####</div><div class='del'>-</div><div class='del'>-srcdir = @srcdir@</div><div class='del'>-top_srcdir = $(srcdir)</div><div class='del'>-hdrdir = $(srcdir)/include</div><div class='del'>-PLATFORM_DIR = @PLATFORM_DIR@</div><div class='del'>-</div><div class='del'>-CC_WRAPPER = @XCC_WRAPPER@</div><div class='del'>-CC = @CC@</div><div class='del'>-CPP = @CPP@</div><div class='del'>-LD = @LD@</div><div class='del'>-YACC = bison</div><div class='del'>-PURIFY =</div><div class='del'>-AUTOCONF = autoconf</div><div class='del'>-ACLOCAL = aclocal</div><div class='del'>-CONFIGURE = @CONFIGURE@</div><div class='del'>-@SET_MAKE@</div><div class='del'>-MKFILES = @MAKEFILES@</div><div class='del'>-BASERUBY = @BASERUBY@</div><div class='del'>-HAVE_BASERUBY = @HAVE_BASERUBY@</div><div class='del'>-TEST_RUNNABLE = @TEST_RUNNABLE@</div><div class='del'>-CROSS_COMPILING = @CROSS_COMPILING@</div><div class='del'>-DOXYGEN = @DOXYGEN@</div><div class='del'>-</div><div class='del'>-prefix = @prefix@</div><div class='del'>-exec_prefix = @exec_prefix@</div><div class='del'>-bindir = @bindir@</div><div class='del'>-sbindir = @sbindir@</div><div class='del'>-libdir = @libdir@</div><div class='del'>-libexecdir = @libexecdir@</div><div class='del'>-datarootdir = @datarootdir@</div><div class='del'>-datadir = @datadir@</div><div class='del'>-arch = @arch@</div><div class='del'>-sitearch = @sitearch@</div><div class='del'>-sitedir = @sitedir@</div><div class='del'>-archlibdir = @archlibdir@</div><div class='del'>-includedir = @includedir@</div><div class='del'>-archincludedir = @archincludedir@</div><div class='del'>-rubylibprefix = @rubylibprefix@</div><div class='del'>-rubylibdir = @rubylibdir@</div><div class='del'>-rubyarchprefix = @rubyarchprefix@</div><div class='del'>-rubyarchdir = @rubyarchdir@</div><div class='del'>-rubyhdrdir = @rubyhdrdir@</div><div class='del'>-rubyarchhdrdir = @rubyarchhdrdir@</div><div class='del'>-ruby_version = @ruby_version@</div><div class='del'>-RUBY_VERSION_NAME = @RUBY_VERSION_NAME@</div><div class='del'>-UNIVERSAL_ARCHNAMES = @UNIVERSAL_ARCHNAMES@</div><div class='del'>-</div><div class='del'>-TESTUI = console</div><div class='del'>-TESTS =</div><div class='del'>-INSTALLDOC = @INSTALLDOC@</div><div class='del'>-DOCTARGETS = @RDOCTARGET@ @CAPITARGET@</div><div class='del'>-</div><div class='del'>-EXTOUT = @EXTOUT@</div><div class='del'>-TIMESTAMPDIR  = $(EXTOUT)/.timestamp</div><div class='del'>-arch_hdrdir = $(EXTOUT)/include/$(arch)</div><div class='del'>-VPATH = $(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir):$(srcdir)/missing</div><div class='del'>-</div><div class='del'>-empty =</div><div class='del'>-CC_VERSION = @CC_VERSION@</div><div class='del'>-OUTFLAG = @OUTFLAG@$(empty)</div><div class='del'>-COUTFLAG = @COUTFLAG@$(empty)</div><div class='del'>-CPPOUTFLAG = $(COUTFLAG)</div><div class='del'>-ARCH_FLAG = @ARCH_FLAG@</div><div class='del'>-CFLAGS_NO_ARCH = @CFLAGS@</div><div class='del'>-CFLAGS = $(CFLAGS_NO_ARCH) $(ARCH_FLAG)</div><div class='del'>-cflags = @cflags@</div><div class='del'>-optflags = @optflags@</div><div class='del'>-debugflags = @debugflags@</div><div class='del'>-warnflags = @warnflags@ @strict_warnflags@</div><div class='del'>-cppflags = @cppflags@</div><div class='del'>-MATHN = @MATHN@</div><div class='del'>-XCFLAGS = @XCFLAGS@ $(MATHN:yes=-DCANONICALIZATION_FOR_MATHN)</div><div class='del'>-USE_RUBYGEMS = @USE_RUBYGEMS@</div><div class='del'>-USE_RUBYGEMS_ = $(USE_RUBYGEMS:yes=)</div><div class='del'>-CPPFLAGS = @CPPFLAGS@ $(INCFLAGS) $(USE_RUBYGEMS_:no=-DDISABLE_RUBYGEMS=1)</div><div class='del'>-MJIT_SUPPORT = @MJIT_SUPPORT@</div><div class='del'>-MJIT_HEADER_FLAGS = @MJIT_HEADER_FLAGS@</div><div class='del'>-MJIT_HEADER_SUFFIX =</div><div class='del'>-MJIT_HEADER_ARCH =</div><div class='del'>-MJIT_HEADER_INSTALL_DIR = @MJIT_HEADER_INSTALL_DIR@</div><div class='del'>-MJIT_CC = @MJIT_CC@</div><div class='del'>-MJIT_CFLAGS = @MJIT_CFLAGS@</div><div class='del'>-MJIT_OPTFLAGS = @MJIT_OPTFLAGS@</div><div class='del'>-MJIT_DEBUGFLAGS = @MJIT_DEBUGFLAGS@</div><div class='del'>-MJIT_LDSHARED = @MJIT_LDSHARED@</div><div class='del'>-MJIT_DLDFLAGS = @DLDFLAGS@</div><div class='del'>-MJIT_HEADER   = rb_mjit_header.h</div><div class='del'>-MJIT_MIN_HEADER_NAME = rb_mjit_min_header-$(RUBY_PROGRAM_VERSION).h</div><div class='del'>-MJIT_MIN_HEADER = $(MJIT_HEADER_BUILD_DIR)/$(MJIT_MIN_HEADER_NAME)</div><div class='del'>-MJIT_HEADER_BUILD_DIR = $(EXTOUT)/include/$(arch)</div><div class='del'>-LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@</div><div class='del'>-EXTLDFLAGS = @EXTLDFLAGS@</div><div class='del'>-XLDFLAGS = @XLDFLAGS@ $(EXTLDFLAGS)</div><div class='del'>-EXTLIBS =</div><div class='del'>-LIBS = @LIBS@ $(EXTLIBS)</div><div class='del'>-MISSING = @LIBOBJS@ @ALLOCA@</div><div class='del'>-ENABLE_SHARED = @ENABLE_SHARED@</div><div class='del'>-LDSHARED = @LIBRUBY_LDSHARED@</div><div class='del'>-DLDSHARED = @DLDSHARED@</div><div class='del'>-DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG)</div><div class='del'>-SOLIBS = @SOLIBS@</div><div class='del'>-ENABLE_DEBUG_ENV = @ENABLE_DEBUG_ENV@</div><div class='del'>-MAINLIBS = @MAINLIBS@</div><div class='del'>-ARCHMINIOBJS = @MINIOBJS@</div><div class='del'>-DLNOBJ = @DLNOBJ@</div><div class='del'>-ENCOBJS = @ENCOBJS@</div><div class='del'>-EXTOBJS = @EXTOBJS@</div><div class='del'>-BUILTIN_ENCOBJS = @BUILTIN_ENCOBJS@</div><div class='del'>-BUILTIN_TRANSSRCS = @BUILTIN_TRANSSRCS@</div><div class='del'>-BUILTIN_TRANSOBJS = @BUILTIN_TRANSOBJS@</div><div class='del'>-POSTLINK = @POSTLINK@</div><div class='del'>-</div><div class='del'>-RUBY_BASE_NAME=@RUBY_BASE_NAME@</div><div class='del'>-RUBY_PROGRAM_VERSION=@RUBY_PROGRAM_VERSION@</div><div class='del'>-RUBY_API_VERSION=@RUBY_API_VERSION@</div><div class='del'>-RUBY_INSTALL_NAME=@RUBY_INSTALL_NAME@</div><div class='del'>-RUBY_SO_NAME=@RUBY_SO_NAME@</div><div class='del'>-EXEEXT = @EXEEXT@</div><div class='del'>-LIBEXT = @LIBEXT@</div><div class='del'>-PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)</div><div class='del'>-RUBY = $(RUBY_INSTALL_NAME)</div><div class='del'>-MINIRUBY = @MINIRUBY@\</div><div class='del'>-	$(MINIRUBYOPT)</div><div class='del'>-# RUNRUBY_COMMAND:: runruby.rb or baseruby. do not append options directly</div><div class='del'>-RUNRUBY_COMMAND = @RUNRUBY_COMMAND@</div><div class='del'>-# RUNRUBY:: run ruby with RUN_OPTS which is passed to ruby</div><div class='del'>-RUNRUBY = @RUNRUBY@ $(RUN_OPTS)</div><div class='del'>-# RUNRUBY_DEBUGGER:: debugging option for runruby.rb</div><div class='del'>-RUNRUBY_DEBUGGER = --debugger='gdb -x run.gdb --quiet --args'</div><div class='del'>-XRUBY = @XRUBY@</div><div class='del'>-BTESTRUBY = @BTESTRUBY@\</div><div class='del'>-	$(MINIRUBYOPT)</div><div class='del'>-INSTALL = @INSTALL@</div><div class='del'>-INSTALL_DATA = @INSTALL_DATA@</div><div class='del'>-INSTALL_SCRIPT = @INSTALL_SCRIPT@</div><div class='del'>-INSTALL_PROGRAM = @INSTALL_PROGRAM@</div><div class='del'>-XRUBY_LIBDIR = @XRUBY_LIBDIR@</div><div class='del'>-XRUBY_RUBYLIBDIR = @XRUBY_RUBYLIBDIR@</div><div class='del'>-XRUBY_RUBYHDRDIR = @XRUBY_RUBYHDRDIR@</div><div class='del'>-BOOTSTRAPRUBY = @BOOTSTRAPRUBY@</div><div class='del'>-</div><div class='del'>-COROUTINE_H = @X_FIBER_COROUTINE_H@</div><div class='del'>-COROUTINE_OBJ = $(COROUTINE_H:.h=.@OBJEXT@)</div><div class='del'>-</div><div class='del'>-#### End of system configuration section. ####</div><div class='del'>-</div><div class='del'>-MAJOR=	@MAJOR@</div><div class='del'>-MINOR=	@MINOR@</div><div class='del'>-TEENY=	@TEENY@</div><div class='del'>-RUBY_PROGRAM_VERSION = @RUBY_PROGRAM_VERSION@</div><div class='del'>-</div><div class='del'>-LIBRUBY_A     = @LIBRUBY_A@</div><div class='del'>-LIBRUBY_SO    = @LIBRUBY_SO@</div><div class='del'>-LIBRUBY_SONAME= @LIBRUBY_SONAME@</div><div class='del'>-LIBRUBY_ALIASES= @LIBRUBY_ALIASES@</div><div class='del'>-LIBRUBY	      = @LIBRUBY@</div><div class='del'>-LIBRUBYARG    = @LIBRUBYARG@</div><div class='del'>-LIBRUBYARG_STATIC = @LIBRUBYARG_STATIC@</div><div class='del'>-LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@</div><div class='del'>-LIBRUBY_RELATIVE = @LIBRUBY_RELATIVE@</div><div class='del'>-LIBRUBY_A_OBJS = @LIBRUBY_A_OBJS@</div><div class='del'>-</div><div class='del'>-DTRACE_REBUILD_OBJS = $(DTRACE_REBUILD:yes=$(DTRACE_DEPENDENT_OBJS))</div><div class='del'>-</div><div class='del'>-DTRACE_DEPENDENT_OBJS = array.$(OBJEXT) \</div><div class='del'>-			eval.$(OBJEXT) \</div><div class='del'>-			gc.$(OBJEXT) \</div><div class='del'>-			hash.$(OBJEXT) \</div><div class='del'>-			load.$(OBJEXT) \</div><div class='del'>-			object.$(OBJEXT) \</div><div class='del'>-			parse.$(OBJEXT) \</div><div class='del'>-			string.$(OBJEXT) \</div><div class='del'>-			symbol.$(OBJEXT) \</div><div class='del'>-			vm.$(OBJEXT)</div><div class='del'>-</div><div class='del'>-THREAD_MODEL  = @THREAD_MODEL@</div><div class='del'>-</div><div class='del'>-PREP          = @PREP@</div><div class='del'>-ARCHFILE      = @ARCHFILE@</div><div class='del'>-SETUP         =</div><div class='del'>-EXTSTATIC     = @EXTSTATIC@</div><div class='del'>-ENCSTATIC     = @ENCSTATIC@</div><div class='del'>-SET_LC_MESSAGES = env LC_MESSAGES=C</div><div class='del'>-</div><div class='del'>-MAKEDIRS      = @MKDIR_P@</div><div class='del'>-CP            = cp</div><div class='del'>-MV            = mv</div><div class='del'>-RM            = rm -f</div><div class='del'>-RMDIR         = @RMDIR@</div><div class='del'>-RMDIRS        = @RMDIRS@</div><div class='del'>-RMALL         = @RMALL@</div><div class='del'>-NM            = @NM@</div><div class='del'>-AR            = @AR@</div><div class='del'>-ARFLAGS       = @ARFLAGS@$(empty)</div><div class='del'>-RANLIB        = @RANLIB@</div><div class='del'>-AS            = @AS@</div><div class='del'>-ASFLAGS       = @ASFLAGS@ $(INCFLAGS)</div><div class='del'>-IFCHANGE      = $(srcdir)/tool/ifchange</div><div class='del'>-OBJDUMP       = @OBJDUMP@</div><div class='del'>-OBJCOPY       = @OBJCOPY@</div><div class='del'>-HAVE_GIT      = @HAVE_GIT@</div><div class='del'>-GIT           = @GIT@</div><div class='del'>-VCS           = @VCS@</div><div class='del'>-VCSUP         = @VCSUP@</div><div class='del'>-DTRACE        = @DTRACE@ @DTRACE_OPT@</div><div class='del'>-DTRACE_EXT    = @DTRACE_EXT@</div><div class='del'>-DTRACE_OBJ    = @DTRACE_OBJ@</div><div class='del'>-DTRACE_REBUILD= @DTRACE_REBUILD@</div><div class='del'>-DTRACE_GLOMMED_OBJ = $(DTRACE_REBUILD:yes=ruby-glommed.$(OBJEXT))</div><div class='del'>-</div><div class='del'>-OBJEXT        = @OBJEXT@</div><div class='del'>-ASMEXT        = S</div><div class='del'>-SOEXT         = @SOEXT@</div><div class='del'>-DLEXT         = @DLEXT@</div><div class='del'>-MANTYPE	      = @MANTYPE@</div><div class='del'>-SYMBOL_PREFIX = @SYMBOL_PREFIX@</div><div class='del'>-</div><div class='del'>-INSTALLED_LIST= .installed.list</div><div class='del'>-</div><div class='del'>-NEWLINE_C     = enc/trans/newline.c</div><div class='del'>-MINIPRELUDE_C = miniprelude.c</div><div class='del'>-PRELUDE_C     = prelude.c</div><div class='del'>-GOLF_PRELUDE_C= golf_prelude.c</div><div class='del'>-RBCONFIG      = .rbconfig.time</div><div class='del'>-</div><div class='del'>-MAINSRC = $(MAINOBJ:@OBJEXT@=c)</div><div class='del'>-</div><div class='del'>-SRC_FILE      = $&lt;</div><div class='del'>-OS_SRC_FILE   = $&lt;</div><div class='del'>-DEST_FILE     = $@</div><div class='del'>-OS_DEST_FILE  = $@</div><div class='del'>-</div><div class='del'>-MESSAGE_BEGIN = @for line in</div><div class='del'>-MESSAGE_END = ; do echo "$$line"; done</div><div class='del'>-ECHO_BEGIN = @sep=''; for word in</div><div class='del'>-ECHO_END = ; do echo @ECHO_N@ "$$sep'$$word'@ECHO_C@"; sep=' '; done; echo</div><div class='del'>-</div><div class='del'>-DESTDIR       = @DESTDIR@</div><div class='del'>-</div><div class='del'>-configure_args = @configure_args@</div><div class='del'>-#### End of variables</div><div class='del'>-</div><div class='del'>-.SUFFIXES: .inc .h .c .y .i .$(ASMEXT) .$(DTRACE_EXT)</div><div class='del'>-</div><div class='del'>-all:</div><div class='del'>-</div><div class='del'>-# Prevent GNU make v3 from overflowing arg limit on SysV.</div><div class='del'>-.NOEXPORT:</div><div class='del'>-</div><div class='del'>-miniruby$(EXEEXT):</div><div class='del'>-		@-if test -f $@; then $(MV) -f $@ $@.old; $(RM) $@.old; fi</div><div class='del'>-		$(ECHO) linking $@</div><div class='del'>-		$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(MAINLIBS) $(LIBS) $(OUTFLAG)$@</div><div class='del'>-		$(Q) $(POSTLINK)</div><div class='del'>-</div><div class='del'>-$(PROGRAM):</div><div class='del'>-		@$(RM) $@</div><div class='del'>-		$(ECHO) linking $@</div><div class='del'>-		$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(MAINLIBS) $(LIBS) $(EXTLIBS) $(OUTFLAG)$@</div><div class='del'>-		$(Q) $(POSTLINK)</div><div class='del'>-</div><div class='del'>-PRE_LIBRUBY_UPDATE = [ -n "$(LIBRUBY_SO_UPDATE)" ] || $(exec) $(RM) $(LIBRUBY_EXTS)</div><div class='del'>-</div><div class='del'>-# We must `rm' the library each time this rule is invoked because "updating" a</div><div class='del'>-# MAB library on Apple/NeXT (see --enable-fat-binary in configure) is not</div><div class='del'>-# supported.</div><div class='del'>-$(LIBRUBY_A):</div><div class='del'>-		@$(RM) $@</div><div class='del'>-		@-[ -z "$(EXTSTATIC)" ] || $(PRE_LIBRUBY_UPDATE)</div><div class='del'>-		$(ECHO) linking static-library $@</div><div class='del'>-		$(Q) $(AR) $(ARFLAGS) $@ $(LIBRUBY_A_OBJS) $(INITOBJS)</div><div class='del'>-		@-$(RANLIB) $@ 2&gt; /dev/null || true</div><div class='del'>-</div><div class='del'>-verify-static-library: $(LIBRUBY_A)</div><div class='del'>-		$(ECHO) verifying static-library $@</div><div class='del'>-		@$(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(LIBRUBY_A) $(MAINLIBS) $(EXTLIBS) $(LIBS) $(OUTFLAG)conftest$(EXEEXT)</div><div class='del'>-		@$(RMALL) conftest$(EXEEXT) conftest.c conftest.dSYM</div><div class='del'>-</div><div class='del'>-$(LIBRUBY_SO):</div><div class='del'>-		@-[ -n "$(EXTSTATIC)" ] || $(PRE_LIBRUBY_UPDATE)</div><div class='del'>-		$(ECHO) linking shared-library $@</div><div class='del'>-		$(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(EXTSOLIBS) $(OUTFLAG)$@</div><div class='del'>-		-$(Q) $(OBJCOPY) -w -L '$(SYMBOL_PREFIX)Init_*' -L '$(SYMBOL_PREFIX)ruby_static_id_*' \</div><div class='del'>-			-L '$(SYMBOL_PREFIX)*_threadptr_*' -L '$(SYMBOL_PREFIX)*_ec_*' $@</div><div class='del'>-		$(Q) $(POSTLINK)</div><div class='del'>-		@-$(MINIRUBY) -e 'so, *aliases = ARGV; aliases.uniq!; aliases.delete(File.basename(so)); \</div><div class='del'>-				  aliases.each { |link| File.delete link rescue nil; File.symlink so, link }' \</div><div class='del'>-				$(LIBRUBY_SO) $(LIBRUBY_ALIASES) || true</div><div class='del'>-</div><div class='del'>-LIBRUBY_WITH_EXT = @LIBRUBY_WITH_EXT@</div><div class='del'>-$(LIBRUBY_$(LIBRUBY_WITH_EXT)): $(LIBRUBY_SO_UPDATE)</div><div class='del'>-</div><div class='del'>-ruby_pc = @ruby_pc@</div><div class='del'>-ruby.pc: $(ruby_pc)</div><div class='del'>-$(ruby_pc): config.status</div><div class='del'>-		@./config.status --file=$@:$(srcdir)/template/ruby.pc.in</div><div class='del'>-</div><div class='del'>-ruby-runner.h: template/ruby-runner.h.in config.status</div><div class='del'>-		@./config.status --file=$@:$(srcdir)/template/$(@F).in</div><div class='del'>-</div><div class='del'>-$(RBCONFIG): $(PREP)</div><div class='del'>-</div><div class='del'>-rbconfig.rb: $(RBCONFIG)</div><div class='del'>-</div><div class='del'>-install-cross: $(arch)-fake.rb $(RBCONFIG) rbconfig.rb $(arch_hdrdir)/ruby/config.h \</div><div class='del'>-	$(LIBRUBY_A) $(LIBRUBY_SO) $(ARCHFILE)</div><div class='del'>-	$(ECHO) installing cross-compiling stuff</div><div class='del'>-	$(Q) $(MAKEDIRS) $(XRUBY_RUBYLIBDIR)/$(arch) $(XRUBY_RUBYHDRDIR)/$(arch)/ruby</div><div class='del'>-	$(Q) sed '/^\$$:\.unshift/q' $(arch)-fake.rb &gt; fake.rb</div><div class='del'>-	$(Q) $(BASERUBY) -p \</div><div class='del'>-	-e '~/^\s*CONFIG\["LDFLAGS"\]/ and' \</div><div class='del'>-	-e '$$_[/(?=\s*"$$)/] = %q[ #{(CONFIG["LIBPATHFLAG"]%File.dirname(__FILE__)).strip}]' \</div><div class='del'>-	rbconfig.rb &gt; fake-rbconfig.rb</div><div class='del'>-	$(INSTALL_SCRIPT) fake.rb $(XRUBY_RUBYLIBDIR)/$(arch)/fake.rb</div><div class='del'>-	$(INSTALL_SCRIPT) fake-rbconfig.rb $(XRUBY_RUBYLIBDIR)/$(arch)/rbconfig.rb</div><div class='del'>-	@$(RM) fake.rb fake-rbconfig.rb</div><div class='del'>-	$(INSTALL_DATA) $(arch_hdrdir)/ruby/config.h $(XRUBY_RUBYHDRDIR)/$(arch)/ruby</div><div class='del'>-	$(INSTALL_DATA) $(top_srcdir)/include/ruby/win32.h $(XRUBY_RUBYHDRDIR)/ruby</div><div class='del'>-	$(INSTALL_DATA) $(LIBRUBY) $(LIBRUBY_A) $(XRUBY_RUBYLIBDIR)/$(arch)</div><div class='del'>-	$(INSTALL_PROGRAM) $(LIBRUBY_SO) $(XRUBY_RUBYLIBDIR)/$(arch)</div><div class='del'>-</div><div class='del'>-Makefile:	$(srcdir)/Makefile.in $(srcdir)/enc/Makefile.in</div><div class='del'>-</div><div class='del'>-$(MKFILES): config.status $(srcdir)/version.h</div><div class='del'>-		@[ -f $@ ] &amp;&amp; mv $@ $@.old</div><div class='del'>-		MAKE=$(MAKE) $(SHELL) ./config.status $@</div><div class='del'>-		@cmp $@ $@.old &gt; /dev/null 2&gt;&amp;1 &amp;&amp; echo $@ unchanged &amp;&amp; exit 0; \</div><div class='del'>-		{ \</div><div class='del'>-		    echo "all:; -@rm -f conftest.mk"; \</div><div class='del'>-		    echo "conftest.mk: .force; @echo AUTO_REMAKE"; \</div><div class='del'>-		    echo ".force:"; \</div><div class='del'>-		} &gt; conftest.mk || exit 1; \</div><div class='del'>-		$(MAKE) -f conftest.mk | grep '^AUTO_REMAKE$$' &gt;/dev/null 2&gt;&amp;1 || \</div><div class='del'>-		{ echo "$@ updated, restart."; exit 1; }</div><div class='del'>-</div><div class='del'>-uncommon.mk: $(srcdir)/common.mk</div><div class='del'>-		sed 's/{\$$([^(){}]*)[^{}]*}//g' $&lt; &gt; $@</div><div class='del'>-</div><div class='del'>-.PHONY: reconfig</div><div class='del'>-reconfig-args = $(srcdir)/$(CONFIGURE) $(configure_args)</div><div class='del'>-config.status-args = ./config.status --recheck</div><div class='del'>-reconfig-exec-0 = test -t 1 &amp;&amp; { : $${CONFIGURE_TTY=yes}; export CONFIGURE_TTY; }; exec 3&gt;&amp;1; exit `exec 4&gt;&amp;1; { "$$@" 3&gt;&amp;- 4&gt;&amp;-; echo $$? 1&gt;&amp;4; } | fgrep -v '(cached)' 1&gt;&amp;3 3&gt;&amp;- 4&gt;&amp;-`</div><div class='del'>-reconfig-exec-1 = set -x; "$$@"</div><div class='del'>-</div><div class='del'>-reconfig config.status:	$(srcdir)/$(CONFIGURE) $(srcdir)/enc/Makefile.in \</div><div class='del'>-			$(srcdir)/include/ruby/version.h</div><div class='del'>-	@PWD= MINIRUBY="$(MINIRUBY)"; export MINIRUBY; \</div><div class='del'>-	warnflags="@warnflags@"; export warnflags; \</div><div class='del'>-	set $(SHELL) $($@-args); $(reconfig-exec-$(V))</div><div class='del'>-</div><div class='del'>-$(srcdir)/$(CONFIGURE): $(srcdir)/configure.ac $(srcdir)/aclocal.m4</div><div class='del'>-	$(CHDIR) $(srcdir) &amp;&amp; exec $(AUTOCONF) -o $(@F)</div><div class='del'>-</div><div class='del'>-$(srcdir)/aclocal.m4:</div><div class='del'>-	$(CHDIR) $(srcdir) &amp;&amp; \</div><div class='del'>-	type $(ACLOCAL) &gt;/dev/null 2&gt;&amp;1 &amp;&amp; exec $(ACLOCAL); \</div><div class='del'>-	touch $(@F)</div><div class='del'>-</div><div class='del'>-prereq: $(srcdir)/$(CONFIGURE)</div><div class='del'>-</div><div class='del'>-incs: id.h</div><div class='del'>-all-incs: probes.h</div><div class='del'>-</div><div class='del'>-# Things which should be considered:</div><div class='del'>-# * with gperf v.s. without gperf</div><div class='del'>-# * committers may have various versions of gperf</div><div class='del'>-# * ./configure v.s. ../ruby/configure</div><div class='del'>-# * GNU make v.s. HP-UX make	# HP-UX make invokes the action if lex.c and keywords has same mtime.</div><div class='del'>-# * svn checkout generate a file with mtime as current time</div><div class='del'>-# * ext4 and XFS has a mtime with fractional part</div><div class='del'>-lex.c: defs/keywords</div><div class='del'>-	@\</div><div class='del'>-	if cmp -s $(srcdir)/defs/lex.c.src $?; then \</div><div class='del'>-	  [ $(Q) ] &amp;&amp; echo copying $@ || set -x; \</div><div class='del'>-	  $(CP) $(srcdir)/lex.c.blt $@; \</div><div class='del'>-	else \</div><div class='del'>-	  [ $(Q) ] &amp;&amp; echo generating $@ || set -x; \</div><div class='del'>-	  gperf -C -P -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? \</div><div class='del'>-	  | sed -f $(srcdir)/tool/gperf.sed \</div><div class='del'>-	  &gt; $@.tmp &amp;&amp; \</div><div class='del'>-	  $(MV) $@.tmp $@ &amp;&amp; \</div><div class='del'>-	  $(CP) $? $(srcdir)/defs/lex.c.src &amp;&amp; \</div><div class='del'>-	  $(CP) $@ $(srcdir)/lex.c.blt; \</div><div class='del'>-	fi</div><div class='del'>-</div><div class='del'>-JIS_PROPS_OPTIONS = -k1,3 -7 -c -j1 -i1 -t -C -P -t --ignore-case -H onig_jis_property_hash -Q onig_jis_property_pool -N onig_jis_property</div><div class='del'>-</div><div class='del'>-$(srcdir)/enc/jis/props.h: enc/jis/props.kwd</div><div class='del'>-	$(MAKEDIRS) $(@D)</div><div class='del'>-	@set +e; \</div><div class='del'>-	if cmp -s $(?:.kwd=.src) $?; then \</div><div class='del'>-	  set -x; \</div><div class='del'>-	  $(CP) $(?:.kwd=.h.blt) $@; \</div><div class='del'>-	else \</div><div class='del'>-	  set -x; \</div><div class='del'>-	  gperf $(JIS_PROPS_OPTIONS) $? | \</div><div class='del'>-	  sed -f $(srcdir)/tool/gperf.sed &gt; $@ &amp;&amp; \</div><div class='del'>-	  $(CP) $? $(?:.kwd=.src) &amp;&amp; \</div><div class='del'>-	  $(CP) $@ $(?:.kwd=.h.blt); \</div><div class='del'>-	fi</div><div class='del'>-</div><div class='del'>-.c.@OBJEXT@:</div><div class='del'>-	@$(ECHO) compiling $&lt;</div><div class='del'>-	$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $&lt;</div><div class='del'>-</div><div class='del'>-.$(ASMEXT).@OBJEXT@:</div><div class='del'>-	@$(ECHO) assembling $&lt;</div><div class='del'>-	$(Q) $(CC) $(ASFLAGS) -o $@ -c $&lt;</div><div class='del'>-</div><div class='del'>-.c.$(ASMEXT):</div><div class='del'>-	@$(ECHO) translating $&lt;</div><div class='del'>-	$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -S $&lt;</div><div class='del'>-</div><div class='del'>-.c.i:</div><div class='del'>-	@$(ECHO) preprocessing $&lt;</div><div class='del'>-	$(Q) $(CPP) $(warnflags) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -E $&lt; &gt; $@</div><div class='del'>-</div><div class='del'>-.d.h:</div><div class='del'>-	@$(ECHO) translating probes $&lt;</div><div class='del'>-	$(Q) $(DTRACE) -o $@.tmp -h -C $(INCFLAGS) -s $&lt;</div><div class='del'>-	$(Q) sed -e 's/RUBY_/RUBY_DTRACE_/g' -e 's/PROBES_H_TMP/RUBY_PROBES_H/' -e 's/(char \*/(const char */g' -e 's/, char \*/, const char */g' $@.tmp &gt; $@</div><div class='del'>-	$(Q) $(RM) $@.tmp</div><div class='del'>-</div><div class='del'>-.dmyh.h:</div><div class='del'>-	@$(ECHO) making dummy $(DEST_FILE)</div><div class='del'>-	$(Q)echo '#include "$(*F).dmyh"' &gt; $@</div><div class='del'>-</div><div class='del'>-probes.stamp: $(DTRACE_REBUILD_OBJS)</div><div class='del'>-	$(Q) if test -f $@ -o -f probes.$(OBJEXT); then \</div><div class='del'>-	  $(RM) $(DTRACE_REBUILD_OBJS) $@; \</div><div class='del'>-	  $(ECHO0) "rebuilding objects which were modified by \"dtrace -G\""; \</div><div class='del'>-	  $(MAKE) $(DTRACE_REBUILD_OBJS); \</div><div class='del'>-	fi</div><div class='del'>-	$(Q) touch $@</div><div class='del'>-</div><div class='del'>-probes.$(OBJEXT): $(srcdir)/probes.d $(DTRACE_REBUILD:yes=probes.stamp)</div><div class='del'>-	@$(ECHO) processing probes in object files</div><div class='del'>-	$(Q) $(RM) $@</div><div class='del'>-	$(Q) $(DTRACE) -G -C $(INCFLAGS) -s $(srcdir)/probes.d -o $@ $(DTRACE_REBUILD_OBJS)</div><div class='del'>-</div><div class='del'>-main: mjit-headers</div><div class='del'>-yes-mjit-headers: $(MJIT_MIN_HEADER)</div><div class='del'>-clean-local::</div><div class='del'>-	$(Q)$(RM) $(MJIT_HEADER) $(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX:%=*).h</div><div class='del'>-	$(Q)$(RM) $(MJIT_MIN_HEADER) $(MJIT_MIN_HEADER:.h=)$(MJIT_HEADER_SUFFIX:%=*).h</div><div class='del'>-	$(Q)$(RM) $(MJIT_HEADER_INSTALL_DIR)/rb_mjit_min_header-*.h</div><div class='del'>-	$(Q)$(RM) $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time mjit_config.h</div><div class='del'>-	$(Q)$(RM) -r mjit_build_dir.*</div><div class='del'>-	-$(Q) $(RMDIRS) $(MJIT_HEADER_INSTALL_DIR) 2&gt; $(NULL) || exit 0</div><div class='del'>-</div><div class='del'>-# DTrace static library hacks described here:</div><div class='del'>-# http://mail.opensolaris.org/pipermail/dtrace-discuss/2005-August/000207.html</div><div class='del'>-ruby-glommed.$(OBJEXT):</div><div class='del'>-	@$(ECHO) generating a glommed object with DTrace probes for static library</div><div class='del'>-	$(Q) $(LD) -r -o $@ $(OBJS)</div><div class='del'>-</div><div class='del'>-clean-local::</div><div class='del'>-	$(Q)$(RM) ext/extinit.c ext/extinit.$(OBJEXT) ext/ripper/y.output \</div><div class='del'>-		enc/encinit.c enc/encinit.$(OBJEXT)</div><div class='del'>-	-$(Q)$(RM) $(pkgconfig_DATA)</div><div class='del'>-	-$(Q)$(RMALL) exe/ ruby-runner.$(OBJEXT) ruby-runner.h *.dSYM</div><div class='del'>-</div><div class='del'>-distclean-local::</div><div class='del'>-	$(Q)$(RM) ext/config.cache $(RBCONFIG) Doxyfile</div><div class='del'>-	-$(Q)$(RM) run.gdb</div><div class='del'>-	-$(Q)$(RM) $(INSTALLED_LIST) $(arch_hdrdir)/ruby/config.h verconf.h</div><div class='del'>-	-$(Q)$(RMDIRS) $(arch_hdrdir)/ruby 2&gt; /dev/null || true</div><div class='del'>-</div><div class='del'>-ext/clean.sub gems/clean.sub:: ext/clean.mk</div><div class='del'>-ext/distclean.sub gems/distclean.sub:: ext/distclean.mk</div><div class='del'>-ext/realclean.sub gems/realclean.sub:: ext/realclean.mk</div><div class='del'>-</div><div class='del'>-ext/clean.mk ext/distclean.mk ext/realclean.mk::</div><div class='del'>-	-$(Q) if [ -f $(EXTS_MK) ]; then exec $(MAKE) -f $(EXTS_MK) $(@F:.mk=); fi</div><div class='del'>-</div><div class='del'>-ext/clean:: ext/clean.sub</div><div class='del'>-ext/distclean:: ext/distclean.sub</div><div class='del'>-ext/realclean:: ext/realclean.sub</div><div class='del'>-gems/clean:: gems/clean.sub</div><div class='del'>-gems/distclean:: gems/distclean.sub</div><div class='del'>-gems/realclean:: gems/realclean.sub</div><div class='del'>-</div><div class='del'>-ext/clean.sub ext/distclean.sub ext/realclean.sub \</div><div class='del'>-gems/clean.sub gems/distclean.sub gems/realclean.sub::</div><div class='del'>-	$(Q) set dummy `echo "${EXTS}" | tr , ' '`; shift; \</div><div class='del'>-	test "$$#" = 0 &amp;&amp; set .; \</div><div class='del'>-	set dummy `\</div><div class='del'>-	    cd $(@D) 2&gt;/dev/null &amp;&amp; \</div><div class='del'>-	    find "$$@" \( -name Makefile -o -name exts.mk \) -print | \</div><div class='del'>-	    sed -n 's:^\./::;s:^:$(@D)/:;s:/[^/][^/]*$$::p' | sort -u; \</div><div class='del'>-	`; shift; \</div><div class='del'>-	for dir do \</div><div class='del'>-	    $(RM) "$$dir/exts.mk"; \</div><div class='del'>-	    if [ -f "$$dir/Makefile" ]; then \</div><div class='del'>-		echo $(@F:.sub=)ing "$$dir"; \</div><div class='del'>-		(cd "$$dir" &amp;&amp; exec $(MAKE) $(mflags) $(@F:.sub=)); \</div><div class='del'>-	    fi; \</div><div class='del'>-	done || true</div><div class='del'>-</div><div class='del'>-ext/distclean ext/realclean gems/distclean gems/realclean::</div><div class='del'>-	$(Q) set dummy `echo "${EXTS}" | tr , ' '`; shift; \</div><div class='del'>-	test "$$#" = 0 &amp;&amp; set .; \</div><div class='del'>-	cd $(@D) 2&gt;/dev/null &amp;&amp; \</div><div class='del'>-	find "$$@" -type d -empty -exec $(RMDIRS) {} + 2&gt; /dev/null || true</div><div class='del'>-	$(Q) $(RMDIRS) $(@D) 2&gt; /dev/null || true</div><div class='del'>-</div><div class='del'>-clean-enc distclean-enc realclean-enc:</div><div class='del'>-	@test -f "$(ENC_MK)" || exit 0; \</div><div class='del'>-	echo $(@:-enc=ing) encodings; \</div><div class='del'>-	exec $(MAKE) $(MAKE_ENC) $(@:-enc=)</div><div class='del'>-</div><div class='del'>-ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP)</div><div class='del'>-	$(ECHO) compiling $@</div><div class='del'>-	$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c ext/extinit.c</div><div class='del'>-</div><div class='del'>-enc/encinit.$(OBJEXT): enc/encinit.c $(SETUP)</div><div class='del'>-</div><div class='del'>-cont.$(OBJEXT): $(COROUTINE_H)</div><div class='del'>-</div><div class='del'>-test-bundled-gems-run:</div><div class='del'>-	$(Q) set -e; while read gem _; do \</div><div class='del'>-	  echo testing $$gem gem &amp;&amp; \</div><div class='del'>-	  $(XRUBY) -C $(srcdir)/gems/src/$$gem -Ilib ../../../.bundle/bin/rake; \</div><div class='del'>-	done &lt; $(srcdir)/gems/bundled_gems</div><div class='del'>-</div><div class='del'>-update-src::</div><div class='del'>-	@$(CHDIR) "$(srcdir)" &amp;&amp; LC_TIME=C exec $(VCSUP)</div><div class='del'>-</div><div class='del'>-update-download:: update-config_files</div><div class='del'>-</div><div class='del'>-after-update:: prereq</div><div class='del'>-</div><div class='del'>-gcov:</div><div class='del'>-	$(Q) $(BASERUBY) $(srcdir)/tool/run-gcov.rb</div><div class='del'>-</div><div class='del'>-lcov:</div><div class='del'>-	$(Q) $(BASERUBY) $(srcdir)/tool/run-lcov.rb</div><div class='del'>-</div><div class='del'>-update-benchmark-driver:</div><div class='del'>-	$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/benchmark $(Q1:0=-q) \</div><div class='del'>-		--branch $(BENCHMARK_DRIVER_GIT_REF) \</div><div class='del'>-		$(BENCHMARK_DRIVER_GIT_URL) benchmark-driver $(GIT_OPTS)</div><div class='del'>-</div><div class='del'>-update-doclie:</div><div class='del'>-	$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \</div><div class='del'>-		--branch $(DOCLIE_GIT_REF) \</div><div class='del'>-		$(DOCLIE_GIT_URL) doclie $(GIT_OPTS)</div><div class='del'>-</div><div class='del'>-update-simplecov-html:</div><div class='del'>-	$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \</div><div class='del'>-		--branch $(SIMPLECOV_HTML_GIT_REF) \</div><div class='del'>-		$(SIMPLECOV_HTML_GIT_URL) simplecov-html $(GIT_OPTS)</div><div class='del'>-</div><div class='del'>-update-simplecov:</div><div class='del'>-	$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \</div><div class='del'>-		--branch $(SIMPLECOV_GIT_REF)  \</div><div class='del'>-		$(SIMPLECOV_GIT_URL) simplecov $(GIT_OPTS)</div><div class='del'>-</div><div class='del'>-update-coverage: update-simplecov update-simplecov-html update-doclie</div><div class='del'>-</div><div class='del'>-update-known-errors:</div><div class='del'>-	errno --list | cut -d' ' -f1 | sort -u - $(srcdir)/defs/known_errors.def | \</div><div class='del'>-	$(IFCHANGE) $(srcdir)/defs/known_errors.def -</div><div class='del'>-</div><div class='del'>-INSNS	= opt_sc.inc optinsn.inc optunifs.inc insns.inc insns_info.inc \</div><div class='del'>-	  vmtc.inc vm.inc mjit_compile.inc</div><div class='del'>-</div><div class='del'>-$(INSNS): $(srcdir)/insns.def vm_opts.h \</div><div class='del'>-	  $(srcdir)/defs/opt_operand.def $(srcdir)/defs/opt_insn_unif.def \</div><div class='del'>-	  $(srcdir)/tool/insns2vm.rb</div><div class='del'>-	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(BASERUBY) -Ku $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) $@</div><div class='del'>-</div><div class='del'>-verconf.h: $(RBCONFIG)</div><div class='del'>-</div><div class='del'>-loadpath: verconf.h</div><div class='del'>-	@$(CPP) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/loadpath.c | \</div><div class='del'>-	sed -e '1,/^const char ruby_initial_load_paths/d;/;/,$$d' \</div><div class='del'>-	    -e '/^ /!d;s/ *"\\0"$$//;s/" *"//g'</div><div class='del'>-</div><div class='del'>-un-runnable:</div><div class='del'>-	$(ECHO) cannot make runnable, configure with --enable-load-relative.</div><div class='del'>-	$(Q) exit 1</div><div class='del'>-</div><div class='del'>-mjit_config.h:</div><div class='del'>-	$(ECHO) making $@</div><div class='del'>-	@{ \</div><div class='del'>-	. $(srcdir)/tool/mjit_archflag.sh; \</div><div class='del'>-	parse_arch_flags "$(UNIVERSAL_ARCHNAMES)" $(ARCH_FLAG); \</div><div class='del'>-	test "$(Q)" = @ || set -x; \</div><div class='del'>-	echo '#ifndef RUBY_MJIT_CONFIG_H'; \</div><div class='del'>-	echo '#define RUBY_MJIT_CONFIG_H 1'; \</div><div class='del'>-	echo; \</div><div class='del'>-	sep=; \</div><div class='del'>-	echo '#ifdef LOAD_RELATIVE'; \</div><div class='del'>-	quote MJIT_HEADER_INSTALL_DIR "/$(MJIT_HEADER_INSTALL_DIR)"; \</div><div class='del'>-	echo '#else'; \</div><div class='del'>-	quote MJIT_HEADER_INSTALL_DIR "$(rubyarchhdrdir)"; \</div><div class='del'>-	echo '#endif'; \</div><div class='del'>-	quote MJIT_MIN_HEADER_NAME "$(MJIT_MIN_HEADER_NAME)"; \</div><div class='del'>-	sep=,; \</div><div class='del'>-	quote "MJIT_CC_COMMON  " $(MJIT_CC); \</div><div class='del'>-	quote "MJIT_CFLAGS      MJIT_ARCHFLAG" $(MJIT_CFLAGS); \</div><div class='del'>-	quote "MJIT_OPTFLAGS   " $(MJIT_OPTFLAGS); \</div><div class='del'>-	quote "MJIT_DEBUGFLAGS " $(MJIT_DEBUGFLAGS); \</div><div class='del'>-	quote "MJIT_LDSHARED   " $(MJIT_LDSHARED); \</div><div class='del'>-	quote "MJIT_DLDFLAGS    MJIT_ARCHFLAG" $(MJIT_DLDFLAGS); \</div><div class='del'>-	quote "MJIT_LIBS       " $(LIBRUBYARG_SHARED); \</div><div class='del'>-	quote 'PRELOADENV       "@PRELOADENV@"'; \</div><div class='del'>-	indent=$${archs:+'  '}; \</div><div class='del'>-	define_arch_flags; \</div><div class='del'>-	echo; \</div><div class='del'>-	echo '#endif /* RUBY_MJIT_CONFIG_H */'; \</div><div class='del'>-	} &gt; $@</div><div class='del'>-</div><div class='del'>-yes-test-almost yes-test-all: mjit_build_dir.$(SOEXT)</div><div class='del'>-mjit_build_dir.$(SOEXT): $(MJIT_MIN_HEADER) $(srcdir)/ruby-runner.c ruby-runner.h</div><div class='del'>-	$(ECHO) making $@</div><div class='del'>-	$(Q) $(DLDSHARED) $(MJIT_DLDFLAGS) $(ARCH_FLAG) $(CFLAGS) $(CPPFLAGS) \</div><div class='del'>-		-DMAKE_MJIT_BUILD_DIR=1 -DMJIT_MIN_HEADER='"$(MJIT_MIN_HEADER)"' \</div><div class='del'>-		$(OUTFLAG)$@ $(srcdir)/ruby-runner.c</div><div class='head'>diff --git a/NEWS b/NEWS<br/>deleted file mode 100644<br/>index 17f03af6b0..0000000000<br/>--- a/<a href='/ruby.git/tree/NEWS?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>NEWS</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,634 +0,0 @@</div><div class='del'>-# -*- rdoc -*-</div><div class='del'>-</div><div class='del'>-= NEWS for Ruby 2.6.0</div><div class='del'>-</div><div class='del'>-This document is a list of user visible feature changes made between</div><div class='del'>-releases except for bug fixes.</div><div class='del'>-</div><div class='del'>-Note that each entry is kept so brief that no reason behind or reference</div><div class='del'>-information is supplied with.  For a full list of changes with all</div><div class='del'>-sufficient information, see the ChangeLog file or Redmine</div><div class='del'>-(e.g. &lt;tt&gt;https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER&lt;/tt&gt;)</div><div class='del'>-</div><div class='del'>-== Changes since the 2.5.0 release</div><div class='del'>-</div><div class='del'>-=== Language changes</div><div class='del'>-</div><div class='del'>-* &lt;code&gt;$SAFE&lt;/code&gt; is a process global state and we can set it to 0 again. [Feature #14250]</div><div class='del'>-</div><div class='del'>-* refinements take place at block passing.  [Feature #14223]</div><div class='del'>-</div><div class='del'>-* refinements take place at Kernel#public_send.  [Feature #15326]</div><div class='del'>-</div><div class='del'>-* refinements take place at Kernel#respond_to?.  [Feature #15327]</div><div class='del'>-</div><div class='del'>-* +else+ without +rescue+ now causes a syntax error.  [EXPERIMENTAL] [Feature #14606]</div><div class='del'>-</div><div class='del'>-* constant names may start with a non-ASCII capital letter. [Feature #13770]</div><div class='del'>-</div><div class='del'>-* An endless range is introduced.  You can write a range that has no end,</div><div class='del'>-  like &lt;code&gt;(0..)&lt;/code&gt; (or similarly &lt;code&gt;(0...)&lt;/code&gt;).</div><div class='del'>-  The following shows typical use cases.  [Feature #12912]</div><div class='del'>-</div><div class='del'>-    ary[1..]                              # identical to ary[1..-1]</div><div class='del'>-    (1...).each {|index| block }          # infinite loop from index 1</div><div class='del'>-    ary.zip(1..) {|elem, index| block }   # ary.each.with_index(1) { }</div><div class='del'>-</div><div class='del'>-* Non-Symbol key in keyword arguments hash causes an exception.</div><div class='del'>-</div><div class='del'>-* "shadowing outer local variable" warning was removed.  [Feature #12490]</div><div class='del'>-  You can now write the following without warning.</div><div class='del'>-</div><div class='del'>-    user = users.find {|user| cond(user) }</div><div class='del'>-</div><div class='del'>-* Print exception backtrace and error message in reverse order when the</div><div class='del'>-  exception is not caught and STDOUT is unchanged and a tty. [Feature #8661]</div><div class='del'>-</div><div class='del'>-* Print +cause+ of the exception if the exception is not caught and printed</div><div class='del'>-  its backtraces and error message [Feature #8257]</div><div class='del'>-</div><div class='del'>-* Flip-flop syntax is deprecated. [Feature #5400]</div><div class='del'>-</div><div class='del'>-=== Core classes updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-[Array]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * Added Array#union and Array#difference instance methods.  [Feature #14097]</div><div class='del'>-</div><div class='del'>-  [Modified methods]</div><div class='del'>-</div><div class='del'>-    * Array#to_h now maps elements to new keys and values by the</div><div class='del'>-      block if given.  [Feature #15143]</div><div class='del'>-</div><div class='del'>-  [Aliased methods]</div><div class='del'>-</div><div class='del'>-    * Array#filter is a new alias for Array#select. [Feature #13784]</div><div class='del'>-    * Array#filter! is a new alias for Array#select!. [Feature #13784]</div><div class='del'>-</div><div class='del'>-[Binding]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * added Binding#source_location.  [Feature #14230]</div><div class='del'>-</div><div class='del'>-      This method returns the source location of the binding, a 2-element</div><div class='del'>-      array of &lt;code&gt;__FILE__&lt;/code&gt; and &lt;code&gt;__LINE__&lt;/code&gt;.</div><div class='del'>-      Traditionally, the same information could be retrieved by</div><div class='del'>-      &lt;code&gt;eval("[__FILE__, __LINE__]", binding)&lt;/code&gt;, but we are</div><div class='del'>-      planning to change this behavior so that Kernel#eval ignores</div><div class='del'>-      binding's source location [Bug #4352].  So, users should use this</div><div class='del'>-      newly-introduced method instead of Kernel#eval.</div><div class='del'>-</div><div class='del'>-[Dir]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * added Dir#each_child and Dir#children instance methods. [Feature #13969]</div><div class='del'>-</div><div class='del'>-[Enumerable]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * Enumerable#chain returns an enumerator object that iterates over the</div><div class='del'>-      elements of the receiver and then those of each argument</div><div class='del'>-      in sequence.  [Feature #15144]</div><div class='del'>-</div><div class='del'>-  [Modified methods]</div><div class='del'>-</div><div class='del'>-    * Enumerable#to_h now maps elements to new keys and values by the block if</div><div class='del'>-      given.  [Feature #15143]</div><div class='del'>-</div><div class='del'>-  [Aliased methods]</div><div class='del'>-</div><div class='del'>-    * Enumerable#filter is a new alias for Enumerable#select. [Feature #13784]</div><div class='del'>-</div><div class='del'>-[Enumerator::ArithmeticSequence]</div><div class='del'>-</div><div class='del'>-  * This is a new class to represent a generator of an arithmetic sequence,</div><div class='del'>-    that is a number sequence defined by a common difference. It can be used</div><div class='del'>-    for representing what is similar to Python's slice. You can get an</div><div class='del'>-    instance of this class from Numeric#step and Range#step.</div><div class='del'>-</div><div class='del'>-[Enumerator::Chain]</div><div class='del'>-</div><div class='del'>-  * This is a new class to represent a chain of enumerables that works as a</div><div class='del'>-    single enumerator, generated by such methods as Enumerable#chain and</div><div class='del'>-    Enumerator#+.</div><div class='del'>-</div><div class='del'>-[Enumerator::Lazy]</div><div class='del'>-</div><div class='del'>-  [Aliased methods]</div><div class='del'>-</div><div class='del'>-    * Enumerator::Lazy#filter is a new alias for</div><div class='del'>-      Enumerator::Lazy#select.  [Feature #13784]</div><div class='del'>-</div><div class='del'>-[Enumerator]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * Enumerator#+ returns an enumerator object that iterates over the</div><div class='del'>-      elements of the receiver and then those of the other operand.  [Feature #15144]</div><div class='del'>-</div><div class='del'>-[ENV]</div><div class='del'>-</div><div class='del'>-  [Modified methods]</div><div class='del'>-</div><div class='del'>-    * ENV.to_h now maps names and values to new keys and values</div><div class='del'>-      by the block if given.  [Feature #15143]</div><div class='del'>-</div><div class='del'>-[Exception]</div><div class='del'>-</div><div class='del'>-  [New options]</div><div class='del'>-</div><div class='del'>-    * Exception#full_message takes +:highlight+ and +:order+</div><div class='del'>-      options. [Bug #14324]</div><div class='del'>-</div><div class='del'>-[Hash]</div><div class='del'>-</div><div class='del'>-  [Modified methods]</div><div class='del'>-</div><div class='del'>-    * Hash#merge, Hash#merge!, and Hash#update now accept multiple</div><div class='del'>-      arguments.  [Feature #15111]</div><div class='del'>-</div><div class='del'>-    * Hash#to_h now maps keys and values to new keys and values</div><div class='del'>-      by the block if given.  [Feature #15143]</div><div class='del'>-</div><div class='del'>-  [Aliased methods]</div><div class='del'>-</div><div class='del'>-    * Hash#filter is a new alias for Hash#select.  [Feature #13784]</div><div class='del'>-</div><div class='del'>-    * Hash#filter! is a new alias for Hash#select!. [Feature #13784]</div><div class='del'>-</div><div class='del'>-[IO]</div><div class='del'>-</div><div class='del'>-  [New options]</div><div class='del'>-</div><div class='del'>-    * new mode character &lt;code&gt;'x'&lt;/code&gt; to open files for exclusive</div><div class='del'>-      access. [Feature #11258]</div><div class='del'>-</div><div class='del'>-[Kernel]</div><div class='del'>-</div><div class='del'>-  [Aliased methods]</div><div class='del'>-</div><div class='del'>-    * Kernel#then is a new alias for Kernel#yield_self. [Feature #14594]</div><div class='del'>-</div><div class='del'>-  [New options]</div><div class='del'>-</div><div class='del'>-    * Kernel#Complex, Kernel#Float, Kernel#Integer, and</div><div class='del'>-      Kernel#Rational take +:exception+ option to specify the way of</div><div class='del'>-      error handling.  [Feature #12732]</div><div class='del'>-</div><div class='del'>-    * Kernel#system takes +:exception+ option to raise an exception</div><div class='del'>-      on failure.  [Feature #14386]</div><div class='del'>-</div><div class='del'>-  [Incompatible changes]</div><div class='del'>-</div><div class='del'>-    * Kernel#system and Kernel#exec do not close non-standard file descriptors</div><div class='del'>-      (The default of the +:close_others+ option is changed to +false+,</div><div class='del'>-      but we still set the +FD_CLOEXEC+ flag on descriptors we</div><div class='del'>-      create).  [Misc #14907]</div><div class='del'>-</div><div class='del'>-[KeyError]</div><div class='del'>-</div><div class='del'>-  [New options]</div><div class='del'>-</div><div class='del'>-    * KeyError.new accepts +:receiver+ and +:key+ options to set receiver and</div><div class='del'>-      key in Ruby code.  [Feature #14313]</div><div class='del'>-</div><div class='del'>-[Method]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * added Method#&lt;&lt; and Method#&gt;&gt; for Proc composition.  [Feature #6284]</div><div class='del'>-</div><div class='del'>-[Module]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * Module#method_defined?, Module#private_method_defined?, and</div><div class='del'>-      Module#protected_method_defined? now accept the second</div><div class='del'>-      parameter as optional. If it's +true+ (=default), checks ancestor</div><div class='del'>-      modules/classes, or checks only the class itself. [Feature #14944]</div><div class='del'>-</div><div class='del'>-[NameError]</div><div class='del'>-</div><div class='del'>-  [New options]</div><div class='del'>-</div><div class='del'>-    * NameError.new accepts +:receiver+ option to set receiver in Ruby</div><div class='del'>-      code.  [Feature #14313]</div><div class='del'>-</div><div class='del'>-[NilClass]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * NilClass#=~ is added for compatibility.  [Feature #15231]</div><div class='del'>-</div><div class='del'>-[NoMethodError]</div><div class='del'>-</div><div class='del'>-  [New options]</div><div class='del'>-</div><div class='del'>-    * NoMethodError.new accepts +:receiver+ option to set receiver in Ruby</div><div class='del'>-      code.  [Feature #14313]</div><div class='del'>-</div><div class='del'>-[Numeric]</div><div class='del'>-</div><div class='del'>-  [Incompatible changes]</div><div class='del'>-</div><div class='del'>-    * Numeric#step now returns an instance of Enumerator::ArithmeticSequence</div><div class='del'>-      class rather than one of Enumerator class.</div><div class='del'>-</div><div class='del'>-[Proc]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * added Proc#&lt;&lt; and Proc#&gt;&gt; for Proc composition.  [Feature #6284]</div><div class='del'>-</div><div class='del'>-  [Incompatible changes]</div><div class='del'>-</div><div class='del'>-    * Proc#call doesn't change &lt;code&gt;$SAFE&lt;/code&gt; any more.  [Feature #14250]</div><div class='del'>-</div><div class='del'>-[Random]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * added Random.bytes.  [Feature #4938]</div><div class='del'>-</div><div class='del'>-[Range]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * Added Range#% instance method.  [Feature #14697]</div><div class='del'>-</div><div class='del'>-  [Incompatible changes]</div><div class='del'>-</div><div class='del'>-    * Range#=== now uses +#cover?+ instead of +#include?+ method. [Feature #14575]</div><div class='del'>-    * Range#cover? now accepts Range object. [Feature #14473]</div><div class='del'>-    * Range#step now returns an instance of Enumerator::ArithmeticSequence</div><div class='del'>-      class rather than one of Enumerator class.</div><div class='del'>-</div><div class='del'>-[Regexp/String]</div><div class='del'>-</div><div class='del'>-    * Update Unicode version from 10.0.0 to 11.0.0. [Feature #14802]</div><div class='del'>-      This includes a rewrite of the grapheme cluster (/\X/) algorithm</div><div class='del'>-      and special-casing for Georgian MTAVRULI on String#downcase.</div><div class='del'>-</div><div class='del'>-    * Update Emoji version from 5.0 to 11.0.0 [Feature #14802]</div><div class='del'>-</div><div class='del'>-[RubyVM::AbstractSyntaxTree]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * RubyVM::AbstractSyntaxTree.parse parses a given string and returns AST</div><div class='del'>-      nodes. [experimental]</div><div class='del'>-</div><div class='del'>-    * RubyVM::AbstractSyntaxTree.parse_file parses a given file and returns AST</div><div class='del'>-      nodes.  [experimental]</div><div class='del'>-</div><div class='del'>-    * RubyVM::AbstractSyntaxTree.of returns AST nodes of the given proc or method.</div><div class='del'>-      [experimental]</div><div class='del'>-</div><div class='del'>-[RubyVM]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * RubyVM.resolve_feature_path identifies the file that will be loaded by</div><div class='del'>-      "require(feature)". [experimental] [Feature #15230]</div><div class='del'>-</div><div class='del'>-[String]</div><div class='del'>-</div><div class='del'>-  * String#crypt is now deprecated. [Feature #14915]</div><div class='del'>-</div><div class='del'>-  [New features]</div><div class='del'>-</div><div class='del'>-    * String#split yields each substring to the block if given. [Feature #4780]</div><div class='del'>-</div><div class='del'>-[Struct]</div><div class='del'>-</div><div class='del'>-  [Modified methods]</div><div class='del'>-</div><div class='del'>-    * Struct#to_h now maps keys and values to new keys and values</div><div class='del'>-      by the block if given.  [Feature #15143]</div><div class='del'>-</div><div class='del'>-  [Aliased method]</div><div class='del'>-</div><div class='del'>-    * Struct#filter is a new alias for Struct#select. [Feature #13784]</div><div class='del'>-</div><div class='del'>-[Time]</div><div class='del'>-</div><div class='del'>-  [New features]</div><div class='del'>-</div><div class='del'>-    * Time.new and Time#getlocal accept a timezone object as well as</div><div class='del'>-      an UTC offset string. Time#+, Time#- and Time#succ also preserve</div><div class='del'>-      the timezone.  [Feature #14850]</div><div class='del'>-</div><div class='del'>-[TracePoint]</div><div class='del'>-</div><div class='del'>-  [New features]</div><div class='del'>-</div><div class='del'>-    * "script_compiled" event is supported. [Feature #15287]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * TracePoint#parameters [Feature #14694]</div><div class='del'>-</div><div class='del'>-    * TracePoint#instruction_sequence [Feature #15287]</div><div class='del'>-</div><div class='del'>-    * TracePoint#eval_script [Feature #15287]</div><div class='del'>-</div><div class='del'>-  [Modified methods]</div><div class='del'>-</div><div class='del'>-    * TracePoint#enable accepts new keywords "target:" and "target_line:".</div><div class='del'>-      [Feature #15289]</div><div class='del'>-</div><div class='del'>-=== Stdlib updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-[BigDecimal]</div><div class='del'>-</div><div class='del'>-  Update to the version 1.4.0.  This version includes several compatibility</div><div class='del'>-  issues, see Compatibility issues section below for the detail.</div><div class='del'>-</div><div class='del'>-  [Modified methods]</div><div class='del'>-</div><div class='del'>-  * BigDecimal() accepts new keyword "exception:" similar to Float().</div><div class='del'>-</div><div class='del'>-  [Note for the differences among recent versions]</div><div class='del'>-</div><div class='del'>-  You should want to know the differences among recent versions of bigdecimal.</div><div class='del'>-  Please select the suitable version of bigdecimal according to the following</div><div class='del'>-  information.</div><div class='del'>-</div><div class='del'>-  * 1.3.5 has BigDecimal.new without "exception:" keyword.  You can see the</div><div class='del'>-    deprecation warning of BigDecimal.new when you specify "-w" option.</div><div class='del'>-    BigDecimal(), BigDecimal.new, and Object#to_d methods are same.</div><div class='del'>-</div><div class='del'>-  * 1.4.0 has BigDecimal.new with "exception:" keyword.  You always see the</div><div class='del'>-    deprecation warning of BigDecimal.new.  Object#to_d method is different</div><div class='del'>-    from BigDecimal() and BigDecimal.new.</div><div class='del'>-</div><div class='del'>-  * 1.5.0 will be released after releasing Ruby 2.6.0.  This version doesn't</div><div class='del'>-    have BigDecimal.new method.</div><div class='del'>-</div><div class='del'>-[Bundler]</div><div class='del'>-</div><div class='del'>-  * Add Bundler to Standard Library. [Feature #12733]</div><div class='del'>-</div><div class='del'>-  * Use 1.17.2. It's the latest stable version.</div><div class='del'>-</div><div class='del'>-[Coverage]</div><div class='del'>-</div><div class='del'>-  A oneshot_lines mode is added.  [Feature #15022]</div><div class='del'>-  This mode checks "whether each line was executed at least once or not",</div><div class='del'>-  instead of "how many times each line was executed".</div><div class='del'>-  A hook for each line is fired at most once, and after it is fired</div><div class='del'>-  the hook flag is removed, i.e., it runs with zero overhead.</div><div class='del'>-</div><div class='del'>-  [New options]</div><div class='del'>-</div><div class='del'>-    * Add +:oneshot_lines+ keyword argument to Coverage.start.</div><div class='del'>-</div><div class='del'>-    * Add +:stop+ and +:clear+ keyword arguments to Coverage.result.</div><div class='del'>-      If +clear+ is true, it clears the counters to zero.</div><div class='del'>-      If +stop+ is true, it disables coverage measurement.</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * Coverage.line_stub, which is a simple helper function that</div><div class='del'>-      creates the "stub" of line coverage from a given source code.</div><div class='del'>-</div><div class='del'>-[ERB]</div><div class='del'>-</div><div class='del'>-  [New options]</div><div class='del'>-</div><div class='del'>-    * Add +:trim_mode+ and +:eoutvar+ keyword arguments to ERB.new.</div><div class='del'>-      Now non-keyword arguments other than first one are softly deprecated</div><div class='del'>-      and will be removed when Ruby 2.5 becomes EOL. [Feature #14256]</div><div class='del'>-</div><div class='del'>-    * erb command's &lt;tt&gt;-S&lt;/tt&gt; option is deprecated, which will be removed</div><div class='del'>-      in the next version.</div><div class='del'>-</div><div class='del'>-[FileUtils]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * FileUtils#cp_lr.  [Feature #4189]</div><div class='del'>-</div><div class='del'>-[Matrix]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * Matrix#antisymmetric?, Matrix#skew_symmetric?</div><div class='del'>-</div><div class='del'>-    * Matrix#map!, Matrix#collect! [Feature #14151]</div><div class='del'>-</div><div class='del'>-    * Matrix#[]=</div><div class='del'>-</div><div class='del'>-    * Vector#map!, Vector#collect!</div><div class='del'>-</div><div class='del'>-    * Vector#[]=</div><div class='del'>-</div><div class='del'>-[Net]</div><div class='del'>-</div><div class='del'>-  [New options]</div><div class='del'>-</div><div class='del'>-    * Add +:write_timeout+ keyword argument to Net::HTTP.new. [Feature #13396]</div><div class='del'>-</div><div class='del'>-  [New methods]</div><div class='del'>-</div><div class='del'>-    * Add Net::HTTP#write_timeout and Net::HTTP#write_timeout=.  [Feature #13396]</div><div class='del'>-</div><div class='del'>-  [New constant]</div><div class='del'>-</div><div class='del'>-    * Add Net::HTTPClientException to deprecate Net::HTTPServerException,</div><div class='del'>-      whose name is misleading.  [Bug #14688]</div><div class='del'>-</div><div class='del'>-[NKF]</div><div class='del'>-</div><div class='del'>-  * Upgrade to nkf v2.1.5</div><div class='del'>-</div><div class='del'>-[Psych]</div><div class='del'>-</div><div class='del'>-  * Upgrade to Psych 3.1.0</div><div class='del'>-</div><div class='del'>-[REXML]</div><div class='del'>-</div><div class='del'>-  * Upgrade to REXML 3.1.8</div><div class='del'>-    https://github.com/ruby/rexml/blob/master/NEWS.md</div><div class='del'>-</div><div class='del'>-  [Improved some XPath implementations]</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;concat()&lt;/code&gt; function: Stringify all arguments before concatenating</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;string()&lt;/code&gt; function: Support context node</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;string()&lt;/code&gt; function: Support processing instruction node</div><div class='del'>-</div><div class='del'>-    * Support &lt;code&gt;"*:#{ELEMENT_NAME}"&lt;/code&gt; syntax in XPath 2.0</div><div class='del'>-</div><div class='del'>-  [Fixed some XPath implementations]</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;"//#{ELEMENT_NAME}[#{POSITION}]"&lt;/code&gt; case</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;string()&lt;/code&gt; function: Fix &lt;code&gt;function(document)&lt;/code&gt;</div><div class='del'>-      returns nodes that are out of root elements.</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;"/ #{ELEMENT_NAME} "&lt;/code&gt; case</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;"/ #{ELEMENT_NAME} [ #{PREDICATE} ]"&lt;/code&gt; case</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;"/ #{AXIS}::#{ELEMENT_NAME}"&lt;/code&gt; case</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;"#{N}-#{M}"&lt;/code&gt; case: One or more white spaces were required</div><div class='del'>-      before &lt;code&gt;"-"&lt;/code&gt;</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;"/child::node()"&lt;/code&gt; case</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;"#{FUNCTION}()/#{PATH}"&lt;/code&gt; case</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;"@#{ATTRIBUTE}/parent::"&lt;/code&gt; case</div><div class='del'>-</div><div class='del'>-    * &lt;code&gt;"name(#{NODE_SET})"&lt;/code&gt; case</div><div class='del'>-</div><div class='del'>-[RSS]</div><div class='del'>-</div><div class='del'>-  [New options]</div><div class='del'>-</div><div class='del'>-    * RSS::Parser.parse: Accept options as Hash. +:validate+ ,</div><div class='del'>-      +:ignore_unknown_element+ , +:parser_class+ options are available.</div><div class='del'>-</div><div class='del'>-[RubyGems]</div><div class='del'>-</div><div class='del'>-  * Upgrade to RubyGems 3.0.0</div><div class='del'>-</div><div class='del'>-  * https://blog.rubygems.org/2018/12/19/3.0.0-released.html</div><div class='del'>-</div><div class='del'>-[Set]</div><div class='del'>-</div><div class='del'>-  [Aliased methods]</div><div class='del'>-</div><div class='del'>-    * Set#filter! is a new alias for Set#select!.  [Feature #13784]</div><div class='del'>-</div><div class='del'>-[URI]</div><div class='del'>-</div><div class='del'>-  [New constant]</div><div class='del'>-</div><div class='del'>-    * Add URI::File to handle file URI scheme.  [Feature #14035]</div><div class='del'>-</div><div class='del'>-=== Compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-[Dir]</div><div class='del'>-</div><div class='del'>-  * Dir.glob with &lt;code&gt;'\0'&lt;/code&gt;-separated pattern list will be deprecated,</div><div class='del'>-    and is now warned.  [Feature #14643]</div><div class='del'>-</div><div class='del'>-[File]</div><div class='del'>-</div><div class='del'>-  * File.read, File.binread, File.write, File.binwrite, File.foreach, and</div><div class='del'>-    File.readlines do not invoke external commands even if the path starts</div><div class='del'>-    with the pipe character &lt;code&gt;'|'&lt;/code&gt;. [Feature #14245]</div><div class='del'>-</div><div class='del'>-[Object]</div><div class='del'>-</div><div class='del'>-  * Object#=~ is deprecated.  [Feature #15231]</div><div class='del'>-</div><div class='del'>-=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* These standard libraries have been promoted to default gems.</div><div class='del'>-</div><div class='del'>-  * e2mmap</div><div class='del'>-  * forwardable</div><div class='del'>-  * irb</div><div class='del'>-  * logger</div><div class='del'>-  * matrix</div><div class='del'>-  * mutex_m</div><div class='del'>-  * ostruct</div><div class='del'>-  * prime</div><div class='del'>-  * rexml</div><div class='del'>-  * rss</div><div class='del'>-  * shell</div><div class='del'>-  * sync</div><div class='del'>-  * thwait</div><div class='del'>-  * tracer</div><div class='del'>-</div><div class='del'>-[BigDecimal]</div><div class='del'>-</div><div class='del'>-  * The following methods are removed.</div><div class='del'>-</div><div class='del'>-    * BigDecimal.allocate</div><div class='del'>-    * BigDecimal.ver</div><div class='del'>-</div><div class='del'>-  * Every BigDecimal object is frozen. [Feature #13984]</div><div class='del'>-</div><div class='del'>-  * BigDecimal() parses the given string like Float().</div><div class='del'>-</div><div class='del'>-  * String#to_d parses the receiver string like String#to_f.</div><div class='del'>-</div><div class='del'>-  * BigDecimal.new will be removed on its version 1.5.</div><div class='del'>-</div><div class='del'>-[Pathname]</div><div class='del'>-</div><div class='del'>-  * Pathname#read, Pathname#binread, Pathname#write, Pathname#binwrite,</div><div class='del'>-    Pathname#each_line and Pathname#readlines do not invoke external</div><div class='del'>-    commands even if the path starts with the pipe character &lt;code&gt;'|'&lt;/code&gt;.</div><div class='del'>-    This follows [Feature #14245].</div><div class='del'>-</div><div class='del'>-=== C API updates</div><div class='del'>-</div><div class='del'>-=== Implementation improvements</div><div class='del'>-</div><div class='del'>-* Speedup Proc#call because we don't need to care about &lt;code&gt;$SAFE&lt;/code&gt;</div><div class='del'>-  any more. [Feature #14318]</div><div class='del'>-</div><div class='del'>-  With +lc_fizzbuzz+ benchmark which uses Proc#call many times we can</div><div class='del'>-  measure x1.4 improvements.  [Bug #10212]</div><div class='del'>-</div><div class='del'>-* Speedup block.call where +block+ is passed block parameter. [Feature #14330]</div><div class='del'>-</div><div class='del'>-  Ruby 2.5 improves block passing performance. [Feature #14045]</div><div class='del'>-</div><div class='del'>-  Additionally, Ruby 2.6 improves the performance of passed block calling.</div><div class='del'>-</div><div class='del'>-* Introduce an initial implementation of a JIT (Just-in-time) compiler. [Feature #14235] [experimental]</div><div class='del'>-</div><div class='del'>-  * &lt;tt&gt;--jit&lt;/tt&gt; command line option is added to enable JIT. &lt;tt&gt;--jit-verbose=1&lt;/tt&gt;</div><div class='del'>-    is good for inspection.  See &lt;tt&gt;ruby --help&lt;/tt&gt; for others.</div><div class='del'>-  * To generate machine code, this JIT compiler uses the C compiler used for building</div><div class='del'>-    the interpreter. Currently GCC, Clang, and Microsoft Visual C++ are supported for it.</div><div class='del'>-  * &lt;tt&gt;--disable-mjit-support&lt;/tt&gt; option is added to configure. This is added for JIT debugging,</div><div class='del'>-    but if you get an error on building a header file for JIT, you can use this option to skip</div><div class='del'>-    building it as a workaround.</div><div class='del'>-  * rb_waitpid reimplemented on Unix-like platforms to maintain</div><div class='del'>-    compatibility with processes created for JIT [Bug #14867]</div><div class='del'>-</div><div class='del'>-* VM generator script renewal; makes the generated VM more optimized. [GH-1779]</div><div class='del'>-</div><div class='del'>-* Thread cache enabled for pthreads platforms (for Thread.new and</div><div class='del'>-  Thread.start).  [Feature #14757]</div><div class='del'>-</div><div class='del'>-* timer thread is eliminated for platforms with POSIX timers [Misc #14937]</div><div class='del'>-</div><div class='del'>-* Transient Heap (theap) is supported. [Bug #14858] [Feature #14989]</div><div class='del'>-  theap is a managed heap for short-living memory objects. For example,</div><div class='del'>-  making a small and short-living Hash object is x2 faster. With rdoc benchmark,</div><div class='del'>-  we measured 6-7% performance improvement.</div><div class='del'>-</div><div class='del'>-* Native implementations (arm32, arm64, ppc64le, win32, win64, x86, amd64) of</div><div class='del'>-  coroutines to improve performance of Fiber significantly. [Feature #14739]</div><div class='del'>-</div><div class='del'>-=== Miscellaneous changes</div><div class='del'>-</div><div class='del'>-* On macOS, shared libraries no longer include a full version number of Ruby</div><div class='del'>-  in their names.  This eliminates the burden of each teeny upgrade on the</div><div class='del'>-  platform that users need to rebuild every extension library.</div><div class='del'>-</div><div class='del'>-  [Before]</div><div class='del'>-    * libruby.2.6.0.dylib</div><div class='del'>-    * libruby.2.6.dylib -&gt; libruby.2.6.0.dylib</div><div class='del'>-    * libruby.dylib -&gt; libruby.2.6.0.dylib</div><div class='del'>-</div><div class='del'>-  [After]</div><div class='del'>-    * libruby.2.6.dylib</div><div class='del'>-    * libruby.dylib -&gt; libruby.2.6.dylib</div><div class='del'>-</div><div class='del'>-* Extracted misc/*.el files to https://github.com/ruby/elisp</div><div class='head'>diff --git a/NEWS.md b/NEWS.md<br/>new file mode 100644<br/>index 0000000000..f6c3c6fc97<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/NEWS.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>NEWS.md</a></div><div class='hunk'>@@ -0,0 +1,820 @@</div><div class='add'>+# NEWS for Ruby 3.2.0</div><div class='add'>+</div><div class='add'>+This document is a list of user-visible feature changes</div><div class='add'>+since the **3.1.0** release, except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept to a minimum, see links for details.</div><div class='add'>+</div><div class='add'>+## Language changes</div><div class='add'>+</div><div class='add'>+* Anonymous rest and keyword rest arguments can now be passed as</div><div class='add'>+  arguments, instead of just used in method parameters.</div><div class='add'>+  [[Feature #18351]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    def foo(*)</div><div class='add'>+      bar(*)</div><div class='add'>+    end</div><div class='add'>+    def baz(**)</div><div class='add'>+      quux(**)</div><div class='add'>+    end</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+* A proc that accepts a single positional argument and keywords will</div><div class='add'>+  no longer autosplat. [[Bug #18633]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    proc{|a, **k| a}.call([1, 2])</div><div class='add'>+    # Ruby 3.1 and before</div><div class='add'>+    # =&gt; 1</div><div class='add'>+    # Ruby 3.2 and after</div><div class='add'>+    # =&gt; [1, 2]</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+* Constant assignment evaluation order for constants set on explicit</div><div class='add'>+  objects has been made consistent with single attribute assignment</div><div class='add'>+  evaluation order. With this code:</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    foo::BAR = baz</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    `foo` is now called before `baz`. Similarly, for multiple assignments</div><div class='add'>+    to constants,  left-to-right evaluation order is used. With this</div><div class='add'>+    code:</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    foo1::BAR1, foo2::BAR2 = baz1, baz2</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    The following evaluation order is now used:</div><div class='add'>+</div><div class='add'>+    1. `foo1`</div><div class='add'>+    2. `foo2`</div><div class='add'>+    3. `baz1`</div><div class='add'>+    4. `baz2`</div><div class='add'>+</div><div class='add'>+    [[Bug #15928]]</div><div class='add'>+</div><div class='add'>+* "Find pattern" is no longer experimental.</div><div class='add'>+  [[Feature #18585]]</div><div class='add'>+</div><div class='add'>+* Methods taking a rest parameter (like `*args`) and wishing to delegate keyword</div><div class='add'>+  arguments through `foo(*args)` must now be marked with `ruby2_keywords`</div><div class='add'>+  (if not already the case). In other words, all methods wishing to delegate</div><div class='add'>+  keyword arguments through `*args` must now be marked with `ruby2_keywords`,</div><div class='add'>+  with no exception. This will make it easier to transition to other ways of</div><div class='add'>+  delegation once a library can require Ruby 3+. Previously, the `ruby2_keywords`</div><div class='add'>+  flag was kept if the receiving method took `*args`, but this was a bug and an</div><div class='add'>+  inconsistency. A good technique to find the potentially-missing `ruby2_keywords`</div><div class='add'>+  is to run the test suite, for where it fails find the last method which must</div><div class='add'>+  receive keyword arguments, use `puts nil, caller, nil` there, and check each</div><div class='add'>+  method/block on the call chain which must delegate keywords is correctly marked</div><div class='add'>+  as `ruby2_keywords`. [[Bug #18625]] [[Bug #16466]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    def target(**kw)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Accidentally worked without ruby2_keywords in Ruby 2.7-3.1, ruby2_keywords</div><div class='add'>+    # needed in 3.2+. Just like (*args, **kwargs) or (...) would be needed on</div><div class='add'>+    # both #foo and #bar when migrating away from ruby2_keywords.</div><div class='add'>+    ruby2_keywords def bar(*args)</div><div class='add'>+      target(*args)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    ruby2_keywords def foo(*args)</div><div class='add'>+      bar(*args)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    foo(k: 1)</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+## Core classes updates</div><div class='add'>+</div><div class='add'>+Note: We're only listing outstanding class updates.</div><div class='add'>+</div><div class='add'>+* Fiber</div><div class='add'>+</div><div class='add'>+    * Introduce Fiber.[] and Fiber.[]= for inheritable fiber storage.</div><div class='add'>+      Introduce Fiber#storage and Fiber#storage= (experimental) for</div><div class='add'>+      getting and resetting the current storage.  Introduce</div><div class='add'>+      `Fiber.new(storage:)` for setting the storage when creating a</div><div class='add'>+      fiber. [[Feature #19078]]</div><div class='add'>+</div><div class='add'>+        Existing Thread and Fiber local variables can be tricky to use.</div><div class='add'>+        Thread-local variables are shared between all fibers, making it</div><div class='add'>+        hard to isolate, while Fiber-local variables can be hard to</div><div class='add'>+        share.  It is often desirable to define unit of execution</div><div class='add'>+        ("execution context") such that some state is shared between all</div><div class='add'>+        fibers and threads created in that context.  This is what Fiber</div><div class='add'>+        storage provides.</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        def log(message)</div><div class='add'>+          puts "#{Fiber[:request_id]}: #{message}"</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def handle_requests</div><div class='add'>+          while request = read_request</div><div class='add'>+            Fiber.schedule do</div><div class='add'>+              Fiber[:request_id] = SecureRandom.uuid</div><div class='add'>+</div><div class='add'>+              request.messages.each do |message|</div><div class='add'>+                Fiber.schedule do</div><div class='add'>+                  log("Handling #{message}") # Log includes inherited request_id.</div><div class='add'>+                end</div><div class='add'>+              end</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+        You should generally consider Fiber storage for any state which</div><div class='add'>+        you want to be shared implicitly between all fibers and threads</div><div class='add'>+        created in a given context, e.g. a connection pool, a request</div><div class='add'>+        id, a logger level, environment variables, configuration, etc.</div><div class='add'>+</div><div class='add'>+* Fiber::Scheduler</div><div class='add'>+</div><div class='add'>+    * Introduce `Fiber::Scheduler#io_select` for non-blocking IO.select.</div><div class='add'>+      [[Feature #19060]]</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+</div><div class='add'>+    * Introduce IO#timeout= and IO#timeout which can cause</div><div class='add'>+      IO::TimeoutError to be raised if a blocking operation exceeds the</div><div class='add'>+      specified timeout. [[Feature #18630]]</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        STDIN.timeout = 1</div><div class='add'>+        STDIN.read # =&gt; Blocking operation timed out! (IO::TimeoutError)</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+    * Introduce `IO.new(..., path:)` and promote `File#path` to `IO#path`.</div><div class='add'>+      [[Feature #19036]]</div><div class='add'>+</div><div class='add'>+* Class</div><div class='add'>+</div><div class='add'>+    * Class#attached_object, which returns the object for which</div><div class='add'>+      the receiver is the singleton class. Raises TypeError if the</div><div class='add'>+      receiver is not a singleton class.</div><div class='add'>+      [[Feature #12084]]</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        class Foo; end</div><div class='add'>+</div><div class='add'>+        Foo.singleton_class.attached_object        #=&gt; Foo</div><div class='add'>+        Foo.new.singleton_class.attached_object    #=&gt; #&lt;Foo:0x000000010491a370&gt;</div><div class='add'>+        Foo.attached_object                        #=&gt; TypeError: `Foo' is not a singleton class</div><div class='add'>+        nil.singleton_class.attached_object        #=&gt; TypeError: `NilClass' is not a singleton class</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+* Data</div><div class='add'>+</div><div class='add'>+    * New core class to represent simple immutable value object. The class is</div><div class='add'>+      similar to Struct and partially shares an implementation, but has more</div><div class='add'>+      lean and strict API. [[Feature #16122]]</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        Measure = Data.define(:amount, :unit)</div><div class='add'>+        distance = Measure.new(100, 'km')            #=&gt; #&lt;data Measure amount=100, unit="km"&gt;</div><div class='add'>+        weight = Measure.new(amount: 50, unit: 'kg') #=&gt; #&lt;data Measure amount=50, unit="kg"&gt;</div><div class='add'>+        weight.with(amount: 40)                      #=&gt; #&lt;data Measure amount=40, unit="kg"&gt;</div><div class='add'>+        weight.amount                                #=&gt; 50</div><div class='add'>+        weight.amount = 40                           #=&gt; NoMethodError: undefined method `amount='</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+* Encoding</div><div class='add'>+</div><div class='add'>+    * Encoding#replicate has been deprecated and will be removed in 3.3. [[Feature #18949]]</div><div class='add'>+    * The dummy `Encoding::UTF_16` and `Encoding::UTF_32` encodings no longer</div><div class='add'>+      try to dynamically guess the endian based on a byte order mark.</div><div class='add'>+      Use `Encoding::UTF_16BE`/`UTF_16LE` and `Encoding::UTF_32BE`/`UTF_32LE` instead.</div><div class='add'>+      This change speeds up getting the encoding of a String. [[Feature #18949]]</div><div class='add'>+    * Limit maximum encoding set size by 256.</div><div class='add'>+      If exceeding maximum size, `EncodingError` will be raised. [[Feature #18949]]</div><div class='add'>+</div><div class='add'>+* Enumerator</div><div class='add'>+</div><div class='add'>+    * Enumerator.product has been added.  Enumerator::Product is the implementation. [[Feature #18685]]</div><div class='add'>+</div><div class='add'>+* Exception</div><div class='add'>+</div><div class='add'>+    * Exception#detailed_message has been added.</div><div class='add'>+      The default error printer calls this method on the Exception object</div><div class='add'>+      instead of #message. [[Feature #18564]]</div><div class='add'>+</div><div class='add'>+* Hash</div><div class='add'>+</div><div class='add'>+    * Hash#shift now always returns nil if the hash is</div><div class='add'>+      empty, instead of returning the default value or</div><div class='add'>+      calling the default proc. [[Bug #16908]]</div><div class='add'>+</div><div class='add'>+* Integer</div><div class='add'>+</div><div class='add'>+    * Integer#ceildiv has been added. [[Feature #18809]]</div><div class='add'>+</div><div class='add'>+* Kernel</div><div class='add'>+</div><div class='add'>+    * Kernel#binding raises RuntimeError if called from a non-Ruby frame</div><div class='add'>+      (such as a method defined in C). [[Bug #18487]]</div><div class='add'>+</div><div class='add'>+* MatchData</div><div class='add'>+</div><div class='add'>+    * MatchData#byteoffset has been added. [[Feature #13110]]</div><div class='add'>+    * MatchData#deconstruct has been added. [[Feature #18821]]</div><div class='add'>+    * MatchData#deconstruct_keys has been added. [[Feature #18821]]</div><div class='add'>+</div><div class='add'>+* Module</div><div class='add'>+</div><div class='add'>+    * Module.used_refinements has been added. [[Feature #14332]]</div><div class='add'>+    * Module#refinements has been added. [[Feature #12737]]</div><div class='add'>+    * Module#const_added has been added. [[Feature #17881]]</div><div class='add'>+    * Module#undefined_instance_methods has been added. [[Feature #12655]]</div><div class='add'>+</div><div class='add'>+* Proc</div><div class='add'>+</div><div class='add'>+    * Proc#dup returns an instance of subclass. [[Bug #17545]]</div><div class='add'>+    * Proc#parameters now accepts lambda keyword. [[Feature #15357]]</div><div class='add'>+</div><div class='add'>+* Process</div><div class='add'>+    * Added `RLIMIT_NPTS` constant to FreeBSD platform</div><div class='add'>+</div><div class='add'>+* Regexp</div><div class='add'>+</div><div class='add'>+    * The cache-based optimization is introduced.</div><div class='add'>+      Many (but not all) Regexp matching is now in linear time, which</div><div class='add'>+      will prevent regular expression denial of service (ReDoS)</div><div class='add'>+      vulnerability. [[Feature #19104]]</div><div class='add'>+</div><div class='add'>+    * Regexp.linear_time? is introduced. [[Feature #19194]]</div><div class='add'>+</div><div class='add'>+    * Regexp.new now supports passing the regexp flags not only as an Integer,</div><div class='add'>+      but also as a String.  Unknown flags raise ArgumentError.</div><div class='add'>+      Otherwise, anything other than `true`, `false`, `nil` or Integer will be warned.</div><div class='add'>+      [[Feature #18788]]</div><div class='add'>+</div><div class='add'>+    * Regexp.timeout= has been added. Also, Regexp.new new supports timeout keyword.</div><div class='add'>+      See [[Feature #17837]]</div><div class='add'>+</div><div class='add'>+* Refinement</div><div class='add'>+</div><div class='add'>+    * Refinement#refined_class has been added. [[Feature #12737]]</div><div class='add'>+</div><div class='add'>+* RubyVM::AbstractSyntaxTree</div><div class='add'>+</div><div class='add'>+    * Add `error_tolerant` option for `parse`, `parse_file` and `of`. [[Feature #19013]]</div><div class='add'>+      With this option</div><div class='add'>+</div><div class='add'>+        1. SyntaxError is suppressed</div><div class='add'>+        2. AST is returned for invalid input</div><div class='add'>+        3. `end` is complemented when a parser reaches to the end of input but `end` is insufficient</div><div class='add'>+        4. `end` is treated as keyword based on indent</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        # Without error_tolerant option</div><div class='add'>+        root = RubyVM::AbstractSyntaxTree.parse(&lt;&lt;~RUBY)</div><div class='add'>+        def m</div><div class='add'>+          a = 10</div><div class='add'>+          if</div><div class='add'>+        end</div><div class='add'>+        RUBY</div><div class='add'>+        # =&gt; &lt;internal:ast&gt;:33:in `parse': syntax error, unexpected `end' (SyntaxError)</div><div class='add'>+</div><div class='add'>+        # With error_tolerant option</div><div class='add'>+        root = RubyVM::AbstractSyntaxTree.parse(&lt;&lt;~RUBY, error_tolerant: true)</div><div class='add'>+        def m</div><div class='add'>+          a = 10</div><div class='add'>+          if</div><div class='add'>+        end</div><div class='add'>+        RUBY</div><div class='add'>+        p root # =&gt; #&lt;RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-4:3&gt;</div><div class='add'>+</div><div class='add'>+        # `end` is treated as keyword based on indent</div><div class='add'>+        root = RubyVM::AbstractSyntaxTree.parse(&lt;&lt;~RUBY, error_tolerant: true)</div><div class='add'>+        module Z</div><div class='add'>+          class Foo</div><div class='add'>+            foo.</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          def bar</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+        RUBY</div><div class='add'>+        p root.children[-1].children[-1].children[-1].children[-2..-1]</div><div class='add'>+        # =&gt; [#&lt;RubyVM::AbstractSyntaxTree::Node:CLASS@2:2-4:5&gt;, #&lt;RubyVM::AbstractSyntaxTree::Node:DEFN@6:2-7:5&gt;]</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+    * Add `keep_tokens` option for `parse`, `parse_file` and `of`. Add `#tokens` and `#all_tokens`</div><div class='add'>+      for RubyVM::AbstractSyntaxTree::Node [[Feature #19070]]</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        root = RubyVM::AbstractSyntaxTree.parse("x = 1 + 2", keep_tokens: true)</div><div class='add'>+        root.tokens # =&gt; [[0, :tIDENTIFIER, "x", [1, 0, 1, 1]], [1, :tSP, " ", [1, 1, 1, 2]], ...]</div><div class='add'>+        root.tokens.map{_1[2]}.join # =&gt; "x = 1 + 2"</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+* Set</div><div class='add'>+</div><div class='add'>+    * Set is now available as a built-in class without the need for `require "set"`. [[Feature #16989]]</div><div class='add'>+      It is currently autoloaded via the Set constant or a call to Enumerable#to_set.</div><div class='add'>+</div><div class='add'>+* String</div><div class='add'>+</div><div class='add'>+    * String#byteindex and String#byterindex have been added. [[Feature #13110]]</div><div class='add'>+    * Update Unicode to Version 15.0.0 and Emoji Version 15.0. [[Feature #18639]]</div><div class='add'>+      (also applies to Regexp)</div><div class='add'>+    * String#bytesplice has been added.  [[Feature #18598]]</div><div class='add'>+    * String#dedup has been added as an alias to String#-@.  [[Feature #18595]]</div><div class='add'>+</div><div class='add'>+* Struct</div><div class='add'>+</div><div class='add'>+    * A Struct class can also be initialized with keyword arguments</div><div class='add'>+      without `keyword_init: true` on Struct.new [[Feature #16806]]</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        Post = Struct.new(:id, :name)</div><div class='add'>+        Post.new(1, "hello") #=&gt; #&lt;struct Post id=1, name="hello"&gt;</div><div class='add'>+        # From Ruby 3.2, the following code also works without keyword_init: true.</div><div class='add'>+        Post.new(id: 1, name: "hello") #=&gt; #&lt;struct Post id=1, name="hello"&gt;</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+* Thread</div><div class='add'>+</div><div class='add'>+    * Thread.each_caller_location is added. [[Feature #16663]]</div><div class='add'>+</div><div class='add'>+* Thread::Queue</div><div class='add'>+</div><div class='add'>+    * Thread::Queue#pop(timeout: sec) is added. [[Feature #18774]]</div><div class='add'>+</div><div class='add'>+* Thread::SizedQueue</div><div class='add'>+</div><div class='add'>+    * Thread::SizedQueue#pop(timeout: sec) is added. [[Feature #18774]]</div><div class='add'>+    * Thread::SizedQueue#push(timeout: sec) is added. [[Feature #18944]]</div><div class='add'>+</div><div class='add'>+* Time</div><div class='add'>+</div><div class='add'>+    * Time#deconstruct_keys is added, allowing to use Time instances</div><div class='add'>+      in pattern-matching expressions [[Feature #19071]]</div><div class='add'>+</div><div class='add'>+    * Time.new now can parse a string like generated by Time#inspect</div><div class='add'>+      and return a Time instance based on the given argument.</div><div class='add'>+      [[Feature #18033]]</div><div class='add'>+</div><div class='add'>+* SyntaxError</div><div class='add'>+    * SyntaxError#path has been added.  [[Feature #19138]]</div><div class='add'>+</div><div class='add'>+* TracePoint</div><div class='add'>+</div><div class='add'>+    * TracePoint#binding now returns `nil` for `c_call`/`c_return` TracePoints.</div><div class='add'>+      [[Bug #18487]]</div><div class='add'>+    * TracePoint#enable `target_thread` keyword argument now defaults to the</div><div class='add'>+      current thread if a block is given and `target` and `target_line` keyword</div><div class='add'>+      arguments are not passed. [[Bug #16889]]</div><div class='add'>+</div><div class='add'>+* UnboundMethod</div><div class='add'>+</div><div class='add'>+    * `UnboundMethod#==` returns `true` if the actual method is same. For example,</div><div class='add'>+      `String.instance_method(:object_id) == Array.instance_method(:object_id)`</div><div class='add'>+      returns `true`. [[Feature #18798]]</div><div class='add'>+</div><div class='add'>+    * `UnboundMethod#inspect` does not show the receiver of `instance_method`.</div><div class='add'>+      For example `String.instance_method(:object_id).inspect` returns</div><div class='add'>+      `"#&lt;UnboundMethod: Kernel#object_id()&gt;"`</div><div class='add'>+      (was `"#&lt;UnboundMethod: String(Kernel)#object_id()&gt;"`).</div><div class='add'>+</div><div class='add'>+* GC</div><div class='add'>+</div><div class='add'>+    * Expose `need_major_gc` via `GC.latest_gc_info`. [GH-6791]</div><div class='add'>+</div><div class='add'>+* ObjectSpace</div><div class='add'>+</div><div class='add'>+    * `ObjectSpace.dump_all` dump shapes as well. [GH-6868]</div><div class='add'>+</div><div class='add'>+## Stdlib updates</div><div class='add'>+</div><div class='add'>+* Bundler</div><div class='add'>+</div><div class='add'>+    * Bundler now uses [PubGrub] resolver instead of [Molinillo] for performance improvement.</div><div class='add'>+    * Add --ext=rust support to bundle gem for creating simple gems with Rust extensions.</div><div class='add'>+      [[GH-rubygems-6149]]</div><div class='add'>+    * Make cloning git repos faster [[GH-rubygems-4475]]</div><div class='add'>+</div><div class='add'>+* RubyGems</div><div class='add'>+</div><div class='add'>+    * Add mswin support for cargo builder. [[GH-rubygems-6167]]</div><div class='add'>+</div><div class='add'>+* CGI</div><div class='add'>+</div><div class='add'>+    * `CGI.escapeURIComponent` and `CGI.unescapeURIComponent` are added.</div><div class='add'>+      [[Feature #18822]]</div><div class='add'>+</div><div class='add'>+* Coverage</div><div class='add'>+</div><div class='add'>+    * `Coverage.setup` now accepts `eval: true`. By this, `eval` and related methods are</div><div class='add'>+      able to generate code coverage. [[Feature #19008]]</div><div class='add'>+</div><div class='add'>+    * `Coverage.supported?(mode)` enables detection of what coverage modes are</div><div class='add'>+      supported. [[Feature #19026]]</div><div class='add'>+</div><div class='add'>+* Date</div><div class='add'>+</div><div class='add'>+    * Added `Date#deconstruct_keys` and `DateTime#deconstruct_keys` same as [[Feature #19071]]</div><div class='add'>+</div><div class='add'>+* ERB</div><div class='add'>+</div><div class='add'>+    * `ERB::Util.html_escape` is made faster than `CGI.escapeHTML`.</div><div class='add'>+        * It no longer allocates a String object when no character needs to be escaped.</div><div class='add'>+        * It skips calling `#to_s` method when an argument is already a String.</div><div class='add'>+        * `ERB::Escape.html_escape` is added as an alias to `ERB::Util.html_escape`,</div><div class='add'>+          which has not been monkey-patched by Rails.</div><div class='add'>+    * `ERB::Util.url_encode` is made faster using `CGI.escapeURIComponent`.</div><div class='add'>+    * `-S` option is removed from `erb` command.</div><div class='add'>+</div><div class='add'>+* FileUtils</div><div class='add'>+</div><div class='add'>+    * Add FileUtils.ln_sr method and `relative:` option to FileUtils.ln_s.</div><div class='add'>+      [[Feature #18925]]</div><div class='add'>+</div><div class='add'>+* IRB</div><div class='add'>+</div><div class='add'>+    * debug.gem integration commands have been added: `debug`, `break`, `catch`,</div><div class='add'>+      `next`, `delete`, `step`, `continue`, `finish`, `backtrace`, `info`</div><div class='add'>+        * They work even if you don't have `gem "debug"` in your Gemfile.</div><div class='add'>+        * See also: [What's new in Ruby 3.2's IRB?](https://st0012.dev/whats-new-in-ruby-3-2-irb)</div><div class='add'>+    * More Pry-like commands and features have been added.</div><div class='add'>+        * `edit` and `show_cmds` (like Pry's `help`) are added.</div><div class='add'>+        * `ls` takes `-g` or `-G` option to filter out outputs.</div><div class='add'>+        * `show_source` is aliased from `$` and accepts unquoted inputs.</div><div class='add'>+        * `whereami` is aliased from `@`.</div><div class='add'>+</div><div class='add'>+* Net::Protocol</div><div class='add'>+</div><div class='add'>+    * Improve `Net::BufferedIO` performance. [[GH-net-protocol-14]]</div><div class='add'>+</div><div class='add'>+* Pathname</div><div class='add'>+</div><div class='add'>+    * Added `Pathname#lutime`. [[GH-pathname-20]]</div><div class='add'>+</div><div class='add'>+* Socket</div><div class='add'>+</div><div class='add'>+    * Added the following constants for supported platforms.</div><div class='add'>+        * `SO_INCOMING_CPU`</div><div class='add'>+        * `SO_INCOMING_NAPI_ID`</div><div class='add'>+        * `SO_RTABLE`</div><div class='add'>+        * `SO_SETFIB`</div><div class='add'>+        * `SO_USER_COOKIE`</div><div class='add'>+        * `TCP_KEEPALIVE`</div><div class='add'>+        * `TCP_CONNECTION_INFO`</div><div class='add'>+</div><div class='add'>+* SyntaxSuggest</div><div class='add'>+</div><div class='add'>+    * The feature of `syntax_suggest` formerly `dead_end` is integrated in Ruby.</div><div class='add'>+      [[Feature #18159]]</div><div class='add'>+</div><div class='add'>+* UNIXSocket</div><div class='add'>+</div><div class='add'>+    * Add support for UNIXSocket on Windows. Emulate anonymous sockets. Add</div><div class='add'>+      support for File.socket? and File::Stat#socket? where possible.</div><div class='add'>+      [[Feature #19135]]</div><div class='add'>+</div><div class='add'>+*   The following default gems are updated.</div><div class='add'>+</div><div class='add'>+    * RubyGems 3.4.1</div><div class='add'>+    * abbrev 0.1.1</div><div class='add'>+    * benchmark 0.2.1</div><div class='add'>+    * bigdecimal 3.1.3</div><div class='add'>+    * bundler 2.4.1</div><div class='add'>+    * cgi 0.3.6</div><div class='add'>+    * csv 3.2.6</div><div class='add'>+    * date 3.3.3</div><div class='add'>+    * delegate 0.3.0</div><div class='add'>+    * did_you_mean 1.6.3</div><div class='add'>+    * digest 3.1.1</div><div class='add'>+    * drb 2.1.1</div><div class='add'>+    * english 0.7.2</div><div class='add'>+    * erb 4.0.2</div><div class='add'>+    * error_highlight 0.5.1</div><div class='add'>+    * etc 1.4.2</div><div class='add'>+    * fcntl 1.0.2</div><div class='add'>+    * fiddle 1.1.1</div><div class='add'>+    * fileutils 1.7.0</div><div class='add'>+    * forwardable 1.3.3</div><div class='add'>+    * getoptlong 0.2.0</div><div class='add'>+    * io-console 0.6.0</div><div class='add'>+    * io-nonblock 0.2.0</div><div class='add'>+    * io-wait 0.3.0</div><div class='add'>+    * ipaddr 1.2.5</div><div class='add'>+    * irb 1.6.2</div><div class='add'>+    * json 2.6.3</div><div class='add'>+    * logger 1.5.3</div><div class='add'>+    * mutex_m 0.1.2</div><div class='add'>+    * net-http 0.4.0</div><div class='add'>+    * net-protocol 0.2.1</div><div class='add'>+    * nkf 0.1.2</div><div class='add'>+    * open-uri 0.3.0</div><div class='add'>+    * open3 0.1.2</div><div class='add'>+    * openssl 3.1.0</div><div class='add'>+    * optparse 0.3.1</div><div class='add'>+    * ostruct 0.5.5</div><div class='add'>+    * pathname 0.2.1</div><div class='add'>+    * pp 0.4.0</div><div class='add'>+    * pstore 0.1.2</div><div class='add'>+    * psych 5.0.1</div><div class='add'>+    * racc 1.6.2</div><div class='add'>+    * rdoc 6.5.0</div><div class='add'>+    * readline-ext 0.1.5</div><div class='add'>+    * reline 0.3.2</div><div class='add'>+    * resolv 0.2.2</div><div class='add'>+    * resolv-replace 0.1.1</div><div class='add'>+    * securerandom 0.2.2</div><div class='add'>+    * set 1.0.3</div><div class='add'>+    * stringio 3.0.4</div><div class='add'>+    * strscan 3.0.5</div><div class='add'>+    * syntax_suggest 1.0.2</div><div class='add'>+    * syslog 0.1.1</div><div class='add'>+    * tempfile 0.1.3</div><div class='add'>+    * time 0.2.1</div><div class='add'>+    * timeout 0.3.1</div><div class='add'>+    * tmpdir 0.1.3</div><div class='add'>+    * tsort 0.1.1</div><div class='add'>+    * un 0.2.1</div><div class='add'>+    * uri 0.12.0</div><div class='add'>+    * weakref 0.1.2</div><div class='add'>+    * win32ole 1.8.9</div><div class='add'>+    * yaml 0.2.1</div><div class='add'>+    * zlib 3.0.0</div><div class='add'>+</div><div class='add'>+*   The following bundled gems are updated.</div><div class='add'>+</div><div class='add'>+    * minitest 5.16.3</div><div class='add'>+    * power_assert 2.0.3</div><div class='add'>+    * test-unit 3.5.7</div><div class='add'>+    * net-ftp 0.2.0</div><div class='add'>+    * net-imap 0.3.4</div><div class='add'>+    * net-pop 0.1.2</div><div class='add'>+    * net-smtp 0.3.3</div><div class='add'>+    * rbs 2.8.2</div><div class='add'>+    * typeprof 0.21.3</div><div class='add'>+    * debug 1.7.1</div><div class='add'>+</div><div class='add'>+See GitHub releases like [GitHub Releases of Logger](https://github.com/ruby/logger/releases) or changelog for details of the default gems or bundled gems.</div><div class='add'>+</div><div class='add'>+## Supported platforms</div><div class='add'>+</div><div class='add'>+* WebAssembly/WASI is added. See [wasm/README.md] and [ruby.wasm] for more details. [[Feature #18462]]</div><div class='add'>+</div><div class='add'>+## Compatibility issues</div><div class='add'>+</div><div class='add'>+* `String#to_c` currently treat a sequence of underscores as an end of Complex</div><div class='add'>+  string. [[Bug #19087]]</div><div class='add'>+</div><div class='add'>+* Now `ENV.clone` raises `TypeError` as well as `ENV.dup` [[Bug #17767]]</div><div class='add'>+</div><div class='add'>+### Removed constants</div><div class='add'>+</div><div class='add'>+The following deprecated constants are removed.</div><div class='add'>+</div><div class='add'>+* `Fixnum` and `Bignum` [[Feature #12005]]</div><div class='add'>+* `Random::DEFAULT` [[Feature #17351]]</div><div class='add'>+* `Struct::Group`</div><div class='add'>+* `Struct::Passwd`</div><div class='add'>+</div><div class='add'>+### Removed methods</div><div class='add'>+</div><div class='add'>+The following deprecated methods are removed.</div><div class='add'>+</div><div class='add'>+* `Dir.exists?` [[Feature #17391]]</div><div class='add'>+* `File.exists?` [[Feature #17391]]</div><div class='add'>+* `Kernel#=~` [[Feature #15231]]</div><div class='add'>+* `Kernel#taint`, `Kernel#untaint`, `Kernel#tainted?`</div><div class='add'>+  [[Feature #16131]]</div><div class='add'>+* `Kernel#trust`, `Kernel#untrust`, `Kernel#untrusted?`</div><div class='add'>+  [[Feature #16131]]</div><div class='add'>+* `Method#public?`, `Method#private?`, `Method#protected?`,</div><div class='add'>+  `UnboundMethod#public?`, `UnboundMethod#private?`, `UnboundMethod#protected?`</div><div class='add'>+  [[Bug #18729]] [[Bug #18751]] [[Bug #18435]]</div><div class='add'>+</div><div class='add'>+### Source code incompatibility of extension libraries</div><div class='add'>+</div><div class='add'>+* Extension libraries provide PRNG, subclasses of Random, need updates.</div><div class='add'>+  See [PRNG update] below for more information. [[Bug #19100]]</div><div class='add'>+</div><div class='add'>+### Error printer</div><div class='add'>+</div><div class='add'>+* Ruby no longer escapes control characters and backslashes in an</div><div class='add'>+  error message. [[Feature #18367]]</div><div class='add'>+</div><div class='add'>+### Constant lookup when defining a class/module</div><div class='add'>+</div><div class='add'>+* When defining a class/module directly under the Object class by class/module</div><div class='add'>+  statement, if there is already a class/module defined by `Module#include`</div><div class='add'>+  with the same name, the statement was handled as "open class" in Ruby 3.1 or before.</div><div class='add'>+  Since Ruby 3.2, a new class is defined instead. [[Feature #18832]]</div><div class='add'>+</div><div class='add'>+## Stdlib compatibility issues</div><div class='add'>+</div><div class='add'>+* Psych no longer bundles libyaml sources.</div><div class='add'>+  And also Fiddle no longer bundles libffi sources.</div><div class='add'>+  Users need to install the libyaml/libffi library themselves via the package</div><div class='add'>+  manager like apt, yum, brew, etc.</div><div class='add'>+</div><div class='add'>+    Psych and fiddle supported the static build with specific version of libyaml</div><div class='add'>+    and libffi sources. You can build psych with libyaml-0.2.5 like this.</div><div class='add'>+</div><div class='add'>+    ```bash</div><div class='add'>+    $ ./configure --with-libyaml-source-dir=/path/to/libyaml-0.2.5</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    And you can build fiddle with libffi-3.4.4 like this.</div><div class='add'>+</div><div class='add'>+    ```bash</div><div class='add'>+    $ ./configure --with-libffi-source-dir=/path/to/libffi-3.4.4</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    [[Feature #18571]]</div><div class='add'>+</div><div class='add'>+* Check cookie name/path/domain characters in `CGI::Cookie`. [[CVE-2021-33621]]</div><div class='add'>+</div><div class='add'>+* `URI.parse` return empty string in host instead of nil. [[sec-156615]]</div><div class='add'>+</div><div class='add'>+## C API updates</div><div class='add'>+</div><div class='add'>+### Updated C APIs</div><div class='add'>+</div><div class='add'>+The following APIs are updated.</div><div class='add'>+</div><div class='add'>+* PRNG update</div><div class='add'>+</div><div class='add'>+    `rb_random_interface_t` in ruby/random.h updated and versioned.</div><div class='add'>+    Extension libraries which use this interface and built for older</div><div class='add'>+    versions need to rebuild with adding `init_int32` function.</div><div class='add'>+</div><div class='add'>+### Added C APIs</div><div class='add'>+</div><div class='add'>+* `VALUE rb_hash_new_capa(long capa)` was added to created hashes with the desired capacity.</div><div class='add'>+* `rb_internal_thread_add_event_hook` and `rb_internal_thread_add_event_hook` were added to instrument threads scheduling.</div><div class='add'>+  The following events are available:</div><div class='add'>+    * `RUBY_INTERNAL_THREAD_EVENT_STARTED`</div><div class='add'>+    * `RUBY_INTERNAL_THREAD_EVENT_READY`</div><div class='add'>+    * `RUBY_INTERNAL_THREAD_EVENT_RESUMED`</div><div class='add'>+    * `RUBY_INTERNAL_THREAD_EVENT_SUSPENDED`</div><div class='add'>+    * `RUBY_INTERNAL_THREAD_EVENT_EXITED`</div><div class='add'>+* `rb_debug_inspector_current_depth` and `rb_debug_inspector_frame_depth` are added for debuggers.</div><div class='add'>+</div><div class='add'>+### Removed C APIs</div><div class='add'>+</div><div class='add'>+The following deprecated APIs are removed.</div><div class='add'>+</div><div class='add'>+* `rb_cData` variable.</div><div class='add'>+* "taintedness" and "trustedness" functions. [[Feature #16131]]</div><div class='add'>+</div><div class='add'>+## Implementation improvements</div><div class='add'>+</div><div class='add'>+* Fixed several race conditions in Kernel#autoload. [[Bug #18782]]</div><div class='add'>+* Cache invalidation for expressions referencing constants is now</div><div class='add'>+  more fine-grained. `RubyVM.stat(:global_constant_state)` was</div><div class='add'>+  removed because it was closely tied to the previous caching scheme</div><div class='add'>+  where setting any constant invalidates all caches in the system.</div><div class='add'>+  New keys, `:constant_cache_invalidations` and `:constant_cache_misses`,</div><div class='add'>+  were introduced to help with use cases for `:global_constant_state`.</div><div class='add'>+  [[Feature #18589]]</div><div class='add'>+* The cache-based optimization for Regexp matching is introduced.</div><div class='add'>+  [[Feature #19104]]</div><div class='add'>+* [Variable Width Allocation](https://shopify.engineering/ruby-variable-width-allocation)</div><div class='add'>+  is now enabled by default. [[Feature #18239]]</div><div class='add'>+* Added a new instance variable caching mechanism, called object shapes, which</div><div class='add'>+  improves inline cache hits for most objects and allows us to generate very</div><div class='add'>+  efficient JIT code. Objects whose instance variables are defined in a</div><div class='add'>+  consistent order will see the most performance benefits.</div><div class='add'>+  [[Feature #18776]]</div><div class='add'>+* Speed up marking instruction sequences by using a bitmap to find "markable"</div><div class='add'>+  objects.  This change results in faster major collections.</div><div class='add'>+  [[Feature #18875]]</div><div class='add'>+</div><div class='add'>+## JIT</div><div class='add'>+</div><div class='add'>+### YJIT</div><div class='add'>+</div><div class='add'>+* YJIT is no longer experimental</div><div class='add'>+    * Has been tested on production workloads for over a year and proven to be quite stable.</div><div class='add'>+* YJIT now supports both x86-64 and arm64/aarch64 CPUs on Linux, MacOS, BSD and other UNIX platforms.</div><div class='add'>+    * This release brings support for Mac M1/M2, AWS Graviton and Raspberry Pi 4.</div><div class='add'>+* Building YJIT now requires Rust 1.58.0+. [[Feature #18481]]</div><div class='add'>+    * In order to ensure that CRuby is built with YJIT, please install `rustc` &gt;= 1.58.0</div><div class='add'>+      before running `./configure`</div><div class='add'>+    * Please reach out to the YJIT team should you run into any issues.</div><div class='add'>+* Physical memory for JIT code is lazily allocated. Unlike Ruby 3.1,</div><div class='add'>+  the RSS of a Ruby process is minimized because virtual memory pages</div><div class='add'>+  allocated by `--yjit-exec-mem-size` will not be mapped to physical</div><div class='add'>+  memory pages until actually utilized by JIT code.</div><div class='add'>+* Introduce Code GC that frees all code pages when the memory consumption</div><div class='add'>+  by JIT code reaches `--yjit-exec-mem-size`.</div><div class='add'>+    * `RubyVM::YJIT.runtime_stats` returns Code GC metrics in addition to</div><div class='add'>+      existing `inline_code_size` and `outlined_code_size` keys:</div><div class='add'>+      `code_gc_count`, `live_page_count`, `freed_page_count`, and `freed_code_size`.</div><div class='add'>+* Most of the statistics produced by `RubyVM::YJIT.runtime_stats` are now available in release builds.</div><div class='add'>+    * Simply run ruby with `--yjit-stats` to compute and dump stats (incurs some run-time overhead).</div><div class='add'>+* YJIT is now optimized to take advantage of object shapes. [[Feature #18776]]</div><div class='add'>+* Take advantage of finer-grained constant invalidation to invalidate less code when defining new constants. [[Feature #18589]]</div><div class='add'>+* The default `--yjit-exec-mem-size` is changed to 64 (MiB).</div><div class='add'>+* The default `--yjit-call-threshold` is changed to 30.</div><div class='add'>+</div><div class='add'>+### MJIT</div><div class='add'>+</div><div class='add'>+* The MJIT compiler is re-implemented in Ruby as `ruby_vm/mjit/compiler`.</div><div class='add'>+* MJIT compiler is executed under a forked Ruby process instead of</div><div class='add'>+  doing it in a native thread called MJIT worker. [[Feature #18968]]</div><div class='add'>+    * As a result, Microsoft Visual Studio (MSWIN) is no longer supported.</div><div class='add'>+* MinGW is no longer supported. [[Feature #18824]]</div><div class='add'>+* Rename `--mjit-min-calls` to `--mjit-call-threshold`.</div><div class='add'>+* Change default `--mjit-max-cache` back from 10000 to 100.</div><div class='add'>+</div><div class='add'>+[Feature #12005]:     https://bugs.ruby-lang.org/issues/12005</div><div class='add'>+[Feature #12084]:     https://bugs.ruby-lang.org/issues/12084</div><div class='add'>+[Feature #12655]:     https://bugs.ruby-lang.org/issues/12655</div><div class='add'>+[Feature #12737]:     https://bugs.ruby-lang.org/issues/12737</div><div class='add'>+[Feature #13110]:     https://bugs.ruby-lang.org/issues/13110</div><div class='add'>+[Feature #14332]:     https://bugs.ruby-lang.org/issues/14332</div><div class='add'>+[Feature #15231]:     https://bugs.ruby-lang.org/issues/15231</div><div class='add'>+[Feature #15357]:     https://bugs.ruby-lang.org/issues/15357</div><div class='add'>+[Bug #15928]:         https://bugs.ruby-lang.org/issues/15928</div><div class='add'>+[Feature #16122]:     https://bugs.ruby-lang.org/issues/16122</div><div class='add'>+[Feature #16131]:     https://bugs.ruby-lang.org/issues/16131</div><div class='add'>+[Bug #16466]:         https://bugs.ruby-lang.org/issues/16466</div><div class='add'>+[Feature #16663]:     https://bugs.ruby-lang.org/issues/16663</div><div class='add'>+[Feature #16806]:     https://bugs.ruby-lang.org/issues/16806</div><div class='add'>+[Bug #16889]:         https://bugs.ruby-lang.org/issues/16889</div><div class='add'>+[Bug #16908]:         https://bugs.ruby-lang.org/issues/16908</div><div class='add'>+[Feature #16989]:     https://bugs.ruby-lang.org/issues/16989</div><div class='add'>+[Feature #17351]:     https://bugs.ruby-lang.org/issues/17351</div><div class='add'>+[Feature #17391]:     https://bugs.ruby-lang.org/issues/17391</div><div class='add'>+[Bug #17545]:         https://bugs.ruby-lang.org/issues/17545</div><div class='add'>+[Bug #17767]:         https://bugs.ruby-lang.org/issues/17767</div><div class='add'>+[Feature #17837]:     https://bugs.ruby-lang.org/issues/17837</div><div class='add'>+[Feature #17881]:     https://bugs.ruby-lang.org/issues/17881</div><div class='add'>+[Feature #18033]:     https://bugs.ruby-lang.org/issues/18033</div><div class='add'>+[Feature #18159]:     https://bugs.ruby-lang.org/issues/18159</div><div class='add'>+[Feature #18239]:     https://bugs.ruby-lang.org/issues/18239#note-17</div><div class='add'>+[Feature #18351]:     https://bugs.ruby-lang.org/issues/18351</div><div class='add'>+[Feature #18367]:     https://bugs.ruby-lang.org/issues/18367</div><div class='add'>+[Bug #18435]:         https://bugs.ruby-lang.org/issues/18435</div><div class='add'>+[Feature #18462]:     https://bugs.ruby-lang.org/issues/18462</div><div class='add'>+[Feature #18481]:     https://bugs.ruby-lang.org/issues/18481</div><div class='add'>+[Bug #18487]:         https://bugs.ruby-lang.org/issues/18487</div><div class='add'>+[Feature #18564]:     https://bugs.ruby-lang.org/issues/18564</div><div class='add'>+[Feature #18571]:     https://bugs.ruby-lang.org/issues/18571</div><div class='add'>+[Feature #18585]:     https://bugs.ruby-lang.org/issues/18585</div><div class='add'>+[Feature #18589]:     https://bugs.ruby-lang.org/issues/18589</div><div class='add'>+[Feature #18595]:     https://bugs.ruby-lang.org/issues/18595</div><div class='add'>+[Feature #18598]:     https://bugs.ruby-lang.org/issues/18598</div><div class='add'>+[Bug #18625]:         https://bugs.ruby-lang.org/issues/18625</div><div class='add'>+[Feature #18630]:     https://bugs.ruby-lang.org/issues/18630</div><div class='add'>+[Bug #18633]:         https://bugs.ruby-lang.org/issues/18633</div><div class='add'>+[Feature #18639]:     https://bugs.ruby-lang.org/issues/18639</div><div class='add'>+[Feature #18685]:     https://bugs.ruby-lang.org/issues/18685</div><div class='add'>+[Bug #18729]:         https://bugs.ruby-lang.org/issues/18729</div><div class='add'>+[Bug #18751]:         https://bugs.ruby-lang.org/issues/18751</div><div class='add'>+[Feature #18774]:     https://bugs.ruby-lang.org/issues/18774</div><div class='add'>+[Feature #18776]:     https://bugs.ruby-lang.org/issues/18776</div><div class='add'>+[Bug #18782]:         https://bugs.ruby-lang.org/issues/18782</div><div class='add'>+[Feature #18788]:     https://bugs.ruby-lang.org/issues/18788</div><div class='add'>+[Feature #18798]:     https://bugs.ruby-lang.org/issues/18798</div><div class='add'>+[Feature #18809]:     https://bugs.ruby-lang.org/issues/18809</div><div class='add'>+[Feature #18821]:     https://bugs.ruby-lang.org/issues/18821</div><div class='add'>+[Feature #18822]:     https://bugs.ruby-lang.org/issues/18822</div><div class='add'>+[Feature #18824]:     https://bugs.ruby-lang.org/issues/18824</div><div class='add'>+[Feature #18832]:     https://bugs.ruby-lang.org/issues/18832</div><div class='add'>+[Feature #18875]:     https://bugs.ruby-lang.org/issues/18875</div><div class='add'>+[Feature #18925]:     https://bugs.ruby-lang.org/issues/18925</div><div class='add'>+[Feature #18944]:     https://bugs.ruby-lang.org/issues/18944</div><div class='add'>+[Feature #18949]:     https://bugs.ruby-lang.org/issues/18949</div><div class='add'>+[Feature #18968]:     https://bugs.ruby-lang.org/issues/18968</div><div class='add'>+[Feature #19008]:     https://bugs.ruby-lang.org/issues/19008</div><div class='add'>+[Feature #19013]:     https://bugs.ruby-lang.org/issues/19013</div><div class='add'>+[Feature #19026]:     https://bugs.ruby-lang.org/issues/19026</div><div class='add'>+[Feature #19036]:     https://bugs.ruby-lang.org/issues/19036</div><div class='add'>+[Feature #19060]:     https://bugs.ruby-lang.org/issues/19060</div><div class='add'>+[Feature #19070]:     https://bugs.ruby-lang.org/issues/19070</div><div class='add'>+[Feature #19071]:     https://bugs.ruby-lang.org/issues/19071</div><div class='add'>+[Feature #19078]:     https://bugs.ruby-lang.org/issues/19078</div><div class='add'>+[Bug #19087]:         https://bugs.ruby-lang.org/issues/19087</div><div class='add'>+[Bug #19100]:         https://bugs.ruby-lang.org/issues/19100</div><div class='add'>+[Feature #19104]:     https://bugs.ruby-lang.org/issues/19104</div><div class='add'>+[Feature #19135]:     https://bugs.ruby-lang.org/issues/19135</div><div class='add'>+[Feature #19138]:     https://bugs.ruby-lang.org/issues/19138</div><div class='add'>+[Feature #19194]:     https://bugs.ruby-lang.org/issues/19194</div><div class='add'>+[Molinillo]:          https://github.com/CocoaPods/Molinillo</div><div class='add'>+[PubGrub]:            https://github.com/jhawthorn/pub_grub</div><div class='add'>+[GH-net-protocol-14]: https://github.com/ruby/net-protocol/pull/14</div><div class='add'>+[GH-pathname-20]:     https://github.com/ruby/pathname/pull/20</div><div class='add'>+[GH-6791]:            https://github.com/ruby/ruby/pull/6791</div><div class='add'>+[GH-6868]:            https://github.com/ruby/ruby/pull/6868</div><div class='add'>+[GH-rubygems-4475]:   https://github.com/rubygems/rubygems/pull/4475</div><div class='add'>+[GH-rubygems-6149]:   https://github.com/rubygems/rubygems/pull/6149</div><div class='add'>+[GH-rubygems-6167]:   https://github.com/rubygems/rubygems/pull/6167</div><div class='add'>+[sec-156615]:         https://hackerone.com/reports/156615</div><div class='add'>+[CVE-2021-33621]:     https://www.ruby-lang.org/en/news/2022/11/22/http-response-splitting-in-cgi-cve-2021-33621/</div><div class='add'>+[wasm/README.md]:     https://github.com/ruby/ruby/blob/master/wasm/README.md</div><div class='add'>+[ruby.wasm]:          https://github.com/ruby/ruby.wasm</div><div class='head'>diff --git a/README.ja.md b/README.ja.md<br/>index 3ecdc9d7d3..93c0131690 100644<br/>--- a/<a href='/ruby.git/tree/README.ja.md?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>README.ja.md</a><br/>+++ b/<a href='/ruby.git/tree/README.ja.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>README.ja.md</a></div><div class='hunk'>@@ -1,6 +1,9 @@</div><div class='del'>-[![Build Status](https://travis-ci.org/ruby/ruby.svg?branch=trunk)](https://travis-ci.org/ruby/ruby)</div><div class='del'>-[![Build status](https://ci.appveyor.com/api/projects/status/0sy8rrxut4o0k960/branch/trunk?svg=true)](https://ci.appveyor.com/project/ruby/ruby/branch/trunk)</div><div class='del'>-[![wercker status](https://app.wercker.com/status/e5e7e1704f62b76525022aa424aef6ef/s/trunk "wercker status")](https://app.wercker.com/project/byKey/e5e7e1704f62b76525022aa424aef6ef)</div><div class='add'>+[![Actions Status: MinGW](https://github.com/ruby/ruby/workflows/MinGW/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MinGW")</div><div class='add'>+[![Actions Status: MJIT](https://github.com/ruby/ruby/workflows/MJIT/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MJIT")</div><div class='add'>+[![Actions Status: Ubuntu](https://github.com/ruby/ruby/workflows/Ubuntu/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Ubuntu")</div><div class='add'>+[![Actions Status: Windows](https://github.com/ruby/ruby/workflows/Windows/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Windows")</div><div class='add'>+[![AppVeyor status](https://ci.appveyor.com/api/projects/status/0sy8rrxut4o0k960/branch/master?svg=true)](https://ci.appveyor.com/project/ruby/ruby/branch/master)</div><div class='add'>+[![Travis Status](https://app.travis-ci.com/ruby/ruby.svg?branch=master)](https://app.travis-ci.com/ruby/ruby)</div><div class='ctx'> </div><div class='ctx'> # Rubyã¨ã¯</div><div class='ctx'> </div><div class='hunk'>@@ -14,7 +17,7 @@ Rubyã¯ãƒ†ã‚­ã‚¹ãƒˆå‡¦ç†é–¢ä¿‚ã®èƒ½åŠ›ãªã©ã«å„ªã‚Œï¼ŒPerlã¨åŒã˜ãã‚‰ã„</div><div class='ctx'> </div><div class='ctx'> *   ã‚·ãƒ³ãƒ—ãƒ«ãªæ–‡æ³•</div><div class='ctx'> *   æ™®é€šã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘æ©Ÿèƒ½(ã‚¯ãƒ©ã‚¹ï¼Œãƒ¡ã‚½ãƒƒãƒ‰ã‚³ãƒ¼ãƒ«ãªã©)</div><div class='del'>-*   ç‰¹æ®Šãªã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘æ©Ÿèƒ½(Mixin, ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ãªã©)</div><div class='add'>+*   ç‰¹æ®Šãªã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆæŒ‡å‘æ©Ÿèƒ½(Mixinï¼Œç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ãªã©)</div><div class='ctx'> *   æ¼”ç®—å­ã‚ªãƒ¼ãƒãƒ¼ãƒ­ãƒ¼ãƒ‰</div><div class='ctx'> *   ä¾‹å¤–å‡¦ç†æ©Ÿèƒ½</div><div class='ctx'> *   ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã‚¯ãƒ­ãƒ¼ã‚¸ãƒ£</div><div class='hunk'>@@ -22,7 +25,7 @@ Rubyã¯ãƒ†ã‚­ã‚¹ãƒˆå‡¦ç†é–¢ä¿‚ã®èƒ½åŠ›ãªã©ã«å„ªã‚Œï¼ŒPerlã¨åŒã˜ãã‚‰ã„</div><div class='ctx'> *   ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒ­ãƒ¼ãƒ‡ã‚£ãƒ³ã‚° (ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã«ã‚ˆã‚‹)</div><div class='ctx'> *   ç§»æ¤æ€§ãŒé«˜ã„ï¼Žå¤šãã®Unix-like/POSIXäº’æ›ãƒ—ãƒ©ãƒƒãƒˆãƒ•ã‚©ãƒ¼ãƒ ä¸Šã§å‹•ãã ã‘ã§ãªãï¼ŒWindowsï¼Œ macOSï¼Œ</div><div class='ctx'>     Haikuãªã©ã®ä¸Šã§ã‚‚å‹•ã cf.</div><div class='del'>-    https://github.com/ruby/ruby/blob/trunk/doc/contributing.rdoc#platform-maintainers</div><div class='add'>+    https://github.com/ruby/ruby/blob/master/doc/contributing.rdoc#platform-maintainers</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> ## å…¥æ‰‹æ³•</div><div class='hunk'>@@ -33,21 +36,29 @@ https://www.ruby-lang.org/ja/downloads/</div><div class='ctx'> </div><div class='ctx'> ã‚’å‚ç…§ã—ã¦ãã ã•ã„ï¼Ž</div><div class='ctx'> </div><div class='del'>-### Subversionã§</div><div class='add'>+### Git</div><div class='ctx'> </div><div class='del'>-é–‹ç™ºå…ˆç«¯ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§å–å¾—ã§ãã¾ã™ï¼Ž</div><div class='add'>+ãƒŸãƒ©ãƒ¼ã‚’GitHubã«å…¬é–‹ã—ã¦ã„ã¾ã™ï¼Ž ä»¥ä¸‹ã®ã‚³ãƒžãƒ³ãƒ‰ã§ãƒªãƒã‚¸ãƒˆãƒªã‚’å–å¾—ã§ãã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-    $ svn co https://svn.ruby-lang.org/repos/ruby/trunk/ ruby</div><div class='add'>+    $ git clone https://github.com/ruby/ruby.git</div><div class='ctx'> </div><div class='del'>-ä»–ã«é–‹ç™ºä¸­ã®ãƒ–ãƒ©ãƒ³ãƒã®ä¸€è¦§ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§è¦‹ã‚‰ã‚Œã¾ã™ï¼Ž</div><div class='add'>+ä»–ã®ãƒ–ãƒ©ãƒ³ãƒã®ä¸€è¦§ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§è¦‹ã‚‰ã‚Œã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-    $ svn ls https://svn.ruby-lang.org/repos/ruby/branches/</div><div class='add'>+    $ git ls-remote https://github.com/ruby/ruby.git</div><div class='ctx'> </div><div class='del'>-### Gitã§</div><div class='add'>+Rubyãƒªãƒã‚¸ãƒˆãƒªã®æœ¬æ¥ã®masterã¯ https://git.ruby-lang.org/ruby.git ã«ã‚ã‚Šã¾ã™ï¼Ž</div><div class='add'>+ã‚³ãƒŸãƒƒã‚¿ã¯ã“ã¡ã‚‰ã‚’ä½¿ã„ã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-Subversionã®ãƒŸãƒ©ãƒ¼ã‚’GitHubã«å…¬é–‹ã—ã¦ã„ã¾ã™ï¼Ž ä»¥ä¸‹ã®ã‚³ãƒžãƒ³ãƒ‰ã§ãƒªãƒã‚¸ãƒˆãƒªã‚’å–å¾—ã§ãã¾ã™ï¼Ž</div><div class='add'>+### Subversion</div><div class='add'>+</div><div class='add'>+å¤ã„Rubyã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã‚‚å–å¾—ã§ãã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+    $ svn co https://svn.ruby-lang.org/repos/ruby/branches/ruby_2_6/ ruby</div><div class='add'>+</div><div class='add'>+ä»–ã®ãƒ–ãƒ©ãƒ³ãƒã®ä¸€è¦§ã¯æ¬¡ã®ã‚³ãƒžãƒ³ãƒ‰ã§è¦‹ã‚‰ã‚Œã¾ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+    $ svn ls https://svn.ruby-lang.org/repos/ruby/branches/</div><div class='ctx'> </div><div class='del'>-    $ git clone https://github.com/ruby/ruby.git</div><div class='ctx'> </div><div class='ctx'> ## ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸</div><div class='ctx'> </div><div class='hunk'>@@ -59,38 +70,33 @@ https://www.ruby-lang.org/</div><div class='ctx'> </div><div class='ctx'> ## ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆ</div><div class='ctx'> </div><div class='del'>-Rubyã®ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆãŒã‚ã‚Šã¾ã™ï¼Žå‚åŠ å¸Œæœ›ã®æ–¹ã¯</div><div class='del'>-</div><div class='del'>-mailto:ruby-list-request@ruby-lang.org</div><div class='del'>-</div><div class='del'>-ã¾ã§æœ¬æ–‡ã«</div><div class='add'>+Rubyã®ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆãŒã‚ã‚Šã¾ã™ï¼Žå‚åŠ å¸Œæœ›ã®æ–¹ã¯ [ruby-list-request@ruby-lang.org] ã¾ã§æœ¬æ–‡ã«</div><div class='ctx'> </div><div class='ctx'>     subscribe</div><div class='ctx'> </div><div class='ctx'> ã¨æ›¸ã„ã¦é€ã£ã¦ä¸‹ã•ã„ï¼Ž</div><div class='ctx'> </div><div class='del'>-Rubyé–‹ç™ºè€…å‘ã‘ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã‚‚ã‚ã‚Šã¾ã™ï¼Žã“ã¡ã‚‰ã§ã¯rubyã®ãƒã‚°ï¼Œå°†æ¥ã®ä»•æ§˜æ‹¡å¼µãªã©å®Ÿè£…ä¸Šã®å•é¡Œã«ã¤ã„ã¦è­°è«–ã•ã‚Œã¦ã„ã¾ã™ï¼Ž å‚åŠ å¸Œæœ›ã®æ–¹ã¯</div><div class='del'>-</div><div class='del'>-mailto:ruby-dev-request@ruby-lang.org</div><div class='del'>-</div><div class='del'>-ã¾ã§ruby-listã¨åŒæ§˜ã®æ–¹æ³•ã§ãƒ¡ãƒ¼ãƒ«ã—ã¦ãã ã•ã„ï¼Ž</div><div class='add'>+Rubyé–‹ç™ºè€…å‘ã‘ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã‚‚ã‚ã‚Šã¾ã™ï¼Žã“ã¡ã‚‰ã§ã¯rubyã®ãƒã‚°ï¼Œå°†æ¥ã®ä»•æ§˜æ‹¡å¼µãªã©å®Ÿè£…ä¸Šã®å•é¡Œã«ã¤ã„ã¦è­°è«–ã•ã‚Œã¦ã„ã¾ã™ï¼Ž</div><div class='add'>+å‚åŠ å¸Œæœ›ã®æ–¹ã¯ [ruby-dev-request@ruby-lang.org] ã¾ã§ruby-listã¨åŒæ§˜ã®æ–¹æ³•ã§ãƒ¡ãƒ¼ãƒ«ã—ã¦ãã ã•ã„ï¼Ž</div><div class='ctx'> </div><div class='ctx'> Rubyæ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã¤ã„ã¦è©±ã—åˆã†ruby-extãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã¨æ•°å­¦é–¢ä¿‚ã®è©±é¡Œã«ã¤ã„ã¦è©±ã—åˆã†ruby-mathãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã¨</div><div class='ctx'> è‹±èªžã§rubyã«ã¤ã„ã¦è©±ã—åˆã†ruby-talkãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã‚‚ã‚ã‚Šã¾ã™ï¼Žå‚åŠ æ–¹æ³•ã¯ã©ã‚Œã‚‚åŒã˜ã§ã™ï¼Ž</div><div class='ctx'> </div><div class='add'>+[ruby-list-request@ruby-lang.org]: mailto:ruby-list-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&amp;body=subscribe</div><div class='add'>+[ruby-dev-request@ruby-lang.org]: mailto:ruby-dev-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&amp;body=subscribe</div><div class='add'>+</div><div class='ctx'> ## ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ãƒ»ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«</div><div class='ctx'> </div><div class='ctx'> ä»¥ä¸‹ã®æ‰‹é †ã§è¡Œã£ã¦ãã ã•ã„ï¼Ž</div><div class='ctx'> </div><div class='del'>-1.  ã‚‚ã— `configure` ãƒ•ã‚¡ã‚¤ãƒ«ãŒè¦‹ã¤ã‹ã‚‰ãªã„ï¼Œã‚‚ã—ãã¯ `configure.ac` ã‚ˆã‚Šå¤ã„ã‚ˆã†ãªã‚‰ï¼Œ `autoconf` ã‚’å®Ÿè¡Œã—ã¦</div><div class='del'>-    æ–°ã—ã `configure` ã‚’ç”Ÿæˆã™ã‚‹</div><div class='add'>+1.  (Gitãƒªãƒã‚¸ãƒˆãƒªã‹ã‚‰å–å¾—ã—ãŸã‚½ãƒ¼ã‚¹ã‚’ãƒ“ãƒ«ãƒ‰ã™ã‚‹å ´åˆ) `./autogen.sh` ã‚’å®Ÿè¡Œã—ã¦æ–°ã—ã `configure` ã‚’ç”Ÿæˆã™ã‚‹</div><div class='ctx'> </div><div class='ctx'> 2.  `configure` ã‚’å®Ÿè¡Œã—ã¦ `Makefile` ãªã©ã‚’ç”Ÿæˆã™ã‚‹</div><div class='ctx'> </div><div class='ctx'>     ç’°å¢ƒã«ã‚ˆã£ã¦ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®Cã‚³ãƒ³ãƒ‘ã‚¤ãƒ©ç”¨ã‚ªãƒ—ã‚·ãƒ§ãƒ³ãŒä»˜ãã¾ã™ï¼Ž `configure` ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã§ `optflags=..`</div><div class='ctx'>     `warnflags=..` ç­‰ã§ä¸Šæ›¸ãã§ãã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-3.  (å¿…è¦ãªã‚‰ã°)`defines.h` ã‚’ç·¨é›†ã™ã‚‹</div><div class='add'>+3.  (å¿…è¦ãªã‚‰ã°)`include/ruby/defines.h` ã‚’ç·¨é›†ã™ã‚‹</div><div class='ctx'> </div><div class='ctx'>     å¤šåˆ†ï¼Œå¿…è¦ç„¡ã„ã¨æ€ã„ã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='hunk'>@@ -99,7 +105,8 @@ Rubyæ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã¤ã„ã¦è©±ã—åˆã†ruby-extãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒ</div><div class='ctx'>     `ext/Setup` ã«è¨˜è¿°ã—ãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯é™çš„ã«ãƒªãƒ³ã‚¯ã•ã‚Œã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='ctx'>     ãƒ€ã‚¤ãƒŠãƒŸãƒƒã‚¯ãƒ­ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ãªã„ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§ã¯ `Setup` ã®1è¡Œç›®ã®ã€Œ`option nodynamic`ã€ã¨ã„ã†è¡Œã®ã‚³</div><div class='del'>-    ãƒ¡ãƒ³ãƒˆã‚’å¤–ã™å¿…è¦ãŒã‚ã‚Šã¾ã™ï¼Žã¾ãŸï¼Œã“ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§æ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’åˆ©ç”¨ã™ã‚‹ãŸã‚ã«ã¯ï¼Œã‚ã‚‰ã‹ã˜ã‚é™çš„ã«ãƒªãƒ³ã‚¯ã‚’ã—ã¦ãŠãå¿…è¦ãŒã‚ã‚Šã¾ã™ï¼Ž</div><div class='add'>+    ãƒ¡ãƒ³ãƒˆã‚’å¤–ã™å¿…è¦ãŒã‚ã‚Šã¾ã™ï¼Ž</div><div class='add'>+    ã¾ãŸï¼Œã“ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§æ‹¡å¼µãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’åˆ©ç”¨ã™ã‚‹ãŸã‚ã«ã¯ï¼Œã‚ã‚‰ã‹ã˜ã‚é™çš„ã«ãƒªãƒ³ã‚¯ã‚’ã—ã¦ãŠãå¿…è¦ãŒã‚ã‚Šã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='ctx'> 5.  `make` ã‚’å®Ÿè¡Œã—ã¦ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã™ã‚‹</div><div class='ctx'> </div><div class='hunk'>@@ -159,17 +166,17 @@ UNIXã§ã‚ã‚Œã° `configure` ãŒã»ã¨ã‚“ã©ã®å·®ç•°ã‚’å¸åŽã—ã¦ãã‚Œã‚‹ã¯</div><div class='ctx'> </div><div class='ctx'> ## ãƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯</div><div class='ctx'> </div><div class='del'>-Rubyã«é–¢ã™ã‚‹è³ªå•ã¯ Ruby-Talkï¼ˆè‹±èªžï¼‰ã‚„ Ruby-Listï¼ˆæ—¥æœ¬èªžï¼‰ (https://www.ruby-lang.org/ja/community/mailing-lists) ã‚„ï¼Œ</div><div class='del'>-stackoverflow (https://ja.stackoverflow.com/) ãªã©ã®Webã‚µã‚¤ãƒˆã«æŠ•ç¨¿ã—ã¦ãã ã•ã„ï¼Ž</div><div class='add'>+Rubyã«é–¢ã™ã‚‹è³ªå•ã¯ [Ruby-Talk]ï¼ˆè‹±èªžï¼‰ã‚„ [Ruby-List]ï¼ˆæ—¥æœ¬èªžï¼‰ã‚„ï¼Œ</div><div class='add'>+[stackoverflow] ãªã©ã®Webã‚µã‚¤ãƒˆã«æŠ•ç¨¿ã—ã¦ãã ã•ã„ï¼Ž</div><div class='ctx'> </div><div class='ctx'> ãƒã‚°å ±å‘Šã¯ https://bugs.ruby-lang.org ã§å—ã‘ä»˜ã‘ã¦ã„ã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='add'>+[Ruby-Talk]: https://www.ruby-lang.org/en/community/mailing-lists</div><div class='add'>+[Ruby-List]: https://www.ruby-lang.org/ja/community/mailing-lists</div><div class='add'>+[stackoverflow]: https://ja.stackoverflow.com/</div><div class='ctx'> </div><div class='ctx'> ## è‘—è€…</div><div class='ctx'> </div><div class='ctx'> Rubyã®ã‚ªãƒªã‚¸ãƒŠãƒ«ç‰ˆã¯ï¼Œ1995å¹´ã«ã¾ã¤ã‚‚ã¨ã‚†ãã²ã‚æ°ã«ã‚ˆã£ã¦è¨­è¨ˆãƒ»é–‹ç™ºã•ã‚Œã¾ã—ãŸï¼Ž</div><div class='ctx'> </div><div class='ctx'> &lt;mailto:matz@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>----</div><div class='del'>-created at: Thu Aug  3 11:57:36 JST 1995</div><div class='head'>diff --git a/README.md b/README.md<br/>index 1e76fda4f0..c445448c71 100644<br/>--- a/<a href='/ruby.git/tree/README.md?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>README.md</a><br/>+++ b/<a href='/ruby.git/tree/README.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>README.md</a></div><div class='hunk'>@@ -1,172 +1,91 @@</div><div class='del'>-[![Build Status](https://travis-ci.org/ruby/ruby.svg?branch=trunk)](https://travis-ci.org/ruby/ruby)</div><div class='del'>-[![Build status](https://ci.appveyor.com/api/projects/status/0sy8rrxut4o0k960/branch/trunk?svg=true)](https://ci.appveyor.com/project/ruby/ruby/branch/trunk)</div><div class='del'>-[![wercker status](https://app.wercker.com/status/e5e7e1704f62b76525022aa424aef6ef/s/trunk "wercker status")](https://app.wercker.com/project/byKey/e5e7e1704f62b76525022aa424aef6ef)</div><div class='add'>+[![Actions Status: MinGW](https://github.com/ruby/ruby/workflows/MinGW/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MinGW")</div><div class='add'>+[![Actions Status: MJIT](https://github.com/ruby/ruby/workflows/MJIT/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MJIT")</div><div class='add'>+[![Actions Status: Ubuntu](https://github.com/ruby/ruby/workflows/Ubuntu/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Ubuntu")</div><div class='add'>+[![Actions Status: Windows](https://github.com/ruby/ruby/workflows/Windows/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Windows")</div><div class='add'>+[![AppVeyor status](https://ci.appveyor.com/api/projects/status/0sy8rrxut4o0k960/branch/master?svg=true)](https://ci.appveyor.com/project/ruby/ruby/branch/master)</div><div class='add'>+[![Travis Status](https://app.travis-ci.com/ruby/ruby.svg?branch=master)](https://app.travis-ci.com/ruby/ruby)</div><div class='ctx'> </div><div class='del'>-# What's Ruby</div><div class='add'>+# What is Ruby?</div><div class='ctx'> </div><div class='del'>-Ruby is the interpreted scripting language for quick and easy object-oriented</div><div class='del'>-programming. It has many features to process text files and to do system</div><div class='del'>-management tasks (as in Perl). It is simple, straight-forward, and</div><div class='del'>-extensible.</div><div class='add'>+Ruby is an interpreted object-oriented programming language often</div><div class='add'>+used for web development. It also offers many scripting features</div><div class='add'>+to process plain text and serialized files, or manage system tasks.</div><div class='add'>+It is simple, straightforward, and extensible.</div><div class='ctx'> </div><div class='ctx'> ## Features of Ruby</div><div class='ctx'> </div><div class='del'>-*   Simple Syntax</div><div class='del'>-*   **Normal** Object-oriented Features (e.g. class, method calls)</div><div class='del'>-*   **Advanced** Object-oriented Features (e.g. mix-in, singleton-method)</div><div class='del'>-*   Operator Overloading</div><div class='del'>-*   Exception Handling</div><div class='del'>-*   Iterators and Closures</div><div class='del'>-*   Garbage Collection</div><div class='del'>-*   Dynamic Loading of Object Files (on some architectures)</div><div class='del'>-*   Highly Portable (works on many Unix-like/POSIX compatible platforms as</div><div class='del'>-    well as Windows, macOS, Haiku, etc.) cf.</div><div class='del'>-    https://github.com/ruby/ruby/blob/trunk/doc/contributing.rdoc#platform-maintainers</div><div class='add'>+* Simple Syntax</div><div class='add'>+* **Normal** Object-oriented Features (e.g. class, method calls)</div><div class='add'>+* **Advanced** Object-oriented Features (e.g. mix-in, singleton-method)</div><div class='add'>+* Operator Overloading</div><div class='add'>+* Exception Handling</div><div class='add'>+* Iterators and Closures</div><div class='add'>+* Garbage Collection</div><div class='add'>+* Dynamic Loading of Object Files (on some architectures)</div><div class='add'>+* Highly Portable (works on many Unix-like/POSIX compatible platforms as</div><div class='add'>+  well as Windows, macOS, etc.) cf.</div><div class='add'>+  https://github.com/ruby/ruby/blob/master/doc/maintainers.rdoc#label-Platform+Maintainers</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-## How to get Ruby</div><div class='add'>+## How to get Ruby with Git</div><div class='ctx'> </div><div class='ctx'> For a complete list of ways to install Ruby, including using third-party tools</div><div class='ctx'> like rvm, see:</div><div class='ctx'> </div><div class='ctx'> https://www.ruby-lang.org/en/downloads/</div><div class='ctx'> </div><div class='del'>-The trunk of the Ruby source tree can be checked out with the following</div><div class='del'>-command:</div><div class='del'>-</div><div class='del'>-    $ svn co https://svn.ruby-lang.org/repos/ruby/trunk/ ruby</div><div class='del'>-</div><div class='del'>-Or if you are using git then use the following command:</div><div class='add'>+The mirror of the Ruby source tree can be checked out with the following command:</div><div class='ctx'> </div><div class='ctx'>     $ git clone https://github.com/ruby/ruby.git</div><div class='ctx'> </div><div class='ctx'> There are some other branches under development. Try the following command</div><div class='ctx'> to see the list of branches:</div><div class='ctx'> </div><div class='del'>-    $ svn ls https://svn.ruby-lang.org/repos/ruby/branches/</div><div class='add'>+    $ git ls-remote https://github.com/ruby/ruby.git</div><div class='ctx'> </div><div class='del'>-Or if you are using git then use the following command:</div><div class='add'>+You may also want to use https://git.ruby-lang.org/ruby.git (actual master of Ruby source)</div><div class='add'>+if you are a committer.</div><div class='ctx'> </div><div class='del'>-    $ git ls-remote https://github.com/ruby/ruby.git</div><div class='add'>+## How to build</div><div class='ctx'> </div><div class='del'>-## Ruby home page</div><div class='add'>+see [Building Ruby](doc/contributing/building_ruby.md)</div><div class='ctx'> </div><div class='del'>-The URL of the Ruby home page is:</div><div class='add'>+## Ruby home page</div><div class='ctx'> </div><div class='ctx'> https://www.ruby-lang.org/</div><div class='ctx'> </div><div class='add'>+## Documentation</div><div class='add'>+</div><div class='add'>+- [English](https://docs.ruby-lang.org/en/master/index.html)</div><div class='add'>+- [Japanese](https://docs.ruby-lang.org/ja/master/index.html)</div><div class='add'>+</div><div class='ctx'> ## Mailing list</div><div class='ctx'> </div><div class='del'>-There is a mailing list to talk about Ruby. To subscribe to this list, please</div><div class='add'>+There is a mailing list to discuss Ruby. To subscribe to this list, please</div><div class='ctx'> send the following phrase:</div><div class='ctx'> </div><div class='ctx'>     subscribe</div><div class='ctx'> </div><div class='del'>-in the mail body (not subject) to the address</div><div class='del'>-&lt;ruby-talk-request@ruby-lang.org&gt;.</div><div class='del'>-</div><div class='del'>-## How to compile and install</div><div class='del'>-</div><div class='del'>-This is what you need to do to compile and install Ruby:</div><div class='del'>-</div><div class='del'>-1.  If you want to use Microsoft Visual C++ to compile Ruby, read</div><div class='del'>-    [win32/README.win32](win32/README.win32) instead of this document.</div><div class='del'>-</div><div class='del'>-2.  If `./configure` does not exist or is older than `configure.ac`, run</div><div class='del'>-    `autoconf` to (re)generate configure.</div><div class='del'>-</div><div class='del'>-3.  Run `./configure`, which will generate `config.h` and `Makefile`.</div><div class='del'>-</div><div class='del'>-    Some C compiler flags may be added by default depending on your</div><div class='del'>-    environment. Specify `optflags=..` and `warnflags=..` as necessary to</div><div class='del'>-    override them.</div><div class='del'>-</div><div class='del'>-4.  Edit `defines.h` if you need. Usually this step will not be needed.</div><div class='del'>-</div><div class='del'>-5.  Remove comment mark(`#`) before the module names from `ext/Setup` (or add</div><div class='del'>-    module names if not present), if you want to link modules statically.</div><div class='del'>-</div><div class='del'>-    If you don't want to compile non static extension modules (probably on</div><div class='del'>-    architectures which do not allow dynamic loading), remove comment mark</div><div class='del'>-    from the line "`#option nodynamic`" in `ext/Setup`.</div><div class='add'>+in the mail body (not subject) to the address [ruby-talk-request@ruby-lang.org].</div><div class='ctx'> </div><div class='del'>-    Usually this step will not be needed.</div><div class='del'>-</div><div class='del'>-6.  Run `make`.</div><div class='del'>-</div><div class='del'>-    * On Mac, set RUBY\_CODESIGN environment variable with a signing identity.</div><div class='del'>-      It uses the identity to sign `ruby` binary. See also codesign(1).</div><div class='del'>-</div><div class='del'>-7.  Optionally, run '`make check`' to check whether the compiled Ruby</div><div class='del'>-    interpreter works well. If you see the message "`check succeeded`", your</div><div class='del'>-    Ruby works as it should (hopefully).</div><div class='del'>-</div><div class='del'>-8.  Optionally, run `make update-gems` and `make extract-gems`.</div><div class='del'>-</div><div class='del'>-    If you want to install bundled gems, run `make update-gems` and</div><div class='del'>-    `make extract-gems` before running `make install`.</div><div class='del'>-</div><div class='del'>-9.  Run '`make install`'.</div><div class='del'>-</div><div class='del'>-    This command will create the following directories and install files into</div><div class='del'>-    them.</div><div class='del'>-</div><div class='del'>-    *   `${DESTDIR}${prefix}/bin`</div><div class='del'>-    *   `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}`</div><div class='del'>-    *   `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='del'>-    *   `${DESTDIR}${prefix}/lib`</div><div class='del'>-    *   `${DESTDIR}${prefix}/lib/ruby`</div><div class='del'>-    *   `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}`</div><div class='del'>-    *   `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='del'>-    *   `${DESTDIR}${prefix}/lib/ruby/site_ruby`</div><div class='del'>-    *   `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}`</div><div class='del'>-    *   `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='del'>-    *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby`</div><div class='del'>-    *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}`</div><div class='del'>-    *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`</div><div class='del'>-    *   `${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}`</div><div class='del'>-    *   `${DESTDIR}${prefix}/share/man/man1`</div><div class='del'>-    *   `${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system`</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-    If Ruby's API version is '*x.y.z*', the `${MAJOR}` is '*x*', the</div><div class='del'>-    `${MINOR}` is '*y*', and the `${TEENY}` is '*z*'.</div><div class='del'>-</div><div class='del'>-    **NOTE**: teeny of the API version may be different from one of Ruby's</div><div class='del'>-    program version</div><div class='del'>-</div><div class='del'>-    You may have to be a super user to install Ruby.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-If you fail to compile Ruby, please send the detailed error report with the</div><div class='del'>-error log and machine/OS type, to help others.</div><div class='del'>-</div><div class='del'>-Some extension libraries may not get compiled because of lack of necessary</div><div class='del'>-external libraries and/or headers, then you will need to run '`make distclean-ext`'</div><div class='del'>-to remove old configuration after installing them in such case.</div><div class='add'>+[ruby-talk-request@ruby-lang.org]: mailto:ruby-talk-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&amp;body=subscribe</div><div class='ctx'> </div><div class='ctx'> ## Copying</div><div class='ctx'> </div><div class='del'>-See the file [COPYING](COPYING).</div><div class='add'>+See the file [COPYING](rdoc-ref:COPYING).</div><div class='ctx'> </div><div class='ctx'> ## Feedback</div><div class='ctx'> </div><div class='del'>-Questions about the Ruby language can be asked on the Ruby-Talk mailing list</div><div class='del'>-(https://www.ruby-lang.org/en/community/mailing-lists) or on websites like</div><div class='del'>-(https://stackoverflow.com).</div><div class='add'>+Questions about the Ruby language can be asked on the [Ruby-Talk](https://www.ruby-lang.org/en/community/mailing-lists) mailing list</div><div class='add'>+or on websites like https://stackoverflow.com.</div><div class='ctx'> </div><div class='del'>-Bug reports should be filed at https://bugs.ruby-lang.org. Read [HowToReport] for more information.</div><div class='del'>-</div><div class='del'>-[HowToReport]: https://bugs.ruby-lang.org/projects/ruby/wiki/HowToReport</div><div class='add'>+Bugs should be reported at https://bugs.ruby-lang.org. Read ["Reporting Issues"](https://docs.ruby-lang.org/en/master/contributing/reporting_issues_md.html) for more information.</div><div class='ctx'> </div><div class='ctx'> ## Contributing</div><div class='ctx'> </div><div class='del'>-See the file [CONTRIBUTING.md](CONTRIBUTING.md)</div><div class='del'>-</div><div class='add'>+See ["Contributing to Ruby"](https://docs.ruby-lang.org/en/master/contributing_md.html), which includes setup and build instructions.</div><div class='ctx'> </div><div class='ctx'> ## The Author</div><div class='ctx'> </div><div class='del'>-Ruby was originally designed and developed by Yukihiro Matsumoto (Matz) in</div><div class='del'>-1995.</div><div class='add'>+Ruby was originally designed and developed by Yukihiro Matsumoto (Matz) in 1995.</div><div class='ctx'> </div><div class='ctx'> &lt;matz@ruby-lang.org&gt;</div><div class='head'>diff --git a/aclocal.m4 b/aclocal.m4<br/>index b0fe3eb959..e69de29bb2 100644<br/>--- a/<a href='/ruby.git/tree/aclocal.m4?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>aclocal.m4</a><br/>+++ b/<a href='/ruby.git/tree/aclocal.m4?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>aclocal.m4</a></div><div class='hunk'>@@ -1,46 +0,0 @@</div><div class='del'>-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-</div><div class='del'>-</div><div class='del'>-# Copyright (C) 1996-2018 Free Software Foundation, Inc.</div><div class='del'>-</div><div class='del'>-# This file is free software; the Free Software Foundation</div><div class='del'>-# gives unlimited permission to copy and/or distribute it,</div><div class='del'>-# with or without modifications, as long as this notice is preserved.</div><div class='del'>-</div><div class='del'>-# This program is distributed in the hope that it will be useful,</div><div class='del'>-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without</div><div class='del'>-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A</div><div class='del'>-# PARTICULAR PURPOSE.</div><div class='del'>-</div><div class='del'>-m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])</div><div class='del'>-m4_include([tool/m4/_colorize_result_prepare.m4])</div><div class='del'>-m4_include([tool/m4/ac_msg_result.m4])</div><div class='del'>-m4_include([tool/m4/colorize_result.m4])</div><div class='del'>-m4_include([tool/m4/ruby_append_option.m4])</div><div class='del'>-m4_include([tool/m4/ruby_append_options.m4])</div><div class='del'>-m4_include([tool/m4/ruby_check_builtin_func.m4])</div><div class='del'>-m4_include([tool/m4/ruby_check_builtin_setjmp.m4])</div><div class='del'>-m4_include([tool/m4/ruby_check_printf_prefix.m4])</div><div class='del'>-m4_include([tool/m4/ruby_check_setjmp.m4])</div><div class='del'>-m4_include([tool/m4/ruby_check_signedness.m4])</div><div class='del'>-m4_include([tool/m4/ruby_check_sizeof.m4])</div><div class='del'>-m4_include([tool/m4/ruby_check_sysconf.m4])</div><div class='del'>-m4_include([tool/m4/ruby_cppoutfile.m4])</div><div class='del'>-m4_include([tool/m4/ruby_decl_attribute.m4])</div><div class='del'>-m4_include([tool/m4/ruby_default_arch.m4])</div><div class='del'>-m4_include([tool/m4/ruby_define_if.m4])</div><div class='del'>-m4_include([tool/m4/ruby_defint.m4])</div><div class='del'>-m4_include([tool/m4/ruby_dtrace_available.m4])</div><div class='del'>-m4_include([tool/m4/ruby_dtrace_postprocess.m4])</div><div class='del'>-m4_include([tool/m4/ruby_func_attribute.m4])</div><div class='del'>-m4_include([tool/m4/ruby_mingw32.m4])</div><div class='del'>-m4_include([tool/m4/ruby_prepend_option.m4])</div><div class='del'>-m4_include([tool/m4/ruby_prog_gnu_ld.m4])</div><div class='del'>-m4_include([tool/m4/ruby_replace_type.m4])</div><div class='del'>-m4_include([tool/m4/ruby_rm_recursive.m4])</div><div class='del'>-m4_include([tool/m4/ruby_setjmp_type.m4])</div><div class='del'>-m4_include([tool/m4/ruby_stack_grow_direction.m4])</div><div class='del'>-m4_include([tool/m4/ruby_try_cflags.m4])</div><div class='del'>-m4_include([tool/m4/ruby_try_ldflags.m4])</div><div class='del'>-m4_include([tool/m4/ruby_type_attribute.m4])</div><div class='del'>-m4_include([tool/m4/ruby_universal_arch.m4])</div><div class='del'>-m4_include([tool/m4/ruby_werror_flag.m4])</div><div class='head'>diff --git a/addr2line.c b/addr2line.c<br/>index a11d32b73d..e5f25293e2 100644<br/>--- a/<a href='/ruby.git/tree/addr2line.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>addr2line.c</a><br/>+++ b/<a href='/ruby.git/tree/addr2line.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>addr2line.c</a></div><div class='hunk'>@@ -9,13 +9,11 @@</div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='ctx'> #if defined(__clang__)</div><div class='del'>-#pragma clang diagnostic ignored "-Wpedantic"</div><div class='add'>+#pragma clang diagnostic ignored "-Wgnu-empty-initializer"</div><div class='ctx'> #pragma clang diagnostic ignored "-Wgcc-compat"</div><div class='del'>-#elif defined(__GNUC__)</div><div class='del'>-#pragma GCC diagnostic ignored "-Wpedantic"</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#include "ruby/config.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> #include "ruby/defines.h"</div><div class='ctx'> #include "ruby/missing.h"</div><div class='ctx'> #include "addr2line.h"</div><div class='hunk'>@@ -23,12 +21,12 @@</div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='ctx'> #include &lt;errno.h&gt;</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_STDBOOL_H</div><div class='del'>-#include &lt;stdbool.h&gt;</div><div class='del'>-#else</div><div class='del'>-#include "missing/stdbool.h"</div><div class='add'>+#ifdef HAVE_LIBPROC_H</div><div class='add'>+#include &lt;libproc.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+</div><div class='ctx'> #if defined(USE_ELF) || defined(HAVE_MACH_O_LOADER_H)</div><div class='ctx'> </div><div class='ctx'> #include &lt;fcntl.h&gt;</div><div class='hunk'>@@ -66,8 +64,8 @@ void *alloca();</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_MACH_O_LOADER_H</div><div class='add'>+# include &lt;crt_externs.h&gt;</div><div class='ctx'> # include &lt;mach-o/fat.h&gt;</div><div class='del'>-# include &lt;mach-o/ldsyms.h&gt;</div><div class='ctx'> # include &lt;mach-o/loader.h&gt;</div><div class='ctx'> # include &lt;mach-o/nlist.h&gt;</div><div class='ctx'> # include &lt;mach-o/stab.h&gt;</div><div class='hunk'>@@ -161,11 +159,15 @@ typedef struct obj_info {</div><div class='ctx'>     struct dwarf_section debug_info;</div><div class='ctx'>     struct dwarf_section debug_line;</div><div class='ctx'>     struct dwarf_section debug_ranges;</div><div class='add'>+    struct dwarf_section debug_str_offsets;</div><div class='add'>+    struct dwarf_section debug_addr;</div><div class='add'>+    struct dwarf_section debug_rnglists;</div><div class='ctx'>     struct dwarf_section debug_str;</div><div class='add'>+    struct dwarf_section debug_line_str;</div><div class='ctx'>     struct obj_info *next;</div><div class='ctx'> } obj_info_t;</div><div class='ctx'> </div><div class='del'>-#define DWARF_SECTION_COUNT 5</div><div class='add'>+#define DWARF_SECTION_COUNT 9</div><div class='ctx'> </div><div class='ctx'> static struct dwarf_section *</div><div class='ctx'> obj_dwarf_section_at(obj_info_t *obj, int n)</div><div class='hunk'>@@ -175,7 +177,11 @@ obj_dwarf_section_at(obj_info_t *obj, int n)</div><div class='ctx'>         &amp;obj-&gt;debug_info,</div><div class='ctx'>         &amp;obj-&gt;debug_line,</div><div class='ctx'>         &amp;obj-&gt;debug_ranges,</div><div class='del'>-        &amp;obj-&gt;debug_str</div><div class='add'>+        &amp;obj-&gt;debug_str_offsets,</div><div class='add'>+        &amp;obj-&gt;debug_addr,</div><div class='add'>+        &amp;obj-&gt;debug_rnglists,</div><div class='add'>+        &amp;obj-&gt;debug_str,</div><div class='add'>+        &amp;obj-&gt;debug_line_str</div><div class='ctx'>     };</div><div class='ctx'>     if (n &lt; 0 || DWARF_SECTION_COUNT &lt;= n) {</div><div class='ctx'>         abort();</div><div class='hunk'>@@ -189,15 +195,15 @@ struct debug_section_definition {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> /* Avoid consuming stack as this module may be used from signal handler */</div><div class='del'>-static char binary_filename[PATH_MAX];</div><div class='add'>+static char binary_filename[PATH_MAX + 1];</div><div class='ctx'> </div><div class='ctx'> static unsigned long</div><div class='del'>-uleb128(char **p)</div><div class='add'>+uleb128(const char **p)</div><div class='ctx'> {</div><div class='ctx'>     unsigned long r = 0;</div><div class='ctx'>     int s = 0;</div><div class='ctx'>     for (;;) {</div><div class='del'>-	unsigned char b = *(unsigned char *)(*p)++;</div><div class='add'>+	unsigned char b = (unsigned char)*(*p)++;</div><div class='ctx'> 	if (b &lt; 0x80) {</div><div class='ctx'> 	    r += (unsigned long)b &lt;&lt; s;</div><div class='ctx'> 	    break;</div><div class='hunk'>@@ -209,12 +215,12 @@ uleb128(char **p)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static long</div><div class='del'>-sleb128(char **p)</div><div class='add'>+sleb128(const char **p)</div><div class='ctx'> {</div><div class='ctx'>     long r = 0;</div><div class='ctx'>     int s = 0;</div><div class='ctx'>     for (;;) {</div><div class='del'>-	unsigned char b = *(unsigned char *)(*p)++;</div><div class='add'>+	unsigned char b = (unsigned char)*(*p)++;</div><div class='ctx'> 	if (b &lt; 0x80) {</div><div class='ctx'> 	    if (b &amp; 0x40) {</div><div class='ctx'> 		r -= (0x80 - b) &lt;&lt; s;</div><div class='hunk'>@@ -231,7 +237,7 @@ sleb128(char **p)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const char *</div><div class='del'>-get_nth_dirname(unsigned long dir, char *p)</div><div class='add'>+get_nth_dirname(unsigned long dir, const char *p)</div><div class='ctx'> {</div><div class='ctx'>     if (!dir--) {</div><div class='ctx'> 	return "";</div><div class='hunk'>@@ -248,39 +254,51 @@ get_nth_dirname(unsigned long dir, char *p)</div><div class='ctx'>     return p;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const char *parse_ver5_debug_line_header(const char *p, int idx, uint8_t format, obj_info_t *obj, const char **out_path, uint64_t *out_directory_index);</div><div class='add'>+</div><div class='ctx'> static void</div><div class='del'>-fill_filename(int file, char *include_directories, char *filenames, line_info_t *line, obj_info_t *obj)</div><div class='add'>+fill_filename(int file, uint8_t format, uint16_t version, const char *include_directories, const char *filenames, line_info_t *line, obj_info_t *obj)</div><div class='ctx'> {</div><div class='ctx'>     int i;</div><div class='del'>-    char *p = filenames;</div><div class='del'>-    char *filename;</div><div class='add'>+    const char *p = filenames;</div><div class='add'>+    const char *filename;</div><div class='ctx'>     unsigned long dir;</div><div class='del'>-    for (i = 1; i &lt;= file; i++) {</div><div class='del'>-	filename = p;</div><div class='del'>-	if (!*p) {</div><div class='del'>-	    /* Need to output binary file name? */</div><div class='del'>-	    kprintf("Unexpected file number %d in %s at %tx\n",</div><div class='del'>-		    file, binary_filename, filenames - obj-&gt;mapped);</div><div class='del'>-	    return;</div><div class='del'>-	}</div><div class='del'>-	while (*p) p++;</div><div class='del'>-	p++;</div><div class='del'>-	dir = uleb128(&amp;p);</div><div class='del'>-	/* last modified. */</div><div class='del'>-	uleb128(&amp;p);</div><div class='del'>-	/* size of the file. */</div><div class='del'>-	uleb128(&amp;p);</div><div class='del'>-</div><div class='del'>-	if (i == file) {</div><div class='del'>-	    line-&gt;filename = filename;</div><div class='del'>-	    line-&gt;dirname = get_nth_dirname(dir, include_directories);</div><div class='del'>-	}</div><div class='add'>+    if (version &gt;= 5) {</div><div class='add'>+        const char *path;</div><div class='add'>+        uint64_t directory_index = -1;</div><div class='add'>+        parse_ver5_debug_line_header(filenames, file, format, obj, &amp;path, &amp;directory_index);</div><div class='add'>+        line-&gt;filename = path;</div><div class='add'>+        parse_ver5_debug_line_header(include_directories, (int)directory_index, format, obj, &amp;path, NULL);</div><div class='add'>+        line-&gt;dirname = path;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        for (i = 1; i &lt;= file; i++) {</div><div class='add'>+            filename = p;</div><div class='add'>+            if (!*p) {</div><div class='add'>+                /* Need to output binary file name? */</div><div class='add'>+                kprintf("Unexpected file number %d in %s at %tx\n",</div><div class='add'>+                        file, binary_filename, filenames - obj-&gt;mapped);</div><div class='add'>+                return;</div><div class='add'>+            }</div><div class='add'>+            while (*p) p++;</div><div class='add'>+            p++;</div><div class='add'>+            dir = uleb128(&amp;p);</div><div class='add'>+            /* last modified. */</div><div class='add'>+            uleb128(&amp;p);</div><div class='add'>+            /* size of the file. */</div><div class='add'>+            uleb128(&amp;p);</div><div class='add'>+</div><div class='add'>+            if (i == file) {</div><div class='add'>+                line-&gt;filename = filename;</div><div class='add'>+                line-&gt;dirname = get_nth_dirname(dir, include_directories);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> fill_line(int num_traces, void **traces, uintptr_t addr, int file, int line,</div><div class='del'>-	  char *include_directories, char *filenames,</div><div class='add'>+	  uint8_t format, uint16_t version, const char *include_directories, const char *filenames,</div><div class='ctx'> 	  obj_info_t *obj, line_info_t *lines, int offset)</div><div class='ctx'> {</div><div class='ctx'>     int i;</div><div class='hunk'>@@ -290,7 +308,7 @@ fill_line(int num_traces, void **traces, uintptr_t addr, int file, int line,</div><div class='ctx'> 	/* We assume one line code doesn't result &gt;100 bytes of native code.</div><div class='ctx'>        We may want more reliable way eventually... */</div><div class='ctx'> 	if (addr &lt; a &amp;&amp; a &lt; addr + 100) {</div><div class='del'>-	    fill_filename(file, include_directories, filenames, &amp;lines[i], obj);</div><div class='add'>+	    fill_filename(file, format, version, include_directories, filenames, &amp;lines[i], obj);</div><div class='ctx'> 	    lines[i].line = line;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='hunk'>@@ -315,7 +333,7 @@ struct LineNumberProgramHeader {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-parse_debug_line_header(const char **pp, struct LineNumberProgramHeader *header)</div><div class='add'>+parse_debug_line_header(obj_info_t *obj, const char **pp, struct LineNumberProgramHeader *header)</div><div class='ctx'> {</div><div class='ctx'>     const char *p = *pp;</div><div class='ctx'>     header-&gt;unit_length = *(uint32_t *)p;</div><div class='hunk'>@@ -332,7 +350,13 @@ parse_debug_line_header(const char **pp, struct LineNumberProgramHeader *header)</div><div class='ctx'> </div><div class='ctx'>     header-&gt;version = *(uint16_t *)p;</div><div class='ctx'>     p += sizeof(uint16_t);</div><div class='del'>-    if (header-&gt;version &gt; 4) return -1;</div><div class='add'>+    if (header-&gt;version &gt; 5) return -1;</div><div class='add'>+</div><div class='add'>+    if (header-&gt;version &gt;= 5) {</div><div class='add'>+        /* address_size = *(uint8_t *)p++; */</div><div class='add'>+        /* segment_selector_size = *(uint8_t *)p++; */</div><div class='add'>+        p += 2;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     header-&gt;header_length = header-&gt;format == 4 ? *(uint32_t *)p : *(uint64_t *)p;</div><div class='ctx'>     p += header-&gt;format;</div><div class='hunk'>@@ -353,20 +377,27 @@ parse_debug_line_header(const char **pp, struct LineNumberProgramHeader *header)</div><div class='ctx'>     /* header-&gt;standard_opcode_lengths = (uint8_t *)p - 1; */</div><div class='ctx'>     p += header-&gt;opcode_base - 1;</div><div class='ctx'> </div><div class='del'>-    header-&gt;include_directories = p;</div><div class='add'>+    if (header-&gt;version &gt;= 5) {</div><div class='add'>+        header-&gt;include_directories = p;</div><div class='add'>+        p = parse_ver5_debug_line_header(p, -1, header-&gt;format, obj, NULL, NULL);</div><div class='add'>+        header-&gt;filenames = p;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        header-&gt;include_directories = p;</div><div class='ctx'> </div><div class='del'>-    /* temporary measure for compress-debug-sections */</div><div class='del'>-    if (p &gt;= header-&gt;cu_end) return -1;</div><div class='add'>+        /* temporary measure for compress-debug-sections */</div><div class='add'>+        if (p &gt;= header-&gt;cu_end) return -1;</div><div class='ctx'> </div><div class='del'>-    /* skip include directories */</div><div class='del'>-    while (*p) {</div><div class='del'>-	p = memchr(p, '\0', header-&gt;cu_end - p);</div><div class='del'>-	if (!p) return -1;</div><div class='del'>-	p++;</div><div class='del'>-    }</div><div class='del'>-    p++;</div><div class='add'>+        /* skip include directories */</div><div class='add'>+        while (*p) {</div><div class='add'>+            p = memchr(p, '\0', header-&gt;cu_end - p);</div><div class='add'>+            if (!p) return -1;</div><div class='add'>+            p++;</div><div class='add'>+        }</div><div class='add'>+        p++;</div><div class='ctx'> </div><div class='del'>-    header-&gt;filenames = p;</div><div class='add'>+        header-&gt;filenames = p;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     *pp = header-&gt;cu_start;</div><div class='ctx'> </div><div class='hunk'>@@ -374,7 +405,7 @@ parse_debug_line_header(const char **pp, struct LineNumberProgramHeader *header)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-parse_debug_line_cu(int num_traces, void **traces, char **debug_line,</div><div class='add'>+parse_debug_line_cu(int num_traces, void **traces, const char **debug_line,</div><div class='ctx'> 		obj_info_t *obj, line_info_t *lines, int offset)</div><div class='ctx'> {</div><div class='ctx'>     const char *p = (const char *)*debug_line;</div><div class='hunk'>@@ -392,15 +423,17 @@ parse_debug_line_cu(int num_traces, void **traces, char **debug_line,</div><div class='ctx'>     /* int epilogue_begin = 0; */</div><div class='ctx'>     /* unsigned int isa = 0; */</div><div class='ctx'> </div><div class='del'>-    if (parse_debug_line_header(&amp;p, &amp;header))</div><div class='add'>+    if (parse_debug_line_header(obj, &amp;p, &amp;header))</div><div class='ctx'>         return -1;</div><div class='ctx'>     is_stmt = header.default_is_stmt;</div><div class='ctx'> </div><div class='ctx'> #define FILL_LINE()						    \</div><div class='ctx'>     do {							    \</div><div class='ctx'> 	fill_line(num_traces, traces, addr, file, line,		    \</div><div class='del'>-                  (char *)header.include_directories,               \</div><div class='del'>-                  (char *)header.filenames,                         \</div><div class='add'>+                  header.format,                                    \</div><div class='add'>+                  header.version,                                   \</div><div class='add'>+                  header.include_directories,                       \</div><div class='add'>+                  header.filenames,                                 \</div><div class='ctx'> 		  obj, lines, offset);				    \</div><div class='ctx'> 	/*basic_block = prologue_end = epilogue_begin = 0;*/	    \</div><div class='ctx'>     } while (0)</div><div class='hunk'>@@ -413,19 +446,19 @@ parse_debug_line_cu(int num_traces, void **traces, char **debug_line,</div><div class='ctx'> 	    FILL_LINE();</div><div class='ctx'> 	    break;</div><div class='ctx'> 	case DW_LNS_advance_pc:</div><div class='del'>-	    a = uleb128((char **)&amp;p);</div><div class='add'>+	    a = uleb128(&amp;p) * header.minimum_instruction_length;</div><div class='ctx'> 	    addr += a;</div><div class='ctx'> 	    break;</div><div class='ctx'> 	case DW_LNS_advance_line: {</div><div class='del'>-	    long a = sleb128((char **)&amp;p);</div><div class='add'>+	    long a = sleb128(&amp;p);</div><div class='ctx'> 	    line += a;</div><div class='ctx'> 	    break;</div><div class='ctx'> 	}</div><div class='ctx'> 	case DW_LNS_set_file:</div><div class='del'>-	    file = (unsigned int)uleb128((char **)&amp;p);</div><div class='add'>+	    file = (unsigned int)uleb128(&amp;p);</div><div class='ctx'> 	    break;</div><div class='ctx'> 	case DW_LNS_set_column:</div><div class='del'>-	    /*column = (unsigned int)*/(void)uleb128((char **)&amp;p);</div><div class='add'>+	    /*column = (unsigned int)*/(void)uleb128(&amp;p);</div><div class='ctx'> 	    break;</div><div class='ctx'> 	case DW_LNS_negate_stmt:</div><div class='ctx'> 	    is_stmt = !is_stmt;</div><div class='hunk'>@@ -434,12 +467,13 @@ parse_debug_line_cu(int num_traces, void **traces, char **debug_line,</div><div class='ctx'> 	    /*basic_block = 1; */</div><div class='ctx'> 	    break;</div><div class='ctx'> 	case DW_LNS_const_add_pc:</div><div class='del'>-	    a = ((255 - header.opcode_base) / header.line_range) *</div><div class='add'>+	    a = ((255UL - header.opcode_base) / header.line_range) *</div><div class='ctx'> 		header.minimum_instruction_length;</div><div class='ctx'> 	    addr += a;</div><div class='ctx'> 	    break;</div><div class='ctx'> 	case DW_LNS_fixed_advance_pc:</div><div class='del'>-	    a = *(unsigned char *)p++;</div><div class='add'>+	    a = *(uint16_t *)p;</div><div class='add'>+	    p += sizeof(uint16_t);</div><div class='ctx'> 	    addr += a;</div><div class='ctx'> 	    break;</div><div class='ctx'> 	case DW_LNS_set_prologue_end:</div><div class='hunk'>@@ -449,10 +483,10 @@ parse_debug_line_cu(int num_traces, void **traces, char **debug_line,</div><div class='ctx'> 	    /* epilogue_begin = 1; */</div><div class='ctx'> 	    break;</div><div class='ctx'> 	case DW_LNS_set_isa:</div><div class='del'>-	    /* isa = (unsigned int)*/(void)uleb128((char **)&amp;p);</div><div class='add'>+	    /* isa = (unsigned int)*/(void)uleb128(&amp;p);</div><div class='ctx'> 	    break;</div><div class='ctx'> 	case 0:</div><div class='del'>-	    a = *(unsigned char *)p++;</div><div class='add'>+	    a = uleb128(&amp;p);</div><div class='ctx'> 	    op = *p++;</div><div class='ctx'> 	    switch (op) {</div><div class='ctx'> 	    case DW_LNE_end_sequence:</div><div class='hunk'>@@ -476,7 +510,7 @@ parse_debug_line_cu(int num_traces, void **traces, char **debug_line,</div><div class='ctx'> 		break;</div><div class='ctx'> 	    case DW_LNE_set_discriminator:</div><div class='ctx'> 		/* TODO:currently ignore */</div><div class='del'>-		uleb128((char **)&amp;p);</div><div class='add'>+		uleb128(&amp;p);</div><div class='ctx'> 		break;</div><div class='ctx'> 	    default:</div><div class='ctx'> 		kprintf("Unknown extended opcode: %d in %s\n",</div><div class='hunk'>@@ -499,10 +533,10 @@ parse_debug_line_cu(int num_traces, void **traces, char **debug_line,</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> parse_debug_line(int num_traces, void **traces,</div><div class='del'>-		 char *debug_line, unsigned long size,</div><div class='add'>+		 const char *debug_line, unsigned long size,</div><div class='ctx'> 		 obj_info_t *obj, line_info_t *lines, int offset)</div><div class='ctx'> {</div><div class='del'>-    char *debug_line_end = debug_line + size;</div><div class='add'>+    const char *debug_line_end = debug_line + size;</div><div class='ctx'>     while (debug_line &lt; debug_line_end) {</div><div class='ctx'> 	if (parse_debug_line_cu(num_traces, traces, &amp;debug_line, obj, lines, offset))</div><div class='ctx'> 	    return -1;</div><div class='hunk'>@@ -528,13 +562,25 @@ append_obj(obj_info_t **objp)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifdef USE_ELF</div><div class='add'>+/* Ideally we should check 4 paths to follow gnu_debuglink:</div><div class='add'>+ *</div><div class='add'>+ *   - /usr/lib/debug/.build-id/ab/cdef1234.debug</div><div class='add'>+ *   - /usr/bin/ruby.debug</div><div class='add'>+ *   - /usr/bin/.debug/ruby.debug</div><div class='add'>+ *   - /usr/lib/debug/usr/bin/ruby.debug.</div><div class='add'>+ *</div><div class='add'>+ * but we handle only two cases for now as the two formats are</div><div class='add'>+ * used by some linux distributions.</div><div class='add'>+ *</div><div class='add'>+ * See GDB's info for detail.</div><div class='add'>+ * https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+// check the path pattern of "/usr/lib/debug/usr/bin/ruby.debug"</div><div class='ctx'> static void</div><div class='ctx'> follow_debuglink(const char *debuglink, int num_traces, void **traces,</div><div class='ctx'> 		 obj_info_t **objp, line_info_t *lines, int offset)</div><div class='ctx'> {</div><div class='del'>-    /* Ideally we should check 4 paths to follow gnu_debuglink,</div><div class='del'>-       but we handle only one case for now as this format is used</div><div class='del'>-       by some linux distributions. See GDB's info for detail. */</div><div class='ctx'>     static const char global_debug_dir[] = "/usr/lib/debug";</div><div class='ctx'>     const size_t global_debug_dir_len = sizeof(global_debug_dir) - 1;</div><div class='ctx'>     char *p;</div><div class='hunk'>@@ -561,6 +607,37 @@ follow_debuglink(const char *debuglink, int num_traces, void **traces,</div><div class='ctx'>     o2-&gt;path = o1-&gt;path;</div><div class='ctx'>     fill_lines(num_traces, traces, 0, objp, lines, offset);</div><div class='ctx'> }</div><div class='add'>+</div><div class='add'>+// check the path pattern of "/usr/lib/debug/.build-id/ab/cdef1234.debug"</div><div class='add'>+static void</div><div class='add'>+follow_debuglink_build_id(const char *build_id, size_t build_id_size, int num_traces, void **traces,</div><div class='add'>+                          obj_info_t **objp, line_info_t *lines, int offset)</div><div class='add'>+{</div><div class='add'>+    static const char global_debug_dir[] = "/usr/lib/debug/.build-id/";</div><div class='add'>+    const size_t global_debug_dir_len = sizeof(global_debug_dir) - 1;</div><div class='add'>+    char *p;</div><div class='add'>+    obj_info_t *o1 = *objp, *o2;</div><div class='add'>+    size_t i;</div><div class='add'>+</div><div class='add'>+    if (PATH_MAX &lt; global_debug_dir_len + 1 + build_id_size * 2 + 6) return;</div><div class='add'>+</div><div class='add'>+    memcpy(binary_filename, global_debug_dir, global_debug_dir_len);</div><div class='add'>+    p = binary_filename + global_debug_dir_len;</div><div class='add'>+    for (i = 0; i &lt; build_id_size; i++) {</div><div class='add'>+        static const char tbl[] = "0123456789abcdef";</div><div class='add'>+        unsigned char n = build_id[i];</div><div class='add'>+        *p++ = tbl[n / 16];</div><div class='add'>+        *p++ = tbl[n % 16];</div><div class='add'>+        if (i == 0) *p++ = '/';</div><div class='add'>+    }</div><div class='add'>+    strcpy(p, ".debug");</div><div class='add'>+</div><div class='add'>+    append_obj(objp);</div><div class='add'>+    o2 = *objp;</div><div class='add'>+    o2-&gt;base_addr = o1-&gt;base_addr;</div><div class='add'>+    o2-&gt;path = o1-&gt;path;</div><div class='add'>+    fill_lines(num_traces, traces, 0, objp, lines, offset);</div><div class='add'>+}</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> enum</div><div class='hunk'>@@ -766,32 +843,51 @@ enum</div><div class='ctx'>     DW_FORM_addrx4 = 0x2c</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/* Range list entry encodings */</div><div class='add'>+enum {</div><div class='add'>+    DW_RLE_end_of_list = 0x00,</div><div class='add'>+    DW_RLE_base_addressx = 0x01,</div><div class='add'>+    DW_RLE_startx_endx = 0x02,</div><div class='add'>+    DW_RLE_startx_length = 0x03,</div><div class='add'>+    DW_RLE_offset_pair = 0x04,</div><div class='add'>+    DW_RLE_base_address = 0x05,</div><div class='add'>+    DW_RLE_start_end = 0x06,</div><div class='add'>+    DW_RLE_start_length = 0x07</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> enum {</div><div class='ctx'>     VAL_none = 0,</div><div class='ctx'>     VAL_cstr = 1,</div><div class='ctx'>     VAL_data = 2,</div><div class='ctx'>     VAL_uint = 3,</div><div class='del'>-    VAL_int = 4</div><div class='add'>+    VAL_int = 4,</div><div class='add'>+    VAL_addr = 5</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> # define ABBREV_TABLE_SIZE 256</div><div class='ctx'> typedef struct {</div><div class='ctx'>     obj_info_t *obj;</div><div class='del'>-    char *file;</div><div class='del'>-    char *current_cu;</div><div class='add'>+    const char *file;</div><div class='add'>+    uint8_t current_version;</div><div class='add'>+    const char *current_cu;</div><div class='ctx'>     uint64_t current_low_pc;</div><div class='del'>-    char *debug_line_cu_end;</div><div class='del'>-    char *debug_line_files;</div><div class='del'>-    char *debug_line_directories;</div><div class='del'>-    char *p;</div><div class='del'>-    char *cu_end;</div><div class='del'>-    char *pend;</div><div class='del'>-    char *q0;</div><div class='del'>-    char *q;</div><div class='del'>-    int format; /* 4 or 8 */;</div><div class='add'>+    uint64_t current_str_offsets_base;</div><div class='add'>+    uint64_t current_addr_base;</div><div class='add'>+    uint64_t current_rnglists_base;</div><div class='add'>+    const char *debug_line_cu_end;</div><div class='add'>+    uint8_t debug_line_format;</div><div class='add'>+    uint16_t debug_line_version;</div><div class='add'>+    const char *debug_line_files;</div><div class='add'>+    const char *debug_line_directories;</div><div class='add'>+    const char *p;</div><div class='add'>+    const char *cu_end;</div><div class='add'>+    const char *pend;</div><div class='add'>+    const char *q0;</div><div class='add'>+    const char *q;</div><div class='add'>+    int format; // 4 or 8</div><div class='ctx'>     uint8_t address_size;</div><div class='ctx'>     int level;</div><div class='del'>-    char *abbrev_table[ABBREV_TABLE_SIZE];</div><div class='add'>+    const char *abbrev_table[ABBREV_TABLE_SIZE];</div><div class='ctx'> } DebugInfoReader;</div><div class='ctx'> </div><div class='ctx'> typedef struct {</div><div class='hunk'>@@ -802,9 +898,10 @@ typedef struct {</div><div class='ctx'> </div><div class='ctx'> typedef struct {</div><div class='ctx'>     union {</div><div class='del'>-        char *ptr;</div><div class='add'>+        const char *ptr;</div><div class='ctx'>         uint64_t uint64;</div><div class='ctx'>         int64_t int64;</div><div class='add'>+        uint64_t addr_idx;</div><div class='ctx'>     } as;</div><div class='ctx'>     uint64_t off;</div><div class='ctx'>     uint64_t at;</div><div class='hunk'>@@ -813,8 +910,11 @@ typedef struct {</div><div class='ctx'>     int type;</div><div class='ctx'> } DebugInfoValue;</div><div class='ctx'> </div><div class='del'>-/* TODO: Big Endian */</div><div class='add'>+#if defined(WORDS_BIGENDIAN)</div><div class='add'>+#define MERGE_2INTS(a,b,sz) (((uint64_t)(a)&lt;&lt;sz)|(b))</div><div class='add'>+#else</div><div class='ctx'> #define MERGE_2INTS(a,b,sz) (((uint64_t)(b)&lt;&lt;sz)|(a))</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> static uint16_t</div><div class='ctx'> get_uint16(const uint8_t *p)</div><div class='hunk'>@@ -835,39 +935,39 @@ get_uint64(const uint8_t *p)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static uint8_t</div><div class='del'>-read_uint8(char **ptr)</div><div class='add'>+read_uint8(const char **ptr)</div><div class='ctx'> {</div><div class='del'>-    const unsigned char *p = (const unsigned char *)*ptr;</div><div class='del'>-    *ptr = (char *)(p + 1);</div><div class='del'>-    return *p;</div><div class='add'>+    const char *p = *ptr;</div><div class='add'>+    *ptr = (p + 1);</div><div class='add'>+    return (uint8_t)*p;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static uint16_t</div><div class='del'>-read_uint16(char **ptr)</div><div class='add'>+read_uint16(const char **ptr)</div><div class='ctx'> {</div><div class='del'>-    const unsigned char *p = (const unsigned char *)*ptr;</div><div class='del'>-    *ptr = (char *)(p + 2);</div><div class='del'>-    return get_uint16(p);</div><div class='add'>+    const char *p = *ptr;</div><div class='add'>+    *ptr = (p + 2);</div><div class='add'>+    return get_uint16((const uint8_t *)p);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static uint32_t</div><div class='del'>-read_uint24(char **ptr)</div><div class='add'>+read_uint24(const char **ptr)</div><div class='ctx'> {</div><div class='del'>-    const unsigned char *p = (const unsigned char *)*ptr;</div><div class='del'>-    *ptr = (char *)(p + 3);</div><div class='del'>-    return (*p &lt;&lt; 16) | get_uint16(p+1);</div><div class='add'>+    const char *p = *ptr;</div><div class='add'>+    *ptr = (p + 3);</div><div class='add'>+    return ((uint8_t)*p &lt;&lt; 16) | get_uint16((const uint8_t *)p+1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static uint32_t</div><div class='del'>-read_uint32(char **ptr)</div><div class='add'>+read_uint32(const char **ptr)</div><div class='ctx'> {</div><div class='del'>-    const unsigned char *p = (const unsigned char *)*ptr;</div><div class='del'>-    *ptr = (char *)(p + 4);</div><div class='del'>-    return get_uint32(p);</div><div class='add'>+    const char *p = *ptr;</div><div class='add'>+    *ptr = (p + 4);</div><div class='add'>+    return get_uint32((const uint8_t *)p);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static uint64_t</div><div class='del'>-read_uint64(char **ptr)</div><div class='add'>+read_uint64(const char **ptr)</div><div class='ctx'> {</div><div class='ctx'>     const unsigned char *p = (const unsigned char *)*ptr;</div><div class='ctx'>     *ptr = (char *)(p + 8);</div><div class='hunk'>@@ -875,7 +975,7 @@ read_uint64(char **ptr)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static uintptr_t</div><div class='del'>-read_uintptr(char **ptr)</div><div class='add'>+read_uintptr(const char **ptr)</div><div class='ctx'> {</div><div class='ctx'>     const unsigned char *p = (const unsigned char *)*ptr;</div><div class='ctx'>     *ptr = (char *)(p + SIZEOF_VOIDP);</div><div class='hunk'>@@ -916,13 +1016,34 @@ debug_info_reader_init(DebugInfoReader *reader, obj_info_t *obj)</div><div class='ctx'>     reader-&gt;p = obj-&gt;debug_info.ptr;</div><div class='ctx'>     reader-&gt;pend = obj-&gt;debug_info.ptr + obj-&gt;debug_info.size;</div><div class='ctx'>     reader-&gt;debug_line_cu_end = obj-&gt;debug_line.ptr;</div><div class='add'>+    reader-&gt;current_low_pc = 0;</div><div class='add'>+    reader-&gt;current_str_offsets_base = 0;</div><div class='add'>+    reader-&gt;current_addr_base = 0;</div><div class='add'>+    reader-&gt;current_rnglists_base = 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+di_skip_die_attributes(const char **p)</div><div class='add'>+{</div><div class='add'>+    for (;;) {</div><div class='add'>+        uint64_t at = uleb128(p);</div><div class='add'>+        uint64_t form = uleb128(p);</div><div class='add'>+        if (!at &amp;&amp; !form) break;</div><div class='add'>+        switch (form) {</div><div class='add'>+          default:</div><div class='add'>+            break;</div><div class='add'>+          case DW_FORM_implicit_const:</div><div class='add'>+            sleb128(p);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> di_read_debug_abbrev_cu(DebugInfoReader *reader)</div><div class='ctx'> {</div><div class='ctx'>     uint64_t prev = 0;</div><div class='del'>-    char *p = reader-&gt;q0;</div><div class='add'>+    const char *p = reader-&gt;q0;</div><div class='ctx'>     for (;;) {</div><div class='ctx'>         uint64_t abbrev_number = uleb128(&amp;p);</div><div class='ctx'>         if (abbrev_number &lt;= prev) break;</div><div class='hunk'>@@ -932,12 +1053,7 @@ di_read_debug_abbrev_cu(DebugInfoReader *reader)</div><div class='ctx'>         prev = abbrev_number;</div><div class='ctx'>         uleb128(&amp;p); /* tag */</div><div class='ctx'>         p++; /* has_children */</div><div class='del'>-        /* skip content */</div><div class='del'>-        for (;;) {</div><div class='del'>-            uint64_t at = uleb128(&amp;p);</div><div class='del'>-            uint64_t form = uleb128(&amp;p);</div><div class='del'>-            if (!at &amp;&amp; !form) break;</div><div class='del'>-        }</div><div class='add'>+        di_skip_die_attributes(&amp;p);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -948,10 +1064,12 @@ di_read_debug_line_cu(DebugInfoReader *reader)</div><div class='ctx'>     struct LineNumberProgramHeader header;</div><div class='ctx'> </div><div class='ctx'>     p = (const char *)reader-&gt;debug_line_cu_end;</div><div class='del'>-    if (parse_debug_line_header(&amp;p, &amp;header))</div><div class='add'>+    if (parse_debug_line_header(reader-&gt;obj, &amp;p, &amp;header))</div><div class='ctx'>         return -1;</div><div class='ctx'> </div><div class='ctx'>     reader-&gt;debug_line_cu_end = (char *)header.cu_end;</div><div class='add'>+    reader-&gt;debug_line_format = header.format;</div><div class='add'>+    reader-&gt;debug_line_version = header.version;</div><div class='ctx'>     reader-&gt;debug_line_directories = (char *)header.include_directories;</div><div class='ctx'>     reader-&gt;debug_line_files = (char *)header.filenames;</div><div class='ctx'> </div><div class='hunk'>@@ -959,6 +1077,13 @@ di_read_debug_line_cu(DebugInfoReader *reader)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='add'>+set_addr_idx_value(DebugInfoValue *v, uint64_t n)</div><div class='add'>+{</div><div class='add'>+    v-&gt;as.addr_idx = n;</div><div class='add'>+    v-&gt;type = VAL_addr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='ctx'> set_uint_value(DebugInfoValue *v, uint64_t n)</div><div class='ctx'> {</div><div class='ctx'>     v-&gt;as.uint64 = n;</div><div class='hunk'>@@ -973,7 +1098,7 @@ set_int_value(DebugInfoValue *v, int64_t n)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-set_cstr_value(DebugInfoValue *v, char *s)</div><div class='add'>+set_cstr_value(DebugInfoValue *v, const char *s)</div><div class='ctx'> {</div><div class='ctx'>     v-&gt;as.ptr = s;</div><div class='ctx'>     v-&gt;off = 0;</div><div class='hunk'>@@ -981,7 +1106,7 @@ set_cstr_value(DebugInfoValue *v, char *s)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-set_cstrp_value(DebugInfoValue *v, char *s, uint64_t off)</div><div class='add'>+set_cstrp_value(DebugInfoValue *v, const char *s, uint64_t off)</div><div class='ctx'> {</div><div class='ctx'>     v-&gt;as.ptr = s;</div><div class='ctx'>     v-&gt;off = off;</div><div class='hunk'>@@ -989,7 +1114,7 @@ set_cstrp_value(DebugInfoValue *v, char *s, uint64_t off)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-set_data_value(DebugInfoValue *v, char *s)</div><div class='add'>+set_data_value(DebugInfoValue *v, const char *s)</div><div class='ctx'> {</div><div class='ctx'>     v-&gt;as.ptr = s;</div><div class='ctx'>     v-&gt;type = VAL_data;</div><div class='hunk'>@@ -1005,19 +1130,39 @@ get_cstr_value(DebugInfoValue *v)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const char *</div><div class='add'>+resolve_strx(DebugInfoReader *reader, uint64_t idx)</div><div class='add'>+{</div><div class='add'>+    const char *p = reader-&gt;obj-&gt;debug_str_offsets.ptr + reader-&gt;current_str_offsets_base;</div><div class='add'>+    uint64_t off;</div><div class='add'>+    if (reader-&gt;format == 4) {</div><div class='add'>+        off = ((uint32_t *)p)[idx];</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        off = ((uint64_t *)p)[idx];</div><div class='add'>+    }</div><div class='add'>+    return reader-&gt;obj-&gt;debug_str.ptr + off;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+debug_info_reader_read_addr_value(DebugInfoReader *reader, DebugInfoValue *v)</div><div class='add'>+{</div><div class='add'>+    if (reader-&gt;address_size == 4) {</div><div class='add'>+        set_uint_value(v, read_uint32(&amp;reader-&gt;p));</div><div class='add'>+    } else if (reader-&gt;address_size == 8) {</div><div class='add'>+        set_uint_value(v, read_uint64(&amp;reader-&gt;p));</div><div class='add'>+    } else {</div><div class='add'>+        fprintf(stderr,"unknown address_size:%d", reader-&gt;address_size);</div><div class='add'>+        abort();</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoValue *v)</div><div class='ctx'> {</div><div class='ctx'>     switch (form) {</div><div class='ctx'>       case DW_FORM_addr:</div><div class='del'>-        if (reader-&gt;address_size == 4) {</div><div class='del'>-            set_uint_value(v, read_uint32(&amp;reader-&gt;p));</div><div class='del'>-        } else if (reader-&gt;address_size == 8) {</div><div class='del'>-            set_uint_value(v, read_uint64(&amp;reader-&gt;p));</div><div class='del'>-        } else {</div><div class='del'>-            fprintf(stderr,"unknown address_size:%d", reader-&gt;address_size);</div><div class='del'>-            abort();</div><div class='del'>-        }</div><div class='add'>+        debug_info_reader_read_addr_value(reader, v);</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_block2:</div><div class='ctx'>         v-&gt;size = read_uint16(&amp;reader-&gt;p);</div><div class='hunk'>@@ -1069,13 +1214,19 @@ debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoVa</div><div class='ctx'>         set_uint_value(v, read_uleb128(reader));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_ref_addr:</div><div class='del'>-        if (reader-&gt;address_size == 4) {</div><div class='del'>-            set_uint_value(v, read_uint32(&amp;reader-&gt;p));</div><div class='del'>-        } else if (reader-&gt;address_size == 8) {</div><div class='del'>-            set_uint_value(v, read_uint64(&amp;reader-&gt;p));</div><div class='add'>+        if (reader-&gt;current_version &lt;= 2) {</div><div class='add'>+            // DWARF Version 2 specifies that references have</div><div class='add'>+            // the same size as an address on the target system</div><div class='add'>+            debug_info_reader_read_addr_value(reader, v);</div><div class='ctx'>         } else {</div><div class='del'>-            fprintf(stderr,"unknown address_size:%d", reader-&gt;address_size);</div><div class='del'>-            abort();</div><div class='add'>+            if (reader-&gt;format == 4) {</div><div class='add'>+                set_uint_value(v, read_uint32(&amp;reader-&gt;p));</div><div class='add'>+            } else if (reader-&gt;format == 8) {</div><div class='add'>+                set_uint_value(v, read_uint64(&amp;reader-&gt;p));</div><div class='add'>+            } else {</div><div class='add'>+                fprintf(stderr,"unknown format:%d", reader-&gt;format);</div><div class='add'>+                abort();</div><div class='add'>+            }</div><div class='ctx'>         }</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_ref1:</div><div class='hunk'>@@ -1094,7 +1245,7 @@ debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoVa</div><div class='ctx'>         set_uint_value(v, uleb128(&amp;reader-&gt;p));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_indirect:</div><div class='del'>-        /* TODO: read the refered value */</div><div class='add'>+        /* TODO: read the referred value */</div><div class='ctx'>         set_uint_value(v, uleb128(&amp;reader-&gt;p));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_sec_offset:</div><div class='hunk'>@@ -1117,11 +1268,10 @@ debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoVa</div><div class='ctx'>         set_uint_value(v, 1);</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_strx:</div><div class='del'>-        set_uint_value(v, uleb128(&amp;reader-&gt;p));</div><div class='add'>+        set_cstr_value(v, resolve_strx(reader, uleb128(&amp;reader-&gt;p)));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_addrx:</div><div class='del'>-        /* TODO: read .debug_addr */</div><div class='del'>-        set_uint_value(v, uleb128(&amp;reader-&gt;p));</div><div class='add'>+        set_addr_idx_value(v, uleb128(&amp;reader-&gt;p));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_ref_sup4:</div><div class='ctx'>         set_uint_value(v, read_uint32(&amp;reader-&gt;p));</div><div class='hunk'>@@ -1136,8 +1286,7 @@ debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoVa</div><div class='ctx'>         reader-&gt;p += v-&gt;size;</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_line_strp:</div><div class='del'>-        set_uint_value(v, read_uint(reader));</div><div class='del'>-        /* *p = reader-&gt;file + reader-&gt;line-&gt;sh_offset + ret; */</div><div class='add'>+        set_cstrp_value(v, reader-&gt;obj-&gt;debug_line_str.ptr, read_uint(reader));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_ref_sig8:</div><div class='ctx'>         set_uint_value(v, read_uint64(&amp;reader-&gt;p));</div><div class='hunk'>@@ -1155,28 +1304,28 @@ debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoVa</div><div class='ctx'>         set_uint_value(v, read_uint64(&amp;reader-&gt;p));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_strx1:</div><div class='del'>-        set_uint_value(v, read_uint8(&amp;reader-&gt;p));</div><div class='add'>+        set_cstr_value(v, resolve_strx(reader, read_uint8(&amp;reader-&gt;p)));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_strx2:</div><div class='del'>-        set_uint_value(v, read_uint16(&amp;reader-&gt;p));</div><div class='add'>+        set_cstr_value(v, resolve_strx(reader, read_uint16(&amp;reader-&gt;p)));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_strx3:</div><div class='del'>-        set_uint_value(v, read_uint24(&amp;reader-&gt;p));</div><div class='add'>+        set_cstr_value(v, resolve_strx(reader, read_uint24(&amp;reader-&gt;p)));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_strx4:</div><div class='del'>-        set_uint_value(v, read_uint32(&amp;reader-&gt;p));</div><div class='add'>+        set_cstr_value(v, resolve_strx(reader, read_uint32(&amp;reader-&gt;p)));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_addrx1:</div><div class='del'>-        set_uint_value(v, read_uint8(&amp;reader-&gt;p));</div><div class='add'>+        set_addr_idx_value(v, read_uint8(&amp;reader-&gt;p));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_addrx2:</div><div class='del'>-        set_uint_value(v, read_uint16(&amp;reader-&gt;p));</div><div class='add'>+        set_addr_idx_value(v, read_uint16(&amp;reader-&gt;p));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_addrx3:</div><div class='del'>-        set_uint_value(v, read_uint24(&amp;reader-&gt;p));</div><div class='add'>+        set_addr_idx_value(v, read_uint24(&amp;reader-&gt;p));</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_FORM_addrx4:</div><div class='del'>-        set_uint_value(v, read_uint32(&amp;reader-&gt;p));</div><div class='add'>+        set_addr_idx_value(v, read_uint32(&amp;reader-&gt;p));</div><div class='ctx'>         break;</div><div class='ctx'>       case 0:</div><div class='ctx'>         goto fail;</div><div class='hunk'>@@ -1190,10 +1339,10 @@ debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoVa</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* find abbrev in current compilation unit */</div><div class='del'>-static char *</div><div class='add'>+static const char *</div><div class='ctx'> di_find_abbrev(DebugInfoReader *reader, uint64_t abbrev_number)</div><div class='ctx'> {</div><div class='del'>-    char *p;</div><div class='add'>+    const char *p;</div><div class='ctx'>     if (abbrev_number &lt; ABBREV_TABLE_SIZE) {</div><div class='ctx'>         return reader-&gt;abbrev_table[abbrev_number];</div><div class='ctx'>     }</div><div class='hunk'>@@ -1201,12 +1350,7 @@ di_find_abbrev(DebugInfoReader *reader, uint64_t abbrev_number)</div><div class='ctx'>     /* skip 255th record */</div><div class='ctx'>     uleb128(&amp;p); /* tag */</div><div class='ctx'>     p++; /* has_children */</div><div class='del'>-    /* skip content */</div><div class='del'>-    for (;;) {</div><div class='del'>-        uint64_t at = uleb128(&amp;p);</div><div class='del'>-        uint64_t form = uleb128(&amp;p);</div><div class='del'>-        if (!at &amp;&amp; !form) break;</div><div class='del'>-    }</div><div class='add'>+    di_skip_die_attributes(&amp;p);</div><div class='ctx'>     for (uint64_t n = uleb128(&amp;p); abbrev_number != n; n = uleb128(&amp;p)) {</div><div class='ctx'>         if (n == 0) {</div><div class='ctx'>             fprintf(stderr,"%d: Abbrev Number %"PRId64" not found\n",__LINE__, abbrev_number);</div><div class='hunk'>@@ -1214,12 +1358,7 @@ di_find_abbrev(DebugInfoReader *reader, uint64_t abbrev_number)</div><div class='ctx'>         }</div><div class='ctx'>         uleb128(&amp;p); /* tag */</div><div class='ctx'>         p++; /* has_children */</div><div class='del'>-        /* skip content */</div><div class='del'>-        for (;;) {</div><div class='del'>-            uint64_t at = uleb128(&amp;p);</div><div class='del'>-            uint64_t form = uleb128(&amp;p);</div><div class='del'>-            if (!at &amp;&amp; !form) break;</div><div class='del'>-        }</div><div class='add'>+        di_skip_die_attributes(&amp;p);</div><div class='ctx'>     }</div><div class='ctx'>     return p;</div><div class='ctx'> }</div><div class='hunk'>@@ -1233,7 +1372,7 @@ hexdump0(const unsigned char *p, size_t n)</div><div class='ctx'>     for (i=0; i &lt; n; i++){</div><div class='ctx'>         switch (i &amp; 15) {</div><div class='ctx'>           case 0:</div><div class='del'>-            fprintf(stderr, "%02zd: %02X ", i/16, p[i]);</div><div class='add'>+            fprintf(stderr, "%02" PRIdSIZE ": %02X ", i/16, p[i]);</div><div class='ctx'>             break;</div><div class='ctx'>           case 15:</div><div class='ctx'>             fprintf(stderr, "%02X\n", p[i]);</div><div class='hunk'>@@ -1254,16 +1393,16 @@ div_inspect(DebugInfoValue *v)</div><div class='ctx'> {</div><div class='ctx'>     switch (v-&gt;type) {</div><div class='ctx'>       case VAL_uint:</div><div class='del'>-        fprintf(stderr,"%d: type:%d size:%zx v:%lx\n",__LINE__,v-&gt;type,v-&gt;size,v-&gt;as.uint64);</div><div class='add'>+        fprintf(stderr,"%d: type:%d size:%" PRIxSIZE " v:%"PRIx64"\n",__LINE__,v-&gt;type,v-&gt;size,v-&gt;as.uint64);</div><div class='ctx'>         break;</div><div class='ctx'>       case VAL_int:</div><div class='del'>-        fprintf(stderr,"%d: type:%d size:%zx v:%ld\n",__LINE__,v-&gt;type,v-&gt;size,(int64_t)v-&gt;as.uint64);</div><div class='add'>+        fprintf(stderr,"%d: type:%d size:%" PRIxSIZE " v:%"PRId64"\n",__LINE__,v-&gt;type,v-&gt;size,(int64_t)v-&gt;as.uint64);</div><div class='ctx'>         break;</div><div class='ctx'>       case VAL_cstr:</div><div class='del'>-        fprintf(stderr,"%d: type:%d size:%zx v:'%s'\n",__LINE__,v-&gt;type,v-&gt;size,v-&gt;as.ptr);</div><div class='add'>+        fprintf(stderr,"%d: type:%d size:%" PRIxSIZE " v:'%s'\n",__LINE__,v-&gt;type,v-&gt;size,v-&gt;as.ptr);</div><div class='ctx'>         break;</div><div class='ctx'>       case VAL_data:</div><div class='del'>-        fprintf(stderr,"%d: type:%d size:%zx v:\n",__LINE__,v-&gt;type,v-&gt;size);</div><div class='add'>+        fprintf(stderr,"%d: type:%d size:%" PRIxSIZE " v:\n",__LINE__,v-&gt;type,v-&gt;size);</div><div class='ctx'>         hexdump(v-&gt;as.ptr, 16);</div><div class='ctx'>         break;</div><div class='ctx'>     }</div><div class='hunk'>@@ -1314,6 +1453,76 @@ di_skip_records(DebugInfoReader *reader)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+typedef struct addr_header {</div><div class='add'>+    const char *ptr;</div><div class='add'>+    uint64_t unit_length;</div><div class='add'>+    uint8_t format;</div><div class='add'>+    uint8_t address_size;</div><div class='add'>+    /* uint8_t segment_selector_size; */</div><div class='add'>+} addr_header_t;</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+addr_header_init(obj_info_t *obj, addr_header_t *header) {</div><div class='add'>+    const char *p = obj-&gt;debug_addr.ptr;</div><div class='add'>+</div><div class='add'>+    header-&gt;ptr = p;</div><div class='add'>+</div><div class='add'>+    if (!p) return;</div><div class='add'>+</div><div class='add'>+    header-&gt;unit_length = *(uint32_t *)p;</div><div class='add'>+    p += sizeof(uint32_t);</div><div class='add'>+</div><div class='add'>+    header-&gt;format = 4;</div><div class='add'>+    if (header-&gt;unit_length == 0xffffffff) {</div><div class='add'>+        header-&gt;unit_length = *(uint64_t *)p;</div><div class='add'>+        p += sizeof(uint64_t);</div><div class='add'>+        header-&gt;format = 8;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    p += 2; /* version */</div><div class='add'>+    header-&gt;address_size = *p++;</div><div class='add'>+    p++; /* segment_selector_size */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static uint64_t</div><div class='add'>+read_addr(addr_header_t *header, uint64_t addr_base, uint64_t idx) {</div><div class='add'>+    if (header-&gt;address_size == 4) {</div><div class='add'>+        return ((uint32_t*)(header-&gt;ptr + addr_base))[idx];</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return ((uint64_t*)(header-&gt;ptr + addr_base))[idx];</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+typedef struct rnglists_header {</div><div class='add'>+    uint64_t unit_length;</div><div class='add'>+    uint8_t format;</div><div class='add'>+    uint8_t address_size;</div><div class='add'>+    uint32_t offset_entry_count;</div><div class='add'>+} rnglists_header_t;</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rnglists_header_init(obj_info_t *obj, rnglists_header_t *header) {</div><div class='add'>+    const char *p = obj-&gt;debug_rnglists.ptr;</div><div class='add'>+</div><div class='add'>+    if (!p) return;</div><div class='add'>+</div><div class='add'>+    header-&gt;unit_length = *(uint32_t *)p;</div><div class='add'>+    p += sizeof(uint32_t);</div><div class='add'>+</div><div class='add'>+    header-&gt;format = 4;</div><div class='add'>+    if (header-&gt;unit_length == 0xffffffff) {</div><div class='add'>+        header-&gt;unit_length = *(uint64_t *)p;</div><div class='add'>+        p += sizeof(uint64_t);</div><div class='add'>+        header-&gt;format = 8;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    p += 2; /* version */</div><div class='add'>+    header-&gt;address_size = *p++;</div><div class='add'>+    p++; /* segment_selector_size */</div><div class='add'>+    header-&gt;offset_entry_count = *(uint32_t *)p;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> typedef struct {</div><div class='ctx'>     uint64_t low_pc;</div><div class='ctx'>     uint64_t high_pc;</div><div class='hunk'>@@ -1324,31 +1533,53 @@ typedef struct {</div><div class='ctx'> } ranges_t;</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-ranges_set(ranges_t *ptr, DebugInfoValue *v)</div><div class='add'>+ranges_set(ranges_t *ptr, DebugInfoValue *v, addr_header_t *addr_header, uint64_t addr_base)</div><div class='ctx'> {</div><div class='add'>+    uint64_t n = 0;</div><div class='add'>+    if (v-&gt;type == VAL_uint) {</div><div class='add'>+        n = v-&gt;as.uint64;</div><div class='add'>+    }</div><div class='add'>+    else if (v-&gt;type == VAL_addr) {</div><div class='add'>+        n = read_addr(addr_header, addr_base, v-&gt;as.addr_idx);</div><div class='add'>+    }</div><div class='ctx'>     switch (v-&gt;at) {</div><div class='ctx'>       case DW_AT_low_pc:</div><div class='del'>-        ptr-&gt;low_pc = v-&gt;as.uint64;</div><div class='add'>+        ptr-&gt;low_pc = n;</div><div class='ctx'>         ptr-&gt;low_pc_set = true;</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_AT_high_pc:</div><div class='ctx'>         if (v-&gt;form == DW_FORM_addr) {</div><div class='del'>-            ptr-&gt;high_pc = v-&gt;as.uint64;</div><div class='add'>+            ptr-&gt;high_pc = n;</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-            ptr-&gt;high_pc = ptr-&gt;low_pc + v-&gt;as.uint64;</div><div class='add'>+            ptr-&gt;high_pc = ptr-&gt;low_pc + n;</div><div class='ctx'>         }</div><div class='ctx'>         ptr-&gt;high_pc_set = true;</div><div class='ctx'>         break;</div><div class='ctx'>       case DW_AT_ranges:</div><div class='del'>-        ptr-&gt;ranges = v-&gt;as.uint64;</div><div class='add'>+        ptr-&gt;ranges = n;</div><div class='ctx'>         ptr-&gt;ranges_set = true;</div><div class='ctx'>         break;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static uint64_t</div><div class='add'>+read_dw_form_addr(DebugInfoReader *reader, const char **ptr)</div><div class='add'>+{</div><div class='add'>+    const char *p = *ptr;</div><div class='add'>+    *ptr = p + reader-&gt;address_size;</div><div class='add'>+    if (reader-&gt;address_size == 4) {</div><div class='add'>+        return read_uint32(&amp;p);</div><div class='add'>+    } else if (reader-&gt;address_size == 8) {</div><div class='add'>+        return read_uint64(&amp;p);</div><div class='add'>+    } else {</div><div class='add'>+        fprintf(stderr,"unknown address_size:%d", reader-&gt;address_size);</div><div class='add'>+        abort();</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static uintptr_t</div><div class='del'>-ranges_include(DebugInfoReader *reader, ranges_t *ptr, uint64_t addr)</div><div class='add'>+ranges_include(DebugInfoReader *reader, ranges_t *ptr, uint64_t addr, rnglists_header_t *rnglists_header)</div><div class='ctx'> {</div><div class='ctx'>     if (ptr-&gt;high_pc_set) {</div><div class='ctx'>         if (ptr-&gt;ranges_set || !ptr-&gt;low_pc_set) {</div><div class='hunk'>@@ -1360,8 +1591,66 @@ ranges_include(DebugInfoReader *reader, ranges_t *ptr, uint64_t addr)</div><div class='ctx'>     }</div><div class='ctx'>     else if (ptr-&gt;ranges_set) {</div><div class='ctx'>         /* TODO: support base address selection entry */</div><div class='del'>-        char *p = reader-&gt;obj-&gt;debug_ranges.ptr + ptr-&gt;ranges;</div><div class='add'>+        const char *p;</div><div class='ctx'>         uint64_t base = ptr-&gt;low_pc_set ? ptr-&gt;low_pc : reader-&gt;current_low_pc;</div><div class='add'>+        bool base_valid = true;</div><div class='add'>+        if (reader-&gt;current_version &gt;= 5) {</div><div class='add'>+            if (rnglists_header-&gt;offset_entry_count == 0) {</div><div class='add'>+                // DW_FORM_sec_offset</div><div class='add'>+                p = reader-&gt;obj-&gt;debug_rnglists.ptr + ptr-&gt;ranges + reader-&gt;current_rnglists_base;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                // DW_FORM_rnglistx</div><div class='add'>+                const char *offset_array = reader-&gt;obj-&gt;debug_rnglists.ptr + reader-&gt;current_rnglists_base;</div><div class='add'>+                if (rnglists_header-&gt;format == 4) {</div><div class='add'>+                    p = offset_array + ((uint32_t *)offset_array)[ptr-&gt;ranges];</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    p = offset_array + ((uint64_t *)offset_array)[ptr-&gt;ranges];</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            for (;;) {</div><div class='add'>+                uint8_t rle = read_uint8(&amp;p);</div><div class='add'>+                uintptr_t from = 0, to = 0;</div><div class='add'>+                if (rle == DW_RLE_end_of_list) break;</div><div class='add'>+                switch (rle) {</div><div class='add'>+                  case DW_RLE_base_addressx:</div><div class='add'>+                    uleb128(&amp;p);</div><div class='add'>+                    base_valid = false; /* not supported yet */</div><div class='add'>+                    break;</div><div class='add'>+                  case DW_RLE_startx_endx:</div><div class='add'>+                    uleb128(&amp;p);</div><div class='add'>+                    uleb128(&amp;p);</div><div class='add'>+                    break;</div><div class='add'>+                  case DW_RLE_startx_length:</div><div class='add'>+                    uleb128(&amp;p);</div><div class='add'>+                    uleb128(&amp;p);</div><div class='add'>+                    break;</div><div class='add'>+                  case DW_RLE_offset_pair:</div><div class='add'>+                    if (!base_valid) break;</div><div class='add'>+                    from = (uintptr_t)base + uleb128(&amp;p);</div><div class='add'>+                    to = (uintptr_t)base + uleb128(&amp;p);</div><div class='add'>+                    break;</div><div class='add'>+                  case DW_RLE_base_address:</div><div class='add'>+                    base = read_dw_form_addr(reader, &amp;p);</div><div class='add'>+                    base_valid = true;</div><div class='add'>+                    break;</div><div class='add'>+                  case DW_RLE_start_end:</div><div class='add'>+                    from = (uintptr_t)read_dw_form_addr(reader, &amp;p);</div><div class='add'>+                    to = (uintptr_t)read_dw_form_addr(reader, &amp;p);</div><div class='add'>+                    break;</div><div class='add'>+                  case DW_RLE_start_length:</div><div class='add'>+                    from = (uintptr_t)read_dw_form_addr(reader, &amp;p);</div><div class='add'>+                    to = from + uleb128(&amp;p);</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+                if (from &lt;= addr &amp;&amp; addr &lt; to) {</div><div class='add'>+                    return from;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            return false;</div><div class='add'>+        }</div><div class='add'>+        p = reader-&gt;obj-&gt;debug_ranges.ptr + ptr-&gt;ranges;</div><div class='ctx'>         for (;;) {</div><div class='ctx'>             uintptr_t from = read_uintptr(&amp;p);</div><div class='ctx'>             uintptr_t to = read_uintptr(&amp;p);</div><div class='hunk'>@@ -1371,7 +1660,7 @@ ranges_include(DebugInfoReader *reader, ranges_t *ptr, uint64_t addr)</div><div class='ctx'>                 base = to;</div><div class='ctx'>             }</div><div class='ctx'>             else if (base + from &lt;= addr &amp;&amp; addr &lt; base + to) {</div><div class='del'>-                return from;</div><div class='add'>+                return (uintptr_t)base + from;</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='hunk'>@@ -1429,6 +1718,7 @@ di_read_cu(DebugInfoReader *reader)</div><div class='ctx'>     }</div><div class='ctx'>     reader-&gt;cu_end = reader-&gt;p + unit_length;</div><div class='ctx'>     version = read_uint16(&amp;reader-&gt;p);</div><div class='add'>+    reader-&gt;current_version = version;</div><div class='ctx'>     if (version &gt; 5) {</div><div class='ctx'>         return -1;</div><div class='ctx'>     }</div><div class='hunk'>@@ -1461,30 +1751,76 @@ di_read_cu(DebugInfoReader *reader)</div><div class='ctx'>             break;</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='add'>+        reader-&gt;current_str_offsets_base = 0;</div><div class='add'>+        reader-&gt;current_addr_base = 0;</div><div class='add'>+        reader-&gt;current_rnglists_base = 0;</div><div class='add'>+</div><div class='add'>+        DebugInfoValue low_pc = {{}};</div><div class='ctx'>         /* enumerate abbrev */</div><div class='ctx'>         for (;;) {</div><div class='ctx'>             DebugInfoValue v = {{}};</div><div class='ctx'>             if (!di_read_record(reader, &amp;v)) break;</div><div class='ctx'>             switch (v.at) {</div><div class='ctx'>               case DW_AT_low_pc:</div><div class='del'>-                reader-&gt;current_low_pc = v.as.uint64;</div><div class='add'>+                // clang may output DW_AT_addr_base after DW_AT_low_pc.</div><div class='add'>+                // We need to resolve the DW_FORM_addr* after DW_AT_addr_base is parsed.</div><div class='add'>+                low_pc = v;</div><div class='add'>+                break;</div><div class='add'>+              case DW_AT_str_offsets_base:</div><div class='add'>+                reader-&gt;current_str_offsets_base = v.as.uint64;</div><div class='add'>+                break;</div><div class='add'>+              case DW_AT_addr_base:</div><div class='add'>+                reader-&gt;current_addr_base = v.as.uint64;</div><div class='add'>+                break;</div><div class='add'>+              case DW_AT_rnglists_base:</div><div class='add'>+                reader-&gt;current_rnglists_base = v.as.uint64;</div><div class='ctx'>                 break;</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='add'>+        // Resolve the DW_FORM_addr of DW_AT_low_pc</div><div class='add'>+        switch (low_pc.type) {</div><div class='add'>+            case VAL_uint:</div><div class='add'>+                reader-&gt;current_low_pc = low_pc.as.uint64;</div><div class='add'>+                break;</div><div class='add'>+            case VAL_addr:</div><div class='add'>+                {</div><div class='add'>+                    addr_header_t header;</div><div class='add'>+                    addr_header_init(reader-&gt;obj, &amp;header);</div><div class='add'>+                    reader-&gt;current_low_pc = read_addr(&amp;header, reader-&gt;current_addr_base, low_pc.as.addr_idx);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+        }</div><div class='ctx'>     } while (0);</div><div class='ctx'> #endif</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-read_abstract_origin(DebugInfoReader *reader, uint64_t abstract_origin, line_info_t *line)</div><div class='add'>+read_abstract_origin(DebugInfoReader *reader, uint64_t form, uint64_t abstract_origin, line_info_t *line)</div><div class='ctx'> {</div><div class='del'>-    char *p = reader-&gt;p;</div><div class='del'>-    char *q = reader-&gt;q;</div><div class='add'>+    const char *p = reader-&gt;p;</div><div class='add'>+    const char *q = reader-&gt;q;</div><div class='ctx'>     int level = reader-&gt;level;</div><div class='ctx'>     DIE die;</div><div class='ctx'> </div><div class='del'>-    reader-&gt;p = reader-&gt;current_cu + abstract_origin;</div><div class='add'>+    switch (form) {</div><div class='add'>+      case DW_FORM_ref1:</div><div class='add'>+      case DW_FORM_ref2:</div><div class='add'>+      case DW_FORM_ref4:</div><div class='add'>+      case DW_FORM_ref8:</div><div class='add'>+      case DW_FORM_ref_udata:</div><div class='add'>+        reader-&gt;p = reader-&gt;current_cu + abstract_origin;</div><div class='add'>+        break;</div><div class='add'>+      case DW_FORM_ref_addr:</div><div class='add'>+        goto finish; /* not supported yet */</div><div class='add'>+      case DW_FORM_ref_sig8:</div><div class='add'>+        goto finish; /* not supported yet */</div><div class='add'>+      case DW_FORM_ref_sup4:</div><div class='add'>+      case DW_FORM_ref_sup8:</div><div class='add'>+        goto finish; /* not supported yet */</div><div class='add'>+      default:</div><div class='add'>+        goto finish;</div><div class='add'>+    }</div><div class='ctx'>     if (!di_read_die(reader, &amp;die)) goto finish;</div><div class='ctx'> </div><div class='ctx'>     /* enumerate abbrev */</div><div class='hunk'>@@ -1507,6 +1843,13 @@ read_abstract_origin(DebugInfoReader *reader, uint64_t abstract_origin, line_inf</div><div class='ctx'> static void</div><div class='ctx'> debug_info_read(DebugInfoReader *reader, int num_traces, void **traces,</div><div class='ctx'>          line_info_t *lines, int offset) {</div><div class='add'>+</div><div class='add'>+    addr_header_t addr_header = {};</div><div class='add'>+    addr_header_init(reader-&gt;obj, &amp;addr_header);</div><div class='add'>+</div><div class='add'>+    rnglists_header_t rnglists_header = {};</div><div class='add'>+    rnglists_header_init(reader-&gt;obj, &amp;rnglists_header);</div><div class='add'>+</div><div class='ctx'>     while (reader-&gt;p &lt; reader-&gt;cu_end) {</div><div class='ctx'>         DIE die;</div><div class='ctx'>         ranges_t ranges = {};</div><div class='hunk'>@@ -1533,7 +1876,7 @@ debug_info_read(DebugInfoReader *reader, int num_traces, void **traces,</div><div class='ctx'>                 line.sname = get_cstr_value(&amp;v);</div><div class='ctx'>                 break;</div><div class='ctx'>               case DW_AT_call_file:</div><div class='del'>-                fill_filename((int)v.as.uint64, reader-&gt;debug_line_directories, reader-&gt;debug_line_files, &amp;line, reader-&gt;obj);</div><div class='add'>+                fill_filename((int)v.as.uint64, reader-&gt;debug_line_format, reader-&gt;debug_line_version, reader-&gt;debug_line_directories, reader-&gt;debug_line_files, &amp;line, reader-&gt;obj);</div><div class='ctx'>                 break;</div><div class='ctx'>               case DW_AT_call_line:</div><div class='ctx'>                 line.line = (int)v.as.uint64;</div><div class='hunk'>@@ -1541,7 +1884,7 @@ debug_info_read(DebugInfoReader *reader, int num_traces, void **traces,</div><div class='ctx'>               case DW_AT_low_pc:</div><div class='ctx'>               case DW_AT_high_pc:</div><div class='ctx'>               case DW_AT_ranges:</div><div class='del'>-                ranges_set(&amp;ranges, &amp;v);</div><div class='add'>+                ranges_set(&amp;ranges, &amp;v, &amp;addr_header, reader-&gt;current_addr_base);</div><div class='ctx'>                 break;</div><div class='ctx'>               case DW_AT_declaration:</div><div class='ctx'>                 goto skip_die;</div><div class='hunk'>@@ -1549,7 +1892,7 @@ debug_info_read(DebugInfoReader *reader, int num_traces, void **traces,</div><div class='ctx'>                 /* 1 or 3 */</div><div class='ctx'>                 break; /* goto skip_die; */</div><div class='ctx'>               case DW_AT_abstract_origin:</div><div class='del'>-                read_abstract_origin(reader, v.as.uint64, &amp;line);</div><div class='add'>+                read_abstract_origin(reader, v.form, v.as.uint64, &amp;line);</div><div class='ctx'>                 break; /* goto skip_die; */</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='hunk'>@@ -1558,9 +1901,9 @@ debug_info_read(DebugInfoReader *reader, int num_traces, void **traces,</div><div class='ctx'>         for (int i=offset; i &lt; num_traces; i++) {</div><div class='ctx'>             uintptr_t addr = (uintptr_t)traces[i];</div><div class='ctx'>             uintptr_t offset = addr - reader-&gt;obj-&gt;base_addr + reader-&gt;obj-&gt;vmaddr;</div><div class='del'>-            uintptr_t saddr = ranges_include(reader, &amp;ranges, offset);</div><div class='add'>+            uintptr_t saddr = ranges_include(reader, &amp;ranges, offset, &amp;rnglists_header);</div><div class='ctx'>             if (saddr) {</div><div class='del'>-                /* fprintf(stderr, "%d:%tx: %d %lx-&gt;%lx %x %s: %s/%s %d %s %s %s\n",__LINE__,die.pos, i,addr,offset, die.tag,line.sname,line.dirname,line.filename,line.line,reader-&gt;obj-&gt;path,line.sname,lines[i].sname); */</div><div class='add'>+                /* fprintf(stdout, "%d:%tx: %d %lx-&gt;%lx %x %s: %s/%s %d %s %s %s\n",__LINE__,die.pos, i,addr,offset, die.tag,line.sname,line.dirname,line.filename,line.line,reader-&gt;obj-&gt;path,line.sname,lines[i].sname); */</div><div class='ctx'>                 if (lines[i].sname) {</div><div class='ctx'>                     line_info_t *lp = malloc(sizeof(line_info_t));</div><div class='ctx'>                     memcpy(lp, &amp;lines[i], sizeof(line_info_t));</div><div class='hunk'>@@ -1579,10 +1922,59 @@ debug_info_read(DebugInfoReader *reader, int num_traces, void **traces,</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+// This function parses the following attributes of Line Number Program Header in DWARF 5:</div><div class='add'>+//</div><div class='add'>+// * directory_entry_format_count</div><div class='add'>+// * directory_entry_format</div><div class='add'>+// * directories_count</div><div class='add'>+// * directories</div><div class='add'>+//</div><div class='add'>+// or</div><div class='add'>+//</div><div class='add'>+// * file_name_entry_format_count</div><div class='add'>+// * file_name_entry_format</div><div class='add'>+// * file_names_count</div><div class='add'>+// * file_names</div><div class='add'>+//</div><div class='add'>+// It records DW_LNCT_path and DW_LNCT_directory_index at the index "idx".</div><div class='add'>+static const char *</div><div class='add'>+parse_ver5_debug_line_header(const char *p, int idx, uint8_t format, obj_info_t *obj, const char **out_path, uint64_t *out_directory_index) {</div><div class='add'>+    int i, j;</div><div class='add'>+    int entry_format_count = *(uint8_t *)p++;</div><div class='add'>+    const char *entry_format = p;</div><div class='add'>+</div><div class='add'>+    /* skip the part of entry_format */</div><div class='add'>+    for (i = 0; i &lt; entry_format_count * 2; i++) uleb128(&amp;p);</div><div class='add'>+</div><div class='add'>+    int entry_count = (int)uleb128(&amp;p);</div><div class='add'>+</div><div class='add'>+    DebugInfoReader reader;</div><div class='add'>+    debug_info_reader_init(&amp;reader, obj);</div><div class='add'>+    reader.format = format;</div><div class='add'>+    reader.p = p;</div><div class='add'>+    for (j = 0; j &lt; entry_count; j++) {</div><div class='add'>+        const char *format = entry_format;</div><div class='add'>+        for (i = 0; i &lt; entry_format_count; i++) {</div><div class='add'>+            DebugInfoValue v = {{}};</div><div class='add'>+            unsigned long dw_lnct = uleb128(&amp;format);</div><div class='add'>+            unsigned long dw_form = uleb128(&amp;format);</div><div class='add'>+            debug_info_reader_read_value(&amp;reader, dw_form, &amp;v);</div><div class='add'>+            if (dw_lnct == 1 /* DW_LNCT_path */ &amp;&amp; v.type == VAL_cstr &amp;&amp; out_path)</div><div class='add'>+                *out_path = v.as.ptr + v.off;</div><div class='add'>+            if (dw_lnct == 2 /* DW_LNCT_directory_index */ &amp;&amp; v.type == VAL_uint &amp;&amp; out_directory_index)</div><div class='add'>+                *out_directory_index = v.as.uint64;</div><div class='add'>+        }</div><div class='add'>+        if (j == idx) return 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return reader.p;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #ifdef USE_ELF</div><div class='ctx'> static unsigned long</div><div class='ctx'> uncompress_debug_section(ElfW(Shdr) *shdr, char *file, char **ptr)</div><div class='ctx'> {</div><div class='add'>+    *ptr = NULL;</div><div class='ctx'> #ifdef SUPPORT_COMPRESSED_DEBUG_LINE</div><div class='ctx'>     ElfW(Chdr) *chdr = (ElfW(Chdr) *)(file + shdr-&gt;sh_offset);</div><div class='ctx'>     unsigned long destsize = chdr-&gt;ch_size;</div><div class='hunk'>@@ -1603,6 +1995,7 @@ uncompress_debug_section(ElfW(Shdr) *shdr, char *file, char **ptr)</div><div class='ctx'> </div><div class='ctx'> fail:</div><div class='ctx'>     free(*ptr);</div><div class='add'>+    *ptr = NULL;</div><div class='ctx'> #endif</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -1617,6 +2010,7 @@ fill_lines(int num_traces, void **traces, int check_debuglink,</div><div class='ctx'>     ElfW(Ehdr) *ehdr;</div><div class='ctx'>     ElfW(Shdr) *shdr, *shstr_shdr;</div><div class='ctx'>     ElfW(Shdr) *gnu_debuglink_shdr = NULL;</div><div class='add'>+    ElfW(Shdr) *note_gnu_build_id = NULL;</div><div class='ctx'>     int fd;</div><div class='ctx'>     off_t filesize;</div><div class='ctx'>     char *file;</div><div class='hunk'>@@ -1689,6 +2083,11 @@ fill_lines(int num_traces, void **traces, int check_debuglink,</div><div class='ctx'> 	    /* if (!strcmp(section_name, ".dynsym")) */</div><div class='ctx'> 	    dynsym_shdr = shdr + i;</div><div class='ctx'> 	    break;</div><div class='add'>+          case SHT_NOTE:</div><div class='add'>+            if (!strcmp(section_name, ".note.gnu.build-id")) {</div><div class='add'>+                note_gnu_build_id = shdr + i;</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='ctx'> 	  case SHT_PROGBITS:</div><div class='ctx'> 	    if (!strcmp(section_name, ".gnu_debuglink")) {</div><div class='ctx'> 		gnu_debuglink_shdr = shdr + i;</div><div class='hunk'>@@ -1699,7 +2098,11 @@ fill_lines(int num_traces, void **traces, int check_debuglink,</div><div class='ctx'>                     ".debug_info",</div><div class='ctx'>                     ".debug_line",</div><div class='ctx'>                     ".debug_ranges",</div><div class='del'>-                    ".debug_str"</div><div class='add'>+                    ".debug_str_offsets",</div><div class='add'>+                    ".debug_addr",</div><div class='add'>+                    ".debug_rnglists",</div><div class='add'>+                    ".debug_str",</div><div class='add'>+                    ".debug_line_str"</div><div class='ctx'>                 };</div><div class='ctx'> </div><div class='ctx'>                 for (j=0; j &lt; DWARF_SECTION_COUNT; j++) {</div><div class='hunk'>@@ -1804,6 +2207,13 @@ use_symtab:</div><div class='ctx'> 			     num_traces, traces,</div><div class='ctx'> 			     objp, lines, offset);</div><div class='ctx'> 	}</div><div class='add'>+        if (note_gnu_build_id &amp;&amp; check_debuglink) {</div><div class='add'>+            ElfW(Nhdr) *nhdr = (ElfW(Nhdr)*) (file + note_gnu_build_id-&gt;sh_offset);</div><div class='add'>+            const char *build_id = (char *)(nhdr + 1) + nhdr-&gt;n_namesz;</div><div class='add'>+            follow_debuglink_build_id(build_id, nhdr-&gt;n_descsz,</div><div class='add'>+			       num_traces, traces,</div><div class='add'>+			       objp, lines, offset);</div><div class='add'>+        }</div><div class='ctx'> 	goto finish;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -1897,6 +2307,7 @@ fill_lines(int num_traces, void **traces, int check_debuglink,</div><div class='ctx'>         p = file;</div><div class='ctx'>     }</div><div class='ctx'>     else if (header-&gt;magic == FAT_CIGAM) {</div><div class='add'>+        struct LP(mach_header) *mhp = _NSGetMachExecuteHeader();</div><div class='ctx'>         struct fat_header *fat = (struct fat_header *)file;</div><div class='ctx'>         char *q = file + sizeof(*fat);</div><div class='ctx'>         uint32_t nfat_arch = __builtin_bswap32(fat-&gt;nfat_arch);</div><div class='hunk'>@@ -1906,9 +2317,9 @@ fill_lines(int num_traces, void **traces, int check_debuglink,</div><div class='ctx'>             cpu_type_t cputype = __builtin_bswap32(arch-&gt;cputype);</div><div class='ctx'>             cpu_subtype_t cpusubtype = __builtin_bswap32(arch-&gt;cpusubtype);</div><div class='ctx'>             uint32_t offset = __builtin_bswap32(arch-&gt;offset);</div><div class='del'>-            /* fprintf(stderr,"%d: fat %d %x/%x %x/%x\n",__LINE__, i, _mh_execute_header.cputype,_mh_execute_header.cpusubtype, cputype,cpusubtype); */</div><div class='del'>-            if (_mh_execute_header.cputype == cputype &amp;&amp;</div><div class='del'>-                    (_mh_execute_header.cpusubtype &amp; ~CPU_SUBTYPE_MASK) == cpusubtype) {</div><div class='add'>+            /* fprintf(stderr,"%d: fat %d %x/%x %x/%x\n",__LINE__, i, mhp-&gt;cputype,mhp-&gt;cpusubtype, cputype,cpusubtype); */</div><div class='add'>+            if (mhp-&gt;cputype == cputype &amp;&amp;</div><div class='add'>+                    (cpu_subtype_t)(mhp-&gt;cpusubtype &amp; ~CPU_SUBTYPE_MASK) == cpusubtype) {</div><div class='ctx'>                 p = file + offset;</div><div class='ctx'>                 file = p;</div><div class='ctx'>                 header = (struct LP(mach_header) *)p;</div><div class='hunk'>@@ -1947,7 +2358,11 @@ found_mach_header:</div><div class='ctx'>                     "__debug_info",</div><div class='ctx'>                     "__debug_line",</div><div class='ctx'>                     "__debug_ranges",</div><div class='del'>-                    "__debug_str"</div><div class='add'>+                    "__debug_str_offsets",</div><div class='add'>+                    "__debug_addr",</div><div class='add'>+                    "__debug_rnglists",</div><div class='add'>+                    "__debug_str",</div><div class='add'>+                    "__debug_line_str",</div><div class='ctx'>                 };</div><div class='ctx'>                 struct LP(segment_command) *scmd = (struct LP(segment_command) *)lcmd;</div><div class='ctx'>                 if (strcmp(scmd-&gt;segname, "__TEXT") == 0) {</div><div class='hunk'>@@ -1981,10 +2396,10 @@ found_mach_header:</div><div class='ctx'>             {</div><div class='ctx'>                 struct symtab_command *cmd = (struct symtab_command *)lcmd;</div><div class='ctx'>                 struct LP(nlist) *nl = (struct LP(nlist) *)(file + cmd-&gt;symoff);</div><div class='del'>-                char *strtab = file + cmd-&gt;stroff, *sname;</div><div class='add'>+                char *strtab = file + cmd-&gt;stroff, *sname = 0;</div><div class='ctx'>                 uint32_t j;</div><div class='del'>-                uintptr_t saddr;</div><div class='del'>-                /* kprintf("[%2d]: %x/symtab %p\n", i, cmd-&gt;cmd, p); */</div><div class='add'>+                uintptr_t saddr = 0;</div><div class='add'>+                /* kprintf("[%2d]: %x/symtab %p\n", i, cmd-&gt;cmd, (void *)p); */</div><div class='ctx'>                 for (j = 0; j &lt; cmd-&gt;nsyms; j++) {</div><div class='ctx'>                     uintptr_t symsize, d;</div><div class='ctx'>                     struct LP(nlist) *e = &amp;nl[j];</div><div class='hunk'>@@ -2036,7 +2451,7 @@ fail:</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #define HAVE_MAIN_EXE_PATH</div><div class='del'>-#if defined(__FreeBSD__)</div><div class='add'>+#if defined(__FreeBSD__) || defined(__DragonFly__)</div><div class='ctx'> # include &lt;sys/sysctl.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> /* ssize_t main_exe_path(void)</div><div class='hunk'>@@ -2045,16 +2460,21 @@ fail:</div><div class='ctx'>  * and returns strlen(binary_filename).</div><div class='ctx'>  * it is NUL terminated.</div><div class='ctx'>  */</div><div class='del'>-#if defined(__linux__)</div><div class='add'>+#if defined(__linux__) || defined(__NetBSD__)</div><div class='ctx'> static ssize_t</div><div class='ctx'> main_exe_path(void)</div><div class='ctx'> {</div><div class='del'>-# define PROC_SELF_EXE "/proc/self/exe"</div><div class='add'>+# if defined(__linux__)</div><div class='add'>+#  define PROC_SELF_EXE "/proc/self/exe"</div><div class='add'>+# elif defined(__NetBSD__)</div><div class='add'>+#  define PROC_SELF_EXE "/proc/curproc/exe"</div><div class='add'>+# endif</div><div class='ctx'>     ssize_t len = readlink(PROC_SELF_EXE, binary_filename, PATH_MAX);</div><div class='add'>+    if (len &lt; 0) return 0;</div><div class='ctx'>     binary_filename[len] = 0;</div><div class='ctx'>     return len;</div><div class='ctx'> }</div><div class='del'>-#elif defined(__FreeBSD__)</div><div class='add'>+#elif defined(__FreeBSD__) || defined(__DragonFly__)</div><div class='ctx'> static ssize_t</div><div class='ctx'> main_exe_path(void)</div><div class='ctx'> {</div><div class='hunk'>@@ -2068,6 +2488,15 @@ main_exe_path(void)</div><div class='ctx'>     len--; /* sysctl sets strlen+1 */</div><div class='ctx'>     return len;</div><div class='ctx'> }</div><div class='add'>+#elif defined(HAVE_LIBPROC_H)</div><div class='add'>+static ssize_t</div><div class='add'>+main_exe_path(void)</div><div class='add'>+{</div><div class='add'>+    int len = proc_pidpath(getpid(), binary_filename, PATH_MAX);</div><div class='add'>+    if (len == 0) return 0;</div><div class='add'>+    binary_filename[len] = 0;</div><div class='add'>+    return len;</div><div class='add'>+}</div><div class='ctx'> #else</div><div class='ctx'> #undef HAVE_MAIN_EXE_PATH</div><div class='ctx'> #endif</div><div class='hunk'>@@ -2089,9 +2518,12 @@ print_line0(line_info_t *line, void *address)</div><div class='ctx'>     else if (!line-&gt;path) {</div><div class='ctx'>         kprintf("[0x%"PRIxPTR"]\n", addr);</div><div class='ctx'>     }</div><div class='del'>-    else if (!line-&gt;saddr || !line-&gt;sname) {</div><div class='add'>+    else if (!line-&gt;sname) {</div><div class='ctx'>         kprintf("%s(0x%"PRIxPTR") [0x%"PRIxPTR"]\n", line-&gt;path, addr-line-&gt;base_addr, addr);</div><div class='ctx'>     }</div><div class='add'>+    else if (!line-&gt;saddr) {</div><div class='add'>+        kprintf("%s(%s) [0x%"PRIxPTR"]\n", line-&gt;path, line-&gt;sname, addr);</div><div class='add'>+    }</div><div class='ctx'>     else if (line-&gt;line &lt;= 0) {</div><div class='ctx'>         kprintf("%s(%s+0x%"PRIxPTR") [0x%"PRIxPTR"]\n", line-&gt;path, line-&gt;sname,</div><div class='ctx'>                 d, addr);</div><div class='hunk'>@@ -2128,6 +2560,7 @@ rb_dump_backtrace_with_lines(int num_traces, void **traces)</div><div class='ctx'>     obj_info_t *obj = NULL;</div><div class='ctx'>     /* 2 is NULL + main executable */</div><div class='ctx'>     void **dladdr_fbases = (void **)calloc(num_traces+2, sizeof(void *));</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_MAIN_EXE_PATH</div><div class='ctx'>     char *main_path = NULL; /* used on printing backtrace */</div><div class='ctx'>     ssize_t len;</div><div class='hunk'>@@ -2158,8 +2591,8 @@ rb_dump_backtrace_with_lines(int num_traces, void **traces)</div><div class='ctx'> 	    /* if the binary is strip-ed, this may effect */</div><div class='ctx'> 	    for (p=dladdr_fbases; *p; p++) {</div><div class='ctx'> 		if (*p == info.dli_fbase) {</div><div class='del'>-		    lines[i].path = info.dli_fname;</div><div class='del'>-		    lines[i].sname = info.dli_sname;</div><div class='add'>+		    if (info.dli_fname) lines[i].path = info.dli_fname;</div><div class='add'>+		    if (info.dli_sname) lines[i].sname = info.dli_sname;</div><div class='ctx'> 		    goto next_line;</div><div class='ctx'> 		}</div><div class='ctx'> 	    }</div><div class='hunk'>@@ -2169,9 +2602,11 @@ rb_dump_backtrace_with_lines(int num_traces, void **traces)</div><div class='ctx'> 	    obj-&gt;base_addr = (uintptr_t)info.dli_fbase;</div><div class='ctx'> 	    path = info.dli_fname;</div><div class='ctx'> 	    obj-&gt;path = path;</div><div class='del'>-	    lines[i].path = path;</div><div class='del'>-            lines[i].sname = info.dli_sname;</div><div class='del'>-            lines[i].saddr = (uintptr_t)info.dli_saddr;</div><div class='add'>+	    if (path) lines[i].path = path;</div><div class='add'>+            if (info.dli_sname) {</div><div class='add'>+                lines[i].sname = info.dli_sname;</div><div class='add'>+                lines[i].saddr = (uintptr_t)info.dli_saddr;</div><div class='add'>+            }</div><div class='ctx'> 	    strlcpy(binary_filename, path, PATH_MAX);</div><div class='ctx'> 	    if (fill_lines(num_traces, traces, 1, &amp;obj, lines, i) == (uintptr_t)-1)</div><div class='ctx'> 		break;</div><div class='head'>diff --git a/addr2line.h b/addr2line.h<br/>index 4f6cf179ef..f09b665800 100644<br/>--- a/<a href='/ruby.git/tree/addr2line.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>addr2line.h</a><br/>+++ b/<a href='/ruby.git/tree/addr2line.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>addr2line.h</a></div><div class='hunk'>@@ -1,3 +1,5 @@</div><div class='add'>+#ifndef RUBY_ADDR2LINE_H</div><div class='add'>+#define RUBY_ADDR2LINE_H</div><div class='ctx'> /**********************************************************************</div><div class='ctx'> </div><div class='ctx'>   addr2line.h -</div><div class='hunk'>@@ -8,9 +10,6 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#ifndef RUBY_ADDR2LINE_H</div><div class='del'>-#define RUBY_ADDR2LINE_H</div><div class='del'>-</div><div class='ctx'> #if (defined(USE_ELF) || defined(HAVE_MACH_O_LOADER_H))</div><div class='ctx'> </div><div class='ctx'> void</div><div class='head'>diff --git a/appveyor.yml b/appveyor.yml<br/>deleted file mode 100644<br/>index 3bf1568cd9..0000000000<br/>--- a/<a href='/ruby.git/tree/appveyor.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>appveyor.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,145 +0,0 @@</div><div class='del'>----</div><div class='del'>-version: '{build}'</div><div class='del'>-shallow_clone: true</div><div class='del'>-platform:</div><div class='del'>-  - x64</div><div class='del'>-environment:</div><div class='del'>-  ruby_version: "24-%Platform%"</div><div class='del'>-  zlib_version: "1.2.11"</div><div class='del'>-  matrix:</div><div class='del'>-    # to reduce time for finishing all jobs, run the slowest msys2 build first.</div><div class='del'>-    - build: msys2</div><div class='del'>-      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015</div><div class='del'>-    - build: vs</div><div class='del'>-      vs: 120</div><div class='del'>-      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013</div><div class='del'>-    - build: vs</div><div class='del'>-      vs: 140</div><div class='del'>-      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015</div><div class='del'>-  GEMS_FOR_TEST: "timezone tzinfo"</div><div class='del'>-notifications:</div><div class='del'>-  - provider: Webhook</div><div class='del'>-    url:</div><div class='del'>-      secure: iMINHMS0nZabaDsxN9omRDsekxzVvAAzEq5ev7lN6vZ6r9zNhl3/F/7POIVyahAwVFpRDeQT/iUugpAGWmOt3eGL/lZIdqiJFZ9DjPSkP68= # #alerts</div><div class='del'>-    method: POST</div><div class='del'>-    # "icon_url" is the url used by `provider: Slack`</div><div class='del'>-    body: &gt;-</div><div class='del'>-      {{^isPullRequest}}</div><div class='del'>-        {</div><div class='del'>-          "attachments": [</div><div class='del'>-            {</div><div class='del'>-              "title": "Build {{projectName}} {{buildVersion}} {{status}}",</div><div class='del'>-              "fallback": "AppVeyor Build {{projectName}} {{buildVersion}} {{status}}",</div><div class='del'>-              "title_link": "{{buildUrl}}",</div><div class='del'>-              "text": "Commit &lt;{{commitUrl}}|{{commitId}}&gt; by {{commitAuthor}} on {{commitDate}}: _{{commitMessage}}_",</div><div class='del'>-              {{#passed}}</div><div class='del'>-                "color": "#44ee44"</div><div class='del'>-              {{/passed}}</div><div class='del'>-              {{#failed}}</div><div class='del'>-                "color": "#ee4444"</div><div class='del'>-              {{/failed}}</div><div class='del'>-            }</div><div class='del'>-          ],</div><div class='del'>-          "icon_url": "https://slack-files2.s3-us-west-2.amazonaws.com/bot_icons/2018-02-10/314363543719_48.png",</div><div class='del'>-          "username": "AppVeyor CI"</div><div class='del'>-        }</div><div class='del'>-      {{/isPullRequest}}</div><div class='del'>-    on_build_success: false</div><div class='del'>-    on_build_failure: true</div><div class='del'>-    on_build_status_changed: true</div><div class='del'>-for:</div><div class='del'>--</div><div class='del'>-  matrix:</div><div class='del'>-    only:</div><div class='del'>-      - build: vs</div><div class='del'>-  install:</div><div class='del'>-    - ver</div><div class='del'>-    - chcp</div><div class='del'>-    - SET BITS=%Platform:x86=32%</div><div class='del'>-    - SET BITS=%BITS:x=%</div><div class='del'>-    - SET OPENSSL_DIR=c:\OpenSSL-Win%BITS%</div><div class='del'>-    - CALL SET vcvars=%%^VS%VS%COMNTOOLS^%%..\..\VC\vcvarsall.bat</div><div class='del'>-    - SET vcvars</div><div class='del'>-    - '"%vcvars%" %Platform:x64=amd64%'</div><div class='del'>-    - SET ruby_path=C:\Ruby%ruby_version:-x86=%</div><div class='del'>-    - SET PATH=\usr\local\bin;%ruby_path%\bin;%PATH%;C:\msys64\mingw64\bin;C:\msys64\usr\bin</div><div class='del'>-    - ruby --version</div><div class='del'>-    - 'cl'</div><div class='del'>-    - echo&gt; Makefile srcdir=.</div><div class='del'>-    - echo&gt;&gt; Makefile MSC_VER=0</div><div class='del'>-    - echo&gt;&gt; Makefile RT=none</div><div class='del'>-    - echo&gt;&gt; Makefile RT_VER=0</div><div class='del'>-    - echo&gt;&gt; Makefile BUILTIN_ENCOBJS=nul</div><div class='del'>-    - type win32\Makefile.sub &gt;&gt; Makefile</div><div class='del'>-    - nmake %mflags% touch-unicode-files</div><div class='del'>-    - nmake %mflags% up incs UNICODE_FILES=.</div><div class='del'>-    - del Makefile</div><div class='del'>-    - mkdir \usr\local\bin</div><div class='del'>-    - mkdir \usr\local\include</div><div class='del'>-    - mkdir \usr\local\lib</div><div class='del'>-    - appveyor DownloadFile https://zlib.net/zlib%zlib_version:.=%.zip</div><div class='del'>-    - 7z x -o%APPVEYOR_BUILD_FOLDER%\ext\zlib zlib%zlib_version:.=%.zip</div><div class='del'>-    - for %%I in (%OPENSSL_DIR%\*.dll) do mklink /h \usr\local\bin\%%~nxI %%I</div><div class='del'>-    - mkdir %Platform%-mswin_%vs%</div><div class='del'>-    - ps: Get-ChildItem "win32" -Recurse | foreach {$_.Attributes = 'Readonly'}</div><div class='del'>-    - ps: Get-Item $env:Platform"-mswin_"$env:vs | foreach {$_.Attributes = 'Normal'}</div><div class='del'>-  build_script:</div><div class='del'>-    - cd %APPVEYOR_BUILD_FOLDER%</div><div class='del'>-    - cd %Platform%-mswin_%vs%</div><div class='del'>-    - ..\win32\configure.bat --without-ext=+,dbm,gdbm,readline --with-opt-dir=/usr/local --with-openssl-dir=%OPENSSL_DIR:\=/%</div><div class='del'>-    - nmake -l</div><div class='del'>-    - nmake install-nodoc</div><div class='del'>-    - \usr\bin\ruby -v -e "p :locale =&gt; Encoding.find('locale'), :filesystem =&gt; Encoding.find('filesystem')"</div><div class='del'>-    - if not "%GEMS_FOR_TEST%" == "" \usr\bin\gem install --no-document %GEMS_FOR_TEST%</div><div class='del'>-  test_script:</div><div class='del'>-    - set /a JOBS=%NUMBER_OF_PROCESSORS%</div><div class='del'>-    - nmake -l "TESTOPTS=-v -q" btest</div><div class='del'>-    - nmake -l "TESTOPTS=-v -q" test-basic</div><div class='del'>-    - nmake -l "TESTOPTS=-q --subprocess-timeout-scale=3.0 --excludes=../test/excludes/_appveyor -j%JOBS% --exclude win32ole --exclude test_bignum --exclude test_syntax --exclude test_open-uri --exclude test_bundled_ca" test-all</div><div class='del'>-    # separately execute tests without -j which may crash worker with -j.</div><div class='del'>-    - nmake -l "TESTOPTS=-v --subprocess-timeout-scale=3.0 --excludes=../test/excludes/_appveyor" test-all TESTS="../test/win32ole ../test/ruby/test_bignum.rb ../test/ruby/test_syntax.rb ../test/open-uri/test_open-uri.rb ../test/rubygems/test_bundled_ca.rb"</div><div class='del'>-    - nmake -l test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows</div><div class='del'>--</div><div class='del'>-  matrix:</div><div class='del'>-    only:</div><div class='del'>-      - build: msys2</div><div class='del'>-  install:</div><div class='del'>-    - ver</div><div class='del'>-    - chcp</div><div class='del'>-    - set /a JOBS=%NUMBER_OF_PROCESSORS%</div><div class='del'>-    - set MSYS_NO_PATHCONV=1</div><div class='del'>-    - SET MSYSTEM=%Platform:x86=32%</div><div class='del'>-    - SET MSYSTEM=%MSYSTEM:x=MINGW%</div><div class='del'>-    - SET MSYS2_ARCH=%Platform:x86=i686%</div><div class='del'>-    - SET MSYS2_ARCH=%MSYS2_ARCH:x64=x86_64%</div><div class='del'>-    - set MSYSTEM_PREFIX=/mingw64</div><div class='del'>-    - set MINGW_CHOST=%MSYS2_ARCH%-w64-mingw32</div><div class='del'>-    - SET ruby_path=C:\Ruby%ruby_version:-x86=%</div><div class='del'>-    - cd ..</div><div class='del'>-    - mkdir build</div><div class='del'>-    - mkdir install</div><div class='del'>-    - SET PATH=%ruby_path%\bin;C:\msys64\%MSYSTEM%\bin;C:\msys64\usr\bin;%PATH%</div><div class='del'>-    - ruby --version</div><div class='del'>-  build_script:</div><div class='del'>-    # always update database</div><div class='del'>-    - pacman -Sy</div><div class='del'>-    - pacman -S --noconfirm --needed --noprogressbar mingw-w64-x86_64-toolchain</div><div class='del'>-    - pacman -S --noconfirm --needed --noprogressbar mingw-w64-x86_64-gdbm mingw-w64-x86_64-gmp mingw-w64-x86_64-libffi mingw-w64-x86_64-ncurses mingw-w64-x86_64-readline mingw-w64-x86_64-zlib</div><div class='del'>-    - cd %APPVEYOR_BUILD_FOLDER%</div><div class='del'>-    - set CFLAGS=-march=%MSYS2_ARCH:_=-% -mtune=generic -O3 -pipe</div><div class='del'>-    - set CXXFLAGS=%CFLAGS%</div><div class='del'>-    - set CPPFLAGS=-D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -DFD_SETSIZE=2048</div><div class='del'>-    - set LDFLAGS=-pipe</div><div class='del'>-    - sh -c "autoreconf -fi"</div><div class='del'>-    - cd ..\build</div><div class='del'>-    - sh ../ruby/configure --disable-install-doc --prefix=/. --build=%MINGW_CHOST% --host=%MINGW_CHOST% --target=%MINGW_CHOST%</div><div class='del'>-    - mingw32-make -j%JOBS% up</div><div class='del'>-    - mingw32-make -j%JOBS%</div><div class='del'>-    - mingw32-make DESTDIR=../install install-nodoc</div><div class='del'>-    - if not "%GEMS_FOR_TEST%" == "" ..\install\bin\gem install --no-document %GEMS_FOR_TEST%</div><div class='del'>-  test_script:</div><div class='del'>-    - mingw32-make test</div><div class='del'>-    - mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --subprocess-timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor -j %JOBS% --exclude win32ole --exclude test_open-uri"</div><div class='del'>-    # separately execute tests without -j which may crash worker with -j.</div><div class='del'>-    - mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --subprocess-timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor" TESTS="../ruby/test/win32ole ../ruby/test/open-uri/test_open-uri.rb"</div><div class='del'>-    - mingw32-make test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows</div><div class='head'>diff --git a/array.c b/array.c<br/>index 990bc076b1..b76e9a64a3 100644<br/>--- a/<a href='/ruby.git/tree/array.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>array.c</a><br/>+++ b/<a href='/ruby.git/tree/array.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>array.c</a></div><div class='hunk'>@@ -11,23 +11,65 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='add'>+#include "debug_counter.h"</div><div class='add'>+#include "id.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/array.h"</div><div class='add'>+#include "internal/compar.h"</div><div class='add'>+#include "internal/enum.h"</div><div class='add'>+#include "internal/gc.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/numeric.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/proc.h"</div><div class='add'>+#include "internal/rational.h"</div><div class='add'>+#include "internal/vm.h"</div><div class='add'>+#include "probes.h"</div><div class='ctx'> #include "ruby/encoding.h"</div><div class='del'>-#include "ruby/util.h"</div><div class='ctx'> #include "ruby/st.h"</div><div class='del'>-#include "probes.h"</div><div class='del'>-#include "id.h"</div><div class='del'>-#include "debug_counter.h"</div><div class='del'>-#include "gc.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='ctx'> #include "transient_heap.h"</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "builtin.h"</div><div class='ctx'> </div><div class='ctx'> #if !ARRAY_DEBUG</div><div class='add'>+# undef NDEBUG</div><div class='ctx'> # define NDEBUG</div><div class='ctx'> #endif</div><div class='ctx'> #include "ruby_assert.h"</div><div class='ctx'> </div><div class='ctx'> VALUE rb_cArray;</div><div class='ctx'> </div><div class='add'>+/* Flags of RArray</div><div class='add'>+ *</div><div class='add'>+ * 1:   RARRAY_EMBED_FLAG</div><div class='add'>+ *          The array is embedded (its contents follow the header, rather than</div><div class='add'>+ *          being on a separately allocated buffer).</div><div class='add'>+ * 2:   RARRAY_SHARED_FLAG (equal to ELTS_SHARED)</div><div class='add'>+ *          The array is shared. The buffer this array points to is owned by</div><div class='add'>+ *          another array (the shared root).</div><div class='add'>+ * if USE_RVARGC</div><div class='add'>+ * 3-9: RARRAY_EMBED_LEN</div><div class='add'>+ *          The length of the array when RARRAY_EMBED_FLAG is set.</div><div class='add'>+ * else</div><div class='add'>+ * 3-4: RARRAY_EMBED_LEN</div><div class='add'>+ *          The length of the array when RARRAY_EMBED_FLAG is set.</div><div class='add'>+ * endif</div><div class='add'>+ * 12:  RARRAY_SHARED_ROOT_FLAG</div><div class='add'>+ *          The array is a shared root that does reference counting. The buffer</div><div class='add'>+ *          this array points to is owned by this array but may be pointed to</div><div class='add'>+ *          by other arrays.</div><div class='add'>+ *          Note: Frozen arrays may be a shared root without this flag being</div><div class='add'>+ *                set. Frozen arrays do not have reference counting because</div><div class='add'>+ *                they cannot be modified. Not updating the reference count</div><div class='add'>+ *                improves copy-on-write performance. Their reference count is</div><div class='add'>+ *                assumed to be infinity.</div><div class='add'>+ * 13:  RARRAY_TRANSIENT_FLAG</div><div class='add'>+ *          The buffer of the array is allocated on the transient heap.</div><div class='add'>+ * 14:  RARRAY_PTR_IN_USE_FLAG</div><div class='add'>+ *          The buffer of the array is in use. This is only used during</div><div class='add'>+ *          debugging.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> /* for OPTIMIZED_CMP: */</div><div class='ctx'> #define id_cmp idCmp</div><div class='ctx'> </div><div class='hunk'>@@ -35,37 +77,41 @@ VALUE rb_cArray;</div><div class='ctx'> #define ARY_MAX_SIZE (LONG_MAX / (int)sizeof(VALUE))</div><div class='ctx'> #define SMALL_ARRAY_LEN 16</div><div class='ctx'> </div><div class='del'>-# define ARY_SHARED_P(ary) \</div><div class='del'>-    (assert(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), \</div><div class='del'>-     FL_TEST((ary),ELTS_SHARED)!=0)</div><div class='del'>-# define ARY_EMBED_P(ary) \</div><div class='del'>-    (assert(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), \</div><div class='del'>-     FL_TEST((ary), RARRAY_EMBED_FLAG)!=0)</div><div class='add'>+RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+static int</div><div class='add'>+should_be_T_ARRAY(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return RB_TYPE_P(ary, T_ARRAY);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> #define ARY_HEAP_PTR(a) (assert(!ARY_EMBED_P(a)), RARRAY(a)-&gt;as.heap.ptr)</div><div class='ctx'> #define ARY_HEAP_LEN(a) (assert(!ARY_EMBED_P(a)), RARRAY(a)-&gt;as.heap.len)</div><div class='del'>-#define ARY_HEAP_CAPA(a) (assert(!ARY_EMBED_P(a)), RARRAY(a)-&gt;as.heap.aux.capa)</div><div class='add'>+#define ARY_HEAP_CAPA(a) (assert(!ARY_EMBED_P(a)), assert(!ARY_SHARED_ROOT_P(a)), \</div><div class='add'>+                          RARRAY(a)-&gt;as.heap.aux.capa)</div><div class='ctx'> </div><div class='ctx'> #define ARY_EMBED_PTR(a) (assert(ARY_EMBED_P(a)), RARRAY(a)-&gt;as.ary)</div><div class='ctx'> #define ARY_EMBED_LEN(a) \</div><div class='ctx'>     (assert(ARY_EMBED_P(a)), \</div><div class='ctx'>      (long)((RBASIC(a)-&gt;flags &gt;&gt; RARRAY_EMBED_LEN_SHIFT) &amp; \</div><div class='del'>-	 (RARRAY_EMBED_LEN_MASK &gt;&gt; RARRAY_EMBED_LEN_SHIFT)))</div><div class='del'>-#define ARY_HEAP_SIZE(a) (assert(!ARY_EMBED_P(a)), assert(ARY_OWNS_HEAP_P(a)), ARY_HEAP_CAPA(a) * sizeof(VALUE))</div><div class='add'>+         (RARRAY_EMBED_LEN_MASK &gt;&gt; RARRAY_EMBED_LEN_SHIFT)))</div><div class='add'>+#define ARY_HEAP_SIZE(a) (assert(!ARY_EMBED_P(a)), assert(ARY_OWNS_HEAP_P(a)), ARY_CAPA(a) * sizeof(VALUE))</div><div class='add'>+</div><div class='add'>+#define ARY_OWNS_HEAP_P(a) (assert(should_be_T_ARRAY((VALUE)(a))), \</div><div class='add'>+                            !FL_TEST_RAW((a), RARRAY_SHARED_FLAG|RARRAY_EMBED_FLAG))</div><div class='ctx'> </div><div class='del'>-#define ARY_OWNS_HEAP_P(a) (!FL_TEST((a), ELTS_SHARED|RARRAY_EMBED_FLAG))</div><div class='ctx'> #define FL_SET_EMBED(a) do { \</div><div class='ctx'>     assert(!ARY_SHARED_P(a)); \</div><div class='ctx'>     FL_SET((a), RARRAY_EMBED_FLAG); \</div><div class='ctx'>     RARY_TRANSIENT_UNSET(a); \</div><div class='ctx'>     ary_verify(a); \</div><div class='ctx'> } while (0)</div><div class='add'>+</div><div class='ctx'> #define FL_UNSET_EMBED(ary) FL_UNSET((ary), RARRAY_EMBED_FLAG|RARRAY_EMBED_LEN_MASK)</div><div class='ctx'> #define FL_SET_SHARED(ary) do { \</div><div class='ctx'>     assert(!ARY_EMBED_P(ary)); \</div><div class='del'>-    FL_SET((ary), ELTS_SHARED); \</div><div class='add'>+    FL_SET((ary), RARRAY_SHARED_FLAG); \</div><div class='ctx'> } while (0)</div><div class='del'>-#define FL_UNSET_SHARED(ary) FL_UNSET((ary), ELTS_SHARED)</div><div class='add'>+#define FL_UNSET_SHARED(ary) FL_UNSET((ary), RARRAY_SHARED_FLAG)</div><div class='ctx'> </div><div class='ctx'> #define ARY_SET_PTR(ary, p) do { \</div><div class='ctx'>     assert(!ARY_EMBED_P(ary)); \</div><div class='hunk'>@@ -75,7 +121,6 @@ VALUE rb_cArray;</div><div class='ctx'> #define ARY_SET_EMBED_LEN(ary, n) do { \</div><div class='ctx'>     long tmp_n = (n); \</div><div class='ctx'>     assert(ARY_EMBED_P(ary)); \</div><div class='del'>-    assert(!OBJ_FROZEN(ary)); \</div><div class='ctx'>     RBASIC(ary)-&gt;flags &amp;= ~RARRAY_EMBED_LEN_MASK; \</div><div class='ctx'>     RBASIC(ary)-&gt;flags |= (tmp_n) &lt;&lt; RARRAY_EMBED_LEN_SHIFT; \</div><div class='ctx'> } while (0)</div><div class='hunk'>@@ -107,7 +152,7 @@ VALUE rb_cArray;</div><div class='ctx'>     } \</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='del'>-#define ARY_CAPA(ary) (ARY_EMBED_P(ary) ? RARRAY_EMBED_LEN_MAX : \</div><div class='add'>+#define ARY_CAPA(ary) (ARY_EMBED_P(ary) ? ary_embed_capa(ary) : \</div><div class='ctx'>                        ARY_SHARED_ROOT_P(ary) ? RARRAY_LEN(ary) : ARY_HEAP_CAPA(ary))</div><div class='ctx'> #define ARY_SET_CAPA(ary, n) do { \</div><div class='ctx'>     assert(!ARY_EMBED_P(ary)); \</div><div class='hunk'>@@ -116,31 +161,98 @@ VALUE rb_cArray;</div><div class='ctx'>     RARRAY(ary)-&gt;as.heap.aux.capa = (n); \</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='del'>-#define ARY_SHARED(ary) (assert(ARY_SHARED_P(ary)), RARRAY(ary)-&gt;as.heap.aux.shared)</div><div class='ctx'> #define ARY_SET_SHARED(ary, value) do { \</div><div class='ctx'>     const VALUE _ary_ = (ary); \</div><div class='ctx'>     const VALUE _value_ = (value); \</div><div class='ctx'>     assert(!ARY_EMBED_P(_ary_)); \</div><div class='ctx'>     assert(ARY_SHARED_P(_ary_)); \</div><div class='del'>-    assert(ARY_SHARED_ROOT_P(_value_)); \</div><div class='del'>-    RB_OBJ_WRITE(_ary_, &amp;RARRAY(_ary_)-&gt;as.heap.aux.shared, _value_); \</div><div class='add'>+    assert(!OBJ_FROZEN(_ary_)); \</div><div class='add'>+    assert(ARY_SHARED_ROOT_P(_value_) || OBJ_FROZEN(_value_)); \</div><div class='add'>+    RB_OBJ_WRITE(_ary_, &amp;RARRAY(_ary_)-&gt;as.heap.aux.shared_root, _value_); \</div><div class='ctx'> } while (0)</div><div class='del'>-#define RARRAY_SHARED_ROOT_FLAG FL_USER5</div><div class='del'>-#define ARY_SHARED_ROOT_P(ary) (FL_TEST((ary), RARRAY_SHARED_ROOT_FLAG))</div><div class='del'>-#define ARY_SHARED_NUM(ary) \</div><div class='del'>-    (assert(ARY_SHARED_ROOT_P(ary)), RARRAY(ary)-&gt;as.heap.aux.capa)</div><div class='del'>-#define ARY_SHARED_OCCUPIED(ary) (ARY_SHARED_NUM(ary) == 1)</div><div class='del'>-#define ARY_SET_SHARED_NUM(ary, value) do { \</div><div class='add'>+</div><div class='add'>+#define ARY_SHARED_ROOT_OCCUPIED(ary) (!OBJ_FROZEN(ary) &amp;&amp; ARY_SHARED_ROOT_REFCNT(ary) == 1)</div><div class='add'>+#define ARY_SET_SHARED_ROOT_REFCNT(ary, value) do { \</div><div class='ctx'>     assert(ARY_SHARED_ROOT_P(ary)); \</div><div class='add'>+    assert(!OBJ_FROZEN(ary)); \</div><div class='add'>+    assert((value) &gt;= 0); \</div><div class='ctx'>     RARRAY(ary)-&gt;as.heap.aux.capa = (value); \</div><div class='ctx'> } while (0)</div><div class='ctx'> #define FL_SET_SHARED_ROOT(ary) do { \</div><div class='add'>+    assert(!OBJ_FROZEN(ary)); \</div><div class='ctx'>     assert(!ARY_EMBED_P(ary)); \</div><div class='ctx'>     assert(!RARRAY_TRANSIENT_P(ary)); \</div><div class='ctx'>     FL_SET((ary), RARRAY_SHARED_ROOT_FLAG); \</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='del'>-#define ARY_SET(a, i, v) RARRAY_ASET((assert(!ARY_SHARED_P(a)), (a)), (i), (v))</div><div class='add'>+static inline void</div><div class='add'>+ARY_SET(VALUE a, long i, VALUE v)</div><div class='add'>+{</div><div class='add'>+    assert(!ARY_SHARED_P(a));</div><div class='add'>+    assert(!OBJ_FROZEN(a));</div><div class='add'>+</div><div class='add'>+    RARRAY_ASET(a, i, v);</div><div class='add'>+}</div><div class='add'>+#undef RARRAY_ASET</div><div class='add'>+</div><div class='add'>+static long</div><div class='add'>+ary_embed_capa(VALUE ary)</div><div class='add'>+{</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    size_t size = rb_gc_obj_slot_size(ary) - offsetof(struct RArray, as.ary);</div><div class='add'>+    assert(size % sizeof(VALUE) == 0);</div><div class='add'>+    return size / sizeof(VALUE);</div><div class='add'>+#else</div><div class='add'>+    return RARRAY_EMBED_LEN_MAX;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+ary_embed_size(long capa)</div><div class='add'>+{</div><div class='add'>+    return offsetof(struct RArray, as.ary) + (sizeof(VALUE) * capa);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+ary_embeddable_p(long capa)</div><div class='add'>+{</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    return rb_gc_size_allocatable_p(ary_embed_size(capa));</div><div class='add'>+#else</div><div class='add'>+    return capa &lt;= RARRAY_EMBED_LEN_MAX;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+bool</div><div class='add'>+rb_ary_embeddable_p(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    /* An array cannot be turned embeddable when the array is:</div><div class='add'>+     *  - Shared root: other objects may point to the buffer of this array</div><div class='add'>+     *    so we cannot make it embedded.</div><div class='add'>+     *  - Frozen: this array may also be a shared root without the shared root</div><div class='add'>+     *    flag.</div><div class='add'>+     *  - Shared: we don't want to re-embed an array that points to a shared</div><div class='add'>+     *    root (to save memory).</div><div class='add'>+     */</div><div class='add'>+    return !(ARY_SHARED_ROOT_P(ary) || OBJ_FROZEN(ary) || ARY_SHARED_P(ary));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+size_t</div><div class='add'>+rb_ary_size_as_embedded(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    size_t real_size;</div><div class='add'>+</div><div class='add'>+    if (ARY_EMBED_P(ary)) {</div><div class='add'>+        real_size = ary_embed_size(ARY_EMBED_LEN(ary));</div><div class='add'>+    }</div><div class='add'>+    else if (rb_ary_embeddable_p(ary)) {</div><div class='add'>+        real_size = ary_embed_size(ARY_HEAP_CAPA(ary));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        real_size = sizeof(struct RArray);</div><div class='add'>+    }</div><div class='add'>+    return real_size;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> #if ARRAY_DEBUG</div><div class='hunk'>@@ -151,19 +263,19 @@ ary_verify_(VALUE ary, const char *file, int line)</div><div class='ctx'> {</div><div class='ctx'>     assert(RB_TYPE_P(ary, T_ARRAY));</div><div class='ctx'> </div><div class='del'>-    if (FL_TEST(ary, ELTS_SHARED)) {</div><div class='del'>-        VALUE root = RARRAY(ary)-&gt;as.heap.aux.shared;</div><div class='add'>+    if (ARY_SHARED_P(ary)) {</div><div class='add'>+        VALUE root = ARY_SHARED_ROOT(ary);</div><div class='ctx'>         const VALUE *ptr = ARY_HEAP_PTR(ary);</div><div class='ctx'>         const VALUE *root_ptr = RARRAY_CONST_PTR_TRANSIENT(root);</div><div class='ctx'>         long len = ARY_HEAP_LEN(ary), root_len = RARRAY_LEN(root);</div><div class='del'>-        assert(FL_TEST(root, RARRAY_SHARED_ROOT_FLAG));</div><div class='add'>+        assert(ARY_SHARED_ROOT_P(root) || OBJ_FROZEN(root));</div><div class='ctx'>         assert(root_ptr &lt;= ptr &amp;&amp; ptr + len &lt;= root_ptr + root_len);</div><div class='ctx'>         ary_verify(root);</div><div class='ctx'>     }</div><div class='ctx'>     else if (ARY_EMBED_P(ary)) {</div><div class='ctx'>         assert(!RARRAY_TRANSIENT_P(ary));</div><div class='ctx'>         assert(!ARY_SHARED_P(ary));</div><div class='del'>-        assert(RARRAY_LEN(ary) &lt;= RARRAY_EMBED_LEN_MAX);</div><div class='add'>+        assert(RARRAY_LEN(ary) &lt;= ary_embed_capa(ary));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> #if 1</div><div class='hunk'>@@ -178,9 +290,11 @@ ary_verify_(VALUE ary, const char *file, int line)</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='ctx'>     if (RARRAY_TRANSIENT_P(ary)) {</div><div class='ctx'>         assert(rb_transient_heap_managed_ptr_p(RARRAY_CONST_PTR_TRANSIENT(ary)));</div><div class='ctx'>     }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     rb_transient_heap_verify();</div><div class='ctx'> </div><div class='hunk'>@@ -188,7 +302,8 @@ ary_verify_(VALUE ary, const char *file, int line)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_ary_verify(VALUE ary){</div><div class='add'>+rb_ary_verify(VALUE ary)</div><div class='add'>+{</div><div class='ctx'>     ary_verify(ary);</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='hunk'>@@ -213,10 +328,10 @@ rb_ary_ptr_use_end(VALUE ary)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_mem_clear(register VALUE *mem, register long size)</div><div class='add'>+rb_mem_clear(VALUE *mem, long size)</div><div class='ctx'> {</div><div class='ctx'>     while (size--) {</div><div class='del'>-	*mem++ = Qnil;</div><div class='add'>+        *mem++ = Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -224,7 +339,7 @@ static void</div><div class='ctx'> ary_mem_clear(VALUE ary, long beg, long size)</div><div class='ctx'> {</div><div class='ctx'>     RARRAY_PTR_USE_TRANSIENT(ary, ptr, {</div><div class='del'>-	rb_mem_clear(ptr + beg, size);</div><div class='add'>+        rb_mem_clear(ptr + beg, size);</div><div class='ctx'>     });</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -232,7 +347,7 @@ static inline void</div><div class='ctx'> memfill(register VALUE *mem, register long size, register VALUE val)</div><div class='ctx'> {</div><div class='ctx'>     while (size--) {</div><div class='del'>-	*mem++ = val;</div><div class='add'>+        *mem++ = val;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -240,8 +355,8 @@ static void</div><div class='ctx'> ary_memfill(VALUE ary, long beg, long size, VALUE val)</div><div class='ctx'> {</div><div class='ctx'>     RARRAY_PTR_USE_TRANSIENT(ary, ptr, {</div><div class='del'>-	memfill(ptr + beg, size, val);</div><div class='del'>-	RB_OBJ_WRITTEN(ary, Qundef, val);</div><div class='add'>+        memfill(ptr + beg, size, val);</div><div class='add'>+        RB_OBJ_WRITTEN(ary, Qundef, val);</div><div class='ctx'>     });</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -310,14 +425,16 @@ ary_heap_free(VALUE ary)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='add'>+static size_t</div><div class='ctx'> ary_heap_realloc(VALUE ary, size_t new_capa)</div><div class='ctx'> {</div><div class='add'>+    size_t alloc_capa = new_capa;</div><div class='ctx'>     size_t old_capa = ARY_HEAP_CAPA(ary);</div><div class='ctx'> </div><div class='ctx'>     if (RARRAY_TRANSIENT_P(ary)) {</div><div class='ctx'>         if (new_capa &lt;= old_capa) {</div><div class='ctx'>             /* do nothing */</div><div class='add'>+            alloc_capa = old_capa;</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='ctx'>             VALUE *new_ptr = rb_transient_heap_alloc(ary, sizeof(VALUE) * new_capa);</div><div class='hunk'>@@ -335,6 +452,8 @@ ary_heap_realloc(VALUE ary, size_t new_capa)</div><div class='ctx'>         SIZED_REALLOC_N(RARRAY(ary)-&gt;as.heap.ptr, VALUE, new_capa, old_capa);</div><div class='ctx'>     }</div><div class='ctx'>     ary_verify(ary);</div><div class='add'>+</div><div class='add'>+    return alloc_capa;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if USE_TRANSIENT_HEAP</div><div class='hunk'>@@ -342,14 +461,11 @@ static inline void</div><div class='ctx'> rb_ary_transient_heap_evacuate_(VALUE ary, int transient, int promote)</div><div class='ctx'> {</div><div class='ctx'>     if (transient) {</div><div class='add'>+        assert(!ARY_SHARED_ROOT_P(ary));</div><div class='add'>+</div><div class='ctx'>         VALUE *new_ptr;</div><div class='ctx'>         const VALUE *old_ptr = ARY_HEAP_PTR(ary);</div><div class='ctx'>         long capa = ARY_HEAP_CAPA(ary);</div><div class='del'>-        long len  = ARY_HEAP_LEN(ary);</div><div class='del'>-</div><div class='del'>-        if (ARY_SHARED_ROOT_P(ary)) {</div><div class='del'>-            capa = len;</div><div class='del'>-        }</div><div class='ctx'> </div><div class='ctx'>         assert(ARY_OWNS_HEAP_P(ary));</div><div class='ctx'>         assert(RARRAY_TRANSIENT_P(ary));</div><div class='hunk'>@@ -391,6 +507,27 @@ rb_ary_detransient(VALUE ary)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+rb_ary_make_embedded(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    assert(rb_ary_embeddable_p(ary));</div><div class='add'>+    if (!ARY_EMBED_P(ary)) {</div><div class='add'>+        const VALUE *buf = ARY_HEAP_PTR(ary);</div><div class='add'>+        long len = ARY_HEAP_LEN(ary);</div><div class='add'>+        bool was_transient = RARRAY_TRANSIENT_P(ary);</div><div class='add'>+</div><div class='add'>+        // FL_SET_EMBED also unsets the transient flag</div><div class='add'>+        FL_SET_EMBED(ary);</div><div class='add'>+        ARY_SET_EMBED_LEN(ary, len);</div><div class='add'>+</div><div class='add'>+        MEMCPY((void *)ARY_EMBED_PTR(ary), (void *)buf, VALUE, len);</div><div class='add'>+</div><div class='add'>+        if (!was_transient) {</div><div class='add'>+            ary_heap_free_ptr(ary, buf, len * sizeof(VALUE));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> ary_resize_capa(VALUE ary, long capacity)</div><div class='ctx'> {</div><div class='hunk'>@@ -398,7 +535,8 @@ ary_resize_capa(VALUE ary, long capacity)</div><div class='ctx'>     assert(!OBJ_FROZEN(ary));</div><div class='ctx'>     assert(!ARY_SHARED_P(ary));</div><div class='ctx'> </div><div class='del'>-    if (capacity &gt; RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+    if (capacity &gt; ary_embed_capa(ary)) {</div><div class='add'>+        size_t new_capa = capacity;</div><div class='ctx'>         if (ARY_EMBED_P(ary)) {</div><div class='ctx'>             long len = ARY_EMBED_LEN(ary);</div><div class='ctx'>             VALUE *ptr = ary_heap_alloc(ary, capacity);</div><div class='hunk'>@@ -409,9 +547,9 @@ ary_resize_capa(VALUE ary, long capacity)</div><div class='ctx'>             ARY_SET_HEAP_LEN(ary, len);</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-            ary_heap_realloc(ary, capacity);</div><div class='add'>+            new_capa = ary_heap_realloc(ary, capacity);</div><div class='ctx'>         }</div><div class='del'>-        ARY_SET_CAPA(ary, capacity);</div><div class='add'>+        ARY_SET_CAPA(ary, new_capa);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         if (!ARY_EMBED_P(ary)) {</div><div class='hunk'>@@ -449,10 +587,10 @@ ary_double_capa(VALUE ary, long min)</div><div class='ctx'>     long new_capa = ARY_CAPA(ary) / 2;</div><div class='ctx'> </div><div class='ctx'>     if (new_capa &lt; ARY_DEFAULT_SIZE) {</div><div class='del'>-	new_capa = ARY_DEFAULT_SIZE;</div><div class='add'>+        new_capa = ARY_DEFAULT_SIZE;</div><div class='ctx'>     }</div><div class='ctx'>     if (new_capa &gt;= ARY_MAX_SIZE - min) {</div><div class='del'>-	new_capa = (ARY_MAX_SIZE - min) / 2;</div><div class='add'>+        new_capa = (ARY_MAX_SIZE - min) / 2;</div><div class='ctx'>     }</div><div class='ctx'>     new_capa += min;</div><div class='ctx'>     ary_resize_capa(ary, new_capa);</div><div class='hunk'>@@ -461,52 +599,54 @@ ary_double_capa(VALUE ary, long min)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-rb_ary_decrement_share(VALUE shared)</div><div class='add'>+rb_ary_decrement_share(VALUE shared_root)</div><div class='ctx'> {</div><div class='del'>-    if (shared) {</div><div class='del'>-	long num = ARY_SHARED_NUM(shared) - 1;</div><div class='del'>-	if (num == 0) {</div><div class='del'>-	    rb_ary_free(shared);</div><div class='del'>-	    rb_gc_force_recycle(shared);</div><div class='del'>-	}</div><div class='del'>-	else if (num &gt; 0) {</div><div class='del'>-	    ARY_SET_SHARED_NUM(shared, num);</div><div class='del'>-	}</div><div class='add'>+    if (!OBJ_FROZEN(shared_root)) {</div><div class='add'>+        long num = ARY_SHARED_ROOT_REFCNT(shared_root);</div><div class='add'>+        ARY_SET_SHARED_ROOT_REFCNT(shared_root, num - 1);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> rb_ary_unshare(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE shared = RARRAY(ary)-&gt;as.heap.aux.shared;</div><div class='del'>-    rb_ary_decrement_share(shared);</div><div class='add'>+    VALUE shared_root = ARY_SHARED_ROOT(ary);</div><div class='add'>+    rb_ary_decrement_share(shared_root);</div><div class='ctx'>     FL_UNSET_SHARED(ary);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static inline void</div><div class='del'>-rb_ary_unshare_safe(VALUE ary)</div><div class='add'>+static void</div><div class='add'>+rb_ary_reset(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    if (ARY_SHARED_P(ary) &amp;&amp; !ARY_EMBED_P(ary)) {</div><div class='del'>-	rb_ary_unshare(ary);</div><div class='add'>+    if (ARY_OWNS_HEAP_P(ary)) {</div><div class='add'>+        ary_heap_free(ary);</div><div class='ctx'>     }</div><div class='add'>+    else if (ARY_SHARED_P(ary)) {</div><div class='add'>+        rb_ary_unshare(ary);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    FL_SET_EMBED(ary);</div><div class='add'>+    ARY_SET_EMBED_LEN(ary, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_increment_share(VALUE shared)</div><div class='add'>+rb_ary_increment_share(VALUE shared_root)</div><div class='ctx'> {</div><div class='del'>-    long num = ARY_SHARED_NUM(shared);</div><div class='del'>-    if (num &gt;= 0) {</div><div class='del'>-	ARY_SET_SHARED_NUM(shared, num + 1);</div><div class='add'>+    if (!OBJ_FROZEN(shared_root)) {</div><div class='add'>+        long num = ARY_SHARED_ROOT_REFCNT(shared_root);</div><div class='add'>+        assert(num &gt;= 0);</div><div class='add'>+        ARY_SET_SHARED_ROOT_REFCNT(shared_root, num + 1);</div><div class='ctx'>     }</div><div class='del'>-    return shared;</div><div class='add'>+    return shared_root;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-rb_ary_set_shared(VALUE ary, VALUE shared)</div><div class='add'>+rb_ary_set_shared(VALUE ary, VALUE shared_root)</div><div class='ctx'> {</div><div class='del'>-    rb_ary_increment_share(shared);</div><div class='add'>+    rb_ary_increment_share(shared_root);</div><div class='ctx'>     FL_SET_SHARED(ary);</div><div class='del'>-    ARY_SET_SHARED(ary, shared);</div><div class='add'>+    RB_DEBUG_COUNTER_INC(obj_ary_shared_create);</div><div class='add'>+    ARY_SET_SHARED(ary, shared_root);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='hunk'>@@ -517,34 +657,33 @@ rb_ary_modify_check(VALUE ary)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_ary_modify(VALUE ary)</div><div class='add'>+rb_ary_cancel_sharing(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    rb_ary_modify_check(ary);</div><div class='ctx'>     if (ARY_SHARED_P(ary)) {</div><div class='del'>-	long shared_len, len = RARRAY_LEN(ary);</div><div class='del'>-	VALUE shared = ARY_SHARED(ary);</div><div class='add'>+        long shared_len, len = RARRAY_LEN(ary);</div><div class='add'>+        VALUE shared_root = ARY_SHARED_ROOT(ary);</div><div class='ctx'> </div><div class='del'>-        ary_verify(shared);</div><div class='add'>+        ary_verify(shared_root);</div><div class='ctx'> </div><div class='del'>-        if (len &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='del'>-	    const VALUE *ptr = ARY_HEAP_PTR(ary);</div><div class='add'>+        if (len &lt;= ary_embed_capa(ary)) {</div><div class='add'>+            const VALUE *ptr = ARY_HEAP_PTR(ary);</div><div class='ctx'>             FL_UNSET_SHARED(ary);</div><div class='ctx'>             FL_SET_EMBED(ary);</div><div class='del'>-	    MEMCPY((VALUE *)ARY_EMBED_PTR(ary), ptr, VALUE, len);</div><div class='del'>-            rb_ary_decrement_share(shared);</div><div class='add'>+            MEMCPY((VALUE *)ARY_EMBED_PTR(ary), ptr, VALUE, len);</div><div class='add'>+            rb_ary_decrement_share(shared_root);</div><div class='ctx'>             ARY_SET_EMBED_LEN(ary, len);</div><div class='ctx'>         }</div><div class='del'>-	else if (ARY_SHARED_OCCUPIED(shared) &amp;&amp; len &gt; ((shared_len = RARRAY_LEN(shared))&gt;&gt;1)) {</div><div class='del'>-            long shift = RARRAY_CONST_PTR_TRANSIENT(ary) - RARRAY_CONST_PTR_TRANSIENT(shared);</div><div class='del'>-	    FL_UNSET_SHARED(ary);</div><div class='del'>-            ARY_SET_PTR(ary, RARRAY_CONST_PTR_TRANSIENT(shared));</div><div class='del'>-	    ARY_SET_CAPA(ary, shared_len);</div><div class='add'>+        else if (ARY_SHARED_ROOT_OCCUPIED(shared_root) &amp;&amp; len &gt; ((shared_len = RARRAY_LEN(shared_root))&gt;&gt;1)) {</div><div class='add'>+            long shift = RARRAY_CONST_PTR_TRANSIENT(ary) - RARRAY_CONST_PTR_TRANSIENT(shared_root);</div><div class='add'>+            FL_UNSET_SHARED(ary);</div><div class='add'>+            ARY_SET_PTR(ary, RARRAY_CONST_PTR_TRANSIENT(shared_root));</div><div class='add'>+            ARY_SET_CAPA(ary, shared_len);</div><div class='ctx'>             RARRAY_PTR_USE_TRANSIENT(ary, ptr, {</div><div class='del'>-		MEMMOVE(ptr, ptr+shift, VALUE, len);</div><div class='del'>-	    });</div><div class='del'>-	    FL_SET_EMBED(shared);</div><div class='del'>-	    rb_ary_decrement_share(shared);</div><div class='del'>-	}</div><div class='add'>+                MEMMOVE(ptr, ptr+shift, VALUE, len);</div><div class='add'>+            });</div><div class='add'>+            FL_SET_EMBED(shared_root);</div><div class='add'>+            rb_ary_decrement_share(shared_root);</div><div class='add'>+        }</div><div class='ctx'>         else {</div><div class='ctx'>             VALUE *ptr = ary_heap_alloc(ary, len);</div><div class='ctx'>             MEMCPY(ptr, ARY_HEAP_PTR(ary), VALUE, len);</div><div class='hunk'>@@ -553,11 +692,18 @@ rb_ary_modify(VALUE ary)</div><div class='ctx'>             ARY_SET_PTR(ary, ptr);</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='del'>-	rb_gc_writebarrier_remember(ary);</div><div class='add'>+        rb_gc_writebarrier_remember(ary);</div><div class='ctx'>     }</div><div class='ctx'>     ary_verify(ary);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+rb_ary_modify(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    rb_ary_cancel_sharing(ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> ary_ensure_room_for_push(VALUE ary, long add_len)</div><div class='ctx'> {</div><div class='hunk'>@@ -566,40 +712,40 @@ ary_ensure_room_for_push(VALUE ary, long add_len)</div><div class='ctx'>     long capa;</div><div class='ctx'> </div><div class='ctx'>     if (old_len &gt; ARY_MAX_SIZE - add_len) {</div><div class='del'>-	rb_raise(rb_eIndexError, "index %ld too big", new_len);</div><div class='add'>+        rb_raise(rb_eIndexError, "index %ld too big", new_len);</div><div class='ctx'>     }</div><div class='ctx'>     if (ARY_SHARED_P(ary)) {</div><div class='del'>-	if (new_len &gt; RARRAY_EMBED_LEN_MAX) {</div><div class='del'>-	    VALUE shared = ARY_SHARED(ary);</div><div class='del'>-	    if (ARY_SHARED_OCCUPIED(shared)) {</div><div class='del'>-                if (ARY_HEAP_PTR(ary) - RARRAY_CONST_PTR_TRANSIENT(shared) + new_len &lt;= RARRAY_LEN(shared)) {</div><div class='del'>-		    rb_ary_modify_check(ary);</div><div class='add'>+        if (new_len &gt; ary_embed_capa(ary)) {</div><div class='add'>+            VALUE shared_root = ARY_SHARED_ROOT(ary);</div><div class='add'>+            if (ARY_SHARED_ROOT_OCCUPIED(shared_root)) {</div><div class='add'>+                if (ARY_HEAP_PTR(ary) - RARRAY_CONST_PTR_TRANSIENT(shared_root) + new_len &lt;= RARRAY_LEN(shared_root)) {</div><div class='add'>+                    rb_ary_modify_check(ary);</div><div class='ctx'> </div><div class='ctx'>                     ary_verify(ary);</div><div class='del'>-                    ary_verify(shared);</div><div class='del'>-                    return shared;</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    /* if array is shared, then it is likely it participate in push/shift pattern */</div><div class='del'>-		    rb_ary_modify(ary);</div><div class='del'>-		    capa = ARY_CAPA(ary);</div><div class='del'>-		    if (new_len &gt; capa - (capa &gt;&gt; 6)) {</div><div class='del'>-			ary_double_capa(ary, new_len);</div><div class='del'>-		    }</div><div class='add'>+                    ary_verify(shared_root);</div><div class='add'>+                    return shared_root;</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    /* if array is shared, then it is likely it participate in push/shift pattern */</div><div class='add'>+                    rb_ary_modify(ary);</div><div class='add'>+                    capa = ARY_CAPA(ary);</div><div class='add'>+                    if (new_len &gt; capa - (capa &gt;&gt; 6)) {</div><div class='add'>+                        ary_double_capa(ary, new_len);</div><div class='add'>+                    }</div><div class='ctx'>                     ary_verify(ary);</div><div class='del'>-		    return ary;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+                    return ary;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>         ary_verify(ary);</div><div class='ctx'>         rb_ary_modify(ary);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_ary_modify_check(ary);</div><div class='add'>+        rb_ary_modify_check(ary);</div><div class='ctx'>     }</div><div class='ctx'>     capa = ARY_CAPA(ary);</div><div class='ctx'>     if (new_len &gt; capa) {</div><div class='del'>-	ary_double_capa(ary, new_len);</div><div class='add'>+        ary_double_capa(ary, new_len);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ary_verify(ary);</div><div class='hunk'>@@ -608,12 +754,16 @@ ary_ensure_room_for_push(VALUE ary, long add_len)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *      ary.freeze -&gt; ary</div><div class='add'>+ *    array.freeze -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Freezes +self+; returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *  Calls Object#freeze on +ary+ to prevent any further</div><div class='del'>- *  modification. A RuntimeError will be raised if a modification</div><div class='del'>- *  attempt is made.</div><div class='add'>+ *    a = []</div><div class='add'>+ *    a.frozen? # =&gt; false</div><div class='add'>+ *    a.freeze</div><div class='add'>+ *    a.frozen? # =&gt; true</div><div class='ctx'>  *</div><div class='add'>+ *  An attempt to modify a frozen \Array raises FrozenError.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -633,18 +783,25 @@ VALUE</div><div class='ctx'> rb_ary_shared_with_p(VALUE ary1, VALUE ary2)</div><div class='ctx'> {</div><div class='ctx'>     if (!ARY_EMBED_P(ary1) &amp;&amp; ARY_SHARED_P(ary1) &amp;&amp;</div><div class='del'>-	!ARY_EMBED_P(ary2) &amp;&amp; ARY_SHARED_P(ary2) &amp;&amp;</div><div class='del'>-	RARRAY(ary1)-&gt;as.heap.aux.shared == RARRAY(ary2)-&gt;as.heap.aux.shared &amp;&amp;</div><div class='del'>-	RARRAY(ary1)-&gt;as.heap.len == RARRAY(ary2)-&gt;as.heap.len) {</div><div class='del'>-	return Qtrue;</div><div class='add'>+            !ARY_EMBED_P(ary2) &amp;&amp; ARY_SHARED_P(ary2) &amp;&amp;</div><div class='add'>+            ARY_SHARED_ROOT(ary1) == ARY_SHARED_ROOT(ary2) &amp;&amp;</div><div class='add'>+            ARY_HEAP_LEN(ary1) == ARY_HEAP_LEN(ary2)) {</div><div class='add'>+        return Qtrue;</div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ary_alloc(VALUE klass)</div><div class='add'>+ary_alloc_embed(VALUE klass, long capa)</div><div class='ctx'> {</div><div class='del'>-    NEWOBJ_OF(ary, struct RArray, klass, T_ARRAY | RARRAY_EMBED_FLAG | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0));</div><div class='add'>+    size_t size = ary_embed_size(capa);</div><div class='add'>+    assert(rb_gc_size_allocatable_p(size));</div><div class='add'>+#if !USE_RVARGC</div><div class='add'>+    assert(size &lt;= sizeof(struct RArray));</div><div class='add'>+#endif</div><div class='add'>+    RVARGC_NEWOBJ_OF(ary, struct RArray, klass,</div><div class='add'>+                     T_ARRAY | RARRAY_EMBED_FLAG | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0),</div><div class='add'>+                     size);</div><div class='ctx'>     /* Created array is:</div><div class='ctx'>      *   FL_SET_EMBED((VALUE)ary);</div><div class='ctx'>      *   ARY_SET_EMBED_LEN((VALUE)ary, 0);</div><div class='hunk'>@@ -653,10 +810,19 @@ ary_alloc(VALUE klass)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='add'>+ary_alloc_heap(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    RVARGC_NEWOBJ_OF(ary, struct RArray, klass,</div><div class='add'>+                     T_ARRAY | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0),</div><div class='add'>+                     sizeof(struct RArray));</div><div class='add'>+    return (VALUE)ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='ctx'> empty_ary_alloc(VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     RUBY_DTRACE_CREATE_HOOK(ARRAY, 0);</div><div class='del'>-    return ary_alloc(klass);</div><div class='add'>+    return ary_alloc_embed(klass, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -665,20 +831,24 @@ ary_new(VALUE klass, long capa)</div><div class='ctx'>     VALUE ary,*ptr;</div><div class='ctx'> </div><div class='ctx'>     if (capa &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "negative array size (or size too big)");</div><div class='add'>+        rb_raise(rb_eArgError, "negative array size (or size too big)");</div><div class='ctx'>     }</div><div class='ctx'>     if (capa &gt; ARY_MAX_SIZE) {</div><div class='del'>-	rb_raise(rb_eArgError, "array size too big");</div><div class='add'>+        rb_raise(rb_eArgError, "array size too big");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     RUBY_DTRACE_CREATE_HOOK(ARRAY, capa);</div><div class='ctx'> </div><div class='del'>-    ary = ary_alloc(klass);</div><div class='del'>-    if (capa &gt; RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+    if (ary_embeddable_p(capa)) {</div><div class='add'>+        ary = ary_alloc_embed(klass, capa);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ary = ary_alloc_heap(klass);</div><div class='add'>+        ARY_SET_CAPA(ary, capa);</div><div class='add'>+        assert(!ARY_EMBED_P(ary));</div><div class='add'>+</div><div class='ctx'>         ptr = ary_heap_alloc(ary, capa);</div><div class='del'>-        FL_UNSET_EMBED(ary);</div><div class='ctx'>         ARY_SET_PTR(ary, ptr);</div><div class='del'>-        ARY_SET_CAPA(ary, capa);</div><div class='ctx'>         ARY_SET_HEAP_LEN(ary, 0);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -694,7 +864,7 @@ rb_ary_new_capa(long capa)</div><div class='ctx'> VALUE</div><div class='ctx'> rb_ary_new(void)</div><div class='ctx'> {</div><div class='del'>-    return rb_ary_new2(RARRAY_EMBED_LEN_MAX);</div><div class='add'>+    return rb_ary_new_capa(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -708,7 +878,7 @@ VALUE</div><div class='ctx'> </div><div class='ctx'>     va_start(ar, n);</div><div class='ctx'>     for (i=0; i&lt;n; i++) {</div><div class='del'>-	ARY_SET(ary, i, va_arg(ar, VALUE));</div><div class='add'>+        ARY_SET(ary, i, va_arg(ar, VALUE));</div><div class='ctx'>     }</div><div class='ctx'>     va_end(ar);</div><div class='ctx'> </div><div class='hunk'>@@ -723,8 +893,8 @@ rb_ary_tmp_new_from_values(VALUE klass, long n, const VALUE *elts)</div><div class='ctx'> </div><div class='ctx'>     ary = ary_new(klass, n);</div><div class='ctx'>     if (n &gt; 0 &amp;&amp; elts) {</div><div class='del'>-	ary_memcpy(ary, 0, n, elts);</div><div class='del'>-	ARY_SET_LEN(ary, n);</div><div class='add'>+        ary_memcpy(ary, 0, n, elts);</div><div class='add'>+        ARY_SET_LEN(ary, n);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='hunk'>@@ -736,8 +906,79 @@ rb_ary_new_from_values(long n, const VALUE *elts)</div><div class='ctx'>     return rb_ary_tmp_new_from_values(rb_cArray, n, elts);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+ec_ary_alloc_embed(rb_execution_context_t *ec, VALUE klass, long capa)</div><div class='add'>+{</div><div class='add'>+    size_t size = ary_embed_size(capa);</div><div class='add'>+    assert(rb_gc_size_allocatable_p(size));</div><div class='add'>+#if !USE_RVARGC</div><div class='add'>+    assert(size &lt;= sizeof(struct RArray));</div><div class='add'>+#endif</div><div class='add'>+    RB_RVARGC_EC_NEWOBJ_OF(ec, ary, struct RArray, klass,</div><div class='add'>+                           T_ARRAY | RARRAY_EMBED_FLAG | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0),</div><div class='add'>+                           size);</div><div class='add'>+    /* Created array is:</div><div class='add'>+     *   FL_SET_EMBED((VALUE)ary);</div><div class='add'>+     *   ARY_SET_EMBED_LEN((VALUE)ary, 0);</div><div class='add'>+     */</div><div class='add'>+    return (VALUE)ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ec_ary_alloc_heap(rb_execution_context_t *ec, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    RB_RVARGC_EC_NEWOBJ_OF(ec, ary, struct RArray, klass,</div><div class='add'>+                           T_ARRAY | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0),</div><div class='add'>+                           sizeof(struct RArray));</div><div class='add'>+    return (VALUE)ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ec_ary_new(rb_execution_context_t *ec, VALUE klass, long capa)</div><div class='add'>+{</div><div class='add'>+    VALUE ary,*ptr;</div><div class='add'>+</div><div class='add'>+    if (capa &lt; 0) {</div><div class='add'>+        rb_raise(rb_eArgError, "negative array size (or size too big)");</div><div class='add'>+    }</div><div class='add'>+    if (capa &gt; ARY_MAX_SIZE) {</div><div class='add'>+        rb_raise(rb_eArgError, "array size too big");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RUBY_DTRACE_CREATE_HOOK(ARRAY, capa);</div><div class='add'>+</div><div class='add'>+    if (ary_embeddable_p(capa)) {</div><div class='add'>+        ary = ec_ary_alloc_embed(ec, klass, capa);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ary = ec_ary_alloc_heap(ec, klass);</div><div class='add'>+        ARY_SET_CAPA(ary, capa);</div><div class='add'>+        assert(!ARY_EMBED_P(ary));</div><div class='add'>+</div><div class='add'>+        ptr = ary_heap_alloc(ary, capa);</div><div class='add'>+        ARY_SET_PTR(ary, ptr);</div><div class='add'>+        ARY_SET_HEAP_LEN(ary, 0);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_tmp_new(long capa)</div><div class='add'>+rb_ec_ary_new_from_values(rb_execution_context_t *ec, long n, const VALUE *elts)</div><div class='add'>+{</div><div class='add'>+    VALUE ary;</div><div class='add'>+</div><div class='add'>+    ary = ec_ary_new(ec, rb_cArray, n);</div><div class='add'>+    if (n &gt; 0 &amp;&amp; elts) {</div><div class='add'>+        ary_memcpy(ary, 0, n, elts);</div><div class='add'>+        ARY_SET_LEN(ary, n);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_hidden_new(long capa)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary = ary_new(0, capa);</div><div class='ctx'>     rb_ary_transient_heap_evacuate(ary, TRUE);</div><div class='hunk'>@@ -745,12 +986,11 @@ rb_ary_tmp_new(long capa)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_tmp_new_fill(long capa)</div><div class='add'>+rb_ary_hidden_new_fill(long capa)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary = ary_new(0, capa);</div><div class='add'>+    VALUE ary = rb_ary_hidden_new(capa);</div><div class='ctx'>     ary_memfill(ary, 0, capa, Qnil);</div><div class='ctx'>     ARY_SET_LEN(ary, capa);</div><div class='del'>-    rb_ary_transient_heap_evacuate(ary, TRUE);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -758,6 +998,12 @@ void</div><div class='ctx'> rb_ary_free(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     if (ARY_OWNS_HEAP_P(ary)) {</div><div class='add'>+        if (USE_DEBUG_COUNTER &amp;&amp;</div><div class='add'>+            !ARY_SHARED_ROOT_P(ary) &amp;&amp;</div><div class='add'>+            ARY_HEAP_CAPA(ary) &gt; RARRAY_LEN(ary)) {</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_ary_extracapa);</div><div class='add'>+        }</div><div class='add'>+</div><div class='ctx'>         if (RARRAY_TRANSIENT_P(ary)) {</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_ary_transient);</div><div class='ctx'>         }</div><div class='hunk'>@@ -767,7 +1013,14 @@ rb_ary_free(VALUE ary)</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	RB_DEBUG_COUNTER_INC(obj_ary_embed);</div><div class='add'>+        RB_DEBUG_COUNTER_INC(obj_ary_embed);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (ARY_SHARED_P(ary)) {</div><div class='add'>+        RB_DEBUG_COUNTER_INC(obj_ary_shared);</div><div class='add'>+    }</div><div class='add'>+    if (ARY_SHARED_ROOT_P(ary) &amp;&amp; ARY_SHARED_ROOT_OCCUPIED(ary)) {</div><div class='add'>+        RB_DEBUG_COUNTER_INC(obj_ary_shared_root_occupied);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -775,61 +1028,69 @@ RUBY_FUNC_EXPORTED size_t</div><div class='ctx'> rb_ary_memsize(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     if (ARY_OWNS_HEAP_P(ary)) {</div><div class='del'>-	return ARY_CAPA(ary) * sizeof(VALUE);</div><div class='add'>+        return ARY_CAPA(ary) * sizeof(VALUE);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static inline void</div><div class='del'>-ary_discard(VALUE ary)</div><div class='del'>-{</div><div class='del'>-    rb_ary_free(ary);</div><div class='del'>-    RBASIC(ary)-&gt;flags |= RARRAY_EMBED_FLAG;</div><div class='del'>-    RBASIC(ary)-&gt;flags &amp;= ~(RARRAY_EMBED_LEN_MASK | RARRAY_TRANSIENT_FLAG);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> ary_make_shared(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    assert(!ARY_EMBED_P(ary));</div><div class='add'>+    assert(USE_RVARGC || !ARY_EMBED_P(ary));</div><div class='ctx'>     ary_verify(ary);</div><div class='ctx'> </div><div class='ctx'>     if (ARY_SHARED_P(ary)) {</div><div class='del'>-	return ARY_SHARED(ary);</div><div class='add'>+        return ARY_SHARED_ROOT(ary);</div><div class='ctx'>     }</div><div class='ctx'>     else if (ARY_SHARED_ROOT_P(ary)) {</div><div class='del'>-	return ary;</div><div class='add'>+        return ary;</div><div class='ctx'>     }</div><div class='ctx'>     else if (OBJ_FROZEN(ary)) {</div><div class='del'>-        rb_ary_transient_heap_evacuate(ary, TRUE);</div><div class='del'>-	ary_shrink_capa(ary);</div><div class='del'>-	FL_SET_SHARED_ROOT(ary);</div><div class='del'>-	ARY_SET_SHARED_NUM(ary, 1);</div><div class='del'>-	return ary;</div><div class='add'>+        if (!ARY_EMBED_P(ary)) {</div><div class='add'>+            rb_ary_transient_heap_evacuate(ary, TRUE);</div><div class='add'>+            ary_shrink_capa(ary);</div><div class='add'>+        }</div><div class='add'>+        return ary;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	long capa = ARY_CAPA(ary), len = RARRAY_LEN(ary);</div><div class='del'>-        const VALUE *ptr;</div><div class='del'>-	NEWOBJ_OF(shared, struct RArray, 0, T_ARRAY | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0));</div><div class='del'>-</div><div class='ctx'>         rb_ary_transient_heap_evacuate(ary, TRUE);</div><div class='del'>-        ptr = ARY_HEAP_PTR(ary);</div><div class='del'>-</div><div class='del'>-        FL_UNSET_EMBED(shared);</div><div class='del'>-	ARY_SET_LEN((VALUE)shared, capa);</div><div class='del'>-        ARY_SET_PTR((VALUE)shared, ptr);</div><div class='del'>-        ary_mem_clear((VALUE)shared, len, capa - len);</div><div class='del'>-	FL_SET_SHARED_ROOT(shared);</div><div class='del'>-	ARY_SET_SHARED_NUM((VALUE)shared, 1);</div><div class='del'>-	FL_SET_SHARED(ary);</div><div class='del'>-	ARY_SET_SHARED(ary, (VALUE)shared);</div><div class='del'>-	OBJ_FREEZE(shared);</div><div class='del'>-</div><div class='del'>-        ary_verify((VALUE)shared);</div><div class='add'>+</div><div class='add'>+        long capa = ARY_CAPA(ary);</div><div class='add'>+        long len = RARRAY_LEN(ary);</div><div class='add'>+</div><div class='add'>+        /* Shared roots cannot be embedded because the reference count</div><div class='add'>+         * (refcnt) is stored in as.heap.aux.capa. */</div><div class='add'>+        VALUE shared = ary_alloc_heap(0);</div><div class='add'>+        FL_SET_SHARED_ROOT(shared);</div><div class='add'>+</div><div class='add'>+        if (ARY_EMBED_P(ary)) {</div><div class='add'>+            /* Cannot use ary_heap_alloc because we don't want to allocate</div><div class='add'>+             * on the transient heap. */</div><div class='add'>+            VALUE *ptr = ALLOC_N(VALUE, capa);</div><div class='add'>+            ARY_SET_PTR(shared, ptr);</div><div class='add'>+            ary_memcpy(shared, 0, len, RARRAY_PTR(ary));</div><div class='add'>+</div><div class='add'>+            FL_UNSET_EMBED(ary);</div><div class='add'>+            ARY_SET_HEAP_LEN(ary, len);</div><div class='add'>+            ARY_SET_PTR(ary, ptr);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ARY_SET_PTR(shared, RARRAY_PTR(ary));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ARY_SET_LEN(shared, capa);</div><div class='add'>+        ary_mem_clear(shared, len, capa - len);</div><div class='add'>+        ARY_SET_SHARED_ROOT_REFCNT(shared, 1);</div><div class='add'>+        FL_SET_SHARED(ary);</div><div class='add'>+        RB_DEBUG_COUNTER_INC(obj_ary_shared_create);</div><div class='add'>+        ARY_SET_SHARED(ary, shared);</div><div class='add'>+</div><div class='add'>+        ary_verify(shared);</div><div class='ctx'>         ary_verify(ary);</div><div class='del'>-        return (VALUE)shared;</div><div class='add'>+</div><div class='add'>+        return shared;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -838,8 +1099,10 @@ ary_make_substitution(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     long len = RARRAY_LEN(ary);</div><div class='ctx'> </div><div class='del'>-    if (len &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='del'>-	VALUE subst = rb_ary_new2(len);</div><div class='add'>+    if (ary_embeddable_p(len)) {</div><div class='add'>+        VALUE subst = rb_ary_new_capa(len);</div><div class='add'>+        assert(ARY_EMBED_P(subst));</div><div class='add'>+</div><div class='ctx'>         ary_memcpy(subst, 0, len, RARRAY_CONST_PTR_TRANSIENT(ary));</div><div class='ctx'>         ARY_SET_EMBED_LEN(subst, len);</div><div class='ctx'>         return subst;</div><div class='hunk'>@@ -874,23 +1137,24 @@ rb_check_to_array(VALUE ary)</div><div class='ctx'>     return rb_check_convert_type_with_id(ary, T_ARRAY, "Array", idTo_a);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_to_array(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return rb_convert_type_with_id(ary, T_ARRAY, "Array", idTo_a);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Array.try_convert(obj) -&gt; array or nil</div><div class='add'>+ *    Array.try_convert(object) -&gt; object, new_array, or nil</div><div class='ctx'>  *</div><div class='del'>- *  Tries to convert +obj+ into an array, using +to_ary+ method.  Returns the</div><div class='del'>- *  converted array or +nil+ if +obj+ cannot be converted for any reason.</div><div class='del'>- *  This method can be used to check if an argument is an array.</div><div class='add'>+ *  If +object+ is an \Array object, returns +object+.</div><div class='ctx'>  *</div><div class='del'>- *     Array.try_convert([1])   #=&gt; [1]</div><div class='del'>- *     Array.try_convert("1")   #=&gt; nil</div><div class='add'>+ *  Otherwise if +object+ responds to &lt;tt&gt;:to_ary&lt;/tt&gt;,</div><div class='add'>+ *  calls &lt;tt&gt;object.to_ary&lt;/tt&gt; and returns the result.</div><div class='ctx'>  *</div><div class='del'>- *     if tmp = Array.try_convert(arg)</div><div class='del'>- *       # the argument is an array</div><div class='del'>- *     elsif tmp = String.try_convert(arg)</div><div class='del'>- *       # the argument is a string</div><div class='del'>- *     end</div><div class='add'>+ *  Returns +nil+ if +object+ does not respond to &lt;tt&gt;:to_ary&lt;/tt&gt;</div><div class='ctx'>  *</div><div class='add'>+ *  Raises an exception unless &lt;tt&gt;object.to_ary&lt;/tt&gt; returns an \Array object.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -899,60 +1163,76 @@ rb_ary_s_try_convert(VALUE dummy, VALUE ary)</div><div class='ctx'>     return rb_check_array_type(ary);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_s_new(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE ary;</div><div class='add'>+</div><div class='add'>+    if (klass == rb_cArray) {</div><div class='add'>+        long size = 0;</div><div class='add'>+        if (argc &gt; 0 &amp;&amp; FIXNUM_P(argv[0])) {</div><div class='add'>+            size = FIX2LONG(argv[0]);</div><div class='add'>+            if (size &lt; 0) size = 0;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ary = ary_new(klass, size);</div><div class='add'>+</div><div class='add'>+        rb_obj_call_init_kw(ary, argc, argv, RB_PASS_CALLED_KEYWORDS);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ary = rb_class_new_instance_pass_kw(argc, argv, klass);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Array.new(size=0, default=nil)</div><div class='del'>- *     Array.new(array)</div><div class='del'>- *     Array.new(size) {|index| block }</div><div class='del'>- *</div><div class='del'>- *  Returns a new array.</div><div class='del'>- *</div><div class='del'>- *  In the first form, if no arguments are sent, the new array will be empty.</div><div class='del'>- *  When a +size+ and an optional +default+ are sent, an array is created with</div><div class='del'>- *  +size+ copies of +default+.  Take notice that all elements will reference the</div><div class='del'>- *  same object +default+.</div><div class='del'>- *</div><div class='del'>- *  The second form creates a copy of the array passed as a parameter (the</div><div class='del'>- *  array is generated by calling to_ary on the parameter).</div><div class='del'>- *</div><div class='del'>- *    first_array = ["Matz", "Guido"]</div><div class='add'>+ *    Array.new -&gt; new_empty_array</div><div class='add'>+ *    Array.new(array) -&gt; new_array</div><div class='add'>+ *    Array.new(size) -&gt; new_array</div><div class='add'>+ *    Array.new(size, default_value) -&gt; new_array</div><div class='add'>+ *    Array.new(size) {|index| ... } -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *    second_array = Array.new(first_array) #=&gt; ["Matz", "Guido"]</div><div class='add'>+ *  Returns a new \Array.</div><div class='ctx'>  *</div><div class='del'>- *    first_array.equal? second_array       #=&gt; false</div><div class='add'>+ *  With no block and no arguments, returns a new empty \Array object.</div><div class='ctx'>  *</div><div class='del'>- *  In the last form, an array of the given size is created.  Each element in</div><div class='del'>- *  this array is created by passing the element's index to the given block</div><div class='del'>- *  and storing the return value.</div><div class='add'>+ *  With no block and a single \Array argument +array+,</div><div class='add'>+ *  returns a new \Array formed from +array+:</div><div class='ctx'>  *</div><div class='del'>- *    Array.new(3) {|index| index ** 2}</div><div class='del'>- *    # =&gt; [0, 1, 4]</div><div class='add'>+ *    a = Array.new([:foo, 'bar', 2])</div><div class='add'>+ *    a.class # =&gt; Array</div><div class='add'>+ *    a # =&gt; [:foo, "bar", 2]</div><div class='ctx'>  *</div><div class='del'>- *  == Common gotchas</div><div class='add'>+ *  With no block and a single \Integer argument +size+,</div><div class='add'>+ *  returns a new \Array of the given size</div><div class='add'>+ *  whose elements are all +nil+:</div><div class='ctx'>  *</div><div class='del'>- *  When sending the second parameter, the same object will be used as the</div><div class='del'>- *  value for all the array elements:</div><div class='add'>+ *    a = Array.new(3)</div><div class='add'>+ *    a # =&gt; [nil, nil, nil]</div><div class='ctx'>  *</div><div class='del'>- *     a = Array.new(2, Hash.new)</div><div class='del'>- *     # =&gt; [{}, {}]</div><div class='add'>+ *  With no block and arguments +size+ and +default_value+,</div><div class='add'>+ *  returns an \Array of the given size;</div><div class='add'>+ *  each element is that same +default_value+:</div><div class='ctx'>  *</div><div class='del'>- *     a[0]['cat'] = 'feline'</div><div class='del'>- *     a # =&gt; [{"cat"=&gt;"feline"}, {"cat"=&gt;"feline"}]</div><div class='add'>+ *    a = Array.new(3, 'x')</div><div class='add'>+ *    a # =&gt; ['x', 'x', 'x']</div><div class='ctx'>  *</div><div class='del'>- *     a[1]['cat'] = 'Felix'</div><div class='del'>- *     a # =&gt; [{"cat"=&gt;"Felix"}, {"cat"=&gt;"Felix"}]</div><div class='add'>+ *  With a block and argument +size+,</div><div class='add'>+ *  returns an \Array of the given size;</div><div class='add'>+ *  the block is called with each successive integer +index+;</div><div class='add'>+ *  the element for that +index+ is the return value from the block:</div><div class='ctx'>  *</div><div class='del'>- *  Since all the Array elements store the same hash, changes to one of them</div><div class='del'>- *  will affect them all.</div><div class='add'>+ *    a = Array.new(3) {|index| "Element #{index}" }</div><div class='add'>+ *    a # =&gt; ["Element 0", "Element 1", "Element 2"]</div><div class='ctx'>  *</div><div class='del'>- *  If multiple copies are what you want, you should use the block</div><div class='del'>- *  version which uses the result of that block each time an element</div><div class='del'>- *  of the array needs to be initialized:</div><div class='del'>- *</div><div class='del'>- *     a = Array.new(2) {Hash.new}</div><div class='del'>- *     a[0]['cat'] = 'feline'</div><div class='del'>- *     a # =&gt; [{"cat"=&gt;"feline"}, {}]</div><div class='add'>+ *  Raises ArgumentError if +size+ is negative.</div><div class='ctx'>  *</div><div class='add'>+ *  With a block and no argument,</div><div class='add'>+ *  or a single argument +0+,</div><div class='add'>+ *  ignores the block and returns a new empty \Array.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -963,51 +1243,48 @@ rb_ary_initialize(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify(ary);</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-        if (ARY_OWNS_HEAP_P(ary) &amp;&amp; ARY_HEAP_PTR(ary) != NULL) {</div><div class='del'>-            ary_heap_free(ary);</div><div class='del'>-	}</div><div class='del'>-        rb_ary_unshare_safe(ary);</div><div class='del'>-        FL_SET_EMBED(ary);</div><div class='del'>-	ARY_SET_EMBED_LEN(ary, 0);</div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    rb_warning("given block not used");</div><div class='del'>-	}</div><div class='del'>-	return ary;</div><div class='add'>+        rb_ary_reset(ary);</div><div class='add'>+        assert(ARY_EMBED_P(ary));</div><div class='add'>+        assert(ARY_EMBED_LEN(ary) == 0);</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            rb_warning("given block not used");</div><div class='add'>+        }</div><div class='add'>+        return ary;</div><div class='ctx'>     }</div><div class='ctx'>     rb_scan_args(argc, argv, "02", &amp;size, &amp;val);</div><div class='ctx'>     if (argc == 1 &amp;&amp; !FIXNUM_P(size)) {</div><div class='del'>-	val = rb_check_array_type(size);</div><div class='del'>-	if (!NIL_P(val)) {</div><div class='del'>-	    rb_ary_replace(ary, val);</div><div class='del'>-	    return ary;</div><div class='del'>-	}</div><div class='add'>+        val = rb_check_array_type(size);</div><div class='add'>+        if (!NIL_P(val)) {</div><div class='add'>+            rb_ary_replace(ary, val);</div><div class='add'>+            return ary;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     len = NUM2LONG(size);</div><div class='ctx'>     /* NUM2LONG() may call size.to_int, ary can be frozen, modified, etc */</div><div class='ctx'>     if (len &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "negative array size");</div><div class='add'>+        rb_raise(rb_eArgError, "negative array size");</div><div class='ctx'>     }</div><div class='ctx'>     if (len &gt; ARY_MAX_SIZE) {</div><div class='del'>-	rb_raise(rb_eArgError, "array size too big");</div><div class='add'>+        rb_raise(rb_eArgError, "array size too big");</div><div class='ctx'>     }</div><div class='ctx'>     /* recheck after argument conversion */</div><div class='ctx'>     rb_ary_modify(ary);</div><div class='ctx'>     ary_resize_capa(ary, len);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	long i;</div><div class='add'>+        long i;</div><div class='ctx'> </div><div class='del'>-	if (argc == 2) {</div><div class='del'>-	    rb_warn("block supersedes default value argument");</div><div class='del'>-	}</div><div class='del'>-	for (i=0; i&lt;len; i++) {</div><div class='del'>-	    rb_ary_store(ary, i, rb_yield(LONG2NUM(i)));</div><div class='del'>-	    ARY_SET_LEN(ary, i + 1);</div><div class='del'>-	}</div><div class='add'>+        if (argc == 2) {</div><div class='add'>+            rb_warn("block supersedes default value argument");</div><div class='add'>+        }</div><div class='add'>+        for (i=0; i&lt;len; i++) {</div><div class='add'>+            rb_ary_store(ary, i, rb_yield(LONG2NUM(i)));</div><div class='add'>+            ARY_SET_LEN(ary, i + 1);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ary_memfill(ary, 0, len, val);</div><div class='del'>-	ARY_SET_LEN(ary, len);</div><div class='add'>+        ary_memfill(ary, 0, len, val);</div><div class='add'>+        ARY_SET_LEN(ary, len);</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -1038,26 +1315,26 @@ rb_ary_store(VALUE ary, long idx, VALUE val)</div><div class='ctx'>     long len = RARRAY_LEN(ary);</div><div class='ctx'> </div><div class='ctx'>     if (idx &lt; 0) {</div><div class='del'>-	idx += len;</div><div class='del'>-	if (idx &lt; 0) {</div><div class='del'>-	    rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",</div><div class='del'>-		     idx - len, -len);</div><div class='del'>-	}</div><div class='add'>+        idx += len;</div><div class='add'>+        if (idx &lt; 0) {</div><div class='add'>+            rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",</div><div class='add'>+                     idx - len, -len);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (idx &gt;= ARY_MAX_SIZE) {</div><div class='del'>-	rb_raise(rb_eIndexError, "index %ld too big", idx);</div><div class='add'>+        rb_raise(rb_eIndexError, "index %ld too big", idx);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify(ary);</div><div class='ctx'>     if (idx &gt;= ARY_CAPA(ary)) {</div><div class='del'>-	ary_double_capa(ary, idx);</div><div class='add'>+        ary_double_capa(ary, idx);</div><div class='ctx'>     }</div><div class='ctx'>     if (idx &gt; len) {</div><div class='del'>-	ary_mem_clear(ary, len, idx - len + 1);</div><div class='add'>+        ary_mem_clear(ary, len, idx - len + 1);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (idx &gt;= len) {</div><div class='del'>-	ARY_SET_LEN(ary, idx + 1);</div><div class='add'>+        ARY_SET_LEN(ary, idx + 1);</div><div class='ctx'>     }</div><div class='ctx'>     ARY_SET(ary, idx, val);</div><div class='ctx'> }</div><div class='hunk'>@@ -1069,17 +1346,20 @@ ary_make_partial(VALUE ary, VALUE klass, long offset, long len)</div><div class='ctx'>     assert(len &gt;= 0);</div><div class='ctx'>     assert(offset+len &lt;= RARRAY_LEN(ary));</div><div class='ctx'> </div><div class='del'>-    if (len &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='del'>-        VALUE result = ary_alloc(klass);</div><div class='add'>+    const size_t rarray_embed_capa_max = (sizeof(struct RArray) - offsetof(struct RArray, as.ary)) / sizeof(VALUE);</div><div class='add'>+</div><div class='add'>+    if ((size_t)len &lt;= rarray_embed_capa_max &amp;&amp; ary_embeddable_p(len)) {</div><div class='add'>+        VALUE result = ary_alloc_embed(klass, len);</div><div class='ctx'>         ary_memcpy(result, 0, len, RARRAY_CONST_PTR_TRANSIENT(ary) + offset);</div><div class='ctx'>         ARY_SET_EMBED_LEN(result, len);</div><div class='ctx'>         return result;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        VALUE shared, result = ary_alloc(klass);</div><div class='del'>-        FL_UNSET_EMBED(result);</div><div class='add'>+        VALUE shared = ary_make_shared(ary);</div><div class='add'>+</div><div class='add'>+        VALUE result = ary_alloc_heap(klass);</div><div class='add'>+        assert(!ARY_EMBED_P(result));</div><div class='ctx'> </div><div class='del'>-        shared = ary_make_shared(ary);</div><div class='ctx'>         ARY_SET_PTR(result, RARRAY_CONST_PTR_TRANSIENT(ary));</div><div class='ctx'>         ARY_SET_LEN(result, RARRAY_LEN(ary));</div><div class='ctx'>         rb_ary_set_shared(result, shared);</div><div class='hunk'>@@ -1094,9 +1374,59 @@ ary_make_partial(VALUE ary, VALUE klass, long offset, long len)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='add'>+ary_make_partial_step(VALUE ary, VALUE klass, long offset, long len, long step)</div><div class='add'>+{</div><div class='add'>+    assert(offset &gt;= 0);</div><div class='add'>+    assert(len &gt;= 0);</div><div class='add'>+    assert(offset+len &lt;= RARRAY_LEN(ary));</div><div class='add'>+    assert(step != 0);</div><div class='add'>+</div><div class='add'>+    const VALUE *values = RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='add'>+    const long orig_len = len;</div><div class='add'>+</div><div class='add'>+    if (step &gt; 0 &amp;&amp; step &gt;= len) {</div><div class='add'>+        VALUE result = ary_new(klass, 1);</div><div class='add'>+        VALUE *ptr = (VALUE *)ARY_EMBED_PTR(result);</div><div class='add'>+        RB_OBJ_WRITE(result, ptr, values[offset]);</div><div class='add'>+        ARY_SET_EMBED_LEN(result, 1);</div><div class='add'>+        return result;</div><div class='add'>+    }</div><div class='add'>+    else if (step &lt; 0 &amp;&amp; step &lt; -len) {</div><div class='add'>+        step = -len;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    long ustep = (step &lt; 0) ? -step : step;</div><div class='add'>+    len = roomof(len, ustep);</div><div class='add'>+</div><div class='add'>+    long i;</div><div class='add'>+    long j = offset + ((step &gt; 0) ? 0 : (orig_len - 1));</div><div class='add'>+</div><div class='add'>+    VALUE result = ary_new(klass, len);</div><div class='add'>+    if (ARY_EMBED_P(result)) {</div><div class='add'>+        VALUE *ptr = (VALUE *)ARY_EMBED_PTR(result);</div><div class='add'>+        for (i = 0; i &lt; len; ++i) {</div><div class='add'>+            RB_OBJ_WRITE(result, ptr+i, values[j]);</div><div class='add'>+            j += step;</div><div class='add'>+        }</div><div class='add'>+        ARY_SET_EMBED_LEN(result, len);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        RARRAY_PTR_USE_TRANSIENT(result, ptr, {</div><div class='add'>+            for (i = 0; i &lt; len; ++i) {</div><div class='add'>+                RB_OBJ_WRITE(result, ptr+i, values[j]);</div><div class='add'>+                j += step;</div><div class='add'>+            }</div><div class='add'>+        });</div><div class='add'>+        ARY_SET_LEN(result, len);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='ctx'> ary_make_shared_copy(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    return ary_make_partial(ary, rb_obj_class(ary), 0, RARRAY_LEN(ary));</div><div class='add'>+    return ary_make_partial(ary, rb_cArray, 0, RARRAY_LEN(ary));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> enum ary_take_pos_flags</div><div class='hunk'>@@ -1113,38 +1443,39 @@ ary_take_first_or_last(int argc, const VALUE *argv, VALUE ary, enum ary_take_pos</div><div class='ctx'>     long offset = 0;</div><div class='ctx'> </div><div class='ctx'>     argc = rb_check_arity(argc, 0, 1);</div><div class='del'>-    /* the case optional argument is ommited should be handled in</div><div class='add'>+    /* the case optional argument is omitted should be handled in</div><div class='ctx'>      * callers of this function.  if another arity case is added,</div><div class='ctx'>      * this arity check needs to rewrite. */</div><div class='del'>-    RUBY_ASSERT_WHEN(TRUE, argc == 1);</div><div class='add'>+    RUBY_ASSERT_ALWAYS(argc == 1);</div><div class='ctx'> </div><div class='ctx'>     n = NUM2LONG(argv[0]);</div><div class='ctx'>     len = RARRAY_LEN(ary);</div><div class='ctx'>     if (n &gt; len) {</div><div class='del'>-	n = len;</div><div class='add'>+        n = len;</div><div class='ctx'>     }</div><div class='ctx'>     else if (n &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "negative array size");</div><div class='add'>+        rb_raise(rb_eArgError, "negative array size");</div><div class='ctx'>     }</div><div class='ctx'>     if (last) {</div><div class='del'>-	offset = len - n;</div><div class='add'>+        offset = len - n;</div><div class='ctx'>     }</div><div class='ctx'>     return ary_make_partial(ary, rb_cArray, offset, n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary &lt;&lt; obj            -&gt; ary</div><div class='add'>+ *    array &lt;&lt; object -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Appends +object+ to +self+; returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *  Append---Pushes the given object on to the end of this array. This</div><div class='del'>- *  expression returns the array itself, so several appends</div><div class='del'>- *  may be chained together.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a &lt;&lt; :baz # =&gt; [:foo, "bar", 2, :baz]</div><div class='ctx'>  *</div><div class='del'>- *     a = [ 1, 2 ]</div><div class='del'>- *     a &lt;&lt; "c" &lt;&lt; "d" &lt;&lt; [ 3, 4 ]</div><div class='del'>- *             #=&gt;  [ 1, 2, "c", "d", [ 3, 4 ] ]</div><div class='del'>- *     a</div><div class='del'>- *             #=&gt;  [ 1, 2, "c", "d", [ 3, 4 ] ]</div><div class='add'>+ *  Appends +object+ as one element, even if it is another \Array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = a &lt;&lt; [3, 4]</div><div class='add'>+ *    a1 # =&gt; [:foo, "bar", 2, [3, 4]]</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -1154,7 +1485,7 @@ rb_ary_push(VALUE ary, VALUE item)</div><div class='ctx'>     long idx = RARRAY_LEN((ary_verify(ary), ary));</div><div class='ctx'>     VALUE target_ary = ary_ensure_room_for_push(ary, 1);</div><div class='ctx'>     RARRAY_PTR_USE_TRANSIENT(ary, ptr, {</div><div class='del'>-	RB_OBJ_WRITE(target_ary, &amp;ptr[idx], item);</div><div class='add'>+        RB_OBJ_WRITE(target_ary, &amp;ptr[idx], item);</div><div class='ctx'>     });</div><div class='ctx'>     ARY_SET_LEN(ary, idx + 1);</div><div class='ctx'>     ary_verify(ary);</div><div class='hunk'>@@ -1173,19 +1504,24 @@ rb_ary_cat(VALUE ary, const VALUE *argv, long len)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.push(obj, ...)    -&gt; ary</div><div class='del'>- *     ary.append(obj, ...)  -&gt; ary</div><div class='del'>- *</div><div class='del'>- *  Append --- Pushes the given object(s) on to the end of this array. This</div><div class='del'>- *  expression returns the array itself, so several appends</div><div class='del'>- *  may be chained together. See also Array#pop for the opposite</div><div class='del'>- *  effect.</div><div class='del'>- *</div><div class='del'>- *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.push("d", "e", "f")</div><div class='del'>- *             #=&gt; ["a", "b", "c", "d", "e", "f"]</div><div class='del'>- *     [1, 2, 3].push(4).push(5)</div><div class='del'>- *             #=&gt; [1, 2, 3, 4, 5]</div><div class='add'>+ *    array.push(*objects) -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Appends trailing elements.</div><div class='add'>+ *</div><div class='add'>+ *  Appends each argument in +objects+ to +self+;  returns +self+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.push(:baz, :bat) # =&gt; [:foo, "bar", 2, :baz, :bat]</div><div class='add'>+ *</div><div class='add'>+ *  Appends each argument as one element, even if it is another \Array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = a.push([:baz, :bat], [:bam, :bad])</div><div class='add'>+ *    a1 # =&gt; [:foo, "bar", 2, [:baz, :bat], [:bam, :bad]]</div><div class='add'>+ *</div><div class='add'>+ *  Array#append is an alias for Array#push.</div><div class='add'>+ *</div><div class='add'>+ *  Related: #pop, #shift, #unshift.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1202,10 +1538,10 @@ rb_ary_pop(VALUE ary)</div><div class='ctx'>     n = RARRAY_LEN(ary);</div><div class='ctx'>     if (n == 0) return Qnil;</div><div class='ctx'>     if (ARY_OWNS_HEAP_P(ary) &amp;&amp;</div><div class='del'>-	n * 3 &lt; ARY_CAPA(ary) &amp;&amp;</div><div class='del'>-	ARY_CAPA(ary) &gt; ARY_DEFAULT_SIZE)</div><div class='add'>+        n * 3 &lt; ARY_CAPA(ary) &amp;&amp;</div><div class='add'>+        ARY_CAPA(ary) &gt; ARY_DEFAULT_SIZE)</div><div class='ctx'>     {</div><div class='del'>-	ary_resize_capa(ary, n * 2);</div><div class='add'>+        ary_resize_capa(ary, n * 2);</div><div class='ctx'>     }</div><div class='ctx'>     --n;</div><div class='ctx'>     ARY_SET_LEN(ary, n);</div><div class='hunk'>@@ -1215,20 +1551,33 @@ rb_ary_pop(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.pop    -&gt; obj or nil</div><div class='del'>- *     ary.pop(n) -&gt; new_ary</div><div class='add'>+ *    array.pop -&gt; object or nil</div><div class='add'>+ *    array.pop(n) -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Removes and returns trailing elements.</div><div class='add'>+ *</div><div class='add'>+ *  When no argument is given and +self+ is not empty,</div><div class='add'>+ *  removes and returns the last element:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.pop # =&gt; 2</div><div class='add'>+ *    a # =&gt; [:foo, "bar"]</div><div class='ctx'>  *</div><div class='del'>- *  Removes the last element from +self+ and returns it, or</div><div class='del'>- *  +nil+ if the array is empty.</div><div class='add'>+ *  Returns +nil+ if the array is empty.</div><div class='ctx'>  *</div><div class='del'>- *  If a number +n+ is given, returns an array of the last +n+ elements</div><div class='del'>- *  (or less) just like &lt;code&gt;array.slice!(-n, n)&lt;/code&gt; does. See also</div><div class='del'>- *  Array#push for the opposite effect.</div><div class='add'>+ *  When a non-negative \Integer argument +n+ is given and is in range,</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c", "d" ]</div><div class='del'>- *     a.pop     #=&gt; "d"</div><div class='del'>- *     a.pop(2)  #=&gt; ["b", "c"]</div><div class='del'>- *     a         #=&gt; ["a"]</div><div class='add'>+ *  removes and returns the last +n+ elements in a new \Array:</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.pop(2) # =&gt; ["bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  If +n+ is positive and out of range,</div><div class='add'>+ *  removes and returns all elements:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.pop(50) # =&gt; [:foo, "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  Related: #push, #shift, #unshift.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1237,7 +1586,7 @@ rb_ary_pop_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     VALUE result;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	return rb_ary_pop(ary);</div><div class='add'>+        return rb_ary_pop(ary);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify_check(ary);</div><div class='hunk'>@@ -1253,55 +1602,49 @@ rb_ary_shift(VALUE ary)</div><div class='ctx'>     VALUE top;</div><div class='ctx'>     long len = RARRAY_LEN(ary);</div><div class='ctx'> </div><div class='del'>-    rb_ary_modify_check(ary);</div><div class='del'>-    if (len == 0) return Qnil;</div><div class='del'>-    top = RARRAY_AREF(ary, 0);</div><div class='del'>-    if (!ARY_SHARED_P(ary)) {</div><div class='del'>-	if (len &lt; ARY_DEFAULT_SIZE) {</div><div class='del'>-            RARRAY_PTR_USE_TRANSIENT(ary, ptr, {</div><div class='del'>-		MEMMOVE(ptr, ptr+1, VALUE, len-1);</div><div class='del'>-	    }); /* WB: no new reference */</div><div class='del'>-            ARY_INCREASE_LEN(ary, -1);</div><div class='del'>-            ary_verify(ary);</div><div class='del'>-	    return top;</div><div class='del'>-	}</div><div class='del'>-        assert(!ARY_EMBED_P(ary)); /* ARY_EMBED_LEN_MAX &lt; ARY_DEFAULT_SIZE */</div><div class='del'>-</div><div class='del'>-	ARY_SET(ary, 0, Qnil);</div><div class='del'>-	ary_make_shared(ary);</div><div class='del'>-    }</div><div class='del'>-    else if (ARY_SHARED_OCCUPIED(ARY_SHARED(ary))) {</div><div class='del'>-        RARRAY_PTR_USE_TRANSIENT(ary, ptr, ptr[0] = Qnil);</div><div class='add'>+    if (len == 0) {</div><div class='add'>+        rb_ary_modify_check(ary);</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='del'>-    ARY_INCREASE_PTR(ary, 1);		/* shift ptr */</div><div class='del'>-    ARY_INCREASE_LEN(ary, -1);</div><div class='ctx'> </div><div class='del'>-    ary_verify(ary);</div><div class='add'>+    top = RARRAY_AREF(ary, 0);</div><div class='add'>+</div><div class='add'>+    rb_ary_behead(ary, 1);</div><div class='ctx'> </div><div class='ctx'>     return top;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.shift    -&gt; obj or nil</div><div class='del'>- *     ary.shift(n) -&gt; new_ary</div><div class='add'>+ *     array.shift -&gt; object or nil</div><div class='add'>+ *     array.shift(n) -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Removes and returns leading elements.</div><div class='add'>+ *</div><div class='add'>+ *  When no argument is given, removes and returns the first element:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.shift # =&gt; :foo</div><div class='add'>+ *    a # =&gt; ['bar', 2]</div><div class='add'>+ *</div><div class='add'>+ *  Returns +nil+ if +self+ is empty.</div><div class='add'>+ *</div><div class='add'>+ *  When positive \Integer argument +n+ is given, removes the first +n+ elements;</div><div class='add'>+ *  returns those elements in a new \Array:</div><div class='ctx'>  *</div><div class='del'>- *  Removes the first element of +self+ and returns it (shifting all</div><div class='del'>- *  other elements down by one). Returns +nil+ if the array</div><div class='del'>- *  is empty.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.shift(2) # =&gt; [:foo, 'bar']</div><div class='add'>+ *    a # =&gt; [2]</div><div class='ctx'>  *</div><div class='del'>- *  If a number +n+ is given, returns an array of the first +n+ elements</div><div class='del'>- *  (or less) just like &lt;code&gt;array.slice!(0, n)&lt;/code&gt; does. With +ary+</div><div class='del'>- *  containing only the remainder elements, not including what was shifted to</div><div class='del'>- *  +new_ary+. See also Array#unshift for the opposite effect.</div><div class='add'>+ *  If +n+ is as large as or larger than &lt;tt&gt;self.length&lt;/tt&gt;,</div><div class='add'>+ *  removes all elements; returns those elements in a new \Array:</div><div class='ctx'>  *</div><div class='del'>- *     args = [ "-m", "-q", "filename" ]</div><div class='del'>- *     args.shift     #=&gt; "-m"</div><div class='del'>- *     args           #=&gt; ["-q", "filename"]</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.shift(3) # =&gt; [:foo, 'bar', 2]</div><div class='ctx'>  *</div><div class='del'>- *     args = [ "-m", "-q", "filename" ]</div><div class='del'>- *     args.shift(2)  #=&gt; ["-m", "-q"]</div><div class='del'>- *     args           #=&gt; ["filename"]</div><div class='add'>+ *  If +n+ is zero, returns a new empty \Array; +self+ is unmodified.</div><div class='add'>+ *</div><div class='add'>+ *  Related: #push, #pop, #unshift.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1311,7 +1654,7 @@ rb_ary_shift_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     long n;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	return rb_ary_shift(ary);</div><div class='add'>+        return rb_ary_shift(ary);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify_check(ary);</div><div class='hunk'>@@ -1325,108 +1668,133 @@ rb_ary_shift_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> MJIT_FUNC_EXPORTED VALUE</div><div class='ctx'> rb_ary_behead(VALUE ary, long n)</div><div class='ctx'> {</div><div class='del'>-    if(n&lt;=0) return ary;</div><div class='add'>+    if (n &lt;= 0) {</div><div class='add'>+        return ary;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify_check(ary);</div><div class='del'>-    if (ARY_SHARED_P(ary)) {</div><div class='del'>-	if (ARY_SHARED_OCCUPIED(ARY_SHARED(ary))) {</div><div class='del'>-	  setup_occupied_shared:</div><div class='del'>-	    ary_mem_clear(ary, 0, n);</div><div class='del'>-	}</div><div class='del'>-        ARY_INCREASE_PTR(ary, n);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	if (RARRAY_LEN(ary) &lt; ARY_DEFAULT_SIZE) {</div><div class='add'>+</div><div class='add'>+    if (!ARY_SHARED_P(ary)) {</div><div class='add'>+        if (ARY_EMBED_P(ary) || RARRAY_LEN(ary) &lt; ARY_DEFAULT_SIZE) {</div><div class='ctx'>             RARRAY_PTR_USE_TRANSIENT(ary, ptr, {</div><div class='del'>-                MEMMOVE(ptr, ptr+n, VALUE, RARRAY_LEN(ary)-n);</div><div class='del'>-	    }); /* WB: no new reference */</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ary_make_shared(ary);</div><div class='del'>-	    goto setup_occupied_shared;</div><div class='del'>-	}</div><div class='add'>+                MEMMOVE(ptr, ptr + n, VALUE, RARRAY_LEN(ary) - n);</div><div class='add'>+            }); /* WB: no new reference */</div><div class='add'>+            ARY_INCREASE_LEN(ary, -n);</div><div class='add'>+            ary_verify(ary);</div><div class='add'>+            return ary;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ary_mem_clear(ary, 0, n);</div><div class='add'>+        ary_make_shared(ary);</div><div class='add'>+    }</div><div class='add'>+    else if (ARY_SHARED_ROOT_OCCUPIED(ARY_SHARED_ROOT(ary))) {</div><div class='add'>+        ary_mem_clear(ary, 0, n);</div><div class='ctx'>     }</div><div class='del'>-    ARY_INCREASE_LEN(ary, -n);</div><div class='ctx'> </div><div class='add'>+    ARY_INCREASE_PTR(ary, n);</div><div class='add'>+    ARY_INCREASE_LEN(ary, -n);</div><div class='ctx'>     ary_verify(ary);</div><div class='add'>+</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ary_ensure_room_for_unshift(VALUE ary, int argc)</div><div class='add'>+make_room_for_unshift(VALUE ary, const VALUE *head, VALUE *sharedp, int argc, long capa, long len)</div><div class='add'>+{</div><div class='add'>+    if (head - sharedp &lt; argc) {</div><div class='add'>+        long room = capa - len - argc;</div><div class='add'>+</div><div class='add'>+        room -= room &gt;&gt; 4;</div><div class='add'>+        MEMMOVE((VALUE *)sharedp + argc + room, head, VALUE, len);</div><div class='add'>+        head = sharedp + argc + room;</div><div class='add'>+    }</div><div class='add'>+    ARY_SET_PTR(ary, head - argc);</div><div class='add'>+    assert(ARY_SHARED_ROOT_OCCUPIED(ARY_SHARED_ROOT(ary)));</div><div class='add'>+</div><div class='add'>+    ary_verify(ary);</div><div class='add'>+    return ARY_SHARED_ROOT(ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_modify_for_unshift(VALUE ary, int argc)</div><div class='ctx'> {</div><div class='ctx'>     long len = RARRAY_LEN(ary);</div><div class='ctx'>     long new_len = len + argc;</div><div class='ctx'>     long capa;</div><div class='ctx'>     const VALUE *head, *sharedp;</div><div class='ctx'> </div><div class='del'>-    if (len &gt; ARY_MAX_SIZE - argc) {</div><div class='del'>-	rb_raise(rb_eIndexError, "index %ld too big", new_len);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (ARY_SHARED_P(ary)) {</div><div class='del'>-	VALUE shared = ARY_SHARED(ary);</div><div class='del'>-	capa = RARRAY_LEN(shared);</div><div class='del'>-	if (ARY_SHARED_OCCUPIED(shared) &amp;&amp; capa &gt; new_len) {</div><div class='del'>-            head = RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='del'>-            sharedp = RARRAY_CONST_PTR_TRANSIENT(shared);</div><div class='del'>-	    goto makeroom_if_need;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='ctx'>     rb_ary_modify(ary);</div><div class='ctx'>     capa = ARY_CAPA(ary);</div><div class='ctx'>     if (capa - (capa &gt;&gt; 6) &lt;= new_len) {</div><div class='del'>-	ary_double_capa(ary, new_len);</div><div class='add'>+        ary_double_capa(ary, new_len);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* use shared array for big "queues" */</div><div class='del'>-    if (new_len &gt; ARY_DEFAULT_SIZE * 4) {</div><div class='add'>+    if (new_len &gt; ARY_DEFAULT_SIZE * 4 &amp;&amp; !ARY_EMBED_P(ary)) {</div><div class='ctx'>         ary_verify(ary);</div><div class='ctx'> </div><div class='ctx'>         /* make a room for unshifted items */</div><div class='del'>-	capa = ARY_CAPA(ary);</div><div class='del'>-	ary_make_shared(ary);</div><div class='add'>+        capa = ARY_CAPA(ary);</div><div class='add'>+        ary_make_shared(ary);</div><div class='ctx'> </div><div class='ctx'>         head = sharedp = RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='del'>-	goto makeroom;</div><div class='del'>-      makeroom_if_need:</div><div class='del'>-	if (head - sharedp &lt; argc) {</div><div class='del'>-	    long room;</div><div class='del'>-	  makeroom:</div><div class='del'>-	    room = capa - new_len;</div><div class='del'>-	    room -= room &gt;&gt; 4;</div><div class='del'>-	    MEMMOVE((VALUE *)sharedp + argc + room, head, VALUE, len);</div><div class='del'>-	    head = sharedp + argc + room;</div><div class='del'>-	}</div><div class='del'>-	ARY_SET_PTR(ary, head - argc);</div><div class='del'>-	assert(ARY_SHARED_OCCUPIED(ARY_SHARED(ary)));</div><div class='del'>-</div><div class='del'>-        ary_verify(ary);</div><div class='del'>-	return ARY_SHARED(ary);</div><div class='add'>+        return make_room_for_unshift(ary, head, (void *)sharedp, argc, capa, len);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	/* sliding items */</div><div class='add'>+        /* sliding items */</div><div class='ctx'>         RARRAY_PTR_USE_TRANSIENT(ary, ptr, {</div><div class='del'>-	    MEMMOVE(ptr + argc, ptr, VALUE, len);</div><div class='del'>-	});</div><div class='add'>+            MEMMOVE(ptr + argc, ptr, VALUE, len);</div><div class='add'>+        });</div><div class='ctx'> </div><div class='ctx'>         ary_verify(ary);</div><div class='del'>-	return ary;</div><div class='add'>+        return ary;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_ensure_room_for_unshift(VALUE ary, int argc)</div><div class='add'>+{</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    long new_len = len + argc;</div><div class='add'>+</div><div class='add'>+    if (len &gt; ARY_MAX_SIZE - argc) {</div><div class='add'>+        rb_raise(rb_eIndexError, "index %ld too big", new_len);</div><div class='add'>+    }</div><div class='add'>+    else if (! ARY_SHARED_P(ary)) {</div><div class='add'>+        return ary_modify_for_unshift(ary, argc);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        VALUE shared_root = ARY_SHARED_ROOT(ary);</div><div class='add'>+        long capa = RARRAY_LEN(shared_root);</div><div class='add'>+</div><div class='add'>+        if (! ARY_SHARED_ROOT_OCCUPIED(shared_root)) {</div><div class='add'>+            return ary_modify_for_unshift(ary, argc);</div><div class='add'>+        }</div><div class='add'>+        else if (new_len &gt; capa) {</div><div class='add'>+            return ary_modify_for_unshift(ary, argc);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            const VALUE * head = RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='add'>+            void *sharedp = (void *)RARRAY_CONST_PTR_TRANSIENT(shared_root);</div><div class='add'>+</div><div class='add'>+            rb_ary_modify_check(ary);</div><div class='add'>+            return make_room_for_unshift(ary, head, sharedp, argc, capa, len);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.unshift(obj, ...)  -&gt; ary</div><div class='del'>- *     ary.prepend(obj, ...)  -&gt; ary</div><div class='add'>+ *    array.unshift(*objects) -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Prepends the given +objects+ to +self+:</div><div class='ctx'>  *</div><div class='del'>- *  Prepends objects to the front of +self+, moving other elements upwards.</div><div class='del'>- *  See also Array#shift for the opposite effect.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.unshift(:bam, :bat) # =&gt; [:bam, :bat, :foo, "bar", 2]</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "b", "c", "d" ]</div><div class='del'>- *     a.unshift("a")   #=&gt; ["a", "b", "c", "d"]</div><div class='del'>- *     a.unshift(1, 2)  #=&gt; [ 1, 2, "a", "b", "c", "d"]</div><div class='add'>+ *  Array#prepend is an alias for Array#unshift.</div><div class='add'>+ *</div><div class='add'>+ *  Related: #push, #pop, #shift.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1436,8 +1804,8 @@ rb_ary_unshift_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     VALUE target_ary;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	rb_ary_modify_check(ary);</div><div class='del'>-	return ary;</div><div class='add'>+        rb_ary_modify_check(ary);</div><div class='add'>+        return ary;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     target_ary = ary_ensure_room_for_unshift(ary, argc);</div><div class='hunk'>@@ -1459,7 +1827,7 @@ rb_ary_elt(VALUE ary, long offset)</div><div class='ctx'>     long len = RARRAY_LEN(ary);</div><div class='ctx'>     if (len == 0) return Qnil;</div><div class='ctx'>     if (offset &lt; 0 || len &lt;= offset) {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     return RARRAY_AREF(ary, offset);</div><div class='ctx'> }</div><div class='hunk'>@@ -1471,7 +1839,7 @@ rb_ary_entry(VALUE ary, long offset)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_ary_subseq(VALUE ary, long beg, long len)</div><div class='add'>+rb_ary_subseq_step(VALUE ary, long beg, long len, long step)</div><div class='ctx'> {</div><div class='ctx'>     VALUE klass;</div><div class='ctx'>     long alen = RARRAY_LEN(ary);</div><div class='hunk'>@@ -1480,48 +1848,129 @@ rb_ary_subseq(VALUE ary, long beg, long len)</div><div class='ctx'>     if (beg &lt; 0 || len &lt; 0) return Qnil;</div><div class='ctx'> </div><div class='ctx'>     if (alen &lt; len || alen &lt; beg + len) {</div><div class='del'>-	len = alen - beg;</div><div class='add'>+        len = alen - beg;</div><div class='ctx'>     }</div><div class='del'>-    klass = rb_obj_class(ary);</div><div class='add'>+    klass = rb_cArray;</div><div class='ctx'>     if (len == 0) return ary_new(klass, 0);</div><div class='add'>+    if (step == 0)</div><div class='add'>+        rb_raise(rb_eArgError, "slice step cannot be zero");</div><div class='add'>+    if (step == 1)</div><div class='add'>+        return ary_make_partial(ary, klass, beg, len);</div><div class='add'>+    else</div><div class='add'>+        return ary_make_partial_step(ary, klass, beg, len, step);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return ary_make_partial(ary, klass, beg, len);</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_subseq(VALUE ary, long beg, long len)</div><div class='add'>+{</div><div class='add'>+    return rb_ary_subseq_step(ary, beg, len, 1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE rb_ary_aref2(VALUE ary, VALUE b, VALUE e);</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary[index]                -&gt; obj     or nil</div><div class='del'>- *     ary[start, length]        -&gt; new_ary or nil</div><div class='del'>- *     ary[range]                -&gt; new_ary or nil</div><div class='del'>- *     ary.slice(index)          -&gt; obj     or nil</div><div class='del'>- *     ary.slice(start, length)  -&gt; new_ary or nil</div><div class='del'>- *     ary.slice(range)          -&gt; new_ary or nil</div><div class='del'>- *</div><div class='del'>- *  Element Reference --- Returns the element at +index+, or returns a</div><div class='del'>- *  subarray starting at the +start+ index and continuing for +length+</div><div class='del'>- *  elements, or returns a subarray specified by +range+ of indices.</div><div class='del'>- *</div><div class='del'>- *  Negative indices count backward from the end of the array (-1 is the last</div><div class='del'>- *  element).  For +start+ and +range+ cases the starting index is just before</div><div class='del'>- *  an element.  Additionally, an empty array is returned when the starting</div><div class='del'>- *  index for an element range is at the end of the array.</div><div class='del'>- *</div><div class='del'>- *  Returns +nil+ if the index (or starting index) are out of range.</div><div class='del'>- *</div><div class='del'>- *     a = [ "a", "b", "c", "d", "e" ]</div><div class='del'>- *     a[2] +  a[0] + a[1]    #=&gt; "cab"</div><div class='del'>- *     a[6]                   #=&gt; nil</div><div class='del'>- *     a[1, 2]                #=&gt; [ "b", "c" ]</div><div class='del'>- *     a[1..3]                #=&gt; [ "b", "c", "d" ]</div><div class='del'>- *     a[4..7]                #=&gt; [ "e" ]</div><div class='del'>- *     a[6..10]               #=&gt; nil</div><div class='del'>- *     a[-3, 3]               #=&gt; [ "c", "d", "e" ]</div><div class='del'>- *     # special cases</div><div class='del'>- *     a[5]                   #=&gt; nil</div><div class='del'>- *     a[6, 1]                #=&gt; nil</div><div class='del'>- *     a[5, 1]                #=&gt; []</div><div class='del'>- *     a[5..10]               #=&gt; []</div><div class='add'>+ *    array[index] -&gt; object or nil</div><div class='add'>+ *    array[start, length] -&gt; object or nil</div><div class='add'>+ *    array[range] -&gt; object or nil</div><div class='add'>+ *    array[aseq] -&gt; object or nil</div><div class='add'>+ *    array.slice(index) -&gt; object or nil</div><div class='add'>+ *    array.slice(start, length) -&gt; object or nil</div><div class='add'>+ *    array.slice(range) -&gt; object or nil</div><div class='add'>+ *    array.slice(aseq) -&gt; object or nil</div><div class='add'>+ *</div><div class='add'>+ *  Returns elements from +self+; does not modify +self+.</div><div class='add'>+ *</div><div class='add'>+ *  When a single \Integer argument +index+ is given, returns the element at offset +index+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[0] # =&gt; :foo</div><div class='add'>+ *    a[2] # =&gt; 2</div><div class='add'>+ *    a # =&gt; [:foo, "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  If +index+ is negative, counts relative to the end of +self+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[-1] # =&gt; 2</div><div class='add'>+ *    a[-2] # =&gt; "bar"</div><div class='add'>+ *</div><div class='add'>+ *  If +index+ is out of range, returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  When two \Integer arguments +start+ and +length+ are given,</div><div class='add'>+ *  returns a new \Array of size +length+ containing successive elements beginning at offset +start+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[0, 2] # =&gt; [:foo, "bar"]</div><div class='add'>+ *    a[1, 2] # =&gt; ["bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;start + length&lt;/tt&gt; is greater than &lt;tt&gt;self.length&lt;/tt&gt;,</div><div class='add'>+ *  returns all elements from offset +start+ to the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[0, 4] # =&gt; [:foo, "bar", 2]</div><div class='add'>+ *    a[1, 3] # =&gt; ["bar", 2]</div><div class='add'>+ *    a[2, 2] # =&gt; [2]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;start == self.size&lt;/tt&gt; and &lt;tt&gt;length &gt;= 0&lt;/tt&gt;,</div><div class='add'>+ *  returns a new empty \Array.</div><div class='add'>+ *</div><div class='add'>+ *  If +length+ is negative, returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  When a single \Range argument +range+ is given,</div><div class='add'>+ *  treats &lt;tt&gt;range.min&lt;/tt&gt; as +start+ above</div><div class='add'>+ *  and &lt;tt&gt;range.size&lt;/tt&gt; as +length+ above:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[0..1] # =&gt; [:foo, "bar"]</div><div class='add'>+ *    a[1..2] # =&gt; ["bar", 2]</div><div class='ctx'>  *</div><div class='add'>+ *  Special case: If &lt;tt&gt;range.start == a.size&lt;/tt&gt;, returns a new empty \Array.</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.end&lt;/tt&gt; is negative, calculates the end index from the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[0..-1] # =&gt; [:foo, "bar", 2]</div><div class='add'>+ *    a[0..-2] # =&gt; [:foo, "bar"]</div><div class='add'>+ *    a[0..-3] # =&gt; [:foo]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.start&lt;/tt&gt; is negative, calculates the start index from the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[-1..2] # =&gt; [2]</div><div class='add'>+ *    a[-2..2] # =&gt; ["bar", 2]</div><div class='add'>+ *    a[-3..2] # =&gt; [:foo, "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.start&lt;/tt&gt; is larger than the array size, returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[4..1] # =&gt; nil</div><div class='add'>+ *    a[4..0] # =&gt; nil</div><div class='add'>+ *    a[4..-1] # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  When a single Enumerator::ArithmeticSequence argument +aseq+ is given,</div><div class='add'>+ *  returns an \Array of elements corresponding to the indexes produced by</div><div class='add'>+ *  the sequence.</div><div class='add'>+ *</div><div class='add'>+ *    a = ['--', 'data1', '--', 'data2', '--', 'data3']</div><div class='add'>+ *    a[(1..).step(2)] # =&gt; ["data1", "data2", "data3"]</div><div class='add'>+ *</div><div class='add'>+ *  Unlike slicing with range, if the start or the end of the arithmetic sequence</div><div class='add'>+ *  is larger than array size, throws RangeError.</div><div class='add'>+ *</div><div class='add'>+ *    a = ['--', 'data1', '--', 'data2', '--', 'data3']</div><div class='add'>+ *    a[(1..11).step(2)]</div><div class='add'>+ *    # RangeError (((1..11).step(2)) out of range)</div><div class='add'>+ *    a[(7..).step(2)]</div><div class='add'>+ *    # RangeError (((7..).step(2)) out of range)</div><div class='add'>+ *</div><div class='add'>+ *  If given a single argument, and its type is not one of the listed, tries to</div><div class='add'>+ *  convert it to Integer, and raises if it is impossible:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    # Raises TypeError (no implicit conversion of Symbol into Integer):</div><div class='add'>+ *    a[:foo]</div><div class='add'>+ *</div><div class='add'>+ *  Array#slice is an alias for Array#[].</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -1529,18 +1978,18 @@ rb_ary_aref(int argc, const VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     rb_check_arity(argc, 1, 2);</div><div class='ctx'>     if (argc == 2) {</div><div class='del'>-	return rb_ary_aref2(ary, argv[0], argv[1]);</div><div class='add'>+        return rb_ary_aref2(ary, argv[0], argv[1]);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_ary_aref1(ary, argv[0]);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_ary_aref2(VALUE ary, VALUE b, VALUE e)</div><div class='ctx'> {</div><div class='ctx'>     long beg = NUM2LONG(b);</div><div class='ctx'>     long len = NUM2LONG(e);</div><div class='ctx'>     if (beg &lt; 0) {</div><div class='del'>-	beg += RARRAY_LEN(ary);</div><div class='add'>+        beg += RARRAY_LEN(ary);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_ary_subseq(ary, beg, len);</div><div class='ctx'> }</div><div class='hunk'>@@ -1548,35 +1997,34 @@ rb_ary_aref2(VALUE ary, VALUE b, VALUE e)</div><div class='ctx'> MJIT_FUNC_EXPORTED VALUE</div><div class='ctx'> rb_ary_aref1(VALUE ary, VALUE arg)</div><div class='ctx'> {</div><div class='del'>-    long beg, len;</div><div class='add'>+    long beg, len, step;</div><div class='ctx'> </div><div class='ctx'>     /* special case - speeding up */</div><div class='ctx'>     if (FIXNUM_P(arg)) {</div><div class='del'>-	return rb_ary_entry(ary, FIX2LONG(arg));</div><div class='add'>+        return rb_ary_entry(ary, FIX2LONG(arg));</div><div class='ctx'>     }</div><div class='del'>-    /* check if idx is Range */</div><div class='del'>-    switch (rb_range_beg_len(arg, &amp;beg, &amp;len, RARRAY_LEN(ary), 0)) {</div><div class='add'>+    /* check if idx is Range or ArithmeticSequence */</div><div class='add'>+    switch (rb_arithmetic_sequence_beg_len_step(arg, &amp;beg, &amp;len, &amp;step, RARRAY_LEN(ary), 0)) {</div><div class='ctx'>       case Qfalse:</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>       case Qnil:</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>       default:</div><div class='del'>-	return rb_ary_subseq(ary, beg, len);</div><div class='add'>+        return rb_ary_subseq_step(ary, beg, len, step);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     return rb_ary_entry(ary, NUM2LONG(arg));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.at(index)   -&gt;   obj  or nil</div><div class='add'>+ *    array.at(index) -&gt; object</div><div class='ctx'>  *</div><div class='del'>- *  Returns the element at +index+. A negative index counts from the end of</div><div class='del'>- *  +self+. Returns +nil+ if the index is out of range. See also</div><div class='del'>- *  Array#[].</div><div class='add'>+ *  Returns the element at \Integer offset +index+; does not modify +self+.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.at(0) # =&gt; :foo</div><div class='add'>+ *    a.at(2) # =&gt; 2</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c", "d", "e" ]</div><div class='del'>- *     a.at(0)     #=&gt; "a"</div><div class='del'>- *     a.at(-1)    #=&gt; "e"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -1587,81 +2035,131 @@ rb_ary_at(VALUE ary, VALUE pos)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.first     -&gt;   obj or nil</div><div class='del'>- *     ary.first(n)  -&gt;   new_ary</div><div class='add'>+ *    array.first -&gt; object or nil</div><div class='add'>+ *    array.first(n) -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns elements from +self+; does not modify +self+.</div><div class='add'>+ *</div><div class='add'>+ *  When no argument is given, returns the first element:</div><div class='ctx'>  *</div><div class='del'>- *  Returns the first element, or the first +n+ elements, of the array.</div><div class='del'>- *  If the array is empty, the first form returns +nil+, and the</div><div class='del'>- *  second form returns an empty array. See also Array#last for</div><div class='del'>- *  the opposite effect.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.first # =&gt; :foo</div><div class='add'>+ *    a # =&gt; [:foo, "bar", 2]</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "q", "r", "s", "t" ]</div><div class='del'>- *     a.first     #=&gt; "q"</div><div class='del'>- *     a.first(2)  #=&gt; ["q", "r"]</div><div class='add'>+ *  If +self+ is empty, returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  When non-negative \Integer argument +n+ is given,</div><div class='add'>+ *  returns the first +n+ elements in a new \Array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.first(2) # =&gt; [:foo, "bar"]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;n &gt;= array.size&lt;/tt&gt;, returns all elements:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.first(50) # =&gt; [:foo, "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;n == 0&lt;/tt&gt; returns an new empty \Array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.first(0) # []</div><div class='add'>+ *</div><div class='add'>+ *  Related: #last.</div><div class='ctx'>  */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_first(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	if (RARRAY_LEN(ary) == 0) return Qnil;</div><div class='del'>-	return RARRAY_AREF(ary, 0);</div><div class='add'>+        if (RARRAY_LEN(ary) == 0) return Qnil;</div><div class='add'>+        return RARRAY_AREF(ary, 0);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_FIRST);</div><div class='add'>+        return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_FIRST);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.last     -&gt;  obj or nil</div><div class='del'>- *     ary.last(n)  -&gt;  new_ary</div><div class='add'>+ *    array.last  -&gt; object or nil</div><div class='add'>+ *    array.last(n) -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns elements from +self+; +self+ is not modified.</div><div class='add'>+ *</div><div class='add'>+ *  When no argument is given, returns the last element:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.last # =&gt; 2</div><div class='add'>+ *    a # =&gt; [:foo, "bar", 2]</div><div class='ctx'>  *</div><div class='del'>- *  Returns the last element(s) of +self+. If the array is empty,</div><div class='del'>- *  the first form returns +nil+.</div><div class='add'>+ *  If +self+ is empty, returns +nil+.</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#first for the opposite effect.</div><div class='add'>+ *  When non-negative \Integer argument +n+ is given,</div><div class='add'>+ *  returns the last +n+ elements in a new \Array:</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "w", "x", "y", "z" ]</div><div class='del'>- *     a.last     #=&gt; "z"</div><div class='del'>- *     a.last(2)  #=&gt; ["y", "z"]</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.last(2) # =&gt; ["bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;n &gt;= array.size&lt;/tt&gt;, returns all elements:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.last(50) # =&gt; [:foo, "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;n == 0&lt;/tt&gt;, returns an new empty \Array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.last(0) # []</div><div class='add'>+ *</div><div class='add'>+ *  Related: #first.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_ary_last(int argc, const VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	long len = RARRAY_LEN(ary);</div><div class='del'>-	if (len == 0) return Qnil;</div><div class='del'>-	return RARRAY_AREF(ary, len-1);</div><div class='add'>+        long len = RARRAY_LEN(ary);</div><div class='add'>+        if (len == 0) return Qnil;</div><div class='add'>+        return RARRAY_AREF(ary, len-1);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST);</div><div class='add'>+        return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.fetch(index)                    -&gt; obj</div><div class='del'>- *     ary.fetch(index, default)           -&gt; obj</div><div class='del'>- *     ary.fetch(index) {|index| block}    -&gt; obj</div><div class='del'>- *</div><div class='del'>- *  Tries to return the element at position +index+, but throws an IndexError</div><div class='del'>- *  exception if the referenced +index+ lies outside of the array bounds.  This</div><div class='del'>- *  error can be prevented by supplying a second argument, which will act as a</div><div class='del'>- *  +default+ value.</div><div class='del'>- *</div><div class='del'>- *  Alternatively, if a block is given it will only be executed when an</div><div class='del'>- *  invalid +index+ is referenced.</div><div class='del'>- *</div><div class='del'>- *  Negative values of +index+ count from the end of the array.</div><div class='del'>- *</div><div class='del'>- *     a = [ 11, 22, 33, 44 ]</div><div class='del'>- *     a.fetch(1)               #=&gt; 22</div><div class='del'>- *     a.fetch(-1)              #=&gt; 44</div><div class='del'>- *     a.fetch(4, 'cat')        #=&gt; "cat"</div><div class='del'>- *     a.fetch(100) {|i| puts "#{i} is out of bounds"}</div><div class='del'>- *                              #=&gt; "100 is out of bounds"</div><div class='add'>+ *    array.fetch(index) -&gt; element</div><div class='add'>+ *    array.fetch(index, default_value) -&gt; element</div><div class='add'>+ *    array.fetch(index) {|index| ... } -&gt; element</div><div class='add'>+ *</div><div class='add'>+ *  Returns the element at offset  +index+.</div><div class='add'>+ *</div><div class='add'>+ *  With the single \Integer argument +index+,</div><div class='add'>+ *  returns the element at offset +index+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.fetch(1) # =&gt; "bar"</div><div class='add'>+ *</div><div class='add'>+ *  If +index+ is negative, counts from the end of the array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.fetch(-1) # =&gt; 2</div><div class='add'>+ *    a.fetch(-2) # =&gt; "bar"</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +index+ and +default_value+,</div><div class='add'>+ *  returns the element at offset +index+ if index is in range,</div><div class='add'>+ *  otherwise returns +default_value+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.fetch(1, nil) # =&gt; "bar"</div><div class='add'>+ *</div><div class='add'>+ *  With argument +index+ and a block,</div><div class='add'>+ *  returns the element at offset +index+ if index is in range</div><div class='add'>+ *  (and the block is not called); otherwise calls the block with index and returns its return value:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.fetch(1) {|index| raise 'Cannot happen' } # =&gt; "bar"</div><div class='add'>+ *    a.fetch(50) {|index| "Value for #{index}" } # =&gt; "Value for 50"</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1674,48 +2172,60 @@ rb_ary_fetch(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     rb_scan_args(argc, argv, "11", &amp;pos, &amp;ifnone);</div><div class='ctx'>     block_given = rb_block_given_p();</div><div class='ctx'>     if (block_given &amp;&amp; argc == 2) {</div><div class='del'>-	rb_warn("block supersedes default value argument");</div><div class='add'>+        rb_warn("block supersedes default value argument");</div><div class='ctx'>     }</div><div class='ctx'>     idx = NUM2LONG(pos);</div><div class='ctx'> </div><div class='ctx'>     if (idx &lt; 0) {</div><div class='del'>-	idx +=  RARRAY_LEN(ary);</div><div class='add'>+        idx +=  RARRAY_LEN(ary);</div><div class='ctx'>     }</div><div class='ctx'>     if (idx &lt; 0 || RARRAY_LEN(ary) &lt;= idx) {</div><div class='del'>-	if (block_given) return rb_yield(pos);</div><div class='del'>-	if (argc == 1) {</div><div class='del'>-	    rb_raise(rb_eIndexError, "index %ld outside of array bounds: %ld...%ld",</div><div class='del'>-			idx - (idx &lt; 0 ? RARRAY_LEN(ary) : 0), -RARRAY_LEN(ary), RARRAY_LEN(ary));</div><div class='del'>-	}</div><div class='del'>-	return ifnone;</div><div class='add'>+        if (block_given) return rb_yield(pos);</div><div class='add'>+        if (argc == 1) {</div><div class='add'>+            rb_raise(rb_eIndexError, "index %ld outside of array bounds: %ld...%ld",</div><div class='add'>+                        idx - (idx &lt; 0 ? RARRAY_LEN(ary) : 0), -RARRAY_LEN(ary), RARRAY_LEN(ary));</div><div class='add'>+        }</div><div class='add'>+        return ifnone;</div><div class='ctx'>     }</div><div class='ctx'>     return RARRAY_AREF(ary, idx);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.find_index(obj)             -&gt;  int or nil</div><div class='del'>- *     ary.find_index {|item| block}  -&gt;  int or nil</div><div class='del'>- *     ary.find_index                  -&gt;  Enumerator</div><div class='del'>- *     ary.index(obj)             -&gt;  int or nil</div><div class='del'>- *     ary.index {|item| block}   -&gt;  int or nil</div><div class='del'>- *     ary.index                  -&gt;  Enumerator</div><div class='add'>+ *    array.index(object) -&gt; integer or nil</div><div class='add'>+ *    array.index {|element| ... } -&gt; integer or nil</div><div class='add'>+ *    array.index -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns the index of a specified element.</div><div class='add'>+ *</div><div class='add'>+ *  When argument +object+ is given but no block,</div><div class='add'>+ *  returns the index of the first element +element+</div><div class='add'>+ *  for which &lt;tt&gt;object == element&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2, 'bar']</div><div class='add'>+ *    a.index('bar') # =&gt; 1</div><div class='add'>+ *</div><div class='add'>+ *  Returns +nil+ if no such element found.</div><div class='add'>+ *</div><div class='add'>+ *  When both argument +object+ and a block are given,</div><div class='add'>+ *  calls the block with each successive element;</div><div class='add'>+ *  returns the index of the first element for which the block returns a truthy value:</div><div class='ctx'>  *</div><div class='del'>- *  Returns the _index_ of the first object in +ary+ such that the object is</div><div class='del'>- *  &lt;code&gt;==&lt;/code&gt; to +obj+.</div><div class='add'>+ *    a = [:foo, 'bar', 2, 'bar']</div><div class='add'>+ *    a.index {|element| element == 'bar' } # =&gt; 1</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given instead of an argument, returns the _index_ of the</div><div class='del'>- *  first object for which the block returns +true+.  Returns +nil+ if no</div><div class='del'>- *  match is found.</div><div class='add'>+ *  Returns +nil+ if the block never returns a truthy value.</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#rindex.</div><div class='add'>+ *  When neither an argument nor a block is given, returns a new Enumerator:</div><div class='ctx'>  *</div><div class='del'>- *  An Enumerator is returned if neither a block nor argument is given.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    e = a.index</div><div class='add'>+ *    e # =&gt; #&lt;Enumerator: [:foo, "bar", 2]:index&gt;</div><div class='add'>+ *    e.each {|element| element == 'bar' } # =&gt; 1</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.index("b")              #=&gt; 1</div><div class='del'>- *     a.index("z")              #=&gt; nil</div><div class='del'>- *     a.index {|x| x == "b"}    #=&gt; 1</div><div class='add'>+ *  Array#find_index is an alias for Array#index.</div><div class='add'>+ *</div><div class='add'>+ *  Related: #rindex.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1725,49 +2235,58 @@ rb_ary_index(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	RETURN_ENUMERATOR(ary, 0, 0);</div><div class='del'>-	for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	    if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {</div><div class='del'>-		return LONG2NUM(i);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	return Qnil;</div><div class='add'>+        RETURN_ENUMERATOR(ary, 0, 0);</div><div class='add'>+        for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+            if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {</div><div class='add'>+                return LONG2NUM(i);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     rb_check_arity(argc, 0, 1);</div><div class='ctx'>     val = argv[0];</div><div class='ctx'>     if (rb_block_given_p())</div><div class='del'>-	rb_warn("given block not used");</div><div class='add'>+        rb_warn("given block not used");</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	VALUE e = RARRAY_AREF(ary, i);</div><div class='del'>-	if (rb_equal(e, val)) {</div><div class='del'>-	    return LONG2NUM(i);</div><div class='del'>-	}</div><div class='add'>+        VALUE e = RARRAY_AREF(ary, i);</div><div class='add'>+        if (rb_equal(e, val)) {</div><div class='add'>+            return LONG2NUM(i);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.rindex(obj)             -&gt;  int or nil</div><div class='del'>- *     ary.rindex {|item| block}   -&gt;  int or nil</div><div class='del'>- *     ary.rindex                  -&gt;  Enumerator</div><div class='add'>+ *    array.rindex(object) -&gt; integer or nil</div><div class='add'>+ *    array.rindex {|element| ... } -&gt; integer or nil</div><div class='add'>+ *    array.rindex -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns the index of the last element for which &lt;tt&gt;object == element&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  When argument +object+ is given but no block, returns the index of the last such element found:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2, 'bar']</div><div class='add'>+ *    a.rindex('bar') # =&gt; 3</div><div class='ctx'>  *</div><div class='del'>- *  Returns the _index_ of the last object in +self+ &lt;code&gt;==&lt;/code&gt; to +obj+.</div><div class='add'>+ *  Returns +nil+ if no such object found.</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given instead of an argument, returns the _index_ of the</div><div class='del'>- *  first object for which the block returns +true+, starting from the last</div><div class='del'>- *  object.</div><div class='add'>+ *  When a block is given but no argument, calls the block with each successive element;</div><div class='add'>+ *  returns the index of the last element for which the block returns a truthy value:</div><div class='ctx'>  *</div><div class='del'>- *  Returns +nil+ if no match is found.</div><div class='add'>+ *    a = [:foo, 'bar', 2, 'bar']</div><div class='add'>+ *    a.rindex {|element| element == 'bar' } # =&gt; 3</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#index.</div><div class='add'>+ *  Returns +nil+ if the block never returns a truthy value.</div><div class='ctx'>  *</div><div class='del'>- *  If neither block nor argument is given, an Enumerator is returned instead.</div><div class='add'>+ *  When neither an argument nor a block is given, returns a new \Enumerator:</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "b", "b", "c" ]</div><div class='del'>- *     a.rindex("b")             #=&gt; 3</div><div class='del'>- *     a.rindex("z")             #=&gt; nil</div><div class='del'>- *     a.rindex {|x| x == "b"}   #=&gt; 3</div><div class='add'>+ *    a = [:foo, 'bar', 2, 'bar']</div><div class='add'>+ *    e = a.rindex</div><div class='add'>+ *    e # =&gt; #&lt;Enumerator: [:foo, "bar", 2, "bar"]:rindex&gt;</div><div class='add'>+ *    e.each {|element| element == 'bar' } # =&gt; 3</div><div class='add'>+ *</div><div class='add'>+ *  Related: #index.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1777,25 +2296,28 @@ rb_ary_rindex(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     long i = RARRAY_LEN(ary), len;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	RETURN_ENUMERATOR(ary, 0, 0);</div><div class='del'>-	while (i--) {</div><div class='del'>-	    if (RTEST(rb_yield(RARRAY_AREF(ary, i))))</div><div class='del'>-		return LONG2NUM(i);</div><div class='del'>-	    if (i &gt; (len = RARRAY_LEN(ary))) {</div><div class='del'>-		i = len;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	return Qnil;</div><div class='add'>+        RETURN_ENUMERATOR(ary, 0, 0);</div><div class='add'>+        while (i--) {</div><div class='add'>+            if (RTEST(rb_yield(RARRAY_AREF(ary, i))))</div><div class='add'>+                return LONG2NUM(i);</div><div class='add'>+            if (i &gt; (len = RARRAY_LEN(ary))) {</div><div class='add'>+                i = len;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     rb_check_arity(argc, 0, 1);</div><div class='ctx'>     val = argv[0];</div><div class='ctx'>     if (rb_block_given_p())</div><div class='del'>-	rb_warn("given block not used");</div><div class='add'>+        rb_warn("given block not used");</div><div class='ctx'>     while (i--) {</div><div class='del'>-	VALUE e = RARRAY_AREF(ary, i);</div><div class='del'>-	if (rb_equal(e, val)) {</div><div class='del'>-	    return LONG2NUM(i);</div><div class='del'>-	}</div><div class='add'>+        VALUE e = RARRAY_AREF(ary, i);</div><div class='add'>+        if (rb_equal(e, val)) {</div><div class='add'>+            return LONG2NUM(i);</div><div class='add'>+        }</div><div class='add'>+        if (i &gt; RARRAY_LEN(ary)) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -1818,58 +2340,64 @@ rb_ary_splice(VALUE ary, long beg, long len, const VALUE *rptr, long rlen)</div><div class='ctx'>     if (len &lt; 0) rb_raise(rb_eIndexError, "negative length (%ld)", len);</div><div class='ctx'>     olen = RARRAY_LEN(ary);</div><div class='ctx'>     if (beg &lt; 0) {</div><div class='del'>-	beg += olen;</div><div class='del'>-	if (beg &lt; 0) {</div><div class='del'>-	    rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",</div><div class='del'>-		     beg - olen, -olen);</div><div class='del'>-	}</div><div class='add'>+        beg += olen;</div><div class='add'>+        if (beg &lt; 0) {</div><div class='add'>+            rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",</div><div class='add'>+                     beg - olen, -olen);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (olen &lt; len || olen &lt; beg + len) {</div><div class='del'>-	len = olen - beg;</div><div class='add'>+        len = olen - beg;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='ctx'>         const VALUE *optr = RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='del'>-	rofs = (rptr &gt;= optr &amp;&amp; rptr &lt; optr + olen) ? rptr - optr : -1;</div><div class='add'>+        rofs = (rptr &gt;= optr &amp;&amp; rptr &lt; optr + olen) ? rptr - optr : -1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (beg &gt;= olen) {</div><div class='del'>-	VALUE target_ary;</div><div class='del'>-	if (beg &gt; ARY_MAX_SIZE - rlen) {</div><div class='del'>-	    rb_raise(rb_eIndexError, "index %ld too big", beg);</div><div class='del'>-	}</div><div class='del'>-	target_ary = ary_ensure_room_for_push(ary, rlen-len); /* len is 0 or negative */</div><div class='del'>-	len = beg + rlen;</div><div class='del'>-	ary_mem_clear(ary, olen, beg - olen);</div><div class='del'>-	if (rlen &gt; 0) {</div><div class='add'>+        VALUE target_ary;</div><div class='add'>+        if (beg &gt; ARY_MAX_SIZE - rlen) {</div><div class='add'>+            rb_raise(rb_eIndexError, "index %ld too big", beg);</div><div class='add'>+        }</div><div class='add'>+        target_ary = ary_ensure_room_for_push(ary, rlen-len); /* len is 0 or negative */</div><div class='add'>+        len = beg + rlen;</div><div class='add'>+        ary_mem_clear(ary, olen, beg - olen);</div><div class='add'>+        if (rlen &gt; 0) {</div><div class='ctx'>             if (rofs != -1) rptr = RARRAY_CONST_PTR_TRANSIENT(ary) + rofs;</div><div class='del'>-	    ary_memcpy0(ary, beg, rlen, rptr, target_ary);</div><div class='del'>-	}</div><div class='del'>-	ARY_SET_LEN(ary, len);</div><div class='add'>+            ary_memcpy0(ary, beg, rlen, rptr, target_ary);</div><div class='add'>+        }</div><div class='add'>+        ARY_SET_LEN(ary, len);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	long alen;</div><div class='del'>-</div><div class='del'>-	if (olen - len &gt; ARY_MAX_SIZE - rlen) {</div><div class='del'>-	    rb_raise(rb_eIndexError, "index %ld too big", olen + rlen - len);</div><div class='del'>-	}</div><div class='del'>-	rb_ary_modify(ary);</div><div class='del'>-	alen = olen + rlen - len;</div><div class='del'>-	if (alen &gt;= ARY_CAPA(ary)) {</div><div class='del'>-	    ary_double_capa(ary, alen);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (len != rlen) {</div><div class='add'>+        long alen;</div><div class='add'>+</div><div class='add'>+        if (olen - len &gt; ARY_MAX_SIZE - rlen) {</div><div class='add'>+            rb_raise(rb_eIndexError, "index %ld too big", olen + rlen - len);</div><div class='add'>+        }</div><div class='add'>+        rb_ary_modify(ary);</div><div class='add'>+        alen = olen + rlen - len;</div><div class='add'>+        if (alen &gt;= ARY_CAPA(ary)) {</div><div class='add'>+            ary_double_capa(ary, alen);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (len != rlen) {</div><div class='ctx'>             RARRAY_PTR_USE_TRANSIENT(ary, ptr,</div><div class='ctx'>                                      MEMMOVE(ptr + beg + rlen, ptr + beg + len,</div><div class='ctx'>                                              VALUE, olen - (beg + len)));</div><div class='del'>-	    ARY_SET_LEN(ary, alen);</div><div class='del'>-	}</div><div class='del'>-	if (rlen &gt; 0) {</div><div class='add'>+            ARY_SET_LEN(ary, alen);</div><div class='add'>+        }</div><div class='add'>+        if (rlen &gt; 0) {</div><div class='ctx'>             if (rofs != -1) rptr = RARRAY_CONST_PTR_TRANSIENT(ary) + rofs;</div><div class='ctx'>             /* give up wb-protected ary */</div><div class='del'>-	    MEMMOVE(RARRAY_PTR(ary) + beg, rptr, VALUE, rlen);</div><div class='del'>-	}</div><div class='add'>+            RB_OBJ_WB_UNPROTECT_FOR(ARRAY, ary);</div><div class='add'>+</div><div class='add'>+            /* do not use RARRAY_PTR() because it can causes GC.</div><div class='add'>+             * ary can contain T_NONE object because it is not cleared.</div><div class='add'>+             */</div><div class='add'>+            RARRAY_PTR_USE_TRANSIENT(ary, ptr,</div><div class='add'>+                                     MEMMOVE(ptr + beg, rptr, VALUE, rlen));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1880,22 +2408,14 @@ rb_ary_set_len(VALUE ary, long len)</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify_check(ary);</div><div class='ctx'>     if (ARY_SHARED_P(ary)) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "can't set length of shared ");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "can't set length of shared ");</div><div class='ctx'>     }</div><div class='ctx'>     if (len &gt; (capa = (long)ARY_CAPA(ary))) {</div><div class='del'>-	rb_bug("probable buffer overflow: %ld for %ld", len, capa);</div><div class='add'>+        rb_bug("probable buffer overflow: %ld for %ld", len, capa);</div><div class='ctx'>     }</div><div class='ctx'>     ARY_SET_LEN(ary, len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * expands or shrinks \a ary to \a len elements.</div><div class='del'>- * expanded region will be filled with Qnil.</div><div class='del'>- * \param ary  an array</div><div class='del'>- * \param len  new size</div><div class='del'>- * \return     \a ary</div><div class='del'>- * \post       the size of \a ary is \a len.</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_ary_resize(VALUE ary, long len)</div><div class='ctx'> {</div><div class='hunk'>@@ -1905,118 +2425,231 @@ rb_ary_resize(VALUE ary, long len)</div><div class='ctx'>     olen = RARRAY_LEN(ary);</div><div class='ctx'>     if (len == olen) return ary;</div><div class='ctx'>     if (len &gt; ARY_MAX_SIZE) {</div><div class='del'>-	rb_raise(rb_eIndexError, "index %ld too big", len);</div><div class='add'>+        rb_raise(rb_eIndexError, "index %ld too big", len);</div><div class='ctx'>     }</div><div class='ctx'>     if (len &gt; olen) {</div><div class='del'>-	if (len &gt;= ARY_CAPA(ary)) {</div><div class='del'>-	    ary_double_capa(ary, len);</div><div class='del'>-	}</div><div class='del'>-	ary_mem_clear(ary, olen, len - olen);</div><div class='del'>-	ARY_SET_LEN(ary, len);</div><div class='add'>+        if (len &gt;= ARY_CAPA(ary)) {</div><div class='add'>+            ary_double_capa(ary, len);</div><div class='add'>+        }</div><div class='add'>+        ary_mem_clear(ary, olen, len - olen);</div><div class='add'>+        ARY_SET_LEN(ary, len);</div><div class='ctx'>     }</div><div class='ctx'>     else if (ARY_EMBED_P(ary)) {</div><div class='ctx'>         ARY_SET_EMBED_LEN(ary, len);</div><div class='ctx'>     }</div><div class='del'>-    else if (len &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='del'>-	VALUE tmp[RARRAY_EMBED_LEN_MAX];</div><div class='del'>-	MEMCPY(tmp, ARY_HEAP_PTR(ary), VALUE, len);</div><div class='del'>-	ary_discard(ary);</div><div class='del'>-	MEMCPY((VALUE *)ARY_EMBED_PTR(ary), tmp, VALUE, len); /* WB: no new reference */</div><div class='add'>+    else if (len &lt;= ary_embed_capa(ary)) {</div><div class='add'>+        const VALUE *ptr = ARY_HEAP_PTR(ary);</div><div class='add'>+        long ptr_capa = ARY_HEAP_SIZE(ary);</div><div class='add'>+        bool is_malloc_ptr = !ARY_SHARED_P(ary) &amp;&amp; !RARRAY_TRANSIENT_P(ary);</div><div class='add'>+</div><div class='add'>+        FL_UNSET(ary, RARRAY_TRANSIENT_FLAG);</div><div class='add'>+        FL_SET_EMBED(ary);</div><div class='add'>+</div><div class='add'>+        MEMCPY((VALUE *)ARY_EMBED_PTR(ary), ptr, VALUE, len); /* WB: no new reference */</div><div class='ctx'>         ARY_SET_EMBED_LEN(ary, len);</div><div class='add'>+</div><div class='add'>+        if (is_malloc_ptr) ruby_sized_xfree((void *)ptr, ptr_capa);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (olen &gt; len + ARY_DEFAULT_SIZE) {</div><div class='del'>-            ary_heap_realloc(ary, len);</div><div class='del'>-	    ARY_SET_CAPA(ary, len);</div><div class='del'>-	}</div><div class='del'>-	ARY_SET_HEAP_LEN(ary, len);</div><div class='add'>+        if (olen &gt; len + ARY_DEFAULT_SIZE) {</div><div class='add'>+            size_t new_capa = ary_heap_realloc(ary, len);</div><div class='add'>+            ARY_SET_CAPA(ary, new_capa);</div><div class='add'>+        }</div><div class='add'>+        ARY_SET_HEAP_LEN(ary, len);</div><div class='ctx'>     }</div><div class='ctx'>     ary_verify(ary);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+ary_aset_by_rb_ary_store(VALUE ary, long key, VALUE val)</div><div class='add'>+{</div><div class='add'>+    rb_ary_store(ary, key, val);</div><div class='add'>+    return val;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_aset_by_rb_ary_splice(VALUE ary, long beg, long len, VALUE val)</div><div class='add'>+{</div><div class='add'>+    VALUE rpl = rb_ary_to_ary(val);</div><div class='add'>+    rb_ary_splice(ary, beg, len, RARRAY_CONST_PTR_TRANSIENT(rpl), RARRAY_LEN(rpl));</div><div class='add'>+    RB_GC_GUARD(rpl);</div><div class='add'>+    return val;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary[index]         = obj                      -&gt;  obj</div><div class='del'>- *     ary[start, length] = obj or other_ary or nil  -&gt;  obj or other_ary or nil</div><div class='del'>- *     ary[range]         = obj or other_ary or nil  -&gt;  obj or other_ary or nil</div><div class='del'>- *</div><div class='del'>- *  Element Assignment --- Sets the element at +index+, or replaces a subarray</div><div class='del'>- *  from the +start+ index for +length+ elements, or replaces a subarray</div><div class='del'>- *  specified by the +range+ of indices.</div><div class='del'>- *</div><div class='del'>- *  If indices are greater than the current capacity of the array, the array</div><div class='del'>- *  grows automatically.  Elements are inserted into the array at +start+ if</div><div class='del'>- *  +length+ is zero.</div><div class='del'>- *</div><div class='del'>- *  Negative indices will count backward from the end of the array.  For</div><div class='del'>- *  +start+ and +range+ cases the starting index is just before an element.</div><div class='del'>- *</div><div class='del'>- *  An IndexError is raised if a negative index points past the beginning of</div><div class='del'>- *  the array.</div><div class='del'>- *</div><div class='del'>- *  See also Array#push, and Array#unshift.</div><div class='del'>- *</div><div class='del'>- *     a = Array.new</div><div class='del'>- *     a[4] = "4";                 #=&gt; [nil, nil, nil, nil, "4"]</div><div class='del'>- *     a[0, 3] = [ 'a', 'b', 'c' ] #=&gt; ["a", "b", "c", nil, "4"]</div><div class='del'>- *     a[1..2] = [ 1, 2 ]          #=&gt; ["a", 1, 2, nil, "4"]</div><div class='del'>- *     a[0, 2] = "?"               #=&gt; ["?", 2, nil, "4"]</div><div class='del'>- *     a[0..2] = "A"               #=&gt; ["A", "4"]</div><div class='del'>- *     a[-1]   = "Z"               #=&gt; ["A", "Z"]</div><div class='del'>- *     a[1..-1] = nil              #=&gt; ["A", nil]</div><div class='del'>- *     a[1..-1] = []               #=&gt; ["A"]</div><div class='del'>- *     a[0, 0] = [ 1, 2 ]          #=&gt; [1, 2, "A"]</div><div class='del'>- *     a[3, 0] = "B"               #=&gt; [1, 2, "A", "B"]</div><div class='add'>+ *    array[index] = object -&gt; object</div><div class='add'>+ *    array[start, length] = object -&gt; object</div><div class='add'>+ *    array[range] = object -&gt; object</div><div class='add'>+ *</div><div class='add'>+ *  Assigns elements in +self+; returns the given +object+.</div><div class='add'>+ *</div><div class='add'>+ *  When \Integer argument +index+ is given, assigns +object+ to an element in +self+.</div><div class='add'>+ *</div><div class='add'>+ *  If +index+ is non-negative, assigns +object+ the element at offset +index+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[0] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; ["foo", "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  If +index+ is greater than &lt;tt&gt;self.length&lt;/tt&gt;, extends the array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[7] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "bar", 2, nil, nil, nil, nil, "foo"]</div><div class='add'>+ *</div><div class='add'>+ *  If +index+ is negative, counts backwards from the end of the array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[-1] = 'two' # =&gt; "two"</div><div class='add'>+ *    a # =&gt; [:foo, "bar", "two"]</div><div class='add'>+ *</div><div class='add'>+ *  When \Integer arguments +start+ and +length+ are given and +object+ is not an \Array,</div><div class='add'>+ *  removes &lt;tt&gt;length - 1&lt;/tt&gt; elements beginning at offset +start+,</div><div class='add'>+ *  and assigns +object+ at offset +start+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[0, 2] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; ["foo", 2]</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is negative, counts backwards from the end of the array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[-2, 2] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "foo"]</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is non-negative and outside the array (&lt;tt&gt; &gt;= self.size&lt;/tt&gt;),</div><div class='add'>+ *  extends the array with +nil+, assigns +object+ at offset +start+,</div><div class='add'>+ *  and ignores +length+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[6, 50] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "bar", 2, nil, nil, nil, "foo"]</div><div class='add'>+ *</div><div class='add'>+ *  If +length+ is zero, shifts elements at and following offset +start+</div><div class='add'>+ *  and assigns +object+ at offset +start+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[1, 0] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "foo", "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  If +length+ is too large for the existing array, does not extend the array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[1, 5] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "foo"]</div><div class='add'>+ *</div><div class='add'>+ *  When \Range argument +range+ is given and +object+ is an \Array,</div><div class='add'>+ *  removes &lt;tt&gt;length - 1&lt;/tt&gt; elements beginning at offset +start+,</div><div class='add'>+ *  and assigns +object+ at offset +start+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[0..1] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; ["foo", 2]</div><div class='add'>+ *</div><div class='add'>+ *  if &lt;tt&gt;range.begin&lt;/tt&gt; is negative, counts backwards from the end of the array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[-2..2] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "foo"]</div><div class='add'>+ *</div><div class='add'>+ *  If the array length is less than &lt;tt&gt;range.begin&lt;/tt&gt;,</div><div class='add'>+ *  assigns +object+ at offset &lt;tt&gt;range.begin&lt;/tt&gt;, and ignores +length+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[6..50] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "bar", 2, nil, nil, nil, "foo"]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.end&lt;/tt&gt; is zero, shifts elements at and following offset +start+</div><div class='add'>+ *  and assigns +object+ at offset +start+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[1..0] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "foo", "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.end&lt;/tt&gt; is negative, assigns +object+ at offset +start+,</div><div class='add'>+ *  retains &lt;tt&gt;range.end.abs -1&lt;/tt&gt; elements past that, and removes those beyond:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[1..-1] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "foo"]</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[1..-2] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "foo", 2]</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[1..-3] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "foo", "bar", 2]</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.end&lt;/tt&gt; is too large for the existing array,</div><div class='add'>+ *  replaces array elements, but does not extend the array with +nil+ values:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a[1..5] = 'foo' # =&gt; "foo"</div><div class='add'>+ *    a # =&gt; [:foo, "foo"]</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_aset(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     long offset, beg, len;</div><div class='del'>-    VALUE rpl;</div><div class='ctx'> </div><div class='add'>+    rb_check_arity(argc, 2, 3);</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='ctx'>     if (argc == 3) {</div><div class='del'>-	rb_ary_modify_check(ary);</div><div class='del'>-	beg = NUM2LONG(argv[0]);</div><div class='del'>-	len = NUM2LONG(argv[1]);</div><div class='del'>-	goto range;</div><div class='add'>+        beg = NUM2LONG(argv[0]);</div><div class='add'>+        len = NUM2LONG(argv[1]);</div><div class='add'>+        return ary_aset_by_rb_ary_splice(ary, beg, len, argv[2]);</div><div class='ctx'>     }</div><div class='del'>-    rb_check_arity(argc, 2, 2);</div><div class='del'>-    rb_ary_modify_check(ary);</div><div class='ctx'>     if (FIXNUM_P(argv[0])) {</div><div class='del'>-	offset = FIX2LONG(argv[0]);</div><div class='del'>-	goto fixnum;</div><div class='add'>+        offset = FIX2LONG(argv[0]);</div><div class='add'>+        return ary_aset_by_rb_ary_store(ary, offset, argv[1]);</div><div class='ctx'>     }</div><div class='ctx'>     if (rb_range_beg_len(argv[0], &amp;beg, &amp;len, RARRAY_LEN(ary), 1)) {</div><div class='del'>-	/* check if idx is Range */</div><div class='del'>-      range:</div><div class='del'>-	rpl = rb_ary_to_ary(argv[argc-1]);</div><div class='del'>-        rb_ary_splice(ary, beg, len, RARRAY_CONST_PTR_TRANSIENT(rpl), RARRAY_LEN(rpl));</div><div class='del'>-	RB_GC_GUARD(rpl);</div><div class='del'>-	return argv[argc-1];</div><div class='add'>+        /* check if idx is Range */</div><div class='add'>+        return ary_aset_by_rb_ary_splice(ary, beg, len, argv[1]);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     offset = NUM2LONG(argv[0]);</div><div class='del'>-fixnum:</div><div class='del'>-    rb_ary_store(ary, offset, argv[1]);</div><div class='del'>-    return argv[1];</div><div class='add'>+    return ary_aset_by_rb_ary_store(ary, offset, argv[1]);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.insert(index, obj...)  -&gt; ary</div><div class='add'>+ *    array.insert(index, *objects) -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Inserts given +objects+ before or after the element at \Integer index +offset+;</div><div class='add'>+ *  returns +self+.</div><div class='add'>+ *</div><div class='add'>+ *  When +index+ is non-negative, inserts all given +objects+</div><div class='add'>+ *  before the element at offset +index+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.insert(1, :bat, :bam) # =&gt; [:foo, :bat, :bam, "bar", 2]</div><div class='ctx'>  *</div><div class='del'>- *  Inserts the given values before the element with the given +index+.</div><div class='add'>+ *  Extends the array if +index+ is beyond the array (&lt;tt&gt;index &gt;= self.size&lt;/tt&gt;):</div><div class='ctx'>  *</div><div class='del'>- *  Negative indices count backwards from the end of the array, where +-1+ is</div><div class='del'>- *  the last element. If a negative index is used, the given values will be</div><div class='del'>- *  inserted after that element, so using an index of +-1+ will insert the</div><div class='del'>- *  values at the end of the array.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.insert(5, :bat, :bam)</div><div class='add'>+ *    a # =&gt; [:foo, "bar", 2, nil, nil, :bat, :bam]</div><div class='add'>+ *</div><div class='add'>+ *  Does nothing if no objects given:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.insert(1)</div><div class='add'>+ *    a.insert(50)</div><div class='add'>+ *    a.insert(-50)</div><div class='add'>+ *    a # =&gt; [:foo, "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  When +index+ is negative, inserts all given +objects+</div><div class='add'>+ *  _after_ the element at offset &lt;tt&gt;index+self.size&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.insert(-2, :bat, :bam)</div><div class='add'>+ *    a # =&gt; [:foo, "bar", :bat, :bam, 2]</div><div class='ctx'>  *</div><div class='del'>- *     a = %w{ a b c d }</div><div class='del'>- *     a.insert(2, 99)         #=&gt; ["a", "b", 99, "c", "d"]</div><div class='del'>- *     a.insert(-2, 1, 2, 3)   #=&gt; ["a", "b", 99, "c", 1, 2, 3, "d"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2029,15 +2662,15 @@ rb_ary_insert(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     pos = NUM2LONG(argv[0]);</div><div class='ctx'>     if (argc == 1) return ary;</div><div class='ctx'>     if (pos == -1) {</div><div class='del'>-	pos = RARRAY_LEN(ary);</div><div class='add'>+        pos = RARRAY_LEN(ary);</div><div class='ctx'>     }</div><div class='ctx'>     else if (pos &lt; 0) {</div><div class='del'>-	long minpos = -RARRAY_LEN(ary) - 1;</div><div class='del'>-	if (pos &lt; minpos) {</div><div class='del'>-	    rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",</div><div class='del'>-		     pos, minpos);</div><div class='del'>-	}</div><div class='del'>-	pos++;</div><div class='add'>+        long minpos = -RARRAY_LEN(ary) - 1;</div><div class='add'>+        if (pos &lt; minpos) {</div><div class='add'>+            rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",</div><div class='add'>+                     pos, minpos);</div><div class='add'>+        }</div><div class='add'>+        pos++;</div><div class='ctx'>     }</div><div class='ctx'>     rb_ary_splice(ary, pos, 0, argv + 1, argc - 1);</div><div class='ctx'>     return ary;</div><div class='hunk'>@@ -2054,20 +2687,47 @@ ary_enum_length(VALUE ary, VALUE args, VALUE eobj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.each {|item| block}    -&gt; ary</div><div class='del'>- *     ary.each                   -&gt; Enumerator</div><div class='add'>+ *    array.each {|element| ... } -&gt; self</div><div class='add'>+ *    array.each -&gt; Enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Calls the given block once for each element in +self+, passing that element</div><div class='del'>- *  as a parameter.  Returns the array itself.</div><div class='add'>+ *  Iterates over array elements.</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned.</div><div class='add'>+ *  When a block given, passes each successive array element to the block;</div><div class='add'>+ *  returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.each {|x| print x, " -- " }</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.each {|element|  puts "#{element.class} #{element}" }</div><div class='ctx'>  *</div><div class='del'>- *  produces:</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *     a -- b -- c --</div><div class='add'>+ *    Symbol foo</div><div class='add'>+ *    String bar</div><div class='add'>+ *    Integer 2</div><div class='add'>+ *</div><div class='add'>+ *  Allows the array to be modified during iteration:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.each {|element| puts element; a.clear if element.to_s.start_with?('b') }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    foo</div><div class='add'>+ *    bar</div><div class='add'>+ *</div><div class='add'>+ *  When no block given, returns a new \Enumerator:</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *</div><div class='add'>+ *    e = a.each</div><div class='add'>+ *    e # =&gt; #&lt;Enumerator: [:foo, "bar", 2]:each&gt;</div><div class='add'>+ *    a1 = e.each {|element|  puts "#{element.class} #{element}" }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    Symbol foo</div><div class='add'>+ *    String bar</div><div class='add'>+ *    Integer 2</div><div class='add'>+ *</div><div class='add'>+ *  Related: #each_index, #reverse_each.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -2077,27 +2737,54 @@ rb_ary_each(VALUE ary)</div><div class='ctx'>     ary_verify(ary);</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	rb_yield(RARRAY_AREF(ary, i));</div><div class='add'>+        rb_yield(RARRAY_AREF(ary, i));</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.each_index {|index| block}    -&gt; ary</div><div class='del'>- *     ary.each_index                    -&gt; Enumerator</div><div class='add'>+ *    array.each_index {|index| ... } -&gt; self</div><div class='add'>+ *    array.each_index -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Iterates over array indexes.</div><div class='ctx'>  *</div><div class='del'>- *  Same as Array#each, but passes the +index+ of the element instead of the</div><div class='del'>- *  element itself.</div><div class='add'>+ *  When a block given, passes each successive array index to the block;</div><div class='add'>+ *  returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *  An Enumerator is returned if no block is given.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.each_index {|index|  puts "#{index} #{a[index]}" }</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.each_index {|x| print x, " -- " }</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *  produces:</div><div class='add'>+ *    0 foo</div><div class='add'>+ *    1 bar</div><div class='add'>+ *    2 2</div><div class='ctx'>  *</div><div class='del'>- *     0 -- 1 -- 2 --</div><div class='add'>+ *  Allows the array to be modified during iteration:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.each_index {|index| puts index; a.clear if index &gt; 0 }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    0</div><div class='add'>+ *    1</div><div class='add'>+ *</div><div class='add'>+ *  When no block given, returns a new \Enumerator:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    e = a.each_index</div><div class='add'>+ *    e # =&gt; #&lt;Enumerator: [:foo, "bar", 2]:each_index&gt;</div><div class='add'>+ *    a1 = e.each {|index|  puts "#{index} #{a[index]}"}</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    0 foo</div><div class='add'>+ *    1 bar</div><div class='add'>+ *    2 2</div><div class='add'>+ *</div><div class='add'>+ *  Related: #each, #reverse_each.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2107,24 +2794,54 @@ rb_ary_each_index(VALUE ary)</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	rb_yield(LONG2NUM(i));</div><div class='add'>+        rb_yield(LONG2NUM(i));</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.reverse_each {|item| block}    -&gt; ary</div><div class='del'>- *     ary.reverse_each                   -&gt; Enumerator</div><div class='add'>+ *    array.reverse_each {|element| ... } -&gt; self</div><div class='add'>+ *    array.reverse_each -&gt; Enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Iterates backwards over array elements.</div><div class='add'>+ *</div><div class='add'>+ *  When a block given, passes, in reverse order, each element to the block;</div><div class='add'>+ *  returns +self+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.reverse_each {|element|  puts "#{element.class} #{element}" }</div><div class='ctx'>  *</div><div class='del'>- *  Same as Array#each, but traverses +self+ in reverse order.</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.reverse_each {|x| print x, " " }</div><div class='add'>+ *    Integer 2</div><div class='add'>+ *    String bar</div><div class='add'>+ *    Symbol foo</div><div class='ctx'>  *</div><div class='del'>- *  produces:</div><div class='add'>+ *  Allows the array to be modified during iteration:</div><div class='ctx'>  *</div><div class='del'>- *     c b a</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.reverse_each {|element| puts element; a.clear if element.to_s.start_with?('b') }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    2</div><div class='add'>+ *    bar</div><div class='add'>+ *</div><div class='add'>+ *  When no block given, returns a new \Enumerator:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    e = a.reverse_each</div><div class='add'>+ *    e # =&gt; #&lt;Enumerator: [:foo, "bar", 2]:reverse_each&gt;</div><div class='add'>+ *    a1 = e.each {|element|  puts "#{element.class} #{element}" }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    Integer 2</div><div class='add'>+ *    String bar</div><div class='add'>+ *    Symbol foo</div><div class='add'>+ *</div><div class='add'>+ *  Related: #each, #each_index.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2135,24 +2852,21 @@ rb_ary_reverse_each(VALUE ary)</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='ctx'>     len = RARRAY_LEN(ary);</div><div class='ctx'>     while (len--) {</div><div class='del'>-	long nlen;</div><div class='del'>-	rb_yield(RARRAY_AREF(ary, len));</div><div class='del'>-	nlen = RARRAY_LEN(ary);</div><div class='del'>-	if (nlen &lt; len) {</div><div class='del'>-	    len = nlen;</div><div class='del'>-	}</div><div class='add'>+        long nlen;</div><div class='add'>+        rb_yield(RARRAY_AREF(ary, len));</div><div class='add'>+        nlen = RARRAY_LEN(ary);</div><div class='add'>+        if (nlen &lt; len) {</div><div class='add'>+            len = nlen;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.length -&gt; int</div><div class='del'>- *</div><div class='del'>- *  Returns the number of elements in +self+. May be zero.</div><div class='add'>+ *    array.length -&gt; an_integer</div><div class='ctx'>  *</div><div class='del'>- *     [ 1, 2, 3, 4, 5 ].length   #=&gt; 5</div><div class='del'>- *     [].length                  #=&gt; 0</div><div class='add'>+ *  Returns the count of elements in +self+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2164,19 +2878,16 @@ rb_ary_length(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.empty?   -&gt; true or false</div><div class='add'>+ *    array.empty?  -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Returns +true+ if +self+ contains no elements.</div><div class='del'>- *</div><div class='del'>- *     [].empty?   #=&gt; true</div><div class='add'>+ *  Returns +true+ if the count of elements in +self+ is zero,</div><div class='add'>+ *  +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_empty_p(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    if (RARRAY_LEN(ary) == 0)</div><div class='del'>-	return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(RARRAY_LEN(ary) == 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -2212,15 +2923,15 @@ recursive_join(VALUE obj, VALUE argp, int recur)</div><div class='ctx'>     int *first = (int *)arg[3];</div><div class='ctx'> </div><div class='ctx'>     if (recur) {</div><div class='del'>-	rb_raise(rb_eArgError, "recursive array join");</div><div class='add'>+        rb_raise(rb_eArgError, "recursive array join");</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ary_join_1(obj, ary, sep, 0, result, first);</div><div class='add'>+        ary_join_1(obj, ary, sep, 0, result, first);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='add'>+static long</div><div class='ctx'> ary_join_0(VALUE ary, VALUE sep, long max, VALUE result)</div><div class='ctx'> {</div><div class='ctx'>     long i;</div><div class='hunk'>@@ -2228,11 +2939,40 @@ ary_join_0(VALUE ary, VALUE sep, long max, VALUE result)</div><div class='ctx'> </div><div class='ctx'>     if (max &gt; 0) rb_enc_copy(result, RARRAY_AREF(ary, 0));</div><div class='ctx'>     for (i=0; i&lt;max; i++) {</div><div class='del'>-	val = RARRAY_AREF(ary, i);</div><div class='del'>-	if (i &gt; 0 &amp;&amp; !NIL_P(sep))</div><div class='del'>-	    rb_str_buf_append(result, sep);</div><div class='del'>-	rb_str_buf_append(result, val);</div><div class='del'>-	if (OBJ_TAINTED(val)) OBJ_TAINT(result);</div><div class='add'>+        val = RARRAY_AREF(ary, i);</div><div class='add'>+        if (!RB_TYPE_P(val, T_STRING)) break;</div><div class='add'>+        if (i &gt; 0 &amp;&amp; !NIL_P(sep))</div><div class='add'>+            rb_str_buf_append(result, sep);</div><div class='add'>+        rb_str_buf_append(result, val);</div><div class='add'>+    }</div><div class='add'>+    return i;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ary_join_1_str(VALUE dst, VALUE src, int *first)</div><div class='add'>+{</div><div class='add'>+    rb_str_buf_append(dst, src);</div><div class='add'>+    if (*first) {</div><div class='add'>+        rb_enc_copy(dst, src);</div><div class='add'>+        *first = FALSE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ary_join_1_ary(VALUE obj, VALUE ary, VALUE sep, VALUE result, VALUE val, int *first)</div><div class='add'>+{</div><div class='add'>+    if (val == ary) {</div><div class='add'>+        rb_raise(rb_eArgError, "recursive array join");</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        VALUE args[4];</div><div class='add'>+</div><div class='add'>+        *first = FALSE;</div><div class='add'>+        args[0] = val;</div><div class='add'>+        args[1] = sep;</div><div class='add'>+        args[2] = result;</div><div class='add'>+        args[3] = (VALUE)first;</div><div class='add'>+        rb_exec_recursive(recursive_join, obj, (VALUE)args);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2242,50 +2982,25 @@ ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first)</div><div class='ctx'>     VALUE val, tmp;</div><div class='ctx'> </div><div class='ctx'>     for (; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	if (i &gt; 0 &amp;&amp; !NIL_P(sep))</div><div class='del'>-	    rb_str_buf_append(result, sep);</div><div class='del'>-</div><div class='del'>-	val = RARRAY_AREF(ary, i);</div><div class='del'>-	if (RB_TYPE_P(val, T_STRING)) {</div><div class='del'>-	  str_join:</div><div class='del'>-	    rb_str_buf_append(result, val);</div><div class='del'>-	    if (*first) {</div><div class='del'>-		rb_enc_copy(result, val);</div><div class='del'>-		*first = FALSE;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else if (RB_TYPE_P(val, T_ARRAY)) {</div><div class='del'>-	    obj = val;</div><div class='del'>-	  ary_join:</div><div class='del'>-	    if (val == ary) {</div><div class='del'>-		rb_raise(rb_eArgError, "recursive array join");</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		VALUE args[4];</div><div class='del'>-</div><div class='del'>-		*first = FALSE;</div><div class='del'>-		args[0] = val;</div><div class='del'>-		args[1] = sep;</div><div class='del'>-		args[2] = result;</div><div class='del'>-		args[3] = (VALUE)first;</div><div class='del'>-		rb_exec_recursive(recursive_join, obj, (VALUE)args);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    tmp = rb_check_string_type(val);</div><div class='del'>-	    if (!NIL_P(tmp)) {</div><div class='del'>-		val = tmp;</div><div class='del'>-		goto str_join;</div><div class='del'>-	    }</div><div class='del'>-	    tmp = rb_check_array_type(val);</div><div class='del'>-	    if (!NIL_P(tmp)) {</div><div class='del'>-		obj = val;</div><div class='del'>-		val = tmp;</div><div class='del'>-		goto ary_join;</div><div class='del'>-	    }</div><div class='del'>-	    val = rb_obj_as_string(val);</div><div class='del'>-	    goto str_join;</div><div class='del'>-	}</div><div class='add'>+        if (i &gt; 0 &amp;&amp; !NIL_P(sep))</div><div class='add'>+            rb_str_buf_append(result, sep);</div><div class='add'>+</div><div class='add'>+        val = RARRAY_AREF(ary, i);</div><div class='add'>+        if (RB_TYPE_P(val, T_STRING)) {</div><div class='add'>+            ary_join_1_str(result, val, first);</div><div class='add'>+        }</div><div class='add'>+        else if (RB_TYPE_P(val, T_ARRAY)) {</div><div class='add'>+            ary_join_1_ary(val, ary, sep, result, val, first);</div><div class='add'>+        }</div><div class='add'>+        else if (!NIL_P(tmp = rb_check_string_type(val))) {</div><div class='add'>+            ary_join_1_str(result, tmp, first);</div><div class='add'>+        }</div><div class='add'>+        else if (!NIL_P(tmp = rb_check_array_type(val))) {</div><div class='add'>+            ary_join_1_ary(val, ary, sep, result, tmp, first);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ary_join_1_str(result, rb_obj_as_string(val), first);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2293,36 +3008,36 @@ VALUE</div><div class='ctx'> rb_ary_join(VALUE ary, VALUE sep)</div><div class='ctx'> {</div><div class='ctx'>     long len = 1, i;</div><div class='del'>-    int taint = FALSE;</div><div class='ctx'>     VALUE val, tmp, result;</div><div class='ctx'> </div><div class='ctx'>     if (RARRAY_LEN(ary) == 0) return rb_usascii_str_new(0, 0);</div><div class='del'>-    if (OBJ_TAINTED(ary)) taint = TRUE;</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(sep)) {</div><div class='del'>-	StringValue(sep);</div><div class='del'>-	len += RSTRING_LEN(sep) * (RARRAY_LEN(ary) - 1);</div><div class='add'>+        StringValue(sep);</div><div class='add'>+        len += RSTRING_LEN(sep) * (RARRAY_LEN(ary) - 1);</div><div class='ctx'>     }</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	val = RARRAY_AREF(ary, i);</div><div class='del'>-	tmp = rb_check_string_type(val);</div><div class='del'>-</div><div class='del'>-	if (NIL_P(tmp) || tmp != val) {</div><div class='del'>-	    int first;</div><div class='del'>-	    result = rb_str_buf_new(len + (RARRAY_LEN(ary)-i)*10);</div><div class='del'>-	    rb_enc_associate(result, rb_usascii_encoding());</div><div class='del'>-	    if (taint) OBJ_TAINT(result);</div><div class='del'>-	    ary_join_0(ary, sep, i, result);</div><div class='del'>-	    first = i == 0;</div><div class='del'>-	    ary_join_1(ary, ary, sep, i, result, &amp;first);</div><div class='del'>-	    return result;</div><div class='del'>-	}</div><div class='add'>+        val = RARRAY_AREF(ary, i);</div><div class='add'>+        tmp = rb_check_string_type(val);</div><div class='add'>+</div><div class='add'>+        if (NIL_P(tmp) || tmp != val) {</div><div class='add'>+            int first;</div><div class='add'>+            long n = RARRAY_LEN(ary);</div><div class='add'>+            if (i &gt; n) i = n;</div><div class='add'>+            result = rb_str_buf_new(len + (n-i)*10);</div><div class='add'>+            rb_enc_associate(result, rb_usascii_encoding());</div><div class='add'>+            i = ary_join_0(ary, sep, i, result);</div><div class='add'>+            first = i == 0;</div><div class='add'>+            ary_join_1(ary, ary, sep, i, result, &amp;first);</div><div class='add'>+            return result;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	len += RSTRING_LEN(tmp);</div><div class='add'>+        len += RSTRING_LEN(tmp);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    result = rb_str_buf_new(len);</div><div class='del'>-    if (taint) OBJ_TAINT(result);</div><div class='add'>+    result = rb_str_new(0, len);</div><div class='add'>+    rb_str_set_len(result, 0);</div><div class='add'>+</div><div class='ctx'>     ary_join_0(ary, sep, RARRAY_LEN(ary), result);</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='hunk'>@@ -2330,32 +3045,42 @@ rb_ary_join(VALUE ary, VALUE sep)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.join(separator=$,)    -&gt; str</div><div class='add'>+ *    array.join -&gt;new_string</div><div class='add'>+ *    array.join(separator = $,) -&gt; new_string</div><div class='add'>+ *</div><div class='add'>+ *  Returns the new \String formed by joining the array elements after conversion.</div><div class='add'>+ *  For each element +element+:</div><div class='add'>+ *</div><div class='add'>+ *  - Uses &lt;tt&gt;element.to_s&lt;/tt&gt; if +element+ is not a &lt;tt&gt;kind_of?(Array)&lt;/tt&gt;.</div><div class='add'>+ *  - Uses recursive &lt;tt&gt;element.join(separator)&lt;/tt&gt; if +element+ is a &lt;tt&gt;kind_of?(Array)&lt;/tt&gt;.</div><div class='ctx'>  *</div><div class='del'>- *  Returns a string created by converting each element of the array to</div><div class='del'>- *  a string, separated by the given +separator+.</div><div class='del'>- *  If the +separator+ is +nil+, it uses current &lt;code&gt;$,&lt;/code&gt;.</div><div class='del'>- *  If both the +separator+ and &lt;code&gt;$,&lt;/code&gt; are +nil+,</div><div class='del'>- *  it uses an empty string.</div><div class='add'>+ *  With no argument, joins using the output field separator, &lt;tt&gt;$,&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *     [ "a", "b", "c" ].join        #=&gt; "abc"</div><div class='del'>- *     [ "a", "b", "c" ].join("-")   #=&gt; "a-b-c"</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    $, # =&gt; nil</div><div class='add'>+ *    a.join # =&gt; "foobar2"</div><div class='ctx'>  *</div><div class='del'>- *  For nested arrays, join is applied recursively:</div><div class='add'>+ *  With \string argument +separator+, joins using that separator:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.join("\n") # =&gt; "foo\nbar\n2"</div><div class='add'>+ *</div><div class='add'>+ *  Joins recursively for nested Arrays:</div><div class='add'>+ *</div><div class='add'>+ *   a = [:foo, [:bar, [:baz, :bat]]]</div><div class='add'>+ *   a.join # =&gt; "foobarbazbat"</div><div class='ctx'>  *</div><div class='del'>- *     [ "a", [1, 2, [:x, :y]], "b" ].join("-")   #=&gt; "a-1-2-x-y-b"</div><div class='ctx'>  */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_join_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     VALUE sep;</div><div class='ctx'> </div><div class='del'>-    if (rb_check_arity(argc, 0, 1) == 0) {</div><div class='del'>-        sep = rb_output_fs;</div><div class='del'>-    }</div><div class='del'>-    else if (NIL_P(sep = argv[0])) {</div><div class='add'>+    if (rb_check_arity(argc, 0, 1) == 0 || NIL_P(sep = argv[0])) {</div><div class='ctx'>         sep = rb_output_fs;</div><div class='add'>+        if (!NIL_P(sep)) {</div><div class='add'>+            rb_category_warn(RB_WARN_CATEGORY_DEPRECATED, "$, is set to non-nil value");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return rb_ary_join(ary, sep);</div><div class='hunk'>@@ -2364,32 +3089,32 @@ rb_ary_join_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> static VALUE</div><div class='ctx'> inspect_ary(VALUE ary, VALUE dummy, int recur)</div><div class='ctx'> {</div><div class='del'>-    int tainted = OBJ_TAINTED(ary);</div><div class='ctx'>     long i;</div><div class='ctx'>     VALUE s, str;</div><div class='ctx'> </div><div class='ctx'>     if (recur) return rb_usascii_str_new_cstr("[...]");</div><div class='ctx'>     str = rb_str_buf_new2("[");</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	s = rb_inspect(RARRAY_AREF(ary, i));</div><div class='del'>-	if (OBJ_TAINTED(s)) tainted = TRUE;</div><div class='del'>-	if (i &gt; 0) rb_str_buf_cat2(str, ", ");</div><div class='del'>-	else rb_enc_copy(str, s);</div><div class='del'>-	rb_str_buf_append(str, s);</div><div class='add'>+        s = rb_inspect(RARRAY_AREF(ary, i));</div><div class='add'>+        if (i &gt; 0) rb_str_buf_cat2(str, ", ");</div><div class='add'>+        else rb_enc_copy(str, s);</div><div class='add'>+        rb_str_buf_append(str, s);</div><div class='ctx'>     }</div><div class='ctx'>     rb_str_buf_cat2(str, "]");</div><div class='del'>-    if (tainted) OBJ_TAINT(str);</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.inspect  -&gt; string</div><div class='del'>- *     ary.to_s     -&gt; string</div><div class='add'>+ *    array.inspect -&gt; new_string</div><div class='ctx'>  *</div><div class='del'>- *  Creates a string representation of +self+.</div><div class='add'>+ *  Returns the new \String formed by calling method &lt;tt&gt;#inspect&lt;/tt&gt;</div><div class='add'>+ *  on each array element:</div><div class='ctx'>  *</div><div class='del'>- *     [ "a", "b", "c" ].to_s     #=&gt; "[\"a\", \"b\", \"c\"]"</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.inspect # =&gt; "[:foo, \"bar\", 2]"</div><div class='add'>+ *</div><div class='add'>+ *  Array#to_s is an alias for Array#inspect.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2407,40 +3132,59 @@ rb_ary_to_s(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.to_a     -&gt; ary</div><div class='add'>+ *    to_a -&gt; self or new_array</div><div class='ctx'>  *</div><div class='del'>- *  Returns +self+.</div><div class='add'>+ *  When +self+ is an instance of \Array, returns +self+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.to_a # =&gt; [:foo, "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  Otherwise, returns a new \Array containing the elements of +self+:</div><div class='add'>+ *</div><div class='add'>+ *    class MyArray &lt; Array; end</div><div class='add'>+ *    a = MyArray.new(['foo', 'bar', 'two'])</div><div class='add'>+ *    a.instance_of?(Array) # =&gt; false</div><div class='add'>+ *    a.kind_of?(Array) # =&gt; true</div><div class='add'>+ *    a1 = a.to_a</div><div class='add'>+ *    a1 # =&gt; ["foo", "bar", "two"]</div><div class='add'>+ *    a1.class # =&gt; Array # Not MyArray</div><div class='ctx'>  *</div><div class='del'>- *  If called on a subclass of Array, converts the receiver to an Array object.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_to_a(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     if (rb_obj_class(ary) != rb_cArray) {</div><div class='del'>-	VALUE dup = rb_ary_new2(RARRAY_LEN(ary));</div><div class='del'>-	rb_ary_replace(dup, ary);</div><div class='del'>-	return dup;</div><div class='add'>+        VALUE dup = rb_ary_new2(RARRAY_LEN(ary));</div><div class='add'>+        rb_ary_replace(dup, ary);</div><div class='add'>+        return dup;</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.to_h            -&gt; hash</div><div class='del'>- *     ary.to_h { block }  -&gt; hash</div><div class='add'>+ *    array.to_h -&gt; new_hash</div><div class='add'>+ *    array.to_h {|item| ... } -&gt; new_hash</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Hash formed from +self+.</div><div class='ctx'>  *</div><div class='del'>- *  Returns the result of interpreting &lt;i&gt;ary&lt;/i&gt; as an array of</div><div class='del'>- *  &lt;tt&gt;[key, value]&lt;/tt&gt; pairs.</div><div class='add'>+ *  When a block is given, calls the block with each array element;</div><div class='add'>+ *  the block must return a 2-element \Array whose two elements</div><div class='add'>+ *  form a key-value pair in the returned \Hash:</div><div class='ctx'>  *</div><div class='del'>- *     [[:foo, :bar], [1, 2]].to_h</div><div class='del'>- *       # =&gt; {:foo =&gt; :bar, 1 =&gt; 2}</div><div class='add'>+ *    a = ['foo', :bar, 1, [2, 3], {baz: 4}]</div><div class='add'>+ *    h = a.to_h {|item| [item, item] }</div><div class='add'>+ *    h # =&gt; {"foo"=&gt;"foo", :bar=&gt;:bar, 1=&gt;1, [2, 3]=&gt;[2, 3], {:baz=&gt;4}=&gt;{:baz=&gt;4}}</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given, the results of the block on each element of</div><div class='del'>- *  the array will be used as pairs.</div><div class='add'>+ *  When no block is given, +self+ must be an \Array of 2-element sub-arrays,</div><div class='add'>+ *  each sub-array is formed into a key-value pair in the new \Hash:</div><div class='add'>+ *</div><div class='add'>+ *    [].to_h # =&gt; {}</div><div class='add'>+ *    a = [['foo', 'zero'], ['bar', 'one'], ['baz', 'two']]</div><div class='add'>+ *    h = a.to_h</div><div class='add'>+ *    h # =&gt; {"foo"=&gt;"zero", "bar"=&gt;"one", "baz"=&gt;"two"}</div><div class='ctx'>  *</div><div class='del'>- *     ["foo", "bar"].to_h {|s| [s.ord, s]}</div><div class='del'>- *       # =&gt; {102=&gt;"foo", 98=&gt;"bar"}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2451,25 +3195,25 @@ rb_ary_to_h(VALUE ary)</div><div class='ctx'>     int block_given = rb_block_given_p();</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	const VALUE e = rb_ary_elt(ary, i);</div><div class='del'>-	const VALUE elt = block_given ? rb_yield_force_blockarg(e) : e;</div><div class='del'>-	const VALUE key_value_pair = rb_check_array_type(elt);</div><div class='del'>-	if (NIL_P(key_value_pair)) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "wrong element type %"PRIsVALUE" at %ld (expected array)",</div><div class='del'>-		     rb_obj_class(elt), i);</div><div class='del'>-	}</div><div class='del'>-	if (RARRAY_LEN(key_value_pair) != 2) {</div><div class='del'>-	    rb_raise(rb_eArgError, "wrong array length at %ld (expected 2, was %ld)",</div><div class='del'>-		i, RARRAY_LEN(key_value_pair));</div><div class='del'>-	}</div><div class='del'>-	rb_hash_aset(hash, RARRAY_AREF(key_value_pair, 0), RARRAY_AREF(key_value_pair, 1));</div><div class='add'>+        const VALUE e = rb_ary_elt(ary, i);</div><div class='add'>+        const VALUE elt = block_given ? rb_yield_force_blockarg(e) : e;</div><div class='add'>+        const VALUE key_value_pair = rb_check_array_type(elt);</div><div class='add'>+        if (NIL_P(key_value_pair)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "wrong element type %"PRIsVALUE" at %ld (expected array)",</div><div class='add'>+                     rb_obj_class(elt), i);</div><div class='add'>+        }</div><div class='add'>+        if (RARRAY_LEN(key_value_pair) != 2) {</div><div class='add'>+            rb_raise(rb_eArgError, "wrong array length at %ld (expected 2, was %ld)",</div><div class='add'>+                i, RARRAY_LEN(key_value_pair));</div><div class='add'>+        }</div><div class='add'>+        rb_hash_aset(hash, RARRAY_AREF(key_value_pair, 0), RARRAY_AREF(key_value_pair, 1));</div><div class='ctx'>     }</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.to_ary -&gt; ary</div><div class='add'>+ *    array.to_ary -&gt; self</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns +self+.</div><div class='ctx'>  */</div><div class='hunk'>@@ -2484,9 +3228,9 @@ static void</div><div class='ctx'> ary_reverse(VALUE *p1, VALUE *p2)</div><div class='ctx'> {</div><div class='ctx'>     while (p1 &lt; p2) {</div><div class='del'>-	VALUE tmp = *p1;</div><div class='del'>-	*p1++ = *p2;</div><div class='del'>-	*p2-- = tmp;</div><div class='add'>+        VALUE tmp = *p1;</div><div class='add'>+        *p1++ = *p2;</div><div class='add'>+        *p2-- = tmp;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2501,20 +3245,20 @@ rb_ary_reverse(VALUE ary)</div><div class='ctx'>         RARRAY_PTR_USE_TRANSIENT(ary, p1, {</div><div class='ctx'>             p2 = p1 + len - 1;	/* points last item */</div><div class='ctx'>             ary_reverse(p1, p2);</div><div class='del'>-	}); /* WB: no new reference */</div><div class='add'>+        }); /* WB: no new reference */</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.reverse!   -&gt; ary</div><div class='add'>+ *    array.reverse! -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Reverses +self+ in place:</div><div class='ctx'>  *</div><div class='del'>- *  Reverses +self+ in place.</div><div class='add'>+ *    a = ['foo', 'bar', 'two']</div><div class='add'>+ *    a.reverse! # =&gt; ["two", "bar", "foo"]</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.reverse!       #=&gt; ["c", "b", "a"]</div><div class='del'>- *     a                #=&gt; ["c", "b", "a"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2525,12 +3269,14 @@ rb_ary_reverse_bang(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.reverse    -&gt; new_ary</div><div class='add'>+ *    array.reverse -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Array with the elements of +self+ in reverse order:</div><div class='ctx'>  *</div><div class='del'>- *  Returns a new array containing +self+'s elements in reverse order.</div><div class='add'>+ *    a = ['foo', 'bar', 'two']</div><div class='add'>+ *    a1 = a.reverse</div><div class='add'>+ *    a1 # =&gt; ["two", "bar", "foo"]</div><div class='ctx'>  *</div><div class='del'>- *     [ "a", "b", "c" ].reverse   #=&gt; ["c", "b", "a"]</div><div class='del'>- *     [ 1 ].reverse               #=&gt; [1]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2542,7 +3288,7 @@ rb_ary_reverse_m(VALUE ary)</div><div class='ctx'>     if (len &gt; 0) {</div><div class='ctx'>         const VALUE *p1 = RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='ctx'>         VALUE *p2 = (VALUE *)RARRAY_CONST_PTR_TRANSIENT(dup) + len - 1;</div><div class='del'>-	do *p2-- = *p1++; while (--len &gt; 0);</div><div class='add'>+        do *p2-- = *p1++; while (--len &gt; 0);</div><div class='ctx'>     }</div><div class='ctx'>     ARY_SET_LEN(dup, RARRAY_LEN(ary));</div><div class='ctx'>     return dup;</div><div class='hunk'>@@ -2557,10 +3303,22 @@ rotate_count(long cnt, long len)</div><div class='ctx'> static void</div><div class='ctx'> ary_rotate_ptr(VALUE *ptr, long len, long cnt)</div><div class='ctx'> {</div><div class='del'>-    --len;</div><div class='del'>-    if (cnt &lt; len) ary_reverse(ptr + cnt, ptr + len);</div><div class='del'>-    if (--cnt &gt; 0) ary_reverse(ptr, ptr + cnt);</div><div class='del'>-    if (len &gt; 0) ary_reverse(ptr, ptr + len);</div><div class='add'>+    if (cnt == 1) {</div><div class='add'>+        VALUE tmp = *ptr;</div><div class='add'>+        memmove(ptr, ptr + 1, sizeof(VALUE)*(len - 1));</div><div class='add'>+        *(ptr + len - 1) = tmp;</div><div class='add'>+    }</div><div class='add'>+    else if (cnt == len - 1) {</div><div class='add'>+        VALUE tmp = *(ptr + len - 1);</div><div class='add'>+        memmove(ptr + 1, ptr, sizeof(VALUE)*(len - 1));</div><div class='add'>+        *ptr = tmp;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        --len;</div><div class='add'>+        if (cnt &lt; len) ary_reverse(ptr + cnt, ptr + len);</div><div class='add'>+        if (--cnt &gt; 0) ary_reverse(ptr, ptr + cnt);</div><div class='add'>+        if (len &gt; 0) ary_reverse(ptr, ptr + len);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -2570,7 +3328,7 @@ rb_ary_rotate(VALUE ary, long cnt)</div><div class='ctx'> </div><div class='ctx'>     if (cnt != 0) {</div><div class='ctx'>         long len = RARRAY_LEN(ary);</div><div class='del'>-        if (len &gt; 0 &amp;&amp; (cnt = rotate_count(cnt, len)) &gt; 0) {</div><div class='add'>+        if (len &gt; 1 &amp;&amp; (cnt = rotate_count(cnt, len)) &gt; 0) {</div><div class='ctx'>             RARRAY_PTR_USE_TRANSIENT(ary, ptr, ary_rotate_ptr(ptr, len, cnt));</div><div class='ctx'>             return ary;</div><div class='ctx'>         }</div><div class='hunk'>@@ -2580,19 +3338,48 @@ rb_ary_rotate(VALUE ary, long cnt)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.rotate!(count=1)   -&gt; ary</div><div class='add'>+ *    array.rotate! -&gt; self</div><div class='add'>+ *    array.rotate!(count) -&gt; self</div><div class='ctx'>  *</div><div class='del'>- *  Rotates +self+ in place so that the element at +count+ comes first, and</div><div class='del'>- *  returns +self+.</div><div class='add'>+ *  Rotates +self+ in place by moving elements from one end to the other; returns +self+.</div><div class='add'>+ *</div><div class='add'>+ *  When no argument given, rotates the first element to the last position:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2, 'bar']</div><div class='add'>+ *    a.rotate! # =&gt; ["bar", 2, "bar", :foo]</div><div class='add'>+ *</div><div class='add'>+ *  When given a non-negative \Integer +count+,</div><div class='add'>+ *  rotates +count+ elements from the beginning to the end:</div><div class='ctx'>  *</div><div class='del'>- *  If +count+ is negative then it rotates in the opposite direction, starting</div><div class='del'>- *  from the end of the array where +-1+ is the last element.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.rotate!(2)</div><div class='add'>+ *    a # =&gt; [2, :foo, "bar"]</div><div class='add'>+ *</div><div class='add'>+ *  If +count+ is large, uses &lt;tt&gt;count % array.size&lt;/tt&gt; as the count:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.rotate!(20)</div><div class='add'>+ *    a # =&gt; [2, :foo, "bar"]</div><div class='add'>+ *</div><div class='add'>+ *  If +count+ is zero, returns +self+ unmodified:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.rotate!(0)</div><div class='add'>+ *    a # =&gt; [:foo, "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  When given a negative Integer +count+, rotates in the opposite direction,</div><div class='add'>+ *  from end to beginning:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.rotate!(-2)</div><div class='add'>+ *    a # =&gt; ["bar", 2, :foo]</div><div class='add'>+ *</div><div class='add'>+ *  If +count+ is small (far from zero), uses &lt;tt&gt;count % array.size&lt;/tt&gt; as the count:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.rotate!(-5)</div><div class='add'>+ *    a # =&gt; ["bar", 2, :foo]</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c", "d" ]</div><div class='del'>- *     a.rotate!        #=&gt; ["b", "c", "d", "a"]</div><div class='del'>- *     a                #=&gt; ["b", "c", "d", "a"]</div><div class='del'>- *     a.rotate!(2)     #=&gt; ["d", "a", "b", "c"]</div><div class='del'>- *     a.rotate!(-3)    #=&gt; ["a", "b", "c", "d"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2605,19 +3392,51 @@ rb_ary_rotate_bang(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.rotate(count=1)    -&gt; new_ary</div><div class='add'>+ *    array.rotate -&gt; new_array</div><div class='add'>+ *    array.rotate(count) -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Array formed from +self+ with elements</div><div class='add'>+ *  rotated from one end to the other.</div><div class='add'>+ *</div><div class='add'>+ *  When no argument given, returns a new \Array that is like +self+,</div><div class='add'>+ *  except that the first element has been rotated to the last position:</div><div class='ctx'>  *</div><div class='del'>- *  Returns a new array by rotating +self+ so that the element at +count+ is</div><div class='del'>- *  the first element of the new array.</div><div class='add'>+ *    a = [:foo, 'bar', 2, 'bar']</div><div class='add'>+ *    a1 = a.rotate</div><div class='add'>+ *    a1 # =&gt; ["bar", 2, "bar", :foo]</div><div class='ctx'>  *</div><div class='del'>- *  If +count+ is negative then it rotates in the opposite direction, starting</div><div class='del'>- *  from the end of +self+ where +-1+ is the last element.</div><div class='add'>+ *  When given a non-negative \Integer +count+,</div><div class='add'>+ *  returns a new \Array with +count+ elements rotated from the beginning to the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = a.rotate(2)</div><div class='add'>+ *    a1 # =&gt; [2, :foo, "bar"]</div><div class='add'>+ *</div><div class='add'>+ *  If +count+ is large, uses &lt;tt&gt;count % array.size&lt;/tt&gt; as the count:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = a.rotate(20)</div><div class='add'>+ *    a1 # =&gt; [2, :foo, "bar"]</div><div class='add'>+ *</div><div class='add'>+ *  If +count+ is zero, returns a copy of +self+, unmodified:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = a.rotate(0)</div><div class='add'>+ *    a1 # =&gt; [:foo, "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  When given a negative \Integer +count+, rotates in the opposite direction,</div><div class='add'>+ *  from end to beginning:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = a.rotate(-2)</div><div class='add'>+ *    a1 # =&gt; ["bar", 2, :foo]</div><div class='add'>+ *</div><div class='add'>+ *  If +count+ is small (far from zero), uses &lt;tt&gt;count % array.size&lt;/tt&gt; as the count:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = a.rotate(-5)</div><div class='add'>+ *    a1 # =&gt; ["bar", 2, :foo]</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c", "d" ]</div><div class='del'>- *     a.rotate         #=&gt; ["b", "c", "d", "a"]</div><div class='del'>- *     a                #=&gt; ["a", "b", "c", "d"]</div><div class='del'>- *     a.rotate(2)      #=&gt; ["c", "d", "a", "b"]</div><div class='del'>- *     a.rotate(-3)     #=&gt; ["b", "c", "d", "a"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2631,11 +3450,11 @@ rb_ary_rotate_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     len = RARRAY_LEN(ary);</div><div class='ctx'>     rotated = rb_ary_new2(len);</div><div class='ctx'>     if (len &gt; 0) {</div><div class='del'>-	cnt = rotate_count(cnt, len);</div><div class='add'>+        cnt = rotate_count(cnt, len);</div><div class='ctx'>         ptr = RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='del'>-	len -= cnt;</div><div class='del'>-	ary_memcpy(rotated, 0, len, ptr + cnt);</div><div class='del'>-	ary_memcpy(rotated, len, cnt, ptr);</div><div class='add'>+        len -= cnt;</div><div class='add'>+        ary_memcpy(rotated, 0, len, ptr + cnt);</div><div class='add'>+        ary_memcpy(rotated, len, cnt, ptr);</div><div class='ctx'>     }</div><div class='ctx'>     ARY_SET_LEN(rotated, RARRAY_LEN(ary));</div><div class='ctx'>     return rotated;</div><div class='hunk'>@@ -2643,18 +3462,27 @@ rb_ary_rotate_m(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> struct ary_sort_data {</div><div class='ctx'>     VALUE ary;</div><div class='del'>-    struct cmp_opt_data cmp_opt;</div><div class='add'>+    VALUE receiver;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> sort_reentered(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     if (RBASIC(ary)-&gt;klass) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "sort reentered");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "sort reentered");</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+sort_returned(struct ary_sort_data *data)</div><div class='add'>+{</div><div class='add'>+    if (rb_obj_frozen_p(data-&gt;receiver)) {</div><div class='add'>+        rb_raise(rb_eFrozenError, "array frozen during sort");</div><div class='add'>+    }</div><div class='add'>+    sort_reentered(data-&gt;ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> sort_1(const void *ap, const void *bp, void *dummy)</div><div class='ctx'> {</div><div class='hunk'>@@ -2668,7 +3496,7 @@ sort_1(const void *ap, const void *bp, void *dummy)</div><div class='ctx'>     args[1] = b;</div><div class='ctx'>     retval = rb_yield_values2(2, args);</div><div class='ctx'>     n = rb_cmpint(retval, a, b);</div><div class='del'>-    sort_reentered(data-&gt;ary);</div><div class='add'>+    sort_returned(data);</div><div class='ctx'>     return n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2680,47 +3508,64 @@ sort_2(const void *ap, const void *bp, void *dummy)</div><div class='ctx'>     VALUE a = *(const VALUE *)ap, b = *(const VALUE *)bp;</div><div class='ctx'>     int n;</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(a) &amp;&amp; FIXNUM_P(b) &amp;&amp; CMP_OPTIMIZABLE(data-&gt;cmp_opt, Fixnum)) {</div><div class='del'>-	if ((long)a &gt; (long)b) return 1;</div><div class='del'>-	if ((long)a &lt; (long)b) return -1;</div><div class='del'>-	return 0;</div><div class='add'>+    if (FIXNUM_P(a) &amp;&amp; FIXNUM_P(b) &amp;&amp; CMP_OPTIMIZABLE(INTEGER)) {</div><div class='add'>+        if ((long)a &gt; (long)b) return 1;</div><div class='add'>+        if ((long)a &lt; (long)b) return -1;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='del'>-    if (STRING_P(a) &amp;&amp; STRING_P(b) &amp;&amp; CMP_OPTIMIZABLE(data-&gt;cmp_opt, String)) {</div><div class='del'>-	return rb_str_cmp(a, b);</div><div class='add'>+    if (STRING_P(a) &amp;&amp; STRING_P(b) &amp;&amp; CMP_OPTIMIZABLE(STRING)) {</div><div class='add'>+        return rb_str_cmp(a, b);</div><div class='ctx'>     }</div><div class='del'>-    if (RB_FLOAT_TYPE_P(a) &amp;&amp; CMP_OPTIMIZABLE(data-&gt;cmp_opt, Float)) {</div><div class='del'>-	return rb_float_cmp(a, b);</div><div class='add'>+    if (RB_FLOAT_TYPE_P(a) &amp;&amp; CMP_OPTIMIZABLE(FLOAT)) {</div><div class='add'>+        return rb_float_cmp(a, b);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     retval = rb_funcallv(a, id_cmp, 1, &amp;b);</div><div class='ctx'>     n = rb_cmpint(retval, a, b);</div><div class='del'>-    sort_reentered(data-&gt;ary);</div><div class='add'>+    sort_returned(data);</div><div class='ctx'> </div><div class='ctx'>     return n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.sort!                   -&gt; ary</div><div class='del'>- *     ary.sort! {|a, b| block}    -&gt; ary</div><div class='add'>+ *    array.sort! -&gt; self</div><div class='add'>+ *    array.sort! {|a, b| ... } -&gt; self</div><div class='ctx'>  *</div><div class='del'>- *  Sorts +self+ in place.</div><div class='add'>+ *  Returns +self+ with its elements sorted in place.</div><div class='ctx'>  *</div><div class='del'>- *  Comparisons for the sort will be done using the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator</div><div class='del'>- *  or using an optional code block.</div><div class='add'>+ *  With no block, compares elements using operator &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;</div><div class='add'>+ *  (see Comparable):</div><div class='ctx'>  *</div><div class='del'>- *  The block must implement a comparison between +a+ and +b+ and return</div><div class='del'>- *  an integer less than 0 when +b+ follows +a+, +0+ when +a+ and +b+</div><div class='del'>- *  are equivalent, or an integer greater than 0 when +a+ follows +b+.</div><div class='add'>+ *    a = 'abcde'.split('').shuffle</div><div class='add'>+ *    a # =&gt; ["e", "b", "d", "a", "c"]</div><div class='add'>+ *    a.sort!</div><div class='add'>+ *    a # =&gt; ["a", "b", "c", "d", "e"]</div><div class='ctx'>  *</div><div class='del'>- *  The result is not guaranteed to be stable.  When the comparison of two</div><div class='del'>- *  elements returns +0+, the order of the elements is unpredictable.</div><div class='add'>+ *  With a block, calls the block with each element pair;</div><div class='add'>+ *  for each element pair +a+ and +b+, the block should return an integer:</div><div class='ctx'>  *</div><div class='del'>- *     ary = [ "d", "a", "e", "c", "b" ]</div><div class='del'>- *     ary.sort!                     #=&gt; ["a", "b", "c", "d", "e"]</div><div class='del'>- *     ary.sort! {|a, b| b &lt;=&gt; a}    #=&gt; ["e", "d", "c", "b", "a"]</div><div class='add'>+ *  - Negative when +b+ is to follow +a+.</div><div class='add'>+ *  - Zero when +a+ and +b+ are equivalent.</div><div class='add'>+ *  - Positive when +a+ is to follow +b+.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    a = 'abcde'.split('').shuffle</div><div class='add'>+ *    a # =&gt; ["e", "b", "d", "a", "c"]</div><div class='add'>+ *    a.sort! {|a, b| a &lt;=&gt; b }</div><div class='add'>+ *    a # =&gt; ["a", "b", "c", "d", "e"]</div><div class='add'>+ *    a.sort! {|a, b| b &lt;=&gt; a }</div><div class='add'>+ *    a # =&gt; ["e", "d", "c", "b", "a"]</div><div class='add'>+ *</div><div class='add'>+ *  When the block returns zero, the order for +a+ and +b+ is indeterminate,</div><div class='add'>+ *  and may be unstable:</div><div class='add'>+ *</div><div class='add'>+ *    a = 'abcde'.split('').shuffle</div><div class='add'>+ *    a # =&gt; ["e", "b", "d", "a", "c"]</div><div class='add'>+ *    a.sort! {|a, b| 0 }</div><div class='add'>+ *    a # =&gt; ["d", "e", "c", "a", "b"]</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#sort_by.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -2729,24 +3574,23 @@ rb_ary_sort_bang(VALUE ary)</div><div class='ctx'>     rb_ary_modify(ary);</div><div class='ctx'>     assert(!ARY_SHARED_P(ary));</div><div class='ctx'>     if (RARRAY_LEN(ary) &gt; 1) {</div><div class='del'>-	VALUE tmp = ary_make_substitution(ary); /* only ary refers tmp */</div><div class='del'>-	struct ary_sort_data data;</div><div class='del'>-	long len = RARRAY_LEN(ary);</div><div class='del'>-	RBASIC_CLEAR_CLASS(tmp);</div><div class='del'>-	data.ary = tmp;</div><div class='del'>-	data.cmp_opt.opt_methods = 0;</div><div class='del'>-	data.cmp_opt.opt_inited = 0;</div><div class='del'>-	RARRAY_PTR_USE(tmp, ptr, {</div><div class='add'>+        VALUE tmp = ary_make_substitution(ary); /* only ary refers tmp */</div><div class='add'>+        struct ary_sort_data data;</div><div class='add'>+        long len = RARRAY_LEN(ary);</div><div class='add'>+        RBASIC_CLEAR_CLASS(tmp);</div><div class='add'>+        data.ary = tmp;</div><div class='add'>+        data.receiver = ary;</div><div class='add'>+        RARRAY_PTR_USE(tmp, ptr, {</div><div class='ctx'>             ruby_qsort(ptr, len, sizeof(VALUE),</div><div class='ctx'>                        rb_block_given_p()?sort_1:sort_2, &amp;data);</div><div class='del'>-	}); /* WB: no new reference */</div><div class='del'>-	rb_ary_modify(ary);</div><div class='add'>+        }); /* WB: no new reference */</div><div class='add'>+        rb_ary_modify(ary);</div><div class='ctx'>         if (ARY_EMBED_P(tmp)) {</div><div class='ctx'>             if (ARY_SHARED_P(ary)) { /* ary might be destructively operated in the given block */</div><div class='ctx'>                 rb_ary_unshare(ary);</div><div class='del'>-		FL_SET_EMBED(ary);</div><div class='add'>+                FL_SET_EMBED(ary);</div><div class='ctx'>             }</div><div class='del'>-	    ary_memcpy(ary, 0, ARY_EMBED_LEN(tmp), ARY_EMBED_PTR(tmp));</div><div class='add'>+            ary_memcpy(ary, 0, ARY_EMBED_LEN(tmp), ARY_EMBED_PTR(tmp));</div><div class='ctx'>             ARY_SET_LEN(ary, ARY_EMBED_LEN(tmp));</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='hunk'>@@ -2785,26 +3629,44 @@ rb_ary_sort_bang(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.sort                   -&gt; new_ary</div><div class='del'>- *     ary.sort {|a, b| block}    -&gt; new_ary</div><div class='add'>+ *    array.sort -&gt; new_array</div><div class='add'>+ *    array.sort {|a, b| ... } -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Array whose elements are those from +self+, sorted.</div><div class='add'>+ *</div><div class='add'>+ *  With no block, compares elements using operator &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;</div><div class='add'>+ *  (see Comparable):</div><div class='ctx'>  *</div><div class='del'>- *  Returns a new array created by sorting +self+.</div><div class='add'>+ *    a = 'abcde'.split('').shuffle</div><div class='add'>+ *    a # =&gt; ["e", "b", "d", "a", "c"]</div><div class='add'>+ *    a1 = a.sort</div><div class='add'>+ *    a1 # =&gt; ["a", "b", "c", "d", "e"]</div><div class='ctx'>  *</div><div class='del'>- *  Comparisons for the sort will be done using the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator</div><div class='del'>- *  or using an optional code block.</div><div class='add'>+ *  With a block, calls the block with each element pair;</div><div class='add'>+ *  for each element pair +a+ and +b+, the block should return an integer:</div><div class='ctx'>  *</div><div class='del'>- *  The block must implement a comparison between +a+ and +b+ and return</div><div class='del'>- *  an integer less than 0 when +b+ follows +a+, +0+ when +a+ and +b+</div><div class='del'>- *  are equivalent, or an integer greater than 0 when +a+ follows +b+.</div><div class='add'>+ *  - Negative when +b+ is to follow +a+.</div><div class='add'>+ *  - Zero when +a+ and +b+ are equivalent.</div><div class='add'>+ *  - Positive when +a+ is to follow +b+.</div><div class='ctx'>  *</div><div class='del'>- *  The result is not guaranteed to be stable.  When the comparison of two</div><div class='del'>- *  elements returns +0+, the order of the elements is unpredictable.</div><div class='add'>+ *  Example:</div><div class='ctx'>  *</div><div class='del'>- *     ary = [ "d", "a", "e", "c", "b" ]</div><div class='del'>- *     ary.sort                     #=&gt; ["a", "b", "c", "d", "e"]</div><div class='del'>- *     ary.sort {|a, b| b &lt;=&gt; a}    #=&gt; ["e", "d", "c", "b", "a"]</div><div class='add'>+ *    a = 'abcde'.split('').shuffle</div><div class='add'>+ *    a # =&gt; ["e", "b", "d", "a", "c"]</div><div class='add'>+ *    a1 = a.sort {|a, b| a &lt;=&gt; b }</div><div class='add'>+ *    a1 # =&gt; ["a", "b", "c", "d", "e"]</div><div class='add'>+ *    a2 = a.sort {|a, b| b &lt;=&gt; a }</div><div class='add'>+ *    a2 # =&gt; ["e", "d", "c", "b", "a"]</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#sort_by.</div><div class='add'>+ *  When the block returns zero, the order for +a+ and +b+ is indeterminate,</div><div class='add'>+ *  and may be unstable:</div><div class='add'>+ *</div><div class='add'>+ *    a = 'abcde'.split('').shuffle</div><div class='add'>+ *    a # =&gt; ["e", "b", "d", "a", "c"]</div><div class='add'>+ *    a1 = a.sort {|a, b| 0 }</div><div class='add'>+ *    a1 # =&gt;  ["c", "e", "b", "d", "a"]</div><div class='add'>+ *</div><div class='add'>+ *  Related: Enumerable#sort_by.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -2819,55 +3681,12 @@ static VALUE rb_ary_bsearch_index(VALUE ary);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.bsearch {|x| block }  -&gt; elem</div><div class='del'>- *</div><div class='del'>- *  By using binary search, finds a value from this array which meets</div><div class='del'>- *  the given condition in O(log n) where n is the size of the array.</div><div class='del'>- *</div><div class='del'>- *  You can use this method in two modes: a find-minimum mode and</div><div class='del'>- *  a find-any mode.  In either case, the elements of the array must be</div><div class='del'>- *  monotone (or sorted) with respect to the block.</div><div class='del'>- *</div><div class='del'>- *  In find-minimum mode (this is a good choice for typical use cases),</div><div class='del'>- *  the block must always return true or false, and there must be an index i</div><div class='del'>- *  (0 &lt;= i &lt;= ary.size) so that:</div><div class='del'>- *</div><div class='del'>- *  - the block returns false for any element whose index is less than</div><div class='del'>- *    i, and</div><div class='del'>- *  - the block returns true for any element whose index is greater</div><div class='del'>- *    than or equal to i.</div><div class='del'>- *</div><div class='del'>- *  This method returns the i-th element.  If i is equal to ary.size,</div><div class='del'>- *  it returns nil.</div><div class='del'>- *</div><div class='del'>- *     ary = [0, 4, 7, 10, 12]</div><div class='del'>- *     ary.bsearch {|x| x &gt;=   4 } #=&gt; 4</div><div class='del'>- *     ary.bsearch {|x| x &gt;=   6 } #=&gt; 7</div><div class='del'>- *     ary.bsearch {|x| x &gt;=  -1 } #=&gt; 0</div><div class='del'>- *     ary.bsearch {|x| x &gt;= 100 } #=&gt; nil</div><div class='del'>- *</div><div class='del'>- *  In find-any mode (this behaves like libc's bsearch(3)), the block</div><div class='del'>- *  must always return a number, and there must be two indices i and j</div><div class='del'>- *  (0 &lt;= i &lt;= j &lt;= ary.size) so that:</div><div class='del'>- *</div><div class='del'>- *  - the block returns a positive number for ary[k] if 0 &lt;= k &lt; i,</div><div class='del'>- *  - the block returns zero for ary[k] if i &lt;= k &lt; j, and</div><div class='del'>- *  - the block returns a negative number for ary[k] if</div><div class='del'>- *    j &lt;= k &lt; ary.size.</div><div class='del'>- *</div><div class='del'>- *  Under this condition, this method returns any element whose index</div><div class='del'>- *  is within i...j.  If i is equal to j (i.e., there is no element</div><div class='del'>- *  that satisfies the block), this method returns nil.</div><div class='del'>- *</div><div class='del'>- *     ary = [0, 4, 7, 10, 12]</div><div class='del'>- *     # try to find v such that 4 &lt;= v &lt; 8</div><div class='del'>- *     ary.bsearch {|x| 1 - x / 4 } #=&gt; 4 or 7</div><div class='del'>- *     # try to find v such that 8 &lt;= v &lt; 10</div><div class='del'>- *     ary.bsearch {|x| 4 - x / 2 } #=&gt; nil</div><div class='del'>- *</div><div class='del'>- *  You must not mix the two modes at a time; the block must always</div><div class='del'>- *  return either true/false, or always return a number.  It is</div><div class='del'>- *  undefined which value is actually picked up at each iteration.</div><div class='add'>+ *    array.bsearch {|element| ... } -&gt; object</div><div class='add'>+ *    array.bsearch -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns an element from +self+ selected by a binary search.</div><div class='add'>+ *</div><div class='add'>+ *  See {Binary Searching}[rdoc-ref:bsearch.rdoc].</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2876,22 +3695,18 @@ rb_ary_bsearch(VALUE ary)</div><div class='ctx'>     VALUE index_result = rb_ary_bsearch_index(ary);</div><div class='ctx'> </div><div class='ctx'>     if (FIXNUM_P(index_result)) {</div><div class='del'>-	return rb_ary_entry(ary, FIX2LONG(index_result));</div><div class='add'>+        return rb_ary_entry(ary, FIX2LONG(index_result));</div><div class='ctx'>     }</div><div class='ctx'>     return index_result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.bsearch_index {|x| block }  -&gt; int or nil</div><div class='del'>- *</div><div class='del'>- *  By using binary search, finds an index of a value from this array which</div><div class='del'>- *  meets the given condition in O(log n) where n is the size of the array.</div><div class='add'>+ *    array.bsearch_index {|element| ... } -&gt; integer or nil</div><div class='add'>+ *    array.bsearch_index -&gt; new_enumerator</div><div class='ctx'>  *</div><div class='del'>- *  It supports two modes, depending on the nature of the block. They are</div><div class='del'>- *  exactly the same as in the case of the #bsearch method, with the only difference</div><div class='del'>- *  being that this method returns the index of the element instead of the</div><div class='del'>- *  element itself. For more details consult the documentation for #bsearch.</div><div class='add'>+ *  Searches +self+ as described at method #bsearch,</div><div class='add'>+ *  but returns the _index_ of the found element instead of the element itself.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2903,39 +3718,39 @@ rb_ary_bsearch_index(VALUE ary)</div><div class='ctx'> </div><div class='ctx'>     RETURN_ENUMERATOR(ary, 0, 0);</div><div class='ctx'>     while (low &lt; high) {</div><div class='del'>-	mid = low + ((high - low) / 2);</div><div class='del'>-	val = rb_ary_entry(ary, mid);</div><div class='del'>-	v = rb_yield(val);</div><div class='del'>-	if (FIXNUM_P(v)) {</div><div class='del'>-	    if (v == INT2FIX(0)) return INT2FIX(mid);</div><div class='del'>-	    smaller = (SIGNED_VALUE)v &lt; 0; /* Fixnum preserves its sign-bit */</div><div class='del'>-	}</div><div class='del'>-	else if (v == Qtrue) {</div><div class='del'>-	    satisfied = 1;</div><div class='del'>-	    smaller = 1;</div><div class='del'>-	}</div><div class='del'>-	else if (v == Qfalse || v == Qnil) {</div><div class='del'>-	    smaller = 0;</div><div class='del'>-	}</div><div class='del'>-	else if (rb_obj_is_kind_of(v, rb_cNumeric)) {</div><div class='del'>-	    const VALUE zero = INT2FIX(0);</div><div class='del'>-	    switch (rb_cmpint(rb_funcallv(v, id_cmp, 1, &amp;zero), v, zero)) {</div><div class='del'>-	      case 0: return INT2FIX(mid);</div><div class='del'>-	      case 1: smaller = 1; break;</div><div class='del'>-	      case -1: smaller = 0;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE</div><div class='del'>-		     " (must be numeric, true, false or nil)",</div><div class='del'>-		     rb_obj_class(v));</div><div class='del'>-	}</div><div class='del'>-	if (smaller) {</div><div class='del'>-	    high = mid;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    low = mid + 1;</div><div class='del'>-	}</div><div class='add'>+        mid = low + ((high - low) / 2);</div><div class='add'>+        val = rb_ary_entry(ary, mid);</div><div class='add'>+        v = rb_yield(val);</div><div class='add'>+        if (FIXNUM_P(v)) {</div><div class='add'>+            if (v == INT2FIX(0)) return INT2FIX(mid);</div><div class='add'>+            smaller = (SIGNED_VALUE)v &lt; 0; /* Fixnum preserves its sign-bit */</div><div class='add'>+        }</div><div class='add'>+        else if (v == Qtrue) {</div><div class='add'>+            satisfied = 1;</div><div class='add'>+            smaller = 1;</div><div class='add'>+        }</div><div class='add'>+        else if (!RTEST(v)) {</div><div class='add'>+            smaller = 0;</div><div class='add'>+        }</div><div class='add'>+        else if (rb_obj_is_kind_of(v, rb_cNumeric)) {</div><div class='add'>+            const VALUE zero = INT2FIX(0);</div><div class='add'>+            switch (rb_cmpint(rb_funcallv(v, id_cmp, 1, &amp;zero), v, zero)) {</div><div class='add'>+              case 0: return INT2FIX(mid);</div><div class='add'>+              case 1: smaller = 0; break;</div><div class='add'>+              case -1: smaller = 1;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE</div><div class='add'>+                     " (must be numeric, true, false or nil)",</div><div class='add'>+                     rb_obj_class(v));</div><div class='add'>+        }</div><div class='add'>+        if (smaller) {</div><div class='add'>+            high = mid;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            low = mid + 1;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (!satisfied) return Qnil;</div><div class='ctx'>     return INT2FIX(low);</div><div class='hunk'>@@ -2950,18 +3765,28 @@ sort_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, dummy))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.sort_by! {|obj| block}      -&gt; ary</div><div class='del'>- *     ary.sort_by!                    -&gt; Enumerator</div><div class='add'>+ *    array.sort_by! {|element| ... } -&gt; self</div><div class='add'>+ *    array.sort_by! -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Sorts the elements of +self+ in place,</div><div class='add'>+ *  using an ordering determined by the block; returns self.</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block with each successive element;</div><div class='add'>+ *  sorts elements based on the values returned from the block.</div><div class='add'>+ *</div><div class='add'>+ *  For duplicates returned by the block, the ordering is indeterminate, and may be unstable.</div><div class='ctx'>  *</div><div class='del'>- *  Sorts +self+ in place using a set of keys generated by mapping the</div><div class='del'>- *  values in +self+ through the given block.</div><div class='add'>+ *  This example sorts strings based on their sizes:</div><div class='ctx'>  *</div><div class='del'>- *  The result is not guaranteed to be stable.  When two keys are equal,</div><div class='del'>- *  the order of the corresponding elements is unpredictable.</div><div class='add'>+ *    a = ['aaaa', 'bbb', 'cc', 'd']</div><div class='add'>+ *    a.sort_by! {|element| element.size }</div><div class='add'>+ *    a # =&gt; ["d", "cc", "bbb", "aaaa"]</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['aaaa', 'bbb', 'cc', 'd']</div><div class='add'>+ *    a.sort_by! # =&gt; #&lt;Enumerator: ["aaaa", "bbb", "cc", "d"]:sort_by!&gt;</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#sort_by.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2979,23 +3804,22 @@ rb_ary_sort_by_bang(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.collect {|item| block}    -&gt; new_ary</div><div class='del'>- *     ary.map     {|item| block}    -&gt; new_ary</div><div class='del'>- *     ary.collect                   -&gt; Enumerator</div><div class='del'>- *     ary.map                       -&gt; Enumerator</div><div class='del'>- *</div><div class='del'>- *  Invokes the given block once for each element of +self+.</div><div class='add'>+ *    array.map {|element| ... } -&gt; new_array</div><div class='add'>+ *    array.map -&gt; new_enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Creates a new array containing the values returned by the block.</div><div class='add'>+ *  Calls the block, if given, with each element of +self+;</div><div class='add'>+ *  returns a new \Array whose elements are the return values from the block:</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#collect.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = a.map {|element| element.class }</div><div class='add'>+ *    a1 # =&gt; [Symbol, String, Integer]</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = a.map</div><div class='add'>+ *    a1 # =&gt; #&lt;Enumerator: [:foo, "bar", 2]:map&gt;</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c", "d" ]</div><div class='del'>- *     a.collect {|x| x + "!"}           #=&gt; ["a!", "b!", "c!", "d!"]</div><div class='del'>- *     a.map.with_index {|x, i| x * i}   #=&gt; ["", "b", "cc", "ddd"]</div><div class='del'>- *     a                                 #=&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *  Array#collect is an alias for Array#map.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3015,23 +3839,22 @@ rb_ary_collect(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.collect! {|item| block }   -&gt; ary</div><div class='del'>- *     ary.map!     {|item| block }   -&gt; ary</div><div class='del'>- *     ary.collect!                   -&gt; Enumerator</div><div class='del'>- *     ary.map!                       -&gt; Enumerator</div><div class='add'>+ *    array.map! {|element| ... } -&gt; self</div><div class='add'>+ *    array.map! -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block, if given, with each element;</div><div class='add'>+ *  replaces the element with the block's return value:</div><div class='ctx'>  *</div><div class='del'>- *  Invokes the given block once for each element of +self+, replacing the</div><div class='del'>- *  element with the value returned by the block.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.map! { |element| element.class } # =&gt; [Symbol, String, Integer]</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#collect.</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = a.map!</div><div class='add'>+ *    a1 # =&gt; #&lt;Enumerator: [:foo, "bar", 2]:map!&gt;</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c", "d" ]</div><div class='del'>- *     a.map! {|x| x + "!" }</div><div class='del'>- *     a #=&gt;  [ "a!", "b!", "c!", "d!" ]</div><div class='del'>- *     a.collect!.with_index {|x, i| x[0...i] }</div><div class='del'>- *     a #=&gt;  ["", "b", "c!", "d!"]</div><div class='add'>+ *  Array#collect! is an alias for Array#map!.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3042,7 +3865,7 @@ rb_ary_collect_bang(VALUE ary)</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='ctx'>     rb_ary_modify(ary);</div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	rb_ary_store(ary, i, rb_yield(RARRAY_AREF(ary, i)));</div><div class='add'>+        rb_ary_store(ary, i, rb_yield(RARRAY_AREF(ary, i)));</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -3054,21 +3877,21 @@ rb_get_values_at(VALUE obj, long olen, int argc, const VALUE *argv, VALUE (*func</div><div class='ctx'>     long beg, len, i, j;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;argc; i++) {</div><div class='del'>-	if (FIXNUM_P(argv[i])) {</div><div class='del'>-	    rb_ary_push(result, (*func)(obj, FIX2LONG(argv[i])));</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	/* check if idx is Range */</div><div class='del'>-	if (rb_range_beg_len(argv[i], &amp;beg, &amp;len, olen, 1)) {</div><div class='del'>-	    long end = olen &lt; beg+len ? olen : beg+len;</div><div class='del'>-	    for (j = beg; j &lt; end; j++) {</div><div class='del'>-		rb_ary_push(result, (*func)(obj, j));</div><div class='del'>-	    }</div><div class='del'>-	    if (beg + len &gt; j)</div><div class='del'>-		rb_ary_resize(result, RARRAY_LEN(result) + (beg + len) - j);</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	rb_ary_push(result, (*func)(obj, NUM2LONG(argv[i])));</div><div class='add'>+        if (FIXNUM_P(argv[i])) {</div><div class='add'>+            rb_ary_push(result, (*func)(obj, FIX2LONG(argv[i])));</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        /* check if idx is Range */</div><div class='add'>+        if (rb_range_beg_len(argv[i], &amp;beg, &amp;len, olen, 1)) {</div><div class='add'>+            long end = olen &lt; beg+len ? olen : beg+len;</div><div class='add'>+            for (j = beg; j &lt; end; j++) {</div><div class='add'>+                rb_ary_push(result, (*func)(obj, j));</div><div class='add'>+            }</div><div class='add'>+            if (beg + len &gt; j)</div><div class='add'>+                rb_ary_resize(result, RARRAY_LEN(result) + (beg + len) - j);</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        rb_ary_push(result, (*func)(obj, NUM2LONG(argv[i])));</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='hunk'>@@ -3078,45 +3901,70 @@ append_values_at_single(VALUE result, VALUE ary, long olen, VALUE idx)</div><div class='ctx'> {</div><div class='ctx'>     long beg, len;</div><div class='ctx'>     if (FIXNUM_P(idx)) {</div><div class='del'>-	beg = FIX2LONG(idx);</div><div class='add'>+        beg = FIX2LONG(idx);</div><div class='ctx'>     }</div><div class='ctx'>     /* check if idx is Range */</div><div class='ctx'>     else if (rb_range_beg_len(idx, &amp;beg, &amp;len, olen, 1)) {</div><div class='del'>-	if (len &gt; 0) {</div><div class='add'>+        if (len &gt; 0) {</div><div class='ctx'>             const VALUE *const src = RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='del'>-	    const long end = beg + len;</div><div class='del'>-	    const long prevlen = RARRAY_LEN(result);</div><div class='del'>-	    if (beg &lt; olen) {</div><div class='del'>-		rb_ary_cat(result, src + beg, end &gt; olen ? olen-beg : len);</div><div class='del'>-	    }</div><div class='del'>-	    if (end &gt; olen) {</div><div class='del'>-		rb_ary_store(result, prevlen + len - 1, Qnil);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	return result;</div><div class='add'>+            const long end = beg + len;</div><div class='add'>+            const long prevlen = RARRAY_LEN(result);</div><div class='add'>+            if (beg &lt; olen) {</div><div class='add'>+                rb_ary_cat(result, src + beg, end &gt; olen ? olen-beg : len);</div><div class='add'>+            }</div><div class='add'>+            if (end &gt; olen) {</div><div class='add'>+                rb_ary_store(result, prevlen + len - 1, Qnil);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        return result;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	beg = NUM2LONG(idx);</div><div class='add'>+        beg = NUM2LONG(idx);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_ary_push(result, rb_ary_entry(ary, beg));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.values_at(selector, ...)  -&gt; new_ary</div><div class='add'>+ *    array.values_at(*indexes) -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Array whose elements are the elements</div><div class='add'>+ *  of +self+ at the given \Integer or \Range +indexes+.</div><div class='add'>+ *</div><div class='add'>+ *  For each positive +index+, returns the element at offset +index+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.values_at(0, 2) # =&gt; [:foo, 2]</div><div class='add'>+ *    a.values_at(0..1) # =&gt; [:foo, "bar"]</div><div class='add'>+ *</div><div class='add'>+ *  The given +indexes+ may be in any order, and may repeat:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.values_at(2, 0, 1, 0, 2) # =&gt; [2, :foo, "bar", :foo, 2]</div><div class='add'>+ *    a.values_at(1, 0..2) # =&gt; ["bar", :foo, "bar", 2]</div><div class='add'>+ *</div><div class='add'>+ *  Assigns +nil+ for an +index+ that is too large:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.values_at(0, 3, 1, 3) # =&gt; [:foo, nil, "bar", nil]</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new empty \Array if no arguments given.</div><div class='add'>+ *</div><div class='add'>+ *  For each negative +index+, counts backward from the end of the array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.values_at(-1, -3) # =&gt; [2, :foo]</div><div class='add'>+ *</div><div class='add'>+ *  Assigns +nil+ for an +index+ that is too small:</div><div class='ctx'>  *</div><div class='del'>- *  Returns an array containing the elements in +self+ corresponding to the</div><div class='del'>- *  given +selector+(s).</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.values_at(0, -5, 1, -6, 2) # =&gt; [:foo, nil, "bar", nil, 2]</div><div class='ctx'>  *</div><div class='del'>- *  The selectors may be either integer indices or ranges.</div><div class='add'>+ *  The given +indexes+ may have a mixture of signs:</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#select.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.values_at(0, -2, 1, -1) # =&gt; [:foo, "bar", "bar", 2]</div><div class='ctx'>  *</div><div class='del'>- *     a = %w{ a b c d e f }</div><div class='del'>- *     a.values_at(1, 3, 5)          # =&gt; ["b", "d", "f"]</div><div class='del'>- *     a.values_at(1, 3, 5, 7)       # =&gt; ["b", "d", "f", nil]</div><div class='del'>- *     a.values_at(-1, -2, -2, -7)   # =&gt; ["f", "e", "e", nil]</div><div class='del'>- *     a.values_at(4..6, 3...6)      # =&gt; ["e", "f", nil, "d", "e", "f"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3125,7 +3973,7 @@ rb_ary_values_at(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     long i, olen = RARRAY_LEN(ary);</div><div class='ctx'>     VALUE result = rb_ary_new_capa(argc);</div><div class='ctx'>     for (i = 0; i &lt; argc; ++i) {</div><div class='del'>-	append_values_at_single(result, ary, olen, argv[i]);</div><div class='add'>+        append_values_at_single(result, ary, olen, argv[i]);</div><div class='ctx'>     }</div><div class='ctx'>     RB_GC_GUARD(ary);</div><div class='ctx'>     return result;</div><div class='hunk'>@@ -3134,22 +3982,21 @@ rb_ary_values_at(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.select {|item| block}   -&gt; new_ary</div><div class='del'>- *     ary.select                  -&gt; Enumerator</div><div class='del'>- *     ary.filter {|item| block}   -&gt; new_ary</div><div class='del'>- *     ary.filter                  -&gt; Enumerator</div><div class='add'>+ *    array.select {|element| ... } -&gt; new_array</div><div class='add'>+ *    array.select -&gt; new_enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Returns a new array containing all elements of +ary+</div><div class='del'>- *  for which the given +block+ returns a true value.</div><div class='add'>+ *  Calls the block, if given, with each element of +self+;</div><div class='add'>+ *  returns a new \Array containing those elements of +self+</div><div class='add'>+ *  for which the block returns a truthy value:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *    a = [:foo, 'bar', 2, :bam]</div><div class='add'>+ *    a1 = a.select {|element| element.to_s.start_with?('b') }</div><div class='add'>+ *    a1 # =&gt; ["bar", :bam]</div><div class='ctx'>  *</div><div class='del'>- *     [1,2,3,4,5].select {|num| num.even? }     #=&gt; [2, 4]</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='ctx'>  *</div><div class='del'>- *     a = %w[ a b c d e f ]</div><div class='del'>- *     a.select {|v| v =~ /[aeiou]/ }    #=&gt; ["a", "e"]</div><div class='del'>- *</div><div class='del'>- *  See also Enumerable#select.</div><div class='add'>+ *    a = [:foo, 'bar', 2, :bam]</div><div class='add'>+ *    a.select # =&gt; #&lt;Enumerator: [:foo, "bar", 2, :bam]:select&gt;</div><div class='ctx'>  *</div><div class='ctx'>  *  Array#filter is an alias for Array#select.</div><div class='ctx'>  */</div><div class='hunk'>@@ -3163,9 +4010,9 @@ rb_ary_select(VALUE ary)</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='ctx'>     result = rb_ary_new2(RARRAY_LEN(ary));</div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {</div><div class='del'>-	    rb_ary_push(result, rb_ary_elt(ary, i));</div><div class='del'>-	}</div><div class='add'>+        if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {</div><div class='add'>+            rb_ary_push(result, rb_ary_elt(ary, i));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='hunk'>@@ -3183,12 +4030,12 @@ select_bang_i(VALUE a)</div><div class='ctx'>     long i1, i2;</div><div class='ctx'> </div><div class='ctx'>     for (i1 = i2 = 0; i1 &lt; RARRAY_LEN(ary); arg-&gt;len[0] = ++i1) {</div><div class='del'>-	VALUE v = RARRAY_AREF(ary, i1);</div><div class='del'>-	if (!RTEST(rb_yield(v))) continue;</div><div class='del'>-	if (i1 != i2) {</div><div class='del'>-	    rb_ary_store(ary, i2, v);</div><div class='del'>-	}</div><div class='del'>-	arg-&gt;len[1] = ++i2;</div><div class='add'>+        VALUE v = RARRAY_AREF(ary, i1);</div><div class='add'>+        if (!RTEST(rb_yield(v))) continue;</div><div class='add'>+        if (i1 != i2) {</div><div class='add'>+            rb_ary_store(ary, i2, v);</div><div class='add'>+        }</div><div class='add'>+        arg-&gt;len[1] = ++i2;</div><div class='ctx'>     }</div><div class='ctx'>     return (i1 == i2) ? Qnil : ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -3202,35 +4049,38 @@ select_bang_ensure(VALUE a)</div><div class='ctx'>     long i1 = arg-&gt;len[0], i2 = arg-&gt;len[1];</div><div class='ctx'> </div><div class='ctx'>     if (i2 &lt; len &amp;&amp; i2 &lt; i1) {</div><div class='del'>-	long tail = 0;</div><div class='del'>-	if (i1 &lt; len) {</div><div class='del'>-	    tail = len - i1;</div><div class='add'>+        long tail = 0;</div><div class='add'>+        rb_ary_modify(ary);</div><div class='add'>+        if (i1 &lt; len) {</div><div class='add'>+            tail = len - i1;</div><div class='ctx'>             RARRAY_PTR_USE_TRANSIENT(ary, ptr, {</div><div class='del'>-		    MEMMOVE(ptr + i2, ptr + i1, VALUE, tail);</div><div class='del'>-		});</div><div class='del'>-	}</div><div class='del'>-	ARY_SET_LEN(ary, i2 + tail);</div><div class='add'>+                    MEMMOVE(ptr + i2, ptr + i1, VALUE, tail);</div><div class='add'>+                });</div><div class='add'>+        }</div><div class='add'>+        ARY_SET_LEN(ary, i2 + tail);</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.select! {|item| block } -&gt; ary or nil</div><div class='del'>- *     ary.select!                 -&gt; Enumerator</div><div class='del'>- *     ary.filter! {|item| block } -&gt; ary or nil</div><div class='del'>- *     ary.filter!                 -&gt; Enumerator</div><div class='add'>+ *    array.select! {|element| ... } -&gt; self or nil</div><div class='add'>+ *    array.select! -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block, if given  with each element of +self+;</div><div class='add'>+ *  removes from +self+ those elements for which the block returns +false+ or +nil+.</div><div class='ctx'>  *</div><div class='del'>- *  Invokes the given block passing in successive elements from +self+,</div><div class='del'>- *  deleting elements for which the block returns a +false+ value.</div><div class='add'>+ *  Returns +self+ if any elements were removed:</div><div class='ctx'>  *</div><div class='del'>- *  The array may not be changed instantly every time the block is called.</div><div class='add'>+ *    a = [:foo, 'bar', 2, :bam]</div><div class='add'>+ *    a.select! {|element| element.to_s.start_with?('b') } # =&gt; ["bar", :bam]</div><div class='ctx'>  *</div><div class='del'>- *  If changes were made, it will return +self+, otherwise it returns +nil+.</div><div class='add'>+ *  Returns +nil+ if no elements were removed.</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#keep_if.</div><div class='add'>+ *    a = [:foo, 'bar', 2, :bam]</div><div class='add'>+ *    a.select! # =&gt; #&lt;Enumerator: [:foo, "bar", 2, :bam]:select!&gt;</div><div class='ctx'>  *</div><div class='ctx'>  *  Array#filter! is an alias for Array#select!.</div><div class='ctx'>  */</div><div class='hunk'>@@ -3250,19 +4100,20 @@ rb_ary_select_bang(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.keep_if {|item| block}   -&gt; ary</div><div class='del'>- *     ary.keep_if                  -&gt; Enumerator</div><div class='add'>+ *    array.keep_if {|element| ... } -&gt; self</div><div class='add'>+ *    array.keep_if -&gt; new_enumeration</div><div class='ctx'>  *</div><div class='del'>- *  Deletes every element of +self+ for which the given block evaluates to</div><div class='del'>- *  +false+, and returns +self+.</div><div class='add'>+ *  Retains those elements for which the block returns a truthy value;</div><div class='add'>+ *  deletes all other elements; returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *    a = [:foo, 'bar', 2, :bam]</div><div class='add'>+ *    a.keep_if {|element| element.to_s.start_with?('b') } # =&gt; ["bar", :bam]</div><div class='ctx'>  *</div><div class='del'>- *     a = %w[ a b c d e f ]</div><div class='del'>- *     a.keep_if {|v| v =~ /[aeiou]/ }    #=&gt; ["a", "e"]</div><div class='del'>- *     a                                  #=&gt; ["a", "e"]</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2, :bam]</div><div class='add'>+ *    a.keep_if # =&gt; #&lt;Enumerator: [:foo, "bar", 2, :bam]:keep_if&gt;</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#select!.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3278,32 +4129,48 @@ ary_resize_smaller(VALUE ary, long len)</div><div class='ctx'> {</div><div class='ctx'>     rb_ary_modify(ary);</div><div class='ctx'>     if (RARRAY_LEN(ary) &gt; len) {</div><div class='del'>-	ARY_SET_LEN(ary, len);</div><div class='del'>-	if (len * 2 &lt; ARY_CAPA(ary) &amp;&amp;</div><div class='del'>-	    ARY_CAPA(ary) &gt; ARY_DEFAULT_SIZE) {</div><div class='del'>-	    ary_resize_capa(ary, len * 2);</div><div class='del'>-	}</div><div class='add'>+        ARY_SET_LEN(ary, len);</div><div class='add'>+        if (len * 2 &lt; ARY_CAPA(ary) &amp;&amp;</div><div class='add'>+            ARY_CAPA(ary) &gt; ARY_DEFAULT_SIZE) {</div><div class='add'>+            ary_resize_capa(ary, len * 2);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.delete(obj)            -&gt; item or nil</div><div class='del'>- *     ary.delete(obj) {block}    -&gt; item or result of block</div><div class='add'>+ *    array.delete(obj) -&gt; deleted_object</div><div class='add'>+ *    array.delete(obj) {|nosuch| ... } -&gt; deleted_object or block_return</div><div class='add'>+ *</div><div class='add'>+ *  Removes zero or more elements from +self+.</div><div class='add'>+ *</div><div class='add'>+ *  When no block is given,</div><div class='add'>+ *  removes from +self+ each element +ele+ such that &lt;tt&gt;ele == obj&lt;/tt&gt;;</div><div class='add'>+ *  returns the last deleted element:</div><div class='add'>+ *</div><div class='add'>+ *    s1 = 'bar'; s2 = 'bar'</div><div class='add'>+ *    a = [:foo, s1, 2, s2]</div><div class='add'>+ *    a.delete('bar') # =&gt; "bar"</div><div class='add'>+ *    a # =&gt; [:foo, 2]</div><div class='ctx'>  *</div><div class='del'>- *  Deletes all items from +self+ that are equal to +obj+.</div><div class='add'>+ *  Returns +nil+ if no elements removed.</div><div class='ctx'>  *</div><div class='del'>- *  Returns the last deleted item, or +nil+ if no matching item is found.</div><div class='add'>+ *  When a block is given,</div><div class='add'>+ *  removes from +self+ each element +ele+ such that &lt;tt&gt;ele == obj&lt;/tt&gt;.</div><div class='ctx'>  *</div><div class='del'>- *  If the optional code block is given, the result of the block is returned if</div><div class='del'>- *  the item is not found.  (To remove +nil+ elements and get an informative</div><div class='del'>- *  return value, use Array#compact!)</div><div class='add'>+ *  If any such elements are found, ignores the block</div><div class='add'>+ *  and returns the last deleted element:</div><div class='add'>+ *</div><div class='add'>+ *    s1 = 'bar'; s2 = 'bar'</div><div class='add'>+ *    a = [:foo, s1, 2, s2]</div><div class='add'>+ *    deleted_obj = a.delete('bar') {|obj| fail 'Cannot happen' }</div><div class='add'>+ *    a # =&gt; [:foo, 2]</div><div class='add'>+ *</div><div class='add'>+ *  If no such elements are found, returns the block's return value:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.delete(:nosuch) {|obj| "#{obj} not found" } # =&gt; "nosuch not found"</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "b", "b", "c" ]</div><div class='del'>- *     a.delete("b")                   #=&gt; "b"</div><div class='del'>- *     a                               #=&gt; ["a", "c"]</div><div class='del'>- *     a.delete("z")                   #=&gt; nil</div><div class='del'>- *     a.delete("z") {"not found"}     #=&gt; "not found"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -3313,22 +4180,22 @@ rb_ary_delete(VALUE ary, VALUE item)</div><div class='ctx'>     long i1, i2;</div><div class='ctx'> </div><div class='ctx'>     for (i1 = i2 = 0; i1 &lt; RARRAY_LEN(ary); i1++) {</div><div class='del'>-	VALUE e = RARRAY_AREF(ary, i1);</div><div class='add'>+        VALUE e = RARRAY_AREF(ary, i1);</div><div class='ctx'> </div><div class='del'>-	if (rb_equal(e, item)) {</div><div class='del'>-	    v = e;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	if (i1 != i2) {</div><div class='del'>-	    rb_ary_store(ary, i2, e);</div><div class='del'>-	}</div><div class='del'>-	i2++;</div><div class='add'>+        if (rb_equal(e, item)) {</div><div class='add'>+            v = e;</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        if (i1 != i2) {</div><div class='add'>+            rb_ary_store(ary, i2, e);</div><div class='add'>+        }</div><div class='add'>+        i2++;</div><div class='ctx'>     }</div><div class='ctx'>     if (RARRAY_LEN(ary) == i2) {</div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    return rb_yield(item);</div><div class='del'>-	}</div><div class='del'>-	return Qnil;</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            return rb_yield(item);</div><div class='add'>+        }</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ary_resize_smaller(ary, i2);</div><div class='hunk'>@@ -3343,18 +4210,18 @@ rb_ary_delete_same(VALUE ary, VALUE item)</div><div class='ctx'>     long i1, i2;</div><div class='ctx'> </div><div class='ctx'>     for (i1 = i2 = 0; i1 &lt; RARRAY_LEN(ary); i1++) {</div><div class='del'>-	VALUE e = RARRAY_AREF(ary, i1);</div><div class='add'>+        VALUE e = RARRAY_AREF(ary, i1);</div><div class='ctx'> </div><div class='del'>-	if (e == item) {</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	if (i1 != i2) {</div><div class='del'>-	    rb_ary_store(ary, i2, e);</div><div class='del'>-	}</div><div class='del'>-	i2++;</div><div class='add'>+        if (e == item) {</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        if (i1 != i2) {</div><div class='add'>+            rb_ary_store(ary, i2, e);</div><div class='add'>+        }</div><div class='add'>+        i2++;</div><div class='ctx'>     }</div><div class='ctx'>     if (RARRAY_LEN(ary) == i2) {</div><div class='del'>-	return;</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ary_resize_smaller(ary, i2);</div><div class='hunk'>@@ -3368,8 +4235,8 @@ rb_ary_delete_at(VALUE ary, long pos)</div><div class='ctx'> </div><div class='ctx'>     if (pos &gt;= len) return Qnil;</div><div class='ctx'>     if (pos &lt; 0) {</div><div class='del'>-	pos += len;</div><div class='del'>-	if (pos &lt; 0) return Qnil;</div><div class='add'>+        pos += len;</div><div class='add'>+        if (pos &lt; 0) return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify(ary);</div><div class='hunk'>@@ -3384,17 +4251,25 @@ rb_ary_delete_at(VALUE ary, long pos)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.delete_at(index)  -&gt; obj or nil</div><div class='add'>+ *    array.delete_at(index) -&gt; deleted_object or nil</div><div class='ctx'>  *</div><div class='del'>- *  Deletes the element at the specified +index+, returning that element, or</div><div class='del'>- *  +nil+ if the +index+ is out of range.</div><div class='add'>+ *  Deletes an element from +self+, per the given \Integer +index+.</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#slice!</div><div class='add'>+ *  When +index+ is non-negative, deletes the element at offset +index+:</div><div class='ctx'>  *</div><div class='del'>- *     a = ["ant", "bat", "cat", "dog"]</div><div class='del'>- *     a.delete_at(2)    #=&gt; "cat"</div><div class='del'>- *     a                 #=&gt; ["ant", "bat", "dog"]</div><div class='del'>- *     a.delete_at(99)   #=&gt; nil</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.delete_at(1) # =&gt; "bar"</div><div class='add'>+ *    a # =&gt; [:foo, 2]</div><div class='add'>+ *</div><div class='add'>+ *  If index is too large, returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  When +index+ is negative, counts backward from the end of the array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.delete_at(-2) # =&gt; "bar"</div><div class='add'>+ *    a # =&gt; [:foo, 2]</div><div class='add'>+ *</div><div class='add'>+ *  If +index+ is too small (far from zero), returns nil.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3403,70 +4278,133 @@ rb_ary_delete_at_m(VALUE ary, VALUE pos)</div><div class='ctx'>     return rb_ary_delete_at(ary, NUM2LONG(pos));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+ary_slice_bang_by_rb_ary_splice(VALUE ary, long pos, long len)</div><div class='add'>+{</div><div class='add'>+    const long orig_len = RARRAY_LEN(ary);</div><div class='add'>+</div><div class='add'>+    if (len &lt; 0) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+    else if (pos &lt; -orig_len) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+    else if (pos &lt; 0) {</div><div class='add'>+        pos += orig_len;</div><div class='add'>+    }</div><div class='add'>+    else if (orig_len &lt; pos) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+    if (orig_len &lt; pos + len) {</div><div class='add'>+        len = orig_len - pos;</div><div class='add'>+    }</div><div class='add'>+    if (len == 0) {</div><div class='add'>+        return rb_ary_new2(0);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        VALUE arg2 = rb_ary_new4(len, RARRAY_CONST_PTR_TRANSIENT(ary)+pos);</div><div class='add'>+        rb_ary_splice(ary, pos, len, 0, 0);</div><div class='add'>+        return arg2;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.slice!(index)         -&gt; obj or nil</div><div class='del'>- *     ary.slice!(start, length) -&gt; new_ary or nil</div><div class='del'>- *     ary.slice!(range)         -&gt; new_ary or nil</div><div class='del'>- *</div><div class='del'>- *  Deletes the element(s) given by an +index+ (optionally up to +length+</div><div class='del'>- *  elements) or by a +range+.</div><div class='del'>- *</div><div class='del'>- *  Returns the deleted object (or objects), or +nil+ if the +index+ is out of</div><div class='del'>- *  range.</div><div class='del'>- *</div><div class='del'>- *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.slice!(1)     #=&gt; "b"</div><div class='del'>- *     a               #=&gt; ["a", "c"]</div><div class='del'>- *     a.slice!(-1)    #=&gt; "c"</div><div class='del'>- *     a               #=&gt; ["a"]</div><div class='del'>- *     a.slice!(100)   #=&gt; nil</div><div class='del'>- *     a               #=&gt; ["a"]</div><div class='add'>+ *    array.slice!(n) -&gt; object or nil</div><div class='add'>+ *    array.slice!(start, length) -&gt; new_array or nil</div><div class='add'>+ *    array.slice!(range) -&gt; new_array or nil</div><div class='add'>+ *</div><div class='add'>+ *  Removes and returns elements from +self+.</div><div class='add'>+ *</div><div class='add'>+ *  When the only argument is an \Integer +n+,</div><div class='add'>+ *  removes and returns the _nth_ element in +self+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.slice!(1) # =&gt; "bar"</div><div class='add'>+ *    a # =&gt; [:foo, 2]</div><div class='add'>+ *</div><div class='add'>+ *  If +n+ is negative, counts backwards from the end of +self+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.slice!(-1) # =&gt; 2</div><div class='add'>+ *    a # =&gt; [:foo, "bar"]</div><div class='add'>+ *</div><div class='add'>+ *  If +n+ is out of range, returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  When the only arguments are Integers +start+ and +length+,</div><div class='add'>+ *  removes +length+ elements from +self+ beginning at offset  +start+;</div><div class='add'>+ *  returns the deleted objects in a new \Array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.slice!(0, 2) # =&gt; [:foo, "bar"]</div><div class='add'>+ *    a # =&gt; [2]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;start + length&lt;/tt&gt; exceeds the array size,</div><div class='add'>+ *  removes and returns all elements from offset +start+ to the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.slice!(1, 50) # =&gt; ["bar", 2]</div><div class='add'>+ *    a # =&gt; [:foo]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;start == a.size&lt;/tt&gt; and +length+ is non-negative,</div><div class='add'>+ *  returns a new empty \Array.</div><div class='add'>+ *</div><div class='add'>+ *  If +length+ is negative, returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  When the only argument is a \Range object +range+,</div><div class='add'>+ *  treats &lt;tt&gt;range.min&lt;/tt&gt; as +start+ above and &lt;tt&gt;range.size&lt;/tt&gt; as +length+ above:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.slice!(1..2) # =&gt; ["bar", 2]</div><div class='add'>+ *    a # =&gt; [:foo]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.start == a.size&lt;/tt&gt;, returns a new empty \Array.</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.start&lt;/tt&gt; is larger than the array size, returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.end&lt;/tt&gt; is negative, counts backwards from the end of the array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.slice!(0..-2) # =&gt; [:foo, "bar"]</div><div class='add'>+ *    a # =&gt; [2]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.start&lt;/tt&gt; is negative,</div><div class='add'>+ *  calculates the start index backwards from the end of the array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.slice!(-2..2) # =&gt; ["bar", 2]</div><div class='add'>+ *    a # =&gt; [:foo]</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_slice_bang(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE arg1, arg2;</div><div class='del'>-    long pos, len, orig_len;</div><div class='add'>+    VALUE arg1;</div><div class='add'>+    long pos, len;</div><div class='ctx'> </div><div class='ctx'>     rb_ary_modify_check(ary);</div><div class='del'>-    if (argc == 2) {</div><div class='del'>-	pos = NUM2LONG(argv[0]);</div><div class='del'>-	len = NUM2LONG(argv[1]);</div><div class='del'>-      delete_pos_len:</div><div class='del'>-	if (len &lt; 0) return Qnil;</div><div class='del'>-	orig_len = RARRAY_LEN(ary);</div><div class='del'>-	if (pos &lt; 0) {</div><div class='del'>-	    pos += orig_len;</div><div class='del'>-	    if (pos &lt; 0) return Qnil;</div><div class='del'>-	}</div><div class='del'>-	else if (orig_len &lt; pos) return Qnil;</div><div class='del'>-	if (orig_len &lt; pos + len) {</div><div class='del'>-	    len = orig_len - pos;</div><div class='del'>-	}</div><div class='del'>-	if (len == 0) return rb_ary_new2(0);</div><div class='del'>-        arg2 = rb_ary_new4(len, RARRAY_CONST_PTR_TRANSIENT(ary)+pos);</div><div class='del'>-	RBASIC_SET_CLASS(arg2, rb_obj_class(ary));</div><div class='del'>-	rb_ary_splice(ary, pos, len, 0, 0);</div><div class='del'>-	return arg2;</div><div class='del'>-    }</div><div class='del'>-</div><div class='ctx'>     rb_check_arity(argc, 1, 2);</div><div class='ctx'>     arg1 = argv[0];</div><div class='ctx'> </div><div class='add'>+    if (argc == 2) {</div><div class='add'>+        pos = NUM2LONG(argv[0]);</div><div class='add'>+        len = NUM2LONG(argv[1]);</div><div class='add'>+        return ary_slice_bang_by_rb_ary_splice(ary, pos, len);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     if (!FIXNUM_P(arg1)) {</div><div class='del'>-	switch (rb_range_beg_len(arg1, &amp;pos, &amp;len, RARRAY_LEN(ary), 0)) {</div><div class='del'>-	  case Qtrue:</div><div class='del'>-	    /* valid range */</div><div class='del'>-	    goto delete_pos_len;</div><div class='del'>-	  case Qnil:</div><div class='del'>-	    /* invalid range */</div><div class='del'>-	    return Qnil;</div><div class='del'>-	  default:</div><div class='del'>-	    /* not a range */</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        switch (rb_range_beg_len(arg1, &amp;pos, &amp;len, RARRAY_LEN(ary), 0)) {</div><div class='add'>+          case Qtrue:</div><div class='add'>+            /* valid range */</div><div class='add'>+            return ary_slice_bang_by_rb_ary_splice(ary, pos, len);</div><div class='add'>+          case Qnil:</div><div class='add'>+            /* invalid range */</div><div class='add'>+            return Qnil;</div><div class='add'>+          default:</div><div class='add'>+            /* not a range */</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return rb_ary_delete_at(ary, NUM2LONG(arg1));</div><div class='hunk'>@@ -3478,11 +4416,11 @@ ary_reject(VALUE orig, VALUE result)</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(orig); i++) {</div><div class='del'>-	VALUE v = RARRAY_AREF(orig, i);</div><div class='add'>+        VALUE v = RARRAY_AREF(orig, i);</div><div class='ctx'> </div><div class='ctx'>         if (!RTEST(rb_yield(v))) {</div><div class='del'>-	    rb_ary_push(result, v);</div><div class='del'>-	}</div><div class='add'>+            rb_ary_push(result, v);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='hunk'>@@ -3495,12 +4433,12 @@ reject_bang_i(VALUE a)</div><div class='ctx'>     long i1, i2;</div><div class='ctx'> </div><div class='ctx'>     for (i1 = i2 = 0; i1 &lt; RARRAY_LEN(ary); arg-&gt;len[0] = ++i1) {</div><div class='del'>-	VALUE v = RARRAY_AREF(ary, i1);</div><div class='del'>-	if (RTEST(rb_yield(v))) continue;</div><div class='del'>-	if (i1 != i2) {</div><div class='del'>-	    rb_ary_store(ary, i2, v);</div><div class='del'>-	}</div><div class='del'>-	arg-&gt;len[1] = ++i2;</div><div class='add'>+        VALUE v = RARRAY_AREF(ary, i1);</div><div class='add'>+        if (RTEST(rb_yield(v))) continue;</div><div class='add'>+        if (i1 != i2) {</div><div class='add'>+            rb_ary_store(ary, i2, v);</div><div class='add'>+        }</div><div class='add'>+        arg-&gt;len[1] = ++i2;</div><div class='ctx'>     }</div><div class='ctx'>     return (i1 == i2) ? Qnil : ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -3517,37 +4455,50 @@ ary_reject_bang(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.reject! {|item| block}    -&gt; ary or nil</div><div class='del'>- *     ary.reject!                   -&gt; Enumerator</div><div class='add'>+ *    array.reject! {|element| ... } -&gt; self or nil</div><div class='add'>+ *    array.reject! -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Removes each element for which the block returns a truthy value.</div><div class='ctx'>  *</div><div class='del'>- *  Deletes every element of +self+ for which the block evaluates to +true+,</div><div class='del'>- *  if no changes were made returns +nil+.</div><div class='add'>+ *  Returns +self+ if any elements removed:</div><div class='ctx'>  *</div><div class='del'>- *  The array may not be changed instantly every time the block is called.</div><div class='add'>+ *    a = [:foo, 'bar', 2, 'bat']</div><div class='add'>+ *    a.reject! {|element| element.to_s.start_with?('b') } # =&gt; [:foo, 2]</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#reject and Array#delete_if.</div><div class='add'>+ *  Returns +nil+ if no elements removed.</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.reject! # =&gt; #&lt;Enumerator: [:foo, "bar", 2]:reject!&gt;</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_reject_bang(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);</div><div class='add'>+    rb_ary_modify(ary);</div><div class='ctx'>     return ary_reject_bang(ary);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.reject  {|item| block }  -&gt; new_ary</div><div class='del'>- *     ary.reject                   -&gt; Enumerator</div><div class='add'>+ *    array.reject {|element| ... } -&gt; new_array</div><div class='add'>+ *    array.reject -&gt; new_enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Returns a new array containing the items in +self+ for which the given</div><div class='del'>- *  block is not +true+. The ordering of non-rejected elements is maintained.</div><div class='add'>+ *  Returns a new \Array whose elements are all those from +self+</div><div class='add'>+ *  for which the block returns +false+ or +nil+:</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#delete_if</div><div class='add'>+ *    a = [:foo, 'bar', 2, 'bat']</div><div class='add'>+ *    a1 = a.reject {|element| element.to_s.start_with?('b') }</div><div class='add'>+ *    a1 # =&gt; [:foo, 2]</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *</div><div class='add'>+ *     a = [:foo, 'bar', 2]</div><div class='add'>+ *     a.reject # =&gt; #&lt;Enumerator: [:foo, "bar", 2]:reject&gt;</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3563,21 +4514,21 @@ rb_ary_reject(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.delete_if {|item| block}    -&gt; ary</div><div class='del'>- *     ary.delete_if                   -&gt; Enumerator</div><div class='add'>+ *    array.delete_if {|element| ... } -&gt; self</div><div class='add'>+ *    array.delete_if -&gt; Enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Deletes every element of +self+ for which block evaluates to +true+.</div><div class='add'>+ *  Removes each element in +self+ for which the block returns a truthy value;</div><div class='add'>+ *  returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *  The array is changed instantly every time the block is called, not after</div><div class='del'>- *  the iteration is over.</div><div class='add'>+ *    a = [:foo, 'bar', 2, 'bat']</div><div class='add'>+ *    a.delete_if {|element| element.to_s.start_with?('b') } # =&gt; [:foo, 2]</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#reject!</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.delete_if # =&gt; #&lt;Enumerator: [:foo, "bar", 2]:delete_if&gt;</div><div class='ctx'>  *</div><div class='del'>- *     scores = [ 97, 42, 75 ]</div><div class='del'>- *     scores.delete_if {|score| score &lt; 80 }   #=&gt; [97]</div><div class='del'>- */</div><div class='add'>+3 */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_delete_if(VALUE ary)</div><div class='hunk'>@@ -3592,10 +4543,9 @@ static VALUE</div><div class='ctx'> take_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, cbarg))</div><div class='ctx'> {</div><div class='ctx'>     VALUE *args = (VALUE *)cbarg;</div><div class='del'>-    if (args[1] == 0) rb_iter_break();</div><div class='del'>-    else args[1]--;</div><div class='ctx'>     if (argc &gt; 1) val = rb_ary_new4(argc, argv);</div><div class='ctx'>     rb_ary_push(args[0], val);</div><div class='add'>+    if (--args[1] == 0) rb_iter_break();</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3605,38 +4555,71 @@ take_items(VALUE obj, long n)</div><div class='ctx'>     VALUE result = rb_check_array_type(obj);</div><div class='ctx'>     VALUE args[2];</div><div class='ctx'> </div><div class='add'>+    if (n == 0) return result;</div><div class='ctx'>     if (!NIL_P(result)) return rb_ary_subseq(result, 0, n);</div><div class='ctx'>     result = rb_ary_new2(n);</div><div class='ctx'>     args[0] = result; args[1] = (VALUE)n;</div><div class='del'>-    if (rb_check_block_call(obj, idEach, 0, 0, take_i, (VALUE)args) == Qundef)</div><div class='del'>-	rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (must respond to :each)",</div><div class='del'>-		 rb_obj_class(obj));</div><div class='add'>+    if (UNDEF_P(rb_check_block_call(obj, idEach, 0, 0, take_i, (VALUE)args)))</div><div class='add'>+        rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (must respond to :each)",</div><div class='add'>+                 rb_obj_class(obj));</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.zip(arg, ...)                  -&gt; new_ary</div><div class='del'>- *     ary.zip(arg, ...) {|arr| block}    -&gt; nil</div><div class='add'>+ *    array.zip(*other_arrays) -&gt; new_array</div><div class='add'>+ *    array.zip(*other_arrays) {|other_array| ... } -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  When no block given, returns a new \Array +new_array+ of size &lt;tt&gt;self.size&lt;/tt&gt;</div><div class='add'>+ *  whose elements are Arrays.</div><div class='add'>+ *</div><div class='add'>+ *  Each nested array &lt;tt&gt;new_array[n]&lt;/tt&gt; is of size &lt;tt&gt;other_arrays.size+1&lt;/tt&gt;,</div><div class='add'>+ *  and contains:</div><div class='add'>+ *</div><div class='add'>+ *  - The _nth_ element of +self+.</div><div class='add'>+ *  - The _nth_ element of each of the +other_arrays+.</div><div class='add'>+ *</div><div class='add'>+ *  If all +other_arrays+ and +self+ are the same size:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:a0, :a1, :a2, :a3]</div><div class='add'>+ *    b = [:b0, :b1, :b2, :b3]</div><div class='add'>+ *    c = [:c0, :c1, :c2, :c3]</div><div class='add'>+ *    d = a.zip(b, c)</div><div class='add'>+ *    d # =&gt; [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, :c2], [:a3, :b3, :c3]]</div><div class='ctx'>  *</div><div class='del'>- *  Converts any arguments to arrays, then merges elements of +self+ with</div><div class='del'>- *  corresponding elements from each argument.</div><div class='add'>+ *  If any array in +other_arrays+ is smaller than +self+,</div><div class='add'>+ *  fills to &lt;tt&gt;self.size&lt;/tt&gt; with +nil+:</div><div class='ctx'>  *</div><div class='del'>- *  This generates a sequence of &lt;code&gt;ary.size&lt;/code&gt; _n_-element arrays,</div><div class='del'>- *  where _n_ is one more than the count of arguments.</div><div class='add'>+ *    a = [:a0, :a1, :a2, :a3]</div><div class='add'>+ *    b = [:b0, :b1, :b2]</div><div class='add'>+ *    c = [:c0, :c1]</div><div class='add'>+ *    d = a.zip(b, c)</div><div class='add'>+ *    d # =&gt; [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, nil], [:a3, nil, nil]]</div><div class='ctx'>  *</div><div class='del'>- *  If the size of any argument is less than the size of the initial array,</div><div class='del'>- *  +nil+ values are supplied.</div><div class='add'>+ *  If any array in +other_arrays+ is larger than +self+,</div><div class='add'>+ *  its trailing elements are ignored:</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given, it is invoked for each output +array+, otherwise an</div><div class='del'>- *  array of arrays is returned.</div><div class='add'>+ *    a = [:a0, :a1, :a2, :a3]</div><div class='add'>+ *    b = [:b0, :b1, :b2, :b3, :b4]</div><div class='add'>+ *    c = [:c0, :c1, :c2, :c3, :c4, :c5]</div><div class='add'>+ *    d = a.zip(b, c)</div><div class='add'>+ *    d # =&gt; [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, :c2], [:a3, :b3, :c3]]</div><div class='add'>+ *</div><div class='add'>+ *  When a block is given, calls the block with each of the sub-arrays (formed as above); returns +nil+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:a0, :a1, :a2, :a3]</div><div class='add'>+ *    b = [:b0, :b1, :b2, :b3]</div><div class='add'>+ *    c = [:c0, :c1, :c2, :c3]</div><div class='add'>+ *    a.zip(b, c) {|sub_array| p sub_array} # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    [:a0, :b0, :c0]</div><div class='add'>+ *    [:a1, :b1, :c1]</div><div class='add'>+ *    [:a2, :b2, :c2]</div><div class='add'>+ *    [:a3, :b3, :c3]</div><div class='ctx'>  *</div><div class='del'>- *     a = [ 4, 5, 6 ]</div><div class='del'>- *     b = [ 7, 8, 9 ]</div><div class='del'>- *     [1, 2, 3].zip(a, b)   #=&gt; [[1, 4, 7], [2, 5, 8], [3, 6, 9]]</div><div class='del'>- *     [1, 2].zip(a, b)      #=&gt; [[1, 4, 7], [2, 5, 8]]</div><div class='del'>- *     a.zip([1, 2], [8])    #=&gt; [[4, 1, 8], [5, 2, nil], [6, nil, nil]]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3647,51 +4630,51 @@ rb_ary_zip(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     VALUE result = Qnil;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;argc; i++) {</div><div class='del'>-	argv[i] = take_items(argv[i], len);</div><div class='add'>+        argv[i] = take_items(argv[i], len);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	int arity = rb_block_arity();</div><div class='del'>-</div><div class='del'>-	if (arity &gt; 1) {</div><div class='del'>-	    VALUE work, *tmp;</div><div class='del'>-</div><div class='del'>-	    tmp = ALLOCV_N(VALUE, work, argc+1);</div><div class='del'>-</div><div class='del'>-	    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-		tmp[0] = RARRAY_AREF(ary, i);</div><div class='del'>-		for (j=0; j&lt;argc; j++) {</div><div class='del'>-		    tmp[j+1] = rb_ary_elt(argv[j], i);</div><div class='del'>-		}</div><div class='del'>-		rb_yield_values2(argc+1, tmp);</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (work) ALLOCV_END(work);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-		VALUE tmp = rb_ary_new2(argc+1);</div><div class='del'>-</div><div class='del'>-		rb_ary_push(tmp, RARRAY_AREF(ary, i));</div><div class='del'>-		for (j=0; j&lt;argc; j++) {</div><div class='del'>-		    rb_ary_push(tmp, rb_ary_elt(argv[j], i));</div><div class='del'>-		}</div><div class='del'>-		rb_yield(tmp);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        int arity = rb_block_arity();</div><div class='add'>+</div><div class='add'>+        if (arity &gt; 1) {</div><div class='add'>+            VALUE work, *tmp;</div><div class='add'>+</div><div class='add'>+            tmp = ALLOCV_N(VALUE, work, argc+1);</div><div class='add'>+</div><div class='add'>+            for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+                tmp[0] = RARRAY_AREF(ary, i);</div><div class='add'>+                for (j=0; j&lt;argc; j++) {</div><div class='add'>+                    tmp[j+1] = rb_ary_elt(argv[j], i);</div><div class='add'>+                }</div><div class='add'>+                rb_yield_values2(argc+1, tmp);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (work) ALLOCV_END(work);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+                VALUE tmp = rb_ary_new2(argc+1);</div><div class='add'>+</div><div class='add'>+                rb_ary_push(tmp, RARRAY_AREF(ary, i));</div><div class='add'>+                for (j=0; j&lt;argc; j++) {</div><div class='add'>+                    rb_ary_push(tmp, rb_ary_elt(argv[j], i));</div><div class='add'>+                }</div><div class='add'>+                rb_yield(tmp);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	result = rb_ary_new_capa(len);</div><div class='add'>+        result = rb_ary_new_capa(len);</div><div class='ctx'> </div><div class='del'>-	for (i=0; i&lt;len; i++) {</div><div class='del'>-	    VALUE tmp = rb_ary_new_capa(argc+1);</div><div class='add'>+        for (i=0; i&lt;len; i++) {</div><div class='add'>+            VALUE tmp = rb_ary_new_capa(argc+1);</div><div class='ctx'> </div><div class='del'>-	    rb_ary_push(tmp, RARRAY_AREF(ary, i));</div><div class='del'>-	    for (j=0; j&lt;argc; j++) {</div><div class='del'>-		rb_ary_push(tmp, rb_ary_elt(argv[j], i));</div><div class='del'>-	    }</div><div class='del'>-	    rb_ary_push(result, tmp);</div><div class='del'>-	}</div><div class='add'>+            rb_ary_push(tmp, RARRAY_AREF(ary, i));</div><div class='add'>+            for (j=0; j&lt;argc; j++) {</div><div class='add'>+                rb_ary_push(tmp, rb_ary_elt(argv[j], i));</div><div class='add'>+            }</div><div class='add'>+            rb_ary_push(result, tmp);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='hunk'>@@ -3699,15 +4682,14 @@ rb_ary_zip(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.transpose -&gt; new_ary</div><div class='add'>+ *    array.transpose -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *  Assumes that +self+ is an array of arrays and transposes the rows and</div><div class='del'>- *  columns.</div><div class='add'>+ *  Transposes the rows and columns in an \Array of Arrays;</div><div class='add'>+ *  the nested Arrays must all be the same size:</div><div class='ctx'>  *</div><div class='del'>- *     a = [[1,2], [3,4], [5,6]]</div><div class='del'>- *     a.transpose   #=&gt; [[1, 3, 5], [2, 4, 6]]</div><div class='add'>+ *    a = [[:a0, :a1], [:b0, :b1], [:c0, :c1]]</div><div class='add'>+ *    a.transpose # =&gt; [[:a0, :b0, :c0], [:a1, :b1, :c1]]</div><div class='ctx'>  *</div><div class='del'>- *  If the length of the subarrays don't match, an IndexError is raised.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3719,36 +4701,34 @@ rb_ary_transpose(VALUE ary)</div><div class='ctx'>     alen = RARRAY_LEN(ary);</div><div class='ctx'>     if (alen == 0) return rb_ary_dup(ary);</div><div class='ctx'>     for (i=0; i&lt;alen; i++) {</div><div class='del'>-	tmp = to_ary(rb_ary_elt(ary, i));</div><div class='del'>-	if (elen &lt; 0) {		/* first element */</div><div class='del'>-	    elen = RARRAY_LEN(tmp);</div><div class='del'>-	    result = rb_ary_new2(elen);</div><div class='del'>-	    for (j=0; j&lt;elen; j++) {</div><div class='del'>-		rb_ary_store(result, j, rb_ary_new2(alen));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else if (elen != RARRAY_LEN(tmp)) {</div><div class='del'>-	    rb_raise(rb_eIndexError, "element size differs (%ld should be %ld)",</div><div class='del'>-		     RARRAY_LEN(tmp), elen);</div><div class='del'>-	}</div><div class='del'>-	for (j=0; j&lt;elen; j++) {</div><div class='del'>-	    rb_ary_store(rb_ary_elt(result, j), i, rb_ary_elt(tmp, j));</div><div class='del'>-	}</div><div class='add'>+        tmp = to_ary(rb_ary_elt(ary, i));</div><div class='add'>+        if (elen &lt; 0) {		/* first element */</div><div class='add'>+            elen = RARRAY_LEN(tmp);</div><div class='add'>+            result = rb_ary_new2(elen);</div><div class='add'>+            for (j=0; j&lt;elen; j++) {</div><div class='add'>+                rb_ary_store(result, j, rb_ary_new2(alen));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else if (elen != RARRAY_LEN(tmp)) {</div><div class='add'>+            rb_raise(rb_eIndexError, "element size differs (%ld should be %ld)",</div><div class='add'>+                     RARRAY_LEN(tmp), elen);</div><div class='add'>+        }</div><div class='add'>+        for (j=0; j&lt;elen; j++) {</div><div class='add'>+            rb_ary_store(rb_ary_elt(result, j), i, rb_ary_elt(tmp, j));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.replace(other_ary)  -&gt; ary</div><div class='del'>- *     ary.initialize_copy(other_ary)	-&gt; ary</div><div class='add'>+ *    array.replace(other_array) -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Replaces the content of +self+ with the content of +other_array+; returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *  Replaces the contents of +self+ with the contents of +other_ary+,</div><div class='del'>- *  truncating or expanding if necessary.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.replace(['foo', :bar, 3]) # =&gt; ["foo", :bar, 3]</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c", "d", "e" ]</div><div class='del'>- *     a.replace([ "x", "y", "z" ])   #=&gt; ["x", "y", "z"]</div><div class='del'>- *     a                              #=&gt; ["x", "y", "z"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -3758,35 +4738,39 @@ rb_ary_replace(VALUE copy, VALUE orig)</div><div class='ctx'>     orig = to_ary(orig);</div><div class='ctx'>     if (copy == orig) return copy;</div><div class='ctx'> </div><div class='del'>-    if (RARRAY_LEN(orig) &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='del'>-        VALUE shared = 0;</div><div class='add'>+    rb_ary_reset(copy);</div><div class='ctx'> </div><div class='del'>-        if (ARY_OWNS_HEAP_P(copy)) {</div><div class='del'>-            ary_heap_free(copy);</div><div class='del'>-	}</div><div class='del'>-        else if (ARY_SHARED_P(copy)) {</div><div class='del'>-            shared = ARY_SHARED(copy);</div><div class='del'>-            FL_UNSET_SHARED(copy);</div><div class='del'>-        }</div><div class='del'>-        FL_SET_EMBED(copy);</div><div class='add'>+    /* orig has enough space to embed the contents of orig. */</div><div class='add'>+    if (RARRAY_LEN(orig) &lt;= ary_embed_capa(copy)) {</div><div class='add'>+        assert(ARY_EMBED_P(copy));</div><div class='ctx'>         ary_memcpy(copy, 0, RARRAY_LEN(orig), RARRAY_CONST_PTR_TRANSIENT(orig));</div><div class='del'>-        if (shared) {</div><div class='del'>-            rb_ary_decrement_share(shared);</div><div class='del'>-        }</div><div class='del'>-        ARY_SET_LEN(copy, RARRAY_LEN(orig));</div><div class='add'>+        ARY_SET_EMBED_LEN(copy, RARRAY_LEN(orig));</div><div class='ctx'>     }</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    /* orig is embedded but copy does not have enough space to embed the</div><div class='add'>+     * contents of orig. */</div><div class='add'>+    else if (ARY_EMBED_P(orig)) {</div><div class='add'>+        long len = ARY_EMBED_LEN(orig);</div><div class='add'>+        VALUE *ptr = ary_heap_alloc(copy, len);</div><div class='add'>+</div><div class='add'>+        FL_UNSET_EMBED(copy);</div><div class='add'>+        ARY_SET_PTR(copy, ptr);</div><div class='add'>+        ARY_SET_LEN(copy, len);</div><div class='add'>+        ARY_SET_CAPA(copy, len);</div><div class='add'>+</div><div class='add'>+        // No allocation and exception expected that could leave `copy` in a</div><div class='add'>+        // bad state from the edits above.</div><div class='add'>+        ary_memcpy(copy, 0, len, RARRAY_CONST_PTR_TRANSIENT(orig));</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    /* Otherwise, orig is on heap and copy does not have enough space to embed</div><div class='add'>+     * the contents of orig. */</div><div class='ctx'>     else {</div><div class='del'>-        VALUE shared = ary_make_shared(orig);</div><div class='del'>-        if (ARY_OWNS_HEAP_P(copy)) {</div><div class='del'>-            ary_heap_free(copy);</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            rb_ary_unshare_safe(copy);</div><div class='del'>-        }</div><div class='add'>+        VALUE shared_root = ary_make_shared(orig);</div><div class='ctx'>         FL_UNSET_EMBED(copy);</div><div class='ctx'>         ARY_SET_PTR(copy, ARY_HEAP_PTR(orig));</div><div class='ctx'>         ARY_SET_LEN(copy, ARY_HEAP_LEN(orig));</div><div class='del'>-        rb_ary_set_shared(copy, shared);</div><div class='add'>+        rb_ary_set_shared(copy, shared_root);</div><div class='ctx'>     }</div><div class='ctx'>     ary_verify(copy);</div><div class='ctx'>     return copy;</div><div class='hunk'>@@ -3794,12 +4778,13 @@ rb_ary_replace(VALUE copy, VALUE orig)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.clear    -&gt; ary</div><div class='add'>+ *     array.clear -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Removes all elements from +self+:</div><div class='ctx'>  *</div><div class='del'>- *  Removes all elements from +self+.</div><div class='add'>+ *    a = [:foo, 'bar', 2]</div><div class='add'>+ *    a.clear # =&gt; []</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c", "d", "e" ]</div><div class='del'>- *     a.clear    #=&gt; [ ]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -3807,11 +4792,11 @@ rb_ary_clear(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     rb_ary_modify_check(ary);</div><div class='ctx'>     if (ARY_SHARED_P(ary)) {</div><div class='del'>-	if (!ARY_EMBED_P(ary)) {</div><div class='del'>-	    rb_ary_unshare(ary);</div><div class='del'>-	    FL_SET_EMBED(ary);</div><div class='add'>+        if (!ARY_EMBED_P(ary)) {</div><div class='add'>+            rb_ary_unshare(ary);</div><div class='add'>+            FL_SET_EMBED(ary);</div><div class='ctx'>             ARY_SET_EMBED_LEN(ary, 0);</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         ARY_SET_LEN(ary, 0);</div><div class='hunk'>@@ -3825,32 +4810,198 @@ rb_ary_clear(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.fill(obj)                                 -&gt; ary</div><div class='del'>- *     ary.fill(obj, start [, length])               -&gt; ary</div><div class='del'>- *     ary.fill(obj, range)                          -&gt; ary</div><div class='del'>- *     ary.fill {|index| block}                      -&gt; ary</div><div class='del'>- *     ary.fill(start [, length]) {|index| block}    -&gt; ary</div><div class='del'>- *     ary.fill(range) {|index| block}               -&gt; ary</div><div class='add'>+ *    array.fill(obj) -&gt; self</div><div class='add'>+ *    array.fill(obj, start) -&gt; self</div><div class='add'>+ *    array.fill(obj, start, length) -&gt; self</div><div class='add'>+ *    array.fill(obj, range) -&gt; self</div><div class='add'>+ *    array.fill {|index| ... } -&gt; self</div><div class='add'>+ *    array.fill(start) {|index| ... } -&gt; self</div><div class='add'>+ *    array.fill(start, length) {|index| ... } -&gt; self</div><div class='add'>+ *    array.fill(range) {|index| ... } -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Replaces specified elements in +self+ with specified objects; returns +self+.</div><div class='add'>+ *</div><div class='add'>+ *  With argument +obj+ and no block given, replaces all elements with that one object:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *    a.fill(:X) # =&gt; [:X, :X, :X, :X]</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +obj+ and \Integer +start+, and no block given,</div><div class='add'>+ *  replaces elements based on the given start.</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is in range (&lt;tt&gt;0 &lt;= start &lt; array.size&lt;/tt&gt;),</div><div class='add'>+ *  replaces all elements from offset +start+ through the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, 2) # =&gt; ["a", "b", :X, :X]</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is too large (&lt;tt&gt;start &gt;= array.size&lt;/tt&gt;), does nothing:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, 4) # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, 5) # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is negative, counts from the end (starting index is &lt;tt&gt;start + array.size&lt;/tt&gt;):</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, -2) # =&gt; ["a", "b", :X, :X]</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is too small (less than and far from zero), replaces all elements:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, -6) # =&gt; [:X, :X, :X, :X]</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, -50) # =&gt; [:X, :X, :X, :X]</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +obj+, \Integer +start+, and \Integer +length+, and no block given,</div><div class='add'>+ *  replaces elements based on the given +start+ and +length+.</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is in range, replaces +length+ elements beginning at offset +start+:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, 1, 1) # =&gt; ["a", :X, "c", "d"]</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is negative, counts from the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, -2, 1) # =&gt; ["a", "b", :X, "d"]</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is large (&lt;tt&gt;start &gt;= array.size&lt;/tt&gt;), extends +self+ with +nil+:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, 5, 0) # =&gt; ["a", "b", "c", "d", nil]</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, 5, 2) # =&gt; ["a", "b", "c", "d", nil, :X, :X]</div><div class='add'>+ *</div><div class='add'>+ *  If +length+ is zero or negative, replaces no elements:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, 1, 0) # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *    a.fill(:X, 1, -1) # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +obj+ and \Range +range+, and no block given,</div><div class='add'>+ *  replaces elements based on the given range.</div><div class='add'>+ *</div><div class='add'>+ *  If the range is positive and ascending (&lt;tt&gt;0 &lt; range.begin &lt;= range.end&lt;/tt&gt;),</div><div class='add'>+ *  replaces elements from &lt;tt&gt;range.begin&lt;/tt&gt; to &lt;tt&gt;range.end&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, (1..1)) # =&gt; ["a", :X, "c", "d"]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.first&lt;/tt&gt; is negative, replaces no elements:</div><div class='ctx'>  *</div><div class='del'>- *  The first three forms set the selected elements of +self+ (which</div><div class='del'>- *  may be the entire array) to +obj+.</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, (-1..1)) # =&gt; ["a", "b", "c", "d"]</div><div class='ctx'>  *</div><div class='del'>- *  A +start+ of +nil+ is equivalent to zero.</div><div class='add'>+ *  If &lt;tt&gt;range.last&lt;/tt&gt; is negative, counts from the end:</div><div class='ctx'>  *</div><div class='del'>- *  A +length+ of +nil+ is equivalent to the length of the array.</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, (0..-2)) # =&gt; [:X, :X, :X, "d"]</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, (1..-2)) # =&gt; ["a", :X, :X, "d"]</div><div class='ctx'>  *</div><div class='del'>- *  The last three forms fill the array with the value of the given block,</div><div class='del'>- *  which is passed the absolute index of each element to be filled.</div><div class='add'>+ *  If &lt;tt&gt;range.last&lt;/tt&gt; and &lt;tt&gt;range.last&lt;/tt&gt; are both negative,</div><div class='add'>+ *  both count from the end of the array:</div><div class='ctx'>  *</div><div class='del'>- *  Negative values of +start+ count from the end of the array, where +-1+ is</div><div class='del'>- *  the last element.</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, (-1..-1)) # =&gt; ["a", "b", "c", :X]</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(:X, (-2..-2)) # =&gt; ["a", "b", :X, "d"]</div><div class='add'>+ *</div><div class='add'>+ *  With no arguments and a block given, calls the block with each index;</div><div class='add'>+ *  replaces the corresponding element with the block's return value:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill { |index| "new_#{index}" } # =&gt; ["new_0", "new_1", "new_2", "new_3"]</div><div class='add'>+ *</div><div class='add'>+ *  With argument +start+ and a block given, calls the block with each index</div><div class='add'>+ *  from offset +start+ to the end; replaces the corresponding element</div><div class='add'>+ *  with the block's return value.</div><div class='add'>+ *</div><div class='add'>+ *  If start is in range (&lt;tt&gt;0 &lt;= start &lt; array.size&lt;/tt&gt;),</div><div class='add'>+ *  replaces from offset +start+ to the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(1) { |index| "new_#{index}" } # =&gt; ["a", "new_1", "new_2", "new_3"]</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is too large(&lt;tt&gt;start &gt;= array.size&lt;/tt&gt;), does nothing:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(4) { |index| fail 'Cannot happen' } # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(4) { |index| fail 'Cannot happen' } # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is negative, counts from the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(-2) { |index| "new_#{index}" } # =&gt; ["a", "b", "new_2", "new_3"]</div><div class='add'>+ *</div><div class='add'>+ *  If start is too small (&lt;tt&gt;start &lt;= -array.size&lt;/tt&gt;, replaces all elements:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(-6) { |index| "new_#{index}" } # =&gt; ["new_0", "new_1", "new_2", "new_3"]</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(-50) { |index| "new_#{index}" } # =&gt; ["new_0", "new_1", "new_2", "new_3"]</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +start+ and +length+, and a block given,</div><div class='add'>+ *  calls the block for each index specified by start length;</div><div class='add'>+ *  replaces the corresponding element with the block's return value.</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is in range, replaces +length+ elements beginning at offset +start+:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(1, 1) { |index| "new_#{index}" } # =&gt; ["a", "new_1", "c", "d"]</div><div class='add'>+ *</div><div class='add'>+ *  If start is negative, counts from the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(-2, 1) { |index| "new_#{index}" } # =&gt; ["a", "b", "new_2", "d"]</div><div class='add'>+ *</div><div class='add'>+ *  If +start+ is large (&lt;tt&gt;start &gt;= array.size&lt;/tt&gt;), extends +self+ with +nil+:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(5, 0) { |index| "new_#{index}" } # =&gt; ["a", "b", "c", "d", nil]</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(5, 2) { |index| "new_#{index}" } # =&gt; ["a", "b", "c", "d", nil, "new_5", "new_6"]</div><div class='add'>+ *</div><div class='add'>+ *  If +length+ is zero or less, replaces no elements:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(1, 0) { |index| "new_#{index}" } # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *    a.fill(1, -1) { |index| "new_#{index}" } # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +obj+ and +range+, and a block given,</div><div class='add'>+ *  calls the block with each index in the given range;</div><div class='add'>+ *  replaces the corresponding element with the block's return value.</div><div class='add'>+ *</div><div class='add'>+ *  If the range is positive and ascending (&lt;tt&gt;range 0 &lt; range.begin &lt;= range.end&lt;/tt&gt;,</div><div class='add'>+ *  replaces elements from &lt;tt&gt;range.begin&lt;/tt&gt; to &lt;tt&gt;range.end&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(1..1) { |index| "new_#{index}" } # =&gt; ["a", "new_1", "c", "d"]</div><div class='add'>+ *</div><div class='add'>+ *  If +range.first+ is negative, does nothing:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(-1..1) { |index| fail 'Cannot happen' } # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.last&lt;/tt&gt; is negative, counts from the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(0..-2) { |index| "new_#{index}" } # =&gt; ["new_0", "new_1", "new_2", "d"]</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(1..-2) { |index| "new_#{index}" } # =&gt; ["a", "new_1", "new_2", "d"]</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;range.first&lt;/tt&gt; and &lt;tt&gt;range.last&lt;/tt&gt; are both negative,</div><div class='add'>+ *  both count from the end:</div><div class='add'>+ *</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(-1..-1) { |index| "new_#{index}" } # =&gt; ["a", "b", "c", "new_3"]</div><div class='add'>+ *    a = ['a', 'b', 'c', 'd']</div><div class='add'>+ *    a.fill(-2..-2) { |index| "new_#{index}" } # =&gt; ["a", "b", "new_2", "d"]</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c", "d" ]</div><div class='del'>- *     a.fill("x")              #=&gt; ["x", "x", "x", "x"]</div><div class='del'>- *     a.fill("z", 2, 2)        #=&gt; ["x", "x", "z", "z"]</div><div class='del'>- *     a.fill("y", 0..1)        #=&gt; ["y", "y", "z", "z"]</div><div class='del'>- *     a.fill {|i| i*i}         #=&gt; [0, 1, 4, 9]</div><div class='del'>- *     a.fill(-2) {|i| i*i*i}   #=&gt; [0, 1, 8, 27]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3860,84 +5011,74 @@ rb_ary_fill(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     long beg = 0, end = 0, len = 0;</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	rb_scan_args(argc, argv, "02", &amp;arg1, &amp;arg2);</div><div class='del'>-	argc += 1;		/* hackish */</div><div class='add'>+        rb_scan_args(argc, argv, "02", &amp;arg1, &amp;arg2);</div><div class='add'>+        argc += 1;		/* hackish */</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_scan_args(argc, argv, "12", &amp;item, &amp;arg1, &amp;arg2);</div><div class='add'>+        rb_scan_args(argc, argv, "12", &amp;item, &amp;arg1, &amp;arg2);</div><div class='ctx'>     }</div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 1:</div><div class='del'>-	beg = 0;</div><div class='del'>-	len = RARRAY_LEN(ary);</div><div class='del'>-	break;</div><div class='add'>+        beg = 0;</div><div class='add'>+        len = RARRAY_LEN(ary);</div><div class='add'>+        break;</div><div class='ctx'>       case 2:</div><div class='del'>-	if (rb_range_beg_len(arg1, &amp;beg, &amp;len, RARRAY_LEN(ary), 1)) {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	/* fall through */</div><div class='add'>+        if (rb_range_beg_len(arg1, &amp;beg, &amp;len, RARRAY_LEN(ary), 1)) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        /* fall through */</div><div class='ctx'>       case 3:</div><div class='del'>-	beg = NIL_P(arg1) ? 0 : NUM2LONG(arg1);</div><div class='del'>-	if (beg &lt; 0) {</div><div class='del'>-	    beg = RARRAY_LEN(ary) + beg;</div><div class='del'>-	    if (beg &lt; 0) beg = 0;</div><div class='del'>-	}</div><div class='del'>-	len = NIL_P(arg2) ? RARRAY_LEN(ary) - beg : NUM2LONG(arg2);</div><div class='del'>-	break;</div><div class='add'>+        beg = NIL_P(arg1) ? 0 : NUM2LONG(arg1);</div><div class='add'>+        if (beg &lt; 0) {</div><div class='add'>+            beg = RARRAY_LEN(ary) + beg;</div><div class='add'>+            if (beg &lt; 0) beg = 0;</div><div class='add'>+        }</div><div class='add'>+        len = NIL_P(arg2) ? RARRAY_LEN(ary) - beg : NUM2LONG(arg2);</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'>     rb_ary_modify(ary);</div><div class='ctx'>     if (len &lt; 0) {</div><div class='ctx'>         return ary;</div><div class='ctx'>     }</div><div class='ctx'>     if (beg &gt;= ARY_MAX_SIZE || len &gt; ARY_MAX_SIZE - beg) {</div><div class='del'>-	rb_raise(rb_eArgError, "argument too big");</div><div class='add'>+        rb_raise(rb_eArgError, "argument too big");</div><div class='ctx'>     }</div><div class='ctx'>     end = beg + len;</div><div class='ctx'>     if (RARRAY_LEN(ary) &lt; end) {</div><div class='del'>-	if (end &gt;= ARY_CAPA(ary)) {</div><div class='del'>-	    ary_resize_capa(ary, end);</div><div class='del'>-	}</div><div class='del'>-	ary_mem_clear(ary, RARRAY_LEN(ary), end - RARRAY_LEN(ary));</div><div class='del'>-	ARY_SET_LEN(ary, end);</div><div class='add'>+        if (end &gt;= ARY_CAPA(ary)) {</div><div class='add'>+            ary_resize_capa(ary, end);</div><div class='add'>+        }</div><div class='add'>+        ary_mem_clear(ary, RARRAY_LEN(ary), end - RARRAY_LEN(ary));</div><div class='add'>+        ARY_SET_LEN(ary, end);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (item == Qundef) {</div><div class='del'>-	VALUE v;</div><div class='del'>-	long i;</div><div class='add'>+    if (UNDEF_P(item)) {</div><div class='add'>+        VALUE v;</div><div class='add'>+        long i;</div><div class='ctx'> </div><div class='del'>-	for (i=beg; i&lt;end; i++) {</div><div class='del'>-	    v = rb_yield(LONG2NUM(i));</div><div class='del'>-	    if (i&gt;=RARRAY_LEN(ary)) break;</div><div class='del'>-	    ARY_SET(ary, i, v);</div><div class='del'>-	}</div><div class='add'>+        for (i=beg; i&lt;end; i++) {</div><div class='add'>+            v = rb_yield(LONG2NUM(i));</div><div class='add'>+            if (i&gt;=RARRAY_LEN(ary)) break;</div><div class='add'>+            ARY_SET(ary, i, v);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ary_memfill(ary, beg, len, item);</div><div class='add'>+        ary_memfill(ary, beg, len, item);</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary + other_ary   -&gt; new_ary</div><div class='add'>+ *    array + other_array -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *  Concatenation --- Returns a new array built by concatenating the</div><div class='del'>- *  two arrays together to produce a third array.</div><div class='add'>+ *  Returns a new \Array containing all elements of +array+</div><div class='add'>+ *  followed by all elements of +other_array+:</div><div class='ctx'>  *</div><div class='del'>- *     [ 1, 2, 3 ] + [ 4, 5 ]    #=&gt; [ 1, 2, 3, 4, 5 ]</div><div class='del'>- *     a = [ "a", "b", "c" ]</div><div class='del'>- *     c = a + [ "d", "e", "f" ]</div><div class='del'>- *     c                         #=&gt; [ "a", "b", "c", "d", "e", "f" ]</div><div class='del'>- *     a                         #=&gt; [ "a", "b", "c" ]</div><div class='add'>+ *    a = [0, 1] + [2, 3]</div><div class='add'>+ *    a # =&gt; [0, 1, 2, 3]</div><div class='ctx'>  *</div><div class='del'>- *  Note that</div><div class='del'>- *     x += y</div><div class='del'>- *  is the same as</div><div class='del'>- *     x = x + y</div><div class='del'>- *  This means that it produces a new array. As a consequence,</div><div class='del'>- *  repeated use of &lt;code&gt;+=&lt;/code&gt; on arrays can be quite inefficient.</div><div class='del'>- *</div><div class='del'>- *  See also Array#concat.</div><div class='add'>+ *  Related: #concat.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -3965,27 +5106,18 @@ ary_append(VALUE x, VALUE y)</div><div class='ctx'>     if (n &gt; 0) {</div><div class='ctx'>         rb_ary_splice(x, RARRAY_LEN(x), 0, RARRAY_CONST_PTR_TRANSIENT(y), n);</div><div class='ctx'>     }</div><div class='add'>+    RB_GC_GUARD(y);</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.concat(other_ary1, other_ary2, ...)   -&gt; ary</div><div class='del'>- *</div><div class='del'>- *  Appends the elements of &lt;code&gt;other_ary&lt;/code&gt;s to +self+.</div><div class='del'>- *</div><div class='del'>- *     [ "a", "b" ].concat( ["c", "d"])   #=&gt; [ "a", "b", "c", "d" ]</div><div class='del'>- *     [ "a" ].concat( ["b"], ["c", "d"]) #=&gt; [ "a", "b", "c", "d" ]</div><div class='del'>- *     [ "a" ].concat #=&gt; [ "a" ]</div><div class='del'>- *</div><div class='del'>- *     a = [ 1, 2, 3 ]</div><div class='del'>- *     a.concat( [ 4, 5 ])</div><div class='del'>- *     a                                 #=&gt; [ 1, 2, 3, 4, 5 ]</div><div class='add'>+ *    array.concat(*other_arrays) -&gt; self</div><div class='ctx'>  *</div><div class='del'>- *     a = [ 1, 2 ]</div><div class='del'>- *     a.concat(a, a)                    #=&gt; [1, 2, 1, 2, 1, 2]</div><div class='add'>+ *  Adds to +array+ all elements from each \Array in +other_arrays+; returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#+.</div><div class='add'>+ *    a = [0, 1]</div><div class='add'>+ *    a.concat([2, 3], [4, 5]) # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3994,15 +5126,15 @@ rb_ary_concat_multi(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     rb_ary_modify_check(ary);</div><div class='ctx'> </div><div class='ctx'>     if (argc == 1) {</div><div class='del'>-	rb_ary_concat(ary, argv[0]);</div><div class='add'>+        rb_ary_concat(ary, argv[0]);</div><div class='ctx'>     }</div><div class='ctx'>     else if (argc &gt; 1) {</div><div class='del'>-	int i;</div><div class='del'>-	VALUE args = rb_ary_tmp_new(argc);</div><div class='del'>-	for (i = 0; i &lt; argc; i++) {</div><div class='del'>-	    rb_ary_concat(args, argv[i]);</div><div class='del'>-	}</div><div class='del'>-	ary_append(ary, args);</div><div class='add'>+        int i;</div><div class='add'>+        VALUE args = rb_ary_hidden_new(argc);</div><div class='add'>+        for (i = 0; i &lt; argc; i++) {</div><div class='add'>+            rb_ary_concat(args, argv[i]);</div><div class='add'>+        }</div><div class='add'>+        ary_append(ary, args);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ary_verify(ary);</div><div class='hunk'>@@ -4017,18 +5149,19 @@ rb_ary_concat(VALUE x, VALUE y)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary * int     -&gt; new_ary</div><div class='del'>- *     ary * str     -&gt; new_string</div><div class='add'>+ *    array * n -&gt; new_array</div><div class='add'>+ *    array * string_separator -&gt; new_string</div><div class='ctx'>  *</div><div class='del'>- *  Repetition --- With a String argument, equivalent to</div><div class='del'>- *  &lt;code&gt;ary.join(str)&lt;/code&gt;.</div><div class='add'>+ *  When non-negative argument \Integer +n+ is given,</div><div class='add'>+ *  returns a new \Array built by concatenating the +n+ copies of +self+:</div><div class='ctx'>  *</div><div class='del'>- *  Otherwise, returns a new array built by concatenating the +int+ copies of</div><div class='del'>- *  +self+.</div><div class='add'>+ *    a = ['x', 'y']</div><div class='add'>+ *    a * 3 # =&gt; ["x", "y", "x", "y", "x", "y"]</div><div class='ctx'>  *</div><div class='add'>+ *  When \String argument +string_separator+ is given,</div><div class='add'>+ *  equivalent to &lt;tt&gt;array.join(string_separator)&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *     [ 1, 2, 3 ] * 3    #=&gt; [ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]</div><div class='del'>- *     [ 1, 2, 3 ] * ","  #=&gt; "1,2,3"</div><div class='add'>+ *    [0, [0, 1], {foo: 0}] * ', ' # =&gt; "0, 0, 1, {:foo=&gt;0}"</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -4041,30 +5174,30 @@ rb_ary_times(VALUE ary, VALUE times)</div><div class='ctx'> </div><div class='ctx'>     tmp = rb_check_string_type(times);</div><div class='ctx'>     if (!NIL_P(tmp)) {</div><div class='del'>-	return rb_ary_join(ary, tmp);</div><div class='add'>+        return rb_ary_join(ary, tmp);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     len = NUM2LONG(times);</div><div class='ctx'>     if (len == 0) {</div><div class='del'>-	ary2 = ary_new(rb_obj_class(ary), 0);</div><div class='del'>-	goto out;</div><div class='add'>+        ary2 = ary_new(rb_cArray, 0);</div><div class='add'>+        goto out;</div><div class='ctx'>     }</div><div class='ctx'>     if (len &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "negative argument");</div><div class='add'>+        rb_raise(rb_eArgError, "negative argument");</div><div class='ctx'>     }</div><div class='ctx'>     if (ARY_MAX_SIZE/len &lt; RARRAY_LEN(ary)) {</div><div class='del'>-	rb_raise(rb_eArgError, "argument too big");</div><div class='add'>+        rb_raise(rb_eArgError, "argument too big");</div><div class='ctx'>     }</div><div class='ctx'>     len *= RARRAY_LEN(ary);</div><div class='ctx'> </div><div class='del'>-    ary2 = ary_new(rb_obj_class(ary), len);</div><div class='add'>+    ary2 = ary_new(rb_cArray, len);</div><div class='ctx'>     ARY_SET_LEN(ary2, len);</div><div class='ctx'> </div><div class='ctx'>     ptr = RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='ctx'>     t = RARRAY_LEN(ary);</div><div class='ctx'>     if (0 &lt; t) {</div><div class='del'>-	ary_memcpy(ary2, 0, t, ptr);</div><div class='del'>-	while (t &lt;= len/2) {</div><div class='add'>+        ary_memcpy(ary2, 0, t, ptr);</div><div class='add'>+        while (t &lt;= len/2) {</div><div class='ctx'>             ary_memcpy(ary2, t, t, RARRAY_CONST_PTR_TRANSIENT(ary2));</div><div class='ctx'>             t *= 2;</div><div class='ctx'>         }</div><div class='hunk'>@@ -4073,29 +5206,22 @@ rb_ary_times(VALUE ary, VALUE times)</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>   out:</div><div class='del'>-    OBJ_INFECT(ary2, ary);</div><div class='del'>-</div><div class='ctx'>     return ary2;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.assoc(obj)   -&gt; element_ary  or  nil</div><div class='add'>+ *    array.assoc(obj) -&gt; found_array or nil</div><div class='ctx'>  *</div><div class='del'>- *  Searches through an array whose elements are also arrays comparing +obj+</div><div class='del'>- *  with the first element of each contained array using &lt;code&gt;obj.==&lt;/code&gt;.</div><div class='add'>+ *  Returns the first element in +self+ that is an \Array</div><div class='add'>+ *  whose first element &lt;tt&gt;==&lt;/tt&gt; +obj+:</div><div class='ctx'>  *</div><div class='del'>- *  Returns the first contained array that matches (that is, the first</div><div class='del'>- *  associated array), or +nil+ if no match is found.</div><div class='add'>+ *    a = [{foo: 0}, [2, 4], [4, 5, 6], [4, 5]]</div><div class='add'>+ *    a.assoc(4) # =&gt; [4, 5, 6]</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#rassoc</div><div class='add'>+ *  Returns +nil+ if no such element is found.</div><div class='ctx'>  *</div><div class='del'>- *     s1 = [ "colors", "red", "blue", "green" ]</div><div class='del'>- *     s2 = [ "letters", "a", "b", "c" ]</div><div class='del'>- *     s3 = "foo"</div><div class='del'>- *     a  = [ s1, s2, s3 ]</div><div class='del'>- *     a.assoc("letters")  #=&gt; [ "letters", "a", "b", "c" ]</div><div class='del'>- *     a.assoc("foo")      #=&gt; nil</div><div class='add'>+ *  Related: #rassoc.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -4105,30 +5231,27 @@ rb_ary_assoc(VALUE ary, VALUE key)</div><div class='ctx'>     VALUE v;</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='del'>-	v = rb_check_array_type(RARRAY_AREF(ary, i));</div><div class='del'>-	if (!NIL_P(v) &amp;&amp; RARRAY_LEN(v) &gt; 0 &amp;&amp;</div><div class='del'>-	    rb_equal(RARRAY_AREF(v, 0), key))</div><div class='del'>-	    return v;</div><div class='add'>+        v = rb_check_array_type(RARRAY_AREF(ary, i));</div><div class='add'>+        if (!NIL_P(v) &amp;&amp; RARRAY_LEN(v) &gt; 0 &amp;&amp;</div><div class='add'>+            rb_equal(RARRAY_AREF(v, 0), key))</div><div class='add'>+            return v;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.rassoc(obj) -&gt; element_ary or nil</div><div class='add'>+ *    array.rassoc(obj) -&gt; found_array or nil</div><div class='ctx'>  *</div><div class='del'>- *  Searches through the array whose elements are also arrays.</div><div class='add'>+ *  Returns the first element in +self+ that is an \Array</div><div class='add'>+ *  whose second element &lt;tt&gt;==&lt;/tt&gt; +obj+:</div><div class='ctx'>  *</div><div class='del'>- *  Compares +obj+ with the second element of each contained array using</div><div class='del'>- *  &lt;code&gt;obj.==&lt;/code&gt;.</div><div class='add'>+ *    a = [{foo: 0}, [2, 4], [4, 5, 6], [4, 5]]</div><div class='add'>+ *    a.rassoc(4) # =&gt; [2, 4]</div><div class='ctx'>  *</div><div class='del'>- *  Returns the first contained array that matches +obj+.</div><div class='add'>+ *  Returns +nil+ if no such element is found.</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#assoc.</div><div class='del'>- *</div><div class='del'>- *     a = [ [ 1, "one"], [2, "two"], [3, "three"], ["ii", "two"] ]</div><div class='del'>- *     a.rassoc("two")    #=&gt; [2, "two"]</div><div class='del'>- *     a.rassoc("four")   #=&gt; nil</div><div class='add'>+ *  Related: #assoc.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -4138,11 +5261,11 @@ rb_ary_rassoc(VALUE ary, VALUE value)</div><div class='ctx'>     VALUE v;</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='del'>-	v = RARRAY_AREF(ary, i);</div><div class='del'>-	if (RB_TYPE_P(v, T_ARRAY) &amp;&amp;</div><div class='del'>-	    RARRAY_LEN(v) &gt; 1 &amp;&amp;</div><div class='del'>-	    rb_equal(RARRAY_AREF(v, 1), value))</div><div class='del'>-	    return v;</div><div class='add'>+        v = RARRAY_AREF(ary, i);</div><div class='add'>+        if (RB_TYPE_P(v, T_ARRAY) &amp;&amp;</div><div class='add'>+            RARRAY_LEN(v) &gt; 1 &amp;&amp;</div><div class='add'>+            rb_equal(RARRAY_AREF(v, 1), value))</div><div class='add'>+            return v;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -4161,38 +5284,42 @@ recursive_equal(VALUE ary1, VALUE ary2, int recur)</div><div class='ctx'>     len1 = RARRAY_LEN(ary1);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; len1; i++) {</div><div class='del'>-	if (*p1 != *p2) {</div><div class='del'>-	    if (rb_equal(*p1, *p2)) {</div><div class='del'>-		len1 = RARRAY_LEN(ary1);</div><div class='del'>-		if (len1 != RARRAY_LEN(ary2))</div><div class='del'>-		    return Qfalse;</div><div class='del'>-		if (len1 &lt; i)</div><div class='del'>-		    return Qtrue;</div><div class='add'>+        if (*p1 != *p2) {</div><div class='add'>+            if (rb_equal(*p1, *p2)) {</div><div class='add'>+                len1 = RARRAY_LEN(ary1);</div><div class='add'>+                if (len1 != RARRAY_LEN(ary2))</div><div class='add'>+                    return Qfalse;</div><div class='add'>+                if (len1 &lt; i)</div><div class='add'>+                    return Qtrue;</div><div class='ctx'>                 p1 = RARRAY_CONST_PTR(ary1) + i;</div><div class='ctx'>                 p2 = RARRAY_CONST_PTR(ary2) + i;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		return Qfalse;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	p1++;</div><div class='del'>-	p2++;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                return Qfalse;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        p1++;</div><div class='add'>+        p2++;</div><div class='ctx'>     }</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary == other_ary   -&gt;   bool</div><div class='add'>+ *    array == other_array -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Equality --- Two arrays are equal if they contain the same number of</div><div class='del'>- *  elements and if each element is equal to (according to Object#==) the</div><div class='del'>- *  corresponding element in +other_ary+.</div><div class='add'>+ *  Returns +true+ if both &lt;tt&gt;array.size == other_array.size&lt;/tt&gt;</div><div class='add'>+ *  and for each index +i+ in +array+, &lt;tt&gt;array[i] == other_array[i]&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *     [ "a", "c" ]    == [ "a", "c", 7 ]     #=&gt; false</div><div class='del'>- *     [ "a", "c", 7 ] == [ "a", "c", 7 ]     #=&gt; true</div><div class='del'>- *     [ "a", "c", 7 ] == [ "a", "d", "f" ]   #=&gt; false</div><div class='add'>+ *    a0 = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = [:foo, 'bar', 2.0]</div><div class='add'>+ *    a1 == a0 # =&gt; true</div><div class='add'>+ *    [] == [] # =&gt; true</div><div class='ctx'>  *</div><div class='add'>+ *  Otherwise, returns +false+.</div><div class='add'>+ *</div><div class='add'>+ *  This method is different from method Array#eql?,</div><div class='add'>+ *  which compares elements using &lt;tt&gt;Object#eql?&lt;/tt&gt;.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4200,10 +5327,10 @@ rb_ary_equal(VALUE ary1, VALUE ary2)</div><div class='ctx'> {</div><div class='ctx'>     if (ary1 == ary2) return Qtrue;</div><div class='ctx'>     if (!RB_TYPE_P(ary2, T_ARRAY)) {</div><div class='del'>-	if (!rb_respond_to(ary2, idTo_ary)) {</div><div class='del'>-	    return Qfalse;</div><div class='del'>-	}</div><div class='del'>-	return rb_equal(ary2, ary1);</div><div class='add'>+        if (!rb_respond_to(ary2, idTo_ary)) {</div><div class='add'>+            return Qfalse;</div><div class='add'>+        }</div><div class='add'>+        return rb_equal(ary2, ary1);</div><div class='ctx'>     }</div><div class='ctx'>     if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return Qfalse;</div><div class='ctx'>     if (RARRAY_CONST_PTR_TRANSIENT(ary1) == RARRAY_CONST_PTR_TRANSIENT(ary2)) return Qtrue;</div><div class='hunk'>@@ -4217,18 +5344,27 @@ recursive_eql(VALUE ary1, VALUE ary2, int recur)</div><div class='ctx'> </div><div class='ctx'>     if (recur) return Qtrue; /* Subtle! */</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='del'>-	if (!rb_eql(rb_ary_elt(ary1, i), rb_ary_elt(ary2, i)))</div><div class='del'>-	    return Qfalse;</div><div class='add'>+        if (!rb_eql(rb_ary_elt(ary1, i), rb_ary_elt(ary2, i)))</div><div class='add'>+            return Qfalse;</div><div class='ctx'>     }</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.eql?(other)  -&gt; true or false</div><div class='add'>+ *    array.eql? other_array -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if +self+ and +other_array+ are the same size,</div><div class='add'>+ *  and if, for each index +i+ in +self+, &lt;tt&gt;self[i].eql? other_array[i]&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *  Returns +true+ if +self+ and +other+ are the same object,</div><div class='del'>- *  or are both arrays with the same content (according to Object#eql?).</div><div class='add'>+ *    a0 = [:foo, 'bar', 2]</div><div class='add'>+ *    a1 = [:foo, 'bar', 2]</div><div class='add'>+ *    a1.eql?(a0) # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ *  Otherwise, returns +false+.</div><div class='add'>+ *</div><div class='add'>+ *  This method is different from method Array#==,</div><div class='add'>+ *  which compares using method &lt;tt&gt;Object#==&lt;/tt&gt;.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4243,14 +5379,15 @@ rb_ary_eql(VALUE ary1, VALUE ary2)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.hash   -&gt; integer</div><div class='add'>+ *    array.hash -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns the integer hash value for +self+.</div><div class='ctx'>  *</div><div class='del'>- *  Compute a hash-code for this array.</div><div class='add'>+ *  Two arrays with the same content will have the same hash code (and will compare using eql?):</div><div class='ctx'>  *</div><div class='del'>- *  Two arrays with the same content will have the same hash code (and will</div><div class='del'>- *  compare using #eql?).</div><div class='add'>+ *    [0, 1, 2].hash == [0, 1, 2].hash # =&gt; true</div><div class='add'>+ *    [0, 1, 2].hash == [0, 1, 3].hash # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- *  See also Object#hash.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4263,8 +5400,8 @@ rb_ary_hash(VALUE ary)</div><div class='ctx'>     h = rb_hash_start(RARRAY_LEN(ary));</div><div class='ctx'>     h = rb_hash_uint(h, (st_index_t)rb_ary_hash);</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	n = rb_hash(RARRAY_AREF(ary, i));</div><div class='del'>-	h = rb_hash_uint(h, NUM2LONG(n));</div><div class='add'>+        n = rb_hash(RARRAY_AREF(ary, i));</div><div class='add'>+        h = rb_hash_uint(h, NUM2LONG(n));</div><div class='ctx'>     }</div><div class='ctx'>     h = rb_hash_end(h);</div><div class='ctx'>     return ST2FIX(h);</div><div class='hunk'>@@ -4272,14 +5409,13 @@ rb_ary_hash(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.include?(object)   -&gt; true or false</div><div class='add'>+ *    array.include?(obj) -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Returns +true+ if the given +object+ is present in +self+ (that is, if any</div><div class='del'>- *  element &lt;code&gt;==&lt;/code&gt; +object+), otherwise returns +false+.</div><div class='add'>+ *  Returns +true+ if for some index +i+ in +self+, &lt;tt&gt;obj == self[i]&lt;/tt&gt;;</div><div class='add'>+ *  otherwise +false+:</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "b", "c" ]</div><div class='del'>- *     a.include?("b")   #=&gt; true</div><div class='del'>- *     a.include?("z")   #=&gt; false</div><div class='add'>+ *    [0, 1, 2].include?(2) # =&gt; true</div><div class='add'>+ *    [0, 1, 2].include?(3) # =&gt; false</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -4289,10 +5425,10 @@ rb_ary_includes(VALUE ary, VALUE item)</div><div class='ctx'>     VALUE e;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	e = RARRAY_AREF(ary, i);</div><div class='del'>-	if (rb_equal(e, item)) {</div><div class='del'>-	    return Qtrue;</div><div class='del'>-	}</div><div class='add'>+        e = RARRAY_AREF(ary, i);</div><div class='add'>+        if (rb_equal(e, item)) {</div><div class='add'>+            return Qtrue;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -4304,10 +5440,10 @@ rb_ary_includes_by_eql(VALUE ary, VALUE item)</div><div class='ctx'>     VALUE e;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	e = RARRAY_AREF(ary, i);</div><div class='del'>-	if (rb_eql(item, e)) {</div><div class='del'>-	    return Qtrue;</div><div class='del'>-	}</div><div class='add'>+        e = RARRAY_AREF(ary, i);</div><div class='add'>+        if (rb_eql(item, e)) {</div><div class='add'>+            return Qtrue;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -4320,45 +5456,46 @@ recursive_cmp(VALUE ary1, VALUE ary2, int recur)</div><div class='ctx'>     if (recur) return Qundef;	/* Subtle! */</div><div class='ctx'>     len = RARRAY_LEN(ary1);</div><div class='ctx'>     if (len &gt; RARRAY_LEN(ary2)) {</div><div class='del'>-	len = RARRAY_LEN(ary2);</div><div class='add'>+        len = RARRAY_LEN(ary2);</div><div class='ctx'>     }</div><div class='ctx'>     for (i=0; i&lt;len; i++) {</div><div class='del'>-	VALUE e1 = rb_ary_elt(ary1, i), e2 = rb_ary_elt(ary2, i);</div><div class='del'>-	VALUE v = rb_funcallv(e1, id_cmp, 1, &amp;e2);</div><div class='del'>-	if (v != INT2FIX(0)) {</div><div class='del'>-	    return v;</div><div class='del'>-	}</div><div class='add'>+        VALUE e1 = rb_ary_elt(ary1, i), e2 = rb_ary_elt(ary2, i);</div><div class='add'>+        VALUE v = rb_funcallv(e1, id_cmp, 1, &amp;e2);</div><div class='add'>+        if (v != INT2FIX(0)) {</div><div class='add'>+            return v;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qundef;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary &lt;=&gt; other_ary   -&gt;  -1, 0, +1 or nil</div><div class='add'>+ *    array &lt;=&gt; other_array -&gt; -1, 0, or 1</div><div class='add'>+ *</div><div class='add'>+ *  Returns -1, 0, or 1 as +self+ is less than, equal to, or greater than +other_array+.</div><div class='add'>+ *  For each index +i+ in +self+, evaluates &lt;tt&gt;result = self[i] &lt;=&gt; other_array[i]&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  Returns -1 if any result is -1:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2] &lt;=&gt; [0, 1, 3] # =&gt; -1</div><div class='ctx'>  *</div><div class='del'>- *  Comparison --- Returns an integer (+-1+, +0+, or &lt;code&gt;+1&lt;/code&gt;) if this</div><div class='del'>- *  array is less than, equal to, or greater than +other_ary+.</div><div class='add'>+ *  Returns 1 if any result is 1:</div><div class='ctx'>  *</div><div class='del'>- *  Each object in each array is compared (using the &lt;=&gt; operator).</div><div class='add'>+ *    [0, 1, 2] &lt;=&gt; [0, 1, 1] # =&gt; 1</div><div class='ctx'>  *</div><div class='del'>- *  Arrays are compared in an "element-wise" manner; the first element of +ary+</div><div class='del'>- *  is compared with the first one of +other_ary+ using the &lt;=&gt; operator, then</div><div class='del'>- *  each of the second elements, etc...</div><div class='del'>- *  As soon as the result of any such comparison is non zero (i.e. the two</div><div class='del'>- *  corresponding elements are not equal), that result is returned for the</div><div class='del'>- *  whole array comparison.</div><div class='add'>+ *  When all results are zero:</div><div class='ctx'>  *</div><div class='del'>- *  If all the elements are equal, then the result is based on a comparison of</div><div class='del'>- *  the array lengths. Thus, two arrays are "equal" according to Array#&lt;=&gt; if,</div><div class='del'>- *  and only if, they have the same length and the value of each element is</div><div class='del'>- *  equal to the value of the corresponding element in the other array.</div><div class='add'>+ *  - Returns -1 if +array+ is smaller than +other_array+:</div><div class='ctx'>  *</div><div class='del'>- *  +nil+ is returned if the +other_ary+ is not an array or if the comparison</div><div class='del'>- *  of two elements returned +nil+.</div><div class='add'>+ *      [0, 1, 2] &lt;=&gt; [0, 1, 2, 3] # =&gt; -1</div><div class='ctx'>  *</div><div class='del'>- *     [ "a", "a", "c" ]    &lt;=&gt; [ "a", "b", "c" ]   #=&gt; -1</div><div class='del'>- *     [ 1, 2, 3, 4, 5, 6 ] &lt;=&gt; [ 1, 2 ]            #=&gt; +1</div><div class='del'>- *     [ 1, 2 ]             &lt;=&gt; [ 1, :two ]         #=&gt; nil</div><div class='add'>+ *  - Returns 1 if +array+ is larger than +other_array+:</div><div class='add'>+ *</div><div class='add'>+ *      [0, 1, 2] &lt;=&gt; [0, 1] # =&gt; 1</div><div class='add'>+ *</div><div class='add'>+ *  - Returns 0 if +array+ and +other_array+ are the same size:</div><div class='add'>+ *</div><div class='add'>+ *      [0, 1, 2] &lt;=&gt; [0, 1, 2] # =&gt; 0</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -4372,7 +5509,7 @@ rb_ary_cmp(VALUE ary1, VALUE ary2)</div><div class='ctx'>     if (NIL_P(ary2)) return Qnil;</div><div class='ctx'>     if (ary1 == ary2) return INT2FIX(0);</div><div class='ctx'>     v = rb_exec_recursive_paired(recursive_cmp, ary1, ary2, ary2);</div><div class='del'>-    if (v != Qundef) return v;</div><div class='add'>+    if (!UNDEF_P(v)) return v;</div><div class='ctx'>     len = RARRAY_LEN(ary1) - RARRAY_LEN(ary2);</div><div class='ctx'>     if (len == 0) return INT2FIX(0);</div><div class='ctx'>     if (len &gt; 0) return INT2FIX(1);</div><div class='hunk'>@@ -4385,8 +5522,8 @@ ary_add_hash(VALUE hash, VALUE ary)</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	VALUE elt = RARRAY_AREF(ary, i);</div><div class='del'>-	rb_hash_add_new_element(hash, elt, elt);</div><div class='add'>+        VALUE elt = RARRAY_AREF(ary, i);</div><div class='add'>+        rb_hash_add_new_element(hash, elt, elt);</div><div class='ctx'>     }</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='hunk'>@@ -4414,8 +5551,8 @@ ary_add_hash_by(VALUE hash, VALUE ary)</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='del'>-	VALUE v = rb_ary_elt(ary, i), k = rb_yield(v);</div><div class='del'>-	rb_hash_add_new_element(hash, k, v);</div><div class='add'>+        VALUE v = rb_ary_elt(ary, i), k = rb_yield(v);</div><div class='add'>+        rb_hash_add_new_element(hash, k, v);</div><div class='ctx'>     }</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='hunk'>@@ -4433,31 +5570,28 @@ ary_recycle_hash(VALUE hash)</div><div class='ctx'>     assert(RBASIC_CLASS(hash) == 0);</div><div class='ctx'>     if (RHASH_ST_TABLE_P(hash)) {</div><div class='ctx'>         st_table *tbl = RHASH_ST_TABLE(hash);</div><div class='del'>-	st_free_table(tbl);</div><div class='add'>+        st_free_table(tbl);</div><div class='ctx'>         RHASH_ST_CLEAR(hash);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary - other_ary    -&gt; new_ary</div><div class='del'>- *</div><div class='del'>- *  Array Difference</div><div class='del'>- *</div><div class='del'>- *  Returns a new array that is a copy of the original array, removing any</div><div class='del'>- *  items that also appear in +other_ary+. The order is preserved from the</div><div class='del'>- *  original array.</div><div class='add'>+ *    array - other_array -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *  It compares elements using their #hash and #eql? methods for efficiency.</div><div class='add'>+ *  Returns a new \Array containing only those elements from +array+</div><div class='add'>+ *  that are not found in \Array +other_array+;</div><div class='add'>+ *  items are compared using &lt;tt&gt;eql?&lt;/tt&gt;;</div><div class='add'>+ *  the order from +array+ is preserved:</div><div class='ctx'>  *</div><div class='del'>- *     [ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ]  #=&gt;  [ 3, 3, 5 ]</div><div class='add'>+ *    [0, 1, 1, 2, 1, 1, 3, 1, 1] - [1] # =&gt; [0, 2, 3]</div><div class='add'>+ *    [0, 1, 2, 3] - [3, 0] # =&gt; [1, 2]</div><div class='add'>+ *    [0, 1, 2] - [4] # =&gt; [0, 1, 2]</div><div class='ctx'>  *</div><div class='del'>- *  If you need set-like behavior, see the library class Set.</div><div class='del'>- *</div><div class='del'>- *  See also Array#difference.</div><div class='add'>+ *  Related: Array#difference.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='add'>+VALUE</div><div class='ctx'> rb_ary_diff(VALUE ary1, VALUE ary2)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary3;</div><div class='hunk'>@@ -4465,21 +5599,22 @@ rb_ary_diff(VALUE ary1, VALUE ary2)</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     ary2 = to_ary(ary2);</div><div class='add'>+    if (RARRAY_LEN(ary2) == 0) { return ary_make_shared_copy(ary1); }</div><div class='ctx'>     ary3 = rb_ary_new();</div><div class='ctx'> </div><div class='ctx'>     if (RARRAY_LEN(ary1) &lt;= SMALL_ARRAY_LEN || RARRAY_LEN(ary2) &lt;= SMALL_ARRAY_LEN) {</div><div class='del'>-	for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='del'>-	    VALUE elt = rb_ary_elt(ary1, i);</div><div class='del'>-	    if (rb_ary_includes_by_eql(ary2, elt)) continue;</div><div class='del'>-	    rb_ary_push(ary3, elt);</div><div class='del'>-	}</div><div class='del'>-	return ary3;</div><div class='add'>+        for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+            VALUE elt = rb_ary_elt(ary1, i);</div><div class='add'>+            if (rb_ary_includes_by_eql(ary2, elt)) continue;</div><div class='add'>+            rb_ary_push(ary3, elt);</div><div class='add'>+        }</div><div class='add'>+        return ary3;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     hash = ary_make_hash(ary2);</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='ctx'>         if (rb_hash_stlike_lookup(hash, RARRAY_AREF(ary1, i), NULL)) continue;</div><div class='del'>-	rb_ary_push(ary3, rb_ary_elt(ary1, i));</div><div class='add'>+        rb_ary_push(ary3, rb_ary_elt(ary1, i));</div><div class='ctx'>     }</div><div class='ctx'>     ary_recycle_hash(hash);</div><div class='ctx'>     return ary3;</div><div class='hunk'>@@ -4487,22 +5622,19 @@ rb_ary_diff(VALUE ary1, VALUE ary2)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.difference(other_ary1, other_ary2, ...)   -&gt; ary</div><div class='del'>- *</div><div class='del'>- *  Array Difference</div><div class='del'>- *</div><div class='del'>- *  Returns a new array that is a copy of the receiver, removing any items</div><div class='del'>- *  that also appear in any of the arrays given as arguments.</div><div class='del'>- *  The order is preserved from the original array.</div><div class='add'>+ *    array.difference(*other_arrays) -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *  It compares elements using their #hash and #eql? methods for efficiency.</div><div class='add'>+ *  Returns a new \Array containing only those elements from +self+</div><div class='add'>+ *  that are not found in any of the Arrays +other_arrays+;</div><div class='add'>+ *  items are compared using &lt;tt&gt;eql?&lt;/tt&gt;;  order from +self+ is preserved:</div><div class='ctx'>  *</div><div class='del'>- *     [ 1, 1, 2, 2, 3, 3, 4, 5 ].difference([ 1, 2, 4 ])     #=&gt; [ 3, 3, 5 ]</div><div class='del'>- *     [ 1, 'c', :s, 'yep' ].difference([ 1 ], [ 'a', 'c' ])  #=&gt; [ :s, "yep" ]</div><div class='add'>+ *    [0, 1, 1, 2, 1, 1, 3, 1, 1].difference([1]) # =&gt; [0, 2, 3]</div><div class='add'>+ *    [0, 1, 2, 3].difference([3, 0], [1, 3]) # =&gt; [2]</div><div class='add'>+ *    [0, 1, 2].difference([4]) # =&gt; [0, 1, 2]</div><div class='ctx'>  *</div><div class='del'>- *  If you need set-like behavior, see the library class Set.</div><div class='add'>+ *  Returns a copy of +self+ if no arguments given.</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#-.</div><div class='add'>+ *  Related: Array#-.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4524,7 +5656,7 @@ rb_ary_difference_multi(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='ctx'>         int j;</div><div class='ctx'>         VALUE elt = rb_ary_elt(ary, i);</div><div class='del'>-        for (j = 0; j &lt; argc; j++){</div><div class='add'>+        for (j = 0; j &lt; argc; j++) {</div><div class='ctx'>             if (is_hash[j]) {</div><div class='ctx'>                 if (rb_hash_stlike_lookup(argv[j], RARRAY_AREF(ary, i), NULL))</div><div class='ctx'>                     break;</div><div class='hunk'>@@ -4544,17 +5676,19 @@ rb_ary_difference_multi(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary &amp; other_ary      -&gt; new_ary</div><div class='add'>+ *    array &amp; other_array -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *  Set Intersection --- Returns a new array containing unique elements common to the</div><div class='del'>- *  two arrays. The order is preserved from the original array.</div><div class='add'>+ *  Returns a new \Array containing each element found in both +array+ and \Array +other_array+;</div><div class='add'>+ *  duplicates are omitted; items are compared using &lt;tt&gt;eql?&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *  It compares elements using their #hash and #eql? methods for efficiency.</div><div class='add'>+ *    [0, 1, 2, 3] &amp; [1, 2] # =&gt; [1, 2]</div><div class='add'>+ *    [0, 1, 0, 1] &amp; [0, 1] # =&gt; [0, 1]</div><div class='ctx'>  *</div><div class='del'>- *     [ 1, 1, 3, 5 ] &amp; [ 3, 2, 1 ]                 #=&gt; [ 1, 3 ]</div><div class='del'>- *     [ 'a', 'b', 'b', 'z' ] &amp; [ 'a', 'b', 'c' ]   #=&gt; [ 'a', 'b' ]</div><div class='add'>+ *  Preserves order from +array+:</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#uniq.</div><div class='add'>+ *    [0, 1, 2] &amp; [3, 2, 1, 0] # =&gt; [0, 1, 2]</div><div class='add'>+ *</div><div class='add'>+ *  Related: Array#intersection.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -4570,29 +5704,62 @@ rb_ary_and(VALUE ary1, VALUE ary2)</div><div class='ctx'>     if (RARRAY_LEN(ary1) == 0 || RARRAY_LEN(ary2) == 0) return ary3;</div><div class='ctx'> </div><div class='ctx'>     if (RARRAY_LEN(ary1) &lt;= SMALL_ARRAY_LEN &amp;&amp; RARRAY_LEN(ary2) &lt;= SMALL_ARRAY_LEN) {</div><div class='del'>-	for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='del'>-	    v = RARRAY_AREF(ary1, i);</div><div class='del'>-	    if (!rb_ary_includes_by_eql(ary2, v)) continue;</div><div class='del'>-	    if (rb_ary_includes_by_eql(ary3, v)) continue;</div><div class='del'>-	    rb_ary_push(ary3, v);</div><div class='del'>-	}</div><div class='del'>-	return ary3;</div><div class='add'>+        for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+            v = RARRAY_AREF(ary1, i);</div><div class='add'>+            if (!rb_ary_includes_by_eql(ary2, v)) continue;</div><div class='add'>+            if (rb_ary_includes_by_eql(ary3, v)) continue;</div><div class='add'>+            rb_ary_push(ary3, v);</div><div class='add'>+        }</div><div class='add'>+        return ary3;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     hash = ary_make_hash(ary2);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='del'>-	v = RARRAY_AREF(ary1, i);</div><div class='del'>-	vv = (st_data_t)v;</div><div class='add'>+        v = RARRAY_AREF(ary1, i);</div><div class='add'>+        vv = (st_data_t)v;</div><div class='ctx'>         if (rb_hash_stlike_delete(hash, &amp;vv, 0)) {</div><div class='del'>-	    rb_ary_push(ary3, v);</div><div class='del'>-	}</div><div class='add'>+            rb_ary_push(ary3, v);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     ary_recycle_hash(hash);</div><div class='ctx'> </div><div class='ctx'>     return ary3;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    array.intersection(*other_arrays) -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Array containing each element found both in +self+</div><div class='add'>+ *  and in all of the given Arrays +other_arrays+;</div><div class='add'>+ *  duplicates are omitted; items are compared using &lt;tt&gt;eql?&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2, 3].intersection([0, 1, 2], [0, 1, 3]) # =&gt; [0, 1]</div><div class='add'>+ *    [0, 0, 1, 1, 2, 3].intersection([0, 1, 2], [0, 1, 3]) # =&gt; [0, 1]</div><div class='add'>+ *</div><div class='add'>+ *  Preserves order from +self+:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2].intersection([2, 1, 0]) # =&gt; [0, 1, 2]</div><div class='add'>+ *</div><div class='add'>+ *  Returns a copy of +self+ if no arguments given.</div><div class='add'>+ *</div><div class='add'>+ *  Related: Array#&amp;.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_intersection_multi(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE result = rb_ary_dup(ary);</div><div class='add'>+    int i;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; argc; i++) {</div><div class='add'>+        result = rb_ary_and(result, argv[i]);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> ary_hash_orset(st_data_t *key, st_data_t *value, st_data_t arg, int existing)</div><div class='ctx'> {</div><div class='hunk'>@@ -4626,17 +5793,17 @@ rb_ary_union_hash(VALUE hash, VALUE ary2)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary | other_ary     -&gt; new_ary</div><div class='del'>- *</div><div class='del'>- *  Set Union --- Returns a new array by joining +ary+ with +other_ary+,</div><div class='del'>- *  excluding any duplicates and preserving the order from the given arrays.</div><div class='add'>+ *    array | other_array -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *  It compares elements using their #hash and #eql? methods for efficiency.</div><div class='add'>+ *  Returns the union of +array+ and \Array +other_array+;</div><div class='add'>+ *  duplicates are removed; order is preserved;</div><div class='add'>+ *  items are compared using &lt;tt&gt;eql?&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *     [ "a", "b", "c" ] | [ "c", "d", "a" ]    #=&gt; [ "a", "b", "c", "d" ]</div><div class='del'>- *     [ "c", "d", "a" ] | [ "a", "b", "c" ]    #=&gt; [ "c", "d", "a", "b" ]</div><div class='add'>+ *    [0, 1] | [2, 3] # =&gt; [0, 1, 2, 3]</div><div class='add'>+ *    [0, 1, 1] | [2, 2, 3] # =&gt; [0, 1, 2, 3]</div><div class='add'>+ *    [0, 1, 2] | [3, 2, 1, 0] # =&gt; [0, 1, 2, 3]</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#union.</div><div class='add'>+ *  Related: Array#union.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4646,10 +5813,10 @@ rb_ary_or(VALUE ary1, VALUE ary2)</div><div class='ctx'> </div><div class='ctx'>     ary2 = to_ary(ary2);</div><div class='ctx'>     if (RARRAY_LEN(ary1) + RARRAY_LEN(ary2) &lt;= SMALL_ARRAY_LEN) {</div><div class='del'>-	ary3 = rb_ary_new();</div><div class='add'>+        ary3 = rb_ary_new();</div><div class='ctx'>         rb_ary_union(ary3, ary1);</div><div class='ctx'>         rb_ary_union(ary3, ary2);</div><div class='del'>-	return ary3;</div><div class='add'>+        return ary3;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     hash = ary_make_hash(ary1);</div><div class='hunk'>@@ -4662,18 +5829,18 @@ rb_ary_or(VALUE ary1, VALUE ary2)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.union(other_ary1, other_ary2, ...)   -&gt; ary</div><div class='add'>+ *    array.union(*other_arrays) -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *  Set Union --- Returns a new array by joining &lt;code&gt;other_ary&lt;/code&gt;s with +self+,</div><div class='del'>- *  excluding any duplicates and preserving the order from the given arrays.</div><div class='add'>+ *  Returns a new \Array that is the union of +self+ and all given Arrays +other_arrays+;</div><div class='add'>+ *  duplicates are removed;  order is preserved;  items are compared using &lt;tt&gt;eql?&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *  It compares elements using their #hash and #eql? methods for efficiency.</div><div class='add'>+ *    [0, 1, 2, 3].union([4, 5], [6, 7]) # =&gt; [0, 1, 2, 3, 4, 5, 6, 7]</div><div class='add'>+ *    [0, 1, 1].union([2, 1], [3, 1]) # =&gt; [0, 1, 2, 3]</div><div class='add'>+ *    [0, 1, 2, 3].union([3, 2], [1, 0]) # =&gt; [0, 1, 2, 3]</div><div class='ctx'>  *</div><div class='del'>- *     [ "a", "b", "c" ].union( [ "c", "d", "a" ] )    #=&gt; [ "a", "b", "c", "d" ]</div><div class='del'>- *     [ "a" ].union( ["e", "b"], ["a", "c", "b"] )    #=&gt; [ "a", "e", "b", "c" ]</div><div class='del'>- *     [ "a" ].union #=&gt; [ "a" ]</div><div class='add'>+ *  Returns a copy of +self+ if no arguments given.</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#|.</div><div class='add'>+ *  Related: Array#|.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4684,7 +5851,7 @@ rb_ary_union_multi(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     VALUE hash, ary_union;</div><div class='ctx'> </div><div class='ctx'>     sum = RARRAY_LEN(ary);</div><div class='del'>-    for (i = 0; i &lt; argc; i++){</div><div class='add'>+    for (i = 0; i &lt; argc; i++) {</div><div class='ctx'>         argv[i] = to_ary(argv[i]);</div><div class='ctx'>         sum += RARRAY_LEN(argv[i]);</div><div class='ctx'>     }</div><div class='hunk'>@@ -4708,30 +5875,191 @@ rb_ary_union_multi(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.max                     -&gt; obj</div><div class='del'>- *     ary.max {|a, b| block}      -&gt; obj</div><div class='del'>- *     ary.max(n)                  -&gt; array</div><div class='del'>- *     ary.max(n) {|a, b| block}   -&gt; array</div><div class='add'>+ *     ary.intersect?(other_ary)   -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if the array and +other_ary+ have at least one element in</div><div class='add'>+ *  common, otherwise returns +false+:</div><div class='add'>+ *</div><div class='add'>+ *     a = [ 1, 2, 3 ]</div><div class='add'>+ *     b = [ 3, 4, 5 ]</div><div class='add'>+ *     c = [ 5, 6, 7 ]</div><div class='add'>+ *     a.intersect?(b)   #=&gt; true</div><div class='add'>+ *     a.intersect?(c)   #=&gt; false</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_intersect_p(VALUE ary1, VALUE ary2)</div><div class='add'>+{</div><div class='add'>+    VALUE hash, v, result, shorter, longer;</div><div class='add'>+    st_data_t vv;</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    ary2 = to_ary(ary2);</div><div class='add'>+    if (RARRAY_LEN(ary1) == 0 || RARRAY_LEN(ary2) == 0) return Qfalse;</div><div class='add'>+</div><div class='add'>+    if (RARRAY_LEN(ary1) &lt;= SMALL_ARRAY_LEN &amp;&amp; RARRAY_LEN(ary2) &lt;= SMALL_ARRAY_LEN) {</div><div class='add'>+        for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+            v = RARRAY_AREF(ary1, i);</div><div class='add'>+            if (rb_ary_includes_by_eql(ary2, v)) return Qtrue;</div><div class='add'>+        }</div><div class='add'>+        return Qfalse;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    shorter = ary1;</div><div class='add'>+    longer = ary2;</div><div class='add'>+    if (RARRAY_LEN(ary1) &gt; RARRAY_LEN(ary2)) {</div><div class='add'>+        longer = ary1;</div><div class='add'>+        shorter = ary2;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    hash = ary_make_hash(shorter);</div><div class='add'>+    result = Qfalse;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(longer); i++) {</div><div class='add'>+        v = RARRAY_AREF(longer, i);</div><div class='add'>+        vv = (st_data_t)v;</div><div class='add'>+        if (rb_hash_stlike_lookup(hash, vv, 0)) {</div><div class='add'>+            result = Qtrue;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    ary_recycle_hash(hash);</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_max_generic(VALUE ary, long i, VALUE vmax)</div><div class='add'>+{</div><div class='add'>+    RUBY_ASSERT(i &gt; 0 &amp;&amp; i &lt; RARRAY_LEN(ary));</div><div class='add'>+</div><div class='add'>+    VALUE v;</div><div class='add'>+    for (; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='add'>+        v = RARRAY_AREF(ary, i);</div><div class='add'>+</div><div class='add'>+        if (rb_cmpint(rb_funcallv(vmax, id_cmp, 1, &amp;v), vmax, v) &lt; 0) {</div><div class='add'>+            vmax = v;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return vmax;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_max_opt_fixnum(VALUE ary, long i, VALUE vmax)</div><div class='add'>+{</div><div class='add'>+    const long n = RARRAY_LEN(ary);</div><div class='add'>+    RUBY_ASSERT(i &gt; 0 &amp;&amp; i &lt; n);</div><div class='add'>+    RUBY_ASSERT(FIXNUM_P(vmax));</div><div class='add'>+</div><div class='add'>+    VALUE v;</div><div class='add'>+    for (; i &lt; n; ++i) {</div><div class='add'>+        v = RARRAY_AREF(ary, i);</div><div class='add'>+</div><div class='add'>+        if (FIXNUM_P(v)) {</div><div class='add'>+            if ((long)vmax &lt; (long)v) {</div><div class='add'>+                vmax = v;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return ary_max_generic(ary, i, vmax);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return vmax;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_max_opt_float(VALUE ary, long i, VALUE vmax)</div><div class='add'>+{</div><div class='add'>+    const long n = RARRAY_LEN(ary);</div><div class='add'>+    RUBY_ASSERT(i &gt; 0 &amp;&amp; i &lt; n);</div><div class='add'>+    RUBY_ASSERT(RB_FLOAT_TYPE_P(vmax));</div><div class='add'>+</div><div class='add'>+    VALUE v;</div><div class='add'>+    for (; i &lt; n; ++i) {</div><div class='add'>+        v = RARRAY_AREF(ary, i);</div><div class='add'>+</div><div class='add'>+        if (RB_FLOAT_TYPE_P(v)) {</div><div class='add'>+            if (rb_float_cmp(vmax, v) &lt; 0) {</div><div class='add'>+                vmax = v;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return ary_max_generic(ary, i, vmax);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return vmax;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_max_opt_string(VALUE ary, long i, VALUE vmax)</div><div class='add'>+{</div><div class='add'>+    const long n = RARRAY_LEN(ary);</div><div class='add'>+    RUBY_ASSERT(i &gt; 0 &amp;&amp; i &lt; n);</div><div class='add'>+    RUBY_ASSERT(STRING_P(vmax));</div><div class='add'>+</div><div class='add'>+    VALUE v;</div><div class='add'>+    for (; i &lt; n; ++i) {</div><div class='add'>+        v = RARRAY_AREF(ary, i);</div><div class='add'>+</div><div class='add'>+        if (STRING_P(v)) {</div><div class='add'>+            if (rb_str_cmp(vmax, v) &lt; 0) {</div><div class='add'>+                vmax = v;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return ary_max_generic(ary, i, vmax);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return vmax;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    array.max -&gt; element</div><div class='add'>+ *    array.max {|a, b| ... } -&gt; element</div><div class='add'>+ *    array.max(n) -&gt; new_array</div><div class='add'>+ *    array.max(n) {|a, b| ... } -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns one of the following:</div><div class='add'>+ *</div><div class='add'>+ *  - The maximum-valued element from +self+.</div><div class='add'>+ *  - A new \Array of maximum-valued elements selected from +self+.</div><div class='add'>+ *</div><div class='add'>+ *  When no block is given, each element in +self+ must respond to method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;</div><div class='add'>+ *  with an \Integer.</div><div class='add'>+ *</div><div class='add'>+ *  With no argument and no block, returns the element in +self+</div><div class='add'>+ *  having the maximum value per method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2].max # =&gt; 2</div><div class='add'>+ *</div><div class='add'>+ *  With an argument \Integer +n+ and no block, returns a new \Array with at most +n+ elements,</div><div class='add'>+ *  in descending order per method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2, 3].max(3) # =&gt; [3, 2, 1]</div><div class='add'>+ *    [0, 1, 2, 3].max(6) # =&gt; [3, 2, 1, 0]</div><div class='add'>+ *</div><div class='add'>+ *  When a block is given, the block must return an \Integer.</div><div class='add'>+ *</div><div class='add'>+ *  With a block and no argument, calls the block &lt;tt&gt;self.size-1&lt;/tt&gt; times to compare elements;</div><div class='add'>+ *  returns the element having the maximum value per the block:</div><div class='ctx'>  *</div><div class='del'>- *  Returns the object in _ary_ with the maximum value. The</div><div class='del'>- *  first form assumes all objects implement &lt;code&gt;Comparable&lt;/code&gt;;</div><div class='del'>- *  the second uses the block to return &lt;em&gt;a &lt;=&gt; b&lt;/em&gt;.</div><div class='add'>+ *    ['0', '00', '000'].max {|a, b| a.size &lt;=&gt; b.size } # =&gt; "000"</div><div class='ctx'>  *</div><div class='del'>- *     ary = %w(albatross dog horse)</div><div class='del'>- *     ary.max                                   #=&gt; "horse"</div><div class='del'>- *     ary.max {|a, b| a.length &lt;=&gt; b.length}    #=&gt; "albatross"</div><div class='add'>+ *  With an argument +n+ and a block, returns a new \Array with at most +n+ elements,</div><div class='add'>+ *  in descending order per the block:</div><div class='ctx'>  *</div><div class='del'>- *  If the +n+ argument is given, maximum +n+ elements are returned</div><div class='del'>- *  as an array.</div><div class='add'>+ *    ['0', '00', '000'].max(2) {|a, b| a.size &lt;=&gt; b.size } # =&gt; ["000", "00"]</div><div class='ctx'>  *</div><div class='del'>- *     ary = %w[albatross dog horse]</div><div class='del'>- *     ary.max(2)                                  #=&gt; ["horse", "dog"]</div><div class='del'>- *     ary.max(2) {|a, b| a.length &lt;=&gt; b.length }  #=&gt; ["albatross", "horse"]</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_max(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    struct cmp_opt_data cmp_opt = { 0, 0 };</div><div class='ctx'>     VALUE result = Qundef, v;</div><div class='ctx'>     VALUE num;</div><div class='ctx'>     long i;</div><div class='hunk'>@@ -4739,52 +6067,167 @@ rb_ary_max(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     if (rb_check_arity(argc, 0, 1) &amp;&amp; !NIL_P(num = argv[0]))</div><div class='ctx'>        return rb_nmin_run(ary, num, 0, 1, 1);</div><div class='ctx'> </div><div class='add'>+    const long n = RARRAY_LEN(ary);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	   v = RARRAY_AREF(ary, i);</div><div class='del'>-	   if (result == Qundef || rb_cmpint(rb_yield_values(2, v, result), v, result) &gt; 0) {</div><div class='del'>-	       result = v;</div><div class='del'>-	   }</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+           v = RARRAY_AREF(ary, i);</div><div class='add'>+           if (UNDEF_P(result) || rb_cmpint(rb_yield_values(2, v, result), v, result) &gt; 0) {</div><div class='add'>+               result = v;</div><div class='add'>+           }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	   v = RARRAY_AREF(ary, i);</div><div class='del'>-	   if (result == Qundef || OPTIMIZED_CMP(v, result, cmp_opt) &gt; 0) {</div><div class='del'>-	       result = v;</div><div class='del'>-	   }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    if (result == Qundef) return Qnil;</div><div class='add'>+    else if (n &gt; 0) {</div><div class='add'>+        result = RARRAY_AREF(ary, 0);</div><div class='add'>+        if (n &gt; 1) {</div><div class='add'>+            if (FIXNUM_P(result) &amp;&amp; CMP_OPTIMIZABLE(INTEGER)) {</div><div class='add'>+                return ary_max_opt_fixnum(ary, 1, result);</div><div class='add'>+            }</div><div class='add'>+            else if (STRING_P(result) &amp;&amp; CMP_OPTIMIZABLE(STRING)) {</div><div class='add'>+                return ary_max_opt_string(ary, 1, result);</div><div class='add'>+            }</div><div class='add'>+            else if (RB_FLOAT_TYPE_P(result) &amp;&amp; CMP_OPTIMIZABLE(FLOAT)) {</div><div class='add'>+                return ary_max_opt_float(ary, 1, result);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                return ary_max_generic(ary, 1, result);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (UNDEF_P(result)) return Qnil;</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+ary_min_generic(VALUE ary, long i, VALUE vmin)</div><div class='add'>+{</div><div class='add'>+    RUBY_ASSERT(i &gt; 0 &amp;&amp; i &lt; RARRAY_LEN(ary));</div><div class='add'>+</div><div class='add'>+    VALUE v;</div><div class='add'>+    for (; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='add'>+        v = RARRAY_AREF(ary, i);</div><div class='add'>+</div><div class='add'>+        if (rb_cmpint(rb_funcallv(vmin, id_cmp, 1, &amp;v), vmin, v) &gt; 0) {</div><div class='add'>+            vmin = v;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return vmin;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_min_opt_fixnum(VALUE ary, long i, VALUE vmin)</div><div class='add'>+{</div><div class='add'>+    const long n = RARRAY_LEN(ary);</div><div class='add'>+    RUBY_ASSERT(i &gt; 0 &amp;&amp; i &lt; n);</div><div class='add'>+    RUBY_ASSERT(FIXNUM_P(vmin));</div><div class='add'>+</div><div class='add'>+    VALUE a;</div><div class='add'>+    for (; i &lt; n; ++i) {</div><div class='add'>+        a = RARRAY_AREF(ary, i);</div><div class='add'>+</div><div class='add'>+        if (FIXNUM_P(a)) {</div><div class='add'>+            if ((long)vmin &gt; (long)a) {</div><div class='add'>+                vmin = a;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return ary_min_generic(ary, i, vmin);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return vmin;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_min_opt_float(VALUE ary, long i, VALUE vmin)</div><div class='add'>+{</div><div class='add'>+    const long n = RARRAY_LEN(ary);</div><div class='add'>+    RUBY_ASSERT(i &gt; 0 &amp;&amp; i &lt; n);</div><div class='add'>+    RUBY_ASSERT(RB_FLOAT_TYPE_P(vmin));</div><div class='add'>+</div><div class='add'>+    VALUE a;</div><div class='add'>+    for (; i &lt; n; ++i) {</div><div class='add'>+        a = RARRAY_AREF(ary, i);</div><div class='add'>+</div><div class='add'>+        if (RB_FLOAT_TYPE_P(a)) {</div><div class='add'>+            if (rb_float_cmp(vmin, a) &gt; 0) {</div><div class='add'>+                vmin = a;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return ary_min_generic(ary, i, vmin);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return vmin;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_min_opt_string(VALUE ary, long i, VALUE vmin)</div><div class='add'>+{</div><div class='add'>+    const long n = RARRAY_LEN(ary);</div><div class='add'>+    RUBY_ASSERT(i &gt; 0 &amp;&amp; i &lt; n);</div><div class='add'>+    RUBY_ASSERT(STRING_P(vmin));</div><div class='add'>+</div><div class='add'>+    VALUE a;</div><div class='add'>+    for (; i &lt; n; ++i) {</div><div class='add'>+        a = RARRAY_AREF(ary, i);</div><div class='add'>+</div><div class='add'>+        if (STRING_P(a)) {</div><div class='add'>+            if (rb_str_cmp(vmin, a) &gt; 0) {</div><div class='add'>+                vmin = a;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return ary_min_generic(ary, i, vmin);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return vmin;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.min                     -&gt; obj</div><div class='del'>- *     ary.min {| a,b | block }    -&gt; obj</div><div class='del'>- *     ary.min(n)                  -&gt; array</div><div class='del'>- *     ary.min(n) {| a,b | block } -&gt; array</div><div class='add'>+ *    array.min -&gt; element</div><div class='add'>+ *    array.min { |a, b| ... } -&gt; element</div><div class='add'>+ *    array.min(n) -&gt; new_array</div><div class='add'>+ *    array.min(n) { |a, b| ... } -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns one of the following:</div><div class='add'>+ *</div><div class='add'>+ *  - The minimum-valued element from +self+.</div><div class='add'>+ *  - A new \Array of minimum-valued elements selected from +self+.</div><div class='add'>+ *</div><div class='add'>+ *  When no block is given, each element in +self+ must respond to method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;</div><div class='add'>+ *  with an \Integer.</div><div class='add'>+ *</div><div class='add'>+ *  With no argument and no block, returns the element in +self+</div><div class='add'>+ *  having the minimum value per method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2].min # =&gt; 0</div><div class='ctx'>  *</div><div class='del'>- *  Returns the object in _ary_ with the minimum value. The</div><div class='del'>- *  first form assumes all objects implement &lt;code&gt;Comparable&lt;/code&gt;;</div><div class='del'>- *  the second uses the block to return &lt;em&gt;a &lt;=&gt; b&lt;/em&gt;.</div><div class='add'>+ *  With \Integer argument +n+ and no block, returns a new \Array with at most +n+ elements,</div><div class='add'>+ *  in ascending order per method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *     ary = %w(albatross dog horse)</div><div class='del'>- *     ary.min                                   #=&gt; "albatross"</div><div class='del'>- *     ary.min {|a, b| a.length &lt;=&gt; b.length}    #=&gt; "dog"</div><div class='add'>+ *    [0, 1, 2, 3].min(3) # =&gt; [0, 1, 2]</div><div class='add'>+ *    [0, 1, 2, 3].min(6) # =&gt; [0, 1, 2, 3]</div><div class='ctx'>  *</div><div class='del'>- *  If the +n+ argument is given, minimum +n+ elements are returned</div><div class='del'>- *  as an array.</div><div class='add'>+ *  When a block is given, the block must return an Integer.</div><div class='add'>+ *</div><div class='add'>+ *  With a block and no argument, calls the block &lt;tt&gt;self.size-1&lt;/tt&gt; times to compare elements;</div><div class='add'>+ *  returns the element having the minimum value per the block:</div><div class='add'>+ *</div><div class='add'>+ *    ['0', '00', '000'].min { |a, b| a.size &lt;=&gt; b.size } # =&gt; "0"</div><div class='add'>+ *</div><div class='add'>+ *  With an argument +n+ and a block, returns a new \Array with at most +n+ elements,</div><div class='add'>+ *  in ascending order per the block:</div><div class='add'>+ *</div><div class='add'>+ *    ['0', '00', '000'].min(2) {|a, b| a.size &lt;=&gt; b.size } # =&gt; ["0", "00"]</div><div class='ctx'>  *</div><div class='del'>- *     ary = %w[albatross dog horse]</div><div class='del'>- *     ary.min(2)                                  #=&gt; ["albatross", "dog"]</div><div class='del'>- *     ary.min(2) {|a, b| a.length &lt;=&gt; b.length }  #=&gt; ["dog", "horse"]</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_min(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    struct cmp_opt_data cmp_opt = { 0, 0 };</div><div class='ctx'>     VALUE result = Qundef, v;</div><div class='ctx'>     VALUE num;</div><div class='ctx'>     long i;</div><div class='hunk'>@@ -4792,26 +6235,68 @@ rb_ary_min(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     if (rb_check_arity(argc, 0, 1) &amp;&amp; !NIL_P(num = argv[0]))</div><div class='ctx'>        return rb_nmin_run(ary, num, 0, 0, 1);</div><div class='ctx'> </div><div class='add'>+    const long n = RARRAY_LEN(ary);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	   v = RARRAY_AREF(ary, i);</div><div class='del'>-	   if (result == Qundef || rb_cmpint(rb_yield_values(2, v, result), v, result) &lt; 0) {</div><div class='del'>-	       result = v;</div><div class='del'>-	   }</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+           v = RARRAY_AREF(ary, i);</div><div class='add'>+           if (UNDEF_P(result) || rb_cmpint(rb_yield_values(2, v, result), v, result) &lt; 0) {</div><div class='add'>+               result = v;</div><div class='add'>+           }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	   v = RARRAY_AREF(ary, i);</div><div class='del'>-	   if (result == Qundef || OPTIMIZED_CMP(v, result, cmp_opt) &lt; 0) {</div><div class='del'>-	       result = v;</div><div class='del'>-	   }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    if (result == Qundef) return Qnil;</div><div class='add'>+    else if (n &gt; 0) {</div><div class='add'>+        result = RARRAY_AREF(ary, 0);</div><div class='add'>+        if (n &gt; 1) {</div><div class='add'>+            if (FIXNUM_P(result) &amp;&amp; CMP_OPTIMIZABLE(INTEGER)) {</div><div class='add'>+                return ary_min_opt_fixnum(ary, 1, result);</div><div class='add'>+            }</div><div class='add'>+            else if (STRING_P(result) &amp;&amp; CMP_OPTIMIZABLE(STRING)) {</div><div class='add'>+                return ary_min_opt_string(ary, 1, result);</div><div class='add'>+            }</div><div class='add'>+            else if (RB_FLOAT_TYPE_P(result) &amp;&amp; CMP_OPTIMIZABLE(FLOAT)) {</div><div class='add'>+                return ary_min_opt_float(ary, 1, result);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                return ary_min_generic(ary, 1, result);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (UNDEF_P(result)) return Qnil;</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    array.minmax -&gt; [min_val, max_val]</div><div class='add'>+ *    array.minmax {|a, b| ... } -&gt; [min_val, max_val]</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new 2-element \Array containing the minimum and maximum values</div><div class='add'>+ *  from +self+, either per method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; or per a given block:.</div><div class='add'>+ *</div><div class='add'>+ *  When no block is given, each element in +self+ must respond to method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;</div><div class='add'>+ *  with an \Integer;</div><div class='add'>+ *  returns a new 2-element \Array containing the minimum and maximum values</div><div class='add'>+ *  from +self+, per method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2].minmax # =&gt; [0, 2]</div><div class='add'>+ *</div><div class='add'>+ *  When a block is given, the block must return an \Integer;</div><div class='add'>+ *  the block is called &lt;tt&gt;self.size-1&lt;/tt&gt; times to compare elements;</div><div class='add'>+ *  returns a new 2-element \Array containing the minimum and maximum values</div><div class='add'>+ *  from +self+, per the block:</div><div class='add'>+ *</div><div class='add'>+ *    ['0', '00', '000'].minmax {|a, b| a.size &lt;=&gt; b.size } # =&gt; ["0", "000"]</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_minmax(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+        return rb_call_super(0, NULL);</div><div class='add'>+    }</div><div class='add'>+    return rb_assoc_new(rb_ary_min(0, 0, ary), rb_ary_max(0, 0, ary));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> push_value(st_data_t key, st_data_t val, st_data_t ary)</div><div class='ctx'> {</div><div class='hunk'>@@ -4821,31 +6306,33 @@ push_value(st_data_t key, st_data_t val, st_data_t ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.uniq!                -&gt; ary or nil</div><div class='del'>- *     ary.uniq! {|item| ...}   -&gt; ary or nil</div><div class='add'>+ *    array.uniq! -&gt; self or nil</div><div class='add'>+ *    array.uniq! {|element| ... } -&gt; self or nil</div><div class='ctx'>  *</div><div class='del'>- *  Removes duplicate elements from +self+.</div><div class='add'>+ *  Removes duplicate elements from +self+, the first occurrence always being retained;</div><div class='add'>+ *  returns +self+ if any elements removed, +nil+ otherwise.</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given, it will use the return value of the block for</div><div class='del'>- *  comparison.</div><div class='add'>+ *  With no block given, identifies and removes elements using method &lt;tt&gt;eql?&lt;/tt&gt;</div><div class='add'>+ *  to compare.</div><div class='ctx'>  *</div><div class='del'>- *  It compares values using their #hash and #eql? methods for efficiency.</div><div class='add'>+ *  Returns +self+ if any elements removed:</div><div class='ctx'>  *</div><div class='del'>- *  +self+ is traversed in order, and the first occurrence is kept.</div><div class='add'>+ *    a = [0, 0, 1, 1, 2, 2]</div><div class='add'>+ *    a.uniq! # =&gt; [0, 1, 2]</div><div class='ctx'>  *</div><div class='del'>- *  Returns +nil+ if no changes are made (that is, no duplicates are found).</div><div class='add'>+ *  Returns +nil+ if no elements removed.</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "a", "b", "b", "c" ]</div><div class='del'>- *     a.uniq!   # =&gt; ["a", "b", "c"]</div><div class='add'>+ *  With a block given, calls the block for each element;</div><div class='add'>+ *  identifies (using method &lt;tt&gt;eql?&lt;/tt&gt;) and removes</div><div class='add'>+ *  elements for which the block returns duplicate values.</div><div class='ctx'>  *</div><div class='del'>- *     b = [ "a", "b", "c" ]</div><div class='del'>- *     b.uniq!   # =&gt; nil</div><div class='add'>+ *  Returns +self+ if any elements removed:</div><div class='ctx'>  *</div><div class='del'>- *     c = [["student","sam"], ["student","george"], ["teacher","matz"]]</div><div class='del'>- *     c.uniq! {|s| s.first}   # =&gt; [["student", "sam"], ["teacher", "matz"]]</div><div class='add'>+ *    a = ['a', 'aa', 'aaa', 'b', 'bb', 'bbb']</div><div class='add'>+ *    a.uniq! {|element| element.size } # =&gt; ['a', 'aa', 'aaa']</div><div class='ctx'>  *</div><div class='add'>+ *  Returns +nil+ if no elements removed.</div><div class='ctx'>  */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_uniq_bang(VALUE ary)</div><div class='ctx'> {</div><div class='hunk'>@@ -4856,19 +6343,19 @@ rb_ary_uniq_bang(VALUE ary)</div><div class='ctx'>     if (RARRAY_LEN(ary) &lt;= 1)</div><div class='ctx'>         return Qnil;</div><div class='ctx'>     if (rb_block_given_p())</div><div class='del'>-	hash = ary_make_hash_by(ary);</div><div class='add'>+        hash = ary_make_hash_by(ary);</div><div class='ctx'>     else</div><div class='del'>-	hash = ary_make_hash(ary);</div><div class='add'>+        hash = ary_make_hash(ary);</div><div class='ctx'> </div><div class='ctx'>     hash_size = RHASH_SIZE(hash);</div><div class='ctx'>     if (RARRAY_LEN(ary) == hash_size) {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     rb_ary_modify_check(ary);</div><div class='ctx'>     ARY_SET_LEN(ary, 0);</div><div class='ctx'>     if (ARY_SHARED_P(ary) &amp;&amp; !ARY_EMBED_P(ary)) {</div><div class='del'>-	rb_ary_unshare(ary);</div><div class='del'>-	FL_SET_EMBED(ary);</div><div class='add'>+        rb_ary_unshare(ary);</div><div class='add'>+        FL_SET_EMBED(ary);</div><div class='ctx'>     }</div><div class='ctx'>     ary_resize_capa(ary, hash_size);</div><div class='ctx'>     rb_hash_foreach(hash, push_value, ary);</div><div class='hunk'>@@ -4879,22 +6366,24 @@ rb_ary_uniq_bang(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.uniq                -&gt; new_ary</div><div class='del'>- *     ary.uniq {|item| ...}   -&gt; new_ary</div><div class='del'>- *</div><div class='del'>- *  Returns a new array by removing duplicate values in +self+.</div><div class='add'>+ *    array.uniq -&gt; new_array</div><div class='add'>+ *    array.uniq {|element| ... } -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given, it will use the return value of the block for comparison.</div><div class='add'>+ *  Returns a new \Array containing those elements from +self+ that are not duplicates,</div><div class='add'>+ *  the first occurrence always being retained.</div><div class='ctx'>  *</div><div class='del'>- *  It compares values using their #hash and #eql? methods for efficiency.</div><div class='add'>+ *  With no block given, identifies and omits duplicates using method &lt;tt&gt;eql?&lt;/tt&gt;</div><div class='add'>+ *  to compare:</div><div class='ctx'>  *</div><div class='del'>- *  +self+ is traversed in order, and the first occurrence is kept.</div><div class='add'>+ *    a = [0, 0, 1, 1, 2, 2]</div><div class='add'>+ *    a.uniq # =&gt; [0, 1, 2]</div><div class='ctx'>  *</div><div class='del'>- *     a = [ "a", "a", "b", "b", "c" ]</div><div class='del'>- *     a.uniq   # =&gt; ["a", "b", "c"]</div><div class='add'>+ *  With a block given, calls the block for each element;</div><div class='add'>+ *  identifies (using method &lt;tt&gt;eql?&lt;/tt&gt;) and omits duplicate values,</div><div class='add'>+ *  that is, those elements for which the block returns the same value:</div><div class='ctx'>  *</div><div class='del'>- *     b = [["student","sam"], ["student","george"], ["teacher","matz"]]</div><div class='del'>- *     b.uniq {|s| s.first}   # =&gt; [["student", "sam"], ["teacher", "matz"]]</div><div class='add'>+ *    a = ['a', 'aa', 'aaa', 'b', 'bb', 'bbb']</div><div class='add'>+ *    a.uniq {|element| element.size } # =&gt; ["a", "aa", "aaa"]</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -4903,32 +6392,32 @@ rb_ary_uniq(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     VALUE hash, uniq;</div><div class='ctx'> </div><div class='del'>-    if (RARRAY_LEN(ary) &lt;= 1)</div><div class='del'>-        return rb_ary_dup(ary);</div><div class='del'>-    if (rb_block_given_p()) {</div><div class='del'>-	hash = ary_make_hash_by(ary);</div><div class='del'>-	uniq = rb_hash_values(hash);</div><div class='add'>+    if (RARRAY_LEN(ary) &lt;= 1) {</div><div class='add'>+        hash = 0;</div><div class='add'>+        uniq = rb_ary_dup(ary);</div><div class='add'>+    }</div><div class='add'>+    else if (rb_block_given_p()) {</div><div class='add'>+        hash = ary_make_hash_by(ary);</div><div class='add'>+        uniq = rb_hash_values(hash);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	hash = ary_make_hash(ary);</div><div class='del'>-	uniq = rb_hash_values(hash);</div><div class='add'>+        hash = ary_make_hash(ary);</div><div class='add'>+        uniq = rb_hash_values(hash);</div><div class='add'>+    }</div><div class='add'>+    if (hash) {</div><div class='add'>+        ary_recycle_hash(hash);</div><div class='ctx'>     }</div><div class='del'>-    RBASIC_SET_CLASS(uniq, rb_obj_class(ary));</div><div class='del'>-    ary_recycle_hash(hash);</div><div class='ctx'> </div><div class='ctx'>     return uniq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.compact!    -&gt; ary  or  nil</div><div class='add'>+ *    array.compact! -&gt; self or nil</div><div class='ctx'>  *</div><div class='del'>- *  Removes +nil+ elements from the array.</div><div class='add'>+ *  Removes all +nil+ elements from +self+.</div><div class='ctx'>  *</div><div class='del'>- *  Returns +nil+ if no changes were made, otherwise returns the array.</div><div class='del'>- *</div><div class='del'>- *     [ "a", nil, "b", nil, "c" ].compact! #=&gt; [ "a", "b", "c" ]</div><div class='del'>- *     [ "a", "b", "c" ].compact!           #=&gt; nil</div><div class='add'>+ *  Returns +self+ if any elements removed, otherwise +nil+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4942,12 +6431,12 @@ rb_ary_compact_bang(VALUE ary)</div><div class='ctx'>     end = p + RARRAY_LEN(ary);</div><div class='ctx'> </div><div class='ctx'>     while (t &lt; end) {</div><div class='del'>-	if (NIL_P(*t)) t++;</div><div class='del'>-	else *p++ = *t++;</div><div class='add'>+        if (NIL_P(*t)) t++;</div><div class='add'>+        else *p++ = *t++;</div><div class='ctx'>     }</div><div class='ctx'>     n = p - RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='ctx'>     if (RARRAY_LEN(ary) == n) {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     ary_resize_smaller(ary, n);</div><div class='ctx'> </div><div class='hunk'>@@ -4956,12 +6445,12 @@ rb_ary_compact_bang(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.compact     -&gt; new_ary</div><div class='add'>+ *    array.compact -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *  Returns a copy of +self+ with all +nil+ elements removed.</div><div class='add'>+ *  Returns a new \Array containing all non-+nil+ elements from +self+:</div><div class='ctx'>  *</div><div class='del'>- *     [ "a", nil, "b", nil, "c", nil ].compact</div><div class='del'>- *                       #=&gt; [ "a", "b", "c" ]</div><div class='add'>+ *    a = [nil, 0, nil, 1, nil, 2, nil]</div><div class='add'>+ *    a.compact # =&gt; [0, 1, 2]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4974,23 +6463,29 @@ rb_ary_compact(VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.count                   -&gt; int</div><div class='del'>- *     ary.count(obj)              -&gt; int</div><div class='del'>- *     ary.count {|item| block}    -&gt; int</div><div class='add'>+ *    array.count -&gt; an_integer</div><div class='add'>+ *    array.count(obj) -&gt; an_integer</div><div class='add'>+ *    array.count {|element| ... } -&gt; an_integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns a count of specified elements.</div><div class='ctx'>  *</div><div class='del'>- *  Returns the number of elements.</div><div class='add'>+ *  With no argument and no block, returns the count of all elements:</div><div class='ctx'>  *</div><div class='del'>- *  If an argument is given, counts the number of elements which equal +obj+</div><div class='del'>- *  using &lt;code&gt;==&lt;/code&gt;.</div><div class='add'>+ *    [0, 1, 2].count # =&gt; 3</div><div class='add'>+ *    [].count # =&gt; 0</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given, counts the number of elements for which the block</div><div class='del'>- *  returns a true value.</div><div class='add'>+ *  With argument +obj+, returns the count of elements &lt;tt&gt;==&lt;/tt&gt; to +obj+:</div><div class='ctx'>  *</div><div class='del'>- *     ary = [1, 2, 4, 2]</div><div class='del'>- *     ary.count                  #=&gt; 4</div><div class='del'>- *     ary.count(2)               #=&gt; 2</div><div class='del'>- *     ary.count {|x| x%2 == 0}   #=&gt; 3</div><div class='add'>+ *    [0, 1, 2, 0.0].count(0) # =&gt; 2</div><div class='add'>+ *    [0, 1, 2].count(3) # =&gt; 0</div><div class='ctx'>  *</div><div class='add'>+ *  With no argument and a block given, calls the block with each element;</div><div class='add'>+ *  returns the count of elements for which the block returns a truthy value:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2, 3].count {|element| element &gt; 1} # =&gt; 2</div><div class='add'>+ *</div><div class='add'>+ *  With argument +obj+ and a block given, issues a warning, ignores the block,</div><div class='add'>+ *  and returns the count of elements &lt;tt&gt;==&lt;/tt&gt; to +obj+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4999,106 +6494,151 @@ rb_ary_count(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     long i, n = 0;</div><div class='ctx'> </div><div class='ctx'>     if (rb_check_arity(argc, 0, 1) == 0) {</div><div class='del'>-	VALUE v;</div><div class='add'>+        VALUE v;</div><div class='ctx'> </div><div class='del'>-	if (!rb_block_given_p())</div><div class='del'>-	    return LONG2NUM(RARRAY_LEN(ary));</div><div class='add'>+        if (!rb_block_given_p())</div><div class='add'>+            return LONG2NUM(RARRAY_LEN(ary));</div><div class='ctx'> </div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	    v = RARRAY_AREF(ary, i);</div><div class='del'>-	    if (RTEST(rb_yield(v))) n++;</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+            v = RARRAY_AREF(ary, i);</div><div class='add'>+            if (RTEST(rb_yield(v))) n++;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         VALUE obj = argv[0];</div><div class='ctx'> </div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    rb_warn("given block not used");</div><div class='del'>-	}</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	    if (rb_equal(RARRAY_AREF(ary, i), obj)) n++;</div><div class='del'>-	}</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            rb_warn("given block not used");</div><div class='add'>+        }</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+            if (rb_equal(RARRAY_AREF(ary, i), obj)) n++;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return LONG2NUM(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-flatten(VALUE ary, int level, int *modified)</div><div class='add'>+flatten(VALUE ary, int level)</div><div class='ctx'> {</div><div class='del'>-    long i = 0;</div><div class='del'>-    VALUE stack, result, tmp, elt;</div><div class='del'>-    st_table *memo;</div><div class='add'>+    long i;</div><div class='add'>+    VALUE stack, result, tmp = 0, elt, vmemo;</div><div class='add'>+    st_table *memo = 0;</div><div class='ctx'>     st_data_t id;</div><div class='ctx'> </div><div class='del'>-    stack = ary_new(0, ARY_DEFAULT_SIZE);</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+        elt = RARRAY_AREF(ary, i);</div><div class='add'>+        tmp = rb_check_array_type(elt);</div><div class='add'>+        if (!NIL_P(tmp)) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (i == RARRAY_LEN(ary)) {</div><div class='add'>+        return ary;</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     result = ary_new(0, RARRAY_LEN(ary));</div><div class='del'>-    memo = st_init_numtable();</div><div class='del'>-    st_insert(memo, (st_data_t)ary, (st_data_t)Qtrue);</div><div class='del'>-    *modified = 0;</div><div class='add'>+    ary_memcpy(result, 0, i, RARRAY_CONST_PTR_TRANSIENT(ary));</div><div class='add'>+    ARY_SET_LEN(result, i);</div><div class='add'>+</div><div class='add'>+    stack = ary_new(0, ARY_DEFAULT_SIZE);</div><div class='add'>+    rb_ary_push(stack, ary);</div><div class='add'>+    rb_ary_push(stack, LONG2NUM(i + 1));</div><div class='add'>+</div><div class='add'>+    if (level &lt; 0) {</div><div class='add'>+        vmemo = rb_hash_new();</div><div class='add'>+        RBASIC_CLEAR_CLASS(vmemo);</div><div class='add'>+        memo = st_init_numtable();</div><div class='add'>+        rb_hash_st_table_set(vmemo, memo);</div><div class='add'>+        st_insert(memo, (st_data_t)ary, (st_data_t)Qtrue);</div><div class='add'>+        st_insert(memo, (st_data_t)tmp, (st_data_t)Qtrue);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ary = tmp;</div><div class='add'>+    i = 0;</div><div class='ctx'> </div><div class='ctx'>     while (1) {</div><div class='del'>-	while (i &lt; RARRAY_LEN(ary)) {</div><div class='del'>-	    elt = RARRAY_AREF(ary, i++);</div><div class='del'>-	    if (level &gt;= 0 &amp;&amp; RARRAY_LEN(stack) / 2 &gt;= level) {</div><div class='del'>-		rb_ary_push(result, elt);</div><div class='del'>-		continue;</div><div class='del'>-	    }</div><div class='del'>-	    tmp = rb_check_array_type(elt);</div><div class='del'>-	    if (RBASIC(result)-&gt;klass) {</div><div class='del'>-		rb_raise(rb_eRuntimeError, "flatten reentered");</div><div class='del'>-	    }</div><div class='del'>-	    if (NIL_P(tmp)) {</div><div class='del'>-		rb_ary_push(result, elt);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		*modified = 1;</div><div class='del'>-		id = (st_data_t)tmp;</div><div class='del'>-		if (st_lookup(memo, id, 0)) {</div><div class='del'>-		    st_free_table(memo);</div><div class='del'>-		    rb_raise(rb_eArgError, "tried to flatten recursive array");</div><div class='del'>-		}</div><div class='del'>-		st_insert(memo, id, (st_data_t)Qtrue);</div><div class='del'>-		rb_ary_push(stack, ary);</div><div class='del'>-		rb_ary_push(stack, LONG2NUM(i));</div><div class='del'>-		ary = tmp;</div><div class='del'>-		i = 0;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (RARRAY_LEN(stack) == 0) {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	id = (st_data_t)ary;</div><div class='del'>-	st_delete(memo, &amp;id, 0);</div><div class='del'>-	tmp = rb_ary_pop(stack);</div><div class='del'>-	i = NUM2LONG(tmp);</div><div class='del'>-	ary = rb_ary_pop(stack);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    st_free_table(memo);</div><div class='del'>-</div><div class='del'>-    RBASIC_SET_CLASS(result, rb_obj_class(ary));</div><div class='add'>+        while (i &lt; RARRAY_LEN(ary)) {</div><div class='add'>+            elt = RARRAY_AREF(ary, i++);</div><div class='add'>+            if (level &gt;= 0 &amp;&amp; RARRAY_LEN(stack) / 2 &gt;= level) {</div><div class='add'>+                rb_ary_push(result, elt);</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            tmp = rb_check_array_type(elt);</div><div class='add'>+            if (RBASIC(result)-&gt;klass) {</div><div class='add'>+                if (memo) {</div><div class='add'>+                    RB_GC_GUARD(vmemo);</div><div class='add'>+                    st_clear(memo);</div><div class='add'>+                }</div><div class='add'>+                rb_raise(rb_eRuntimeError, "flatten reentered");</div><div class='add'>+            }</div><div class='add'>+            if (NIL_P(tmp)) {</div><div class='add'>+                rb_ary_push(result, elt);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                if (memo) {</div><div class='add'>+                    id = (st_data_t)tmp;</div><div class='add'>+                    if (st_is_member(memo, id)) {</div><div class='add'>+                        st_clear(memo);</div><div class='add'>+                        rb_raise(rb_eArgError, "tried to flatten recursive array");</div><div class='add'>+                    }</div><div class='add'>+                    st_insert(memo, id, (st_data_t)Qtrue);</div><div class='add'>+                }</div><div class='add'>+                rb_ary_push(stack, ary);</div><div class='add'>+                rb_ary_push(stack, LONG2NUM(i));</div><div class='add'>+                ary = tmp;</div><div class='add'>+                i = 0;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (RARRAY_LEN(stack) == 0) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        if (memo) {</div><div class='add'>+            id = (st_data_t)ary;</div><div class='add'>+            st_delete(memo, &amp;id, 0);</div><div class='add'>+        }</div><div class='add'>+        tmp = rb_ary_pop(stack);</div><div class='add'>+        i = NUM2LONG(tmp);</div><div class='add'>+        ary = rb_ary_pop(stack);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (memo) {</div><div class='add'>+        st_clear(memo);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RBASIC_SET_CLASS(result, rb_cArray);</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.flatten!        -&gt; ary or nil</div><div class='del'>- *     ary.flatten!(level) -&gt; ary or nil</div><div class='add'>+ *    array.flatten! -&gt; self or nil</div><div class='add'>+ *    array.flatten!(level) -&gt; self or nil</div><div class='ctx'>  *</div><div class='del'>- *  Flattens +self+ in place.</div><div class='add'>+ *  Replaces each nested \Array in +self+ with the elements from that \Array;</div><div class='add'>+ *  returns +self+ if any changes, +nil+ otherwise.</div><div class='ctx'>  *</div><div class='del'>- *  Returns +nil+ if no modifications were made (i.e., the array contains no</div><div class='del'>- *  subarrays.)</div><div class='add'>+ *  With non-negative \Integer argument +level+, flattens recursively through +level+ levels:</div><div class='ctx'>  *</div><div class='del'>- *  The optional +level+ argument determines the level of recursion to flatten.</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten!(1) # =&gt; [0, 1, [2, 3], 4, 5]</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten!(2) # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten!(3) # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    [0, 1, 2].flatten!(1) # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  With no argument, a +nil+ argument, or with negative argument +level+, flattens all levels:</div><div class='add'>+ *</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten! # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    [0, 1, 2].flatten! # =&gt; nil</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten!(-1) # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten!(-2) # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    [0, 1, 2].flatten!(-1) # =&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *     a = [ 1, 2, [3, [4, 5] ] ]</div><div class='del'>- *     a.flatten!   #=&gt; [1, 2, 3, 4, 5]</div><div class='del'>- *     a.flatten!   #=&gt; nil</div><div class='del'>- *     a            #=&gt; [1, 2, 3, 4, 5]</div><div class='del'>- *     a = [ 1, 2, [3, [4, 5] ] ]</div><div class='del'>- *     a.flatten!(1) #=&gt; [1, 2, 3, [4, 5]]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -5112,10 +6652,9 @@ rb_ary_flatten_bang(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     if (!NIL_P(lv)) level = NUM2INT(lv);</div><div class='ctx'>     if (level == 0) return Qnil;</div><div class='ctx'> </div><div class='del'>-    result = flatten(ary, level, &amp;mod);</div><div class='del'>-    if (mod == 0) {</div><div class='del'>-	ary_discard(result);</div><div class='del'>-	return Qnil;</div><div class='add'>+    result = flatten(ary, level);</div><div class='add'>+    if (result == ary) {</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     if (!(mod = ARY_EMBED_P(result))) rb_obj_freeze(result);</div><div class='ctx'>     rb_ary_replace(ary, result);</div><div class='hunk'>@@ -5126,30 +6665,41 @@ rb_ary_flatten_bang(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.flatten -&gt; new_ary</div><div class='del'>- *     ary.flatten(level) -&gt; new_ary</div><div class='del'>- *</div><div class='del'>- *  Returns a new array that is a one-dimensional flattening of +self+</div><div class='del'>- *  (recursively).</div><div class='del'>- *</div><div class='del'>- *  That is, for every element that is an array, extract its elements into</div><div class='del'>- *  the new array.</div><div class='add'>+ *    array.flatten -&gt; new_array</div><div class='add'>+ *    array.flatten(level) -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Array that is a recursive flattening of +self+:</div><div class='add'>+ *  - Each non-Array element is unchanged.</div><div class='add'>+ *  - Each \Array is replaced by its individual elements.</div><div class='add'>+ *</div><div class='add'>+ *  With non-negative \Integer argument +level+, flattens recursively through +level+ levels:</div><div class='add'>+ *</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten(0) # =&gt; [0, [1, [2, 3], 4], 5]</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten(1) # =&gt; [0, 1, [2, 3], 4, 5]</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten(2) # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten(3) # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *</div><div class='add'>+ *  With no argument, a +nil+ argument, or with negative argument +level+, flattens all levels:</div><div class='add'>+ *</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    [0, 1, 2].flatten # =&gt; [0, 1, 2]</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten(-1) # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    a = [ 0, [ 1, [2, 3], 4 ], 5 ]</div><div class='add'>+ *    a.flatten(-2) # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    [0, 1, 2].flatten(-1) # =&gt; [0, 1, 2]</div><div class='ctx'>  *</div><div class='del'>- *  The optional +level+ argument determines the level of recursion to</div><div class='del'>- *  flatten.</div><div class='del'>- *</div><div class='del'>- *     s = [ 1, 2, 3 ]           #=&gt; [1, 2, 3]</div><div class='del'>- *     t = [ 4, 5, 6, [7, 8] ]   #=&gt; [4, 5, 6, [7, 8]]</div><div class='del'>- *     a = [ s, t, 9, 10 ]       #=&gt; [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10]</div><div class='del'>- *     a.flatten                 #=&gt; [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</div><div class='del'>- *     a = [ 1, 2, [3, [4, 5] ] ]</div><div class='del'>- *     a.flatten(1)              #=&gt; [1, 2, 3, [4, 5]]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_flatten(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    int mod = 0, level = -1;</div><div class='add'>+    int level = -1;</div><div class='ctx'>     VALUE result;</div><div class='ctx'> </div><div class='ctx'>     if (rb_check_arity(argc, 0, 1) &amp;&amp; !NIL_P(argv[0])) {</div><div class='hunk'>@@ -5157,257 +6707,170 @@ rb_ary_flatten(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>         if (level == 0) return ary_make_shared_copy(ary);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    result = flatten(ary, level, &amp;mod);</div><div class='del'>-    OBJ_INFECT(result, ary);</div><div class='add'>+    result = flatten(ary, level);</div><div class='add'>+    if (result == ary) {</div><div class='add'>+        result = ary_make_shared_copy(ary);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define OPTHASH_GIVEN_P(opts) \</div><div class='del'>-    (argc &gt; 0 &amp;&amp; !NIL_P((opts) = rb_check_hash_type(argv[argc-1])) &amp;&amp; (--argc, 1))</div><div class='del'>-static ID id_random;</div><div class='del'>-</div><div class='ctx'> #define RAND_UPTO(max) (long)rb_random_ulong_limited((randgen), (max)-1)</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     ary.shuffle!              -&gt; ary</div><div class='del'>- *     ary.shuffle!(random: rng) -&gt; ary</div><div class='del'>- *</div><div class='del'>- *  Shuffles elements in +self+ in place.</div><div class='del'>- *</div><div class='del'>- *     a = [ 1, 2, 3 ]           #=&gt; [1, 2, 3]</div><div class='del'>- *     a.shuffle!                #=&gt; [2, 3, 1]</div><div class='del'>- *     a                         #=&gt; [2, 3, 1]</div><div class='del'>- *</div><div class='del'>- *  The optional +rng+ argument will be used as the random number generator.</div><div class='del'>- *</div><div class='del'>- *     a.shuffle!(random: Random.new(1))  #=&gt; [1, 3, 2]</div><div class='del'>- */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_shuffle_bang(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+rb_ary_shuffle_bang(rb_execution_context_t *ec, VALUE ary, VALUE randgen)</div><div class='ctx'> {</div><div class='del'>-    VALUE opts, randgen = rb_cRandom;</div><div class='ctx'>     long i, len;</div><div class='ctx'> </div><div class='del'>-    if (OPTHASH_GIVEN_P(opts)) {</div><div class='del'>-	VALUE rnd;</div><div class='del'>-	ID keyword_ids[1];</div><div class='del'>-</div><div class='del'>-	keyword_ids[0] = id_random;</div><div class='del'>-	rb_get_kwargs(opts, keyword_ids, 0, 1, &amp;rnd);</div><div class='del'>-	if (rnd != Qundef) {</div><div class='del'>-	    randgen = rnd;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    rb_check_arity(argc, 0, 0);</div><div class='ctx'>     rb_ary_modify(ary);</div><div class='ctx'>     i = len = RARRAY_LEN(ary);</div><div class='ctx'>     RARRAY_PTR_USE(ary, ptr, {</div><div class='del'>-	while (i) {</div><div class='del'>-	    long j = RAND_UPTO(i);</div><div class='del'>-	    VALUE tmp;</div><div class='add'>+        while (i) {</div><div class='add'>+            long j = RAND_UPTO(i);</div><div class='add'>+            VALUE tmp;</div><div class='ctx'>             if (len != RARRAY_LEN(ary) || ptr != RARRAY_CONST_PTR_TRANSIENT(ary)) {</div><div class='ctx'>                 rb_raise(rb_eRuntimeError, "modified during shuffle");</div><div class='del'>-	    }</div><div class='del'>-	    tmp = ptr[--i];</div><div class='del'>-	    ptr[i] = ptr[j];</div><div class='del'>-	    ptr[j] = tmp;</div><div class='del'>-	}</div><div class='add'>+            }</div><div class='add'>+            tmp = ptr[--i];</div><div class='add'>+            ptr[i] = ptr[j];</div><div class='add'>+            ptr[j] = tmp;</div><div class='add'>+        }</div><div class='ctx'>     }); /* WB: no new reference */</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     ary.shuffle              -&gt; new_ary</div><div class='del'>- *     ary.shuffle(random: rng) -&gt; new_ary</div><div class='del'>- *</div><div class='del'>- *  Returns a new array with elements of +self+ shuffled.</div><div class='del'>- *</div><div class='del'>- *     a = [ 1, 2, 3 ]           #=&gt; [1, 2, 3]</div><div class='del'>- *     a.shuffle                 #=&gt; [2, 3, 1]</div><div class='del'>- *     a                         #=&gt; [1, 2, 3]</div><div class='del'>- *</div><div class='del'>- *  The optional +rng+ argument will be used as the random number generator.</div><div class='del'>- *</div><div class='del'>- *     a.shuffle(random: Random.new(1))  #=&gt; [1, 3, 2]</div><div class='del'>- */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_shuffle(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+rb_ary_shuffle(rb_execution_context_t *ec, VALUE ary, VALUE randgen)</div><div class='ctx'> {</div><div class='ctx'>     ary = rb_ary_dup(ary);</div><div class='del'>-    rb_ary_shuffle_bang(argc, argv, ary);</div><div class='add'>+    rb_ary_shuffle_bang(ec, ary, randgen);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     ary.sample                  -&gt; obj</div><div class='del'>- *     ary.sample(random: rng)     -&gt; obj</div><div class='del'>- *     ary.sample(n)               -&gt; new_ary</div><div class='del'>- *     ary.sample(n, random: rng)  -&gt; new_ary</div><div class='del'>- *</div><div class='del'>- *  Choose a random element or +n+ random elements from the array.</div><div class='del'>- *</div><div class='del'>- *  The elements are chosen by using random and unique indices into the array</div><div class='del'>- *  in order to ensure that an element doesn't repeat itself unless the array</div><div class='del'>- *  already contained duplicate elements.</div><div class='del'>- *</div><div class='del'>- *  If the array is empty the first form returns +nil+ and the second form</div><div class='del'>- *  returns an empty array.</div><div class='del'>- *</div><div class='del'>- *     a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]</div><div class='del'>- *     a.sample         #=&gt; 7</div><div class='del'>- *     a.sample(4)      #=&gt; [6, 4, 2, 5]</div><div class='del'>- *</div><div class='del'>- *  The optional +rng+ argument will be used as the random number generator.</div><div class='del'>- *</div><div class='del'>- *     a.sample(random: Random.new(1))     #=&gt; 6</div><div class='del'>- *     a.sample(4, random: Random.new(1))  #=&gt; [6, 10, 9, 2]</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ary_sample(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+ary_sample(rb_execution_context_t *ec, VALUE ary, VALUE randgen, VALUE nv, VALUE to_array)</div><div class='ctx'> {</div><div class='del'>-    VALUE nv, result;</div><div class='del'>-    VALUE opts, randgen = rb_cRandom;</div><div class='add'>+    VALUE result;</div><div class='ctx'>     long n, len, i, j, k, idx[10];</div><div class='ctx'>     long rnds[numberof(idx)];</div><div class='ctx'>     long memo_threshold;</div><div class='ctx'> </div><div class='del'>-    if (OPTHASH_GIVEN_P(opts)) {</div><div class='del'>-	VALUE rnd;</div><div class='del'>-	ID keyword_ids[1];</div><div class='del'>-</div><div class='del'>-	keyword_ids[0] = id_random;</div><div class='del'>-	rb_get_kwargs(opts, keyword_ids, 0, 1, &amp;rnd);</div><div class='del'>-	if (rnd != Qundef) {</div><div class='del'>-	    randgen = rnd;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='ctx'>     len = RARRAY_LEN(ary);</div><div class='del'>-    if (rb_check_arity(argc, 0, 1) == 0) {</div><div class='del'>-	if (len &lt; 2)</div><div class='del'>-	    i = 0;</div><div class='del'>-	else</div><div class='del'>-	    i = RAND_UPTO(len);</div><div class='add'>+    if (!to_array) {</div><div class='add'>+        if (len &lt; 2)</div><div class='add'>+            i = 0;</div><div class='add'>+        else</div><div class='add'>+            i = RAND_UPTO(len);</div><div class='ctx'> </div><div class='del'>-	return rb_ary_elt(ary, i);</div><div class='add'>+        return rb_ary_elt(ary, i);</div><div class='ctx'>     }</div><div class='del'>-    nv = argv[0];</div><div class='ctx'>     n = NUM2LONG(nv);</div><div class='ctx'>     if (n &lt; 0) rb_raise(rb_eArgError, "negative sample number");</div><div class='ctx'>     if (n &gt; len) n = len;</div><div class='ctx'>     if (n &lt;= numberof(idx)) {</div><div class='del'>-	for (i = 0; i &lt; n; ++i) {</div><div class='del'>-	    rnds[i] = RAND_UPTO(len - i);</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; n; ++i) {</div><div class='add'>+            rnds[i] = RAND_UPTO(len - i);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     k = len;</div><div class='ctx'>     len = RARRAY_LEN(ary);</div><div class='ctx'>     if (len &lt; k &amp;&amp; n &lt;= numberof(idx)) {</div><div class='del'>-	for (i = 0; i &lt; n; ++i) {</div><div class='del'>-	    if (rnds[i] &gt;= len) return rb_ary_new_capa(0);</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; n; ++i) {</div><div class='add'>+            if (rnds[i] &gt;= len) return rb_ary_new_capa(0);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (n &gt; len) n = len;</div><div class='ctx'>     switch (n) {</div><div class='ctx'>       case 0:</div><div class='del'>-	return rb_ary_new_capa(0);</div><div class='add'>+        return rb_ary_new_capa(0);</div><div class='ctx'>       case 1:</div><div class='del'>-	i = rnds[0];</div><div class='del'>-	return rb_ary_new_from_values(1, &amp;RARRAY_AREF(ary, i));</div><div class='add'>+        i = rnds[0];</div><div class='add'>+        return rb_ary_new_from_args(1, RARRAY_AREF(ary, i));</div><div class='ctx'>       case 2:</div><div class='del'>-	i = rnds[0];</div><div class='del'>-	j = rnds[1];</div><div class='del'>-	if (j &gt;= i) j++;</div><div class='del'>-	return rb_ary_new_from_args(2, RARRAY_AREF(ary, i), RARRAY_AREF(ary, j));</div><div class='add'>+        i = rnds[0];</div><div class='add'>+        j = rnds[1];</div><div class='add'>+        if (j &gt;= i) j++;</div><div class='add'>+        return rb_ary_new_from_args(2, RARRAY_AREF(ary, i), RARRAY_AREF(ary, j));</div><div class='ctx'>       case 3:</div><div class='del'>-	i = rnds[0];</div><div class='del'>-	j = rnds[1];</div><div class='del'>-	k = rnds[2];</div><div class='del'>-	{</div><div class='del'>-	    long l = j, g = i;</div><div class='del'>-	    if (j &gt;= i) l = i, g = ++j;</div><div class='del'>-	    if (k &gt;= l &amp;&amp; (++k &gt;= g)) ++k;</div><div class='del'>-	}</div><div class='del'>-	return rb_ary_new_from_args(3, RARRAY_AREF(ary, i), RARRAY_AREF(ary, j), RARRAY_AREF(ary, k));</div><div class='add'>+        i = rnds[0];</div><div class='add'>+        j = rnds[1];</div><div class='add'>+        k = rnds[2];</div><div class='add'>+        {</div><div class='add'>+            long l = j, g = i;</div><div class='add'>+            if (j &gt;= i) l = i, g = ++j;</div><div class='add'>+            if (k &gt;= l &amp;&amp; (++k &gt;= g)) ++k;</div><div class='add'>+        }</div><div class='add'>+        return rb_ary_new_from_args(3, RARRAY_AREF(ary, i), RARRAY_AREF(ary, j), RARRAY_AREF(ary, k));</div><div class='ctx'>     }</div><div class='ctx'>     memo_threshold =</div><div class='del'>-	len &lt; 2560 ? len / 128 :</div><div class='del'>-	len &lt; 5120 ? len / 64 :</div><div class='del'>-	len &lt; 10240 ? len / 32 :</div><div class='del'>-	len / 16;</div><div class='add'>+        len &lt; 2560 ? len / 128 :</div><div class='add'>+        len &lt; 5120 ? len / 64 :</div><div class='add'>+        len &lt; 10240 ? len / 32 :</div><div class='add'>+        len / 16;</div><div class='ctx'>     if (n &lt;= numberof(idx)) {</div><div class='del'>-	long sorted[numberof(idx)];</div><div class='del'>-	sorted[0] = idx[0] = rnds[0];</div><div class='del'>-	for (i=1; i&lt;n; i++) {</div><div class='del'>-	    k = rnds[i];</div><div class='del'>-	    for (j = 0; j &lt; i; ++j) {</div><div class='del'>-		if (k &lt; sorted[j]) break;</div><div class='del'>-		++k;</div><div class='del'>-	    }</div><div class='del'>-	    memmove(&amp;sorted[j+1], &amp;sorted[j], sizeof(sorted[0])*(i-j));</div><div class='del'>-	    sorted[j] = idx[i] = k;</div><div class='del'>-	}</div><div class='del'>-	result = rb_ary_new_capa(n);</div><div class='add'>+        long sorted[numberof(idx)];</div><div class='add'>+        sorted[0] = idx[0] = rnds[0];</div><div class='add'>+        for (i=1; i&lt;n; i++) {</div><div class='add'>+            k = rnds[i];</div><div class='add'>+            for (j = 0; j &lt; i; ++j) {</div><div class='add'>+                if (k &lt; sorted[j]) break;</div><div class='add'>+                ++k;</div><div class='add'>+            }</div><div class='add'>+            memmove(&amp;sorted[j+1], &amp;sorted[j], sizeof(sorted[0])*(i-j));</div><div class='add'>+            sorted[j] = idx[i] = k;</div><div class='add'>+        }</div><div class='add'>+        result = rb_ary_new_capa(n);</div><div class='ctx'>         RARRAY_PTR_USE_TRANSIENT(result, ptr_result, {</div><div class='del'>-	    for (i=0; i&lt;n; i++) {</div><div class='del'>-		ptr_result[i] = RARRAY_AREF(ary, idx[i]);</div><div class='del'>-	    }</div><div class='del'>-	});</div><div class='add'>+            for (i=0; i&lt;n; i++) {</div><div class='add'>+                ptr_result[i] = RARRAY_AREF(ary, idx[i]);</div><div class='add'>+            }</div><div class='add'>+        });</div><div class='ctx'>     }</div><div class='ctx'>     else if (n &lt;= memo_threshold / 2) {</div><div class='del'>-	long max_idx = 0;</div><div class='add'>+        long max_idx = 0;</div><div class='ctx'> #undef RUBY_UNTYPED_DATA_WARNING</div><div class='ctx'> #define RUBY_UNTYPED_DATA_WARNING 0</div><div class='del'>-	VALUE vmemo = Data_Wrap_Struct(0, 0, st_free_table, 0);</div><div class='del'>-	st_table *memo = st_init_numtable_with_size(n);</div><div class='del'>-	DATA_PTR(vmemo) = memo;</div><div class='del'>-	result = rb_ary_new_capa(n);</div><div class='del'>-	RARRAY_PTR_USE(result, ptr_result, {</div><div class='del'>-	    for (i=0; i&lt;n; i++) {</div><div class='del'>-		long r = RAND_UPTO(len-i) + i;</div><div class='del'>-		ptr_result[i] = r;</div><div class='del'>-		if (r &gt; max_idx) max_idx = r;</div><div class='del'>-	    }</div><div class='del'>-	    len = RARRAY_LEN(ary);</div><div class='del'>-	    if (len &lt;= max_idx) n = 0;</div><div class='del'>-	    else if (n &gt; len) n = len;</div><div class='add'>+        VALUE vmemo = Data_Wrap_Struct(0, 0, st_free_table, 0);</div><div class='add'>+        st_table *memo = st_init_numtable_with_size(n);</div><div class='add'>+        DATA_PTR(vmemo) = memo;</div><div class='add'>+        result = rb_ary_new_capa(n);</div><div class='add'>+        RARRAY_PTR_USE(result, ptr_result, {</div><div class='add'>+            for (i=0; i&lt;n; i++) {</div><div class='add'>+                long r = RAND_UPTO(len-i) + i;</div><div class='add'>+                ptr_result[i] = r;</div><div class='add'>+                if (r &gt; max_idx) max_idx = r;</div><div class='add'>+            }</div><div class='add'>+            len = RARRAY_LEN(ary);</div><div class='add'>+            if (len &lt;= max_idx) n = 0;</div><div class='add'>+            else if (n &gt; len) n = len;</div><div class='ctx'>             RARRAY_PTR_USE_TRANSIENT(ary, ptr_ary, {</div><div class='del'>-		for (i=0; i&lt;n; i++) {</div><div class='del'>-		    long j2 = j = ptr_result[i];</div><div class='del'>-		    long i2 = i;</div><div class='del'>-		    st_data_t value;</div><div class='del'>-		    if (st_lookup(memo, (st_data_t)i, &amp;value)) i2 = (long)value;</div><div class='del'>-		    if (st_lookup(memo, (st_data_t)j, &amp;value)) j2 = (long)value;</div><div class='del'>-		    st_insert(memo, (st_data_t)j, (st_data_t)i2);</div><div class='del'>-		    ptr_result[i] = ptr_ary[j2];</div><div class='del'>-		}</div><div class='del'>-	    });</div><div class='del'>-	});</div><div class='del'>-	DATA_PTR(vmemo) = 0;</div><div class='del'>-	st_free_table(memo);</div><div class='add'>+                for (i=0; i&lt;n; i++) {</div><div class='add'>+                    long j2 = j = ptr_result[i];</div><div class='add'>+                    long i2 = i;</div><div class='add'>+                    st_data_t value;</div><div class='add'>+                    if (st_lookup(memo, (st_data_t)i, &amp;value)) i2 = (long)value;</div><div class='add'>+                    if (st_lookup(memo, (st_data_t)j, &amp;value)) j2 = (long)value;</div><div class='add'>+                    st_insert(memo, (st_data_t)j, (st_data_t)i2);</div><div class='add'>+                    ptr_result[i] = ptr_ary[j2];</div><div class='add'>+                }</div><div class='add'>+            });</div><div class='add'>+        });</div><div class='add'>+        DATA_PTR(vmemo) = 0;</div><div class='add'>+        st_free_table(memo);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	result = rb_ary_dup(ary);</div><div class='del'>-	RBASIC_CLEAR_CLASS(result);</div><div class='del'>-	RB_GC_GUARD(ary);</div><div class='del'>-	RARRAY_PTR_USE(result, ptr_result, {</div><div class='del'>-	    for (i=0; i&lt;n; i++) {</div><div class='del'>-		j = RAND_UPTO(len-i) + i;</div><div class='del'>-		nv = ptr_result[j];</div><div class='del'>-		ptr_result[j] = ptr_result[i];</div><div class='del'>-		ptr_result[i] = nv;</div><div class='del'>-	    }</div><div class='del'>-	});</div><div class='del'>-	RBASIC_SET_CLASS_RAW(result, rb_cArray);</div><div class='add'>+        result = rb_ary_dup(ary);</div><div class='add'>+        RBASIC_CLEAR_CLASS(result);</div><div class='add'>+        RB_GC_GUARD(ary);</div><div class='add'>+        RARRAY_PTR_USE(result, ptr_result, {</div><div class='add'>+            for (i=0; i&lt;n; i++) {</div><div class='add'>+                j = RAND_UPTO(len-i) + i;</div><div class='add'>+                nv = ptr_result[j];</div><div class='add'>+                ptr_result[j] = ptr_result[i];</div><div class='add'>+                ptr_result[i] = nv;</div><div class='add'>+            }</div><div class='add'>+        });</div><div class='add'>+        RBASIC_SET_CLASS_RAW(result, rb_cArray);</div><div class='ctx'>     }</div><div class='ctx'>     ARY_SET_LEN(result, n);</div><div class='ctx'> </div><div class='hunk'>@@ -5415,15 +6878,21 @@ rb_ary_sample(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='add'>+ary_sample0(rb_execution_context_t *ec, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return ary_sample(ec, ary, rb_cRandom, Qfalse, Qfalse);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='ctx'> rb_ary_cycle_size(VALUE self, VALUE args, VALUE eobj)</div><div class='ctx'> {</div><div class='ctx'>     long mul;</div><div class='ctx'>     VALUE n = Qnil;</div><div class='ctx'>     if (args &amp;&amp; (RARRAY_LEN(args) &gt; 0)) {</div><div class='del'>-	n = RARRAY_AREF(args, 0);</div><div class='add'>+        n = RARRAY_AREF(args, 0);</div><div class='ctx'>     }</div><div class='ctx'>     if (RARRAY_LEN(self) == 0) return INT2FIX(0);</div><div class='del'>-    if (n == Qnil) return DBL2NUM(HUGE_VAL);</div><div class='add'>+    if (NIL_P(n)) return DBL2NUM(HUGE_VAL);</div><div class='ctx'>     mul = NUM2LONG(n);</div><div class='ctx'>     if (mul &lt;= 0) return INT2FIX(0);</div><div class='ctx'>     n = LONG2FIX(mul);</div><div class='hunk'>@@ -5432,24 +6901,37 @@ rb_ary_cycle_size(VALUE self, VALUE args, VALUE eobj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.cycle(n=nil) {|obj| block}    -&gt; nil</div><div class='del'>- *     ary.cycle(n=nil)                  -&gt; Enumerator</div><div class='add'>+ *    array.cycle {|element| ... } -&gt; nil</div><div class='add'>+ *    array.cycle(count) {|element| ... } -&gt; nil</div><div class='add'>+ *    array.cycle -&gt; new_enumerator</div><div class='add'>+ *    array.cycle(count) -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  When called with positive \Integer argument +count+ and a block,</div><div class='add'>+ *  calls the block with each element, then does so again,</div><div class='add'>+ *  until it has done so +count+ times; returns +nil+:</div><div class='ctx'>  *</div><div class='del'>- *  Calls the given block for each element +n+ times or forever if +nil+ is</div><div class='del'>- *  given.</div><div class='add'>+ *    output = []</div><div class='add'>+ *    [0, 1].cycle(2) {|element| output.push(element) } # =&gt; nil</div><div class='add'>+ *    output # =&gt; [0, 1, 0, 1]</div><div class='ctx'>  *</div><div class='del'>- *  Does nothing if a non-positive number is given or the array is empty.</div><div class='add'>+ *  If +count+ is zero or negative, does not call the block:</div><div class='ctx'>  *</div><div class='del'>- *  Returns +nil+ if the loop has finished without getting interrupted.</div><div class='add'>+ *    [0, 1].cycle(0) {|element| fail 'Cannot happen' } # =&gt; nil</div><div class='add'>+ *    [0, 1].cycle(-1) {|element| fail 'Cannot happen' } # =&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *  When a block is given, and argument is omitted or +nil+, cycles forever:</div><div class='ctx'>  *</div><div class='del'>- *     a = ["a", "b", "c"]</div><div class='del'>- *     a.cycle {|x| puts x}       # print, a, b, c, a, b, c,.. forever.</div><div class='del'>- *     a.cycle(2) {|x| puts x}    # print, a, b, c, a, b, c.</div><div class='add'>+ *    # Prints 0 and 1 forever.</div><div class='add'>+ *    [0, 1].cycle {|element| puts element }</div><div class='add'>+ *    [0, 1].cycle(nil) {|element| puts element }</div><div class='add'>+ *</div><div class='add'>+ *  When no block is given, returns a new \Enumerator:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1].cycle(2) # =&gt; #&lt;Enumerator: [0, 1]:cycle(2)&gt;</div><div class='add'>+ *    [0, 1].cycle # =&gt; # =&gt; #&lt;Enumerator: [0, 1]:cycle&gt;</div><div class='add'>+ *    [0, 1].cycle.first(5) # =&gt; [0, 1, 0, 1, 0]</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_cycle(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='hunk'>@@ -5474,9 +6956,6 @@ rb_ary_cycle(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define tmpary(n) rb_ary_tmp_new(n)</div><div class='del'>-#define tmpary_discard(a) (ary_discard(a), RBASIC_SET_CLASS_RAW(a, rb_cArray))</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  * Build a ruby array of the corresponding values and yield it to the</div><div class='ctx'>  * associated block.</div><div class='hunk'>@@ -5488,7 +6967,7 @@ yield_indexed_values(const VALUE values, const long r, const long *const p)</div><div class='ctx'>     const VALUE result = rb_ary_new2(r);</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='del'>-    for (i = 0; i &lt; r; i++) RARRAY_ASET(result, i, RARRAY_AREF(values, p[i]));</div><div class='add'>+    for (i = 0; i &lt; r; i++) ARY_SET(result, i, RARRAY_AREF(values, p[i]));</div><div class='ctx'>     ARY_SET_LEN(result, r);</div><div class='ctx'>     rb_yield(result);</div><div class='ctx'>     return !RBASIC(values)-&gt;klass;</div><div class='hunk'>@@ -5512,52 +6991,52 @@ permute0(const long n, const long r, long *const p, char *const used, const VALU</div><div class='ctx'>     long i = 0, index = 0;</div><div class='ctx'> </div><div class='ctx'>     for (;;) {</div><div class='del'>-	const char *const unused = memchr(&amp;used[i], 0, n-i);</div><div class='del'>-	if (!unused) {</div><div class='del'>-	    if (!index) break;</div><div class='del'>-	    i = p[--index];                /* pop index */</div><div class='del'>-	    used[i++] = 0;                 /* index unused */</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    i = unused - used;</div><div class='del'>-	    p[index] = i;</div><div class='del'>-	    used[i] = 1;                   /* mark index used */</div><div class='del'>-	    ++index;</div><div class='del'>-	    if (index &lt; r-1) {             /* if not done yet */</div><div class='del'>-		p[index] = i = 0;</div><div class='del'>-		continue;</div><div class='del'>-	    }</div><div class='del'>-	    for (i = 0; i &lt; n; ++i) {</div><div class='del'>-		if (used[i]) continue;</div><div class='del'>-		p[index] = i;</div><div class='del'>-		if (!yield_indexed_values(values, r, p)) {</div><div class='del'>-		    rb_raise(rb_eRuntimeError, "permute reentered");</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    i = p[--index];                /* pop index */</div><div class='del'>-	    used[i] = 0;                   /* index unused */</div><div class='del'>-	    p[index] = ++i;</div><div class='del'>-	}</div><div class='add'>+        const char *const unused = memchr(&amp;used[i], 0, n-i);</div><div class='add'>+        if (!unused) {</div><div class='add'>+            if (!index) break;</div><div class='add'>+            i = p[--index];                /* pop index */</div><div class='add'>+            used[i++] = 0;                 /* index unused */</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            i = unused - used;</div><div class='add'>+            p[index] = i;</div><div class='add'>+            used[i] = 1;                   /* mark index used */</div><div class='add'>+            ++index;</div><div class='add'>+            if (index &lt; r-1) {             /* if not done yet */</div><div class='add'>+                p[index] = i = 0;</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            for (i = 0; i &lt; n; ++i) {</div><div class='add'>+                if (used[i]) continue;</div><div class='add'>+                p[index] = i;</div><div class='add'>+                if (!yield_indexed_values(values, r, p)) {</div><div class='add'>+                    rb_raise(rb_eRuntimeError, "permute reentered");</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            i = p[--index];                /* pop index */</div><div class='add'>+            used[i] = 0;                   /* index unused */</div><div class='add'>+            p[index] = ++i;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Returns the product of from, from-1, ..., from - how_many + 1.</div><div class='del'>- * http://en.wikipedia.org/wiki/Pochhammer_symbol</div><div class='add'>+ * https://en.wikipedia.org/wiki/Pochhammer_symbol</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> descending_factorial(long from, long how_many)</div><div class='ctx'> {</div><div class='ctx'>     VALUE cnt;</div><div class='ctx'>     if (how_many &gt; 0) {</div><div class='del'>-	cnt = LONG2FIX(from);</div><div class='del'>-	while (--how_many &gt; 0) {</div><div class='del'>-	    long v = --from;</div><div class='del'>-	    cnt = rb_int_mul(cnt, LONG2FIX(v));</div><div class='del'>-	}</div><div class='add'>+        cnt = LONG2FIX(from);</div><div class='add'>+        while (--how_many &gt; 0) {</div><div class='add'>+            long v = --from;</div><div class='add'>+            cnt = rb_int_mul(cnt, LONG2FIX(v));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	cnt = LONG2FIX(how_many == 0);</div><div class='add'>+        cnt = LONG2FIX(how_many == 0);</div><div class='ctx'>     }</div><div class='ctx'>     return cnt;</div><div class='ctx'> }</div><div class='hunk'>@@ -5568,18 +7047,18 @@ binomial_coefficient(long comb, long size)</div><div class='ctx'>     VALUE r;</div><div class='ctx'>     long i;</div><div class='ctx'>     if (comb &gt; size-comb) {</div><div class='del'>-	comb = size-comb;</div><div class='add'>+        comb = size-comb;</div><div class='ctx'>     }</div><div class='ctx'>     if (comb &lt; 0) {</div><div class='del'>-	return LONG2FIX(0);</div><div class='add'>+        return LONG2FIX(0);</div><div class='ctx'>     }</div><div class='ctx'>     else if (comb == 0) {</div><div class='del'>-	return LONG2FIX(1);</div><div class='add'>+        return LONG2FIX(1);</div><div class='ctx'>     }</div><div class='ctx'>     r = LONG2FIX(size);</div><div class='ctx'>     for (i = 1; i &lt; comb; ++i) {</div><div class='del'>-	r = rb_int_mul(r, LONG2FIX(size - i));</div><div class='del'>-	r = rb_int_idiv(r, LONG2FIX(i + 1));</div><div class='add'>+        r = rb_int_mul(r, LONG2FIX(size - i));</div><div class='add'>+        r = rb_int_idiv(r, LONG2FIX(i + 1));</div><div class='ctx'>     }</div><div class='ctx'>     return r;</div><div class='ctx'> }</div><div class='hunk'>@@ -5595,30 +7074,82 @@ rb_ary_permutation_size(VALUE ary, VALUE args, VALUE eobj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.permutation {|p| block}            -&gt; ary</div><div class='del'>- *     ary.permutation                        -&gt; Enumerator</div><div class='del'>- *     ary.permutation(n) {|p| block}         -&gt; ary</div><div class='del'>- *     ary.permutation(n)                     -&gt; Enumerator</div><div class='add'>+ *    array.permutation {|element| ... } -&gt; self</div><div class='add'>+ *    array.permutation(n) {|element| ... } -&gt; self</div><div class='add'>+ *    array.permutation -&gt; new_enumerator</div><div class='add'>+ *    array.permutation(n) -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  When invoked with a block, yield all permutations of elements of +self+; returns +self+.</div><div class='add'>+ *  The order of permutations is indeterminate.</div><div class='add'>+ *</div><div class='add'>+ *  When a block and an in-range positive \Integer argument +n+ (&lt;tt&gt;0 &lt; n &lt;= self.size&lt;/tt&gt;)</div><div class='add'>+ *  are given, calls the block with all +n+-tuple permutations of +self+.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.permutation(2) {|permutation| p permutation }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1]</div><div class='add'>+ *    [0, 2]</div><div class='add'>+ *    [1, 0]</div><div class='add'>+ *    [1, 2]</div><div class='add'>+ *    [2, 0]</div><div class='add'>+ *    [2, 1]</div><div class='add'>+ *</div><div class='add'>+ *  Another example:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.permutation(3) {|permutation| p permutation }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2]</div><div class='add'>+ *    [0, 2, 1]</div><div class='add'>+ *    [1, 0, 2]</div><div class='add'>+ *    [1, 2, 0]</div><div class='add'>+ *    [2, 0, 1]</div><div class='add'>+ *    [2, 1, 0]</div><div class='add'>+ *</div><div class='add'>+ *  When +n+ is zero, calls the block once with a new empty \Array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.permutation(0) {|permutation| p permutation }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    []</div><div class='add'>+ *</div><div class='add'>+ *  When +n+ is out of range (negative or larger than &lt;tt&gt;self.size&lt;/tt&gt;),</div><div class='add'>+ *  does not call the block:</div><div class='ctx'>  *</div><div class='del'>- * When invoked with a block, yield all permutations of length +n+ of the</div><div class='del'>- * elements of the array, then return the array itself.</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.permutation(-1) {|permutation| fail 'Cannot happen' }</div><div class='add'>+ *    a.permutation(4) {|permutation| fail 'Cannot happen' }</div><div class='ctx'>  *</div><div class='del'>- * If +n+ is not specified, yield all permutations of all elements.</div><div class='add'>+ *  When a block given but no argument,</div><div class='add'>+ *  behaves the same as &lt;tt&gt;a.permutation(a.size)&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- * The implementation makes no guarantees about the order in which the</div><div class='del'>- * permutations are yielded.</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.permutation {|permutation| p permutation }</div><div class='ctx'>  *</div><div class='del'>- * If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- * Examples:</div><div class='add'>+ *    [0, 1, 2]</div><div class='add'>+ *    [0, 2, 1]</div><div class='add'>+ *    [1, 0, 2]</div><div class='add'>+ *    [1, 2, 0]</div><div class='add'>+ *    [2, 0, 1]</div><div class='add'>+ *    [2, 1, 0]</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.permutation # =&gt; #&lt;Enumerator: [0, 1, 2]:permutation&gt;</div><div class='add'>+ *    a.permutation(2) # =&gt; #&lt;Enumerator: [0, 1, 2]:permutation(2)&gt;</div><div class='ctx'>  *</div><div class='del'>- *   a = [1, 2, 3]</div><div class='del'>- *   a.permutation.to_a    #=&gt; [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]</div><div class='del'>- *   a.permutation(1).to_a #=&gt; [[1],[2],[3]]</div><div class='del'>- *   a.permutation(2).to_a #=&gt; [[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]</div><div class='del'>- *   a.permutation(3).to_a #=&gt; [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]</div><div class='del'>- *   a.permutation(0).to_a #=&gt; [[]] # one permutation of length 0</div><div class='del'>- *   a.permutation(4).to_a #=&gt; []   # no permutations of length 4</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -5633,28 +7164,28 @@ rb_ary_permutation(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>         r = NUM2LONG(argv[0]);            /* Permutation size from argument */</div><div class='ctx'> </div><div class='ctx'>     if (r &lt; 0 || n &lt; r) {</div><div class='del'>-	/* no permutations: yield nothing */</div><div class='add'>+        /* no permutations: yield nothing */</div><div class='ctx'>     }</div><div class='ctx'>     else if (r == 0) { /* exactly one permutation: the zero-length array */</div><div class='del'>-	rb_yield(rb_ary_new2(0));</div><div class='add'>+        rb_yield(rb_ary_new2(0));</div><div class='ctx'>     }</div><div class='ctx'>     else if (r == 1) { /* this is a special, easy case */</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	    rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+            rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {             /* this is the general case */</div><div class='del'>-	volatile VALUE t0;</div><div class='del'>-	long *p = ALLOCV_N(long, t0, r+roomof(n, sizeof(long)));</div><div class='del'>-	char *used = (char*)(p + r);</div><div class='del'>-	VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='del'>-	RBASIC_CLEAR_CLASS(ary0);</div><div class='add'>+        volatile VALUE t0;</div><div class='add'>+        long *p = ALLOCV_N(long, t0, r+roomof(n, sizeof(long)));</div><div class='add'>+        char *used = (char*)(p + r);</div><div class='add'>+        VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='add'>+        RBASIC_CLEAR_CLASS(ary0);</div><div class='ctx'> </div><div class='del'>-	MEMZERO(used, char, n); /* initialize array */</div><div class='add'>+        MEMZERO(used, char, n); /* initialize array */</div><div class='ctx'> </div><div class='del'>-	permute0(n, r, p, used, ary0); /* compute and yield permutations */</div><div class='del'>-	ALLOCV_END(t0);</div><div class='del'>-	RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='add'>+        permute0(n, r, p, used, ary0); /* compute and yield permutations */</div><div class='add'>+        ALLOCV_END(t0);</div><div class='add'>+        RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -5667,16 +7198,16 @@ combinate0(const long len, const long n, long *const stack, const VALUE values)</div><div class='ctx'>     MEMZERO(stack+1, long, n);</div><div class='ctx'>     stack[0] = -1;</div><div class='ctx'>     for (;;) {</div><div class='del'>-	for (lev++; lev &lt; n; lev++) {</div><div class='del'>-	    stack[lev+1] = stack[lev]+1;</div><div class='del'>-	}</div><div class='del'>-	if (!yield_indexed_values(values, n, stack+1)) {</div><div class='del'>-	    rb_raise(rb_eRuntimeError, "combination reentered");</div><div class='del'>-	}</div><div class='del'>-	do {</div><div class='del'>-	    if (lev == 0) return;</div><div class='del'>-	    stack[lev--]++;</div><div class='del'>-	} while (stack[lev+1]+n == len+lev+1);</div><div class='add'>+        for (lev++; lev &lt; n; lev++) {</div><div class='add'>+            stack[lev+1] = stack[lev]+1;</div><div class='add'>+        }</div><div class='add'>+        if (!yield_indexed_values(values, n, stack+1)) {</div><div class='add'>+            rb_raise(rb_eRuntimeError, "combination reentered");</div><div class='add'>+        }</div><div class='add'>+        do {</div><div class='add'>+            if (lev == 0) return;</div><div class='add'>+            stack[lev--]++;</div><div class='add'>+        } while (stack[lev+1]+n == len+lev+1);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5691,26 +7222,55 @@ rb_ary_combination_size(VALUE ary, VALUE args, VALUE eobj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.combination(n) {|c| block}      -&gt; ary</div><div class='del'>- *     ary.combination(n)                  -&gt; Enumerator</div><div class='add'>+ *    array.combination(n) {|element| ... } -&gt; self</div><div class='add'>+ *    array.combination(n) -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block, if given, with combinations of elements of +self+;</div><div class='add'>+ *  returns +self+. The order of combinations is indeterminate.</div><div class='add'>+ *</div><div class='add'>+ *  When a block and an in-range positive \Integer argument +n+ (&lt;tt&gt;0 &lt; n &lt;= self.size&lt;/tt&gt;)</div><div class='add'>+ *  are given, calls the block with all +n+-tuple combinations of +self+.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.combination(2) {|combination| p combination }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1]</div><div class='add'>+ *    [0, 2]</div><div class='add'>+ *    [1, 2]</div><div class='ctx'>  *</div><div class='del'>- * When invoked with a block, yields all combinations of length +n+ of elements</div><div class='del'>- * from the array and then returns the array itself.</div><div class='add'>+ *  Another example:</div><div class='ctx'>  *</div><div class='del'>- * The implementation makes no guarantees about the order in which the</div><div class='del'>- * combinations are yielded.</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.combination(3) {|combination| p combination }</div><div class='ctx'>  *</div><div class='del'>- * If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- * Examples:</div><div class='add'>+ *    [0, 1, 2]</div><div class='ctx'>  *</div><div class='del'>- *     a = [1, 2, 3, 4]</div><div class='del'>- *     a.combination(1).to_a  #=&gt; [[1],[2],[3],[4]]</div><div class='del'>- *     a.combination(2).to_a  #=&gt; [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]</div><div class='del'>- *     a.combination(3).to_a  #=&gt; [[1,2,3],[1,2,4],[1,3,4],[2,3,4]]</div><div class='del'>- *     a.combination(4).to_a  #=&gt; [[1,2,3,4]]</div><div class='del'>- *     a.combination(0).to_a  #=&gt; [[]] # one combination of length 0</div><div class='del'>- *     a.combination(5).to_a  #=&gt; []   # no combinations of length 5</div><div class='add'>+ *  When +n+ is zero, calls the block once with a new empty \Array:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a1 = a.combination(0) {|combination| p combination }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    []</div><div class='add'>+ *</div><div class='add'>+ *  When +n+ is out of range (negative or larger than &lt;tt&gt;self.size&lt;/tt&gt;),</div><div class='add'>+ *  does not call the block:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.combination(-1) {|combination| fail 'Cannot happen' }</div><div class='add'>+ *    a.combination(4) {|combination| fail 'Cannot happen' }</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.combination(2) # =&gt; #&lt;Enumerator: [0, 1, 2]:combination(2)&gt;</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -5723,25 +7283,25 @@ rb_ary_combination(VALUE ary, VALUE num)</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ary, 1, &amp;num, rb_ary_combination_size);</div><div class='ctx'>     len = RARRAY_LEN(ary);</div><div class='ctx'>     if (n &lt; 0 || len &lt; n) {</div><div class='del'>-	/* yield nothing */</div><div class='add'>+        /* yield nothing */</div><div class='ctx'>     }</div><div class='ctx'>     else if (n == 0) {</div><div class='del'>-	rb_yield(rb_ary_new2(0));</div><div class='add'>+        rb_yield(rb_ary_new2(0));</div><div class='ctx'>     }</div><div class='ctx'>     else if (n == 1) {</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	    rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+            rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='del'>-	volatile VALUE t0;</div><div class='del'>-	long *stack = ALLOCV_N(long, t0, n+1);</div><div class='add'>+        VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='add'>+        volatile VALUE t0;</div><div class='add'>+        long *stack = ALLOCV_N(long, t0, n+1);</div><div class='ctx'> </div><div class='del'>-	RBASIC_CLEAR_CLASS(ary0);</div><div class='del'>-	combinate0(len, n, stack, ary0);</div><div class='del'>-	ALLOCV_END(t0);</div><div class='del'>-	RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='add'>+        RBASIC_CLEAR_CLASS(ary0);</div><div class='add'>+        combinate0(len, n, stack, ary0);</div><div class='add'>+        ALLOCV_END(t0);</div><div class='add'>+        RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -5765,19 +7325,19 @@ rpermute0(const long n, const long r, long *const p, const VALUE values)</div><div class='ctx'> </div><div class='ctx'>     p[index] = i;</div><div class='ctx'>     for (;;) {</div><div class='del'>-	if (++index &lt; r-1) {</div><div class='del'>-	    p[index] = i = 0;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	for (i = 0; i &lt; n; ++i) {</div><div class='del'>-	    p[index] = i;</div><div class='del'>-	    if (!yield_indexed_values(values, r, p)) {</div><div class='del'>-		rb_raise(rb_eRuntimeError, "repeated permute reentered");</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	do {</div><div class='del'>-	    if (index &lt;= 0) return;</div><div class='del'>-	} while ((i = ++p[--index]) &gt;= n);</div><div class='add'>+        if (++index &lt; r-1) {</div><div class='add'>+            p[index] = i = 0;</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        for (i = 0; i &lt; n; ++i) {</div><div class='add'>+            p[index] = i;</div><div class='add'>+            if (!yield_indexed_values(values, r, p)) {</div><div class='add'>+                rb_raise(rb_eRuntimeError, "repeated permute reentered");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        do {</div><div class='add'>+            if (index &lt;= 0) return;</div><div class='add'>+        } while ((i = ++p[--index]) &gt;= n);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5788,37 +7348,79 @@ rb_ary_repeated_permutation_size(VALUE ary, VALUE args, VALUE eobj)</div><div class='ctx'>     long k = NUM2LONG(RARRAY_AREF(args, 0));</div><div class='ctx'> </div><div class='ctx'>     if (k &lt; 0) {</div><div class='del'>-	return LONG2FIX(0);</div><div class='add'>+        return LONG2FIX(0);</div><div class='ctx'>     }</div><div class='ctx'>     if (n &lt;= 0) {</div><div class='del'>-	return LONG2FIX(!k);</div><div class='add'>+        return LONG2FIX(!k);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_int_positive_pow(n, (unsigned long)k);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.repeated_permutation(n) {|p| block}   -&gt; ary</div><div class='del'>- *     ary.repeated_permutation(n)               -&gt; Enumerator</div><div class='add'>+ *    array.repeated_permutation(n) {|permutation| ... } -&gt; self</div><div class='add'>+ *    array.repeated_permutation(n) -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block with each repeated permutation of length +n+ of the elements of +self+;</div><div class='add'>+ *  each permutation is an \Array;</div><div class='add'>+ *  returns +self+. The order of the permutations is indeterminate.</div><div class='add'>+ *</div><div class='add'>+ *  When a block and a positive \Integer argument +n+ are given, calls the block with each</div><div class='add'>+ *  +n+-tuple repeated permutation of the elements of +self+.</div><div class='add'>+ *  The number of permutations is &lt;tt&gt;self.size**n&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  +n+ = 1:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.repeated_permutation(1) {|permutation| p permutation }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    [0]</div><div class='add'>+ *    [1]</div><div class='add'>+ *    [2]</div><div class='add'>+ *</div><div class='add'>+ *  +n+ = 2:</div><div class='add'>+ *</div><div class='add'>+ *    a.repeated_permutation(2) {|permutation| p permutation }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 0]</div><div class='add'>+ *    [0, 1]</div><div class='add'>+ *    [0, 2]</div><div class='add'>+ *    [1, 0]</div><div class='add'>+ *    [1, 1]</div><div class='add'>+ *    [1, 2]</div><div class='add'>+ *    [2, 0]</div><div class='add'>+ *    [2, 1]</div><div class='add'>+ *    [2, 2]</div><div class='ctx'>  *</div><div class='del'>- * When invoked with a block, yield all repeated permutations of length +n+ of</div><div class='del'>- * the elements of the array, then return the array itself.</div><div class='add'>+ *  If +n+ is zero, calls the block once with an empty \Array.</div><div class='ctx'>  *</div><div class='del'>- * The implementation makes no guarantees about the order in which the repeated</div><div class='del'>- * permutations are yielded.</div><div class='add'>+ *  If +n+ is negative, does not call the block:</div><div class='ctx'>  *</div><div class='del'>- * If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *    a.repeated_permutation(-1) {|permutation| fail 'Cannot happen' }</div><div class='ctx'>  *</div><div class='del'>- * Examples:</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.repeated_permutation(2) # =&gt; #&lt;Enumerator: [0, 1, 2]:permutation(2)&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Using Enumerators, it's convenient to show the permutations and counts</div><div class='add'>+ *  for some values of +n+:</div><div class='add'>+ *</div><div class='add'>+ *    e = a.repeated_permutation(0)</div><div class='add'>+ *    e.size # =&gt; 1</div><div class='add'>+ *    e.to_a # =&gt; [[]]</div><div class='add'>+ *    e = a.repeated_permutation(1)</div><div class='add'>+ *    e.size # =&gt; 3</div><div class='add'>+ *    e.to_a # =&gt; [[0], [1], [2]]</div><div class='add'>+ *    e = a.repeated_permutation(2)</div><div class='add'>+ *    e.size # =&gt; 9</div><div class='add'>+ *    e.to_a # =&gt; [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]</div><div class='ctx'>  *</div><div class='del'>- *     a = [1, 2]</div><div class='del'>- *     a.repeated_permutation(1).to_a  #=&gt; [[1], [2]]</div><div class='del'>- *     a.repeated_permutation(2).to_a  #=&gt; [[1,1],[1,2],[2,1],[2,2]]</div><div class='del'>- *     a.repeated_permutation(3).to_a  #=&gt; [[1,1,1],[1,1,2],[1,2,1],[1,2,2],</div><div class='del'>- *                                     #    [2,1,1],[2,1,2],[2,2,1],[2,2,2]]</div><div class='del'>- *     a.repeated_permutation(0).to_a  #=&gt; [[]] # one permutation of length 0</div><div class='ctx'>  */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_repeated_permutation(VALUE ary, VALUE num)</div><div class='ctx'> {</div><div class='hunk'>@@ -5829,25 +7431,25 @@ rb_ary_repeated_permutation(VALUE ary, VALUE num)</div><div class='ctx'>     r = NUM2LONG(num);                    /* Permutation size from argument */</div><div class='ctx'> </div><div class='ctx'>     if (r &lt; 0) {</div><div class='del'>-	/* no permutations: yield nothing */</div><div class='add'>+        /* no permutations: yield nothing */</div><div class='ctx'>     }</div><div class='ctx'>     else if (r == 0) { /* exactly one permutation: the zero-length array */</div><div class='del'>-	rb_yield(rb_ary_new2(0));</div><div class='add'>+        rb_yield(rb_ary_new2(0));</div><div class='ctx'>     }</div><div class='ctx'>     else if (r == 1) { /* this is a special, easy case */</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	    rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+            rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {             /* this is the general case */</div><div class='del'>-	volatile VALUE t0;</div><div class='del'>-	long *p = ALLOCV_N(long, t0, r);</div><div class='del'>-	VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='del'>-	RBASIC_CLEAR_CLASS(ary0);</div><div class='add'>+        volatile VALUE t0;</div><div class='add'>+        long *p = ALLOCV_N(long, t0, r);</div><div class='add'>+        VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='add'>+        RBASIC_CLEAR_CLASS(ary0);</div><div class='ctx'> </div><div class='del'>-	rpermute0(n, r, p, ary0); /* compute and yield repeated permutations */</div><div class='del'>-	ALLOCV_END(t0);</div><div class='del'>-	RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='add'>+        rpermute0(n, r, p, ary0); /* compute and yield repeated permutations */</div><div class='add'>+        ALLOCV_END(t0);</div><div class='add'>+        RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -5859,19 +7461,19 @@ rcombinate0(const long n, const long r, long *const p, const long rest, const VA</div><div class='ctx'> </div><div class='ctx'>     p[index] = i;</div><div class='ctx'>     for (;;) {</div><div class='del'>-	if (++index &lt; r-1) {</div><div class='del'>-	    p[index] = i;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	for (; i &lt; n; ++i) {</div><div class='del'>-	    p[index] = i;</div><div class='del'>-	    if (!yield_indexed_values(values, r, p)) {</div><div class='del'>-		rb_raise(rb_eRuntimeError, "repeated combination reentered");</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	do {</div><div class='del'>-	    if (index &lt;= 0) return;</div><div class='del'>-	} while ((i = ++p[--index]) &gt;= n);</div><div class='add'>+        if (++index &lt; r-1) {</div><div class='add'>+            p[index] = i;</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        for (; i &lt; n; ++i) {</div><div class='add'>+            p[index] = i;</div><div class='add'>+            if (!yield_indexed_values(values, r, p)) {</div><div class='add'>+                rb_raise(rb_eRuntimeError, "repeated combination reentered");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        do {</div><div class='add'>+            if (index &lt;= 0) return;</div><div class='add'>+        } while ((i = ++p[--index]) &gt;= n);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5881,35 +7483,71 @@ rb_ary_repeated_combination_size(VALUE ary, VALUE args, VALUE eobj)</div><div class='ctx'>     long n = RARRAY_LEN(ary);</div><div class='ctx'>     long k = NUM2LONG(RARRAY_AREF(args, 0));</div><div class='ctx'>     if (k == 0) {</div><div class='del'>-	return LONG2FIX(1);</div><div class='add'>+        return LONG2FIX(1);</div><div class='ctx'>     }</div><div class='ctx'>     return binomial_coefficient(k, n + k - 1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.repeated_combination(n) {|c| block}   -&gt; ary</div><div class='del'>- *     ary.repeated_combination(n)               -&gt; Enumerator</div><div class='add'>+ *    array.repeated_combination(n) {|combination| ... } -&gt; self</div><div class='add'>+ *    array.repeated_combination(n) -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block with each repeated combination of length +n+ of the elements of +self+;</div><div class='add'>+ *  each combination is an \Array;</div><div class='add'>+ *  returns +self+. The order of the combinations is indeterminate.</div><div class='add'>+ *</div><div class='add'>+ *  When a block and a positive \Integer argument +n+ are given, calls the block with each</div><div class='add'>+ *  +n+-tuple repeated combination of the elements of +self+.</div><div class='add'>+ *  The number of combinations is &lt;tt&gt;(n+1)(n+2)/2&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  +n+ = 1:</div><div class='ctx'>  *</div><div class='del'>- * When invoked with a block, yields all repeated combinations of length +n+ of</div><div class='del'>- * elements from the array and then returns the array itself.</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.repeated_combination(1) {|combination| p combination }</div><div class='ctx'>  *</div><div class='del'>- * The implementation makes no guarantees about the order in which the repeated</div><div class='del'>- * combinations are yielded.</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- * If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *    [0]</div><div class='add'>+ *    [1]</div><div class='add'>+ *    [2]</div><div class='ctx'>  *</div><div class='del'>- * Examples:</div><div class='add'>+ *  +n+ = 2:</div><div class='ctx'>  *</div><div class='del'>- *   a = [1, 2, 3]</div><div class='del'>- *   a.repeated_combination(1).to_a  #=&gt; [[1], [2], [3]]</div><div class='del'>- *   a.repeated_combination(2).to_a  #=&gt; [[1,1],[1,2],[1,3],[2,2],[2,3],[3,3]]</div><div class='del'>- *   a.repeated_combination(3).to_a  #=&gt; [[1,1,1],[1,1,2],[1,1,3],[1,2,2],[1,2,3],</div><div class='del'>- *                                   #    [1,3,3],[2,2,2],[2,2,3],[2,3,3],[3,3,3]]</div><div class='del'>- *   a.repeated_combination(4).to_a  #=&gt; [[1,1,1,1],[1,1,1,2],[1,1,1,3],[1,1,2,2],[1,1,2,3],</div><div class='del'>- *                                   #    [1,1,3,3],[1,2,2,2],[1,2,2,3],[1,2,3,3],[1,3,3,3],</div><div class='del'>- *                                   #    [2,2,2,2],[2,2,2,3],[2,2,3,3],[2,3,3,3],[3,3,3,3]]</div><div class='del'>- *   a.repeated_combination(0).to_a  #=&gt; [[]] # one combination of length 0</div><div class='add'>+ *    a.repeated_combination(2) {|combination| p combination }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 0]</div><div class='add'>+ *    [0, 1]</div><div class='add'>+ *    [0, 2]</div><div class='add'>+ *    [1, 1]</div><div class='add'>+ *    [1, 2]</div><div class='add'>+ *    [2, 2]</div><div class='add'>+ *</div><div class='add'>+ *  If +n+ is zero, calls the block once with an empty \Array.</div><div class='add'>+ *</div><div class='add'>+ *  If +n+ is negative, does not call the block:</div><div class='add'>+ *</div><div class='add'>+ *    a.repeated_combination(-1) {|combination| fail 'Cannot happen' }</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a.repeated_combination(2) # =&gt; #&lt;Enumerator: [0, 1, 2]:combination(2)&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Using Enumerators, it's convenient to show the combinations and counts</div><div class='add'>+ *  for some values of +n+:</div><div class='add'>+ *</div><div class='add'>+ *    e = a.repeated_combination(0)</div><div class='add'>+ *    e.size # =&gt; 1</div><div class='add'>+ *    e.to_a # =&gt; [[]]</div><div class='add'>+ *    e = a.repeated_combination(1)</div><div class='add'>+ *    e.size # =&gt; 3</div><div class='add'>+ *    e.to_a # =&gt; [[0], [1], [2]]</div><div class='add'>+ *    e = a.repeated_combination(2)</div><div class='add'>+ *    e.size # =&gt; 6</div><div class='add'>+ *    e.to_a # =&gt; [[0, 0], [0, 1], [0, 2], [1, 1], [1, 2], [2, 2]]</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -5922,58 +7560,97 @@ rb_ary_repeated_combination(VALUE ary, VALUE num)</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ary, 1, &amp;num, rb_ary_repeated_combination_size);   /* Return enumerator if no block */</div><div class='ctx'>     len = RARRAY_LEN(ary);</div><div class='ctx'>     if (n &lt; 0) {</div><div class='del'>-	/* yield nothing */</div><div class='add'>+        /* yield nothing */</div><div class='ctx'>     }</div><div class='ctx'>     else if (n == 0) {</div><div class='del'>-	rb_yield(rb_ary_new2(0));</div><div class='add'>+        rb_yield(rb_ary_new2(0));</div><div class='ctx'>     }</div><div class='ctx'>     else if (n == 1) {</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	    rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+            rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (len == 0) {</div><div class='del'>-	/* yield nothing */</div><div class='add'>+        /* yield nothing */</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	volatile VALUE t0;</div><div class='del'>-	long *p = ALLOCV_N(long, t0, n);</div><div class='del'>-	VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='del'>-	RBASIC_CLEAR_CLASS(ary0);</div><div class='add'>+        volatile VALUE t0;</div><div class='add'>+        long *p = ALLOCV_N(long, t0, n);</div><div class='add'>+        VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='add'>+        RBASIC_CLEAR_CLASS(ary0);</div><div class='ctx'> </div><div class='del'>-	rcombinate0(len, n, p, n, ary0); /* compute and yield repeated combinations */</div><div class='del'>-	ALLOCV_END(t0);</div><div class='del'>-	RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='add'>+        rcombinate0(len, n, p, n, ary0); /* compute and yield repeated combinations */</div><div class='add'>+        ALLOCV_END(t0);</div><div class='add'>+        RBASIC_SET_CLASS_RAW(ary0, rb_cArray);</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.product(other_ary, ...)                -&gt; new_ary</div><div class='del'>- *     ary.product(other_ary, ...) {|p| block}    -&gt; ary</div><div class='add'>+ *    array.product(*other_arrays) -&gt; new_array</div><div class='add'>+ *    array.product(*other_arrays) {|combination| ... } -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Computes and returns or yields all combinations of elements from all the Arrays,</div><div class='add'>+ *  including both +self+ and +other_arrays+:</div><div class='add'>+ *</div><div class='add'>+ *  - The number of combinations is the product of the sizes of all the arrays,</div><div class='add'>+ *    including both +self+ and +other_arrays+.</div><div class='add'>+ *  - The order of the returned combinations is indeterminate.</div><div class='add'>+ *</div><div class='add'>+ *  When no block is given, returns the combinations as an \Array of Arrays:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2]</div><div class='add'>+ *    a1 = [3, 4]</div><div class='add'>+ *    a2 = [5, 6]</div><div class='add'>+ *    p = a.product(a1)</div><div class='add'>+ *    p.size # =&gt; 6 # a.size * a1.size</div><div class='add'>+ *    p # =&gt; [[0, 3], [0, 4], [1, 3], [1, 4], [2, 3], [2, 4]]</div><div class='add'>+ *    p = a.product(a1, a2)</div><div class='add'>+ *    p.size # =&gt; 12 # a.size * a1.size * a2.size</div><div class='add'>+ *    p # =&gt; [[0, 3, 5], [0, 3, 6], [0, 4, 5], [0, 4, 6], [1, 3, 5], [1, 3, 6], [1, 4, 5], [1, 4, 6], [2, 3, 5], [2, 3, 6], [2, 4, 5], [2, 4, 6]]</div><div class='add'>+ *</div><div class='add'>+ *  If any argument is an empty \Array, returns an empty \Array.</div><div class='add'>+ *</div><div class='add'>+ *  If no argument is given, returns an \Array of 1-element Arrays,</div><div class='add'>+ *  each containing an element of +self+:</div><div class='add'>+ *</div><div class='add'>+ *    a.product # =&gt; [[0], [1], [2]]</div><div class='add'>+ *</div><div class='add'>+ *  When a block is given, yields each combination as an \Array; returns +self+:</div><div class='add'>+ *</div><div class='add'>+ *    a.product(a1) {|combination| p combination }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 3]</div><div class='add'>+ *    [0, 4]</div><div class='add'>+ *    [1, 3]</div><div class='add'>+ *    [1, 4]</div><div class='add'>+ *    [2, 3]</div><div class='add'>+ *    [2, 4]</div><div class='ctx'>  *</div><div class='del'>- *  Returns an array of all combinations of elements from all arrays.</div><div class='add'>+ *  If any argument is an empty \Array, does not call the block:</div><div class='ctx'>  *</div><div class='del'>- *  The length of the returned array is the product of the length of +self+ and</div><div class='del'>- *  the argument arrays.</div><div class='add'>+ *    a.product(a1, a2, []) {|combination| fail 'Cannot happen' }</div><div class='ctx'>  *</div><div class='del'>- *  If given a block, #product will yield all combinations and return +self+</div><div class='del'>- *  instead.</div><div class='add'>+ *  If no argument is given, yields each element of +self+ as a 1-element \Array:</div><div class='add'>+ *</div><div class='add'>+ *    a.product {|combination| p combination }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    [0]</div><div class='add'>+ *    [1]</div><div class='add'>+ *    [2]</div><div class='ctx'>  *</div><div class='del'>- *     [1,2,3].product([4,5])     #=&gt; [[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]]</div><div class='del'>- *     [1,2].product([1,2])       #=&gt; [[1,1],[1,2],[2,1],[2,2]]</div><div class='del'>- *     [1,2].product([3,4],[5,6]) #=&gt; [[1,3,5],[1,3,6],[1,4,5],[1,4,6],</div><div class='del'>- *                                #     [2,3,5],[2,3,6],[2,4,5],[2,4,6]]</div><div class='del'>- *     [1,2].product()            #=&gt; [[1],[2]]</div><div class='del'>- *     [1,2].product([])          #=&gt; []</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ary_product(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     int n = argc+1;    /* How many arrays we're operating on */</div><div class='del'>-    volatile VALUE t0 = tmpary(n);</div><div class='add'>+    volatile VALUE t0 = rb_ary_hidden_new(n);</div><div class='ctx'>     volatile VALUE t1 = Qundef;</div><div class='ctx'>     VALUE *arrays = RARRAY_PTR(t0); /* The arrays we're computing the product of */</div><div class='ctx'>     int *counters = ALLOCV_N(int, t1, n); /* The current position in each one */</div><div class='hunk'>@@ -5994,64 +7671,64 @@ rb_ary_product(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='ctx'>     /* Otherwise, allocate and fill in an array of results */</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	/* Make defensive copies of arrays; exit if any is empty */</div><div class='del'>-	for (i = 0; i &lt; n; i++) {</div><div class='del'>-	    if (RARRAY_LEN(arrays[i]) == 0) goto done;</div><div class='del'>-	    arrays[i] = ary_make_shared_copy(arrays[i]);</div><div class='del'>-	}</div><div class='add'>+        /* Make defensive copies of arrays; exit if any is empty */</div><div class='add'>+        for (i = 0; i &lt; n; i++) {</div><div class='add'>+            if (RARRAY_LEN(arrays[i]) == 0) goto done;</div><div class='add'>+            arrays[i] = ary_make_shared_copy(arrays[i]);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	/* Compute the length of the result array; return [] if any is empty */</div><div class='del'>-	for (i = 0; i &lt; n; i++) {</div><div class='del'>-	    long k = RARRAY_LEN(arrays[i]);</div><div class='del'>-	    if (k == 0) {</div><div class='del'>-		result = rb_ary_new2(0);</div><div class='del'>-		goto done;</div><div class='del'>-	    }</div><div class='add'>+        /* Compute the length of the result array; return [] if any is empty */</div><div class='add'>+        for (i = 0; i &lt; n; i++) {</div><div class='add'>+            long k = RARRAY_LEN(arrays[i]);</div><div class='add'>+            if (k == 0) {</div><div class='add'>+                result = rb_ary_new2(0);</div><div class='add'>+                goto done;</div><div class='add'>+            }</div><div class='ctx'>             if (MUL_OVERFLOW_LONG_P(resultlen, k))</div><div class='del'>-		rb_raise(rb_eRangeError, "too big to product");</div><div class='del'>-	    resultlen *= k;</div><div class='del'>-	}</div><div class='del'>-	result = rb_ary_new2(resultlen);</div><div class='add'>+                rb_raise(rb_eRangeError, "too big to product");</div><div class='add'>+            resultlen *= k;</div><div class='add'>+        }</div><div class='add'>+        result = rb_ary_new2(resultlen);</div><div class='ctx'>     }</div><div class='ctx'>     for (;;) {</div><div class='del'>-	int m;</div><div class='del'>-	/* fill in one subarray */</div><div class='del'>-	VALUE subarray = rb_ary_new2(n);</div><div class='del'>-	for (j = 0; j &lt; n; j++) {</div><div class='del'>-	    rb_ary_push(subarray, rb_ary_entry(arrays[j], counters[j]));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* put it on the result array */</div><div class='del'>-	if (NIL_P(result)) {</div><div class='del'>-	    FL_SET(t0, FL_USER5);</div><div class='del'>-	    rb_yield(subarray);</div><div class='del'>-	    if (! FL_TEST(t0, FL_USER5)) {</div><div class='del'>-		rb_raise(rb_eRuntimeError, "product reentered");</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		FL_UNSET(t0, FL_USER5);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_ary_push(result, subarray);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * Increment the last counter.  If it overflows, reset to 0</div><div class='del'>-	 * and increment the one before it.</div><div class='del'>-	 */</div><div class='del'>-	m = n-1;</div><div class='del'>-	counters[m]++;</div><div class='del'>-	while (counters[m] == RARRAY_LEN(arrays[m])) {</div><div class='del'>-	    counters[m] = 0;</div><div class='del'>-	    /* If the first counter overflows, we are done */</div><div class='del'>-	    if (--m &lt; 0) goto done;</div><div class='del'>-	    counters[m]++;</div><div class='del'>-	}</div><div class='add'>+        int m;</div><div class='add'>+        /* fill in one subarray */</div><div class='add'>+        VALUE subarray = rb_ary_new2(n);</div><div class='add'>+        for (j = 0; j &lt; n; j++) {</div><div class='add'>+            rb_ary_push(subarray, rb_ary_entry(arrays[j], counters[j]));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* put it on the result array */</div><div class='add'>+        if (NIL_P(result)) {</div><div class='add'>+            FL_SET(t0, RARRAY_SHARED_ROOT_FLAG);</div><div class='add'>+            rb_yield(subarray);</div><div class='add'>+            if (!FL_TEST(t0, RARRAY_SHARED_ROOT_FLAG)) {</div><div class='add'>+                rb_raise(rb_eRuntimeError, "product reentered");</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                FL_UNSET(t0, RARRAY_SHARED_ROOT_FLAG);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_ary_push(result, subarray);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /*</div><div class='add'>+         * Increment the last counter.  If it overflows, reset to 0</div><div class='add'>+         * and increment the one before it.</div><div class='add'>+         */</div><div class='add'>+        m = n-1;</div><div class='add'>+        counters[m]++;</div><div class='add'>+        while (counters[m] == RARRAY_LEN(arrays[m])) {</div><div class='add'>+            counters[m] = 0;</div><div class='add'>+            /* If the first counter overflows, we are done */</div><div class='add'>+            if (--m &lt; 0) goto done;</div><div class='add'>+            counters[m]++;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'> done:</div><div class='del'>-    tmpary_discard(t0);</div><div class='ctx'>     ALLOCV_END(t1);</div><div class='ctx'> </div><div class='ctx'>     return NIL_P(result) ? ary : result;</div><div class='hunk'>@@ -6059,16 +7736,19 @@ done:</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.take(n)               -&gt; new_ary</div><div class='del'>- *</div><div class='del'>- *  Returns first +n+ elements from the array.</div><div class='add'>+ *    array.take(n) -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *  If a negative number is given, raises an ArgumentError.</div><div class='add'>+ *  Returns a new \Array containing the first +n+ element of +self+,</div><div class='add'>+ *  where +n+ is a non-negative \Integer;</div><div class='add'>+ *  does not modify +self+.</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#drop</div><div class='add'>+ *  Examples:</div><div class='ctx'>  *</div><div class='del'>- *     a = [1, 2, 3, 4, 5, 0]</div><div class='del'>- *     a.take(3)             #=&gt; [1, 2, 3]</div><div class='add'>+ *    a = [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    a.take(1) # =&gt; [0]</div><div class='add'>+ *    a.take(2) # =&gt; [0, 1]</div><div class='add'>+ *    a.take(50) # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    a # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -6077,25 +7757,31 @@ rb_ary_take(VALUE obj, VALUE n)</div><div class='ctx'> {</div><div class='ctx'>     long len = NUM2LONG(n);</div><div class='ctx'>     if (len &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "attempt to take negative size");</div><div class='add'>+        rb_raise(rb_eArgError, "attempt to take negative size");</div><div class='ctx'>     }</div><div class='ctx'>     return rb_ary_subseq(obj, 0, len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.take_while {|obj| block}    -&gt; new_ary</div><div class='del'>- *     ary.take_while                  -&gt; Enumerator</div><div class='add'>+ *    array.take_while {|element| ... } -&gt; new_array</div><div class='add'>+ *    array.take_while -&gt; new_enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Passes elements to the block until the block returns +nil+ or +false+, then</div><div class='del'>- *  stops iterating and returns an array of all prior elements.</div><div class='add'>+ *  Returns a new \Array containing zero or more leading elements of +self+;</div><div class='add'>+ *  does not modify +self+.</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *  With a block given, calls the block with each successive element of +self+;</div><div class='add'>+ *  stops if the block returns +false+ or +nil+;</div><div class='add'>+ *  returns a new \Array containing those elements for which the block returned a truthy value:</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#drop_while</div><div class='add'>+ *    a = [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    a.take_while {|element| element &lt; 3 } # =&gt; [0, 1, 2]</div><div class='add'>+ *    a.take_while {|element| true } # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    a # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='ctx'>  *</div><div class='del'>- *     a = [1, 2, 3, 4, 5, 0]</div><div class='del'>- *     a.take_while {|i| i &lt; 3}    #=&gt; [1, 2]</div><div class='add'>+ *  With no block given, returns a new \Enumerator:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1].take_while # =&gt; #&lt;Enumerator: [0, 1]:take_while&gt;</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -6106,24 +7792,25 @@ rb_ary_take_while(VALUE ary)</div><div class='ctx'> </div><div class='ctx'>     RETURN_ENUMERATOR(ary, 0, 0);</div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;</div><div class='add'>+        if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_ary_take(ary, LONG2FIX(i));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.drop(n)               -&gt; new_ary</div><div class='del'>- *</div><div class='del'>- *  Drops first +n+ elements from +ary+ and returns the rest of the elements in</div><div class='del'>- *  an array.</div><div class='add'>+ *    array.drop(n) -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *  If a negative number is given, raises an ArgumentError.</div><div class='add'>+ *  Returns a new \Array containing all but the first +n+ element of +self+,</div><div class='add'>+ *  where +n+ is a non-negative \Integer;</div><div class='add'>+ *  does not modify +self+.</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#take</div><div class='add'>+ *  Examples:</div><div class='ctx'>  *</div><div class='del'>- *     a = [1, 2, 3, 4, 5, 0]</div><div class='del'>- *     a.drop(3)             #=&gt; [4, 5, 0]</div><div class='add'>+ *    a = [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    a.drop(0) # =&gt; [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    a.drop(1) # =&gt; [1, 2, 3, 4, 5]</div><div class='add'>+ *    a.drop(2) # =&gt; [2, 3, 4, 5]</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -6133,29 +7820,32 @@ rb_ary_drop(VALUE ary, VALUE n)</div><div class='ctx'>     VALUE result;</div><div class='ctx'>     long pos = NUM2LONG(n);</div><div class='ctx'>     if (pos &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "attempt to drop negative size");</div><div class='add'>+        rb_raise(rb_eArgError, "attempt to drop negative size");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     result = rb_ary_subseq(ary, pos, RARRAY_LEN(ary));</div><div class='del'>-    if (result == Qnil) result = rb_ary_new();</div><div class='add'>+    if (NIL_P(result)) result = rb_ary_new();</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.drop_while {|obj| block}     -&gt; new_ary</div><div class='del'>- *     ary.drop_while                  -&gt; Enumerator</div><div class='add'>+ *    array.drop_while {|element| ... } -&gt; new_array</div><div class='add'>+ *    array.drop_while -&gt; new_enumerator</div><div class='add'>+</div><div class='add'>+ *  Returns a new \Array containing zero or more trailing elements of +self+;</div><div class='add'>+ *  does not modify +self+.</div><div class='ctx'>  *</div><div class='del'>- *  Drops elements up to, but not including, the first element for which the</div><div class='del'>- *  block returns +nil+ or +false+ and returns an array containing the</div><div class='del'>- *  remaining elements.</div><div class='add'>+ *  With a block given, calls the block with each successive element of +self+;</div><div class='add'>+ *  stops if the block returns +false+ or +nil+;</div><div class='add'>+ *  returns a new \Array _omitting_ those elements for which the block returned a truthy value:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ *    a = [0, 1, 2, 3, 4, 5]</div><div class='add'>+ *    a.drop_while {|element| element &lt; 3 } # =&gt; [3, 4, 5]</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#take_while</div><div class='add'>+ *  With no block given, returns a new \Enumerator:</div><div class='ctx'>  *</div><div class='del'>- *     a = [1, 2, 3, 4, 5, 0]</div><div class='del'>- *     a.drop_while {|i| i &lt; 3 }   #=&gt; [3, 4, 5, 0]</div><div class='add'>+ *    [0, 1].drop_while # =&gt; # =&gt; #&lt;Enumerator: [0, 1]:drop_while&gt;</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -6166,17 +7856,42 @@ rb_ary_drop_while(VALUE ary)</div><div class='ctx'> </div><div class='ctx'>     RETURN_ENUMERATOR(ary, 0, 0);</div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;</div><div class='add'>+        if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_ary_drop(ary, LONG2FIX(i));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.any? [{|obj| block}  ]   -&gt; true or false</div><div class='del'>- *     ary.any?(pattern)            -&gt; true or false</div><div class='add'>+ *    array.any? -&gt; true or false</div><div class='add'>+ *    array.any? {|element| ... } -&gt; true or false</div><div class='add'>+ *    array.any?(obj) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if any element of +self+ meets a given criterion.</div><div class='add'>+ *</div><div class='add'>+ *  With no block given and no argument, returns +true+ if +self+ has any truthy element,</div><div class='add'>+ *  +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    [nil, 0, false].any? # =&gt; true</div><div class='add'>+ *    [nil, false].any? # =&gt; false</div><div class='add'>+ *    [].any? # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  With a block given and no argument, calls the block with each element in +self+;</div><div class='add'>+ *  returns +true+ if the block returns any truthy value, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2].any? {|element| element &gt; 1 } # =&gt; true</div><div class='add'>+ *    [0, 1, 2].any? {|element| element &gt; 2 } # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#any?</div><div class='add'>+ *  If argument +obj+ is given, returns +true+ if +obj+.&lt;tt&gt;===&lt;/tt&gt; any element,</div><div class='add'>+ *  +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    ['food', 'drink'].any?(/foo/) # =&gt; true</div><div class='add'>+ *    ['food', 'drink'].any?(/bar/) # =&gt; false</div><div class='add'>+ *    [].any?(/foo/) # =&gt; false</div><div class='add'>+ *    [0, 1, 2].any?(1) # =&gt; true</div><div class='add'>+ *    [0, 1, 2].any?(3) # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  Related: Enumerable#any?</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -6190,9 +7905,9 @@ rb_ary_any_p(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>         if (rb_block_given_p()) {</div><div class='ctx'>             rb_warn("given block not used");</div><div class='ctx'>         }</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='del'>-	    if (RTEST(rb_funcall(argv[0], idEqq, 1, RARRAY_AREF(ary, i)))) return Qtrue;</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='add'>+            if (RTEST(rb_funcall(argv[0], idEqq, 1, RARRAY_AREF(ary, i)))) return Qtrue;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (!rb_block_given_p()) {</div><div class='ctx'>         for (i = 0; i &lt; len; ++i) {</div><div class='hunk'>@@ -6200,19 +7915,43 @@ rb_ary_any_p(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='del'>-	    if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) return Qtrue;</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='add'>+            if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) return Qtrue;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.all? [{|obj| block}  ]   -&gt; true or false</div><div class='del'>- *     ary.all?(pattern)            -&gt; true or false</div><div class='add'>+ *    array.all? -&gt; true or false</div><div class='add'>+ *    array.all? {|element| ... } -&gt; true or false</div><div class='add'>+ *    array.all?(obj) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if all elements of +self+ meet a given criterion.</div><div class='add'>+ *</div><div class='add'>+ *  With no block given and no argument, returns +true+ if +self+ contains only truthy elements,</div><div class='add'>+ *  +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, :foo].all? # =&gt; true</div><div class='add'>+ *    [0, nil, 2].all? # =&gt; false</div><div class='add'>+ *    [].all? # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ *  With a block given and no argument, calls the block with each element in +self+;</div><div class='add'>+ *  returns +true+ if the block returns only truthy values, +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#all?</div><div class='add'>+ *    [0, 1, 2].all? { |element| element &lt; 3 } # =&gt; true</div><div class='add'>+ *    [0, 1, 2].all? { |element| element &lt; 2 } # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  If argument +obj+ is given, returns +true+ if &lt;tt&gt;obj.===&lt;/tt&gt; every element, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    ['food', 'fool', 'foot'].all?(/foo/) # =&gt; true</div><div class='add'>+ *    ['food', 'drink'].all?(/bar/) # =&gt; false</div><div class='add'>+ *    [].all?(/foo/) # =&gt; true</div><div class='add'>+ *    [0, 0, 0].all?(0) # =&gt; true</div><div class='add'>+ *    [0, 1, 2].all?(1) # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  Related: Enumerable#all?</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -6245,10 +7984,34 @@ rb_ary_all_p(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.none? [{|obj| block}  ]   -&gt; true or false</div><div class='del'>- *     ary.none?(pattern)            -&gt; true or false</div><div class='add'>+ *    array.none? -&gt; true or false</div><div class='add'>+ *    array.none? {|element| ... } -&gt; true or false</div><div class='add'>+ *    array.none?(obj) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if no element of +self+ meet a given criterion.</div><div class='add'>+ *</div><div class='add'>+ *  With no block given and no argument, returns +true+ if +self+ has no truthy elements,</div><div class='add'>+ *  +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#none?</div><div class='add'>+ *    [nil, false].none? # =&gt; true</div><div class='add'>+ *    [nil, 0, false].none? # =&gt; false</div><div class='add'>+ *    [].none? # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ *  With a block given and no argument, calls the block with each element in +self+;</div><div class='add'>+ *  returns +true+ if the block returns no truthy value, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2].none? {|element| element &gt; 3 } # =&gt; true</div><div class='add'>+ *    [0, 1, 2].none? {|element| element &gt; 1 } # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  If argument +obj+ is given, returns +true+ if &lt;tt&gt;obj.===&lt;/tt&gt; no element, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    ['food', 'drink'].none?(/bar/) # =&gt; true</div><div class='add'>+ *    ['food', 'drink'].none?(/foo/) # =&gt; false</div><div class='add'>+ *    [].none?(/foo/) # =&gt; true</div><div class='add'>+ *    [0, 1, 2].none?(3) # =&gt; true</div><div class='add'>+ *    [0, 1, 2].none?(1) # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  Related: Enumerable#none?</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -6281,10 +8044,38 @@ rb_ary_none_p(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ary.one? [{|obj| block}  ]   -&gt; true or false</div><div class='del'>- *     ary.one?(pattern)            -&gt; true or false</div><div class='add'>+ *    array.one? -&gt; true or false</div><div class='add'>+ *    array.one? {|element| ... } -&gt; true or false</div><div class='add'>+ *    array.one?(obj) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if exactly one element of +self+ meets a given criterion.</div><div class='add'>+ *</div><div class='add'>+ *  With no block given and no argument, returns +true+ if +self+ has exactly one truthy element,</div><div class='add'>+ *  +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    [nil, 0].one? # =&gt; true</div><div class='add'>+ *    [0, 0].one? # =&gt; false</div><div class='add'>+ *    [nil, nil].one? # =&gt; false</div><div class='add'>+ *    [].one? # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  With a block given and no argument, calls the block with each element in +self+;</div><div class='add'>+ *  returns +true+ if the block a truthy value for exactly one element, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    [0, 1, 2].one? {|element| element &gt; 0 } # =&gt; false</div><div class='add'>+ *    [0, 1, 2].one? {|element| element &gt; 1 } # =&gt; true</div><div class='add'>+ *    [0, 1, 2].one? {|element| element &gt; 2 } # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  If argument +obj+ is given, returns +true+ if &lt;tt&gt;obj.===&lt;/tt&gt; exactly one element,</div><div class='add'>+ *  +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#one?</div><div class='add'>+ *    [0, 1, 2].one?(0) # =&gt; true</div><div class='add'>+ *    [0, 0, 1].one?(0) # =&gt; false</div><div class='add'>+ *    [1, 1, 2].one?(0) # =&gt; false</div><div class='add'>+ *    ['food', 'drink'].one?(/bar/) # =&gt; false</div><div class='add'>+ *    ['food', 'drink'].one?(/foo/) # =&gt; true</div><div class='add'>+ *    [].one?(/foo/) # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  Related: Enumerable#one?</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -6326,19 +8117,22 @@ rb_ary_one_p(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   ary.dig(idx, ...)                 -&gt; object</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    array.dig(index, *identifiers) -&gt; object</div><div class='ctx'>  *</div><div class='del'>- * Extracts the nested value specified by the sequence of &lt;i&gt;idx&lt;/i&gt;</div><div class='del'>- * objects by calling +dig+ at each step, returning +nil+ if any</div><div class='del'>- * intermediate step is +nil+.</div><div class='add'>+ *  Finds and returns the object in nested objects</div><div class='add'>+ *  that is specified by +index+ and +identifiers+.</div><div class='add'>+ *  The nested objects may be instances of various classes.</div><div class='add'>+ *  See {Dig Methods}[rdoc-ref:dig_methods.rdoc].</div><div class='ctx'>  *</div><div class='del'>- *   a = [[1, [2, 3]]]</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:foo, [:bar, :baz, [:bat, :bam]]]</div><div class='add'>+ *    a.dig(1) # =&gt; [:bar, :baz, [:bat, :bam]]</div><div class='add'>+ *    a.dig(1, 2) # =&gt; [:bat, :bam]</div><div class='add'>+ *    a.dig(1, 2, 0) # =&gt; :bat</div><div class='add'>+ *    a.dig(1, 2, 3) # =&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *   a.dig(0, 1, 1)                    #=&gt; 3</div><div class='del'>- *   a.dig(1, 2, 3)                    #=&gt; nil</div><div class='del'>- *   a.dig(0, 0, 0)                    #=&gt; TypeError: Integer does not have #dig method</div><div class='del'>- *   [42, {foo: :bar}].dig(1, :foo)    #=&gt; :bar</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -6356,14 +8150,8 @@ finish_exact_sum(long n, VALUE r, VALUE v, int z)</div><div class='ctx'> {</div><div class='ctx'>     if (n != 0)</div><div class='ctx'>         v = rb_fix_plus(LONG2FIX(n), v);</div><div class='del'>-    if (r != Qundef) {</div><div class='del'>-	/* r can be an Integer when mathn is loaded */</div><div class='del'>-	if (FIXNUM_P(r))</div><div class='del'>-	    v = rb_fix_plus(r, v);</div><div class='del'>-	else if (RB_TYPE_P(r, T_BIGNUM))</div><div class='del'>-	    v = rb_big_plus(r, v);</div><div class='del'>-	else</div><div class='del'>-	    v = rb_rational_plus(r, v);</div><div class='add'>+    if (!UNDEF_P(r)) {</div><div class='add'>+        v = rb_rational_plus(r, v);</div><div class='ctx'>     }</div><div class='ctx'>     else if (!n &amp;&amp; z) {</div><div class='ctx'>         v = rb_fix_plus(LONG2FIX(0), v);</div><div class='hunk'>@@ -6373,43 +8161,41 @@ finish_exact_sum(long n, VALUE r, VALUE v, int z)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ary.sum(init=0)                    -&gt; number</div><div class='del'>- *   ary.sum(init=0) {|e| expr }        -&gt; number</div><div class='del'>- *</div><div class='del'>- * Returns the sum of elements.</div><div class='del'>- * For example, [e1, e2, e3].sum returns init + e1 + e2 + e3.</div><div class='add'>+ *   array.sum(init = 0) -&gt; object</div><div class='add'>+ *   array.sum(init = 0) {|element| ... } -&gt; object</div><div class='ctx'>  *</div><div class='del'>- * If a block is given, the block is applied to each element</div><div class='del'>- * before addition.</div><div class='add'>+ *  When no block is given, returns the object equivalent to:</div><div class='ctx'>  *</div><div class='del'>- * If &lt;i&gt;ary&lt;/i&gt; is empty, it returns &lt;i&gt;init&lt;/i&gt;.</div><div class='add'>+ *    sum = init</div><div class='add'>+ *    array.each {|element| sum += element }</div><div class='add'>+ *    sum</div><div class='ctx'>  *</div><div class='del'>- *   [].sum                             #=&gt; 0</div><div class='del'>- *   [].sum(0.0)                        #=&gt; 0.0</div><div class='del'>- *   [1, 2, 3].sum                      #=&gt; 6</div><div class='del'>- *   [3, 5.5].sum                       #=&gt; 8.5</div><div class='del'>- *   [2.5, 3.0].sum(0.0) {|e| e * e }   #=&gt; 15.25</div><div class='del'>- *   [Object.new].sum                   #=&gt; TypeError</div><div class='add'>+ *  For example, &lt;tt&gt;[e1, e2, e3].sum&lt;/tt&gt; returns &lt;tt&gt;init + e1 + e2 + e3&lt;/tt&gt;.</div><div class='ctx'>  *</div><div class='del'>- * The (arithmetic) mean value of an array can be obtained as follows.</div><div class='add'>+ *  Examples:</div><div class='ctx'>  *</div><div class='del'>- *   mean = ary.sum(0.0) / ary.length</div><div class='add'>+ *    a = [0, 1, 2, 3]</div><div class='add'>+ *    a.sum # =&gt; 6</div><div class='add'>+ *    a.sum(100) # =&gt; 106</div><div class='ctx'>  *</div><div class='del'>- * This method can be used for non-numeric objects by</div><div class='del'>- * explicit &lt;i&gt;init&lt;/i&gt; argument.</div><div class='add'>+ *  The elements need not be numeric, but must be &lt;tt&gt;+&lt;/tt&gt;-compatible</div><div class='add'>+ *  with each other and with +init+:</div><div class='ctx'>  *</div><div class='del'>- *   ["a", "b", "c"].sum("")            #=&gt; "abc"</div><div class='del'>- *   [[1], [[2]], [3]].sum([])          #=&gt; [1, [2], 3]</div><div class='add'>+ *    a = ['abc', 'def', 'ghi']</div><div class='add'>+ *    a.sum('jkl') # =&gt; "jklabcdefghi"</div><div class='ctx'>  *</div><div class='del'>- * However, Array#join and Array#flatten is faster than Array#sum for</div><div class='del'>- * array of strings and array of arrays.</div><div class='add'>+ *  When a block is given, it is called with each element</div><div class='add'>+ *  and the block's return value (instead of the element itself) is used as the addend:</div><div class='ctx'>  *</div><div class='del'>- *   ["a", "b", "c"].join               #=&gt; "abc"</div><div class='del'>- *   [[1], [[2]], [3]].flatten(1)       #=&gt; [1, [2], 3]</div><div class='add'>+ *    a = ['zero', 1, :two]</div><div class='add'>+ *    s = a.sum('Coerced and concatenated: ') {|element| element.to_s }</div><div class='add'>+ *    s # =&gt; "Coerced and concatenated: zero1two"</div><div class='ctx'>  *</div><div class='add'>+ *  Notes:</div><div class='ctx'>  *</div><div class='del'>- * Array#sum method may not respect method redefinition of "+" methods</div><div class='del'>- * such as Integer#+.</div><div class='add'>+ *  - Array#join and Array#flatten may be faster than Array#sum</div><div class='add'>+ *    for an \Array of Strings or an \Array of Arrays.</div><div class='add'>+ *  - Array#sum method may not respect method redefinition of "+" methods such as Integer#+.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -6440,10 +8226,10 @@ rb_ary_sum(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>                 n = 0;</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='del'>-        else if (RB_TYPE_P(e, T_BIGNUM))</div><div class='add'>+        else if (RB_BIGNUM_TYPE_P(e))</div><div class='ctx'>             v = rb_big_plus(e, v);</div><div class='ctx'>         else if (RB_TYPE_P(e, T_RATIONAL)) {</div><div class='del'>-            if (r == Qundef)</div><div class='add'>+            if (UNDEF_P(r))</div><div class='ctx'>                 r = e;</div><div class='ctx'>             else</div><div class='ctx'>                 r = rb_rational_plus(r, e);</div><div class='hunk'>@@ -6460,15 +8246,15 @@ rb_ary_sum(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     if (RB_FLOAT_TYPE_P(e)) {</div><div class='ctx'>         /*</div><div class='ctx'>          * Kahan-Babuska balancing compensated summation algorithm</div><div class='del'>-         * See http://link.springer.com/article/10.1007/s00607-005-0139-x</div><div class='add'>+         * See https://link.springer.com/article/10.1007/s00607-005-0139-x</div><div class='ctx'>          */</div><div class='ctx'>         double f, c;</div><div class='add'>+        double x, t;</div><div class='ctx'> </div><div class='ctx'>         f = NUM2DBL(v);</div><div class='ctx'>         c = 0.0;</div><div class='ctx'>         goto has_float_value;</div><div class='ctx'>         for (; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-            double x, t;</div><div class='ctx'>             e = RARRAY_AREF(ary, i);</div><div class='ctx'>             if (block_given)</div><div class='ctx'>                 e = rb_yield(e);</div><div class='hunk'>@@ -6477,7 +8263,7 @@ rb_ary_sum(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>                 x = RFLOAT_VALUE(e);</div><div class='ctx'>             else if (FIXNUM_P(e))</div><div class='ctx'>                 x = FIX2LONG(e);</div><div class='del'>-            else if (RB_TYPE_P(e, T_BIGNUM))</div><div class='add'>+            else if (RB_BIGNUM_TYPE_P(e))</div><div class='ctx'>                 x = rb_big2dbl(e);</div><div class='ctx'>             else if (RB_TYPE_P(e, T_RATIONAL))</div><div class='ctx'>                 x = rb_num2dbl(e);</div><div class='hunk'>@@ -6523,56 +8309,135 @@ rb_ary_sum(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>     return v;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_deconstruct(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='del'>- *  Arrays are ordered, integer-indexed collections of any object.</div><div class='add'>+ *  An \Array is an ordered, integer-indexed collection of objects, called _elements_.</div><div class='add'>+ *  Any object (even another array) may be an array element,</div><div class='add'>+ *  and an array can contain objects of different types.</div><div class='add'>+ *</div><div class='add'>+ *  == \Array Indexes</div><div class='add'>+ *</div><div class='add'>+ *  \Array indexing starts at 0, as in C or Java.</div><div class='add'>+ *</div><div class='add'>+ *  A positive index is an offset from the first element:</div><div class='add'>+ *</div><div class='add'>+ *  - Index 0 indicates the first element.</div><div class='add'>+ *  - Index 1 indicates the second element.</div><div class='add'>+ *  - ...</div><div class='add'>+ *</div><div class='add'>+ *  A negative index is an offset, backwards, from the end of the array:</div><div class='add'>+ *</div><div class='add'>+ *  - Index -1 indicates the last element.</div><div class='add'>+ *  - Index -2 indicates the next-to-last element.</div><div class='add'>+ *  - ...</div><div class='add'>+ *</div><div class='add'>+ *  A non-negative index is &lt;i&gt;in range&lt;/i&gt; if and only if it is smaller than</div><div class='add'>+ *  the size of the array.  For a 3-element array:</div><div class='add'>+ *</div><div class='add'>+ *  - Indexes 0 through 2 are in range.</div><div class='add'>+ *  - Index 3 is out of range.</div><div class='add'>+ *</div><div class='add'>+ *  A negative index is &lt;i&gt;in range&lt;/i&gt; if and only if its absolute value is</div><div class='add'>+ *  not larger than the size of the array.  For a 3-element array:</div><div class='add'>+ *</div><div class='add'>+ *  - Indexes -1 through -3 are in range.</div><div class='add'>+ *  - Index -4 is out of range.</div><div class='add'>+ *</div><div class='add'>+ *  Although the effective index into an array is always an integer,</div><div class='add'>+ *  some methods (both within and outside of class \Array)</div><div class='add'>+ *  accept one or more non-integer arguments that are</div><div class='add'>+ *  {integer-convertible objects}[rdoc-ref:implicit_conversion.rdoc@Integer-Convertible+Objects].</div><div class='ctx'>  *</div><div class='del'>- *  Array indexing starts at 0, as in C or Java.  A negative index is assumed</div><div class='del'>- *  to be relative to the end of the array---that is, an index of -1 indicates</div><div class='del'>- *  the last element of the array, -2 is the next to last element in the</div><div class='del'>- *  array, and so on.</div><div class='ctx'>  *</div><div class='ctx'>  *  == Creating Arrays</div><div class='ctx'>  *</div><div class='del'>- *  A new array can be created by using the literal constructor</div><div class='del'>- *  &lt;code&gt;[]&lt;/code&gt;.  Arrays can contain different types of objects.  For</div><div class='del'>- *  example, the array below contains an Integer, a String and a Float:</div><div class='add'>+ *  You can create an \Array object explicitly with:</div><div class='ctx'>  *</div><div class='del'>- *     ary = [1, "two", 3.0] #=&gt; [1, "two", 3.0]</div><div class='add'>+ *  - An {array literal}[rdoc-ref:literals.rdoc@Array+Literals]:</div><div class='ctx'>  *</div><div class='del'>- *  An array can also be created by explicitly calling Array.new with zero, one</div><div class='del'>- *  (the initial size of the Array) or two arguments (the initial size and a</div><div class='del'>- *  default object).</div><div class='add'>+ *      [1, 'one', :one, [2, 'two', :two]]</div><div class='ctx'>  *</div><div class='del'>- *     ary = Array.new    #=&gt; []</div><div class='del'>- *     Array.new(3)       #=&gt; [nil, nil, nil]</div><div class='del'>- *     Array.new(3, true) #=&gt; [true, true, true]</div><div class='add'>+ *  - A {%w or %W: string-array Literal}[rdoc-ref:literals.rdoc@25w+and+-25W-3A+String-Array+Literals]:</div><div class='ctx'>  *</div><div class='del'>- *  Note that the second argument populates the array with references to the</div><div class='del'>- *  same object.  Therefore, it is only recommended in cases when you need to</div><div class='del'>- *  instantiate arrays with natively immutable objects such as Symbols,</div><div class='del'>- *  numbers, true or false.</div><div class='add'>+ *      %w[foo bar baz] # =&gt; ["foo", "bar", "baz"]</div><div class='add'>+ *      %w[1 % *]       # =&gt; ["1", "%", "*"]</div><div class='ctx'>  *</div><div class='del'>- *  To create an array with separate objects a block can be passed instead.</div><div class='del'>- *  This method is safe to use with mutable objects such as hashes, strings or</div><div class='del'>- *  other arrays:</div><div class='add'>+ *  - A {%i pr %I: symbol-array Literal}[rdoc-ref:literals.rdoc@25i+and+-25I-3A+Symbol-Array+Literals]:</div><div class='ctx'>  *</div><div class='del'>- *     Array.new(4) {Hash.new}    #=&gt; [{}, {}, {}, {}]</div><div class='del'>- *     Array.new(4) {|i| i.to_s } #=&gt; ["0", "1", "2", "3"]</div><div class='add'>+ *      %i[foo bar baz] # =&gt; [:foo, :bar, :baz]</div><div class='add'>+ *      %i[1 % *]       # =&gt; [:"1", :%, :*]</div><div class='ctx'>  *</div><div class='del'>- *  This is also a quick way to build up multi-dimensional arrays:</div><div class='add'>+ *  - \Method Kernel#Array:</div><div class='ctx'>  *</div><div class='del'>- *     empty_table = Array.new(3) {Array.new(3)}</div><div class='del'>- *     #=&gt; [[nil, nil, nil], [nil, nil, nil], [nil, nil, nil]]</div><div class='add'>+ *      Array(["a", "b"])             # =&gt; ["a", "b"]</div><div class='add'>+ *      Array(1..5)                   # =&gt; [1, 2, 3, 4, 5]</div><div class='add'>+ *      Array(key: :value)            # =&gt; [[:key, :value]]</div><div class='add'>+ *      Array(nil)                    # =&gt; []</div><div class='add'>+ *      Array(1)                      # =&gt; [1]</div><div class='add'>+ *      Array({:a =&gt; "a", :b =&gt; "b"}) # =&gt; [[:a, "a"], [:b, "b"]]</div><div class='ctx'>  *</div><div class='del'>- *  An array can also be created by using the Array() method, provided by</div><div class='del'>- *  Kernel, which tries to call #to_ary, then #to_a on its argument.</div><div class='add'>+ *  - \Method Array.new:</div><div class='ctx'>  *</div><div class='del'>- *	Array({:a =&gt; "a", :b =&gt; "b"}) #=&gt; [[:a, "a"], [:b, "b"]]</div><div class='add'>+ *      Array.new               # =&gt; []</div><div class='add'>+ *      Array.new(3)            # =&gt; [nil, nil, nil]</div><div class='add'>+ *      Array.new(4) {Hash.new} # =&gt; [{}, {}, {}, {}]</div><div class='add'>+ *      Array.new(3, true)      # =&gt; [true, true, true]</div><div class='add'>+ *</div><div class='add'>+ *    Note that the last example above populates the array</div><div class='add'>+ *    with references to the same object.</div><div class='add'>+ *    This is recommended only in cases where that object is a natively immutable object</div><div class='add'>+ *    such as a symbol, a numeric, +nil+, +true+, or +false+.</div><div class='add'>+ *</div><div class='add'>+ *    Another way to create an array with various objects, using a block;</div><div class='add'>+ *    this usage is safe for mutable objects such as hashes, strings or</div><div class='add'>+ *    other arrays:</div><div class='add'>+ *</div><div class='add'>+ *      Array.new(4) {|i| i.to_s } # =&gt; ["0", "1", "2", "3"]</div><div class='add'>+ *</div><div class='add'>+ *    Here is a way to create a multi-dimensional array:</div><div class='add'>+ *</div><div class='add'>+ *      Array.new(3) {Array.new(3)}</div><div class='add'>+ *      # =&gt; [[nil, nil, nil], [nil, nil, nil], [nil, nil, nil]]</div><div class='add'>+ *</div><div class='add'>+ *  A number of Ruby methods, both in the core and in the standard library,</div><div class='add'>+ *  provide instance method +to_a+, which converts an object to an array.</div><div class='add'>+ *</div><div class='add'>+ *  - ARGF#to_a</div><div class='add'>+ *  - Array#to_a</div><div class='add'>+ *  - Enumerable#to_a</div><div class='add'>+ *  - Hash#to_a</div><div class='add'>+ *  - MatchData#to_a</div><div class='add'>+ *  - NilClass#to_a</div><div class='add'>+ *  - OptionParser#to_a</div><div class='add'>+ *  - Range#to_a</div><div class='add'>+ *  - Set#to_a</div><div class='add'>+ *  - Struct#to_a</div><div class='add'>+ *  - Time#to_a</div><div class='add'>+ *  - Benchmark::Tms#to_a</div><div class='add'>+ *  - CSV::Table#to_a</div><div class='add'>+ *  - Enumerator::Lazy#to_a</div><div class='add'>+ *  - Gem::List#to_a</div><div class='add'>+ *  - Gem::NameTuple#to_a</div><div class='add'>+ *  - Gem::Platform#to_a</div><div class='add'>+ *  - Gem::RequestSet::Lockfile::Tokenizer#to_a</div><div class='add'>+ *  - Gem::SourceList#to_a</div><div class='add'>+ *  - OpenSSL::X509::Extension#to_a</div><div class='add'>+ *  - OpenSSL::X509::Name#to_a</div><div class='add'>+ *  - Racc::ISet#to_a</div><div class='add'>+ *  - Rinda::RingFinger#to_a</div><div class='add'>+ *  - Ripper::Lexer::Elem#to_a</div><div class='add'>+ *  - RubyVM::InstructionSequence#to_a</div><div class='add'>+ *  - YAML::DBM#to_a</div><div class='ctx'>  *</div><div class='ctx'>  *  == Example Usage</div><div class='ctx'>  *</div><div class='ctx'>  *  In addition to the methods it mixes in through the Enumerable module, the</div><div class='del'>- *  Array class has proprietary methods for accessing, searching and otherwise</div><div class='add'>+ *  \Array class has proprietary methods for accessing, searching and otherwise</div><div class='ctx'>  *  manipulating arrays.</div><div class='ctx'>  *</div><div class='ctx'>  *  Some of the more common ones are illustrated below.</div><div class='hunk'>@@ -6620,7 +8485,7 @@ rb_ary_sum(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>  *</div><div class='ctx'>  *     arr.drop(3) #=&gt; [4, 5, 6]</div><div class='ctx'>  *</div><div class='del'>- *  == Obtaining Information about an Array</div><div class='add'>+ *  == Obtaining Information about an \Array</div><div class='ctx'>  *</div><div class='ctx'>  *  Arrays keep track of their own length at all times.  To query an array</div><div class='ctx'>  *  about the number of elements it contains, use #length, #count or #size.</div><div class='hunk'>@@ -6658,7 +8523,7 @@ rb_ary_sum(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>  *     arr.insert(3, 'orange', 'pear', 'grapefruit')</div><div class='ctx'>  *     #=&gt; [0, 1, 2, "orange", "pear", "grapefruit", "apple", 3, 4, 5, 6]</div><div class='ctx'>  *</div><div class='del'>- *  == Removing Items from an Array</div><div class='add'>+ *  == Removing Items from an \Array</div><div class='ctx'>  *</div><div class='ctx'>  *  The method #pop removes the last element in an array and returns it:</div><div class='ctx'>  *</div><div class='hunk'>@@ -6700,9 +8565,9 @@ rb_ary_sum(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>  *</div><div class='ctx'>  *  == Iterating over Arrays</div><div class='ctx'>  *</div><div class='del'>- *  Like all classes that include the Enumerable module, Array has an each</div><div class='add'>+ *  Like all classes that include the Enumerable module, \Array has an each</div><div class='ctx'>  *  method, which defines what elements should be iterated over and how.  In</div><div class='del'>- *  case of Array's #each, all elements in the Array instance are yielded to</div><div class='add'>+ *  case of Array's #each, all elements in the \Array instance are yielded to</div><div class='ctx'>  *  the supplied block in sequence.</div><div class='ctx'>  *</div><div class='ctx'>  *  Note that this operation leaves the array unchanged.</div><div class='hunk'>@@ -6728,7 +8593,8 @@ rb_ary_sum(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>  *     arr.map! {|a| a**2}   #=&gt; [1, 4, 9, 16, 25]</div><div class='ctx'>  *     arr                   #=&gt; [1, 4, 9, 16, 25]</div><div class='ctx'>  *</div><div class='del'>- *  == Selecting Items from an Array</div><div class='add'>+ *</div><div class='add'>+ *  == Selecting Items from an \Array</div><div class='ctx'>  *</div><div class='ctx'>  *  Elements can be selected from an array according to criteria defined in a</div><div class='ctx'>  *  block.  The selection can happen in a destructive or a non-destructive</div><div class='hunk'>@@ -6759,18 +8625,198 @@ rb_ary_sum(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'>  *     arr.keep_if {|a| a &lt; 4}   #=&gt; [1, 2, 3]</div><div class='ctx'>  *     arr                       #=&gt; [1, 2, 3]</div><div class='ctx'>  *</div><div class='add'>+ *  == What's Here</div><div class='add'>+ *</div><div class='add'>+ *  First, what's elsewhere. \Class \Array:</div><div class='add'>+ *</div><div class='add'>+ *  - Inherits from {class Object}[rdoc-ref:Object@What-27s+Here].</div><div class='add'>+ *  - Includes {module Enumerable}[rdoc-ref:Enumerable@What-27s+Here],</div><div class='add'>+ *    which provides dozens of additional methods.</div><div class='add'>+ *</div><div class='add'>+ *  Here, class \Array provides methods that are useful for:</div><div class='add'>+ *</div><div class='add'>+ *  - {Creating an Array}[rdoc-ref:Array@Methods+for+Creating+an+Array]</div><div class='add'>+ *  - {Querying}[rdoc-ref:Array@Methods+for+Querying]</div><div class='add'>+ *  - {Comparing}[rdoc-ref:Array@Methods+for+Comparing]</div><div class='add'>+ *  - {Fetching}[rdoc-ref:Array@Methods+for+Fetching]</div><div class='add'>+ *  - {Assigning}[rdoc-ref:Array@Methods+for+Assigning]</div><div class='add'>+ *  - {Deleting}[rdoc-ref:Array@Methods+for+Deleting]</div><div class='add'>+ *  - {Combining}[rdoc-ref:Array@Methods+for+Combining]</div><div class='add'>+ *  - {Iterating}[rdoc-ref:Array@Methods+for+Iterating]</div><div class='add'>+ *  - {Converting}[rdoc-ref:Array@Methods+for+Converting]</div><div class='add'>+ *  - {And more....}[rdoc-ref:Array@Other+Methods]</div><div class='add'>+ *</div><div class='add'>+ *  === Methods for Creating an \Array</div><div class='add'>+ *</div><div class='add'>+ *  - ::[]: Returns a new array populated with given objects.</div><div class='add'>+ *  - ::new: Returns a new array.</div><div class='add'>+ *  - ::try_convert: Returns a new array created from a given object.</div><div class='add'>+ *</div><div class='add'>+ *  === Methods for Querying</div><div class='add'>+ *</div><div class='add'>+ *  - #length, #size: Returns the count of elements.</div><div class='add'>+ *  - #include?: Returns whether any element &lt;tt&gt;==&lt;/tt&gt; a given object.</div><div class='add'>+ *  - #empty?: Returns whether there are no elements.</div><div class='add'>+ *  - #all?: Returns whether all elements meet a given criterion.</div><div class='add'>+ *  - #any?: Returns whether any element meets a given criterion.</div><div class='add'>+ *  - #none?: Returns whether no element &lt;tt&gt;==&lt;/tt&gt; a given object.</div><div class='add'>+ *  - #one?: Returns whether exactly one element &lt;tt&gt;==&lt;/tt&gt; a given object.</div><div class='add'>+ *  - #count: Returns the count of elements that meet a given criterion.</div><div class='add'>+ *  - #find_index, #index: Returns the index of the first element that meets a given criterion.</div><div class='add'>+ *  - #rindex: Returns the index of the last element that meets a given criterion.</div><div class='add'>+ *  - #hash: Returns the integer hash code.</div><div class='add'>+ *</div><div class='add'>+ *  === Methods for Comparing</div><div class='add'>+ *</div><div class='add'>+ *  - #&lt;=&gt;: Returns -1, 0, or 1 * as +self+ is less than, equal to, or</div><div class='add'>+ *    greater than a given object.</div><div class='add'>+ *  - #==: Returns whether each element in +self+ is &lt;tt&gt;==&lt;/tt&gt; to the corresponding element</div><div class='add'>+ *    in a given object.</div><div class='add'>+ *  - #eql?: Returns whether each element in +self+ is &lt;tt&gt;eql?&lt;/tt&gt; to the corresponding</div><div class='add'>+ *    element in a given object.</div><div class='add'>+</div><div class='add'>+ *  === Methods for Fetching</div><div class='add'>+ *</div><div class='add'>+ *  These methods do not modify +self+.</div><div class='add'>+ *</div><div class='add'>+ *  - #[]: Returns one or more elements.</div><div class='add'>+ *  - #fetch: Returns the element at a given offset.</div><div class='add'>+ *  - #first: Returns one or more leading elements.</div><div class='add'>+ *  - #last: Returns one or more trailing elements.</div><div class='add'>+ *  - #max: Returns one or more maximum-valued elements,</div><div class='add'>+ *    as determined by &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; or a given block.</div><div class='add'>+ *  - #min: Returns one or more minimum-valued elements,</div><div class='add'>+ *    as determined by &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; or a given block.</div><div class='add'>+ *  - #minmax: Returns the minimum-valued and maximum-valued elements,</div><div class='add'>+ *    as determined by &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; or a given block.</div><div class='add'>+ *  - #assoc: Returns the first element that is an array</div><div class='add'>+ *    whose first element &lt;tt&gt;==&lt;/tt&gt; a given object.</div><div class='add'>+ *  - #rassoc: Returns the first element that is an array</div><div class='add'>+ *    whose second element &lt;tt&gt;==&lt;/tt&gt; a given object.</div><div class='add'>+ *  - #at: Returns the element at a given offset.</div><div class='add'>+ *  - #values_at: Returns the elements at given offsets.</div><div class='add'>+ *  - #dig: Returns the object in nested objects</div><div class='add'>+ *    that is specified by a given index and additional arguments.</div><div class='add'>+ *  - #drop: Returns trailing elements as determined by a given index.</div><div class='add'>+ *  - #take: Returns leading elements as determined by a given index.</div><div class='add'>+ *  - #drop_while: Returns trailing elements as determined by a given block.</div><div class='add'>+ *  - #take_while: Returns leading elements as determined by a given block.</div><div class='add'>+ *  - #slice: Returns consecutive elements as determined by a given argument.</div><div class='add'>+ *  - #sort: Returns all elements in an order determined by &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; or a given block.</div><div class='add'>+ *  - #reverse: Returns all elements in reverse order.</div><div class='add'>+ *  - #compact: Returns an array containing all non-+nil+ elements.</div><div class='add'>+ *  - #select, #filter: Returns an array containing elements selected by a given block.</div><div class='add'>+ *  - #uniq: Returns an array containing non-duplicate elements.</div><div class='add'>+ *  - #rotate: Returns all elements with some rotated from one end to the other.</div><div class='add'>+ *  - #bsearch: Returns an element selected via a binary search</div><div class='add'>+ *    as determined by a given block.</div><div class='add'>+ *  - #bsearch_index: Returns the index of an element selected via a binary search</div><div class='add'>+ *    as determined by a given block.</div><div class='add'>+ *  - #sample: Returns one or more random elements.</div><div class='add'>+ *  - #shuffle: Returns elements in a random order.</div><div class='add'>+ *</div><div class='add'>+ *  === Methods for Assigning</div><div class='add'>+ *</div><div class='add'>+ *  These methods add, replace, or reorder elements in +self+.</div><div class='add'>+ *</div><div class='add'>+ *  - #[]=: Assigns specified elements with a given object.</div><div class='add'>+ *  - #push, #append, #&lt;&lt;: Appends trailing elements.</div><div class='add'>+ *  - #unshift, #prepend: Prepends leading elements.</div><div class='add'>+ *  - #insert: Inserts given objects at a given offset; does not replace elements.</div><div class='add'>+ *  - #concat: Appends all elements from given arrays.</div><div class='add'>+ *  - #fill: Replaces specified elements with specified objects.</div><div class='add'>+ *  - #replace: Replaces the content of +self+ with the content of a given array.</div><div class='add'>+ *  - #reverse!: Replaces +self+ with its elements reversed.</div><div class='add'>+ *  - #rotate!: Replaces +self+ with its elements rotated.</div><div class='add'>+ *  - #shuffle!: Replaces +self+ with its elements in random order.</div><div class='add'>+ *  - #sort!: Replaces +self+ with its elements sorted,</div><div class='add'>+ *    as determined by &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; or a given block.</div><div class='add'>+ *  - #sort_by!: Replaces +self+ with its elements sorted, as determined by a given block.</div><div class='add'>+ *</div><div class='add'>+ *  === Methods for Deleting</div><div class='add'>+ *</div><div class='add'>+ *  Each of these methods removes elements from +self+:</div><div class='add'>+ *</div><div class='add'>+ *  - #pop: Removes and returns the last element.</div><div class='add'>+ *  - #shift:  Removes and returns the first element.</div><div class='add'>+ *  - #compact!: Removes all +nil+ elements.</div><div class='add'>+ *  - #delete: Removes elements equal to a given object.</div><div class='add'>+ *  - #delete_at: Removes the element at a given offset.</div><div class='add'>+ *  - #delete_if: Removes elements specified by a given block.</div><div class='add'>+ *  - #keep_if: Removes elements not specified by a given block.</div><div class='add'>+ *  - #reject!: Removes elements specified by a given block.</div><div class='add'>+ *  - #select!, #filter!: Removes elements not specified by a given block.</div><div class='add'>+ *  - #slice!: Removes and returns a sequence of elements.</div><div class='add'>+ *  - #uniq!: Removes duplicates.</div><div class='add'>+ *</div><div class='add'>+ *  === Methods for Combining</div><div class='add'>+ *</div><div class='add'>+ *  - #&amp;: Returns an array containing elements found both in +self+ and a given array.</div><div class='add'>+ *  - #intersection: Returns an array containing elements found both in +self+</div><div class='add'>+ *    and in each given array.</div><div class='add'>+ *  - #+: Returns an array containing all elements of +self+ followed by all elements of a given array.</div><div class='add'>+ *  - #-: Returns an array containing all elements of +self+ that are not found in a given array.</div><div class='add'>+ *  - #|: Returns an array containing all elements of +self+ and all elements of a given array,</div><div class='add'>+ *    duplicates removed.</div><div class='add'>+ *  - #union: Returns an array containing all elements of +self+ and all elements of given arrays,</div><div class='add'>+ *    duplicates removed.</div><div class='add'>+ *  - #difference: Returns an array containing all elements of +self+ that are not found</div><div class='add'>+ *    in any of the given arrays..</div><div class='add'>+ *  - #product: Returns or yields all combinations of elements from +self+ and given arrays.</div><div class='add'>+ *</div><div class='add'>+ *  === Methods for Iterating</div><div class='add'>+ *</div><div class='add'>+ *  - #each: Passes each element to a given block.</div><div class='add'>+ *  - #reverse_each:  Passes each element, in reverse order, to a given block.</div><div class='add'>+ *  - #each_index: Passes each element index to a given block.</div><div class='add'>+ *  - #cycle: Calls a given block with each element, then does so again,</div><div class='add'>+ *    for a specified number of times, or forever.</div><div class='add'>+ *  - #combination: Calls a given block with combinations of elements of +self+;</div><div class='add'>+ *    a combination does not use the same element more than once.</div><div class='add'>+ *  - #permutation: Calls a given block with permutations of elements of +self+;</div><div class='add'>+ *    a permutation does not use the same element more than once.</div><div class='add'>+ *  - #repeated_combination: Calls a given block with combinations of elements of +self+;</div><div class='add'>+ *    a combination may use the same element more than once.</div><div class='add'>+ *  - #repeated_permutation: Calls a given block with permutations of elements of +self+;</div><div class='add'>+ *    a permutation may use the same element more than once.</div><div class='add'>+ *</div><div class='add'>+ *  === Methods for Converting</div><div class='add'>+ *</div><div class='add'>+ *  - #map, #collect: Returns an array containing the block return-value for each element.</div><div class='add'>+ *  - #map!, #collect!: Replaces each element with a block return-value.</div><div class='add'>+ *  - #flatten: Returns an array that is a recursive flattening of +self+.</div><div class='add'>+ *  - #flatten!: Replaces each nested array in +self+ with the elements from that array.</div><div class='add'>+ *  - #inspect, #to_s: Returns a new String containing the elements.</div><div class='add'>+ *  - #join: Returns a newsString containing the elements joined by the field separator.</div><div class='add'>+ *  - #to_a: Returns +self+ or a new array containing all elements.</div><div class='add'>+ *  - #to_ary: Returns +self+.</div><div class='add'>+ *  - #to_h: Returns a new hash formed from the elements.</div><div class='add'>+ *  - #transpose: Transposes +self+, which must be an array of arrays.</div><div class='add'>+ *  - #zip: Returns a new array of arrays containing +self+ and given arrays;</div><div class='add'>+ *    follow the link for details.</div><div class='add'>+ *</div><div class='add'>+ *  === Other Methods</div><div class='add'>+ *</div><div class='add'>+ *  - #*: Returns one of the following:</div><div class='add'>+ *</div><div class='add'>+ *    - With integer argument +n+, a new array that is the concatenation</div><div class='add'>+ *      of +n+ copies of +self+.</div><div class='add'>+ *    - With string argument +field_separator+, a new string that is equivalent to</div><div class='add'>+ *      &lt;tt&gt;join(field_separator)&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  - #abbrev: Returns a hash of unambiguous abbreviations for elements.</div><div class='add'>+ *  - #pack: Packs the elements into a binary sequence.</div><div class='add'>+ *  - #sum: Returns a sum of elements according to either &lt;tt&gt;+&lt;/tt&gt; or a given block.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_Array(void)</div><div class='ctx'> {</div><div class='del'>-#undef rb_intern</div><div class='del'>-#define rb_intern(str) rb_intern_const(str)</div><div class='del'>-</div><div class='ctx'>     rb_cArray  = rb_define_class("Array", rb_cObject);</div><div class='ctx'>     rb_include_module(rb_cArray, rb_mEnumerable);</div><div class='ctx'> </div><div class='ctx'>     rb_define_alloc_func(rb_cArray, empty_ary_alloc);</div><div class='add'>+    rb_define_singleton_method(rb_cArray, "new", rb_ary_s_new, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cArray, "[]", rb_ary_s_create, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cArray, "try_convert", rb_ary_s_try_convert, 1);</div><div class='ctx'>     rb_define_method(rb_cArray, "initialize", rb_ary_initialize, -1);</div><div class='hunk'>@@ -6795,6 +8841,8 @@ Init_Array(void)</div><div class='ctx'>     rb_define_method(rb_cArray, "concat", rb_ary_concat_multi, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "union", rb_ary_union_multi, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "difference", rb_ary_difference_multi, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "intersection", rb_ary_intersection_multi, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "intersect?", rb_ary_intersect_p, 1);</div><div class='ctx'>     rb_define_method(rb_cArray, "&lt;&lt;", rb_ary_push, 1);</div><div class='ctx'>     rb_define_method(rb_cArray, "push", rb_ary_push_m, -1);</div><div class='ctx'>     rb_define_alias(rb_cArray,  "append", "push");</div><div class='hunk'>@@ -6807,7 +8855,7 @@ Init_Array(void)</div><div class='ctx'>     rb_define_method(rb_cArray, "each_index", rb_ary_each_index, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "reverse_each", rb_ary_reverse_each, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "length", rb_ary_length, 0);</div><div class='del'>-    rb_define_alias(rb_cArray,  "size", "length");</div><div class='add'>+    rb_define_method(rb_cArray, "size", rb_ary_length, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "empty?", rb_ary_empty_p, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "find_index", rb_ary_index, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "index", rb_ary_index, -1);</div><div class='hunk'>@@ -6858,6 +8906,7 @@ Init_Array(void)</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cArray, "max", rb_ary_max, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "min", rb_ary_min, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "minmax", rb_ary_minmax, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cArray, "uniq", rb_ary_uniq, 0);</div><div class='ctx'>     rb_define_method(rb_cArray, "uniq!", rb_ary_uniq_bang, 0);</div><div class='hunk'>@@ -6866,9 +8915,6 @@ Init_Array(void)</div><div class='ctx'>     rb_define_method(rb_cArray, "flatten", rb_ary_flatten, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "flatten!", rb_ary_flatten_bang, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "count", rb_ary_count, -1);</div><div class='del'>-    rb_define_method(rb_cArray, "shuffle!", rb_ary_shuffle_bang, -1);</div><div class='del'>-    rb_define_method(rb_cArray, "shuffle", rb_ary_shuffle, -1);</div><div class='del'>-    rb_define_method(rb_cArray, "sample", rb_ary_sample, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "cycle", rb_ary_cycle, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "permutation", rb_ary_permutation, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "combination", rb_ary_combination, 1);</div><div class='hunk'>@@ -6889,5 +8935,7 @@ Init_Array(void)</div><div class='ctx'>     rb_define_method(rb_cArray, "dig", rb_ary_dig, -1);</div><div class='ctx'>     rb_define_method(rb_cArray, "sum", rb_ary_sum, -1);</div><div class='ctx'> </div><div class='del'>-    id_random = rb_intern("random");</div><div class='add'>+    rb_define_method(rb_cArray, "deconstruct", rb_ary_deconstruct, 0);</div><div class='ctx'> }</div><div class='add'>+</div><div class='add'>+#include "array.rbinc"</div><div class='head'>diff --git a/array.rb b/array.rb<br/>new file mode 100644<br/>index 0000000000..b9fa9844e6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/array.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>array.rb</a></div><div class='hunk'>@@ -0,0 +1,69 @@</div><div class='add'>+class Array</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    array.shuffle!(random: Random) -&gt; array</div><div class='add'>+  #</div><div class='add'>+  # Shuffles the elements of +self+ in place.</div><div class='add'>+  #    a = [1, 2, 3] #=&gt; [1, 2, 3]</div><div class='add'>+  #    a.shuffle!    #=&gt; [2, 3, 1]</div><div class='add'>+  #    a             #=&gt; [2, 3, 1]</div><div class='add'>+  #</div><div class='add'>+  # The optional +random+ argument will be used as the random number generator:</div><div class='add'>+  #    a.shuffle!(random: Random.new(1))  #=&gt; [1, 3, 2]</div><div class='add'>+  def shuffle!(random: Random)</div><div class='add'>+    Primitive.rb_ary_shuffle_bang(random)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    array.shuffle(random: Random) -&gt; new_ary</div><div class='add'>+  #</div><div class='add'>+  # Returns a new array with elements of +self+ shuffled.</div><div class='add'>+  #    a = [1, 2, 3] #=&gt; [1, 2, 3]</div><div class='add'>+  #    a.shuffle     #=&gt; [2, 3, 1]</div><div class='add'>+  #    a             #=&gt; [1, 2, 3]</div><div class='add'>+  #</div><div class='add'>+  # The optional +random+ argument will be used as the random number generator:</div><div class='add'>+  #    a.shuffle(random: Random.new(1))  #=&gt; [1, 3, 2]</div><div class='add'>+  def shuffle(random: Random)</div><div class='add'>+    Primitive.rb_ary_shuffle(random)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    array.sample(random: Random) -&gt; object</div><div class='add'>+  #    array.sample(n, random: Random) -&gt; new_ary</div><div class='add'>+  #</div><div class='add'>+  # Returns random elements from +self+.</div><div class='add'>+  #</div><div class='add'>+  # When no arguments are given, returns a random element from +self+:</div><div class='add'>+  #    a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</div><div class='add'>+  #    a.sample # =&gt; 3</div><div class='add'>+  #    a.sample # =&gt; 8</div><div class='add'>+  # If +self+ is empty, returns +nil+.</div><div class='add'>+  #</div><div class='add'>+  # When argument +n+ is given, returns a new \Array containing +n+ random</div><div class='add'>+  # elements from +self+:</div><div class='add'>+  #    a.sample(3) # =&gt; [8, 9, 2]</div><div class='add'>+  #    a.sample(6) # =&gt; [9, 6, 10, 3, 1, 4]</div><div class='add'>+  # Returns no more than &lt;tt&gt;a.size&lt;/tt&gt; elements</div><div class='add'>+  # (because no new duplicates are introduced):</div><div class='add'>+  #    a.sample(a.size * 2) # =&gt; [6, 4, 1, 8, 5, 9, 10, 2, 3, 7]</div><div class='add'>+  # But +self+ may contain duplicates:</div><div class='add'>+  #    a = [1, 1, 1, 2, 2, 3]</div><div class='add'>+  #    a.sample(a.size * 2) # =&gt; [1, 1, 3, 2, 1, 2]</div><div class='add'>+  # The argument +n+ must be a non-negative numeric value.</div><div class='add'>+  # The order of the result array is unrelated to the order of +self+.</div><div class='add'>+  # Returns a new empty \Array if +self+ is empty.</div><div class='add'>+  #</div><div class='add'>+  # The optional +random+ argument will be used as the random number generator:</div><div class='add'>+  #    a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</div><div class='add'>+  #    a.sample(random: Random.new(1))     #=&gt; 6</div><div class='add'>+  #    a.sample(4, random: Random.new(1))  #=&gt; [6, 10, 9, 2]</div><div class='add'>+  def sample(n = (ary = false), random: Random)</div><div class='add'>+    if Primitive.mandatory_only?</div><div class='add'>+      # Primitive.cexpr! %{ rb_ary_sample(self, rb_cRandom, Qfalse, Qfalse) }</div><div class='add'>+      Primitive.ary_sample0</div><div class='add'>+    else</div><div class='add'>+      # Primitive.cexpr! %{ rb_ary_sample(self, random, n, ary) }</div><div class='add'>+      Primitive.ary_sample(random, n, ary)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/ast.c b/ast.c<br/>index d6a3073f58..adb7287ed3 100644<br/>--- a/<a href='/ruby.git/tree/ast.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ast.c</a><br/>+++ b/<a href='/ruby.git/tree/ast.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ast.c</a></div><div class='hunk'>@@ -1,18 +1,23 @@</div><div class='ctx'> /* indent-tabs-mode: nil */</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/parse.h"</div><div class='add'>+#include "internal/symbol.h"</div><div class='add'>+#include "internal/warnings.h"</div><div class='add'>+#include "iseq.h"</div><div class='add'>+#include "node.h"</div><div class='ctx'> #include "ruby.h"</div><div class='ctx'> #include "ruby/encoding.h"</div><div class='ctx'> #include "ruby/util.h"</div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "node.h"</div><div class='ctx'> #include "vm_core.h"</div><div class='del'>-#include "iseq.h"</div><div class='add'>+</div><div class='add'>+#include "builtin.h"</div><div class='ctx'> </div><div class='ctx'> static VALUE rb_mAST;</div><div class='ctx'> static VALUE rb_cNode;</div><div class='ctx'> </div><div class='ctx'> struct ASTNodeData {</div><div class='ctx'>     rb_ast_t *ast;</div><div class='del'>-    NODE *node;</div><div class='add'>+    const NODE *node;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -22,9 +27,16 @@ node_gc_mark(void *ptr)</div><div class='ctx'>     rb_gc_mark((VALUE)data-&gt;ast);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static size_t</div><div class='add'>+node_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct ASTNodeData *data = (struct ASTNodeData *)ptr;</div><div class='add'>+    return rb_ast_memsize(data-&gt;ast);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static const rb_data_type_t rb_node_type = {</div><div class='ctx'>     "AST/node",</div><div class='del'>-    {node_gc_mark, RUBY_TYPED_DEFAULT_FREE, 0,},</div><div class='add'>+    {node_gc_mark, RUBY_TYPED_DEFAULT_FREE, node_memsize,},</div><div class='ctx'>     0, 0,</div><div class='ctx'>     RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='ctx'> };</div><div class='hunk'>@@ -32,7 +44,7 @@ static const rb_data_type_t rb_node_type = {</div><div class='ctx'> static VALUE rb_ast_node_alloc(VALUE klass);</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-setup_node(VALUE obj, rb_ast_t *ast, NODE *node)</div><div class='add'>+setup_node(VALUE obj, rb_ast_t *ast, const NODE *node)</div><div class='ctx'> {</div><div class='ctx'>     struct ASTNodeData *data;</div><div class='ctx'> </div><div class='hunk'>@@ -42,7 +54,7 @@ setup_node(VALUE obj, rb_ast_t *ast, NODE *node)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ast_new_internal(rb_ast_t *ast, NODE *node)</div><div class='add'>+ast_new_internal(rb_ast_t *ast, const NODE *node)</div><div class='ctx'> {</div><div class='ctx'>     VALUE obj;</div><div class='ctx'> </div><div class='hunk'>@@ -52,9 +64,8 @@ ast_new_internal(rb_ast_t *ast, NODE *node)</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE rb_ast_parse_str(VALUE str);</div><div class='del'>-static VALUE rb_ast_parse_file(VALUE path);</div><div class='del'>-static VALUE rb_ast_parse_array(VALUE array);</div><div class='add'>+static VALUE rb_ast_parse_str(VALUE str, VALUE keep_script_lines, VALUE error_tolerant, VALUE keep_tokens);</div><div class='add'>+static VALUE rb_ast_parse_file(VALUE path, VALUE keep_script_lines, VALUE error_tolerant, VALUE keep_tokens);</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> ast_parse_new(void)</div><div class='hunk'>@@ -73,55 +84,34 @@ ast_parse_done(rb_ast_t *ast)</div><div class='ctx'>     return ast_new_internal(ast, (NODE *)ast-&gt;body.root);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     RubyVM::AbstractSyntaxTree.parse(string) -&gt; RubyVM::AbstractSyntaxTree::Node</div><div class='del'>- *</div><div class='del'>- *  Parses the given string into an abstract syntax tree,</div><div class='del'>- *  returning the root node of that tree.</div><div class='del'>- *</div><div class='del'>- *  SyntaxError is raised if the given string is invalid syntax.</div><div class='del'>- *</div><div class='del'>- *    RubyVM::AbstractSyntaxTree.parse("x = 1 + 2")</div><div class='del'>- *    # =&gt; #&lt;RubyVM::AbstractSyntaxTree::Node(NODE_SCOPE(0) 1:0, 1:9): &gt;</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_s_parse(VALUE module, VALUE str)</div><div class='add'>+ast_s_parse(rb_execution_context_t *ec, VALUE module, VALUE str, VALUE keep_script_lines, VALUE error_tolerant, VALUE keep_tokens)</div><div class='ctx'> {</div><div class='del'>-    return rb_ast_parse_str(str);</div><div class='add'>+    return rb_ast_parse_str(str, keep_script_lines, error_tolerant, keep_tokens);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_parse_str(VALUE str)</div><div class='add'>+rb_ast_parse_str(VALUE str, VALUE keep_script_lines, VALUE error_tolerant, VALUE keep_tokens)</div><div class='ctx'> {</div><div class='ctx'>     rb_ast_t *ast = 0;</div><div class='ctx'> </div><div class='del'>-    str = rb_check_string_type(str);</div><div class='del'>-    ast = rb_parser_compile_string_path(ast_parse_new(), Qnil, str, 1);</div><div class='add'>+    StringValue(str);</div><div class='add'>+    VALUE vparser = ast_parse_new();</div><div class='add'>+    if (RTEST(keep_script_lines)) rb_parser_keep_script_lines(vparser);</div><div class='add'>+    if (RTEST(error_tolerant)) rb_parser_error_tolerant(vparser);</div><div class='add'>+    if (RTEST(keep_tokens)) rb_parser_keep_tokens(vparser);</div><div class='add'>+    ast = rb_parser_compile_string_path(vparser, Qnil, str, 1);</div><div class='ctx'>     return ast_parse_done(ast);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     RubyVM::AbstractSyntaxTree.parse_file(pathname) -&gt; RubyVM::AbstractSyntaxTree::Node</div><div class='del'>- *</div><div class='del'>- *   Reads the file from &lt;code&gt;pathname&lt;/code&gt;, then parses it like ::parse,</div><div class='del'>- *   returning the root node of the abstract syntax tree.</div><div class='del'>- *</div><div class='del'>- *   SyntaxError is raised if &lt;code&gt;pathname&lt;/code&gt;'s contents are not</div><div class='del'>- *   valid Ruby syntax.</div><div class='del'>- *</div><div class='del'>- *     RubyVM::AbstractSyntaxTree.parse_file("my-app/app.rb")</div><div class='del'>- *     # =&gt; #&lt;RubyVM::AbstractSyntaxTree::Node(NODE_SCOPE(0) 1:0, 31:3): &gt;</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_s_parse_file(VALUE module, VALUE path)</div><div class='add'>+ast_s_parse_file(rb_execution_context_t *ec, VALUE module, VALUE path, VALUE keep_script_lines, VALUE error_tolerant, VALUE keep_tokens)</div><div class='ctx'> {</div><div class='del'>-    return rb_ast_parse_file(path);</div><div class='add'>+    return rb_ast_parse_file(path, keep_script_lines, error_tolerant, keep_tokens);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_parse_file(VALUE path)</div><div class='add'>+rb_ast_parse_file(VALUE path, VALUE keep_script_lines, VALUE error_tolerant, VALUE keep_tokens)</div><div class='ctx'> {</div><div class='ctx'>     VALUE f;</div><div class='ctx'>     rb_ast_t *ast = 0;</div><div class='hunk'>@@ -130,7 +120,11 @@ rb_ast_parse_file(VALUE path)</div><div class='ctx'>     FilePathValue(path);</div><div class='ctx'>     f = rb_file_open_str(path, "r");</div><div class='ctx'>     rb_funcall(f, rb_intern("set_encoding"), 2, rb_enc_from_encoding(enc), rb_str_new_cstr("-"));</div><div class='del'>-    ast = rb_parser_compile_file_path(ast_parse_new(), Qnil, f, 1);</div><div class='add'>+    VALUE vparser = ast_parse_new();</div><div class='add'>+    if (RTEST(keep_script_lines)) rb_parser_keep_script_lines(vparser);</div><div class='add'>+    if (RTEST(error_tolerant))  rb_parser_error_tolerant(vparser);</div><div class='add'>+    if (RTEST(keep_tokens))  rb_parser_keep_tokens(vparser);</div><div class='add'>+    ast = rb_parser_compile_file_path(vparser, Qnil, f, 1);</div><div class='ctx'>     rb_io_close(f);</div><div class='ctx'>     return ast_parse_done(ast);</div><div class='ctx'> }</div><div class='hunk'>@@ -149,16 +143,20 @@ lex_array(VALUE array, int index)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_parse_array(VALUE array)</div><div class='add'>+rb_ast_parse_array(VALUE array, VALUE keep_script_lines, VALUE error_tolerant, VALUE keep_tokens)</div><div class='ctx'> {</div><div class='ctx'>     rb_ast_t *ast = 0;</div><div class='ctx'> </div><div class='ctx'>     array = rb_check_array_type(array);</div><div class='del'>-    ast = rb_parser_compile_generic(ast_parse_new(), lex_array, Qnil, array, 1);</div><div class='add'>+    VALUE vparser = ast_parse_new();</div><div class='add'>+    if (RTEST(keep_script_lines)) rb_parser_keep_script_lines(vparser);</div><div class='add'>+    if (RTEST(error_tolerant)) rb_parser_error_tolerant(vparser);</div><div class='add'>+    if (RTEST(keep_tokens)) rb_parser_keep_tokens(vparser);</div><div class='add'>+    ast = rb_parser_compile_generic(vparser, lex_array, Qnil, array, 1);</div><div class='ctx'>     return ast_parse_done(ast);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE node_children(rb_ast_t*, NODE*);</div><div class='add'>+static VALUE node_children(rb_ast_t*, const NODE*);</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> node_find(VALUE self, const int node_id)</div><div class='hunk'>@@ -200,53 +198,70 @@ script_lines(VALUE path)</div><div class='ctx'>     return lines;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     RubyVM::AbstractSyntaxTree.of(proc)   -&gt; RubyVM::AbstractSyntaxTree::Node</div><div class='del'>- *     RubyVM::AbstractSyntaxTree.of(method) -&gt; RubyVM::AbstractSyntaxTree::Node</div><div class='del'>- *</div><div class='del'>- *   Returns AST nodes of the given proc or method.</div><div class='del'>- *</div><div class='del'>- *     RubyVM::AbstractSyntaxTree.of(proc {1 + 2})</div><div class='del'>- *     # =&gt; #&lt;RubyVM::AbstractSyntaxTree::Node(NODE_SCOPE(0) 1:35, 1:42): &gt;</div><div class='del'>- *</div><div class='del'>- *     def hello</div><div class='del'>- *       puts "hello, world"</div><div class='del'>- *     end</div><div class='del'>- *</div><div class='del'>- *     RubyVM::AbstractSyntaxTree.of(method(:hello))</div><div class='del'>- *     # =&gt; #&lt;RubyVM::AbstractSyntaxTree::Node(NODE_SCOPE(0) 1:0, 3:3): &gt;</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_s_of(VALUE module, VALUE body)</div><div class='add'>+node_id_for_backtrace_location(rb_execution_context_t *ec, VALUE module, VALUE location)</div><div class='ctx'> {</div><div class='del'>-    VALUE path, node, lines;</div><div class='ctx'>     int node_id;</div><div class='del'>-    const rb_iseq_t *iseq = NULL;</div><div class='ctx'> </div><div class='del'>-    if (rb_obj_is_proc(body)) {</div><div class='del'>-        iseq = vm_proc_iseq(body);</div><div class='add'>+    if (!rb_frame_info_p(location)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "Thread::Backtrace::Location object expected");</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-        if (!rb_obj_is_iseq((VALUE)iseq)) {</div><div class='del'>-            iseq = NULL;</div><div class='del'>-        }</div><div class='add'>+    node_id = rb_get_node_id_from_frame_info(location);</div><div class='add'>+    if (node_id == -1) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return INT2NUM(node_id);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ast_s_of(rb_execution_context_t *ec, VALUE module, VALUE body, VALUE keep_script_lines, VALUE error_tolerant, VALUE keep_tokens)</div><div class='add'>+{</div><div class='add'>+    VALUE node, lines = Qnil;</div><div class='add'>+    const rb_iseq_t *iseq;</div><div class='add'>+    int node_id;</div><div class='add'>+</div><div class='add'>+    if (rb_frame_info_p(body)) {</div><div class='add'>+        iseq = rb_get_iseq_from_frame_info(body);</div><div class='add'>+        node_id = rb_get_node_id_from_frame_info(body);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        iseq = rb_method_iseq(body);</div><div class='add'>+        iseq = NULL;</div><div class='add'>+</div><div class='add'>+        if (rb_obj_is_proc(body)) {</div><div class='add'>+            iseq = vm_proc_iseq(body);</div><div class='add'>+</div><div class='add'>+            if (!rb_obj_is_iseq((VALUE)iseq)) return Qnil;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            iseq = rb_method_iseq(body);</div><div class='add'>+        }</div><div class='add'>+        if (iseq) {</div><div class='add'>+            node_id = ISEQ_BODY(iseq)-&gt;location.node_id;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!iseq) {</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='add'>+    lines = ISEQ_BODY(iseq)-&gt;variable.script_lines;</div><div class='ctx'> </div><div class='del'>-    if (!iseq) return Qnil;</div><div class='add'>+    VALUE path = rb_iseq_path(iseq);</div><div class='add'>+    int e_option = RSTRING_LEN(path) == 2 &amp;&amp; memcmp(RSTRING_PTR(path), "-e", 2) == 0;</div><div class='add'>+</div><div class='add'>+    if (NIL_P(lines) &amp;&amp; rb_iseq_from_eval_p(iseq) &amp;&amp; !e_option) {</div><div class='add'>+        rb_raise(rb_eArgError, "cannot get AST for method defined in eval");</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    path = rb_iseq_path(iseq);</div><div class='del'>-    node_id = iseq-&gt;body-&gt;location.node_id;</div><div class='del'>-    if (!NIL_P(lines = script_lines(path))) {</div><div class='del'>-        node = rb_ast_parse_array(lines);</div><div class='add'>+    if (!NIL_P(lines) || !NIL_P(lines = script_lines(path))) {</div><div class='add'>+        node = rb_ast_parse_array(lines, keep_script_lines, error_tolerant, keep_tokens);</div><div class='ctx'>     }</div><div class='del'>-    else if (RSTRING_LEN(path) == 2 &amp;&amp; memcmp(RSTRING_PTR(path), "-e", 2) == 0) {</div><div class='del'>-        node = rb_ast_parse_str(rb_e_script);</div><div class='add'>+    else if (e_option) {</div><div class='add'>+        node = rb_ast_parse_str(rb_e_script, keep_script_lines, error_tolerant, keep_tokens);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        node = rb_ast_parse_file(path);</div><div class='add'>+        node = rb_ast_parse_file(path, keep_script_lines, error_tolerant, keep_tokens);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return node_find(node, node_id);</div><div class='hunk'>@@ -267,19 +282,8 @@ node_type_to_str(const NODE *node)</div><div class='ctx'>     return (ruby_node_name(nd_type(node)) + rb_strlen_lit("NODE_"));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     node.type -&gt; symbol</div><div class='del'>- *</div><div class='del'>- *  Returns the type of this node as a symbol.</div><div class='del'>- *</div><div class='del'>- *    root = RubyVM::AbstractSyntaxTree.parse("x = 1 + 2")</div><div class='del'>- *    root.type # =&gt; :SCOPE</div><div class='del'>- *    call = root.children[2]</div><div class='del'>- *    call.type # =&gt; :OPCALL</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_node_type(VALUE self)</div><div class='add'>+ast_node_type(rb_execution_context_t *ec, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     struct ASTNodeData *data;</div><div class='ctx'>     TypedData_Get_Struct(self, struct ASTNodeData, &amp;rb_node_type, data);</div><div class='hunk'>@@ -287,6 +291,15 @@ rb_ast_node_type(VALUE self)</div><div class='ctx'>     return rb_sym_intern_ascii_cstr(node_type_to_str(data-&gt;node));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+ast_node_node_id(rb_execution_context_t *ec, VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct ASTNodeData *data;</div><div class='add'>+    TypedData_Get_Struct(self, struct ASTNodeData, &amp;rb_node_type, data);</div><div class='add'>+</div><div class='add'>+    return INT2FIX(nd_node_id(data-&gt;node));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #define NEW_CHILD(ast, node) node ? ast_new_internal(ast, node) : Qnil</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -309,13 +322,13 @@ rb_ary_new_from_node_args(rb_ast_t *ast, long n, ...)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-dump_block(rb_ast_t *ast, NODE *node)</div><div class='add'>+dump_block(rb_ast_t *ast, const NODE *node)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary = rb_ary_new();</div><div class='ctx'>     do {</div><div class='ctx'>         rb_ary_push(ary, NEW_CHILD(ast, node-&gt;nd_head));</div><div class='ctx'>     } while (node-&gt;nd_next &amp;&amp;</div><div class='del'>-        nd_type(node-&gt;nd_next) == NODE_BLOCK &amp;&amp;</div><div class='add'>+        nd_type_p(node-&gt;nd_next, NODE_BLOCK) &amp;&amp;</div><div class='ctx'>         (node = node-&gt;nd_next, 1));</div><div class='ctx'>     if (node-&gt;nd_next) {</div><div class='ctx'>         rb_ary_push(ary, NEW_CHILD(ast, node-&gt;nd_next));</div><div class='hunk'>@@ -325,12 +338,12 @@ dump_block(rb_ast_t *ast, NODE *node)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-dump_array(rb_ast_t *ast, NODE *node)</div><div class='add'>+dump_array(rb_ast_t *ast, const NODE *node)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary = rb_ary_new();</div><div class='ctx'>     rb_ary_push(ary, NEW_CHILD(ast, node-&gt;nd_head));</div><div class='ctx'> </div><div class='del'>-    while (node-&gt;nd_next &amp;&amp; nd_type(node-&gt;nd_next) == NODE_ARRAY) {</div><div class='add'>+    while (node-&gt;nd_next &amp;&amp; nd_type_p(node-&gt;nd_next, NODE_LIST)) {</div><div class='ctx'>         node = node-&gt;nd_next;</div><div class='ctx'>         rb_ary_push(ary, NEW_CHILD(ast, node-&gt;nd_head));</div><div class='ctx'>     }</div><div class='hunk'>@@ -348,7 +361,21 @@ var_name(ID id)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-node_children(rb_ast_t *ast, NODE *node)</div><div class='add'>+no_name_rest(void)</div><div class='add'>+{</div><div class='add'>+    ID rest;</div><div class='add'>+    CONST_ID(rest, "NODE_SPECIAL_NO_NAME_REST");</div><div class='add'>+    return ID2SYM(rest);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rest_arg(rb_ast_t *ast, const NODE *rest_arg)</div><div class='add'>+{</div><div class='add'>+    return NODE_NAMED_REST_P(rest_arg) ? NEW_CHILD(ast, rest_arg) : no_name_rest();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+node_children(rb_ast_t *ast, const NODE *node)</div><div class='ctx'> {</div><div class='ctx'>     char name[DECIMAL_SIZE_OF_BITS(sizeof(long) * CHAR_BIT) + 2]; /* including '$' */</div><div class='ctx'> </div><div class='hunk'>@@ -364,24 +391,24 @@ node_children(rb_ast_t *ast, NODE *node)</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_head, node-&gt;nd_body);</div><div class='ctx'>       case NODE_CASE2:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_head, node-&gt;nd_body);</div><div class='add'>+      case NODE_CASE3:</div><div class='add'>+        return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_head, node-&gt;nd_body);</div><div class='ctx'>       case NODE_WHEN:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 3, node-&gt;nd_head, node-&gt;nd_body, node-&gt;nd_next);</div><div class='add'>+      case NODE_IN:</div><div class='add'>+        return rb_ary_new_from_node_args(ast, 3, node-&gt;nd_head, node-&gt;nd_body, node-&gt;nd_next);</div><div class='ctx'>       case NODE_WHILE:</div><div class='del'>-        goto loop;</div><div class='ctx'>       case NODE_UNTIL:</div><div class='del'>-      loop:</div><div class='del'>-        return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_cond, node-&gt;nd_body);</div><div class='add'>+        return rb_ary_push(rb_ary_new_from_node_args(ast, 2, node-&gt;nd_cond, node-&gt;nd_body),</div><div class='add'>+                           RBOOL(node-&gt;nd_state));</div><div class='ctx'>       case NODE_ITER:</div><div class='ctx'>       case NODE_FOR:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_iter, node-&gt;nd_body);</div><div class='ctx'>       case NODE_FOR_MASGN:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 1, node-&gt;nd_var);</div><div class='ctx'>       case NODE_BREAK:</div><div class='del'>-        goto jump;</div><div class='ctx'>       case NODE_NEXT:</div><div class='del'>-        goto jump;</div><div class='ctx'>       case NODE_RETURN:</div><div class='del'>-      jump:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 1, node-&gt;nd_stts);</div><div class='ctx'>       case NODE_REDO:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 0);</div><div class='hunk'>@@ -396,15 +423,13 @@ node_children(rb_ast_t *ast, NODE *node)</div><div class='ctx'>       case NODE_ENSURE:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_head, node-&gt;nd_ensr);</div><div class='ctx'>       case NODE_AND:</div><div class='del'>-        goto andor;</div><div class='ctx'>       case NODE_OR:</div><div class='del'>-      andor:</div><div class='ctx'>         {</div><div class='ctx'>             VALUE ary = rb_ary_new();</div><div class='ctx'> </div><div class='ctx'>             while (1) {</div><div class='ctx'>                 rb_ary_push(ary, NEW_CHILD(ast, node-&gt;nd_1st));</div><div class='del'>-                if (!node-&gt;nd_2nd || nd_type(node-&gt;nd_2nd) != (int)type)</div><div class='add'>+                if (!node-&gt;nd_2nd || !nd_type_p(node-&gt;nd_2nd, type))</div><div class='ctx'>                     break;</div><div class='ctx'>                 node = node-&gt;nd_2nd;</div><div class='ctx'>             }</div><div class='hunk'>@@ -415,23 +440,20 @@ node_children(rb_ast_t *ast, NODE *node)</div><div class='ctx'>         if (NODE_NAMED_REST_P(node-&gt;nd_args)) {</div><div class='ctx'>             return rb_ary_new_from_node_args(ast, 3, node-&gt;nd_value, node-&gt;nd_head, node-&gt;nd_args);</div><div class='ctx'>         }</div><div class='del'>-        return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_value, node-&gt;nd_head);</div><div class='add'>+        else {</div><div class='add'>+            return rb_ary_new_from_args(3, NEW_CHILD(ast, node-&gt;nd_value),</div><div class='add'>+                                        NEW_CHILD(ast, node-&gt;nd_head),</div><div class='add'>+                                        no_name_rest());</div><div class='add'>+        }</div><div class='ctx'>       case NODE_LASGN:</div><div class='del'>-        goto asgn;</div><div class='ctx'>       case NODE_DASGN:</div><div class='del'>-        goto asgn;</div><div class='del'>-      case NODE_DASGN_CURR:</div><div class='del'>-        goto asgn;</div><div class='ctx'>       case NODE_IASGN:</div><div class='del'>-        goto asgn;</div><div class='ctx'>       case NODE_CVASGN:</div><div class='del'>-      asgn:</div><div class='add'>+      case NODE_GASGN:</div><div class='ctx'>         if (NODE_REQUIRED_KEYWORD_P(node)) {</div><div class='del'>-            return rb_ary_new_from_args(1, var_name(node-&gt;nd_vid));</div><div class='add'>+            return rb_ary_new_from_args(2, var_name(node-&gt;nd_vid), ID2SYM(rb_intern("NODE_SPECIAL_REQUIRED_KEYWORD")));</div><div class='ctx'>         }</div><div class='ctx'>         return rb_ary_new_from_args(2, var_name(node-&gt;nd_vid), NEW_CHILD(ast, node-&gt;nd_value));</div><div class='del'>-      case NODE_GASGN:</div><div class='del'>-        goto asgn;</div><div class='ctx'>       case NODE_CDECL:</div><div class='ctx'>         if (node-&gt;nd_vid) {</div><div class='ctx'>             return rb_ary_new_from_args(2, ID2SYM(node-&gt;nd_vid), NEW_CHILD(ast, node-&gt;nd_value));</div><div class='hunk'>@@ -443,9 +465,10 @@ node_children(rb_ast_t *ast, NODE *node)</div><div class='ctx'>                                     NEW_CHILD(ast, node-&gt;nd_args-&gt;nd_head),</div><div class='ctx'>                                     NEW_CHILD(ast, node-&gt;nd_args-&gt;nd_body));</div><div class='ctx'>       case NODE_OP_ASGN2:</div><div class='del'>-        return rb_ary_new_from_args(4, NEW_CHILD(ast, node-&gt;nd_recv),</div><div class='del'>-                                    node-&gt;nd_next-&gt;nd_aid ? Qtrue : Qfalse,</div><div class='add'>+        return rb_ary_new_from_args(5, NEW_CHILD(ast, node-&gt;nd_recv),</div><div class='add'>+                                    RBOOL(node-&gt;nd_next-&gt;nd_aid),</div><div class='ctx'>                                     ID2SYM(node-&gt;nd_next-&gt;nd_vid),</div><div class='add'>+                                    ID2SYM(node-&gt;nd_next-&gt;nd_mid),</div><div class='ctx'>                                     NEW_CHILD(ast, node-&gt;nd_value));</div><div class='ctx'>       case NODE_OP_ASGN_AND:</div><div class='ctx'>         return rb_ary_new_from_args(3, NEW_CHILD(ast, node-&gt;nd_head), ID2SYM(idANDOP),</div><div class='hunk'>@@ -472,12 +495,10 @@ node_children(rb_ast_t *ast, NODE *node)</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 1, node-&gt;nd_args);</div><div class='ctx'>       case NODE_ZSUPER:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 0);</div><div class='del'>-      case NODE_ARRAY:</div><div class='del'>-        goto ary;</div><div class='add'>+      case NODE_LIST:</div><div class='ctx'>       case NODE_VALUES:</div><div class='del'>-      ary:</div><div class='ctx'>         return dump_array(ast, node);</div><div class='del'>-      case NODE_ZARRAY:</div><div class='add'>+      case NODE_ZLIST:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 0);</div><div class='ctx'>       case NODE_HASH:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 1, node-&gt;nd_head);</div><div class='hunk'>@@ -499,8 +520,6 @@ node_children(rb_ast_t *ast, NODE *node)</div><div class='ctx'>         name[1] = (char)node-&gt;nd_nth;</div><div class='ctx'>         name[2] = '\0';</div><div class='ctx'>         return rb_ary_new_from_args(1, ID2SYM(rb_intern(name)));</div><div class='del'>-      case NODE_MATCH:</div><div class='del'>-        goto lit;</div><div class='ctx'>       case NODE_MATCH2:</div><div class='ctx'>         if (node-&gt;nd_args) {</div><div class='ctx'>             return rb_ary_new_from_node_args(ast, 3, node-&gt;nd_recv, node-&gt;nd_value, node-&gt;nd_args);</div><div class='hunk'>@@ -508,24 +527,26 @@ node_children(rb_ast_t *ast, NODE *node)</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_recv, node-&gt;nd_value);</div><div class='ctx'>       case NODE_MATCH3:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_recv, node-&gt;nd_value);</div><div class='add'>+      case NODE_MATCH:</div><div class='ctx'>       case NODE_LIT:</div><div class='del'>-        goto lit;</div><div class='ctx'>       case NODE_STR:</div><div class='del'>-        goto lit;</div><div class='ctx'>       case NODE_XSTR:</div><div class='del'>-      lit:</div><div class='ctx'>         return rb_ary_new_from_args(1, node-&gt;nd_lit);</div><div class='ctx'>       case NODE_ONCE:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 1, node-&gt;nd_body);</div><div class='ctx'>       case NODE_DSTR:</div><div class='del'>-        goto dlit;</div><div class='ctx'>       case NODE_DXSTR:</div><div class='del'>-        goto dlit;</div><div class='ctx'>       case NODE_DREGX:</div><div class='del'>-        goto dlit;</div><div class='ctx'>       case NODE_DSYM:</div><div class='del'>-      dlit:</div><div class='del'>-        return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_next-&gt;nd_head, node-&gt;nd_next-&gt;nd_next);</div><div class='add'>+        {</div><div class='add'>+            NODE *n = node-&gt;nd_next;</div><div class='add'>+            VALUE head = Qnil, next = Qnil;</div><div class='add'>+            if (n) {</div><div class='add'>+                head = NEW_CHILD(ast, n-&gt;nd_head);</div><div class='add'>+                next = NEW_CHILD(ast, n-&gt;nd_next);</div><div class='add'>+            }</div><div class='add'>+            return rb_ary_new_from_args(3, node-&gt;nd_lit, head, next);</div><div class='add'>+        }</div><div class='ctx'>       case NODE_EVSTR:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 1, node-&gt;nd_body);</div><div class='ctx'>       case NODE_ARGSCAT:</div><div class='hunk'>@@ -557,13 +578,9 @@ node_children(rb_ast_t *ast, NODE *node)</div><div class='ctx'>       case NODE_COLON3:</div><div class='ctx'>         return rb_ary_new_from_args(1, ID2SYM(node-&gt;nd_mid));</div><div class='ctx'>       case NODE_DOT2:</div><div class='del'>-        goto dot;</div><div class='ctx'>       case NODE_DOT3:</div><div class='del'>-        goto dot;</div><div class='ctx'>       case NODE_FLIP2:</div><div class='del'>-        goto dot;</div><div class='ctx'>       case NODE_FLIP3:</div><div class='del'>-      dot:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_beg, node-&gt;nd_end);</div><div class='ctx'>       case NODE_SELF:</div><div class='ctx'>         return rb_ary_new_from_node_args(ast, 0);</div><div class='hunk'>@@ -591,7 +608,8 @@ node_children(rb_ast_t *ast, NODE *node)</div><div class='ctx'>         if (NODE_NAMED_REST_P(node-&gt;nd_1st)) {</div><div class='ctx'>             return rb_ary_new_from_node_args(ast, 2, node-&gt;nd_1st, node-&gt;nd_2nd);</div><div class='ctx'>         }</div><div class='del'>-        return rb_ary_new_from_node_args(ast, 1, node-&gt;nd_2nd);</div><div class='add'>+        return rb_ary_new_from_args(2, no_name_rest(),</div><div class='add'>+                                    NEW_CHILD(ast, node-&gt;nd_2nd));</div><div class='ctx'>       case NODE_ARGS:</div><div class='ctx'>         {</div><div class='ctx'>             struct rb_args_info *ainfo = node-&gt;nd_ainfo;</div><div class='hunk'>@@ -602,21 +620,56 @@ node_children(rb_ast_t *ast, NODE *node)</div><div class='ctx'>                                         var_name(ainfo-&gt;first_post_arg),</div><div class='ctx'>                                         INT2NUM(ainfo-&gt;post_args_num),</div><div class='ctx'>                                         NEW_CHILD(ast, ainfo-&gt;post_init),</div><div class='del'>-                                        var_name(ainfo-&gt;rest_arg),</div><div class='del'>-                                        NEW_CHILD(ast, ainfo-&gt;kw_args),</div><div class='del'>-                                        NEW_CHILD(ast, ainfo-&gt;kw_rest_arg),</div><div class='add'>+                                        (ainfo-&gt;rest_arg == NODE_SPECIAL_EXCESSIVE_COMMA</div><div class='add'>+                                            ? ID2SYM(rb_intern("NODE_SPECIAL_EXCESSIVE_COMMA"))</div><div class='add'>+                                            : var_name(ainfo-&gt;rest_arg)),</div><div class='add'>+                                        (ainfo-&gt;no_kwarg ? Qfalse : NEW_CHILD(ast, ainfo-&gt;kw_args)),</div><div class='add'>+                                        (ainfo-&gt;no_kwarg ? Qfalse : NEW_CHILD(ast, ainfo-&gt;kw_rest_arg)),</div><div class='ctx'>                                         var_name(ainfo-&gt;block_arg));</div><div class='ctx'>         }</div><div class='ctx'>       case NODE_SCOPE:</div><div class='ctx'>         {</div><div class='del'>-            ID *tbl = node-&gt;nd_tbl;</div><div class='del'>-            int i, size = tbl ? (int)*tbl++ : 0;</div><div class='add'>+            rb_ast_id_table_t *tbl = node-&gt;nd_tbl;</div><div class='add'>+            int i, size = tbl ? tbl-&gt;size : 0;</div><div class='ctx'>             VALUE locals = rb_ary_new_capa(size);</div><div class='ctx'>             for (i = 0; i &lt; size; i++) {</div><div class='del'>-                rb_ary_push(locals, var_name(tbl[i]));</div><div class='add'>+                rb_ary_push(locals, var_name(tbl-&gt;ids[i]));</div><div class='ctx'>             }</div><div class='ctx'>             return rb_ary_new_from_args(3, locals, NEW_CHILD(ast, node-&gt;nd_args), NEW_CHILD(ast, node-&gt;nd_body));</div><div class='ctx'>         }</div><div class='add'>+      case NODE_ARYPTN:</div><div class='add'>+        {</div><div class='add'>+            struct rb_ary_pattern_info *apinfo = node-&gt;nd_apinfo;</div><div class='add'>+            VALUE rest = rest_arg(ast, apinfo-&gt;rest_arg);</div><div class='add'>+            return rb_ary_new_from_args(4,</div><div class='add'>+                                        NEW_CHILD(ast, node-&gt;nd_pconst),</div><div class='add'>+                                        NEW_CHILD(ast, apinfo-&gt;pre_args),</div><div class='add'>+                                        rest,</div><div class='add'>+                                        NEW_CHILD(ast, apinfo-&gt;post_args));</div><div class='add'>+        }</div><div class='add'>+      case NODE_FNDPTN:</div><div class='add'>+        {</div><div class='add'>+            struct rb_fnd_pattern_info *fpinfo = node-&gt;nd_fpinfo;</div><div class='add'>+            VALUE pre_rest = rest_arg(ast, fpinfo-&gt;pre_rest_arg);</div><div class='add'>+            VALUE post_rest = rest_arg(ast, fpinfo-&gt;post_rest_arg);</div><div class='add'>+            return rb_ary_new_from_args(4,</div><div class='add'>+                                        NEW_CHILD(ast, node-&gt;nd_pconst),</div><div class='add'>+                                        pre_rest,</div><div class='add'>+                                        NEW_CHILD(ast, fpinfo-&gt;args),</div><div class='add'>+                                        post_rest);</div><div class='add'>+        }</div><div class='add'>+      case NODE_HSHPTN:</div><div class='add'>+        {</div><div class='add'>+            VALUE kwrest = node-&gt;nd_pkwrestarg == NODE_SPECIAL_NO_REST_KEYWORD ? ID2SYM(rb_intern("NODE_SPECIAL_NO_REST_KEYWORD")) :</div><div class='add'>+                                                                                 NEW_CHILD(ast, node-&gt;nd_pkwrestarg);</div><div class='add'>+</div><div class='add'>+            return rb_ary_new_from_args(3,</div><div class='add'>+                                        NEW_CHILD(ast, node-&gt;nd_pconst),</div><div class='add'>+                                        NEW_CHILD(ast, node-&gt;nd_pkwargs),</div><div class='add'>+                                        kwrest);</div><div class='add'>+        }</div><div class='add'>+      case NODE_ERROR:</div><div class='add'>+        return rb_ary_new_from_node_args(ast, 0);</div><div class='ctx'>       case NODE_ARGS_AUX:</div><div class='ctx'>       case NODE_LAST:</div><div class='ctx'>         break;</div><div class='hunk'>@@ -625,17 +678,8 @@ node_children(rb_ast_t *ast, NODE *node)</div><div class='ctx'>     rb_bug("node_children: unknown node: %s", ruby_node_name(type));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     node.children -&gt; array</div><div class='del'>- *</div><div class='del'>- *  Returns AST nodes under this one.  Each kind of node</div><div class='del'>- *  has different children, depending on what kind of node it is.</div><div class='del'>- *</div><div class='del'>- *  The returned array may contain other nodes or &lt;code&gt;nil&lt;/code&gt;.</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_node_children(VALUE self)</div><div class='add'>+ast_node_children(rb_execution_context_t *ec, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     struct ASTNodeData *data;</div><div class='ctx'>     TypedData_Get_Struct(self, struct ASTNodeData, &amp;rb_node_type, data);</div><div class='hunk'>@@ -643,14 +687,8 @@ rb_ast_node_children(VALUE self)</div><div class='ctx'>     return node_children(data-&gt;ast, data-&gt;node);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     node.first_lineno -&gt; integer</div><div class='del'>- *</div><div class='del'>- *  The line number in the source code where this AST's text began.</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_node_first_lineno(VALUE self)</div><div class='add'>+ast_node_first_lineno(rb_execution_context_t *ec, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     struct ASTNodeData *data;</div><div class='ctx'>     TypedData_Get_Struct(self, struct ASTNodeData, &amp;rb_node_type, data);</div><div class='hunk'>@@ -658,14 +696,8 @@ rb_ast_node_first_lineno(VALUE self)</div><div class='ctx'>     return INT2NUM(nd_first_lineno(data-&gt;node));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     node.first_column -&gt; integer</div><div class='del'>- *</div><div class='del'>- *  The column number in the source code where this AST's text began.</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_node_first_column(VALUE self)</div><div class='add'>+ast_node_first_column(rb_execution_context_t *ec, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     struct ASTNodeData *data;</div><div class='ctx'>     TypedData_Get_Struct(self, struct ASTNodeData, &amp;rb_node_type, data);</div><div class='hunk'>@@ -673,14 +705,8 @@ rb_ast_node_first_column(VALUE self)</div><div class='ctx'>     return INT2NUM(nd_first_column(data-&gt;node));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     node.last_lineno -&gt; integer</div><div class='del'>- *</div><div class='del'>- *  The line number in the source code where this AST's text ended.</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_node_last_lineno(VALUE self)</div><div class='add'>+ast_node_last_lineno(rb_execution_context_t *ec, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     struct ASTNodeData *data;</div><div class='ctx'>     TypedData_Get_Struct(self, struct ASTNodeData, &amp;rb_node_type, data);</div><div class='hunk'>@@ -688,14 +714,8 @@ rb_ast_node_last_lineno(VALUE self)</div><div class='ctx'>     return INT2NUM(nd_last_lineno(data-&gt;node));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     node.last_column -&gt; integer</div><div class='del'>- *</div><div class='del'>- *  The column number in the source code where this AST's text ended.</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_node_last_column(VALUE self)</div><div class='add'>+ast_node_last_column(rb_execution_context_t *ec, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     struct ASTNodeData *data;</div><div class='ctx'>     TypedData_Get_Struct(self, struct ASTNodeData, &amp;rb_node_type, data);</div><div class='hunk'>@@ -703,14 +723,17 @@ rb_ast_node_last_column(VALUE self)</div><div class='ctx'>     return INT2NUM(nd_last_column(data-&gt;node));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     node.inspect -&gt; string</div><div class='del'>- *</div><div class='del'>- *  Returns debugging information about this node as a string.</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_ast_node_inspect(VALUE self)</div><div class='add'>+ast_node_all_tokens(rb_execution_context_t *ec, VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct ASTNodeData *data;</div><div class='add'>+    TypedData_Get_Struct(self, struct ASTNodeData, &amp;rb_node_type, data);</div><div class='add'>+</div><div class='add'>+    return rb_ast_tokens(data-&gt;ast);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ast_node_inspect(rb_execution_context_t *ec, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     VALUE str;</div><div class='ctx'>     VALUE cname;</div><div class='hunk'>@@ -721,37 +744,30 @@ rb_ast_node_inspect(VALUE self)</div><div class='ctx'>     str = rb_str_new2("#&lt;");</div><div class='ctx'> </div><div class='ctx'>     rb_str_append(str, cname);</div><div class='del'>-    rb_str_cat2(str, "(");</div><div class='del'>-    rb_str_catf(str, "%s(%d) %d:%d, %d:%d", node_type_to_str(data-&gt;node), nd_type(data-&gt;node), nd_first_lineno(data-&gt;node), nd_first_column(data-&gt;node), nd_last_lineno(data-&gt;node), nd_last_column(data-&gt;node));</div><div class='del'>-    rb_str_cat2(str, "): &gt;");</div><div class='add'>+    rb_str_catf(str, ":%s@%d:%d-%d:%d&gt;",</div><div class='add'>+                node_type_to_str(data-&gt;node),</div><div class='add'>+                nd_first_lineno(data-&gt;node), nd_first_column(data-&gt;node),</div><div class='add'>+                nd_last_lineno(data-&gt;node), nd_last_column(data-&gt;node));</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+ast_node_script_lines(rb_execution_context_t *ec, VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct ASTNodeData *data;</div><div class='add'>+    TypedData_Get_Struct(self, struct ASTNodeData, &amp;rb_node_type, data);</div><div class='add'>+    VALUE ret = data-&gt;ast-&gt;body.script_lines;</div><div class='add'>+    if (!RB_TYPE_P(ret, T_ARRAY)) return Qnil;</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#include "ast.rbinc"</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_ast(void)</div><div class='ctx'> {</div><div class='del'>-    /*</div><div class='del'>-     * AbstractSyntaxTree provides methods to parse Ruby code into</div><div class='del'>-     * abstract syntax trees. The nodes in the tree</div><div class='del'>-     * are instances of RubyVM::AbstractSyntaxTree::Node.</div><div class='del'>-     */</div><div class='ctx'>     rb_mAST = rb_define_module_under(rb_cRubyVM, "AbstractSyntaxTree");</div><div class='del'>-    /*</div><div class='del'>-     * RubyVM::AbstractSyntaxTree::Node instances are created by parse methods in</div><div class='del'>-     * RubyVM::AbstractSyntaxTree.</div><div class='del'>-     */</div><div class='ctx'>     rb_cNode = rb_define_class_under(rb_mAST, "Node", rb_cObject);</div><div class='del'>-</div><div class='ctx'>     rb_undef_alloc_func(rb_cNode);</div><div class='del'>-    rb_define_singleton_method(rb_mAST, "parse", rb_ast_s_parse, 1);</div><div class='del'>-    rb_define_singleton_method(rb_mAST, "parse_file", rb_ast_s_parse_file, 1);</div><div class='del'>-    rb_define_singleton_method(rb_mAST, "of", rb_ast_s_of, 1);</div><div class='del'>-    rb_define_method(rb_cNode, "type", rb_ast_node_type, 0);</div><div class='del'>-    rb_define_method(rb_cNode, "first_lineno", rb_ast_node_first_lineno, 0);</div><div class='del'>-    rb_define_method(rb_cNode, "first_column", rb_ast_node_first_column, 0);</div><div class='del'>-    rb_define_method(rb_cNode, "last_lineno", rb_ast_node_last_lineno, 0);</div><div class='del'>-    rb_define_method(rb_cNode, "last_column", rb_ast_node_last_column, 0);</div><div class='del'>-    rb_define_method(rb_cNode, "children", rb_ast_node_children, 0);</div><div class='del'>-    rb_define_method(rb_cNode, "inspect", rb_ast_node_inspect, 0);</div><div class='ctx'> }</div><div class='head'>diff --git a/ast.rb b/ast.rb<br/>new file mode 100644<br/>index 0000000000..f3f72c747f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ast.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ast.rb</a></div><div class='hunk'>@@ -0,0 +1,276 @@</div><div class='add'>+# for ast.c</div><div class='add'>+</div><div class='add'>+# AbstractSyntaxTree provides methods to parse Ruby code into</div><div class='add'>+# abstract syntax trees. The nodes in the tree</div><div class='add'>+# are instances of RubyVM::AbstractSyntaxTree::Node.</div><div class='add'>+#</div><div class='add'>+# This module is MRI specific as it exposes implementation details</div><div class='add'>+# of the MRI abstract syntax tree.</div><div class='add'>+#</div><div class='add'>+# This module is experimental and its API is not stable, therefore it might</div><div class='add'>+# change without notice. As examples, the order of children nodes is not</div><div class='add'>+# guaranteed, the number of children nodes might change, there is no way to</div><div class='add'>+# access children nodes by name, etc.</div><div class='add'>+#</div><div class='add'>+# If you are looking for a stable API or an API working under multiple Ruby</div><div class='add'>+# implementations, consider using the _parser_ gem or Ripper. If you would</div><div class='add'>+# like to make RubyVM::AbstractSyntaxTree stable, please join the discussion</div><div class='add'>+# at https://bugs.ruby-lang.org/issues/14844.</div><div class='add'>+#</div><div class='add'>+module RubyVM::AbstractSyntaxTree</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     RubyVM::AbstractSyntaxTree.parse(string, keep_script_lines: false, error_tolerant: false, keep_tokens: false) -&gt; RubyVM::AbstractSyntaxTree::Node</div><div class='add'>+  #</div><div class='add'>+  #  Parses the given _string_ into an abstract syntax tree,</div><div class='add'>+  #  returning the root node of that tree.</div><div class='add'>+  #</div><div class='add'>+  #    RubyVM::AbstractSyntaxTree.parse("x = 1 + 2")</div><div class='add'>+  #    # =&gt; #&lt;RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-1:9&gt;</div><div class='add'>+  #</div><div class='add'>+  #  If &lt;tt&gt;keep_script_lines: true&lt;/tt&gt; option is provided, the text of the parsed</div><div class='add'>+  #  source is associated with nodes and is available via Node#script_lines.</div><div class='add'>+  #</div><div class='add'>+  #  If &lt;tt&gt;keep_tokens: true&lt;/tt&gt; option is provided, Node#tokens are populated.</div><div class='add'>+  #</div><div class='add'>+  #  SyntaxError is raised if the given _string_ is invalid syntax. To overwrite this</div><div class='add'>+  #  behavior, &lt;tt&gt;error_tolerant: true&lt;/tt&gt; can be provided. In this case, the parser</div><div class='add'>+  #  will produce a tree where expressions with syntax errors would be represented by</div><div class='add'>+  #  Node with &lt;tt&gt;type=:ERROR&lt;/tt&gt;.</div><div class='add'>+  #</div><div class='add'>+  #     root = RubyVM::AbstractSyntaxTree.parse("x = 1; p(x; y=2")</div><div class='add'>+  #     # &lt;internal:ast&gt;:33:in `parse': syntax error, unexpected ';', expecting ')' (SyntaxError)</div><div class='add'>+  #     # x = 1; p(x; y=2</div><div class='add'>+  #     #           ^</div><div class='add'>+  #</div><div class='add'>+  #     root = RubyVM::AbstractSyntaxTree.parse("x = 1; p(x; y=2", error_tolerant: true)</div><div class='add'>+  #     # (SCOPE@1:0-1:15</div><div class='add'>+  #     #  tbl: [:x, :y]</div><div class='add'>+  #     #  args: nil</div><div class='add'>+  #     #  body: (BLOCK@1:0-1:15 (LASGN@1:0-1:5 :x (LIT@1:4-1:5 1)) (ERROR@1:7-1:11) (LASGN@1:12-1:15 :y (LIT@1:14-1:15 2))))</div><div class='add'>+  #     root.children.last.children</div><div class='add'>+  #     # [(LASGN@1:0-1:5 :x (LIT@1:4-1:5 1)),</div><div class='add'>+  #     #  (ERROR@1:7-1:11),</div><div class='add'>+  #     #  (LASGN@1:12-1:15 :y (LIT@1:14-1:15 2))]</div><div class='add'>+  #</div><div class='add'>+  #  Note that parsing continues even after the errored expresion.</div><div class='add'>+  #</div><div class='add'>+  def self.parse string, keep_script_lines: false, error_tolerant: false, keep_tokens: false</div><div class='add'>+    Primitive.ast_s_parse string, keep_script_lines, error_tolerant, keep_tokens</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     RubyVM::AbstractSyntaxTree.parse_file(pathname, keep_script_lines: false, error_tolerant: false, keep_tokens: false) -&gt; RubyVM::AbstractSyntaxTree::Node</div><div class='add'>+  #</div><div class='add'>+  #   Reads the file from _pathname_, then parses it like ::parse,</div><div class='add'>+  #   returning the root node of the abstract syntax tree.</div><div class='add'>+  #</div><div class='add'>+  #   SyntaxError is raised if _pathname_'s contents are not</div><div class='add'>+  #   valid Ruby syntax.</div><div class='add'>+  #</div><div class='add'>+  #     RubyVM::AbstractSyntaxTree.parse_file("my-app/app.rb")</div><div class='add'>+  #     # =&gt; #&lt;RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-31:3&gt;</div><div class='add'>+  #</div><div class='add'>+  #   See ::parse for explanation of keyword argument meaning and usage.</div><div class='add'>+  def self.parse_file pathname, keep_script_lines: false, error_tolerant: false, keep_tokens: false</div><div class='add'>+    Primitive.ast_s_parse_file pathname, keep_script_lines, error_tolerant, keep_tokens</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     RubyVM::AbstractSyntaxTree.of(proc, keep_script_lines: false, error_tolerant: false, keep_tokens: false)   -&gt; RubyVM::AbstractSyntaxTree::Node</div><div class='add'>+  #     RubyVM::AbstractSyntaxTree.of(method, keep_script_lines: false, error_tolerant: false, keep_tokens: false) -&gt; RubyVM::AbstractSyntaxTree::Node</div><div class='add'>+  #</div><div class='add'>+  #   Returns AST nodes of the given _proc_ or _method_.</div><div class='add'>+  #</div><div class='add'>+  #     RubyVM::AbstractSyntaxTree.of(proc {1 + 2})</div><div class='add'>+  #     # =&gt; #&lt;RubyVM::AbstractSyntaxTree::Node:SCOPE@1:35-1:42&gt;</div><div class='add'>+  #</div><div class='add'>+  #     def hello</div><div class='add'>+  #       puts "hello, world"</div><div class='add'>+  #     end</div><div class='add'>+  #</div><div class='add'>+  #     RubyVM::AbstractSyntaxTree.of(method(:hello))</div><div class='add'>+  #     # =&gt; #&lt;RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-3:3&gt;</div><div class='add'>+  #</div><div class='add'>+  #   See ::parse for explanation of keyword argument meaning and usage.</div><div class='add'>+  def self.of body, keep_script_lines: false, error_tolerant: false, keep_tokens: false</div><div class='add'>+    Primitive.ast_s_of body, keep_script_lines, error_tolerant, keep_tokens</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     RubyVM::AbstractSyntaxTree.node_id_for_backtrace_location(backtrace_location)   -&gt; integer</div><div class='add'>+  #</div><div class='add'>+  #   Returns the node id for the given backtrace location.</div><div class='add'>+  #</div><div class='add'>+  #     begin</div><div class='add'>+  #       raise</div><div class='add'>+  #     rescue =&gt;  e</div><div class='add'>+  #       loc = e.backtrace_locations.first</div><div class='add'>+  #       RubyVM::AbstractSyntaxTree.node_id_for_backtrace_location(loc)</div><div class='add'>+  #     end # =&gt; 0</div><div class='add'>+  def self.node_id_for_backtrace_location backtrace_location</div><div class='add'>+    Primitive.node_id_for_backtrace_location backtrace_location</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # RubyVM::AbstractSyntaxTree::Node instances are created by parse methods in</div><div class='add'>+  # RubyVM::AbstractSyntaxTree.</div><div class='add'>+  #</div><div class='add'>+  # This class is MRI specific.</div><div class='add'>+  #</div><div class='add'>+  class Node</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.type -&gt; symbol</div><div class='add'>+    #</div><div class='add'>+    #  Returns the type of this node as a symbol.</div><div class='add'>+    #</div><div class='add'>+    #    root = RubyVM::AbstractSyntaxTree.parse("x = 1 + 2")</div><div class='add'>+    #    root.type # =&gt; :SCOPE</div><div class='add'>+    #    lasgn = root.children[2]</div><div class='add'>+    #    lasgn.type # =&gt; :LASGN</div><div class='add'>+    #    call = lasgn.children[1]</div><div class='add'>+    #    call.type # =&gt; :OPCALL</div><div class='add'>+    def type</div><div class='add'>+      Primitive.ast_node_type</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.first_lineno -&gt; integer</div><div class='add'>+    #</div><div class='add'>+    #  The line number in the source code where this AST's text began.</div><div class='add'>+    def first_lineno</div><div class='add'>+      Primitive.ast_node_first_lineno</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.first_column -&gt; integer</div><div class='add'>+    #</div><div class='add'>+    #  The column number in the source code where this AST's text began.</div><div class='add'>+    def first_column</div><div class='add'>+      Primitive.ast_node_first_column</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.last_lineno -&gt; integer</div><div class='add'>+    #</div><div class='add'>+    #  The line number in the source code where this AST's text ended.</div><div class='add'>+    def last_lineno</div><div class='add'>+      Primitive.ast_node_last_lineno</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.last_column -&gt; integer</div><div class='add'>+    #</div><div class='add'>+    #  The column number in the source code where this AST's text ended.</div><div class='add'>+    def last_column</div><div class='add'>+      Primitive.ast_node_last_column</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.tokens -&gt; array</div><div class='add'>+    #</div><div class='add'>+    #  Returns tokens corresponding to the location of the node.</div><div class='add'>+    #  Returns +nil+ if +keep_tokens+ is not enabled when #parse method is called.</div><div class='add'>+    #</div><div class='add'>+    #    root = RubyVM::AbstractSyntaxTree.parse("x = 1 + 2", keep_tokens: true)</div><div class='add'>+    #    root.tokens # =&gt; [[0, :tIDENTIFIER, "x", [1, 0, 1, 1]], [1, :tSP, " ", [1, 1, 1, 2]], ...]</div><div class='add'>+    #    root.tokens.map{_1[2]}.join # =&gt; "x = 1 + 2"</div><div class='add'>+    #</div><div class='add'>+    #  Token is an array of:</div><div class='add'>+    #</div><div class='add'>+    #  - id</div><div class='add'>+    #  - token type</div><div class='add'>+    #  - source code text</div><div class='add'>+    #  - location [ first_lineno, first_column, last_lineno, last_column ]</div><div class='add'>+    def tokens</div><div class='add'>+      return nil unless all_tokens</div><div class='add'>+</div><div class='add'>+      all_tokens.each_with_object([]) do |token, a|</div><div class='add'>+        loc = token.last</div><div class='add'>+        if ([first_lineno, first_column] &lt;=&gt; [loc[0], loc[1]]) &lt;= 0 &amp;&amp;</div><div class='add'>+           ([last_lineno, last_column]   &lt;=&gt; [loc[2], loc[3]]) &gt;= 0</div><div class='add'>+           a &lt;&lt; token</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.all_tokens -&gt; array</div><div class='add'>+    #</div><div class='add'>+    #  Returns all tokens for the input script regardless the receiver node.</div><div class='add'>+    #  Returns +nil+ if +keep_tokens+ is not enabled when #parse method is called.</div><div class='add'>+    #</div><div class='add'>+    #    root = RubyVM::AbstractSyntaxTree.parse("x = 1 + 2", keep_tokens: true)</div><div class='add'>+    #    root.all_tokens # =&gt; [[0, :tIDENTIFIER, "x", [1, 0, 1, 1]], [1, :tSP, " ", [1, 1, 1, 2]], ...]</div><div class='add'>+    #    root.children[-1].all_tokens # =&gt; [[0, :tIDENTIFIER, "x", [1, 0, 1, 1]], [1, :tSP, " ", [1, 1, 1, 2]], ...]</div><div class='add'>+    def all_tokens</div><div class='add'>+      Primitive.ast_node_all_tokens</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.children -&gt; array</div><div class='add'>+    #</div><div class='add'>+    #  Returns AST nodes under this one.  Each kind of node</div><div class='add'>+    #  has different children, depending on what kind of node it is.</div><div class='add'>+    #</div><div class='add'>+    #  The returned array may contain other nodes or &lt;code&gt;nil&lt;/code&gt;.</div><div class='add'>+    def children</div><div class='add'>+      Primitive.ast_node_children</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.inspect -&gt; string</div><div class='add'>+    #</div><div class='add'>+    #  Returns debugging information about this node as a string.</div><div class='add'>+    def inspect</div><div class='add'>+      Primitive.ast_node_inspect</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.node_id -&gt; integer</div><div class='add'>+    #</div><div class='add'>+    #  Returns an internal node_id number.</div><div class='add'>+    #  Note that this is an API for ruby internal use, debugging,</div><div class='add'>+    #  and research. Do not use this for any other purpose.</div><div class='add'>+    #  The compatibility is not guaranteed.</div><div class='add'>+    def node_id</div><div class='add'>+      Primitive.ast_node_node_id</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.script_lines -&gt; array</div><div class='add'>+    #</div><div class='add'>+    #  Returns the original source code as an array of lines.</div><div class='add'>+    #</div><div class='add'>+    #  Note that this is an API for ruby internal use, debugging,</div><div class='add'>+    #  and research. Do not use this for any other purpose.</div><div class='add'>+    #  The compatibility is not guaranteed.</div><div class='add'>+    def script_lines</div><div class='add'>+      Primitive.ast_node_script_lines</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #  call-seq:</div><div class='add'>+    #     node.source -&gt; string</div><div class='add'>+    #</div><div class='add'>+    #  Returns the code fragment that corresponds to this AST.</div><div class='add'>+    #</div><div class='add'>+    #  Note that this is an API for ruby internal use, debugging,</div><div class='add'>+    #  and research. Do not use this for any other purpose.</div><div class='add'>+    #  The compatibility is not guaranteed.</div><div class='add'>+    #</div><div class='add'>+    #  Also note that this API may return an incomplete code fragment</div><div class='add'>+    #  that does not parse; for example, a here document following</div><div class='add'>+    #  an expression may be dropped.</div><div class='add'>+    def source</div><div class='add'>+      lines = script_lines</div><div class='add'>+      if lines</div><div class='add'>+        lines = lines[first_lineno - 1 .. last_lineno - 1]</div><div class='add'>+        lines[-1] = lines[-1][0...last_column]</div><div class='add'>+        lines[0] = lines[0][first_column..-1]</div><div class='add'>+        lines.join</div><div class='add'>+      else</div><div class='add'>+        nil</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/autogen.sh b/autogen.sh<br/>new file mode 100755<br/>index 0000000000..f8cdf3c0c1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/autogen.sh?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>autogen.sh</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+#!/bin/sh</div><div class='add'>+</div><div class='add'>+PWD=</div><div class='add'>+case "$0" in</div><div class='add'>+*/*) srcdir=`dirname $0`;;</div><div class='add'>+*) srcdir="";;</div><div class='add'>+esac</div><div class='add'>+</div><div class='add'>+symlink='--install --symlink'</div><div class='add'>+case " $* " in</div><div class='add'>+    *" -i "*|*" --install "*)</div><div class='add'>+        # reset to copy missing standard auxiliary files, instead of symlinks</div><div class='add'>+        symlink=</div><div class='add'>+        ;;</div><div class='add'>+esac</div><div class='add'>+</div><div class='add'>+exec ${AUTORECONF:-autoreconf} ${symlink} "$@" ${srcdir:+"$srcdir"}</div><div class='head'>diff --git a/basictest/test.rb b/basictest/test.rb<br/>index 25d52ca1ef..95875b52a6 100755<br/>--- a/<a href='/ruby.git/tree/basictest/test.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>basictest/test.rb</a><br/>+++ b/<a href='/ruby.git/tree/basictest/test.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>basictest/test.rb</a></div><div class='hunk'>@@ -35,7 +35,7 @@ class Progress</div><div class='ctx'>       # dircolors-like style</div><div class='ctx'>       colors = (colors = ENV['TEST_COLORS']) ? Hash[colors.scan(/(\w+)=([^:\n]*)/)] : {}</div><div class='ctx'>       begin</div><div class='del'>-        File.read(File.join(__dir__, "../test/colors")).scan(/(\w+)=([^:\n]*)/) do |n, c|</div><div class='add'>+        File.read(File.join(__dir__, "../tool/colors")).scan(/(\w+)=([^:\n]*)/) do |n, c|</div><div class='ctx'>           colors[n] ||= c</div><div class='ctx'>         end</div><div class='ctx'>       rescue</div><div class='hunk'>@@ -984,13 +984,6 @@ test_ok($z == 0)</div><div class='ctx'> </div><div class='ctx'> test_check "iterator"</div><div class='ctx'> </div><div class='del'>-test_ok(!iterator?)</div><div class='del'>-</div><div class='del'>-def ttt</div><div class='del'>-  test_ok(iterator?)</div><div class='del'>-end</div><div class='del'>-ttt{}</div><div class='del'>-</div><div class='ctx'> # yield at top level</div><div class='ctx'> test_ok(!defined?(yield))</div><div class='ctx'> </div><div class='hunk'>@@ -1432,9 +1425,6 @@ marity_test(:test_ok)</div><div class='ctx'> marity_test(:marity_test)</div><div class='ctx'> marity_test(:p)</div><div class='ctx'> </div><div class='del'>-lambda(&amp;method(:test_ok)).call(true)</div><div class='del'>-lambda(&amp;block_get{|a,n| test_ok(a,n)}).call(true, 2)</div><div class='del'>-</div><div class='ctx'> class ITER_TEST1</div><div class='ctx'>    def a</div><div class='ctx'>      block_given?</div><div class='hunk'>@@ -1739,7 +1729,7 @@ a = nil</div><div class='ctx'> test_ok(defined?(a))</div><div class='ctx'> test_ok(a == nil)</div><div class='ctx'> </div><div class='del'>-# multiple asignment</div><div class='add'>+# multiple assignment</div><div class='ctx'> a, b = 1, 2</div><div class='ctx'> test_ok(a == 1 &amp;&amp; b == 2)</div><div class='ctx'> </div><div class='hunk'>@@ -1970,6 +1960,8 @@ test_ok(p1.call == 5)</div><div class='ctx'> test_ok(i7 == nil)</div><div class='ctx'> end</div><div class='ctx'> </div><div class='add'>+# WASI doesn't support spawning a new process for now.</div><div class='add'>+unless /wasi/ =~ RUBY_PLATFORM</div><div class='ctx'> test_check "system"</div><div class='ctx'> test_ok(`echo foobar` == "foobar\n")</div><div class='ctx'> test_ok(`./miniruby -e 'print "foobar"'` == 'foobar')</div><div class='hunk'>@@ -2020,6 +2012,7 @@ test_ok(done)</div><div class='ctx'> </div><div class='ctx'> File.unlink script_tmp or `/bin/rm -f "#{script_tmp}"`</div><div class='ctx'> File.unlink "#{script_tmp}.bak" or `/bin/rm -f "#{script_tmp}.bak"`</div><div class='add'>+end # not /wasi/ =~ RUBY_PLATFORM</div><div class='ctx'> </div><div class='ctx'> test_check "const"</div><div class='ctx'> TEST1 = 1</div><div class='hunk'>@@ -2147,7 +2140,7 @@ $_ = foobar</div><div class='ctx'> test_ok($_ == foobar)</div><div class='ctx'> </div><div class='ctx'> class Gods</div><div class='del'>-  @@rule = "Uranus"		# private to Gods</div><div class='add'>+  @@rule = "Uranus"</div><div class='ctx'>   def ruler0</div><div class='ctx'>     @@rule</div><div class='ctx'>   end</div><div class='hunk'>@@ -2170,7 +2163,7 @@ module Olympians</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> class Titans &lt; Gods</div><div class='del'>-  @@rule = "Cronus"		# do not affect @@rule in Gods</div><div class='add'>+  @@rule = "Cronus"		# modifies @@rule in Gods</div><div class='ctx'>   include Olympians</div><div class='ctx'>   def ruler4</div><div class='ctx'>     @@rule</div><div class='hunk'>@@ -2185,7 +2178,14 @@ test_ok(Titans.ruler2 == "Cronus")</div><div class='ctx'> atlas = Titans.new</div><div class='ctx'> test_ok(atlas.ruler0 == "Cronus")</div><div class='ctx'> test_ok(atlas.ruler3 == "Zeus")</div><div class='del'>-test_ok(atlas.ruler4 == "Cronus")</div><div class='add'>+begin</div><div class='add'>+  atlas.ruler4</div><div class='add'>+rescue RuntimeError =&gt; e</div><div class='add'>+  test_ok(e.message.include?("class variable @@rule of Olympians is overtaken by Gods"))</div><div class='add'>+else</div><div class='add'>+  test_ok(false)</div><div class='add'>+end</div><div class='add'>+test_ok(atlas.ruler3 == "Zeus")</div><div class='ctx'> </div><div class='ctx'> test_check "trace"</div><div class='ctx'> $x = 1234</div><div class='head'>diff --git a/benchmark/README.md b/benchmark/README.md<br/>index 24a2669143..e11381cad9 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/README.md?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/README.md</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/README.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/README.md</a></div><div class='hunk'>@@ -28,15 +28,17 @@ See also:</div><div class='ctx'> </div><div class='ctx'> ```console</div><div class='ctx'> Usage: benchmark-driver [options] RUBY|YAML...</div><div class='del'>-    -r, --runner TYPE                Specify runner type: ips, time, memory, once (default: ips)</div><div class='del'>-    -o, --output TYPE                Specify output type: compare, simple, markdown, record (default: compare)</div><div class='add'>+    -r, --runner TYPE                Specify runner type: ips, time, memory, once, block (default: ips)</div><div class='add'>+    -o, --output TYPE                Specify output type: compare, simple, markdown, record, all (default: compare)</div><div class='ctx'>     -e, --executables EXECS          Ruby executables (e1::path1 arg1; e2::path2 arg2;...)</div><div class='ctx'>         --rbenv VERSIONS             Ruby executables in rbenv (x.x.x arg1;y.y.y arg2;...)</div><div class='ctx'>         --repeat-count NUM           Try benchmark NUM times and use the fastest result or the worst memory usage</div><div class='ctx'>         --repeat-result TYPE         Yield "best", "average" or "worst" result with --repeat-count (default: best)</div><div class='add'>+        --alternate                  Alternate executables instead of running the same executable in a row with --repeat-count</div><div class='ctx'>         --bundler                    Install and use gems specified in Gemfile</div><div class='ctx'>         --filter REGEXP              Filter out benchmarks with given regexp</div><div class='ctx'>         --run-duration SECONDS       Warmup estimates loop_count to run for this duration (default: 3)</div><div class='add'>+        --timeout SECONDS            Timeout ruby command execution with timeout(1)</div><div class='ctx'>     -v, --verbose                    Verbose mode. Multiple -v options increase visilibity (max: 2)</div><div class='ctx'> ```</div><div class='ctx'> </div><div class='hunk'>@@ -53,20 +55,20 @@ make benchmark</div><div class='ctx'> # Or compare with specific ruby binary</div><div class='ctx'> make benchmark COMPARE_RUBY="/path/to/ruby --jit"</div><div class='ctx'> </div><div class='del'>-# Run vm1 benchmarks</div><div class='del'>-make benchmark ITEM=vm1</div><div class='add'>+# Run vm benchmarks</div><div class='add'>+make benchmark ITEM=vm</div><div class='ctx'> </div><div class='ctx'> # Run some limited benchmarks in ITEM-matched files</div><div class='del'>-make benchmark ITEM=vm1 OPTS=--filter=block</div><div class='add'>+make benchmark ITEM=vm OPTS=--filter=block</div><div class='ctx'> </div><div class='ctx'> # You can specify the benchmark by an exact filename instead of using the default argument:</div><div class='ctx'> # ARGS = $$(find $(srcdir)/benchmark -maxdepth 1 -name '*$(ITEM)*.yml' -o -name '*$(ITEM)*.rb')</div><div class='del'>-make benchmark ARGS=../benchmark/erb_render.yml</div><div class='add'>+make benchmark ARGS=benchmark/erb_render.yml</div><div class='ctx'> </div><div class='ctx'> # You can specify any option via $OPTS</div><div class='ctx'> make benchmark OPTS="--help"</div><div class='ctx'> </div><div class='ctx'> # With `make benchmark`, some special runner plugins are available:</div><div class='ctx'> #   -r peak, -r size, -r total, -r utime, -r stime, -r cutime, -r cstime</div><div class='del'>-make benchmark ITEM=vm2_bigarray OPTS="-r peak"</div><div class='add'>+make benchmark ITEM=vm_bigarray OPTS="-r peak"</div><div class='ctx'> ```</div><div class='head'>diff --git a/benchmark/app_aobench.rb b/benchmark/app_aobench.rb<br/>index 2bd6acfaf8..16296af12b 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/app_aobench.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/app_aobench.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/app_aobench.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/app_aobench.rb</a></div><div class='hunk'>@@ -1,3 +1,5 @@</div><div class='add'>+# coding: US-ASCII</div><div class='add'>+</div><div class='ctx'> # AO render benchmark</div><div class='ctx'> # Original program (C) Syoyo Fujita in Javascript (and other languages)</div><div class='ctx'> #      https://code.google.com/p/aobench/</div><div class='hunk'>@@ -9,6 +11,8 @@ IMAGE_HEIGHT = 256</div><div class='ctx'> NSUBSAMPLES = 2</div><div class='ctx'> NAO_SAMPLES = 8</div><div class='ctx'> </div><div class='add'>+srand(0)</div><div class='add'>+</div><div class='ctx'> class Vec</div><div class='ctx'>   def initialize(x, y, z)</div><div class='ctx'>     @x = x</div><div class='hunk'>@@ -278,12 +282,14 @@ end</div><div class='ctx'> </div><div class='ctx'> alias printf_orig printf</div><div class='ctx'> def printf *args</div><div class='add'>+  # $fp.printf(*args)</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> # File.open("ao.ppm", "w") do |fp|</div><div class='add'>+  # $fp = fp</div><div class='ctx'>   printf("P6\n")</div><div class='ctx'>   printf("%d %d\n", IMAGE_WIDTH, IMAGE_HEIGHT)</div><div class='del'>-  printf("255\n", IMAGE_WIDTH, IMAGE_HEIGHT)</div><div class='add'>+  printf("255\n")</div><div class='ctx'>   Scene.new.render(IMAGE_WIDTH, IMAGE_HEIGHT, NSUBSAMPLES)</div><div class='ctx'> # end</div><div class='ctx'> </div><div class='head'>diff --git a/benchmark/app_erb.yml b/benchmark/app_erb.yml<br/>index 8583858d20..31e29b7644 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/app_erb.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/app_erb.yml</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/app_erb.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/app_erb.yml</a></div><div class='hunk'>@@ -16,7 +16,6 @@ prelude: |</div><div class='ctx'>   &lt;/html&gt;</div><div class='ctx'>   erb</div><div class='ctx'> </div><div class='del'>-  max = 15_000</div><div class='ctx'>   title = "hello world!"</div><div class='ctx'>   content = "hello world!\n" * 10</div><div class='ctx'> benchmark:</div><div class='head'>diff --git a/benchmark/array_flatten.yml b/benchmark/array_flatten.yml<br/>new file mode 100644<br/>index 0000000000..88ef544ba0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/array_flatten.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/array_flatten.yml</a></div><div class='hunk'>@@ -0,0 +1,19 @@</div><div class='add'>+prelude: |</div><div class='add'>+  small_flat_ary = 5.times.to_a</div><div class='add'>+  large_flat_ary = 100.times.to_a</div><div class='add'>+  small_pairs_ary = [[1, 2]] * 5</div><div class='add'>+  large_pairs_ary = [[1, 2]] * 100</div><div class='add'>+  mostly_flat_ary = 100.times.to_a.push([101, 102])</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  small_flat_ary.flatten: small_flat_ary.flatten</div><div class='add'>+  small_flat_ary.flatten!: small_flat_ary.flatten!</div><div class='add'>+  large_flat_ary.flatten: large_flat_ary.flatten</div><div class='add'>+  large_flat_ary.flatten!: large_flat_ary.flatten!</div><div class='add'>+  small_pairs_ary.flatten: small_pairs_ary.flatten</div><div class='add'>+  small_pairs_ary.flatten!: small_pairs_ary.dup.flatten!</div><div class='add'>+  large_pairs_ary.flatten: large_pairs_ary.flatten</div><div class='add'>+  large_pairs_ary.flatten!: large_pairs_ary.dup.flatten!</div><div class='add'>+  mostly_flat_ary.flatten: mostly_flat_ary.flatten</div><div class='add'>+  mostly_flat_ary.flatten!: mostly_flat_ary.dup.flatten!</div><div class='add'>+loop_count: 10000</div><div class='head'>diff --git a/benchmark/array_intersection.yml b/benchmark/array_intersection.yml<br/>new file mode 100644<br/>index 0000000000..26705323fd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/array_intersection.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/array_intersection.yml</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+prelude: |</div><div class='add'>+  small1 = [1, 2, 3]</div><div class='add'>+  small2 = [1, 2, 3, 4, 5]</div><div class='add'>+  small3 = [2, 3, 4, 5]</div><div class='add'>+  small4 = [2]</div><div class='add'>+  big1 = [1, 2, 3, 4] * 64</div><div class='add'>+  big2 = [1, 2, 3] * 64</div><div class='add'>+  big3 = [1, 2] * 64</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  small-&amp;: small1 &amp; small2 &amp; small3 &amp; small4</div><div class='add'>+  small-intersection: small1.intersection(small2, small3, small4)</div><div class='add'>+  big-&amp;: big1 &amp; big2 &amp; big3</div><div class='add'>+  big-intersection: big1.intersection(big2, big3)</div><div class='head'>diff --git a/benchmark/array_max_float.yml b/benchmark/array_max_float.yml<br/>new file mode 100644<br/>index 0000000000..ace1ae2e14<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/array_max_float.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/array_max_float.yml</a></div><div class='hunk'>@@ -0,0 +1,30 @@</div><div class='add'>+prelude: |</div><div class='add'>+  ary2 = 2.times.map(&amp;:to_f).shuffle</div><div class='add'>+  ary10 = 10.times.map(&amp;:to_f).shuffle</div><div class='add'>+  ary100 = 100.times.map(&amp;:to_f).shuffle</div><div class='add'>+  ary500 = 500.times.map(&amp;:to_f).shuffle</div><div class='add'>+  ary1000 = 1000.times.map(&amp;:to_f).shuffle</div><div class='add'>+  ary2000 = 2500.times.map(&amp;:to_f).shuffle</div><div class='add'>+  ary3000 = 2500.times.map(&amp;:to_f).shuffle</div><div class='add'>+  ary5000 = 5000.times.map(&amp;:to_f).shuffle</div><div class='add'>+  ary10000 = 10000.times.map(&amp;:to_f).shuffle</div><div class='add'>+  ary20000 = 20000.times.map(&amp;:to_f).shuffle</div><div class='add'>+  ary50000 = 50000.times.map(&amp;:to_f).shuffle</div><div class='add'>+  ary100000 = 100000.times.map(&amp;:to_f).shuffle</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  ary2.max: ary2.max</div><div class='add'>+  ary10.max: ary10.max</div><div class='add'>+  ary100.max: ary100.max</div><div class='add'>+  ary500.max: ary500.max</div><div class='add'>+  ary1000.max: ary1000.max</div><div class='add'>+  ary2000.max: ary2000.max</div><div class='add'>+  ary3000.max: ary3000.max</div><div class='add'>+  ary5000.max: ary5000.max</div><div class='add'>+  ary10000.max: ary10000.max</div><div class='add'>+  ary20000.max: ary20000.max</div><div class='add'>+  ary50000.max: ary50000.max</div><div class='add'>+  ary100000.max: ary100000.max</div><div class='add'>+</div><div class='add'>+loop_count: 10000</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/array_max_int.yml b/benchmark/array_max_int.yml<br/>new file mode 100644<br/>index 0000000000..acd83684d0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/array_max_int.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/array_max_int.yml</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+prelude: |</div><div class='add'>+  ary2 = 2.times.to_a.shuffle</div><div class='add'>+  ary10 = 10.times.to_a.shuffle</div><div class='add'>+  ary100 = 100.times.to_a.shuffle</div><div class='add'>+  ary500 = 500.times.to_a.shuffle</div><div class='add'>+  ary1000 = 1000.times.to_a.shuffle</div><div class='add'>+  ary2000 = 2500.times.to_a.shuffle</div><div class='add'>+  ary3000 = 2500.times.to_a.shuffle</div><div class='add'>+  ary5000 = 5000.times.to_a.shuffle</div><div class='add'>+  ary10000 = 10000.times.to_a.shuffle</div><div class='add'>+  ary20000 = 20000.times.to_a.shuffle</div><div class='add'>+  ary50000 = 50000.times.to_a.shuffle</div><div class='add'>+  ary100000 = 100000.times.to_a.shuffle</div><div class='add'>+  ary1000000 = 1000000.times.to_a.shuffle</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  ary2.max: ary2.max</div><div class='add'>+  ary10.max: ary10.max</div><div class='add'>+  ary100.max: ary100.max</div><div class='add'>+  ary500.max: ary500.max</div><div class='add'>+  ary1000.max: ary1000.max</div><div class='add'>+  ary2000.max: ary2000.max</div><div class='add'>+  ary3000.max: ary3000.max</div><div class='add'>+  ary5000.max: ary5000.max</div><div class='add'>+  ary10000.max: ary10000.max</div><div class='add'>+  ary20000.max: ary20000.max</div><div class='add'>+  ary50000.max: ary50000.max</div><div class='add'>+  ary100000.max: ary100000.max</div><div class='add'>+  ary1000000.max: ary1000000.max</div><div class='add'>+</div><div class='add'>+loop_count: 10000</div><div class='head'>diff --git a/benchmark/array_max_str.yml b/benchmark/array_max_str.yml<br/>new file mode 100644<br/>index 0000000000..2aeed010f2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/array_max_str.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/array_max_str.yml</a></div><div class='hunk'>@@ -0,0 +1,30 @@</div><div class='add'>+prelude: |</div><div class='add'>+  ary2 = 2.times.map(&amp;:to_s).shuffle</div><div class='add'>+  ary10 = 10.times.map(&amp;:to_s).shuffle</div><div class='add'>+  ary100 = 100.times.map(&amp;:to_s).shuffle</div><div class='add'>+  ary500 = 500.times.map(&amp;:to_s).shuffle</div><div class='add'>+  ary1000 = 1000.times.map(&amp;:to_s).shuffle</div><div class='add'>+  ary2000 = 2500.times.map(&amp;:to_s).shuffle</div><div class='add'>+  ary3000 = 2500.times.map(&amp;:to_s).shuffle</div><div class='add'>+  ary5000 = 5000.times.map(&amp;:to_s).shuffle</div><div class='add'>+  ary10000 = 10000.times.map(&amp;:to_s).shuffle</div><div class='add'>+  ary20000 = 20000.times.map(&amp;:to_s).shuffle</div><div class='add'>+  ary50000 = 50000.times.map(&amp;:to_s).shuffle</div><div class='add'>+  ary100000 = 100000.times.map(&amp;:to_s).shuffle</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  ary2.max: ary2.max</div><div class='add'>+  ary10.max: ary10.max</div><div class='add'>+  ary100.max: ary100.max</div><div class='add'>+  ary500.max: ary500.max</div><div class='add'>+  ary1000.max: ary1000.max</div><div class='add'>+  ary2000.max: ary2000.max</div><div class='add'>+  ary3000.max: ary3000.max</div><div class='add'>+  ary5000.max: ary5000.max</div><div class='add'>+  ary10000.max: ary10000.max</div><div class='add'>+  ary20000.max: ary20000.max</div><div class='add'>+  ary50000.max: ary50000.max</div><div class='add'>+  ary100000.max: ary100000.max</div><div class='add'>+</div><div class='add'>+loop_count: 10000</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/array_min.yml b/benchmark/array_min.yml<br/>new file mode 100644<br/>index 0000000000..53e5072b14<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/array_min.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/array_min.yml</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+prelude: |</div><div class='add'>+  ary2 = 2.times.to_a.shuffle</div><div class='add'>+  ary10 = 10.times.to_a.shuffle</div><div class='add'>+  ary100 = 100.times.to_a.shuffle</div><div class='add'>+  ary500 = 500.times.to_a.shuffle</div><div class='add'>+  ary1000 = 1000.times.to_a.shuffle</div><div class='add'>+  ary2000 = 2500.times.to_a.shuffle</div><div class='add'>+  ary3000 = 2500.times.to_a.shuffle</div><div class='add'>+  ary5000 = 5000.times.to_a.shuffle</div><div class='add'>+  ary10000 = 10000.times.to_a.shuffle</div><div class='add'>+  ary20000 = 20000.times.to_a.shuffle</div><div class='add'>+  ary50000 = 50000.times.to_a.shuffle</div><div class='add'>+  ary100000 = 100000.times.to_a.shuffle</div><div class='add'>+  ary1000000 = 1000000.times.to_a.shuffle</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  ary2.min: ary2.min</div><div class='add'>+  ary10.min: ary10.min</div><div class='add'>+  ary100.min: ary100.min</div><div class='add'>+  ary500.min: ary500.min</div><div class='add'>+  ary1000.min: ary1000.min</div><div class='add'>+  ary2000.min: ary2000.min</div><div class='add'>+  ary3000.min: ary3000.min</div><div class='add'>+  ary5000.min: ary5000.min</div><div class='add'>+  ary10000.min: ary10000.min</div><div class='add'>+  ary20000.min: ary20000.min</div><div class='add'>+  ary50000.min: ary50000.min</div><div class='add'>+  ary100000.min: ary100000.min</div><div class='add'>+  ary1000000.min: ary1000000.min</div><div class='add'>+</div><div class='add'>+loop_count: 10000</div><div class='head'>diff --git a/benchmark/array_sample.yml b/benchmark/array_sample.yml<br/>new file mode 100644<br/>index 0000000000..1cd2b34794<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/array_sample.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/array_sample.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+prelude: ary = (1..10_000).to_a</div><div class='add'>+benchmark:</div><div class='add'>+  - ary.sample</div><div class='add'>+  - ary.sample(2)</div><div class='head'>diff --git a/benchmark/array_sort_int.yml b/benchmark/array_sort_int.yml<br/>new file mode 100644<br/>index 0000000000..7b9027ebf7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/array_sort_int.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/array_sort_int.yml</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+prelude: |</div><div class='add'>+  ary2 = 2.times.to_a.shuffle</div><div class='add'>+  ary10 = 10.times.to_a.shuffle</div><div class='add'>+  ary100 = 100.times.to_a.shuffle</div><div class='add'>+  ary1000 = 1000.times.to_a.shuffle</div><div class='add'>+  ary10000 = 10000.times.to_a.shuffle</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  ary2.sort: ary2.sort</div><div class='add'>+  ary10.sort: ary10.sort</div><div class='add'>+  ary100.sort: ary100.sort</div><div class='add'>+  ary1000.sort: ary1000.sort</div><div class='add'>+  ary10000.sort: ary10000.sort</div><div class='add'>+</div><div class='add'>+loop_count: 10000</div><div class='head'>diff --git a/benchmark/attr_accessor.yml b/benchmark/attr_accessor.yml<br/>new file mode 100644<br/>index 0000000000..82134cdf9b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/attr_accessor.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/attr_accessor.yml</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    attr_accessor :x</div><div class='add'>+    def initialize</div><div class='add'>+      @x = nil</div><div class='add'>+    end</div><div class='add'>+    class_eval &lt;&lt;-END</div><div class='add'>+      def ar</div><div class='add'>+        #{'x;'*256}</div><div class='add'>+      end</div><div class='add'>+      def aw</div><div class='add'>+        #{'self.x = nil;'*256}</div><div class='add'>+      end</div><div class='add'>+      def arm</div><div class='add'>+        m = method(:x)</div><div class='add'>+        #{'m.call;'*256}</div><div class='add'>+      end</div><div class='add'>+      def awm</div><div class='add'>+        m = method(:x=)</div><div class='add'>+        #{'m.call(nil);'*256}</div><div class='add'>+      end</div><div class='add'>+    END</div><div class='add'>+  end</div><div class='add'>+  obj = C.new</div><div class='add'>+benchmark:</div><div class='add'>+  attr_reader: "obj.ar"</div><div class='add'>+  attr_writer: "obj.aw"</div><div class='add'>+  attr_reader_method: "obj.arm"</div><div class='add'>+  attr_writer_method: "obj.awm"</div><div class='head'>diff --git a/benchmark/buffer_each.yml b/benchmark/buffer_each.yml<br/>new file mode 100644<br/>index 0000000000..417941104e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/buffer_each.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/buffer_each.yml</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+prelude: |</div><div class='add'>+  # frozen_string_literal: true</div><div class='add'>+  Warning[:experimental] = false</div><div class='add'>+  string = "The quick brown fox jumped over the lazy dog."</div><div class='add'>+  array = string.bytes</div><div class='add'>+  buffer = IO::Buffer.for(string)</div><div class='add'>+benchmark:</div><div class='add'>+  string.each_byte: |</div><div class='add'>+    upcased = String.new</div><div class='add'>+    string.each_byte do |byte|</div><div class='add'>+      upcased &lt;&lt; (byte ^ 32)</div><div class='add'>+    end</div><div class='add'>+  array.each: |</div><div class='add'>+    upcased = String.new</div><div class='add'>+    array.each do |byte|</div><div class='add'>+      upcased &lt;&lt; (byte ^ 32)</div><div class='add'>+    end</div><div class='add'>+  buffer.each: |</div><div class='add'>+    upcased = String.new</div><div class='add'>+    buffer.each(:U8) do |offset, byte|</div><div class='add'>+      upcased &lt;&lt; (byte ^ 32)</div><div class='add'>+    end</div><div class='add'>+  buffer.each_byte: |</div><div class='add'>+    upcased = String.new</div><div class='add'>+    buffer.each_byte do |byte|</div><div class='add'>+      upcased &lt;&lt; (byte ^ 32)</div><div class='add'>+    end</div><div class='head'>diff --git a/benchmark/buffer_get.yml b/benchmark/buffer_get.yml<br/>new file mode 100644<br/>index 0000000000..9e1f99d64e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/buffer_get.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/buffer_get.yml</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+prelude: |</div><div class='add'>+  # frozen_string_literal: true</div><div class='add'>+  Warning[:experimental] = false</div><div class='add'>+  string = "The quick brown fox jumped over the lazy dog."</div><div class='add'>+  buffer = IO::Buffer.for(string)</div><div class='add'>+  format = [:U32, :U32, :U32, :U32]</div><div class='add'>+benchmark:</div><div class='add'>+  string.unpack1: |</div><div class='add'>+    [</div><div class='add'>+      string.unpack1("N"),</div><div class='add'>+      string.unpack1("N", offset: 4),</div><div class='add'>+      string.unpack1("N", offset: 8),</div><div class='add'>+      string.unpack1("N", offset: 12),</div><div class='add'>+    ]</div><div class='add'>+  buffer.get_value: |</div><div class='add'>+    [</div><div class='add'>+      buffer.get_value(:U32, 0),</div><div class='add'>+      buffer.get_value(:U32, 4),</div><div class='add'>+      buffer.get_value(:U32, 8),</div><div class='add'>+      buffer.get_value(:U32, 12),</div><div class='add'>+    ]</div><div class='add'>+  buffer.get_values: |</div><div class='add'>+    buffer.get_values(format, 0)</div><div class='add'>+  string.unpack: |</div><div class='add'>+    string.unpack("NNNN")</div><div class='head'>diff --git a/benchmark/cgi_escape_html.yml b/benchmark/cgi_escape_html.yml<br/>new file mode 100644<br/>index 0000000000..655be9d7d8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/cgi_escape_html.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/cgi_escape_html.yml</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+prelude: |</div><div class='add'>+  # frozen_string_literal: true</div><div class='add'>+  require 'cgi/escape'</div><div class='add'>+benchmark:</div><div class='add'>+  - script: CGI.escapeHTML("")</div><div class='add'>+    loop_count: 20000000</div><div class='add'>+  - script: CGI.escapeHTML("abcde")</div><div class='add'>+    loop_count: 20000000</div><div class='add'>+  - script: CGI.escapeHTML("abcd&lt;")</div><div class='add'>+    loop_count: 20000000</div><div class='add'>+  - script: CGI.escapeHTML("'&amp;\"&lt;&gt;")</div><div class='add'>+    loop_count: 5000000</div><div class='add'>+  - prelude: long_no_escape = "abcde" * 300</div><div class='add'>+    script: CGI.escapeHTML(long_no_escape)</div><div class='add'>+    loop_count: 1000000</div><div class='add'>+  - prelude: long_all_escape = "'&amp;\"&lt;&gt;" * 10</div><div class='add'>+    script: CGI.escapeHTML(long_all_escape)</div><div class='add'>+    loop_count: 1000000</div><div class='add'>+  - prelude: | # http://example.com/</div><div class='add'>+      example_html = &lt;&lt;~HTML</div><div class='add'>+        &lt;body&gt;</div><div class='add'>+        &lt;div&gt;</div><div class='add'>+            &lt;h1&gt;Example Domain&lt;/h1&gt;</div><div class='add'>+            &lt;p&gt;This domain is established to be used for illustrative examples in documents. You may use this</div><div class='add'>+            domain in examples without prior coordination or asking for permission.&lt;/p&gt;</div><div class='add'>+            &lt;p&gt;&lt;a href="http://www.iana.org/domains/example"&gt;More information...&lt;/a&gt;&lt;/p&gt;</div><div class='add'>+        &lt;/div&gt;</div><div class='add'>+        &lt;/body&gt;</div><div class='add'>+      HTML</div><div class='add'>+    script: CGI.escapeHTML(example_html)</div><div class='add'>+    loop_count: 1000000</div><div class='head'>diff --git a/benchmark/complex_float_add.yml b/benchmark/complex_float_add.yml<br/>new file mode 100644<br/>index 0000000000..d0150c5e5b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/complex_float_add.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/complex_float_add.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  max, min = 1000.0, -1000.0</div><div class='add'>+  a = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+  b = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+benchmark:</div><div class='add'>+  complex_float_add: c = a + b</div><div class='add'>+loop_count: 1000000</div><div class='head'>diff --git a/benchmark/complex_float_div.yml b/benchmark/complex_float_div.yml<br/>new file mode 100644<br/>index 0000000000..b9f5e1d51c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/complex_float_div.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/complex_float_div.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  max, min = 1000.0, -1000.0</div><div class='add'>+  a = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+  b = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+benchmark:</div><div class='add'>+  complex_float_div: c = a / b</div><div class='add'>+loop_count: 1000000</div><div class='head'>diff --git a/benchmark/complex_float_mul.yml b/benchmark/complex_float_mul.yml<br/>new file mode 100644<br/>index 0000000000..59b096a6dc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/complex_float_mul.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/complex_float_mul.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  max, min = 1000.0, -1000.0</div><div class='add'>+  a = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+  b = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+benchmark:</div><div class='add'>+  complex_float_mul: c = a * b</div><div class='add'>+loop_count: 1000000</div><div class='head'>diff --git a/benchmark/complex_float_new.yml b/benchmark/complex_float_new.yml<br/>new file mode 100644<br/>index 0000000000..6fcde3125b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/complex_float_new.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/complex_float_new.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  max, min = 1000.0, -1000.0</div><div class='add'>+  a = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+  b = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+benchmark:</div><div class='add'>+  complex_float_new: c = Complex(a, b)</div><div class='add'>+loop_count: 1000000</div><div class='head'>diff --git a/benchmark/complex_float_power.yml b/benchmark/complex_float_power.yml<br/>new file mode 100644<br/>index 0000000000..c40a31ab55<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/complex_float_power.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/complex_float_power.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  max, min = 1000.0, -1000.0</div><div class='add'>+  a = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+  b = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+benchmark:</div><div class='add'>+  complex_float_power: c = a ** b</div><div class='add'>+loop_count: 1000000</div><div class='head'>diff --git a/benchmark/complex_float_sub.yml b/benchmark/complex_float_sub.yml<br/>new file mode 100644<br/>index 0000000000..3fafe7cdbe<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/complex_float_sub.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/complex_float_sub.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  max, min = 1000.0, -1000.0</div><div class='add'>+  a = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+  b = Complex(rand(max)+min, rand(max)+min)</div><div class='add'>+benchmark:</div><div class='add'>+  complex_float_sub: c = a - b</div><div class='add'>+loop_count: 1000000</div><div class='head'>diff --git a/benchmark/constant_invalidation.rb b/benchmark/constant_invalidation.rb<br/>new file mode 100644<br/>index 0000000000..a95ec6f37e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/constant_invalidation.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/constant_invalidation.rb</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+$VERBOSE = nil</div><div class='add'>+</div><div class='add'>+CONSTANT1 = 1</div><div class='add'>+CONSTANT2 = 1</div><div class='add'>+CONSTANT3 = 1</div><div class='add'>+CONSTANT4 = 1</div><div class='add'>+CONSTANT5 = 1</div><div class='add'>+</div><div class='add'>+def constants</div><div class='add'>+  [CONSTANT1, CONSTANT2, CONSTANT3, CONSTANT4, CONSTANT5]</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+500_000.times do</div><div class='add'>+  constants</div><div class='add'>+</div><div class='add'>+  # With previous behavior, this would cause all of the constant caches</div><div class='add'>+  # associated with the constant lookups listed above to invalidate, meaning</div><div class='add'>+  # they would all have to be fetched again. With current behavior, it only</div><div class='add'>+  # invalidates when a name matches, so the following constant set shouldn't</div><div class='add'>+  # impact the constant lookups listed above.</div><div class='add'>+  INVALIDATE = true</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/enum_lazy_flat_map.yml b/benchmark/enum_lazy_flat_map.yml<br/>new file mode 100644<br/>index 0000000000..0ee390a441<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/enum_lazy_flat_map.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/enum_lazy_flat_map.yml</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+prelude: |</div><div class='add'>+  num = (1..).lazy.take(100)</div><div class='add'>+  ary2 = [[1,2]].cycle.lazy.take(10)</div><div class='add'>+  ary10 = [[*1..10]].cycle.lazy.take(10)</div><div class='add'>+  ary20 = [[*1..20]].cycle.lazy.take(10)</div><div class='add'>+  ary50 = [[*1..50]].cycle.lazy.take(10)</div><div class='add'>+  ary100 = [[*1..100]].cycle.lazy.take(10)</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  num3: num.flat_map {|x| x}.take(3).to_a</div><div class='add'>+  num10: num.flat_map {|x| x}.take(3).to_a</div><div class='add'>+  ary2:  ary2.flat_map {|x| x}.take(3).to_a</div><div class='add'>+  ary10: ary10.flat_map {|x| x}.take(3).to_a</div><div class='add'>+  ary20: ary20.flat_map {|x| x}.take(3).to_a</div><div class='add'>+  ary50: ary50.flat_map {|x| x}.take(3).to_a</div><div class='add'>+  ary100: ary100.flat_map {|x| x}.take(3).to_a</div><div class='head'>diff --git a/benchmark/enum_lazy_zip.yml b/benchmark/enum_lazy_zip.yml<br/>new file mode 100644<br/>index 0000000000..4566ff0261<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/enum_lazy_zip.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/enum_lazy_zip.yml</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+prelude: |</div><div class='add'>+  a = (1..3).lazy</div><div class='add'>+  b = a.map {|x| x}</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  first_ary: a.zip(["a", "b", "c"]).first</div><div class='add'>+  first_nonary: a.zip("a".."c").first</div><div class='add'>+  first_noarg: a.zip.first</div><div class='add'>+</div><div class='add'>+  take3_ary: a.zip(["a", "b", "c"]).take(3).force</div><div class='add'>+  take3_nonary: a.zip("a".."c").take(3).force</div><div class='add'>+  take3_noarg: a.zip.take(3).force</div><div class='add'>+</div><div class='add'>+  chain-first_ary: b.zip(["a", "b", "c"]).first</div><div class='add'>+  chain-first_nonary: b.zip("a".."c").first</div><div class='add'>+  chain-first_noarg: b.zip.first</div><div class='add'>+</div><div class='add'>+  chain-take3_ary: b.zip(["a", "b", "c"]).take(3).force</div><div class='add'>+  chain-take3_nonary: b.zip("a".."c").take(3).force</div><div class='add'>+  chain-take3_noarg: b.zip.take(3).force</div><div class='add'>+</div><div class='add'>+  block: a.zip("a".."c") {|x, y| [x, y]}</div><div class='head'>diff --git a/benchmark/enum_minmax.yml b/benchmark/enum_minmax.yml<br/>new file mode 100644<br/>index 0000000000..9d01731abb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/enum_minmax.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/enum_minmax.yml</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+prelude: |</div><div class='add'>+  set2 = 2.times.to_a.shuffle.to_set</div><div class='add'>+  set10 = 10.times.to_a.shuffle.to_set</div><div class='add'>+  set100 = 100.times.to_a.shuffle.to_set</div><div class='add'>+  set1000 = 1000.times.to_a.shuffle.to_set</div><div class='add'>+  set10000 = 10000.times.to_a.shuffle.to_set</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  set2.min: set2.min</div><div class='add'>+  set10.min: set10.min</div><div class='add'>+  set100.min: set100.min</div><div class='add'>+  set1000.min: set1000.min</div><div class='add'>+  set10000.min: set10000.min</div><div class='add'>+  set2.max: set2.max</div><div class='add'>+  set10.max: set10.max</div><div class='add'>+  set100.max: set100.max</div><div class='add'>+  set1000.max: set1000.max</div><div class='add'>+  set10000.max: set10000.max</div><div class='add'>+  set2.minmax: set2.minmax</div><div class='add'>+  set10.minmax: set10.minmax</div><div class='add'>+  set100.minmax: set100.minmax</div><div class='add'>+  set1000.minmax: set1000.minmax</div><div class='add'>+  set10000.minmax: set10000.minmax</div><div class='add'>+</div><div class='add'>+loop_count: 10000</div><div class='head'>diff --git a/benchmark/enum_sort.yml b/benchmark/enum_sort.yml<br/>new file mode 100644<br/>index 0000000000..6f26e748c6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/enum_sort.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/enum_sort.yml</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+prelude: |</div><div class='add'>+  set2 = 2.times.to_a.shuffle.to_set</div><div class='add'>+  set10 = 10.times.to_a.shuffle.to_set</div><div class='add'>+  set100 = 100.times.to_a.shuffle.to_set</div><div class='add'>+  set1000 = 1000.times.to_a.shuffle.to_set</div><div class='add'>+  set10000 = 10000.times.to_a.shuffle.to_set</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  set2.sort_by: set2.sort_by { 0 }</div><div class='add'>+  set10.sort_by: set10.sort_by { 0 }</div><div class='add'>+  set100.sort_by: set100.sort_by { 0 }</div><div class='add'>+  set1000.sort_by: set1000.sort_by { 0 }</div><div class='add'>+  set10000.sort_by: set10000.sort_by { 0 }</div><div class='add'>+</div><div class='add'>+loop_count: 10000</div><div class='head'>diff --git a/benchmark/enum_tally.yml b/benchmark/enum_tally.yml<br/>new file mode 100644<br/>index 0000000000..edd2e040a0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/enum_tally.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/enum_tally.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+prelude: |</div><div class='add'>+  list = ("aaa".."zzz").to_a*10</div><div class='add'>+benchmark:</div><div class='add'>+  tally: list.tally</div><div class='head'>diff --git a/benchmark/erb_escape_html.yml b/benchmark/erb_escape_html.yml<br/>new file mode 100644<br/>index 0000000000..ca28d756e7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/erb_escape_html.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/erb_escape_html.yml</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+prelude: |</div><div class='add'>+  # frozen_string_literal: true</div><div class='add'>+  require 'erb'</div><div class='add'>+benchmark:</div><div class='add'>+  - script: ERB::Util.html_escape("")</div><div class='add'>+    loop_count: 20000000</div><div class='add'>+  - script: ERB::Util.html_escape("abcde")</div><div class='add'>+    loop_count: 20000000</div><div class='add'>+  - script: ERB::Util.html_escape("abcd&lt;")</div><div class='add'>+    loop_count: 20000000</div><div class='add'>+  - script: ERB::Util.html_escape("'&amp;\"&lt;&gt;")</div><div class='add'>+    loop_count: 5000000</div><div class='add'>+  - prelude: long_no_escape = "abcde" * 300</div><div class='add'>+    script: ERB::Util.html_escape(long_no_escape)</div><div class='add'>+    loop_count: 1000000</div><div class='add'>+  - prelude: long_all_escape = "'&amp;\"&lt;&gt;" * 10</div><div class='add'>+    script: ERB::Util.html_escape(long_all_escape)</div><div class='add'>+    loop_count: 1000000</div><div class='add'>+  - prelude: | # http://example.com/</div><div class='add'>+      example_html = &lt;&lt;~HTML</div><div class='add'>+        &lt;body&gt;</div><div class='add'>+        &lt;div&gt;</div><div class='add'>+            &lt;h1&gt;Example Domain&lt;/h1&gt;</div><div class='add'>+            &lt;p&gt;This domain is established to be used for illustrative examples in documents. You may use this</div><div class='add'>+            domain in examples without prior coordination or asking for permission.&lt;/p&gt;</div><div class='add'>+            &lt;p&gt;&lt;a href="http://www.iana.org/domains/example"&gt;More information...&lt;/a&gt;&lt;/p&gt;</div><div class='add'>+        &lt;/div&gt;</div><div class='add'>+        &lt;/body&gt;</div><div class='add'>+      HTML</div><div class='add'>+    script: ERB::Util.html_escape(example_html)</div><div class='add'>+    loop_count: 1000000</div><div class='head'>diff --git a/benchmark/fiber_chain.rb b/benchmark/fiber_chain.rb<br/>deleted file mode 100755<br/>index 7e0a7f9d45..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/fiber_chain.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/fiber_chain.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,40 +0,0 @@</div><div class='del'>-# Check performance of fiber creation and transfer.</div><div class='del'>-</div><div class='del'>-def make_link(previous)</div><div class='del'>-  Fiber.new do</div><div class='del'>-    while message = previous.resume</div><div class='del'>-      Fiber.yield(message)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def make_chain(length, &amp;block)</div><div class='del'>-  chain = Fiber.new(&amp;block)</div><div class='del'>-</div><div class='del'>-  (length - 1).times do</div><div class='del'>-    chain = make_link(chain)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  return chain</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def run_benchmark(length, repeats, message = :hello)</div><div class='del'>-  chain = nil</div><div class='del'>-</div><div class='del'>-  chain = make_chain(length) do</div><div class='del'>-    while true</div><div class='del'>-      Fiber.yield(message)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  repeats.times do</div><div class='del'>-    abort "invalid result" unless chain.resume == message</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-n = (ARGV[0] || 1000).to_i</div><div class='del'>-m = (ARGV[1] || 1000).to_i</div><div class='del'>-</div><div class='del'>-5.times do</div><div class='del'>-  run_benchmark(n, m)</div><div class='del'>-end</div><div class='head'>diff --git a/benchmark/fiber_chain.yml b/benchmark/fiber_chain.yml<br/>new file mode 100644<br/>index 0000000000..a36c759f8e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/fiber_chain.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/fiber_chain.yml</a></div><div class='hunk'>@@ -0,0 +1,36 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def make_link(previous)</div><div class='add'>+    Fiber.new do</div><div class='add'>+      while message = previous.resume</div><div class='add'>+        Fiber.yield(message)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def make_chain(length = 1000, &amp;block)</div><div class='add'>+    chain = Fiber.new(&amp;block)</div><div class='add'>+</div><div class='add'>+    (length - 1).times do</div><div class='add'>+      chain = make_link(chain)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    return chain</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  message = "Hello World!"</div><div class='add'>+</div><div class='add'>+  chain = make_chain do</div><div class='add'>+    while true</div><div class='add'>+      Fiber.yield(message)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  make_chain: |</div><div class='add'>+    make_chain(100) do</div><div class='add'>+      while true</div><div class='add'>+        Fiber.yield(message)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  resume_chain: |</div><div class='add'>+    chain.resume</div><div class='add'>+loop_count: 5000</div><div class='head'>diff --git a/benchmark/fiber_locals.yml b/benchmark/fiber_locals.yml<br/>new file mode 100644<br/>index 0000000000..8588686477<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/fiber_locals.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/fiber_locals.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  th = Thread.current</div><div class='add'>+  th[:key] = :val</div><div class='add'>+benchmark:</div><div class='add'>+  key?: th.key?(:key)</div><div class='add'>+  []: th[:key]</div><div class='add'>+  keys: th.keys</div><div class='add'>+loop_count: 1_000_000</div><div class='head'>diff --git a/benchmark/float_methods.yml b/benchmark/float_methods.yml<br/>new file mode 100644<br/>index 0000000000..56ea41effc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/float_methods.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/float_methods.yml</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+prelude: |</div><div class='add'>+  flo = 4.2</div><div class='add'>+benchmark:</div><div class='add'>+  to_f: |</div><div class='add'>+    flo.to_f</div><div class='add'>+  abs: |</div><div class='add'>+    flo.abs</div><div class='add'>+  magnitude: |</div><div class='add'>+    flo.magnitude</div><div class='add'>+  -@: |</div><div class='add'>+    -flo</div><div class='add'>+  zero?: |</div><div class='add'>+    flo.zero?</div><div class='add'>+loop_count: 20000000</div><div class='head'>diff --git a/benchmark/float_neg_posi.yml b/benchmark/float_neg_posi.yml<br/>new file mode 100644<br/>index 0000000000..172db1bf6d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/float_neg_posi.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/float_neg_posi.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  flo = 4.2</div><div class='add'>+benchmark:</div><div class='add'>+  negative?: |</div><div class='add'>+    flo.negative?</div><div class='add'>+  positive?: |</div><div class='add'>+    flo.positive?</div><div class='add'>+loop_count: 20000000</div><div class='head'>diff --git a/benchmark/float_to_s.yml b/benchmark/float_to_s.yml<br/>new file mode 100644<br/>index 0000000000..0abae5cdb8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/float_to_s.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/float_to_s.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  floats = [*0.0.step(1.0, 0.0001)]</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  to_s: floats.each {|f| f.to_s}</div><div class='add'>+</div><div class='add'>+loop_count: 1000</div><div class='head'>diff --git a/benchmark/hash_aref_array.rb b/benchmark/hash_aref_array.rb<br/>new file mode 100644<br/>index 0000000000..ac7a683d95<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/hash_aref_array.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/hash_aref_array.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+h = {}</div><div class='add'>+arrays = (0..99).each_slice(10).to_a</div><div class='add'>+#STDERR.puts arrays.inspect</div><div class='add'>+arrays.each { |s| h[s] = s }</div><div class='add'>+200_000.times { arrays.each { |s| h[s] } }</div><div class='head'>diff --git a/benchmark/hash_defaults.yml b/benchmark/hash_defaults.yml<br/>new file mode 100644<br/>index 0000000000..833f10e1c7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/hash_defaults.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/hash_defaults.yml</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+prelude: |</div><div class='add'>+  h = Hash.new { :foo }</div><div class='add'>+benchmark:</div><div class='add'>+  default_aref: h[1]</div><div class='add'>+  default_method: h.default(1)</div><div class='add'>+loop_count: 1000000</div><div class='head'>diff --git a/benchmark/hash_dup.yml b/benchmark/hash_dup.yml<br/>new file mode 100644<br/>index 0000000000..65f521ec94<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/hash_dup.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/hash_dup.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  small_hash = { a: 1 }</div><div class='add'>+  larger_hash = 20.times.map { |i| [('a'.ord + i).chr.to_sym, i] }.to_h</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  dup_small: small_hash.dup</div><div class='add'>+  dup_larger: larger_hash.dup</div><div class='add'>+loop_count: 10000</div><div class='head'>diff --git a/benchmark/hash_first.yml b/benchmark/hash_first.yml<br/>new file mode 100644<br/>index 0000000000..c26df1a7ed<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/hash_first.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/hash_first.yml</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+prelude: |</div><div class='add'>+  hash1 = 1_000_000.times.to_h { [rand, true]}</div><div class='add'>+  hash2 = hash1.dup</div><div class='add'>+  hash2.keys[1..100_000].each { hash2.delete _1 }</div><div class='add'>+  hash2.delete hash2.first[0]</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  hash1: hash1.first</div><div class='add'>+  hash2: hash2.first</div><div class='add'>+</div><div class='add'>+loop_count: 100_000</div><div class='head'>diff --git a/benchmark/io_write.rb b/benchmark/io_write.rb<br/>new file mode 100644<br/>index 0000000000..cdb409948b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/io_write.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/io_write.rb</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+#!/usr/bin/env ruby</div><div class='add'>+</div><div class='add'>+require 'benchmark'</div><div class='add'>+</div><div class='add'>+i, o = IO.pipe</div><div class='add'>+o.sync = true</div><div class='add'>+</div><div class='add'>+DOT = ".".freeze</div><div class='add'>+</div><div class='add'>+chunks = 100_000.times.collect{DOT}</div><div class='add'>+</div><div class='add'>+thread = Thread.new do</div><div class='add'>+  while i.read(1024)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+100.times do</div><div class='add'>+  o.write(*chunks)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+o.close</div><div class='add'>+thread.join</div><div class='head'>diff --git a/benchmark/irb_color.yml b/benchmark/irb_color.yml<br/>new file mode 100644<br/>index 0000000000..ebdc8d7e8b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/irb_color.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/irb_color.yml</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+prelude: |</div><div class='add'>+  require 'irb/color'</div><div class='add'>+  code = &lt;&lt;~'CODE'</div><div class='add'>+    def self.foo # bar</div><div class='add'>+      :"erb #{ERB.new("&lt;%= self %&gt;", trim_mode: ?-).result}"</div><div class='add'>+    end</div><div class='add'>+  CODE</div><div class='add'>+benchmark:</div><div class='add'>+  irb_color_complete: |</div><div class='add'>+    IRB::Color.colorize_code(code, complete: true)</div><div class='add'>+  irb_color_incomplete: |</div><div class='add'>+    IRB::Color.colorize_code(code, complete: false)</div><div class='add'>+loop_count: 2000000</div><div class='head'>diff --git a/benchmark/irb_exec.yml b/benchmark/irb_exec.yml<br/>new file mode 100644<br/>index 0000000000..28933f8b38<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/irb_exec.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/irb_exec.yml</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+prelude: |</div><div class='add'>+  # frozen_string_literal: true</div><div class='add'>+  require 'rbconfig'</div><div class='add'>+  irb_f = [File.join(File.dirname(RbConfig.ruby), 'irb'), '-f']</div><div class='add'>+benchmark:</div><div class='add'>+  irb_exec: |</div><div class='add'>+    IO.popen(irb_f, 'w') do |io|</div><div class='add'>+      io.write('exit')</div><div class='add'>+    end</div><div class='add'>+loop_count: 30</div><div class='head'>diff --git a/benchmark/iseq_load_from_binary.yml b/benchmark/iseq_load_from_binary.yml<br/>new file mode 100644<br/>index 0000000000..7e9d73bdd4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/iseq_load_from_binary.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/iseq_load_from_binary.yml</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+prelude: |</div><div class='add'>+  symbol = RubyVM::InstructionSequence.compile(":foo; :bar; :baz; :egg; :spam").to_binary</div><div class='add'>+</div><div class='add'>+  define_method = RubyVM::InstructionSequence.compile(%{</div><div class='add'>+    def foo; end</div><div class='add'>+    def bar; end</div><div class='add'>+    def baz; end</div><div class='add'>+    def egg; end</div><div class='add'>+    def spam; end</div><div class='add'>+  }).to_binary</div><div class='add'>+</div><div class='add'>+  all = RubyVM::InstructionSequence.compile(%{</div><div class='add'>+    module Foo; def foo; :foo; end; end</div><div class='add'>+    module Bar; def bar; :bar; end; end</div><div class='add'>+    module Baz; def baz; :baz; end; end</div><div class='add'>+    class Egg; def egg; :egg; end; end</div><div class='add'>+    class Spaml; def spam; :spam; end; end</div><div class='add'>+  }).to_binary</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  symbol: RubyVM::InstructionSequence.load_from_binary(symbol)</div><div class='add'>+  define_method: RubyVM::InstructionSequence.load_from_binary(define_method)</div><div class='add'>+  all: RubyVM::InstructionSequence.load_from_binary(all)</div><div class='add'>+</div><div class='add'>+loop_count: 100_000</div><div class='head'>diff --git a/benchmark/ivar_extend.yml b/benchmark/ivar_extend.yml<br/>new file mode 100644<br/>index 0000000000..eb9ee923f5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/ivar_extend.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/ivar_extend.yml</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class Embedded</div><div class='add'>+    def initialize</div><div class='add'>+      @a = 1</div><div class='add'>+      @b = 1</div><div class='add'>+      @c = 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Extended</div><div class='add'>+    def initialize</div><div class='add'>+      @a = 1</div><div class='add'>+      @b = 1</div><div class='add'>+      @c = 1</div><div class='add'>+      @d = 1</div><div class='add'>+      @e = 1</div><div class='add'>+      @f = 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  embedded: Embedded.new</div><div class='add'>+  extended: Extended.new</div><div class='add'>+loop_count: 20_000_000</div><div class='head'>diff --git a/benchmark/kernel_clone.yml b/benchmark/kernel_clone.yml<br/>new file mode 100644<br/>index 0000000000..069b23abcd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/kernel_clone.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/kernel_clone.yml</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+prelude: "object = Object.new"</div><div class='add'>+benchmark:</div><div class='add'>+  clone: "object.clone"</div><div class='add'>+  clone_true: "object.clone(freeze: true)"</div><div class='add'>+  clone_false: "object.clone(freeze: false)"</div><div class='add'>+loop_count: 10000</div><div class='head'>diff --git a/benchmark/kernel_float.yml b/benchmark/kernel_float.yml<br/>new file mode 100644<br/>index 0000000000..215f6750fc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/kernel_float.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/kernel_float.yml</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+benchmark:</div><div class='add'>+  float: "Float(42)"</div><div class='add'>+  float_true: "Float(42, exception: true)"</div><div class='add'>+  float_false: "Float(42, exception: false)"</div><div class='add'>+loop_count: 10000</div><div class='head'>diff --git a/benchmark/kernel_tap.yml b/benchmark/kernel_tap.yml<br/>new file mode 100644<br/>index 0000000000..4dcbb31b4d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/kernel_tap.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/kernel_tap.yml</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+prelude: |</div><div class='add'>+  obj = Object.new</div><div class='add'>+  x = nil</div><div class='add'>+benchmark:</div><div class='add'>+  kernel_tap: obj.tap { |o| x = o }</div><div class='add'>+loop_count: 20000000</div><div class='head'>diff --git a/benchmark/kernel_then.yml b/benchmark/kernel_then.yml<br/>new file mode 100644<br/>index 0000000000..85f7341e33<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/kernel_then.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/kernel_then.yml</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+benchmark:</div><div class='add'>+  kernel_then: 1.then { |i| i + 1 }</div><div class='add'>+  kernel_then_enum: 1.then</div><div class='add'>+  kernel_yield_self: 1.yield_self { |i| i + 1 }</div><div class='add'>+  kernel_yield_self_enum: 1.yield_self</div><div class='add'>+loop_count: 20000000</div><div class='head'>diff --git a/benchmark/keyword_arguments.yml b/benchmark/keyword_arguments.yml<br/>new file mode 100644<br/>index 0000000000..fce6bce0b8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/keyword_arguments.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/keyword_arguments.yml</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+prelude: |</div><div class='add'>+  h = {a: 1}</div><div class='add'>+  def kw(a: 1) a end</div><div class='add'>+  def kws(**kw) kw end</div><div class='add'>+benchmark:</div><div class='add'>+  kw_to_kw: "kw(a: 1)"</div><div class='add'>+  kw_splat_to_kw: "kw(**h)"</div><div class='add'>+  kw_to_kw_splat: "kws(a: 1)"</div><div class='add'>+  kw_splat_to_kw_splat: "kws(**h)"</div><div class='add'>+  kw_and_splat_to_kw: "kw(a: 1, **h)"</div><div class='add'>+  kw_splats_to_kw: "kw(**h, **h)"</div><div class='add'>+  kw_and_splat_to_kw_splat: "kws(a: 1, **h)"</div><div class='add'>+  kw_splats_to_kw_splat: "kws(**h, **h)"</div><div class='head'>diff --git a/benchmark/lib/benchmark_driver/runner/mjit.rb b/benchmark/lib/benchmark_driver/runner/mjit.rb<br/>new file mode 100644<br/>index 0000000000..3a58a620de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/lib/benchmark_driver/runner/mjit.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/lib/benchmark_driver/runner/mjit.rb</a></div><div class='hunk'>@@ -0,0 +1,34 @@</div><div class='add'>+require 'benchmark_driver/struct'</div><div class='add'>+require 'benchmark_driver/metric'</div><div class='add'>+require 'erb'</div><div class='add'>+</div><div class='add'>+# A runner to measure after-JIT performance easily</div><div class='add'>+class BenchmarkDriver::Runner::Mjit &lt; BenchmarkDriver::Runner::Ips</div><div class='add'>+  # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"</div><div class='add'>+  Job = Class.new(BenchmarkDriver::DefaultJob)</div><div class='add'>+</div><div class='add'>+  # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`</div><div class='add'>+  JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC]).extend(Module.new{</div><div class='add'>+    def parse(**)</div><div class='add'>+      jobs = super</div><div class='add'>+      jobs.map do |job|</div><div class='add'>+        job = job.dup</div><div class='add'>+        job.prelude = "#{job.prelude}\n#{&lt;&lt;~EOS}"</div><div class='add'>+          if defined?(RubyVM::MJIT) &amp;&amp; RubyVM::MJIT.enabled?</div><div class='add'>+            __bmdv_ruby_i = 0</div><div class='add'>+            while __bmdv_ruby_i &lt; 10000 # MJIT call threshold</div><div class='add'>+              #{job.script}</div><div class='add'>+              __bmdv_ruby_i += 1</div><div class='add'>+            end</div><div class='add'>+            RubyVM::MJIT.pause # compile</div><div class='add'>+            #{job.script}</div><div class='add'>+            RubyVM::MJIT.resume; RubyVM::MJIT.pause # recompile</div><div class='add'>+            #{job.script}</div><div class='add'>+            RubyVM::MJIT.resume; RubyVM::MJIT.pause # recompile 2</div><div class='add'>+          end</div><div class='add'>+        EOS</div><div class='add'>+        job</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  })</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/lib/benchmark_driver/runner/peak.rb b/benchmark/lib/benchmark_driver/runner/peak.rb<br/>index 0ba8af42c5..d04f2e51ff 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/lib/benchmark_driver/runner/peak.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/lib/benchmark_driver/runner/peak.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/lib/benchmark_driver/runner/peak.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/lib/benchmark_driver/runner/peak.rb</a></div><div class='hunk'>@@ -61,7 +61,7 @@ class BenchmarkDriver::Runner::Peak</div><div class='ctx'>       loop_count: job.loop_count,</div><div class='ctx'>     )</div><div class='ctx'> </div><div class='del'>-    memory_status = File.expand_path('../../../../test/lib/memory_status', __dir__)</div><div class='add'>+    memory_status = File.expand_path('../../../../tool/lib/memory_status', __dir__)</div><div class='ctx'>     Tempfile.open(['benchmark_driver-', '.rb']) do |f|</div><div class='ctx'>       with_script(benchmark.render) do |path|</div><div class='ctx'>         output = IO.popen([*context.executable.command, path, f.path, target, memory_status], &amp;:read)</div><div class='head'>diff --git a/benchmark/lib/benchmark_driver/runner/ractor.rb b/benchmark/lib/benchmark_driver/runner/ractor.rb<br/>new file mode 100644<br/>index 0000000000..c730b8e4a5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/lib/benchmark_driver/runner/ractor.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/lib/benchmark_driver/runner/ractor.rb</a></div><div class='hunk'>@@ -0,0 +1,122 @@</div><div class='add'>+require 'erb'</div><div class='add'>+</div><div class='add'>+# A runner to measure performance *inside* Ractor</div><div class='add'>+class BenchmarkDriver::Runner::Ractor &lt; BenchmarkDriver::Runner::Ips</div><div class='add'>+  # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"</div><div class='add'>+  Job = Class.new(BenchmarkDriver::DefaultJob) do</div><div class='add'>+    attr_accessor :ractor</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`</div><div class='add'>+  JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC]).extend(Module.new{</div><div class='add'>+    def parse(ractor: 1, **kwargs)</div><div class='add'>+      super(**kwargs).each do |job|</div><div class='add'>+        job.ractor = ractor</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  })</div><div class='add'>+</div><div class='add'>+  private</div><div class='add'>+</div><div class='add'>+  unless private_instance_methods.include?(:run_benchmark)</div><div class='add'>+    raise "#run_benchmark is no longer defined in BenchmarkDriver::Runner::Ips"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # @param [BenchmarkDriver::Runner::Ips::Job] job - loop_count is not nil</div><div class='add'>+  # @param [BenchmarkDriver::Context] context</div><div class='add'>+  # @return [BenchmarkDriver::Metrics]</div><div class='add'>+  def run_benchmark(job, context:)</div><div class='add'>+    benchmark = BenchmarkScript.new(</div><div class='add'>+      preludes:   [context.prelude, job.prelude],</div><div class='add'>+      script:     job.script,</div><div class='add'>+      teardown:   job.teardown,</div><div class='add'>+      loop_count: job.loop_count,</div><div class='add'>+    )</div><div class='add'>+</div><div class='add'>+    results = job.ractor.times.map do</div><div class='add'>+      Tempfile.open('benchmark_driver_result')</div><div class='add'>+    end</div><div class='add'>+    duration = with_script(benchmark.render(results: results.map(&amp;:path))) do |path|</div><div class='add'>+      success = execute(*context.executable.command, path, exception: false)</div><div class='add'>+      if success &amp;&amp; ((value = results.map { |f| Float(f.read) }.max) &gt; 0)</div><div class='add'>+        value</div><div class='add'>+      else</div><div class='add'>+        BenchmarkDriver::Result::ERROR</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    results.each(&amp;:close)</div><div class='add'>+</div><div class='add'>+    value_duration(</div><div class='add'>+      loop_count: job.loop_count,</div><div class='add'>+      duration: duration,</div><div class='add'>+    )</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # @param [String] prelude</div><div class='add'>+  # @param [String] script</div><div class='add'>+  # @param [String] teardown</div><div class='add'>+  # @param [Integer] loop_count</div><div class='add'>+  BenchmarkScript = ::BenchmarkDriver::Struct.new(:preludes, :script, :teardown, :loop_count) do</div><div class='add'>+    # @param [String] result - A file to write result</div><div class='add'>+    def render(results:)</div><div class='add'>+      prelude = preludes.reject(&amp;:nil?).reject(&amp;:empty?).join("\n")</div><div class='add'>+      ERB.new(&lt;&lt;-RUBY).result_with_hash(results: results)</div><div class='add'>+Warning[:experimental] = false</div><div class='add'>+# shareable-constant-value: experimental_everything</div><div class='add'>+#{prelude}</div><div class='add'>+</div><div class='add'>+if #{loop_count} == 1</div><div class='add'>+  __bmdv_loop_before = 0</div><div class='add'>+  __bmdv_loop_after = 0</div><div class='add'>+else</div><div class='add'>+  __bmdv_loop_before = Time.new</div><div class='add'>+  #{while_loop('', loop_count, id: 0)}</div><div class='add'>+  __bmdv_loop_after = Time.new</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+__bmdv_ractors = []</div><div class='add'>+&lt;% results.size.times do %&gt;</div><div class='add'>+__bmdv_ractors &lt;&lt; Ractor.new(__bmdv_loop_after - __bmdv_loop_before) { |__bmdv_loop_time|</div><div class='add'>+  __bmdv_time = Time</div><div class='add'>+  __bmdv_script_before = __bmdv_time.new</div><div class='add'>+  #{while_loop(script, loop_count, id: 1)}</div><div class='add'>+  __bmdv_script_after = __bmdv_time.new</div><div class='add'>+</div><div class='add'>+  (__bmdv_script_after - __bmdv_script_before) - __bmdv_loop_time</div><div class='add'>+}</div><div class='add'>+&lt;% end %&gt;</div><div class='add'>+</div><div class='add'>+# Wait for all Ractors before executing code to write results</div><div class='add'>+__bmdv_ractors.map!(&amp;:take)</div><div class='add'>+</div><div class='add'>+&lt;% results.each do |result| %&gt;</div><div class='add'>+File.write(&lt;%= result.dump %&gt;, __bmdv_ractors.shift)</div><div class='add'>+&lt;% end %&gt;</div><div class='add'>+</div><div class='add'>+#{teardown}</div><div class='add'>+      RUBY</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    # id is to prevent:</div><div class='add'>+    # can not isolate a Proc because it accesses outer variables (__bmdv_i)</div><div class='add'>+    def while_loop(content, times, id:)</div><div class='add'>+      if !times.is_a?(Integer) || times &lt;= 0</div><div class='add'>+        raise ArgumentError.new("Unexpected times: #{times.inspect}")</div><div class='add'>+      elsif times == 1</div><div class='add'>+        return content</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # TODO: execute in batch</div><div class='add'>+      &lt;&lt;-RUBY</div><div class='add'>+__bmdv_i#{id} = 0</div><div class='add'>+while __bmdv_i#{id} &lt; #{times}</div><div class='add'>+  #{content}</div><div class='add'>+  __bmdv_i#{id} += 1</div><div class='add'>+end</div><div class='add'>+      RUBY</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  private_constant :BenchmarkScript</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/lib/load.rb b/benchmark/lib/load.rb<br/>index 4d73a63323..31b770c484 100755..100644<br/>--- a/<a href='/ruby.git/tree/benchmark/lib/load.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/lib/load.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/lib/load.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/lib/load.rb</a></div><div class='hunk'>@@ -1,2 +1,18 @@</div><div class='add'>+# How to use this file:</div><div class='add'>+#   1. write a `$(srcdir)/test.rb` like:</div><div class='add'>+=begin</div><div class='add'>+require_relative 'benchmark/lib/load'</div><div class='add'>+</div><div class='add'>+Benchmark.driver(repeat_count: 5){|x|</div><div class='add'>+  x.executable name: 'clean-miniruby', command: %w'../clean-trunk/miniruby'</div><div class='add'>+  x.executable name: 'modif-miniruby', command: %w'./miniruby'</div><div class='add'>+</div><div class='add'>+  x.report %q{</div><div class='add'>+    h = {a: 1, b: 2, c: 3, d: 4}</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+=end</div><div class='add'>+#</div><div class='add'>+#  2. `make run`</div><div class='ctx'> $:.unshift(File.join(__dir__, '../benchmark-driver/lib'))</div><div class='ctx'> require 'benchmark_driver'</div><div class='head'>diff --git a/benchmark/marshal_dump_load_integer.yml b/benchmark/marshal_dump_load_integer.yml<br/>new file mode 100644<br/>index 0000000000..78ebf823d2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/marshal_dump_load_integer.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/marshal_dump_load_integer.yml</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+prelude: |</div><div class='add'>+  smallint_array = 1000.times.map { |x| x }</div><div class='add'>+  bigint32_array = 1000.times.map { |x| x + 2**32 }</div><div class='add'>+  bigint64_array = 1000.times.map { |x| x + 2**64 }</div><div class='add'>+</div><div class='add'>+  smallint_dump = Marshal.dump(smallint_array)</div><div class='add'>+  bigint32_dump = Marshal.dump(bigint32_array)</div><div class='add'>+  bigint64_dump = Marshal.dump(bigint64_array)</div><div class='add'>+benchmark:</div><div class='add'>+  marshal_dump_integer_small: |</div><div class='add'>+    Marshal.dump(smallint_array)</div><div class='add'>+  marshal_dump_integer_over_32_bit: |</div><div class='add'>+    Marshal.dump(bigint32_array)</div><div class='add'>+  marshal_dump_integer_over_64_bit: |</div><div class='add'>+    Marshal.dump(bigint64_array)</div><div class='add'>+  marshal_load_integer_small: |</div><div class='add'>+    Marshal.load(smallint_dump)</div><div class='add'>+  marshal_load_integer_over_32_bit: |</div><div class='add'>+    Marshal.load(bigint32_dump)</div><div class='add'>+  marshal_load_integer_over_64_bit: |</div><div class='add'>+    Marshal.load(bigint64_dump)</div><div class='add'>+loop_count: 4000</div><div class='head'>diff --git a/benchmark/masgn.yml b/benchmark/masgn.yml<br/>new file mode 100644<br/>index 0000000000..31cb8ee4a3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/masgn.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/masgn.yml</a></div><div class='hunk'>@@ -0,0 +1,53 @@</div><div class='add'>+prelude: |</div><div class='add'>+  a = [nil] * 3</div><div class='add'>+  b = Class.new{attr_writer :a, :b, :c}.new</div><div class='add'>+  c = d = e = f = g = h = i = nil</div><div class='add'>+benchmark:</div><div class='add'>+  array2_2: "c = (a[0], a[1] = 1, 2)"</div><div class='add'>+  array2_3: "c = (a[0], a[1] = 1, 2, 3)"</div><div class='add'>+  array3_2: "c = (a[0], a[1], a[2] = 1, 2)"</div><div class='add'>+  array3_3: "c = (a[0], a[1], a[2] = 1, 2, 3)"</div><div class='add'>+  attr2_2: "c = (b.a, b.b = 1, 2)"</div><div class='add'>+  attr2_3: "c = (b.a, b.b = 1, 2, 3)"</div><div class='add'>+  attr3_2: "c = (b.a, b.b, b.c = 1, 2)"</div><div class='add'>+  attr3_3: "c = (b.a, b.b, b.c = 1, 2, 3)"</div><div class='add'>+  lvar2_2: "c = (d, e = 1, 2)"</div><div class='add'>+  lvar2_3: "c = (d, e = 1, 2, 3)"</div><div class='add'>+  lvar3_2: "c = (d, e, f = 1, 2)"</div><div class='add'>+  lvar3_3: "c = (d, e, f = 1, 2, 3)"</div><div class='add'>+  array2_2p: "(a[0], a[1] = 1, 2; nil)"</div><div class='add'>+  array2_3p: "(a[0], a[1] = 1, 2, 3; nil)"</div><div class='add'>+  array3_2p: "(a[0], a[1], a[2] = 1, 2; nil)"</div><div class='add'>+  array3_3p: "(a[0], a[1], a[2] = 1, 2, 3; nil)"</div><div class='add'>+  attr2_2p: "(b.a, b.b = 1, 2; nil)"</div><div class='add'>+  attr2_3p: "(b.a, b.b = 1, 2, 3; nil)"</div><div class='add'>+  attr3_2p: "(b.a, b.b, b.c = 1, 2; nil)"</div><div class='add'>+  attr3_3p: "(b.a, b.b, b.c = 1, 2, 3; nil)"</div><div class='add'>+  lvar2_2p: "(d, e = 1, 2; nil)"</div><div class='add'>+  lvar2_3p: "(d, e = 1, 2, 3; nil)"</div><div class='add'>+  lvar3_2p: "(d, e, f = 1, 2; nil)"</div><div class='add'>+  lvar3_3p: "(d, e, f = 1, 2, 3; nil)"</div><div class='add'>+  array2_2lv: "c = (a[0], a[1] = g, h)"</div><div class='add'>+  array2_ilv: "c = (a[0], a[1] = g, h, i)"</div><div class='add'>+  arrayi_2lv: "c = (a[0], a[1], a[2] = g, h)"</div><div class='add'>+  arrayi_ilv: "c = (a[0], a[1], a[2] = g, h, i)"</div><div class='add'>+  attr2_2lv: "c = (b.a, b.b = g, h)"</div><div class='add'>+  attr2_ilv: "c = (b.a, b.b = g, h, i)"</div><div class='add'>+  attri_2lv: "c = (b.a, b.b, b.c = g, h)"</div><div class='add'>+  attri_ilv: "c = (b.a, b.b, b.c = g, h, i)"</div><div class='add'>+  lvar2_2lv: "c = (d, e = g, h)"</div><div class='add'>+  lvar2_ilv: "c = (d, e = g, h, i)"</div><div class='add'>+  lvari_2lv: "c = (d, e, f = g, h)"</div><div class='add'>+  lvari_ilv: "c = (d, e, f = g, h, i)"</div><div class='add'>+  array2_2plv: "(a[0], a[1] = g, h; nil)"</div><div class='add'>+  array2_iplv: "(a[0], a[1] = g, h, i; nil)"</div><div class='add'>+  arrayi_2plv: "(a[0], a[1], a[2] = g, h; nil)"</div><div class='add'>+  arrayi_iplv: "(a[0], a[1], a[2] = g, h, i; nil)"</div><div class='add'>+  attr2_2plv: "(b.a, b.b = g, h; nil)"</div><div class='add'>+  attr2_iplv: "(b.a, b.b = g, h, i; nil)"</div><div class='add'>+  attri_2plv: "(b.a, b.b, b.c = g, h; nil)"</div><div class='add'>+  attri_iplv: "(b.a, b.b, b.c = g, h, i; nil)"</div><div class='add'>+  lvar2_2plv: "(d, e = g, h; nil)"</div><div class='add'>+  lvar2_iplv: "(d, e = g, h, i; nil)"</div><div class='add'>+  lvari_2plv: "(d, e, f = g, h; nil)"</div><div class='add'>+  lvari_iplv: "(d, e, f = g, h, i; nil)"</div><div class='head'>diff --git a/benchmark/match_gt4.rb b/benchmark/match_gt4.rb<br/>new file mode 100644<br/>index 0000000000..ffda109912<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/match_gt4.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/match_gt4.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+1000000.times { /(.)(.)(\d+)(\d)/.match("THX1138.") }</div><div class='head'>diff --git a/benchmark/match_small.rb b/benchmark/match_small.rb<br/>new file mode 100644<br/>index 0000000000..3b743d484a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/match_small.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/match_small.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+1000000.times { 'haystack'.match(/hay/) }</div><div class='head'>diff --git a/benchmark/method_bind_call.yml b/benchmark/method_bind_call.yml<br/>new file mode 100644<br/>index 0000000000..9e0e046ed4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/method_bind_call.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/method_bind_call.yml</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+prelude: |</div><div class='add'>+  named_module = Kernel</div><div class='add'>+</div><div class='add'>+  module FakeName</div><div class='add'>+    def self.name</div><div class='add'>+      "NotMyame".freeze</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  MOD_NAME = Module.instance_method(:name)</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  fastpath: MOD_NAME.bind_call(Kernel)</div><div class='add'>+  slowpath: MOD_NAME.bind_call(FakeName)</div><div class='add'>+</div><div class='add'>+loop_count: 100_000</div><div class='head'>diff --git a/benchmark/mjit_exivar.yml b/benchmark/mjit_exivar.yml<br/>new file mode 100644<br/>index 0000000000..2584fa6410<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/mjit_exivar.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/mjit_exivar.yml</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+type: lib/benchmark_driver/runner/mjit</div><div class='add'>+prelude: |</div><div class='add'>+  class Bench &lt; Hash</div><div class='add'>+    def initialize</div><div class='add'>+      @exivar = nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def exivar</div><div class='add'>+      @exivar</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  bench = Bench.new</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  mjit_exivar: bench.exivar</div><div class='add'>+</div><div class='add'>+loop_count: 200000000</div><div class='head'>diff --git a/benchmark/mjit_integer.yml b/benchmark/mjit_integer.yml<br/>new file mode 100644<br/>index 0000000000..a6b5c9ee16<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/mjit_integer.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/mjit_integer.yml</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+type: lib/benchmark_driver/runner/mjit</div><div class='add'>+prelude: |</div><div class='add'>+  def mjit_abs(int)        int.abs        end</div><div class='add'>+  def mjit_bit_length(int) int.bit_length end</div><div class='add'>+  def mjit_comp(int)       ~int           end</div><div class='add'>+  def mjit_even?(int)      int.even?      end</div><div class='add'>+  def mjit_integer?(int)   int.integer?   end</div><div class='add'>+  def mjit_magnitude(int)  int.magnitude  end</div><div class='add'>+  def mjit_odd?(int)       int.odd?       end</div><div class='add'>+  def mjit_ord(int)        int.ord        end</div><div class='add'>+  def mjit_size(int)       int.size       end</div><div class='add'>+  def mjit_to_i(int)       int.to_i       end</div><div class='add'>+  def mjit_to_int(int)     int.to_int     end</div><div class='add'>+  def mjit_uminus(int)     -int           end</div><div class='add'>+  def mjit_zero?(int)      int.zero?      end</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  - mjit_abs(-1)</div><div class='add'>+  - mjit_bit_length(100)</div><div class='add'>+  - mjit_comp(1)</div><div class='add'>+  - mjit_even?(2)</div><div class='add'>+  - mjit_integer?(0)</div><div class='add'>+  - mjit_magnitude(-1)</div><div class='add'>+  - mjit_odd?(1)</div><div class='add'>+  - mjit_ord(1)</div><div class='add'>+  - mjit_size(1)</div><div class='add'>+  - mjit_to_i(1)</div><div class='add'>+  - mjit_to_int(1)</div><div class='add'>+  - mjit_uminus(1)</div><div class='add'>+  - mjit_zero?(0)</div><div class='add'>+</div><div class='add'>+loop_count: 40000000</div><div class='head'>diff --git a/benchmark/mjit_kernel.yml b/benchmark/mjit_kernel.yml<br/>new file mode 100644<br/>index 0000000000..7720e65c2c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/mjit_kernel.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/mjit_kernel.yml</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+type: lib/benchmark_driver/runner/mjit</div><div class='add'>+prelude: |</div><div class='add'>+  def mjit_class(obj)</div><div class='add'>+    obj.class</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def mjit_frozen?(obj)</div><div class='add'>+    obj.frozen?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  str = ""</div><div class='add'>+  fstr = "".freeze</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  - mjit_class(self)</div><div class='add'>+  - mjit_class(1)</div><div class='add'>+  - mjit_frozen?(str)</div><div class='add'>+  - mjit_frozen?(fstr)</div><div class='add'>+</div><div class='add'>+loop_count: 40000000</div><div class='head'>diff --git a/benchmark/mjit_leave.yml b/benchmark/mjit_leave.yml<br/>new file mode 100644<br/>index 0000000000..9ac68b164b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/mjit_leave.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/mjit_leave.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+type: lib/benchmark_driver/runner/mjit</div><div class='add'>+prelude: |</div><div class='add'>+  def leave</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  mjit_leave: leave</div><div class='add'>+loop_count: 200000000</div><div class='head'>diff --git a/benchmark/mjit_opt_cc_insns.yml b/benchmark/mjit_opt_cc_insns.yml<br/>new file mode 100644<br/>index 0000000000..fed6d34bd5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/mjit_opt_cc_insns.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/mjit_opt_cc_insns.yml</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+# opt_* insns using vm_method_cfunc_is with send-compatible operands:</div><div class='add'>+#   * opt_nil_p</div><div class='add'>+#   * opt_not</div><div class='add'>+#   * opt_eq</div><div class='add'>+type: lib/benchmark_driver/runner/mjit</div><div class='add'>+prelude: |</div><div class='add'>+  def mjit_nil?(obj)</div><div class='add'>+    obj.nil?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def mjit_not(obj)</div><div class='add'>+    !obj</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def mjit_eq(a, b)</div><div class='add'>+    a == b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  - script: mjit_nil?(1)</div><div class='add'>+    loop_count: 40000000</div><div class='add'>+  - script: mjit_not(1)</div><div class='add'>+    loop_count: 40000000</div><div class='add'>+  - script: mjit_eq(1, nil)</div><div class='add'>+    loop_count: 8000000</div><div class='add'>+  - script: mjit_eq(nil, 1)</div><div class='add'>+    loop_count: 8000000</div><div class='head'>diff --git a/benchmark/mjit_struct_aref.yml b/benchmark/mjit_struct_aref.yml<br/>new file mode 100644<br/>index 0000000000..bfba1323f2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/mjit_struct_aref.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/mjit_struct_aref.yml</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+type: lib/benchmark_driver/runner/mjit</div><div class='add'>+prelude: |</div><div class='add'>+  def mjit_struct_aref(struct)</div><div class='add'>+    struct.aa</div><div class='add'>+  end</div><div class='add'>+  struct = Struct.new(:a0, :a1, :a2, :a3, :a4, :a5, :a6, :a7, :a8, :a9, :aa).new</div><div class='add'>+</div><div class='add'>+benchmark: mjit_struct_aref(struct)</div><div class='add'>+</div><div class='add'>+loop_count: 40000000</div><div class='head'>diff --git a/benchmark/module_eqq.yml b/benchmark/module_eqq.yml<br/>new file mode 100644<br/>index 0000000000..a561fb86dc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/module_eqq.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/module_eqq.yml</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class SimpleClass; end</div><div class='add'>+  class MediumClass</div><div class='add'>+    10.times { include Module.new }</div><div class='add'>+  end</div><div class='add'>+  class LargeClass</div><div class='add'>+    100.times { include Module.new }</div><div class='add'>+  end</div><div class='add'>+  class HugeClass</div><div class='add'>+    300.times { include Module.new }</div><div class='add'>+  end</div><div class='add'>+  SimpleObj = SimpleClass.new</div><div class='add'>+  MediumObj = MediumClass.new</div><div class='add'>+  LargeObj = LargeClass.new</div><div class='add'>+  HugeObj = HugeClass.new</div><div class='add'>+benchmark:</div><div class='add'>+  simple_class_eqq_simple_obj: |</div><div class='add'>+    SimpleClass === SimpleObj</div><div class='add'>+  medium_class_eqq_simple_obj: |</div><div class='add'>+    MediumClass === SimpleObj</div><div class='add'>+  simple_class_eqq_medium_obj: |</div><div class='add'>+    SimpleClass === MediumObj</div><div class='add'>+  simple_class_eqq_large_obj: |</div><div class='add'>+    SimpleClass === LargeObj</div><div class='add'>+  simple_class_eqq_huge_obj: |</div><div class='add'>+    SimpleClass === HugeObj</div><div class='add'>+loop_count: 20000000</div><div class='head'>diff --git a/benchmark/nil_p.yml b/benchmark/nil_p.yml<br/>new file mode 100644<br/>index 0000000000..79ba4f2177<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/nil_p.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/nil_p.yml</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class Niller; def nil?; true; end; end</div><div class='add'>+  xnil, notnil = nil, Object.new</div><div class='add'>+  niller = Niller.new</div><div class='add'>+benchmark:</div><div class='add'>+  - xnil.nil?</div><div class='add'>+  - notnil.nil?</div><div class='add'>+  - niller.nil?</div><div class='add'>+loop_count: 10000000</div><div class='head'>diff --git a/benchmark/nilclass.yml b/benchmark/nilclass.yml<br/>new file mode 100644<br/>index 0000000000..fba67a5f6a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/nilclass.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/nilclass.yml</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+benchmark:</div><div class='add'>+  to_i: |</div><div class='add'>+    nil.to_i</div><div class='add'>+  to_f: |</div><div class='add'>+    nil.to_f</div><div class='add'>+loop_count: 100000</div><div class='head'>diff --git a/benchmark/num_zero_p.yml b/benchmark/num_zero_p.yml<br/>new file mode 100644<br/>index 0000000000..2195963433<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/num_zero_p.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/num_zero_p.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+benchmark:</div><div class='add'>+  - 0.zero?</div><div class='add'>+  - 1.zero?</div><div class='add'>+  - 0r.zero?</div><div class='add'>+  - 1r.zero?</div><div class='add'>+  - 0i.zero?</div><div class='add'>+  - 1i.zero?</div><div class='add'>+loop_count: 50000000</div><div class='head'>diff --git a/benchmark/numeric_methods.yml b/benchmark/numeric_methods.yml<br/>new file mode 100644<br/>index 0000000000..1384902935<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/numeric_methods.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/numeric_methods.yml</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+prelude: |</div><div class='add'>+  int = 42</div><div class='add'>+  flo = 4.2</div><div class='add'>+benchmark:</div><div class='add'>+  real?: |</div><div class='add'>+    int.real?</div><div class='add'>+  integer?: |</div><div class='add'>+    flo.integer?</div><div class='add'>+  finite?: |</div><div class='add'>+    int.finite?</div><div class='add'>+  infinite?: |</div><div class='add'>+    int.infinite?</div><div class='add'>+  integer_real: |</div><div class='add'>+    int.real</div><div class='add'>+  float_real: |</div><div class='add'>+    flo.real</div><div class='add'>+  integr_imag: |</div><div class='add'>+    int.imag</div><div class='add'>+  float_imag: |</div><div class='add'>+    flo.imag</div><div class='add'>+  integer_conj: |</div><div class='add'>+    int.conj</div><div class='add'>+  float_conj: |</div><div class='add'>+    flo.conj</div><div class='add'>+  integer_numerator: |</div><div class='add'>+    int.numerator</div><div class='add'>+  integer_denominator: |</div><div class='add'>+    int.denominator</div><div class='add'>+loop_count: 20000000</div><div class='head'>diff --git a/benchmark/object_allocate.yml b/benchmark/object_allocate.yml<br/>new file mode 100644<br/>index 0000000000..93ff463e41<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/object_allocate.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/object_allocate.yml</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class Eight</div><div class='add'>+    8.times { include(Module.new) }</div><div class='add'>+  end</div><div class='add'>+  class ThirtyTwo</div><div class='add'>+    32.times { include(Module.new) }</div><div class='add'>+  end</div><div class='add'>+  class SixtyFour</div><div class='add'>+    64.times { include(Module.new) }</div><div class='add'>+  end</div><div class='add'>+  class OneTwentyEight</div><div class='add'>+    128.times { include(Module.new) }</div><div class='add'>+  end</div><div class='add'>+  # Disable GC to see raw throughput:</div><div class='add'>+  GC.disable</div><div class='add'>+benchmark:</div><div class='add'>+  allocate_8_deep: Eight.new</div><div class='add'>+  allocate_32_deep: ThirtyTwo.new</div><div class='add'>+  allocate_64_deep: SixtyFour.new</div><div class='add'>+  allocate_128_deep: OneTwentyEight.new</div><div class='add'>+loop_count: 100000</div><div class='head'>diff --git a/benchmark/objspace_dump_all.yml b/benchmark/objspace_dump_all.yml<br/>new file mode 100644<br/>index 0000000000..ebab562d2e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/objspace_dump_all.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/objspace_dump_all.yml</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+prelude: |</div><div class='add'>+  require 'objspace'</div><div class='add'>+  require 'tempfile'</div><div class='add'>+  $objs = 1_000.times.map { Object.new }</div><div class='add'>+  $strings = 1_000.times.map { |i| "string #{i}" }</div><div class='add'>+  $file = Tempfile.new('heap')</div><div class='add'>+  $dev_null = File.open(File::NULL, 'w+')</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  dump_all_string: "ObjectSpace.dump_all(output: :string)"</div><div class='add'>+  dump_all_file: "ObjectSpace.dump_all(output: $file)"</div><div class='add'>+  dump_all_dev_null: "ObjectSpace.dump_all(output: $dev_null)"</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/other-lang/fact.py b/benchmark/other-lang/fact.py<br/>index 01593965d9..1ce9f76275 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/other-lang/fact.py?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/other-lang/fact.py</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/fact.py?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/other-lang/fact.py</a></div><div class='hunk'>@@ -3,7 +3,7 @@</div><div class='ctx'> </div><div class='ctx'> def factL(n):</div><div class='ctx'> 	r = 1</div><div class='del'>-	for x in range(2, n):</div><div class='add'>+	for x in range(2, n+1):</div><div class='ctx'> 		r *= x</div><div class='ctx'> 	return r</div><div class='ctx'> </div><div class='head'>diff --git a/benchmark/pm_array.yml b/benchmark/pm_array.yml<br/>new file mode 100644<br/>index 0000000000..babb65a289<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/pm_array.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/pm_array.yml</a></div><div class='hunk'>@@ -0,0 +1,19 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def call(*val)</div><div class='add'>+    case val</div><div class='add'>+      in [String =&gt; body]</div><div class='add'>+        [200, {}, [body]]</div><div class='add'>+      in [Integer =&gt; status]</div><div class='add'>+        [status, {}, [""]]</div><div class='add'>+      in [Integer, String] =&gt; response</div><div class='add'>+        [response[0], {}, [response[1]]]</div><div class='add'>+      in [Integer, Hash, String] =&gt; response</div><div class='add'>+        [response[0], response[1], [response[2]]]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  first_match: call("ok")</div><div class='add'>+  second_match: call(401)</div><div class='add'>+  third_match: call(200, "ok")</div><div class='add'>+  fourth_match: call(201, {}, "created")</div><div class='head'>diff --git a/benchmark/ractor_const.yml b/benchmark/ractor_const.yml<br/>new file mode 100644<br/>index 0000000000..d7ab74bdca<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/ractor_const.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/ractor_const.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+type: lib/benchmark_driver/runner/ractor</div><div class='add'>+benchmark:</div><div class='add'>+  ractor_const: Object</div><div class='add'>+ractor: 1</div><div class='head'>diff --git a/benchmark/ractor_float_to_s.yml b/benchmark/ractor_float_to_s.yml<br/>new file mode 100644<br/>index 0000000000..8f492be668<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/ractor_float_to_s.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/ractor_float_to_s.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+type: lib/benchmark_driver/runner/ractor</div><div class='add'>+prelude: |</div><div class='add'>+  FLOATS = [*0.0.step(1.0, 0.001)]</div><div class='add'>+benchmark:</div><div class='add'>+  ractor_float_to_s: |</div><div class='add'>+    FLOATS.each {|f| f.to_s}</div><div class='add'>+loop_count: 100</div><div class='add'>+ractor: 2</div><div class='head'>diff --git a/benchmark/range_last.yml b/benchmark/range_last.yml<br/>new file mode 100644<br/>index 0000000000..a6674f82ee<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/range_last.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/range_last.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+benchmark:</div><div class='add'>+  - (1..1_000_000).last(100)</div><div class='add'>+  - (1..1_000_000).last(1000)</div><div class='add'>+  - (1..1_000_000).last(10000)</div><div class='head'>diff --git a/benchmark/range_min.yml b/benchmark/range_min.yml<br/>new file mode 100644<br/>index 0000000000..9e60dd7308<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/range_min.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/range_min.yml</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+benchmark:</div><div class='add'>+  - (1..10).min</div><div class='head'>diff --git a/benchmark/realpath.yml b/benchmark/realpath.yml<br/>new file mode 100644<br/>index 0000000000..90a029d5b9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/realpath.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/realpath.yml</a></div><div class='hunk'>@@ -0,0 +1,30 @@</div><div class='add'>+prelude: |</div><div class='add'>+  f = File</div><div class='add'>+  pwd = Dir.pwd</div><div class='add'>+  Dir.mkdir('b') unless f.directory?('b')</div><div class='add'>+  f.write('b/a', '') unless f.file?('b/a')</div><div class='add'>+</div><div class='add'>+  relative = 'b/a'</div><div class='add'>+  absolute = File.join(pwd, relative)</div><div class='add'>+  dir = 'b'</div><div class='add'>+  file = 'a'</div><div class='add'>+</div><div class='add'>+  relative_dir = 'b/c'</div><div class='add'>+  absolute_dir = File.join(pwd, relative_dir)</div><div class='add'>+  file_dir = 'c'</div><div class='add'>+benchmark:</div><div class='add'>+  relative_nil: "f.realpath(relative, nil)"</div><div class='add'>+  absolute_nil: "f.realpath(absolute, nil)"</div><div class='add'>+  relative_relative: "f.realpath(file, dir)"</div><div class='add'>+  absolute_relative: "f.realpath(absolute, dir)"</div><div class='add'>+  relative_absolute: "f.realpath(relative, pwd)"</div><div class='add'>+  relative_nil_dir: "f.realdirpath(relative_dir, nil)"</div><div class='add'>+  absolute_nil_dir: "f.realdirpath(absolute_dir, nil)"</div><div class='add'>+  relative_relative_dir: "f.realdirpath(file_dir, dir)"</div><div class='add'>+  absolute_relative_dir: "f.realdirpath(absolute_dir, dir)"</div><div class='add'>+  relative_absolute_dir: "f.realdirpath(relative_dir, pwd)"</div><div class='add'>+  relative_nil_notexist: "f.realpath(relative_dir, nil) rescue nil"</div><div class='add'>+  absolute_nil_notexist: "f.realpath(absolute_dir, nil) rescue nil"</div><div class='add'>+  relative_relative_notexist: "f.realpath(file_dir, dir) rescue nil"</div><div class='add'>+  absolute_relative_notexist: "f.realpath(absolute_dir, dir) rescue nil"</div><div class='add'>+  relative_absolute_notexist: "f.realpath(relative_dir, pwd) rescue nil"</div><div class='head'>diff --git a/benchmark/require.yml b/benchmark/require.yml<br/>index 711d8e11e9..09f218cf08 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/require.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/require.yml</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/require.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/require.yml</a></div><div class='hunk'>@@ -15,11 +15,7 @@ prelude: |</div><div class='ctx'>     FileUtils.mkdir_p(data_dir)</div><div class='ctx'> </div><div class='ctx'>     1.upto(num_files) do |i|</div><div class='del'>-      f = File.open("#{data_dir}/c#{i}.rb", "w")</div><div class='del'>-      f.puts &lt;&lt;-END</div><div class='del'>-        class C#{i}</div><div class='del'>-        end</div><div class='del'>-      END</div><div class='add'>+      File.write("#{data_dir}/c#{i}.rb", "class C#{i}\n""end\n")</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='head'>diff --git a/benchmark/require_thread.yml b/benchmark/require_thread.yml<br/>index 87e0ba888b..0c63257106 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/require_thread.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/require_thread.yml</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/require_thread.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/require_thread.yml</a></div><div class='hunk'>@@ -15,11 +15,7 @@ prelude: |</div><div class='ctx'>     FileUtils.mkdir_p(data_dir)</div><div class='ctx'> </div><div class='ctx'>     1.upto(num_files) do |i|</div><div class='del'>-      f = File.open("#{data_dir}/c#{i}.rb", "w")</div><div class='del'>-      f.puts &lt;&lt;-END</div><div class='del'>-        class C#{i}</div><div class='del'>-        end</div><div class='del'>-      END</div><div class='add'>+      File.write("#{data_dir}/c#{i}.rb", "class C#{i}\n""end\n")</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='head'>diff --git a/benchmark/so_ackermann.rb b/benchmark/so_ackermann.rb<br/>index 7db5be9050..4effa1ecaf 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/so_ackermann.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_ackermann.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/so_ackermann.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/so_ackermann.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> #!/usr/bin/ruby</div><div class='del'>-# -*- mode: ruby -*-</div><div class='add'>+# -*- Ruby -*-</div><div class='ctx'> # $Id: ackermann-ruby.code,v 1.4 2004/11/13 07:40:41 bfulgham Exp $</div><div class='ctx'> # http://www.bagley.org/~doug/shootout/</div><div class='ctx'> </div><div class='head'>diff --git a/benchmark/so_array.rb b/benchmark/so_array.rb<br/>index 2b8fce8f99..767e03db5f 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/so_array.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_array.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/so_array.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/so_array.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> #!/usr/bin/ruby</div><div class='del'>-# -*- mode: ruby -*-</div><div class='add'>+# -*- Ruby -*-</div><div class='ctx'> # $Id: ary-ruby.code,v 1.4 2004/11/13 07:41:27 bfulgham Exp $</div><div class='ctx'> # http://www.bagley.org/~doug/shootout/</div><div class='ctx'> # with help from Paul Brannan and Mark Hubbart</div><div class='head'>diff --git a/benchmark/so_concatenate.rb b/benchmark/so_concatenate.rb<br/>index 873214de7c..4468e20ac8 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/so_concatenate.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_concatenate.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/so_concatenate.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/so_concatenate.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> #!/usr/bin/ruby</div><div class='del'>-# -*- mode: ruby -*-</div><div class='add'>+# -*- Ruby -*-</div><div class='ctx'> # $Id: strcat-ruby.code,v 1.4 2004/11/13 07:43:28 bfulgham Exp $</div><div class='ctx'> # http://www.bagley.org/~doug/shootout/</div><div class='ctx'> # based on code from Aristarkh A Zagorodnikov and Dat Nguyen</div><div class='head'>diff --git a/benchmark/so_count_words.yml b/benchmark/so_count_words.yml<br/>index d0a6c8dd3e..99683505f9 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/so_count_words.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_count_words.yml</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/so_count_words.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/so_count_words.yml</a></div><div class='hunk'>@@ -1,6 +1,5 @@</div><div class='ctx'> prelude: |</div><div class='ctx'>   #!/usr/bin/ruby</div><div class='del'>-  # -*- mode: ruby -*-</div><div class='ctx'> </div><div class='ctx'>   wc_input_base = &lt;&lt;EOS</div><div class='ctx'>   Subject:      Re: Who was Izchak Miller?</div><div class='head'>diff --git a/benchmark/so_exception.rb b/benchmark/so_exception.rb<br/>index deb003a594..eb205b4df1 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/so_exception.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_exception.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/so_exception.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/so_exception.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> #!/usr/bin/ruby</div><div class='del'>-# -*- mode: ruby -*-</div><div class='add'>+# -*- Ruby -*-</div><div class='ctx'> # $Id: except-ruby.code,v 1.4 2004/11/13 07:41:33 bfulgham Exp $</div><div class='ctx'> # http://www.bagley.org/~doug/shootout/</div><div class='ctx'> </div><div class='head'>diff --git a/benchmark/so_matrix.rb b/benchmark/so_matrix.rb<br/>index e2c5c8e559..2d1e72bda9 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/so_matrix.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_matrix.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/so_matrix.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/so_matrix.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> #!/usr/bin/ruby</div><div class='del'>-# -*- mode: ruby -*-</div><div class='add'>+# -*- Ruby -*-</div><div class='ctx'> # $Id: matrix-ruby.code,v 1.4 2004/11/13 07:42:14 bfulgham Exp $</div><div class='ctx'> # http://www.bagley.org/~doug/shootout/</div><div class='ctx'> </div><div class='head'>diff --git a/benchmark/so_nbody.rb b/benchmark/so_nbody.rb<br/>index d6c5bb9e61..9884fc4edc 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/so_nbody.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_nbody.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/so_nbody.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/so_nbody.rb</a></div><div class='hunk'>@@ -12,38 +12,38 @@ def _puts *args</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> class Planet</div><div class='del'>- attr_accessor :x, :y, :z, :vx, :vy, :vz, :mass</div><div class='add'>+  attr_accessor :x, :y, :z, :vx, :vy, :vz, :mass</div><div class='ctx'> </div><div class='del'>- def initialize(x, y, z, vx, vy, vz, mass)</div><div class='del'>-  @x, @y, @z = x, y, z</div><div class='del'>-  @vx, @vy, @vz = vx * DAYS_PER_YEAR, vy * DAYS_PER_YEAR, vz * DAYS_PER_YEAR</div><div class='del'>-  @mass = mass * SOLAR_MASS</div><div class='del'>- end</div><div class='del'>-</div><div class='del'>- def move_from_i(bodies, nbodies, dt, i)</div><div class='del'>-  while i &lt; nbodies</div><div class='del'>-   b2 = bodies[i]</div><div class='del'>-   dx = @x - b2.x</div><div class='del'>-   dy = @y - b2.y</div><div class='del'>-   dz = @z - b2.z</div><div class='del'>-</div><div class='del'>-   distance = Math.sqrt(dx * dx + dy * dy + dz * dz)</div><div class='del'>-   mag = dt / (distance * distance * distance)</div><div class='del'>-   b_mass_mag, b2_mass_mag = @mass * mag, b2.mass * mag</div><div class='del'>-</div><div class='del'>-   @vx -= dx * b2_mass_mag</div><div class='del'>-   @vy -= dy * b2_mass_mag</div><div class='del'>-   @vz -= dz * b2_mass_mag</div><div class='del'>-   b2.vx += dx * b_mass_mag</div><div class='del'>-   b2.vy += dy * b_mass_mag</div><div class='del'>-   b2.vz += dz * b_mass_mag</div><div class='del'>-   i += 1</div><div class='add'>+  def initialize(x, y, z, vx, vy, vz, mass)</div><div class='add'>+    @x, @y, @z = x, y, z</div><div class='add'>+    @vx, @vy, @vz = vx * DAYS_PER_YEAR, vy * DAYS_PER_YEAR, vz * DAYS_PER_YEAR</div><div class='add'>+    @mass = mass * SOLAR_MASS</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  @x += dt * @vx</div><div class='del'>-  @y += dt * @vy</div><div class='del'>-  @z += dt * @vz</div><div class='del'>- end</div><div class='add'>+  def move_from_i(bodies, nbodies, dt, i)</div><div class='add'>+    while i &lt; nbodies</div><div class='add'>+      b2 = bodies[i]</div><div class='add'>+      dx = @x - b2.x</div><div class='add'>+      dy = @y - b2.y</div><div class='add'>+      dz = @z - b2.z</div><div class='add'>+</div><div class='add'>+      distance = Math.sqrt(dx * dx + dy * dy + dz * dz)</div><div class='add'>+      mag = dt / (distance * distance * distance)</div><div class='add'>+      b_mass_mag, b2_mass_mag = @mass * mag, b2.mass * mag</div><div class='add'>+</div><div class='add'>+      @vx -= dx * b2_mass_mag</div><div class='add'>+      @vy -= dy * b2_mass_mag</div><div class='add'>+      @vz -= dz * b2_mass_mag</div><div class='add'>+      b2.vx += dx * b_mass_mag</div><div class='add'>+      b2.vy += dy * b_mass_mag</div><div class='add'>+      b2.vz += dz * b_mass_mag</div><div class='add'>+      i += 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    @x += dt * @vx</div><div class='add'>+    @y += dt * @vy</div><div class='add'>+    @z += dt * @vz</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> def energy(bodies)</div><div class='head'>diff --git a/benchmark/so_nested_loop.rb b/benchmark/so_nested_loop.rb<br/>index a0513f8c47..766fcf7b84 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/so_nested_loop.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_nested_loop.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/so_nested_loop.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/so_nested_loop.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> #!/usr/bin/ruby</div><div class='del'>-# -*- mode: ruby -*-</div><div class='add'>+# -*- Ruby -*-</div><div class='ctx'> # $Id: nestedloop-ruby.code,v 1.4 2004/11/13 07:42:22 bfulgham Exp $</div><div class='ctx'> # http://www.bagley.org/~doug/shootout/</div><div class='ctx'> # from Avi Bryant</div><div class='head'>diff --git a/benchmark/so_object.rb b/benchmark/so_object.rb<br/>index e8607c7199..131f44624c 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/so_object.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/so_object.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/so_object.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/so_object.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> #!/usr/bin/ruby</div><div class='del'>-# -*- mode: ruby -*-</div><div class='add'>+# -*- Ruby -*-</div><div class='ctx'> # $Id: objinst-ruby.code,v 1.4 2004/11/13 07:42:25 bfulgham Exp $</div><div class='ctx'> # http://www.bagley.org/~doug/shootout/</div><div class='ctx'> # with help from Aristarkh Zagorodnikov</div><div class='head'>diff --git a/benchmark/string_capitalize.yml b/benchmark/string_capitalize.yml<br/>new file mode 100644<br/>index 0000000000..7d23fd3d35<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/string_capitalize.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/string_capitalize.yml</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+prelude: |</div><div class='add'>+  str1 = [*"a".."m",*"N".."Z",*"0".."9"].join("")</div><div class='add'>+  str10 = str1 * 10</div><div class='add'>+  str100 = str10 * 10</div><div class='add'>+  str1000 = str100 * 10</div><div class='add'>+benchmark:</div><div class='add'>+  capitalize-1: str1.capitalize</div><div class='add'>+  capitalize-10: str10.capitalize</div><div class='add'>+  capitalize-100: str100.capitalize</div><div class='add'>+  capitalize-1000: str1000.capitalize</div><div class='head'>diff --git a/benchmark/string_casecmp.yml b/benchmark/string_casecmp.yml<br/>new file mode 100644<br/>index 0000000000..2354040a04<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/string_casecmp.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/string_casecmp.yml</a></div><div class='hunk'>@@ -0,0 +1,26 @@</div><div class='add'>+prelude: |</div><div class='add'>+  lstr1 = [*"a".."z",*"0".."9"].join("")</div><div class='add'>+  lstr10 = lstr1 * 10</div><div class='add'>+  lstr100 = lstr10 * 10</div><div class='add'>+  lstr1000 = lstr100 * 10</div><div class='add'>+  lnonascii1 = [*"\u{e0}".."\u{ff}"].join("")</div><div class='add'>+  lnonascii10 = lnonascii1 * 10</div><div class='add'>+  lnonascii100 = lnonascii10 * 10</div><div class='add'>+  lnonascii1000 = lnonascii100 * 10</div><div class='add'>+  ustr1 = [*"A".."Z",*"0".."9"].join("")</div><div class='add'>+  ustr10 = ustr1 * 10</div><div class='add'>+  ustr100 = ustr10 * 10</div><div class='add'>+  ustr1000 = ustr100 * 10</div><div class='add'>+  unonascii1 = [*"\u{c0}".."\u{df}"].join("")</div><div class='add'>+  unonascii10 = unonascii1 * 10</div><div class='add'>+  unonascii100 = unonascii10 * 10</div><div class='add'>+  unonascii1000 = unonascii100 * 10</div><div class='add'>+benchmark:</div><div class='add'>+  casecmp-1: lstr1.casecmp(ustr1)</div><div class='add'>+  casecmp-10: lstr10.casecmp(ustr10)</div><div class='add'>+  casecmp-100: lstr100.casecmp(ustr100)</div><div class='add'>+  casecmp-1000: lstr1000.casecmp(ustr1000)</div><div class='add'>+  casecmp-nonascii1: lnonascii1.casecmp(unonascii1)</div><div class='add'>+  casecmp-nonascii10: lnonascii10.casecmp(unonascii10)</div><div class='add'>+  casecmp-nonascii100: lnonascii100.casecmp(unonascii100)</div><div class='add'>+  casecmp-nonascii1000: lnonascii1000.casecmp(unonascii1000)</div><div class='head'>diff --git a/benchmark/string_casecmp_p.yml b/benchmark/string_casecmp_p.yml<br/>new file mode 100644<br/>index 0000000000..a790ce7d55<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/string_casecmp_p.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/string_casecmp_p.yml</a></div><div class='hunk'>@@ -0,0 +1,26 @@</div><div class='add'>+prelude: |</div><div class='add'>+  lstr1 = [*"a".."z",*"0".."9"].join("")</div><div class='add'>+  lstr10 = lstr1 * 10</div><div class='add'>+  lstr100 = lstr10 * 10</div><div class='add'>+  lstr1000 = lstr100 * 10</div><div class='add'>+  lnonascii1 = [*"\u{e0}".."\u{ff}"].join("")</div><div class='add'>+  lnonascii10 = lnonascii1 * 10</div><div class='add'>+  lnonascii100 = lnonascii10 * 10</div><div class='add'>+  lnonascii1000 = lnonascii100 * 10</div><div class='add'>+  ustr1 = [*"A".."Z",*"0".."9"].join("")</div><div class='add'>+  ustr10 = ustr1 * 10</div><div class='add'>+  ustr100 = ustr10 * 10</div><div class='add'>+  ustr1000 = ustr100 * 10</div><div class='add'>+  unonascii1 = [*"\u{c0}".."\u{df}"].join("")</div><div class='add'>+  unonascii10 = unonascii1 * 10</div><div class='add'>+  unonascii100 = unonascii10 * 10</div><div class='add'>+  unonascii1000 = unonascii100 * 10</div><div class='add'>+benchmark:</div><div class='add'>+  casecmp_p-1: lstr1.casecmp?(ustr1)</div><div class='add'>+  casecmp_p-10: lstr10.casecmp?(ustr10)</div><div class='add'>+  casecmp_p-100: lstr100.casecmp?(ustr100)</div><div class='add'>+  casecmp_p-1000: lstr1000.casecmp?(ustr1000)</div><div class='add'>+  casecmp_p-nonascii1: lnonascii1.casecmp?(unonascii1)</div><div class='add'>+  casecmp_p-nonascii10: lnonascii10.casecmp?(unonascii10)</div><div class='add'>+  casecmp_p-nonascii100: lnonascii100.casecmp?(unonascii100)</div><div class='add'>+  casecmp_p-nonascii1000: lnonascii1000.casecmp?(unonascii1000)</div><div class='head'>diff --git a/benchmark/string_concat.yml b/benchmark/string_concat.yml<br/>new file mode 100644<br/>index 0000000000..e65c00cca9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/string_concat.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/string_concat.yml</a></div><div class='hunk'>@@ -0,0 +1,45 @@</div><div class='add'>+prelude: |</div><div class='add'>+  CHUNK = "a" * 64</div><div class='add'>+  UCHUNK = "Ã©" * 32</div><div class='add'>+  GC.disable # GC causes a lot of variance</div><div class='add'>+benchmark:</div><div class='add'>+  binary_concat_7bit: |</div><div class='add'>+    buffer = String.new(capacity: 4096, encoding: Encoding::BINARY)</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+  utf8_concat_7bit: |</div><div class='add'>+    buffer = String.new(capacity: 4096, encoding: Encoding::UTF_8)</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+    buffer &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK &lt;&lt; CHUNK</div><div class='add'>+  utf8_concat_UTF8: |</div><div class='add'>+    buffer = String.new(capacity: 4096, encoding: Encoding::UTF_8)</div><div class='add'>+    buffer &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK</div><div class='add'>+    buffer &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK</div><div class='add'>+    buffer &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK</div><div class='add'>+    buffer &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK</div><div class='add'>+    buffer &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK</div><div class='add'>+    buffer &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK</div><div class='add'>+    buffer &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK</div><div class='add'>+    buffer &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK &lt;&lt; UCHUNK</div><div class='add'>+  interpolation: |</div><div class='add'>+    buffer = "#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}" \</div><div class='add'>+      "#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}" \</div><div class='add'>+      "#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}" \</div><div class='add'>+      "#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}" \</div><div class='add'>+      "#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}" \</div><div class='add'>+      "#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}" \</div><div class='add'>+      "#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}" \</div><div class='add'>+      "#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}" \</div><div class='add'>+      "#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}#{CHUNK}"</div><div class='head'>diff --git a/benchmark/string_downcase.yml b/benchmark/string_downcase.yml<br/>new file mode 100644<br/>index 0000000000..1fea6afbec<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/string_downcase.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/string_downcase.yml</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+prelude: |</div><div class='add'>+  str1 = [*"A".."Z",*"0".."9"].join("")</div><div class='add'>+  str10 = str1 * 10</div><div class='add'>+  str100 = str10 * 10</div><div class='add'>+  str1000 = str100 * 10</div><div class='add'>+  nonascii1 = [*"\u{c0}".."\u{df}"].join("")</div><div class='add'>+  nonascii10 = nonascii1 * 10</div><div class='add'>+  nonascii100 = nonascii10 * 10</div><div class='add'>+  nonascii1000 = nonascii100 * 10</div><div class='add'>+benchmark:</div><div class='add'>+  downcase-1: str1.upcase</div><div class='add'>+  downcase-10: str10.upcase</div><div class='add'>+  downcase-100: str100.upcase</div><div class='add'>+  downcase-1000: str1000.upcase</div><div class='add'>+  downcase-nonascii1: nonascii1.downcase</div><div class='add'>+  downcase-nonascii10: nonascii10.downcase</div><div class='add'>+  downcase-nonascii100: nonascii100.downcase</div><div class='add'>+  downcase-nonascii1000: nonascii1000.downcase</div><div class='head'>diff --git a/benchmark/string_slice.yml b/benchmark/string_slice.yml<br/>new file mode 100644<br/>index 0000000000..fc2393c5d1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/string_slice.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/string_slice.yml</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+prelude: |</div><div class='add'>+  long_string = "x"*1000+"-hÃ¥r"</div><div class='add'>+benchmark:</div><div class='add'>+  regexp-short: |</div><div class='add'>+    "x-hÃ¥r".slice!(/-(.)(.)(.)/, 3)</div><div class='add'>+  regexp-long: |</div><div class='add'>+    long_string.dup.slice!(/-(.)(.)(.)/, 3)</div><div class='add'>+  string-short: |</div><div class='add'>+    "x-hÃ¥r".slice!("r")</div><div class='add'>+  string-long: |</div><div class='add'>+    long_string.dup.slice!("r")</div><div class='head'>diff --git a/benchmark/string_split.yml b/benchmark/string_split.yml<br/>new file mode 100644<br/>index 0000000000..cc2c7d7855<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/string_split.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/string_split.yml</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+prelude: |</div><div class='add'>+  str1 = [*0..5].join(" ") + " "</div><div class='add'>+  str10 = str1 * 10</div><div class='add'>+  str100 = str10 * 10</div><div class='add'>+  str1000 = str100 * 10</div><div class='add'>+benchmark:</div><div class='add'>+  to_chars-1: str1.split('')</div><div class='add'>+  to_chars-10: str10.split('')</div><div class='add'>+  to_chars-100: str100.split('')</div><div class='add'>+  to_chars-1000: str1000.split('')</div><div class='add'>+  to_words-1: str1.split(' ')</div><div class='add'>+  to_words-10: str10.split(' ')</div><div class='add'>+  to_words-100: str100.split(' ')</div><div class='add'>+  to_words-1000: str1000.split(' ')</div><div class='add'>+  re_chars-1: str1.split(//)</div><div class='add'>+  re_chars-10: str10.split(//)</div><div class='add'>+  re_chars-100: str100.split(//)</div><div class='add'>+  re_chars-1000: str1000.split(//)</div><div class='add'>+  re_space-1: str1.split(/ /)</div><div class='add'>+  re_space-10: str10.split(/ /)</div><div class='add'>+  re_space-100: str100.split(/ /)</div><div class='add'>+  re_space-1000: str1000.split(/ /)</div><div class='head'>diff --git a/benchmark/string_swapcase.yml b/benchmark/string_swapcase.yml<br/>new file mode 100644<br/>index 0000000000..eeb5928907<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/string_swapcase.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/string_swapcase.yml</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+prelude: |</div><div class='add'>+  str1 = [*"A".."M",*"n".."z",*"0".."9"].join("")</div><div class='add'>+  str10 = str1 * 10</div><div class='add'>+  str100 = str10 * 10</div><div class='add'>+  str1000 = str100 * 10</div><div class='add'>+  nonascii1 = [*"\u{c0}".."\u{cf}",*"\u{f0}".."\u{ff}"].join("")</div><div class='add'>+  nonascii10 = nonascii1 * 10</div><div class='add'>+  nonascii100 = nonascii10 * 10</div><div class='add'>+  nonascii1000 = nonascii100 * 10</div><div class='add'>+benchmark:</div><div class='add'>+  swapcase-1: str1.swapcase</div><div class='add'>+  swapcase-10: str10.swapcase</div><div class='add'>+  swapcase-100: str100.swapcase</div><div class='add'>+  swapcase-1000: str1000.swapcase</div><div class='add'>+  swapcase-nonascii1: nonascii1.swapcase</div><div class='add'>+  swapcase-nonascii10: nonascii10.swapcase</div><div class='add'>+  swapcase-nonascii100: nonascii100.swapcase</div><div class='add'>+  swapcase-nonascii1000: nonascii1000.swapcase</div><div class='head'>diff --git a/benchmark/string_upcase.yml b/benchmark/string_upcase.yml<br/>new file mode 100644<br/>index 0000000000..dab84bbde2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/string_upcase.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/string_upcase.yml</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+prelude: |</div><div class='add'>+  str1 = [*"a".."z",*"0".."9"].join("")</div><div class='add'>+  str10 = str1 * 10</div><div class='add'>+  str100 = str10 * 10</div><div class='add'>+  str1000 = str100 * 10</div><div class='add'>+  nonascii1 = [*"\u{e0}".."\u{ff}"].join("")</div><div class='add'>+  nonascii10 = nonascii1 * 10</div><div class='add'>+  nonascii100 = nonascii10 * 10</div><div class='add'>+  nonascii1000 = nonascii100 * 10</div><div class='add'>+benchmark:</div><div class='add'>+  upcase-1: str1.upcase</div><div class='add'>+  upcase-10: str10.upcase</div><div class='add'>+  upcase-100: str100.upcase</div><div class='add'>+  upcase-1000: str1000.upcase</div><div class='add'>+  upcase-nonascii1: nonascii1.upcase</div><div class='add'>+  upcase-nonascii10: nonascii10.upcase</div><div class='add'>+  upcase-nonascii100: nonascii100.upcase</div><div class='add'>+  upcase-nonascii1000: nonascii1000.upcase</div><div class='head'>diff --git a/benchmark/time_at.yml b/benchmark/time_at.yml<br/>new file mode 100644<br/>index 0000000000..3247efbe77<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/time_at.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/time_at.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  # frozen_string_literal: true</div><div class='add'>+benchmark:</div><div class='add'>+  - 'Time.at(0)'</div><div class='add'>+  - 'Time.at(0, 500)'</div><div class='add'>+  - 'Time.at(0, in: "+09:00")'</div><div class='add'>+  - 'Time.at(0, 500, in: "+09:00")'</div><div class='head'>diff --git a/benchmark/time_new.yml b/benchmark/time_new.yml<br/>new file mode 100644<br/>index 0000000000..5947dd3a41<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/time_new.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/time_new.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+benchmark:</div><div class='add'>+  - 'Time.new(2021)'</div><div class='add'>+  - 'Time.new(2021, 8, 22)'</div><div class='add'>+  - 'Time.new(2021, 8, 22, in: "+09:00")'</div><div class='head'>diff --git a/benchmark/time_now.yml b/benchmark/time_now.yml<br/>new file mode 100644<br/>index 0000000000..f6d6a31489<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/time_now.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/time_now.yml</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+benchmark:</div><div class='add'>+  - 'Time.now'</div><div class='add'>+  - 'Time.now(in: "+09:00")'</div><div class='head'>diff --git a/benchmark/time_parse.yml b/benchmark/time_parse.yml<br/>new file mode 100644<br/>index 0000000000..6060b58bc6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/time_parse.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/time_parse.yml</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+prelude: |</div><div class='add'>+  require 'time'</div><div class='add'>+  inspect = "2021-08-23 09:57:02 +0900"</div><div class='add'>+  iso8601 = "2021-08-23T09:57:02+09:00"</div><div class='add'>+benchmark:</div><div class='add'>+  - Time.iso8601(iso8601)</div><div class='add'>+  - Time.parse(iso8601)</div><div class='add'>+  - Time.parse(inspect)</div><div class='add'>+  - Time.new(iso8601) rescue Time.iso8601(iso8601)</div><div class='add'>+  - Time.new(inspect) rescue Time.parse(inspect)</div><div class='head'>diff --git a/benchmark/time_strptime.yml b/benchmark/time_strptime.yml<br/>new file mode 100644<br/>index 0000000000..8d89ebb7a7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/time_strptime.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/time_strptime.yml</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+prelude: |</div><div class='add'>+  require 'time'</div><div class='add'>+benchmark:</div><div class='add'>+  - Time.strptime("28/Aug/2005:06:54:20 +0000", "%d/%b/%Y:%T %z")</div><div class='add'>+  - Time.strptime("1", "%s")</div><div class='add'>+  - Time.strptime("0 +0100", "%s %z")</div><div class='add'>+  - Time.strptime("0 UTC", "%s %z")</div><div class='add'>+  - Time.strptime("1.5", "%s.%N")</div><div class='add'>+  - Time.strptime("1.000000000001", "%s.%N")</div><div class='add'>+  - Time.strptime("20010203 -0200", "%Y%m%d %z")</div><div class='add'>+  - Time.strptime("20010203 UTC", "%Y%m%d %z")</div><div class='add'>+  - Time.strptime("2018-365", "%Y-%j")</div><div class='add'>+  - Time.strptime("2018-091", "%Y-%j")</div><div class='head'>diff --git a/benchmark/vm1_attr_ivar.yml b/benchmark/vm1_attr_ivar.yml<br/>deleted file mode 100644<br/>index f714dd9bd9..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_attr_ivar.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_attr_ivar.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,14 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  class C</div><div class='del'>-    attr_reader :a, :b</div><div class='del'>-    def initialize</div><div class='del'>-      @a = nil</div><div class='del'>-      @b = nil</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-  obj = C.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_attr_ivar: |</div><div class='del'>-    j = obj.a</div><div class='del'>-    k = obj.b</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_attr_ivar_set.yml b/benchmark/vm1_attr_ivar_set.yml<br/>deleted file mode 100644<br/>index f383e59ef4..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_attr_ivar_set.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_attr_ivar_set.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,14 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  class C</div><div class='del'>-    attr_accessor :a, :b</div><div class='del'>-    def initialize</div><div class='del'>-      @a = nil</div><div class='del'>-      @b = nil</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-  obj = C.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_attr_ivar_set: |</div><div class='del'>-    obj.a = 1</div><div class='del'>-    obj.b = 2</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_block.yml b/benchmark/vm1_block.yml<br/>deleted file mode 100644<br/>index ac7c940f93..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_block.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_block.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,9 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def m</div><div class='del'>-    yield</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_block: |</div><div class='del'>-    m{</div><div class='del'>-    }</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_blockparam.yml b/benchmark/vm1_blockparam.yml<br/>deleted file mode 100644<br/>index 947b8c53d5..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_blockparam.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_blockparam.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def m &amp;b</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_blockparam: |</div><div class='del'>-    m{}</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_blockparam_call.yml b/benchmark/vm1_blockparam_call.yml<br/>deleted file mode 100644<br/>index e2817a3ce2..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_blockparam_call.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_blockparam_call.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def m &amp;b</div><div class='del'>-    b.call</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_blockparam_call: |</div><div class='del'>-    m{}</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_blockparam_pass.yml b/benchmark/vm1_blockparam_pass.yml<br/>deleted file mode 100644<br/>index ca1bef3369..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_blockparam_pass.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_blockparam_pass.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,12 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def bp_yield</div><div class='del'>-    yield</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def bp_pass &amp;b</div><div class='del'>-    bp_yield &amp;b</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_blockparam_pass: |</div><div class='del'>-    bp_pass{}</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_blockparam_yield.yml b/benchmark/vm1_blockparam_yield.yml<br/>deleted file mode 100644<br/>index 56ae617798..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_blockparam_yield.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_blockparam_yield.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def bp_yield &amp;b</div><div class='del'>-    yield</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_blockparam_yield: |</div><div class='del'>-    bp_yield{}</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_const.yml b/benchmark/vm1_const.yml<br/>deleted file mode 100644<br/>index b98db1545c..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_const.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_const.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  Const = 1</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_const: |</div><div class='del'>-    j = Const</div><div class='del'>-    k = Const</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_ensure.yml b/benchmark/vm1_ensure.yml<br/>deleted file mode 100644<br/>index afbbe38bec..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_ensure.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_ensure.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,14 +0,0 @@</div><div class='del'>-# Not utilizing loop_count since using it for this is too unstable for now</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_ensure: |</div><div class='del'>-    i = 0</div><div class='del'>-    while i&lt;30_000_000</div><div class='del'>-      i += 1</div><div class='del'>-      begin</div><div class='del'>-        begin</div><div class='del'>-        ensure</div><div class='del'>-        end</div><div class='del'>-      ensure</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-loop_count: 1</div><div class='head'>diff --git a/benchmark/vm1_float_simple.yml b/benchmark/vm1_float_simple.yml<br/>deleted file mode 100644<br/>index 4e9ad1852b..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_float_simple.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_float_simple.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  f = 0.0</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_float_simple: |</div><div class='del'>-    f += 0.1; f -= 0.1</div><div class='del'>-    f += 0.1; f -= 0.1</div><div class='del'>-    f += 0.1; f -= 0.1</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_gc_short_lived.yml b/benchmark/vm1_gc_short_lived.yml<br/>deleted file mode 100644<br/>index 8fdcb7371d..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_gc_short_lived.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_short_lived.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,9 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_gc_short_lived: |</div><div class='del'>-    a = '' # short-lived String</div><div class='del'>-    b = ''</div><div class='del'>-    c = ''</div><div class='del'>-    d = ''</div><div class='del'>-    e = ''</div><div class='del'>-    f = ''</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_gc_short_with_complex_long.yml b/benchmark/vm1_gc_short_with_complex_long.yml<br/>deleted file mode 100644<br/>index c22ea74a60..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_gc_short_with_complex_long.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_short_with_complex_long.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,25 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def nested_hash h, n</div><div class='del'>-    if n == 0</div><div class='del'>-      ''</div><div class='del'>-    else</div><div class='del'>-      10.times{</div><div class='del'>-        h[Object.new] = nested_hash(h, n-1)</div><div class='del'>-      }</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  long_lived = Hash.new</div><div class='del'>-  nested_hash long_lived, 6</div><div class='del'>-</div><div class='del'>-  GC.start</div><div class='del'>-  GC.start</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_gc_short_with_complex_long: |</div><div class='del'>-    a = '' # short-lived String</div><div class='del'>-    b = ''</div><div class='del'>-    c = ''</div><div class='del'>-    d = ''</div><div class='del'>-    e = ''</div><div class='del'>-    f = ''</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_gc_short_with_long.yml b/benchmark/vm1_gc_short_with_long.yml<br/>deleted file mode 100644<br/>index c731aae548..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_gc_short_with_long.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_short_with_long.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,13 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  long_lived = Array.new(1_000_000){|i| "#{i}"}</div><div class='del'>-  GC.start</div><div class='del'>-  GC.start</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_gc_short_with_long: |</div><div class='del'>-    a = '' # short-lived String</div><div class='del'>-    b = ''</div><div class='del'>-    c = ''</div><div class='del'>-    d = ''</div><div class='del'>-    e = ''</div><div class='del'>-    f = ''</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_gc_short_with_symbol.yml b/benchmark/vm1_gc_short_with_symbol.yml<br/>deleted file mode 100644<br/>index 7fc1abedd8..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_gc_short_with_symbol.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_short_with_symbol.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,13 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  50_000.times{|i| sym = "sym#{i}".to_sym}</div><div class='del'>-  GC.start</div><div class='del'>-  GC.start</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_gc_short_with_symbol: |</div><div class='del'>-    a = '' # short-lived String</div><div class='del'>-    b = ''</div><div class='del'>-    c = ''</div><div class='del'>-    d = ''</div><div class='del'>-    e = ''</div><div class='del'>-    f = ''</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_gc_wb_ary.yml b/benchmark/vm1_gc_wb_ary.yml<br/>deleted file mode 100644<br/>index 50fb4b6f84..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_gc_wb_ary.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_wb_ary.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,12 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  short_lived_ary = []</div><div class='del'>-</div><div class='del'>-  if RUBY_VERSION &gt;= "2.2.0"</div><div class='del'>-    GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  short_lived = ''</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_gc_wb_ary: |</div><div class='del'>-    short_lived_ary[0] = short_lived # write barrier</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_gc_wb_ary_promoted.yml b/benchmark/vm1_gc_wb_ary_promoted.yml<br/>deleted file mode 100644<br/>index cf9b5de005..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_gc_wb_ary_promoted.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_wb_ary_promoted.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,15 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  long_lived = []</div><div class='del'>-</div><div class='del'>-  if RUBY_VERSION &gt; "2.2.0"</div><div class='del'>-    3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }</div><div class='del'>-  elsif</div><div class='del'>-    GC.start</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  short_lived = ''</div><div class='del'>-</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_gc_wb_ary_promoted: |</div><div class='del'>-    long_lived[0] = short_lived # write barrier</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_gc_wb_obj.yml b/benchmark/vm1_gc_wb_obj.yml<br/>deleted file mode 100644<br/>index 9dc08e7e1a..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_gc_wb_obj.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_wb_obj.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,15 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  class C</div><div class='del'>-    attr_accessor :foo</div><div class='del'>-  end</div><div class='del'>-  short_lived_obj = C.new</div><div class='del'>-</div><div class='del'>-  if RUBY_VERSION &gt;= "2.2.0"</div><div class='del'>-    GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  short_lived = ''</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_gc_wb_obj: |</div><div class='del'>-    short_lived_obj.foo = short_lived # write barrier</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_gc_wb_obj_promoted.yml b/benchmark/vm1_gc_wb_obj_promoted.yml<br/>deleted file mode 100644<br/>index 26859d2a52..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_gc_wb_obj_promoted.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_gc_wb_obj_promoted.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,17 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  class C</div><div class='del'>-    attr_accessor :foo</div><div class='del'>-  end</div><div class='del'>-  long_lived = C.new</div><div class='del'>-</div><div class='del'>-  if RUBY_VERSION &gt;= "2.2.0"</div><div class='del'>-    3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }</div><div class='del'>-  elsif</div><div class='del'>-    GC.start</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  short_lived = ''</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_gc_wb_obj_promoted: |</div><div class='del'>-    long_lived.foo = short_lived # write barrier</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_ivar.yml b/benchmark/vm1_ivar.yml<br/>deleted file mode 100644<br/>index 7aa6fac729..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_ivar.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_ivar.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-prelude: "@a = 1\n"</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_ivar: |</div><div class='del'>-    j = @a</div><div class='del'>-    k = @a</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_ivar_set.yml b/benchmark/vm1_ivar_set.yml<br/>deleted file mode 100644<br/>index 6f19412d16..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_ivar_set.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_ivar_set.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,5 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_ivar_set: |</div><div class='del'>-    @a = 1</div><div class='del'>-    @b = 2</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_length.yml b/benchmark/vm1_length.yml<br/>deleted file mode 100644<br/>index a18e2ca2e6..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_length.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_length.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  a = 'abc'</div><div class='del'>-  b = [1, 2, 3]</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_length: |</div><div class='del'>-    a.length</div><div class='del'>-    b.length</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_lvar_init.yml b/benchmark/vm1_lvar_init.yml<br/>deleted file mode 100644<br/>index 10e2becef9..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_lvar_init.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_lvar_init.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,21 +0,0 @@</div><div class='del'>-# while loop cost is not removed because `i` is used in the script</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_lvar_init: |</div><div class='del'>-    def m v</div><div class='del'>-      unless v</div><div class='del'>-        # unreachable code</div><div class='del'>-        v1 = v2 = v3 = v4 = v5 = v6 = v7 = v8 = v9 = v10 =</div><div class='del'>-        v11 = v12 = v13 = v14 = v15 = v16 = v17 = v18 = v19 = v20 =</div><div class='del'>-        v21 = v22 = v23 = v24 = v25 = v26 = v27 = v28 = v29 = v30 =</div><div class='del'>-        v31 = v32 = v33 = v34 = v35 = v36 = v37 = v38 = v39 = v40 =</div><div class='del'>-        v41 = v42 = v43 = v44 = v45 = v46 = v47 = v48 = v49 = v50 = 1</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    i = 0</div><div class='del'>-</div><div class='del'>-    while i&lt;30_000_000</div><div class='del'>-      i += 1</div><div class='del'>-      m i</div><div class='del'>-    end</div><div class='del'>-loop_count: 1</div><div class='head'>diff --git a/benchmark/vm1_lvar_set.yml b/benchmark/vm1_lvar_set.yml<br/>deleted file mode 100644<br/>index df8f6b6ea4..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_lvar_set.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_lvar_set.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_lvar_set: |</div><div class='del'>-    a = b = c = d = e = f = g = h = j = k = l = m = n = o = p = q = r = 1</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_neq.yml b/benchmark/vm1_neq.yml<br/>deleted file mode 100644<br/>index 65a8128dda..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_neq.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_neq.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  obj1 = Object.new</div><div class='del'>-  obj2 = Object.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_neq: |</div><div class='del'>-    obj1 != obj2</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_not.yml b/benchmark/vm1_not.yml<br/>deleted file mode 100644<br/>index 0fb7b282a9..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_not.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_not.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  obj = Object.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_not: |</div><div class='del'>-    !obj</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_rescue.yml b/benchmark/vm1_rescue.yml<br/>deleted file mode 100644<br/>index a175b823af..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_rescue.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_rescue.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_rescue: |</div><div class='del'>-    begin</div><div class='del'>-    rescue</div><div class='del'>-    end</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_simplereturn.yml b/benchmark/vm1_simplereturn.yml<br/>deleted file mode 100644<br/>index 3564aac7e2..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_simplereturn.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_simplereturn.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def m</div><div class='del'>-    return 1</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_simplereturn: m</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_swap.yml b/benchmark/vm1_swap.yml<br/>deleted file mode 100644<br/>index fed87ccd62..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_swap.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_swap.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  a = 1</div><div class='del'>-  b = 2</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_swap: |</div><div class='del'>-    a, b = b, a</div><div class='del'>-loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm1_yield.yml b/benchmark/vm1_yield.yml<br/>deleted file mode 100644<br/>index ae1f9316f9..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm1_yield.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm1_yield.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,13 +0,0 @@</div><div class='del'>-# while loop cost is not removed due to benchmark_driver.gem's limitation</div><div class='del'>-benchmark:</div><div class='del'>-  vm1_yield: |</div><div class='del'>-    def m</div><div class='del'>-      i = 0</div><div class='del'>-      while i&lt;30_000_000</div><div class='del'>-        i += 1</div><div class='del'>-        yield</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    m{}</div><div class='del'>-loop_count: 1</div><div class='head'>diff --git a/benchmark/vm2_array.yml b/benchmark/vm2_array.yml<br/>deleted file mode 100644<br/>index 7373098d5e..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_array.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_array.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_array: |</div><div class='del'>-    a = [1,2,3,4,5,6,7,8,9,10]</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_bigarray.yml b/benchmark/vm2_bigarray.yml<br/>deleted file mode 100644<br/>index 2ad6da3905..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_bigarray.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_bigarray.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,105 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_bigarray: |</div><div class='del'>-    a = [</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-      1,2,3,4,5,6,7,8,9,10,</div><div class='del'>-    ]</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_bighash.yml b/benchmark/vm2_bighash.yml<br/>deleted file mode 100644<br/>index e9154e4ba9..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_bighash.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_bighash.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_bighash: |</div><div class='del'>-    a = {0=&gt;0, 1=&gt;1, 2=&gt;2, 3=&gt;3, 4=&gt;4, 5=&gt;5, 6=&gt;6, 7=&gt;7, 8=&gt;8, 9=&gt;9, 10=&gt;10, 11=&gt;11, 12=&gt;12, 13=&gt;13, 14=&gt;14, 15=&gt;15, 16=&gt;16, 17=&gt;17, 18=&gt;18, 19=&gt;19, 20=&gt;20, 21=&gt;21, 22=&gt;22, 23=&gt;23, 24=&gt;24, 25=&gt;25, 26=&gt;26, 27=&gt;27, 28=&gt;28, 29=&gt;29, 30=&gt;30, 31=&gt;31, 32=&gt;32, 33=&gt;33, 34=&gt;34, 35=&gt;35, 36=&gt;36, 37=&gt;37, 38=&gt;38, 39=&gt;39, 40=&gt;40, 41=&gt;41, 42=&gt;42, 43=&gt;43, 44=&gt;44, 45=&gt;45, 46=&gt;46, 47=&gt;47, 48=&gt;48, 49=&gt;49, 50=&gt;50, 51=&gt;51, 52=&gt;52, 53=&gt;53, 54=&gt;54, 55=&gt;55, 56=&gt;56, 57=&gt;57, 58=&gt;58, 59=&gt;59, 60=&gt;60, 61=&gt;61, 62=&gt;62, 63=&gt;63, 64=&gt;64, 65=&gt;65, 66=&gt;66, 67=&gt;67, 68=&gt;68, 69=&gt;69, 70=&gt;70, 71=&gt;71, 72=&gt;72, 73=&gt;73, 74=&gt;74, 75=&gt;75, 76=&gt;76, 77=&gt;77, 78=&gt;78, 79=&gt;79, 80=&gt;80, 81=&gt;81, 82=&gt;82, 83=&gt;83, 84=&gt;84, 85=&gt;85, 86=&gt;86, 87=&gt;87, 88=&gt;88, 89=&gt;89, 90=&gt;90, 91=&gt;91, 92=&gt;92, 93=&gt;93, 94=&gt;94, 95=&gt;95, 96=&gt;96, 97=&gt;97, 98=&gt;98, 99=&gt;99, 100=&gt;100, 101=&gt;101, 102=&gt;102, 103=&gt;103, 104=&gt;104, 105=&gt;105, 106=&gt;106, 107=&gt;107, 108=&gt;108, 109=&gt;109, 110=&gt;110, 111=&gt;111, 112=&gt;112, 113=&gt;113, 114=&gt;114, 115=&gt;115, 116=&gt;116, 117=&gt;117, 118=&gt;118, 119=&gt;119, 120=&gt;120, 121=&gt;121, 122=&gt;122, 123=&gt;123, 124=&gt;124, 125=&gt;125, 126=&gt;126, 127=&gt;127, 128=&gt;128, 129=&gt;129, 130=&gt;130, 131=&gt;131, 132=&gt;132, 133=&gt;133, 134=&gt;134, 135=&gt;135, 136=&gt;136, 137=&gt;137, 138=&gt;138, 139=&gt;139, 140=&gt;140, 141=&gt;141, 142=&gt;142, 143=&gt;143, 144=&gt;144, 145=&gt;145, 146=&gt;146, 147=&gt;147, 148=&gt;148, 149=&gt;149, 150=&gt;150, 151=&gt;151, 152=&gt;152, 153=&gt;153, 154=&gt;154, 155=&gt;155, 156=&gt;156, 157=&gt;157, 158=&gt;158, 159=&gt;159, 160=&gt;160, 161=&gt;161, 162=&gt;162, 163=&gt;163, 164=&gt;164, 165=&gt;165, 166=&gt;166, 167=&gt;167, 168=&gt;168, 169=&gt;169, 170=&gt;170, 171=&gt;171, 172=&gt;172, 173=&gt;173, 174=&gt;174, 175=&gt;175, 176=&gt;176, 177=&gt;177, 178=&gt;178, 179=&gt;179, 180=&gt;180, 181=&gt;181, 182=&gt;182, 183=&gt;183, 184=&gt;184, 185=&gt;185, 186=&gt;186, 187=&gt;187, 188=&gt;188, 189=&gt;189, 190=&gt;190, 191=&gt;191, 192=&gt;192, 193=&gt;193, 194=&gt;194, 195=&gt;195, 196=&gt;196, 197=&gt;197, 198=&gt;198, 199=&gt;199, 200=&gt;200, 201=&gt;201, 202=&gt;202, 203=&gt;203, 204=&gt;204, 205=&gt;205, 206=&gt;206, 207=&gt;207, 208=&gt;208, 209=&gt;209, 210=&gt;210, 211=&gt;211, 212=&gt;212, 213=&gt;213, 214=&gt;214, 215=&gt;215, 216=&gt;216, 217=&gt;217, 218=&gt;218, 219=&gt;219, 220=&gt;220, 221=&gt;221, 222=&gt;222, 223=&gt;223, 224=&gt;224, 225=&gt;225, 226=&gt;226, 227=&gt;227, 228=&gt;228, 229=&gt;229, 230=&gt;230, 231=&gt;231, 232=&gt;232, 233=&gt;233, 234=&gt;234, 235=&gt;235, 236=&gt;236, 237=&gt;237, 238=&gt;238, 239=&gt;239, 240=&gt;240, 241=&gt;241, 242=&gt;242, 243=&gt;243, 244=&gt;244, 245=&gt;245, 246=&gt;246, 247=&gt;247, 248=&gt;248, 249=&gt;249, 250=&gt;250, 251=&gt;251, 252=&gt;252, 253=&gt;253, 254=&gt;254, 255=&gt;255, 256=&gt;256, 257=&gt;257, 258=&gt;258, 259=&gt;259, 260=&gt;260, 261=&gt;261, 262=&gt;262, 263=&gt;263, 264=&gt;264, 265=&gt;265, 266=&gt;266, 267=&gt;267, 268=&gt;268, 269=&gt;269, 270=&gt;270, 271=&gt;271, 272=&gt;272, 273=&gt;273, 274=&gt;274, 275=&gt;275, 276=&gt;276, 277=&gt;277, 278=&gt;278, 279=&gt;279, 280=&gt;280, 281=&gt;281, 282=&gt;282, 283=&gt;283, 284=&gt;284, 285=&gt;285, 286=&gt;286, 287=&gt;287, 288=&gt;288, 289=&gt;289, 290=&gt;290, 291=&gt;291, 292=&gt;292, 293=&gt;293, 294=&gt;294, 295=&gt;295, 296=&gt;296, 297=&gt;297, 298=&gt;298, 299=&gt;299, 300=&gt;300, 301=&gt;301, 302=&gt;302, 303=&gt;303, 304=&gt;304, 305=&gt;305, 306=&gt;306, 307=&gt;307, 308=&gt;308, 309=&gt;309, 310=&gt;310, 311=&gt;311, 312=&gt;312, 313=&gt;313, 314=&gt;314, 315=&gt;315, 316=&gt;316, 317=&gt;317, 318=&gt;318, 319=&gt;319, 320=&gt;320, 321=&gt;321, 322=&gt;322, 323=&gt;323, 324=&gt;324, 325=&gt;325, 326=&gt;326, 327=&gt;327, 328=&gt;328, 329=&gt;329, 330=&gt;330, 331=&gt;331, 332=&gt;332, 333=&gt;333, 334=&gt;334, 335=&gt;335, 336=&gt;336, 337=&gt;337, 338=&gt;338, 339=&gt;339, 340=&gt;340, 341=&gt;341, 342=&gt;342, 343=&gt;343, 344=&gt;344, 345=&gt;345, 346=&gt;346, 347=&gt;347, 348=&gt;348, 349=&gt;349, 350=&gt;350, 351=&gt;351, 352=&gt;352, 353=&gt;353, 354=&gt;354, 355=&gt;355, 356=&gt;356, 357=&gt;357, 358=&gt;358, 359=&gt;359, 360=&gt;360, 361=&gt;361, 362=&gt;362, 363=&gt;363, 364=&gt;364, 365=&gt;365, 366=&gt;366, 367=&gt;367, 368=&gt;368, 369=&gt;369, 370=&gt;370, 371=&gt;371, 372=&gt;372, 373=&gt;373, 374=&gt;374, 375=&gt;375, 376=&gt;376, 377=&gt;377, 378=&gt;378, 379=&gt;379, 380=&gt;380, 381=&gt;381, 382=&gt;382, 383=&gt;383, 384=&gt;384, 385=&gt;385, 386=&gt;386, 387=&gt;387, 388=&gt;388, 389=&gt;389, 390=&gt;390, 391=&gt;391, 392=&gt;392, 393=&gt;393, 394=&gt;394, 395=&gt;395, 396=&gt;396, 397=&gt;397, 398=&gt;398, 399=&gt;399, 400=&gt;400, 401=&gt;401, 402=&gt;402, 403=&gt;403, 404=&gt;404, 405=&gt;405, 406=&gt;406, 407=&gt;407, 408=&gt;408, 409=&gt;409, 410=&gt;410, 411=&gt;411, 412=&gt;412, 413=&gt;413, 414=&gt;414, 415=&gt;415, 416=&gt;416, 417=&gt;417, 418=&gt;418, 419=&gt;419, 420=&gt;420, 421=&gt;421, 422=&gt;422, 423=&gt;423, 424=&gt;424, 425=&gt;425, 426=&gt;426, 427=&gt;427, 428=&gt;428, 429=&gt;429, 430=&gt;430, 431=&gt;431, 432=&gt;432, 433=&gt;433, 434=&gt;434, 435=&gt;435, 436=&gt;436, 437=&gt;437, 438=&gt;438, 439=&gt;439, 440=&gt;440, 441=&gt;441, 442=&gt;442, 443=&gt;443, 444=&gt;444, 445=&gt;445, 446=&gt;446, 447=&gt;447, 448=&gt;448, 449=&gt;449, 450=&gt;450, 451=&gt;451, 452=&gt;452, 453=&gt;453, 454=&gt;454, 455=&gt;455, 456=&gt;456, 457=&gt;457, 458=&gt;458, 459=&gt;459, 460=&gt;460, 461=&gt;461, 462=&gt;462, 463=&gt;463, 464=&gt;464, 465=&gt;465, 466=&gt;466, 467=&gt;467, 468=&gt;468, 469=&gt;469, 470=&gt;470, 471=&gt;471, 472=&gt;472, 473=&gt;473, 474=&gt;474, 475=&gt;475, 476=&gt;476, 477=&gt;477, 478=&gt;478, 479=&gt;479, 480=&gt;480, 481=&gt;481, 482=&gt;482, 483=&gt;483, 484=&gt;484, 485=&gt;485, 486=&gt;486, 487=&gt;487, 488=&gt;488, 489=&gt;489, 490=&gt;490, 491=&gt;491, 492=&gt;492, 493=&gt;493, 494=&gt;494, 495=&gt;495, 496=&gt;496, 497=&gt;497, 498=&gt;498, 499=&gt;499, 500=&gt;500,}</div><div class='del'>-loop_count: 60000</div><div class='head'>diff --git a/benchmark/vm2_case.yml b/benchmark/vm2_case.yml<br/>deleted file mode 100644<br/>index 7716783c09..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_case.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_case.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,13 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_case: |</div><div class='del'>-    case :foo</div><div class='del'>-    when :bar</div><div class='del'>-      raise</div><div class='del'>-    when :baz</div><div class='del'>-      raise</div><div class='del'>-    when :boo</div><div class='del'>-      raise</div><div class='del'>-    when :foo</div><div class='del'>-      # noop</div><div class='del'>-    end</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_case_lit.yml b/benchmark/vm2_case_lit.yml<br/>deleted file mode 100644<br/>index c49b8dfe5e..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_case_lit.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_case_lit.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,23 +0,0 @@</div><div class='del'>-# loop_count is not utilized since `i` is involved in the script</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_case_lit: |</div><div class='del'>-    i = 0</div><div class='del'>-    @ret = [ "foo", true, false, :sym, 6, nil, 0.1, 0xffffffffffffffff ]</div><div class='del'>-    def foo(i)</div><div class='del'>-      @ret[i % @ret.size]</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    while i&lt;6_000_000</div><div class='del'>-      case foo(i)</div><div class='del'>-      when "foo" then :foo</div><div class='del'>-      when true then true</div><div class='del'>-      when false then false</div><div class='del'>-      when :sym then :sym</div><div class='del'>-      when 6 then :fix</div><div class='del'>-      when nil then nil</div><div class='del'>-      when 0.1 then :float</div><div class='del'>-      when 0xffffffffffffffff then :big</div><div class='del'>-      end</div><div class='del'>-      i += 1</div><div class='del'>-    end</div><div class='del'>-loop_count: 1</div><div class='head'>diff --git a/benchmark/vm2_defined_method.yml b/benchmark/vm2_defined_method.yml<br/>deleted file mode 100644<br/>index e1b0d55674..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_defined_method.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_defined_method.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  class Object</div><div class='del'>-    define_method(:m){}</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_defined_method: |</div><div class='del'>-    m; m; m; m; m; m; m; m;</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_dstr.yml b/benchmark/vm2_dstr.yml<br/>deleted file mode 100644<br/>index f8bd6e0133..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_dstr.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_dstr.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  x = y = 'z'</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_dstr: |</div><div class='del'>-    str = "foo#{x}bar#{y}baz"</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_eval.yml b/benchmark/vm2_eval.yml<br/>deleted file mode 100644<br/>index d506a9c079..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_eval.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_eval.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_eval: |</div><div class='del'>-    eval("1")</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_fiber_switch.yml b/benchmark/vm2_fiber_switch.yml<br/>deleted file mode 100644<br/>index f3e4c91283..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_fiber_switch.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_fiber_switch.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,9 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  # based on benchmark for [ruby-core:65518] [Feature #10341] by Knut Franke</div><div class='del'>-  fib = Fiber.new do</div><div class='del'>-    loop { Fiber.yield }</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_fiber_switch: |</div><div class='del'>-    fib.resume</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_freezestring.yml b/benchmark/vm2_freezestring.yml<br/>deleted file mode 100644<br/>index b78af91a20..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_freezestring.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_freezestring.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,10 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  class String</div><div class='del'>-    def freeze</div><div class='del'>-      -self</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_freezestring: |</div><div class='del'>-    "tXnL1BP5T1WPXMjuFNLQtallEtRcay1t2lHtJSrlVsDgvunlbtfpr/DGdH0NGYE9".freeze</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_method.yml b/benchmark/vm2_method.yml<br/>deleted file mode 100644<br/>index cc7b9b28ff..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_method.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_method.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def m</div><div class='del'>-    nil</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_method: |</div><div class='del'>-    m; m; m; m; m; m; m; m;</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_method_missing.yml b/benchmark/vm2_method_missing.yml<br/>deleted file mode 100644<br/>index cbfb794b25..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_method_missing.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_method_missing.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,11 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  class C</div><div class='del'>-    def method_missing mid</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  obj = C.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_method_missing: |</div><div class='del'>-    obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m;</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_method_with_block.yml b/benchmark/vm2_method_with_block.yml<br/>deleted file mode 100644<br/>index 6e522adccc..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_method_with_block.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_method_with_block.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def m</div><div class='del'>-    nil</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_method_with_block: |</div><div class='del'>-    m{}; m{}; m{}; m{}; m{}; m{}; m{}; m{};</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_module_ann_const_set.yml b/benchmark/vm2_module_ann_const_set.yml<br/>deleted file mode 100644<br/>index b0becd9d3d..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_module_ann_const_set.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_module_ann_const_set.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_module_ann_const_set: |</div><div class='del'>-    Module.new.const_set(:X, Module.new)</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_module_const_set.yml b/benchmark/vm2_module_const_set.yml<br/>deleted file mode 100644<br/>index 05a640069c..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_module_const_set.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_module_const_set.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  module M</div><div class='del'>-  end</div><div class='del'>-  $VERBOSE = nil</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_module_const_set: |</div><div class='del'>-    M.const_set(:X, Module.new)</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_mutex.yml b/benchmark/vm2_mutex.yml<br/>deleted file mode 100644<br/>index c40a90444a..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_mutex.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_mutex.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  require 'thread'</div><div class='del'>-</div><div class='del'>-  m = Thread::Mutex.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_mutex: |</div><div class='del'>-    m.synchronize{}</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_newlambda.yml b/benchmark/vm2_newlambda.yml<br/>deleted file mode 100644<br/>index 93133f9f30..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_newlambda.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_newlambda.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_newlambda: |</div><div class='del'>-    lambda {}</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_poly_method.yml b/benchmark/vm2_poly_method.yml<br/>deleted file mode 100644<br/>index 0104bdfb66..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_poly_method.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_poly_method.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,24 +0,0 @@</div><div class='del'>-# loop_count is not utilized since `i` is involved in the script</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_poly_method: |</div><div class='del'>-    class C1</div><div class='del'>-      def m</div><div class='del'>-        1</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    class C2</div><div class='del'>-      def m</div><div class='del'>-        2</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    o1 = C1.new</div><div class='del'>-    o2 = C2.new</div><div class='del'>-</div><div class='del'>-    i = 0</div><div class='del'>-    while i&lt;6_000_000</div><div class='del'>-      o = (i % 2 == 0) ? o1 : o2</div><div class='del'>-      o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m</div><div class='del'>-      i += 1</div><div class='del'>-    end</div><div class='del'>-loop_count: 1</div><div class='head'>diff --git a/benchmark/vm2_poly_method_ov.yml b/benchmark/vm2_poly_method_ov.yml<br/>deleted file mode 100644<br/>index 3748073ba2..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_poly_method_ov.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_poly_method_ov.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,24 +0,0 @@</div><div class='del'>-# loop_count is not utilized since `i` is involved in the script</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_poly_method_ov: |</div><div class='del'>-    class C1</div><div class='del'>-      def m</div><div class='del'>-        1</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    class C2</div><div class='del'>-      def m</div><div class='del'>-        2</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    o1 = C1.new</div><div class='del'>-    o2 = C2.new</div><div class='del'>-</div><div class='del'>-    i = 0</div><div class='del'>-    while i&lt;6_000_000</div><div class='del'>-      o = (i % 2 == 0) ? o1 : o2</div><div class='del'>-    #  o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m</div><div class='del'>-      i += 1</div><div class='del'>-    end</div><div class='del'>-loop_count: 1</div><div class='head'>diff --git a/benchmark/vm2_poly_singleton.yml b/benchmark/vm2_poly_singleton.yml<br/>deleted file mode 100644<br/>index e58d7bfb37..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_poly_singleton.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_poly_singleton.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,18 +0,0 @@</div><div class='del'>-# loop_count is not utilized since `i` is involved in the script</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_poly_singleton: |</div><div class='del'>-    class C1</div><div class='del'>-      def m; 1; end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    o1 = C1.new</div><div class='del'>-    o2 = C1.new</div><div class='del'>-    o2.singleton_class</div><div class='del'>-</div><div class='del'>-    i = 0</div><div class='del'>-    while i&lt;6_000_000 # benchmark loop 2</div><div class='del'>-      o = (i % 2 == 0) ? o1 : o2</div><div class='del'>-      o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m</div><div class='del'>-      i += 1</div><div class='del'>-    end</div><div class='del'>-loop_count: 1</div><div class='head'>diff --git a/benchmark/vm2_proc.yml b/benchmark/vm2_proc.yml<br/>deleted file mode 100644<br/>index 5c36e936d9..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_proc.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_proc.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,12 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def m &amp;b</div><div class='del'>-    b</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  pr = m{</div><div class='del'>-    a = 1</div><div class='del'>-  }</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_proc: |</div><div class='del'>-    pr.call</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_raise1.yml b/benchmark/vm2_raise1.yml<br/>deleted file mode 100644<br/>index f6eb308968..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_raise1.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_raise1.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,16 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def rec n</div><div class='del'>-    if n &gt; 0</div><div class='del'>-      rec n-1</div><div class='del'>-    else</div><div class='del'>-      raise</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_raise1: |</div><div class='del'>-    begin</div><div class='del'>-      rec 1</div><div class='del'>-    rescue</div><div class='del'>-      # ignore</div><div class='del'>-    end</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_raise2.yml b/benchmark/vm2_raise2.yml<br/>deleted file mode 100644<br/>index 7d51b1b314..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_raise2.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_raise2.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,16 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def rec n</div><div class='del'>-    if n &gt; 0</div><div class='del'>-      rec n-1</div><div class='del'>-    else</div><div class='del'>-      raise</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_raise2: |</div><div class='del'>-    begin</div><div class='del'>-      rec 10</div><div class='del'>-    rescue</div><div class='del'>-      # ignore</div><div class='del'>-    end</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_regexp.yml b/benchmark/vm2_regexp.yml<br/>deleted file mode 100644<br/>index 0f3968a99b..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_regexp.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_regexp.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  str = 'xxxhogexxx'</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_regexp: |</div><div class='del'>-    /hoge/ =~ str</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_send.yml b/benchmark/vm2_send.yml<br/>deleted file mode 100644<br/>index 44a12a27d9..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_send.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_send.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,11 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  class C</div><div class='del'>-    def m</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  o = C.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_send: |</div><div class='del'>-    o.__send__ :m</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_string_literal.yml b/benchmark/vm2_string_literal.yml<br/>deleted file mode 100644<br/>index 54b0aec1fe..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_string_literal.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_string_literal.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_string_literal: |</div><div class='del'>-    x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_struct_big_aref_hi.yml b/benchmark/vm2_struct_big_aref_hi.yml<br/>deleted file mode 100644<br/>index eed1846d28..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_struct_big_aref_hi.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_aref_hi.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='del'>-  x = s.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_struct_big_aref_hi: |</div><div class='del'>-    x.z # x[25]</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_struct_big_aref_lo.yml b/benchmark/vm2_struct_big_aref_lo.yml<br/>deleted file mode 100644<br/>index 0915435b76..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_struct_big_aref_lo.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_aref_lo.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='del'>-  x = s.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_struct_big_aref_lo: |</div><div class='del'>-    x.k # x[10]</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_struct_big_aset.yml b/benchmark/vm2_struct_big_aset.yml<br/>deleted file mode 100644<br/>index 6af50103d3..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_struct_big_aset.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_aset.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,11 +0,0 @@</div><div class='del'>-# loop_count is not utilized since `i` is involved in the script</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_struct_big_aset: |</div><div class='del'>-    s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='del'>-    x = s.new</div><div class='del'>-    i = 0</div><div class='del'>-    while i&lt;6_000_000</div><div class='del'>-      i += 1</div><div class='del'>-      x.k = i # x[10] = i</div><div class='del'>-    end</div><div class='del'>-loop_count: 1</div><div class='head'>diff --git a/benchmark/vm2_struct_big_href_hi.yml b/benchmark/vm2_struct_big_href_hi.yml<br/>deleted file mode 100644<br/>index 60aa7fddf3..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_struct_big_href_hi.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_href_hi.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='del'>-  x = s.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_struct_big_href_hi: |</div><div class='del'>-    x[:z]</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_struct_big_href_lo.yml b/benchmark/vm2_struct_big_href_lo.yml<br/>deleted file mode 100644<br/>index c55c0bd16c..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_struct_big_href_lo.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_href_lo.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='del'>-  x = s.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_struct_big_href_lo: |</div><div class='del'>-    x[:k]</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_struct_big_hset.yml b/benchmark/vm2_struct_big_hset.yml<br/>deleted file mode 100644<br/>index d199c5bd47..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_struct_big_hset.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_big_hset.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,11 +0,0 @@</div><div class='del'>-# loop_count is not utilized since `i` is involved in the script</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_struct_big_hset: |</div><div class='del'>-    s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='del'>-    x = s.new</div><div class='del'>-    i = 0</div><div class='del'>-    while i&lt;6_000_000</div><div class='del'>-      i += 1</div><div class='del'>-      x[:k] = i</div><div class='del'>-    end</div><div class='del'>-loop_count: 1</div><div class='head'>diff --git a/benchmark/vm2_struct_small_aref.yml b/benchmark/vm2_struct_small_aref.yml<br/>deleted file mode 100644<br/>index 83381bed3a..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_struct_small_aref.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_small_aref.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  s = Struct.new(:a, :b, :c)</div><div class='del'>-  x = s.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_struct_small_aref: |</div><div class='del'>-    x.a</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_struct_small_aset.yml b/benchmark/vm2_struct_small_aset.yml<br/>deleted file mode 100644<br/>index 3e84a61dd0..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_struct_small_aset.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_small_aset.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,11 +0,0 @@</div><div class='del'>-# loop_count is not utilized since `i` is involved in the script</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_struct_small_aset: |</div><div class='del'>-    s = Struct.new(:a, :b, :c)</div><div class='del'>-    x = s.new</div><div class='del'>-    i = 0</div><div class='del'>-    while i&lt;6_000_000</div><div class='del'>-      i += 1</div><div class='del'>-      x.a = i</div><div class='del'>-    end</div><div class='del'>-loop_count: 1</div><div class='head'>diff --git a/benchmark/vm2_struct_small_href.yml b/benchmark/vm2_struct_small_href.yml<br/>deleted file mode 100644<br/>index b744f070d1..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_struct_small_href.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_small_href.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  s = Struct.new(:a, :b, :c)</div><div class='del'>-  x = s.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_struct_small_href: |</div><div class='del'>-    x[:a]</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_struct_small_hset.yml b/benchmark/vm2_struct_small_hset.yml<br/>deleted file mode 100644<br/>index d43845d6e0..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_struct_small_hset.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_struct_small_hset.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  s = Struct.new(:a, :b, :c)</div><div class='del'>-  x = s.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_struct_small_hset: |</div><div class='del'>-    x[:a] = 1</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_super.yml b/benchmark/vm2_super.yml<br/>deleted file mode 100644<br/>index 674743762a..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_super.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_super.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,17 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  class C</div><div class='del'>-    def m</div><div class='del'>-      1</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  class CC &lt; C</div><div class='del'>-    def m</div><div class='del'>-      super()</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  obj = CC.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_super: obj.m</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_unif1.yml b/benchmark/vm2_unif1.yml<br/>deleted file mode 100644<br/>index caef13279f..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_unif1.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_unif1.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  def m a, b</div><div class='del'>-  end</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_unif1: |</div><div class='del'>-    m 100, 200</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm2_zsuper.yml b/benchmark/vm2_zsuper.yml<br/>deleted file mode 100644<br/>index f760cfd48e..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm2_zsuper.yml?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm2_zsuper.yml</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,18 +0,0 @@</div><div class='del'>-prelude: |</div><div class='del'>-  class C</div><div class='del'>-    def m a</div><div class='del'>-      1</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  class CC &lt; C</div><div class='del'>-    def m a</div><div class='del'>-      super</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  obj = CC.new</div><div class='del'>-benchmark:</div><div class='del'>-  vm2_zsuper: |</div><div class='del'>-    obj.m 10</div><div class='del'>-loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_array.yml b/benchmark/vm_array.yml<br/>new file mode 100644<br/>index 0000000000..2a177237ef<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_array.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_array.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_array: |</div><div class='add'>+    a = [1,2,3,4,5,6,7,8,9,10]</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_attr_ivar.yml b/benchmark/vm_attr_ivar.yml<br/>new file mode 100644<br/>index 0000000000..75b803478e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_attr_ivar.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_attr_ivar.yml</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    attr_reader :a, :b</div><div class='add'>+    def initialize</div><div class='add'>+      @a = nil</div><div class='add'>+      @b = nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  obj = C.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_attr_ivar: |</div><div class='add'>+    j = obj.a</div><div class='add'>+    k = obj.b</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_attr_ivar_set.yml b/benchmark/vm_attr_ivar_set.yml<br/>new file mode 100644<br/>index 0000000000..a0d379b18a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_attr_ivar_set.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_attr_ivar_set.yml</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    attr_accessor :a, :b</div><div class='add'>+    def initialize</div><div class='add'>+      @a = nil</div><div class='add'>+      @b = nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  obj = C.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_attr_ivar_set: |</div><div class='add'>+    obj.a = 1</div><div class='add'>+    obj.b = 2</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm3_backtrace.rb b/benchmark/vm_backtrace.rb<br/>index 0fbf73e1ca..0fbf73e1ca 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/vm3_backtrace.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm3_backtrace.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_backtrace.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_backtrace.rb</a></div><div class='head'>diff --git a/benchmark/vm_bigarray.yml b/benchmark/vm_bigarray.yml<br/>new file mode 100644<br/>index 0000000000..8b2d3f3443<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_bigarray.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_bigarray.yml</a></div><div class='hunk'>@@ -0,0 +1,105 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_bigarray: |</div><div class='add'>+    a = [</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+      1,2,3,4,5,6,7,8,9,10,</div><div class='add'>+    ]</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_bighash.yml b/benchmark/vm_bighash.yml<br/>new file mode 100644<br/>index 0000000000..4dacfde793<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_bighash.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_bighash.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_bighash: |</div><div class='add'>+    a = {0=&gt;0, 1=&gt;1, 2=&gt;2, 3=&gt;3, 4=&gt;4, 5=&gt;5, 6=&gt;6, 7=&gt;7, 8=&gt;8, 9=&gt;9, 10=&gt;10, 11=&gt;11, 12=&gt;12, 13=&gt;13, 14=&gt;14, 15=&gt;15, 16=&gt;16, 17=&gt;17, 18=&gt;18, 19=&gt;19, 20=&gt;20, 21=&gt;21, 22=&gt;22, 23=&gt;23, 24=&gt;24, 25=&gt;25, 26=&gt;26, 27=&gt;27, 28=&gt;28, 29=&gt;29, 30=&gt;30, 31=&gt;31, 32=&gt;32, 33=&gt;33, 34=&gt;34, 35=&gt;35, 36=&gt;36, 37=&gt;37, 38=&gt;38, 39=&gt;39, 40=&gt;40, 41=&gt;41, 42=&gt;42, 43=&gt;43, 44=&gt;44, 45=&gt;45, 46=&gt;46, 47=&gt;47, 48=&gt;48, 49=&gt;49, 50=&gt;50, 51=&gt;51, 52=&gt;52, 53=&gt;53, 54=&gt;54, 55=&gt;55, 56=&gt;56, 57=&gt;57, 58=&gt;58, 59=&gt;59, 60=&gt;60, 61=&gt;61, 62=&gt;62, 63=&gt;63, 64=&gt;64, 65=&gt;65, 66=&gt;66, 67=&gt;67, 68=&gt;68, 69=&gt;69, 70=&gt;70, 71=&gt;71, 72=&gt;72, 73=&gt;73, 74=&gt;74, 75=&gt;75, 76=&gt;76, 77=&gt;77, 78=&gt;78, 79=&gt;79, 80=&gt;80, 81=&gt;81, 82=&gt;82, 83=&gt;83, 84=&gt;84, 85=&gt;85, 86=&gt;86, 87=&gt;87, 88=&gt;88, 89=&gt;89, 90=&gt;90, 91=&gt;91, 92=&gt;92, 93=&gt;93, 94=&gt;94, 95=&gt;95, 96=&gt;96, 97=&gt;97, 98=&gt;98, 99=&gt;99, 100=&gt;100, 101=&gt;101, 102=&gt;102, 103=&gt;103, 104=&gt;104, 105=&gt;105, 106=&gt;106, 107=&gt;107, 108=&gt;108, 109=&gt;109, 110=&gt;110, 111=&gt;111, 112=&gt;112, 113=&gt;113, 114=&gt;114, 115=&gt;115, 116=&gt;116, 117=&gt;117, 118=&gt;118, 119=&gt;119, 120=&gt;120, 121=&gt;121, 122=&gt;122, 123=&gt;123, 124=&gt;124, 125=&gt;125, 126=&gt;126, 127=&gt;127, 128=&gt;128, 129=&gt;129, 130=&gt;130, 131=&gt;131, 132=&gt;132, 133=&gt;133, 134=&gt;134, 135=&gt;135, 136=&gt;136, 137=&gt;137, 138=&gt;138, 139=&gt;139, 140=&gt;140, 141=&gt;141, 142=&gt;142, 143=&gt;143, 144=&gt;144, 145=&gt;145, 146=&gt;146, 147=&gt;147, 148=&gt;148, 149=&gt;149, 150=&gt;150, 151=&gt;151, 152=&gt;152, 153=&gt;153, 154=&gt;154, 155=&gt;155, 156=&gt;156, 157=&gt;157, 158=&gt;158, 159=&gt;159, 160=&gt;160, 161=&gt;161, 162=&gt;162, 163=&gt;163, 164=&gt;164, 165=&gt;165, 166=&gt;166, 167=&gt;167, 168=&gt;168, 169=&gt;169, 170=&gt;170, 171=&gt;171, 172=&gt;172, 173=&gt;173, 174=&gt;174, 175=&gt;175, 176=&gt;176, 177=&gt;177, 178=&gt;178, 179=&gt;179, 180=&gt;180, 181=&gt;181, 182=&gt;182, 183=&gt;183, 184=&gt;184, 185=&gt;185, 186=&gt;186, 187=&gt;187, 188=&gt;188, 189=&gt;189, 190=&gt;190, 191=&gt;191, 192=&gt;192, 193=&gt;193, 194=&gt;194, 195=&gt;195, 196=&gt;196, 197=&gt;197, 198=&gt;198, 199=&gt;199, 200=&gt;200, 201=&gt;201, 202=&gt;202, 203=&gt;203, 204=&gt;204, 205=&gt;205, 206=&gt;206, 207=&gt;207, 208=&gt;208, 209=&gt;209, 210=&gt;210, 211=&gt;211, 212=&gt;212, 213=&gt;213, 214=&gt;214, 215=&gt;215, 216=&gt;216, 217=&gt;217, 218=&gt;218, 219=&gt;219, 220=&gt;220, 221=&gt;221, 222=&gt;222, 223=&gt;223, 224=&gt;224, 225=&gt;225, 226=&gt;226, 227=&gt;227, 228=&gt;228, 229=&gt;229, 230=&gt;230, 231=&gt;231, 232=&gt;232, 233=&gt;233, 234=&gt;234, 235=&gt;235, 236=&gt;236, 237=&gt;237, 238=&gt;238, 239=&gt;239, 240=&gt;240, 241=&gt;241, 242=&gt;242, 243=&gt;243, 244=&gt;244, 245=&gt;245, 246=&gt;246, 247=&gt;247, 248=&gt;248, 249=&gt;249, 250=&gt;250, 251=&gt;251, 252=&gt;252, 253=&gt;253, 254=&gt;254, 255=&gt;255, 256=&gt;256, 257=&gt;257, 258=&gt;258, 259=&gt;259, 260=&gt;260, 261=&gt;261, 262=&gt;262, 263=&gt;263, 264=&gt;264, 265=&gt;265, 266=&gt;266, 267=&gt;267, 268=&gt;268, 269=&gt;269, 270=&gt;270, 271=&gt;271, 272=&gt;272, 273=&gt;273, 274=&gt;274, 275=&gt;275, 276=&gt;276, 277=&gt;277, 278=&gt;278, 279=&gt;279, 280=&gt;280, 281=&gt;281, 282=&gt;282, 283=&gt;283, 284=&gt;284, 285=&gt;285, 286=&gt;286, 287=&gt;287, 288=&gt;288, 289=&gt;289, 290=&gt;290, 291=&gt;291, 292=&gt;292, 293=&gt;293, 294=&gt;294, 295=&gt;295, 296=&gt;296, 297=&gt;297, 298=&gt;298, 299=&gt;299, 300=&gt;300, 301=&gt;301, 302=&gt;302, 303=&gt;303, 304=&gt;304, 305=&gt;305, 306=&gt;306, 307=&gt;307, 308=&gt;308, 309=&gt;309, 310=&gt;310, 311=&gt;311, 312=&gt;312, 313=&gt;313, 314=&gt;314, 315=&gt;315, 316=&gt;316, 317=&gt;317, 318=&gt;318, 319=&gt;319, 320=&gt;320, 321=&gt;321, 322=&gt;322, 323=&gt;323, 324=&gt;324, 325=&gt;325, 326=&gt;326, 327=&gt;327, 328=&gt;328, 329=&gt;329, 330=&gt;330, 331=&gt;331, 332=&gt;332, 333=&gt;333, 334=&gt;334, 335=&gt;335, 336=&gt;336, 337=&gt;337, 338=&gt;338, 339=&gt;339, 340=&gt;340, 341=&gt;341, 342=&gt;342, 343=&gt;343, 344=&gt;344, 345=&gt;345, 346=&gt;346, 347=&gt;347, 348=&gt;348, 349=&gt;349, 350=&gt;350, 351=&gt;351, 352=&gt;352, 353=&gt;353, 354=&gt;354, 355=&gt;355, 356=&gt;356, 357=&gt;357, 358=&gt;358, 359=&gt;359, 360=&gt;360, 361=&gt;361, 362=&gt;362, 363=&gt;363, 364=&gt;364, 365=&gt;365, 366=&gt;366, 367=&gt;367, 368=&gt;368, 369=&gt;369, 370=&gt;370, 371=&gt;371, 372=&gt;372, 373=&gt;373, 374=&gt;374, 375=&gt;375, 376=&gt;376, 377=&gt;377, 378=&gt;378, 379=&gt;379, 380=&gt;380, 381=&gt;381, 382=&gt;382, 383=&gt;383, 384=&gt;384, 385=&gt;385, 386=&gt;386, 387=&gt;387, 388=&gt;388, 389=&gt;389, 390=&gt;390, 391=&gt;391, 392=&gt;392, 393=&gt;393, 394=&gt;394, 395=&gt;395, 396=&gt;396, 397=&gt;397, 398=&gt;398, 399=&gt;399, 400=&gt;400, 401=&gt;401, 402=&gt;402, 403=&gt;403, 404=&gt;404, 405=&gt;405, 406=&gt;406, 407=&gt;407, 408=&gt;408, 409=&gt;409, 410=&gt;410, 411=&gt;411, 412=&gt;412, 413=&gt;413, 414=&gt;414, 415=&gt;415, 416=&gt;416, 417=&gt;417, 418=&gt;418, 419=&gt;419, 420=&gt;420, 421=&gt;421, 422=&gt;422, 423=&gt;423, 424=&gt;424, 425=&gt;425, 426=&gt;426, 427=&gt;427, 428=&gt;428, 429=&gt;429, 430=&gt;430, 431=&gt;431, 432=&gt;432, 433=&gt;433, 434=&gt;434, 435=&gt;435, 436=&gt;436, 437=&gt;437, 438=&gt;438, 439=&gt;439, 440=&gt;440, 441=&gt;441, 442=&gt;442, 443=&gt;443, 444=&gt;444, 445=&gt;445, 446=&gt;446, 447=&gt;447, 448=&gt;448, 449=&gt;449, 450=&gt;450, 451=&gt;451, 452=&gt;452, 453=&gt;453, 454=&gt;454, 455=&gt;455, 456=&gt;456, 457=&gt;457, 458=&gt;458, 459=&gt;459, 460=&gt;460, 461=&gt;461, 462=&gt;462, 463=&gt;463, 464=&gt;464, 465=&gt;465, 466=&gt;466, 467=&gt;467, 468=&gt;468, 469=&gt;469, 470=&gt;470, 471=&gt;471, 472=&gt;472, 473=&gt;473, 474=&gt;474, 475=&gt;475, 476=&gt;476, 477=&gt;477, 478=&gt;478, 479=&gt;479, 480=&gt;480, 481=&gt;481, 482=&gt;482, 483=&gt;483, 484=&gt;484, 485=&gt;485, 486=&gt;486, 487=&gt;487, 488=&gt;488, 489=&gt;489, 490=&gt;490, 491=&gt;491, 492=&gt;492, 493=&gt;493, 494=&gt;494, 495=&gt;495, 496=&gt;496, 497=&gt;497, 498=&gt;498, 499=&gt;499, 500=&gt;500,}</div><div class='add'>+loop_count: 60000</div><div class='head'>diff --git a/benchmark/vm_block.yml b/benchmark/vm_block.yml<br/>new file mode 100644<br/>index 0000000000..68b3e40bf5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_block.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_block.yml</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def m</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_block: |</div><div class='add'>+    m{</div><div class='add'>+    }</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_block_handler.yml b/benchmark/vm_block_handler.yml<br/>new file mode 100644<br/>index 0000000000..461d7953ad<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_block_handler.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_block_handler.yml</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+# :FIXME: is there a way to benchmark block_handler_type_ifunc?</div><div class='add'>+</div><div class='add'>+prelude: |</div><div class='add'>+  p = proc{_1}</div><div class='add'>+  o = Object.new</div><div class='add'>+  def o.each</div><div class='add'>+    i = 0</div><div class='add'>+    while i &lt; 3_000_000 do</div><div class='add'>+      yield i</div><div class='add'>+      i += 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  - name: block_handler_type_iseq</div><div class='add'>+    script: |</div><div class='add'>+      o.each{_1}</div><div class='add'>+</div><div class='add'>+  - name: block_handler_type_symbol</div><div class='add'>+    script: |</div><div class='add'>+      o.each(&amp;:itself)</div><div class='add'>+</div><div class='add'>+  - name: block_handler_type_proc</div><div class='add'>+    script: |</div><div class='add'>+      o.each(&amp;p)</div><div class='add'>+</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm_blockparam.yml b/benchmark/vm_blockparam.yml<br/>new file mode 100644<br/>index 0000000000..5e5a0170a2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_blockparam.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_blockparam.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def m &amp;b</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_blockparam: |</div><div class='add'>+    m{}</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_blockparam_call.yml b/benchmark/vm_blockparam_call.yml<br/>new file mode 100644<br/>index 0000000000..a7d8d366ea<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_blockparam_call.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_blockparam_call.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def m &amp;b</div><div class='add'>+    b.call</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_blockparam_call: |</div><div class='add'>+    m{}</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_blockparam_pass.yml b/benchmark/vm_blockparam_pass.yml<br/>new file mode 100644<br/>index 0000000000..841f5e7a63<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_blockparam_pass.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_blockparam_pass.yml</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def bp_yield</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def bp_pass &amp;b</div><div class='add'>+    bp_yield &amp;b</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_blockparam_pass: |</div><div class='add'>+    bp_pass{}</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_blockparam_yield.yml b/benchmark/vm_blockparam_yield.yml<br/>new file mode 100644<br/>index 0000000000..8ea9b46ed2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_blockparam_yield.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_blockparam_yield.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def bp_yield &amp;b</div><div class='add'>+    yield</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_blockparam_yield: |</div><div class='add'>+    bp_yield{}</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_case.yml b/benchmark/vm_case.yml<br/>new file mode 100644<br/>index 0000000000..b26a491a15<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_case.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_case.yml</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_case: |</div><div class='add'>+    case :foo</div><div class='add'>+    when :bar</div><div class='add'>+      raise</div><div class='add'>+    when :baz</div><div class='add'>+      raise</div><div class='add'>+    when :boo</div><div class='add'>+      raise</div><div class='add'>+    when :foo</div><div class='add'>+      # noop</div><div class='add'>+    end</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_case_classes.yml b/benchmark/vm_case_classes.yml<br/>new file mode 100644<br/>index 0000000000..cacc4f0464<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_case_classes.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_case_classes.yml</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_case_classes: |</div><div class='add'>+    case :foo</div><div class='add'>+    when Hash</div><div class='add'>+      raise</div><div class='add'>+    when Array</div><div class='add'>+      raise</div><div class='add'>+    end</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_case_lit.yml b/benchmark/vm_case_lit.yml<br/>new file mode 100644<br/>index 0000000000..9f91801544<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_case_lit.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_case_lit.yml</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+# loop_count is not utilized since `i` is involved in the script</div><div class='add'>+benchmark:</div><div class='add'>+  vm_case_lit: |</div><div class='add'>+    i = 0</div><div class='add'>+    @ret = [ "foo", true, false, :sym, 6, nil, 0.1, 0xffffffffffffffff ]</div><div class='add'>+    def foo(i)</div><div class='add'>+      @ret[i % @ret.size]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    while i&lt;6_000_000</div><div class='add'>+      case foo(i)</div><div class='add'>+      when "foo" then :foo</div><div class='add'>+      when true then true</div><div class='add'>+      when false then false</div><div class='add'>+      when :sym then :sym</div><div class='add'>+      when 6 then :fix</div><div class='add'>+      when nil then nil</div><div class='add'>+      when 0.1 then :float</div><div class='add'>+      when 0xffffffffffffffff then :big</div><div class='add'>+      end</div><div class='add'>+      i += 1</div><div class='add'>+    end</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm3_clearmethodcache.rb b/benchmark/vm_clearmethodcache.rb<br/>index 9661323cd2..9661323cd2 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/vm3_clearmethodcache.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm3_clearmethodcache.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_clearmethodcache.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_clearmethodcache.rb</a></div><div class='head'>diff --git a/benchmark/vm_const.yml b/benchmark/vm_const.yml<br/>new file mode 100644<br/>index 0000000000..8939ca0cd3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_const.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_const.yml</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+prelude: |</div><div class='add'>+  Const = 1</div><div class='add'>+  A = B = C = D = E = F = G = H = I = J = K = L = M = N = O = P = Q = R = S = T = U = V = W = X = Y = Z = 1</div><div class='add'>+  def foo</div><div class='add'>+    A; B; C; D; E; F; G; H; I; J; K; L; M; N; O; P; Q; R; S; T; U; V; W; X; Y; Z</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_const: |</div><div class='add'>+    j = Const</div><div class='add'>+    k = Const</div><div class='add'>+  vm_const_many: |</div><div class='add'>+    foo</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_cvar.yml b/benchmark/vm_cvar.yml<br/>new file mode 100644<br/>index 0000000000..1d0e161829<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_cvar.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_cvar.yml</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class A</div><div class='add'>+    @@foo = 1</div><div class='add'>+</div><div class='add'>+    def self.foo</div><div class='add'>+      @@foo</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    ("A".."Z").each do |module_name|</div><div class='add'>+      eval &lt;&lt;-EOM</div><div class='add'>+        module #{module_name}</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        include #{module_name}</div><div class='add'>+      EOM</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_cvar: A.foo</div><div class='add'>+loop_count: 600000</div><div class='head'>diff --git a/benchmark/vm_defined_method.yml b/benchmark/vm_defined_method.yml<br/>new file mode 100644<br/>index 0000000000..347e0cfd33<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_defined_method.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_defined_method.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class Object</div><div class='add'>+    define_method(:m){}</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_defined_method: |</div><div class='add'>+    m; m; m; m; m; m; m; m;</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_dstr.yml b/benchmark/vm_dstr.yml<br/>new file mode 100644<br/>index 0000000000..30c7a3193c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_dstr.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_dstr.yml</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+prelude: |</div><div class='add'>+  x = y = 'z'</div><div class='add'>+benchmark:</div><div class='add'>+  vm_dstr: |</div><div class='add'>+    str = "foo#{x}bar#{y}baz"</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_dstr_ary.rb b/benchmark/vm_dstr_ary.rb<br/>new file mode 100644<br/>index 0000000000..1d3aa3b97b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_dstr_ary.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_dstr_ary.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+i = 0</div><div class='add'>+x = y = []</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  str = "foo#{x}bar#{y}baz"</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/vm_dstr_bool.rb b/benchmark/vm_dstr_bool.rb<br/>new file mode 100644<br/>index 0000000000..631ca54755<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_dstr_bool.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_dstr_bool.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+i = 0</div><div class='add'>+x = true</div><div class='add'>+y = false</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  str = "foo#{x}bar#{y}baz"</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/vm_dstr_class_module.rb b/benchmark/vm_dstr_class_module.rb<br/>new file mode 100644<br/>index 0000000000..becf0861c7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_dstr_class_module.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_dstr_class_module.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+i = 0</div><div class='add'>+class A; end unless defined?(A)</div><div class='add'>+module B; end unless defined?(B)</div><div class='add'>+x = A</div><div class='add'>+y = B</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  str = "foo#{x}bar#{y}baz"</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/vm_dstr_digit.rb b/benchmark/vm_dstr_digit.rb<br/>new file mode 100644<br/>index 0000000000..caaa395192<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_dstr_digit.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_dstr_digit.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+i = 0</div><div class='add'>+x = 0</div><div class='add'>+y = 9</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  str = "foo#{x}bar#{y}baz"</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/vm_dstr_int.rb b/benchmark/vm_dstr_int.rb<br/>new file mode 100644<br/>index 0000000000..ed380d7595<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_dstr_int.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_dstr_int.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+i = 0</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  str = "foo#{i}bar#{i}baz"</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/vm_dstr_nil.rb b/benchmark/vm_dstr_nil.rb<br/>new file mode 100644<br/>index 0000000000..ec4f5d6c67<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_dstr_nil.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_dstr_nil.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+i = 0</div><div class='add'>+x = y = nil</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  str = "foo#{x}bar#{y}baz"</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/vm_dstr_obj.rb b/benchmark/vm_dstr_obj.rb<br/>new file mode 100644<br/>index 0000000000..fb78637ead<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_dstr_obj.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_dstr_obj.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+i = 0</div><div class='add'>+x = y = Object.new</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  str = "foo#{x}bar#{y}baz"</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/vm_dstr_obj_def.rb b/benchmark/vm_dstr_obj_def.rb<br/>new file mode 100644<br/>index 0000000000..99ff7b98fb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_dstr_obj_def.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_dstr_obj_def.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+i = 0</div><div class='add'>+o = Object.new</div><div class='add'>+def o.to_s; -""; end</div><div class='add'>+x = y = o</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  str = "foo#{x}bar#{y}baz"</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/vm_dstr_str.rb b/benchmark/vm_dstr_str.rb<br/>new file mode 100644<br/>index 0000000000..45fc107892<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_dstr_str.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_dstr_str.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+i = 0</div><div class='add'>+x = y = ""</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  str = "foo#{x}bar#{y}baz"</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/vm_dstr_sym.rb b/benchmark/vm_dstr_sym.rb<br/>new file mode 100644<br/>index 0000000000..484b8f8150<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_dstr_sym.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_dstr_sym.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+i = 0</div><div class='add'>+x = y = :z</div><div class='add'>+while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+  i += 1</div><div class='add'>+  str = "foo#{x}bar#{y}baz"</div><div class='add'>+end</div><div class='head'>diff --git a/benchmark/vm_ensure.yml b/benchmark/vm_ensure.yml<br/>new file mode 100644<br/>index 0000000000..4ea62f30de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ensure.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ensure.yml</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+# Not utilizing loop_count since using it for this is too unstable for now</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ensure: |</div><div class='add'>+    i = 0</div><div class='add'>+    while i&lt;30_000_000</div><div class='add'>+      i += 1</div><div class='add'>+      begin</div><div class='add'>+        begin</div><div class='add'>+        ensure</div><div class='add'>+        end</div><div class='add'>+      ensure</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm_eval.yml b/benchmark/vm_eval.yml<br/>new file mode 100644<br/>index 0000000000..7ba1a8d1de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_eval.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_eval.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_eval: |</div><div class='add'>+    eval("1")</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_fiber_allocate.yml b/benchmark/vm_fiber_allocate.yml<br/>new file mode 100644<br/>index 0000000000..b5a54e1ddf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_fiber_allocate.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_fiber_allocate.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  # Disable GC to see raw throughput:</div><div class='add'>+  GC.disable</div><div class='add'>+benchmark:</div><div class='add'>+  vm_fiber_allocate: |</div><div class='add'>+    fiber = Fiber.new{Fiber.yield}</div><div class='add'>+    fiber.resume</div><div class='add'>+loop_count: 100000</div><div class='head'>diff --git a/benchmark/vm_fiber_count.yml b/benchmark/vm_fiber_count.yml<br/>new file mode 100644<br/>index 0000000000..b83d3152d4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_fiber_count.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_fiber_count.yml</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+# On Linux, you will need to increase the maximum number of memory maps:</div><div class='add'>+# sudo sysctl -w vm.max_map_count=200000</div><div class='add'>+prelude: |</div><div class='add'>+  fibers = []</div><div class='add'>+benchmark:</div><div class='add'>+  vm_fiber_count: |</div><div class='add'>+    fiber = Fiber.new{Fiber.yield}</div><div class='add'>+    fibers &lt;&lt; fiber</div><div class='add'>+    fiber.resume</div><div class='add'>+loop_count: 100000</div><div class='head'>diff --git a/benchmark/vm_fiber_reuse.yml b/benchmark/vm_fiber_reuse.yml<br/>new file mode 100644<br/>index 0000000000..4ca41085b1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_fiber_reuse.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_fiber_reuse.yml</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+prelude: |</div><div class='add'>+  GC.disable</div><div class='add'>+  fibers = []</div><div class='add'>+benchmark:</div><div class='add'>+  vm_fiber_reuse: |</div><div class='add'>+    1024.times do</div><div class='add'>+      fiber = Fiber.new{Fiber.yield}</div><div class='add'>+      fibers &lt;&lt; fiber</div><div class='add'>+      fiber.resume</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    fibers.clear</div><div class='add'>+    GC.start</div><div class='add'>+loop_count: 200</div><div class='head'>diff --git a/benchmark/vm_fiber_reuse_gc.yml b/benchmark/vm_fiber_reuse_gc.yml<br/>new file mode 100644<br/>index 0000000000..892622f121<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_fiber_reuse_gc.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_fiber_reuse_gc.yml</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+# https://bugs.ruby-lang.org/issues/16009</div><div class='add'>+prelude: |</div><div class='add'>+  fibers = []</div><div class='add'>+benchmark:</div><div class='add'>+  vm_fiber_reuse_gc: |</div><div class='add'>+    2000.times do</div><div class='add'>+      fiber = Fiber.new{Fiber.yield}</div><div class='add'>+      fibers &lt;&lt; fiber</div><div class='add'>+      fiber.resume</div><div class='add'>+    end</div><div class='add'>+    fibers.clear</div><div class='add'>+loop_count: 100</div><div class='head'>diff --git a/benchmark/vm_fiber_switch.yml b/benchmark/vm_fiber_switch.yml<br/>new file mode 100644<br/>index 0000000000..3de36b66eb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_fiber_switch.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_fiber_switch.yml</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+prelude: |</div><div class='add'>+  # based on benchmark for [ruby-core:65518] [Feature #10341] by Knut Franke</div><div class='add'>+  fib = Fiber.new do</div><div class='add'>+    loop { Fiber.yield }</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_fiber_switch: |</div><div class='add'>+    fib.resume</div><div class='add'>+loop_count: 20000000</div><div class='head'>diff --git a/benchmark/vm_float_simple.yml b/benchmark/vm_float_simple.yml<br/>new file mode 100644<br/>index 0000000000..92f5fd52ab<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_float_simple.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_float_simple.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  f = 0.0</div><div class='add'>+benchmark:</div><div class='add'>+  vm_float_simple: |</div><div class='add'>+    f += 0.1; f -= 0.1</div><div class='add'>+    f += 0.1; f -= 0.1</div><div class='add'>+    f += 0.1; f -= 0.1</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_freezeobj.yml b/benchmark/vm_freezeobj.yml<br/>new file mode 100644<br/>index 0000000000..69a795a354<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_freezeobj.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_freezeobj.yml</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+prelude: |</div><div class='add'>+ objs = 100000.times.map { Object.new }</div><div class='add'>+benchmark:</div><div class='add'>+  vm_freeze_obj: |</div><div class='add'>+    objs.map(&amp;:freeze)</div><div class='add'>+loop_count: 600</div><div class='head'>diff --git a/benchmark/vm_freezestring.yml b/benchmark/vm_freezestring.yml<br/>new file mode 100644<br/>index 0000000000..facc9aa043<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_freezestring.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_freezestring.yml</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class String</div><div class='add'>+    def freeze</div><div class='add'>+      -self</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_freezestring: |</div><div class='add'>+    "tXnL1BP5T1WPXMjuFNLQtallEtRcay1t2lHtJSrlVsDgvunlbtfpr/DGdH0NGYE9".freeze</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm3_gc.rb b/benchmark/vm_gc.rb<br/>index e668026915..e668026915 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/vm3_gc.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm3_gc.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc.rb</a></div><div class='head'>diff --git a/benchmark/vm3_gc_old_full.rb b/benchmark/vm_gc_old_full.rb<br/>index cfdfc8c5a5..cfdfc8c5a5 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/vm3_gc_old_full.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm3_gc_old_full.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc_old_full.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc_old_full.rb</a></div><div class='head'>diff --git a/benchmark/vm3_gc_old_immediate.rb b/benchmark/vm_gc_old_immediate.rb<br/>index ad22feb655..ad22feb655 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/vm3_gc_old_immediate.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm3_gc_old_immediate.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc_old_immediate.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc_old_immediate.rb</a></div><div class='head'>diff --git a/benchmark/vm3_gc_old_lazy.rb b/benchmark/vm_gc_old_lazy.rb<br/>index b74d44baf1..b74d44baf1 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/vm3_gc_old_lazy.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm3_gc_old_lazy.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc_old_lazy.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc_old_lazy.rb</a></div><div class='head'>diff --git a/benchmark/vm_gc_short_lived.yml b/benchmark/vm_gc_short_lived.yml<br/>new file mode 100644<br/>index 0000000000..29c803fee3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc_short_lived.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc_short_lived.yml</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_gc_short_lived: |</div><div class='add'>+    a = '' # short-lived String</div><div class='add'>+    b = ''</div><div class='add'>+    c = ''</div><div class='add'>+    d = ''</div><div class='add'>+    e = ''</div><div class='add'>+    f = ''</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_gc_short_with_complex_long.yml b/benchmark/vm_gc_short_with_complex_long.yml<br/>new file mode 100644<br/>index 0000000000..4b6c3ed7b9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc_short_with_complex_long.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc_short_with_complex_long.yml</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def nested_hash h, n</div><div class='add'>+    if n == 0</div><div class='add'>+      ''</div><div class='add'>+    else</div><div class='add'>+      10.times{</div><div class='add'>+        h[Object.new] = nested_hash(h, n-1)</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  long_lived = Hash.new</div><div class='add'>+  nested_hash long_lived, 6</div><div class='add'>+</div><div class='add'>+  GC.start</div><div class='add'>+  GC.start</div><div class='add'>+benchmark:</div><div class='add'>+  vm_gc_short_with_complex_long: |</div><div class='add'>+    a = '' # short-lived String</div><div class='add'>+    b = ''</div><div class='add'>+    c = ''</div><div class='add'>+    d = ''</div><div class='add'>+    e = ''</div><div class='add'>+    f = ''</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_gc_short_with_long.yml b/benchmark/vm_gc_short_with_long.yml<br/>new file mode 100644<br/>index 0000000000..03ba0f95a9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc_short_with_long.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc_short_with_long.yml</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+prelude: |</div><div class='add'>+  long_lived = Array.new(1_000_000){|i| "#{i}"}</div><div class='add'>+  GC.start</div><div class='add'>+  GC.start</div><div class='add'>+benchmark:</div><div class='add'>+  vm_gc_short_with_long: |</div><div class='add'>+    a = '' # short-lived String</div><div class='add'>+    b = ''</div><div class='add'>+    c = ''</div><div class='add'>+    d = ''</div><div class='add'>+    e = ''</div><div class='add'>+    f = ''</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_gc_short_with_symbol.yml b/benchmark/vm_gc_short_with_symbol.yml<br/>new file mode 100644<br/>index 0000000000..129b8bf4ed<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc_short_with_symbol.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc_short_with_symbol.yml</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+prelude: |</div><div class='add'>+  50_000.times{|i| sym = "sym#{i}".to_sym}</div><div class='add'>+  GC.start</div><div class='add'>+  GC.start</div><div class='add'>+benchmark:</div><div class='add'>+  vm_gc_short_with_symbol: |</div><div class='add'>+    a = '' # short-lived String</div><div class='add'>+    b = ''</div><div class='add'>+    c = ''</div><div class='add'>+    d = ''</div><div class='add'>+    e = ''</div><div class='add'>+    f = ''</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_gc_wb_ary.yml b/benchmark/vm_gc_wb_ary.yml<br/>new file mode 100644<br/>index 0000000000..e3293e72d0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc_wb_ary.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc_wb_ary.yml</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+prelude: |</div><div class='add'>+  short_lived_ary = []</div><div class='add'>+</div><div class='add'>+  if RUBY_VERSION &gt;= "2.2.0"</div><div class='add'>+    GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  short_lived = ''</div><div class='add'>+benchmark:</div><div class='add'>+  vm_gc_wb_ary: |</div><div class='add'>+    short_lived_ary[0] = short_lived # write barrier</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_gc_wb_ary_promoted.yml b/benchmark/vm_gc_wb_ary_promoted.yml<br/>new file mode 100644<br/>index 0000000000..003995945b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc_wb_ary_promoted.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc_wb_ary_promoted.yml</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+prelude: |</div><div class='add'>+  long_lived = []</div><div class='add'>+</div><div class='add'>+  if RUBY_VERSION &gt; "2.2.0"</div><div class='add'>+    3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }</div><div class='add'>+  elsif</div><div class='add'>+    GC.start</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  short_lived = ''</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  vm_gc_wb_ary_promoted: |</div><div class='add'>+    long_lived[0] = short_lived # write barrier</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_gc_wb_obj.yml b/benchmark/vm_gc_wb_obj.yml<br/>new file mode 100644<br/>index 0000000000..a2a2ce2d18<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc_wb_obj.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc_wb_obj.yml</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    attr_accessor :foo</div><div class='add'>+  end</div><div class='add'>+  short_lived_obj = C.new</div><div class='add'>+</div><div class='add'>+  if RUBY_VERSION &gt;= "2.2.0"</div><div class='add'>+    GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  short_lived = ''</div><div class='add'>+benchmark:</div><div class='add'>+  vm_gc_wb_obj: |</div><div class='add'>+    short_lived_obj.foo = short_lived # write barrier</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_gc_wb_obj_promoted.yml b/benchmark/vm_gc_wb_obj_promoted.yml<br/>new file mode 100644<br/>index 0000000000..00a454ba72<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_gc_wb_obj_promoted.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_gc_wb_obj_promoted.yml</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    attr_accessor :foo</div><div class='add'>+  end</div><div class='add'>+  long_lived = C.new</div><div class='add'>+</div><div class='add'>+  if RUBY_VERSION &gt;= "2.2.0"</div><div class='add'>+    3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }</div><div class='add'>+  elsif</div><div class='add'>+    GC.start</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  short_lived = ''</div><div class='add'>+benchmark:</div><div class='add'>+  vm_gc_wb_obj_promoted: |</div><div class='add'>+    long_lived.foo = short_lived # write barrier</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_iclass_super.yml b/benchmark/vm_iclass_super.yml<br/>new file mode 100644<br/>index 0000000000..21bb7db247<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_iclass_super.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_iclass_super.yml</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    def m</div><div class='add'>+      1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    ("A".."M").each do |module_name|</div><div class='add'>+      eval &lt;&lt;-EOM</div><div class='add'>+          module #{module_name}</div><div class='add'>+            def m; super; end</div><div class='add'>+          end</div><div class='add'>+          prepend #{module_name}</div><div class='add'>+      EOM</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  obj = C.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_iclass_super: obj.m</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_ivar.yml b/benchmark/vm_ivar.yml<br/>new file mode 100644<br/>index 0000000000..119531d5ef<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar.yml</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+prelude: "@a = 1\n"</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar: |</div><div class='add'>+    j = @a</div><div class='add'>+    k = @a</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_ivar_embedded_obj_init.yml b/benchmark/vm_ivar_embedded_obj_init.yml<br/>new file mode 100644<br/>index 0000000000..74fe20a630<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_embedded_obj_init.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_embedded_obj_init.yml</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    def set_ivars</div><div class='add'>+      @a = nil</div><div class='add'>+      @b = nil</div><div class='add'>+      @c = nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  c = C.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_embedded_obj_init: |</div><div class='add'>+    c.set_ivars</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_ivar_extended_obj_init.yml b/benchmark/vm_ivar_extended_obj_init.yml<br/>new file mode 100644<br/>index 0000000000..f054bab282<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_extended_obj_init.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_extended_obj_init.yml</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    def set_ivars</div><div class='add'>+      @a = nil</div><div class='add'>+      @b = nil</div><div class='add'>+      @c = nil</div><div class='add'>+      @d = nil</div><div class='add'>+      @e = nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  c = C.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_extended_obj_init: |</div><div class='add'>+    c.set_ivars</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_ivar_generic_get.yml b/benchmark/vm_ivar_generic_get.yml<br/>new file mode 100644<br/>index 0000000000..dae2d37671<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_generic_get.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_generic_get.yml</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C &lt; Array</div><div class='add'>+    attr_reader :a, :b, :c</div><div class='add'>+    def initialize</div><div class='add'>+      @a = nil</div><div class='add'>+      @b = nil</div><div class='add'>+      @c = nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  c = C.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_generic_get: |</div><div class='add'>+    c.a</div><div class='add'>+    c.b</div><div class='add'>+    c.c</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_ivar_generic_set.yml b/benchmark/vm_ivar_generic_set.yml<br/>new file mode 100644<br/>index 0000000000..102a6577fb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_generic_set.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_generic_set.yml</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C &lt; Array</div><div class='add'>+    def set_ivars</div><div class='add'>+      @a = nil</div><div class='add'>+      @b = nil</div><div class='add'>+      @c = nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  c = C.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_generic_set: |</div><div class='add'>+    c.set_ivars</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_ivar_get.yml b/benchmark/vm_ivar_get.yml<br/>new file mode 100644<br/>index 0000000000..9174af6965<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_get.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_get.yml</a></div><div class='hunk'>@@ -0,0 +1,37 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class Example</div><div class='add'>+    def initialize</div><div class='add'>+      @v0 = 1</div><div class='add'>+      @v1 = 2</div><div class='add'>+      @v3 = 3</div><div class='add'>+      @levar = 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def get_value_loop</div><div class='add'>+      sum = 0</div><div class='add'>+</div><div class='add'>+      i = 0</div><div class='add'>+      while i &lt; 1000000</div><div class='add'>+        # 10 times to de-emphasize loop overhead</div><div class='add'>+        sum += @levar</div><div class='add'>+        sum += @levar</div><div class='add'>+        sum += @levar</div><div class='add'>+        sum += @levar</div><div class='add'>+        sum += @levar</div><div class='add'>+        sum += @levar</div><div class='add'>+        sum += @levar</div><div class='add'>+        sum += @levar</div><div class='add'>+        sum += @levar</div><div class='add'>+        sum += @levar</div><div class='add'>+        i += 1</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return sum</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  obj = Example.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_get: |</div><div class='add'>+    obj.get_value_loop</div><div class='add'>+loop_count: 100</div><div class='head'>diff --git a/benchmark/vm_ivar_get_unintialized.yml b/benchmark/vm_ivar_get_unintialized.yml<br/>new file mode 100644<br/>index 0000000000..a1ccfb06ce<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_get_unintialized.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_get_unintialized.yml</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class Example</div><div class='add'>+    def read</div><div class='add'>+      @uninitialized</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  obj = Example.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_get_uninitialized: |</div><div class='add'>+    obj.read</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_ivar_lazy_set.yml b/benchmark/vm_ivar_lazy_set.yml<br/>new file mode 100644<br/>index 0000000000..7372ffcfbc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_lazy_set.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_lazy_set.yml</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class Example</div><div class='add'>+    def lazy_set</div><div class='add'>+      @uninitialized ||= 123</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  objs = 10000000.times.map { Example.new }</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_lazy_set: |</div><div class='add'>+    objs.each(&amp;:lazy_set)</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm_ivar_of_class.yml b/benchmark/vm_ivar_of_class.yml<br/>new file mode 100644<br/>index 0000000000..172e28b2fd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_of_class.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_of_class.yml</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    @a = 1</div><div class='add'>+    def self.a</div><div class='add'>+      _a = @a; _a = @a; _a = @a; _a = @a; _a = @a;</div><div class='add'>+      _a = @a; _a = @a; _a = @a; _a = @a; _a = @a;</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_of_class: |</div><div class='add'>+    a = C.a</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_ivar_of_class_set.yml b/benchmark/vm_ivar_of_class_set.yml<br/>new file mode 100644<br/>index 0000000000..2ea5199423<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_of_class_set.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_of_class_set.yml</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    @a = 1</div><div class='add'>+    def self.a o</div><div class='add'>+      @a = o; @a = o; @a = o; @a = o; @a = o; @a = o;</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_of_class_set: |</div><div class='add'>+    a = C.a(nil)</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_ivar_set.yml b/benchmark/vm_ivar_set.yml<br/>new file mode 100644<br/>index 0000000000..8bbb60043b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_set.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_set.yml</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_set: |</div><div class='add'>+    @a = 1</div><div class='add'>+    @b = 2</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_ivar_set_on_instance.yml b/benchmark/vm_ivar_set_on_instance.yml<br/>new file mode 100644<br/>index 0000000000..91857b7742<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_set_on_instance.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_set_on_instance.yml</a></div><div class='hunk'>@@ -0,0 +1,35 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class TheClass</div><div class='add'>+    def initialize</div><div class='add'>+      @v0 = 1</div><div class='add'>+      @v1 = 2</div><div class='add'>+      @v3 = 3</div><div class='add'>+      @levar = 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def set_value_loop</div><div class='add'>+      # 1M</div><div class='add'>+      i = 0</div><div class='add'>+      while i &lt; 1000000</div><div class='add'>+        # 10 times to de-emphasize loop overhead</div><div class='add'>+        @levar = i</div><div class='add'>+        @levar = i</div><div class='add'>+        @levar = i</div><div class='add'>+        @levar = i</div><div class='add'>+        @levar = i</div><div class='add'>+        @levar = i</div><div class='add'>+        @levar = i</div><div class='add'>+        @levar = i</div><div class='add'>+        @levar = i</div><div class='add'>+        @levar = i</div><div class='add'>+        i += 1</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  obj = TheClass.new</div><div class='add'>+</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_set_on_instance: |</div><div class='add'>+    obj.set_value_loop</div><div class='add'>+loop_count: 100</div><div class='head'>diff --git a/benchmark/vm_ivar_set_subclass.yml b/benchmark/vm_ivar_set_subclass.yml<br/>new file mode 100644<br/>index 0000000000..bc8bf5bf6b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_ivar_set_subclass.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_ivar_set_subclass.yml</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class A</div><div class='add'>+    def set_ivars</div><div class='add'>+      @a = nil</div><div class='add'>+      @b = nil</div><div class='add'>+      @c = nil</div><div class='add'>+      @d = nil</div><div class='add'>+      @e = nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class B &lt; A; end</div><div class='add'>+  class C &lt; A; end</div><div class='add'>+</div><div class='add'>+  b = B.new</div><div class='add'>+  c = C.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_ivar_init_subclass: |</div><div class='add'>+    b.set_ivars</div><div class='add'>+    c.set_ivars</div><div class='add'>+loop_count: 3000000</div><div class='head'>diff --git a/benchmark/vm_length.yml b/benchmark/vm_length.yml<br/>new file mode 100644<br/>index 0000000000..5fd94e7d86<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_length.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_length.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  a = 'abc'</div><div class='add'>+  b = [1, 2, 3]</div><div class='add'>+benchmark:</div><div class='add'>+  vm_length: |</div><div class='add'>+    a.length</div><div class='add'>+    b.length</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_lvar_cond_set.yml b/benchmark/vm_lvar_cond_set.yml<br/>new file mode 100644<br/>index 0000000000..1845f9d12e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_lvar_cond_set.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_lvar_cond_set.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_lvar_cond_set: |</div><div class='add'>+    a ||= 1</div><div class='add'>+    b ||= 1</div><div class='add'>+    c ||= 1</div><div class='add'>+    d ||= 1</div><div class='add'>+    nil</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_lvar_init.yml b/benchmark/vm_lvar_init.yml<br/>new file mode 100644<br/>index 0000000000..70a9b1c0ca<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_lvar_init.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_lvar_init.yml</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+# while loop cost is not removed because `i` is used in the script</div><div class='add'>+benchmark:</div><div class='add'>+  vm_lvar_init: |</div><div class='add'>+    def m v</div><div class='add'>+      unless v</div><div class='add'>+        # unreachable code</div><div class='add'>+        v1 = v2 = v3 = v4 = v5 = v6 = v7 = v8 = v9 = v10 =</div><div class='add'>+        v11 = v12 = v13 = v14 = v15 = v16 = v17 = v18 = v19 = v20 =</div><div class='add'>+        v21 = v22 = v23 = v24 = v25 = v26 = v27 = v28 = v29 = v30 =</div><div class='add'>+        v31 = v32 = v33 = v34 = v35 = v36 = v37 = v38 = v39 = v40 =</div><div class='add'>+        v41 = v42 = v43 = v44 = v45 = v46 = v47 = v48 = v49 = v50 = 1</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    i = 0</div><div class='add'>+</div><div class='add'>+    while i&lt;30_000_000</div><div class='add'>+      i += 1</div><div class='add'>+      m i</div><div class='add'>+    end</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm_lvar_set.yml b/benchmark/vm_lvar_set.yml<br/>new file mode 100644<br/>index 0000000000..f29f763d81<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_lvar_set.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_lvar_set.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_lvar_set: |</div><div class='add'>+    a = b = c = d = e = f = g = h = j = k = l = m = n = o = p = q = r = 1</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_method.yml b/benchmark/vm_method.yml<br/>new file mode 100644<br/>index 0000000000..d45e4ec572<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_method.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_method.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def m</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_method: |</div><div class='add'>+    m; m; m; m; m; m; m; m;</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_method_missing.yml b/benchmark/vm_method_missing.yml<br/>new file mode 100644<br/>index 0000000000..3da456c0bb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_method_missing.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_method_missing.yml</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    def method_missing mid</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  obj = C.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_method_missing: |</div><div class='add'>+    obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m; obj.m;</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_method_with_block.yml b/benchmark/vm_method_with_block.yml<br/>new file mode 100644<br/>index 0000000000..281a481394<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_method_with_block.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_method_with_block.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def m</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_method_with_block: |</div><div class='add'>+    m{}; m{}; m{}; m{}; m{}; m{}; m{}; m{};</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_module_ann_const_set.yml b/benchmark/vm_module_ann_const_set.yml<br/>new file mode 100644<br/>index 0000000000..243229ba4a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_module_ann_const_set.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_module_ann_const_set.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_module_ann_const_set: |</div><div class='add'>+    Module.new.const_set(:X, Module.new)</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_module_const_set.yml b/benchmark/vm_module_const_set.yml<br/>new file mode 100644<br/>index 0000000000..e5a24181a9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_module_const_set.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_module_const_set.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  module M</div><div class='add'>+  end</div><div class='add'>+  $VERBOSE = nil</div><div class='add'>+benchmark:</div><div class='add'>+  vm_module_const_set: |</div><div class='add'>+    M.const_set(:X, Module.new)</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_mutex.yml b/benchmark/vm_mutex.yml<br/>new file mode 100644<br/>index 0000000000..abcf1e28ce<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_mutex.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_mutex.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  require 'thread'</div><div class='add'>+</div><div class='add'>+  m = Thread::Mutex.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_mutex: |</div><div class='add'>+    m.synchronize{}</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_neq.yml b/benchmark/vm_neq.yml<br/>new file mode 100644<br/>index 0000000000..fb04d15ae8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_neq.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_neq.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  obj1 = Object.new</div><div class='add'>+  obj2 = Object.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_neq: |</div><div class='add'>+    obj1 != obj2</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_newlambda.yml b/benchmark/vm_newlambda.yml<br/>new file mode 100644<br/>index 0000000000..0b9787d91a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_newlambda.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_newlambda.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_newlambda: |</div><div class='add'>+    lambda {}</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_not.yml b/benchmark/vm_not.yml<br/>new file mode 100644<br/>index 0000000000..c68dde3c50<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_not.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_not.yml</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+prelude: |</div><div class='add'>+  obj = Object.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_not: |</div><div class='add'>+    !obj</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_poly_method.yml b/benchmark/vm_poly_method.yml<br/>new file mode 100644<br/>index 0000000000..dd2f4e71de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_poly_method.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_poly_method.yml</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+# loop_count is not utilized since `i` is involved in the script</div><div class='add'>+benchmark:</div><div class='add'>+  vm_poly_method: |</div><div class='add'>+    class C1</div><div class='add'>+      def m</div><div class='add'>+        1</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    class C2</div><div class='add'>+      def m</div><div class='add'>+        2</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    o1 = C1.new</div><div class='add'>+    o2 = C2.new</div><div class='add'>+</div><div class='add'>+    i = 0</div><div class='add'>+    while i&lt;6_000_000</div><div class='add'>+      o = (i % 2 == 0) ? o1 : o2</div><div class='add'>+      o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m</div><div class='add'>+      i += 1</div><div class='add'>+    end</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm_poly_method_ov.yml b/benchmark/vm_poly_method_ov.yml<br/>new file mode 100644<br/>index 0000000000..bca1b62729<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_poly_method_ov.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_poly_method_ov.yml</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+# loop_count is not utilized since `i` is involved in the script</div><div class='add'>+benchmark:</div><div class='add'>+  vm_poly_method_ov: |</div><div class='add'>+    class C1</div><div class='add'>+      def m</div><div class='add'>+        1</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    class C2</div><div class='add'>+      def m</div><div class='add'>+        2</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    o1 = C1.new</div><div class='add'>+    o2 = C2.new</div><div class='add'>+</div><div class='add'>+    i = 0</div><div class='add'>+    while i&lt;6_000_000</div><div class='add'>+      o = (i % 2 == 0) ? o1 : o2</div><div class='add'>+    #  o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m</div><div class='add'>+      i += 1</div><div class='add'>+    end</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm_poly_same_method.yml b/benchmark/vm_poly_same_method.yml<br/>new file mode 100644<br/>index 0000000000..6c5404ac84<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_poly_same_method.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_poly_same_method.yml</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+prelude: |</div><div class='add'>+  module AR; end</div><div class='add'>+  class AR::Base</div><div class='add'>+    def create_or_update</div><div class='add'>+      nil</div><div class='add'>+    end</div><div class='add'>+    def save</div><div class='add'>+      create_or_update</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class Foo &lt; AR::Base; end</div><div class='add'>+  class Bar &lt; AR::Base; end</div><div class='add'>+  o1 = Foo.new</div><div class='add'>+  o2 = Bar.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_poly_same_method: |</div><div class='add'>+    o1.save; o2.save;</div><div class='add'>+    o1.save; o2.save;</div><div class='add'>+    o1.save; o2.save;</div><div class='add'>+    o1.save; o2.save;</div><div class='add'>+    o1.save; o2.save;</div><div class='add'>+    o1.save; o2.save;</div><div class='add'>+    o1.save; o2.save;</div><div class='add'>+    o1.save; o2.save;</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_poly_singleton.yml b/benchmark/vm_poly_singleton.yml<br/>new file mode 100644<br/>index 0000000000..c7923160fb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_poly_singleton.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_poly_singleton.yml</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+# loop_count is not utilized since `i` is involved in the script</div><div class='add'>+benchmark:</div><div class='add'>+  vm_poly_singleton: |</div><div class='add'>+    class C1</div><div class='add'>+      def m; 1; end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    o1 = C1.new</div><div class='add'>+    o2 = C1.new</div><div class='add'>+    o2.singleton_class</div><div class='add'>+</div><div class='add'>+    i = 0</div><div class='add'>+    while i&lt;6_000_000 # benchmark loop 2</div><div class='add'>+      o = (i % 2 == 0) ? o1 : o2</div><div class='add'>+      o.m; o.m; o.m; o.m; o.m; o.m; o.m; o.m</div><div class='add'>+      i += 1</div><div class='add'>+    end</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm_proc.yml b/benchmark/vm_proc.yml<br/>new file mode 100644<br/>index 0000000000..2f8de6c272<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_proc.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_proc.yml</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def m &amp;b</div><div class='add'>+    b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  pr = m{</div><div class='add'>+    a = 1</div><div class='add'>+  }</div><div class='add'>+benchmark:</div><div class='add'>+  vm_proc: |</div><div class='add'>+    pr.call</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_raise1.yml b/benchmark/vm_raise1.yml<br/>new file mode 100644<br/>index 0000000000..247d9f70ee<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_raise1.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_raise1.yml</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def rec n</div><div class='add'>+    if n &gt; 0</div><div class='add'>+      rec n-1</div><div class='add'>+    else</div><div class='add'>+      raise</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_raise1: |</div><div class='add'>+    begin</div><div class='add'>+      rec 1</div><div class='add'>+    rescue</div><div class='add'>+      # ignore</div><div class='add'>+    end</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_raise2.yml b/benchmark/vm_raise2.yml<br/>new file mode 100644<br/>index 0000000000..f0fa047b3c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_raise2.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_raise2.yml</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def rec n</div><div class='add'>+    if n &gt; 0</div><div class='add'>+      rec n-1</div><div class='add'>+    else</div><div class='add'>+      raise</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_raise2: |</div><div class='add'>+    begin</div><div class='add'>+      rec 10</div><div class='add'>+    rescue</div><div class='add'>+      # ignore</div><div class='add'>+    end</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_regexp.yml b/benchmark/vm_regexp.yml<br/>new file mode 100644<br/>index 0000000000..2aa3d94dbd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_regexp.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_regexp.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+prelude: |</div><div class='add'>+  str = 'xxxhogexxx'</div><div class='add'>+benchmark:</div><div class='add'>+  vm_regexp: |</div><div class='add'>+    /hoge/ =~ str</div><div class='add'>+  vm_regexp_invert: |</div><div class='add'>+    str =~ /hoge/</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_rescue.yml b/benchmark/vm_rescue.yml<br/>new file mode 100644<br/>index 0000000000..b4a0af521f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_rescue.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_rescue.yml</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_rescue: |</div><div class='add'>+    begin</div><div class='add'>+    rescue</div><div class='add'>+    end</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_send.yml b/benchmark/vm_send.yml<br/>new file mode 100644<br/>index 0000000000..f31bc7ac89<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_send.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_send.yml</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    def m</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  o = C.new</div><div class='add'>+  m = :m</div><div class='add'>+benchmark:</div><div class='add'>+  vm_send: |</div><div class='add'>+    o.__send__ :m</div><div class='add'>+  vm_send_var: |</div><div class='add'>+    o.__send__ m</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_send_cfunc.yml b/benchmark/vm_send_cfunc.yml<br/>new file mode 100644<br/>index 0000000000..b114ac317d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_send_cfunc.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_send_cfunc.yml</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_send_cfunc: self.class</div><div class='add'>+loop_count: 100000000</div><div class='head'>diff --git a/benchmark/vm_simplereturn.yml b/benchmark/vm_simplereturn.yml<br/>new file mode 100644<br/>index 0000000000..c9829cff0b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_simplereturn.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_simplereturn.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def m</div><div class='add'>+    return 1</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_simplereturn: m</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_string_literal.yml b/benchmark/vm_string_literal.yml<br/>new file mode 100644<br/>index 0000000000..64439c7980<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_string_literal.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_string_literal.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_string_literal: |</div><div class='add'>+    x = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_struct_big_aref_hi.yml b/benchmark/vm_struct_big_aref_hi.yml<br/>new file mode 100644<br/>index 0000000000..4cf78970cb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_struct_big_aref_hi.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_struct_big_aref_hi.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+  x = s.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_struct_big_aref_hi: |</div><div class='add'>+    x.z # x[25]</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_struct_big_aref_lo.yml b/benchmark/vm_struct_big_aref_lo.yml<br/>new file mode 100644<br/>index 0000000000..c91af27fa5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_struct_big_aref_lo.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_struct_big_aref_lo.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+  x = s.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_struct_big_aref_lo: |</div><div class='add'>+    x.k # x[10]</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_struct_big_aset.yml b/benchmark/vm_struct_big_aset.yml<br/>new file mode 100644<br/>index 0000000000..69550d14ea<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_struct_big_aset.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_struct_big_aset.yml</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+# loop_count is not utilized since `i` is involved in the script</div><div class='add'>+benchmark:</div><div class='add'>+  vm_struct_big_aset: |</div><div class='add'>+    s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+    x = s.new</div><div class='add'>+    i = 0</div><div class='add'>+    while i&lt;6_000_000</div><div class='add'>+      i += 1</div><div class='add'>+      x.k = i # x[10] = i</div><div class='add'>+    end</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm_struct_big_href_hi.yml b/benchmark/vm_struct_big_href_hi.yml<br/>new file mode 100644<br/>index 0000000000..09b764dd13<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_struct_big_href_hi.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_struct_big_href_hi.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+  x = s.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_struct_big_href_hi: |</div><div class='add'>+    x[:z]</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_struct_big_href_lo.yml b/benchmark/vm_struct_big_href_lo.yml<br/>new file mode 100644<br/>index 0000000000..d2f00b220f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_struct_big_href_lo.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_struct_big_href_lo.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+  x = s.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_struct_big_href_lo: |</div><div class='add'>+    x[:k]</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_struct_big_hset.yml b/benchmark/vm_struct_big_hset.yml<br/>new file mode 100644<br/>index 0000000000..fc45cbee9c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_struct_big_hset.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_struct_big_hset.yml</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+# loop_count is not utilized since `i` is involved in the script</div><div class='add'>+benchmark:</div><div class='add'>+  vm_struct_big_hset: |</div><div class='add'>+    s = Struct.new(*('a'..'z').map { |x| x.to_sym })</div><div class='add'>+    x = s.new</div><div class='add'>+    i = 0</div><div class='add'>+    while i&lt;6_000_000</div><div class='add'>+      i += 1</div><div class='add'>+      x[:k] = i</div><div class='add'>+    end</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm_struct_small_aref.yml b/benchmark/vm_struct_small_aref.yml<br/>new file mode 100644<br/>index 0000000000..5a83251d1e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_struct_small_aref.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_struct_small_aref.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  s = Struct.new(:a, :b, :c)</div><div class='add'>+  x = s.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_struct_small_aref: |</div><div class='add'>+    x.a</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_struct_small_aset.yml b/benchmark/vm_struct_small_aset.yml<br/>new file mode 100644<br/>index 0000000000..74f435f126<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_struct_small_aset.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_struct_small_aset.yml</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+# loop_count is not utilized since `i` is involved in the script</div><div class='add'>+benchmark:</div><div class='add'>+  vm_struct_small_aset: |</div><div class='add'>+    s = Struct.new(:a, :b, :c)</div><div class='add'>+    x = s.new</div><div class='add'>+    i = 0</div><div class='add'>+    while i&lt;6_000_000</div><div class='add'>+      i += 1</div><div class='add'>+      x.a = i</div><div class='add'>+    end</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm_struct_small_href.yml b/benchmark/vm_struct_small_href.yml<br/>new file mode 100644<br/>index 0000000000..6b7d7f39e7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_struct_small_href.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_struct_small_href.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  s = Struct.new(:a, :b, :c)</div><div class='add'>+  x = s.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_struct_small_href: |</div><div class='add'>+    x[:a]</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_struct_small_hset.yml b/benchmark/vm_struct_small_hset.yml<br/>new file mode 100644<br/>index 0000000000..5d43b150de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_struct_small_hset.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_struct_small_hset.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  s = Struct.new(:a, :b, :c)</div><div class='add'>+  x = s.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_struct_small_hset: |</div><div class='add'>+    x[:a] = 1</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_super.yml b/benchmark/vm_super.yml<br/>new file mode 100644<br/>index 0000000000..0d1e965c6e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_super.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_super.yml</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    def m</div><div class='add'>+      1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class CC &lt; C</div><div class='add'>+    def m</div><div class='add'>+      super()</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  obj = CC.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_super: obj.m</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_swap.yml b/benchmark/vm_swap.yml<br/>new file mode 100644<br/>index 0000000000..e824a65e0a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_swap.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_swap.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  a = 1</div><div class='add'>+  b = 2</div><div class='add'>+benchmark:</div><div class='add'>+  vm_swap: |</div><div class='add'>+    a, b = b, a</div><div class='add'>+loop_count: 30000000</div><div class='head'>diff --git a/benchmark/vm_thread_alive_check.yml b/benchmark/vm_thread_alive_check.yml<br/>new file mode 100644<br/>index 0000000000..d21737d3e8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_thread_alive_check.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_thread_alive_check.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_thread_alive_check: |</div><div class='add'>+    t = Thread.new{}</div><div class='add'>+    while t.alive?</div><div class='add'>+      Thread.pass</div><div class='add'>+    end</div><div class='add'>+loop_count: 50_000</div><div class='add'>+</div><div class='head'>diff --git a/benchmark/vm_thread_alive_check1.rb b/benchmark/vm_thread_alive_check1.rb<br/>deleted file mode 100644<br/>index c993accdda..0000000000<br/>--- a/<a href='/ruby.git/tree/benchmark/vm_thread_alive_check1.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_alive_check1.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-5_000.times{</div><div class='del'>-  t = Thread.new{}</div><div class='del'>-  while t.alive?</div><div class='del'>-    Thread.pass</div><div class='del'>-  end</div><div class='del'>-}</div><div class='head'>diff --git a/benchmark/vm_thread_condvar1.rb b/benchmark/vm_thread_condvar1.rb<br/>index cf5706b23e..feed27c3ad 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/vm_thread_condvar1.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_condvar1.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_thread_condvar1.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_thread_condvar1.rb</a></div><div class='hunk'>@@ -1,9 +1,9 @@</div><div class='ctx'> # two threads, two mutex, two condvar ping-pong</div><div class='ctx'> require 'thread'</div><div class='del'>-m1 = Mutex.new</div><div class='del'>-m2 = Mutex.new</div><div class='del'>-cv1 = ConditionVariable.new</div><div class='del'>-cv2 = ConditionVariable.new</div><div class='add'>+m1 = Thread::Mutex.new</div><div class='add'>+m2 = Thread::Mutex.new</div><div class='add'>+cv1 = Thread::ConditionVariable.new</div><div class='add'>+cv2 = Thread::ConditionVariable.new</div><div class='ctx'> max = 100000</div><div class='ctx'> i = 0</div><div class='ctx'> wait = nil</div><div class='head'>diff --git a/benchmark/vm_thread_condvar2.rb b/benchmark/vm_thread_condvar2.rb<br/>index 7c8dc19481..6590c4134b 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/vm_thread_condvar2.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_condvar2.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_thread_condvar2.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_thread_condvar2.rb</a></div><div class='hunk'>@@ -1,16 +1,16 @@</div><div class='ctx'> # many threads, one mutex, many condvars</div><div class='ctx'> require 'thread'</div><div class='del'>-m = Mutex.new</div><div class='del'>-cv1 = ConditionVariable.new</div><div class='del'>-cv2 = ConditionVariable.new</div><div class='add'>+m = Thread::Mutex.new</div><div class='add'>+cv1 = Thread::ConditionVariable.new</div><div class='add'>+cv2 = Thread::ConditionVariable.new</div><div class='ctx'> max = 1000</div><div class='ctx'> n = 100</div><div class='ctx'> waiting = 0</div><div class='ctx'> scvs = []</div><div class='ctx'> waiters = n.times.map do |i|</div><div class='del'>-  start_cv = ConditionVariable.new</div><div class='add'>+  start_cv = Thread::ConditionVariable.new</div><div class='ctx'>   scvs &lt;&lt; start_cv</div><div class='del'>-  start_mtx = Mutex.new</div><div class='add'>+  start_mtx = Thread::Mutex.new</div><div class='ctx'>   start_mtx.synchronize do</div><div class='ctx'>     th = Thread.new(start_mtx, start_cv) do |sm, scv|</div><div class='ctx'>       m.synchronize do</div><div class='head'>diff --git a/benchmark/vm_thread_pass.rb b/benchmark/vm_thread_pass.rb<br/>index b5b3c0bc85..438bd08d45 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/vm_thread_pass.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_pass.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_thread_pass.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_thread_pass.rb</a></div><div class='hunk'>@@ -1,8 +1,8 @@</div><div class='del'>-# Plenty Thtread.pass</div><div class='add'>+# Plenty Thread.pass</div><div class='ctx'> # A performance may depend on GVL implementation.</div><div class='ctx'> </div><div class='del'>-tmax = (ARGV.shift || 2).to_i</div><div class='del'>-lmax = 200_000 / tmax</div><div class='add'>+tmax = (ARGV.shift || 8).to_i</div><div class='add'>+lmax = 400_000 / tmax</div><div class='ctx'> </div><div class='ctx'> (1..tmax).map{</div><div class='ctx'>   Thread.new{</div><div class='head'>diff --git a/benchmark/vm_thread_pass_flood.rb b/benchmark/vm_thread_pass_flood.rb<br/>index a660aafc18..65df8e6154 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/vm_thread_pass_flood.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_pass_flood.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_thread_pass_flood.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_thread_pass_flood.rb</a></div><div class='hunk'>@@ -1,10 +1,10 @@</div><div class='ctx'> # n.b. this is a good test for GVL when pinned to a single CPU</div><div class='ctx'> </div><div class='del'>-1000.times{</div><div class='add'>+5_000.times{</div><div class='ctx'>   Thread.new{loop{Thread.pass}}</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> i = 0</div><div class='del'>-while i&lt;10000</div><div class='add'>+while i&lt;10_000</div><div class='ctx'>   i += 1</div><div class='ctx'> end</div><div class='head'>diff --git a/benchmark/vm_thread_queue.rb b/benchmark/vm_thread_queue.rb<br/>index 274ceda366..1dd3696a3c 100644<br/>--- a/<a href='/ruby.git/tree/benchmark/vm_thread_queue.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>benchmark/vm_thread_queue.rb</a><br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_thread_queue.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_thread_queue.rb</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> require 'thread'</div><div class='ctx'> </div><div class='del'>-n = 1_000_000</div><div class='add'>+n = 10_000_000</div><div class='ctx'> q = Thread::Queue.new</div><div class='ctx'> consumer = Thread.new{</div><div class='ctx'>   while q.pop</div><div class='head'>diff --git a/benchmark/vm_thread_sleep.yml b/benchmark/vm_thread_sleep.yml<br/>new file mode 100644<br/>index 0000000000..96901d8466<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_thread_sleep.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_thread_sleep.yml</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+benchmark:</div><div class='add'>+  vm_thread_sleep: |</div><div class='add'>+    Thread.new { sleep }</div><div class='add'>+loop_count: 10_000</div><div class='head'>diff --git a/benchmark/vm_unif1.yml b/benchmark/vm_unif1.yml<br/>new file mode 100644<br/>index 0000000000..04187bb0e2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_unif1.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_unif1.yml</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+prelude: |</div><div class='add'>+  def m a, b</div><div class='add'>+  end</div><div class='add'>+benchmark:</div><div class='add'>+  vm_unif1: |</div><div class='add'>+    m 100, 200</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/benchmark/vm_yield.yml b/benchmark/vm_yield.yml<br/>new file mode 100644<br/>index 0000000000..230be3d84f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_yield.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_yield.yml</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+# while loop cost is not removed due to benchmark_driver.gem's limitation</div><div class='add'>+benchmark:</div><div class='add'>+  vm_yield: |</div><div class='add'>+    def m</div><div class='add'>+      i = 0</div><div class='add'>+      while i&lt;30_000_000</div><div class='add'>+        i += 1</div><div class='add'>+        yield</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    m{}</div><div class='add'>+loop_count: 1</div><div class='head'>diff --git a/benchmark/vm_zsuper.yml b/benchmark/vm_zsuper.yml<br/>new file mode 100644<br/>index 0000000000..bfb5837578<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/vm_zsuper.yml?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>benchmark/vm_zsuper.yml</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+prelude: |</div><div class='add'>+  class C</div><div class='add'>+    def m a</div><div class='add'>+      1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class CC &lt; C</div><div class='add'>+    def m a</div><div class='add'>+      super</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  obj = CC.new</div><div class='add'>+benchmark:</div><div class='add'>+  vm_zsuper: |</div><div class='add'>+    obj.m 10</div><div class='add'>+loop_count: 6000000</div><div class='head'>diff --git a/bignum.c b/bignum.c<br/>index ee3b49fd04..cb2c3b6f07 100644<br/>--- a/<a href='/ruby.git/tree/bignum.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bignum.c</a><br/>+++ b/<a href='/ruby.git/tree/bignum.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bignum.c</a></div><div class='hunk'>@@ -9,32 +9,45 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "ruby/thread.h"</div><div class='del'>-#include "ruby/util.h"</div><div class='del'>-#include "id.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#include &lt;ctype.h&gt;</div><div class='add'>+#include &lt;float.h&gt;</div><div class='add'>+#include &lt;math.h&gt;</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_STRINGS_H</div><div class='del'>-#include &lt;strings.h&gt;</div><div class='add'>+# include &lt;strings.h&gt;</div><div class='ctx'> #endif</div><div class='del'>-#include &lt;math.h&gt;</div><div class='del'>-#include &lt;float.h&gt;</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_IEEEFP_H</div><div class='del'>-#include &lt;ieeefp.h&gt;</div><div class='add'>+# include &lt;ieeefp.h&gt;</div><div class='ctx'> #endif</div><div class='del'>-#include "ruby_assert.h"</div><div class='ctx'> </div><div class='add'>+#if !defined(USE_GMP)</div><div class='ctx'> #if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='del'>-#define USE_GMP</div><div class='del'>-#include &lt;gmp.h&gt;</div><div class='add'>+# define USE_GMP 1</div><div class='add'>+#else</div><div class='add'>+# define USE_GMP 0</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+#if USE_GMP</div><div class='add'>+# include &lt;gmp.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define RB_BIGNUM_TYPE_P(x) RB_TYPE_P((x), T_BIGNUM)</div><div class='add'>+#include "id.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/bignum.h"</div><div class='add'>+#include "internal/complex.h"</div><div class='add'>+#include "internal/gc.h"</div><div class='add'>+#include "internal/numeric.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/sanitizers.h"</div><div class='add'>+#include "internal/variable.h"</div><div class='add'>+#include "internal/warnings.h"</div><div class='add'>+#include "ruby/thread.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "ruby_assert.h"</div><div class='ctx'> </div><div class='del'>-#ifndef RUBY_INTEGER_UNIFICATION</div><div class='del'>-VALUE rb_cBignum;</div><div class='del'>-#endif</div><div class='ctx'> const char ruby_digitmap[] = "0123456789abcdefghijklmnopqrstuvwxyz";</div><div class='ctx'> </div><div class='ctx'> #ifndef SIZEOF_BDIGIT_DBL</div><div class='hunk'>@@ -65,7 +78,7 @@ STATIC_ASSERT(sizeof_long_and_sizeof_bdigit, SIZEOF_BDIGIT % SIZEOF_LONG == 0);</div><div class='ctx'> #else</div><div class='ctx'> #   define HOST_BIGENDIAN_P 0</div><div class='ctx'> #endif</div><div class='del'>-/* (!LSHIFTABLE(d, n) ? 0 : (n)) is same as n but suppress a warning, C4293, by Visual Studio.  */</div><div class='add'>+/* (!LSHIFTABLE(d, n) ? 0 : (n)) is the same as n but suppress a warning, C4293, by Visual Studio.  */</div><div class='ctx'> #define LSHIFTABLE(d, n) ((n) &lt; sizeof(d) * CHAR_BIT)</div><div class='ctx'> #define LSHIFTX(d, n) (!LSHIFTABLE(d, n) ? 0 : ((d) &lt;&lt; (!LSHIFTABLE(d, n) ? 0 : (n))))</div><div class='ctx'> #define CLEAR_LOWBITS(d, numbits) ((d) &amp; LSHIFTX(~((d)*0), (numbits)))</div><div class='hunk'>@@ -92,8 +105,8 @@ STATIC_ASSERT(sizeof_long_and_sizeof_bdigit, SIZEOF_BDIGIT % SIZEOF_LONG == 0);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #define BIGZEROP(x) (BIGNUM_LEN(x) == 0 || \</div><div class='del'>-		     (BDIGITS(x)[0] == 0 &amp;&amp; \</div><div class='del'>-		      (BIGNUM_LEN(x) == 1 || bigzero_p(x))))</div><div class='add'>+                     (BDIGITS(x)[0] == 0 &amp;&amp; \</div><div class='add'>+                      (BIGNUM_LEN(x) == 1 || bigzero_p(x))))</div><div class='ctx'> #define BIGSIZE(x) (BIGNUM_LEN(x) == 0 ? (size_t)0 : \</div><div class='ctx'>     BDIGITS(x)[BIGNUM_LEN(x)-1] ? \</div><div class='ctx'>         (size_t)(BIGNUM_LEN(x)*SIZEOF_BDIGIT - nlz(BDIGITS(x)[BIGNUM_LEN(x)-1])/CHAR_BIT) : \</div><div class='hunk'>@@ -138,7 +151,7 @@ STATIC_ASSERT(sizeof_long_and_sizeof_bdigit, SIZEOF_BDIGIT % SIZEOF_LONG == 0);</div><div class='ctx'> #define GMP_DIV_DIGITS 20</div><div class='ctx'> #define GMP_BIG2STR_DIGITS 20</div><div class='ctx'> #define GMP_STR2BIG_DIGITS 20</div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'> # define NAIVE_MUL_DIGITS GMP_MUL_DIGITS</div><div class='ctx'> #else</div><div class='ctx'> # define NAIVE_MUL_DIGITS KARATSUBA_MUL_DIGITS</div><div class='hunk'>@@ -149,15 +162,11 @@ typedef void (mulfunc_t)(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, c</div><div class='ctx'> static mulfunc_t bary_mul_toom3_start;</div><div class='ctx'> static mulfunc_t bary_mul_karatsuba_start;</div><div class='ctx'> static BDIGIT bigdivrem_single(BDIGIT *qds, const BDIGIT *xds, size_t xn, BDIGIT y);</div><div class='del'>-static void bary_divmod(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn);</div><div class='ctx'> </div><div class='del'>-static VALUE bigmul0(VALUE x, VALUE y);</div><div class='del'>-static void bary_mul_toom3(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn);</div><div class='ctx'> static VALUE bignew_1(VALUE klass, size_t len, int sign);</div><div class='ctx'> static inline VALUE bigtrunc(VALUE x);</div><div class='ctx'> </div><div class='ctx'> static VALUE bigsq(VALUE x);</div><div class='del'>-static void bigdivmod(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp);</div><div class='ctx'> static inline VALUE power_cache_get_power(int base, int power_level, size_t *numdigits_ret);</div><div class='ctx'> </div><div class='ctx'> #if SIZEOF_BDIGIT &lt;= SIZEOF_INT</div><div class='hunk'>@@ -410,9 +419,9 @@ bary_small_lshift(BDIGIT *zds, const BDIGIT *xds, size_t n, int shift)</div><div class='ctx'>     assert(0 &lt;= shift &amp;&amp; shift &lt; BITSPERDIG);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;n; i++) {</div><div class='del'>-	num = num | (BDIGIT_DBL)*xds++ &lt;&lt; shift;</div><div class='del'>-	*zds++ = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='add'>+        num = num | (BDIGIT_DBL)*xds++ &lt;&lt; shift;</div><div class='add'>+        *zds++ = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='ctx'>     }</div><div class='ctx'>     return BIGLO(num);</div><div class='ctx'> }</div><div class='hunk'>@@ -428,9 +437,9 @@ bary_small_rshift(BDIGIT *zds, const BDIGIT *xds, size_t n, int shift, BDIGIT hi</div><div class='ctx'>     num = BIGUP(higher_bdigit);</div><div class='ctx'>     for (i = 0; i &lt; n; i++) {</div><div class='ctx'>         BDIGIT x = xds[n - i - 1];</div><div class='del'>-	num = (num | x) &gt;&gt; shift;</div><div class='add'>+        num = (num | x) &gt;&gt; shift;</div><div class='ctx'>         zds[n - i - 1] = BIGLO(num);</div><div class='del'>-	num = BIGUP(x);</div><div class='add'>+        num = BIGUP(x);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -440,7 +449,7 @@ bary_zero_p(const BDIGIT *xds, size_t xn)</div><div class='ctx'>     if (xn == 0)</div><div class='ctx'>         return 1;</div><div class='ctx'>     do {</div><div class='del'>-	if (xds[--xn]) return 0;</div><div class='add'>+        if (xds[--xn]) return 0;</div><div class='ctx'>     } while (xn);</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='hunk'>@@ -457,7 +466,6 @@ static int</div><div class='ctx'> bary_2comp(BDIGIT *ds, size_t n)</div><div class='ctx'> {</div><div class='ctx'>     size_t i;</div><div class='del'>-    i = 0;</div><div class='ctx'>     for (i = 0; i &lt; n; i++) {</div><div class='ctx'>         if (ds[i] != 0) {</div><div class='ctx'>             goto non_zero;</div><div class='hunk'>@@ -969,7 +977,7 @@ integer_unpack_num_bdigits_small(size_t numwords, size_t wordsize, size_t nails,</div><div class='ctx'> {</div><div class='ctx'>     /* nlp_bits stands for number of leading padding bits */</div><div class='ctx'>     size_t num_bits = (wordsize * CHAR_BIT - nails) * numwords;</div><div class='del'>-    size_t num_bdigits = (num_bits + BITSPERDIG - 1) / BITSPERDIG;</div><div class='add'>+    size_t num_bdigits = roomof(num_bits, BITSPERDIG);</div><div class='ctx'>     *nlp_bits_ret = (int)(num_bdigits * BITSPERDIG - num_bits);</div><div class='ctx'>     return num_bdigits;</div><div class='ctx'> }</div><div class='hunk'>@@ -979,7 +987,7 @@ integer_unpack_num_bdigits_generic(size_t numwords, size_t wordsize, size_t nail</div><div class='ctx'> {</div><div class='ctx'>     /* BITSPERDIG = SIZEOF_BDIGIT * CHAR_BIT */</div><div class='ctx'>     /* num_bits = (wordsize * CHAR_BIT - nails) * numwords */</div><div class='del'>-    /* num_bdigits = (num_bits + BITSPERDIG - 1) / BITSPERDIG */</div><div class='add'>+    /* num_bdigits = roomof(num_bits, BITSPERDIG) */</div><div class='ctx'> </div><div class='ctx'>     /* num_bits = CHAR_BIT * (wordsize * numwords) - nails * numwords = CHAR_BIT * num_bytes1 - nails * numwords */</div><div class='ctx'>     size_t num_bytes1 = wordsize * numwords;</div><div class='hunk'>@@ -1047,6 +1055,7 @@ integer_unpack_num_bdigits(size_t numwords, size_t wordsize, size_t nails, int *</div><div class='ctx'>             size_t num_bdigits1 = integer_unpack_num_bdigits_generic(numwords, wordsize, nails, &amp;nlp_bits1);</div><div class='ctx'>             assert(num_bdigits == num_bdigits1);</div><div class='ctx'>             assert(*nlp_bits_ret == nlp_bits1);</div><div class='add'>+            (void)num_bdigits1;</div><div class='ctx'>         }</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='hunk'>@@ -1341,9 +1350,9 @@ bary_subb(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yd</div><div class='ctx'> </div><div class='ctx'>     num = borrow ? -1 : 0;</div><div class='ctx'>     for (i = 0; i &lt; sn; i++) {</div><div class='del'>-	num += (BDIGIT_DBL_SIGNED)xds[i] - yds[i];</div><div class='del'>-	zds[i] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='add'>+        num += (BDIGIT_DBL_SIGNED)xds[i] - yds[i];</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='ctx'>     }</div><div class='ctx'>     if (yn &lt;= xn) {</div><div class='ctx'>         for (; i &lt; xn; i++) {</div><div class='hunk'>@@ -1362,7 +1371,7 @@ bary_subb(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yd</div><div class='ctx'>     }</div><div class='ctx'>     if (num == 0) goto num_is_zero;</div><div class='ctx'>     for (; i &lt; zn; i++) {</div><div class='del'>-	zds[i] = BDIGMAX;</div><div class='add'>+        zds[i] = BDIGMAX;</div><div class='ctx'>     }</div><div class='ctx'>     return 1;</div><div class='ctx'> </div><div class='hunk'>@@ -1370,10 +1379,10 @@ bary_subb(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yd</div><div class='ctx'>     if (xds == zds &amp;&amp; xn == zn)</div><div class='ctx'>         return 0;</div><div class='ctx'>     for (; i &lt; xn; i++) {</div><div class='del'>-	zds[i] = xds[i];</div><div class='add'>+        zds[i] = xds[i];</div><div class='ctx'>     }</div><div class='ctx'>     for (; i &lt; zn; i++) {</div><div class='del'>-	zds[i] = 0;</div><div class='add'>+        zds[i] = 0;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -1400,27 +1409,27 @@ bary_addc(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yd</div><div class='ctx'>     assert(yn &lt;= zn);</div><div class='ctx'> </div><div class='ctx'>     if (xn &gt; yn) {</div><div class='del'>-	const BDIGIT *tds;</div><div class='del'>-	tds = xds; xds = yds; yds = tds;</div><div class='del'>-	i = xn; xn = yn; yn = i;</div><div class='add'>+        const BDIGIT *tds;</div><div class='add'>+        tds = xds; xds = yds; yds = tds;</div><div class='add'>+        i = xn; xn = yn; yn = i;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     num = carry ? 1 : 0;</div><div class='ctx'>     for (i = 0; i &lt; xn; i++) {</div><div class='del'>-	num += (BDIGIT_DBL)xds[i] + yds[i];</div><div class='del'>-	zds[i] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='add'>+        num += (BDIGIT_DBL)xds[i] + yds[i];</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='ctx'>     }</div><div class='ctx'>     for (; i &lt; yn; i++) {</div><div class='ctx'>         if (num == 0) goto num_is_zero;</div><div class='del'>-	num += yds[i];</div><div class='del'>-	zds[i] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='add'>+        num += yds[i];</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='ctx'>     }</div><div class='ctx'>     for (; i &lt; zn; i++) {</div><div class='ctx'>         if (num == 0) goto num_is_zero;</div><div class='del'>-	zds[i] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='ctx'>     }</div><div class='ctx'>     return num != 0;</div><div class='ctx'> </div><div class='hunk'>@@ -1428,10 +1437,10 @@ bary_addc(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yd</div><div class='ctx'>     if (yds == zds &amp;&amp; yn == zn)</div><div class='ctx'>         return 0;</div><div class='ctx'>     for (; i &lt; yn; i++) {</div><div class='del'>-	zds[i] = yds[i];</div><div class='add'>+        zds[i] = yds[i];</div><div class='ctx'>     }</div><div class='ctx'>     for (; i &lt; zn; i++) {</div><div class='del'>-	zds[i] = 0;</div><div class='add'>+        zds[i] = 0;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -1570,7 +1579,7 @@ rb_big_mul_normal(VALUE x, VALUE y)</div><div class='ctx'> </div><div class='ctx'> /* efficient squaring (2 times faster than normal multiplication)</div><div class='ctx'>  * ref: Handbook of Applied Cryptography, Algorithm 14.16</div><div class='del'>- *      http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf</div><div class='add'>+ *      https://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf</div><div class='ctx'>  */</div><div class='ctx'> static void</div><div class='ctx'> bary_sq_fast(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn)</div><div class='hunk'>@@ -1588,30 +1597,30 @@ bary_sq_fast(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn)</div><div class='ctx'>         return;</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; xn-1; i++) {</div><div class='del'>-	v = (BDIGIT_DBL)xds[i];</div><div class='del'>-	if (!v)</div><div class='add'>+        v = (BDIGIT_DBL)xds[i];</div><div class='add'>+        if (!v)</div><div class='ctx'>             continue;</div><div class='del'>-	c = (BDIGIT_DBL)zds[i + i] + v * v;</div><div class='del'>-	zds[i + i] = BIGLO(c);</div><div class='del'>-	c = BIGDN(c);</div><div class='del'>-	v *= 2;</div><div class='add'>+        c = (BDIGIT_DBL)zds[i + i] + v * v;</div><div class='add'>+        zds[i + i] = BIGLO(c);</div><div class='add'>+        c = BIGDN(c);</div><div class='add'>+        v *= 2;</div><div class='ctx'>         vl = BIGLO(v);</div><div class='ctx'>         vh = (int)BIGDN(v);</div><div class='del'>-	for (j = i + 1; j &lt; xn; j++) {</div><div class='del'>-	    w = (BDIGIT_DBL)xds[j];</div><div class='del'>-	    c += (BDIGIT_DBL)zds[i + j] + vl * w;</div><div class='del'>-	    zds[i + j] = BIGLO(c);</div><div class='del'>-	    c = BIGDN(c);</div><div class='del'>-	    if (vh)</div><div class='add'>+        for (j = i + 1; j &lt; xn; j++) {</div><div class='add'>+            w = (BDIGIT_DBL)xds[j];</div><div class='add'>+            c += (BDIGIT_DBL)zds[i + j] + vl * w;</div><div class='add'>+            zds[i + j] = BIGLO(c);</div><div class='add'>+            c = BIGDN(c);</div><div class='add'>+            if (vh)</div><div class='ctx'>                 c += w;</div><div class='del'>-	}</div><div class='del'>-	if (c) {</div><div class='del'>-	    c += (BDIGIT_DBL)zds[i + xn];</div><div class='del'>-	    zds[i + xn] = BIGLO(c);</div><div class='del'>-	    c = BIGDN(c);</div><div class='add'>+        }</div><div class='add'>+        if (c) {</div><div class='add'>+            c += (BDIGIT_DBL)zds[i + xn];</div><div class='add'>+            zds[i + xn] = BIGLO(c);</div><div class='add'>+            c = BIGDN(c);</div><div class='ctx'>             if (c)</div><div class='ctx'>                 zds[i + xn + 1] += (BDIGIT)c;</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* i == xn-1 */</div><div class='hunk'>@@ -1636,13 +1645,21 @@ rb_big_sq_fast(VALUE x)</div><div class='ctx'>     return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static inline size_t</div><div class='add'>+max_size(size_t a, size_t b)</div><div class='add'>+{</div><div class='add'>+    return (a &gt; b ? a : b);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* balancing multiplication by slicing larger argument */</div><div class='ctx'> static void</div><div class='del'>-bary_mul_balance_with_mulfunc(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, BDIGIT *wds, size_t wn, mulfunc_t *mulfunc)</div><div class='add'>+bary_mul_balance_with_mulfunc(BDIGIT *const zds, const size_t zn,</div><div class='add'>+                              const BDIGIT *const xds, const size_t xn,</div><div class='add'>+                              const BDIGIT *const yds, const size_t yn,</div><div class='add'>+                              BDIGIT *wds, size_t wn, mulfunc_t *const mulfunc)</div><div class='ctx'> {</div><div class='ctx'>     VALUE work = 0;</div><div class='del'>-    size_t yn0 = yn;</div><div class='del'>-    size_t r, n;</div><div class='add'>+    size_t n;</div><div class='ctx'> </div><div class='ctx'>     assert(xn + yn &lt;= zn);</div><div class='ctx'>     assert(xn &lt;= yn);</div><div class='hunk'>@@ -1650,14 +1667,26 @@ bary_mul_balance_with_mulfunc(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t</div><div class='ctx'> </div><div class='ctx'>     BDIGITS_ZERO(zds, xn);</div><div class='ctx'> </div><div class='add'>+    if (wn &lt; xn) {</div><div class='add'>+        /* The condition when a new buffer is needed:</div><div class='add'>+         * 1. (2(xn+r) &gt; zn-(yn-r)) =&gt; (2xn+r &gt; zn-yn), at the last</div><div class='add'>+         *    iteration (or r == 0)</div><div class='add'>+         * 2. (2(xn+xn) &gt; zn-(yn-r-xn)) =&gt; (3xn-r &gt; zn-yn), at the</div><div class='add'>+         *    previous iteration.</div><div class='add'>+         */</div><div class='add'>+        const size_t r = yn % xn;</div><div class='add'>+        if (2*xn + yn + max_size(xn-r, r) &gt; zn) {</div><div class='add'>+            wn = xn;</div><div class='add'>+            wds = ALLOCV_N(BDIGIT, work, wn);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     n = 0;</div><div class='del'>-    while (yn &gt; 0) {</div><div class='del'>-        BDIGIT *tds;</div><div class='del'>-        size_t tn;</div><div class='del'>-	r = xn &gt; yn ? yn : xn;</div><div class='del'>-        tn = xn + r;</div><div class='add'>+    while (yn &gt; n) {</div><div class='add'>+        const size_t r = (xn &gt; (yn - n) ? (yn - n) : xn);</div><div class='add'>+        const size_t tn = (xn + r);</div><div class='ctx'>         if (2 * (xn + r) &lt;= zn - n) {</div><div class='del'>-            tds = zds + n + xn + r;</div><div class='add'>+            BDIGIT *const tds = zds + n + xn + r;</div><div class='ctx'>             mulfunc(tds, tn, xds, xn, yds + n, r, wds, wn);</div><div class='ctx'>             BDIGITS_ZERO(zds + n + xn, r);</div><div class='ctx'>             bary_add(zds + n, tn,</div><div class='hunk'>@@ -1665,21 +1694,25 @@ bary_mul_balance_with_mulfunc(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t</div><div class='ctx'>                      tds, tn);</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='add'>+            BDIGIT *const tds = zds + n;</div><div class='ctx'>             if (wn &lt; xn) {</div><div class='add'>+                /* xn is invariant, only once here */</div><div class='add'>+#if 0</div><div class='ctx'>                 wn = xn;</div><div class='ctx'>                 wds = ALLOCV_N(BDIGIT, work, wn);</div><div class='add'>+#else</div><div class='add'>+                rb_bug("wds is not enough: %" PRIdSIZE " for %" PRIdSIZE, wn, xn);</div><div class='add'>+#endif</div><div class='ctx'>             }</div><div class='del'>-            tds = zds + n;</div><div class='ctx'>             MEMCPY(wds, zds + n, BDIGIT, xn);</div><div class='ctx'>             mulfunc(tds, tn, xds, xn, yds + n, r, wds+xn, wn-xn);</div><div class='ctx'>             bary_add(zds + n, tn,</div><div class='ctx'>                      zds + n, tn,</div><div class='ctx'>                      wds, xn);</div><div class='ctx'>         }</div><div class='del'>-	yn -= r;</div><div class='del'>-	n += r;</div><div class='add'>+        n += r;</div><div class='ctx'>     }</div><div class='del'>-    BDIGITS_ZERO(zds+xn+yn0, zn - (xn+yn0));</div><div class='add'>+    BDIGITS_ZERO(zds+xn+yn, zn - (xn+yn));</div><div class='ctx'> </div><div class='ctx'>     if (work)</div><div class='ctx'>         ALLOCV_END(work);</div><div class='hunk'>@@ -1996,7 +2029,7 @@ bary_mul_toom3(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGI</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='del'>-     * ref. http://en.wikipedia.org/wiki/Toom%E2%80%93Cook_multiplication</div><div class='add'>+     * ref. https://en.wikipedia.org/wiki/Toom%E2%80%93Cook_multiplication</div><div class='ctx'>      *</div><div class='ctx'>      * x(b) = x0 * b^0 + x1 * b^1 + x2 * b^2</div><div class='ctx'>      * y(b) = y0 * b^0 + y1 * b^1 + y2 * b^2</div><div class='hunk'>@@ -2069,21 +2102,21 @@ bary_mul_toom3(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGI</div><div class='ctx'>         v3n = u3n; v3ds = u3ds; v3p = u3p;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	/* v1 &lt;- y0 + y2 */</div><div class='add'>+        /* v1 &lt;- y0 + y2 */</div><div class='ctx'>         bary_add(v1ds, v1n, y0ds, y0n, y2ds, y2n);</div><div class='ctx'>         v1p = 1;</div><div class='ctx'> </div><div class='del'>-	/* y(-1) : v2 &lt;- v1 - y1 = y0 - y1 + y2 */</div><div class='add'>+        /* y(-1) : v2 &lt;- v1 - y1 = y0 - y1 + y2 */</div><div class='ctx'>         v2p = 1;</div><div class='ctx'>         if (bary_sub(v2ds, v2n, v1ds, v1n, y1ds, y1n)) {</div><div class='ctx'>             bary_2comp(v2ds, v2n);</div><div class='ctx'>             v2p = 0;</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='del'>-	/* y(1) : v1 &lt;- v1 + y1 = y0 + y1 + y2 */</div><div class='add'>+        /* y(1) : v1 &lt;- v1 + y1 = y0 + y1 + y2 */</div><div class='ctx'>         bary_add(v1ds, v1n, v1ds, v1n, y1ds, y1n);</div><div class='ctx'> </div><div class='del'>-	/* y(-2) : v3 &lt;- 2 * (v2 + y2) - y0 = y0 - 2 * (y1 - 2 * y2) */</div><div class='add'>+        /* y(-2) : v3 &lt;- 2 * (v2 + y2) - y0 = y0 - 2 * (y1 - 2 * y2) */</div><div class='ctx'>         v3p = 1;</div><div class='ctx'>         if (v2p) {</div><div class='ctx'>             bary_add(v3ds, v3n, v2ds, v2n, y2ds, y2n);</div><div class='hunk'>@@ -2276,11 +2309,24 @@ rb_big_mul_toom3(VALUE x, VALUE y)</div><div class='ctx'>     return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='add'>+static inline void</div><div class='add'>+bdigits_to_mpz(mpz_t mp, const BDIGIT *digits, size_t len)</div><div class='add'>+{</div><div class='add'>+    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='add'>+    mpz_import(mp, len, -1, sizeof(BDIGIT), 0, nails, digits);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+bdigits_from_mpz(mpz_t mp, BDIGIT *digits, size_t *len)</div><div class='add'>+{</div><div class='add'>+    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='add'>+    mpz_export(digits, len, -1, sizeof(BDIGIT), 0, nails, mp);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> bary_mul_gmp(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='ctx'> {</div><div class='del'>-    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='ctx'>     mpz_t x, y, z;</div><div class='ctx'>     size_t count;</div><div class='ctx'> </div><div class='hunk'>@@ -2289,15 +2335,15 @@ bary_mul_gmp(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT</div><div class='ctx'>     mpz_init(x);</div><div class='ctx'>     mpz_init(y);</div><div class='ctx'>     mpz_init(z);</div><div class='del'>-    mpz_import(x, xn, -1, sizeof(BDIGIT), 0, nails, xds);</div><div class='add'>+    bdigits_to_mpz(x, xds, xn);</div><div class='ctx'>     if (xds == yds &amp;&amp; xn == yn) {</div><div class='ctx'>         mpz_mul(z, x, x);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        mpz_import(y, yn, -1, sizeof(BDIGIT), 0, nails, yds);</div><div class='add'>+        bdigits_to_mpz(y, yds, yn);</div><div class='ctx'>         mpz_mul(z, x, y);</div><div class='ctx'>     }</div><div class='del'>-    mpz_export(zds, &amp;count, -1, sizeof(BDIGIT), 0, nails, z);</div><div class='add'>+    bdigits_from_mpz(z, zds, &amp;count);</div><div class='ctx'>     BDIGITS_ZERO(zds+count, zn-count);</div><div class='ctx'>     mpz_clear(x);</div><div class='ctx'>     mpz_clear(y);</div><div class='hunk'>@@ -2336,9 +2382,9 @@ bary_sparse_p(const BDIGIT *ds, size_t n)</div><div class='ctx'> {</div><div class='ctx'>     long c = 0;</div><div class='ctx'> </div><div class='del'>-    if (          ds[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;</div><div class='del'>-    if (c &lt;= 1 &amp;&amp; ds[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;</div><div class='del'>-    if (c &lt;= 1 &amp;&amp; ds[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;</div><div class='add'>+    if (          ds[2 * n / 5]) c++;</div><div class='add'>+    if (c &lt;= 1 &amp;&amp; ds[    n / 2]) c++;</div><div class='add'>+    if (c &lt;= 1 &amp;&amp; ds[3 * n / 5]) c++;</div><div class='ctx'> </div><div class='ctx'>     return (c &lt;= 1) ? 1 : 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -2401,8 +2447,8 @@ bary_mul_precheck(BDIGIT **zdsp, size_t *znp, const BDIGIT **xdsp, size_t *xnp,</div><div class='ctx'>     if (xn &gt; yn) {</div><div class='ctx'>         const BDIGIT *tds;</div><div class='ctx'>         size_t tn;</div><div class='del'>-	tds = xds; xds = yds; yds = tds;</div><div class='del'>-	tn = xn; xn = yn; yn = tn;</div><div class='add'>+        tds = xds; xds = yds; yds = tds;</div><div class='add'>+        tn = xn; xn = yn; yn = tn;</div><div class='ctx'>     }</div><div class='ctx'>     assert(xn &lt;= yn);</div><div class='ctx'> </div><div class='hunk'>@@ -2446,12 +2492,7 @@ bary_mul_karatsuba_branch(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn,</div><div class='ctx'> {</div><div class='ctx'>     /* normal multiplication when x is small */</div><div class='ctx'>     if (xn &lt; KARATSUBA_MUL_DIGITS) {</div><div class='del'>-      normal:</div><div class='del'>-        if (xds == yds &amp;&amp; xn == yn)</div><div class='del'>-            bary_sq_fast(zds, zn, xds, xn);</div><div class='del'>-        else</div><div class='del'>-            bary_short_mul(zds, zn, xds, xn, yds, yn);</div><div class='del'>-        return;</div><div class='add'>+        goto normal;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* normal multiplication when x or y is a sparse bignum */</div><div class='hunk'>@@ -2469,6 +2510,15 @@ bary_mul_karatsuba_branch(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn,</div><div class='ctx'> </div><div class='ctx'>     /* multiplication by karatsuba method */</div><div class='ctx'>     bary_mul_karatsuba(zds, zn, xds, xn, yds, yn, wds, wn);</div><div class='add'>+    return;</div><div class='add'>+</div><div class='add'>+  normal:</div><div class='add'>+    if (xds == yds &amp;&amp; xn == yn) {</div><div class='add'>+        bary_sq_fast(zds, zn, xds, xn);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        bary_short_mul(zds, zn, xds, xn, yds, yn);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -2524,7 +2574,7 @@ bary_mul(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'>     bary_mul_gmp(zds, zn, xds, xn, yds, yn);</div><div class='ctx'> #else</div><div class='ctx'>     bary_mul_toom3_start(zds, zn, xds, xn, yds, yn, NULL, 0);</div><div class='hunk'>@@ -2548,30 +2598,31 @@ bigdivrem1(void *ptr)</div><div class='ctx'>     BDIGIT q;</div><div class='ctx'> </div><div class='ctx'>     do {</div><div class='del'>-	if (bds-&gt;stop) {</div><div class='del'>-	    bds-&gt;zn = zn;</div><div class='del'>-	    return 0;</div><div class='add'>+        if (bds-&gt;stop) {</div><div class='add'>+            bds-&gt;zn = zn;</div><div class='add'>+            return 0;</div><div class='ctx'>         }</div><div class='del'>-	if (zds[zn-1] == yds[yn-1]) q = BDIGMAX;</div><div class='del'>-	else q = (BDIGIT)((BIGUP(zds[zn-1]) + zds[zn-2])/yds[yn-1]);</div><div class='del'>-	if (q) {</div><div class='add'>+        if (zds[zn-1] == yds[yn-1]) q = BDIGMAX;</div><div class='add'>+        else q = (BDIGIT)((BIGUP(zds[zn-1]) + zds[zn-2])/yds[yn-1]);</div><div class='add'>+        if (q) {</div><div class='ctx'>             num = bigdivrem_mulsub(zds+zn-(yn+1), yn+1,</div><div class='ctx'>                                    q,</div><div class='ctx'>                                    yds, yn);</div><div class='del'>-	    while (num) { /* "add back" required */</div><div class='del'>-		q--;</div><div class='add'>+            while (num) { /* "add back" required */</div><div class='add'>+                q--;</div><div class='ctx'>                 num = bary_add(zds+zn-(yn+1), yn,</div><div class='ctx'>                                zds+zn-(yn+1), yn,</div><div class='ctx'>                                yds, yn);</div><div class='ctx'>                 num--;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>         zn--;</div><div class='del'>-	zds[zn] = q;</div><div class='add'>+        zds[zn] = q;</div><div class='ctx'>     } while (zn &gt; yn);</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* async-signal-safe */</div><div class='ctx'> static void</div><div class='ctx'> rb_big_stop(void *ptr)</div><div class='ctx'> {</div><div class='hunk'>@@ -2635,16 +2686,16 @@ bigdivrem_restoring(BDIGIT *zds, size_t zn, BDIGIT *yds, size_t yn)</div><div class='ctx'>     bds.zn = zn - ynzero;</div><div class='ctx'>     if (bds.zn &gt; 10000 || bds.yn &gt; 10000) {</div><div class='ctx'>       retry:</div><div class='del'>-	bds.stop = Qfalse;</div><div class='del'>-	rb_thread_call_without_gvl(bigdivrem1, &amp;bds, rb_big_stop, &amp;bds);</div><div class='add'>+        bds.stop = Qfalse;</div><div class='add'>+        rb_nogvl(bigdivrem1, &amp;bds, rb_big_stop, &amp;bds, RB_NOGVL_UBF_ASYNC_SAFE);</div><div class='ctx'> </div><div class='del'>-	if (bds.stop == Qtrue) {</div><div class='del'>-	    /* execute trap handler, but exception was not raised. */</div><div class='del'>-	    goto retry;</div><div class='del'>-	}</div><div class='add'>+        if (bds.stop == Qtrue) {</div><div class='add'>+            /* execute trap handler, but exception was not raised. */</div><div class='add'>+            goto retry;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	bigdivrem1(&amp;bds);</div><div class='add'>+        bigdivrem1(&amp;bds);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2743,11 +2794,10 @@ rb_big_divrem_normal(VALUE x, VALUE y)</div><div class='ctx'>     return rb_assoc_new(q, r);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'> static void</div><div class='ctx'> bary_divmod_gmp(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='ctx'> {</div><div class='del'>-    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='ctx'>     mpz_t x, y, q, r;</div><div class='ctx'>     size_t count;</div><div class='ctx'> </div><div class='hunk'>@@ -2761,8 +2811,8 @@ bary_divmod_gmp(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xd</div><div class='ctx'>     if (qds) mpz_init(q);</div><div class='ctx'>     if (rds) mpz_init(r);</div><div class='ctx'> </div><div class='del'>-    mpz_import(x, xn, -1, sizeof(BDIGIT), 0, nails, xds);</div><div class='del'>-    mpz_import(y, yn, -1, sizeof(BDIGIT), 0, nails, yds);</div><div class='add'>+    bdigits_to_mpz(x, xds, xn);</div><div class='add'>+    bdigits_to_mpz(y, yds, yn);</div><div class='ctx'> </div><div class='ctx'>     if (!rds) {</div><div class='ctx'>         mpz_fdiv_q(q, x, y);</div><div class='hunk'>@@ -2778,13 +2828,13 @@ bary_divmod_gmp(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xd</div><div class='ctx'>     mpz_clear(y);</div><div class='ctx'> </div><div class='ctx'>     if (qds) {</div><div class='del'>-        mpz_export(qds, &amp;count, -1, sizeof(BDIGIT), 0, nails, q);</div><div class='add'>+        bdigits_from_mpz(q, qds, &amp;count);</div><div class='ctx'>         BDIGITS_ZERO(qds+count, qn-count);</div><div class='ctx'>         mpz_clear(q);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (rds) {</div><div class='del'>-        mpz_export(rds, &amp;count, -1, sizeof(BDIGIT), 0, nails, r);</div><div class='add'>+        bdigits_from_mpz(r, rds, &amp;count);</div><div class='ctx'>         BDIGITS_ZERO(rds+count, rn-count);</div><div class='ctx'>         mpz_clear(r);</div><div class='ctx'>     }</div><div class='hunk'>@@ -2828,7 +2878,7 @@ rb_big_divrem_gmp(VALUE x, VALUE y)</div><div class='ctx'> static void</div><div class='ctx'> bary_divmod_branch(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn)</div><div class='ctx'> {</div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'>     if (GMP_DIV_DIGITS &lt; xn) {</div><div class='ctx'>         bary_divmod_gmp(qds, qn, rds, rn, xds, xn, yds, yn);</div><div class='ctx'>         return;</div><div class='hunk'>@@ -2883,29 +2933,8 @@ bary_divmod(BDIGIT *qds, size_t qn, BDIGIT *rds, size_t rn, const BDIGIT *xds, s</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#define BIGNUM_DEBUG 0</div><div class='del'>-#if BIGNUM_DEBUG</div><div class='del'>-#define ON_DEBUG(x) do { x; } while (0)</div><div class='del'>-static void</div><div class='del'>-dump_bignum(VALUE x)</div><div class='del'>-{</div><div class='del'>-    long i;</div><div class='del'>-    printf("%c0x0", BIGNUM_SIGN(x) ? '+' : '-');</div><div class='del'>-    for (i = BIGNUM_LEN(x); i--; ) {</div><div class='del'>-        printf("_%0*"PRIxBDIGIT, SIZEOF_BDIGIT*2, BDIGITS(x)[i]);</div><div class='del'>-    }</div><div class='del'>-    printf(", len=%"PRIuSIZE, BIGNUM_LEN(x));</div><div class='del'>-    puts("");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_big_dump(VALUE x)</div><div class='del'>-{</div><div class='del'>-    dump_bignum(x);</div><div class='del'>-    return x;</div><div class='del'>-}</div><div class='del'>-#else</div><div class='del'>-#define ON_DEBUG(x)</div><div class='add'>+#ifndef BIGNUM_DEBUG</div><div class='add'>+# define BIGNUM_DEBUG (0+RUBY_DEBUG)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -2924,7 +2953,7 @@ int</div><div class='ctx'> rb_cmpint(VALUE val, VALUE a, VALUE b)</div><div class='ctx'> {</div><div class='ctx'>     if (NIL_P(val)) {</div><div class='del'>-	rb_cmperr(a, b);</div><div class='add'>+        rb_cmperr(a, b);</div><div class='ctx'>     }</div><div class='ctx'>     if (FIXNUM_P(val)) {</div><div class='ctx'>         long l = FIX2LONG(val);</div><div class='hunk'>@@ -2933,9 +2962,9 @@ rb_cmpint(VALUE val, VALUE a, VALUE b)</div><div class='ctx'>         return 0;</div><div class='ctx'>     }</div><div class='ctx'>     if (RB_BIGNUM_TYPE_P(val)) {</div><div class='del'>-	if (BIGZEROP(val)) return 0;</div><div class='del'>-	if (BIGNUM_SIGN(val)) return 1;</div><div class='del'>-	return -1;</div><div class='add'>+        if (BIGZEROP(val)) return 0;</div><div class='add'>+        if (BIGNUM_SIGN(val)) return 1;</div><div class='add'>+        return -1;</div><div class='ctx'>     }</div><div class='ctx'>     if (RTEST(rb_funcall(val, '&gt;', 1, INT2FIX(0)))) return 1;</div><div class='ctx'>     if (RTEST(rb_funcall(val, '&lt;', 1, INT2FIX(0)))) return -1;</div><div class='hunk'>@@ -2943,44 +2972,44 @@ rb_cmpint(VALUE val, VALUE a, VALUE b)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define BIGNUM_SET_LEN(b,l) \</div><div class='del'>-    ((RBASIC(b)-&gt;flags &amp; BIGNUM_EMBED_FLAG) ? \</div><div class='add'>+    (BIGNUM_EMBED_P(b) ? \</div><div class='ctx'>      (void)(RBASIC(b)-&gt;flags = \</div><div class='del'>-	    (RBASIC(b)-&gt;flags &amp; ~BIGNUM_EMBED_LEN_MASK) | \</div><div class='del'>-	    ((l) &lt;&lt; BIGNUM_EMBED_LEN_SHIFT)) : \</div><div class='add'>+            (RBASIC(b)-&gt;flags &amp; ~BIGNUM_EMBED_LEN_MASK) | \</div><div class='add'>+            ((l) &lt;&lt; BIGNUM_EMBED_LEN_SHIFT)) : \</div><div class='ctx'>      (void)(RBIGNUM(b)-&gt;as.heap.len = (l)))</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> rb_big_realloc(VALUE big, size_t len)</div><div class='ctx'> {</div><div class='ctx'>     BDIGIT *ds;</div><div class='del'>-    if (RBASIC(big)-&gt;flags &amp; BIGNUM_EMBED_FLAG) {</div><div class='del'>-	if (BIGNUM_EMBED_LEN_MAX &lt; len) {</div><div class='del'>-	    ds = ALLOC_N(BDIGIT, len);</div><div class='del'>-	    MEMCPY(ds, RBIGNUM(big)-&gt;as.ary, BDIGIT, BIGNUM_EMBED_LEN_MAX);</div><div class='del'>-	    RBIGNUM(big)-&gt;as.heap.len = BIGNUM_LEN(big);</div><div class='del'>-	    RBIGNUM(big)-&gt;as.heap.digits = ds;</div><div class='del'>-	    RBASIC(big)-&gt;flags &amp;= ~BIGNUM_EMBED_FLAG;</div><div class='del'>-	}</div><div class='add'>+    if (BIGNUM_EMBED_P(big)) {</div><div class='add'>+        if (BIGNUM_EMBED_LEN_MAX &lt; len) {</div><div class='add'>+            ds = ALLOC_N(BDIGIT, len);</div><div class='add'>+            MEMCPY(ds, RBIGNUM(big)-&gt;as.ary, BDIGIT, BIGNUM_EMBED_LEN_MAX);</div><div class='add'>+            RBIGNUM(big)-&gt;as.heap.len = BIGNUM_LEN(big);</div><div class='add'>+            RBIGNUM(big)-&gt;as.heap.digits = ds;</div><div class='add'>+            FL_UNSET_RAW(big, BIGNUM_EMBED_FLAG);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (len &lt;= BIGNUM_EMBED_LEN_MAX) {</div><div class='del'>-	    ds = RBIGNUM(big)-&gt;as.heap.digits;</div><div class='del'>-	    RBASIC(big)-&gt;flags |= BIGNUM_EMBED_FLAG;</div><div class='del'>-	    BIGNUM_SET_LEN(big, len);</div><div class='add'>+        if (len &lt;= BIGNUM_EMBED_LEN_MAX) {</div><div class='add'>+            ds = RBIGNUM(big)-&gt;as.heap.digits;</div><div class='add'>+            FL_SET_RAW(big, BIGNUM_EMBED_FLAG);</div><div class='add'>+            BIGNUM_SET_LEN(big, len);</div><div class='ctx'>             (void)VALGRIND_MAKE_MEM_UNDEFINED((void*)RBIGNUM(big)-&gt;as.ary, sizeof(RBIGNUM(big)-&gt;as.ary));</div><div class='del'>-	    if (ds) {</div><div class='del'>-		MEMCPY(RBIGNUM(big)-&gt;as.ary, ds, BDIGIT, len);</div><div class='del'>-		xfree(ds);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (BIGNUM_LEN(big) == 0) {</div><div class='del'>-		RBIGNUM(big)-&gt;as.heap.digits = ALLOC_N(BDIGIT, len);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		REALLOC_N(RBIGNUM(big)-&gt;as.heap.digits, BDIGIT, len);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+            if (ds) {</div><div class='add'>+                MEMCPY(RBIGNUM(big)-&gt;as.ary, ds, BDIGIT, len);</div><div class='add'>+                xfree(ds);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (BIGNUM_LEN(big) == 0) {</div><div class='add'>+                RBIGNUM(big)-&gt;as.heap.digits = ALLOC_N(BDIGIT, len);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                REALLOC_N(RBIGNUM(big)-&gt;as.heap.digits, BDIGIT, len);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2995,18 +3024,19 @@ static VALUE</div><div class='ctx'> bignew_1(VALUE klass, size_t len, int sign)</div><div class='ctx'> {</div><div class='ctx'>     NEWOBJ_OF(big, struct RBignum, klass, T_BIGNUM | (RGENGC_WB_PROTECTED_BIGNUM ? FL_WB_PROTECTED : 0));</div><div class='del'>-    BIGNUM_SET_SIGN(big, sign);</div><div class='add'>+    VALUE bigv = (VALUE)big;</div><div class='add'>+    BIGNUM_SET_SIGN(bigv, sign);</div><div class='ctx'>     if (len &lt;= BIGNUM_EMBED_LEN_MAX) {</div><div class='del'>-	RBASIC(big)-&gt;flags |= BIGNUM_EMBED_FLAG;</div><div class='del'>-	BIGNUM_SET_LEN(big, len);</div><div class='del'>-        (void)VALGRIND_MAKE_MEM_UNDEFINED((void*)RBIGNUM(big)-&gt;as.ary, sizeof(RBIGNUM(big)-&gt;as.ary));</div><div class='add'>+        FL_SET_RAW(bigv, BIGNUM_EMBED_FLAG);</div><div class='add'>+        BIGNUM_SET_LEN(bigv, len);</div><div class='add'>+        (void)VALGRIND_MAKE_MEM_UNDEFINED((void*)big-&gt;as.ary, sizeof(big-&gt;as.ary));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	RBIGNUM(big)-&gt;as.heap.digits = ALLOC_N(BDIGIT, len);</div><div class='del'>-	RBIGNUM(big)-&gt;as.heap.len = len;</div><div class='add'>+        big-&gt;as.heap.digits = ALLOC_N(BDIGIT, len);</div><div class='add'>+        big-&gt;as.heap.len = len;</div><div class='ctx'>     }</div><div class='del'>-    OBJ_FREEZE(big);</div><div class='del'>-    return (VALUE)big;</div><div class='add'>+    OBJ_FREEZE(bigv);</div><div class='add'>+    return bigv;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -3065,7 +3095,7 @@ abs2twocomp(VALUE *xp, long *n_ret)</div><div class='ctx'>         MEMCPY(BDIGITS(z), ds, BDIGIT, n);</div><div class='ctx'>         bary_2comp(BDIGITS(z), n);</div><div class='ctx'>         hibits = BDIGMAX;</div><div class='del'>-	*xp = z;</div><div class='add'>+        *xp = z;</div><div class='ctx'>     }</div><div class='ctx'>     *n_ret = n;</div><div class='ctx'>     return hibits;</div><div class='hunk'>@@ -3089,7 +3119,7 @@ bigtrunc(VALUE x)</div><div class='ctx'>     if (len == 0) return x;</div><div class='ctx'>     while (--len &amp;&amp; !ds[len]);</div><div class='ctx'>     if (BIGNUM_LEN(x) &gt; len+1) {</div><div class='del'>-	rb_big_resize(x, len+1);</div><div class='add'>+        rb_big_resize(x, len+1);</div><div class='ctx'>     }</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='hunk'>@@ -3142,7 +3172,7 @@ static VALUE</div><div class='ctx'> bignorm(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     if (RB_BIGNUM_TYPE_P(x)) {</div><div class='del'>-	x = bigfixize(x);</div><div class='add'>+        x = bigfixize(x);</div><div class='ctx'>     }</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='hunk'>@@ -3164,8 +3194,8 @@ rb_uint2big(uintptr_t n)</div><div class='ctx'>     digits[0] = n;</div><div class='ctx'> #else</div><div class='ctx'>     for (i = 0; i &lt; bdigit_roomof(SIZEOF_VALUE); i++) {</div><div class='del'>-	digits[i] = BIGLO(n);</div><div class='del'>-	n = BIGDN(n);</div><div class='add'>+        digits[i] = BIGLO(n);</div><div class='add'>+        n = BIGDN(n);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -3184,14 +3214,14 @@ rb_int2big(intptr_t n)</div><div class='ctx'> </div><div class='ctx'>     if (n &lt; 0) {</div><div class='ctx'>         u = 1 + (VALUE)(-(n + 1)); /* u = -n avoiding overflow */</div><div class='del'>-	neg = 1;</div><div class='add'>+        neg = 1;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         u = n;</div><div class='ctx'>     }</div><div class='ctx'>     big = rb_uint2big(u);</div><div class='ctx'>     if (neg) {</div><div class='del'>-	BIGNUM_SET_NEGATIVE_SIGN(big);</div><div class='add'>+        BIGNUM_SET_NEGATIVE_SIGN(big);</div><div class='ctx'>     }</div><div class='ctx'>     return big;</div><div class='ctx'> }</div><div class='hunk'>@@ -3350,7 +3380,7 @@ absint_numwords_generic(size_t numbytes, int nlz_bits_in_msbyte, size_t word_num</div><div class='ctx'> </div><div class='ctx'>     if (sign == 2) {</div><div class='ctx'> #if defined __GNUC__ &amp;&amp; (__GNUC__ == 4 &amp;&amp; __GNUC_MINOR__ == 4)</div><div class='del'>-	*nlz_bits_ret = 0;</div><div class='add'>+        *nlz_bits_ret = 0;</div><div class='ctx'> #endif</div><div class='ctx'>         return (size_t)-1;</div><div class='ctx'>     }</div><div class='hunk'>@@ -3383,7 +3413,7 @@ rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret)</div><div class='ctx'>     size_t numbytes;</div><div class='ctx'>     int nlz_bits_in_msbyte;</div><div class='ctx'>     size_t numwords;</div><div class='del'>-    size_t nlz_bits;</div><div class='add'>+    size_t nlz_bits = 0;</div><div class='ctx'> </div><div class='ctx'>     if (word_numbits == 0)</div><div class='ctx'>         return (size_t)-1;</div><div class='hunk'>@@ -3398,6 +3428,7 @@ rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret)</div><div class='ctx'>             numwords0 = absint_numwords_generic(numbytes, nlz_bits_in_msbyte, word_numbits, &amp;nlz_bits0);</div><div class='ctx'>             assert(numwords0 == numwords);</div><div class='ctx'>             assert(nlz_bits0 == nlz_bits);</div><div class='add'>+            (void)numwords0;</div><div class='ctx'>         }</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='hunk'>@@ -3585,7 +3616,7 @@ rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Import an integer into a buffer.</div><div class='add'>+ * Import an integer from a buffer.</div><div class='ctx'>  *</div><div class='ctx'>  * [words] buffer to import.</div><div class='ctx'>  * [numwords] the size of given buffer as number of words.</div><div class='hunk'>@@ -3669,7 +3700,7 @@ rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t na</div><div class='ctx'>         }</div><div class='ctx'>         else if (num_bdigits == numberof(fixbuf)) {</div><div class='ctx'>             val = bignew((long)num_bdigits+1, 0);</div><div class='del'>-	    MEMCPY(BDIGITS(val), fixbuf, BDIGIT, num_bdigits);</div><div class='add'>+            MEMCPY(BDIGITS(val), fixbuf, BDIGIT, num_bdigits);</div><div class='ctx'>             BDIGITS(val)[num_bdigits++] = 1;</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='hunk'>@@ -3681,11 +3712,11 @@ rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t na</div><div class='ctx'>         BDIGIT_DBL u = fixbuf[0] + BIGUP(fixbuf[1]);</div><div class='ctx'>         if (u == 0)</div><div class='ctx'>             return LONG2FIX(0);</div><div class='del'>-	if (0 &lt; sign &amp;&amp; POSFIXABLE(u))</div><div class='del'>-            return LONG2FIX(u);</div><div class='del'>-	if (sign &lt; 0 &amp;&amp; BDIGIT_MSB(fixbuf[1]) == 0 &amp;&amp;</div><div class='add'>+        if (0 &lt; sign &amp;&amp; POSFIXABLE(u))</div><div class='add'>+            return LONG2FIX((long)u);</div><div class='add'>+        if (sign &lt; 0 &amp;&amp; BDIGIT_MSB(fixbuf[1]) == 0 &amp;&amp;</div><div class='ctx'>                 NEGFIXABLE(-(BDIGIT_DBL_SIGNED)u))</div><div class='del'>-            return LONG2FIX(-(BDIGIT_DBL_SIGNED)u);</div><div class='add'>+            return LONG2FIX((long)-(BDIGIT_DBL_SIGNED)u);</div><div class='ctx'>         val = bignew((long)num_bdigits, 0 &lt;= sign);</div><div class='ctx'>         MEMCPY(BDIGITS(val), fixbuf, BDIGIT, num_bdigits);</div><div class='ctx'>     }</div><div class='hunk'>@@ -3735,42 +3766,41 @@ str2big_scan_digits(const char *s, const char *str, int base, int badcheck, size</div><div class='ctx'>     int c;</div><div class='ctx'> </div><div class='ctx'>     if (!len) {</div><div class='del'>-	*num_digits_p = 0;</div><div class='del'>-	*len_p = 0;</div><div class='del'>-	return TRUE;</div><div class='add'>+        *num_digits_p = 0;</div><div class='add'>+        *len_p = 0;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (badcheck &amp;&amp; *str == '_') goto bad;</div><div class='add'>+    if (badcheck &amp;&amp; *str == '_') return FALSE;</div><div class='ctx'> </div><div class='ctx'>     while ((c = *str++) != 0) {</div><div class='del'>-	if (c == '_') {</div><div class='del'>-	    if (nondigit) {</div><div class='del'>-		if (badcheck) goto bad;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    nondigit = (char) c;</div><div class='del'>-	}</div><div class='del'>-	else if ((c = conv_digit(c)) &lt; 0 || c &gt;= base) {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    nondigit = 0;</div><div class='del'>-	    num_digits++;</div><div class='del'>-	    digits_end = str;</div><div class='del'>-	}</div><div class='del'>-	if (len &gt; 0 &amp;&amp; !--len) break;</div><div class='del'>-    }</div><div class='del'>-    if (badcheck &amp;&amp; nondigit) goto bad;</div><div class='add'>+        if (c == '_') {</div><div class='add'>+            if (nondigit) {</div><div class='add'>+                if (badcheck) return FALSE;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            nondigit = (char) c;</div><div class='add'>+        }</div><div class='add'>+        else if ((c = conv_digit(c)) &lt; 0 || c &gt;= base) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            nondigit = 0;</div><div class='add'>+            num_digits++;</div><div class='add'>+            digits_end = str;</div><div class='add'>+        }</div><div class='add'>+        if (len &gt; 0 &amp;&amp; !--len) break;</div><div class='add'>+    }</div><div class='add'>+    if (badcheck &amp;&amp; nondigit) return FALSE;</div><div class='ctx'>     if (badcheck &amp;&amp; len) {</div><div class='del'>-	str--;</div><div class='del'>-	while (*str &amp;&amp; ISSPACE(*str)) {</div><div class='del'>-	    str++;</div><div class='del'>-	    if (len &gt; 0 &amp;&amp; !--len) break;</div><div class='del'>-	}</div><div class='del'>-	if (len &amp;&amp; *str) {</div><div class='del'>-	  bad:</div><div class='del'>-	    return FALSE;</div><div class='del'>-	}</div><div class='add'>+        str--;</div><div class='add'>+        while (*str &amp;&amp; ISSPACE(*str)) {</div><div class='add'>+            str++;</div><div class='add'>+            if (len &gt; 0 &amp;&amp; !--len) break;</div><div class='add'>+        }</div><div class='add'>+        if (len &amp;&amp; *str) {</div><div class='add'>+            return FALSE;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     *num_digits_p = num_digits;</div><div class='ctx'>     *len_p = digits_end - digits_start;</div><div class='hunk'>@@ -3945,7 +3975,7 @@ str2big_karatsuba(</div><div class='ctx'>     return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'> static VALUE</div><div class='ctx'> str2big_gmp(</div><div class='ctx'>     int sign,</div><div class='hunk'>@@ -3955,7 +3985,6 @@ str2big_gmp(</div><div class='ctx'>     size_t num_bdigits,</div><div class='ctx'>     int base)</div><div class='ctx'> {</div><div class='del'>-    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='ctx'>     char *buf, *p;</div><div class='ctx'>     const char *q;</div><div class='ctx'>     VALUE tmps;</div><div class='hunk'>@@ -3978,7 +4007,7 @@ str2big_gmp(</div><div class='ctx'>     zn = num_bdigits;</div><div class='ctx'>     z = bignew(zn, sign);</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='del'>-    mpz_export(BDIGITS(z), &amp;count, -1, sizeof(BDIGIT), 0, nails, mz);</div><div class='add'>+    bdigits_from_mpz(mz, BDIGITS(z), &amp;count);</div><div class='ctx'>     BDIGITS_ZERO(zds+count, zn-count);</div><div class='ctx'>     mpz_clear(mz);</div><div class='ctx'> </div><div class='hunk'>@@ -3989,6 +4018,8 @@ str2big_gmp(</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+static VALUE rb_cstr_parse_inum(const char *str, ssize_t len, char **endp, int base);</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * Parse +str+ as Ruby Integer, i.e., underscores, 0d and 0b prefixes.</div><div class='ctx'>  *</div><div class='hunk'>@@ -4011,8 +4042,8 @@ rb_cstr_to_inum(const char *str, int base, int badcheck)</div><div class='ctx'>     char *end;</div><div class='ctx'>     VALUE ret = rb_cstr_parse_inum(str, -1, (badcheck ? NULL : &amp;end), base);</div><div class='ctx'>     if (NIL_P(ret)) {</div><div class='del'>-	if (badcheck) rb_invalid_str(str, "Integer()");</div><div class='del'>-	ret = INT2FIX(0);</div><div class='add'>+        if (badcheck) rb_invalid_str(str, "Integer()");</div><div class='add'>+        ret = INT2FIX(0);</div><div class='ctx'>     }</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='hunk'>@@ -4036,7 +4067,7 @@ rb_cstr_to_inum(const char *str, int base, int badcheck)</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits,</div><div class='del'>-		  int base, int flags)</div><div class='add'>+                  int base, int flags)</div><div class='ctx'> {</div><div class='ctx'>     const char *const s = str;</div><div class='ctx'>     char sign = 1;</div><div class='hunk'>@@ -4053,85 +4084,82 @@ rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits,</div><div class='ctx'>     const int badcheck = !endp;</div><div class='ctx'> </div><div class='ctx'> #define ADV(n) do {\</div><div class='del'>-	if (len &gt; 0 &amp;&amp; len &lt;= (n)) goto bad; \</div><div class='del'>-	str += (n); \</div><div class='del'>-	len -= (n); \</div><div class='add'>+        if (len &gt; 0 &amp;&amp; len &lt;= (n)) goto bad; \</div><div class='add'>+        str += (n); \</div><div class='add'>+        len -= (n); \</div><div class='ctx'>     } while (0)</div><div class='ctx'> #define ASSERT_LEN() do {\</div><div class='del'>-	assert(len != 0); \</div><div class='del'>-	if (len0 &gt;= 0) assert(s + len0 == str + len); \</div><div class='add'>+        assert(len != 0); \</div><div class='add'>+        if (len0 &gt;= 0) assert(s + len0 == str + len); \</div><div class='ctx'>     } while (0)</div><div class='ctx'> </div><div class='ctx'>     if (!str) {</div><div class='del'>-      bad:</div><div class='del'>-	if (endp) *endp = (char *)str;</div><div class='del'>-	if (ndigits) *ndigits = num_digits;</div><div class='del'>-	return z;</div><div class='add'>+        goto bad;</div><div class='ctx'>     }</div><div class='ctx'>     if (len &amp;&amp; (flags &amp; RB_INT_PARSE_SIGN)) {</div><div class='del'>-	while (ISSPACE(*str)) ADV(1);</div><div class='add'>+        while (ISSPACE(*str)) ADV(1);</div><div class='ctx'> </div><div class='del'>-	if (str[0] == '+') {</div><div class='del'>-	    ADV(1);</div><div class='del'>-	}</div><div class='del'>-	else if (str[0] == '-') {</div><div class='del'>-	    ADV(1);</div><div class='del'>-	    sign = 0;</div><div class='del'>-	}</div><div class='del'>-	ASSERT_LEN();</div><div class='add'>+        if (str[0] == '+') {</div><div class='add'>+            ADV(1);</div><div class='add'>+        }</div><div class='add'>+        else if (str[0] == '-') {</div><div class='add'>+            ADV(1);</div><div class='add'>+            sign = 0;</div><div class='add'>+        }</div><div class='add'>+        ASSERT_LEN();</div><div class='ctx'>     }</div><div class='ctx'>     if (base &lt;= 0) {</div><div class='del'>-	if (str[0] == '0' &amp;&amp; len &gt; 1) {</div><div class='del'>-	    switch (str[1]) {</div><div class='del'>-	      case 'x': case 'X':</div><div class='del'>-		base = 16;</div><div class='del'>-		ADV(2);</div><div class='del'>-		break;</div><div class='del'>-	      case 'b': case 'B':</div><div class='del'>-		base = 2;</div><div class='del'>-		ADV(2);</div><div class='del'>-		break;</div><div class='del'>-	      case 'o': case 'O':</div><div class='del'>-		base = 8;</div><div class='del'>-		ADV(2);</div><div class='del'>-		break;</div><div class='del'>-	      case 'd': case 'D':</div><div class='del'>-		base = 10;</div><div class='del'>-		ADV(2);</div><div class='del'>-		break;</div><div class='del'>-	      default:</div><div class='del'>-		base = 8;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else if (base &lt; -1) {</div><div class='del'>-	    base = -base;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    base = 10;</div><div class='del'>-	}</div><div class='add'>+        if (str[0] == '0' &amp;&amp; len &gt; 1) {</div><div class='add'>+            switch (str[1]) {</div><div class='add'>+              case 'x': case 'X':</div><div class='add'>+                base = 16;</div><div class='add'>+                ADV(2);</div><div class='add'>+                break;</div><div class='add'>+              case 'b': case 'B':</div><div class='add'>+                base = 2;</div><div class='add'>+                ADV(2);</div><div class='add'>+                break;</div><div class='add'>+              case 'o': case 'O':</div><div class='add'>+                base = 8;</div><div class='add'>+                ADV(2);</div><div class='add'>+                break;</div><div class='add'>+              case 'd': case 'D':</div><div class='add'>+                base = 10;</div><div class='add'>+                ADV(2);</div><div class='add'>+                break;</div><div class='add'>+              default:</div><div class='add'>+                base = 8;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else if (base &lt; -1) {</div><div class='add'>+            base = -base;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            base = 10;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (len == 1 || !(flags &amp; RB_INT_PARSE_PREFIX)) {</div><div class='del'>-	/* no prefix */</div><div class='add'>+        /* no prefix */</div><div class='ctx'>     }</div><div class='ctx'>     else if (base == 2) {</div><div class='del'>-	if (str[0] == '0' &amp;&amp; (str[1] == 'b'||str[1] == 'B')) {</div><div class='del'>-	    ADV(2);</div><div class='del'>-	}</div><div class='add'>+        if (str[0] == '0' &amp;&amp; (str[1] == 'b'||str[1] == 'B')) {</div><div class='add'>+            ADV(2);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (base == 8) {</div><div class='del'>-	if (str[0] == '0' &amp;&amp; (str[1] == 'o'||str[1] == 'O')) {</div><div class='del'>-	    ADV(2);</div><div class='del'>-	}</div><div class='add'>+        if (str[0] == '0' &amp;&amp; (str[1] == 'o'||str[1] == 'O')) {</div><div class='add'>+            ADV(2);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (base == 10) {</div><div class='del'>-	if (str[0] == '0' &amp;&amp; (str[1] == 'd'||str[1] == 'D')) {</div><div class='del'>-	    ADV(2);</div><div class='del'>-	}</div><div class='add'>+        if (str[0] == '0' &amp;&amp; (str[1] == 'd'||str[1] == 'D')) {</div><div class='add'>+            ADV(2);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (base == 16) {</div><div class='del'>-	if (str[0] == '0' &amp;&amp; (str[1] == 'x'||str[1] == 'X')) {</div><div class='del'>-	    ADV(2);</div><div class='del'>-	}</div><div class='add'>+        if (str[0] == '0' &amp;&amp; (str[1] == 'x'||str[1] == 'X')) {</div><div class='add'>+            ADV(2);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (!valid_radix_p(base)) {</div><div class='ctx'>         invalid_radix(base);</div><div class='hunk'>@@ -4139,80 +4167,79 @@ rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits,</div><div class='ctx'>     if (!len) goto bad;</div><div class='ctx'>     num_digits = str - s;</div><div class='ctx'>     if (*str == '0' &amp;&amp; len != 1) { /* squeeze preceding 0s */</div><div class='del'>-	int us = 0;</div><div class='del'>-	const char *end = len &lt; 0 ? NULL : str + len;</div><div class='del'>-	++num_digits;</div><div class='del'>-	while ((c = *++str) == '0' ||</div><div class='del'>-	       ((flags &amp; RB_INT_PARSE_UNDERSCORE) &amp;&amp; c == '_')) {</div><div class='del'>-	    if (c == '_') {</div><div class='del'>-		if (++us &gt;= 2)</div><div class='del'>-		    break;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		++num_digits;</div><div class='del'>-		us = 0;</div><div class='del'>-	    }</div><div class='del'>-	    if (str == end) break;</div><div class='del'>-	}</div><div class='del'>-	if (!c || ISSPACE(c)) --str;</div><div class='del'>-	if (end) len = end - str;</div><div class='del'>-	ASSERT_LEN();</div><div class='add'>+        int us = 0;</div><div class='add'>+        const char *end = len &lt; 0 ? NULL : str + len;</div><div class='add'>+        ++num_digits;</div><div class='add'>+        while ((c = *++str) == '0' ||</div><div class='add'>+               ((flags &amp; RB_INT_PARSE_UNDERSCORE) &amp;&amp; c == '_')) {</div><div class='add'>+            if (c == '_') {</div><div class='add'>+                if (++us &gt;= 2)</div><div class='add'>+                    break;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ++num_digits;</div><div class='add'>+                us = 0;</div><div class='add'>+            }</div><div class='add'>+            if (str == end) break;</div><div class='add'>+        }</div><div class='add'>+        if (!c || ISSPACE(c)) --str;</div><div class='add'>+        if (end) len = end - str;</div><div class='ctx'>     }</div><div class='ctx'>     c = *str;</div><div class='ctx'>     c = conv_digit(c);</div><div class='ctx'>     if (c &lt; 0 || c &gt;= base) {</div><div class='del'>-	if (!badcheck &amp;&amp; num_digits) z = INT2FIX(0);</div><div class='del'>-	goto bad;</div><div class='add'>+        if (!badcheck &amp;&amp; num_digits) z = INT2FIX(0);</div><div class='add'>+        goto bad;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (ndigits) *ndigits = num_digits;</div><div class='ctx'>     val = ruby_scan_digits(str, len, base, &amp;num_digits, &amp;ov);</div><div class='ctx'>     if (!ov) {</div><div class='del'>-	const char *end = &amp;str[num_digits];</div><div class='del'>-	if (num_digits &gt; 0 &amp;&amp; *end == '_' &amp;&amp; (flags &amp; RB_INT_PARSE_UNDERSCORE))</div><div class='del'>-	    goto bigparse;</div><div class='del'>-	if (endp) *endp = (char *)end;</div><div class='del'>-	if (ndigits) *ndigits += num_digits;</div><div class='del'>-	if (badcheck) {</div><div class='del'>-	    if (num_digits == 0) return Qnil; /* no number */</div><div class='del'>-	    while (len &lt; 0 ? *end : end &lt; str + len) {</div><div class='del'>-		if (!ISSPACE(*end)) return Qnil; /* trailing garbage */</div><div class='del'>-		end++;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (POSFIXABLE(val)) {</div><div class='del'>-	    if (sign) return LONG2FIX(val);</div><div class='del'>-	    else {</div><div class='del'>-		long result = -(long)val;</div><div class='del'>-		return LONG2FIX(result);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    VALUE big = rb_uint2big(val);</div><div class='del'>-	    BIGNUM_SET_SIGN(big, sign);</div><div class='del'>-	    return bignorm(big);</div><div class='del'>-	}</div><div class='add'>+        const char *end = &amp;str[num_digits];</div><div class='add'>+        if (num_digits &gt; 0 &amp;&amp; *end == '_' &amp;&amp; (flags &amp; RB_INT_PARSE_UNDERSCORE))</div><div class='add'>+            goto bigparse;</div><div class='add'>+        if (endp) *endp = (char *)end;</div><div class='add'>+        if (ndigits) *ndigits += num_digits;</div><div class='add'>+        if (badcheck) {</div><div class='add'>+            if (num_digits == 0) return Qnil; /* no number */</div><div class='add'>+            while (len &lt; 0 ? *end : end &lt; str + len) {</div><div class='add'>+                if (!ISSPACE(*end)) return Qnil; /* trailing garbage */</div><div class='add'>+                end++;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (POSFIXABLE(val)) {</div><div class='add'>+            if (sign) return LONG2FIX(val);</div><div class='add'>+            else {</div><div class='add'>+                long result = -(long)val;</div><div class='add'>+                return LONG2FIX(result);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            VALUE big = rb_uint2big(val);</div><div class='add'>+            BIGNUM_SET_SIGN(big, sign);</div><div class='add'>+            return bignorm(big);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>   bigparse:</div><div class='ctx'>     digits_start = str;</div><div class='ctx'>     if (!str2big_scan_digits(s, str, base, badcheck, &amp;num_digits, &amp;len))</div><div class='del'>-	goto bad;</div><div class='add'>+        goto bad;</div><div class='ctx'>     if (endp) *endp = (char *)(str + len);</div><div class='ctx'>     if (ndigits) *ndigits += num_digits;</div><div class='ctx'>     digits_end = digits_start + len;</div><div class='ctx'> </div><div class='ctx'>     if (POW2_P(base)) {</div><div class='ctx'>         z = str2big_poweroftwo(sign, digits_start, digits_end, num_digits,</div><div class='del'>-			       bit_length(base-1));</div><div class='add'>+                               bit_length(base-1));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         int digits_per_bdigits_dbl;</div><div class='ctx'>         maxpow_in_bdigit_dbl(base, &amp;digits_per_bdigits_dbl);</div><div class='ctx'>         num_bdigits = roomof(num_digits, digits_per_bdigits_dbl)*2;</div><div class='ctx'> </div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'>         if (GMP_STR2BIG_DIGITS &lt; num_bdigits) {</div><div class='ctx'>             z = str2big_gmp(sign, digits_start, digits_end, num_digits,</div><div class='ctx'>                     num_bdigits, base);</div><div class='hunk'>@@ -4230,13 +4257,18 @@ rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits,</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return bignorm(z);</div><div class='add'>+</div><div class='add'>+  bad:</div><div class='add'>+    if (endp) *endp = (char *)str;</div><div class='add'>+    if (ndigits) *ndigits = num_digits;</div><div class='add'>+    return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_cstr_parse_inum(const char *str, ssize_t len, char **endp, int base)</div><div class='ctx'> {</div><div class='ctx'>     return rb_int_parse_cstr(str, len, endp, NULL, base,</div><div class='del'>-			     RB_INT_PARSE_DEFAULT);</div><div class='add'>+                             RB_INT_PARSE_DEFAULT);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -4285,14 +4317,14 @@ rb_str2big_poweroftwo(VALUE arg, int base, int badcheck)</div><div class='ctx'>     s = str = StringValueCStr(arg);</div><div class='ctx'>     len = RSTRING_LEN(arg);</div><div class='ctx'>     if (*str == '-') {</div><div class='del'>-	len--;</div><div class='add'>+        len--;</div><div class='ctx'>         str++;</div><div class='ctx'>         positive_p = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     digits_start = str;</div><div class='ctx'>     if (!str2big_scan_digits(s, str, base, badcheck, &amp;num_digits, &amp;len))</div><div class='del'>-	invalid_integer(arg);</div><div class='add'>+        invalid_integer(arg);</div><div class='ctx'>     digits_end = digits_start + len;</div><div class='ctx'> </div><div class='ctx'>     z = str2big_poweroftwo(positive_p, digits_start, digits_end, num_digits,</div><div class='hunk'>@@ -4324,14 +4356,14 @@ rb_str2big_normal(VALUE arg, int base, int badcheck)</div><div class='ctx'>     s = str = StringValuePtr(arg);</div><div class='ctx'>     len = RSTRING_LEN(arg);</div><div class='ctx'>     if (len &gt; 0 &amp;&amp; *str == '-') {</div><div class='del'>-	len--;</div><div class='add'>+        len--;</div><div class='ctx'>         str++;</div><div class='ctx'>         positive_p = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     digits_start = str;</div><div class='ctx'>     if (!str2big_scan_digits(s, str, base, badcheck, &amp;num_digits, &amp;len))</div><div class='del'>-	invalid_integer(arg);</div><div class='add'>+        invalid_integer(arg);</div><div class='ctx'>     digits_end = digits_start + len;</div><div class='ctx'> </div><div class='ctx'>     maxpow_in_bdigit_dbl(base, &amp;digits_per_bdigits_dbl);</div><div class='hunk'>@@ -4366,14 +4398,14 @@ rb_str2big_karatsuba(VALUE arg, int base, int badcheck)</div><div class='ctx'>     s = str = StringValuePtr(arg);</div><div class='ctx'>     len = RSTRING_LEN(arg);</div><div class='ctx'>     if (len &gt; 0 &amp;&amp; *str == '-') {</div><div class='del'>-	len--;</div><div class='add'>+        len--;</div><div class='ctx'>         str++;</div><div class='ctx'>         positive_p = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     digits_start = str;</div><div class='ctx'>     if (!str2big_scan_digits(s, str, base, badcheck, &amp;num_digits, &amp;len))</div><div class='del'>-	invalid_integer(arg);</div><div class='add'>+        invalid_integer(arg);</div><div class='ctx'>     digits_end = digits_start + len;</div><div class='ctx'> </div><div class='ctx'>     maxpow_in_bdigit_dbl(base, &amp;digits_per_bdigits_dbl);</div><div class='hunk'>@@ -4387,7 +4419,7 @@ rb_str2big_karatsuba(VALUE arg, int base, int badcheck)</div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'> VALUE</div><div class='ctx'> rb_str2big_gmp(VALUE arg, int base, int badcheck)</div><div class='ctx'> {</div><div class='hunk'>@@ -4409,14 +4441,14 @@ rb_str2big_gmp(VALUE arg, int base, int badcheck)</div><div class='ctx'>     s = str = StringValuePtr(arg);</div><div class='ctx'>     len = RSTRING_LEN(arg);</div><div class='ctx'>     if (len &gt; 0 &amp;&amp; *str == '-') {</div><div class='del'>-	len--;</div><div class='add'>+        len--;</div><div class='ctx'>         str++;</div><div class='ctx'>         positive_p = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     digits_start = str;</div><div class='ctx'>     if (!str2big_scan_digits(s, str, base, badcheck, &amp;num_digits, &amp;len))</div><div class='del'>-	invalid_integer(arg);</div><div class='add'>+        invalid_integer(arg);</div><div class='ctx'>     digits_end = digits_start + len;</div><div class='ctx'> </div><div class='ctx'>     maxpow_in_bdigit_dbl(base, &amp;digits_per_bdigits_dbl);</div><div class='hunk'>@@ -4443,8 +4475,8 @@ rb_ull2big(unsigned LONG_LONG n)</div><div class='ctx'>     digits[0] = n;</div><div class='ctx'> #else</div><div class='ctx'>     for (i = 0; i &lt; bdigit_roomof(SIZEOF_LONG_LONG); i++) {</div><div class='del'>-	digits[i] = BIGLO(n);</div><div class='del'>-	n = BIGDN(n);</div><div class='add'>+        digits[i] = BIGLO(n);</div><div class='add'>+        n = BIGDN(n);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -4463,14 +4495,14 @@ rb_ll2big(LONG_LONG n)</div><div class='ctx'> </div><div class='ctx'>     if (n &lt; 0) {</div><div class='ctx'>         u = 1 + (unsigned LONG_LONG)(-(n + 1)); /* u = -n avoiding overflow */</div><div class='del'>-	neg = 1;</div><div class='add'>+        neg = 1;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         u = n;</div><div class='ctx'>     }</div><div class='ctx'>     big = rb_ull2big(u);</div><div class='ctx'>     if (neg) {</div><div class='del'>-	BIGNUM_SET_NEGATIVE_SIGN(big);</div><div class='add'>+        BIGNUM_SET_NEGATIVE_SIGN(big);</div><div class='ctx'>     }</div><div class='ctx'>     return big;</div><div class='ctx'> }</div><div class='hunk'>@@ -4478,14 +4510,14 @@ rb_ll2big(LONG_LONG n)</div><div class='ctx'> VALUE</div><div class='ctx'> rb_ull2inum(unsigned LONG_LONG n)</div><div class='ctx'> {</div><div class='del'>-    if (POSFIXABLE(n)) return LONG2FIX(n);</div><div class='add'>+    if (POSFIXABLE(n)) return LONG2FIX((long)n);</div><div class='ctx'>     return rb_ull2big(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_ll2inum(LONG_LONG n)</div><div class='ctx'> {</div><div class='del'>-    if (FIXABLE(n)) return LONG2FIX(n);</div><div class='add'>+    if (FIXABLE(n)) return LONG2FIX((long)n);</div><div class='ctx'>     return rb_ll2big(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4500,7 +4532,7 @@ rb_uint128t2big(uint128_t n)</div><div class='ctx'>     BDIGIT *digits = BDIGITS(big);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; bdigit_roomof(SIZEOF_INT128_T); i++) {</div><div class='del'>-	digits[i] = BIGLO(RSHIFT(n ,BITSPERDIG*i));</div><div class='add'>+        digits[i] = BIGLO(RSHIFT(n ,BITSPERDIG*i));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     i = bdigit_roomof(SIZEOF_INT128_T);</div><div class='hunk'>@@ -4518,14 +4550,14 @@ rb_int128t2big(int128_t n)</div><div class='ctx'> </div><div class='ctx'>     if (n &lt; 0) {</div><div class='ctx'>         u = 1 + (uint128_t)(-(n + 1)); /* u = -n avoiding overflow */</div><div class='del'>-	neg = 1;</div><div class='add'>+        neg = 1;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         u = n;</div><div class='ctx'>     }</div><div class='ctx'>     big = rb_uint128t2big(u);</div><div class='ctx'>     if (neg) {</div><div class='del'>-	BIGNUM_SET_NEGATIVE_SIGN(big);</div><div class='add'>+        BIGNUM_SET_NEGATIVE_SIGN(big);</div><div class='ctx'>     }</div><div class='ctx'>     return big;</div><div class='ctx'> }</div><div class='hunk'>@@ -4554,11 +4586,14 @@ big_shift3(VALUE x, int lshift_p, size_t shift_numdigits, int shift_numbits)</div><div class='ctx'> </div><div class='ctx'>     if (lshift_p) {</div><div class='ctx'>         if (LONG_MAX &lt; shift_numdigits) {</div><div class='del'>-            rb_raise(rb_eArgError, "too big number");</div><div class='add'>+          too_big:</div><div class='add'>+            rb_raise(rb_eRangeError, "shift width too big");</div><div class='ctx'>         }</div><div class='ctx'>         s1 = shift_numdigits;</div><div class='ctx'>         s2 = shift_numbits;</div><div class='add'>+        if ((size_t)s1 != shift_numdigits) goto too_big;</div><div class='ctx'>         xn = BIGNUM_LEN(x);</div><div class='add'>+        if (LONG_MAX/SIZEOF_BDIGIT &lt;= xn+s1) goto too_big;</div><div class='ctx'>         z = bignew(xn+s1+1, BIGNUM_SIGN(x));</div><div class='ctx'>         zds = BDIGITS(z);</div><div class='ctx'>         BDIGITS_ZERO(zds, s1);</div><div class='hunk'>@@ -4649,12 +4684,6 @@ static size_t base36_numdigits_cache[35][MAX_BASE36_POWER_TABLE_ENTRIES];</div><div class='ctx'> static void</div><div class='ctx'> power_cache_init(void)</div><div class='ctx'> {</div><div class='del'>-    int i, j;</div><div class='del'>-    for (i = 0; i &lt; 35; ++i) {</div><div class='del'>-	for (j = 0; j &lt; MAX_BASE36_POWER_TABLE_ENTRIES; ++j) {</div><div class='del'>-	    base36_power_cache[i][j] = Qnil;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline VALUE</div><div class='hunk'>@@ -4677,8 +4706,8 @@ power_cache_get_power(int base, int power_level, size_t *numdigits_ret)</div><div class='ctx'>     if (MAX_BASE36_POWER_TABLE_ENTRIES &lt;= power_level)</div><div class='ctx'>         rb_bug("too big power number requested: maxpow_in_bdigit_dbl(%d)**(2**%d)", base, power_level);</div><div class='ctx'> </div><div class='del'>-    if (NIL_P(base36_power_cache[base - 2][power_level])) {</div><div class='del'>-        VALUE power;</div><div class='add'>+    VALUE power = base36_power_cache[base - 2][power_level];</div><div class='add'>+    if (!power) {</div><div class='ctx'>         size_t numdigits;</div><div class='ctx'>         if (power_level == 0) {</div><div class='ctx'>             int numdigits0;</div><div class='hunk'>@@ -4694,11 +4723,11 @@ power_cache_get_power(int base, int power_level, size_t *numdigits_ret)</div><div class='ctx'>         rb_obj_hide(power);</div><div class='ctx'>         base36_power_cache[base - 2][power_level] = power;</div><div class='ctx'>         base36_numdigits_cache[base - 2][power_level] = numdigits;</div><div class='del'>-	rb_gc_register_mark_object(power);</div><div class='add'>+        rb_gc_register_mark_object(power);</div><div class='ctx'>     }</div><div class='ctx'>     if (numdigits_ret)</div><div class='ctx'>         *numdigits_ret = base36_numdigits_cache[base - 2][power_level];</div><div class='del'>-    return base36_power_cache[base - 2][power_level];</div><div class='add'>+    return power;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct big2str_struct {</div><div class='hunk'>@@ -4745,7 +4774,7 @@ big2str_2bdigits(struct big2str_struct *b2s, BDIGIT *xds, size_t xn, size_t tail</div><div class='ctx'>         } while (num);</div><div class='ctx'>         len = sizeof(buf) - j;</div><div class='ctx'>         big2str_alloc(b2s, len + taillen);</div><div class='del'>-	MEMCPY(b2s-&gt;ptr, buf + j, char, len);</div><div class='add'>+        MEMCPY(b2s-&gt;ptr, buf + j, char, len);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         p = b2s-&gt;ptr;</div><div class='hunk'>@@ -4762,7 +4791,7 @@ big2str_2bdigits(struct big2str_struct *b2s, BDIGIT *xds, size_t xn, size_t tail</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> big2str_karatsuba(struct big2str_struct *b2s, BDIGIT *xds, size_t xn, size_t wn,</div><div class='del'>-		  int power_level, size_t taillen)</div><div class='add'>+                  int power_level, size_t taillen)</div><div class='ctx'> {</div><div class='ctx'>     VALUE b;</div><div class='ctx'>     size_t half_numdigits, lower_numdigits;</div><div class='hunk'>@@ -4792,17 +4821,17 @@ big2str_karatsuba(struct big2str_struct *b2s, BDIGIT *xds, size_t xn, size_t wn,</div><div class='ctx'>      */</div><div class='ctx'> </div><div class='ctx'>     if (xn == 0 || bary_zero_p(xds, xn)) {</div><div class='del'>-	if (b2s-&gt;ptr) {</div><div class='add'>+        if (b2s-&gt;ptr) {</div><div class='ctx'>             /* When x is zero, power_cache_get_power(base, power_level) should be cached already. */</div><div class='ctx'>             power_cache_get_power(b2s-&gt;base, power_level, &amp;len);</div><div class='del'>-	    memset(b2s-&gt;ptr, '0', len);</div><div class='add'>+            memset(b2s-&gt;ptr, '0', len);</div><div class='ctx'>             b2s-&gt;ptr += len;</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>         return;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (power_level == 0) {</div><div class='del'>-	big2str_2bdigits(b2s, xds, xn, taillen);</div><div class='add'>+        big2str_2bdigits(b2s, xds, xn, taillen);</div><div class='ctx'>         return;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -4830,7 +4859,7 @@ big2str_karatsuba(struct big2str_struct *b2s, BDIGIT *xds, size_t xn, size_t wn,</div><div class='ctx'>             memset(b2s-&gt;ptr, '0', len);</div><div class='ctx'>             b2s-&gt;ptr += len;</div><div class='ctx'>         }</div><div class='del'>-	big2str_2bdigits(b2s, xds, xn, taillen);</div><div class='add'>+        big2str_2bdigits(b2s, xds, xn, taillen);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         BDIGIT *qds, *rds;</div><div class='hunk'>@@ -4934,11 +4963,11 @@ big2str_generic(VALUE x, int base)</div><div class='ctx'>     BARY_TRUNC(xds, xn);</div><div class='ctx'> </div><div class='ctx'>     if (xn == 0) {</div><div class='del'>-	return rb_usascii_str_new2("0");</div><div class='add'>+        return rb_usascii_str_new2("0");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!valid_radix_p(base))</div><div class='del'>-	invalid_radix(base);</div><div class='add'>+        invalid_radix(base);</div><div class='ctx'> </div><div class='ctx'>     if (xn &gt;= LONG_MAX/BITSPERDIG) {</div><div class='ctx'>         rb_raise(rb_eRangeError, "bignum too big to convert into `string'");</div><div class='hunk'>@@ -4975,7 +5004,7 @@ big2str_generic(VALUE x, int base)</div><div class='ctx'>     b2s_data.ptr = NULL;</div><div class='ctx'> </div><div class='ctx'>     if (power_level == 0) {</div><div class='del'>-	big2str_2bdigits(&amp;b2s_data, xds, xn, 0);</div><div class='add'>+        big2str_2bdigits(&amp;b2s_data, xds, xn, 0);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         VALUE tmpw = 0;</div><div class='hunk'>@@ -4984,7 +5013,7 @@ big2str_generic(VALUE x, int base)</div><div class='ctx'>         wn = power_level * BIGDIVREM_EXTRA_WORDS + BIGNUM_LEN(power);</div><div class='ctx'>         wds = ALLOCV_N(BDIGIT, tmpw, xn + wn);</div><div class='ctx'>         MEMCPY(wds, xds, BDIGIT, xn);</div><div class='del'>-	big2str_karatsuba(&amp;b2s_data, wds, xn, wn, power_level, 0);</div><div class='add'>+        big2str_karatsuba(&amp;b2s_data, wds, xn, wn, power_level, 0);</div><div class='ctx'>         if (tmpw)</div><div class='ctx'>             ALLOCV_END(tmpw);</div><div class='ctx'>     }</div><div class='hunk'>@@ -5003,11 +5032,10 @@ rb_big2str_generic(VALUE x, int base)</div><div class='ctx'>     return big2str_generic(x, base);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'> static VALUE</div><div class='ctx'> big2str_gmp(VALUE x, int base)</div><div class='ctx'> {</div><div class='del'>-    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='ctx'>     mpz_t mx;</div><div class='ctx'>     size_t size;</div><div class='ctx'>     VALUE str;</div><div class='hunk'>@@ -5015,7 +5043,7 @@ big2str_gmp(VALUE x, int base)</div><div class='ctx'>     size_t xn = BIGNUM_LEN(x);</div><div class='ctx'> </div><div class='ctx'>     mpz_init(mx);</div><div class='del'>-    mpz_import(mx, xn, -1, sizeof(BDIGIT), 0, nails, xds);</div><div class='add'>+    bdigits_to_mpz(mx, xds, xn);</div><div class='ctx'> </div><div class='ctx'>     size = mpz_sizeinbase(mx, base);</div><div class='ctx'> </div><div class='hunk'>@@ -5051,7 +5079,7 @@ rb_big2str1(VALUE x, int base)</div><div class='ctx'>     size_t xn;</div><div class='ctx'> </div><div class='ctx'>     if (FIXNUM_P(x)) {</div><div class='del'>-	return rb_fix2str(x, base);</div><div class='add'>+        return rb_fix2str(x, base);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     bigtrunc(x);</div><div class='hunk'>@@ -5060,11 +5088,11 @@ rb_big2str1(VALUE x, int base)</div><div class='ctx'>     BARY_TRUNC(xds, xn);</div><div class='ctx'> </div><div class='ctx'>     if (xn == 0) {</div><div class='del'>-	return rb_usascii_str_new2("0");</div><div class='add'>+        return rb_usascii_str_new2("0");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!valid_radix_p(base))</div><div class='del'>-	invalid_radix(base);</div><div class='add'>+        invalid_radix(base);</div><div class='ctx'> </div><div class='ctx'>     if (xn &gt;= LONG_MAX/BITSPERDIG) {</div><div class='ctx'>         rb_raise(rb_eRangeError, "bignum too big to convert into `string'");</div><div class='hunk'>@@ -5075,7 +5103,7 @@ rb_big2str1(VALUE x, int base)</div><div class='ctx'>         return big2str_base_poweroftwo(x, base);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'>     if (GMP_BIG2STR_DIGITS &lt; xn) {</div><div class='ctx'>         return big2str_gmp(x, base);</div><div class='ctx'>     }</div><div class='hunk'>@@ -5111,7 +5139,7 @@ big2ulong(VALUE x, const char *type)</div><div class='ctx'> #else</div><div class='ctx'>     num = 0;</div><div class='ctx'>     for (i = 0; i &lt; len; i++) {</div><div class='del'>-	num &lt;&lt;= BITSPERDIG;</div><div class='add'>+        num &lt;&lt;= BITSPERDIG;</div><div class='ctx'>         num += (unsigned long)ds[len - i - 1]; /* overflow is already checked */</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -5164,13 +5192,13 @@ big2ull(VALUE x, const char *type)</div><div class='ctx'>     if (len == 0)</div><div class='ctx'>         return 0;</div><div class='ctx'>     if (BIGSIZE(x) &gt; SIZEOF_LONG_LONG)</div><div class='del'>-	rb_raise(rb_eRangeError, "bignum too big to convert into `%s'", type);</div><div class='add'>+        rb_raise(rb_eRangeError, "bignum too big to convert into `%s'", type);</div><div class='ctx'> #if SIZEOF_LONG_LONG &lt;= SIZEOF_BDIGIT</div><div class='ctx'>     num = (unsigned LONG_LONG)ds[0];</div><div class='ctx'> #else</div><div class='ctx'>     num = 0;</div><div class='ctx'>     for (i = 0; i &lt; len; i++) {</div><div class='del'>-	num = BIGUP(num);</div><div class='add'>+        num = BIGUP(num);</div><div class='ctx'>         num += ds[len - i - 1];</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -5220,23 +5248,23 @@ dbl2big(double d)</div><div class='ctx'>     double u = (d &lt; 0)?-d:d;</div><div class='ctx'> </div><div class='ctx'>     if (isinf(d)) {</div><div class='del'>-	rb_raise(rb_eFloatDomainError, d &lt; 0 ? "-Infinity" : "Infinity");</div><div class='add'>+        rb_raise(rb_eFloatDomainError, d &lt; 0 ? "-Infinity" : "Infinity");</div><div class='ctx'>     }</div><div class='ctx'>     if (isnan(d)) {</div><div class='del'>-	rb_raise(rb_eFloatDomainError, "NaN");</div><div class='add'>+        rb_raise(rb_eFloatDomainError, "NaN");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (1.0 &lt;= u) {</div><div class='del'>-	u /= (double)(BIGRAD);</div><div class='del'>-	i++;</div><div class='add'>+        u /= (double)(BIGRAD);</div><div class='add'>+        i++;</div><div class='ctx'>     }</div><div class='ctx'>     z = bignew(i, d&gt;=0);</div><div class='ctx'>     digits = BDIGITS(z);</div><div class='ctx'>     while (i--) {</div><div class='del'>-	u *= BIGRAD;</div><div class='del'>-	c = (BDIGIT)u;</div><div class='del'>-	u -= c;</div><div class='del'>-	digits[i] = c;</div><div class='add'>+        u *= BIGRAD;</div><div class='add'>+        c = (BDIGIT)u;</div><div class='add'>+        u -= c;</div><div class='add'>+        digits[i] = c;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return z;</div><div class='hunk'>@@ -5256,28 +5284,28 @@ big2dbl(VALUE x)</div><div class='ctx'>     BDIGIT *ds = BDIGITS(x), dl;</div><div class='ctx'> </div><div class='ctx'>     if (i) {</div><div class='del'>-	bits = i * BITSPERDIG - nlz(ds[i-1]);</div><div class='del'>-	if (bits &gt; DBL_MANT_DIG+DBL_MAX_EXP) {</div><div class='del'>-	    d = HUGE_VAL;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (bits &gt; DBL_MANT_DIG+1)</div><div class='del'>-		lo = (bits -= DBL_MANT_DIG+1) / BITSPERDIG;</div><div class='del'>-	    else</div><div class='del'>-		bits = 0;</div><div class='del'>-	    while (--i &gt; lo) {</div><div class='del'>-		d = ds[i] + BIGRAD*d;</div><div class='del'>-	    }</div><div class='del'>-	    dl = ds[i];</div><div class='del'>-	    if (bits &amp;&amp; (dl &amp; ((BDIGIT)1 &lt;&lt; (bits %= BITSPERDIG)))) {</div><div class='del'>-		int carry = (dl &amp; ~(BDIGMAX &lt;&lt; bits)) != 0;</div><div class='del'>-		if (!carry) {</div><div class='del'>-		    while (i-- &gt; 0) {</div><div class='del'>-			carry = ds[i] != 0;</div><div class='del'>-			if (carry) break;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		if (carry) {</div><div class='add'>+        bits = i * BITSPERDIG - nlz(ds[i-1]);</div><div class='add'>+        if (bits &gt; DBL_MANT_DIG+DBL_MAX_EXP) {</div><div class='add'>+            d = HUGE_VAL;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (bits &gt; DBL_MANT_DIG+1)</div><div class='add'>+                lo = (bits -= DBL_MANT_DIG+1) / BITSPERDIG;</div><div class='add'>+            else</div><div class='add'>+                bits = 0;</div><div class='add'>+            while (--i &gt; lo) {</div><div class='add'>+                d = ds[i] + BIGRAD*d;</div><div class='add'>+            }</div><div class='add'>+            dl = ds[i];</div><div class='add'>+            if (bits &amp;&amp; (dl &amp; ((BDIGIT)1 &lt;&lt; (bits %= BITSPERDIG)))) {</div><div class='add'>+                int carry = (dl &amp; ~(BDIGMAX &lt;&lt; bits)) != 0;</div><div class='add'>+                if (!carry) {</div><div class='add'>+                    while (i-- &gt; 0) {</div><div class='add'>+                        carry = ds[i] != 0;</div><div class='add'>+                        if (carry) break;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                if (carry) {</div><div class='ctx'>                     BDIGIT mask = BDIGMAX;</div><div class='ctx'>                     BDIGIT bit = 1;</div><div class='ctx'>                     mask &lt;&lt;= bits;</div><div class='hunk'>@@ -5285,19 +5313,19 @@ big2dbl(VALUE x)</div><div class='ctx'>                     dl &amp;= mask;</div><div class='ctx'>                     dl += bit;</div><div class='ctx'>                     dl = BIGLO(dl);</div><div class='del'>-		    if (!dl) d += 1;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    d = dl + BIGRAD*d;</div><div class='del'>-	    if (lo) {</div><div class='del'>-		if (lo &gt; INT_MAX / BITSPERDIG)</div><div class='del'>-		    d = HUGE_VAL;</div><div class='del'>-		else if (lo &lt; INT_MIN / BITSPERDIG)</div><div class='del'>-		    d = 0.0;</div><div class='del'>-		else</div><div class='del'>-		    d = ldexp(d, (int)(lo * BITSPERDIG));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+                    if (!dl) d += 1;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            d = dl + BIGRAD*d;</div><div class='add'>+            if (lo) {</div><div class='add'>+                if (lo &gt; INT_MAX / BITSPERDIG)</div><div class='add'>+                    d = HUGE_VAL;</div><div class='add'>+                else if (lo &lt; INT_MIN / BITSPERDIG)</div><div class='add'>+                    d = 0.0;</div><div class='add'>+                else</div><div class='add'>+                    d = ldexp(d, (int)(lo * BITSPERDIG));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (BIGNUM_NEGATIVE_P(x)) d = -d;</div><div class='ctx'>     return d;</div><div class='hunk'>@@ -5309,11 +5337,11 @@ rb_big2dbl(VALUE x)</div><div class='ctx'>     double d = big2dbl(x);</div><div class='ctx'> </div><div class='ctx'>     if (isinf(d)) {</div><div class='del'>-	rb_warning("Bignum out of Float range");</div><div class='del'>-	if (d &lt; 0.0)</div><div class='del'>-	    d = -HUGE_VAL;</div><div class='del'>-	else</div><div class='del'>-	    d = HUGE_VAL;</div><div class='add'>+        rb_warning("Integer out of Float range");</div><div class='add'>+        if (d &lt; 0.0)</div><div class='add'>+            d = -HUGE_VAL;</div><div class='add'>+        else</div><div class='add'>+            d = HUGE_VAL;</div><div class='ctx'>     }</div><div class='ctx'>     return d;</div><div class='ctx'> }</div><div class='hunk'>@@ -5368,13 +5396,22 @@ rb_integer_float_cmp(VALUE x, VALUE y)</div><div class='ctx'>     return INT2FIX(-1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if SIZEOF_LONG * CHAR_BIT &gt;= DBL_MANT_DIG /* assume FLT_RADIX == 2 */</div><div class='add'>+COMPILER_WARNING_PUSH</div><div class='add'>+#if __has_warning("-Wimplicit-int-float-conversion")</div><div class='add'>+COMPILER_WARNING_IGNORED(-Wimplicit-int-float-conversion)</div><div class='add'>+#endif</div><div class='add'>+static const double LONG_MAX_as_double = LONG_MAX;</div><div class='add'>+COMPILER_WARNING_POP</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='ctx'> rb_integer_float_eq(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     double yd = RFLOAT_VALUE(y);</div><div class='ctx'>     double yi, yf;</div><div class='ctx'> </div><div class='del'>-    if (isnan(yd) || isinf(yd))</div><div class='add'>+    if (!isfinite(yd))</div><div class='ctx'>         return Qfalse;</div><div class='ctx'>     yf = modf(yd, &amp;yi);</div><div class='ctx'>     if (yf != 0)</div><div class='hunk'>@@ -5382,48 +5419,45 @@ rb_integer_float_eq(VALUE x, VALUE y)</div><div class='ctx'>     if (FIXNUM_P(x)) {</div><div class='ctx'> #if SIZEOF_LONG * CHAR_BIT &lt; DBL_MANT_DIG /* assume FLT_RADIX == 2 */</div><div class='ctx'>         double xd = (double)FIX2LONG(x);</div><div class='del'>-        if (xd != yd)</div><div class='del'>-            return Qfalse;</div><div class='del'>-        return Qtrue;</div><div class='add'>+        return RBOOL(xd == yd);</div><div class='ctx'> #else</div><div class='ctx'>         long xn, yn;</div><div class='del'>-        if (yi &lt; LONG_MIN || LONG_MAX &lt; yi)</div><div class='add'>+        if (yi &lt; LONG_MIN || LONG_MAX_as_double &lt;= yi)</div><div class='ctx'>             return Qfalse;</div><div class='ctx'>         xn = FIX2LONG(x);</div><div class='ctx'>         yn = (long)yi;</div><div class='del'>-        if (xn != yn)</div><div class='del'>-            return Qfalse;</div><div class='del'>-        return Qtrue;</div><div class='add'>+        return RBOOL(xn == yn);</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     y = rb_dbl2big(yi);</div><div class='ctx'>     return rb_big_eq(x, y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='ctx'> rb_big_cmp(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	x = bigfixize(x);</div><div class='add'>+        x = bigfixize(x);</div><div class='ctx'>         if (FIXNUM_P(x)) {</div><div class='del'>-	    /* SIGNED_VALUE and Fixnum have same sign-bits, same</div><div class='del'>-	     * order */</div><div class='del'>-	    SIGNED_VALUE sx = (SIGNED_VALUE)x, sy = (SIGNED_VALUE)y;</div><div class='del'>-	    if (sx &lt; sy) return INT2FIX(-1);</div><div class='del'>-	    return INT2FIX(sx &gt; sy);</div><div class='add'>+            /* SIGNED_VALUE and Fixnum have same sign-bits, same</div><div class='add'>+             * order */</div><div class='add'>+            SIGNED_VALUE sx = (SIGNED_VALUE)x, sy = (SIGNED_VALUE)y;</div><div class='add'>+            if (sx &lt; sy) return INT2FIX(-1);</div><div class='add'>+            return INT2FIX(sx &gt; sy);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='del'>-	if (BIGNUM_SIGN(x) == BIGNUM_SIGN(y)) {</div><div class='del'>-	    int cmp = bary_cmp(BDIGITS(x), BIGNUM_LEN(x), BDIGITS(y), BIGNUM_LEN(y));</div><div class='del'>-	    return INT2FIX(BIGNUM_SIGN(x) ? cmp : -cmp);</div><div class='del'>-	}</div><div class='add'>+        if (BIGNUM_SIGN(x) == BIGNUM_SIGN(y)) {</div><div class='add'>+            int cmp = bary_cmp(BDIGITS(x), BIGNUM_LEN(x), BDIGITS(y), BIGNUM_LEN(y));</div><div class='add'>+            return INT2FIX(BIGNUM_SIGN(x) ? cmp : -cmp);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_FLOAT_TYPE_P(y)) {</div><div class='ctx'>         return rb_integer_float_cmp(x, y);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_num_coerce_cmp(x, y, idCmp);</div><div class='add'>+        return rb_num_coerce_cmp(x, y, idCmp);</div><div class='ctx'>     }</div><div class='ctx'>     return INT2FIX(BIGNUM_SIGN(x) ? 1 : -1);</div><div class='ctx'> }</div><div class='hunk'>@@ -5442,30 +5476,30 @@ big_op(VALUE x, VALUE y, enum big_op_t op)</div><div class='ctx'>     int n;</div><div class='ctx'> </div><div class='ctx'>     if (RB_INTEGER_TYPE_P(y)) {</div><div class='del'>-	rel = rb_big_cmp(x, y);</div><div class='add'>+        rel = rb_big_cmp(x, y);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_FLOAT_TYPE_P(y)) {</div><div class='ctx'>         rel = rb_integer_float_cmp(x, y);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ID id = 0;</div><div class='del'>-	switch (op) {</div><div class='del'>-	  case big_op_gt: id = '&gt;'; break;</div><div class='del'>-	  case big_op_ge: id = idGE; break;</div><div class='del'>-	  case big_op_lt: id = '&lt;'; break;</div><div class='del'>-	  case big_op_le: id = idLE; break;</div><div class='del'>-	}</div><div class='del'>-	return rb_num_coerce_relop(x, y, id);</div><div class='add'>+        ID id = 0;</div><div class='add'>+        switch (op) {</div><div class='add'>+          case big_op_gt: id = '&gt;'; break;</div><div class='add'>+          case big_op_ge: id = idGE; break;</div><div class='add'>+          case big_op_lt: id = '&lt;'; break;</div><div class='add'>+          case big_op_le: id = idLE; break;</div><div class='add'>+        }</div><div class='add'>+        return rb_num_coerce_relop(x, y, id);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(rel)) return Qfalse;</div><div class='ctx'>     n = FIX2INT(rel);</div><div class='ctx'> </div><div class='ctx'>     switch (op) {</div><div class='del'>-	case big_op_gt: return n &gt;  0 ? Qtrue : Qfalse;</div><div class='del'>-	case big_op_ge: return n &gt;= 0 ? Qtrue : Qfalse;</div><div class='del'>-	case big_op_lt: return n &lt;  0 ? Qtrue : Qfalse;</div><div class='del'>-	case big_op_le: return n &lt;= 0 ? Qtrue : Qfalse;</div><div class='add'>+        case big_op_gt: return RBOOL(n &gt;  0);</div><div class='add'>+        case big_op_ge: return RBOOL(n &gt;= 0);</div><div class='add'>+        case big_op_lt: return RBOOL(n &lt;  0);</div><div class='add'>+        case big_op_le: return RBOOL(n &lt;= 0);</div><div class='ctx'>     }</div><div class='ctx'>     return Qundef;</div><div class='ctx'> }</div><div class='hunk'>@@ -5499,8 +5533,8 @@ rb_big_le(VALUE x, VALUE y)</div><div class='ctx'>  *     big == obj  -&gt; true or false</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns &lt;code&gt;true&lt;/code&gt; only if &lt;i&gt;obj&lt;/i&gt; has the same value</div><div class='del'>- *  as &lt;i&gt;big&lt;/i&gt;. Contrast this with &lt;code&gt;Integer#eql?&lt;/code&gt;, which</div><div class='del'>- *  requires &lt;i&gt;obj&lt;/i&gt; to be a &lt;code&gt;Integer&lt;/code&gt;.</div><div class='add'>+ *  as &lt;i&gt;big&lt;/i&gt;. Contrast this with Integer#eql?, which requires</div><div class='add'>+ *  &lt;i&gt;obj&lt;/i&gt; to be an Integer.</div><div class='ctx'>  *</div><div class='ctx'>  *     68719476736 == 68719476736.0   #=&gt; true</div><div class='ctx'>  */</div><div class='hunk'>@@ -5509,7 +5543,7 @@ VALUE</div><div class='ctx'> rb_big_eq(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	return bignorm(x) == y ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(bignorm(x) == y);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='ctx'>     }</div><div class='hunk'>@@ -5517,12 +5551,11 @@ rb_big_eq(VALUE x, VALUE y)</div><div class='ctx'>         return rb_integer_float_eq(x, y);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_equal(y, x);</div><div class='add'>+        return rb_equal(y, x);</div><div class='ctx'>     }</div><div class='ctx'>     if (BIGNUM_SIGN(x) != BIGNUM_SIGN(y)) return Qfalse;</div><div class='ctx'>     if (BIGNUM_LEN(x) != BIGNUM_LEN(y)) return Qfalse;</div><div class='del'>-    if (MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,BIGNUM_LEN(y)) != 0) return Qfalse;</div><div class='del'>-    return Qtrue;</div><div class='add'>+    return RBOOL(MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,BIGNUM_LEN(y)) == 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -5531,8 +5564,7 @@ rb_big_eql(VALUE x, VALUE y)</div><div class='ctx'>     if (!RB_BIGNUM_TYPE_P(y)) return Qfalse;</div><div class='ctx'>     if (BIGNUM_SIGN(x) != BIGNUM_SIGN(y)) return Qfalse;</div><div class='ctx'>     if (BIGNUM_LEN(x) != BIGNUM_LEN(y)) return Qfalse;</div><div class='del'>-    if (MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,BIGNUM_LEN(y)) != 0) return Qfalse;</div><div class='del'>-    return Qtrue;</div><div class='add'>+    return RBOOL(MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,BIGNUM_LEN(y)) == 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -5626,10 +5658,10 @@ bigsub_int(VALUE x, long y0)</div><div class='ctx'>     assert(xn == zn);</div><div class='ctx'>     num = (BDIGIT_DBL_SIGNED)xds[0] - y;</div><div class='ctx'>     if (xn == 1 &amp;&amp; num &lt; 0) {</div><div class='del'>-	BIGNUM_NEGATE(z);</div><div class='del'>-	zds[0] = (BDIGIT)-num;</div><div class='del'>-	RB_GC_GUARD(x);</div><div class='del'>-	return bignorm(z);</div><div class='add'>+        BIGNUM_NEGATE(z);</div><div class='add'>+        zds[0] = (BDIGIT)-num;</div><div class='add'>+        RB_GC_GUARD(x);</div><div class='add'>+        return bignorm(z);</div><div class='ctx'>     }</div><div class='ctx'>     zds[0] = BIGLO(num);</div><div class='ctx'>     num = BIGDN(num);</div><div class='hunk'>@@ -5641,10 +5673,10 @@ bigsub_int(VALUE x, long y0)</div><div class='ctx'>     num = 0;</div><div class='ctx'>     for (i=0; i &lt; xn; i++) {</div><div class='ctx'>         if (y == 0) goto y_is_zero_x;</div><div class='del'>-	num += (BDIGIT_DBL_SIGNED)xds[i] - BIGLO(y);</div><div class='del'>-	zds[i] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='del'>-	y = BIGDN(y);</div><div class='add'>+        num += (BDIGIT_DBL_SIGNED)xds[i] - BIGLO(y);</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='add'>+        y = BIGDN(y);</div><div class='ctx'>     }</div><div class='ctx'>     for (; i &lt; zn; i++) {</div><div class='ctx'>         if (y == 0) goto y_is_zero_z;</div><div class='hunk'>@@ -5659,9 +5691,9 @@ bigsub_int(VALUE x, long y0)</div><div class='ctx'>     for (; i &lt; xn; i++) {</div><div class='ctx'>       y_is_zero_x:</div><div class='ctx'>         if (num == 0) goto num_is_zero_x;</div><div class='del'>-	num += xds[i];</div><div class='del'>-	zds[i] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='add'>+        num += xds[i];</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='ctx'>     }</div><div class='ctx'> #if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='ctx'>     for (; i &lt; zn; i++) {</div><div class='hunk'>@@ -5675,7 +5707,7 @@ bigsub_int(VALUE x, long y0)</div><div class='ctx'> </div><div class='ctx'>     for (; i &lt; xn; i++) {</div><div class='ctx'>       num_is_zero_x:</div><div class='del'>-	zds[i] = xds[i];</div><div class='add'>+        zds[i] = xds[i];</div><div class='ctx'>     }</div><div class='ctx'> #if SIZEOF_BDIGIT &lt; SIZEOF_LONG</div><div class='ctx'>     for (; i &lt; zn; i++) {</div><div class='hunk'>@@ -5689,7 +5721,7 @@ bigsub_int(VALUE x, long y0)</div><div class='ctx'>     assert(num == 0 || num == -1);</div><div class='ctx'>     if (num &lt; 0) {</div><div class='ctx'>         get2comp(z);</div><div class='del'>-	BIGNUM_NEGATE(z);</div><div class='add'>+        BIGNUM_NEGATE(z);</div><div class='ctx'>     }</div><div class='ctx'>     RB_GC_GUARD(x);</div><div class='ctx'>     return bignorm(z);</div><div class='hunk'>@@ -5732,17 +5764,17 @@ bigadd_int(VALUE x, long y)</div><div class='ctx'>     num = 0;</div><div class='ctx'>     for (i=0; i &lt; xn; i++) {</div><div class='ctx'>         if (y == 0) goto y_is_zero_x;</div><div class='del'>-	num += (BDIGIT_DBL)xds[i] + BIGLO(y);</div><div class='del'>-	zds[i] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='del'>-	y = BIGDN(y);</div><div class='add'>+        num += (BDIGIT_DBL)xds[i] + BIGLO(y);</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='add'>+        y = BIGDN(y);</div><div class='ctx'>     }</div><div class='ctx'>     for (; i &lt; zn; i++) {</div><div class='ctx'>         if (y == 0) goto y_is_zero_z;</div><div class='del'>-	num += BIGLO(y);</div><div class='del'>-	zds[i] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='del'>-	y = BIGDN(y);</div><div class='add'>+        num += BIGLO(y);</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='add'>+        y = BIGDN(y);</div><div class='ctx'>     }</div><div class='ctx'>     goto finish;</div><div class='ctx'> </div><div class='hunk'>@@ -5751,25 +5783,25 @@ bigadd_int(VALUE x, long y)</div><div class='ctx'>     for (;i &lt; xn; i++) {</div><div class='ctx'>       y_is_zero_x:</div><div class='ctx'>         if (num == 0) goto num_is_zero_x;</div><div class='del'>-	num += (BDIGIT_DBL)xds[i];</div><div class='del'>-	zds[i] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='add'>+        num += (BDIGIT_DBL)xds[i];</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='ctx'>     }</div><div class='ctx'>     for (; i &lt; zn; i++) {</div><div class='ctx'>       y_is_zero_z:</div><div class='ctx'>         if (num == 0) goto num_is_zero_z;</div><div class='del'>-	zds[i] = BIGLO(num);</div><div class='del'>-	num = BIGDN(num);</div><div class='add'>+        zds[i] = BIGLO(num);</div><div class='add'>+        num = BIGDN(num);</div><div class='ctx'>     }</div><div class='ctx'>     goto finish;</div><div class='ctx'> </div><div class='ctx'>     for (;i &lt; xn; i++) {</div><div class='ctx'>       num_is_zero_x:</div><div class='del'>-	zds[i] = xds[i];</div><div class='add'>+        zds[i] = xds[i];</div><div class='ctx'>     }</div><div class='ctx'>     for (; i &lt; zn; i++) {</div><div class='ctx'>       num_is_zero_z:</div><div class='del'>-	zds[i] = 0;</div><div class='add'>+        zds[i] = 0;</div><div class='ctx'>     }</div><div class='ctx'>     goto finish;</div><div class='ctx'> </div><div class='hunk'>@@ -5786,15 +5818,15 @@ bigadd(VALUE x, VALUE y, int sign)</div><div class='ctx'> </div><div class='ctx'>     sign = (sign == BIGNUM_SIGN(y));</div><div class='ctx'>     if (BIGNUM_SIGN(x) != sign) {</div><div class='del'>-	if (sign) return bigsub(y, x);</div><div class='del'>-	return bigsub(x, y);</div><div class='add'>+        if (sign) return bigsub(y, x);</div><div class='add'>+        return bigsub(x, y);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (BIGNUM_LEN(x) &gt; BIGNUM_LEN(y)) {</div><div class='del'>-	len = BIGNUM_LEN(x) + 1;</div><div class='add'>+        len = BIGNUM_LEN(x) + 1;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	len = BIGNUM_LEN(y) + 1;</div><div class='add'>+        len = BIGNUM_LEN(y) + 1;</div><div class='ctx'>     }</div><div class='ctx'>     z = bignew(len, sign);</div><div class='ctx'> </div><div class='hunk'>@@ -5811,26 +5843,26 @@ rb_big_plus(VALUE x, VALUE y)</div><div class='ctx'>     long n;</div><div class='ctx'> </div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	n = FIX2LONG(y);</div><div class='del'>-	if ((n &gt; 0) != BIGNUM_SIGN(x)) {</div><div class='del'>-	    if (n &lt; 0) {</div><div class='del'>-		n = -n;</div><div class='del'>-	    }</div><div class='del'>-	    return bigsub_int(x, n);</div><div class='del'>-	}</div><div class='del'>-	if (n &lt; 0) {</div><div class='del'>-	    n = -n;</div><div class='del'>-	}</div><div class='del'>-	return bigadd_int(x, n);</div><div class='add'>+        n = FIX2LONG(y);</div><div class='add'>+        if ((n &gt; 0) != BIGNUM_SIGN(x)) {</div><div class='add'>+            if (n &lt; 0) {</div><div class='add'>+                n = -n;</div><div class='add'>+            }</div><div class='add'>+            return bigsub_int(x, n);</div><div class='add'>+        }</div><div class='add'>+        if (n &lt; 0) {</div><div class='add'>+            n = -n;</div><div class='add'>+        }</div><div class='add'>+        return bigadd_int(x, n);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='del'>-	return bignorm(bigadd(x, y, 1));</div><div class='add'>+        return bignorm(bigadd(x, y, 1));</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_FLOAT_TYPE_P(y)) {</div><div class='del'>-	return DBL2NUM(rb_big2dbl(x) + RFLOAT_VALUE(y));</div><div class='add'>+        return DBL2NUM(rb_big2dbl(x) + RFLOAT_VALUE(y));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_num_coerce_bin(x, y, '+');</div><div class='add'>+        return rb_num_coerce_bin(x, y, '+');</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5840,26 +5872,26 @@ rb_big_minus(VALUE x, VALUE y)</div><div class='ctx'>     long n;</div><div class='ctx'> </div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	n = FIX2LONG(y);</div><div class='del'>-	if ((n &gt; 0) != BIGNUM_SIGN(x)) {</div><div class='del'>-	    if (n &lt; 0) {</div><div class='del'>-		n = -n;</div><div class='del'>-	    }</div><div class='del'>-	    return bigadd_int(x, n);</div><div class='del'>-	}</div><div class='del'>-	if (n &lt; 0) {</div><div class='del'>-	    n = -n;</div><div class='del'>-	}</div><div class='del'>-	return bigsub_int(x, n);</div><div class='add'>+        n = FIX2LONG(y);</div><div class='add'>+        if ((n &gt; 0) != BIGNUM_SIGN(x)) {</div><div class='add'>+            if (n &lt; 0) {</div><div class='add'>+                n = -n;</div><div class='add'>+            }</div><div class='add'>+            return bigadd_int(x, n);</div><div class='add'>+        }</div><div class='add'>+        if (n &lt; 0) {</div><div class='add'>+            n = -n;</div><div class='add'>+        }</div><div class='add'>+        return bigsub_int(x, n);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='del'>-	return bignorm(bigadd(x, y, 0));</div><div class='add'>+        return bignorm(bigadd(x, y, 0));</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_FLOAT_TYPE_P(y)) {</div><div class='del'>-	return DBL2NUM(rb_big2dbl(x) - RFLOAT_VALUE(y));</div><div class='add'>+        return DBL2NUM(rb_big2dbl(x) - RFLOAT_VALUE(y));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_num_coerce_bin(x, y, '-');</div><div class='add'>+        return rb_num_coerce_bin(x, y, '-');</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5918,15 +5950,15 @@ VALUE</div><div class='ctx'> rb_big_mul(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+        y = rb_int2big(FIX2LONG(y));</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_FLOAT_TYPE_P(y)) {</div><div class='del'>-	return DBL2NUM(rb_big2dbl(x) * RFLOAT_VALUE(y));</div><div class='add'>+        return DBL2NUM(rb_big2dbl(x) * RFLOAT_VALUE(y));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_num_coerce_bin(x, y, '*');</div><div class='add'>+        return rb_num_coerce_bin(x, y, '*');</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return bignorm(bigmul0(x, y));</div><div class='hunk'>@@ -5953,21 +5985,21 @@ bigdivrem(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp)</div><div class='ctx'>     BARY_TRUNC(xds, xn);</div><div class='ctx'> </div><div class='ctx'>     if (xn &lt; yn || (xn == yn &amp;&amp; xds[xn - 1] &lt; yds[yn - 1])) {</div><div class='del'>-	if (divp) *divp = rb_int2big(0);</div><div class='del'>-	if (modp) *modp = x;</div><div class='del'>-	return Qnil;</div><div class='add'>+        if (divp) *divp = rb_int2big(0);</div><div class='add'>+        if (modp) *modp = x;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     if (yn == 1) {</div><div class='del'>-	dd = yds[0];</div><div class='del'>-	z = bignew(xn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='del'>-	zds = BDIGITS(z);</div><div class='add'>+        dd = yds[0];</div><div class='add'>+        z = bignew(xn, BIGNUM_SIGN(x)==BIGNUM_SIGN(y));</div><div class='add'>+        zds = BDIGITS(z);</div><div class='ctx'>         dd = bigdivrem_single(zds, xds, xn, dd);</div><div class='del'>-	if (modp) {</div><div class='del'>-	    *modp = rb_uint2big((uintptr_t)dd);</div><div class='del'>-	    BIGNUM_SET_SIGN(*modp, BIGNUM_SIGN(x));</div><div class='del'>-	}</div><div class='del'>-	if (divp) *divp = z;</div><div class='del'>-	return Qnil;</div><div class='add'>+        if (modp) {</div><div class='add'>+            *modp = rb_uint2big((uintptr_t)dd);</div><div class='add'>+            BIGNUM_SET_SIGN(*modp, BIGNUM_SIGN(x));</div><div class='add'>+        }</div><div class='add'>+        if (divp) *divp = z;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     if (xn == 2 &amp;&amp; yn == 2) {</div><div class='ctx'>         BDIGIT_DBL x0 = bary2bdigitdbl(xds, 2);</div><div class='hunk'>@@ -6032,11 +6064,11 @@ bigdivmod(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp)</div><div class='ctx'> </div><div class='ctx'>     bigdivrem(x, y, divp, &amp;mod);</div><div class='ctx'>     if (BIGNUM_SIGN(x) != BIGNUM_SIGN(y) &amp;&amp; !BIGZEROP(mod)) {</div><div class='del'>-	if (divp) *divp = bigadd(*divp, rb_int2big(1), 0);</div><div class='del'>-	if (modp) *modp = bigadd(mod, y, 1);</div><div class='add'>+        if (divp) *divp = bigadd(*divp, rb_int2big(1), 0);</div><div class='add'>+        if (modp) *modp = bigadd(mod, y, 1);</div><div class='ctx'>     }</div><div class='ctx'>     else if (modp) {</div><div class='del'>-	*modp = mod;</div><div class='add'>+        *modp = mod;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6047,25 +6079,25 @@ rb_big_divide(VALUE x, VALUE y, ID op)</div><div class='ctx'>     VALUE z;</div><div class='ctx'> </div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+        y = rb_int2big(FIX2LONG(y));</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_FLOAT_TYPE_P(y)) {</div><div class='del'>-	if (op == '/') {</div><div class='add'>+        if (op == '/') {</div><div class='ctx'>             double dx = rb_big2dbl(x);</div><div class='ctx'>             return rb_flo_div_flo(DBL2NUM(dx), y);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='ctx'>             VALUE v;</div><div class='del'>-	    double dy = RFLOAT_VALUE(y);</div><div class='del'>-	    if (dy == 0.0) rb_num_zerodiv();</div><div class='add'>+            double dy = RFLOAT_VALUE(y);</div><div class='add'>+            if (dy == 0.0) rb_num_zerodiv();</div><div class='ctx'>             v = rb_big_divide(x, y, '/');</div><div class='ctx'>             return rb_dbl2big(RFLOAT_VALUE(v));</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_num_coerce_bin(x, y, op);</div><div class='add'>+        return rb_num_coerce_bin(x, y, op);</div><div class='ctx'>     }</div><div class='ctx'>     bigdivmod(x, y, &amp;z, 0);</div><div class='ctx'> </div><div class='hunk'>@@ -6081,7 +6113,7 @@ rb_big_div(VALUE x, VALUE y)</div><div class='ctx'> VALUE</div><div class='ctx'> rb_big_idiv(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    return rb_big_divide(x, y, rb_intern("div"));</div><div class='add'>+    return rb_big_divide(x, y, idDiv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -6090,10 +6122,10 @@ rb_big_modulo(VALUE x, VALUE y)</div><div class='ctx'>     VALUE z;</div><div class='ctx'> </div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+        y = rb_int2big(FIX2LONG(y));</div><div class='ctx'>     }</div><div class='ctx'>     else if (!RB_BIGNUM_TYPE_P(y)) {</div><div class='del'>-	return rb_num_coerce_bin(x, y, '%');</div><div class='add'>+        return rb_num_coerce_bin(x, y, '%');</div><div class='ctx'>     }</div><div class='ctx'>     bigdivmod(x, y, 0, &amp;z);</div><div class='ctx'> </div><div class='hunk'>@@ -6106,10 +6138,10 @@ rb_big_remainder(VALUE x, VALUE y)</div><div class='ctx'>     VALUE z;</div><div class='ctx'> </div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+        y = rb_int2big(FIX2LONG(y));</div><div class='ctx'>     }</div><div class='ctx'>     else if (!RB_BIGNUM_TYPE_P(y)) {</div><div class='del'>-	return rb_num_coerce_bin(x, y, rb_intern("remainder"));</div><div class='add'>+        return rb_num_coerce_bin(x, y, rb_intern("remainder"));</div><div class='ctx'>     }</div><div class='ctx'>     bigdivrem(x, y, 0, &amp;z);</div><div class='ctx'> </div><div class='hunk'>@@ -6122,10 +6154,10 @@ rb_big_divmod(VALUE x, VALUE y)</div><div class='ctx'>     VALUE div, mod;</div><div class='ctx'> </div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+        y = rb_int2big(FIX2LONG(y));</div><div class='ctx'>     }</div><div class='ctx'>     else if (!RB_BIGNUM_TYPE_P(y)) {</div><div class='del'>-	return rb_num_coerce_bin(x, y, rb_intern("divmod"));</div><div class='add'>+        return rb_num_coerce_bin(x, y, idDivmod);</div><div class='ctx'>     }</div><div class='ctx'>     bigdivmod(x, y, &amp;div, &amp;mod);</div><div class='ctx'> </div><div class='hunk'>@@ -6136,9 +6168,9 @@ static VALUE</div><div class='ctx'> big_shift(VALUE x, long n)</div><div class='ctx'> {</div><div class='ctx'>     if (n &lt; 0)</div><div class='del'>-	return big_lshift(x, 1+(unsigned long)(-(n+1)));</div><div class='add'>+        return big_lshift(x, 1+(unsigned long)(-(n+1)));</div><div class='ctx'>     else if (n &gt; 0)</div><div class='del'>-	return big_rshift(x, (unsigned long)n);</div><div class='add'>+        return big_rshift(x, (unsigned long)n);</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6162,9 +6194,9 @@ big_fdiv(VALUE x, VALUE y, long ey)</div><div class='ctx'>     l = ex - ey;</div><div class='ctx'> #if SIZEOF_LONG &gt; SIZEOF_INT</div><div class='ctx'>     {</div><div class='del'>-	/* Visual C++ can't be here */</div><div class='del'>-	if (l &gt; INT_MAX) return HUGE_VAL;</div><div class='del'>-	if (l &lt; INT_MIN) return 0.0;</div><div class='add'>+        /* Visual C++ can't be here */</div><div class='add'>+        if (l &gt; INT_MAX) return HUGE_VAL;</div><div class='add'>+        if (l &lt; INT_MIN) return 0.0;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return ldexp(big2dbl(z), (int)l);</div><div class='hunk'>@@ -6198,22 +6230,22 @@ rb_big_fdiv_double(VALUE x, VALUE y)</div><div class='ctx'> </div><div class='ctx'>     dx = big2dbl(x);</div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	dy = (double)FIX2LONG(y);</div><div class='del'>-	if (isinf(dx))</div><div class='del'>-	    return big_fdiv_int(x, rb_int2big(FIX2LONG(y)));</div><div class='add'>+        dy = (double)FIX2LONG(y);</div><div class='add'>+        if (isinf(dx))</div><div class='add'>+            return big_fdiv_int(x, rb_int2big(FIX2LONG(y)));</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='del'>-	return big_fdiv_int(x, y);</div><div class='add'>+        return big_fdiv_int(x, y);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_FLOAT_TYPE_P(y)) {</div><div class='del'>-	dy = RFLOAT_VALUE(y);</div><div class='del'>-	if (isnan(dy))</div><div class='del'>-	    return dy;</div><div class='del'>-	if (isinf(dx))</div><div class='del'>-	    return big_fdiv_float(x, y);</div><div class='add'>+        dy = RFLOAT_VALUE(y);</div><div class='add'>+        if (isnan(dy))</div><div class='add'>+            return dy;</div><div class='add'>+        if (isinf(dx))</div><div class='add'>+            return big_fdiv_float(x, y);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return NUM2DBL(rb_num_coerce_bin(x, y, rb_intern("fdiv")));</div><div class='add'>+        return NUM2DBL(rb_num_coerce_bin(x, y, idFdiv));</div><div class='ctx'>     }</div><div class='ctx'>     v = rb_flo_div_flo(DBL2NUM(dx), DBL2NUM(dy));</div><div class='ctx'>     return NUM2DBL(v);</div><div class='hunk'>@@ -6235,53 +6267,53 @@ rb_big_pow(VALUE x, VALUE y)</div><div class='ctx'>     if (y == INT2FIX(0)) return INT2FIX(1);</div><div class='ctx'>     if (y == INT2FIX(1)) return x;</div><div class='ctx'>     if (RB_FLOAT_TYPE_P(y)) {</div><div class='del'>-	d = RFLOAT_VALUE(y);</div><div class='del'>-	if ((BIGNUM_NEGATIVE_P(x) &amp;&amp; !BIGZEROP(x))) {</div><div class='add'>+        d = RFLOAT_VALUE(y);</div><div class='add'>+        if ((BIGNUM_NEGATIVE_P(x) &amp;&amp; !BIGZEROP(x))) {</div><div class='ctx'>             return rb_dbl_complex_new_polar_pi(pow(-rb_big2dbl(x), d), d);</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='del'>-	y = bignorm(y);</div><div class='del'>-	if (FIXNUM_P(y))</div><div class='del'>-	    goto again;</div><div class='del'>-	rb_warn("in a**b, b may be too big");</div><div class='del'>-	d = rb_big2dbl(y);</div><div class='add'>+        y = bignorm(y);</div><div class='add'>+        if (FIXNUM_P(y))</div><div class='add'>+            goto again;</div><div class='add'>+        rb_warn("in a**b, b may be too big");</div><div class='add'>+        d = rb_big2dbl(y);</div><div class='ctx'>     }</div><div class='ctx'>     else if (FIXNUM_P(y)) {</div><div class='del'>-	yy = FIX2LONG(y);</div><div class='add'>+        yy = FIX2LONG(y);</div><div class='ctx'> </div><div class='ctx'>         if (yy &lt; 0) {</div><div class='del'>-            x = rb_big_pow(x, INT2NUM(-yy));</div><div class='add'>+            x = rb_big_pow(x, LONG2NUM(-yy));</div><div class='ctx'>             if (RB_INTEGER_TYPE_P(x))</div><div class='ctx'>                 return rb_rational_raw(INT2FIX(1), x);</div><div class='ctx'>             else</div><div class='ctx'>                 return DBL2NUM(1.0 / NUM2DBL(x));</div><div class='ctx'>         }</div><div class='del'>-	else {</div><div class='del'>-	    VALUE z = 0;</div><div class='del'>-	    SIGNED_VALUE mask;</div><div class='add'>+        else {</div><div class='add'>+            VALUE z = 0;</div><div class='add'>+            SIGNED_VALUE mask;</div><div class='ctx'>             const size_t xbits = rb_absint_numwords(x, 1, NULL);</div><div class='del'>-	    const size_t BIGLEN_LIMIT = 32*1024*1024;</div><div class='add'>+            const size_t BIGLEN_LIMIT = 32*1024*1024;</div><div class='ctx'> </div><div class='del'>-	    if (xbits == (size_t)-1 ||</div><div class='add'>+            if (xbits == (size_t)-1 ||</div><div class='ctx'>                 (xbits &gt; BIGLEN_LIMIT) ||</div><div class='ctx'>                 (xbits * yy &gt; BIGLEN_LIMIT)) {</div><div class='del'>-		rb_warn("in a**b, b may be too big");</div><div class='del'>-		d = (double)yy;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		for (mask = FIXNUM_MAX + 1; mask; mask &gt;&gt;= 1) {</div><div class='del'>-		    if (z) z = bigsq(z);</div><div class='del'>-		    if (yy &amp; mask) {</div><div class='del'>-			z = z ? bigtrunc(bigmul0(z, x)) : x;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		return bignorm(z);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+                rb_warn("in a**b, b may be too big");</div><div class='add'>+                d = (double)yy;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                for (mask = FIXNUM_MAX + 1; mask; mask &gt;&gt;= 1) {</div><div class='add'>+                    if (z) z = bigsq(z);</div><div class='add'>+                    if (yy &amp; mask) {</div><div class='add'>+                        z = z ? bigtrunc(bigmul0(z, x)) : x;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                return bignorm(z);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_num_coerce_bin(x, y, idPow);</div><div class='add'>+        return rb_num_coerce_bin(x, y, idPow);</div><div class='ctx'>     }</div><div class='ctx'>     return DBL2NUM(pow(rb_big2dbl(x), d));</div><div class='ctx'> }</div><div class='hunk'>@@ -6301,8 +6333,8 @@ bigand_int(VALUE x, long xn, BDIGIT hibitsx, long y)</div><div class='ctx'>     xds = BDIGITS(x);</div><div class='ctx'> #if SIZEOF_BDIGIT &gt;= SIZEOF_LONG</div><div class='ctx'>     if (!hibitsy) {</div><div class='del'>-	y &amp;= xds[0];</div><div class='del'>-	return LONG2NUM(y);</div><div class='add'>+        y &amp;= xds[0];</div><div class='add'>+        return LONG2NUM(y);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -6331,10 +6363,10 @@ bigand_int(VALUE x, long xn, BDIGIT hibitsx, long y)</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     for (;i &lt; xn; i++) {</div><div class='del'>-	zds[i] = xds[i] &amp; hibitsy;</div><div class='add'>+        zds[i] = xds[i] &amp; hibitsy;</div><div class='ctx'>     }</div><div class='ctx'>     for (;i &lt; zn; i++) {</div><div class='del'>-	zds[i] = hibitsx &amp; hibitsy;</div><div class='add'>+        zds[i] = hibitsx &amp; hibitsy;</div><div class='ctx'>     }</div><div class='ctx'>     twocomp2abs_bang(z, hibitsx &amp;&amp; hibitsy);</div><div class='ctx'>     RB_GC_GUARD(x);</div><div class='hunk'>@@ -6354,12 +6386,12 @@ rb_big_and(VALUE x, VALUE y)</div><div class='ctx'>     long tmpn;</div><div class='ctx'> </div><div class='ctx'>     if (!RB_INTEGER_TYPE_P(y)) {</div><div class='del'>-	return rb_num_coerce_bit(x, y, '&amp;');</div><div class='add'>+        return rb_num_coerce_bit(x, y, '&amp;');</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     hibitsx = abs2twocomp(&amp;x, &amp;xn);</div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	return bigand_int(x, xn, hibitsx, FIX2LONG(y));</div><div class='add'>+        return bigand_int(x, xn, hibitsx, FIX2LONG(y));</div><div class='ctx'>     }</div><div class='ctx'>     hibitsy = abs2twocomp(&amp;y, &amp;yn);</div><div class='ctx'>     if (xn &gt; yn) {</div><div class='hunk'>@@ -6381,10 +6413,10 @@ rb_big_and(VALUE x, VALUE y)</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;n1; i++) {</div><div class='del'>-	zds[i] = ds1[i] &amp; ds2[i];</div><div class='add'>+        zds[i] = ds1[i] &amp; ds2[i];</div><div class='ctx'>     }</div><div class='ctx'>     for (; i&lt;n2; i++) {</div><div class='del'>-	zds[i] = hibits1 &amp; ds2[i];</div><div class='add'>+        zds[i] = hibits1 &amp; ds2[i];</div><div class='ctx'>     }</div><div class='ctx'>     twocomp2abs_bang(z, hibits1 &amp;&amp; hibits2);</div><div class='ctx'>     RB_GC_GUARD(x);</div><div class='hunk'>@@ -6473,12 +6505,12 @@ rb_big_or(VALUE x, VALUE y)</div><div class='ctx'>     long tmpn;</div><div class='ctx'> </div><div class='ctx'>     if (!RB_INTEGER_TYPE_P(y)) {</div><div class='del'>-	return rb_num_coerce_bit(x, y, '|');</div><div class='add'>+        return rb_num_coerce_bit(x, y, '|');</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     hibitsx = abs2twocomp(&amp;x, &amp;xn);</div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	return bigor_int(x, xn, hibitsx, FIX2LONG(y));</div><div class='add'>+        return bigor_int(x, xn, hibitsx, FIX2LONG(y));</div><div class='ctx'>     }</div><div class='ctx'>     hibitsy = abs2twocomp(&amp;y, &amp;yn);</div><div class='ctx'>     if (xn &gt; yn) {</div><div class='hunk'>@@ -6500,10 +6532,10 @@ rb_big_or(VALUE x, VALUE y)</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;n1; i++) {</div><div class='del'>-	zds[i] = ds1[i] | ds2[i];</div><div class='add'>+        zds[i] = ds1[i] | ds2[i];</div><div class='ctx'>     }</div><div class='ctx'>     for (; i&lt;n2; i++) {</div><div class='del'>-	zds[i] = hibits1 | ds2[i];</div><div class='add'>+        zds[i] = hibits1 | ds2[i];</div><div class='ctx'>     }</div><div class='ctx'>     twocomp2abs_bang(z, hibits1 || hibits2);</div><div class='ctx'>     RB_GC_GUARD(x);</div><div class='hunk'>@@ -6567,12 +6599,12 @@ rb_big_xor(VALUE x, VALUE y)</div><div class='ctx'>     long tmpn;</div><div class='ctx'> </div><div class='ctx'>     if (!RB_INTEGER_TYPE_P(y)) {</div><div class='del'>-	return rb_num_coerce_bit(x, y, '^');</div><div class='add'>+        return rb_num_coerce_bit(x, y, '^');</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     hibitsx = abs2twocomp(&amp;x, &amp;xn);</div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	return bigxor_int(x, xn, hibitsx, FIX2LONG(y));</div><div class='add'>+        return bigxor_int(x, xn, hibitsx, FIX2LONG(y));</div><div class='ctx'>     }</div><div class='ctx'>     hibitsy = abs2twocomp(&amp;y, &amp;yn);</div><div class='ctx'>     if (xn &gt; yn) {</div><div class='hunk'>@@ -6591,10 +6623,10 @@ rb_big_xor(VALUE x, VALUE y)</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;n1; i++) {</div><div class='del'>-	zds[i] = ds1[i] ^ ds2[i];</div><div class='add'>+        zds[i] = ds1[i] ^ ds2[i];</div><div class='ctx'>     }</div><div class='ctx'>     for (; i&lt;n2; i++) {</div><div class='del'>-	zds[i] = hibitsx ^ ds2[i];</div><div class='add'>+        zds[i] = hibitsx ^ ds2[i];</div><div class='ctx'>     }</div><div class='ctx'>     twocomp2abs_bang(z, (hibits1 ^ hibits2) != 0);</div><div class='ctx'>     RB_GC_GUARD(x);</div><div class='hunk'>@@ -6610,25 +6642,25 @@ rb_big_lshift(VALUE x, VALUE y)</div><div class='ctx'>     int shift_numbits;</div><div class='ctx'> </div><div class='ctx'>     for (;;) {</div><div class='del'>-	if (FIXNUM_P(y)) {</div><div class='del'>-	    long l = FIX2LONG(y);</div><div class='add'>+        if (FIXNUM_P(y)) {</div><div class='add'>+            long l = FIX2LONG(y);</div><div class='ctx'>             unsigned long shift;</div><div class='del'>-	    if (0 &lt;= l) {</div><div class='del'>-		lshift_p = 1;</div><div class='add'>+            if (0 &lt;= l) {</div><div class='add'>+                lshift_p = 1;</div><div class='ctx'>                 shift = l;</div><div class='ctx'>             }</div><div class='ctx'>             else {</div><div class='del'>-		lshift_p = 0;</div><div class='del'>-		shift = 1+(unsigned long)(-(l+1));</div><div class='del'>-	    }</div><div class='add'>+                lshift_p = 0;</div><div class='add'>+                shift = 1+(unsigned long)(-(l+1));</div><div class='add'>+            }</div><div class='ctx'>             shift_numbits = (int)(shift &amp; (BITSPERDIG-1));</div><div class='ctx'>             shift_numdigits = shift &gt;&gt; bit_length(BITSPERDIG-1);</div><div class='ctx'>             return bignorm(big_shift3(x, lshift_p, shift_numdigits, shift_numbits));</div><div class='del'>-	}</div><div class='del'>-	else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+        }</div><div class='add'>+        else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='ctx'>             return bignorm(big_shift2(x, 1, y));</div><div class='del'>-	}</div><div class='del'>-	y = rb_to_int(y);</div><div class='add'>+        }</div><div class='add'>+        y = rb_to_int(y);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6640,8 +6672,8 @@ rb_big_rshift(VALUE x, VALUE y)</div><div class='ctx'>     int shift_numbits;</div><div class='ctx'> </div><div class='ctx'>     for (;;) {</div><div class='del'>-	if (FIXNUM_P(y)) {</div><div class='del'>-	    long l = FIX2LONG(y);</div><div class='add'>+        if (FIXNUM_P(y)) {</div><div class='add'>+            long l = FIX2LONG(y);</div><div class='ctx'>             unsigned long shift;</div><div class='ctx'>             if (0 &lt;= l) {</div><div class='ctx'>                 lshift_p = 0;</div><div class='hunk'>@@ -6649,16 +6681,16 @@ rb_big_rshift(VALUE x, VALUE y)</div><div class='ctx'>             }</div><div class='ctx'>             else {</div><div class='ctx'>                 lshift_p = 1;</div><div class='del'>-		shift = 1+(unsigned long)(-(l+1));</div><div class='del'>-	    }</div><div class='add'>+                shift = 1+(unsigned long)(-(l+1));</div><div class='add'>+            }</div><div class='ctx'>             shift_numbits = (int)(shift &amp; (BITSPERDIG-1));</div><div class='ctx'>             shift_numdigits = shift &gt;&gt; bit_length(BITSPERDIG-1);</div><div class='ctx'>             return bignorm(big_shift3(x, lshift_p, shift_numdigits, shift_numbits));</div><div class='del'>-	}</div><div class='del'>-	else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='add'>+        }</div><div class='add'>+        else if (RB_BIGNUM_TYPE_P(y)) {</div><div class='ctx'>             return bignorm(big_shift2(x, 0, y));</div><div class='del'>-	}</div><div class='del'>-	y = rb_to_int(y);</div><div class='add'>+        }</div><div class='add'>+        y = rb_to_int(y);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6672,29 +6704,29 @@ rb_big_aref(VALUE x, VALUE y)</div><div class='ctx'>     BDIGIT bit;</div><div class='ctx'> </div><div class='ctx'>     if (RB_BIGNUM_TYPE_P(y)) {</div><div class='del'>-	if (BIGNUM_NEGATIVE_P(y))</div><div class='del'>-	    return INT2FIX(0);</div><div class='del'>-	bigtrunc(y);</div><div class='del'>-	if (BIGSIZE(y) &gt; sizeof(size_t)) {</div><div class='del'>-	  out_of_range:</div><div class='del'>-	    return BIGNUM_SIGN(x) ? INT2FIX(0) : INT2FIX(1);</div><div class='del'>-	}</div><div class='add'>+        if (BIGNUM_NEGATIVE_P(y))</div><div class='add'>+            return INT2FIX(0);</div><div class='add'>+        bigtrunc(y);</div><div class='add'>+        if (BIGSIZE(y) &gt; sizeof(size_t)) {</div><div class='add'>+            return BIGNUM_SIGN(x) ? INT2FIX(0) : INT2FIX(1);</div><div class='add'>+        }</div><div class='ctx'> #if SIZEOF_SIZE_T &lt;= SIZEOF_LONG</div><div class='del'>-	shift = big2ulong(y, "long");</div><div class='add'>+        shift = big2ulong(y, "long");</div><div class='ctx'> #else</div><div class='del'>-	shift = big2ull(y, "long long");</div><div class='add'>+        shift = big2ull(y, "long long");</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	l = NUM2LONG(y);</div><div class='del'>-	if (l &lt; 0) return INT2FIX(0);</div><div class='del'>-	shift = (size_t)l;</div><div class='add'>+        l = NUM2LONG(y);</div><div class='add'>+        if (l &lt; 0) return INT2FIX(0);</div><div class='add'>+        shift = (size_t)l;</div><div class='ctx'>     }</div><div class='ctx'>     s1 = shift/BITSPERDIG;</div><div class='ctx'>     s2 = shift%BITSPERDIG;</div><div class='ctx'>     bit = (BDIGIT)1 &lt;&lt; s2;</div><div class='ctx'> </div><div class='del'>-    if (s1 &gt;= BIGNUM_LEN(x)) goto out_of_range;</div><div class='add'>+    if (s1 &gt;= BIGNUM_LEN(x))</div><div class='add'>+        return BIGNUM_SIGN(x) ? INT2FIX(0) : INT2FIX(1);</div><div class='ctx'> </div><div class='ctx'>     xds = BDIGITS(x);</div><div class='ctx'>     if (BIGNUM_POSITIVE_P(x))</div><div class='hunk'>@@ -6718,14 +6750,15 @@ rb_big_hash(VALUE x)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   big.coerce(numeric)  -&gt;  array</div><div class='add'>+ *   int.coerce(numeric)  -&gt;  array</div><div class='ctx'>  *</div><div class='del'>- * Returns an array with both a +numeric+ and a +big+ represented as Bignum</div><div class='del'>- * objects.</div><div class='add'>+ * Returns an array with both a +numeric+ and a +int+ represented as</div><div class='add'>+ * Integer objects or Float objects.</div><div class='ctx'>  *</div><div class='del'>- * This is achieved by converting +numeric+ to a Bignum.</div><div class='add'>+ * This is achieved by converting +numeric+ to an Integer or a Float.</div><div class='ctx'>  *</div><div class='del'>- * A TypeError is raised if the +numeric+ is not a Fixnum or Bignum type.</div><div class='add'>+ * A TypeError is raised if the +numeric+ is not an Integer or a Float</div><div class='add'>+ * type.</div><div class='ctx'>  *</div><div class='ctx'>  *     (0x3FFFFFFFFFFFFFFF+1).coerce(42)   #=&gt; [42, 4611686018427387904]</div><div class='ctx'>  */</div><div class='hunk'>@@ -6747,8 +6780,8 @@ VALUE</div><div class='ctx'> rb_big_abs(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     if (BIGNUM_NEGATIVE_P(x)) {</div><div class='del'>-	x = rb_big_clone(x);</div><div class='del'>-	BIGNUM_SET_POSITIVE_SIGN(x);</div><div class='add'>+        x = rb_big_clone(x);</div><div class='add'>+        BIGNUM_SET_POSITIVE_SIGN(x);</div><div class='ctx'>     }</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='hunk'>@@ -6815,17 +6848,14 @@ rb_big_bit_length(VALUE big)</div><div class='ctx'> VALUE</div><div class='ctx'> rb_big_odd_p(VALUE num)</div><div class='ctx'> {</div><div class='del'>-    if (BIGNUM_LEN(num) != 0 &amp;&amp; BDIGITS(num)[0] &amp; 1) {</div><div class='del'>-	return Qtrue;</div><div class='del'>-    }</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(BIGNUM_LEN(num) != 0 &amp;&amp; BDIGITS(num)[0] &amp; 1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_big_even_p(VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     if (BIGNUM_LEN(num) != 0 &amp;&amp; BDIGITS(num)[0] &amp; 1) {</div><div class='del'>-	return Qfalse;</div><div class='add'>+        return Qfalse;</div><div class='ctx'>     }</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='hunk'>@@ -6856,26 +6886,34 @@ estimate_initial_sqrt(VALUE *xp, const size_t xn, const BDIGIT *nds, size_t len)</div><div class='ctx'>     double f;</div><div class='ctx'> </div><div class='ctx'>     if (rshift &gt; 0) {</div><div class='del'>-	lowbits = (BDIGIT)d &amp; ~(~(BDIGIT)1U &lt;&lt; rshift);</div><div class='del'>-	d &gt;&gt;= rshift;</div><div class='add'>+        lowbits = (BDIGIT)d &amp; ~(~(BDIGIT)1U &lt;&lt; rshift);</div><div class='add'>+        d &gt;&gt;= rshift;</div><div class='ctx'>     }</div><div class='ctx'>     else if (rshift &lt; 0) {</div><div class='del'>-	d &lt;&lt;= -rshift;</div><div class='del'>-	d |= nds[len-dbl_per_bdig-1] &gt;&gt; (BITSPERDIG+rshift);</div><div class='add'>+        d &lt;&lt;= -rshift;</div><div class='add'>+        d |= nds[len-dbl_per_bdig-1] &gt;&gt; (BITSPERDIG+rshift);</div><div class='ctx'>     }</div><div class='ctx'>     f = sqrt(BDIGIT_DBL_TO_DOUBLE(d));</div><div class='ctx'>     d = (BDIGIT_DBL)ceil(f);</div><div class='ctx'>     if (BDIGIT_DBL_TO_DOUBLE(d) == f) {</div><div class='del'>-	if (lowbits || (lowbits = !bary_zero_p(nds, len-dbl_per_bdig)))</div><div class='del'>-	    ++d;</div><div class='add'>+        if (lowbits || (lowbits = !bary_zero_p(nds, len-dbl_per_bdig)))</div><div class='add'>+            ++d;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	lowbits = 1;</div><div class='add'>+        lowbits = 1;</div><div class='ctx'>     }</div><div class='ctx'>     rshift /= 2;</div><div class='ctx'>     rshift += (2-(len&amp;1))*BITSPERDIG/2;</div><div class='ctx'>     if (rshift &gt;= 0) {</div><div class='del'>-	d &lt;&lt;= rshift;</div><div class='add'>+        if (nlz((BDIGIT)d) + rshift &gt;= BITSPERDIG) {</div><div class='add'>+            /* (d &lt;&lt; rshift) does cause overflow.</div><div class='add'>+             * example: Integer.sqrt(0xffff_ffff_ffff_ffff ** 2)</div><div class='add'>+             */</div><div class='add'>+            d = ~(BDIGIT_DBL)0;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            d &lt;&lt;= rshift;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     BDIGITS_ZERO(xds, xn-2);</div><div class='ctx'>     bdigitdbl2bary(&amp;xds[xn-2], 2, d);</div><div class='hunk'>@@ -6894,52 +6932,49 @@ rb_big_isqrt(VALUE n)</div><div class='ctx'>     BDIGIT *xds;</div><div class='ctx'> </div><div class='ctx'>     if (len &lt;= 2) {</div><div class='del'>-	BDIGIT sq = rb_bdigit_dbl_isqrt(bary2bdigitdbl(nds, len));</div><div class='add'>+        BDIGIT sq = rb_bdigit_dbl_isqrt(bary2bdigitdbl(nds, len));</div><div class='ctx'> #if SIZEOF_BDIGIT &gt; SIZEOF_LONG</div><div class='del'>-	return ULL2NUM(sq);</div><div class='add'>+        return ULL2NUM(sq);</div><div class='ctx'> #else</div><div class='del'>-	return ULONG2NUM(sq);</div><div class='add'>+        return ULONG2NUM(sq);</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     else if ((xds = estimate_initial_sqrt(&amp;x, xn, nds, len)) != 0) {</div><div class='del'>-	size_t tn = xn + BIGDIVREM_EXTRA_WORDS;</div><div class='del'>-	VALUE t = bignew_1(0, tn, 1);</div><div class='del'>-	BDIGIT *tds = BDIGITS(t);</div><div class='del'>-	tn = BIGNUM_LEN(t);</div><div class='del'>-</div><div class='del'>-	/* t = n/x */</div><div class='del'>-	while (bary_divmod_branch(tds, tn, NULL, 0, nds, len, xds, xn),</div><div class='del'>-	       bary_cmp(tds, tn, xds, xn) &lt; 0) {</div><div class='del'>-	    int carry;</div><div class='del'>-	    BARY_TRUNC(tds, tn);</div><div class='del'>-	    /* x = (x+t)/2 */</div><div class='del'>-	    carry = bary_add(xds, xn, xds, xn, tds, tn);</div><div class='del'>-	    bary_small_rshift(xds, xds, xn, 1, carry);</div><div class='del'>-	    tn = BIGNUM_LEN(t);</div><div class='del'>-	}</div><div class='del'>-	rb_big_realloc(t, 0);</div><div class='del'>-	rb_gc_force_recycle(t);</div><div class='add'>+        size_t tn = xn + BIGDIVREM_EXTRA_WORDS;</div><div class='add'>+        VALUE t = bignew_1(0, tn, 1);</div><div class='add'>+        BDIGIT *tds = BDIGITS(t);</div><div class='add'>+        tn = BIGNUM_LEN(t);</div><div class='add'>+</div><div class='add'>+        /* t = n/x */</div><div class='add'>+        while (bary_divmod_branch(tds, tn, NULL, 0, nds, len, xds, xn),</div><div class='add'>+               bary_cmp(tds, tn, xds, xn) &lt; 0) {</div><div class='add'>+            int carry;</div><div class='add'>+            BARY_TRUNC(tds, tn);</div><div class='add'>+            /* x = (x+t)/2 */</div><div class='add'>+            carry = bary_add(xds, xn, xds, xn, tds, tn);</div><div class='add'>+            bary_small_rshift(xds, xds, xn, 1, carry);</div><div class='add'>+            tn = BIGNUM_LEN(t);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     RBASIC_SET_CLASS_RAW(x, rb_cInteger);</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'> static void</div><div class='ctx'> bary_powm_gmp(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT *yds, size_t yn, const BDIGIT *mds, size_t mn)</div><div class='ctx'> {</div><div class='del'>-    const size_t nails = (sizeof(BDIGIT)-SIZEOF_BDIGIT)*CHAR_BIT;</div><div class='ctx'>     mpz_t z, x, y, m;</div><div class='ctx'>     size_t count;</div><div class='ctx'>     mpz_init(x);</div><div class='ctx'>     mpz_init(y);</div><div class='ctx'>     mpz_init(m);</div><div class='ctx'>     mpz_init(z);</div><div class='del'>-    mpz_import(x, xn, -1, sizeof(BDIGIT), 0, nails, xds);</div><div class='del'>-    mpz_import(y, yn, -1, sizeof(BDIGIT), 0, nails, yds);</div><div class='del'>-    mpz_import(m, mn, -1, sizeof(BDIGIT), 0, nails, mds);</div><div class='add'>+    bdigits_to_mpz(x, xds, xn);</div><div class='add'>+    bdigits_to_mpz(y, yds, yn);</div><div class='add'>+    bdigits_to_mpz(m, mds, mn);</div><div class='ctx'>     mpz_powm(z, x, y, m);</div><div class='del'>-    mpz_export(zds, &amp;count, -1, sizeof(BDIGIT), 0, nails, z);</div><div class='add'>+    bdigits_from_mpz(z, zds, &amp;count);</div><div class='ctx'>     BDIGITS_ZERO(zds+count, zn-count);</div><div class='ctx'>     mpz_clear(x);</div><div class='ctx'>     mpz_clear(y);</div><div class='hunk'>@@ -6951,7 +6986,7 @@ bary_powm_gmp(BDIGIT *zds, size_t zn, const BDIGIT *xds, size_t xn, const BDIGIT</div><div class='ctx'> static VALUE</div><div class='ctx'> int_pow_tmp3(VALUE x, VALUE y, VALUE m, int nega_flg)</div><div class='ctx'> {</div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'>     VALUE z;</div><div class='ctx'>     size_t xn, yn, mn, zn;</div><div class='ctx'> </div><div class='hunk'>@@ -7117,6 +7152,7 @@ rb_int_powm(int const argc, VALUE * const argv, VALUE const num)</div><div class='ctx'>             long const half_val = (long)HALF_LONG_MSB;</div><div class='ctx'>             long const mm = FIX2LONG(m);</div><div class='ctx'>             if (!mm) rb_num_zerodiv();</div><div class='add'>+            if (mm == 1) return INT2FIX(0);</div><div class='ctx'>             if (mm &lt;= half_val) {</div><div class='ctx'>                 return int_pow_tmp1(rb_int_modulo(a, m), b, mm, nega_flg);</div><div class='ctx'>             }</div><div class='hunk'>@@ -7126,6 +7162,7 @@ rb_int_powm(int const argc, VALUE * const argv, VALUE const num)</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='ctx'>             if (rb_bigzero_p(m)) rb_num_zerodiv();</div><div class='add'>+            if (bignorm(m) == INT2FIX(1)) return INT2FIX(0);</div><div class='ctx'>             return int_pow_tmp3(rb_int_modulo(a, m), b, m, nega_flg);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='hunk'>@@ -7153,16 +7190,9 @@ rb_int_powm(int const argc, VALUE * const argv, VALUE const num)</div><div class='ctx'> void</div><div class='ctx'> Init_Bignum(void)</div><div class='ctx'> {</div><div class='del'>-#ifndef RUBY_INTEGER_UNIFICATION</div><div class='del'>-    rb_cBignum = rb_cInteger;</div><div class='del'>-#endif</div><div class='del'>-    /* An obsolete class, use Integer */</div><div class='del'>-    rb_define_const(rb_cObject, "Bignum", rb_cInteger);</div><div class='del'>-    rb_deprecate_constant(rb_cObject, "Bignum");</div><div class='del'>-</div><div class='ctx'>     rb_define_method(rb_cInteger, "coerce", rb_int_coerce, 1);</div><div class='ctx'> </div><div class='del'>-#ifdef USE_GMP</div><div class='add'>+#if USE_GMP</div><div class='ctx'>     /* The version of loaded GMP. */</div><div class='ctx'>     rb_define_const(rb_cInteger, "GMP_VERSION", rb_sprintf("GMP %s", gmp_version));</div><div class='ctx'> #endif</div><div class='head'>diff --git a/bin/bundle b/bin/bundle<br/>deleted file mode 100755<br/>index 1a0b06b005..0000000000<br/>--- a/<a href='/ruby.git/tree/bin/bundle?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/bundle</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,27 +0,0 @@</div><div class='del'>-#!/usr/bin/env ruby</div><div class='del'>-#</div><div class='del'>-# This file was generated by RubyGems.</div><div class='del'>-#</div><div class='del'>-# The application 'bundler' is installed as part of a gem, and</div><div class='del'>-# this file is here to facilitate running it.</div><div class='del'>-#</div><div class='del'>-</div><div class='del'>-require 'rubygems'</div><div class='del'>-</div><div class='del'>-version = "&gt;= 0.a"</div><div class='del'>-</div><div class='del'>-str = ARGV.first</div><div class='del'>-if str</div><div class='del'>-  str = str.b[/\A_(.*)_\z/, 1]</div><div class='del'>-  if str and Gem::Version.correct?(str)</div><div class='del'>-    version = str</div><div class='del'>-    ARGV.shift</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-if Gem.respond_to?(:activate_bin_path)</div><div class='del'>-load Gem.activate_bin_path('bundler', 'bundle', version)</div><div class='del'>-else</div><div class='del'>-gem "bundler", version</div><div class='del'>-load Gem.bin_path("bundler", "bundle", version)</div><div class='del'>-end</div><div class='head'>diff --git a/bin/bundler b/bin/bundler<br/>deleted file mode 100755<br/>index e15eb39ed7..0000000000<br/>--- a/<a href='/ruby.git/tree/bin/bundler?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/bundler</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,27 +0,0 @@</div><div class='del'>-#!/usr/bin/env ruby</div><div class='del'>-#</div><div class='del'>-# This file was generated by RubyGems.</div><div class='del'>-#</div><div class='del'>-# The application 'bundler' is installed as part of a gem, and</div><div class='del'>-# this file is here to facilitate running it.</div><div class='del'>-#</div><div class='del'>-</div><div class='del'>-require 'rubygems'</div><div class='del'>-</div><div class='del'>-version = "&gt;= 0.a"</div><div class='del'>-</div><div class='del'>-str = ARGV.first</div><div class='del'>-if str</div><div class='del'>-  str = str.b[/\A_(.*)_\z/, 1]</div><div class='del'>-  if str and Gem::Version.correct?(str)</div><div class='del'>-    version = str</div><div class='del'>-    ARGV.shift</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-if Gem.respond_to?(:activate_bin_path)</div><div class='del'>-load Gem.activate_bin_path('bundler', 'bundler', version)</div><div class='del'>-else</div><div class='del'>-gem "bundler", version</div><div class='del'>-load Gem.bin_path("bundler", "bundler", version)</div><div class='del'>-end</div><div class='head'>diff --git a/bin/erb b/bin/erb<br/>deleted file mode 100755<br/>index d5e51ee969..0000000000<br/>--- a/<a href='/ruby.git/tree/bin/erb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/erb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,176 +0,0 @@</div><div class='del'>-#!/usr/bin/env ruby</div><div class='del'>-# Tiny eRuby --- ERB2</div><div class='del'>-# Copyright (c) 1999-2000,2002 Masatoshi SEKI</div><div class='del'>-# You can redistribute it and/or modify it under the same terms as Ruby.</div><div class='del'>-</div><div class='del'>-require 'erb'</div><div class='del'>-</div><div class='del'>-class ERB</div><div class='del'>-  module Main</div><div class='del'>-    def ARGV.switch</div><div class='del'>-      return nil if self.empty?</div><div class='del'>-      arg = self.shift</div><div class='del'>-      return nil if arg == '--'</div><div class='del'>-      case arg</div><div class='del'>-      when /\A-(.)(.*)/</div><div class='del'>-        if $1 == '-'</div><div class='del'>-          arg, @maybe_arg = arg.split(/=/, 2)</div><div class='del'>-          return arg</div><div class='del'>-        end</div><div class='del'>-        raise 'unknown switch "-"' if $2[0] == ?- and $1 != 'T'</div><div class='del'>-        if $2.size &gt; 0</div><div class='del'>-          self.unshift "-#{$2}"</div><div class='del'>-          @maybe_arg = $2</div><div class='del'>-        else</div><div class='del'>-          @maybe_arg = nil</div><div class='del'>-        end</div><div class='del'>-        "-#{$1}"</div><div class='del'>-      when /\A(\w+)=/</div><div class='del'>-        arg</div><div class='del'>-      else</div><div class='del'>-        self.unshift arg</div><div class='del'>-        nil</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def ARGV.req_arg</div><div class='del'>-      (@maybe_arg || self.shift || raise('missing argument')).tap {</div><div class='del'>-        @maybe_arg = nil</div><div class='del'>-      }</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def trim_mode_opt(trim_mode, disable_percent)</div><div class='del'>-      return trim_mode if disable_percent</div><div class='del'>-      case trim_mode</div><div class='del'>-      when 0</div><div class='del'>-        return '%'</div><div class='del'>-      when 1</div><div class='del'>-        return '%&gt;'</div><div class='del'>-      when 2</div><div class='del'>-        return '%&lt;&gt;'</div><div class='del'>-      when '-'</div><div class='del'>-        return '%-'</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    module_function :trim_mode_opt</div><div class='del'>-</div><div class='del'>-    def run(factory=ERB)</div><div class='del'>-      trim_mode = 0</div><div class='del'>-      disable_percent = false</div><div class='del'>-      variables = {}</div><div class='del'>-      begin</div><div class='del'>-        while switch = ARGV.switch</div><div class='del'>-          case switch</div><div class='del'>-          when '-x'                        # ruby source</div><div class='del'>-            output = true</div><div class='del'>-          when '-n'                        # line number</div><div class='del'>-            number = true</div><div class='del'>-          when '-v'                        # verbose</div><div class='del'>-            $VERBOSE = true</div><div class='del'>-          when '--version'                 # version</div><div class='del'>-            STDERR.puts factory.version</div><div class='del'>-            exit</div><div class='del'>-          when '-d', '--debug'             # debug</div><div class='del'>-            $DEBUG = true</div><div class='del'>-          when '-r'                        # require</div><div class='del'>-            require ARGV.req_arg</div><div class='del'>-          when '-S'                        # security level</div><div class='del'>-            warn 'warning: -S option of erb command is deprecated. Please do not use this.'</div><div class='del'>-            arg = ARGV.req_arg</div><div class='del'>-            raise "invalid safe_level #{arg.dump}" unless arg =~ /\A[0-1]\z/</div><div class='del'>-            safe_level = arg.to_i</div><div class='del'>-          when '-T'                        # trim mode</div><div class='del'>-            arg = ARGV.req_arg</div><div class='del'>-            if arg == '-'</div><div class='del'>-              trim_mode = arg</div><div class='del'>-              next</div><div class='del'>-            end</div><div class='del'>-            raise "invalid trim mode #{arg.dump}" unless arg =~ /\A[0-2]\z/</div><div class='del'>-            trim_mode = arg.to_i</div><div class='del'>-          when '-E', '--encoding'</div><div class='del'>-            arg = ARGV.req_arg</div><div class='del'>-            set_encoding(*arg.split(/:/, 2))</div><div class='del'>-          when '-U'</div><div class='del'>-            set_encoding(Encoding::UTF_8, Encoding::UTF_8)</div><div class='del'>-          when '-P'</div><div class='del'>-            disable_percent = true</div><div class='del'>-          when '--help'</div><div class='del'>-            raise "print this help"</div><div class='del'>-          when /\A-/</div><div class='del'>-            raise "unknown switch #{switch.dump}"</div><div class='del'>-          else</div><div class='del'>-            var, val = *switch.split('=', 2)</div><div class='del'>-            (variables ||= {})[var] = val</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      rescue                               # usage</div><div class='del'>-        STDERR.puts $!.to_s</div><div class='del'>-        STDERR.puts File.basename($0) +</div><div class='del'>-          " [switches] [var=value...] [inputfile]"</div><div class='del'>-        STDERR.puts &lt;&lt;EOU</div><div class='del'>-  -x               print ruby script</div><div class='del'>-  -n               print ruby script with line number</div><div class='del'>-  -v               enable verbose mode</div><div class='del'>-  -d               set $DEBUG to true</div><div class='del'>-  -r library       load a library</div><div class='del'>-  -E ex[:in]       set default external/internal encodings</div><div class='del'>-  -U               set default encoding to UTF-8</div><div class='del'>-  -T trim_mode     specify trim_mode (0..2, -)</div><div class='del'>-  -P               disable ruby code evaluation for lines beginning with %</div><div class='del'>-  var=value        set variable</div><div class='del'>-EOU</div><div class='del'>-        exit 1</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      $&lt;.set_encoding(Encoding::UTF_8, nil)</div><div class='del'>-      src = $&lt;.read</div><div class='del'>-      filename = $FILENAME</div><div class='del'>-      exit 2 unless src</div><div class='del'>-      trim = trim_mode_opt(trim_mode, disable_percent)</div><div class='del'>-      if safe_level.nil?</div><div class='del'>-        erb = factory.new(src.untaint, trim_mode: trim)</div><div class='del'>-      else</div><div class='del'>-        # [deprecated] This will be removed at Ruby 2.7.</div><div class='del'>-        erb = factory.new(src.untaint, safe_level, trim_mode: trim)</div><div class='del'>-      end</div><div class='del'>-      erb.filename = filename</div><div class='del'>-      if output</div><div class='del'>-        if number</div><div class='del'>-          erb.src.each_line.with_index do |line, l|</div><div class='del'>-            puts "%3d %s"%[l+1, line]</div><div class='del'>-          end</div><div class='del'>-        else</div><div class='del'>-          puts erb.src</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        bind = TOPLEVEL_BINDING.taint</div><div class='del'>-        if variables</div><div class='del'>-          enc = erb.encoding</div><div class='del'>-          for var, val in variables do</div><div class='del'>-            val = val.encode(enc) if val</div><div class='del'>-            bind.local_variable_set(var, val)</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        erb.run(bind)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    module_function :run</div><div class='del'>-</div><div class='del'>-    def set_encoding(extern, intern = nil)</div><div class='del'>-      verbose, $VERBOSE = $VERBOSE, nil</div><div class='del'>-      Encoding.default_external = extern unless extern.nil? || extern == ""</div><div class='del'>-      Encoding.default_internal = intern unless intern.nil? || intern == ""</div><div class='del'>-      [$stdin, $stdout, $stderr].each do |io|</div><div class='del'>-        io.set_encoding(extern, intern)</div><div class='del'>-      end</div><div class='del'>-    ensure</div><div class='del'>-      $VERBOSE = verbose</div><div class='del'>-    end</div><div class='del'>-    module_function :set_encoding</div><div class='del'>-    class &lt;&lt; self; private :set_encoding; end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-if __FILE__ == $0</div><div class='del'>-  ERB::Main.run</div><div class='del'>-end</div><div class='head'>diff --git a/bin/gem b/bin/gem<br/>index a4ec754abb..1c16ea7ddd 100755<br/>--- a/<a href='/ruby.git/tree/bin/gem?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/gem</a><br/>+++ b/<a href='/ruby.git/tree/bin/gem?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bin/gem</a></div><div class='hunk'>@@ -5,21 +5,6 @@</div><div class='ctx'> # See LICENSE.txt for permissions.</div><div class='ctx'> #++</div><div class='ctx'> </div><div class='del'>-require 'rubygems'</div><div class='del'>-require 'rubygems/gem_runner'</div><div class='del'>-require 'rubygems/exceptions'</div><div class='del'>-</div><div class='del'>-required_version = Gem::Requirement.new "&gt;= 1.8.7"</div><div class='del'>-</div><div class='del'>-unless required_version.satisfied_by? Gem.ruby_version then</div><div class='del'>-  abort "Expected Ruby Version #{required_version}, is #{Gem.ruby_version}"</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-args = ARGV.clone</div><div class='del'>-</div><div class='del'>-begin</div><div class='del'>-  Gem::GemRunner.new.run args</div><div class='del'>-rescue Gem::SystemExitException =&gt; e</div><div class='del'>-  exit e.exit_code</div><div class='del'>-end</div><div class='add'>+require "rubygems/gem_runner"</div><div class='ctx'> </div><div class='add'>+Gem::GemRunner.new.run ARGV.clone</div><div class='head'>diff --git a/bin/irb b/bin/irb<br/>deleted file mode 100755<br/>index ae6d358c9d..0000000000<br/>--- a/<a href='/ruby.git/tree/bin/irb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/irb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,27 +0,0 @@</div><div class='del'>-#!/usr/bin/env ruby</div><div class='del'>-#</div><div class='del'>-# This file was generated by RubyGems.</div><div class='del'>-#</div><div class='del'>-# The application 'irb' is installed as part of a gem, and</div><div class='del'>-# this file is here to facilitate running it.</div><div class='del'>-#</div><div class='del'>-</div><div class='del'>-require 'rubygems'</div><div class='del'>-</div><div class='del'>-version = "&gt;= 0.a"</div><div class='del'>-</div><div class='del'>-str = ARGV.first</div><div class='del'>-if str</div><div class='del'>-  str = str.b[/\A_(.*)_\z/, 1]</div><div class='del'>-  if str and Gem::Version.correct?(str)</div><div class='del'>-    version = str</div><div class='del'>-    ARGV.shift</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-if Gem.respond_to?(:activate_bin_path)</div><div class='del'>-load Gem.activate_bin_path('irb', 'irb', version)</div><div class='del'>-else</div><div class='del'>-gem "irb", version</div><div class='del'>-load Gem.bin_path("irb", "irb", version)</div><div class='del'>-end</div><div class='head'>diff --git a/bin/rdoc b/bin/rdoc<br/>deleted file mode 100755<br/>index 8fa948cddb..0000000000<br/>--- a/<a href='/ruby.git/tree/bin/rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/rdoc</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,27 +0,0 @@</div><div class='del'>-#!/usr/bin/env ruby</div><div class='del'>-#</div><div class='del'>-# This file was generated by RubyGems.</div><div class='del'>-#</div><div class='del'>-# The application 'rdoc' is installed as part of a gem, and</div><div class='del'>-# this file is here to facilitate running it.</div><div class='del'>-#</div><div class='del'>-</div><div class='del'>-require 'rubygems'</div><div class='del'>-</div><div class='del'>-version = "&gt;= 0.a"</div><div class='del'>-</div><div class='del'>-str = ARGV.first</div><div class='del'>-if str</div><div class='del'>-  str = str.b[/\A_(.*)_\z/, 1]</div><div class='del'>-  if str and Gem::Version.correct?(str)</div><div class='del'>-    version = str</div><div class='del'>-    ARGV.shift</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-if Gem.respond_to?(:activate_bin_path)</div><div class='del'>-load Gem.activate_bin_path('rdoc', 'rdoc', version)</div><div class='del'>-else</div><div class='del'>-gem "rdoc", version</div><div class='del'>-load Gem.bin_path("rdoc", "rdoc", version)</div><div class='del'>-end</div><div class='head'>diff --git a/bin/ri b/bin/ri<br/>deleted file mode 100755<br/>index 0cc2f73bb6..0000000000<br/>--- a/<a href='/ruby.git/tree/bin/ri?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bin/ri</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,27 +0,0 @@</div><div class='del'>-#!/usr/bin/env ruby</div><div class='del'>-#</div><div class='del'>-# This file was generated by RubyGems.</div><div class='del'>-#</div><div class='del'>-# The application 'rdoc' is installed as part of a gem, and</div><div class='del'>-# this file is here to facilitate running it.</div><div class='del'>-#</div><div class='del'>-</div><div class='del'>-require 'rubygems'</div><div class='del'>-</div><div class='del'>-version = "&gt;= 0.a"</div><div class='del'>-</div><div class='del'>-str = ARGV.first</div><div class='del'>-if str</div><div class='del'>-  str = str.b[/\A_(.*)_\z/, 1]</div><div class='del'>-  if str and Gem::Version.correct?(str)</div><div class='del'>-    version = str</div><div class='del'>-    ARGV.shift</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-if Gem.respond_to?(:activate_bin_path)</div><div class='del'>-load Gem.activate_bin_path('rdoc', 'ri', version)</div><div class='del'>-else</div><div class='del'>-gem "rdoc", version</div><div class='del'>-load Gem.bin_path("rdoc", "ri", version)</div><div class='del'>-end</div><div class='head'>diff --git a/bootstraptest/pending.rb b/bootstraptest/pending.rb<br/>index 744c0adac1..2c4b85a419 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/pending.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/pending.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/pending.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/pending.rb</a></div><div class='hunk'>@@ -1,19 +1,3 @@</div><div class='del'>-assert_equal 'A', %q{</div><div class='del'>-  class A</div><div class='del'>-    @@a = 'A'</div><div class='del'>-    def a=(x)</div><div class='del'>-      @@a = x</div><div class='del'>-    end</div><div class='del'>-    def a</div><div class='del'>-      @@a</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  B = A.dup</div><div class='del'>-  B.new.a = 'B'</div><div class='del'>-  A.new.a</div><div class='del'>-}, '[ruby-core:17019]'</div><div class='del'>-</div><div class='ctx'> assert_equal 'ok', %q{</div><div class='ctx'>   def m</div><div class='ctx'>     lambda{</div><div class='hunk'>@@ -31,9 +15,7 @@ assert_equal 'ok', %q{</div><div class='ctx'>   end</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-assert_normal_exit %q{</div><div class='del'>-  r = Range.allocate</div><div class='del'>-  def r.&lt;=&gt;(o) true end</div><div class='del'>-  r.instance_eval { initialize r, r }</div><div class='del'>-  r.inspect</div><div class='add'>+# This randomly fails on mswin.</div><div class='add'>+assert_equal %q{[]}, %q{</div><div class='add'>+  Thread.new{sleep}.backtrace</div><div class='ctx'> }</div><div class='head'>diff --git a/bootstraptest/runner.rb b/bootstraptest/runner.rb<br/>index 58619fae7e..f9b3e919b8 100755<br/>--- a/<a href='/ruby.git/tree/bootstraptest/runner.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/runner.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/runner.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/runner.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-"exec" "${RUBY-ruby}" "-x" "$0" "$@" || true # -*- mode: ruby; coding: utf-8 -*-</div><div class='add'>+"exec" "${RUBY-ruby}" "-x" "$0" "$@" || true # -*- Ruby -*-</div><div class='ctx'> #!./ruby</div><div class='ctx'> # $Id$</div><div class='ctx'> </div><div class='hunk'>@@ -8,6 +8,8 @@</div><div class='ctx'> # Never use Ruby extensions in this file.</div><div class='ctx'> # Maintain Ruby 1.8 compatibility for now</div><div class='ctx'> </div><div class='add'>+$start_time = Time.now</div><div class='add'>+</div><div class='ctx'> begin</div><div class='ctx'>   require 'fileutils'</div><div class='ctx'>   require 'tmpdir'</div><div class='hunk'>@@ -58,24 +60,114 @@ if !Dir.respond_to?(:mktmpdir)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='add'>+# Configuration</div><div class='add'>+bt = Struct.new(:ruby,</div><div class='add'>+                :verbose,</div><div class='add'>+                :color,</div><div class='add'>+                :tty,</div><div class='add'>+                :quiet,</div><div class='add'>+                :wn,</div><div class='add'>+                :progress,</div><div class='add'>+                :progress_bs,</div><div class='add'>+                :passed,</div><div class='add'>+                :failed,</div><div class='add'>+                :reset,</div><div class='add'>+                :columns,</div><div class='add'>+                :window_width,</div><div class='add'>+                :width,</div><div class='add'>+                :indent,</div><div class='add'>+                :platform,</div><div class='add'>+                )</div><div class='add'>+BT = Class.new(bt) do</div><div class='add'>+  def indent=(n)</div><div class='add'>+    super</div><div class='add'>+    if (self.columns ||= 0) &lt; n</div><div class='add'>+      $stderr.print(' ' * (n - self.columns))</div><div class='add'>+    end</div><div class='add'>+    self.columns = indent</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def putc(c)</div><div class='add'>+    unless self.quiet</div><div class='add'>+      if self.window_width == nil</div><div class='add'>+        unless w = ENV["COLUMNS"] and (w = w.to_i) &gt; 0</div><div class='add'>+          w = 80</div><div class='add'>+        end</div><div class='add'>+        w -= 1</div><div class='add'>+        self.window_width = w</div><div class='add'>+      end</div><div class='add'>+      if self.window_width and self.columns &gt;= self.window_width</div><div class='add'>+        $stderr.print "\n", " " * (self.indent ||= 0)</div><div class='add'>+        self.columns = indent</div><div class='add'>+      end</div><div class='add'>+      $stderr.print c</div><div class='add'>+      $stderr.flush</div><div class='add'>+      self.columns += 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def wn=(wn)</div><div class='add'>+    unless wn == 1</div><div class='add'>+      if /(?:\A|\s)--jobserver-(?:auth|fds)=(?:(\d+),(\d+)|fifo:((?:\\.|\S)+))/ =~ ENV.delete("MAKEFLAGS")</div><div class='add'>+        begin</div><div class='add'>+          if fifo = $3</div><div class='add'>+            fifo.gsub!(/\\(?=.)/, '')</div><div class='add'>+            r = File.open(fifo, IO::RDONLY|IO::NONBLOCK|IO::BINARY)</div><div class='add'>+            w = File.open(fifo, IO::WRONLY|IO::NONBLOCK|IO::BINARY)</div><div class='add'>+          else</div><div class='add'>+            r = IO.for_fd($1.to_i(10), "rb", autoclose: false)</div><div class='add'>+            w = IO.for_fd($2.to_i(10), "wb", autoclose: false)</div><div class='add'>+          end</div><div class='add'>+        rescue =&gt; e</div><div class='add'>+          r.close if r</div><div class='add'>+        else</div><div class='add'>+          r.close_on_exec = true</div><div class='add'>+          w.close_on_exec = true</div><div class='add'>+          tokens = r.read_nonblock(wn &gt; 0 ? wn : 1024, exception: false)</div><div class='add'>+          r.close</div><div class='add'>+          if String === tokens</div><div class='add'>+            tokens.freeze</div><div class='add'>+            auth = w</div><div class='add'>+            w = nil</div><div class='add'>+            at_exit {auth &lt;&lt; tokens; auth.close}</div><div class='add'>+            wn = tokens.size + 1</div><div class='add'>+          else</div><div class='add'>+            w.close</div><div class='add'>+            wn = 1</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      if wn &lt;= 0</div><div class='add'>+        require 'etc'</div><div class='add'>+        wn = [Etc.nprocessors / 2, 1].max</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    super wn</div><div class='add'>+  end</div><div class='add'>+end.new</div><div class='add'>+</div><div class='add'>+BT_STATE = Struct.new(:count, :error).new</div><div class='add'>+</div><div class='ctx'> def main</div><div class='del'>-  @ruby = File.expand_path('miniruby')</div><div class='del'>-  @verbose = false</div><div class='add'>+  BT.ruby = File.expand_path('miniruby')</div><div class='add'>+  BT.verbose = false</div><div class='ctx'>   $VERBOSE = false</div><div class='ctx'>   $stress = false</div><div class='del'>-  @color = nil</div><div class='del'>-  @tty = nil</div><div class='del'>-  @quiet = false</div><div class='add'>+  BT.color = nil</div><div class='add'>+  BT.tty = nil</div><div class='add'>+  BT.quiet = false</div><div class='add'>+  # BT.wn = 1</div><div class='ctx'>   dir = nil</div><div class='ctx'>   quiet = false</div><div class='ctx'>   tests = nil</div><div class='ctx'>   ARGV.delete_if {|arg|</div><div class='ctx'>     case arg</div><div class='ctx'>     when /\A--ruby=(.*)/</div><div class='del'>-      @ruby = $1</div><div class='del'>-      @ruby.gsub!(/^([^ ]*)/){File.expand_path($1)}</div><div class='del'>-      @ruby.gsub!(/(\s+-I\s*)((?!(?:\.\/)*-(?:\s|\z))\S+)/){$1+File.expand_path($2)}</div><div class='del'>-      @ruby.gsub!(/(\s+-r\s*)(\.\.?\/\S+)/){$1+File.expand_path($2)}</div><div class='add'>+      ruby = $1</div><div class='add'>+      ruby.gsub!(/^([^ ]*)/){File.expand_path($1)}</div><div class='add'>+      ruby.gsub!(/(\s+-I\s*)((?!(?:\.\/)*-(?:\s|\z))\S+)/){$1+File.expand_path($2)}</div><div class='add'>+      ruby.gsub!(/(\s+-r\s*)(\.\.?\/\S+)/){$1+File.expand_path($2)}</div><div class='add'>+      BT.ruby = ruby</div><div class='ctx'>       true</div><div class='ctx'>     when /\A--sets=(.*)/</div><div class='ctx'>       tests = Dir.glob("#{File.dirname($0)}/test_{#{$1}}*.rb").sort</div><div class='hunk'>@@ -88,18 +180,23 @@ def main</div><div class='ctx'>       $stress = true</div><div class='ctx'>     when /\A--color(?:=(?:always|(auto)|(never)|(.*)))?\z/</div><div class='ctx'>       warn "unknown --color argument: #$3" if $3</div><div class='del'>-      @color = $1 ? nil : !$2</div><div class='add'>+      BT.color = color = $1 ? nil : !$2</div><div class='ctx'>       true</div><div class='ctx'>     when /\A--tty(=(?:yes|(no)|(.*)))?\z/</div><div class='ctx'>       warn "unknown --tty argument: #$3" if $3</div><div class='del'>-      @tty = !$1 || !$2</div><div class='add'>+      BT.tty = !$1 || !$2</div><div class='ctx'>       true</div><div class='ctx'>     when /\A(-q|--q(uiet))\z/</div><div class='ctx'>       quiet = true</div><div class='del'>-      @quiet = true</div><div class='add'>+      BT.quiet = true</div><div class='add'>+      true</div><div class='add'>+    when /\A-j(\d+)?/</div><div class='add'>+      BT.wn = $1.to_i</div><div class='ctx'>       true</div><div class='ctx'>     when /\A(-v|--v(erbose))\z/</div><div class='del'>-      @verbose = true</div><div class='add'>+      BT.verbose = true</div><div class='add'>+      BT.quiet = false</div><div class='add'>+      true</div><div class='ctx'>     when /\A(-h|--h(elp)?)\z/</div><div class='ctx'>       puts(&lt;&lt;-End)</div><div class='ctx'> Usage: #{File.basename($0, '.*')} --ruby=PATH [--sets=NAME,NAME,...]</div><div class='hunk'>@@ -121,38 +218,41 @@ End</div><div class='ctx'>     end</div><div class='ctx'>   }</div><div class='ctx'>   if tests and not ARGV.empty?</div><div class='del'>-    $stderr.puts "--tests and arguments are exclusive"</div><div class='del'>-    exit false</div><div class='add'>+    abort "--sets and arguments are exclusive"</div><div class='ctx'>   end</div><div class='ctx'>   tests ||= ARGV</div><div class='ctx'>   tests = Dir.glob("#{File.dirname($0)}/test_*.rb").sort if tests.empty?</div><div class='ctx'>   pathes = tests.map {|path| File.expand_path(path) }</div><div class='ctx'> </div><div class='del'>-  @progress = %w[- \\ | /]</div><div class='del'>-  @progress_bs = "\b" * @progress[0].size</div><div class='del'>-  @tty = $stderr.tty? if @tty.nil?</div><div class='del'>-  case @color</div><div class='add'>+  BT.progress = %w[- \\ | /]</div><div class='add'>+  BT.progress_bs = "\b" * BT.progress[0].size</div><div class='add'>+  BT.tty = $stderr.tty? if BT.tty.nil?</div><div class='add'>+  BT.wn ||= /-j(\d+)?/ =~ (ENV["MAKEFLAGS"] || ENV["MFLAGS"]) ? $1.to_i : 1</div><div class='add'>+</div><div class='add'>+  case BT.color</div><div class='ctx'>   when nil</div><div class='del'>-    @color = @tty &amp;&amp; /dumb/ !~ ENV["TERM"]</div><div class='add'>+    BT.color = BT.tty &amp;&amp; /dumb/ !~ ENV["TERM"]</div><div class='ctx'>   end</div><div class='del'>-  @tty &amp;&amp;= !@verbose</div><div class='del'>-  if @color</div><div class='add'>+  BT.tty &amp;&amp;= !BT.verbose</div><div class='add'>+  if BT.color</div><div class='ctx'>     # dircolors-like style</div><div class='ctx'>     colors = (colors = ENV['TEST_COLORS']) ? Hash[colors.scan(/(\w+)=([^:\n]*)/)] : {}</div><div class='ctx'>     begin</div><div class='del'>-      File.read(File.join(__dir__, "../test/colors")).scan(/(\w+)=([^:\n]*)/) do |n, c|</div><div class='add'>+      File.read(File.join(__dir__, "../tool/colors")).scan(/(\w+)=([^:\n]*)/) do |n, c|</div><div class='ctx'>         colors[n] ||= c</div><div class='ctx'>       end</div><div class='ctx'>     rescue</div><div class='ctx'>     end</div><div class='del'>-    @passed = "\e[;#{colors["pass"] || "32"}m"</div><div class='del'>-    @failed = "\e[;#{colors["fail"] || "31"}m"</div><div class='del'>-    @reset = "\e[m"</div><div class='add'>+    BT.passed = "\e[;#{colors["pass"] || "32"}m"</div><div class='add'>+    BT.failed = "\e[;#{colors["fail"] || "31"}m"</div><div class='add'>+    BT.reset = "\e[m"</div><div class='ctx'>   else</div><div class='del'>-    @passed = @failed = @reset = ""</div><div class='add'>+    BT.passed = BT.failed = BT.reset = ""</div><div class='ctx'>   end</div><div class='add'>+  target_version = `#{BT.ruby} -v`.chomp</div><div class='add'>+  BT.platform = target_version[/\[(.*)\]\z/, 1]</div><div class='ctx'>   unless quiet</div><div class='del'>-    puts Time.now</div><div class='add'>+    puts $start_time</div><div class='ctx'>     if defined?(RUBY_DESCRIPTION)</div><div class='ctx'>       puts "Driver is #{RUBY_DESCRIPTION}"</div><div class='ctx'>     elsif defined?(RUBY_PATCHLEVEL)</div><div class='hunk'>@@ -160,254 +260,469 @@ End</div><div class='ctx'>     else</div><div class='ctx'>       puts "Driver is ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"</div><div class='ctx'>     end</div><div class='del'>-    puts "Target is #{`#{@ruby} -v`.chomp}"</div><div class='add'>+    puts "Target is #{target_version}"</div><div class='ctx'>     puts</div><div class='ctx'>     $stdout.flush</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  in_temporary_working_directory(dir) {</div><div class='add'>+  in_temporary_working_directory(dir) do</div><div class='ctx'>     exec_test pathes</div><div class='del'>-  }</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> def erase(e = true)</div><div class='del'>-  if e and @columns &gt; 0 and !@verbose</div><div class='del'>-    "\r#{" "*@columns}\r"</div><div class='add'>+  if e and BT.columns &gt; 0 and BT.tty and !BT.verbose</div><div class='add'>+    "\e[1K\r"</div><div class='ctx'>   else</div><div class='ctx'>     ""</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-def exec_test(pathes)</div><div class='del'>-  @count = 0</div><div class='del'>-  @error = 0</div><div class='del'>-  @errbuf = []</div><div class='del'>-  @location = nil</div><div class='del'>-  @columns = 0</div><div class='del'>-  @width = pathes.map {|path| File.basename(path).size}.max + 2</div><div class='add'>+def load_test pathes</div><div class='ctx'>   pathes.each do |path|</div><div class='del'>-    @basename = File.basename(path)</div><div class='del'>-    $stderr.printf("%s%-*s ", erase(@quiet), @width, @basename)</div><div class='del'>-    $stderr.flush</div><div class='del'>-    @columns = @width + 1</div><div class='del'>-    $stderr.puts if @verbose</div><div class='del'>-    count = @count</div><div class='del'>-    error = @error</div><div class='ctx'>     load File.expand_path(path)</div><div class='del'>-    if @tty</div><div class='del'>-      if @error == error</div><div class='del'>-        msg = "PASS #{@count-count}"</div><div class='del'>-        @columns += msg.size - 1</div><div class='del'>-        $stderr.print "#{@progress_bs}#{@passed}#{msg}#{@reset}"</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def concurrent_exec_test</div><div class='add'>+  aq = Queue.new</div><div class='add'>+  rq = Queue.new</div><div class='add'>+</div><div class='add'>+  ts = BT.wn.times.map do</div><div class='add'>+    Thread.new do</div><div class='add'>+      while as = aq.pop</div><div class='add'>+        as.call</div><div class='add'>+        rq &lt;&lt; as</div><div class='add'>+      end</div><div class='add'>+    ensure</div><div class='add'>+      rq &lt;&lt; nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Assertion.all.to_a.shuffle.each do |path, assertions|</div><div class='add'>+    assertions.each do |as|</div><div class='add'>+      aq &lt;&lt; as</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  BT.indent = 1</div><div class='add'>+  aq.close</div><div class='add'>+  i = 1</div><div class='add'>+  term_wn = 0</div><div class='add'>+  begin</div><div class='add'>+    while BT.wn != term_wn</div><div class='add'>+      if r = rq.pop</div><div class='add'>+        case</div><div class='add'>+        when BT.quiet</div><div class='add'>+        when BT.tty</div><div class='add'>+          $stderr.print "#{BT.progress_bs}#{BT.progress[(i+=1) % BT.progress.size]}"</div><div class='add'>+        else</div><div class='add'>+          BT.putc '.'</div><div class='add'>+        end</div><div class='ctx'>       else</div><div class='del'>-        msg = "FAIL #{@error-error}/#{@count-count}"</div><div class='del'>-        $stderr.print "#{@progress_bs}#{@failed}#{msg}#{@reset}"</div><div class='del'>-        @columns = 0</div><div class='add'>+        term_wn += 1</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  ensure</div><div class='add'>+    ts.each(&amp;:kill)</div><div class='add'>+    ts.each(&amp;:join)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def exec_test(pathes)</div><div class='add'>+  # setup</div><div class='add'>+  load_test pathes</div><div class='add'>+  BT_STATE.count = 0</div><div class='add'>+  BT_STATE.error = 0</div><div class='add'>+  BT.columns = 0</div><div class='add'>+  BT.width = pathes.map {|path| File.basename(path).size}.max + 2</div><div class='add'>+</div><div class='add'>+  # execute tests</div><div class='add'>+  if BT.wn &gt; 1</div><div class='add'>+    concurrent_exec_test</div><div class='add'>+  else</div><div class='add'>+    prev_basename = nil</div><div class='add'>+    Assertion.all.each do |basename, assertions|</div><div class='add'>+      if !BT.quiet &amp;&amp; basename != prev_basename</div><div class='add'>+        prev_basename = basename</div><div class='add'>+        $stderr.printf("%s%-*s ", erase(BT.quiet), BT.width, basename)</div><div class='add'>+        $stderr.flush</div><div class='add'>+      end</div><div class='add'>+      BT.columns = BT.width + 1</div><div class='add'>+      $stderr.puts if BT.verbose</div><div class='add'>+      count = BT_STATE.count</div><div class='add'>+      error = BT_STATE.error</div><div class='add'>+</div><div class='add'>+      assertions.each do |assertion|</div><div class='add'>+        BT_STATE.count += 1</div><div class='add'>+        assertion.call</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if BT.tty</div><div class='add'>+        if BT_STATE.error == error</div><div class='add'>+          msg = "PASS #{BT_STATE.count-count}"</div><div class='add'>+          BT.columns += msg.size - 1</div><div class='add'>+          $stderr.print "#{BT.progress_bs}#{BT.passed}#{msg}#{BT.reset}" unless BT.quiet</div><div class='add'>+        else</div><div class='add'>+          msg = "FAIL #{BT_STATE.error-error}/#{BT_STATE.count-count}"</div><div class='add'>+          $stderr.print "#{BT.progress_bs}#{BT.failed}#{msg}#{BT.reset}"</div><div class='add'>+          BT.columns = 0</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='add'>+      $stderr.puts if !BT.quiet and (BT.tty or BT_STATE.error == error)</div><div class='ctx'>     end</div><div class='del'>-    $stderr.puts unless @quiet and @tty and @error == error</div><div class='ctx'>   end</div><div class='del'>-  $stderr.print(erase) if @quiet</div><div class='del'>-  if @error == 0</div><div class='del'>-    if @count == 0</div><div class='del'>-      $stderr.puts "No tests, no problem"</div><div class='add'>+</div><div class='add'>+  # show results</div><div class='add'>+  unless BT.quiet</div><div class='add'>+    $stderr.puts(erase)</div><div class='add'>+</div><div class='add'>+    sec = Time.now - $start_time</div><div class='add'>+    $stderr.puts "Finished in #{'%.2f' % sec} sec\n\n" if Assertion.count &gt; 0</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Assertion.errbuf.each do |msg|</div><div class='add'>+    $stderr.puts msg</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  out = BT.quiet ? $stdout : $stderr</div><div class='add'>+</div><div class='add'>+  if BT_STATE.error == 0</div><div class='add'>+    if Assertion.count == 0</div><div class='add'>+      out.puts "No tests, no problem" unless BT.quiet</div><div class='ctx'>     else</div><div class='del'>-      $stderr.puts "#{@passed}PASS#{@reset} all #{@count} tests"</div><div class='add'>+      out.puts "#{BT.passed}PASS#{BT.reset} all #{Assertion.count} tests"</div><div class='ctx'>     end</div><div class='del'>-    exit true</div><div class='add'>+    true</div><div class='ctx'>   else</div><div class='del'>-    @errbuf.each do |msg|</div><div class='del'>-      $stderr.puts msg</div><div class='del'>-    end</div><div class='del'>-    $stderr.puts "#{@failed}FAIL#{@reset} #{@error}/#{@count} tests failed"</div><div class='del'>-    exit false</div><div class='add'>+    $stderr.puts "#{BT.failed}FAIL#{BT.reset} #{BT_STATE.error}/#{BT_STATE.count} tests failed"</div><div class='add'>+    false</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-def show_progress(message = '')</div><div class='del'>-  if @verbose</div><div class='del'>-    $stderr.print "\##{@count} #{@location} "</div><div class='del'>-  elsif @tty</div><div class='del'>-    $stderr.print "#{@progress_bs}#{@progress[@count % @progress.size]}"</div><div class='del'>-  end</div><div class='del'>-  t = Time.now if @verbose</div><div class='del'>-  faildesc, errout = with_stderr {yield}</div><div class='del'>-  t = Time.now - t if @verbose</div><div class='del'>-  if !faildesc</div><div class='del'>-    if @tty</div><div class='del'>-      $stderr.print "#{@progress_bs}#{@progress[@count % @progress.size]}"</div><div class='del'>-    elsif @verbose</div><div class='del'>-      $stderr.printf(". %.3f\n", t)</div><div class='add'>+def target_platform</div><div class='add'>+  BT.platform or RUBY_PLATFORM</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class Assertion &lt; Struct.new(:src, :path, :lineno, :proc)</div><div class='add'>+  @count = 0</div><div class='add'>+  @all = Hash.new{|h, k| h[k] = []}</div><div class='add'>+  @errbuf = []</div><div class='add'>+</div><div class='add'>+  class &lt;&lt; self</div><div class='add'>+    attr_reader :count, :errbuf</div><div class='add'>+</div><div class='add'>+    def all</div><div class='add'>+      @all</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def add as</div><div class='add'>+      @all[as.path] &lt;&lt; as</div><div class='add'>+      as.id = (@count += 1)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  attr_accessor :id</div><div class='add'>+  attr_reader :err, :category</div><div class='add'>+</div><div class='add'>+  def initialize(*args)</div><div class='add'>+    super</div><div class='add'>+    self.class.add self</div><div class='add'>+    @category = self.path.match(/test_(.+)\.rb/)[1]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def call</div><div class='add'>+    self.proc.call self</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def assert_check(message = '', opt = '', **argh)</div><div class='add'>+    show_progress(message) {</div><div class='add'>+      result = get_result_string(opt, **argh)</div><div class='add'>+      yield(result)</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def with_stderr</div><div class='add'>+    out = err = nil</div><div class='add'>+    r, w = IO.pipe</div><div class='add'>+    @err = w</div><div class='add'>+    err_reader = Thread.new{ r.read }</div><div class='add'>+</div><div class='add'>+    begin</div><div class='add'>+      out = yield</div><div class='add'>+    ensure</div><div class='add'>+      w.close</div><div class='add'>+      err = err_reader.value</div><div class='add'>+      r.close rescue nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    return out, err</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def show_error(msg, additional_message)</div><div class='add'>+    msg = "#{BT.failed}\##{self.id} #{self.path}:#{self.lineno}#{BT.reset}: #{msg}  #{additional_message}"</div><div class='add'>+    if BT.tty</div><div class='add'>+      $stderr.puts "#{erase}#{msg}"</div><div class='ctx'>     else</div><div class='del'>-      $stderr.print '.'</div><div class='add'>+      Assertion.errbuf &lt;&lt; msg</div><div class='ctx'>     end</div><div class='del'>-  else</div><div class='del'>-    $stderr.print "#{@failed}F"</div><div class='del'>-    $stderr.printf(" %.3f", t) if @verbose</div><div class='del'>-    $stderr.print "#{@reset}"</div><div class='del'>-    $stderr.puts if @verbose</div><div class='del'>-    error faildesc, message</div><div class='del'>-    unless errout.empty?</div><div class='del'>-      $stderr.print "#{@failed}stderr output is not empty#{@reset}\n", adjust_indent(errout)</div><div class='add'>+    BT_STATE.error += 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+  def show_progress(message = '')</div><div class='add'>+    if BT.quiet || BT.wn &gt; 1</div><div class='add'>+      # do nothing</div><div class='add'>+    elsif BT.verbose</div><div class='add'>+      $stderr.print "\##{@id} #{self.path}:#{self.lineno} "</div><div class='add'>+    elsif BT.tty</div><div class='add'>+      $stderr.print "#{BT.progress_bs}#{BT.progress[BT_STATE.count % BT.progress.size]}"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    t = Time.now if BT.verbose</div><div class='add'>+    faildesc, errout = with_stderr {yield}</div><div class='add'>+    t = Time.now - t if BT.verbose</div><div class='add'>+</div><div class='add'>+    if !faildesc</div><div class='add'>+      # success</div><div class='add'>+      if BT.quiet || BT.wn &gt; 1</div><div class='add'>+        # do nothing</div><div class='add'>+      elsif BT.tty</div><div class='add'>+        $stderr.print "#{BT.progress_bs}#{BT.progress[BT_STATE.count % BT.progress.size]}"</div><div class='add'>+      elsif BT.verbose</div><div class='add'>+        $stderr.printf(". %.3f\n", t)</div><div class='add'>+      else</div><div class='add'>+        BT.putc '.'</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      $stderr.print "#{BT.failed}F"</div><div class='add'>+      $stderr.printf(" %.3f", t) if BT.verbose</div><div class='add'>+      $stderr.print BT.reset</div><div class='add'>+      $stderr.puts if BT.verbose</div><div class='add'>+      show_error faildesc, message</div><div class='add'>+      unless errout.empty?</div><div class='add'>+        $stderr.print "#{BT.failed}stderr output is not empty#{BT.reset}\n", adjust_indent(errout)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if BT.tty and !BT.verbose and BT.wn == 1</div><div class='add'>+        $stderr.printf("%-*s%s", BT.width, path, BT.progress[BT_STATE.count % BT.progress.size])</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  rescue Interrupt</div><div class='add'>+    $stderr.puts "\##{@id} #{path}:#{lineno}"</div><div class='add'>+    raise</div><div class='add'>+  rescue Exception =&gt; err</div><div class='add'>+    $stderr.print 'E'</div><div class='add'>+    $stderr.puts if BT.verbose</div><div class='add'>+    show_error err.message, message</div><div class='add'>+  ensure</div><div class='add'>+    begin</div><div class='add'>+      check_coredump</div><div class='add'>+    rescue CoreDumpError =&gt; err</div><div class='add'>+      $stderr.print 'E'</div><div class='add'>+      $stderr.puts if BT.verbose</div><div class='add'>+      show_error err.message, message</div><div class='add'>+      cleanup_coredump</div><div class='ctx'>     end</div><div class='del'>-    if @tty and !@verbose</div><div class='del'>-      $stderr.printf("%-*s%s", @width, @basename, @progress[@count % @progress.size])</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def get_result_string(opt = '', **argh)</div><div class='add'>+    if BT.ruby</div><div class='add'>+      filename = make_srcfile(**argh)</div><div class='add'>+      begin</div><div class='add'>+        kw = self.err ? {err: self.err} : {}</div><div class='add'>+        out = IO.popen("#{BT.ruby} -W0 #{opt} #{filename}", **kw)</div><div class='add'>+        pid = out.pid</div><div class='add'>+        out.read.tap{ Process.waitpid(pid); out.close }</div><div class='add'>+      ensure</div><div class='add'>+        raise Interrupt if $? and $?.signaled? &amp;&amp; $?.termsig == Signal.list["INT"]</div><div class='add'>+</div><div class='add'>+        begin</div><div class='add'>+          Process.kill :KILL, pid</div><div class='add'>+        rescue Errno::ESRCH</div><div class='add'>+          # OK</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      eval(src).to_s</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='del'>-rescue Interrupt</div><div class='del'>-  $stderr.puts "\##{@count} #{@location}"</div><div class='del'>-  raise</div><div class='del'>-rescue Exception =&gt; err</div><div class='del'>-  $stderr.print 'E'</div><div class='del'>-  $stderr.puts if @verbose</div><div class='del'>-  error err.message, message</div><div class='add'>+</div><div class='add'>+  def make_srcfile(frozen_string_literal: nil)</div><div class='add'>+    filename = "bootstraptest.#{self.path}_#{self.lineno}_#{self.id}.rb"</div><div class='add'>+    File.open(filename, 'w') {|f|</div><div class='add'>+      f.puts "#frozen_string_literal:true" if frozen_string_literal</div><div class='add'>+      f.puts "GC.stress = true" if $stress</div><div class='add'>+      f.puts "print(begin; #{self.src}; end)"</div><div class='add'>+    }</div><div class='add'>+    filename</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-def assert_check(testsrc, message = '', opt = '', **argh)</div><div class='del'>-  show_progress(message) {</div><div class='del'>-    result = get_result_string(testsrc, opt, **argh)</div><div class='del'>-    check_coredump</div><div class='del'>-    yield(result)</div><div class='del'>-  }</div><div class='add'>+def add_assertion src, pr</div><div class='add'>+  loc = caller_locations(2, 1).first</div><div class='add'>+  lineno = loc.lineno</div><div class='add'>+  path = File.basename(loc.path)</div><div class='add'>+</div><div class='add'>+  Assertion.new(src, path, lineno, pr)</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> def assert_equal(expected, testsrc, message = '', opt = '', **argh)</div><div class='del'>-  newtest</div><div class='del'>-  assert_check(testsrc, message, opt, **argh) {|result|</div><div class='del'>-    if expected == result</div><div class='del'>-      nil</div><div class='del'>-    else</div><div class='del'>-      desc = "#{result.inspect} (expected #{expected.inspect})"</div><div class='del'>-      pretty(testsrc, desc, result)</div><div class='del'>-    end</div><div class='del'>-  }</div><div class='add'>+  add_assertion testsrc, -&gt; as do</div><div class='add'>+    as.assert_check(message, opt, **argh) {|result|</div><div class='add'>+      if expected == result</div><div class='add'>+        nil</div><div class='add'>+      else</div><div class='add'>+        desc = "#{result.inspect} (expected #{expected.inspect})"</div><div class='add'>+        pretty(testsrc, desc, result)</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> def assert_match(expected_pattern, testsrc, message = '')</div><div class='del'>-  newtest</div><div class='del'>-  assert_check(testsrc, message) {|result|</div><div class='del'>-    if expected_pattern =~ result</div><div class='del'>-      nil</div><div class='del'>-    else</div><div class='del'>-      desc = "#{expected_pattern.inspect} expected to be =~\n#{result.inspect}"</div><div class='del'>-      pretty(testsrc, desc, result)</div><div class='del'>-    end</div><div class='del'>-  }</div><div class='add'>+  add_assertion testsrc, -&gt; as do</div><div class='add'>+    as.assert_check(message) {|result|</div><div class='add'>+      if expected_pattern =~ result</div><div class='add'>+        nil</div><div class='add'>+      else</div><div class='add'>+        desc = "#{expected_pattern.inspect} expected to be =~\n#{result.inspect}"</div><div class='add'>+        pretty(testsrc, desc, result)</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> def assert_not_match(unexpected_pattern, testsrc, message = '')</div><div class='del'>-  newtest</div><div class='del'>-  assert_check(testsrc, message) {|result|</div><div class='del'>-    if unexpected_pattern !~ result</div><div class='del'>-      nil</div><div class='del'>-    else</div><div class='del'>-      desc = "#{unexpected_pattern.inspect} expected to be !~\n#{result.inspect}"</div><div class='del'>-      pretty(testsrc, desc, result)</div><div class='del'>-    end</div><div class='del'>-  }</div><div class='add'>+  add_assertion testsrc, -&gt; as do</div><div class='add'>+    as.assert_check(message) {|result|</div><div class='add'>+      if unexpected_pattern !~ result</div><div class='add'>+        nil</div><div class='add'>+      else</div><div class='add'>+        desc = "#{unexpected_pattern.inspect} expected to be !~\n#{result.inspect}"</div><div class='add'>+        pretty(testsrc, desc, result)</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> def assert_valid_syntax(testsrc, message = '')</div><div class='del'>-  newtest</div><div class='del'>-  assert_check(testsrc, message, '-c') {|result|</div><div class='del'>-    result if /Syntax OK/ !~ result</div><div class='del'>-  }</div><div class='add'>+  add_assertion testsrc, -&gt; as do</div><div class='add'>+    as.assert_check(message, '-c') {|result|</div><div class='add'>+      result if /Syntax OK/ !~ result</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> def assert_normal_exit(testsrc, *rest, timeout: nil, **opt)</div><div class='del'>-  newtest</div><div class='del'>-  message, ignore_signals = rest</div><div class='del'>-  message ||= ''</div><div class='del'>-  show_progress(message) {</div><div class='del'>-    faildesc = nil</div><div class='del'>-    filename = make_srcfile(testsrc)</div><div class='del'>-    old_stderr = $stderr.dup</div><div class='del'>-    timeout_signaled = false</div><div class='del'>-    begin</div><div class='del'>-      $stderr.reopen("assert_normal_exit.log", "w")</div><div class='del'>-      io = IO.popen("#{@ruby} -W0 #{filename}")</div><div class='del'>-      pid = io.pid</div><div class='del'>-      th = Thread.new {</div><div class='del'>-        io.read</div><div class='del'>-        io.close</div><div class='del'>-        $?</div><div class='del'>-      }</div><div class='del'>-      if !th.join(timeout)</div><div class='del'>-        Process.kill :KILL, pid</div><div class='del'>-        timeout_signaled = true</div><div class='del'>-      end</div><div class='del'>-      status = th.value</div><div class='del'>-    ensure</div><div class='del'>-      $stderr.reopen(old_stderr)</div><div class='del'>-      old_stderr.close</div><div class='del'>-    end</div><div class='del'>-    if status &amp;&amp; status.signaled?</div><div class='del'>-      signo = status.termsig</div><div class='del'>-      signame = Signal.list.invert[signo]</div><div class='del'>-      unless ignore_signals and ignore_signals.include?(signame)</div><div class='del'>-        sigdesc = "signal #{signo}"</div><div class='del'>-        if signame</div><div class='del'>-          sigdesc = "SIG#{signame} (#{sigdesc})"</div><div class='del'>-        end</div><div class='del'>-        if timeout_signaled</div><div class='del'>-          sigdesc &lt;&lt; " (timeout)"</div><div class='add'>+  add_assertion testsrc, -&gt; as do</div><div class='add'>+    message, ignore_signals = rest</div><div class='add'>+    message ||= ''</div><div class='add'>+    as.show_progress(message) {</div><div class='add'>+      faildesc = nil</div><div class='add'>+      filename = as.make_srcfile</div><div class='add'>+      timeout_signaled = false</div><div class='add'>+      logfile = "assert_normal_exit.#{as.path}.#{as.lineno}.log"</div><div class='add'>+</div><div class='add'>+      begin</div><div class='add'>+        err = open(logfile, "w")</div><div class='add'>+        io = IO.popen("#{BT.ruby} -W0 #{filename}", err: err)</div><div class='add'>+        pid = io.pid</div><div class='add'>+        th = Thread.new {</div><div class='add'>+          io.read</div><div class='add'>+          io.close</div><div class='add'>+          $?</div><div class='add'>+        }</div><div class='add'>+        if !th.join(timeout)</div><div class='add'>+          Process.kill :KILL, pid</div><div class='add'>+          timeout_signaled = true</div><div class='ctx'>         end</div><div class='del'>-        faildesc = pretty(testsrc, "killed by #{sigdesc}", nil)</div><div class='del'>-        stderr_log = File.read("assert_normal_exit.log")</div><div class='del'>-        if !stderr_log.empty?</div><div class='del'>-          faildesc &lt;&lt; "\n" if /\n\z/ !~ faildesc</div><div class='del'>-          stderr_log &lt;&lt; "\n" if /\n\z/ !~ stderr_log</div><div class='del'>-          stderr_log.gsub!(/^.*\n/) { '| ' + $&amp; }</div><div class='del'>-          faildesc &lt;&lt; stderr_log</div><div class='add'>+        status = th.value</div><div class='add'>+      ensure</div><div class='add'>+        err.close</div><div class='add'>+      end</div><div class='add'>+      if status &amp;&amp; status.signaled?</div><div class='add'>+        signo = status.termsig</div><div class='add'>+        signame = Signal.list.invert[signo]</div><div class='add'>+        unless ignore_signals and ignore_signals.include?(signame)</div><div class='add'>+          sigdesc = "signal #{signo}"</div><div class='add'>+          if signame</div><div class='add'>+            sigdesc = "SIG#{signame} (#{sigdesc})"</div><div class='add'>+          end</div><div class='add'>+          if timeout_signaled</div><div class='add'>+            sigdesc &lt;&lt; " (timeout)"</div><div class='add'>+          end</div><div class='add'>+          faildesc = pretty(testsrc, "killed by #{sigdesc}", nil)</div><div class='add'>+          stderr_log = File.read(logfile)</div><div class='add'>+          if !stderr_log.empty?</div><div class='add'>+            faildesc &lt;&lt; "\n" if /\n\z/ !~ faildesc</div><div class='add'>+            stderr_log &lt;&lt; "\n" if /\n\z/ !~ stderr_log</div><div class='add'>+            stderr_log.gsub!(/^.*\n/) { '| ' + $&amp; }</div><div class='add'>+            faildesc &lt;&lt; stderr_log</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='del'>-    end</div><div class='del'>-    faildesc</div><div class='del'>-  }</div><div class='add'>+      faildesc</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> def assert_finish(timeout_seconds, testsrc, message = '')</div><div class='del'>-  timeout_seconds *= 3 if RubyVM::MJIT.enabled? # for --jit-wait</div><div class='del'>-  newtest</div><div class='del'>-  show_progress(message) {</div><div class='del'>-    faildesc = nil</div><div class='del'>-    filename = make_srcfile(testsrc)</div><div class='del'>-    io = IO.popen("#{@ruby} -W0 #{filename}")</div><div class='del'>-    pid = io.pid</div><div class='del'>-    waited = false</div><div class='del'>-    tlimit = Time.now + timeout_seconds</div><div class='del'>-    diff = timeout_seconds</div><div class='del'>-    while diff &gt; 0</div><div class='del'>-      if Process.waitpid pid, Process::WNOHANG</div><div class='del'>-        waited = true</div><div class='del'>-        break</div><div class='del'>-      end</div><div class='del'>-      if io.respond_to?(:read_nonblock)</div><div class='del'>-        if IO.select([io], nil, nil, diff)</div><div class='del'>-          begin</div><div class='del'>-            io.read_nonblock(1024)</div><div class='del'>-          rescue Errno::EAGAIN, IO::WaitReadable, EOFError</div><div class='del'>-            break</div><div class='del'>-          end while true</div><div class='add'>+  add_assertion testsrc, -&gt; as do</div><div class='add'>+    if defined?(RubyVM::MJIT) &amp;&amp; RubyVM::MJIT.enabled? # for --jit-wait</div><div class='add'>+      timeout_seconds *= 3</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    as.show_progress(message) {</div><div class='add'>+      faildesc = nil</div><div class='add'>+      filename = as.make_srcfile</div><div class='add'>+      io = IO.popen("#{BT.ruby} -W0 #{filename}", err: as.err)</div><div class='add'>+      pid = io.pid</div><div class='add'>+      waited = false</div><div class='add'>+      tlimit = Time.now + timeout_seconds</div><div class='add'>+      diff = timeout_seconds</div><div class='add'>+      while diff &gt; 0</div><div class='add'>+        if Process.waitpid pid, Process::WNOHANG</div><div class='add'>+          waited = true</div><div class='add'>+          break</div><div class='ctx'>         end</div><div class='del'>-      else</div><div class='del'>-        sleep 0.1</div><div class='add'>+        if io.respond_to?(:read_nonblock)</div><div class='add'>+          if IO.select([io], nil, nil, diff)</div><div class='add'>+            begin</div><div class='add'>+              io.read_nonblock(1024)</div><div class='add'>+            rescue Errno::EAGAIN, IO::WaitReadable, EOFError</div><div class='add'>+              break</div><div class='add'>+            end while true</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          sleep 0.1</div><div class='add'>+        end</div><div class='add'>+        diff = tlimit - Time.now</div><div class='ctx'>       end</div><div class='del'>-      diff = tlimit - Time.now</div><div class='del'>-    end</div><div class='del'>-    if !waited</div><div class='del'>-      Process.kill(:KILL, pid)</div><div class='del'>-      Process.waitpid pid</div><div class='del'>-      faildesc = pretty(testsrc, "not finished in #{timeout_seconds} seconds", nil)</div><div class='del'>-    end</div><div class='del'>-    io.close</div><div class='del'>-    faildesc</div><div class='del'>-  }</div><div class='add'>+      if !waited</div><div class='add'>+        Process.kill(:KILL, pid)</div><div class='add'>+        Process.waitpid pid</div><div class='add'>+        faildesc = pretty(testsrc, "not finished in #{timeout_seconds} seconds", nil)</div><div class='add'>+      end</div><div class='add'>+      io.close</div><div class='add'>+      faildesc</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> def flunk(message = '')</div><div class='del'>-  newtest</div><div class='del'>-  show_progress('') { message }</div><div class='add'>+  add_assertion '', -&gt; as do</div><div class='add'>+    as.show_progress('') { message }</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def show_limit(testsrc, opt = '', **argh)</div><div class='add'>+  return if BT.quiet</div><div class='add'>+</div><div class='add'>+  add_assertion testsrc, -&gt; as do</div><div class='add'>+    result = as.get_result_string(opt, **argh)</div><div class='add'>+    Assertion.errbuf &lt;&lt; result</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> def pretty(src, desc, result)</div><div class='hunk'>@@ -425,67 +740,6 @@ def untabify(str)</div><div class='ctx'>   str.gsub(/^\t+/) {' ' * (8 * $&amp;.size) }</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-def make_srcfile(src, frozen_string_literal: nil)</div><div class='del'>-  filename = 'bootstraptest.tmp.rb'</div><div class='del'>-  File.open(filename, 'w') {|f|</div><div class='del'>-    f.puts "#frozen_string_literal:true" if frozen_string_literal</div><div class='del'>-    f.puts "GC.stress = true" if $stress</div><div class='del'>-    f.puts "print(begin; #{src}; end)"</div><div class='del'>-  }</div><div class='del'>-  filename</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def get_result_string(src, opt = '', **argh)</div><div class='del'>-  if @ruby</div><div class='del'>-    filename = make_srcfile(src, **argh)</div><div class='del'>-    begin</div><div class='del'>-      `#{@ruby} -W0 #{opt} #{filename}`</div><div class='del'>-    ensure</div><div class='del'>-      raise Interrupt if $? and $?.signaled? &amp;&amp; $?.termsig == Signal.list["INT"]</div><div class='del'>-      raise CoreDumpError, "core dumped" if $? and $?.coredump?</div><div class='del'>-    end</div><div class='del'>-  else</div><div class='del'>-    eval(src).to_s</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def with_stderr</div><div class='del'>-  out = err = nil</div><div class='del'>-  begin</div><div class='del'>-    r, w = IO.pipe</div><div class='del'>-    stderr = $stderr.dup</div><div class='del'>-    $stderr.reopen(w)</div><div class='del'>-    w.close</div><div class='del'>-    reader = Thread.start {r.read}</div><div class='del'>-    begin</div><div class='del'>-      out = yield</div><div class='del'>-    ensure</div><div class='del'>-      $stderr.reopen(stderr)</div><div class='del'>-      err = reader.value</div><div class='del'>-    end</div><div class='del'>-  ensure</div><div class='del'>-    w.close rescue nil</div><div class='del'>-    r.close rescue nil</div><div class='del'>-  end</div><div class='del'>-  return out, err</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def newtest</div><div class='del'>-  @location = File.basename(caller(2).first)</div><div class='del'>-  @count += 1</div><div class='del'>-  cleanup_coredump</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def error(msg, additional_message)</div><div class='del'>-  msg = "#{@failed}\##{@count} #{@location}#{@reset}: #{msg}  #{additional_message}"</div><div class='del'>-  if @tty</div><div class='del'>-    $stderr.puts "#{erase}#{msg}"</div><div class='del'>-  else</div><div class='del'>-    @errbuf.push msg</div><div class='del'>-  end</div><div class='del'>-  @error += 1</div><div class='del'>-end</div><div class='del'>-</div><div class='ctx'> def in_temporary_working_directory(dir)</div><div class='ctx'>   if dir</div><div class='ctx'>     Dir.mkdir dir</div><div class='hunk'>@@ -502,18 +756,32 @@ def in_temporary_working_directory(dir)</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> def cleanup_coredump</div><div class='del'>-  FileUtils.rm_f 'core'</div><div class='add'>+  if File.file?('core')</div><div class='add'>+    require 'time'</div><div class='add'>+    Dir.glob('/tmp/bootstraptest-core.*').each do |f|</div><div class='add'>+      if Time.now - File.mtime(f) &gt; 7 * 24 * 60 * 60 # 7 days</div><div class='add'>+        warn "Deleting an old core file: #{f}"</div><div class='add'>+        FileUtils.rm(f)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    core_path = "/tmp/bootstraptest-core.#{Time.now.utc.iso8601}"</div><div class='add'>+    warn "A core file is found. Saving it at: #{core_path.dump}"</div><div class='add'>+    FileUtils.mv('core', core_path)</div><div class='add'>+    cmd = ['gdb', BT.ruby, '-c', core_path, '-ex', 'bt', '-batch']</div><div class='add'>+    p cmd # debugging why it's not working</div><div class='add'>+    system(*cmd)</div><div class='add'>+  end</div><div class='ctx'>   FileUtils.rm_f Dir.glob('core.*')</div><div class='del'>-  FileUtils.rm_f @ruby+'.stackdump' if @ruby</div><div class='add'>+  FileUtils.rm_f BT.ruby+'.stackdump' if BT.ruby</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> class CoreDumpError &lt; StandardError; end</div><div class='ctx'> </div><div class='ctx'> def check_coredump</div><div class='ctx'>   if File.file?('core') or not Dir.glob('core.*').empty? or</div><div class='del'>-      (@ruby and File.exist?(@ruby+'.stackdump'))</div><div class='add'>+      (BT.ruby and File.exist?(BT.ruby+'.stackdump'))</div><div class='ctx'>     raise CoreDumpError, "core dumped"</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-main</div><div class='add'>+exit main</div><div class='head'>diff --git a/bootstraptest/test_attr.rb b/bootstraptest/test_attr.rb<br/>index 721a847145..3cb9d3eb39 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_attr.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_attr.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_attr.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_attr.rb</a></div><div class='hunk'>@@ -34,3 +34,19 @@ assert_equal %{ok}, %{</div><div class='ctx'>     print "ok"</div><div class='ctx'>   end</div><div class='ctx'> }, '[ruby-core:15120]'</div><div class='add'>+</div><div class='add'>+assert_equal %{ok}, %{</div><div class='add'>+  class Big</div><div class='add'>+    attr_reader :foo</div><div class='add'>+    def initialize</div><div class='add'>+      @foo = "ok"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  obj = Big.new</div><div class='add'>+  100.times do |i|</div><div class='add'>+    obj.instance_variable_set(:"@ivar_\#{i}", i)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Big.new.foo</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_autoload.rb b/bootstraptest/test_autoload.rb<br/>index a9f8e6dacd..9e0850bc52 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_autoload.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_autoload.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_autoload.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_autoload.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> assert_equal 'ok', %q{</div><div class='del'>-  File.unlink('zzz.rb') if File.file?('zzz.rb')</div><div class='add'>+  File.unlink('zzz1.rb') if File.file?('zzz1.rb')</div><div class='ctx'>   instance_eval do</div><div class='del'>-    autoload :ZZZ, './zzz.rb'</div><div class='add'>+    autoload :ZZZ, './zzz1.rb'</div><div class='ctx'>     begin</div><div class='ctx'>       ZZZ</div><div class='ctx'>     rescue LoadError</div><div class='hunk'>@@ -11,9 +11,9 @@ assert_equal 'ok', %q{</div><div class='ctx'> }, '[ruby-dev:43816]'</div><div class='ctx'> </div><div class='ctx'> assert_equal 'ok', %q{</div><div class='del'>-  open('zzz.rb', 'w') {|f| f.puts '' }</div><div class='add'>+  open('zzz2.rb', 'w') {|f| f.puts '' }</div><div class='ctx'>   instance_eval do</div><div class='del'>-    autoload :ZZZ, './zzz.rb'</div><div class='add'>+    autoload :ZZZ, './zzz2.rb'</div><div class='ctx'>     begin</div><div class='ctx'>       ZZZ</div><div class='ctx'>     rescue NameError</div><div class='hunk'>@@ -23,29 +23,29 @@ assert_equal 'ok', %q{</div><div class='ctx'> }, '[ruby-dev:43816]'</div><div class='ctx'> </div><div class='ctx'> assert_equal 'ok', %q{</div><div class='del'>-  open('zzz.rb', 'w') {|f| f.puts 'class ZZZ; def self.ok;:ok;end;end'}</div><div class='add'>+  open('zzz3.rb', 'w') {|f| f.puts 'class ZZZ; def self.ok;:ok;end;end'}</div><div class='ctx'>   instance_eval do</div><div class='del'>-    autoload :ZZZ, './zzz.rb'</div><div class='add'>+    autoload :ZZZ, './zzz3.rb'</div><div class='ctx'>     ZZZ.ok</div><div class='ctx'>   end</div><div class='ctx'> }, '[ruby-dev:43816]'</div><div class='ctx'> </div><div class='ctx'> assert_equal 'ok', %q{</div><div class='del'>-  open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}</div><div class='del'>-  autoload :ZZZ, "./zzz.rb"</div><div class='add'>+  open("zzz4.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}</div><div class='add'>+  autoload :ZZZ, "./zzz4.rb"</div><div class='ctx'>   ZZZ.ok</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> assert_equal 'ok', %q{</div><div class='del'>-  open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}</div><div class='del'>-  autoload :ZZZ, "./zzz.rb"</div><div class='del'>-  require "./zzz.rb"</div><div class='add'>+  open("zzz5.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}</div><div class='add'>+  autoload :ZZZ, "./zzz5.rb"</div><div class='add'>+  require "./zzz5.rb"</div><div class='ctx'>   ZZZ.ok</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> assert_equal 'okok', %q{</div><div class='del'>-  open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}</div><div class='del'>-  autoload :ZZZ, "./zzz.rb"</div><div class='add'>+  open("zzz6.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}</div><div class='add'>+  autoload :ZZZ, "./zzz6.rb"</div><div class='ctx'>   t1 = Thread.new {ZZZ.ok}</div><div class='ctx'>   t2 = Thread.new {ZZZ.ok}</div><div class='ctx'>   [t1.value, t2.value].join</div><div class='hunk'>@@ -60,9 +60,9 @@ assert_finish 5, %q{</div><div class='ctx'> }, '[ruby-core:21696]'</div><div class='ctx'> </div><div class='ctx'> assert_equal 'A::C', %q{</div><div class='del'>-  open("zzz.rb", "w") {}</div><div class='add'>+  open("zzz7.rb", "w") {}</div><div class='ctx'>   class A</div><div class='del'>-    autoload :C, "./zzz"</div><div class='add'>+    autoload :C, "./zzz7"</div><div class='ctx'>     class C</div><div class='ctx'>     end</div><div class='ctx'>     C</div><div class='head'>diff --git a/bootstraptest/test_constant_cache.rb b/bootstraptest/test_constant_cache.rb<br/>new file mode 100644<br/>index 0000000000..1fa83256ed<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_constant_cache.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_constant_cache.rb</a></div><div class='hunk'>@@ -0,0 +1,187 @@</div><div class='add'>+# Constant lookup is cached.</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  CONST = 1</div><div class='add'>+</div><div class='add'>+  def const</div><div class='add'>+    CONST</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  const</div><div class='add'>+  const</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Invalidate when a constant is set.</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  CONST = 1</div><div class='add'>+</div><div class='add'>+  def const</div><div class='add'>+    CONST</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  const</div><div class='add'>+</div><div class='add'>+  CONST = 2</div><div class='add'>+</div><div class='add'>+  const</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Invalidate when a constant of the same name is set.</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  CONST = 1</div><div class='add'>+</div><div class='add'>+  def const</div><div class='add'>+    CONST</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  const</div><div class='add'>+</div><div class='add'>+  class Container</div><div class='add'>+    CONST = 2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  const</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Invalidate when a constant is removed.</div><div class='add'>+assert_equal 'missing', %q{</div><div class='add'>+  class Container</div><div class='add'>+    CONST = 1</div><div class='add'>+</div><div class='add'>+    def const</div><div class='add'>+      CONST</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.const_missing(name)</div><div class='add'>+      'missing'</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    new.const</div><div class='add'>+    remove_const :CONST</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Container.new.const</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Invalidate when a constant's visibility changes.</div><div class='add'>+assert_equal 'missing', %q{</div><div class='add'>+  class Container</div><div class='add'>+    CONST = 1</div><div class='add'>+</div><div class='add'>+    def self.const_missing(name)</div><div class='add'>+      'missing'</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def const</div><div class='add'>+    Container::CONST</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  const</div><div class='add'>+</div><div class='add'>+  Container.private_constant :CONST</div><div class='add'>+</div><div class='add'>+  const</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Invalidate when a constant's visibility changes even if the call to the</div><div class='add'>+# visibility change method fails.</div><div class='add'>+assert_equal 'missing', %q{</div><div class='add'>+  class Container</div><div class='add'>+    CONST1 = 1</div><div class='add'>+</div><div class='add'>+    def self.const_missing(name)</div><div class='add'>+      'missing'</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def const1</div><div class='add'>+    Container::CONST1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  const1</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    Container.private_constant :CONST1, :CONST2</div><div class='add'>+  rescue NameError</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  const1</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Invalidate when a module is included.</div><div class='add'>+assert_equal 'INCLUDE', %q{</div><div class='add'>+  module Include</div><div class='add'>+    CONST = :INCLUDE</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Parent</div><div class='add'>+    CONST = :PARENT</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Child &lt; Parent</div><div class='add'>+    def const</div><div class='add'>+      CONST</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    new.const</div><div class='add'>+</div><div class='add'>+    include Include</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Child.new.const</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Invalidate when const_missing is hit.</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  module Container</div><div class='add'>+    Foo = 1</div><div class='add'>+    Bar = 2</div><div class='add'>+</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      attr_accessor :count</div><div class='add'>+</div><div class='add'>+      def const_missing(name)</div><div class='add'>+        @count += 1</div><div class='add'>+        @count == 1 ? Foo : Bar</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    @count = 0</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def const</div><div class='add'>+    Container::Baz</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  const</div><div class='add'>+  const</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Invalidate when the iseq gets cleaned up.</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  CONSTANT = 1</div><div class='add'>+</div><div class='add'>+  iseq = RubyVM::InstructionSequence.compile(&lt;&lt;~RUBY)</div><div class='add'>+    CONSTANT</div><div class='add'>+  RUBY</div><div class='add'>+</div><div class='add'>+  iseq.eval</div><div class='add'>+  iseq = nil</div><div class='add'>+</div><div class='add'>+  GC.start</div><div class='add'>+  CONSTANT = 2</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Invalidate when the iseq gets cleaned up even if it was never in the cache.</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  CONSTANT = 1</div><div class='add'>+</div><div class='add'>+  iseq = RubyVM::InstructionSequence.compile(&lt;&lt;~RUBY)</div><div class='add'>+    CONSTANT</div><div class='add'>+  RUBY</div><div class='add'>+</div><div class='add'>+  iseq = nil</div><div class='add'>+</div><div class='add'>+  GC.start</div><div class='add'>+  CONSTANT = 2</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_eval.rb b/bootstraptest/test_eval.rb<br/>index 8e90ac2728..a9f389c673 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_eval.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_eval.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_eval.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_eval.rb</a></div><div class='hunk'>@@ -116,6 +116,33 @@ assert_equal %q{1}, %q{</div><div class='ctx'>     Const</div><div class='ctx'>   }</div><div class='ctx'> }</div><div class='add'>+assert_equal %q{1}, %q{</div><div class='add'>+  class TrueClass</div><div class='add'>+    Const = 1</div><div class='add'>+  end</div><div class='add'>+  true.instance_eval %{</div><div class='add'>+    Const</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+assert_equal %q{[:Const]}, %q{</div><div class='add'>+  mod = Module.new</div><div class='add'>+  mod.instance_eval %{</div><div class='add'>+    Const = 1</div><div class='add'>+  }</div><div class='add'>+  raise if defined?(Module::Const)</div><div class='add'>+  mod.singleton_class.constants</div><div class='add'>+}</div><div class='add'>+assert_equal %q{can't define singleton}, %q{</div><div class='add'>+  begin</div><div class='add'>+    123.instance_eval %{</div><div class='add'>+      Const = 1</div><div class='add'>+    }</div><div class='add'>+    "bad"</div><div class='add'>+  rescue TypeError =&gt; e</div><div class='add'>+    raise "bad" if defined?(Integer::Const)</div><div class='add'>+    e.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='ctx'> assert_equal %q{top}, %q{</div><div class='ctx'>   Const = :top</div><div class='ctx'>   class C</div><div class='hunk'>@@ -190,7 +217,8 @@ assert_equal %q{[10, main]}, %q{</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> %w[break next redo].each do |keyword|</div><div class='del'>-  assert_match %r"Can't escape from eval with #{keyword}\z", %{</div><div class='add'>+  assert_match %r"Can't escape from eval with #{keyword}\b", %{</div><div class='add'>+    $stderr = STDOUT</div><div class='ctx'>     begin</div><div class='ctx'>       eval "0 rescue #{keyword}"</div><div class='ctx'>     rescue SyntaxError =&gt; e</div><div class='hunk'>@@ -200,7 +228,7 @@ assert_equal %q{[10, main]}, %q{</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> assert_normal_exit %q{</div><div class='del'>-  STDERR.reopen(STDOUT)</div><div class='add'>+  $stderr = STDOUT</div><div class='ctx'>   class Foo</div><div class='ctx'>      def self.add_method</div><div class='ctx'>        class_eval("def some-bad-name; puts 'hello' unless @some_variable.some_function(''); end")</div><div class='hunk'>@@ -249,7 +277,9 @@ assert_equal 'ok', %q{</div><div class='ctx'> </div><div class='ctx'> assert_equal 'ok', %q{</div><div class='ctx'>   begin</div><div class='del'>-    12.instance_eval { @@a }</div><div class='add'>+    class A</div><div class='add'>+      12.instance_eval { @@a }</div><div class='add'>+    end</div><div class='ctx'>   rescue NameError</div><div class='ctx'>     :ok</div><div class='ctx'>   end</div><div class='hunk'>@@ -257,7 +287,9 @@ assert_equal 'ok', %q{</div><div class='ctx'> </div><div class='ctx'> assert_equal 'ok', %q{</div><div class='ctx'>   begin</div><div class='del'>-    12.instance_exec { @@a }</div><div class='add'>+    class A</div><div class='add'>+      12.instance_exec { @@a }</div><div class='add'>+    end</div><div class='ctx'>   rescue NameError</div><div class='ctx'>     :ok</div><div class='ctx'>   end</div><div class='head'>diff --git a/bootstraptest/test_fiber.rb b/bootstraptest/test_fiber.rb<br/>new file mode 100644<br/>index 0000000000..2614dd13bf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_fiber.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_fiber.rb</a></div><div class='hunk'>@@ -0,0 +1,39 @@</div><div class='add'>+show_limit %q{</div><div class='add'>+  fibers = []</div><div class='add'>+  begin</div><div class='add'>+    fiber = Fiber.new{Fiber.yield}</div><div class='add'>+    fiber.resume</div><div class='add'>+    fibers &lt;&lt; fiber</div><div class='add'>+</div><div class='add'>+    raise Exception, "skipping" if fibers.count &gt;= 10_000</div><div class='add'>+  rescue Exception =&gt; error</div><div class='add'>+    puts "Fiber count: #{fibers.count} (#{error})"</div><div class='add'>+    break</div><div class='add'>+  end while true</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  Fiber.new{</div><div class='add'>+  }.resume</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  100.times.collect{Fiber.new{}}</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal %q{ok}, %q{</div><div class='add'>+  fibers = 1000.times.collect{Fiber.new{Fiber.yield}}</div><div class='add'>+  fibers.each(&amp;:resume)</div><div class='add'>+  fibers.each(&amp;:resume)</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  at_exit { Fiber.new{}.resume }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  Fiber.new(&amp;Object.method(:class_eval)).resume("foo")</div><div class='add'>+}, '[ruby-dev:34128]'</div><div class='head'>diff --git a/bootstraptest/test_flow.rb b/bootstraptest/test_flow.rb<br/>index 9da6d45cbd..35f19db588 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_flow.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_flow.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_flow.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_flow.rb</a></div><div class='hunk'>@@ -534,11 +534,11 @@ assert_equal %Q{ENSURE\n}, %q{</div><div class='ctx'>  ['[ruby-core:39125]', %q{</div><div class='ctx'>   class Bug5234</div><div class='ctx'>     include Enumerable</div><div class='del'>-    def each</div><div class='add'>+    def each(&amp;block)</div><div class='ctx'>       begin</div><div class='ctx'>         yield :foo</div><div class='ctx'>       ensure</div><div class='del'>-        proc</div><div class='add'>+        proc(&amp;block)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='hunk'>@@ -547,11 +547,11 @@ assert_equal %Q{ENSURE\n}, %q{</div><div class='ctx'>  ['[ruby-dev:45656]', %q{</div><div class='ctx'>   class Bug6460</div><div class='ctx'>     include Enumerable</div><div class='del'>-    def each</div><div class='add'>+    def each(&amp;block)</div><div class='ctx'>       begin</div><div class='ctx'>         yield :foo</div><div class='ctx'>       ensure</div><div class='del'>-        1.times { Proc.new }</div><div class='add'>+        1.times { Proc.new(&amp;block) }</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='head'>diff --git a/bootstraptest/test_insns.rb b/bootstraptest/test_insns.rb<br/>index 88f36bd0c2..91fba9b011 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_insns.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_insns.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_insns.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_insns.rb</a></div><div class='hunk'>@@ -10,8 +10,10 @@ begin</div><div class='ctx'> rescue LoadError</div><div class='ctx'>   # OK, just skip</div><div class='ctx'> else</div><div class='del'>-  $FIXNUM_MAX = RbConfig::LIMITS["FIXNUM_MAX"]</div><div class='del'>-  $FIXNUM_MIN = RbConfig::LIMITS["FIXNUM_MIN"]</div><div class='add'>+  if defined? RbConfig::LIMITS</div><div class='add'>+    $FIXNUM_MAX = RbConfig::LIMITS["FIXNUM_MAX"]</div><div class='add'>+    $FIXNUM_MIN = RbConfig::LIMITS["FIXNUM_MIN"]</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> fsl   = { frozen_string_literal: true } # used later</div><div class='hunk'>@@ -26,20 +28,20 @@ tests = [</div><div class='ctx'>   [ 'getlocal *, 1', %q{ x = true; -&gt; { x }.call }, ],</div><div class='ctx'>   [ 'getlocal',      %q{ x = true; -&gt; { -&gt; { x }.() }.() }, ],</div><div class='ctx'> </div><div class='del'>-  [ 'setblockparam', &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'setblockparam', &lt;&lt;-'},', ], # {</div><div class='ctx'>     def m&amp;b</div><div class='ctx'>       b = # here</div><div class='ctx'>         proc { true }</div><div class='ctx'>     end</div><div class='ctx'>     m { false }.call</div><div class='ctx'>   },</div><div class='del'>-  [ 'getblockparam', &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'getblockparam', &lt;&lt;-'},', ], # {</div><div class='ctx'>     def m&amp;b</div><div class='ctx'>       b # here</div><div class='ctx'>     end</div><div class='ctx'>     m { true }.call</div><div class='ctx'>   },</div><div class='del'>-  [ 'getblockparamproxy', &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'getblockparamproxy', &lt;&lt;-'},', ], # {</div><div class='ctx'>     def m&amp;b</div><div class='ctx'>       b # here</div><div class='ctx'>         .call</div><div class='hunk'>@@ -62,8 +64,8 @@ tests = [</div><div class='ctx'>   [ 'setinstancevariable', %q{ @x = true }, ],</div><div class='ctx'>   [ 'getinstancevariable', %q{ @x = true; @x }, ],</div><div class='ctx'> </div><div class='del'>-  [ 'setclassvariable', %q{ @@x = true }, ],</div><div class='del'>-  [ 'getclassvariable', %q{ @@x = true; @@x }, ],</div><div class='add'>+  [ 'setclassvariable', %q{ class A; @@x = true; end }, ],</div><div class='add'>+  [ 'getclassvariable', %q{ class A; @@x = true; @@x end }, ],</div><div class='ctx'> </div><div class='ctx'>   [ 'setconstant', %q{ X = true }, ],</div><div class='ctx'>   [ 'setconstant', %q{ Object::X = true }, ],</div><div class='hunk'>@@ -84,26 +86,24 @@ tests = [</div><div class='ctx'>   [ 'putobject',            %q{ /(?&lt;x&gt;x)/ =~ "x"; x == "x" }, ],</div><div class='ctx'> </div><div class='ctx'>   [ 'putspecialobject',         %q{ {//=&gt;true}[//] }, ],</div><div class='del'>-  [ 'putiseq',                  %q{ -&gt; { true }.() }, ],</div><div class='ctx'>   [ 'putstring',                %q{ "true" }, ],</div><div class='ctx'>   [ 'tostring / concatstrings', %q{ "#{true}" }, ],</div><div class='del'>-  [ 'freezestring',             %q{ "#{true}" }, fsl, ],</div><div class='del'>-  [ 'freezestring',             %q{ "#{true}" }, '-d', fsl, ],</div><div class='ctx'>   [ 'toregexp',                 %q{ /#{true}/ =~ "true" &amp;&amp; $~ }, ],</div><div class='ctx'>   [ 'intern',                   %q{ :"#{true}" }, ],</div><div class='ctx'> </div><div class='ctx'>   [ 'newarray',    %q{ ["true"][0] }, ],</div><div class='add'>+  [ 'newarraykwsplat', %q{ [**{x:'true'}][0][:x] }, ],</div><div class='ctx'>   [ 'duparray',    %q{ [ true ][0] }, ],</div><div class='ctx'>   [ 'expandarray', %q{ y = [ true, false, nil ]; x, = y; x }, ],</div><div class='ctx'>   [ 'expandarray', %q{ y = [ true, false, nil ]; x, *z = y; x }, ],</div><div class='ctx'>   [ 'expandarray', %q{ y = [ true, false, nil ]; x, *z, w = y; x }, ],</div><div class='ctx'>   [ 'splatarray',  %q{ x, = *(y = true), false; x }, ],</div><div class='ctx'>   [ 'concatarray', %q{ ["t", "r", *x = "u", "e"].join }, ],</div><div class='del'>-  [ 'concatarray', &lt;&lt;~'},', ],  # {</div><div class='add'>+  [ 'concatarray', &lt;&lt;-'},', ],  # {</div><div class='ctx'>     class X; def to_a; ['u']; end; end</div><div class='ctx'>     ['t', 'r', *X.new, 'e'].join</div><div class='ctx'>   },</div><div class='del'>-  [ 'concatarray', &lt;&lt;~'},', ],  # {</div><div class='add'>+  [ 'concatarray', &lt;&lt;-'},', ],  # {</div><div class='ctx'>     r = false</div><div class='ctx'>     t = [true, nil]</div><div class='ctx'>     q, w, e = r, *t             # here</div><div class='hunk'>@@ -120,7 +120,8 @@ tests = [</div><div class='ctx'>   [ 'dup',     %q{ x = y = true; x }, ],</div><div class='ctx'>   [ 'dupn',    %q{ Object::X ||= true }, ],</div><div class='ctx'>   [ 'reverse', %q{ q, (w, e), r = 1, [2, 3], 4; e == 3 }, ],</div><div class='del'>-  [ 'swap',    &lt;&lt;~'},', ],      # {</div><div class='add'>+  [ 'swap',    %q{ !!defined?([[]]) }, ],</div><div class='add'>+  [ 'swap',    &lt;&lt;-'},', ],      # {</div><div class='ctx'>     x = [[false, true]]</div><div class='ctx'>     for i, j in x               # here</div><div class='ctx'>       ;</div><div class='hunk'>@@ -135,7 +136,7 @@ tests = [</div><div class='ctx'>   [ 'defined',      %q{ !defined?(x) }, ],</div><div class='ctx'>   [ 'checkkeyword', %q{ def x x:rand;x end; x x: true }, ],</div><div class='ctx'>   [ 'checktype',    %q{ x = true; "#{x}" }, ],</div><div class='del'>-  [ 'checkmatch',   &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'checkmatch',   &lt;&lt;-'},', ], # {</div><div class='ctx'>     x = y = true</div><div class='ctx'>     case x</div><div class='ctx'>     when false</div><div class='hunk'>@@ -145,7 +146,7 @@ tests = [</div><div class='ctx'>     end</div><div class='ctx'>     y == nil</div><div class='ctx'>   },</div><div class='del'>-  [ 'checkmatch',   &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'checkmatch',   &lt;&lt;-'},', ], # {</div><div class='ctx'>     x, y = true, [false]</div><div class='ctx'>     case x</div><div class='ctx'>     when *y                     # here</div><div class='hunk'>@@ -155,7 +156,7 @@ tests = [</div><div class='ctx'>     end</div><div class='ctx'>     z</div><div class='ctx'>   },</div><div class='del'>-  [ 'checkmatch',   &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'checkmatch',   &lt;&lt;-'},', ], # {</div><div class='ctx'>     x = false</div><div class='ctx'>     begin</div><div class='ctx'>       raise</div><div class='hunk'>@@ -171,7 +172,7 @@ tests = [</div><div class='ctx'>   [ 'defineclass', %q{ X = Class.new;  class X;     true end }, ],</div><div class='ctx'>   [ 'defineclass', %q{ X = Class.new;  class Y &lt; X; true end }, ],</div><div class='ctx'>   [ 'defineclass', %q{ X = Class.new;  class &lt;&lt; X;  true end }, ],</div><div class='del'>-  [ 'defineclass', &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'defineclass', &lt;&lt;-'},', ], # {</div><div class='ctx'>     X = Class.new</div><div class='ctx'>     Y = Class.new(X)</div><div class='ctx'>     class Y &lt; X</div><div class='hunk'>@@ -182,7 +183,7 @@ tests = [</div><div class='ctx'>   [ 'opt_send_without_block', %q{ true.to_s }, ],</div><div class='ctx'>   [ 'send',                   %q{ true.tap {|i| i.to_s } }, ],</div><div class='ctx'>   [ 'leave',                  %q{ def x; true; end; x }, ],</div><div class='del'>-  [ 'invokesuper',            &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'invokesuper',            &lt;&lt;-'},', ], # {</div><div class='ctx'>     class X &lt; String</div><div class='ctx'>       def empty?</div><div class='ctx'>         super                   # here</div><div class='hunk'>@@ -190,7 +191,7 @@ tests = [</div><div class='ctx'>     end</div><div class='ctx'>    X.new.empty?</div><div class='ctx'>   },</div><div class='del'>-  [ 'invokeblock',            &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'invokeblock',            &lt;&lt;-'},', ], # {</div><div class='ctx'>     def x</div><div class='ctx'>       return yield self         # here</div><div class='ctx'>     end</div><div class='hunk'>@@ -200,8 +201,11 @@ tests = [</div><div class='ctx'>   },</div><div class='ctx'> </div><div class='ctx'>   [ 'opt_str_freeze', %q{ 'true'.freeze }, ],</div><div class='add'>+  [ 'opt_nil_p',      %q{ nil.nil? }, ],</div><div class='add'>+  [ 'opt_nil_p',      %q{ !Object.nil? }, ],</div><div class='add'>+  [ 'opt_nil_p',      %q{ Class.new{def nil?; true end}.new.nil? }, ],</div><div class='ctx'>   [ 'opt_str_uminus', %q{ -'true' }, ],</div><div class='del'>-  [ 'opt_str_freeze', &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'opt_str_freeze', &lt;&lt;-'},', ], # {</div><div class='ctx'>     class String</div><div class='ctx'>       def freeze</div><div class='ctx'>         true</div><div class='hunk'>@@ -212,7 +216,7 @@ tests = [</div><div class='ctx'> </div><div class='ctx'>   [ 'opt_newarray_max', %q{ [ ].max.nil? }, ],</div><div class='ctx'>   [ 'opt_newarray_max', %q{ [1, x = 2, 3].max == 3 }, ],</div><div class='del'>-  [ 'opt_newarray_max', &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'opt_newarray_max', &lt;&lt;-'},', ], # {</div><div class='ctx'>     class Array</div><div class='ctx'>       def max</div><div class='ctx'>         true</div><div class='hunk'>@@ -222,7 +226,7 @@ tests = [</div><div class='ctx'>   },</div><div class='ctx'>   [ 'opt_newarray_min', %q{ [ ].min.nil? }, ],</div><div class='ctx'>   [ 'opt_newarray_min', %q{ [3, x = 2, 1].min == 1 }, ],</div><div class='del'>-  [ 'opt_newarray_min', &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'opt_newarray_min', &lt;&lt;-'},', ], # {</div><div class='ctx'>     class Array</div><div class='ctx'>       def min</div><div class='ctx'>         true</div><div class='hunk'>@@ -238,12 +242,12 @@ tests = [</div><div class='ctx'>   [ 'branchunless', %q{ x = nil;  x &amp;&amp;= true; x.nil? }, ],</div><div class='ctx'>   [ 'branchnil',    %q{ x = true; x&amp;.to_s }, ],</div><div class='ctx'>   [ 'branchnil',    %q{ x = nil;  (x&amp;.to_s).nil? }, ],</div><div class='del'>-  [ 'jump',         &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'jump',         &lt;&lt;-'},', ], # {</div><div class='ctx'>     y = 1</div><div class='ctx'>     x = if y == 0 then nil elsif y == 1 then true else nil end</div><div class='ctx'>     x</div><div class='ctx'>   },</div><div class='del'>-  [ 'jump',         &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'jump',         &lt;&lt;-'},', ], # {</div><div class='ctx'>     # ultra complicated situation: this ||= assignment only generates</div><div class='ctx'>     # 15 instructions, not including the class definition.</div><div class='ctx'>     class X; attr_accessor :x; end</div><div class='hunk'>@@ -252,14 +256,14 @@ tests = [</div><div class='ctx'>   },</div><div class='ctx'> </div><div class='ctx'>   [ 'once', %q{ /#{true}/o =~ "true" &amp;&amp; $~ }, ],</div><div class='del'>-  [ 'once', &lt;&lt;~'},', ],         # {</div><div class='add'>+  [ 'once', &lt;&lt;-'},', ],         # {</div><div class='ctx'>     def once expr</div><div class='ctx'>       return /#{expr}/o         # here</div><div class='ctx'>     end</div><div class='ctx'>     x = once(true); x = once(false); x = once(nil);</div><div class='ctx'>     x =~ "true" &amp;&amp; $~</div><div class='ctx'>   },</div><div class='del'>-  [ 'once', &lt;&lt;~'},', ],         # {</div><div class='add'>+  [ 'once', &lt;&lt;-'},', ],         # {</div><div class='ctx'>     # recursive once</div><div class='ctx'>     def once n</div><div class='ctx'>       return %r/#{</div><div class='hunk'>@@ -273,7 +277,7 @@ tests = [</div><div class='ctx'>     x = once(128); x = once(7); x = once(16);</div><div class='ctx'>     x =~ "true" &amp;&amp; $~</div><div class='ctx'>   },</div><div class='del'>-  [ 'once', &lt;&lt;~'},', ],         # {</div><div class='add'>+  [ 'once', &lt;&lt;-'},', ],         # {</div><div class='ctx'>     # inter-thread lockup situation</div><div class='ctx'>     def once n</div><div class='ctx'>       return Thread.start n do |m|</div><div class='hunk'>@@ -321,12 +325,12 @@ tests = [</div><div class='ctx'>   [ 'opt_mod',     %q{ '%s' % [ true ] }, ],</div><div class='ctx'> </div><div class='ctx'>   [ 'opt_eq', %q{ 1 == 1 }, ],</div><div class='del'>-  [ 'opt_eq', &lt;&lt;~'},', ],       # {</div><div class='add'>+  [ 'opt_eq', &lt;&lt;-'},', ],       # {</div><div class='ctx'>     class X; def == other; true; end; end</div><div class='ctx'>     X.new == true</div><div class='ctx'>   },</div><div class='ctx'>   [ 'opt_neq', %q{ 1 != 0 }, ],</div><div class='del'>-  [ 'opt_neq', &lt;&lt;~'},', ],       # {</div><div class='add'>+  [ 'opt_neq', &lt;&lt;-'},', ],       # {</div><div class='ctx'>     class X; def != other; true; end; end</div><div class='ctx'>     X.new != true</div><div class='ctx'>   },</div><div class='hunk'>@@ -358,7 +362,7 @@ tests = [</div><div class='ctx'>   [ 'opt_aset', %q{ [][0] = true }, ],</div><div class='ctx'>   [ 'opt_aset', %q{ {}[0] = true }, ],</div><div class='ctx'>   [ 'opt_aset', %q{ x = 'frue'; x[0] = 't'; x }, ],</div><div class='del'>-  [ 'opt_aset', &lt;&lt;~'},', ], # {</div><div class='add'>+  [ 'opt_aset', &lt;&lt;-'},', ], # {</div><div class='ctx'>     # opt_aref / opt_aset mixup situation</div><div class='ctx'>     class X; def x; {}; end; end</div><div class='ctx'>     x = X.new</div><div class='hunk'>@@ -381,40 +385,56 @@ tests = [</div><div class='ctx'>   [ 'opt_empty_p', %q{ ''.empty? }, ],</div><div class='ctx'>   [ 'opt_empty_p', %q{ [].empty? }, ],</div><div class='ctx'>   [ 'opt_empty_p', %q{ {}.empty? }, ],</div><div class='del'>-  [ 'opt_empty_p', %q{ Queue.new.empty? }, ],</div><div class='add'>+  [ 'opt_empty_p', %q{ Thread::Queue.new.empty? }, ],</div><div class='ctx'> </div><div class='ctx'>   [ 'opt_succ',  %q{ 1.succ == 2 }, ],</div><div class='ctx'>   if defined? $FIXNUM_MAX then</div><div class='ctx'>     [ 'opt_succ',%Q{ #{ $FIXNUM_MAX }.succ == #{ $FIXNUM_MAX + 1 } }, ]</div><div class='ctx'>   end,</div><div class='ctx'>   [ 'opt_succ',  %q{ '1'.succ == '2' }, ],</div><div class='del'>-  [ 'opt_succ',  %q{ x = Time.at(0); x.succ == Time.at(1) }, ],</div><div class='ctx'> </div><div class='ctx'>   [ 'opt_not',  %q{ ! false }, ],</div><div class='del'>-  [ 'opt_neq', &lt;&lt;~'},', ],       # {</div><div class='add'>+  [ 'opt_neq', &lt;&lt;-'},', ],       # {</div><div class='ctx'>     class X; def !; true; end; end</div><div class='ctx'>     ! X.new</div><div class='ctx'>   },</div><div class='ctx'> </div><div class='del'>-  [ 'opt_regexpmatch1',  %q{ /true/ =~ 'true' &amp;&amp; $~ }, ],</div><div class='del'>-  [ 'opt_regexpmatch1', &lt;&lt;~'},', ],       # {</div><div class='add'>+  [ 'opt_regexpmatch2',  %q{ /true/ =~ 'true' &amp;&amp; $~ }, ],</div><div class='add'>+  [ 'opt_regexpmatch2', &lt;&lt;-'},', ],       # {</div><div class='ctx'>     class Regexp; def =~ other; true; end; end</div><div class='ctx'>     /true/ =~ 'true'</div><div class='ctx'>   },</div><div class='ctx'>   [ 'opt_regexpmatch2',  %q{ 'true' =~ /true/ &amp;&amp; $~ }, ],</div><div class='del'>-  [ 'opt_regexpmatch2', &lt;&lt;~'},', ],       # {</div><div class='add'>+  [ 'opt_regexpmatch2', &lt;&lt;-'},', ],       # {</div><div class='ctx'>     class String; def =~ other; true; end; end</div><div class='ctx'>     'true' =~ /true/</div><div class='ctx'>   },</div><div class='del'>-</div><div class='del'>-  [ 'opt_call_c_function', 'Struct.new(:x).new.x = true', ],</div><div class='ctx'> ]</div><div class='ctx'> </div><div class='ctx'> # normal path</div><div class='del'>-tests.compact.each {|(insn, expr, *a)| assert_equal 'true', expr, insn, *a }</div><div class='add'>+tests.compact.each do |(insn, expr, *a)|</div><div class='add'>+  if a.last.is_a?(Hash)</div><div class='add'>+    a = a.dup</div><div class='add'>+    kw = a.pop</div><div class='add'>+    assert_equal 'true', expr, insn, *a, **kw</div><div class='add'>+  else</div><div class='add'>+    assert_equal 'true', expr, insn, *a</div><div class='add'>+  end</div><div class='add'>+end</div><div class='ctx'> </div><div class='ctx'> # with trace</div><div class='ctx'> tests.compact.each {|(insn, expr, *a)|</div><div class='ctx'>   progn = "set_trace_func(proc{})\n" + expr</div><div class='del'>-  assert_equal 'true', progn, insn, *a</div><div class='add'>+  if a.last.is_a?(Hash)</div><div class='add'>+    a = a.dup</div><div class='add'>+    kw = a.pop</div><div class='add'>+    assert_equal 'true', progn, 'trace_' + insn, *a, **kw</div><div class='add'>+  else</div><div class='add'>+    assert_equal 'true', progn, 'trace_' + insn, *a</div><div class='add'>+  end</div><div class='ctx'> }</div><div class='add'>+</div><div class='add'>+assert_normal_exit("#{&lt;&lt;-"begin;"}\n#{&lt;&lt;-'end;'}")</div><div class='add'>+begin;</div><div class='add'>+  RubyVM::InstructionSequence.compile("", debug_level: 5)</div><div class='add'>+end;</div><div class='head'>diff --git a/bootstraptest/test_io.rb b/bootstraptest/test_io.rb<br/>index 89c00d0b88..666e5a011b 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_io.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_io.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_io.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_io.rb</a></div><div class='hunk'>@@ -1,3 +1,4 @@</div><div class='add'>+/freebsd/ =~ RUBY_PLATFORM or</div><div class='ctx'> assert_finish 5, %q{</div><div class='ctx'>   r, w = IO.pipe</div><div class='ctx'>   t1 = Thread.new { r.sysread(1) }</div><div class='hunk'>@@ -30,7 +31,8 @@ assert_finish 10, %q{</div><div class='ctx'>   end</div><div class='ctx'> }, '[ruby-dev:32566]'</div><div class='ctx'> </div><div class='del'>-assert_finish 1, %q{</div><div class='add'>+/freebsd/ =~ RUBY_PLATFORM or</div><div class='add'>+assert_finish 5, %q{</div><div class='ctx'>   r, w = IO.pipe</div><div class='ctx'>   Thread.new {</div><div class='ctx'>     w &lt;&lt; "ab"</div><div class='hunk'>@@ -83,6 +85,7 @@ assert_normal_exit %q{</div><div class='ctx'>   ARGF.set_encoding "foo"</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/freebsd/ =~ RUBY_PLATFORM or</div><div class='ctx'> 10.times do</div><div class='ctx'>   assert_normal_exit %q{</div><div class='ctx'>     at_exit { p :foo }</div><div class='head'>diff --git a/bootstraptest/test_jump.rb b/bootstraptest/test_jump.rb<br/>index 595aaa7c4b..d07c47a56d 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_jump.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_jump.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_jump.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_jump.rb</a></div><div class='hunk'>@@ -146,15 +146,16 @@ assert_equal %q{131}, %q{</div><div class='ctx'>     end</div><div class='ctx'>   }</div><div class='ctx'> }</div><div class='del'>-assert_equal %q{ok}, %q{</div><div class='add'>+assert_match %r{Invalid retry}, %q{</div><div class='add'>+$stderr = STDOUT</div><div class='ctx'> begin</div><div class='ctx'>   eval %q{</div><div class='ctx'>     1.times{</div><div class='ctx'>       retry</div><div class='ctx'>     }</div><div class='ctx'>   }</div><div class='del'>-rescue SyntaxError</div><div class='del'>-  :ok</div><div class='add'>+rescue SyntaxError =&gt; e</div><div class='add'>+  e.message</div><div class='ctx'> end</div><div class='ctx'> }</div><div class='ctx'> assert_equal %q{3}, %q{</div><div class='hunk'>@@ -295,14 +296,19 @@ assert_equal "true", %q{</div><div class='ctx'>   s.return_eigenclass == class &lt;&lt; s; self; end</div><div class='ctx'> }, '[ruby-core:21379]'</div><div class='ctx'> </div><div class='del'>-assert_equal "true", %q{</div><div class='del'>-  class Object</div><div class='del'>-    def yield_eigenclass</div><div class='del'>-      class &lt;&lt; self</div><div class='del'>-        yield self</div><div class='add'>+assert_match %r{Invalid yield}, %q{</div><div class='add'>+$stderr = STDOUT</div><div class='add'>+begin</div><div class='add'>+  eval %q{</div><div class='add'>+    class Object</div><div class='add'>+      def yield_eigenclass</div><div class='add'>+        class &lt;&lt; self</div><div class='add'>+          yield self</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='del'>-  end</div><div class='del'>-  s = "foo"</div><div class='del'>-  s.yield_eigenclass {|c| c == class &lt;&lt; s; self; end }</div><div class='del'>-}, '[ruby-dev:40975]'</div><div class='add'>+  }</div><div class='add'>+rescue SyntaxError =&gt; e</div><div class='add'>+  e.message</div><div class='add'>+end</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_literal.rb b/bootstraptest/test_literal.rb<br/>index 0c5102c46e..a0d4ee08c6 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_literal.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_literal.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_literal.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_literal.rb</a></div><div class='hunk'>@@ -65,8 +65,11 @@ assert_equal ':a3c',            ':"a#{1+2}c".inspect'</div><div class='ctx'> assert_equal 'Symbol',          ':"a#{1+2}c".class'</div><div class='ctx'> </div><div class='ctx'> # xstring</div><div class='del'>-assert_equal "foo\n",           %q(`echo foo`)</div><div class='del'>-assert_equal "foo\n",           %q(s = "foo"; `echo #{s}`)</div><div class='add'>+# WASI doesn't support spawning a new process for now.</div><div class='add'>+if /wasi/ !~ target_platform</div><div class='add'>+  assert_equal "foo\n",           %q(`echo foo`)</div><div class='add'>+  assert_equal "foo\n",           %q(s = "foo"; `echo #{s}`)</div><div class='add'>+end</div><div class='ctx'> </div><div class='ctx'> # regexp</div><div class='ctx'> assert_equal '',                '//.source'</div><div class='hunk'>@@ -223,6 +226,24 @@ assert_equal 'ok', %q{ #  long hash literal (optimized)</div><div class='ctx'>   :ok</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+assert_equal 'ok', %q{ #  Bug #15536</div><div class='add'>+  eval &lt;&lt;-END</div><div class='add'>+    {</div><div class='add'>+      **{</div><div class='add'>+        a0: nil, a1: nil, a2: nil, a3: nil, a4: nil, a5: nil, a6: nil, a7: nil, a8: nil,</div><div class='add'>+      },</div><div class='add'>+      a0: nil, a1: nil, a2: nil, a3: nil, a4: nil, a5: nil, a6: nil, a7: nil, a8: nil,</div><div class='add'>+      **{</div><div class='add'>+        c: nil</div><div class='add'>+      },</div><div class='add'>+      b0: nil, b1: nil, b2: nil, b3: nil, b4: nil, b5: nil, b6: nil, b7: nil, b8: nil,</div><div class='add'>+      b9: nil, b10: nil, b11: nil, b12: nil, b13: nil, b14: nil, b15: nil, b16: nil,</div><div class='add'>+      b17: nil, b18: nil, b19: nil, b20: nil, b21: nil,</div><div class='add'>+    }</div><div class='add'>+  END</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> assert_equal 'ok', %q{</div><div class='ctx'>   [print(:ok), exit] # void literal with side-effect</div><div class='ctx'>   :dummy</div><div class='head'>diff --git a/bootstraptest/test_literal_suffix.rb b/bootstraptest/test_literal_suffix.rb<br/>index 4316c9e040..c36fa7078f 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_literal_suffix.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_literal_suffix.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_literal_suffix.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_literal_suffix.rb</a></div><div class='hunk'>@@ -46,9 +46,9 @@ assert_equal '1',               '1rescue nil'</div><div class='ctx'> assert_equal '10000000000000000001/10000000000000000000',</div><div class='ctx'>              '1.0000000000000000001r'</div><div class='ctx'> </div><div class='del'>-assert_equal 'syntax error, unexpected tIDENTIFIER, expecting end-of-input',</div><div class='add'>+assert_equal 'syntax error, unexpected local variable or method, expecting end-of-input',</div><div class='ctx'>              %q{begin eval('1ir', nil, '', 0); rescue SyntaxError =&gt; e; e.message[/\A:(?:\d+:)? (.*)/, 1] end}</div><div class='del'>-assert_equal 'syntax error, unexpected tIDENTIFIER, expecting end-of-input',</div><div class='add'>+assert_equal 'syntax error, unexpected local variable or method, expecting end-of-input',</div><div class='ctx'>              %q{begin eval('1.2ir', nil, '', 0); rescue SyntaxError =&gt; e; e.message[/\A:(?:\d+:)? (.*)/, 1] end}</div><div class='del'>-assert_equal 'syntax error, unexpected tIDENTIFIER, expecting end-of-input',</div><div class='add'>+assert_equal 'syntax error, unexpected local variable or method, expecting end-of-input',</div><div class='ctx'>              %q{begin eval('1e1r', nil, '', 0); rescue SyntaxError =&gt; e; e.message[/\A:(?:\d+:)? (.*)/, 1] end}</div><div class='head'>diff --git a/bootstraptest/test_method.rb b/bootstraptest/test_method.rb<br/>index 3462aa9434..04c9eb2d11 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_method.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_method.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_method.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_method.rb</a></div><div class='hunk'>@@ -22,7 +22,7 @@ assert_match /\Awrong number of arguments \(.*\b0\b.* 1\)\z/, %q{</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> # default argument</div><div class='del'>-assert_equal '1',       'def m(x=1) x end; m()'</div><div class='add'>+assert_equal '1',       'def m(x=1) x end; m();'</div><div class='ctx'> assert_equal '1',       'def m(x=7) x end; m(1)'</div><div class='ctx'> assert_equal '1',       'def m(a,x=1) x end; m(7)'</div><div class='ctx'> assert_equal '1',       'def m(a,x=7) x end; m(7,1)'</div><div class='head'>diff --git a/bootstraptest/test_objectspace.rb b/bootstraptest/test_objectspace.rb<br/>index 24a1a0ce2c..63a8d99322 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_objectspace.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_objectspace.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_objectspace.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_objectspace.rb</a></div><div class='hunk'>@@ -44,3 +44,12 @@ assert_normal_exit %q{</div><div class='ctx'>     Thread.new {}</div><div class='ctx'>   end</div><div class='ctx'> }, '[ruby-core:37858]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  objects_and_ids = 1000.times.map { o = Object.new; [o, o.object_id] }</div><div class='add'>+  objects_and_ids.each { |expected, id|</div><div class='add'>+    actual = ObjectSpace._id2ref(id)</div><div class='add'>+    raise "expected #{expected.inspect}, got #{actual.inspect}" unless actual.equal?(expected)</div><div class='add'>+  }</div><div class='add'>+  'ok'</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_proc.rb b/bootstraptest/test_proc.rb<br/>index 1e384411dc..637603243d 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_proc.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_proc.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_proc.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_proc.rb</a></div><div class='hunk'>@@ -225,19 +225,6 @@ assert_equal %q{[[nil, []], [1, []], [1, [2]], [1, [2, 3]]]}, %q{</div><div class='ctx'>   ]</div><div class='ctx'> }</div><div class='ctx'> assert_equal %q{1}, %q{</div><div class='del'>-  pr = proc{</div><div class='del'>-    $SAFE</div><div class='del'>-  }</div><div class='del'>-  $SAFE = 1</div><div class='del'>-  pr.call</div><div class='del'>-}</div><div class='del'>-assert_equal %q{[1, 1]}, %q{</div><div class='del'>-  pr = proc{</div><div class='del'>-    $SAFE += 1</div><div class='del'>-  }</div><div class='del'>-  [pr.call, $SAFE]</div><div class='del'>-}</div><div class='del'>-assert_equal %q{1}, %q{</div><div class='ctx'>   def m(&amp;b)</div><div class='ctx'>     b</div><div class='ctx'>   end</div><div class='hunk'>@@ -380,8 +367,8 @@ assert_equal 'ok', %q{</div><div class='ctx'> </div><div class='ctx'> assert_equal 'ok', %q{</div><div class='ctx'>   class Foo</div><div class='del'>-    def call_it</div><div class='del'>-      p = Proc.new</div><div class='add'>+    def call_it(&amp;block)</div><div class='add'>+      p = Proc.new(&amp;block)</div><div class='ctx'>       p.call</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='head'>diff --git a/bootstraptest/test_ractor.rb b/bootstraptest/test_ractor.rb<br/>new file mode 100644<br/>index 0000000000..67e66b03ee<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_ractor.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_ractor.rb</a></div><div class='hunk'>@@ -0,0 +1,1628 @@</div><div class='add'>+# Ractor.current returns a current ractor</div><div class='add'>+assert_equal 'Ractor', %q{</div><div class='add'>+  Ractor.current.class</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.new returns new Ractor</div><div class='add'>+assert_equal 'Ractor', %q{</div><div class='add'>+  Ractor.new{}.class</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.allocate is not supported</div><div class='add'>+assert_equal "[:ok, :ok]", %q{</div><div class='add'>+  rs = []</div><div class='add'>+  begin</div><div class='add'>+    Ractor.allocate</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    rs &lt;&lt; :ok if e.message == 'allocator undefined for Ractor'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    Ractor.new{}.dup</div><div class='add'>+  rescue</div><div class='add'>+    rs &lt;&lt; :ok if e.message == 'allocator undefined for Ractor'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  rs</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# A Ractor can have a name</div><div class='add'>+assert_equal 'test-name', %q{</div><div class='add'>+  r = Ractor.new name: 'test-name' do</div><div class='add'>+  end</div><div class='add'>+  r.name</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# If Ractor doesn't have a name, Ractor#name returns nil.</div><div class='add'>+assert_equal 'nil', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+  end</div><div class='add'>+  r.name.inspect</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Raises exceptions if initialize with an invalid name</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    r = Ractor.new(name: [{}]) {}</div><div class='add'>+  rescue TypeError =&gt; e</div><div class='add'>+    'ok'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.new must call with a block</div><div class='add'>+assert_equal "must be called with a block", %q{</div><div class='add'>+  begin</div><div class='add'>+    Ractor.new</div><div class='add'>+  rescue ArgumentError =&gt; e</div><div class='add'>+    e.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor#inspect</div><div class='add'>+# Return only id and status for main ractor</div><div class='add'>+assert_equal "#&lt;Ractor:#1 running&gt;", %q{</div><div class='add'>+  Ractor.current.inspect</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Return id, loc, and status for no-name ractor</div><div class='add'>+assert_match /^#&lt;Ractor:#([^ ]*?) .+:[0-9]+ terminated&gt;$/, %q{</div><div class='add'>+  r = Ractor.new { '' }</div><div class='add'>+  r.take</div><div class='add'>+  sleep 0.1 until r.inspect =~ /terminated/</div><div class='add'>+  r.inspect</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Return id, name, loc, and status for named ractor</div><div class='add'>+assert_match /^#&lt;Ractor:#([^ ]*?) Test Ractor .+:[0-9]+ terminated&gt;$/, %q{</div><div class='add'>+  r = Ractor.new(name: 'Test Ractor') { '' }</div><div class='add'>+  r.take</div><div class='add'>+  sleep 0.1 until r.inspect =~ /terminated/</div><div class='add'>+  r.inspect</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# A return value of a Ractor block will be a message from the Ractor.</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  # join</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    'ok'</div><div class='add'>+  end</div><div class='add'>+  r.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Passed arguments to Ractor.new will be a block parameter</div><div class='add'>+# The values are passed with Ractor-communication pass.</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  # ping-pong with arg</div><div class='add'>+  r = Ractor.new 'ok' do |msg|</div><div class='add'>+    msg</div><div class='add'>+  end</div><div class='add'>+  r.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Pass multiple arguments to Ractor.new</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  # ping-pong with two args</div><div class='add'>+  r =  Ractor.new 'ping', 'pong' do |msg, msg2|</div><div class='add'>+    [msg, msg2]</div><div class='add'>+  end</div><div class='add'>+  'ok' if r.take == ['ping', 'pong']</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor#send passes an object with copy to a Ractor</div><div class='add'>+# and Ractor.receive in the Ractor block can receive the passed value.</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    msg = Ractor.receive</div><div class='add'>+  end</div><div class='add'>+  r.send 'ok'</div><div class='add'>+  r.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor#receive_if can filter the message</div><div class='add'>+assert_equal '[2, 3, 1]', %q{</div><div class='add'>+  r = Ractor.new Ractor.current do |main|</div><div class='add'>+    main &lt;&lt; 1</div><div class='add'>+    main &lt;&lt; 2</div><div class='add'>+    main &lt;&lt; 3</div><div class='add'>+  end</div><div class='add'>+  a = []</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 2}</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 3}</div><div class='add'>+  a &lt;&lt; Ractor.receive</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor#receive_if with break</div><div class='add'>+assert_equal '[2, [1, :break], 3]', %q{</div><div class='add'>+  r = Ractor.new Ractor.current do |main|</div><div class='add'>+    main &lt;&lt; 1</div><div class='add'>+    main &lt;&lt; 2</div><div class='add'>+    main &lt;&lt; 3</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  a = []</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 2}</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| break [msg, :break]}</div><div class='add'>+  a &lt;&lt; Ractor.receive</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor#receive_if can't be called recursively</div><div class='add'>+assert_equal '[[:e1, 1], [:e2, 2]]', %q{</div><div class='add'>+  r = Ractor.new Ractor.current do |main|</div><div class='add'>+    main &lt;&lt; 1</div><div class='add'>+    main &lt;&lt; 2</div><div class='add'>+    main &lt;&lt; 3</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  a = []</div><div class='add'>+</div><div class='add'>+  Ractor.receive_if do |msg|</div><div class='add'>+    begin</div><div class='add'>+      Ractor.receive</div><div class='add'>+    rescue Ractor::Error</div><div class='add'>+      a &lt;&lt; [:e1, msg]</div><div class='add'>+    end</div><div class='add'>+    true # delete 1 from queue</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Ractor.receive_if do |msg|</div><div class='add'>+    begin</div><div class='add'>+      Ractor.receive_if{}</div><div class='add'>+    rescue Ractor::Error</div><div class='add'>+      a &lt;&lt; [:e2, msg]</div><div class='add'>+    end</div><div class='add'>+    true # delete 2 from queue</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  a #</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# dtoa race condition</div><div class='add'>+assert_equal '[:ok, :ok, :ok]', %q{</div><div class='add'>+  n = 3</div><div class='add'>+  n.times.map{</div><div class='add'>+    Ractor.new{</div><div class='add'>+      10_000.times{ rand.to_s }</div><div class='add'>+      :ok</div><div class='add'>+    }</div><div class='add'>+  }.map(&amp;:take)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.make_shareable issue for locals in proc [Bug #18023]</div><div class='add'>+assert_equal '[:a, :b, :c, :d, :e]', %q{</div><div class='add'>+  v1, v2, v3, v4, v5 = :a, :b, :c, :d, :e</div><div class='add'>+  closure = Ractor.current.instance_eval{ Proc.new { [v1, v2, v3, v4, v5] } }</div><div class='add'>+</div><div class='add'>+  Ractor.make_shareable(closure).call</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.make_shareable issue for locals in proc [Bug #18023]</div><div class='add'>+assert_equal '[:a, :b, :c, :d, :e, :f, :g]', %q{</div><div class='add'>+  a = :a</div><div class='add'>+  closure = Ractor.current.instance_eval do</div><div class='add'>+    -&gt; {</div><div class='add'>+      b, c, d = :b, :c, :d</div><div class='add'>+      -&gt; {</div><div class='add'>+        e, f, g = :e, :f, :g</div><div class='add'>+        -&gt; { [a, b, c, d, e, f, g] }</div><div class='add'>+      }.call</div><div class='add'>+    }.call</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Ractor.make_shareable(closure).call</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Now autoload in non-main Ractor is not supported</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  autoload :Foo, 'foo.rb'</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    p Foo</div><div class='add'>+  rescue Ractor::UnsafeError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+  r.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+###</div><div class='add'>+###</div><div class='add'>+# Ractor still has several memory corruption so skip huge number of tests</div><div class='add'>+if ENV['GITHUB_WORKFLOW'] &amp;&amp;</div><div class='add'>+   ENV['GITHUB_WORKFLOW'] == 'Compilations'</div><div class='add'>+   # ignore the follow</div><div class='add'>+else</div><div class='add'>+</div><div class='add'>+# Ractor.select(*ractors) receives a values from a ractors.</div><div class='add'>+# It is similar to select(2) and Go's select syntax.</div><div class='add'>+# The return value is [ch, received_value]</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  # select 1</div><div class='add'>+  r1 = Ractor.new{'r1'}</div><div class='add'>+  r, obj = Ractor.select(r1)</div><div class='add'>+  'ok' if r == r1 and obj == 'r1'</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.select from two ractors.</div><div class='add'>+assert_equal '["r1", "r2"]', %q{</div><div class='add'>+  # select 2</div><div class='add'>+  r1 = Ractor.new{'r1'}</div><div class='add'>+  r2 = Ractor.new{'r2'}</div><div class='add'>+  rs = [r1, r2]</div><div class='add'>+  as = []</div><div class='add'>+  r, obj = Ractor.select(*rs)</div><div class='add'>+  rs.delete(r)</div><div class='add'>+  as &lt;&lt; obj</div><div class='add'>+  r, obj = Ractor.select(*rs)</div><div class='add'>+  as &lt;&lt; obj</div><div class='add'>+  as.sort #=&gt; ["r1", "r2"]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.select from multiple ractors.</div><div class='add'>+assert_equal 30.times.map { 'ok' }.to_s, %q{</div><div class='add'>+  def test n</div><div class='add'>+    rs = (1..n).map do |i|</div><div class='add'>+      Ractor.new(i) do |i|</div><div class='add'>+        "r#{i}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    as = []</div><div class='add'>+    all_rs = rs.dup</div><div class='add'>+</div><div class='add'>+    n.times{</div><div class='add'>+      r, obj = Ractor.select(*rs)</div><div class='add'>+      as &lt;&lt; [r, obj]</div><div class='add'>+      rs.delete(r)</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if as.map{|r, o| r.object_id}.sort == all_rs.map{|r| r.object_id}.sort &amp;&amp;</div><div class='add'>+       as.map{|r, o| o}.sort == (1..n).map{|i| "r#{i}"}.sort</div><div class='add'>+      'ok'</div><div class='add'>+    else</div><div class='add'>+      'ng'</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  30.times.map{|i|</div><div class='add'>+    test i</div><div class='add'>+  }</div><div class='add'>+} unless ENV['RUN_OPTS'] =~ /--mjit-call-threshold=5/ || # This always fails with --mjit-wait --mjit-call-threshold=5</div><div class='add'>+  (ENV.key?('TRAVIS') &amp;&amp; ENV['TRAVIS_CPU_ARCH'] == 'arm64') || # https://bugs.ruby-lang.org/issues/17878</div><div class='add'>+  true # too flaky everywhere http://ci.rvm.jp/results/trunk@ruby-sp1/4321096</div><div class='add'>+</div><div class='add'>+# Exception for empty select</div><div class='add'>+assert_match /specify at least one ractor/, %q{</div><div class='add'>+  begin</div><div class='add'>+    Ractor.select</div><div class='add'>+  rescue ArgumentError =&gt; e</div><div class='add'>+    e.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Outgoing port of a ractor will be closed when the Ractor is terminated.</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    'finish'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  r.take</div><div class='add'>+  sleep 0.1 until r.inspect =~ /terminated/</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    o = r.take</div><div class='add'>+  rescue Ractor::ClosedError</div><div class='add'>+    'ok'</div><div class='add'>+  else</div><div class='add'>+    "ng: #{o}"</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Raise Ractor::ClosedError when try to send into a terminated ractor</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  r.take # closed</div><div class='add'>+  sleep 0.1 until r.inspect =~ /terminated/</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.send(1)</div><div class='add'>+  rescue Ractor::ClosedError</div><div class='add'>+    'ok'</div><div class='add'>+  else</div><div class='add'>+    'ng'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Raise Ractor::ClosedError when try to send into a closed actor</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new { Ractor.receive }</div><div class='add'>+  r.close_incoming</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.send(1)</div><div class='add'>+  rescue Ractor::ClosedError</div><div class='add'>+    'ok'</div><div class='add'>+  else</div><div class='add'>+    'ng'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Raise Ractor::ClosedError when try to take from closed actor</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    Ractor.yield 1</div><div class='add'>+    Ractor.receive</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  r.close_outgoing</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::ClosedError</div><div class='add'>+    'ok'</div><div class='add'>+  else</div><div class='add'>+    'ng'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Can mix with Thread#interrupt and Ractor#take [Bug #17366]</div><div class='add'>+assert_equal 'err', %q{</div><div class='add'>+  Ractor.new{</div><div class='add'>+    t = Thread.current</div><div class='add'>+    begin</div><div class='add'>+      Thread.new{ t.raise "err" }.join</div><div class='add'>+    rescue =&gt; e</div><div class='add'>+      e.message</div><div class='add'>+    end</div><div class='add'>+  }.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Killed Ractor's thread yields nil</div><div class='add'>+assert_equal 'nil', %q{</div><div class='add'>+  Ractor.new{</div><div class='add'>+    t = Thread.current</div><div class='add'>+    Thread.new{ t.kill }.join</div><div class='add'>+  }.take.inspect #=&gt; nil</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.yield raises Ractor::ClosedError when outgoing port is closed.</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new Ractor.current do |main|</div><div class='add'>+    Ractor.receive</div><div class='add'>+    main &lt;&lt; true</div><div class='add'>+    Ractor.yield 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  r.close_outgoing</div><div class='add'>+  r &lt;&lt; true</div><div class='add'>+  Ractor.receive</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::ClosedError</div><div class='add'>+    'ok'</div><div class='add'>+  else</div><div class='add'>+    'ng'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Raise Ractor::ClosedError when try to send into a ractor with closed incoming port</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new { Ractor.receive }</div><div class='add'>+  r.close_incoming</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.send(1)</div><div class='add'>+  rescue Ractor::ClosedError</div><div class='add'>+    'ok'</div><div class='add'>+  else</div><div class='add'>+    'ng'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# A ractor with closed incoming port still can send messages out</div><div class='add'>+assert_equal '[1, 2]', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    Ractor.yield 1</div><div class='add'>+    2</div><div class='add'>+  end</div><div class='add'>+  r.close_incoming</div><div class='add'>+</div><div class='add'>+  [r.take, r.take]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Raise Ractor::ClosedError when try to take from a ractor with closed outgoing port</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    Ractor.yield 1</div><div class='add'>+    Ractor.receive</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  sleep 0.01 # wait for Ractor.yield in r</div><div class='add'>+  r.close_outgoing</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::ClosedError</div><div class='add'>+    'ok'</div><div class='add'>+  else</div><div class='add'>+    'ng'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# A ractor with closed outgoing port still can receive messages from incoming port</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    Ractor.receive</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  r.close_outgoing</div><div class='add'>+  begin</div><div class='add'>+    r.send(1)</div><div class='add'>+  rescue Ractor::ClosedError</div><div class='add'>+    'ng'</div><div class='add'>+  else</div><div class='add'>+    'ok'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.main returns main ractor</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  Ractor.new{</div><div class='add'>+    Ractor.main</div><div class='add'>+  }.take == Ractor.current</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# a ractor with closed outgoing port should terminate</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  Ractor.new do</div><div class='add'>+    close_outgoing</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  true until Ractor.count == 1</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# multiple Ractors can receive (wait) from one Ractor</div><div class='add'>+assert_equal '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]', %q{</div><div class='add'>+  pipe = Ractor.new do</div><div class='add'>+    loop do</div><div class='add'>+      Ractor.yield Ractor.receive</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  RN = 10</div><div class='add'>+  rs = RN.times.map{|i|</div><div class='add'>+    Ractor.new pipe, i do |pipe, i|</div><div class='add'>+      msg = pipe.take</div><div class='add'>+      msg # ping-pong</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  RN.times{|i|</div><div class='add'>+    pipe &lt;&lt; i</div><div class='add'>+  }</div><div class='add'>+  RN.times.map{</div><div class='add'>+    r, n = Ractor.select(*rs)</div><div class='add'>+    rs.delete r</div><div class='add'>+    n</div><div class='add'>+  }.sort</div><div class='add'>+} unless /mswin/ =~ RUBY_PLATFORM # randomly hangs on mswin https://github.com/ruby/ruby/actions/runs/3753871445/jobs/6377551069#step:20:131</div><div class='add'>+</div><div class='add'>+# Ractor.select also support multiple take, receive and yield</div><div class='add'>+assert_equal '[true, true, true]', %q{</div><div class='add'>+  RN = 10</div><div class='add'>+  CR = Ractor.current</div><div class='add'>+</div><div class='add'>+  rs = (1..RN).map{</div><div class='add'>+    Ractor.new do</div><div class='add'>+      CR.send 'send' + CR.take #=&gt; 'sendyield'</div><div class='add'>+      'take'</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  received = []</div><div class='add'>+  take = []</div><div class='add'>+  yielded = []</div><div class='add'>+  until rs.empty?</div><div class='add'>+    r, v = Ractor.select(CR, *rs, yield_value: 'yield')</div><div class='add'>+    case r</div><div class='add'>+    when :receive</div><div class='add'>+      received &lt;&lt; v</div><div class='add'>+    when :yield</div><div class='add'>+      yielded &lt;&lt; v</div><div class='add'>+    else</div><div class='add'>+      take &lt;&lt; v</div><div class='add'>+      rs.delete r</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  [received.all?('sendyield'), yielded.all?(nil), take.all?('take')]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# multiple Ractors can send to one Ractor</div><div class='add'>+assert_equal '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]', %q{</div><div class='add'>+  pipe = Ractor.new do</div><div class='add'>+    loop do</div><div class='add'>+      Ractor.yield Ractor.receive</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  RN = 10</div><div class='add'>+  RN.times.map{|i|</div><div class='add'>+    Ractor.new pipe, i do |pipe, i|</div><div class='add'>+      pipe &lt;&lt; i</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  RN.times.map{</div><div class='add'>+    pipe.take</div><div class='add'>+  }.sort</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# an exception in a Ractor will be re-raised at Ractor#receive</div><div class='add'>+assert_equal '[RuntimeError, "ok", true]', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    raise 'ok' # exception will be transferred receiver</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    [e.cause.class,   #=&gt; RuntimeError</div><div class='add'>+     e.cause.message, #=&gt; 'ok'</div><div class='add'>+     e.ractor == r]   #=&gt; true</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# threads in a ractor will killed</div><div class='add'>+assert_equal '{:ok=&gt;3}', %q{</div><div class='add'>+  Ractor.new Ractor.current do |main|</div><div class='add'>+    q = Thread::Queue.new</div><div class='add'>+    Thread.new do</div><div class='add'>+      q &lt;&lt; true</div><div class='add'>+      loop{}</div><div class='add'>+    ensure</div><div class='add'>+      main &lt;&lt; :ok</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    Thread.new do</div><div class='add'>+      q &lt;&lt; true</div><div class='add'>+      while true</div><div class='add'>+      end</div><div class='add'>+    ensure</div><div class='add'>+      main &lt;&lt; :ok</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    Thread.new do</div><div class='add'>+      q &lt;&lt; true</div><div class='add'>+      sleep 1</div><div class='add'>+    ensure</div><div class='add'>+      main &lt;&lt; :ok</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # wait for the start of all threads</div><div class='add'>+    3.times{q.pop}</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  3.times.map{Ractor.receive}.tally</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# unshareable object are copied</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+  obj = 'str'.dup</div><div class='add'>+  r = Ractor.new obj do |msg|</div><div class='add'>+    msg.object_id</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  obj.object_id == r.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# To copy the object, now Marshal#dump is used</div><div class='add'>+assert_equal "allocator undefined for Thread", %q{</div><div class='add'>+  obj = Thread.new{}</div><div class='add'>+  begin</div><div class='add'>+    r = Ractor.new obj do |msg|</div><div class='add'>+      msg</div><div class='add'>+    end</div><div class='add'>+  rescue TypeError =&gt; e</div><div class='add'>+    e.message #=&gt; no _dump_data is defined for class Thread</div><div class='add'>+  else</div><div class='add'>+    'ng'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# send shareable and unshareable objects</div><div class='add'>+assert_equal "ok", %q{</div><div class='add'>+  echo_ractor = Ractor.new do</div><div class='add'>+    loop do</div><div class='add'>+      v = Ractor.receive</div><div class='add'>+      Ractor.yield v</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class C; end</div><div class='add'>+  module M; end</div><div class='add'>+  S = Struct.new(:a, :b, :c, :d)</div><div class='add'>+</div><div class='add'>+  shareable_objects = [</div><div class='add'>+    true,</div><div class='add'>+    false,</div><div class='add'>+    nil,</div><div class='add'>+    1,</div><div class='add'>+    1.1,    # Float</div><div class='add'>+    1+2r,   # Rational</div><div class='add'>+    3+4i,   # Complex</div><div class='add'>+    2**128, # Bignum</div><div class='add'>+    :sym,   # Symbol</div><div class='add'>+    'xyzzy'.to_sym, # dynamic symbol</div><div class='add'>+    'frozen'.freeze, # frozen String</div><div class='add'>+    /regexp/, # regexp literal</div><div class='add'>+    /reg{true}exp/.freeze, # frozen dregexp</div><div class='add'>+    [1, 2].freeze,   # frozen Array which only refers to shareable</div><div class='add'>+    {a: 1}.freeze,   # frozen Hash which only refers to shareable</div><div class='add'>+    [{a: 1}.freeze, 'str'.freeze].freeze, # nested frozen container</div><div class='add'>+    S.new(1, 2).freeze, # frozen Struct</div><div class='add'>+    S.new(1, 2, 3, 4).freeze, # frozen Struct</div><div class='add'>+    (1..2), # Range on Struct</div><div class='add'>+    (1..),  # Range on Struct</div><div class='add'>+    (..1),  # Range on Struct</div><div class='add'>+    C, # class</div><div class='add'>+    M, # module</div><div class='add'>+    Ractor.current, # Ractor</div><div class='add'>+  ]</div><div class='add'>+</div><div class='add'>+  unshareable_objects = [</div><div class='add'>+    'mutable str'.dup,</div><div class='add'>+    [:array],</div><div class='add'>+    {hash: true},</div><div class='add'>+    S.new(1, 2),</div><div class='add'>+    S.new(1, 2, 3, 4),</div><div class='add'>+    S.new("a", 2).freeze, # frozen, but refers to an unshareable object</div><div class='add'>+  ]</div><div class='add'>+</div><div class='add'>+  results = []</div><div class='add'>+</div><div class='add'>+  shareable_objects.map{|o|</div><div class='add'>+    echo_ractor &lt;&lt; o</div><div class='add'>+    o2 = echo_ractor.take</div><div class='add'>+    results &lt;&lt; "#{o} is copied" unless o.object_id == o2.object_id</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  unshareable_objects.map{|o|</div><div class='add'>+    echo_ractor &lt;&lt; o</div><div class='add'>+    o2 = echo_ractor.take</div><div class='add'>+    results &lt;&lt; "#{o.inspect} is not copied" if o.object_id == o2.object_id</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  if results.empty?</div><div class='add'>+    :ok</div><div class='add'>+  else</div><div class='add'>+    results.inspect</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# frozen Objects are shareable</div><div class='add'>+assert_equal [false, true, false].inspect, %q{</div><div class='add'>+  class C</div><div class='add'>+    def initialize freeze</div><div class='add'>+      @a = 1</div><div class='add'>+      @b = :sym</div><div class='add'>+      @c = 'frozen_str'</div><div class='add'>+      @c.freeze if freeze</div><div class='add'>+      @d = true</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def check obj1</div><div class='add'>+    obj2 = Ractor.new obj1 do |obj|</div><div class='add'>+      obj</div><div class='add'>+    end.take</div><div class='add'>+</div><div class='add'>+    obj1.object_id == obj2.object_id</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  results = []</div><div class='add'>+  results &lt;&lt; check(C.new(true))         # false</div><div class='add'>+  results &lt;&lt; check(C.new(true).freeze)  # true</div><div class='add'>+  results &lt;&lt; check(C.new(false).freeze) # false</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# move example2: String</div><div class='add'>+# touching moved object causes an error</div><div class='add'>+assert_equal 'hello world', %q{</div><div class='add'>+  # move</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    obj = Ractor.receive</div><div class='add'>+    obj &lt;&lt; ' world'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  str = 'hello'</div><div class='add'>+  r.send str, move: true</div><div class='add'>+  modified = r.take</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    str &lt;&lt; ' exception' # raise Ractor::MovedError</div><div class='add'>+  rescue Ractor::MovedError</div><div class='add'>+    modified #=&gt; 'hello world'</div><div class='add'>+  else</div><div class='add'>+    raise 'unreachable'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# move example2: Array</div><div class='add'>+assert_equal '[0, 1]', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    ary = Ractor.receive</div><div class='add'>+    ary &lt;&lt; 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  a1 = [0]</div><div class='add'>+  r.send a1, move: true</div><div class='add'>+  a2 = r.take</div><div class='add'>+  begin</div><div class='add'>+    a1 &lt;&lt; 2 # raise Ractor::MovedError</div><div class='add'>+  rescue Ractor::MovedError</div><div class='add'>+    a2.inspect</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# move with yield</div><div class='add'>+assert_equal 'hello', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    Thread.current.report_on_exception = false</div><div class='add'>+    obj = 'hello'</div><div class='add'>+    Ractor.yield obj, move: true</div><div class='add'>+    obj &lt;&lt; 'world'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  str = r.take</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError</div><div class='add'>+    str #=&gt; "hello"</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# yield/move should not make moved object when the yield is not succeeded</div><div class='add'>+assert_equal '"str"', %q{</div><div class='add'>+  R = Ractor.new{}</div><div class='add'>+  M = Ractor.current</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    s = 'str'</div><div class='add'>+    selected_r, v = Ractor.select R, yield_value: s, move: true</div><div class='add'>+    raise if selected_r != R # taken from R</div><div class='add'>+    M.send s.inspect # s should not be a moved object</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Ractor.receive</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# yield/move can fail</div><div class='add'>+assert_equal "allocator undefined for Thread", %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    obj = Thread.new{}</div><div class='add'>+    Ractor.yield obj</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    e.message</div><div class='add'>+  end</div><div class='add'>+  r.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Access to global-variables are prohibited</div><div class='add'>+assert_equal 'can not access global variables $gv from non-main Ractors', %q{</div><div class='add'>+  $gv = 1</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    $gv</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Access to global-variables are prohibited</div><div class='add'>+assert_equal 'can not access global variables $gv from non-main Ractors', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    $gv = 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# $stdin,out,err is Ractor local, but shared fds</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    [$stdin, $stdout, $stderr].map{|io|</div><div class='add'>+      [io.object_id, io.fileno]</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  [$stdin, $stdout, $stderr].zip(r.take){|io, (oid, fno)|</div><div class='add'>+    raise "should not be different object" if io.object_id == oid</div><div class='add'>+    raise "fd should be same" unless io.fileno == fno</div><div class='add'>+  }</div><div class='add'>+  'ok'</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# $stdin,out,err belong to Ractor</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    $stdin.itself</div><div class='add'>+    $stdout.itself</div><div class='add'>+    $stderr.itself</div><div class='add'>+    'ok'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  r.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# $DEBUG, $VERBOSE are Ractor local</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  $DEBUG = true</div><div class='add'>+  $VERBOSE = true</div><div class='add'>+</div><div class='add'>+  def ractor_local_globals</div><div class='add'>+    /a(b)(c)d/ =~ 'abcd' # for $~</div><div class='add'>+    `echo foo` unless  /solaris/ =~ RUBY_PLATFORM</div><div class='add'>+</div><div class='add'>+    {</div><div class='add'>+     # ractor-local (derived from created ractor): debug</div><div class='add'>+     '$DEBUG' =&gt; $DEBUG,</div><div class='add'>+     '$-d' =&gt; $-d,</div><div class='add'>+</div><div class='add'>+     # ractor-local (derived from created ractor): verbose</div><div class='add'>+     '$VERBOSE' =&gt; $VERBOSE,</div><div class='add'>+     '$-w' =&gt; $-w,</div><div class='add'>+     '$-W' =&gt; $-W,</div><div class='add'>+     '$-v' =&gt; $-v,</div><div class='add'>+</div><div class='add'>+     # process-local (readonly): other commandline parameters</div><div class='add'>+     '$-p' =&gt; $-p,</div><div class='add'>+     '$-l' =&gt; $-l,</div><div class='add'>+     '$-a' =&gt; $-a,</div><div class='add'>+</div><div class='add'>+     # process-local (readonly): getpid</div><div class='add'>+     '$$'  =&gt; $$,</div><div class='add'>+</div><div class='add'>+     # thread local: process result</div><div class='add'>+     '$?'  =&gt; $?,</div><div class='add'>+</div><div class='add'>+     # scope local: match</div><div class='add'>+     '$~'  =&gt; $~.inspect,</div><div class='add'>+     '$&amp;'  =&gt; $&amp;,</div><div class='add'>+     '$`'  =&gt; $`,</div><div class='add'>+     '$\''  =&gt; $',</div><div class='add'>+     '$+'  =&gt; $+,</div><div class='add'>+     '$1'  =&gt; $1,</div><div class='add'>+</div><div class='add'>+     # scope local: last line</div><div class='add'>+     '$_' =&gt; $_,</div><div class='add'>+</div><div class='add'>+     # scope local: last backtrace</div><div class='add'>+     '$@' =&gt; $@,</div><div class='add'>+     '$!' =&gt; $!,</div><div class='add'>+</div><div class='add'>+     # ractor local: stdin, out, err</div><div class='add'>+     '$stdin'  =&gt; $stdin.inspect,</div><div class='add'>+     '$stdout' =&gt; $stdout.inspect,</div><div class='add'>+     '$stderr' =&gt; $stderr.inspect,</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  h = Ractor.new do</div><div class='add'>+    ractor_local_globals</div><div class='add'>+  end.take</div><div class='add'>+  ractor_local_globals == h #=&gt; true</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# selfs are different objects</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    self.object_id</div><div class='add'>+  end</div><div class='add'>+  r.take == self.object_id #=&gt; false</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# self is a Ractor instance</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    self.object_id</div><div class='add'>+  end</div><div class='add'>+  r.object_id == r.take #=&gt; true</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# given block Proc will be isolated, so can not access outer variables.</div><div class='add'>+assert_equal 'ArgumentError', %q{</div><div class='add'>+  begin</div><div class='add'>+    a = true</div><div class='add'>+    r = Ractor.new do</div><div class='add'>+      a</div><div class='add'>+    end</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    e.class</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# ivar in shareable-objects are not allowed to access from non-main Ractor</div><div class='add'>+assert_equal "can not get unshareable values from instance variables of classes/modules from non-main Ractors", %q{</div><div class='add'>+  class C</div><div class='add'>+    @iv = 'str'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    class C</div><div class='add'>+      p @iv</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# ivar in shareable-objects are not allowed to access from non-main Ractor</div><div class='add'>+assert_equal 'can not access instance variables of shareable objects from non-main Ractors', %q{</div><div class='add'>+  shared = Ractor.new{}</div><div class='add'>+  shared.instance_variable_set(:@iv, 'str')</div><div class='add'>+</div><div class='add'>+  r = Ractor.new shared do |shared|</div><div class='add'>+    p shared.instance_variable_get(:@iv)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# ivar in shareable-objects are not allowed to access from non-main Ractor, by @iv (get)</div><div class='add'>+assert_equal 'can not access instance variables of shareable objects from non-main Ractors', %q{</div><div class='add'>+  class Ractor</div><div class='add'>+    def setup</div><div class='add'>+      @foo = ''</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def foo</div><div class='add'>+      @foo</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  shared = Ractor.new{}</div><div class='add'>+  shared.setup</div><div class='add'>+</div><div class='add'>+  r = Ractor.new shared do |shared|</div><div class='add'>+    p shared.foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# ivar in shareable-objects are not allowed to access from non-main Ractor, by @iv (set)</div><div class='add'>+assert_equal 'can not access instance variables of shareable objects from non-main Ractors', %q{</div><div class='add'>+  class Ractor</div><div class='add'>+    def setup</div><div class='add'>+      @foo = ''</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  shared = Ractor.new{}</div><div class='add'>+</div><div class='add'>+  r = Ractor.new shared do |shared|</div><div class='add'>+    p shared.setup</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# But a shareable object is frozen, it is allowed to access ivars from non-main Ractor</div><div class='add'>+assert_equal '11', %q{</div><div class='add'>+  [Object.new, [], ].map{|obj|</div><div class='add'>+    obj.instance_variable_set('@a', 1)</div><div class='add'>+    Ractor.make_shareable obj = obj.freeze</div><div class='add'>+</div><div class='add'>+    Ractor.new obj do |obj|</div><div class='add'>+      obj.instance_variable_get('@a')</div><div class='add'>+    end.take.to_s</div><div class='add'>+  }.join</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# and instance variables of classes/modules are accessible if they refer shareable objects</div><div class='add'>+assert_equal '333', %q{</div><div class='add'>+  class C</div><div class='add'>+    @int = 1</div><div class='add'>+    @str = '-1000'.dup</div><div class='add'>+    @fstr = '100'.freeze</div><div class='add'>+</div><div class='add'>+    def self.int = @int</div><div class='add'>+    def self.str = @str</div><div class='add'>+    def self.fstr = @fstr</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module M</div><div class='add'>+    @int = 2</div><div class='add'>+    @str = '-2000'.dup</div><div class='add'>+    @fstr = '200'.freeze</div><div class='add'>+</div><div class='add'>+    def self.int = @int</div><div class='add'>+    def self.str = @str</div><div class='add'>+    def self.fstr = @fstr</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  a = Ractor.new{ C.int }.take</div><div class='add'>+  b = Ractor.new do</div><div class='add'>+    C.str.to_i</div><div class='add'>+  rescue Ractor::IsolationError</div><div class='add'>+    10</div><div class='add'>+  end.take</div><div class='add'>+  c = Ractor.new do</div><div class='add'>+    C.fstr.to_i</div><div class='add'>+  end.take</div><div class='add'>+</div><div class='add'>+  d = Ractor.new{ M.int }.take</div><div class='add'>+  e = Ractor.new do</div><div class='add'>+    M.str.to_i</div><div class='add'>+  rescue Ractor::IsolationError</div><div class='add'>+    20</div><div class='add'>+  end.take</div><div class='add'>+  f = Ractor.new do</div><div class='add'>+    M.fstr.to_i</div><div class='add'>+  end.take</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+  # 1 + 10 + 100 + 2 + 20 + 200</div><div class='add'>+  a + b + c + d + e + f</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# cvar in shareable-objects are not allowed to access from non-main Ractor</div><div class='add'>+assert_equal 'can not access class variables from non-main Ractors', %q{</div><div class='add'>+  class C</div><div class='add'>+    @@cv = 'str'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    class C</div><div class='add'>+      p @@cv</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# also cached cvar in shareable-objects are not allowed to access from non-main Ractor</div><div class='add'>+assert_equal 'can not access class variables from non-main Ractors', %q{</div><div class='add'>+  class C</div><div class='add'>+    @@cv = 'str'</div><div class='add'>+    def self.cv</div><div class='add'>+      @@cv</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  C.cv # cache</div><div class='add'>+</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    C.cv</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Getting non-shareable objects via constants by other Ractors is not allowed</div><div class='add'>+assert_equal 'can not access non-shareable objects in constant C::CONST by non-main Ractor.', %q{</div><div class='add'>+  class C</div><div class='add'>+    CONST = 'str'</div><div class='add'>+  end</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    C::CONST</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Constant cache should care about non-sharable constants</div><div class='add'>+assert_equal "can not access non-shareable objects in constant Object::STR by non-main Ractor.", %q{</div><div class='add'>+  STR = "hello"</div><div class='add'>+  def str; STR; end</div><div class='add'>+  s = str() # fill const cache</div><div class='add'>+  begin</div><div class='add'>+    Ractor.new{ str() }.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Setting non-shareable objects into constants by other Ractors is not allowed</div><div class='add'>+assert_equal 'can not set constants with non-shareable objects by non-main Ractors', %q{</div><div class='add'>+  class C</div><div class='add'>+  end</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    C::CONST = 'str'</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    r.take</div><div class='add'>+  rescue Ractor::RemoteError =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# define_method is not allowed</div><div class='add'>+assert_equal "defined with an un-shareable Proc in a different Ractor", %q{</div><div class='add'>+  str = "foo"</div><div class='add'>+  define_method(:buggy){|i| str &lt;&lt; "#{i}"}</div><div class='add'>+  begin</div><div class='add'>+    Ractor.new{buggy(10)}.take</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    e.cause.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Immutable Array and Hash are shareable, so it can be shared with constants</div><div class='add'>+assert_equal '[1000, 3]', %q{</div><div class='add'>+  A = Array.new(1000).freeze # [nil, ...]</div><div class='add'>+  H = {a: 1, b: 2, c: 3}.freeze</div><div class='add'>+</div><div class='add'>+  Ractor.new{ [A.size, H.size] }.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.count</div><div class='add'>+assert_equal '[1, 4, 3, 2, 1]', %q{</div><div class='add'>+  counts = []</div><div class='add'>+  counts &lt;&lt; Ractor.count</div><div class='add'>+  ractors = (1..3).map { Ractor.new { Ractor.receive } }</div><div class='add'>+  counts &lt;&lt; Ractor.count</div><div class='add'>+</div><div class='add'>+  ractors[0].send('End 0').take</div><div class='add'>+  sleep 0.1 until ractors[0].inspect =~ /terminated/</div><div class='add'>+  counts &lt;&lt; Ractor.count</div><div class='add'>+</div><div class='add'>+  ractors[1].send('End 1').take</div><div class='add'>+  sleep 0.1 until ractors[1].inspect =~ /terminated/</div><div class='add'>+  counts &lt;&lt; Ractor.count</div><div class='add'>+</div><div class='add'>+  ractors[2].send('End 2').take</div><div class='add'>+  sleep 0.1 until ractors[2].inspect =~ /terminated/</div><div class='add'>+  counts &lt;&lt; Ractor.count</div><div class='add'>+</div><div class='add'>+  counts.inspect</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# ObjectSpace.each_object can not handle unshareable objects with Ractors</div><div class='add'>+assert_equal '0', %q{</div><div class='add'>+  Ractor.new{</div><div class='add'>+    n = 0</div><div class='add'>+    ObjectSpace.each_object{|o| n += 1 unless Ractor.shareable?(o)}</div><div class='add'>+    n</div><div class='add'>+  }.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# ObjectSpace._id2ref can not handle unshareable objects with Ractors</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  s = 'hello'</div><div class='add'>+</div><div class='add'>+  Ractor.new s.object_id do |id ;s|</div><div class='add'>+    begin</div><div class='add'>+      s = ObjectSpace._id2ref(id)</div><div class='add'>+    rescue =&gt; e</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  end.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.make_shareable(obj)</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  class C</div><div class='add'>+    def initialize</div><div class='add'>+      @a = 'foo'</div><div class='add'>+      @b = 'bar'</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def freeze</div><div class='add'>+      @c = [:freeze_called]</div><div class='add'>+      super</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    attr_reader :a, :b, :c</div><div class='add'>+  end</div><div class='add'>+  S = Struct.new(:s1, :s2)</div><div class='add'>+  str = "hello"</div><div class='add'>+  str.instance_variable_set("@iv", "hello")</div><div class='add'>+  /a/ =~ 'a'</div><div class='add'>+  m = $~</div><div class='add'>+  class N &lt; Numeric</div><div class='add'>+    def /(other)</div><div class='add'>+      1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  ary = []; ary &lt;&lt; ary</div><div class='add'>+</div><div class='add'>+  a = [[1, ['2', '3']],</div><div class='add'>+       {Object.new =&gt; "hello"},</div><div class='add'>+       C.new,</div><div class='add'>+       S.new("x", "y"),</div><div class='add'>+       ("a".."b"),</div><div class='add'>+       str,</div><div class='add'>+       ary,             # cycle</div><div class='add'>+       /regexp/,</div><div class='add'>+       /#{'r'.upcase}/,</div><div class='add'>+       m,</div><div class='add'>+       Complex(N.new,0),</div><div class='add'>+       Rational(N.new,0),</div><div class='add'>+       true,</div><div class='add'>+       false,</div><div class='add'>+       nil,</div><div class='add'>+       1, 1.2, 1+3r, 1+4i, # Numeric</div><div class='add'>+  ]</div><div class='add'>+  Ractor.make_shareable(a)</div><div class='add'>+</div><div class='add'>+  # check all frozen</div><div class='add'>+  a.each{|o|</div><div class='add'>+    raise o.inspect unless o.frozen?</div><div class='add'>+</div><div class='add'>+    case o</div><div class='add'>+    when C</div><div class='add'>+      raise o.a.inspect unless o.a.frozen?</div><div class='add'>+      raise o.b.inspect unless o.b.frozen?</div><div class='add'>+      raise o.c.inspect unless o.c.frozen? &amp;&amp; o.c == [:freeze_called]</div><div class='add'>+    when Rational</div><div class='add'>+      raise o.numerator.inspect unless o.numerator.frozen?</div><div class='add'>+    when Complex</div><div class='add'>+      raise o.real.inspect unless o.real.frozen?</div><div class='add'>+    when Array</div><div class='add'>+      if o[0] == 1</div><div class='add'>+        raise o[1][1].inspect unless o[1][1].frozen?</div><div class='add'>+      end</div><div class='add'>+    when Hash</div><div class='add'>+      o.each{|k, v|</div><div class='add'>+        raise k.inspect unless k.frozen?</div><div class='add'>+        raise v.inspect unless v.frozen?</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  Ractor.shareable?(a)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.make_shareable(obj) doesn't freeze shareable objects</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  r = Ractor.new{}</div><div class='add'>+  Ractor.make_shareable(a = [r])</div><div class='add'>+  [a.frozen?, a[0].frozen?] == [true, false]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.make_shareable(a_proc) makes a proc shareable.</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  a = [1, [2, 3], {a: "4"}]</div><div class='add'>+</div><div class='add'>+  pr = Ractor.current.instance_eval do</div><div class='add'>+    Proc.new do</div><div class='add'>+      a</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Ractor.make_shareable(a) # referred value should be shareable</div><div class='add'>+  Ractor.make_shareable(pr)</div><div class='add'>+  Ractor.shareable?(pr)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.shareable?(recursive_objects)</div><div class='add'>+assert_equal '[false, false]', %q{</div><div class='add'>+  y = []</div><div class='add'>+  x = [y, {}].freeze</div><div class='add'>+  y &lt;&lt; x</div><div class='add'>+  y.freeze</div><div class='add'>+  [Ractor.shareable?(x), Ractor.shareable?(y)]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.make_shareable(recursive_objects)</div><div class='add'>+assert_equal '[:ok, false, false]', %q{</div><div class='add'>+  o = Object.new</div><div class='add'>+  def o.freeze; raise; end</div><div class='add'>+  y = []</div><div class='add'>+  x = [y, o].freeze</div><div class='add'>+  y &lt;&lt; x</div><div class='add'>+  y.freeze</div><div class='add'>+  [(Ractor.make_shareable(x) rescue :ok), Ractor.shareable?(x), Ractor.shareable?(y)]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.make_shareable with Class/Module</div><div class='add'>+assert_equal '[C, M]', %q{</div><div class='add'>+  class C; end</div><div class='add'>+  module M; end</div><div class='add'>+</div><div class='add'>+  Ractor.make_shareable(ary = [C, M])</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# define_method() can invoke different Ractor's proc if the proc is shareable.</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  class C</div><div class='add'>+    a = 1</div><div class='add'>+    define_method "foo", Ractor.make_shareable(Proc.new{ a })</div><div class='add'>+    a = 2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Ractor.new{ C.new.foo }.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.make_shareable(a_proc) makes a proc shareable.</div><div class='add'>+assert_equal 'can not make a Proc shareable because it accesses outer variables (a).', %q{</div><div class='add'>+  a = b = nil</div><div class='add'>+  pr = Ractor.current.instance_eval do</div><div class='add'>+    Proc.new do</div><div class='add'>+      c = b # assign to a is okay because c is block local variable</div><div class='add'>+      # reading b is okay</div><div class='add'>+      a = b # assign to a is not allowed #=&gt; Ractor::Error</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    Ractor.make_shareable(pr)</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    e.message</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.make_shareable(obj, copy: true) makes copied shareable object.</div><div class='add'>+assert_equal '[false, false, true, true]', %q{</div><div class='add'>+  r = []</div><div class='add'>+  o1 = [1, 2, ["3"]]</div><div class='add'>+</div><div class='add'>+  o2 = Ractor.make_shareable(o1, copy: true)</div><div class='add'>+  r &lt;&lt; Ractor.shareable?(o1) # false</div><div class='add'>+  r &lt;&lt; (o1.object_id == o2.object_id) # false</div><div class='add'>+</div><div class='add'>+  o3 = Ractor.make_shareable(o1)</div><div class='add'>+  r &lt;&lt; Ractor.shareable?(o1) # true</div><div class='add'>+  r &lt;&lt; (o1.object_id == o3.object_id) # false</div><div class='add'>+  r</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# TracePoint with normal Proc should be Ractor local</div><div class='add'>+assert_equal '[4, 8]', %q{</div><div class='add'>+  rs = []</div><div class='add'>+  TracePoint.new(:line){|tp| rs &lt;&lt; tp.lineno if tp.path == __FILE__}.enable do</div><div class='add'>+    Ractor.new{ # line 4</div><div class='add'>+      a = 1</div><div class='add'>+      b = 2</div><div class='add'>+    }.take</div><div class='add'>+    c = 3       # line 8</div><div class='add'>+  end</div><div class='add'>+  rs</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor deep copies frozen objects (ary)</div><div class='add'>+assert_equal '[true, false]', %q{</div><div class='add'>+  Ractor.new([[]].freeze) { |ary|</div><div class='add'>+    [ary.frozen?, ary.first.frozen? ]</div><div class='add'>+  }.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor deep copies frozen objects (str)</div><div class='add'>+assert_equal '[true, false]', %q{</div><div class='add'>+  s = String.new.instance_eval { @x = []; freeze}</div><div class='add'>+  Ractor.new(s) { |s|</div><div class='add'>+    [s.frozen?, s.instance_variable_get(:@x).frozen?]</div><div class='add'>+  }.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Can not trap with not isolated Proc on non-main ractor</div><div class='add'>+assert_equal '[:ok, :ok]', %q{</div><div class='add'>+  a = []</div><div class='add'>+  Ractor.new{</div><div class='add'>+    trap(:INT){p :ok}</div><div class='add'>+  }.take</div><div class='add'>+  a &lt;&lt; :ok</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    Ractor.new{</div><div class='add'>+      s = 'str'</div><div class='add'>+      trap(:INT){p s}</div><div class='add'>+    }.take</div><div class='add'>+  rescue =&gt; Ractor::RemoteError</div><div class='add'>+    a &lt;&lt; :ok</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor-local storage</div><div class='add'>+assert_equal '[nil, "b", "a"]', %q{</div><div class='add'>+  ans = []</div><div class='add'>+  Ractor.current[:key] = 'a'</div><div class='add'>+  r = Ractor.new{</div><div class='add'>+    Ractor.yield self[:key]</div><div class='add'>+    self[:key] = 'b'</div><div class='add'>+    self[:key]</div><div class='add'>+  }</div><div class='add'>+  ans &lt;&lt; r.take</div><div class='add'>+  ans &lt;&lt; r.take</div><div class='add'>+  ans &lt;&lt; Ractor.current[:key]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+###</div><div class='add'>+### Synchronization tests</div><div class='add'>+###</div><div class='add'>+</div><div class='add'>+N = 100_000</div><div class='add'>+</div><div class='add'>+# fstring pool</div><div class='add'>+assert_equal "#{N}#{N}", %Q{</div><div class='add'>+  N = #{N}</div><div class='add'>+  2.times.map{</div><div class='add'>+    Ractor.new{</div><div class='add'>+      N.times{|i| -(i.to_s)}</div><div class='add'>+    }</div><div class='add'>+  }.map{|r| r.take}.join</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# enc_table</div><div class='add'>+assert_equal "100", %Q{</div><div class='add'>+  Ractor.new do</div><div class='add'>+    loop do</div><div class='add'>+      Encoding.find("test-enc-#{rand(5_000)}").inspect</div><div class='add'>+    rescue ArgumentError =&gt; e</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  src = Encoding.find("UTF-8")</div><div class='add'>+  100.times{|i|</div><div class='add'>+    src.replicate("test-enc-\#{i}")</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Generic ivtbl</div><div class='add'>+n = N/2</div><div class='add'>+assert_equal "#{n}#{n}", %Q{</div><div class='add'>+  2.times.map{</div><div class='add'>+    Ractor.new do</div><div class='add'>+      #{n}.times do</div><div class='add'>+        obj = ''</div><div class='add'>+        obj.instance_variable_set("@a", 1)</div><div class='add'>+        obj.instance_variable_set("@b", 1)</div><div class='add'>+        obj.instance_variable_set("@c", 1)</div><div class='add'>+        obj.instance_variable_defined?("@a")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  }.map{|r| r.take}.join</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# NameError</div><div class='add'>+assert_equal "ok", %q{</div><div class='add'>+  begin</div><div class='add'>+    bar</div><div class='add'>+  rescue =&gt; err</div><div class='add'>+  end</div><div class='add'>+  begin</div><div class='add'>+    Ractor.new{} &lt;&lt; err</div><div class='add'>+  rescue TypeError</div><div class='add'>+    'ok'</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal "ok", %q{</div><div class='add'>+  GC.disable</div><div class='add'>+  Ractor.new {}</div><div class='add'>+  raise "not ok" unless GC.disable</div><div class='add'>+</div><div class='add'>+  foo = []</div><div class='add'>+  10.times { foo &lt;&lt; 1 }</div><div class='add'>+</div><div class='add'>+  GC.start</div><div class='add'>+</div><div class='add'>+  'ok'</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Can yield back values while GC is sweeping [Bug #18117]</div><div class='add'>+assert_equal "ok", %q{</div><div class='add'>+  workers = (0...8).map do</div><div class='add'>+    Ractor.new do</div><div class='add'>+      loop do</div><div class='add'>+        10_000.times.map { Object.new }</div><div class='add'>+        Ractor.yield Time.now</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  1_000.times { idle_worker, tmp_reporter = Ractor.select(*workers) }</div><div class='add'>+  "ok"</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal "ok", %q{</div><div class='add'>+  def foo(*); -&gt;{ super }; end</div><div class='add'>+  begin</div><div class='add'>+    Ractor.make_shareable(foo)</div><div class='add'>+  rescue Ractor::IsolationError</div><div class='add'>+    "ok"</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal "ok", %q{</div><div class='add'>+  def foo(**); -&gt;{ super }; end</div><div class='add'>+  begin</div><div class='add'>+    Ractor.make_shareable(foo)</div><div class='add'>+  rescue Ractor::IsolationError</div><div class='add'>+    "ok"</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal "ok", %q{</div><div class='add'>+  def foo(...); -&gt;{ super }; end</div><div class='add'>+  begin</div><div class='add'>+    Ractor.make_shareable(foo)</div><div class='add'>+  rescue Ractor::IsolationError</div><div class='add'>+    "ok"</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal "ok", %q{</div><div class='add'>+  def foo((x), (y)); -&gt;{ super }; end</div><div class='add'>+  begin</div><div class='add'>+    Ractor.make_shareable(foo([], []))</div><div class='add'>+  rescue Ractor::IsolationError</div><div class='add'>+    "ok"</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal "ok", %q{</div><div class='add'>+  module M</div><div class='add'>+    def foo</div><div class='add'>+      @foo</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class A</div><div class='add'>+    include M</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      100.times { |i| instance_variable_set(:"@var_#{i}", "bad: #{i}") }</div><div class='add'>+      @foo = 2</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class B</div><div class='add'>+    include M</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      @foo = 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Ractor.new do</div><div class='add'>+    b = B.new</div><div class='add'>+    100_000.times do</div><div class='add'>+      raise unless b.foo == 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  a = A.new</div><div class='add'>+  100_000.times do</div><div class='add'>+    raise unless a.foo == 2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  "ok"</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_match /\Atest_ractor\.rb:1:\s+warning:\s+Ractor is experimental/, %q{</div><div class='add'>+  Warning[:experimental] = $VERBOSE = true</div><div class='add'>+  STDERR.reopen(STDOUT)</div><div class='add'>+  eval("Ractor.new{}.take", nil, "test_ractor.rb", 1)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+end # if !ENV['GITHUB_WORKFLOW']</div><div class='head'>diff --git a/bootstraptest/test_syntax.rb b/bootstraptest/test_syntax.rb<br/>index a111990a1f..948e2d7809 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_syntax.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_syntax.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_syntax.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_syntax.rb</a></div><div class='hunk'>@@ -268,8 +268,10 @@ assert_equal %q{}, %q{</div><div class='ctx'>   defined?(@@a)</div><div class='ctx'> }</div><div class='ctx'> assert_equal %q{class variable}, %q{</div><div class='del'>-  @@a = 1</div><div class='del'>-  defined?(@@a)</div><div class='add'>+  class A</div><div class='add'>+    @@a = 1</div><div class='add'>+    defined?(@@a)</div><div class='add'>+  end</div><div class='ctx'> }</div><div class='ctx'> assert_equal %q{}, %q{</div><div class='ctx'>   defined?($a)</div><div class='hunk'>@@ -626,7 +628,7 @@ assert_equal '2', %q{</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> assert_match /invalid multibyte char/, %q{</div><div class='del'>-  STDERR.reopen(STDOUT)</div><div class='add'>+  $stderr = STDOUT</div><div class='ctx'>   eval("\"\xf0".force_encoding("utf-8"))</div><div class='ctx'> }, '[ruby-dev:32429]'</div><div class='ctx'> </div><div class='head'>diff --git a/bootstraptest/test_thread.rb b/bootstraptest/test_thread.rb<br/>index d16295de8b..5361828403 100644<br/>--- a/<a href='/ruby.git/tree/bootstraptest/test_thread.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>bootstraptest/test_thread.rb</a><br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_thread.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_thread.rb</a></div><div class='hunk'>@@ -1,4 +1,14 @@</div><div class='del'>-# Thread and Fiber</div><div class='add'>+show_limit %q{</div><div class='add'>+  threads = []</div><div class='add'>+  begin</div><div class='add'>+    threads &lt;&lt; Thread.new{sleep}</div><div class='add'>+</div><div class='add'>+    raise Exception, "skipping" if threads.count &gt;= 10_000</div><div class='add'>+  rescue Exception =&gt; error</div><div class='add'>+    puts "Thread count: #{threads.count} (#{error})"</div><div class='add'>+    break</div><div class='add'>+  end while true</div><div class='add'>+} if false # disable to pass CI</div><div class='ctx'> </div><div class='ctx'> assert_equal %q{ok}, %q{</div><div class='ctx'>   Thread.new{</div><div class='hunk'>@@ -36,7 +46,7 @@ begin</div><div class='ctx'>     }</div><div class='ctx'>   }</div><div class='ctx'> rescue ThreadError =&gt; e</div><div class='del'>-  :ok if /can't create Thread/ =~ e.message</div><div class='add'>+  /can't create Thread/ =~ e.message ? :ok : e.message</div><div class='ctx'> end</div><div class='ctx'> }</div><div class='ctx'> assert_equal %q{ok}, %q{</div><div class='hunk'>@@ -50,7 +60,7 @@ begin</div><div class='ctx'>     }</div><div class='ctx'>   }</div><div class='ctx'> rescue ThreadError =&gt; e</div><div class='del'>-  :ok if /can't create Thread/ =~ e.message</div><div class='add'>+  /can't create Thread/ =~ e.message ? :ok : e.message</div><div class='ctx'> end</div><div class='ctx'> }</div><div class='ctx'> assert_equal %q{ok}, %q{</div><div class='hunk'>@@ -233,7 +243,7 @@ assert_equal 'true', %{</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> assert_equal 'ok', %{</div><div class='del'>-  open("zzz.rb", "w") do |f|</div><div class='add'>+  open("zzz_t1.rb", "w") do |f|</div><div class='ctx'>     f.puts &lt;&lt;-END</div><div class='ctx'>       begin</div><div class='ctx'>         Thread.new { fork { GC.start } }.join</div><div class='hunk'>@@ -244,7 +254,7 @@ assert_equal 'ok', %{</div><div class='ctx'>       end</div><div class='ctx'>     END</div><div class='ctx'>   end</div><div class='del'>-  require "./zzz.rb"</div><div class='add'>+  require "./zzz_t1.rb"</div><div class='ctx'>   $result</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -299,10 +309,6 @@ assert_equal 'ok', %q{</div><div class='ctx'> }, '[ruby-dev:34492]'</div><div class='ctx'> </div><div class='ctx'> assert_normal_exit %q{</div><div class='del'>-  at_exit { Fiber.new{}.resume }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-assert_normal_exit %q{</div><div class='ctx'>   g = enum_for(:local_variables)</div><div class='ctx'>   loop { g.next }</div><div class='ctx'> }, '[ruby-dev:34128]'</div><div class='hunk'>@@ -328,10 +334,6 @@ assert_normal_exit %q{</div><div class='ctx'> }, '[ruby-dev:34128]'</div><div class='ctx'> </div><div class='ctx'> assert_normal_exit %q{</div><div class='del'>-  Fiber.new(&amp;Object.method(:class_eval)).resume("foo")</div><div class='del'>-}, '[ruby-dev:34128]'</div><div class='del'>-</div><div class='del'>-assert_normal_exit %q{</div><div class='ctx'>   Thread.new("foo", &amp;Object.method(:class_eval)).join</div><div class='ctx'> }, '[ruby-dev:34128]'</div><div class='ctx'> </div><div class='hunk'>@@ -406,7 +408,7 @@ assert_equal 'ok', %q{</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> assert_equal 'ok', %{</div><div class='del'>-  open("zzz.rb", "w") do |f|</div><div class='add'>+  open("zzz_t2.rb", "w") do |f|</div><div class='ctx'>     f.puts &lt;&lt;-'end;' # do</div><div class='ctx'>       begin</div><div class='ctx'>         m = Thread::Mutex.new</div><div class='hunk'>@@ -430,7 +432,7 @@ assert_equal 'ok', %{</div><div class='ctx'>       end</div><div class='ctx'>     end;</div><div class='ctx'>   end</div><div class='del'>-  require "./zzz.rb"</div><div class='add'>+  require "./zzz_t2.rb"</div><div class='ctx'>   $result</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -482,3 +484,17 @@ assert_equal 'foo', %q{</div><div class='ctx'>   GC.start</div><div class='ctx'>   f.call.source</div><div class='ctx'> }</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  class C</div><div class='add'>+    def inspect</div><div class='add'>+      sleep 0.5</div><div class='add'>+      'C!!'</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  Thread.new{</div><div class='add'>+    loop{</div><div class='add'>+      p C.new</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+  sleep 0.1</div><div class='add'>+}, timeout: 5</div><div class='head'>diff --git a/bootstraptest/test_yjit.rb b/bootstraptest/test_yjit.rb<br/>new file mode 100644<br/>index 0000000000..5c655b8f25<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_yjit.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_yjit.rb</a></div><div class='hunk'>@@ -0,0 +1,3530 @@</div><div class='add'>+# Regression test for yielding with autosplat to block with</div><div class='add'>+# optional parameters. https://github.com/Shopify/yjit/issues/313</div><div class='add'>+assert_equal '[:a, :b, :a, :b]', %q{</div><div class='add'>+  def yielder(arg) = yield(arg) + yield(arg)</div><div class='add'>+</div><div class='add'>+  yielder([:a, :b]) do |c = :c, d = :d|</div><div class='add'>+    [c, d]</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Regression test for GC mishap while doing shape transition</div><div class='add'>+assert_equal '[:ok]', %q{</div><div class='add'>+  # [Bug #19601]</div><div class='add'>+  class RegressionTest</div><div class='add'>+    def initialize</div><div class='add'>+      @a = @b = @fourth_ivar_does_shape_transition = nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def extender</div><div class='add'>+      @first_extended_ivar = [:ok]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  GC.stress = true</div><div class='add'>+</div><div class='add'>+  # Used to crash due to GC run in rb_ensure_iv_list_size()</div><div class='add'>+  # not marking the newly allocated [:ok].</div><div class='add'>+  RegressionTest.new.extender.itself</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  # regression test for tracking type of locals for too long</div><div class='add'>+  def local_setting_cmp(five)</div><div class='add'>+    victim = 5</div><div class='add'>+    five.define_singleton_method(:respond_to?) do |_, _|</div><div class='add'>+      victim = nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # +1 makes YJIT track that victim is a number and</div><div class='add'>+    # defined? calls respond_to? from above indirectly</div><div class='add'>+    unless (victim + 1) &amp;&amp; defined?(five.something)</div><div class='add'>+      # Would return wrong result if we still think `five` is a number</div><div class='add'>+      victim.nil?</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  local_setting_cmp(Object.new)</div><div class='add'>+  local_setting_cmp(Object.new)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '18374962167983112447', %q{</div><div class='add'>+  # regression test for incorrectly discarding 32 bits of a pointer when it</div><div class='add'>+  # comes to default values.</div><div class='add'>+  def large_literal_default(n: 0xff00_fabcafe0_00ff)</div><div class='add'>+    n</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def call_graph_root</div><div class='add'>+    large_literal_default</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  call_graph_root</div><div class='add'>+  call_graph_root</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  # regression test for a leak caught by an assert on --yjit-call-threshold=2</div><div class='add'>+  Foo = 1</div><div class='add'>+</div><div class='add'>+  eval("def foo = [#{(['Foo,']*256).join}]")</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+</div><div class='add'>+  Object.send(:remove_const, :Foo)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  # Test to ensure send on overriden c functions</div><div class='add'>+  # doesn't corrupt the stack</div><div class='add'>+  class Bar</div><div class='add'>+    def bar(x)</div><div class='add'>+      x</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Foo</div><div class='add'>+    def bar</div><div class='add'>+      Bar.new</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo = Foo.new</div><div class='add'>+  # before this change, this line would error</div><div class='add'>+  # because "s" would still be on the stack</div><div class='add'>+  # String.to_s is the overridden method here</div><div class='add'>+  p foo.bar.bar("s".__send__(:to_s))</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+assert_equal '[nil, nil, nil, nil, nil, nil]', %q{</div><div class='add'>+  [NilClass, TrueClass, FalseClass, Integer, Float, Symbol].each do |klass|</div><div class='add'>+    klass.class_eval("def foo = @foo")</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  [nil, true, false, 0xFABCAFE, 0.42, :cake].map do |instance|</div><div class='add'>+    instance.foo</div><div class='add'>+    instance.foo</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '0', %q{</div><div class='add'>+  # This is a regression test for incomplete invalidation from</div><div class='add'>+  # opt_setinlinecache. This test might be brittle, so</div><div class='add'>+  # feel free to remove it in the future if it's too annoying.</div><div class='add'>+  # This test assumes --yjit-call-threshold=2.</div><div class='add'>+  module M</div><div class='add'>+    Foo = 1</div><div class='add'>+    def foo</div><div class='add'>+      Foo</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def pin_self_type_then_foo</div><div class='add'>+      _ = @foo</div><div class='add'>+      foo</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def only_ints</div><div class='add'>+      1 + self</div><div class='add'>+      foo</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Integer</div><div class='add'>+    include M</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Sub</div><div class='add'>+    include M</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo_method = M.instance_method(:foo)</div><div class='add'>+</div><div class='add'>+  dbg = -&gt;(message) do</div><div class='add'>+    return # comment this out to get printouts</div><div class='add'>+</div><div class='add'>+    $stderr.puts RubyVM::YJIT.disasm(foo_method)</div><div class='add'>+    $stderr.puts message</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  2.times { 42.only_ints }</div><div class='add'>+</div><div class='add'>+  dbg["There should be two versions of getinlineache"]</div><div class='add'>+</div><div class='add'>+  module M</div><div class='add'>+    remove_const(:Foo)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  dbg["There should be no getinlinecaches"]</div><div class='add'>+</div><div class='add'>+  2.times do</div><div class='add'>+    42.only_ints</div><div class='add'>+  rescue NameError =&gt; err</div><div class='add'>+    _ = "caught name error #{err}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  dbg["There should be one version of getinlineache"]</div><div class='add'>+</div><div class='add'>+  2.times do</div><div class='add'>+    Sub.new.pin_self_type_then_foo</div><div class='add'>+  rescue NameError</div><div class='add'>+    _ = 'second specialization'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  dbg["There should be two versions of getinlineache"]</div><div class='add'>+</div><div class='add'>+  module M</div><div class='add'>+    Foo = 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  dbg["There should still be two versions of getinlineache"]</div><div class='add'>+</div><div class='add'>+  42.only_ints</div><div class='add'>+</div><div class='add'>+  dbg["There should be no getinlinecaches"]</div><div class='add'>+</div><div class='add'>+  # Find name of the first VM instruction in M#foo.</div><div class='add'>+  insns = RubyVM::InstructionSequence.of(foo_method).to_a</div><div class='add'>+  if defined?(RubyVM::YJIT.blocks_for) &amp;&amp; (insns.last.find { Array === _1 }&amp;.first == :opt_getinlinecache)</div><div class='add'>+    RubyVM::YJIT.blocks_for(RubyVM::InstructionSequence.of(foo_method))</div><div class='add'>+      .filter { _1.iseq_start_index == 0 }.count</div><div class='add'>+  else</div><div class='add'>+    0 # skip the test</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Check that frozen objects are respected</div><div class='add'>+assert_equal 'great', %q{</div><div class='add'>+  class Foo</div><div class='add'>+    attr_accessor :bar</div><div class='add'>+    def initialize</div><div class='add'>+      @bar = 1</div><div class='add'>+      freeze</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo = Foo.new</div><div class='add'>+</div><div class='add'>+  5.times do</div><div class='add'>+    begin</div><div class='add'>+      foo.bar = 2</div><div class='add'>+    rescue FrozenError</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo.bar == 1 ? "great" : "NG"</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Check that global variable set works</div><div class='add'>+assert_equal 'string', %q{</div><div class='add'>+  def foo</div><div class='add'>+    $foo = "string"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Check that exceptions work when setting global variables</div><div class='add'>+assert_equal 'rescued', %q{</div><div class='add'>+  def set_var</div><div class='add'>+    $var = 100</div><div class='add'>+  rescue</div><div class='add'>+    :rescued</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  set_var</div><div class='add'>+  trace_var(:$var) { raise }</div><div class='add'>+  set_var</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Check that global variables work</div><div class='add'>+assert_equal 'string', %q{</div><div class='add'>+  $foo = "string"</div><div class='add'>+</div><div class='add'>+  def foo</div><div class='add'>+    $foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Check that exceptions work when getting global variable</div><div class='add'>+assert_equal 'rescued', %q{</div><div class='add'>+  Warning[:deprecated] = true</div><div class='add'>+</div><div class='add'>+  module Warning</div><div class='add'>+    def warn(message)</div><div class='add'>+      raise</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def get_var</div><div class='add'>+    $=</div><div class='add'>+  rescue</div><div class='add'>+    :rescued</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  $VERBOSE = true</div><div class='add'>+  get_var</div><div class='add'>+  get_var</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Check that global tracepoints work</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  def foo</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+</div><div class='add'>+  called = false</div><div class='add'>+</div><div class='add'>+  tp = TracePoint.new(:return) { |event|</div><div class='add'>+    if event.method_id == :foo</div><div class='add'>+      called = true</div><div class='add'>+    end</div><div class='add'>+  }</div><div class='add'>+  tp.enable</div><div class='add'>+  foo</div><div class='add'>+  tp.disable</div><div class='add'>+  called</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Check that local tracepoints work</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  def foo</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+</div><div class='add'>+  called = false</div><div class='add'>+</div><div class='add'>+  tp = TracePoint.new(:return) { |_| called = true }</div><div class='add'>+  tp.enable(target: method(:foo))</div><div class='add'>+  foo</div><div class='add'>+  tp.disable</div><div class='add'>+  called</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Make sure that optional param methods return the correct value</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  def m(ary = [])</div><div class='add'>+    yield(ary)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Warm the JIT with a 0 param call</div><div class='add'>+  2.times { m { } }</div><div class='add'>+  m(1) { |v| v }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test for topn</div><div class='add'>+assert_equal 'array', %q{</div><div class='add'>+  def threequals(a)</div><div class='add'>+    case a</div><div class='add'>+    when Array</div><div class='add'>+      "array"</div><div class='add'>+    when Hash</div><div class='add'>+      "hash"</div><div class='add'>+    else</div><div class='add'>+      "unknown"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  threequals([])</div><div class='add'>+  threequals([])</div><div class='add'>+  threequals([])</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test for opt_mod</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  def mod(a, b)</div><div class='add'>+    a % b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  mod(7, 5)</div><div class='add'>+  mod(7, 5)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test for opt_mult</div><div class='add'>+assert_equal '12', %q{</div><div class='add'>+  def mult(a, b)</div><div class='add'>+    a * b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  mult(6, 2)</div><div class='add'>+  mult(6, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test for opt_div</div><div class='add'>+assert_equal '3', %q{</div><div class='add'>+  def div(a, b)</div><div class='add'>+    a / b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  div(6, 2)</div><div class='add'>+  div(6, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# BOP redefined methods work when JIT compiled</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+  def less_than x</div><div class='add'>+    x &lt; 10</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Integer</div><div class='add'>+    def &lt; x</div><div class='add'>+      false</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  less_than 2</div><div class='add'>+  less_than 2</div><div class='add'>+  less_than 2</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# BOP redefinition works on Integer#&lt;</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+  def less_than x</div><div class='add'>+    x &lt; 10</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  less_than 2</div><div class='add'>+  less_than 2</div><div class='add'>+</div><div class='add'>+  class Integer</div><div class='add'>+    def &lt; x</div><div class='add'>+      false</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  less_than 2</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Putobject, less-than operator, fixnums</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+    def check_index(index)</div><div class='add'>+        if 0x40000000 &lt; index</div><div class='add'>+            raise "wat? #{index}"</div><div class='add'>+        end</div><div class='add'>+        index</div><div class='add'>+    end</div><div class='add'>+    check_index 2</div><div class='add'>+    check_index 2</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# foo leaves a temp on the stack before the call</div><div class='add'>+assert_equal '6', %q{</div><div class='add'>+    def bar</div><div class='add'>+        return 5</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def foo</div><div class='add'>+        return 1 + bar</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    foo()</div><div class='add'>+    retval = foo()</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Method with one arguments</div><div class='add'>+# foo leaves a temp on the stack before the call</div><div class='add'>+assert_equal '7', %q{</div><div class='add'>+    def bar(a)</div><div class='add'>+        return a + 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def foo</div><div class='add'>+        return 1 + bar(5)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    foo()</div><div class='add'>+    retval = foo()</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Method with two arguments</div><div class='add'>+# foo leaves a temp on the stack before the call</div><div class='add'>+assert_equal '0', %q{</div><div class='add'>+    def bar(a, b)</div><div class='add'>+        return a - b</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def foo</div><div class='add'>+        return 1 + bar(1, 2)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    foo()</div><div class='add'>+    retval = foo()</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Passing argument types to callees</div><div class='add'>+assert_equal '8.5', %q{</div><div class='add'>+    def foo(x, y)</div><div class='add'>+        x + y</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def bar</div><div class='add'>+        foo(7, 1.5)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    bar</div><div class='add'>+    bar</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Recursive Ruby-to-Ruby calls</div><div class='add'>+assert_equal '21', %q{</div><div class='add'>+    def fib(n)</div><div class='add'>+        if n &lt; 2</div><div class='add'>+            return n</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        return fib(n-1) + fib(n-2)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    r = fib(8)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ruby-to-Ruby call and C call</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  def bar</div><div class='add'>+    puts('hi!')</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def foo</div><div class='add'>+    bar</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo()</div><div class='add'>+  foo()</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Method aliasing</div><div class='add'>+assert_equal '42', %q{</div><div class='add'>+  class Foo</div><div class='add'>+    def method_a</div><div class='add'>+      42</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    alias method_b method_a</div><div class='add'>+</div><div class='add'>+    def method_a</div><div class='add'>+        :somethingelse</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  @obj = Foo.new</div><div class='add'>+</div><div class='add'>+  def test</div><div class='add'>+    @obj.method_b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  test</div><div class='add'>+  test</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Method aliasing with method from parent class</div><div class='add'>+assert_equal '777', %q{</div><div class='add'>+  class A</div><div class='add'>+    def method_a</div><div class='add'>+      777</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class B &lt; A</div><div class='add'>+    alias method_b method_a</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  @obj = B.new</div><div class='add'>+</div><div class='add'>+  def test</div><div class='add'>+    @obj.method_b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  test</div><div class='add'>+  test</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# The hash method is a C function and uses the self argument</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+    def lehashself</div><div class='add'>+        hash</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    a = lehashself</div><div class='add'>+    b = lehashself</div><div class='add'>+    a == b</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Method redefinition (code invalidation) test</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+    def ret1</div><div class='add'>+        return 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    klass = Class.new do</div><div class='add'>+        def alias_then_hash(klass, method_to_redefine)</div><div class='add'>+            # Redefine the method to be ret1</div><div class='add'>+            klass.alias_method(method_to_redefine, :ret1)</div><div class='add'>+            hash</div><div class='add'>+        end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    instance = klass.new</div><div class='add'>+</div><div class='add'>+    i = 0</div><div class='add'>+    while i &lt; 12</div><div class='add'>+        if i &lt; 11</div><div class='add'>+            # Redefine the bar method</div><div class='add'>+            instance.alias_then_hash(klass, :bar)</div><div class='add'>+        else</div><div class='add'>+            # Redefine the hash method to be ret1</div><div class='add'>+            retval = instance.alias_then_hash(klass, :hash)</div><div class='add'>+        end</div><div class='add'>+        i += 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    retval</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Code invalidation and opt_getinlinecache</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  class Foo; end</div><div class='add'>+</div><div class='add'>+  # Uses the class constant Foo</div><div class='add'>+  def use_constant(arg)</div><div class='add'>+    [Foo.new, arg]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def propagate_type</div><div class='add'>+    i = Array.new</div><div class='add'>+    i.itself # make it remember that i is on-heap</div><div class='add'>+    use_constant(i)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  propagate_type</div><div class='add'>+  propagate_type</div><div class='add'>+  use_constant(Foo.new)</div><div class='add'>+  class Jo; end # bump global constant state</div><div class='add'>+  use_constant(3)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Method redefinition (code invalidation) and GC</div><div class='add'>+assert_equal '7', %q{</div><div class='add'>+    def bar()</div><div class='add'>+        return 5</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def foo()</div><div class='add'>+        bar()</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    foo()</div><div class='add'>+    foo()</div><div class='add'>+</div><div class='add'>+    def bar()</div><div class='add'>+        return 7</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    4.times { GC.start }</div><div class='add'>+</div><div class='add'>+    foo()</div><div class='add'>+    foo()</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Method redefinition with two block versions</div><div class='add'>+assert_equal '7', %q{</div><div class='add'>+    def bar()</div><div class='add'>+        return 5</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def foo(n)</div><div class='add'>+        return ((n &lt; 5)? 5:false), bar()</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    foo(4)</div><div class='add'>+    foo(4)</div><div class='add'>+    foo(10)</div><div class='add'>+    foo(10)</div><div class='add'>+</div><div class='add'>+    def bar()</div><div class='add'>+        return 7</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    4.times { GC.start }</div><div class='add'>+</div><div class='add'>+    foo(4)</div><div class='add'>+    foo(4)[1]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Method redefinition while the method is on the stack</div><div class='add'>+assert_equal '[777, 1]', %q{</div><div class='add'>+    def foo</div><div class='add'>+        redef()</div><div class='add'>+        777</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def redef</div><div class='add'>+        # Redefine the global foo</div><div class='add'>+        eval("def foo; 1; end", TOPLEVEL_BINDING)</div><div class='add'>+</div><div class='add'>+        # Collect dead code</div><div class='add'>+        GC.stress = true</div><div class='add'>+        GC.start</div><div class='add'>+</div><div class='add'>+        # But we will return to the original foo,</div><div class='add'>+        # which remains alive because it's on the stack</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Must produce [777, 1]</div><div class='add'>+    [foo, foo]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test for GC safety. Don't invalidate dead iseqs.</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  Class.new do</div><div class='add'>+    def foo</div><div class='add'>+      itself</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    new.foo</div><div class='add'>+    new.foo</div><div class='add'>+    new.foo</div><div class='add'>+    new.foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  4.times { GC.start }</div><div class='add'>+  def itself</div><div class='add'>+    self</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test setinstancevariable on extended objects</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  class Extended</div><div class='add'>+    attr_reader :one</div><div class='add'>+</div><div class='add'>+    def write_many</div><div class='add'>+      @a = 1</div><div class='add'>+      @b = 2</div><div class='add'>+      @c = 3</div><div class='add'>+      @d = 4</div><div class='add'>+      @one = 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo = Extended.new</div><div class='add'>+  foo.write_many</div><div class='add'>+  foo.write_many</div><div class='add'>+  foo.write_many</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test setinstancevariable on embedded objects</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  class Embedded</div><div class='add'>+    attr_reader :one</div><div class='add'>+</div><div class='add'>+    def write_one</div><div class='add'>+      @one = 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo = Embedded.new</div><div class='add'>+  foo.write_one</div><div class='add'>+  foo.write_one</div><div class='add'>+  foo.write_one</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test setinstancevariable after extension</div><div class='add'>+assert_equal '[10, 11, 12, 13, 1]', %q{</div><div class='add'>+  class WillExtend</div><div class='add'>+    attr_reader :one</div><div class='add'>+</div><div class='add'>+    def make_extended</div><div class='add'>+      @foo1 = 10</div><div class='add'>+      @foo2 = 11</div><div class='add'>+      @foo3 = 12</div><div class='add'>+      @foo4 = 13</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def write_one</div><div class='add'>+      @one = 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def read_all</div><div class='add'>+      [@foo1, @foo2, @foo3, @foo4, @one]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo = WillExtend.new</div><div class='add'>+  foo.write_one</div><div class='add'>+  foo.write_one</div><div class='add'>+  foo.make_extended</div><div class='add'>+  foo.write_one</div><div class='add'>+  foo.read_all</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test setinstancevariable on frozen object</div><div class='add'>+assert_equal 'object was not modified', %q{</div><div class='add'>+  class WillFreeze</div><div class='add'>+    def write</div><div class='add'>+      @ivar = 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  wf = WillFreeze.new</div><div class='add'>+  wf.write</div><div class='add'>+  wf.write</div><div class='add'>+  wf.freeze</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    wf.write</div><div class='add'>+  rescue FrozenError</div><div class='add'>+    "object was not modified"</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test getinstancevariable and inline caches</div><div class='add'>+assert_equal '6', %q{</div><div class='add'>+  class Foo</div><div class='add'>+    def initialize</div><div class='add'>+      @x1 = 1</div><div class='add'>+      @x2 = 1</div><div class='add'>+      @x2 = 1</div><div class='add'>+      @x3 = 1</div><div class='add'>+      @x4 = 3</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def bar</div><div class='add'>+      x = 1</div><div class='add'>+      @x4 + @x4</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  f = Foo.new</div><div class='add'>+  f.bar</div><div class='add'>+  f.bar</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test that getinstancevariable codegen checks for extended table size</div><div class='add'>+assert_equal "nil\n", %q{</div><div class='add'>+  class A</div><div class='add'>+    def read</div><div class='add'>+      @ins1000</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ins = A.new</div><div class='add'>+  other = A.new</div><div class='add'>+  10.times { other.instance_variable_set(:"@otr#{_1}", 'value') }</div><div class='add'>+  1001.times { ins.instance_variable_set(:"@ins#{_1}", 'value') }</div><div class='add'>+</div><div class='add'>+  ins.read</div><div class='add'>+  ins.read</div><div class='add'>+  ins.read</div><div class='add'>+</div><div class='add'>+  p other.read</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test that opt_aref checks the class of the receiver</div><div class='add'>+assert_equal 'special', %q{</div><div class='add'>+  def foo(array)</div><div class='add'>+    array[30]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo([])</div><div class='add'>+  foo([])</div><div class='add'>+</div><div class='add'>+  special = []</div><div class='add'>+  def special.[](idx)</div><div class='add'>+    'special'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(special)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test that object references in generated code get marked and moved</div><div class='add'>+assert_equal "good", %q{</div><div class='add'>+  def bar</div><div class='add'>+    "good"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def foo</div><div class='add'>+    bar</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    GC.verify_compaction_references(expand_heap: true, toward: :empty)</div><div class='add'>+  rescue NotImplementedError</div><div class='add'>+    # in case compaction isn't supported</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test polymorphic getinstancevariable. T_OBJECT -&gt; T_STRING</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  @hello = @h1 = @h2 = @h3 = @h4 = 'ok'</div><div class='add'>+  str = ""</div><div class='add'>+  str.instance_variable_set(:@hello, 'ok')</div><div class='add'>+</div><div class='add'>+  public def get</div><div class='add'>+    @hello</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  get</div><div class='add'>+  get</div><div class='add'>+  str.get</div><div class='add'>+  str.get</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test polymorphic getinstancevariable, two different classes</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class Embedded</div><div class='add'>+    def initialize</div><div class='add'>+      @ivar = 0</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def get</div><div class='add'>+      @ivar</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Extended &lt; Embedded</div><div class='add'>+    def initialize</div><div class='add'>+      @v1 = @v2 = @v3 = @v4 = @ivar = 'ok'</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  embed = Embedded.new</div><div class='add'>+  extend = Extended.new</div><div class='add'>+</div><div class='add'>+  embed.get</div><div class='add'>+  embed.get</div><div class='add'>+  extend.get</div><div class='add'>+  extend.get</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test megamorphic getinstancevariable</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  parent = Class.new do</div><div class='add'>+    def initialize</div><div class='add'>+      @hello = @h1 = @h2 = @h3 = @h4 = 'ok'</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def get</div><div class='add'>+      @hello</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  subclasses = 300.times.map { Class.new(parent) }</div><div class='add'>+  subclasses.each { _1.new.get }</div><div class='add'>+  parent.new.get</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test polymorphic opt_aref. array -&gt; hash</div><div class='add'>+assert_equal '[42, :key]', %q{</div><div class='add'>+  def index(obj, idx)</div><div class='add'>+    obj[idx]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  index([], 0) # get over compilation threshold</div><div class='add'>+</div><div class='add'>+  [</div><div class='add'>+    index([42], 0),</div><div class='add'>+    index({0=&gt;:key}, 0),</div><div class='add'>+  ]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test polymorphic opt_aref. hash -&gt; array -&gt; custom class</div><div class='add'>+assert_equal '[nil, nil, :custom]', %q{</div><div class='add'>+  def index(obj, idx)</div><div class='add'>+    obj[idx]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  custom = Object.new</div><div class='add'>+  def custom.[](_idx)</div><div class='add'>+    :custom</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  index({}, 0) # get over compilation threshold</div><div class='add'>+</div><div class='add'>+  [</div><div class='add'>+    index({}, 0),</div><div class='add'>+    index([], 0),</div><div class='add'>+    index(custom, 0)</div><div class='add'>+  ]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test polymorphic opt_aref. array -&gt; custom class</div><div class='add'>+assert_equal '[42, :custom]', %q{</div><div class='add'>+  def index(obj, idx)</div><div class='add'>+    obj[idx]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  custom = Object.new</div><div class='add'>+  def custom.[](_idx)</div><div class='add'>+    :custom</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  index([], 0) # get over compilation threshold</div><div class='add'>+</div><div class='add'>+  [</div><div class='add'>+    index([42], 0),</div><div class='add'>+    index(custom, 0)</div><div class='add'>+  ]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test custom hash method with opt_aref</div><div class='add'>+assert_equal '[nil, :ok]', %q{</div><div class='add'>+  def index(obj, idx)</div><div class='add'>+    obj[idx]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  custom = Object.new</div><div class='add'>+  def custom.hash</div><div class='add'>+    42</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  h = {custom =&gt; :ok}</div><div class='add'>+</div><div class='add'>+  [</div><div class='add'>+    index(h, 0),</div><div class='add'>+    index(h, custom)</div><div class='add'>+  ]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test default value block for Hash with opt_aref</div><div class='add'>+assert_equal '[42, :default]', %q{</div><div class='add'>+  def index(obj, idx)</div><div class='add'>+    obj[idx]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  h = Hash.new { :default }</div><div class='add'>+  h[0] = 42</div><div class='add'>+</div><div class='add'>+  [</div><div class='add'>+    index(h, 0),</div><div class='add'>+    index(h, 1)</div><div class='add'>+  ]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# A regression test for making sure cfp-&gt;sp is proper when</div><div class='add'>+# hitting stubs. See :stub-sp-flush:</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class D</div><div class='add'>+    def foo</div><div class='add'>+      Object.new</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  GC.stress = true</div><div class='add'>+  10.times do</div><div class='add'>+    D.new.foo</div><div class='add'>+    #    ^</div><div class='add'>+    #  This hits a stub with sp_offset &gt; 0</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test polymorphic callsite, cfunc -&gt; iseq</div><div class='add'>+assert_equal '[Cfunc, Iseq]', %q{</div><div class='add'>+  public def call_itself</div><div class='add'>+    itself # the polymorphic callsite</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Cfunc; end</div><div class='add'>+</div><div class='add'>+  class Iseq</div><div class='add'>+    def itself</div><div class='add'>+      self</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  call_itself # cross threshold</div><div class='add'>+</div><div class='add'>+  [Cfunc.call_itself, Iseq.call_itself]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test polymorphic callsite, iseq -&gt; cfunc</div><div class='add'>+assert_equal '[Iseq, Cfunc]', %q{</div><div class='add'>+  public def call_itself</div><div class='add'>+    itself # the polymorphic callsite</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Cfunc; end</div><div class='add'>+</div><div class='add'>+  class Iseq</div><div class='add'>+    def itself</div><div class='add'>+      self</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  call_itself # cross threshold</div><div class='add'>+</div><div class='add'>+  [Iseq.call_itself, Cfunc.call_itself]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# attr_reader method</div><div class='add'>+assert_equal '[100, 299]', %q{</div><div class='add'>+  class A</div><div class='add'>+    attr_reader :foo</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      @foo = 100</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Make it extended</div><div class='add'>+    def fill!</div><div class='add'>+      @bar = @jojo = @as = @sdfsdf = @foo = 299</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def bar(ins)</div><div class='add'>+    ins.foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ins = A.new</div><div class='add'>+  oth = A.new</div><div class='add'>+  oth.fill!</div><div class='add'>+</div><div class='add'>+  bar(ins)</div><div class='add'>+  bar(oth)</div><div class='add'>+</div><div class='add'>+  [bar(ins), bar(oth)]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# get ivar on object, then on hash</div><div class='add'>+assert_equal '[42, 100]', %q{</div><div class='add'>+  class Hash</div><div class='add'>+    attr_accessor :foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class A</div><div class='add'>+    attr_reader :foo</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      @foo = 42</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def use(val)</div><div class='add'>+    val.foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+  h = {}</div><div class='add'>+  h.foo = 100</div><div class='add'>+  obj = A.new</div><div class='add'>+</div><div class='add'>+  use(obj)</div><div class='add'>+  [use(obj), use(h)]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# get ivar on String</div><div class='add'>+assert_equal '[nil, nil, 42, 42]', %q{</div><div class='add'>+  # @foo to exercise the getinstancevariable instruction</div><div class='add'>+  public def get_foo</div><div class='add'>+    @foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  get_foo</div><div class='add'>+  get_foo # compile it for the top level object</div><div class='add'>+</div><div class='add'>+  class String</div><div class='add'>+    attr_reader :foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def run</div><div class='add'>+    str = String.new</div><div class='add'>+</div><div class='add'>+    getter = str.foo</div><div class='add'>+    insn = str.get_foo</div><div class='add'>+</div><div class='add'>+    str.instance_variable_set(:@foo, 42)</div><div class='add'>+</div><div class='add'>+    [getter, insn, str.foo, str.get_foo]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  run</div><div class='add'>+  run</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# splatting an empty array on a getter</div><div class='add'>+assert_equal '42', %q{</div><div class='add'>+  @foo = 42</div><div class='add'>+  module Kernel</div><div class='add'>+    attr_reader :foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def run</div><div class='add'>+    foo(*[])</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  run</div><div class='add'>+  run</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# splatting an empty array on a specialized method</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def run</div><div class='add'>+    "ok".to_s(*[])</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  run</div><div class='add'>+  run</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# splatting an single element array on a specialized method</div><div class='add'>+assert_equal '[1]', %q{</div><div class='add'>+  def run</div><div class='add'>+    [].&lt;&lt;(*[1])</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  run</div><div class='add'>+  run</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# specialized method with wrong args</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def run(x)</div><div class='add'>+    "bad".to_s(123) if x</div><div class='add'>+  rescue</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  run(false)</div><div class='add'>+  run(true)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# getinstancevariable on Symbol</div><div class='add'>+assert_equal '[nil, nil]', %q{</div><div class='add'>+  # @foo to exercise the getinstancevariable instruction</div><div class='add'>+  public def get_foo</div><div class='add'>+    @foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  dyn_sym = ("a" + "b").to_sym</div><div class='add'>+  sym = :static</div><div class='add'>+</div><div class='add'>+  # compile get_foo</div><div class='add'>+  dyn_sym.get_foo</div><div class='add'>+  dyn_sym.get_foo</div><div class='add'>+</div><div class='add'>+  [dyn_sym.get_foo, sym.get_foo]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# attr_reader on Symbol</div><div class='add'>+assert_equal '[nil, nil]', %q{</div><div class='add'>+  class Symbol</div><div class='add'>+    attr_reader :foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  public def get_foo</div><div class='add'>+    foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  dyn_sym = ("a" + "b").to_sym</div><div class='add'>+  sym = :static</div><div class='add'>+</div><div class='add'>+  # compile get_foo</div><div class='add'>+  dyn_sym.get_foo</div><div class='add'>+  dyn_sym.get_foo</div><div class='add'>+</div><div class='add'>+  [dyn_sym.get_foo, sym.get_foo]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# passing too few arguments to method with optional parameters</div><div class='add'>+assert_equal 'raised', %q{</div><div class='add'>+  def opt(a, b = 0)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def use</div><div class='add'>+    opt</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  use rescue nil</div><div class='add'>+  begin</div><div class='add'>+    use</div><div class='add'>+    :ng</div><div class='add'>+  rescue ArgumentError</div><div class='add'>+    :raised</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# passing too many arguments to method with optional parameters</div><div class='add'>+assert_equal 'raised', %q{</div><div class='add'>+  def opt(a, b = 0)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def use</div><div class='add'>+    opt(1, 2, 3, 4)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  use rescue nil</div><div class='add'>+  begin</div><div class='add'>+    use</div><div class='add'>+    :ng</div><div class='add'>+  rescue ArgumentError</div><div class='add'>+    :raised</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test calling Ruby method with a block</div><div class='add'>+assert_equal '[1, 2, 42]', %q{</div><div class='add'>+  def thing(a, b)</div><div class='add'>+    [a, b, yield]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def use</div><div class='add'>+    thing(1,2) { 42 }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  use</div><div class='add'>+  use</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test calling C method with a block</div><div class='add'>+assert_equal '[42, 42]', %q{</div><div class='add'>+  def use(array, initial)</div><div class='add'>+    array.reduce(initial) { |a, b| a + b }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  use([], 0)</div><div class='add'>+  [use([2, 2], 38), use([14, 14, 14], 0)]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test calling block param</div><div class='add'>+assert_equal '[1, 2, 42]', %q{</div><div class='add'>+  def foo(&amp;block)</div><div class='add'>+    block.call</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  [foo {1}, foo {2}, foo {42}]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test calling without block param</div><div class='add'>+assert_equal '[1, false, 2, false]', %q{</div><div class='add'>+  def bar</div><div class='add'>+    block_given? &amp;&amp; yield</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def foo(&amp;block)</div><div class='add'>+    bar(&amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  [foo { 1 }, foo, foo { 2 }, foo]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test calling block param failing</div><div class='add'>+assert_equal '42', %q{</div><div class='add'>+  def foo(&amp;block)</div><div class='add'>+    block.call</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo {} # warmup</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    foo</div><div class='add'>+  rescue NoMethodError =&gt; e</div><div class='add'>+    42 if nil == e.receiver</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test calling method taking block param</div><div class='add'>+assert_equal '[Proc, 1, 2, 3, Proc]', %q{</div><div class='add'>+  def three(a, b, c, &amp;block)</div><div class='add'>+    [a, b, c, block.class]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def zero(&amp;block)</div><div class='add'>+    block.class</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def use_three</div><div class='add'>+    three(1, 2, 3) {}</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def use_zero</div><div class='add'>+    zero {}</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  use_three</div><div class='add'>+  use_zero</div><div class='add'>+</div><div class='add'>+  [use_zero] + use_three</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test building empty array</div><div class='add'>+assert_equal '[]', %q{</div><div class='add'>+  def build_arr</div><div class='add'>+    []</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  build_arr</div><div class='add'>+  build_arr</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test building array of one element</div><div class='add'>+assert_equal '[5]', %q{</div><div class='add'>+  def build_arr(val)</div><div class='add'>+    [val]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  build_arr(5)</div><div class='add'>+  build_arr(5)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test building array of several element</div><div class='add'>+assert_equal '[5, 5, 5, 5, 5]', %q{</div><div class='add'>+  def build_arr(val)</div><div class='add'>+    [val, val, val, val, val]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  build_arr(5)</div><div class='add'>+  build_arr(5)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test building empty hash</div><div class='add'>+assert_equal '{}', %q{</div><div class='add'>+  def build_hash</div><div class='add'>+    {}</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  build_hash</div><div class='add'>+  build_hash</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test building hash with values</div><div class='add'>+assert_equal '{:foo=&gt;:bar}', %q{</div><div class='add'>+  def build_hash(val)</div><div class='add'>+    { foo: val }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  build_hash(:bar)</div><div class='add'>+  build_hash(:bar)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test string interpolation with known types</div><div class='add'>+assert_equal 'foobar', %q{</div><div class='add'>+  def make_str</div><div class='add'>+    foo = -"foo"</div><div class='add'>+    bar = -"bar"</div><div class='add'>+    "#{foo}#{bar}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  make_str</div><div class='add'>+  make_str</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test string interpolation with unknown types</div><div class='add'>+assert_equal 'foobar', %q{</div><div class='add'>+  def make_str(foo, bar)</div><div class='add'>+    "#{foo}#{bar}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  make_str("foo", "bar")</div><div class='add'>+  make_str("foo", "bar")</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test string interpolation with known non-strings</div><div class='add'>+assert_equal 'foo123', %q{</div><div class='add'>+  def make_str</div><div class='add'>+    foo = -"foo"</div><div class='add'>+    bar = 123</div><div class='add'>+    "#{foo}#{bar}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  make_str</div><div class='add'>+  make_str</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test string interpolation with unknown non-strings</div><div class='add'>+assert_equal 'foo123', %q{</div><div class='add'>+  def make_str(foo, bar)</div><div class='add'>+    "#{foo}#{bar}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  make_str("foo", 123)</div><div class='add'>+  make_str("foo", 123)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test that invalidation of String#to_s doesn't crash</div><div class='add'>+assert_equal 'meh', %q{</div><div class='add'>+  def inval_method</div><div class='add'>+    "".to_s</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  inval_method</div><div class='add'>+</div><div class='add'>+  class String</div><div class='add'>+    def to_s</div><div class='add'>+      "meh"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  inval_method</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test that overriding to_s on a String subclass works consistently</div><div class='add'>+assert_equal 'meh', %q{</div><div class='add'>+  class MyString &lt; String</div><div class='add'>+    def to_s</div><div class='add'>+      "meh"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def test_to_s(obj)</div><div class='add'>+    obj.to_s</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  OBJ = MyString.new</div><div class='add'>+</div><div class='add'>+  # Should return '' both times</div><div class='add'>+  test_to_s("")</div><div class='add'>+  test_to_s("")</div><div class='add'>+</div><div class='add'>+  # Can return '' if YJIT optimises String#to_s too aggressively</div><div class='add'>+  test_to_s(OBJ)</div><div class='add'>+  test_to_s(OBJ)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test string interpolation with overridden to_s</div><div class='add'>+assert_equal 'foo', %q{</div><div class='add'>+  class String</div><div class='add'>+    def to_s</div><div class='add'>+      "bad"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def make_str(foo)</div><div class='add'>+    "#{foo}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  make_str("foo")</div><div class='add'>+  make_str("foo")</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test that String unary plus returns the same object ID for an unfrozen string.</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  def jittable_method</div><div class='add'>+    str = "bar"</div><div class='add'>+</div><div class='add'>+    old_obj_id = str.object_id</div><div class='add'>+    uplus_str = +str</div><div class='add'>+</div><div class='add'>+    uplus_str.object_id == old_obj_id</div><div class='add'>+  end</div><div class='add'>+  jittable_method</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test that String unary plus returns a different unfrozen string when given a frozen string</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+  # Logic needs to be inside an ISEQ, such as a method, for YJIT to compile it</div><div class='add'>+  def jittable_method</div><div class='add'>+    frozen_str = "foo".freeze</div><div class='add'>+</div><div class='add'>+    old_obj_id = frozen_str.object_id</div><div class='add'>+    uplus_str = +frozen_str</div><div class='add'>+</div><div class='add'>+    uplus_str.object_id == old_obj_id || uplus_str.frozen?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  jittable_method</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# String-subclass objects should behave as expected inside string-interpolation via concatstrings</div><div class='add'>+assert_equal 'monkeys / monkeys, yo!', %q{</div><div class='add'>+  class MyString &lt; String</div><div class='add'>+    # This is a terrible idea in production code, but we'd like YJIT to match CRuby</div><div class='add'>+    def to_s</div><div class='add'>+      super + ", yo!"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def jittable_method</div><div class='add'>+    m = MyString.new('monkeys')</div><div class='add'>+    "#{m} / #{m.to_s}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  jittable_method</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# String-subclass objects should behave as expected for string equality</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+  class MyString &lt; String</div><div class='add'>+    # This is a terrible idea in production code, but we'd like YJIT to match CRuby</div><div class='add'>+    def ==(b)</div><div class='add'>+      "#{self}_" == b</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def jittable_method</div><div class='add'>+    ma = MyString.new("a")</div><div class='add'>+</div><div class='add'>+    # Check equality with string-subclass receiver</div><div class='add'>+    ma == "a" || ma != "a_" ||</div><div class='add'>+      # Check equality with string receiver</div><div class='add'>+      "a_" == ma || "a" != ma ||</div><div class='add'>+      # Check equality between string subclasses</div><div class='add'>+      ma != MyString.new("a_") ||</div><div class='add'>+      # Make sure "string always equals itself" check isn't used with overridden equality</div><div class='add'>+      ma == ma</div><div class='add'>+  end</div><div class='add'>+  jittable_method</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test to_s duplicates a string subclass object but not a string</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+  class MyString &lt; String; end</div><div class='add'>+</div><div class='add'>+  def jittable_method</div><div class='add'>+    a = "a"</div><div class='add'>+    ma = MyString.new("a")</div><div class='add'>+</div><div class='add'>+    a.object_id != a.to_s.object_id ||</div><div class='add'>+      ma.object_id == ma.to_s.object_id</div><div class='add'>+  end</div><div class='add'>+  jittable_method</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test freeze on string subclass</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  class MyString &lt; String; end</div><div class='add'>+</div><div class='add'>+  def jittable_method</div><div class='add'>+    fma = MyString.new("a").freeze</div><div class='add'>+</div><div class='add'>+    # Freezing a string subclass should not duplicate it</div><div class='add'>+    fma.object_id == fma.freeze.object_id</div><div class='add'>+  end</div><div class='add'>+  jittable_method</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test unary minus on string subclass</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  class MyString &lt; String; end</div><div class='add'>+</div><div class='add'>+  def jittable_method</div><div class='add'>+    ma = MyString.new("a")</div><div class='add'>+    fma = MyString.new("a").freeze</div><div class='add'>+</div><div class='add'>+    # Unary minus on frozen string subclass should not duplicate it</div><div class='add'>+    fma.object_id == (-fma).object_id &amp;&amp;</div><div class='add'>+      # Unary minus on unfrozen string subclass should duplicate it</div><div class='add'>+      ma.object_id != (-ma).object_id</div><div class='add'>+  end</div><div class='add'>+  jittable_method</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test unary plus on string subclass</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  class MyString &lt; String; end</div><div class='add'>+</div><div class='add'>+  def jittable_method</div><div class='add'>+    fma = MyString.new("a").freeze</div><div class='add'>+</div><div class='add'>+    # Unary plus on frozen string subclass should not duplicate it</div><div class='add'>+    fma.object_id != (+fma).object_id</div><div class='add'>+  end</div><div class='add'>+  jittable_method</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test &lt;&lt; operator on string subclass</div><div class='add'>+assert_equal 'abab', %q{</div><div class='add'>+  class MyString &lt; String; end</div><div class='add'>+</div><div class='add'>+  def jittable_method</div><div class='add'>+    a = -"a"</div><div class='add'>+    mb = MyString.new("b")</div><div class='add'>+</div><div class='add'>+    buf = String.new</div><div class='add'>+    mbuf = MyString.new</div><div class='add'>+</div><div class='add'>+    buf &lt;&lt; a &lt;&lt; mb</div><div class='add'>+    mbuf &lt;&lt; a &lt;&lt; mb</div><div class='add'>+</div><div class='add'>+    buf + mbuf</div><div class='add'>+  end</div><div class='add'>+  jittable_method</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test invokebuiltin as used in struct assignment</div><div class='add'>+assert_equal '123', %q{</div><div class='add'>+  def foo(obj)</div><div class='add'>+    obj.foo = 123</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  struct = Struct.new(:foo)</div><div class='add'>+  obj = struct.new</div><div class='add'>+  foo(obj)</div><div class='add'>+  foo(obj)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test invokebuiltin_delegate as used inside Dir.open</div><div class='add'>+assert_equal '.', %q{</div><div class='add'>+  def foo(path)</div><div class='add'>+    Dir.open(path).path</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(".")</div><div class='add'>+  foo(".")</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test invokebuiltin_delegate_leave in method called from jit</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  def foo(obj)</div><div class='add'>+    obj.clone</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(Object.new)</div><div class='add'>+  foo(Object.new)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test invokebuiltin_delegate_leave in method called from cfunc</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  def foo(obj)</div><div class='add'>+    [obj].map(&amp;:clone)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(Object.new)</div><div class='add'>+  foo(Object.new)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# defining TrueClass#!</div><div class='add'>+assert_equal '[false, false, :ok]', %q{</div><div class='add'>+  def foo(obj)</div><div class='add'>+    !obj</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  x = foo(true)</div><div class='add'>+  y = foo(true)</div><div class='add'>+</div><div class='add'>+  class TrueClass</div><div class='add'>+    def !</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  z = foo(true)</div><div class='add'>+</div><div class='add'>+  [x, y, z]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# defining FalseClass#!</div><div class='add'>+assert_equal '[true, true, :ok]', %q{</div><div class='add'>+  def foo(obj)</div><div class='add'>+    !obj</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  x = foo(false)</div><div class='add'>+  y = foo(false)</div><div class='add'>+</div><div class='add'>+  class FalseClass</div><div class='add'>+    def !</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  z = foo(false)</div><div class='add'>+</div><div class='add'>+  [x, y, z]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# defining NilClass#!</div><div class='add'>+assert_equal '[true, true, :ok]', %q{</div><div class='add'>+  def foo(obj)</div><div class='add'>+    !obj</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  x = foo(nil)</div><div class='add'>+  y = foo(nil)</div><div class='add'>+</div><div class='add'>+  class NilClass</div><div class='add'>+    def !</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  z = foo(nil)</div><div class='add'>+</div><div class='add'>+  [x, y, z]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# polymorphic opt_not</div><div class='add'>+assert_equal '[true, true, false, false, false, false, false]', %q{</div><div class='add'>+  def foo(obj)</div><div class='add'>+    !obj</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(0)</div><div class='add'>+  [foo(nil), foo(false), foo(true), foo([]), foo(0), foo(4.2), foo(:sym)]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# getlocal with 2 levels</div><div class='add'>+assert_equal '7', %q{</div><div class='add'>+  def foo(foo, bar)</div><div class='add'>+    while foo &gt; 0</div><div class='add'>+      while bar &gt; 0</div><div class='add'>+        return foo + bar</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(5,2)</div><div class='add'>+  foo(5,2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test pattern matching</div><div class='add'>+assert_equal '[:ok, :ok]', %q{</div><div class='add'>+  class C</div><div class='add'>+    def destructure_keys</div><div class='add'>+      {}</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  pattern_match = -&gt;(i) do</div><div class='add'>+    case i</div><div class='add'>+    in a: 0</div><div class='add'>+      :ng</div><div class='add'>+    else</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  [{}, C.new].map(&amp;pattern_match)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Call to object with singleton</div><div class='add'>+assert_equal '123', %q{</div><div class='add'>+  obj = Object.new</div><div class='add'>+  def obj.foo</div><div class='add'>+    123</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def foo(obj)</div><div class='add'>+    obj.foo()</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(obj)</div><div class='add'>+  foo(obj)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Call method on an object that has a non-material</div><div class='add'>+# singleton class.</div><div class='add'>+# TODO: assert that it takes no side exits? This</div><div class='add'>+# test case revealed that we were taking exits unnecessarily.</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  def foo(obj)</div><div class='add'>+    obj.itself</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  o = Object.new.singleton_class</div><div class='add'>+  foo(o)</div><div class='add'>+  foo(o)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Call to singleton class</div><div class='add'>+assert_equal '123', %q{</div><div class='add'>+  class Foo</div><div class='add'>+    def self.foo</div><div class='add'>+      123</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def foo(obj)</div><div class='add'>+    obj.foo()</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(Foo)</div><div class='add'>+  foo(Foo)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# invokesuper edge case</div><div class='add'>+assert_equal '[:A, [:A, :B]]', %q{</div><div class='add'>+  class B</div><div class='add'>+    def foo = :B</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class A &lt; B</div><div class='add'>+    def foo = [:A, super()]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  A.new.foo</div><div class='add'>+  A.new.foo # compile A#foo</div><div class='add'>+</div><div class='add'>+  class C &lt; A</div><div class='add'>+    define_method(:bar, A.instance_method(:foo))</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  C.new.bar</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Same invokesuper bytecode, multiple destinations</div><div class='add'>+assert_equal '[:Forward, :SecondTerminus]', %q{</div><div class='add'>+  module Terminus</div><div class='add'>+    def foo = :Terminus</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module SecondTerminus</div><div class='add'>+    def foo = :SecondTerminus</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+  module Forward</div><div class='add'>+    def foo = [:Forward, super]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class B</div><div class='add'>+    include SecondTerminus</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class A &lt; B</div><div class='add'>+    include Terminus</div><div class='add'>+    include Forward</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  A.new.foo</div><div class='add'>+  A.new.foo # compile</div><div class='add'>+</div><div class='add'>+  class B</div><div class='add'>+    include Forward</div><div class='add'>+    alias bar foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # A.ancestors.take(5) == [A, Forward, Terminus, B, Forward, SecondTerminus]</div><div class='add'>+</div><div class='add'>+  A.new.bar</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# invokesuper calling into itself</div><div class='add'>+assert_equal '[:B, [:B, :m]]', %q{</div><div class='add'>+  module M</div><div class='add'>+    def foo = :m</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class B</div><div class='add'>+    include M</div><div class='add'>+    def foo = [:B, super]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ins = B.new</div><div class='add'>+  ins.singleton_class # materialize the singleton class</div><div class='add'>+  ins.foo</div><div class='add'>+  ins.foo # compile</div><div class='add'>+</div><div class='add'>+  ins.singleton_class.define_method(:bar, B.instance_method(:foo))</div><div class='add'>+  ins.bar</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# invokesuper changed ancestor</div><div class='add'>+assert_equal '[:A, [:M, :B]]', %q{</div><div class='add'>+  class B</div><div class='add'>+    def foo</div><div class='add'>+      :B</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class A &lt; B</div><div class='add'>+    def foo</div><div class='add'>+      [:A, super]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module M</div><div class='add'>+    def foo</div><div class='add'>+      [:M, super]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ins = A.new</div><div class='add'>+  ins.foo</div><div class='add'>+  ins.foo</div><div class='add'>+  A.include(M)</div><div class='add'>+  ins.foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# invokesuper changed ancestor via prepend</div><div class='add'>+assert_equal '[:A, [:M, :B]]', %q{</div><div class='add'>+  class B</div><div class='add'>+    def foo</div><div class='add'>+      :B</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class A &lt; B</div><div class='add'>+    def foo</div><div class='add'>+      [:A, super]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module M</div><div class='add'>+    def foo</div><div class='add'>+      [:M, super]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ins = A.new</div><div class='add'>+  ins.foo</div><div class='add'>+  ins.foo</div><div class='add'>+  B.prepend(M)</div><div class='add'>+  ins.foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# invokesuper replaced method</div><div class='add'>+assert_equal '[:A, :Btwo]', %q{</div><div class='add'>+  class B</div><div class='add'>+    def foo</div><div class='add'>+      :B</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class A &lt; B</div><div class='add'>+    def foo</div><div class='add'>+      [:A, super]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ins = A.new</div><div class='add'>+  ins.foo</div><div class='add'>+  ins.foo</div><div class='add'>+  class B</div><div class='add'>+    def foo</div><div class='add'>+      :Btwo</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  ins.foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Call to fixnum</div><div class='add'>+assert_equal '[true, false]', %q{</div><div class='add'>+  def is_odd(obj)</div><div class='add'>+    obj.odd?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  is_odd(1)</div><div class='add'>+  is_odd(1)</div><div class='add'>+</div><div class='add'>+  [is_odd(123), is_odd(456)]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Call to bignum</div><div class='add'>+assert_equal '[true, false]', %q{</div><div class='add'>+  def is_odd(obj)</div><div class='add'>+    obj.odd?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  bignum = 99999999999999999999</div><div class='add'>+  is_odd(bignum)</div><div class='add'>+  is_odd(bignum)</div><div class='add'>+</div><div class='add'>+  [is_odd(bignum), is_odd(bignum+1)]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Call to fixnum and bignum</div><div class='add'>+assert_equal '[true, false, true, false]', %q{</div><div class='add'>+  def is_odd(obj)</div><div class='add'>+    obj.odd?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  bignum = 99999999999999999999</div><div class='add'>+  is_odd(bignum)</div><div class='add'>+  is_odd(bignum)</div><div class='add'>+  is_odd(123)</div><div class='add'>+  is_odd(123)</div><div class='add'>+</div><div class='add'>+  [is_odd(123), is_odd(456), is_odd(bignum), is_odd(bignum+1)]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Call to static and dynamic symbol</div><div class='add'>+assert_equal 'bar', %q{</div><div class='add'>+  def to_string(obj)</div><div class='add'>+    obj.to_s</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  to_string(:foo)</div><div class='add'>+  to_string(:foo)</div><div class='add'>+  to_string((-"bar").to_sym)</div><div class='add'>+  to_string((-"bar").to_sym)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Call to flonum and heap float</div><div class='add'>+assert_equal '[nil, nil, nil, 1]', %q{</div><div class='add'>+  def is_inf(obj)</div><div class='add'>+    obj.infinite?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  is_inf(0.0)</div><div class='add'>+  is_inf(0.0)</div><div class='add'>+  is_inf(1e256)</div><div class='add'>+  is_inf(1e256)</div><div class='add'>+</div><div class='add'>+  [</div><div class='add'>+    is_inf(0.0),</div><div class='add'>+    is_inf(1.0),</div><div class='add'>+    is_inf(1e256),</div><div class='add'>+    is_inf(1.0/0.0)</div><div class='add'>+  ]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[1, 2, 3, 4, 5]', %q{</div><div class='add'>+  def splatarray</div><div class='add'>+    [*(1..5)]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  splatarray</div><div class='add'>+  splatarray</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[1, 1, 2, 1, 2, 3]', %q{</div><div class='add'>+  def expandarray</div><div class='add'>+    arr = [1, 2, 3]</div><div class='add'>+</div><div class='add'>+    a, = arr</div><div class='add'>+    b, c, = arr</div><div class='add'>+    d, e, f = arr</div><div class='add'>+</div><div class='add'>+    [a, b, c, d, e, f]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  expandarray</div><div class='add'>+  expandarray</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[1, 1]', %q{</div><div class='add'>+  def expandarray_useless_splat</div><div class='add'>+    arr = (1..10).to_a</div><div class='add'>+</div><div class='add'>+    a, * = arr</div><div class='add'>+    b, (*) = arr</div><div class='add'>+</div><div class='add'>+    [a, b]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  expandarray_useless_splat</div><div class='add'>+  expandarray_useless_splat</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[:not_heap, nil, nil]', %q{</div><div class='add'>+  def expandarray_not_heap</div><div class='add'>+    a, b, c = :not_heap</div><div class='add'>+    [a, b, c]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  expandarray_not_heap</div><div class='add'>+  expandarray_not_heap</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[:not_array, nil, nil]', %q{</div><div class='add'>+  def expandarray_not_array(obj)</div><div class='add'>+    a, b, c = obj</div><div class='add'>+    [a, b, c]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  obj = Object.new</div><div class='add'>+  def obj.to_ary</div><div class='add'>+    [:not_array]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  expandarray_not_array(obj)</div><div class='add'>+  expandarray_not_array(obj)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[1, 2, nil]', %q{</div><div class='add'>+  def expandarray_rhs_too_small</div><div class='add'>+    a, b, c = [1, 2]</div><div class='add'>+    [a, b, c]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  expandarray_rhs_too_small</div><div class='add'>+  expandarray_rhs_too_small</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[1, [2]]', %q{</div><div class='add'>+  def expandarray_splat</div><div class='add'>+    a, *b = [1, 2]</div><div class='add'>+    [a, b]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  expandarray_splat</div><div class='add'>+  expandarray_splat</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  def expandarray_postarg</div><div class='add'>+    *, a = [1, 2]</div><div class='add'>+    a</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  expandarray_postarg</div><div class='add'>+  expandarray_postarg</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '10', %q{</div><div class='add'>+  obj = Object.new</div><div class='add'>+  val = nil</div><div class='add'>+  obj.define_singleton_method(:to_ary) { val = 10; [] }</div><div class='add'>+</div><div class='add'>+  def expandarray_always_call_to_ary(object)</div><div class='add'>+    * = object</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  expandarray_always_call_to_ary(obj)</div><div class='add'>+  expandarray_always_call_to_ary(obj)</div><div class='add'>+</div><div class='add'>+  val</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# regression test of local type change</div><div class='add'>+assert_equal '1.1', %q{</div><div class='add'>+def bar(baz, quux)</div><div class='add'>+  if baz.integer?</div><div class='add'>+    baz, quux = quux, nil</div><div class='add'>+  end</div><div class='add'>+  baz.to_s</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+bar(123, 1.1)</div><div class='add'>+bar(123, 1.1)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test enabling a line TracePoint in a C method call</div><div class='add'>+assert_equal '[[:line, true]]', %q{</div><div class='add'>+  events = []</div><div class='add'>+  events.instance_variable_set(</div><div class='add'>+    :@tp,</div><div class='add'>+    TracePoint.new(:line) { |tp| events &lt;&lt; [tp.event, tp.lineno] if tp.path == __FILE__ }</div><div class='add'>+  )</div><div class='add'>+  def events.to_str</div><div class='add'>+    @tp.enable; ''</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Stay in generated code while enabling tracing</div><div class='add'>+  def events.compiled(obj)</div><div class='add'>+    String(obj)</div><div class='add'>+    @tp.disable; __LINE__</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  line = events.compiled(events)</div><div class='add'>+  events[0][-1] = (events[0][-1] == line)</div><div class='add'>+</div><div class='add'>+  events</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test enabling a c_return TracePoint in a C method call</div><div class='add'>+assert_equal '[[:c_return, :String, :string_alias, "events_to_str"]]', %q{</div><div class='add'>+  events = []</div><div class='add'>+  events.instance_variable_set(:@tp, TracePoint.new(:c_return) { |tp| events &lt;&lt; [tp.event, tp.method_id, tp.callee_id, tp.return_value] })</div><div class='add'>+  def events.to_str</div><div class='add'>+    @tp.enable; 'events_to_str'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Stay in generated code while enabling tracing</div><div class='add'>+  alias string_alias String</div><div class='add'>+  def events.compiled(obj)</div><div class='add'>+    string_alias(obj)</div><div class='add'>+    @tp.disable</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  events.compiled(events)</div><div class='add'>+</div><div class='add'>+  events</div><div class='add'>+} unless defined?(RubyVM::MJIT) &amp;&amp; RubyVM::MJIT.enabled? # MJIT calls extra Ruby methods</div><div class='add'>+</div><div class='add'>+# test enabling a TracePoint that targets a particular line in a C method call</div><div class='add'>+assert_equal '[true]', %q{</div><div class='add'>+  events = []</div><div class='add'>+  events.instance_variable_set(:@tp, TracePoint.new(:line) { |tp| events &lt;&lt; tp.lineno })</div><div class='add'>+  def events.to_str</div><div class='add'>+    @tp.enable(target: method(:compiled))</div><div class='add'>+    ''</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Stay in generated code while enabling tracing</div><div class='add'>+  def events.compiled(obj)</div><div class='add'>+    String(obj)</div><div class='add'>+    __LINE__</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  line = events.compiled(events)</div><div class='add'>+  events[0] = (events[0] == line)</div><div class='add'>+</div><div class='add'>+  events</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test enabling tracing in the middle of splatarray</div><div class='add'>+assert_equal '[true]', %q{</div><div class='add'>+  events = []</div><div class='add'>+  obj = Object.new</div><div class='add'>+  obj.instance_variable_set(:@tp, TracePoint.new(:line) { |tp| events &lt;&lt; tp.lineno })</div><div class='add'>+  def obj.to_a</div><div class='add'>+    @tp.enable(target: method(:compiled))</div><div class='add'>+    []</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Enable tracing in the middle of the splatarray instruction</div><div class='add'>+  def obj.compiled(obj)</div><div class='add'>+    * = *obj</div><div class='add'>+    __LINE__</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  obj.compiled([])</div><div class='add'>+  line = obj.compiled(obj)</div><div class='add'>+  events[0] = (events[0] == line)</div><div class='add'>+</div><div class='add'>+  events</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test enabling tracing in the middle of opt_aref. Different since the codegen</div><div class='add'>+# for it ends in a jump.</div><div class='add'>+assert_equal '[true]', %q{</div><div class='add'>+  def lookup(hash, tp)</div><div class='add'>+    hash[42]</div><div class='add'>+    tp.disable; __LINE__</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  lines = []</div><div class='add'>+  tp = TracePoint.new(:line) { lines &lt;&lt; _1.lineno if _1.path == __FILE__ }</div><div class='add'>+</div><div class='add'>+  lookup(:foo, tp)</div><div class='add'>+  lookup({}, tp)</div><div class='add'>+</div><div class='add'>+  enable_tracing_on_missing = Hash.new { tp.enable }</div><div class='add'>+</div><div class='add'>+  expected_line = lookup(enable_tracing_on_missing, tp)</div><div class='add'>+</div><div class='add'>+  lines[0] = true if lines[0] == expected_line</div><div class='add'>+</div><div class='add'>+  lines</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test enabling c_call tracing before compiling</div><div class='add'>+assert_equal '[[:c_call, :itself]]', %q{</div><div class='add'>+  def shouldnt_compile</div><div class='add'>+    itself</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  events = []</div><div class='add'>+  tp = TracePoint.new(:c_call) { |tp| events &lt;&lt; [tp.event, tp.method_id] }</div><div class='add'>+</div><div class='add'>+  # assume first call compiles</div><div class='add'>+  tp.enable { shouldnt_compile }</div><div class='add'>+</div><div class='add'>+  events</div><div class='add'>+} unless defined?(RubyVM::MJIT) &amp;&amp; RubyVM::MJIT.enabled? # MJIT calls extra Ruby methods</div><div class='add'>+</div><div class='add'>+# test enabling c_return tracing before compiling</div><div class='add'>+assert_equal '[[:c_return, :itself, main]]', %q{</div><div class='add'>+  def shouldnt_compile</div><div class='add'>+    itself</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  events = []</div><div class='add'>+  tp = TracePoint.new(:c_return) { |tp| events &lt;&lt; [tp.event, tp.method_id, tp.return_value] }</div><div class='add'>+</div><div class='add'>+  # assume first call compiles</div><div class='add'>+  tp.enable { shouldnt_compile }</div><div class='add'>+</div><div class='add'>+  events</div><div class='add'>+} unless defined?(RubyVM::MJIT) &amp;&amp; RubyVM::MJIT.enabled? # MJIT calls extra Ruby methods</div><div class='add'>+</div><div class='add'>+# test c_call invalidation</div><div class='add'>+assert_equal '[[:c_call, :itself]]', %q{</div><div class='add'>+  # enable the event once to make sure invalidation</div><div class='add'>+  # happens the second time we enable it</div><div class='add'>+  TracePoint.new(:c_call) {}.enable{}</div><div class='add'>+</div><div class='add'>+  def compiled</div><div class='add'>+    itself</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # assume first call compiles</div><div class='add'>+  compiled</div><div class='add'>+</div><div class='add'>+  events = []</div><div class='add'>+  tp = TracePoint.new(:c_call) { |tp| events &lt;&lt; [tp.event, tp.method_id] }</div><div class='add'>+  tp.enable { compiled }</div><div class='add'>+</div><div class='add'>+  events</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test enabling tracing for a suspended fiber</div><div class='add'>+assert_equal '[[:return, 42]]', %q{</div><div class='add'>+  def traced_method</div><div class='add'>+    Fiber.yield</div><div class='add'>+    42</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  events = []</div><div class='add'>+  tp = TracePoint.new(:return) { events &lt;&lt; [_1.event, _1.return_value] }</div><div class='add'>+  # assume first call compiles</div><div class='add'>+  fiber = Fiber.new { traced_method }</div><div class='add'>+  fiber.resume</div><div class='add'>+  tp.enable(target: method(:traced_method))</div><div class='add'>+  fiber.resume</div><div class='add'>+</div><div class='add'>+  events</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test compiling on non-tracing ractor then running on a tracing one</div><div class='add'>+assert_equal '[:itself]', %q{</div><div class='add'>+  def traced_method</div><div class='add'>+    itself</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  tracing_ractor = Ractor.new do</div><div class='add'>+    # 1: start tracing</div><div class='add'>+    events = []</div><div class='add'>+    tp = TracePoint.new(:c_call) { events &lt;&lt; _1.method_id }</div><div class='add'>+    tp.enable</div><div class='add'>+    Ractor.yield(nil)</div><div class='add'>+</div><div class='add'>+    # 3: run compiled method on tracing ractor</div><div class='add'>+    Ractor.yield(nil)</div><div class='add'>+    traced_method</div><div class='add'>+</div><div class='add'>+    events</div><div class='add'>+  ensure</div><div class='add'>+    tp&amp;.disable</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  tracing_ractor.take</div><div class='add'>+</div><div class='add'>+  # 2: compile on non tracing ractor</div><div class='add'>+  traced_method</div><div class='add'>+</div><div class='add'>+  tracing_ractor.take</div><div class='add'>+  tracing_ractor.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Try to hit a lazy branch stub while another ractor enables tracing</div><div class='add'>+assert_equal '42', %q{</div><div class='add'>+  def compiled(arg)</div><div class='add'>+    if arg</div><div class='add'>+      arg + 1</div><div class='add'>+    else</div><div class='add'>+      itself</div><div class='add'>+      itself</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ractor = Ractor.new do</div><div class='add'>+    compiled(false)</div><div class='add'>+    Ractor.yield(nil)</div><div class='add'>+    compiled(41)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  tp = TracePoint.new(:line) { itself }</div><div class='add'>+  ractor.take</div><div class='add'>+  tp.enable</div><div class='add'>+</div><div class='add'>+  ractor.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test equality with changing types</div><div class='add'>+assert_equal '[true, false, false, false]', %q{</div><div class='add'>+  def eq(a, b)</div><div class='add'>+    a == b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  [</div><div class='add'>+    eq("foo", "foo"),</div><div class='add'>+    eq("foo", "bar"),</div><div class='add'>+    eq(:foo, "bar"),</div><div class='add'>+    eq("foo", :bar)</div><div class='add'>+  ]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Redefined String eq</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  class String</div><div class='add'>+    def ==(other)</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def eq(a, b)</div><div class='add'>+    a == b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  eq("foo", "bar")</div><div class='add'>+  eq("foo", "bar")</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Redefined Integer eq</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  class Integer</div><div class='add'>+    def ==(other)</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def eq(a, b)</div><div class='add'>+    a == b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  eq(1, 2)</div><div class='add'>+  eq(1, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# aset on array with invalid key</div><div class='add'>+assert_normal_exit %q{</div><div class='add'>+  def foo(arr)</div><div class='add'>+    arr[:foo] = 123</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo([1]) rescue nil</div><div class='add'>+  foo([1]) rescue nil</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test ractor exception on when setting ivar</div><div class='add'>+assert_equal '42',  %q{</div><div class='add'>+  class A</div><div class='add'>+    def self.foo</div><div class='add'>+      _foo = 1</div><div class='add'>+      _bar = 2</div><div class='add'>+      begin</div><div class='add'>+        @bar = _foo + _bar</div><div class='add'>+      rescue Ractor::IsolationError</div><div class='add'>+        42</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  A.foo</div><div class='add'>+  A.foo</div><div class='add'>+</div><div class='add'>+  Ractor.new { A.foo }.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '["plain", "special", "sub", "plain"]', %q{</div><div class='add'>+  def foo(arg)</div><div class='add'>+    arg.to_s</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Sub &lt; String</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  special = String.new("special")</div><div class='add'>+  special.singleton_class</div><div class='add'>+</div><div class='add'>+  [</div><div class='add'>+    foo("plain"),</div><div class='add'>+    foo(special),</div><div class='add'>+    foo(Sub.new("sub")),</div><div class='add'>+    foo("plain")</div><div class='add'>+  ]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '["sub", "sub"]', %q{</div><div class='add'>+  def foo(arg)</div><div class='add'>+    arg.to_s</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Sub &lt; String</div><div class='add'>+    def to_s</div><div class='add'>+      super</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  sub = Sub.new("sub")</div><div class='add'>+</div><div class='add'>+  [foo(sub), foo(sub)]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[1]', %q{</div><div class='add'>+  def kwargs(value:)</div><div class='add'>+    value</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { kwargs(value: 1) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[:ok]', %q{</div><div class='add'>+  def kwargs(value:)</div><div class='add'>+    value</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { kwargs() rescue :ok }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[:ok]', %q{</div><div class='add'>+  def kwargs(a:, b: nil)</div><div class='add'>+    value</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { kwargs(b: 123) rescue :ok }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[[1, 2]]', %q{</div><div class='add'>+  def kwargs(left:, right:)</div><div class='add'>+    [left, right]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.flat_map do</div><div class='add'>+    [</div><div class='add'>+      kwargs(left: 1, right: 2),</div><div class='add'>+      kwargs(right: 2, left: 1)</div><div class='add'>+    ]</div><div class='add'>+  end.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[[1, 2]]', %q{</div><div class='add'>+  def kwargs(lead, kwarg:)</div><div class='add'>+    [lead, kwarg]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { kwargs(1, kwarg: 2) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# optional and keyword args</div><div class='add'>+assert_equal '[[1, 2, 3]]', %q{</div><div class='add'>+  def opt_and_kwargs(a, b=2, c: nil)</div><div class='add'>+    [a,b,c]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { opt_and_kwargs(1, c: 3) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[[1, 2, 3]]', %q{</div><div class='add'>+  def opt_and_kwargs(a, b=nil, c: nil)</div><div class='add'>+    [a,b,c]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { opt_and_kwargs(1, 2, c: 3) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Bug #18453</div><div class='add'>+assert_equal '[[1, nil, 2]]', %q{</div><div class='add'>+  def opt_and_kwargs(a = {}, b: nil, c: nil)</div><div class='add'>+    [a, b, c]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { opt_and_kwargs(1, c: 2) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[[{}, nil, 1]]', %q{</div><div class='add'>+  def opt_and_kwargs(a = {}, b: nil, c: nil)</div><div class='add'>+    [a, b, c]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { opt_and_kwargs(c: 1) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# leading and keyword arguments are swapped into the right order</div><div class='add'>+assert_equal '[[1, 2, 3, 4, 5, 6]]', %q{</div><div class='add'>+  def kwargs(five, six, a:, b:, c:, d:)</div><div class='add'>+    [a, b, c, d, five, six]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.flat_map do</div><div class='add'>+    [</div><div class='add'>+      kwargs(5, 6, a: 1, b: 2, c: 3, d: 4),</div><div class='add'>+      kwargs(5, 6, a: 1, b: 2, d: 4, c: 3),</div><div class='add'>+      kwargs(5, 6, a: 1, c: 3, b: 2, d: 4),</div><div class='add'>+      kwargs(5, 6, a: 1, c: 3, d: 4, b: 2),</div><div class='add'>+      kwargs(5, 6, a: 1, d: 4, b: 2, c: 3),</div><div class='add'>+      kwargs(5, 6, a: 1, d: 4, c: 3, b: 2),</div><div class='add'>+      kwargs(5, 6, b: 2, a: 1, c: 3, d: 4),</div><div class='add'>+      kwargs(5, 6, b: 2, a: 1, d: 4, c: 3),</div><div class='add'>+      kwargs(5, 6, b: 2, c: 3, a: 1, d: 4),</div><div class='add'>+      kwargs(5, 6, b: 2, c: 3, d: 4, a: 1),</div><div class='add'>+      kwargs(5, 6, b: 2, d: 4, a: 1, c: 3),</div><div class='add'>+      kwargs(5, 6, b: 2, d: 4, c: 3, a: 1),</div><div class='add'>+      kwargs(5, 6, c: 3, a: 1, b: 2, d: 4),</div><div class='add'>+      kwargs(5, 6, c: 3, a: 1, d: 4, b: 2),</div><div class='add'>+      kwargs(5, 6, c: 3, b: 2, a: 1, d: 4),</div><div class='add'>+      kwargs(5, 6, c: 3, b: 2, d: 4, a: 1),</div><div class='add'>+      kwargs(5, 6, c: 3, d: 4, a: 1, b: 2),</div><div class='add'>+      kwargs(5, 6, c: 3, d: 4, b: 2, a: 1),</div><div class='add'>+      kwargs(5, 6, d: 4, a: 1, b: 2, c: 3),</div><div class='add'>+      kwargs(5, 6, d: 4, a: 1, c: 3, b: 2),</div><div class='add'>+      kwargs(5, 6, d: 4, b: 2, a: 1, c: 3),</div><div class='add'>+      kwargs(5, 6, d: 4, b: 2, c: 3, a: 1),</div><div class='add'>+      kwargs(5, 6, d: 4, c: 3, a: 1, b: 2),</div><div class='add'>+      kwargs(5, 6, d: 4, c: 3, b: 2, a: 1)</div><div class='add'>+    ]</div><div class='add'>+  end.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# implicit hashes get skipped and don't break compilation</div><div class='add'>+assert_equal '[[:key]]', %q{</div><div class='add'>+  def implicit(hash)</div><div class='add'>+    hash.keys</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { implicit(key: :value) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# default values on keywords don't mess up argument order</div><div class='add'>+assert_equal '[2]', %q{</div><div class='add'>+  def default_value</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def default_expression(value: default_value)</div><div class='add'>+    value</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { default_expression(value: 2) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# constant default values on keywords</div><div class='add'>+assert_equal '[3]', %q{</div><div class='add'>+  def default_expression(value: 3)</div><div class='add'>+    value</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { default_expression }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# non-constant default values on keywords</div><div class='add'>+assert_equal '[3]', %q{</div><div class='add'>+  def default_value</div><div class='add'>+    3</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def default_expression(value: default_value)</div><div class='add'>+    value</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { default_expression }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# reordered optional kwargs</div><div class='add'>+assert_equal '[[100, 1]]', %q{</div><div class='add'>+  def foo(capacity: 100, max: nil)</div><div class='add'>+    [capacity, max]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { foo(max: 1) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# invalid lead param</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def bar(baz: 2)</div><div class='add'>+    baz</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def foo</div><div class='add'>+    bar(1, baz: 123)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    foo</div><div class='add'>+    foo</div><div class='add'>+  rescue ArgumentError =&gt; e</div><div class='add'>+    print "ok"</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# reordered required kwargs</div><div class='add'>+assert_equal '[[1, 2, 3, 4]]', %q{</div><div class='add'>+  def foo(default1: 1, required1:, default2: 3, required2:)</div><div class='add'>+    [default1, required1, default2, required2]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { foo(required1: 2, required2: 4) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# reordered default expression kwargs</div><div class='add'>+assert_equal '[[:one, :two, 3]]', %q{</div><div class='add'>+  def foo(arg1: (1+0), arg2: (2+0), arg3: (3+0))</div><div class='add'>+    [arg1, arg2, arg3]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { foo(arg2: :two, arg1: :one) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# complex kwargs</div><div class='add'>+assert_equal '[[1, 2, 3, 4]]', %q{</div><div class='add'>+  def foo(required:, specified: 999, simple_default: 3, complex_default: "4".to_i)</div><div class='add'>+    [required, specified, simple_default, complex_default]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { foo(specified: 2, required: 1) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# cfunc kwargs</div><div class='add'>+assert_equal '{:foo=&gt;123}', %q{</div><div class='add'>+  def foo(bar)</div><div class='add'>+    bar.store(:value, foo: 123)</div><div class='add'>+    bar[:value]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo({})</div><div class='add'>+  foo({})</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# cfunc kwargs</div><div class='add'>+assert_equal '{:foo=&gt;123}', %q{</div><div class='add'>+  def foo(bar)</div><div class='add'>+    bar.replace(foo: 123)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo({})</div><div class='add'>+  foo({})</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# cfunc kwargs</div><div class='add'>+assert_equal '{:foo=&gt;123, :bar=&gt;456}', %q{</div><div class='add'>+  def foo(bar)</div><div class='add'>+    bar.replace(foo: 123, bar: 456)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo({})</div><div class='add'>+  foo({})</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# variadic cfunc kwargs</div><div class='add'>+assert_equal '{:foo=&gt;123}', %q{</div><div class='add'>+  def foo(bar)</div><div class='add'>+    bar.merge(foo: 123)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo({})</div><div class='add'>+  foo({})</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# optimized cfunc kwargs</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+  def foo</div><div class='add'>+    :foo.eql?(foo: :foo)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# attr_reader on frozen object</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+  class Foo</div><div class='add'>+    attr_reader :exception</div><div class='add'>+</div><div class='add'>+    def failed?</div><div class='add'>+      !exception.nil?</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo = Foo.new.freeze</div><div class='add'>+  foo.failed?</div><div class='add'>+  foo.failed?</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# regression test for doing kwarg shuffle before checking for interrupts</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def new_media_drop(attributes:, product_drop:, context:, sources:)</div><div class='add'>+    nil.nomethod rescue nil # force YJIT to bail to side exit</div><div class='add'>+</div><div class='add'>+    [attributes, product_drop, context, sources]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def load_medias(product_drop: nil, raw_medias:, context:)</div><div class='add'>+    raw_medias.map do |raw_media|</div><div class='add'>+      case new_media_drop(context: context, attributes: raw_media, product_drop: product_drop, sources: [])</div><div class='add'>+      in [Hash, ProductDrop, Context, Array]</div><div class='add'>+      else</div><div class='add'>+        raise "bad shuffle"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Context; end</div><div class='add'>+</div><div class='add'>+  class ProductDrop</div><div class='add'>+    attr_reader :title</div><div class='add'>+    def initialize(title)</div><div class='add'>+      @title = title</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Make a thread so we have thread switching interrupts</div><div class='add'>+  th = Thread.new do</div><div class='add'>+    while true; end</div><div class='add'>+  end</div><div class='add'>+  1_000.times do |i|</div><div class='add'>+    load_medias(product_drop: ProductDrop.new("foo"), raw_medias: [{}, {}], context: Context.new)</div><div class='add'>+  end</div><div class='add'>+  th.kill.join</div><div class='add'>+</div><div class='add'>+  :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# regression test for tracing attr_accessor methods.</div><div class='add'>+assert_equal "true", %q{</div><div class='add'>+    c = Class.new do</div><div class='add'>+      attr_accessor :x</div><div class='add'>+      alias y x</div><div class='add'>+      alias y= x=</div><div class='add'>+    end</div><div class='add'>+    obj = c.new</div><div class='add'>+</div><div class='add'>+    ar_meth = obj.method(:x)</div><div class='add'>+    aw_meth = obj.method(:x=)</div><div class='add'>+    aar_meth = obj.method(:y)</div><div class='add'>+    aaw_meth = obj.method(:y=)</div><div class='add'>+    events = []</div><div class='add'>+    trace = TracePoint.new(:c_call, :c_return){|tp|</div><div class='add'>+      next if tp.path != __FILE__</div><div class='add'>+      next if tp.method_id == :call</div><div class='add'>+      case tp.event</div><div class='add'>+      when :c_call</div><div class='add'>+        events &lt;&lt; [tp.event, tp.method_id, tp.callee_id]</div><div class='add'>+      when :c_return</div><div class='add'>+        events &lt;&lt; [tp.event, tp.method_id, tp.callee_id, tp.return_value]</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+    test_proc = proc do</div><div class='add'>+      obj.x = 1</div><div class='add'>+      obj.x</div><div class='add'>+      obj.y = 2</div><div class='add'>+      obj.y</div><div class='add'>+      aw_meth.call(1)</div><div class='add'>+      ar_meth.call</div><div class='add'>+      aaw_meth.call(2)</div><div class='add'>+      aar_meth.call</div><div class='add'>+    end</div><div class='add'>+    test_proc.call # populate call caches</div><div class='add'>+    trace.enable(&amp;test_proc)</div><div class='add'>+    expected = [</div><div class='add'>+      [:c_call, :x=, :x=],</div><div class='add'>+      [:c_return, :x=, :x=, 1],</div><div class='add'>+      [:c_call, :x, :x],</div><div class='add'>+      [:c_return, :x, :x, 1],</div><div class='add'>+      [:c_call, :x=, :y=],</div><div class='add'>+      [:c_return, :x=, :y=, 2],</div><div class='add'>+      [:c_call, :x, :y],</div><div class='add'>+      [:c_return, :x, :y, 2],</div><div class='add'>+    ] * 2</div><div class='add'>+</div><div class='add'>+    expected == events</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# duphash</div><div class='add'>+assert_equal '{:foo=&gt;123}', %q{</div><div class='add'>+  def foo</div><div class='add'>+    {foo: 123}</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# newhash</div><div class='add'>+assert_equal '{:foo=&gt;2}', %q{</div><div class='add'>+  def foo</div><div class='add'>+    {foo: 1+1}</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# block invalidation edge case</div><div class='add'>+assert_equal 'undef', %q{</div><div class='add'>+  class A</div><div class='add'>+    def foo(arg)</div><div class='add'>+      arg.times { A.remove_method(:bar) }</div><div class='add'>+      self</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def bar</div><div class='add'>+      4</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def use(arg)</div><div class='add'>+      # two consecutive sends. When bar is removed, the return address</div><div class='add'>+      # for calling it is already on foo's control frame</div><div class='add'>+      foo(arg).bar</div><div class='add'>+    rescue NoMethodError</div><div class='add'>+      :undef</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  A.new.use 0</div><div class='add'>+  A.new.use 0</div><div class='add'>+  A.new.use 1</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# block invalidation edge case</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class A</div><div class='add'>+    Good = :ng</div><div class='add'>+    def foo(arg)</div><div class='add'>+      arg.times { A.const_set(:Good, :ok) }</div><div class='add'>+      self</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def id(arg)</div><div class='add'>+      arg</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def use(arg)</div><div class='add'>+      # send followed by an opt_getinlinecache.</div><div class='add'>+      # The return address remains on the control frame</div><div class='add'>+      # when opt_getinlinecache is invalidated.</div><div class='add'>+      foo(arg).id(Good)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  A.new.use 0</div><div class='add'>+  A.new.use 0</div><div class='add'>+  A.new.use 1</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  # test hitting a branch stub when out of memory</div><div class='add'>+  def nimai(jita)</div><div class='add'>+    if jita</div><div class='add'>+      :ng</div><div class='add'>+    else</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  nimai(true)</div><div class='add'>+  nimai(true)</div><div class='add'>+</div><div class='add'>+  RubyVM::YJIT.simulate_oom! if defined?(RubyVM::YJIT)</div><div class='add'>+</div><div class='add'>+  nimai(false)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'new', %q{</div><div class='add'>+  # test block invalidation while out of memory</div><div class='add'>+  def foo</div><div class='add'>+    :old</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def test</div><div class='add'>+    foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def bar</div><div class='add'>+    :bar</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+  test</div><div class='add'>+  test</div><div class='add'>+</div><div class='add'>+  RubyVM::YJIT.simulate_oom! if defined?(RubyVM::YJIT)</div><div class='add'>+</div><div class='add'>+  # Old simulat_omm! leaves one byte of space and this fills it up</div><div class='add'>+  bar</div><div class='add'>+  bar</div><div class='add'>+</div><div class='add'>+  def foo</div><div class='add'>+    :new</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  test</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  # Try to compile new method while OOM</div><div class='add'>+  def foo</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  RubyVM::YJIT.simulate_oom! if defined?(RubyVM::YJIT)</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# struct aref embedded</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  def foo(s)</div><div class='add'>+    s.foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  S = Struct.new(:foo)</div><div class='add'>+  foo(S.new(1))</div><div class='add'>+  foo(S.new(2))</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# struct aref non-embedded</div><div class='add'>+assert_equal '4', %q{</div><div class='add'>+  def foo(s)</div><div class='add'>+    s.d</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  S = Struct.new(:a, :b, :c, :d, :e)</div><div class='add'>+  foo(S.new(1,2,3,4,5))</div><div class='add'>+  foo(S.new(1,2,3,4,5))</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# struct aset embedded</div><div class='add'>+assert_equal '123', %q{</div><div class='add'>+  def foo(s)</div><div class='add'>+    s.foo = 123</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  s = Struct.new(:foo).new</div><div class='add'>+  foo(s)</div><div class='add'>+  s = Struct.new(:foo).new</div><div class='add'>+  foo(s)</div><div class='add'>+  s.foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# struct aset non-embedded</div><div class='add'>+assert_equal '[1, 2, 3, 4, 5]', %q{</div><div class='add'>+  def foo(s)</div><div class='add'>+    s.a = 1</div><div class='add'>+    s.b = 2</div><div class='add'>+    s.c = 3</div><div class='add'>+    s.d = 4</div><div class='add'>+    s.e = 5</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  S = Struct.new(:a, :b, :c, :d, :e)</div><div class='add'>+  s = S.new</div><div class='add'>+  foo(s)</div><div class='add'>+  s = S.new</div><div class='add'>+  foo(s)</div><div class='add'>+  [s.a, s.b, s.c, s.d, s.e]</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# struct aref too many args</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def foo(s)</div><div class='add'>+    s.foo(:bad)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  s = Struct.new(:foo).new</div><div class='add'>+  foo(s) rescue :ok</div><div class='add'>+  foo(s) rescue :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# struct aset too many args</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def foo(s)</div><div class='add'>+    s.set_foo(123, :bad)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  s = Struct.new(:foo) do</div><div class='add'>+    alias :set_foo :foo=</div><div class='add'>+  end</div><div class='add'>+  foo(s) rescue :ok</div><div class='add'>+  foo(s) rescue :ok</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# File.join is a cfunc accepting variable arguments as a Ruby array (argc = -2)</div><div class='add'>+assert_equal 'foo/bar', %q{</div><div class='add'>+  def foo</div><div class='add'>+    File.join("foo", "bar")</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# File.join is a cfunc accepting variable arguments as a Ruby array (argc = -2)</div><div class='add'>+assert_equal '', %q{</div><div class='add'>+  def foo</div><div class='add'>+    File.join()</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Make sure we're correctly reading RStruct's as.ary union for embedded RStructs</div><div class='add'>+assert_equal '3,12', %q{</div><div class='add'>+  pt_struct = Struct.new(:x, :y)</div><div class='add'>+  p = pt_struct.new(3, 12)</div><div class='add'>+  def pt_inspect(pt)</div><div class='add'>+    "#{pt.x},#{pt.y}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Make sure pt_inspect is JITted</div><div class='add'>+  10.times { pt_inspect(p) }</div><div class='add'>+</div><div class='add'>+  # Make sure it's returning '3,12' instead of e.g. '3,false'</div><div class='add'>+  pt_inspect(p)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Regression test for deadlock between branch_stub_hit and ractor_receive_if</div><div class='add'>+assert_equal '10', %q{</div><div class='add'>+  r = Ractor.new Ractor.current do |main|</div><div class='add'>+    main &lt;&lt; 1</div><div class='add'>+    main &lt;&lt; 2</div><div class='add'>+    main &lt;&lt; 3</div><div class='add'>+    main &lt;&lt; 4</div><div class='add'>+    main &lt;&lt; 5</div><div class='add'>+    main &lt;&lt; 6</div><div class='add'>+    main &lt;&lt; 7</div><div class='add'>+    main &lt;&lt; 8</div><div class='add'>+    main &lt;&lt; 9</div><div class='add'>+    main &lt;&lt; 10</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  a = []</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 10}</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 9}</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 8}</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 7}</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 6}</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 5}</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 4}</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 3}</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 2}</div><div class='add'>+  a &lt;&lt; Ractor.receive_if{|msg| msg == 1}</div><div class='add'>+</div><div class='add'>+  a.length</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# checktype</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+    def function()</div><div class='add'>+        [1, 2] in [Integer, String]</div><div class='add'>+    end</div><div class='add'>+    function()</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# opt_send_without_block (VM_METHOD_TYPE_ATTRSET)</div><div class='add'>+assert_equal 'foo', %q{</div><div class='add'>+    class Foo</div><div class='add'>+      attr_writer :foo</div><div class='add'>+</div><div class='add'>+      def foo()</div><div class='add'>+        self.foo = "foo"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    foo = Foo.new</div><div class='add'>+    foo.foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# anytostring, intern</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+    def foo()</div><div class='add'>+      :"#{true}"</div><div class='add'>+    end</div><div class='add'>+    foo()</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# toregexp, objtostring</div><div class='add'>+assert_equal '/true/', %q{</div><div class='add'>+    def foo()</div><div class='add'>+      /#{true}/</div><div class='add'>+    end</div><div class='add'>+    foo().inspect</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# concatstrings, objtostring</div><div class='add'>+assert_equal '9001', %q{</div><div class='add'>+    def foo()</div><div class='add'>+      "#{9001}"</div><div class='add'>+    end</div><div class='add'>+    foo()</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# opt_send_without_block (VM_METHOD_TYPE_CFUNC)</div><div class='add'>+assert_equal 'nil', %q{</div><div class='add'>+    def foo</div><div class='add'>+      nil.inspect # argc: 0</div><div class='add'>+    end</div><div class='add'>+    foo</div><div class='add'>+}</div><div class='add'>+assert_equal '4', %q{</div><div class='add'>+    def foo</div><div class='add'>+      2.pow(2) # argc: 1</div><div class='add'>+    end</div><div class='add'>+    foo</div><div class='add'>+}</div><div class='add'>+assert_equal 'aba', %q{</div><div class='add'>+    def foo</div><div class='add'>+      "abc".tr("c", "a") # argc: 2</div><div class='add'>+    end</div><div class='add'>+    foo</div><div class='add'>+}</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+    def foo</div><div class='add'>+      respond_to?(:inspect) # argc: -1</div><div class='add'>+    end</div><div class='add'>+    foo</div><div class='add'>+}</div><div class='add'>+assert_equal '["a", "b"]', %q{</div><div class='add'>+    def foo</div><div class='add'>+      "a\nb".lines(chomp: true) # kwargs</div><div class='add'>+    end</div><div class='add'>+    foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# invokebuiltin</div><div class='add'>+assert_equal '123', %q{</div><div class='add'>+  def foo(obj)</div><div class='add'>+    obj.foo = 123</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  struct = Struct.new(:foo)</div><div class='add'>+  obj = struct.new</div><div class='add'>+  foo(obj)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# invokebuiltin_delegate</div><div class='add'>+assert_equal '.', %q{</div><div class='add'>+  def foo(path)</div><div class='add'>+    Dir.open(path).path</div><div class='add'>+  end</div><div class='add'>+  foo(".")</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# opt_invokebuiltin_delegate_leave</div><div class='add'>+assert_equal '[0]', %q{"\x00".unpack("c")}</div><div class='add'>+</div><div class='add'>+# opt_send_without_block (VM_METHOD_TYPE_ISEQ)</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  def foo = 1</div><div class='add'>+  def bar = foo</div><div class='add'>+  bar</div><div class='add'>+}</div><div class='add'>+assert_equal '[1, 2, 3]', %q{</div><div class='add'>+  def foo(a, b) = [1, a, b]</div><div class='add'>+  def bar = foo(2, 3)</div><div class='add'>+  bar</div><div class='add'>+}</div><div class='add'>+assert_equal '[1, 2, 3, 4, 5, 6]', %q{</div><div class='add'>+  def foo(a, b, c:, d:, e: 0, f: 6) = [a, b, c, d, e, f]</div><div class='add'>+  def bar = foo(1, 2, c: 3, d: 4, e: 5)</div><div class='add'>+  bar</div><div class='add'>+}</div><div class='add'>+assert_equal '[1, 2, 3, 4]', %q{</div><div class='add'>+  def foo(a, b = 2) = [a, b]</div><div class='add'>+  def bar = foo(1) + foo(3, 4)</div><div class='add'>+  bar</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  def foo(a) = a</div><div class='add'>+  def bar = foo(1) { 2 }</div><div class='add'>+  bar</div><div class='add'>+}</div><div class='add'>+assert_equal '[1, 2]', %q{</div><div class='add'>+  def foo(a, &amp;block) = [a, block.call]</div><div class='add'>+  def bar = foo(1) { 2 }</div><div class='add'>+  bar</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# opt_send_without_block (VM_METHOD_TYPE_IVAR)</div><div class='add'>+assert_equal 'foo', %q{</div><div class='add'>+  class Foo</div><div class='add'>+    attr_reader :foo</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      @foo = "foo"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  Foo.new.foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# opt_send_without_block (VM_METHOD_TYPE_OPTIMIZED)</div><div class='add'>+assert_equal 'foo', %q{</div><div class='add'>+  Foo = Struct.new(:bar)</div><div class='add'>+  Foo.new("bar").bar = "foo"</div><div class='add'>+}</div><div class='add'>+assert_equal 'foo', %q{</div><div class='add'>+  Foo = Struct.new(:bar)</div><div class='add'>+  Foo.new("foo").bar</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# getblockparamproxy</div><div class='add'>+assert_equal 'foo', %q{</div><div class='add'>+  def foo(&amp;block)</div><div class='add'>+    block.call</div><div class='add'>+  end</div><div class='add'>+  foo { "foo" }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# getblockparam</div><div class='add'>+assert_equal 'foo', %q{</div><div class='add'>+  def foo(&amp;block)</div><div class='add'>+    block</div><div class='add'>+  end</div><div class='add'>+  foo { "foo" }.call</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[1, 2]', %q{</div><div class='add'>+  def foo</div><div class='add'>+    x = [2]</div><div class='add'>+    [1, *x]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# respond_to? with changing symbol</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+  def foo(name)</div><div class='add'>+    :sym.respond_to?(name)</div><div class='add'>+  end</div><div class='add'>+  foo(:to_s)</div><div class='add'>+  foo(:to_s)</div><div class='add'>+  foo(:not_exist)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# respond_to? with method being defined</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  def foo</div><div class='add'>+    :sym.respond_to?(:not_yet_defined)</div><div class='add'>+  end</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+  module Kernel</div><div class='add'>+    def not_yet_defined = true</div><div class='add'>+  end</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# respond_to? with undef method</div><div class='add'>+assert_equal 'false', %q{</div><div class='add'>+  module Kernel</div><div class='add'>+    def to_be_removed = true</div><div class='add'>+  end</div><div class='add'>+  def foo</div><div class='add'>+    :sym.respond_to?(:to_be_removed)</div><div class='add'>+  end</div><div class='add'>+  foo</div><div class='add'>+  foo</div><div class='add'>+  class Object</div><div class='add'>+    undef_method :to_be_removed</div><div class='add'>+  end</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# respond_to? with respond_to_missing?</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  class Foo</div><div class='add'>+  end</div><div class='add'>+  def foo(x)</div><div class='add'>+    x.respond_to?(:bar)</div><div class='add'>+  end</div><div class='add'>+  foo(Foo.new)</div><div class='add'>+  foo(Foo.new)</div><div class='add'>+  class Foo</div><div class='add'>+    def respond_to_missing?(*) = true</div><div class='add'>+  end</div><div class='add'>+  foo(Foo.new)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# bmethod</div><div class='add'>+assert_equal '[1, 2, 3]', %q{</div><div class='add'>+  one = 1</div><div class='add'>+  define_method(:foo) do</div><div class='add'>+    one</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  3.times.map { |i| foo + i }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# return inside bmethod</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  define_method(:foo) do</div><div class='add'>+    1.tap { return :ok }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# bmethod optional and keywords</div><div class='add'>+assert_equal '[[1, nil, 2]]', %q{</div><div class='add'>+  define_method(:opt_and_kwargs) do |a = {}, b: nil, c: nil|</div><div class='add'>+    [a, b, c]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  5.times.map { opt_and_kwargs(1, c: 2) }.uniq</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# bmethod with forwarded block</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  define_method(:foo) do |&amp;block|</div><div class='add'>+    block.call</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def bar(&amp;block)</div><div class='add'>+    foo(&amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  bar { 1 }</div><div class='add'>+  bar { 2 }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# bmethod with forwarded block and arguments</div><div class='add'>+assert_equal '5', %q{</div><div class='add'>+  define_method(:foo) do |n, &amp;block|</div><div class='add'>+    n + block.call</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def bar(n, &amp;block)</div><div class='add'>+    foo(n, &amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  bar(0) { 1 }</div><div class='add'>+  bar(3) { 2 }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# bmethod with forwarded unwanted block</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  one = 1</div><div class='add'>+  define_method(:foo) do</div><div class='add'>+    one</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def bar(&amp;block)</div><div class='add'>+    foo(&amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  bar { }</div><div class='add'>+  bar { }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test for return stub lifetime issue</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  def foo(n)</div><div class='add'>+    if n == 2</div><div class='add'>+      return 1.times { Object.define_method(:foo) {} }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    foo(n + 1)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(1)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# case-when with redefined ===</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  class Symbol</div><div class='add'>+    def ===(a)</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def cw(arg)</div><div class='add'>+    case arg</div><div class='add'>+    when :b</div><div class='add'>+      :ok</div><div class='add'>+    when 4</div><div class='add'>+      :ng</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  cw(4)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_normal_exit %{</div><div class='add'>+  class Bug20997</div><div class='add'>+    def foo(&amp;) = self.class.name(&amp;)</div><div class='add'>+</div><div class='add'>+    new.foo</div><div class='add'>+  end</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_yjit_30k_ifelse.rb b/bootstraptest/test_yjit_30k_ifelse.rb<br/>new file mode 100644<br/>index 0000000000..c3afa95e4d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_yjit_30k_ifelse.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_yjit_30k_ifelse.rb</a></div><div class='hunk'>@@ -0,0 +1,241023 @@</div><div class='add'>+# This is a torture test for the JIT.</div><div class='add'>+# There are 30K tiny methods with if-else statements in a 30-deep call hierarchy.</div><div class='add'>+assert_equal '100000', %q{</div><div class='add'>+</div><div class='add'>+def fun_l0_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l1_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l1_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l2_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l2_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l3_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l3_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l4_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l4_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l5_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l5_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l6_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l6_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l7_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l7_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l8_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l8_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l9_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l9_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l10_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l10_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l11_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l11_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l12_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l12_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l13_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l13_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l14_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l14_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l15_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l15_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l16_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l16_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l17_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l17_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l18_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l18_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l19_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l19_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l20_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l20_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n639(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l21_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l21_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n961(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l22_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l22_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n539(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l23_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l23_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n386(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n788(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n962(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n358(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n29(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n719(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n892(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n895(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n161(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n704(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n263(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n521(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n661(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n419(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l24_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l24_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n666(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n172(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n549(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n76(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n292(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n961(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n846(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n134(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n798(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n723(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n320(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n760(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n702(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n437(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n325(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n718(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n137(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n602(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n358(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n253(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n116(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n881(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n153(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n3(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n52(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n788(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n949(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n703(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l25_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l25_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n190(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n17(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n296(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n293(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n618(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n125(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n500(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n916(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n629(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n615(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n180(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n562(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n264(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n483(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n316(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n371(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n406(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n313(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n145(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n375(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n698(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n204(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n523(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n181(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n915(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n801(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n949(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n188(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n114(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n10(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n359(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n639(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n221(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n601(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n266(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n523(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n761(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n128(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n268(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n183(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n452(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n179(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n693(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n881(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n417(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n439(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n450(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n924(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n461(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n376(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n993(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n690(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n990(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n577(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n589(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n244(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n652(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n457(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n945(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l26_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l26_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n429(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n728(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n228(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n954(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n757(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n333(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n195(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n103(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n596(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n810(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n450(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n555(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n5(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n353(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n169(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n963(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n187(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n399(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n278(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n951(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n132(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n543(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n93(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n779(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n352(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n426(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n290(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n111(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n152(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n896(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n572(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n71(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n926(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n553(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n119(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n297(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n678(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n822(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n569(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n785(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n600(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n932(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n732(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n319(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n458(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n107(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n69(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n600(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n363(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n935(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n193(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n774(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n385(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n615(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n92(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n570(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n147(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n847(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n674(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n958(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n434(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n526(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n60(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n50(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n640(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n943(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n396(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n965(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n807(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n423(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n408(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n790(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n224(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n510(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n785(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n404(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n551(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n439(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n219(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n312(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n929(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n503(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n597(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n289(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n840(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n185(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n513(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n259(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n527(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n369(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n53(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n235(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n211(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n605(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n850(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n800(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n708(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n731(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n561(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n640(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n989(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n409(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n831(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n199(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n978(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n936(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n240(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n599(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n490(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n257(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n877(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n335(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n467(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n326(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n146(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n395(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n878(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n432(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n367(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n945(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n991(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n801(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n486(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n699(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n536(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n388(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n464(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n63(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n291(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n635(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n969(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n839(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n398(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n230(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n153(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n745(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n699(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n148(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n868(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n451(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n480(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n46(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n707(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n955(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n948(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n303(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n501(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n154(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n380(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n200(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n73(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n526(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n108(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n540(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n342(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n979(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n565(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n70(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n524(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n550(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n610(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n460(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n562(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n109(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n722(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n873(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n390(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n653(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l27_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l27_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n819(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n505(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n987(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n630(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n897(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n285(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n548(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n26(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n737(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n937(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n891(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n482(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n568(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n8(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n794(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n504(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n758(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n617(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n308(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n398(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n428(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n360(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n80(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n313(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n475(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n27(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n91(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n516(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n814(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n782(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n755(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n465(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n167(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n56(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n768(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n903(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n998(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n158(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n334(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n812(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n323(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n948(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n520(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n264(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n495(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n60(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n415(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n34(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n38(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n454(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n531(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n314(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n458(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n110(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n364(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n167(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n442(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n310(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n555(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n14(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n655(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n619(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n54(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n770(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n771(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n98(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n236(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n999(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n532(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n715(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n273(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n272(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n547(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n392(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n485(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n563(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n915(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n446(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n14(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n900(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n544(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n939(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n428(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n876(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n512(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n753(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n649(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n436(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n834(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n668(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n909(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n806(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n284(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n644(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n126(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n869(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n776(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n607(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n738(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n45(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n24(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n459(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n729(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n509(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n516(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n448(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n378(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n9(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n969(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n44(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n817(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n222(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n697(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n902(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n827(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n238(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n197(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n441(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n63(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n366(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n146(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n648(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n164(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n304(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n575(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n405(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n583(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n511(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n898(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n23(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n246(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n468(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n596(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n299(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n912(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n721(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n16(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n906(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n478(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n49(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n175(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n406(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n368(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n624(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n100(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n418(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n204(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n541(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n247(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n24(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n312(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n213(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n354(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n233(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n781(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n152(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n525(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n369(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n79(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n565(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n806(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n173(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n239(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n390(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n84(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n74(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n224(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n734(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n825(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n235(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n212(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n6(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n220(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n383(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n338(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n218(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n545(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n479(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n869(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n982(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n412(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n515(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n382(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n872(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n595(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n651(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n678(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n172(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n58(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n367(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n925(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n469(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n64(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n18(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n376(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n32(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n500(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n729(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n538(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n983(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n796(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n946(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n646(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n2(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n427(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n877(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n90(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n134(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n591(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n186(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n716(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n168(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n335(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n681(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n52(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n823(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n170(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n777(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n552(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n623(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n478(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n345(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n795(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n689(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n314(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n886(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n386(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n938(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n141(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n470(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n793(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n315(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n647(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n854(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n89(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n884(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n638(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n246(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n927(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n842(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n116(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n451(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n163(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n57(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n394(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n888(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n229(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n311(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n734(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n109(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n559(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n41(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n135(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n825(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n870(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n136(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n303(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n937(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n992(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n248(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n773(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n754(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n860(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n658(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n165(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n558(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n750(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n567(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n940(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n8(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n675(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n845(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n856(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n226(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n202(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n143(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n703(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n706(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n228(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n791(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n492(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n329(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n286(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n773(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n544(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n960(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n931(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n341(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n614(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n260(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n741(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n414(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n277(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n441(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n54(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n803(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n447(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n589(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n635(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n17(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n465(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n157(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n33(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n306(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n590(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n361(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n117(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n934(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n122(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n977(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n396(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n614(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n15(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n585(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n74(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n610(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n835(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n833(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n879(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n929(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n46(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n285(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n124(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n861(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n283(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n797(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n22(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n370(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n947(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n200(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n444(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n663(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n654(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n698(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n158(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n86(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n21(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n886(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n140(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n905(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n679(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n695(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n86(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n854(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n617(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n686(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n685(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n125(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n252(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n752(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n278(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n31(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n647(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n244(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n16(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n906(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n727(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n343(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n797(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n679(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n89(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n911(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n503(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n611(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n446(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n849(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n957(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n893(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n263(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n366(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n781(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n301(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n142(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n302(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n726(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n859(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n245(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n417(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n171(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n243(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n319(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n592(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n113(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n701(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n0(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n208(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n756(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n786(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n69(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n48(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n826(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n907(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n136(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n870(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n184(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n397(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n372(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n206(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n748(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n737(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n353(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n518(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n99(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n479(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n256(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n284(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n878(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n749(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n394(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n302(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n765(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n736(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n61(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n873(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n920(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n730(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n293(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n195(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n756(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n700(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n320(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n268(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n525(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n571(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n5(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n379(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n665(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n126(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n554(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n868(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n627(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n796(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n213(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n282(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n283(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n802(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n922(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n275(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n174(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n741(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l28_n536(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l28_n903(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n585(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n182(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n7(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n958(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n29(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n840(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n384(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n241(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n494(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n473(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n851(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n608(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n772(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n127(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n667(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n39(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n94(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n307(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n599(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n986(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n232(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n658(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n744(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n714(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n317(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n48(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n80(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n718(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n196(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n713(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n546(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n875(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n456(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n424(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n498(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n950(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n792(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n862(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n824(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n163(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n330(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n267(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n103(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n645(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n641(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n233(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n742(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n192(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n286(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n715(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n202(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n784(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n531(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n758(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n102(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n546(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n964(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n31(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n223(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n880(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n181(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n105(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n419(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n690(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n68(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n47(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n324(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n965(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n584(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n890(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n85(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n495(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n688(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n20(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n363(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n215(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n530(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n820(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n593(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n443(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n571(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n871(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n139(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n836(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n554(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n288(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n751(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n673(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n688(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n379(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n848(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n584(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n77(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n351(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n102(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n189(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n469(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n464(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n411(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n837(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n511(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n896(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n551(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n761(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n794(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n953(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n582(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n710(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n541(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n325(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n318(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n751(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n547(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n84(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n705(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n864(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n255(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n142(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n735(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n637(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n637(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n975(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n560(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n344(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n38(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n434(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n677(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n534(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n550(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n757(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n724(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n669(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n882(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n164(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n919(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n395(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n535(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n666(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n935(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n865(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n692(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n874(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n488(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n297(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n468(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n991(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n402(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n638(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n251(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n225(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n466(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n643(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n974(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n321(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n649(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n919(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n634(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n967(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n798(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n28(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n616(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n18(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n216(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n193(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n160(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n770(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n529(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n545(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n843(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n88(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n605(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n930(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n602(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n804(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n894(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n182(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n106(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n149(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n2(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n275(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n677(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n533(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n889(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n225(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n901(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n190(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n254(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n708(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n942(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n269(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n422(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n114(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n566(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n799(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n121(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n556(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n779(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n214(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n10(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n672(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n578(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n277(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n248(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n339(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n62(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n606(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n762(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n1(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n405(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n867(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n120(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n789(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n633(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n487(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n671(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n196(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n943(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n768(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n12(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n459(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n901(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n726(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n327(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n343(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n764(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n780(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n117(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n309(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n933(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n808(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n425(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n800(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n198(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n452(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n214(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n848(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n187(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n476(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n859(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n356(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n578(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n496(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n184(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n855(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n41(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n853(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n766(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n983(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n683(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n192(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n30(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n828(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n697(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n642(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n133(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n739(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n893(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n178(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n96(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n864(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n220(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n970(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n778(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n66(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n942(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n744(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n463(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n964(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n65(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n775(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n299(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n792(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n909(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n740(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n110(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n648(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n279(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n957(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n508(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n613(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n862(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n81(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n96(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n908(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n210(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n524(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n381(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n309(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n787(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n652(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n491(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n365(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n604(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n586(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n981(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n843(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n805(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n650(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n829(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n665(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n108(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n838(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n292(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n892(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n664(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n422(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n59(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n97(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n852(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n928(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n743(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n206(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n98(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n659(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n350(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n604(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n273(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n831(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n377(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n926(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n783(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n646(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n968(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n587(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n813(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n130(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n112(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n349(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n612(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n282(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n357(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n438(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n539(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n321(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n443(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n985(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n75(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n515(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n222(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n37(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n173(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n992(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n721(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n653(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n67(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n710(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n448(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n170(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n433(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n970(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n995(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n78(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n791(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n592(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n988(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n359(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n743(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n373(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n49(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n591(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n271(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n924(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n262(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n217(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n603(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n498(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n913(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n87(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n300(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n538(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n812(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n179(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n241(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n707(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n129(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n410(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n203(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n865(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n778(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n620(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n879(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n594(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n382(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n357(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n660(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n645(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n0(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n250(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n700(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n83(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n332(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n237(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n573(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n766(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n131(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n696(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n361(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n941(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n403(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n982(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n51(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n694(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n777(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n118(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n641(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n904(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n950(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n711(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n287(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n447(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n253(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n484(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n899(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n385(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n910(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n505(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n162(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n26(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n576(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n783(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n580(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n415(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n279(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n442(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n632(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n793(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n199(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n590(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n664(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n272(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n207(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n73(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n598(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n674(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n305(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n995(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n890(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n767(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n769(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n185(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n55(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n988(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n719(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n355(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n348(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n973(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n466(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n661(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n373(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n425(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n669(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n990(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n908(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n416(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n795(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n7(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n660(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n938(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n685(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n631(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n21(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n888(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n819(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n809(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n265(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n99(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n484(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n985(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n922(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n475(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n176(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n736(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n817(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n155(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n45(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n438(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n410(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n122(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n407(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n852(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n724(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n291(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n151(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n944(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n663(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n954(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n939(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n927(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n19(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n564(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n105(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n165(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n101(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n453(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n20(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n329(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n392(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n709(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n838(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n364(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n824(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n989(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n952(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n91(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n489(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n128(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n722(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n429(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n412(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n884(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n993(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n683(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n643(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n750(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n388(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n252(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n426(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n51(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n720(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n633(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n160(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n507(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n630(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n53(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n189(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n191(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n767(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n265(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n130(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n910(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n144(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n155(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n977(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n372(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n728(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n360(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n154(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n93(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n310(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n197(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n519(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n257(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n201(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n746(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n530(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n209(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n858(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n746(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n374(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n923(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n188(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n866(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n959(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n493(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n568(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n747(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n972(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n507(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n765(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n430(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n941(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n384(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n681(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n976(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n326(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n481(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n882(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n156(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n968(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n251(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n749(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n100(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n932(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n499(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n455(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n486(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n855(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n576(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n430(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n307(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n528(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n642(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n552(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n421(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n238(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n748(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n381(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n75(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n159(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n923(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n657(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n984(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n150(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n887(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n574(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n95(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n258(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n123(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n501(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n350(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n328(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n533(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n956(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n632(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n243(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n897(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n894(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n867(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n68(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n266(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n409(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n561(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n485(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n780(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n925(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n566(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n288(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n166(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n702(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n82(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n431(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n260(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n232(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n504(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n25(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n844(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n997(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n821(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n732(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n301(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n971(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n522(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n104(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n529(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n662(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n521(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n944(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n231(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n290(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n261(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n490(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n621(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n131(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n34(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n895(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n713(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n686(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n256(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n815(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n739(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n857(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n863(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n81(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n755(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n841(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n676(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n883(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n11(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n281(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n138(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n118(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n44(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n249(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n717(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n88(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n311(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n337(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n67(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n12(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n581(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n618(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n904(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n987(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n219(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n609(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n433(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n344(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n59(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n506(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n387(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n138(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n597(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n622(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n276(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n454(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n930(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n586(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n3(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n508(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n489(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n549(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n57(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n32(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n487(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n567(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n733(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n502(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n139(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n304(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n871(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n413(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n810(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n274(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n706(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n564(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n857(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n534(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n853(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n436(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n227(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n889(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n186(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n872(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n217(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n111(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n355(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n175(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n971(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n123(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n239(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n58(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n127(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n628(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n994(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n352(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n598(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n620(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n407(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n132(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n807(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n918(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n340(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n905(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n322(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n657(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n249(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n691(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n227(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n400(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n124(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n334(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n876(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n839(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n764(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n449(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n316(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n557(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n851(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n315(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n280(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n467(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n593(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n537(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n582(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n205(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n672(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n656(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n280(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n404(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n609(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n914(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n215(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n207(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n548(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n981(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n79(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n747(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n30(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n104(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n587(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n414(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n956(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n601(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n294(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n94(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n133(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n483(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n651(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n577(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n389(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n595(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n65(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n687(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n517(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n804(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n267(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n557(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n558(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n420(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n150(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n289(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n814(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n579(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n730(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n331(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n178(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n914(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n261(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n621(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n236(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n453(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n420(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n39(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n499(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n629(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n23(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n497(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n934(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n891(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n959(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n42(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n680(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n488(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n135(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n97(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n176(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n4(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n808(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n491(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n147(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n510(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n980(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n656(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n625(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n101(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n874(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n337(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n231(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n518(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n575(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n401(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n47(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n435(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n113(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n56(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n692(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n328(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n830(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n92(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n921(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n340(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n346(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n654(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n40(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n432(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n445(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n537(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n858(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n375(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n625(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n223(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n655(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n218(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n998(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n177(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n66(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n112(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n494(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n144(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n402(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n162(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n338(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n975(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n431(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n676(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n787(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n90(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n828(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n624(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n885(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n933(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n378(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n967(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n752(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n607(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n339(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n472(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n4(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n962(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n345(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n305(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n731(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n760(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n445(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n725(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n850(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n121(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n85(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n208(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n822(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n832(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n947(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n973(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n912(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n365(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n496(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n157(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n470(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n528(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n463(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n583(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n387(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n55(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n694(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n834(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n306(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n502(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n462(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n221(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n680(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n966(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n936(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n911(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n863(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n978(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n1(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n399(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n628(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n603(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n799(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n856(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n946(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n816(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n619(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n19(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n816(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n271(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n517(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n931(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n298(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n509(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n493(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n270(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n82(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n771(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n784(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n966(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n374(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n482(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n682(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n42(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n899(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n336(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n842(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n675(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n594(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n61(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n691(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n627(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n963(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n611(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n455(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n829(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n818(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n242(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n242(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n474(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n847(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n119(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n141(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n371(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n913(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n129(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n440(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n860(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n194(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n940(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n444(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n332(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n435(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n559(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n898(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n418(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n13(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n917(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n705(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n738(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n519(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n35(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n205(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n928(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n401(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n191(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n497(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n789(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n745(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n714(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n885(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n845(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n423(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n835(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n296(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n980(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n298(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n169(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n323(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n437(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n841(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n984(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n696(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n474(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n346(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n725(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n650(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n920(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n626(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n704(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n506(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n440(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n512(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n811(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n763(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n986(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n866(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n972(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n71(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n347(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n380(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n809(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n802(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n13(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n631(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n636(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n542(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n166(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n393(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n833(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n62(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n78(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n145(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n322(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n733(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n171(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n35(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n626(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n356(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n832(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n480(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n397(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n245(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n403(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n682(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n481(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n543(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n759(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n281(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n671(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n644(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n210(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n76(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n823(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n461(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n269(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n727(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n37(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n389(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n844(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n424(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n612(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n201(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n790(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n270(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n976(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n362(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n701(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n846(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n803(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n40(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n471(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n15(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n87(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n287(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n623(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n318(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n377(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n996(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n393(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n999(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n370(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n900(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n902(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n180(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n477(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n254(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n762(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n811(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n667(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n711(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n462(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n535(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n759(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n336(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n72(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n556(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n324(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n821(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n520(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n820(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n581(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n416(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n662(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n472(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n140(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n608(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n492(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n50(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n240(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n308(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n400(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n560(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n974(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n580(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n921(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n712(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n716(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n818(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n574(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n668(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n259(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n427(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n572(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n449(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n25(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n234(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n391(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n115(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n918(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n83(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n295(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n917(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n542(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n836(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n460(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n333(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n622(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n717(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n670(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n723(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n994(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n477(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n234(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n33(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n149(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n805(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n351(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n250(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n22(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n294(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n456(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n194(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n354(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n341(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n782(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n159(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n636(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n588(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n473(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n527(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n776(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n349(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n786(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n95(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n276(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n952(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n826(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n183(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n11(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n775(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n161(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n255(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n77(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n673(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n659(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n413(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n827(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n262(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n720(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n476(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n457(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n613(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n137(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n763(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n569(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n331(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n687(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n684(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n532(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n203(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n211(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n606(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n522(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n907(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n64(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n742(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n28(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n712(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n177(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n327(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n274(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n830(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n115(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n72(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n849(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n347(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n317(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n540(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n226(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n383(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n634(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n616(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n300(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n955(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n861(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n143(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n106(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n883(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n997(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n247(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n471(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n237(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n107(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n754(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n996(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n951(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n216(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n36(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n815(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n362(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n27(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n837(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n230(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n295(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n772(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n570(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n514(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n151(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n368(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n229(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n408(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n209(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n513(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n753(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n36(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n887(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n330(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n880(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n6(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n953(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n573(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n774(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n769(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n43(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n43(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n168(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n70(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n695(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n421(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n9(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n588(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n916(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n693(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n979(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n684(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n342(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n148(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n348(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n740(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n120(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n258(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n670(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n514(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n198(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n563(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n174(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n391(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n689(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n156(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n579(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n411(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n212(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n709(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n735(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n960(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n813(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        fun_l29_n553(x)</div><div class='add'>+    else</div><div class='add'>+        fun_l29_n875(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n0(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n1(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n2(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n3(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n4(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n5(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n6(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n7(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n8(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n9(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n10(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n11(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n12(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n13(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n14(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n15(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n16(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n17(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n18(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n19(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n20(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n21(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n22(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n23(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n24(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n25(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n26(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n27(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n28(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n29(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n30(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n31(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n32(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n33(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n34(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n35(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n36(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n37(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n38(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n39(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n40(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n41(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n42(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n43(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n44(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n45(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n46(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n47(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n48(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n49(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n50(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n51(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n52(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n53(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n54(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n55(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n56(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n57(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n58(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n59(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n60(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n61(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n62(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n63(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n64(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n65(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n66(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n67(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n68(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n69(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n70(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n71(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n72(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n73(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n74(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n75(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n76(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n77(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n78(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n79(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n80(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n81(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n82(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n83(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n84(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n85(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n86(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n87(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n88(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n89(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n90(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n91(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n92(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n93(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n94(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n95(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n96(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n97(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n98(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n99(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n100(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n101(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n102(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n103(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n104(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n105(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n106(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n107(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n108(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n109(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n110(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n111(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n112(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n113(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n114(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n115(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n116(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n117(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n118(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n119(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n120(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n121(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n122(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n123(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n124(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n125(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n126(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n127(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n128(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n129(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n130(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n131(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n132(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n133(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n134(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n135(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n136(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n137(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n138(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n139(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n140(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n141(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n142(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n143(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n144(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n145(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n146(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n147(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n148(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n149(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n150(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n151(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n152(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n153(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n154(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n155(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n156(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n157(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n158(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n159(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n160(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n161(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n162(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n163(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n164(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n165(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n166(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n167(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n168(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n169(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n170(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n171(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n172(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n173(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n174(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n175(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n176(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n177(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n178(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n179(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n180(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n181(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n182(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n183(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n184(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n185(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n186(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n187(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n188(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n189(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n190(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n191(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n192(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n193(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n194(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n195(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n196(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n197(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n198(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n199(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n200(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n201(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n202(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n203(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n204(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n205(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n206(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n207(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n208(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n209(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n210(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n211(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n212(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n213(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n214(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n215(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n216(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n217(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n218(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n219(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n220(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n221(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n222(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n223(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n224(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n225(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n226(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n227(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n228(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n229(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n230(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n231(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n232(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n233(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n234(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n235(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n236(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n237(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n238(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n239(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n240(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n241(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n242(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n243(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n244(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n245(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n246(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n247(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n248(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n249(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n250(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n251(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n252(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n253(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n254(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n255(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n256(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n257(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n258(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n259(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n260(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n261(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n262(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n263(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n264(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n265(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n266(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n267(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n268(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n269(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n270(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n271(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n272(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n273(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n274(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n275(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n276(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n277(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n278(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n279(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n280(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n281(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n282(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n283(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n284(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n285(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n286(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n287(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n288(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n289(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n290(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n291(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n292(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n293(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n294(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n295(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n296(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n297(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n298(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n299(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n300(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n301(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n302(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n303(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n304(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n305(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n306(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n307(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n308(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n309(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n310(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n311(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n312(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n313(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n314(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n315(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n316(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n317(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n318(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n319(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n320(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n321(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n322(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n323(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n324(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n325(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n326(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n327(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n328(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n329(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n330(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n331(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n332(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n333(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n334(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n335(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n336(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n337(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n338(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n339(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n340(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n341(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n342(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n343(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n344(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n345(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n346(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n347(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n348(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n349(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n350(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n351(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n352(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n353(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n354(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n355(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n356(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n357(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n358(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n359(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n360(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n361(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n362(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n363(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n364(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n365(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n366(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n367(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n368(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n369(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n370(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n371(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n372(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n373(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n374(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n375(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n376(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n377(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n378(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n379(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n380(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n381(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n382(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n383(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n384(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n385(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n386(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n387(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n388(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n389(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n390(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n391(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n392(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n393(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n394(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n395(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n396(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n397(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n398(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n399(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n400(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n401(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n402(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n403(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n404(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n405(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n406(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n407(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n408(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n409(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n410(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n411(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n412(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n413(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n414(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n415(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n416(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n417(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n418(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n419(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n420(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n421(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n422(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n423(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n424(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n425(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n426(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n427(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n428(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n429(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n430(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n431(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n432(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n433(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n434(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n435(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n436(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n437(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n438(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n439(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n440(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n441(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n442(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n443(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n444(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n445(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n446(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n447(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n448(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n449(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n450(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n451(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n452(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n453(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n454(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n455(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n456(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n457(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n458(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n459(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n460(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n461(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n462(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n463(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n464(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n465(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n466(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n467(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n468(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n469(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n470(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n471(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n472(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n473(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n474(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n475(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n476(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n477(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n478(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n479(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n480(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n481(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n482(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n483(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n484(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n485(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n486(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n487(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n488(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n489(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n490(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n491(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n492(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n493(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n494(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n495(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n496(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n497(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n498(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n499(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n500(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n501(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n502(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n503(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n504(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n505(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n506(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n507(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n508(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n509(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n510(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n511(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n512(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n513(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n514(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n515(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n516(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n517(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n518(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n519(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n520(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n521(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n522(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n523(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n524(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n525(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n526(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n527(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n528(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n529(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n530(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n531(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n532(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n533(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n534(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n535(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n536(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n537(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n538(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n539(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n540(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n541(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n542(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n543(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n544(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n545(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n546(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n547(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n548(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n549(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n550(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n551(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n552(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n553(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n554(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n555(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n556(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n557(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n558(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n559(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n560(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n561(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n562(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n563(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n564(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n565(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n566(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n567(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n568(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n569(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n570(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n571(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n572(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n573(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n574(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n575(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n576(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n577(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n578(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n579(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n580(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n581(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n582(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n583(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n584(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n585(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n586(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n587(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n588(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n589(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n590(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n591(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n592(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n593(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n594(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n595(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n596(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n597(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n598(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n599(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n600(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n601(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n602(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n603(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n604(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n605(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n606(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n607(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n608(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n609(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n610(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n611(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n612(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n613(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n614(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n615(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n616(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n617(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n618(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n619(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n620(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n621(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n622(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n623(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n624(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n625(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n626(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n627(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n628(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n629(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n630(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n631(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n632(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n633(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n634(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n635(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n636(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n637(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n638(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n639(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n640(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n641(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n642(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n643(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n644(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n645(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n646(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n647(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n648(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n649(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n650(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n651(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n652(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n653(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n654(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n655(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n656(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n657(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n658(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n659(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n660(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n661(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n662(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n663(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n664(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n665(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n666(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n667(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n668(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n669(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n670(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n671(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n672(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n673(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n674(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n675(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n676(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n677(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n678(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n679(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n680(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n681(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n682(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n683(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n684(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n685(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n686(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n687(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n688(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n689(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n690(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n691(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n692(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n693(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n694(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n695(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n696(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n697(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n698(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n699(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n700(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n701(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n702(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n703(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n704(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n705(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n706(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n707(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n708(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n709(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n710(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n711(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n712(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n713(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n714(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n715(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n716(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n717(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n718(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n719(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n720(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n721(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n722(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n723(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n724(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n725(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n726(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n727(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n728(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n729(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n730(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n731(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n732(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n733(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n734(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n735(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n736(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n737(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n738(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n739(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n740(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n741(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n742(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n743(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n744(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n745(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n746(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n747(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n748(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n749(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n750(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n751(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n752(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n753(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n754(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n755(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n756(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n757(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n758(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n759(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n760(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n761(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n762(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n763(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n764(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n765(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n766(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n767(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n768(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n769(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n770(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n771(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n772(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n773(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n774(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n775(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n776(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n777(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n778(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n779(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n780(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n781(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n782(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n783(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n784(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n785(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n786(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n787(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n788(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n789(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n790(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n791(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n792(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n793(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n794(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n795(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n796(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n797(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n798(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n799(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n800(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n801(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n802(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n803(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n804(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n805(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n806(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n807(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n808(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n809(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n810(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n811(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n812(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n813(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n814(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n815(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n816(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n817(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n818(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n819(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n820(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n821(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n822(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n823(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n824(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n825(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n826(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n827(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n828(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n829(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n830(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n831(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n832(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n833(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n834(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n835(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n836(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n837(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n838(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n839(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n840(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n841(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n842(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n843(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n844(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n845(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n846(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n847(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n848(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n849(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n850(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n851(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n852(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n853(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n854(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n855(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n856(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n857(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n858(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n859(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n860(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n861(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n862(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n863(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n864(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n865(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n866(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n867(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n868(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n869(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n870(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n871(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n872(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n873(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n874(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n875(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n876(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n877(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n878(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n879(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n880(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n881(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n882(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n883(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n884(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n885(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n886(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n887(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n888(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n889(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n890(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n891(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n892(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n893(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n894(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n895(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n896(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n897(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n898(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n899(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n900(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n901(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n902(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n903(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n904(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n905(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n906(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n907(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n908(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n909(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n910(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n911(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n912(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n913(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n914(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n915(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n916(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n917(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n918(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n919(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n920(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n921(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n922(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n923(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n924(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n925(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n926(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n927(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n928(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n929(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n930(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n931(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n932(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n933(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n934(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n935(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n936(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n937(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n938(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n939(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n940(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n941(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n942(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n943(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n944(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n945(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n946(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n947(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n948(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n949(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n950(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n951(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n952(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n953(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n954(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n955(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n956(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n957(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n958(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n959(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n960(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n961(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n962(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n963(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n964(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n965(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n966(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n967(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n968(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n969(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n970(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n971(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n972(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n973(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n974(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n975(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n976(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n977(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n978(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n979(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n980(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n981(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n982(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n983(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n984(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n985(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n986(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n987(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n988(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n989(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n990(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n991(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n992(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n993(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n994(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n995(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n996(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n997(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n998(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n999(x)</div><div class='add'>+    if (x &lt; 1)</div><div class='add'>+        inc(x)</div><div class='add'>+    else</div><div class='add'>+        inc(x)</div><div class='add'>+    end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+@a = 0</div><div class='add'>+@b = 0</div><div class='add'>+@c = 0</div><div class='add'>+@d = 0</div><div class='add'>+</div><div class='add'>+@count = 0</div><div class='add'>+def inc(x)</div><div class='add'>+    @count += 1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+@x = 0</div><div class='add'>+</div><div class='add'>+100.times do</div><div class='add'>+    @x = (@x &lt; 1)? 1:0</div><div class='add'>+    fun_l0_n0(@x)</div><div class='add'>+    fun_l0_n1(@x)</div><div class='add'>+    fun_l0_n2(@x)</div><div class='add'>+    fun_l0_n3(@x)</div><div class='add'>+    fun_l0_n4(@x)</div><div class='add'>+    fun_l0_n5(@x)</div><div class='add'>+    fun_l0_n6(@x)</div><div class='add'>+    fun_l0_n7(@x)</div><div class='add'>+    fun_l0_n8(@x)</div><div class='add'>+    fun_l0_n9(@x)</div><div class='add'>+    fun_l0_n10(@x)</div><div class='add'>+    fun_l0_n11(@x)</div><div class='add'>+    fun_l0_n12(@x)</div><div class='add'>+    fun_l0_n13(@x)</div><div class='add'>+    fun_l0_n14(@x)</div><div class='add'>+    fun_l0_n15(@x)</div><div class='add'>+    fun_l0_n16(@x)</div><div class='add'>+    fun_l0_n17(@x)</div><div class='add'>+    fun_l0_n18(@x)</div><div class='add'>+    fun_l0_n19(@x)</div><div class='add'>+    fun_l0_n20(@x)</div><div class='add'>+    fun_l0_n21(@x)</div><div class='add'>+    fun_l0_n22(@x)</div><div class='add'>+    fun_l0_n23(@x)</div><div class='add'>+    fun_l0_n24(@x)</div><div class='add'>+    fun_l0_n25(@x)</div><div class='add'>+    fun_l0_n26(@x)</div><div class='add'>+    fun_l0_n27(@x)</div><div class='add'>+    fun_l0_n28(@x)</div><div class='add'>+    fun_l0_n29(@x)</div><div class='add'>+    fun_l0_n30(@x)</div><div class='add'>+    fun_l0_n31(@x)</div><div class='add'>+    fun_l0_n32(@x)</div><div class='add'>+    fun_l0_n33(@x)</div><div class='add'>+    fun_l0_n34(@x)</div><div class='add'>+    fun_l0_n35(@x)</div><div class='add'>+    fun_l0_n36(@x)</div><div class='add'>+    fun_l0_n37(@x)</div><div class='add'>+    fun_l0_n38(@x)</div><div class='add'>+    fun_l0_n39(@x)</div><div class='add'>+    fun_l0_n40(@x)</div><div class='add'>+    fun_l0_n41(@x)</div><div class='add'>+    fun_l0_n42(@x)</div><div class='add'>+    fun_l0_n43(@x)</div><div class='add'>+    fun_l0_n44(@x)</div><div class='add'>+    fun_l0_n45(@x)</div><div class='add'>+    fun_l0_n46(@x)</div><div class='add'>+    fun_l0_n47(@x)</div><div class='add'>+    fun_l0_n48(@x)</div><div class='add'>+    fun_l0_n49(@x)</div><div class='add'>+    fun_l0_n50(@x)</div><div class='add'>+    fun_l0_n51(@x)</div><div class='add'>+    fun_l0_n52(@x)</div><div class='add'>+    fun_l0_n53(@x)</div><div class='add'>+    fun_l0_n54(@x)</div><div class='add'>+    fun_l0_n55(@x)</div><div class='add'>+    fun_l0_n56(@x)</div><div class='add'>+    fun_l0_n57(@x)</div><div class='add'>+    fun_l0_n58(@x)</div><div class='add'>+    fun_l0_n59(@x)</div><div class='add'>+    fun_l0_n60(@x)</div><div class='add'>+    fun_l0_n61(@x)</div><div class='add'>+    fun_l0_n62(@x)</div><div class='add'>+    fun_l0_n63(@x)</div><div class='add'>+    fun_l0_n64(@x)</div><div class='add'>+    fun_l0_n65(@x)</div><div class='add'>+    fun_l0_n66(@x)</div><div class='add'>+    fun_l0_n67(@x)</div><div class='add'>+    fun_l0_n68(@x)</div><div class='add'>+    fun_l0_n69(@x)</div><div class='add'>+    fun_l0_n70(@x)</div><div class='add'>+    fun_l0_n71(@x)</div><div class='add'>+    fun_l0_n72(@x)</div><div class='add'>+    fun_l0_n73(@x)</div><div class='add'>+    fun_l0_n74(@x)</div><div class='add'>+    fun_l0_n75(@x)</div><div class='add'>+    fun_l0_n76(@x)</div><div class='add'>+    fun_l0_n77(@x)</div><div class='add'>+    fun_l0_n78(@x)</div><div class='add'>+    fun_l0_n79(@x)</div><div class='add'>+    fun_l0_n80(@x)</div><div class='add'>+    fun_l0_n81(@x)</div><div class='add'>+    fun_l0_n82(@x)</div><div class='add'>+    fun_l0_n83(@x)</div><div class='add'>+    fun_l0_n84(@x)</div><div class='add'>+    fun_l0_n85(@x)</div><div class='add'>+    fun_l0_n86(@x)</div><div class='add'>+    fun_l0_n87(@x)</div><div class='add'>+    fun_l0_n88(@x)</div><div class='add'>+    fun_l0_n89(@x)</div><div class='add'>+    fun_l0_n90(@x)</div><div class='add'>+    fun_l0_n91(@x)</div><div class='add'>+    fun_l0_n92(@x)</div><div class='add'>+    fun_l0_n93(@x)</div><div class='add'>+    fun_l0_n94(@x)</div><div class='add'>+    fun_l0_n95(@x)</div><div class='add'>+    fun_l0_n96(@x)</div><div class='add'>+    fun_l0_n97(@x)</div><div class='add'>+    fun_l0_n98(@x)</div><div class='add'>+    fun_l0_n99(@x)</div><div class='add'>+    fun_l0_n100(@x)</div><div class='add'>+    fun_l0_n101(@x)</div><div class='add'>+    fun_l0_n102(@x)</div><div class='add'>+    fun_l0_n103(@x)</div><div class='add'>+    fun_l0_n104(@x)</div><div class='add'>+    fun_l0_n105(@x)</div><div class='add'>+    fun_l0_n106(@x)</div><div class='add'>+    fun_l0_n107(@x)</div><div class='add'>+    fun_l0_n108(@x)</div><div class='add'>+    fun_l0_n109(@x)</div><div class='add'>+    fun_l0_n110(@x)</div><div class='add'>+    fun_l0_n111(@x)</div><div class='add'>+    fun_l0_n112(@x)</div><div class='add'>+    fun_l0_n113(@x)</div><div class='add'>+    fun_l0_n114(@x)</div><div class='add'>+    fun_l0_n115(@x)</div><div class='add'>+    fun_l0_n116(@x)</div><div class='add'>+    fun_l0_n117(@x)</div><div class='add'>+    fun_l0_n118(@x)</div><div class='add'>+    fun_l0_n119(@x)</div><div class='add'>+    fun_l0_n120(@x)</div><div class='add'>+    fun_l0_n121(@x)</div><div class='add'>+    fun_l0_n122(@x)</div><div class='add'>+    fun_l0_n123(@x)</div><div class='add'>+    fun_l0_n124(@x)</div><div class='add'>+    fun_l0_n125(@x)</div><div class='add'>+    fun_l0_n126(@x)</div><div class='add'>+    fun_l0_n127(@x)</div><div class='add'>+    fun_l0_n128(@x)</div><div class='add'>+    fun_l0_n129(@x)</div><div class='add'>+    fun_l0_n130(@x)</div><div class='add'>+    fun_l0_n131(@x)</div><div class='add'>+    fun_l0_n132(@x)</div><div class='add'>+    fun_l0_n133(@x)</div><div class='add'>+    fun_l0_n134(@x)</div><div class='add'>+    fun_l0_n135(@x)</div><div class='add'>+    fun_l0_n136(@x)</div><div class='add'>+    fun_l0_n137(@x)</div><div class='add'>+    fun_l0_n138(@x)</div><div class='add'>+    fun_l0_n139(@x)</div><div class='add'>+    fun_l0_n140(@x)</div><div class='add'>+    fun_l0_n141(@x)</div><div class='add'>+    fun_l0_n142(@x)</div><div class='add'>+    fun_l0_n143(@x)</div><div class='add'>+    fun_l0_n144(@x)</div><div class='add'>+    fun_l0_n145(@x)</div><div class='add'>+    fun_l0_n146(@x)</div><div class='add'>+    fun_l0_n147(@x)</div><div class='add'>+    fun_l0_n148(@x)</div><div class='add'>+    fun_l0_n149(@x)</div><div class='add'>+    fun_l0_n150(@x)</div><div class='add'>+    fun_l0_n151(@x)</div><div class='add'>+    fun_l0_n152(@x)</div><div class='add'>+    fun_l0_n153(@x)</div><div class='add'>+    fun_l0_n154(@x)</div><div class='add'>+    fun_l0_n155(@x)</div><div class='add'>+    fun_l0_n156(@x)</div><div class='add'>+    fun_l0_n157(@x)</div><div class='add'>+    fun_l0_n158(@x)</div><div class='add'>+    fun_l0_n159(@x)</div><div class='add'>+    fun_l0_n160(@x)</div><div class='add'>+    fun_l0_n161(@x)</div><div class='add'>+    fun_l0_n162(@x)</div><div class='add'>+    fun_l0_n163(@x)</div><div class='add'>+    fun_l0_n164(@x)</div><div class='add'>+    fun_l0_n165(@x)</div><div class='add'>+    fun_l0_n166(@x)</div><div class='add'>+    fun_l0_n167(@x)</div><div class='add'>+    fun_l0_n168(@x)</div><div class='add'>+    fun_l0_n169(@x)</div><div class='add'>+    fun_l0_n170(@x)</div><div class='add'>+    fun_l0_n171(@x)</div><div class='add'>+    fun_l0_n172(@x)</div><div class='add'>+    fun_l0_n173(@x)</div><div class='add'>+    fun_l0_n174(@x)</div><div class='add'>+    fun_l0_n175(@x)</div><div class='add'>+    fun_l0_n176(@x)</div><div class='add'>+    fun_l0_n177(@x)</div><div class='add'>+    fun_l0_n178(@x)</div><div class='add'>+    fun_l0_n179(@x)</div><div class='add'>+    fun_l0_n180(@x)</div><div class='add'>+    fun_l0_n181(@x)</div><div class='add'>+    fun_l0_n182(@x)</div><div class='add'>+    fun_l0_n183(@x)</div><div class='add'>+    fun_l0_n184(@x)</div><div class='add'>+    fun_l0_n185(@x)</div><div class='add'>+    fun_l0_n186(@x)</div><div class='add'>+    fun_l0_n187(@x)</div><div class='add'>+    fun_l0_n188(@x)</div><div class='add'>+    fun_l0_n189(@x)</div><div class='add'>+    fun_l0_n190(@x)</div><div class='add'>+    fun_l0_n191(@x)</div><div class='add'>+    fun_l0_n192(@x)</div><div class='add'>+    fun_l0_n193(@x)</div><div class='add'>+    fun_l0_n194(@x)</div><div class='add'>+    fun_l0_n195(@x)</div><div class='add'>+    fun_l0_n196(@x)</div><div class='add'>+    fun_l0_n197(@x)</div><div class='add'>+    fun_l0_n198(@x)</div><div class='add'>+    fun_l0_n199(@x)</div><div class='add'>+    fun_l0_n200(@x)</div><div class='add'>+    fun_l0_n201(@x)</div><div class='add'>+    fun_l0_n202(@x)</div><div class='add'>+    fun_l0_n203(@x)</div><div class='add'>+    fun_l0_n204(@x)</div><div class='add'>+    fun_l0_n205(@x)</div><div class='add'>+    fun_l0_n206(@x)</div><div class='add'>+    fun_l0_n207(@x)</div><div class='add'>+    fun_l0_n208(@x)</div><div class='add'>+    fun_l0_n209(@x)</div><div class='add'>+    fun_l0_n210(@x)</div><div class='add'>+    fun_l0_n211(@x)</div><div class='add'>+    fun_l0_n212(@x)</div><div class='add'>+    fun_l0_n213(@x)</div><div class='add'>+    fun_l0_n214(@x)</div><div class='add'>+    fun_l0_n215(@x)</div><div class='add'>+    fun_l0_n216(@x)</div><div class='add'>+    fun_l0_n217(@x)</div><div class='add'>+    fun_l0_n218(@x)</div><div class='add'>+    fun_l0_n219(@x)</div><div class='add'>+    fun_l0_n220(@x)</div><div class='add'>+    fun_l0_n221(@x)</div><div class='add'>+    fun_l0_n222(@x)</div><div class='add'>+    fun_l0_n223(@x)</div><div class='add'>+    fun_l0_n224(@x)</div><div class='add'>+    fun_l0_n225(@x)</div><div class='add'>+    fun_l0_n226(@x)</div><div class='add'>+    fun_l0_n227(@x)</div><div class='add'>+    fun_l0_n228(@x)</div><div class='add'>+    fun_l0_n229(@x)</div><div class='add'>+    fun_l0_n230(@x)</div><div class='add'>+    fun_l0_n231(@x)</div><div class='add'>+    fun_l0_n232(@x)</div><div class='add'>+    fun_l0_n233(@x)</div><div class='add'>+    fun_l0_n234(@x)</div><div class='add'>+    fun_l0_n235(@x)</div><div class='add'>+    fun_l0_n236(@x)</div><div class='add'>+    fun_l0_n237(@x)</div><div class='add'>+    fun_l0_n238(@x)</div><div class='add'>+    fun_l0_n239(@x)</div><div class='add'>+    fun_l0_n240(@x)</div><div class='add'>+    fun_l0_n241(@x)</div><div class='add'>+    fun_l0_n242(@x)</div><div class='add'>+    fun_l0_n243(@x)</div><div class='add'>+    fun_l0_n244(@x)</div><div class='add'>+    fun_l0_n245(@x)</div><div class='add'>+    fun_l0_n246(@x)</div><div class='add'>+    fun_l0_n247(@x)</div><div class='add'>+    fun_l0_n248(@x)</div><div class='add'>+    fun_l0_n249(@x)</div><div class='add'>+    fun_l0_n250(@x)</div><div class='add'>+    fun_l0_n251(@x)</div><div class='add'>+    fun_l0_n252(@x)</div><div class='add'>+    fun_l0_n253(@x)</div><div class='add'>+    fun_l0_n254(@x)</div><div class='add'>+    fun_l0_n255(@x)</div><div class='add'>+    fun_l0_n256(@x)</div><div class='add'>+    fun_l0_n257(@x)</div><div class='add'>+    fun_l0_n258(@x)</div><div class='add'>+    fun_l0_n259(@x)</div><div class='add'>+    fun_l0_n260(@x)</div><div class='add'>+    fun_l0_n261(@x)</div><div class='add'>+    fun_l0_n262(@x)</div><div class='add'>+    fun_l0_n263(@x)</div><div class='add'>+    fun_l0_n264(@x)</div><div class='add'>+    fun_l0_n265(@x)</div><div class='add'>+    fun_l0_n266(@x)</div><div class='add'>+    fun_l0_n267(@x)</div><div class='add'>+    fun_l0_n268(@x)</div><div class='add'>+    fun_l0_n269(@x)</div><div class='add'>+    fun_l0_n270(@x)</div><div class='add'>+    fun_l0_n271(@x)</div><div class='add'>+    fun_l0_n272(@x)</div><div class='add'>+    fun_l0_n273(@x)</div><div class='add'>+    fun_l0_n274(@x)</div><div class='add'>+    fun_l0_n275(@x)</div><div class='add'>+    fun_l0_n276(@x)</div><div class='add'>+    fun_l0_n277(@x)</div><div class='add'>+    fun_l0_n278(@x)</div><div class='add'>+    fun_l0_n279(@x)</div><div class='add'>+    fun_l0_n280(@x)</div><div class='add'>+    fun_l0_n281(@x)</div><div class='add'>+    fun_l0_n282(@x)</div><div class='add'>+    fun_l0_n283(@x)</div><div class='add'>+    fun_l0_n284(@x)</div><div class='add'>+    fun_l0_n285(@x)</div><div class='add'>+    fun_l0_n286(@x)</div><div class='add'>+    fun_l0_n287(@x)</div><div class='add'>+    fun_l0_n288(@x)</div><div class='add'>+    fun_l0_n289(@x)</div><div class='add'>+    fun_l0_n290(@x)</div><div class='add'>+    fun_l0_n291(@x)</div><div class='add'>+    fun_l0_n292(@x)</div><div class='add'>+    fun_l0_n293(@x)</div><div class='add'>+    fun_l0_n294(@x)</div><div class='add'>+    fun_l0_n295(@x)</div><div class='add'>+    fun_l0_n296(@x)</div><div class='add'>+    fun_l0_n297(@x)</div><div class='add'>+    fun_l0_n298(@x)</div><div class='add'>+    fun_l0_n299(@x)</div><div class='add'>+    fun_l0_n300(@x)</div><div class='add'>+    fun_l0_n301(@x)</div><div class='add'>+    fun_l0_n302(@x)</div><div class='add'>+    fun_l0_n303(@x)</div><div class='add'>+    fun_l0_n304(@x)</div><div class='add'>+    fun_l0_n305(@x)</div><div class='add'>+    fun_l0_n306(@x)</div><div class='add'>+    fun_l0_n307(@x)</div><div class='add'>+    fun_l0_n308(@x)</div><div class='add'>+    fun_l0_n309(@x)</div><div class='add'>+    fun_l0_n310(@x)</div><div class='add'>+    fun_l0_n311(@x)</div><div class='add'>+    fun_l0_n312(@x)</div><div class='add'>+    fun_l0_n313(@x)</div><div class='add'>+    fun_l0_n314(@x)</div><div class='add'>+    fun_l0_n315(@x)</div><div class='add'>+    fun_l0_n316(@x)</div><div class='add'>+    fun_l0_n317(@x)</div><div class='add'>+    fun_l0_n318(@x)</div><div class='add'>+    fun_l0_n319(@x)</div><div class='add'>+    fun_l0_n320(@x)</div><div class='add'>+    fun_l0_n321(@x)</div><div class='add'>+    fun_l0_n322(@x)</div><div class='add'>+    fun_l0_n323(@x)</div><div class='add'>+    fun_l0_n324(@x)</div><div class='add'>+    fun_l0_n325(@x)</div><div class='add'>+    fun_l0_n326(@x)</div><div class='add'>+    fun_l0_n327(@x)</div><div class='add'>+    fun_l0_n328(@x)</div><div class='add'>+    fun_l0_n329(@x)</div><div class='add'>+    fun_l0_n330(@x)</div><div class='add'>+    fun_l0_n331(@x)</div><div class='add'>+    fun_l0_n332(@x)</div><div class='add'>+    fun_l0_n333(@x)</div><div class='add'>+    fun_l0_n334(@x)</div><div class='add'>+    fun_l0_n335(@x)</div><div class='add'>+    fun_l0_n336(@x)</div><div class='add'>+    fun_l0_n337(@x)</div><div class='add'>+    fun_l0_n338(@x)</div><div class='add'>+    fun_l0_n339(@x)</div><div class='add'>+    fun_l0_n340(@x)</div><div class='add'>+    fun_l0_n341(@x)</div><div class='add'>+    fun_l0_n342(@x)</div><div class='add'>+    fun_l0_n343(@x)</div><div class='add'>+    fun_l0_n344(@x)</div><div class='add'>+    fun_l0_n345(@x)</div><div class='add'>+    fun_l0_n346(@x)</div><div class='add'>+    fun_l0_n347(@x)</div><div class='add'>+    fun_l0_n348(@x)</div><div class='add'>+    fun_l0_n349(@x)</div><div class='add'>+    fun_l0_n350(@x)</div><div class='add'>+    fun_l0_n351(@x)</div><div class='add'>+    fun_l0_n352(@x)</div><div class='add'>+    fun_l0_n353(@x)</div><div class='add'>+    fun_l0_n354(@x)</div><div class='add'>+    fun_l0_n355(@x)</div><div class='add'>+    fun_l0_n356(@x)</div><div class='add'>+    fun_l0_n357(@x)</div><div class='add'>+    fun_l0_n358(@x)</div><div class='add'>+    fun_l0_n359(@x)</div><div class='add'>+    fun_l0_n360(@x)</div><div class='add'>+    fun_l0_n361(@x)</div><div class='add'>+    fun_l0_n362(@x)</div><div class='add'>+    fun_l0_n363(@x)</div><div class='add'>+    fun_l0_n364(@x)</div><div class='add'>+    fun_l0_n365(@x)</div><div class='add'>+    fun_l0_n366(@x)</div><div class='add'>+    fun_l0_n367(@x)</div><div class='add'>+    fun_l0_n368(@x)</div><div class='add'>+    fun_l0_n369(@x)</div><div class='add'>+    fun_l0_n370(@x)</div><div class='add'>+    fun_l0_n371(@x)</div><div class='add'>+    fun_l0_n372(@x)</div><div class='add'>+    fun_l0_n373(@x)</div><div class='add'>+    fun_l0_n374(@x)</div><div class='add'>+    fun_l0_n375(@x)</div><div class='add'>+    fun_l0_n376(@x)</div><div class='add'>+    fun_l0_n377(@x)</div><div class='add'>+    fun_l0_n378(@x)</div><div class='add'>+    fun_l0_n379(@x)</div><div class='add'>+    fun_l0_n380(@x)</div><div class='add'>+    fun_l0_n381(@x)</div><div class='add'>+    fun_l0_n382(@x)</div><div class='add'>+    fun_l0_n383(@x)</div><div class='add'>+    fun_l0_n384(@x)</div><div class='add'>+    fun_l0_n385(@x)</div><div class='add'>+    fun_l0_n386(@x)</div><div class='add'>+    fun_l0_n387(@x)</div><div class='add'>+    fun_l0_n388(@x)</div><div class='add'>+    fun_l0_n389(@x)</div><div class='add'>+    fun_l0_n390(@x)</div><div class='add'>+    fun_l0_n391(@x)</div><div class='add'>+    fun_l0_n392(@x)</div><div class='add'>+    fun_l0_n393(@x)</div><div class='add'>+    fun_l0_n394(@x)</div><div class='add'>+    fun_l0_n395(@x)</div><div class='add'>+    fun_l0_n396(@x)</div><div class='add'>+    fun_l0_n397(@x)</div><div class='add'>+    fun_l0_n398(@x)</div><div class='add'>+    fun_l0_n399(@x)</div><div class='add'>+    fun_l0_n400(@x)</div><div class='add'>+    fun_l0_n401(@x)</div><div class='add'>+    fun_l0_n402(@x)</div><div class='add'>+    fun_l0_n403(@x)</div><div class='add'>+    fun_l0_n404(@x)</div><div class='add'>+    fun_l0_n405(@x)</div><div class='add'>+    fun_l0_n406(@x)</div><div class='add'>+    fun_l0_n407(@x)</div><div class='add'>+    fun_l0_n408(@x)</div><div class='add'>+    fun_l0_n409(@x)</div><div class='add'>+    fun_l0_n410(@x)</div><div class='add'>+    fun_l0_n411(@x)</div><div class='add'>+    fun_l0_n412(@x)</div><div class='add'>+    fun_l0_n413(@x)</div><div class='add'>+    fun_l0_n414(@x)</div><div class='add'>+    fun_l0_n415(@x)</div><div class='add'>+    fun_l0_n416(@x)</div><div class='add'>+    fun_l0_n417(@x)</div><div class='add'>+    fun_l0_n418(@x)</div><div class='add'>+    fun_l0_n419(@x)</div><div class='add'>+    fun_l0_n420(@x)</div><div class='add'>+    fun_l0_n421(@x)</div><div class='add'>+    fun_l0_n422(@x)</div><div class='add'>+    fun_l0_n423(@x)</div><div class='add'>+    fun_l0_n424(@x)</div><div class='add'>+    fun_l0_n425(@x)</div><div class='add'>+    fun_l0_n426(@x)</div><div class='add'>+    fun_l0_n427(@x)</div><div class='add'>+    fun_l0_n428(@x)</div><div class='add'>+    fun_l0_n429(@x)</div><div class='add'>+    fun_l0_n430(@x)</div><div class='add'>+    fun_l0_n431(@x)</div><div class='add'>+    fun_l0_n432(@x)</div><div class='add'>+    fun_l0_n433(@x)</div><div class='add'>+    fun_l0_n434(@x)</div><div class='add'>+    fun_l0_n435(@x)</div><div class='add'>+    fun_l0_n436(@x)</div><div class='add'>+    fun_l0_n437(@x)</div><div class='add'>+    fun_l0_n438(@x)</div><div class='add'>+    fun_l0_n439(@x)</div><div class='add'>+    fun_l0_n440(@x)</div><div class='add'>+    fun_l0_n441(@x)</div><div class='add'>+    fun_l0_n442(@x)</div><div class='add'>+    fun_l0_n443(@x)</div><div class='add'>+    fun_l0_n444(@x)</div><div class='add'>+    fun_l0_n445(@x)</div><div class='add'>+    fun_l0_n446(@x)</div><div class='add'>+    fun_l0_n447(@x)</div><div class='add'>+    fun_l0_n448(@x)</div><div class='add'>+    fun_l0_n449(@x)</div><div class='add'>+    fun_l0_n450(@x)</div><div class='add'>+    fun_l0_n451(@x)</div><div class='add'>+    fun_l0_n452(@x)</div><div class='add'>+    fun_l0_n453(@x)</div><div class='add'>+    fun_l0_n454(@x)</div><div class='add'>+    fun_l0_n455(@x)</div><div class='add'>+    fun_l0_n456(@x)</div><div class='add'>+    fun_l0_n457(@x)</div><div class='add'>+    fun_l0_n458(@x)</div><div class='add'>+    fun_l0_n459(@x)</div><div class='add'>+    fun_l0_n460(@x)</div><div class='add'>+    fun_l0_n461(@x)</div><div class='add'>+    fun_l0_n462(@x)</div><div class='add'>+    fun_l0_n463(@x)</div><div class='add'>+    fun_l0_n464(@x)</div><div class='add'>+    fun_l0_n465(@x)</div><div class='add'>+    fun_l0_n466(@x)</div><div class='add'>+    fun_l0_n467(@x)</div><div class='add'>+    fun_l0_n468(@x)</div><div class='add'>+    fun_l0_n469(@x)</div><div class='add'>+    fun_l0_n470(@x)</div><div class='add'>+    fun_l0_n471(@x)</div><div class='add'>+    fun_l0_n472(@x)</div><div class='add'>+    fun_l0_n473(@x)</div><div class='add'>+    fun_l0_n474(@x)</div><div class='add'>+    fun_l0_n475(@x)</div><div class='add'>+    fun_l0_n476(@x)</div><div class='add'>+    fun_l0_n477(@x)</div><div class='add'>+    fun_l0_n478(@x)</div><div class='add'>+    fun_l0_n479(@x)</div><div class='add'>+    fun_l0_n480(@x)</div><div class='add'>+    fun_l0_n481(@x)</div><div class='add'>+    fun_l0_n482(@x)</div><div class='add'>+    fun_l0_n483(@x)</div><div class='add'>+    fun_l0_n484(@x)</div><div class='add'>+    fun_l0_n485(@x)</div><div class='add'>+    fun_l0_n486(@x)</div><div class='add'>+    fun_l0_n487(@x)</div><div class='add'>+    fun_l0_n488(@x)</div><div class='add'>+    fun_l0_n489(@x)</div><div class='add'>+    fun_l0_n490(@x)</div><div class='add'>+    fun_l0_n491(@x)</div><div class='add'>+    fun_l0_n492(@x)</div><div class='add'>+    fun_l0_n493(@x)</div><div class='add'>+    fun_l0_n494(@x)</div><div class='add'>+    fun_l0_n495(@x)</div><div class='add'>+    fun_l0_n496(@x)</div><div class='add'>+    fun_l0_n497(@x)</div><div class='add'>+    fun_l0_n498(@x)</div><div class='add'>+    fun_l0_n499(@x)</div><div class='add'>+    fun_l0_n500(@x)</div><div class='add'>+    fun_l0_n501(@x)</div><div class='add'>+    fun_l0_n502(@x)</div><div class='add'>+    fun_l0_n503(@x)</div><div class='add'>+    fun_l0_n504(@x)</div><div class='add'>+    fun_l0_n505(@x)</div><div class='add'>+    fun_l0_n506(@x)</div><div class='add'>+    fun_l0_n507(@x)</div><div class='add'>+    fun_l0_n508(@x)</div><div class='add'>+    fun_l0_n509(@x)</div><div class='add'>+    fun_l0_n510(@x)</div><div class='add'>+    fun_l0_n511(@x)</div><div class='add'>+    fun_l0_n512(@x)</div><div class='add'>+    fun_l0_n513(@x)</div><div class='add'>+    fun_l0_n514(@x)</div><div class='add'>+    fun_l0_n515(@x)</div><div class='add'>+    fun_l0_n516(@x)</div><div class='add'>+    fun_l0_n517(@x)</div><div class='add'>+    fun_l0_n518(@x)</div><div class='add'>+    fun_l0_n519(@x)</div><div class='add'>+    fun_l0_n520(@x)</div><div class='add'>+    fun_l0_n521(@x)</div><div class='add'>+    fun_l0_n522(@x)</div><div class='add'>+    fun_l0_n523(@x)</div><div class='add'>+    fun_l0_n524(@x)</div><div class='add'>+    fun_l0_n525(@x)</div><div class='add'>+    fun_l0_n526(@x)</div><div class='add'>+    fun_l0_n527(@x)</div><div class='add'>+    fun_l0_n528(@x)</div><div class='add'>+    fun_l0_n529(@x)</div><div class='add'>+    fun_l0_n530(@x)</div><div class='add'>+    fun_l0_n531(@x)</div><div class='add'>+    fun_l0_n532(@x)</div><div class='add'>+    fun_l0_n533(@x)</div><div class='add'>+    fun_l0_n534(@x)</div><div class='add'>+    fun_l0_n535(@x)</div><div class='add'>+    fun_l0_n536(@x)</div><div class='add'>+    fun_l0_n537(@x)</div><div class='add'>+    fun_l0_n538(@x)</div><div class='add'>+    fun_l0_n539(@x)</div><div class='add'>+    fun_l0_n540(@x)</div><div class='add'>+    fun_l0_n541(@x)</div><div class='add'>+    fun_l0_n542(@x)</div><div class='add'>+    fun_l0_n543(@x)</div><div class='add'>+    fun_l0_n544(@x)</div><div class='add'>+    fun_l0_n545(@x)</div><div class='add'>+    fun_l0_n546(@x)</div><div class='add'>+    fun_l0_n547(@x)</div><div class='add'>+    fun_l0_n548(@x)</div><div class='add'>+    fun_l0_n549(@x)</div><div class='add'>+    fun_l0_n550(@x)</div><div class='add'>+    fun_l0_n551(@x)</div><div class='add'>+    fun_l0_n552(@x)</div><div class='add'>+    fun_l0_n553(@x)</div><div class='add'>+    fun_l0_n554(@x)</div><div class='add'>+    fun_l0_n555(@x)</div><div class='add'>+    fun_l0_n556(@x)</div><div class='add'>+    fun_l0_n557(@x)</div><div class='add'>+    fun_l0_n558(@x)</div><div class='add'>+    fun_l0_n559(@x)</div><div class='add'>+    fun_l0_n560(@x)</div><div class='add'>+    fun_l0_n561(@x)</div><div class='add'>+    fun_l0_n562(@x)</div><div class='add'>+    fun_l0_n563(@x)</div><div class='add'>+    fun_l0_n564(@x)</div><div class='add'>+    fun_l0_n565(@x)</div><div class='add'>+    fun_l0_n566(@x)</div><div class='add'>+    fun_l0_n567(@x)</div><div class='add'>+    fun_l0_n568(@x)</div><div class='add'>+    fun_l0_n569(@x)</div><div class='add'>+    fun_l0_n570(@x)</div><div class='add'>+    fun_l0_n571(@x)</div><div class='add'>+    fun_l0_n572(@x)</div><div class='add'>+    fun_l0_n573(@x)</div><div class='add'>+    fun_l0_n574(@x)</div><div class='add'>+    fun_l0_n575(@x)</div><div class='add'>+    fun_l0_n576(@x)</div><div class='add'>+    fun_l0_n577(@x)</div><div class='add'>+    fun_l0_n578(@x)</div><div class='add'>+    fun_l0_n579(@x)</div><div class='add'>+    fun_l0_n580(@x)</div><div class='add'>+    fun_l0_n581(@x)</div><div class='add'>+    fun_l0_n582(@x)</div><div class='add'>+    fun_l0_n583(@x)</div><div class='add'>+    fun_l0_n584(@x)</div><div class='add'>+    fun_l0_n585(@x)</div><div class='add'>+    fun_l0_n586(@x)</div><div class='add'>+    fun_l0_n587(@x)</div><div class='add'>+    fun_l0_n588(@x)</div><div class='add'>+    fun_l0_n589(@x)</div><div class='add'>+    fun_l0_n590(@x)</div><div class='add'>+    fun_l0_n591(@x)</div><div class='add'>+    fun_l0_n592(@x)</div><div class='add'>+    fun_l0_n593(@x)</div><div class='add'>+    fun_l0_n594(@x)</div><div class='add'>+    fun_l0_n595(@x)</div><div class='add'>+    fun_l0_n596(@x)</div><div class='add'>+    fun_l0_n597(@x)</div><div class='add'>+    fun_l0_n598(@x)</div><div class='add'>+    fun_l0_n599(@x)</div><div class='add'>+    fun_l0_n600(@x)</div><div class='add'>+    fun_l0_n601(@x)</div><div class='add'>+    fun_l0_n602(@x)</div><div class='add'>+    fun_l0_n603(@x)</div><div class='add'>+    fun_l0_n604(@x)</div><div class='add'>+    fun_l0_n605(@x)</div><div class='add'>+    fun_l0_n606(@x)</div><div class='add'>+    fun_l0_n607(@x)</div><div class='add'>+    fun_l0_n608(@x)</div><div class='add'>+    fun_l0_n609(@x)</div><div class='add'>+    fun_l0_n610(@x)</div><div class='add'>+    fun_l0_n611(@x)</div><div class='add'>+    fun_l0_n612(@x)</div><div class='add'>+    fun_l0_n613(@x)</div><div class='add'>+    fun_l0_n614(@x)</div><div class='add'>+    fun_l0_n615(@x)</div><div class='add'>+    fun_l0_n616(@x)</div><div class='add'>+    fun_l0_n617(@x)</div><div class='add'>+    fun_l0_n618(@x)</div><div class='add'>+    fun_l0_n619(@x)</div><div class='add'>+    fun_l0_n620(@x)</div><div class='add'>+    fun_l0_n621(@x)</div><div class='add'>+    fun_l0_n622(@x)</div><div class='add'>+    fun_l0_n623(@x)</div><div class='add'>+    fun_l0_n624(@x)</div><div class='add'>+    fun_l0_n625(@x)</div><div class='add'>+    fun_l0_n626(@x)</div><div class='add'>+    fun_l0_n627(@x)</div><div class='add'>+    fun_l0_n628(@x)</div><div class='add'>+    fun_l0_n629(@x)</div><div class='add'>+    fun_l0_n630(@x)</div><div class='add'>+    fun_l0_n631(@x)</div><div class='add'>+    fun_l0_n632(@x)</div><div class='add'>+    fun_l0_n633(@x)</div><div class='add'>+    fun_l0_n634(@x)</div><div class='add'>+    fun_l0_n635(@x)</div><div class='add'>+    fun_l0_n636(@x)</div><div class='add'>+    fun_l0_n637(@x)</div><div class='add'>+    fun_l0_n638(@x)</div><div class='add'>+    fun_l0_n639(@x)</div><div class='add'>+    fun_l0_n640(@x)</div><div class='add'>+    fun_l0_n641(@x)</div><div class='add'>+    fun_l0_n642(@x)</div><div class='add'>+    fun_l0_n643(@x)</div><div class='add'>+    fun_l0_n644(@x)</div><div class='add'>+    fun_l0_n645(@x)</div><div class='add'>+    fun_l0_n646(@x)</div><div class='add'>+    fun_l0_n647(@x)</div><div class='add'>+    fun_l0_n648(@x)</div><div class='add'>+    fun_l0_n649(@x)</div><div class='add'>+    fun_l0_n650(@x)</div><div class='add'>+    fun_l0_n651(@x)</div><div class='add'>+    fun_l0_n652(@x)</div><div class='add'>+    fun_l0_n653(@x)</div><div class='add'>+    fun_l0_n654(@x)</div><div class='add'>+    fun_l0_n655(@x)</div><div class='add'>+    fun_l0_n656(@x)</div><div class='add'>+    fun_l0_n657(@x)</div><div class='add'>+    fun_l0_n658(@x)</div><div class='add'>+    fun_l0_n659(@x)</div><div class='add'>+    fun_l0_n660(@x)</div><div class='add'>+    fun_l0_n661(@x)</div><div class='add'>+    fun_l0_n662(@x)</div><div class='add'>+    fun_l0_n663(@x)</div><div class='add'>+    fun_l0_n664(@x)</div><div class='add'>+    fun_l0_n665(@x)</div><div class='add'>+    fun_l0_n666(@x)</div><div class='add'>+    fun_l0_n667(@x)</div><div class='add'>+    fun_l0_n668(@x)</div><div class='add'>+    fun_l0_n669(@x)</div><div class='add'>+    fun_l0_n670(@x)</div><div class='add'>+    fun_l0_n671(@x)</div><div class='add'>+    fun_l0_n672(@x)</div><div class='add'>+    fun_l0_n673(@x)</div><div class='add'>+    fun_l0_n674(@x)</div><div class='add'>+    fun_l0_n675(@x)</div><div class='add'>+    fun_l0_n676(@x)</div><div class='add'>+    fun_l0_n677(@x)</div><div class='add'>+    fun_l0_n678(@x)</div><div class='add'>+    fun_l0_n679(@x)</div><div class='add'>+    fun_l0_n680(@x)</div><div class='add'>+    fun_l0_n681(@x)</div><div class='add'>+    fun_l0_n682(@x)</div><div class='add'>+    fun_l0_n683(@x)</div><div class='add'>+    fun_l0_n684(@x)</div><div class='add'>+    fun_l0_n685(@x)</div><div class='add'>+    fun_l0_n686(@x)</div><div class='add'>+    fun_l0_n687(@x)</div><div class='add'>+    fun_l0_n688(@x)</div><div class='add'>+    fun_l0_n689(@x)</div><div class='add'>+    fun_l0_n690(@x)</div><div class='add'>+    fun_l0_n691(@x)</div><div class='add'>+    fun_l0_n692(@x)</div><div class='add'>+    fun_l0_n693(@x)</div><div class='add'>+    fun_l0_n694(@x)</div><div class='add'>+    fun_l0_n695(@x)</div><div class='add'>+    fun_l0_n696(@x)</div><div class='add'>+    fun_l0_n697(@x)</div><div class='add'>+    fun_l0_n698(@x)</div><div class='add'>+    fun_l0_n699(@x)</div><div class='add'>+    fun_l0_n700(@x)</div><div class='add'>+    fun_l0_n701(@x)</div><div class='add'>+    fun_l0_n702(@x)</div><div class='add'>+    fun_l0_n703(@x)</div><div class='add'>+    fun_l0_n704(@x)</div><div class='add'>+    fun_l0_n705(@x)</div><div class='add'>+    fun_l0_n706(@x)</div><div class='add'>+    fun_l0_n707(@x)</div><div class='add'>+    fun_l0_n708(@x)</div><div class='add'>+    fun_l0_n709(@x)</div><div class='add'>+    fun_l0_n710(@x)</div><div class='add'>+    fun_l0_n711(@x)</div><div class='add'>+    fun_l0_n712(@x)</div><div class='add'>+    fun_l0_n713(@x)</div><div class='add'>+    fun_l0_n714(@x)</div><div class='add'>+    fun_l0_n715(@x)</div><div class='add'>+    fun_l0_n716(@x)</div><div class='add'>+    fun_l0_n717(@x)</div><div class='add'>+    fun_l0_n718(@x)</div><div class='add'>+    fun_l0_n719(@x)</div><div class='add'>+    fun_l0_n720(@x)</div><div class='add'>+    fun_l0_n721(@x)</div><div class='add'>+    fun_l0_n722(@x)</div><div class='add'>+    fun_l0_n723(@x)</div><div class='add'>+    fun_l0_n724(@x)</div><div class='add'>+    fun_l0_n725(@x)</div><div class='add'>+    fun_l0_n726(@x)</div><div class='add'>+    fun_l0_n727(@x)</div><div class='add'>+    fun_l0_n728(@x)</div><div class='add'>+    fun_l0_n729(@x)</div><div class='add'>+    fun_l0_n730(@x)</div><div class='add'>+    fun_l0_n731(@x)</div><div class='add'>+    fun_l0_n732(@x)</div><div class='add'>+    fun_l0_n733(@x)</div><div class='add'>+    fun_l0_n734(@x)</div><div class='add'>+    fun_l0_n735(@x)</div><div class='add'>+    fun_l0_n736(@x)</div><div class='add'>+    fun_l0_n737(@x)</div><div class='add'>+    fun_l0_n738(@x)</div><div class='add'>+    fun_l0_n739(@x)</div><div class='add'>+    fun_l0_n740(@x)</div><div class='add'>+    fun_l0_n741(@x)</div><div class='add'>+    fun_l0_n742(@x)</div><div class='add'>+    fun_l0_n743(@x)</div><div class='add'>+    fun_l0_n744(@x)</div><div class='add'>+    fun_l0_n745(@x)</div><div class='add'>+    fun_l0_n746(@x)</div><div class='add'>+    fun_l0_n747(@x)</div><div class='add'>+    fun_l0_n748(@x)</div><div class='add'>+    fun_l0_n749(@x)</div><div class='add'>+    fun_l0_n750(@x)</div><div class='add'>+    fun_l0_n751(@x)</div><div class='add'>+    fun_l0_n752(@x)</div><div class='add'>+    fun_l0_n753(@x)</div><div class='add'>+    fun_l0_n754(@x)</div><div class='add'>+    fun_l0_n755(@x)</div><div class='add'>+    fun_l0_n756(@x)</div><div class='add'>+    fun_l0_n757(@x)</div><div class='add'>+    fun_l0_n758(@x)</div><div class='add'>+    fun_l0_n759(@x)</div><div class='add'>+    fun_l0_n760(@x)</div><div class='add'>+    fun_l0_n761(@x)</div><div class='add'>+    fun_l0_n762(@x)</div><div class='add'>+    fun_l0_n763(@x)</div><div class='add'>+    fun_l0_n764(@x)</div><div class='add'>+    fun_l0_n765(@x)</div><div class='add'>+    fun_l0_n766(@x)</div><div class='add'>+    fun_l0_n767(@x)</div><div class='add'>+    fun_l0_n768(@x)</div><div class='add'>+    fun_l0_n769(@x)</div><div class='add'>+    fun_l0_n770(@x)</div><div class='add'>+    fun_l0_n771(@x)</div><div class='add'>+    fun_l0_n772(@x)</div><div class='add'>+    fun_l0_n773(@x)</div><div class='add'>+    fun_l0_n774(@x)</div><div class='add'>+    fun_l0_n775(@x)</div><div class='add'>+    fun_l0_n776(@x)</div><div class='add'>+    fun_l0_n777(@x)</div><div class='add'>+    fun_l0_n778(@x)</div><div class='add'>+    fun_l0_n779(@x)</div><div class='add'>+    fun_l0_n780(@x)</div><div class='add'>+    fun_l0_n781(@x)</div><div class='add'>+    fun_l0_n782(@x)</div><div class='add'>+    fun_l0_n783(@x)</div><div class='add'>+    fun_l0_n784(@x)</div><div class='add'>+    fun_l0_n785(@x)</div><div class='add'>+    fun_l0_n786(@x)</div><div class='add'>+    fun_l0_n787(@x)</div><div class='add'>+    fun_l0_n788(@x)</div><div class='add'>+    fun_l0_n789(@x)</div><div class='add'>+    fun_l0_n790(@x)</div><div class='add'>+    fun_l0_n791(@x)</div><div class='add'>+    fun_l0_n792(@x)</div><div class='add'>+    fun_l0_n793(@x)</div><div class='add'>+    fun_l0_n794(@x)</div><div class='add'>+    fun_l0_n795(@x)</div><div class='add'>+    fun_l0_n796(@x)</div><div class='add'>+    fun_l0_n797(@x)</div><div class='add'>+    fun_l0_n798(@x)</div><div class='add'>+    fun_l0_n799(@x)</div><div class='add'>+    fun_l0_n800(@x)</div><div class='add'>+    fun_l0_n801(@x)</div><div class='add'>+    fun_l0_n802(@x)</div><div class='add'>+    fun_l0_n803(@x)</div><div class='add'>+    fun_l0_n804(@x)</div><div class='add'>+    fun_l0_n805(@x)</div><div class='add'>+    fun_l0_n806(@x)</div><div class='add'>+    fun_l0_n807(@x)</div><div class='add'>+    fun_l0_n808(@x)</div><div class='add'>+    fun_l0_n809(@x)</div><div class='add'>+    fun_l0_n810(@x)</div><div class='add'>+    fun_l0_n811(@x)</div><div class='add'>+    fun_l0_n812(@x)</div><div class='add'>+    fun_l0_n813(@x)</div><div class='add'>+    fun_l0_n814(@x)</div><div class='add'>+    fun_l0_n815(@x)</div><div class='add'>+    fun_l0_n816(@x)</div><div class='add'>+    fun_l0_n817(@x)</div><div class='add'>+    fun_l0_n818(@x)</div><div class='add'>+    fun_l0_n819(@x)</div><div class='add'>+    fun_l0_n820(@x)</div><div class='add'>+    fun_l0_n821(@x)</div><div class='add'>+    fun_l0_n822(@x)</div><div class='add'>+    fun_l0_n823(@x)</div><div class='add'>+    fun_l0_n824(@x)</div><div class='add'>+    fun_l0_n825(@x)</div><div class='add'>+    fun_l0_n826(@x)</div><div class='add'>+    fun_l0_n827(@x)</div><div class='add'>+    fun_l0_n828(@x)</div><div class='add'>+    fun_l0_n829(@x)</div><div class='add'>+    fun_l0_n830(@x)</div><div class='add'>+    fun_l0_n831(@x)</div><div class='add'>+    fun_l0_n832(@x)</div><div class='add'>+    fun_l0_n833(@x)</div><div class='add'>+    fun_l0_n834(@x)</div><div class='add'>+    fun_l0_n835(@x)</div><div class='add'>+    fun_l0_n836(@x)</div><div class='add'>+    fun_l0_n837(@x)</div><div class='add'>+    fun_l0_n838(@x)</div><div class='add'>+    fun_l0_n839(@x)</div><div class='add'>+    fun_l0_n840(@x)</div><div class='add'>+    fun_l0_n841(@x)</div><div class='add'>+    fun_l0_n842(@x)</div><div class='add'>+    fun_l0_n843(@x)</div><div class='add'>+    fun_l0_n844(@x)</div><div class='add'>+    fun_l0_n845(@x)</div><div class='add'>+    fun_l0_n846(@x)</div><div class='add'>+    fun_l0_n847(@x)</div><div class='add'>+    fun_l0_n848(@x)</div><div class='add'>+    fun_l0_n849(@x)</div><div class='add'>+    fun_l0_n850(@x)</div><div class='add'>+    fun_l0_n851(@x)</div><div class='add'>+    fun_l0_n852(@x)</div><div class='add'>+    fun_l0_n853(@x)</div><div class='add'>+    fun_l0_n854(@x)</div><div class='add'>+    fun_l0_n855(@x)</div><div class='add'>+    fun_l0_n856(@x)</div><div class='add'>+    fun_l0_n857(@x)</div><div class='add'>+    fun_l0_n858(@x)</div><div class='add'>+    fun_l0_n859(@x)</div><div class='add'>+    fun_l0_n860(@x)</div><div class='add'>+    fun_l0_n861(@x)</div><div class='add'>+    fun_l0_n862(@x)</div><div class='add'>+    fun_l0_n863(@x)</div><div class='add'>+    fun_l0_n864(@x)</div><div class='add'>+    fun_l0_n865(@x)</div><div class='add'>+    fun_l0_n866(@x)</div><div class='add'>+    fun_l0_n867(@x)</div><div class='add'>+    fun_l0_n868(@x)</div><div class='add'>+    fun_l0_n869(@x)</div><div class='add'>+    fun_l0_n870(@x)</div><div class='add'>+    fun_l0_n871(@x)</div><div class='add'>+    fun_l0_n872(@x)</div><div class='add'>+    fun_l0_n873(@x)</div><div class='add'>+    fun_l0_n874(@x)</div><div class='add'>+    fun_l0_n875(@x)</div><div class='add'>+    fun_l0_n876(@x)</div><div class='add'>+    fun_l0_n877(@x)</div><div class='add'>+    fun_l0_n878(@x)</div><div class='add'>+    fun_l0_n879(@x)</div><div class='add'>+    fun_l0_n880(@x)</div><div class='add'>+    fun_l0_n881(@x)</div><div class='add'>+    fun_l0_n882(@x)</div><div class='add'>+    fun_l0_n883(@x)</div><div class='add'>+    fun_l0_n884(@x)</div><div class='add'>+    fun_l0_n885(@x)</div><div class='add'>+    fun_l0_n886(@x)</div><div class='add'>+    fun_l0_n887(@x)</div><div class='add'>+    fun_l0_n888(@x)</div><div class='add'>+    fun_l0_n889(@x)</div><div class='add'>+    fun_l0_n890(@x)</div><div class='add'>+    fun_l0_n891(@x)</div><div class='add'>+    fun_l0_n892(@x)</div><div class='add'>+    fun_l0_n893(@x)</div><div class='add'>+    fun_l0_n894(@x)</div><div class='add'>+    fun_l0_n895(@x)</div><div class='add'>+    fun_l0_n896(@x)</div><div class='add'>+    fun_l0_n897(@x)</div><div class='add'>+    fun_l0_n898(@x)</div><div class='add'>+    fun_l0_n899(@x)</div><div class='add'>+    fun_l0_n900(@x)</div><div class='add'>+    fun_l0_n901(@x)</div><div class='add'>+    fun_l0_n902(@x)</div><div class='add'>+    fun_l0_n903(@x)</div><div class='add'>+    fun_l0_n904(@x)</div><div class='add'>+    fun_l0_n905(@x)</div><div class='add'>+    fun_l0_n906(@x)</div><div class='add'>+    fun_l0_n907(@x)</div><div class='add'>+    fun_l0_n908(@x)</div><div class='add'>+    fun_l0_n909(@x)</div><div class='add'>+    fun_l0_n910(@x)</div><div class='add'>+    fun_l0_n911(@x)</div><div class='add'>+    fun_l0_n912(@x)</div><div class='add'>+    fun_l0_n913(@x)</div><div class='add'>+    fun_l0_n914(@x)</div><div class='add'>+    fun_l0_n915(@x)</div><div class='add'>+    fun_l0_n916(@x)</div><div class='add'>+    fun_l0_n917(@x)</div><div class='add'>+    fun_l0_n918(@x)</div><div class='add'>+    fun_l0_n919(@x)</div><div class='add'>+    fun_l0_n920(@x)</div><div class='add'>+    fun_l0_n921(@x)</div><div class='add'>+    fun_l0_n922(@x)</div><div class='add'>+    fun_l0_n923(@x)</div><div class='add'>+    fun_l0_n924(@x)</div><div class='add'>+    fun_l0_n925(@x)</div><div class='add'>+    fun_l0_n926(@x)</div><div class='add'>+    fun_l0_n927(@x)</div><div class='add'>+    fun_l0_n928(@x)</div><div class='add'>+    fun_l0_n929(@x)</div><div class='add'>+    fun_l0_n930(@x)</div><div class='add'>+    fun_l0_n931(@x)</div><div class='add'>+    fun_l0_n932(@x)</div><div class='add'>+    fun_l0_n933(@x)</div><div class='add'>+    fun_l0_n934(@x)</div><div class='add'>+    fun_l0_n935(@x)</div><div class='add'>+    fun_l0_n936(@x)</div><div class='add'>+    fun_l0_n937(@x)</div><div class='add'>+    fun_l0_n938(@x)</div><div class='add'>+    fun_l0_n939(@x)</div><div class='add'>+    fun_l0_n940(@x)</div><div class='add'>+    fun_l0_n941(@x)</div><div class='add'>+    fun_l0_n942(@x)</div><div class='add'>+    fun_l0_n943(@x)</div><div class='add'>+    fun_l0_n944(@x)</div><div class='add'>+    fun_l0_n945(@x)</div><div class='add'>+    fun_l0_n946(@x)</div><div class='add'>+    fun_l0_n947(@x)</div><div class='add'>+    fun_l0_n948(@x)</div><div class='add'>+    fun_l0_n949(@x)</div><div class='add'>+    fun_l0_n950(@x)</div><div class='add'>+    fun_l0_n951(@x)</div><div class='add'>+    fun_l0_n952(@x)</div><div class='add'>+    fun_l0_n953(@x)</div><div class='add'>+    fun_l0_n954(@x)</div><div class='add'>+    fun_l0_n955(@x)</div><div class='add'>+    fun_l0_n956(@x)</div><div class='add'>+    fun_l0_n957(@x)</div><div class='add'>+    fun_l0_n958(@x)</div><div class='add'>+    fun_l0_n959(@x)</div><div class='add'>+    fun_l0_n960(@x)</div><div class='add'>+    fun_l0_n961(@x)</div><div class='add'>+    fun_l0_n962(@x)</div><div class='add'>+    fun_l0_n963(@x)</div><div class='add'>+    fun_l0_n964(@x)</div><div class='add'>+    fun_l0_n965(@x)</div><div class='add'>+    fun_l0_n966(@x)</div><div class='add'>+    fun_l0_n967(@x)</div><div class='add'>+    fun_l0_n968(@x)</div><div class='add'>+    fun_l0_n969(@x)</div><div class='add'>+    fun_l0_n970(@x)</div><div class='add'>+    fun_l0_n971(@x)</div><div class='add'>+    fun_l0_n972(@x)</div><div class='add'>+    fun_l0_n973(@x)</div><div class='add'>+    fun_l0_n974(@x)</div><div class='add'>+    fun_l0_n975(@x)</div><div class='add'>+    fun_l0_n976(@x)</div><div class='add'>+    fun_l0_n977(@x)</div><div class='add'>+    fun_l0_n978(@x)</div><div class='add'>+    fun_l0_n979(@x)</div><div class='add'>+    fun_l0_n980(@x)</div><div class='add'>+    fun_l0_n981(@x)</div><div class='add'>+    fun_l0_n982(@x)</div><div class='add'>+    fun_l0_n983(@x)</div><div class='add'>+    fun_l0_n984(@x)</div><div class='add'>+    fun_l0_n985(@x)</div><div class='add'>+    fun_l0_n986(@x)</div><div class='add'>+    fun_l0_n987(@x)</div><div class='add'>+    fun_l0_n988(@x)</div><div class='add'>+    fun_l0_n989(@x)</div><div class='add'>+    fun_l0_n990(@x)</div><div class='add'>+    fun_l0_n991(@x)</div><div class='add'>+    fun_l0_n992(@x)</div><div class='add'>+    fun_l0_n993(@x)</div><div class='add'>+    fun_l0_n994(@x)</div><div class='add'>+    fun_l0_n995(@x)</div><div class='add'>+    fun_l0_n996(@x)</div><div class='add'>+    fun_l0_n997(@x)</div><div class='add'>+    fun_l0_n998(@x)</div><div class='add'>+    fun_l0_n999(@x)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+@count</div><div class='add'>+</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_yjit_30k_methods.rb b/bootstraptest/test_yjit_30k_methods.rb<br/>new file mode 100644<br/>index 0000000000..f2acea4ce5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_yjit_30k_methods.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_yjit_30k_methods.rb</a></div><div class='hunk'>@@ -0,0 +1,121018 @@</div><div class='add'>+# This is a torture test for the JIT.</div><div class='add'>+# There are 30K tiny methods in a 30-deep call hierarchy.</div><div class='add'>+assert_equal '1000000', %q{</div><div class='add'>+</div><div class='add'>+def fun_l0_n0()</div><div class='add'>+    fun_l1_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n1()</div><div class='add'>+    fun_l1_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n2()</div><div class='add'>+    fun_l1_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n3()</div><div class='add'>+    fun_l1_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n4()</div><div class='add'>+    fun_l1_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n5()</div><div class='add'>+    fun_l1_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n6()</div><div class='add'>+    fun_l1_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n7()</div><div class='add'>+    fun_l1_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n8()</div><div class='add'>+    fun_l1_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n9()</div><div class='add'>+    fun_l1_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n10()</div><div class='add'>+    fun_l1_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n11()</div><div class='add'>+    fun_l1_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n12()</div><div class='add'>+    fun_l1_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n13()</div><div class='add'>+    fun_l1_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n14()</div><div class='add'>+    fun_l1_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n15()</div><div class='add'>+    fun_l1_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n16()</div><div class='add'>+    fun_l1_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n17()</div><div class='add'>+    fun_l1_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n18()</div><div class='add'>+    fun_l1_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n19()</div><div class='add'>+    fun_l1_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n20()</div><div class='add'>+    fun_l1_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n21()</div><div class='add'>+    fun_l1_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n22()</div><div class='add'>+    fun_l1_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n23()</div><div class='add'>+    fun_l1_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n24()</div><div class='add'>+    fun_l1_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n25()</div><div class='add'>+    fun_l1_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n26()</div><div class='add'>+    fun_l1_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n27()</div><div class='add'>+    fun_l1_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n28()</div><div class='add'>+    fun_l1_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n29()</div><div class='add'>+    fun_l1_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n30()</div><div class='add'>+    fun_l1_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n31()</div><div class='add'>+    fun_l1_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n32()</div><div class='add'>+    fun_l1_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n33()</div><div class='add'>+    fun_l1_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n34()</div><div class='add'>+    fun_l1_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n35()</div><div class='add'>+    fun_l1_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n36()</div><div class='add'>+    fun_l1_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n37()</div><div class='add'>+    fun_l1_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n38()</div><div class='add'>+    fun_l1_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n39()</div><div class='add'>+    fun_l1_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n40()</div><div class='add'>+    fun_l1_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n41()</div><div class='add'>+    fun_l1_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n42()</div><div class='add'>+    fun_l1_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n43()</div><div class='add'>+    fun_l1_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n44()</div><div class='add'>+    fun_l1_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n45()</div><div class='add'>+    fun_l1_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n46()</div><div class='add'>+    fun_l1_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n47()</div><div class='add'>+    fun_l1_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n48()</div><div class='add'>+    fun_l1_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n49()</div><div class='add'>+    fun_l1_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n50()</div><div class='add'>+    fun_l1_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n51()</div><div class='add'>+    fun_l1_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n52()</div><div class='add'>+    fun_l1_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n53()</div><div class='add'>+    fun_l1_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n54()</div><div class='add'>+    fun_l1_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n55()</div><div class='add'>+    fun_l1_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n56()</div><div class='add'>+    fun_l1_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n57()</div><div class='add'>+    fun_l1_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n58()</div><div class='add'>+    fun_l1_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n59()</div><div class='add'>+    fun_l1_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n60()</div><div class='add'>+    fun_l1_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n61()</div><div class='add'>+    fun_l1_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n62()</div><div class='add'>+    fun_l1_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n63()</div><div class='add'>+    fun_l1_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n64()</div><div class='add'>+    fun_l1_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n65()</div><div class='add'>+    fun_l1_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n66()</div><div class='add'>+    fun_l1_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n67()</div><div class='add'>+    fun_l1_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n68()</div><div class='add'>+    fun_l1_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n69()</div><div class='add'>+    fun_l1_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n70()</div><div class='add'>+    fun_l1_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n71()</div><div class='add'>+    fun_l1_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n72()</div><div class='add'>+    fun_l1_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n73()</div><div class='add'>+    fun_l1_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n74()</div><div class='add'>+    fun_l1_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n75()</div><div class='add'>+    fun_l1_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n76()</div><div class='add'>+    fun_l1_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n77()</div><div class='add'>+    fun_l1_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n78()</div><div class='add'>+    fun_l1_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n79()</div><div class='add'>+    fun_l1_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n80()</div><div class='add'>+    fun_l1_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n81()</div><div class='add'>+    fun_l1_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n82()</div><div class='add'>+    fun_l1_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n83()</div><div class='add'>+    fun_l1_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n84()</div><div class='add'>+    fun_l1_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n85()</div><div class='add'>+    fun_l1_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n86()</div><div class='add'>+    fun_l1_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n87()</div><div class='add'>+    fun_l1_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n88()</div><div class='add'>+    fun_l1_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n89()</div><div class='add'>+    fun_l1_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n90()</div><div class='add'>+    fun_l1_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n91()</div><div class='add'>+    fun_l1_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n92()</div><div class='add'>+    fun_l1_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n93()</div><div class='add'>+    fun_l1_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n94()</div><div class='add'>+    fun_l1_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n95()</div><div class='add'>+    fun_l1_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n96()</div><div class='add'>+    fun_l1_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n97()</div><div class='add'>+    fun_l1_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n98()</div><div class='add'>+    fun_l1_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n99()</div><div class='add'>+    fun_l1_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n100()</div><div class='add'>+    fun_l1_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n101()</div><div class='add'>+    fun_l1_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n102()</div><div class='add'>+    fun_l1_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n103()</div><div class='add'>+    fun_l1_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n104()</div><div class='add'>+    fun_l1_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n105()</div><div class='add'>+    fun_l1_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n106()</div><div class='add'>+    fun_l1_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n107()</div><div class='add'>+    fun_l1_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n108()</div><div class='add'>+    fun_l1_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n109()</div><div class='add'>+    fun_l1_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n110()</div><div class='add'>+    fun_l1_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n111()</div><div class='add'>+    fun_l1_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n112()</div><div class='add'>+    fun_l1_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n113()</div><div class='add'>+    fun_l1_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n114()</div><div class='add'>+    fun_l1_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n115()</div><div class='add'>+    fun_l1_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n116()</div><div class='add'>+    fun_l1_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n117()</div><div class='add'>+    fun_l1_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n118()</div><div class='add'>+    fun_l1_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n119()</div><div class='add'>+    fun_l1_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n120()</div><div class='add'>+    fun_l1_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n121()</div><div class='add'>+    fun_l1_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n122()</div><div class='add'>+    fun_l1_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n123()</div><div class='add'>+    fun_l1_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n124()</div><div class='add'>+    fun_l1_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n125()</div><div class='add'>+    fun_l1_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n126()</div><div class='add'>+    fun_l1_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n127()</div><div class='add'>+    fun_l1_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n128()</div><div class='add'>+    fun_l1_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n129()</div><div class='add'>+    fun_l1_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n130()</div><div class='add'>+    fun_l1_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n131()</div><div class='add'>+    fun_l1_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n132()</div><div class='add'>+    fun_l1_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n133()</div><div class='add'>+    fun_l1_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n134()</div><div class='add'>+    fun_l1_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n135()</div><div class='add'>+    fun_l1_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n136()</div><div class='add'>+    fun_l1_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n137()</div><div class='add'>+    fun_l1_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n138()</div><div class='add'>+    fun_l1_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n139()</div><div class='add'>+    fun_l1_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n140()</div><div class='add'>+    fun_l1_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n141()</div><div class='add'>+    fun_l1_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n142()</div><div class='add'>+    fun_l1_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n143()</div><div class='add'>+    fun_l1_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n144()</div><div class='add'>+    fun_l1_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n145()</div><div class='add'>+    fun_l1_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n146()</div><div class='add'>+    fun_l1_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n147()</div><div class='add'>+    fun_l1_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n148()</div><div class='add'>+    fun_l1_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n149()</div><div class='add'>+    fun_l1_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n150()</div><div class='add'>+    fun_l1_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n151()</div><div class='add'>+    fun_l1_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n152()</div><div class='add'>+    fun_l1_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n153()</div><div class='add'>+    fun_l1_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n154()</div><div class='add'>+    fun_l1_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n155()</div><div class='add'>+    fun_l1_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n156()</div><div class='add'>+    fun_l1_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n157()</div><div class='add'>+    fun_l1_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n158()</div><div class='add'>+    fun_l1_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n159()</div><div class='add'>+    fun_l1_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n160()</div><div class='add'>+    fun_l1_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n161()</div><div class='add'>+    fun_l1_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n162()</div><div class='add'>+    fun_l1_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n163()</div><div class='add'>+    fun_l1_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n164()</div><div class='add'>+    fun_l1_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n165()</div><div class='add'>+    fun_l1_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n166()</div><div class='add'>+    fun_l1_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n167()</div><div class='add'>+    fun_l1_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n168()</div><div class='add'>+    fun_l1_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n169()</div><div class='add'>+    fun_l1_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n170()</div><div class='add'>+    fun_l1_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n171()</div><div class='add'>+    fun_l1_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n172()</div><div class='add'>+    fun_l1_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n173()</div><div class='add'>+    fun_l1_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n174()</div><div class='add'>+    fun_l1_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n175()</div><div class='add'>+    fun_l1_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n176()</div><div class='add'>+    fun_l1_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n177()</div><div class='add'>+    fun_l1_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n178()</div><div class='add'>+    fun_l1_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n179()</div><div class='add'>+    fun_l1_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n180()</div><div class='add'>+    fun_l1_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n181()</div><div class='add'>+    fun_l1_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n182()</div><div class='add'>+    fun_l1_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n183()</div><div class='add'>+    fun_l1_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n184()</div><div class='add'>+    fun_l1_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n185()</div><div class='add'>+    fun_l1_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n186()</div><div class='add'>+    fun_l1_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n187()</div><div class='add'>+    fun_l1_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n188()</div><div class='add'>+    fun_l1_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n189()</div><div class='add'>+    fun_l1_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n190()</div><div class='add'>+    fun_l1_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n191()</div><div class='add'>+    fun_l1_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n192()</div><div class='add'>+    fun_l1_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n193()</div><div class='add'>+    fun_l1_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n194()</div><div class='add'>+    fun_l1_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n195()</div><div class='add'>+    fun_l1_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n196()</div><div class='add'>+    fun_l1_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n197()</div><div class='add'>+    fun_l1_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n198()</div><div class='add'>+    fun_l1_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n199()</div><div class='add'>+    fun_l1_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n200()</div><div class='add'>+    fun_l1_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n201()</div><div class='add'>+    fun_l1_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n202()</div><div class='add'>+    fun_l1_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n203()</div><div class='add'>+    fun_l1_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n204()</div><div class='add'>+    fun_l1_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n205()</div><div class='add'>+    fun_l1_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n206()</div><div class='add'>+    fun_l1_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n207()</div><div class='add'>+    fun_l1_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n208()</div><div class='add'>+    fun_l1_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n209()</div><div class='add'>+    fun_l1_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n210()</div><div class='add'>+    fun_l1_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n211()</div><div class='add'>+    fun_l1_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n212()</div><div class='add'>+    fun_l1_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n213()</div><div class='add'>+    fun_l1_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n214()</div><div class='add'>+    fun_l1_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n215()</div><div class='add'>+    fun_l1_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n216()</div><div class='add'>+    fun_l1_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n217()</div><div class='add'>+    fun_l1_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n218()</div><div class='add'>+    fun_l1_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n219()</div><div class='add'>+    fun_l1_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n220()</div><div class='add'>+    fun_l1_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n221()</div><div class='add'>+    fun_l1_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n222()</div><div class='add'>+    fun_l1_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n223()</div><div class='add'>+    fun_l1_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n224()</div><div class='add'>+    fun_l1_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n225()</div><div class='add'>+    fun_l1_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n226()</div><div class='add'>+    fun_l1_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n227()</div><div class='add'>+    fun_l1_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n228()</div><div class='add'>+    fun_l1_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n229()</div><div class='add'>+    fun_l1_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n230()</div><div class='add'>+    fun_l1_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n231()</div><div class='add'>+    fun_l1_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n232()</div><div class='add'>+    fun_l1_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n233()</div><div class='add'>+    fun_l1_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n234()</div><div class='add'>+    fun_l1_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n235()</div><div class='add'>+    fun_l1_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n236()</div><div class='add'>+    fun_l1_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n237()</div><div class='add'>+    fun_l1_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n238()</div><div class='add'>+    fun_l1_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n239()</div><div class='add'>+    fun_l1_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n240()</div><div class='add'>+    fun_l1_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n241()</div><div class='add'>+    fun_l1_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n242()</div><div class='add'>+    fun_l1_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n243()</div><div class='add'>+    fun_l1_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n244()</div><div class='add'>+    fun_l1_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n245()</div><div class='add'>+    fun_l1_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n246()</div><div class='add'>+    fun_l1_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n247()</div><div class='add'>+    fun_l1_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n248()</div><div class='add'>+    fun_l1_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n249()</div><div class='add'>+    fun_l1_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n250()</div><div class='add'>+    fun_l1_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n251()</div><div class='add'>+    fun_l1_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n252()</div><div class='add'>+    fun_l1_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n253()</div><div class='add'>+    fun_l1_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n254()</div><div class='add'>+    fun_l1_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n255()</div><div class='add'>+    fun_l1_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n256()</div><div class='add'>+    fun_l1_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n257()</div><div class='add'>+    fun_l1_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n258()</div><div class='add'>+    fun_l1_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n259()</div><div class='add'>+    fun_l1_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n260()</div><div class='add'>+    fun_l1_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n261()</div><div class='add'>+    fun_l1_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n262()</div><div class='add'>+    fun_l1_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n263()</div><div class='add'>+    fun_l1_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n264()</div><div class='add'>+    fun_l1_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n265()</div><div class='add'>+    fun_l1_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n266()</div><div class='add'>+    fun_l1_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n267()</div><div class='add'>+    fun_l1_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n268()</div><div class='add'>+    fun_l1_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n269()</div><div class='add'>+    fun_l1_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n270()</div><div class='add'>+    fun_l1_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n271()</div><div class='add'>+    fun_l1_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n272()</div><div class='add'>+    fun_l1_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n273()</div><div class='add'>+    fun_l1_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n274()</div><div class='add'>+    fun_l1_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n275()</div><div class='add'>+    fun_l1_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n276()</div><div class='add'>+    fun_l1_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n277()</div><div class='add'>+    fun_l1_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n278()</div><div class='add'>+    fun_l1_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n279()</div><div class='add'>+    fun_l1_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n280()</div><div class='add'>+    fun_l1_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n281()</div><div class='add'>+    fun_l1_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n282()</div><div class='add'>+    fun_l1_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n283()</div><div class='add'>+    fun_l1_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n284()</div><div class='add'>+    fun_l1_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n285()</div><div class='add'>+    fun_l1_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n286()</div><div class='add'>+    fun_l1_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n287()</div><div class='add'>+    fun_l1_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n288()</div><div class='add'>+    fun_l1_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n289()</div><div class='add'>+    fun_l1_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n290()</div><div class='add'>+    fun_l1_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n291()</div><div class='add'>+    fun_l1_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n292()</div><div class='add'>+    fun_l1_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n293()</div><div class='add'>+    fun_l1_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n294()</div><div class='add'>+    fun_l1_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n295()</div><div class='add'>+    fun_l1_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n296()</div><div class='add'>+    fun_l1_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n297()</div><div class='add'>+    fun_l1_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n298()</div><div class='add'>+    fun_l1_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n299()</div><div class='add'>+    fun_l1_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n300()</div><div class='add'>+    fun_l1_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n301()</div><div class='add'>+    fun_l1_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n302()</div><div class='add'>+    fun_l1_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n303()</div><div class='add'>+    fun_l1_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n304()</div><div class='add'>+    fun_l1_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n305()</div><div class='add'>+    fun_l1_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n306()</div><div class='add'>+    fun_l1_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n307()</div><div class='add'>+    fun_l1_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n308()</div><div class='add'>+    fun_l1_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n309()</div><div class='add'>+    fun_l1_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n310()</div><div class='add'>+    fun_l1_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n311()</div><div class='add'>+    fun_l1_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n312()</div><div class='add'>+    fun_l1_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n313()</div><div class='add'>+    fun_l1_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n314()</div><div class='add'>+    fun_l1_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n315()</div><div class='add'>+    fun_l1_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n316()</div><div class='add'>+    fun_l1_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n317()</div><div class='add'>+    fun_l1_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n318()</div><div class='add'>+    fun_l1_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n319()</div><div class='add'>+    fun_l1_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n320()</div><div class='add'>+    fun_l1_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n321()</div><div class='add'>+    fun_l1_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n322()</div><div class='add'>+    fun_l1_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n323()</div><div class='add'>+    fun_l1_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n324()</div><div class='add'>+    fun_l1_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n325()</div><div class='add'>+    fun_l1_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n326()</div><div class='add'>+    fun_l1_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n327()</div><div class='add'>+    fun_l1_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n328()</div><div class='add'>+    fun_l1_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n329()</div><div class='add'>+    fun_l1_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n330()</div><div class='add'>+    fun_l1_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n331()</div><div class='add'>+    fun_l1_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n332()</div><div class='add'>+    fun_l1_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n333()</div><div class='add'>+    fun_l1_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n334()</div><div class='add'>+    fun_l1_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n335()</div><div class='add'>+    fun_l1_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n336()</div><div class='add'>+    fun_l1_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n337()</div><div class='add'>+    fun_l1_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n338()</div><div class='add'>+    fun_l1_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n339()</div><div class='add'>+    fun_l1_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n340()</div><div class='add'>+    fun_l1_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n341()</div><div class='add'>+    fun_l1_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n342()</div><div class='add'>+    fun_l1_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n343()</div><div class='add'>+    fun_l1_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n344()</div><div class='add'>+    fun_l1_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n345()</div><div class='add'>+    fun_l1_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n346()</div><div class='add'>+    fun_l1_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n347()</div><div class='add'>+    fun_l1_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n348()</div><div class='add'>+    fun_l1_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n349()</div><div class='add'>+    fun_l1_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n350()</div><div class='add'>+    fun_l1_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n351()</div><div class='add'>+    fun_l1_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n352()</div><div class='add'>+    fun_l1_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n353()</div><div class='add'>+    fun_l1_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n354()</div><div class='add'>+    fun_l1_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n355()</div><div class='add'>+    fun_l1_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n356()</div><div class='add'>+    fun_l1_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n357()</div><div class='add'>+    fun_l1_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n358()</div><div class='add'>+    fun_l1_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n359()</div><div class='add'>+    fun_l1_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n360()</div><div class='add'>+    fun_l1_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n361()</div><div class='add'>+    fun_l1_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n362()</div><div class='add'>+    fun_l1_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n363()</div><div class='add'>+    fun_l1_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n364()</div><div class='add'>+    fun_l1_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n365()</div><div class='add'>+    fun_l1_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n366()</div><div class='add'>+    fun_l1_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n367()</div><div class='add'>+    fun_l1_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n368()</div><div class='add'>+    fun_l1_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n369()</div><div class='add'>+    fun_l1_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n370()</div><div class='add'>+    fun_l1_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n371()</div><div class='add'>+    fun_l1_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n372()</div><div class='add'>+    fun_l1_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n373()</div><div class='add'>+    fun_l1_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n374()</div><div class='add'>+    fun_l1_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n375()</div><div class='add'>+    fun_l1_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n376()</div><div class='add'>+    fun_l1_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n377()</div><div class='add'>+    fun_l1_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n378()</div><div class='add'>+    fun_l1_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n379()</div><div class='add'>+    fun_l1_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n380()</div><div class='add'>+    fun_l1_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n381()</div><div class='add'>+    fun_l1_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n382()</div><div class='add'>+    fun_l1_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n383()</div><div class='add'>+    fun_l1_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n384()</div><div class='add'>+    fun_l1_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n385()</div><div class='add'>+    fun_l1_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n386()</div><div class='add'>+    fun_l1_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n387()</div><div class='add'>+    fun_l1_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n388()</div><div class='add'>+    fun_l1_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n389()</div><div class='add'>+    fun_l1_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n390()</div><div class='add'>+    fun_l1_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n391()</div><div class='add'>+    fun_l1_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n392()</div><div class='add'>+    fun_l1_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n393()</div><div class='add'>+    fun_l1_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n394()</div><div class='add'>+    fun_l1_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n395()</div><div class='add'>+    fun_l1_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n396()</div><div class='add'>+    fun_l1_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n397()</div><div class='add'>+    fun_l1_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n398()</div><div class='add'>+    fun_l1_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n399()</div><div class='add'>+    fun_l1_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n400()</div><div class='add'>+    fun_l1_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n401()</div><div class='add'>+    fun_l1_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n402()</div><div class='add'>+    fun_l1_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n403()</div><div class='add'>+    fun_l1_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n404()</div><div class='add'>+    fun_l1_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n405()</div><div class='add'>+    fun_l1_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n406()</div><div class='add'>+    fun_l1_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n407()</div><div class='add'>+    fun_l1_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n408()</div><div class='add'>+    fun_l1_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n409()</div><div class='add'>+    fun_l1_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n410()</div><div class='add'>+    fun_l1_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n411()</div><div class='add'>+    fun_l1_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n412()</div><div class='add'>+    fun_l1_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n413()</div><div class='add'>+    fun_l1_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n414()</div><div class='add'>+    fun_l1_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n415()</div><div class='add'>+    fun_l1_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n416()</div><div class='add'>+    fun_l1_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n417()</div><div class='add'>+    fun_l1_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n418()</div><div class='add'>+    fun_l1_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n419()</div><div class='add'>+    fun_l1_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n420()</div><div class='add'>+    fun_l1_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n421()</div><div class='add'>+    fun_l1_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n422()</div><div class='add'>+    fun_l1_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n423()</div><div class='add'>+    fun_l1_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n424()</div><div class='add'>+    fun_l1_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n425()</div><div class='add'>+    fun_l1_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n426()</div><div class='add'>+    fun_l1_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n427()</div><div class='add'>+    fun_l1_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n428()</div><div class='add'>+    fun_l1_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n429()</div><div class='add'>+    fun_l1_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n430()</div><div class='add'>+    fun_l1_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n431()</div><div class='add'>+    fun_l1_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n432()</div><div class='add'>+    fun_l1_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n433()</div><div class='add'>+    fun_l1_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n434()</div><div class='add'>+    fun_l1_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n435()</div><div class='add'>+    fun_l1_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n436()</div><div class='add'>+    fun_l1_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n437()</div><div class='add'>+    fun_l1_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n438()</div><div class='add'>+    fun_l1_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n439()</div><div class='add'>+    fun_l1_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n440()</div><div class='add'>+    fun_l1_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n441()</div><div class='add'>+    fun_l1_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n442()</div><div class='add'>+    fun_l1_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n443()</div><div class='add'>+    fun_l1_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n444()</div><div class='add'>+    fun_l1_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n445()</div><div class='add'>+    fun_l1_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n446()</div><div class='add'>+    fun_l1_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n447()</div><div class='add'>+    fun_l1_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n448()</div><div class='add'>+    fun_l1_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n449()</div><div class='add'>+    fun_l1_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n450()</div><div class='add'>+    fun_l1_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n451()</div><div class='add'>+    fun_l1_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n452()</div><div class='add'>+    fun_l1_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n453()</div><div class='add'>+    fun_l1_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n454()</div><div class='add'>+    fun_l1_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n455()</div><div class='add'>+    fun_l1_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n456()</div><div class='add'>+    fun_l1_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n457()</div><div class='add'>+    fun_l1_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n458()</div><div class='add'>+    fun_l1_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n459()</div><div class='add'>+    fun_l1_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n460()</div><div class='add'>+    fun_l1_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n461()</div><div class='add'>+    fun_l1_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n462()</div><div class='add'>+    fun_l1_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n463()</div><div class='add'>+    fun_l1_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n464()</div><div class='add'>+    fun_l1_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n465()</div><div class='add'>+    fun_l1_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n466()</div><div class='add'>+    fun_l1_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n467()</div><div class='add'>+    fun_l1_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n468()</div><div class='add'>+    fun_l1_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n469()</div><div class='add'>+    fun_l1_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n470()</div><div class='add'>+    fun_l1_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n471()</div><div class='add'>+    fun_l1_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n472()</div><div class='add'>+    fun_l1_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n473()</div><div class='add'>+    fun_l1_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n474()</div><div class='add'>+    fun_l1_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n475()</div><div class='add'>+    fun_l1_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n476()</div><div class='add'>+    fun_l1_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n477()</div><div class='add'>+    fun_l1_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n478()</div><div class='add'>+    fun_l1_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n479()</div><div class='add'>+    fun_l1_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n480()</div><div class='add'>+    fun_l1_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n481()</div><div class='add'>+    fun_l1_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n482()</div><div class='add'>+    fun_l1_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n483()</div><div class='add'>+    fun_l1_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n484()</div><div class='add'>+    fun_l1_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n485()</div><div class='add'>+    fun_l1_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n486()</div><div class='add'>+    fun_l1_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n487()</div><div class='add'>+    fun_l1_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n488()</div><div class='add'>+    fun_l1_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n489()</div><div class='add'>+    fun_l1_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n490()</div><div class='add'>+    fun_l1_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n491()</div><div class='add'>+    fun_l1_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n492()</div><div class='add'>+    fun_l1_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n493()</div><div class='add'>+    fun_l1_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n494()</div><div class='add'>+    fun_l1_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n495()</div><div class='add'>+    fun_l1_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n496()</div><div class='add'>+    fun_l1_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n497()</div><div class='add'>+    fun_l1_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n498()</div><div class='add'>+    fun_l1_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n499()</div><div class='add'>+    fun_l1_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n500()</div><div class='add'>+    fun_l1_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n501()</div><div class='add'>+    fun_l1_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n502()</div><div class='add'>+    fun_l1_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n503()</div><div class='add'>+    fun_l1_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n504()</div><div class='add'>+    fun_l1_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n505()</div><div class='add'>+    fun_l1_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n506()</div><div class='add'>+    fun_l1_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n507()</div><div class='add'>+    fun_l1_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n508()</div><div class='add'>+    fun_l1_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n509()</div><div class='add'>+    fun_l1_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n510()</div><div class='add'>+    fun_l1_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n511()</div><div class='add'>+    fun_l1_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n512()</div><div class='add'>+    fun_l1_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n513()</div><div class='add'>+    fun_l1_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n514()</div><div class='add'>+    fun_l1_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n515()</div><div class='add'>+    fun_l1_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n516()</div><div class='add'>+    fun_l1_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n517()</div><div class='add'>+    fun_l1_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n518()</div><div class='add'>+    fun_l1_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n519()</div><div class='add'>+    fun_l1_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n520()</div><div class='add'>+    fun_l1_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n521()</div><div class='add'>+    fun_l1_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n522()</div><div class='add'>+    fun_l1_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n523()</div><div class='add'>+    fun_l1_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n524()</div><div class='add'>+    fun_l1_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n525()</div><div class='add'>+    fun_l1_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n526()</div><div class='add'>+    fun_l1_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n527()</div><div class='add'>+    fun_l1_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n528()</div><div class='add'>+    fun_l1_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n529()</div><div class='add'>+    fun_l1_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n530()</div><div class='add'>+    fun_l1_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n531()</div><div class='add'>+    fun_l1_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n532()</div><div class='add'>+    fun_l1_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n533()</div><div class='add'>+    fun_l1_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n534()</div><div class='add'>+    fun_l1_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n535()</div><div class='add'>+    fun_l1_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n536()</div><div class='add'>+    fun_l1_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n537()</div><div class='add'>+    fun_l1_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n538()</div><div class='add'>+    fun_l1_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n539()</div><div class='add'>+    fun_l1_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n540()</div><div class='add'>+    fun_l1_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n541()</div><div class='add'>+    fun_l1_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n542()</div><div class='add'>+    fun_l1_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n543()</div><div class='add'>+    fun_l1_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n544()</div><div class='add'>+    fun_l1_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n545()</div><div class='add'>+    fun_l1_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n546()</div><div class='add'>+    fun_l1_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n547()</div><div class='add'>+    fun_l1_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n548()</div><div class='add'>+    fun_l1_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n549()</div><div class='add'>+    fun_l1_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n550()</div><div class='add'>+    fun_l1_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n551()</div><div class='add'>+    fun_l1_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n552()</div><div class='add'>+    fun_l1_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n553()</div><div class='add'>+    fun_l1_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n554()</div><div class='add'>+    fun_l1_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n555()</div><div class='add'>+    fun_l1_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n556()</div><div class='add'>+    fun_l1_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n557()</div><div class='add'>+    fun_l1_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n558()</div><div class='add'>+    fun_l1_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n559()</div><div class='add'>+    fun_l1_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n560()</div><div class='add'>+    fun_l1_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n561()</div><div class='add'>+    fun_l1_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n562()</div><div class='add'>+    fun_l1_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n563()</div><div class='add'>+    fun_l1_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n564()</div><div class='add'>+    fun_l1_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n565()</div><div class='add'>+    fun_l1_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n566()</div><div class='add'>+    fun_l1_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n567()</div><div class='add'>+    fun_l1_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n568()</div><div class='add'>+    fun_l1_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n569()</div><div class='add'>+    fun_l1_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n570()</div><div class='add'>+    fun_l1_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n571()</div><div class='add'>+    fun_l1_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n572()</div><div class='add'>+    fun_l1_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n573()</div><div class='add'>+    fun_l1_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n574()</div><div class='add'>+    fun_l1_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n575()</div><div class='add'>+    fun_l1_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n576()</div><div class='add'>+    fun_l1_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n577()</div><div class='add'>+    fun_l1_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n578()</div><div class='add'>+    fun_l1_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n579()</div><div class='add'>+    fun_l1_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n580()</div><div class='add'>+    fun_l1_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n581()</div><div class='add'>+    fun_l1_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n582()</div><div class='add'>+    fun_l1_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n583()</div><div class='add'>+    fun_l1_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n584()</div><div class='add'>+    fun_l1_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n585()</div><div class='add'>+    fun_l1_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n586()</div><div class='add'>+    fun_l1_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n587()</div><div class='add'>+    fun_l1_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n588()</div><div class='add'>+    fun_l1_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n589()</div><div class='add'>+    fun_l1_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n590()</div><div class='add'>+    fun_l1_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n591()</div><div class='add'>+    fun_l1_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n592()</div><div class='add'>+    fun_l1_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n593()</div><div class='add'>+    fun_l1_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n594()</div><div class='add'>+    fun_l1_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n595()</div><div class='add'>+    fun_l1_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n596()</div><div class='add'>+    fun_l1_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n597()</div><div class='add'>+    fun_l1_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n598()</div><div class='add'>+    fun_l1_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n599()</div><div class='add'>+    fun_l1_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n600()</div><div class='add'>+    fun_l1_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n601()</div><div class='add'>+    fun_l1_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n602()</div><div class='add'>+    fun_l1_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n603()</div><div class='add'>+    fun_l1_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n604()</div><div class='add'>+    fun_l1_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n605()</div><div class='add'>+    fun_l1_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n606()</div><div class='add'>+    fun_l1_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n607()</div><div class='add'>+    fun_l1_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n608()</div><div class='add'>+    fun_l1_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n609()</div><div class='add'>+    fun_l1_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n610()</div><div class='add'>+    fun_l1_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n611()</div><div class='add'>+    fun_l1_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n612()</div><div class='add'>+    fun_l1_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n613()</div><div class='add'>+    fun_l1_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n614()</div><div class='add'>+    fun_l1_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n615()</div><div class='add'>+    fun_l1_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n616()</div><div class='add'>+    fun_l1_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n617()</div><div class='add'>+    fun_l1_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n618()</div><div class='add'>+    fun_l1_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n619()</div><div class='add'>+    fun_l1_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n620()</div><div class='add'>+    fun_l1_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n621()</div><div class='add'>+    fun_l1_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n622()</div><div class='add'>+    fun_l1_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n623()</div><div class='add'>+    fun_l1_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n624()</div><div class='add'>+    fun_l1_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n625()</div><div class='add'>+    fun_l1_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n626()</div><div class='add'>+    fun_l1_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n627()</div><div class='add'>+    fun_l1_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n628()</div><div class='add'>+    fun_l1_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n629()</div><div class='add'>+    fun_l1_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n630()</div><div class='add'>+    fun_l1_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n631()</div><div class='add'>+    fun_l1_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n632()</div><div class='add'>+    fun_l1_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n633()</div><div class='add'>+    fun_l1_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n634()</div><div class='add'>+    fun_l1_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n635()</div><div class='add'>+    fun_l1_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n636()</div><div class='add'>+    fun_l1_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n637()</div><div class='add'>+    fun_l1_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n638()</div><div class='add'>+    fun_l1_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n639()</div><div class='add'>+    fun_l1_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n640()</div><div class='add'>+    fun_l1_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n641()</div><div class='add'>+    fun_l1_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n642()</div><div class='add'>+    fun_l1_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n643()</div><div class='add'>+    fun_l1_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n644()</div><div class='add'>+    fun_l1_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n645()</div><div class='add'>+    fun_l1_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n646()</div><div class='add'>+    fun_l1_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n647()</div><div class='add'>+    fun_l1_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n648()</div><div class='add'>+    fun_l1_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n649()</div><div class='add'>+    fun_l1_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n650()</div><div class='add'>+    fun_l1_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n651()</div><div class='add'>+    fun_l1_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n652()</div><div class='add'>+    fun_l1_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n653()</div><div class='add'>+    fun_l1_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n654()</div><div class='add'>+    fun_l1_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n655()</div><div class='add'>+    fun_l1_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n656()</div><div class='add'>+    fun_l1_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n657()</div><div class='add'>+    fun_l1_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n658()</div><div class='add'>+    fun_l1_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n659()</div><div class='add'>+    fun_l1_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n660()</div><div class='add'>+    fun_l1_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n661()</div><div class='add'>+    fun_l1_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n662()</div><div class='add'>+    fun_l1_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n663()</div><div class='add'>+    fun_l1_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n664()</div><div class='add'>+    fun_l1_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n665()</div><div class='add'>+    fun_l1_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n666()</div><div class='add'>+    fun_l1_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n667()</div><div class='add'>+    fun_l1_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n668()</div><div class='add'>+    fun_l1_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n669()</div><div class='add'>+    fun_l1_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n670()</div><div class='add'>+    fun_l1_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n671()</div><div class='add'>+    fun_l1_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n672()</div><div class='add'>+    fun_l1_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n673()</div><div class='add'>+    fun_l1_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n674()</div><div class='add'>+    fun_l1_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n675()</div><div class='add'>+    fun_l1_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n676()</div><div class='add'>+    fun_l1_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n677()</div><div class='add'>+    fun_l1_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n678()</div><div class='add'>+    fun_l1_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n679()</div><div class='add'>+    fun_l1_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n680()</div><div class='add'>+    fun_l1_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n681()</div><div class='add'>+    fun_l1_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n682()</div><div class='add'>+    fun_l1_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n683()</div><div class='add'>+    fun_l1_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n684()</div><div class='add'>+    fun_l1_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n685()</div><div class='add'>+    fun_l1_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n686()</div><div class='add'>+    fun_l1_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n687()</div><div class='add'>+    fun_l1_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n688()</div><div class='add'>+    fun_l1_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n689()</div><div class='add'>+    fun_l1_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n690()</div><div class='add'>+    fun_l1_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n691()</div><div class='add'>+    fun_l1_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n692()</div><div class='add'>+    fun_l1_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n693()</div><div class='add'>+    fun_l1_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n694()</div><div class='add'>+    fun_l1_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n695()</div><div class='add'>+    fun_l1_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n696()</div><div class='add'>+    fun_l1_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n697()</div><div class='add'>+    fun_l1_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n698()</div><div class='add'>+    fun_l1_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n699()</div><div class='add'>+    fun_l1_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n700()</div><div class='add'>+    fun_l1_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n701()</div><div class='add'>+    fun_l1_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n702()</div><div class='add'>+    fun_l1_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n703()</div><div class='add'>+    fun_l1_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n704()</div><div class='add'>+    fun_l1_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n705()</div><div class='add'>+    fun_l1_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n706()</div><div class='add'>+    fun_l1_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n707()</div><div class='add'>+    fun_l1_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n708()</div><div class='add'>+    fun_l1_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n709()</div><div class='add'>+    fun_l1_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n710()</div><div class='add'>+    fun_l1_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n711()</div><div class='add'>+    fun_l1_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n712()</div><div class='add'>+    fun_l1_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n713()</div><div class='add'>+    fun_l1_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n714()</div><div class='add'>+    fun_l1_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n715()</div><div class='add'>+    fun_l1_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n716()</div><div class='add'>+    fun_l1_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n717()</div><div class='add'>+    fun_l1_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n718()</div><div class='add'>+    fun_l1_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n719()</div><div class='add'>+    fun_l1_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n720()</div><div class='add'>+    fun_l1_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n721()</div><div class='add'>+    fun_l1_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n722()</div><div class='add'>+    fun_l1_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n723()</div><div class='add'>+    fun_l1_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n724()</div><div class='add'>+    fun_l1_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n725()</div><div class='add'>+    fun_l1_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n726()</div><div class='add'>+    fun_l1_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n727()</div><div class='add'>+    fun_l1_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n728()</div><div class='add'>+    fun_l1_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n729()</div><div class='add'>+    fun_l1_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n730()</div><div class='add'>+    fun_l1_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n731()</div><div class='add'>+    fun_l1_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n732()</div><div class='add'>+    fun_l1_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n733()</div><div class='add'>+    fun_l1_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n734()</div><div class='add'>+    fun_l1_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n735()</div><div class='add'>+    fun_l1_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n736()</div><div class='add'>+    fun_l1_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n737()</div><div class='add'>+    fun_l1_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n738()</div><div class='add'>+    fun_l1_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n739()</div><div class='add'>+    fun_l1_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n740()</div><div class='add'>+    fun_l1_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n741()</div><div class='add'>+    fun_l1_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n742()</div><div class='add'>+    fun_l1_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n743()</div><div class='add'>+    fun_l1_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n744()</div><div class='add'>+    fun_l1_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n745()</div><div class='add'>+    fun_l1_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n746()</div><div class='add'>+    fun_l1_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n747()</div><div class='add'>+    fun_l1_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n748()</div><div class='add'>+    fun_l1_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n749()</div><div class='add'>+    fun_l1_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n750()</div><div class='add'>+    fun_l1_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n751()</div><div class='add'>+    fun_l1_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n752()</div><div class='add'>+    fun_l1_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n753()</div><div class='add'>+    fun_l1_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n754()</div><div class='add'>+    fun_l1_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n755()</div><div class='add'>+    fun_l1_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n756()</div><div class='add'>+    fun_l1_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n757()</div><div class='add'>+    fun_l1_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n758()</div><div class='add'>+    fun_l1_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n759()</div><div class='add'>+    fun_l1_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n760()</div><div class='add'>+    fun_l1_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n761()</div><div class='add'>+    fun_l1_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n762()</div><div class='add'>+    fun_l1_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n763()</div><div class='add'>+    fun_l1_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n764()</div><div class='add'>+    fun_l1_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n765()</div><div class='add'>+    fun_l1_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n766()</div><div class='add'>+    fun_l1_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n767()</div><div class='add'>+    fun_l1_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n768()</div><div class='add'>+    fun_l1_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n769()</div><div class='add'>+    fun_l1_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n770()</div><div class='add'>+    fun_l1_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n771()</div><div class='add'>+    fun_l1_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n772()</div><div class='add'>+    fun_l1_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n773()</div><div class='add'>+    fun_l1_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n774()</div><div class='add'>+    fun_l1_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n775()</div><div class='add'>+    fun_l1_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n776()</div><div class='add'>+    fun_l1_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n777()</div><div class='add'>+    fun_l1_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n778()</div><div class='add'>+    fun_l1_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n779()</div><div class='add'>+    fun_l1_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n780()</div><div class='add'>+    fun_l1_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n781()</div><div class='add'>+    fun_l1_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n782()</div><div class='add'>+    fun_l1_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n783()</div><div class='add'>+    fun_l1_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n784()</div><div class='add'>+    fun_l1_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n785()</div><div class='add'>+    fun_l1_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n786()</div><div class='add'>+    fun_l1_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n787()</div><div class='add'>+    fun_l1_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n788()</div><div class='add'>+    fun_l1_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n789()</div><div class='add'>+    fun_l1_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n790()</div><div class='add'>+    fun_l1_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n791()</div><div class='add'>+    fun_l1_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n792()</div><div class='add'>+    fun_l1_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n793()</div><div class='add'>+    fun_l1_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n794()</div><div class='add'>+    fun_l1_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n795()</div><div class='add'>+    fun_l1_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n796()</div><div class='add'>+    fun_l1_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n797()</div><div class='add'>+    fun_l1_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n798()</div><div class='add'>+    fun_l1_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n799()</div><div class='add'>+    fun_l1_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n800()</div><div class='add'>+    fun_l1_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n801()</div><div class='add'>+    fun_l1_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n802()</div><div class='add'>+    fun_l1_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n803()</div><div class='add'>+    fun_l1_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n804()</div><div class='add'>+    fun_l1_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n805()</div><div class='add'>+    fun_l1_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n806()</div><div class='add'>+    fun_l1_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n807()</div><div class='add'>+    fun_l1_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n808()</div><div class='add'>+    fun_l1_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n809()</div><div class='add'>+    fun_l1_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n810()</div><div class='add'>+    fun_l1_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n811()</div><div class='add'>+    fun_l1_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n812()</div><div class='add'>+    fun_l1_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n813()</div><div class='add'>+    fun_l1_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n814()</div><div class='add'>+    fun_l1_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n815()</div><div class='add'>+    fun_l1_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n816()</div><div class='add'>+    fun_l1_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n817()</div><div class='add'>+    fun_l1_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n818()</div><div class='add'>+    fun_l1_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n819()</div><div class='add'>+    fun_l1_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n820()</div><div class='add'>+    fun_l1_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n821()</div><div class='add'>+    fun_l1_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n822()</div><div class='add'>+    fun_l1_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n823()</div><div class='add'>+    fun_l1_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n824()</div><div class='add'>+    fun_l1_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n825()</div><div class='add'>+    fun_l1_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n826()</div><div class='add'>+    fun_l1_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n827()</div><div class='add'>+    fun_l1_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n828()</div><div class='add'>+    fun_l1_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n829()</div><div class='add'>+    fun_l1_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n830()</div><div class='add'>+    fun_l1_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n831()</div><div class='add'>+    fun_l1_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n832()</div><div class='add'>+    fun_l1_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n833()</div><div class='add'>+    fun_l1_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n834()</div><div class='add'>+    fun_l1_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n835()</div><div class='add'>+    fun_l1_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n836()</div><div class='add'>+    fun_l1_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n837()</div><div class='add'>+    fun_l1_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n838()</div><div class='add'>+    fun_l1_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n839()</div><div class='add'>+    fun_l1_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n840()</div><div class='add'>+    fun_l1_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n841()</div><div class='add'>+    fun_l1_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n842()</div><div class='add'>+    fun_l1_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n843()</div><div class='add'>+    fun_l1_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n844()</div><div class='add'>+    fun_l1_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n845()</div><div class='add'>+    fun_l1_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n846()</div><div class='add'>+    fun_l1_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n847()</div><div class='add'>+    fun_l1_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n848()</div><div class='add'>+    fun_l1_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n849()</div><div class='add'>+    fun_l1_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n850()</div><div class='add'>+    fun_l1_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n851()</div><div class='add'>+    fun_l1_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n852()</div><div class='add'>+    fun_l1_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n853()</div><div class='add'>+    fun_l1_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n854()</div><div class='add'>+    fun_l1_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n855()</div><div class='add'>+    fun_l1_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n856()</div><div class='add'>+    fun_l1_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n857()</div><div class='add'>+    fun_l1_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n858()</div><div class='add'>+    fun_l1_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n859()</div><div class='add'>+    fun_l1_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n860()</div><div class='add'>+    fun_l1_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n861()</div><div class='add'>+    fun_l1_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n862()</div><div class='add'>+    fun_l1_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n863()</div><div class='add'>+    fun_l1_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n864()</div><div class='add'>+    fun_l1_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n865()</div><div class='add'>+    fun_l1_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n866()</div><div class='add'>+    fun_l1_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n867()</div><div class='add'>+    fun_l1_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n868()</div><div class='add'>+    fun_l1_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n869()</div><div class='add'>+    fun_l1_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n870()</div><div class='add'>+    fun_l1_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n871()</div><div class='add'>+    fun_l1_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n872()</div><div class='add'>+    fun_l1_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n873()</div><div class='add'>+    fun_l1_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n874()</div><div class='add'>+    fun_l1_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n875()</div><div class='add'>+    fun_l1_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n876()</div><div class='add'>+    fun_l1_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n877()</div><div class='add'>+    fun_l1_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n878()</div><div class='add'>+    fun_l1_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n879()</div><div class='add'>+    fun_l1_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n880()</div><div class='add'>+    fun_l1_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n881()</div><div class='add'>+    fun_l1_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n882()</div><div class='add'>+    fun_l1_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n883()</div><div class='add'>+    fun_l1_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n884()</div><div class='add'>+    fun_l1_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n885()</div><div class='add'>+    fun_l1_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n886()</div><div class='add'>+    fun_l1_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n887()</div><div class='add'>+    fun_l1_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n888()</div><div class='add'>+    fun_l1_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n889()</div><div class='add'>+    fun_l1_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n890()</div><div class='add'>+    fun_l1_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n891()</div><div class='add'>+    fun_l1_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n892()</div><div class='add'>+    fun_l1_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n893()</div><div class='add'>+    fun_l1_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n894()</div><div class='add'>+    fun_l1_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n895()</div><div class='add'>+    fun_l1_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n896()</div><div class='add'>+    fun_l1_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n897()</div><div class='add'>+    fun_l1_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n898()</div><div class='add'>+    fun_l1_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n899()</div><div class='add'>+    fun_l1_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n900()</div><div class='add'>+    fun_l1_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n901()</div><div class='add'>+    fun_l1_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n902()</div><div class='add'>+    fun_l1_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n903()</div><div class='add'>+    fun_l1_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n904()</div><div class='add'>+    fun_l1_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n905()</div><div class='add'>+    fun_l1_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n906()</div><div class='add'>+    fun_l1_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n907()</div><div class='add'>+    fun_l1_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n908()</div><div class='add'>+    fun_l1_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n909()</div><div class='add'>+    fun_l1_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n910()</div><div class='add'>+    fun_l1_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n911()</div><div class='add'>+    fun_l1_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n912()</div><div class='add'>+    fun_l1_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n913()</div><div class='add'>+    fun_l1_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n914()</div><div class='add'>+    fun_l1_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n915()</div><div class='add'>+    fun_l1_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n916()</div><div class='add'>+    fun_l1_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n917()</div><div class='add'>+    fun_l1_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n918()</div><div class='add'>+    fun_l1_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n919()</div><div class='add'>+    fun_l1_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n920()</div><div class='add'>+    fun_l1_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n921()</div><div class='add'>+    fun_l1_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n922()</div><div class='add'>+    fun_l1_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n923()</div><div class='add'>+    fun_l1_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n924()</div><div class='add'>+    fun_l1_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n925()</div><div class='add'>+    fun_l1_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n926()</div><div class='add'>+    fun_l1_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n927()</div><div class='add'>+    fun_l1_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n928()</div><div class='add'>+    fun_l1_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n929()</div><div class='add'>+    fun_l1_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n930()</div><div class='add'>+    fun_l1_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n931()</div><div class='add'>+    fun_l1_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n932()</div><div class='add'>+    fun_l1_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n933()</div><div class='add'>+    fun_l1_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n934()</div><div class='add'>+    fun_l1_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n935()</div><div class='add'>+    fun_l1_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n936()</div><div class='add'>+    fun_l1_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n937()</div><div class='add'>+    fun_l1_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n938()</div><div class='add'>+    fun_l1_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n939()</div><div class='add'>+    fun_l1_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n940()</div><div class='add'>+    fun_l1_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n941()</div><div class='add'>+    fun_l1_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n942()</div><div class='add'>+    fun_l1_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n943()</div><div class='add'>+    fun_l1_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n944()</div><div class='add'>+    fun_l1_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n945()</div><div class='add'>+    fun_l1_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n946()</div><div class='add'>+    fun_l1_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n947()</div><div class='add'>+    fun_l1_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n948()</div><div class='add'>+    fun_l1_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n949()</div><div class='add'>+    fun_l1_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n950()</div><div class='add'>+    fun_l1_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n951()</div><div class='add'>+    fun_l1_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n952()</div><div class='add'>+    fun_l1_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n953()</div><div class='add'>+    fun_l1_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n954()</div><div class='add'>+    fun_l1_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n955()</div><div class='add'>+    fun_l1_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n956()</div><div class='add'>+    fun_l1_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n957()</div><div class='add'>+    fun_l1_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n958()</div><div class='add'>+    fun_l1_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n959()</div><div class='add'>+    fun_l1_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n960()</div><div class='add'>+    fun_l1_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n961()</div><div class='add'>+    fun_l1_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n962()</div><div class='add'>+    fun_l1_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n963()</div><div class='add'>+    fun_l1_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n964()</div><div class='add'>+    fun_l1_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n965()</div><div class='add'>+    fun_l1_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n966()</div><div class='add'>+    fun_l1_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n967()</div><div class='add'>+    fun_l1_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n968()</div><div class='add'>+    fun_l1_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n969()</div><div class='add'>+    fun_l1_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n970()</div><div class='add'>+    fun_l1_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n971()</div><div class='add'>+    fun_l1_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n972()</div><div class='add'>+    fun_l1_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n973()</div><div class='add'>+    fun_l1_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n974()</div><div class='add'>+    fun_l1_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n975()</div><div class='add'>+    fun_l1_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n976()</div><div class='add'>+    fun_l1_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n977()</div><div class='add'>+    fun_l1_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n978()</div><div class='add'>+    fun_l1_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n979()</div><div class='add'>+    fun_l1_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n980()</div><div class='add'>+    fun_l1_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n981()</div><div class='add'>+    fun_l1_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n982()</div><div class='add'>+    fun_l1_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n983()</div><div class='add'>+    fun_l1_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n984()</div><div class='add'>+    fun_l1_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n985()</div><div class='add'>+    fun_l1_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n986()</div><div class='add'>+    fun_l1_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n987()</div><div class='add'>+    fun_l1_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n988()</div><div class='add'>+    fun_l1_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n989()</div><div class='add'>+    fun_l1_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n990()</div><div class='add'>+    fun_l1_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n991()</div><div class='add'>+    fun_l1_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n992()</div><div class='add'>+    fun_l1_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n993()</div><div class='add'>+    fun_l1_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n994()</div><div class='add'>+    fun_l1_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n995()</div><div class='add'>+    fun_l1_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n996()</div><div class='add'>+    fun_l1_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n997()</div><div class='add'>+    fun_l1_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n998()</div><div class='add'>+    fun_l1_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l0_n999()</div><div class='add'>+    fun_l1_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n0()</div><div class='add'>+    fun_l2_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n1()</div><div class='add'>+    fun_l2_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n2()</div><div class='add'>+    fun_l2_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n3()</div><div class='add'>+    fun_l2_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n4()</div><div class='add'>+    fun_l2_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n5()</div><div class='add'>+    fun_l2_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n6()</div><div class='add'>+    fun_l2_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n7()</div><div class='add'>+    fun_l2_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n8()</div><div class='add'>+    fun_l2_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n9()</div><div class='add'>+    fun_l2_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n10()</div><div class='add'>+    fun_l2_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n11()</div><div class='add'>+    fun_l2_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n12()</div><div class='add'>+    fun_l2_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n13()</div><div class='add'>+    fun_l2_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n14()</div><div class='add'>+    fun_l2_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n15()</div><div class='add'>+    fun_l2_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n16()</div><div class='add'>+    fun_l2_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n17()</div><div class='add'>+    fun_l2_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n18()</div><div class='add'>+    fun_l2_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n19()</div><div class='add'>+    fun_l2_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n20()</div><div class='add'>+    fun_l2_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n21()</div><div class='add'>+    fun_l2_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n22()</div><div class='add'>+    fun_l2_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n23()</div><div class='add'>+    fun_l2_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n24()</div><div class='add'>+    fun_l2_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n25()</div><div class='add'>+    fun_l2_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n26()</div><div class='add'>+    fun_l2_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n27()</div><div class='add'>+    fun_l2_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n28()</div><div class='add'>+    fun_l2_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n29()</div><div class='add'>+    fun_l2_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n30()</div><div class='add'>+    fun_l2_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n31()</div><div class='add'>+    fun_l2_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n32()</div><div class='add'>+    fun_l2_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n33()</div><div class='add'>+    fun_l2_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n34()</div><div class='add'>+    fun_l2_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n35()</div><div class='add'>+    fun_l2_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n36()</div><div class='add'>+    fun_l2_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n37()</div><div class='add'>+    fun_l2_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n38()</div><div class='add'>+    fun_l2_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n39()</div><div class='add'>+    fun_l2_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n40()</div><div class='add'>+    fun_l2_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n41()</div><div class='add'>+    fun_l2_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n42()</div><div class='add'>+    fun_l2_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n43()</div><div class='add'>+    fun_l2_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n44()</div><div class='add'>+    fun_l2_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n45()</div><div class='add'>+    fun_l2_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n46()</div><div class='add'>+    fun_l2_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n47()</div><div class='add'>+    fun_l2_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n48()</div><div class='add'>+    fun_l2_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n49()</div><div class='add'>+    fun_l2_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n50()</div><div class='add'>+    fun_l2_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n51()</div><div class='add'>+    fun_l2_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n52()</div><div class='add'>+    fun_l2_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n53()</div><div class='add'>+    fun_l2_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n54()</div><div class='add'>+    fun_l2_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n55()</div><div class='add'>+    fun_l2_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n56()</div><div class='add'>+    fun_l2_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n57()</div><div class='add'>+    fun_l2_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n58()</div><div class='add'>+    fun_l2_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n59()</div><div class='add'>+    fun_l2_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n60()</div><div class='add'>+    fun_l2_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n61()</div><div class='add'>+    fun_l2_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n62()</div><div class='add'>+    fun_l2_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n63()</div><div class='add'>+    fun_l2_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n64()</div><div class='add'>+    fun_l2_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n65()</div><div class='add'>+    fun_l2_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n66()</div><div class='add'>+    fun_l2_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n67()</div><div class='add'>+    fun_l2_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n68()</div><div class='add'>+    fun_l2_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n69()</div><div class='add'>+    fun_l2_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n70()</div><div class='add'>+    fun_l2_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n71()</div><div class='add'>+    fun_l2_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n72()</div><div class='add'>+    fun_l2_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n73()</div><div class='add'>+    fun_l2_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n74()</div><div class='add'>+    fun_l2_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n75()</div><div class='add'>+    fun_l2_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n76()</div><div class='add'>+    fun_l2_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n77()</div><div class='add'>+    fun_l2_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n78()</div><div class='add'>+    fun_l2_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n79()</div><div class='add'>+    fun_l2_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n80()</div><div class='add'>+    fun_l2_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n81()</div><div class='add'>+    fun_l2_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n82()</div><div class='add'>+    fun_l2_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n83()</div><div class='add'>+    fun_l2_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n84()</div><div class='add'>+    fun_l2_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n85()</div><div class='add'>+    fun_l2_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n86()</div><div class='add'>+    fun_l2_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n87()</div><div class='add'>+    fun_l2_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n88()</div><div class='add'>+    fun_l2_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n89()</div><div class='add'>+    fun_l2_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n90()</div><div class='add'>+    fun_l2_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n91()</div><div class='add'>+    fun_l2_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n92()</div><div class='add'>+    fun_l2_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n93()</div><div class='add'>+    fun_l2_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n94()</div><div class='add'>+    fun_l2_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n95()</div><div class='add'>+    fun_l2_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n96()</div><div class='add'>+    fun_l2_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n97()</div><div class='add'>+    fun_l2_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n98()</div><div class='add'>+    fun_l2_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n99()</div><div class='add'>+    fun_l2_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n100()</div><div class='add'>+    fun_l2_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n101()</div><div class='add'>+    fun_l2_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n102()</div><div class='add'>+    fun_l2_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n103()</div><div class='add'>+    fun_l2_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n104()</div><div class='add'>+    fun_l2_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n105()</div><div class='add'>+    fun_l2_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n106()</div><div class='add'>+    fun_l2_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n107()</div><div class='add'>+    fun_l2_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n108()</div><div class='add'>+    fun_l2_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n109()</div><div class='add'>+    fun_l2_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n110()</div><div class='add'>+    fun_l2_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n111()</div><div class='add'>+    fun_l2_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n112()</div><div class='add'>+    fun_l2_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n113()</div><div class='add'>+    fun_l2_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n114()</div><div class='add'>+    fun_l2_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n115()</div><div class='add'>+    fun_l2_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n116()</div><div class='add'>+    fun_l2_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n117()</div><div class='add'>+    fun_l2_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n118()</div><div class='add'>+    fun_l2_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n119()</div><div class='add'>+    fun_l2_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n120()</div><div class='add'>+    fun_l2_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n121()</div><div class='add'>+    fun_l2_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n122()</div><div class='add'>+    fun_l2_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n123()</div><div class='add'>+    fun_l2_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n124()</div><div class='add'>+    fun_l2_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n125()</div><div class='add'>+    fun_l2_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n126()</div><div class='add'>+    fun_l2_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n127()</div><div class='add'>+    fun_l2_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n128()</div><div class='add'>+    fun_l2_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n129()</div><div class='add'>+    fun_l2_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n130()</div><div class='add'>+    fun_l2_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n131()</div><div class='add'>+    fun_l2_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n132()</div><div class='add'>+    fun_l2_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n133()</div><div class='add'>+    fun_l2_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n134()</div><div class='add'>+    fun_l2_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n135()</div><div class='add'>+    fun_l2_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n136()</div><div class='add'>+    fun_l2_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n137()</div><div class='add'>+    fun_l2_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n138()</div><div class='add'>+    fun_l2_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n139()</div><div class='add'>+    fun_l2_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n140()</div><div class='add'>+    fun_l2_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n141()</div><div class='add'>+    fun_l2_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n142()</div><div class='add'>+    fun_l2_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n143()</div><div class='add'>+    fun_l2_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n144()</div><div class='add'>+    fun_l2_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n145()</div><div class='add'>+    fun_l2_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n146()</div><div class='add'>+    fun_l2_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n147()</div><div class='add'>+    fun_l2_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n148()</div><div class='add'>+    fun_l2_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n149()</div><div class='add'>+    fun_l2_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n150()</div><div class='add'>+    fun_l2_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n151()</div><div class='add'>+    fun_l2_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n152()</div><div class='add'>+    fun_l2_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n153()</div><div class='add'>+    fun_l2_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n154()</div><div class='add'>+    fun_l2_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n155()</div><div class='add'>+    fun_l2_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n156()</div><div class='add'>+    fun_l2_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n157()</div><div class='add'>+    fun_l2_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n158()</div><div class='add'>+    fun_l2_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n159()</div><div class='add'>+    fun_l2_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n160()</div><div class='add'>+    fun_l2_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n161()</div><div class='add'>+    fun_l2_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n162()</div><div class='add'>+    fun_l2_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n163()</div><div class='add'>+    fun_l2_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n164()</div><div class='add'>+    fun_l2_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n165()</div><div class='add'>+    fun_l2_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n166()</div><div class='add'>+    fun_l2_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n167()</div><div class='add'>+    fun_l2_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n168()</div><div class='add'>+    fun_l2_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n169()</div><div class='add'>+    fun_l2_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n170()</div><div class='add'>+    fun_l2_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n171()</div><div class='add'>+    fun_l2_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n172()</div><div class='add'>+    fun_l2_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n173()</div><div class='add'>+    fun_l2_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n174()</div><div class='add'>+    fun_l2_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n175()</div><div class='add'>+    fun_l2_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n176()</div><div class='add'>+    fun_l2_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n177()</div><div class='add'>+    fun_l2_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n178()</div><div class='add'>+    fun_l2_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n179()</div><div class='add'>+    fun_l2_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n180()</div><div class='add'>+    fun_l2_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n181()</div><div class='add'>+    fun_l2_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n182()</div><div class='add'>+    fun_l2_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n183()</div><div class='add'>+    fun_l2_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n184()</div><div class='add'>+    fun_l2_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n185()</div><div class='add'>+    fun_l2_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n186()</div><div class='add'>+    fun_l2_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n187()</div><div class='add'>+    fun_l2_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n188()</div><div class='add'>+    fun_l2_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n189()</div><div class='add'>+    fun_l2_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n190()</div><div class='add'>+    fun_l2_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n191()</div><div class='add'>+    fun_l2_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n192()</div><div class='add'>+    fun_l2_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n193()</div><div class='add'>+    fun_l2_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n194()</div><div class='add'>+    fun_l2_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n195()</div><div class='add'>+    fun_l2_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n196()</div><div class='add'>+    fun_l2_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n197()</div><div class='add'>+    fun_l2_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n198()</div><div class='add'>+    fun_l2_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n199()</div><div class='add'>+    fun_l2_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n200()</div><div class='add'>+    fun_l2_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n201()</div><div class='add'>+    fun_l2_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n202()</div><div class='add'>+    fun_l2_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n203()</div><div class='add'>+    fun_l2_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n204()</div><div class='add'>+    fun_l2_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n205()</div><div class='add'>+    fun_l2_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n206()</div><div class='add'>+    fun_l2_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n207()</div><div class='add'>+    fun_l2_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n208()</div><div class='add'>+    fun_l2_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n209()</div><div class='add'>+    fun_l2_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n210()</div><div class='add'>+    fun_l2_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n211()</div><div class='add'>+    fun_l2_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n212()</div><div class='add'>+    fun_l2_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n213()</div><div class='add'>+    fun_l2_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n214()</div><div class='add'>+    fun_l2_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n215()</div><div class='add'>+    fun_l2_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n216()</div><div class='add'>+    fun_l2_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n217()</div><div class='add'>+    fun_l2_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n218()</div><div class='add'>+    fun_l2_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n219()</div><div class='add'>+    fun_l2_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n220()</div><div class='add'>+    fun_l2_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n221()</div><div class='add'>+    fun_l2_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n222()</div><div class='add'>+    fun_l2_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n223()</div><div class='add'>+    fun_l2_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n224()</div><div class='add'>+    fun_l2_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n225()</div><div class='add'>+    fun_l2_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n226()</div><div class='add'>+    fun_l2_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n227()</div><div class='add'>+    fun_l2_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n228()</div><div class='add'>+    fun_l2_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n229()</div><div class='add'>+    fun_l2_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n230()</div><div class='add'>+    fun_l2_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n231()</div><div class='add'>+    fun_l2_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n232()</div><div class='add'>+    fun_l2_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n233()</div><div class='add'>+    fun_l2_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n234()</div><div class='add'>+    fun_l2_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n235()</div><div class='add'>+    fun_l2_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n236()</div><div class='add'>+    fun_l2_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n237()</div><div class='add'>+    fun_l2_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n238()</div><div class='add'>+    fun_l2_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n239()</div><div class='add'>+    fun_l2_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n240()</div><div class='add'>+    fun_l2_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n241()</div><div class='add'>+    fun_l2_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n242()</div><div class='add'>+    fun_l2_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n243()</div><div class='add'>+    fun_l2_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n244()</div><div class='add'>+    fun_l2_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n245()</div><div class='add'>+    fun_l2_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n246()</div><div class='add'>+    fun_l2_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n247()</div><div class='add'>+    fun_l2_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n248()</div><div class='add'>+    fun_l2_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n249()</div><div class='add'>+    fun_l2_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n250()</div><div class='add'>+    fun_l2_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n251()</div><div class='add'>+    fun_l2_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n252()</div><div class='add'>+    fun_l2_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n253()</div><div class='add'>+    fun_l2_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n254()</div><div class='add'>+    fun_l2_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n255()</div><div class='add'>+    fun_l2_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n256()</div><div class='add'>+    fun_l2_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n257()</div><div class='add'>+    fun_l2_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n258()</div><div class='add'>+    fun_l2_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n259()</div><div class='add'>+    fun_l2_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n260()</div><div class='add'>+    fun_l2_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n261()</div><div class='add'>+    fun_l2_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n262()</div><div class='add'>+    fun_l2_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n263()</div><div class='add'>+    fun_l2_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n264()</div><div class='add'>+    fun_l2_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n265()</div><div class='add'>+    fun_l2_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n266()</div><div class='add'>+    fun_l2_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n267()</div><div class='add'>+    fun_l2_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n268()</div><div class='add'>+    fun_l2_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n269()</div><div class='add'>+    fun_l2_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n270()</div><div class='add'>+    fun_l2_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n271()</div><div class='add'>+    fun_l2_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n272()</div><div class='add'>+    fun_l2_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n273()</div><div class='add'>+    fun_l2_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n274()</div><div class='add'>+    fun_l2_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n275()</div><div class='add'>+    fun_l2_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n276()</div><div class='add'>+    fun_l2_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n277()</div><div class='add'>+    fun_l2_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n278()</div><div class='add'>+    fun_l2_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n279()</div><div class='add'>+    fun_l2_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n280()</div><div class='add'>+    fun_l2_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n281()</div><div class='add'>+    fun_l2_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n282()</div><div class='add'>+    fun_l2_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n283()</div><div class='add'>+    fun_l2_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n284()</div><div class='add'>+    fun_l2_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n285()</div><div class='add'>+    fun_l2_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n286()</div><div class='add'>+    fun_l2_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n287()</div><div class='add'>+    fun_l2_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n288()</div><div class='add'>+    fun_l2_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n289()</div><div class='add'>+    fun_l2_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n290()</div><div class='add'>+    fun_l2_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n291()</div><div class='add'>+    fun_l2_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n292()</div><div class='add'>+    fun_l2_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n293()</div><div class='add'>+    fun_l2_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n294()</div><div class='add'>+    fun_l2_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n295()</div><div class='add'>+    fun_l2_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n296()</div><div class='add'>+    fun_l2_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n297()</div><div class='add'>+    fun_l2_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n298()</div><div class='add'>+    fun_l2_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n299()</div><div class='add'>+    fun_l2_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n300()</div><div class='add'>+    fun_l2_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n301()</div><div class='add'>+    fun_l2_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n302()</div><div class='add'>+    fun_l2_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n303()</div><div class='add'>+    fun_l2_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n304()</div><div class='add'>+    fun_l2_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n305()</div><div class='add'>+    fun_l2_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n306()</div><div class='add'>+    fun_l2_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n307()</div><div class='add'>+    fun_l2_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n308()</div><div class='add'>+    fun_l2_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n309()</div><div class='add'>+    fun_l2_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n310()</div><div class='add'>+    fun_l2_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n311()</div><div class='add'>+    fun_l2_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n312()</div><div class='add'>+    fun_l2_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n313()</div><div class='add'>+    fun_l2_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n314()</div><div class='add'>+    fun_l2_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n315()</div><div class='add'>+    fun_l2_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n316()</div><div class='add'>+    fun_l2_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n317()</div><div class='add'>+    fun_l2_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n318()</div><div class='add'>+    fun_l2_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n319()</div><div class='add'>+    fun_l2_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n320()</div><div class='add'>+    fun_l2_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n321()</div><div class='add'>+    fun_l2_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n322()</div><div class='add'>+    fun_l2_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n323()</div><div class='add'>+    fun_l2_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n324()</div><div class='add'>+    fun_l2_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n325()</div><div class='add'>+    fun_l2_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n326()</div><div class='add'>+    fun_l2_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n327()</div><div class='add'>+    fun_l2_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n328()</div><div class='add'>+    fun_l2_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n329()</div><div class='add'>+    fun_l2_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n330()</div><div class='add'>+    fun_l2_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n331()</div><div class='add'>+    fun_l2_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n332()</div><div class='add'>+    fun_l2_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n333()</div><div class='add'>+    fun_l2_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n334()</div><div class='add'>+    fun_l2_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n335()</div><div class='add'>+    fun_l2_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n336()</div><div class='add'>+    fun_l2_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n337()</div><div class='add'>+    fun_l2_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n338()</div><div class='add'>+    fun_l2_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n339()</div><div class='add'>+    fun_l2_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n340()</div><div class='add'>+    fun_l2_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n341()</div><div class='add'>+    fun_l2_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n342()</div><div class='add'>+    fun_l2_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n343()</div><div class='add'>+    fun_l2_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n344()</div><div class='add'>+    fun_l2_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n345()</div><div class='add'>+    fun_l2_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n346()</div><div class='add'>+    fun_l2_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n347()</div><div class='add'>+    fun_l2_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n348()</div><div class='add'>+    fun_l2_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n349()</div><div class='add'>+    fun_l2_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n350()</div><div class='add'>+    fun_l2_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n351()</div><div class='add'>+    fun_l2_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n352()</div><div class='add'>+    fun_l2_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n353()</div><div class='add'>+    fun_l2_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n354()</div><div class='add'>+    fun_l2_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n355()</div><div class='add'>+    fun_l2_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n356()</div><div class='add'>+    fun_l2_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n357()</div><div class='add'>+    fun_l2_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n358()</div><div class='add'>+    fun_l2_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n359()</div><div class='add'>+    fun_l2_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n360()</div><div class='add'>+    fun_l2_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n361()</div><div class='add'>+    fun_l2_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n362()</div><div class='add'>+    fun_l2_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n363()</div><div class='add'>+    fun_l2_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n364()</div><div class='add'>+    fun_l2_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n365()</div><div class='add'>+    fun_l2_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n366()</div><div class='add'>+    fun_l2_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n367()</div><div class='add'>+    fun_l2_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n368()</div><div class='add'>+    fun_l2_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n369()</div><div class='add'>+    fun_l2_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n370()</div><div class='add'>+    fun_l2_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n371()</div><div class='add'>+    fun_l2_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n372()</div><div class='add'>+    fun_l2_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n373()</div><div class='add'>+    fun_l2_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n374()</div><div class='add'>+    fun_l2_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n375()</div><div class='add'>+    fun_l2_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n376()</div><div class='add'>+    fun_l2_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n377()</div><div class='add'>+    fun_l2_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n378()</div><div class='add'>+    fun_l2_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n379()</div><div class='add'>+    fun_l2_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n380()</div><div class='add'>+    fun_l2_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n381()</div><div class='add'>+    fun_l2_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n382()</div><div class='add'>+    fun_l2_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n383()</div><div class='add'>+    fun_l2_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n384()</div><div class='add'>+    fun_l2_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n385()</div><div class='add'>+    fun_l2_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n386()</div><div class='add'>+    fun_l2_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n387()</div><div class='add'>+    fun_l2_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n388()</div><div class='add'>+    fun_l2_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n389()</div><div class='add'>+    fun_l2_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n390()</div><div class='add'>+    fun_l2_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n391()</div><div class='add'>+    fun_l2_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n392()</div><div class='add'>+    fun_l2_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n393()</div><div class='add'>+    fun_l2_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n394()</div><div class='add'>+    fun_l2_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n395()</div><div class='add'>+    fun_l2_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n396()</div><div class='add'>+    fun_l2_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n397()</div><div class='add'>+    fun_l2_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n398()</div><div class='add'>+    fun_l2_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n399()</div><div class='add'>+    fun_l2_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n400()</div><div class='add'>+    fun_l2_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n401()</div><div class='add'>+    fun_l2_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n402()</div><div class='add'>+    fun_l2_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n403()</div><div class='add'>+    fun_l2_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n404()</div><div class='add'>+    fun_l2_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n405()</div><div class='add'>+    fun_l2_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n406()</div><div class='add'>+    fun_l2_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n407()</div><div class='add'>+    fun_l2_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n408()</div><div class='add'>+    fun_l2_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n409()</div><div class='add'>+    fun_l2_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n410()</div><div class='add'>+    fun_l2_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n411()</div><div class='add'>+    fun_l2_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n412()</div><div class='add'>+    fun_l2_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n413()</div><div class='add'>+    fun_l2_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n414()</div><div class='add'>+    fun_l2_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n415()</div><div class='add'>+    fun_l2_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n416()</div><div class='add'>+    fun_l2_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n417()</div><div class='add'>+    fun_l2_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n418()</div><div class='add'>+    fun_l2_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n419()</div><div class='add'>+    fun_l2_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n420()</div><div class='add'>+    fun_l2_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n421()</div><div class='add'>+    fun_l2_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n422()</div><div class='add'>+    fun_l2_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n423()</div><div class='add'>+    fun_l2_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n424()</div><div class='add'>+    fun_l2_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n425()</div><div class='add'>+    fun_l2_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n426()</div><div class='add'>+    fun_l2_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n427()</div><div class='add'>+    fun_l2_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n428()</div><div class='add'>+    fun_l2_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n429()</div><div class='add'>+    fun_l2_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n430()</div><div class='add'>+    fun_l2_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n431()</div><div class='add'>+    fun_l2_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n432()</div><div class='add'>+    fun_l2_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n433()</div><div class='add'>+    fun_l2_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n434()</div><div class='add'>+    fun_l2_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n435()</div><div class='add'>+    fun_l2_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n436()</div><div class='add'>+    fun_l2_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n437()</div><div class='add'>+    fun_l2_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n438()</div><div class='add'>+    fun_l2_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n439()</div><div class='add'>+    fun_l2_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n440()</div><div class='add'>+    fun_l2_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n441()</div><div class='add'>+    fun_l2_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n442()</div><div class='add'>+    fun_l2_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n443()</div><div class='add'>+    fun_l2_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n444()</div><div class='add'>+    fun_l2_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n445()</div><div class='add'>+    fun_l2_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n446()</div><div class='add'>+    fun_l2_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n447()</div><div class='add'>+    fun_l2_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n448()</div><div class='add'>+    fun_l2_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n449()</div><div class='add'>+    fun_l2_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n450()</div><div class='add'>+    fun_l2_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n451()</div><div class='add'>+    fun_l2_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n452()</div><div class='add'>+    fun_l2_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n453()</div><div class='add'>+    fun_l2_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n454()</div><div class='add'>+    fun_l2_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n455()</div><div class='add'>+    fun_l2_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n456()</div><div class='add'>+    fun_l2_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n457()</div><div class='add'>+    fun_l2_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n458()</div><div class='add'>+    fun_l2_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n459()</div><div class='add'>+    fun_l2_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n460()</div><div class='add'>+    fun_l2_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n461()</div><div class='add'>+    fun_l2_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n462()</div><div class='add'>+    fun_l2_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n463()</div><div class='add'>+    fun_l2_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n464()</div><div class='add'>+    fun_l2_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n465()</div><div class='add'>+    fun_l2_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n466()</div><div class='add'>+    fun_l2_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n467()</div><div class='add'>+    fun_l2_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n468()</div><div class='add'>+    fun_l2_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n469()</div><div class='add'>+    fun_l2_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n470()</div><div class='add'>+    fun_l2_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n471()</div><div class='add'>+    fun_l2_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n472()</div><div class='add'>+    fun_l2_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n473()</div><div class='add'>+    fun_l2_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n474()</div><div class='add'>+    fun_l2_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n475()</div><div class='add'>+    fun_l2_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n476()</div><div class='add'>+    fun_l2_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n477()</div><div class='add'>+    fun_l2_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n478()</div><div class='add'>+    fun_l2_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n479()</div><div class='add'>+    fun_l2_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n480()</div><div class='add'>+    fun_l2_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n481()</div><div class='add'>+    fun_l2_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n482()</div><div class='add'>+    fun_l2_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n483()</div><div class='add'>+    fun_l2_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n484()</div><div class='add'>+    fun_l2_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n485()</div><div class='add'>+    fun_l2_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n486()</div><div class='add'>+    fun_l2_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n487()</div><div class='add'>+    fun_l2_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n488()</div><div class='add'>+    fun_l2_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n489()</div><div class='add'>+    fun_l2_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n490()</div><div class='add'>+    fun_l2_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n491()</div><div class='add'>+    fun_l2_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n492()</div><div class='add'>+    fun_l2_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n493()</div><div class='add'>+    fun_l2_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n494()</div><div class='add'>+    fun_l2_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n495()</div><div class='add'>+    fun_l2_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n496()</div><div class='add'>+    fun_l2_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n497()</div><div class='add'>+    fun_l2_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n498()</div><div class='add'>+    fun_l2_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n499()</div><div class='add'>+    fun_l2_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n500()</div><div class='add'>+    fun_l2_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n501()</div><div class='add'>+    fun_l2_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n502()</div><div class='add'>+    fun_l2_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n503()</div><div class='add'>+    fun_l2_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n504()</div><div class='add'>+    fun_l2_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n505()</div><div class='add'>+    fun_l2_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n506()</div><div class='add'>+    fun_l2_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n507()</div><div class='add'>+    fun_l2_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n508()</div><div class='add'>+    fun_l2_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n509()</div><div class='add'>+    fun_l2_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n510()</div><div class='add'>+    fun_l2_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n511()</div><div class='add'>+    fun_l2_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n512()</div><div class='add'>+    fun_l2_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n513()</div><div class='add'>+    fun_l2_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n514()</div><div class='add'>+    fun_l2_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n515()</div><div class='add'>+    fun_l2_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n516()</div><div class='add'>+    fun_l2_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n517()</div><div class='add'>+    fun_l2_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n518()</div><div class='add'>+    fun_l2_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n519()</div><div class='add'>+    fun_l2_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n520()</div><div class='add'>+    fun_l2_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n521()</div><div class='add'>+    fun_l2_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n522()</div><div class='add'>+    fun_l2_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n523()</div><div class='add'>+    fun_l2_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n524()</div><div class='add'>+    fun_l2_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n525()</div><div class='add'>+    fun_l2_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n526()</div><div class='add'>+    fun_l2_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n527()</div><div class='add'>+    fun_l2_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n528()</div><div class='add'>+    fun_l2_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n529()</div><div class='add'>+    fun_l2_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n530()</div><div class='add'>+    fun_l2_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n531()</div><div class='add'>+    fun_l2_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n532()</div><div class='add'>+    fun_l2_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n533()</div><div class='add'>+    fun_l2_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n534()</div><div class='add'>+    fun_l2_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n535()</div><div class='add'>+    fun_l2_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n536()</div><div class='add'>+    fun_l2_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n537()</div><div class='add'>+    fun_l2_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n538()</div><div class='add'>+    fun_l2_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n539()</div><div class='add'>+    fun_l2_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n540()</div><div class='add'>+    fun_l2_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n541()</div><div class='add'>+    fun_l2_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n542()</div><div class='add'>+    fun_l2_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n543()</div><div class='add'>+    fun_l2_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n544()</div><div class='add'>+    fun_l2_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n545()</div><div class='add'>+    fun_l2_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n546()</div><div class='add'>+    fun_l2_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n547()</div><div class='add'>+    fun_l2_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n548()</div><div class='add'>+    fun_l2_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n549()</div><div class='add'>+    fun_l2_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n550()</div><div class='add'>+    fun_l2_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n551()</div><div class='add'>+    fun_l2_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n552()</div><div class='add'>+    fun_l2_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n553()</div><div class='add'>+    fun_l2_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n554()</div><div class='add'>+    fun_l2_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n555()</div><div class='add'>+    fun_l2_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n556()</div><div class='add'>+    fun_l2_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n557()</div><div class='add'>+    fun_l2_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n558()</div><div class='add'>+    fun_l2_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n559()</div><div class='add'>+    fun_l2_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n560()</div><div class='add'>+    fun_l2_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n561()</div><div class='add'>+    fun_l2_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n562()</div><div class='add'>+    fun_l2_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n563()</div><div class='add'>+    fun_l2_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n564()</div><div class='add'>+    fun_l2_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n565()</div><div class='add'>+    fun_l2_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n566()</div><div class='add'>+    fun_l2_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n567()</div><div class='add'>+    fun_l2_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n568()</div><div class='add'>+    fun_l2_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n569()</div><div class='add'>+    fun_l2_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n570()</div><div class='add'>+    fun_l2_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n571()</div><div class='add'>+    fun_l2_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n572()</div><div class='add'>+    fun_l2_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n573()</div><div class='add'>+    fun_l2_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n574()</div><div class='add'>+    fun_l2_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n575()</div><div class='add'>+    fun_l2_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n576()</div><div class='add'>+    fun_l2_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n577()</div><div class='add'>+    fun_l2_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n578()</div><div class='add'>+    fun_l2_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n579()</div><div class='add'>+    fun_l2_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n580()</div><div class='add'>+    fun_l2_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n581()</div><div class='add'>+    fun_l2_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n582()</div><div class='add'>+    fun_l2_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n583()</div><div class='add'>+    fun_l2_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n584()</div><div class='add'>+    fun_l2_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n585()</div><div class='add'>+    fun_l2_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n586()</div><div class='add'>+    fun_l2_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n587()</div><div class='add'>+    fun_l2_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n588()</div><div class='add'>+    fun_l2_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n589()</div><div class='add'>+    fun_l2_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n590()</div><div class='add'>+    fun_l2_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n591()</div><div class='add'>+    fun_l2_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n592()</div><div class='add'>+    fun_l2_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n593()</div><div class='add'>+    fun_l2_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n594()</div><div class='add'>+    fun_l2_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n595()</div><div class='add'>+    fun_l2_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n596()</div><div class='add'>+    fun_l2_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n597()</div><div class='add'>+    fun_l2_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n598()</div><div class='add'>+    fun_l2_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n599()</div><div class='add'>+    fun_l2_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n600()</div><div class='add'>+    fun_l2_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n601()</div><div class='add'>+    fun_l2_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n602()</div><div class='add'>+    fun_l2_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n603()</div><div class='add'>+    fun_l2_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n604()</div><div class='add'>+    fun_l2_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n605()</div><div class='add'>+    fun_l2_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n606()</div><div class='add'>+    fun_l2_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n607()</div><div class='add'>+    fun_l2_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n608()</div><div class='add'>+    fun_l2_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n609()</div><div class='add'>+    fun_l2_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n610()</div><div class='add'>+    fun_l2_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n611()</div><div class='add'>+    fun_l2_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n612()</div><div class='add'>+    fun_l2_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n613()</div><div class='add'>+    fun_l2_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n614()</div><div class='add'>+    fun_l2_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n615()</div><div class='add'>+    fun_l2_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n616()</div><div class='add'>+    fun_l2_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n617()</div><div class='add'>+    fun_l2_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n618()</div><div class='add'>+    fun_l2_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n619()</div><div class='add'>+    fun_l2_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n620()</div><div class='add'>+    fun_l2_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n621()</div><div class='add'>+    fun_l2_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n622()</div><div class='add'>+    fun_l2_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n623()</div><div class='add'>+    fun_l2_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n624()</div><div class='add'>+    fun_l2_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n625()</div><div class='add'>+    fun_l2_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n626()</div><div class='add'>+    fun_l2_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n627()</div><div class='add'>+    fun_l2_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n628()</div><div class='add'>+    fun_l2_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n629()</div><div class='add'>+    fun_l2_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n630()</div><div class='add'>+    fun_l2_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n631()</div><div class='add'>+    fun_l2_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n632()</div><div class='add'>+    fun_l2_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n633()</div><div class='add'>+    fun_l2_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n634()</div><div class='add'>+    fun_l2_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n635()</div><div class='add'>+    fun_l2_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n636()</div><div class='add'>+    fun_l2_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n637()</div><div class='add'>+    fun_l2_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n638()</div><div class='add'>+    fun_l2_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n639()</div><div class='add'>+    fun_l2_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n640()</div><div class='add'>+    fun_l2_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n641()</div><div class='add'>+    fun_l2_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n642()</div><div class='add'>+    fun_l2_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n643()</div><div class='add'>+    fun_l2_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n644()</div><div class='add'>+    fun_l2_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n645()</div><div class='add'>+    fun_l2_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n646()</div><div class='add'>+    fun_l2_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n647()</div><div class='add'>+    fun_l2_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n648()</div><div class='add'>+    fun_l2_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n649()</div><div class='add'>+    fun_l2_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n650()</div><div class='add'>+    fun_l2_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n651()</div><div class='add'>+    fun_l2_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n652()</div><div class='add'>+    fun_l2_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n653()</div><div class='add'>+    fun_l2_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n654()</div><div class='add'>+    fun_l2_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n655()</div><div class='add'>+    fun_l2_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n656()</div><div class='add'>+    fun_l2_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n657()</div><div class='add'>+    fun_l2_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n658()</div><div class='add'>+    fun_l2_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n659()</div><div class='add'>+    fun_l2_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n660()</div><div class='add'>+    fun_l2_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n661()</div><div class='add'>+    fun_l2_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n662()</div><div class='add'>+    fun_l2_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n663()</div><div class='add'>+    fun_l2_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n664()</div><div class='add'>+    fun_l2_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n665()</div><div class='add'>+    fun_l2_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n666()</div><div class='add'>+    fun_l2_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n667()</div><div class='add'>+    fun_l2_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n668()</div><div class='add'>+    fun_l2_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n669()</div><div class='add'>+    fun_l2_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n670()</div><div class='add'>+    fun_l2_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n671()</div><div class='add'>+    fun_l2_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n672()</div><div class='add'>+    fun_l2_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n673()</div><div class='add'>+    fun_l2_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n674()</div><div class='add'>+    fun_l2_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n675()</div><div class='add'>+    fun_l2_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n676()</div><div class='add'>+    fun_l2_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n677()</div><div class='add'>+    fun_l2_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n678()</div><div class='add'>+    fun_l2_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n679()</div><div class='add'>+    fun_l2_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n680()</div><div class='add'>+    fun_l2_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n681()</div><div class='add'>+    fun_l2_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n682()</div><div class='add'>+    fun_l2_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n683()</div><div class='add'>+    fun_l2_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n684()</div><div class='add'>+    fun_l2_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n685()</div><div class='add'>+    fun_l2_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n686()</div><div class='add'>+    fun_l2_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n687()</div><div class='add'>+    fun_l2_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n688()</div><div class='add'>+    fun_l2_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n689()</div><div class='add'>+    fun_l2_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n690()</div><div class='add'>+    fun_l2_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n691()</div><div class='add'>+    fun_l2_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n692()</div><div class='add'>+    fun_l2_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n693()</div><div class='add'>+    fun_l2_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n694()</div><div class='add'>+    fun_l2_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n695()</div><div class='add'>+    fun_l2_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n696()</div><div class='add'>+    fun_l2_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n697()</div><div class='add'>+    fun_l2_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n698()</div><div class='add'>+    fun_l2_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n699()</div><div class='add'>+    fun_l2_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n700()</div><div class='add'>+    fun_l2_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n701()</div><div class='add'>+    fun_l2_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n702()</div><div class='add'>+    fun_l2_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n703()</div><div class='add'>+    fun_l2_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n704()</div><div class='add'>+    fun_l2_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n705()</div><div class='add'>+    fun_l2_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n706()</div><div class='add'>+    fun_l2_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n707()</div><div class='add'>+    fun_l2_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n708()</div><div class='add'>+    fun_l2_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n709()</div><div class='add'>+    fun_l2_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n710()</div><div class='add'>+    fun_l2_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n711()</div><div class='add'>+    fun_l2_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n712()</div><div class='add'>+    fun_l2_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n713()</div><div class='add'>+    fun_l2_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n714()</div><div class='add'>+    fun_l2_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n715()</div><div class='add'>+    fun_l2_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n716()</div><div class='add'>+    fun_l2_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n717()</div><div class='add'>+    fun_l2_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n718()</div><div class='add'>+    fun_l2_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n719()</div><div class='add'>+    fun_l2_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n720()</div><div class='add'>+    fun_l2_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n721()</div><div class='add'>+    fun_l2_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n722()</div><div class='add'>+    fun_l2_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n723()</div><div class='add'>+    fun_l2_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n724()</div><div class='add'>+    fun_l2_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n725()</div><div class='add'>+    fun_l2_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n726()</div><div class='add'>+    fun_l2_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n727()</div><div class='add'>+    fun_l2_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n728()</div><div class='add'>+    fun_l2_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n729()</div><div class='add'>+    fun_l2_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n730()</div><div class='add'>+    fun_l2_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n731()</div><div class='add'>+    fun_l2_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n732()</div><div class='add'>+    fun_l2_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n733()</div><div class='add'>+    fun_l2_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n734()</div><div class='add'>+    fun_l2_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n735()</div><div class='add'>+    fun_l2_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n736()</div><div class='add'>+    fun_l2_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n737()</div><div class='add'>+    fun_l2_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n738()</div><div class='add'>+    fun_l2_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n739()</div><div class='add'>+    fun_l2_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n740()</div><div class='add'>+    fun_l2_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n741()</div><div class='add'>+    fun_l2_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n742()</div><div class='add'>+    fun_l2_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n743()</div><div class='add'>+    fun_l2_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n744()</div><div class='add'>+    fun_l2_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n745()</div><div class='add'>+    fun_l2_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n746()</div><div class='add'>+    fun_l2_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n747()</div><div class='add'>+    fun_l2_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n748()</div><div class='add'>+    fun_l2_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n749()</div><div class='add'>+    fun_l2_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n750()</div><div class='add'>+    fun_l2_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n751()</div><div class='add'>+    fun_l2_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n752()</div><div class='add'>+    fun_l2_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n753()</div><div class='add'>+    fun_l2_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n754()</div><div class='add'>+    fun_l2_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n755()</div><div class='add'>+    fun_l2_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n756()</div><div class='add'>+    fun_l2_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n757()</div><div class='add'>+    fun_l2_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n758()</div><div class='add'>+    fun_l2_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n759()</div><div class='add'>+    fun_l2_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n760()</div><div class='add'>+    fun_l2_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n761()</div><div class='add'>+    fun_l2_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n762()</div><div class='add'>+    fun_l2_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n763()</div><div class='add'>+    fun_l2_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n764()</div><div class='add'>+    fun_l2_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n765()</div><div class='add'>+    fun_l2_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n766()</div><div class='add'>+    fun_l2_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n767()</div><div class='add'>+    fun_l2_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n768()</div><div class='add'>+    fun_l2_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n769()</div><div class='add'>+    fun_l2_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n770()</div><div class='add'>+    fun_l2_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n771()</div><div class='add'>+    fun_l2_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n772()</div><div class='add'>+    fun_l2_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n773()</div><div class='add'>+    fun_l2_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n774()</div><div class='add'>+    fun_l2_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n775()</div><div class='add'>+    fun_l2_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n776()</div><div class='add'>+    fun_l2_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n777()</div><div class='add'>+    fun_l2_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n778()</div><div class='add'>+    fun_l2_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n779()</div><div class='add'>+    fun_l2_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n780()</div><div class='add'>+    fun_l2_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n781()</div><div class='add'>+    fun_l2_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n782()</div><div class='add'>+    fun_l2_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n783()</div><div class='add'>+    fun_l2_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n784()</div><div class='add'>+    fun_l2_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n785()</div><div class='add'>+    fun_l2_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n786()</div><div class='add'>+    fun_l2_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n787()</div><div class='add'>+    fun_l2_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n788()</div><div class='add'>+    fun_l2_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n789()</div><div class='add'>+    fun_l2_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n790()</div><div class='add'>+    fun_l2_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n791()</div><div class='add'>+    fun_l2_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n792()</div><div class='add'>+    fun_l2_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n793()</div><div class='add'>+    fun_l2_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n794()</div><div class='add'>+    fun_l2_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n795()</div><div class='add'>+    fun_l2_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n796()</div><div class='add'>+    fun_l2_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n797()</div><div class='add'>+    fun_l2_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n798()</div><div class='add'>+    fun_l2_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n799()</div><div class='add'>+    fun_l2_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n800()</div><div class='add'>+    fun_l2_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n801()</div><div class='add'>+    fun_l2_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n802()</div><div class='add'>+    fun_l2_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n803()</div><div class='add'>+    fun_l2_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n804()</div><div class='add'>+    fun_l2_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n805()</div><div class='add'>+    fun_l2_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n806()</div><div class='add'>+    fun_l2_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n807()</div><div class='add'>+    fun_l2_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n808()</div><div class='add'>+    fun_l2_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n809()</div><div class='add'>+    fun_l2_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n810()</div><div class='add'>+    fun_l2_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n811()</div><div class='add'>+    fun_l2_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n812()</div><div class='add'>+    fun_l2_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n813()</div><div class='add'>+    fun_l2_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n814()</div><div class='add'>+    fun_l2_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n815()</div><div class='add'>+    fun_l2_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n816()</div><div class='add'>+    fun_l2_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n817()</div><div class='add'>+    fun_l2_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n818()</div><div class='add'>+    fun_l2_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n819()</div><div class='add'>+    fun_l2_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n820()</div><div class='add'>+    fun_l2_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n821()</div><div class='add'>+    fun_l2_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n822()</div><div class='add'>+    fun_l2_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n823()</div><div class='add'>+    fun_l2_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n824()</div><div class='add'>+    fun_l2_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n825()</div><div class='add'>+    fun_l2_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n826()</div><div class='add'>+    fun_l2_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n827()</div><div class='add'>+    fun_l2_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n828()</div><div class='add'>+    fun_l2_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n829()</div><div class='add'>+    fun_l2_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n830()</div><div class='add'>+    fun_l2_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n831()</div><div class='add'>+    fun_l2_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n832()</div><div class='add'>+    fun_l2_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n833()</div><div class='add'>+    fun_l2_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n834()</div><div class='add'>+    fun_l2_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n835()</div><div class='add'>+    fun_l2_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n836()</div><div class='add'>+    fun_l2_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n837()</div><div class='add'>+    fun_l2_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n838()</div><div class='add'>+    fun_l2_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n839()</div><div class='add'>+    fun_l2_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n840()</div><div class='add'>+    fun_l2_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n841()</div><div class='add'>+    fun_l2_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n842()</div><div class='add'>+    fun_l2_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n843()</div><div class='add'>+    fun_l2_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n844()</div><div class='add'>+    fun_l2_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n845()</div><div class='add'>+    fun_l2_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n846()</div><div class='add'>+    fun_l2_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n847()</div><div class='add'>+    fun_l2_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n848()</div><div class='add'>+    fun_l2_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n849()</div><div class='add'>+    fun_l2_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n850()</div><div class='add'>+    fun_l2_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n851()</div><div class='add'>+    fun_l2_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n852()</div><div class='add'>+    fun_l2_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n853()</div><div class='add'>+    fun_l2_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n854()</div><div class='add'>+    fun_l2_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n855()</div><div class='add'>+    fun_l2_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n856()</div><div class='add'>+    fun_l2_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n857()</div><div class='add'>+    fun_l2_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n858()</div><div class='add'>+    fun_l2_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n859()</div><div class='add'>+    fun_l2_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n860()</div><div class='add'>+    fun_l2_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n861()</div><div class='add'>+    fun_l2_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n862()</div><div class='add'>+    fun_l2_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n863()</div><div class='add'>+    fun_l2_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n864()</div><div class='add'>+    fun_l2_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n865()</div><div class='add'>+    fun_l2_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n866()</div><div class='add'>+    fun_l2_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n867()</div><div class='add'>+    fun_l2_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n868()</div><div class='add'>+    fun_l2_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n869()</div><div class='add'>+    fun_l2_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n870()</div><div class='add'>+    fun_l2_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n871()</div><div class='add'>+    fun_l2_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n872()</div><div class='add'>+    fun_l2_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n873()</div><div class='add'>+    fun_l2_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n874()</div><div class='add'>+    fun_l2_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n875()</div><div class='add'>+    fun_l2_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n876()</div><div class='add'>+    fun_l2_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n877()</div><div class='add'>+    fun_l2_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n878()</div><div class='add'>+    fun_l2_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n879()</div><div class='add'>+    fun_l2_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n880()</div><div class='add'>+    fun_l2_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n881()</div><div class='add'>+    fun_l2_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n882()</div><div class='add'>+    fun_l2_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n883()</div><div class='add'>+    fun_l2_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n884()</div><div class='add'>+    fun_l2_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n885()</div><div class='add'>+    fun_l2_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n886()</div><div class='add'>+    fun_l2_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n887()</div><div class='add'>+    fun_l2_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n888()</div><div class='add'>+    fun_l2_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n889()</div><div class='add'>+    fun_l2_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n890()</div><div class='add'>+    fun_l2_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n891()</div><div class='add'>+    fun_l2_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n892()</div><div class='add'>+    fun_l2_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n893()</div><div class='add'>+    fun_l2_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n894()</div><div class='add'>+    fun_l2_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n895()</div><div class='add'>+    fun_l2_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n896()</div><div class='add'>+    fun_l2_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n897()</div><div class='add'>+    fun_l2_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n898()</div><div class='add'>+    fun_l2_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n899()</div><div class='add'>+    fun_l2_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n900()</div><div class='add'>+    fun_l2_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n901()</div><div class='add'>+    fun_l2_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n902()</div><div class='add'>+    fun_l2_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n903()</div><div class='add'>+    fun_l2_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n904()</div><div class='add'>+    fun_l2_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n905()</div><div class='add'>+    fun_l2_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n906()</div><div class='add'>+    fun_l2_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n907()</div><div class='add'>+    fun_l2_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n908()</div><div class='add'>+    fun_l2_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n909()</div><div class='add'>+    fun_l2_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n910()</div><div class='add'>+    fun_l2_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n911()</div><div class='add'>+    fun_l2_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n912()</div><div class='add'>+    fun_l2_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n913()</div><div class='add'>+    fun_l2_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n914()</div><div class='add'>+    fun_l2_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n915()</div><div class='add'>+    fun_l2_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n916()</div><div class='add'>+    fun_l2_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n917()</div><div class='add'>+    fun_l2_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n918()</div><div class='add'>+    fun_l2_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n919()</div><div class='add'>+    fun_l2_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n920()</div><div class='add'>+    fun_l2_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n921()</div><div class='add'>+    fun_l2_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n922()</div><div class='add'>+    fun_l2_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n923()</div><div class='add'>+    fun_l2_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n924()</div><div class='add'>+    fun_l2_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n925()</div><div class='add'>+    fun_l2_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n926()</div><div class='add'>+    fun_l2_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n927()</div><div class='add'>+    fun_l2_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n928()</div><div class='add'>+    fun_l2_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n929()</div><div class='add'>+    fun_l2_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n930()</div><div class='add'>+    fun_l2_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n931()</div><div class='add'>+    fun_l2_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n932()</div><div class='add'>+    fun_l2_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n933()</div><div class='add'>+    fun_l2_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n934()</div><div class='add'>+    fun_l2_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n935()</div><div class='add'>+    fun_l2_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n936()</div><div class='add'>+    fun_l2_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n937()</div><div class='add'>+    fun_l2_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n938()</div><div class='add'>+    fun_l2_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n939()</div><div class='add'>+    fun_l2_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n940()</div><div class='add'>+    fun_l2_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n941()</div><div class='add'>+    fun_l2_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n942()</div><div class='add'>+    fun_l2_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n943()</div><div class='add'>+    fun_l2_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n944()</div><div class='add'>+    fun_l2_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n945()</div><div class='add'>+    fun_l2_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n946()</div><div class='add'>+    fun_l2_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n947()</div><div class='add'>+    fun_l2_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n948()</div><div class='add'>+    fun_l2_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n949()</div><div class='add'>+    fun_l2_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n950()</div><div class='add'>+    fun_l2_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n951()</div><div class='add'>+    fun_l2_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n952()</div><div class='add'>+    fun_l2_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n953()</div><div class='add'>+    fun_l2_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n954()</div><div class='add'>+    fun_l2_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n955()</div><div class='add'>+    fun_l2_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n956()</div><div class='add'>+    fun_l2_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n957()</div><div class='add'>+    fun_l2_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n958()</div><div class='add'>+    fun_l2_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n959()</div><div class='add'>+    fun_l2_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n960()</div><div class='add'>+    fun_l2_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n961()</div><div class='add'>+    fun_l2_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n962()</div><div class='add'>+    fun_l2_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n963()</div><div class='add'>+    fun_l2_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n964()</div><div class='add'>+    fun_l2_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n965()</div><div class='add'>+    fun_l2_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n966()</div><div class='add'>+    fun_l2_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n967()</div><div class='add'>+    fun_l2_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n968()</div><div class='add'>+    fun_l2_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n969()</div><div class='add'>+    fun_l2_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n970()</div><div class='add'>+    fun_l2_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n971()</div><div class='add'>+    fun_l2_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n972()</div><div class='add'>+    fun_l2_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n973()</div><div class='add'>+    fun_l2_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n974()</div><div class='add'>+    fun_l2_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n975()</div><div class='add'>+    fun_l2_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n976()</div><div class='add'>+    fun_l2_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n977()</div><div class='add'>+    fun_l2_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n978()</div><div class='add'>+    fun_l2_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n979()</div><div class='add'>+    fun_l2_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n980()</div><div class='add'>+    fun_l2_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n981()</div><div class='add'>+    fun_l2_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n982()</div><div class='add'>+    fun_l2_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n983()</div><div class='add'>+    fun_l2_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n984()</div><div class='add'>+    fun_l2_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n985()</div><div class='add'>+    fun_l2_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n986()</div><div class='add'>+    fun_l2_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n987()</div><div class='add'>+    fun_l2_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n988()</div><div class='add'>+    fun_l2_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n989()</div><div class='add'>+    fun_l2_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n990()</div><div class='add'>+    fun_l2_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n991()</div><div class='add'>+    fun_l2_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n992()</div><div class='add'>+    fun_l2_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n993()</div><div class='add'>+    fun_l2_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n994()</div><div class='add'>+    fun_l2_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n995()</div><div class='add'>+    fun_l2_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n996()</div><div class='add'>+    fun_l2_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n997()</div><div class='add'>+    fun_l2_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n998()</div><div class='add'>+    fun_l2_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l1_n999()</div><div class='add'>+    fun_l2_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n0()</div><div class='add'>+    fun_l3_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n1()</div><div class='add'>+    fun_l3_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n2()</div><div class='add'>+    fun_l3_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n3()</div><div class='add'>+    fun_l3_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n4()</div><div class='add'>+    fun_l3_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n5()</div><div class='add'>+    fun_l3_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n6()</div><div class='add'>+    fun_l3_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n7()</div><div class='add'>+    fun_l3_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n8()</div><div class='add'>+    fun_l3_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n9()</div><div class='add'>+    fun_l3_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n10()</div><div class='add'>+    fun_l3_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n11()</div><div class='add'>+    fun_l3_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n12()</div><div class='add'>+    fun_l3_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n13()</div><div class='add'>+    fun_l3_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n14()</div><div class='add'>+    fun_l3_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n15()</div><div class='add'>+    fun_l3_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n16()</div><div class='add'>+    fun_l3_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n17()</div><div class='add'>+    fun_l3_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n18()</div><div class='add'>+    fun_l3_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n19()</div><div class='add'>+    fun_l3_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n20()</div><div class='add'>+    fun_l3_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n21()</div><div class='add'>+    fun_l3_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n22()</div><div class='add'>+    fun_l3_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n23()</div><div class='add'>+    fun_l3_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n24()</div><div class='add'>+    fun_l3_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n25()</div><div class='add'>+    fun_l3_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n26()</div><div class='add'>+    fun_l3_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n27()</div><div class='add'>+    fun_l3_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n28()</div><div class='add'>+    fun_l3_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n29()</div><div class='add'>+    fun_l3_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n30()</div><div class='add'>+    fun_l3_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n31()</div><div class='add'>+    fun_l3_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n32()</div><div class='add'>+    fun_l3_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n33()</div><div class='add'>+    fun_l3_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n34()</div><div class='add'>+    fun_l3_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n35()</div><div class='add'>+    fun_l3_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n36()</div><div class='add'>+    fun_l3_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n37()</div><div class='add'>+    fun_l3_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n38()</div><div class='add'>+    fun_l3_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n39()</div><div class='add'>+    fun_l3_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n40()</div><div class='add'>+    fun_l3_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n41()</div><div class='add'>+    fun_l3_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n42()</div><div class='add'>+    fun_l3_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n43()</div><div class='add'>+    fun_l3_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n44()</div><div class='add'>+    fun_l3_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n45()</div><div class='add'>+    fun_l3_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n46()</div><div class='add'>+    fun_l3_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n47()</div><div class='add'>+    fun_l3_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n48()</div><div class='add'>+    fun_l3_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n49()</div><div class='add'>+    fun_l3_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n50()</div><div class='add'>+    fun_l3_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n51()</div><div class='add'>+    fun_l3_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n52()</div><div class='add'>+    fun_l3_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n53()</div><div class='add'>+    fun_l3_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n54()</div><div class='add'>+    fun_l3_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n55()</div><div class='add'>+    fun_l3_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n56()</div><div class='add'>+    fun_l3_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n57()</div><div class='add'>+    fun_l3_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n58()</div><div class='add'>+    fun_l3_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n59()</div><div class='add'>+    fun_l3_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n60()</div><div class='add'>+    fun_l3_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n61()</div><div class='add'>+    fun_l3_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n62()</div><div class='add'>+    fun_l3_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n63()</div><div class='add'>+    fun_l3_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n64()</div><div class='add'>+    fun_l3_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n65()</div><div class='add'>+    fun_l3_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n66()</div><div class='add'>+    fun_l3_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n67()</div><div class='add'>+    fun_l3_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n68()</div><div class='add'>+    fun_l3_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n69()</div><div class='add'>+    fun_l3_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n70()</div><div class='add'>+    fun_l3_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n71()</div><div class='add'>+    fun_l3_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n72()</div><div class='add'>+    fun_l3_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n73()</div><div class='add'>+    fun_l3_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n74()</div><div class='add'>+    fun_l3_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n75()</div><div class='add'>+    fun_l3_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n76()</div><div class='add'>+    fun_l3_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n77()</div><div class='add'>+    fun_l3_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n78()</div><div class='add'>+    fun_l3_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n79()</div><div class='add'>+    fun_l3_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n80()</div><div class='add'>+    fun_l3_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n81()</div><div class='add'>+    fun_l3_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n82()</div><div class='add'>+    fun_l3_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n83()</div><div class='add'>+    fun_l3_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n84()</div><div class='add'>+    fun_l3_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n85()</div><div class='add'>+    fun_l3_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n86()</div><div class='add'>+    fun_l3_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n87()</div><div class='add'>+    fun_l3_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n88()</div><div class='add'>+    fun_l3_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n89()</div><div class='add'>+    fun_l3_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n90()</div><div class='add'>+    fun_l3_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n91()</div><div class='add'>+    fun_l3_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n92()</div><div class='add'>+    fun_l3_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n93()</div><div class='add'>+    fun_l3_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n94()</div><div class='add'>+    fun_l3_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n95()</div><div class='add'>+    fun_l3_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n96()</div><div class='add'>+    fun_l3_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n97()</div><div class='add'>+    fun_l3_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n98()</div><div class='add'>+    fun_l3_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n99()</div><div class='add'>+    fun_l3_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n100()</div><div class='add'>+    fun_l3_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n101()</div><div class='add'>+    fun_l3_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n102()</div><div class='add'>+    fun_l3_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n103()</div><div class='add'>+    fun_l3_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n104()</div><div class='add'>+    fun_l3_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n105()</div><div class='add'>+    fun_l3_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n106()</div><div class='add'>+    fun_l3_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n107()</div><div class='add'>+    fun_l3_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n108()</div><div class='add'>+    fun_l3_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n109()</div><div class='add'>+    fun_l3_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n110()</div><div class='add'>+    fun_l3_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n111()</div><div class='add'>+    fun_l3_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n112()</div><div class='add'>+    fun_l3_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n113()</div><div class='add'>+    fun_l3_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n114()</div><div class='add'>+    fun_l3_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n115()</div><div class='add'>+    fun_l3_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n116()</div><div class='add'>+    fun_l3_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n117()</div><div class='add'>+    fun_l3_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n118()</div><div class='add'>+    fun_l3_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n119()</div><div class='add'>+    fun_l3_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n120()</div><div class='add'>+    fun_l3_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n121()</div><div class='add'>+    fun_l3_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n122()</div><div class='add'>+    fun_l3_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n123()</div><div class='add'>+    fun_l3_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n124()</div><div class='add'>+    fun_l3_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n125()</div><div class='add'>+    fun_l3_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n126()</div><div class='add'>+    fun_l3_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n127()</div><div class='add'>+    fun_l3_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n128()</div><div class='add'>+    fun_l3_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n129()</div><div class='add'>+    fun_l3_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n130()</div><div class='add'>+    fun_l3_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n131()</div><div class='add'>+    fun_l3_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n132()</div><div class='add'>+    fun_l3_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n133()</div><div class='add'>+    fun_l3_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n134()</div><div class='add'>+    fun_l3_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n135()</div><div class='add'>+    fun_l3_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n136()</div><div class='add'>+    fun_l3_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n137()</div><div class='add'>+    fun_l3_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n138()</div><div class='add'>+    fun_l3_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n139()</div><div class='add'>+    fun_l3_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n140()</div><div class='add'>+    fun_l3_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n141()</div><div class='add'>+    fun_l3_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n142()</div><div class='add'>+    fun_l3_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n143()</div><div class='add'>+    fun_l3_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n144()</div><div class='add'>+    fun_l3_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n145()</div><div class='add'>+    fun_l3_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n146()</div><div class='add'>+    fun_l3_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n147()</div><div class='add'>+    fun_l3_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n148()</div><div class='add'>+    fun_l3_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n149()</div><div class='add'>+    fun_l3_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n150()</div><div class='add'>+    fun_l3_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n151()</div><div class='add'>+    fun_l3_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n152()</div><div class='add'>+    fun_l3_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n153()</div><div class='add'>+    fun_l3_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n154()</div><div class='add'>+    fun_l3_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n155()</div><div class='add'>+    fun_l3_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n156()</div><div class='add'>+    fun_l3_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n157()</div><div class='add'>+    fun_l3_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n158()</div><div class='add'>+    fun_l3_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n159()</div><div class='add'>+    fun_l3_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n160()</div><div class='add'>+    fun_l3_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n161()</div><div class='add'>+    fun_l3_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n162()</div><div class='add'>+    fun_l3_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n163()</div><div class='add'>+    fun_l3_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n164()</div><div class='add'>+    fun_l3_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n165()</div><div class='add'>+    fun_l3_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n166()</div><div class='add'>+    fun_l3_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n167()</div><div class='add'>+    fun_l3_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n168()</div><div class='add'>+    fun_l3_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n169()</div><div class='add'>+    fun_l3_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n170()</div><div class='add'>+    fun_l3_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n171()</div><div class='add'>+    fun_l3_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n172()</div><div class='add'>+    fun_l3_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n173()</div><div class='add'>+    fun_l3_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n174()</div><div class='add'>+    fun_l3_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n175()</div><div class='add'>+    fun_l3_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n176()</div><div class='add'>+    fun_l3_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n177()</div><div class='add'>+    fun_l3_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n178()</div><div class='add'>+    fun_l3_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n179()</div><div class='add'>+    fun_l3_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n180()</div><div class='add'>+    fun_l3_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n181()</div><div class='add'>+    fun_l3_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n182()</div><div class='add'>+    fun_l3_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n183()</div><div class='add'>+    fun_l3_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n184()</div><div class='add'>+    fun_l3_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n185()</div><div class='add'>+    fun_l3_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n186()</div><div class='add'>+    fun_l3_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n187()</div><div class='add'>+    fun_l3_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n188()</div><div class='add'>+    fun_l3_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n189()</div><div class='add'>+    fun_l3_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n190()</div><div class='add'>+    fun_l3_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n191()</div><div class='add'>+    fun_l3_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n192()</div><div class='add'>+    fun_l3_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n193()</div><div class='add'>+    fun_l3_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n194()</div><div class='add'>+    fun_l3_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n195()</div><div class='add'>+    fun_l3_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n196()</div><div class='add'>+    fun_l3_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n197()</div><div class='add'>+    fun_l3_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n198()</div><div class='add'>+    fun_l3_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n199()</div><div class='add'>+    fun_l3_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n200()</div><div class='add'>+    fun_l3_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n201()</div><div class='add'>+    fun_l3_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n202()</div><div class='add'>+    fun_l3_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n203()</div><div class='add'>+    fun_l3_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n204()</div><div class='add'>+    fun_l3_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n205()</div><div class='add'>+    fun_l3_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n206()</div><div class='add'>+    fun_l3_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n207()</div><div class='add'>+    fun_l3_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n208()</div><div class='add'>+    fun_l3_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n209()</div><div class='add'>+    fun_l3_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n210()</div><div class='add'>+    fun_l3_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n211()</div><div class='add'>+    fun_l3_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n212()</div><div class='add'>+    fun_l3_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n213()</div><div class='add'>+    fun_l3_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n214()</div><div class='add'>+    fun_l3_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n215()</div><div class='add'>+    fun_l3_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n216()</div><div class='add'>+    fun_l3_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n217()</div><div class='add'>+    fun_l3_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n218()</div><div class='add'>+    fun_l3_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n219()</div><div class='add'>+    fun_l3_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n220()</div><div class='add'>+    fun_l3_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n221()</div><div class='add'>+    fun_l3_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n222()</div><div class='add'>+    fun_l3_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n223()</div><div class='add'>+    fun_l3_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n224()</div><div class='add'>+    fun_l3_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n225()</div><div class='add'>+    fun_l3_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n226()</div><div class='add'>+    fun_l3_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n227()</div><div class='add'>+    fun_l3_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n228()</div><div class='add'>+    fun_l3_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n229()</div><div class='add'>+    fun_l3_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n230()</div><div class='add'>+    fun_l3_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n231()</div><div class='add'>+    fun_l3_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n232()</div><div class='add'>+    fun_l3_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n233()</div><div class='add'>+    fun_l3_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n234()</div><div class='add'>+    fun_l3_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n235()</div><div class='add'>+    fun_l3_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n236()</div><div class='add'>+    fun_l3_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n237()</div><div class='add'>+    fun_l3_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n238()</div><div class='add'>+    fun_l3_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n239()</div><div class='add'>+    fun_l3_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n240()</div><div class='add'>+    fun_l3_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n241()</div><div class='add'>+    fun_l3_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n242()</div><div class='add'>+    fun_l3_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n243()</div><div class='add'>+    fun_l3_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n244()</div><div class='add'>+    fun_l3_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n245()</div><div class='add'>+    fun_l3_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n246()</div><div class='add'>+    fun_l3_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n247()</div><div class='add'>+    fun_l3_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n248()</div><div class='add'>+    fun_l3_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n249()</div><div class='add'>+    fun_l3_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n250()</div><div class='add'>+    fun_l3_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n251()</div><div class='add'>+    fun_l3_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n252()</div><div class='add'>+    fun_l3_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n253()</div><div class='add'>+    fun_l3_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n254()</div><div class='add'>+    fun_l3_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n255()</div><div class='add'>+    fun_l3_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n256()</div><div class='add'>+    fun_l3_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n257()</div><div class='add'>+    fun_l3_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n258()</div><div class='add'>+    fun_l3_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n259()</div><div class='add'>+    fun_l3_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n260()</div><div class='add'>+    fun_l3_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n261()</div><div class='add'>+    fun_l3_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n262()</div><div class='add'>+    fun_l3_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n263()</div><div class='add'>+    fun_l3_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n264()</div><div class='add'>+    fun_l3_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n265()</div><div class='add'>+    fun_l3_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n266()</div><div class='add'>+    fun_l3_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n267()</div><div class='add'>+    fun_l3_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n268()</div><div class='add'>+    fun_l3_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n269()</div><div class='add'>+    fun_l3_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n270()</div><div class='add'>+    fun_l3_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n271()</div><div class='add'>+    fun_l3_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n272()</div><div class='add'>+    fun_l3_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n273()</div><div class='add'>+    fun_l3_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n274()</div><div class='add'>+    fun_l3_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n275()</div><div class='add'>+    fun_l3_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n276()</div><div class='add'>+    fun_l3_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n277()</div><div class='add'>+    fun_l3_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n278()</div><div class='add'>+    fun_l3_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n279()</div><div class='add'>+    fun_l3_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n280()</div><div class='add'>+    fun_l3_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n281()</div><div class='add'>+    fun_l3_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n282()</div><div class='add'>+    fun_l3_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n283()</div><div class='add'>+    fun_l3_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n284()</div><div class='add'>+    fun_l3_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n285()</div><div class='add'>+    fun_l3_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n286()</div><div class='add'>+    fun_l3_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n287()</div><div class='add'>+    fun_l3_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n288()</div><div class='add'>+    fun_l3_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n289()</div><div class='add'>+    fun_l3_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n290()</div><div class='add'>+    fun_l3_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n291()</div><div class='add'>+    fun_l3_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n292()</div><div class='add'>+    fun_l3_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n293()</div><div class='add'>+    fun_l3_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n294()</div><div class='add'>+    fun_l3_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n295()</div><div class='add'>+    fun_l3_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n296()</div><div class='add'>+    fun_l3_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n297()</div><div class='add'>+    fun_l3_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n298()</div><div class='add'>+    fun_l3_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n299()</div><div class='add'>+    fun_l3_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n300()</div><div class='add'>+    fun_l3_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n301()</div><div class='add'>+    fun_l3_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n302()</div><div class='add'>+    fun_l3_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n303()</div><div class='add'>+    fun_l3_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n304()</div><div class='add'>+    fun_l3_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n305()</div><div class='add'>+    fun_l3_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n306()</div><div class='add'>+    fun_l3_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n307()</div><div class='add'>+    fun_l3_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n308()</div><div class='add'>+    fun_l3_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n309()</div><div class='add'>+    fun_l3_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n310()</div><div class='add'>+    fun_l3_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n311()</div><div class='add'>+    fun_l3_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n312()</div><div class='add'>+    fun_l3_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n313()</div><div class='add'>+    fun_l3_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n314()</div><div class='add'>+    fun_l3_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n315()</div><div class='add'>+    fun_l3_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n316()</div><div class='add'>+    fun_l3_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n317()</div><div class='add'>+    fun_l3_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n318()</div><div class='add'>+    fun_l3_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n319()</div><div class='add'>+    fun_l3_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n320()</div><div class='add'>+    fun_l3_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n321()</div><div class='add'>+    fun_l3_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n322()</div><div class='add'>+    fun_l3_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n323()</div><div class='add'>+    fun_l3_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n324()</div><div class='add'>+    fun_l3_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n325()</div><div class='add'>+    fun_l3_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n326()</div><div class='add'>+    fun_l3_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n327()</div><div class='add'>+    fun_l3_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n328()</div><div class='add'>+    fun_l3_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n329()</div><div class='add'>+    fun_l3_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n330()</div><div class='add'>+    fun_l3_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n331()</div><div class='add'>+    fun_l3_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n332()</div><div class='add'>+    fun_l3_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n333()</div><div class='add'>+    fun_l3_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n334()</div><div class='add'>+    fun_l3_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n335()</div><div class='add'>+    fun_l3_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n336()</div><div class='add'>+    fun_l3_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n337()</div><div class='add'>+    fun_l3_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n338()</div><div class='add'>+    fun_l3_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n339()</div><div class='add'>+    fun_l3_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n340()</div><div class='add'>+    fun_l3_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n341()</div><div class='add'>+    fun_l3_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n342()</div><div class='add'>+    fun_l3_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n343()</div><div class='add'>+    fun_l3_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n344()</div><div class='add'>+    fun_l3_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n345()</div><div class='add'>+    fun_l3_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n346()</div><div class='add'>+    fun_l3_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n347()</div><div class='add'>+    fun_l3_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n348()</div><div class='add'>+    fun_l3_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n349()</div><div class='add'>+    fun_l3_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n350()</div><div class='add'>+    fun_l3_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n351()</div><div class='add'>+    fun_l3_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n352()</div><div class='add'>+    fun_l3_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n353()</div><div class='add'>+    fun_l3_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n354()</div><div class='add'>+    fun_l3_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n355()</div><div class='add'>+    fun_l3_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n356()</div><div class='add'>+    fun_l3_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n357()</div><div class='add'>+    fun_l3_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n358()</div><div class='add'>+    fun_l3_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n359()</div><div class='add'>+    fun_l3_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n360()</div><div class='add'>+    fun_l3_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n361()</div><div class='add'>+    fun_l3_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n362()</div><div class='add'>+    fun_l3_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n363()</div><div class='add'>+    fun_l3_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n364()</div><div class='add'>+    fun_l3_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n365()</div><div class='add'>+    fun_l3_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n366()</div><div class='add'>+    fun_l3_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n367()</div><div class='add'>+    fun_l3_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n368()</div><div class='add'>+    fun_l3_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n369()</div><div class='add'>+    fun_l3_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n370()</div><div class='add'>+    fun_l3_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n371()</div><div class='add'>+    fun_l3_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n372()</div><div class='add'>+    fun_l3_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n373()</div><div class='add'>+    fun_l3_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n374()</div><div class='add'>+    fun_l3_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n375()</div><div class='add'>+    fun_l3_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n376()</div><div class='add'>+    fun_l3_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n377()</div><div class='add'>+    fun_l3_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n378()</div><div class='add'>+    fun_l3_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n379()</div><div class='add'>+    fun_l3_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n380()</div><div class='add'>+    fun_l3_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n381()</div><div class='add'>+    fun_l3_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n382()</div><div class='add'>+    fun_l3_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n383()</div><div class='add'>+    fun_l3_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n384()</div><div class='add'>+    fun_l3_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n385()</div><div class='add'>+    fun_l3_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n386()</div><div class='add'>+    fun_l3_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n387()</div><div class='add'>+    fun_l3_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n388()</div><div class='add'>+    fun_l3_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n389()</div><div class='add'>+    fun_l3_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n390()</div><div class='add'>+    fun_l3_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n391()</div><div class='add'>+    fun_l3_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n392()</div><div class='add'>+    fun_l3_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n393()</div><div class='add'>+    fun_l3_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n394()</div><div class='add'>+    fun_l3_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n395()</div><div class='add'>+    fun_l3_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n396()</div><div class='add'>+    fun_l3_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n397()</div><div class='add'>+    fun_l3_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n398()</div><div class='add'>+    fun_l3_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n399()</div><div class='add'>+    fun_l3_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n400()</div><div class='add'>+    fun_l3_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n401()</div><div class='add'>+    fun_l3_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n402()</div><div class='add'>+    fun_l3_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n403()</div><div class='add'>+    fun_l3_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n404()</div><div class='add'>+    fun_l3_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n405()</div><div class='add'>+    fun_l3_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n406()</div><div class='add'>+    fun_l3_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n407()</div><div class='add'>+    fun_l3_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n408()</div><div class='add'>+    fun_l3_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n409()</div><div class='add'>+    fun_l3_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n410()</div><div class='add'>+    fun_l3_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n411()</div><div class='add'>+    fun_l3_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n412()</div><div class='add'>+    fun_l3_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n413()</div><div class='add'>+    fun_l3_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n414()</div><div class='add'>+    fun_l3_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n415()</div><div class='add'>+    fun_l3_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n416()</div><div class='add'>+    fun_l3_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n417()</div><div class='add'>+    fun_l3_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n418()</div><div class='add'>+    fun_l3_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n419()</div><div class='add'>+    fun_l3_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n420()</div><div class='add'>+    fun_l3_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n421()</div><div class='add'>+    fun_l3_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n422()</div><div class='add'>+    fun_l3_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n423()</div><div class='add'>+    fun_l3_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n424()</div><div class='add'>+    fun_l3_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n425()</div><div class='add'>+    fun_l3_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n426()</div><div class='add'>+    fun_l3_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n427()</div><div class='add'>+    fun_l3_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n428()</div><div class='add'>+    fun_l3_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n429()</div><div class='add'>+    fun_l3_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n430()</div><div class='add'>+    fun_l3_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n431()</div><div class='add'>+    fun_l3_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n432()</div><div class='add'>+    fun_l3_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n433()</div><div class='add'>+    fun_l3_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n434()</div><div class='add'>+    fun_l3_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n435()</div><div class='add'>+    fun_l3_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n436()</div><div class='add'>+    fun_l3_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n437()</div><div class='add'>+    fun_l3_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n438()</div><div class='add'>+    fun_l3_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n439()</div><div class='add'>+    fun_l3_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n440()</div><div class='add'>+    fun_l3_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n441()</div><div class='add'>+    fun_l3_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n442()</div><div class='add'>+    fun_l3_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n443()</div><div class='add'>+    fun_l3_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n444()</div><div class='add'>+    fun_l3_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n445()</div><div class='add'>+    fun_l3_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n446()</div><div class='add'>+    fun_l3_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n447()</div><div class='add'>+    fun_l3_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n448()</div><div class='add'>+    fun_l3_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n449()</div><div class='add'>+    fun_l3_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n450()</div><div class='add'>+    fun_l3_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n451()</div><div class='add'>+    fun_l3_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n452()</div><div class='add'>+    fun_l3_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n453()</div><div class='add'>+    fun_l3_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n454()</div><div class='add'>+    fun_l3_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n455()</div><div class='add'>+    fun_l3_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n456()</div><div class='add'>+    fun_l3_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n457()</div><div class='add'>+    fun_l3_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n458()</div><div class='add'>+    fun_l3_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n459()</div><div class='add'>+    fun_l3_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n460()</div><div class='add'>+    fun_l3_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n461()</div><div class='add'>+    fun_l3_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n462()</div><div class='add'>+    fun_l3_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n463()</div><div class='add'>+    fun_l3_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n464()</div><div class='add'>+    fun_l3_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n465()</div><div class='add'>+    fun_l3_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n466()</div><div class='add'>+    fun_l3_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n467()</div><div class='add'>+    fun_l3_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n468()</div><div class='add'>+    fun_l3_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n469()</div><div class='add'>+    fun_l3_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n470()</div><div class='add'>+    fun_l3_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n471()</div><div class='add'>+    fun_l3_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n472()</div><div class='add'>+    fun_l3_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n473()</div><div class='add'>+    fun_l3_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n474()</div><div class='add'>+    fun_l3_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n475()</div><div class='add'>+    fun_l3_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n476()</div><div class='add'>+    fun_l3_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n477()</div><div class='add'>+    fun_l3_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n478()</div><div class='add'>+    fun_l3_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n479()</div><div class='add'>+    fun_l3_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n480()</div><div class='add'>+    fun_l3_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n481()</div><div class='add'>+    fun_l3_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n482()</div><div class='add'>+    fun_l3_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n483()</div><div class='add'>+    fun_l3_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n484()</div><div class='add'>+    fun_l3_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n485()</div><div class='add'>+    fun_l3_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n486()</div><div class='add'>+    fun_l3_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n487()</div><div class='add'>+    fun_l3_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n488()</div><div class='add'>+    fun_l3_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n489()</div><div class='add'>+    fun_l3_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n490()</div><div class='add'>+    fun_l3_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n491()</div><div class='add'>+    fun_l3_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n492()</div><div class='add'>+    fun_l3_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n493()</div><div class='add'>+    fun_l3_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n494()</div><div class='add'>+    fun_l3_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n495()</div><div class='add'>+    fun_l3_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n496()</div><div class='add'>+    fun_l3_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n497()</div><div class='add'>+    fun_l3_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n498()</div><div class='add'>+    fun_l3_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n499()</div><div class='add'>+    fun_l3_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n500()</div><div class='add'>+    fun_l3_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n501()</div><div class='add'>+    fun_l3_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n502()</div><div class='add'>+    fun_l3_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n503()</div><div class='add'>+    fun_l3_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n504()</div><div class='add'>+    fun_l3_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n505()</div><div class='add'>+    fun_l3_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n506()</div><div class='add'>+    fun_l3_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n507()</div><div class='add'>+    fun_l3_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n508()</div><div class='add'>+    fun_l3_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n509()</div><div class='add'>+    fun_l3_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n510()</div><div class='add'>+    fun_l3_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n511()</div><div class='add'>+    fun_l3_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n512()</div><div class='add'>+    fun_l3_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n513()</div><div class='add'>+    fun_l3_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n514()</div><div class='add'>+    fun_l3_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n515()</div><div class='add'>+    fun_l3_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n516()</div><div class='add'>+    fun_l3_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n517()</div><div class='add'>+    fun_l3_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n518()</div><div class='add'>+    fun_l3_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n519()</div><div class='add'>+    fun_l3_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n520()</div><div class='add'>+    fun_l3_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n521()</div><div class='add'>+    fun_l3_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n522()</div><div class='add'>+    fun_l3_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n523()</div><div class='add'>+    fun_l3_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n524()</div><div class='add'>+    fun_l3_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n525()</div><div class='add'>+    fun_l3_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n526()</div><div class='add'>+    fun_l3_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n527()</div><div class='add'>+    fun_l3_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n528()</div><div class='add'>+    fun_l3_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n529()</div><div class='add'>+    fun_l3_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n530()</div><div class='add'>+    fun_l3_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n531()</div><div class='add'>+    fun_l3_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n532()</div><div class='add'>+    fun_l3_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n533()</div><div class='add'>+    fun_l3_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n534()</div><div class='add'>+    fun_l3_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n535()</div><div class='add'>+    fun_l3_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n536()</div><div class='add'>+    fun_l3_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n537()</div><div class='add'>+    fun_l3_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n538()</div><div class='add'>+    fun_l3_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n539()</div><div class='add'>+    fun_l3_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n540()</div><div class='add'>+    fun_l3_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n541()</div><div class='add'>+    fun_l3_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n542()</div><div class='add'>+    fun_l3_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n543()</div><div class='add'>+    fun_l3_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n544()</div><div class='add'>+    fun_l3_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n545()</div><div class='add'>+    fun_l3_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n546()</div><div class='add'>+    fun_l3_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n547()</div><div class='add'>+    fun_l3_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n548()</div><div class='add'>+    fun_l3_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n549()</div><div class='add'>+    fun_l3_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n550()</div><div class='add'>+    fun_l3_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n551()</div><div class='add'>+    fun_l3_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n552()</div><div class='add'>+    fun_l3_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n553()</div><div class='add'>+    fun_l3_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n554()</div><div class='add'>+    fun_l3_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n555()</div><div class='add'>+    fun_l3_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n556()</div><div class='add'>+    fun_l3_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n557()</div><div class='add'>+    fun_l3_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n558()</div><div class='add'>+    fun_l3_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n559()</div><div class='add'>+    fun_l3_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n560()</div><div class='add'>+    fun_l3_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n561()</div><div class='add'>+    fun_l3_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n562()</div><div class='add'>+    fun_l3_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n563()</div><div class='add'>+    fun_l3_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n564()</div><div class='add'>+    fun_l3_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n565()</div><div class='add'>+    fun_l3_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n566()</div><div class='add'>+    fun_l3_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n567()</div><div class='add'>+    fun_l3_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n568()</div><div class='add'>+    fun_l3_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n569()</div><div class='add'>+    fun_l3_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n570()</div><div class='add'>+    fun_l3_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n571()</div><div class='add'>+    fun_l3_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n572()</div><div class='add'>+    fun_l3_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n573()</div><div class='add'>+    fun_l3_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n574()</div><div class='add'>+    fun_l3_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n575()</div><div class='add'>+    fun_l3_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n576()</div><div class='add'>+    fun_l3_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n577()</div><div class='add'>+    fun_l3_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n578()</div><div class='add'>+    fun_l3_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n579()</div><div class='add'>+    fun_l3_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n580()</div><div class='add'>+    fun_l3_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n581()</div><div class='add'>+    fun_l3_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n582()</div><div class='add'>+    fun_l3_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n583()</div><div class='add'>+    fun_l3_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n584()</div><div class='add'>+    fun_l3_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n585()</div><div class='add'>+    fun_l3_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n586()</div><div class='add'>+    fun_l3_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n587()</div><div class='add'>+    fun_l3_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n588()</div><div class='add'>+    fun_l3_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n589()</div><div class='add'>+    fun_l3_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n590()</div><div class='add'>+    fun_l3_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n591()</div><div class='add'>+    fun_l3_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n592()</div><div class='add'>+    fun_l3_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n593()</div><div class='add'>+    fun_l3_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n594()</div><div class='add'>+    fun_l3_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n595()</div><div class='add'>+    fun_l3_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n596()</div><div class='add'>+    fun_l3_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n597()</div><div class='add'>+    fun_l3_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n598()</div><div class='add'>+    fun_l3_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n599()</div><div class='add'>+    fun_l3_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n600()</div><div class='add'>+    fun_l3_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n601()</div><div class='add'>+    fun_l3_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n602()</div><div class='add'>+    fun_l3_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n603()</div><div class='add'>+    fun_l3_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n604()</div><div class='add'>+    fun_l3_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n605()</div><div class='add'>+    fun_l3_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n606()</div><div class='add'>+    fun_l3_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n607()</div><div class='add'>+    fun_l3_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n608()</div><div class='add'>+    fun_l3_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n609()</div><div class='add'>+    fun_l3_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n610()</div><div class='add'>+    fun_l3_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n611()</div><div class='add'>+    fun_l3_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n612()</div><div class='add'>+    fun_l3_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n613()</div><div class='add'>+    fun_l3_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n614()</div><div class='add'>+    fun_l3_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n615()</div><div class='add'>+    fun_l3_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n616()</div><div class='add'>+    fun_l3_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n617()</div><div class='add'>+    fun_l3_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n618()</div><div class='add'>+    fun_l3_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n619()</div><div class='add'>+    fun_l3_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n620()</div><div class='add'>+    fun_l3_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n621()</div><div class='add'>+    fun_l3_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n622()</div><div class='add'>+    fun_l3_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n623()</div><div class='add'>+    fun_l3_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n624()</div><div class='add'>+    fun_l3_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n625()</div><div class='add'>+    fun_l3_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n626()</div><div class='add'>+    fun_l3_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n627()</div><div class='add'>+    fun_l3_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n628()</div><div class='add'>+    fun_l3_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n629()</div><div class='add'>+    fun_l3_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n630()</div><div class='add'>+    fun_l3_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n631()</div><div class='add'>+    fun_l3_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n632()</div><div class='add'>+    fun_l3_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n633()</div><div class='add'>+    fun_l3_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n634()</div><div class='add'>+    fun_l3_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n635()</div><div class='add'>+    fun_l3_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n636()</div><div class='add'>+    fun_l3_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n637()</div><div class='add'>+    fun_l3_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n638()</div><div class='add'>+    fun_l3_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n639()</div><div class='add'>+    fun_l3_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n640()</div><div class='add'>+    fun_l3_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n641()</div><div class='add'>+    fun_l3_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n642()</div><div class='add'>+    fun_l3_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n643()</div><div class='add'>+    fun_l3_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n644()</div><div class='add'>+    fun_l3_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n645()</div><div class='add'>+    fun_l3_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n646()</div><div class='add'>+    fun_l3_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n647()</div><div class='add'>+    fun_l3_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n648()</div><div class='add'>+    fun_l3_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n649()</div><div class='add'>+    fun_l3_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n650()</div><div class='add'>+    fun_l3_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n651()</div><div class='add'>+    fun_l3_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n652()</div><div class='add'>+    fun_l3_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n653()</div><div class='add'>+    fun_l3_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n654()</div><div class='add'>+    fun_l3_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n655()</div><div class='add'>+    fun_l3_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n656()</div><div class='add'>+    fun_l3_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n657()</div><div class='add'>+    fun_l3_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n658()</div><div class='add'>+    fun_l3_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n659()</div><div class='add'>+    fun_l3_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n660()</div><div class='add'>+    fun_l3_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n661()</div><div class='add'>+    fun_l3_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n662()</div><div class='add'>+    fun_l3_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n663()</div><div class='add'>+    fun_l3_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n664()</div><div class='add'>+    fun_l3_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n665()</div><div class='add'>+    fun_l3_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n666()</div><div class='add'>+    fun_l3_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n667()</div><div class='add'>+    fun_l3_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n668()</div><div class='add'>+    fun_l3_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n669()</div><div class='add'>+    fun_l3_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n670()</div><div class='add'>+    fun_l3_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n671()</div><div class='add'>+    fun_l3_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n672()</div><div class='add'>+    fun_l3_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n673()</div><div class='add'>+    fun_l3_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n674()</div><div class='add'>+    fun_l3_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n675()</div><div class='add'>+    fun_l3_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n676()</div><div class='add'>+    fun_l3_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n677()</div><div class='add'>+    fun_l3_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n678()</div><div class='add'>+    fun_l3_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n679()</div><div class='add'>+    fun_l3_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n680()</div><div class='add'>+    fun_l3_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n681()</div><div class='add'>+    fun_l3_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n682()</div><div class='add'>+    fun_l3_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n683()</div><div class='add'>+    fun_l3_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n684()</div><div class='add'>+    fun_l3_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n685()</div><div class='add'>+    fun_l3_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n686()</div><div class='add'>+    fun_l3_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n687()</div><div class='add'>+    fun_l3_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n688()</div><div class='add'>+    fun_l3_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n689()</div><div class='add'>+    fun_l3_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n690()</div><div class='add'>+    fun_l3_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n691()</div><div class='add'>+    fun_l3_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n692()</div><div class='add'>+    fun_l3_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n693()</div><div class='add'>+    fun_l3_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n694()</div><div class='add'>+    fun_l3_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n695()</div><div class='add'>+    fun_l3_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n696()</div><div class='add'>+    fun_l3_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n697()</div><div class='add'>+    fun_l3_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n698()</div><div class='add'>+    fun_l3_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n699()</div><div class='add'>+    fun_l3_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n700()</div><div class='add'>+    fun_l3_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n701()</div><div class='add'>+    fun_l3_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n702()</div><div class='add'>+    fun_l3_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n703()</div><div class='add'>+    fun_l3_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n704()</div><div class='add'>+    fun_l3_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n705()</div><div class='add'>+    fun_l3_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n706()</div><div class='add'>+    fun_l3_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n707()</div><div class='add'>+    fun_l3_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n708()</div><div class='add'>+    fun_l3_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n709()</div><div class='add'>+    fun_l3_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n710()</div><div class='add'>+    fun_l3_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n711()</div><div class='add'>+    fun_l3_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n712()</div><div class='add'>+    fun_l3_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n713()</div><div class='add'>+    fun_l3_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n714()</div><div class='add'>+    fun_l3_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n715()</div><div class='add'>+    fun_l3_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n716()</div><div class='add'>+    fun_l3_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n717()</div><div class='add'>+    fun_l3_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n718()</div><div class='add'>+    fun_l3_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n719()</div><div class='add'>+    fun_l3_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n720()</div><div class='add'>+    fun_l3_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n721()</div><div class='add'>+    fun_l3_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n722()</div><div class='add'>+    fun_l3_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n723()</div><div class='add'>+    fun_l3_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n724()</div><div class='add'>+    fun_l3_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n725()</div><div class='add'>+    fun_l3_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n726()</div><div class='add'>+    fun_l3_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n727()</div><div class='add'>+    fun_l3_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n728()</div><div class='add'>+    fun_l3_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n729()</div><div class='add'>+    fun_l3_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n730()</div><div class='add'>+    fun_l3_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n731()</div><div class='add'>+    fun_l3_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n732()</div><div class='add'>+    fun_l3_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n733()</div><div class='add'>+    fun_l3_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n734()</div><div class='add'>+    fun_l3_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n735()</div><div class='add'>+    fun_l3_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n736()</div><div class='add'>+    fun_l3_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n737()</div><div class='add'>+    fun_l3_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n738()</div><div class='add'>+    fun_l3_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n739()</div><div class='add'>+    fun_l3_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n740()</div><div class='add'>+    fun_l3_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n741()</div><div class='add'>+    fun_l3_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n742()</div><div class='add'>+    fun_l3_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n743()</div><div class='add'>+    fun_l3_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n744()</div><div class='add'>+    fun_l3_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n745()</div><div class='add'>+    fun_l3_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n746()</div><div class='add'>+    fun_l3_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n747()</div><div class='add'>+    fun_l3_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n748()</div><div class='add'>+    fun_l3_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n749()</div><div class='add'>+    fun_l3_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n750()</div><div class='add'>+    fun_l3_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n751()</div><div class='add'>+    fun_l3_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n752()</div><div class='add'>+    fun_l3_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n753()</div><div class='add'>+    fun_l3_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n754()</div><div class='add'>+    fun_l3_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n755()</div><div class='add'>+    fun_l3_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n756()</div><div class='add'>+    fun_l3_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n757()</div><div class='add'>+    fun_l3_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n758()</div><div class='add'>+    fun_l3_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n759()</div><div class='add'>+    fun_l3_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n760()</div><div class='add'>+    fun_l3_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n761()</div><div class='add'>+    fun_l3_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n762()</div><div class='add'>+    fun_l3_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n763()</div><div class='add'>+    fun_l3_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n764()</div><div class='add'>+    fun_l3_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n765()</div><div class='add'>+    fun_l3_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n766()</div><div class='add'>+    fun_l3_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n767()</div><div class='add'>+    fun_l3_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n768()</div><div class='add'>+    fun_l3_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n769()</div><div class='add'>+    fun_l3_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n770()</div><div class='add'>+    fun_l3_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n771()</div><div class='add'>+    fun_l3_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n772()</div><div class='add'>+    fun_l3_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n773()</div><div class='add'>+    fun_l3_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n774()</div><div class='add'>+    fun_l3_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n775()</div><div class='add'>+    fun_l3_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n776()</div><div class='add'>+    fun_l3_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n777()</div><div class='add'>+    fun_l3_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n778()</div><div class='add'>+    fun_l3_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n779()</div><div class='add'>+    fun_l3_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n780()</div><div class='add'>+    fun_l3_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n781()</div><div class='add'>+    fun_l3_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n782()</div><div class='add'>+    fun_l3_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n783()</div><div class='add'>+    fun_l3_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n784()</div><div class='add'>+    fun_l3_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n785()</div><div class='add'>+    fun_l3_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n786()</div><div class='add'>+    fun_l3_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n787()</div><div class='add'>+    fun_l3_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n788()</div><div class='add'>+    fun_l3_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n789()</div><div class='add'>+    fun_l3_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n790()</div><div class='add'>+    fun_l3_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n791()</div><div class='add'>+    fun_l3_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n792()</div><div class='add'>+    fun_l3_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n793()</div><div class='add'>+    fun_l3_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n794()</div><div class='add'>+    fun_l3_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n795()</div><div class='add'>+    fun_l3_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n796()</div><div class='add'>+    fun_l3_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n797()</div><div class='add'>+    fun_l3_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n798()</div><div class='add'>+    fun_l3_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n799()</div><div class='add'>+    fun_l3_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n800()</div><div class='add'>+    fun_l3_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n801()</div><div class='add'>+    fun_l3_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n802()</div><div class='add'>+    fun_l3_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n803()</div><div class='add'>+    fun_l3_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n804()</div><div class='add'>+    fun_l3_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n805()</div><div class='add'>+    fun_l3_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n806()</div><div class='add'>+    fun_l3_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n807()</div><div class='add'>+    fun_l3_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n808()</div><div class='add'>+    fun_l3_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n809()</div><div class='add'>+    fun_l3_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n810()</div><div class='add'>+    fun_l3_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n811()</div><div class='add'>+    fun_l3_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n812()</div><div class='add'>+    fun_l3_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n813()</div><div class='add'>+    fun_l3_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n814()</div><div class='add'>+    fun_l3_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n815()</div><div class='add'>+    fun_l3_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n816()</div><div class='add'>+    fun_l3_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n817()</div><div class='add'>+    fun_l3_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n818()</div><div class='add'>+    fun_l3_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n819()</div><div class='add'>+    fun_l3_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n820()</div><div class='add'>+    fun_l3_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n821()</div><div class='add'>+    fun_l3_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n822()</div><div class='add'>+    fun_l3_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n823()</div><div class='add'>+    fun_l3_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n824()</div><div class='add'>+    fun_l3_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n825()</div><div class='add'>+    fun_l3_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n826()</div><div class='add'>+    fun_l3_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n827()</div><div class='add'>+    fun_l3_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n828()</div><div class='add'>+    fun_l3_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n829()</div><div class='add'>+    fun_l3_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n830()</div><div class='add'>+    fun_l3_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n831()</div><div class='add'>+    fun_l3_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n832()</div><div class='add'>+    fun_l3_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n833()</div><div class='add'>+    fun_l3_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n834()</div><div class='add'>+    fun_l3_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n835()</div><div class='add'>+    fun_l3_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n836()</div><div class='add'>+    fun_l3_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n837()</div><div class='add'>+    fun_l3_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n838()</div><div class='add'>+    fun_l3_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n839()</div><div class='add'>+    fun_l3_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n840()</div><div class='add'>+    fun_l3_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n841()</div><div class='add'>+    fun_l3_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n842()</div><div class='add'>+    fun_l3_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n843()</div><div class='add'>+    fun_l3_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n844()</div><div class='add'>+    fun_l3_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n845()</div><div class='add'>+    fun_l3_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n846()</div><div class='add'>+    fun_l3_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n847()</div><div class='add'>+    fun_l3_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n848()</div><div class='add'>+    fun_l3_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n849()</div><div class='add'>+    fun_l3_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n850()</div><div class='add'>+    fun_l3_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n851()</div><div class='add'>+    fun_l3_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n852()</div><div class='add'>+    fun_l3_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n853()</div><div class='add'>+    fun_l3_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n854()</div><div class='add'>+    fun_l3_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n855()</div><div class='add'>+    fun_l3_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n856()</div><div class='add'>+    fun_l3_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n857()</div><div class='add'>+    fun_l3_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n858()</div><div class='add'>+    fun_l3_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n859()</div><div class='add'>+    fun_l3_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n860()</div><div class='add'>+    fun_l3_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n861()</div><div class='add'>+    fun_l3_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n862()</div><div class='add'>+    fun_l3_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n863()</div><div class='add'>+    fun_l3_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n864()</div><div class='add'>+    fun_l3_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n865()</div><div class='add'>+    fun_l3_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n866()</div><div class='add'>+    fun_l3_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n867()</div><div class='add'>+    fun_l3_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n868()</div><div class='add'>+    fun_l3_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n869()</div><div class='add'>+    fun_l3_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n870()</div><div class='add'>+    fun_l3_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n871()</div><div class='add'>+    fun_l3_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n872()</div><div class='add'>+    fun_l3_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n873()</div><div class='add'>+    fun_l3_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n874()</div><div class='add'>+    fun_l3_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n875()</div><div class='add'>+    fun_l3_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n876()</div><div class='add'>+    fun_l3_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n877()</div><div class='add'>+    fun_l3_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n878()</div><div class='add'>+    fun_l3_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n879()</div><div class='add'>+    fun_l3_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n880()</div><div class='add'>+    fun_l3_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n881()</div><div class='add'>+    fun_l3_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n882()</div><div class='add'>+    fun_l3_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n883()</div><div class='add'>+    fun_l3_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n884()</div><div class='add'>+    fun_l3_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n885()</div><div class='add'>+    fun_l3_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n886()</div><div class='add'>+    fun_l3_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n887()</div><div class='add'>+    fun_l3_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n888()</div><div class='add'>+    fun_l3_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n889()</div><div class='add'>+    fun_l3_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n890()</div><div class='add'>+    fun_l3_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n891()</div><div class='add'>+    fun_l3_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n892()</div><div class='add'>+    fun_l3_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n893()</div><div class='add'>+    fun_l3_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n894()</div><div class='add'>+    fun_l3_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n895()</div><div class='add'>+    fun_l3_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n896()</div><div class='add'>+    fun_l3_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n897()</div><div class='add'>+    fun_l3_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n898()</div><div class='add'>+    fun_l3_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n899()</div><div class='add'>+    fun_l3_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n900()</div><div class='add'>+    fun_l3_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n901()</div><div class='add'>+    fun_l3_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n902()</div><div class='add'>+    fun_l3_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n903()</div><div class='add'>+    fun_l3_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n904()</div><div class='add'>+    fun_l3_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n905()</div><div class='add'>+    fun_l3_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n906()</div><div class='add'>+    fun_l3_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n907()</div><div class='add'>+    fun_l3_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n908()</div><div class='add'>+    fun_l3_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n909()</div><div class='add'>+    fun_l3_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n910()</div><div class='add'>+    fun_l3_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n911()</div><div class='add'>+    fun_l3_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n912()</div><div class='add'>+    fun_l3_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n913()</div><div class='add'>+    fun_l3_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n914()</div><div class='add'>+    fun_l3_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n915()</div><div class='add'>+    fun_l3_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n916()</div><div class='add'>+    fun_l3_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n917()</div><div class='add'>+    fun_l3_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n918()</div><div class='add'>+    fun_l3_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n919()</div><div class='add'>+    fun_l3_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n920()</div><div class='add'>+    fun_l3_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n921()</div><div class='add'>+    fun_l3_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n922()</div><div class='add'>+    fun_l3_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n923()</div><div class='add'>+    fun_l3_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n924()</div><div class='add'>+    fun_l3_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n925()</div><div class='add'>+    fun_l3_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n926()</div><div class='add'>+    fun_l3_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n927()</div><div class='add'>+    fun_l3_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n928()</div><div class='add'>+    fun_l3_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n929()</div><div class='add'>+    fun_l3_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n930()</div><div class='add'>+    fun_l3_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n931()</div><div class='add'>+    fun_l3_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n932()</div><div class='add'>+    fun_l3_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n933()</div><div class='add'>+    fun_l3_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n934()</div><div class='add'>+    fun_l3_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n935()</div><div class='add'>+    fun_l3_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n936()</div><div class='add'>+    fun_l3_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n937()</div><div class='add'>+    fun_l3_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n938()</div><div class='add'>+    fun_l3_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n939()</div><div class='add'>+    fun_l3_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n940()</div><div class='add'>+    fun_l3_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n941()</div><div class='add'>+    fun_l3_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n942()</div><div class='add'>+    fun_l3_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n943()</div><div class='add'>+    fun_l3_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n944()</div><div class='add'>+    fun_l3_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n945()</div><div class='add'>+    fun_l3_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n946()</div><div class='add'>+    fun_l3_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n947()</div><div class='add'>+    fun_l3_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n948()</div><div class='add'>+    fun_l3_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n949()</div><div class='add'>+    fun_l3_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n950()</div><div class='add'>+    fun_l3_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n951()</div><div class='add'>+    fun_l3_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n952()</div><div class='add'>+    fun_l3_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n953()</div><div class='add'>+    fun_l3_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n954()</div><div class='add'>+    fun_l3_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n955()</div><div class='add'>+    fun_l3_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n956()</div><div class='add'>+    fun_l3_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n957()</div><div class='add'>+    fun_l3_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n958()</div><div class='add'>+    fun_l3_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n959()</div><div class='add'>+    fun_l3_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n960()</div><div class='add'>+    fun_l3_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n961()</div><div class='add'>+    fun_l3_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n962()</div><div class='add'>+    fun_l3_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n963()</div><div class='add'>+    fun_l3_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n964()</div><div class='add'>+    fun_l3_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n965()</div><div class='add'>+    fun_l3_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n966()</div><div class='add'>+    fun_l3_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n967()</div><div class='add'>+    fun_l3_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n968()</div><div class='add'>+    fun_l3_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n969()</div><div class='add'>+    fun_l3_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n970()</div><div class='add'>+    fun_l3_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n971()</div><div class='add'>+    fun_l3_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n972()</div><div class='add'>+    fun_l3_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n973()</div><div class='add'>+    fun_l3_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n974()</div><div class='add'>+    fun_l3_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n975()</div><div class='add'>+    fun_l3_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n976()</div><div class='add'>+    fun_l3_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n977()</div><div class='add'>+    fun_l3_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n978()</div><div class='add'>+    fun_l3_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n979()</div><div class='add'>+    fun_l3_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n980()</div><div class='add'>+    fun_l3_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n981()</div><div class='add'>+    fun_l3_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n982()</div><div class='add'>+    fun_l3_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n983()</div><div class='add'>+    fun_l3_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n984()</div><div class='add'>+    fun_l3_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n985()</div><div class='add'>+    fun_l3_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n986()</div><div class='add'>+    fun_l3_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n987()</div><div class='add'>+    fun_l3_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n988()</div><div class='add'>+    fun_l3_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n989()</div><div class='add'>+    fun_l3_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n990()</div><div class='add'>+    fun_l3_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n991()</div><div class='add'>+    fun_l3_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n992()</div><div class='add'>+    fun_l3_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n993()</div><div class='add'>+    fun_l3_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n994()</div><div class='add'>+    fun_l3_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n995()</div><div class='add'>+    fun_l3_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n996()</div><div class='add'>+    fun_l3_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n997()</div><div class='add'>+    fun_l3_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n998()</div><div class='add'>+    fun_l3_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l2_n999()</div><div class='add'>+    fun_l3_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n0()</div><div class='add'>+    fun_l4_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n1()</div><div class='add'>+    fun_l4_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n2()</div><div class='add'>+    fun_l4_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n3()</div><div class='add'>+    fun_l4_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n4()</div><div class='add'>+    fun_l4_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n5()</div><div class='add'>+    fun_l4_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n6()</div><div class='add'>+    fun_l4_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n7()</div><div class='add'>+    fun_l4_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n8()</div><div class='add'>+    fun_l4_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n9()</div><div class='add'>+    fun_l4_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n10()</div><div class='add'>+    fun_l4_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n11()</div><div class='add'>+    fun_l4_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n12()</div><div class='add'>+    fun_l4_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n13()</div><div class='add'>+    fun_l4_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n14()</div><div class='add'>+    fun_l4_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n15()</div><div class='add'>+    fun_l4_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n16()</div><div class='add'>+    fun_l4_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n17()</div><div class='add'>+    fun_l4_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n18()</div><div class='add'>+    fun_l4_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n19()</div><div class='add'>+    fun_l4_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n20()</div><div class='add'>+    fun_l4_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n21()</div><div class='add'>+    fun_l4_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n22()</div><div class='add'>+    fun_l4_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n23()</div><div class='add'>+    fun_l4_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n24()</div><div class='add'>+    fun_l4_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n25()</div><div class='add'>+    fun_l4_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n26()</div><div class='add'>+    fun_l4_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n27()</div><div class='add'>+    fun_l4_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n28()</div><div class='add'>+    fun_l4_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n29()</div><div class='add'>+    fun_l4_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n30()</div><div class='add'>+    fun_l4_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n31()</div><div class='add'>+    fun_l4_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n32()</div><div class='add'>+    fun_l4_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n33()</div><div class='add'>+    fun_l4_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n34()</div><div class='add'>+    fun_l4_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n35()</div><div class='add'>+    fun_l4_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n36()</div><div class='add'>+    fun_l4_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n37()</div><div class='add'>+    fun_l4_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n38()</div><div class='add'>+    fun_l4_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n39()</div><div class='add'>+    fun_l4_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n40()</div><div class='add'>+    fun_l4_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n41()</div><div class='add'>+    fun_l4_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n42()</div><div class='add'>+    fun_l4_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n43()</div><div class='add'>+    fun_l4_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n44()</div><div class='add'>+    fun_l4_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n45()</div><div class='add'>+    fun_l4_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n46()</div><div class='add'>+    fun_l4_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n47()</div><div class='add'>+    fun_l4_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n48()</div><div class='add'>+    fun_l4_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n49()</div><div class='add'>+    fun_l4_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n50()</div><div class='add'>+    fun_l4_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n51()</div><div class='add'>+    fun_l4_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n52()</div><div class='add'>+    fun_l4_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n53()</div><div class='add'>+    fun_l4_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n54()</div><div class='add'>+    fun_l4_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n55()</div><div class='add'>+    fun_l4_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n56()</div><div class='add'>+    fun_l4_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n57()</div><div class='add'>+    fun_l4_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n58()</div><div class='add'>+    fun_l4_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n59()</div><div class='add'>+    fun_l4_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n60()</div><div class='add'>+    fun_l4_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n61()</div><div class='add'>+    fun_l4_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n62()</div><div class='add'>+    fun_l4_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n63()</div><div class='add'>+    fun_l4_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n64()</div><div class='add'>+    fun_l4_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n65()</div><div class='add'>+    fun_l4_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n66()</div><div class='add'>+    fun_l4_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n67()</div><div class='add'>+    fun_l4_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n68()</div><div class='add'>+    fun_l4_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n69()</div><div class='add'>+    fun_l4_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n70()</div><div class='add'>+    fun_l4_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n71()</div><div class='add'>+    fun_l4_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n72()</div><div class='add'>+    fun_l4_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n73()</div><div class='add'>+    fun_l4_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n74()</div><div class='add'>+    fun_l4_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n75()</div><div class='add'>+    fun_l4_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n76()</div><div class='add'>+    fun_l4_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n77()</div><div class='add'>+    fun_l4_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n78()</div><div class='add'>+    fun_l4_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n79()</div><div class='add'>+    fun_l4_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n80()</div><div class='add'>+    fun_l4_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n81()</div><div class='add'>+    fun_l4_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n82()</div><div class='add'>+    fun_l4_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n83()</div><div class='add'>+    fun_l4_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n84()</div><div class='add'>+    fun_l4_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n85()</div><div class='add'>+    fun_l4_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n86()</div><div class='add'>+    fun_l4_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n87()</div><div class='add'>+    fun_l4_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n88()</div><div class='add'>+    fun_l4_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n89()</div><div class='add'>+    fun_l4_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n90()</div><div class='add'>+    fun_l4_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n91()</div><div class='add'>+    fun_l4_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n92()</div><div class='add'>+    fun_l4_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n93()</div><div class='add'>+    fun_l4_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n94()</div><div class='add'>+    fun_l4_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n95()</div><div class='add'>+    fun_l4_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n96()</div><div class='add'>+    fun_l4_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n97()</div><div class='add'>+    fun_l4_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n98()</div><div class='add'>+    fun_l4_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n99()</div><div class='add'>+    fun_l4_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n100()</div><div class='add'>+    fun_l4_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n101()</div><div class='add'>+    fun_l4_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n102()</div><div class='add'>+    fun_l4_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n103()</div><div class='add'>+    fun_l4_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n104()</div><div class='add'>+    fun_l4_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n105()</div><div class='add'>+    fun_l4_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n106()</div><div class='add'>+    fun_l4_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n107()</div><div class='add'>+    fun_l4_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n108()</div><div class='add'>+    fun_l4_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n109()</div><div class='add'>+    fun_l4_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n110()</div><div class='add'>+    fun_l4_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n111()</div><div class='add'>+    fun_l4_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n112()</div><div class='add'>+    fun_l4_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n113()</div><div class='add'>+    fun_l4_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n114()</div><div class='add'>+    fun_l4_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n115()</div><div class='add'>+    fun_l4_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n116()</div><div class='add'>+    fun_l4_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n117()</div><div class='add'>+    fun_l4_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n118()</div><div class='add'>+    fun_l4_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n119()</div><div class='add'>+    fun_l4_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n120()</div><div class='add'>+    fun_l4_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n121()</div><div class='add'>+    fun_l4_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n122()</div><div class='add'>+    fun_l4_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n123()</div><div class='add'>+    fun_l4_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n124()</div><div class='add'>+    fun_l4_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n125()</div><div class='add'>+    fun_l4_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n126()</div><div class='add'>+    fun_l4_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n127()</div><div class='add'>+    fun_l4_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n128()</div><div class='add'>+    fun_l4_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n129()</div><div class='add'>+    fun_l4_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n130()</div><div class='add'>+    fun_l4_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n131()</div><div class='add'>+    fun_l4_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n132()</div><div class='add'>+    fun_l4_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n133()</div><div class='add'>+    fun_l4_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n134()</div><div class='add'>+    fun_l4_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n135()</div><div class='add'>+    fun_l4_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n136()</div><div class='add'>+    fun_l4_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n137()</div><div class='add'>+    fun_l4_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n138()</div><div class='add'>+    fun_l4_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n139()</div><div class='add'>+    fun_l4_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n140()</div><div class='add'>+    fun_l4_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n141()</div><div class='add'>+    fun_l4_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n142()</div><div class='add'>+    fun_l4_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n143()</div><div class='add'>+    fun_l4_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n144()</div><div class='add'>+    fun_l4_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n145()</div><div class='add'>+    fun_l4_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n146()</div><div class='add'>+    fun_l4_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n147()</div><div class='add'>+    fun_l4_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n148()</div><div class='add'>+    fun_l4_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n149()</div><div class='add'>+    fun_l4_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n150()</div><div class='add'>+    fun_l4_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n151()</div><div class='add'>+    fun_l4_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n152()</div><div class='add'>+    fun_l4_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n153()</div><div class='add'>+    fun_l4_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n154()</div><div class='add'>+    fun_l4_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n155()</div><div class='add'>+    fun_l4_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n156()</div><div class='add'>+    fun_l4_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n157()</div><div class='add'>+    fun_l4_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n158()</div><div class='add'>+    fun_l4_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n159()</div><div class='add'>+    fun_l4_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n160()</div><div class='add'>+    fun_l4_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n161()</div><div class='add'>+    fun_l4_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n162()</div><div class='add'>+    fun_l4_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n163()</div><div class='add'>+    fun_l4_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n164()</div><div class='add'>+    fun_l4_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n165()</div><div class='add'>+    fun_l4_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n166()</div><div class='add'>+    fun_l4_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n167()</div><div class='add'>+    fun_l4_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n168()</div><div class='add'>+    fun_l4_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n169()</div><div class='add'>+    fun_l4_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n170()</div><div class='add'>+    fun_l4_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n171()</div><div class='add'>+    fun_l4_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n172()</div><div class='add'>+    fun_l4_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n173()</div><div class='add'>+    fun_l4_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n174()</div><div class='add'>+    fun_l4_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n175()</div><div class='add'>+    fun_l4_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n176()</div><div class='add'>+    fun_l4_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n177()</div><div class='add'>+    fun_l4_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n178()</div><div class='add'>+    fun_l4_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n179()</div><div class='add'>+    fun_l4_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n180()</div><div class='add'>+    fun_l4_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n181()</div><div class='add'>+    fun_l4_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n182()</div><div class='add'>+    fun_l4_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n183()</div><div class='add'>+    fun_l4_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n184()</div><div class='add'>+    fun_l4_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n185()</div><div class='add'>+    fun_l4_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n186()</div><div class='add'>+    fun_l4_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n187()</div><div class='add'>+    fun_l4_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n188()</div><div class='add'>+    fun_l4_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n189()</div><div class='add'>+    fun_l4_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n190()</div><div class='add'>+    fun_l4_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n191()</div><div class='add'>+    fun_l4_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n192()</div><div class='add'>+    fun_l4_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n193()</div><div class='add'>+    fun_l4_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n194()</div><div class='add'>+    fun_l4_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n195()</div><div class='add'>+    fun_l4_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n196()</div><div class='add'>+    fun_l4_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n197()</div><div class='add'>+    fun_l4_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n198()</div><div class='add'>+    fun_l4_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n199()</div><div class='add'>+    fun_l4_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n200()</div><div class='add'>+    fun_l4_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n201()</div><div class='add'>+    fun_l4_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n202()</div><div class='add'>+    fun_l4_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n203()</div><div class='add'>+    fun_l4_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n204()</div><div class='add'>+    fun_l4_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n205()</div><div class='add'>+    fun_l4_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n206()</div><div class='add'>+    fun_l4_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n207()</div><div class='add'>+    fun_l4_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n208()</div><div class='add'>+    fun_l4_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n209()</div><div class='add'>+    fun_l4_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n210()</div><div class='add'>+    fun_l4_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n211()</div><div class='add'>+    fun_l4_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n212()</div><div class='add'>+    fun_l4_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n213()</div><div class='add'>+    fun_l4_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n214()</div><div class='add'>+    fun_l4_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n215()</div><div class='add'>+    fun_l4_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n216()</div><div class='add'>+    fun_l4_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n217()</div><div class='add'>+    fun_l4_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n218()</div><div class='add'>+    fun_l4_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n219()</div><div class='add'>+    fun_l4_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n220()</div><div class='add'>+    fun_l4_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n221()</div><div class='add'>+    fun_l4_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n222()</div><div class='add'>+    fun_l4_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n223()</div><div class='add'>+    fun_l4_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n224()</div><div class='add'>+    fun_l4_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n225()</div><div class='add'>+    fun_l4_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n226()</div><div class='add'>+    fun_l4_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n227()</div><div class='add'>+    fun_l4_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n228()</div><div class='add'>+    fun_l4_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n229()</div><div class='add'>+    fun_l4_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n230()</div><div class='add'>+    fun_l4_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n231()</div><div class='add'>+    fun_l4_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n232()</div><div class='add'>+    fun_l4_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n233()</div><div class='add'>+    fun_l4_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n234()</div><div class='add'>+    fun_l4_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n235()</div><div class='add'>+    fun_l4_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n236()</div><div class='add'>+    fun_l4_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n237()</div><div class='add'>+    fun_l4_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n238()</div><div class='add'>+    fun_l4_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n239()</div><div class='add'>+    fun_l4_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n240()</div><div class='add'>+    fun_l4_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n241()</div><div class='add'>+    fun_l4_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n242()</div><div class='add'>+    fun_l4_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n243()</div><div class='add'>+    fun_l4_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n244()</div><div class='add'>+    fun_l4_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n245()</div><div class='add'>+    fun_l4_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n246()</div><div class='add'>+    fun_l4_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n247()</div><div class='add'>+    fun_l4_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n248()</div><div class='add'>+    fun_l4_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n249()</div><div class='add'>+    fun_l4_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n250()</div><div class='add'>+    fun_l4_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n251()</div><div class='add'>+    fun_l4_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n252()</div><div class='add'>+    fun_l4_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n253()</div><div class='add'>+    fun_l4_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n254()</div><div class='add'>+    fun_l4_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n255()</div><div class='add'>+    fun_l4_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n256()</div><div class='add'>+    fun_l4_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n257()</div><div class='add'>+    fun_l4_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n258()</div><div class='add'>+    fun_l4_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n259()</div><div class='add'>+    fun_l4_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n260()</div><div class='add'>+    fun_l4_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n261()</div><div class='add'>+    fun_l4_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n262()</div><div class='add'>+    fun_l4_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n263()</div><div class='add'>+    fun_l4_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n264()</div><div class='add'>+    fun_l4_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n265()</div><div class='add'>+    fun_l4_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n266()</div><div class='add'>+    fun_l4_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n267()</div><div class='add'>+    fun_l4_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n268()</div><div class='add'>+    fun_l4_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n269()</div><div class='add'>+    fun_l4_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n270()</div><div class='add'>+    fun_l4_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n271()</div><div class='add'>+    fun_l4_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n272()</div><div class='add'>+    fun_l4_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n273()</div><div class='add'>+    fun_l4_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n274()</div><div class='add'>+    fun_l4_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n275()</div><div class='add'>+    fun_l4_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n276()</div><div class='add'>+    fun_l4_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n277()</div><div class='add'>+    fun_l4_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n278()</div><div class='add'>+    fun_l4_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n279()</div><div class='add'>+    fun_l4_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n280()</div><div class='add'>+    fun_l4_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n281()</div><div class='add'>+    fun_l4_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n282()</div><div class='add'>+    fun_l4_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n283()</div><div class='add'>+    fun_l4_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n284()</div><div class='add'>+    fun_l4_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n285()</div><div class='add'>+    fun_l4_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n286()</div><div class='add'>+    fun_l4_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n287()</div><div class='add'>+    fun_l4_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n288()</div><div class='add'>+    fun_l4_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n289()</div><div class='add'>+    fun_l4_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n290()</div><div class='add'>+    fun_l4_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n291()</div><div class='add'>+    fun_l4_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n292()</div><div class='add'>+    fun_l4_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n293()</div><div class='add'>+    fun_l4_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n294()</div><div class='add'>+    fun_l4_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n295()</div><div class='add'>+    fun_l4_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n296()</div><div class='add'>+    fun_l4_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n297()</div><div class='add'>+    fun_l4_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n298()</div><div class='add'>+    fun_l4_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n299()</div><div class='add'>+    fun_l4_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n300()</div><div class='add'>+    fun_l4_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n301()</div><div class='add'>+    fun_l4_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n302()</div><div class='add'>+    fun_l4_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n303()</div><div class='add'>+    fun_l4_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n304()</div><div class='add'>+    fun_l4_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n305()</div><div class='add'>+    fun_l4_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n306()</div><div class='add'>+    fun_l4_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n307()</div><div class='add'>+    fun_l4_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n308()</div><div class='add'>+    fun_l4_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n309()</div><div class='add'>+    fun_l4_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n310()</div><div class='add'>+    fun_l4_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n311()</div><div class='add'>+    fun_l4_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n312()</div><div class='add'>+    fun_l4_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n313()</div><div class='add'>+    fun_l4_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n314()</div><div class='add'>+    fun_l4_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n315()</div><div class='add'>+    fun_l4_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n316()</div><div class='add'>+    fun_l4_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n317()</div><div class='add'>+    fun_l4_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n318()</div><div class='add'>+    fun_l4_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n319()</div><div class='add'>+    fun_l4_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n320()</div><div class='add'>+    fun_l4_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n321()</div><div class='add'>+    fun_l4_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n322()</div><div class='add'>+    fun_l4_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n323()</div><div class='add'>+    fun_l4_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n324()</div><div class='add'>+    fun_l4_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n325()</div><div class='add'>+    fun_l4_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n326()</div><div class='add'>+    fun_l4_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n327()</div><div class='add'>+    fun_l4_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n328()</div><div class='add'>+    fun_l4_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n329()</div><div class='add'>+    fun_l4_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n330()</div><div class='add'>+    fun_l4_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n331()</div><div class='add'>+    fun_l4_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n332()</div><div class='add'>+    fun_l4_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n333()</div><div class='add'>+    fun_l4_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n334()</div><div class='add'>+    fun_l4_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n335()</div><div class='add'>+    fun_l4_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n336()</div><div class='add'>+    fun_l4_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n337()</div><div class='add'>+    fun_l4_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n338()</div><div class='add'>+    fun_l4_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n339()</div><div class='add'>+    fun_l4_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n340()</div><div class='add'>+    fun_l4_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n341()</div><div class='add'>+    fun_l4_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n342()</div><div class='add'>+    fun_l4_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n343()</div><div class='add'>+    fun_l4_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n344()</div><div class='add'>+    fun_l4_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n345()</div><div class='add'>+    fun_l4_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n346()</div><div class='add'>+    fun_l4_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n347()</div><div class='add'>+    fun_l4_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n348()</div><div class='add'>+    fun_l4_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n349()</div><div class='add'>+    fun_l4_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n350()</div><div class='add'>+    fun_l4_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n351()</div><div class='add'>+    fun_l4_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n352()</div><div class='add'>+    fun_l4_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n353()</div><div class='add'>+    fun_l4_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n354()</div><div class='add'>+    fun_l4_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n355()</div><div class='add'>+    fun_l4_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n356()</div><div class='add'>+    fun_l4_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n357()</div><div class='add'>+    fun_l4_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n358()</div><div class='add'>+    fun_l4_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n359()</div><div class='add'>+    fun_l4_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n360()</div><div class='add'>+    fun_l4_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n361()</div><div class='add'>+    fun_l4_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n362()</div><div class='add'>+    fun_l4_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n363()</div><div class='add'>+    fun_l4_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n364()</div><div class='add'>+    fun_l4_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n365()</div><div class='add'>+    fun_l4_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n366()</div><div class='add'>+    fun_l4_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n367()</div><div class='add'>+    fun_l4_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n368()</div><div class='add'>+    fun_l4_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n369()</div><div class='add'>+    fun_l4_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n370()</div><div class='add'>+    fun_l4_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n371()</div><div class='add'>+    fun_l4_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n372()</div><div class='add'>+    fun_l4_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n373()</div><div class='add'>+    fun_l4_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n374()</div><div class='add'>+    fun_l4_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n375()</div><div class='add'>+    fun_l4_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n376()</div><div class='add'>+    fun_l4_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n377()</div><div class='add'>+    fun_l4_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n378()</div><div class='add'>+    fun_l4_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n379()</div><div class='add'>+    fun_l4_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n380()</div><div class='add'>+    fun_l4_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n381()</div><div class='add'>+    fun_l4_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n382()</div><div class='add'>+    fun_l4_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n383()</div><div class='add'>+    fun_l4_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n384()</div><div class='add'>+    fun_l4_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n385()</div><div class='add'>+    fun_l4_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n386()</div><div class='add'>+    fun_l4_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n387()</div><div class='add'>+    fun_l4_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n388()</div><div class='add'>+    fun_l4_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n389()</div><div class='add'>+    fun_l4_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n390()</div><div class='add'>+    fun_l4_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n391()</div><div class='add'>+    fun_l4_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n392()</div><div class='add'>+    fun_l4_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n393()</div><div class='add'>+    fun_l4_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n394()</div><div class='add'>+    fun_l4_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n395()</div><div class='add'>+    fun_l4_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n396()</div><div class='add'>+    fun_l4_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n397()</div><div class='add'>+    fun_l4_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n398()</div><div class='add'>+    fun_l4_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n399()</div><div class='add'>+    fun_l4_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n400()</div><div class='add'>+    fun_l4_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n401()</div><div class='add'>+    fun_l4_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n402()</div><div class='add'>+    fun_l4_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n403()</div><div class='add'>+    fun_l4_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n404()</div><div class='add'>+    fun_l4_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n405()</div><div class='add'>+    fun_l4_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n406()</div><div class='add'>+    fun_l4_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n407()</div><div class='add'>+    fun_l4_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n408()</div><div class='add'>+    fun_l4_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n409()</div><div class='add'>+    fun_l4_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n410()</div><div class='add'>+    fun_l4_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n411()</div><div class='add'>+    fun_l4_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n412()</div><div class='add'>+    fun_l4_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n413()</div><div class='add'>+    fun_l4_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n414()</div><div class='add'>+    fun_l4_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n415()</div><div class='add'>+    fun_l4_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n416()</div><div class='add'>+    fun_l4_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n417()</div><div class='add'>+    fun_l4_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n418()</div><div class='add'>+    fun_l4_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n419()</div><div class='add'>+    fun_l4_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n420()</div><div class='add'>+    fun_l4_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n421()</div><div class='add'>+    fun_l4_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n422()</div><div class='add'>+    fun_l4_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n423()</div><div class='add'>+    fun_l4_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n424()</div><div class='add'>+    fun_l4_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n425()</div><div class='add'>+    fun_l4_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n426()</div><div class='add'>+    fun_l4_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n427()</div><div class='add'>+    fun_l4_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n428()</div><div class='add'>+    fun_l4_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n429()</div><div class='add'>+    fun_l4_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n430()</div><div class='add'>+    fun_l4_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n431()</div><div class='add'>+    fun_l4_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n432()</div><div class='add'>+    fun_l4_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n433()</div><div class='add'>+    fun_l4_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n434()</div><div class='add'>+    fun_l4_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n435()</div><div class='add'>+    fun_l4_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n436()</div><div class='add'>+    fun_l4_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n437()</div><div class='add'>+    fun_l4_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n438()</div><div class='add'>+    fun_l4_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n439()</div><div class='add'>+    fun_l4_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n440()</div><div class='add'>+    fun_l4_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n441()</div><div class='add'>+    fun_l4_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n442()</div><div class='add'>+    fun_l4_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n443()</div><div class='add'>+    fun_l4_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n444()</div><div class='add'>+    fun_l4_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n445()</div><div class='add'>+    fun_l4_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n446()</div><div class='add'>+    fun_l4_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n447()</div><div class='add'>+    fun_l4_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n448()</div><div class='add'>+    fun_l4_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n449()</div><div class='add'>+    fun_l4_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n450()</div><div class='add'>+    fun_l4_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n451()</div><div class='add'>+    fun_l4_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n452()</div><div class='add'>+    fun_l4_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n453()</div><div class='add'>+    fun_l4_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n454()</div><div class='add'>+    fun_l4_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n455()</div><div class='add'>+    fun_l4_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n456()</div><div class='add'>+    fun_l4_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n457()</div><div class='add'>+    fun_l4_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n458()</div><div class='add'>+    fun_l4_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n459()</div><div class='add'>+    fun_l4_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n460()</div><div class='add'>+    fun_l4_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n461()</div><div class='add'>+    fun_l4_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n462()</div><div class='add'>+    fun_l4_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n463()</div><div class='add'>+    fun_l4_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n464()</div><div class='add'>+    fun_l4_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n465()</div><div class='add'>+    fun_l4_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n466()</div><div class='add'>+    fun_l4_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n467()</div><div class='add'>+    fun_l4_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n468()</div><div class='add'>+    fun_l4_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n469()</div><div class='add'>+    fun_l4_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n470()</div><div class='add'>+    fun_l4_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n471()</div><div class='add'>+    fun_l4_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n472()</div><div class='add'>+    fun_l4_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n473()</div><div class='add'>+    fun_l4_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n474()</div><div class='add'>+    fun_l4_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n475()</div><div class='add'>+    fun_l4_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n476()</div><div class='add'>+    fun_l4_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n477()</div><div class='add'>+    fun_l4_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n478()</div><div class='add'>+    fun_l4_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n479()</div><div class='add'>+    fun_l4_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n480()</div><div class='add'>+    fun_l4_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n481()</div><div class='add'>+    fun_l4_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n482()</div><div class='add'>+    fun_l4_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n483()</div><div class='add'>+    fun_l4_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n484()</div><div class='add'>+    fun_l4_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n485()</div><div class='add'>+    fun_l4_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n486()</div><div class='add'>+    fun_l4_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n487()</div><div class='add'>+    fun_l4_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n488()</div><div class='add'>+    fun_l4_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n489()</div><div class='add'>+    fun_l4_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n490()</div><div class='add'>+    fun_l4_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n491()</div><div class='add'>+    fun_l4_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n492()</div><div class='add'>+    fun_l4_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n493()</div><div class='add'>+    fun_l4_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n494()</div><div class='add'>+    fun_l4_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n495()</div><div class='add'>+    fun_l4_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n496()</div><div class='add'>+    fun_l4_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n497()</div><div class='add'>+    fun_l4_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n498()</div><div class='add'>+    fun_l4_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n499()</div><div class='add'>+    fun_l4_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n500()</div><div class='add'>+    fun_l4_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n501()</div><div class='add'>+    fun_l4_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n502()</div><div class='add'>+    fun_l4_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n503()</div><div class='add'>+    fun_l4_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n504()</div><div class='add'>+    fun_l4_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n505()</div><div class='add'>+    fun_l4_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n506()</div><div class='add'>+    fun_l4_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n507()</div><div class='add'>+    fun_l4_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n508()</div><div class='add'>+    fun_l4_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n509()</div><div class='add'>+    fun_l4_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n510()</div><div class='add'>+    fun_l4_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n511()</div><div class='add'>+    fun_l4_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n512()</div><div class='add'>+    fun_l4_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n513()</div><div class='add'>+    fun_l4_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n514()</div><div class='add'>+    fun_l4_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n515()</div><div class='add'>+    fun_l4_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n516()</div><div class='add'>+    fun_l4_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n517()</div><div class='add'>+    fun_l4_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n518()</div><div class='add'>+    fun_l4_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n519()</div><div class='add'>+    fun_l4_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n520()</div><div class='add'>+    fun_l4_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n521()</div><div class='add'>+    fun_l4_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n522()</div><div class='add'>+    fun_l4_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n523()</div><div class='add'>+    fun_l4_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n524()</div><div class='add'>+    fun_l4_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n525()</div><div class='add'>+    fun_l4_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n526()</div><div class='add'>+    fun_l4_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n527()</div><div class='add'>+    fun_l4_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n528()</div><div class='add'>+    fun_l4_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n529()</div><div class='add'>+    fun_l4_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n530()</div><div class='add'>+    fun_l4_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n531()</div><div class='add'>+    fun_l4_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n532()</div><div class='add'>+    fun_l4_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n533()</div><div class='add'>+    fun_l4_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n534()</div><div class='add'>+    fun_l4_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n535()</div><div class='add'>+    fun_l4_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n536()</div><div class='add'>+    fun_l4_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n537()</div><div class='add'>+    fun_l4_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n538()</div><div class='add'>+    fun_l4_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n539()</div><div class='add'>+    fun_l4_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n540()</div><div class='add'>+    fun_l4_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n541()</div><div class='add'>+    fun_l4_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n542()</div><div class='add'>+    fun_l4_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n543()</div><div class='add'>+    fun_l4_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n544()</div><div class='add'>+    fun_l4_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n545()</div><div class='add'>+    fun_l4_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n546()</div><div class='add'>+    fun_l4_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n547()</div><div class='add'>+    fun_l4_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n548()</div><div class='add'>+    fun_l4_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n549()</div><div class='add'>+    fun_l4_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n550()</div><div class='add'>+    fun_l4_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n551()</div><div class='add'>+    fun_l4_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n552()</div><div class='add'>+    fun_l4_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n553()</div><div class='add'>+    fun_l4_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n554()</div><div class='add'>+    fun_l4_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n555()</div><div class='add'>+    fun_l4_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n556()</div><div class='add'>+    fun_l4_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n557()</div><div class='add'>+    fun_l4_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n558()</div><div class='add'>+    fun_l4_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n559()</div><div class='add'>+    fun_l4_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n560()</div><div class='add'>+    fun_l4_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n561()</div><div class='add'>+    fun_l4_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n562()</div><div class='add'>+    fun_l4_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n563()</div><div class='add'>+    fun_l4_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n564()</div><div class='add'>+    fun_l4_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n565()</div><div class='add'>+    fun_l4_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n566()</div><div class='add'>+    fun_l4_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n567()</div><div class='add'>+    fun_l4_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n568()</div><div class='add'>+    fun_l4_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n569()</div><div class='add'>+    fun_l4_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n570()</div><div class='add'>+    fun_l4_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n571()</div><div class='add'>+    fun_l4_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n572()</div><div class='add'>+    fun_l4_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n573()</div><div class='add'>+    fun_l4_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n574()</div><div class='add'>+    fun_l4_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n575()</div><div class='add'>+    fun_l4_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n576()</div><div class='add'>+    fun_l4_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n577()</div><div class='add'>+    fun_l4_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n578()</div><div class='add'>+    fun_l4_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n579()</div><div class='add'>+    fun_l4_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n580()</div><div class='add'>+    fun_l4_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n581()</div><div class='add'>+    fun_l4_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n582()</div><div class='add'>+    fun_l4_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n583()</div><div class='add'>+    fun_l4_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n584()</div><div class='add'>+    fun_l4_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n585()</div><div class='add'>+    fun_l4_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n586()</div><div class='add'>+    fun_l4_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n587()</div><div class='add'>+    fun_l4_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n588()</div><div class='add'>+    fun_l4_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n589()</div><div class='add'>+    fun_l4_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n590()</div><div class='add'>+    fun_l4_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n591()</div><div class='add'>+    fun_l4_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n592()</div><div class='add'>+    fun_l4_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n593()</div><div class='add'>+    fun_l4_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n594()</div><div class='add'>+    fun_l4_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n595()</div><div class='add'>+    fun_l4_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n596()</div><div class='add'>+    fun_l4_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n597()</div><div class='add'>+    fun_l4_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n598()</div><div class='add'>+    fun_l4_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n599()</div><div class='add'>+    fun_l4_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n600()</div><div class='add'>+    fun_l4_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n601()</div><div class='add'>+    fun_l4_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n602()</div><div class='add'>+    fun_l4_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n603()</div><div class='add'>+    fun_l4_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n604()</div><div class='add'>+    fun_l4_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n605()</div><div class='add'>+    fun_l4_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n606()</div><div class='add'>+    fun_l4_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n607()</div><div class='add'>+    fun_l4_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n608()</div><div class='add'>+    fun_l4_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n609()</div><div class='add'>+    fun_l4_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n610()</div><div class='add'>+    fun_l4_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n611()</div><div class='add'>+    fun_l4_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n612()</div><div class='add'>+    fun_l4_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n613()</div><div class='add'>+    fun_l4_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n614()</div><div class='add'>+    fun_l4_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n615()</div><div class='add'>+    fun_l4_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n616()</div><div class='add'>+    fun_l4_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n617()</div><div class='add'>+    fun_l4_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n618()</div><div class='add'>+    fun_l4_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n619()</div><div class='add'>+    fun_l4_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n620()</div><div class='add'>+    fun_l4_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n621()</div><div class='add'>+    fun_l4_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n622()</div><div class='add'>+    fun_l4_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n623()</div><div class='add'>+    fun_l4_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n624()</div><div class='add'>+    fun_l4_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n625()</div><div class='add'>+    fun_l4_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n626()</div><div class='add'>+    fun_l4_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n627()</div><div class='add'>+    fun_l4_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n628()</div><div class='add'>+    fun_l4_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n629()</div><div class='add'>+    fun_l4_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n630()</div><div class='add'>+    fun_l4_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n631()</div><div class='add'>+    fun_l4_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n632()</div><div class='add'>+    fun_l4_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n633()</div><div class='add'>+    fun_l4_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n634()</div><div class='add'>+    fun_l4_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n635()</div><div class='add'>+    fun_l4_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n636()</div><div class='add'>+    fun_l4_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n637()</div><div class='add'>+    fun_l4_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n638()</div><div class='add'>+    fun_l4_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n639()</div><div class='add'>+    fun_l4_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n640()</div><div class='add'>+    fun_l4_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n641()</div><div class='add'>+    fun_l4_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n642()</div><div class='add'>+    fun_l4_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n643()</div><div class='add'>+    fun_l4_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n644()</div><div class='add'>+    fun_l4_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n645()</div><div class='add'>+    fun_l4_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n646()</div><div class='add'>+    fun_l4_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n647()</div><div class='add'>+    fun_l4_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n648()</div><div class='add'>+    fun_l4_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n649()</div><div class='add'>+    fun_l4_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n650()</div><div class='add'>+    fun_l4_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n651()</div><div class='add'>+    fun_l4_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n652()</div><div class='add'>+    fun_l4_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n653()</div><div class='add'>+    fun_l4_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n654()</div><div class='add'>+    fun_l4_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n655()</div><div class='add'>+    fun_l4_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n656()</div><div class='add'>+    fun_l4_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n657()</div><div class='add'>+    fun_l4_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n658()</div><div class='add'>+    fun_l4_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n659()</div><div class='add'>+    fun_l4_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n660()</div><div class='add'>+    fun_l4_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n661()</div><div class='add'>+    fun_l4_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n662()</div><div class='add'>+    fun_l4_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n663()</div><div class='add'>+    fun_l4_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n664()</div><div class='add'>+    fun_l4_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n665()</div><div class='add'>+    fun_l4_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n666()</div><div class='add'>+    fun_l4_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n667()</div><div class='add'>+    fun_l4_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n668()</div><div class='add'>+    fun_l4_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n669()</div><div class='add'>+    fun_l4_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n670()</div><div class='add'>+    fun_l4_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n671()</div><div class='add'>+    fun_l4_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n672()</div><div class='add'>+    fun_l4_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n673()</div><div class='add'>+    fun_l4_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n674()</div><div class='add'>+    fun_l4_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n675()</div><div class='add'>+    fun_l4_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n676()</div><div class='add'>+    fun_l4_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n677()</div><div class='add'>+    fun_l4_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n678()</div><div class='add'>+    fun_l4_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n679()</div><div class='add'>+    fun_l4_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n680()</div><div class='add'>+    fun_l4_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n681()</div><div class='add'>+    fun_l4_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n682()</div><div class='add'>+    fun_l4_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n683()</div><div class='add'>+    fun_l4_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n684()</div><div class='add'>+    fun_l4_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n685()</div><div class='add'>+    fun_l4_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n686()</div><div class='add'>+    fun_l4_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n687()</div><div class='add'>+    fun_l4_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n688()</div><div class='add'>+    fun_l4_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n689()</div><div class='add'>+    fun_l4_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n690()</div><div class='add'>+    fun_l4_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n691()</div><div class='add'>+    fun_l4_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n692()</div><div class='add'>+    fun_l4_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n693()</div><div class='add'>+    fun_l4_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n694()</div><div class='add'>+    fun_l4_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n695()</div><div class='add'>+    fun_l4_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n696()</div><div class='add'>+    fun_l4_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n697()</div><div class='add'>+    fun_l4_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n698()</div><div class='add'>+    fun_l4_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n699()</div><div class='add'>+    fun_l4_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n700()</div><div class='add'>+    fun_l4_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n701()</div><div class='add'>+    fun_l4_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n702()</div><div class='add'>+    fun_l4_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n703()</div><div class='add'>+    fun_l4_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n704()</div><div class='add'>+    fun_l4_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n705()</div><div class='add'>+    fun_l4_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n706()</div><div class='add'>+    fun_l4_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n707()</div><div class='add'>+    fun_l4_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n708()</div><div class='add'>+    fun_l4_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n709()</div><div class='add'>+    fun_l4_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n710()</div><div class='add'>+    fun_l4_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n711()</div><div class='add'>+    fun_l4_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n712()</div><div class='add'>+    fun_l4_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n713()</div><div class='add'>+    fun_l4_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n714()</div><div class='add'>+    fun_l4_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n715()</div><div class='add'>+    fun_l4_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n716()</div><div class='add'>+    fun_l4_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n717()</div><div class='add'>+    fun_l4_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n718()</div><div class='add'>+    fun_l4_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n719()</div><div class='add'>+    fun_l4_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n720()</div><div class='add'>+    fun_l4_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n721()</div><div class='add'>+    fun_l4_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n722()</div><div class='add'>+    fun_l4_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n723()</div><div class='add'>+    fun_l4_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n724()</div><div class='add'>+    fun_l4_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n725()</div><div class='add'>+    fun_l4_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n726()</div><div class='add'>+    fun_l4_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n727()</div><div class='add'>+    fun_l4_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n728()</div><div class='add'>+    fun_l4_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n729()</div><div class='add'>+    fun_l4_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n730()</div><div class='add'>+    fun_l4_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n731()</div><div class='add'>+    fun_l4_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n732()</div><div class='add'>+    fun_l4_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n733()</div><div class='add'>+    fun_l4_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n734()</div><div class='add'>+    fun_l4_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n735()</div><div class='add'>+    fun_l4_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n736()</div><div class='add'>+    fun_l4_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n737()</div><div class='add'>+    fun_l4_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n738()</div><div class='add'>+    fun_l4_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n739()</div><div class='add'>+    fun_l4_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n740()</div><div class='add'>+    fun_l4_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n741()</div><div class='add'>+    fun_l4_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n742()</div><div class='add'>+    fun_l4_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n743()</div><div class='add'>+    fun_l4_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n744()</div><div class='add'>+    fun_l4_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n745()</div><div class='add'>+    fun_l4_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n746()</div><div class='add'>+    fun_l4_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n747()</div><div class='add'>+    fun_l4_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n748()</div><div class='add'>+    fun_l4_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n749()</div><div class='add'>+    fun_l4_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n750()</div><div class='add'>+    fun_l4_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n751()</div><div class='add'>+    fun_l4_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n752()</div><div class='add'>+    fun_l4_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n753()</div><div class='add'>+    fun_l4_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n754()</div><div class='add'>+    fun_l4_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n755()</div><div class='add'>+    fun_l4_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n756()</div><div class='add'>+    fun_l4_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n757()</div><div class='add'>+    fun_l4_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n758()</div><div class='add'>+    fun_l4_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n759()</div><div class='add'>+    fun_l4_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n760()</div><div class='add'>+    fun_l4_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n761()</div><div class='add'>+    fun_l4_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n762()</div><div class='add'>+    fun_l4_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n763()</div><div class='add'>+    fun_l4_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n764()</div><div class='add'>+    fun_l4_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n765()</div><div class='add'>+    fun_l4_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n766()</div><div class='add'>+    fun_l4_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n767()</div><div class='add'>+    fun_l4_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n768()</div><div class='add'>+    fun_l4_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n769()</div><div class='add'>+    fun_l4_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n770()</div><div class='add'>+    fun_l4_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n771()</div><div class='add'>+    fun_l4_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n772()</div><div class='add'>+    fun_l4_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n773()</div><div class='add'>+    fun_l4_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n774()</div><div class='add'>+    fun_l4_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n775()</div><div class='add'>+    fun_l4_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n776()</div><div class='add'>+    fun_l4_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n777()</div><div class='add'>+    fun_l4_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n778()</div><div class='add'>+    fun_l4_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n779()</div><div class='add'>+    fun_l4_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n780()</div><div class='add'>+    fun_l4_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n781()</div><div class='add'>+    fun_l4_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n782()</div><div class='add'>+    fun_l4_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n783()</div><div class='add'>+    fun_l4_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n784()</div><div class='add'>+    fun_l4_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n785()</div><div class='add'>+    fun_l4_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n786()</div><div class='add'>+    fun_l4_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n787()</div><div class='add'>+    fun_l4_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n788()</div><div class='add'>+    fun_l4_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n789()</div><div class='add'>+    fun_l4_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n790()</div><div class='add'>+    fun_l4_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n791()</div><div class='add'>+    fun_l4_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n792()</div><div class='add'>+    fun_l4_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n793()</div><div class='add'>+    fun_l4_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n794()</div><div class='add'>+    fun_l4_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n795()</div><div class='add'>+    fun_l4_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n796()</div><div class='add'>+    fun_l4_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n797()</div><div class='add'>+    fun_l4_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n798()</div><div class='add'>+    fun_l4_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n799()</div><div class='add'>+    fun_l4_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n800()</div><div class='add'>+    fun_l4_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n801()</div><div class='add'>+    fun_l4_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n802()</div><div class='add'>+    fun_l4_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n803()</div><div class='add'>+    fun_l4_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n804()</div><div class='add'>+    fun_l4_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n805()</div><div class='add'>+    fun_l4_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n806()</div><div class='add'>+    fun_l4_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n807()</div><div class='add'>+    fun_l4_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n808()</div><div class='add'>+    fun_l4_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n809()</div><div class='add'>+    fun_l4_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n810()</div><div class='add'>+    fun_l4_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n811()</div><div class='add'>+    fun_l4_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n812()</div><div class='add'>+    fun_l4_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n813()</div><div class='add'>+    fun_l4_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n814()</div><div class='add'>+    fun_l4_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n815()</div><div class='add'>+    fun_l4_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n816()</div><div class='add'>+    fun_l4_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n817()</div><div class='add'>+    fun_l4_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n818()</div><div class='add'>+    fun_l4_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n819()</div><div class='add'>+    fun_l4_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n820()</div><div class='add'>+    fun_l4_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n821()</div><div class='add'>+    fun_l4_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n822()</div><div class='add'>+    fun_l4_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n823()</div><div class='add'>+    fun_l4_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n824()</div><div class='add'>+    fun_l4_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n825()</div><div class='add'>+    fun_l4_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n826()</div><div class='add'>+    fun_l4_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n827()</div><div class='add'>+    fun_l4_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n828()</div><div class='add'>+    fun_l4_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n829()</div><div class='add'>+    fun_l4_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n830()</div><div class='add'>+    fun_l4_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n831()</div><div class='add'>+    fun_l4_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n832()</div><div class='add'>+    fun_l4_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n833()</div><div class='add'>+    fun_l4_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n834()</div><div class='add'>+    fun_l4_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n835()</div><div class='add'>+    fun_l4_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n836()</div><div class='add'>+    fun_l4_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n837()</div><div class='add'>+    fun_l4_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n838()</div><div class='add'>+    fun_l4_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n839()</div><div class='add'>+    fun_l4_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n840()</div><div class='add'>+    fun_l4_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n841()</div><div class='add'>+    fun_l4_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n842()</div><div class='add'>+    fun_l4_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n843()</div><div class='add'>+    fun_l4_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n844()</div><div class='add'>+    fun_l4_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n845()</div><div class='add'>+    fun_l4_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n846()</div><div class='add'>+    fun_l4_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n847()</div><div class='add'>+    fun_l4_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n848()</div><div class='add'>+    fun_l4_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n849()</div><div class='add'>+    fun_l4_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n850()</div><div class='add'>+    fun_l4_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n851()</div><div class='add'>+    fun_l4_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n852()</div><div class='add'>+    fun_l4_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n853()</div><div class='add'>+    fun_l4_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n854()</div><div class='add'>+    fun_l4_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n855()</div><div class='add'>+    fun_l4_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n856()</div><div class='add'>+    fun_l4_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n857()</div><div class='add'>+    fun_l4_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n858()</div><div class='add'>+    fun_l4_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n859()</div><div class='add'>+    fun_l4_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n860()</div><div class='add'>+    fun_l4_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n861()</div><div class='add'>+    fun_l4_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n862()</div><div class='add'>+    fun_l4_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n863()</div><div class='add'>+    fun_l4_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n864()</div><div class='add'>+    fun_l4_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n865()</div><div class='add'>+    fun_l4_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n866()</div><div class='add'>+    fun_l4_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n867()</div><div class='add'>+    fun_l4_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n868()</div><div class='add'>+    fun_l4_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n869()</div><div class='add'>+    fun_l4_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n870()</div><div class='add'>+    fun_l4_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n871()</div><div class='add'>+    fun_l4_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n872()</div><div class='add'>+    fun_l4_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n873()</div><div class='add'>+    fun_l4_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n874()</div><div class='add'>+    fun_l4_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n875()</div><div class='add'>+    fun_l4_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n876()</div><div class='add'>+    fun_l4_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n877()</div><div class='add'>+    fun_l4_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n878()</div><div class='add'>+    fun_l4_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n879()</div><div class='add'>+    fun_l4_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n880()</div><div class='add'>+    fun_l4_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n881()</div><div class='add'>+    fun_l4_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n882()</div><div class='add'>+    fun_l4_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n883()</div><div class='add'>+    fun_l4_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n884()</div><div class='add'>+    fun_l4_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n885()</div><div class='add'>+    fun_l4_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n886()</div><div class='add'>+    fun_l4_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n887()</div><div class='add'>+    fun_l4_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n888()</div><div class='add'>+    fun_l4_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n889()</div><div class='add'>+    fun_l4_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n890()</div><div class='add'>+    fun_l4_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n891()</div><div class='add'>+    fun_l4_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n892()</div><div class='add'>+    fun_l4_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n893()</div><div class='add'>+    fun_l4_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n894()</div><div class='add'>+    fun_l4_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n895()</div><div class='add'>+    fun_l4_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n896()</div><div class='add'>+    fun_l4_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n897()</div><div class='add'>+    fun_l4_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n898()</div><div class='add'>+    fun_l4_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n899()</div><div class='add'>+    fun_l4_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n900()</div><div class='add'>+    fun_l4_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n901()</div><div class='add'>+    fun_l4_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n902()</div><div class='add'>+    fun_l4_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n903()</div><div class='add'>+    fun_l4_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n904()</div><div class='add'>+    fun_l4_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n905()</div><div class='add'>+    fun_l4_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n906()</div><div class='add'>+    fun_l4_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n907()</div><div class='add'>+    fun_l4_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n908()</div><div class='add'>+    fun_l4_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n909()</div><div class='add'>+    fun_l4_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n910()</div><div class='add'>+    fun_l4_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n911()</div><div class='add'>+    fun_l4_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n912()</div><div class='add'>+    fun_l4_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n913()</div><div class='add'>+    fun_l4_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n914()</div><div class='add'>+    fun_l4_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n915()</div><div class='add'>+    fun_l4_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n916()</div><div class='add'>+    fun_l4_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n917()</div><div class='add'>+    fun_l4_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n918()</div><div class='add'>+    fun_l4_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n919()</div><div class='add'>+    fun_l4_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n920()</div><div class='add'>+    fun_l4_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n921()</div><div class='add'>+    fun_l4_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n922()</div><div class='add'>+    fun_l4_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n923()</div><div class='add'>+    fun_l4_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n924()</div><div class='add'>+    fun_l4_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n925()</div><div class='add'>+    fun_l4_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n926()</div><div class='add'>+    fun_l4_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n927()</div><div class='add'>+    fun_l4_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n928()</div><div class='add'>+    fun_l4_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n929()</div><div class='add'>+    fun_l4_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n930()</div><div class='add'>+    fun_l4_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n931()</div><div class='add'>+    fun_l4_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n932()</div><div class='add'>+    fun_l4_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n933()</div><div class='add'>+    fun_l4_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n934()</div><div class='add'>+    fun_l4_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n935()</div><div class='add'>+    fun_l4_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n936()</div><div class='add'>+    fun_l4_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n937()</div><div class='add'>+    fun_l4_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n938()</div><div class='add'>+    fun_l4_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n939()</div><div class='add'>+    fun_l4_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n940()</div><div class='add'>+    fun_l4_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n941()</div><div class='add'>+    fun_l4_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n942()</div><div class='add'>+    fun_l4_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n943()</div><div class='add'>+    fun_l4_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n944()</div><div class='add'>+    fun_l4_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n945()</div><div class='add'>+    fun_l4_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n946()</div><div class='add'>+    fun_l4_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n947()</div><div class='add'>+    fun_l4_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n948()</div><div class='add'>+    fun_l4_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n949()</div><div class='add'>+    fun_l4_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n950()</div><div class='add'>+    fun_l4_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n951()</div><div class='add'>+    fun_l4_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n952()</div><div class='add'>+    fun_l4_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n953()</div><div class='add'>+    fun_l4_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n954()</div><div class='add'>+    fun_l4_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n955()</div><div class='add'>+    fun_l4_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n956()</div><div class='add'>+    fun_l4_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n957()</div><div class='add'>+    fun_l4_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n958()</div><div class='add'>+    fun_l4_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n959()</div><div class='add'>+    fun_l4_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n960()</div><div class='add'>+    fun_l4_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n961()</div><div class='add'>+    fun_l4_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n962()</div><div class='add'>+    fun_l4_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n963()</div><div class='add'>+    fun_l4_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n964()</div><div class='add'>+    fun_l4_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n965()</div><div class='add'>+    fun_l4_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n966()</div><div class='add'>+    fun_l4_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n967()</div><div class='add'>+    fun_l4_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n968()</div><div class='add'>+    fun_l4_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n969()</div><div class='add'>+    fun_l4_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n970()</div><div class='add'>+    fun_l4_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n971()</div><div class='add'>+    fun_l4_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n972()</div><div class='add'>+    fun_l4_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n973()</div><div class='add'>+    fun_l4_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n974()</div><div class='add'>+    fun_l4_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n975()</div><div class='add'>+    fun_l4_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n976()</div><div class='add'>+    fun_l4_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n977()</div><div class='add'>+    fun_l4_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n978()</div><div class='add'>+    fun_l4_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n979()</div><div class='add'>+    fun_l4_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n980()</div><div class='add'>+    fun_l4_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n981()</div><div class='add'>+    fun_l4_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n982()</div><div class='add'>+    fun_l4_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n983()</div><div class='add'>+    fun_l4_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n984()</div><div class='add'>+    fun_l4_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n985()</div><div class='add'>+    fun_l4_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n986()</div><div class='add'>+    fun_l4_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n987()</div><div class='add'>+    fun_l4_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n988()</div><div class='add'>+    fun_l4_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n989()</div><div class='add'>+    fun_l4_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n990()</div><div class='add'>+    fun_l4_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n991()</div><div class='add'>+    fun_l4_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n992()</div><div class='add'>+    fun_l4_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n993()</div><div class='add'>+    fun_l4_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n994()</div><div class='add'>+    fun_l4_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n995()</div><div class='add'>+    fun_l4_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n996()</div><div class='add'>+    fun_l4_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n997()</div><div class='add'>+    fun_l4_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n998()</div><div class='add'>+    fun_l4_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l3_n999()</div><div class='add'>+    fun_l4_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n0()</div><div class='add'>+    fun_l5_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n1()</div><div class='add'>+    fun_l5_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n2()</div><div class='add'>+    fun_l5_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n3()</div><div class='add'>+    fun_l5_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n4()</div><div class='add'>+    fun_l5_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n5()</div><div class='add'>+    fun_l5_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n6()</div><div class='add'>+    fun_l5_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n7()</div><div class='add'>+    fun_l5_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n8()</div><div class='add'>+    fun_l5_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n9()</div><div class='add'>+    fun_l5_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n10()</div><div class='add'>+    fun_l5_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n11()</div><div class='add'>+    fun_l5_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n12()</div><div class='add'>+    fun_l5_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n13()</div><div class='add'>+    fun_l5_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n14()</div><div class='add'>+    fun_l5_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n15()</div><div class='add'>+    fun_l5_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n16()</div><div class='add'>+    fun_l5_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n17()</div><div class='add'>+    fun_l5_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n18()</div><div class='add'>+    fun_l5_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n19()</div><div class='add'>+    fun_l5_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n20()</div><div class='add'>+    fun_l5_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n21()</div><div class='add'>+    fun_l5_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n22()</div><div class='add'>+    fun_l5_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n23()</div><div class='add'>+    fun_l5_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n24()</div><div class='add'>+    fun_l5_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n25()</div><div class='add'>+    fun_l5_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n26()</div><div class='add'>+    fun_l5_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n27()</div><div class='add'>+    fun_l5_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n28()</div><div class='add'>+    fun_l5_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n29()</div><div class='add'>+    fun_l5_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n30()</div><div class='add'>+    fun_l5_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n31()</div><div class='add'>+    fun_l5_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n32()</div><div class='add'>+    fun_l5_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n33()</div><div class='add'>+    fun_l5_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n34()</div><div class='add'>+    fun_l5_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n35()</div><div class='add'>+    fun_l5_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n36()</div><div class='add'>+    fun_l5_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n37()</div><div class='add'>+    fun_l5_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n38()</div><div class='add'>+    fun_l5_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n39()</div><div class='add'>+    fun_l5_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n40()</div><div class='add'>+    fun_l5_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n41()</div><div class='add'>+    fun_l5_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n42()</div><div class='add'>+    fun_l5_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n43()</div><div class='add'>+    fun_l5_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n44()</div><div class='add'>+    fun_l5_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n45()</div><div class='add'>+    fun_l5_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n46()</div><div class='add'>+    fun_l5_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n47()</div><div class='add'>+    fun_l5_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n48()</div><div class='add'>+    fun_l5_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n49()</div><div class='add'>+    fun_l5_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n50()</div><div class='add'>+    fun_l5_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n51()</div><div class='add'>+    fun_l5_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n52()</div><div class='add'>+    fun_l5_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n53()</div><div class='add'>+    fun_l5_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n54()</div><div class='add'>+    fun_l5_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n55()</div><div class='add'>+    fun_l5_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n56()</div><div class='add'>+    fun_l5_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n57()</div><div class='add'>+    fun_l5_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n58()</div><div class='add'>+    fun_l5_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n59()</div><div class='add'>+    fun_l5_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n60()</div><div class='add'>+    fun_l5_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n61()</div><div class='add'>+    fun_l5_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n62()</div><div class='add'>+    fun_l5_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n63()</div><div class='add'>+    fun_l5_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n64()</div><div class='add'>+    fun_l5_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n65()</div><div class='add'>+    fun_l5_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n66()</div><div class='add'>+    fun_l5_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n67()</div><div class='add'>+    fun_l5_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n68()</div><div class='add'>+    fun_l5_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n69()</div><div class='add'>+    fun_l5_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n70()</div><div class='add'>+    fun_l5_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n71()</div><div class='add'>+    fun_l5_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n72()</div><div class='add'>+    fun_l5_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n73()</div><div class='add'>+    fun_l5_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n74()</div><div class='add'>+    fun_l5_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n75()</div><div class='add'>+    fun_l5_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n76()</div><div class='add'>+    fun_l5_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n77()</div><div class='add'>+    fun_l5_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n78()</div><div class='add'>+    fun_l5_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n79()</div><div class='add'>+    fun_l5_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n80()</div><div class='add'>+    fun_l5_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n81()</div><div class='add'>+    fun_l5_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n82()</div><div class='add'>+    fun_l5_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n83()</div><div class='add'>+    fun_l5_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n84()</div><div class='add'>+    fun_l5_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n85()</div><div class='add'>+    fun_l5_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n86()</div><div class='add'>+    fun_l5_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n87()</div><div class='add'>+    fun_l5_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n88()</div><div class='add'>+    fun_l5_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n89()</div><div class='add'>+    fun_l5_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n90()</div><div class='add'>+    fun_l5_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n91()</div><div class='add'>+    fun_l5_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n92()</div><div class='add'>+    fun_l5_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n93()</div><div class='add'>+    fun_l5_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n94()</div><div class='add'>+    fun_l5_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n95()</div><div class='add'>+    fun_l5_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n96()</div><div class='add'>+    fun_l5_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n97()</div><div class='add'>+    fun_l5_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n98()</div><div class='add'>+    fun_l5_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n99()</div><div class='add'>+    fun_l5_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n100()</div><div class='add'>+    fun_l5_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n101()</div><div class='add'>+    fun_l5_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n102()</div><div class='add'>+    fun_l5_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n103()</div><div class='add'>+    fun_l5_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n104()</div><div class='add'>+    fun_l5_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n105()</div><div class='add'>+    fun_l5_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n106()</div><div class='add'>+    fun_l5_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n107()</div><div class='add'>+    fun_l5_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n108()</div><div class='add'>+    fun_l5_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n109()</div><div class='add'>+    fun_l5_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n110()</div><div class='add'>+    fun_l5_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n111()</div><div class='add'>+    fun_l5_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n112()</div><div class='add'>+    fun_l5_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n113()</div><div class='add'>+    fun_l5_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n114()</div><div class='add'>+    fun_l5_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n115()</div><div class='add'>+    fun_l5_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n116()</div><div class='add'>+    fun_l5_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n117()</div><div class='add'>+    fun_l5_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n118()</div><div class='add'>+    fun_l5_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n119()</div><div class='add'>+    fun_l5_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n120()</div><div class='add'>+    fun_l5_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n121()</div><div class='add'>+    fun_l5_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n122()</div><div class='add'>+    fun_l5_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n123()</div><div class='add'>+    fun_l5_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n124()</div><div class='add'>+    fun_l5_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n125()</div><div class='add'>+    fun_l5_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n126()</div><div class='add'>+    fun_l5_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n127()</div><div class='add'>+    fun_l5_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n128()</div><div class='add'>+    fun_l5_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n129()</div><div class='add'>+    fun_l5_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n130()</div><div class='add'>+    fun_l5_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n131()</div><div class='add'>+    fun_l5_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n132()</div><div class='add'>+    fun_l5_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n133()</div><div class='add'>+    fun_l5_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n134()</div><div class='add'>+    fun_l5_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n135()</div><div class='add'>+    fun_l5_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n136()</div><div class='add'>+    fun_l5_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n137()</div><div class='add'>+    fun_l5_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n138()</div><div class='add'>+    fun_l5_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n139()</div><div class='add'>+    fun_l5_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n140()</div><div class='add'>+    fun_l5_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n141()</div><div class='add'>+    fun_l5_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n142()</div><div class='add'>+    fun_l5_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n143()</div><div class='add'>+    fun_l5_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n144()</div><div class='add'>+    fun_l5_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n145()</div><div class='add'>+    fun_l5_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n146()</div><div class='add'>+    fun_l5_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n147()</div><div class='add'>+    fun_l5_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n148()</div><div class='add'>+    fun_l5_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n149()</div><div class='add'>+    fun_l5_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n150()</div><div class='add'>+    fun_l5_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n151()</div><div class='add'>+    fun_l5_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n152()</div><div class='add'>+    fun_l5_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n153()</div><div class='add'>+    fun_l5_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n154()</div><div class='add'>+    fun_l5_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n155()</div><div class='add'>+    fun_l5_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n156()</div><div class='add'>+    fun_l5_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n157()</div><div class='add'>+    fun_l5_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n158()</div><div class='add'>+    fun_l5_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n159()</div><div class='add'>+    fun_l5_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n160()</div><div class='add'>+    fun_l5_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n161()</div><div class='add'>+    fun_l5_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n162()</div><div class='add'>+    fun_l5_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n163()</div><div class='add'>+    fun_l5_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n164()</div><div class='add'>+    fun_l5_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n165()</div><div class='add'>+    fun_l5_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n166()</div><div class='add'>+    fun_l5_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n167()</div><div class='add'>+    fun_l5_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n168()</div><div class='add'>+    fun_l5_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n169()</div><div class='add'>+    fun_l5_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n170()</div><div class='add'>+    fun_l5_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n171()</div><div class='add'>+    fun_l5_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n172()</div><div class='add'>+    fun_l5_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n173()</div><div class='add'>+    fun_l5_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n174()</div><div class='add'>+    fun_l5_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n175()</div><div class='add'>+    fun_l5_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n176()</div><div class='add'>+    fun_l5_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n177()</div><div class='add'>+    fun_l5_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n178()</div><div class='add'>+    fun_l5_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n179()</div><div class='add'>+    fun_l5_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n180()</div><div class='add'>+    fun_l5_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n181()</div><div class='add'>+    fun_l5_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n182()</div><div class='add'>+    fun_l5_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n183()</div><div class='add'>+    fun_l5_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n184()</div><div class='add'>+    fun_l5_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n185()</div><div class='add'>+    fun_l5_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n186()</div><div class='add'>+    fun_l5_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n187()</div><div class='add'>+    fun_l5_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n188()</div><div class='add'>+    fun_l5_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n189()</div><div class='add'>+    fun_l5_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n190()</div><div class='add'>+    fun_l5_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n191()</div><div class='add'>+    fun_l5_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n192()</div><div class='add'>+    fun_l5_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n193()</div><div class='add'>+    fun_l5_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n194()</div><div class='add'>+    fun_l5_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n195()</div><div class='add'>+    fun_l5_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n196()</div><div class='add'>+    fun_l5_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n197()</div><div class='add'>+    fun_l5_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n198()</div><div class='add'>+    fun_l5_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n199()</div><div class='add'>+    fun_l5_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n200()</div><div class='add'>+    fun_l5_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n201()</div><div class='add'>+    fun_l5_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n202()</div><div class='add'>+    fun_l5_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n203()</div><div class='add'>+    fun_l5_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n204()</div><div class='add'>+    fun_l5_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n205()</div><div class='add'>+    fun_l5_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n206()</div><div class='add'>+    fun_l5_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n207()</div><div class='add'>+    fun_l5_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n208()</div><div class='add'>+    fun_l5_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n209()</div><div class='add'>+    fun_l5_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n210()</div><div class='add'>+    fun_l5_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n211()</div><div class='add'>+    fun_l5_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n212()</div><div class='add'>+    fun_l5_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n213()</div><div class='add'>+    fun_l5_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n214()</div><div class='add'>+    fun_l5_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n215()</div><div class='add'>+    fun_l5_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n216()</div><div class='add'>+    fun_l5_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n217()</div><div class='add'>+    fun_l5_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n218()</div><div class='add'>+    fun_l5_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n219()</div><div class='add'>+    fun_l5_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n220()</div><div class='add'>+    fun_l5_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n221()</div><div class='add'>+    fun_l5_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n222()</div><div class='add'>+    fun_l5_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n223()</div><div class='add'>+    fun_l5_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n224()</div><div class='add'>+    fun_l5_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n225()</div><div class='add'>+    fun_l5_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n226()</div><div class='add'>+    fun_l5_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n227()</div><div class='add'>+    fun_l5_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n228()</div><div class='add'>+    fun_l5_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n229()</div><div class='add'>+    fun_l5_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n230()</div><div class='add'>+    fun_l5_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n231()</div><div class='add'>+    fun_l5_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n232()</div><div class='add'>+    fun_l5_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n233()</div><div class='add'>+    fun_l5_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n234()</div><div class='add'>+    fun_l5_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n235()</div><div class='add'>+    fun_l5_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n236()</div><div class='add'>+    fun_l5_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n237()</div><div class='add'>+    fun_l5_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n238()</div><div class='add'>+    fun_l5_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n239()</div><div class='add'>+    fun_l5_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n240()</div><div class='add'>+    fun_l5_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n241()</div><div class='add'>+    fun_l5_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n242()</div><div class='add'>+    fun_l5_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n243()</div><div class='add'>+    fun_l5_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n244()</div><div class='add'>+    fun_l5_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n245()</div><div class='add'>+    fun_l5_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n246()</div><div class='add'>+    fun_l5_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n247()</div><div class='add'>+    fun_l5_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n248()</div><div class='add'>+    fun_l5_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n249()</div><div class='add'>+    fun_l5_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n250()</div><div class='add'>+    fun_l5_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n251()</div><div class='add'>+    fun_l5_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n252()</div><div class='add'>+    fun_l5_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n253()</div><div class='add'>+    fun_l5_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n254()</div><div class='add'>+    fun_l5_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n255()</div><div class='add'>+    fun_l5_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n256()</div><div class='add'>+    fun_l5_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n257()</div><div class='add'>+    fun_l5_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n258()</div><div class='add'>+    fun_l5_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n259()</div><div class='add'>+    fun_l5_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n260()</div><div class='add'>+    fun_l5_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n261()</div><div class='add'>+    fun_l5_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n262()</div><div class='add'>+    fun_l5_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n263()</div><div class='add'>+    fun_l5_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n264()</div><div class='add'>+    fun_l5_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n265()</div><div class='add'>+    fun_l5_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n266()</div><div class='add'>+    fun_l5_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n267()</div><div class='add'>+    fun_l5_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n268()</div><div class='add'>+    fun_l5_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n269()</div><div class='add'>+    fun_l5_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n270()</div><div class='add'>+    fun_l5_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n271()</div><div class='add'>+    fun_l5_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n272()</div><div class='add'>+    fun_l5_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n273()</div><div class='add'>+    fun_l5_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n274()</div><div class='add'>+    fun_l5_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n275()</div><div class='add'>+    fun_l5_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n276()</div><div class='add'>+    fun_l5_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n277()</div><div class='add'>+    fun_l5_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n278()</div><div class='add'>+    fun_l5_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n279()</div><div class='add'>+    fun_l5_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n280()</div><div class='add'>+    fun_l5_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n281()</div><div class='add'>+    fun_l5_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n282()</div><div class='add'>+    fun_l5_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n283()</div><div class='add'>+    fun_l5_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n284()</div><div class='add'>+    fun_l5_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n285()</div><div class='add'>+    fun_l5_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n286()</div><div class='add'>+    fun_l5_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n287()</div><div class='add'>+    fun_l5_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n288()</div><div class='add'>+    fun_l5_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n289()</div><div class='add'>+    fun_l5_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n290()</div><div class='add'>+    fun_l5_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n291()</div><div class='add'>+    fun_l5_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n292()</div><div class='add'>+    fun_l5_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n293()</div><div class='add'>+    fun_l5_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n294()</div><div class='add'>+    fun_l5_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n295()</div><div class='add'>+    fun_l5_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n296()</div><div class='add'>+    fun_l5_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n297()</div><div class='add'>+    fun_l5_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n298()</div><div class='add'>+    fun_l5_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n299()</div><div class='add'>+    fun_l5_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n300()</div><div class='add'>+    fun_l5_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n301()</div><div class='add'>+    fun_l5_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n302()</div><div class='add'>+    fun_l5_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n303()</div><div class='add'>+    fun_l5_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n304()</div><div class='add'>+    fun_l5_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n305()</div><div class='add'>+    fun_l5_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n306()</div><div class='add'>+    fun_l5_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n307()</div><div class='add'>+    fun_l5_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n308()</div><div class='add'>+    fun_l5_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n309()</div><div class='add'>+    fun_l5_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n310()</div><div class='add'>+    fun_l5_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n311()</div><div class='add'>+    fun_l5_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n312()</div><div class='add'>+    fun_l5_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n313()</div><div class='add'>+    fun_l5_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n314()</div><div class='add'>+    fun_l5_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n315()</div><div class='add'>+    fun_l5_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n316()</div><div class='add'>+    fun_l5_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n317()</div><div class='add'>+    fun_l5_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n318()</div><div class='add'>+    fun_l5_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n319()</div><div class='add'>+    fun_l5_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n320()</div><div class='add'>+    fun_l5_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n321()</div><div class='add'>+    fun_l5_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n322()</div><div class='add'>+    fun_l5_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n323()</div><div class='add'>+    fun_l5_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n324()</div><div class='add'>+    fun_l5_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n325()</div><div class='add'>+    fun_l5_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n326()</div><div class='add'>+    fun_l5_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n327()</div><div class='add'>+    fun_l5_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n328()</div><div class='add'>+    fun_l5_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n329()</div><div class='add'>+    fun_l5_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n330()</div><div class='add'>+    fun_l5_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n331()</div><div class='add'>+    fun_l5_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n332()</div><div class='add'>+    fun_l5_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n333()</div><div class='add'>+    fun_l5_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n334()</div><div class='add'>+    fun_l5_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n335()</div><div class='add'>+    fun_l5_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n336()</div><div class='add'>+    fun_l5_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n337()</div><div class='add'>+    fun_l5_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n338()</div><div class='add'>+    fun_l5_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n339()</div><div class='add'>+    fun_l5_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n340()</div><div class='add'>+    fun_l5_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n341()</div><div class='add'>+    fun_l5_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n342()</div><div class='add'>+    fun_l5_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n343()</div><div class='add'>+    fun_l5_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n344()</div><div class='add'>+    fun_l5_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n345()</div><div class='add'>+    fun_l5_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n346()</div><div class='add'>+    fun_l5_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n347()</div><div class='add'>+    fun_l5_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n348()</div><div class='add'>+    fun_l5_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n349()</div><div class='add'>+    fun_l5_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n350()</div><div class='add'>+    fun_l5_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n351()</div><div class='add'>+    fun_l5_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n352()</div><div class='add'>+    fun_l5_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n353()</div><div class='add'>+    fun_l5_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n354()</div><div class='add'>+    fun_l5_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n355()</div><div class='add'>+    fun_l5_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n356()</div><div class='add'>+    fun_l5_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n357()</div><div class='add'>+    fun_l5_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n358()</div><div class='add'>+    fun_l5_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n359()</div><div class='add'>+    fun_l5_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n360()</div><div class='add'>+    fun_l5_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n361()</div><div class='add'>+    fun_l5_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n362()</div><div class='add'>+    fun_l5_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n363()</div><div class='add'>+    fun_l5_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n364()</div><div class='add'>+    fun_l5_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n365()</div><div class='add'>+    fun_l5_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n366()</div><div class='add'>+    fun_l5_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n367()</div><div class='add'>+    fun_l5_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n368()</div><div class='add'>+    fun_l5_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n369()</div><div class='add'>+    fun_l5_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n370()</div><div class='add'>+    fun_l5_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n371()</div><div class='add'>+    fun_l5_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n372()</div><div class='add'>+    fun_l5_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n373()</div><div class='add'>+    fun_l5_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n374()</div><div class='add'>+    fun_l5_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n375()</div><div class='add'>+    fun_l5_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n376()</div><div class='add'>+    fun_l5_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n377()</div><div class='add'>+    fun_l5_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n378()</div><div class='add'>+    fun_l5_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n379()</div><div class='add'>+    fun_l5_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n380()</div><div class='add'>+    fun_l5_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n381()</div><div class='add'>+    fun_l5_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n382()</div><div class='add'>+    fun_l5_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n383()</div><div class='add'>+    fun_l5_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n384()</div><div class='add'>+    fun_l5_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n385()</div><div class='add'>+    fun_l5_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n386()</div><div class='add'>+    fun_l5_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n387()</div><div class='add'>+    fun_l5_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n388()</div><div class='add'>+    fun_l5_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n389()</div><div class='add'>+    fun_l5_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n390()</div><div class='add'>+    fun_l5_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n391()</div><div class='add'>+    fun_l5_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n392()</div><div class='add'>+    fun_l5_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n393()</div><div class='add'>+    fun_l5_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n394()</div><div class='add'>+    fun_l5_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n395()</div><div class='add'>+    fun_l5_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n396()</div><div class='add'>+    fun_l5_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n397()</div><div class='add'>+    fun_l5_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n398()</div><div class='add'>+    fun_l5_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n399()</div><div class='add'>+    fun_l5_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n400()</div><div class='add'>+    fun_l5_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n401()</div><div class='add'>+    fun_l5_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n402()</div><div class='add'>+    fun_l5_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n403()</div><div class='add'>+    fun_l5_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n404()</div><div class='add'>+    fun_l5_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n405()</div><div class='add'>+    fun_l5_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n406()</div><div class='add'>+    fun_l5_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n407()</div><div class='add'>+    fun_l5_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n408()</div><div class='add'>+    fun_l5_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n409()</div><div class='add'>+    fun_l5_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n410()</div><div class='add'>+    fun_l5_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n411()</div><div class='add'>+    fun_l5_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n412()</div><div class='add'>+    fun_l5_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n413()</div><div class='add'>+    fun_l5_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n414()</div><div class='add'>+    fun_l5_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n415()</div><div class='add'>+    fun_l5_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n416()</div><div class='add'>+    fun_l5_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n417()</div><div class='add'>+    fun_l5_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n418()</div><div class='add'>+    fun_l5_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n419()</div><div class='add'>+    fun_l5_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n420()</div><div class='add'>+    fun_l5_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n421()</div><div class='add'>+    fun_l5_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n422()</div><div class='add'>+    fun_l5_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n423()</div><div class='add'>+    fun_l5_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n424()</div><div class='add'>+    fun_l5_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n425()</div><div class='add'>+    fun_l5_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n426()</div><div class='add'>+    fun_l5_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n427()</div><div class='add'>+    fun_l5_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n428()</div><div class='add'>+    fun_l5_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n429()</div><div class='add'>+    fun_l5_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n430()</div><div class='add'>+    fun_l5_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n431()</div><div class='add'>+    fun_l5_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n432()</div><div class='add'>+    fun_l5_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n433()</div><div class='add'>+    fun_l5_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n434()</div><div class='add'>+    fun_l5_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n435()</div><div class='add'>+    fun_l5_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n436()</div><div class='add'>+    fun_l5_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n437()</div><div class='add'>+    fun_l5_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n438()</div><div class='add'>+    fun_l5_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n439()</div><div class='add'>+    fun_l5_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n440()</div><div class='add'>+    fun_l5_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n441()</div><div class='add'>+    fun_l5_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n442()</div><div class='add'>+    fun_l5_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n443()</div><div class='add'>+    fun_l5_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n444()</div><div class='add'>+    fun_l5_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n445()</div><div class='add'>+    fun_l5_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n446()</div><div class='add'>+    fun_l5_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n447()</div><div class='add'>+    fun_l5_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n448()</div><div class='add'>+    fun_l5_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n449()</div><div class='add'>+    fun_l5_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n450()</div><div class='add'>+    fun_l5_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n451()</div><div class='add'>+    fun_l5_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n452()</div><div class='add'>+    fun_l5_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n453()</div><div class='add'>+    fun_l5_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n454()</div><div class='add'>+    fun_l5_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n455()</div><div class='add'>+    fun_l5_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n456()</div><div class='add'>+    fun_l5_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n457()</div><div class='add'>+    fun_l5_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n458()</div><div class='add'>+    fun_l5_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n459()</div><div class='add'>+    fun_l5_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n460()</div><div class='add'>+    fun_l5_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n461()</div><div class='add'>+    fun_l5_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n462()</div><div class='add'>+    fun_l5_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n463()</div><div class='add'>+    fun_l5_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n464()</div><div class='add'>+    fun_l5_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n465()</div><div class='add'>+    fun_l5_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n466()</div><div class='add'>+    fun_l5_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n467()</div><div class='add'>+    fun_l5_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n468()</div><div class='add'>+    fun_l5_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n469()</div><div class='add'>+    fun_l5_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n470()</div><div class='add'>+    fun_l5_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n471()</div><div class='add'>+    fun_l5_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n472()</div><div class='add'>+    fun_l5_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n473()</div><div class='add'>+    fun_l5_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n474()</div><div class='add'>+    fun_l5_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n475()</div><div class='add'>+    fun_l5_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n476()</div><div class='add'>+    fun_l5_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n477()</div><div class='add'>+    fun_l5_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n478()</div><div class='add'>+    fun_l5_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n479()</div><div class='add'>+    fun_l5_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n480()</div><div class='add'>+    fun_l5_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n481()</div><div class='add'>+    fun_l5_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n482()</div><div class='add'>+    fun_l5_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n483()</div><div class='add'>+    fun_l5_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n484()</div><div class='add'>+    fun_l5_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n485()</div><div class='add'>+    fun_l5_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n486()</div><div class='add'>+    fun_l5_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n487()</div><div class='add'>+    fun_l5_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n488()</div><div class='add'>+    fun_l5_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n489()</div><div class='add'>+    fun_l5_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n490()</div><div class='add'>+    fun_l5_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n491()</div><div class='add'>+    fun_l5_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n492()</div><div class='add'>+    fun_l5_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n493()</div><div class='add'>+    fun_l5_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n494()</div><div class='add'>+    fun_l5_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n495()</div><div class='add'>+    fun_l5_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n496()</div><div class='add'>+    fun_l5_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n497()</div><div class='add'>+    fun_l5_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n498()</div><div class='add'>+    fun_l5_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n499()</div><div class='add'>+    fun_l5_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n500()</div><div class='add'>+    fun_l5_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n501()</div><div class='add'>+    fun_l5_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n502()</div><div class='add'>+    fun_l5_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n503()</div><div class='add'>+    fun_l5_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n504()</div><div class='add'>+    fun_l5_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n505()</div><div class='add'>+    fun_l5_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n506()</div><div class='add'>+    fun_l5_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n507()</div><div class='add'>+    fun_l5_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n508()</div><div class='add'>+    fun_l5_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n509()</div><div class='add'>+    fun_l5_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n510()</div><div class='add'>+    fun_l5_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n511()</div><div class='add'>+    fun_l5_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n512()</div><div class='add'>+    fun_l5_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n513()</div><div class='add'>+    fun_l5_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n514()</div><div class='add'>+    fun_l5_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n515()</div><div class='add'>+    fun_l5_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n516()</div><div class='add'>+    fun_l5_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n517()</div><div class='add'>+    fun_l5_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n518()</div><div class='add'>+    fun_l5_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n519()</div><div class='add'>+    fun_l5_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n520()</div><div class='add'>+    fun_l5_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n521()</div><div class='add'>+    fun_l5_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n522()</div><div class='add'>+    fun_l5_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n523()</div><div class='add'>+    fun_l5_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n524()</div><div class='add'>+    fun_l5_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n525()</div><div class='add'>+    fun_l5_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n526()</div><div class='add'>+    fun_l5_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n527()</div><div class='add'>+    fun_l5_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n528()</div><div class='add'>+    fun_l5_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n529()</div><div class='add'>+    fun_l5_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n530()</div><div class='add'>+    fun_l5_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n531()</div><div class='add'>+    fun_l5_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n532()</div><div class='add'>+    fun_l5_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n533()</div><div class='add'>+    fun_l5_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n534()</div><div class='add'>+    fun_l5_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n535()</div><div class='add'>+    fun_l5_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n536()</div><div class='add'>+    fun_l5_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n537()</div><div class='add'>+    fun_l5_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n538()</div><div class='add'>+    fun_l5_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n539()</div><div class='add'>+    fun_l5_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n540()</div><div class='add'>+    fun_l5_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n541()</div><div class='add'>+    fun_l5_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n542()</div><div class='add'>+    fun_l5_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n543()</div><div class='add'>+    fun_l5_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n544()</div><div class='add'>+    fun_l5_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n545()</div><div class='add'>+    fun_l5_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n546()</div><div class='add'>+    fun_l5_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n547()</div><div class='add'>+    fun_l5_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n548()</div><div class='add'>+    fun_l5_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n549()</div><div class='add'>+    fun_l5_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n550()</div><div class='add'>+    fun_l5_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n551()</div><div class='add'>+    fun_l5_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n552()</div><div class='add'>+    fun_l5_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n553()</div><div class='add'>+    fun_l5_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n554()</div><div class='add'>+    fun_l5_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n555()</div><div class='add'>+    fun_l5_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n556()</div><div class='add'>+    fun_l5_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n557()</div><div class='add'>+    fun_l5_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n558()</div><div class='add'>+    fun_l5_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n559()</div><div class='add'>+    fun_l5_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n560()</div><div class='add'>+    fun_l5_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n561()</div><div class='add'>+    fun_l5_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n562()</div><div class='add'>+    fun_l5_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n563()</div><div class='add'>+    fun_l5_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n564()</div><div class='add'>+    fun_l5_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n565()</div><div class='add'>+    fun_l5_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n566()</div><div class='add'>+    fun_l5_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n567()</div><div class='add'>+    fun_l5_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n568()</div><div class='add'>+    fun_l5_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n569()</div><div class='add'>+    fun_l5_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n570()</div><div class='add'>+    fun_l5_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n571()</div><div class='add'>+    fun_l5_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n572()</div><div class='add'>+    fun_l5_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n573()</div><div class='add'>+    fun_l5_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n574()</div><div class='add'>+    fun_l5_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n575()</div><div class='add'>+    fun_l5_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n576()</div><div class='add'>+    fun_l5_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n577()</div><div class='add'>+    fun_l5_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n578()</div><div class='add'>+    fun_l5_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n579()</div><div class='add'>+    fun_l5_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n580()</div><div class='add'>+    fun_l5_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n581()</div><div class='add'>+    fun_l5_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n582()</div><div class='add'>+    fun_l5_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n583()</div><div class='add'>+    fun_l5_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n584()</div><div class='add'>+    fun_l5_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n585()</div><div class='add'>+    fun_l5_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n586()</div><div class='add'>+    fun_l5_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n587()</div><div class='add'>+    fun_l5_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n588()</div><div class='add'>+    fun_l5_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n589()</div><div class='add'>+    fun_l5_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n590()</div><div class='add'>+    fun_l5_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n591()</div><div class='add'>+    fun_l5_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n592()</div><div class='add'>+    fun_l5_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n593()</div><div class='add'>+    fun_l5_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n594()</div><div class='add'>+    fun_l5_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n595()</div><div class='add'>+    fun_l5_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n596()</div><div class='add'>+    fun_l5_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n597()</div><div class='add'>+    fun_l5_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n598()</div><div class='add'>+    fun_l5_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n599()</div><div class='add'>+    fun_l5_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n600()</div><div class='add'>+    fun_l5_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n601()</div><div class='add'>+    fun_l5_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n602()</div><div class='add'>+    fun_l5_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n603()</div><div class='add'>+    fun_l5_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n604()</div><div class='add'>+    fun_l5_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n605()</div><div class='add'>+    fun_l5_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n606()</div><div class='add'>+    fun_l5_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n607()</div><div class='add'>+    fun_l5_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n608()</div><div class='add'>+    fun_l5_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n609()</div><div class='add'>+    fun_l5_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n610()</div><div class='add'>+    fun_l5_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n611()</div><div class='add'>+    fun_l5_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n612()</div><div class='add'>+    fun_l5_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n613()</div><div class='add'>+    fun_l5_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n614()</div><div class='add'>+    fun_l5_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n615()</div><div class='add'>+    fun_l5_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n616()</div><div class='add'>+    fun_l5_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n617()</div><div class='add'>+    fun_l5_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n618()</div><div class='add'>+    fun_l5_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n619()</div><div class='add'>+    fun_l5_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n620()</div><div class='add'>+    fun_l5_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n621()</div><div class='add'>+    fun_l5_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n622()</div><div class='add'>+    fun_l5_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n623()</div><div class='add'>+    fun_l5_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n624()</div><div class='add'>+    fun_l5_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n625()</div><div class='add'>+    fun_l5_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n626()</div><div class='add'>+    fun_l5_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n627()</div><div class='add'>+    fun_l5_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n628()</div><div class='add'>+    fun_l5_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n629()</div><div class='add'>+    fun_l5_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n630()</div><div class='add'>+    fun_l5_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n631()</div><div class='add'>+    fun_l5_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n632()</div><div class='add'>+    fun_l5_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n633()</div><div class='add'>+    fun_l5_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n634()</div><div class='add'>+    fun_l5_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n635()</div><div class='add'>+    fun_l5_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n636()</div><div class='add'>+    fun_l5_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n637()</div><div class='add'>+    fun_l5_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n638()</div><div class='add'>+    fun_l5_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n639()</div><div class='add'>+    fun_l5_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n640()</div><div class='add'>+    fun_l5_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n641()</div><div class='add'>+    fun_l5_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n642()</div><div class='add'>+    fun_l5_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n643()</div><div class='add'>+    fun_l5_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n644()</div><div class='add'>+    fun_l5_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n645()</div><div class='add'>+    fun_l5_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n646()</div><div class='add'>+    fun_l5_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n647()</div><div class='add'>+    fun_l5_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n648()</div><div class='add'>+    fun_l5_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n649()</div><div class='add'>+    fun_l5_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n650()</div><div class='add'>+    fun_l5_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n651()</div><div class='add'>+    fun_l5_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n652()</div><div class='add'>+    fun_l5_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n653()</div><div class='add'>+    fun_l5_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n654()</div><div class='add'>+    fun_l5_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n655()</div><div class='add'>+    fun_l5_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n656()</div><div class='add'>+    fun_l5_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n657()</div><div class='add'>+    fun_l5_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n658()</div><div class='add'>+    fun_l5_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n659()</div><div class='add'>+    fun_l5_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n660()</div><div class='add'>+    fun_l5_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n661()</div><div class='add'>+    fun_l5_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n662()</div><div class='add'>+    fun_l5_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n663()</div><div class='add'>+    fun_l5_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n664()</div><div class='add'>+    fun_l5_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n665()</div><div class='add'>+    fun_l5_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n666()</div><div class='add'>+    fun_l5_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n667()</div><div class='add'>+    fun_l5_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n668()</div><div class='add'>+    fun_l5_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n669()</div><div class='add'>+    fun_l5_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n670()</div><div class='add'>+    fun_l5_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n671()</div><div class='add'>+    fun_l5_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n672()</div><div class='add'>+    fun_l5_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n673()</div><div class='add'>+    fun_l5_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n674()</div><div class='add'>+    fun_l5_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n675()</div><div class='add'>+    fun_l5_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n676()</div><div class='add'>+    fun_l5_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n677()</div><div class='add'>+    fun_l5_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n678()</div><div class='add'>+    fun_l5_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n679()</div><div class='add'>+    fun_l5_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n680()</div><div class='add'>+    fun_l5_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n681()</div><div class='add'>+    fun_l5_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n682()</div><div class='add'>+    fun_l5_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n683()</div><div class='add'>+    fun_l5_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n684()</div><div class='add'>+    fun_l5_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n685()</div><div class='add'>+    fun_l5_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n686()</div><div class='add'>+    fun_l5_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n687()</div><div class='add'>+    fun_l5_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n688()</div><div class='add'>+    fun_l5_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n689()</div><div class='add'>+    fun_l5_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n690()</div><div class='add'>+    fun_l5_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n691()</div><div class='add'>+    fun_l5_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n692()</div><div class='add'>+    fun_l5_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n693()</div><div class='add'>+    fun_l5_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n694()</div><div class='add'>+    fun_l5_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n695()</div><div class='add'>+    fun_l5_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n696()</div><div class='add'>+    fun_l5_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n697()</div><div class='add'>+    fun_l5_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n698()</div><div class='add'>+    fun_l5_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n699()</div><div class='add'>+    fun_l5_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n700()</div><div class='add'>+    fun_l5_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n701()</div><div class='add'>+    fun_l5_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n702()</div><div class='add'>+    fun_l5_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n703()</div><div class='add'>+    fun_l5_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n704()</div><div class='add'>+    fun_l5_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n705()</div><div class='add'>+    fun_l5_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n706()</div><div class='add'>+    fun_l5_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n707()</div><div class='add'>+    fun_l5_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n708()</div><div class='add'>+    fun_l5_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n709()</div><div class='add'>+    fun_l5_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n710()</div><div class='add'>+    fun_l5_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n711()</div><div class='add'>+    fun_l5_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n712()</div><div class='add'>+    fun_l5_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n713()</div><div class='add'>+    fun_l5_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n714()</div><div class='add'>+    fun_l5_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n715()</div><div class='add'>+    fun_l5_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n716()</div><div class='add'>+    fun_l5_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n717()</div><div class='add'>+    fun_l5_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n718()</div><div class='add'>+    fun_l5_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n719()</div><div class='add'>+    fun_l5_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n720()</div><div class='add'>+    fun_l5_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n721()</div><div class='add'>+    fun_l5_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n722()</div><div class='add'>+    fun_l5_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n723()</div><div class='add'>+    fun_l5_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n724()</div><div class='add'>+    fun_l5_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n725()</div><div class='add'>+    fun_l5_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n726()</div><div class='add'>+    fun_l5_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n727()</div><div class='add'>+    fun_l5_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n728()</div><div class='add'>+    fun_l5_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n729()</div><div class='add'>+    fun_l5_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n730()</div><div class='add'>+    fun_l5_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n731()</div><div class='add'>+    fun_l5_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n732()</div><div class='add'>+    fun_l5_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n733()</div><div class='add'>+    fun_l5_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n734()</div><div class='add'>+    fun_l5_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n735()</div><div class='add'>+    fun_l5_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n736()</div><div class='add'>+    fun_l5_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n737()</div><div class='add'>+    fun_l5_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n738()</div><div class='add'>+    fun_l5_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n739()</div><div class='add'>+    fun_l5_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n740()</div><div class='add'>+    fun_l5_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n741()</div><div class='add'>+    fun_l5_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n742()</div><div class='add'>+    fun_l5_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n743()</div><div class='add'>+    fun_l5_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n744()</div><div class='add'>+    fun_l5_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n745()</div><div class='add'>+    fun_l5_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n746()</div><div class='add'>+    fun_l5_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n747()</div><div class='add'>+    fun_l5_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n748()</div><div class='add'>+    fun_l5_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n749()</div><div class='add'>+    fun_l5_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n750()</div><div class='add'>+    fun_l5_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n751()</div><div class='add'>+    fun_l5_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n752()</div><div class='add'>+    fun_l5_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n753()</div><div class='add'>+    fun_l5_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n754()</div><div class='add'>+    fun_l5_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n755()</div><div class='add'>+    fun_l5_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n756()</div><div class='add'>+    fun_l5_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n757()</div><div class='add'>+    fun_l5_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n758()</div><div class='add'>+    fun_l5_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n759()</div><div class='add'>+    fun_l5_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n760()</div><div class='add'>+    fun_l5_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n761()</div><div class='add'>+    fun_l5_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n762()</div><div class='add'>+    fun_l5_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n763()</div><div class='add'>+    fun_l5_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n764()</div><div class='add'>+    fun_l5_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n765()</div><div class='add'>+    fun_l5_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n766()</div><div class='add'>+    fun_l5_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n767()</div><div class='add'>+    fun_l5_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n768()</div><div class='add'>+    fun_l5_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n769()</div><div class='add'>+    fun_l5_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n770()</div><div class='add'>+    fun_l5_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n771()</div><div class='add'>+    fun_l5_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n772()</div><div class='add'>+    fun_l5_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n773()</div><div class='add'>+    fun_l5_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n774()</div><div class='add'>+    fun_l5_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n775()</div><div class='add'>+    fun_l5_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n776()</div><div class='add'>+    fun_l5_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n777()</div><div class='add'>+    fun_l5_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n778()</div><div class='add'>+    fun_l5_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n779()</div><div class='add'>+    fun_l5_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n780()</div><div class='add'>+    fun_l5_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n781()</div><div class='add'>+    fun_l5_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n782()</div><div class='add'>+    fun_l5_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n783()</div><div class='add'>+    fun_l5_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n784()</div><div class='add'>+    fun_l5_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n785()</div><div class='add'>+    fun_l5_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n786()</div><div class='add'>+    fun_l5_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n787()</div><div class='add'>+    fun_l5_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n788()</div><div class='add'>+    fun_l5_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n789()</div><div class='add'>+    fun_l5_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n790()</div><div class='add'>+    fun_l5_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n791()</div><div class='add'>+    fun_l5_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n792()</div><div class='add'>+    fun_l5_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n793()</div><div class='add'>+    fun_l5_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n794()</div><div class='add'>+    fun_l5_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n795()</div><div class='add'>+    fun_l5_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n796()</div><div class='add'>+    fun_l5_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n797()</div><div class='add'>+    fun_l5_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n798()</div><div class='add'>+    fun_l5_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n799()</div><div class='add'>+    fun_l5_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n800()</div><div class='add'>+    fun_l5_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n801()</div><div class='add'>+    fun_l5_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n802()</div><div class='add'>+    fun_l5_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n803()</div><div class='add'>+    fun_l5_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n804()</div><div class='add'>+    fun_l5_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n805()</div><div class='add'>+    fun_l5_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n806()</div><div class='add'>+    fun_l5_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n807()</div><div class='add'>+    fun_l5_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n808()</div><div class='add'>+    fun_l5_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n809()</div><div class='add'>+    fun_l5_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n810()</div><div class='add'>+    fun_l5_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n811()</div><div class='add'>+    fun_l5_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n812()</div><div class='add'>+    fun_l5_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n813()</div><div class='add'>+    fun_l5_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n814()</div><div class='add'>+    fun_l5_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n815()</div><div class='add'>+    fun_l5_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n816()</div><div class='add'>+    fun_l5_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n817()</div><div class='add'>+    fun_l5_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n818()</div><div class='add'>+    fun_l5_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n819()</div><div class='add'>+    fun_l5_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n820()</div><div class='add'>+    fun_l5_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n821()</div><div class='add'>+    fun_l5_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n822()</div><div class='add'>+    fun_l5_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n823()</div><div class='add'>+    fun_l5_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n824()</div><div class='add'>+    fun_l5_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n825()</div><div class='add'>+    fun_l5_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n826()</div><div class='add'>+    fun_l5_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n827()</div><div class='add'>+    fun_l5_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n828()</div><div class='add'>+    fun_l5_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n829()</div><div class='add'>+    fun_l5_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n830()</div><div class='add'>+    fun_l5_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n831()</div><div class='add'>+    fun_l5_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n832()</div><div class='add'>+    fun_l5_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n833()</div><div class='add'>+    fun_l5_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n834()</div><div class='add'>+    fun_l5_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n835()</div><div class='add'>+    fun_l5_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n836()</div><div class='add'>+    fun_l5_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n837()</div><div class='add'>+    fun_l5_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n838()</div><div class='add'>+    fun_l5_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n839()</div><div class='add'>+    fun_l5_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n840()</div><div class='add'>+    fun_l5_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n841()</div><div class='add'>+    fun_l5_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n842()</div><div class='add'>+    fun_l5_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n843()</div><div class='add'>+    fun_l5_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n844()</div><div class='add'>+    fun_l5_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n845()</div><div class='add'>+    fun_l5_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n846()</div><div class='add'>+    fun_l5_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n847()</div><div class='add'>+    fun_l5_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n848()</div><div class='add'>+    fun_l5_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n849()</div><div class='add'>+    fun_l5_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n850()</div><div class='add'>+    fun_l5_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n851()</div><div class='add'>+    fun_l5_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n852()</div><div class='add'>+    fun_l5_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n853()</div><div class='add'>+    fun_l5_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n854()</div><div class='add'>+    fun_l5_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n855()</div><div class='add'>+    fun_l5_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n856()</div><div class='add'>+    fun_l5_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n857()</div><div class='add'>+    fun_l5_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n858()</div><div class='add'>+    fun_l5_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n859()</div><div class='add'>+    fun_l5_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n860()</div><div class='add'>+    fun_l5_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n861()</div><div class='add'>+    fun_l5_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n862()</div><div class='add'>+    fun_l5_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n863()</div><div class='add'>+    fun_l5_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n864()</div><div class='add'>+    fun_l5_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n865()</div><div class='add'>+    fun_l5_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n866()</div><div class='add'>+    fun_l5_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n867()</div><div class='add'>+    fun_l5_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n868()</div><div class='add'>+    fun_l5_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n869()</div><div class='add'>+    fun_l5_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n870()</div><div class='add'>+    fun_l5_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n871()</div><div class='add'>+    fun_l5_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n872()</div><div class='add'>+    fun_l5_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n873()</div><div class='add'>+    fun_l5_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n874()</div><div class='add'>+    fun_l5_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n875()</div><div class='add'>+    fun_l5_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n876()</div><div class='add'>+    fun_l5_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n877()</div><div class='add'>+    fun_l5_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n878()</div><div class='add'>+    fun_l5_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n879()</div><div class='add'>+    fun_l5_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n880()</div><div class='add'>+    fun_l5_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n881()</div><div class='add'>+    fun_l5_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n882()</div><div class='add'>+    fun_l5_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n883()</div><div class='add'>+    fun_l5_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n884()</div><div class='add'>+    fun_l5_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n885()</div><div class='add'>+    fun_l5_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n886()</div><div class='add'>+    fun_l5_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n887()</div><div class='add'>+    fun_l5_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n888()</div><div class='add'>+    fun_l5_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n889()</div><div class='add'>+    fun_l5_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n890()</div><div class='add'>+    fun_l5_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n891()</div><div class='add'>+    fun_l5_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n892()</div><div class='add'>+    fun_l5_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n893()</div><div class='add'>+    fun_l5_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n894()</div><div class='add'>+    fun_l5_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n895()</div><div class='add'>+    fun_l5_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n896()</div><div class='add'>+    fun_l5_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n897()</div><div class='add'>+    fun_l5_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n898()</div><div class='add'>+    fun_l5_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n899()</div><div class='add'>+    fun_l5_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n900()</div><div class='add'>+    fun_l5_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n901()</div><div class='add'>+    fun_l5_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n902()</div><div class='add'>+    fun_l5_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n903()</div><div class='add'>+    fun_l5_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n904()</div><div class='add'>+    fun_l5_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n905()</div><div class='add'>+    fun_l5_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n906()</div><div class='add'>+    fun_l5_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n907()</div><div class='add'>+    fun_l5_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n908()</div><div class='add'>+    fun_l5_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n909()</div><div class='add'>+    fun_l5_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n910()</div><div class='add'>+    fun_l5_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n911()</div><div class='add'>+    fun_l5_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n912()</div><div class='add'>+    fun_l5_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n913()</div><div class='add'>+    fun_l5_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n914()</div><div class='add'>+    fun_l5_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n915()</div><div class='add'>+    fun_l5_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n916()</div><div class='add'>+    fun_l5_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n917()</div><div class='add'>+    fun_l5_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n918()</div><div class='add'>+    fun_l5_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n919()</div><div class='add'>+    fun_l5_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n920()</div><div class='add'>+    fun_l5_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n921()</div><div class='add'>+    fun_l5_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n922()</div><div class='add'>+    fun_l5_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n923()</div><div class='add'>+    fun_l5_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n924()</div><div class='add'>+    fun_l5_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n925()</div><div class='add'>+    fun_l5_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n926()</div><div class='add'>+    fun_l5_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n927()</div><div class='add'>+    fun_l5_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n928()</div><div class='add'>+    fun_l5_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n929()</div><div class='add'>+    fun_l5_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n930()</div><div class='add'>+    fun_l5_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n931()</div><div class='add'>+    fun_l5_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n932()</div><div class='add'>+    fun_l5_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n933()</div><div class='add'>+    fun_l5_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n934()</div><div class='add'>+    fun_l5_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n935()</div><div class='add'>+    fun_l5_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n936()</div><div class='add'>+    fun_l5_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n937()</div><div class='add'>+    fun_l5_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n938()</div><div class='add'>+    fun_l5_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n939()</div><div class='add'>+    fun_l5_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n940()</div><div class='add'>+    fun_l5_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n941()</div><div class='add'>+    fun_l5_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n942()</div><div class='add'>+    fun_l5_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n943()</div><div class='add'>+    fun_l5_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n944()</div><div class='add'>+    fun_l5_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n945()</div><div class='add'>+    fun_l5_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n946()</div><div class='add'>+    fun_l5_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n947()</div><div class='add'>+    fun_l5_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n948()</div><div class='add'>+    fun_l5_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n949()</div><div class='add'>+    fun_l5_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n950()</div><div class='add'>+    fun_l5_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n951()</div><div class='add'>+    fun_l5_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n952()</div><div class='add'>+    fun_l5_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n953()</div><div class='add'>+    fun_l5_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n954()</div><div class='add'>+    fun_l5_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n955()</div><div class='add'>+    fun_l5_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n956()</div><div class='add'>+    fun_l5_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n957()</div><div class='add'>+    fun_l5_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n958()</div><div class='add'>+    fun_l5_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n959()</div><div class='add'>+    fun_l5_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n960()</div><div class='add'>+    fun_l5_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n961()</div><div class='add'>+    fun_l5_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n962()</div><div class='add'>+    fun_l5_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n963()</div><div class='add'>+    fun_l5_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n964()</div><div class='add'>+    fun_l5_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n965()</div><div class='add'>+    fun_l5_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n966()</div><div class='add'>+    fun_l5_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n967()</div><div class='add'>+    fun_l5_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n968()</div><div class='add'>+    fun_l5_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n969()</div><div class='add'>+    fun_l5_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n970()</div><div class='add'>+    fun_l5_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n971()</div><div class='add'>+    fun_l5_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n972()</div><div class='add'>+    fun_l5_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n973()</div><div class='add'>+    fun_l5_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n974()</div><div class='add'>+    fun_l5_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n975()</div><div class='add'>+    fun_l5_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n976()</div><div class='add'>+    fun_l5_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n977()</div><div class='add'>+    fun_l5_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n978()</div><div class='add'>+    fun_l5_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n979()</div><div class='add'>+    fun_l5_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n980()</div><div class='add'>+    fun_l5_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n981()</div><div class='add'>+    fun_l5_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n982()</div><div class='add'>+    fun_l5_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n983()</div><div class='add'>+    fun_l5_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n984()</div><div class='add'>+    fun_l5_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n985()</div><div class='add'>+    fun_l5_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n986()</div><div class='add'>+    fun_l5_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n987()</div><div class='add'>+    fun_l5_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n988()</div><div class='add'>+    fun_l5_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n989()</div><div class='add'>+    fun_l5_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n990()</div><div class='add'>+    fun_l5_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n991()</div><div class='add'>+    fun_l5_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n992()</div><div class='add'>+    fun_l5_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n993()</div><div class='add'>+    fun_l5_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n994()</div><div class='add'>+    fun_l5_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n995()</div><div class='add'>+    fun_l5_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n996()</div><div class='add'>+    fun_l5_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n997()</div><div class='add'>+    fun_l5_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n998()</div><div class='add'>+    fun_l5_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l4_n999()</div><div class='add'>+    fun_l5_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n0()</div><div class='add'>+    fun_l6_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n1()</div><div class='add'>+    fun_l6_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n2()</div><div class='add'>+    fun_l6_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n3()</div><div class='add'>+    fun_l6_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n4()</div><div class='add'>+    fun_l6_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n5()</div><div class='add'>+    fun_l6_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n6()</div><div class='add'>+    fun_l6_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n7()</div><div class='add'>+    fun_l6_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n8()</div><div class='add'>+    fun_l6_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n9()</div><div class='add'>+    fun_l6_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n10()</div><div class='add'>+    fun_l6_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n11()</div><div class='add'>+    fun_l6_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n12()</div><div class='add'>+    fun_l6_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n13()</div><div class='add'>+    fun_l6_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n14()</div><div class='add'>+    fun_l6_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n15()</div><div class='add'>+    fun_l6_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n16()</div><div class='add'>+    fun_l6_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n17()</div><div class='add'>+    fun_l6_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n18()</div><div class='add'>+    fun_l6_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n19()</div><div class='add'>+    fun_l6_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n20()</div><div class='add'>+    fun_l6_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n21()</div><div class='add'>+    fun_l6_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n22()</div><div class='add'>+    fun_l6_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n23()</div><div class='add'>+    fun_l6_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n24()</div><div class='add'>+    fun_l6_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n25()</div><div class='add'>+    fun_l6_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n26()</div><div class='add'>+    fun_l6_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n27()</div><div class='add'>+    fun_l6_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n28()</div><div class='add'>+    fun_l6_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n29()</div><div class='add'>+    fun_l6_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n30()</div><div class='add'>+    fun_l6_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n31()</div><div class='add'>+    fun_l6_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n32()</div><div class='add'>+    fun_l6_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n33()</div><div class='add'>+    fun_l6_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n34()</div><div class='add'>+    fun_l6_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n35()</div><div class='add'>+    fun_l6_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n36()</div><div class='add'>+    fun_l6_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n37()</div><div class='add'>+    fun_l6_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n38()</div><div class='add'>+    fun_l6_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n39()</div><div class='add'>+    fun_l6_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n40()</div><div class='add'>+    fun_l6_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n41()</div><div class='add'>+    fun_l6_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n42()</div><div class='add'>+    fun_l6_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n43()</div><div class='add'>+    fun_l6_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n44()</div><div class='add'>+    fun_l6_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n45()</div><div class='add'>+    fun_l6_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n46()</div><div class='add'>+    fun_l6_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n47()</div><div class='add'>+    fun_l6_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n48()</div><div class='add'>+    fun_l6_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n49()</div><div class='add'>+    fun_l6_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n50()</div><div class='add'>+    fun_l6_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n51()</div><div class='add'>+    fun_l6_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n52()</div><div class='add'>+    fun_l6_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n53()</div><div class='add'>+    fun_l6_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n54()</div><div class='add'>+    fun_l6_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n55()</div><div class='add'>+    fun_l6_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n56()</div><div class='add'>+    fun_l6_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n57()</div><div class='add'>+    fun_l6_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n58()</div><div class='add'>+    fun_l6_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n59()</div><div class='add'>+    fun_l6_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n60()</div><div class='add'>+    fun_l6_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n61()</div><div class='add'>+    fun_l6_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n62()</div><div class='add'>+    fun_l6_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n63()</div><div class='add'>+    fun_l6_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n64()</div><div class='add'>+    fun_l6_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n65()</div><div class='add'>+    fun_l6_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n66()</div><div class='add'>+    fun_l6_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n67()</div><div class='add'>+    fun_l6_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n68()</div><div class='add'>+    fun_l6_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n69()</div><div class='add'>+    fun_l6_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n70()</div><div class='add'>+    fun_l6_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n71()</div><div class='add'>+    fun_l6_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n72()</div><div class='add'>+    fun_l6_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n73()</div><div class='add'>+    fun_l6_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n74()</div><div class='add'>+    fun_l6_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n75()</div><div class='add'>+    fun_l6_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n76()</div><div class='add'>+    fun_l6_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n77()</div><div class='add'>+    fun_l6_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n78()</div><div class='add'>+    fun_l6_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n79()</div><div class='add'>+    fun_l6_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n80()</div><div class='add'>+    fun_l6_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n81()</div><div class='add'>+    fun_l6_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n82()</div><div class='add'>+    fun_l6_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n83()</div><div class='add'>+    fun_l6_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n84()</div><div class='add'>+    fun_l6_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n85()</div><div class='add'>+    fun_l6_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n86()</div><div class='add'>+    fun_l6_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n87()</div><div class='add'>+    fun_l6_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n88()</div><div class='add'>+    fun_l6_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n89()</div><div class='add'>+    fun_l6_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n90()</div><div class='add'>+    fun_l6_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n91()</div><div class='add'>+    fun_l6_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n92()</div><div class='add'>+    fun_l6_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n93()</div><div class='add'>+    fun_l6_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n94()</div><div class='add'>+    fun_l6_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n95()</div><div class='add'>+    fun_l6_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n96()</div><div class='add'>+    fun_l6_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n97()</div><div class='add'>+    fun_l6_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n98()</div><div class='add'>+    fun_l6_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n99()</div><div class='add'>+    fun_l6_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n100()</div><div class='add'>+    fun_l6_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n101()</div><div class='add'>+    fun_l6_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n102()</div><div class='add'>+    fun_l6_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n103()</div><div class='add'>+    fun_l6_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n104()</div><div class='add'>+    fun_l6_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n105()</div><div class='add'>+    fun_l6_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n106()</div><div class='add'>+    fun_l6_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n107()</div><div class='add'>+    fun_l6_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n108()</div><div class='add'>+    fun_l6_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n109()</div><div class='add'>+    fun_l6_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n110()</div><div class='add'>+    fun_l6_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n111()</div><div class='add'>+    fun_l6_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n112()</div><div class='add'>+    fun_l6_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n113()</div><div class='add'>+    fun_l6_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n114()</div><div class='add'>+    fun_l6_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n115()</div><div class='add'>+    fun_l6_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n116()</div><div class='add'>+    fun_l6_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n117()</div><div class='add'>+    fun_l6_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n118()</div><div class='add'>+    fun_l6_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n119()</div><div class='add'>+    fun_l6_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n120()</div><div class='add'>+    fun_l6_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n121()</div><div class='add'>+    fun_l6_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n122()</div><div class='add'>+    fun_l6_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n123()</div><div class='add'>+    fun_l6_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n124()</div><div class='add'>+    fun_l6_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n125()</div><div class='add'>+    fun_l6_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n126()</div><div class='add'>+    fun_l6_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n127()</div><div class='add'>+    fun_l6_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n128()</div><div class='add'>+    fun_l6_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n129()</div><div class='add'>+    fun_l6_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n130()</div><div class='add'>+    fun_l6_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n131()</div><div class='add'>+    fun_l6_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n132()</div><div class='add'>+    fun_l6_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n133()</div><div class='add'>+    fun_l6_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n134()</div><div class='add'>+    fun_l6_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n135()</div><div class='add'>+    fun_l6_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n136()</div><div class='add'>+    fun_l6_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n137()</div><div class='add'>+    fun_l6_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n138()</div><div class='add'>+    fun_l6_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n139()</div><div class='add'>+    fun_l6_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n140()</div><div class='add'>+    fun_l6_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n141()</div><div class='add'>+    fun_l6_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n142()</div><div class='add'>+    fun_l6_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n143()</div><div class='add'>+    fun_l6_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n144()</div><div class='add'>+    fun_l6_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n145()</div><div class='add'>+    fun_l6_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n146()</div><div class='add'>+    fun_l6_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n147()</div><div class='add'>+    fun_l6_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n148()</div><div class='add'>+    fun_l6_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n149()</div><div class='add'>+    fun_l6_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n150()</div><div class='add'>+    fun_l6_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n151()</div><div class='add'>+    fun_l6_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n152()</div><div class='add'>+    fun_l6_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n153()</div><div class='add'>+    fun_l6_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n154()</div><div class='add'>+    fun_l6_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n155()</div><div class='add'>+    fun_l6_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n156()</div><div class='add'>+    fun_l6_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n157()</div><div class='add'>+    fun_l6_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n158()</div><div class='add'>+    fun_l6_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n159()</div><div class='add'>+    fun_l6_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n160()</div><div class='add'>+    fun_l6_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n161()</div><div class='add'>+    fun_l6_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n162()</div><div class='add'>+    fun_l6_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n163()</div><div class='add'>+    fun_l6_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n164()</div><div class='add'>+    fun_l6_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n165()</div><div class='add'>+    fun_l6_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n166()</div><div class='add'>+    fun_l6_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n167()</div><div class='add'>+    fun_l6_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n168()</div><div class='add'>+    fun_l6_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n169()</div><div class='add'>+    fun_l6_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n170()</div><div class='add'>+    fun_l6_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n171()</div><div class='add'>+    fun_l6_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n172()</div><div class='add'>+    fun_l6_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n173()</div><div class='add'>+    fun_l6_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n174()</div><div class='add'>+    fun_l6_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n175()</div><div class='add'>+    fun_l6_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n176()</div><div class='add'>+    fun_l6_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n177()</div><div class='add'>+    fun_l6_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n178()</div><div class='add'>+    fun_l6_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n179()</div><div class='add'>+    fun_l6_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n180()</div><div class='add'>+    fun_l6_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n181()</div><div class='add'>+    fun_l6_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n182()</div><div class='add'>+    fun_l6_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n183()</div><div class='add'>+    fun_l6_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n184()</div><div class='add'>+    fun_l6_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n185()</div><div class='add'>+    fun_l6_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n186()</div><div class='add'>+    fun_l6_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n187()</div><div class='add'>+    fun_l6_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n188()</div><div class='add'>+    fun_l6_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n189()</div><div class='add'>+    fun_l6_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n190()</div><div class='add'>+    fun_l6_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n191()</div><div class='add'>+    fun_l6_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n192()</div><div class='add'>+    fun_l6_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n193()</div><div class='add'>+    fun_l6_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n194()</div><div class='add'>+    fun_l6_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n195()</div><div class='add'>+    fun_l6_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n196()</div><div class='add'>+    fun_l6_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n197()</div><div class='add'>+    fun_l6_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n198()</div><div class='add'>+    fun_l6_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n199()</div><div class='add'>+    fun_l6_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n200()</div><div class='add'>+    fun_l6_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n201()</div><div class='add'>+    fun_l6_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n202()</div><div class='add'>+    fun_l6_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n203()</div><div class='add'>+    fun_l6_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n204()</div><div class='add'>+    fun_l6_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n205()</div><div class='add'>+    fun_l6_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n206()</div><div class='add'>+    fun_l6_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n207()</div><div class='add'>+    fun_l6_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n208()</div><div class='add'>+    fun_l6_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n209()</div><div class='add'>+    fun_l6_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n210()</div><div class='add'>+    fun_l6_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n211()</div><div class='add'>+    fun_l6_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n212()</div><div class='add'>+    fun_l6_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n213()</div><div class='add'>+    fun_l6_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n214()</div><div class='add'>+    fun_l6_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n215()</div><div class='add'>+    fun_l6_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n216()</div><div class='add'>+    fun_l6_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n217()</div><div class='add'>+    fun_l6_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n218()</div><div class='add'>+    fun_l6_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n219()</div><div class='add'>+    fun_l6_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n220()</div><div class='add'>+    fun_l6_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n221()</div><div class='add'>+    fun_l6_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n222()</div><div class='add'>+    fun_l6_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n223()</div><div class='add'>+    fun_l6_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n224()</div><div class='add'>+    fun_l6_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n225()</div><div class='add'>+    fun_l6_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n226()</div><div class='add'>+    fun_l6_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n227()</div><div class='add'>+    fun_l6_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n228()</div><div class='add'>+    fun_l6_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n229()</div><div class='add'>+    fun_l6_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n230()</div><div class='add'>+    fun_l6_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n231()</div><div class='add'>+    fun_l6_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n232()</div><div class='add'>+    fun_l6_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n233()</div><div class='add'>+    fun_l6_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n234()</div><div class='add'>+    fun_l6_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n235()</div><div class='add'>+    fun_l6_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n236()</div><div class='add'>+    fun_l6_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n237()</div><div class='add'>+    fun_l6_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n238()</div><div class='add'>+    fun_l6_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n239()</div><div class='add'>+    fun_l6_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n240()</div><div class='add'>+    fun_l6_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n241()</div><div class='add'>+    fun_l6_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n242()</div><div class='add'>+    fun_l6_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n243()</div><div class='add'>+    fun_l6_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n244()</div><div class='add'>+    fun_l6_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n245()</div><div class='add'>+    fun_l6_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n246()</div><div class='add'>+    fun_l6_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n247()</div><div class='add'>+    fun_l6_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n248()</div><div class='add'>+    fun_l6_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n249()</div><div class='add'>+    fun_l6_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n250()</div><div class='add'>+    fun_l6_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n251()</div><div class='add'>+    fun_l6_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n252()</div><div class='add'>+    fun_l6_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n253()</div><div class='add'>+    fun_l6_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n254()</div><div class='add'>+    fun_l6_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n255()</div><div class='add'>+    fun_l6_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n256()</div><div class='add'>+    fun_l6_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n257()</div><div class='add'>+    fun_l6_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n258()</div><div class='add'>+    fun_l6_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n259()</div><div class='add'>+    fun_l6_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n260()</div><div class='add'>+    fun_l6_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n261()</div><div class='add'>+    fun_l6_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n262()</div><div class='add'>+    fun_l6_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n263()</div><div class='add'>+    fun_l6_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n264()</div><div class='add'>+    fun_l6_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n265()</div><div class='add'>+    fun_l6_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n266()</div><div class='add'>+    fun_l6_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n267()</div><div class='add'>+    fun_l6_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n268()</div><div class='add'>+    fun_l6_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n269()</div><div class='add'>+    fun_l6_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n270()</div><div class='add'>+    fun_l6_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n271()</div><div class='add'>+    fun_l6_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n272()</div><div class='add'>+    fun_l6_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n273()</div><div class='add'>+    fun_l6_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n274()</div><div class='add'>+    fun_l6_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n275()</div><div class='add'>+    fun_l6_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n276()</div><div class='add'>+    fun_l6_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n277()</div><div class='add'>+    fun_l6_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n278()</div><div class='add'>+    fun_l6_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n279()</div><div class='add'>+    fun_l6_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n280()</div><div class='add'>+    fun_l6_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n281()</div><div class='add'>+    fun_l6_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n282()</div><div class='add'>+    fun_l6_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n283()</div><div class='add'>+    fun_l6_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n284()</div><div class='add'>+    fun_l6_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n285()</div><div class='add'>+    fun_l6_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n286()</div><div class='add'>+    fun_l6_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n287()</div><div class='add'>+    fun_l6_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n288()</div><div class='add'>+    fun_l6_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n289()</div><div class='add'>+    fun_l6_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n290()</div><div class='add'>+    fun_l6_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n291()</div><div class='add'>+    fun_l6_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n292()</div><div class='add'>+    fun_l6_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n293()</div><div class='add'>+    fun_l6_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n294()</div><div class='add'>+    fun_l6_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n295()</div><div class='add'>+    fun_l6_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n296()</div><div class='add'>+    fun_l6_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n297()</div><div class='add'>+    fun_l6_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n298()</div><div class='add'>+    fun_l6_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n299()</div><div class='add'>+    fun_l6_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n300()</div><div class='add'>+    fun_l6_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n301()</div><div class='add'>+    fun_l6_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n302()</div><div class='add'>+    fun_l6_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n303()</div><div class='add'>+    fun_l6_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n304()</div><div class='add'>+    fun_l6_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n305()</div><div class='add'>+    fun_l6_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n306()</div><div class='add'>+    fun_l6_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n307()</div><div class='add'>+    fun_l6_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n308()</div><div class='add'>+    fun_l6_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n309()</div><div class='add'>+    fun_l6_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n310()</div><div class='add'>+    fun_l6_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n311()</div><div class='add'>+    fun_l6_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n312()</div><div class='add'>+    fun_l6_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n313()</div><div class='add'>+    fun_l6_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n314()</div><div class='add'>+    fun_l6_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n315()</div><div class='add'>+    fun_l6_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n316()</div><div class='add'>+    fun_l6_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n317()</div><div class='add'>+    fun_l6_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n318()</div><div class='add'>+    fun_l6_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n319()</div><div class='add'>+    fun_l6_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n320()</div><div class='add'>+    fun_l6_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n321()</div><div class='add'>+    fun_l6_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n322()</div><div class='add'>+    fun_l6_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n323()</div><div class='add'>+    fun_l6_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n324()</div><div class='add'>+    fun_l6_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n325()</div><div class='add'>+    fun_l6_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n326()</div><div class='add'>+    fun_l6_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n327()</div><div class='add'>+    fun_l6_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n328()</div><div class='add'>+    fun_l6_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n329()</div><div class='add'>+    fun_l6_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n330()</div><div class='add'>+    fun_l6_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n331()</div><div class='add'>+    fun_l6_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n332()</div><div class='add'>+    fun_l6_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n333()</div><div class='add'>+    fun_l6_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n334()</div><div class='add'>+    fun_l6_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n335()</div><div class='add'>+    fun_l6_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n336()</div><div class='add'>+    fun_l6_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n337()</div><div class='add'>+    fun_l6_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n338()</div><div class='add'>+    fun_l6_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n339()</div><div class='add'>+    fun_l6_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n340()</div><div class='add'>+    fun_l6_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n341()</div><div class='add'>+    fun_l6_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n342()</div><div class='add'>+    fun_l6_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n343()</div><div class='add'>+    fun_l6_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n344()</div><div class='add'>+    fun_l6_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n345()</div><div class='add'>+    fun_l6_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n346()</div><div class='add'>+    fun_l6_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n347()</div><div class='add'>+    fun_l6_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n348()</div><div class='add'>+    fun_l6_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n349()</div><div class='add'>+    fun_l6_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n350()</div><div class='add'>+    fun_l6_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n351()</div><div class='add'>+    fun_l6_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n352()</div><div class='add'>+    fun_l6_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n353()</div><div class='add'>+    fun_l6_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n354()</div><div class='add'>+    fun_l6_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n355()</div><div class='add'>+    fun_l6_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n356()</div><div class='add'>+    fun_l6_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n357()</div><div class='add'>+    fun_l6_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n358()</div><div class='add'>+    fun_l6_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n359()</div><div class='add'>+    fun_l6_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n360()</div><div class='add'>+    fun_l6_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n361()</div><div class='add'>+    fun_l6_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n362()</div><div class='add'>+    fun_l6_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n363()</div><div class='add'>+    fun_l6_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n364()</div><div class='add'>+    fun_l6_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n365()</div><div class='add'>+    fun_l6_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n366()</div><div class='add'>+    fun_l6_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n367()</div><div class='add'>+    fun_l6_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n368()</div><div class='add'>+    fun_l6_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n369()</div><div class='add'>+    fun_l6_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n370()</div><div class='add'>+    fun_l6_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n371()</div><div class='add'>+    fun_l6_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n372()</div><div class='add'>+    fun_l6_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n373()</div><div class='add'>+    fun_l6_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n374()</div><div class='add'>+    fun_l6_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n375()</div><div class='add'>+    fun_l6_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n376()</div><div class='add'>+    fun_l6_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n377()</div><div class='add'>+    fun_l6_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n378()</div><div class='add'>+    fun_l6_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n379()</div><div class='add'>+    fun_l6_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n380()</div><div class='add'>+    fun_l6_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n381()</div><div class='add'>+    fun_l6_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n382()</div><div class='add'>+    fun_l6_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n383()</div><div class='add'>+    fun_l6_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n384()</div><div class='add'>+    fun_l6_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n385()</div><div class='add'>+    fun_l6_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n386()</div><div class='add'>+    fun_l6_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n387()</div><div class='add'>+    fun_l6_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n388()</div><div class='add'>+    fun_l6_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n389()</div><div class='add'>+    fun_l6_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n390()</div><div class='add'>+    fun_l6_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n391()</div><div class='add'>+    fun_l6_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n392()</div><div class='add'>+    fun_l6_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n393()</div><div class='add'>+    fun_l6_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n394()</div><div class='add'>+    fun_l6_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n395()</div><div class='add'>+    fun_l6_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n396()</div><div class='add'>+    fun_l6_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n397()</div><div class='add'>+    fun_l6_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n398()</div><div class='add'>+    fun_l6_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n399()</div><div class='add'>+    fun_l6_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n400()</div><div class='add'>+    fun_l6_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n401()</div><div class='add'>+    fun_l6_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n402()</div><div class='add'>+    fun_l6_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n403()</div><div class='add'>+    fun_l6_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n404()</div><div class='add'>+    fun_l6_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n405()</div><div class='add'>+    fun_l6_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n406()</div><div class='add'>+    fun_l6_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n407()</div><div class='add'>+    fun_l6_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n408()</div><div class='add'>+    fun_l6_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n409()</div><div class='add'>+    fun_l6_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n410()</div><div class='add'>+    fun_l6_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n411()</div><div class='add'>+    fun_l6_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n412()</div><div class='add'>+    fun_l6_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n413()</div><div class='add'>+    fun_l6_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n414()</div><div class='add'>+    fun_l6_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n415()</div><div class='add'>+    fun_l6_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n416()</div><div class='add'>+    fun_l6_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n417()</div><div class='add'>+    fun_l6_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n418()</div><div class='add'>+    fun_l6_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n419()</div><div class='add'>+    fun_l6_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n420()</div><div class='add'>+    fun_l6_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n421()</div><div class='add'>+    fun_l6_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n422()</div><div class='add'>+    fun_l6_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n423()</div><div class='add'>+    fun_l6_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n424()</div><div class='add'>+    fun_l6_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n425()</div><div class='add'>+    fun_l6_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n426()</div><div class='add'>+    fun_l6_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n427()</div><div class='add'>+    fun_l6_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n428()</div><div class='add'>+    fun_l6_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n429()</div><div class='add'>+    fun_l6_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n430()</div><div class='add'>+    fun_l6_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n431()</div><div class='add'>+    fun_l6_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n432()</div><div class='add'>+    fun_l6_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n433()</div><div class='add'>+    fun_l6_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n434()</div><div class='add'>+    fun_l6_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n435()</div><div class='add'>+    fun_l6_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n436()</div><div class='add'>+    fun_l6_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n437()</div><div class='add'>+    fun_l6_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n438()</div><div class='add'>+    fun_l6_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n439()</div><div class='add'>+    fun_l6_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n440()</div><div class='add'>+    fun_l6_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n441()</div><div class='add'>+    fun_l6_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n442()</div><div class='add'>+    fun_l6_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n443()</div><div class='add'>+    fun_l6_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n444()</div><div class='add'>+    fun_l6_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n445()</div><div class='add'>+    fun_l6_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n446()</div><div class='add'>+    fun_l6_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n447()</div><div class='add'>+    fun_l6_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n448()</div><div class='add'>+    fun_l6_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n449()</div><div class='add'>+    fun_l6_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n450()</div><div class='add'>+    fun_l6_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n451()</div><div class='add'>+    fun_l6_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n452()</div><div class='add'>+    fun_l6_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n453()</div><div class='add'>+    fun_l6_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n454()</div><div class='add'>+    fun_l6_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n455()</div><div class='add'>+    fun_l6_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n456()</div><div class='add'>+    fun_l6_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n457()</div><div class='add'>+    fun_l6_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n458()</div><div class='add'>+    fun_l6_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n459()</div><div class='add'>+    fun_l6_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n460()</div><div class='add'>+    fun_l6_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n461()</div><div class='add'>+    fun_l6_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n462()</div><div class='add'>+    fun_l6_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n463()</div><div class='add'>+    fun_l6_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n464()</div><div class='add'>+    fun_l6_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n465()</div><div class='add'>+    fun_l6_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n466()</div><div class='add'>+    fun_l6_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n467()</div><div class='add'>+    fun_l6_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n468()</div><div class='add'>+    fun_l6_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n469()</div><div class='add'>+    fun_l6_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n470()</div><div class='add'>+    fun_l6_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n471()</div><div class='add'>+    fun_l6_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n472()</div><div class='add'>+    fun_l6_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n473()</div><div class='add'>+    fun_l6_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n474()</div><div class='add'>+    fun_l6_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n475()</div><div class='add'>+    fun_l6_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n476()</div><div class='add'>+    fun_l6_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n477()</div><div class='add'>+    fun_l6_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n478()</div><div class='add'>+    fun_l6_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n479()</div><div class='add'>+    fun_l6_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n480()</div><div class='add'>+    fun_l6_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n481()</div><div class='add'>+    fun_l6_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n482()</div><div class='add'>+    fun_l6_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n483()</div><div class='add'>+    fun_l6_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n484()</div><div class='add'>+    fun_l6_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n485()</div><div class='add'>+    fun_l6_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n486()</div><div class='add'>+    fun_l6_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n487()</div><div class='add'>+    fun_l6_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n488()</div><div class='add'>+    fun_l6_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n489()</div><div class='add'>+    fun_l6_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n490()</div><div class='add'>+    fun_l6_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n491()</div><div class='add'>+    fun_l6_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n492()</div><div class='add'>+    fun_l6_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n493()</div><div class='add'>+    fun_l6_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n494()</div><div class='add'>+    fun_l6_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n495()</div><div class='add'>+    fun_l6_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n496()</div><div class='add'>+    fun_l6_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n497()</div><div class='add'>+    fun_l6_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n498()</div><div class='add'>+    fun_l6_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n499()</div><div class='add'>+    fun_l6_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n500()</div><div class='add'>+    fun_l6_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n501()</div><div class='add'>+    fun_l6_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n502()</div><div class='add'>+    fun_l6_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n503()</div><div class='add'>+    fun_l6_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n504()</div><div class='add'>+    fun_l6_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n505()</div><div class='add'>+    fun_l6_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n506()</div><div class='add'>+    fun_l6_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n507()</div><div class='add'>+    fun_l6_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n508()</div><div class='add'>+    fun_l6_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n509()</div><div class='add'>+    fun_l6_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n510()</div><div class='add'>+    fun_l6_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n511()</div><div class='add'>+    fun_l6_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n512()</div><div class='add'>+    fun_l6_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n513()</div><div class='add'>+    fun_l6_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n514()</div><div class='add'>+    fun_l6_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n515()</div><div class='add'>+    fun_l6_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n516()</div><div class='add'>+    fun_l6_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n517()</div><div class='add'>+    fun_l6_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n518()</div><div class='add'>+    fun_l6_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n519()</div><div class='add'>+    fun_l6_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n520()</div><div class='add'>+    fun_l6_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n521()</div><div class='add'>+    fun_l6_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n522()</div><div class='add'>+    fun_l6_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n523()</div><div class='add'>+    fun_l6_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n524()</div><div class='add'>+    fun_l6_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n525()</div><div class='add'>+    fun_l6_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n526()</div><div class='add'>+    fun_l6_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n527()</div><div class='add'>+    fun_l6_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n528()</div><div class='add'>+    fun_l6_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n529()</div><div class='add'>+    fun_l6_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n530()</div><div class='add'>+    fun_l6_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n531()</div><div class='add'>+    fun_l6_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n532()</div><div class='add'>+    fun_l6_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n533()</div><div class='add'>+    fun_l6_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n534()</div><div class='add'>+    fun_l6_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n535()</div><div class='add'>+    fun_l6_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n536()</div><div class='add'>+    fun_l6_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n537()</div><div class='add'>+    fun_l6_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n538()</div><div class='add'>+    fun_l6_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n539()</div><div class='add'>+    fun_l6_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n540()</div><div class='add'>+    fun_l6_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n541()</div><div class='add'>+    fun_l6_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n542()</div><div class='add'>+    fun_l6_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n543()</div><div class='add'>+    fun_l6_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n544()</div><div class='add'>+    fun_l6_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n545()</div><div class='add'>+    fun_l6_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n546()</div><div class='add'>+    fun_l6_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n547()</div><div class='add'>+    fun_l6_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n548()</div><div class='add'>+    fun_l6_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n549()</div><div class='add'>+    fun_l6_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n550()</div><div class='add'>+    fun_l6_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n551()</div><div class='add'>+    fun_l6_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n552()</div><div class='add'>+    fun_l6_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n553()</div><div class='add'>+    fun_l6_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n554()</div><div class='add'>+    fun_l6_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n555()</div><div class='add'>+    fun_l6_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n556()</div><div class='add'>+    fun_l6_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n557()</div><div class='add'>+    fun_l6_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n558()</div><div class='add'>+    fun_l6_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n559()</div><div class='add'>+    fun_l6_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n560()</div><div class='add'>+    fun_l6_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n561()</div><div class='add'>+    fun_l6_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n562()</div><div class='add'>+    fun_l6_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n563()</div><div class='add'>+    fun_l6_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n564()</div><div class='add'>+    fun_l6_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n565()</div><div class='add'>+    fun_l6_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n566()</div><div class='add'>+    fun_l6_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n567()</div><div class='add'>+    fun_l6_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n568()</div><div class='add'>+    fun_l6_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n569()</div><div class='add'>+    fun_l6_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n570()</div><div class='add'>+    fun_l6_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n571()</div><div class='add'>+    fun_l6_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n572()</div><div class='add'>+    fun_l6_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n573()</div><div class='add'>+    fun_l6_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n574()</div><div class='add'>+    fun_l6_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n575()</div><div class='add'>+    fun_l6_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n576()</div><div class='add'>+    fun_l6_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n577()</div><div class='add'>+    fun_l6_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n578()</div><div class='add'>+    fun_l6_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n579()</div><div class='add'>+    fun_l6_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n580()</div><div class='add'>+    fun_l6_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n581()</div><div class='add'>+    fun_l6_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n582()</div><div class='add'>+    fun_l6_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n583()</div><div class='add'>+    fun_l6_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n584()</div><div class='add'>+    fun_l6_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n585()</div><div class='add'>+    fun_l6_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n586()</div><div class='add'>+    fun_l6_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n587()</div><div class='add'>+    fun_l6_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n588()</div><div class='add'>+    fun_l6_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n589()</div><div class='add'>+    fun_l6_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n590()</div><div class='add'>+    fun_l6_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n591()</div><div class='add'>+    fun_l6_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n592()</div><div class='add'>+    fun_l6_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n593()</div><div class='add'>+    fun_l6_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n594()</div><div class='add'>+    fun_l6_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n595()</div><div class='add'>+    fun_l6_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n596()</div><div class='add'>+    fun_l6_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n597()</div><div class='add'>+    fun_l6_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n598()</div><div class='add'>+    fun_l6_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n599()</div><div class='add'>+    fun_l6_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n600()</div><div class='add'>+    fun_l6_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n601()</div><div class='add'>+    fun_l6_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n602()</div><div class='add'>+    fun_l6_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n603()</div><div class='add'>+    fun_l6_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n604()</div><div class='add'>+    fun_l6_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n605()</div><div class='add'>+    fun_l6_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n606()</div><div class='add'>+    fun_l6_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n607()</div><div class='add'>+    fun_l6_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n608()</div><div class='add'>+    fun_l6_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n609()</div><div class='add'>+    fun_l6_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n610()</div><div class='add'>+    fun_l6_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n611()</div><div class='add'>+    fun_l6_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n612()</div><div class='add'>+    fun_l6_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n613()</div><div class='add'>+    fun_l6_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n614()</div><div class='add'>+    fun_l6_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n615()</div><div class='add'>+    fun_l6_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n616()</div><div class='add'>+    fun_l6_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n617()</div><div class='add'>+    fun_l6_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n618()</div><div class='add'>+    fun_l6_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n619()</div><div class='add'>+    fun_l6_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n620()</div><div class='add'>+    fun_l6_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n621()</div><div class='add'>+    fun_l6_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n622()</div><div class='add'>+    fun_l6_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n623()</div><div class='add'>+    fun_l6_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n624()</div><div class='add'>+    fun_l6_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n625()</div><div class='add'>+    fun_l6_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n626()</div><div class='add'>+    fun_l6_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n627()</div><div class='add'>+    fun_l6_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n628()</div><div class='add'>+    fun_l6_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n629()</div><div class='add'>+    fun_l6_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n630()</div><div class='add'>+    fun_l6_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n631()</div><div class='add'>+    fun_l6_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n632()</div><div class='add'>+    fun_l6_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n633()</div><div class='add'>+    fun_l6_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n634()</div><div class='add'>+    fun_l6_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n635()</div><div class='add'>+    fun_l6_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n636()</div><div class='add'>+    fun_l6_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n637()</div><div class='add'>+    fun_l6_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n638()</div><div class='add'>+    fun_l6_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n639()</div><div class='add'>+    fun_l6_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n640()</div><div class='add'>+    fun_l6_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n641()</div><div class='add'>+    fun_l6_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n642()</div><div class='add'>+    fun_l6_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n643()</div><div class='add'>+    fun_l6_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n644()</div><div class='add'>+    fun_l6_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n645()</div><div class='add'>+    fun_l6_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n646()</div><div class='add'>+    fun_l6_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n647()</div><div class='add'>+    fun_l6_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n648()</div><div class='add'>+    fun_l6_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n649()</div><div class='add'>+    fun_l6_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n650()</div><div class='add'>+    fun_l6_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n651()</div><div class='add'>+    fun_l6_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n652()</div><div class='add'>+    fun_l6_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n653()</div><div class='add'>+    fun_l6_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n654()</div><div class='add'>+    fun_l6_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n655()</div><div class='add'>+    fun_l6_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n656()</div><div class='add'>+    fun_l6_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n657()</div><div class='add'>+    fun_l6_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n658()</div><div class='add'>+    fun_l6_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n659()</div><div class='add'>+    fun_l6_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n660()</div><div class='add'>+    fun_l6_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n661()</div><div class='add'>+    fun_l6_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n662()</div><div class='add'>+    fun_l6_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n663()</div><div class='add'>+    fun_l6_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n664()</div><div class='add'>+    fun_l6_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n665()</div><div class='add'>+    fun_l6_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n666()</div><div class='add'>+    fun_l6_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n667()</div><div class='add'>+    fun_l6_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n668()</div><div class='add'>+    fun_l6_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n669()</div><div class='add'>+    fun_l6_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n670()</div><div class='add'>+    fun_l6_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n671()</div><div class='add'>+    fun_l6_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n672()</div><div class='add'>+    fun_l6_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n673()</div><div class='add'>+    fun_l6_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n674()</div><div class='add'>+    fun_l6_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n675()</div><div class='add'>+    fun_l6_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n676()</div><div class='add'>+    fun_l6_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n677()</div><div class='add'>+    fun_l6_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n678()</div><div class='add'>+    fun_l6_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n679()</div><div class='add'>+    fun_l6_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n680()</div><div class='add'>+    fun_l6_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n681()</div><div class='add'>+    fun_l6_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n682()</div><div class='add'>+    fun_l6_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n683()</div><div class='add'>+    fun_l6_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n684()</div><div class='add'>+    fun_l6_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n685()</div><div class='add'>+    fun_l6_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n686()</div><div class='add'>+    fun_l6_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n687()</div><div class='add'>+    fun_l6_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n688()</div><div class='add'>+    fun_l6_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n689()</div><div class='add'>+    fun_l6_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n690()</div><div class='add'>+    fun_l6_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n691()</div><div class='add'>+    fun_l6_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n692()</div><div class='add'>+    fun_l6_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n693()</div><div class='add'>+    fun_l6_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n694()</div><div class='add'>+    fun_l6_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n695()</div><div class='add'>+    fun_l6_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n696()</div><div class='add'>+    fun_l6_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n697()</div><div class='add'>+    fun_l6_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n698()</div><div class='add'>+    fun_l6_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n699()</div><div class='add'>+    fun_l6_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n700()</div><div class='add'>+    fun_l6_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n701()</div><div class='add'>+    fun_l6_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n702()</div><div class='add'>+    fun_l6_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n703()</div><div class='add'>+    fun_l6_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n704()</div><div class='add'>+    fun_l6_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n705()</div><div class='add'>+    fun_l6_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n706()</div><div class='add'>+    fun_l6_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n707()</div><div class='add'>+    fun_l6_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n708()</div><div class='add'>+    fun_l6_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n709()</div><div class='add'>+    fun_l6_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n710()</div><div class='add'>+    fun_l6_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n711()</div><div class='add'>+    fun_l6_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n712()</div><div class='add'>+    fun_l6_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n713()</div><div class='add'>+    fun_l6_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n714()</div><div class='add'>+    fun_l6_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n715()</div><div class='add'>+    fun_l6_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n716()</div><div class='add'>+    fun_l6_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n717()</div><div class='add'>+    fun_l6_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n718()</div><div class='add'>+    fun_l6_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n719()</div><div class='add'>+    fun_l6_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n720()</div><div class='add'>+    fun_l6_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n721()</div><div class='add'>+    fun_l6_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n722()</div><div class='add'>+    fun_l6_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n723()</div><div class='add'>+    fun_l6_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n724()</div><div class='add'>+    fun_l6_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n725()</div><div class='add'>+    fun_l6_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n726()</div><div class='add'>+    fun_l6_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n727()</div><div class='add'>+    fun_l6_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n728()</div><div class='add'>+    fun_l6_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n729()</div><div class='add'>+    fun_l6_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n730()</div><div class='add'>+    fun_l6_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n731()</div><div class='add'>+    fun_l6_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n732()</div><div class='add'>+    fun_l6_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n733()</div><div class='add'>+    fun_l6_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n734()</div><div class='add'>+    fun_l6_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n735()</div><div class='add'>+    fun_l6_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n736()</div><div class='add'>+    fun_l6_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n737()</div><div class='add'>+    fun_l6_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n738()</div><div class='add'>+    fun_l6_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n739()</div><div class='add'>+    fun_l6_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n740()</div><div class='add'>+    fun_l6_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n741()</div><div class='add'>+    fun_l6_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n742()</div><div class='add'>+    fun_l6_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n743()</div><div class='add'>+    fun_l6_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n744()</div><div class='add'>+    fun_l6_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n745()</div><div class='add'>+    fun_l6_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n746()</div><div class='add'>+    fun_l6_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n747()</div><div class='add'>+    fun_l6_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n748()</div><div class='add'>+    fun_l6_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n749()</div><div class='add'>+    fun_l6_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n750()</div><div class='add'>+    fun_l6_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n751()</div><div class='add'>+    fun_l6_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n752()</div><div class='add'>+    fun_l6_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n753()</div><div class='add'>+    fun_l6_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n754()</div><div class='add'>+    fun_l6_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n755()</div><div class='add'>+    fun_l6_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n756()</div><div class='add'>+    fun_l6_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n757()</div><div class='add'>+    fun_l6_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n758()</div><div class='add'>+    fun_l6_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n759()</div><div class='add'>+    fun_l6_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n760()</div><div class='add'>+    fun_l6_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n761()</div><div class='add'>+    fun_l6_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n762()</div><div class='add'>+    fun_l6_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n763()</div><div class='add'>+    fun_l6_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n764()</div><div class='add'>+    fun_l6_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n765()</div><div class='add'>+    fun_l6_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n766()</div><div class='add'>+    fun_l6_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n767()</div><div class='add'>+    fun_l6_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n768()</div><div class='add'>+    fun_l6_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n769()</div><div class='add'>+    fun_l6_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n770()</div><div class='add'>+    fun_l6_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n771()</div><div class='add'>+    fun_l6_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n772()</div><div class='add'>+    fun_l6_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n773()</div><div class='add'>+    fun_l6_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n774()</div><div class='add'>+    fun_l6_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n775()</div><div class='add'>+    fun_l6_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n776()</div><div class='add'>+    fun_l6_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n777()</div><div class='add'>+    fun_l6_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n778()</div><div class='add'>+    fun_l6_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n779()</div><div class='add'>+    fun_l6_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n780()</div><div class='add'>+    fun_l6_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n781()</div><div class='add'>+    fun_l6_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n782()</div><div class='add'>+    fun_l6_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n783()</div><div class='add'>+    fun_l6_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n784()</div><div class='add'>+    fun_l6_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n785()</div><div class='add'>+    fun_l6_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n786()</div><div class='add'>+    fun_l6_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n787()</div><div class='add'>+    fun_l6_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n788()</div><div class='add'>+    fun_l6_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n789()</div><div class='add'>+    fun_l6_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n790()</div><div class='add'>+    fun_l6_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n791()</div><div class='add'>+    fun_l6_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n792()</div><div class='add'>+    fun_l6_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n793()</div><div class='add'>+    fun_l6_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n794()</div><div class='add'>+    fun_l6_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n795()</div><div class='add'>+    fun_l6_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n796()</div><div class='add'>+    fun_l6_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n797()</div><div class='add'>+    fun_l6_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n798()</div><div class='add'>+    fun_l6_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n799()</div><div class='add'>+    fun_l6_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n800()</div><div class='add'>+    fun_l6_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n801()</div><div class='add'>+    fun_l6_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n802()</div><div class='add'>+    fun_l6_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n803()</div><div class='add'>+    fun_l6_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n804()</div><div class='add'>+    fun_l6_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n805()</div><div class='add'>+    fun_l6_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n806()</div><div class='add'>+    fun_l6_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n807()</div><div class='add'>+    fun_l6_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n808()</div><div class='add'>+    fun_l6_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n809()</div><div class='add'>+    fun_l6_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n810()</div><div class='add'>+    fun_l6_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n811()</div><div class='add'>+    fun_l6_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n812()</div><div class='add'>+    fun_l6_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n813()</div><div class='add'>+    fun_l6_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n814()</div><div class='add'>+    fun_l6_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n815()</div><div class='add'>+    fun_l6_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n816()</div><div class='add'>+    fun_l6_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n817()</div><div class='add'>+    fun_l6_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n818()</div><div class='add'>+    fun_l6_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n819()</div><div class='add'>+    fun_l6_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n820()</div><div class='add'>+    fun_l6_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n821()</div><div class='add'>+    fun_l6_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n822()</div><div class='add'>+    fun_l6_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n823()</div><div class='add'>+    fun_l6_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n824()</div><div class='add'>+    fun_l6_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n825()</div><div class='add'>+    fun_l6_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n826()</div><div class='add'>+    fun_l6_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n827()</div><div class='add'>+    fun_l6_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n828()</div><div class='add'>+    fun_l6_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n829()</div><div class='add'>+    fun_l6_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n830()</div><div class='add'>+    fun_l6_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n831()</div><div class='add'>+    fun_l6_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n832()</div><div class='add'>+    fun_l6_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n833()</div><div class='add'>+    fun_l6_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n834()</div><div class='add'>+    fun_l6_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n835()</div><div class='add'>+    fun_l6_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n836()</div><div class='add'>+    fun_l6_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n837()</div><div class='add'>+    fun_l6_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n838()</div><div class='add'>+    fun_l6_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n839()</div><div class='add'>+    fun_l6_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n840()</div><div class='add'>+    fun_l6_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n841()</div><div class='add'>+    fun_l6_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n842()</div><div class='add'>+    fun_l6_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n843()</div><div class='add'>+    fun_l6_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n844()</div><div class='add'>+    fun_l6_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n845()</div><div class='add'>+    fun_l6_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n846()</div><div class='add'>+    fun_l6_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n847()</div><div class='add'>+    fun_l6_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n848()</div><div class='add'>+    fun_l6_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n849()</div><div class='add'>+    fun_l6_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n850()</div><div class='add'>+    fun_l6_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n851()</div><div class='add'>+    fun_l6_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n852()</div><div class='add'>+    fun_l6_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n853()</div><div class='add'>+    fun_l6_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n854()</div><div class='add'>+    fun_l6_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n855()</div><div class='add'>+    fun_l6_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n856()</div><div class='add'>+    fun_l6_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n857()</div><div class='add'>+    fun_l6_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n858()</div><div class='add'>+    fun_l6_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n859()</div><div class='add'>+    fun_l6_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n860()</div><div class='add'>+    fun_l6_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n861()</div><div class='add'>+    fun_l6_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n862()</div><div class='add'>+    fun_l6_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n863()</div><div class='add'>+    fun_l6_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n864()</div><div class='add'>+    fun_l6_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n865()</div><div class='add'>+    fun_l6_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n866()</div><div class='add'>+    fun_l6_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n867()</div><div class='add'>+    fun_l6_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n868()</div><div class='add'>+    fun_l6_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n869()</div><div class='add'>+    fun_l6_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n870()</div><div class='add'>+    fun_l6_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n871()</div><div class='add'>+    fun_l6_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n872()</div><div class='add'>+    fun_l6_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n873()</div><div class='add'>+    fun_l6_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n874()</div><div class='add'>+    fun_l6_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n875()</div><div class='add'>+    fun_l6_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n876()</div><div class='add'>+    fun_l6_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n877()</div><div class='add'>+    fun_l6_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n878()</div><div class='add'>+    fun_l6_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n879()</div><div class='add'>+    fun_l6_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n880()</div><div class='add'>+    fun_l6_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n881()</div><div class='add'>+    fun_l6_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n882()</div><div class='add'>+    fun_l6_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n883()</div><div class='add'>+    fun_l6_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n884()</div><div class='add'>+    fun_l6_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n885()</div><div class='add'>+    fun_l6_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n886()</div><div class='add'>+    fun_l6_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n887()</div><div class='add'>+    fun_l6_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n888()</div><div class='add'>+    fun_l6_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n889()</div><div class='add'>+    fun_l6_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n890()</div><div class='add'>+    fun_l6_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n891()</div><div class='add'>+    fun_l6_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n892()</div><div class='add'>+    fun_l6_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n893()</div><div class='add'>+    fun_l6_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n894()</div><div class='add'>+    fun_l6_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n895()</div><div class='add'>+    fun_l6_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n896()</div><div class='add'>+    fun_l6_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n897()</div><div class='add'>+    fun_l6_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n898()</div><div class='add'>+    fun_l6_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n899()</div><div class='add'>+    fun_l6_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n900()</div><div class='add'>+    fun_l6_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n901()</div><div class='add'>+    fun_l6_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n902()</div><div class='add'>+    fun_l6_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n903()</div><div class='add'>+    fun_l6_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n904()</div><div class='add'>+    fun_l6_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n905()</div><div class='add'>+    fun_l6_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n906()</div><div class='add'>+    fun_l6_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n907()</div><div class='add'>+    fun_l6_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n908()</div><div class='add'>+    fun_l6_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n909()</div><div class='add'>+    fun_l6_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n910()</div><div class='add'>+    fun_l6_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n911()</div><div class='add'>+    fun_l6_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n912()</div><div class='add'>+    fun_l6_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n913()</div><div class='add'>+    fun_l6_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n914()</div><div class='add'>+    fun_l6_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n915()</div><div class='add'>+    fun_l6_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n916()</div><div class='add'>+    fun_l6_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n917()</div><div class='add'>+    fun_l6_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n918()</div><div class='add'>+    fun_l6_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n919()</div><div class='add'>+    fun_l6_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n920()</div><div class='add'>+    fun_l6_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n921()</div><div class='add'>+    fun_l6_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n922()</div><div class='add'>+    fun_l6_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n923()</div><div class='add'>+    fun_l6_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n924()</div><div class='add'>+    fun_l6_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n925()</div><div class='add'>+    fun_l6_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n926()</div><div class='add'>+    fun_l6_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n927()</div><div class='add'>+    fun_l6_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n928()</div><div class='add'>+    fun_l6_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n929()</div><div class='add'>+    fun_l6_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n930()</div><div class='add'>+    fun_l6_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n931()</div><div class='add'>+    fun_l6_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n932()</div><div class='add'>+    fun_l6_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n933()</div><div class='add'>+    fun_l6_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n934()</div><div class='add'>+    fun_l6_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n935()</div><div class='add'>+    fun_l6_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n936()</div><div class='add'>+    fun_l6_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n937()</div><div class='add'>+    fun_l6_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n938()</div><div class='add'>+    fun_l6_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n939()</div><div class='add'>+    fun_l6_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n940()</div><div class='add'>+    fun_l6_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n941()</div><div class='add'>+    fun_l6_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n942()</div><div class='add'>+    fun_l6_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n943()</div><div class='add'>+    fun_l6_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n944()</div><div class='add'>+    fun_l6_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n945()</div><div class='add'>+    fun_l6_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n946()</div><div class='add'>+    fun_l6_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n947()</div><div class='add'>+    fun_l6_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n948()</div><div class='add'>+    fun_l6_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n949()</div><div class='add'>+    fun_l6_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n950()</div><div class='add'>+    fun_l6_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n951()</div><div class='add'>+    fun_l6_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n952()</div><div class='add'>+    fun_l6_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n953()</div><div class='add'>+    fun_l6_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n954()</div><div class='add'>+    fun_l6_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n955()</div><div class='add'>+    fun_l6_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n956()</div><div class='add'>+    fun_l6_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n957()</div><div class='add'>+    fun_l6_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n958()</div><div class='add'>+    fun_l6_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n959()</div><div class='add'>+    fun_l6_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n960()</div><div class='add'>+    fun_l6_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n961()</div><div class='add'>+    fun_l6_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n962()</div><div class='add'>+    fun_l6_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n963()</div><div class='add'>+    fun_l6_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n964()</div><div class='add'>+    fun_l6_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n965()</div><div class='add'>+    fun_l6_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n966()</div><div class='add'>+    fun_l6_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n967()</div><div class='add'>+    fun_l6_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n968()</div><div class='add'>+    fun_l6_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n969()</div><div class='add'>+    fun_l6_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n970()</div><div class='add'>+    fun_l6_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n971()</div><div class='add'>+    fun_l6_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n972()</div><div class='add'>+    fun_l6_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n973()</div><div class='add'>+    fun_l6_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n974()</div><div class='add'>+    fun_l6_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n975()</div><div class='add'>+    fun_l6_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n976()</div><div class='add'>+    fun_l6_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n977()</div><div class='add'>+    fun_l6_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n978()</div><div class='add'>+    fun_l6_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n979()</div><div class='add'>+    fun_l6_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n980()</div><div class='add'>+    fun_l6_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n981()</div><div class='add'>+    fun_l6_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n982()</div><div class='add'>+    fun_l6_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n983()</div><div class='add'>+    fun_l6_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n984()</div><div class='add'>+    fun_l6_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n985()</div><div class='add'>+    fun_l6_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n986()</div><div class='add'>+    fun_l6_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n987()</div><div class='add'>+    fun_l6_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n988()</div><div class='add'>+    fun_l6_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n989()</div><div class='add'>+    fun_l6_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n990()</div><div class='add'>+    fun_l6_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n991()</div><div class='add'>+    fun_l6_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n992()</div><div class='add'>+    fun_l6_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n993()</div><div class='add'>+    fun_l6_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n994()</div><div class='add'>+    fun_l6_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n995()</div><div class='add'>+    fun_l6_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n996()</div><div class='add'>+    fun_l6_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n997()</div><div class='add'>+    fun_l6_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n998()</div><div class='add'>+    fun_l6_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l5_n999()</div><div class='add'>+    fun_l6_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n0()</div><div class='add'>+    fun_l7_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n1()</div><div class='add'>+    fun_l7_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n2()</div><div class='add'>+    fun_l7_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n3()</div><div class='add'>+    fun_l7_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n4()</div><div class='add'>+    fun_l7_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n5()</div><div class='add'>+    fun_l7_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n6()</div><div class='add'>+    fun_l7_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n7()</div><div class='add'>+    fun_l7_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n8()</div><div class='add'>+    fun_l7_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n9()</div><div class='add'>+    fun_l7_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n10()</div><div class='add'>+    fun_l7_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n11()</div><div class='add'>+    fun_l7_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n12()</div><div class='add'>+    fun_l7_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n13()</div><div class='add'>+    fun_l7_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n14()</div><div class='add'>+    fun_l7_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n15()</div><div class='add'>+    fun_l7_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n16()</div><div class='add'>+    fun_l7_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n17()</div><div class='add'>+    fun_l7_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n18()</div><div class='add'>+    fun_l7_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n19()</div><div class='add'>+    fun_l7_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n20()</div><div class='add'>+    fun_l7_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n21()</div><div class='add'>+    fun_l7_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n22()</div><div class='add'>+    fun_l7_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n23()</div><div class='add'>+    fun_l7_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n24()</div><div class='add'>+    fun_l7_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n25()</div><div class='add'>+    fun_l7_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n26()</div><div class='add'>+    fun_l7_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n27()</div><div class='add'>+    fun_l7_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n28()</div><div class='add'>+    fun_l7_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n29()</div><div class='add'>+    fun_l7_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n30()</div><div class='add'>+    fun_l7_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n31()</div><div class='add'>+    fun_l7_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n32()</div><div class='add'>+    fun_l7_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n33()</div><div class='add'>+    fun_l7_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n34()</div><div class='add'>+    fun_l7_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n35()</div><div class='add'>+    fun_l7_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n36()</div><div class='add'>+    fun_l7_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n37()</div><div class='add'>+    fun_l7_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n38()</div><div class='add'>+    fun_l7_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n39()</div><div class='add'>+    fun_l7_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n40()</div><div class='add'>+    fun_l7_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n41()</div><div class='add'>+    fun_l7_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n42()</div><div class='add'>+    fun_l7_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n43()</div><div class='add'>+    fun_l7_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n44()</div><div class='add'>+    fun_l7_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n45()</div><div class='add'>+    fun_l7_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n46()</div><div class='add'>+    fun_l7_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n47()</div><div class='add'>+    fun_l7_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n48()</div><div class='add'>+    fun_l7_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n49()</div><div class='add'>+    fun_l7_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n50()</div><div class='add'>+    fun_l7_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n51()</div><div class='add'>+    fun_l7_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n52()</div><div class='add'>+    fun_l7_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n53()</div><div class='add'>+    fun_l7_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n54()</div><div class='add'>+    fun_l7_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n55()</div><div class='add'>+    fun_l7_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n56()</div><div class='add'>+    fun_l7_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n57()</div><div class='add'>+    fun_l7_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n58()</div><div class='add'>+    fun_l7_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n59()</div><div class='add'>+    fun_l7_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n60()</div><div class='add'>+    fun_l7_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n61()</div><div class='add'>+    fun_l7_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n62()</div><div class='add'>+    fun_l7_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n63()</div><div class='add'>+    fun_l7_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n64()</div><div class='add'>+    fun_l7_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n65()</div><div class='add'>+    fun_l7_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n66()</div><div class='add'>+    fun_l7_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n67()</div><div class='add'>+    fun_l7_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n68()</div><div class='add'>+    fun_l7_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n69()</div><div class='add'>+    fun_l7_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n70()</div><div class='add'>+    fun_l7_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n71()</div><div class='add'>+    fun_l7_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n72()</div><div class='add'>+    fun_l7_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n73()</div><div class='add'>+    fun_l7_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n74()</div><div class='add'>+    fun_l7_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n75()</div><div class='add'>+    fun_l7_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n76()</div><div class='add'>+    fun_l7_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n77()</div><div class='add'>+    fun_l7_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n78()</div><div class='add'>+    fun_l7_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n79()</div><div class='add'>+    fun_l7_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n80()</div><div class='add'>+    fun_l7_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n81()</div><div class='add'>+    fun_l7_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n82()</div><div class='add'>+    fun_l7_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n83()</div><div class='add'>+    fun_l7_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n84()</div><div class='add'>+    fun_l7_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n85()</div><div class='add'>+    fun_l7_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n86()</div><div class='add'>+    fun_l7_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n87()</div><div class='add'>+    fun_l7_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n88()</div><div class='add'>+    fun_l7_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n89()</div><div class='add'>+    fun_l7_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n90()</div><div class='add'>+    fun_l7_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n91()</div><div class='add'>+    fun_l7_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n92()</div><div class='add'>+    fun_l7_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n93()</div><div class='add'>+    fun_l7_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n94()</div><div class='add'>+    fun_l7_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n95()</div><div class='add'>+    fun_l7_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n96()</div><div class='add'>+    fun_l7_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n97()</div><div class='add'>+    fun_l7_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n98()</div><div class='add'>+    fun_l7_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n99()</div><div class='add'>+    fun_l7_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n100()</div><div class='add'>+    fun_l7_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n101()</div><div class='add'>+    fun_l7_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n102()</div><div class='add'>+    fun_l7_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n103()</div><div class='add'>+    fun_l7_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n104()</div><div class='add'>+    fun_l7_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n105()</div><div class='add'>+    fun_l7_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n106()</div><div class='add'>+    fun_l7_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n107()</div><div class='add'>+    fun_l7_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n108()</div><div class='add'>+    fun_l7_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n109()</div><div class='add'>+    fun_l7_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n110()</div><div class='add'>+    fun_l7_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n111()</div><div class='add'>+    fun_l7_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n112()</div><div class='add'>+    fun_l7_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n113()</div><div class='add'>+    fun_l7_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n114()</div><div class='add'>+    fun_l7_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n115()</div><div class='add'>+    fun_l7_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n116()</div><div class='add'>+    fun_l7_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n117()</div><div class='add'>+    fun_l7_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n118()</div><div class='add'>+    fun_l7_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n119()</div><div class='add'>+    fun_l7_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n120()</div><div class='add'>+    fun_l7_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n121()</div><div class='add'>+    fun_l7_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n122()</div><div class='add'>+    fun_l7_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n123()</div><div class='add'>+    fun_l7_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n124()</div><div class='add'>+    fun_l7_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n125()</div><div class='add'>+    fun_l7_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n126()</div><div class='add'>+    fun_l7_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n127()</div><div class='add'>+    fun_l7_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n128()</div><div class='add'>+    fun_l7_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n129()</div><div class='add'>+    fun_l7_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n130()</div><div class='add'>+    fun_l7_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n131()</div><div class='add'>+    fun_l7_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n132()</div><div class='add'>+    fun_l7_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n133()</div><div class='add'>+    fun_l7_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n134()</div><div class='add'>+    fun_l7_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n135()</div><div class='add'>+    fun_l7_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n136()</div><div class='add'>+    fun_l7_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n137()</div><div class='add'>+    fun_l7_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n138()</div><div class='add'>+    fun_l7_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n139()</div><div class='add'>+    fun_l7_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n140()</div><div class='add'>+    fun_l7_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n141()</div><div class='add'>+    fun_l7_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n142()</div><div class='add'>+    fun_l7_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n143()</div><div class='add'>+    fun_l7_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n144()</div><div class='add'>+    fun_l7_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n145()</div><div class='add'>+    fun_l7_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n146()</div><div class='add'>+    fun_l7_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n147()</div><div class='add'>+    fun_l7_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n148()</div><div class='add'>+    fun_l7_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n149()</div><div class='add'>+    fun_l7_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n150()</div><div class='add'>+    fun_l7_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n151()</div><div class='add'>+    fun_l7_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n152()</div><div class='add'>+    fun_l7_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n153()</div><div class='add'>+    fun_l7_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n154()</div><div class='add'>+    fun_l7_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n155()</div><div class='add'>+    fun_l7_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n156()</div><div class='add'>+    fun_l7_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n157()</div><div class='add'>+    fun_l7_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n158()</div><div class='add'>+    fun_l7_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n159()</div><div class='add'>+    fun_l7_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n160()</div><div class='add'>+    fun_l7_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n161()</div><div class='add'>+    fun_l7_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n162()</div><div class='add'>+    fun_l7_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n163()</div><div class='add'>+    fun_l7_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n164()</div><div class='add'>+    fun_l7_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n165()</div><div class='add'>+    fun_l7_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n166()</div><div class='add'>+    fun_l7_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n167()</div><div class='add'>+    fun_l7_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n168()</div><div class='add'>+    fun_l7_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n169()</div><div class='add'>+    fun_l7_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n170()</div><div class='add'>+    fun_l7_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n171()</div><div class='add'>+    fun_l7_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n172()</div><div class='add'>+    fun_l7_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n173()</div><div class='add'>+    fun_l7_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n174()</div><div class='add'>+    fun_l7_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n175()</div><div class='add'>+    fun_l7_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n176()</div><div class='add'>+    fun_l7_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n177()</div><div class='add'>+    fun_l7_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n178()</div><div class='add'>+    fun_l7_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n179()</div><div class='add'>+    fun_l7_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n180()</div><div class='add'>+    fun_l7_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n181()</div><div class='add'>+    fun_l7_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n182()</div><div class='add'>+    fun_l7_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n183()</div><div class='add'>+    fun_l7_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n184()</div><div class='add'>+    fun_l7_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n185()</div><div class='add'>+    fun_l7_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n186()</div><div class='add'>+    fun_l7_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n187()</div><div class='add'>+    fun_l7_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n188()</div><div class='add'>+    fun_l7_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n189()</div><div class='add'>+    fun_l7_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n190()</div><div class='add'>+    fun_l7_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n191()</div><div class='add'>+    fun_l7_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n192()</div><div class='add'>+    fun_l7_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n193()</div><div class='add'>+    fun_l7_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n194()</div><div class='add'>+    fun_l7_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n195()</div><div class='add'>+    fun_l7_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n196()</div><div class='add'>+    fun_l7_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n197()</div><div class='add'>+    fun_l7_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n198()</div><div class='add'>+    fun_l7_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n199()</div><div class='add'>+    fun_l7_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n200()</div><div class='add'>+    fun_l7_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n201()</div><div class='add'>+    fun_l7_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n202()</div><div class='add'>+    fun_l7_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n203()</div><div class='add'>+    fun_l7_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n204()</div><div class='add'>+    fun_l7_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n205()</div><div class='add'>+    fun_l7_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n206()</div><div class='add'>+    fun_l7_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n207()</div><div class='add'>+    fun_l7_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n208()</div><div class='add'>+    fun_l7_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n209()</div><div class='add'>+    fun_l7_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n210()</div><div class='add'>+    fun_l7_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n211()</div><div class='add'>+    fun_l7_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n212()</div><div class='add'>+    fun_l7_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n213()</div><div class='add'>+    fun_l7_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n214()</div><div class='add'>+    fun_l7_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n215()</div><div class='add'>+    fun_l7_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n216()</div><div class='add'>+    fun_l7_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n217()</div><div class='add'>+    fun_l7_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n218()</div><div class='add'>+    fun_l7_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n219()</div><div class='add'>+    fun_l7_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n220()</div><div class='add'>+    fun_l7_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n221()</div><div class='add'>+    fun_l7_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n222()</div><div class='add'>+    fun_l7_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n223()</div><div class='add'>+    fun_l7_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n224()</div><div class='add'>+    fun_l7_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n225()</div><div class='add'>+    fun_l7_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n226()</div><div class='add'>+    fun_l7_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n227()</div><div class='add'>+    fun_l7_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n228()</div><div class='add'>+    fun_l7_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n229()</div><div class='add'>+    fun_l7_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n230()</div><div class='add'>+    fun_l7_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n231()</div><div class='add'>+    fun_l7_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n232()</div><div class='add'>+    fun_l7_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n233()</div><div class='add'>+    fun_l7_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n234()</div><div class='add'>+    fun_l7_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n235()</div><div class='add'>+    fun_l7_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n236()</div><div class='add'>+    fun_l7_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n237()</div><div class='add'>+    fun_l7_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n238()</div><div class='add'>+    fun_l7_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n239()</div><div class='add'>+    fun_l7_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n240()</div><div class='add'>+    fun_l7_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n241()</div><div class='add'>+    fun_l7_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n242()</div><div class='add'>+    fun_l7_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n243()</div><div class='add'>+    fun_l7_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n244()</div><div class='add'>+    fun_l7_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n245()</div><div class='add'>+    fun_l7_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n246()</div><div class='add'>+    fun_l7_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n247()</div><div class='add'>+    fun_l7_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n248()</div><div class='add'>+    fun_l7_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n249()</div><div class='add'>+    fun_l7_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n250()</div><div class='add'>+    fun_l7_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n251()</div><div class='add'>+    fun_l7_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n252()</div><div class='add'>+    fun_l7_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n253()</div><div class='add'>+    fun_l7_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n254()</div><div class='add'>+    fun_l7_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n255()</div><div class='add'>+    fun_l7_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n256()</div><div class='add'>+    fun_l7_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n257()</div><div class='add'>+    fun_l7_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n258()</div><div class='add'>+    fun_l7_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n259()</div><div class='add'>+    fun_l7_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n260()</div><div class='add'>+    fun_l7_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n261()</div><div class='add'>+    fun_l7_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n262()</div><div class='add'>+    fun_l7_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n263()</div><div class='add'>+    fun_l7_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n264()</div><div class='add'>+    fun_l7_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n265()</div><div class='add'>+    fun_l7_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n266()</div><div class='add'>+    fun_l7_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n267()</div><div class='add'>+    fun_l7_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n268()</div><div class='add'>+    fun_l7_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n269()</div><div class='add'>+    fun_l7_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n270()</div><div class='add'>+    fun_l7_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n271()</div><div class='add'>+    fun_l7_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n272()</div><div class='add'>+    fun_l7_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n273()</div><div class='add'>+    fun_l7_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n274()</div><div class='add'>+    fun_l7_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n275()</div><div class='add'>+    fun_l7_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n276()</div><div class='add'>+    fun_l7_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n277()</div><div class='add'>+    fun_l7_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n278()</div><div class='add'>+    fun_l7_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n279()</div><div class='add'>+    fun_l7_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n280()</div><div class='add'>+    fun_l7_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n281()</div><div class='add'>+    fun_l7_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n282()</div><div class='add'>+    fun_l7_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n283()</div><div class='add'>+    fun_l7_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n284()</div><div class='add'>+    fun_l7_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n285()</div><div class='add'>+    fun_l7_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n286()</div><div class='add'>+    fun_l7_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n287()</div><div class='add'>+    fun_l7_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n288()</div><div class='add'>+    fun_l7_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n289()</div><div class='add'>+    fun_l7_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n290()</div><div class='add'>+    fun_l7_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n291()</div><div class='add'>+    fun_l7_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n292()</div><div class='add'>+    fun_l7_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n293()</div><div class='add'>+    fun_l7_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n294()</div><div class='add'>+    fun_l7_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n295()</div><div class='add'>+    fun_l7_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n296()</div><div class='add'>+    fun_l7_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n297()</div><div class='add'>+    fun_l7_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n298()</div><div class='add'>+    fun_l7_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n299()</div><div class='add'>+    fun_l7_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n300()</div><div class='add'>+    fun_l7_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n301()</div><div class='add'>+    fun_l7_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n302()</div><div class='add'>+    fun_l7_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n303()</div><div class='add'>+    fun_l7_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n304()</div><div class='add'>+    fun_l7_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n305()</div><div class='add'>+    fun_l7_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n306()</div><div class='add'>+    fun_l7_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n307()</div><div class='add'>+    fun_l7_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n308()</div><div class='add'>+    fun_l7_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n309()</div><div class='add'>+    fun_l7_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n310()</div><div class='add'>+    fun_l7_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n311()</div><div class='add'>+    fun_l7_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n312()</div><div class='add'>+    fun_l7_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n313()</div><div class='add'>+    fun_l7_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n314()</div><div class='add'>+    fun_l7_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n315()</div><div class='add'>+    fun_l7_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n316()</div><div class='add'>+    fun_l7_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n317()</div><div class='add'>+    fun_l7_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n318()</div><div class='add'>+    fun_l7_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n319()</div><div class='add'>+    fun_l7_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n320()</div><div class='add'>+    fun_l7_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n321()</div><div class='add'>+    fun_l7_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n322()</div><div class='add'>+    fun_l7_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n323()</div><div class='add'>+    fun_l7_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n324()</div><div class='add'>+    fun_l7_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n325()</div><div class='add'>+    fun_l7_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n326()</div><div class='add'>+    fun_l7_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n327()</div><div class='add'>+    fun_l7_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n328()</div><div class='add'>+    fun_l7_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n329()</div><div class='add'>+    fun_l7_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n330()</div><div class='add'>+    fun_l7_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n331()</div><div class='add'>+    fun_l7_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n332()</div><div class='add'>+    fun_l7_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n333()</div><div class='add'>+    fun_l7_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n334()</div><div class='add'>+    fun_l7_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n335()</div><div class='add'>+    fun_l7_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n336()</div><div class='add'>+    fun_l7_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n337()</div><div class='add'>+    fun_l7_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n338()</div><div class='add'>+    fun_l7_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n339()</div><div class='add'>+    fun_l7_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n340()</div><div class='add'>+    fun_l7_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n341()</div><div class='add'>+    fun_l7_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n342()</div><div class='add'>+    fun_l7_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n343()</div><div class='add'>+    fun_l7_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n344()</div><div class='add'>+    fun_l7_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n345()</div><div class='add'>+    fun_l7_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n346()</div><div class='add'>+    fun_l7_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n347()</div><div class='add'>+    fun_l7_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n348()</div><div class='add'>+    fun_l7_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n349()</div><div class='add'>+    fun_l7_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n350()</div><div class='add'>+    fun_l7_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n351()</div><div class='add'>+    fun_l7_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n352()</div><div class='add'>+    fun_l7_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n353()</div><div class='add'>+    fun_l7_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n354()</div><div class='add'>+    fun_l7_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n355()</div><div class='add'>+    fun_l7_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n356()</div><div class='add'>+    fun_l7_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n357()</div><div class='add'>+    fun_l7_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n358()</div><div class='add'>+    fun_l7_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n359()</div><div class='add'>+    fun_l7_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n360()</div><div class='add'>+    fun_l7_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n361()</div><div class='add'>+    fun_l7_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n362()</div><div class='add'>+    fun_l7_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n363()</div><div class='add'>+    fun_l7_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n364()</div><div class='add'>+    fun_l7_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n365()</div><div class='add'>+    fun_l7_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n366()</div><div class='add'>+    fun_l7_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n367()</div><div class='add'>+    fun_l7_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n368()</div><div class='add'>+    fun_l7_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n369()</div><div class='add'>+    fun_l7_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n370()</div><div class='add'>+    fun_l7_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n371()</div><div class='add'>+    fun_l7_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n372()</div><div class='add'>+    fun_l7_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n373()</div><div class='add'>+    fun_l7_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n374()</div><div class='add'>+    fun_l7_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n375()</div><div class='add'>+    fun_l7_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n376()</div><div class='add'>+    fun_l7_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n377()</div><div class='add'>+    fun_l7_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n378()</div><div class='add'>+    fun_l7_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n379()</div><div class='add'>+    fun_l7_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n380()</div><div class='add'>+    fun_l7_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n381()</div><div class='add'>+    fun_l7_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n382()</div><div class='add'>+    fun_l7_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n383()</div><div class='add'>+    fun_l7_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n384()</div><div class='add'>+    fun_l7_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n385()</div><div class='add'>+    fun_l7_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n386()</div><div class='add'>+    fun_l7_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n387()</div><div class='add'>+    fun_l7_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n388()</div><div class='add'>+    fun_l7_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n389()</div><div class='add'>+    fun_l7_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n390()</div><div class='add'>+    fun_l7_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n391()</div><div class='add'>+    fun_l7_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n392()</div><div class='add'>+    fun_l7_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n393()</div><div class='add'>+    fun_l7_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n394()</div><div class='add'>+    fun_l7_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n395()</div><div class='add'>+    fun_l7_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n396()</div><div class='add'>+    fun_l7_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n397()</div><div class='add'>+    fun_l7_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n398()</div><div class='add'>+    fun_l7_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n399()</div><div class='add'>+    fun_l7_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n400()</div><div class='add'>+    fun_l7_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n401()</div><div class='add'>+    fun_l7_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n402()</div><div class='add'>+    fun_l7_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n403()</div><div class='add'>+    fun_l7_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n404()</div><div class='add'>+    fun_l7_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n405()</div><div class='add'>+    fun_l7_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n406()</div><div class='add'>+    fun_l7_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n407()</div><div class='add'>+    fun_l7_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n408()</div><div class='add'>+    fun_l7_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n409()</div><div class='add'>+    fun_l7_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n410()</div><div class='add'>+    fun_l7_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n411()</div><div class='add'>+    fun_l7_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n412()</div><div class='add'>+    fun_l7_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n413()</div><div class='add'>+    fun_l7_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n414()</div><div class='add'>+    fun_l7_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n415()</div><div class='add'>+    fun_l7_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n416()</div><div class='add'>+    fun_l7_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n417()</div><div class='add'>+    fun_l7_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n418()</div><div class='add'>+    fun_l7_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n419()</div><div class='add'>+    fun_l7_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n420()</div><div class='add'>+    fun_l7_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n421()</div><div class='add'>+    fun_l7_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n422()</div><div class='add'>+    fun_l7_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n423()</div><div class='add'>+    fun_l7_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n424()</div><div class='add'>+    fun_l7_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n425()</div><div class='add'>+    fun_l7_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n426()</div><div class='add'>+    fun_l7_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n427()</div><div class='add'>+    fun_l7_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n428()</div><div class='add'>+    fun_l7_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n429()</div><div class='add'>+    fun_l7_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n430()</div><div class='add'>+    fun_l7_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n431()</div><div class='add'>+    fun_l7_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n432()</div><div class='add'>+    fun_l7_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n433()</div><div class='add'>+    fun_l7_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n434()</div><div class='add'>+    fun_l7_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n435()</div><div class='add'>+    fun_l7_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n436()</div><div class='add'>+    fun_l7_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n437()</div><div class='add'>+    fun_l7_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n438()</div><div class='add'>+    fun_l7_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n439()</div><div class='add'>+    fun_l7_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n440()</div><div class='add'>+    fun_l7_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n441()</div><div class='add'>+    fun_l7_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n442()</div><div class='add'>+    fun_l7_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n443()</div><div class='add'>+    fun_l7_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n444()</div><div class='add'>+    fun_l7_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n445()</div><div class='add'>+    fun_l7_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n446()</div><div class='add'>+    fun_l7_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n447()</div><div class='add'>+    fun_l7_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n448()</div><div class='add'>+    fun_l7_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n449()</div><div class='add'>+    fun_l7_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n450()</div><div class='add'>+    fun_l7_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n451()</div><div class='add'>+    fun_l7_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n452()</div><div class='add'>+    fun_l7_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n453()</div><div class='add'>+    fun_l7_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n454()</div><div class='add'>+    fun_l7_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n455()</div><div class='add'>+    fun_l7_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n456()</div><div class='add'>+    fun_l7_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n457()</div><div class='add'>+    fun_l7_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n458()</div><div class='add'>+    fun_l7_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n459()</div><div class='add'>+    fun_l7_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n460()</div><div class='add'>+    fun_l7_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n461()</div><div class='add'>+    fun_l7_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n462()</div><div class='add'>+    fun_l7_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n463()</div><div class='add'>+    fun_l7_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n464()</div><div class='add'>+    fun_l7_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n465()</div><div class='add'>+    fun_l7_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n466()</div><div class='add'>+    fun_l7_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n467()</div><div class='add'>+    fun_l7_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n468()</div><div class='add'>+    fun_l7_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n469()</div><div class='add'>+    fun_l7_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n470()</div><div class='add'>+    fun_l7_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n471()</div><div class='add'>+    fun_l7_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n472()</div><div class='add'>+    fun_l7_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n473()</div><div class='add'>+    fun_l7_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n474()</div><div class='add'>+    fun_l7_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n475()</div><div class='add'>+    fun_l7_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n476()</div><div class='add'>+    fun_l7_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n477()</div><div class='add'>+    fun_l7_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n478()</div><div class='add'>+    fun_l7_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n479()</div><div class='add'>+    fun_l7_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n480()</div><div class='add'>+    fun_l7_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n481()</div><div class='add'>+    fun_l7_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n482()</div><div class='add'>+    fun_l7_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n483()</div><div class='add'>+    fun_l7_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n484()</div><div class='add'>+    fun_l7_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n485()</div><div class='add'>+    fun_l7_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n486()</div><div class='add'>+    fun_l7_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n487()</div><div class='add'>+    fun_l7_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n488()</div><div class='add'>+    fun_l7_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n489()</div><div class='add'>+    fun_l7_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n490()</div><div class='add'>+    fun_l7_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n491()</div><div class='add'>+    fun_l7_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n492()</div><div class='add'>+    fun_l7_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n493()</div><div class='add'>+    fun_l7_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n494()</div><div class='add'>+    fun_l7_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n495()</div><div class='add'>+    fun_l7_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n496()</div><div class='add'>+    fun_l7_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n497()</div><div class='add'>+    fun_l7_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n498()</div><div class='add'>+    fun_l7_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n499()</div><div class='add'>+    fun_l7_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n500()</div><div class='add'>+    fun_l7_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n501()</div><div class='add'>+    fun_l7_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n502()</div><div class='add'>+    fun_l7_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n503()</div><div class='add'>+    fun_l7_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n504()</div><div class='add'>+    fun_l7_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n505()</div><div class='add'>+    fun_l7_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n506()</div><div class='add'>+    fun_l7_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n507()</div><div class='add'>+    fun_l7_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n508()</div><div class='add'>+    fun_l7_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n509()</div><div class='add'>+    fun_l7_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n510()</div><div class='add'>+    fun_l7_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n511()</div><div class='add'>+    fun_l7_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n512()</div><div class='add'>+    fun_l7_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n513()</div><div class='add'>+    fun_l7_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n514()</div><div class='add'>+    fun_l7_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n515()</div><div class='add'>+    fun_l7_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n516()</div><div class='add'>+    fun_l7_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n517()</div><div class='add'>+    fun_l7_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n518()</div><div class='add'>+    fun_l7_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n519()</div><div class='add'>+    fun_l7_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n520()</div><div class='add'>+    fun_l7_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n521()</div><div class='add'>+    fun_l7_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n522()</div><div class='add'>+    fun_l7_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n523()</div><div class='add'>+    fun_l7_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n524()</div><div class='add'>+    fun_l7_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n525()</div><div class='add'>+    fun_l7_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n526()</div><div class='add'>+    fun_l7_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n527()</div><div class='add'>+    fun_l7_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n528()</div><div class='add'>+    fun_l7_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n529()</div><div class='add'>+    fun_l7_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n530()</div><div class='add'>+    fun_l7_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n531()</div><div class='add'>+    fun_l7_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n532()</div><div class='add'>+    fun_l7_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n533()</div><div class='add'>+    fun_l7_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n534()</div><div class='add'>+    fun_l7_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n535()</div><div class='add'>+    fun_l7_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n536()</div><div class='add'>+    fun_l7_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n537()</div><div class='add'>+    fun_l7_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n538()</div><div class='add'>+    fun_l7_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n539()</div><div class='add'>+    fun_l7_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n540()</div><div class='add'>+    fun_l7_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n541()</div><div class='add'>+    fun_l7_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n542()</div><div class='add'>+    fun_l7_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n543()</div><div class='add'>+    fun_l7_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n544()</div><div class='add'>+    fun_l7_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n545()</div><div class='add'>+    fun_l7_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n546()</div><div class='add'>+    fun_l7_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n547()</div><div class='add'>+    fun_l7_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n548()</div><div class='add'>+    fun_l7_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n549()</div><div class='add'>+    fun_l7_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n550()</div><div class='add'>+    fun_l7_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n551()</div><div class='add'>+    fun_l7_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n552()</div><div class='add'>+    fun_l7_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n553()</div><div class='add'>+    fun_l7_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n554()</div><div class='add'>+    fun_l7_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n555()</div><div class='add'>+    fun_l7_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n556()</div><div class='add'>+    fun_l7_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n557()</div><div class='add'>+    fun_l7_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n558()</div><div class='add'>+    fun_l7_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n559()</div><div class='add'>+    fun_l7_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n560()</div><div class='add'>+    fun_l7_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n561()</div><div class='add'>+    fun_l7_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n562()</div><div class='add'>+    fun_l7_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n563()</div><div class='add'>+    fun_l7_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n564()</div><div class='add'>+    fun_l7_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n565()</div><div class='add'>+    fun_l7_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n566()</div><div class='add'>+    fun_l7_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n567()</div><div class='add'>+    fun_l7_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n568()</div><div class='add'>+    fun_l7_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n569()</div><div class='add'>+    fun_l7_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n570()</div><div class='add'>+    fun_l7_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n571()</div><div class='add'>+    fun_l7_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n572()</div><div class='add'>+    fun_l7_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n573()</div><div class='add'>+    fun_l7_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n574()</div><div class='add'>+    fun_l7_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n575()</div><div class='add'>+    fun_l7_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n576()</div><div class='add'>+    fun_l7_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n577()</div><div class='add'>+    fun_l7_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n578()</div><div class='add'>+    fun_l7_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n579()</div><div class='add'>+    fun_l7_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n580()</div><div class='add'>+    fun_l7_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n581()</div><div class='add'>+    fun_l7_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n582()</div><div class='add'>+    fun_l7_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n583()</div><div class='add'>+    fun_l7_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n584()</div><div class='add'>+    fun_l7_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n585()</div><div class='add'>+    fun_l7_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n586()</div><div class='add'>+    fun_l7_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n587()</div><div class='add'>+    fun_l7_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n588()</div><div class='add'>+    fun_l7_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n589()</div><div class='add'>+    fun_l7_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n590()</div><div class='add'>+    fun_l7_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n591()</div><div class='add'>+    fun_l7_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n592()</div><div class='add'>+    fun_l7_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n593()</div><div class='add'>+    fun_l7_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n594()</div><div class='add'>+    fun_l7_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n595()</div><div class='add'>+    fun_l7_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n596()</div><div class='add'>+    fun_l7_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n597()</div><div class='add'>+    fun_l7_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n598()</div><div class='add'>+    fun_l7_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n599()</div><div class='add'>+    fun_l7_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n600()</div><div class='add'>+    fun_l7_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n601()</div><div class='add'>+    fun_l7_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n602()</div><div class='add'>+    fun_l7_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n603()</div><div class='add'>+    fun_l7_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n604()</div><div class='add'>+    fun_l7_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n605()</div><div class='add'>+    fun_l7_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n606()</div><div class='add'>+    fun_l7_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n607()</div><div class='add'>+    fun_l7_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n608()</div><div class='add'>+    fun_l7_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n609()</div><div class='add'>+    fun_l7_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n610()</div><div class='add'>+    fun_l7_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n611()</div><div class='add'>+    fun_l7_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n612()</div><div class='add'>+    fun_l7_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n613()</div><div class='add'>+    fun_l7_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n614()</div><div class='add'>+    fun_l7_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n615()</div><div class='add'>+    fun_l7_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n616()</div><div class='add'>+    fun_l7_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n617()</div><div class='add'>+    fun_l7_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n618()</div><div class='add'>+    fun_l7_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n619()</div><div class='add'>+    fun_l7_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n620()</div><div class='add'>+    fun_l7_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n621()</div><div class='add'>+    fun_l7_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n622()</div><div class='add'>+    fun_l7_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n623()</div><div class='add'>+    fun_l7_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n624()</div><div class='add'>+    fun_l7_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n625()</div><div class='add'>+    fun_l7_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n626()</div><div class='add'>+    fun_l7_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n627()</div><div class='add'>+    fun_l7_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n628()</div><div class='add'>+    fun_l7_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n629()</div><div class='add'>+    fun_l7_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n630()</div><div class='add'>+    fun_l7_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n631()</div><div class='add'>+    fun_l7_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n632()</div><div class='add'>+    fun_l7_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n633()</div><div class='add'>+    fun_l7_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n634()</div><div class='add'>+    fun_l7_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n635()</div><div class='add'>+    fun_l7_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n636()</div><div class='add'>+    fun_l7_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n637()</div><div class='add'>+    fun_l7_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n638()</div><div class='add'>+    fun_l7_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n639()</div><div class='add'>+    fun_l7_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n640()</div><div class='add'>+    fun_l7_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n641()</div><div class='add'>+    fun_l7_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n642()</div><div class='add'>+    fun_l7_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n643()</div><div class='add'>+    fun_l7_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n644()</div><div class='add'>+    fun_l7_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n645()</div><div class='add'>+    fun_l7_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n646()</div><div class='add'>+    fun_l7_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n647()</div><div class='add'>+    fun_l7_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n648()</div><div class='add'>+    fun_l7_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n649()</div><div class='add'>+    fun_l7_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n650()</div><div class='add'>+    fun_l7_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n651()</div><div class='add'>+    fun_l7_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n652()</div><div class='add'>+    fun_l7_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n653()</div><div class='add'>+    fun_l7_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n654()</div><div class='add'>+    fun_l7_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n655()</div><div class='add'>+    fun_l7_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n656()</div><div class='add'>+    fun_l7_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n657()</div><div class='add'>+    fun_l7_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n658()</div><div class='add'>+    fun_l7_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n659()</div><div class='add'>+    fun_l7_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n660()</div><div class='add'>+    fun_l7_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n661()</div><div class='add'>+    fun_l7_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n662()</div><div class='add'>+    fun_l7_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n663()</div><div class='add'>+    fun_l7_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n664()</div><div class='add'>+    fun_l7_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n665()</div><div class='add'>+    fun_l7_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n666()</div><div class='add'>+    fun_l7_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n667()</div><div class='add'>+    fun_l7_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n668()</div><div class='add'>+    fun_l7_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n669()</div><div class='add'>+    fun_l7_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n670()</div><div class='add'>+    fun_l7_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n671()</div><div class='add'>+    fun_l7_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n672()</div><div class='add'>+    fun_l7_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n673()</div><div class='add'>+    fun_l7_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n674()</div><div class='add'>+    fun_l7_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n675()</div><div class='add'>+    fun_l7_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n676()</div><div class='add'>+    fun_l7_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n677()</div><div class='add'>+    fun_l7_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n678()</div><div class='add'>+    fun_l7_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n679()</div><div class='add'>+    fun_l7_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n680()</div><div class='add'>+    fun_l7_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n681()</div><div class='add'>+    fun_l7_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n682()</div><div class='add'>+    fun_l7_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n683()</div><div class='add'>+    fun_l7_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n684()</div><div class='add'>+    fun_l7_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n685()</div><div class='add'>+    fun_l7_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n686()</div><div class='add'>+    fun_l7_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n687()</div><div class='add'>+    fun_l7_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n688()</div><div class='add'>+    fun_l7_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n689()</div><div class='add'>+    fun_l7_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n690()</div><div class='add'>+    fun_l7_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n691()</div><div class='add'>+    fun_l7_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n692()</div><div class='add'>+    fun_l7_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n693()</div><div class='add'>+    fun_l7_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n694()</div><div class='add'>+    fun_l7_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n695()</div><div class='add'>+    fun_l7_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n696()</div><div class='add'>+    fun_l7_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n697()</div><div class='add'>+    fun_l7_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n698()</div><div class='add'>+    fun_l7_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n699()</div><div class='add'>+    fun_l7_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n700()</div><div class='add'>+    fun_l7_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n701()</div><div class='add'>+    fun_l7_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n702()</div><div class='add'>+    fun_l7_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n703()</div><div class='add'>+    fun_l7_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n704()</div><div class='add'>+    fun_l7_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n705()</div><div class='add'>+    fun_l7_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n706()</div><div class='add'>+    fun_l7_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n707()</div><div class='add'>+    fun_l7_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n708()</div><div class='add'>+    fun_l7_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n709()</div><div class='add'>+    fun_l7_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n710()</div><div class='add'>+    fun_l7_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n711()</div><div class='add'>+    fun_l7_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n712()</div><div class='add'>+    fun_l7_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n713()</div><div class='add'>+    fun_l7_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n714()</div><div class='add'>+    fun_l7_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n715()</div><div class='add'>+    fun_l7_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n716()</div><div class='add'>+    fun_l7_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n717()</div><div class='add'>+    fun_l7_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n718()</div><div class='add'>+    fun_l7_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n719()</div><div class='add'>+    fun_l7_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n720()</div><div class='add'>+    fun_l7_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n721()</div><div class='add'>+    fun_l7_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n722()</div><div class='add'>+    fun_l7_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n723()</div><div class='add'>+    fun_l7_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n724()</div><div class='add'>+    fun_l7_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n725()</div><div class='add'>+    fun_l7_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n726()</div><div class='add'>+    fun_l7_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n727()</div><div class='add'>+    fun_l7_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n728()</div><div class='add'>+    fun_l7_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n729()</div><div class='add'>+    fun_l7_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n730()</div><div class='add'>+    fun_l7_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n731()</div><div class='add'>+    fun_l7_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n732()</div><div class='add'>+    fun_l7_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n733()</div><div class='add'>+    fun_l7_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n734()</div><div class='add'>+    fun_l7_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n735()</div><div class='add'>+    fun_l7_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n736()</div><div class='add'>+    fun_l7_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n737()</div><div class='add'>+    fun_l7_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n738()</div><div class='add'>+    fun_l7_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n739()</div><div class='add'>+    fun_l7_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n740()</div><div class='add'>+    fun_l7_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n741()</div><div class='add'>+    fun_l7_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n742()</div><div class='add'>+    fun_l7_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n743()</div><div class='add'>+    fun_l7_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n744()</div><div class='add'>+    fun_l7_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n745()</div><div class='add'>+    fun_l7_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n746()</div><div class='add'>+    fun_l7_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n747()</div><div class='add'>+    fun_l7_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n748()</div><div class='add'>+    fun_l7_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n749()</div><div class='add'>+    fun_l7_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n750()</div><div class='add'>+    fun_l7_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n751()</div><div class='add'>+    fun_l7_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n752()</div><div class='add'>+    fun_l7_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n753()</div><div class='add'>+    fun_l7_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n754()</div><div class='add'>+    fun_l7_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n755()</div><div class='add'>+    fun_l7_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n756()</div><div class='add'>+    fun_l7_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n757()</div><div class='add'>+    fun_l7_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n758()</div><div class='add'>+    fun_l7_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n759()</div><div class='add'>+    fun_l7_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n760()</div><div class='add'>+    fun_l7_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n761()</div><div class='add'>+    fun_l7_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n762()</div><div class='add'>+    fun_l7_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n763()</div><div class='add'>+    fun_l7_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n764()</div><div class='add'>+    fun_l7_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n765()</div><div class='add'>+    fun_l7_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n766()</div><div class='add'>+    fun_l7_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n767()</div><div class='add'>+    fun_l7_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n768()</div><div class='add'>+    fun_l7_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n769()</div><div class='add'>+    fun_l7_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n770()</div><div class='add'>+    fun_l7_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n771()</div><div class='add'>+    fun_l7_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n772()</div><div class='add'>+    fun_l7_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n773()</div><div class='add'>+    fun_l7_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n774()</div><div class='add'>+    fun_l7_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n775()</div><div class='add'>+    fun_l7_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n776()</div><div class='add'>+    fun_l7_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n777()</div><div class='add'>+    fun_l7_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n778()</div><div class='add'>+    fun_l7_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n779()</div><div class='add'>+    fun_l7_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n780()</div><div class='add'>+    fun_l7_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n781()</div><div class='add'>+    fun_l7_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n782()</div><div class='add'>+    fun_l7_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n783()</div><div class='add'>+    fun_l7_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n784()</div><div class='add'>+    fun_l7_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n785()</div><div class='add'>+    fun_l7_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n786()</div><div class='add'>+    fun_l7_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n787()</div><div class='add'>+    fun_l7_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n788()</div><div class='add'>+    fun_l7_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n789()</div><div class='add'>+    fun_l7_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n790()</div><div class='add'>+    fun_l7_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n791()</div><div class='add'>+    fun_l7_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n792()</div><div class='add'>+    fun_l7_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n793()</div><div class='add'>+    fun_l7_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n794()</div><div class='add'>+    fun_l7_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n795()</div><div class='add'>+    fun_l7_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n796()</div><div class='add'>+    fun_l7_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n797()</div><div class='add'>+    fun_l7_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n798()</div><div class='add'>+    fun_l7_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n799()</div><div class='add'>+    fun_l7_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n800()</div><div class='add'>+    fun_l7_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n801()</div><div class='add'>+    fun_l7_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n802()</div><div class='add'>+    fun_l7_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n803()</div><div class='add'>+    fun_l7_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n804()</div><div class='add'>+    fun_l7_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n805()</div><div class='add'>+    fun_l7_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n806()</div><div class='add'>+    fun_l7_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n807()</div><div class='add'>+    fun_l7_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n808()</div><div class='add'>+    fun_l7_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n809()</div><div class='add'>+    fun_l7_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n810()</div><div class='add'>+    fun_l7_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n811()</div><div class='add'>+    fun_l7_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n812()</div><div class='add'>+    fun_l7_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n813()</div><div class='add'>+    fun_l7_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n814()</div><div class='add'>+    fun_l7_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n815()</div><div class='add'>+    fun_l7_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n816()</div><div class='add'>+    fun_l7_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n817()</div><div class='add'>+    fun_l7_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n818()</div><div class='add'>+    fun_l7_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n819()</div><div class='add'>+    fun_l7_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n820()</div><div class='add'>+    fun_l7_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n821()</div><div class='add'>+    fun_l7_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n822()</div><div class='add'>+    fun_l7_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n823()</div><div class='add'>+    fun_l7_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n824()</div><div class='add'>+    fun_l7_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n825()</div><div class='add'>+    fun_l7_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n826()</div><div class='add'>+    fun_l7_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n827()</div><div class='add'>+    fun_l7_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n828()</div><div class='add'>+    fun_l7_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n829()</div><div class='add'>+    fun_l7_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n830()</div><div class='add'>+    fun_l7_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n831()</div><div class='add'>+    fun_l7_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n832()</div><div class='add'>+    fun_l7_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n833()</div><div class='add'>+    fun_l7_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n834()</div><div class='add'>+    fun_l7_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n835()</div><div class='add'>+    fun_l7_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n836()</div><div class='add'>+    fun_l7_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n837()</div><div class='add'>+    fun_l7_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n838()</div><div class='add'>+    fun_l7_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n839()</div><div class='add'>+    fun_l7_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n840()</div><div class='add'>+    fun_l7_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n841()</div><div class='add'>+    fun_l7_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n842()</div><div class='add'>+    fun_l7_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n843()</div><div class='add'>+    fun_l7_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n844()</div><div class='add'>+    fun_l7_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n845()</div><div class='add'>+    fun_l7_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n846()</div><div class='add'>+    fun_l7_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n847()</div><div class='add'>+    fun_l7_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n848()</div><div class='add'>+    fun_l7_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n849()</div><div class='add'>+    fun_l7_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n850()</div><div class='add'>+    fun_l7_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n851()</div><div class='add'>+    fun_l7_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n852()</div><div class='add'>+    fun_l7_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n853()</div><div class='add'>+    fun_l7_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n854()</div><div class='add'>+    fun_l7_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n855()</div><div class='add'>+    fun_l7_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n856()</div><div class='add'>+    fun_l7_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n857()</div><div class='add'>+    fun_l7_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n858()</div><div class='add'>+    fun_l7_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n859()</div><div class='add'>+    fun_l7_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n860()</div><div class='add'>+    fun_l7_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n861()</div><div class='add'>+    fun_l7_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n862()</div><div class='add'>+    fun_l7_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n863()</div><div class='add'>+    fun_l7_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n864()</div><div class='add'>+    fun_l7_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n865()</div><div class='add'>+    fun_l7_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n866()</div><div class='add'>+    fun_l7_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n867()</div><div class='add'>+    fun_l7_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n868()</div><div class='add'>+    fun_l7_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n869()</div><div class='add'>+    fun_l7_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n870()</div><div class='add'>+    fun_l7_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n871()</div><div class='add'>+    fun_l7_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n872()</div><div class='add'>+    fun_l7_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n873()</div><div class='add'>+    fun_l7_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n874()</div><div class='add'>+    fun_l7_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n875()</div><div class='add'>+    fun_l7_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n876()</div><div class='add'>+    fun_l7_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n877()</div><div class='add'>+    fun_l7_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n878()</div><div class='add'>+    fun_l7_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n879()</div><div class='add'>+    fun_l7_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n880()</div><div class='add'>+    fun_l7_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n881()</div><div class='add'>+    fun_l7_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n882()</div><div class='add'>+    fun_l7_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n883()</div><div class='add'>+    fun_l7_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n884()</div><div class='add'>+    fun_l7_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n885()</div><div class='add'>+    fun_l7_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n886()</div><div class='add'>+    fun_l7_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n887()</div><div class='add'>+    fun_l7_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n888()</div><div class='add'>+    fun_l7_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n889()</div><div class='add'>+    fun_l7_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n890()</div><div class='add'>+    fun_l7_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n891()</div><div class='add'>+    fun_l7_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n892()</div><div class='add'>+    fun_l7_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n893()</div><div class='add'>+    fun_l7_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n894()</div><div class='add'>+    fun_l7_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n895()</div><div class='add'>+    fun_l7_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n896()</div><div class='add'>+    fun_l7_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n897()</div><div class='add'>+    fun_l7_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n898()</div><div class='add'>+    fun_l7_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n899()</div><div class='add'>+    fun_l7_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n900()</div><div class='add'>+    fun_l7_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n901()</div><div class='add'>+    fun_l7_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n902()</div><div class='add'>+    fun_l7_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n903()</div><div class='add'>+    fun_l7_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n904()</div><div class='add'>+    fun_l7_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n905()</div><div class='add'>+    fun_l7_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n906()</div><div class='add'>+    fun_l7_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n907()</div><div class='add'>+    fun_l7_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n908()</div><div class='add'>+    fun_l7_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n909()</div><div class='add'>+    fun_l7_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n910()</div><div class='add'>+    fun_l7_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n911()</div><div class='add'>+    fun_l7_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n912()</div><div class='add'>+    fun_l7_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n913()</div><div class='add'>+    fun_l7_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n914()</div><div class='add'>+    fun_l7_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n915()</div><div class='add'>+    fun_l7_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n916()</div><div class='add'>+    fun_l7_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n917()</div><div class='add'>+    fun_l7_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n918()</div><div class='add'>+    fun_l7_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n919()</div><div class='add'>+    fun_l7_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n920()</div><div class='add'>+    fun_l7_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n921()</div><div class='add'>+    fun_l7_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n922()</div><div class='add'>+    fun_l7_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n923()</div><div class='add'>+    fun_l7_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n924()</div><div class='add'>+    fun_l7_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n925()</div><div class='add'>+    fun_l7_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n926()</div><div class='add'>+    fun_l7_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n927()</div><div class='add'>+    fun_l7_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n928()</div><div class='add'>+    fun_l7_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n929()</div><div class='add'>+    fun_l7_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n930()</div><div class='add'>+    fun_l7_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n931()</div><div class='add'>+    fun_l7_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n932()</div><div class='add'>+    fun_l7_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n933()</div><div class='add'>+    fun_l7_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n934()</div><div class='add'>+    fun_l7_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n935()</div><div class='add'>+    fun_l7_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n936()</div><div class='add'>+    fun_l7_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n937()</div><div class='add'>+    fun_l7_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n938()</div><div class='add'>+    fun_l7_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n939()</div><div class='add'>+    fun_l7_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n940()</div><div class='add'>+    fun_l7_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n941()</div><div class='add'>+    fun_l7_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n942()</div><div class='add'>+    fun_l7_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n943()</div><div class='add'>+    fun_l7_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n944()</div><div class='add'>+    fun_l7_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n945()</div><div class='add'>+    fun_l7_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n946()</div><div class='add'>+    fun_l7_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n947()</div><div class='add'>+    fun_l7_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n948()</div><div class='add'>+    fun_l7_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n949()</div><div class='add'>+    fun_l7_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n950()</div><div class='add'>+    fun_l7_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n951()</div><div class='add'>+    fun_l7_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n952()</div><div class='add'>+    fun_l7_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n953()</div><div class='add'>+    fun_l7_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n954()</div><div class='add'>+    fun_l7_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n955()</div><div class='add'>+    fun_l7_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n956()</div><div class='add'>+    fun_l7_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n957()</div><div class='add'>+    fun_l7_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n958()</div><div class='add'>+    fun_l7_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n959()</div><div class='add'>+    fun_l7_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n960()</div><div class='add'>+    fun_l7_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n961()</div><div class='add'>+    fun_l7_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n962()</div><div class='add'>+    fun_l7_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n963()</div><div class='add'>+    fun_l7_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n964()</div><div class='add'>+    fun_l7_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n965()</div><div class='add'>+    fun_l7_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n966()</div><div class='add'>+    fun_l7_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n967()</div><div class='add'>+    fun_l7_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n968()</div><div class='add'>+    fun_l7_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n969()</div><div class='add'>+    fun_l7_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n970()</div><div class='add'>+    fun_l7_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n971()</div><div class='add'>+    fun_l7_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n972()</div><div class='add'>+    fun_l7_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n973()</div><div class='add'>+    fun_l7_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n974()</div><div class='add'>+    fun_l7_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n975()</div><div class='add'>+    fun_l7_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n976()</div><div class='add'>+    fun_l7_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n977()</div><div class='add'>+    fun_l7_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n978()</div><div class='add'>+    fun_l7_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n979()</div><div class='add'>+    fun_l7_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n980()</div><div class='add'>+    fun_l7_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n981()</div><div class='add'>+    fun_l7_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n982()</div><div class='add'>+    fun_l7_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n983()</div><div class='add'>+    fun_l7_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n984()</div><div class='add'>+    fun_l7_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n985()</div><div class='add'>+    fun_l7_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n986()</div><div class='add'>+    fun_l7_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n987()</div><div class='add'>+    fun_l7_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n988()</div><div class='add'>+    fun_l7_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n989()</div><div class='add'>+    fun_l7_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n990()</div><div class='add'>+    fun_l7_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n991()</div><div class='add'>+    fun_l7_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n992()</div><div class='add'>+    fun_l7_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n993()</div><div class='add'>+    fun_l7_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n994()</div><div class='add'>+    fun_l7_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n995()</div><div class='add'>+    fun_l7_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n996()</div><div class='add'>+    fun_l7_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n997()</div><div class='add'>+    fun_l7_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n998()</div><div class='add'>+    fun_l7_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l6_n999()</div><div class='add'>+    fun_l7_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n0()</div><div class='add'>+    fun_l8_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n1()</div><div class='add'>+    fun_l8_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n2()</div><div class='add'>+    fun_l8_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n3()</div><div class='add'>+    fun_l8_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n4()</div><div class='add'>+    fun_l8_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n5()</div><div class='add'>+    fun_l8_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n6()</div><div class='add'>+    fun_l8_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n7()</div><div class='add'>+    fun_l8_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n8()</div><div class='add'>+    fun_l8_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n9()</div><div class='add'>+    fun_l8_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n10()</div><div class='add'>+    fun_l8_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n11()</div><div class='add'>+    fun_l8_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n12()</div><div class='add'>+    fun_l8_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n13()</div><div class='add'>+    fun_l8_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n14()</div><div class='add'>+    fun_l8_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n15()</div><div class='add'>+    fun_l8_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n16()</div><div class='add'>+    fun_l8_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n17()</div><div class='add'>+    fun_l8_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n18()</div><div class='add'>+    fun_l8_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n19()</div><div class='add'>+    fun_l8_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n20()</div><div class='add'>+    fun_l8_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n21()</div><div class='add'>+    fun_l8_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n22()</div><div class='add'>+    fun_l8_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n23()</div><div class='add'>+    fun_l8_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n24()</div><div class='add'>+    fun_l8_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n25()</div><div class='add'>+    fun_l8_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n26()</div><div class='add'>+    fun_l8_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n27()</div><div class='add'>+    fun_l8_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n28()</div><div class='add'>+    fun_l8_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n29()</div><div class='add'>+    fun_l8_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n30()</div><div class='add'>+    fun_l8_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n31()</div><div class='add'>+    fun_l8_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n32()</div><div class='add'>+    fun_l8_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n33()</div><div class='add'>+    fun_l8_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n34()</div><div class='add'>+    fun_l8_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n35()</div><div class='add'>+    fun_l8_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n36()</div><div class='add'>+    fun_l8_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n37()</div><div class='add'>+    fun_l8_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n38()</div><div class='add'>+    fun_l8_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n39()</div><div class='add'>+    fun_l8_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n40()</div><div class='add'>+    fun_l8_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n41()</div><div class='add'>+    fun_l8_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n42()</div><div class='add'>+    fun_l8_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n43()</div><div class='add'>+    fun_l8_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n44()</div><div class='add'>+    fun_l8_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n45()</div><div class='add'>+    fun_l8_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n46()</div><div class='add'>+    fun_l8_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n47()</div><div class='add'>+    fun_l8_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n48()</div><div class='add'>+    fun_l8_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n49()</div><div class='add'>+    fun_l8_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n50()</div><div class='add'>+    fun_l8_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n51()</div><div class='add'>+    fun_l8_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n52()</div><div class='add'>+    fun_l8_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n53()</div><div class='add'>+    fun_l8_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n54()</div><div class='add'>+    fun_l8_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n55()</div><div class='add'>+    fun_l8_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n56()</div><div class='add'>+    fun_l8_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n57()</div><div class='add'>+    fun_l8_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n58()</div><div class='add'>+    fun_l8_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n59()</div><div class='add'>+    fun_l8_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n60()</div><div class='add'>+    fun_l8_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n61()</div><div class='add'>+    fun_l8_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n62()</div><div class='add'>+    fun_l8_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n63()</div><div class='add'>+    fun_l8_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n64()</div><div class='add'>+    fun_l8_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n65()</div><div class='add'>+    fun_l8_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n66()</div><div class='add'>+    fun_l8_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n67()</div><div class='add'>+    fun_l8_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n68()</div><div class='add'>+    fun_l8_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n69()</div><div class='add'>+    fun_l8_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n70()</div><div class='add'>+    fun_l8_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n71()</div><div class='add'>+    fun_l8_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n72()</div><div class='add'>+    fun_l8_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n73()</div><div class='add'>+    fun_l8_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n74()</div><div class='add'>+    fun_l8_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n75()</div><div class='add'>+    fun_l8_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n76()</div><div class='add'>+    fun_l8_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n77()</div><div class='add'>+    fun_l8_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n78()</div><div class='add'>+    fun_l8_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n79()</div><div class='add'>+    fun_l8_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n80()</div><div class='add'>+    fun_l8_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n81()</div><div class='add'>+    fun_l8_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n82()</div><div class='add'>+    fun_l8_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n83()</div><div class='add'>+    fun_l8_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n84()</div><div class='add'>+    fun_l8_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n85()</div><div class='add'>+    fun_l8_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n86()</div><div class='add'>+    fun_l8_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n87()</div><div class='add'>+    fun_l8_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n88()</div><div class='add'>+    fun_l8_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n89()</div><div class='add'>+    fun_l8_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n90()</div><div class='add'>+    fun_l8_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n91()</div><div class='add'>+    fun_l8_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n92()</div><div class='add'>+    fun_l8_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n93()</div><div class='add'>+    fun_l8_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n94()</div><div class='add'>+    fun_l8_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n95()</div><div class='add'>+    fun_l8_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n96()</div><div class='add'>+    fun_l8_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n97()</div><div class='add'>+    fun_l8_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n98()</div><div class='add'>+    fun_l8_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n99()</div><div class='add'>+    fun_l8_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n100()</div><div class='add'>+    fun_l8_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n101()</div><div class='add'>+    fun_l8_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n102()</div><div class='add'>+    fun_l8_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n103()</div><div class='add'>+    fun_l8_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n104()</div><div class='add'>+    fun_l8_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n105()</div><div class='add'>+    fun_l8_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n106()</div><div class='add'>+    fun_l8_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n107()</div><div class='add'>+    fun_l8_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n108()</div><div class='add'>+    fun_l8_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n109()</div><div class='add'>+    fun_l8_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n110()</div><div class='add'>+    fun_l8_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n111()</div><div class='add'>+    fun_l8_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n112()</div><div class='add'>+    fun_l8_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n113()</div><div class='add'>+    fun_l8_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n114()</div><div class='add'>+    fun_l8_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n115()</div><div class='add'>+    fun_l8_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n116()</div><div class='add'>+    fun_l8_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n117()</div><div class='add'>+    fun_l8_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n118()</div><div class='add'>+    fun_l8_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n119()</div><div class='add'>+    fun_l8_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n120()</div><div class='add'>+    fun_l8_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n121()</div><div class='add'>+    fun_l8_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n122()</div><div class='add'>+    fun_l8_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n123()</div><div class='add'>+    fun_l8_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n124()</div><div class='add'>+    fun_l8_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n125()</div><div class='add'>+    fun_l8_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n126()</div><div class='add'>+    fun_l8_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n127()</div><div class='add'>+    fun_l8_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n128()</div><div class='add'>+    fun_l8_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n129()</div><div class='add'>+    fun_l8_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n130()</div><div class='add'>+    fun_l8_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n131()</div><div class='add'>+    fun_l8_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n132()</div><div class='add'>+    fun_l8_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n133()</div><div class='add'>+    fun_l8_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n134()</div><div class='add'>+    fun_l8_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n135()</div><div class='add'>+    fun_l8_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n136()</div><div class='add'>+    fun_l8_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n137()</div><div class='add'>+    fun_l8_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n138()</div><div class='add'>+    fun_l8_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n139()</div><div class='add'>+    fun_l8_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n140()</div><div class='add'>+    fun_l8_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n141()</div><div class='add'>+    fun_l8_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n142()</div><div class='add'>+    fun_l8_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n143()</div><div class='add'>+    fun_l8_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n144()</div><div class='add'>+    fun_l8_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n145()</div><div class='add'>+    fun_l8_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n146()</div><div class='add'>+    fun_l8_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n147()</div><div class='add'>+    fun_l8_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n148()</div><div class='add'>+    fun_l8_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n149()</div><div class='add'>+    fun_l8_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n150()</div><div class='add'>+    fun_l8_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n151()</div><div class='add'>+    fun_l8_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n152()</div><div class='add'>+    fun_l8_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n153()</div><div class='add'>+    fun_l8_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n154()</div><div class='add'>+    fun_l8_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n155()</div><div class='add'>+    fun_l8_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n156()</div><div class='add'>+    fun_l8_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n157()</div><div class='add'>+    fun_l8_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n158()</div><div class='add'>+    fun_l8_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n159()</div><div class='add'>+    fun_l8_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n160()</div><div class='add'>+    fun_l8_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n161()</div><div class='add'>+    fun_l8_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n162()</div><div class='add'>+    fun_l8_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n163()</div><div class='add'>+    fun_l8_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n164()</div><div class='add'>+    fun_l8_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n165()</div><div class='add'>+    fun_l8_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n166()</div><div class='add'>+    fun_l8_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n167()</div><div class='add'>+    fun_l8_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n168()</div><div class='add'>+    fun_l8_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n169()</div><div class='add'>+    fun_l8_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n170()</div><div class='add'>+    fun_l8_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n171()</div><div class='add'>+    fun_l8_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n172()</div><div class='add'>+    fun_l8_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n173()</div><div class='add'>+    fun_l8_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n174()</div><div class='add'>+    fun_l8_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n175()</div><div class='add'>+    fun_l8_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n176()</div><div class='add'>+    fun_l8_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n177()</div><div class='add'>+    fun_l8_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n178()</div><div class='add'>+    fun_l8_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n179()</div><div class='add'>+    fun_l8_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n180()</div><div class='add'>+    fun_l8_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n181()</div><div class='add'>+    fun_l8_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n182()</div><div class='add'>+    fun_l8_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n183()</div><div class='add'>+    fun_l8_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n184()</div><div class='add'>+    fun_l8_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n185()</div><div class='add'>+    fun_l8_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n186()</div><div class='add'>+    fun_l8_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n187()</div><div class='add'>+    fun_l8_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n188()</div><div class='add'>+    fun_l8_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n189()</div><div class='add'>+    fun_l8_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n190()</div><div class='add'>+    fun_l8_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n191()</div><div class='add'>+    fun_l8_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n192()</div><div class='add'>+    fun_l8_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n193()</div><div class='add'>+    fun_l8_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n194()</div><div class='add'>+    fun_l8_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n195()</div><div class='add'>+    fun_l8_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n196()</div><div class='add'>+    fun_l8_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n197()</div><div class='add'>+    fun_l8_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n198()</div><div class='add'>+    fun_l8_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n199()</div><div class='add'>+    fun_l8_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n200()</div><div class='add'>+    fun_l8_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n201()</div><div class='add'>+    fun_l8_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n202()</div><div class='add'>+    fun_l8_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n203()</div><div class='add'>+    fun_l8_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n204()</div><div class='add'>+    fun_l8_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n205()</div><div class='add'>+    fun_l8_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n206()</div><div class='add'>+    fun_l8_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n207()</div><div class='add'>+    fun_l8_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n208()</div><div class='add'>+    fun_l8_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n209()</div><div class='add'>+    fun_l8_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n210()</div><div class='add'>+    fun_l8_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n211()</div><div class='add'>+    fun_l8_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n212()</div><div class='add'>+    fun_l8_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n213()</div><div class='add'>+    fun_l8_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n214()</div><div class='add'>+    fun_l8_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n215()</div><div class='add'>+    fun_l8_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n216()</div><div class='add'>+    fun_l8_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n217()</div><div class='add'>+    fun_l8_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n218()</div><div class='add'>+    fun_l8_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n219()</div><div class='add'>+    fun_l8_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n220()</div><div class='add'>+    fun_l8_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n221()</div><div class='add'>+    fun_l8_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n222()</div><div class='add'>+    fun_l8_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n223()</div><div class='add'>+    fun_l8_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n224()</div><div class='add'>+    fun_l8_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n225()</div><div class='add'>+    fun_l8_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n226()</div><div class='add'>+    fun_l8_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n227()</div><div class='add'>+    fun_l8_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n228()</div><div class='add'>+    fun_l8_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n229()</div><div class='add'>+    fun_l8_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n230()</div><div class='add'>+    fun_l8_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n231()</div><div class='add'>+    fun_l8_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n232()</div><div class='add'>+    fun_l8_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n233()</div><div class='add'>+    fun_l8_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n234()</div><div class='add'>+    fun_l8_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n235()</div><div class='add'>+    fun_l8_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n236()</div><div class='add'>+    fun_l8_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n237()</div><div class='add'>+    fun_l8_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n238()</div><div class='add'>+    fun_l8_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n239()</div><div class='add'>+    fun_l8_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n240()</div><div class='add'>+    fun_l8_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n241()</div><div class='add'>+    fun_l8_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n242()</div><div class='add'>+    fun_l8_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n243()</div><div class='add'>+    fun_l8_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n244()</div><div class='add'>+    fun_l8_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n245()</div><div class='add'>+    fun_l8_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n246()</div><div class='add'>+    fun_l8_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n247()</div><div class='add'>+    fun_l8_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n248()</div><div class='add'>+    fun_l8_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n249()</div><div class='add'>+    fun_l8_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n250()</div><div class='add'>+    fun_l8_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n251()</div><div class='add'>+    fun_l8_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n252()</div><div class='add'>+    fun_l8_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n253()</div><div class='add'>+    fun_l8_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n254()</div><div class='add'>+    fun_l8_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n255()</div><div class='add'>+    fun_l8_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n256()</div><div class='add'>+    fun_l8_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n257()</div><div class='add'>+    fun_l8_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n258()</div><div class='add'>+    fun_l8_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n259()</div><div class='add'>+    fun_l8_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n260()</div><div class='add'>+    fun_l8_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n261()</div><div class='add'>+    fun_l8_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n262()</div><div class='add'>+    fun_l8_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n263()</div><div class='add'>+    fun_l8_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n264()</div><div class='add'>+    fun_l8_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n265()</div><div class='add'>+    fun_l8_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n266()</div><div class='add'>+    fun_l8_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n267()</div><div class='add'>+    fun_l8_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n268()</div><div class='add'>+    fun_l8_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n269()</div><div class='add'>+    fun_l8_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n270()</div><div class='add'>+    fun_l8_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n271()</div><div class='add'>+    fun_l8_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n272()</div><div class='add'>+    fun_l8_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n273()</div><div class='add'>+    fun_l8_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n274()</div><div class='add'>+    fun_l8_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n275()</div><div class='add'>+    fun_l8_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n276()</div><div class='add'>+    fun_l8_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n277()</div><div class='add'>+    fun_l8_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n278()</div><div class='add'>+    fun_l8_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n279()</div><div class='add'>+    fun_l8_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n280()</div><div class='add'>+    fun_l8_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n281()</div><div class='add'>+    fun_l8_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n282()</div><div class='add'>+    fun_l8_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n283()</div><div class='add'>+    fun_l8_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n284()</div><div class='add'>+    fun_l8_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n285()</div><div class='add'>+    fun_l8_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n286()</div><div class='add'>+    fun_l8_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n287()</div><div class='add'>+    fun_l8_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n288()</div><div class='add'>+    fun_l8_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n289()</div><div class='add'>+    fun_l8_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n290()</div><div class='add'>+    fun_l8_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n291()</div><div class='add'>+    fun_l8_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n292()</div><div class='add'>+    fun_l8_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n293()</div><div class='add'>+    fun_l8_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n294()</div><div class='add'>+    fun_l8_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n295()</div><div class='add'>+    fun_l8_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n296()</div><div class='add'>+    fun_l8_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n297()</div><div class='add'>+    fun_l8_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n298()</div><div class='add'>+    fun_l8_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n299()</div><div class='add'>+    fun_l8_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n300()</div><div class='add'>+    fun_l8_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n301()</div><div class='add'>+    fun_l8_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n302()</div><div class='add'>+    fun_l8_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n303()</div><div class='add'>+    fun_l8_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n304()</div><div class='add'>+    fun_l8_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n305()</div><div class='add'>+    fun_l8_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n306()</div><div class='add'>+    fun_l8_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n307()</div><div class='add'>+    fun_l8_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n308()</div><div class='add'>+    fun_l8_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n309()</div><div class='add'>+    fun_l8_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n310()</div><div class='add'>+    fun_l8_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n311()</div><div class='add'>+    fun_l8_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n312()</div><div class='add'>+    fun_l8_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n313()</div><div class='add'>+    fun_l8_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n314()</div><div class='add'>+    fun_l8_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n315()</div><div class='add'>+    fun_l8_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n316()</div><div class='add'>+    fun_l8_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n317()</div><div class='add'>+    fun_l8_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n318()</div><div class='add'>+    fun_l8_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n319()</div><div class='add'>+    fun_l8_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n320()</div><div class='add'>+    fun_l8_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n321()</div><div class='add'>+    fun_l8_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n322()</div><div class='add'>+    fun_l8_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n323()</div><div class='add'>+    fun_l8_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n324()</div><div class='add'>+    fun_l8_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n325()</div><div class='add'>+    fun_l8_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n326()</div><div class='add'>+    fun_l8_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n327()</div><div class='add'>+    fun_l8_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n328()</div><div class='add'>+    fun_l8_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n329()</div><div class='add'>+    fun_l8_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n330()</div><div class='add'>+    fun_l8_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n331()</div><div class='add'>+    fun_l8_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n332()</div><div class='add'>+    fun_l8_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n333()</div><div class='add'>+    fun_l8_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n334()</div><div class='add'>+    fun_l8_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n335()</div><div class='add'>+    fun_l8_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n336()</div><div class='add'>+    fun_l8_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n337()</div><div class='add'>+    fun_l8_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n338()</div><div class='add'>+    fun_l8_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n339()</div><div class='add'>+    fun_l8_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n340()</div><div class='add'>+    fun_l8_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n341()</div><div class='add'>+    fun_l8_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n342()</div><div class='add'>+    fun_l8_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n343()</div><div class='add'>+    fun_l8_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n344()</div><div class='add'>+    fun_l8_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n345()</div><div class='add'>+    fun_l8_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n346()</div><div class='add'>+    fun_l8_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n347()</div><div class='add'>+    fun_l8_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n348()</div><div class='add'>+    fun_l8_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n349()</div><div class='add'>+    fun_l8_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n350()</div><div class='add'>+    fun_l8_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n351()</div><div class='add'>+    fun_l8_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n352()</div><div class='add'>+    fun_l8_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n353()</div><div class='add'>+    fun_l8_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n354()</div><div class='add'>+    fun_l8_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n355()</div><div class='add'>+    fun_l8_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n356()</div><div class='add'>+    fun_l8_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n357()</div><div class='add'>+    fun_l8_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n358()</div><div class='add'>+    fun_l8_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n359()</div><div class='add'>+    fun_l8_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n360()</div><div class='add'>+    fun_l8_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n361()</div><div class='add'>+    fun_l8_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n362()</div><div class='add'>+    fun_l8_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n363()</div><div class='add'>+    fun_l8_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n364()</div><div class='add'>+    fun_l8_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n365()</div><div class='add'>+    fun_l8_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n366()</div><div class='add'>+    fun_l8_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n367()</div><div class='add'>+    fun_l8_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n368()</div><div class='add'>+    fun_l8_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n369()</div><div class='add'>+    fun_l8_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n370()</div><div class='add'>+    fun_l8_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n371()</div><div class='add'>+    fun_l8_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n372()</div><div class='add'>+    fun_l8_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n373()</div><div class='add'>+    fun_l8_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n374()</div><div class='add'>+    fun_l8_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n375()</div><div class='add'>+    fun_l8_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n376()</div><div class='add'>+    fun_l8_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n377()</div><div class='add'>+    fun_l8_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n378()</div><div class='add'>+    fun_l8_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n379()</div><div class='add'>+    fun_l8_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n380()</div><div class='add'>+    fun_l8_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n381()</div><div class='add'>+    fun_l8_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n382()</div><div class='add'>+    fun_l8_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n383()</div><div class='add'>+    fun_l8_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n384()</div><div class='add'>+    fun_l8_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n385()</div><div class='add'>+    fun_l8_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n386()</div><div class='add'>+    fun_l8_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n387()</div><div class='add'>+    fun_l8_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n388()</div><div class='add'>+    fun_l8_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n389()</div><div class='add'>+    fun_l8_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n390()</div><div class='add'>+    fun_l8_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n391()</div><div class='add'>+    fun_l8_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n392()</div><div class='add'>+    fun_l8_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n393()</div><div class='add'>+    fun_l8_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n394()</div><div class='add'>+    fun_l8_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n395()</div><div class='add'>+    fun_l8_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n396()</div><div class='add'>+    fun_l8_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n397()</div><div class='add'>+    fun_l8_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n398()</div><div class='add'>+    fun_l8_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n399()</div><div class='add'>+    fun_l8_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n400()</div><div class='add'>+    fun_l8_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n401()</div><div class='add'>+    fun_l8_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n402()</div><div class='add'>+    fun_l8_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n403()</div><div class='add'>+    fun_l8_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n404()</div><div class='add'>+    fun_l8_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n405()</div><div class='add'>+    fun_l8_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n406()</div><div class='add'>+    fun_l8_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n407()</div><div class='add'>+    fun_l8_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n408()</div><div class='add'>+    fun_l8_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n409()</div><div class='add'>+    fun_l8_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n410()</div><div class='add'>+    fun_l8_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n411()</div><div class='add'>+    fun_l8_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n412()</div><div class='add'>+    fun_l8_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n413()</div><div class='add'>+    fun_l8_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n414()</div><div class='add'>+    fun_l8_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n415()</div><div class='add'>+    fun_l8_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n416()</div><div class='add'>+    fun_l8_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n417()</div><div class='add'>+    fun_l8_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n418()</div><div class='add'>+    fun_l8_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n419()</div><div class='add'>+    fun_l8_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n420()</div><div class='add'>+    fun_l8_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n421()</div><div class='add'>+    fun_l8_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n422()</div><div class='add'>+    fun_l8_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n423()</div><div class='add'>+    fun_l8_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n424()</div><div class='add'>+    fun_l8_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n425()</div><div class='add'>+    fun_l8_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n426()</div><div class='add'>+    fun_l8_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n427()</div><div class='add'>+    fun_l8_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n428()</div><div class='add'>+    fun_l8_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n429()</div><div class='add'>+    fun_l8_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n430()</div><div class='add'>+    fun_l8_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n431()</div><div class='add'>+    fun_l8_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n432()</div><div class='add'>+    fun_l8_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n433()</div><div class='add'>+    fun_l8_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n434()</div><div class='add'>+    fun_l8_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n435()</div><div class='add'>+    fun_l8_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n436()</div><div class='add'>+    fun_l8_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n437()</div><div class='add'>+    fun_l8_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n438()</div><div class='add'>+    fun_l8_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n439()</div><div class='add'>+    fun_l8_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n440()</div><div class='add'>+    fun_l8_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n441()</div><div class='add'>+    fun_l8_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n442()</div><div class='add'>+    fun_l8_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n443()</div><div class='add'>+    fun_l8_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n444()</div><div class='add'>+    fun_l8_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n445()</div><div class='add'>+    fun_l8_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n446()</div><div class='add'>+    fun_l8_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n447()</div><div class='add'>+    fun_l8_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n448()</div><div class='add'>+    fun_l8_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n449()</div><div class='add'>+    fun_l8_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n450()</div><div class='add'>+    fun_l8_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n451()</div><div class='add'>+    fun_l8_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n452()</div><div class='add'>+    fun_l8_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n453()</div><div class='add'>+    fun_l8_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n454()</div><div class='add'>+    fun_l8_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n455()</div><div class='add'>+    fun_l8_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n456()</div><div class='add'>+    fun_l8_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n457()</div><div class='add'>+    fun_l8_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n458()</div><div class='add'>+    fun_l8_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n459()</div><div class='add'>+    fun_l8_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n460()</div><div class='add'>+    fun_l8_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n461()</div><div class='add'>+    fun_l8_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n462()</div><div class='add'>+    fun_l8_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n463()</div><div class='add'>+    fun_l8_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n464()</div><div class='add'>+    fun_l8_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n465()</div><div class='add'>+    fun_l8_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n466()</div><div class='add'>+    fun_l8_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n467()</div><div class='add'>+    fun_l8_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n468()</div><div class='add'>+    fun_l8_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n469()</div><div class='add'>+    fun_l8_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n470()</div><div class='add'>+    fun_l8_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n471()</div><div class='add'>+    fun_l8_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n472()</div><div class='add'>+    fun_l8_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n473()</div><div class='add'>+    fun_l8_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n474()</div><div class='add'>+    fun_l8_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n475()</div><div class='add'>+    fun_l8_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n476()</div><div class='add'>+    fun_l8_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n477()</div><div class='add'>+    fun_l8_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n478()</div><div class='add'>+    fun_l8_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n479()</div><div class='add'>+    fun_l8_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n480()</div><div class='add'>+    fun_l8_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n481()</div><div class='add'>+    fun_l8_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n482()</div><div class='add'>+    fun_l8_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n483()</div><div class='add'>+    fun_l8_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n484()</div><div class='add'>+    fun_l8_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n485()</div><div class='add'>+    fun_l8_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n486()</div><div class='add'>+    fun_l8_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n487()</div><div class='add'>+    fun_l8_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n488()</div><div class='add'>+    fun_l8_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n489()</div><div class='add'>+    fun_l8_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n490()</div><div class='add'>+    fun_l8_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n491()</div><div class='add'>+    fun_l8_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n492()</div><div class='add'>+    fun_l8_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n493()</div><div class='add'>+    fun_l8_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n494()</div><div class='add'>+    fun_l8_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n495()</div><div class='add'>+    fun_l8_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n496()</div><div class='add'>+    fun_l8_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n497()</div><div class='add'>+    fun_l8_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n498()</div><div class='add'>+    fun_l8_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n499()</div><div class='add'>+    fun_l8_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n500()</div><div class='add'>+    fun_l8_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n501()</div><div class='add'>+    fun_l8_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n502()</div><div class='add'>+    fun_l8_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n503()</div><div class='add'>+    fun_l8_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n504()</div><div class='add'>+    fun_l8_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n505()</div><div class='add'>+    fun_l8_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n506()</div><div class='add'>+    fun_l8_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n507()</div><div class='add'>+    fun_l8_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n508()</div><div class='add'>+    fun_l8_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n509()</div><div class='add'>+    fun_l8_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n510()</div><div class='add'>+    fun_l8_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n511()</div><div class='add'>+    fun_l8_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n512()</div><div class='add'>+    fun_l8_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n513()</div><div class='add'>+    fun_l8_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n514()</div><div class='add'>+    fun_l8_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n515()</div><div class='add'>+    fun_l8_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n516()</div><div class='add'>+    fun_l8_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n517()</div><div class='add'>+    fun_l8_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n518()</div><div class='add'>+    fun_l8_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n519()</div><div class='add'>+    fun_l8_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n520()</div><div class='add'>+    fun_l8_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n521()</div><div class='add'>+    fun_l8_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n522()</div><div class='add'>+    fun_l8_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n523()</div><div class='add'>+    fun_l8_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n524()</div><div class='add'>+    fun_l8_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n525()</div><div class='add'>+    fun_l8_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n526()</div><div class='add'>+    fun_l8_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n527()</div><div class='add'>+    fun_l8_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n528()</div><div class='add'>+    fun_l8_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n529()</div><div class='add'>+    fun_l8_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n530()</div><div class='add'>+    fun_l8_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n531()</div><div class='add'>+    fun_l8_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n532()</div><div class='add'>+    fun_l8_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n533()</div><div class='add'>+    fun_l8_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n534()</div><div class='add'>+    fun_l8_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n535()</div><div class='add'>+    fun_l8_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n536()</div><div class='add'>+    fun_l8_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n537()</div><div class='add'>+    fun_l8_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n538()</div><div class='add'>+    fun_l8_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n539()</div><div class='add'>+    fun_l8_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n540()</div><div class='add'>+    fun_l8_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n541()</div><div class='add'>+    fun_l8_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n542()</div><div class='add'>+    fun_l8_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n543()</div><div class='add'>+    fun_l8_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n544()</div><div class='add'>+    fun_l8_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n545()</div><div class='add'>+    fun_l8_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n546()</div><div class='add'>+    fun_l8_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n547()</div><div class='add'>+    fun_l8_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n548()</div><div class='add'>+    fun_l8_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n549()</div><div class='add'>+    fun_l8_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n550()</div><div class='add'>+    fun_l8_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n551()</div><div class='add'>+    fun_l8_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n552()</div><div class='add'>+    fun_l8_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n553()</div><div class='add'>+    fun_l8_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n554()</div><div class='add'>+    fun_l8_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n555()</div><div class='add'>+    fun_l8_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n556()</div><div class='add'>+    fun_l8_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n557()</div><div class='add'>+    fun_l8_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n558()</div><div class='add'>+    fun_l8_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n559()</div><div class='add'>+    fun_l8_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n560()</div><div class='add'>+    fun_l8_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n561()</div><div class='add'>+    fun_l8_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n562()</div><div class='add'>+    fun_l8_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n563()</div><div class='add'>+    fun_l8_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n564()</div><div class='add'>+    fun_l8_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n565()</div><div class='add'>+    fun_l8_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n566()</div><div class='add'>+    fun_l8_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n567()</div><div class='add'>+    fun_l8_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n568()</div><div class='add'>+    fun_l8_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n569()</div><div class='add'>+    fun_l8_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n570()</div><div class='add'>+    fun_l8_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n571()</div><div class='add'>+    fun_l8_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n572()</div><div class='add'>+    fun_l8_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n573()</div><div class='add'>+    fun_l8_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n574()</div><div class='add'>+    fun_l8_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n575()</div><div class='add'>+    fun_l8_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n576()</div><div class='add'>+    fun_l8_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n577()</div><div class='add'>+    fun_l8_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n578()</div><div class='add'>+    fun_l8_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n579()</div><div class='add'>+    fun_l8_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n580()</div><div class='add'>+    fun_l8_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n581()</div><div class='add'>+    fun_l8_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n582()</div><div class='add'>+    fun_l8_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n583()</div><div class='add'>+    fun_l8_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n584()</div><div class='add'>+    fun_l8_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n585()</div><div class='add'>+    fun_l8_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n586()</div><div class='add'>+    fun_l8_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n587()</div><div class='add'>+    fun_l8_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n588()</div><div class='add'>+    fun_l8_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n589()</div><div class='add'>+    fun_l8_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n590()</div><div class='add'>+    fun_l8_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n591()</div><div class='add'>+    fun_l8_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n592()</div><div class='add'>+    fun_l8_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n593()</div><div class='add'>+    fun_l8_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n594()</div><div class='add'>+    fun_l8_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n595()</div><div class='add'>+    fun_l8_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n596()</div><div class='add'>+    fun_l8_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n597()</div><div class='add'>+    fun_l8_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n598()</div><div class='add'>+    fun_l8_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n599()</div><div class='add'>+    fun_l8_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n600()</div><div class='add'>+    fun_l8_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n601()</div><div class='add'>+    fun_l8_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n602()</div><div class='add'>+    fun_l8_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n603()</div><div class='add'>+    fun_l8_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n604()</div><div class='add'>+    fun_l8_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n605()</div><div class='add'>+    fun_l8_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n606()</div><div class='add'>+    fun_l8_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n607()</div><div class='add'>+    fun_l8_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n608()</div><div class='add'>+    fun_l8_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n609()</div><div class='add'>+    fun_l8_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n610()</div><div class='add'>+    fun_l8_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n611()</div><div class='add'>+    fun_l8_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n612()</div><div class='add'>+    fun_l8_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n613()</div><div class='add'>+    fun_l8_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n614()</div><div class='add'>+    fun_l8_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n615()</div><div class='add'>+    fun_l8_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n616()</div><div class='add'>+    fun_l8_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n617()</div><div class='add'>+    fun_l8_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n618()</div><div class='add'>+    fun_l8_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n619()</div><div class='add'>+    fun_l8_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n620()</div><div class='add'>+    fun_l8_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n621()</div><div class='add'>+    fun_l8_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n622()</div><div class='add'>+    fun_l8_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n623()</div><div class='add'>+    fun_l8_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n624()</div><div class='add'>+    fun_l8_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n625()</div><div class='add'>+    fun_l8_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n626()</div><div class='add'>+    fun_l8_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n627()</div><div class='add'>+    fun_l8_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n628()</div><div class='add'>+    fun_l8_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n629()</div><div class='add'>+    fun_l8_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n630()</div><div class='add'>+    fun_l8_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n631()</div><div class='add'>+    fun_l8_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n632()</div><div class='add'>+    fun_l8_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n633()</div><div class='add'>+    fun_l8_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n634()</div><div class='add'>+    fun_l8_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n635()</div><div class='add'>+    fun_l8_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n636()</div><div class='add'>+    fun_l8_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n637()</div><div class='add'>+    fun_l8_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n638()</div><div class='add'>+    fun_l8_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n639()</div><div class='add'>+    fun_l8_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n640()</div><div class='add'>+    fun_l8_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n641()</div><div class='add'>+    fun_l8_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n642()</div><div class='add'>+    fun_l8_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n643()</div><div class='add'>+    fun_l8_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n644()</div><div class='add'>+    fun_l8_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n645()</div><div class='add'>+    fun_l8_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n646()</div><div class='add'>+    fun_l8_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n647()</div><div class='add'>+    fun_l8_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n648()</div><div class='add'>+    fun_l8_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n649()</div><div class='add'>+    fun_l8_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n650()</div><div class='add'>+    fun_l8_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n651()</div><div class='add'>+    fun_l8_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n652()</div><div class='add'>+    fun_l8_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n653()</div><div class='add'>+    fun_l8_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n654()</div><div class='add'>+    fun_l8_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n655()</div><div class='add'>+    fun_l8_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n656()</div><div class='add'>+    fun_l8_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n657()</div><div class='add'>+    fun_l8_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n658()</div><div class='add'>+    fun_l8_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n659()</div><div class='add'>+    fun_l8_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n660()</div><div class='add'>+    fun_l8_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n661()</div><div class='add'>+    fun_l8_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n662()</div><div class='add'>+    fun_l8_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n663()</div><div class='add'>+    fun_l8_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n664()</div><div class='add'>+    fun_l8_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n665()</div><div class='add'>+    fun_l8_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n666()</div><div class='add'>+    fun_l8_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n667()</div><div class='add'>+    fun_l8_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n668()</div><div class='add'>+    fun_l8_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n669()</div><div class='add'>+    fun_l8_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n670()</div><div class='add'>+    fun_l8_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n671()</div><div class='add'>+    fun_l8_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n672()</div><div class='add'>+    fun_l8_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n673()</div><div class='add'>+    fun_l8_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n674()</div><div class='add'>+    fun_l8_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n675()</div><div class='add'>+    fun_l8_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n676()</div><div class='add'>+    fun_l8_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n677()</div><div class='add'>+    fun_l8_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n678()</div><div class='add'>+    fun_l8_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n679()</div><div class='add'>+    fun_l8_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n680()</div><div class='add'>+    fun_l8_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n681()</div><div class='add'>+    fun_l8_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n682()</div><div class='add'>+    fun_l8_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n683()</div><div class='add'>+    fun_l8_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n684()</div><div class='add'>+    fun_l8_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n685()</div><div class='add'>+    fun_l8_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n686()</div><div class='add'>+    fun_l8_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n687()</div><div class='add'>+    fun_l8_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n688()</div><div class='add'>+    fun_l8_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n689()</div><div class='add'>+    fun_l8_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n690()</div><div class='add'>+    fun_l8_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n691()</div><div class='add'>+    fun_l8_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n692()</div><div class='add'>+    fun_l8_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n693()</div><div class='add'>+    fun_l8_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n694()</div><div class='add'>+    fun_l8_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n695()</div><div class='add'>+    fun_l8_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n696()</div><div class='add'>+    fun_l8_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n697()</div><div class='add'>+    fun_l8_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n698()</div><div class='add'>+    fun_l8_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n699()</div><div class='add'>+    fun_l8_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n700()</div><div class='add'>+    fun_l8_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n701()</div><div class='add'>+    fun_l8_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n702()</div><div class='add'>+    fun_l8_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n703()</div><div class='add'>+    fun_l8_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n704()</div><div class='add'>+    fun_l8_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n705()</div><div class='add'>+    fun_l8_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n706()</div><div class='add'>+    fun_l8_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n707()</div><div class='add'>+    fun_l8_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n708()</div><div class='add'>+    fun_l8_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n709()</div><div class='add'>+    fun_l8_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n710()</div><div class='add'>+    fun_l8_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n711()</div><div class='add'>+    fun_l8_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n712()</div><div class='add'>+    fun_l8_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n713()</div><div class='add'>+    fun_l8_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n714()</div><div class='add'>+    fun_l8_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n715()</div><div class='add'>+    fun_l8_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n716()</div><div class='add'>+    fun_l8_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n717()</div><div class='add'>+    fun_l8_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n718()</div><div class='add'>+    fun_l8_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n719()</div><div class='add'>+    fun_l8_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n720()</div><div class='add'>+    fun_l8_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n721()</div><div class='add'>+    fun_l8_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n722()</div><div class='add'>+    fun_l8_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n723()</div><div class='add'>+    fun_l8_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n724()</div><div class='add'>+    fun_l8_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n725()</div><div class='add'>+    fun_l8_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n726()</div><div class='add'>+    fun_l8_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n727()</div><div class='add'>+    fun_l8_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n728()</div><div class='add'>+    fun_l8_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n729()</div><div class='add'>+    fun_l8_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n730()</div><div class='add'>+    fun_l8_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n731()</div><div class='add'>+    fun_l8_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n732()</div><div class='add'>+    fun_l8_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n733()</div><div class='add'>+    fun_l8_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n734()</div><div class='add'>+    fun_l8_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n735()</div><div class='add'>+    fun_l8_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n736()</div><div class='add'>+    fun_l8_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n737()</div><div class='add'>+    fun_l8_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n738()</div><div class='add'>+    fun_l8_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n739()</div><div class='add'>+    fun_l8_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n740()</div><div class='add'>+    fun_l8_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n741()</div><div class='add'>+    fun_l8_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n742()</div><div class='add'>+    fun_l8_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n743()</div><div class='add'>+    fun_l8_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n744()</div><div class='add'>+    fun_l8_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n745()</div><div class='add'>+    fun_l8_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n746()</div><div class='add'>+    fun_l8_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n747()</div><div class='add'>+    fun_l8_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n748()</div><div class='add'>+    fun_l8_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n749()</div><div class='add'>+    fun_l8_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n750()</div><div class='add'>+    fun_l8_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n751()</div><div class='add'>+    fun_l8_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n752()</div><div class='add'>+    fun_l8_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n753()</div><div class='add'>+    fun_l8_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n754()</div><div class='add'>+    fun_l8_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n755()</div><div class='add'>+    fun_l8_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n756()</div><div class='add'>+    fun_l8_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n757()</div><div class='add'>+    fun_l8_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n758()</div><div class='add'>+    fun_l8_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n759()</div><div class='add'>+    fun_l8_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n760()</div><div class='add'>+    fun_l8_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n761()</div><div class='add'>+    fun_l8_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n762()</div><div class='add'>+    fun_l8_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n763()</div><div class='add'>+    fun_l8_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n764()</div><div class='add'>+    fun_l8_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n765()</div><div class='add'>+    fun_l8_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n766()</div><div class='add'>+    fun_l8_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n767()</div><div class='add'>+    fun_l8_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n768()</div><div class='add'>+    fun_l8_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n769()</div><div class='add'>+    fun_l8_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n770()</div><div class='add'>+    fun_l8_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n771()</div><div class='add'>+    fun_l8_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n772()</div><div class='add'>+    fun_l8_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n773()</div><div class='add'>+    fun_l8_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n774()</div><div class='add'>+    fun_l8_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n775()</div><div class='add'>+    fun_l8_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n776()</div><div class='add'>+    fun_l8_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n777()</div><div class='add'>+    fun_l8_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n778()</div><div class='add'>+    fun_l8_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n779()</div><div class='add'>+    fun_l8_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n780()</div><div class='add'>+    fun_l8_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n781()</div><div class='add'>+    fun_l8_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n782()</div><div class='add'>+    fun_l8_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n783()</div><div class='add'>+    fun_l8_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n784()</div><div class='add'>+    fun_l8_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n785()</div><div class='add'>+    fun_l8_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n786()</div><div class='add'>+    fun_l8_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n787()</div><div class='add'>+    fun_l8_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n788()</div><div class='add'>+    fun_l8_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n789()</div><div class='add'>+    fun_l8_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n790()</div><div class='add'>+    fun_l8_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n791()</div><div class='add'>+    fun_l8_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n792()</div><div class='add'>+    fun_l8_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n793()</div><div class='add'>+    fun_l8_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n794()</div><div class='add'>+    fun_l8_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n795()</div><div class='add'>+    fun_l8_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n796()</div><div class='add'>+    fun_l8_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n797()</div><div class='add'>+    fun_l8_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n798()</div><div class='add'>+    fun_l8_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n799()</div><div class='add'>+    fun_l8_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n800()</div><div class='add'>+    fun_l8_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n801()</div><div class='add'>+    fun_l8_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n802()</div><div class='add'>+    fun_l8_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n803()</div><div class='add'>+    fun_l8_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n804()</div><div class='add'>+    fun_l8_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n805()</div><div class='add'>+    fun_l8_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n806()</div><div class='add'>+    fun_l8_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n807()</div><div class='add'>+    fun_l8_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n808()</div><div class='add'>+    fun_l8_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n809()</div><div class='add'>+    fun_l8_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n810()</div><div class='add'>+    fun_l8_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n811()</div><div class='add'>+    fun_l8_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n812()</div><div class='add'>+    fun_l8_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n813()</div><div class='add'>+    fun_l8_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n814()</div><div class='add'>+    fun_l8_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n815()</div><div class='add'>+    fun_l8_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n816()</div><div class='add'>+    fun_l8_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n817()</div><div class='add'>+    fun_l8_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n818()</div><div class='add'>+    fun_l8_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n819()</div><div class='add'>+    fun_l8_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n820()</div><div class='add'>+    fun_l8_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n821()</div><div class='add'>+    fun_l8_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n822()</div><div class='add'>+    fun_l8_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n823()</div><div class='add'>+    fun_l8_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n824()</div><div class='add'>+    fun_l8_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n825()</div><div class='add'>+    fun_l8_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n826()</div><div class='add'>+    fun_l8_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n827()</div><div class='add'>+    fun_l8_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n828()</div><div class='add'>+    fun_l8_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n829()</div><div class='add'>+    fun_l8_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n830()</div><div class='add'>+    fun_l8_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n831()</div><div class='add'>+    fun_l8_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n832()</div><div class='add'>+    fun_l8_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n833()</div><div class='add'>+    fun_l8_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n834()</div><div class='add'>+    fun_l8_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n835()</div><div class='add'>+    fun_l8_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n836()</div><div class='add'>+    fun_l8_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n837()</div><div class='add'>+    fun_l8_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n838()</div><div class='add'>+    fun_l8_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n839()</div><div class='add'>+    fun_l8_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n840()</div><div class='add'>+    fun_l8_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n841()</div><div class='add'>+    fun_l8_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n842()</div><div class='add'>+    fun_l8_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n843()</div><div class='add'>+    fun_l8_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n844()</div><div class='add'>+    fun_l8_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n845()</div><div class='add'>+    fun_l8_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n846()</div><div class='add'>+    fun_l8_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n847()</div><div class='add'>+    fun_l8_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n848()</div><div class='add'>+    fun_l8_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n849()</div><div class='add'>+    fun_l8_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n850()</div><div class='add'>+    fun_l8_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n851()</div><div class='add'>+    fun_l8_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n852()</div><div class='add'>+    fun_l8_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n853()</div><div class='add'>+    fun_l8_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n854()</div><div class='add'>+    fun_l8_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n855()</div><div class='add'>+    fun_l8_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n856()</div><div class='add'>+    fun_l8_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n857()</div><div class='add'>+    fun_l8_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n858()</div><div class='add'>+    fun_l8_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n859()</div><div class='add'>+    fun_l8_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n860()</div><div class='add'>+    fun_l8_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n861()</div><div class='add'>+    fun_l8_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n862()</div><div class='add'>+    fun_l8_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n863()</div><div class='add'>+    fun_l8_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n864()</div><div class='add'>+    fun_l8_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n865()</div><div class='add'>+    fun_l8_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n866()</div><div class='add'>+    fun_l8_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n867()</div><div class='add'>+    fun_l8_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n868()</div><div class='add'>+    fun_l8_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n869()</div><div class='add'>+    fun_l8_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n870()</div><div class='add'>+    fun_l8_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n871()</div><div class='add'>+    fun_l8_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n872()</div><div class='add'>+    fun_l8_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n873()</div><div class='add'>+    fun_l8_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n874()</div><div class='add'>+    fun_l8_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n875()</div><div class='add'>+    fun_l8_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n876()</div><div class='add'>+    fun_l8_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n877()</div><div class='add'>+    fun_l8_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n878()</div><div class='add'>+    fun_l8_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n879()</div><div class='add'>+    fun_l8_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n880()</div><div class='add'>+    fun_l8_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n881()</div><div class='add'>+    fun_l8_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n882()</div><div class='add'>+    fun_l8_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n883()</div><div class='add'>+    fun_l8_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n884()</div><div class='add'>+    fun_l8_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n885()</div><div class='add'>+    fun_l8_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n886()</div><div class='add'>+    fun_l8_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n887()</div><div class='add'>+    fun_l8_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n888()</div><div class='add'>+    fun_l8_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n889()</div><div class='add'>+    fun_l8_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n890()</div><div class='add'>+    fun_l8_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n891()</div><div class='add'>+    fun_l8_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n892()</div><div class='add'>+    fun_l8_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n893()</div><div class='add'>+    fun_l8_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n894()</div><div class='add'>+    fun_l8_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n895()</div><div class='add'>+    fun_l8_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n896()</div><div class='add'>+    fun_l8_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n897()</div><div class='add'>+    fun_l8_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n898()</div><div class='add'>+    fun_l8_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n899()</div><div class='add'>+    fun_l8_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n900()</div><div class='add'>+    fun_l8_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n901()</div><div class='add'>+    fun_l8_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n902()</div><div class='add'>+    fun_l8_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n903()</div><div class='add'>+    fun_l8_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n904()</div><div class='add'>+    fun_l8_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n905()</div><div class='add'>+    fun_l8_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n906()</div><div class='add'>+    fun_l8_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n907()</div><div class='add'>+    fun_l8_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n908()</div><div class='add'>+    fun_l8_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n909()</div><div class='add'>+    fun_l8_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n910()</div><div class='add'>+    fun_l8_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n911()</div><div class='add'>+    fun_l8_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n912()</div><div class='add'>+    fun_l8_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n913()</div><div class='add'>+    fun_l8_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n914()</div><div class='add'>+    fun_l8_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n915()</div><div class='add'>+    fun_l8_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n916()</div><div class='add'>+    fun_l8_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n917()</div><div class='add'>+    fun_l8_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n918()</div><div class='add'>+    fun_l8_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n919()</div><div class='add'>+    fun_l8_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n920()</div><div class='add'>+    fun_l8_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n921()</div><div class='add'>+    fun_l8_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n922()</div><div class='add'>+    fun_l8_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n923()</div><div class='add'>+    fun_l8_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n924()</div><div class='add'>+    fun_l8_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n925()</div><div class='add'>+    fun_l8_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n926()</div><div class='add'>+    fun_l8_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n927()</div><div class='add'>+    fun_l8_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n928()</div><div class='add'>+    fun_l8_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n929()</div><div class='add'>+    fun_l8_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n930()</div><div class='add'>+    fun_l8_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n931()</div><div class='add'>+    fun_l8_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n932()</div><div class='add'>+    fun_l8_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n933()</div><div class='add'>+    fun_l8_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n934()</div><div class='add'>+    fun_l8_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n935()</div><div class='add'>+    fun_l8_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n936()</div><div class='add'>+    fun_l8_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n937()</div><div class='add'>+    fun_l8_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n938()</div><div class='add'>+    fun_l8_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n939()</div><div class='add'>+    fun_l8_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n940()</div><div class='add'>+    fun_l8_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n941()</div><div class='add'>+    fun_l8_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n942()</div><div class='add'>+    fun_l8_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n943()</div><div class='add'>+    fun_l8_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n944()</div><div class='add'>+    fun_l8_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n945()</div><div class='add'>+    fun_l8_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n946()</div><div class='add'>+    fun_l8_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n947()</div><div class='add'>+    fun_l8_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n948()</div><div class='add'>+    fun_l8_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n949()</div><div class='add'>+    fun_l8_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n950()</div><div class='add'>+    fun_l8_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n951()</div><div class='add'>+    fun_l8_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n952()</div><div class='add'>+    fun_l8_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n953()</div><div class='add'>+    fun_l8_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n954()</div><div class='add'>+    fun_l8_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n955()</div><div class='add'>+    fun_l8_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n956()</div><div class='add'>+    fun_l8_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n957()</div><div class='add'>+    fun_l8_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n958()</div><div class='add'>+    fun_l8_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n959()</div><div class='add'>+    fun_l8_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n960()</div><div class='add'>+    fun_l8_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n961()</div><div class='add'>+    fun_l8_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n962()</div><div class='add'>+    fun_l8_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n963()</div><div class='add'>+    fun_l8_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n964()</div><div class='add'>+    fun_l8_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n965()</div><div class='add'>+    fun_l8_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n966()</div><div class='add'>+    fun_l8_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n967()</div><div class='add'>+    fun_l8_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n968()</div><div class='add'>+    fun_l8_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n969()</div><div class='add'>+    fun_l8_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n970()</div><div class='add'>+    fun_l8_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n971()</div><div class='add'>+    fun_l8_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n972()</div><div class='add'>+    fun_l8_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n973()</div><div class='add'>+    fun_l8_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n974()</div><div class='add'>+    fun_l8_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n975()</div><div class='add'>+    fun_l8_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n976()</div><div class='add'>+    fun_l8_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n977()</div><div class='add'>+    fun_l8_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n978()</div><div class='add'>+    fun_l8_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n979()</div><div class='add'>+    fun_l8_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n980()</div><div class='add'>+    fun_l8_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n981()</div><div class='add'>+    fun_l8_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n982()</div><div class='add'>+    fun_l8_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n983()</div><div class='add'>+    fun_l8_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n984()</div><div class='add'>+    fun_l8_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n985()</div><div class='add'>+    fun_l8_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n986()</div><div class='add'>+    fun_l8_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n987()</div><div class='add'>+    fun_l8_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n988()</div><div class='add'>+    fun_l8_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n989()</div><div class='add'>+    fun_l8_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n990()</div><div class='add'>+    fun_l8_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n991()</div><div class='add'>+    fun_l8_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n992()</div><div class='add'>+    fun_l8_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n993()</div><div class='add'>+    fun_l8_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n994()</div><div class='add'>+    fun_l8_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n995()</div><div class='add'>+    fun_l8_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n996()</div><div class='add'>+    fun_l8_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n997()</div><div class='add'>+    fun_l8_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n998()</div><div class='add'>+    fun_l8_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l7_n999()</div><div class='add'>+    fun_l8_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n0()</div><div class='add'>+    fun_l9_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n1()</div><div class='add'>+    fun_l9_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n2()</div><div class='add'>+    fun_l9_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n3()</div><div class='add'>+    fun_l9_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n4()</div><div class='add'>+    fun_l9_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n5()</div><div class='add'>+    fun_l9_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n6()</div><div class='add'>+    fun_l9_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n7()</div><div class='add'>+    fun_l9_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n8()</div><div class='add'>+    fun_l9_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n9()</div><div class='add'>+    fun_l9_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n10()</div><div class='add'>+    fun_l9_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n11()</div><div class='add'>+    fun_l9_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n12()</div><div class='add'>+    fun_l9_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n13()</div><div class='add'>+    fun_l9_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n14()</div><div class='add'>+    fun_l9_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n15()</div><div class='add'>+    fun_l9_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n16()</div><div class='add'>+    fun_l9_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n17()</div><div class='add'>+    fun_l9_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n18()</div><div class='add'>+    fun_l9_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n19()</div><div class='add'>+    fun_l9_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n20()</div><div class='add'>+    fun_l9_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n21()</div><div class='add'>+    fun_l9_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n22()</div><div class='add'>+    fun_l9_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n23()</div><div class='add'>+    fun_l9_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n24()</div><div class='add'>+    fun_l9_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n25()</div><div class='add'>+    fun_l9_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n26()</div><div class='add'>+    fun_l9_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n27()</div><div class='add'>+    fun_l9_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n28()</div><div class='add'>+    fun_l9_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n29()</div><div class='add'>+    fun_l9_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n30()</div><div class='add'>+    fun_l9_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n31()</div><div class='add'>+    fun_l9_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n32()</div><div class='add'>+    fun_l9_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n33()</div><div class='add'>+    fun_l9_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n34()</div><div class='add'>+    fun_l9_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n35()</div><div class='add'>+    fun_l9_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n36()</div><div class='add'>+    fun_l9_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n37()</div><div class='add'>+    fun_l9_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n38()</div><div class='add'>+    fun_l9_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n39()</div><div class='add'>+    fun_l9_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n40()</div><div class='add'>+    fun_l9_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n41()</div><div class='add'>+    fun_l9_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n42()</div><div class='add'>+    fun_l9_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n43()</div><div class='add'>+    fun_l9_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n44()</div><div class='add'>+    fun_l9_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n45()</div><div class='add'>+    fun_l9_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n46()</div><div class='add'>+    fun_l9_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n47()</div><div class='add'>+    fun_l9_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n48()</div><div class='add'>+    fun_l9_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n49()</div><div class='add'>+    fun_l9_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n50()</div><div class='add'>+    fun_l9_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n51()</div><div class='add'>+    fun_l9_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n52()</div><div class='add'>+    fun_l9_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n53()</div><div class='add'>+    fun_l9_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n54()</div><div class='add'>+    fun_l9_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n55()</div><div class='add'>+    fun_l9_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n56()</div><div class='add'>+    fun_l9_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n57()</div><div class='add'>+    fun_l9_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n58()</div><div class='add'>+    fun_l9_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n59()</div><div class='add'>+    fun_l9_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n60()</div><div class='add'>+    fun_l9_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n61()</div><div class='add'>+    fun_l9_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n62()</div><div class='add'>+    fun_l9_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n63()</div><div class='add'>+    fun_l9_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n64()</div><div class='add'>+    fun_l9_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n65()</div><div class='add'>+    fun_l9_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n66()</div><div class='add'>+    fun_l9_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n67()</div><div class='add'>+    fun_l9_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n68()</div><div class='add'>+    fun_l9_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n69()</div><div class='add'>+    fun_l9_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n70()</div><div class='add'>+    fun_l9_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n71()</div><div class='add'>+    fun_l9_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n72()</div><div class='add'>+    fun_l9_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n73()</div><div class='add'>+    fun_l9_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n74()</div><div class='add'>+    fun_l9_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n75()</div><div class='add'>+    fun_l9_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n76()</div><div class='add'>+    fun_l9_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n77()</div><div class='add'>+    fun_l9_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n78()</div><div class='add'>+    fun_l9_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n79()</div><div class='add'>+    fun_l9_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n80()</div><div class='add'>+    fun_l9_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n81()</div><div class='add'>+    fun_l9_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n82()</div><div class='add'>+    fun_l9_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n83()</div><div class='add'>+    fun_l9_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n84()</div><div class='add'>+    fun_l9_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n85()</div><div class='add'>+    fun_l9_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n86()</div><div class='add'>+    fun_l9_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n87()</div><div class='add'>+    fun_l9_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n88()</div><div class='add'>+    fun_l9_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n89()</div><div class='add'>+    fun_l9_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n90()</div><div class='add'>+    fun_l9_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n91()</div><div class='add'>+    fun_l9_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n92()</div><div class='add'>+    fun_l9_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n93()</div><div class='add'>+    fun_l9_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n94()</div><div class='add'>+    fun_l9_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n95()</div><div class='add'>+    fun_l9_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n96()</div><div class='add'>+    fun_l9_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n97()</div><div class='add'>+    fun_l9_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n98()</div><div class='add'>+    fun_l9_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n99()</div><div class='add'>+    fun_l9_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n100()</div><div class='add'>+    fun_l9_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n101()</div><div class='add'>+    fun_l9_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n102()</div><div class='add'>+    fun_l9_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n103()</div><div class='add'>+    fun_l9_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n104()</div><div class='add'>+    fun_l9_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n105()</div><div class='add'>+    fun_l9_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n106()</div><div class='add'>+    fun_l9_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n107()</div><div class='add'>+    fun_l9_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n108()</div><div class='add'>+    fun_l9_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n109()</div><div class='add'>+    fun_l9_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n110()</div><div class='add'>+    fun_l9_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n111()</div><div class='add'>+    fun_l9_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n112()</div><div class='add'>+    fun_l9_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n113()</div><div class='add'>+    fun_l9_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n114()</div><div class='add'>+    fun_l9_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n115()</div><div class='add'>+    fun_l9_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n116()</div><div class='add'>+    fun_l9_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n117()</div><div class='add'>+    fun_l9_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n118()</div><div class='add'>+    fun_l9_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n119()</div><div class='add'>+    fun_l9_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n120()</div><div class='add'>+    fun_l9_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n121()</div><div class='add'>+    fun_l9_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n122()</div><div class='add'>+    fun_l9_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n123()</div><div class='add'>+    fun_l9_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n124()</div><div class='add'>+    fun_l9_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n125()</div><div class='add'>+    fun_l9_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n126()</div><div class='add'>+    fun_l9_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n127()</div><div class='add'>+    fun_l9_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n128()</div><div class='add'>+    fun_l9_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n129()</div><div class='add'>+    fun_l9_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n130()</div><div class='add'>+    fun_l9_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n131()</div><div class='add'>+    fun_l9_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n132()</div><div class='add'>+    fun_l9_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n133()</div><div class='add'>+    fun_l9_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n134()</div><div class='add'>+    fun_l9_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n135()</div><div class='add'>+    fun_l9_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n136()</div><div class='add'>+    fun_l9_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n137()</div><div class='add'>+    fun_l9_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n138()</div><div class='add'>+    fun_l9_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n139()</div><div class='add'>+    fun_l9_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n140()</div><div class='add'>+    fun_l9_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n141()</div><div class='add'>+    fun_l9_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n142()</div><div class='add'>+    fun_l9_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n143()</div><div class='add'>+    fun_l9_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n144()</div><div class='add'>+    fun_l9_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n145()</div><div class='add'>+    fun_l9_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n146()</div><div class='add'>+    fun_l9_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n147()</div><div class='add'>+    fun_l9_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n148()</div><div class='add'>+    fun_l9_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n149()</div><div class='add'>+    fun_l9_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n150()</div><div class='add'>+    fun_l9_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n151()</div><div class='add'>+    fun_l9_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n152()</div><div class='add'>+    fun_l9_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n153()</div><div class='add'>+    fun_l9_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n154()</div><div class='add'>+    fun_l9_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n155()</div><div class='add'>+    fun_l9_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n156()</div><div class='add'>+    fun_l9_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n157()</div><div class='add'>+    fun_l9_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n158()</div><div class='add'>+    fun_l9_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n159()</div><div class='add'>+    fun_l9_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n160()</div><div class='add'>+    fun_l9_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n161()</div><div class='add'>+    fun_l9_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n162()</div><div class='add'>+    fun_l9_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n163()</div><div class='add'>+    fun_l9_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n164()</div><div class='add'>+    fun_l9_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n165()</div><div class='add'>+    fun_l9_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n166()</div><div class='add'>+    fun_l9_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n167()</div><div class='add'>+    fun_l9_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n168()</div><div class='add'>+    fun_l9_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n169()</div><div class='add'>+    fun_l9_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n170()</div><div class='add'>+    fun_l9_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n171()</div><div class='add'>+    fun_l9_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n172()</div><div class='add'>+    fun_l9_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n173()</div><div class='add'>+    fun_l9_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n174()</div><div class='add'>+    fun_l9_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n175()</div><div class='add'>+    fun_l9_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n176()</div><div class='add'>+    fun_l9_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n177()</div><div class='add'>+    fun_l9_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n178()</div><div class='add'>+    fun_l9_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n179()</div><div class='add'>+    fun_l9_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n180()</div><div class='add'>+    fun_l9_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n181()</div><div class='add'>+    fun_l9_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n182()</div><div class='add'>+    fun_l9_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n183()</div><div class='add'>+    fun_l9_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n184()</div><div class='add'>+    fun_l9_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n185()</div><div class='add'>+    fun_l9_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n186()</div><div class='add'>+    fun_l9_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n187()</div><div class='add'>+    fun_l9_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n188()</div><div class='add'>+    fun_l9_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n189()</div><div class='add'>+    fun_l9_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n190()</div><div class='add'>+    fun_l9_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n191()</div><div class='add'>+    fun_l9_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n192()</div><div class='add'>+    fun_l9_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n193()</div><div class='add'>+    fun_l9_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n194()</div><div class='add'>+    fun_l9_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n195()</div><div class='add'>+    fun_l9_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n196()</div><div class='add'>+    fun_l9_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n197()</div><div class='add'>+    fun_l9_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n198()</div><div class='add'>+    fun_l9_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n199()</div><div class='add'>+    fun_l9_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n200()</div><div class='add'>+    fun_l9_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n201()</div><div class='add'>+    fun_l9_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n202()</div><div class='add'>+    fun_l9_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n203()</div><div class='add'>+    fun_l9_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n204()</div><div class='add'>+    fun_l9_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n205()</div><div class='add'>+    fun_l9_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n206()</div><div class='add'>+    fun_l9_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n207()</div><div class='add'>+    fun_l9_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n208()</div><div class='add'>+    fun_l9_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n209()</div><div class='add'>+    fun_l9_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n210()</div><div class='add'>+    fun_l9_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n211()</div><div class='add'>+    fun_l9_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n212()</div><div class='add'>+    fun_l9_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n213()</div><div class='add'>+    fun_l9_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n214()</div><div class='add'>+    fun_l9_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n215()</div><div class='add'>+    fun_l9_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n216()</div><div class='add'>+    fun_l9_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n217()</div><div class='add'>+    fun_l9_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n218()</div><div class='add'>+    fun_l9_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n219()</div><div class='add'>+    fun_l9_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n220()</div><div class='add'>+    fun_l9_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n221()</div><div class='add'>+    fun_l9_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n222()</div><div class='add'>+    fun_l9_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n223()</div><div class='add'>+    fun_l9_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n224()</div><div class='add'>+    fun_l9_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n225()</div><div class='add'>+    fun_l9_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n226()</div><div class='add'>+    fun_l9_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n227()</div><div class='add'>+    fun_l9_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n228()</div><div class='add'>+    fun_l9_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n229()</div><div class='add'>+    fun_l9_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n230()</div><div class='add'>+    fun_l9_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n231()</div><div class='add'>+    fun_l9_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n232()</div><div class='add'>+    fun_l9_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n233()</div><div class='add'>+    fun_l9_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n234()</div><div class='add'>+    fun_l9_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n235()</div><div class='add'>+    fun_l9_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n236()</div><div class='add'>+    fun_l9_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n237()</div><div class='add'>+    fun_l9_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n238()</div><div class='add'>+    fun_l9_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n239()</div><div class='add'>+    fun_l9_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n240()</div><div class='add'>+    fun_l9_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n241()</div><div class='add'>+    fun_l9_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n242()</div><div class='add'>+    fun_l9_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n243()</div><div class='add'>+    fun_l9_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n244()</div><div class='add'>+    fun_l9_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n245()</div><div class='add'>+    fun_l9_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n246()</div><div class='add'>+    fun_l9_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n247()</div><div class='add'>+    fun_l9_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n248()</div><div class='add'>+    fun_l9_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n249()</div><div class='add'>+    fun_l9_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n250()</div><div class='add'>+    fun_l9_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n251()</div><div class='add'>+    fun_l9_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n252()</div><div class='add'>+    fun_l9_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n253()</div><div class='add'>+    fun_l9_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n254()</div><div class='add'>+    fun_l9_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n255()</div><div class='add'>+    fun_l9_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n256()</div><div class='add'>+    fun_l9_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n257()</div><div class='add'>+    fun_l9_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n258()</div><div class='add'>+    fun_l9_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n259()</div><div class='add'>+    fun_l9_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n260()</div><div class='add'>+    fun_l9_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n261()</div><div class='add'>+    fun_l9_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n262()</div><div class='add'>+    fun_l9_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n263()</div><div class='add'>+    fun_l9_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n264()</div><div class='add'>+    fun_l9_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n265()</div><div class='add'>+    fun_l9_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n266()</div><div class='add'>+    fun_l9_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n267()</div><div class='add'>+    fun_l9_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n268()</div><div class='add'>+    fun_l9_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n269()</div><div class='add'>+    fun_l9_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n270()</div><div class='add'>+    fun_l9_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n271()</div><div class='add'>+    fun_l9_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n272()</div><div class='add'>+    fun_l9_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n273()</div><div class='add'>+    fun_l9_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n274()</div><div class='add'>+    fun_l9_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n275()</div><div class='add'>+    fun_l9_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n276()</div><div class='add'>+    fun_l9_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n277()</div><div class='add'>+    fun_l9_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n278()</div><div class='add'>+    fun_l9_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n279()</div><div class='add'>+    fun_l9_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n280()</div><div class='add'>+    fun_l9_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n281()</div><div class='add'>+    fun_l9_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n282()</div><div class='add'>+    fun_l9_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n283()</div><div class='add'>+    fun_l9_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n284()</div><div class='add'>+    fun_l9_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n285()</div><div class='add'>+    fun_l9_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n286()</div><div class='add'>+    fun_l9_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n287()</div><div class='add'>+    fun_l9_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n288()</div><div class='add'>+    fun_l9_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n289()</div><div class='add'>+    fun_l9_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n290()</div><div class='add'>+    fun_l9_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n291()</div><div class='add'>+    fun_l9_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n292()</div><div class='add'>+    fun_l9_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n293()</div><div class='add'>+    fun_l9_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n294()</div><div class='add'>+    fun_l9_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n295()</div><div class='add'>+    fun_l9_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n296()</div><div class='add'>+    fun_l9_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n297()</div><div class='add'>+    fun_l9_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n298()</div><div class='add'>+    fun_l9_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n299()</div><div class='add'>+    fun_l9_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n300()</div><div class='add'>+    fun_l9_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n301()</div><div class='add'>+    fun_l9_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n302()</div><div class='add'>+    fun_l9_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n303()</div><div class='add'>+    fun_l9_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n304()</div><div class='add'>+    fun_l9_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n305()</div><div class='add'>+    fun_l9_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n306()</div><div class='add'>+    fun_l9_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n307()</div><div class='add'>+    fun_l9_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n308()</div><div class='add'>+    fun_l9_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n309()</div><div class='add'>+    fun_l9_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n310()</div><div class='add'>+    fun_l9_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n311()</div><div class='add'>+    fun_l9_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n312()</div><div class='add'>+    fun_l9_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n313()</div><div class='add'>+    fun_l9_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n314()</div><div class='add'>+    fun_l9_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n315()</div><div class='add'>+    fun_l9_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n316()</div><div class='add'>+    fun_l9_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n317()</div><div class='add'>+    fun_l9_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n318()</div><div class='add'>+    fun_l9_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n319()</div><div class='add'>+    fun_l9_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n320()</div><div class='add'>+    fun_l9_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n321()</div><div class='add'>+    fun_l9_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n322()</div><div class='add'>+    fun_l9_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n323()</div><div class='add'>+    fun_l9_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n324()</div><div class='add'>+    fun_l9_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n325()</div><div class='add'>+    fun_l9_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n326()</div><div class='add'>+    fun_l9_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n327()</div><div class='add'>+    fun_l9_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n328()</div><div class='add'>+    fun_l9_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n329()</div><div class='add'>+    fun_l9_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n330()</div><div class='add'>+    fun_l9_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n331()</div><div class='add'>+    fun_l9_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n332()</div><div class='add'>+    fun_l9_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n333()</div><div class='add'>+    fun_l9_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n334()</div><div class='add'>+    fun_l9_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n335()</div><div class='add'>+    fun_l9_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n336()</div><div class='add'>+    fun_l9_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n337()</div><div class='add'>+    fun_l9_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n338()</div><div class='add'>+    fun_l9_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n339()</div><div class='add'>+    fun_l9_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n340()</div><div class='add'>+    fun_l9_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n341()</div><div class='add'>+    fun_l9_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n342()</div><div class='add'>+    fun_l9_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n343()</div><div class='add'>+    fun_l9_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n344()</div><div class='add'>+    fun_l9_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n345()</div><div class='add'>+    fun_l9_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n346()</div><div class='add'>+    fun_l9_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n347()</div><div class='add'>+    fun_l9_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n348()</div><div class='add'>+    fun_l9_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n349()</div><div class='add'>+    fun_l9_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n350()</div><div class='add'>+    fun_l9_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n351()</div><div class='add'>+    fun_l9_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n352()</div><div class='add'>+    fun_l9_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n353()</div><div class='add'>+    fun_l9_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n354()</div><div class='add'>+    fun_l9_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n355()</div><div class='add'>+    fun_l9_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n356()</div><div class='add'>+    fun_l9_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n357()</div><div class='add'>+    fun_l9_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n358()</div><div class='add'>+    fun_l9_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n359()</div><div class='add'>+    fun_l9_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n360()</div><div class='add'>+    fun_l9_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n361()</div><div class='add'>+    fun_l9_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n362()</div><div class='add'>+    fun_l9_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n363()</div><div class='add'>+    fun_l9_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n364()</div><div class='add'>+    fun_l9_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n365()</div><div class='add'>+    fun_l9_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n366()</div><div class='add'>+    fun_l9_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n367()</div><div class='add'>+    fun_l9_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n368()</div><div class='add'>+    fun_l9_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n369()</div><div class='add'>+    fun_l9_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n370()</div><div class='add'>+    fun_l9_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n371()</div><div class='add'>+    fun_l9_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n372()</div><div class='add'>+    fun_l9_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n373()</div><div class='add'>+    fun_l9_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n374()</div><div class='add'>+    fun_l9_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n375()</div><div class='add'>+    fun_l9_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n376()</div><div class='add'>+    fun_l9_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n377()</div><div class='add'>+    fun_l9_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n378()</div><div class='add'>+    fun_l9_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n379()</div><div class='add'>+    fun_l9_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n380()</div><div class='add'>+    fun_l9_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n381()</div><div class='add'>+    fun_l9_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n382()</div><div class='add'>+    fun_l9_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n383()</div><div class='add'>+    fun_l9_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n384()</div><div class='add'>+    fun_l9_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n385()</div><div class='add'>+    fun_l9_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n386()</div><div class='add'>+    fun_l9_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n387()</div><div class='add'>+    fun_l9_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n388()</div><div class='add'>+    fun_l9_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n389()</div><div class='add'>+    fun_l9_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n390()</div><div class='add'>+    fun_l9_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n391()</div><div class='add'>+    fun_l9_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n392()</div><div class='add'>+    fun_l9_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n393()</div><div class='add'>+    fun_l9_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n394()</div><div class='add'>+    fun_l9_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n395()</div><div class='add'>+    fun_l9_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n396()</div><div class='add'>+    fun_l9_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n397()</div><div class='add'>+    fun_l9_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n398()</div><div class='add'>+    fun_l9_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n399()</div><div class='add'>+    fun_l9_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n400()</div><div class='add'>+    fun_l9_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n401()</div><div class='add'>+    fun_l9_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n402()</div><div class='add'>+    fun_l9_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n403()</div><div class='add'>+    fun_l9_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n404()</div><div class='add'>+    fun_l9_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n405()</div><div class='add'>+    fun_l9_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n406()</div><div class='add'>+    fun_l9_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n407()</div><div class='add'>+    fun_l9_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n408()</div><div class='add'>+    fun_l9_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n409()</div><div class='add'>+    fun_l9_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n410()</div><div class='add'>+    fun_l9_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n411()</div><div class='add'>+    fun_l9_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n412()</div><div class='add'>+    fun_l9_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n413()</div><div class='add'>+    fun_l9_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n414()</div><div class='add'>+    fun_l9_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n415()</div><div class='add'>+    fun_l9_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n416()</div><div class='add'>+    fun_l9_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n417()</div><div class='add'>+    fun_l9_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n418()</div><div class='add'>+    fun_l9_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n419()</div><div class='add'>+    fun_l9_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n420()</div><div class='add'>+    fun_l9_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n421()</div><div class='add'>+    fun_l9_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n422()</div><div class='add'>+    fun_l9_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n423()</div><div class='add'>+    fun_l9_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n424()</div><div class='add'>+    fun_l9_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n425()</div><div class='add'>+    fun_l9_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n426()</div><div class='add'>+    fun_l9_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n427()</div><div class='add'>+    fun_l9_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n428()</div><div class='add'>+    fun_l9_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n429()</div><div class='add'>+    fun_l9_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n430()</div><div class='add'>+    fun_l9_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n431()</div><div class='add'>+    fun_l9_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n432()</div><div class='add'>+    fun_l9_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n433()</div><div class='add'>+    fun_l9_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n434()</div><div class='add'>+    fun_l9_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n435()</div><div class='add'>+    fun_l9_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n436()</div><div class='add'>+    fun_l9_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n437()</div><div class='add'>+    fun_l9_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n438()</div><div class='add'>+    fun_l9_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n439()</div><div class='add'>+    fun_l9_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n440()</div><div class='add'>+    fun_l9_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n441()</div><div class='add'>+    fun_l9_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n442()</div><div class='add'>+    fun_l9_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n443()</div><div class='add'>+    fun_l9_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n444()</div><div class='add'>+    fun_l9_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n445()</div><div class='add'>+    fun_l9_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n446()</div><div class='add'>+    fun_l9_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n447()</div><div class='add'>+    fun_l9_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n448()</div><div class='add'>+    fun_l9_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n449()</div><div class='add'>+    fun_l9_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n450()</div><div class='add'>+    fun_l9_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n451()</div><div class='add'>+    fun_l9_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n452()</div><div class='add'>+    fun_l9_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n453()</div><div class='add'>+    fun_l9_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n454()</div><div class='add'>+    fun_l9_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n455()</div><div class='add'>+    fun_l9_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n456()</div><div class='add'>+    fun_l9_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n457()</div><div class='add'>+    fun_l9_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n458()</div><div class='add'>+    fun_l9_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n459()</div><div class='add'>+    fun_l9_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n460()</div><div class='add'>+    fun_l9_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n461()</div><div class='add'>+    fun_l9_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n462()</div><div class='add'>+    fun_l9_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n463()</div><div class='add'>+    fun_l9_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n464()</div><div class='add'>+    fun_l9_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n465()</div><div class='add'>+    fun_l9_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n466()</div><div class='add'>+    fun_l9_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n467()</div><div class='add'>+    fun_l9_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n468()</div><div class='add'>+    fun_l9_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n469()</div><div class='add'>+    fun_l9_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n470()</div><div class='add'>+    fun_l9_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n471()</div><div class='add'>+    fun_l9_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n472()</div><div class='add'>+    fun_l9_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n473()</div><div class='add'>+    fun_l9_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n474()</div><div class='add'>+    fun_l9_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n475()</div><div class='add'>+    fun_l9_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n476()</div><div class='add'>+    fun_l9_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n477()</div><div class='add'>+    fun_l9_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n478()</div><div class='add'>+    fun_l9_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n479()</div><div class='add'>+    fun_l9_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n480()</div><div class='add'>+    fun_l9_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n481()</div><div class='add'>+    fun_l9_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n482()</div><div class='add'>+    fun_l9_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n483()</div><div class='add'>+    fun_l9_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n484()</div><div class='add'>+    fun_l9_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n485()</div><div class='add'>+    fun_l9_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n486()</div><div class='add'>+    fun_l9_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n487()</div><div class='add'>+    fun_l9_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n488()</div><div class='add'>+    fun_l9_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n489()</div><div class='add'>+    fun_l9_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n490()</div><div class='add'>+    fun_l9_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n491()</div><div class='add'>+    fun_l9_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n492()</div><div class='add'>+    fun_l9_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n493()</div><div class='add'>+    fun_l9_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n494()</div><div class='add'>+    fun_l9_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n495()</div><div class='add'>+    fun_l9_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n496()</div><div class='add'>+    fun_l9_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n497()</div><div class='add'>+    fun_l9_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n498()</div><div class='add'>+    fun_l9_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n499()</div><div class='add'>+    fun_l9_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n500()</div><div class='add'>+    fun_l9_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n501()</div><div class='add'>+    fun_l9_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n502()</div><div class='add'>+    fun_l9_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n503()</div><div class='add'>+    fun_l9_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n504()</div><div class='add'>+    fun_l9_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n505()</div><div class='add'>+    fun_l9_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n506()</div><div class='add'>+    fun_l9_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n507()</div><div class='add'>+    fun_l9_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n508()</div><div class='add'>+    fun_l9_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n509()</div><div class='add'>+    fun_l9_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n510()</div><div class='add'>+    fun_l9_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n511()</div><div class='add'>+    fun_l9_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n512()</div><div class='add'>+    fun_l9_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n513()</div><div class='add'>+    fun_l9_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n514()</div><div class='add'>+    fun_l9_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n515()</div><div class='add'>+    fun_l9_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n516()</div><div class='add'>+    fun_l9_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n517()</div><div class='add'>+    fun_l9_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n518()</div><div class='add'>+    fun_l9_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n519()</div><div class='add'>+    fun_l9_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n520()</div><div class='add'>+    fun_l9_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n521()</div><div class='add'>+    fun_l9_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n522()</div><div class='add'>+    fun_l9_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n523()</div><div class='add'>+    fun_l9_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n524()</div><div class='add'>+    fun_l9_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n525()</div><div class='add'>+    fun_l9_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n526()</div><div class='add'>+    fun_l9_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n527()</div><div class='add'>+    fun_l9_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n528()</div><div class='add'>+    fun_l9_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n529()</div><div class='add'>+    fun_l9_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n530()</div><div class='add'>+    fun_l9_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n531()</div><div class='add'>+    fun_l9_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n532()</div><div class='add'>+    fun_l9_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n533()</div><div class='add'>+    fun_l9_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n534()</div><div class='add'>+    fun_l9_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n535()</div><div class='add'>+    fun_l9_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n536()</div><div class='add'>+    fun_l9_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n537()</div><div class='add'>+    fun_l9_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n538()</div><div class='add'>+    fun_l9_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n539()</div><div class='add'>+    fun_l9_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n540()</div><div class='add'>+    fun_l9_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n541()</div><div class='add'>+    fun_l9_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n542()</div><div class='add'>+    fun_l9_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n543()</div><div class='add'>+    fun_l9_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n544()</div><div class='add'>+    fun_l9_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n545()</div><div class='add'>+    fun_l9_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n546()</div><div class='add'>+    fun_l9_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n547()</div><div class='add'>+    fun_l9_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n548()</div><div class='add'>+    fun_l9_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n549()</div><div class='add'>+    fun_l9_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n550()</div><div class='add'>+    fun_l9_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n551()</div><div class='add'>+    fun_l9_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n552()</div><div class='add'>+    fun_l9_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n553()</div><div class='add'>+    fun_l9_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n554()</div><div class='add'>+    fun_l9_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n555()</div><div class='add'>+    fun_l9_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n556()</div><div class='add'>+    fun_l9_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n557()</div><div class='add'>+    fun_l9_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n558()</div><div class='add'>+    fun_l9_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n559()</div><div class='add'>+    fun_l9_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n560()</div><div class='add'>+    fun_l9_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n561()</div><div class='add'>+    fun_l9_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n562()</div><div class='add'>+    fun_l9_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n563()</div><div class='add'>+    fun_l9_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n564()</div><div class='add'>+    fun_l9_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n565()</div><div class='add'>+    fun_l9_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n566()</div><div class='add'>+    fun_l9_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n567()</div><div class='add'>+    fun_l9_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n568()</div><div class='add'>+    fun_l9_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n569()</div><div class='add'>+    fun_l9_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n570()</div><div class='add'>+    fun_l9_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n571()</div><div class='add'>+    fun_l9_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n572()</div><div class='add'>+    fun_l9_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n573()</div><div class='add'>+    fun_l9_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n574()</div><div class='add'>+    fun_l9_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n575()</div><div class='add'>+    fun_l9_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n576()</div><div class='add'>+    fun_l9_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n577()</div><div class='add'>+    fun_l9_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n578()</div><div class='add'>+    fun_l9_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n579()</div><div class='add'>+    fun_l9_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n580()</div><div class='add'>+    fun_l9_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n581()</div><div class='add'>+    fun_l9_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n582()</div><div class='add'>+    fun_l9_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n583()</div><div class='add'>+    fun_l9_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n584()</div><div class='add'>+    fun_l9_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n585()</div><div class='add'>+    fun_l9_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n586()</div><div class='add'>+    fun_l9_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n587()</div><div class='add'>+    fun_l9_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n588()</div><div class='add'>+    fun_l9_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n589()</div><div class='add'>+    fun_l9_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n590()</div><div class='add'>+    fun_l9_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n591()</div><div class='add'>+    fun_l9_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n592()</div><div class='add'>+    fun_l9_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n593()</div><div class='add'>+    fun_l9_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n594()</div><div class='add'>+    fun_l9_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n595()</div><div class='add'>+    fun_l9_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n596()</div><div class='add'>+    fun_l9_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n597()</div><div class='add'>+    fun_l9_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n598()</div><div class='add'>+    fun_l9_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n599()</div><div class='add'>+    fun_l9_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n600()</div><div class='add'>+    fun_l9_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n601()</div><div class='add'>+    fun_l9_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n602()</div><div class='add'>+    fun_l9_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n603()</div><div class='add'>+    fun_l9_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n604()</div><div class='add'>+    fun_l9_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n605()</div><div class='add'>+    fun_l9_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n606()</div><div class='add'>+    fun_l9_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n607()</div><div class='add'>+    fun_l9_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n608()</div><div class='add'>+    fun_l9_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n609()</div><div class='add'>+    fun_l9_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n610()</div><div class='add'>+    fun_l9_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n611()</div><div class='add'>+    fun_l9_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n612()</div><div class='add'>+    fun_l9_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n613()</div><div class='add'>+    fun_l9_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n614()</div><div class='add'>+    fun_l9_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n615()</div><div class='add'>+    fun_l9_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n616()</div><div class='add'>+    fun_l9_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n617()</div><div class='add'>+    fun_l9_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n618()</div><div class='add'>+    fun_l9_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n619()</div><div class='add'>+    fun_l9_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n620()</div><div class='add'>+    fun_l9_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n621()</div><div class='add'>+    fun_l9_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n622()</div><div class='add'>+    fun_l9_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n623()</div><div class='add'>+    fun_l9_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n624()</div><div class='add'>+    fun_l9_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n625()</div><div class='add'>+    fun_l9_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n626()</div><div class='add'>+    fun_l9_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n627()</div><div class='add'>+    fun_l9_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n628()</div><div class='add'>+    fun_l9_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n629()</div><div class='add'>+    fun_l9_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n630()</div><div class='add'>+    fun_l9_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n631()</div><div class='add'>+    fun_l9_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n632()</div><div class='add'>+    fun_l9_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n633()</div><div class='add'>+    fun_l9_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n634()</div><div class='add'>+    fun_l9_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n635()</div><div class='add'>+    fun_l9_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n636()</div><div class='add'>+    fun_l9_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n637()</div><div class='add'>+    fun_l9_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n638()</div><div class='add'>+    fun_l9_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n639()</div><div class='add'>+    fun_l9_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n640()</div><div class='add'>+    fun_l9_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n641()</div><div class='add'>+    fun_l9_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n642()</div><div class='add'>+    fun_l9_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n643()</div><div class='add'>+    fun_l9_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n644()</div><div class='add'>+    fun_l9_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n645()</div><div class='add'>+    fun_l9_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n646()</div><div class='add'>+    fun_l9_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n647()</div><div class='add'>+    fun_l9_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n648()</div><div class='add'>+    fun_l9_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n649()</div><div class='add'>+    fun_l9_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n650()</div><div class='add'>+    fun_l9_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n651()</div><div class='add'>+    fun_l9_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n652()</div><div class='add'>+    fun_l9_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n653()</div><div class='add'>+    fun_l9_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n654()</div><div class='add'>+    fun_l9_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n655()</div><div class='add'>+    fun_l9_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n656()</div><div class='add'>+    fun_l9_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n657()</div><div class='add'>+    fun_l9_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n658()</div><div class='add'>+    fun_l9_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n659()</div><div class='add'>+    fun_l9_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n660()</div><div class='add'>+    fun_l9_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n661()</div><div class='add'>+    fun_l9_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n662()</div><div class='add'>+    fun_l9_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n663()</div><div class='add'>+    fun_l9_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n664()</div><div class='add'>+    fun_l9_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n665()</div><div class='add'>+    fun_l9_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n666()</div><div class='add'>+    fun_l9_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n667()</div><div class='add'>+    fun_l9_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n668()</div><div class='add'>+    fun_l9_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n669()</div><div class='add'>+    fun_l9_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n670()</div><div class='add'>+    fun_l9_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n671()</div><div class='add'>+    fun_l9_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n672()</div><div class='add'>+    fun_l9_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n673()</div><div class='add'>+    fun_l9_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n674()</div><div class='add'>+    fun_l9_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n675()</div><div class='add'>+    fun_l9_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n676()</div><div class='add'>+    fun_l9_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n677()</div><div class='add'>+    fun_l9_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n678()</div><div class='add'>+    fun_l9_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n679()</div><div class='add'>+    fun_l9_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n680()</div><div class='add'>+    fun_l9_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n681()</div><div class='add'>+    fun_l9_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n682()</div><div class='add'>+    fun_l9_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n683()</div><div class='add'>+    fun_l9_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n684()</div><div class='add'>+    fun_l9_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n685()</div><div class='add'>+    fun_l9_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n686()</div><div class='add'>+    fun_l9_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n687()</div><div class='add'>+    fun_l9_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n688()</div><div class='add'>+    fun_l9_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n689()</div><div class='add'>+    fun_l9_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n690()</div><div class='add'>+    fun_l9_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n691()</div><div class='add'>+    fun_l9_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n692()</div><div class='add'>+    fun_l9_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n693()</div><div class='add'>+    fun_l9_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n694()</div><div class='add'>+    fun_l9_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n695()</div><div class='add'>+    fun_l9_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n696()</div><div class='add'>+    fun_l9_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n697()</div><div class='add'>+    fun_l9_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n698()</div><div class='add'>+    fun_l9_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n699()</div><div class='add'>+    fun_l9_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n700()</div><div class='add'>+    fun_l9_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n701()</div><div class='add'>+    fun_l9_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n702()</div><div class='add'>+    fun_l9_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n703()</div><div class='add'>+    fun_l9_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n704()</div><div class='add'>+    fun_l9_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n705()</div><div class='add'>+    fun_l9_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n706()</div><div class='add'>+    fun_l9_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n707()</div><div class='add'>+    fun_l9_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n708()</div><div class='add'>+    fun_l9_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n709()</div><div class='add'>+    fun_l9_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n710()</div><div class='add'>+    fun_l9_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n711()</div><div class='add'>+    fun_l9_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n712()</div><div class='add'>+    fun_l9_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n713()</div><div class='add'>+    fun_l9_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n714()</div><div class='add'>+    fun_l9_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n715()</div><div class='add'>+    fun_l9_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n716()</div><div class='add'>+    fun_l9_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n717()</div><div class='add'>+    fun_l9_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n718()</div><div class='add'>+    fun_l9_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n719()</div><div class='add'>+    fun_l9_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n720()</div><div class='add'>+    fun_l9_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n721()</div><div class='add'>+    fun_l9_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n722()</div><div class='add'>+    fun_l9_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n723()</div><div class='add'>+    fun_l9_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n724()</div><div class='add'>+    fun_l9_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n725()</div><div class='add'>+    fun_l9_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n726()</div><div class='add'>+    fun_l9_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n727()</div><div class='add'>+    fun_l9_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n728()</div><div class='add'>+    fun_l9_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n729()</div><div class='add'>+    fun_l9_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n730()</div><div class='add'>+    fun_l9_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n731()</div><div class='add'>+    fun_l9_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n732()</div><div class='add'>+    fun_l9_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n733()</div><div class='add'>+    fun_l9_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n734()</div><div class='add'>+    fun_l9_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n735()</div><div class='add'>+    fun_l9_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n736()</div><div class='add'>+    fun_l9_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n737()</div><div class='add'>+    fun_l9_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n738()</div><div class='add'>+    fun_l9_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n739()</div><div class='add'>+    fun_l9_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n740()</div><div class='add'>+    fun_l9_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n741()</div><div class='add'>+    fun_l9_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n742()</div><div class='add'>+    fun_l9_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n743()</div><div class='add'>+    fun_l9_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n744()</div><div class='add'>+    fun_l9_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n745()</div><div class='add'>+    fun_l9_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n746()</div><div class='add'>+    fun_l9_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n747()</div><div class='add'>+    fun_l9_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n748()</div><div class='add'>+    fun_l9_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n749()</div><div class='add'>+    fun_l9_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n750()</div><div class='add'>+    fun_l9_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n751()</div><div class='add'>+    fun_l9_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n752()</div><div class='add'>+    fun_l9_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n753()</div><div class='add'>+    fun_l9_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n754()</div><div class='add'>+    fun_l9_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n755()</div><div class='add'>+    fun_l9_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n756()</div><div class='add'>+    fun_l9_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n757()</div><div class='add'>+    fun_l9_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n758()</div><div class='add'>+    fun_l9_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n759()</div><div class='add'>+    fun_l9_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n760()</div><div class='add'>+    fun_l9_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n761()</div><div class='add'>+    fun_l9_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n762()</div><div class='add'>+    fun_l9_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n763()</div><div class='add'>+    fun_l9_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n764()</div><div class='add'>+    fun_l9_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n765()</div><div class='add'>+    fun_l9_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n766()</div><div class='add'>+    fun_l9_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n767()</div><div class='add'>+    fun_l9_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n768()</div><div class='add'>+    fun_l9_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n769()</div><div class='add'>+    fun_l9_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n770()</div><div class='add'>+    fun_l9_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n771()</div><div class='add'>+    fun_l9_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n772()</div><div class='add'>+    fun_l9_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n773()</div><div class='add'>+    fun_l9_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n774()</div><div class='add'>+    fun_l9_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n775()</div><div class='add'>+    fun_l9_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n776()</div><div class='add'>+    fun_l9_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n777()</div><div class='add'>+    fun_l9_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n778()</div><div class='add'>+    fun_l9_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n779()</div><div class='add'>+    fun_l9_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n780()</div><div class='add'>+    fun_l9_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n781()</div><div class='add'>+    fun_l9_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n782()</div><div class='add'>+    fun_l9_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n783()</div><div class='add'>+    fun_l9_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n784()</div><div class='add'>+    fun_l9_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n785()</div><div class='add'>+    fun_l9_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n786()</div><div class='add'>+    fun_l9_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n787()</div><div class='add'>+    fun_l9_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n788()</div><div class='add'>+    fun_l9_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n789()</div><div class='add'>+    fun_l9_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n790()</div><div class='add'>+    fun_l9_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n791()</div><div class='add'>+    fun_l9_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n792()</div><div class='add'>+    fun_l9_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n793()</div><div class='add'>+    fun_l9_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n794()</div><div class='add'>+    fun_l9_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n795()</div><div class='add'>+    fun_l9_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n796()</div><div class='add'>+    fun_l9_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n797()</div><div class='add'>+    fun_l9_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n798()</div><div class='add'>+    fun_l9_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n799()</div><div class='add'>+    fun_l9_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n800()</div><div class='add'>+    fun_l9_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n801()</div><div class='add'>+    fun_l9_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n802()</div><div class='add'>+    fun_l9_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n803()</div><div class='add'>+    fun_l9_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n804()</div><div class='add'>+    fun_l9_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n805()</div><div class='add'>+    fun_l9_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n806()</div><div class='add'>+    fun_l9_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n807()</div><div class='add'>+    fun_l9_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n808()</div><div class='add'>+    fun_l9_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n809()</div><div class='add'>+    fun_l9_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n810()</div><div class='add'>+    fun_l9_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n811()</div><div class='add'>+    fun_l9_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n812()</div><div class='add'>+    fun_l9_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n813()</div><div class='add'>+    fun_l9_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n814()</div><div class='add'>+    fun_l9_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n815()</div><div class='add'>+    fun_l9_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n816()</div><div class='add'>+    fun_l9_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n817()</div><div class='add'>+    fun_l9_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n818()</div><div class='add'>+    fun_l9_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n819()</div><div class='add'>+    fun_l9_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n820()</div><div class='add'>+    fun_l9_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n821()</div><div class='add'>+    fun_l9_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n822()</div><div class='add'>+    fun_l9_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n823()</div><div class='add'>+    fun_l9_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n824()</div><div class='add'>+    fun_l9_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n825()</div><div class='add'>+    fun_l9_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n826()</div><div class='add'>+    fun_l9_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n827()</div><div class='add'>+    fun_l9_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n828()</div><div class='add'>+    fun_l9_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n829()</div><div class='add'>+    fun_l9_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n830()</div><div class='add'>+    fun_l9_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n831()</div><div class='add'>+    fun_l9_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n832()</div><div class='add'>+    fun_l9_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n833()</div><div class='add'>+    fun_l9_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n834()</div><div class='add'>+    fun_l9_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n835()</div><div class='add'>+    fun_l9_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n836()</div><div class='add'>+    fun_l9_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n837()</div><div class='add'>+    fun_l9_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n838()</div><div class='add'>+    fun_l9_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n839()</div><div class='add'>+    fun_l9_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n840()</div><div class='add'>+    fun_l9_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n841()</div><div class='add'>+    fun_l9_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n842()</div><div class='add'>+    fun_l9_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n843()</div><div class='add'>+    fun_l9_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n844()</div><div class='add'>+    fun_l9_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n845()</div><div class='add'>+    fun_l9_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n846()</div><div class='add'>+    fun_l9_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n847()</div><div class='add'>+    fun_l9_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n848()</div><div class='add'>+    fun_l9_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n849()</div><div class='add'>+    fun_l9_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n850()</div><div class='add'>+    fun_l9_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n851()</div><div class='add'>+    fun_l9_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n852()</div><div class='add'>+    fun_l9_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n853()</div><div class='add'>+    fun_l9_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n854()</div><div class='add'>+    fun_l9_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n855()</div><div class='add'>+    fun_l9_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n856()</div><div class='add'>+    fun_l9_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n857()</div><div class='add'>+    fun_l9_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n858()</div><div class='add'>+    fun_l9_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n859()</div><div class='add'>+    fun_l9_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n860()</div><div class='add'>+    fun_l9_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n861()</div><div class='add'>+    fun_l9_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n862()</div><div class='add'>+    fun_l9_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n863()</div><div class='add'>+    fun_l9_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n864()</div><div class='add'>+    fun_l9_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n865()</div><div class='add'>+    fun_l9_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n866()</div><div class='add'>+    fun_l9_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n867()</div><div class='add'>+    fun_l9_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n868()</div><div class='add'>+    fun_l9_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n869()</div><div class='add'>+    fun_l9_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n870()</div><div class='add'>+    fun_l9_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n871()</div><div class='add'>+    fun_l9_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n872()</div><div class='add'>+    fun_l9_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n873()</div><div class='add'>+    fun_l9_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n874()</div><div class='add'>+    fun_l9_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n875()</div><div class='add'>+    fun_l9_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n876()</div><div class='add'>+    fun_l9_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n877()</div><div class='add'>+    fun_l9_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n878()</div><div class='add'>+    fun_l9_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n879()</div><div class='add'>+    fun_l9_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n880()</div><div class='add'>+    fun_l9_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n881()</div><div class='add'>+    fun_l9_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n882()</div><div class='add'>+    fun_l9_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n883()</div><div class='add'>+    fun_l9_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n884()</div><div class='add'>+    fun_l9_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n885()</div><div class='add'>+    fun_l9_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n886()</div><div class='add'>+    fun_l9_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n887()</div><div class='add'>+    fun_l9_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n888()</div><div class='add'>+    fun_l9_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n889()</div><div class='add'>+    fun_l9_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n890()</div><div class='add'>+    fun_l9_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n891()</div><div class='add'>+    fun_l9_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n892()</div><div class='add'>+    fun_l9_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n893()</div><div class='add'>+    fun_l9_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n894()</div><div class='add'>+    fun_l9_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n895()</div><div class='add'>+    fun_l9_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n896()</div><div class='add'>+    fun_l9_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n897()</div><div class='add'>+    fun_l9_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n898()</div><div class='add'>+    fun_l9_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n899()</div><div class='add'>+    fun_l9_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n900()</div><div class='add'>+    fun_l9_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n901()</div><div class='add'>+    fun_l9_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n902()</div><div class='add'>+    fun_l9_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n903()</div><div class='add'>+    fun_l9_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n904()</div><div class='add'>+    fun_l9_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n905()</div><div class='add'>+    fun_l9_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n906()</div><div class='add'>+    fun_l9_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n907()</div><div class='add'>+    fun_l9_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n908()</div><div class='add'>+    fun_l9_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n909()</div><div class='add'>+    fun_l9_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n910()</div><div class='add'>+    fun_l9_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n911()</div><div class='add'>+    fun_l9_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n912()</div><div class='add'>+    fun_l9_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n913()</div><div class='add'>+    fun_l9_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n914()</div><div class='add'>+    fun_l9_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n915()</div><div class='add'>+    fun_l9_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n916()</div><div class='add'>+    fun_l9_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n917()</div><div class='add'>+    fun_l9_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n918()</div><div class='add'>+    fun_l9_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n919()</div><div class='add'>+    fun_l9_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n920()</div><div class='add'>+    fun_l9_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n921()</div><div class='add'>+    fun_l9_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n922()</div><div class='add'>+    fun_l9_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n923()</div><div class='add'>+    fun_l9_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n924()</div><div class='add'>+    fun_l9_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n925()</div><div class='add'>+    fun_l9_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n926()</div><div class='add'>+    fun_l9_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n927()</div><div class='add'>+    fun_l9_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n928()</div><div class='add'>+    fun_l9_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n929()</div><div class='add'>+    fun_l9_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n930()</div><div class='add'>+    fun_l9_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n931()</div><div class='add'>+    fun_l9_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n932()</div><div class='add'>+    fun_l9_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n933()</div><div class='add'>+    fun_l9_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n934()</div><div class='add'>+    fun_l9_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n935()</div><div class='add'>+    fun_l9_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n936()</div><div class='add'>+    fun_l9_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n937()</div><div class='add'>+    fun_l9_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n938()</div><div class='add'>+    fun_l9_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n939()</div><div class='add'>+    fun_l9_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n940()</div><div class='add'>+    fun_l9_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n941()</div><div class='add'>+    fun_l9_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n942()</div><div class='add'>+    fun_l9_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n943()</div><div class='add'>+    fun_l9_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n944()</div><div class='add'>+    fun_l9_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n945()</div><div class='add'>+    fun_l9_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n946()</div><div class='add'>+    fun_l9_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n947()</div><div class='add'>+    fun_l9_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n948()</div><div class='add'>+    fun_l9_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n949()</div><div class='add'>+    fun_l9_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n950()</div><div class='add'>+    fun_l9_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n951()</div><div class='add'>+    fun_l9_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n952()</div><div class='add'>+    fun_l9_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n953()</div><div class='add'>+    fun_l9_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n954()</div><div class='add'>+    fun_l9_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n955()</div><div class='add'>+    fun_l9_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n956()</div><div class='add'>+    fun_l9_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n957()</div><div class='add'>+    fun_l9_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n958()</div><div class='add'>+    fun_l9_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n959()</div><div class='add'>+    fun_l9_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n960()</div><div class='add'>+    fun_l9_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n961()</div><div class='add'>+    fun_l9_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n962()</div><div class='add'>+    fun_l9_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n963()</div><div class='add'>+    fun_l9_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n964()</div><div class='add'>+    fun_l9_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n965()</div><div class='add'>+    fun_l9_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n966()</div><div class='add'>+    fun_l9_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n967()</div><div class='add'>+    fun_l9_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n968()</div><div class='add'>+    fun_l9_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n969()</div><div class='add'>+    fun_l9_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n970()</div><div class='add'>+    fun_l9_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n971()</div><div class='add'>+    fun_l9_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n972()</div><div class='add'>+    fun_l9_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n973()</div><div class='add'>+    fun_l9_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n974()</div><div class='add'>+    fun_l9_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n975()</div><div class='add'>+    fun_l9_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n976()</div><div class='add'>+    fun_l9_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n977()</div><div class='add'>+    fun_l9_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n978()</div><div class='add'>+    fun_l9_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n979()</div><div class='add'>+    fun_l9_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n980()</div><div class='add'>+    fun_l9_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n981()</div><div class='add'>+    fun_l9_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n982()</div><div class='add'>+    fun_l9_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n983()</div><div class='add'>+    fun_l9_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n984()</div><div class='add'>+    fun_l9_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n985()</div><div class='add'>+    fun_l9_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n986()</div><div class='add'>+    fun_l9_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n987()</div><div class='add'>+    fun_l9_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n988()</div><div class='add'>+    fun_l9_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n989()</div><div class='add'>+    fun_l9_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n990()</div><div class='add'>+    fun_l9_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n991()</div><div class='add'>+    fun_l9_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n992()</div><div class='add'>+    fun_l9_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n993()</div><div class='add'>+    fun_l9_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n994()</div><div class='add'>+    fun_l9_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n995()</div><div class='add'>+    fun_l9_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n996()</div><div class='add'>+    fun_l9_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n997()</div><div class='add'>+    fun_l9_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n998()</div><div class='add'>+    fun_l9_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l8_n999()</div><div class='add'>+    fun_l9_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n0()</div><div class='add'>+    fun_l10_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n1()</div><div class='add'>+    fun_l10_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n2()</div><div class='add'>+    fun_l10_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n3()</div><div class='add'>+    fun_l10_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n4()</div><div class='add'>+    fun_l10_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n5()</div><div class='add'>+    fun_l10_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n6()</div><div class='add'>+    fun_l10_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n7()</div><div class='add'>+    fun_l10_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n8()</div><div class='add'>+    fun_l10_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n9()</div><div class='add'>+    fun_l10_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n10()</div><div class='add'>+    fun_l10_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n11()</div><div class='add'>+    fun_l10_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n12()</div><div class='add'>+    fun_l10_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n13()</div><div class='add'>+    fun_l10_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n14()</div><div class='add'>+    fun_l10_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n15()</div><div class='add'>+    fun_l10_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n16()</div><div class='add'>+    fun_l10_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n17()</div><div class='add'>+    fun_l10_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n18()</div><div class='add'>+    fun_l10_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n19()</div><div class='add'>+    fun_l10_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n20()</div><div class='add'>+    fun_l10_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n21()</div><div class='add'>+    fun_l10_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n22()</div><div class='add'>+    fun_l10_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n23()</div><div class='add'>+    fun_l10_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n24()</div><div class='add'>+    fun_l10_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n25()</div><div class='add'>+    fun_l10_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n26()</div><div class='add'>+    fun_l10_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n27()</div><div class='add'>+    fun_l10_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n28()</div><div class='add'>+    fun_l10_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n29()</div><div class='add'>+    fun_l10_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n30()</div><div class='add'>+    fun_l10_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n31()</div><div class='add'>+    fun_l10_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n32()</div><div class='add'>+    fun_l10_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n33()</div><div class='add'>+    fun_l10_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n34()</div><div class='add'>+    fun_l10_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n35()</div><div class='add'>+    fun_l10_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n36()</div><div class='add'>+    fun_l10_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n37()</div><div class='add'>+    fun_l10_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n38()</div><div class='add'>+    fun_l10_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n39()</div><div class='add'>+    fun_l10_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n40()</div><div class='add'>+    fun_l10_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n41()</div><div class='add'>+    fun_l10_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n42()</div><div class='add'>+    fun_l10_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n43()</div><div class='add'>+    fun_l10_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n44()</div><div class='add'>+    fun_l10_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n45()</div><div class='add'>+    fun_l10_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n46()</div><div class='add'>+    fun_l10_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n47()</div><div class='add'>+    fun_l10_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n48()</div><div class='add'>+    fun_l10_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n49()</div><div class='add'>+    fun_l10_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n50()</div><div class='add'>+    fun_l10_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n51()</div><div class='add'>+    fun_l10_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n52()</div><div class='add'>+    fun_l10_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n53()</div><div class='add'>+    fun_l10_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n54()</div><div class='add'>+    fun_l10_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n55()</div><div class='add'>+    fun_l10_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n56()</div><div class='add'>+    fun_l10_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n57()</div><div class='add'>+    fun_l10_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n58()</div><div class='add'>+    fun_l10_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n59()</div><div class='add'>+    fun_l10_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n60()</div><div class='add'>+    fun_l10_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n61()</div><div class='add'>+    fun_l10_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n62()</div><div class='add'>+    fun_l10_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n63()</div><div class='add'>+    fun_l10_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n64()</div><div class='add'>+    fun_l10_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n65()</div><div class='add'>+    fun_l10_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n66()</div><div class='add'>+    fun_l10_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n67()</div><div class='add'>+    fun_l10_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n68()</div><div class='add'>+    fun_l10_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n69()</div><div class='add'>+    fun_l10_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n70()</div><div class='add'>+    fun_l10_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n71()</div><div class='add'>+    fun_l10_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n72()</div><div class='add'>+    fun_l10_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n73()</div><div class='add'>+    fun_l10_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n74()</div><div class='add'>+    fun_l10_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n75()</div><div class='add'>+    fun_l10_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n76()</div><div class='add'>+    fun_l10_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n77()</div><div class='add'>+    fun_l10_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n78()</div><div class='add'>+    fun_l10_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n79()</div><div class='add'>+    fun_l10_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n80()</div><div class='add'>+    fun_l10_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n81()</div><div class='add'>+    fun_l10_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n82()</div><div class='add'>+    fun_l10_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n83()</div><div class='add'>+    fun_l10_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n84()</div><div class='add'>+    fun_l10_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n85()</div><div class='add'>+    fun_l10_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n86()</div><div class='add'>+    fun_l10_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n87()</div><div class='add'>+    fun_l10_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n88()</div><div class='add'>+    fun_l10_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n89()</div><div class='add'>+    fun_l10_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n90()</div><div class='add'>+    fun_l10_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n91()</div><div class='add'>+    fun_l10_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n92()</div><div class='add'>+    fun_l10_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n93()</div><div class='add'>+    fun_l10_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n94()</div><div class='add'>+    fun_l10_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n95()</div><div class='add'>+    fun_l10_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n96()</div><div class='add'>+    fun_l10_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n97()</div><div class='add'>+    fun_l10_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n98()</div><div class='add'>+    fun_l10_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n99()</div><div class='add'>+    fun_l10_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n100()</div><div class='add'>+    fun_l10_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n101()</div><div class='add'>+    fun_l10_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n102()</div><div class='add'>+    fun_l10_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n103()</div><div class='add'>+    fun_l10_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n104()</div><div class='add'>+    fun_l10_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n105()</div><div class='add'>+    fun_l10_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n106()</div><div class='add'>+    fun_l10_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n107()</div><div class='add'>+    fun_l10_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n108()</div><div class='add'>+    fun_l10_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n109()</div><div class='add'>+    fun_l10_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n110()</div><div class='add'>+    fun_l10_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n111()</div><div class='add'>+    fun_l10_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n112()</div><div class='add'>+    fun_l10_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n113()</div><div class='add'>+    fun_l10_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n114()</div><div class='add'>+    fun_l10_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n115()</div><div class='add'>+    fun_l10_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n116()</div><div class='add'>+    fun_l10_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n117()</div><div class='add'>+    fun_l10_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n118()</div><div class='add'>+    fun_l10_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n119()</div><div class='add'>+    fun_l10_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n120()</div><div class='add'>+    fun_l10_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n121()</div><div class='add'>+    fun_l10_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n122()</div><div class='add'>+    fun_l10_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n123()</div><div class='add'>+    fun_l10_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n124()</div><div class='add'>+    fun_l10_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n125()</div><div class='add'>+    fun_l10_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n126()</div><div class='add'>+    fun_l10_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n127()</div><div class='add'>+    fun_l10_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n128()</div><div class='add'>+    fun_l10_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n129()</div><div class='add'>+    fun_l10_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n130()</div><div class='add'>+    fun_l10_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n131()</div><div class='add'>+    fun_l10_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n132()</div><div class='add'>+    fun_l10_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n133()</div><div class='add'>+    fun_l10_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n134()</div><div class='add'>+    fun_l10_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n135()</div><div class='add'>+    fun_l10_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n136()</div><div class='add'>+    fun_l10_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n137()</div><div class='add'>+    fun_l10_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n138()</div><div class='add'>+    fun_l10_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n139()</div><div class='add'>+    fun_l10_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n140()</div><div class='add'>+    fun_l10_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n141()</div><div class='add'>+    fun_l10_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n142()</div><div class='add'>+    fun_l10_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n143()</div><div class='add'>+    fun_l10_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n144()</div><div class='add'>+    fun_l10_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n145()</div><div class='add'>+    fun_l10_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n146()</div><div class='add'>+    fun_l10_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n147()</div><div class='add'>+    fun_l10_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n148()</div><div class='add'>+    fun_l10_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n149()</div><div class='add'>+    fun_l10_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n150()</div><div class='add'>+    fun_l10_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n151()</div><div class='add'>+    fun_l10_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n152()</div><div class='add'>+    fun_l10_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n153()</div><div class='add'>+    fun_l10_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n154()</div><div class='add'>+    fun_l10_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n155()</div><div class='add'>+    fun_l10_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n156()</div><div class='add'>+    fun_l10_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n157()</div><div class='add'>+    fun_l10_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n158()</div><div class='add'>+    fun_l10_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n159()</div><div class='add'>+    fun_l10_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n160()</div><div class='add'>+    fun_l10_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n161()</div><div class='add'>+    fun_l10_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n162()</div><div class='add'>+    fun_l10_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n163()</div><div class='add'>+    fun_l10_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n164()</div><div class='add'>+    fun_l10_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n165()</div><div class='add'>+    fun_l10_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n166()</div><div class='add'>+    fun_l10_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n167()</div><div class='add'>+    fun_l10_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n168()</div><div class='add'>+    fun_l10_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n169()</div><div class='add'>+    fun_l10_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n170()</div><div class='add'>+    fun_l10_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n171()</div><div class='add'>+    fun_l10_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n172()</div><div class='add'>+    fun_l10_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n173()</div><div class='add'>+    fun_l10_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n174()</div><div class='add'>+    fun_l10_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n175()</div><div class='add'>+    fun_l10_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n176()</div><div class='add'>+    fun_l10_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n177()</div><div class='add'>+    fun_l10_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n178()</div><div class='add'>+    fun_l10_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n179()</div><div class='add'>+    fun_l10_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n180()</div><div class='add'>+    fun_l10_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n181()</div><div class='add'>+    fun_l10_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n182()</div><div class='add'>+    fun_l10_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n183()</div><div class='add'>+    fun_l10_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n184()</div><div class='add'>+    fun_l10_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n185()</div><div class='add'>+    fun_l10_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n186()</div><div class='add'>+    fun_l10_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n187()</div><div class='add'>+    fun_l10_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n188()</div><div class='add'>+    fun_l10_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n189()</div><div class='add'>+    fun_l10_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n190()</div><div class='add'>+    fun_l10_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n191()</div><div class='add'>+    fun_l10_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n192()</div><div class='add'>+    fun_l10_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n193()</div><div class='add'>+    fun_l10_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n194()</div><div class='add'>+    fun_l10_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n195()</div><div class='add'>+    fun_l10_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n196()</div><div class='add'>+    fun_l10_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n197()</div><div class='add'>+    fun_l10_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n198()</div><div class='add'>+    fun_l10_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n199()</div><div class='add'>+    fun_l10_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n200()</div><div class='add'>+    fun_l10_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n201()</div><div class='add'>+    fun_l10_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n202()</div><div class='add'>+    fun_l10_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n203()</div><div class='add'>+    fun_l10_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n204()</div><div class='add'>+    fun_l10_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n205()</div><div class='add'>+    fun_l10_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n206()</div><div class='add'>+    fun_l10_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n207()</div><div class='add'>+    fun_l10_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n208()</div><div class='add'>+    fun_l10_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n209()</div><div class='add'>+    fun_l10_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n210()</div><div class='add'>+    fun_l10_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n211()</div><div class='add'>+    fun_l10_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n212()</div><div class='add'>+    fun_l10_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n213()</div><div class='add'>+    fun_l10_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n214()</div><div class='add'>+    fun_l10_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n215()</div><div class='add'>+    fun_l10_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n216()</div><div class='add'>+    fun_l10_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n217()</div><div class='add'>+    fun_l10_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n218()</div><div class='add'>+    fun_l10_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n219()</div><div class='add'>+    fun_l10_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n220()</div><div class='add'>+    fun_l10_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n221()</div><div class='add'>+    fun_l10_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n222()</div><div class='add'>+    fun_l10_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n223()</div><div class='add'>+    fun_l10_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n224()</div><div class='add'>+    fun_l10_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n225()</div><div class='add'>+    fun_l10_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n226()</div><div class='add'>+    fun_l10_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n227()</div><div class='add'>+    fun_l10_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n228()</div><div class='add'>+    fun_l10_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n229()</div><div class='add'>+    fun_l10_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n230()</div><div class='add'>+    fun_l10_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n231()</div><div class='add'>+    fun_l10_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n232()</div><div class='add'>+    fun_l10_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n233()</div><div class='add'>+    fun_l10_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n234()</div><div class='add'>+    fun_l10_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n235()</div><div class='add'>+    fun_l10_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n236()</div><div class='add'>+    fun_l10_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n237()</div><div class='add'>+    fun_l10_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n238()</div><div class='add'>+    fun_l10_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n239()</div><div class='add'>+    fun_l10_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n240()</div><div class='add'>+    fun_l10_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n241()</div><div class='add'>+    fun_l10_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n242()</div><div class='add'>+    fun_l10_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n243()</div><div class='add'>+    fun_l10_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n244()</div><div class='add'>+    fun_l10_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n245()</div><div class='add'>+    fun_l10_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n246()</div><div class='add'>+    fun_l10_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n247()</div><div class='add'>+    fun_l10_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n248()</div><div class='add'>+    fun_l10_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n249()</div><div class='add'>+    fun_l10_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n250()</div><div class='add'>+    fun_l10_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n251()</div><div class='add'>+    fun_l10_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n252()</div><div class='add'>+    fun_l10_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n253()</div><div class='add'>+    fun_l10_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n254()</div><div class='add'>+    fun_l10_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n255()</div><div class='add'>+    fun_l10_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n256()</div><div class='add'>+    fun_l10_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n257()</div><div class='add'>+    fun_l10_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n258()</div><div class='add'>+    fun_l10_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n259()</div><div class='add'>+    fun_l10_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n260()</div><div class='add'>+    fun_l10_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n261()</div><div class='add'>+    fun_l10_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n262()</div><div class='add'>+    fun_l10_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n263()</div><div class='add'>+    fun_l10_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n264()</div><div class='add'>+    fun_l10_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n265()</div><div class='add'>+    fun_l10_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n266()</div><div class='add'>+    fun_l10_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n267()</div><div class='add'>+    fun_l10_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n268()</div><div class='add'>+    fun_l10_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n269()</div><div class='add'>+    fun_l10_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n270()</div><div class='add'>+    fun_l10_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n271()</div><div class='add'>+    fun_l10_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n272()</div><div class='add'>+    fun_l10_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n273()</div><div class='add'>+    fun_l10_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n274()</div><div class='add'>+    fun_l10_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n275()</div><div class='add'>+    fun_l10_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n276()</div><div class='add'>+    fun_l10_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n277()</div><div class='add'>+    fun_l10_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n278()</div><div class='add'>+    fun_l10_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n279()</div><div class='add'>+    fun_l10_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n280()</div><div class='add'>+    fun_l10_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n281()</div><div class='add'>+    fun_l10_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n282()</div><div class='add'>+    fun_l10_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n283()</div><div class='add'>+    fun_l10_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n284()</div><div class='add'>+    fun_l10_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n285()</div><div class='add'>+    fun_l10_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n286()</div><div class='add'>+    fun_l10_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n287()</div><div class='add'>+    fun_l10_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n288()</div><div class='add'>+    fun_l10_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n289()</div><div class='add'>+    fun_l10_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n290()</div><div class='add'>+    fun_l10_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n291()</div><div class='add'>+    fun_l10_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n292()</div><div class='add'>+    fun_l10_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n293()</div><div class='add'>+    fun_l10_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n294()</div><div class='add'>+    fun_l10_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n295()</div><div class='add'>+    fun_l10_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n296()</div><div class='add'>+    fun_l10_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n297()</div><div class='add'>+    fun_l10_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n298()</div><div class='add'>+    fun_l10_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n299()</div><div class='add'>+    fun_l10_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n300()</div><div class='add'>+    fun_l10_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n301()</div><div class='add'>+    fun_l10_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n302()</div><div class='add'>+    fun_l10_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n303()</div><div class='add'>+    fun_l10_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n304()</div><div class='add'>+    fun_l10_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n305()</div><div class='add'>+    fun_l10_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n306()</div><div class='add'>+    fun_l10_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n307()</div><div class='add'>+    fun_l10_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n308()</div><div class='add'>+    fun_l10_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n309()</div><div class='add'>+    fun_l10_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n310()</div><div class='add'>+    fun_l10_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n311()</div><div class='add'>+    fun_l10_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n312()</div><div class='add'>+    fun_l10_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n313()</div><div class='add'>+    fun_l10_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n314()</div><div class='add'>+    fun_l10_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n315()</div><div class='add'>+    fun_l10_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n316()</div><div class='add'>+    fun_l10_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n317()</div><div class='add'>+    fun_l10_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n318()</div><div class='add'>+    fun_l10_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n319()</div><div class='add'>+    fun_l10_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n320()</div><div class='add'>+    fun_l10_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n321()</div><div class='add'>+    fun_l10_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n322()</div><div class='add'>+    fun_l10_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n323()</div><div class='add'>+    fun_l10_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n324()</div><div class='add'>+    fun_l10_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n325()</div><div class='add'>+    fun_l10_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n326()</div><div class='add'>+    fun_l10_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n327()</div><div class='add'>+    fun_l10_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n328()</div><div class='add'>+    fun_l10_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n329()</div><div class='add'>+    fun_l10_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n330()</div><div class='add'>+    fun_l10_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n331()</div><div class='add'>+    fun_l10_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n332()</div><div class='add'>+    fun_l10_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n333()</div><div class='add'>+    fun_l10_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n334()</div><div class='add'>+    fun_l10_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n335()</div><div class='add'>+    fun_l10_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n336()</div><div class='add'>+    fun_l10_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n337()</div><div class='add'>+    fun_l10_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n338()</div><div class='add'>+    fun_l10_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n339()</div><div class='add'>+    fun_l10_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n340()</div><div class='add'>+    fun_l10_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n341()</div><div class='add'>+    fun_l10_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n342()</div><div class='add'>+    fun_l10_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n343()</div><div class='add'>+    fun_l10_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n344()</div><div class='add'>+    fun_l10_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n345()</div><div class='add'>+    fun_l10_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n346()</div><div class='add'>+    fun_l10_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n347()</div><div class='add'>+    fun_l10_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n348()</div><div class='add'>+    fun_l10_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n349()</div><div class='add'>+    fun_l10_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n350()</div><div class='add'>+    fun_l10_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n351()</div><div class='add'>+    fun_l10_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n352()</div><div class='add'>+    fun_l10_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n353()</div><div class='add'>+    fun_l10_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n354()</div><div class='add'>+    fun_l10_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n355()</div><div class='add'>+    fun_l10_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n356()</div><div class='add'>+    fun_l10_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n357()</div><div class='add'>+    fun_l10_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n358()</div><div class='add'>+    fun_l10_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n359()</div><div class='add'>+    fun_l10_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n360()</div><div class='add'>+    fun_l10_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n361()</div><div class='add'>+    fun_l10_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n362()</div><div class='add'>+    fun_l10_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n363()</div><div class='add'>+    fun_l10_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n364()</div><div class='add'>+    fun_l10_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n365()</div><div class='add'>+    fun_l10_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n366()</div><div class='add'>+    fun_l10_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n367()</div><div class='add'>+    fun_l10_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n368()</div><div class='add'>+    fun_l10_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n369()</div><div class='add'>+    fun_l10_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n370()</div><div class='add'>+    fun_l10_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n371()</div><div class='add'>+    fun_l10_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n372()</div><div class='add'>+    fun_l10_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n373()</div><div class='add'>+    fun_l10_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n374()</div><div class='add'>+    fun_l10_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n375()</div><div class='add'>+    fun_l10_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n376()</div><div class='add'>+    fun_l10_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n377()</div><div class='add'>+    fun_l10_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n378()</div><div class='add'>+    fun_l10_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n379()</div><div class='add'>+    fun_l10_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n380()</div><div class='add'>+    fun_l10_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n381()</div><div class='add'>+    fun_l10_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n382()</div><div class='add'>+    fun_l10_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n383()</div><div class='add'>+    fun_l10_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n384()</div><div class='add'>+    fun_l10_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n385()</div><div class='add'>+    fun_l10_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n386()</div><div class='add'>+    fun_l10_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n387()</div><div class='add'>+    fun_l10_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n388()</div><div class='add'>+    fun_l10_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n389()</div><div class='add'>+    fun_l10_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n390()</div><div class='add'>+    fun_l10_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n391()</div><div class='add'>+    fun_l10_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n392()</div><div class='add'>+    fun_l10_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n393()</div><div class='add'>+    fun_l10_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n394()</div><div class='add'>+    fun_l10_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n395()</div><div class='add'>+    fun_l10_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n396()</div><div class='add'>+    fun_l10_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n397()</div><div class='add'>+    fun_l10_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n398()</div><div class='add'>+    fun_l10_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n399()</div><div class='add'>+    fun_l10_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n400()</div><div class='add'>+    fun_l10_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n401()</div><div class='add'>+    fun_l10_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n402()</div><div class='add'>+    fun_l10_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n403()</div><div class='add'>+    fun_l10_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n404()</div><div class='add'>+    fun_l10_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n405()</div><div class='add'>+    fun_l10_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n406()</div><div class='add'>+    fun_l10_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n407()</div><div class='add'>+    fun_l10_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n408()</div><div class='add'>+    fun_l10_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n409()</div><div class='add'>+    fun_l10_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n410()</div><div class='add'>+    fun_l10_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n411()</div><div class='add'>+    fun_l10_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n412()</div><div class='add'>+    fun_l10_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n413()</div><div class='add'>+    fun_l10_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n414()</div><div class='add'>+    fun_l10_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n415()</div><div class='add'>+    fun_l10_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n416()</div><div class='add'>+    fun_l10_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n417()</div><div class='add'>+    fun_l10_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n418()</div><div class='add'>+    fun_l10_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n419()</div><div class='add'>+    fun_l10_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n420()</div><div class='add'>+    fun_l10_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n421()</div><div class='add'>+    fun_l10_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n422()</div><div class='add'>+    fun_l10_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n423()</div><div class='add'>+    fun_l10_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n424()</div><div class='add'>+    fun_l10_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n425()</div><div class='add'>+    fun_l10_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n426()</div><div class='add'>+    fun_l10_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n427()</div><div class='add'>+    fun_l10_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n428()</div><div class='add'>+    fun_l10_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n429()</div><div class='add'>+    fun_l10_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n430()</div><div class='add'>+    fun_l10_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n431()</div><div class='add'>+    fun_l10_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n432()</div><div class='add'>+    fun_l10_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n433()</div><div class='add'>+    fun_l10_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n434()</div><div class='add'>+    fun_l10_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n435()</div><div class='add'>+    fun_l10_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n436()</div><div class='add'>+    fun_l10_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n437()</div><div class='add'>+    fun_l10_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n438()</div><div class='add'>+    fun_l10_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n439()</div><div class='add'>+    fun_l10_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n440()</div><div class='add'>+    fun_l10_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n441()</div><div class='add'>+    fun_l10_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n442()</div><div class='add'>+    fun_l10_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n443()</div><div class='add'>+    fun_l10_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n444()</div><div class='add'>+    fun_l10_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n445()</div><div class='add'>+    fun_l10_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n446()</div><div class='add'>+    fun_l10_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n447()</div><div class='add'>+    fun_l10_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n448()</div><div class='add'>+    fun_l10_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n449()</div><div class='add'>+    fun_l10_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n450()</div><div class='add'>+    fun_l10_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n451()</div><div class='add'>+    fun_l10_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n452()</div><div class='add'>+    fun_l10_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n453()</div><div class='add'>+    fun_l10_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n454()</div><div class='add'>+    fun_l10_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n455()</div><div class='add'>+    fun_l10_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n456()</div><div class='add'>+    fun_l10_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n457()</div><div class='add'>+    fun_l10_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n458()</div><div class='add'>+    fun_l10_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n459()</div><div class='add'>+    fun_l10_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n460()</div><div class='add'>+    fun_l10_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n461()</div><div class='add'>+    fun_l10_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n462()</div><div class='add'>+    fun_l10_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n463()</div><div class='add'>+    fun_l10_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n464()</div><div class='add'>+    fun_l10_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n465()</div><div class='add'>+    fun_l10_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n466()</div><div class='add'>+    fun_l10_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n467()</div><div class='add'>+    fun_l10_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n468()</div><div class='add'>+    fun_l10_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n469()</div><div class='add'>+    fun_l10_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n470()</div><div class='add'>+    fun_l10_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n471()</div><div class='add'>+    fun_l10_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n472()</div><div class='add'>+    fun_l10_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n473()</div><div class='add'>+    fun_l10_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n474()</div><div class='add'>+    fun_l10_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n475()</div><div class='add'>+    fun_l10_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n476()</div><div class='add'>+    fun_l10_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n477()</div><div class='add'>+    fun_l10_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n478()</div><div class='add'>+    fun_l10_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n479()</div><div class='add'>+    fun_l10_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n480()</div><div class='add'>+    fun_l10_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n481()</div><div class='add'>+    fun_l10_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n482()</div><div class='add'>+    fun_l10_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n483()</div><div class='add'>+    fun_l10_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n484()</div><div class='add'>+    fun_l10_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n485()</div><div class='add'>+    fun_l10_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n486()</div><div class='add'>+    fun_l10_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n487()</div><div class='add'>+    fun_l10_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n488()</div><div class='add'>+    fun_l10_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n489()</div><div class='add'>+    fun_l10_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n490()</div><div class='add'>+    fun_l10_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n491()</div><div class='add'>+    fun_l10_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n492()</div><div class='add'>+    fun_l10_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n493()</div><div class='add'>+    fun_l10_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n494()</div><div class='add'>+    fun_l10_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n495()</div><div class='add'>+    fun_l10_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n496()</div><div class='add'>+    fun_l10_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n497()</div><div class='add'>+    fun_l10_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n498()</div><div class='add'>+    fun_l10_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n499()</div><div class='add'>+    fun_l10_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n500()</div><div class='add'>+    fun_l10_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n501()</div><div class='add'>+    fun_l10_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n502()</div><div class='add'>+    fun_l10_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n503()</div><div class='add'>+    fun_l10_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n504()</div><div class='add'>+    fun_l10_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n505()</div><div class='add'>+    fun_l10_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n506()</div><div class='add'>+    fun_l10_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n507()</div><div class='add'>+    fun_l10_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n508()</div><div class='add'>+    fun_l10_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n509()</div><div class='add'>+    fun_l10_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n510()</div><div class='add'>+    fun_l10_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n511()</div><div class='add'>+    fun_l10_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n512()</div><div class='add'>+    fun_l10_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n513()</div><div class='add'>+    fun_l10_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n514()</div><div class='add'>+    fun_l10_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n515()</div><div class='add'>+    fun_l10_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n516()</div><div class='add'>+    fun_l10_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n517()</div><div class='add'>+    fun_l10_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n518()</div><div class='add'>+    fun_l10_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n519()</div><div class='add'>+    fun_l10_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n520()</div><div class='add'>+    fun_l10_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n521()</div><div class='add'>+    fun_l10_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n522()</div><div class='add'>+    fun_l10_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n523()</div><div class='add'>+    fun_l10_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n524()</div><div class='add'>+    fun_l10_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n525()</div><div class='add'>+    fun_l10_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n526()</div><div class='add'>+    fun_l10_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n527()</div><div class='add'>+    fun_l10_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n528()</div><div class='add'>+    fun_l10_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n529()</div><div class='add'>+    fun_l10_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n530()</div><div class='add'>+    fun_l10_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n531()</div><div class='add'>+    fun_l10_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n532()</div><div class='add'>+    fun_l10_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n533()</div><div class='add'>+    fun_l10_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n534()</div><div class='add'>+    fun_l10_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n535()</div><div class='add'>+    fun_l10_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n536()</div><div class='add'>+    fun_l10_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n537()</div><div class='add'>+    fun_l10_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n538()</div><div class='add'>+    fun_l10_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n539()</div><div class='add'>+    fun_l10_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n540()</div><div class='add'>+    fun_l10_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n541()</div><div class='add'>+    fun_l10_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n542()</div><div class='add'>+    fun_l10_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n543()</div><div class='add'>+    fun_l10_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n544()</div><div class='add'>+    fun_l10_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n545()</div><div class='add'>+    fun_l10_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n546()</div><div class='add'>+    fun_l10_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n547()</div><div class='add'>+    fun_l10_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n548()</div><div class='add'>+    fun_l10_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n549()</div><div class='add'>+    fun_l10_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n550()</div><div class='add'>+    fun_l10_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n551()</div><div class='add'>+    fun_l10_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n552()</div><div class='add'>+    fun_l10_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n553()</div><div class='add'>+    fun_l10_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n554()</div><div class='add'>+    fun_l10_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n555()</div><div class='add'>+    fun_l10_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n556()</div><div class='add'>+    fun_l10_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n557()</div><div class='add'>+    fun_l10_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n558()</div><div class='add'>+    fun_l10_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n559()</div><div class='add'>+    fun_l10_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n560()</div><div class='add'>+    fun_l10_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n561()</div><div class='add'>+    fun_l10_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n562()</div><div class='add'>+    fun_l10_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n563()</div><div class='add'>+    fun_l10_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n564()</div><div class='add'>+    fun_l10_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n565()</div><div class='add'>+    fun_l10_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n566()</div><div class='add'>+    fun_l10_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n567()</div><div class='add'>+    fun_l10_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n568()</div><div class='add'>+    fun_l10_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n569()</div><div class='add'>+    fun_l10_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n570()</div><div class='add'>+    fun_l10_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n571()</div><div class='add'>+    fun_l10_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n572()</div><div class='add'>+    fun_l10_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n573()</div><div class='add'>+    fun_l10_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n574()</div><div class='add'>+    fun_l10_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n575()</div><div class='add'>+    fun_l10_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n576()</div><div class='add'>+    fun_l10_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n577()</div><div class='add'>+    fun_l10_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n578()</div><div class='add'>+    fun_l10_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n579()</div><div class='add'>+    fun_l10_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n580()</div><div class='add'>+    fun_l10_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n581()</div><div class='add'>+    fun_l10_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n582()</div><div class='add'>+    fun_l10_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n583()</div><div class='add'>+    fun_l10_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n584()</div><div class='add'>+    fun_l10_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n585()</div><div class='add'>+    fun_l10_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n586()</div><div class='add'>+    fun_l10_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n587()</div><div class='add'>+    fun_l10_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n588()</div><div class='add'>+    fun_l10_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n589()</div><div class='add'>+    fun_l10_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n590()</div><div class='add'>+    fun_l10_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n591()</div><div class='add'>+    fun_l10_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n592()</div><div class='add'>+    fun_l10_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n593()</div><div class='add'>+    fun_l10_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n594()</div><div class='add'>+    fun_l10_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n595()</div><div class='add'>+    fun_l10_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n596()</div><div class='add'>+    fun_l10_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n597()</div><div class='add'>+    fun_l10_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n598()</div><div class='add'>+    fun_l10_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n599()</div><div class='add'>+    fun_l10_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n600()</div><div class='add'>+    fun_l10_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n601()</div><div class='add'>+    fun_l10_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n602()</div><div class='add'>+    fun_l10_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n603()</div><div class='add'>+    fun_l10_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n604()</div><div class='add'>+    fun_l10_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n605()</div><div class='add'>+    fun_l10_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n606()</div><div class='add'>+    fun_l10_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n607()</div><div class='add'>+    fun_l10_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n608()</div><div class='add'>+    fun_l10_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n609()</div><div class='add'>+    fun_l10_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n610()</div><div class='add'>+    fun_l10_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n611()</div><div class='add'>+    fun_l10_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n612()</div><div class='add'>+    fun_l10_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n613()</div><div class='add'>+    fun_l10_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n614()</div><div class='add'>+    fun_l10_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n615()</div><div class='add'>+    fun_l10_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n616()</div><div class='add'>+    fun_l10_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n617()</div><div class='add'>+    fun_l10_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n618()</div><div class='add'>+    fun_l10_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n619()</div><div class='add'>+    fun_l10_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n620()</div><div class='add'>+    fun_l10_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n621()</div><div class='add'>+    fun_l10_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n622()</div><div class='add'>+    fun_l10_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n623()</div><div class='add'>+    fun_l10_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n624()</div><div class='add'>+    fun_l10_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n625()</div><div class='add'>+    fun_l10_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n626()</div><div class='add'>+    fun_l10_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n627()</div><div class='add'>+    fun_l10_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n628()</div><div class='add'>+    fun_l10_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n629()</div><div class='add'>+    fun_l10_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n630()</div><div class='add'>+    fun_l10_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n631()</div><div class='add'>+    fun_l10_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n632()</div><div class='add'>+    fun_l10_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n633()</div><div class='add'>+    fun_l10_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n634()</div><div class='add'>+    fun_l10_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n635()</div><div class='add'>+    fun_l10_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n636()</div><div class='add'>+    fun_l10_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n637()</div><div class='add'>+    fun_l10_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n638()</div><div class='add'>+    fun_l10_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n639()</div><div class='add'>+    fun_l10_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n640()</div><div class='add'>+    fun_l10_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n641()</div><div class='add'>+    fun_l10_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n642()</div><div class='add'>+    fun_l10_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n643()</div><div class='add'>+    fun_l10_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n644()</div><div class='add'>+    fun_l10_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n645()</div><div class='add'>+    fun_l10_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n646()</div><div class='add'>+    fun_l10_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n647()</div><div class='add'>+    fun_l10_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n648()</div><div class='add'>+    fun_l10_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n649()</div><div class='add'>+    fun_l10_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n650()</div><div class='add'>+    fun_l10_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n651()</div><div class='add'>+    fun_l10_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n652()</div><div class='add'>+    fun_l10_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n653()</div><div class='add'>+    fun_l10_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n654()</div><div class='add'>+    fun_l10_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n655()</div><div class='add'>+    fun_l10_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n656()</div><div class='add'>+    fun_l10_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n657()</div><div class='add'>+    fun_l10_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n658()</div><div class='add'>+    fun_l10_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n659()</div><div class='add'>+    fun_l10_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n660()</div><div class='add'>+    fun_l10_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n661()</div><div class='add'>+    fun_l10_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n662()</div><div class='add'>+    fun_l10_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n663()</div><div class='add'>+    fun_l10_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n664()</div><div class='add'>+    fun_l10_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n665()</div><div class='add'>+    fun_l10_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n666()</div><div class='add'>+    fun_l10_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n667()</div><div class='add'>+    fun_l10_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n668()</div><div class='add'>+    fun_l10_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n669()</div><div class='add'>+    fun_l10_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n670()</div><div class='add'>+    fun_l10_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n671()</div><div class='add'>+    fun_l10_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n672()</div><div class='add'>+    fun_l10_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n673()</div><div class='add'>+    fun_l10_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n674()</div><div class='add'>+    fun_l10_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n675()</div><div class='add'>+    fun_l10_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n676()</div><div class='add'>+    fun_l10_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n677()</div><div class='add'>+    fun_l10_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n678()</div><div class='add'>+    fun_l10_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n679()</div><div class='add'>+    fun_l10_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n680()</div><div class='add'>+    fun_l10_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n681()</div><div class='add'>+    fun_l10_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n682()</div><div class='add'>+    fun_l10_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n683()</div><div class='add'>+    fun_l10_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n684()</div><div class='add'>+    fun_l10_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n685()</div><div class='add'>+    fun_l10_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n686()</div><div class='add'>+    fun_l10_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n687()</div><div class='add'>+    fun_l10_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n688()</div><div class='add'>+    fun_l10_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n689()</div><div class='add'>+    fun_l10_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n690()</div><div class='add'>+    fun_l10_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n691()</div><div class='add'>+    fun_l10_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n692()</div><div class='add'>+    fun_l10_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n693()</div><div class='add'>+    fun_l10_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n694()</div><div class='add'>+    fun_l10_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n695()</div><div class='add'>+    fun_l10_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n696()</div><div class='add'>+    fun_l10_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n697()</div><div class='add'>+    fun_l10_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n698()</div><div class='add'>+    fun_l10_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n699()</div><div class='add'>+    fun_l10_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n700()</div><div class='add'>+    fun_l10_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n701()</div><div class='add'>+    fun_l10_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n702()</div><div class='add'>+    fun_l10_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n703()</div><div class='add'>+    fun_l10_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n704()</div><div class='add'>+    fun_l10_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n705()</div><div class='add'>+    fun_l10_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n706()</div><div class='add'>+    fun_l10_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n707()</div><div class='add'>+    fun_l10_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n708()</div><div class='add'>+    fun_l10_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n709()</div><div class='add'>+    fun_l10_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n710()</div><div class='add'>+    fun_l10_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n711()</div><div class='add'>+    fun_l10_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n712()</div><div class='add'>+    fun_l10_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n713()</div><div class='add'>+    fun_l10_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n714()</div><div class='add'>+    fun_l10_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n715()</div><div class='add'>+    fun_l10_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n716()</div><div class='add'>+    fun_l10_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n717()</div><div class='add'>+    fun_l10_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n718()</div><div class='add'>+    fun_l10_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n719()</div><div class='add'>+    fun_l10_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n720()</div><div class='add'>+    fun_l10_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n721()</div><div class='add'>+    fun_l10_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n722()</div><div class='add'>+    fun_l10_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n723()</div><div class='add'>+    fun_l10_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n724()</div><div class='add'>+    fun_l10_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n725()</div><div class='add'>+    fun_l10_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n726()</div><div class='add'>+    fun_l10_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n727()</div><div class='add'>+    fun_l10_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n728()</div><div class='add'>+    fun_l10_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n729()</div><div class='add'>+    fun_l10_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n730()</div><div class='add'>+    fun_l10_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n731()</div><div class='add'>+    fun_l10_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n732()</div><div class='add'>+    fun_l10_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n733()</div><div class='add'>+    fun_l10_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n734()</div><div class='add'>+    fun_l10_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n735()</div><div class='add'>+    fun_l10_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n736()</div><div class='add'>+    fun_l10_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n737()</div><div class='add'>+    fun_l10_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n738()</div><div class='add'>+    fun_l10_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n739()</div><div class='add'>+    fun_l10_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n740()</div><div class='add'>+    fun_l10_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n741()</div><div class='add'>+    fun_l10_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n742()</div><div class='add'>+    fun_l10_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n743()</div><div class='add'>+    fun_l10_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n744()</div><div class='add'>+    fun_l10_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n745()</div><div class='add'>+    fun_l10_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n746()</div><div class='add'>+    fun_l10_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n747()</div><div class='add'>+    fun_l10_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n748()</div><div class='add'>+    fun_l10_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n749()</div><div class='add'>+    fun_l10_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n750()</div><div class='add'>+    fun_l10_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n751()</div><div class='add'>+    fun_l10_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n752()</div><div class='add'>+    fun_l10_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n753()</div><div class='add'>+    fun_l10_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n754()</div><div class='add'>+    fun_l10_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n755()</div><div class='add'>+    fun_l10_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n756()</div><div class='add'>+    fun_l10_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n757()</div><div class='add'>+    fun_l10_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n758()</div><div class='add'>+    fun_l10_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n759()</div><div class='add'>+    fun_l10_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n760()</div><div class='add'>+    fun_l10_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n761()</div><div class='add'>+    fun_l10_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n762()</div><div class='add'>+    fun_l10_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n763()</div><div class='add'>+    fun_l10_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n764()</div><div class='add'>+    fun_l10_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n765()</div><div class='add'>+    fun_l10_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n766()</div><div class='add'>+    fun_l10_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n767()</div><div class='add'>+    fun_l10_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n768()</div><div class='add'>+    fun_l10_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n769()</div><div class='add'>+    fun_l10_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n770()</div><div class='add'>+    fun_l10_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n771()</div><div class='add'>+    fun_l10_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n772()</div><div class='add'>+    fun_l10_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n773()</div><div class='add'>+    fun_l10_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n774()</div><div class='add'>+    fun_l10_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n775()</div><div class='add'>+    fun_l10_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n776()</div><div class='add'>+    fun_l10_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n777()</div><div class='add'>+    fun_l10_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n778()</div><div class='add'>+    fun_l10_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n779()</div><div class='add'>+    fun_l10_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n780()</div><div class='add'>+    fun_l10_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n781()</div><div class='add'>+    fun_l10_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n782()</div><div class='add'>+    fun_l10_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n783()</div><div class='add'>+    fun_l10_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n784()</div><div class='add'>+    fun_l10_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n785()</div><div class='add'>+    fun_l10_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n786()</div><div class='add'>+    fun_l10_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n787()</div><div class='add'>+    fun_l10_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n788()</div><div class='add'>+    fun_l10_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n789()</div><div class='add'>+    fun_l10_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n790()</div><div class='add'>+    fun_l10_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n791()</div><div class='add'>+    fun_l10_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n792()</div><div class='add'>+    fun_l10_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n793()</div><div class='add'>+    fun_l10_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n794()</div><div class='add'>+    fun_l10_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n795()</div><div class='add'>+    fun_l10_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n796()</div><div class='add'>+    fun_l10_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n797()</div><div class='add'>+    fun_l10_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n798()</div><div class='add'>+    fun_l10_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n799()</div><div class='add'>+    fun_l10_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n800()</div><div class='add'>+    fun_l10_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n801()</div><div class='add'>+    fun_l10_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n802()</div><div class='add'>+    fun_l10_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n803()</div><div class='add'>+    fun_l10_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n804()</div><div class='add'>+    fun_l10_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n805()</div><div class='add'>+    fun_l10_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n806()</div><div class='add'>+    fun_l10_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n807()</div><div class='add'>+    fun_l10_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n808()</div><div class='add'>+    fun_l10_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n809()</div><div class='add'>+    fun_l10_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n810()</div><div class='add'>+    fun_l10_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n811()</div><div class='add'>+    fun_l10_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n812()</div><div class='add'>+    fun_l10_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n813()</div><div class='add'>+    fun_l10_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n814()</div><div class='add'>+    fun_l10_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n815()</div><div class='add'>+    fun_l10_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n816()</div><div class='add'>+    fun_l10_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n817()</div><div class='add'>+    fun_l10_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n818()</div><div class='add'>+    fun_l10_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n819()</div><div class='add'>+    fun_l10_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n820()</div><div class='add'>+    fun_l10_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n821()</div><div class='add'>+    fun_l10_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n822()</div><div class='add'>+    fun_l10_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n823()</div><div class='add'>+    fun_l10_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n824()</div><div class='add'>+    fun_l10_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n825()</div><div class='add'>+    fun_l10_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n826()</div><div class='add'>+    fun_l10_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n827()</div><div class='add'>+    fun_l10_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n828()</div><div class='add'>+    fun_l10_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n829()</div><div class='add'>+    fun_l10_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n830()</div><div class='add'>+    fun_l10_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n831()</div><div class='add'>+    fun_l10_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n832()</div><div class='add'>+    fun_l10_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n833()</div><div class='add'>+    fun_l10_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n834()</div><div class='add'>+    fun_l10_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n835()</div><div class='add'>+    fun_l10_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n836()</div><div class='add'>+    fun_l10_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n837()</div><div class='add'>+    fun_l10_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n838()</div><div class='add'>+    fun_l10_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n839()</div><div class='add'>+    fun_l10_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n840()</div><div class='add'>+    fun_l10_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n841()</div><div class='add'>+    fun_l10_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n842()</div><div class='add'>+    fun_l10_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n843()</div><div class='add'>+    fun_l10_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n844()</div><div class='add'>+    fun_l10_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n845()</div><div class='add'>+    fun_l10_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n846()</div><div class='add'>+    fun_l10_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n847()</div><div class='add'>+    fun_l10_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n848()</div><div class='add'>+    fun_l10_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n849()</div><div class='add'>+    fun_l10_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n850()</div><div class='add'>+    fun_l10_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n851()</div><div class='add'>+    fun_l10_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n852()</div><div class='add'>+    fun_l10_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n853()</div><div class='add'>+    fun_l10_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n854()</div><div class='add'>+    fun_l10_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n855()</div><div class='add'>+    fun_l10_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n856()</div><div class='add'>+    fun_l10_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n857()</div><div class='add'>+    fun_l10_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n858()</div><div class='add'>+    fun_l10_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n859()</div><div class='add'>+    fun_l10_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n860()</div><div class='add'>+    fun_l10_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n861()</div><div class='add'>+    fun_l10_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n862()</div><div class='add'>+    fun_l10_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n863()</div><div class='add'>+    fun_l10_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n864()</div><div class='add'>+    fun_l10_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n865()</div><div class='add'>+    fun_l10_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n866()</div><div class='add'>+    fun_l10_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n867()</div><div class='add'>+    fun_l10_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n868()</div><div class='add'>+    fun_l10_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n869()</div><div class='add'>+    fun_l10_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n870()</div><div class='add'>+    fun_l10_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n871()</div><div class='add'>+    fun_l10_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n872()</div><div class='add'>+    fun_l10_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n873()</div><div class='add'>+    fun_l10_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n874()</div><div class='add'>+    fun_l10_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n875()</div><div class='add'>+    fun_l10_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n876()</div><div class='add'>+    fun_l10_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n877()</div><div class='add'>+    fun_l10_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n878()</div><div class='add'>+    fun_l10_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n879()</div><div class='add'>+    fun_l10_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n880()</div><div class='add'>+    fun_l10_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n881()</div><div class='add'>+    fun_l10_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n882()</div><div class='add'>+    fun_l10_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n883()</div><div class='add'>+    fun_l10_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n884()</div><div class='add'>+    fun_l10_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n885()</div><div class='add'>+    fun_l10_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n886()</div><div class='add'>+    fun_l10_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n887()</div><div class='add'>+    fun_l10_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n888()</div><div class='add'>+    fun_l10_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n889()</div><div class='add'>+    fun_l10_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n890()</div><div class='add'>+    fun_l10_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n891()</div><div class='add'>+    fun_l10_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n892()</div><div class='add'>+    fun_l10_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n893()</div><div class='add'>+    fun_l10_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n894()</div><div class='add'>+    fun_l10_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n895()</div><div class='add'>+    fun_l10_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n896()</div><div class='add'>+    fun_l10_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n897()</div><div class='add'>+    fun_l10_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n898()</div><div class='add'>+    fun_l10_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n899()</div><div class='add'>+    fun_l10_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n900()</div><div class='add'>+    fun_l10_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n901()</div><div class='add'>+    fun_l10_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n902()</div><div class='add'>+    fun_l10_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n903()</div><div class='add'>+    fun_l10_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n904()</div><div class='add'>+    fun_l10_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n905()</div><div class='add'>+    fun_l10_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n906()</div><div class='add'>+    fun_l10_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n907()</div><div class='add'>+    fun_l10_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n908()</div><div class='add'>+    fun_l10_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n909()</div><div class='add'>+    fun_l10_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n910()</div><div class='add'>+    fun_l10_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n911()</div><div class='add'>+    fun_l10_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n912()</div><div class='add'>+    fun_l10_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n913()</div><div class='add'>+    fun_l10_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n914()</div><div class='add'>+    fun_l10_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n915()</div><div class='add'>+    fun_l10_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n916()</div><div class='add'>+    fun_l10_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n917()</div><div class='add'>+    fun_l10_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n918()</div><div class='add'>+    fun_l10_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n919()</div><div class='add'>+    fun_l10_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n920()</div><div class='add'>+    fun_l10_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n921()</div><div class='add'>+    fun_l10_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n922()</div><div class='add'>+    fun_l10_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n923()</div><div class='add'>+    fun_l10_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n924()</div><div class='add'>+    fun_l10_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n925()</div><div class='add'>+    fun_l10_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n926()</div><div class='add'>+    fun_l10_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n927()</div><div class='add'>+    fun_l10_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n928()</div><div class='add'>+    fun_l10_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n929()</div><div class='add'>+    fun_l10_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n930()</div><div class='add'>+    fun_l10_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n931()</div><div class='add'>+    fun_l10_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n932()</div><div class='add'>+    fun_l10_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n933()</div><div class='add'>+    fun_l10_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n934()</div><div class='add'>+    fun_l10_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n935()</div><div class='add'>+    fun_l10_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n936()</div><div class='add'>+    fun_l10_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n937()</div><div class='add'>+    fun_l10_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n938()</div><div class='add'>+    fun_l10_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n939()</div><div class='add'>+    fun_l10_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n940()</div><div class='add'>+    fun_l10_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n941()</div><div class='add'>+    fun_l10_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n942()</div><div class='add'>+    fun_l10_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n943()</div><div class='add'>+    fun_l10_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n944()</div><div class='add'>+    fun_l10_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n945()</div><div class='add'>+    fun_l10_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n946()</div><div class='add'>+    fun_l10_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n947()</div><div class='add'>+    fun_l10_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n948()</div><div class='add'>+    fun_l10_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n949()</div><div class='add'>+    fun_l10_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n950()</div><div class='add'>+    fun_l10_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n951()</div><div class='add'>+    fun_l10_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n952()</div><div class='add'>+    fun_l10_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n953()</div><div class='add'>+    fun_l10_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n954()</div><div class='add'>+    fun_l10_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n955()</div><div class='add'>+    fun_l10_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n956()</div><div class='add'>+    fun_l10_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n957()</div><div class='add'>+    fun_l10_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n958()</div><div class='add'>+    fun_l10_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n959()</div><div class='add'>+    fun_l10_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n960()</div><div class='add'>+    fun_l10_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n961()</div><div class='add'>+    fun_l10_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n962()</div><div class='add'>+    fun_l10_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n963()</div><div class='add'>+    fun_l10_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n964()</div><div class='add'>+    fun_l10_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n965()</div><div class='add'>+    fun_l10_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n966()</div><div class='add'>+    fun_l10_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n967()</div><div class='add'>+    fun_l10_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n968()</div><div class='add'>+    fun_l10_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n969()</div><div class='add'>+    fun_l10_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n970()</div><div class='add'>+    fun_l10_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n971()</div><div class='add'>+    fun_l10_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n972()</div><div class='add'>+    fun_l10_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n973()</div><div class='add'>+    fun_l10_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n974()</div><div class='add'>+    fun_l10_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n975()</div><div class='add'>+    fun_l10_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n976()</div><div class='add'>+    fun_l10_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n977()</div><div class='add'>+    fun_l10_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n978()</div><div class='add'>+    fun_l10_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n979()</div><div class='add'>+    fun_l10_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n980()</div><div class='add'>+    fun_l10_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n981()</div><div class='add'>+    fun_l10_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n982()</div><div class='add'>+    fun_l10_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n983()</div><div class='add'>+    fun_l10_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n984()</div><div class='add'>+    fun_l10_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n985()</div><div class='add'>+    fun_l10_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n986()</div><div class='add'>+    fun_l10_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n987()</div><div class='add'>+    fun_l10_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n988()</div><div class='add'>+    fun_l10_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n989()</div><div class='add'>+    fun_l10_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n990()</div><div class='add'>+    fun_l10_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n991()</div><div class='add'>+    fun_l10_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n992()</div><div class='add'>+    fun_l10_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n993()</div><div class='add'>+    fun_l10_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n994()</div><div class='add'>+    fun_l10_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n995()</div><div class='add'>+    fun_l10_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n996()</div><div class='add'>+    fun_l10_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n997()</div><div class='add'>+    fun_l10_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n998()</div><div class='add'>+    fun_l10_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l9_n999()</div><div class='add'>+    fun_l10_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n0()</div><div class='add'>+    fun_l11_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n1()</div><div class='add'>+    fun_l11_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n2()</div><div class='add'>+    fun_l11_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n3()</div><div class='add'>+    fun_l11_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n4()</div><div class='add'>+    fun_l11_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n5()</div><div class='add'>+    fun_l11_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n6()</div><div class='add'>+    fun_l11_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n7()</div><div class='add'>+    fun_l11_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n8()</div><div class='add'>+    fun_l11_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n9()</div><div class='add'>+    fun_l11_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n10()</div><div class='add'>+    fun_l11_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n11()</div><div class='add'>+    fun_l11_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n12()</div><div class='add'>+    fun_l11_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n13()</div><div class='add'>+    fun_l11_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n14()</div><div class='add'>+    fun_l11_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n15()</div><div class='add'>+    fun_l11_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n16()</div><div class='add'>+    fun_l11_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n17()</div><div class='add'>+    fun_l11_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n18()</div><div class='add'>+    fun_l11_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n19()</div><div class='add'>+    fun_l11_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n20()</div><div class='add'>+    fun_l11_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n21()</div><div class='add'>+    fun_l11_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n22()</div><div class='add'>+    fun_l11_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n23()</div><div class='add'>+    fun_l11_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n24()</div><div class='add'>+    fun_l11_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n25()</div><div class='add'>+    fun_l11_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n26()</div><div class='add'>+    fun_l11_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n27()</div><div class='add'>+    fun_l11_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n28()</div><div class='add'>+    fun_l11_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n29()</div><div class='add'>+    fun_l11_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n30()</div><div class='add'>+    fun_l11_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n31()</div><div class='add'>+    fun_l11_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n32()</div><div class='add'>+    fun_l11_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n33()</div><div class='add'>+    fun_l11_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n34()</div><div class='add'>+    fun_l11_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n35()</div><div class='add'>+    fun_l11_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n36()</div><div class='add'>+    fun_l11_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n37()</div><div class='add'>+    fun_l11_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n38()</div><div class='add'>+    fun_l11_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n39()</div><div class='add'>+    fun_l11_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n40()</div><div class='add'>+    fun_l11_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n41()</div><div class='add'>+    fun_l11_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n42()</div><div class='add'>+    fun_l11_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n43()</div><div class='add'>+    fun_l11_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n44()</div><div class='add'>+    fun_l11_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n45()</div><div class='add'>+    fun_l11_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n46()</div><div class='add'>+    fun_l11_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n47()</div><div class='add'>+    fun_l11_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n48()</div><div class='add'>+    fun_l11_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n49()</div><div class='add'>+    fun_l11_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n50()</div><div class='add'>+    fun_l11_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n51()</div><div class='add'>+    fun_l11_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n52()</div><div class='add'>+    fun_l11_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n53()</div><div class='add'>+    fun_l11_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n54()</div><div class='add'>+    fun_l11_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n55()</div><div class='add'>+    fun_l11_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n56()</div><div class='add'>+    fun_l11_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n57()</div><div class='add'>+    fun_l11_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n58()</div><div class='add'>+    fun_l11_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n59()</div><div class='add'>+    fun_l11_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n60()</div><div class='add'>+    fun_l11_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n61()</div><div class='add'>+    fun_l11_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n62()</div><div class='add'>+    fun_l11_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n63()</div><div class='add'>+    fun_l11_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n64()</div><div class='add'>+    fun_l11_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n65()</div><div class='add'>+    fun_l11_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n66()</div><div class='add'>+    fun_l11_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n67()</div><div class='add'>+    fun_l11_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n68()</div><div class='add'>+    fun_l11_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n69()</div><div class='add'>+    fun_l11_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n70()</div><div class='add'>+    fun_l11_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n71()</div><div class='add'>+    fun_l11_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n72()</div><div class='add'>+    fun_l11_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n73()</div><div class='add'>+    fun_l11_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n74()</div><div class='add'>+    fun_l11_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n75()</div><div class='add'>+    fun_l11_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n76()</div><div class='add'>+    fun_l11_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n77()</div><div class='add'>+    fun_l11_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n78()</div><div class='add'>+    fun_l11_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n79()</div><div class='add'>+    fun_l11_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n80()</div><div class='add'>+    fun_l11_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n81()</div><div class='add'>+    fun_l11_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n82()</div><div class='add'>+    fun_l11_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n83()</div><div class='add'>+    fun_l11_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n84()</div><div class='add'>+    fun_l11_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n85()</div><div class='add'>+    fun_l11_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n86()</div><div class='add'>+    fun_l11_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n87()</div><div class='add'>+    fun_l11_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n88()</div><div class='add'>+    fun_l11_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n89()</div><div class='add'>+    fun_l11_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n90()</div><div class='add'>+    fun_l11_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n91()</div><div class='add'>+    fun_l11_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n92()</div><div class='add'>+    fun_l11_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n93()</div><div class='add'>+    fun_l11_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n94()</div><div class='add'>+    fun_l11_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n95()</div><div class='add'>+    fun_l11_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n96()</div><div class='add'>+    fun_l11_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n97()</div><div class='add'>+    fun_l11_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n98()</div><div class='add'>+    fun_l11_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n99()</div><div class='add'>+    fun_l11_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n100()</div><div class='add'>+    fun_l11_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n101()</div><div class='add'>+    fun_l11_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n102()</div><div class='add'>+    fun_l11_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n103()</div><div class='add'>+    fun_l11_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n104()</div><div class='add'>+    fun_l11_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n105()</div><div class='add'>+    fun_l11_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n106()</div><div class='add'>+    fun_l11_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n107()</div><div class='add'>+    fun_l11_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n108()</div><div class='add'>+    fun_l11_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n109()</div><div class='add'>+    fun_l11_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n110()</div><div class='add'>+    fun_l11_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n111()</div><div class='add'>+    fun_l11_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n112()</div><div class='add'>+    fun_l11_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n113()</div><div class='add'>+    fun_l11_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n114()</div><div class='add'>+    fun_l11_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n115()</div><div class='add'>+    fun_l11_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n116()</div><div class='add'>+    fun_l11_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n117()</div><div class='add'>+    fun_l11_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n118()</div><div class='add'>+    fun_l11_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n119()</div><div class='add'>+    fun_l11_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n120()</div><div class='add'>+    fun_l11_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n121()</div><div class='add'>+    fun_l11_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n122()</div><div class='add'>+    fun_l11_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n123()</div><div class='add'>+    fun_l11_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n124()</div><div class='add'>+    fun_l11_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n125()</div><div class='add'>+    fun_l11_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n126()</div><div class='add'>+    fun_l11_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n127()</div><div class='add'>+    fun_l11_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n128()</div><div class='add'>+    fun_l11_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n129()</div><div class='add'>+    fun_l11_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n130()</div><div class='add'>+    fun_l11_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n131()</div><div class='add'>+    fun_l11_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n132()</div><div class='add'>+    fun_l11_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n133()</div><div class='add'>+    fun_l11_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n134()</div><div class='add'>+    fun_l11_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n135()</div><div class='add'>+    fun_l11_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n136()</div><div class='add'>+    fun_l11_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n137()</div><div class='add'>+    fun_l11_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n138()</div><div class='add'>+    fun_l11_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n139()</div><div class='add'>+    fun_l11_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n140()</div><div class='add'>+    fun_l11_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n141()</div><div class='add'>+    fun_l11_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n142()</div><div class='add'>+    fun_l11_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n143()</div><div class='add'>+    fun_l11_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n144()</div><div class='add'>+    fun_l11_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n145()</div><div class='add'>+    fun_l11_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n146()</div><div class='add'>+    fun_l11_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n147()</div><div class='add'>+    fun_l11_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n148()</div><div class='add'>+    fun_l11_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n149()</div><div class='add'>+    fun_l11_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n150()</div><div class='add'>+    fun_l11_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n151()</div><div class='add'>+    fun_l11_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n152()</div><div class='add'>+    fun_l11_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n153()</div><div class='add'>+    fun_l11_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n154()</div><div class='add'>+    fun_l11_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n155()</div><div class='add'>+    fun_l11_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n156()</div><div class='add'>+    fun_l11_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n157()</div><div class='add'>+    fun_l11_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n158()</div><div class='add'>+    fun_l11_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n159()</div><div class='add'>+    fun_l11_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n160()</div><div class='add'>+    fun_l11_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n161()</div><div class='add'>+    fun_l11_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n162()</div><div class='add'>+    fun_l11_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n163()</div><div class='add'>+    fun_l11_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n164()</div><div class='add'>+    fun_l11_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n165()</div><div class='add'>+    fun_l11_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n166()</div><div class='add'>+    fun_l11_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n167()</div><div class='add'>+    fun_l11_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n168()</div><div class='add'>+    fun_l11_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n169()</div><div class='add'>+    fun_l11_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n170()</div><div class='add'>+    fun_l11_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n171()</div><div class='add'>+    fun_l11_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n172()</div><div class='add'>+    fun_l11_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n173()</div><div class='add'>+    fun_l11_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n174()</div><div class='add'>+    fun_l11_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n175()</div><div class='add'>+    fun_l11_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n176()</div><div class='add'>+    fun_l11_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n177()</div><div class='add'>+    fun_l11_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n178()</div><div class='add'>+    fun_l11_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n179()</div><div class='add'>+    fun_l11_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n180()</div><div class='add'>+    fun_l11_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n181()</div><div class='add'>+    fun_l11_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n182()</div><div class='add'>+    fun_l11_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n183()</div><div class='add'>+    fun_l11_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n184()</div><div class='add'>+    fun_l11_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n185()</div><div class='add'>+    fun_l11_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n186()</div><div class='add'>+    fun_l11_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n187()</div><div class='add'>+    fun_l11_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n188()</div><div class='add'>+    fun_l11_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n189()</div><div class='add'>+    fun_l11_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n190()</div><div class='add'>+    fun_l11_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n191()</div><div class='add'>+    fun_l11_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n192()</div><div class='add'>+    fun_l11_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n193()</div><div class='add'>+    fun_l11_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n194()</div><div class='add'>+    fun_l11_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n195()</div><div class='add'>+    fun_l11_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n196()</div><div class='add'>+    fun_l11_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n197()</div><div class='add'>+    fun_l11_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n198()</div><div class='add'>+    fun_l11_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n199()</div><div class='add'>+    fun_l11_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n200()</div><div class='add'>+    fun_l11_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n201()</div><div class='add'>+    fun_l11_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n202()</div><div class='add'>+    fun_l11_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n203()</div><div class='add'>+    fun_l11_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n204()</div><div class='add'>+    fun_l11_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n205()</div><div class='add'>+    fun_l11_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n206()</div><div class='add'>+    fun_l11_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n207()</div><div class='add'>+    fun_l11_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n208()</div><div class='add'>+    fun_l11_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n209()</div><div class='add'>+    fun_l11_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n210()</div><div class='add'>+    fun_l11_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n211()</div><div class='add'>+    fun_l11_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n212()</div><div class='add'>+    fun_l11_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n213()</div><div class='add'>+    fun_l11_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n214()</div><div class='add'>+    fun_l11_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n215()</div><div class='add'>+    fun_l11_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n216()</div><div class='add'>+    fun_l11_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n217()</div><div class='add'>+    fun_l11_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n218()</div><div class='add'>+    fun_l11_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n219()</div><div class='add'>+    fun_l11_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n220()</div><div class='add'>+    fun_l11_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n221()</div><div class='add'>+    fun_l11_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n222()</div><div class='add'>+    fun_l11_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n223()</div><div class='add'>+    fun_l11_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n224()</div><div class='add'>+    fun_l11_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n225()</div><div class='add'>+    fun_l11_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n226()</div><div class='add'>+    fun_l11_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n227()</div><div class='add'>+    fun_l11_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n228()</div><div class='add'>+    fun_l11_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n229()</div><div class='add'>+    fun_l11_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n230()</div><div class='add'>+    fun_l11_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n231()</div><div class='add'>+    fun_l11_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n232()</div><div class='add'>+    fun_l11_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n233()</div><div class='add'>+    fun_l11_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n234()</div><div class='add'>+    fun_l11_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n235()</div><div class='add'>+    fun_l11_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n236()</div><div class='add'>+    fun_l11_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n237()</div><div class='add'>+    fun_l11_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n238()</div><div class='add'>+    fun_l11_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n239()</div><div class='add'>+    fun_l11_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n240()</div><div class='add'>+    fun_l11_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n241()</div><div class='add'>+    fun_l11_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n242()</div><div class='add'>+    fun_l11_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n243()</div><div class='add'>+    fun_l11_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n244()</div><div class='add'>+    fun_l11_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n245()</div><div class='add'>+    fun_l11_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n246()</div><div class='add'>+    fun_l11_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n247()</div><div class='add'>+    fun_l11_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n248()</div><div class='add'>+    fun_l11_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n249()</div><div class='add'>+    fun_l11_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n250()</div><div class='add'>+    fun_l11_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n251()</div><div class='add'>+    fun_l11_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n252()</div><div class='add'>+    fun_l11_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n253()</div><div class='add'>+    fun_l11_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n254()</div><div class='add'>+    fun_l11_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n255()</div><div class='add'>+    fun_l11_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n256()</div><div class='add'>+    fun_l11_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n257()</div><div class='add'>+    fun_l11_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n258()</div><div class='add'>+    fun_l11_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n259()</div><div class='add'>+    fun_l11_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n260()</div><div class='add'>+    fun_l11_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n261()</div><div class='add'>+    fun_l11_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n262()</div><div class='add'>+    fun_l11_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n263()</div><div class='add'>+    fun_l11_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n264()</div><div class='add'>+    fun_l11_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n265()</div><div class='add'>+    fun_l11_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n266()</div><div class='add'>+    fun_l11_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n267()</div><div class='add'>+    fun_l11_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n268()</div><div class='add'>+    fun_l11_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n269()</div><div class='add'>+    fun_l11_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n270()</div><div class='add'>+    fun_l11_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n271()</div><div class='add'>+    fun_l11_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n272()</div><div class='add'>+    fun_l11_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n273()</div><div class='add'>+    fun_l11_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n274()</div><div class='add'>+    fun_l11_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n275()</div><div class='add'>+    fun_l11_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n276()</div><div class='add'>+    fun_l11_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n277()</div><div class='add'>+    fun_l11_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n278()</div><div class='add'>+    fun_l11_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n279()</div><div class='add'>+    fun_l11_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n280()</div><div class='add'>+    fun_l11_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n281()</div><div class='add'>+    fun_l11_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n282()</div><div class='add'>+    fun_l11_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n283()</div><div class='add'>+    fun_l11_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n284()</div><div class='add'>+    fun_l11_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n285()</div><div class='add'>+    fun_l11_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n286()</div><div class='add'>+    fun_l11_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n287()</div><div class='add'>+    fun_l11_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n288()</div><div class='add'>+    fun_l11_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n289()</div><div class='add'>+    fun_l11_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n290()</div><div class='add'>+    fun_l11_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n291()</div><div class='add'>+    fun_l11_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n292()</div><div class='add'>+    fun_l11_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n293()</div><div class='add'>+    fun_l11_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n294()</div><div class='add'>+    fun_l11_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n295()</div><div class='add'>+    fun_l11_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n296()</div><div class='add'>+    fun_l11_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n297()</div><div class='add'>+    fun_l11_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n298()</div><div class='add'>+    fun_l11_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n299()</div><div class='add'>+    fun_l11_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n300()</div><div class='add'>+    fun_l11_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n301()</div><div class='add'>+    fun_l11_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n302()</div><div class='add'>+    fun_l11_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n303()</div><div class='add'>+    fun_l11_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n304()</div><div class='add'>+    fun_l11_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n305()</div><div class='add'>+    fun_l11_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n306()</div><div class='add'>+    fun_l11_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n307()</div><div class='add'>+    fun_l11_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n308()</div><div class='add'>+    fun_l11_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n309()</div><div class='add'>+    fun_l11_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n310()</div><div class='add'>+    fun_l11_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n311()</div><div class='add'>+    fun_l11_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n312()</div><div class='add'>+    fun_l11_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n313()</div><div class='add'>+    fun_l11_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n314()</div><div class='add'>+    fun_l11_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n315()</div><div class='add'>+    fun_l11_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n316()</div><div class='add'>+    fun_l11_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n317()</div><div class='add'>+    fun_l11_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n318()</div><div class='add'>+    fun_l11_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n319()</div><div class='add'>+    fun_l11_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n320()</div><div class='add'>+    fun_l11_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n321()</div><div class='add'>+    fun_l11_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n322()</div><div class='add'>+    fun_l11_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n323()</div><div class='add'>+    fun_l11_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n324()</div><div class='add'>+    fun_l11_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n325()</div><div class='add'>+    fun_l11_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n326()</div><div class='add'>+    fun_l11_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n327()</div><div class='add'>+    fun_l11_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n328()</div><div class='add'>+    fun_l11_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n329()</div><div class='add'>+    fun_l11_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n330()</div><div class='add'>+    fun_l11_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n331()</div><div class='add'>+    fun_l11_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n332()</div><div class='add'>+    fun_l11_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n333()</div><div class='add'>+    fun_l11_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n334()</div><div class='add'>+    fun_l11_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n335()</div><div class='add'>+    fun_l11_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n336()</div><div class='add'>+    fun_l11_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n337()</div><div class='add'>+    fun_l11_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n338()</div><div class='add'>+    fun_l11_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n339()</div><div class='add'>+    fun_l11_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n340()</div><div class='add'>+    fun_l11_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n341()</div><div class='add'>+    fun_l11_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n342()</div><div class='add'>+    fun_l11_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n343()</div><div class='add'>+    fun_l11_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n344()</div><div class='add'>+    fun_l11_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n345()</div><div class='add'>+    fun_l11_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n346()</div><div class='add'>+    fun_l11_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n347()</div><div class='add'>+    fun_l11_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n348()</div><div class='add'>+    fun_l11_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n349()</div><div class='add'>+    fun_l11_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n350()</div><div class='add'>+    fun_l11_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n351()</div><div class='add'>+    fun_l11_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n352()</div><div class='add'>+    fun_l11_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n353()</div><div class='add'>+    fun_l11_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n354()</div><div class='add'>+    fun_l11_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n355()</div><div class='add'>+    fun_l11_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n356()</div><div class='add'>+    fun_l11_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n357()</div><div class='add'>+    fun_l11_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n358()</div><div class='add'>+    fun_l11_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n359()</div><div class='add'>+    fun_l11_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n360()</div><div class='add'>+    fun_l11_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n361()</div><div class='add'>+    fun_l11_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n362()</div><div class='add'>+    fun_l11_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n363()</div><div class='add'>+    fun_l11_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n364()</div><div class='add'>+    fun_l11_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n365()</div><div class='add'>+    fun_l11_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n366()</div><div class='add'>+    fun_l11_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n367()</div><div class='add'>+    fun_l11_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n368()</div><div class='add'>+    fun_l11_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n369()</div><div class='add'>+    fun_l11_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n370()</div><div class='add'>+    fun_l11_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n371()</div><div class='add'>+    fun_l11_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n372()</div><div class='add'>+    fun_l11_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n373()</div><div class='add'>+    fun_l11_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n374()</div><div class='add'>+    fun_l11_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n375()</div><div class='add'>+    fun_l11_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n376()</div><div class='add'>+    fun_l11_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n377()</div><div class='add'>+    fun_l11_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n378()</div><div class='add'>+    fun_l11_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n379()</div><div class='add'>+    fun_l11_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n380()</div><div class='add'>+    fun_l11_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n381()</div><div class='add'>+    fun_l11_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n382()</div><div class='add'>+    fun_l11_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n383()</div><div class='add'>+    fun_l11_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n384()</div><div class='add'>+    fun_l11_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n385()</div><div class='add'>+    fun_l11_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n386()</div><div class='add'>+    fun_l11_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n387()</div><div class='add'>+    fun_l11_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n388()</div><div class='add'>+    fun_l11_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n389()</div><div class='add'>+    fun_l11_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n390()</div><div class='add'>+    fun_l11_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n391()</div><div class='add'>+    fun_l11_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n392()</div><div class='add'>+    fun_l11_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n393()</div><div class='add'>+    fun_l11_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n394()</div><div class='add'>+    fun_l11_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n395()</div><div class='add'>+    fun_l11_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n396()</div><div class='add'>+    fun_l11_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n397()</div><div class='add'>+    fun_l11_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n398()</div><div class='add'>+    fun_l11_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n399()</div><div class='add'>+    fun_l11_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n400()</div><div class='add'>+    fun_l11_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n401()</div><div class='add'>+    fun_l11_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n402()</div><div class='add'>+    fun_l11_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n403()</div><div class='add'>+    fun_l11_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n404()</div><div class='add'>+    fun_l11_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n405()</div><div class='add'>+    fun_l11_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n406()</div><div class='add'>+    fun_l11_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n407()</div><div class='add'>+    fun_l11_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n408()</div><div class='add'>+    fun_l11_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n409()</div><div class='add'>+    fun_l11_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n410()</div><div class='add'>+    fun_l11_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n411()</div><div class='add'>+    fun_l11_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n412()</div><div class='add'>+    fun_l11_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n413()</div><div class='add'>+    fun_l11_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n414()</div><div class='add'>+    fun_l11_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n415()</div><div class='add'>+    fun_l11_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n416()</div><div class='add'>+    fun_l11_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n417()</div><div class='add'>+    fun_l11_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n418()</div><div class='add'>+    fun_l11_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n419()</div><div class='add'>+    fun_l11_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n420()</div><div class='add'>+    fun_l11_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n421()</div><div class='add'>+    fun_l11_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n422()</div><div class='add'>+    fun_l11_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n423()</div><div class='add'>+    fun_l11_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n424()</div><div class='add'>+    fun_l11_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n425()</div><div class='add'>+    fun_l11_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n426()</div><div class='add'>+    fun_l11_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n427()</div><div class='add'>+    fun_l11_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n428()</div><div class='add'>+    fun_l11_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n429()</div><div class='add'>+    fun_l11_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n430()</div><div class='add'>+    fun_l11_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n431()</div><div class='add'>+    fun_l11_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n432()</div><div class='add'>+    fun_l11_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n433()</div><div class='add'>+    fun_l11_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n434()</div><div class='add'>+    fun_l11_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n435()</div><div class='add'>+    fun_l11_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n436()</div><div class='add'>+    fun_l11_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n437()</div><div class='add'>+    fun_l11_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n438()</div><div class='add'>+    fun_l11_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n439()</div><div class='add'>+    fun_l11_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n440()</div><div class='add'>+    fun_l11_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n441()</div><div class='add'>+    fun_l11_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n442()</div><div class='add'>+    fun_l11_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n443()</div><div class='add'>+    fun_l11_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n444()</div><div class='add'>+    fun_l11_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n445()</div><div class='add'>+    fun_l11_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n446()</div><div class='add'>+    fun_l11_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n447()</div><div class='add'>+    fun_l11_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n448()</div><div class='add'>+    fun_l11_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n449()</div><div class='add'>+    fun_l11_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n450()</div><div class='add'>+    fun_l11_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n451()</div><div class='add'>+    fun_l11_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n452()</div><div class='add'>+    fun_l11_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n453()</div><div class='add'>+    fun_l11_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n454()</div><div class='add'>+    fun_l11_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n455()</div><div class='add'>+    fun_l11_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n456()</div><div class='add'>+    fun_l11_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n457()</div><div class='add'>+    fun_l11_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n458()</div><div class='add'>+    fun_l11_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n459()</div><div class='add'>+    fun_l11_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n460()</div><div class='add'>+    fun_l11_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n461()</div><div class='add'>+    fun_l11_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n462()</div><div class='add'>+    fun_l11_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n463()</div><div class='add'>+    fun_l11_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n464()</div><div class='add'>+    fun_l11_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n465()</div><div class='add'>+    fun_l11_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n466()</div><div class='add'>+    fun_l11_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n467()</div><div class='add'>+    fun_l11_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n468()</div><div class='add'>+    fun_l11_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n469()</div><div class='add'>+    fun_l11_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n470()</div><div class='add'>+    fun_l11_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n471()</div><div class='add'>+    fun_l11_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n472()</div><div class='add'>+    fun_l11_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n473()</div><div class='add'>+    fun_l11_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n474()</div><div class='add'>+    fun_l11_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n475()</div><div class='add'>+    fun_l11_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n476()</div><div class='add'>+    fun_l11_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n477()</div><div class='add'>+    fun_l11_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n478()</div><div class='add'>+    fun_l11_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n479()</div><div class='add'>+    fun_l11_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n480()</div><div class='add'>+    fun_l11_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n481()</div><div class='add'>+    fun_l11_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n482()</div><div class='add'>+    fun_l11_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n483()</div><div class='add'>+    fun_l11_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n484()</div><div class='add'>+    fun_l11_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n485()</div><div class='add'>+    fun_l11_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n486()</div><div class='add'>+    fun_l11_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n487()</div><div class='add'>+    fun_l11_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n488()</div><div class='add'>+    fun_l11_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n489()</div><div class='add'>+    fun_l11_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n490()</div><div class='add'>+    fun_l11_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n491()</div><div class='add'>+    fun_l11_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n492()</div><div class='add'>+    fun_l11_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n493()</div><div class='add'>+    fun_l11_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n494()</div><div class='add'>+    fun_l11_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n495()</div><div class='add'>+    fun_l11_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n496()</div><div class='add'>+    fun_l11_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n497()</div><div class='add'>+    fun_l11_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n498()</div><div class='add'>+    fun_l11_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n499()</div><div class='add'>+    fun_l11_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n500()</div><div class='add'>+    fun_l11_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n501()</div><div class='add'>+    fun_l11_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n502()</div><div class='add'>+    fun_l11_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n503()</div><div class='add'>+    fun_l11_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n504()</div><div class='add'>+    fun_l11_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n505()</div><div class='add'>+    fun_l11_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n506()</div><div class='add'>+    fun_l11_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n507()</div><div class='add'>+    fun_l11_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n508()</div><div class='add'>+    fun_l11_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n509()</div><div class='add'>+    fun_l11_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n510()</div><div class='add'>+    fun_l11_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n511()</div><div class='add'>+    fun_l11_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n512()</div><div class='add'>+    fun_l11_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n513()</div><div class='add'>+    fun_l11_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n514()</div><div class='add'>+    fun_l11_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n515()</div><div class='add'>+    fun_l11_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n516()</div><div class='add'>+    fun_l11_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n517()</div><div class='add'>+    fun_l11_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n518()</div><div class='add'>+    fun_l11_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n519()</div><div class='add'>+    fun_l11_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n520()</div><div class='add'>+    fun_l11_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n521()</div><div class='add'>+    fun_l11_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n522()</div><div class='add'>+    fun_l11_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n523()</div><div class='add'>+    fun_l11_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n524()</div><div class='add'>+    fun_l11_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n525()</div><div class='add'>+    fun_l11_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n526()</div><div class='add'>+    fun_l11_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n527()</div><div class='add'>+    fun_l11_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n528()</div><div class='add'>+    fun_l11_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n529()</div><div class='add'>+    fun_l11_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n530()</div><div class='add'>+    fun_l11_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n531()</div><div class='add'>+    fun_l11_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n532()</div><div class='add'>+    fun_l11_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n533()</div><div class='add'>+    fun_l11_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n534()</div><div class='add'>+    fun_l11_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n535()</div><div class='add'>+    fun_l11_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n536()</div><div class='add'>+    fun_l11_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n537()</div><div class='add'>+    fun_l11_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n538()</div><div class='add'>+    fun_l11_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n539()</div><div class='add'>+    fun_l11_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n540()</div><div class='add'>+    fun_l11_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n541()</div><div class='add'>+    fun_l11_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n542()</div><div class='add'>+    fun_l11_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n543()</div><div class='add'>+    fun_l11_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n544()</div><div class='add'>+    fun_l11_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n545()</div><div class='add'>+    fun_l11_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n546()</div><div class='add'>+    fun_l11_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n547()</div><div class='add'>+    fun_l11_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n548()</div><div class='add'>+    fun_l11_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n549()</div><div class='add'>+    fun_l11_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n550()</div><div class='add'>+    fun_l11_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n551()</div><div class='add'>+    fun_l11_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n552()</div><div class='add'>+    fun_l11_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n553()</div><div class='add'>+    fun_l11_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n554()</div><div class='add'>+    fun_l11_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n555()</div><div class='add'>+    fun_l11_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n556()</div><div class='add'>+    fun_l11_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n557()</div><div class='add'>+    fun_l11_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n558()</div><div class='add'>+    fun_l11_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n559()</div><div class='add'>+    fun_l11_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n560()</div><div class='add'>+    fun_l11_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n561()</div><div class='add'>+    fun_l11_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n562()</div><div class='add'>+    fun_l11_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n563()</div><div class='add'>+    fun_l11_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n564()</div><div class='add'>+    fun_l11_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n565()</div><div class='add'>+    fun_l11_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n566()</div><div class='add'>+    fun_l11_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n567()</div><div class='add'>+    fun_l11_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n568()</div><div class='add'>+    fun_l11_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n569()</div><div class='add'>+    fun_l11_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n570()</div><div class='add'>+    fun_l11_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n571()</div><div class='add'>+    fun_l11_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n572()</div><div class='add'>+    fun_l11_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n573()</div><div class='add'>+    fun_l11_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n574()</div><div class='add'>+    fun_l11_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n575()</div><div class='add'>+    fun_l11_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n576()</div><div class='add'>+    fun_l11_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n577()</div><div class='add'>+    fun_l11_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n578()</div><div class='add'>+    fun_l11_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n579()</div><div class='add'>+    fun_l11_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n580()</div><div class='add'>+    fun_l11_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n581()</div><div class='add'>+    fun_l11_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n582()</div><div class='add'>+    fun_l11_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n583()</div><div class='add'>+    fun_l11_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n584()</div><div class='add'>+    fun_l11_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n585()</div><div class='add'>+    fun_l11_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n586()</div><div class='add'>+    fun_l11_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n587()</div><div class='add'>+    fun_l11_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n588()</div><div class='add'>+    fun_l11_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n589()</div><div class='add'>+    fun_l11_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n590()</div><div class='add'>+    fun_l11_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n591()</div><div class='add'>+    fun_l11_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n592()</div><div class='add'>+    fun_l11_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n593()</div><div class='add'>+    fun_l11_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n594()</div><div class='add'>+    fun_l11_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n595()</div><div class='add'>+    fun_l11_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n596()</div><div class='add'>+    fun_l11_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n597()</div><div class='add'>+    fun_l11_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n598()</div><div class='add'>+    fun_l11_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n599()</div><div class='add'>+    fun_l11_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n600()</div><div class='add'>+    fun_l11_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n601()</div><div class='add'>+    fun_l11_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n602()</div><div class='add'>+    fun_l11_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n603()</div><div class='add'>+    fun_l11_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n604()</div><div class='add'>+    fun_l11_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n605()</div><div class='add'>+    fun_l11_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n606()</div><div class='add'>+    fun_l11_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n607()</div><div class='add'>+    fun_l11_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n608()</div><div class='add'>+    fun_l11_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n609()</div><div class='add'>+    fun_l11_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n610()</div><div class='add'>+    fun_l11_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n611()</div><div class='add'>+    fun_l11_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n612()</div><div class='add'>+    fun_l11_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n613()</div><div class='add'>+    fun_l11_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n614()</div><div class='add'>+    fun_l11_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n615()</div><div class='add'>+    fun_l11_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n616()</div><div class='add'>+    fun_l11_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n617()</div><div class='add'>+    fun_l11_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n618()</div><div class='add'>+    fun_l11_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n619()</div><div class='add'>+    fun_l11_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n620()</div><div class='add'>+    fun_l11_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n621()</div><div class='add'>+    fun_l11_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n622()</div><div class='add'>+    fun_l11_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n623()</div><div class='add'>+    fun_l11_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n624()</div><div class='add'>+    fun_l11_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n625()</div><div class='add'>+    fun_l11_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n626()</div><div class='add'>+    fun_l11_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n627()</div><div class='add'>+    fun_l11_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n628()</div><div class='add'>+    fun_l11_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n629()</div><div class='add'>+    fun_l11_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n630()</div><div class='add'>+    fun_l11_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n631()</div><div class='add'>+    fun_l11_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n632()</div><div class='add'>+    fun_l11_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n633()</div><div class='add'>+    fun_l11_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n634()</div><div class='add'>+    fun_l11_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n635()</div><div class='add'>+    fun_l11_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n636()</div><div class='add'>+    fun_l11_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n637()</div><div class='add'>+    fun_l11_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n638()</div><div class='add'>+    fun_l11_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n639()</div><div class='add'>+    fun_l11_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n640()</div><div class='add'>+    fun_l11_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n641()</div><div class='add'>+    fun_l11_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n642()</div><div class='add'>+    fun_l11_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n643()</div><div class='add'>+    fun_l11_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n644()</div><div class='add'>+    fun_l11_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n645()</div><div class='add'>+    fun_l11_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n646()</div><div class='add'>+    fun_l11_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n647()</div><div class='add'>+    fun_l11_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n648()</div><div class='add'>+    fun_l11_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n649()</div><div class='add'>+    fun_l11_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n650()</div><div class='add'>+    fun_l11_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n651()</div><div class='add'>+    fun_l11_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n652()</div><div class='add'>+    fun_l11_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n653()</div><div class='add'>+    fun_l11_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n654()</div><div class='add'>+    fun_l11_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n655()</div><div class='add'>+    fun_l11_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n656()</div><div class='add'>+    fun_l11_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n657()</div><div class='add'>+    fun_l11_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n658()</div><div class='add'>+    fun_l11_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n659()</div><div class='add'>+    fun_l11_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n660()</div><div class='add'>+    fun_l11_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n661()</div><div class='add'>+    fun_l11_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n662()</div><div class='add'>+    fun_l11_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n663()</div><div class='add'>+    fun_l11_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n664()</div><div class='add'>+    fun_l11_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n665()</div><div class='add'>+    fun_l11_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n666()</div><div class='add'>+    fun_l11_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n667()</div><div class='add'>+    fun_l11_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n668()</div><div class='add'>+    fun_l11_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n669()</div><div class='add'>+    fun_l11_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n670()</div><div class='add'>+    fun_l11_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n671()</div><div class='add'>+    fun_l11_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n672()</div><div class='add'>+    fun_l11_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n673()</div><div class='add'>+    fun_l11_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n674()</div><div class='add'>+    fun_l11_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n675()</div><div class='add'>+    fun_l11_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n676()</div><div class='add'>+    fun_l11_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n677()</div><div class='add'>+    fun_l11_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n678()</div><div class='add'>+    fun_l11_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n679()</div><div class='add'>+    fun_l11_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n680()</div><div class='add'>+    fun_l11_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n681()</div><div class='add'>+    fun_l11_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n682()</div><div class='add'>+    fun_l11_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n683()</div><div class='add'>+    fun_l11_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n684()</div><div class='add'>+    fun_l11_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n685()</div><div class='add'>+    fun_l11_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n686()</div><div class='add'>+    fun_l11_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n687()</div><div class='add'>+    fun_l11_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n688()</div><div class='add'>+    fun_l11_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n689()</div><div class='add'>+    fun_l11_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n690()</div><div class='add'>+    fun_l11_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n691()</div><div class='add'>+    fun_l11_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n692()</div><div class='add'>+    fun_l11_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n693()</div><div class='add'>+    fun_l11_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n694()</div><div class='add'>+    fun_l11_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n695()</div><div class='add'>+    fun_l11_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n696()</div><div class='add'>+    fun_l11_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n697()</div><div class='add'>+    fun_l11_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n698()</div><div class='add'>+    fun_l11_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n699()</div><div class='add'>+    fun_l11_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n700()</div><div class='add'>+    fun_l11_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n701()</div><div class='add'>+    fun_l11_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n702()</div><div class='add'>+    fun_l11_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n703()</div><div class='add'>+    fun_l11_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n704()</div><div class='add'>+    fun_l11_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n705()</div><div class='add'>+    fun_l11_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n706()</div><div class='add'>+    fun_l11_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n707()</div><div class='add'>+    fun_l11_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n708()</div><div class='add'>+    fun_l11_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n709()</div><div class='add'>+    fun_l11_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n710()</div><div class='add'>+    fun_l11_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n711()</div><div class='add'>+    fun_l11_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n712()</div><div class='add'>+    fun_l11_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n713()</div><div class='add'>+    fun_l11_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n714()</div><div class='add'>+    fun_l11_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n715()</div><div class='add'>+    fun_l11_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n716()</div><div class='add'>+    fun_l11_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n717()</div><div class='add'>+    fun_l11_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n718()</div><div class='add'>+    fun_l11_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n719()</div><div class='add'>+    fun_l11_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n720()</div><div class='add'>+    fun_l11_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n721()</div><div class='add'>+    fun_l11_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n722()</div><div class='add'>+    fun_l11_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n723()</div><div class='add'>+    fun_l11_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n724()</div><div class='add'>+    fun_l11_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n725()</div><div class='add'>+    fun_l11_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n726()</div><div class='add'>+    fun_l11_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n727()</div><div class='add'>+    fun_l11_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n728()</div><div class='add'>+    fun_l11_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n729()</div><div class='add'>+    fun_l11_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n730()</div><div class='add'>+    fun_l11_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n731()</div><div class='add'>+    fun_l11_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n732()</div><div class='add'>+    fun_l11_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n733()</div><div class='add'>+    fun_l11_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n734()</div><div class='add'>+    fun_l11_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n735()</div><div class='add'>+    fun_l11_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n736()</div><div class='add'>+    fun_l11_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n737()</div><div class='add'>+    fun_l11_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n738()</div><div class='add'>+    fun_l11_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n739()</div><div class='add'>+    fun_l11_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n740()</div><div class='add'>+    fun_l11_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n741()</div><div class='add'>+    fun_l11_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n742()</div><div class='add'>+    fun_l11_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n743()</div><div class='add'>+    fun_l11_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n744()</div><div class='add'>+    fun_l11_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n745()</div><div class='add'>+    fun_l11_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n746()</div><div class='add'>+    fun_l11_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n747()</div><div class='add'>+    fun_l11_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n748()</div><div class='add'>+    fun_l11_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n749()</div><div class='add'>+    fun_l11_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n750()</div><div class='add'>+    fun_l11_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n751()</div><div class='add'>+    fun_l11_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n752()</div><div class='add'>+    fun_l11_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n753()</div><div class='add'>+    fun_l11_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n754()</div><div class='add'>+    fun_l11_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n755()</div><div class='add'>+    fun_l11_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n756()</div><div class='add'>+    fun_l11_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n757()</div><div class='add'>+    fun_l11_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n758()</div><div class='add'>+    fun_l11_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n759()</div><div class='add'>+    fun_l11_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n760()</div><div class='add'>+    fun_l11_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n761()</div><div class='add'>+    fun_l11_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n762()</div><div class='add'>+    fun_l11_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n763()</div><div class='add'>+    fun_l11_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n764()</div><div class='add'>+    fun_l11_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n765()</div><div class='add'>+    fun_l11_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n766()</div><div class='add'>+    fun_l11_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n767()</div><div class='add'>+    fun_l11_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n768()</div><div class='add'>+    fun_l11_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n769()</div><div class='add'>+    fun_l11_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n770()</div><div class='add'>+    fun_l11_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n771()</div><div class='add'>+    fun_l11_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n772()</div><div class='add'>+    fun_l11_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n773()</div><div class='add'>+    fun_l11_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n774()</div><div class='add'>+    fun_l11_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n775()</div><div class='add'>+    fun_l11_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n776()</div><div class='add'>+    fun_l11_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n777()</div><div class='add'>+    fun_l11_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n778()</div><div class='add'>+    fun_l11_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n779()</div><div class='add'>+    fun_l11_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n780()</div><div class='add'>+    fun_l11_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n781()</div><div class='add'>+    fun_l11_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n782()</div><div class='add'>+    fun_l11_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n783()</div><div class='add'>+    fun_l11_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n784()</div><div class='add'>+    fun_l11_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n785()</div><div class='add'>+    fun_l11_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n786()</div><div class='add'>+    fun_l11_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n787()</div><div class='add'>+    fun_l11_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n788()</div><div class='add'>+    fun_l11_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n789()</div><div class='add'>+    fun_l11_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n790()</div><div class='add'>+    fun_l11_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n791()</div><div class='add'>+    fun_l11_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n792()</div><div class='add'>+    fun_l11_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n793()</div><div class='add'>+    fun_l11_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n794()</div><div class='add'>+    fun_l11_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n795()</div><div class='add'>+    fun_l11_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n796()</div><div class='add'>+    fun_l11_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n797()</div><div class='add'>+    fun_l11_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n798()</div><div class='add'>+    fun_l11_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n799()</div><div class='add'>+    fun_l11_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n800()</div><div class='add'>+    fun_l11_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n801()</div><div class='add'>+    fun_l11_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n802()</div><div class='add'>+    fun_l11_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n803()</div><div class='add'>+    fun_l11_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n804()</div><div class='add'>+    fun_l11_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n805()</div><div class='add'>+    fun_l11_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n806()</div><div class='add'>+    fun_l11_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n807()</div><div class='add'>+    fun_l11_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n808()</div><div class='add'>+    fun_l11_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n809()</div><div class='add'>+    fun_l11_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n810()</div><div class='add'>+    fun_l11_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n811()</div><div class='add'>+    fun_l11_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n812()</div><div class='add'>+    fun_l11_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n813()</div><div class='add'>+    fun_l11_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n814()</div><div class='add'>+    fun_l11_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n815()</div><div class='add'>+    fun_l11_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n816()</div><div class='add'>+    fun_l11_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n817()</div><div class='add'>+    fun_l11_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n818()</div><div class='add'>+    fun_l11_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n819()</div><div class='add'>+    fun_l11_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n820()</div><div class='add'>+    fun_l11_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n821()</div><div class='add'>+    fun_l11_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n822()</div><div class='add'>+    fun_l11_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n823()</div><div class='add'>+    fun_l11_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n824()</div><div class='add'>+    fun_l11_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n825()</div><div class='add'>+    fun_l11_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n826()</div><div class='add'>+    fun_l11_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n827()</div><div class='add'>+    fun_l11_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n828()</div><div class='add'>+    fun_l11_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n829()</div><div class='add'>+    fun_l11_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n830()</div><div class='add'>+    fun_l11_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n831()</div><div class='add'>+    fun_l11_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n832()</div><div class='add'>+    fun_l11_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n833()</div><div class='add'>+    fun_l11_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n834()</div><div class='add'>+    fun_l11_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n835()</div><div class='add'>+    fun_l11_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n836()</div><div class='add'>+    fun_l11_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n837()</div><div class='add'>+    fun_l11_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n838()</div><div class='add'>+    fun_l11_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n839()</div><div class='add'>+    fun_l11_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n840()</div><div class='add'>+    fun_l11_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n841()</div><div class='add'>+    fun_l11_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n842()</div><div class='add'>+    fun_l11_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n843()</div><div class='add'>+    fun_l11_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n844()</div><div class='add'>+    fun_l11_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n845()</div><div class='add'>+    fun_l11_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n846()</div><div class='add'>+    fun_l11_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n847()</div><div class='add'>+    fun_l11_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n848()</div><div class='add'>+    fun_l11_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n849()</div><div class='add'>+    fun_l11_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n850()</div><div class='add'>+    fun_l11_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n851()</div><div class='add'>+    fun_l11_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n852()</div><div class='add'>+    fun_l11_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n853()</div><div class='add'>+    fun_l11_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n854()</div><div class='add'>+    fun_l11_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n855()</div><div class='add'>+    fun_l11_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n856()</div><div class='add'>+    fun_l11_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n857()</div><div class='add'>+    fun_l11_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n858()</div><div class='add'>+    fun_l11_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n859()</div><div class='add'>+    fun_l11_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n860()</div><div class='add'>+    fun_l11_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n861()</div><div class='add'>+    fun_l11_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n862()</div><div class='add'>+    fun_l11_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n863()</div><div class='add'>+    fun_l11_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n864()</div><div class='add'>+    fun_l11_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n865()</div><div class='add'>+    fun_l11_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n866()</div><div class='add'>+    fun_l11_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n867()</div><div class='add'>+    fun_l11_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n868()</div><div class='add'>+    fun_l11_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n869()</div><div class='add'>+    fun_l11_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n870()</div><div class='add'>+    fun_l11_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n871()</div><div class='add'>+    fun_l11_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n872()</div><div class='add'>+    fun_l11_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n873()</div><div class='add'>+    fun_l11_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n874()</div><div class='add'>+    fun_l11_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n875()</div><div class='add'>+    fun_l11_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n876()</div><div class='add'>+    fun_l11_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n877()</div><div class='add'>+    fun_l11_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n878()</div><div class='add'>+    fun_l11_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n879()</div><div class='add'>+    fun_l11_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n880()</div><div class='add'>+    fun_l11_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n881()</div><div class='add'>+    fun_l11_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n882()</div><div class='add'>+    fun_l11_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n883()</div><div class='add'>+    fun_l11_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n884()</div><div class='add'>+    fun_l11_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n885()</div><div class='add'>+    fun_l11_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n886()</div><div class='add'>+    fun_l11_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n887()</div><div class='add'>+    fun_l11_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n888()</div><div class='add'>+    fun_l11_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n889()</div><div class='add'>+    fun_l11_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n890()</div><div class='add'>+    fun_l11_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n891()</div><div class='add'>+    fun_l11_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n892()</div><div class='add'>+    fun_l11_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n893()</div><div class='add'>+    fun_l11_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n894()</div><div class='add'>+    fun_l11_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n895()</div><div class='add'>+    fun_l11_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n896()</div><div class='add'>+    fun_l11_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n897()</div><div class='add'>+    fun_l11_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n898()</div><div class='add'>+    fun_l11_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n899()</div><div class='add'>+    fun_l11_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n900()</div><div class='add'>+    fun_l11_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n901()</div><div class='add'>+    fun_l11_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n902()</div><div class='add'>+    fun_l11_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n903()</div><div class='add'>+    fun_l11_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n904()</div><div class='add'>+    fun_l11_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n905()</div><div class='add'>+    fun_l11_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n906()</div><div class='add'>+    fun_l11_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n907()</div><div class='add'>+    fun_l11_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n908()</div><div class='add'>+    fun_l11_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n909()</div><div class='add'>+    fun_l11_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n910()</div><div class='add'>+    fun_l11_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n911()</div><div class='add'>+    fun_l11_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n912()</div><div class='add'>+    fun_l11_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n913()</div><div class='add'>+    fun_l11_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n914()</div><div class='add'>+    fun_l11_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n915()</div><div class='add'>+    fun_l11_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n916()</div><div class='add'>+    fun_l11_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n917()</div><div class='add'>+    fun_l11_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n918()</div><div class='add'>+    fun_l11_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n919()</div><div class='add'>+    fun_l11_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n920()</div><div class='add'>+    fun_l11_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n921()</div><div class='add'>+    fun_l11_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n922()</div><div class='add'>+    fun_l11_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n923()</div><div class='add'>+    fun_l11_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n924()</div><div class='add'>+    fun_l11_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n925()</div><div class='add'>+    fun_l11_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n926()</div><div class='add'>+    fun_l11_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n927()</div><div class='add'>+    fun_l11_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n928()</div><div class='add'>+    fun_l11_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n929()</div><div class='add'>+    fun_l11_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n930()</div><div class='add'>+    fun_l11_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n931()</div><div class='add'>+    fun_l11_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n932()</div><div class='add'>+    fun_l11_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n933()</div><div class='add'>+    fun_l11_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n934()</div><div class='add'>+    fun_l11_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n935()</div><div class='add'>+    fun_l11_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n936()</div><div class='add'>+    fun_l11_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n937()</div><div class='add'>+    fun_l11_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n938()</div><div class='add'>+    fun_l11_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n939()</div><div class='add'>+    fun_l11_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n940()</div><div class='add'>+    fun_l11_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n941()</div><div class='add'>+    fun_l11_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n942()</div><div class='add'>+    fun_l11_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n943()</div><div class='add'>+    fun_l11_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n944()</div><div class='add'>+    fun_l11_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n945()</div><div class='add'>+    fun_l11_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n946()</div><div class='add'>+    fun_l11_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n947()</div><div class='add'>+    fun_l11_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n948()</div><div class='add'>+    fun_l11_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n949()</div><div class='add'>+    fun_l11_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n950()</div><div class='add'>+    fun_l11_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n951()</div><div class='add'>+    fun_l11_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n952()</div><div class='add'>+    fun_l11_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n953()</div><div class='add'>+    fun_l11_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n954()</div><div class='add'>+    fun_l11_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n955()</div><div class='add'>+    fun_l11_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n956()</div><div class='add'>+    fun_l11_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n957()</div><div class='add'>+    fun_l11_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n958()</div><div class='add'>+    fun_l11_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n959()</div><div class='add'>+    fun_l11_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n960()</div><div class='add'>+    fun_l11_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n961()</div><div class='add'>+    fun_l11_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n962()</div><div class='add'>+    fun_l11_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n963()</div><div class='add'>+    fun_l11_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n964()</div><div class='add'>+    fun_l11_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n965()</div><div class='add'>+    fun_l11_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n966()</div><div class='add'>+    fun_l11_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n967()</div><div class='add'>+    fun_l11_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n968()</div><div class='add'>+    fun_l11_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n969()</div><div class='add'>+    fun_l11_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n970()</div><div class='add'>+    fun_l11_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n971()</div><div class='add'>+    fun_l11_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n972()</div><div class='add'>+    fun_l11_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n973()</div><div class='add'>+    fun_l11_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n974()</div><div class='add'>+    fun_l11_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n975()</div><div class='add'>+    fun_l11_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n976()</div><div class='add'>+    fun_l11_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n977()</div><div class='add'>+    fun_l11_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n978()</div><div class='add'>+    fun_l11_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n979()</div><div class='add'>+    fun_l11_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n980()</div><div class='add'>+    fun_l11_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n981()</div><div class='add'>+    fun_l11_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n982()</div><div class='add'>+    fun_l11_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n983()</div><div class='add'>+    fun_l11_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n984()</div><div class='add'>+    fun_l11_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n985()</div><div class='add'>+    fun_l11_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n986()</div><div class='add'>+    fun_l11_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n987()</div><div class='add'>+    fun_l11_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n988()</div><div class='add'>+    fun_l11_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n989()</div><div class='add'>+    fun_l11_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n990()</div><div class='add'>+    fun_l11_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n991()</div><div class='add'>+    fun_l11_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n992()</div><div class='add'>+    fun_l11_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n993()</div><div class='add'>+    fun_l11_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n994()</div><div class='add'>+    fun_l11_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n995()</div><div class='add'>+    fun_l11_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n996()</div><div class='add'>+    fun_l11_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n997()</div><div class='add'>+    fun_l11_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n998()</div><div class='add'>+    fun_l11_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l10_n999()</div><div class='add'>+    fun_l11_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n0()</div><div class='add'>+    fun_l12_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n1()</div><div class='add'>+    fun_l12_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n2()</div><div class='add'>+    fun_l12_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n3()</div><div class='add'>+    fun_l12_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n4()</div><div class='add'>+    fun_l12_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n5()</div><div class='add'>+    fun_l12_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n6()</div><div class='add'>+    fun_l12_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n7()</div><div class='add'>+    fun_l12_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n8()</div><div class='add'>+    fun_l12_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n9()</div><div class='add'>+    fun_l12_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n10()</div><div class='add'>+    fun_l12_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n11()</div><div class='add'>+    fun_l12_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n12()</div><div class='add'>+    fun_l12_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n13()</div><div class='add'>+    fun_l12_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n14()</div><div class='add'>+    fun_l12_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n15()</div><div class='add'>+    fun_l12_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n16()</div><div class='add'>+    fun_l12_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n17()</div><div class='add'>+    fun_l12_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n18()</div><div class='add'>+    fun_l12_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n19()</div><div class='add'>+    fun_l12_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n20()</div><div class='add'>+    fun_l12_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n21()</div><div class='add'>+    fun_l12_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n22()</div><div class='add'>+    fun_l12_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n23()</div><div class='add'>+    fun_l12_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n24()</div><div class='add'>+    fun_l12_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n25()</div><div class='add'>+    fun_l12_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n26()</div><div class='add'>+    fun_l12_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n27()</div><div class='add'>+    fun_l12_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n28()</div><div class='add'>+    fun_l12_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n29()</div><div class='add'>+    fun_l12_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n30()</div><div class='add'>+    fun_l12_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n31()</div><div class='add'>+    fun_l12_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n32()</div><div class='add'>+    fun_l12_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n33()</div><div class='add'>+    fun_l12_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n34()</div><div class='add'>+    fun_l12_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n35()</div><div class='add'>+    fun_l12_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n36()</div><div class='add'>+    fun_l12_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n37()</div><div class='add'>+    fun_l12_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n38()</div><div class='add'>+    fun_l12_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n39()</div><div class='add'>+    fun_l12_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n40()</div><div class='add'>+    fun_l12_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n41()</div><div class='add'>+    fun_l12_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n42()</div><div class='add'>+    fun_l12_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n43()</div><div class='add'>+    fun_l12_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n44()</div><div class='add'>+    fun_l12_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n45()</div><div class='add'>+    fun_l12_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n46()</div><div class='add'>+    fun_l12_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n47()</div><div class='add'>+    fun_l12_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n48()</div><div class='add'>+    fun_l12_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n49()</div><div class='add'>+    fun_l12_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n50()</div><div class='add'>+    fun_l12_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n51()</div><div class='add'>+    fun_l12_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n52()</div><div class='add'>+    fun_l12_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n53()</div><div class='add'>+    fun_l12_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n54()</div><div class='add'>+    fun_l12_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n55()</div><div class='add'>+    fun_l12_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n56()</div><div class='add'>+    fun_l12_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n57()</div><div class='add'>+    fun_l12_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n58()</div><div class='add'>+    fun_l12_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n59()</div><div class='add'>+    fun_l12_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n60()</div><div class='add'>+    fun_l12_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n61()</div><div class='add'>+    fun_l12_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n62()</div><div class='add'>+    fun_l12_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n63()</div><div class='add'>+    fun_l12_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n64()</div><div class='add'>+    fun_l12_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n65()</div><div class='add'>+    fun_l12_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n66()</div><div class='add'>+    fun_l12_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n67()</div><div class='add'>+    fun_l12_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n68()</div><div class='add'>+    fun_l12_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n69()</div><div class='add'>+    fun_l12_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n70()</div><div class='add'>+    fun_l12_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n71()</div><div class='add'>+    fun_l12_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n72()</div><div class='add'>+    fun_l12_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n73()</div><div class='add'>+    fun_l12_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n74()</div><div class='add'>+    fun_l12_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n75()</div><div class='add'>+    fun_l12_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n76()</div><div class='add'>+    fun_l12_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n77()</div><div class='add'>+    fun_l12_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n78()</div><div class='add'>+    fun_l12_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n79()</div><div class='add'>+    fun_l12_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n80()</div><div class='add'>+    fun_l12_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n81()</div><div class='add'>+    fun_l12_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n82()</div><div class='add'>+    fun_l12_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n83()</div><div class='add'>+    fun_l12_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n84()</div><div class='add'>+    fun_l12_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n85()</div><div class='add'>+    fun_l12_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n86()</div><div class='add'>+    fun_l12_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n87()</div><div class='add'>+    fun_l12_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n88()</div><div class='add'>+    fun_l12_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n89()</div><div class='add'>+    fun_l12_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n90()</div><div class='add'>+    fun_l12_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n91()</div><div class='add'>+    fun_l12_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n92()</div><div class='add'>+    fun_l12_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n93()</div><div class='add'>+    fun_l12_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n94()</div><div class='add'>+    fun_l12_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n95()</div><div class='add'>+    fun_l12_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n96()</div><div class='add'>+    fun_l12_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n97()</div><div class='add'>+    fun_l12_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n98()</div><div class='add'>+    fun_l12_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n99()</div><div class='add'>+    fun_l12_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n100()</div><div class='add'>+    fun_l12_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n101()</div><div class='add'>+    fun_l12_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n102()</div><div class='add'>+    fun_l12_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n103()</div><div class='add'>+    fun_l12_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n104()</div><div class='add'>+    fun_l12_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n105()</div><div class='add'>+    fun_l12_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n106()</div><div class='add'>+    fun_l12_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n107()</div><div class='add'>+    fun_l12_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n108()</div><div class='add'>+    fun_l12_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n109()</div><div class='add'>+    fun_l12_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n110()</div><div class='add'>+    fun_l12_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n111()</div><div class='add'>+    fun_l12_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n112()</div><div class='add'>+    fun_l12_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n113()</div><div class='add'>+    fun_l12_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n114()</div><div class='add'>+    fun_l12_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n115()</div><div class='add'>+    fun_l12_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n116()</div><div class='add'>+    fun_l12_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n117()</div><div class='add'>+    fun_l12_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n118()</div><div class='add'>+    fun_l12_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n119()</div><div class='add'>+    fun_l12_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n120()</div><div class='add'>+    fun_l12_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n121()</div><div class='add'>+    fun_l12_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n122()</div><div class='add'>+    fun_l12_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n123()</div><div class='add'>+    fun_l12_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n124()</div><div class='add'>+    fun_l12_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n125()</div><div class='add'>+    fun_l12_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n126()</div><div class='add'>+    fun_l12_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n127()</div><div class='add'>+    fun_l12_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n128()</div><div class='add'>+    fun_l12_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n129()</div><div class='add'>+    fun_l12_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n130()</div><div class='add'>+    fun_l12_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n131()</div><div class='add'>+    fun_l12_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n132()</div><div class='add'>+    fun_l12_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n133()</div><div class='add'>+    fun_l12_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n134()</div><div class='add'>+    fun_l12_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n135()</div><div class='add'>+    fun_l12_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n136()</div><div class='add'>+    fun_l12_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n137()</div><div class='add'>+    fun_l12_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n138()</div><div class='add'>+    fun_l12_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n139()</div><div class='add'>+    fun_l12_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n140()</div><div class='add'>+    fun_l12_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n141()</div><div class='add'>+    fun_l12_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n142()</div><div class='add'>+    fun_l12_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n143()</div><div class='add'>+    fun_l12_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n144()</div><div class='add'>+    fun_l12_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n145()</div><div class='add'>+    fun_l12_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n146()</div><div class='add'>+    fun_l12_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n147()</div><div class='add'>+    fun_l12_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n148()</div><div class='add'>+    fun_l12_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n149()</div><div class='add'>+    fun_l12_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n150()</div><div class='add'>+    fun_l12_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n151()</div><div class='add'>+    fun_l12_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n152()</div><div class='add'>+    fun_l12_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n153()</div><div class='add'>+    fun_l12_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n154()</div><div class='add'>+    fun_l12_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n155()</div><div class='add'>+    fun_l12_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n156()</div><div class='add'>+    fun_l12_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n157()</div><div class='add'>+    fun_l12_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n158()</div><div class='add'>+    fun_l12_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n159()</div><div class='add'>+    fun_l12_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n160()</div><div class='add'>+    fun_l12_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n161()</div><div class='add'>+    fun_l12_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n162()</div><div class='add'>+    fun_l12_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n163()</div><div class='add'>+    fun_l12_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n164()</div><div class='add'>+    fun_l12_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n165()</div><div class='add'>+    fun_l12_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n166()</div><div class='add'>+    fun_l12_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n167()</div><div class='add'>+    fun_l12_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n168()</div><div class='add'>+    fun_l12_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n169()</div><div class='add'>+    fun_l12_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n170()</div><div class='add'>+    fun_l12_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n171()</div><div class='add'>+    fun_l12_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n172()</div><div class='add'>+    fun_l12_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n173()</div><div class='add'>+    fun_l12_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n174()</div><div class='add'>+    fun_l12_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n175()</div><div class='add'>+    fun_l12_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n176()</div><div class='add'>+    fun_l12_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n177()</div><div class='add'>+    fun_l12_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n178()</div><div class='add'>+    fun_l12_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n179()</div><div class='add'>+    fun_l12_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n180()</div><div class='add'>+    fun_l12_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n181()</div><div class='add'>+    fun_l12_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n182()</div><div class='add'>+    fun_l12_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n183()</div><div class='add'>+    fun_l12_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n184()</div><div class='add'>+    fun_l12_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n185()</div><div class='add'>+    fun_l12_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n186()</div><div class='add'>+    fun_l12_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n187()</div><div class='add'>+    fun_l12_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n188()</div><div class='add'>+    fun_l12_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n189()</div><div class='add'>+    fun_l12_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n190()</div><div class='add'>+    fun_l12_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n191()</div><div class='add'>+    fun_l12_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n192()</div><div class='add'>+    fun_l12_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n193()</div><div class='add'>+    fun_l12_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n194()</div><div class='add'>+    fun_l12_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n195()</div><div class='add'>+    fun_l12_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n196()</div><div class='add'>+    fun_l12_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n197()</div><div class='add'>+    fun_l12_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n198()</div><div class='add'>+    fun_l12_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n199()</div><div class='add'>+    fun_l12_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n200()</div><div class='add'>+    fun_l12_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n201()</div><div class='add'>+    fun_l12_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n202()</div><div class='add'>+    fun_l12_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n203()</div><div class='add'>+    fun_l12_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n204()</div><div class='add'>+    fun_l12_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n205()</div><div class='add'>+    fun_l12_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n206()</div><div class='add'>+    fun_l12_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n207()</div><div class='add'>+    fun_l12_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n208()</div><div class='add'>+    fun_l12_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n209()</div><div class='add'>+    fun_l12_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n210()</div><div class='add'>+    fun_l12_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n211()</div><div class='add'>+    fun_l12_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n212()</div><div class='add'>+    fun_l12_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n213()</div><div class='add'>+    fun_l12_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n214()</div><div class='add'>+    fun_l12_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n215()</div><div class='add'>+    fun_l12_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n216()</div><div class='add'>+    fun_l12_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n217()</div><div class='add'>+    fun_l12_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n218()</div><div class='add'>+    fun_l12_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n219()</div><div class='add'>+    fun_l12_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n220()</div><div class='add'>+    fun_l12_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n221()</div><div class='add'>+    fun_l12_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n222()</div><div class='add'>+    fun_l12_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n223()</div><div class='add'>+    fun_l12_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n224()</div><div class='add'>+    fun_l12_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n225()</div><div class='add'>+    fun_l12_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n226()</div><div class='add'>+    fun_l12_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n227()</div><div class='add'>+    fun_l12_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n228()</div><div class='add'>+    fun_l12_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n229()</div><div class='add'>+    fun_l12_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n230()</div><div class='add'>+    fun_l12_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n231()</div><div class='add'>+    fun_l12_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n232()</div><div class='add'>+    fun_l12_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n233()</div><div class='add'>+    fun_l12_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n234()</div><div class='add'>+    fun_l12_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n235()</div><div class='add'>+    fun_l12_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n236()</div><div class='add'>+    fun_l12_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n237()</div><div class='add'>+    fun_l12_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n238()</div><div class='add'>+    fun_l12_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n239()</div><div class='add'>+    fun_l12_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n240()</div><div class='add'>+    fun_l12_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n241()</div><div class='add'>+    fun_l12_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n242()</div><div class='add'>+    fun_l12_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n243()</div><div class='add'>+    fun_l12_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n244()</div><div class='add'>+    fun_l12_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n245()</div><div class='add'>+    fun_l12_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n246()</div><div class='add'>+    fun_l12_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n247()</div><div class='add'>+    fun_l12_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n248()</div><div class='add'>+    fun_l12_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n249()</div><div class='add'>+    fun_l12_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n250()</div><div class='add'>+    fun_l12_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n251()</div><div class='add'>+    fun_l12_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n252()</div><div class='add'>+    fun_l12_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n253()</div><div class='add'>+    fun_l12_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n254()</div><div class='add'>+    fun_l12_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n255()</div><div class='add'>+    fun_l12_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n256()</div><div class='add'>+    fun_l12_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n257()</div><div class='add'>+    fun_l12_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n258()</div><div class='add'>+    fun_l12_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n259()</div><div class='add'>+    fun_l12_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n260()</div><div class='add'>+    fun_l12_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n261()</div><div class='add'>+    fun_l12_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n262()</div><div class='add'>+    fun_l12_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n263()</div><div class='add'>+    fun_l12_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n264()</div><div class='add'>+    fun_l12_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n265()</div><div class='add'>+    fun_l12_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n266()</div><div class='add'>+    fun_l12_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n267()</div><div class='add'>+    fun_l12_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n268()</div><div class='add'>+    fun_l12_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n269()</div><div class='add'>+    fun_l12_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n270()</div><div class='add'>+    fun_l12_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n271()</div><div class='add'>+    fun_l12_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n272()</div><div class='add'>+    fun_l12_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n273()</div><div class='add'>+    fun_l12_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n274()</div><div class='add'>+    fun_l12_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n275()</div><div class='add'>+    fun_l12_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n276()</div><div class='add'>+    fun_l12_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n277()</div><div class='add'>+    fun_l12_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n278()</div><div class='add'>+    fun_l12_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n279()</div><div class='add'>+    fun_l12_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n280()</div><div class='add'>+    fun_l12_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n281()</div><div class='add'>+    fun_l12_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n282()</div><div class='add'>+    fun_l12_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n283()</div><div class='add'>+    fun_l12_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n284()</div><div class='add'>+    fun_l12_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n285()</div><div class='add'>+    fun_l12_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n286()</div><div class='add'>+    fun_l12_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n287()</div><div class='add'>+    fun_l12_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n288()</div><div class='add'>+    fun_l12_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n289()</div><div class='add'>+    fun_l12_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n290()</div><div class='add'>+    fun_l12_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n291()</div><div class='add'>+    fun_l12_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n292()</div><div class='add'>+    fun_l12_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n293()</div><div class='add'>+    fun_l12_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n294()</div><div class='add'>+    fun_l12_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n295()</div><div class='add'>+    fun_l12_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n296()</div><div class='add'>+    fun_l12_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n297()</div><div class='add'>+    fun_l12_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n298()</div><div class='add'>+    fun_l12_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n299()</div><div class='add'>+    fun_l12_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n300()</div><div class='add'>+    fun_l12_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n301()</div><div class='add'>+    fun_l12_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n302()</div><div class='add'>+    fun_l12_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n303()</div><div class='add'>+    fun_l12_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n304()</div><div class='add'>+    fun_l12_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n305()</div><div class='add'>+    fun_l12_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n306()</div><div class='add'>+    fun_l12_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n307()</div><div class='add'>+    fun_l12_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n308()</div><div class='add'>+    fun_l12_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n309()</div><div class='add'>+    fun_l12_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n310()</div><div class='add'>+    fun_l12_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n311()</div><div class='add'>+    fun_l12_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n312()</div><div class='add'>+    fun_l12_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n313()</div><div class='add'>+    fun_l12_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n314()</div><div class='add'>+    fun_l12_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n315()</div><div class='add'>+    fun_l12_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n316()</div><div class='add'>+    fun_l12_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n317()</div><div class='add'>+    fun_l12_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n318()</div><div class='add'>+    fun_l12_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n319()</div><div class='add'>+    fun_l12_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n320()</div><div class='add'>+    fun_l12_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n321()</div><div class='add'>+    fun_l12_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n322()</div><div class='add'>+    fun_l12_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n323()</div><div class='add'>+    fun_l12_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n324()</div><div class='add'>+    fun_l12_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n325()</div><div class='add'>+    fun_l12_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n326()</div><div class='add'>+    fun_l12_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n327()</div><div class='add'>+    fun_l12_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n328()</div><div class='add'>+    fun_l12_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n329()</div><div class='add'>+    fun_l12_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n330()</div><div class='add'>+    fun_l12_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n331()</div><div class='add'>+    fun_l12_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n332()</div><div class='add'>+    fun_l12_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n333()</div><div class='add'>+    fun_l12_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n334()</div><div class='add'>+    fun_l12_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n335()</div><div class='add'>+    fun_l12_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n336()</div><div class='add'>+    fun_l12_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n337()</div><div class='add'>+    fun_l12_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n338()</div><div class='add'>+    fun_l12_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n339()</div><div class='add'>+    fun_l12_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n340()</div><div class='add'>+    fun_l12_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n341()</div><div class='add'>+    fun_l12_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n342()</div><div class='add'>+    fun_l12_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n343()</div><div class='add'>+    fun_l12_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n344()</div><div class='add'>+    fun_l12_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n345()</div><div class='add'>+    fun_l12_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n346()</div><div class='add'>+    fun_l12_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n347()</div><div class='add'>+    fun_l12_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n348()</div><div class='add'>+    fun_l12_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n349()</div><div class='add'>+    fun_l12_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n350()</div><div class='add'>+    fun_l12_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n351()</div><div class='add'>+    fun_l12_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n352()</div><div class='add'>+    fun_l12_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n353()</div><div class='add'>+    fun_l12_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n354()</div><div class='add'>+    fun_l12_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n355()</div><div class='add'>+    fun_l12_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n356()</div><div class='add'>+    fun_l12_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n357()</div><div class='add'>+    fun_l12_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n358()</div><div class='add'>+    fun_l12_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n359()</div><div class='add'>+    fun_l12_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n360()</div><div class='add'>+    fun_l12_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n361()</div><div class='add'>+    fun_l12_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n362()</div><div class='add'>+    fun_l12_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n363()</div><div class='add'>+    fun_l12_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n364()</div><div class='add'>+    fun_l12_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n365()</div><div class='add'>+    fun_l12_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n366()</div><div class='add'>+    fun_l12_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n367()</div><div class='add'>+    fun_l12_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n368()</div><div class='add'>+    fun_l12_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n369()</div><div class='add'>+    fun_l12_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n370()</div><div class='add'>+    fun_l12_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n371()</div><div class='add'>+    fun_l12_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n372()</div><div class='add'>+    fun_l12_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n373()</div><div class='add'>+    fun_l12_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n374()</div><div class='add'>+    fun_l12_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n375()</div><div class='add'>+    fun_l12_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n376()</div><div class='add'>+    fun_l12_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n377()</div><div class='add'>+    fun_l12_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n378()</div><div class='add'>+    fun_l12_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n379()</div><div class='add'>+    fun_l12_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n380()</div><div class='add'>+    fun_l12_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n381()</div><div class='add'>+    fun_l12_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n382()</div><div class='add'>+    fun_l12_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n383()</div><div class='add'>+    fun_l12_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n384()</div><div class='add'>+    fun_l12_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n385()</div><div class='add'>+    fun_l12_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n386()</div><div class='add'>+    fun_l12_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n387()</div><div class='add'>+    fun_l12_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n388()</div><div class='add'>+    fun_l12_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n389()</div><div class='add'>+    fun_l12_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n390()</div><div class='add'>+    fun_l12_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n391()</div><div class='add'>+    fun_l12_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n392()</div><div class='add'>+    fun_l12_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n393()</div><div class='add'>+    fun_l12_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n394()</div><div class='add'>+    fun_l12_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n395()</div><div class='add'>+    fun_l12_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n396()</div><div class='add'>+    fun_l12_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n397()</div><div class='add'>+    fun_l12_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n398()</div><div class='add'>+    fun_l12_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n399()</div><div class='add'>+    fun_l12_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n400()</div><div class='add'>+    fun_l12_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n401()</div><div class='add'>+    fun_l12_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n402()</div><div class='add'>+    fun_l12_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n403()</div><div class='add'>+    fun_l12_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n404()</div><div class='add'>+    fun_l12_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n405()</div><div class='add'>+    fun_l12_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n406()</div><div class='add'>+    fun_l12_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n407()</div><div class='add'>+    fun_l12_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n408()</div><div class='add'>+    fun_l12_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n409()</div><div class='add'>+    fun_l12_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n410()</div><div class='add'>+    fun_l12_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n411()</div><div class='add'>+    fun_l12_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n412()</div><div class='add'>+    fun_l12_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n413()</div><div class='add'>+    fun_l12_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n414()</div><div class='add'>+    fun_l12_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n415()</div><div class='add'>+    fun_l12_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n416()</div><div class='add'>+    fun_l12_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n417()</div><div class='add'>+    fun_l12_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n418()</div><div class='add'>+    fun_l12_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n419()</div><div class='add'>+    fun_l12_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n420()</div><div class='add'>+    fun_l12_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n421()</div><div class='add'>+    fun_l12_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n422()</div><div class='add'>+    fun_l12_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n423()</div><div class='add'>+    fun_l12_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n424()</div><div class='add'>+    fun_l12_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n425()</div><div class='add'>+    fun_l12_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n426()</div><div class='add'>+    fun_l12_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n427()</div><div class='add'>+    fun_l12_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n428()</div><div class='add'>+    fun_l12_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n429()</div><div class='add'>+    fun_l12_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n430()</div><div class='add'>+    fun_l12_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n431()</div><div class='add'>+    fun_l12_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n432()</div><div class='add'>+    fun_l12_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n433()</div><div class='add'>+    fun_l12_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n434()</div><div class='add'>+    fun_l12_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n435()</div><div class='add'>+    fun_l12_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n436()</div><div class='add'>+    fun_l12_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n437()</div><div class='add'>+    fun_l12_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n438()</div><div class='add'>+    fun_l12_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n439()</div><div class='add'>+    fun_l12_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n440()</div><div class='add'>+    fun_l12_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n441()</div><div class='add'>+    fun_l12_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n442()</div><div class='add'>+    fun_l12_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n443()</div><div class='add'>+    fun_l12_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n444()</div><div class='add'>+    fun_l12_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n445()</div><div class='add'>+    fun_l12_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n446()</div><div class='add'>+    fun_l12_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n447()</div><div class='add'>+    fun_l12_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n448()</div><div class='add'>+    fun_l12_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n449()</div><div class='add'>+    fun_l12_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n450()</div><div class='add'>+    fun_l12_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n451()</div><div class='add'>+    fun_l12_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n452()</div><div class='add'>+    fun_l12_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n453()</div><div class='add'>+    fun_l12_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n454()</div><div class='add'>+    fun_l12_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n455()</div><div class='add'>+    fun_l12_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n456()</div><div class='add'>+    fun_l12_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n457()</div><div class='add'>+    fun_l12_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n458()</div><div class='add'>+    fun_l12_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n459()</div><div class='add'>+    fun_l12_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n460()</div><div class='add'>+    fun_l12_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n461()</div><div class='add'>+    fun_l12_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n462()</div><div class='add'>+    fun_l12_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n463()</div><div class='add'>+    fun_l12_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n464()</div><div class='add'>+    fun_l12_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n465()</div><div class='add'>+    fun_l12_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n466()</div><div class='add'>+    fun_l12_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n467()</div><div class='add'>+    fun_l12_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n468()</div><div class='add'>+    fun_l12_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n469()</div><div class='add'>+    fun_l12_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n470()</div><div class='add'>+    fun_l12_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n471()</div><div class='add'>+    fun_l12_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n472()</div><div class='add'>+    fun_l12_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n473()</div><div class='add'>+    fun_l12_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n474()</div><div class='add'>+    fun_l12_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n475()</div><div class='add'>+    fun_l12_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n476()</div><div class='add'>+    fun_l12_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n477()</div><div class='add'>+    fun_l12_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n478()</div><div class='add'>+    fun_l12_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n479()</div><div class='add'>+    fun_l12_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n480()</div><div class='add'>+    fun_l12_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n481()</div><div class='add'>+    fun_l12_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n482()</div><div class='add'>+    fun_l12_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n483()</div><div class='add'>+    fun_l12_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n484()</div><div class='add'>+    fun_l12_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n485()</div><div class='add'>+    fun_l12_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n486()</div><div class='add'>+    fun_l12_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n487()</div><div class='add'>+    fun_l12_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n488()</div><div class='add'>+    fun_l12_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n489()</div><div class='add'>+    fun_l12_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n490()</div><div class='add'>+    fun_l12_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n491()</div><div class='add'>+    fun_l12_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n492()</div><div class='add'>+    fun_l12_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n493()</div><div class='add'>+    fun_l12_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n494()</div><div class='add'>+    fun_l12_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n495()</div><div class='add'>+    fun_l12_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n496()</div><div class='add'>+    fun_l12_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n497()</div><div class='add'>+    fun_l12_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n498()</div><div class='add'>+    fun_l12_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n499()</div><div class='add'>+    fun_l12_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n500()</div><div class='add'>+    fun_l12_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n501()</div><div class='add'>+    fun_l12_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n502()</div><div class='add'>+    fun_l12_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n503()</div><div class='add'>+    fun_l12_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n504()</div><div class='add'>+    fun_l12_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n505()</div><div class='add'>+    fun_l12_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n506()</div><div class='add'>+    fun_l12_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n507()</div><div class='add'>+    fun_l12_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n508()</div><div class='add'>+    fun_l12_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n509()</div><div class='add'>+    fun_l12_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n510()</div><div class='add'>+    fun_l12_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n511()</div><div class='add'>+    fun_l12_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n512()</div><div class='add'>+    fun_l12_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n513()</div><div class='add'>+    fun_l12_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n514()</div><div class='add'>+    fun_l12_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n515()</div><div class='add'>+    fun_l12_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n516()</div><div class='add'>+    fun_l12_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n517()</div><div class='add'>+    fun_l12_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n518()</div><div class='add'>+    fun_l12_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n519()</div><div class='add'>+    fun_l12_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n520()</div><div class='add'>+    fun_l12_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n521()</div><div class='add'>+    fun_l12_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n522()</div><div class='add'>+    fun_l12_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n523()</div><div class='add'>+    fun_l12_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n524()</div><div class='add'>+    fun_l12_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n525()</div><div class='add'>+    fun_l12_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n526()</div><div class='add'>+    fun_l12_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n527()</div><div class='add'>+    fun_l12_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n528()</div><div class='add'>+    fun_l12_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n529()</div><div class='add'>+    fun_l12_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n530()</div><div class='add'>+    fun_l12_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n531()</div><div class='add'>+    fun_l12_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n532()</div><div class='add'>+    fun_l12_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n533()</div><div class='add'>+    fun_l12_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n534()</div><div class='add'>+    fun_l12_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n535()</div><div class='add'>+    fun_l12_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n536()</div><div class='add'>+    fun_l12_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n537()</div><div class='add'>+    fun_l12_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n538()</div><div class='add'>+    fun_l12_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n539()</div><div class='add'>+    fun_l12_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n540()</div><div class='add'>+    fun_l12_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n541()</div><div class='add'>+    fun_l12_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n542()</div><div class='add'>+    fun_l12_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n543()</div><div class='add'>+    fun_l12_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n544()</div><div class='add'>+    fun_l12_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n545()</div><div class='add'>+    fun_l12_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n546()</div><div class='add'>+    fun_l12_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n547()</div><div class='add'>+    fun_l12_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n548()</div><div class='add'>+    fun_l12_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n549()</div><div class='add'>+    fun_l12_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n550()</div><div class='add'>+    fun_l12_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n551()</div><div class='add'>+    fun_l12_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n552()</div><div class='add'>+    fun_l12_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n553()</div><div class='add'>+    fun_l12_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n554()</div><div class='add'>+    fun_l12_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n555()</div><div class='add'>+    fun_l12_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n556()</div><div class='add'>+    fun_l12_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n557()</div><div class='add'>+    fun_l12_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n558()</div><div class='add'>+    fun_l12_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n559()</div><div class='add'>+    fun_l12_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n560()</div><div class='add'>+    fun_l12_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n561()</div><div class='add'>+    fun_l12_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n562()</div><div class='add'>+    fun_l12_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n563()</div><div class='add'>+    fun_l12_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n564()</div><div class='add'>+    fun_l12_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n565()</div><div class='add'>+    fun_l12_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n566()</div><div class='add'>+    fun_l12_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n567()</div><div class='add'>+    fun_l12_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n568()</div><div class='add'>+    fun_l12_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n569()</div><div class='add'>+    fun_l12_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n570()</div><div class='add'>+    fun_l12_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n571()</div><div class='add'>+    fun_l12_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n572()</div><div class='add'>+    fun_l12_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n573()</div><div class='add'>+    fun_l12_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n574()</div><div class='add'>+    fun_l12_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n575()</div><div class='add'>+    fun_l12_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n576()</div><div class='add'>+    fun_l12_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n577()</div><div class='add'>+    fun_l12_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n578()</div><div class='add'>+    fun_l12_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n579()</div><div class='add'>+    fun_l12_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n580()</div><div class='add'>+    fun_l12_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n581()</div><div class='add'>+    fun_l12_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n582()</div><div class='add'>+    fun_l12_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n583()</div><div class='add'>+    fun_l12_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n584()</div><div class='add'>+    fun_l12_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n585()</div><div class='add'>+    fun_l12_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n586()</div><div class='add'>+    fun_l12_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n587()</div><div class='add'>+    fun_l12_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n588()</div><div class='add'>+    fun_l12_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n589()</div><div class='add'>+    fun_l12_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n590()</div><div class='add'>+    fun_l12_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n591()</div><div class='add'>+    fun_l12_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n592()</div><div class='add'>+    fun_l12_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n593()</div><div class='add'>+    fun_l12_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n594()</div><div class='add'>+    fun_l12_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n595()</div><div class='add'>+    fun_l12_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n596()</div><div class='add'>+    fun_l12_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n597()</div><div class='add'>+    fun_l12_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n598()</div><div class='add'>+    fun_l12_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n599()</div><div class='add'>+    fun_l12_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n600()</div><div class='add'>+    fun_l12_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n601()</div><div class='add'>+    fun_l12_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n602()</div><div class='add'>+    fun_l12_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n603()</div><div class='add'>+    fun_l12_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n604()</div><div class='add'>+    fun_l12_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n605()</div><div class='add'>+    fun_l12_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n606()</div><div class='add'>+    fun_l12_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n607()</div><div class='add'>+    fun_l12_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n608()</div><div class='add'>+    fun_l12_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n609()</div><div class='add'>+    fun_l12_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n610()</div><div class='add'>+    fun_l12_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n611()</div><div class='add'>+    fun_l12_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n612()</div><div class='add'>+    fun_l12_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n613()</div><div class='add'>+    fun_l12_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n614()</div><div class='add'>+    fun_l12_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n615()</div><div class='add'>+    fun_l12_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n616()</div><div class='add'>+    fun_l12_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n617()</div><div class='add'>+    fun_l12_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n618()</div><div class='add'>+    fun_l12_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n619()</div><div class='add'>+    fun_l12_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n620()</div><div class='add'>+    fun_l12_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n621()</div><div class='add'>+    fun_l12_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n622()</div><div class='add'>+    fun_l12_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n623()</div><div class='add'>+    fun_l12_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n624()</div><div class='add'>+    fun_l12_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n625()</div><div class='add'>+    fun_l12_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n626()</div><div class='add'>+    fun_l12_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n627()</div><div class='add'>+    fun_l12_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n628()</div><div class='add'>+    fun_l12_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n629()</div><div class='add'>+    fun_l12_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n630()</div><div class='add'>+    fun_l12_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n631()</div><div class='add'>+    fun_l12_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n632()</div><div class='add'>+    fun_l12_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n633()</div><div class='add'>+    fun_l12_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n634()</div><div class='add'>+    fun_l12_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n635()</div><div class='add'>+    fun_l12_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n636()</div><div class='add'>+    fun_l12_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n637()</div><div class='add'>+    fun_l12_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n638()</div><div class='add'>+    fun_l12_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n639()</div><div class='add'>+    fun_l12_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n640()</div><div class='add'>+    fun_l12_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n641()</div><div class='add'>+    fun_l12_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n642()</div><div class='add'>+    fun_l12_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n643()</div><div class='add'>+    fun_l12_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n644()</div><div class='add'>+    fun_l12_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n645()</div><div class='add'>+    fun_l12_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n646()</div><div class='add'>+    fun_l12_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n647()</div><div class='add'>+    fun_l12_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n648()</div><div class='add'>+    fun_l12_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n649()</div><div class='add'>+    fun_l12_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n650()</div><div class='add'>+    fun_l12_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n651()</div><div class='add'>+    fun_l12_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n652()</div><div class='add'>+    fun_l12_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n653()</div><div class='add'>+    fun_l12_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n654()</div><div class='add'>+    fun_l12_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n655()</div><div class='add'>+    fun_l12_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n656()</div><div class='add'>+    fun_l12_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n657()</div><div class='add'>+    fun_l12_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n658()</div><div class='add'>+    fun_l12_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n659()</div><div class='add'>+    fun_l12_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n660()</div><div class='add'>+    fun_l12_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n661()</div><div class='add'>+    fun_l12_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n662()</div><div class='add'>+    fun_l12_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n663()</div><div class='add'>+    fun_l12_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n664()</div><div class='add'>+    fun_l12_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n665()</div><div class='add'>+    fun_l12_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n666()</div><div class='add'>+    fun_l12_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n667()</div><div class='add'>+    fun_l12_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n668()</div><div class='add'>+    fun_l12_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n669()</div><div class='add'>+    fun_l12_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n670()</div><div class='add'>+    fun_l12_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n671()</div><div class='add'>+    fun_l12_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n672()</div><div class='add'>+    fun_l12_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n673()</div><div class='add'>+    fun_l12_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n674()</div><div class='add'>+    fun_l12_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n675()</div><div class='add'>+    fun_l12_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n676()</div><div class='add'>+    fun_l12_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n677()</div><div class='add'>+    fun_l12_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n678()</div><div class='add'>+    fun_l12_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n679()</div><div class='add'>+    fun_l12_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n680()</div><div class='add'>+    fun_l12_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n681()</div><div class='add'>+    fun_l12_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n682()</div><div class='add'>+    fun_l12_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n683()</div><div class='add'>+    fun_l12_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n684()</div><div class='add'>+    fun_l12_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n685()</div><div class='add'>+    fun_l12_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n686()</div><div class='add'>+    fun_l12_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n687()</div><div class='add'>+    fun_l12_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n688()</div><div class='add'>+    fun_l12_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n689()</div><div class='add'>+    fun_l12_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n690()</div><div class='add'>+    fun_l12_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n691()</div><div class='add'>+    fun_l12_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n692()</div><div class='add'>+    fun_l12_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n693()</div><div class='add'>+    fun_l12_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n694()</div><div class='add'>+    fun_l12_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n695()</div><div class='add'>+    fun_l12_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n696()</div><div class='add'>+    fun_l12_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n697()</div><div class='add'>+    fun_l12_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n698()</div><div class='add'>+    fun_l12_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n699()</div><div class='add'>+    fun_l12_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n700()</div><div class='add'>+    fun_l12_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n701()</div><div class='add'>+    fun_l12_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n702()</div><div class='add'>+    fun_l12_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n703()</div><div class='add'>+    fun_l12_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n704()</div><div class='add'>+    fun_l12_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n705()</div><div class='add'>+    fun_l12_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n706()</div><div class='add'>+    fun_l12_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n707()</div><div class='add'>+    fun_l12_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n708()</div><div class='add'>+    fun_l12_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n709()</div><div class='add'>+    fun_l12_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n710()</div><div class='add'>+    fun_l12_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n711()</div><div class='add'>+    fun_l12_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n712()</div><div class='add'>+    fun_l12_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n713()</div><div class='add'>+    fun_l12_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n714()</div><div class='add'>+    fun_l12_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n715()</div><div class='add'>+    fun_l12_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n716()</div><div class='add'>+    fun_l12_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n717()</div><div class='add'>+    fun_l12_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n718()</div><div class='add'>+    fun_l12_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n719()</div><div class='add'>+    fun_l12_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n720()</div><div class='add'>+    fun_l12_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n721()</div><div class='add'>+    fun_l12_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n722()</div><div class='add'>+    fun_l12_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n723()</div><div class='add'>+    fun_l12_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n724()</div><div class='add'>+    fun_l12_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n725()</div><div class='add'>+    fun_l12_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n726()</div><div class='add'>+    fun_l12_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n727()</div><div class='add'>+    fun_l12_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n728()</div><div class='add'>+    fun_l12_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n729()</div><div class='add'>+    fun_l12_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n730()</div><div class='add'>+    fun_l12_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n731()</div><div class='add'>+    fun_l12_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n732()</div><div class='add'>+    fun_l12_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n733()</div><div class='add'>+    fun_l12_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n734()</div><div class='add'>+    fun_l12_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n735()</div><div class='add'>+    fun_l12_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n736()</div><div class='add'>+    fun_l12_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n737()</div><div class='add'>+    fun_l12_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n738()</div><div class='add'>+    fun_l12_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n739()</div><div class='add'>+    fun_l12_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n740()</div><div class='add'>+    fun_l12_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n741()</div><div class='add'>+    fun_l12_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n742()</div><div class='add'>+    fun_l12_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n743()</div><div class='add'>+    fun_l12_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n744()</div><div class='add'>+    fun_l12_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n745()</div><div class='add'>+    fun_l12_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n746()</div><div class='add'>+    fun_l12_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n747()</div><div class='add'>+    fun_l12_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n748()</div><div class='add'>+    fun_l12_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n749()</div><div class='add'>+    fun_l12_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n750()</div><div class='add'>+    fun_l12_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n751()</div><div class='add'>+    fun_l12_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n752()</div><div class='add'>+    fun_l12_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n753()</div><div class='add'>+    fun_l12_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n754()</div><div class='add'>+    fun_l12_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n755()</div><div class='add'>+    fun_l12_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n756()</div><div class='add'>+    fun_l12_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n757()</div><div class='add'>+    fun_l12_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n758()</div><div class='add'>+    fun_l12_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n759()</div><div class='add'>+    fun_l12_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n760()</div><div class='add'>+    fun_l12_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n761()</div><div class='add'>+    fun_l12_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n762()</div><div class='add'>+    fun_l12_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n763()</div><div class='add'>+    fun_l12_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n764()</div><div class='add'>+    fun_l12_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n765()</div><div class='add'>+    fun_l12_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n766()</div><div class='add'>+    fun_l12_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n767()</div><div class='add'>+    fun_l12_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n768()</div><div class='add'>+    fun_l12_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n769()</div><div class='add'>+    fun_l12_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n770()</div><div class='add'>+    fun_l12_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n771()</div><div class='add'>+    fun_l12_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n772()</div><div class='add'>+    fun_l12_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n773()</div><div class='add'>+    fun_l12_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n774()</div><div class='add'>+    fun_l12_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n775()</div><div class='add'>+    fun_l12_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n776()</div><div class='add'>+    fun_l12_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n777()</div><div class='add'>+    fun_l12_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n778()</div><div class='add'>+    fun_l12_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n779()</div><div class='add'>+    fun_l12_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n780()</div><div class='add'>+    fun_l12_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n781()</div><div class='add'>+    fun_l12_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n782()</div><div class='add'>+    fun_l12_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n783()</div><div class='add'>+    fun_l12_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n784()</div><div class='add'>+    fun_l12_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n785()</div><div class='add'>+    fun_l12_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n786()</div><div class='add'>+    fun_l12_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n787()</div><div class='add'>+    fun_l12_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n788()</div><div class='add'>+    fun_l12_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n789()</div><div class='add'>+    fun_l12_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n790()</div><div class='add'>+    fun_l12_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n791()</div><div class='add'>+    fun_l12_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n792()</div><div class='add'>+    fun_l12_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n793()</div><div class='add'>+    fun_l12_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n794()</div><div class='add'>+    fun_l12_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n795()</div><div class='add'>+    fun_l12_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n796()</div><div class='add'>+    fun_l12_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n797()</div><div class='add'>+    fun_l12_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n798()</div><div class='add'>+    fun_l12_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n799()</div><div class='add'>+    fun_l12_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n800()</div><div class='add'>+    fun_l12_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n801()</div><div class='add'>+    fun_l12_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n802()</div><div class='add'>+    fun_l12_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n803()</div><div class='add'>+    fun_l12_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n804()</div><div class='add'>+    fun_l12_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n805()</div><div class='add'>+    fun_l12_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n806()</div><div class='add'>+    fun_l12_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n807()</div><div class='add'>+    fun_l12_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n808()</div><div class='add'>+    fun_l12_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n809()</div><div class='add'>+    fun_l12_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n810()</div><div class='add'>+    fun_l12_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n811()</div><div class='add'>+    fun_l12_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n812()</div><div class='add'>+    fun_l12_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n813()</div><div class='add'>+    fun_l12_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n814()</div><div class='add'>+    fun_l12_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n815()</div><div class='add'>+    fun_l12_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n816()</div><div class='add'>+    fun_l12_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n817()</div><div class='add'>+    fun_l12_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n818()</div><div class='add'>+    fun_l12_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n819()</div><div class='add'>+    fun_l12_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n820()</div><div class='add'>+    fun_l12_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n821()</div><div class='add'>+    fun_l12_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n822()</div><div class='add'>+    fun_l12_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n823()</div><div class='add'>+    fun_l12_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n824()</div><div class='add'>+    fun_l12_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n825()</div><div class='add'>+    fun_l12_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n826()</div><div class='add'>+    fun_l12_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n827()</div><div class='add'>+    fun_l12_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n828()</div><div class='add'>+    fun_l12_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n829()</div><div class='add'>+    fun_l12_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n830()</div><div class='add'>+    fun_l12_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n831()</div><div class='add'>+    fun_l12_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n832()</div><div class='add'>+    fun_l12_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n833()</div><div class='add'>+    fun_l12_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n834()</div><div class='add'>+    fun_l12_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n835()</div><div class='add'>+    fun_l12_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n836()</div><div class='add'>+    fun_l12_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n837()</div><div class='add'>+    fun_l12_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n838()</div><div class='add'>+    fun_l12_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n839()</div><div class='add'>+    fun_l12_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n840()</div><div class='add'>+    fun_l12_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n841()</div><div class='add'>+    fun_l12_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n842()</div><div class='add'>+    fun_l12_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n843()</div><div class='add'>+    fun_l12_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n844()</div><div class='add'>+    fun_l12_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n845()</div><div class='add'>+    fun_l12_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n846()</div><div class='add'>+    fun_l12_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n847()</div><div class='add'>+    fun_l12_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n848()</div><div class='add'>+    fun_l12_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n849()</div><div class='add'>+    fun_l12_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n850()</div><div class='add'>+    fun_l12_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n851()</div><div class='add'>+    fun_l12_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n852()</div><div class='add'>+    fun_l12_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n853()</div><div class='add'>+    fun_l12_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n854()</div><div class='add'>+    fun_l12_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n855()</div><div class='add'>+    fun_l12_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n856()</div><div class='add'>+    fun_l12_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n857()</div><div class='add'>+    fun_l12_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n858()</div><div class='add'>+    fun_l12_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n859()</div><div class='add'>+    fun_l12_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n860()</div><div class='add'>+    fun_l12_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n861()</div><div class='add'>+    fun_l12_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n862()</div><div class='add'>+    fun_l12_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n863()</div><div class='add'>+    fun_l12_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n864()</div><div class='add'>+    fun_l12_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n865()</div><div class='add'>+    fun_l12_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n866()</div><div class='add'>+    fun_l12_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n867()</div><div class='add'>+    fun_l12_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n868()</div><div class='add'>+    fun_l12_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n869()</div><div class='add'>+    fun_l12_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n870()</div><div class='add'>+    fun_l12_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n871()</div><div class='add'>+    fun_l12_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n872()</div><div class='add'>+    fun_l12_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n873()</div><div class='add'>+    fun_l12_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n874()</div><div class='add'>+    fun_l12_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n875()</div><div class='add'>+    fun_l12_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n876()</div><div class='add'>+    fun_l12_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n877()</div><div class='add'>+    fun_l12_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n878()</div><div class='add'>+    fun_l12_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n879()</div><div class='add'>+    fun_l12_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n880()</div><div class='add'>+    fun_l12_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n881()</div><div class='add'>+    fun_l12_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n882()</div><div class='add'>+    fun_l12_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n883()</div><div class='add'>+    fun_l12_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n884()</div><div class='add'>+    fun_l12_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n885()</div><div class='add'>+    fun_l12_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n886()</div><div class='add'>+    fun_l12_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n887()</div><div class='add'>+    fun_l12_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n888()</div><div class='add'>+    fun_l12_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n889()</div><div class='add'>+    fun_l12_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n890()</div><div class='add'>+    fun_l12_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n891()</div><div class='add'>+    fun_l12_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n892()</div><div class='add'>+    fun_l12_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n893()</div><div class='add'>+    fun_l12_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n894()</div><div class='add'>+    fun_l12_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n895()</div><div class='add'>+    fun_l12_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n896()</div><div class='add'>+    fun_l12_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n897()</div><div class='add'>+    fun_l12_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n898()</div><div class='add'>+    fun_l12_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n899()</div><div class='add'>+    fun_l12_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n900()</div><div class='add'>+    fun_l12_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n901()</div><div class='add'>+    fun_l12_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n902()</div><div class='add'>+    fun_l12_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n903()</div><div class='add'>+    fun_l12_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n904()</div><div class='add'>+    fun_l12_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n905()</div><div class='add'>+    fun_l12_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n906()</div><div class='add'>+    fun_l12_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n907()</div><div class='add'>+    fun_l12_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n908()</div><div class='add'>+    fun_l12_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n909()</div><div class='add'>+    fun_l12_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n910()</div><div class='add'>+    fun_l12_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n911()</div><div class='add'>+    fun_l12_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n912()</div><div class='add'>+    fun_l12_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n913()</div><div class='add'>+    fun_l12_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n914()</div><div class='add'>+    fun_l12_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n915()</div><div class='add'>+    fun_l12_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n916()</div><div class='add'>+    fun_l12_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n917()</div><div class='add'>+    fun_l12_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n918()</div><div class='add'>+    fun_l12_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n919()</div><div class='add'>+    fun_l12_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n920()</div><div class='add'>+    fun_l12_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n921()</div><div class='add'>+    fun_l12_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n922()</div><div class='add'>+    fun_l12_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n923()</div><div class='add'>+    fun_l12_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n924()</div><div class='add'>+    fun_l12_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n925()</div><div class='add'>+    fun_l12_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n926()</div><div class='add'>+    fun_l12_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n927()</div><div class='add'>+    fun_l12_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n928()</div><div class='add'>+    fun_l12_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n929()</div><div class='add'>+    fun_l12_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n930()</div><div class='add'>+    fun_l12_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n931()</div><div class='add'>+    fun_l12_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n932()</div><div class='add'>+    fun_l12_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n933()</div><div class='add'>+    fun_l12_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n934()</div><div class='add'>+    fun_l12_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n935()</div><div class='add'>+    fun_l12_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n936()</div><div class='add'>+    fun_l12_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n937()</div><div class='add'>+    fun_l12_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n938()</div><div class='add'>+    fun_l12_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n939()</div><div class='add'>+    fun_l12_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n940()</div><div class='add'>+    fun_l12_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n941()</div><div class='add'>+    fun_l12_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n942()</div><div class='add'>+    fun_l12_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n943()</div><div class='add'>+    fun_l12_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n944()</div><div class='add'>+    fun_l12_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n945()</div><div class='add'>+    fun_l12_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n946()</div><div class='add'>+    fun_l12_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n947()</div><div class='add'>+    fun_l12_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n948()</div><div class='add'>+    fun_l12_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n949()</div><div class='add'>+    fun_l12_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n950()</div><div class='add'>+    fun_l12_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n951()</div><div class='add'>+    fun_l12_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n952()</div><div class='add'>+    fun_l12_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n953()</div><div class='add'>+    fun_l12_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n954()</div><div class='add'>+    fun_l12_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n955()</div><div class='add'>+    fun_l12_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n956()</div><div class='add'>+    fun_l12_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n957()</div><div class='add'>+    fun_l12_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n958()</div><div class='add'>+    fun_l12_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n959()</div><div class='add'>+    fun_l12_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n960()</div><div class='add'>+    fun_l12_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n961()</div><div class='add'>+    fun_l12_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n962()</div><div class='add'>+    fun_l12_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n963()</div><div class='add'>+    fun_l12_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n964()</div><div class='add'>+    fun_l12_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n965()</div><div class='add'>+    fun_l12_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n966()</div><div class='add'>+    fun_l12_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n967()</div><div class='add'>+    fun_l12_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n968()</div><div class='add'>+    fun_l12_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n969()</div><div class='add'>+    fun_l12_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n970()</div><div class='add'>+    fun_l12_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n971()</div><div class='add'>+    fun_l12_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n972()</div><div class='add'>+    fun_l12_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n973()</div><div class='add'>+    fun_l12_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n974()</div><div class='add'>+    fun_l12_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n975()</div><div class='add'>+    fun_l12_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n976()</div><div class='add'>+    fun_l12_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n977()</div><div class='add'>+    fun_l12_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n978()</div><div class='add'>+    fun_l12_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n979()</div><div class='add'>+    fun_l12_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n980()</div><div class='add'>+    fun_l12_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n981()</div><div class='add'>+    fun_l12_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n982()</div><div class='add'>+    fun_l12_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n983()</div><div class='add'>+    fun_l12_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n984()</div><div class='add'>+    fun_l12_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n985()</div><div class='add'>+    fun_l12_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n986()</div><div class='add'>+    fun_l12_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n987()</div><div class='add'>+    fun_l12_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n988()</div><div class='add'>+    fun_l12_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n989()</div><div class='add'>+    fun_l12_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n990()</div><div class='add'>+    fun_l12_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n991()</div><div class='add'>+    fun_l12_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n992()</div><div class='add'>+    fun_l12_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n993()</div><div class='add'>+    fun_l12_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n994()</div><div class='add'>+    fun_l12_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n995()</div><div class='add'>+    fun_l12_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n996()</div><div class='add'>+    fun_l12_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n997()</div><div class='add'>+    fun_l12_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n998()</div><div class='add'>+    fun_l12_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l11_n999()</div><div class='add'>+    fun_l12_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n0()</div><div class='add'>+    fun_l13_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n1()</div><div class='add'>+    fun_l13_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n2()</div><div class='add'>+    fun_l13_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n3()</div><div class='add'>+    fun_l13_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n4()</div><div class='add'>+    fun_l13_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n5()</div><div class='add'>+    fun_l13_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n6()</div><div class='add'>+    fun_l13_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n7()</div><div class='add'>+    fun_l13_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n8()</div><div class='add'>+    fun_l13_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n9()</div><div class='add'>+    fun_l13_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n10()</div><div class='add'>+    fun_l13_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n11()</div><div class='add'>+    fun_l13_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n12()</div><div class='add'>+    fun_l13_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n13()</div><div class='add'>+    fun_l13_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n14()</div><div class='add'>+    fun_l13_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n15()</div><div class='add'>+    fun_l13_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n16()</div><div class='add'>+    fun_l13_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n17()</div><div class='add'>+    fun_l13_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n18()</div><div class='add'>+    fun_l13_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n19()</div><div class='add'>+    fun_l13_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n20()</div><div class='add'>+    fun_l13_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n21()</div><div class='add'>+    fun_l13_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n22()</div><div class='add'>+    fun_l13_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n23()</div><div class='add'>+    fun_l13_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n24()</div><div class='add'>+    fun_l13_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n25()</div><div class='add'>+    fun_l13_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n26()</div><div class='add'>+    fun_l13_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n27()</div><div class='add'>+    fun_l13_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n28()</div><div class='add'>+    fun_l13_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n29()</div><div class='add'>+    fun_l13_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n30()</div><div class='add'>+    fun_l13_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n31()</div><div class='add'>+    fun_l13_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n32()</div><div class='add'>+    fun_l13_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n33()</div><div class='add'>+    fun_l13_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n34()</div><div class='add'>+    fun_l13_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n35()</div><div class='add'>+    fun_l13_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n36()</div><div class='add'>+    fun_l13_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n37()</div><div class='add'>+    fun_l13_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n38()</div><div class='add'>+    fun_l13_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n39()</div><div class='add'>+    fun_l13_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n40()</div><div class='add'>+    fun_l13_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n41()</div><div class='add'>+    fun_l13_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n42()</div><div class='add'>+    fun_l13_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n43()</div><div class='add'>+    fun_l13_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n44()</div><div class='add'>+    fun_l13_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n45()</div><div class='add'>+    fun_l13_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n46()</div><div class='add'>+    fun_l13_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n47()</div><div class='add'>+    fun_l13_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n48()</div><div class='add'>+    fun_l13_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n49()</div><div class='add'>+    fun_l13_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n50()</div><div class='add'>+    fun_l13_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n51()</div><div class='add'>+    fun_l13_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n52()</div><div class='add'>+    fun_l13_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n53()</div><div class='add'>+    fun_l13_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n54()</div><div class='add'>+    fun_l13_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n55()</div><div class='add'>+    fun_l13_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n56()</div><div class='add'>+    fun_l13_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n57()</div><div class='add'>+    fun_l13_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n58()</div><div class='add'>+    fun_l13_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n59()</div><div class='add'>+    fun_l13_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n60()</div><div class='add'>+    fun_l13_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n61()</div><div class='add'>+    fun_l13_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n62()</div><div class='add'>+    fun_l13_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n63()</div><div class='add'>+    fun_l13_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n64()</div><div class='add'>+    fun_l13_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n65()</div><div class='add'>+    fun_l13_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n66()</div><div class='add'>+    fun_l13_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n67()</div><div class='add'>+    fun_l13_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n68()</div><div class='add'>+    fun_l13_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n69()</div><div class='add'>+    fun_l13_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n70()</div><div class='add'>+    fun_l13_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n71()</div><div class='add'>+    fun_l13_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n72()</div><div class='add'>+    fun_l13_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n73()</div><div class='add'>+    fun_l13_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n74()</div><div class='add'>+    fun_l13_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n75()</div><div class='add'>+    fun_l13_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n76()</div><div class='add'>+    fun_l13_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n77()</div><div class='add'>+    fun_l13_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n78()</div><div class='add'>+    fun_l13_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n79()</div><div class='add'>+    fun_l13_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n80()</div><div class='add'>+    fun_l13_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n81()</div><div class='add'>+    fun_l13_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n82()</div><div class='add'>+    fun_l13_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n83()</div><div class='add'>+    fun_l13_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n84()</div><div class='add'>+    fun_l13_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n85()</div><div class='add'>+    fun_l13_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n86()</div><div class='add'>+    fun_l13_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n87()</div><div class='add'>+    fun_l13_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n88()</div><div class='add'>+    fun_l13_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n89()</div><div class='add'>+    fun_l13_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n90()</div><div class='add'>+    fun_l13_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n91()</div><div class='add'>+    fun_l13_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n92()</div><div class='add'>+    fun_l13_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n93()</div><div class='add'>+    fun_l13_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n94()</div><div class='add'>+    fun_l13_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n95()</div><div class='add'>+    fun_l13_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n96()</div><div class='add'>+    fun_l13_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n97()</div><div class='add'>+    fun_l13_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n98()</div><div class='add'>+    fun_l13_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n99()</div><div class='add'>+    fun_l13_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n100()</div><div class='add'>+    fun_l13_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n101()</div><div class='add'>+    fun_l13_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n102()</div><div class='add'>+    fun_l13_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n103()</div><div class='add'>+    fun_l13_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n104()</div><div class='add'>+    fun_l13_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n105()</div><div class='add'>+    fun_l13_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n106()</div><div class='add'>+    fun_l13_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n107()</div><div class='add'>+    fun_l13_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n108()</div><div class='add'>+    fun_l13_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n109()</div><div class='add'>+    fun_l13_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n110()</div><div class='add'>+    fun_l13_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n111()</div><div class='add'>+    fun_l13_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n112()</div><div class='add'>+    fun_l13_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n113()</div><div class='add'>+    fun_l13_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n114()</div><div class='add'>+    fun_l13_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n115()</div><div class='add'>+    fun_l13_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n116()</div><div class='add'>+    fun_l13_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n117()</div><div class='add'>+    fun_l13_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n118()</div><div class='add'>+    fun_l13_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n119()</div><div class='add'>+    fun_l13_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n120()</div><div class='add'>+    fun_l13_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n121()</div><div class='add'>+    fun_l13_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n122()</div><div class='add'>+    fun_l13_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n123()</div><div class='add'>+    fun_l13_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n124()</div><div class='add'>+    fun_l13_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n125()</div><div class='add'>+    fun_l13_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n126()</div><div class='add'>+    fun_l13_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n127()</div><div class='add'>+    fun_l13_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n128()</div><div class='add'>+    fun_l13_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n129()</div><div class='add'>+    fun_l13_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n130()</div><div class='add'>+    fun_l13_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n131()</div><div class='add'>+    fun_l13_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n132()</div><div class='add'>+    fun_l13_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n133()</div><div class='add'>+    fun_l13_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n134()</div><div class='add'>+    fun_l13_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n135()</div><div class='add'>+    fun_l13_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n136()</div><div class='add'>+    fun_l13_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n137()</div><div class='add'>+    fun_l13_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n138()</div><div class='add'>+    fun_l13_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n139()</div><div class='add'>+    fun_l13_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n140()</div><div class='add'>+    fun_l13_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n141()</div><div class='add'>+    fun_l13_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n142()</div><div class='add'>+    fun_l13_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n143()</div><div class='add'>+    fun_l13_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n144()</div><div class='add'>+    fun_l13_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n145()</div><div class='add'>+    fun_l13_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n146()</div><div class='add'>+    fun_l13_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n147()</div><div class='add'>+    fun_l13_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n148()</div><div class='add'>+    fun_l13_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n149()</div><div class='add'>+    fun_l13_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n150()</div><div class='add'>+    fun_l13_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n151()</div><div class='add'>+    fun_l13_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n152()</div><div class='add'>+    fun_l13_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n153()</div><div class='add'>+    fun_l13_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n154()</div><div class='add'>+    fun_l13_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n155()</div><div class='add'>+    fun_l13_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n156()</div><div class='add'>+    fun_l13_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n157()</div><div class='add'>+    fun_l13_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n158()</div><div class='add'>+    fun_l13_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n159()</div><div class='add'>+    fun_l13_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n160()</div><div class='add'>+    fun_l13_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n161()</div><div class='add'>+    fun_l13_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n162()</div><div class='add'>+    fun_l13_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n163()</div><div class='add'>+    fun_l13_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n164()</div><div class='add'>+    fun_l13_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n165()</div><div class='add'>+    fun_l13_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n166()</div><div class='add'>+    fun_l13_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n167()</div><div class='add'>+    fun_l13_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n168()</div><div class='add'>+    fun_l13_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n169()</div><div class='add'>+    fun_l13_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n170()</div><div class='add'>+    fun_l13_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n171()</div><div class='add'>+    fun_l13_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n172()</div><div class='add'>+    fun_l13_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n173()</div><div class='add'>+    fun_l13_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n174()</div><div class='add'>+    fun_l13_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n175()</div><div class='add'>+    fun_l13_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n176()</div><div class='add'>+    fun_l13_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n177()</div><div class='add'>+    fun_l13_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n178()</div><div class='add'>+    fun_l13_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n179()</div><div class='add'>+    fun_l13_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n180()</div><div class='add'>+    fun_l13_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n181()</div><div class='add'>+    fun_l13_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n182()</div><div class='add'>+    fun_l13_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n183()</div><div class='add'>+    fun_l13_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n184()</div><div class='add'>+    fun_l13_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n185()</div><div class='add'>+    fun_l13_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n186()</div><div class='add'>+    fun_l13_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n187()</div><div class='add'>+    fun_l13_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n188()</div><div class='add'>+    fun_l13_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n189()</div><div class='add'>+    fun_l13_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n190()</div><div class='add'>+    fun_l13_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n191()</div><div class='add'>+    fun_l13_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n192()</div><div class='add'>+    fun_l13_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n193()</div><div class='add'>+    fun_l13_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n194()</div><div class='add'>+    fun_l13_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n195()</div><div class='add'>+    fun_l13_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n196()</div><div class='add'>+    fun_l13_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n197()</div><div class='add'>+    fun_l13_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n198()</div><div class='add'>+    fun_l13_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n199()</div><div class='add'>+    fun_l13_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n200()</div><div class='add'>+    fun_l13_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n201()</div><div class='add'>+    fun_l13_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n202()</div><div class='add'>+    fun_l13_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n203()</div><div class='add'>+    fun_l13_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n204()</div><div class='add'>+    fun_l13_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n205()</div><div class='add'>+    fun_l13_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n206()</div><div class='add'>+    fun_l13_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n207()</div><div class='add'>+    fun_l13_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n208()</div><div class='add'>+    fun_l13_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n209()</div><div class='add'>+    fun_l13_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n210()</div><div class='add'>+    fun_l13_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n211()</div><div class='add'>+    fun_l13_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n212()</div><div class='add'>+    fun_l13_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n213()</div><div class='add'>+    fun_l13_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n214()</div><div class='add'>+    fun_l13_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n215()</div><div class='add'>+    fun_l13_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n216()</div><div class='add'>+    fun_l13_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n217()</div><div class='add'>+    fun_l13_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n218()</div><div class='add'>+    fun_l13_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n219()</div><div class='add'>+    fun_l13_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n220()</div><div class='add'>+    fun_l13_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n221()</div><div class='add'>+    fun_l13_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n222()</div><div class='add'>+    fun_l13_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n223()</div><div class='add'>+    fun_l13_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n224()</div><div class='add'>+    fun_l13_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n225()</div><div class='add'>+    fun_l13_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n226()</div><div class='add'>+    fun_l13_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n227()</div><div class='add'>+    fun_l13_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n228()</div><div class='add'>+    fun_l13_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n229()</div><div class='add'>+    fun_l13_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n230()</div><div class='add'>+    fun_l13_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n231()</div><div class='add'>+    fun_l13_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n232()</div><div class='add'>+    fun_l13_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n233()</div><div class='add'>+    fun_l13_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n234()</div><div class='add'>+    fun_l13_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n235()</div><div class='add'>+    fun_l13_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n236()</div><div class='add'>+    fun_l13_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n237()</div><div class='add'>+    fun_l13_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n238()</div><div class='add'>+    fun_l13_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n239()</div><div class='add'>+    fun_l13_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n240()</div><div class='add'>+    fun_l13_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n241()</div><div class='add'>+    fun_l13_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n242()</div><div class='add'>+    fun_l13_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n243()</div><div class='add'>+    fun_l13_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n244()</div><div class='add'>+    fun_l13_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n245()</div><div class='add'>+    fun_l13_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n246()</div><div class='add'>+    fun_l13_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n247()</div><div class='add'>+    fun_l13_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n248()</div><div class='add'>+    fun_l13_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n249()</div><div class='add'>+    fun_l13_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n250()</div><div class='add'>+    fun_l13_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n251()</div><div class='add'>+    fun_l13_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n252()</div><div class='add'>+    fun_l13_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n253()</div><div class='add'>+    fun_l13_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n254()</div><div class='add'>+    fun_l13_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n255()</div><div class='add'>+    fun_l13_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n256()</div><div class='add'>+    fun_l13_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n257()</div><div class='add'>+    fun_l13_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n258()</div><div class='add'>+    fun_l13_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n259()</div><div class='add'>+    fun_l13_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n260()</div><div class='add'>+    fun_l13_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n261()</div><div class='add'>+    fun_l13_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n262()</div><div class='add'>+    fun_l13_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n263()</div><div class='add'>+    fun_l13_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n264()</div><div class='add'>+    fun_l13_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n265()</div><div class='add'>+    fun_l13_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n266()</div><div class='add'>+    fun_l13_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n267()</div><div class='add'>+    fun_l13_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n268()</div><div class='add'>+    fun_l13_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n269()</div><div class='add'>+    fun_l13_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n270()</div><div class='add'>+    fun_l13_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n271()</div><div class='add'>+    fun_l13_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n272()</div><div class='add'>+    fun_l13_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n273()</div><div class='add'>+    fun_l13_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n274()</div><div class='add'>+    fun_l13_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n275()</div><div class='add'>+    fun_l13_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n276()</div><div class='add'>+    fun_l13_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n277()</div><div class='add'>+    fun_l13_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n278()</div><div class='add'>+    fun_l13_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n279()</div><div class='add'>+    fun_l13_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n280()</div><div class='add'>+    fun_l13_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n281()</div><div class='add'>+    fun_l13_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n282()</div><div class='add'>+    fun_l13_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n283()</div><div class='add'>+    fun_l13_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n284()</div><div class='add'>+    fun_l13_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n285()</div><div class='add'>+    fun_l13_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n286()</div><div class='add'>+    fun_l13_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n287()</div><div class='add'>+    fun_l13_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n288()</div><div class='add'>+    fun_l13_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n289()</div><div class='add'>+    fun_l13_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n290()</div><div class='add'>+    fun_l13_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n291()</div><div class='add'>+    fun_l13_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n292()</div><div class='add'>+    fun_l13_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n293()</div><div class='add'>+    fun_l13_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n294()</div><div class='add'>+    fun_l13_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n295()</div><div class='add'>+    fun_l13_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n296()</div><div class='add'>+    fun_l13_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n297()</div><div class='add'>+    fun_l13_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n298()</div><div class='add'>+    fun_l13_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n299()</div><div class='add'>+    fun_l13_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n300()</div><div class='add'>+    fun_l13_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n301()</div><div class='add'>+    fun_l13_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n302()</div><div class='add'>+    fun_l13_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n303()</div><div class='add'>+    fun_l13_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n304()</div><div class='add'>+    fun_l13_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n305()</div><div class='add'>+    fun_l13_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n306()</div><div class='add'>+    fun_l13_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n307()</div><div class='add'>+    fun_l13_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n308()</div><div class='add'>+    fun_l13_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n309()</div><div class='add'>+    fun_l13_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n310()</div><div class='add'>+    fun_l13_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n311()</div><div class='add'>+    fun_l13_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n312()</div><div class='add'>+    fun_l13_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n313()</div><div class='add'>+    fun_l13_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n314()</div><div class='add'>+    fun_l13_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n315()</div><div class='add'>+    fun_l13_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n316()</div><div class='add'>+    fun_l13_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n317()</div><div class='add'>+    fun_l13_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n318()</div><div class='add'>+    fun_l13_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n319()</div><div class='add'>+    fun_l13_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n320()</div><div class='add'>+    fun_l13_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n321()</div><div class='add'>+    fun_l13_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n322()</div><div class='add'>+    fun_l13_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n323()</div><div class='add'>+    fun_l13_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n324()</div><div class='add'>+    fun_l13_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n325()</div><div class='add'>+    fun_l13_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n326()</div><div class='add'>+    fun_l13_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n327()</div><div class='add'>+    fun_l13_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n328()</div><div class='add'>+    fun_l13_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n329()</div><div class='add'>+    fun_l13_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n330()</div><div class='add'>+    fun_l13_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n331()</div><div class='add'>+    fun_l13_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n332()</div><div class='add'>+    fun_l13_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n333()</div><div class='add'>+    fun_l13_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n334()</div><div class='add'>+    fun_l13_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n335()</div><div class='add'>+    fun_l13_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n336()</div><div class='add'>+    fun_l13_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n337()</div><div class='add'>+    fun_l13_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n338()</div><div class='add'>+    fun_l13_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n339()</div><div class='add'>+    fun_l13_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n340()</div><div class='add'>+    fun_l13_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n341()</div><div class='add'>+    fun_l13_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n342()</div><div class='add'>+    fun_l13_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n343()</div><div class='add'>+    fun_l13_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n344()</div><div class='add'>+    fun_l13_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n345()</div><div class='add'>+    fun_l13_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n346()</div><div class='add'>+    fun_l13_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n347()</div><div class='add'>+    fun_l13_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n348()</div><div class='add'>+    fun_l13_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n349()</div><div class='add'>+    fun_l13_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n350()</div><div class='add'>+    fun_l13_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n351()</div><div class='add'>+    fun_l13_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n352()</div><div class='add'>+    fun_l13_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n353()</div><div class='add'>+    fun_l13_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n354()</div><div class='add'>+    fun_l13_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n355()</div><div class='add'>+    fun_l13_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n356()</div><div class='add'>+    fun_l13_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n357()</div><div class='add'>+    fun_l13_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n358()</div><div class='add'>+    fun_l13_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n359()</div><div class='add'>+    fun_l13_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n360()</div><div class='add'>+    fun_l13_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n361()</div><div class='add'>+    fun_l13_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n362()</div><div class='add'>+    fun_l13_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n363()</div><div class='add'>+    fun_l13_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n364()</div><div class='add'>+    fun_l13_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n365()</div><div class='add'>+    fun_l13_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n366()</div><div class='add'>+    fun_l13_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n367()</div><div class='add'>+    fun_l13_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n368()</div><div class='add'>+    fun_l13_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n369()</div><div class='add'>+    fun_l13_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n370()</div><div class='add'>+    fun_l13_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n371()</div><div class='add'>+    fun_l13_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n372()</div><div class='add'>+    fun_l13_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n373()</div><div class='add'>+    fun_l13_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n374()</div><div class='add'>+    fun_l13_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n375()</div><div class='add'>+    fun_l13_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n376()</div><div class='add'>+    fun_l13_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n377()</div><div class='add'>+    fun_l13_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n378()</div><div class='add'>+    fun_l13_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n379()</div><div class='add'>+    fun_l13_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n380()</div><div class='add'>+    fun_l13_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n381()</div><div class='add'>+    fun_l13_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n382()</div><div class='add'>+    fun_l13_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n383()</div><div class='add'>+    fun_l13_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n384()</div><div class='add'>+    fun_l13_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n385()</div><div class='add'>+    fun_l13_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n386()</div><div class='add'>+    fun_l13_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n387()</div><div class='add'>+    fun_l13_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n388()</div><div class='add'>+    fun_l13_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n389()</div><div class='add'>+    fun_l13_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n390()</div><div class='add'>+    fun_l13_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n391()</div><div class='add'>+    fun_l13_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n392()</div><div class='add'>+    fun_l13_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n393()</div><div class='add'>+    fun_l13_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n394()</div><div class='add'>+    fun_l13_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n395()</div><div class='add'>+    fun_l13_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n396()</div><div class='add'>+    fun_l13_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n397()</div><div class='add'>+    fun_l13_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n398()</div><div class='add'>+    fun_l13_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n399()</div><div class='add'>+    fun_l13_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n400()</div><div class='add'>+    fun_l13_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n401()</div><div class='add'>+    fun_l13_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n402()</div><div class='add'>+    fun_l13_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n403()</div><div class='add'>+    fun_l13_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n404()</div><div class='add'>+    fun_l13_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n405()</div><div class='add'>+    fun_l13_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n406()</div><div class='add'>+    fun_l13_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n407()</div><div class='add'>+    fun_l13_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n408()</div><div class='add'>+    fun_l13_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n409()</div><div class='add'>+    fun_l13_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n410()</div><div class='add'>+    fun_l13_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n411()</div><div class='add'>+    fun_l13_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n412()</div><div class='add'>+    fun_l13_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n413()</div><div class='add'>+    fun_l13_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n414()</div><div class='add'>+    fun_l13_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n415()</div><div class='add'>+    fun_l13_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n416()</div><div class='add'>+    fun_l13_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n417()</div><div class='add'>+    fun_l13_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n418()</div><div class='add'>+    fun_l13_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n419()</div><div class='add'>+    fun_l13_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n420()</div><div class='add'>+    fun_l13_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n421()</div><div class='add'>+    fun_l13_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n422()</div><div class='add'>+    fun_l13_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n423()</div><div class='add'>+    fun_l13_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n424()</div><div class='add'>+    fun_l13_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n425()</div><div class='add'>+    fun_l13_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n426()</div><div class='add'>+    fun_l13_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n427()</div><div class='add'>+    fun_l13_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n428()</div><div class='add'>+    fun_l13_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n429()</div><div class='add'>+    fun_l13_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n430()</div><div class='add'>+    fun_l13_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n431()</div><div class='add'>+    fun_l13_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n432()</div><div class='add'>+    fun_l13_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n433()</div><div class='add'>+    fun_l13_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n434()</div><div class='add'>+    fun_l13_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n435()</div><div class='add'>+    fun_l13_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n436()</div><div class='add'>+    fun_l13_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n437()</div><div class='add'>+    fun_l13_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n438()</div><div class='add'>+    fun_l13_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n439()</div><div class='add'>+    fun_l13_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n440()</div><div class='add'>+    fun_l13_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n441()</div><div class='add'>+    fun_l13_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n442()</div><div class='add'>+    fun_l13_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n443()</div><div class='add'>+    fun_l13_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n444()</div><div class='add'>+    fun_l13_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n445()</div><div class='add'>+    fun_l13_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n446()</div><div class='add'>+    fun_l13_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n447()</div><div class='add'>+    fun_l13_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n448()</div><div class='add'>+    fun_l13_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n449()</div><div class='add'>+    fun_l13_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n450()</div><div class='add'>+    fun_l13_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n451()</div><div class='add'>+    fun_l13_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n452()</div><div class='add'>+    fun_l13_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n453()</div><div class='add'>+    fun_l13_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n454()</div><div class='add'>+    fun_l13_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n455()</div><div class='add'>+    fun_l13_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n456()</div><div class='add'>+    fun_l13_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n457()</div><div class='add'>+    fun_l13_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n458()</div><div class='add'>+    fun_l13_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n459()</div><div class='add'>+    fun_l13_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n460()</div><div class='add'>+    fun_l13_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n461()</div><div class='add'>+    fun_l13_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n462()</div><div class='add'>+    fun_l13_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n463()</div><div class='add'>+    fun_l13_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n464()</div><div class='add'>+    fun_l13_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n465()</div><div class='add'>+    fun_l13_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n466()</div><div class='add'>+    fun_l13_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n467()</div><div class='add'>+    fun_l13_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n468()</div><div class='add'>+    fun_l13_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n469()</div><div class='add'>+    fun_l13_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n470()</div><div class='add'>+    fun_l13_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n471()</div><div class='add'>+    fun_l13_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n472()</div><div class='add'>+    fun_l13_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n473()</div><div class='add'>+    fun_l13_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n474()</div><div class='add'>+    fun_l13_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n475()</div><div class='add'>+    fun_l13_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n476()</div><div class='add'>+    fun_l13_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n477()</div><div class='add'>+    fun_l13_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n478()</div><div class='add'>+    fun_l13_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n479()</div><div class='add'>+    fun_l13_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n480()</div><div class='add'>+    fun_l13_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n481()</div><div class='add'>+    fun_l13_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n482()</div><div class='add'>+    fun_l13_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n483()</div><div class='add'>+    fun_l13_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n484()</div><div class='add'>+    fun_l13_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n485()</div><div class='add'>+    fun_l13_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n486()</div><div class='add'>+    fun_l13_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n487()</div><div class='add'>+    fun_l13_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n488()</div><div class='add'>+    fun_l13_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n489()</div><div class='add'>+    fun_l13_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n490()</div><div class='add'>+    fun_l13_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n491()</div><div class='add'>+    fun_l13_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n492()</div><div class='add'>+    fun_l13_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n493()</div><div class='add'>+    fun_l13_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n494()</div><div class='add'>+    fun_l13_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n495()</div><div class='add'>+    fun_l13_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n496()</div><div class='add'>+    fun_l13_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n497()</div><div class='add'>+    fun_l13_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n498()</div><div class='add'>+    fun_l13_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n499()</div><div class='add'>+    fun_l13_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n500()</div><div class='add'>+    fun_l13_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n501()</div><div class='add'>+    fun_l13_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n502()</div><div class='add'>+    fun_l13_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n503()</div><div class='add'>+    fun_l13_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n504()</div><div class='add'>+    fun_l13_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n505()</div><div class='add'>+    fun_l13_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n506()</div><div class='add'>+    fun_l13_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n507()</div><div class='add'>+    fun_l13_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n508()</div><div class='add'>+    fun_l13_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n509()</div><div class='add'>+    fun_l13_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n510()</div><div class='add'>+    fun_l13_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n511()</div><div class='add'>+    fun_l13_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n512()</div><div class='add'>+    fun_l13_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n513()</div><div class='add'>+    fun_l13_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n514()</div><div class='add'>+    fun_l13_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n515()</div><div class='add'>+    fun_l13_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n516()</div><div class='add'>+    fun_l13_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n517()</div><div class='add'>+    fun_l13_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n518()</div><div class='add'>+    fun_l13_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n519()</div><div class='add'>+    fun_l13_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n520()</div><div class='add'>+    fun_l13_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n521()</div><div class='add'>+    fun_l13_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n522()</div><div class='add'>+    fun_l13_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n523()</div><div class='add'>+    fun_l13_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n524()</div><div class='add'>+    fun_l13_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n525()</div><div class='add'>+    fun_l13_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n526()</div><div class='add'>+    fun_l13_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n527()</div><div class='add'>+    fun_l13_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n528()</div><div class='add'>+    fun_l13_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n529()</div><div class='add'>+    fun_l13_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n530()</div><div class='add'>+    fun_l13_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n531()</div><div class='add'>+    fun_l13_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n532()</div><div class='add'>+    fun_l13_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n533()</div><div class='add'>+    fun_l13_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n534()</div><div class='add'>+    fun_l13_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n535()</div><div class='add'>+    fun_l13_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n536()</div><div class='add'>+    fun_l13_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n537()</div><div class='add'>+    fun_l13_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n538()</div><div class='add'>+    fun_l13_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n539()</div><div class='add'>+    fun_l13_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n540()</div><div class='add'>+    fun_l13_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n541()</div><div class='add'>+    fun_l13_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n542()</div><div class='add'>+    fun_l13_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n543()</div><div class='add'>+    fun_l13_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n544()</div><div class='add'>+    fun_l13_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n545()</div><div class='add'>+    fun_l13_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n546()</div><div class='add'>+    fun_l13_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n547()</div><div class='add'>+    fun_l13_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n548()</div><div class='add'>+    fun_l13_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n549()</div><div class='add'>+    fun_l13_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n550()</div><div class='add'>+    fun_l13_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n551()</div><div class='add'>+    fun_l13_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n552()</div><div class='add'>+    fun_l13_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n553()</div><div class='add'>+    fun_l13_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n554()</div><div class='add'>+    fun_l13_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n555()</div><div class='add'>+    fun_l13_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n556()</div><div class='add'>+    fun_l13_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n557()</div><div class='add'>+    fun_l13_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n558()</div><div class='add'>+    fun_l13_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n559()</div><div class='add'>+    fun_l13_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n560()</div><div class='add'>+    fun_l13_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n561()</div><div class='add'>+    fun_l13_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n562()</div><div class='add'>+    fun_l13_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n563()</div><div class='add'>+    fun_l13_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n564()</div><div class='add'>+    fun_l13_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n565()</div><div class='add'>+    fun_l13_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n566()</div><div class='add'>+    fun_l13_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n567()</div><div class='add'>+    fun_l13_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n568()</div><div class='add'>+    fun_l13_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n569()</div><div class='add'>+    fun_l13_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n570()</div><div class='add'>+    fun_l13_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n571()</div><div class='add'>+    fun_l13_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n572()</div><div class='add'>+    fun_l13_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n573()</div><div class='add'>+    fun_l13_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n574()</div><div class='add'>+    fun_l13_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n575()</div><div class='add'>+    fun_l13_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n576()</div><div class='add'>+    fun_l13_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n577()</div><div class='add'>+    fun_l13_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n578()</div><div class='add'>+    fun_l13_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n579()</div><div class='add'>+    fun_l13_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n580()</div><div class='add'>+    fun_l13_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n581()</div><div class='add'>+    fun_l13_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n582()</div><div class='add'>+    fun_l13_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n583()</div><div class='add'>+    fun_l13_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n584()</div><div class='add'>+    fun_l13_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n585()</div><div class='add'>+    fun_l13_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n586()</div><div class='add'>+    fun_l13_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n587()</div><div class='add'>+    fun_l13_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n588()</div><div class='add'>+    fun_l13_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n589()</div><div class='add'>+    fun_l13_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n590()</div><div class='add'>+    fun_l13_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n591()</div><div class='add'>+    fun_l13_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n592()</div><div class='add'>+    fun_l13_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n593()</div><div class='add'>+    fun_l13_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n594()</div><div class='add'>+    fun_l13_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n595()</div><div class='add'>+    fun_l13_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n596()</div><div class='add'>+    fun_l13_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n597()</div><div class='add'>+    fun_l13_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n598()</div><div class='add'>+    fun_l13_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n599()</div><div class='add'>+    fun_l13_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n600()</div><div class='add'>+    fun_l13_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n601()</div><div class='add'>+    fun_l13_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n602()</div><div class='add'>+    fun_l13_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n603()</div><div class='add'>+    fun_l13_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n604()</div><div class='add'>+    fun_l13_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n605()</div><div class='add'>+    fun_l13_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n606()</div><div class='add'>+    fun_l13_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n607()</div><div class='add'>+    fun_l13_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n608()</div><div class='add'>+    fun_l13_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n609()</div><div class='add'>+    fun_l13_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n610()</div><div class='add'>+    fun_l13_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n611()</div><div class='add'>+    fun_l13_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n612()</div><div class='add'>+    fun_l13_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n613()</div><div class='add'>+    fun_l13_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n614()</div><div class='add'>+    fun_l13_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n615()</div><div class='add'>+    fun_l13_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n616()</div><div class='add'>+    fun_l13_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n617()</div><div class='add'>+    fun_l13_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n618()</div><div class='add'>+    fun_l13_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n619()</div><div class='add'>+    fun_l13_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n620()</div><div class='add'>+    fun_l13_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n621()</div><div class='add'>+    fun_l13_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n622()</div><div class='add'>+    fun_l13_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n623()</div><div class='add'>+    fun_l13_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n624()</div><div class='add'>+    fun_l13_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n625()</div><div class='add'>+    fun_l13_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n626()</div><div class='add'>+    fun_l13_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n627()</div><div class='add'>+    fun_l13_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n628()</div><div class='add'>+    fun_l13_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n629()</div><div class='add'>+    fun_l13_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n630()</div><div class='add'>+    fun_l13_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n631()</div><div class='add'>+    fun_l13_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n632()</div><div class='add'>+    fun_l13_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n633()</div><div class='add'>+    fun_l13_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n634()</div><div class='add'>+    fun_l13_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n635()</div><div class='add'>+    fun_l13_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n636()</div><div class='add'>+    fun_l13_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n637()</div><div class='add'>+    fun_l13_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n638()</div><div class='add'>+    fun_l13_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n639()</div><div class='add'>+    fun_l13_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n640()</div><div class='add'>+    fun_l13_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n641()</div><div class='add'>+    fun_l13_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n642()</div><div class='add'>+    fun_l13_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n643()</div><div class='add'>+    fun_l13_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n644()</div><div class='add'>+    fun_l13_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n645()</div><div class='add'>+    fun_l13_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n646()</div><div class='add'>+    fun_l13_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n647()</div><div class='add'>+    fun_l13_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n648()</div><div class='add'>+    fun_l13_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n649()</div><div class='add'>+    fun_l13_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n650()</div><div class='add'>+    fun_l13_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n651()</div><div class='add'>+    fun_l13_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n652()</div><div class='add'>+    fun_l13_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n653()</div><div class='add'>+    fun_l13_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n654()</div><div class='add'>+    fun_l13_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n655()</div><div class='add'>+    fun_l13_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n656()</div><div class='add'>+    fun_l13_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n657()</div><div class='add'>+    fun_l13_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n658()</div><div class='add'>+    fun_l13_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n659()</div><div class='add'>+    fun_l13_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n660()</div><div class='add'>+    fun_l13_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n661()</div><div class='add'>+    fun_l13_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n662()</div><div class='add'>+    fun_l13_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n663()</div><div class='add'>+    fun_l13_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n664()</div><div class='add'>+    fun_l13_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n665()</div><div class='add'>+    fun_l13_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n666()</div><div class='add'>+    fun_l13_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n667()</div><div class='add'>+    fun_l13_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n668()</div><div class='add'>+    fun_l13_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n669()</div><div class='add'>+    fun_l13_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n670()</div><div class='add'>+    fun_l13_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n671()</div><div class='add'>+    fun_l13_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n672()</div><div class='add'>+    fun_l13_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n673()</div><div class='add'>+    fun_l13_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n674()</div><div class='add'>+    fun_l13_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n675()</div><div class='add'>+    fun_l13_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n676()</div><div class='add'>+    fun_l13_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n677()</div><div class='add'>+    fun_l13_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n678()</div><div class='add'>+    fun_l13_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n679()</div><div class='add'>+    fun_l13_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n680()</div><div class='add'>+    fun_l13_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n681()</div><div class='add'>+    fun_l13_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n682()</div><div class='add'>+    fun_l13_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n683()</div><div class='add'>+    fun_l13_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n684()</div><div class='add'>+    fun_l13_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n685()</div><div class='add'>+    fun_l13_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n686()</div><div class='add'>+    fun_l13_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n687()</div><div class='add'>+    fun_l13_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n688()</div><div class='add'>+    fun_l13_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n689()</div><div class='add'>+    fun_l13_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n690()</div><div class='add'>+    fun_l13_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n691()</div><div class='add'>+    fun_l13_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n692()</div><div class='add'>+    fun_l13_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n693()</div><div class='add'>+    fun_l13_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n694()</div><div class='add'>+    fun_l13_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n695()</div><div class='add'>+    fun_l13_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n696()</div><div class='add'>+    fun_l13_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n697()</div><div class='add'>+    fun_l13_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n698()</div><div class='add'>+    fun_l13_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n699()</div><div class='add'>+    fun_l13_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n700()</div><div class='add'>+    fun_l13_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n701()</div><div class='add'>+    fun_l13_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n702()</div><div class='add'>+    fun_l13_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n703()</div><div class='add'>+    fun_l13_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n704()</div><div class='add'>+    fun_l13_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n705()</div><div class='add'>+    fun_l13_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n706()</div><div class='add'>+    fun_l13_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n707()</div><div class='add'>+    fun_l13_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n708()</div><div class='add'>+    fun_l13_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n709()</div><div class='add'>+    fun_l13_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n710()</div><div class='add'>+    fun_l13_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n711()</div><div class='add'>+    fun_l13_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n712()</div><div class='add'>+    fun_l13_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n713()</div><div class='add'>+    fun_l13_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n714()</div><div class='add'>+    fun_l13_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n715()</div><div class='add'>+    fun_l13_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n716()</div><div class='add'>+    fun_l13_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n717()</div><div class='add'>+    fun_l13_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n718()</div><div class='add'>+    fun_l13_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n719()</div><div class='add'>+    fun_l13_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n720()</div><div class='add'>+    fun_l13_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n721()</div><div class='add'>+    fun_l13_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n722()</div><div class='add'>+    fun_l13_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n723()</div><div class='add'>+    fun_l13_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n724()</div><div class='add'>+    fun_l13_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n725()</div><div class='add'>+    fun_l13_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n726()</div><div class='add'>+    fun_l13_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n727()</div><div class='add'>+    fun_l13_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n728()</div><div class='add'>+    fun_l13_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n729()</div><div class='add'>+    fun_l13_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n730()</div><div class='add'>+    fun_l13_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n731()</div><div class='add'>+    fun_l13_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n732()</div><div class='add'>+    fun_l13_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n733()</div><div class='add'>+    fun_l13_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n734()</div><div class='add'>+    fun_l13_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n735()</div><div class='add'>+    fun_l13_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n736()</div><div class='add'>+    fun_l13_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n737()</div><div class='add'>+    fun_l13_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n738()</div><div class='add'>+    fun_l13_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n739()</div><div class='add'>+    fun_l13_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n740()</div><div class='add'>+    fun_l13_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n741()</div><div class='add'>+    fun_l13_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n742()</div><div class='add'>+    fun_l13_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n743()</div><div class='add'>+    fun_l13_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n744()</div><div class='add'>+    fun_l13_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n745()</div><div class='add'>+    fun_l13_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n746()</div><div class='add'>+    fun_l13_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n747()</div><div class='add'>+    fun_l13_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n748()</div><div class='add'>+    fun_l13_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n749()</div><div class='add'>+    fun_l13_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n750()</div><div class='add'>+    fun_l13_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n751()</div><div class='add'>+    fun_l13_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n752()</div><div class='add'>+    fun_l13_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n753()</div><div class='add'>+    fun_l13_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n754()</div><div class='add'>+    fun_l13_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n755()</div><div class='add'>+    fun_l13_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n756()</div><div class='add'>+    fun_l13_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n757()</div><div class='add'>+    fun_l13_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n758()</div><div class='add'>+    fun_l13_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n759()</div><div class='add'>+    fun_l13_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n760()</div><div class='add'>+    fun_l13_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n761()</div><div class='add'>+    fun_l13_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n762()</div><div class='add'>+    fun_l13_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n763()</div><div class='add'>+    fun_l13_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n764()</div><div class='add'>+    fun_l13_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n765()</div><div class='add'>+    fun_l13_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n766()</div><div class='add'>+    fun_l13_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n767()</div><div class='add'>+    fun_l13_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n768()</div><div class='add'>+    fun_l13_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n769()</div><div class='add'>+    fun_l13_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n770()</div><div class='add'>+    fun_l13_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n771()</div><div class='add'>+    fun_l13_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n772()</div><div class='add'>+    fun_l13_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n773()</div><div class='add'>+    fun_l13_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n774()</div><div class='add'>+    fun_l13_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n775()</div><div class='add'>+    fun_l13_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n776()</div><div class='add'>+    fun_l13_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n777()</div><div class='add'>+    fun_l13_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n778()</div><div class='add'>+    fun_l13_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n779()</div><div class='add'>+    fun_l13_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n780()</div><div class='add'>+    fun_l13_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n781()</div><div class='add'>+    fun_l13_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n782()</div><div class='add'>+    fun_l13_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n783()</div><div class='add'>+    fun_l13_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n784()</div><div class='add'>+    fun_l13_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n785()</div><div class='add'>+    fun_l13_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n786()</div><div class='add'>+    fun_l13_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n787()</div><div class='add'>+    fun_l13_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n788()</div><div class='add'>+    fun_l13_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n789()</div><div class='add'>+    fun_l13_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n790()</div><div class='add'>+    fun_l13_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n791()</div><div class='add'>+    fun_l13_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n792()</div><div class='add'>+    fun_l13_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n793()</div><div class='add'>+    fun_l13_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n794()</div><div class='add'>+    fun_l13_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n795()</div><div class='add'>+    fun_l13_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n796()</div><div class='add'>+    fun_l13_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n797()</div><div class='add'>+    fun_l13_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n798()</div><div class='add'>+    fun_l13_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n799()</div><div class='add'>+    fun_l13_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n800()</div><div class='add'>+    fun_l13_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n801()</div><div class='add'>+    fun_l13_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n802()</div><div class='add'>+    fun_l13_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n803()</div><div class='add'>+    fun_l13_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n804()</div><div class='add'>+    fun_l13_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n805()</div><div class='add'>+    fun_l13_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n806()</div><div class='add'>+    fun_l13_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n807()</div><div class='add'>+    fun_l13_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n808()</div><div class='add'>+    fun_l13_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n809()</div><div class='add'>+    fun_l13_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n810()</div><div class='add'>+    fun_l13_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n811()</div><div class='add'>+    fun_l13_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n812()</div><div class='add'>+    fun_l13_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n813()</div><div class='add'>+    fun_l13_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n814()</div><div class='add'>+    fun_l13_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n815()</div><div class='add'>+    fun_l13_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n816()</div><div class='add'>+    fun_l13_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n817()</div><div class='add'>+    fun_l13_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n818()</div><div class='add'>+    fun_l13_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n819()</div><div class='add'>+    fun_l13_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n820()</div><div class='add'>+    fun_l13_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n821()</div><div class='add'>+    fun_l13_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n822()</div><div class='add'>+    fun_l13_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n823()</div><div class='add'>+    fun_l13_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n824()</div><div class='add'>+    fun_l13_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n825()</div><div class='add'>+    fun_l13_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n826()</div><div class='add'>+    fun_l13_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n827()</div><div class='add'>+    fun_l13_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n828()</div><div class='add'>+    fun_l13_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n829()</div><div class='add'>+    fun_l13_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n830()</div><div class='add'>+    fun_l13_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n831()</div><div class='add'>+    fun_l13_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n832()</div><div class='add'>+    fun_l13_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n833()</div><div class='add'>+    fun_l13_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n834()</div><div class='add'>+    fun_l13_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n835()</div><div class='add'>+    fun_l13_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n836()</div><div class='add'>+    fun_l13_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n837()</div><div class='add'>+    fun_l13_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n838()</div><div class='add'>+    fun_l13_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n839()</div><div class='add'>+    fun_l13_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n840()</div><div class='add'>+    fun_l13_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n841()</div><div class='add'>+    fun_l13_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n842()</div><div class='add'>+    fun_l13_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n843()</div><div class='add'>+    fun_l13_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n844()</div><div class='add'>+    fun_l13_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n845()</div><div class='add'>+    fun_l13_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n846()</div><div class='add'>+    fun_l13_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n847()</div><div class='add'>+    fun_l13_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n848()</div><div class='add'>+    fun_l13_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n849()</div><div class='add'>+    fun_l13_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n850()</div><div class='add'>+    fun_l13_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n851()</div><div class='add'>+    fun_l13_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n852()</div><div class='add'>+    fun_l13_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n853()</div><div class='add'>+    fun_l13_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n854()</div><div class='add'>+    fun_l13_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n855()</div><div class='add'>+    fun_l13_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n856()</div><div class='add'>+    fun_l13_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n857()</div><div class='add'>+    fun_l13_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n858()</div><div class='add'>+    fun_l13_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n859()</div><div class='add'>+    fun_l13_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n860()</div><div class='add'>+    fun_l13_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n861()</div><div class='add'>+    fun_l13_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n862()</div><div class='add'>+    fun_l13_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n863()</div><div class='add'>+    fun_l13_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n864()</div><div class='add'>+    fun_l13_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n865()</div><div class='add'>+    fun_l13_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n866()</div><div class='add'>+    fun_l13_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n867()</div><div class='add'>+    fun_l13_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n868()</div><div class='add'>+    fun_l13_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n869()</div><div class='add'>+    fun_l13_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n870()</div><div class='add'>+    fun_l13_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n871()</div><div class='add'>+    fun_l13_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n872()</div><div class='add'>+    fun_l13_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n873()</div><div class='add'>+    fun_l13_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n874()</div><div class='add'>+    fun_l13_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n875()</div><div class='add'>+    fun_l13_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n876()</div><div class='add'>+    fun_l13_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n877()</div><div class='add'>+    fun_l13_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n878()</div><div class='add'>+    fun_l13_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n879()</div><div class='add'>+    fun_l13_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n880()</div><div class='add'>+    fun_l13_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n881()</div><div class='add'>+    fun_l13_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n882()</div><div class='add'>+    fun_l13_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n883()</div><div class='add'>+    fun_l13_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n884()</div><div class='add'>+    fun_l13_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n885()</div><div class='add'>+    fun_l13_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n886()</div><div class='add'>+    fun_l13_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n887()</div><div class='add'>+    fun_l13_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n888()</div><div class='add'>+    fun_l13_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n889()</div><div class='add'>+    fun_l13_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n890()</div><div class='add'>+    fun_l13_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n891()</div><div class='add'>+    fun_l13_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n892()</div><div class='add'>+    fun_l13_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n893()</div><div class='add'>+    fun_l13_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n894()</div><div class='add'>+    fun_l13_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n895()</div><div class='add'>+    fun_l13_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n896()</div><div class='add'>+    fun_l13_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n897()</div><div class='add'>+    fun_l13_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n898()</div><div class='add'>+    fun_l13_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n899()</div><div class='add'>+    fun_l13_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n900()</div><div class='add'>+    fun_l13_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n901()</div><div class='add'>+    fun_l13_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n902()</div><div class='add'>+    fun_l13_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n903()</div><div class='add'>+    fun_l13_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n904()</div><div class='add'>+    fun_l13_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n905()</div><div class='add'>+    fun_l13_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n906()</div><div class='add'>+    fun_l13_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n907()</div><div class='add'>+    fun_l13_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n908()</div><div class='add'>+    fun_l13_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n909()</div><div class='add'>+    fun_l13_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n910()</div><div class='add'>+    fun_l13_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n911()</div><div class='add'>+    fun_l13_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n912()</div><div class='add'>+    fun_l13_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n913()</div><div class='add'>+    fun_l13_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n914()</div><div class='add'>+    fun_l13_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n915()</div><div class='add'>+    fun_l13_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n916()</div><div class='add'>+    fun_l13_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n917()</div><div class='add'>+    fun_l13_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n918()</div><div class='add'>+    fun_l13_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n919()</div><div class='add'>+    fun_l13_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n920()</div><div class='add'>+    fun_l13_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n921()</div><div class='add'>+    fun_l13_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n922()</div><div class='add'>+    fun_l13_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n923()</div><div class='add'>+    fun_l13_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n924()</div><div class='add'>+    fun_l13_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n925()</div><div class='add'>+    fun_l13_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n926()</div><div class='add'>+    fun_l13_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n927()</div><div class='add'>+    fun_l13_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n928()</div><div class='add'>+    fun_l13_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n929()</div><div class='add'>+    fun_l13_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n930()</div><div class='add'>+    fun_l13_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n931()</div><div class='add'>+    fun_l13_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n932()</div><div class='add'>+    fun_l13_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n933()</div><div class='add'>+    fun_l13_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n934()</div><div class='add'>+    fun_l13_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n935()</div><div class='add'>+    fun_l13_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n936()</div><div class='add'>+    fun_l13_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n937()</div><div class='add'>+    fun_l13_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n938()</div><div class='add'>+    fun_l13_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n939()</div><div class='add'>+    fun_l13_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n940()</div><div class='add'>+    fun_l13_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n941()</div><div class='add'>+    fun_l13_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n942()</div><div class='add'>+    fun_l13_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n943()</div><div class='add'>+    fun_l13_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n944()</div><div class='add'>+    fun_l13_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n945()</div><div class='add'>+    fun_l13_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n946()</div><div class='add'>+    fun_l13_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n947()</div><div class='add'>+    fun_l13_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n948()</div><div class='add'>+    fun_l13_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n949()</div><div class='add'>+    fun_l13_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n950()</div><div class='add'>+    fun_l13_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n951()</div><div class='add'>+    fun_l13_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n952()</div><div class='add'>+    fun_l13_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n953()</div><div class='add'>+    fun_l13_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n954()</div><div class='add'>+    fun_l13_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n955()</div><div class='add'>+    fun_l13_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n956()</div><div class='add'>+    fun_l13_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n957()</div><div class='add'>+    fun_l13_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n958()</div><div class='add'>+    fun_l13_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n959()</div><div class='add'>+    fun_l13_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n960()</div><div class='add'>+    fun_l13_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n961()</div><div class='add'>+    fun_l13_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n962()</div><div class='add'>+    fun_l13_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n963()</div><div class='add'>+    fun_l13_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n964()</div><div class='add'>+    fun_l13_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n965()</div><div class='add'>+    fun_l13_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n966()</div><div class='add'>+    fun_l13_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n967()</div><div class='add'>+    fun_l13_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n968()</div><div class='add'>+    fun_l13_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n969()</div><div class='add'>+    fun_l13_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n970()</div><div class='add'>+    fun_l13_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n971()</div><div class='add'>+    fun_l13_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n972()</div><div class='add'>+    fun_l13_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n973()</div><div class='add'>+    fun_l13_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n974()</div><div class='add'>+    fun_l13_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n975()</div><div class='add'>+    fun_l13_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n976()</div><div class='add'>+    fun_l13_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n977()</div><div class='add'>+    fun_l13_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n978()</div><div class='add'>+    fun_l13_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n979()</div><div class='add'>+    fun_l13_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n980()</div><div class='add'>+    fun_l13_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n981()</div><div class='add'>+    fun_l13_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n982()</div><div class='add'>+    fun_l13_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n983()</div><div class='add'>+    fun_l13_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n984()</div><div class='add'>+    fun_l13_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n985()</div><div class='add'>+    fun_l13_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n986()</div><div class='add'>+    fun_l13_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n987()</div><div class='add'>+    fun_l13_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n988()</div><div class='add'>+    fun_l13_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n989()</div><div class='add'>+    fun_l13_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n990()</div><div class='add'>+    fun_l13_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n991()</div><div class='add'>+    fun_l13_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n992()</div><div class='add'>+    fun_l13_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n993()</div><div class='add'>+    fun_l13_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n994()</div><div class='add'>+    fun_l13_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n995()</div><div class='add'>+    fun_l13_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n996()</div><div class='add'>+    fun_l13_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n997()</div><div class='add'>+    fun_l13_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n998()</div><div class='add'>+    fun_l13_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l12_n999()</div><div class='add'>+    fun_l13_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n0()</div><div class='add'>+    fun_l14_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n1()</div><div class='add'>+    fun_l14_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n2()</div><div class='add'>+    fun_l14_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n3()</div><div class='add'>+    fun_l14_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n4()</div><div class='add'>+    fun_l14_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n5()</div><div class='add'>+    fun_l14_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n6()</div><div class='add'>+    fun_l14_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n7()</div><div class='add'>+    fun_l14_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n8()</div><div class='add'>+    fun_l14_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n9()</div><div class='add'>+    fun_l14_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n10()</div><div class='add'>+    fun_l14_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n11()</div><div class='add'>+    fun_l14_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n12()</div><div class='add'>+    fun_l14_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n13()</div><div class='add'>+    fun_l14_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n14()</div><div class='add'>+    fun_l14_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n15()</div><div class='add'>+    fun_l14_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n16()</div><div class='add'>+    fun_l14_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n17()</div><div class='add'>+    fun_l14_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n18()</div><div class='add'>+    fun_l14_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n19()</div><div class='add'>+    fun_l14_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n20()</div><div class='add'>+    fun_l14_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n21()</div><div class='add'>+    fun_l14_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n22()</div><div class='add'>+    fun_l14_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n23()</div><div class='add'>+    fun_l14_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n24()</div><div class='add'>+    fun_l14_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n25()</div><div class='add'>+    fun_l14_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n26()</div><div class='add'>+    fun_l14_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n27()</div><div class='add'>+    fun_l14_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n28()</div><div class='add'>+    fun_l14_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n29()</div><div class='add'>+    fun_l14_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n30()</div><div class='add'>+    fun_l14_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n31()</div><div class='add'>+    fun_l14_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n32()</div><div class='add'>+    fun_l14_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n33()</div><div class='add'>+    fun_l14_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n34()</div><div class='add'>+    fun_l14_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n35()</div><div class='add'>+    fun_l14_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n36()</div><div class='add'>+    fun_l14_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n37()</div><div class='add'>+    fun_l14_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n38()</div><div class='add'>+    fun_l14_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n39()</div><div class='add'>+    fun_l14_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n40()</div><div class='add'>+    fun_l14_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n41()</div><div class='add'>+    fun_l14_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n42()</div><div class='add'>+    fun_l14_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n43()</div><div class='add'>+    fun_l14_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n44()</div><div class='add'>+    fun_l14_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n45()</div><div class='add'>+    fun_l14_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n46()</div><div class='add'>+    fun_l14_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n47()</div><div class='add'>+    fun_l14_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n48()</div><div class='add'>+    fun_l14_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n49()</div><div class='add'>+    fun_l14_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n50()</div><div class='add'>+    fun_l14_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n51()</div><div class='add'>+    fun_l14_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n52()</div><div class='add'>+    fun_l14_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n53()</div><div class='add'>+    fun_l14_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n54()</div><div class='add'>+    fun_l14_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n55()</div><div class='add'>+    fun_l14_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n56()</div><div class='add'>+    fun_l14_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n57()</div><div class='add'>+    fun_l14_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n58()</div><div class='add'>+    fun_l14_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n59()</div><div class='add'>+    fun_l14_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n60()</div><div class='add'>+    fun_l14_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n61()</div><div class='add'>+    fun_l14_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n62()</div><div class='add'>+    fun_l14_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n63()</div><div class='add'>+    fun_l14_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n64()</div><div class='add'>+    fun_l14_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n65()</div><div class='add'>+    fun_l14_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n66()</div><div class='add'>+    fun_l14_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n67()</div><div class='add'>+    fun_l14_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n68()</div><div class='add'>+    fun_l14_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n69()</div><div class='add'>+    fun_l14_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n70()</div><div class='add'>+    fun_l14_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n71()</div><div class='add'>+    fun_l14_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n72()</div><div class='add'>+    fun_l14_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n73()</div><div class='add'>+    fun_l14_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n74()</div><div class='add'>+    fun_l14_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n75()</div><div class='add'>+    fun_l14_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n76()</div><div class='add'>+    fun_l14_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n77()</div><div class='add'>+    fun_l14_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n78()</div><div class='add'>+    fun_l14_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n79()</div><div class='add'>+    fun_l14_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n80()</div><div class='add'>+    fun_l14_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n81()</div><div class='add'>+    fun_l14_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n82()</div><div class='add'>+    fun_l14_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n83()</div><div class='add'>+    fun_l14_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n84()</div><div class='add'>+    fun_l14_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n85()</div><div class='add'>+    fun_l14_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n86()</div><div class='add'>+    fun_l14_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n87()</div><div class='add'>+    fun_l14_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n88()</div><div class='add'>+    fun_l14_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n89()</div><div class='add'>+    fun_l14_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n90()</div><div class='add'>+    fun_l14_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n91()</div><div class='add'>+    fun_l14_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n92()</div><div class='add'>+    fun_l14_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n93()</div><div class='add'>+    fun_l14_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n94()</div><div class='add'>+    fun_l14_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n95()</div><div class='add'>+    fun_l14_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n96()</div><div class='add'>+    fun_l14_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n97()</div><div class='add'>+    fun_l14_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n98()</div><div class='add'>+    fun_l14_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n99()</div><div class='add'>+    fun_l14_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n100()</div><div class='add'>+    fun_l14_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n101()</div><div class='add'>+    fun_l14_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n102()</div><div class='add'>+    fun_l14_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n103()</div><div class='add'>+    fun_l14_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n104()</div><div class='add'>+    fun_l14_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n105()</div><div class='add'>+    fun_l14_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n106()</div><div class='add'>+    fun_l14_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n107()</div><div class='add'>+    fun_l14_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n108()</div><div class='add'>+    fun_l14_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n109()</div><div class='add'>+    fun_l14_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n110()</div><div class='add'>+    fun_l14_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n111()</div><div class='add'>+    fun_l14_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n112()</div><div class='add'>+    fun_l14_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n113()</div><div class='add'>+    fun_l14_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n114()</div><div class='add'>+    fun_l14_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n115()</div><div class='add'>+    fun_l14_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n116()</div><div class='add'>+    fun_l14_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n117()</div><div class='add'>+    fun_l14_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n118()</div><div class='add'>+    fun_l14_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n119()</div><div class='add'>+    fun_l14_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n120()</div><div class='add'>+    fun_l14_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n121()</div><div class='add'>+    fun_l14_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n122()</div><div class='add'>+    fun_l14_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n123()</div><div class='add'>+    fun_l14_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n124()</div><div class='add'>+    fun_l14_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n125()</div><div class='add'>+    fun_l14_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n126()</div><div class='add'>+    fun_l14_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n127()</div><div class='add'>+    fun_l14_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n128()</div><div class='add'>+    fun_l14_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n129()</div><div class='add'>+    fun_l14_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n130()</div><div class='add'>+    fun_l14_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n131()</div><div class='add'>+    fun_l14_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n132()</div><div class='add'>+    fun_l14_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n133()</div><div class='add'>+    fun_l14_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n134()</div><div class='add'>+    fun_l14_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n135()</div><div class='add'>+    fun_l14_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n136()</div><div class='add'>+    fun_l14_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n137()</div><div class='add'>+    fun_l14_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n138()</div><div class='add'>+    fun_l14_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n139()</div><div class='add'>+    fun_l14_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n140()</div><div class='add'>+    fun_l14_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n141()</div><div class='add'>+    fun_l14_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n142()</div><div class='add'>+    fun_l14_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n143()</div><div class='add'>+    fun_l14_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n144()</div><div class='add'>+    fun_l14_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n145()</div><div class='add'>+    fun_l14_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n146()</div><div class='add'>+    fun_l14_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n147()</div><div class='add'>+    fun_l14_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n148()</div><div class='add'>+    fun_l14_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n149()</div><div class='add'>+    fun_l14_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n150()</div><div class='add'>+    fun_l14_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n151()</div><div class='add'>+    fun_l14_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n152()</div><div class='add'>+    fun_l14_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n153()</div><div class='add'>+    fun_l14_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n154()</div><div class='add'>+    fun_l14_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n155()</div><div class='add'>+    fun_l14_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n156()</div><div class='add'>+    fun_l14_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n157()</div><div class='add'>+    fun_l14_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n158()</div><div class='add'>+    fun_l14_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n159()</div><div class='add'>+    fun_l14_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n160()</div><div class='add'>+    fun_l14_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n161()</div><div class='add'>+    fun_l14_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n162()</div><div class='add'>+    fun_l14_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n163()</div><div class='add'>+    fun_l14_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n164()</div><div class='add'>+    fun_l14_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n165()</div><div class='add'>+    fun_l14_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n166()</div><div class='add'>+    fun_l14_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n167()</div><div class='add'>+    fun_l14_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n168()</div><div class='add'>+    fun_l14_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n169()</div><div class='add'>+    fun_l14_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n170()</div><div class='add'>+    fun_l14_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n171()</div><div class='add'>+    fun_l14_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n172()</div><div class='add'>+    fun_l14_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n173()</div><div class='add'>+    fun_l14_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n174()</div><div class='add'>+    fun_l14_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n175()</div><div class='add'>+    fun_l14_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n176()</div><div class='add'>+    fun_l14_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n177()</div><div class='add'>+    fun_l14_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n178()</div><div class='add'>+    fun_l14_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n179()</div><div class='add'>+    fun_l14_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n180()</div><div class='add'>+    fun_l14_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n181()</div><div class='add'>+    fun_l14_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n182()</div><div class='add'>+    fun_l14_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n183()</div><div class='add'>+    fun_l14_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n184()</div><div class='add'>+    fun_l14_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n185()</div><div class='add'>+    fun_l14_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n186()</div><div class='add'>+    fun_l14_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n187()</div><div class='add'>+    fun_l14_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n188()</div><div class='add'>+    fun_l14_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n189()</div><div class='add'>+    fun_l14_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n190()</div><div class='add'>+    fun_l14_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n191()</div><div class='add'>+    fun_l14_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n192()</div><div class='add'>+    fun_l14_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n193()</div><div class='add'>+    fun_l14_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n194()</div><div class='add'>+    fun_l14_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n195()</div><div class='add'>+    fun_l14_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n196()</div><div class='add'>+    fun_l14_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n197()</div><div class='add'>+    fun_l14_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n198()</div><div class='add'>+    fun_l14_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n199()</div><div class='add'>+    fun_l14_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n200()</div><div class='add'>+    fun_l14_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n201()</div><div class='add'>+    fun_l14_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n202()</div><div class='add'>+    fun_l14_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n203()</div><div class='add'>+    fun_l14_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n204()</div><div class='add'>+    fun_l14_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n205()</div><div class='add'>+    fun_l14_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n206()</div><div class='add'>+    fun_l14_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n207()</div><div class='add'>+    fun_l14_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n208()</div><div class='add'>+    fun_l14_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n209()</div><div class='add'>+    fun_l14_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n210()</div><div class='add'>+    fun_l14_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n211()</div><div class='add'>+    fun_l14_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n212()</div><div class='add'>+    fun_l14_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n213()</div><div class='add'>+    fun_l14_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n214()</div><div class='add'>+    fun_l14_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n215()</div><div class='add'>+    fun_l14_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n216()</div><div class='add'>+    fun_l14_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n217()</div><div class='add'>+    fun_l14_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n218()</div><div class='add'>+    fun_l14_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n219()</div><div class='add'>+    fun_l14_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n220()</div><div class='add'>+    fun_l14_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n221()</div><div class='add'>+    fun_l14_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n222()</div><div class='add'>+    fun_l14_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n223()</div><div class='add'>+    fun_l14_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n224()</div><div class='add'>+    fun_l14_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n225()</div><div class='add'>+    fun_l14_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n226()</div><div class='add'>+    fun_l14_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n227()</div><div class='add'>+    fun_l14_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n228()</div><div class='add'>+    fun_l14_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n229()</div><div class='add'>+    fun_l14_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n230()</div><div class='add'>+    fun_l14_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n231()</div><div class='add'>+    fun_l14_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n232()</div><div class='add'>+    fun_l14_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n233()</div><div class='add'>+    fun_l14_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n234()</div><div class='add'>+    fun_l14_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n235()</div><div class='add'>+    fun_l14_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n236()</div><div class='add'>+    fun_l14_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n237()</div><div class='add'>+    fun_l14_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n238()</div><div class='add'>+    fun_l14_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n239()</div><div class='add'>+    fun_l14_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n240()</div><div class='add'>+    fun_l14_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n241()</div><div class='add'>+    fun_l14_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n242()</div><div class='add'>+    fun_l14_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n243()</div><div class='add'>+    fun_l14_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n244()</div><div class='add'>+    fun_l14_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n245()</div><div class='add'>+    fun_l14_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n246()</div><div class='add'>+    fun_l14_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n247()</div><div class='add'>+    fun_l14_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n248()</div><div class='add'>+    fun_l14_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n249()</div><div class='add'>+    fun_l14_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n250()</div><div class='add'>+    fun_l14_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n251()</div><div class='add'>+    fun_l14_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n252()</div><div class='add'>+    fun_l14_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n253()</div><div class='add'>+    fun_l14_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n254()</div><div class='add'>+    fun_l14_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n255()</div><div class='add'>+    fun_l14_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n256()</div><div class='add'>+    fun_l14_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n257()</div><div class='add'>+    fun_l14_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n258()</div><div class='add'>+    fun_l14_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n259()</div><div class='add'>+    fun_l14_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n260()</div><div class='add'>+    fun_l14_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n261()</div><div class='add'>+    fun_l14_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n262()</div><div class='add'>+    fun_l14_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n263()</div><div class='add'>+    fun_l14_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n264()</div><div class='add'>+    fun_l14_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n265()</div><div class='add'>+    fun_l14_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n266()</div><div class='add'>+    fun_l14_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n267()</div><div class='add'>+    fun_l14_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n268()</div><div class='add'>+    fun_l14_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n269()</div><div class='add'>+    fun_l14_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n270()</div><div class='add'>+    fun_l14_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n271()</div><div class='add'>+    fun_l14_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n272()</div><div class='add'>+    fun_l14_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n273()</div><div class='add'>+    fun_l14_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n274()</div><div class='add'>+    fun_l14_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n275()</div><div class='add'>+    fun_l14_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n276()</div><div class='add'>+    fun_l14_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n277()</div><div class='add'>+    fun_l14_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n278()</div><div class='add'>+    fun_l14_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n279()</div><div class='add'>+    fun_l14_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n280()</div><div class='add'>+    fun_l14_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n281()</div><div class='add'>+    fun_l14_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n282()</div><div class='add'>+    fun_l14_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n283()</div><div class='add'>+    fun_l14_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n284()</div><div class='add'>+    fun_l14_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n285()</div><div class='add'>+    fun_l14_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n286()</div><div class='add'>+    fun_l14_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n287()</div><div class='add'>+    fun_l14_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n288()</div><div class='add'>+    fun_l14_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n289()</div><div class='add'>+    fun_l14_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n290()</div><div class='add'>+    fun_l14_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n291()</div><div class='add'>+    fun_l14_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n292()</div><div class='add'>+    fun_l14_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n293()</div><div class='add'>+    fun_l14_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n294()</div><div class='add'>+    fun_l14_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n295()</div><div class='add'>+    fun_l14_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n296()</div><div class='add'>+    fun_l14_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n297()</div><div class='add'>+    fun_l14_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n298()</div><div class='add'>+    fun_l14_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n299()</div><div class='add'>+    fun_l14_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n300()</div><div class='add'>+    fun_l14_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n301()</div><div class='add'>+    fun_l14_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n302()</div><div class='add'>+    fun_l14_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n303()</div><div class='add'>+    fun_l14_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n304()</div><div class='add'>+    fun_l14_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n305()</div><div class='add'>+    fun_l14_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n306()</div><div class='add'>+    fun_l14_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n307()</div><div class='add'>+    fun_l14_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n308()</div><div class='add'>+    fun_l14_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n309()</div><div class='add'>+    fun_l14_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n310()</div><div class='add'>+    fun_l14_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n311()</div><div class='add'>+    fun_l14_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n312()</div><div class='add'>+    fun_l14_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n313()</div><div class='add'>+    fun_l14_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n314()</div><div class='add'>+    fun_l14_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n315()</div><div class='add'>+    fun_l14_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n316()</div><div class='add'>+    fun_l14_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n317()</div><div class='add'>+    fun_l14_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n318()</div><div class='add'>+    fun_l14_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n319()</div><div class='add'>+    fun_l14_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n320()</div><div class='add'>+    fun_l14_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n321()</div><div class='add'>+    fun_l14_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n322()</div><div class='add'>+    fun_l14_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n323()</div><div class='add'>+    fun_l14_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n324()</div><div class='add'>+    fun_l14_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n325()</div><div class='add'>+    fun_l14_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n326()</div><div class='add'>+    fun_l14_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n327()</div><div class='add'>+    fun_l14_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n328()</div><div class='add'>+    fun_l14_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n329()</div><div class='add'>+    fun_l14_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n330()</div><div class='add'>+    fun_l14_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n331()</div><div class='add'>+    fun_l14_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n332()</div><div class='add'>+    fun_l14_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n333()</div><div class='add'>+    fun_l14_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n334()</div><div class='add'>+    fun_l14_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n335()</div><div class='add'>+    fun_l14_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n336()</div><div class='add'>+    fun_l14_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n337()</div><div class='add'>+    fun_l14_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n338()</div><div class='add'>+    fun_l14_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n339()</div><div class='add'>+    fun_l14_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n340()</div><div class='add'>+    fun_l14_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n341()</div><div class='add'>+    fun_l14_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n342()</div><div class='add'>+    fun_l14_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n343()</div><div class='add'>+    fun_l14_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n344()</div><div class='add'>+    fun_l14_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n345()</div><div class='add'>+    fun_l14_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n346()</div><div class='add'>+    fun_l14_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n347()</div><div class='add'>+    fun_l14_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n348()</div><div class='add'>+    fun_l14_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n349()</div><div class='add'>+    fun_l14_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n350()</div><div class='add'>+    fun_l14_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n351()</div><div class='add'>+    fun_l14_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n352()</div><div class='add'>+    fun_l14_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n353()</div><div class='add'>+    fun_l14_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n354()</div><div class='add'>+    fun_l14_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n355()</div><div class='add'>+    fun_l14_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n356()</div><div class='add'>+    fun_l14_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n357()</div><div class='add'>+    fun_l14_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n358()</div><div class='add'>+    fun_l14_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n359()</div><div class='add'>+    fun_l14_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n360()</div><div class='add'>+    fun_l14_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n361()</div><div class='add'>+    fun_l14_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n362()</div><div class='add'>+    fun_l14_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n363()</div><div class='add'>+    fun_l14_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n364()</div><div class='add'>+    fun_l14_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n365()</div><div class='add'>+    fun_l14_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n366()</div><div class='add'>+    fun_l14_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n367()</div><div class='add'>+    fun_l14_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n368()</div><div class='add'>+    fun_l14_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n369()</div><div class='add'>+    fun_l14_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n370()</div><div class='add'>+    fun_l14_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n371()</div><div class='add'>+    fun_l14_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n372()</div><div class='add'>+    fun_l14_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n373()</div><div class='add'>+    fun_l14_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n374()</div><div class='add'>+    fun_l14_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n375()</div><div class='add'>+    fun_l14_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n376()</div><div class='add'>+    fun_l14_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n377()</div><div class='add'>+    fun_l14_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n378()</div><div class='add'>+    fun_l14_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n379()</div><div class='add'>+    fun_l14_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n380()</div><div class='add'>+    fun_l14_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n381()</div><div class='add'>+    fun_l14_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n382()</div><div class='add'>+    fun_l14_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n383()</div><div class='add'>+    fun_l14_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n384()</div><div class='add'>+    fun_l14_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n385()</div><div class='add'>+    fun_l14_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n386()</div><div class='add'>+    fun_l14_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n387()</div><div class='add'>+    fun_l14_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n388()</div><div class='add'>+    fun_l14_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n389()</div><div class='add'>+    fun_l14_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n390()</div><div class='add'>+    fun_l14_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n391()</div><div class='add'>+    fun_l14_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n392()</div><div class='add'>+    fun_l14_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n393()</div><div class='add'>+    fun_l14_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n394()</div><div class='add'>+    fun_l14_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n395()</div><div class='add'>+    fun_l14_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n396()</div><div class='add'>+    fun_l14_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n397()</div><div class='add'>+    fun_l14_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n398()</div><div class='add'>+    fun_l14_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n399()</div><div class='add'>+    fun_l14_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n400()</div><div class='add'>+    fun_l14_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n401()</div><div class='add'>+    fun_l14_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n402()</div><div class='add'>+    fun_l14_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n403()</div><div class='add'>+    fun_l14_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n404()</div><div class='add'>+    fun_l14_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n405()</div><div class='add'>+    fun_l14_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n406()</div><div class='add'>+    fun_l14_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n407()</div><div class='add'>+    fun_l14_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n408()</div><div class='add'>+    fun_l14_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n409()</div><div class='add'>+    fun_l14_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n410()</div><div class='add'>+    fun_l14_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n411()</div><div class='add'>+    fun_l14_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n412()</div><div class='add'>+    fun_l14_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n413()</div><div class='add'>+    fun_l14_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n414()</div><div class='add'>+    fun_l14_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n415()</div><div class='add'>+    fun_l14_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n416()</div><div class='add'>+    fun_l14_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n417()</div><div class='add'>+    fun_l14_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n418()</div><div class='add'>+    fun_l14_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n419()</div><div class='add'>+    fun_l14_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n420()</div><div class='add'>+    fun_l14_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n421()</div><div class='add'>+    fun_l14_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n422()</div><div class='add'>+    fun_l14_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n423()</div><div class='add'>+    fun_l14_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n424()</div><div class='add'>+    fun_l14_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n425()</div><div class='add'>+    fun_l14_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n426()</div><div class='add'>+    fun_l14_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n427()</div><div class='add'>+    fun_l14_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n428()</div><div class='add'>+    fun_l14_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n429()</div><div class='add'>+    fun_l14_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n430()</div><div class='add'>+    fun_l14_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n431()</div><div class='add'>+    fun_l14_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n432()</div><div class='add'>+    fun_l14_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n433()</div><div class='add'>+    fun_l14_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n434()</div><div class='add'>+    fun_l14_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n435()</div><div class='add'>+    fun_l14_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n436()</div><div class='add'>+    fun_l14_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n437()</div><div class='add'>+    fun_l14_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n438()</div><div class='add'>+    fun_l14_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n439()</div><div class='add'>+    fun_l14_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n440()</div><div class='add'>+    fun_l14_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n441()</div><div class='add'>+    fun_l14_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n442()</div><div class='add'>+    fun_l14_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n443()</div><div class='add'>+    fun_l14_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n444()</div><div class='add'>+    fun_l14_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n445()</div><div class='add'>+    fun_l14_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n446()</div><div class='add'>+    fun_l14_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n447()</div><div class='add'>+    fun_l14_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n448()</div><div class='add'>+    fun_l14_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n449()</div><div class='add'>+    fun_l14_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n450()</div><div class='add'>+    fun_l14_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n451()</div><div class='add'>+    fun_l14_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n452()</div><div class='add'>+    fun_l14_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n453()</div><div class='add'>+    fun_l14_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n454()</div><div class='add'>+    fun_l14_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n455()</div><div class='add'>+    fun_l14_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n456()</div><div class='add'>+    fun_l14_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n457()</div><div class='add'>+    fun_l14_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n458()</div><div class='add'>+    fun_l14_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n459()</div><div class='add'>+    fun_l14_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n460()</div><div class='add'>+    fun_l14_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n461()</div><div class='add'>+    fun_l14_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n462()</div><div class='add'>+    fun_l14_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n463()</div><div class='add'>+    fun_l14_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n464()</div><div class='add'>+    fun_l14_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n465()</div><div class='add'>+    fun_l14_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n466()</div><div class='add'>+    fun_l14_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n467()</div><div class='add'>+    fun_l14_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n468()</div><div class='add'>+    fun_l14_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n469()</div><div class='add'>+    fun_l14_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n470()</div><div class='add'>+    fun_l14_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n471()</div><div class='add'>+    fun_l14_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n472()</div><div class='add'>+    fun_l14_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n473()</div><div class='add'>+    fun_l14_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n474()</div><div class='add'>+    fun_l14_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n475()</div><div class='add'>+    fun_l14_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n476()</div><div class='add'>+    fun_l14_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n477()</div><div class='add'>+    fun_l14_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n478()</div><div class='add'>+    fun_l14_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n479()</div><div class='add'>+    fun_l14_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n480()</div><div class='add'>+    fun_l14_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n481()</div><div class='add'>+    fun_l14_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n482()</div><div class='add'>+    fun_l14_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n483()</div><div class='add'>+    fun_l14_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n484()</div><div class='add'>+    fun_l14_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n485()</div><div class='add'>+    fun_l14_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n486()</div><div class='add'>+    fun_l14_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n487()</div><div class='add'>+    fun_l14_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n488()</div><div class='add'>+    fun_l14_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n489()</div><div class='add'>+    fun_l14_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n490()</div><div class='add'>+    fun_l14_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n491()</div><div class='add'>+    fun_l14_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n492()</div><div class='add'>+    fun_l14_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n493()</div><div class='add'>+    fun_l14_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n494()</div><div class='add'>+    fun_l14_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n495()</div><div class='add'>+    fun_l14_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n496()</div><div class='add'>+    fun_l14_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n497()</div><div class='add'>+    fun_l14_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n498()</div><div class='add'>+    fun_l14_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n499()</div><div class='add'>+    fun_l14_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n500()</div><div class='add'>+    fun_l14_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n501()</div><div class='add'>+    fun_l14_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n502()</div><div class='add'>+    fun_l14_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n503()</div><div class='add'>+    fun_l14_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n504()</div><div class='add'>+    fun_l14_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n505()</div><div class='add'>+    fun_l14_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n506()</div><div class='add'>+    fun_l14_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n507()</div><div class='add'>+    fun_l14_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n508()</div><div class='add'>+    fun_l14_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n509()</div><div class='add'>+    fun_l14_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n510()</div><div class='add'>+    fun_l14_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n511()</div><div class='add'>+    fun_l14_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n512()</div><div class='add'>+    fun_l14_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n513()</div><div class='add'>+    fun_l14_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n514()</div><div class='add'>+    fun_l14_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n515()</div><div class='add'>+    fun_l14_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n516()</div><div class='add'>+    fun_l14_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n517()</div><div class='add'>+    fun_l14_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n518()</div><div class='add'>+    fun_l14_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n519()</div><div class='add'>+    fun_l14_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n520()</div><div class='add'>+    fun_l14_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n521()</div><div class='add'>+    fun_l14_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n522()</div><div class='add'>+    fun_l14_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n523()</div><div class='add'>+    fun_l14_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n524()</div><div class='add'>+    fun_l14_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n525()</div><div class='add'>+    fun_l14_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n526()</div><div class='add'>+    fun_l14_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n527()</div><div class='add'>+    fun_l14_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n528()</div><div class='add'>+    fun_l14_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n529()</div><div class='add'>+    fun_l14_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n530()</div><div class='add'>+    fun_l14_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n531()</div><div class='add'>+    fun_l14_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n532()</div><div class='add'>+    fun_l14_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n533()</div><div class='add'>+    fun_l14_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n534()</div><div class='add'>+    fun_l14_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n535()</div><div class='add'>+    fun_l14_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n536()</div><div class='add'>+    fun_l14_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n537()</div><div class='add'>+    fun_l14_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n538()</div><div class='add'>+    fun_l14_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n539()</div><div class='add'>+    fun_l14_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n540()</div><div class='add'>+    fun_l14_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n541()</div><div class='add'>+    fun_l14_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n542()</div><div class='add'>+    fun_l14_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n543()</div><div class='add'>+    fun_l14_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n544()</div><div class='add'>+    fun_l14_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n545()</div><div class='add'>+    fun_l14_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n546()</div><div class='add'>+    fun_l14_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n547()</div><div class='add'>+    fun_l14_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n548()</div><div class='add'>+    fun_l14_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n549()</div><div class='add'>+    fun_l14_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n550()</div><div class='add'>+    fun_l14_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n551()</div><div class='add'>+    fun_l14_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n552()</div><div class='add'>+    fun_l14_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n553()</div><div class='add'>+    fun_l14_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n554()</div><div class='add'>+    fun_l14_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n555()</div><div class='add'>+    fun_l14_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n556()</div><div class='add'>+    fun_l14_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n557()</div><div class='add'>+    fun_l14_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n558()</div><div class='add'>+    fun_l14_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n559()</div><div class='add'>+    fun_l14_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n560()</div><div class='add'>+    fun_l14_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n561()</div><div class='add'>+    fun_l14_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n562()</div><div class='add'>+    fun_l14_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n563()</div><div class='add'>+    fun_l14_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n564()</div><div class='add'>+    fun_l14_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n565()</div><div class='add'>+    fun_l14_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n566()</div><div class='add'>+    fun_l14_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n567()</div><div class='add'>+    fun_l14_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n568()</div><div class='add'>+    fun_l14_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n569()</div><div class='add'>+    fun_l14_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n570()</div><div class='add'>+    fun_l14_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n571()</div><div class='add'>+    fun_l14_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n572()</div><div class='add'>+    fun_l14_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n573()</div><div class='add'>+    fun_l14_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n574()</div><div class='add'>+    fun_l14_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n575()</div><div class='add'>+    fun_l14_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n576()</div><div class='add'>+    fun_l14_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n577()</div><div class='add'>+    fun_l14_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n578()</div><div class='add'>+    fun_l14_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n579()</div><div class='add'>+    fun_l14_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n580()</div><div class='add'>+    fun_l14_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n581()</div><div class='add'>+    fun_l14_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n582()</div><div class='add'>+    fun_l14_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n583()</div><div class='add'>+    fun_l14_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n584()</div><div class='add'>+    fun_l14_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n585()</div><div class='add'>+    fun_l14_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n586()</div><div class='add'>+    fun_l14_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n587()</div><div class='add'>+    fun_l14_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n588()</div><div class='add'>+    fun_l14_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n589()</div><div class='add'>+    fun_l14_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n590()</div><div class='add'>+    fun_l14_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n591()</div><div class='add'>+    fun_l14_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n592()</div><div class='add'>+    fun_l14_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n593()</div><div class='add'>+    fun_l14_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n594()</div><div class='add'>+    fun_l14_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n595()</div><div class='add'>+    fun_l14_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n596()</div><div class='add'>+    fun_l14_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n597()</div><div class='add'>+    fun_l14_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n598()</div><div class='add'>+    fun_l14_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n599()</div><div class='add'>+    fun_l14_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n600()</div><div class='add'>+    fun_l14_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n601()</div><div class='add'>+    fun_l14_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n602()</div><div class='add'>+    fun_l14_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n603()</div><div class='add'>+    fun_l14_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n604()</div><div class='add'>+    fun_l14_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n605()</div><div class='add'>+    fun_l14_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n606()</div><div class='add'>+    fun_l14_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n607()</div><div class='add'>+    fun_l14_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n608()</div><div class='add'>+    fun_l14_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n609()</div><div class='add'>+    fun_l14_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n610()</div><div class='add'>+    fun_l14_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n611()</div><div class='add'>+    fun_l14_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n612()</div><div class='add'>+    fun_l14_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n613()</div><div class='add'>+    fun_l14_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n614()</div><div class='add'>+    fun_l14_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n615()</div><div class='add'>+    fun_l14_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n616()</div><div class='add'>+    fun_l14_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n617()</div><div class='add'>+    fun_l14_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n618()</div><div class='add'>+    fun_l14_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n619()</div><div class='add'>+    fun_l14_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n620()</div><div class='add'>+    fun_l14_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n621()</div><div class='add'>+    fun_l14_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n622()</div><div class='add'>+    fun_l14_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n623()</div><div class='add'>+    fun_l14_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n624()</div><div class='add'>+    fun_l14_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n625()</div><div class='add'>+    fun_l14_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n626()</div><div class='add'>+    fun_l14_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n627()</div><div class='add'>+    fun_l14_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n628()</div><div class='add'>+    fun_l14_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n629()</div><div class='add'>+    fun_l14_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n630()</div><div class='add'>+    fun_l14_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n631()</div><div class='add'>+    fun_l14_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n632()</div><div class='add'>+    fun_l14_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n633()</div><div class='add'>+    fun_l14_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n634()</div><div class='add'>+    fun_l14_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n635()</div><div class='add'>+    fun_l14_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n636()</div><div class='add'>+    fun_l14_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n637()</div><div class='add'>+    fun_l14_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n638()</div><div class='add'>+    fun_l14_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n639()</div><div class='add'>+    fun_l14_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n640()</div><div class='add'>+    fun_l14_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n641()</div><div class='add'>+    fun_l14_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n642()</div><div class='add'>+    fun_l14_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n643()</div><div class='add'>+    fun_l14_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n644()</div><div class='add'>+    fun_l14_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n645()</div><div class='add'>+    fun_l14_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n646()</div><div class='add'>+    fun_l14_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n647()</div><div class='add'>+    fun_l14_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n648()</div><div class='add'>+    fun_l14_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n649()</div><div class='add'>+    fun_l14_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n650()</div><div class='add'>+    fun_l14_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n651()</div><div class='add'>+    fun_l14_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n652()</div><div class='add'>+    fun_l14_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n653()</div><div class='add'>+    fun_l14_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n654()</div><div class='add'>+    fun_l14_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n655()</div><div class='add'>+    fun_l14_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n656()</div><div class='add'>+    fun_l14_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n657()</div><div class='add'>+    fun_l14_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n658()</div><div class='add'>+    fun_l14_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n659()</div><div class='add'>+    fun_l14_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n660()</div><div class='add'>+    fun_l14_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n661()</div><div class='add'>+    fun_l14_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n662()</div><div class='add'>+    fun_l14_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n663()</div><div class='add'>+    fun_l14_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n664()</div><div class='add'>+    fun_l14_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n665()</div><div class='add'>+    fun_l14_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n666()</div><div class='add'>+    fun_l14_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n667()</div><div class='add'>+    fun_l14_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n668()</div><div class='add'>+    fun_l14_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n669()</div><div class='add'>+    fun_l14_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n670()</div><div class='add'>+    fun_l14_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n671()</div><div class='add'>+    fun_l14_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n672()</div><div class='add'>+    fun_l14_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n673()</div><div class='add'>+    fun_l14_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n674()</div><div class='add'>+    fun_l14_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n675()</div><div class='add'>+    fun_l14_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n676()</div><div class='add'>+    fun_l14_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n677()</div><div class='add'>+    fun_l14_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n678()</div><div class='add'>+    fun_l14_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n679()</div><div class='add'>+    fun_l14_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n680()</div><div class='add'>+    fun_l14_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n681()</div><div class='add'>+    fun_l14_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n682()</div><div class='add'>+    fun_l14_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n683()</div><div class='add'>+    fun_l14_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n684()</div><div class='add'>+    fun_l14_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n685()</div><div class='add'>+    fun_l14_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n686()</div><div class='add'>+    fun_l14_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n687()</div><div class='add'>+    fun_l14_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n688()</div><div class='add'>+    fun_l14_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n689()</div><div class='add'>+    fun_l14_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n690()</div><div class='add'>+    fun_l14_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n691()</div><div class='add'>+    fun_l14_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n692()</div><div class='add'>+    fun_l14_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n693()</div><div class='add'>+    fun_l14_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n694()</div><div class='add'>+    fun_l14_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n695()</div><div class='add'>+    fun_l14_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n696()</div><div class='add'>+    fun_l14_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n697()</div><div class='add'>+    fun_l14_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n698()</div><div class='add'>+    fun_l14_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n699()</div><div class='add'>+    fun_l14_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n700()</div><div class='add'>+    fun_l14_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n701()</div><div class='add'>+    fun_l14_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n702()</div><div class='add'>+    fun_l14_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n703()</div><div class='add'>+    fun_l14_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n704()</div><div class='add'>+    fun_l14_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n705()</div><div class='add'>+    fun_l14_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n706()</div><div class='add'>+    fun_l14_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n707()</div><div class='add'>+    fun_l14_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n708()</div><div class='add'>+    fun_l14_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n709()</div><div class='add'>+    fun_l14_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n710()</div><div class='add'>+    fun_l14_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n711()</div><div class='add'>+    fun_l14_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n712()</div><div class='add'>+    fun_l14_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n713()</div><div class='add'>+    fun_l14_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n714()</div><div class='add'>+    fun_l14_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n715()</div><div class='add'>+    fun_l14_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n716()</div><div class='add'>+    fun_l14_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n717()</div><div class='add'>+    fun_l14_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n718()</div><div class='add'>+    fun_l14_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n719()</div><div class='add'>+    fun_l14_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n720()</div><div class='add'>+    fun_l14_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n721()</div><div class='add'>+    fun_l14_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n722()</div><div class='add'>+    fun_l14_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n723()</div><div class='add'>+    fun_l14_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n724()</div><div class='add'>+    fun_l14_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n725()</div><div class='add'>+    fun_l14_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n726()</div><div class='add'>+    fun_l14_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n727()</div><div class='add'>+    fun_l14_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n728()</div><div class='add'>+    fun_l14_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n729()</div><div class='add'>+    fun_l14_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n730()</div><div class='add'>+    fun_l14_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n731()</div><div class='add'>+    fun_l14_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n732()</div><div class='add'>+    fun_l14_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n733()</div><div class='add'>+    fun_l14_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n734()</div><div class='add'>+    fun_l14_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n735()</div><div class='add'>+    fun_l14_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n736()</div><div class='add'>+    fun_l14_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n737()</div><div class='add'>+    fun_l14_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n738()</div><div class='add'>+    fun_l14_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n739()</div><div class='add'>+    fun_l14_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n740()</div><div class='add'>+    fun_l14_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n741()</div><div class='add'>+    fun_l14_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n742()</div><div class='add'>+    fun_l14_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n743()</div><div class='add'>+    fun_l14_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n744()</div><div class='add'>+    fun_l14_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n745()</div><div class='add'>+    fun_l14_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n746()</div><div class='add'>+    fun_l14_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n747()</div><div class='add'>+    fun_l14_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n748()</div><div class='add'>+    fun_l14_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n749()</div><div class='add'>+    fun_l14_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n750()</div><div class='add'>+    fun_l14_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n751()</div><div class='add'>+    fun_l14_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n752()</div><div class='add'>+    fun_l14_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n753()</div><div class='add'>+    fun_l14_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n754()</div><div class='add'>+    fun_l14_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n755()</div><div class='add'>+    fun_l14_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n756()</div><div class='add'>+    fun_l14_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n757()</div><div class='add'>+    fun_l14_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n758()</div><div class='add'>+    fun_l14_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n759()</div><div class='add'>+    fun_l14_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n760()</div><div class='add'>+    fun_l14_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n761()</div><div class='add'>+    fun_l14_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n762()</div><div class='add'>+    fun_l14_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n763()</div><div class='add'>+    fun_l14_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n764()</div><div class='add'>+    fun_l14_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n765()</div><div class='add'>+    fun_l14_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n766()</div><div class='add'>+    fun_l14_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n767()</div><div class='add'>+    fun_l14_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n768()</div><div class='add'>+    fun_l14_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n769()</div><div class='add'>+    fun_l14_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n770()</div><div class='add'>+    fun_l14_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n771()</div><div class='add'>+    fun_l14_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n772()</div><div class='add'>+    fun_l14_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n773()</div><div class='add'>+    fun_l14_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n774()</div><div class='add'>+    fun_l14_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n775()</div><div class='add'>+    fun_l14_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n776()</div><div class='add'>+    fun_l14_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n777()</div><div class='add'>+    fun_l14_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n778()</div><div class='add'>+    fun_l14_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n779()</div><div class='add'>+    fun_l14_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n780()</div><div class='add'>+    fun_l14_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n781()</div><div class='add'>+    fun_l14_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n782()</div><div class='add'>+    fun_l14_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n783()</div><div class='add'>+    fun_l14_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n784()</div><div class='add'>+    fun_l14_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n785()</div><div class='add'>+    fun_l14_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n786()</div><div class='add'>+    fun_l14_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n787()</div><div class='add'>+    fun_l14_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n788()</div><div class='add'>+    fun_l14_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n789()</div><div class='add'>+    fun_l14_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n790()</div><div class='add'>+    fun_l14_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n791()</div><div class='add'>+    fun_l14_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n792()</div><div class='add'>+    fun_l14_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n793()</div><div class='add'>+    fun_l14_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n794()</div><div class='add'>+    fun_l14_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n795()</div><div class='add'>+    fun_l14_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n796()</div><div class='add'>+    fun_l14_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n797()</div><div class='add'>+    fun_l14_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n798()</div><div class='add'>+    fun_l14_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n799()</div><div class='add'>+    fun_l14_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n800()</div><div class='add'>+    fun_l14_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n801()</div><div class='add'>+    fun_l14_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n802()</div><div class='add'>+    fun_l14_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n803()</div><div class='add'>+    fun_l14_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n804()</div><div class='add'>+    fun_l14_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n805()</div><div class='add'>+    fun_l14_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n806()</div><div class='add'>+    fun_l14_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n807()</div><div class='add'>+    fun_l14_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n808()</div><div class='add'>+    fun_l14_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n809()</div><div class='add'>+    fun_l14_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n810()</div><div class='add'>+    fun_l14_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n811()</div><div class='add'>+    fun_l14_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n812()</div><div class='add'>+    fun_l14_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n813()</div><div class='add'>+    fun_l14_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n814()</div><div class='add'>+    fun_l14_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n815()</div><div class='add'>+    fun_l14_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n816()</div><div class='add'>+    fun_l14_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n817()</div><div class='add'>+    fun_l14_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n818()</div><div class='add'>+    fun_l14_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n819()</div><div class='add'>+    fun_l14_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n820()</div><div class='add'>+    fun_l14_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n821()</div><div class='add'>+    fun_l14_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n822()</div><div class='add'>+    fun_l14_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n823()</div><div class='add'>+    fun_l14_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n824()</div><div class='add'>+    fun_l14_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n825()</div><div class='add'>+    fun_l14_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n826()</div><div class='add'>+    fun_l14_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n827()</div><div class='add'>+    fun_l14_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n828()</div><div class='add'>+    fun_l14_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n829()</div><div class='add'>+    fun_l14_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n830()</div><div class='add'>+    fun_l14_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n831()</div><div class='add'>+    fun_l14_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n832()</div><div class='add'>+    fun_l14_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n833()</div><div class='add'>+    fun_l14_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n834()</div><div class='add'>+    fun_l14_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n835()</div><div class='add'>+    fun_l14_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n836()</div><div class='add'>+    fun_l14_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n837()</div><div class='add'>+    fun_l14_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n838()</div><div class='add'>+    fun_l14_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n839()</div><div class='add'>+    fun_l14_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n840()</div><div class='add'>+    fun_l14_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n841()</div><div class='add'>+    fun_l14_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n842()</div><div class='add'>+    fun_l14_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n843()</div><div class='add'>+    fun_l14_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n844()</div><div class='add'>+    fun_l14_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n845()</div><div class='add'>+    fun_l14_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n846()</div><div class='add'>+    fun_l14_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n847()</div><div class='add'>+    fun_l14_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n848()</div><div class='add'>+    fun_l14_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n849()</div><div class='add'>+    fun_l14_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n850()</div><div class='add'>+    fun_l14_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n851()</div><div class='add'>+    fun_l14_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n852()</div><div class='add'>+    fun_l14_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n853()</div><div class='add'>+    fun_l14_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n854()</div><div class='add'>+    fun_l14_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n855()</div><div class='add'>+    fun_l14_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n856()</div><div class='add'>+    fun_l14_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n857()</div><div class='add'>+    fun_l14_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n858()</div><div class='add'>+    fun_l14_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n859()</div><div class='add'>+    fun_l14_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n860()</div><div class='add'>+    fun_l14_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n861()</div><div class='add'>+    fun_l14_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n862()</div><div class='add'>+    fun_l14_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n863()</div><div class='add'>+    fun_l14_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n864()</div><div class='add'>+    fun_l14_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n865()</div><div class='add'>+    fun_l14_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n866()</div><div class='add'>+    fun_l14_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n867()</div><div class='add'>+    fun_l14_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n868()</div><div class='add'>+    fun_l14_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n869()</div><div class='add'>+    fun_l14_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n870()</div><div class='add'>+    fun_l14_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n871()</div><div class='add'>+    fun_l14_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n872()</div><div class='add'>+    fun_l14_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n873()</div><div class='add'>+    fun_l14_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n874()</div><div class='add'>+    fun_l14_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n875()</div><div class='add'>+    fun_l14_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n876()</div><div class='add'>+    fun_l14_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n877()</div><div class='add'>+    fun_l14_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n878()</div><div class='add'>+    fun_l14_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n879()</div><div class='add'>+    fun_l14_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n880()</div><div class='add'>+    fun_l14_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n881()</div><div class='add'>+    fun_l14_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n882()</div><div class='add'>+    fun_l14_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n883()</div><div class='add'>+    fun_l14_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n884()</div><div class='add'>+    fun_l14_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n885()</div><div class='add'>+    fun_l14_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n886()</div><div class='add'>+    fun_l14_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n887()</div><div class='add'>+    fun_l14_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n888()</div><div class='add'>+    fun_l14_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n889()</div><div class='add'>+    fun_l14_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n890()</div><div class='add'>+    fun_l14_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n891()</div><div class='add'>+    fun_l14_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n892()</div><div class='add'>+    fun_l14_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n893()</div><div class='add'>+    fun_l14_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n894()</div><div class='add'>+    fun_l14_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n895()</div><div class='add'>+    fun_l14_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n896()</div><div class='add'>+    fun_l14_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n897()</div><div class='add'>+    fun_l14_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n898()</div><div class='add'>+    fun_l14_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n899()</div><div class='add'>+    fun_l14_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n900()</div><div class='add'>+    fun_l14_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n901()</div><div class='add'>+    fun_l14_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n902()</div><div class='add'>+    fun_l14_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n903()</div><div class='add'>+    fun_l14_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n904()</div><div class='add'>+    fun_l14_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n905()</div><div class='add'>+    fun_l14_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n906()</div><div class='add'>+    fun_l14_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n907()</div><div class='add'>+    fun_l14_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n908()</div><div class='add'>+    fun_l14_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n909()</div><div class='add'>+    fun_l14_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n910()</div><div class='add'>+    fun_l14_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n911()</div><div class='add'>+    fun_l14_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n912()</div><div class='add'>+    fun_l14_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n913()</div><div class='add'>+    fun_l14_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n914()</div><div class='add'>+    fun_l14_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n915()</div><div class='add'>+    fun_l14_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n916()</div><div class='add'>+    fun_l14_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n917()</div><div class='add'>+    fun_l14_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n918()</div><div class='add'>+    fun_l14_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n919()</div><div class='add'>+    fun_l14_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n920()</div><div class='add'>+    fun_l14_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n921()</div><div class='add'>+    fun_l14_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n922()</div><div class='add'>+    fun_l14_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n923()</div><div class='add'>+    fun_l14_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n924()</div><div class='add'>+    fun_l14_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n925()</div><div class='add'>+    fun_l14_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n926()</div><div class='add'>+    fun_l14_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n927()</div><div class='add'>+    fun_l14_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n928()</div><div class='add'>+    fun_l14_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n929()</div><div class='add'>+    fun_l14_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n930()</div><div class='add'>+    fun_l14_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n931()</div><div class='add'>+    fun_l14_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n932()</div><div class='add'>+    fun_l14_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n933()</div><div class='add'>+    fun_l14_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n934()</div><div class='add'>+    fun_l14_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n935()</div><div class='add'>+    fun_l14_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n936()</div><div class='add'>+    fun_l14_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n937()</div><div class='add'>+    fun_l14_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n938()</div><div class='add'>+    fun_l14_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n939()</div><div class='add'>+    fun_l14_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n940()</div><div class='add'>+    fun_l14_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n941()</div><div class='add'>+    fun_l14_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n942()</div><div class='add'>+    fun_l14_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n943()</div><div class='add'>+    fun_l14_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n944()</div><div class='add'>+    fun_l14_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n945()</div><div class='add'>+    fun_l14_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n946()</div><div class='add'>+    fun_l14_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n947()</div><div class='add'>+    fun_l14_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n948()</div><div class='add'>+    fun_l14_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n949()</div><div class='add'>+    fun_l14_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n950()</div><div class='add'>+    fun_l14_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n951()</div><div class='add'>+    fun_l14_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n952()</div><div class='add'>+    fun_l14_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n953()</div><div class='add'>+    fun_l14_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n954()</div><div class='add'>+    fun_l14_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n955()</div><div class='add'>+    fun_l14_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n956()</div><div class='add'>+    fun_l14_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n957()</div><div class='add'>+    fun_l14_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n958()</div><div class='add'>+    fun_l14_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n959()</div><div class='add'>+    fun_l14_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n960()</div><div class='add'>+    fun_l14_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n961()</div><div class='add'>+    fun_l14_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n962()</div><div class='add'>+    fun_l14_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n963()</div><div class='add'>+    fun_l14_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n964()</div><div class='add'>+    fun_l14_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n965()</div><div class='add'>+    fun_l14_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n966()</div><div class='add'>+    fun_l14_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n967()</div><div class='add'>+    fun_l14_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n968()</div><div class='add'>+    fun_l14_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n969()</div><div class='add'>+    fun_l14_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n970()</div><div class='add'>+    fun_l14_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n971()</div><div class='add'>+    fun_l14_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n972()</div><div class='add'>+    fun_l14_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n973()</div><div class='add'>+    fun_l14_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n974()</div><div class='add'>+    fun_l14_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n975()</div><div class='add'>+    fun_l14_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n976()</div><div class='add'>+    fun_l14_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n977()</div><div class='add'>+    fun_l14_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n978()</div><div class='add'>+    fun_l14_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n979()</div><div class='add'>+    fun_l14_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n980()</div><div class='add'>+    fun_l14_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n981()</div><div class='add'>+    fun_l14_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n982()</div><div class='add'>+    fun_l14_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n983()</div><div class='add'>+    fun_l14_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n984()</div><div class='add'>+    fun_l14_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n985()</div><div class='add'>+    fun_l14_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n986()</div><div class='add'>+    fun_l14_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n987()</div><div class='add'>+    fun_l14_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n988()</div><div class='add'>+    fun_l14_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n989()</div><div class='add'>+    fun_l14_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n990()</div><div class='add'>+    fun_l14_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n991()</div><div class='add'>+    fun_l14_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n992()</div><div class='add'>+    fun_l14_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n993()</div><div class='add'>+    fun_l14_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n994()</div><div class='add'>+    fun_l14_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n995()</div><div class='add'>+    fun_l14_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n996()</div><div class='add'>+    fun_l14_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n997()</div><div class='add'>+    fun_l14_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n998()</div><div class='add'>+    fun_l14_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l13_n999()</div><div class='add'>+    fun_l14_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n0()</div><div class='add'>+    fun_l15_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n1()</div><div class='add'>+    fun_l15_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n2()</div><div class='add'>+    fun_l15_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n3()</div><div class='add'>+    fun_l15_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n4()</div><div class='add'>+    fun_l15_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n5()</div><div class='add'>+    fun_l15_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n6()</div><div class='add'>+    fun_l15_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n7()</div><div class='add'>+    fun_l15_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n8()</div><div class='add'>+    fun_l15_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n9()</div><div class='add'>+    fun_l15_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n10()</div><div class='add'>+    fun_l15_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n11()</div><div class='add'>+    fun_l15_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n12()</div><div class='add'>+    fun_l15_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n13()</div><div class='add'>+    fun_l15_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n14()</div><div class='add'>+    fun_l15_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n15()</div><div class='add'>+    fun_l15_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n16()</div><div class='add'>+    fun_l15_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n17()</div><div class='add'>+    fun_l15_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n18()</div><div class='add'>+    fun_l15_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n19()</div><div class='add'>+    fun_l15_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n20()</div><div class='add'>+    fun_l15_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n21()</div><div class='add'>+    fun_l15_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n22()</div><div class='add'>+    fun_l15_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n23()</div><div class='add'>+    fun_l15_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n24()</div><div class='add'>+    fun_l15_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n25()</div><div class='add'>+    fun_l15_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n26()</div><div class='add'>+    fun_l15_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n27()</div><div class='add'>+    fun_l15_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n28()</div><div class='add'>+    fun_l15_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n29()</div><div class='add'>+    fun_l15_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n30()</div><div class='add'>+    fun_l15_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n31()</div><div class='add'>+    fun_l15_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n32()</div><div class='add'>+    fun_l15_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n33()</div><div class='add'>+    fun_l15_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n34()</div><div class='add'>+    fun_l15_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n35()</div><div class='add'>+    fun_l15_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n36()</div><div class='add'>+    fun_l15_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n37()</div><div class='add'>+    fun_l15_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n38()</div><div class='add'>+    fun_l15_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n39()</div><div class='add'>+    fun_l15_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n40()</div><div class='add'>+    fun_l15_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n41()</div><div class='add'>+    fun_l15_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n42()</div><div class='add'>+    fun_l15_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n43()</div><div class='add'>+    fun_l15_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n44()</div><div class='add'>+    fun_l15_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n45()</div><div class='add'>+    fun_l15_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n46()</div><div class='add'>+    fun_l15_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n47()</div><div class='add'>+    fun_l15_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n48()</div><div class='add'>+    fun_l15_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n49()</div><div class='add'>+    fun_l15_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n50()</div><div class='add'>+    fun_l15_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n51()</div><div class='add'>+    fun_l15_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n52()</div><div class='add'>+    fun_l15_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n53()</div><div class='add'>+    fun_l15_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n54()</div><div class='add'>+    fun_l15_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n55()</div><div class='add'>+    fun_l15_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n56()</div><div class='add'>+    fun_l15_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n57()</div><div class='add'>+    fun_l15_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n58()</div><div class='add'>+    fun_l15_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n59()</div><div class='add'>+    fun_l15_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n60()</div><div class='add'>+    fun_l15_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n61()</div><div class='add'>+    fun_l15_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n62()</div><div class='add'>+    fun_l15_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n63()</div><div class='add'>+    fun_l15_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n64()</div><div class='add'>+    fun_l15_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n65()</div><div class='add'>+    fun_l15_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n66()</div><div class='add'>+    fun_l15_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n67()</div><div class='add'>+    fun_l15_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n68()</div><div class='add'>+    fun_l15_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n69()</div><div class='add'>+    fun_l15_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n70()</div><div class='add'>+    fun_l15_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n71()</div><div class='add'>+    fun_l15_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n72()</div><div class='add'>+    fun_l15_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n73()</div><div class='add'>+    fun_l15_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n74()</div><div class='add'>+    fun_l15_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n75()</div><div class='add'>+    fun_l15_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n76()</div><div class='add'>+    fun_l15_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n77()</div><div class='add'>+    fun_l15_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n78()</div><div class='add'>+    fun_l15_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n79()</div><div class='add'>+    fun_l15_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n80()</div><div class='add'>+    fun_l15_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n81()</div><div class='add'>+    fun_l15_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n82()</div><div class='add'>+    fun_l15_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n83()</div><div class='add'>+    fun_l15_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n84()</div><div class='add'>+    fun_l15_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n85()</div><div class='add'>+    fun_l15_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n86()</div><div class='add'>+    fun_l15_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n87()</div><div class='add'>+    fun_l15_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n88()</div><div class='add'>+    fun_l15_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n89()</div><div class='add'>+    fun_l15_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n90()</div><div class='add'>+    fun_l15_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n91()</div><div class='add'>+    fun_l15_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n92()</div><div class='add'>+    fun_l15_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n93()</div><div class='add'>+    fun_l15_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n94()</div><div class='add'>+    fun_l15_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n95()</div><div class='add'>+    fun_l15_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n96()</div><div class='add'>+    fun_l15_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n97()</div><div class='add'>+    fun_l15_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n98()</div><div class='add'>+    fun_l15_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n99()</div><div class='add'>+    fun_l15_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n100()</div><div class='add'>+    fun_l15_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n101()</div><div class='add'>+    fun_l15_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n102()</div><div class='add'>+    fun_l15_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n103()</div><div class='add'>+    fun_l15_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n104()</div><div class='add'>+    fun_l15_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n105()</div><div class='add'>+    fun_l15_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n106()</div><div class='add'>+    fun_l15_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n107()</div><div class='add'>+    fun_l15_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n108()</div><div class='add'>+    fun_l15_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n109()</div><div class='add'>+    fun_l15_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n110()</div><div class='add'>+    fun_l15_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n111()</div><div class='add'>+    fun_l15_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n112()</div><div class='add'>+    fun_l15_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n113()</div><div class='add'>+    fun_l15_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n114()</div><div class='add'>+    fun_l15_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n115()</div><div class='add'>+    fun_l15_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n116()</div><div class='add'>+    fun_l15_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n117()</div><div class='add'>+    fun_l15_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n118()</div><div class='add'>+    fun_l15_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n119()</div><div class='add'>+    fun_l15_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n120()</div><div class='add'>+    fun_l15_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n121()</div><div class='add'>+    fun_l15_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n122()</div><div class='add'>+    fun_l15_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n123()</div><div class='add'>+    fun_l15_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n124()</div><div class='add'>+    fun_l15_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n125()</div><div class='add'>+    fun_l15_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n126()</div><div class='add'>+    fun_l15_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n127()</div><div class='add'>+    fun_l15_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n128()</div><div class='add'>+    fun_l15_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n129()</div><div class='add'>+    fun_l15_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n130()</div><div class='add'>+    fun_l15_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n131()</div><div class='add'>+    fun_l15_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n132()</div><div class='add'>+    fun_l15_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n133()</div><div class='add'>+    fun_l15_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n134()</div><div class='add'>+    fun_l15_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n135()</div><div class='add'>+    fun_l15_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n136()</div><div class='add'>+    fun_l15_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n137()</div><div class='add'>+    fun_l15_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n138()</div><div class='add'>+    fun_l15_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n139()</div><div class='add'>+    fun_l15_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n140()</div><div class='add'>+    fun_l15_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n141()</div><div class='add'>+    fun_l15_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n142()</div><div class='add'>+    fun_l15_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n143()</div><div class='add'>+    fun_l15_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n144()</div><div class='add'>+    fun_l15_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n145()</div><div class='add'>+    fun_l15_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n146()</div><div class='add'>+    fun_l15_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n147()</div><div class='add'>+    fun_l15_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n148()</div><div class='add'>+    fun_l15_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n149()</div><div class='add'>+    fun_l15_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n150()</div><div class='add'>+    fun_l15_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n151()</div><div class='add'>+    fun_l15_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n152()</div><div class='add'>+    fun_l15_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n153()</div><div class='add'>+    fun_l15_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n154()</div><div class='add'>+    fun_l15_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n155()</div><div class='add'>+    fun_l15_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n156()</div><div class='add'>+    fun_l15_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n157()</div><div class='add'>+    fun_l15_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n158()</div><div class='add'>+    fun_l15_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n159()</div><div class='add'>+    fun_l15_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n160()</div><div class='add'>+    fun_l15_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n161()</div><div class='add'>+    fun_l15_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n162()</div><div class='add'>+    fun_l15_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n163()</div><div class='add'>+    fun_l15_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n164()</div><div class='add'>+    fun_l15_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n165()</div><div class='add'>+    fun_l15_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n166()</div><div class='add'>+    fun_l15_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n167()</div><div class='add'>+    fun_l15_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n168()</div><div class='add'>+    fun_l15_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n169()</div><div class='add'>+    fun_l15_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n170()</div><div class='add'>+    fun_l15_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n171()</div><div class='add'>+    fun_l15_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n172()</div><div class='add'>+    fun_l15_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n173()</div><div class='add'>+    fun_l15_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n174()</div><div class='add'>+    fun_l15_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n175()</div><div class='add'>+    fun_l15_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n176()</div><div class='add'>+    fun_l15_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n177()</div><div class='add'>+    fun_l15_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n178()</div><div class='add'>+    fun_l15_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n179()</div><div class='add'>+    fun_l15_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n180()</div><div class='add'>+    fun_l15_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n181()</div><div class='add'>+    fun_l15_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n182()</div><div class='add'>+    fun_l15_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n183()</div><div class='add'>+    fun_l15_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n184()</div><div class='add'>+    fun_l15_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n185()</div><div class='add'>+    fun_l15_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n186()</div><div class='add'>+    fun_l15_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n187()</div><div class='add'>+    fun_l15_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n188()</div><div class='add'>+    fun_l15_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n189()</div><div class='add'>+    fun_l15_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n190()</div><div class='add'>+    fun_l15_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n191()</div><div class='add'>+    fun_l15_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n192()</div><div class='add'>+    fun_l15_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n193()</div><div class='add'>+    fun_l15_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n194()</div><div class='add'>+    fun_l15_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n195()</div><div class='add'>+    fun_l15_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n196()</div><div class='add'>+    fun_l15_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n197()</div><div class='add'>+    fun_l15_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n198()</div><div class='add'>+    fun_l15_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n199()</div><div class='add'>+    fun_l15_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n200()</div><div class='add'>+    fun_l15_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n201()</div><div class='add'>+    fun_l15_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n202()</div><div class='add'>+    fun_l15_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n203()</div><div class='add'>+    fun_l15_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n204()</div><div class='add'>+    fun_l15_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n205()</div><div class='add'>+    fun_l15_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n206()</div><div class='add'>+    fun_l15_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n207()</div><div class='add'>+    fun_l15_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n208()</div><div class='add'>+    fun_l15_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n209()</div><div class='add'>+    fun_l15_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n210()</div><div class='add'>+    fun_l15_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n211()</div><div class='add'>+    fun_l15_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n212()</div><div class='add'>+    fun_l15_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n213()</div><div class='add'>+    fun_l15_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n214()</div><div class='add'>+    fun_l15_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n215()</div><div class='add'>+    fun_l15_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n216()</div><div class='add'>+    fun_l15_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n217()</div><div class='add'>+    fun_l15_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n218()</div><div class='add'>+    fun_l15_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n219()</div><div class='add'>+    fun_l15_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n220()</div><div class='add'>+    fun_l15_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n221()</div><div class='add'>+    fun_l15_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n222()</div><div class='add'>+    fun_l15_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n223()</div><div class='add'>+    fun_l15_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n224()</div><div class='add'>+    fun_l15_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n225()</div><div class='add'>+    fun_l15_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n226()</div><div class='add'>+    fun_l15_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n227()</div><div class='add'>+    fun_l15_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n228()</div><div class='add'>+    fun_l15_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n229()</div><div class='add'>+    fun_l15_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n230()</div><div class='add'>+    fun_l15_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n231()</div><div class='add'>+    fun_l15_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n232()</div><div class='add'>+    fun_l15_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n233()</div><div class='add'>+    fun_l15_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n234()</div><div class='add'>+    fun_l15_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n235()</div><div class='add'>+    fun_l15_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n236()</div><div class='add'>+    fun_l15_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n237()</div><div class='add'>+    fun_l15_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n238()</div><div class='add'>+    fun_l15_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n239()</div><div class='add'>+    fun_l15_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n240()</div><div class='add'>+    fun_l15_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n241()</div><div class='add'>+    fun_l15_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n242()</div><div class='add'>+    fun_l15_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n243()</div><div class='add'>+    fun_l15_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n244()</div><div class='add'>+    fun_l15_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n245()</div><div class='add'>+    fun_l15_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n246()</div><div class='add'>+    fun_l15_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n247()</div><div class='add'>+    fun_l15_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n248()</div><div class='add'>+    fun_l15_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n249()</div><div class='add'>+    fun_l15_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n250()</div><div class='add'>+    fun_l15_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n251()</div><div class='add'>+    fun_l15_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n252()</div><div class='add'>+    fun_l15_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n253()</div><div class='add'>+    fun_l15_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n254()</div><div class='add'>+    fun_l15_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n255()</div><div class='add'>+    fun_l15_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n256()</div><div class='add'>+    fun_l15_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n257()</div><div class='add'>+    fun_l15_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n258()</div><div class='add'>+    fun_l15_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n259()</div><div class='add'>+    fun_l15_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n260()</div><div class='add'>+    fun_l15_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n261()</div><div class='add'>+    fun_l15_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n262()</div><div class='add'>+    fun_l15_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n263()</div><div class='add'>+    fun_l15_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n264()</div><div class='add'>+    fun_l15_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n265()</div><div class='add'>+    fun_l15_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n266()</div><div class='add'>+    fun_l15_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n267()</div><div class='add'>+    fun_l15_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n268()</div><div class='add'>+    fun_l15_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n269()</div><div class='add'>+    fun_l15_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n270()</div><div class='add'>+    fun_l15_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n271()</div><div class='add'>+    fun_l15_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n272()</div><div class='add'>+    fun_l15_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n273()</div><div class='add'>+    fun_l15_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n274()</div><div class='add'>+    fun_l15_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n275()</div><div class='add'>+    fun_l15_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n276()</div><div class='add'>+    fun_l15_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n277()</div><div class='add'>+    fun_l15_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n278()</div><div class='add'>+    fun_l15_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n279()</div><div class='add'>+    fun_l15_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n280()</div><div class='add'>+    fun_l15_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n281()</div><div class='add'>+    fun_l15_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n282()</div><div class='add'>+    fun_l15_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n283()</div><div class='add'>+    fun_l15_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n284()</div><div class='add'>+    fun_l15_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n285()</div><div class='add'>+    fun_l15_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n286()</div><div class='add'>+    fun_l15_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n287()</div><div class='add'>+    fun_l15_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n288()</div><div class='add'>+    fun_l15_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n289()</div><div class='add'>+    fun_l15_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n290()</div><div class='add'>+    fun_l15_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n291()</div><div class='add'>+    fun_l15_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n292()</div><div class='add'>+    fun_l15_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n293()</div><div class='add'>+    fun_l15_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n294()</div><div class='add'>+    fun_l15_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n295()</div><div class='add'>+    fun_l15_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n296()</div><div class='add'>+    fun_l15_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n297()</div><div class='add'>+    fun_l15_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n298()</div><div class='add'>+    fun_l15_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n299()</div><div class='add'>+    fun_l15_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n300()</div><div class='add'>+    fun_l15_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n301()</div><div class='add'>+    fun_l15_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n302()</div><div class='add'>+    fun_l15_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n303()</div><div class='add'>+    fun_l15_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n304()</div><div class='add'>+    fun_l15_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n305()</div><div class='add'>+    fun_l15_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n306()</div><div class='add'>+    fun_l15_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n307()</div><div class='add'>+    fun_l15_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n308()</div><div class='add'>+    fun_l15_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n309()</div><div class='add'>+    fun_l15_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n310()</div><div class='add'>+    fun_l15_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n311()</div><div class='add'>+    fun_l15_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n312()</div><div class='add'>+    fun_l15_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n313()</div><div class='add'>+    fun_l15_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n314()</div><div class='add'>+    fun_l15_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n315()</div><div class='add'>+    fun_l15_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n316()</div><div class='add'>+    fun_l15_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n317()</div><div class='add'>+    fun_l15_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n318()</div><div class='add'>+    fun_l15_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n319()</div><div class='add'>+    fun_l15_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n320()</div><div class='add'>+    fun_l15_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n321()</div><div class='add'>+    fun_l15_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n322()</div><div class='add'>+    fun_l15_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n323()</div><div class='add'>+    fun_l15_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n324()</div><div class='add'>+    fun_l15_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n325()</div><div class='add'>+    fun_l15_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n326()</div><div class='add'>+    fun_l15_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n327()</div><div class='add'>+    fun_l15_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n328()</div><div class='add'>+    fun_l15_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n329()</div><div class='add'>+    fun_l15_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n330()</div><div class='add'>+    fun_l15_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n331()</div><div class='add'>+    fun_l15_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n332()</div><div class='add'>+    fun_l15_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n333()</div><div class='add'>+    fun_l15_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n334()</div><div class='add'>+    fun_l15_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n335()</div><div class='add'>+    fun_l15_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n336()</div><div class='add'>+    fun_l15_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n337()</div><div class='add'>+    fun_l15_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n338()</div><div class='add'>+    fun_l15_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n339()</div><div class='add'>+    fun_l15_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n340()</div><div class='add'>+    fun_l15_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n341()</div><div class='add'>+    fun_l15_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n342()</div><div class='add'>+    fun_l15_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n343()</div><div class='add'>+    fun_l15_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n344()</div><div class='add'>+    fun_l15_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n345()</div><div class='add'>+    fun_l15_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n346()</div><div class='add'>+    fun_l15_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n347()</div><div class='add'>+    fun_l15_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n348()</div><div class='add'>+    fun_l15_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n349()</div><div class='add'>+    fun_l15_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n350()</div><div class='add'>+    fun_l15_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n351()</div><div class='add'>+    fun_l15_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n352()</div><div class='add'>+    fun_l15_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n353()</div><div class='add'>+    fun_l15_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n354()</div><div class='add'>+    fun_l15_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n355()</div><div class='add'>+    fun_l15_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n356()</div><div class='add'>+    fun_l15_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n357()</div><div class='add'>+    fun_l15_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n358()</div><div class='add'>+    fun_l15_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n359()</div><div class='add'>+    fun_l15_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n360()</div><div class='add'>+    fun_l15_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n361()</div><div class='add'>+    fun_l15_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n362()</div><div class='add'>+    fun_l15_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n363()</div><div class='add'>+    fun_l15_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n364()</div><div class='add'>+    fun_l15_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n365()</div><div class='add'>+    fun_l15_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n366()</div><div class='add'>+    fun_l15_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n367()</div><div class='add'>+    fun_l15_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n368()</div><div class='add'>+    fun_l15_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n369()</div><div class='add'>+    fun_l15_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n370()</div><div class='add'>+    fun_l15_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n371()</div><div class='add'>+    fun_l15_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n372()</div><div class='add'>+    fun_l15_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n373()</div><div class='add'>+    fun_l15_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n374()</div><div class='add'>+    fun_l15_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n375()</div><div class='add'>+    fun_l15_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n376()</div><div class='add'>+    fun_l15_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n377()</div><div class='add'>+    fun_l15_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n378()</div><div class='add'>+    fun_l15_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n379()</div><div class='add'>+    fun_l15_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n380()</div><div class='add'>+    fun_l15_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n381()</div><div class='add'>+    fun_l15_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n382()</div><div class='add'>+    fun_l15_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n383()</div><div class='add'>+    fun_l15_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n384()</div><div class='add'>+    fun_l15_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n385()</div><div class='add'>+    fun_l15_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n386()</div><div class='add'>+    fun_l15_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n387()</div><div class='add'>+    fun_l15_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n388()</div><div class='add'>+    fun_l15_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n389()</div><div class='add'>+    fun_l15_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n390()</div><div class='add'>+    fun_l15_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n391()</div><div class='add'>+    fun_l15_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n392()</div><div class='add'>+    fun_l15_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n393()</div><div class='add'>+    fun_l15_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n394()</div><div class='add'>+    fun_l15_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n395()</div><div class='add'>+    fun_l15_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n396()</div><div class='add'>+    fun_l15_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n397()</div><div class='add'>+    fun_l15_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n398()</div><div class='add'>+    fun_l15_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n399()</div><div class='add'>+    fun_l15_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n400()</div><div class='add'>+    fun_l15_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n401()</div><div class='add'>+    fun_l15_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n402()</div><div class='add'>+    fun_l15_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n403()</div><div class='add'>+    fun_l15_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n404()</div><div class='add'>+    fun_l15_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n405()</div><div class='add'>+    fun_l15_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n406()</div><div class='add'>+    fun_l15_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n407()</div><div class='add'>+    fun_l15_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n408()</div><div class='add'>+    fun_l15_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n409()</div><div class='add'>+    fun_l15_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n410()</div><div class='add'>+    fun_l15_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n411()</div><div class='add'>+    fun_l15_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n412()</div><div class='add'>+    fun_l15_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n413()</div><div class='add'>+    fun_l15_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n414()</div><div class='add'>+    fun_l15_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n415()</div><div class='add'>+    fun_l15_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n416()</div><div class='add'>+    fun_l15_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n417()</div><div class='add'>+    fun_l15_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n418()</div><div class='add'>+    fun_l15_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n419()</div><div class='add'>+    fun_l15_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n420()</div><div class='add'>+    fun_l15_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n421()</div><div class='add'>+    fun_l15_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n422()</div><div class='add'>+    fun_l15_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n423()</div><div class='add'>+    fun_l15_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n424()</div><div class='add'>+    fun_l15_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n425()</div><div class='add'>+    fun_l15_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n426()</div><div class='add'>+    fun_l15_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n427()</div><div class='add'>+    fun_l15_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n428()</div><div class='add'>+    fun_l15_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n429()</div><div class='add'>+    fun_l15_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n430()</div><div class='add'>+    fun_l15_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n431()</div><div class='add'>+    fun_l15_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n432()</div><div class='add'>+    fun_l15_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n433()</div><div class='add'>+    fun_l15_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n434()</div><div class='add'>+    fun_l15_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n435()</div><div class='add'>+    fun_l15_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n436()</div><div class='add'>+    fun_l15_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n437()</div><div class='add'>+    fun_l15_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n438()</div><div class='add'>+    fun_l15_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n439()</div><div class='add'>+    fun_l15_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n440()</div><div class='add'>+    fun_l15_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n441()</div><div class='add'>+    fun_l15_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n442()</div><div class='add'>+    fun_l15_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n443()</div><div class='add'>+    fun_l15_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n444()</div><div class='add'>+    fun_l15_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n445()</div><div class='add'>+    fun_l15_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n446()</div><div class='add'>+    fun_l15_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n447()</div><div class='add'>+    fun_l15_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n448()</div><div class='add'>+    fun_l15_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n449()</div><div class='add'>+    fun_l15_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n450()</div><div class='add'>+    fun_l15_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n451()</div><div class='add'>+    fun_l15_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n452()</div><div class='add'>+    fun_l15_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n453()</div><div class='add'>+    fun_l15_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n454()</div><div class='add'>+    fun_l15_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n455()</div><div class='add'>+    fun_l15_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n456()</div><div class='add'>+    fun_l15_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n457()</div><div class='add'>+    fun_l15_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n458()</div><div class='add'>+    fun_l15_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n459()</div><div class='add'>+    fun_l15_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n460()</div><div class='add'>+    fun_l15_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n461()</div><div class='add'>+    fun_l15_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n462()</div><div class='add'>+    fun_l15_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n463()</div><div class='add'>+    fun_l15_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n464()</div><div class='add'>+    fun_l15_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n465()</div><div class='add'>+    fun_l15_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n466()</div><div class='add'>+    fun_l15_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n467()</div><div class='add'>+    fun_l15_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n468()</div><div class='add'>+    fun_l15_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n469()</div><div class='add'>+    fun_l15_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n470()</div><div class='add'>+    fun_l15_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n471()</div><div class='add'>+    fun_l15_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n472()</div><div class='add'>+    fun_l15_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n473()</div><div class='add'>+    fun_l15_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n474()</div><div class='add'>+    fun_l15_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n475()</div><div class='add'>+    fun_l15_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n476()</div><div class='add'>+    fun_l15_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n477()</div><div class='add'>+    fun_l15_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n478()</div><div class='add'>+    fun_l15_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n479()</div><div class='add'>+    fun_l15_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n480()</div><div class='add'>+    fun_l15_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n481()</div><div class='add'>+    fun_l15_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n482()</div><div class='add'>+    fun_l15_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n483()</div><div class='add'>+    fun_l15_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n484()</div><div class='add'>+    fun_l15_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n485()</div><div class='add'>+    fun_l15_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n486()</div><div class='add'>+    fun_l15_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n487()</div><div class='add'>+    fun_l15_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n488()</div><div class='add'>+    fun_l15_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n489()</div><div class='add'>+    fun_l15_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n490()</div><div class='add'>+    fun_l15_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n491()</div><div class='add'>+    fun_l15_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n492()</div><div class='add'>+    fun_l15_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n493()</div><div class='add'>+    fun_l15_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n494()</div><div class='add'>+    fun_l15_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n495()</div><div class='add'>+    fun_l15_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n496()</div><div class='add'>+    fun_l15_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n497()</div><div class='add'>+    fun_l15_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n498()</div><div class='add'>+    fun_l15_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n499()</div><div class='add'>+    fun_l15_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n500()</div><div class='add'>+    fun_l15_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n501()</div><div class='add'>+    fun_l15_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n502()</div><div class='add'>+    fun_l15_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n503()</div><div class='add'>+    fun_l15_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n504()</div><div class='add'>+    fun_l15_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n505()</div><div class='add'>+    fun_l15_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n506()</div><div class='add'>+    fun_l15_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n507()</div><div class='add'>+    fun_l15_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n508()</div><div class='add'>+    fun_l15_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n509()</div><div class='add'>+    fun_l15_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n510()</div><div class='add'>+    fun_l15_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n511()</div><div class='add'>+    fun_l15_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n512()</div><div class='add'>+    fun_l15_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n513()</div><div class='add'>+    fun_l15_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n514()</div><div class='add'>+    fun_l15_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n515()</div><div class='add'>+    fun_l15_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n516()</div><div class='add'>+    fun_l15_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n517()</div><div class='add'>+    fun_l15_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n518()</div><div class='add'>+    fun_l15_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n519()</div><div class='add'>+    fun_l15_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n520()</div><div class='add'>+    fun_l15_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n521()</div><div class='add'>+    fun_l15_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n522()</div><div class='add'>+    fun_l15_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n523()</div><div class='add'>+    fun_l15_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n524()</div><div class='add'>+    fun_l15_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n525()</div><div class='add'>+    fun_l15_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n526()</div><div class='add'>+    fun_l15_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n527()</div><div class='add'>+    fun_l15_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n528()</div><div class='add'>+    fun_l15_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n529()</div><div class='add'>+    fun_l15_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n530()</div><div class='add'>+    fun_l15_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n531()</div><div class='add'>+    fun_l15_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n532()</div><div class='add'>+    fun_l15_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n533()</div><div class='add'>+    fun_l15_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n534()</div><div class='add'>+    fun_l15_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n535()</div><div class='add'>+    fun_l15_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n536()</div><div class='add'>+    fun_l15_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n537()</div><div class='add'>+    fun_l15_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n538()</div><div class='add'>+    fun_l15_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n539()</div><div class='add'>+    fun_l15_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n540()</div><div class='add'>+    fun_l15_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n541()</div><div class='add'>+    fun_l15_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n542()</div><div class='add'>+    fun_l15_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n543()</div><div class='add'>+    fun_l15_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n544()</div><div class='add'>+    fun_l15_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n545()</div><div class='add'>+    fun_l15_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n546()</div><div class='add'>+    fun_l15_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n547()</div><div class='add'>+    fun_l15_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n548()</div><div class='add'>+    fun_l15_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n549()</div><div class='add'>+    fun_l15_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n550()</div><div class='add'>+    fun_l15_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n551()</div><div class='add'>+    fun_l15_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n552()</div><div class='add'>+    fun_l15_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n553()</div><div class='add'>+    fun_l15_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n554()</div><div class='add'>+    fun_l15_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n555()</div><div class='add'>+    fun_l15_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n556()</div><div class='add'>+    fun_l15_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n557()</div><div class='add'>+    fun_l15_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n558()</div><div class='add'>+    fun_l15_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n559()</div><div class='add'>+    fun_l15_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n560()</div><div class='add'>+    fun_l15_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n561()</div><div class='add'>+    fun_l15_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n562()</div><div class='add'>+    fun_l15_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n563()</div><div class='add'>+    fun_l15_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n564()</div><div class='add'>+    fun_l15_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n565()</div><div class='add'>+    fun_l15_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n566()</div><div class='add'>+    fun_l15_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n567()</div><div class='add'>+    fun_l15_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n568()</div><div class='add'>+    fun_l15_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n569()</div><div class='add'>+    fun_l15_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n570()</div><div class='add'>+    fun_l15_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n571()</div><div class='add'>+    fun_l15_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n572()</div><div class='add'>+    fun_l15_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n573()</div><div class='add'>+    fun_l15_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n574()</div><div class='add'>+    fun_l15_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n575()</div><div class='add'>+    fun_l15_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n576()</div><div class='add'>+    fun_l15_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n577()</div><div class='add'>+    fun_l15_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n578()</div><div class='add'>+    fun_l15_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n579()</div><div class='add'>+    fun_l15_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n580()</div><div class='add'>+    fun_l15_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n581()</div><div class='add'>+    fun_l15_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n582()</div><div class='add'>+    fun_l15_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n583()</div><div class='add'>+    fun_l15_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n584()</div><div class='add'>+    fun_l15_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n585()</div><div class='add'>+    fun_l15_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n586()</div><div class='add'>+    fun_l15_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n587()</div><div class='add'>+    fun_l15_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n588()</div><div class='add'>+    fun_l15_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n589()</div><div class='add'>+    fun_l15_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n590()</div><div class='add'>+    fun_l15_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n591()</div><div class='add'>+    fun_l15_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n592()</div><div class='add'>+    fun_l15_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n593()</div><div class='add'>+    fun_l15_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n594()</div><div class='add'>+    fun_l15_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n595()</div><div class='add'>+    fun_l15_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n596()</div><div class='add'>+    fun_l15_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n597()</div><div class='add'>+    fun_l15_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n598()</div><div class='add'>+    fun_l15_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n599()</div><div class='add'>+    fun_l15_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n600()</div><div class='add'>+    fun_l15_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n601()</div><div class='add'>+    fun_l15_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n602()</div><div class='add'>+    fun_l15_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n603()</div><div class='add'>+    fun_l15_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n604()</div><div class='add'>+    fun_l15_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n605()</div><div class='add'>+    fun_l15_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n606()</div><div class='add'>+    fun_l15_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n607()</div><div class='add'>+    fun_l15_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n608()</div><div class='add'>+    fun_l15_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n609()</div><div class='add'>+    fun_l15_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n610()</div><div class='add'>+    fun_l15_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n611()</div><div class='add'>+    fun_l15_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n612()</div><div class='add'>+    fun_l15_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n613()</div><div class='add'>+    fun_l15_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n614()</div><div class='add'>+    fun_l15_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n615()</div><div class='add'>+    fun_l15_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n616()</div><div class='add'>+    fun_l15_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n617()</div><div class='add'>+    fun_l15_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n618()</div><div class='add'>+    fun_l15_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n619()</div><div class='add'>+    fun_l15_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n620()</div><div class='add'>+    fun_l15_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n621()</div><div class='add'>+    fun_l15_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n622()</div><div class='add'>+    fun_l15_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n623()</div><div class='add'>+    fun_l15_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n624()</div><div class='add'>+    fun_l15_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n625()</div><div class='add'>+    fun_l15_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n626()</div><div class='add'>+    fun_l15_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n627()</div><div class='add'>+    fun_l15_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n628()</div><div class='add'>+    fun_l15_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n629()</div><div class='add'>+    fun_l15_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n630()</div><div class='add'>+    fun_l15_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n631()</div><div class='add'>+    fun_l15_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n632()</div><div class='add'>+    fun_l15_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n633()</div><div class='add'>+    fun_l15_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n634()</div><div class='add'>+    fun_l15_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n635()</div><div class='add'>+    fun_l15_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n636()</div><div class='add'>+    fun_l15_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n637()</div><div class='add'>+    fun_l15_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n638()</div><div class='add'>+    fun_l15_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n639()</div><div class='add'>+    fun_l15_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n640()</div><div class='add'>+    fun_l15_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n641()</div><div class='add'>+    fun_l15_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n642()</div><div class='add'>+    fun_l15_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n643()</div><div class='add'>+    fun_l15_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n644()</div><div class='add'>+    fun_l15_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n645()</div><div class='add'>+    fun_l15_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n646()</div><div class='add'>+    fun_l15_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n647()</div><div class='add'>+    fun_l15_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n648()</div><div class='add'>+    fun_l15_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n649()</div><div class='add'>+    fun_l15_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n650()</div><div class='add'>+    fun_l15_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n651()</div><div class='add'>+    fun_l15_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n652()</div><div class='add'>+    fun_l15_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n653()</div><div class='add'>+    fun_l15_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n654()</div><div class='add'>+    fun_l15_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n655()</div><div class='add'>+    fun_l15_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n656()</div><div class='add'>+    fun_l15_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n657()</div><div class='add'>+    fun_l15_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n658()</div><div class='add'>+    fun_l15_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n659()</div><div class='add'>+    fun_l15_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n660()</div><div class='add'>+    fun_l15_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n661()</div><div class='add'>+    fun_l15_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n662()</div><div class='add'>+    fun_l15_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n663()</div><div class='add'>+    fun_l15_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n664()</div><div class='add'>+    fun_l15_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n665()</div><div class='add'>+    fun_l15_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n666()</div><div class='add'>+    fun_l15_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n667()</div><div class='add'>+    fun_l15_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n668()</div><div class='add'>+    fun_l15_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n669()</div><div class='add'>+    fun_l15_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n670()</div><div class='add'>+    fun_l15_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n671()</div><div class='add'>+    fun_l15_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n672()</div><div class='add'>+    fun_l15_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n673()</div><div class='add'>+    fun_l15_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n674()</div><div class='add'>+    fun_l15_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n675()</div><div class='add'>+    fun_l15_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n676()</div><div class='add'>+    fun_l15_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n677()</div><div class='add'>+    fun_l15_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n678()</div><div class='add'>+    fun_l15_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n679()</div><div class='add'>+    fun_l15_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n680()</div><div class='add'>+    fun_l15_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n681()</div><div class='add'>+    fun_l15_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n682()</div><div class='add'>+    fun_l15_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n683()</div><div class='add'>+    fun_l15_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n684()</div><div class='add'>+    fun_l15_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n685()</div><div class='add'>+    fun_l15_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n686()</div><div class='add'>+    fun_l15_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n687()</div><div class='add'>+    fun_l15_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n688()</div><div class='add'>+    fun_l15_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n689()</div><div class='add'>+    fun_l15_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n690()</div><div class='add'>+    fun_l15_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n691()</div><div class='add'>+    fun_l15_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n692()</div><div class='add'>+    fun_l15_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n693()</div><div class='add'>+    fun_l15_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n694()</div><div class='add'>+    fun_l15_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n695()</div><div class='add'>+    fun_l15_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n696()</div><div class='add'>+    fun_l15_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n697()</div><div class='add'>+    fun_l15_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n698()</div><div class='add'>+    fun_l15_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n699()</div><div class='add'>+    fun_l15_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n700()</div><div class='add'>+    fun_l15_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n701()</div><div class='add'>+    fun_l15_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n702()</div><div class='add'>+    fun_l15_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n703()</div><div class='add'>+    fun_l15_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n704()</div><div class='add'>+    fun_l15_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n705()</div><div class='add'>+    fun_l15_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n706()</div><div class='add'>+    fun_l15_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n707()</div><div class='add'>+    fun_l15_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n708()</div><div class='add'>+    fun_l15_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n709()</div><div class='add'>+    fun_l15_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n710()</div><div class='add'>+    fun_l15_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n711()</div><div class='add'>+    fun_l15_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n712()</div><div class='add'>+    fun_l15_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n713()</div><div class='add'>+    fun_l15_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n714()</div><div class='add'>+    fun_l15_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n715()</div><div class='add'>+    fun_l15_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n716()</div><div class='add'>+    fun_l15_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n717()</div><div class='add'>+    fun_l15_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n718()</div><div class='add'>+    fun_l15_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n719()</div><div class='add'>+    fun_l15_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n720()</div><div class='add'>+    fun_l15_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n721()</div><div class='add'>+    fun_l15_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n722()</div><div class='add'>+    fun_l15_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n723()</div><div class='add'>+    fun_l15_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n724()</div><div class='add'>+    fun_l15_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n725()</div><div class='add'>+    fun_l15_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n726()</div><div class='add'>+    fun_l15_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n727()</div><div class='add'>+    fun_l15_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n728()</div><div class='add'>+    fun_l15_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n729()</div><div class='add'>+    fun_l15_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n730()</div><div class='add'>+    fun_l15_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n731()</div><div class='add'>+    fun_l15_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n732()</div><div class='add'>+    fun_l15_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n733()</div><div class='add'>+    fun_l15_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n734()</div><div class='add'>+    fun_l15_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n735()</div><div class='add'>+    fun_l15_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n736()</div><div class='add'>+    fun_l15_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n737()</div><div class='add'>+    fun_l15_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n738()</div><div class='add'>+    fun_l15_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n739()</div><div class='add'>+    fun_l15_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n740()</div><div class='add'>+    fun_l15_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n741()</div><div class='add'>+    fun_l15_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n742()</div><div class='add'>+    fun_l15_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n743()</div><div class='add'>+    fun_l15_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n744()</div><div class='add'>+    fun_l15_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n745()</div><div class='add'>+    fun_l15_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n746()</div><div class='add'>+    fun_l15_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n747()</div><div class='add'>+    fun_l15_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n748()</div><div class='add'>+    fun_l15_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n749()</div><div class='add'>+    fun_l15_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n750()</div><div class='add'>+    fun_l15_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n751()</div><div class='add'>+    fun_l15_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n752()</div><div class='add'>+    fun_l15_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n753()</div><div class='add'>+    fun_l15_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n754()</div><div class='add'>+    fun_l15_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n755()</div><div class='add'>+    fun_l15_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n756()</div><div class='add'>+    fun_l15_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n757()</div><div class='add'>+    fun_l15_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n758()</div><div class='add'>+    fun_l15_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n759()</div><div class='add'>+    fun_l15_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n760()</div><div class='add'>+    fun_l15_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n761()</div><div class='add'>+    fun_l15_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n762()</div><div class='add'>+    fun_l15_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n763()</div><div class='add'>+    fun_l15_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n764()</div><div class='add'>+    fun_l15_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n765()</div><div class='add'>+    fun_l15_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n766()</div><div class='add'>+    fun_l15_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n767()</div><div class='add'>+    fun_l15_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n768()</div><div class='add'>+    fun_l15_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n769()</div><div class='add'>+    fun_l15_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n770()</div><div class='add'>+    fun_l15_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n771()</div><div class='add'>+    fun_l15_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n772()</div><div class='add'>+    fun_l15_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n773()</div><div class='add'>+    fun_l15_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n774()</div><div class='add'>+    fun_l15_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n775()</div><div class='add'>+    fun_l15_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n776()</div><div class='add'>+    fun_l15_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n777()</div><div class='add'>+    fun_l15_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n778()</div><div class='add'>+    fun_l15_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n779()</div><div class='add'>+    fun_l15_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n780()</div><div class='add'>+    fun_l15_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n781()</div><div class='add'>+    fun_l15_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n782()</div><div class='add'>+    fun_l15_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n783()</div><div class='add'>+    fun_l15_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n784()</div><div class='add'>+    fun_l15_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n785()</div><div class='add'>+    fun_l15_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n786()</div><div class='add'>+    fun_l15_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n787()</div><div class='add'>+    fun_l15_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n788()</div><div class='add'>+    fun_l15_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n789()</div><div class='add'>+    fun_l15_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n790()</div><div class='add'>+    fun_l15_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n791()</div><div class='add'>+    fun_l15_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n792()</div><div class='add'>+    fun_l15_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n793()</div><div class='add'>+    fun_l15_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n794()</div><div class='add'>+    fun_l15_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n795()</div><div class='add'>+    fun_l15_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n796()</div><div class='add'>+    fun_l15_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n797()</div><div class='add'>+    fun_l15_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n798()</div><div class='add'>+    fun_l15_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n799()</div><div class='add'>+    fun_l15_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n800()</div><div class='add'>+    fun_l15_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n801()</div><div class='add'>+    fun_l15_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n802()</div><div class='add'>+    fun_l15_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n803()</div><div class='add'>+    fun_l15_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n804()</div><div class='add'>+    fun_l15_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n805()</div><div class='add'>+    fun_l15_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n806()</div><div class='add'>+    fun_l15_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n807()</div><div class='add'>+    fun_l15_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n808()</div><div class='add'>+    fun_l15_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n809()</div><div class='add'>+    fun_l15_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n810()</div><div class='add'>+    fun_l15_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n811()</div><div class='add'>+    fun_l15_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n812()</div><div class='add'>+    fun_l15_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n813()</div><div class='add'>+    fun_l15_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n814()</div><div class='add'>+    fun_l15_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n815()</div><div class='add'>+    fun_l15_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n816()</div><div class='add'>+    fun_l15_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n817()</div><div class='add'>+    fun_l15_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n818()</div><div class='add'>+    fun_l15_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n819()</div><div class='add'>+    fun_l15_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n820()</div><div class='add'>+    fun_l15_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n821()</div><div class='add'>+    fun_l15_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n822()</div><div class='add'>+    fun_l15_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n823()</div><div class='add'>+    fun_l15_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n824()</div><div class='add'>+    fun_l15_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n825()</div><div class='add'>+    fun_l15_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n826()</div><div class='add'>+    fun_l15_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n827()</div><div class='add'>+    fun_l15_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n828()</div><div class='add'>+    fun_l15_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n829()</div><div class='add'>+    fun_l15_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n830()</div><div class='add'>+    fun_l15_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n831()</div><div class='add'>+    fun_l15_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n832()</div><div class='add'>+    fun_l15_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n833()</div><div class='add'>+    fun_l15_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n834()</div><div class='add'>+    fun_l15_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n835()</div><div class='add'>+    fun_l15_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n836()</div><div class='add'>+    fun_l15_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n837()</div><div class='add'>+    fun_l15_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n838()</div><div class='add'>+    fun_l15_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n839()</div><div class='add'>+    fun_l15_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n840()</div><div class='add'>+    fun_l15_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n841()</div><div class='add'>+    fun_l15_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n842()</div><div class='add'>+    fun_l15_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n843()</div><div class='add'>+    fun_l15_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n844()</div><div class='add'>+    fun_l15_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n845()</div><div class='add'>+    fun_l15_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n846()</div><div class='add'>+    fun_l15_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n847()</div><div class='add'>+    fun_l15_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n848()</div><div class='add'>+    fun_l15_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n849()</div><div class='add'>+    fun_l15_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n850()</div><div class='add'>+    fun_l15_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n851()</div><div class='add'>+    fun_l15_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n852()</div><div class='add'>+    fun_l15_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n853()</div><div class='add'>+    fun_l15_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n854()</div><div class='add'>+    fun_l15_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n855()</div><div class='add'>+    fun_l15_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n856()</div><div class='add'>+    fun_l15_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n857()</div><div class='add'>+    fun_l15_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n858()</div><div class='add'>+    fun_l15_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n859()</div><div class='add'>+    fun_l15_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n860()</div><div class='add'>+    fun_l15_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n861()</div><div class='add'>+    fun_l15_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n862()</div><div class='add'>+    fun_l15_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n863()</div><div class='add'>+    fun_l15_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n864()</div><div class='add'>+    fun_l15_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n865()</div><div class='add'>+    fun_l15_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n866()</div><div class='add'>+    fun_l15_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n867()</div><div class='add'>+    fun_l15_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n868()</div><div class='add'>+    fun_l15_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n869()</div><div class='add'>+    fun_l15_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n870()</div><div class='add'>+    fun_l15_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n871()</div><div class='add'>+    fun_l15_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n872()</div><div class='add'>+    fun_l15_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n873()</div><div class='add'>+    fun_l15_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n874()</div><div class='add'>+    fun_l15_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n875()</div><div class='add'>+    fun_l15_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n876()</div><div class='add'>+    fun_l15_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n877()</div><div class='add'>+    fun_l15_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n878()</div><div class='add'>+    fun_l15_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n879()</div><div class='add'>+    fun_l15_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n880()</div><div class='add'>+    fun_l15_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n881()</div><div class='add'>+    fun_l15_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n882()</div><div class='add'>+    fun_l15_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n883()</div><div class='add'>+    fun_l15_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n884()</div><div class='add'>+    fun_l15_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n885()</div><div class='add'>+    fun_l15_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n886()</div><div class='add'>+    fun_l15_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n887()</div><div class='add'>+    fun_l15_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n888()</div><div class='add'>+    fun_l15_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n889()</div><div class='add'>+    fun_l15_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n890()</div><div class='add'>+    fun_l15_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n891()</div><div class='add'>+    fun_l15_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n892()</div><div class='add'>+    fun_l15_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n893()</div><div class='add'>+    fun_l15_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n894()</div><div class='add'>+    fun_l15_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n895()</div><div class='add'>+    fun_l15_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n896()</div><div class='add'>+    fun_l15_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n897()</div><div class='add'>+    fun_l15_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n898()</div><div class='add'>+    fun_l15_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n899()</div><div class='add'>+    fun_l15_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n900()</div><div class='add'>+    fun_l15_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n901()</div><div class='add'>+    fun_l15_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n902()</div><div class='add'>+    fun_l15_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n903()</div><div class='add'>+    fun_l15_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n904()</div><div class='add'>+    fun_l15_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n905()</div><div class='add'>+    fun_l15_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n906()</div><div class='add'>+    fun_l15_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n907()</div><div class='add'>+    fun_l15_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n908()</div><div class='add'>+    fun_l15_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n909()</div><div class='add'>+    fun_l15_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n910()</div><div class='add'>+    fun_l15_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n911()</div><div class='add'>+    fun_l15_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n912()</div><div class='add'>+    fun_l15_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n913()</div><div class='add'>+    fun_l15_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n914()</div><div class='add'>+    fun_l15_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n915()</div><div class='add'>+    fun_l15_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n916()</div><div class='add'>+    fun_l15_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n917()</div><div class='add'>+    fun_l15_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n918()</div><div class='add'>+    fun_l15_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n919()</div><div class='add'>+    fun_l15_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n920()</div><div class='add'>+    fun_l15_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n921()</div><div class='add'>+    fun_l15_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n922()</div><div class='add'>+    fun_l15_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n923()</div><div class='add'>+    fun_l15_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n924()</div><div class='add'>+    fun_l15_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n925()</div><div class='add'>+    fun_l15_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n926()</div><div class='add'>+    fun_l15_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n927()</div><div class='add'>+    fun_l15_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n928()</div><div class='add'>+    fun_l15_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n929()</div><div class='add'>+    fun_l15_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n930()</div><div class='add'>+    fun_l15_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n931()</div><div class='add'>+    fun_l15_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n932()</div><div class='add'>+    fun_l15_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n933()</div><div class='add'>+    fun_l15_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n934()</div><div class='add'>+    fun_l15_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n935()</div><div class='add'>+    fun_l15_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n936()</div><div class='add'>+    fun_l15_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n937()</div><div class='add'>+    fun_l15_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n938()</div><div class='add'>+    fun_l15_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n939()</div><div class='add'>+    fun_l15_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n940()</div><div class='add'>+    fun_l15_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n941()</div><div class='add'>+    fun_l15_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n942()</div><div class='add'>+    fun_l15_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n943()</div><div class='add'>+    fun_l15_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n944()</div><div class='add'>+    fun_l15_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n945()</div><div class='add'>+    fun_l15_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n946()</div><div class='add'>+    fun_l15_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n947()</div><div class='add'>+    fun_l15_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n948()</div><div class='add'>+    fun_l15_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n949()</div><div class='add'>+    fun_l15_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n950()</div><div class='add'>+    fun_l15_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n951()</div><div class='add'>+    fun_l15_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n952()</div><div class='add'>+    fun_l15_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n953()</div><div class='add'>+    fun_l15_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n954()</div><div class='add'>+    fun_l15_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n955()</div><div class='add'>+    fun_l15_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n956()</div><div class='add'>+    fun_l15_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n957()</div><div class='add'>+    fun_l15_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n958()</div><div class='add'>+    fun_l15_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n959()</div><div class='add'>+    fun_l15_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n960()</div><div class='add'>+    fun_l15_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n961()</div><div class='add'>+    fun_l15_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n962()</div><div class='add'>+    fun_l15_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n963()</div><div class='add'>+    fun_l15_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n964()</div><div class='add'>+    fun_l15_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n965()</div><div class='add'>+    fun_l15_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n966()</div><div class='add'>+    fun_l15_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n967()</div><div class='add'>+    fun_l15_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n968()</div><div class='add'>+    fun_l15_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n969()</div><div class='add'>+    fun_l15_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n970()</div><div class='add'>+    fun_l15_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n971()</div><div class='add'>+    fun_l15_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n972()</div><div class='add'>+    fun_l15_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n973()</div><div class='add'>+    fun_l15_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n974()</div><div class='add'>+    fun_l15_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n975()</div><div class='add'>+    fun_l15_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n976()</div><div class='add'>+    fun_l15_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n977()</div><div class='add'>+    fun_l15_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n978()</div><div class='add'>+    fun_l15_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n979()</div><div class='add'>+    fun_l15_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n980()</div><div class='add'>+    fun_l15_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n981()</div><div class='add'>+    fun_l15_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n982()</div><div class='add'>+    fun_l15_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n983()</div><div class='add'>+    fun_l15_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n984()</div><div class='add'>+    fun_l15_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n985()</div><div class='add'>+    fun_l15_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n986()</div><div class='add'>+    fun_l15_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n987()</div><div class='add'>+    fun_l15_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n988()</div><div class='add'>+    fun_l15_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n989()</div><div class='add'>+    fun_l15_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n990()</div><div class='add'>+    fun_l15_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n991()</div><div class='add'>+    fun_l15_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n992()</div><div class='add'>+    fun_l15_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n993()</div><div class='add'>+    fun_l15_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n994()</div><div class='add'>+    fun_l15_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n995()</div><div class='add'>+    fun_l15_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n996()</div><div class='add'>+    fun_l15_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n997()</div><div class='add'>+    fun_l15_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n998()</div><div class='add'>+    fun_l15_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l14_n999()</div><div class='add'>+    fun_l15_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n0()</div><div class='add'>+    fun_l16_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n1()</div><div class='add'>+    fun_l16_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n2()</div><div class='add'>+    fun_l16_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n3()</div><div class='add'>+    fun_l16_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n4()</div><div class='add'>+    fun_l16_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n5()</div><div class='add'>+    fun_l16_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n6()</div><div class='add'>+    fun_l16_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n7()</div><div class='add'>+    fun_l16_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n8()</div><div class='add'>+    fun_l16_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n9()</div><div class='add'>+    fun_l16_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n10()</div><div class='add'>+    fun_l16_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n11()</div><div class='add'>+    fun_l16_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n12()</div><div class='add'>+    fun_l16_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n13()</div><div class='add'>+    fun_l16_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n14()</div><div class='add'>+    fun_l16_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n15()</div><div class='add'>+    fun_l16_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n16()</div><div class='add'>+    fun_l16_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n17()</div><div class='add'>+    fun_l16_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n18()</div><div class='add'>+    fun_l16_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n19()</div><div class='add'>+    fun_l16_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n20()</div><div class='add'>+    fun_l16_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n21()</div><div class='add'>+    fun_l16_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n22()</div><div class='add'>+    fun_l16_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n23()</div><div class='add'>+    fun_l16_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n24()</div><div class='add'>+    fun_l16_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n25()</div><div class='add'>+    fun_l16_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n26()</div><div class='add'>+    fun_l16_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n27()</div><div class='add'>+    fun_l16_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n28()</div><div class='add'>+    fun_l16_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n29()</div><div class='add'>+    fun_l16_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n30()</div><div class='add'>+    fun_l16_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n31()</div><div class='add'>+    fun_l16_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n32()</div><div class='add'>+    fun_l16_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n33()</div><div class='add'>+    fun_l16_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n34()</div><div class='add'>+    fun_l16_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n35()</div><div class='add'>+    fun_l16_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n36()</div><div class='add'>+    fun_l16_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n37()</div><div class='add'>+    fun_l16_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n38()</div><div class='add'>+    fun_l16_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n39()</div><div class='add'>+    fun_l16_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n40()</div><div class='add'>+    fun_l16_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n41()</div><div class='add'>+    fun_l16_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n42()</div><div class='add'>+    fun_l16_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n43()</div><div class='add'>+    fun_l16_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n44()</div><div class='add'>+    fun_l16_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n45()</div><div class='add'>+    fun_l16_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n46()</div><div class='add'>+    fun_l16_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n47()</div><div class='add'>+    fun_l16_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n48()</div><div class='add'>+    fun_l16_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n49()</div><div class='add'>+    fun_l16_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n50()</div><div class='add'>+    fun_l16_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n51()</div><div class='add'>+    fun_l16_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n52()</div><div class='add'>+    fun_l16_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n53()</div><div class='add'>+    fun_l16_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n54()</div><div class='add'>+    fun_l16_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n55()</div><div class='add'>+    fun_l16_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n56()</div><div class='add'>+    fun_l16_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n57()</div><div class='add'>+    fun_l16_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n58()</div><div class='add'>+    fun_l16_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n59()</div><div class='add'>+    fun_l16_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n60()</div><div class='add'>+    fun_l16_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n61()</div><div class='add'>+    fun_l16_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n62()</div><div class='add'>+    fun_l16_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n63()</div><div class='add'>+    fun_l16_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n64()</div><div class='add'>+    fun_l16_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n65()</div><div class='add'>+    fun_l16_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n66()</div><div class='add'>+    fun_l16_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n67()</div><div class='add'>+    fun_l16_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n68()</div><div class='add'>+    fun_l16_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n69()</div><div class='add'>+    fun_l16_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n70()</div><div class='add'>+    fun_l16_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n71()</div><div class='add'>+    fun_l16_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n72()</div><div class='add'>+    fun_l16_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n73()</div><div class='add'>+    fun_l16_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n74()</div><div class='add'>+    fun_l16_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n75()</div><div class='add'>+    fun_l16_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n76()</div><div class='add'>+    fun_l16_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n77()</div><div class='add'>+    fun_l16_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n78()</div><div class='add'>+    fun_l16_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n79()</div><div class='add'>+    fun_l16_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n80()</div><div class='add'>+    fun_l16_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n81()</div><div class='add'>+    fun_l16_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n82()</div><div class='add'>+    fun_l16_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n83()</div><div class='add'>+    fun_l16_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n84()</div><div class='add'>+    fun_l16_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n85()</div><div class='add'>+    fun_l16_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n86()</div><div class='add'>+    fun_l16_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n87()</div><div class='add'>+    fun_l16_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n88()</div><div class='add'>+    fun_l16_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n89()</div><div class='add'>+    fun_l16_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n90()</div><div class='add'>+    fun_l16_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n91()</div><div class='add'>+    fun_l16_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n92()</div><div class='add'>+    fun_l16_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n93()</div><div class='add'>+    fun_l16_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n94()</div><div class='add'>+    fun_l16_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n95()</div><div class='add'>+    fun_l16_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n96()</div><div class='add'>+    fun_l16_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n97()</div><div class='add'>+    fun_l16_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n98()</div><div class='add'>+    fun_l16_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n99()</div><div class='add'>+    fun_l16_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n100()</div><div class='add'>+    fun_l16_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n101()</div><div class='add'>+    fun_l16_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n102()</div><div class='add'>+    fun_l16_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n103()</div><div class='add'>+    fun_l16_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n104()</div><div class='add'>+    fun_l16_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n105()</div><div class='add'>+    fun_l16_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n106()</div><div class='add'>+    fun_l16_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n107()</div><div class='add'>+    fun_l16_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n108()</div><div class='add'>+    fun_l16_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n109()</div><div class='add'>+    fun_l16_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n110()</div><div class='add'>+    fun_l16_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n111()</div><div class='add'>+    fun_l16_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n112()</div><div class='add'>+    fun_l16_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n113()</div><div class='add'>+    fun_l16_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n114()</div><div class='add'>+    fun_l16_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n115()</div><div class='add'>+    fun_l16_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n116()</div><div class='add'>+    fun_l16_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n117()</div><div class='add'>+    fun_l16_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n118()</div><div class='add'>+    fun_l16_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n119()</div><div class='add'>+    fun_l16_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n120()</div><div class='add'>+    fun_l16_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n121()</div><div class='add'>+    fun_l16_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n122()</div><div class='add'>+    fun_l16_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n123()</div><div class='add'>+    fun_l16_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n124()</div><div class='add'>+    fun_l16_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n125()</div><div class='add'>+    fun_l16_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n126()</div><div class='add'>+    fun_l16_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n127()</div><div class='add'>+    fun_l16_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n128()</div><div class='add'>+    fun_l16_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n129()</div><div class='add'>+    fun_l16_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n130()</div><div class='add'>+    fun_l16_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n131()</div><div class='add'>+    fun_l16_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n132()</div><div class='add'>+    fun_l16_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n133()</div><div class='add'>+    fun_l16_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n134()</div><div class='add'>+    fun_l16_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n135()</div><div class='add'>+    fun_l16_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n136()</div><div class='add'>+    fun_l16_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n137()</div><div class='add'>+    fun_l16_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n138()</div><div class='add'>+    fun_l16_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n139()</div><div class='add'>+    fun_l16_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n140()</div><div class='add'>+    fun_l16_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n141()</div><div class='add'>+    fun_l16_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n142()</div><div class='add'>+    fun_l16_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n143()</div><div class='add'>+    fun_l16_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n144()</div><div class='add'>+    fun_l16_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n145()</div><div class='add'>+    fun_l16_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n146()</div><div class='add'>+    fun_l16_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n147()</div><div class='add'>+    fun_l16_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n148()</div><div class='add'>+    fun_l16_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n149()</div><div class='add'>+    fun_l16_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n150()</div><div class='add'>+    fun_l16_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n151()</div><div class='add'>+    fun_l16_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n152()</div><div class='add'>+    fun_l16_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n153()</div><div class='add'>+    fun_l16_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n154()</div><div class='add'>+    fun_l16_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n155()</div><div class='add'>+    fun_l16_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n156()</div><div class='add'>+    fun_l16_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n157()</div><div class='add'>+    fun_l16_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n158()</div><div class='add'>+    fun_l16_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n159()</div><div class='add'>+    fun_l16_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n160()</div><div class='add'>+    fun_l16_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n161()</div><div class='add'>+    fun_l16_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n162()</div><div class='add'>+    fun_l16_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n163()</div><div class='add'>+    fun_l16_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n164()</div><div class='add'>+    fun_l16_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n165()</div><div class='add'>+    fun_l16_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n166()</div><div class='add'>+    fun_l16_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n167()</div><div class='add'>+    fun_l16_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n168()</div><div class='add'>+    fun_l16_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n169()</div><div class='add'>+    fun_l16_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n170()</div><div class='add'>+    fun_l16_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n171()</div><div class='add'>+    fun_l16_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n172()</div><div class='add'>+    fun_l16_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n173()</div><div class='add'>+    fun_l16_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n174()</div><div class='add'>+    fun_l16_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n175()</div><div class='add'>+    fun_l16_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n176()</div><div class='add'>+    fun_l16_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n177()</div><div class='add'>+    fun_l16_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n178()</div><div class='add'>+    fun_l16_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n179()</div><div class='add'>+    fun_l16_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n180()</div><div class='add'>+    fun_l16_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n181()</div><div class='add'>+    fun_l16_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n182()</div><div class='add'>+    fun_l16_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n183()</div><div class='add'>+    fun_l16_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n184()</div><div class='add'>+    fun_l16_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n185()</div><div class='add'>+    fun_l16_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n186()</div><div class='add'>+    fun_l16_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n187()</div><div class='add'>+    fun_l16_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n188()</div><div class='add'>+    fun_l16_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n189()</div><div class='add'>+    fun_l16_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n190()</div><div class='add'>+    fun_l16_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n191()</div><div class='add'>+    fun_l16_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n192()</div><div class='add'>+    fun_l16_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n193()</div><div class='add'>+    fun_l16_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n194()</div><div class='add'>+    fun_l16_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n195()</div><div class='add'>+    fun_l16_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n196()</div><div class='add'>+    fun_l16_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n197()</div><div class='add'>+    fun_l16_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n198()</div><div class='add'>+    fun_l16_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n199()</div><div class='add'>+    fun_l16_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n200()</div><div class='add'>+    fun_l16_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n201()</div><div class='add'>+    fun_l16_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n202()</div><div class='add'>+    fun_l16_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n203()</div><div class='add'>+    fun_l16_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n204()</div><div class='add'>+    fun_l16_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n205()</div><div class='add'>+    fun_l16_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n206()</div><div class='add'>+    fun_l16_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n207()</div><div class='add'>+    fun_l16_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n208()</div><div class='add'>+    fun_l16_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n209()</div><div class='add'>+    fun_l16_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n210()</div><div class='add'>+    fun_l16_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n211()</div><div class='add'>+    fun_l16_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n212()</div><div class='add'>+    fun_l16_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n213()</div><div class='add'>+    fun_l16_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n214()</div><div class='add'>+    fun_l16_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n215()</div><div class='add'>+    fun_l16_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n216()</div><div class='add'>+    fun_l16_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n217()</div><div class='add'>+    fun_l16_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n218()</div><div class='add'>+    fun_l16_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n219()</div><div class='add'>+    fun_l16_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n220()</div><div class='add'>+    fun_l16_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n221()</div><div class='add'>+    fun_l16_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n222()</div><div class='add'>+    fun_l16_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n223()</div><div class='add'>+    fun_l16_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n224()</div><div class='add'>+    fun_l16_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n225()</div><div class='add'>+    fun_l16_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n226()</div><div class='add'>+    fun_l16_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n227()</div><div class='add'>+    fun_l16_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n228()</div><div class='add'>+    fun_l16_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n229()</div><div class='add'>+    fun_l16_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n230()</div><div class='add'>+    fun_l16_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n231()</div><div class='add'>+    fun_l16_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n232()</div><div class='add'>+    fun_l16_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n233()</div><div class='add'>+    fun_l16_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n234()</div><div class='add'>+    fun_l16_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n235()</div><div class='add'>+    fun_l16_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n236()</div><div class='add'>+    fun_l16_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n237()</div><div class='add'>+    fun_l16_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n238()</div><div class='add'>+    fun_l16_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n239()</div><div class='add'>+    fun_l16_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n240()</div><div class='add'>+    fun_l16_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n241()</div><div class='add'>+    fun_l16_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n242()</div><div class='add'>+    fun_l16_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n243()</div><div class='add'>+    fun_l16_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n244()</div><div class='add'>+    fun_l16_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n245()</div><div class='add'>+    fun_l16_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n246()</div><div class='add'>+    fun_l16_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n247()</div><div class='add'>+    fun_l16_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n248()</div><div class='add'>+    fun_l16_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n249()</div><div class='add'>+    fun_l16_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n250()</div><div class='add'>+    fun_l16_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n251()</div><div class='add'>+    fun_l16_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n252()</div><div class='add'>+    fun_l16_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n253()</div><div class='add'>+    fun_l16_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n254()</div><div class='add'>+    fun_l16_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n255()</div><div class='add'>+    fun_l16_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n256()</div><div class='add'>+    fun_l16_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n257()</div><div class='add'>+    fun_l16_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n258()</div><div class='add'>+    fun_l16_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n259()</div><div class='add'>+    fun_l16_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n260()</div><div class='add'>+    fun_l16_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n261()</div><div class='add'>+    fun_l16_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n262()</div><div class='add'>+    fun_l16_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n263()</div><div class='add'>+    fun_l16_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n264()</div><div class='add'>+    fun_l16_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n265()</div><div class='add'>+    fun_l16_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n266()</div><div class='add'>+    fun_l16_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n267()</div><div class='add'>+    fun_l16_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n268()</div><div class='add'>+    fun_l16_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n269()</div><div class='add'>+    fun_l16_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n270()</div><div class='add'>+    fun_l16_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n271()</div><div class='add'>+    fun_l16_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n272()</div><div class='add'>+    fun_l16_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n273()</div><div class='add'>+    fun_l16_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n274()</div><div class='add'>+    fun_l16_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n275()</div><div class='add'>+    fun_l16_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n276()</div><div class='add'>+    fun_l16_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n277()</div><div class='add'>+    fun_l16_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n278()</div><div class='add'>+    fun_l16_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n279()</div><div class='add'>+    fun_l16_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n280()</div><div class='add'>+    fun_l16_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n281()</div><div class='add'>+    fun_l16_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n282()</div><div class='add'>+    fun_l16_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n283()</div><div class='add'>+    fun_l16_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n284()</div><div class='add'>+    fun_l16_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n285()</div><div class='add'>+    fun_l16_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n286()</div><div class='add'>+    fun_l16_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n287()</div><div class='add'>+    fun_l16_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n288()</div><div class='add'>+    fun_l16_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n289()</div><div class='add'>+    fun_l16_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n290()</div><div class='add'>+    fun_l16_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n291()</div><div class='add'>+    fun_l16_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n292()</div><div class='add'>+    fun_l16_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n293()</div><div class='add'>+    fun_l16_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n294()</div><div class='add'>+    fun_l16_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n295()</div><div class='add'>+    fun_l16_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n296()</div><div class='add'>+    fun_l16_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n297()</div><div class='add'>+    fun_l16_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n298()</div><div class='add'>+    fun_l16_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n299()</div><div class='add'>+    fun_l16_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n300()</div><div class='add'>+    fun_l16_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n301()</div><div class='add'>+    fun_l16_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n302()</div><div class='add'>+    fun_l16_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n303()</div><div class='add'>+    fun_l16_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n304()</div><div class='add'>+    fun_l16_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n305()</div><div class='add'>+    fun_l16_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n306()</div><div class='add'>+    fun_l16_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n307()</div><div class='add'>+    fun_l16_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n308()</div><div class='add'>+    fun_l16_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n309()</div><div class='add'>+    fun_l16_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n310()</div><div class='add'>+    fun_l16_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n311()</div><div class='add'>+    fun_l16_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n312()</div><div class='add'>+    fun_l16_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n313()</div><div class='add'>+    fun_l16_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n314()</div><div class='add'>+    fun_l16_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n315()</div><div class='add'>+    fun_l16_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n316()</div><div class='add'>+    fun_l16_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n317()</div><div class='add'>+    fun_l16_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n318()</div><div class='add'>+    fun_l16_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n319()</div><div class='add'>+    fun_l16_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n320()</div><div class='add'>+    fun_l16_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n321()</div><div class='add'>+    fun_l16_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n322()</div><div class='add'>+    fun_l16_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n323()</div><div class='add'>+    fun_l16_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n324()</div><div class='add'>+    fun_l16_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n325()</div><div class='add'>+    fun_l16_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n326()</div><div class='add'>+    fun_l16_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n327()</div><div class='add'>+    fun_l16_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n328()</div><div class='add'>+    fun_l16_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n329()</div><div class='add'>+    fun_l16_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n330()</div><div class='add'>+    fun_l16_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n331()</div><div class='add'>+    fun_l16_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n332()</div><div class='add'>+    fun_l16_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n333()</div><div class='add'>+    fun_l16_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n334()</div><div class='add'>+    fun_l16_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n335()</div><div class='add'>+    fun_l16_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n336()</div><div class='add'>+    fun_l16_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n337()</div><div class='add'>+    fun_l16_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n338()</div><div class='add'>+    fun_l16_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n339()</div><div class='add'>+    fun_l16_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n340()</div><div class='add'>+    fun_l16_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n341()</div><div class='add'>+    fun_l16_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n342()</div><div class='add'>+    fun_l16_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n343()</div><div class='add'>+    fun_l16_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n344()</div><div class='add'>+    fun_l16_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n345()</div><div class='add'>+    fun_l16_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n346()</div><div class='add'>+    fun_l16_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n347()</div><div class='add'>+    fun_l16_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n348()</div><div class='add'>+    fun_l16_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n349()</div><div class='add'>+    fun_l16_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n350()</div><div class='add'>+    fun_l16_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n351()</div><div class='add'>+    fun_l16_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n352()</div><div class='add'>+    fun_l16_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n353()</div><div class='add'>+    fun_l16_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n354()</div><div class='add'>+    fun_l16_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n355()</div><div class='add'>+    fun_l16_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n356()</div><div class='add'>+    fun_l16_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n357()</div><div class='add'>+    fun_l16_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n358()</div><div class='add'>+    fun_l16_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n359()</div><div class='add'>+    fun_l16_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n360()</div><div class='add'>+    fun_l16_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n361()</div><div class='add'>+    fun_l16_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n362()</div><div class='add'>+    fun_l16_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n363()</div><div class='add'>+    fun_l16_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n364()</div><div class='add'>+    fun_l16_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n365()</div><div class='add'>+    fun_l16_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n366()</div><div class='add'>+    fun_l16_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n367()</div><div class='add'>+    fun_l16_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n368()</div><div class='add'>+    fun_l16_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n369()</div><div class='add'>+    fun_l16_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n370()</div><div class='add'>+    fun_l16_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n371()</div><div class='add'>+    fun_l16_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n372()</div><div class='add'>+    fun_l16_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n373()</div><div class='add'>+    fun_l16_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n374()</div><div class='add'>+    fun_l16_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n375()</div><div class='add'>+    fun_l16_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n376()</div><div class='add'>+    fun_l16_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n377()</div><div class='add'>+    fun_l16_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n378()</div><div class='add'>+    fun_l16_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n379()</div><div class='add'>+    fun_l16_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n380()</div><div class='add'>+    fun_l16_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n381()</div><div class='add'>+    fun_l16_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n382()</div><div class='add'>+    fun_l16_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n383()</div><div class='add'>+    fun_l16_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n384()</div><div class='add'>+    fun_l16_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n385()</div><div class='add'>+    fun_l16_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n386()</div><div class='add'>+    fun_l16_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n387()</div><div class='add'>+    fun_l16_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n388()</div><div class='add'>+    fun_l16_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n389()</div><div class='add'>+    fun_l16_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n390()</div><div class='add'>+    fun_l16_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n391()</div><div class='add'>+    fun_l16_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n392()</div><div class='add'>+    fun_l16_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n393()</div><div class='add'>+    fun_l16_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n394()</div><div class='add'>+    fun_l16_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n395()</div><div class='add'>+    fun_l16_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n396()</div><div class='add'>+    fun_l16_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n397()</div><div class='add'>+    fun_l16_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n398()</div><div class='add'>+    fun_l16_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n399()</div><div class='add'>+    fun_l16_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n400()</div><div class='add'>+    fun_l16_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n401()</div><div class='add'>+    fun_l16_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n402()</div><div class='add'>+    fun_l16_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n403()</div><div class='add'>+    fun_l16_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n404()</div><div class='add'>+    fun_l16_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n405()</div><div class='add'>+    fun_l16_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n406()</div><div class='add'>+    fun_l16_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n407()</div><div class='add'>+    fun_l16_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n408()</div><div class='add'>+    fun_l16_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n409()</div><div class='add'>+    fun_l16_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n410()</div><div class='add'>+    fun_l16_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n411()</div><div class='add'>+    fun_l16_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n412()</div><div class='add'>+    fun_l16_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n413()</div><div class='add'>+    fun_l16_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n414()</div><div class='add'>+    fun_l16_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n415()</div><div class='add'>+    fun_l16_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n416()</div><div class='add'>+    fun_l16_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n417()</div><div class='add'>+    fun_l16_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n418()</div><div class='add'>+    fun_l16_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n419()</div><div class='add'>+    fun_l16_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n420()</div><div class='add'>+    fun_l16_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n421()</div><div class='add'>+    fun_l16_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n422()</div><div class='add'>+    fun_l16_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n423()</div><div class='add'>+    fun_l16_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n424()</div><div class='add'>+    fun_l16_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n425()</div><div class='add'>+    fun_l16_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n426()</div><div class='add'>+    fun_l16_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n427()</div><div class='add'>+    fun_l16_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n428()</div><div class='add'>+    fun_l16_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n429()</div><div class='add'>+    fun_l16_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n430()</div><div class='add'>+    fun_l16_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n431()</div><div class='add'>+    fun_l16_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n432()</div><div class='add'>+    fun_l16_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n433()</div><div class='add'>+    fun_l16_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n434()</div><div class='add'>+    fun_l16_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n435()</div><div class='add'>+    fun_l16_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n436()</div><div class='add'>+    fun_l16_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n437()</div><div class='add'>+    fun_l16_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n438()</div><div class='add'>+    fun_l16_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n439()</div><div class='add'>+    fun_l16_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n440()</div><div class='add'>+    fun_l16_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n441()</div><div class='add'>+    fun_l16_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n442()</div><div class='add'>+    fun_l16_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n443()</div><div class='add'>+    fun_l16_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n444()</div><div class='add'>+    fun_l16_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n445()</div><div class='add'>+    fun_l16_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n446()</div><div class='add'>+    fun_l16_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n447()</div><div class='add'>+    fun_l16_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n448()</div><div class='add'>+    fun_l16_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n449()</div><div class='add'>+    fun_l16_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n450()</div><div class='add'>+    fun_l16_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n451()</div><div class='add'>+    fun_l16_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n452()</div><div class='add'>+    fun_l16_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n453()</div><div class='add'>+    fun_l16_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n454()</div><div class='add'>+    fun_l16_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n455()</div><div class='add'>+    fun_l16_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n456()</div><div class='add'>+    fun_l16_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n457()</div><div class='add'>+    fun_l16_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n458()</div><div class='add'>+    fun_l16_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n459()</div><div class='add'>+    fun_l16_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n460()</div><div class='add'>+    fun_l16_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n461()</div><div class='add'>+    fun_l16_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n462()</div><div class='add'>+    fun_l16_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n463()</div><div class='add'>+    fun_l16_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n464()</div><div class='add'>+    fun_l16_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n465()</div><div class='add'>+    fun_l16_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n466()</div><div class='add'>+    fun_l16_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n467()</div><div class='add'>+    fun_l16_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n468()</div><div class='add'>+    fun_l16_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n469()</div><div class='add'>+    fun_l16_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n470()</div><div class='add'>+    fun_l16_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n471()</div><div class='add'>+    fun_l16_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n472()</div><div class='add'>+    fun_l16_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n473()</div><div class='add'>+    fun_l16_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n474()</div><div class='add'>+    fun_l16_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n475()</div><div class='add'>+    fun_l16_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n476()</div><div class='add'>+    fun_l16_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n477()</div><div class='add'>+    fun_l16_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n478()</div><div class='add'>+    fun_l16_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n479()</div><div class='add'>+    fun_l16_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n480()</div><div class='add'>+    fun_l16_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n481()</div><div class='add'>+    fun_l16_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n482()</div><div class='add'>+    fun_l16_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n483()</div><div class='add'>+    fun_l16_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n484()</div><div class='add'>+    fun_l16_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n485()</div><div class='add'>+    fun_l16_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n486()</div><div class='add'>+    fun_l16_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n487()</div><div class='add'>+    fun_l16_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n488()</div><div class='add'>+    fun_l16_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n489()</div><div class='add'>+    fun_l16_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n490()</div><div class='add'>+    fun_l16_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n491()</div><div class='add'>+    fun_l16_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n492()</div><div class='add'>+    fun_l16_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n493()</div><div class='add'>+    fun_l16_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n494()</div><div class='add'>+    fun_l16_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n495()</div><div class='add'>+    fun_l16_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n496()</div><div class='add'>+    fun_l16_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n497()</div><div class='add'>+    fun_l16_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n498()</div><div class='add'>+    fun_l16_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n499()</div><div class='add'>+    fun_l16_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n500()</div><div class='add'>+    fun_l16_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n501()</div><div class='add'>+    fun_l16_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n502()</div><div class='add'>+    fun_l16_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n503()</div><div class='add'>+    fun_l16_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n504()</div><div class='add'>+    fun_l16_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n505()</div><div class='add'>+    fun_l16_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n506()</div><div class='add'>+    fun_l16_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n507()</div><div class='add'>+    fun_l16_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n508()</div><div class='add'>+    fun_l16_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n509()</div><div class='add'>+    fun_l16_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n510()</div><div class='add'>+    fun_l16_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n511()</div><div class='add'>+    fun_l16_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n512()</div><div class='add'>+    fun_l16_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n513()</div><div class='add'>+    fun_l16_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n514()</div><div class='add'>+    fun_l16_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n515()</div><div class='add'>+    fun_l16_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n516()</div><div class='add'>+    fun_l16_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n517()</div><div class='add'>+    fun_l16_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n518()</div><div class='add'>+    fun_l16_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n519()</div><div class='add'>+    fun_l16_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n520()</div><div class='add'>+    fun_l16_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n521()</div><div class='add'>+    fun_l16_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n522()</div><div class='add'>+    fun_l16_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n523()</div><div class='add'>+    fun_l16_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n524()</div><div class='add'>+    fun_l16_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n525()</div><div class='add'>+    fun_l16_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n526()</div><div class='add'>+    fun_l16_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n527()</div><div class='add'>+    fun_l16_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n528()</div><div class='add'>+    fun_l16_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n529()</div><div class='add'>+    fun_l16_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n530()</div><div class='add'>+    fun_l16_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n531()</div><div class='add'>+    fun_l16_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n532()</div><div class='add'>+    fun_l16_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n533()</div><div class='add'>+    fun_l16_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n534()</div><div class='add'>+    fun_l16_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n535()</div><div class='add'>+    fun_l16_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n536()</div><div class='add'>+    fun_l16_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n537()</div><div class='add'>+    fun_l16_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n538()</div><div class='add'>+    fun_l16_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n539()</div><div class='add'>+    fun_l16_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n540()</div><div class='add'>+    fun_l16_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n541()</div><div class='add'>+    fun_l16_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n542()</div><div class='add'>+    fun_l16_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n543()</div><div class='add'>+    fun_l16_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n544()</div><div class='add'>+    fun_l16_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n545()</div><div class='add'>+    fun_l16_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n546()</div><div class='add'>+    fun_l16_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n547()</div><div class='add'>+    fun_l16_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n548()</div><div class='add'>+    fun_l16_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n549()</div><div class='add'>+    fun_l16_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n550()</div><div class='add'>+    fun_l16_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n551()</div><div class='add'>+    fun_l16_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n552()</div><div class='add'>+    fun_l16_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n553()</div><div class='add'>+    fun_l16_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n554()</div><div class='add'>+    fun_l16_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n555()</div><div class='add'>+    fun_l16_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n556()</div><div class='add'>+    fun_l16_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n557()</div><div class='add'>+    fun_l16_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n558()</div><div class='add'>+    fun_l16_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n559()</div><div class='add'>+    fun_l16_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n560()</div><div class='add'>+    fun_l16_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n561()</div><div class='add'>+    fun_l16_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n562()</div><div class='add'>+    fun_l16_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n563()</div><div class='add'>+    fun_l16_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n564()</div><div class='add'>+    fun_l16_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n565()</div><div class='add'>+    fun_l16_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n566()</div><div class='add'>+    fun_l16_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n567()</div><div class='add'>+    fun_l16_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n568()</div><div class='add'>+    fun_l16_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n569()</div><div class='add'>+    fun_l16_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n570()</div><div class='add'>+    fun_l16_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n571()</div><div class='add'>+    fun_l16_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n572()</div><div class='add'>+    fun_l16_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n573()</div><div class='add'>+    fun_l16_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n574()</div><div class='add'>+    fun_l16_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n575()</div><div class='add'>+    fun_l16_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n576()</div><div class='add'>+    fun_l16_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n577()</div><div class='add'>+    fun_l16_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n578()</div><div class='add'>+    fun_l16_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n579()</div><div class='add'>+    fun_l16_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n580()</div><div class='add'>+    fun_l16_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n581()</div><div class='add'>+    fun_l16_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n582()</div><div class='add'>+    fun_l16_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n583()</div><div class='add'>+    fun_l16_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n584()</div><div class='add'>+    fun_l16_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n585()</div><div class='add'>+    fun_l16_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n586()</div><div class='add'>+    fun_l16_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n587()</div><div class='add'>+    fun_l16_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n588()</div><div class='add'>+    fun_l16_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n589()</div><div class='add'>+    fun_l16_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n590()</div><div class='add'>+    fun_l16_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n591()</div><div class='add'>+    fun_l16_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n592()</div><div class='add'>+    fun_l16_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n593()</div><div class='add'>+    fun_l16_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n594()</div><div class='add'>+    fun_l16_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n595()</div><div class='add'>+    fun_l16_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n596()</div><div class='add'>+    fun_l16_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n597()</div><div class='add'>+    fun_l16_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n598()</div><div class='add'>+    fun_l16_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n599()</div><div class='add'>+    fun_l16_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n600()</div><div class='add'>+    fun_l16_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n601()</div><div class='add'>+    fun_l16_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n602()</div><div class='add'>+    fun_l16_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n603()</div><div class='add'>+    fun_l16_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n604()</div><div class='add'>+    fun_l16_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n605()</div><div class='add'>+    fun_l16_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n606()</div><div class='add'>+    fun_l16_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n607()</div><div class='add'>+    fun_l16_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n608()</div><div class='add'>+    fun_l16_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n609()</div><div class='add'>+    fun_l16_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n610()</div><div class='add'>+    fun_l16_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n611()</div><div class='add'>+    fun_l16_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n612()</div><div class='add'>+    fun_l16_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n613()</div><div class='add'>+    fun_l16_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n614()</div><div class='add'>+    fun_l16_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n615()</div><div class='add'>+    fun_l16_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n616()</div><div class='add'>+    fun_l16_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n617()</div><div class='add'>+    fun_l16_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n618()</div><div class='add'>+    fun_l16_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n619()</div><div class='add'>+    fun_l16_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n620()</div><div class='add'>+    fun_l16_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n621()</div><div class='add'>+    fun_l16_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n622()</div><div class='add'>+    fun_l16_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n623()</div><div class='add'>+    fun_l16_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n624()</div><div class='add'>+    fun_l16_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n625()</div><div class='add'>+    fun_l16_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n626()</div><div class='add'>+    fun_l16_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n627()</div><div class='add'>+    fun_l16_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n628()</div><div class='add'>+    fun_l16_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n629()</div><div class='add'>+    fun_l16_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n630()</div><div class='add'>+    fun_l16_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n631()</div><div class='add'>+    fun_l16_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n632()</div><div class='add'>+    fun_l16_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n633()</div><div class='add'>+    fun_l16_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n634()</div><div class='add'>+    fun_l16_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n635()</div><div class='add'>+    fun_l16_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n636()</div><div class='add'>+    fun_l16_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n637()</div><div class='add'>+    fun_l16_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n638()</div><div class='add'>+    fun_l16_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n639()</div><div class='add'>+    fun_l16_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n640()</div><div class='add'>+    fun_l16_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n641()</div><div class='add'>+    fun_l16_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n642()</div><div class='add'>+    fun_l16_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n643()</div><div class='add'>+    fun_l16_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n644()</div><div class='add'>+    fun_l16_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n645()</div><div class='add'>+    fun_l16_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n646()</div><div class='add'>+    fun_l16_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n647()</div><div class='add'>+    fun_l16_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n648()</div><div class='add'>+    fun_l16_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n649()</div><div class='add'>+    fun_l16_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n650()</div><div class='add'>+    fun_l16_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n651()</div><div class='add'>+    fun_l16_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n652()</div><div class='add'>+    fun_l16_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n653()</div><div class='add'>+    fun_l16_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n654()</div><div class='add'>+    fun_l16_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n655()</div><div class='add'>+    fun_l16_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n656()</div><div class='add'>+    fun_l16_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n657()</div><div class='add'>+    fun_l16_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n658()</div><div class='add'>+    fun_l16_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n659()</div><div class='add'>+    fun_l16_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n660()</div><div class='add'>+    fun_l16_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n661()</div><div class='add'>+    fun_l16_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n662()</div><div class='add'>+    fun_l16_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n663()</div><div class='add'>+    fun_l16_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n664()</div><div class='add'>+    fun_l16_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n665()</div><div class='add'>+    fun_l16_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n666()</div><div class='add'>+    fun_l16_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n667()</div><div class='add'>+    fun_l16_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n668()</div><div class='add'>+    fun_l16_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n669()</div><div class='add'>+    fun_l16_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n670()</div><div class='add'>+    fun_l16_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n671()</div><div class='add'>+    fun_l16_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n672()</div><div class='add'>+    fun_l16_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n673()</div><div class='add'>+    fun_l16_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n674()</div><div class='add'>+    fun_l16_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n675()</div><div class='add'>+    fun_l16_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n676()</div><div class='add'>+    fun_l16_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n677()</div><div class='add'>+    fun_l16_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n678()</div><div class='add'>+    fun_l16_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n679()</div><div class='add'>+    fun_l16_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n680()</div><div class='add'>+    fun_l16_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n681()</div><div class='add'>+    fun_l16_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n682()</div><div class='add'>+    fun_l16_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n683()</div><div class='add'>+    fun_l16_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n684()</div><div class='add'>+    fun_l16_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n685()</div><div class='add'>+    fun_l16_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n686()</div><div class='add'>+    fun_l16_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n687()</div><div class='add'>+    fun_l16_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n688()</div><div class='add'>+    fun_l16_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n689()</div><div class='add'>+    fun_l16_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n690()</div><div class='add'>+    fun_l16_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n691()</div><div class='add'>+    fun_l16_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n692()</div><div class='add'>+    fun_l16_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n693()</div><div class='add'>+    fun_l16_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n694()</div><div class='add'>+    fun_l16_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n695()</div><div class='add'>+    fun_l16_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n696()</div><div class='add'>+    fun_l16_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n697()</div><div class='add'>+    fun_l16_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n698()</div><div class='add'>+    fun_l16_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n699()</div><div class='add'>+    fun_l16_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n700()</div><div class='add'>+    fun_l16_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n701()</div><div class='add'>+    fun_l16_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n702()</div><div class='add'>+    fun_l16_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n703()</div><div class='add'>+    fun_l16_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n704()</div><div class='add'>+    fun_l16_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n705()</div><div class='add'>+    fun_l16_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n706()</div><div class='add'>+    fun_l16_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n707()</div><div class='add'>+    fun_l16_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n708()</div><div class='add'>+    fun_l16_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n709()</div><div class='add'>+    fun_l16_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n710()</div><div class='add'>+    fun_l16_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n711()</div><div class='add'>+    fun_l16_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n712()</div><div class='add'>+    fun_l16_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n713()</div><div class='add'>+    fun_l16_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n714()</div><div class='add'>+    fun_l16_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n715()</div><div class='add'>+    fun_l16_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n716()</div><div class='add'>+    fun_l16_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n717()</div><div class='add'>+    fun_l16_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n718()</div><div class='add'>+    fun_l16_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n719()</div><div class='add'>+    fun_l16_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n720()</div><div class='add'>+    fun_l16_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n721()</div><div class='add'>+    fun_l16_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n722()</div><div class='add'>+    fun_l16_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n723()</div><div class='add'>+    fun_l16_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n724()</div><div class='add'>+    fun_l16_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n725()</div><div class='add'>+    fun_l16_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n726()</div><div class='add'>+    fun_l16_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n727()</div><div class='add'>+    fun_l16_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n728()</div><div class='add'>+    fun_l16_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n729()</div><div class='add'>+    fun_l16_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n730()</div><div class='add'>+    fun_l16_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n731()</div><div class='add'>+    fun_l16_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n732()</div><div class='add'>+    fun_l16_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n733()</div><div class='add'>+    fun_l16_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n734()</div><div class='add'>+    fun_l16_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n735()</div><div class='add'>+    fun_l16_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n736()</div><div class='add'>+    fun_l16_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n737()</div><div class='add'>+    fun_l16_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n738()</div><div class='add'>+    fun_l16_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n739()</div><div class='add'>+    fun_l16_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n740()</div><div class='add'>+    fun_l16_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n741()</div><div class='add'>+    fun_l16_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n742()</div><div class='add'>+    fun_l16_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n743()</div><div class='add'>+    fun_l16_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n744()</div><div class='add'>+    fun_l16_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n745()</div><div class='add'>+    fun_l16_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n746()</div><div class='add'>+    fun_l16_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n747()</div><div class='add'>+    fun_l16_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n748()</div><div class='add'>+    fun_l16_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n749()</div><div class='add'>+    fun_l16_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n750()</div><div class='add'>+    fun_l16_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n751()</div><div class='add'>+    fun_l16_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n752()</div><div class='add'>+    fun_l16_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n753()</div><div class='add'>+    fun_l16_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n754()</div><div class='add'>+    fun_l16_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n755()</div><div class='add'>+    fun_l16_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n756()</div><div class='add'>+    fun_l16_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n757()</div><div class='add'>+    fun_l16_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n758()</div><div class='add'>+    fun_l16_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n759()</div><div class='add'>+    fun_l16_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n760()</div><div class='add'>+    fun_l16_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n761()</div><div class='add'>+    fun_l16_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n762()</div><div class='add'>+    fun_l16_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n763()</div><div class='add'>+    fun_l16_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n764()</div><div class='add'>+    fun_l16_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n765()</div><div class='add'>+    fun_l16_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n766()</div><div class='add'>+    fun_l16_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n767()</div><div class='add'>+    fun_l16_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n768()</div><div class='add'>+    fun_l16_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n769()</div><div class='add'>+    fun_l16_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n770()</div><div class='add'>+    fun_l16_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n771()</div><div class='add'>+    fun_l16_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n772()</div><div class='add'>+    fun_l16_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n773()</div><div class='add'>+    fun_l16_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n774()</div><div class='add'>+    fun_l16_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n775()</div><div class='add'>+    fun_l16_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n776()</div><div class='add'>+    fun_l16_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n777()</div><div class='add'>+    fun_l16_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n778()</div><div class='add'>+    fun_l16_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n779()</div><div class='add'>+    fun_l16_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n780()</div><div class='add'>+    fun_l16_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n781()</div><div class='add'>+    fun_l16_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n782()</div><div class='add'>+    fun_l16_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n783()</div><div class='add'>+    fun_l16_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n784()</div><div class='add'>+    fun_l16_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n785()</div><div class='add'>+    fun_l16_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n786()</div><div class='add'>+    fun_l16_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n787()</div><div class='add'>+    fun_l16_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n788()</div><div class='add'>+    fun_l16_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n789()</div><div class='add'>+    fun_l16_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n790()</div><div class='add'>+    fun_l16_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n791()</div><div class='add'>+    fun_l16_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n792()</div><div class='add'>+    fun_l16_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n793()</div><div class='add'>+    fun_l16_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n794()</div><div class='add'>+    fun_l16_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n795()</div><div class='add'>+    fun_l16_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n796()</div><div class='add'>+    fun_l16_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n797()</div><div class='add'>+    fun_l16_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n798()</div><div class='add'>+    fun_l16_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n799()</div><div class='add'>+    fun_l16_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n800()</div><div class='add'>+    fun_l16_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n801()</div><div class='add'>+    fun_l16_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n802()</div><div class='add'>+    fun_l16_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n803()</div><div class='add'>+    fun_l16_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n804()</div><div class='add'>+    fun_l16_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n805()</div><div class='add'>+    fun_l16_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n806()</div><div class='add'>+    fun_l16_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n807()</div><div class='add'>+    fun_l16_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n808()</div><div class='add'>+    fun_l16_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n809()</div><div class='add'>+    fun_l16_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n810()</div><div class='add'>+    fun_l16_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n811()</div><div class='add'>+    fun_l16_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n812()</div><div class='add'>+    fun_l16_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n813()</div><div class='add'>+    fun_l16_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n814()</div><div class='add'>+    fun_l16_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n815()</div><div class='add'>+    fun_l16_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n816()</div><div class='add'>+    fun_l16_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n817()</div><div class='add'>+    fun_l16_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n818()</div><div class='add'>+    fun_l16_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n819()</div><div class='add'>+    fun_l16_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n820()</div><div class='add'>+    fun_l16_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n821()</div><div class='add'>+    fun_l16_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n822()</div><div class='add'>+    fun_l16_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n823()</div><div class='add'>+    fun_l16_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n824()</div><div class='add'>+    fun_l16_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n825()</div><div class='add'>+    fun_l16_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n826()</div><div class='add'>+    fun_l16_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n827()</div><div class='add'>+    fun_l16_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n828()</div><div class='add'>+    fun_l16_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n829()</div><div class='add'>+    fun_l16_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n830()</div><div class='add'>+    fun_l16_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n831()</div><div class='add'>+    fun_l16_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n832()</div><div class='add'>+    fun_l16_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n833()</div><div class='add'>+    fun_l16_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n834()</div><div class='add'>+    fun_l16_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n835()</div><div class='add'>+    fun_l16_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n836()</div><div class='add'>+    fun_l16_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n837()</div><div class='add'>+    fun_l16_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n838()</div><div class='add'>+    fun_l16_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n839()</div><div class='add'>+    fun_l16_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n840()</div><div class='add'>+    fun_l16_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n841()</div><div class='add'>+    fun_l16_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n842()</div><div class='add'>+    fun_l16_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n843()</div><div class='add'>+    fun_l16_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n844()</div><div class='add'>+    fun_l16_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n845()</div><div class='add'>+    fun_l16_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n846()</div><div class='add'>+    fun_l16_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n847()</div><div class='add'>+    fun_l16_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n848()</div><div class='add'>+    fun_l16_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n849()</div><div class='add'>+    fun_l16_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n850()</div><div class='add'>+    fun_l16_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n851()</div><div class='add'>+    fun_l16_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n852()</div><div class='add'>+    fun_l16_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n853()</div><div class='add'>+    fun_l16_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n854()</div><div class='add'>+    fun_l16_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n855()</div><div class='add'>+    fun_l16_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n856()</div><div class='add'>+    fun_l16_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n857()</div><div class='add'>+    fun_l16_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n858()</div><div class='add'>+    fun_l16_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n859()</div><div class='add'>+    fun_l16_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n860()</div><div class='add'>+    fun_l16_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n861()</div><div class='add'>+    fun_l16_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n862()</div><div class='add'>+    fun_l16_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n863()</div><div class='add'>+    fun_l16_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n864()</div><div class='add'>+    fun_l16_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n865()</div><div class='add'>+    fun_l16_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n866()</div><div class='add'>+    fun_l16_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n867()</div><div class='add'>+    fun_l16_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n868()</div><div class='add'>+    fun_l16_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n869()</div><div class='add'>+    fun_l16_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n870()</div><div class='add'>+    fun_l16_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n871()</div><div class='add'>+    fun_l16_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n872()</div><div class='add'>+    fun_l16_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n873()</div><div class='add'>+    fun_l16_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n874()</div><div class='add'>+    fun_l16_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n875()</div><div class='add'>+    fun_l16_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n876()</div><div class='add'>+    fun_l16_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n877()</div><div class='add'>+    fun_l16_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n878()</div><div class='add'>+    fun_l16_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n879()</div><div class='add'>+    fun_l16_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n880()</div><div class='add'>+    fun_l16_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n881()</div><div class='add'>+    fun_l16_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n882()</div><div class='add'>+    fun_l16_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n883()</div><div class='add'>+    fun_l16_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n884()</div><div class='add'>+    fun_l16_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n885()</div><div class='add'>+    fun_l16_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n886()</div><div class='add'>+    fun_l16_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n887()</div><div class='add'>+    fun_l16_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n888()</div><div class='add'>+    fun_l16_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n889()</div><div class='add'>+    fun_l16_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n890()</div><div class='add'>+    fun_l16_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n891()</div><div class='add'>+    fun_l16_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n892()</div><div class='add'>+    fun_l16_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n893()</div><div class='add'>+    fun_l16_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n894()</div><div class='add'>+    fun_l16_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n895()</div><div class='add'>+    fun_l16_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n896()</div><div class='add'>+    fun_l16_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n897()</div><div class='add'>+    fun_l16_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n898()</div><div class='add'>+    fun_l16_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n899()</div><div class='add'>+    fun_l16_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n900()</div><div class='add'>+    fun_l16_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n901()</div><div class='add'>+    fun_l16_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n902()</div><div class='add'>+    fun_l16_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n903()</div><div class='add'>+    fun_l16_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n904()</div><div class='add'>+    fun_l16_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n905()</div><div class='add'>+    fun_l16_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n906()</div><div class='add'>+    fun_l16_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n907()</div><div class='add'>+    fun_l16_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n908()</div><div class='add'>+    fun_l16_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n909()</div><div class='add'>+    fun_l16_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n910()</div><div class='add'>+    fun_l16_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n911()</div><div class='add'>+    fun_l16_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n912()</div><div class='add'>+    fun_l16_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n913()</div><div class='add'>+    fun_l16_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n914()</div><div class='add'>+    fun_l16_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n915()</div><div class='add'>+    fun_l16_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n916()</div><div class='add'>+    fun_l16_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n917()</div><div class='add'>+    fun_l16_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n918()</div><div class='add'>+    fun_l16_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n919()</div><div class='add'>+    fun_l16_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n920()</div><div class='add'>+    fun_l16_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n921()</div><div class='add'>+    fun_l16_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n922()</div><div class='add'>+    fun_l16_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n923()</div><div class='add'>+    fun_l16_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n924()</div><div class='add'>+    fun_l16_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n925()</div><div class='add'>+    fun_l16_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n926()</div><div class='add'>+    fun_l16_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n927()</div><div class='add'>+    fun_l16_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n928()</div><div class='add'>+    fun_l16_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n929()</div><div class='add'>+    fun_l16_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n930()</div><div class='add'>+    fun_l16_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n931()</div><div class='add'>+    fun_l16_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n932()</div><div class='add'>+    fun_l16_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n933()</div><div class='add'>+    fun_l16_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n934()</div><div class='add'>+    fun_l16_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n935()</div><div class='add'>+    fun_l16_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n936()</div><div class='add'>+    fun_l16_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n937()</div><div class='add'>+    fun_l16_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n938()</div><div class='add'>+    fun_l16_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n939()</div><div class='add'>+    fun_l16_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n940()</div><div class='add'>+    fun_l16_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n941()</div><div class='add'>+    fun_l16_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n942()</div><div class='add'>+    fun_l16_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n943()</div><div class='add'>+    fun_l16_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n944()</div><div class='add'>+    fun_l16_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n945()</div><div class='add'>+    fun_l16_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n946()</div><div class='add'>+    fun_l16_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n947()</div><div class='add'>+    fun_l16_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n948()</div><div class='add'>+    fun_l16_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n949()</div><div class='add'>+    fun_l16_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n950()</div><div class='add'>+    fun_l16_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n951()</div><div class='add'>+    fun_l16_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n952()</div><div class='add'>+    fun_l16_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n953()</div><div class='add'>+    fun_l16_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n954()</div><div class='add'>+    fun_l16_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n955()</div><div class='add'>+    fun_l16_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n956()</div><div class='add'>+    fun_l16_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n957()</div><div class='add'>+    fun_l16_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n958()</div><div class='add'>+    fun_l16_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n959()</div><div class='add'>+    fun_l16_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n960()</div><div class='add'>+    fun_l16_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n961()</div><div class='add'>+    fun_l16_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n962()</div><div class='add'>+    fun_l16_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n963()</div><div class='add'>+    fun_l16_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n964()</div><div class='add'>+    fun_l16_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n965()</div><div class='add'>+    fun_l16_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n966()</div><div class='add'>+    fun_l16_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n967()</div><div class='add'>+    fun_l16_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n968()</div><div class='add'>+    fun_l16_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n969()</div><div class='add'>+    fun_l16_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n970()</div><div class='add'>+    fun_l16_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n971()</div><div class='add'>+    fun_l16_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n972()</div><div class='add'>+    fun_l16_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n973()</div><div class='add'>+    fun_l16_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n974()</div><div class='add'>+    fun_l16_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n975()</div><div class='add'>+    fun_l16_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n976()</div><div class='add'>+    fun_l16_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n977()</div><div class='add'>+    fun_l16_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n978()</div><div class='add'>+    fun_l16_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n979()</div><div class='add'>+    fun_l16_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n980()</div><div class='add'>+    fun_l16_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n981()</div><div class='add'>+    fun_l16_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n982()</div><div class='add'>+    fun_l16_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n983()</div><div class='add'>+    fun_l16_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n984()</div><div class='add'>+    fun_l16_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n985()</div><div class='add'>+    fun_l16_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n986()</div><div class='add'>+    fun_l16_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n987()</div><div class='add'>+    fun_l16_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n988()</div><div class='add'>+    fun_l16_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n989()</div><div class='add'>+    fun_l16_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n990()</div><div class='add'>+    fun_l16_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n991()</div><div class='add'>+    fun_l16_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n992()</div><div class='add'>+    fun_l16_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n993()</div><div class='add'>+    fun_l16_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n994()</div><div class='add'>+    fun_l16_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n995()</div><div class='add'>+    fun_l16_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n996()</div><div class='add'>+    fun_l16_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n997()</div><div class='add'>+    fun_l16_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n998()</div><div class='add'>+    fun_l16_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l15_n999()</div><div class='add'>+    fun_l16_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n0()</div><div class='add'>+    fun_l17_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n1()</div><div class='add'>+    fun_l17_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n2()</div><div class='add'>+    fun_l17_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n3()</div><div class='add'>+    fun_l17_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n4()</div><div class='add'>+    fun_l17_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n5()</div><div class='add'>+    fun_l17_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n6()</div><div class='add'>+    fun_l17_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n7()</div><div class='add'>+    fun_l17_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n8()</div><div class='add'>+    fun_l17_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n9()</div><div class='add'>+    fun_l17_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n10()</div><div class='add'>+    fun_l17_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n11()</div><div class='add'>+    fun_l17_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n12()</div><div class='add'>+    fun_l17_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n13()</div><div class='add'>+    fun_l17_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n14()</div><div class='add'>+    fun_l17_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n15()</div><div class='add'>+    fun_l17_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n16()</div><div class='add'>+    fun_l17_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n17()</div><div class='add'>+    fun_l17_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n18()</div><div class='add'>+    fun_l17_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n19()</div><div class='add'>+    fun_l17_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n20()</div><div class='add'>+    fun_l17_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n21()</div><div class='add'>+    fun_l17_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n22()</div><div class='add'>+    fun_l17_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n23()</div><div class='add'>+    fun_l17_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n24()</div><div class='add'>+    fun_l17_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n25()</div><div class='add'>+    fun_l17_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n26()</div><div class='add'>+    fun_l17_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n27()</div><div class='add'>+    fun_l17_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n28()</div><div class='add'>+    fun_l17_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n29()</div><div class='add'>+    fun_l17_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n30()</div><div class='add'>+    fun_l17_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n31()</div><div class='add'>+    fun_l17_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n32()</div><div class='add'>+    fun_l17_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n33()</div><div class='add'>+    fun_l17_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n34()</div><div class='add'>+    fun_l17_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n35()</div><div class='add'>+    fun_l17_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n36()</div><div class='add'>+    fun_l17_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n37()</div><div class='add'>+    fun_l17_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n38()</div><div class='add'>+    fun_l17_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n39()</div><div class='add'>+    fun_l17_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n40()</div><div class='add'>+    fun_l17_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n41()</div><div class='add'>+    fun_l17_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n42()</div><div class='add'>+    fun_l17_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n43()</div><div class='add'>+    fun_l17_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n44()</div><div class='add'>+    fun_l17_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n45()</div><div class='add'>+    fun_l17_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n46()</div><div class='add'>+    fun_l17_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n47()</div><div class='add'>+    fun_l17_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n48()</div><div class='add'>+    fun_l17_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n49()</div><div class='add'>+    fun_l17_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n50()</div><div class='add'>+    fun_l17_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n51()</div><div class='add'>+    fun_l17_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n52()</div><div class='add'>+    fun_l17_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n53()</div><div class='add'>+    fun_l17_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n54()</div><div class='add'>+    fun_l17_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n55()</div><div class='add'>+    fun_l17_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n56()</div><div class='add'>+    fun_l17_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n57()</div><div class='add'>+    fun_l17_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n58()</div><div class='add'>+    fun_l17_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n59()</div><div class='add'>+    fun_l17_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n60()</div><div class='add'>+    fun_l17_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n61()</div><div class='add'>+    fun_l17_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n62()</div><div class='add'>+    fun_l17_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n63()</div><div class='add'>+    fun_l17_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n64()</div><div class='add'>+    fun_l17_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n65()</div><div class='add'>+    fun_l17_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n66()</div><div class='add'>+    fun_l17_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n67()</div><div class='add'>+    fun_l17_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n68()</div><div class='add'>+    fun_l17_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n69()</div><div class='add'>+    fun_l17_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n70()</div><div class='add'>+    fun_l17_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n71()</div><div class='add'>+    fun_l17_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n72()</div><div class='add'>+    fun_l17_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n73()</div><div class='add'>+    fun_l17_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n74()</div><div class='add'>+    fun_l17_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n75()</div><div class='add'>+    fun_l17_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n76()</div><div class='add'>+    fun_l17_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n77()</div><div class='add'>+    fun_l17_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n78()</div><div class='add'>+    fun_l17_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n79()</div><div class='add'>+    fun_l17_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n80()</div><div class='add'>+    fun_l17_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n81()</div><div class='add'>+    fun_l17_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n82()</div><div class='add'>+    fun_l17_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n83()</div><div class='add'>+    fun_l17_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n84()</div><div class='add'>+    fun_l17_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n85()</div><div class='add'>+    fun_l17_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n86()</div><div class='add'>+    fun_l17_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n87()</div><div class='add'>+    fun_l17_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n88()</div><div class='add'>+    fun_l17_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n89()</div><div class='add'>+    fun_l17_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n90()</div><div class='add'>+    fun_l17_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n91()</div><div class='add'>+    fun_l17_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n92()</div><div class='add'>+    fun_l17_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n93()</div><div class='add'>+    fun_l17_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n94()</div><div class='add'>+    fun_l17_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n95()</div><div class='add'>+    fun_l17_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n96()</div><div class='add'>+    fun_l17_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n97()</div><div class='add'>+    fun_l17_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n98()</div><div class='add'>+    fun_l17_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n99()</div><div class='add'>+    fun_l17_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n100()</div><div class='add'>+    fun_l17_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n101()</div><div class='add'>+    fun_l17_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n102()</div><div class='add'>+    fun_l17_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n103()</div><div class='add'>+    fun_l17_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n104()</div><div class='add'>+    fun_l17_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n105()</div><div class='add'>+    fun_l17_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n106()</div><div class='add'>+    fun_l17_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n107()</div><div class='add'>+    fun_l17_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n108()</div><div class='add'>+    fun_l17_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n109()</div><div class='add'>+    fun_l17_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n110()</div><div class='add'>+    fun_l17_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n111()</div><div class='add'>+    fun_l17_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n112()</div><div class='add'>+    fun_l17_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n113()</div><div class='add'>+    fun_l17_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n114()</div><div class='add'>+    fun_l17_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n115()</div><div class='add'>+    fun_l17_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n116()</div><div class='add'>+    fun_l17_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n117()</div><div class='add'>+    fun_l17_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n118()</div><div class='add'>+    fun_l17_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n119()</div><div class='add'>+    fun_l17_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n120()</div><div class='add'>+    fun_l17_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n121()</div><div class='add'>+    fun_l17_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n122()</div><div class='add'>+    fun_l17_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n123()</div><div class='add'>+    fun_l17_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n124()</div><div class='add'>+    fun_l17_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n125()</div><div class='add'>+    fun_l17_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n126()</div><div class='add'>+    fun_l17_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n127()</div><div class='add'>+    fun_l17_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n128()</div><div class='add'>+    fun_l17_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n129()</div><div class='add'>+    fun_l17_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n130()</div><div class='add'>+    fun_l17_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n131()</div><div class='add'>+    fun_l17_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n132()</div><div class='add'>+    fun_l17_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n133()</div><div class='add'>+    fun_l17_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n134()</div><div class='add'>+    fun_l17_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n135()</div><div class='add'>+    fun_l17_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n136()</div><div class='add'>+    fun_l17_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n137()</div><div class='add'>+    fun_l17_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n138()</div><div class='add'>+    fun_l17_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n139()</div><div class='add'>+    fun_l17_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n140()</div><div class='add'>+    fun_l17_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n141()</div><div class='add'>+    fun_l17_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n142()</div><div class='add'>+    fun_l17_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n143()</div><div class='add'>+    fun_l17_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n144()</div><div class='add'>+    fun_l17_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n145()</div><div class='add'>+    fun_l17_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n146()</div><div class='add'>+    fun_l17_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n147()</div><div class='add'>+    fun_l17_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n148()</div><div class='add'>+    fun_l17_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n149()</div><div class='add'>+    fun_l17_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n150()</div><div class='add'>+    fun_l17_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n151()</div><div class='add'>+    fun_l17_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n152()</div><div class='add'>+    fun_l17_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n153()</div><div class='add'>+    fun_l17_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n154()</div><div class='add'>+    fun_l17_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n155()</div><div class='add'>+    fun_l17_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n156()</div><div class='add'>+    fun_l17_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n157()</div><div class='add'>+    fun_l17_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n158()</div><div class='add'>+    fun_l17_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n159()</div><div class='add'>+    fun_l17_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n160()</div><div class='add'>+    fun_l17_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n161()</div><div class='add'>+    fun_l17_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n162()</div><div class='add'>+    fun_l17_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n163()</div><div class='add'>+    fun_l17_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n164()</div><div class='add'>+    fun_l17_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n165()</div><div class='add'>+    fun_l17_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n166()</div><div class='add'>+    fun_l17_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n167()</div><div class='add'>+    fun_l17_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n168()</div><div class='add'>+    fun_l17_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n169()</div><div class='add'>+    fun_l17_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n170()</div><div class='add'>+    fun_l17_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n171()</div><div class='add'>+    fun_l17_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n172()</div><div class='add'>+    fun_l17_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n173()</div><div class='add'>+    fun_l17_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n174()</div><div class='add'>+    fun_l17_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n175()</div><div class='add'>+    fun_l17_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n176()</div><div class='add'>+    fun_l17_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n177()</div><div class='add'>+    fun_l17_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n178()</div><div class='add'>+    fun_l17_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n179()</div><div class='add'>+    fun_l17_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n180()</div><div class='add'>+    fun_l17_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n181()</div><div class='add'>+    fun_l17_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n182()</div><div class='add'>+    fun_l17_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n183()</div><div class='add'>+    fun_l17_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n184()</div><div class='add'>+    fun_l17_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n185()</div><div class='add'>+    fun_l17_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n186()</div><div class='add'>+    fun_l17_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n187()</div><div class='add'>+    fun_l17_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n188()</div><div class='add'>+    fun_l17_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n189()</div><div class='add'>+    fun_l17_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n190()</div><div class='add'>+    fun_l17_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n191()</div><div class='add'>+    fun_l17_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n192()</div><div class='add'>+    fun_l17_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n193()</div><div class='add'>+    fun_l17_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n194()</div><div class='add'>+    fun_l17_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n195()</div><div class='add'>+    fun_l17_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n196()</div><div class='add'>+    fun_l17_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n197()</div><div class='add'>+    fun_l17_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n198()</div><div class='add'>+    fun_l17_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n199()</div><div class='add'>+    fun_l17_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n200()</div><div class='add'>+    fun_l17_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n201()</div><div class='add'>+    fun_l17_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n202()</div><div class='add'>+    fun_l17_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n203()</div><div class='add'>+    fun_l17_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n204()</div><div class='add'>+    fun_l17_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n205()</div><div class='add'>+    fun_l17_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n206()</div><div class='add'>+    fun_l17_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n207()</div><div class='add'>+    fun_l17_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n208()</div><div class='add'>+    fun_l17_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n209()</div><div class='add'>+    fun_l17_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n210()</div><div class='add'>+    fun_l17_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n211()</div><div class='add'>+    fun_l17_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n212()</div><div class='add'>+    fun_l17_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n213()</div><div class='add'>+    fun_l17_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n214()</div><div class='add'>+    fun_l17_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n215()</div><div class='add'>+    fun_l17_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n216()</div><div class='add'>+    fun_l17_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n217()</div><div class='add'>+    fun_l17_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n218()</div><div class='add'>+    fun_l17_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n219()</div><div class='add'>+    fun_l17_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n220()</div><div class='add'>+    fun_l17_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n221()</div><div class='add'>+    fun_l17_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n222()</div><div class='add'>+    fun_l17_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n223()</div><div class='add'>+    fun_l17_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n224()</div><div class='add'>+    fun_l17_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n225()</div><div class='add'>+    fun_l17_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n226()</div><div class='add'>+    fun_l17_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n227()</div><div class='add'>+    fun_l17_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n228()</div><div class='add'>+    fun_l17_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n229()</div><div class='add'>+    fun_l17_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n230()</div><div class='add'>+    fun_l17_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n231()</div><div class='add'>+    fun_l17_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n232()</div><div class='add'>+    fun_l17_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n233()</div><div class='add'>+    fun_l17_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n234()</div><div class='add'>+    fun_l17_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n235()</div><div class='add'>+    fun_l17_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n236()</div><div class='add'>+    fun_l17_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n237()</div><div class='add'>+    fun_l17_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n238()</div><div class='add'>+    fun_l17_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n239()</div><div class='add'>+    fun_l17_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n240()</div><div class='add'>+    fun_l17_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n241()</div><div class='add'>+    fun_l17_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n242()</div><div class='add'>+    fun_l17_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n243()</div><div class='add'>+    fun_l17_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n244()</div><div class='add'>+    fun_l17_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n245()</div><div class='add'>+    fun_l17_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n246()</div><div class='add'>+    fun_l17_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n247()</div><div class='add'>+    fun_l17_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n248()</div><div class='add'>+    fun_l17_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n249()</div><div class='add'>+    fun_l17_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n250()</div><div class='add'>+    fun_l17_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n251()</div><div class='add'>+    fun_l17_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n252()</div><div class='add'>+    fun_l17_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n253()</div><div class='add'>+    fun_l17_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n254()</div><div class='add'>+    fun_l17_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n255()</div><div class='add'>+    fun_l17_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n256()</div><div class='add'>+    fun_l17_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n257()</div><div class='add'>+    fun_l17_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n258()</div><div class='add'>+    fun_l17_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n259()</div><div class='add'>+    fun_l17_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n260()</div><div class='add'>+    fun_l17_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n261()</div><div class='add'>+    fun_l17_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n262()</div><div class='add'>+    fun_l17_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n263()</div><div class='add'>+    fun_l17_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n264()</div><div class='add'>+    fun_l17_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n265()</div><div class='add'>+    fun_l17_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n266()</div><div class='add'>+    fun_l17_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n267()</div><div class='add'>+    fun_l17_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n268()</div><div class='add'>+    fun_l17_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n269()</div><div class='add'>+    fun_l17_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n270()</div><div class='add'>+    fun_l17_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n271()</div><div class='add'>+    fun_l17_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n272()</div><div class='add'>+    fun_l17_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n273()</div><div class='add'>+    fun_l17_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n274()</div><div class='add'>+    fun_l17_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n275()</div><div class='add'>+    fun_l17_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n276()</div><div class='add'>+    fun_l17_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n277()</div><div class='add'>+    fun_l17_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n278()</div><div class='add'>+    fun_l17_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n279()</div><div class='add'>+    fun_l17_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n280()</div><div class='add'>+    fun_l17_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n281()</div><div class='add'>+    fun_l17_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n282()</div><div class='add'>+    fun_l17_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n283()</div><div class='add'>+    fun_l17_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n284()</div><div class='add'>+    fun_l17_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n285()</div><div class='add'>+    fun_l17_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n286()</div><div class='add'>+    fun_l17_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n287()</div><div class='add'>+    fun_l17_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n288()</div><div class='add'>+    fun_l17_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n289()</div><div class='add'>+    fun_l17_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n290()</div><div class='add'>+    fun_l17_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n291()</div><div class='add'>+    fun_l17_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n292()</div><div class='add'>+    fun_l17_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n293()</div><div class='add'>+    fun_l17_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n294()</div><div class='add'>+    fun_l17_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n295()</div><div class='add'>+    fun_l17_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n296()</div><div class='add'>+    fun_l17_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n297()</div><div class='add'>+    fun_l17_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n298()</div><div class='add'>+    fun_l17_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n299()</div><div class='add'>+    fun_l17_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n300()</div><div class='add'>+    fun_l17_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n301()</div><div class='add'>+    fun_l17_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n302()</div><div class='add'>+    fun_l17_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n303()</div><div class='add'>+    fun_l17_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n304()</div><div class='add'>+    fun_l17_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n305()</div><div class='add'>+    fun_l17_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n306()</div><div class='add'>+    fun_l17_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n307()</div><div class='add'>+    fun_l17_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n308()</div><div class='add'>+    fun_l17_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n309()</div><div class='add'>+    fun_l17_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n310()</div><div class='add'>+    fun_l17_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n311()</div><div class='add'>+    fun_l17_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n312()</div><div class='add'>+    fun_l17_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n313()</div><div class='add'>+    fun_l17_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n314()</div><div class='add'>+    fun_l17_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n315()</div><div class='add'>+    fun_l17_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n316()</div><div class='add'>+    fun_l17_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n317()</div><div class='add'>+    fun_l17_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n318()</div><div class='add'>+    fun_l17_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n319()</div><div class='add'>+    fun_l17_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n320()</div><div class='add'>+    fun_l17_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n321()</div><div class='add'>+    fun_l17_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n322()</div><div class='add'>+    fun_l17_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n323()</div><div class='add'>+    fun_l17_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n324()</div><div class='add'>+    fun_l17_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n325()</div><div class='add'>+    fun_l17_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n326()</div><div class='add'>+    fun_l17_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n327()</div><div class='add'>+    fun_l17_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n328()</div><div class='add'>+    fun_l17_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n329()</div><div class='add'>+    fun_l17_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n330()</div><div class='add'>+    fun_l17_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n331()</div><div class='add'>+    fun_l17_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n332()</div><div class='add'>+    fun_l17_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n333()</div><div class='add'>+    fun_l17_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n334()</div><div class='add'>+    fun_l17_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n335()</div><div class='add'>+    fun_l17_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n336()</div><div class='add'>+    fun_l17_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n337()</div><div class='add'>+    fun_l17_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n338()</div><div class='add'>+    fun_l17_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n339()</div><div class='add'>+    fun_l17_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n340()</div><div class='add'>+    fun_l17_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n341()</div><div class='add'>+    fun_l17_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n342()</div><div class='add'>+    fun_l17_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n343()</div><div class='add'>+    fun_l17_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n344()</div><div class='add'>+    fun_l17_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n345()</div><div class='add'>+    fun_l17_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n346()</div><div class='add'>+    fun_l17_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n347()</div><div class='add'>+    fun_l17_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n348()</div><div class='add'>+    fun_l17_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n349()</div><div class='add'>+    fun_l17_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n350()</div><div class='add'>+    fun_l17_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n351()</div><div class='add'>+    fun_l17_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n352()</div><div class='add'>+    fun_l17_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n353()</div><div class='add'>+    fun_l17_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n354()</div><div class='add'>+    fun_l17_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n355()</div><div class='add'>+    fun_l17_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n356()</div><div class='add'>+    fun_l17_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n357()</div><div class='add'>+    fun_l17_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n358()</div><div class='add'>+    fun_l17_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n359()</div><div class='add'>+    fun_l17_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n360()</div><div class='add'>+    fun_l17_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n361()</div><div class='add'>+    fun_l17_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n362()</div><div class='add'>+    fun_l17_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n363()</div><div class='add'>+    fun_l17_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n364()</div><div class='add'>+    fun_l17_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n365()</div><div class='add'>+    fun_l17_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n366()</div><div class='add'>+    fun_l17_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n367()</div><div class='add'>+    fun_l17_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n368()</div><div class='add'>+    fun_l17_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n369()</div><div class='add'>+    fun_l17_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n370()</div><div class='add'>+    fun_l17_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n371()</div><div class='add'>+    fun_l17_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n372()</div><div class='add'>+    fun_l17_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n373()</div><div class='add'>+    fun_l17_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n374()</div><div class='add'>+    fun_l17_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n375()</div><div class='add'>+    fun_l17_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n376()</div><div class='add'>+    fun_l17_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n377()</div><div class='add'>+    fun_l17_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n378()</div><div class='add'>+    fun_l17_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n379()</div><div class='add'>+    fun_l17_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n380()</div><div class='add'>+    fun_l17_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n381()</div><div class='add'>+    fun_l17_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n382()</div><div class='add'>+    fun_l17_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n383()</div><div class='add'>+    fun_l17_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n384()</div><div class='add'>+    fun_l17_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n385()</div><div class='add'>+    fun_l17_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n386()</div><div class='add'>+    fun_l17_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n387()</div><div class='add'>+    fun_l17_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n388()</div><div class='add'>+    fun_l17_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n389()</div><div class='add'>+    fun_l17_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n390()</div><div class='add'>+    fun_l17_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n391()</div><div class='add'>+    fun_l17_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n392()</div><div class='add'>+    fun_l17_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n393()</div><div class='add'>+    fun_l17_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n394()</div><div class='add'>+    fun_l17_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n395()</div><div class='add'>+    fun_l17_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n396()</div><div class='add'>+    fun_l17_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n397()</div><div class='add'>+    fun_l17_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n398()</div><div class='add'>+    fun_l17_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n399()</div><div class='add'>+    fun_l17_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n400()</div><div class='add'>+    fun_l17_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n401()</div><div class='add'>+    fun_l17_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n402()</div><div class='add'>+    fun_l17_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n403()</div><div class='add'>+    fun_l17_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n404()</div><div class='add'>+    fun_l17_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n405()</div><div class='add'>+    fun_l17_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n406()</div><div class='add'>+    fun_l17_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n407()</div><div class='add'>+    fun_l17_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n408()</div><div class='add'>+    fun_l17_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n409()</div><div class='add'>+    fun_l17_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n410()</div><div class='add'>+    fun_l17_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n411()</div><div class='add'>+    fun_l17_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n412()</div><div class='add'>+    fun_l17_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n413()</div><div class='add'>+    fun_l17_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n414()</div><div class='add'>+    fun_l17_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n415()</div><div class='add'>+    fun_l17_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n416()</div><div class='add'>+    fun_l17_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n417()</div><div class='add'>+    fun_l17_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n418()</div><div class='add'>+    fun_l17_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n419()</div><div class='add'>+    fun_l17_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n420()</div><div class='add'>+    fun_l17_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n421()</div><div class='add'>+    fun_l17_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n422()</div><div class='add'>+    fun_l17_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n423()</div><div class='add'>+    fun_l17_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n424()</div><div class='add'>+    fun_l17_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n425()</div><div class='add'>+    fun_l17_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n426()</div><div class='add'>+    fun_l17_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n427()</div><div class='add'>+    fun_l17_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n428()</div><div class='add'>+    fun_l17_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n429()</div><div class='add'>+    fun_l17_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n430()</div><div class='add'>+    fun_l17_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n431()</div><div class='add'>+    fun_l17_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n432()</div><div class='add'>+    fun_l17_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n433()</div><div class='add'>+    fun_l17_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n434()</div><div class='add'>+    fun_l17_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n435()</div><div class='add'>+    fun_l17_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n436()</div><div class='add'>+    fun_l17_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n437()</div><div class='add'>+    fun_l17_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n438()</div><div class='add'>+    fun_l17_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n439()</div><div class='add'>+    fun_l17_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n440()</div><div class='add'>+    fun_l17_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n441()</div><div class='add'>+    fun_l17_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n442()</div><div class='add'>+    fun_l17_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n443()</div><div class='add'>+    fun_l17_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n444()</div><div class='add'>+    fun_l17_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n445()</div><div class='add'>+    fun_l17_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n446()</div><div class='add'>+    fun_l17_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n447()</div><div class='add'>+    fun_l17_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n448()</div><div class='add'>+    fun_l17_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n449()</div><div class='add'>+    fun_l17_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n450()</div><div class='add'>+    fun_l17_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n451()</div><div class='add'>+    fun_l17_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n452()</div><div class='add'>+    fun_l17_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n453()</div><div class='add'>+    fun_l17_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n454()</div><div class='add'>+    fun_l17_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n455()</div><div class='add'>+    fun_l17_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n456()</div><div class='add'>+    fun_l17_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n457()</div><div class='add'>+    fun_l17_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n458()</div><div class='add'>+    fun_l17_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n459()</div><div class='add'>+    fun_l17_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n460()</div><div class='add'>+    fun_l17_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n461()</div><div class='add'>+    fun_l17_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n462()</div><div class='add'>+    fun_l17_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n463()</div><div class='add'>+    fun_l17_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n464()</div><div class='add'>+    fun_l17_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n465()</div><div class='add'>+    fun_l17_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n466()</div><div class='add'>+    fun_l17_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n467()</div><div class='add'>+    fun_l17_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n468()</div><div class='add'>+    fun_l17_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n469()</div><div class='add'>+    fun_l17_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n470()</div><div class='add'>+    fun_l17_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n471()</div><div class='add'>+    fun_l17_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n472()</div><div class='add'>+    fun_l17_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n473()</div><div class='add'>+    fun_l17_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n474()</div><div class='add'>+    fun_l17_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n475()</div><div class='add'>+    fun_l17_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n476()</div><div class='add'>+    fun_l17_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n477()</div><div class='add'>+    fun_l17_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n478()</div><div class='add'>+    fun_l17_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n479()</div><div class='add'>+    fun_l17_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n480()</div><div class='add'>+    fun_l17_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n481()</div><div class='add'>+    fun_l17_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n482()</div><div class='add'>+    fun_l17_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n483()</div><div class='add'>+    fun_l17_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n484()</div><div class='add'>+    fun_l17_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n485()</div><div class='add'>+    fun_l17_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n486()</div><div class='add'>+    fun_l17_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n487()</div><div class='add'>+    fun_l17_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n488()</div><div class='add'>+    fun_l17_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n489()</div><div class='add'>+    fun_l17_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n490()</div><div class='add'>+    fun_l17_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n491()</div><div class='add'>+    fun_l17_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n492()</div><div class='add'>+    fun_l17_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n493()</div><div class='add'>+    fun_l17_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n494()</div><div class='add'>+    fun_l17_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n495()</div><div class='add'>+    fun_l17_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n496()</div><div class='add'>+    fun_l17_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n497()</div><div class='add'>+    fun_l17_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n498()</div><div class='add'>+    fun_l17_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n499()</div><div class='add'>+    fun_l17_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n500()</div><div class='add'>+    fun_l17_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n501()</div><div class='add'>+    fun_l17_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n502()</div><div class='add'>+    fun_l17_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n503()</div><div class='add'>+    fun_l17_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n504()</div><div class='add'>+    fun_l17_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n505()</div><div class='add'>+    fun_l17_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n506()</div><div class='add'>+    fun_l17_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n507()</div><div class='add'>+    fun_l17_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n508()</div><div class='add'>+    fun_l17_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n509()</div><div class='add'>+    fun_l17_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n510()</div><div class='add'>+    fun_l17_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n511()</div><div class='add'>+    fun_l17_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n512()</div><div class='add'>+    fun_l17_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n513()</div><div class='add'>+    fun_l17_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n514()</div><div class='add'>+    fun_l17_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n515()</div><div class='add'>+    fun_l17_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n516()</div><div class='add'>+    fun_l17_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n517()</div><div class='add'>+    fun_l17_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n518()</div><div class='add'>+    fun_l17_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n519()</div><div class='add'>+    fun_l17_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n520()</div><div class='add'>+    fun_l17_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n521()</div><div class='add'>+    fun_l17_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n522()</div><div class='add'>+    fun_l17_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n523()</div><div class='add'>+    fun_l17_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n524()</div><div class='add'>+    fun_l17_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n525()</div><div class='add'>+    fun_l17_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n526()</div><div class='add'>+    fun_l17_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n527()</div><div class='add'>+    fun_l17_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n528()</div><div class='add'>+    fun_l17_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n529()</div><div class='add'>+    fun_l17_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n530()</div><div class='add'>+    fun_l17_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n531()</div><div class='add'>+    fun_l17_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n532()</div><div class='add'>+    fun_l17_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n533()</div><div class='add'>+    fun_l17_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n534()</div><div class='add'>+    fun_l17_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n535()</div><div class='add'>+    fun_l17_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n536()</div><div class='add'>+    fun_l17_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n537()</div><div class='add'>+    fun_l17_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n538()</div><div class='add'>+    fun_l17_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n539()</div><div class='add'>+    fun_l17_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n540()</div><div class='add'>+    fun_l17_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n541()</div><div class='add'>+    fun_l17_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n542()</div><div class='add'>+    fun_l17_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n543()</div><div class='add'>+    fun_l17_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n544()</div><div class='add'>+    fun_l17_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n545()</div><div class='add'>+    fun_l17_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n546()</div><div class='add'>+    fun_l17_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n547()</div><div class='add'>+    fun_l17_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n548()</div><div class='add'>+    fun_l17_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n549()</div><div class='add'>+    fun_l17_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n550()</div><div class='add'>+    fun_l17_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n551()</div><div class='add'>+    fun_l17_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n552()</div><div class='add'>+    fun_l17_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n553()</div><div class='add'>+    fun_l17_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n554()</div><div class='add'>+    fun_l17_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n555()</div><div class='add'>+    fun_l17_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n556()</div><div class='add'>+    fun_l17_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n557()</div><div class='add'>+    fun_l17_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n558()</div><div class='add'>+    fun_l17_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n559()</div><div class='add'>+    fun_l17_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n560()</div><div class='add'>+    fun_l17_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n561()</div><div class='add'>+    fun_l17_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n562()</div><div class='add'>+    fun_l17_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n563()</div><div class='add'>+    fun_l17_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n564()</div><div class='add'>+    fun_l17_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n565()</div><div class='add'>+    fun_l17_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n566()</div><div class='add'>+    fun_l17_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n567()</div><div class='add'>+    fun_l17_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n568()</div><div class='add'>+    fun_l17_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n569()</div><div class='add'>+    fun_l17_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n570()</div><div class='add'>+    fun_l17_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n571()</div><div class='add'>+    fun_l17_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n572()</div><div class='add'>+    fun_l17_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n573()</div><div class='add'>+    fun_l17_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n574()</div><div class='add'>+    fun_l17_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n575()</div><div class='add'>+    fun_l17_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n576()</div><div class='add'>+    fun_l17_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n577()</div><div class='add'>+    fun_l17_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n578()</div><div class='add'>+    fun_l17_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n579()</div><div class='add'>+    fun_l17_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n580()</div><div class='add'>+    fun_l17_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n581()</div><div class='add'>+    fun_l17_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n582()</div><div class='add'>+    fun_l17_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n583()</div><div class='add'>+    fun_l17_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n584()</div><div class='add'>+    fun_l17_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n585()</div><div class='add'>+    fun_l17_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n586()</div><div class='add'>+    fun_l17_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n587()</div><div class='add'>+    fun_l17_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n588()</div><div class='add'>+    fun_l17_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n589()</div><div class='add'>+    fun_l17_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n590()</div><div class='add'>+    fun_l17_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n591()</div><div class='add'>+    fun_l17_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n592()</div><div class='add'>+    fun_l17_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n593()</div><div class='add'>+    fun_l17_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n594()</div><div class='add'>+    fun_l17_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n595()</div><div class='add'>+    fun_l17_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n596()</div><div class='add'>+    fun_l17_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n597()</div><div class='add'>+    fun_l17_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n598()</div><div class='add'>+    fun_l17_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n599()</div><div class='add'>+    fun_l17_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n600()</div><div class='add'>+    fun_l17_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n601()</div><div class='add'>+    fun_l17_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n602()</div><div class='add'>+    fun_l17_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n603()</div><div class='add'>+    fun_l17_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n604()</div><div class='add'>+    fun_l17_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n605()</div><div class='add'>+    fun_l17_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n606()</div><div class='add'>+    fun_l17_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n607()</div><div class='add'>+    fun_l17_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n608()</div><div class='add'>+    fun_l17_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n609()</div><div class='add'>+    fun_l17_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n610()</div><div class='add'>+    fun_l17_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n611()</div><div class='add'>+    fun_l17_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n612()</div><div class='add'>+    fun_l17_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n613()</div><div class='add'>+    fun_l17_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n614()</div><div class='add'>+    fun_l17_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n615()</div><div class='add'>+    fun_l17_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n616()</div><div class='add'>+    fun_l17_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n617()</div><div class='add'>+    fun_l17_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n618()</div><div class='add'>+    fun_l17_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n619()</div><div class='add'>+    fun_l17_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n620()</div><div class='add'>+    fun_l17_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n621()</div><div class='add'>+    fun_l17_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n622()</div><div class='add'>+    fun_l17_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n623()</div><div class='add'>+    fun_l17_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n624()</div><div class='add'>+    fun_l17_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n625()</div><div class='add'>+    fun_l17_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n626()</div><div class='add'>+    fun_l17_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n627()</div><div class='add'>+    fun_l17_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n628()</div><div class='add'>+    fun_l17_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n629()</div><div class='add'>+    fun_l17_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n630()</div><div class='add'>+    fun_l17_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n631()</div><div class='add'>+    fun_l17_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n632()</div><div class='add'>+    fun_l17_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n633()</div><div class='add'>+    fun_l17_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n634()</div><div class='add'>+    fun_l17_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n635()</div><div class='add'>+    fun_l17_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n636()</div><div class='add'>+    fun_l17_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n637()</div><div class='add'>+    fun_l17_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n638()</div><div class='add'>+    fun_l17_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n639()</div><div class='add'>+    fun_l17_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n640()</div><div class='add'>+    fun_l17_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n641()</div><div class='add'>+    fun_l17_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n642()</div><div class='add'>+    fun_l17_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n643()</div><div class='add'>+    fun_l17_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n644()</div><div class='add'>+    fun_l17_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n645()</div><div class='add'>+    fun_l17_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n646()</div><div class='add'>+    fun_l17_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n647()</div><div class='add'>+    fun_l17_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n648()</div><div class='add'>+    fun_l17_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n649()</div><div class='add'>+    fun_l17_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n650()</div><div class='add'>+    fun_l17_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n651()</div><div class='add'>+    fun_l17_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n652()</div><div class='add'>+    fun_l17_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n653()</div><div class='add'>+    fun_l17_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n654()</div><div class='add'>+    fun_l17_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n655()</div><div class='add'>+    fun_l17_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n656()</div><div class='add'>+    fun_l17_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n657()</div><div class='add'>+    fun_l17_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n658()</div><div class='add'>+    fun_l17_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n659()</div><div class='add'>+    fun_l17_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n660()</div><div class='add'>+    fun_l17_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n661()</div><div class='add'>+    fun_l17_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n662()</div><div class='add'>+    fun_l17_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n663()</div><div class='add'>+    fun_l17_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n664()</div><div class='add'>+    fun_l17_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n665()</div><div class='add'>+    fun_l17_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n666()</div><div class='add'>+    fun_l17_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n667()</div><div class='add'>+    fun_l17_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n668()</div><div class='add'>+    fun_l17_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n669()</div><div class='add'>+    fun_l17_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n670()</div><div class='add'>+    fun_l17_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n671()</div><div class='add'>+    fun_l17_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n672()</div><div class='add'>+    fun_l17_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n673()</div><div class='add'>+    fun_l17_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n674()</div><div class='add'>+    fun_l17_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n675()</div><div class='add'>+    fun_l17_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n676()</div><div class='add'>+    fun_l17_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n677()</div><div class='add'>+    fun_l17_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n678()</div><div class='add'>+    fun_l17_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n679()</div><div class='add'>+    fun_l17_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n680()</div><div class='add'>+    fun_l17_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n681()</div><div class='add'>+    fun_l17_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n682()</div><div class='add'>+    fun_l17_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n683()</div><div class='add'>+    fun_l17_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n684()</div><div class='add'>+    fun_l17_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n685()</div><div class='add'>+    fun_l17_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n686()</div><div class='add'>+    fun_l17_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n687()</div><div class='add'>+    fun_l17_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n688()</div><div class='add'>+    fun_l17_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n689()</div><div class='add'>+    fun_l17_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n690()</div><div class='add'>+    fun_l17_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n691()</div><div class='add'>+    fun_l17_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n692()</div><div class='add'>+    fun_l17_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n693()</div><div class='add'>+    fun_l17_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n694()</div><div class='add'>+    fun_l17_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n695()</div><div class='add'>+    fun_l17_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n696()</div><div class='add'>+    fun_l17_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n697()</div><div class='add'>+    fun_l17_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n698()</div><div class='add'>+    fun_l17_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n699()</div><div class='add'>+    fun_l17_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n700()</div><div class='add'>+    fun_l17_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n701()</div><div class='add'>+    fun_l17_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n702()</div><div class='add'>+    fun_l17_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n703()</div><div class='add'>+    fun_l17_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n704()</div><div class='add'>+    fun_l17_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n705()</div><div class='add'>+    fun_l17_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n706()</div><div class='add'>+    fun_l17_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n707()</div><div class='add'>+    fun_l17_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n708()</div><div class='add'>+    fun_l17_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n709()</div><div class='add'>+    fun_l17_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n710()</div><div class='add'>+    fun_l17_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n711()</div><div class='add'>+    fun_l17_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n712()</div><div class='add'>+    fun_l17_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n713()</div><div class='add'>+    fun_l17_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n714()</div><div class='add'>+    fun_l17_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n715()</div><div class='add'>+    fun_l17_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n716()</div><div class='add'>+    fun_l17_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n717()</div><div class='add'>+    fun_l17_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n718()</div><div class='add'>+    fun_l17_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n719()</div><div class='add'>+    fun_l17_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n720()</div><div class='add'>+    fun_l17_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n721()</div><div class='add'>+    fun_l17_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n722()</div><div class='add'>+    fun_l17_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n723()</div><div class='add'>+    fun_l17_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n724()</div><div class='add'>+    fun_l17_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n725()</div><div class='add'>+    fun_l17_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n726()</div><div class='add'>+    fun_l17_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n727()</div><div class='add'>+    fun_l17_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n728()</div><div class='add'>+    fun_l17_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n729()</div><div class='add'>+    fun_l17_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n730()</div><div class='add'>+    fun_l17_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n731()</div><div class='add'>+    fun_l17_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n732()</div><div class='add'>+    fun_l17_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n733()</div><div class='add'>+    fun_l17_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n734()</div><div class='add'>+    fun_l17_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n735()</div><div class='add'>+    fun_l17_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n736()</div><div class='add'>+    fun_l17_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n737()</div><div class='add'>+    fun_l17_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n738()</div><div class='add'>+    fun_l17_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n739()</div><div class='add'>+    fun_l17_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n740()</div><div class='add'>+    fun_l17_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n741()</div><div class='add'>+    fun_l17_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n742()</div><div class='add'>+    fun_l17_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n743()</div><div class='add'>+    fun_l17_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n744()</div><div class='add'>+    fun_l17_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n745()</div><div class='add'>+    fun_l17_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n746()</div><div class='add'>+    fun_l17_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n747()</div><div class='add'>+    fun_l17_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n748()</div><div class='add'>+    fun_l17_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n749()</div><div class='add'>+    fun_l17_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n750()</div><div class='add'>+    fun_l17_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n751()</div><div class='add'>+    fun_l17_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n752()</div><div class='add'>+    fun_l17_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n753()</div><div class='add'>+    fun_l17_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n754()</div><div class='add'>+    fun_l17_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n755()</div><div class='add'>+    fun_l17_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n756()</div><div class='add'>+    fun_l17_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n757()</div><div class='add'>+    fun_l17_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n758()</div><div class='add'>+    fun_l17_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n759()</div><div class='add'>+    fun_l17_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n760()</div><div class='add'>+    fun_l17_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n761()</div><div class='add'>+    fun_l17_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n762()</div><div class='add'>+    fun_l17_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n763()</div><div class='add'>+    fun_l17_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n764()</div><div class='add'>+    fun_l17_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n765()</div><div class='add'>+    fun_l17_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n766()</div><div class='add'>+    fun_l17_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n767()</div><div class='add'>+    fun_l17_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n768()</div><div class='add'>+    fun_l17_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n769()</div><div class='add'>+    fun_l17_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n770()</div><div class='add'>+    fun_l17_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n771()</div><div class='add'>+    fun_l17_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n772()</div><div class='add'>+    fun_l17_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n773()</div><div class='add'>+    fun_l17_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n774()</div><div class='add'>+    fun_l17_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n775()</div><div class='add'>+    fun_l17_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n776()</div><div class='add'>+    fun_l17_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n777()</div><div class='add'>+    fun_l17_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n778()</div><div class='add'>+    fun_l17_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n779()</div><div class='add'>+    fun_l17_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n780()</div><div class='add'>+    fun_l17_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n781()</div><div class='add'>+    fun_l17_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n782()</div><div class='add'>+    fun_l17_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n783()</div><div class='add'>+    fun_l17_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n784()</div><div class='add'>+    fun_l17_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n785()</div><div class='add'>+    fun_l17_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n786()</div><div class='add'>+    fun_l17_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n787()</div><div class='add'>+    fun_l17_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n788()</div><div class='add'>+    fun_l17_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n789()</div><div class='add'>+    fun_l17_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n790()</div><div class='add'>+    fun_l17_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n791()</div><div class='add'>+    fun_l17_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n792()</div><div class='add'>+    fun_l17_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n793()</div><div class='add'>+    fun_l17_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n794()</div><div class='add'>+    fun_l17_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n795()</div><div class='add'>+    fun_l17_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n796()</div><div class='add'>+    fun_l17_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n797()</div><div class='add'>+    fun_l17_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n798()</div><div class='add'>+    fun_l17_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n799()</div><div class='add'>+    fun_l17_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n800()</div><div class='add'>+    fun_l17_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n801()</div><div class='add'>+    fun_l17_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n802()</div><div class='add'>+    fun_l17_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n803()</div><div class='add'>+    fun_l17_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n804()</div><div class='add'>+    fun_l17_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n805()</div><div class='add'>+    fun_l17_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n806()</div><div class='add'>+    fun_l17_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n807()</div><div class='add'>+    fun_l17_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n808()</div><div class='add'>+    fun_l17_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n809()</div><div class='add'>+    fun_l17_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n810()</div><div class='add'>+    fun_l17_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n811()</div><div class='add'>+    fun_l17_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n812()</div><div class='add'>+    fun_l17_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n813()</div><div class='add'>+    fun_l17_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n814()</div><div class='add'>+    fun_l17_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n815()</div><div class='add'>+    fun_l17_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n816()</div><div class='add'>+    fun_l17_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n817()</div><div class='add'>+    fun_l17_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n818()</div><div class='add'>+    fun_l17_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n819()</div><div class='add'>+    fun_l17_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n820()</div><div class='add'>+    fun_l17_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n821()</div><div class='add'>+    fun_l17_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n822()</div><div class='add'>+    fun_l17_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n823()</div><div class='add'>+    fun_l17_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n824()</div><div class='add'>+    fun_l17_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n825()</div><div class='add'>+    fun_l17_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n826()</div><div class='add'>+    fun_l17_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n827()</div><div class='add'>+    fun_l17_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n828()</div><div class='add'>+    fun_l17_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n829()</div><div class='add'>+    fun_l17_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n830()</div><div class='add'>+    fun_l17_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n831()</div><div class='add'>+    fun_l17_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n832()</div><div class='add'>+    fun_l17_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n833()</div><div class='add'>+    fun_l17_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n834()</div><div class='add'>+    fun_l17_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n835()</div><div class='add'>+    fun_l17_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n836()</div><div class='add'>+    fun_l17_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n837()</div><div class='add'>+    fun_l17_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n838()</div><div class='add'>+    fun_l17_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n839()</div><div class='add'>+    fun_l17_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n840()</div><div class='add'>+    fun_l17_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n841()</div><div class='add'>+    fun_l17_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n842()</div><div class='add'>+    fun_l17_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n843()</div><div class='add'>+    fun_l17_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n844()</div><div class='add'>+    fun_l17_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n845()</div><div class='add'>+    fun_l17_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n846()</div><div class='add'>+    fun_l17_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n847()</div><div class='add'>+    fun_l17_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n848()</div><div class='add'>+    fun_l17_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n849()</div><div class='add'>+    fun_l17_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n850()</div><div class='add'>+    fun_l17_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n851()</div><div class='add'>+    fun_l17_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n852()</div><div class='add'>+    fun_l17_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n853()</div><div class='add'>+    fun_l17_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n854()</div><div class='add'>+    fun_l17_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n855()</div><div class='add'>+    fun_l17_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n856()</div><div class='add'>+    fun_l17_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n857()</div><div class='add'>+    fun_l17_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n858()</div><div class='add'>+    fun_l17_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n859()</div><div class='add'>+    fun_l17_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n860()</div><div class='add'>+    fun_l17_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n861()</div><div class='add'>+    fun_l17_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n862()</div><div class='add'>+    fun_l17_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n863()</div><div class='add'>+    fun_l17_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n864()</div><div class='add'>+    fun_l17_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n865()</div><div class='add'>+    fun_l17_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n866()</div><div class='add'>+    fun_l17_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n867()</div><div class='add'>+    fun_l17_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n868()</div><div class='add'>+    fun_l17_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n869()</div><div class='add'>+    fun_l17_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n870()</div><div class='add'>+    fun_l17_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n871()</div><div class='add'>+    fun_l17_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n872()</div><div class='add'>+    fun_l17_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n873()</div><div class='add'>+    fun_l17_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n874()</div><div class='add'>+    fun_l17_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n875()</div><div class='add'>+    fun_l17_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n876()</div><div class='add'>+    fun_l17_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n877()</div><div class='add'>+    fun_l17_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n878()</div><div class='add'>+    fun_l17_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n879()</div><div class='add'>+    fun_l17_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n880()</div><div class='add'>+    fun_l17_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n881()</div><div class='add'>+    fun_l17_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n882()</div><div class='add'>+    fun_l17_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n883()</div><div class='add'>+    fun_l17_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n884()</div><div class='add'>+    fun_l17_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n885()</div><div class='add'>+    fun_l17_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n886()</div><div class='add'>+    fun_l17_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n887()</div><div class='add'>+    fun_l17_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n888()</div><div class='add'>+    fun_l17_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n889()</div><div class='add'>+    fun_l17_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n890()</div><div class='add'>+    fun_l17_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n891()</div><div class='add'>+    fun_l17_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n892()</div><div class='add'>+    fun_l17_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n893()</div><div class='add'>+    fun_l17_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n894()</div><div class='add'>+    fun_l17_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n895()</div><div class='add'>+    fun_l17_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n896()</div><div class='add'>+    fun_l17_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n897()</div><div class='add'>+    fun_l17_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n898()</div><div class='add'>+    fun_l17_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n899()</div><div class='add'>+    fun_l17_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n900()</div><div class='add'>+    fun_l17_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n901()</div><div class='add'>+    fun_l17_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n902()</div><div class='add'>+    fun_l17_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n903()</div><div class='add'>+    fun_l17_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n904()</div><div class='add'>+    fun_l17_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n905()</div><div class='add'>+    fun_l17_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n906()</div><div class='add'>+    fun_l17_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n907()</div><div class='add'>+    fun_l17_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n908()</div><div class='add'>+    fun_l17_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n909()</div><div class='add'>+    fun_l17_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n910()</div><div class='add'>+    fun_l17_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n911()</div><div class='add'>+    fun_l17_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n912()</div><div class='add'>+    fun_l17_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n913()</div><div class='add'>+    fun_l17_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n914()</div><div class='add'>+    fun_l17_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n915()</div><div class='add'>+    fun_l17_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n916()</div><div class='add'>+    fun_l17_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n917()</div><div class='add'>+    fun_l17_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n918()</div><div class='add'>+    fun_l17_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n919()</div><div class='add'>+    fun_l17_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n920()</div><div class='add'>+    fun_l17_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n921()</div><div class='add'>+    fun_l17_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n922()</div><div class='add'>+    fun_l17_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n923()</div><div class='add'>+    fun_l17_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n924()</div><div class='add'>+    fun_l17_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n925()</div><div class='add'>+    fun_l17_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n926()</div><div class='add'>+    fun_l17_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n927()</div><div class='add'>+    fun_l17_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n928()</div><div class='add'>+    fun_l17_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n929()</div><div class='add'>+    fun_l17_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n930()</div><div class='add'>+    fun_l17_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n931()</div><div class='add'>+    fun_l17_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n932()</div><div class='add'>+    fun_l17_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n933()</div><div class='add'>+    fun_l17_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n934()</div><div class='add'>+    fun_l17_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n935()</div><div class='add'>+    fun_l17_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n936()</div><div class='add'>+    fun_l17_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n937()</div><div class='add'>+    fun_l17_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n938()</div><div class='add'>+    fun_l17_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n939()</div><div class='add'>+    fun_l17_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n940()</div><div class='add'>+    fun_l17_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n941()</div><div class='add'>+    fun_l17_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n942()</div><div class='add'>+    fun_l17_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n943()</div><div class='add'>+    fun_l17_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n944()</div><div class='add'>+    fun_l17_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n945()</div><div class='add'>+    fun_l17_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n946()</div><div class='add'>+    fun_l17_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n947()</div><div class='add'>+    fun_l17_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n948()</div><div class='add'>+    fun_l17_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n949()</div><div class='add'>+    fun_l17_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n950()</div><div class='add'>+    fun_l17_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n951()</div><div class='add'>+    fun_l17_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n952()</div><div class='add'>+    fun_l17_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n953()</div><div class='add'>+    fun_l17_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n954()</div><div class='add'>+    fun_l17_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n955()</div><div class='add'>+    fun_l17_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n956()</div><div class='add'>+    fun_l17_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n957()</div><div class='add'>+    fun_l17_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n958()</div><div class='add'>+    fun_l17_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n959()</div><div class='add'>+    fun_l17_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n960()</div><div class='add'>+    fun_l17_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n961()</div><div class='add'>+    fun_l17_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n962()</div><div class='add'>+    fun_l17_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n963()</div><div class='add'>+    fun_l17_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n964()</div><div class='add'>+    fun_l17_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n965()</div><div class='add'>+    fun_l17_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n966()</div><div class='add'>+    fun_l17_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n967()</div><div class='add'>+    fun_l17_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n968()</div><div class='add'>+    fun_l17_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n969()</div><div class='add'>+    fun_l17_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n970()</div><div class='add'>+    fun_l17_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n971()</div><div class='add'>+    fun_l17_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n972()</div><div class='add'>+    fun_l17_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n973()</div><div class='add'>+    fun_l17_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n974()</div><div class='add'>+    fun_l17_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n975()</div><div class='add'>+    fun_l17_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n976()</div><div class='add'>+    fun_l17_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n977()</div><div class='add'>+    fun_l17_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n978()</div><div class='add'>+    fun_l17_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n979()</div><div class='add'>+    fun_l17_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n980()</div><div class='add'>+    fun_l17_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n981()</div><div class='add'>+    fun_l17_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n982()</div><div class='add'>+    fun_l17_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n983()</div><div class='add'>+    fun_l17_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n984()</div><div class='add'>+    fun_l17_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n985()</div><div class='add'>+    fun_l17_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n986()</div><div class='add'>+    fun_l17_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n987()</div><div class='add'>+    fun_l17_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n988()</div><div class='add'>+    fun_l17_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n989()</div><div class='add'>+    fun_l17_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n990()</div><div class='add'>+    fun_l17_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n991()</div><div class='add'>+    fun_l17_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n992()</div><div class='add'>+    fun_l17_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n993()</div><div class='add'>+    fun_l17_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n994()</div><div class='add'>+    fun_l17_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n995()</div><div class='add'>+    fun_l17_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n996()</div><div class='add'>+    fun_l17_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n997()</div><div class='add'>+    fun_l17_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n998()</div><div class='add'>+    fun_l17_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l16_n999()</div><div class='add'>+    fun_l17_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n0()</div><div class='add'>+    fun_l18_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n1()</div><div class='add'>+    fun_l18_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n2()</div><div class='add'>+    fun_l18_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n3()</div><div class='add'>+    fun_l18_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n4()</div><div class='add'>+    fun_l18_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n5()</div><div class='add'>+    fun_l18_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n6()</div><div class='add'>+    fun_l18_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n7()</div><div class='add'>+    fun_l18_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n8()</div><div class='add'>+    fun_l18_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n9()</div><div class='add'>+    fun_l18_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n10()</div><div class='add'>+    fun_l18_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n11()</div><div class='add'>+    fun_l18_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n12()</div><div class='add'>+    fun_l18_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n13()</div><div class='add'>+    fun_l18_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n14()</div><div class='add'>+    fun_l18_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n15()</div><div class='add'>+    fun_l18_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n16()</div><div class='add'>+    fun_l18_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n17()</div><div class='add'>+    fun_l18_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n18()</div><div class='add'>+    fun_l18_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n19()</div><div class='add'>+    fun_l18_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n20()</div><div class='add'>+    fun_l18_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n21()</div><div class='add'>+    fun_l18_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n22()</div><div class='add'>+    fun_l18_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n23()</div><div class='add'>+    fun_l18_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n24()</div><div class='add'>+    fun_l18_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n25()</div><div class='add'>+    fun_l18_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n26()</div><div class='add'>+    fun_l18_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n27()</div><div class='add'>+    fun_l18_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n28()</div><div class='add'>+    fun_l18_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n29()</div><div class='add'>+    fun_l18_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n30()</div><div class='add'>+    fun_l18_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n31()</div><div class='add'>+    fun_l18_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n32()</div><div class='add'>+    fun_l18_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n33()</div><div class='add'>+    fun_l18_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n34()</div><div class='add'>+    fun_l18_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n35()</div><div class='add'>+    fun_l18_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n36()</div><div class='add'>+    fun_l18_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n37()</div><div class='add'>+    fun_l18_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n38()</div><div class='add'>+    fun_l18_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n39()</div><div class='add'>+    fun_l18_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n40()</div><div class='add'>+    fun_l18_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n41()</div><div class='add'>+    fun_l18_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n42()</div><div class='add'>+    fun_l18_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n43()</div><div class='add'>+    fun_l18_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n44()</div><div class='add'>+    fun_l18_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n45()</div><div class='add'>+    fun_l18_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n46()</div><div class='add'>+    fun_l18_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n47()</div><div class='add'>+    fun_l18_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n48()</div><div class='add'>+    fun_l18_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n49()</div><div class='add'>+    fun_l18_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n50()</div><div class='add'>+    fun_l18_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n51()</div><div class='add'>+    fun_l18_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n52()</div><div class='add'>+    fun_l18_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n53()</div><div class='add'>+    fun_l18_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n54()</div><div class='add'>+    fun_l18_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n55()</div><div class='add'>+    fun_l18_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n56()</div><div class='add'>+    fun_l18_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n57()</div><div class='add'>+    fun_l18_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n58()</div><div class='add'>+    fun_l18_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n59()</div><div class='add'>+    fun_l18_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n60()</div><div class='add'>+    fun_l18_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n61()</div><div class='add'>+    fun_l18_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n62()</div><div class='add'>+    fun_l18_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n63()</div><div class='add'>+    fun_l18_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n64()</div><div class='add'>+    fun_l18_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n65()</div><div class='add'>+    fun_l18_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n66()</div><div class='add'>+    fun_l18_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n67()</div><div class='add'>+    fun_l18_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n68()</div><div class='add'>+    fun_l18_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n69()</div><div class='add'>+    fun_l18_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n70()</div><div class='add'>+    fun_l18_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n71()</div><div class='add'>+    fun_l18_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n72()</div><div class='add'>+    fun_l18_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n73()</div><div class='add'>+    fun_l18_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n74()</div><div class='add'>+    fun_l18_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n75()</div><div class='add'>+    fun_l18_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n76()</div><div class='add'>+    fun_l18_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n77()</div><div class='add'>+    fun_l18_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n78()</div><div class='add'>+    fun_l18_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n79()</div><div class='add'>+    fun_l18_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n80()</div><div class='add'>+    fun_l18_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n81()</div><div class='add'>+    fun_l18_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n82()</div><div class='add'>+    fun_l18_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n83()</div><div class='add'>+    fun_l18_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n84()</div><div class='add'>+    fun_l18_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n85()</div><div class='add'>+    fun_l18_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n86()</div><div class='add'>+    fun_l18_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n87()</div><div class='add'>+    fun_l18_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n88()</div><div class='add'>+    fun_l18_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n89()</div><div class='add'>+    fun_l18_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n90()</div><div class='add'>+    fun_l18_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n91()</div><div class='add'>+    fun_l18_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n92()</div><div class='add'>+    fun_l18_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n93()</div><div class='add'>+    fun_l18_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n94()</div><div class='add'>+    fun_l18_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n95()</div><div class='add'>+    fun_l18_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n96()</div><div class='add'>+    fun_l18_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n97()</div><div class='add'>+    fun_l18_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n98()</div><div class='add'>+    fun_l18_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n99()</div><div class='add'>+    fun_l18_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n100()</div><div class='add'>+    fun_l18_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n101()</div><div class='add'>+    fun_l18_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n102()</div><div class='add'>+    fun_l18_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n103()</div><div class='add'>+    fun_l18_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n104()</div><div class='add'>+    fun_l18_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n105()</div><div class='add'>+    fun_l18_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n106()</div><div class='add'>+    fun_l18_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n107()</div><div class='add'>+    fun_l18_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n108()</div><div class='add'>+    fun_l18_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n109()</div><div class='add'>+    fun_l18_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n110()</div><div class='add'>+    fun_l18_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n111()</div><div class='add'>+    fun_l18_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n112()</div><div class='add'>+    fun_l18_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n113()</div><div class='add'>+    fun_l18_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n114()</div><div class='add'>+    fun_l18_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n115()</div><div class='add'>+    fun_l18_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n116()</div><div class='add'>+    fun_l18_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n117()</div><div class='add'>+    fun_l18_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n118()</div><div class='add'>+    fun_l18_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n119()</div><div class='add'>+    fun_l18_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n120()</div><div class='add'>+    fun_l18_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n121()</div><div class='add'>+    fun_l18_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n122()</div><div class='add'>+    fun_l18_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n123()</div><div class='add'>+    fun_l18_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n124()</div><div class='add'>+    fun_l18_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n125()</div><div class='add'>+    fun_l18_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n126()</div><div class='add'>+    fun_l18_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n127()</div><div class='add'>+    fun_l18_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n128()</div><div class='add'>+    fun_l18_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n129()</div><div class='add'>+    fun_l18_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n130()</div><div class='add'>+    fun_l18_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n131()</div><div class='add'>+    fun_l18_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n132()</div><div class='add'>+    fun_l18_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n133()</div><div class='add'>+    fun_l18_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n134()</div><div class='add'>+    fun_l18_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n135()</div><div class='add'>+    fun_l18_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n136()</div><div class='add'>+    fun_l18_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n137()</div><div class='add'>+    fun_l18_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n138()</div><div class='add'>+    fun_l18_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n139()</div><div class='add'>+    fun_l18_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n140()</div><div class='add'>+    fun_l18_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n141()</div><div class='add'>+    fun_l18_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n142()</div><div class='add'>+    fun_l18_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n143()</div><div class='add'>+    fun_l18_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n144()</div><div class='add'>+    fun_l18_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n145()</div><div class='add'>+    fun_l18_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n146()</div><div class='add'>+    fun_l18_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n147()</div><div class='add'>+    fun_l18_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n148()</div><div class='add'>+    fun_l18_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n149()</div><div class='add'>+    fun_l18_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n150()</div><div class='add'>+    fun_l18_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n151()</div><div class='add'>+    fun_l18_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n152()</div><div class='add'>+    fun_l18_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n153()</div><div class='add'>+    fun_l18_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n154()</div><div class='add'>+    fun_l18_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n155()</div><div class='add'>+    fun_l18_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n156()</div><div class='add'>+    fun_l18_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n157()</div><div class='add'>+    fun_l18_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n158()</div><div class='add'>+    fun_l18_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n159()</div><div class='add'>+    fun_l18_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n160()</div><div class='add'>+    fun_l18_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n161()</div><div class='add'>+    fun_l18_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n162()</div><div class='add'>+    fun_l18_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n163()</div><div class='add'>+    fun_l18_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n164()</div><div class='add'>+    fun_l18_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n165()</div><div class='add'>+    fun_l18_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n166()</div><div class='add'>+    fun_l18_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n167()</div><div class='add'>+    fun_l18_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n168()</div><div class='add'>+    fun_l18_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n169()</div><div class='add'>+    fun_l18_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n170()</div><div class='add'>+    fun_l18_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n171()</div><div class='add'>+    fun_l18_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n172()</div><div class='add'>+    fun_l18_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n173()</div><div class='add'>+    fun_l18_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n174()</div><div class='add'>+    fun_l18_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n175()</div><div class='add'>+    fun_l18_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n176()</div><div class='add'>+    fun_l18_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n177()</div><div class='add'>+    fun_l18_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n178()</div><div class='add'>+    fun_l18_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n179()</div><div class='add'>+    fun_l18_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n180()</div><div class='add'>+    fun_l18_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n181()</div><div class='add'>+    fun_l18_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n182()</div><div class='add'>+    fun_l18_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n183()</div><div class='add'>+    fun_l18_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n184()</div><div class='add'>+    fun_l18_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n185()</div><div class='add'>+    fun_l18_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n186()</div><div class='add'>+    fun_l18_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n187()</div><div class='add'>+    fun_l18_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n188()</div><div class='add'>+    fun_l18_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n189()</div><div class='add'>+    fun_l18_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n190()</div><div class='add'>+    fun_l18_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n191()</div><div class='add'>+    fun_l18_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n192()</div><div class='add'>+    fun_l18_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n193()</div><div class='add'>+    fun_l18_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n194()</div><div class='add'>+    fun_l18_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n195()</div><div class='add'>+    fun_l18_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n196()</div><div class='add'>+    fun_l18_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n197()</div><div class='add'>+    fun_l18_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n198()</div><div class='add'>+    fun_l18_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n199()</div><div class='add'>+    fun_l18_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n200()</div><div class='add'>+    fun_l18_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n201()</div><div class='add'>+    fun_l18_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n202()</div><div class='add'>+    fun_l18_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n203()</div><div class='add'>+    fun_l18_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n204()</div><div class='add'>+    fun_l18_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n205()</div><div class='add'>+    fun_l18_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n206()</div><div class='add'>+    fun_l18_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n207()</div><div class='add'>+    fun_l18_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n208()</div><div class='add'>+    fun_l18_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n209()</div><div class='add'>+    fun_l18_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n210()</div><div class='add'>+    fun_l18_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n211()</div><div class='add'>+    fun_l18_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n212()</div><div class='add'>+    fun_l18_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n213()</div><div class='add'>+    fun_l18_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n214()</div><div class='add'>+    fun_l18_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n215()</div><div class='add'>+    fun_l18_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n216()</div><div class='add'>+    fun_l18_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n217()</div><div class='add'>+    fun_l18_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n218()</div><div class='add'>+    fun_l18_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n219()</div><div class='add'>+    fun_l18_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n220()</div><div class='add'>+    fun_l18_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n221()</div><div class='add'>+    fun_l18_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n222()</div><div class='add'>+    fun_l18_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n223()</div><div class='add'>+    fun_l18_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n224()</div><div class='add'>+    fun_l18_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n225()</div><div class='add'>+    fun_l18_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n226()</div><div class='add'>+    fun_l18_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n227()</div><div class='add'>+    fun_l18_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n228()</div><div class='add'>+    fun_l18_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n229()</div><div class='add'>+    fun_l18_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n230()</div><div class='add'>+    fun_l18_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n231()</div><div class='add'>+    fun_l18_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n232()</div><div class='add'>+    fun_l18_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n233()</div><div class='add'>+    fun_l18_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n234()</div><div class='add'>+    fun_l18_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n235()</div><div class='add'>+    fun_l18_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n236()</div><div class='add'>+    fun_l18_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n237()</div><div class='add'>+    fun_l18_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n238()</div><div class='add'>+    fun_l18_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n239()</div><div class='add'>+    fun_l18_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n240()</div><div class='add'>+    fun_l18_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n241()</div><div class='add'>+    fun_l18_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n242()</div><div class='add'>+    fun_l18_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n243()</div><div class='add'>+    fun_l18_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n244()</div><div class='add'>+    fun_l18_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n245()</div><div class='add'>+    fun_l18_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n246()</div><div class='add'>+    fun_l18_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n247()</div><div class='add'>+    fun_l18_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n248()</div><div class='add'>+    fun_l18_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n249()</div><div class='add'>+    fun_l18_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n250()</div><div class='add'>+    fun_l18_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n251()</div><div class='add'>+    fun_l18_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n252()</div><div class='add'>+    fun_l18_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n253()</div><div class='add'>+    fun_l18_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n254()</div><div class='add'>+    fun_l18_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n255()</div><div class='add'>+    fun_l18_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n256()</div><div class='add'>+    fun_l18_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n257()</div><div class='add'>+    fun_l18_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n258()</div><div class='add'>+    fun_l18_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n259()</div><div class='add'>+    fun_l18_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n260()</div><div class='add'>+    fun_l18_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n261()</div><div class='add'>+    fun_l18_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n262()</div><div class='add'>+    fun_l18_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n263()</div><div class='add'>+    fun_l18_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n264()</div><div class='add'>+    fun_l18_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n265()</div><div class='add'>+    fun_l18_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n266()</div><div class='add'>+    fun_l18_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n267()</div><div class='add'>+    fun_l18_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n268()</div><div class='add'>+    fun_l18_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n269()</div><div class='add'>+    fun_l18_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n270()</div><div class='add'>+    fun_l18_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n271()</div><div class='add'>+    fun_l18_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n272()</div><div class='add'>+    fun_l18_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n273()</div><div class='add'>+    fun_l18_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n274()</div><div class='add'>+    fun_l18_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n275()</div><div class='add'>+    fun_l18_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n276()</div><div class='add'>+    fun_l18_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n277()</div><div class='add'>+    fun_l18_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n278()</div><div class='add'>+    fun_l18_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n279()</div><div class='add'>+    fun_l18_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n280()</div><div class='add'>+    fun_l18_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n281()</div><div class='add'>+    fun_l18_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n282()</div><div class='add'>+    fun_l18_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n283()</div><div class='add'>+    fun_l18_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n284()</div><div class='add'>+    fun_l18_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n285()</div><div class='add'>+    fun_l18_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n286()</div><div class='add'>+    fun_l18_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n287()</div><div class='add'>+    fun_l18_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n288()</div><div class='add'>+    fun_l18_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n289()</div><div class='add'>+    fun_l18_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n290()</div><div class='add'>+    fun_l18_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n291()</div><div class='add'>+    fun_l18_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n292()</div><div class='add'>+    fun_l18_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n293()</div><div class='add'>+    fun_l18_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n294()</div><div class='add'>+    fun_l18_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n295()</div><div class='add'>+    fun_l18_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n296()</div><div class='add'>+    fun_l18_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n297()</div><div class='add'>+    fun_l18_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n298()</div><div class='add'>+    fun_l18_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n299()</div><div class='add'>+    fun_l18_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n300()</div><div class='add'>+    fun_l18_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n301()</div><div class='add'>+    fun_l18_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n302()</div><div class='add'>+    fun_l18_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n303()</div><div class='add'>+    fun_l18_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n304()</div><div class='add'>+    fun_l18_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n305()</div><div class='add'>+    fun_l18_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n306()</div><div class='add'>+    fun_l18_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n307()</div><div class='add'>+    fun_l18_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n308()</div><div class='add'>+    fun_l18_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n309()</div><div class='add'>+    fun_l18_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n310()</div><div class='add'>+    fun_l18_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n311()</div><div class='add'>+    fun_l18_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n312()</div><div class='add'>+    fun_l18_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n313()</div><div class='add'>+    fun_l18_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n314()</div><div class='add'>+    fun_l18_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n315()</div><div class='add'>+    fun_l18_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n316()</div><div class='add'>+    fun_l18_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n317()</div><div class='add'>+    fun_l18_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n318()</div><div class='add'>+    fun_l18_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n319()</div><div class='add'>+    fun_l18_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n320()</div><div class='add'>+    fun_l18_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n321()</div><div class='add'>+    fun_l18_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n322()</div><div class='add'>+    fun_l18_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n323()</div><div class='add'>+    fun_l18_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n324()</div><div class='add'>+    fun_l18_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n325()</div><div class='add'>+    fun_l18_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n326()</div><div class='add'>+    fun_l18_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n327()</div><div class='add'>+    fun_l18_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n328()</div><div class='add'>+    fun_l18_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n329()</div><div class='add'>+    fun_l18_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n330()</div><div class='add'>+    fun_l18_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n331()</div><div class='add'>+    fun_l18_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n332()</div><div class='add'>+    fun_l18_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n333()</div><div class='add'>+    fun_l18_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n334()</div><div class='add'>+    fun_l18_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n335()</div><div class='add'>+    fun_l18_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n336()</div><div class='add'>+    fun_l18_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n337()</div><div class='add'>+    fun_l18_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n338()</div><div class='add'>+    fun_l18_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n339()</div><div class='add'>+    fun_l18_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n340()</div><div class='add'>+    fun_l18_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n341()</div><div class='add'>+    fun_l18_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n342()</div><div class='add'>+    fun_l18_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n343()</div><div class='add'>+    fun_l18_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n344()</div><div class='add'>+    fun_l18_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n345()</div><div class='add'>+    fun_l18_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n346()</div><div class='add'>+    fun_l18_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n347()</div><div class='add'>+    fun_l18_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n348()</div><div class='add'>+    fun_l18_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n349()</div><div class='add'>+    fun_l18_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n350()</div><div class='add'>+    fun_l18_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n351()</div><div class='add'>+    fun_l18_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n352()</div><div class='add'>+    fun_l18_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n353()</div><div class='add'>+    fun_l18_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n354()</div><div class='add'>+    fun_l18_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n355()</div><div class='add'>+    fun_l18_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n356()</div><div class='add'>+    fun_l18_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n357()</div><div class='add'>+    fun_l18_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n358()</div><div class='add'>+    fun_l18_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n359()</div><div class='add'>+    fun_l18_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n360()</div><div class='add'>+    fun_l18_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n361()</div><div class='add'>+    fun_l18_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n362()</div><div class='add'>+    fun_l18_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n363()</div><div class='add'>+    fun_l18_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n364()</div><div class='add'>+    fun_l18_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n365()</div><div class='add'>+    fun_l18_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n366()</div><div class='add'>+    fun_l18_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n367()</div><div class='add'>+    fun_l18_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n368()</div><div class='add'>+    fun_l18_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n369()</div><div class='add'>+    fun_l18_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n370()</div><div class='add'>+    fun_l18_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n371()</div><div class='add'>+    fun_l18_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n372()</div><div class='add'>+    fun_l18_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n373()</div><div class='add'>+    fun_l18_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n374()</div><div class='add'>+    fun_l18_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n375()</div><div class='add'>+    fun_l18_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n376()</div><div class='add'>+    fun_l18_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n377()</div><div class='add'>+    fun_l18_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n378()</div><div class='add'>+    fun_l18_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n379()</div><div class='add'>+    fun_l18_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n380()</div><div class='add'>+    fun_l18_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n381()</div><div class='add'>+    fun_l18_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n382()</div><div class='add'>+    fun_l18_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n383()</div><div class='add'>+    fun_l18_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n384()</div><div class='add'>+    fun_l18_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n385()</div><div class='add'>+    fun_l18_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n386()</div><div class='add'>+    fun_l18_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n387()</div><div class='add'>+    fun_l18_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n388()</div><div class='add'>+    fun_l18_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n389()</div><div class='add'>+    fun_l18_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n390()</div><div class='add'>+    fun_l18_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n391()</div><div class='add'>+    fun_l18_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n392()</div><div class='add'>+    fun_l18_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n393()</div><div class='add'>+    fun_l18_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n394()</div><div class='add'>+    fun_l18_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n395()</div><div class='add'>+    fun_l18_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n396()</div><div class='add'>+    fun_l18_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n397()</div><div class='add'>+    fun_l18_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n398()</div><div class='add'>+    fun_l18_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n399()</div><div class='add'>+    fun_l18_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n400()</div><div class='add'>+    fun_l18_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n401()</div><div class='add'>+    fun_l18_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n402()</div><div class='add'>+    fun_l18_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n403()</div><div class='add'>+    fun_l18_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n404()</div><div class='add'>+    fun_l18_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n405()</div><div class='add'>+    fun_l18_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n406()</div><div class='add'>+    fun_l18_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n407()</div><div class='add'>+    fun_l18_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n408()</div><div class='add'>+    fun_l18_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n409()</div><div class='add'>+    fun_l18_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n410()</div><div class='add'>+    fun_l18_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n411()</div><div class='add'>+    fun_l18_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n412()</div><div class='add'>+    fun_l18_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n413()</div><div class='add'>+    fun_l18_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n414()</div><div class='add'>+    fun_l18_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n415()</div><div class='add'>+    fun_l18_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n416()</div><div class='add'>+    fun_l18_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n417()</div><div class='add'>+    fun_l18_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n418()</div><div class='add'>+    fun_l18_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n419()</div><div class='add'>+    fun_l18_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n420()</div><div class='add'>+    fun_l18_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n421()</div><div class='add'>+    fun_l18_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n422()</div><div class='add'>+    fun_l18_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n423()</div><div class='add'>+    fun_l18_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n424()</div><div class='add'>+    fun_l18_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n425()</div><div class='add'>+    fun_l18_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n426()</div><div class='add'>+    fun_l18_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n427()</div><div class='add'>+    fun_l18_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n428()</div><div class='add'>+    fun_l18_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n429()</div><div class='add'>+    fun_l18_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n430()</div><div class='add'>+    fun_l18_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n431()</div><div class='add'>+    fun_l18_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n432()</div><div class='add'>+    fun_l18_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n433()</div><div class='add'>+    fun_l18_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n434()</div><div class='add'>+    fun_l18_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n435()</div><div class='add'>+    fun_l18_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n436()</div><div class='add'>+    fun_l18_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n437()</div><div class='add'>+    fun_l18_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n438()</div><div class='add'>+    fun_l18_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n439()</div><div class='add'>+    fun_l18_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n440()</div><div class='add'>+    fun_l18_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n441()</div><div class='add'>+    fun_l18_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n442()</div><div class='add'>+    fun_l18_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n443()</div><div class='add'>+    fun_l18_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n444()</div><div class='add'>+    fun_l18_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n445()</div><div class='add'>+    fun_l18_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n446()</div><div class='add'>+    fun_l18_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n447()</div><div class='add'>+    fun_l18_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n448()</div><div class='add'>+    fun_l18_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n449()</div><div class='add'>+    fun_l18_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n450()</div><div class='add'>+    fun_l18_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n451()</div><div class='add'>+    fun_l18_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n452()</div><div class='add'>+    fun_l18_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n453()</div><div class='add'>+    fun_l18_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n454()</div><div class='add'>+    fun_l18_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n455()</div><div class='add'>+    fun_l18_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n456()</div><div class='add'>+    fun_l18_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n457()</div><div class='add'>+    fun_l18_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n458()</div><div class='add'>+    fun_l18_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n459()</div><div class='add'>+    fun_l18_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n460()</div><div class='add'>+    fun_l18_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n461()</div><div class='add'>+    fun_l18_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n462()</div><div class='add'>+    fun_l18_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n463()</div><div class='add'>+    fun_l18_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n464()</div><div class='add'>+    fun_l18_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n465()</div><div class='add'>+    fun_l18_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n466()</div><div class='add'>+    fun_l18_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n467()</div><div class='add'>+    fun_l18_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n468()</div><div class='add'>+    fun_l18_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n469()</div><div class='add'>+    fun_l18_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n470()</div><div class='add'>+    fun_l18_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n471()</div><div class='add'>+    fun_l18_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n472()</div><div class='add'>+    fun_l18_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n473()</div><div class='add'>+    fun_l18_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n474()</div><div class='add'>+    fun_l18_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n475()</div><div class='add'>+    fun_l18_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n476()</div><div class='add'>+    fun_l18_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n477()</div><div class='add'>+    fun_l18_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n478()</div><div class='add'>+    fun_l18_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n479()</div><div class='add'>+    fun_l18_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n480()</div><div class='add'>+    fun_l18_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n481()</div><div class='add'>+    fun_l18_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n482()</div><div class='add'>+    fun_l18_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n483()</div><div class='add'>+    fun_l18_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n484()</div><div class='add'>+    fun_l18_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n485()</div><div class='add'>+    fun_l18_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n486()</div><div class='add'>+    fun_l18_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n487()</div><div class='add'>+    fun_l18_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n488()</div><div class='add'>+    fun_l18_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n489()</div><div class='add'>+    fun_l18_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n490()</div><div class='add'>+    fun_l18_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n491()</div><div class='add'>+    fun_l18_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n492()</div><div class='add'>+    fun_l18_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n493()</div><div class='add'>+    fun_l18_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n494()</div><div class='add'>+    fun_l18_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n495()</div><div class='add'>+    fun_l18_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n496()</div><div class='add'>+    fun_l18_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n497()</div><div class='add'>+    fun_l18_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n498()</div><div class='add'>+    fun_l18_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n499()</div><div class='add'>+    fun_l18_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n500()</div><div class='add'>+    fun_l18_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n501()</div><div class='add'>+    fun_l18_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n502()</div><div class='add'>+    fun_l18_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n503()</div><div class='add'>+    fun_l18_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n504()</div><div class='add'>+    fun_l18_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n505()</div><div class='add'>+    fun_l18_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n506()</div><div class='add'>+    fun_l18_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n507()</div><div class='add'>+    fun_l18_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n508()</div><div class='add'>+    fun_l18_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n509()</div><div class='add'>+    fun_l18_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n510()</div><div class='add'>+    fun_l18_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n511()</div><div class='add'>+    fun_l18_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n512()</div><div class='add'>+    fun_l18_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n513()</div><div class='add'>+    fun_l18_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n514()</div><div class='add'>+    fun_l18_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n515()</div><div class='add'>+    fun_l18_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n516()</div><div class='add'>+    fun_l18_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n517()</div><div class='add'>+    fun_l18_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n518()</div><div class='add'>+    fun_l18_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n519()</div><div class='add'>+    fun_l18_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n520()</div><div class='add'>+    fun_l18_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n521()</div><div class='add'>+    fun_l18_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n522()</div><div class='add'>+    fun_l18_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n523()</div><div class='add'>+    fun_l18_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n524()</div><div class='add'>+    fun_l18_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n525()</div><div class='add'>+    fun_l18_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n526()</div><div class='add'>+    fun_l18_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n527()</div><div class='add'>+    fun_l18_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n528()</div><div class='add'>+    fun_l18_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n529()</div><div class='add'>+    fun_l18_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n530()</div><div class='add'>+    fun_l18_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n531()</div><div class='add'>+    fun_l18_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n532()</div><div class='add'>+    fun_l18_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n533()</div><div class='add'>+    fun_l18_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n534()</div><div class='add'>+    fun_l18_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n535()</div><div class='add'>+    fun_l18_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n536()</div><div class='add'>+    fun_l18_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n537()</div><div class='add'>+    fun_l18_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n538()</div><div class='add'>+    fun_l18_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n539()</div><div class='add'>+    fun_l18_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n540()</div><div class='add'>+    fun_l18_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n541()</div><div class='add'>+    fun_l18_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n542()</div><div class='add'>+    fun_l18_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n543()</div><div class='add'>+    fun_l18_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n544()</div><div class='add'>+    fun_l18_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n545()</div><div class='add'>+    fun_l18_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n546()</div><div class='add'>+    fun_l18_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n547()</div><div class='add'>+    fun_l18_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n548()</div><div class='add'>+    fun_l18_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n549()</div><div class='add'>+    fun_l18_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n550()</div><div class='add'>+    fun_l18_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n551()</div><div class='add'>+    fun_l18_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n552()</div><div class='add'>+    fun_l18_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n553()</div><div class='add'>+    fun_l18_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n554()</div><div class='add'>+    fun_l18_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n555()</div><div class='add'>+    fun_l18_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n556()</div><div class='add'>+    fun_l18_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n557()</div><div class='add'>+    fun_l18_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n558()</div><div class='add'>+    fun_l18_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n559()</div><div class='add'>+    fun_l18_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n560()</div><div class='add'>+    fun_l18_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n561()</div><div class='add'>+    fun_l18_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n562()</div><div class='add'>+    fun_l18_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n563()</div><div class='add'>+    fun_l18_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n564()</div><div class='add'>+    fun_l18_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n565()</div><div class='add'>+    fun_l18_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n566()</div><div class='add'>+    fun_l18_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n567()</div><div class='add'>+    fun_l18_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n568()</div><div class='add'>+    fun_l18_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n569()</div><div class='add'>+    fun_l18_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n570()</div><div class='add'>+    fun_l18_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n571()</div><div class='add'>+    fun_l18_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n572()</div><div class='add'>+    fun_l18_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n573()</div><div class='add'>+    fun_l18_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n574()</div><div class='add'>+    fun_l18_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n575()</div><div class='add'>+    fun_l18_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n576()</div><div class='add'>+    fun_l18_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n577()</div><div class='add'>+    fun_l18_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n578()</div><div class='add'>+    fun_l18_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n579()</div><div class='add'>+    fun_l18_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n580()</div><div class='add'>+    fun_l18_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n581()</div><div class='add'>+    fun_l18_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n582()</div><div class='add'>+    fun_l18_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n583()</div><div class='add'>+    fun_l18_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n584()</div><div class='add'>+    fun_l18_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n585()</div><div class='add'>+    fun_l18_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n586()</div><div class='add'>+    fun_l18_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n587()</div><div class='add'>+    fun_l18_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n588()</div><div class='add'>+    fun_l18_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n589()</div><div class='add'>+    fun_l18_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n590()</div><div class='add'>+    fun_l18_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n591()</div><div class='add'>+    fun_l18_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n592()</div><div class='add'>+    fun_l18_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n593()</div><div class='add'>+    fun_l18_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n594()</div><div class='add'>+    fun_l18_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n595()</div><div class='add'>+    fun_l18_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n596()</div><div class='add'>+    fun_l18_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n597()</div><div class='add'>+    fun_l18_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n598()</div><div class='add'>+    fun_l18_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n599()</div><div class='add'>+    fun_l18_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n600()</div><div class='add'>+    fun_l18_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n601()</div><div class='add'>+    fun_l18_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n602()</div><div class='add'>+    fun_l18_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n603()</div><div class='add'>+    fun_l18_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n604()</div><div class='add'>+    fun_l18_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n605()</div><div class='add'>+    fun_l18_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n606()</div><div class='add'>+    fun_l18_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n607()</div><div class='add'>+    fun_l18_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n608()</div><div class='add'>+    fun_l18_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n609()</div><div class='add'>+    fun_l18_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n610()</div><div class='add'>+    fun_l18_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n611()</div><div class='add'>+    fun_l18_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n612()</div><div class='add'>+    fun_l18_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n613()</div><div class='add'>+    fun_l18_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n614()</div><div class='add'>+    fun_l18_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n615()</div><div class='add'>+    fun_l18_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n616()</div><div class='add'>+    fun_l18_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n617()</div><div class='add'>+    fun_l18_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n618()</div><div class='add'>+    fun_l18_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n619()</div><div class='add'>+    fun_l18_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n620()</div><div class='add'>+    fun_l18_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n621()</div><div class='add'>+    fun_l18_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n622()</div><div class='add'>+    fun_l18_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n623()</div><div class='add'>+    fun_l18_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n624()</div><div class='add'>+    fun_l18_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n625()</div><div class='add'>+    fun_l18_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n626()</div><div class='add'>+    fun_l18_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n627()</div><div class='add'>+    fun_l18_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n628()</div><div class='add'>+    fun_l18_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n629()</div><div class='add'>+    fun_l18_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n630()</div><div class='add'>+    fun_l18_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n631()</div><div class='add'>+    fun_l18_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n632()</div><div class='add'>+    fun_l18_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n633()</div><div class='add'>+    fun_l18_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n634()</div><div class='add'>+    fun_l18_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n635()</div><div class='add'>+    fun_l18_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n636()</div><div class='add'>+    fun_l18_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n637()</div><div class='add'>+    fun_l18_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n638()</div><div class='add'>+    fun_l18_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n639()</div><div class='add'>+    fun_l18_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n640()</div><div class='add'>+    fun_l18_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n641()</div><div class='add'>+    fun_l18_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n642()</div><div class='add'>+    fun_l18_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n643()</div><div class='add'>+    fun_l18_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n644()</div><div class='add'>+    fun_l18_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n645()</div><div class='add'>+    fun_l18_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n646()</div><div class='add'>+    fun_l18_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n647()</div><div class='add'>+    fun_l18_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n648()</div><div class='add'>+    fun_l18_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n649()</div><div class='add'>+    fun_l18_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n650()</div><div class='add'>+    fun_l18_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n651()</div><div class='add'>+    fun_l18_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n652()</div><div class='add'>+    fun_l18_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n653()</div><div class='add'>+    fun_l18_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n654()</div><div class='add'>+    fun_l18_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n655()</div><div class='add'>+    fun_l18_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n656()</div><div class='add'>+    fun_l18_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n657()</div><div class='add'>+    fun_l18_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n658()</div><div class='add'>+    fun_l18_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n659()</div><div class='add'>+    fun_l18_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n660()</div><div class='add'>+    fun_l18_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n661()</div><div class='add'>+    fun_l18_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n662()</div><div class='add'>+    fun_l18_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n663()</div><div class='add'>+    fun_l18_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n664()</div><div class='add'>+    fun_l18_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n665()</div><div class='add'>+    fun_l18_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n666()</div><div class='add'>+    fun_l18_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n667()</div><div class='add'>+    fun_l18_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n668()</div><div class='add'>+    fun_l18_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n669()</div><div class='add'>+    fun_l18_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n670()</div><div class='add'>+    fun_l18_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n671()</div><div class='add'>+    fun_l18_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n672()</div><div class='add'>+    fun_l18_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n673()</div><div class='add'>+    fun_l18_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n674()</div><div class='add'>+    fun_l18_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n675()</div><div class='add'>+    fun_l18_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n676()</div><div class='add'>+    fun_l18_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n677()</div><div class='add'>+    fun_l18_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n678()</div><div class='add'>+    fun_l18_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n679()</div><div class='add'>+    fun_l18_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n680()</div><div class='add'>+    fun_l18_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n681()</div><div class='add'>+    fun_l18_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n682()</div><div class='add'>+    fun_l18_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n683()</div><div class='add'>+    fun_l18_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n684()</div><div class='add'>+    fun_l18_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n685()</div><div class='add'>+    fun_l18_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n686()</div><div class='add'>+    fun_l18_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n687()</div><div class='add'>+    fun_l18_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n688()</div><div class='add'>+    fun_l18_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n689()</div><div class='add'>+    fun_l18_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n690()</div><div class='add'>+    fun_l18_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n691()</div><div class='add'>+    fun_l18_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n692()</div><div class='add'>+    fun_l18_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n693()</div><div class='add'>+    fun_l18_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n694()</div><div class='add'>+    fun_l18_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n695()</div><div class='add'>+    fun_l18_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n696()</div><div class='add'>+    fun_l18_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n697()</div><div class='add'>+    fun_l18_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n698()</div><div class='add'>+    fun_l18_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n699()</div><div class='add'>+    fun_l18_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n700()</div><div class='add'>+    fun_l18_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n701()</div><div class='add'>+    fun_l18_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n702()</div><div class='add'>+    fun_l18_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n703()</div><div class='add'>+    fun_l18_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n704()</div><div class='add'>+    fun_l18_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n705()</div><div class='add'>+    fun_l18_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n706()</div><div class='add'>+    fun_l18_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n707()</div><div class='add'>+    fun_l18_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n708()</div><div class='add'>+    fun_l18_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n709()</div><div class='add'>+    fun_l18_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n710()</div><div class='add'>+    fun_l18_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n711()</div><div class='add'>+    fun_l18_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n712()</div><div class='add'>+    fun_l18_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n713()</div><div class='add'>+    fun_l18_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n714()</div><div class='add'>+    fun_l18_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n715()</div><div class='add'>+    fun_l18_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n716()</div><div class='add'>+    fun_l18_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n717()</div><div class='add'>+    fun_l18_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n718()</div><div class='add'>+    fun_l18_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n719()</div><div class='add'>+    fun_l18_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n720()</div><div class='add'>+    fun_l18_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n721()</div><div class='add'>+    fun_l18_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n722()</div><div class='add'>+    fun_l18_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n723()</div><div class='add'>+    fun_l18_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n724()</div><div class='add'>+    fun_l18_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n725()</div><div class='add'>+    fun_l18_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n726()</div><div class='add'>+    fun_l18_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n727()</div><div class='add'>+    fun_l18_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n728()</div><div class='add'>+    fun_l18_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n729()</div><div class='add'>+    fun_l18_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n730()</div><div class='add'>+    fun_l18_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n731()</div><div class='add'>+    fun_l18_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n732()</div><div class='add'>+    fun_l18_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n733()</div><div class='add'>+    fun_l18_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n734()</div><div class='add'>+    fun_l18_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n735()</div><div class='add'>+    fun_l18_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n736()</div><div class='add'>+    fun_l18_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n737()</div><div class='add'>+    fun_l18_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n738()</div><div class='add'>+    fun_l18_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n739()</div><div class='add'>+    fun_l18_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n740()</div><div class='add'>+    fun_l18_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n741()</div><div class='add'>+    fun_l18_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n742()</div><div class='add'>+    fun_l18_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n743()</div><div class='add'>+    fun_l18_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n744()</div><div class='add'>+    fun_l18_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n745()</div><div class='add'>+    fun_l18_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n746()</div><div class='add'>+    fun_l18_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n747()</div><div class='add'>+    fun_l18_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n748()</div><div class='add'>+    fun_l18_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n749()</div><div class='add'>+    fun_l18_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n750()</div><div class='add'>+    fun_l18_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n751()</div><div class='add'>+    fun_l18_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n752()</div><div class='add'>+    fun_l18_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n753()</div><div class='add'>+    fun_l18_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n754()</div><div class='add'>+    fun_l18_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n755()</div><div class='add'>+    fun_l18_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n756()</div><div class='add'>+    fun_l18_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n757()</div><div class='add'>+    fun_l18_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n758()</div><div class='add'>+    fun_l18_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n759()</div><div class='add'>+    fun_l18_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n760()</div><div class='add'>+    fun_l18_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n761()</div><div class='add'>+    fun_l18_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n762()</div><div class='add'>+    fun_l18_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n763()</div><div class='add'>+    fun_l18_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n764()</div><div class='add'>+    fun_l18_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n765()</div><div class='add'>+    fun_l18_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n766()</div><div class='add'>+    fun_l18_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n767()</div><div class='add'>+    fun_l18_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n768()</div><div class='add'>+    fun_l18_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n769()</div><div class='add'>+    fun_l18_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n770()</div><div class='add'>+    fun_l18_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n771()</div><div class='add'>+    fun_l18_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n772()</div><div class='add'>+    fun_l18_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n773()</div><div class='add'>+    fun_l18_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n774()</div><div class='add'>+    fun_l18_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n775()</div><div class='add'>+    fun_l18_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n776()</div><div class='add'>+    fun_l18_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n777()</div><div class='add'>+    fun_l18_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n778()</div><div class='add'>+    fun_l18_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n779()</div><div class='add'>+    fun_l18_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n780()</div><div class='add'>+    fun_l18_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n781()</div><div class='add'>+    fun_l18_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n782()</div><div class='add'>+    fun_l18_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n783()</div><div class='add'>+    fun_l18_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n784()</div><div class='add'>+    fun_l18_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n785()</div><div class='add'>+    fun_l18_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n786()</div><div class='add'>+    fun_l18_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n787()</div><div class='add'>+    fun_l18_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n788()</div><div class='add'>+    fun_l18_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n789()</div><div class='add'>+    fun_l18_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n790()</div><div class='add'>+    fun_l18_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n791()</div><div class='add'>+    fun_l18_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n792()</div><div class='add'>+    fun_l18_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n793()</div><div class='add'>+    fun_l18_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n794()</div><div class='add'>+    fun_l18_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n795()</div><div class='add'>+    fun_l18_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n796()</div><div class='add'>+    fun_l18_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n797()</div><div class='add'>+    fun_l18_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n798()</div><div class='add'>+    fun_l18_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n799()</div><div class='add'>+    fun_l18_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n800()</div><div class='add'>+    fun_l18_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n801()</div><div class='add'>+    fun_l18_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n802()</div><div class='add'>+    fun_l18_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n803()</div><div class='add'>+    fun_l18_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n804()</div><div class='add'>+    fun_l18_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n805()</div><div class='add'>+    fun_l18_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n806()</div><div class='add'>+    fun_l18_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n807()</div><div class='add'>+    fun_l18_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n808()</div><div class='add'>+    fun_l18_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n809()</div><div class='add'>+    fun_l18_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n810()</div><div class='add'>+    fun_l18_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n811()</div><div class='add'>+    fun_l18_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n812()</div><div class='add'>+    fun_l18_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n813()</div><div class='add'>+    fun_l18_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n814()</div><div class='add'>+    fun_l18_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n815()</div><div class='add'>+    fun_l18_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n816()</div><div class='add'>+    fun_l18_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n817()</div><div class='add'>+    fun_l18_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n818()</div><div class='add'>+    fun_l18_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n819()</div><div class='add'>+    fun_l18_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n820()</div><div class='add'>+    fun_l18_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n821()</div><div class='add'>+    fun_l18_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n822()</div><div class='add'>+    fun_l18_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n823()</div><div class='add'>+    fun_l18_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n824()</div><div class='add'>+    fun_l18_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n825()</div><div class='add'>+    fun_l18_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n826()</div><div class='add'>+    fun_l18_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n827()</div><div class='add'>+    fun_l18_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n828()</div><div class='add'>+    fun_l18_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n829()</div><div class='add'>+    fun_l18_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n830()</div><div class='add'>+    fun_l18_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n831()</div><div class='add'>+    fun_l18_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n832()</div><div class='add'>+    fun_l18_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n833()</div><div class='add'>+    fun_l18_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n834()</div><div class='add'>+    fun_l18_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n835()</div><div class='add'>+    fun_l18_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n836()</div><div class='add'>+    fun_l18_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n837()</div><div class='add'>+    fun_l18_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n838()</div><div class='add'>+    fun_l18_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n839()</div><div class='add'>+    fun_l18_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n840()</div><div class='add'>+    fun_l18_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n841()</div><div class='add'>+    fun_l18_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n842()</div><div class='add'>+    fun_l18_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n843()</div><div class='add'>+    fun_l18_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n844()</div><div class='add'>+    fun_l18_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n845()</div><div class='add'>+    fun_l18_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n846()</div><div class='add'>+    fun_l18_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n847()</div><div class='add'>+    fun_l18_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n848()</div><div class='add'>+    fun_l18_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n849()</div><div class='add'>+    fun_l18_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n850()</div><div class='add'>+    fun_l18_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n851()</div><div class='add'>+    fun_l18_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n852()</div><div class='add'>+    fun_l18_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n853()</div><div class='add'>+    fun_l18_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n854()</div><div class='add'>+    fun_l18_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n855()</div><div class='add'>+    fun_l18_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n856()</div><div class='add'>+    fun_l18_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n857()</div><div class='add'>+    fun_l18_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n858()</div><div class='add'>+    fun_l18_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n859()</div><div class='add'>+    fun_l18_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n860()</div><div class='add'>+    fun_l18_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n861()</div><div class='add'>+    fun_l18_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n862()</div><div class='add'>+    fun_l18_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n863()</div><div class='add'>+    fun_l18_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n864()</div><div class='add'>+    fun_l18_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n865()</div><div class='add'>+    fun_l18_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n866()</div><div class='add'>+    fun_l18_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n867()</div><div class='add'>+    fun_l18_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n868()</div><div class='add'>+    fun_l18_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n869()</div><div class='add'>+    fun_l18_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n870()</div><div class='add'>+    fun_l18_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n871()</div><div class='add'>+    fun_l18_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n872()</div><div class='add'>+    fun_l18_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n873()</div><div class='add'>+    fun_l18_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n874()</div><div class='add'>+    fun_l18_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n875()</div><div class='add'>+    fun_l18_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n876()</div><div class='add'>+    fun_l18_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n877()</div><div class='add'>+    fun_l18_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n878()</div><div class='add'>+    fun_l18_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n879()</div><div class='add'>+    fun_l18_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n880()</div><div class='add'>+    fun_l18_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n881()</div><div class='add'>+    fun_l18_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n882()</div><div class='add'>+    fun_l18_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n883()</div><div class='add'>+    fun_l18_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n884()</div><div class='add'>+    fun_l18_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n885()</div><div class='add'>+    fun_l18_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n886()</div><div class='add'>+    fun_l18_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n887()</div><div class='add'>+    fun_l18_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n888()</div><div class='add'>+    fun_l18_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n889()</div><div class='add'>+    fun_l18_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n890()</div><div class='add'>+    fun_l18_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n891()</div><div class='add'>+    fun_l18_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n892()</div><div class='add'>+    fun_l18_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n893()</div><div class='add'>+    fun_l18_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n894()</div><div class='add'>+    fun_l18_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n895()</div><div class='add'>+    fun_l18_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n896()</div><div class='add'>+    fun_l18_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n897()</div><div class='add'>+    fun_l18_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n898()</div><div class='add'>+    fun_l18_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n899()</div><div class='add'>+    fun_l18_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n900()</div><div class='add'>+    fun_l18_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n901()</div><div class='add'>+    fun_l18_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n902()</div><div class='add'>+    fun_l18_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n903()</div><div class='add'>+    fun_l18_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n904()</div><div class='add'>+    fun_l18_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n905()</div><div class='add'>+    fun_l18_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n906()</div><div class='add'>+    fun_l18_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n907()</div><div class='add'>+    fun_l18_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n908()</div><div class='add'>+    fun_l18_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n909()</div><div class='add'>+    fun_l18_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n910()</div><div class='add'>+    fun_l18_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n911()</div><div class='add'>+    fun_l18_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n912()</div><div class='add'>+    fun_l18_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n913()</div><div class='add'>+    fun_l18_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n914()</div><div class='add'>+    fun_l18_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n915()</div><div class='add'>+    fun_l18_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n916()</div><div class='add'>+    fun_l18_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n917()</div><div class='add'>+    fun_l18_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n918()</div><div class='add'>+    fun_l18_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n919()</div><div class='add'>+    fun_l18_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n920()</div><div class='add'>+    fun_l18_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n921()</div><div class='add'>+    fun_l18_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n922()</div><div class='add'>+    fun_l18_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n923()</div><div class='add'>+    fun_l18_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n924()</div><div class='add'>+    fun_l18_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n925()</div><div class='add'>+    fun_l18_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n926()</div><div class='add'>+    fun_l18_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n927()</div><div class='add'>+    fun_l18_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n928()</div><div class='add'>+    fun_l18_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n929()</div><div class='add'>+    fun_l18_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n930()</div><div class='add'>+    fun_l18_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n931()</div><div class='add'>+    fun_l18_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n932()</div><div class='add'>+    fun_l18_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n933()</div><div class='add'>+    fun_l18_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n934()</div><div class='add'>+    fun_l18_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n935()</div><div class='add'>+    fun_l18_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n936()</div><div class='add'>+    fun_l18_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n937()</div><div class='add'>+    fun_l18_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n938()</div><div class='add'>+    fun_l18_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n939()</div><div class='add'>+    fun_l18_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n940()</div><div class='add'>+    fun_l18_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n941()</div><div class='add'>+    fun_l18_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n942()</div><div class='add'>+    fun_l18_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n943()</div><div class='add'>+    fun_l18_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n944()</div><div class='add'>+    fun_l18_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n945()</div><div class='add'>+    fun_l18_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n946()</div><div class='add'>+    fun_l18_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n947()</div><div class='add'>+    fun_l18_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n948()</div><div class='add'>+    fun_l18_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n949()</div><div class='add'>+    fun_l18_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n950()</div><div class='add'>+    fun_l18_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n951()</div><div class='add'>+    fun_l18_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n952()</div><div class='add'>+    fun_l18_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n953()</div><div class='add'>+    fun_l18_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n954()</div><div class='add'>+    fun_l18_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n955()</div><div class='add'>+    fun_l18_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n956()</div><div class='add'>+    fun_l18_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n957()</div><div class='add'>+    fun_l18_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n958()</div><div class='add'>+    fun_l18_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n959()</div><div class='add'>+    fun_l18_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n960()</div><div class='add'>+    fun_l18_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n961()</div><div class='add'>+    fun_l18_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n962()</div><div class='add'>+    fun_l18_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n963()</div><div class='add'>+    fun_l18_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n964()</div><div class='add'>+    fun_l18_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n965()</div><div class='add'>+    fun_l18_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n966()</div><div class='add'>+    fun_l18_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n967()</div><div class='add'>+    fun_l18_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n968()</div><div class='add'>+    fun_l18_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n969()</div><div class='add'>+    fun_l18_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n970()</div><div class='add'>+    fun_l18_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n971()</div><div class='add'>+    fun_l18_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n972()</div><div class='add'>+    fun_l18_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n973()</div><div class='add'>+    fun_l18_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n974()</div><div class='add'>+    fun_l18_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n975()</div><div class='add'>+    fun_l18_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n976()</div><div class='add'>+    fun_l18_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n977()</div><div class='add'>+    fun_l18_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n978()</div><div class='add'>+    fun_l18_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n979()</div><div class='add'>+    fun_l18_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n980()</div><div class='add'>+    fun_l18_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n981()</div><div class='add'>+    fun_l18_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n982()</div><div class='add'>+    fun_l18_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n983()</div><div class='add'>+    fun_l18_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n984()</div><div class='add'>+    fun_l18_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n985()</div><div class='add'>+    fun_l18_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n986()</div><div class='add'>+    fun_l18_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n987()</div><div class='add'>+    fun_l18_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n988()</div><div class='add'>+    fun_l18_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n989()</div><div class='add'>+    fun_l18_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n990()</div><div class='add'>+    fun_l18_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n991()</div><div class='add'>+    fun_l18_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n992()</div><div class='add'>+    fun_l18_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n993()</div><div class='add'>+    fun_l18_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n994()</div><div class='add'>+    fun_l18_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n995()</div><div class='add'>+    fun_l18_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n996()</div><div class='add'>+    fun_l18_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n997()</div><div class='add'>+    fun_l18_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n998()</div><div class='add'>+    fun_l18_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l17_n999()</div><div class='add'>+    fun_l18_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n0()</div><div class='add'>+    fun_l19_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n1()</div><div class='add'>+    fun_l19_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n2()</div><div class='add'>+    fun_l19_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n3()</div><div class='add'>+    fun_l19_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n4()</div><div class='add'>+    fun_l19_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n5()</div><div class='add'>+    fun_l19_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n6()</div><div class='add'>+    fun_l19_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n7()</div><div class='add'>+    fun_l19_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n8()</div><div class='add'>+    fun_l19_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n9()</div><div class='add'>+    fun_l19_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n10()</div><div class='add'>+    fun_l19_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n11()</div><div class='add'>+    fun_l19_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n12()</div><div class='add'>+    fun_l19_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n13()</div><div class='add'>+    fun_l19_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n14()</div><div class='add'>+    fun_l19_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n15()</div><div class='add'>+    fun_l19_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n16()</div><div class='add'>+    fun_l19_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n17()</div><div class='add'>+    fun_l19_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n18()</div><div class='add'>+    fun_l19_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n19()</div><div class='add'>+    fun_l19_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n20()</div><div class='add'>+    fun_l19_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n21()</div><div class='add'>+    fun_l19_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n22()</div><div class='add'>+    fun_l19_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n23()</div><div class='add'>+    fun_l19_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n24()</div><div class='add'>+    fun_l19_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n25()</div><div class='add'>+    fun_l19_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n26()</div><div class='add'>+    fun_l19_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n27()</div><div class='add'>+    fun_l19_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n28()</div><div class='add'>+    fun_l19_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n29()</div><div class='add'>+    fun_l19_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n30()</div><div class='add'>+    fun_l19_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n31()</div><div class='add'>+    fun_l19_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n32()</div><div class='add'>+    fun_l19_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n33()</div><div class='add'>+    fun_l19_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n34()</div><div class='add'>+    fun_l19_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n35()</div><div class='add'>+    fun_l19_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n36()</div><div class='add'>+    fun_l19_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n37()</div><div class='add'>+    fun_l19_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n38()</div><div class='add'>+    fun_l19_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n39()</div><div class='add'>+    fun_l19_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n40()</div><div class='add'>+    fun_l19_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n41()</div><div class='add'>+    fun_l19_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n42()</div><div class='add'>+    fun_l19_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n43()</div><div class='add'>+    fun_l19_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n44()</div><div class='add'>+    fun_l19_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n45()</div><div class='add'>+    fun_l19_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n46()</div><div class='add'>+    fun_l19_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n47()</div><div class='add'>+    fun_l19_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n48()</div><div class='add'>+    fun_l19_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n49()</div><div class='add'>+    fun_l19_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n50()</div><div class='add'>+    fun_l19_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n51()</div><div class='add'>+    fun_l19_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n52()</div><div class='add'>+    fun_l19_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n53()</div><div class='add'>+    fun_l19_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n54()</div><div class='add'>+    fun_l19_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n55()</div><div class='add'>+    fun_l19_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n56()</div><div class='add'>+    fun_l19_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n57()</div><div class='add'>+    fun_l19_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n58()</div><div class='add'>+    fun_l19_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n59()</div><div class='add'>+    fun_l19_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n60()</div><div class='add'>+    fun_l19_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n61()</div><div class='add'>+    fun_l19_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n62()</div><div class='add'>+    fun_l19_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n63()</div><div class='add'>+    fun_l19_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n64()</div><div class='add'>+    fun_l19_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n65()</div><div class='add'>+    fun_l19_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n66()</div><div class='add'>+    fun_l19_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n67()</div><div class='add'>+    fun_l19_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n68()</div><div class='add'>+    fun_l19_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n69()</div><div class='add'>+    fun_l19_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n70()</div><div class='add'>+    fun_l19_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n71()</div><div class='add'>+    fun_l19_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n72()</div><div class='add'>+    fun_l19_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n73()</div><div class='add'>+    fun_l19_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n74()</div><div class='add'>+    fun_l19_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n75()</div><div class='add'>+    fun_l19_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n76()</div><div class='add'>+    fun_l19_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n77()</div><div class='add'>+    fun_l19_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n78()</div><div class='add'>+    fun_l19_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n79()</div><div class='add'>+    fun_l19_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n80()</div><div class='add'>+    fun_l19_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n81()</div><div class='add'>+    fun_l19_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n82()</div><div class='add'>+    fun_l19_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n83()</div><div class='add'>+    fun_l19_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n84()</div><div class='add'>+    fun_l19_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n85()</div><div class='add'>+    fun_l19_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n86()</div><div class='add'>+    fun_l19_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n87()</div><div class='add'>+    fun_l19_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n88()</div><div class='add'>+    fun_l19_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n89()</div><div class='add'>+    fun_l19_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n90()</div><div class='add'>+    fun_l19_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n91()</div><div class='add'>+    fun_l19_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n92()</div><div class='add'>+    fun_l19_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n93()</div><div class='add'>+    fun_l19_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n94()</div><div class='add'>+    fun_l19_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n95()</div><div class='add'>+    fun_l19_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n96()</div><div class='add'>+    fun_l19_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n97()</div><div class='add'>+    fun_l19_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n98()</div><div class='add'>+    fun_l19_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n99()</div><div class='add'>+    fun_l19_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n100()</div><div class='add'>+    fun_l19_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n101()</div><div class='add'>+    fun_l19_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n102()</div><div class='add'>+    fun_l19_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n103()</div><div class='add'>+    fun_l19_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n104()</div><div class='add'>+    fun_l19_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n105()</div><div class='add'>+    fun_l19_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n106()</div><div class='add'>+    fun_l19_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n107()</div><div class='add'>+    fun_l19_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n108()</div><div class='add'>+    fun_l19_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n109()</div><div class='add'>+    fun_l19_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n110()</div><div class='add'>+    fun_l19_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n111()</div><div class='add'>+    fun_l19_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n112()</div><div class='add'>+    fun_l19_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n113()</div><div class='add'>+    fun_l19_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n114()</div><div class='add'>+    fun_l19_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n115()</div><div class='add'>+    fun_l19_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n116()</div><div class='add'>+    fun_l19_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n117()</div><div class='add'>+    fun_l19_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n118()</div><div class='add'>+    fun_l19_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n119()</div><div class='add'>+    fun_l19_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n120()</div><div class='add'>+    fun_l19_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n121()</div><div class='add'>+    fun_l19_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n122()</div><div class='add'>+    fun_l19_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n123()</div><div class='add'>+    fun_l19_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n124()</div><div class='add'>+    fun_l19_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n125()</div><div class='add'>+    fun_l19_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n126()</div><div class='add'>+    fun_l19_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n127()</div><div class='add'>+    fun_l19_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n128()</div><div class='add'>+    fun_l19_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n129()</div><div class='add'>+    fun_l19_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n130()</div><div class='add'>+    fun_l19_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n131()</div><div class='add'>+    fun_l19_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n132()</div><div class='add'>+    fun_l19_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n133()</div><div class='add'>+    fun_l19_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n134()</div><div class='add'>+    fun_l19_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n135()</div><div class='add'>+    fun_l19_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n136()</div><div class='add'>+    fun_l19_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n137()</div><div class='add'>+    fun_l19_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n138()</div><div class='add'>+    fun_l19_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n139()</div><div class='add'>+    fun_l19_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n140()</div><div class='add'>+    fun_l19_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n141()</div><div class='add'>+    fun_l19_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n142()</div><div class='add'>+    fun_l19_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n143()</div><div class='add'>+    fun_l19_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n144()</div><div class='add'>+    fun_l19_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n145()</div><div class='add'>+    fun_l19_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n146()</div><div class='add'>+    fun_l19_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n147()</div><div class='add'>+    fun_l19_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n148()</div><div class='add'>+    fun_l19_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n149()</div><div class='add'>+    fun_l19_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n150()</div><div class='add'>+    fun_l19_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n151()</div><div class='add'>+    fun_l19_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n152()</div><div class='add'>+    fun_l19_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n153()</div><div class='add'>+    fun_l19_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n154()</div><div class='add'>+    fun_l19_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n155()</div><div class='add'>+    fun_l19_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n156()</div><div class='add'>+    fun_l19_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n157()</div><div class='add'>+    fun_l19_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n158()</div><div class='add'>+    fun_l19_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n159()</div><div class='add'>+    fun_l19_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n160()</div><div class='add'>+    fun_l19_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n161()</div><div class='add'>+    fun_l19_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n162()</div><div class='add'>+    fun_l19_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n163()</div><div class='add'>+    fun_l19_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n164()</div><div class='add'>+    fun_l19_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n165()</div><div class='add'>+    fun_l19_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n166()</div><div class='add'>+    fun_l19_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n167()</div><div class='add'>+    fun_l19_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n168()</div><div class='add'>+    fun_l19_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n169()</div><div class='add'>+    fun_l19_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n170()</div><div class='add'>+    fun_l19_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n171()</div><div class='add'>+    fun_l19_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n172()</div><div class='add'>+    fun_l19_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n173()</div><div class='add'>+    fun_l19_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n174()</div><div class='add'>+    fun_l19_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n175()</div><div class='add'>+    fun_l19_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n176()</div><div class='add'>+    fun_l19_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n177()</div><div class='add'>+    fun_l19_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n178()</div><div class='add'>+    fun_l19_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n179()</div><div class='add'>+    fun_l19_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n180()</div><div class='add'>+    fun_l19_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n181()</div><div class='add'>+    fun_l19_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n182()</div><div class='add'>+    fun_l19_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n183()</div><div class='add'>+    fun_l19_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n184()</div><div class='add'>+    fun_l19_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n185()</div><div class='add'>+    fun_l19_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n186()</div><div class='add'>+    fun_l19_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n187()</div><div class='add'>+    fun_l19_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n188()</div><div class='add'>+    fun_l19_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n189()</div><div class='add'>+    fun_l19_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n190()</div><div class='add'>+    fun_l19_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n191()</div><div class='add'>+    fun_l19_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n192()</div><div class='add'>+    fun_l19_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n193()</div><div class='add'>+    fun_l19_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n194()</div><div class='add'>+    fun_l19_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n195()</div><div class='add'>+    fun_l19_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n196()</div><div class='add'>+    fun_l19_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n197()</div><div class='add'>+    fun_l19_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n198()</div><div class='add'>+    fun_l19_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n199()</div><div class='add'>+    fun_l19_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n200()</div><div class='add'>+    fun_l19_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n201()</div><div class='add'>+    fun_l19_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n202()</div><div class='add'>+    fun_l19_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n203()</div><div class='add'>+    fun_l19_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n204()</div><div class='add'>+    fun_l19_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n205()</div><div class='add'>+    fun_l19_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n206()</div><div class='add'>+    fun_l19_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n207()</div><div class='add'>+    fun_l19_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n208()</div><div class='add'>+    fun_l19_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n209()</div><div class='add'>+    fun_l19_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n210()</div><div class='add'>+    fun_l19_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n211()</div><div class='add'>+    fun_l19_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n212()</div><div class='add'>+    fun_l19_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n213()</div><div class='add'>+    fun_l19_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n214()</div><div class='add'>+    fun_l19_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n215()</div><div class='add'>+    fun_l19_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n216()</div><div class='add'>+    fun_l19_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n217()</div><div class='add'>+    fun_l19_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n218()</div><div class='add'>+    fun_l19_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n219()</div><div class='add'>+    fun_l19_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n220()</div><div class='add'>+    fun_l19_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n221()</div><div class='add'>+    fun_l19_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n222()</div><div class='add'>+    fun_l19_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n223()</div><div class='add'>+    fun_l19_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n224()</div><div class='add'>+    fun_l19_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n225()</div><div class='add'>+    fun_l19_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n226()</div><div class='add'>+    fun_l19_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n227()</div><div class='add'>+    fun_l19_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n228()</div><div class='add'>+    fun_l19_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n229()</div><div class='add'>+    fun_l19_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n230()</div><div class='add'>+    fun_l19_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n231()</div><div class='add'>+    fun_l19_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n232()</div><div class='add'>+    fun_l19_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n233()</div><div class='add'>+    fun_l19_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n234()</div><div class='add'>+    fun_l19_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n235()</div><div class='add'>+    fun_l19_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n236()</div><div class='add'>+    fun_l19_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n237()</div><div class='add'>+    fun_l19_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n238()</div><div class='add'>+    fun_l19_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n239()</div><div class='add'>+    fun_l19_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n240()</div><div class='add'>+    fun_l19_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n241()</div><div class='add'>+    fun_l19_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n242()</div><div class='add'>+    fun_l19_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n243()</div><div class='add'>+    fun_l19_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n244()</div><div class='add'>+    fun_l19_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n245()</div><div class='add'>+    fun_l19_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n246()</div><div class='add'>+    fun_l19_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n247()</div><div class='add'>+    fun_l19_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n248()</div><div class='add'>+    fun_l19_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n249()</div><div class='add'>+    fun_l19_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n250()</div><div class='add'>+    fun_l19_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n251()</div><div class='add'>+    fun_l19_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n252()</div><div class='add'>+    fun_l19_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n253()</div><div class='add'>+    fun_l19_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n254()</div><div class='add'>+    fun_l19_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n255()</div><div class='add'>+    fun_l19_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n256()</div><div class='add'>+    fun_l19_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n257()</div><div class='add'>+    fun_l19_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n258()</div><div class='add'>+    fun_l19_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n259()</div><div class='add'>+    fun_l19_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n260()</div><div class='add'>+    fun_l19_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n261()</div><div class='add'>+    fun_l19_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n262()</div><div class='add'>+    fun_l19_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n263()</div><div class='add'>+    fun_l19_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n264()</div><div class='add'>+    fun_l19_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n265()</div><div class='add'>+    fun_l19_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n266()</div><div class='add'>+    fun_l19_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n267()</div><div class='add'>+    fun_l19_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n268()</div><div class='add'>+    fun_l19_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n269()</div><div class='add'>+    fun_l19_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n270()</div><div class='add'>+    fun_l19_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n271()</div><div class='add'>+    fun_l19_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n272()</div><div class='add'>+    fun_l19_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n273()</div><div class='add'>+    fun_l19_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n274()</div><div class='add'>+    fun_l19_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n275()</div><div class='add'>+    fun_l19_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n276()</div><div class='add'>+    fun_l19_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n277()</div><div class='add'>+    fun_l19_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n278()</div><div class='add'>+    fun_l19_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n279()</div><div class='add'>+    fun_l19_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n280()</div><div class='add'>+    fun_l19_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n281()</div><div class='add'>+    fun_l19_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n282()</div><div class='add'>+    fun_l19_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n283()</div><div class='add'>+    fun_l19_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n284()</div><div class='add'>+    fun_l19_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n285()</div><div class='add'>+    fun_l19_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n286()</div><div class='add'>+    fun_l19_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n287()</div><div class='add'>+    fun_l19_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n288()</div><div class='add'>+    fun_l19_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n289()</div><div class='add'>+    fun_l19_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n290()</div><div class='add'>+    fun_l19_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n291()</div><div class='add'>+    fun_l19_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n292()</div><div class='add'>+    fun_l19_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n293()</div><div class='add'>+    fun_l19_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n294()</div><div class='add'>+    fun_l19_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n295()</div><div class='add'>+    fun_l19_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n296()</div><div class='add'>+    fun_l19_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n297()</div><div class='add'>+    fun_l19_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n298()</div><div class='add'>+    fun_l19_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n299()</div><div class='add'>+    fun_l19_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n300()</div><div class='add'>+    fun_l19_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n301()</div><div class='add'>+    fun_l19_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n302()</div><div class='add'>+    fun_l19_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n303()</div><div class='add'>+    fun_l19_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n304()</div><div class='add'>+    fun_l19_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n305()</div><div class='add'>+    fun_l19_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n306()</div><div class='add'>+    fun_l19_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n307()</div><div class='add'>+    fun_l19_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n308()</div><div class='add'>+    fun_l19_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n309()</div><div class='add'>+    fun_l19_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n310()</div><div class='add'>+    fun_l19_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n311()</div><div class='add'>+    fun_l19_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n312()</div><div class='add'>+    fun_l19_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n313()</div><div class='add'>+    fun_l19_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n314()</div><div class='add'>+    fun_l19_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n315()</div><div class='add'>+    fun_l19_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n316()</div><div class='add'>+    fun_l19_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n317()</div><div class='add'>+    fun_l19_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n318()</div><div class='add'>+    fun_l19_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n319()</div><div class='add'>+    fun_l19_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n320()</div><div class='add'>+    fun_l19_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n321()</div><div class='add'>+    fun_l19_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n322()</div><div class='add'>+    fun_l19_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n323()</div><div class='add'>+    fun_l19_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n324()</div><div class='add'>+    fun_l19_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n325()</div><div class='add'>+    fun_l19_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n326()</div><div class='add'>+    fun_l19_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n327()</div><div class='add'>+    fun_l19_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n328()</div><div class='add'>+    fun_l19_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n329()</div><div class='add'>+    fun_l19_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n330()</div><div class='add'>+    fun_l19_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n331()</div><div class='add'>+    fun_l19_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n332()</div><div class='add'>+    fun_l19_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n333()</div><div class='add'>+    fun_l19_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n334()</div><div class='add'>+    fun_l19_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n335()</div><div class='add'>+    fun_l19_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n336()</div><div class='add'>+    fun_l19_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n337()</div><div class='add'>+    fun_l19_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n338()</div><div class='add'>+    fun_l19_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n339()</div><div class='add'>+    fun_l19_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n340()</div><div class='add'>+    fun_l19_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n341()</div><div class='add'>+    fun_l19_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n342()</div><div class='add'>+    fun_l19_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n343()</div><div class='add'>+    fun_l19_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n344()</div><div class='add'>+    fun_l19_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n345()</div><div class='add'>+    fun_l19_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n346()</div><div class='add'>+    fun_l19_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n347()</div><div class='add'>+    fun_l19_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n348()</div><div class='add'>+    fun_l19_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n349()</div><div class='add'>+    fun_l19_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n350()</div><div class='add'>+    fun_l19_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n351()</div><div class='add'>+    fun_l19_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n352()</div><div class='add'>+    fun_l19_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n353()</div><div class='add'>+    fun_l19_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n354()</div><div class='add'>+    fun_l19_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n355()</div><div class='add'>+    fun_l19_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n356()</div><div class='add'>+    fun_l19_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n357()</div><div class='add'>+    fun_l19_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n358()</div><div class='add'>+    fun_l19_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n359()</div><div class='add'>+    fun_l19_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n360()</div><div class='add'>+    fun_l19_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n361()</div><div class='add'>+    fun_l19_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n362()</div><div class='add'>+    fun_l19_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n363()</div><div class='add'>+    fun_l19_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n364()</div><div class='add'>+    fun_l19_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n365()</div><div class='add'>+    fun_l19_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n366()</div><div class='add'>+    fun_l19_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n367()</div><div class='add'>+    fun_l19_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n368()</div><div class='add'>+    fun_l19_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n369()</div><div class='add'>+    fun_l19_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n370()</div><div class='add'>+    fun_l19_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n371()</div><div class='add'>+    fun_l19_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n372()</div><div class='add'>+    fun_l19_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n373()</div><div class='add'>+    fun_l19_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n374()</div><div class='add'>+    fun_l19_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n375()</div><div class='add'>+    fun_l19_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n376()</div><div class='add'>+    fun_l19_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n377()</div><div class='add'>+    fun_l19_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n378()</div><div class='add'>+    fun_l19_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n379()</div><div class='add'>+    fun_l19_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n380()</div><div class='add'>+    fun_l19_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n381()</div><div class='add'>+    fun_l19_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n382()</div><div class='add'>+    fun_l19_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n383()</div><div class='add'>+    fun_l19_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n384()</div><div class='add'>+    fun_l19_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n385()</div><div class='add'>+    fun_l19_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n386()</div><div class='add'>+    fun_l19_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n387()</div><div class='add'>+    fun_l19_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n388()</div><div class='add'>+    fun_l19_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n389()</div><div class='add'>+    fun_l19_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n390()</div><div class='add'>+    fun_l19_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n391()</div><div class='add'>+    fun_l19_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n392()</div><div class='add'>+    fun_l19_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n393()</div><div class='add'>+    fun_l19_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n394()</div><div class='add'>+    fun_l19_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n395()</div><div class='add'>+    fun_l19_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n396()</div><div class='add'>+    fun_l19_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n397()</div><div class='add'>+    fun_l19_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n398()</div><div class='add'>+    fun_l19_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n399()</div><div class='add'>+    fun_l19_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n400()</div><div class='add'>+    fun_l19_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n401()</div><div class='add'>+    fun_l19_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n402()</div><div class='add'>+    fun_l19_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n403()</div><div class='add'>+    fun_l19_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n404()</div><div class='add'>+    fun_l19_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n405()</div><div class='add'>+    fun_l19_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n406()</div><div class='add'>+    fun_l19_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n407()</div><div class='add'>+    fun_l19_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n408()</div><div class='add'>+    fun_l19_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n409()</div><div class='add'>+    fun_l19_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n410()</div><div class='add'>+    fun_l19_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n411()</div><div class='add'>+    fun_l19_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n412()</div><div class='add'>+    fun_l19_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n413()</div><div class='add'>+    fun_l19_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n414()</div><div class='add'>+    fun_l19_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n415()</div><div class='add'>+    fun_l19_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n416()</div><div class='add'>+    fun_l19_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n417()</div><div class='add'>+    fun_l19_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n418()</div><div class='add'>+    fun_l19_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n419()</div><div class='add'>+    fun_l19_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n420()</div><div class='add'>+    fun_l19_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n421()</div><div class='add'>+    fun_l19_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n422()</div><div class='add'>+    fun_l19_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n423()</div><div class='add'>+    fun_l19_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n424()</div><div class='add'>+    fun_l19_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n425()</div><div class='add'>+    fun_l19_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n426()</div><div class='add'>+    fun_l19_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n427()</div><div class='add'>+    fun_l19_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n428()</div><div class='add'>+    fun_l19_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n429()</div><div class='add'>+    fun_l19_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n430()</div><div class='add'>+    fun_l19_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n431()</div><div class='add'>+    fun_l19_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n432()</div><div class='add'>+    fun_l19_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n433()</div><div class='add'>+    fun_l19_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n434()</div><div class='add'>+    fun_l19_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n435()</div><div class='add'>+    fun_l19_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n436()</div><div class='add'>+    fun_l19_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n437()</div><div class='add'>+    fun_l19_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n438()</div><div class='add'>+    fun_l19_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n439()</div><div class='add'>+    fun_l19_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n440()</div><div class='add'>+    fun_l19_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n441()</div><div class='add'>+    fun_l19_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n442()</div><div class='add'>+    fun_l19_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n443()</div><div class='add'>+    fun_l19_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n444()</div><div class='add'>+    fun_l19_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n445()</div><div class='add'>+    fun_l19_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n446()</div><div class='add'>+    fun_l19_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n447()</div><div class='add'>+    fun_l19_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n448()</div><div class='add'>+    fun_l19_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n449()</div><div class='add'>+    fun_l19_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n450()</div><div class='add'>+    fun_l19_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n451()</div><div class='add'>+    fun_l19_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n452()</div><div class='add'>+    fun_l19_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n453()</div><div class='add'>+    fun_l19_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n454()</div><div class='add'>+    fun_l19_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n455()</div><div class='add'>+    fun_l19_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n456()</div><div class='add'>+    fun_l19_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n457()</div><div class='add'>+    fun_l19_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n458()</div><div class='add'>+    fun_l19_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n459()</div><div class='add'>+    fun_l19_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n460()</div><div class='add'>+    fun_l19_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n461()</div><div class='add'>+    fun_l19_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n462()</div><div class='add'>+    fun_l19_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n463()</div><div class='add'>+    fun_l19_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n464()</div><div class='add'>+    fun_l19_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n465()</div><div class='add'>+    fun_l19_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n466()</div><div class='add'>+    fun_l19_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n467()</div><div class='add'>+    fun_l19_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n468()</div><div class='add'>+    fun_l19_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n469()</div><div class='add'>+    fun_l19_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n470()</div><div class='add'>+    fun_l19_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n471()</div><div class='add'>+    fun_l19_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n472()</div><div class='add'>+    fun_l19_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n473()</div><div class='add'>+    fun_l19_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n474()</div><div class='add'>+    fun_l19_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n475()</div><div class='add'>+    fun_l19_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n476()</div><div class='add'>+    fun_l19_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n477()</div><div class='add'>+    fun_l19_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n478()</div><div class='add'>+    fun_l19_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n479()</div><div class='add'>+    fun_l19_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n480()</div><div class='add'>+    fun_l19_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n481()</div><div class='add'>+    fun_l19_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n482()</div><div class='add'>+    fun_l19_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n483()</div><div class='add'>+    fun_l19_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n484()</div><div class='add'>+    fun_l19_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n485()</div><div class='add'>+    fun_l19_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n486()</div><div class='add'>+    fun_l19_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n487()</div><div class='add'>+    fun_l19_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n488()</div><div class='add'>+    fun_l19_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n489()</div><div class='add'>+    fun_l19_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n490()</div><div class='add'>+    fun_l19_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n491()</div><div class='add'>+    fun_l19_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n492()</div><div class='add'>+    fun_l19_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n493()</div><div class='add'>+    fun_l19_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n494()</div><div class='add'>+    fun_l19_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n495()</div><div class='add'>+    fun_l19_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n496()</div><div class='add'>+    fun_l19_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n497()</div><div class='add'>+    fun_l19_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n498()</div><div class='add'>+    fun_l19_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n499()</div><div class='add'>+    fun_l19_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n500()</div><div class='add'>+    fun_l19_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n501()</div><div class='add'>+    fun_l19_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n502()</div><div class='add'>+    fun_l19_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n503()</div><div class='add'>+    fun_l19_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n504()</div><div class='add'>+    fun_l19_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n505()</div><div class='add'>+    fun_l19_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n506()</div><div class='add'>+    fun_l19_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n507()</div><div class='add'>+    fun_l19_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n508()</div><div class='add'>+    fun_l19_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n509()</div><div class='add'>+    fun_l19_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n510()</div><div class='add'>+    fun_l19_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n511()</div><div class='add'>+    fun_l19_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n512()</div><div class='add'>+    fun_l19_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n513()</div><div class='add'>+    fun_l19_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n514()</div><div class='add'>+    fun_l19_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n515()</div><div class='add'>+    fun_l19_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n516()</div><div class='add'>+    fun_l19_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n517()</div><div class='add'>+    fun_l19_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n518()</div><div class='add'>+    fun_l19_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n519()</div><div class='add'>+    fun_l19_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n520()</div><div class='add'>+    fun_l19_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n521()</div><div class='add'>+    fun_l19_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n522()</div><div class='add'>+    fun_l19_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n523()</div><div class='add'>+    fun_l19_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n524()</div><div class='add'>+    fun_l19_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n525()</div><div class='add'>+    fun_l19_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n526()</div><div class='add'>+    fun_l19_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n527()</div><div class='add'>+    fun_l19_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n528()</div><div class='add'>+    fun_l19_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n529()</div><div class='add'>+    fun_l19_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n530()</div><div class='add'>+    fun_l19_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n531()</div><div class='add'>+    fun_l19_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n532()</div><div class='add'>+    fun_l19_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n533()</div><div class='add'>+    fun_l19_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n534()</div><div class='add'>+    fun_l19_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n535()</div><div class='add'>+    fun_l19_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n536()</div><div class='add'>+    fun_l19_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n537()</div><div class='add'>+    fun_l19_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n538()</div><div class='add'>+    fun_l19_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n539()</div><div class='add'>+    fun_l19_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n540()</div><div class='add'>+    fun_l19_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n541()</div><div class='add'>+    fun_l19_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n542()</div><div class='add'>+    fun_l19_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n543()</div><div class='add'>+    fun_l19_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n544()</div><div class='add'>+    fun_l19_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n545()</div><div class='add'>+    fun_l19_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n546()</div><div class='add'>+    fun_l19_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n547()</div><div class='add'>+    fun_l19_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n548()</div><div class='add'>+    fun_l19_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n549()</div><div class='add'>+    fun_l19_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n550()</div><div class='add'>+    fun_l19_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n551()</div><div class='add'>+    fun_l19_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n552()</div><div class='add'>+    fun_l19_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n553()</div><div class='add'>+    fun_l19_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n554()</div><div class='add'>+    fun_l19_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n555()</div><div class='add'>+    fun_l19_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n556()</div><div class='add'>+    fun_l19_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n557()</div><div class='add'>+    fun_l19_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n558()</div><div class='add'>+    fun_l19_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n559()</div><div class='add'>+    fun_l19_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n560()</div><div class='add'>+    fun_l19_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n561()</div><div class='add'>+    fun_l19_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n562()</div><div class='add'>+    fun_l19_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n563()</div><div class='add'>+    fun_l19_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n564()</div><div class='add'>+    fun_l19_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n565()</div><div class='add'>+    fun_l19_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n566()</div><div class='add'>+    fun_l19_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n567()</div><div class='add'>+    fun_l19_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n568()</div><div class='add'>+    fun_l19_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n569()</div><div class='add'>+    fun_l19_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n570()</div><div class='add'>+    fun_l19_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n571()</div><div class='add'>+    fun_l19_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n572()</div><div class='add'>+    fun_l19_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n573()</div><div class='add'>+    fun_l19_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n574()</div><div class='add'>+    fun_l19_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n575()</div><div class='add'>+    fun_l19_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n576()</div><div class='add'>+    fun_l19_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n577()</div><div class='add'>+    fun_l19_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n578()</div><div class='add'>+    fun_l19_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n579()</div><div class='add'>+    fun_l19_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n580()</div><div class='add'>+    fun_l19_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n581()</div><div class='add'>+    fun_l19_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n582()</div><div class='add'>+    fun_l19_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n583()</div><div class='add'>+    fun_l19_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n584()</div><div class='add'>+    fun_l19_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n585()</div><div class='add'>+    fun_l19_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n586()</div><div class='add'>+    fun_l19_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n587()</div><div class='add'>+    fun_l19_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n588()</div><div class='add'>+    fun_l19_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n589()</div><div class='add'>+    fun_l19_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n590()</div><div class='add'>+    fun_l19_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n591()</div><div class='add'>+    fun_l19_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n592()</div><div class='add'>+    fun_l19_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n593()</div><div class='add'>+    fun_l19_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n594()</div><div class='add'>+    fun_l19_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n595()</div><div class='add'>+    fun_l19_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n596()</div><div class='add'>+    fun_l19_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n597()</div><div class='add'>+    fun_l19_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n598()</div><div class='add'>+    fun_l19_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n599()</div><div class='add'>+    fun_l19_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n600()</div><div class='add'>+    fun_l19_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n601()</div><div class='add'>+    fun_l19_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n602()</div><div class='add'>+    fun_l19_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n603()</div><div class='add'>+    fun_l19_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n604()</div><div class='add'>+    fun_l19_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n605()</div><div class='add'>+    fun_l19_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n606()</div><div class='add'>+    fun_l19_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n607()</div><div class='add'>+    fun_l19_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n608()</div><div class='add'>+    fun_l19_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n609()</div><div class='add'>+    fun_l19_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n610()</div><div class='add'>+    fun_l19_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n611()</div><div class='add'>+    fun_l19_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n612()</div><div class='add'>+    fun_l19_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n613()</div><div class='add'>+    fun_l19_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n614()</div><div class='add'>+    fun_l19_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n615()</div><div class='add'>+    fun_l19_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n616()</div><div class='add'>+    fun_l19_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n617()</div><div class='add'>+    fun_l19_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n618()</div><div class='add'>+    fun_l19_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n619()</div><div class='add'>+    fun_l19_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n620()</div><div class='add'>+    fun_l19_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n621()</div><div class='add'>+    fun_l19_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n622()</div><div class='add'>+    fun_l19_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n623()</div><div class='add'>+    fun_l19_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n624()</div><div class='add'>+    fun_l19_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n625()</div><div class='add'>+    fun_l19_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n626()</div><div class='add'>+    fun_l19_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n627()</div><div class='add'>+    fun_l19_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n628()</div><div class='add'>+    fun_l19_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n629()</div><div class='add'>+    fun_l19_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n630()</div><div class='add'>+    fun_l19_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n631()</div><div class='add'>+    fun_l19_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n632()</div><div class='add'>+    fun_l19_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n633()</div><div class='add'>+    fun_l19_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n634()</div><div class='add'>+    fun_l19_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n635()</div><div class='add'>+    fun_l19_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n636()</div><div class='add'>+    fun_l19_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n637()</div><div class='add'>+    fun_l19_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n638()</div><div class='add'>+    fun_l19_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n639()</div><div class='add'>+    fun_l19_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n640()</div><div class='add'>+    fun_l19_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n641()</div><div class='add'>+    fun_l19_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n642()</div><div class='add'>+    fun_l19_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n643()</div><div class='add'>+    fun_l19_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n644()</div><div class='add'>+    fun_l19_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n645()</div><div class='add'>+    fun_l19_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n646()</div><div class='add'>+    fun_l19_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n647()</div><div class='add'>+    fun_l19_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n648()</div><div class='add'>+    fun_l19_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n649()</div><div class='add'>+    fun_l19_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n650()</div><div class='add'>+    fun_l19_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n651()</div><div class='add'>+    fun_l19_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n652()</div><div class='add'>+    fun_l19_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n653()</div><div class='add'>+    fun_l19_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n654()</div><div class='add'>+    fun_l19_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n655()</div><div class='add'>+    fun_l19_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n656()</div><div class='add'>+    fun_l19_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n657()</div><div class='add'>+    fun_l19_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n658()</div><div class='add'>+    fun_l19_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n659()</div><div class='add'>+    fun_l19_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n660()</div><div class='add'>+    fun_l19_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n661()</div><div class='add'>+    fun_l19_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n662()</div><div class='add'>+    fun_l19_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n663()</div><div class='add'>+    fun_l19_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n664()</div><div class='add'>+    fun_l19_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n665()</div><div class='add'>+    fun_l19_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n666()</div><div class='add'>+    fun_l19_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n667()</div><div class='add'>+    fun_l19_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n668()</div><div class='add'>+    fun_l19_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n669()</div><div class='add'>+    fun_l19_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n670()</div><div class='add'>+    fun_l19_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n671()</div><div class='add'>+    fun_l19_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n672()</div><div class='add'>+    fun_l19_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n673()</div><div class='add'>+    fun_l19_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n674()</div><div class='add'>+    fun_l19_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n675()</div><div class='add'>+    fun_l19_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n676()</div><div class='add'>+    fun_l19_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n677()</div><div class='add'>+    fun_l19_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n678()</div><div class='add'>+    fun_l19_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n679()</div><div class='add'>+    fun_l19_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n680()</div><div class='add'>+    fun_l19_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n681()</div><div class='add'>+    fun_l19_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n682()</div><div class='add'>+    fun_l19_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n683()</div><div class='add'>+    fun_l19_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n684()</div><div class='add'>+    fun_l19_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n685()</div><div class='add'>+    fun_l19_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n686()</div><div class='add'>+    fun_l19_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n687()</div><div class='add'>+    fun_l19_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n688()</div><div class='add'>+    fun_l19_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n689()</div><div class='add'>+    fun_l19_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n690()</div><div class='add'>+    fun_l19_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n691()</div><div class='add'>+    fun_l19_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n692()</div><div class='add'>+    fun_l19_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n693()</div><div class='add'>+    fun_l19_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n694()</div><div class='add'>+    fun_l19_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n695()</div><div class='add'>+    fun_l19_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n696()</div><div class='add'>+    fun_l19_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n697()</div><div class='add'>+    fun_l19_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n698()</div><div class='add'>+    fun_l19_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n699()</div><div class='add'>+    fun_l19_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n700()</div><div class='add'>+    fun_l19_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n701()</div><div class='add'>+    fun_l19_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n702()</div><div class='add'>+    fun_l19_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n703()</div><div class='add'>+    fun_l19_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n704()</div><div class='add'>+    fun_l19_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n705()</div><div class='add'>+    fun_l19_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n706()</div><div class='add'>+    fun_l19_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n707()</div><div class='add'>+    fun_l19_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n708()</div><div class='add'>+    fun_l19_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n709()</div><div class='add'>+    fun_l19_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n710()</div><div class='add'>+    fun_l19_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n711()</div><div class='add'>+    fun_l19_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n712()</div><div class='add'>+    fun_l19_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n713()</div><div class='add'>+    fun_l19_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n714()</div><div class='add'>+    fun_l19_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n715()</div><div class='add'>+    fun_l19_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n716()</div><div class='add'>+    fun_l19_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n717()</div><div class='add'>+    fun_l19_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n718()</div><div class='add'>+    fun_l19_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n719()</div><div class='add'>+    fun_l19_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n720()</div><div class='add'>+    fun_l19_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n721()</div><div class='add'>+    fun_l19_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n722()</div><div class='add'>+    fun_l19_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n723()</div><div class='add'>+    fun_l19_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n724()</div><div class='add'>+    fun_l19_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n725()</div><div class='add'>+    fun_l19_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n726()</div><div class='add'>+    fun_l19_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n727()</div><div class='add'>+    fun_l19_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n728()</div><div class='add'>+    fun_l19_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n729()</div><div class='add'>+    fun_l19_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n730()</div><div class='add'>+    fun_l19_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n731()</div><div class='add'>+    fun_l19_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n732()</div><div class='add'>+    fun_l19_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n733()</div><div class='add'>+    fun_l19_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n734()</div><div class='add'>+    fun_l19_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n735()</div><div class='add'>+    fun_l19_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n736()</div><div class='add'>+    fun_l19_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n737()</div><div class='add'>+    fun_l19_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n738()</div><div class='add'>+    fun_l19_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n739()</div><div class='add'>+    fun_l19_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n740()</div><div class='add'>+    fun_l19_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n741()</div><div class='add'>+    fun_l19_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n742()</div><div class='add'>+    fun_l19_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n743()</div><div class='add'>+    fun_l19_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n744()</div><div class='add'>+    fun_l19_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n745()</div><div class='add'>+    fun_l19_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n746()</div><div class='add'>+    fun_l19_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n747()</div><div class='add'>+    fun_l19_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n748()</div><div class='add'>+    fun_l19_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n749()</div><div class='add'>+    fun_l19_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n750()</div><div class='add'>+    fun_l19_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n751()</div><div class='add'>+    fun_l19_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n752()</div><div class='add'>+    fun_l19_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n753()</div><div class='add'>+    fun_l19_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n754()</div><div class='add'>+    fun_l19_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n755()</div><div class='add'>+    fun_l19_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n756()</div><div class='add'>+    fun_l19_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n757()</div><div class='add'>+    fun_l19_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n758()</div><div class='add'>+    fun_l19_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n759()</div><div class='add'>+    fun_l19_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n760()</div><div class='add'>+    fun_l19_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n761()</div><div class='add'>+    fun_l19_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n762()</div><div class='add'>+    fun_l19_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n763()</div><div class='add'>+    fun_l19_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n764()</div><div class='add'>+    fun_l19_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n765()</div><div class='add'>+    fun_l19_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n766()</div><div class='add'>+    fun_l19_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n767()</div><div class='add'>+    fun_l19_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n768()</div><div class='add'>+    fun_l19_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n769()</div><div class='add'>+    fun_l19_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n770()</div><div class='add'>+    fun_l19_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n771()</div><div class='add'>+    fun_l19_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n772()</div><div class='add'>+    fun_l19_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n773()</div><div class='add'>+    fun_l19_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n774()</div><div class='add'>+    fun_l19_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n775()</div><div class='add'>+    fun_l19_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n776()</div><div class='add'>+    fun_l19_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n777()</div><div class='add'>+    fun_l19_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n778()</div><div class='add'>+    fun_l19_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n779()</div><div class='add'>+    fun_l19_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n780()</div><div class='add'>+    fun_l19_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n781()</div><div class='add'>+    fun_l19_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n782()</div><div class='add'>+    fun_l19_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n783()</div><div class='add'>+    fun_l19_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n784()</div><div class='add'>+    fun_l19_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n785()</div><div class='add'>+    fun_l19_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n786()</div><div class='add'>+    fun_l19_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n787()</div><div class='add'>+    fun_l19_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n788()</div><div class='add'>+    fun_l19_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n789()</div><div class='add'>+    fun_l19_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n790()</div><div class='add'>+    fun_l19_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n791()</div><div class='add'>+    fun_l19_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n792()</div><div class='add'>+    fun_l19_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n793()</div><div class='add'>+    fun_l19_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n794()</div><div class='add'>+    fun_l19_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n795()</div><div class='add'>+    fun_l19_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n796()</div><div class='add'>+    fun_l19_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n797()</div><div class='add'>+    fun_l19_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n798()</div><div class='add'>+    fun_l19_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n799()</div><div class='add'>+    fun_l19_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n800()</div><div class='add'>+    fun_l19_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n801()</div><div class='add'>+    fun_l19_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n802()</div><div class='add'>+    fun_l19_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n803()</div><div class='add'>+    fun_l19_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n804()</div><div class='add'>+    fun_l19_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n805()</div><div class='add'>+    fun_l19_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n806()</div><div class='add'>+    fun_l19_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n807()</div><div class='add'>+    fun_l19_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n808()</div><div class='add'>+    fun_l19_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n809()</div><div class='add'>+    fun_l19_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n810()</div><div class='add'>+    fun_l19_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n811()</div><div class='add'>+    fun_l19_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n812()</div><div class='add'>+    fun_l19_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n813()</div><div class='add'>+    fun_l19_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n814()</div><div class='add'>+    fun_l19_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n815()</div><div class='add'>+    fun_l19_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n816()</div><div class='add'>+    fun_l19_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n817()</div><div class='add'>+    fun_l19_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n818()</div><div class='add'>+    fun_l19_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n819()</div><div class='add'>+    fun_l19_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n820()</div><div class='add'>+    fun_l19_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n821()</div><div class='add'>+    fun_l19_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n822()</div><div class='add'>+    fun_l19_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n823()</div><div class='add'>+    fun_l19_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n824()</div><div class='add'>+    fun_l19_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n825()</div><div class='add'>+    fun_l19_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n826()</div><div class='add'>+    fun_l19_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n827()</div><div class='add'>+    fun_l19_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n828()</div><div class='add'>+    fun_l19_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n829()</div><div class='add'>+    fun_l19_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n830()</div><div class='add'>+    fun_l19_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n831()</div><div class='add'>+    fun_l19_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n832()</div><div class='add'>+    fun_l19_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n833()</div><div class='add'>+    fun_l19_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n834()</div><div class='add'>+    fun_l19_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n835()</div><div class='add'>+    fun_l19_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n836()</div><div class='add'>+    fun_l19_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n837()</div><div class='add'>+    fun_l19_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n838()</div><div class='add'>+    fun_l19_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n839()</div><div class='add'>+    fun_l19_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n840()</div><div class='add'>+    fun_l19_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n841()</div><div class='add'>+    fun_l19_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n842()</div><div class='add'>+    fun_l19_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n843()</div><div class='add'>+    fun_l19_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n844()</div><div class='add'>+    fun_l19_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n845()</div><div class='add'>+    fun_l19_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n846()</div><div class='add'>+    fun_l19_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n847()</div><div class='add'>+    fun_l19_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n848()</div><div class='add'>+    fun_l19_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n849()</div><div class='add'>+    fun_l19_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n850()</div><div class='add'>+    fun_l19_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n851()</div><div class='add'>+    fun_l19_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n852()</div><div class='add'>+    fun_l19_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n853()</div><div class='add'>+    fun_l19_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n854()</div><div class='add'>+    fun_l19_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n855()</div><div class='add'>+    fun_l19_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n856()</div><div class='add'>+    fun_l19_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n857()</div><div class='add'>+    fun_l19_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n858()</div><div class='add'>+    fun_l19_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n859()</div><div class='add'>+    fun_l19_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n860()</div><div class='add'>+    fun_l19_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n861()</div><div class='add'>+    fun_l19_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n862()</div><div class='add'>+    fun_l19_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n863()</div><div class='add'>+    fun_l19_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n864()</div><div class='add'>+    fun_l19_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n865()</div><div class='add'>+    fun_l19_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n866()</div><div class='add'>+    fun_l19_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n867()</div><div class='add'>+    fun_l19_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n868()</div><div class='add'>+    fun_l19_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n869()</div><div class='add'>+    fun_l19_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n870()</div><div class='add'>+    fun_l19_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n871()</div><div class='add'>+    fun_l19_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n872()</div><div class='add'>+    fun_l19_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n873()</div><div class='add'>+    fun_l19_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n874()</div><div class='add'>+    fun_l19_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n875()</div><div class='add'>+    fun_l19_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n876()</div><div class='add'>+    fun_l19_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n877()</div><div class='add'>+    fun_l19_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n878()</div><div class='add'>+    fun_l19_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n879()</div><div class='add'>+    fun_l19_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n880()</div><div class='add'>+    fun_l19_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n881()</div><div class='add'>+    fun_l19_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n882()</div><div class='add'>+    fun_l19_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n883()</div><div class='add'>+    fun_l19_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n884()</div><div class='add'>+    fun_l19_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n885()</div><div class='add'>+    fun_l19_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n886()</div><div class='add'>+    fun_l19_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n887()</div><div class='add'>+    fun_l19_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n888()</div><div class='add'>+    fun_l19_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n889()</div><div class='add'>+    fun_l19_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n890()</div><div class='add'>+    fun_l19_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n891()</div><div class='add'>+    fun_l19_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n892()</div><div class='add'>+    fun_l19_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n893()</div><div class='add'>+    fun_l19_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n894()</div><div class='add'>+    fun_l19_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n895()</div><div class='add'>+    fun_l19_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n896()</div><div class='add'>+    fun_l19_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n897()</div><div class='add'>+    fun_l19_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n898()</div><div class='add'>+    fun_l19_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n899()</div><div class='add'>+    fun_l19_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n900()</div><div class='add'>+    fun_l19_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n901()</div><div class='add'>+    fun_l19_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n902()</div><div class='add'>+    fun_l19_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n903()</div><div class='add'>+    fun_l19_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n904()</div><div class='add'>+    fun_l19_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n905()</div><div class='add'>+    fun_l19_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n906()</div><div class='add'>+    fun_l19_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n907()</div><div class='add'>+    fun_l19_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n908()</div><div class='add'>+    fun_l19_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n909()</div><div class='add'>+    fun_l19_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n910()</div><div class='add'>+    fun_l19_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n911()</div><div class='add'>+    fun_l19_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n912()</div><div class='add'>+    fun_l19_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n913()</div><div class='add'>+    fun_l19_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n914()</div><div class='add'>+    fun_l19_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n915()</div><div class='add'>+    fun_l19_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n916()</div><div class='add'>+    fun_l19_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n917()</div><div class='add'>+    fun_l19_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n918()</div><div class='add'>+    fun_l19_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n919()</div><div class='add'>+    fun_l19_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n920()</div><div class='add'>+    fun_l19_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n921()</div><div class='add'>+    fun_l19_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n922()</div><div class='add'>+    fun_l19_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n923()</div><div class='add'>+    fun_l19_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n924()</div><div class='add'>+    fun_l19_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n925()</div><div class='add'>+    fun_l19_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n926()</div><div class='add'>+    fun_l19_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n927()</div><div class='add'>+    fun_l19_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n928()</div><div class='add'>+    fun_l19_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n929()</div><div class='add'>+    fun_l19_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n930()</div><div class='add'>+    fun_l19_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n931()</div><div class='add'>+    fun_l19_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n932()</div><div class='add'>+    fun_l19_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n933()</div><div class='add'>+    fun_l19_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n934()</div><div class='add'>+    fun_l19_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n935()</div><div class='add'>+    fun_l19_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n936()</div><div class='add'>+    fun_l19_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n937()</div><div class='add'>+    fun_l19_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n938()</div><div class='add'>+    fun_l19_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n939()</div><div class='add'>+    fun_l19_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n940()</div><div class='add'>+    fun_l19_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n941()</div><div class='add'>+    fun_l19_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n942()</div><div class='add'>+    fun_l19_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n943()</div><div class='add'>+    fun_l19_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n944()</div><div class='add'>+    fun_l19_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n945()</div><div class='add'>+    fun_l19_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n946()</div><div class='add'>+    fun_l19_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n947()</div><div class='add'>+    fun_l19_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n948()</div><div class='add'>+    fun_l19_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n949()</div><div class='add'>+    fun_l19_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n950()</div><div class='add'>+    fun_l19_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n951()</div><div class='add'>+    fun_l19_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n952()</div><div class='add'>+    fun_l19_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n953()</div><div class='add'>+    fun_l19_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n954()</div><div class='add'>+    fun_l19_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n955()</div><div class='add'>+    fun_l19_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n956()</div><div class='add'>+    fun_l19_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n957()</div><div class='add'>+    fun_l19_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n958()</div><div class='add'>+    fun_l19_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n959()</div><div class='add'>+    fun_l19_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n960()</div><div class='add'>+    fun_l19_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n961()</div><div class='add'>+    fun_l19_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n962()</div><div class='add'>+    fun_l19_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n963()</div><div class='add'>+    fun_l19_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n964()</div><div class='add'>+    fun_l19_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n965()</div><div class='add'>+    fun_l19_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n966()</div><div class='add'>+    fun_l19_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n967()</div><div class='add'>+    fun_l19_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n968()</div><div class='add'>+    fun_l19_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n969()</div><div class='add'>+    fun_l19_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n970()</div><div class='add'>+    fun_l19_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n971()</div><div class='add'>+    fun_l19_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n972()</div><div class='add'>+    fun_l19_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n973()</div><div class='add'>+    fun_l19_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n974()</div><div class='add'>+    fun_l19_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n975()</div><div class='add'>+    fun_l19_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n976()</div><div class='add'>+    fun_l19_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n977()</div><div class='add'>+    fun_l19_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n978()</div><div class='add'>+    fun_l19_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n979()</div><div class='add'>+    fun_l19_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n980()</div><div class='add'>+    fun_l19_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n981()</div><div class='add'>+    fun_l19_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n982()</div><div class='add'>+    fun_l19_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n983()</div><div class='add'>+    fun_l19_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n984()</div><div class='add'>+    fun_l19_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n985()</div><div class='add'>+    fun_l19_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n986()</div><div class='add'>+    fun_l19_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n987()</div><div class='add'>+    fun_l19_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n988()</div><div class='add'>+    fun_l19_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n989()</div><div class='add'>+    fun_l19_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n990()</div><div class='add'>+    fun_l19_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n991()</div><div class='add'>+    fun_l19_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n992()</div><div class='add'>+    fun_l19_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n993()</div><div class='add'>+    fun_l19_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n994()</div><div class='add'>+    fun_l19_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n995()</div><div class='add'>+    fun_l19_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n996()</div><div class='add'>+    fun_l19_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n997()</div><div class='add'>+    fun_l19_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n998()</div><div class='add'>+    fun_l19_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l18_n999()</div><div class='add'>+    fun_l19_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n0()</div><div class='add'>+    fun_l20_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n1()</div><div class='add'>+    fun_l20_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n2()</div><div class='add'>+    fun_l20_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n3()</div><div class='add'>+    fun_l20_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n4()</div><div class='add'>+    fun_l20_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n5()</div><div class='add'>+    fun_l20_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n6()</div><div class='add'>+    fun_l20_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n7()</div><div class='add'>+    fun_l20_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n8()</div><div class='add'>+    fun_l20_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n9()</div><div class='add'>+    fun_l20_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n10()</div><div class='add'>+    fun_l20_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n11()</div><div class='add'>+    fun_l20_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n12()</div><div class='add'>+    fun_l20_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n13()</div><div class='add'>+    fun_l20_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n14()</div><div class='add'>+    fun_l20_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n15()</div><div class='add'>+    fun_l20_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n16()</div><div class='add'>+    fun_l20_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n17()</div><div class='add'>+    fun_l20_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n18()</div><div class='add'>+    fun_l20_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n19()</div><div class='add'>+    fun_l20_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n20()</div><div class='add'>+    fun_l20_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n21()</div><div class='add'>+    fun_l20_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n22()</div><div class='add'>+    fun_l20_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n23()</div><div class='add'>+    fun_l20_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n24()</div><div class='add'>+    fun_l20_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n25()</div><div class='add'>+    fun_l20_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n26()</div><div class='add'>+    fun_l20_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n27()</div><div class='add'>+    fun_l20_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n28()</div><div class='add'>+    fun_l20_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n29()</div><div class='add'>+    fun_l20_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n30()</div><div class='add'>+    fun_l20_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n31()</div><div class='add'>+    fun_l20_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n32()</div><div class='add'>+    fun_l20_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n33()</div><div class='add'>+    fun_l20_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n34()</div><div class='add'>+    fun_l20_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n35()</div><div class='add'>+    fun_l20_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n36()</div><div class='add'>+    fun_l20_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n37()</div><div class='add'>+    fun_l20_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n38()</div><div class='add'>+    fun_l20_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n39()</div><div class='add'>+    fun_l20_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n40()</div><div class='add'>+    fun_l20_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n41()</div><div class='add'>+    fun_l20_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n42()</div><div class='add'>+    fun_l20_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n43()</div><div class='add'>+    fun_l20_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n44()</div><div class='add'>+    fun_l20_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n45()</div><div class='add'>+    fun_l20_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n46()</div><div class='add'>+    fun_l20_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n47()</div><div class='add'>+    fun_l20_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n48()</div><div class='add'>+    fun_l20_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n49()</div><div class='add'>+    fun_l20_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n50()</div><div class='add'>+    fun_l20_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n51()</div><div class='add'>+    fun_l20_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n52()</div><div class='add'>+    fun_l20_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n53()</div><div class='add'>+    fun_l20_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n54()</div><div class='add'>+    fun_l20_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n55()</div><div class='add'>+    fun_l20_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n56()</div><div class='add'>+    fun_l20_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n57()</div><div class='add'>+    fun_l20_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n58()</div><div class='add'>+    fun_l20_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n59()</div><div class='add'>+    fun_l20_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n60()</div><div class='add'>+    fun_l20_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n61()</div><div class='add'>+    fun_l20_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n62()</div><div class='add'>+    fun_l20_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n63()</div><div class='add'>+    fun_l20_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n64()</div><div class='add'>+    fun_l20_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n65()</div><div class='add'>+    fun_l20_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n66()</div><div class='add'>+    fun_l20_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n67()</div><div class='add'>+    fun_l20_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n68()</div><div class='add'>+    fun_l20_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n69()</div><div class='add'>+    fun_l20_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n70()</div><div class='add'>+    fun_l20_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n71()</div><div class='add'>+    fun_l20_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n72()</div><div class='add'>+    fun_l20_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n73()</div><div class='add'>+    fun_l20_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n74()</div><div class='add'>+    fun_l20_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n75()</div><div class='add'>+    fun_l20_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n76()</div><div class='add'>+    fun_l20_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n77()</div><div class='add'>+    fun_l20_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n78()</div><div class='add'>+    fun_l20_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n79()</div><div class='add'>+    fun_l20_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n80()</div><div class='add'>+    fun_l20_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n81()</div><div class='add'>+    fun_l20_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n82()</div><div class='add'>+    fun_l20_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n83()</div><div class='add'>+    fun_l20_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n84()</div><div class='add'>+    fun_l20_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n85()</div><div class='add'>+    fun_l20_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n86()</div><div class='add'>+    fun_l20_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n87()</div><div class='add'>+    fun_l20_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n88()</div><div class='add'>+    fun_l20_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n89()</div><div class='add'>+    fun_l20_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n90()</div><div class='add'>+    fun_l20_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n91()</div><div class='add'>+    fun_l20_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n92()</div><div class='add'>+    fun_l20_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n93()</div><div class='add'>+    fun_l20_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n94()</div><div class='add'>+    fun_l20_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n95()</div><div class='add'>+    fun_l20_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n96()</div><div class='add'>+    fun_l20_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n97()</div><div class='add'>+    fun_l20_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n98()</div><div class='add'>+    fun_l20_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n99()</div><div class='add'>+    fun_l20_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n100()</div><div class='add'>+    fun_l20_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n101()</div><div class='add'>+    fun_l20_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n102()</div><div class='add'>+    fun_l20_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n103()</div><div class='add'>+    fun_l20_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n104()</div><div class='add'>+    fun_l20_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n105()</div><div class='add'>+    fun_l20_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n106()</div><div class='add'>+    fun_l20_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n107()</div><div class='add'>+    fun_l20_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n108()</div><div class='add'>+    fun_l20_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n109()</div><div class='add'>+    fun_l20_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n110()</div><div class='add'>+    fun_l20_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n111()</div><div class='add'>+    fun_l20_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n112()</div><div class='add'>+    fun_l20_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n113()</div><div class='add'>+    fun_l20_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n114()</div><div class='add'>+    fun_l20_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n115()</div><div class='add'>+    fun_l20_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n116()</div><div class='add'>+    fun_l20_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n117()</div><div class='add'>+    fun_l20_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n118()</div><div class='add'>+    fun_l20_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n119()</div><div class='add'>+    fun_l20_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n120()</div><div class='add'>+    fun_l20_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n121()</div><div class='add'>+    fun_l20_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n122()</div><div class='add'>+    fun_l20_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n123()</div><div class='add'>+    fun_l20_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n124()</div><div class='add'>+    fun_l20_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n125()</div><div class='add'>+    fun_l20_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n126()</div><div class='add'>+    fun_l20_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n127()</div><div class='add'>+    fun_l20_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n128()</div><div class='add'>+    fun_l20_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n129()</div><div class='add'>+    fun_l20_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n130()</div><div class='add'>+    fun_l20_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n131()</div><div class='add'>+    fun_l20_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n132()</div><div class='add'>+    fun_l20_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n133()</div><div class='add'>+    fun_l20_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n134()</div><div class='add'>+    fun_l20_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n135()</div><div class='add'>+    fun_l20_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n136()</div><div class='add'>+    fun_l20_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n137()</div><div class='add'>+    fun_l20_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n138()</div><div class='add'>+    fun_l20_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n139()</div><div class='add'>+    fun_l20_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n140()</div><div class='add'>+    fun_l20_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n141()</div><div class='add'>+    fun_l20_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n142()</div><div class='add'>+    fun_l20_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n143()</div><div class='add'>+    fun_l20_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n144()</div><div class='add'>+    fun_l20_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n145()</div><div class='add'>+    fun_l20_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n146()</div><div class='add'>+    fun_l20_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n147()</div><div class='add'>+    fun_l20_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n148()</div><div class='add'>+    fun_l20_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n149()</div><div class='add'>+    fun_l20_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n150()</div><div class='add'>+    fun_l20_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n151()</div><div class='add'>+    fun_l20_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n152()</div><div class='add'>+    fun_l20_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n153()</div><div class='add'>+    fun_l20_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n154()</div><div class='add'>+    fun_l20_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n155()</div><div class='add'>+    fun_l20_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n156()</div><div class='add'>+    fun_l20_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n157()</div><div class='add'>+    fun_l20_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n158()</div><div class='add'>+    fun_l20_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n159()</div><div class='add'>+    fun_l20_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n160()</div><div class='add'>+    fun_l20_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n161()</div><div class='add'>+    fun_l20_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n162()</div><div class='add'>+    fun_l20_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n163()</div><div class='add'>+    fun_l20_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n164()</div><div class='add'>+    fun_l20_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n165()</div><div class='add'>+    fun_l20_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n166()</div><div class='add'>+    fun_l20_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n167()</div><div class='add'>+    fun_l20_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n168()</div><div class='add'>+    fun_l20_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n169()</div><div class='add'>+    fun_l20_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n170()</div><div class='add'>+    fun_l20_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n171()</div><div class='add'>+    fun_l20_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n172()</div><div class='add'>+    fun_l20_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n173()</div><div class='add'>+    fun_l20_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n174()</div><div class='add'>+    fun_l20_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n175()</div><div class='add'>+    fun_l20_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n176()</div><div class='add'>+    fun_l20_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n177()</div><div class='add'>+    fun_l20_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n178()</div><div class='add'>+    fun_l20_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n179()</div><div class='add'>+    fun_l20_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n180()</div><div class='add'>+    fun_l20_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n181()</div><div class='add'>+    fun_l20_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n182()</div><div class='add'>+    fun_l20_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n183()</div><div class='add'>+    fun_l20_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n184()</div><div class='add'>+    fun_l20_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n185()</div><div class='add'>+    fun_l20_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n186()</div><div class='add'>+    fun_l20_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n187()</div><div class='add'>+    fun_l20_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n188()</div><div class='add'>+    fun_l20_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n189()</div><div class='add'>+    fun_l20_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n190()</div><div class='add'>+    fun_l20_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n191()</div><div class='add'>+    fun_l20_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n192()</div><div class='add'>+    fun_l20_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n193()</div><div class='add'>+    fun_l20_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n194()</div><div class='add'>+    fun_l20_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n195()</div><div class='add'>+    fun_l20_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n196()</div><div class='add'>+    fun_l20_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n197()</div><div class='add'>+    fun_l20_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n198()</div><div class='add'>+    fun_l20_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n199()</div><div class='add'>+    fun_l20_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n200()</div><div class='add'>+    fun_l20_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n201()</div><div class='add'>+    fun_l20_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n202()</div><div class='add'>+    fun_l20_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n203()</div><div class='add'>+    fun_l20_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n204()</div><div class='add'>+    fun_l20_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n205()</div><div class='add'>+    fun_l20_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n206()</div><div class='add'>+    fun_l20_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n207()</div><div class='add'>+    fun_l20_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n208()</div><div class='add'>+    fun_l20_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n209()</div><div class='add'>+    fun_l20_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n210()</div><div class='add'>+    fun_l20_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n211()</div><div class='add'>+    fun_l20_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n212()</div><div class='add'>+    fun_l20_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n213()</div><div class='add'>+    fun_l20_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n214()</div><div class='add'>+    fun_l20_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n215()</div><div class='add'>+    fun_l20_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n216()</div><div class='add'>+    fun_l20_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n217()</div><div class='add'>+    fun_l20_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n218()</div><div class='add'>+    fun_l20_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n219()</div><div class='add'>+    fun_l20_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n220()</div><div class='add'>+    fun_l20_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n221()</div><div class='add'>+    fun_l20_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n222()</div><div class='add'>+    fun_l20_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n223()</div><div class='add'>+    fun_l20_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n224()</div><div class='add'>+    fun_l20_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n225()</div><div class='add'>+    fun_l20_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n226()</div><div class='add'>+    fun_l20_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n227()</div><div class='add'>+    fun_l20_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n228()</div><div class='add'>+    fun_l20_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n229()</div><div class='add'>+    fun_l20_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n230()</div><div class='add'>+    fun_l20_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n231()</div><div class='add'>+    fun_l20_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n232()</div><div class='add'>+    fun_l20_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n233()</div><div class='add'>+    fun_l20_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n234()</div><div class='add'>+    fun_l20_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n235()</div><div class='add'>+    fun_l20_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n236()</div><div class='add'>+    fun_l20_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n237()</div><div class='add'>+    fun_l20_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n238()</div><div class='add'>+    fun_l20_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n239()</div><div class='add'>+    fun_l20_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n240()</div><div class='add'>+    fun_l20_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n241()</div><div class='add'>+    fun_l20_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n242()</div><div class='add'>+    fun_l20_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n243()</div><div class='add'>+    fun_l20_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n244()</div><div class='add'>+    fun_l20_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n245()</div><div class='add'>+    fun_l20_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n246()</div><div class='add'>+    fun_l20_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n247()</div><div class='add'>+    fun_l20_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n248()</div><div class='add'>+    fun_l20_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n249()</div><div class='add'>+    fun_l20_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n250()</div><div class='add'>+    fun_l20_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n251()</div><div class='add'>+    fun_l20_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n252()</div><div class='add'>+    fun_l20_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n253()</div><div class='add'>+    fun_l20_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n254()</div><div class='add'>+    fun_l20_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n255()</div><div class='add'>+    fun_l20_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n256()</div><div class='add'>+    fun_l20_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n257()</div><div class='add'>+    fun_l20_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n258()</div><div class='add'>+    fun_l20_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n259()</div><div class='add'>+    fun_l20_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n260()</div><div class='add'>+    fun_l20_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n261()</div><div class='add'>+    fun_l20_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n262()</div><div class='add'>+    fun_l20_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n263()</div><div class='add'>+    fun_l20_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n264()</div><div class='add'>+    fun_l20_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n265()</div><div class='add'>+    fun_l20_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n266()</div><div class='add'>+    fun_l20_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n267()</div><div class='add'>+    fun_l20_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n268()</div><div class='add'>+    fun_l20_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n269()</div><div class='add'>+    fun_l20_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n270()</div><div class='add'>+    fun_l20_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n271()</div><div class='add'>+    fun_l20_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n272()</div><div class='add'>+    fun_l20_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n273()</div><div class='add'>+    fun_l20_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n274()</div><div class='add'>+    fun_l20_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n275()</div><div class='add'>+    fun_l20_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n276()</div><div class='add'>+    fun_l20_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n277()</div><div class='add'>+    fun_l20_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n278()</div><div class='add'>+    fun_l20_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n279()</div><div class='add'>+    fun_l20_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n280()</div><div class='add'>+    fun_l20_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n281()</div><div class='add'>+    fun_l20_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n282()</div><div class='add'>+    fun_l20_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n283()</div><div class='add'>+    fun_l20_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n284()</div><div class='add'>+    fun_l20_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n285()</div><div class='add'>+    fun_l20_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n286()</div><div class='add'>+    fun_l20_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n287()</div><div class='add'>+    fun_l20_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n288()</div><div class='add'>+    fun_l20_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n289()</div><div class='add'>+    fun_l20_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n290()</div><div class='add'>+    fun_l20_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n291()</div><div class='add'>+    fun_l20_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n292()</div><div class='add'>+    fun_l20_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n293()</div><div class='add'>+    fun_l20_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n294()</div><div class='add'>+    fun_l20_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n295()</div><div class='add'>+    fun_l20_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n296()</div><div class='add'>+    fun_l20_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n297()</div><div class='add'>+    fun_l20_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n298()</div><div class='add'>+    fun_l20_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n299()</div><div class='add'>+    fun_l20_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n300()</div><div class='add'>+    fun_l20_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n301()</div><div class='add'>+    fun_l20_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n302()</div><div class='add'>+    fun_l20_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n303()</div><div class='add'>+    fun_l20_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n304()</div><div class='add'>+    fun_l20_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n305()</div><div class='add'>+    fun_l20_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n306()</div><div class='add'>+    fun_l20_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n307()</div><div class='add'>+    fun_l20_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n308()</div><div class='add'>+    fun_l20_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n309()</div><div class='add'>+    fun_l20_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n310()</div><div class='add'>+    fun_l20_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n311()</div><div class='add'>+    fun_l20_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n312()</div><div class='add'>+    fun_l20_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n313()</div><div class='add'>+    fun_l20_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n314()</div><div class='add'>+    fun_l20_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n315()</div><div class='add'>+    fun_l20_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n316()</div><div class='add'>+    fun_l20_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n317()</div><div class='add'>+    fun_l20_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n318()</div><div class='add'>+    fun_l20_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n319()</div><div class='add'>+    fun_l20_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n320()</div><div class='add'>+    fun_l20_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n321()</div><div class='add'>+    fun_l20_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n322()</div><div class='add'>+    fun_l20_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n323()</div><div class='add'>+    fun_l20_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n324()</div><div class='add'>+    fun_l20_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n325()</div><div class='add'>+    fun_l20_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n326()</div><div class='add'>+    fun_l20_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n327()</div><div class='add'>+    fun_l20_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n328()</div><div class='add'>+    fun_l20_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n329()</div><div class='add'>+    fun_l20_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n330()</div><div class='add'>+    fun_l20_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n331()</div><div class='add'>+    fun_l20_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n332()</div><div class='add'>+    fun_l20_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n333()</div><div class='add'>+    fun_l20_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n334()</div><div class='add'>+    fun_l20_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n335()</div><div class='add'>+    fun_l20_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n336()</div><div class='add'>+    fun_l20_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n337()</div><div class='add'>+    fun_l20_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n338()</div><div class='add'>+    fun_l20_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n339()</div><div class='add'>+    fun_l20_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n340()</div><div class='add'>+    fun_l20_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n341()</div><div class='add'>+    fun_l20_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n342()</div><div class='add'>+    fun_l20_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n343()</div><div class='add'>+    fun_l20_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n344()</div><div class='add'>+    fun_l20_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n345()</div><div class='add'>+    fun_l20_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n346()</div><div class='add'>+    fun_l20_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n347()</div><div class='add'>+    fun_l20_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n348()</div><div class='add'>+    fun_l20_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n349()</div><div class='add'>+    fun_l20_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n350()</div><div class='add'>+    fun_l20_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n351()</div><div class='add'>+    fun_l20_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n352()</div><div class='add'>+    fun_l20_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n353()</div><div class='add'>+    fun_l20_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n354()</div><div class='add'>+    fun_l20_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n355()</div><div class='add'>+    fun_l20_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n356()</div><div class='add'>+    fun_l20_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n357()</div><div class='add'>+    fun_l20_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n358()</div><div class='add'>+    fun_l20_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n359()</div><div class='add'>+    fun_l20_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n360()</div><div class='add'>+    fun_l20_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n361()</div><div class='add'>+    fun_l20_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n362()</div><div class='add'>+    fun_l20_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n363()</div><div class='add'>+    fun_l20_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n364()</div><div class='add'>+    fun_l20_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n365()</div><div class='add'>+    fun_l20_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n366()</div><div class='add'>+    fun_l20_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n367()</div><div class='add'>+    fun_l20_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n368()</div><div class='add'>+    fun_l20_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n369()</div><div class='add'>+    fun_l20_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n370()</div><div class='add'>+    fun_l20_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n371()</div><div class='add'>+    fun_l20_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n372()</div><div class='add'>+    fun_l20_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n373()</div><div class='add'>+    fun_l20_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n374()</div><div class='add'>+    fun_l20_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n375()</div><div class='add'>+    fun_l20_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n376()</div><div class='add'>+    fun_l20_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n377()</div><div class='add'>+    fun_l20_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n378()</div><div class='add'>+    fun_l20_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n379()</div><div class='add'>+    fun_l20_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n380()</div><div class='add'>+    fun_l20_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n381()</div><div class='add'>+    fun_l20_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n382()</div><div class='add'>+    fun_l20_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n383()</div><div class='add'>+    fun_l20_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n384()</div><div class='add'>+    fun_l20_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n385()</div><div class='add'>+    fun_l20_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n386()</div><div class='add'>+    fun_l20_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n387()</div><div class='add'>+    fun_l20_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n388()</div><div class='add'>+    fun_l20_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n389()</div><div class='add'>+    fun_l20_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n390()</div><div class='add'>+    fun_l20_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n391()</div><div class='add'>+    fun_l20_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n392()</div><div class='add'>+    fun_l20_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n393()</div><div class='add'>+    fun_l20_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n394()</div><div class='add'>+    fun_l20_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n395()</div><div class='add'>+    fun_l20_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n396()</div><div class='add'>+    fun_l20_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n397()</div><div class='add'>+    fun_l20_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n398()</div><div class='add'>+    fun_l20_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n399()</div><div class='add'>+    fun_l20_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n400()</div><div class='add'>+    fun_l20_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n401()</div><div class='add'>+    fun_l20_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n402()</div><div class='add'>+    fun_l20_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n403()</div><div class='add'>+    fun_l20_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n404()</div><div class='add'>+    fun_l20_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n405()</div><div class='add'>+    fun_l20_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n406()</div><div class='add'>+    fun_l20_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n407()</div><div class='add'>+    fun_l20_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n408()</div><div class='add'>+    fun_l20_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n409()</div><div class='add'>+    fun_l20_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n410()</div><div class='add'>+    fun_l20_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n411()</div><div class='add'>+    fun_l20_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n412()</div><div class='add'>+    fun_l20_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n413()</div><div class='add'>+    fun_l20_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n414()</div><div class='add'>+    fun_l20_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n415()</div><div class='add'>+    fun_l20_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n416()</div><div class='add'>+    fun_l20_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n417()</div><div class='add'>+    fun_l20_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n418()</div><div class='add'>+    fun_l20_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n419()</div><div class='add'>+    fun_l20_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n420()</div><div class='add'>+    fun_l20_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n421()</div><div class='add'>+    fun_l20_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n422()</div><div class='add'>+    fun_l20_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n423()</div><div class='add'>+    fun_l20_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n424()</div><div class='add'>+    fun_l20_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n425()</div><div class='add'>+    fun_l20_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n426()</div><div class='add'>+    fun_l20_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n427()</div><div class='add'>+    fun_l20_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n428()</div><div class='add'>+    fun_l20_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n429()</div><div class='add'>+    fun_l20_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n430()</div><div class='add'>+    fun_l20_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n431()</div><div class='add'>+    fun_l20_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n432()</div><div class='add'>+    fun_l20_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n433()</div><div class='add'>+    fun_l20_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n434()</div><div class='add'>+    fun_l20_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n435()</div><div class='add'>+    fun_l20_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n436()</div><div class='add'>+    fun_l20_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n437()</div><div class='add'>+    fun_l20_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n438()</div><div class='add'>+    fun_l20_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n439()</div><div class='add'>+    fun_l20_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n440()</div><div class='add'>+    fun_l20_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n441()</div><div class='add'>+    fun_l20_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n442()</div><div class='add'>+    fun_l20_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n443()</div><div class='add'>+    fun_l20_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n444()</div><div class='add'>+    fun_l20_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n445()</div><div class='add'>+    fun_l20_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n446()</div><div class='add'>+    fun_l20_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n447()</div><div class='add'>+    fun_l20_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n448()</div><div class='add'>+    fun_l20_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n449()</div><div class='add'>+    fun_l20_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n450()</div><div class='add'>+    fun_l20_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n451()</div><div class='add'>+    fun_l20_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n452()</div><div class='add'>+    fun_l20_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n453()</div><div class='add'>+    fun_l20_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n454()</div><div class='add'>+    fun_l20_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n455()</div><div class='add'>+    fun_l20_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n456()</div><div class='add'>+    fun_l20_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n457()</div><div class='add'>+    fun_l20_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n458()</div><div class='add'>+    fun_l20_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n459()</div><div class='add'>+    fun_l20_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n460()</div><div class='add'>+    fun_l20_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n461()</div><div class='add'>+    fun_l20_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n462()</div><div class='add'>+    fun_l20_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n463()</div><div class='add'>+    fun_l20_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n464()</div><div class='add'>+    fun_l20_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n465()</div><div class='add'>+    fun_l20_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n466()</div><div class='add'>+    fun_l20_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n467()</div><div class='add'>+    fun_l20_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n468()</div><div class='add'>+    fun_l20_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n469()</div><div class='add'>+    fun_l20_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n470()</div><div class='add'>+    fun_l20_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n471()</div><div class='add'>+    fun_l20_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n472()</div><div class='add'>+    fun_l20_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n473()</div><div class='add'>+    fun_l20_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n474()</div><div class='add'>+    fun_l20_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n475()</div><div class='add'>+    fun_l20_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n476()</div><div class='add'>+    fun_l20_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n477()</div><div class='add'>+    fun_l20_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n478()</div><div class='add'>+    fun_l20_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n479()</div><div class='add'>+    fun_l20_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n480()</div><div class='add'>+    fun_l20_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n481()</div><div class='add'>+    fun_l20_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n482()</div><div class='add'>+    fun_l20_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n483()</div><div class='add'>+    fun_l20_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n484()</div><div class='add'>+    fun_l20_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n485()</div><div class='add'>+    fun_l20_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n486()</div><div class='add'>+    fun_l20_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n487()</div><div class='add'>+    fun_l20_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n488()</div><div class='add'>+    fun_l20_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n489()</div><div class='add'>+    fun_l20_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n490()</div><div class='add'>+    fun_l20_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n491()</div><div class='add'>+    fun_l20_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n492()</div><div class='add'>+    fun_l20_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n493()</div><div class='add'>+    fun_l20_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n494()</div><div class='add'>+    fun_l20_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n495()</div><div class='add'>+    fun_l20_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n496()</div><div class='add'>+    fun_l20_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n497()</div><div class='add'>+    fun_l20_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n498()</div><div class='add'>+    fun_l20_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n499()</div><div class='add'>+    fun_l20_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n500()</div><div class='add'>+    fun_l20_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n501()</div><div class='add'>+    fun_l20_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n502()</div><div class='add'>+    fun_l20_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n503()</div><div class='add'>+    fun_l20_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n504()</div><div class='add'>+    fun_l20_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n505()</div><div class='add'>+    fun_l20_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n506()</div><div class='add'>+    fun_l20_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n507()</div><div class='add'>+    fun_l20_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n508()</div><div class='add'>+    fun_l20_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n509()</div><div class='add'>+    fun_l20_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n510()</div><div class='add'>+    fun_l20_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n511()</div><div class='add'>+    fun_l20_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n512()</div><div class='add'>+    fun_l20_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n513()</div><div class='add'>+    fun_l20_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n514()</div><div class='add'>+    fun_l20_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n515()</div><div class='add'>+    fun_l20_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n516()</div><div class='add'>+    fun_l20_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n517()</div><div class='add'>+    fun_l20_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n518()</div><div class='add'>+    fun_l20_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n519()</div><div class='add'>+    fun_l20_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n520()</div><div class='add'>+    fun_l20_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n521()</div><div class='add'>+    fun_l20_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n522()</div><div class='add'>+    fun_l20_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n523()</div><div class='add'>+    fun_l20_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n524()</div><div class='add'>+    fun_l20_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n525()</div><div class='add'>+    fun_l20_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n526()</div><div class='add'>+    fun_l20_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n527()</div><div class='add'>+    fun_l20_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n528()</div><div class='add'>+    fun_l20_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n529()</div><div class='add'>+    fun_l20_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n530()</div><div class='add'>+    fun_l20_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n531()</div><div class='add'>+    fun_l20_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n532()</div><div class='add'>+    fun_l20_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n533()</div><div class='add'>+    fun_l20_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n534()</div><div class='add'>+    fun_l20_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n535()</div><div class='add'>+    fun_l20_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n536()</div><div class='add'>+    fun_l20_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n537()</div><div class='add'>+    fun_l20_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n538()</div><div class='add'>+    fun_l20_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n539()</div><div class='add'>+    fun_l20_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n540()</div><div class='add'>+    fun_l20_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n541()</div><div class='add'>+    fun_l20_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n542()</div><div class='add'>+    fun_l20_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n543()</div><div class='add'>+    fun_l20_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n544()</div><div class='add'>+    fun_l20_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n545()</div><div class='add'>+    fun_l20_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n546()</div><div class='add'>+    fun_l20_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n547()</div><div class='add'>+    fun_l20_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n548()</div><div class='add'>+    fun_l20_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n549()</div><div class='add'>+    fun_l20_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n550()</div><div class='add'>+    fun_l20_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n551()</div><div class='add'>+    fun_l20_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n552()</div><div class='add'>+    fun_l20_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n553()</div><div class='add'>+    fun_l20_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n554()</div><div class='add'>+    fun_l20_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n555()</div><div class='add'>+    fun_l20_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n556()</div><div class='add'>+    fun_l20_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n557()</div><div class='add'>+    fun_l20_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n558()</div><div class='add'>+    fun_l20_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n559()</div><div class='add'>+    fun_l20_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n560()</div><div class='add'>+    fun_l20_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n561()</div><div class='add'>+    fun_l20_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n562()</div><div class='add'>+    fun_l20_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n563()</div><div class='add'>+    fun_l20_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n564()</div><div class='add'>+    fun_l20_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n565()</div><div class='add'>+    fun_l20_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n566()</div><div class='add'>+    fun_l20_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n567()</div><div class='add'>+    fun_l20_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n568()</div><div class='add'>+    fun_l20_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n569()</div><div class='add'>+    fun_l20_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n570()</div><div class='add'>+    fun_l20_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n571()</div><div class='add'>+    fun_l20_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n572()</div><div class='add'>+    fun_l20_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n573()</div><div class='add'>+    fun_l20_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n574()</div><div class='add'>+    fun_l20_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n575()</div><div class='add'>+    fun_l20_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n576()</div><div class='add'>+    fun_l20_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n577()</div><div class='add'>+    fun_l20_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n578()</div><div class='add'>+    fun_l20_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n579()</div><div class='add'>+    fun_l20_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n580()</div><div class='add'>+    fun_l20_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n581()</div><div class='add'>+    fun_l20_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n582()</div><div class='add'>+    fun_l20_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n583()</div><div class='add'>+    fun_l20_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n584()</div><div class='add'>+    fun_l20_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n585()</div><div class='add'>+    fun_l20_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n586()</div><div class='add'>+    fun_l20_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n587()</div><div class='add'>+    fun_l20_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n588()</div><div class='add'>+    fun_l20_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n589()</div><div class='add'>+    fun_l20_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n590()</div><div class='add'>+    fun_l20_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n591()</div><div class='add'>+    fun_l20_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n592()</div><div class='add'>+    fun_l20_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n593()</div><div class='add'>+    fun_l20_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n594()</div><div class='add'>+    fun_l20_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n595()</div><div class='add'>+    fun_l20_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n596()</div><div class='add'>+    fun_l20_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n597()</div><div class='add'>+    fun_l20_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n598()</div><div class='add'>+    fun_l20_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n599()</div><div class='add'>+    fun_l20_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n600()</div><div class='add'>+    fun_l20_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n601()</div><div class='add'>+    fun_l20_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n602()</div><div class='add'>+    fun_l20_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n603()</div><div class='add'>+    fun_l20_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n604()</div><div class='add'>+    fun_l20_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n605()</div><div class='add'>+    fun_l20_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n606()</div><div class='add'>+    fun_l20_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n607()</div><div class='add'>+    fun_l20_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n608()</div><div class='add'>+    fun_l20_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n609()</div><div class='add'>+    fun_l20_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n610()</div><div class='add'>+    fun_l20_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n611()</div><div class='add'>+    fun_l20_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n612()</div><div class='add'>+    fun_l20_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n613()</div><div class='add'>+    fun_l20_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n614()</div><div class='add'>+    fun_l20_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n615()</div><div class='add'>+    fun_l20_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n616()</div><div class='add'>+    fun_l20_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n617()</div><div class='add'>+    fun_l20_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n618()</div><div class='add'>+    fun_l20_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n619()</div><div class='add'>+    fun_l20_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n620()</div><div class='add'>+    fun_l20_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n621()</div><div class='add'>+    fun_l20_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n622()</div><div class='add'>+    fun_l20_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n623()</div><div class='add'>+    fun_l20_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n624()</div><div class='add'>+    fun_l20_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n625()</div><div class='add'>+    fun_l20_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n626()</div><div class='add'>+    fun_l20_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n627()</div><div class='add'>+    fun_l20_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n628()</div><div class='add'>+    fun_l20_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n629()</div><div class='add'>+    fun_l20_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n630()</div><div class='add'>+    fun_l20_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n631()</div><div class='add'>+    fun_l20_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n632()</div><div class='add'>+    fun_l20_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n633()</div><div class='add'>+    fun_l20_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n634()</div><div class='add'>+    fun_l20_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n635()</div><div class='add'>+    fun_l20_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n636()</div><div class='add'>+    fun_l20_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n637()</div><div class='add'>+    fun_l20_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n638()</div><div class='add'>+    fun_l20_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n639()</div><div class='add'>+    fun_l20_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n640()</div><div class='add'>+    fun_l20_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n641()</div><div class='add'>+    fun_l20_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n642()</div><div class='add'>+    fun_l20_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n643()</div><div class='add'>+    fun_l20_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n644()</div><div class='add'>+    fun_l20_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n645()</div><div class='add'>+    fun_l20_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n646()</div><div class='add'>+    fun_l20_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n647()</div><div class='add'>+    fun_l20_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n648()</div><div class='add'>+    fun_l20_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n649()</div><div class='add'>+    fun_l20_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n650()</div><div class='add'>+    fun_l20_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n651()</div><div class='add'>+    fun_l20_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n652()</div><div class='add'>+    fun_l20_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n653()</div><div class='add'>+    fun_l20_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n654()</div><div class='add'>+    fun_l20_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n655()</div><div class='add'>+    fun_l20_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n656()</div><div class='add'>+    fun_l20_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n657()</div><div class='add'>+    fun_l20_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n658()</div><div class='add'>+    fun_l20_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n659()</div><div class='add'>+    fun_l20_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n660()</div><div class='add'>+    fun_l20_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n661()</div><div class='add'>+    fun_l20_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n662()</div><div class='add'>+    fun_l20_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n663()</div><div class='add'>+    fun_l20_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n664()</div><div class='add'>+    fun_l20_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n665()</div><div class='add'>+    fun_l20_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n666()</div><div class='add'>+    fun_l20_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n667()</div><div class='add'>+    fun_l20_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n668()</div><div class='add'>+    fun_l20_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n669()</div><div class='add'>+    fun_l20_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n670()</div><div class='add'>+    fun_l20_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n671()</div><div class='add'>+    fun_l20_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n672()</div><div class='add'>+    fun_l20_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n673()</div><div class='add'>+    fun_l20_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n674()</div><div class='add'>+    fun_l20_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n675()</div><div class='add'>+    fun_l20_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n676()</div><div class='add'>+    fun_l20_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n677()</div><div class='add'>+    fun_l20_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n678()</div><div class='add'>+    fun_l20_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n679()</div><div class='add'>+    fun_l20_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n680()</div><div class='add'>+    fun_l20_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n681()</div><div class='add'>+    fun_l20_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n682()</div><div class='add'>+    fun_l20_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n683()</div><div class='add'>+    fun_l20_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n684()</div><div class='add'>+    fun_l20_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n685()</div><div class='add'>+    fun_l20_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n686()</div><div class='add'>+    fun_l20_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n687()</div><div class='add'>+    fun_l20_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n688()</div><div class='add'>+    fun_l20_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n689()</div><div class='add'>+    fun_l20_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n690()</div><div class='add'>+    fun_l20_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n691()</div><div class='add'>+    fun_l20_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n692()</div><div class='add'>+    fun_l20_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n693()</div><div class='add'>+    fun_l20_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n694()</div><div class='add'>+    fun_l20_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n695()</div><div class='add'>+    fun_l20_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n696()</div><div class='add'>+    fun_l20_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n697()</div><div class='add'>+    fun_l20_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n698()</div><div class='add'>+    fun_l20_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n699()</div><div class='add'>+    fun_l20_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n700()</div><div class='add'>+    fun_l20_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n701()</div><div class='add'>+    fun_l20_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n702()</div><div class='add'>+    fun_l20_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n703()</div><div class='add'>+    fun_l20_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n704()</div><div class='add'>+    fun_l20_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n705()</div><div class='add'>+    fun_l20_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n706()</div><div class='add'>+    fun_l20_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n707()</div><div class='add'>+    fun_l20_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n708()</div><div class='add'>+    fun_l20_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n709()</div><div class='add'>+    fun_l20_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n710()</div><div class='add'>+    fun_l20_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n711()</div><div class='add'>+    fun_l20_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n712()</div><div class='add'>+    fun_l20_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n713()</div><div class='add'>+    fun_l20_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n714()</div><div class='add'>+    fun_l20_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n715()</div><div class='add'>+    fun_l20_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n716()</div><div class='add'>+    fun_l20_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n717()</div><div class='add'>+    fun_l20_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n718()</div><div class='add'>+    fun_l20_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n719()</div><div class='add'>+    fun_l20_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n720()</div><div class='add'>+    fun_l20_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n721()</div><div class='add'>+    fun_l20_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n722()</div><div class='add'>+    fun_l20_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n723()</div><div class='add'>+    fun_l20_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n724()</div><div class='add'>+    fun_l20_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n725()</div><div class='add'>+    fun_l20_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n726()</div><div class='add'>+    fun_l20_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n727()</div><div class='add'>+    fun_l20_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n728()</div><div class='add'>+    fun_l20_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n729()</div><div class='add'>+    fun_l20_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n730()</div><div class='add'>+    fun_l20_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n731()</div><div class='add'>+    fun_l20_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n732()</div><div class='add'>+    fun_l20_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n733()</div><div class='add'>+    fun_l20_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n734()</div><div class='add'>+    fun_l20_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n735()</div><div class='add'>+    fun_l20_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n736()</div><div class='add'>+    fun_l20_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n737()</div><div class='add'>+    fun_l20_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n738()</div><div class='add'>+    fun_l20_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n739()</div><div class='add'>+    fun_l20_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n740()</div><div class='add'>+    fun_l20_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n741()</div><div class='add'>+    fun_l20_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n742()</div><div class='add'>+    fun_l20_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n743()</div><div class='add'>+    fun_l20_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n744()</div><div class='add'>+    fun_l20_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n745()</div><div class='add'>+    fun_l20_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n746()</div><div class='add'>+    fun_l20_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n747()</div><div class='add'>+    fun_l20_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n748()</div><div class='add'>+    fun_l20_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n749()</div><div class='add'>+    fun_l20_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n750()</div><div class='add'>+    fun_l20_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n751()</div><div class='add'>+    fun_l20_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n752()</div><div class='add'>+    fun_l20_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n753()</div><div class='add'>+    fun_l20_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n754()</div><div class='add'>+    fun_l20_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n755()</div><div class='add'>+    fun_l20_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n756()</div><div class='add'>+    fun_l20_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n757()</div><div class='add'>+    fun_l20_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n758()</div><div class='add'>+    fun_l20_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n759()</div><div class='add'>+    fun_l20_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n760()</div><div class='add'>+    fun_l20_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n761()</div><div class='add'>+    fun_l20_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n762()</div><div class='add'>+    fun_l20_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n763()</div><div class='add'>+    fun_l20_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n764()</div><div class='add'>+    fun_l20_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n765()</div><div class='add'>+    fun_l20_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n766()</div><div class='add'>+    fun_l20_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n767()</div><div class='add'>+    fun_l20_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n768()</div><div class='add'>+    fun_l20_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n769()</div><div class='add'>+    fun_l20_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n770()</div><div class='add'>+    fun_l20_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n771()</div><div class='add'>+    fun_l20_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n772()</div><div class='add'>+    fun_l20_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n773()</div><div class='add'>+    fun_l20_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n774()</div><div class='add'>+    fun_l20_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n775()</div><div class='add'>+    fun_l20_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n776()</div><div class='add'>+    fun_l20_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n777()</div><div class='add'>+    fun_l20_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n778()</div><div class='add'>+    fun_l20_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n779()</div><div class='add'>+    fun_l20_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n780()</div><div class='add'>+    fun_l20_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n781()</div><div class='add'>+    fun_l20_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n782()</div><div class='add'>+    fun_l20_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n783()</div><div class='add'>+    fun_l20_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n784()</div><div class='add'>+    fun_l20_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n785()</div><div class='add'>+    fun_l20_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n786()</div><div class='add'>+    fun_l20_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n787()</div><div class='add'>+    fun_l20_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n788()</div><div class='add'>+    fun_l20_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n789()</div><div class='add'>+    fun_l20_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n790()</div><div class='add'>+    fun_l20_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n791()</div><div class='add'>+    fun_l20_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n792()</div><div class='add'>+    fun_l20_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n793()</div><div class='add'>+    fun_l20_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n794()</div><div class='add'>+    fun_l20_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n795()</div><div class='add'>+    fun_l20_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n796()</div><div class='add'>+    fun_l20_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n797()</div><div class='add'>+    fun_l20_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n798()</div><div class='add'>+    fun_l20_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n799()</div><div class='add'>+    fun_l20_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n800()</div><div class='add'>+    fun_l20_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n801()</div><div class='add'>+    fun_l20_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n802()</div><div class='add'>+    fun_l20_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n803()</div><div class='add'>+    fun_l20_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n804()</div><div class='add'>+    fun_l20_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n805()</div><div class='add'>+    fun_l20_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n806()</div><div class='add'>+    fun_l20_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n807()</div><div class='add'>+    fun_l20_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n808()</div><div class='add'>+    fun_l20_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n809()</div><div class='add'>+    fun_l20_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n810()</div><div class='add'>+    fun_l20_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n811()</div><div class='add'>+    fun_l20_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n812()</div><div class='add'>+    fun_l20_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n813()</div><div class='add'>+    fun_l20_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n814()</div><div class='add'>+    fun_l20_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n815()</div><div class='add'>+    fun_l20_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n816()</div><div class='add'>+    fun_l20_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n817()</div><div class='add'>+    fun_l20_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n818()</div><div class='add'>+    fun_l20_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n819()</div><div class='add'>+    fun_l20_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n820()</div><div class='add'>+    fun_l20_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n821()</div><div class='add'>+    fun_l20_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n822()</div><div class='add'>+    fun_l20_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n823()</div><div class='add'>+    fun_l20_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n824()</div><div class='add'>+    fun_l20_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n825()</div><div class='add'>+    fun_l20_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n826()</div><div class='add'>+    fun_l20_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n827()</div><div class='add'>+    fun_l20_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n828()</div><div class='add'>+    fun_l20_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n829()</div><div class='add'>+    fun_l20_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n830()</div><div class='add'>+    fun_l20_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n831()</div><div class='add'>+    fun_l20_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n832()</div><div class='add'>+    fun_l20_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n833()</div><div class='add'>+    fun_l20_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n834()</div><div class='add'>+    fun_l20_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n835()</div><div class='add'>+    fun_l20_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n836()</div><div class='add'>+    fun_l20_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n837()</div><div class='add'>+    fun_l20_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n838()</div><div class='add'>+    fun_l20_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n839()</div><div class='add'>+    fun_l20_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n840()</div><div class='add'>+    fun_l20_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n841()</div><div class='add'>+    fun_l20_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n842()</div><div class='add'>+    fun_l20_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n843()</div><div class='add'>+    fun_l20_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n844()</div><div class='add'>+    fun_l20_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n845()</div><div class='add'>+    fun_l20_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n846()</div><div class='add'>+    fun_l20_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n847()</div><div class='add'>+    fun_l20_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n848()</div><div class='add'>+    fun_l20_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n849()</div><div class='add'>+    fun_l20_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n850()</div><div class='add'>+    fun_l20_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n851()</div><div class='add'>+    fun_l20_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n852()</div><div class='add'>+    fun_l20_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n853()</div><div class='add'>+    fun_l20_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n854()</div><div class='add'>+    fun_l20_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n855()</div><div class='add'>+    fun_l20_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n856()</div><div class='add'>+    fun_l20_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n857()</div><div class='add'>+    fun_l20_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n858()</div><div class='add'>+    fun_l20_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n859()</div><div class='add'>+    fun_l20_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n860()</div><div class='add'>+    fun_l20_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n861()</div><div class='add'>+    fun_l20_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n862()</div><div class='add'>+    fun_l20_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n863()</div><div class='add'>+    fun_l20_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n864()</div><div class='add'>+    fun_l20_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n865()</div><div class='add'>+    fun_l20_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n866()</div><div class='add'>+    fun_l20_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n867()</div><div class='add'>+    fun_l20_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n868()</div><div class='add'>+    fun_l20_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n869()</div><div class='add'>+    fun_l20_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n870()</div><div class='add'>+    fun_l20_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n871()</div><div class='add'>+    fun_l20_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n872()</div><div class='add'>+    fun_l20_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n873()</div><div class='add'>+    fun_l20_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n874()</div><div class='add'>+    fun_l20_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n875()</div><div class='add'>+    fun_l20_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n876()</div><div class='add'>+    fun_l20_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n877()</div><div class='add'>+    fun_l20_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n878()</div><div class='add'>+    fun_l20_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n879()</div><div class='add'>+    fun_l20_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n880()</div><div class='add'>+    fun_l20_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n881()</div><div class='add'>+    fun_l20_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n882()</div><div class='add'>+    fun_l20_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n883()</div><div class='add'>+    fun_l20_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n884()</div><div class='add'>+    fun_l20_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n885()</div><div class='add'>+    fun_l20_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n886()</div><div class='add'>+    fun_l20_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n887()</div><div class='add'>+    fun_l20_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n888()</div><div class='add'>+    fun_l20_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n889()</div><div class='add'>+    fun_l20_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n890()</div><div class='add'>+    fun_l20_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n891()</div><div class='add'>+    fun_l20_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n892()</div><div class='add'>+    fun_l20_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n893()</div><div class='add'>+    fun_l20_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n894()</div><div class='add'>+    fun_l20_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n895()</div><div class='add'>+    fun_l20_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n896()</div><div class='add'>+    fun_l20_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n897()</div><div class='add'>+    fun_l20_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n898()</div><div class='add'>+    fun_l20_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n899()</div><div class='add'>+    fun_l20_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n900()</div><div class='add'>+    fun_l20_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n901()</div><div class='add'>+    fun_l20_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n902()</div><div class='add'>+    fun_l20_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n903()</div><div class='add'>+    fun_l20_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n904()</div><div class='add'>+    fun_l20_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n905()</div><div class='add'>+    fun_l20_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n906()</div><div class='add'>+    fun_l20_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n907()</div><div class='add'>+    fun_l20_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n908()</div><div class='add'>+    fun_l20_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n909()</div><div class='add'>+    fun_l20_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n910()</div><div class='add'>+    fun_l20_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n911()</div><div class='add'>+    fun_l20_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n912()</div><div class='add'>+    fun_l20_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n913()</div><div class='add'>+    fun_l20_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n914()</div><div class='add'>+    fun_l20_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n915()</div><div class='add'>+    fun_l20_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n916()</div><div class='add'>+    fun_l20_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n917()</div><div class='add'>+    fun_l20_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n918()</div><div class='add'>+    fun_l20_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n919()</div><div class='add'>+    fun_l20_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n920()</div><div class='add'>+    fun_l20_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n921()</div><div class='add'>+    fun_l20_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n922()</div><div class='add'>+    fun_l20_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n923()</div><div class='add'>+    fun_l20_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n924()</div><div class='add'>+    fun_l20_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n925()</div><div class='add'>+    fun_l20_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n926()</div><div class='add'>+    fun_l20_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n927()</div><div class='add'>+    fun_l20_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n928()</div><div class='add'>+    fun_l20_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n929()</div><div class='add'>+    fun_l20_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n930()</div><div class='add'>+    fun_l20_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n931()</div><div class='add'>+    fun_l20_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n932()</div><div class='add'>+    fun_l20_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n933()</div><div class='add'>+    fun_l20_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n934()</div><div class='add'>+    fun_l20_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n935()</div><div class='add'>+    fun_l20_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n936()</div><div class='add'>+    fun_l20_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n937()</div><div class='add'>+    fun_l20_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n938()</div><div class='add'>+    fun_l20_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n939()</div><div class='add'>+    fun_l20_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n940()</div><div class='add'>+    fun_l20_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n941()</div><div class='add'>+    fun_l20_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n942()</div><div class='add'>+    fun_l20_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n943()</div><div class='add'>+    fun_l20_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n944()</div><div class='add'>+    fun_l20_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n945()</div><div class='add'>+    fun_l20_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n946()</div><div class='add'>+    fun_l20_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n947()</div><div class='add'>+    fun_l20_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n948()</div><div class='add'>+    fun_l20_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n949()</div><div class='add'>+    fun_l20_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n950()</div><div class='add'>+    fun_l20_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n951()</div><div class='add'>+    fun_l20_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n952()</div><div class='add'>+    fun_l20_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n953()</div><div class='add'>+    fun_l20_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n954()</div><div class='add'>+    fun_l20_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n955()</div><div class='add'>+    fun_l20_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n956()</div><div class='add'>+    fun_l20_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n957()</div><div class='add'>+    fun_l20_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n958()</div><div class='add'>+    fun_l20_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n959()</div><div class='add'>+    fun_l20_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n960()</div><div class='add'>+    fun_l20_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n961()</div><div class='add'>+    fun_l20_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n962()</div><div class='add'>+    fun_l20_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n963()</div><div class='add'>+    fun_l20_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n964()</div><div class='add'>+    fun_l20_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n965()</div><div class='add'>+    fun_l20_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n966()</div><div class='add'>+    fun_l20_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n967()</div><div class='add'>+    fun_l20_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n968()</div><div class='add'>+    fun_l20_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n969()</div><div class='add'>+    fun_l20_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n970()</div><div class='add'>+    fun_l20_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n971()</div><div class='add'>+    fun_l20_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n972()</div><div class='add'>+    fun_l20_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n973()</div><div class='add'>+    fun_l20_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n974()</div><div class='add'>+    fun_l20_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n975()</div><div class='add'>+    fun_l20_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n976()</div><div class='add'>+    fun_l20_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n977()</div><div class='add'>+    fun_l20_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n978()</div><div class='add'>+    fun_l20_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n979()</div><div class='add'>+    fun_l20_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n980()</div><div class='add'>+    fun_l20_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n981()</div><div class='add'>+    fun_l20_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n982()</div><div class='add'>+    fun_l20_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n983()</div><div class='add'>+    fun_l20_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n984()</div><div class='add'>+    fun_l20_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n985()</div><div class='add'>+    fun_l20_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n986()</div><div class='add'>+    fun_l20_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n987()</div><div class='add'>+    fun_l20_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n988()</div><div class='add'>+    fun_l20_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n989()</div><div class='add'>+    fun_l20_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n990()</div><div class='add'>+    fun_l20_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n991()</div><div class='add'>+    fun_l20_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n992()</div><div class='add'>+    fun_l20_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n993()</div><div class='add'>+    fun_l20_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n994()</div><div class='add'>+    fun_l20_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n995()</div><div class='add'>+    fun_l20_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n996()</div><div class='add'>+    fun_l20_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n997()</div><div class='add'>+    fun_l20_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n998()</div><div class='add'>+    fun_l20_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l19_n999()</div><div class='add'>+    fun_l20_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n0()</div><div class='add'>+    fun_l21_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n1()</div><div class='add'>+    fun_l21_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n2()</div><div class='add'>+    fun_l21_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n3()</div><div class='add'>+    fun_l21_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n4()</div><div class='add'>+    fun_l21_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n5()</div><div class='add'>+    fun_l21_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n6()</div><div class='add'>+    fun_l21_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n7()</div><div class='add'>+    fun_l21_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n8()</div><div class='add'>+    fun_l21_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n9()</div><div class='add'>+    fun_l21_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n10()</div><div class='add'>+    fun_l21_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n11()</div><div class='add'>+    fun_l21_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n12()</div><div class='add'>+    fun_l21_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n13()</div><div class='add'>+    fun_l21_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n14()</div><div class='add'>+    fun_l21_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n15()</div><div class='add'>+    fun_l21_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n16()</div><div class='add'>+    fun_l21_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n17()</div><div class='add'>+    fun_l21_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n18()</div><div class='add'>+    fun_l21_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n19()</div><div class='add'>+    fun_l21_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n20()</div><div class='add'>+    fun_l21_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n21()</div><div class='add'>+    fun_l21_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n22()</div><div class='add'>+    fun_l21_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n23()</div><div class='add'>+    fun_l21_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n24()</div><div class='add'>+    fun_l21_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n25()</div><div class='add'>+    fun_l21_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n26()</div><div class='add'>+    fun_l21_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n27()</div><div class='add'>+    fun_l21_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n28()</div><div class='add'>+    fun_l21_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n29()</div><div class='add'>+    fun_l21_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n30()</div><div class='add'>+    fun_l21_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n31()</div><div class='add'>+    fun_l21_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n32()</div><div class='add'>+    fun_l21_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n33()</div><div class='add'>+    fun_l21_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n34()</div><div class='add'>+    fun_l21_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n35()</div><div class='add'>+    fun_l21_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n36()</div><div class='add'>+    fun_l21_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n37()</div><div class='add'>+    fun_l21_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n38()</div><div class='add'>+    fun_l21_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n39()</div><div class='add'>+    fun_l21_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n40()</div><div class='add'>+    fun_l21_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n41()</div><div class='add'>+    fun_l21_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n42()</div><div class='add'>+    fun_l21_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n43()</div><div class='add'>+    fun_l21_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n44()</div><div class='add'>+    fun_l21_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n45()</div><div class='add'>+    fun_l21_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n46()</div><div class='add'>+    fun_l21_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n47()</div><div class='add'>+    fun_l21_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n48()</div><div class='add'>+    fun_l21_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n49()</div><div class='add'>+    fun_l21_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n50()</div><div class='add'>+    fun_l21_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n51()</div><div class='add'>+    fun_l21_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n52()</div><div class='add'>+    fun_l21_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n53()</div><div class='add'>+    fun_l21_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n54()</div><div class='add'>+    fun_l21_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n55()</div><div class='add'>+    fun_l21_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n56()</div><div class='add'>+    fun_l21_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n57()</div><div class='add'>+    fun_l21_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n58()</div><div class='add'>+    fun_l21_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n59()</div><div class='add'>+    fun_l21_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n60()</div><div class='add'>+    fun_l21_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n61()</div><div class='add'>+    fun_l21_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n62()</div><div class='add'>+    fun_l21_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n63()</div><div class='add'>+    fun_l21_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n64()</div><div class='add'>+    fun_l21_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n65()</div><div class='add'>+    fun_l21_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n66()</div><div class='add'>+    fun_l21_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n67()</div><div class='add'>+    fun_l21_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n68()</div><div class='add'>+    fun_l21_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n69()</div><div class='add'>+    fun_l21_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n70()</div><div class='add'>+    fun_l21_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n71()</div><div class='add'>+    fun_l21_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n72()</div><div class='add'>+    fun_l21_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n73()</div><div class='add'>+    fun_l21_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n74()</div><div class='add'>+    fun_l21_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n75()</div><div class='add'>+    fun_l21_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n76()</div><div class='add'>+    fun_l21_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n77()</div><div class='add'>+    fun_l21_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n78()</div><div class='add'>+    fun_l21_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n79()</div><div class='add'>+    fun_l21_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n80()</div><div class='add'>+    fun_l21_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n81()</div><div class='add'>+    fun_l21_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n82()</div><div class='add'>+    fun_l21_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n83()</div><div class='add'>+    fun_l21_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n84()</div><div class='add'>+    fun_l21_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n85()</div><div class='add'>+    fun_l21_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n86()</div><div class='add'>+    fun_l21_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n87()</div><div class='add'>+    fun_l21_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n88()</div><div class='add'>+    fun_l21_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n89()</div><div class='add'>+    fun_l21_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n90()</div><div class='add'>+    fun_l21_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n91()</div><div class='add'>+    fun_l21_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n92()</div><div class='add'>+    fun_l21_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n93()</div><div class='add'>+    fun_l21_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n94()</div><div class='add'>+    fun_l21_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n95()</div><div class='add'>+    fun_l21_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n96()</div><div class='add'>+    fun_l21_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n97()</div><div class='add'>+    fun_l21_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n98()</div><div class='add'>+    fun_l21_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n99()</div><div class='add'>+    fun_l21_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n100()</div><div class='add'>+    fun_l21_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n101()</div><div class='add'>+    fun_l21_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n102()</div><div class='add'>+    fun_l21_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n103()</div><div class='add'>+    fun_l21_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n104()</div><div class='add'>+    fun_l21_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n105()</div><div class='add'>+    fun_l21_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n106()</div><div class='add'>+    fun_l21_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n107()</div><div class='add'>+    fun_l21_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n108()</div><div class='add'>+    fun_l21_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n109()</div><div class='add'>+    fun_l21_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n110()</div><div class='add'>+    fun_l21_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n111()</div><div class='add'>+    fun_l21_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n112()</div><div class='add'>+    fun_l21_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n113()</div><div class='add'>+    fun_l21_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n114()</div><div class='add'>+    fun_l21_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n115()</div><div class='add'>+    fun_l21_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n116()</div><div class='add'>+    fun_l21_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n117()</div><div class='add'>+    fun_l21_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n118()</div><div class='add'>+    fun_l21_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n119()</div><div class='add'>+    fun_l21_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n120()</div><div class='add'>+    fun_l21_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n121()</div><div class='add'>+    fun_l21_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n122()</div><div class='add'>+    fun_l21_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n123()</div><div class='add'>+    fun_l21_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n124()</div><div class='add'>+    fun_l21_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n125()</div><div class='add'>+    fun_l21_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n126()</div><div class='add'>+    fun_l21_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n127()</div><div class='add'>+    fun_l21_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n128()</div><div class='add'>+    fun_l21_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n129()</div><div class='add'>+    fun_l21_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n130()</div><div class='add'>+    fun_l21_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n131()</div><div class='add'>+    fun_l21_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n132()</div><div class='add'>+    fun_l21_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n133()</div><div class='add'>+    fun_l21_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n134()</div><div class='add'>+    fun_l21_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n135()</div><div class='add'>+    fun_l21_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n136()</div><div class='add'>+    fun_l21_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n137()</div><div class='add'>+    fun_l21_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n138()</div><div class='add'>+    fun_l21_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n139()</div><div class='add'>+    fun_l21_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n140()</div><div class='add'>+    fun_l21_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n141()</div><div class='add'>+    fun_l21_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n142()</div><div class='add'>+    fun_l21_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n143()</div><div class='add'>+    fun_l21_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n144()</div><div class='add'>+    fun_l21_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n145()</div><div class='add'>+    fun_l21_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n146()</div><div class='add'>+    fun_l21_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n147()</div><div class='add'>+    fun_l21_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n148()</div><div class='add'>+    fun_l21_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n149()</div><div class='add'>+    fun_l21_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n150()</div><div class='add'>+    fun_l21_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n151()</div><div class='add'>+    fun_l21_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n152()</div><div class='add'>+    fun_l21_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n153()</div><div class='add'>+    fun_l21_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n154()</div><div class='add'>+    fun_l21_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n155()</div><div class='add'>+    fun_l21_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n156()</div><div class='add'>+    fun_l21_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n157()</div><div class='add'>+    fun_l21_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n158()</div><div class='add'>+    fun_l21_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n159()</div><div class='add'>+    fun_l21_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n160()</div><div class='add'>+    fun_l21_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n161()</div><div class='add'>+    fun_l21_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n162()</div><div class='add'>+    fun_l21_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n163()</div><div class='add'>+    fun_l21_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n164()</div><div class='add'>+    fun_l21_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n165()</div><div class='add'>+    fun_l21_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n166()</div><div class='add'>+    fun_l21_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n167()</div><div class='add'>+    fun_l21_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n168()</div><div class='add'>+    fun_l21_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n169()</div><div class='add'>+    fun_l21_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n170()</div><div class='add'>+    fun_l21_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n171()</div><div class='add'>+    fun_l21_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n172()</div><div class='add'>+    fun_l21_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n173()</div><div class='add'>+    fun_l21_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n174()</div><div class='add'>+    fun_l21_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n175()</div><div class='add'>+    fun_l21_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n176()</div><div class='add'>+    fun_l21_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n177()</div><div class='add'>+    fun_l21_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n178()</div><div class='add'>+    fun_l21_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n179()</div><div class='add'>+    fun_l21_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n180()</div><div class='add'>+    fun_l21_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n181()</div><div class='add'>+    fun_l21_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n182()</div><div class='add'>+    fun_l21_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n183()</div><div class='add'>+    fun_l21_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n184()</div><div class='add'>+    fun_l21_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n185()</div><div class='add'>+    fun_l21_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n186()</div><div class='add'>+    fun_l21_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n187()</div><div class='add'>+    fun_l21_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n188()</div><div class='add'>+    fun_l21_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n189()</div><div class='add'>+    fun_l21_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n190()</div><div class='add'>+    fun_l21_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n191()</div><div class='add'>+    fun_l21_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n192()</div><div class='add'>+    fun_l21_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n193()</div><div class='add'>+    fun_l21_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n194()</div><div class='add'>+    fun_l21_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n195()</div><div class='add'>+    fun_l21_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n196()</div><div class='add'>+    fun_l21_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n197()</div><div class='add'>+    fun_l21_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n198()</div><div class='add'>+    fun_l21_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n199()</div><div class='add'>+    fun_l21_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n200()</div><div class='add'>+    fun_l21_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n201()</div><div class='add'>+    fun_l21_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n202()</div><div class='add'>+    fun_l21_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n203()</div><div class='add'>+    fun_l21_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n204()</div><div class='add'>+    fun_l21_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n205()</div><div class='add'>+    fun_l21_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n206()</div><div class='add'>+    fun_l21_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n207()</div><div class='add'>+    fun_l21_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n208()</div><div class='add'>+    fun_l21_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n209()</div><div class='add'>+    fun_l21_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n210()</div><div class='add'>+    fun_l21_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n211()</div><div class='add'>+    fun_l21_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n212()</div><div class='add'>+    fun_l21_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n213()</div><div class='add'>+    fun_l21_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n214()</div><div class='add'>+    fun_l21_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n215()</div><div class='add'>+    fun_l21_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n216()</div><div class='add'>+    fun_l21_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n217()</div><div class='add'>+    fun_l21_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n218()</div><div class='add'>+    fun_l21_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n219()</div><div class='add'>+    fun_l21_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n220()</div><div class='add'>+    fun_l21_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n221()</div><div class='add'>+    fun_l21_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n222()</div><div class='add'>+    fun_l21_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n223()</div><div class='add'>+    fun_l21_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n224()</div><div class='add'>+    fun_l21_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n225()</div><div class='add'>+    fun_l21_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n226()</div><div class='add'>+    fun_l21_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n227()</div><div class='add'>+    fun_l21_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n228()</div><div class='add'>+    fun_l21_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n229()</div><div class='add'>+    fun_l21_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n230()</div><div class='add'>+    fun_l21_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n231()</div><div class='add'>+    fun_l21_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n232()</div><div class='add'>+    fun_l21_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n233()</div><div class='add'>+    fun_l21_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n234()</div><div class='add'>+    fun_l21_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n235()</div><div class='add'>+    fun_l21_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n236()</div><div class='add'>+    fun_l21_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n237()</div><div class='add'>+    fun_l21_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n238()</div><div class='add'>+    fun_l21_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n239()</div><div class='add'>+    fun_l21_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n240()</div><div class='add'>+    fun_l21_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n241()</div><div class='add'>+    fun_l21_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n242()</div><div class='add'>+    fun_l21_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n243()</div><div class='add'>+    fun_l21_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n244()</div><div class='add'>+    fun_l21_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n245()</div><div class='add'>+    fun_l21_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n246()</div><div class='add'>+    fun_l21_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n247()</div><div class='add'>+    fun_l21_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n248()</div><div class='add'>+    fun_l21_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n249()</div><div class='add'>+    fun_l21_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n250()</div><div class='add'>+    fun_l21_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n251()</div><div class='add'>+    fun_l21_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n252()</div><div class='add'>+    fun_l21_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n253()</div><div class='add'>+    fun_l21_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n254()</div><div class='add'>+    fun_l21_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n255()</div><div class='add'>+    fun_l21_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n256()</div><div class='add'>+    fun_l21_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n257()</div><div class='add'>+    fun_l21_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n258()</div><div class='add'>+    fun_l21_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n259()</div><div class='add'>+    fun_l21_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n260()</div><div class='add'>+    fun_l21_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n261()</div><div class='add'>+    fun_l21_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n262()</div><div class='add'>+    fun_l21_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n263()</div><div class='add'>+    fun_l21_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n264()</div><div class='add'>+    fun_l21_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n265()</div><div class='add'>+    fun_l21_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n266()</div><div class='add'>+    fun_l21_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n267()</div><div class='add'>+    fun_l21_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n268()</div><div class='add'>+    fun_l21_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n269()</div><div class='add'>+    fun_l21_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n270()</div><div class='add'>+    fun_l21_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n271()</div><div class='add'>+    fun_l21_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n272()</div><div class='add'>+    fun_l21_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n273()</div><div class='add'>+    fun_l21_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n274()</div><div class='add'>+    fun_l21_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n275()</div><div class='add'>+    fun_l21_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n276()</div><div class='add'>+    fun_l21_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n277()</div><div class='add'>+    fun_l21_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n278()</div><div class='add'>+    fun_l21_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n279()</div><div class='add'>+    fun_l21_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n280()</div><div class='add'>+    fun_l21_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n281()</div><div class='add'>+    fun_l21_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n282()</div><div class='add'>+    fun_l21_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n283()</div><div class='add'>+    fun_l21_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n284()</div><div class='add'>+    fun_l21_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n285()</div><div class='add'>+    fun_l21_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n286()</div><div class='add'>+    fun_l21_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n287()</div><div class='add'>+    fun_l21_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n288()</div><div class='add'>+    fun_l21_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n289()</div><div class='add'>+    fun_l21_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n290()</div><div class='add'>+    fun_l21_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n291()</div><div class='add'>+    fun_l21_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n292()</div><div class='add'>+    fun_l21_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n293()</div><div class='add'>+    fun_l21_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n294()</div><div class='add'>+    fun_l21_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n295()</div><div class='add'>+    fun_l21_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n296()</div><div class='add'>+    fun_l21_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n297()</div><div class='add'>+    fun_l21_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n298()</div><div class='add'>+    fun_l21_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n299()</div><div class='add'>+    fun_l21_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n300()</div><div class='add'>+    fun_l21_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n301()</div><div class='add'>+    fun_l21_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n302()</div><div class='add'>+    fun_l21_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n303()</div><div class='add'>+    fun_l21_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n304()</div><div class='add'>+    fun_l21_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n305()</div><div class='add'>+    fun_l21_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n306()</div><div class='add'>+    fun_l21_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n307()</div><div class='add'>+    fun_l21_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n308()</div><div class='add'>+    fun_l21_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n309()</div><div class='add'>+    fun_l21_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n310()</div><div class='add'>+    fun_l21_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n311()</div><div class='add'>+    fun_l21_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n312()</div><div class='add'>+    fun_l21_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n313()</div><div class='add'>+    fun_l21_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n314()</div><div class='add'>+    fun_l21_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n315()</div><div class='add'>+    fun_l21_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n316()</div><div class='add'>+    fun_l21_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n317()</div><div class='add'>+    fun_l21_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n318()</div><div class='add'>+    fun_l21_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n319()</div><div class='add'>+    fun_l21_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n320()</div><div class='add'>+    fun_l21_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n321()</div><div class='add'>+    fun_l21_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n322()</div><div class='add'>+    fun_l21_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n323()</div><div class='add'>+    fun_l21_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n324()</div><div class='add'>+    fun_l21_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n325()</div><div class='add'>+    fun_l21_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n326()</div><div class='add'>+    fun_l21_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n327()</div><div class='add'>+    fun_l21_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n328()</div><div class='add'>+    fun_l21_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n329()</div><div class='add'>+    fun_l21_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n330()</div><div class='add'>+    fun_l21_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n331()</div><div class='add'>+    fun_l21_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n332()</div><div class='add'>+    fun_l21_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n333()</div><div class='add'>+    fun_l21_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n334()</div><div class='add'>+    fun_l21_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n335()</div><div class='add'>+    fun_l21_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n336()</div><div class='add'>+    fun_l21_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n337()</div><div class='add'>+    fun_l21_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n338()</div><div class='add'>+    fun_l21_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n339()</div><div class='add'>+    fun_l21_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n340()</div><div class='add'>+    fun_l21_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n341()</div><div class='add'>+    fun_l21_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n342()</div><div class='add'>+    fun_l21_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n343()</div><div class='add'>+    fun_l21_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n344()</div><div class='add'>+    fun_l21_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n345()</div><div class='add'>+    fun_l21_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n346()</div><div class='add'>+    fun_l21_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n347()</div><div class='add'>+    fun_l21_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n348()</div><div class='add'>+    fun_l21_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n349()</div><div class='add'>+    fun_l21_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n350()</div><div class='add'>+    fun_l21_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n351()</div><div class='add'>+    fun_l21_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n352()</div><div class='add'>+    fun_l21_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n353()</div><div class='add'>+    fun_l21_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n354()</div><div class='add'>+    fun_l21_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n355()</div><div class='add'>+    fun_l21_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n356()</div><div class='add'>+    fun_l21_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n357()</div><div class='add'>+    fun_l21_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n358()</div><div class='add'>+    fun_l21_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n359()</div><div class='add'>+    fun_l21_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n360()</div><div class='add'>+    fun_l21_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n361()</div><div class='add'>+    fun_l21_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n362()</div><div class='add'>+    fun_l21_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n363()</div><div class='add'>+    fun_l21_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n364()</div><div class='add'>+    fun_l21_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n365()</div><div class='add'>+    fun_l21_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n366()</div><div class='add'>+    fun_l21_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n367()</div><div class='add'>+    fun_l21_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n368()</div><div class='add'>+    fun_l21_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n369()</div><div class='add'>+    fun_l21_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n370()</div><div class='add'>+    fun_l21_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n371()</div><div class='add'>+    fun_l21_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n372()</div><div class='add'>+    fun_l21_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n373()</div><div class='add'>+    fun_l21_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n374()</div><div class='add'>+    fun_l21_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n375()</div><div class='add'>+    fun_l21_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n376()</div><div class='add'>+    fun_l21_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n377()</div><div class='add'>+    fun_l21_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n378()</div><div class='add'>+    fun_l21_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n379()</div><div class='add'>+    fun_l21_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n380()</div><div class='add'>+    fun_l21_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n381()</div><div class='add'>+    fun_l21_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n382()</div><div class='add'>+    fun_l21_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n383()</div><div class='add'>+    fun_l21_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n384()</div><div class='add'>+    fun_l21_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n385()</div><div class='add'>+    fun_l21_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n386()</div><div class='add'>+    fun_l21_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n387()</div><div class='add'>+    fun_l21_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n388()</div><div class='add'>+    fun_l21_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n389()</div><div class='add'>+    fun_l21_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n390()</div><div class='add'>+    fun_l21_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n391()</div><div class='add'>+    fun_l21_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n392()</div><div class='add'>+    fun_l21_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n393()</div><div class='add'>+    fun_l21_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n394()</div><div class='add'>+    fun_l21_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n395()</div><div class='add'>+    fun_l21_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n396()</div><div class='add'>+    fun_l21_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n397()</div><div class='add'>+    fun_l21_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n398()</div><div class='add'>+    fun_l21_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n399()</div><div class='add'>+    fun_l21_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n400()</div><div class='add'>+    fun_l21_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n401()</div><div class='add'>+    fun_l21_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n402()</div><div class='add'>+    fun_l21_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n403()</div><div class='add'>+    fun_l21_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n404()</div><div class='add'>+    fun_l21_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n405()</div><div class='add'>+    fun_l21_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n406()</div><div class='add'>+    fun_l21_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n407()</div><div class='add'>+    fun_l21_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n408()</div><div class='add'>+    fun_l21_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n409()</div><div class='add'>+    fun_l21_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n410()</div><div class='add'>+    fun_l21_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n411()</div><div class='add'>+    fun_l21_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n412()</div><div class='add'>+    fun_l21_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n413()</div><div class='add'>+    fun_l21_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n414()</div><div class='add'>+    fun_l21_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n415()</div><div class='add'>+    fun_l21_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n416()</div><div class='add'>+    fun_l21_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n417()</div><div class='add'>+    fun_l21_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n418()</div><div class='add'>+    fun_l21_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n419()</div><div class='add'>+    fun_l21_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n420()</div><div class='add'>+    fun_l21_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n421()</div><div class='add'>+    fun_l21_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n422()</div><div class='add'>+    fun_l21_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n423()</div><div class='add'>+    fun_l21_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n424()</div><div class='add'>+    fun_l21_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n425()</div><div class='add'>+    fun_l21_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n426()</div><div class='add'>+    fun_l21_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n427()</div><div class='add'>+    fun_l21_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n428()</div><div class='add'>+    fun_l21_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n429()</div><div class='add'>+    fun_l21_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n430()</div><div class='add'>+    fun_l21_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n431()</div><div class='add'>+    fun_l21_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n432()</div><div class='add'>+    fun_l21_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n433()</div><div class='add'>+    fun_l21_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n434()</div><div class='add'>+    fun_l21_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n435()</div><div class='add'>+    fun_l21_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n436()</div><div class='add'>+    fun_l21_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n437()</div><div class='add'>+    fun_l21_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n438()</div><div class='add'>+    fun_l21_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n439()</div><div class='add'>+    fun_l21_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n440()</div><div class='add'>+    fun_l21_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n441()</div><div class='add'>+    fun_l21_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n442()</div><div class='add'>+    fun_l21_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n443()</div><div class='add'>+    fun_l21_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n444()</div><div class='add'>+    fun_l21_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n445()</div><div class='add'>+    fun_l21_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n446()</div><div class='add'>+    fun_l21_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n447()</div><div class='add'>+    fun_l21_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n448()</div><div class='add'>+    fun_l21_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n449()</div><div class='add'>+    fun_l21_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n450()</div><div class='add'>+    fun_l21_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n451()</div><div class='add'>+    fun_l21_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n452()</div><div class='add'>+    fun_l21_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n453()</div><div class='add'>+    fun_l21_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n454()</div><div class='add'>+    fun_l21_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n455()</div><div class='add'>+    fun_l21_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n456()</div><div class='add'>+    fun_l21_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n457()</div><div class='add'>+    fun_l21_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n458()</div><div class='add'>+    fun_l21_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n459()</div><div class='add'>+    fun_l21_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n460()</div><div class='add'>+    fun_l21_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n461()</div><div class='add'>+    fun_l21_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n462()</div><div class='add'>+    fun_l21_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n463()</div><div class='add'>+    fun_l21_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n464()</div><div class='add'>+    fun_l21_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n465()</div><div class='add'>+    fun_l21_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n466()</div><div class='add'>+    fun_l21_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n467()</div><div class='add'>+    fun_l21_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n468()</div><div class='add'>+    fun_l21_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n469()</div><div class='add'>+    fun_l21_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n470()</div><div class='add'>+    fun_l21_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n471()</div><div class='add'>+    fun_l21_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n472()</div><div class='add'>+    fun_l21_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n473()</div><div class='add'>+    fun_l21_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n474()</div><div class='add'>+    fun_l21_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n475()</div><div class='add'>+    fun_l21_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n476()</div><div class='add'>+    fun_l21_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n477()</div><div class='add'>+    fun_l21_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n478()</div><div class='add'>+    fun_l21_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n479()</div><div class='add'>+    fun_l21_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n480()</div><div class='add'>+    fun_l21_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n481()</div><div class='add'>+    fun_l21_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n482()</div><div class='add'>+    fun_l21_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n483()</div><div class='add'>+    fun_l21_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n484()</div><div class='add'>+    fun_l21_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n485()</div><div class='add'>+    fun_l21_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n486()</div><div class='add'>+    fun_l21_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n487()</div><div class='add'>+    fun_l21_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n488()</div><div class='add'>+    fun_l21_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n489()</div><div class='add'>+    fun_l21_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n490()</div><div class='add'>+    fun_l21_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n491()</div><div class='add'>+    fun_l21_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n492()</div><div class='add'>+    fun_l21_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n493()</div><div class='add'>+    fun_l21_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n494()</div><div class='add'>+    fun_l21_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n495()</div><div class='add'>+    fun_l21_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n496()</div><div class='add'>+    fun_l21_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n497()</div><div class='add'>+    fun_l21_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n498()</div><div class='add'>+    fun_l21_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n499()</div><div class='add'>+    fun_l21_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n500()</div><div class='add'>+    fun_l21_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n501()</div><div class='add'>+    fun_l21_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n502()</div><div class='add'>+    fun_l21_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n503()</div><div class='add'>+    fun_l21_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n504()</div><div class='add'>+    fun_l21_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n505()</div><div class='add'>+    fun_l21_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n506()</div><div class='add'>+    fun_l21_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n507()</div><div class='add'>+    fun_l21_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n508()</div><div class='add'>+    fun_l21_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n509()</div><div class='add'>+    fun_l21_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n510()</div><div class='add'>+    fun_l21_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n511()</div><div class='add'>+    fun_l21_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n512()</div><div class='add'>+    fun_l21_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n513()</div><div class='add'>+    fun_l21_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n514()</div><div class='add'>+    fun_l21_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n515()</div><div class='add'>+    fun_l21_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n516()</div><div class='add'>+    fun_l21_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n517()</div><div class='add'>+    fun_l21_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n518()</div><div class='add'>+    fun_l21_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n519()</div><div class='add'>+    fun_l21_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n520()</div><div class='add'>+    fun_l21_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n521()</div><div class='add'>+    fun_l21_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n522()</div><div class='add'>+    fun_l21_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n523()</div><div class='add'>+    fun_l21_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n524()</div><div class='add'>+    fun_l21_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n525()</div><div class='add'>+    fun_l21_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n526()</div><div class='add'>+    fun_l21_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n527()</div><div class='add'>+    fun_l21_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n528()</div><div class='add'>+    fun_l21_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n529()</div><div class='add'>+    fun_l21_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n530()</div><div class='add'>+    fun_l21_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n531()</div><div class='add'>+    fun_l21_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n532()</div><div class='add'>+    fun_l21_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n533()</div><div class='add'>+    fun_l21_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n534()</div><div class='add'>+    fun_l21_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n535()</div><div class='add'>+    fun_l21_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n536()</div><div class='add'>+    fun_l21_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n537()</div><div class='add'>+    fun_l21_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n538()</div><div class='add'>+    fun_l21_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n539()</div><div class='add'>+    fun_l21_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n540()</div><div class='add'>+    fun_l21_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n541()</div><div class='add'>+    fun_l21_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n542()</div><div class='add'>+    fun_l21_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n543()</div><div class='add'>+    fun_l21_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n544()</div><div class='add'>+    fun_l21_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n545()</div><div class='add'>+    fun_l21_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n546()</div><div class='add'>+    fun_l21_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n547()</div><div class='add'>+    fun_l21_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n548()</div><div class='add'>+    fun_l21_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n549()</div><div class='add'>+    fun_l21_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n550()</div><div class='add'>+    fun_l21_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n551()</div><div class='add'>+    fun_l21_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n552()</div><div class='add'>+    fun_l21_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n553()</div><div class='add'>+    fun_l21_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n554()</div><div class='add'>+    fun_l21_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n555()</div><div class='add'>+    fun_l21_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n556()</div><div class='add'>+    fun_l21_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n557()</div><div class='add'>+    fun_l21_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n558()</div><div class='add'>+    fun_l21_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n559()</div><div class='add'>+    fun_l21_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n560()</div><div class='add'>+    fun_l21_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n561()</div><div class='add'>+    fun_l21_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n562()</div><div class='add'>+    fun_l21_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n563()</div><div class='add'>+    fun_l21_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n564()</div><div class='add'>+    fun_l21_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n565()</div><div class='add'>+    fun_l21_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n566()</div><div class='add'>+    fun_l21_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n567()</div><div class='add'>+    fun_l21_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n568()</div><div class='add'>+    fun_l21_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n569()</div><div class='add'>+    fun_l21_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n570()</div><div class='add'>+    fun_l21_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n571()</div><div class='add'>+    fun_l21_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n572()</div><div class='add'>+    fun_l21_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n573()</div><div class='add'>+    fun_l21_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n574()</div><div class='add'>+    fun_l21_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n575()</div><div class='add'>+    fun_l21_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n576()</div><div class='add'>+    fun_l21_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n577()</div><div class='add'>+    fun_l21_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n578()</div><div class='add'>+    fun_l21_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n579()</div><div class='add'>+    fun_l21_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n580()</div><div class='add'>+    fun_l21_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n581()</div><div class='add'>+    fun_l21_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n582()</div><div class='add'>+    fun_l21_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n583()</div><div class='add'>+    fun_l21_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n584()</div><div class='add'>+    fun_l21_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n585()</div><div class='add'>+    fun_l21_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n586()</div><div class='add'>+    fun_l21_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n587()</div><div class='add'>+    fun_l21_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n588()</div><div class='add'>+    fun_l21_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n589()</div><div class='add'>+    fun_l21_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n590()</div><div class='add'>+    fun_l21_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n591()</div><div class='add'>+    fun_l21_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n592()</div><div class='add'>+    fun_l21_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n593()</div><div class='add'>+    fun_l21_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n594()</div><div class='add'>+    fun_l21_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n595()</div><div class='add'>+    fun_l21_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n596()</div><div class='add'>+    fun_l21_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n597()</div><div class='add'>+    fun_l21_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n598()</div><div class='add'>+    fun_l21_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n599()</div><div class='add'>+    fun_l21_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n600()</div><div class='add'>+    fun_l21_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n601()</div><div class='add'>+    fun_l21_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n602()</div><div class='add'>+    fun_l21_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n603()</div><div class='add'>+    fun_l21_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n604()</div><div class='add'>+    fun_l21_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n605()</div><div class='add'>+    fun_l21_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n606()</div><div class='add'>+    fun_l21_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n607()</div><div class='add'>+    fun_l21_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n608()</div><div class='add'>+    fun_l21_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n609()</div><div class='add'>+    fun_l21_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n610()</div><div class='add'>+    fun_l21_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n611()</div><div class='add'>+    fun_l21_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n612()</div><div class='add'>+    fun_l21_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n613()</div><div class='add'>+    fun_l21_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n614()</div><div class='add'>+    fun_l21_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n615()</div><div class='add'>+    fun_l21_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n616()</div><div class='add'>+    fun_l21_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n617()</div><div class='add'>+    fun_l21_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n618()</div><div class='add'>+    fun_l21_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n619()</div><div class='add'>+    fun_l21_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n620()</div><div class='add'>+    fun_l21_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n621()</div><div class='add'>+    fun_l21_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n622()</div><div class='add'>+    fun_l21_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n623()</div><div class='add'>+    fun_l21_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n624()</div><div class='add'>+    fun_l21_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n625()</div><div class='add'>+    fun_l21_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n626()</div><div class='add'>+    fun_l21_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n627()</div><div class='add'>+    fun_l21_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n628()</div><div class='add'>+    fun_l21_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n629()</div><div class='add'>+    fun_l21_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n630()</div><div class='add'>+    fun_l21_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n631()</div><div class='add'>+    fun_l21_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n632()</div><div class='add'>+    fun_l21_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n633()</div><div class='add'>+    fun_l21_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n634()</div><div class='add'>+    fun_l21_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n635()</div><div class='add'>+    fun_l21_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n636()</div><div class='add'>+    fun_l21_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n637()</div><div class='add'>+    fun_l21_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n638()</div><div class='add'>+    fun_l21_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n639()</div><div class='add'>+    fun_l21_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n640()</div><div class='add'>+    fun_l21_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n641()</div><div class='add'>+    fun_l21_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n642()</div><div class='add'>+    fun_l21_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n643()</div><div class='add'>+    fun_l21_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n644()</div><div class='add'>+    fun_l21_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n645()</div><div class='add'>+    fun_l21_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n646()</div><div class='add'>+    fun_l21_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n647()</div><div class='add'>+    fun_l21_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n648()</div><div class='add'>+    fun_l21_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n649()</div><div class='add'>+    fun_l21_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n650()</div><div class='add'>+    fun_l21_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n651()</div><div class='add'>+    fun_l21_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n652()</div><div class='add'>+    fun_l21_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n653()</div><div class='add'>+    fun_l21_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n654()</div><div class='add'>+    fun_l21_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n655()</div><div class='add'>+    fun_l21_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n656()</div><div class='add'>+    fun_l21_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n657()</div><div class='add'>+    fun_l21_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n658()</div><div class='add'>+    fun_l21_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n659()</div><div class='add'>+    fun_l21_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n660()</div><div class='add'>+    fun_l21_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n661()</div><div class='add'>+    fun_l21_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n662()</div><div class='add'>+    fun_l21_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n663()</div><div class='add'>+    fun_l21_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n664()</div><div class='add'>+    fun_l21_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n665()</div><div class='add'>+    fun_l21_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n666()</div><div class='add'>+    fun_l21_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n667()</div><div class='add'>+    fun_l21_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n668()</div><div class='add'>+    fun_l21_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n669()</div><div class='add'>+    fun_l21_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n670()</div><div class='add'>+    fun_l21_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n671()</div><div class='add'>+    fun_l21_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n672()</div><div class='add'>+    fun_l21_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n673()</div><div class='add'>+    fun_l21_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n674()</div><div class='add'>+    fun_l21_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n675()</div><div class='add'>+    fun_l21_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n676()</div><div class='add'>+    fun_l21_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n677()</div><div class='add'>+    fun_l21_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n678()</div><div class='add'>+    fun_l21_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n679()</div><div class='add'>+    fun_l21_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n680()</div><div class='add'>+    fun_l21_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n681()</div><div class='add'>+    fun_l21_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n682()</div><div class='add'>+    fun_l21_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n683()</div><div class='add'>+    fun_l21_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n684()</div><div class='add'>+    fun_l21_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n685()</div><div class='add'>+    fun_l21_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n686()</div><div class='add'>+    fun_l21_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n687()</div><div class='add'>+    fun_l21_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n688()</div><div class='add'>+    fun_l21_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n689()</div><div class='add'>+    fun_l21_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n690()</div><div class='add'>+    fun_l21_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n691()</div><div class='add'>+    fun_l21_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n692()</div><div class='add'>+    fun_l21_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n693()</div><div class='add'>+    fun_l21_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n694()</div><div class='add'>+    fun_l21_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n695()</div><div class='add'>+    fun_l21_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n696()</div><div class='add'>+    fun_l21_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n697()</div><div class='add'>+    fun_l21_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n698()</div><div class='add'>+    fun_l21_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n699()</div><div class='add'>+    fun_l21_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n700()</div><div class='add'>+    fun_l21_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n701()</div><div class='add'>+    fun_l21_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n702()</div><div class='add'>+    fun_l21_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n703()</div><div class='add'>+    fun_l21_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n704()</div><div class='add'>+    fun_l21_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n705()</div><div class='add'>+    fun_l21_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n706()</div><div class='add'>+    fun_l21_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n707()</div><div class='add'>+    fun_l21_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n708()</div><div class='add'>+    fun_l21_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n709()</div><div class='add'>+    fun_l21_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n710()</div><div class='add'>+    fun_l21_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n711()</div><div class='add'>+    fun_l21_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n712()</div><div class='add'>+    fun_l21_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n713()</div><div class='add'>+    fun_l21_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n714()</div><div class='add'>+    fun_l21_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n715()</div><div class='add'>+    fun_l21_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n716()</div><div class='add'>+    fun_l21_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n717()</div><div class='add'>+    fun_l21_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n718()</div><div class='add'>+    fun_l21_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n719()</div><div class='add'>+    fun_l21_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n720()</div><div class='add'>+    fun_l21_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n721()</div><div class='add'>+    fun_l21_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n722()</div><div class='add'>+    fun_l21_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n723()</div><div class='add'>+    fun_l21_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n724()</div><div class='add'>+    fun_l21_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n725()</div><div class='add'>+    fun_l21_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n726()</div><div class='add'>+    fun_l21_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n727()</div><div class='add'>+    fun_l21_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n728()</div><div class='add'>+    fun_l21_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n729()</div><div class='add'>+    fun_l21_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n730()</div><div class='add'>+    fun_l21_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n731()</div><div class='add'>+    fun_l21_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n732()</div><div class='add'>+    fun_l21_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n733()</div><div class='add'>+    fun_l21_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n734()</div><div class='add'>+    fun_l21_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n735()</div><div class='add'>+    fun_l21_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n736()</div><div class='add'>+    fun_l21_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n737()</div><div class='add'>+    fun_l21_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n738()</div><div class='add'>+    fun_l21_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n739()</div><div class='add'>+    fun_l21_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n740()</div><div class='add'>+    fun_l21_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n741()</div><div class='add'>+    fun_l21_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n742()</div><div class='add'>+    fun_l21_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n743()</div><div class='add'>+    fun_l21_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n744()</div><div class='add'>+    fun_l21_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n745()</div><div class='add'>+    fun_l21_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n746()</div><div class='add'>+    fun_l21_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n747()</div><div class='add'>+    fun_l21_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n748()</div><div class='add'>+    fun_l21_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n749()</div><div class='add'>+    fun_l21_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n750()</div><div class='add'>+    fun_l21_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n751()</div><div class='add'>+    fun_l21_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n752()</div><div class='add'>+    fun_l21_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n753()</div><div class='add'>+    fun_l21_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n754()</div><div class='add'>+    fun_l21_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n755()</div><div class='add'>+    fun_l21_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n756()</div><div class='add'>+    fun_l21_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n757()</div><div class='add'>+    fun_l21_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n758()</div><div class='add'>+    fun_l21_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n759()</div><div class='add'>+    fun_l21_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n760()</div><div class='add'>+    fun_l21_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n761()</div><div class='add'>+    fun_l21_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n762()</div><div class='add'>+    fun_l21_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n763()</div><div class='add'>+    fun_l21_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n764()</div><div class='add'>+    fun_l21_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n765()</div><div class='add'>+    fun_l21_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n766()</div><div class='add'>+    fun_l21_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n767()</div><div class='add'>+    fun_l21_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n768()</div><div class='add'>+    fun_l21_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n769()</div><div class='add'>+    fun_l21_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n770()</div><div class='add'>+    fun_l21_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n771()</div><div class='add'>+    fun_l21_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n772()</div><div class='add'>+    fun_l21_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n773()</div><div class='add'>+    fun_l21_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n774()</div><div class='add'>+    fun_l21_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n775()</div><div class='add'>+    fun_l21_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n776()</div><div class='add'>+    fun_l21_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n777()</div><div class='add'>+    fun_l21_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n778()</div><div class='add'>+    fun_l21_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n779()</div><div class='add'>+    fun_l21_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n780()</div><div class='add'>+    fun_l21_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n781()</div><div class='add'>+    fun_l21_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n782()</div><div class='add'>+    fun_l21_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n783()</div><div class='add'>+    fun_l21_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n784()</div><div class='add'>+    fun_l21_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n785()</div><div class='add'>+    fun_l21_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n786()</div><div class='add'>+    fun_l21_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n787()</div><div class='add'>+    fun_l21_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n788()</div><div class='add'>+    fun_l21_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n789()</div><div class='add'>+    fun_l21_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n790()</div><div class='add'>+    fun_l21_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n791()</div><div class='add'>+    fun_l21_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n792()</div><div class='add'>+    fun_l21_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n793()</div><div class='add'>+    fun_l21_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n794()</div><div class='add'>+    fun_l21_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n795()</div><div class='add'>+    fun_l21_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n796()</div><div class='add'>+    fun_l21_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n797()</div><div class='add'>+    fun_l21_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n798()</div><div class='add'>+    fun_l21_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n799()</div><div class='add'>+    fun_l21_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n800()</div><div class='add'>+    fun_l21_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n801()</div><div class='add'>+    fun_l21_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n802()</div><div class='add'>+    fun_l21_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n803()</div><div class='add'>+    fun_l21_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n804()</div><div class='add'>+    fun_l21_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n805()</div><div class='add'>+    fun_l21_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n806()</div><div class='add'>+    fun_l21_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n807()</div><div class='add'>+    fun_l21_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n808()</div><div class='add'>+    fun_l21_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n809()</div><div class='add'>+    fun_l21_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n810()</div><div class='add'>+    fun_l21_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n811()</div><div class='add'>+    fun_l21_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n812()</div><div class='add'>+    fun_l21_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n813()</div><div class='add'>+    fun_l21_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n814()</div><div class='add'>+    fun_l21_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n815()</div><div class='add'>+    fun_l21_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n816()</div><div class='add'>+    fun_l21_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n817()</div><div class='add'>+    fun_l21_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n818()</div><div class='add'>+    fun_l21_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n819()</div><div class='add'>+    fun_l21_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n820()</div><div class='add'>+    fun_l21_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n821()</div><div class='add'>+    fun_l21_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n822()</div><div class='add'>+    fun_l21_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n823()</div><div class='add'>+    fun_l21_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n824()</div><div class='add'>+    fun_l21_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n825()</div><div class='add'>+    fun_l21_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n826()</div><div class='add'>+    fun_l21_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n827()</div><div class='add'>+    fun_l21_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n828()</div><div class='add'>+    fun_l21_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n829()</div><div class='add'>+    fun_l21_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n830()</div><div class='add'>+    fun_l21_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n831()</div><div class='add'>+    fun_l21_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n832()</div><div class='add'>+    fun_l21_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n833()</div><div class='add'>+    fun_l21_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n834()</div><div class='add'>+    fun_l21_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n835()</div><div class='add'>+    fun_l21_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n836()</div><div class='add'>+    fun_l21_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n837()</div><div class='add'>+    fun_l21_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n838()</div><div class='add'>+    fun_l21_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n839()</div><div class='add'>+    fun_l21_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n840()</div><div class='add'>+    fun_l21_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n841()</div><div class='add'>+    fun_l21_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n842()</div><div class='add'>+    fun_l21_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n843()</div><div class='add'>+    fun_l21_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n844()</div><div class='add'>+    fun_l21_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n845()</div><div class='add'>+    fun_l21_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n846()</div><div class='add'>+    fun_l21_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n847()</div><div class='add'>+    fun_l21_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n848()</div><div class='add'>+    fun_l21_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n849()</div><div class='add'>+    fun_l21_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n850()</div><div class='add'>+    fun_l21_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n851()</div><div class='add'>+    fun_l21_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n852()</div><div class='add'>+    fun_l21_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n853()</div><div class='add'>+    fun_l21_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n854()</div><div class='add'>+    fun_l21_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n855()</div><div class='add'>+    fun_l21_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n856()</div><div class='add'>+    fun_l21_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n857()</div><div class='add'>+    fun_l21_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n858()</div><div class='add'>+    fun_l21_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n859()</div><div class='add'>+    fun_l21_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n860()</div><div class='add'>+    fun_l21_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n861()</div><div class='add'>+    fun_l21_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n862()</div><div class='add'>+    fun_l21_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n863()</div><div class='add'>+    fun_l21_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n864()</div><div class='add'>+    fun_l21_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n865()</div><div class='add'>+    fun_l21_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n866()</div><div class='add'>+    fun_l21_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n867()</div><div class='add'>+    fun_l21_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n868()</div><div class='add'>+    fun_l21_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n869()</div><div class='add'>+    fun_l21_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n870()</div><div class='add'>+    fun_l21_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n871()</div><div class='add'>+    fun_l21_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n872()</div><div class='add'>+    fun_l21_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n873()</div><div class='add'>+    fun_l21_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n874()</div><div class='add'>+    fun_l21_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n875()</div><div class='add'>+    fun_l21_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n876()</div><div class='add'>+    fun_l21_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n877()</div><div class='add'>+    fun_l21_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n878()</div><div class='add'>+    fun_l21_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n879()</div><div class='add'>+    fun_l21_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n880()</div><div class='add'>+    fun_l21_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n881()</div><div class='add'>+    fun_l21_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n882()</div><div class='add'>+    fun_l21_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n883()</div><div class='add'>+    fun_l21_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n884()</div><div class='add'>+    fun_l21_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n885()</div><div class='add'>+    fun_l21_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n886()</div><div class='add'>+    fun_l21_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n887()</div><div class='add'>+    fun_l21_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n888()</div><div class='add'>+    fun_l21_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n889()</div><div class='add'>+    fun_l21_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n890()</div><div class='add'>+    fun_l21_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n891()</div><div class='add'>+    fun_l21_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n892()</div><div class='add'>+    fun_l21_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n893()</div><div class='add'>+    fun_l21_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n894()</div><div class='add'>+    fun_l21_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n895()</div><div class='add'>+    fun_l21_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n896()</div><div class='add'>+    fun_l21_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n897()</div><div class='add'>+    fun_l21_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n898()</div><div class='add'>+    fun_l21_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n899()</div><div class='add'>+    fun_l21_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n900()</div><div class='add'>+    fun_l21_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n901()</div><div class='add'>+    fun_l21_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n902()</div><div class='add'>+    fun_l21_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n903()</div><div class='add'>+    fun_l21_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n904()</div><div class='add'>+    fun_l21_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n905()</div><div class='add'>+    fun_l21_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n906()</div><div class='add'>+    fun_l21_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n907()</div><div class='add'>+    fun_l21_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n908()</div><div class='add'>+    fun_l21_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n909()</div><div class='add'>+    fun_l21_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n910()</div><div class='add'>+    fun_l21_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n911()</div><div class='add'>+    fun_l21_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n912()</div><div class='add'>+    fun_l21_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n913()</div><div class='add'>+    fun_l21_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n914()</div><div class='add'>+    fun_l21_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n915()</div><div class='add'>+    fun_l21_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n916()</div><div class='add'>+    fun_l21_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n917()</div><div class='add'>+    fun_l21_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n918()</div><div class='add'>+    fun_l21_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n919()</div><div class='add'>+    fun_l21_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n920()</div><div class='add'>+    fun_l21_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n921()</div><div class='add'>+    fun_l21_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n922()</div><div class='add'>+    fun_l21_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n923()</div><div class='add'>+    fun_l21_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n924()</div><div class='add'>+    fun_l21_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n925()</div><div class='add'>+    fun_l21_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n926()</div><div class='add'>+    fun_l21_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n927()</div><div class='add'>+    fun_l21_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n928()</div><div class='add'>+    fun_l21_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n929()</div><div class='add'>+    fun_l21_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n930()</div><div class='add'>+    fun_l21_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n931()</div><div class='add'>+    fun_l21_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n932()</div><div class='add'>+    fun_l21_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n933()</div><div class='add'>+    fun_l21_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n934()</div><div class='add'>+    fun_l21_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n935()</div><div class='add'>+    fun_l21_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n936()</div><div class='add'>+    fun_l21_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n937()</div><div class='add'>+    fun_l21_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n938()</div><div class='add'>+    fun_l21_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n939()</div><div class='add'>+    fun_l21_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n940()</div><div class='add'>+    fun_l21_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n941()</div><div class='add'>+    fun_l21_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n942()</div><div class='add'>+    fun_l21_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n943()</div><div class='add'>+    fun_l21_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n944()</div><div class='add'>+    fun_l21_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n945()</div><div class='add'>+    fun_l21_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n946()</div><div class='add'>+    fun_l21_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n947()</div><div class='add'>+    fun_l21_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n948()</div><div class='add'>+    fun_l21_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n949()</div><div class='add'>+    fun_l21_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n950()</div><div class='add'>+    fun_l21_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n951()</div><div class='add'>+    fun_l21_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n952()</div><div class='add'>+    fun_l21_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n953()</div><div class='add'>+    fun_l21_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n954()</div><div class='add'>+    fun_l21_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n955()</div><div class='add'>+    fun_l21_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n956()</div><div class='add'>+    fun_l21_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n957()</div><div class='add'>+    fun_l21_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n958()</div><div class='add'>+    fun_l21_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n959()</div><div class='add'>+    fun_l21_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n960()</div><div class='add'>+    fun_l21_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n961()</div><div class='add'>+    fun_l21_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n962()</div><div class='add'>+    fun_l21_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n963()</div><div class='add'>+    fun_l21_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n964()</div><div class='add'>+    fun_l21_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n965()</div><div class='add'>+    fun_l21_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n966()</div><div class='add'>+    fun_l21_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n967()</div><div class='add'>+    fun_l21_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n968()</div><div class='add'>+    fun_l21_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n969()</div><div class='add'>+    fun_l21_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n970()</div><div class='add'>+    fun_l21_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n971()</div><div class='add'>+    fun_l21_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n972()</div><div class='add'>+    fun_l21_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n973()</div><div class='add'>+    fun_l21_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n974()</div><div class='add'>+    fun_l21_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n975()</div><div class='add'>+    fun_l21_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n976()</div><div class='add'>+    fun_l21_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n977()</div><div class='add'>+    fun_l21_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n978()</div><div class='add'>+    fun_l21_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n979()</div><div class='add'>+    fun_l21_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n980()</div><div class='add'>+    fun_l21_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n981()</div><div class='add'>+    fun_l21_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n982()</div><div class='add'>+    fun_l21_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n983()</div><div class='add'>+    fun_l21_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n984()</div><div class='add'>+    fun_l21_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n985()</div><div class='add'>+    fun_l21_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n986()</div><div class='add'>+    fun_l21_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n987()</div><div class='add'>+    fun_l21_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n988()</div><div class='add'>+    fun_l21_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n989()</div><div class='add'>+    fun_l21_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n990()</div><div class='add'>+    fun_l21_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n991()</div><div class='add'>+    fun_l21_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n992()</div><div class='add'>+    fun_l21_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n993()</div><div class='add'>+    fun_l21_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n994()</div><div class='add'>+    fun_l21_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n995()</div><div class='add'>+    fun_l21_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n996()</div><div class='add'>+    fun_l21_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n997()</div><div class='add'>+    fun_l21_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n998()</div><div class='add'>+    fun_l21_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l20_n999()</div><div class='add'>+    fun_l21_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n0()</div><div class='add'>+    fun_l22_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n1()</div><div class='add'>+    fun_l22_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n2()</div><div class='add'>+    fun_l22_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n3()</div><div class='add'>+    fun_l22_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n4()</div><div class='add'>+    fun_l22_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n5()</div><div class='add'>+    fun_l22_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n6()</div><div class='add'>+    fun_l22_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n7()</div><div class='add'>+    fun_l22_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n8()</div><div class='add'>+    fun_l22_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n9()</div><div class='add'>+    fun_l22_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n10()</div><div class='add'>+    fun_l22_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n11()</div><div class='add'>+    fun_l22_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n12()</div><div class='add'>+    fun_l22_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n13()</div><div class='add'>+    fun_l22_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n14()</div><div class='add'>+    fun_l22_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n15()</div><div class='add'>+    fun_l22_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n16()</div><div class='add'>+    fun_l22_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n17()</div><div class='add'>+    fun_l22_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n18()</div><div class='add'>+    fun_l22_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n19()</div><div class='add'>+    fun_l22_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n20()</div><div class='add'>+    fun_l22_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n21()</div><div class='add'>+    fun_l22_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n22()</div><div class='add'>+    fun_l22_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n23()</div><div class='add'>+    fun_l22_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n24()</div><div class='add'>+    fun_l22_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n25()</div><div class='add'>+    fun_l22_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n26()</div><div class='add'>+    fun_l22_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n27()</div><div class='add'>+    fun_l22_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n28()</div><div class='add'>+    fun_l22_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n29()</div><div class='add'>+    fun_l22_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n30()</div><div class='add'>+    fun_l22_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n31()</div><div class='add'>+    fun_l22_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n32()</div><div class='add'>+    fun_l22_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n33()</div><div class='add'>+    fun_l22_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n34()</div><div class='add'>+    fun_l22_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n35()</div><div class='add'>+    fun_l22_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n36()</div><div class='add'>+    fun_l22_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n37()</div><div class='add'>+    fun_l22_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n38()</div><div class='add'>+    fun_l22_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n39()</div><div class='add'>+    fun_l22_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n40()</div><div class='add'>+    fun_l22_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n41()</div><div class='add'>+    fun_l22_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n42()</div><div class='add'>+    fun_l22_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n43()</div><div class='add'>+    fun_l22_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n44()</div><div class='add'>+    fun_l22_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n45()</div><div class='add'>+    fun_l22_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n46()</div><div class='add'>+    fun_l22_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n47()</div><div class='add'>+    fun_l22_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n48()</div><div class='add'>+    fun_l22_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n49()</div><div class='add'>+    fun_l22_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n50()</div><div class='add'>+    fun_l22_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n51()</div><div class='add'>+    fun_l22_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n52()</div><div class='add'>+    fun_l22_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n53()</div><div class='add'>+    fun_l22_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n54()</div><div class='add'>+    fun_l22_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n55()</div><div class='add'>+    fun_l22_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n56()</div><div class='add'>+    fun_l22_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n57()</div><div class='add'>+    fun_l22_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n58()</div><div class='add'>+    fun_l22_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n59()</div><div class='add'>+    fun_l22_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n60()</div><div class='add'>+    fun_l22_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n61()</div><div class='add'>+    fun_l22_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n62()</div><div class='add'>+    fun_l22_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n63()</div><div class='add'>+    fun_l22_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n64()</div><div class='add'>+    fun_l22_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n65()</div><div class='add'>+    fun_l22_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n66()</div><div class='add'>+    fun_l22_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n67()</div><div class='add'>+    fun_l22_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n68()</div><div class='add'>+    fun_l22_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n69()</div><div class='add'>+    fun_l22_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n70()</div><div class='add'>+    fun_l22_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n71()</div><div class='add'>+    fun_l22_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n72()</div><div class='add'>+    fun_l22_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n73()</div><div class='add'>+    fun_l22_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n74()</div><div class='add'>+    fun_l22_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n75()</div><div class='add'>+    fun_l22_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n76()</div><div class='add'>+    fun_l22_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n77()</div><div class='add'>+    fun_l22_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n78()</div><div class='add'>+    fun_l22_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n79()</div><div class='add'>+    fun_l22_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n80()</div><div class='add'>+    fun_l22_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n81()</div><div class='add'>+    fun_l22_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n82()</div><div class='add'>+    fun_l22_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n83()</div><div class='add'>+    fun_l22_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n84()</div><div class='add'>+    fun_l22_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n85()</div><div class='add'>+    fun_l22_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n86()</div><div class='add'>+    fun_l22_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n87()</div><div class='add'>+    fun_l22_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n88()</div><div class='add'>+    fun_l22_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n89()</div><div class='add'>+    fun_l22_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n90()</div><div class='add'>+    fun_l22_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n91()</div><div class='add'>+    fun_l22_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n92()</div><div class='add'>+    fun_l22_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n93()</div><div class='add'>+    fun_l22_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n94()</div><div class='add'>+    fun_l22_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n95()</div><div class='add'>+    fun_l22_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n96()</div><div class='add'>+    fun_l22_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n97()</div><div class='add'>+    fun_l22_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n98()</div><div class='add'>+    fun_l22_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n99()</div><div class='add'>+    fun_l22_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n100()</div><div class='add'>+    fun_l22_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n101()</div><div class='add'>+    fun_l22_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n102()</div><div class='add'>+    fun_l22_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n103()</div><div class='add'>+    fun_l22_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n104()</div><div class='add'>+    fun_l22_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n105()</div><div class='add'>+    fun_l22_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n106()</div><div class='add'>+    fun_l22_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n107()</div><div class='add'>+    fun_l22_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n108()</div><div class='add'>+    fun_l22_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n109()</div><div class='add'>+    fun_l22_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n110()</div><div class='add'>+    fun_l22_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n111()</div><div class='add'>+    fun_l22_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n112()</div><div class='add'>+    fun_l22_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n113()</div><div class='add'>+    fun_l22_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n114()</div><div class='add'>+    fun_l22_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n115()</div><div class='add'>+    fun_l22_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n116()</div><div class='add'>+    fun_l22_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n117()</div><div class='add'>+    fun_l22_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n118()</div><div class='add'>+    fun_l22_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n119()</div><div class='add'>+    fun_l22_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n120()</div><div class='add'>+    fun_l22_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n121()</div><div class='add'>+    fun_l22_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n122()</div><div class='add'>+    fun_l22_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n123()</div><div class='add'>+    fun_l22_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n124()</div><div class='add'>+    fun_l22_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n125()</div><div class='add'>+    fun_l22_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n126()</div><div class='add'>+    fun_l22_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n127()</div><div class='add'>+    fun_l22_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n128()</div><div class='add'>+    fun_l22_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n129()</div><div class='add'>+    fun_l22_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n130()</div><div class='add'>+    fun_l22_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n131()</div><div class='add'>+    fun_l22_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n132()</div><div class='add'>+    fun_l22_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n133()</div><div class='add'>+    fun_l22_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n134()</div><div class='add'>+    fun_l22_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n135()</div><div class='add'>+    fun_l22_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n136()</div><div class='add'>+    fun_l22_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n137()</div><div class='add'>+    fun_l22_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n138()</div><div class='add'>+    fun_l22_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n139()</div><div class='add'>+    fun_l22_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n140()</div><div class='add'>+    fun_l22_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n141()</div><div class='add'>+    fun_l22_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n142()</div><div class='add'>+    fun_l22_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n143()</div><div class='add'>+    fun_l22_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n144()</div><div class='add'>+    fun_l22_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n145()</div><div class='add'>+    fun_l22_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n146()</div><div class='add'>+    fun_l22_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n147()</div><div class='add'>+    fun_l22_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n148()</div><div class='add'>+    fun_l22_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n149()</div><div class='add'>+    fun_l22_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n150()</div><div class='add'>+    fun_l22_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n151()</div><div class='add'>+    fun_l22_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n152()</div><div class='add'>+    fun_l22_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n153()</div><div class='add'>+    fun_l22_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n154()</div><div class='add'>+    fun_l22_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n155()</div><div class='add'>+    fun_l22_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n156()</div><div class='add'>+    fun_l22_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n157()</div><div class='add'>+    fun_l22_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n158()</div><div class='add'>+    fun_l22_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n159()</div><div class='add'>+    fun_l22_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n160()</div><div class='add'>+    fun_l22_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n161()</div><div class='add'>+    fun_l22_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n162()</div><div class='add'>+    fun_l22_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n163()</div><div class='add'>+    fun_l22_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n164()</div><div class='add'>+    fun_l22_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n165()</div><div class='add'>+    fun_l22_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n166()</div><div class='add'>+    fun_l22_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n167()</div><div class='add'>+    fun_l22_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n168()</div><div class='add'>+    fun_l22_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n169()</div><div class='add'>+    fun_l22_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n170()</div><div class='add'>+    fun_l22_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n171()</div><div class='add'>+    fun_l22_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n172()</div><div class='add'>+    fun_l22_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n173()</div><div class='add'>+    fun_l22_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n174()</div><div class='add'>+    fun_l22_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n175()</div><div class='add'>+    fun_l22_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n176()</div><div class='add'>+    fun_l22_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n177()</div><div class='add'>+    fun_l22_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n178()</div><div class='add'>+    fun_l22_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n179()</div><div class='add'>+    fun_l22_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n180()</div><div class='add'>+    fun_l22_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n181()</div><div class='add'>+    fun_l22_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n182()</div><div class='add'>+    fun_l22_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n183()</div><div class='add'>+    fun_l22_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n184()</div><div class='add'>+    fun_l22_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n185()</div><div class='add'>+    fun_l22_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n186()</div><div class='add'>+    fun_l22_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n187()</div><div class='add'>+    fun_l22_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n188()</div><div class='add'>+    fun_l22_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n189()</div><div class='add'>+    fun_l22_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n190()</div><div class='add'>+    fun_l22_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n191()</div><div class='add'>+    fun_l22_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n192()</div><div class='add'>+    fun_l22_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n193()</div><div class='add'>+    fun_l22_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n194()</div><div class='add'>+    fun_l22_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n195()</div><div class='add'>+    fun_l22_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n196()</div><div class='add'>+    fun_l22_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n197()</div><div class='add'>+    fun_l22_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n198()</div><div class='add'>+    fun_l22_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n199()</div><div class='add'>+    fun_l22_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n200()</div><div class='add'>+    fun_l22_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n201()</div><div class='add'>+    fun_l22_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n202()</div><div class='add'>+    fun_l22_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n203()</div><div class='add'>+    fun_l22_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n204()</div><div class='add'>+    fun_l22_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n205()</div><div class='add'>+    fun_l22_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n206()</div><div class='add'>+    fun_l22_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n207()</div><div class='add'>+    fun_l22_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n208()</div><div class='add'>+    fun_l22_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n209()</div><div class='add'>+    fun_l22_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n210()</div><div class='add'>+    fun_l22_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n211()</div><div class='add'>+    fun_l22_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n212()</div><div class='add'>+    fun_l22_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n213()</div><div class='add'>+    fun_l22_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n214()</div><div class='add'>+    fun_l22_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n215()</div><div class='add'>+    fun_l22_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n216()</div><div class='add'>+    fun_l22_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n217()</div><div class='add'>+    fun_l22_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n218()</div><div class='add'>+    fun_l22_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n219()</div><div class='add'>+    fun_l22_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n220()</div><div class='add'>+    fun_l22_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n221()</div><div class='add'>+    fun_l22_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n222()</div><div class='add'>+    fun_l22_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n223()</div><div class='add'>+    fun_l22_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n224()</div><div class='add'>+    fun_l22_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n225()</div><div class='add'>+    fun_l22_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n226()</div><div class='add'>+    fun_l22_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n227()</div><div class='add'>+    fun_l22_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n228()</div><div class='add'>+    fun_l22_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n229()</div><div class='add'>+    fun_l22_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n230()</div><div class='add'>+    fun_l22_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n231()</div><div class='add'>+    fun_l22_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n232()</div><div class='add'>+    fun_l22_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n233()</div><div class='add'>+    fun_l22_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n234()</div><div class='add'>+    fun_l22_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n235()</div><div class='add'>+    fun_l22_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n236()</div><div class='add'>+    fun_l22_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n237()</div><div class='add'>+    fun_l22_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n238()</div><div class='add'>+    fun_l22_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n239()</div><div class='add'>+    fun_l22_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n240()</div><div class='add'>+    fun_l22_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n241()</div><div class='add'>+    fun_l22_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n242()</div><div class='add'>+    fun_l22_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n243()</div><div class='add'>+    fun_l22_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n244()</div><div class='add'>+    fun_l22_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n245()</div><div class='add'>+    fun_l22_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n246()</div><div class='add'>+    fun_l22_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n247()</div><div class='add'>+    fun_l22_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n248()</div><div class='add'>+    fun_l22_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n249()</div><div class='add'>+    fun_l22_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n250()</div><div class='add'>+    fun_l22_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n251()</div><div class='add'>+    fun_l22_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n252()</div><div class='add'>+    fun_l22_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n253()</div><div class='add'>+    fun_l22_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n254()</div><div class='add'>+    fun_l22_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n255()</div><div class='add'>+    fun_l22_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n256()</div><div class='add'>+    fun_l22_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n257()</div><div class='add'>+    fun_l22_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n258()</div><div class='add'>+    fun_l22_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n259()</div><div class='add'>+    fun_l22_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n260()</div><div class='add'>+    fun_l22_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n261()</div><div class='add'>+    fun_l22_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n262()</div><div class='add'>+    fun_l22_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n263()</div><div class='add'>+    fun_l22_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n264()</div><div class='add'>+    fun_l22_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n265()</div><div class='add'>+    fun_l22_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n266()</div><div class='add'>+    fun_l22_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n267()</div><div class='add'>+    fun_l22_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n268()</div><div class='add'>+    fun_l22_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n269()</div><div class='add'>+    fun_l22_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n270()</div><div class='add'>+    fun_l22_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n271()</div><div class='add'>+    fun_l22_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n272()</div><div class='add'>+    fun_l22_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n273()</div><div class='add'>+    fun_l22_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n274()</div><div class='add'>+    fun_l22_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n275()</div><div class='add'>+    fun_l22_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n276()</div><div class='add'>+    fun_l22_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n277()</div><div class='add'>+    fun_l22_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n278()</div><div class='add'>+    fun_l22_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n279()</div><div class='add'>+    fun_l22_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n280()</div><div class='add'>+    fun_l22_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n281()</div><div class='add'>+    fun_l22_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n282()</div><div class='add'>+    fun_l22_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n283()</div><div class='add'>+    fun_l22_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n284()</div><div class='add'>+    fun_l22_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n285()</div><div class='add'>+    fun_l22_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n286()</div><div class='add'>+    fun_l22_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n287()</div><div class='add'>+    fun_l22_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n288()</div><div class='add'>+    fun_l22_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n289()</div><div class='add'>+    fun_l22_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n290()</div><div class='add'>+    fun_l22_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n291()</div><div class='add'>+    fun_l22_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n292()</div><div class='add'>+    fun_l22_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n293()</div><div class='add'>+    fun_l22_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n294()</div><div class='add'>+    fun_l22_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n295()</div><div class='add'>+    fun_l22_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n296()</div><div class='add'>+    fun_l22_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n297()</div><div class='add'>+    fun_l22_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n298()</div><div class='add'>+    fun_l22_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n299()</div><div class='add'>+    fun_l22_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n300()</div><div class='add'>+    fun_l22_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n301()</div><div class='add'>+    fun_l22_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n302()</div><div class='add'>+    fun_l22_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n303()</div><div class='add'>+    fun_l22_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n304()</div><div class='add'>+    fun_l22_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n305()</div><div class='add'>+    fun_l22_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n306()</div><div class='add'>+    fun_l22_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n307()</div><div class='add'>+    fun_l22_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n308()</div><div class='add'>+    fun_l22_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n309()</div><div class='add'>+    fun_l22_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n310()</div><div class='add'>+    fun_l22_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n311()</div><div class='add'>+    fun_l22_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n312()</div><div class='add'>+    fun_l22_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n313()</div><div class='add'>+    fun_l22_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n314()</div><div class='add'>+    fun_l22_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n315()</div><div class='add'>+    fun_l22_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n316()</div><div class='add'>+    fun_l22_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n317()</div><div class='add'>+    fun_l22_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n318()</div><div class='add'>+    fun_l22_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n319()</div><div class='add'>+    fun_l22_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n320()</div><div class='add'>+    fun_l22_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n321()</div><div class='add'>+    fun_l22_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n322()</div><div class='add'>+    fun_l22_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n323()</div><div class='add'>+    fun_l22_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n324()</div><div class='add'>+    fun_l22_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n325()</div><div class='add'>+    fun_l22_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n326()</div><div class='add'>+    fun_l22_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n327()</div><div class='add'>+    fun_l22_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n328()</div><div class='add'>+    fun_l22_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n329()</div><div class='add'>+    fun_l22_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n330()</div><div class='add'>+    fun_l22_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n331()</div><div class='add'>+    fun_l22_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n332()</div><div class='add'>+    fun_l22_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n333()</div><div class='add'>+    fun_l22_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n334()</div><div class='add'>+    fun_l22_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n335()</div><div class='add'>+    fun_l22_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n336()</div><div class='add'>+    fun_l22_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n337()</div><div class='add'>+    fun_l22_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n338()</div><div class='add'>+    fun_l22_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n339()</div><div class='add'>+    fun_l22_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n340()</div><div class='add'>+    fun_l22_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n341()</div><div class='add'>+    fun_l22_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n342()</div><div class='add'>+    fun_l22_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n343()</div><div class='add'>+    fun_l22_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n344()</div><div class='add'>+    fun_l22_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n345()</div><div class='add'>+    fun_l22_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n346()</div><div class='add'>+    fun_l22_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n347()</div><div class='add'>+    fun_l22_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n348()</div><div class='add'>+    fun_l22_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n349()</div><div class='add'>+    fun_l22_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n350()</div><div class='add'>+    fun_l22_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n351()</div><div class='add'>+    fun_l22_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n352()</div><div class='add'>+    fun_l22_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n353()</div><div class='add'>+    fun_l22_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n354()</div><div class='add'>+    fun_l22_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n355()</div><div class='add'>+    fun_l22_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n356()</div><div class='add'>+    fun_l22_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n357()</div><div class='add'>+    fun_l22_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n358()</div><div class='add'>+    fun_l22_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n359()</div><div class='add'>+    fun_l22_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n360()</div><div class='add'>+    fun_l22_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n361()</div><div class='add'>+    fun_l22_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n362()</div><div class='add'>+    fun_l22_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n363()</div><div class='add'>+    fun_l22_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n364()</div><div class='add'>+    fun_l22_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n365()</div><div class='add'>+    fun_l22_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n366()</div><div class='add'>+    fun_l22_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n367()</div><div class='add'>+    fun_l22_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n368()</div><div class='add'>+    fun_l22_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n369()</div><div class='add'>+    fun_l22_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n370()</div><div class='add'>+    fun_l22_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n371()</div><div class='add'>+    fun_l22_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n372()</div><div class='add'>+    fun_l22_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n373()</div><div class='add'>+    fun_l22_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n374()</div><div class='add'>+    fun_l22_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n375()</div><div class='add'>+    fun_l22_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n376()</div><div class='add'>+    fun_l22_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n377()</div><div class='add'>+    fun_l22_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n378()</div><div class='add'>+    fun_l22_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n379()</div><div class='add'>+    fun_l22_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n380()</div><div class='add'>+    fun_l22_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n381()</div><div class='add'>+    fun_l22_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n382()</div><div class='add'>+    fun_l22_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n383()</div><div class='add'>+    fun_l22_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n384()</div><div class='add'>+    fun_l22_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n385()</div><div class='add'>+    fun_l22_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n386()</div><div class='add'>+    fun_l22_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n387()</div><div class='add'>+    fun_l22_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n388()</div><div class='add'>+    fun_l22_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n389()</div><div class='add'>+    fun_l22_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n390()</div><div class='add'>+    fun_l22_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n391()</div><div class='add'>+    fun_l22_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n392()</div><div class='add'>+    fun_l22_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n393()</div><div class='add'>+    fun_l22_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n394()</div><div class='add'>+    fun_l22_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n395()</div><div class='add'>+    fun_l22_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n396()</div><div class='add'>+    fun_l22_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n397()</div><div class='add'>+    fun_l22_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n398()</div><div class='add'>+    fun_l22_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n399()</div><div class='add'>+    fun_l22_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n400()</div><div class='add'>+    fun_l22_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n401()</div><div class='add'>+    fun_l22_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n402()</div><div class='add'>+    fun_l22_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n403()</div><div class='add'>+    fun_l22_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n404()</div><div class='add'>+    fun_l22_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n405()</div><div class='add'>+    fun_l22_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n406()</div><div class='add'>+    fun_l22_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n407()</div><div class='add'>+    fun_l22_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n408()</div><div class='add'>+    fun_l22_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n409()</div><div class='add'>+    fun_l22_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n410()</div><div class='add'>+    fun_l22_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n411()</div><div class='add'>+    fun_l22_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n412()</div><div class='add'>+    fun_l22_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n413()</div><div class='add'>+    fun_l22_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n414()</div><div class='add'>+    fun_l22_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n415()</div><div class='add'>+    fun_l22_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n416()</div><div class='add'>+    fun_l22_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n417()</div><div class='add'>+    fun_l22_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n418()</div><div class='add'>+    fun_l22_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n419()</div><div class='add'>+    fun_l22_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n420()</div><div class='add'>+    fun_l22_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n421()</div><div class='add'>+    fun_l22_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n422()</div><div class='add'>+    fun_l22_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n423()</div><div class='add'>+    fun_l22_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n424()</div><div class='add'>+    fun_l22_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n425()</div><div class='add'>+    fun_l22_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n426()</div><div class='add'>+    fun_l22_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n427()</div><div class='add'>+    fun_l22_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n428()</div><div class='add'>+    fun_l22_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n429()</div><div class='add'>+    fun_l22_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n430()</div><div class='add'>+    fun_l22_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n431()</div><div class='add'>+    fun_l22_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n432()</div><div class='add'>+    fun_l22_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n433()</div><div class='add'>+    fun_l22_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n434()</div><div class='add'>+    fun_l22_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n435()</div><div class='add'>+    fun_l22_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n436()</div><div class='add'>+    fun_l22_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n437()</div><div class='add'>+    fun_l22_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n438()</div><div class='add'>+    fun_l22_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n439()</div><div class='add'>+    fun_l22_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n440()</div><div class='add'>+    fun_l22_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n441()</div><div class='add'>+    fun_l22_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n442()</div><div class='add'>+    fun_l22_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n443()</div><div class='add'>+    fun_l22_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n444()</div><div class='add'>+    fun_l22_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n445()</div><div class='add'>+    fun_l22_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n446()</div><div class='add'>+    fun_l22_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n447()</div><div class='add'>+    fun_l22_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n448()</div><div class='add'>+    fun_l22_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n449()</div><div class='add'>+    fun_l22_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n450()</div><div class='add'>+    fun_l22_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n451()</div><div class='add'>+    fun_l22_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n452()</div><div class='add'>+    fun_l22_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n453()</div><div class='add'>+    fun_l22_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n454()</div><div class='add'>+    fun_l22_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n455()</div><div class='add'>+    fun_l22_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n456()</div><div class='add'>+    fun_l22_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n457()</div><div class='add'>+    fun_l22_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n458()</div><div class='add'>+    fun_l22_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n459()</div><div class='add'>+    fun_l22_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n460()</div><div class='add'>+    fun_l22_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n461()</div><div class='add'>+    fun_l22_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n462()</div><div class='add'>+    fun_l22_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n463()</div><div class='add'>+    fun_l22_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n464()</div><div class='add'>+    fun_l22_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n465()</div><div class='add'>+    fun_l22_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n466()</div><div class='add'>+    fun_l22_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n467()</div><div class='add'>+    fun_l22_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n468()</div><div class='add'>+    fun_l22_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n469()</div><div class='add'>+    fun_l22_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n470()</div><div class='add'>+    fun_l22_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n471()</div><div class='add'>+    fun_l22_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n472()</div><div class='add'>+    fun_l22_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n473()</div><div class='add'>+    fun_l22_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n474()</div><div class='add'>+    fun_l22_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n475()</div><div class='add'>+    fun_l22_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n476()</div><div class='add'>+    fun_l22_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n477()</div><div class='add'>+    fun_l22_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n478()</div><div class='add'>+    fun_l22_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n479()</div><div class='add'>+    fun_l22_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n480()</div><div class='add'>+    fun_l22_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n481()</div><div class='add'>+    fun_l22_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n482()</div><div class='add'>+    fun_l22_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n483()</div><div class='add'>+    fun_l22_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n484()</div><div class='add'>+    fun_l22_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n485()</div><div class='add'>+    fun_l22_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n486()</div><div class='add'>+    fun_l22_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n487()</div><div class='add'>+    fun_l22_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n488()</div><div class='add'>+    fun_l22_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n489()</div><div class='add'>+    fun_l22_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n490()</div><div class='add'>+    fun_l22_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n491()</div><div class='add'>+    fun_l22_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n492()</div><div class='add'>+    fun_l22_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n493()</div><div class='add'>+    fun_l22_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n494()</div><div class='add'>+    fun_l22_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n495()</div><div class='add'>+    fun_l22_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n496()</div><div class='add'>+    fun_l22_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n497()</div><div class='add'>+    fun_l22_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n498()</div><div class='add'>+    fun_l22_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n499()</div><div class='add'>+    fun_l22_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n500()</div><div class='add'>+    fun_l22_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n501()</div><div class='add'>+    fun_l22_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n502()</div><div class='add'>+    fun_l22_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n503()</div><div class='add'>+    fun_l22_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n504()</div><div class='add'>+    fun_l22_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n505()</div><div class='add'>+    fun_l22_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n506()</div><div class='add'>+    fun_l22_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n507()</div><div class='add'>+    fun_l22_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n508()</div><div class='add'>+    fun_l22_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n509()</div><div class='add'>+    fun_l22_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n510()</div><div class='add'>+    fun_l22_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n511()</div><div class='add'>+    fun_l22_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n512()</div><div class='add'>+    fun_l22_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n513()</div><div class='add'>+    fun_l22_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n514()</div><div class='add'>+    fun_l22_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n515()</div><div class='add'>+    fun_l22_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n516()</div><div class='add'>+    fun_l22_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n517()</div><div class='add'>+    fun_l22_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n518()</div><div class='add'>+    fun_l22_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n519()</div><div class='add'>+    fun_l22_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n520()</div><div class='add'>+    fun_l22_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n521()</div><div class='add'>+    fun_l22_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n522()</div><div class='add'>+    fun_l22_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n523()</div><div class='add'>+    fun_l22_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n524()</div><div class='add'>+    fun_l22_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n525()</div><div class='add'>+    fun_l22_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n526()</div><div class='add'>+    fun_l22_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n527()</div><div class='add'>+    fun_l22_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n528()</div><div class='add'>+    fun_l22_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n529()</div><div class='add'>+    fun_l22_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n530()</div><div class='add'>+    fun_l22_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n531()</div><div class='add'>+    fun_l22_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n532()</div><div class='add'>+    fun_l22_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n533()</div><div class='add'>+    fun_l22_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n534()</div><div class='add'>+    fun_l22_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n535()</div><div class='add'>+    fun_l22_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n536()</div><div class='add'>+    fun_l22_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n537()</div><div class='add'>+    fun_l22_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n538()</div><div class='add'>+    fun_l22_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n539()</div><div class='add'>+    fun_l22_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n540()</div><div class='add'>+    fun_l22_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n541()</div><div class='add'>+    fun_l22_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n542()</div><div class='add'>+    fun_l22_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n543()</div><div class='add'>+    fun_l22_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n544()</div><div class='add'>+    fun_l22_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n545()</div><div class='add'>+    fun_l22_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n546()</div><div class='add'>+    fun_l22_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n547()</div><div class='add'>+    fun_l22_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n548()</div><div class='add'>+    fun_l22_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n549()</div><div class='add'>+    fun_l22_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n550()</div><div class='add'>+    fun_l22_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n551()</div><div class='add'>+    fun_l22_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n552()</div><div class='add'>+    fun_l22_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n553()</div><div class='add'>+    fun_l22_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n554()</div><div class='add'>+    fun_l22_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n555()</div><div class='add'>+    fun_l22_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n556()</div><div class='add'>+    fun_l22_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n557()</div><div class='add'>+    fun_l22_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n558()</div><div class='add'>+    fun_l22_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n559()</div><div class='add'>+    fun_l22_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n560()</div><div class='add'>+    fun_l22_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n561()</div><div class='add'>+    fun_l22_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n562()</div><div class='add'>+    fun_l22_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n563()</div><div class='add'>+    fun_l22_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n564()</div><div class='add'>+    fun_l22_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n565()</div><div class='add'>+    fun_l22_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n566()</div><div class='add'>+    fun_l22_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n567()</div><div class='add'>+    fun_l22_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n568()</div><div class='add'>+    fun_l22_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n569()</div><div class='add'>+    fun_l22_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n570()</div><div class='add'>+    fun_l22_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n571()</div><div class='add'>+    fun_l22_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n572()</div><div class='add'>+    fun_l22_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n573()</div><div class='add'>+    fun_l22_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n574()</div><div class='add'>+    fun_l22_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n575()</div><div class='add'>+    fun_l22_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n576()</div><div class='add'>+    fun_l22_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n577()</div><div class='add'>+    fun_l22_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n578()</div><div class='add'>+    fun_l22_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n579()</div><div class='add'>+    fun_l22_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n580()</div><div class='add'>+    fun_l22_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n581()</div><div class='add'>+    fun_l22_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n582()</div><div class='add'>+    fun_l22_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n583()</div><div class='add'>+    fun_l22_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n584()</div><div class='add'>+    fun_l22_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n585()</div><div class='add'>+    fun_l22_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n586()</div><div class='add'>+    fun_l22_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n587()</div><div class='add'>+    fun_l22_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n588()</div><div class='add'>+    fun_l22_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n589()</div><div class='add'>+    fun_l22_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n590()</div><div class='add'>+    fun_l22_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n591()</div><div class='add'>+    fun_l22_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n592()</div><div class='add'>+    fun_l22_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n593()</div><div class='add'>+    fun_l22_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n594()</div><div class='add'>+    fun_l22_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n595()</div><div class='add'>+    fun_l22_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n596()</div><div class='add'>+    fun_l22_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n597()</div><div class='add'>+    fun_l22_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n598()</div><div class='add'>+    fun_l22_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n599()</div><div class='add'>+    fun_l22_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n600()</div><div class='add'>+    fun_l22_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n601()</div><div class='add'>+    fun_l22_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n602()</div><div class='add'>+    fun_l22_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n603()</div><div class='add'>+    fun_l22_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n604()</div><div class='add'>+    fun_l22_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n605()</div><div class='add'>+    fun_l22_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n606()</div><div class='add'>+    fun_l22_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n607()</div><div class='add'>+    fun_l22_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n608()</div><div class='add'>+    fun_l22_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n609()</div><div class='add'>+    fun_l22_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n610()</div><div class='add'>+    fun_l22_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n611()</div><div class='add'>+    fun_l22_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n612()</div><div class='add'>+    fun_l22_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n613()</div><div class='add'>+    fun_l22_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n614()</div><div class='add'>+    fun_l22_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n615()</div><div class='add'>+    fun_l22_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n616()</div><div class='add'>+    fun_l22_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n617()</div><div class='add'>+    fun_l22_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n618()</div><div class='add'>+    fun_l22_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n619()</div><div class='add'>+    fun_l22_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n620()</div><div class='add'>+    fun_l22_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n621()</div><div class='add'>+    fun_l22_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n622()</div><div class='add'>+    fun_l22_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n623()</div><div class='add'>+    fun_l22_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n624()</div><div class='add'>+    fun_l22_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n625()</div><div class='add'>+    fun_l22_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n626()</div><div class='add'>+    fun_l22_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n627()</div><div class='add'>+    fun_l22_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n628()</div><div class='add'>+    fun_l22_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n629()</div><div class='add'>+    fun_l22_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n630()</div><div class='add'>+    fun_l22_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n631()</div><div class='add'>+    fun_l22_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n632()</div><div class='add'>+    fun_l22_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n633()</div><div class='add'>+    fun_l22_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n634()</div><div class='add'>+    fun_l22_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n635()</div><div class='add'>+    fun_l22_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n636()</div><div class='add'>+    fun_l22_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n637()</div><div class='add'>+    fun_l22_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n638()</div><div class='add'>+    fun_l22_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n639()</div><div class='add'>+    fun_l22_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n640()</div><div class='add'>+    fun_l22_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n641()</div><div class='add'>+    fun_l22_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n642()</div><div class='add'>+    fun_l22_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n643()</div><div class='add'>+    fun_l22_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n644()</div><div class='add'>+    fun_l22_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n645()</div><div class='add'>+    fun_l22_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n646()</div><div class='add'>+    fun_l22_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n647()</div><div class='add'>+    fun_l22_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n648()</div><div class='add'>+    fun_l22_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n649()</div><div class='add'>+    fun_l22_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n650()</div><div class='add'>+    fun_l22_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n651()</div><div class='add'>+    fun_l22_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n652()</div><div class='add'>+    fun_l22_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n653()</div><div class='add'>+    fun_l22_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n654()</div><div class='add'>+    fun_l22_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n655()</div><div class='add'>+    fun_l22_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n656()</div><div class='add'>+    fun_l22_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n657()</div><div class='add'>+    fun_l22_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n658()</div><div class='add'>+    fun_l22_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n659()</div><div class='add'>+    fun_l22_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n660()</div><div class='add'>+    fun_l22_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n661()</div><div class='add'>+    fun_l22_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n662()</div><div class='add'>+    fun_l22_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n663()</div><div class='add'>+    fun_l22_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n664()</div><div class='add'>+    fun_l22_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n665()</div><div class='add'>+    fun_l22_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n666()</div><div class='add'>+    fun_l22_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n667()</div><div class='add'>+    fun_l22_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n668()</div><div class='add'>+    fun_l22_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n669()</div><div class='add'>+    fun_l22_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n670()</div><div class='add'>+    fun_l22_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n671()</div><div class='add'>+    fun_l22_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n672()</div><div class='add'>+    fun_l22_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n673()</div><div class='add'>+    fun_l22_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n674()</div><div class='add'>+    fun_l22_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n675()</div><div class='add'>+    fun_l22_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n676()</div><div class='add'>+    fun_l22_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n677()</div><div class='add'>+    fun_l22_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n678()</div><div class='add'>+    fun_l22_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n679()</div><div class='add'>+    fun_l22_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n680()</div><div class='add'>+    fun_l22_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n681()</div><div class='add'>+    fun_l22_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n682()</div><div class='add'>+    fun_l22_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n683()</div><div class='add'>+    fun_l22_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n684()</div><div class='add'>+    fun_l22_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n685()</div><div class='add'>+    fun_l22_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n686()</div><div class='add'>+    fun_l22_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n687()</div><div class='add'>+    fun_l22_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n688()</div><div class='add'>+    fun_l22_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n689()</div><div class='add'>+    fun_l22_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n690()</div><div class='add'>+    fun_l22_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n691()</div><div class='add'>+    fun_l22_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n692()</div><div class='add'>+    fun_l22_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n693()</div><div class='add'>+    fun_l22_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n694()</div><div class='add'>+    fun_l22_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n695()</div><div class='add'>+    fun_l22_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n696()</div><div class='add'>+    fun_l22_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n697()</div><div class='add'>+    fun_l22_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n698()</div><div class='add'>+    fun_l22_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n699()</div><div class='add'>+    fun_l22_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n700()</div><div class='add'>+    fun_l22_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n701()</div><div class='add'>+    fun_l22_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n702()</div><div class='add'>+    fun_l22_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n703()</div><div class='add'>+    fun_l22_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n704()</div><div class='add'>+    fun_l22_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n705()</div><div class='add'>+    fun_l22_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n706()</div><div class='add'>+    fun_l22_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n707()</div><div class='add'>+    fun_l22_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n708()</div><div class='add'>+    fun_l22_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n709()</div><div class='add'>+    fun_l22_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n710()</div><div class='add'>+    fun_l22_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n711()</div><div class='add'>+    fun_l22_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n712()</div><div class='add'>+    fun_l22_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n713()</div><div class='add'>+    fun_l22_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n714()</div><div class='add'>+    fun_l22_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n715()</div><div class='add'>+    fun_l22_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n716()</div><div class='add'>+    fun_l22_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n717()</div><div class='add'>+    fun_l22_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n718()</div><div class='add'>+    fun_l22_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n719()</div><div class='add'>+    fun_l22_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n720()</div><div class='add'>+    fun_l22_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n721()</div><div class='add'>+    fun_l22_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n722()</div><div class='add'>+    fun_l22_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n723()</div><div class='add'>+    fun_l22_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n724()</div><div class='add'>+    fun_l22_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n725()</div><div class='add'>+    fun_l22_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n726()</div><div class='add'>+    fun_l22_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n727()</div><div class='add'>+    fun_l22_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n728()</div><div class='add'>+    fun_l22_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n729()</div><div class='add'>+    fun_l22_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n730()</div><div class='add'>+    fun_l22_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n731()</div><div class='add'>+    fun_l22_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n732()</div><div class='add'>+    fun_l22_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n733()</div><div class='add'>+    fun_l22_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n734()</div><div class='add'>+    fun_l22_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n735()</div><div class='add'>+    fun_l22_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n736()</div><div class='add'>+    fun_l22_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n737()</div><div class='add'>+    fun_l22_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n738()</div><div class='add'>+    fun_l22_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n739()</div><div class='add'>+    fun_l22_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n740()</div><div class='add'>+    fun_l22_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n741()</div><div class='add'>+    fun_l22_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n742()</div><div class='add'>+    fun_l22_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n743()</div><div class='add'>+    fun_l22_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n744()</div><div class='add'>+    fun_l22_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n745()</div><div class='add'>+    fun_l22_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n746()</div><div class='add'>+    fun_l22_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n747()</div><div class='add'>+    fun_l22_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n748()</div><div class='add'>+    fun_l22_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n749()</div><div class='add'>+    fun_l22_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n750()</div><div class='add'>+    fun_l22_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n751()</div><div class='add'>+    fun_l22_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n752()</div><div class='add'>+    fun_l22_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n753()</div><div class='add'>+    fun_l22_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n754()</div><div class='add'>+    fun_l22_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n755()</div><div class='add'>+    fun_l22_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n756()</div><div class='add'>+    fun_l22_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n757()</div><div class='add'>+    fun_l22_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n758()</div><div class='add'>+    fun_l22_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n759()</div><div class='add'>+    fun_l22_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n760()</div><div class='add'>+    fun_l22_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n761()</div><div class='add'>+    fun_l22_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n762()</div><div class='add'>+    fun_l22_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n763()</div><div class='add'>+    fun_l22_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n764()</div><div class='add'>+    fun_l22_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n765()</div><div class='add'>+    fun_l22_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n766()</div><div class='add'>+    fun_l22_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n767()</div><div class='add'>+    fun_l22_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n768()</div><div class='add'>+    fun_l22_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n769()</div><div class='add'>+    fun_l22_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n770()</div><div class='add'>+    fun_l22_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n771()</div><div class='add'>+    fun_l22_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n772()</div><div class='add'>+    fun_l22_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n773()</div><div class='add'>+    fun_l22_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n774()</div><div class='add'>+    fun_l22_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n775()</div><div class='add'>+    fun_l22_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n776()</div><div class='add'>+    fun_l22_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n777()</div><div class='add'>+    fun_l22_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n778()</div><div class='add'>+    fun_l22_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n779()</div><div class='add'>+    fun_l22_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n780()</div><div class='add'>+    fun_l22_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n781()</div><div class='add'>+    fun_l22_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n782()</div><div class='add'>+    fun_l22_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n783()</div><div class='add'>+    fun_l22_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n784()</div><div class='add'>+    fun_l22_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n785()</div><div class='add'>+    fun_l22_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n786()</div><div class='add'>+    fun_l22_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n787()</div><div class='add'>+    fun_l22_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n788()</div><div class='add'>+    fun_l22_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n789()</div><div class='add'>+    fun_l22_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n790()</div><div class='add'>+    fun_l22_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n791()</div><div class='add'>+    fun_l22_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n792()</div><div class='add'>+    fun_l22_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n793()</div><div class='add'>+    fun_l22_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n794()</div><div class='add'>+    fun_l22_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n795()</div><div class='add'>+    fun_l22_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n796()</div><div class='add'>+    fun_l22_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n797()</div><div class='add'>+    fun_l22_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n798()</div><div class='add'>+    fun_l22_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n799()</div><div class='add'>+    fun_l22_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n800()</div><div class='add'>+    fun_l22_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n801()</div><div class='add'>+    fun_l22_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n802()</div><div class='add'>+    fun_l22_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n803()</div><div class='add'>+    fun_l22_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n804()</div><div class='add'>+    fun_l22_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n805()</div><div class='add'>+    fun_l22_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n806()</div><div class='add'>+    fun_l22_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n807()</div><div class='add'>+    fun_l22_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n808()</div><div class='add'>+    fun_l22_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n809()</div><div class='add'>+    fun_l22_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n810()</div><div class='add'>+    fun_l22_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n811()</div><div class='add'>+    fun_l22_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n812()</div><div class='add'>+    fun_l22_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n813()</div><div class='add'>+    fun_l22_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n814()</div><div class='add'>+    fun_l22_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n815()</div><div class='add'>+    fun_l22_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n816()</div><div class='add'>+    fun_l22_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n817()</div><div class='add'>+    fun_l22_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n818()</div><div class='add'>+    fun_l22_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n819()</div><div class='add'>+    fun_l22_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n820()</div><div class='add'>+    fun_l22_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n821()</div><div class='add'>+    fun_l22_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n822()</div><div class='add'>+    fun_l22_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n823()</div><div class='add'>+    fun_l22_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n824()</div><div class='add'>+    fun_l22_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n825()</div><div class='add'>+    fun_l22_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n826()</div><div class='add'>+    fun_l22_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n827()</div><div class='add'>+    fun_l22_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n828()</div><div class='add'>+    fun_l22_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n829()</div><div class='add'>+    fun_l22_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n830()</div><div class='add'>+    fun_l22_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n831()</div><div class='add'>+    fun_l22_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n832()</div><div class='add'>+    fun_l22_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n833()</div><div class='add'>+    fun_l22_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n834()</div><div class='add'>+    fun_l22_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n835()</div><div class='add'>+    fun_l22_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n836()</div><div class='add'>+    fun_l22_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n837()</div><div class='add'>+    fun_l22_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n838()</div><div class='add'>+    fun_l22_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n839()</div><div class='add'>+    fun_l22_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n840()</div><div class='add'>+    fun_l22_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n841()</div><div class='add'>+    fun_l22_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n842()</div><div class='add'>+    fun_l22_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n843()</div><div class='add'>+    fun_l22_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n844()</div><div class='add'>+    fun_l22_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n845()</div><div class='add'>+    fun_l22_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n846()</div><div class='add'>+    fun_l22_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n847()</div><div class='add'>+    fun_l22_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n848()</div><div class='add'>+    fun_l22_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n849()</div><div class='add'>+    fun_l22_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n850()</div><div class='add'>+    fun_l22_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n851()</div><div class='add'>+    fun_l22_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n852()</div><div class='add'>+    fun_l22_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n853()</div><div class='add'>+    fun_l22_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n854()</div><div class='add'>+    fun_l22_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n855()</div><div class='add'>+    fun_l22_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n856()</div><div class='add'>+    fun_l22_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n857()</div><div class='add'>+    fun_l22_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n858()</div><div class='add'>+    fun_l22_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n859()</div><div class='add'>+    fun_l22_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n860()</div><div class='add'>+    fun_l22_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n861()</div><div class='add'>+    fun_l22_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n862()</div><div class='add'>+    fun_l22_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n863()</div><div class='add'>+    fun_l22_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n864()</div><div class='add'>+    fun_l22_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n865()</div><div class='add'>+    fun_l22_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n866()</div><div class='add'>+    fun_l22_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n867()</div><div class='add'>+    fun_l22_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n868()</div><div class='add'>+    fun_l22_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n869()</div><div class='add'>+    fun_l22_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n870()</div><div class='add'>+    fun_l22_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n871()</div><div class='add'>+    fun_l22_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n872()</div><div class='add'>+    fun_l22_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n873()</div><div class='add'>+    fun_l22_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n874()</div><div class='add'>+    fun_l22_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n875()</div><div class='add'>+    fun_l22_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n876()</div><div class='add'>+    fun_l22_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n877()</div><div class='add'>+    fun_l22_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n878()</div><div class='add'>+    fun_l22_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n879()</div><div class='add'>+    fun_l22_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n880()</div><div class='add'>+    fun_l22_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n881()</div><div class='add'>+    fun_l22_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n882()</div><div class='add'>+    fun_l22_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n883()</div><div class='add'>+    fun_l22_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n884()</div><div class='add'>+    fun_l22_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n885()</div><div class='add'>+    fun_l22_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n886()</div><div class='add'>+    fun_l22_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n887()</div><div class='add'>+    fun_l22_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n888()</div><div class='add'>+    fun_l22_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n889()</div><div class='add'>+    fun_l22_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n890()</div><div class='add'>+    fun_l22_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n891()</div><div class='add'>+    fun_l22_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n892()</div><div class='add'>+    fun_l22_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n893()</div><div class='add'>+    fun_l22_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n894()</div><div class='add'>+    fun_l22_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n895()</div><div class='add'>+    fun_l22_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n896()</div><div class='add'>+    fun_l22_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n897()</div><div class='add'>+    fun_l22_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n898()</div><div class='add'>+    fun_l22_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n899()</div><div class='add'>+    fun_l22_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n900()</div><div class='add'>+    fun_l22_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n901()</div><div class='add'>+    fun_l22_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n902()</div><div class='add'>+    fun_l22_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n903()</div><div class='add'>+    fun_l22_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n904()</div><div class='add'>+    fun_l22_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n905()</div><div class='add'>+    fun_l22_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n906()</div><div class='add'>+    fun_l22_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n907()</div><div class='add'>+    fun_l22_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n908()</div><div class='add'>+    fun_l22_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n909()</div><div class='add'>+    fun_l22_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n910()</div><div class='add'>+    fun_l22_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n911()</div><div class='add'>+    fun_l22_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n912()</div><div class='add'>+    fun_l22_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n913()</div><div class='add'>+    fun_l22_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n914()</div><div class='add'>+    fun_l22_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n915()</div><div class='add'>+    fun_l22_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n916()</div><div class='add'>+    fun_l22_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n917()</div><div class='add'>+    fun_l22_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n918()</div><div class='add'>+    fun_l22_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n919()</div><div class='add'>+    fun_l22_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n920()</div><div class='add'>+    fun_l22_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n921()</div><div class='add'>+    fun_l22_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n922()</div><div class='add'>+    fun_l22_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n923()</div><div class='add'>+    fun_l22_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n924()</div><div class='add'>+    fun_l22_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n925()</div><div class='add'>+    fun_l22_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n926()</div><div class='add'>+    fun_l22_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n927()</div><div class='add'>+    fun_l22_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n928()</div><div class='add'>+    fun_l22_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n929()</div><div class='add'>+    fun_l22_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n930()</div><div class='add'>+    fun_l22_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n931()</div><div class='add'>+    fun_l22_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n932()</div><div class='add'>+    fun_l22_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n933()</div><div class='add'>+    fun_l22_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n934()</div><div class='add'>+    fun_l22_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n935()</div><div class='add'>+    fun_l22_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n936()</div><div class='add'>+    fun_l22_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n937()</div><div class='add'>+    fun_l22_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n938()</div><div class='add'>+    fun_l22_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n939()</div><div class='add'>+    fun_l22_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n940()</div><div class='add'>+    fun_l22_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n941()</div><div class='add'>+    fun_l22_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n942()</div><div class='add'>+    fun_l22_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n943()</div><div class='add'>+    fun_l22_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n944()</div><div class='add'>+    fun_l22_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n945()</div><div class='add'>+    fun_l22_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n946()</div><div class='add'>+    fun_l22_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n947()</div><div class='add'>+    fun_l22_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n948()</div><div class='add'>+    fun_l22_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n949()</div><div class='add'>+    fun_l22_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n950()</div><div class='add'>+    fun_l22_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n951()</div><div class='add'>+    fun_l22_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n952()</div><div class='add'>+    fun_l22_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n953()</div><div class='add'>+    fun_l22_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n954()</div><div class='add'>+    fun_l22_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n955()</div><div class='add'>+    fun_l22_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n956()</div><div class='add'>+    fun_l22_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n957()</div><div class='add'>+    fun_l22_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n958()</div><div class='add'>+    fun_l22_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n959()</div><div class='add'>+    fun_l22_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n960()</div><div class='add'>+    fun_l22_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n961()</div><div class='add'>+    fun_l22_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n962()</div><div class='add'>+    fun_l22_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n963()</div><div class='add'>+    fun_l22_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n964()</div><div class='add'>+    fun_l22_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n965()</div><div class='add'>+    fun_l22_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n966()</div><div class='add'>+    fun_l22_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n967()</div><div class='add'>+    fun_l22_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n968()</div><div class='add'>+    fun_l22_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n969()</div><div class='add'>+    fun_l22_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n970()</div><div class='add'>+    fun_l22_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n971()</div><div class='add'>+    fun_l22_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n972()</div><div class='add'>+    fun_l22_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n973()</div><div class='add'>+    fun_l22_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n974()</div><div class='add'>+    fun_l22_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n975()</div><div class='add'>+    fun_l22_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n976()</div><div class='add'>+    fun_l22_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n977()</div><div class='add'>+    fun_l22_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n978()</div><div class='add'>+    fun_l22_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n979()</div><div class='add'>+    fun_l22_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n980()</div><div class='add'>+    fun_l22_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n981()</div><div class='add'>+    fun_l22_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n982()</div><div class='add'>+    fun_l22_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n983()</div><div class='add'>+    fun_l22_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n984()</div><div class='add'>+    fun_l22_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n985()</div><div class='add'>+    fun_l22_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n986()</div><div class='add'>+    fun_l22_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n987()</div><div class='add'>+    fun_l22_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n988()</div><div class='add'>+    fun_l22_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n989()</div><div class='add'>+    fun_l22_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n990()</div><div class='add'>+    fun_l22_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n991()</div><div class='add'>+    fun_l22_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n992()</div><div class='add'>+    fun_l22_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n993()</div><div class='add'>+    fun_l22_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n994()</div><div class='add'>+    fun_l22_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n995()</div><div class='add'>+    fun_l22_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n996()</div><div class='add'>+    fun_l22_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n997()</div><div class='add'>+    fun_l22_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n998()</div><div class='add'>+    fun_l22_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l21_n999()</div><div class='add'>+    fun_l22_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n0()</div><div class='add'>+    fun_l23_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n1()</div><div class='add'>+    fun_l23_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n2()</div><div class='add'>+    fun_l23_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n3()</div><div class='add'>+    fun_l23_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n4()</div><div class='add'>+    fun_l23_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n5()</div><div class='add'>+    fun_l23_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n6()</div><div class='add'>+    fun_l23_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n7()</div><div class='add'>+    fun_l23_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n8()</div><div class='add'>+    fun_l23_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n9()</div><div class='add'>+    fun_l23_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n10()</div><div class='add'>+    fun_l23_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n11()</div><div class='add'>+    fun_l23_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n12()</div><div class='add'>+    fun_l23_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n13()</div><div class='add'>+    fun_l23_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n14()</div><div class='add'>+    fun_l23_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n15()</div><div class='add'>+    fun_l23_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n16()</div><div class='add'>+    fun_l23_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n17()</div><div class='add'>+    fun_l23_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n18()</div><div class='add'>+    fun_l23_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n19()</div><div class='add'>+    fun_l23_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n20()</div><div class='add'>+    fun_l23_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n21()</div><div class='add'>+    fun_l23_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n22()</div><div class='add'>+    fun_l23_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n23()</div><div class='add'>+    fun_l23_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n24()</div><div class='add'>+    fun_l23_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n25()</div><div class='add'>+    fun_l23_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n26()</div><div class='add'>+    fun_l23_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n27()</div><div class='add'>+    fun_l23_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n28()</div><div class='add'>+    fun_l23_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n29()</div><div class='add'>+    fun_l23_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n30()</div><div class='add'>+    fun_l23_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n31()</div><div class='add'>+    fun_l23_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n32()</div><div class='add'>+    fun_l23_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n33()</div><div class='add'>+    fun_l23_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n34()</div><div class='add'>+    fun_l23_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n35()</div><div class='add'>+    fun_l23_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n36()</div><div class='add'>+    fun_l23_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n37()</div><div class='add'>+    fun_l23_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n38()</div><div class='add'>+    fun_l23_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n39()</div><div class='add'>+    fun_l23_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n40()</div><div class='add'>+    fun_l23_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n41()</div><div class='add'>+    fun_l23_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n42()</div><div class='add'>+    fun_l23_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n43()</div><div class='add'>+    fun_l23_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n44()</div><div class='add'>+    fun_l23_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n45()</div><div class='add'>+    fun_l23_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n46()</div><div class='add'>+    fun_l23_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n47()</div><div class='add'>+    fun_l23_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n48()</div><div class='add'>+    fun_l23_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n49()</div><div class='add'>+    fun_l23_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n50()</div><div class='add'>+    fun_l23_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n51()</div><div class='add'>+    fun_l23_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n52()</div><div class='add'>+    fun_l23_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n53()</div><div class='add'>+    fun_l23_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n54()</div><div class='add'>+    fun_l23_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n55()</div><div class='add'>+    fun_l23_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n56()</div><div class='add'>+    fun_l23_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n57()</div><div class='add'>+    fun_l23_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n58()</div><div class='add'>+    fun_l23_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n59()</div><div class='add'>+    fun_l23_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n60()</div><div class='add'>+    fun_l23_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n61()</div><div class='add'>+    fun_l23_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n62()</div><div class='add'>+    fun_l23_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n63()</div><div class='add'>+    fun_l23_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n64()</div><div class='add'>+    fun_l23_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n65()</div><div class='add'>+    fun_l23_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n66()</div><div class='add'>+    fun_l23_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n67()</div><div class='add'>+    fun_l23_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n68()</div><div class='add'>+    fun_l23_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n69()</div><div class='add'>+    fun_l23_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n70()</div><div class='add'>+    fun_l23_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n71()</div><div class='add'>+    fun_l23_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n72()</div><div class='add'>+    fun_l23_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n73()</div><div class='add'>+    fun_l23_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n74()</div><div class='add'>+    fun_l23_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n75()</div><div class='add'>+    fun_l23_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n76()</div><div class='add'>+    fun_l23_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n77()</div><div class='add'>+    fun_l23_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n78()</div><div class='add'>+    fun_l23_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n79()</div><div class='add'>+    fun_l23_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n80()</div><div class='add'>+    fun_l23_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n81()</div><div class='add'>+    fun_l23_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n82()</div><div class='add'>+    fun_l23_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n83()</div><div class='add'>+    fun_l23_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n84()</div><div class='add'>+    fun_l23_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n85()</div><div class='add'>+    fun_l23_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n86()</div><div class='add'>+    fun_l23_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n87()</div><div class='add'>+    fun_l23_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n88()</div><div class='add'>+    fun_l23_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n89()</div><div class='add'>+    fun_l23_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n90()</div><div class='add'>+    fun_l23_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n91()</div><div class='add'>+    fun_l23_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n92()</div><div class='add'>+    fun_l23_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n93()</div><div class='add'>+    fun_l23_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n94()</div><div class='add'>+    fun_l23_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n95()</div><div class='add'>+    fun_l23_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n96()</div><div class='add'>+    fun_l23_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n97()</div><div class='add'>+    fun_l23_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n98()</div><div class='add'>+    fun_l23_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n99()</div><div class='add'>+    fun_l23_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n100()</div><div class='add'>+    fun_l23_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n101()</div><div class='add'>+    fun_l23_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n102()</div><div class='add'>+    fun_l23_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n103()</div><div class='add'>+    fun_l23_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n104()</div><div class='add'>+    fun_l23_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n105()</div><div class='add'>+    fun_l23_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n106()</div><div class='add'>+    fun_l23_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n107()</div><div class='add'>+    fun_l23_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n108()</div><div class='add'>+    fun_l23_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n109()</div><div class='add'>+    fun_l23_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n110()</div><div class='add'>+    fun_l23_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n111()</div><div class='add'>+    fun_l23_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n112()</div><div class='add'>+    fun_l23_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n113()</div><div class='add'>+    fun_l23_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n114()</div><div class='add'>+    fun_l23_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n115()</div><div class='add'>+    fun_l23_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n116()</div><div class='add'>+    fun_l23_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n117()</div><div class='add'>+    fun_l23_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n118()</div><div class='add'>+    fun_l23_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n119()</div><div class='add'>+    fun_l23_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n120()</div><div class='add'>+    fun_l23_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n121()</div><div class='add'>+    fun_l23_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n122()</div><div class='add'>+    fun_l23_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n123()</div><div class='add'>+    fun_l23_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n124()</div><div class='add'>+    fun_l23_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n125()</div><div class='add'>+    fun_l23_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n126()</div><div class='add'>+    fun_l23_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n127()</div><div class='add'>+    fun_l23_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n128()</div><div class='add'>+    fun_l23_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n129()</div><div class='add'>+    fun_l23_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n130()</div><div class='add'>+    fun_l23_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n131()</div><div class='add'>+    fun_l23_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n132()</div><div class='add'>+    fun_l23_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n133()</div><div class='add'>+    fun_l23_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n134()</div><div class='add'>+    fun_l23_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n135()</div><div class='add'>+    fun_l23_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n136()</div><div class='add'>+    fun_l23_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n137()</div><div class='add'>+    fun_l23_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n138()</div><div class='add'>+    fun_l23_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n139()</div><div class='add'>+    fun_l23_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n140()</div><div class='add'>+    fun_l23_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n141()</div><div class='add'>+    fun_l23_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n142()</div><div class='add'>+    fun_l23_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n143()</div><div class='add'>+    fun_l23_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n144()</div><div class='add'>+    fun_l23_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n145()</div><div class='add'>+    fun_l23_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n146()</div><div class='add'>+    fun_l23_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n147()</div><div class='add'>+    fun_l23_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n148()</div><div class='add'>+    fun_l23_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n149()</div><div class='add'>+    fun_l23_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n150()</div><div class='add'>+    fun_l23_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n151()</div><div class='add'>+    fun_l23_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n152()</div><div class='add'>+    fun_l23_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n153()</div><div class='add'>+    fun_l23_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n154()</div><div class='add'>+    fun_l23_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n155()</div><div class='add'>+    fun_l23_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n156()</div><div class='add'>+    fun_l23_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n157()</div><div class='add'>+    fun_l23_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n158()</div><div class='add'>+    fun_l23_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n159()</div><div class='add'>+    fun_l23_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n160()</div><div class='add'>+    fun_l23_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n161()</div><div class='add'>+    fun_l23_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n162()</div><div class='add'>+    fun_l23_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n163()</div><div class='add'>+    fun_l23_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n164()</div><div class='add'>+    fun_l23_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n165()</div><div class='add'>+    fun_l23_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n166()</div><div class='add'>+    fun_l23_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n167()</div><div class='add'>+    fun_l23_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n168()</div><div class='add'>+    fun_l23_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n169()</div><div class='add'>+    fun_l23_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n170()</div><div class='add'>+    fun_l23_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n171()</div><div class='add'>+    fun_l23_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n172()</div><div class='add'>+    fun_l23_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n173()</div><div class='add'>+    fun_l23_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n174()</div><div class='add'>+    fun_l23_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n175()</div><div class='add'>+    fun_l23_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n176()</div><div class='add'>+    fun_l23_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n177()</div><div class='add'>+    fun_l23_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n178()</div><div class='add'>+    fun_l23_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n179()</div><div class='add'>+    fun_l23_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n180()</div><div class='add'>+    fun_l23_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n181()</div><div class='add'>+    fun_l23_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n182()</div><div class='add'>+    fun_l23_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n183()</div><div class='add'>+    fun_l23_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n184()</div><div class='add'>+    fun_l23_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n185()</div><div class='add'>+    fun_l23_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n186()</div><div class='add'>+    fun_l23_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n187()</div><div class='add'>+    fun_l23_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n188()</div><div class='add'>+    fun_l23_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n189()</div><div class='add'>+    fun_l23_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n190()</div><div class='add'>+    fun_l23_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n191()</div><div class='add'>+    fun_l23_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n192()</div><div class='add'>+    fun_l23_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n193()</div><div class='add'>+    fun_l23_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n194()</div><div class='add'>+    fun_l23_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n195()</div><div class='add'>+    fun_l23_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n196()</div><div class='add'>+    fun_l23_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n197()</div><div class='add'>+    fun_l23_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n198()</div><div class='add'>+    fun_l23_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n199()</div><div class='add'>+    fun_l23_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n200()</div><div class='add'>+    fun_l23_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n201()</div><div class='add'>+    fun_l23_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n202()</div><div class='add'>+    fun_l23_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n203()</div><div class='add'>+    fun_l23_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n204()</div><div class='add'>+    fun_l23_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n205()</div><div class='add'>+    fun_l23_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n206()</div><div class='add'>+    fun_l23_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n207()</div><div class='add'>+    fun_l23_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n208()</div><div class='add'>+    fun_l23_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n209()</div><div class='add'>+    fun_l23_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n210()</div><div class='add'>+    fun_l23_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n211()</div><div class='add'>+    fun_l23_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n212()</div><div class='add'>+    fun_l23_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n213()</div><div class='add'>+    fun_l23_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n214()</div><div class='add'>+    fun_l23_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n215()</div><div class='add'>+    fun_l23_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n216()</div><div class='add'>+    fun_l23_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n217()</div><div class='add'>+    fun_l23_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n218()</div><div class='add'>+    fun_l23_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n219()</div><div class='add'>+    fun_l23_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n220()</div><div class='add'>+    fun_l23_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n221()</div><div class='add'>+    fun_l23_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n222()</div><div class='add'>+    fun_l23_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n223()</div><div class='add'>+    fun_l23_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n224()</div><div class='add'>+    fun_l23_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n225()</div><div class='add'>+    fun_l23_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n226()</div><div class='add'>+    fun_l23_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n227()</div><div class='add'>+    fun_l23_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n228()</div><div class='add'>+    fun_l23_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n229()</div><div class='add'>+    fun_l23_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n230()</div><div class='add'>+    fun_l23_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n231()</div><div class='add'>+    fun_l23_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n232()</div><div class='add'>+    fun_l23_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n233()</div><div class='add'>+    fun_l23_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n234()</div><div class='add'>+    fun_l23_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n235()</div><div class='add'>+    fun_l23_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n236()</div><div class='add'>+    fun_l23_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n237()</div><div class='add'>+    fun_l23_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n238()</div><div class='add'>+    fun_l23_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n239()</div><div class='add'>+    fun_l23_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n240()</div><div class='add'>+    fun_l23_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n241()</div><div class='add'>+    fun_l23_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n242()</div><div class='add'>+    fun_l23_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n243()</div><div class='add'>+    fun_l23_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n244()</div><div class='add'>+    fun_l23_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n245()</div><div class='add'>+    fun_l23_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n246()</div><div class='add'>+    fun_l23_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n247()</div><div class='add'>+    fun_l23_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n248()</div><div class='add'>+    fun_l23_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n249()</div><div class='add'>+    fun_l23_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n250()</div><div class='add'>+    fun_l23_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n251()</div><div class='add'>+    fun_l23_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n252()</div><div class='add'>+    fun_l23_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n253()</div><div class='add'>+    fun_l23_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n254()</div><div class='add'>+    fun_l23_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n255()</div><div class='add'>+    fun_l23_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n256()</div><div class='add'>+    fun_l23_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n257()</div><div class='add'>+    fun_l23_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n258()</div><div class='add'>+    fun_l23_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n259()</div><div class='add'>+    fun_l23_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n260()</div><div class='add'>+    fun_l23_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n261()</div><div class='add'>+    fun_l23_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n262()</div><div class='add'>+    fun_l23_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n263()</div><div class='add'>+    fun_l23_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n264()</div><div class='add'>+    fun_l23_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n265()</div><div class='add'>+    fun_l23_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n266()</div><div class='add'>+    fun_l23_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n267()</div><div class='add'>+    fun_l23_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n268()</div><div class='add'>+    fun_l23_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n269()</div><div class='add'>+    fun_l23_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n270()</div><div class='add'>+    fun_l23_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n271()</div><div class='add'>+    fun_l23_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n272()</div><div class='add'>+    fun_l23_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n273()</div><div class='add'>+    fun_l23_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n274()</div><div class='add'>+    fun_l23_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n275()</div><div class='add'>+    fun_l23_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n276()</div><div class='add'>+    fun_l23_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n277()</div><div class='add'>+    fun_l23_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n278()</div><div class='add'>+    fun_l23_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n279()</div><div class='add'>+    fun_l23_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n280()</div><div class='add'>+    fun_l23_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n281()</div><div class='add'>+    fun_l23_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n282()</div><div class='add'>+    fun_l23_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n283()</div><div class='add'>+    fun_l23_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n284()</div><div class='add'>+    fun_l23_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n285()</div><div class='add'>+    fun_l23_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n286()</div><div class='add'>+    fun_l23_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n287()</div><div class='add'>+    fun_l23_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n288()</div><div class='add'>+    fun_l23_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n289()</div><div class='add'>+    fun_l23_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n290()</div><div class='add'>+    fun_l23_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n291()</div><div class='add'>+    fun_l23_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n292()</div><div class='add'>+    fun_l23_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n293()</div><div class='add'>+    fun_l23_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n294()</div><div class='add'>+    fun_l23_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n295()</div><div class='add'>+    fun_l23_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n296()</div><div class='add'>+    fun_l23_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n297()</div><div class='add'>+    fun_l23_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n298()</div><div class='add'>+    fun_l23_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n299()</div><div class='add'>+    fun_l23_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n300()</div><div class='add'>+    fun_l23_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n301()</div><div class='add'>+    fun_l23_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n302()</div><div class='add'>+    fun_l23_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n303()</div><div class='add'>+    fun_l23_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n304()</div><div class='add'>+    fun_l23_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n305()</div><div class='add'>+    fun_l23_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n306()</div><div class='add'>+    fun_l23_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n307()</div><div class='add'>+    fun_l23_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n308()</div><div class='add'>+    fun_l23_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n309()</div><div class='add'>+    fun_l23_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n310()</div><div class='add'>+    fun_l23_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n311()</div><div class='add'>+    fun_l23_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n312()</div><div class='add'>+    fun_l23_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n313()</div><div class='add'>+    fun_l23_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n314()</div><div class='add'>+    fun_l23_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n315()</div><div class='add'>+    fun_l23_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n316()</div><div class='add'>+    fun_l23_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n317()</div><div class='add'>+    fun_l23_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n318()</div><div class='add'>+    fun_l23_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n319()</div><div class='add'>+    fun_l23_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n320()</div><div class='add'>+    fun_l23_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n321()</div><div class='add'>+    fun_l23_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n322()</div><div class='add'>+    fun_l23_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n323()</div><div class='add'>+    fun_l23_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n324()</div><div class='add'>+    fun_l23_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n325()</div><div class='add'>+    fun_l23_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n326()</div><div class='add'>+    fun_l23_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n327()</div><div class='add'>+    fun_l23_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n328()</div><div class='add'>+    fun_l23_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n329()</div><div class='add'>+    fun_l23_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n330()</div><div class='add'>+    fun_l23_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n331()</div><div class='add'>+    fun_l23_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n332()</div><div class='add'>+    fun_l23_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n333()</div><div class='add'>+    fun_l23_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n334()</div><div class='add'>+    fun_l23_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n335()</div><div class='add'>+    fun_l23_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n336()</div><div class='add'>+    fun_l23_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n337()</div><div class='add'>+    fun_l23_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n338()</div><div class='add'>+    fun_l23_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n339()</div><div class='add'>+    fun_l23_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n340()</div><div class='add'>+    fun_l23_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n341()</div><div class='add'>+    fun_l23_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n342()</div><div class='add'>+    fun_l23_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n343()</div><div class='add'>+    fun_l23_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n344()</div><div class='add'>+    fun_l23_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n345()</div><div class='add'>+    fun_l23_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n346()</div><div class='add'>+    fun_l23_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n347()</div><div class='add'>+    fun_l23_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n348()</div><div class='add'>+    fun_l23_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n349()</div><div class='add'>+    fun_l23_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n350()</div><div class='add'>+    fun_l23_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n351()</div><div class='add'>+    fun_l23_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n352()</div><div class='add'>+    fun_l23_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n353()</div><div class='add'>+    fun_l23_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n354()</div><div class='add'>+    fun_l23_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n355()</div><div class='add'>+    fun_l23_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n356()</div><div class='add'>+    fun_l23_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n357()</div><div class='add'>+    fun_l23_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n358()</div><div class='add'>+    fun_l23_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n359()</div><div class='add'>+    fun_l23_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n360()</div><div class='add'>+    fun_l23_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n361()</div><div class='add'>+    fun_l23_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n362()</div><div class='add'>+    fun_l23_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n363()</div><div class='add'>+    fun_l23_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n364()</div><div class='add'>+    fun_l23_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n365()</div><div class='add'>+    fun_l23_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n366()</div><div class='add'>+    fun_l23_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n367()</div><div class='add'>+    fun_l23_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n368()</div><div class='add'>+    fun_l23_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n369()</div><div class='add'>+    fun_l23_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n370()</div><div class='add'>+    fun_l23_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n371()</div><div class='add'>+    fun_l23_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n372()</div><div class='add'>+    fun_l23_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n373()</div><div class='add'>+    fun_l23_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n374()</div><div class='add'>+    fun_l23_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n375()</div><div class='add'>+    fun_l23_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n376()</div><div class='add'>+    fun_l23_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n377()</div><div class='add'>+    fun_l23_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n378()</div><div class='add'>+    fun_l23_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n379()</div><div class='add'>+    fun_l23_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n380()</div><div class='add'>+    fun_l23_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n381()</div><div class='add'>+    fun_l23_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n382()</div><div class='add'>+    fun_l23_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n383()</div><div class='add'>+    fun_l23_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n384()</div><div class='add'>+    fun_l23_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n385()</div><div class='add'>+    fun_l23_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n386()</div><div class='add'>+    fun_l23_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n387()</div><div class='add'>+    fun_l23_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n388()</div><div class='add'>+    fun_l23_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n389()</div><div class='add'>+    fun_l23_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n390()</div><div class='add'>+    fun_l23_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n391()</div><div class='add'>+    fun_l23_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n392()</div><div class='add'>+    fun_l23_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n393()</div><div class='add'>+    fun_l23_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n394()</div><div class='add'>+    fun_l23_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n395()</div><div class='add'>+    fun_l23_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n396()</div><div class='add'>+    fun_l23_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n397()</div><div class='add'>+    fun_l23_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n398()</div><div class='add'>+    fun_l23_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n399()</div><div class='add'>+    fun_l23_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n400()</div><div class='add'>+    fun_l23_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n401()</div><div class='add'>+    fun_l23_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n402()</div><div class='add'>+    fun_l23_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n403()</div><div class='add'>+    fun_l23_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n404()</div><div class='add'>+    fun_l23_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n405()</div><div class='add'>+    fun_l23_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n406()</div><div class='add'>+    fun_l23_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n407()</div><div class='add'>+    fun_l23_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n408()</div><div class='add'>+    fun_l23_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n409()</div><div class='add'>+    fun_l23_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n410()</div><div class='add'>+    fun_l23_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n411()</div><div class='add'>+    fun_l23_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n412()</div><div class='add'>+    fun_l23_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n413()</div><div class='add'>+    fun_l23_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n414()</div><div class='add'>+    fun_l23_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n415()</div><div class='add'>+    fun_l23_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n416()</div><div class='add'>+    fun_l23_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n417()</div><div class='add'>+    fun_l23_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n418()</div><div class='add'>+    fun_l23_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n419()</div><div class='add'>+    fun_l23_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n420()</div><div class='add'>+    fun_l23_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n421()</div><div class='add'>+    fun_l23_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n422()</div><div class='add'>+    fun_l23_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n423()</div><div class='add'>+    fun_l23_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n424()</div><div class='add'>+    fun_l23_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n425()</div><div class='add'>+    fun_l23_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n426()</div><div class='add'>+    fun_l23_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n427()</div><div class='add'>+    fun_l23_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n428()</div><div class='add'>+    fun_l23_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n429()</div><div class='add'>+    fun_l23_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n430()</div><div class='add'>+    fun_l23_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n431()</div><div class='add'>+    fun_l23_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n432()</div><div class='add'>+    fun_l23_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n433()</div><div class='add'>+    fun_l23_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n434()</div><div class='add'>+    fun_l23_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n435()</div><div class='add'>+    fun_l23_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n436()</div><div class='add'>+    fun_l23_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n437()</div><div class='add'>+    fun_l23_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n438()</div><div class='add'>+    fun_l23_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n439()</div><div class='add'>+    fun_l23_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n440()</div><div class='add'>+    fun_l23_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n441()</div><div class='add'>+    fun_l23_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n442()</div><div class='add'>+    fun_l23_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n443()</div><div class='add'>+    fun_l23_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n444()</div><div class='add'>+    fun_l23_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n445()</div><div class='add'>+    fun_l23_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n446()</div><div class='add'>+    fun_l23_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n447()</div><div class='add'>+    fun_l23_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n448()</div><div class='add'>+    fun_l23_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n449()</div><div class='add'>+    fun_l23_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n450()</div><div class='add'>+    fun_l23_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n451()</div><div class='add'>+    fun_l23_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n452()</div><div class='add'>+    fun_l23_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n453()</div><div class='add'>+    fun_l23_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n454()</div><div class='add'>+    fun_l23_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n455()</div><div class='add'>+    fun_l23_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n456()</div><div class='add'>+    fun_l23_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n457()</div><div class='add'>+    fun_l23_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n458()</div><div class='add'>+    fun_l23_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n459()</div><div class='add'>+    fun_l23_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n460()</div><div class='add'>+    fun_l23_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n461()</div><div class='add'>+    fun_l23_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n462()</div><div class='add'>+    fun_l23_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n463()</div><div class='add'>+    fun_l23_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n464()</div><div class='add'>+    fun_l23_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n465()</div><div class='add'>+    fun_l23_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n466()</div><div class='add'>+    fun_l23_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n467()</div><div class='add'>+    fun_l23_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n468()</div><div class='add'>+    fun_l23_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n469()</div><div class='add'>+    fun_l23_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n470()</div><div class='add'>+    fun_l23_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n471()</div><div class='add'>+    fun_l23_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n472()</div><div class='add'>+    fun_l23_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n473()</div><div class='add'>+    fun_l23_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n474()</div><div class='add'>+    fun_l23_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n475()</div><div class='add'>+    fun_l23_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n476()</div><div class='add'>+    fun_l23_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n477()</div><div class='add'>+    fun_l23_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n478()</div><div class='add'>+    fun_l23_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n479()</div><div class='add'>+    fun_l23_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n480()</div><div class='add'>+    fun_l23_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n481()</div><div class='add'>+    fun_l23_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n482()</div><div class='add'>+    fun_l23_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n483()</div><div class='add'>+    fun_l23_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n484()</div><div class='add'>+    fun_l23_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n485()</div><div class='add'>+    fun_l23_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n486()</div><div class='add'>+    fun_l23_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n487()</div><div class='add'>+    fun_l23_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n488()</div><div class='add'>+    fun_l23_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n489()</div><div class='add'>+    fun_l23_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n490()</div><div class='add'>+    fun_l23_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n491()</div><div class='add'>+    fun_l23_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n492()</div><div class='add'>+    fun_l23_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n493()</div><div class='add'>+    fun_l23_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n494()</div><div class='add'>+    fun_l23_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n495()</div><div class='add'>+    fun_l23_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n496()</div><div class='add'>+    fun_l23_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n497()</div><div class='add'>+    fun_l23_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n498()</div><div class='add'>+    fun_l23_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n499()</div><div class='add'>+    fun_l23_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n500()</div><div class='add'>+    fun_l23_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n501()</div><div class='add'>+    fun_l23_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n502()</div><div class='add'>+    fun_l23_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n503()</div><div class='add'>+    fun_l23_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n504()</div><div class='add'>+    fun_l23_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n505()</div><div class='add'>+    fun_l23_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n506()</div><div class='add'>+    fun_l23_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n507()</div><div class='add'>+    fun_l23_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n508()</div><div class='add'>+    fun_l23_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n509()</div><div class='add'>+    fun_l23_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n510()</div><div class='add'>+    fun_l23_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n511()</div><div class='add'>+    fun_l23_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n512()</div><div class='add'>+    fun_l23_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n513()</div><div class='add'>+    fun_l23_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n514()</div><div class='add'>+    fun_l23_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n515()</div><div class='add'>+    fun_l23_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n516()</div><div class='add'>+    fun_l23_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n517()</div><div class='add'>+    fun_l23_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n518()</div><div class='add'>+    fun_l23_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n519()</div><div class='add'>+    fun_l23_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n520()</div><div class='add'>+    fun_l23_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n521()</div><div class='add'>+    fun_l23_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n522()</div><div class='add'>+    fun_l23_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n523()</div><div class='add'>+    fun_l23_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n524()</div><div class='add'>+    fun_l23_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n525()</div><div class='add'>+    fun_l23_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n526()</div><div class='add'>+    fun_l23_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n527()</div><div class='add'>+    fun_l23_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n528()</div><div class='add'>+    fun_l23_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n529()</div><div class='add'>+    fun_l23_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n530()</div><div class='add'>+    fun_l23_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n531()</div><div class='add'>+    fun_l23_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n532()</div><div class='add'>+    fun_l23_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n533()</div><div class='add'>+    fun_l23_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n534()</div><div class='add'>+    fun_l23_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n535()</div><div class='add'>+    fun_l23_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n536()</div><div class='add'>+    fun_l23_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n537()</div><div class='add'>+    fun_l23_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n538()</div><div class='add'>+    fun_l23_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n539()</div><div class='add'>+    fun_l23_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n540()</div><div class='add'>+    fun_l23_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n541()</div><div class='add'>+    fun_l23_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n542()</div><div class='add'>+    fun_l23_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n543()</div><div class='add'>+    fun_l23_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n544()</div><div class='add'>+    fun_l23_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n545()</div><div class='add'>+    fun_l23_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n546()</div><div class='add'>+    fun_l23_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n547()</div><div class='add'>+    fun_l23_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n548()</div><div class='add'>+    fun_l23_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n549()</div><div class='add'>+    fun_l23_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n550()</div><div class='add'>+    fun_l23_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n551()</div><div class='add'>+    fun_l23_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n552()</div><div class='add'>+    fun_l23_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n553()</div><div class='add'>+    fun_l23_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n554()</div><div class='add'>+    fun_l23_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n555()</div><div class='add'>+    fun_l23_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n556()</div><div class='add'>+    fun_l23_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n557()</div><div class='add'>+    fun_l23_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n558()</div><div class='add'>+    fun_l23_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n559()</div><div class='add'>+    fun_l23_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n560()</div><div class='add'>+    fun_l23_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n561()</div><div class='add'>+    fun_l23_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n562()</div><div class='add'>+    fun_l23_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n563()</div><div class='add'>+    fun_l23_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n564()</div><div class='add'>+    fun_l23_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n565()</div><div class='add'>+    fun_l23_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n566()</div><div class='add'>+    fun_l23_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n567()</div><div class='add'>+    fun_l23_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n568()</div><div class='add'>+    fun_l23_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n569()</div><div class='add'>+    fun_l23_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n570()</div><div class='add'>+    fun_l23_n791</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n571()</div><div class='add'>+    fun_l23_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n572()</div><div class='add'>+    fun_l23_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n573()</div><div class='add'>+    fun_l23_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n574()</div><div class='add'>+    fun_l23_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n575()</div><div class='add'>+    fun_l23_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n576()</div><div class='add'>+    fun_l23_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n577()</div><div class='add'>+    fun_l23_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n578()</div><div class='add'>+    fun_l23_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n579()</div><div class='add'>+    fun_l23_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n580()</div><div class='add'>+    fun_l23_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n581()</div><div class='add'>+    fun_l23_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n582()</div><div class='add'>+    fun_l23_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n583()</div><div class='add'>+    fun_l23_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n584()</div><div class='add'>+    fun_l23_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n585()</div><div class='add'>+    fun_l23_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n586()</div><div class='add'>+    fun_l23_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n587()</div><div class='add'>+    fun_l23_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n588()</div><div class='add'>+    fun_l23_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n589()</div><div class='add'>+    fun_l23_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n590()</div><div class='add'>+    fun_l23_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n591()</div><div class='add'>+    fun_l23_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n592()</div><div class='add'>+    fun_l23_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n593()</div><div class='add'>+    fun_l23_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n594()</div><div class='add'>+    fun_l23_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n595()</div><div class='add'>+    fun_l23_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n596()</div><div class='add'>+    fun_l23_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n597()</div><div class='add'>+    fun_l23_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n598()</div><div class='add'>+    fun_l23_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n599()</div><div class='add'>+    fun_l23_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n600()</div><div class='add'>+    fun_l23_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n601()</div><div class='add'>+    fun_l23_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n602()</div><div class='add'>+    fun_l23_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n603()</div><div class='add'>+    fun_l23_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n604()</div><div class='add'>+    fun_l23_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n605()</div><div class='add'>+    fun_l23_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n606()</div><div class='add'>+    fun_l23_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n607()</div><div class='add'>+    fun_l23_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n608()</div><div class='add'>+    fun_l23_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n609()</div><div class='add'>+    fun_l23_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n610()</div><div class='add'>+    fun_l23_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n611()</div><div class='add'>+    fun_l23_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n612()</div><div class='add'>+    fun_l23_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n613()</div><div class='add'>+    fun_l23_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n614()</div><div class='add'>+    fun_l23_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n615()</div><div class='add'>+    fun_l23_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n616()</div><div class='add'>+    fun_l23_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n617()</div><div class='add'>+    fun_l23_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n618()</div><div class='add'>+    fun_l23_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n619()</div><div class='add'>+    fun_l23_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n620()</div><div class='add'>+    fun_l23_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n621()</div><div class='add'>+    fun_l23_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n622()</div><div class='add'>+    fun_l23_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n623()</div><div class='add'>+    fun_l23_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n624()</div><div class='add'>+    fun_l23_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n625()</div><div class='add'>+    fun_l23_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n626()</div><div class='add'>+    fun_l23_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n627()</div><div class='add'>+    fun_l23_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n628()</div><div class='add'>+    fun_l23_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n629()</div><div class='add'>+    fun_l23_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n630()</div><div class='add'>+    fun_l23_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n631()</div><div class='add'>+    fun_l23_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n632()</div><div class='add'>+    fun_l23_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n633()</div><div class='add'>+    fun_l23_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n634()</div><div class='add'>+    fun_l23_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n635()</div><div class='add'>+    fun_l23_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n636()</div><div class='add'>+    fun_l23_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n637()</div><div class='add'>+    fun_l23_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n638()</div><div class='add'>+    fun_l23_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n639()</div><div class='add'>+    fun_l23_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n640()</div><div class='add'>+    fun_l23_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n641()</div><div class='add'>+    fun_l23_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n642()</div><div class='add'>+    fun_l23_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n643()</div><div class='add'>+    fun_l23_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n644()</div><div class='add'>+    fun_l23_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n645()</div><div class='add'>+    fun_l23_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n646()</div><div class='add'>+    fun_l23_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n647()</div><div class='add'>+    fun_l23_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n648()</div><div class='add'>+    fun_l23_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n649()</div><div class='add'>+    fun_l23_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n650()</div><div class='add'>+    fun_l23_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n651()</div><div class='add'>+    fun_l23_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n652()</div><div class='add'>+    fun_l23_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n653()</div><div class='add'>+    fun_l23_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n654()</div><div class='add'>+    fun_l23_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n655()</div><div class='add'>+    fun_l23_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n656()</div><div class='add'>+    fun_l23_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n657()</div><div class='add'>+    fun_l23_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n658()</div><div class='add'>+    fun_l23_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n659()</div><div class='add'>+    fun_l23_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n660()</div><div class='add'>+    fun_l23_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n661()</div><div class='add'>+    fun_l23_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n662()</div><div class='add'>+    fun_l23_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n663()</div><div class='add'>+    fun_l23_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n664()</div><div class='add'>+    fun_l23_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n665()</div><div class='add'>+    fun_l23_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n666()</div><div class='add'>+    fun_l23_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n667()</div><div class='add'>+    fun_l23_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n668()</div><div class='add'>+    fun_l23_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n669()</div><div class='add'>+    fun_l23_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n670()</div><div class='add'>+    fun_l23_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n671()</div><div class='add'>+    fun_l23_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n672()</div><div class='add'>+    fun_l23_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n673()</div><div class='add'>+    fun_l23_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n674()</div><div class='add'>+    fun_l23_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n675()</div><div class='add'>+    fun_l23_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n676()</div><div class='add'>+    fun_l23_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n677()</div><div class='add'>+    fun_l23_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n678()</div><div class='add'>+    fun_l23_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n679()</div><div class='add'>+    fun_l23_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n680()</div><div class='add'>+    fun_l23_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n681()</div><div class='add'>+    fun_l23_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n682()</div><div class='add'>+    fun_l23_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n683()</div><div class='add'>+    fun_l23_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n684()</div><div class='add'>+    fun_l23_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n685()</div><div class='add'>+    fun_l23_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n686()</div><div class='add'>+    fun_l23_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n687()</div><div class='add'>+    fun_l23_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n688()</div><div class='add'>+    fun_l23_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n689()</div><div class='add'>+    fun_l23_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n690()</div><div class='add'>+    fun_l23_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n691()</div><div class='add'>+    fun_l23_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n692()</div><div class='add'>+    fun_l23_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n693()</div><div class='add'>+    fun_l23_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n694()</div><div class='add'>+    fun_l23_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n695()</div><div class='add'>+    fun_l23_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n696()</div><div class='add'>+    fun_l23_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n697()</div><div class='add'>+    fun_l23_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n698()</div><div class='add'>+    fun_l23_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n699()</div><div class='add'>+    fun_l23_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n700()</div><div class='add'>+    fun_l23_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n701()</div><div class='add'>+    fun_l23_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n702()</div><div class='add'>+    fun_l23_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n703()</div><div class='add'>+    fun_l23_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n704()</div><div class='add'>+    fun_l23_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n705()</div><div class='add'>+    fun_l23_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n706()</div><div class='add'>+    fun_l23_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n707()</div><div class='add'>+    fun_l23_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n708()</div><div class='add'>+    fun_l23_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n709()</div><div class='add'>+    fun_l23_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n710()</div><div class='add'>+    fun_l23_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n711()</div><div class='add'>+    fun_l23_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n712()</div><div class='add'>+    fun_l23_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n713()</div><div class='add'>+    fun_l23_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n714()</div><div class='add'>+    fun_l23_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n715()</div><div class='add'>+    fun_l23_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n716()</div><div class='add'>+    fun_l23_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n717()</div><div class='add'>+    fun_l23_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n718()</div><div class='add'>+    fun_l23_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n719()</div><div class='add'>+    fun_l23_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n720()</div><div class='add'>+    fun_l23_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n721()</div><div class='add'>+    fun_l23_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n722()</div><div class='add'>+    fun_l23_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n723()</div><div class='add'>+    fun_l23_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n724()</div><div class='add'>+    fun_l23_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n725()</div><div class='add'>+    fun_l23_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n726()</div><div class='add'>+    fun_l23_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n727()</div><div class='add'>+    fun_l23_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n728()</div><div class='add'>+    fun_l23_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n729()</div><div class='add'>+    fun_l23_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n730()</div><div class='add'>+    fun_l23_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n731()</div><div class='add'>+    fun_l23_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n732()</div><div class='add'>+    fun_l23_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n733()</div><div class='add'>+    fun_l23_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n734()</div><div class='add'>+    fun_l23_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n735()</div><div class='add'>+    fun_l23_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n736()</div><div class='add'>+    fun_l23_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n737()</div><div class='add'>+    fun_l23_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n738()</div><div class='add'>+    fun_l23_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n739()</div><div class='add'>+    fun_l23_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n740()</div><div class='add'>+    fun_l23_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n741()</div><div class='add'>+    fun_l23_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n742()</div><div class='add'>+    fun_l23_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n743()</div><div class='add'>+    fun_l23_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n744()</div><div class='add'>+    fun_l23_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n745()</div><div class='add'>+    fun_l23_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n746()</div><div class='add'>+    fun_l23_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n747()</div><div class='add'>+    fun_l23_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n748()</div><div class='add'>+    fun_l23_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n749()</div><div class='add'>+    fun_l23_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n750()</div><div class='add'>+    fun_l23_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n751()</div><div class='add'>+    fun_l23_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n752()</div><div class='add'>+    fun_l23_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n753()</div><div class='add'>+    fun_l23_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n754()</div><div class='add'>+    fun_l23_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n755()</div><div class='add'>+    fun_l23_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n756()</div><div class='add'>+    fun_l23_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n757()</div><div class='add'>+    fun_l23_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n758()</div><div class='add'>+    fun_l23_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n759()</div><div class='add'>+    fun_l23_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n760()</div><div class='add'>+    fun_l23_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n761()</div><div class='add'>+    fun_l23_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n762()</div><div class='add'>+    fun_l23_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n763()</div><div class='add'>+    fun_l23_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n764()</div><div class='add'>+    fun_l23_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n765()</div><div class='add'>+    fun_l23_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n766()</div><div class='add'>+    fun_l23_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n767()</div><div class='add'>+    fun_l23_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n768()</div><div class='add'>+    fun_l23_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n769()</div><div class='add'>+    fun_l23_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n770()</div><div class='add'>+    fun_l23_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n771()</div><div class='add'>+    fun_l23_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n772()</div><div class='add'>+    fun_l23_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n773()</div><div class='add'>+    fun_l23_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n774()</div><div class='add'>+    fun_l23_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n775()</div><div class='add'>+    fun_l23_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n776()</div><div class='add'>+    fun_l23_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n777()</div><div class='add'>+    fun_l23_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n778()</div><div class='add'>+    fun_l23_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n779()</div><div class='add'>+    fun_l23_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n780()</div><div class='add'>+    fun_l23_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n781()</div><div class='add'>+    fun_l23_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n782()</div><div class='add'>+    fun_l23_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n783()</div><div class='add'>+    fun_l23_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n784()</div><div class='add'>+    fun_l23_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n785()</div><div class='add'>+    fun_l23_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n786()</div><div class='add'>+    fun_l23_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n787()</div><div class='add'>+    fun_l23_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n788()</div><div class='add'>+    fun_l23_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n789()</div><div class='add'>+    fun_l23_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n790()</div><div class='add'>+    fun_l23_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n791()</div><div class='add'>+    fun_l23_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n792()</div><div class='add'>+    fun_l23_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n793()</div><div class='add'>+    fun_l23_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n794()</div><div class='add'>+    fun_l23_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n795()</div><div class='add'>+    fun_l23_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n796()</div><div class='add'>+    fun_l23_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n797()</div><div class='add'>+    fun_l23_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n798()</div><div class='add'>+    fun_l23_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n799()</div><div class='add'>+    fun_l23_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n800()</div><div class='add'>+    fun_l23_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n801()</div><div class='add'>+    fun_l23_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n802()</div><div class='add'>+    fun_l23_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n803()</div><div class='add'>+    fun_l23_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n804()</div><div class='add'>+    fun_l23_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n805()</div><div class='add'>+    fun_l23_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n806()</div><div class='add'>+    fun_l23_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n807()</div><div class='add'>+    fun_l23_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n808()</div><div class='add'>+    fun_l23_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n809()</div><div class='add'>+    fun_l23_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n810()</div><div class='add'>+    fun_l23_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n811()</div><div class='add'>+    fun_l23_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n812()</div><div class='add'>+    fun_l23_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n813()</div><div class='add'>+    fun_l23_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n814()</div><div class='add'>+    fun_l23_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n815()</div><div class='add'>+    fun_l23_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n816()</div><div class='add'>+    fun_l23_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n817()</div><div class='add'>+    fun_l23_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n818()</div><div class='add'>+    fun_l23_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n819()</div><div class='add'>+    fun_l23_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n820()</div><div class='add'>+    fun_l23_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n821()</div><div class='add'>+    fun_l23_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n822()</div><div class='add'>+    fun_l23_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n823()</div><div class='add'>+    fun_l23_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n824()</div><div class='add'>+    fun_l23_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n825()</div><div class='add'>+    fun_l23_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n826()</div><div class='add'>+    fun_l23_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n827()</div><div class='add'>+    fun_l23_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n828()</div><div class='add'>+    fun_l23_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n829()</div><div class='add'>+    fun_l23_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n830()</div><div class='add'>+    fun_l23_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n831()</div><div class='add'>+    fun_l23_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n832()</div><div class='add'>+    fun_l23_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n833()</div><div class='add'>+    fun_l23_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n834()</div><div class='add'>+    fun_l23_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n835()</div><div class='add'>+    fun_l23_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n836()</div><div class='add'>+    fun_l23_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n837()</div><div class='add'>+    fun_l23_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n838()</div><div class='add'>+    fun_l23_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n839()</div><div class='add'>+    fun_l23_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n840()</div><div class='add'>+    fun_l23_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n841()</div><div class='add'>+    fun_l23_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n842()</div><div class='add'>+    fun_l23_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n843()</div><div class='add'>+    fun_l23_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n844()</div><div class='add'>+    fun_l23_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n845()</div><div class='add'>+    fun_l23_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n846()</div><div class='add'>+    fun_l23_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n847()</div><div class='add'>+    fun_l23_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n848()</div><div class='add'>+    fun_l23_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n849()</div><div class='add'>+    fun_l23_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n850()</div><div class='add'>+    fun_l23_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n851()</div><div class='add'>+    fun_l23_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n852()</div><div class='add'>+    fun_l23_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n853()</div><div class='add'>+    fun_l23_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n854()</div><div class='add'>+    fun_l23_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n855()</div><div class='add'>+    fun_l23_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n856()</div><div class='add'>+    fun_l23_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n857()</div><div class='add'>+    fun_l23_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n858()</div><div class='add'>+    fun_l23_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n859()</div><div class='add'>+    fun_l23_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n860()</div><div class='add'>+    fun_l23_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n861()</div><div class='add'>+    fun_l23_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n862()</div><div class='add'>+    fun_l23_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n863()</div><div class='add'>+    fun_l23_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n864()</div><div class='add'>+    fun_l23_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n865()</div><div class='add'>+    fun_l23_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n866()</div><div class='add'>+    fun_l23_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n867()</div><div class='add'>+    fun_l23_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n868()</div><div class='add'>+    fun_l23_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n869()</div><div class='add'>+    fun_l23_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n870()</div><div class='add'>+    fun_l23_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n871()</div><div class='add'>+    fun_l23_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n872()</div><div class='add'>+    fun_l23_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n873()</div><div class='add'>+    fun_l23_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n874()</div><div class='add'>+    fun_l23_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n875()</div><div class='add'>+    fun_l23_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n876()</div><div class='add'>+    fun_l23_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n877()</div><div class='add'>+    fun_l23_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n878()</div><div class='add'>+    fun_l23_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n879()</div><div class='add'>+    fun_l23_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n880()</div><div class='add'>+    fun_l23_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n881()</div><div class='add'>+    fun_l23_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n882()</div><div class='add'>+    fun_l23_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n883()</div><div class='add'>+    fun_l23_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n884()</div><div class='add'>+    fun_l23_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n885()</div><div class='add'>+    fun_l23_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n886()</div><div class='add'>+    fun_l23_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n887()</div><div class='add'>+    fun_l23_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n888()</div><div class='add'>+    fun_l23_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n889()</div><div class='add'>+    fun_l23_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n890()</div><div class='add'>+    fun_l23_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n891()</div><div class='add'>+    fun_l23_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n892()</div><div class='add'>+    fun_l23_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n893()</div><div class='add'>+    fun_l23_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n894()</div><div class='add'>+    fun_l23_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n895()</div><div class='add'>+    fun_l23_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n896()</div><div class='add'>+    fun_l23_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n897()</div><div class='add'>+    fun_l23_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n898()</div><div class='add'>+    fun_l23_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n899()</div><div class='add'>+    fun_l23_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n900()</div><div class='add'>+    fun_l23_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n901()</div><div class='add'>+    fun_l23_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n902()</div><div class='add'>+    fun_l23_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n903()</div><div class='add'>+    fun_l23_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n904()</div><div class='add'>+    fun_l23_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n905()</div><div class='add'>+    fun_l23_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n906()</div><div class='add'>+    fun_l23_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n907()</div><div class='add'>+    fun_l23_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n908()</div><div class='add'>+    fun_l23_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n909()</div><div class='add'>+    fun_l23_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n910()</div><div class='add'>+    fun_l23_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n911()</div><div class='add'>+    fun_l23_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n912()</div><div class='add'>+    fun_l23_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n913()</div><div class='add'>+    fun_l23_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n914()</div><div class='add'>+    fun_l23_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n915()</div><div class='add'>+    fun_l23_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n916()</div><div class='add'>+    fun_l23_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n917()</div><div class='add'>+    fun_l23_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n918()</div><div class='add'>+    fun_l23_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n919()</div><div class='add'>+    fun_l23_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n920()</div><div class='add'>+    fun_l23_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n921()</div><div class='add'>+    fun_l23_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n922()</div><div class='add'>+    fun_l23_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n923()</div><div class='add'>+    fun_l23_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n924()</div><div class='add'>+    fun_l23_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n925()</div><div class='add'>+    fun_l23_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n926()</div><div class='add'>+    fun_l23_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n927()</div><div class='add'>+    fun_l23_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n928()</div><div class='add'>+    fun_l23_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n929()</div><div class='add'>+    fun_l23_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n930()</div><div class='add'>+    fun_l23_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n931()</div><div class='add'>+    fun_l23_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n932()</div><div class='add'>+    fun_l23_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n933()</div><div class='add'>+    fun_l23_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n934()</div><div class='add'>+    fun_l23_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n935()</div><div class='add'>+    fun_l23_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n936()</div><div class='add'>+    fun_l23_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n937()</div><div class='add'>+    fun_l23_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n938()</div><div class='add'>+    fun_l23_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n939()</div><div class='add'>+    fun_l23_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n940()</div><div class='add'>+    fun_l23_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n941()</div><div class='add'>+    fun_l23_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n942()</div><div class='add'>+    fun_l23_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n943()</div><div class='add'>+    fun_l23_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n944()</div><div class='add'>+    fun_l23_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n945()</div><div class='add'>+    fun_l23_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n946()</div><div class='add'>+    fun_l23_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n947()</div><div class='add'>+    fun_l23_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n948()</div><div class='add'>+    fun_l23_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n949()</div><div class='add'>+    fun_l23_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n950()</div><div class='add'>+    fun_l23_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n951()</div><div class='add'>+    fun_l23_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n952()</div><div class='add'>+    fun_l23_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n953()</div><div class='add'>+    fun_l23_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n954()</div><div class='add'>+    fun_l23_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n955()</div><div class='add'>+    fun_l23_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n956()</div><div class='add'>+    fun_l23_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n957()</div><div class='add'>+    fun_l23_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n958()</div><div class='add'>+    fun_l23_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n959()</div><div class='add'>+    fun_l23_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n960()</div><div class='add'>+    fun_l23_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n961()</div><div class='add'>+    fun_l23_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n962()</div><div class='add'>+    fun_l23_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n963()</div><div class='add'>+    fun_l23_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n964()</div><div class='add'>+    fun_l23_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n965()</div><div class='add'>+    fun_l23_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n966()</div><div class='add'>+    fun_l23_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n967()</div><div class='add'>+    fun_l23_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n968()</div><div class='add'>+    fun_l23_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n969()</div><div class='add'>+    fun_l23_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n970()</div><div class='add'>+    fun_l23_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n971()</div><div class='add'>+    fun_l23_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n972()</div><div class='add'>+    fun_l23_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n973()</div><div class='add'>+    fun_l23_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n974()</div><div class='add'>+    fun_l23_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n975()</div><div class='add'>+    fun_l23_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n976()</div><div class='add'>+    fun_l23_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n977()</div><div class='add'>+    fun_l23_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n978()</div><div class='add'>+    fun_l23_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n979()</div><div class='add'>+    fun_l23_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n980()</div><div class='add'>+    fun_l23_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n981()</div><div class='add'>+    fun_l23_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n982()</div><div class='add'>+    fun_l23_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n983()</div><div class='add'>+    fun_l23_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n984()</div><div class='add'>+    fun_l23_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n985()</div><div class='add'>+    fun_l23_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n986()</div><div class='add'>+    fun_l23_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n987()</div><div class='add'>+    fun_l23_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n988()</div><div class='add'>+    fun_l23_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n989()</div><div class='add'>+    fun_l23_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n990()</div><div class='add'>+    fun_l23_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n991()</div><div class='add'>+    fun_l23_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n992()</div><div class='add'>+    fun_l23_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n993()</div><div class='add'>+    fun_l23_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n994()</div><div class='add'>+    fun_l23_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n995()</div><div class='add'>+    fun_l23_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n996()</div><div class='add'>+    fun_l23_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n997()</div><div class='add'>+    fun_l23_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n998()</div><div class='add'>+    fun_l23_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l22_n999()</div><div class='add'>+    fun_l23_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n0()</div><div class='add'>+    fun_l24_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n1()</div><div class='add'>+    fun_l24_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n2()</div><div class='add'>+    fun_l24_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n3()</div><div class='add'>+    fun_l24_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n4()</div><div class='add'>+    fun_l24_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n5()</div><div class='add'>+    fun_l24_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n6()</div><div class='add'>+    fun_l24_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n7()</div><div class='add'>+    fun_l24_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n8()</div><div class='add'>+    fun_l24_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n9()</div><div class='add'>+    fun_l24_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n10()</div><div class='add'>+    fun_l24_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n11()</div><div class='add'>+    fun_l24_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n12()</div><div class='add'>+    fun_l24_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n13()</div><div class='add'>+    fun_l24_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n14()</div><div class='add'>+    fun_l24_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n15()</div><div class='add'>+    fun_l24_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n16()</div><div class='add'>+    fun_l24_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n17()</div><div class='add'>+    fun_l24_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n18()</div><div class='add'>+    fun_l24_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n19()</div><div class='add'>+    fun_l24_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n20()</div><div class='add'>+    fun_l24_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n21()</div><div class='add'>+    fun_l24_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n22()</div><div class='add'>+    fun_l24_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n23()</div><div class='add'>+    fun_l24_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n24()</div><div class='add'>+    fun_l24_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n25()</div><div class='add'>+    fun_l24_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n26()</div><div class='add'>+    fun_l24_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n27()</div><div class='add'>+    fun_l24_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n28()</div><div class='add'>+    fun_l24_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n29()</div><div class='add'>+    fun_l24_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n30()</div><div class='add'>+    fun_l24_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n31()</div><div class='add'>+    fun_l24_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n32()</div><div class='add'>+    fun_l24_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n33()</div><div class='add'>+    fun_l24_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n34()</div><div class='add'>+    fun_l24_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n35()</div><div class='add'>+    fun_l24_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n36()</div><div class='add'>+    fun_l24_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n37()</div><div class='add'>+    fun_l24_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n38()</div><div class='add'>+    fun_l24_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n39()</div><div class='add'>+    fun_l24_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n40()</div><div class='add'>+    fun_l24_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n41()</div><div class='add'>+    fun_l24_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n42()</div><div class='add'>+    fun_l24_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n43()</div><div class='add'>+    fun_l24_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n44()</div><div class='add'>+    fun_l24_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n45()</div><div class='add'>+    fun_l24_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n46()</div><div class='add'>+    fun_l24_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n47()</div><div class='add'>+    fun_l24_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n48()</div><div class='add'>+    fun_l24_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n49()</div><div class='add'>+    fun_l24_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n50()</div><div class='add'>+    fun_l24_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n51()</div><div class='add'>+    fun_l24_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n52()</div><div class='add'>+    fun_l24_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n53()</div><div class='add'>+    fun_l24_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n54()</div><div class='add'>+    fun_l24_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n55()</div><div class='add'>+    fun_l24_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n56()</div><div class='add'>+    fun_l24_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n57()</div><div class='add'>+    fun_l24_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n58()</div><div class='add'>+    fun_l24_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n59()</div><div class='add'>+    fun_l24_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n60()</div><div class='add'>+    fun_l24_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n61()</div><div class='add'>+    fun_l24_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n62()</div><div class='add'>+    fun_l24_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n63()</div><div class='add'>+    fun_l24_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n64()</div><div class='add'>+    fun_l24_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n65()</div><div class='add'>+    fun_l24_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n66()</div><div class='add'>+    fun_l24_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n67()</div><div class='add'>+    fun_l24_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n68()</div><div class='add'>+    fun_l24_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n69()</div><div class='add'>+    fun_l24_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n70()</div><div class='add'>+    fun_l24_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n71()</div><div class='add'>+    fun_l24_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n72()</div><div class='add'>+    fun_l24_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n73()</div><div class='add'>+    fun_l24_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n74()</div><div class='add'>+    fun_l24_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n75()</div><div class='add'>+    fun_l24_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n76()</div><div class='add'>+    fun_l24_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n77()</div><div class='add'>+    fun_l24_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n78()</div><div class='add'>+    fun_l24_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n79()</div><div class='add'>+    fun_l24_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n80()</div><div class='add'>+    fun_l24_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n81()</div><div class='add'>+    fun_l24_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n82()</div><div class='add'>+    fun_l24_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n83()</div><div class='add'>+    fun_l24_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n84()</div><div class='add'>+    fun_l24_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n85()</div><div class='add'>+    fun_l24_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n86()</div><div class='add'>+    fun_l24_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n87()</div><div class='add'>+    fun_l24_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n88()</div><div class='add'>+    fun_l24_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n89()</div><div class='add'>+    fun_l24_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n90()</div><div class='add'>+    fun_l24_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n91()</div><div class='add'>+    fun_l24_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n92()</div><div class='add'>+    fun_l24_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n93()</div><div class='add'>+    fun_l24_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n94()</div><div class='add'>+    fun_l24_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n95()</div><div class='add'>+    fun_l24_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n96()</div><div class='add'>+    fun_l24_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n97()</div><div class='add'>+    fun_l24_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n98()</div><div class='add'>+    fun_l24_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n99()</div><div class='add'>+    fun_l24_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n100()</div><div class='add'>+    fun_l24_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n101()</div><div class='add'>+    fun_l24_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n102()</div><div class='add'>+    fun_l24_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n103()</div><div class='add'>+    fun_l24_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n104()</div><div class='add'>+    fun_l24_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n105()</div><div class='add'>+    fun_l24_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n106()</div><div class='add'>+    fun_l24_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n107()</div><div class='add'>+    fun_l24_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n108()</div><div class='add'>+    fun_l24_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n109()</div><div class='add'>+    fun_l24_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n110()</div><div class='add'>+    fun_l24_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n111()</div><div class='add'>+    fun_l24_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n112()</div><div class='add'>+    fun_l24_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n113()</div><div class='add'>+    fun_l24_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n114()</div><div class='add'>+    fun_l24_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n115()</div><div class='add'>+    fun_l24_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n116()</div><div class='add'>+    fun_l24_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n117()</div><div class='add'>+    fun_l24_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n118()</div><div class='add'>+    fun_l24_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n119()</div><div class='add'>+    fun_l24_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n120()</div><div class='add'>+    fun_l24_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n121()</div><div class='add'>+    fun_l24_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n122()</div><div class='add'>+    fun_l24_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n123()</div><div class='add'>+    fun_l24_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n124()</div><div class='add'>+    fun_l24_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n125()</div><div class='add'>+    fun_l24_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n126()</div><div class='add'>+    fun_l24_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n127()</div><div class='add'>+    fun_l24_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n128()</div><div class='add'>+    fun_l24_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n129()</div><div class='add'>+    fun_l24_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n130()</div><div class='add'>+    fun_l24_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n131()</div><div class='add'>+    fun_l24_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n132()</div><div class='add'>+    fun_l24_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n133()</div><div class='add'>+    fun_l24_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n134()</div><div class='add'>+    fun_l24_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n135()</div><div class='add'>+    fun_l24_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n136()</div><div class='add'>+    fun_l24_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n137()</div><div class='add'>+    fun_l24_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n138()</div><div class='add'>+    fun_l24_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n139()</div><div class='add'>+    fun_l24_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n140()</div><div class='add'>+    fun_l24_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n141()</div><div class='add'>+    fun_l24_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n142()</div><div class='add'>+    fun_l24_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n143()</div><div class='add'>+    fun_l24_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n144()</div><div class='add'>+    fun_l24_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n145()</div><div class='add'>+    fun_l24_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n146()</div><div class='add'>+    fun_l24_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n147()</div><div class='add'>+    fun_l24_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n148()</div><div class='add'>+    fun_l24_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n149()</div><div class='add'>+    fun_l24_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n150()</div><div class='add'>+    fun_l24_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n151()</div><div class='add'>+    fun_l24_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n152()</div><div class='add'>+    fun_l24_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n153()</div><div class='add'>+    fun_l24_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n154()</div><div class='add'>+    fun_l24_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n155()</div><div class='add'>+    fun_l24_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n156()</div><div class='add'>+    fun_l24_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n157()</div><div class='add'>+    fun_l24_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n158()</div><div class='add'>+    fun_l24_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n159()</div><div class='add'>+    fun_l24_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n160()</div><div class='add'>+    fun_l24_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n161()</div><div class='add'>+    fun_l24_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n162()</div><div class='add'>+    fun_l24_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n163()</div><div class='add'>+    fun_l24_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n164()</div><div class='add'>+    fun_l24_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n165()</div><div class='add'>+    fun_l24_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n166()</div><div class='add'>+    fun_l24_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n167()</div><div class='add'>+    fun_l24_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n168()</div><div class='add'>+    fun_l24_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n169()</div><div class='add'>+    fun_l24_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n170()</div><div class='add'>+    fun_l24_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n171()</div><div class='add'>+    fun_l24_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n172()</div><div class='add'>+    fun_l24_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n173()</div><div class='add'>+    fun_l24_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n174()</div><div class='add'>+    fun_l24_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n175()</div><div class='add'>+    fun_l24_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n176()</div><div class='add'>+    fun_l24_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n177()</div><div class='add'>+    fun_l24_n906</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n178()</div><div class='add'>+    fun_l24_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n179()</div><div class='add'>+    fun_l24_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n180()</div><div class='add'>+    fun_l24_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n181()</div><div class='add'>+    fun_l24_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n182()</div><div class='add'>+    fun_l24_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n183()</div><div class='add'>+    fun_l24_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n184()</div><div class='add'>+    fun_l24_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n185()</div><div class='add'>+    fun_l24_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n186()</div><div class='add'>+    fun_l24_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n187()</div><div class='add'>+    fun_l24_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n188()</div><div class='add'>+    fun_l24_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n189()</div><div class='add'>+    fun_l24_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n190()</div><div class='add'>+    fun_l24_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n191()</div><div class='add'>+    fun_l24_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n192()</div><div class='add'>+    fun_l24_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n193()</div><div class='add'>+    fun_l24_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n194()</div><div class='add'>+    fun_l24_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n195()</div><div class='add'>+    fun_l24_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n196()</div><div class='add'>+    fun_l24_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n197()</div><div class='add'>+    fun_l24_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n198()</div><div class='add'>+    fun_l24_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n199()</div><div class='add'>+    fun_l24_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n200()</div><div class='add'>+    fun_l24_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n201()</div><div class='add'>+    fun_l24_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n202()</div><div class='add'>+    fun_l24_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n203()</div><div class='add'>+    fun_l24_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n204()</div><div class='add'>+    fun_l24_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n205()</div><div class='add'>+    fun_l24_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n206()</div><div class='add'>+    fun_l24_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n207()</div><div class='add'>+    fun_l24_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n208()</div><div class='add'>+    fun_l24_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n209()</div><div class='add'>+    fun_l24_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n210()</div><div class='add'>+    fun_l24_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n211()</div><div class='add'>+    fun_l24_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n212()</div><div class='add'>+    fun_l24_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n213()</div><div class='add'>+    fun_l24_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n214()</div><div class='add'>+    fun_l24_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n215()</div><div class='add'>+    fun_l24_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n216()</div><div class='add'>+    fun_l24_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n217()</div><div class='add'>+    fun_l24_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n218()</div><div class='add'>+    fun_l24_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n219()</div><div class='add'>+    fun_l24_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n220()</div><div class='add'>+    fun_l24_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n221()</div><div class='add'>+    fun_l24_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n222()</div><div class='add'>+    fun_l24_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n223()</div><div class='add'>+    fun_l24_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n224()</div><div class='add'>+    fun_l24_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n225()</div><div class='add'>+    fun_l24_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n226()</div><div class='add'>+    fun_l24_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n227()</div><div class='add'>+    fun_l24_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n228()</div><div class='add'>+    fun_l24_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n229()</div><div class='add'>+    fun_l24_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n230()</div><div class='add'>+    fun_l24_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n231()</div><div class='add'>+    fun_l24_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n232()</div><div class='add'>+    fun_l24_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n233()</div><div class='add'>+    fun_l24_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n234()</div><div class='add'>+    fun_l24_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n235()</div><div class='add'>+    fun_l24_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n236()</div><div class='add'>+    fun_l24_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n237()</div><div class='add'>+    fun_l24_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n238()</div><div class='add'>+    fun_l24_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n239()</div><div class='add'>+    fun_l24_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n240()</div><div class='add'>+    fun_l24_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n241()</div><div class='add'>+    fun_l24_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n242()</div><div class='add'>+    fun_l24_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n243()</div><div class='add'>+    fun_l24_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n244()</div><div class='add'>+    fun_l24_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n245()</div><div class='add'>+    fun_l24_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n246()</div><div class='add'>+    fun_l24_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n247()</div><div class='add'>+    fun_l24_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n248()</div><div class='add'>+    fun_l24_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n249()</div><div class='add'>+    fun_l24_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n250()</div><div class='add'>+    fun_l24_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n251()</div><div class='add'>+    fun_l24_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n252()</div><div class='add'>+    fun_l24_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n253()</div><div class='add'>+    fun_l24_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n254()</div><div class='add'>+    fun_l24_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n255()</div><div class='add'>+    fun_l24_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n256()</div><div class='add'>+    fun_l24_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n257()</div><div class='add'>+    fun_l24_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n258()</div><div class='add'>+    fun_l24_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n259()</div><div class='add'>+    fun_l24_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n260()</div><div class='add'>+    fun_l24_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n261()</div><div class='add'>+    fun_l24_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n262()</div><div class='add'>+    fun_l24_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n263()</div><div class='add'>+    fun_l24_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n264()</div><div class='add'>+    fun_l24_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n265()</div><div class='add'>+    fun_l24_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n266()</div><div class='add'>+    fun_l24_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n267()</div><div class='add'>+    fun_l24_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n268()</div><div class='add'>+    fun_l24_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n269()</div><div class='add'>+    fun_l24_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n270()</div><div class='add'>+    fun_l24_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n271()</div><div class='add'>+    fun_l24_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n272()</div><div class='add'>+    fun_l24_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n273()</div><div class='add'>+    fun_l24_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n274()</div><div class='add'>+    fun_l24_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n275()</div><div class='add'>+    fun_l24_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n276()</div><div class='add'>+    fun_l24_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n277()</div><div class='add'>+    fun_l24_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n278()</div><div class='add'>+    fun_l24_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n279()</div><div class='add'>+    fun_l24_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n280()</div><div class='add'>+    fun_l24_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n281()</div><div class='add'>+    fun_l24_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n282()</div><div class='add'>+    fun_l24_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n283()</div><div class='add'>+    fun_l24_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n284()</div><div class='add'>+    fun_l24_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n285()</div><div class='add'>+    fun_l24_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n286()</div><div class='add'>+    fun_l24_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n287()</div><div class='add'>+    fun_l24_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n288()</div><div class='add'>+    fun_l24_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n289()</div><div class='add'>+    fun_l24_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n290()</div><div class='add'>+    fun_l24_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n291()</div><div class='add'>+    fun_l24_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n292()</div><div class='add'>+    fun_l24_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n293()</div><div class='add'>+    fun_l24_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n294()</div><div class='add'>+    fun_l24_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n295()</div><div class='add'>+    fun_l24_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n296()</div><div class='add'>+    fun_l24_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n297()</div><div class='add'>+    fun_l24_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n298()</div><div class='add'>+    fun_l24_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n299()</div><div class='add'>+    fun_l24_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n300()</div><div class='add'>+    fun_l24_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n301()</div><div class='add'>+    fun_l24_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n302()</div><div class='add'>+    fun_l24_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n303()</div><div class='add'>+    fun_l24_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n304()</div><div class='add'>+    fun_l24_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n305()</div><div class='add'>+    fun_l24_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n306()</div><div class='add'>+    fun_l24_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n307()</div><div class='add'>+    fun_l24_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n308()</div><div class='add'>+    fun_l24_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n309()</div><div class='add'>+    fun_l24_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n310()</div><div class='add'>+    fun_l24_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n311()</div><div class='add'>+    fun_l24_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n312()</div><div class='add'>+    fun_l24_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n313()</div><div class='add'>+    fun_l24_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n314()</div><div class='add'>+    fun_l24_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n315()</div><div class='add'>+    fun_l24_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n316()</div><div class='add'>+    fun_l24_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n317()</div><div class='add'>+    fun_l24_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n318()</div><div class='add'>+    fun_l24_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n319()</div><div class='add'>+    fun_l24_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n320()</div><div class='add'>+    fun_l24_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n321()</div><div class='add'>+    fun_l24_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n322()</div><div class='add'>+    fun_l24_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n323()</div><div class='add'>+    fun_l24_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n324()</div><div class='add'>+    fun_l24_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n325()</div><div class='add'>+    fun_l24_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n326()</div><div class='add'>+    fun_l24_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n327()</div><div class='add'>+    fun_l24_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n328()</div><div class='add'>+    fun_l24_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n329()</div><div class='add'>+    fun_l24_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n330()</div><div class='add'>+    fun_l24_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n331()</div><div class='add'>+    fun_l24_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n332()</div><div class='add'>+    fun_l24_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n333()</div><div class='add'>+    fun_l24_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n334()</div><div class='add'>+    fun_l24_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n335()</div><div class='add'>+    fun_l24_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n336()</div><div class='add'>+    fun_l24_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n337()</div><div class='add'>+    fun_l24_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n338()</div><div class='add'>+    fun_l24_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n339()</div><div class='add'>+    fun_l24_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n340()</div><div class='add'>+    fun_l24_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n341()</div><div class='add'>+    fun_l24_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n342()</div><div class='add'>+    fun_l24_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n343()</div><div class='add'>+    fun_l24_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n344()</div><div class='add'>+    fun_l24_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n345()</div><div class='add'>+    fun_l24_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n346()</div><div class='add'>+    fun_l24_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n347()</div><div class='add'>+    fun_l24_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n348()</div><div class='add'>+    fun_l24_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n349()</div><div class='add'>+    fun_l24_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n350()</div><div class='add'>+    fun_l24_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n351()</div><div class='add'>+    fun_l24_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n352()</div><div class='add'>+    fun_l24_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n353()</div><div class='add'>+    fun_l24_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n354()</div><div class='add'>+    fun_l24_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n355()</div><div class='add'>+    fun_l24_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n356()</div><div class='add'>+    fun_l24_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n357()</div><div class='add'>+    fun_l24_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n358()</div><div class='add'>+    fun_l24_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n359()</div><div class='add'>+    fun_l24_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n360()</div><div class='add'>+    fun_l24_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n361()</div><div class='add'>+    fun_l24_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n362()</div><div class='add'>+    fun_l24_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n363()</div><div class='add'>+    fun_l24_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n364()</div><div class='add'>+    fun_l24_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n365()</div><div class='add'>+    fun_l24_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n366()</div><div class='add'>+    fun_l24_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n367()</div><div class='add'>+    fun_l24_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n368()</div><div class='add'>+    fun_l24_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n369()</div><div class='add'>+    fun_l24_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n370()</div><div class='add'>+    fun_l24_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n371()</div><div class='add'>+    fun_l24_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n372()</div><div class='add'>+    fun_l24_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n373()</div><div class='add'>+    fun_l24_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n374()</div><div class='add'>+    fun_l24_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n375()</div><div class='add'>+    fun_l24_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n376()</div><div class='add'>+    fun_l24_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n377()</div><div class='add'>+    fun_l24_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n378()</div><div class='add'>+    fun_l24_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n379()</div><div class='add'>+    fun_l24_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n380()</div><div class='add'>+    fun_l24_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n381()</div><div class='add'>+    fun_l24_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n382()</div><div class='add'>+    fun_l24_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n383()</div><div class='add'>+    fun_l24_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n384()</div><div class='add'>+    fun_l24_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n385()</div><div class='add'>+    fun_l24_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n386()</div><div class='add'>+    fun_l24_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n387()</div><div class='add'>+    fun_l24_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n388()</div><div class='add'>+    fun_l24_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n389()</div><div class='add'>+    fun_l24_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n390()</div><div class='add'>+    fun_l24_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n391()</div><div class='add'>+    fun_l24_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n392()</div><div class='add'>+    fun_l24_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n393()</div><div class='add'>+    fun_l24_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n394()</div><div class='add'>+    fun_l24_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n395()</div><div class='add'>+    fun_l24_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n396()</div><div class='add'>+    fun_l24_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n397()</div><div class='add'>+    fun_l24_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n398()</div><div class='add'>+    fun_l24_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n399()</div><div class='add'>+    fun_l24_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n400()</div><div class='add'>+    fun_l24_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n401()</div><div class='add'>+    fun_l24_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n402()</div><div class='add'>+    fun_l24_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n403()</div><div class='add'>+    fun_l24_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n404()</div><div class='add'>+    fun_l24_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n405()</div><div class='add'>+    fun_l24_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n406()</div><div class='add'>+    fun_l24_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n407()</div><div class='add'>+    fun_l24_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n408()</div><div class='add'>+    fun_l24_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n409()</div><div class='add'>+    fun_l24_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n410()</div><div class='add'>+    fun_l24_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n411()</div><div class='add'>+    fun_l24_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n412()</div><div class='add'>+    fun_l24_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n413()</div><div class='add'>+    fun_l24_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n414()</div><div class='add'>+    fun_l24_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n415()</div><div class='add'>+    fun_l24_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n416()</div><div class='add'>+    fun_l24_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n417()</div><div class='add'>+    fun_l24_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n418()</div><div class='add'>+    fun_l24_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n419()</div><div class='add'>+    fun_l24_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n420()</div><div class='add'>+    fun_l24_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n421()</div><div class='add'>+    fun_l24_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n422()</div><div class='add'>+    fun_l24_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n423()</div><div class='add'>+    fun_l24_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n424()</div><div class='add'>+    fun_l24_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n425()</div><div class='add'>+    fun_l24_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n426()</div><div class='add'>+    fun_l24_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n427()</div><div class='add'>+    fun_l24_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n428()</div><div class='add'>+    fun_l24_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n429()</div><div class='add'>+    fun_l24_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n430()</div><div class='add'>+    fun_l24_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n431()</div><div class='add'>+    fun_l24_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n432()</div><div class='add'>+    fun_l24_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n433()</div><div class='add'>+    fun_l24_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n434()</div><div class='add'>+    fun_l24_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n435()</div><div class='add'>+    fun_l24_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n436()</div><div class='add'>+    fun_l24_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n437()</div><div class='add'>+    fun_l24_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n438()</div><div class='add'>+    fun_l24_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n439()</div><div class='add'>+    fun_l24_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n440()</div><div class='add'>+    fun_l24_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n441()</div><div class='add'>+    fun_l24_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n442()</div><div class='add'>+    fun_l24_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n443()</div><div class='add'>+    fun_l24_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n444()</div><div class='add'>+    fun_l24_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n445()</div><div class='add'>+    fun_l24_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n446()</div><div class='add'>+    fun_l24_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n447()</div><div class='add'>+    fun_l24_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n448()</div><div class='add'>+    fun_l24_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n449()</div><div class='add'>+    fun_l24_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n450()</div><div class='add'>+    fun_l24_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n451()</div><div class='add'>+    fun_l24_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n452()</div><div class='add'>+    fun_l24_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n453()</div><div class='add'>+    fun_l24_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n454()</div><div class='add'>+    fun_l24_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n455()</div><div class='add'>+    fun_l24_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n456()</div><div class='add'>+    fun_l24_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n457()</div><div class='add'>+    fun_l24_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n458()</div><div class='add'>+    fun_l24_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n459()</div><div class='add'>+    fun_l24_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n460()</div><div class='add'>+    fun_l24_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n461()</div><div class='add'>+    fun_l24_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n462()</div><div class='add'>+    fun_l24_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n463()</div><div class='add'>+    fun_l24_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n464()</div><div class='add'>+    fun_l24_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n465()</div><div class='add'>+    fun_l24_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n466()</div><div class='add'>+    fun_l24_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n467()</div><div class='add'>+    fun_l24_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n468()</div><div class='add'>+    fun_l24_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n469()</div><div class='add'>+    fun_l24_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n470()</div><div class='add'>+    fun_l24_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n471()</div><div class='add'>+    fun_l24_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n472()</div><div class='add'>+    fun_l24_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n473()</div><div class='add'>+    fun_l24_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n474()</div><div class='add'>+    fun_l24_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n475()</div><div class='add'>+    fun_l24_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n476()</div><div class='add'>+    fun_l24_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n477()</div><div class='add'>+    fun_l24_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n478()</div><div class='add'>+    fun_l24_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n479()</div><div class='add'>+    fun_l24_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n480()</div><div class='add'>+    fun_l24_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n481()</div><div class='add'>+    fun_l24_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n482()</div><div class='add'>+    fun_l24_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n483()</div><div class='add'>+    fun_l24_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n484()</div><div class='add'>+    fun_l24_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n485()</div><div class='add'>+    fun_l24_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n486()</div><div class='add'>+    fun_l24_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n487()</div><div class='add'>+    fun_l24_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n488()</div><div class='add'>+    fun_l24_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n489()</div><div class='add'>+    fun_l24_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n490()</div><div class='add'>+    fun_l24_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n491()</div><div class='add'>+    fun_l24_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n492()</div><div class='add'>+    fun_l24_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n493()</div><div class='add'>+    fun_l24_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n494()</div><div class='add'>+    fun_l24_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n495()</div><div class='add'>+    fun_l24_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n496()</div><div class='add'>+    fun_l24_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n497()</div><div class='add'>+    fun_l24_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n498()</div><div class='add'>+    fun_l24_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n499()</div><div class='add'>+    fun_l24_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n500()</div><div class='add'>+    fun_l24_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n501()</div><div class='add'>+    fun_l24_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n502()</div><div class='add'>+    fun_l24_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n503()</div><div class='add'>+    fun_l24_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n504()</div><div class='add'>+    fun_l24_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n505()</div><div class='add'>+    fun_l24_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n506()</div><div class='add'>+    fun_l24_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n507()</div><div class='add'>+    fun_l24_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n508()</div><div class='add'>+    fun_l24_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n509()</div><div class='add'>+    fun_l24_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n510()</div><div class='add'>+    fun_l24_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n511()</div><div class='add'>+    fun_l24_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n512()</div><div class='add'>+    fun_l24_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n513()</div><div class='add'>+    fun_l24_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n514()</div><div class='add'>+    fun_l24_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n515()</div><div class='add'>+    fun_l24_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n516()</div><div class='add'>+    fun_l24_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n517()</div><div class='add'>+    fun_l24_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n518()</div><div class='add'>+    fun_l24_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n519()</div><div class='add'>+    fun_l24_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n520()</div><div class='add'>+    fun_l24_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n521()</div><div class='add'>+    fun_l24_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n522()</div><div class='add'>+    fun_l24_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n523()</div><div class='add'>+    fun_l24_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n524()</div><div class='add'>+    fun_l24_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n525()</div><div class='add'>+    fun_l24_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n526()</div><div class='add'>+    fun_l24_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n527()</div><div class='add'>+    fun_l24_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n528()</div><div class='add'>+    fun_l24_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n529()</div><div class='add'>+    fun_l24_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n530()</div><div class='add'>+    fun_l24_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n531()</div><div class='add'>+    fun_l24_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n532()</div><div class='add'>+    fun_l24_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n533()</div><div class='add'>+    fun_l24_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n534()</div><div class='add'>+    fun_l24_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n535()</div><div class='add'>+    fun_l24_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n536()</div><div class='add'>+    fun_l24_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n537()</div><div class='add'>+    fun_l24_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n538()</div><div class='add'>+    fun_l24_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n539()</div><div class='add'>+    fun_l24_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n540()</div><div class='add'>+    fun_l24_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n541()</div><div class='add'>+    fun_l24_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n542()</div><div class='add'>+    fun_l24_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n543()</div><div class='add'>+    fun_l24_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n544()</div><div class='add'>+    fun_l24_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n545()</div><div class='add'>+    fun_l24_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n546()</div><div class='add'>+    fun_l24_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n547()</div><div class='add'>+    fun_l24_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n548()</div><div class='add'>+    fun_l24_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n549()</div><div class='add'>+    fun_l24_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n550()</div><div class='add'>+    fun_l24_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n551()</div><div class='add'>+    fun_l24_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n552()</div><div class='add'>+    fun_l24_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n553()</div><div class='add'>+    fun_l24_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n554()</div><div class='add'>+    fun_l24_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n555()</div><div class='add'>+    fun_l24_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n556()</div><div class='add'>+    fun_l24_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n557()</div><div class='add'>+    fun_l24_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n558()</div><div class='add'>+    fun_l24_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n559()</div><div class='add'>+    fun_l24_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n560()</div><div class='add'>+    fun_l24_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n561()</div><div class='add'>+    fun_l24_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n562()</div><div class='add'>+    fun_l24_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n563()</div><div class='add'>+    fun_l24_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n564()</div><div class='add'>+    fun_l24_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n565()</div><div class='add'>+    fun_l24_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n566()</div><div class='add'>+    fun_l24_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n567()</div><div class='add'>+    fun_l24_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n568()</div><div class='add'>+    fun_l24_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n569()</div><div class='add'>+    fun_l24_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n570()</div><div class='add'>+    fun_l24_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n571()</div><div class='add'>+    fun_l24_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n572()</div><div class='add'>+    fun_l24_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n573()</div><div class='add'>+    fun_l24_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n574()</div><div class='add'>+    fun_l24_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n575()</div><div class='add'>+    fun_l24_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n576()</div><div class='add'>+    fun_l24_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n577()</div><div class='add'>+    fun_l24_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n578()</div><div class='add'>+    fun_l24_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n579()</div><div class='add'>+    fun_l24_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n580()</div><div class='add'>+    fun_l24_n521</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n581()</div><div class='add'>+    fun_l24_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n582()</div><div class='add'>+    fun_l24_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n583()</div><div class='add'>+    fun_l24_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n584()</div><div class='add'>+    fun_l24_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n585()</div><div class='add'>+    fun_l24_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n586()</div><div class='add'>+    fun_l24_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n587()</div><div class='add'>+    fun_l24_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n588()</div><div class='add'>+    fun_l24_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n589()</div><div class='add'>+    fun_l24_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n590()</div><div class='add'>+    fun_l24_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n591()</div><div class='add'>+    fun_l24_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n592()</div><div class='add'>+    fun_l24_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n593()</div><div class='add'>+    fun_l24_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n594()</div><div class='add'>+    fun_l24_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n595()</div><div class='add'>+    fun_l24_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n596()</div><div class='add'>+    fun_l24_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n597()</div><div class='add'>+    fun_l24_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n598()</div><div class='add'>+    fun_l24_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n599()</div><div class='add'>+    fun_l24_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n600()</div><div class='add'>+    fun_l24_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n601()</div><div class='add'>+    fun_l24_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n602()</div><div class='add'>+    fun_l24_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n603()</div><div class='add'>+    fun_l24_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n604()</div><div class='add'>+    fun_l24_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n605()</div><div class='add'>+    fun_l24_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n606()</div><div class='add'>+    fun_l24_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n607()</div><div class='add'>+    fun_l24_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n608()</div><div class='add'>+    fun_l24_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n609()</div><div class='add'>+    fun_l24_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n610()</div><div class='add'>+    fun_l24_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n611()</div><div class='add'>+    fun_l24_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n612()</div><div class='add'>+    fun_l24_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n613()</div><div class='add'>+    fun_l24_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n614()</div><div class='add'>+    fun_l24_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n615()</div><div class='add'>+    fun_l24_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n616()</div><div class='add'>+    fun_l24_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n617()</div><div class='add'>+    fun_l24_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n618()</div><div class='add'>+    fun_l24_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n619()</div><div class='add'>+    fun_l24_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n620()</div><div class='add'>+    fun_l24_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n621()</div><div class='add'>+    fun_l24_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n622()</div><div class='add'>+    fun_l24_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n623()</div><div class='add'>+    fun_l24_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n624()</div><div class='add'>+    fun_l24_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n625()</div><div class='add'>+    fun_l24_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n626()</div><div class='add'>+    fun_l24_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n627()</div><div class='add'>+    fun_l24_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n628()</div><div class='add'>+    fun_l24_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n629()</div><div class='add'>+    fun_l24_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n630()</div><div class='add'>+    fun_l24_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n631()</div><div class='add'>+    fun_l24_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n632()</div><div class='add'>+    fun_l24_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n633()</div><div class='add'>+    fun_l24_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n634()</div><div class='add'>+    fun_l24_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n635()</div><div class='add'>+    fun_l24_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n636()</div><div class='add'>+    fun_l24_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n637()</div><div class='add'>+    fun_l24_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n638()</div><div class='add'>+    fun_l24_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n639()</div><div class='add'>+    fun_l24_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n640()</div><div class='add'>+    fun_l24_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n641()</div><div class='add'>+    fun_l24_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n642()</div><div class='add'>+    fun_l24_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n643()</div><div class='add'>+    fun_l24_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n644()</div><div class='add'>+    fun_l24_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n645()</div><div class='add'>+    fun_l24_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n646()</div><div class='add'>+    fun_l24_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n647()</div><div class='add'>+    fun_l24_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n648()</div><div class='add'>+    fun_l24_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n649()</div><div class='add'>+    fun_l24_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n650()</div><div class='add'>+    fun_l24_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n651()</div><div class='add'>+    fun_l24_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n652()</div><div class='add'>+    fun_l24_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n653()</div><div class='add'>+    fun_l24_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n654()</div><div class='add'>+    fun_l24_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n655()</div><div class='add'>+    fun_l24_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n656()</div><div class='add'>+    fun_l24_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n657()</div><div class='add'>+    fun_l24_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n658()</div><div class='add'>+    fun_l24_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n659()</div><div class='add'>+    fun_l24_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n660()</div><div class='add'>+    fun_l24_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n661()</div><div class='add'>+    fun_l24_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n662()</div><div class='add'>+    fun_l24_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n663()</div><div class='add'>+    fun_l24_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n664()</div><div class='add'>+    fun_l24_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n665()</div><div class='add'>+    fun_l24_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n666()</div><div class='add'>+    fun_l24_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n667()</div><div class='add'>+    fun_l24_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n668()</div><div class='add'>+    fun_l24_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n669()</div><div class='add'>+    fun_l24_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n670()</div><div class='add'>+    fun_l24_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n671()</div><div class='add'>+    fun_l24_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n672()</div><div class='add'>+    fun_l24_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n673()</div><div class='add'>+    fun_l24_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n674()</div><div class='add'>+    fun_l24_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n675()</div><div class='add'>+    fun_l24_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n676()</div><div class='add'>+    fun_l24_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n677()</div><div class='add'>+    fun_l24_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n678()</div><div class='add'>+    fun_l24_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n679()</div><div class='add'>+    fun_l24_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n680()</div><div class='add'>+    fun_l24_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n681()</div><div class='add'>+    fun_l24_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n682()</div><div class='add'>+    fun_l24_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n683()</div><div class='add'>+    fun_l24_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n684()</div><div class='add'>+    fun_l24_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n685()</div><div class='add'>+    fun_l24_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n686()</div><div class='add'>+    fun_l24_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n687()</div><div class='add'>+    fun_l24_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n688()</div><div class='add'>+    fun_l24_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n689()</div><div class='add'>+    fun_l24_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n690()</div><div class='add'>+    fun_l24_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n691()</div><div class='add'>+    fun_l24_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n692()</div><div class='add'>+    fun_l24_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n693()</div><div class='add'>+    fun_l24_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n694()</div><div class='add'>+    fun_l24_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n695()</div><div class='add'>+    fun_l24_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n696()</div><div class='add'>+    fun_l24_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n697()</div><div class='add'>+    fun_l24_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n698()</div><div class='add'>+    fun_l24_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n699()</div><div class='add'>+    fun_l24_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n700()</div><div class='add'>+    fun_l24_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n701()</div><div class='add'>+    fun_l24_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n702()</div><div class='add'>+    fun_l24_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n703()</div><div class='add'>+    fun_l24_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n704()</div><div class='add'>+    fun_l24_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n705()</div><div class='add'>+    fun_l24_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n706()</div><div class='add'>+    fun_l24_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n707()</div><div class='add'>+    fun_l24_n150</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n708()</div><div class='add'>+    fun_l24_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n709()</div><div class='add'>+    fun_l24_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n710()</div><div class='add'>+    fun_l24_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n711()</div><div class='add'>+    fun_l24_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n712()</div><div class='add'>+    fun_l24_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n713()</div><div class='add'>+    fun_l24_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n714()</div><div class='add'>+    fun_l24_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n715()</div><div class='add'>+    fun_l24_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n716()</div><div class='add'>+    fun_l24_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n717()</div><div class='add'>+    fun_l24_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n718()</div><div class='add'>+    fun_l24_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n719()</div><div class='add'>+    fun_l24_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n720()</div><div class='add'>+    fun_l24_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n721()</div><div class='add'>+    fun_l24_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n722()</div><div class='add'>+    fun_l24_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n723()</div><div class='add'>+    fun_l24_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n724()</div><div class='add'>+    fun_l24_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n725()</div><div class='add'>+    fun_l24_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n726()</div><div class='add'>+    fun_l24_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n727()</div><div class='add'>+    fun_l24_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n728()</div><div class='add'>+    fun_l24_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n729()</div><div class='add'>+    fun_l24_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n730()</div><div class='add'>+    fun_l24_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n731()</div><div class='add'>+    fun_l24_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n732()</div><div class='add'>+    fun_l24_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n733()</div><div class='add'>+    fun_l24_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n734()</div><div class='add'>+    fun_l24_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n735()</div><div class='add'>+    fun_l24_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n736()</div><div class='add'>+    fun_l24_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n737()</div><div class='add'>+    fun_l24_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n738()</div><div class='add'>+    fun_l24_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n739()</div><div class='add'>+    fun_l24_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n740()</div><div class='add'>+    fun_l24_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n741()</div><div class='add'>+    fun_l24_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n742()</div><div class='add'>+    fun_l24_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n743()</div><div class='add'>+    fun_l24_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n744()</div><div class='add'>+    fun_l24_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n745()</div><div class='add'>+    fun_l24_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n746()</div><div class='add'>+    fun_l24_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n747()</div><div class='add'>+    fun_l24_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n748()</div><div class='add'>+    fun_l24_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n749()</div><div class='add'>+    fun_l24_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n750()</div><div class='add'>+    fun_l24_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n751()</div><div class='add'>+    fun_l24_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n752()</div><div class='add'>+    fun_l24_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n753()</div><div class='add'>+    fun_l24_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n754()</div><div class='add'>+    fun_l24_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n755()</div><div class='add'>+    fun_l24_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n756()</div><div class='add'>+    fun_l24_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n757()</div><div class='add'>+    fun_l24_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n758()</div><div class='add'>+    fun_l24_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n759()</div><div class='add'>+    fun_l24_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n760()</div><div class='add'>+    fun_l24_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n761()</div><div class='add'>+    fun_l24_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n762()</div><div class='add'>+    fun_l24_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n763()</div><div class='add'>+    fun_l24_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n764()</div><div class='add'>+    fun_l24_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n765()</div><div class='add'>+    fun_l24_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n766()</div><div class='add'>+    fun_l24_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n767()</div><div class='add'>+    fun_l24_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n768()</div><div class='add'>+    fun_l24_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n769()</div><div class='add'>+    fun_l24_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n770()</div><div class='add'>+    fun_l24_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n771()</div><div class='add'>+    fun_l24_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n772()</div><div class='add'>+    fun_l24_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n773()</div><div class='add'>+    fun_l24_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n774()</div><div class='add'>+    fun_l24_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n775()</div><div class='add'>+    fun_l24_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n776()</div><div class='add'>+    fun_l24_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n777()</div><div class='add'>+    fun_l24_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n778()</div><div class='add'>+    fun_l24_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n779()</div><div class='add'>+    fun_l24_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n780()</div><div class='add'>+    fun_l24_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n781()</div><div class='add'>+    fun_l24_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n782()</div><div class='add'>+    fun_l24_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n783()</div><div class='add'>+    fun_l24_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n784()</div><div class='add'>+    fun_l24_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n785()</div><div class='add'>+    fun_l24_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n786()</div><div class='add'>+    fun_l24_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n787()</div><div class='add'>+    fun_l24_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n788()</div><div class='add'>+    fun_l24_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n789()</div><div class='add'>+    fun_l24_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n790()</div><div class='add'>+    fun_l24_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n791()</div><div class='add'>+    fun_l24_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n792()</div><div class='add'>+    fun_l24_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n793()</div><div class='add'>+    fun_l24_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n794()</div><div class='add'>+    fun_l24_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n795()</div><div class='add'>+    fun_l24_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n796()</div><div class='add'>+    fun_l24_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n797()</div><div class='add'>+    fun_l24_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n798()</div><div class='add'>+    fun_l24_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n799()</div><div class='add'>+    fun_l24_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n800()</div><div class='add'>+    fun_l24_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n801()</div><div class='add'>+    fun_l24_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n802()</div><div class='add'>+    fun_l24_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n803()</div><div class='add'>+    fun_l24_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n804()</div><div class='add'>+    fun_l24_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n805()</div><div class='add'>+    fun_l24_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n806()</div><div class='add'>+    fun_l24_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n807()</div><div class='add'>+    fun_l24_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n808()</div><div class='add'>+    fun_l24_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n809()</div><div class='add'>+    fun_l24_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n810()</div><div class='add'>+    fun_l24_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n811()</div><div class='add'>+    fun_l24_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n812()</div><div class='add'>+    fun_l24_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n813()</div><div class='add'>+    fun_l24_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n814()</div><div class='add'>+    fun_l24_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n815()</div><div class='add'>+    fun_l24_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n816()</div><div class='add'>+    fun_l24_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n817()</div><div class='add'>+    fun_l24_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n818()</div><div class='add'>+    fun_l24_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n819()</div><div class='add'>+    fun_l24_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n820()</div><div class='add'>+    fun_l24_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n821()</div><div class='add'>+    fun_l24_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n822()</div><div class='add'>+    fun_l24_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n823()</div><div class='add'>+    fun_l24_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n824()</div><div class='add'>+    fun_l24_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n825()</div><div class='add'>+    fun_l24_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n826()</div><div class='add'>+    fun_l24_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n827()</div><div class='add'>+    fun_l24_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n828()</div><div class='add'>+    fun_l24_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n829()</div><div class='add'>+    fun_l24_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n830()</div><div class='add'>+    fun_l24_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n831()</div><div class='add'>+    fun_l24_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n832()</div><div class='add'>+    fun_l24_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n833()</div><div class='add'>+    fun_l24_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n834()</div><div class='add'>+    fun_l24_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n835()</div><div class='add'>+    fun_l24_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n836()</div><div class='add'>+    fun_l24_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n837()</div><div class='add'>+    fun_l24_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n838()</div><div class='add'>+    fun_l24_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n839()</div><div class='add'>+    fun_l24_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n840()</div><div class='add'>+    fun_l24_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n841()</div><div class='add'>+    fun_l24_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n842()</div><div class='add'>+    fun_l24_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n843()</div><div class='add'>+    fun_l24_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n844()</div><div class='add'>+    fun_l24_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n845()</div><div class='add'>+    fun_l24_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n846()</div><div class='add'>+    fun_l24_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n847()</div><div class='add'>+    fun_l24_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n848()</div><div class='add'>+    fun_l24_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n849()</div><div class='add'>+    fun_l24_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n850()</div><div class='add'>+    fun_l24_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n851()</div><div class='add'>+    fun_l24_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n852()</div><div class='add'>+    fun_l24_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n853()</div><div class='add'>+    fun_l24_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n854()</div><div class='add'>+    fun_l24_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n855()</div><div class='add'>+    fun_l24_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n856()</div><div class='add'>+    fun_l24_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n857()</div><div class='add'>+    fun_l24_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n858()</div><div class='add'>+    fun_l24_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n859()</div><div class='add'>+    fun_l24_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n860()</div><div class='add'>+    fun_l24_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n861()</div><div class='add'>+    fun_l24_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n862()</div><div class='add'>+    fun_l24_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n863()</div><div class='add'>+    fun_l24_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n864()</div><div class='add'>+    fun_l24_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n865()</div><div class='add'>+    fun_l24_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n866()</div><div class='add'>+    fun_l24_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n867()</div><div class='add'>+    fun_l24_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n868()</div><div class='add'>+    fun_l24_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n869()</div><div class='add'>+    fun_l24_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n870()</div><div class='add'>+    fun_l24_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n871()</div><div class='add'>+    fun_l24_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n872()</div><div class='add'>+    fun_l24_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n873()</div><div class='add'>+    fun_l24_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n874()</div><div class='add'>+    fun_l24_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n875()</div><div class='add'>+    fun_l24_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n876()</div><div class='add'>+    fun_l24_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n877()</div><div class='add'>+    fun_l24_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n878()</div><div class='add'>+    fun_l24_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n879()</div><div class='add'>+    fun_l24_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n880()</div><div class='add'>+    fun_l24_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n881()</div><div class='add'>+    fun_l24_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n882()</div><div class='add'>+    fun_l24_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n883()</div><div class='add'>+    fun_l24_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n884()</div><div class='add'>+    fun_l24_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n885()</div><div class='add'>+    fun_l24_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n886()</div><div class='add'>+    fun_l24_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n887()</div><div class='add'>+    fun_l24_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n888()</div><div class='add'>+    fun_l24_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n889()</div><div class='add'>+    fun_l24_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n890()</div><div class='add'>+    fun_l24_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n891()</div><div class='add'>+    fun_l24_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n892()</div><div class='add'>+    fun_l24_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n893()</div><div class='add'>+    fun_l24_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n894()</div><div class='add'>+    fun_l24_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n895()</div><div class='add'>+    fun_l24_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n896()</div><div class='add'>+    fun_l24_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n897()</div><div class='add'>+    fun_l24_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n898()</div><div class='add'>+    fun_l24_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n899()</div><div class='add'>+    fun_l24_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n900()</div><div class='add'>+    fun_l24_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n901()</div><div class='add'>+    fun_l24_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n902()</div><div class='add'>+    fun_l24_n713</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n903()</div><div class='add'>+    fun_l24_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n904()</div><div class='add'>+    fun_l24_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n905()</div><div class='add'>+    fun_l24_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n906()</div><div class='add'>+    fun_l24_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n907()</div><div class='add'>+    fun_l24_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n908()</div><div class='add'>+    fun_l24_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n909()</div><div class='add'>+    fun_l24_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n910()</div><div class='add'>+    fun_l24_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n911()</div><div class='add'>+    fun_l24_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n912()</div><div class='add'>+    fun_l24_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n913()</div><div class='add'>+    fun_l24_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n914()</div><div class='add'>+    fun_l24_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n915()</div><div class='add'>+    fun_l24_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n916()</div><div class='add'>+    fun_l24_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n917()</div><div class='add'>+    fun_l24_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n918()</div><div class='add'>+    fun_l24_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n919()</div><div class='add'>+    fun_l24_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n920()</div><div class='add'>+    fun_l24_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n921()</div><div class='add'>+    fun_l24_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n922()</div><div class='add'>+    fun_l24_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n923()</div><div class='add'>+    fun_l24_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n924()</div><div class='add'>+    fun_l24_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n925()</div><div class='add'>+    fun_l24_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n926()</div><div class='add'>+    fun_l24_n661</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n927()</div><div class='add'>+    fun_l24_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n928()</div><div class='add'>+    fun_l24_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n929()</div><div class='add'>+    fun_l24_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n930()</div><div class='add'>+    fun_l24_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n931()</div><div class='add'>+    fun_l24_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n932()</div><div class='add'>+    fun_l24_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n933()</div><div class='add'>+    fun_l24_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n934()</div><div class='add'>+    fun_l24_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n935()</div><div class='add'>+    fun_l24_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n936()</div><div class='add'>+    fun_l24_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n937()</div><div class='add'>+    fun_l24_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n938()</div><div class='add'>+    fun_l24_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n939()</div><div class='add'>+    fun_l24_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n940()</div><div class='add'>+    fun_l24_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n941()</div><div class='add'>+    fun_l24_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n942()</div><div class='add'>+    fun_l24_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n943()</div><div class='add'>+    fun_l24_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n944()</div><div class='add'>+    fun_l24_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n945()</div><div class='add'>+    fun_l24_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n946()</div><div class='add'>+    fun_l24_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n947()</div><div class='add'>+    fun_l24_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n948()</div><div class='add'>+    fun_l24_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n949()</div><div class='add'>+    fun_l24_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n950()</div><div class='add'>+    fun_l24_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n951()</div><div class='add'>+    fun_l24_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n952()</div><div class='add'>+    fun_l24_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n953()</div><div class='add'>+    fun_l24_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n954()</div><div class='add'>+    fun_l24_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n955()</div><div class='add'>+    fun_l24_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n956()</div><div class='add'>+    fun_l24_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n957()</div><div class='add'>+    fun_l24_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n958()</div><div class='add'>+    fun_l24_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n959()</div><div class='add'>+    fun_l24_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n960()</div><div class='add'>+    fun_l24_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n961()</div><div class='add'>+    fun_l24_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n962()</div><div class='add'>+    fun_l24_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n963()</div><div class='add'>+    fun_l24_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n964()</div><div class='add'>+    fun_l24_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n965()</div><div class='add'>+    fun_l24_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n966()</div><div class='add'>+    fun_l24_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n967()</div><div class='add'>+    fun_l24_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n968()</div><div class='add'>+    fun_l24_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n969()</div><div class='add'>+    fun_l24_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n970()</div><div class='add'>+    fun_l24_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n971()</div><div class='add'>+    fun_l24_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n972()</div><div class='add'>+    fun_l24_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n973()</div><div class='add'>+    fun_l24_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n974()</div><div class='add'>+    fun_l24_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n975()</div><div class='add'>+    fun_l24_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n976()</div><div class='add'>+    fun_l24_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n977()</div><div class='add'>+    fun_l24_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n978()</div><div class='add'>+    fun_l24_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n979()</div><div class='add'>+    fun_l24_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n980()</div><div class='add'>+    fun_l24_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n981()</div><div class='add'>+    fun_l24_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n982()</div><div class='add'>+    fun_l24_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n983()</div><div class='add'>+    fun_l24_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n984()</div><div class='add'>+    fun_l24_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n985()</div><div class='add'>+    fun_l24_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n986()</div><div class='add'>+    fun_l24_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n987()</div><div class='add'>+    fun_l24_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n988()</div><div class='add'>+    fun_l24_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n989()</div><div class='add'>+    fun_l24_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n990()</div><div class='add'>+    fun_l24_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n991()</div><div class='add'>+    fun_l24_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n992()</div><div class='add'>+    fun_l24_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n993()</div><div class='add'>+    fun_l24_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n994()</div><div class='add'>+    fun_l24_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n995()</div><div class='add'>+    fun_l24_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n996()</div><div class='add'>+    fun_l24_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n997()</div><div class='add'>+    fun_l24_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n998()</div><div class='add'>+    fun_l24_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l23_n999()</div><div class='add'>+    fun_l24_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n0()</div><div class='add'>+    fun_l25_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n1()</div><div class='add'>+    fun_l25_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n2()</div><div class='add'>+    fun_l25_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n3()</div><div class='add'>+    fun_l25_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n4()</div><div class='add'>+    fun_l25_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n5()</div><div class='add'>+    fun_l25_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n6()</div><div class='add'>+    fun_l25_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n7()</div><div class='add'>+    fun_l25_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n8()</div><div class='add'>+    fun_l25_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n9()</div><div class='add'>+    fun_l25_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n10()</div><div class='add'>+    fun_l25_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n11()</div><div class='add'>+    fun_l25_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n12()</div><div class='add'>+    fun_l25_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n13()</div><div class='add'>+    fun_l25_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n14()</div><div class='add'>+    fun_l25_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n15()</div><div class='add'>+    fun_l25_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n16()</div><div class='add'>+    fun_l25_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n17()</div><div class='add'>+    fun_l25_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n18()</div><div class='add'>+    fun_l25_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n19()</div><div class='add'>+    fun_l25_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n20()</div><div class='add'>+    fun_l25_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n21()</div><div class='add'>+    fun_l25_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n22()</div><div class='add'>+    fun_l25_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n23()</div><div class='add'>+    fun_l25_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n24()</div><div class='add'>+    fun_l25_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n25()</div><div class='add'>+    fun_l25_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n26()</div><div class='add'>+    fun_l25_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n27()</div><div class='add'>+    fun_l25_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n28()</div><div class='add'>+    fun_l25_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n29()</div><div class='add'>+    fun_l25_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n30()</div><div class='add'>+    fun_l25_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n31()</div><div class='add'>+    fun_l25_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n32()</div><div class='add'>+    fun_l25_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n33()</div><div class='add'>+    fun_l25_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n34()</div><div class='add'>+    fun_l25_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n35()</div><div class='add'>+    fun_l25_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n36()</div><div class='add'>+    fun_l25_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n37()</div><div class='add'>+    fun_l25_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n38()</div><div class='add'>+    fun_l25_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n39()</div><div class='add'>+    fun_l25_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n40()</div><div class='add'>+    fun_l25_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n41()</div><div class='add'>+    fun_l25_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n42()</div><div class='add'>+    fun_l25_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n43()</div><div class='add'>+    fun_l25_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n44()</div><div class='add'>+    fun_l25_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n45()</div><div class='add'>+    fun_l25_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n46()</div><div class='add'>+    fun_l25_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n47()</div><div class='add'>+    fun_l25_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n48()</div><div class='add'>+    fun_l25_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n49()</div><div class='add'>+    fun_l25_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n50()</div><div class='add'>+    fun_l25_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n51()</div><div class='add'>+    fun_l25_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n52()</div><div class='add'>+    fun_l25_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n53()</div><div class='add'>+    fun_l25_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n54()</div><div class='add'>+    fun_l25_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n55()</div><div class='add'>+    fun_l25_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n56()</div><div class='add'>+    fun_l25_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n57()</div><div class='add'>+    fun_l25_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n58()</div><div class='add'>+    fun_l25_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n59()</div><div class='add'>+    fun_l25_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n60()</div><div class='add'>+    fun_l25_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n61()</div><div class='add'>+    fun_l25_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n62()</div><div class='add'>+    fun_l25_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n63()</div><div class='add'>+    fun_l25_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n64()</div><div class='add'>+    fun_l25_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n65()</div><div class='add'>+    fun_l25_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n66()</div><div class='add'>+    fun_l25_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n67()</div><div class='add'>+    fun_l25_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n68()</div><div class='add'>+    fun_l25_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n69()</div><div class='add'>+    fun_l25_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n70()</div><div class='add'>+    fun_l25_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n71()</div><div class='add'>+    fun_l25_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n72()</div><div class='add'>+    fun_l25_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n73()</div><div class='add'>+    fun_l25_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n74()</div><div class='add'>+    fun_l25_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n75()</div><div class='add'>+    fun_l25_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n76()</div><div class='add'>+    fun_l25_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n77()</div><div class='add'>+    fun_l25_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n78()</div><div class='add'>+    fun_l25_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n79()</div><div class='add'>+    fun_l25_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n80()</div><div class='add'>+    fun_l25_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n81()</div><div class='add'>+    fun_l25_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n82()</div><div class='add'>+    fun_l25_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n83()</div><div class='add'>+    fun_l25_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n84()</div><div class='add'>+    fun_l25_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n85()</div><div class='add'>+    fun_l25_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n86()</div><div class='add'>+    fun_l25_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n87()</div><div class='add'>+    fun_l25_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n88()</div><div class='add'>+    fun_l25_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n89()</div><div class='add'>+    fun_l25_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n90()</div><div class='add'>+    fun_l25_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n91()</div><div class='add'>+    fun_l25_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n92()</div><div class='add'>+    fun_l25_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n93()</div><div class='add'>+    fun_l25_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n94()</div><div class='add'>+    fun_l25_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n95()</div><div class='add'>+    fun_l25_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n96()</div><div class='add'>+    fun_l25_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n97()</div><div class='add'>+    fun_l25_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n98()</div><div class='add'>+    fun_l25_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n99()</div><div class='add'>+    fun_l25_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n100()</div><div class='add'>+    fun_l25_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n101()</div><div class='add'>+    fun_l25_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n102()</div><div class='add'>+    fun_l25_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n103()</div><div class='add'>+    fun_l25_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n104()</div><div class='add'>+    fun_l25_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n105()</div><div class='add'>+    fun_l25_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n106()</div><div class='add'>+    fun_l25_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n107()</div><div class='add'>+    fun_l25_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n108()</div><div class='add'>+    fun_l25_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n109()</div><div class='add'>+    fun_l25_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n110()</div><div class='add'>+    fun_l25_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n111()</div><div class='add'>+    fun_l25_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n112()</div><div class='add'>+    fun_l25_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n113()</div><div class='add'>+    fun_l25_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n114()</div><div class='add'>+    fun_l25_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n115()</div><div class='add'>+    fun_l25_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n116()</div><div class='add'>+    fun_l25_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n117()</div><div class='add'>+    fun_l25_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n118()</div><div class='add'>+    fun_l25_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n119()</div><div class='add'>+    fun_l25_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n120()</div><div class='add'>+    fun_l25_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n121()</div><div class='add'>+    fun_l25_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n122()</div><div class='add'>+    fun_l25_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n123()</div><div class='add'>+    fun_l25_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n124()</div><div class='add'>+    fun_l25_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n125()</div><div class='add'>+    fun_l25_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n126()</div><div class='add'>+    fun_l25_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n127()</div><div class='add'>+    fun_l25_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n128()</div><div class='add'>+    fun_l25_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n129()</div><div class='add'>+    fun_l25_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n130()</div><div class='add'>+    fun_l25_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n131()</div><div class='add'>+    fun_l25_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n132()</div><div class='add'>+    fun_l25_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n133()</div><div class='add'>+    fun_l25_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n134()</div><div class='add'>+    fun_l25_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n135()</div><div class='add'>+    fun_l25_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n136()</div><div class='add'>+    fun_l25_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n137()</div><div class='add'>+    fun_l25_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n138()</div><div class='add'>+    fun_l25_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n139()</div><div class='add'>+    fun_l25_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n140()</div><div class='add'>+    fun_l25_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n141()</div><div class='add'>+    fun_l25_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n142()</div><div class='add'>+    fun_l25_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n143()</div><div class='add'>+    fun_l25_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n144()</div><div class='add'>+    fun_l25_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n145()</div><div class='add'>+    fun_l25_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n146()</div><div class='add'>+    fun_l25_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n147()</div><div class='add'>+    fun_l25_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n148()</div><div class='add'>+    fun_l25_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n149()</div><div class='add'>+    fun_l25_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n150()</div><div class='add'>+    fun_l25_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n151()</div><div class='add'>+    fun_l25_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n152()</div><div class='add'>+    fun_l25_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n153()</div><div class='add'>+    fun_l25_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n154()</div><div class='add'>+    fun_l25_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n155()</div><div class='add'>+    fun_l25_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n156()</div><div class='add'>+    fun_l25_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n157()</div><div class='add'>+    fun_l25_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n158()</div><div class='add'>+    fun_l25_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n159()</div><div class='add'>+    fun_l25_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n160()</div><div class='add'>+    fun_l25_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n161()</div><div class='add'>+    fun_l25_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n162()</div><div class='add'>+    fun_l25_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n163()</div><div class='add'>+    fun_l25_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n164()</div><div class='add'>+    fun_l25_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n165()</div><div class='add'>+    fun_l25_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n166()</div><div class='add'>+    fun_l25_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n167()</div><div class='add'>+    fun_l25_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n168()</div><div class='add'>+    fun_l25_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n169()</div><div class='add'>+    fun_l25_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n170()</div><div class='add'>+    fun_l25_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n171()</div><div class='add'>+    fun_l25_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n172()</div><div class='add'>+    fun_l25_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n173()</div><div class='add'>+    fun_l25_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n174()</div><div class='add'>+    fun_l25_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n175()</div><div class='add'>+    fun_l25_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n176()</div><div class='add'>+    fun_l25_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n177()</div><div class='add'>+    fun_l25_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n178()</div><div class='add'>+    fun_l25_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n179()</div><div class='add'>+    fun_l25_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n180()</div><div class='add'>+    fun_l25_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n181()</div><div class='add'>+    fun_l25_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n182()</div><div class='add'>+    fun_l25_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n183()</div><div class='add'>+    fun_l25_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n184()</div><div class='add'>+    fun_l25_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n185()</div><div class='add'>+    fun_l25_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n186()</div><div class='add'>+    fun_l25_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n187()</div><div class='add'>+    fun_l25_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n188()</div><div class='add'>+    fun_l25_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n189()</div><div class='add'>+    fun_l25_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n190()</div><div class='add'>+    fun_l25_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n191()</div><div class='add'>+    fun_l25_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n192()</div><div class='add'>+    fun_l25_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n193()</div><div class='add'>+    fun_l25_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n194()</div><div class='add'>+    fun_l25_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n195()</div><div class='add'>+    fun_l25_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n196()</div><div class='add'>+    fun_l25_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n197()</div><div class='add'>+    fun_l25_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n198()</div><div class='add'>+    fun_l25_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n199()</div><div class='add'>+    fun_l25_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n200()</div><div class='add'>+    fun_l25_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n201()</div><div class='add'>+    fun_l25_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n202()</div><div class='add'>+    fun_l25_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n203()</div><div class='add'>+    fun_l25_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n204()</div><div class='add'>+    fun_l25_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n205()</div><div class='add'>+    fun_l25_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n206()</div><div class='add'>+    fun_l25_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n207()</div><div class='add'>+    fun_l25_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n208()</div><div class='add'>+    fun_l25_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n209()</div><div class='add'>+    fun_l25_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n210()</div><div class='add'>+    fun_l25_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n211()</div><div class='add'>+    fun_l25_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n212()</div><div class='add'>+    fun_l25_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n213()</div><div class='add'>+    fun_l25_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n214()</div><div class='add'>+    fun_l25_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n215()</div><div class='add'>+    fun_l25_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n216()</div><div class='add'>+    fun_l25_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n217()</div><div class='add'>+    fun_l25_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n218()</div><div class='add'>+    fun_l25_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n219()</div><div class='add'>+    fun_l25_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n220()</div><div class='add'>+    fun_l25_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n221()</div><div class='add'>+    fun_l25_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n222()</div><div class='add'>+    fun_l25_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n223()</div><div class='add'>+    fun_l25_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n224()</div><div class='add'>+    fun_l25_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n225()</div><div class='add'>+    fun_l25_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n226()</div><div class='add'>+    fun_l25_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n227()</div><div class='add'>+    fun_l25_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n228()</div><div class='add'>+    fun_l25_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n229()</div><div class='add'>+    fun_l25_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n230()</div><div class='add'>+    fun_l25_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n231()</div><div class='add'>+    fun_l25_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n232()</div><div class='add'>+    fun_l25_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n233()</div><div class='add'>+    fun_l25_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n234()</div><div class='add'>+    fun_l25_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n235()</div><div class='add'>+    fun_l25_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n236()</div><div class='add'>+    fun_l25_n829</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n237()</div><div class='add'>+    fun_l25_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n238()</div><div class='add'>+    fun_l25_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n239()</div><div class='add'>+    fun_l25_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n240()</div><div class='add'>+    fun_l25_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n241()</div><div class='add'>+    fun_l25_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n242()</div><div class='add'>+    fun_l25_n922</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n243()</div><div class='add'>+    fun_l25_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n244()</div><div class='add'>+    fun_l25_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n245()</div><div class='add'>+    fun_l25_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n246()</div><div class='add'>+    fun_l25_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n247()</div><div class='add'>+    fun_l25_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n248()</div><div class='add'>+    fun_l25_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n249()</div><div class='add'>+    fun_l25_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n250()</div><div class='add'>+    fun_l25_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n251()</div><div class='add'>+    fun_l25_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n252()</div><div class='add'>+    fun_l25_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n253()</div><div class='add'>+    fun_l25_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n254()</div><div class='add'>+    fun_l25_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n255()</div><div class='add'>+    fun_l25_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n256()</div><div class='add'>+    fun_l25_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n257()</div><div class='add'>+    fun_l25_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n258()</div><div class='add'>+    fun_l25_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n259()</div><div class='add'>+    fun_l25_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n260()</div><div class='add'>+    fun_l25_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n261()</div><div class='add'>+    fun_l25_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n262()</div><div class='add'>+    fun_l25_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n263()</div><div class='add'>+    fun_l25_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n264()</div><div class='add'>+    fun_l25_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n265()</div><div class='add'>+    fun_l25_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n266()</div><div class='add'>+    fun_l25_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n267()</div><div class='add'>+    fun_l25_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n268()</div><div class='add'>+    fun_l25_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n269()</div><div class='add'>+    fun_l25_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n270()</div><div class='add'>+    fun_l25_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n271()</div><div class='add'>+    fun_l25_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n272()</div><div class='add'>+    fun_l25_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n273()</div><div class='add'>+    fun_l25_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n274()</div><div class='add'>+    fun_l25_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n275()</div><div class='add'>+    fun_l25_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n276()</div><div class='add'>+    fun_l25_n628</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n277()</div><div class='add'>+    fun_l25_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n278()</div><div class='add'>+    fun_l25_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n279()</div><div class='add'>+    fun_l25_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n280()</div><div class='add'>+    fun_l25_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n281()</div><div class='add'>+    fun_l25_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n282()</div><div class='add'>+    fun_l25_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n283()</div><div class='add'>+    fun_l25_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n284()</div><div class='add'>+    fun_l25_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n285()</div><div class='add'>+    fun_l25_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n286()</div><div class='add'>+    fun_l25_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n287()</div><div class='add'>+    fun_l25_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n288()</div><div class='add'>+    fun_l25_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n289()</div><div class='add'>+    fun_l25_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n290()</div><div class='add'>+    fun_l25_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n291()</div><div class='add'>+    fun_l25_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n292()</div><div class='add'>+    fun_l25_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n293()</div><div class='add'>+    fun_l25_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n294()</div><div class='add'>+    fun_l25_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n295()</div><div class='add'>+    fun_l25_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n296()</div><div class='add'>+    fun_l25_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n297()</div><div class='add'>+    fun_l25_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n298()</div><div class='add'>+    fun_l25_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n299()</div><div class='add'>+    fun_l25_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n300()</div><div class='add'>+    fun_l25_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n301()</div><div class='add'>+    fun_l25_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n302()</div><div class='add'>+    fun_l25_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n303()</div><div class='add'>+    fun_l25_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n304()</div><div class='add'>+    fun_l25_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n305()</div><div class='add'>+    fun_l25_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n306()</div><div class='add'>+    fun_l25_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n307()</div><div class='add'>+    fun_l25_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n308()</div><div class='add'>+    fun_l25_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n309()</div><div class='add'>+    fun_l25_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n310()</div><div class='add'>+    fun_l25_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n311()</div><div class='add'>+    fun_l25_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n312()</div><div class='add'>+    fun_l25_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n313()</div><div class='add'>+    fun_l25_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n314()</div><div class='add'>+    fun_l25_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n315()</div><div class='add'>+    fun_l25_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n316()</div><div class='add'>+    fun_l25_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n317()</div><div class='add'>+    fun_l25_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n318()</div><div class='add'>+    fun_l25_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n319()</div><div class='add'>+    fun_l25_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n320()</div><div class='add'>+    fun_l25_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n321()</div><div class='add'>+    fun_l25_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n322()</div><div class='add'>+    fun_l25_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n323()</div><div class='add'>+    fun_l25_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n324()</div><div class='add'>+    fun_l25_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n325()</div><div class='add'>+    fun_l25_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n326()</div><div class='add'>+    fun_l25_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n327()</div><div class='add'>+    fun_l25_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n328()</div><div class='add'>+    fun_l25_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n329()</div><div class='add'>+    fun_l25_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n330()</div><div class='add'>+    fun_l25_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n331()</div><div class='add'>+    fun_l25_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n332()</div><div class='add'>+    fun_l25_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n333()</div><div class='add'>+    fun_l25_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n334()</div><div class='add'>+    fun_l25_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n335()</div><div class='add'>+    fun_l25_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n336()</div><div class='add'>+    fun_l25_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n337()</div><div class='add'>+    fun_l25_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n338()</div><div class='add'>+    fun_l25_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n339()</div><div class='add'>+    fun_l25_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n340()</div><div class='add'>+    fun_l25_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n341()</div><div class='add'>+    fun_l25_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n342()</div><div class='add'>+    fun_l25_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n343()</div><div class='add'>+    fun_l25_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n344()</div><div class='add'>+    fun_l25_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n345()</div><div class='add'>+    fun_l25_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n346()</div><div class='add'>+    fun_l25_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n347()</div><div class='add'>+    fun_l25_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n348()</div><div class='add'>+    fun_l25_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n349()</div><div class='add'>+    fun_l25_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n350()</div><div class='add'>+    fun_l25_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n351()</div><div class='add'>+    fun_l25_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n352()</div><div class='add'>+    fun_l25_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n353()</div><div class='add'>+    fun_l25_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n354()</div><div class='add'>+    fun_l25_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n355()</div><div class='add'>+    fun_l25_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n356()</div><div class='add'>+    fun_l25_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n357()</div><div class='add'>+    fun_l25_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n358()</div><div class='add'>+    fun_l25_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n359()</div><div class='add'>+    fun_l25_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n360()</div><div class='add'>+    fun_l25_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n361()</div><div class='add'>+    fun_l25_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n362()</div><div class='add'>+    fun_l25_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n363()</div><div class='add'>+    fun_l25_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n364()</div><div class='add'>+    fun_l25_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n365()</div><div class='add'>+    fun_l25_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n366()</div><div class='add'>+    fun_l25_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n367()</div><div class='add'>+    fun_l25_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n368()</div><div class='add'>+    fun_l25_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n369()</div><div class='add'>+    fun_l25_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n370()</div><div class='add'>+    fun_l25_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n371()</div><div class='add'>+    fun_l25_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n372()</div><div class='add'>+    fun_l25_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n373()</div><div class='add'>+    fun_l25_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n374()</div><div class='add'>+    fun_l25_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n375()</div><div class='add'>+    fun_l25_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n376()</div><div class='add'>+    fun_l25_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n377()</div><div class='add'>+    fun_l25_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n378()</div><div class='add'>+    fun_l25_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n379()</div><div class='add'>+    fun_l25_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n380()</div><div class='add'>+    fun_l25_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n381()</div><div class='add'>+    fun_l25_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n382()</div><div class='add'>+    fun_l25_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n383()</div><div class='add'>+    fun_l25_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n384()</div><div class='add'>+    fun_l25_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n385()</div><div class='add'>+    fun_l25_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n386()</div><div class='add'>+    fun_l25_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n387()</div><div class='add'>+    fun_l25_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n388()</div><div class='add'>+    fun_l25_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n389()</div><div class='add'>+    fun_l25_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n390()</div><div class='add'>+    fun_l25_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n391()</div><div class='add'>+    fun_l25_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n392()</div><div class='add'>+    fun_l25_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n393()</div><div class='add'>+    fun_l25_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n394()</div><div class='add'>+    fun_l25_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n395()</div><div class='add'>+    fun_l25_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n396()</div><div class='add'>+    fun_l25_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n397()</div><div class='add'>+    fun_l25_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n398()</div><div class='add'>+    fun_l25_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n399()</div><div class='add'>+    fun_l25_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n400()</div><div class='add'>+    fun_l25_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n401()</div><div class='add'>+    fun_l25_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n402()</div><div class='add'>+    fun_l25_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n403()</div><div class='add'>+    fun_l25_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n404()</div><div class='add'>+    fun_l25_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n405()</div><div class='add'>+    fun_l25_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n406()</div><div class='add'>+    fun_l25_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n407()</div><div class='add'>+    fun_l25_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n408()</div><div class='add'>+    fun_l25_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n409()</div><div class='add'>+    fun_l25_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n410()</div><div class='add'>+    fun_l25_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n411()</div><div class='add'>+    fun_l25_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n412()</div><div class='add'>+    fun_l25_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n413()</div><div class='add'>+    fun_l25_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n414()</div><div class='add'>+    fun_l25_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n415()</div><div class='add'>+    fun_l25_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n416()</div><div class='add'>+    fun_l25_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n417()</div><div class='add'>+    fun_l25_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n418()</div><div class='add'>+    fun_l25_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n419()</div><div class='add'>+    fun_l25_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n420()</div><div class='add'>+    fun_l25_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n421()</div><div class='add'>+    fun_l25_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n422()</div><div class='add'>+    fun_l25_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n423()</div><div class='add'>+    fun_l25_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n424()</div><div class='add'>+    fun_l25_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n425()</div><div class='add'>+    fun_l25_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n426()</div><div class='add'>+    fun_l25_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n427()</div><div class='add'>+    fun_l25_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n428()</div><div class='add'>+    fun_l25_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n429()</div><div class='add'>+    fun_l25_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n430()</div><div class='add'>+    fun_l25_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n431()</div><div class='add'>+    fun_l25_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n432()</div><div class='add'>+    fun_l25_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n433()</div><div class='add'>+    fun_l25_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n434()</div><div class='add'>+    fun_l25_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n435()</div><div class='add'>+    fun_l25_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n436()</div><div class='add'>+    fun_l25_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n437()</div><div class='add'>+    fun_l25_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n438()</div><div class='add'>+    fun_l25_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n439()</div><div class='add'>+    fun_l25_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n440()</div><div class='add'>+    fun_l25_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n441()</div><div class='add'>+    fun_l25_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n442()</div><div class='add'>+    fun_l25_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n443()</div><div class='add'>+    fun_l25_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n444()</div><div class='add'>+    fun_l25_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n445()</div><div class='add'>+    fun_l25_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n446()</div><div class='add'>+    fun_l25_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n447()</div><div class='add'>+    fun_l25_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n448()</div><div class='add'>+    fun_l25_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n449()</div><div class='add'>+    fun_l25_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n450()</div><div class='add'>+    fun_l25_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n451()</div><div class='add'>+    fun_l25_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n452()</div><div class='add'>+    fun_l25_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n453()</div><div class='add'>+    fun_l25_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n454()</div><div class='add'>+    fun_l25_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n455()</div><div class='add'>+    fun_l25_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n456()</div><div class='add'>+    fun_l25_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n457()</div><div class='add'>+    fun_l25_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n458()</div><div class='add'>+    fun_l25_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n459()</div><div class='add'>+    fun_l25_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n460()</div><div class='add'>+    fun_l25_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n461()</div><div class='add'>+    fun_l25_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n462()</div><div class='add'>+    fun_l25_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n463()</div><div class='add'>+    fun_l25_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n464()</div><div class='add'>+    fun_l25_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n465()</div><div class='add'>+    fun_l25_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n466()</div><div class='add'>+    fun_l25_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n467()</div><div class='add'>+    fun_l25_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n468()</div><div class='add'>+    fun_l25_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n469()</div><div class='add'>+    fun_l25_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n470()</div><div class='add'>+    fun_l25_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n471()</div><div class='add'>+    fun_l25_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n472()</div><div class='add'>+    fun_l25_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n473()</div><div class='add'>+    fun_l25_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n474()</div><div class='add'>+    fun_l25_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n475()</div><div class='add'>+    fun_l25_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n476()</div><div class='add'>+    fun_l25_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n477()</div><div class='add'>+    fun_l25_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n478()</div><div class='add'>+    fun_l25_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n479()</div><div class='add'>+    fun_l25_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n480()</div><div class='add'>+    fun_l25_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n481()</div><div class='add'>+    fun_l25_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n482()</div><div class='add'>+    fun_l25_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n483()</div><div class='add'>+    fun_l25_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n484()</div><div class='add'>+    fun_l25_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n485()</div><div class='add'>+    fun_l25_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n486()</div><div class='add'>+    fun_l25_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n487()</div><div class='add'>+    fun_l25_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n488()</div><div class='add'>+    fun_l25_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n489()</div><div class='add'>+    fun_l25_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n490()</div><div class='add'>+    fun_l25_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n491()</div><div class='add'>+    fun_l25_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n492()</div><div class='add'>+    fun_l25_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n493()</div><div class='add'>+    fun_l25_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n494()</div><div class='add'>+    fun_l25_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n495()</div><div class='add'>+    fun_l25_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n496()</div><div class='add'>+    fun_l25_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n497()</div><div class='add'>+    fun_l25_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n498()</div><div class='add'>+    fun_l25_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n499()</div><div class='add'>+    fun_l25_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n500()</div><div class='add'>+    fun_l25_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n501()</div><div class='add'>+    fun_l25_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n502()</div><div class='add'>+    fun_l25_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n503()</div><div class='add'>+    fun_l25_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n504()</div><div class='add'>+    fun_l25_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n505()</div><div class='add'>+    fun_l25_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n506()</div><div class='add'>+    fun_l25_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n507()</div><div class='add'>+    fun_l25_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n508()</div><div class='add'>+    fun_l25_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n509()</div><div class='add'>+    fun_l25_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n510()</div><div class='add'>+    fun_l25_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n511()</div><div class='add'>+    fun_l25_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n512()</div><div class='add'>+    fun_l25_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n513()</div><div class='add'>+    fun_l25_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n514()</div><div class='add'>+    fun_l25_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n515()</div><div class='add'>+    fun_l25_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n516()</div><div class='add'>+    fun_l25_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n517()</div><div class='add'>+    fun_l25_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n518()</div><div class='add'>+    fun_l25_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n519()</div><div class='add'>+    fun_l25_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n520()</div><div class='add'>+    fun_l25_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n521()</div><div class='add'>+    fun_l25_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n522()</div><div class='add'>+    fun_l25_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n523()</div><div class='add'>+    fun_l25_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n524()</div><div class='add'>+    fun_l25_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n525()</div><div class='add'>+    fun_l25_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n526()</div><div class='add'>+    fun_l25_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n527()</div><div class='add'>+    fun_l25_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n528()</div><div class='add'>+    fun_l25_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n529()</div><div class='add'>+    fun_l25_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n530()</div><div class='add'>+    fun_l25_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n531()</div><div class='add'>+    fun_l25_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n532()</div><div class='add'>+    fun_l25_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n533()</div><div class='add'>+    fun_l25_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n534()</div><div class='add'>+    fun_l25_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n535()</div><div class='add'>+    fun_l25_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n536()</div><div class='add'>+    fun_l25_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n537()</div><div class='add'>+    fun_l25_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n538()</div><div class='add'>+    fun_l25_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n539()</div><div class='add'>+    fun_l25_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n540()</div><div class='add'>+    fun_l25_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n541()</div><div class='add'>+    fun_l25_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n542()</div><div class='add'>+    fun_l25_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n543()</div><div class='add'>+    fun_l25_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n544()</div><div class='add'>+    fun_l25_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n545()</div><div class='add'>+    fun_l25_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n546()</div><div class='add'>+    fun_l25_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n547()</div><div class='add'>+    fun_l25_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n548()</div><div class='add'>+    fun_l25_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n549()</div><div class='add'>+    fun_l25_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n550()</div><div class='add'>+    fun_l25_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n551()</div><div class='add'>+    fun_l25_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n552()</div><div class='add'>+    fun_l25_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n553()</div><div class='add'>+    fun_l25_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n554()</div><div class='add'>+    fun_l25_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n555()</div><div class='add'>+    fun_l25_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n556()</div><div class='add'>+    fun_l25_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n557()</div><div class='add'>+    fun_l25_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n558()</div><div class='add'>+    fun_l25_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n559()</div><div class='add'>+    fun_l25_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n560()</div><div class='add'>+    fun_l25_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n561()</div><div class='add'>+    fun_l25_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n562()</div><div class='add'>+    fun_l25_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n563()</div><div class='add'>+    fun_l25_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n564()</div><div class='add'>+    fun_l25_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n565()</div><div class='add'>+    fun_l25_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n566()</div><div class='add'>+    fun_l25_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n567()</div><div class='add'>+    fun_l25_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n568()</div><div class='add'>+    fun_l25_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n569()</div><div class='add'>+    fun_l25_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n570()</div><div class='add'>+    fun_l25_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n571()</div><div class='add'>+    fun_l25_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n572()</div><div class='add'>+    fun_l25_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n573()</div><div class='add'>+    fun_l25_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n574()</div><div class='add'>+    fun_l25_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n575()</div><div class='add'>+    fun_l25_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n576()</div><div class='add'>+    fun_l25_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n577()</div><div class='add'>+    fun_l25_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n578()</div><div class='add'>+    fun_l25_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n579()</div><div class='add'>+    fun_l25_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n580()</div><div class='add'>+    fun_l25_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n581()</div><div class='add'>+    fun_l25_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n582()</div><div class='add'>+    fun_l25_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n583()</div><div class='add'>+    fun_l25_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n584()</div><div class='add'>+    fun_l25_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n585()</div><div class='add'>+    fun_l25_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n586()</div><div class='add'>+    fun_l25_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n587()</div><div class='add'>+    fun_l25_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n588()</div><div class='add'>+    fun_l25_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n589()</div><div class='add'>+    fun_l25_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n590()</div><div class='add'>+    fun_l25_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n591()</div><div class='add'>+    fun_l25_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n592()</div><div class='add'>+    fun_l25_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n593()</div><div class='add'>+    fun_l25_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n594()</div><div class='add'>+    fun_l25_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n595()</div><div class='add'>+    fun_l25_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n596()</div><div class='add'>+    fun_l25_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n597()</div><div class='add'>+    fun_l25_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n598()</div><div class='add'>+    fun_l25_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n599()</div><div class='add'>+    fun_l25_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n600()</div><div class='add'>+    fun_l25_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n601()</div><div class='add'>+    fun_l25_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n602()</div><div class='add'>+    fun_l25_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n603()</div><div class='add'>+    fun_l25_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n604()</div><div class='add'>+    fun_l25_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n605()</div><div class='add'>+    fun_l25_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n606()</div><div class='add'>+    fun_l25_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n607()</div><div class='add'>+    fun_l25_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n608()</div><div class='add'>+    fun_l25_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n609()</div><div class='add'>+    fun_l25_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n610()</div><div class='add'>+    fun_l25_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n611()</div><div class='add'>+    fun_l25_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n612()</div><div class='add'>+    fun_l25_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n613()</div><div class='add'>+    fun_l25_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n614()</div><div class='add'>+    fun_l25_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n615()</div><div class='add'>+    fun_l25_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n616()</div><div class='add'>+    fun_l25_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n617()</div><div class='add'>+    fun_l25_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n618()</div><div class='add'>+    fun_l25_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n619()</div><div class='add'>+    fun_l25_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n620()</div><div class='add'>+    fun_l25_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n621()</div><div class='add'>+    fun_l25_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n622()</div><div class='add'>+    fun_l25_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n623()</div><div class='add'>+    fun_l25_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n624()</div><div class='add'>+    fun_l25_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n625()</div><div class='add'>+    fun_l25_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n626()</div><div class='add'>+    fun_l25_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n627()</div><div class='add'>+    fun_l25_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n628()</div><div class='add'>+    fun_l25_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n629()</div><div class='add'>+    fun_l25_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n630()</div><div class='add'>+    fun_l25_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n631()</div><div class='add'>+    fun_l25_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n632()</div><div class='add'>+    fun_l25_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n633()</div><div class='add'>+    fun_l25_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n634()</div><div class='add'>+    fun_l25_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n635()</div><div class='add'>+    fun_l25_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n636()</div><div class='add'>+    fun_l25_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n637()</div><div class='add'>+    fun_l25_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n638()</div><div class='add'>+    fun_l25_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n639()</div><div class='add'>+    fun_l25_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n640()</div><div class='add'>+    fun_l25_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n641()</div><div class='add'>+    fun_l25_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n642()</div><div class='add'>+    fun_l25_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n643()</div><div class='add'>+    fun_l25_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n644()</div><div class='add'>+    fun_l25_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n645()</div><div class='add'>+    fun_l25_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n646()</div><div class='add'>+    fun_l25_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n647()</div><div class='add'>+    fun_l25_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n648()</div><div class='add'>+    fun_l25_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n649()</div><div class='add'>+    fun_l25_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n650()</div><div class='add'>+    fun_l25_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n651()</div><div class='add'>+    fun_l25_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n652()</div><div class='add'>+    fun_l25_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n653()</div><div class='add'>+    fun_l25_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n654()</div><div class='add'>+    fun_l25_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n655()</div><div class='add'>+    fun_l25_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n656()</div><div class='add'>+    fun_l25_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n657()</div><div class='add'>+    fun_l25_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n658()</div><div class='add'>+    fun_l25_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n659()</div><div class='add'>+    fun_l25_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n660()</div><div class='add'>+    fun_l25_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n661()</div><div class='add'>+    fun_l25_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n662()</div><div class='add'>+    fun_l25_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n663()</div><div class='add'>+    fun_l25_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n664()</div><div class='add'>+    fun_l25_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n665()</div><div class='add'>+    fun_l25_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n666()</div><div class='add'>+    fun_l25_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n667()</div><div class='add'>+    fun_l25_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n668()</div><div class='add'>+    fun_l25_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n669()</div><div class='add'>+    fun_l25_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n670()</div><div class='add'>+    fun_l25_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n671()</div><div class='add'>+    fun_l25_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n672()</div><div class='add'>+    fun_l25_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n673()</div><div class='add'>+    fun_l25_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n674()</div><div class='add'>+    fun_l25_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n675()</div><div class='add'>+    fun_l25_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n676()</div><div class='add'>+    fun_l25_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n677()</div><div class='add'>+    fun_l25_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n678()</div><div class='add'>+    fun_l25_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n679()</div><div class='add'>+    fun_l25_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n680()</div><div class='add'>+    fun_l25_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n681()</div><div class='add'>+    fun_l25_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n682()</div><div class='add'>+    fun_l25_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n683()</div><div class='add'>+    fun_l25_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n684()</div><div class='add'>+    fun_l25_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n685()</div><div class='add'>+    fun_l25_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n686()</div><div class='add'>+    fun_l25_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n687()</div><div class='add'>+    fun_l25_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n688()</div><div class='add'>+    fun_l25_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n689()</div><div class='add'>+    fun_l25_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n690()</div><div class='add'>+    fun_l25_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n691()</div><div class='add'>+    fun_l25_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n692()</div><div class='add'>+    fun_l25_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n693()</div><div class='add'>+    fun_l25_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n694()</div><div class='add'>+    fun_l25_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n695()</div><div class='add'>+    fun_l25_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n696()</div><div class='add'>+    fun_l25_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n697()</div><div class='add'>+    fun_l25_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n698()</div><div class='add'>+    fun_l25_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n699()</div><div class='add'>+    fun_l25_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n700()</div><div class='add'>+    fun_l25_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n701()</div><div class='add'>+    fun_l25_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n702()</div><div class='add'>+    fun_l25_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n703()</div><div class='add'>+    fun_l25_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n704()</div><div class='add'>+    fun_l25_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n705()</div><div class='add'>+    fun_l25_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n706()</div><div class='add'>+    fun_l25_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n707()</div><div class='add'>+    fun_l25_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n708()</div><div class='add'>+    fun_l25_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n709()</div><div class='add'>+    fun_l25_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n710()</div><div class='add'>+    fun_l25_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n711()</div><div class='add'>+    fun_l25_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n712()</div><div class='add'>+    fun_l25_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n713()</div><div class='add'>+    fun_l25_n817</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n714()</div><div class='add'>+    fun_l25_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n715()</div><div class='add'>+    fun_l25_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n716()</div><div class='add'>+    fun_l25_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n717()</div><div class='add'>+    fun_l25_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n718()</div><div class='add'>+    fun_l25_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n719()</div><div class='add'>+    fun_l25_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n720()</div><div class='add'>+    fun_l25_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n721()</div><div class='add'>+    fun_l25_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n722()</div><div class='add'>+    fun_l25_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n723()</div><div class='add'>+    fun_l25_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n724()</div><div class='add'>+    fun_l25_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n725()</div><div class='add'>+    fun_l25_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n726()</div><div class='add'>+    fun_l25_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n727()</div><div class='add'>+    fun_l25_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n728()</div><div class='add'>+    fun_l25_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n729()</div><div class='add'>+    fun_l25_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n730()</div><div class='add'>+    fun_l25_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n731()</div><div class='add'>+    fun_l25_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n732()</div><div class='add'>+    fun_l25_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n733()</div><div class='add'>+    fun_l25_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n734()</div><div class='add'>+    fun_l25_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n735()</div><div class='add'>+    fun_l25_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n736()</div><div class='add'>+    fun_l25_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n737()</div><div class='add'>+    fun_l25_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n738()</div><div class='add'>+    fun_l25_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n739()</div><div class='add'>+    fun_l25_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n740()</div><div class='add'>+    fun_l25_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n741()</div><div class='add'>+    fun_l25_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n742()</div><div class='add'>+    fun_l25_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n743()</div><div class='add'>+    fun_l25_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n744()</div><div class='add'>+    fun_l25_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n745()</div><div class='add'>+    fun_l25_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n746()</div><div class='add'>+    fun_l25_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n747()</div><div class='add'>+    fun_l25_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n748()</div><div class='add'>+    fun_l25_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n749()</div><div class='add'>+    fun_l25_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n750()</div><div class='add'>+    fun_l25_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n751()</div><div class='add'>+    fun_l25_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n752()</div><div class='add'>+    fun_l25_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n753()</div><div class='add'>+    fun_l25_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n754()</div><div class='add'>+    fun_l25_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n755()</div><div class='add'>+    fun_l25_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n756()</div><div class='add'>+    fun_l25_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n757()</div><div class='add'>+    fun_l25_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n758()</div><div class='add'>+    fun_l25_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n759()</div><div class='add'>+    fun_l25_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n760()</div><div class='add'>+    fun_l25_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n761()</div><div class='add'>+    fun_l25_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n762()</div><div class='add'>+    fun_l25_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n763()</div><div class='add'>+    fun_l25_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n764()</div><div class='add'>+    fun_l25_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n765()</div><div class='add'>+    fun_l25_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n766()</div><div class='add'>+    fun_l25_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n767()</div><div class='add'>+    fun_l25_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n768()</div><div class='add'>+    fun_l25_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n769()</div><div class='add'>+    fun_l25_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n770()</div><div class='add'>+    fun_l25_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n771()</div><div class='add'>+    fun_l25_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n772()</div><div class='add'>+    fun_l25_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n773()</div><div class='add'>+    fun_l25_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n774()</div><div class='add'>+    fun_l25_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n775()</div><div class='add'>+    fun_l25_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n776()</div><div class='add'>+    fun_l25_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n777()</div><div class='add'>+    fun_l25_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n778()</div><div class='add'>+    fun_l25_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n779()</div><div class='add'>+    fun_l25_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n780()</div><div class='add'>+    fun_l25_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n781()</div><div class='add'>+    fun_l25_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n782()</div><div class='add'>+    fun_l25_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n783()</div><div class='add'>+    fun_l25_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n784()</div><div class='add'>+    fun_l25_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n785()</div><div class='add'>+    fun_l25_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n786()</div><div class='add'>+    fun_l25_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n787()</div><div class='add'>+    fun_l25_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n788()</div><div class='add'>+    fun_l25_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n789()</div><div class='add'>+    fun_l25_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n790()</div><div class='add'>+    fun_l25_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n791()</div><div class='add'>+    fun_l25_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n792()</div><div class='add'>+    fun_l25_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n793()</div><div class='add'>+    fun_l25_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n794()</div><div class='add'>+    fun_l25_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n795()</div><div class='add'>+    fun_l25_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n796()</div><div class='add'>+    fun_l25_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n797()</div><div class='add'>+    fun_l25_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n798()</div><div class='add'>+    fun_l25_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n799()</div><div class='add'>+    fun_l25_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n800()</div><div class='add'>+    fun_l25_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n801()</div><div class='add'>+    fun_l25_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n802()</div><div class='add'>+    fun_l25_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n803()</div><div class='add'>+    fun_l25_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n804()</div><div class='add'>+    fun_l25_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n805()</div><div class='add'>+    fun_l25_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n806()</div><div class='add'>+    fun_l25_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n807()</div><div class='add'>+    fun_l25_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n808()</div><div class='add'>+    fun_l25_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n809()</div><div class='add'>+    fun_l25_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n810()</div><div class='add'>+    fun_l25_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n811()</div><div class='add'>+    fun_l25_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n812()</div><div class='add'>+    fun_l25_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n813()</div><div class='add'>+    fun_l25_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n814()</div><div class='add'>+    fun_l25_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n815()</div><div class='add'>+    fun_l25_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n816()</div><div class='add'>+    fun_l25_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n817()</div><div class='add'>+    fun_l25_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n818()</div><div class='add'>+    fun_l25_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n819()</div><div class='add'>+    fun_l25_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n820()</div><div class='add'>+    fun_l25_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n821()</div><div class='add'>+    fun_l25_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n822()</div><div class='add'>+    fun_l25_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n823()</div><div class='add'>+    fun_l25_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n824()</div><div class='add'>+    fun_l25_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n825()</div><div class='add'>+    fun_l25_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n826()</div><div class='add'>+    fun_l25_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n827()</div><div class='add'>+    fun_l25_n399</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n828()</div><div class='add'>+    fun_l25_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n829()</div><div class='add'>+    fun_l25_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n830()</div><div class='add'>+    fun_l25_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n831()</div><div class='add'>+    fun_l25_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n832()</div><div class='add'>+    fun_l25_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n833()</div><div class='add'>+    fun_l25_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n834()</div><div class='add'>+    fun_l25_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n835()</div><div class='add'>+    fun_l25_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n836()</div><div class='add'>+    fun_l25_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n837()</div><div class='add'>+    fun_l25_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n838()</div><div class='add'>+    fun_l25_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n839()</div><div class='add'>+    fun_l25_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n840()</div><div class='add'>+    fun_l25_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n841()</div><div class='add'>+    fun_l25_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n842()</div><div class='add'>+    fun_l25_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n843()</div><div class='add'>+    fun_l25_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n844()</div><div class='add'>+    fun_l25_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n845()</div><div class='add'>+    fun_l25_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n846()</div><div class='add'>+    fun_l25_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n847()</div><div class='add'>+    fun_l25_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n848()</div><div class='add'>+    fun_l25_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n849()</div><div class='add'>+    fun_l25_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n850()</div><div class='add'>+    fun_l25_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n851()</div><div class='add'>+    fun_l25_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n852()</div><div class='add'>+    fun_l25_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n853()</div><div class='add'>+    fun_l25_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n854()</div><div class='add'>+    fun_l25_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n855()</div><div class='add'>+    fun_l25_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n856()</div><div class='add'>+    fun_l25_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n857()</div><div class='add'>+    fun_l25_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n858()</div><div class='add'>+    fun_l25_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n859()</div><div class='add'>+    fun_l25_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n860()</div><div class='add'>+    fun_l25_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n861()</div><div class='add'>+    fun_l25_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n862()</div><div class='add'>+    fun_l25_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n863()</div><div class='add'>+    fun_l25_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n864()</div><div class='add'>+    fun_l25_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n865()</div><div class='add'>+    fun_l25_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n866()</div><div class='add'>+    fun_l25_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n867()</div><div class='add'>+    fun_l25_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n868()</div><div class='add'>+    fun_l25_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n869()</div><div class='add'>+    fun_l25_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n870()</div><div class='add'>+    fun_l25_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n871()</div><div class='add'>+    fun_l25_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n872()</div><div class='add'>+    fun_l25_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n873()</div><div class='add'>+    fun_l25_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n874()</div><div class='add'>+    fun_l25_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n875()</div><div class='add'>+    fun_l25_n237</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n876()</div><div class='add'>+    fun_l25_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n877()</div><div class='add'>+    fun_l25_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n878()</div><div class='add'>+    fun_l25_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n879()</div><div class='add'>+    fun_l25_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n880()</div><div class='add'>+    fun_l25_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n881()</div><div class='add'>+    fun_l25_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n882()</div><div class='add'>+    fun_l25_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n883()</div><div class='add'>+    fun_l25_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n884()</div><div class='add'>+    fun_l25_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n885()</div><div class='add'>+    fun_l25_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n886()</div><div class='add'>+    fun_l25_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n887()</div><div class='add'>+    fun_l25_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n888()</div><div class='add'>+    fun_l25_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n889()</div><div class='add'>+    fun_l25_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n890()</div><div class='add'>+    fun_l25_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n891()</div><div class='add'>+    fun_l25_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n892()</div><div class='add'>+    fun_l25_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n893()</div><div class='add'>+    fun_l25_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n894()</div><div class='add'>+    fun_l25_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n895()</div><div class='add'>+    fun_l25_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n896()</div><div class='add'>+    fun_l25_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n897()</div><div class='add'>+    fun_l25_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n898()</div><div class='add'>+    fun_l25_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n899()</div><div class='add'>+    fun_l25_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n900()</div><div class='add'>+    fun_l25_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n901()</div><div class='add'>+    fun_l25_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n902()</div><div class='add'>+    fun_l25_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n903()</div><div class='add'>+    fun_l25_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n904()</div><div class='add'>+    fun_l25_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n905()</div><div class='add'>+    fun_l25_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n906()</div><div class='add'>+    fun_l25_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n907()</div><div class='add'>+    fun_l25_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n908()</div><div class='add'>+    fun_l25_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n909()</div><div class='add'>+    fun_l25_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n910()</div><div class='add'>+    fun_l25_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n911()</div><div class='add'>+    fun_l25_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n912()</div><div class='add'>+    fun_l25_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n913()</div><div class='add'>+    fun_l25_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n914()</div><div class='add'>+    fun_l25_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n915()</div><div class='add'>+    fun_l25_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n916()</div><div class='add'>+    fun_l25_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n917()</div><div class='add'>+    fun_l25_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n918()</div><div class='add'>+    fun_l25_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n919()</div><div class='add'>+    fun_l25_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n920()</div><div class='add'>+    fun_l25_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n921()</div><div class='add'>+    fun_l25_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n922()</div><div class='add'>+    fun_l25_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n923()</div><div class='add'>+    fun_l25_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n924()</div><div class='add'>+    fun_l25_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n925()</div><div class='add'>+    fun_l25_n986</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n926()</div><div class='add'>+    fun_l25_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n927()</div><div class='add'>+    fun_l25_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n928()</div><div class='add'>+    fun_l25_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n929()</div><div class='add'>+    fun_l25_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n930()</div><div class='add'>+    fun_l25_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n931()</div><div class='add'>+    fun_l25_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n932()</div><div class='add'>+    fun_l25_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n933()</div><div class='add'>+    fun_l25_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n934()</div><div class='add'>+    fun_l25_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n935()</div><div class='add'>+    fun_l25_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n936()</div><div class='add'>+    fun_l25_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n937()</div><div class='add'>+    fun_l25_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n938()</div><div class='add'>+    fun_l25_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n939()</div><div class='add'>+    fun_l25_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n940()</div><div class='add'>+    fun_l25_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n941()</div><div class='add'>+    fun_l25_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n942()</div><div class='add'>+    fun_l25_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n943()</div><div class='add'>+    fun_l25_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n944()</div><div class='add'>+    fun_l25_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n945()</div><div class='add'>+    fun_l25_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n946()</div><div class='add'>+    fun_l25_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n947()</div><div class='add'>+    fun_l25_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n948()</div><div class='add'>+    fun_l25_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n949()</div><div class='add'>+    fun_l25_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n950()</div><div class='add'>+    fun_l25_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n951()</div><div class='add'>+    fun_l25_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n952()</div><div class='add'>+    fun_l25_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n953()</div><div class='add'>+    fun_l25_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n954()</div><div class='add'>+    fun_l25_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n955()</div><div class='add'>+    fun_l25_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n956()</div><div class='add'>+    fun_l25_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n957()</div><div class='add'>+    fun_l25_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n958()</div><div class='add'>+    fun_l25_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n959()</div><div class='add'>+    fun_l25_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n960()</div><div class='add'>+    fun_l25_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n961()</div><div class='add'>+    fun_l25_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n962()</div><div class='add'>+    fun_l25_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n963()</div><div class='add'>+    fun_l25_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n964()</div><div class='add'>+    fun_l25_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n965()</div><div class='add'>+    fun_l25_n289</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n966()</div><div class='add'>+    fun_l25_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n967()</div><div class='add'>+    fun_l25_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n968()</div><div class='add'>+    fun_l25_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n969()</div><div class='add'>+    fun_l25_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n970()</div><div class='add'>+    fun_l25_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n971()</div><div class='add'>+    fun_l25_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n972()</div><div class='add'>+    fun_l25_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n973()</div><div class='add'>+    fun_l25_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n974()</div><div class='add'>+    fun_l25_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n975()</div><div class='add'>+    fun_l25_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n976()</div><div class='add'>+    fun_l25_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n977()</div><div class='add'>+    fun_l25_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n978()</div><div class='add'>+    fun_l25_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n979()</div><div class='add'>+    fun_l25_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n980()</div><div class='add'>+    fun_l25_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n981()</div><div class='add'>+    fun_l25_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n982()</div><div class='add'>+    fun_l25_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n983()</div><div class='add'>+    fun_l25_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n984()</div><div class='add'>+    fun_l25_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n985()</div><div class='add'>+    fun_l25_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n986()</div><div class='add'>+    fun_l25_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n987()</div><div class='add'>+    fun_l25_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n988()</div><div class='add'>+    fun_l25_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n989()</div><div class='add'>+    fun_l25_n93</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n990()</div><div class='add'>+    fun_l25_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n991()</div><div class='add'>+    fun_l25_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n992()</div><div class='add'>+    fun_l25_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n993()</div><div class='add'>+    fun_l25_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n994()</div><div class='add'>+    fun_l25_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n995()</div><div class='add'>+    fun_l25_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n996()</div><div class='add'>+    fun_l25_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n997()</div><div class='add'>+    fun_l25_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n998()</div><div class='add'>+    fun_l25_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l24_n999()</div><div class='add'>+    fun_l25_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n0()</div><div class='add'>+    fun_l26_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n1()</div><div class='add'>+    fun_l26_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n2()</div><div class='add'>+    fun_l26_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n3()</div><div class='add'>+    fun_l26_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n4()</div><div class='add'>+    fun_l26_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n5()</div><div class='add'>+    fun_l26_n618</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n6()</div><div class='add'>+    fun_l26_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n7()</div><div class='add'>+    fun_l26_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n8()</div><div class='add'>+    fun_l26_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n9()</div><div class='add'>+    fun_l26_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n10()</div><div class='add'>+    fun_l26_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n11()</div><div class='add'>+    fun_l26_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n12()</div><div class='add'>+    fun_l26_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n13()</div><div class='add'>+    fun_l26_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n14()</div><div class='add'>+    fun_l26_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n15()</div><div class='add'>+    fun_l26_n544</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n16()</div><div class='add'>+    fun_l26_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n17()</div><div class='add'>+    fun_l26_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n18()</div><div class='add'>+    fun_l26_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n19()</div><div class='add'>+    fun_l26_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n20()</div><div class='add'>+    fun_l26_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n21()</div><div class='add'>+    fun_l26_n798</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n22()</div><div class='add'>+    fun_l26_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n23()</div><div class='add'>+    fun_l26_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n24()</div><div class='add'>+    fun_l26_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n25()</div><div class='add'>+    fun_l26_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n26()</div><div class='add'>+    fun_l26_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n27()</div><div class='add'>+    fun_l26_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n28()</div><div class='add'>+    fun_l26_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n29()</div><div class='add'>+    fun_l26_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n30()</div><div class='add'>+    fun_l26_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n31()</div><div class='add'>+    fun_l26_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n32()</div><div class='add'>+    fun_l26_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n33()</div><div class='add'>+    fun_l26_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n34()</div><div class='add'>+    fun_l26_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n35()</div><div class='add'>+    fun_l26_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n36()</div><div class='add'>+    fun_l26_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n37()</div><div class='add'>+    fun_l26_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n38()</div><div class='add'>+    fun_l26_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n39()</div><div class='add'>+    fun_l26_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n40()</div><div class='add'>+    fun_l26_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n41()</div><div class='add'>+    fun_l26_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n42()</div><div class='add'>+    fun_l26_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n43()</div><div class='add'>+    fun_l26_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n44()</div><div class='add'>+    fun_l26_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n45()</div><div class='add'>+    fun_l26_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n46()</div><div class='add'>+    fun_l26_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n47()</div><div class='add'>+    fun_l26_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n48()</div><div class='add'>+    fun_l26_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n49()</div><div class='add'>+    fun_l26_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n50()</div><div class='add'>+    fun_l26_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n51()</div><div class='add'>+    fun_l26_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n52()</div><div class='add'>+    fun_l26_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n53()</div><div class='add'>+    fun_l26_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n54()</div><div class='add'>+    fun_l26_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n55()</div><div class='add'>+    fun_l26_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n56()</div><div class='add'>+    fun_l26_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n57()</div><div class='add'>+    fun_l26_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n58()</div><div class='add'>+    fun_l26_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n59()</div><div class='add'>+    fun_l26_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n60()</div><div class='add'>+    fun_l26_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n61()</div><div class='add'>+    fun_l26_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n62()</div><div class='add'>+    fun_l26_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n63()</div><div class='add'>+    fun_l26_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n64()</div><div class='add'>+    fun_l26_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n65()</div><div class='add'>+    fun_l26_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n66()</div><div class='add'>+    fun_l26_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n67()</div><div class='add'>+    fun_l26_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n68()</div><div class='add'>+    fun_l26_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n69()</div><div class='add'>+    fun_l26_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n70()</div><div class='add'>+    fun_l26_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n71()</div><div class='add'>+    fun_l26_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n72()</div><div class='add'>+    fun_l26_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n73()</div><div class='add'>+    fun_l26_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n74()</div><div class='add'>+    fun_l26_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n75()</div><div class='add'>+    fun_l26_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n76()</div><div class='add'>+    fun_l26_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n77()</div><div class='add'>+    fun_l26_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n78()</div><div class='add'>+    fun_l26_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n79()</div><div class='add'>+    fun_l26_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n80()</div><div class='add'>+    fun_l26_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n81()</div><div class='add'>+    fun_l26_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n82()</div><div class='add'>+    fun_l26_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n83()</div><div class='add'>+    fun_l26_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n84()</div><div class='add'>+    fun_l26_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n85()</div><div class='add'>+    fun_l26_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n86()</div><div class='add'>+    fun_l26_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n87()</div><div class='add'>+    fun_l26_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n88()</div><div class='add'>+    fun_l26_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n89()</div><div class='add'>+    fun_l26_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n90()</div><div class='add'>+    fun_l26_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n91()</div><div class='add'>+    fun_l26_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n92()</div><div class='add'>+    fun_l26_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n93()</div><div class='add'>+    fun_l26_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n94()</div><div class='add'>+    fun_l26_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n95()</div><div class='add'>+    fun_l26_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n96()</div><div class='add'>+    fun_l26_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n97()</div><div class='add'>+    fun_l26_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n98()</div><div class='add'>+    fun_l26_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n99()</div><div class='add'>+    fun_l26_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n100()</div><div class='add'>+    fun_l26_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n101()</div><div class='add'>+    fun_l26_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n102()</div><div class='add'>+    fun_l26_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n103()</div><div class='add'>+    fun_l26_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n104()</div><div class='add'>+    fun_l26_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n105()</div><div class='add'>+    fun_l26_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n106()</div><div class='add'>+    fun_l26_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n107()</div><div class='add'>+    fun_l26_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n108()</div><div class='add'>+    fun_l26_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n109()</div><div class='add'>+    fun_l26_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n110()</div><div class='add'>+    fun_l26_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n111()</div><div class='add'>+    fun_l26_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n112()</div><div class='add'>+    fun_l26_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n113()</div><div class='add'>+    fun_l26_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n114()</div><div class='add'>+    fun_l26_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n115()</div><div class='add'>+    fun_l26_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n116()</div><div class='add'>+    fun_l26_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n117()</div><div class='add'>+    fun_l26_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n118()</div><div class='add'>+    fun_l26_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n119()</div><div class='add'>+    fun_l26_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n120()</div><div class='add'>+    fun_l26_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n121()</div><div class='add'>+    fun_l26_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n122()</div><div class='add'>+    fun_l26_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n123()</div><div class='add'>+    fun_l26_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n124()</div><div class='add'>+    fun_l26_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n125()</div><div class='add'>+    fun_l26_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n126()</div><div class='add'>+    fun_l26_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n127()</div><div class='add'>+    fun_l26_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n128()</div><div class='add'>+    fun_l26_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n129()</div><div class='add'>+    fun_l26_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n130()</div><div class='add'>+    fun_l26_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n131()</div><div class='add'>+    fun_l26_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n132()</div><div class='add'>+    fun_l26_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n133()</div><div class='add'>+    fun_l26_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n134()</div><div class='add'>+    fun_l26_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n135()</div><div class='add'>+    fun_l26_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n136()</div><div class='add'>+    fun_l26_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n137()</div><div class='add'>+    fun_l26_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n138()</div><div class='add'>+    fun_l26_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n139()</div><div class='add'>+    fun_l26_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n140()</div><div class='add'>+    fun_l26_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n141()</div><div class='add'>+    fun_l26_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n142()</div><div class='add'>+    fun_l26_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n143()</div><div class='add'>+    fun_l26_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n144()</div><div class='add'>+    fun_l26_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n145()</div><div class='add'>+    fun_l26_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n146()</div><div class='add'>+    fun_l26_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n147()</div><div class='add'>+    fun_l26_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n148()</div><div class='add'>+    fun_l26_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n149()</div><div class='add'>+    fun_l26_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n150()</div><div class='add'>+    fun_l26_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n151()</div><div class='add'>+    fun_l26_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n152()</div><div class='add'>+    fun_l26_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n153()</div><div class='add'>+    fun_l26_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n154()</div><div class='add'>+    fun_l26_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n155()</div><div class='add'>+    fun_l26_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n156()</div><div class='add'>+    fun_l26_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n157()</div><div class='add'>+    fun_l26_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n158()</div><div class='add'>+    fun_l26_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n159()</div><div class='add'>+    fun_l26_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n160()</div><div class='add'>+    fun_l26_n583</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n161()</div><div class='add'>+    fun_l26_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n162()</div><div class='add'>+    fun_l26_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n163()</div><div class='add'>+    fun_l26_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n164()</div><div class='add'>+    fun_l26_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n165()</div><div class='add'>+    fun_l26_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n166()</div><div class='add'>+    fun_l26_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n167()</div><div class='add'>+    fun_l26_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n168()</div><div class='add'>+    fun_l26_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n169()</div><div class='add'>+    fun_l26_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n170()</div><div class='add'>+    fun_l26_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n171()</div><div class='add'>+    fun_l26_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n172()</div><div class='add'>+    fun_l26_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n173()</div><div class='add'>+    fun_l26_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n174()</div><div class='add'>+    fun_l26_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n175()</div><div class='add'>+    fun_l26_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n176()</div><div class='add'>+    fun_l26_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n177()</div><div class='add'>+    fun_l26_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n178()</div><div class='add'>+    fun_l26_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n179()</div><div class='add'>+    fun_l26_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n180()</div><div class='add'>+    fun_l26_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n181()</div><div class='add'>+    fun_l26_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n182()</div><div class='add'>+    fun_l26_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n183()</div><div class='add'>+    fun_l26_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n184()</div><div class='add'>+    fun_l26_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n185()</div><div class='add'>+    fun_l26_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n186()</div><div class='add'>+    fun_l26_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n187()</div><div class='add'>+    fun_l26_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n188()</div><div class='add'>+    fun_l26_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n189()</div><div class='add'>+    fun_l26_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n190()</div><div class='add'>+    fun_l26_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n191()</div><div class='add'>+    fun_l26_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n192()</div><div class='add'>+    fun_l26_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n193()</div><div class='add'>+    fun_l26_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n194()</div><div class='add'>+    fun_l26_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n195()</div><div class='add'>+    fun_l26_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n196()</div><div class='add'>+    fun_l26_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n197()</div><div class='add'>+    fun_l26_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n198()</div><div class='add'>+    fun_l26_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n199()</div><div class='add'>+    fun_l26_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n200()</div><div class='add'>+    fun_l26_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n201()</div><div class='add'>+    fun_l26_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n202()</div><div class='add'>+    fun_l26_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n203()</div><div class='add'>+    fun_l26_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n204()</div><div class='add'>+    fun_l26_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n205()</div><div class='add'>+    fun_l26_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n206()</div><div class='add'>+    fun_l26_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n207()</div><div class='add'>+    fun_l26_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n208()</div><div class='add'>+    fun_l26_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n209()</div><div class='add'>+    fun_l26_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n210()</div><div class='add'>+    fun_l26_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n211()</div><div class='add'>+    fun_l26_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n212()</div><div class='add'>+    fun_l26_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n213()</div><div class='add'>+    fun_l26_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n214()</div><div class='add'>+    fun_l26_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n215()</div><div class='add'>+    fun_l26_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n216()</div><div class='add'>+    fun_l26_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n217()</div><div class='add'>+    fun_l26_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n218()</div><div class='add'>+    fun_l26_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n219()</div><div class='add'>+    fun_l26_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n220()</div><div class='add'>+    fun_l26_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n221()</div><div class='add'>+    fun_l26_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n222()</div><div class='add'>+    fun_l26_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n223()</div><div class='add'>+    fun_l26_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n224()</div><div class='add'>+    fun_l26_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n225()</div><div class='add'>+    fun_l26_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n226()</div><div class='add'>+    fun_l26_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n227()</div><div class='add'>+    fun_l26_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n228()</div><div class='add'>+    fun_l26_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n229()</div><div class='add'>+    fun_l26_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n230()</div><div class='add'>+    fun_l26_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n231()</div><div class='add'>+    fun_l26_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n232()</div><div class='add'>+    fun_l26_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n233()</div><div class='add'>+    fun_l26_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n234()</div><div class='add'>+    fun_l26_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n235()</div><div class='add'>+    fun_l26_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n236()</div><div class='add'>+    fun_l26_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n237()</div><div class='add'>+    fun_l26_n492</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n238()</div><div class='add'>+    fun_l26_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n239()</div><div class='add'>+    fun_l26_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n240()</div><div class='add'>+    fun_l26_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n241()</div><div class='add'>+    fun_l26_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n242()</div><div class='add'>+    fun_l26_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n243()</div><div class='add'>+    fun_l26_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n244()</div><div class='add'>+    fun_l26_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n245()</div><div class='add'>+    fun_l26_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n246()</div><div class='add'>+    fun_l26_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n247()</div><div class='add'>+    fun_l26_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n248()</div><div class='add'>+    fun_l26_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n249()</div><div class='add'>+    fun_l26_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n250()</div><div class='add'>+    fun_l26_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n251()</div><div class='add'>+    fun_l26_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n252()</div><div class='add'>+    fun_l26_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n253()</div><div class='add'>+    fun_l26_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n254()</div><div class='add'>+    fun_l26_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n255()</div><div class='add'>+    fun_l26_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n256()</div><div class='add'>+    fun_l26_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n257()</div><div class='add'>+    fun_l26_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n258()</div><div class='add'>+    fun_l26_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n259()</div><div class='add'>+    fun_l26_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n260()</div><div class='add'>+    fun_l26_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n261()</div><div class='add'>+    fun_l26_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n262()</div><div class='add'>+    fun_l26_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n263()</div><div class='add'>+    fun_l26_n357</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n264()</div><div class='add'>+    fun_l26_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n265()</div><div class='add'>+    fun_l26_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n266()</div><div class='add'>+    fun_l26_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n267()</div><div class='add'>+    fun_l26_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n268()</div><div class='add'>+    fun_l26_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n269()</div><div class='add'>+    fun_l26_n456</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n270()</div><div class='add'>+    fun_l26_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n271()</div><div class='add'>+    fun_l26_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n272()</div><div class='add'>+    fun_l26_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n273()</div><div class='add'>+    fun_l26_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n274()</div><div class='add'>+    fun_l26_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n275()</div><div class='add'>+    fun_l26_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n276()</div><div class='add'>+    fun_l26_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n277()</div><div class='add'>+    fun_l26_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n278()</div><div class='add'>+    fun_l26_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n279()</div><div class='add'>+    fun_l26_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n280()</div><div class='add'>+    fun_l26_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n281()</div><div class='add'>+    fun_l26_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n282()</div><div class='add'>+    fun_l26_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n283()</div><div class='add'>+    fun_l26_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n284()</div><div class='add'>+    fun_l26_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n285()</div><div class='add'>+    fun_l26_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n286()</div><div class='add'>+    fun_l26_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n287()</div><div class='add'>+    fun_l26_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n288()</div><div class='add'>+    fun_l26_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n289()</div><div class='add'>+    fun_l26_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n290()</div><div class='add'>+    fun_l26_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n291()</div><div class='add'>+    fun_l26_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n292()</div><div class='add'>+    fun_l26_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n293()</div><div class='add'>+    fun_l26_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n294()</div><div class='add'>+    fun_l26_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n295()</div><div class='add'>+    fun_l26_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n296()</div><div class='add'>+    fun_l26_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n297()</div><div class='add'>+    fun_l26_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n298()</div><div class='add'>+    fun_l26_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n299()</div><div class='add'>+    fun_l26_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n300()</div><div class='add'>+    fun_l26_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n301()</div><div class='add'>+    fun_l26_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n302()</div><div class='add'>+    fun_l26_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n303()</div><div class='add'>+    fun_l26_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n304()</div><div class='add'>+    fun_l26_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n305()</div><div class='add'>+    fun_l26_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n306()</div><div class='add'>+    fun_l26_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n307()</div><div class='add'>+    fun_l26_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n308()</div><div class='add'>+    fun_l26_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n309()</div><div class='add'>+    fun_l26_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n310()</div><div class='add'>+    fun_l26_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n311()</div><div class='add'>+    fun_l26_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n312()</div><div class='add'>+    fun_l26_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n313()</div><div class='add'>+    fun_l26_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n314()</div><div class='add'>+    fun_l26_n78</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n315()</div><div class='add'>+    fun_l26_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n316()</div><div class='add'>+    fun_l26_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n317()</div><div class='add'>+    fun_l26_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n318()</div><div class='add'>+    fun_l26_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n319()</div><div class='add'>+    fun_l26_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n320()</div><div class='add'>+    fun_l26_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n321()</div><div class='add'>+    fun_l26_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n322()</div><div class='add'>+    fun_l26_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n323()</div><div class='add'>+    fun_l26_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n324()</div><div class='add'>+    fun_l26_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n325()</div><div class='add'>+    fun_l26_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n326()</div><div class='add'>+    fun_l26_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n327()</div><div class='add'>+    fun_l26_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n328()</div><div class='add'>+    fun_l26_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n329()</div><div class='add'>+    fun_l26_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n330()</div><div class='add'>+    fun_l26_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n331()</div><div class='add'>+    fun_l26_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n332()</div><div class='add'>+    fun_l26_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n333()</div><div class='add'>+    fun_l26_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n334()</div><div class='add'>+    fun_l26_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n335()</div><div class='add'>+    fun_l26_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n336()</div><div class='add'>+    fun_l26_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n337()</div><div class='add'>+    fun_l26_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n338()</div><div class='add'>+    fun_l26_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n339()</div><div class='add'>+    fun_l26_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n340()</div><div class='add'>+    fun_l26_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n341()</div><div class='add'>+    fun_l26_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n342()</div><div class='add'>+    fun_l26_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n343()</div><div class='add'>+    fun_l26_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n344()</div><div class='add'>+    fun_l26_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n345()</div><div class='add'>+    fun_l26_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n346()</div><div class='add'>+    fun_l26_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n347()</div><div class='add'>+    fun_l26_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n348()</div><div class='add'>+    fun_l26_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n349()</div><div class='add'>+    fun_l26_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n350()</div><div class='add'>+    fun_l26_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n351()</div><div class='add'>+    fun_l26_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n352()</div><div class='add'>+    fun_l26_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n353()</div><div class='add'>+    fun_l26_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n354()</div><div class='add'>+    fun_l26_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n355()</div><div class='add'>+    fun_l26_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n356()</div><div class='add'>+    fun_l26_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n357()</div><div class='add'>+    fun_l26_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n358()</div><div class='add'>+    fun_l26_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n359()</div><div class='add'>+    fun_l26_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n360()</div><div class='add'>+    fun_l26_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n361()</div><div class='add'>+    fun_l26_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n362()</div><div class='add'>+    fun_l26_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n363()</div><div class='add'>+    fun_l26_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n364()</div><div class='add'>+    fun_l26_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n365()</div><div class='add'>+    fun_l26_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n366()</div><div class='add'>+    fun_l26_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n367()</div><div class='add'>+    fun_l26_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n368()</div><div class='add'>+    fun_l26_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n369()</div><div class='add'>+    fun_l26_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n370()</div><div class='add'>+    fun_l26_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n371()</div><div class='add'>+    fun_l26_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n372()</div><div class='add'>+    fun_l26_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n373()</div><div class='add'>+    fun_l26_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n374()</div><div class='add'>+    fun_l26_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n375()</div><div class='add'>+    fun_l26_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n376()</div><div class='add'>+    fun_l26_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n377()</div><div class='add'>+    fun_l26_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n378()</div><div class='add'>+    fun_l26_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n379()</div><div class='add'>+    fun_l26_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n380()</div><div class='add'>+    fun_l26_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n381()</div><div class='add'>+    fun_l26_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n382()</div><div class='add'>+    fun_l26_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n383()</div><div class='add'>+    fun_l26_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n384()</div><div class='add'>+    fun_l26_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n385()</div><div class='add'>+    fun_l26_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n386()</div><div class='add'>+    fun_l26_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n387()</div><div class='add'>+    fun_l26_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n388()</div><div class='add'>+    fun_l26_n162</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n389()</div><div class='add'>+    fun_l26_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n390()</div><div class='add'>+    fun_l26_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n391()</div><div class='add'>+    fun_l26_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n392()</div><div class='add'>+    fun_l26_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n393()</div><div class='add'>+    fun_l26_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n394()</div><div class='add'>+    fun_l26_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n395()</div><div class='add'>+    fun_l26_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n396()</div><div class='add'>+    fun_l26_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n397()</div><div class='add'>+    fun_l26_n744</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n398()</div><div class='add'>+    fun_l26_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n399()</div><div class='add'>+    fun_l26_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n400()</div><div class='add'>+    fun_l26_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n401()</div><div class='add'>+    fun_l26_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n402()</div><div class='add'>+    fun_l26_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n403()</div><div class='add'>+    fun_l26_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n404()</div><div class='add'>+    fun_l26_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n405()</div><div class='add'>+    fun_l26_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n406()</div><div class='add'>+    fun_l26_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n407()</div><div class='add'>+    fun_l26_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n408()</div><div class='add'>+    fun_l26_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n409()</div><div class='add'>+    fun_l26_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n410()</div><div class='add'>+    fun_l26_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n411()</div><div class='add'>+    fun_l26_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n412()</div><div class='add'>+    fun_l26_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n413()</div><div class='add'>+    fun_l26_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n414()</div><div class='add'>+    fun_l26_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n415()</div><div class='add'>+    fun_l26_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n416()</div><div class='add'>+    fun_l26_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n417()</div><div class='add'>+    fun_l26_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n418()</div><div class='add'>+    fun_l26_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n419()</div><div class='add'>+    fun_l26_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n420()</div><div class='add'>+    fun_l26_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n421()</div><div class='add'>+    fun_l26_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n422()</div><div class='add'>+    fun_l26_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n423()</div><div class='add'>+    fun_l26_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n424()</div><div class='add'>+    fun_l26_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n425()</div><div class='add'>+    fun_l26_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n426()</div><div class='add'>+    fun_l26_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n427()</div><div class='add'>+    fun_l26_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n428()</div><div class='add'>+    fun_l26_n980</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n429()</div><div class='add'>+    fun_l26_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n430()</div><div class='add'>+    fun_l26_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n431()</div><div class='add'>+    fun_l26_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n432()</div><div class='add'>+    fun_l26_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n433()</div><div class='add'>+    fun_l26_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n434()</div><div class='add'>+    fun_l26_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n435()</div><div class='add'>+    fun_l26_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n436()</div><div class='add'>+    fun_l26_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n437()</div><div class='add'>+    fun_l26_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n438()</div><div class='add'>+    fun_l26_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n439()</div><div class='add'>+    fun_l26_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n440()</div><div class='add'>+    fun_l26_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n441()</div><div class='add'>+    fun_l26_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n442()</div><div class='add'>+    fun_l26_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n443()</div><div class='add'>+    fun_l26_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n444()</div><div class='add'>+    fun_l26_n715</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n445()</div><div class='add'>+    fun_l26_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n446()</div><div class='add'>+    fun_l26_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n447()</div><div class='add'>+    fun_l26_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n448()</div><div class='add'>+    fun_l26_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n449()</div><div class='add'>+    fun_l26_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n450()</div><div class='add'>+    fun_l26_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n451()</div><div class='add'>+    fun_l26_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n452()</div><div class='add'>+    fun_l26_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n453()</div><div class='add'>+    fun_l26_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n454()</div><div class='add'>+    fun_l26_n193</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n455()</div><div class='add'>+    fun_l26_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n456()</div><div class='add'>+    fun_l26_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n457()</div><div class='add'>+    fun_l26_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n458()</div><div class='add'>+    fun_l26_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n459()</div><div class='add'>+    fun_l26_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n460()</div><div class='add'>+    fun_l26_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n461()</div><div class='add'>+    fun_l26_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n462()</div><div class='add'>+    fun_l26_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n463()</div><div class='add'>+    fun_l26_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n464()</div><div class='add'>+    fun_l26_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n465()</div><div class='add'>+    fun_l26_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n466()</div><div class='add'>+    fun_l26_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n467()</div><div class='add'>+    fun_l26_n910</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n468()</div><div class='add'>+    fun_l26_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n469()</div><div class='add'>+    fun_l26_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n470()</div><div class='add'>+    fun_l26_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n471()</div><div class='add'>+    fun_l26_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n472()</div><div class='add'>+    fun_l26_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n473()</div><div class='add'>+    fun_l26_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n474()</div><div class='add'>+    fun_l26_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n475()</div><div class='add'>+    fun_l26_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n476()</div><div class='add'>+    fun_l26_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n477()</div><div class='add'>+    fun_l26_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n478()</div><div class='add'>+    fun_l26_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n479()</div><div class='add'>+    fun_l26_n588</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n480()</div><div class='add'>+    fun_l26_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n481()</div><div class='add'>+    fun_l26_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n482()</div><div class='add'>+    fun_l26_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n483()</div><div class='add'>+    fun_l26_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n484()</div><div class='add'>+    fun_l26_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n485()</div><div class='add'>+    fun_l26_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n486()</div><div class='add'>+    fun_l26_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n487()</div><div class='add'>+    fun_l26_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n488()</div><div class='add'>+    fun_l26_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n489()</div><div class='add'>+    fun_l26_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n490()</div><div class='add'>+    fun_l26_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n491()</div><div class='add'>+    fun_l26_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n492()</div><div class='add'>+    fun_l26_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n493()</div><div class='add'>+    fun_l26_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n494()</div><div class='add'>+    fun_l26_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n495()</div><div class='add'>+    fun_l26_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n496()</div><div class='add'>+    fun_l26_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n497()</div><div class='add'>+    fun_l26_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n498()</div><div class='add'>+    fun_l26_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n499()</div><div class='add'>+    fun_l26_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n500()</div><div class='add'>+    fun_l26_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n501()</div><div class='add'>+    fun_l26_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n502()</div><div class='add'>+    fun_l26_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n503()</div><div class='add'>+    fun_l26_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n504()</div><div class='add'>+    fun_l26_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n505()</div><div class='add'>+    fun_l26_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n506()</div><div class='add'>+    fun_l26_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n507()</div><div class='add'>+    fun_l26_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n508()</div><div class='add'>+    fun_l26_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n509()</div><div class='add'>+    fun_l26_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n510()</div><div class='add'>+    fun_l26_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n511()</div><div class='add'>+    fun_l26_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n512()</div><div class='add'>+    fun_l26_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n513()</div><div class='add'>+    fun_l26_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n514()</div><div class='add'>+    fun_l26_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n515()</div><div class='add'>+    fun_l26_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n516()</div><div class='add'>+    fun_l26_n897</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n517()</div><div class='add'>+    fun_l26_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n518()</div><div class='add'>+    fun_l26_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n519()</div><div class='add'>+    fun_l26_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n520()</div><div class='add'>+    fun_l26_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n521()</div><div class='add'>+    fun_l26_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n522()</div><div class='add'>+    fun_l26_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n523()</div><div class='add'>+    fun_l26_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n524()</div><div class='add'>+    fun_l26_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n525()</div><div class='add'>+    fun_l26_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n526()</div><div class='add'>+    fun_l26_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n527()</div><div class='add'>+    fun_l26_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n528()</div><div class='add'>+    fun_l26_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n529()</div><div class='add'>+    fun_l26_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n530()</div><div class='add'>+    fun_l26_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n531()</div><div class='add'>+    fun_l26_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n532()</div><div class='add'>+    fun_l26_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n533()</div><div class='add'>+    fun_l26_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n534()</div><div class='add'>+    fun_l26_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n535()</div><div class='add'>+    fun_l26_n540</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n536()</div><div class='add'>+    fun_l26_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n537()</div><div class='add'>+    fun_l26_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n538()</div><div class='add'>+    fun_l26_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n539()</div><div class='add'>+    fun_l26_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n540()</div><div class='add'>+    fun_l26_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n541()</div><div class='add'>+    fun_l26_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n542()</div><div class='add'>+    fun_l26_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n543()</div><div class='add'>+    fun_l26_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n544()</div><div class='add'>+    fun_l26_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n545()</div><div class='add'>+    fun_l26_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n546()</div><div class='add'>+    fun_l26_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n547()</div><div class='add'>+    fun_l26_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n548()</div><div class='add'>+    fun_l26_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n549()</div><div class='add'>+    fun_l26_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n550()</div><div class='add'>+    fun_l26_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n551()</div><div class='add'>+    fun_l26_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n552()</div><div class='add'>+    fun_l26_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n553()</div><div class='add'>+    fun_l26_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n554()</div><div class='add'>+    fun_l26_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n555()</div><div class='add'>+    fun_l26_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n556()</div><div class='add'>+    fun_l26_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n557()</div><div class='add'>+    fun_l26_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n558()</div><div class='add'>+    fun_l26_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n559()</div><div class='add'>+    fun_l26_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n560()</div><div class='add'>+    fun_l26_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n561()</div><div class='add'>+    fun_l26_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n562()</div><div class='add'>+    fun_l26_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n563()</div><div class='add'>+    fun_l26_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n564()</div><div class='add'>+    fun_l26_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n565()</div><div class='add'>+    fun_l26_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n566()</div><div class='add'>+    fun_l26_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n567()</div><div class='add'>+    fun_l26_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n568()</div><div class='add'>+    fun_l26_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n569()</div><div class='add'>+    fun_l26_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n570()</div><div class='add'>+    fun_l26_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n571()</div><div class='add'>+    fun_l26_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n572()</div><div class='add'>+    fun_l26_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n573()</div><div class='add'>+    fun_l26_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n574()</div><div class='add'>+    fun_l26_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n575()</div><div class='add'>+    fun_l26_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n576()</div><div class='add'>+    fun_l26_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n577()</div><div class='add'>+    fun_l26_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n578()</div><div class='add'>+    fun_l26_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n579()</div><div class='add'>+    fun_l26_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n580()</div><div class='add'>+    fun_l26_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n581()</div><div class='add'>+    fun_l26_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n582()</div><div class='add'>+    fun_l26_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n583()</div><div class='add'>+    fun_l26_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n584()</div><div class='add'>+    fun_l26_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n585()</div><div class='add'>+    fun_l26_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n586()</div><div class='add'>+    fun_l26_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n587()</div><div class='add'>+    fun_l26_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n588()</div><div class='add'>+    fun_l26_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n589()</div><div class='add'>+    fun_l26_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n590()</div><div class='add'>+    fun_l26_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n591()</div><div class='add'>+    fun_l26_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n592()</div><div class='add'>+    fun_l26_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n593()</div><div class='add'>+    fun_l26_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n594()</div><div class='add'>+    fun_l26_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n595()</div><div class='add'>+    fun_l26_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n596()</div><div class='add'>+    fun_l26_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n597()</div><div class='add'>+    fun_l26_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n598()</div><div class='add'>+    fun_l26_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n599()</div><div class='add'>+    fun_l26_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n600()</div><div class='add'>+    fun_l26_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n601()</div><div class='add'>+    fun_l26_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n602()</div><div class='add'>+    fun_l26_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n603()</div><div class='add'>+    fun_l26_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n604()</div><div class='add'>+    fun_l26_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n605()</div><div class='add'>+    fun_l26_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n606()</div><div class='add'>+    fun_l26_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n607()</div><div class='add'>+    fun_l26_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n608()</div><div class='add'>+    fun_l26_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n609()</div><div class='add'>+    fun_l26_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n610()</div><div class='add'>+    fun_l26_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n611()</div><div class='add'>+    fun_l26_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n612()</div><div class='add'>+    fun_l26_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n613()</div><div class='add'>+    fun_l26_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n614()</div><div class='add'>+    fun_l26_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n615()</div><div class='add'>+    fun_l26_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n616()</div><div class='add'>+    fun_l26_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n617()</div><div class='add'>+    fun_l26_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n618()</div><div class='add'>+    fun_l26_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n619()</div><div class='add'>+    fun_l26_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n620()</div><div class='add'>+    fun_l26_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n621()</div><div class='add'>+    fun_l26_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n622()</div><div class='add'>+    fun_l26_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n623()</div><div class='add'>+    fun_l26_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n624()</div><div class='add'>+    fun_l26_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n625()</div><div class='add'>+    fun_l26_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n626()</div><div class='add'>+    fun_l26_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n627()</div><div class='add'>+    fun_l26_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n628()</div><div class='add'>+    fun_l26_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n629()</div><div class='add'>+    fun_l26_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n630()</div><div class='add'>+    fun_l26_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n631()</div><div class='add'>+    fun_l26_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n632()</div><div class='add'>+    fun_l26_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n633()</div><div class='add'>+    fun_l26_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n634()</div><div class='add'>+    fun_l26_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n635()</div><div class='add'>+    fun_l26_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n636()</div><div class='add'>+    fun_l26_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n637()</div><div class='add'>+    fun_l26_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n638()</div><div class='add'>+    fun_l26_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n639()</div><div class='add'>+    fun_l26_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n640()</div><div class='add'>+    fun_l26_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n641()</div><div class='add'>+    fun_l26_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n642()</div><div class='add'>+    fun_l26_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n643()</div><div class='add'>+    fun_l26_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n644()</div><div class='add'>+    fun_l26_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n645()</div><div class='add'>+    fun_l26_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n646()</div><div class='add'>+    fun_l26_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n647()</div><div class='add'>+    fun_l26_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n648()</div><div class='add'>+    fun_l26_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n649()</div><div class='add'>+    fun_l26_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n650()</div><div class='add'>+    fun_l26_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n651()</div><div class='add'>+    fun_l26_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n652()</div><div class='add'>+    fun_l26_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n653()</div><div class='add'>+    fun_l26_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n654()</div><div class='add'>+    fun_l26_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n655()</div><div class='add'>+    fun_l26_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n656()</div><div class='add'>+    fun_l26_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n657()</div><div class='add'>+    fun_l26_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n658()</div><div class='add'>+    fun_l26_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n659()</div><div class='add'>+    fun_l26_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n660()</div><div class='add'>+    fun_l26_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n661()</div><div class='add'>+    fun_l26_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n662()</div><div class='add'>+    fun_l26_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n663()</div><div class='add'>+    fun_l26_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n664()</div><div class='add'>+    fun_l26_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n665()</div><div class='add'>+    fun_l26_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n666()</div><div class='add'>+    fun_l26_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n667()</div><div class='add'>+    fun_l26_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n668()</div><div class='add'>+    fun_l26_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n669()</div><div class='add'>+    fun_l26_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n670()</div><div class='add'>+    fun_l26_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n671()</div><div class='add'>+    fun_l26_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n672()</div><div class='add'>+    fun_l26_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n673()</div><div class='add'>+    fun_l26_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n674()</div><div class='add'>+    fun_l26_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n675()</div><div class='add'>+    fun_l26_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n676()</div><div class='add'>+    fun_l26_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n677()</div><div class='add'>+    fun_l26_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n678()</div><div class='add'>+    fun_l26_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n679()</div><div class='add'>+    fun_l26_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n680()</div><div class='add'>+    fun_l26_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n681()</div><div class='add'>+    fun_l26_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n682()</div><div class='add'>+    fun_l26_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n683()</div><div class='add'>+    fun_l26_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n684()</div><div class='add'>+    fun_l26_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n685()</div><div class='add'>+    fun_l26_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n686()</div><div class='add'>+    fun_l26_n770</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n687()</div><div class='add'>+    fun_l26_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n688()</div><div class='add'>+    fun_l26_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n689()</div><div class='add'>+    fun_l26_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n690()</div><div class='add'>+    fun_l26_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n691()</div><div class='add'>+    fun_l26_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n692()</div><div class='add'>+    fun_l26_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n693()</div><div class='add'>+    fun_l26_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n694()</div><div class='add'>+    fun_l26_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n695()</div><div class='add'>+    fun_l26_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n696()</div><div class='add'>+    fun_l26_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n697()</div><div class='add'>+    fun_l26_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n698()</div><div class='add'>+    fun_l26_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n699()</div><div class='add'>+    fun_l26_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n700()</div><div class='add'>+    fun_l26_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n701()</div><div class='add'>+    fun_l26_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n702()</div><div class='add'>+    fun_l26_n732</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n703()</div><div class='add'>+    fun_l26_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n704()</div><div class='add'>+    fun_l26_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n705()</div><div class='add'>+    fun_l26_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n706()</div><div class='add'>+    fun_l26_n543</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n707()</div><div class='add'>+    fun_l26_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n708()</div><div class='add'>+    fun_l26_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n709()</div><div class='add'>+    fun_l26_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n710()</div><div class='add'>+    fun_l26_n614</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n711()</div><div class='add'>+    fun_l26_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n712()</div><div class='add'>+    fun_l26_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n713()</div><div class='add'>+    fun_l26_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n714()</div><div class='add'>+    fun_l26_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n715()</div><div class='add'>+    fun_l26_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n716()</div><div class='add'>+    fun_l26_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n717()</div><div class='add'>+    fun_l26_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n718()</div><div class='add'>+    fun_l26_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n719()</div><div class='add'>+    fun_l26_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n720()</div><div class='add'>+    fun_l26_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n721()</div><div class='add'>+    fun_l26_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n722()</div><div class='add'>+    fun_l26_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n723()</div><div class='add'>+    fun_l26_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n724()</div><div class='add'>+    fun_l26_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n725()</div><div class='add'>+    fun_l26_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n726()</div><div class='add'>+    fun_l26_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n727()</div><div class='add'>+    fun_l26_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n728()</div><div class='add'>+    fun_l26_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n729()</div><div class='add'>+    fun_l26_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n730()</div><div class='add'>+    fun_l26_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n731()</div><div class='add'>+    fun_l26_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n732()</div><div class='add'>+    fun_l26_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n733()</div><div class='add'>+    fun_l26_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n734()</div><div class='add'>+    fun_l26_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n735()</div><div class='add'>+    fun_l26_n2</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n736()</div><div class='add'>+    fun_l26_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n737()</div><div class='add'>+    fun_l26_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n738()</div><div class='add'>+    fun_l26_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n739()</div><div class='add'>+    fun_l26_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n740()</div><div class='add'>+    fun_l26_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n741()</div><div class='add'>+    fun_l26_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n742()</div><div class='add'>+    fun_l26_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n743()</div><div class='add'>+    fun_l26_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n744()</div><div class='add'>+    fun_l26_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n745()</div><div class='add'>+    fun_l26_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n746()</div><div class='add'>+    fun_l26_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n747()</div><div class='add'>+    fun_l26_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n748()</div><div class='add'>+    fun_l26_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n749()</div><div class='add'>+    fun_l26_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n750()</div><div class='add'>+    fun_l26_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n751()</div><div class='add'>+    fun_l26_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n752()</div><div class='add'>+    fun_l26_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n753()</div><div class='add'>+    fun_l26_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n754()</div><div class='add'>+    fun_l26_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n755()</div><div class='add'>+    fun_l26_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n756()</div><div class='add'>+    fun_l26_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n757()</div><div class='add'>+    fun_l26_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n758()</div><div class='add'>+    fun_l26_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n759()</div><div class='add'>+    fun_l26_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n760()</div><div class='add'>+    fun_l26_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n761()</div><div class='add'>+    fun_l26_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n762()</div><div class='add'>+    fun_l26_n262</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n763()</div><div class='add'>+    fun_l26_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n764()</div><div class='add'>+    fun_l26_n518</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n765()</div><div class='add'>+    fun_l26_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n766()</div><div class='add'>+    fun_l26_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n767()</div><div class='add'>+    fun_l26_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n768()</div><div class='add'>+    fun_l26_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n769()</div><div class='add'>+    fun_l26_n546</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n770()</div><div class='add'>+    fun_l26_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n771()</div><div class='add'>+    fun_l26_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n772()</div><div class='add'>+    fun_l26_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n773()</div><div class='add'>+    fun_l26_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n774()</div><div class='add'>+    fun_l26_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n775()</div><div class='add'>+    fun_l26_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n776()</div><div class='add'>+    fun_l26_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n777()</div><div class='add'>+    fun_l26_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n778()</div><div class='add'>+    fun_l26_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n779()</div><div class='add'>+    fun_l26_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n780()</div><div class='add'>+    fun_l26_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n781()</div><div class='add'>+    fun_l26_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n782()</div><div class='add'>+    fun_l26_n442</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n783()</div><div class='add'>+    fun_l26_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n784()</div><div class='add'>+    fun_l26_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n785()</div><div class='add'>+    fun_l26_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n786()</div><div class='add'>+    fun_l26_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n787()</div><div class='add'>+    fun_l26_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n788()</div><div class='add'>+    fun_l26_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n789()</div><div class='add'>+    fun_l26_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n790()</div><div class='add'>+    fun_l26_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n791()</div><div class='add'>+    fun_l26_n926</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n792()</div><div class='add'>+    fun_l26_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n793()</div><div class='add'>+    fun_l26_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n794()</div><div class='add'>+    fun_l26_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n795()</div><div class='add'>+    fun_l26_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n796()</div><div class='add'>+    fun_l26_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n797()</div><div class='add'>+    fun_l26_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n798()</div><div class='add'>+    fun_l26_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n799()</div><div class='add'>+    fun_l26_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n800()</div><div class='add'>+    fun_l26_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n801()</div><div class='add'>+    fun_l26_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n802()</div><div class='add'>+    fun_l26_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n803()</div><div class='add'>+    fun_l26_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n804()</div><div class='add'>+    fun_l26_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n805()</div><div class='add'>+    fun_l26_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n806()</div><div class='add'>+    fun_l26_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n807()</div><div class='add'>+    fun_l26_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n808()</div><div class='add'>+    fun_l26_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n809()</div><div class='add'>+    fun_l26_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n810()</div><div class='add'>+    fun_l26_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n811()</div><div class='add'>+    fun_l26_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n812()</div><div class='add'>+    fun_l26_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n813()</div><div class='add'>+    fun_l26_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n814()</div><div class='add'>+    fun_l26_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n815()</div><div class='add'>+    fun_l26_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n816()</div><div class='add'>+    fun_l26_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n817()</div><div class='add'>+    fun_l26_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n818()</div><div class='add'>+    fun_l26_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n819()</div><div class='add'>+    fun_l26_n773</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n820()</div><div class='add'>+    fun_l26_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n821()</div><div class='add'>+    fun_l26_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n822()</div><div class='add'>+    fun_l26_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n823()</div><div class='add'>+    fun_l26_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n824()</div><div class='add'>+    fun_l26_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n825()</div><div class='add'>+    fun_l26_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n826()</div><div class='add'>+    fun_l26_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n827()</div><div class='add'>+    fun_l26_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n828()</div><div class='add'>+    fun_l26_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n829()</div><div class='add'>+    fun_l26_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n830()</div><div class='add'>+    fun_l26_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n831()</div><div class='add'>+    fun_l26_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n832()</div><div class='add'>+    fun_l26_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n833()</div><div class='add'>+    fun_l26_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n834()</div><div class='add'>+    fun_l26_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n835()</div><div class='add'>+    fun_l26_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n836()</div><div class='add'>+    fun_l26_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n837()</div><div class='add'>+    fun_l26_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n838()</div><div class='add'>+    fun_l26_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n839()</div><div class='add'>+    fun_l26_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n840()</div><div class='add'>+    fun_l26_n38</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n841()</div><div class='add'>+    fun_l26_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n842()</div><div class='add'>+    fun_l26_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n843()</div><div class='add'>+    fun_l26_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n844()</div><div class='add'>+    fun_l26_n501</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n845()</div><div class='add'>+    fun_l26_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n846()</div><div class='add'>+    fun_l26_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n847()</div><div class='add'>+    fun_l26_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n848()</div><div class='add'>+    fun_l26_n687</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n849()</div><div class='add'>+    fun_l26_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n850()</div><div class='add'>+    fun_l26_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n851()</div><div class='add'>+    fun_l26_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n852()</div><div class='add'>+    fun_l26_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n853()</div><div class='add'>+    fun_l26_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n854()</div><div class='add'>+    fun_l26_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n855()</div><div class='add'>+    fun_l26_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n856()</div><div class='add'>+    fun_l26_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n857()</div><div class='add'>+    fun_l26_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n858()</div><div class='add'>+    fun_l26_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n859()</div><div class='add'>+    fun_l26_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n860()</div><div class='add'>+    fun_l26_n116</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n861()</div><div class='add'>+    fun_l26_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n862()</div><div class='add'>+    fun_l26_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n863()</div><div class='add'>+    fun_l26_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n864()</div><div class='add'>+    fun_l26_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n865()</div><div class='add'>+    fun_l26_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n866()</div><div class='add'>+    fun_l26_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n867()</div><div class='add'>+    fun_l26_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n868()</div><div class='add'>+    fun_l26_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n869()</div><div class='add'>+    fun_l26_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n870()</div><div class='add'>+    fun_l26_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n871()</div><div class='add'>+    fun_l26_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n872()</div><div class='add'>+    fun_l26_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n873()</div><div class='add'>+    fun_l26_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n874()</div><div class='add'>+    fun_l26_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n875()</div><div class='add'>+    fun_l26_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n876()</div><div class='add'>+    fun_l26_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n877()</div><div class='add'>+    fun_l26_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n878()</div><div class='add'>+    fun_l26_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n879()</div><div class='add'>+    fun_l26_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n880()</div><div class='add'>+    fun_l26_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n881()</div><div class='add'>+    fun_l26_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n882()</div><div class='add'>+    fun_l26_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n883()</div><div class='add'>+    fun_l26_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n884()</div><div class='add'>+    fun_l26_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n885()</div><div class='add'>+    fun_l26_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n886()</div><div class='add'>+    fun_l26_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n887()</div><div class='add'>+    fun_l26_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n888()</div><div class='add'>+    fun_l26_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n889()</div><div class='add'>+    fun_l26_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n890()</div><div class='add'>+    fun_l26_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n891()</div><div class='add'>+    fun_l26_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n892()</div><div class='add'>+    fun_l26_n334</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n893()</div><div class='add'>+    fun_l26_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n894()</div><div class='add'>+    fun_l26_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n895()</div><div class='add'>+    fun_l26_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n896()</div><div class='add'>+    fun_l26_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n897()</div><div class='add'>+    fun_l26_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n898()</div><div class='add'>+    fun_l26_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n899()</div><div class='add'>+    fun_l26_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n900()</div><div class='add'>+    fun_l26_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n901()</div><div class='add'>+    fun_l26_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n902()</div><div class='add'>+    fun_l26_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n903()</div><div class='add'>+    fun_l26_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n904()</div><div class='add'>+    fun_l26_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n905()</div><div class='add'>+    fun_l26_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n906()</div><div class='add'>+    fun_l26_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n907()</div><div class='add'>+    fun_l26_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n908()</div><div class='add'>+    fun_l26_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n909()</div><div class='add'>+    fun_l26_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n910()</div><div class='add'>+    fun_l26_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n911()</div><div class='add'>+    fun_l26_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n912()</div><div class='add'>+    fun_l26_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n913()</div><div class='add'>+    fun_l26_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n914()</div><div class='add'>+    fun_l26_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n915()</div><div class='add'>+    fun_l26_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n916()</div><div class='add'>+    fun_l26_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n917()</div><div class='add'>+    fun_l26_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n918()</div><div class='add'>+    fun_l26_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n919()</div><div class='add'>+    fun_l26_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n920()</div><div class='add'>+    fun_l26_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n921()</div><div class='add'>+    fun_l26_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n922()</div><div class='add'>+    fun_l26_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n923()</div><div class='add'>+    fun_l26_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n924()</div><div class='add'>+    fun_l26_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n925()</div><div class='add'>+    fun_l26_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n926()</div><div class='add'>+    fun_l26_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n927()</div><div class='add'>+    fun_l26_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n928()</div><div class='add'>+    fun_l26_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n929()</div><div class='add'>+    fun_l26_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n930()</div><div class='add'>+    fun_l26_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n931()</div><div class='add'>+    fun_l26_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n932()</div><div class='add'>+    fun_l26_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n933()</div><div class='add'>+    fun_l26_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n934()</div><div class='add'>+    fun_l26_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n935()</div><div class='add'>+    fun_l26_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n936()</div><div class='add'>+    fun_l26_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n937()</div><div class='add'>+    fun_l26_n874</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n938()</div><div class='add'>+    fun_l26_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n939()</div><div class='add'>+    fun_l26_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n940()</div><div class='add'>+    fun_l26_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n941()</div><div class='add'>+    fun_l26_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n942()</div><div class='add'>+    fun_l26_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n943()</div><div class='add'>+    fun_l26_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n944()</div><div class='add'>+    fun_l26_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n945()</div><div class='add'>+    fun_l26_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n946()</div><div class='add'>+    fun_l26_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n947()</div><div class='add'>+    fun_l26_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n948()</div><div class='add'>+    fun_l26_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n949()</div><div class='add'>+    fun_l26_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n950()</div><div class='add'>+    fun_l26_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n951()</div><div class='add'>+    fun_l26_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n952()</div><div class='add'>+    fun_l26_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n953()</div><div class='add'>+    fun_l26_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n954()</div><div class='add'>+    fun_l26_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n955()</div><div class='add'>+    fun_l26_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n956()</div><div class='add'>+    fun_l26_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n957()</div><div class='add'>+    fun_l26_n552</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n958()</div><div class='add'>+    fun_l26_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n959()</div><div class='add'>+    fun_l26_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n960()</div><div class='add'>+    fun_l26_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n961()</div><div class='add'>+    fun_l26_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n962()</div><div class='add'>+    fun_l26_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n963()</div><div class='add'>+    fun_l26_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n964()</div><div class='add'>+    fun_l26_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n965()</div><div class='add'>+    fun_l26_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n966()</div><div class='add'>+    fun_l26_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n967()</div><div class='add'>+    fun_l26_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n968()</div><div class='add'>+    fun_l26_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n969()</div><div class='add'>+    fun_l26_n312</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n970()</div><div class='add'>+    fun_l26_n674</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n971()</div><div class='add'>+    fun_l26_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n972()</div><div class='add'>+    fun_l26_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n973()</div><div class='add'>+    fun_l26_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n974()</div><div class='add'>+    fun_l26_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n975()</div><div class='add'>+    fun_l26_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n976()</div><div class='add'>+    fun_l26_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n977()</div><div class='add'>+    fun_l26_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n978()</div><div class='add'>+    fun_l26_n662</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n979()</div><div class='add'>+    fun_l26_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n980()</div><div class='add'>+    fun_l26_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n981()</div><div class='add'>+    fun_l26_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n982()</div><div class='add'>+    fun_l26_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n983()</div><div class='add'>+    fun_l26_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n984()</div><div class='add'>+    fun_l26_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n985()</div><div class='add'>+    fun_l26_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n986()</div><div class='add'>+    fun_l26_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n987()</div><div class='add'>+    fun_l26_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n988()</div><div class='add'>+    fun_l26_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n989()</div><div class='add'>+    fun_l26_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n990()</div><div class='add'>+    fun_l26_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n991()</div><div class='add'>+    fun_l26_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n992()</div><div class='add'>+    fun_l26_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n993()</div><div class='add'>+    fun_l26_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n994()</div><div class='add'>+    fun_l26_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n995()</div><div class='add'>+    fun_l26_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n996()</div><div class='add'>+    fun_l26_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n997()</div><div class='add'>+    fun_l26_n41</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n998()</div><div class='add'>+    fun_l26_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l25_n999()</div><div class='add'>+    fun_l26_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n0()</div><div class='add'>+    fun_l27_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n1()</div><div class='add'>+    fun_l27_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n2()</div><div class='add'>+    fun_l27_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n3()</div><div class='add'>+    fun_l27_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n4()</div><div class='add'>+    fun_l27_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n5()</div><div class='add'>+    fun_l27_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n6()</div><div class='add'>+    fun_l27_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n7()</div><div class='add'>+    fun_l27_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n8()</div><div class='add'>+    fun_l27_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n9()</div><div class='add'>+    fun_l27_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n10()</div><div class='add'>+    fun_l27_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n11()</div><div class='add'>+    fun_l27_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n12()</div><div class='add'>+    fun_l27_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n13()</div><div class='add'>+    fun_l27_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n14()</div><div class='add'>+    fun_l27_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n15()</div><div class='add'>+    fun_l27_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n16()</div><div class='add'>+    fun_l27_n351</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n17()</div><div class='add'>+    fun_l27_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n18()</div><div class='add'>+    fun_l27_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n19()</div><div class='add'>+    fun_l27_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n20()</div><div class='add'>+    fun_l27_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n21()</div><div class='add'>+    fun_l27_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n22()</div><div class='add'>+    fun_l27_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n23()</div><div class='add'>+    fun_l27_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n24()</div><div class='add'>+    fun_l27_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n25()</div><div class='add'>+    fun_l27_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n26()</div><div class='add'>+    fun_l27_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n27()</div><div class='add'>+    fun_l27_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n28()</div><div class='add'>+    fun_l27_n704</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n29()</div><div class='add'>+    fun_l27_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n30()</div><div class='add'>+    fun_l27_n834</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n31()</div><div class='add'>+    fun_l27_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n32()</div><div class='add'>+    fun_l27_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n33()</div><div class='add'>+    fun_l27_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n34()</div><div class='add'>+    fun_l27_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n35()</div><div class='add'>+    fun_l27_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n36()</div><div class='add'>+    fun_l27_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n37()</div><div class='add'>+    fun_l27_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n38()</div><div class='add'>+    fun_l27_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n39()</div><div class='add'>+    fun_l27_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n40()</div><div class='add'>+    fun_l27_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n41()</div><div class='add'>+    fun_l27_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n42()</div><div class='add'>+    fun_l27_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n43()</div><div class='add'>+    fun_l27_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n44()</div><div class='add'>+    fun_l27_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n45()</div><div class='add'>+    fun_l27_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n46()</div><div class='add'>+    fun_l27_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n47()</div><div class='add'>+    fun_l27_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n48()</div><div class='add'>+    fun_l27_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n49()</div><div class='add'>+    fun_l27_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n50()</div><div class='add'>+    fun_l27_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n51()</div><div class='add'>+    fun_l27_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n52()</div><div class='add'>+    fun_l27_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n53()</div><div class='add'>+    fun_l27_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n54()</div><div class='add'>+    fun_l27_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n55()</div><div class='add'>+    fun_l27_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n56()</div><div class='add'>+    fun_l27_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n57()</div><div class='add'>+    fun_l27_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n58()</div><div class='add'>+    fun_l27_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n59()</div><div class='add'>+    fun_l27_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n60()</div><div class='add'>+    fun_l27_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n61()</div><div class='add'>+    fun_l27_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n62()</div><div class='add'>+    fun_l27_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n63()</div><div class='add'>+    fun_l27_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n64()</div><div class='add'>+    fun_l27_n549</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n65()</div><div class='add'>+    fun_l27_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n66()</div><div class='add'>+    fun_l27_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n67()</div><div class='add'>+    fun_l27_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n68()</div><div class='add'>+    fun_l27_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n69()</div><div class='add'>+    fun_l27_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n70()</div><div class='add'>+    fun_l27_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n71()</div><div class='add'>+    fun_l27_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n72()</div><div class='add'>+    fun_l27_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n73()</div><div class='add'>+    fun_l27_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n74()</div><div class='add'>+    fun_l27_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n75()</div><div class='add'>+    fun_l27_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n76()</div><div class='add'>+    fun_l27_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n77()</div><div class='add'>+    fun_l27_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n78()</div><div class='add'>+    fun_l27_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n79()</div><div class='add'>+    fun_l27_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n80()</div><div class='add'>+    fun_l27_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n81()</div><div class='add'>+    fun_l27_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n82()</div><div class='add'>+    fun_l27_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n83()</div><div class='add'>+    fun_l27_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n84()</div><div class='add'>+    fun_l27_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n85()</div><div class='add'>+    fun_l27_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n86()</div><div class='add'>+    fun_l27_n800</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n87()</div><div class='add'>+    fun_l27_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n88()</div><div class='add'>+    fun_l27_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n89()</div><div class='add'>+    fun_l27_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n90()</div><div class='add'>+    fun_l27_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n91()</div><div class='add'>+    fun_l27_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n92()</div><div class='add'>+    fun_l27_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n93()</div><div class='add'>+    fun_l27_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n94()</div><div class='add'>+    fun_l27_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n95()</div><div class='add'>+    fun_l27_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n96()</div><div class='add'>+    fun_l27_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n97()</div><div class='add'>+    fun_l27_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n98()</div><div class='add'>+    fun_l27_n95</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n99()</div><div class='add'>+    fun_l27_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n100()</div><div class='add'>+    fun_l27_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n101()</div><div class='add'>+    fun_l27_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n102()</div><div class='add'>+    fun_l27_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n103()</div><div class='add'>+    fun_l27_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n104()</div><div class='add'>+    fun_l27_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n105()</div><div class='add'>+    fun_l27_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n106()</div><div class='add'>+    fun_l27_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n107()</div><div class='add'>+    fun_l27_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n108()</div><div class='add'>+    fun_l27_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n109()</div><div class='add'>+    fun_l27_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n110()</div><div class='add'>+    fun_l27_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n111()</div><div class='add'>+    fun_l27_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n112()</div><div class='add'>+    fun_l27_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n113()</div><div class='add'>+    fun_l27_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n114()</div><div class='add'>+    fun_l27_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n115()</div><div class='add'>+    fun_l27_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n116()</div><div class='add'>+    fun_l27_n914</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n117()</div><div class='add'>+    fun_l27_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n118()</div><div class='add'>+    fun_l27_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n119()</div><div class='add'>+    fun_l27_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n120()</div><div class='add'>+    fun_l27_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n121()</div><div class='add'>+    fun_l27_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n122()</div><div class='add'>+    fun_l27_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n123()</div><div class='add'>+    fun_l27_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n124()</div><div class='add'>+    fun_l27_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n125()</div><div class='add'>+    fun_l27_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n126()</div><div class='add'>+    fun_l27_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n127()</div><div class='add'>+    fun_l27_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n128()</div><div class='add'>+    fun_l27_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n129()</div><div class='add'>+    fun_l27_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n130()</div><div class='add'>+    fun_l27_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n131()</div><div class='add'>+    fun_l27_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n132()</div><div class='add'>+    fun_l27_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n133()</div><div class='add'>+    fun_l27_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n134()</div><div class='add'>+    fun_l27_n164</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n135()</div><div class='add'>+    fun_l27_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n136()</div><div class='add'>+    fun_l27_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n137()</div><div class='add'>+    fun_l27_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n138()</div><div class='add'>+    fun_l27_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n139()</div><div class='add'>+    fun_l27_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n140()</div><div class='add'>+    fun_l27_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n141()</div><div class='add'>+    fun_l27_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n142()</div><div class='add'>+    fun_l27_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n143()</div><div class='add'>+    fun_l27_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n144()</div><div class='add'>+    fun_l27_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n145()</div><div class='add'>+    fun_l27_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n146()</div><div class='add'>+    fun_l27_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n147()</div><div class='add'>+    fun_l27_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n148()</div><div class='add'>+    fun_l27_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n149()</div><div class='add'>+    fun_l27_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n150()</div><div class='add'>+    fun_l27_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n151()</div><div class='add'>+    fun_l27_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n152()</div><div class='add'>+    fun_l27_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n153()</div><div class='add'>+    fun_l27_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n154()</div><div class='add'>+    fun_l27_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n155()</div><div class='add'>+    fun_l27_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n156()</div><div class='add'>+    fun_l27_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n157()</div><div class='add'>+    fun_l27_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n158()</div><div class='add'>+    fun_l27_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n159()</div><div class='add'>+    fun_l27_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n160()</div><div class='add'>+    fun_l27_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n161()</div><div class='add'>+    fun_l27_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n162()</div><div class='add'>+    fun_l27_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n163()</div><div class='add'>+    fun_l27_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n164()</div><div class='add'>+    fun_l27_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n165()</div><div class='add'>+    fun_l27_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n166()</div><div class='add'>+    fun_l27_n223</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n167()</div><div class='add'>+    fun_l27_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n168()</div><div class='add'>+    fun_l27_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n169()</div><div class='add'>+    fun_l27_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n170()</div><div class='add'>+    fun_l27_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n171()</div><div class='add'>+    fun_l27_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n172()</div><div class='add'>+    fun_l27_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n173()</div><div class='add'>+    fun_l27_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n174()</div><div class='add'>+    fun_l27_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n175()</div><div class='add'>+    fun_l27_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n176()</div><div class='add'>+    fun_l27_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n177()</div><div class='add'>+    fun_l27_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n178()</div><div class='add'>+    fun_l27_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n179()</div><div class='add'>+    fun_l27_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n180()</div><div class='add'>+    fun_l27_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n181()</div><div class='add'>+    fun_l27_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n182()</div><div class='add'>+    fun_l27_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n183()</div><div class='add'>+    fun_l27_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n184()</div><div class='add'>+    fun_l27_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n185()</div><div class='add'>+    fun_l27_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n186()</div><div class='add'>+    fun_l27_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n187()</div><div class='add'>+    fun_l27_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n188()</div><div class='add'>+    fun_l27_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n189()</div><div class='add'>+    fun_l27_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n190()</div><div class='add'>+    fun_l27_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n191()</div><div class='add'>+    fun_l27_n24</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n192()</div><div class='add'>+    fun_l27_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n193()</div><div class='add'>+    fun_l27_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n194()</div><div class='add'>+    fun_l27_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n195()</div><div class='add'>+    fun_l27_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n196()</div><div class='add'>+    fun_l27_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n197()</div><div class='add'>+    fun_l27_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n198()</div><div class='add'>+    fun_l27_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n199()</div><div class='add'>+    fun_l27_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n200()</div><div class='add'>+    fun_l27_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n201()</div><div class='add'>+    fun_l27_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n202()</div><div class='add'>+    fun_l27_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n203()</div><div class='add'>+    fun_l27_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n204()</div><div class='add'>+    fun_l27_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n205()</div><div class='add'>+    fun_l27_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n206()</div><div class='add'>+    fun_l27_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n207()</div><div class='add'>+    fun_l27_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n208()</div><div class='add'>+    fun_l27_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n209()</div><div class='add'>+    fun_l27_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n210()</div><div class='add'>+    fun_l27_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n211()</div><div class='add'>+    fun_l27_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n212()</div><div class='add'>+    fun_l27_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n213()</div><div class='add'>+    fun_l27_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n214()</div><div class='add'>+    fun_l27_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n215()</div><div class='add'>+    fun_l27_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n216()</div><div class='add'>+    fun_l27_n822</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n217()</div><div class='add'>+    fun_l27_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n218()</div><div class='add'>+    fun_l27_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n219()</div><div class='add'>+    fun_l27_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n220()</div><div class='add'>+    fun_l27_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n221()</div><div class='add'>+    fun_l27_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n222()</div><div class='add'>+    fun_l27_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n223()</div><div class='add'>+    fun_l27_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n224()</div><div class='add'>+    fun_l27_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n225()</div><div class='add'>+    fun_l27_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n226()</div><div class='add'>+    fun_l27_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n227()</div><div class='add'>+    fun_l27_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n228()</div><div class='add'>+    fun_l27_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n229()</div><div class='add'>+    fun_l27_n750</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n230()</div><div class='add'>+    fun_l27_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n231()</div><div class='add'>+    fun_l27_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n232()</div><div class='add'>+    fun_l27_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n233()</div><div class='add'>+    fun_l27_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n234()</div><div class='add'>+    fun_l27_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n235()</div><div class='add'>+    fun_l27_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n236()</div><div class='add'>+    fun_l27_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n237()</div><div class='add'>+    fun_l27_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n238()</div><div class='add'>+    fun_l27_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n239()</div><div class='add'>+    fun_l27_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n240()</div><div class='add'>+    fun_l27_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n241()</div><div class='add'>+    fun_l27_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n242()</div><div class='add'>+    fun_l27_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n243()</div><div class='add'>+    fun_l27_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n244()</div><div class='add'>+    fun_l27_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n245()</div><div class='add'>+    fun_l27_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n246()</div><div class='add'>+    fun_l27_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n247()</div><div class='add'>+    fun_l27_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n248()</div><div class='add'>+    fun_l27_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n249()</div><div class='add'>+    fun_l27_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n250()</div><div class='add'>+    fun_l27_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n251()</div><div class='add'>+    fun_l27_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n252()</div><div class='add'>+    fun_l27_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n253()</div><div class='add'>+    fun_l27_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n254()</div><div class='add'>+    fun_l27_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n255()</div><div class='add'>+    fun_l27_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n256()</div><div class='add'>+    fun_l27_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n257()</div><div class='add'>+    fun_l27_n787</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n258()</div><div class='add'>+    fun_l27_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n259()</div><div class='add'>+    fun_l27_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n260()</div><div class='add'>+    fun_l27_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n261()</div><div class='add'>+    fun_l27_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n262()</div><div class='add'>+    fun_l27_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n263()</div><div class='add'>+    fun_l27_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n264()</div><div class='add'>+    fun_l27_n114</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n265()</div><div class='add'>+    fun_l27_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n266()</div><div class='add'>+    fun_l27_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n267()</div><div class='add'>+    fun_l27_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n268()</div><div class='add'>+    fun_l27_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n269()</div><div class='add'>+    fun_l27_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n270()</div><div class='add'>+    fun_l27_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n271()</div><div class='add'>+    fun_l27_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n272()</div><div class='add'>+    fun_l27_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n273()</div><div class='add'>+    fun_l27_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n274()</div><div class='add'>+    fun_l27_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n275()</div><div class='add'>+    fun_l27_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n276()</div><div class='add'>+    fun_l27_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n277()</div><div class='add'>+    fun_l27_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n278()</div><div class='add'>+    fun_l27_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n279()</div><div class='add'>+    fun_l27_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n280()</div><div class='add'>+    fun_l27_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n281()</div><div class='add'>+    fun_l27_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n282()</div><div class='add'>+    fun_l27_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n283()</div><div class='add'>+    fun_l27_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n284()</div><div class='add'>+    fun_l27_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n285()</div><div class='add'>+    fun_l27_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n286()</div><div class='add'>+    fun_l27_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n287()</div><div class='add'>+    fun_l27_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n288()</div><div class='add'>+    fun_l27_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n289()</div><div class='add'>+    fun_l27_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n290()</div><div class='add'>+    fun_l27_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n291()</div><div class='add'>+    fun_l27_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n292()</div><div class='add'>+    fun_l27_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n293()</div><div class='add'>+    fun_l27_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n294()</div><div class='add'>+    fun_l27_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n295()</div><div class='add'>+    fun_l27_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n296()</div><div class='add'>+    fun_l27_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n297()</div><div class='add'>+    fun_l27_n758</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n298()</div><div class='add'>+    fun_l27_n417</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n299()</div><div class='add'>+    fun_l27_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n300()</div><div class='add'>+    fun_l27_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n301()</div><div class='add'>+    fun_l27_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n302()</div><div class='add'>+    fun_l27_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n303()</div><div class='add'>+    fun_l27_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n304()</div><div class='add'>+    fun_l27_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n305()</div><div class='add'>+    fun_l27_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n306()</div><div class='add'>+    fun_l27_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n307()</div><div class='add'>+    fun_l27_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n308()</div><div class='add'>+    fun_l27_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n309()</div><div class='add'>+    fun_l27_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n310()</div><div class='add'>+    fun_l27_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n311()</div><div class='add'>+    fun_l27_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n312()</div><div class='add'>+    fun_l27_n885</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n313()</div><div class='add'>+    fun_l27_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n314()</div><div class='add'>+    fun_l27_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n315()</div><div class='add'>+    fun_l27_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n316()</div><div class='add'>+    fun_l27_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n317()</div><div class='add'>+    fun_l27_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n318()</div><div class='add'>+    fun_l27_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n319()</div><div class='add'>+    fun_l27_n265</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n320()</div><div class='add'>+    fun_l27_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n321()</div><div class='add'>+    fun_l27_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n322()</div><div class='add'>+    fun_l27_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n323()</div><div class='add'>+    fun_l27_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n324()</div><div class='add'>+    fun_l27_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n325()</div><div class='add'>+    fun_l27_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n326()</div><div class='add'>+    fun_l27_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n327()</div><div class='add'>+    fun_l27_n882</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n328()</div><div class='add'>+    fun_l27_n99</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n329()</div><div class='add'>+    fun_l27_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n330()</div><div class='add'>+    fun_l27_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n331()</div><div class='add'>+    fun_l27_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n332()</div><div class='add'>+    fun_l27_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n333()</div><div class='add'>+    fun_l27_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n334()</div><div class='add'>+    fun_l27_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n335()</div><div class='add'>+    fun_l27_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n336()</div><div class='add'>+    fun_l27_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n337()</div><div class='add'>+    fun_l27_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n338()</div><div class='add'>+    fun_l27_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n339()</div><div class='add'>+    fun_l27_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n340()</div><div class='add'>+    fun_l27_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n341()</div><div class='add'>+    fun_l27_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n342()</div><div class='add'>+    fun_l27_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n343()</div><div class='add'>+    fun_l27_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n344()</div><div class='add'>+    fun_l27_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n345()</div><div class='add'>+    fun_l27_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n346()</div><div class='add'>+    fun_l27_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n347()</div><div class='add'>+    fun_l27_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n348()</div><div class='add'>+    fun_l27_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n349()</div><div class='add'>+    fun_l27_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n350()</div><div class='add'>+    fun_l27_n735</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n351()</div><div class='add'>+    fun_l27_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n352()</div><div class='add'>+    fun_l27_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n353()</div><div class='add'>+    fun_l27_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n354()</div><div class='add'>+    fun_l27_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n355()</div><div class='add'>+    fun_l27_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n356()</div><div class='add'>+    fun_l27_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n357()</div><div class='add'>+    fun_l27_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n358()</div><div class='add'>+    fun_l27_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n359()</div><div class='add'>+    fun_l27_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n360()</div><div class='add'>+    fun_l27_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n361()</div><div class='add'>+    fun_l27_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n362()</div><div class='add'>+    fun_l27_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n363()</div><div class='add'>+    fun_l27_n169</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n364()</div><div class='add'>+    fun_l27_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n365()</div><div class='add'>+    fun_l27_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n366()</div><div class='add'>+    fun_l27_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n367()</div><div class='add'>+    fun_l27_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n368()</div><div class='add'>+    fun_l27_n660</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n369()</div><div class='add'>+    fun_l27_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n370()</div><div class='add'>+    fun_l27_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n371()</div><div class='add'>+    fun_l27_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n372()</div><div class='add'>+    fun_l27_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n373()</div><div class='add'>+    fun_l27_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n374()</div><div class='add'>+    fun_l27_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n375()</div><div class='add'>+    fun_l27_n433</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n376()</div><div class='add'>+    fun_l27_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n377()</div><div class='add'>+    fun_l27_n542</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n378()</div><div class='add'>+    fun_l27_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n379()</div><div class='add'>+    fun_l27_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n380()</div><div class='add'>+    fun_l27_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n381()</div><div class='add'>+    fun_l27_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n382()</div><div class='add'>+    fun_l27_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n383()</div><div class='add'>+    fun_l27_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n384()</div><div class='add'>+    fun_l27_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n385()</div><div class='add'>+    fun_l27_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n386()</div><div class='add'>+    fun_l27_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n387()</div><div class='add'>+    fun_l27_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n388()</div><div class='add'>+    fun_l27_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n389()</div><div class='add'>+    fun_l27_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n390()</div><div class='add'>+    fun_l27_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n391()</div><div class='add'>+    fun_l27_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n392()</div><div class='add'>+    fun_l27_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n393()</div><div class='add'>+    fun_l27_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n394()</div><div class='add'>+    fun_l27_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n395()</div><div class='add'>+    fun_l27_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n396()</div><div class='add'>+    fun_l27_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n397()</div><div class='add'>+    fun_l27_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n398()</div><div class='add'>+    fun_l27_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n399()</div><div class='add'>+    fun_l27_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n400()</div><div class='add'>+    fun_l27_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n401()</div><div class='add'>+    fun_l27_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n402()</div><div class='add'>+    fun_l27_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n403()</div><div class='add'>+    fun_l27_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n404()</div><div class='add'>+    fun_l27_n47</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n405()</div><div class='add'>+    fun_l27_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n406()</div><div class='add'>+    fun_l27_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n407()</div><div class='add'>+    fun_l27_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n408()</div><div class='add'>+    fun_l27_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n409()</div><div class='add'>+    fun_l27_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n410()</div><div class='add'>+    fun_l27_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n411()</div><div class='add'>+    fun_l27_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n412()</div><div class='add'>+    fun_l27_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n413()</div><div class='add'>+    fun_l27_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n414()</div><div class='add'>+    fun_l27_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n415()</div><div class='add'>+    fun_l27_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n416()</div><div class='add'>+    fun_l27_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n417()</div><div class='add'>+    fun_l27_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n418()</div><div class='add'>+    fun_l27_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n419()</div><div class='add'>+    fun_l27_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n420()</div><div class='add'>+    fun_l27_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n421()</div><div class='add'>+    fun_l27_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n422()</div><div class='add'>+    fun_l27_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n423()</div><div class='add'>+    fun_l27_n942</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n424()</div><div class='add'>+    fun_l27_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n425()</div><div class='add'>+    fun_l27_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n426()</div><div class='add'>+    fun_l27_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n427()</div><div class='add'>+    fun_l27_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n428()</div><div class='add'>+    fun_l27_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n429()</div><div class='add'>+    fun_l27_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n430()</div><div class='add'>+    fun_l27_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n431()</div><div class='add'>+    fun_l27_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n432()</div><div class='add'>+    fun_l27_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n433()</div><div class='add'>+    fun_l27_n599</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n434()</div><div class='add'>+    fun_l27_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n435()</div><div class='add'>+    fun_l27_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n436()</div><div class='add'>+    fun_l27_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n437()</div><div class='add'>+    fun_l27_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n438()</div><div class='add'>+    fun_l27_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n439()</div><div class='add'>+    fun_l27_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n440()</div><div class='add'>+    fun_l27_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n441()</div><div class='add'>+    fun_l27_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n442()</div><div class='add'>+    fun_l27_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n443()</div><div class='add'>+    fun_l27_n840</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n444()</div><div class='add'>+    fun_l27_n904</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n445()</div><div class='add'>+    fun_l27_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n446()</div><div class='add'>+    fun_l27_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n447()</div><div class='add'>+    fun_l27_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n448()</div><div class='add'>+    fun_l27_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n449()</div><div class='add'>+    fun_l27_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n450()</div><div class='add'>+    fun_l27_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n451()</div><div class='add'>+    fun_l27_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n452()</div><div class='add'>+    fun_l27_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n453()</div><div class='add'>+    fun_l27_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n454()</div><div class='add'>+    fun_l27_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n455()</div><div class='add'>+    fun_l27_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n456()</div><div class='add'>+    fun_l27_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n457()</div><div class='add'>+    fun_l27_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n458()</div><div class='add'>+    fun_l27_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n459()</div><div class='add'>+    fun_l27_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n460()</div><div class='add'>+    fun_l27_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n461()</div><div class='add'>+    fun_l27_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n462()</div><div class='add'>+    fun_l27_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n463()</div><div class='add'>+    fun_l27_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n464()</div><div class='add'>+    fun_l27_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n465()</div><div class='add'>+    fun_l27_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n466()</div><div class='add'>+    fun_l27_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n467()</div><div class='add'>+    fun_l27_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n468()</div><div class='add'>+    fun_l27_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n469()</div><div class='add'>+    fun_l27_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n470()</div><div class='add'>+    fun_l27_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n471()</div><div class='add'>+    fun_l27_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n472()</div><div class='add'>+    fun_l27_n104</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n473()</div><div class='add'>+    fun_l27_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n474()</div><div class='add'>+    fun_l27_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n475()</div><div class='add'>+    fun_l27_n403</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n476()</div><div class='add'>+    fun_l27_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n477()</div><div class='add'>+    fun_l27_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n478()</div><div class='add'>+    fun_l27_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n479()</div><div class='add'>+    fun_l27_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n480()</div><div class='add'>+    fun_l27_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n481()</div><div class='add'>+    fun_l27_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n482()</div><div class='add'>+    fun_l27_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n483()</div><div class='add'>+    fun_l27_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n484()</div><div class='add'>+    fun_l27_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n485()</div><div class='add'>+    fun_l27_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n486()</div><div class='add'>+    fun_l27_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n487()</div><div class='add'>+    fun_l27_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n488()</div><div class='add'>+    fun_l27_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n489()</div><div class='add'>+    fun_l27_n4</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n490()</div><div class='add'>+    fun_l27_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n491()</div><div class='add'>+    fun_l27_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n492()</div><div class='add'>+    fun_l27_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n493()</div><div class='add'>+    fun_l27_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n494()</div><div class='add'>+    fun_l27_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n495()</div><div class='add'>+    fun_l27_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n496()</div><div class='add'>+    fun_l27_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n497()</div><div class='add'>+    fun_l27_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n498()</div><div class='add'>+    fun_l27_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n499()</div><div class='add'>+    fun_l27_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n500()</div><div class='add'>+    fun_l27_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n501()</div><div class='add'>+    fun_l27_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n502()</div><div class='add'>+    fun_l27_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n503()</div><div class='add'>+    fun_l27_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n504()</div><div class='add'>+    fun_l27_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n505()</div><div class='add'>+    fun_l27_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n506()</div><div class='add'>+    fun_l27_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n507()</div><div class='add'>+    fun_l27_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n508()</div><div class='add'>+    fun_l27_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n509()</div><div class='add'>+    fun_l27_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n510()</div><div class='add'>+    fun_l27_n325</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n511()</div><div class='add'>+    fun_l27_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n512()</div><div class='add'>+    fun_l27_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n513()</div><div class='add'>+    fun_l27_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n514()</div><div class='add'>+    fun_l27_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n515()</div><div class='add'>+    fun_l27_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n516()</div><div class='add'>+    fun_l27_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n517()</div><div class='add'>+    fun_l27_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n518()</div><div class='add'>+    fun_l27_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n519()</div><div class='add'>+    fun_l27_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n520()</div><div class='add'>+    fun_l27_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n521()</div><div class='add'>+    fun_l27_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n522()</div><div class='add'>+    fun_l27_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n523()</div><div class='add'>+    fun_l27_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n524()</div><div class='add'>+    fun_l27_n222</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n525()</div><div class='add'>+    fun_l27_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n526()</div><div class='add'>+    fun_l27_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n527()</div><div class='add'>+    fun_l27_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n528()</div><div class='add'>+    fun_l27_n361</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n529()</div><div class='add'>+    fun_l27_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n530()</div><div class='add'>+    fun_l27_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n531()</div><div class='add'>+    fun_l27_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n532()</div><div class='add'>+    fun_l27_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n533()</div><div class='add'>+    fun_l27_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n534()</div><div class='add'>+    fun_l27_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n535()</div><div class='add'>+    fun_l27_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n536()</div><div class='add'>+    fun_l27_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n537()</div><div class='add'>+    fun_l27_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n538()</div><div class='add'>+    fun_l27_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n539()</div><div class='add'>+    fun_l27_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n540()</div><div class='add'>+    fun_l27_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n541()</div><div class='add'>+    fun_l27_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n542()</div><div class='add'>+    fun_l27_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n543()</div><div class='add'>+    fun_l27_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n544()</div><div class='add'>+    fun_l27_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n545()</div><div class='add'>+    fun_l27_n785</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n546()</div><div class='add'>+    fun_l27_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n547()</div><div class='add'>+    fun_l27_n191</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n548()</div><div class='add'>+    fun_l27_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n549()</div><div class='add'>+    fun_l27_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n550()</div><div class='add'>+    fun_l27_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n551()</div><div class='add'>+    fun_l27_n516</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n552()</div><div class='add'>+    fun_l27_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n553()</div><div class='add'>+    fun_l27_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n554()</div><div class='add'>+    fun_l27_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n555()</div><div class='add'>+    fun_l27_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n556()</div><div class='add'>+    fun_l27_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n557()</div><div class='add'>+    fun_l27_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n558()</div><div class='add'>+    fun_l27_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n559()</div><div class='add'>+    fun_l27_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n560()</div><div class='add'>+    fun_l27_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n561()</div><div class='add'>+    fun_l27_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n562()</div><div class='add'>+    fun_l27_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n563()</div><div class='add'>+    fun_l27_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n564()</div><div class='add'>+    fun_l27_n29</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n565()</div><div class='add'>+    fun_l27_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n566()</div><div class='add'>+    fun_l27_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n567()</div><div class='add'>+    fun_l27_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n568()</div><div class='add'>+    fun_l27_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n569()</div><div class='add'>+    fun_l27_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n570()</div><div class='add'>+    fun_l27_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n571()</div><div class='add'>+    fun_l27_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n572()</div><div class='add'>+    fun_l27_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n573()</div><div class='add'>+    fun_l27_n224</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n574()</div><div class='add'>+    fun_l27_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n575()</div><div class='add'>+    fun_l27_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n576()</div><div class='add'>+    fun_l27_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n577()</div><div class='add'>+    fun_l27_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n578()</div><div class='add'>+    fun_l27_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n579()</div><div class='add'>+    fun_l27_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n580()</div><div class='add'>+    fun_l27_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n581()</div><div class='add'>+    fun_l27_n795</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n582()</div><div class='add'>+    fun_l27_n831</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n583()</div><div class='add'>+    fun_l27_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n584()</div><div class='add'>+    fun_l27_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n585()</div><div class='add'>+    fun_l27_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n586()</div><div class='add'>+    fun_l27_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n587()</div><div class='add'>+    fun_l27_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n588()</div><div class='add'>+    fun_l27_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n589()</div><div class='add'>+    fun_l27_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n590()</div><div class='add'>+    fun_l27_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n591()</div><div class='add'>+    fun_l27_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n592()</div><div class='add'>+    fun_l27_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n593()</div><div class='add'>+    fun_l27_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n594()</div><div class='add'>+    fun_l27_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n595()</div><div class='add'>+    fun_l27_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n596()</div><div class='add'>+    fun_l27_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n597()</div><div class='add'>+    fun_l27_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n598()</div><div class='add'>+    fun_l27_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n599()</div><div class='add'>+    fun_l27_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n600()</div><div class='add'>+    fun_l27_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n601()</div><div class='add'>+    fun_l27_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n602()</div><div class='add'>+    fun_l27_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n603()</div><div class='add'>+    fun_l27_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n604()</div><div class='add'>+    fun_l27_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n605()</div><div class='add'>+    fun_l27_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n606()</div><div class='add'>+    fun_l27_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n607()</div><div class='add'>+    fun_l27_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n608()</div><div class='add'>+    fun_l27_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n609()</div><div class='add'>+    fun_l27_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n610()</div><div class='add'>+    fun_l27_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n611()</div><div class='add'>+    fun_l27_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n612()</div><div class='add'>+    fun_l27_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n613()</div><div class='add'>+    fun_l27_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n614()</div><div class='add'>+    fun_l27_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n615()</div><div class='add'>+    fun_l27_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n616()</div><div class='add'>+    fun_l27_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n617()</div><div class='add'>+    fun_l27_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n618()</div><div class='add'>+    fun_l27_n781</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n619()</div><div class='add'>+    fun_l27_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n620()</div><div class='add'>+    fun_l27_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n621()</div><div class='add'>+    fun_l27_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n622()</div><div class='add'>+    fun_l27_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n623()</div><div class='add'>+    fun_l27_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n624()</div><div class='add'>+    fun_l27_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n625()</div><div class='add'>+    fun_l27_n553</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n626()</div><div class='add'>+    fun_l27_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n627()</div><div class='add'>+    fun_l27_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n628()</div><div class='add'>+    fun_l27_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n629()</div><div class='add'>+    fun_l27_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n630()</div><div class='add'>+    fun_l27_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n631()</div><div class='add'>+    fun_l27_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n632()</div><div class='add'>+    fun_l27_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n633()</div><div class='add'>+    fun_l27_n163</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n634()</div><div class='add'>+    fun_l27_n821</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n635()</div><div class='add'>+    fun_l27_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n636()</div><div class='add'>+    fun_l27_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n637()</div><div class='add'>+    fun_l27_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n638()</div><div class='add'>+    fun_l27_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n639()</div><div class='add'>+    fun_l27_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n640()</div><div class='add'>+    fun_l27_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n641()</div><div class='add'>+    fun_l27_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n642()</div><div class='add'>+    fun_l27_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n643()</div><div class='add'>+    fun_l27_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n644()</div><div class='add'>+    fun_l27_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n645()</div><div class='add'>+    fun_l27_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n646()</div><div class='add'>+    fun_l27_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n647()</div><div class='add'>+    fun_l27_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n648()</div><div class='add'>+    fun_l27_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n649()</div><div class='add'>+    fun_l27_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n650()</div><div class='add'>+    fun_l27_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n651()</div><div class='add'>+    fun_l27_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n652()</div><div class='add'>+    fun_l27_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n653()</div><div class='add'>+    fun_l27_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n654()</div><div class='add'>+    fun_l27_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n655()</div><div class='add'>+    fun_l27_n402</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n656()</div><div class='add'>+    fun_l27_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n657()</div><div class='add'>+    fun_l27_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n658()</div><div class='add'>+    fun_l27_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n659()</div><div class='add'>+    fun_l27_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n660()</div><div class='add'>+    fun_l27_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n661()</div><div class='add'>+    fun_l27_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n662()</div><div class='add'>+    fun_l27_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n663()</div><div class='add'>+    fun_l27_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n664()</div><div class='add'>+    fun_l27_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n665()</div><div class='add'>+    fun_l27_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n666()</div><div class='add'>+    fun_l27_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n667()</div><div class='add'>+    fun_l27_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n668()</div><div class='add'>+    fun_l27_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n669()</div><div class='add'>+    fun_l27_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n670()</div><div class='add'>+    fun_l27_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n671()</div><div class='add'>+    fun_l27_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n672()</div><div class='add'>+    fun_l27_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n673()</div><div class='add'>+    fun_l27_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n674()</div><div class='add'>+    fun_l27_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n675()</div><div class='add'>+    fun_l27_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n676()</div><div class='add'>+    fun_l27_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n677()</div><div class='add'>+    fun_l27_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n678()</div><div class='add'>+    fun_l27_n138</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n679()</div><div class='add'>+    fun_l27_n998</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n680()</div><div class='add'>+    fun_l27_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n681()</div><div class='add'>+    fun_l27_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n682()</div><div class='add'>+    fun_l27_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n683()</div><div class='add'>+    fun_l27_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n684()</div><div class='add'>+    fun_l27_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n685()</div><div class='add'>+    fun_l27_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n686()</div><div class='add'>+    fun_l27_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n687()</div><div class='add'>+    fun_l27_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n688()</div><div class='add'>+    fun_l27_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n689()</div><div class='add'>+    fun_l27_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n690()</div><div class='add'>+    fun_l27_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n691()</div><div class='add'>+    fun_l27_n554</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n692()</div><div class='add'>+    fun_l27_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n693()</div><div class='add'>+    fun_l27_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n694()</div><div class='add'>+    fun_l27_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n695()</div><div class='add'>+    fun_l27_n794</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n696()</div><div class='add'>+    fun_l27_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n697()</div><div class='add'>+    fun_l27_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n698()</div><div class='add'>+    fun_l27_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n699()</div><div class='add'>+    fun_l27_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n700()</div><div class='add'>+    fun_l27_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n701()</div><div class='add'>+    fun_l27_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n702()</div><div class='add'>+    fun_l27_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n703()</div><div class='add'>+    fun_l27_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n704()</div><div class='add'>+    fun_l27_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n705()</div><div class='add'>+    fun_l27_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n706()</div><div class='add'>+    fun_l27_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n707()</div><div class='add'>+    fun_l27_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n708()</div><div class='add'>+    fun_l27_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n709()</div><div class='add'>+    fun_l27_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n710()</div><div class='add'>+    fun_l27_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n711()</div><div class='add'>+    fun_l27_n341</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n712()</div><div class='add'>+    fun_l27_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n713()</div><div class='add'>+    fun_l27_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n714()</div><div class='add'>+    fun_l27_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n715()</div><div class='add'>+    fun_l27_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n716()</div><div class='add'>+    fun_l27_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n717()</div><div class='add'>+    fun_l27_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n718()</div><div class='add'>+    fun_l27_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n719()</div><div class='add'>+    fun_l27_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n720()</div><div class='add'>+    fun_l27_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n721()</div><div class='add'>+    fun_l27_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n722()</div><div class='add'>+    fun_l27_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n723()</div><div class='add'>+    fun_l27_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n724()</div><div class='add'>+    fun_l27_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n725()</div><div class='add'>+    fun_l27_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n726()</div><div class='add'>+    fun_l27_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n727()</div><div class='add'>+    fun_l27_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n728()</div><div class='add'>+    fun_l27_n777</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n729()</div><div class='add'>+    fun_l27_n729</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n730()</div><div class='add'>+    fun_l27_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n731()</div><div class='add'>+    fun_l27_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n732()</div><div class='add'>+    fun_l27_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n733()</div><div class='add'>+    fun_l27_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n734()</div><div class='add'>+    fun_l27_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n735()</div><div class='add'>+    fun_l27_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n736()</div><div class='add'>+    fun_l27_n881</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n737()</div><div class='add'>+    fun_l27_n416</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n738()</div><div class='add'>+    fun_l27_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n739()</div><div class='add'>+    fun_l27_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n740()</div><div class='add'>+    fun_l27_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n741()</div><div class='add'>+    fun_l27_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n742()</div><div class='add'>+    fun_l27_n564</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n743()</div><div class='add'>+    fun_l27_n217</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n744()</div><div class='add'>+    fun_l27_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n745()</div><div class='add'>+    fun_l27_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n746()</div><div class='add'>+    fun_l27_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n747()</div><div class='add'>+    fun_l27_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n748()</div><div class='add'>+    fun_l27_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n749()</div><div class='add'>+    fun_l27_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n750()</div><div class='add'>+    fun_l27_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n751()</div><div class='add'>+    fun_l27_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n752()</div><div class='add'>+    fun_l27_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n753()</div><div class='add'>+    fun_l27_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n754()</div><div class='add'>+    fun_l27_n947</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n755()</div><div class='add'>+    fun_l27_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n756()</div><div class='add'>+    fun_l27_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n757()</div><div class='add'>+    fun_l27_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n758()</div><div class='add'>+    fun_l27_n853</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n759()</div><div class='add'>+    fun_l27_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n760()</div><div class='add'>+    fun_l27_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n761()</div><div class='add'>+    fun_l27_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n762()</div><div class='add'>+    fun_l27_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n763()</div><div class='add'>+    fun_l27_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n764()</div><div class='add'>+    fun_l27_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n765()</div><div class='add'>+    fun_l27_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n766()</div><div class='add'>+    fun_l27_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n767()</div><div class='add'>+    fun_l27_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n768()</div><div class='add'>+    fun_l27_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n769()</div><div class='add'>+    fun_l27_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n770()</div><div class='add'>+    fun_l27_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n771()</div><div class='add'>+    fun_l27_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n772()</div><div class='add'>+    fun_l27_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n773()</div><div class='add'>+    fun_l27_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n774()</div><div class='add'>+    fun_l27_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n775()</div><div class='add'>+    fun_l27_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n776()</div><div class='add'>+    fun_l27_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n777()</div><div class='add'>+    fun_l27_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n778()</div><div class='add'>+    fun_l27_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n779()</div><div class='add'>+    fun_l27_n810</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n780()</div><div class='add'>+    fun_l27_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n781()</div><div class='add'>+    fun_l27_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n782()</div><div class='add'>+    fun_l27_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n783()</div><div class='add'>+    fun_l27_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n784()</div><div class='add'>+    fun_l27_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n785()</div><div class='add'>+    fun_l27_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n786()</div><div class='add'>+    fun_l27_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n787()</div><div class='add'>+    fun_l27_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n788()</div><div class='add'>+    fun_l27_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n789()</div><div class='add'>+    fun_l27_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n790()</div><div class='add'>+    fun_l27_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n791()</div><div class='add'>+    fun_l27_n310</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n792()</div><div class='add'>+    fun_l27_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n793()</div><div class='add'>+    fun_l27_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n794()</div><div class='add'>+    fun_l27_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n795()</div><div class='add'>+    fun_l27_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n796()</div><div class='add'>+    fun_l27_n749</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n797()</div><div class='add'>+    fun_l27_n502</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n798()</div><div class='add'>+    fun_l27_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n799()</div><div class='add'>+    fun_l27_n851</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n800()</div><div class='add'>+    fun_l27_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n801()</div><div class='add'>+    fun_l27_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n802()</div><div class='add'>+    fun_l27_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n803()</div><div class='add'>+    fun_l27_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n804()</div><div class='add'>+    fun_l27_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n805()</div><div class='add'>+    fun_l27_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n806()</div><div class='add'>+    fun_l27_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n807()</div><div class='add'>+    fun_l27_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n808()</div><div class='add'>+    fun_l27_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n809()</div><div class='add'>+    fun_l27_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n810()</div><div class='add'>+    fun_l27_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n811()</div><div class='add'>+    fun_l27_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n812()</div><div class='add'>+    fun_l27_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n813()</div><div class='add'>+    fun_l27_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n814()</div><div class='add'>+    fun_l27_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n815()</div><div class='add'>+    fun_l27_n6</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n816()</div><div class='add'>+    fun_l27_n486</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n817()</div><div class='add'>+    fun_l27_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n818()</div><div class='add'>+    fun_l27_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n819()</div><div class='add'>+    fun_l27_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n820()</div><div class='add'>+    fun_l27_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n821()</div><div class='add'>+    fun_l27_n460</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n822()</div><div class='add'>+    fun_l27_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n823()</div><div class='add'>+    fun_l27_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n824()</div><div class='add'>+    fun_l27_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n825()</div><div class='add'>+    fun_l27_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n826()</div><div class='add'>+    fun_l27_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n827()</div><div class='add'>+    fun_l27_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n828()</div><div class='add'>+    fun_l27_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n829()</div><div class='add'>+    fun_l27_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n830()</div><div class='add'>+    fun_l27_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n831()</div><div class='add'>+    fun_l27_n79</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n832()</div><div class='add'>+    fun_l27_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n833()</div><div class='add'>+    fun_l27_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n834()</div><div class='add'>+    fun_l27_n186</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n835()</div><div class='add'>+    fun_l27_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n836()</div><div class='add'>+    fun_l27_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n837()</div><div class='add'>+    fun_l27_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n838()</div><div class='add'>+    fun_l27_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n839()</div><div class='add'>+    fun_l27_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n840()</div><div class='add'>+    fun_l27_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n841()</div><div class='add'>+    fun_l27_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n842()</div><div class='add'>+    fun_l27_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n843()</div><div class='add'>+    fun_l27_n359</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n844()</div><div class='add'>+    fun_l27_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n845()</div><div class='add'>+    fun_l27_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n846()</div><div class='add'>+    fun_l27_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n847()</div><div class='add'>+    fun_l27_n555</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n848()</div><div class='add'>+    fun_l27_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n849()</div><div class='add'>+    fun_l27_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n850()</div><div class='add'>+    fun_l27_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n851()</div><div class='add'>+    fun_l27_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n852()</div><div class='add'>+    fun_l27_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n853()</div><div class='add'>+    fun_l27_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n854()</div><div class='add'>+    fun_l27_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n855()</div><div class='add'>+    fun_l27_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n856()</div><div class='add'>+    fun_l27_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n857()</div><div class='add'>+    fun_l27_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n858()</div><div class='add'>+    fun_l27_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n859()</div><div class='add'>+    fun_l27_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n860()</div><div class='add'>+    fun_l27_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n861()</div><div class='add'>+    fun_l27_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n862()</div><div class='add'>+    fun_l27_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n863()</div><div class='add'>+    fun_l27_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n864()</div><div class='add'>+    fun_l27_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n865()</div><div class='add'>+    fun_l27_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n866()</div><div class='add'>+    fun_l27_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n867()</div><div class='add'>+    fun_l27_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n868()</div><div class='add'>+    fun_l27_n965</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n869()</div><div class='add'>+    fun_l27_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n870()</div><div class='add'>+    fun_l27_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n871()</div><div class='add'>+    fun_l27_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n872()</div><div class='add'>+    fun_l27_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n873()</div><div class='add'>+    fun_l27_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n874()</div><div class='add'>+    fun_l27_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n875()</div><div class='add'>+    fun_l27_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n876()</div><div class='add'>+    fun_l27_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n877()</div><div class='add'>+    fun_l27_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n878()</div><div class='add'>+    fun_l27_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n879()</div><div class='add'>+    fun_l27_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n880()</div><div class='add'>+    fun_l27_n575</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n881()</div><div class='add'>+    fun_l27_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n882()</div><div class='add'>+    fun_l27_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n883()</div><div class='add'>+    fun_l27_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n884()</div><div class='add'>+    fun_l27_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n885()</div><div class='add'>+    fun_l27_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n886()</div><div class='add'>+    fun_l27_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n887()</div><div class='add'>+    fun_l27_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n888()</div><div class='add'>+    fun_l27_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n889()</div><div class='add'>+    fun_l27_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n890()</div><div class='add'>+    fun_l27_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n891()</div><div class='add'>+    fun_l27_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n892()</div><div class='add'>+    fun_l27_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n893()</div><div class='add'>+    fun_l27_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n894()</div><div class='add'>+    fun_l27_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n895()</div><div class='add'>+    fun_l27_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n896()</div><div class='add'>+    fun_l27_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n897()</div><div class='add'>+    fun_l27_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n898()</div><div class='add'>+    fun_l27_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n899()</div><div class='add'>+    fun_l27_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n900()</div><div class='add'>+    fun_l27_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n901()</div><div class='add'>+    fun_l27_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n902()</div><div class='add'>+    fun_l27_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n903()</div><div class='add'>+    fun_l27_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n904()</div><div class='add'>+    fun_l27_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n905()</div><div class='add'>+    fun_l27_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n906()</div><div class='add'>+    fun_l27_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n907()</div><div class='add'>+    fun_l27_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n908()</div><div class='add'>+    fun_l27_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n909()</div><div class='add'>+    fun_l27_n649</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n910()</div><div class='add'>+    fun_l27_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n911()</div><div class='add'>+    fun_l27_n474</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n912()</div><div class='add'>+    fun_l27_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n913()</div><div class='add'>+    fun_l27_n199</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n914()</div><div class='add'>+    fun_l27_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n915()</div><div class='add'>+    fun_l27_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n916()</div><div class='add'>+    fun_l27_n734</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n917()</div><div class='add'>+    fun_l27_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n918()</div><div class='add'>+    fun_l27_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n919()</div><div class='add'>+    fun_l27_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n920()</div><div class='add'>+    fun_l27_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n921()</div><div class='add'>+    fun_l27_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n922()</div><div class='add'>+    fun_l27_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n923()</div><div class='add'>+    fun_l27_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n924()</div><div class='add'>+    fun_l27_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n925()</div><div class='add'>+    fun_l27_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n926()</div><div class='add'>+    fun_l27_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n927()</div><div class='add'>+    fun_l27_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n928()</div><div class='add'>+    fun_l27_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n929()</div><div class='add'>+    fun_l27_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n930()</div><div class='add'>+    fun_l27_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n931()</div><div class='add'>+    fun_l27_n835</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n932()</div><div class='add'>+    fun_l27_n90</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n933()</div><div class='add'>+    fun_l27_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n934()</div><div class='add'>+    fun_l27_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n935()</div><div class='add'>+    fun_l27_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n936()</div><div class='add'>+    fun_l27_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n937()</div><div class='add'>+    fun_l27_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n938()</div><div class='add'>+    fun_l27_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n939()</div><div class='add'>+    fun_l27_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n940()</div><div class='add'>+    fun_l27_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n941()</div><div class='add'>+    fun_l27_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n942()</div><div class='add'>+    fun_l27_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n943()</div><div class='add'>+    fun_l27_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n944()</div><div class='add'>+    fun_l27_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n945()</div><div class='add'>+    fun_l27_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n946()</div><div class='add'>+    fun_l27_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n947()</div><div class='add'>+    fun_l27_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n948()</div><div class='add'>+    fun_l27_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n949()</div><div class='add'>+    fun_l27_n931</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n950()</div><div class='add'>+    fun_l27_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n951()</div><div class='add'>+    fun_l27_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n952()</div><div class='add'>+    fun_l27_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n953()</div><div class='add'>+    fun_l27_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n954()</div><div class='add'>+    fun_l27_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n955()</div><div class='add'>+    fun_l27_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n956()</div><div class='add'>+    fun_l27_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n957()</div><div class='add'>+    fun_l27_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n958()</div><div class='add'>+    fun_l27_n900</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n959()</div><div class='add'>+    fun_l27_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n960()</div><div class='add'>+    fun_l27_n443</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n961()</div><div class='add'>+    fun_l27_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n962()</div><div class='add'>+    fun_l27_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n963()</div><div class='add'>+    fun_l27_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n964()</div><div class='add'>+    fun_l27_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n965()</div><div class='add'>+    fun_l27_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n966()</div><div class='add'>+    fun_l27_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n967()</div><div class='add'>+    fun_l27_n490</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n968()</div><div class='add'>+    fun_l27_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n969()</div><div class='add'>+    fun_l27_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n970()</div><div class='add'>+    fun_l27_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n971()</div><div class='add'>+    fun_l27_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n972()</div><div class='add'>+    fun_l27_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n973()</div><div class='add'>+    fun_l27_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n974()</div><div class='add'>+    fun_l27_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n975()</div><div class='add'>+    fun_l27_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n976()</div><div class='add'>+    fun_l27_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n977()</div><div class='add'>+    fun_l27_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n978()</div><div class='add'>+    fun_l27_n511</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n979()</div><div class='add'>+    fun_l27_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n980()</div><div class='add'>+    fun_l27_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n981()</div><div class='add'>+    fun_l27_n153</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n982()</div><div class='add'>+    fun_l27_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n983()</div><div class='add'>+    fun_l27_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n984()</div><div class='add'>+    fun_l27_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n985()</div><div class='add'>+    fun_l27_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n986()</div><div class='add'>+    fun_l27_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n987()</div><div class='add'>+    fun_l27_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n988()</div><div class='add'>+    fun_l27_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n989()</div><div class='add'>+    fun_l27_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n990()</div><div class='add'>+    fun_l27_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n991()</div><div class='add'>+    fun_l27_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n992()</div><div class='add'>+    fun_l27_n39</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n993()</div><div class='add'>+    fun_l27_n356</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n994()</div><div class='add'>+    fun_l27_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n995()</div><div class='add'>+    fun_l27_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n996()</div><div class='add'>+    fun_l27_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n997()</div><div class='add'>+    fun_l27_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n998()</div><div class='add'>+    fun_l27_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l26_n999()</div><div class='add'>+    fun_l27_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n0()</div><div class='add'>+    fun_l28_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n1()</div><div class='add'>+    fun_l28_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n2()</div><div class='add'>+    fun_l28_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n3()</div><div class='add'>+    fun_l28_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n4()</div><div class='add'>+    fun_l28_n172</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n5()</div><div class='add'>+    fun_l28_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n6()</div><div class='add'>+    fun_l28_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n7()</div><div class='add'>+    fun_l28_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n8()</div><div class='add'>+    fun_l28_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n9()</div><div class='add'>+    fun_l28_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n10()</div><div class='add'>+    fun_l28_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n11()</div><div class='add'>+    fun_l28_n454</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n12()</div><div class='add'>+    fun_l28_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n13()</div><div class='add'>+    fun_l28_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n14()</div><div class='add'>+    fun_l28_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n15()</div><div class='add'>+    fun_l28_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n16()</div><div class='add'>+    fun_l28_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n17()</div><div class='add'>+    fun_l28_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n18()</div><div class='add'>+    fun_l28_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n19()</div><div class='add'>+    fun_l28_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n20()</div><div class='add'>+    fun_l28_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n21()</div><div class='add'>+    fun_l28_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n22()</div><div class='add'>+    fun_l28_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n23()</div><div class='add'>+    fun_l28_n918</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n24()</div><div class='add'>+    fun_l28_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n25()</div><div class='add'>+    fun_l28_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n26()</div><div class='add'>+    fun_l28_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n27()</div><div class='add'>+    fun_l28_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n28()</div><div class='add'>+    fun_l28_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n29()</div><div class='add'>+    fun_l28_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n30()</div><div class='add'>+    fun_l28_n260</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n31()</div><div class='add'>+    fun_l28_n174</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n32()</div><div class='add'>+    fun_l28_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n33()</div><div class='add'>+    fun_l28_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n34()</div><div class='add'>+    fun_l28_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n35()</div><div class='add'>+    fun_l28_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n36()</div><div class='add'>+    fun_l28_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n37()</div><div class='add'>+    fun_l28_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n38()</div><div class='add'>+    fun_l28_n147</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n39()</div><div class='add'>+    fun_l28_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n40()</div><div class='add'>+    fun_l28_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n41()</div><div class='add'>+    fun_l28_n579</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n42()</div><div class='add'>+    fun_l28_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n43()</div><div class='add'>+    fun_l28_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n44()</div><div class='add'>+    fun_l28_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n45()</div><div class='add'>+    fun_l28_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n46()</div><div class='add'>+    fun_l28_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n47()</div><div class='add'>+    fun_l28_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n48()</div><div class='add'>+    fun_l28_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n49()</div><div class='add'>+    fun_l28_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n50()</div><div class='add'>+    fun_l28_n930</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n51()</div><div class='add'>+    fun_l28_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n52()</div><div class='add'>+    fun_l28_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n53()</div><div class='add'>+    fun_l28_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n54()</div><div class='add'>+    fun_l28_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n55()</div><div class='add'>+    fun_l28_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n56()</div><div class='add'>+    fun_l28_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n57()</div><div class='add'>+    fun_l28_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n58()</div><div class='add'>+    fun_l28_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n59()</div><div class='add'>+    fun_l28_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n60()</div><div class='add'>+    fun_l28_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n61()</div><div class='add'>+    fun_l28_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n62()</div><div class='add'>+    fun_l28_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n63()</div><div class='add'>+    fun_l28_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n64()</div><div class='add'>+    fun_l28_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n65()</div><div class='add'>+    fun_l28_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n66()</div><div class='add'>+    fun_l28_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n67()</div><div class='add'>+    fun_l28_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n68()</div><div class='add'>+    fun_l28_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n69()</div><div class='add'>+    fun_l28_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n70()</div><div class='add'>+    fun_l28_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n71()</div><div class='add'>+    fun_l28_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n72()</div><div class='add'>+    fun_l28_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n73()</div><div class='add'>+    fun_l28_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n74()</div><div class='add'>+    fun_l28_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n75()</div><div class='add'>+    fun_l28_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n76()</div><div class='add'>+    fun_l28_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n77()</div><div class='add'>+    fun_l28_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n78()</div><div class='add'>+    fun_l28_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n79()</div><div class='add'>+    fun_l28_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n80()</div><div class='add'>+    fun_l28_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n81()</div><div class='add'>+    fun_l28_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n82()</div><div class='add'>+    fun_l28_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n83()</div><div class='add'>+    fun_l28_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n84()</div><div class='add'>+    fun_l28_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n85()</div><div class='add'>+    fun_l28_n818</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n86()</div><div class='add'>+    fun_l28_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n87()</div><div class='add'>+    fun_l28_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n88()</div><div class='add'>+    fun_l28_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n89()</div><div class='add'>+    fun_l28_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n90()</div><div class='add'>+    fun_l28_n140</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n91()</div><div class='add'>+    fun_l28_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n92()</div><div class='add'>+    fun_l28_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n93()</div><div class='add'>+    fun_l28_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n94()</div><div class='add'>+    fun_l28_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n95()</div><div class='add'>+    fun_l28_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n96()</div><div class='add'>+    fun_l28_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n97()</div><div class='add'>+    fun_l28_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n98()</div><div class='add'>+    fun_l28_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n99()</div><div class='add'>+    fun_l28_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n100()</div><div class='add'>+    fun_l28_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n101()</div><div class='add'>+    fun_l28_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n102()</div><div class='add'>+    fun_l28_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n103()</div><div class='add'>+    fun_l28_n64</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n104()</div><div class='add'>+    fun_l28_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n105()</div><div class='add'>+    fun_l28_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n106()</div><div class='add'>+    fun_l28_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n107()</div><div class='add'>+    fun_l28_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n108()</div><div class='add'>+    fun_l28_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n109()</div><div class='add'>+    fun_l28_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n110()</div><div class='add'>+    fun_l28_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n111()</div><div class='add'>+    fun_l28_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n112()</div><div class='add'>+    fun_l28_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n113()</div><div class='add'>+    fun_l28_n263</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n114()</div><div class='add'>+    fun_l28_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n115()</div><div class='add'>+    fun_l28_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n116()</div><div class='add'>+    fun_l28_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n117()</div><div class='add'>+    fun_l28_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n118()</div><div class='add'>+    fun_l28_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n119()</div><div class='add'>+    fun_l28_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n120()</div><div class='add'>+    fun_l28_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n121()</div><div class='add'>+    fun_l28_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n122()</div><div class='add'>+    fun_l28_n406</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n123()</div><div class='add'>+    fun_l28_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n124()</div><div class='add'>+    fun_l28_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n125()</div><div class='add'>+    fun_l28_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n126()</div><div class='add'>+    fun_l28_n192</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n127()</div><div class='add'>+    fun_l28_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n128()</div><div class='add'>+    fun_l28_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n129()</div><div class='add'>+    fun_l28_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n130()</div><div class='add'>+    fun_l28_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n131()</div><div class='add'>+    fun_l28_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n132()</div><div class='add'>+    fun_l28_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n133()</div><div class='add'>+    fun_l28_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n134()</div><div class='add'>+    fun_l28_n55</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n135()</div><div class='add'>+    fun_l28_n726</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n136()</div><div class='add'>+    fun_l28_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n137()</div><div class='add'>+    fun_l28_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n138()</div><div class='add'>+    fun_l28_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n139()</div><div class='add'>+    fun_l28_n332</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n140()</div><div class='add'>+    fun_l28_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n141()</div><div class='add'>+    fun_l28_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n142()</div><div class='add'>+    fun_l28_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n143()</div><div class='add'>+    fun_l28_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n144()</div><div class='add'>+    fun_l28_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n145()</div><div class='add'>+    fun_l28_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n146()</div><div class='add'>+    fun_l28_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n147()</div><div class='add'>+    fun_l28_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n148()</div><div class='add'>+    fun_l28_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n149()</div><div class='add'>+    fun_l28_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n150()</div><div class='add'>+    fun_l28_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n151()</div><div class='add'>+    fun_l28_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n152()</div><div class='add'>+    fun_l28_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n153()</div><div class='add'>+    fun_l28_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n154()</div><div class='add'>+    fun_l28_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n155()</div><div class='add'>+    fun_l28_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n156()</div><div class='add'>+    fun_l28_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n157()</div><div class='add'>+    fun_l28_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n158()</div><div class='add'>+    fun_l28_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n159()</div><div class='add'>+    fun_l28_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n160()</div><div class='add'>+    fun_l28_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n161()</div><div class='add'>+    fun_l28_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n162()</div><div class='add'>+    fun_l28_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n163()</div><div class='add'>+    fun_l28_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n164()</div><div class='add'>+    fun_l28_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n165()</div><div class='add'>+    fun_l28_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n166()</div><div class='add'>+    fun_l28_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n167()</div><div class='add'>+    fun_l28_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n168()</div><div class='add'>+    fun_l28_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n169()</div><div class='add'>+    fun_l28_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n170()</div><div class='add'>+    fun_l28_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n171()</div><div class='add'>+    fun_l28_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n172()</div><div class='add'>+    fun_l28_n533</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n173()</div><div class='add'>+    fun_l28_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n174()</div><div class='add'>+    fun_l28_n97</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n175()</div><div class='add'>+    fun_l28_n944</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n176()</div><div class='add'>+    fun_l28_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n177()</div><div class='add'>+    fun_l28_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n178()</div><div class='add'>+    fun_l28_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n179()</div><div class='add'>+    fun_l28_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n180()</div><div class='add'>+    fun_l28_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n181()</div><div class='add'>+    fun_l28_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n182()</div><div class='add'>+    fun_l28_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n183()</div><div class='add'>+    fun_l28_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n184()</div><div class='add'>+    fun_l28_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n185()</div><div class='add'>+    fun_l28_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n186()</div><div class='add'>+    fun_l28_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n187()</div><div class='add'>+    fun_l28_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n188()</div><div class='add'>+    fun_l28_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n189()</div><div class='add'>+    fun_l28_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n190()</div><div class='add'>+    fun_l28_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n191()</div><div class='add'>+    fun_l28_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n192()</div><div class='add'>+    fun_l28_n828</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n193()</div><div class='add'>+    fun_l28_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n194()</div><div class='add'>+    fun_l28_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n195()</div><div class='add'>+    fun_l28_n593</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n196()</div><div class='add'>+    fun_l28_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n197()</div><div class='add'>+    fun_l28_n390</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n198()</div><div class='add'>+    fun_l28_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n199()</div><div class='add'>+    fun_l28_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n200()</div><div class='add'>+    fun_l28_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n201()</div><div class='add'>+    fun_l28_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n202()</div><div class='add'>+    fun_l28_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n203()</div><div class='add'>+    fun_l28_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n204()</div><div class='add'>+    fun_l28_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n205()</div><div class='add'>+    fun_l28_n368</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n206()</div><div class='add'>+    fun_l28_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n207()</div><div class='add'>+    fun_l28_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n208()</div><div class='add'>+    fun_l28_n130</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n209()</div><div class='add'>+    fun_l28_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n210()</div><div class='add'>+    fun_l28_n94</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n211()</div><div class='add'>+    fun_l28_n966</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n212()</div><div class='add'>+    fun_l28_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n213()</div><div class='add'>+    fun_l28_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n214()</div><div class='add'>+    fun_l28_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n215()</div><div class='add'>+    fun_l28_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n216()</div><div class='add'>+    fun_l28_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n217()</div><div class='add'>+    fun_l28_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n218()</div><div class='add'>+    fun_l28_n960</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n219()</div><div class='add'>+    fun_l28_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n220()</div><div class='add'>+    fun_l28_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n221()</div><div class='add'>+    fun_l28_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n222()</div><div class='add'>+    fun_l28_n190</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n223()</div><div class='add'>+    fun_l28_n753</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n224()</div><div class='add'>+    fun_l28_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n225()</div><div class='add'>+    fun_l28_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n226()</div><div class='add'>+    fun_l28_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n227()</div><div class='add'>+    fun_l28_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n228()</div><div class='add'>+    fun_l28_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n229()</div><div class='add'>+    fun_l28_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n230()</div><div class='add'>+    fun_l28_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n231()</div><div class='add'>+    fun_l28_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n232()</div><div class='add'>+    fun_l28_n598</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n233()</div><div class='add'>+    fun_l28_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n234()</div><div class='add'>+    fun_l28_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n235()</div><div class='add'>+    fun_l28_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n236()</div><div class='add'>+    fun_l28_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n237()</div><div class='add'>+    fun_l28_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n238()</div><div class='add'>+    fun_l28_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n239()</div><div class='add'>+    fun_l28_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n240()</div><div class='add'>+    fun_l28_n619</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n241()</div><div class='add'>+    fun_l28_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n242()</div><div class='add'>+    fun_l28_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n243()</div><div class='add'>+    fun_l28_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n244()</div><div class='add'>+    fun_l28_n651</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n245()</div><div class='add'>+    fun_l28_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n246()</div><div class='add'>+    fun_l28_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n247()</div><div class='add'>+    fun_l28_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n248()</div><div class='add'>+    fun_l28_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n249()</div><div class='add'>+    fun_l28_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n250()</div><div class='add'>+    fun_l28_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n251()</div><div class='add'>+    fun_l28_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n252()</div><div class='add'>+    fun_l28_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n253()</div><div class='add'>+    fun_l28_n307</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n254()</div><div class='add'>+    fun_l28_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n255()</div><div class='add'>+    fun_l28_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n256()</div><div class='add'>+    fun_l28_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n257()</div><div class='add'>+    fun_l28_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n258()</div><div class='add'>+    fun_l28_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n259()</div><div class='add'>+    fun_l28_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n260()</div><div class='add'>+    fun_l28_n936</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n261()</div><div class='add'>+    fun_l28_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n262()</div><div class='add'>+    fun_l28_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n263()</div><div class='add'>+    fun_l28_n205</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n264()</div><div class='add'>+    fun_l28_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n265()</div><div class='add'>+    fun_l28_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n266()</div><div class='add'>+    fun_l28_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n267()</div><div class='add'>+    fun_l28_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n268()</div><div class='add'>+    fun_l28_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n269()</div><div class='add'>+    fun_l28_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n270()</div><div class='add'>+    fun_l28_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n271()</div><div class='add'>+    fun_l28_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n272()</div><div class='add'>+    fun_l28_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n273()</div><div class='add'>+    fun_l28_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n274()</div><div class='add'>+    fun_l28_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n275()</div><div class='add'>+    fun_l28_n667</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n276()</div><div class='add'>+    fun_l28_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n277()</div><div class='add'>+    fun_l28_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n278()</div><div class='add'>+    fun_l28_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n279()</div><div class='add'>+    fun_l28_n410</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n280()</div><div class='add'>+    fun_l28_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n281()</div><div class='add'>+    fun_l28_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n282()</div><div class='add'>+    fun_l28_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n283()</div><div class='add'>+    fun_l28_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n284()</div><div class='add'>+    fun_l28_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n285()</div><div class='add'>+    fun_l28_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n286()</div><div class='add'>+    fun_l28_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n287()</div><div class='add'>+    fun_l28_n450</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n288()</div><div class='add'>+    fun_l28_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n289()</div><div class='add'>+    fun_l28_n418</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n290()</div><div class='add'>+    fun_l28_n63</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n291()</div><div class='add'>+    fun_l28_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n292()</div><div class='add'>+    fun_l28_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n293()</div><div class='add'>+    fun_l28_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n294()</div><div class='add'>+    fun_l28_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n295()</div><div class='add'>+    fun_l28_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n296()</div><div class='add'>+    fun_l28_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n297()</div><div class='add'>+    fun_l28_n404</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n298()</div><div class='add'>+    fun_l28_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n299()</div><div class='add'>+    fun_l28_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n300()</div><div class='add'>+    fun_l28_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n301()</div><div class='add'>+    fun_l28_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n302()</div><div class='add'>+    fun_l28_n568</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n303()</div><div class='add'>+    fun_l28_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n304()</div><div class='add'>+    fun_l28_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n305()</div><div class='add'>+    fun_l28_n293</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n306()</div><div class='add'>+    fun_l28_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n307()</div><div class='add'>+    fun_l28_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n308()</div><div class='add'>+    fun_l28_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n309()</div><div class='add'>+    fun_l28_n767</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n310()</div><div class='add'>+    fun_l28_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n311()</div><div class='add'>+    fun_l28_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n312()</div><div class='add'>+    fun_l28_n466</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n313()</div><div class='add'>+    fun_l28_n270</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n314()</div><div class='add'>+    fun_l28_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n315()</div><div class='add'>+    fun_l28_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n316()</div><div class='add'>+    fun_l28_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n317()</div><div class='add'>+    fun_l28_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n318()</div><div class='add'>+    fun_l28_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n319()</div><div class='add'>+    fun_l28_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n320()</div><div class='add'>+    fun_l28_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n321()</div><div class='add'>+    fun_l28_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n322()</div><div class='add'>+    fun_l28_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n323()</div><div class='add'>+    fun_l28_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n324()</div><div class='add'>+    fun_l28_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n325()</div><div class='add'>+    fun_l28_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n326()</div><div class='add'>+    fun_l28_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n327()</div><div class='add'>+    fun_l28_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n328()</div><div class='add'>+    fun_l28_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n329()</div><div class='add'>+    fun_l28_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n330()</div><div class='add'>+    fun_l28_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n331()</div><div class='add'>+    fun_l28_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n332()</div><div class='add'>+    fun_l28_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n333()</div><div class='add'>+    fun_l28_n426</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n334()</div><div class='add'>+    fun_l28_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n335()</div><div class='add'>+    fun_l28_n929</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n336()</div><div class='add'>+    fun_l28_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n337()</div><div class='add'>+    fun_l28_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n338()</div><div class='add'>+    fun_l28_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n339()</div><div class='add'>+    fun_l28_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n340()</div><div class='add'>+    fun_l28_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n341()</div><div class='add'>+    fun_l28_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n342()</div><div class='add'>+    fun_l28_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n343()</div><div class='add'>+    fun_l28_n778</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n344()</div><div class='add'>+    fun_l28_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n345()</div><div class='add'>+    fun_l28_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n346()</div><div class='add'>+    fun_l28_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n347()</div><div class='add'>+    fun_l28_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n348()</div><div class='add'>+    fun_l28_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n349()</div><div class='add'>+    fun_l28_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n350()</div><div class='add'>+    fun_l28_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n351()</div><div class='add'>+    fun_l28_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n352()</div><div class='add'>+    fun_l28_n954</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n353()</div><div class='add'>+    fun_l28_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n354()</div><div class='add'>+    fun_l28_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n355()</div><div class='add'>+    fun_l28_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n356()</div><div class='add'>+    fun_l28_n957</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n357()</div><div class='add'>+    fun_l28_n365</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n358()</div><div class='add'>+    fun_l28_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n359()</div><div class='add'>+    fun_l28_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n360()</div><div class='add'>+    fun_l28_n487</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n361()</div><div class='add'>+    fun_l28_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n362()</div><div class='add'>+    fun_l28_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n363()</div><div class='add'>+    fun_l28_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n364()</div><div class='add'>+    fun_l28_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n365()</div><div class='add'>+    fun_l28_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n366()</div><div class='add'>+    fun_l28_n67</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n367()</div><div class='add'>+    fun_l28_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n368()</div><div class='add'>+    fun_l28_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n369()</div><div class='add'>+    fun_l28_n470</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n370()</div><div class='add'>+    fun_l28_n240</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n371()</div><div class='add'>+    fun_l28_n928</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n372()</div><div class='add'>+    fun_l28_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n373()</div><div class='add'>+    fun_l28_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n374()</div><div class='add'>+    fun_l28_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n375()</div><div class='add'>+    fun_l28_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n376()</div><div class='add'>+    fun_l28_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n377()</div><div class='add'>+    fun_l28_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n378()</div><div class='add'>+    fun_l28_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n379()</div><div class='add'>+    fun_l28_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n380()</div><div class='add'>+    fun_l28_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n381()</div><div class='add'>+    fun_l28_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n382()</div><div class='add'>+    fun_l28_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n383()</div><div class='add'>+    fun_l28_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n384()</div><div class='add'>+    fun_l28_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n385()</div><div class='add'>+    fun_l28_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n386()</div><div class='add'>+    fun_l28_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n387()</div><div class='add'>+    fun_l28_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n388()</div><div class='add'>+    fun_l28_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n389()</div><div class='add'>+    fun_l28_n329</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n390()</div><div class='add'>+    fun_l28_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n391()</div><div class='add'>+    fun_l28_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n392()</div><div class='add'>+    fun_l28_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n393()</div><div class='add'>+    fun_l28_n452</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n394()</div><div class='add'>+    fun_l28_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n395()</div><div class='add'>+    fun_l28_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n396()</div><div class='add'>+    fun_l28_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n397()</div><div class='add'>+    fun_l28_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n398()</div><div class='add'>+    fun_l28_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n399()</div><div class='add'>+    fun_l28_n117</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n400()</div><div class='add'>+    fun_l28_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n401()</div><div class='add'>+    fun_l28_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n402()</div><div class='add'>+    fun_l28_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n403()</div><div class='add'>+    fun_l28_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n404()</div><div class='add'>+    fun_l28_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n405()</div><div class='add'>+    fun_l28_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n406()</div><div class='add'>+    fun_l28_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n407()</div><div class='add'>+    fun_l28_n424</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n408()</div><div class='add'>+    fun_l28_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n409()</div><div class='add'>+    fun_l28_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n410()</div><div class='add'>+    fun_l28_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n411()</div><div class='add'>+    fun_l28_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n412()</div><div class='add'>+    fun_l28_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n413()</div><div class='add'>+    fun_l28_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n414()</div><div class='add'>+    fun_l28_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n415()</div><div class='add'>+    fun_l28_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n416()</div><div class='add'>+    fun_l28_n832</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n417()</div><div class='add'>+    fun_l28_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n418()</div><div class='add'>+    fun_l28_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n419()</div><div class='add'>+    fun_l28_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n420()</div><div class='add'>+    fun_l28_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n421()</div><div class='add'>+    fun_l28_n247</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n422()</div><div class='add'>+    fun_l28_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n423()</div><div class='add'>+    fun_l28_n879</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n424()</div><div class='add'>+    fun_l28_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n425()</div><div class='add'>+    fun_l28_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n426()</div><div class='add'>+    fun_l28_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n427()</div><div class='add'>+    fun_l28_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n428()</div><div class='add'>+    fun_l28_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n429()</div><div class='add'>+    fun_l28_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n430()</div><div class='add'>+    fun_l28_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n431()</div><div class='add'>+    fun_l28_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n432()</div><div class='add'>+    fun_l28_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n433()</div><div class='add'>+    fun_l28_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n434()</div><div class='add'>+    fun_l28_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n435()</div><div class='add'>+    fun_l28_n948</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n436()</div><div class='add'>+    fun_l28_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n437()</div><div class='add'>+    fun_l28_n572</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n438()</div><div class='add'>+    fun_l28_n919</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n439()</div><div class='add'>+    fun_l28_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n440()</div><div class='add'>+    fun_l28_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n441()</div><div class='add'>+    fun_l28_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n442()</div><div class='add'>+    fun_l28_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n443()</div><div class='add'>+    fun_l28_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n444()</div><div class='add'>+    fun_l28_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n445()</div><div class='add'>+    fun_l28_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n446()</div><div class='add'>+    fun_l28_n306</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n447()</div><div class='add'>+    fun_l28_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n448()</div><div class='add'>+    fun_l28_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n449()</div><div class='add'>+    fun_l28_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n450()</div><div class='add'>+    fun_l28_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n451()</div><div class='add'>+    fun_l28_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n452()</div><div class='add'>+    fun_l28_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n453()</div><div class='add'>+    fun_l28_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n454()</div><div class='add'>+    fun_l28_n659</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n455()</div><div class='add'>+    fun_l28_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n456()</div><div class='add'>+    fun_l28_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n457()</div><div class='add'>+    fun_l28_n539</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n458()</div><div class='add'>+    fun_l28_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n459()</div><div class='add'>+    fun_l28_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n460()</div><div class='add'>+    fun_l28_n434</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n461()</div><div class='add'>+    fun_l28_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n462()</div><div class='add'>+    fun_l28_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n463()</div><div class='add'>+    fun_l28_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n464()</div><div class='add'>+    fun_l28_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n465()</div><div class='add'>+    fun_l28_n273</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n466()</div><div class='add'>+    fun_l28_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n467()</div><div class='add'>+    fun_l28_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n468()</div><div class='add'>+    fun_l28_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n469()</div><div class='add'>+    fun_l28_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n470()</div><div class='add'>+    fun_l28_n178</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n471()</div><div class='add'>+    fun_l28_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n472()</div><div class='add'>+    fun_l28_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n473()</div><div class='add'>+    fun_l28_n98</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n474()</div><div class='add'>+    fun_l28_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n475()</div><div class='add'>+    fun_l28_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n476()</div><div class='add'>+    fun_l28_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n477()</div><div class='add'>+    fun_l28_n282</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n478()</div><div class='add'>+    fun_l28_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n479()</div><div class='add'>+    fun_l28_n755</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n480()</div><div class='add'>+    fun_l28_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n481()</div><div class='add'>+    fun_l28_n899</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n482()</div><div class='add'>+    fun_l28_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n483()</div><div class='add'>+    fun_l28_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n484()</div><div class='add'>+    fun_l28_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n485()</div><div class='add'>+    fun_l28_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n486()</div><div class='add'>+    fun_l28_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n487()</div><div class='add'>+    fun_l28_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n488()</div><div class='add'>+    fun_l28_n36</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n489()</div><div class='add'>+    fun_l28_n698</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n490()</div><div class='add'>+    fun_l28_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n491()</div><div class='add'>+    fun_l28_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n492()</div><div class='add'>+    fun_l28_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n493()</div><div class='add'>+    fun_l28_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n494()</div><div class='add'>+    fun_l28_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n495()</div><div class='add'>+    fun_l28_n292</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n496()</div><div class='add'>+    fun_l28_n892</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n497()</div><div class='add'>+    fun_l28_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n498()</div><div class='add'>+    fun_l28_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n499()</div><div class='add'>+    fun_l28_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n500()</div><div class='add'>+    fun_l28_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n501()</div><div class='add'>+    fun_l28_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n502()</div><div class='add'>+    fun_l28_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n503()</div><div class='add'>+    fun_l28_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n504()</div><div class='add'>+    fun_l28_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n505()</div><div class='add'>+    fun_l28_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n506()</div><div class='add'>+    fun_l28_n622</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n507()</div><div class='add'>+    fun_l28_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n508()</div><div class='add'>+    fun_l28_n997</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n509()</div><div class='add'>+    fun_l28_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n510()</div><div class='add'>+    fun_l28_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n511()</div><div class='add'>+    fun_l28_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n512()</div><div class='add'>+    fun_l28_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n513()</div><div class='add'>+    fun_l28_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n514()</div><div class='add'>+    fun_l28_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n515()</div><div class='add'>+    fun_l28_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n516()</div><div class='add'>+    fun_l28_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n517()</div><div class='add'>+    fun_l28_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n518()</div><div class='add'>+    fun_l28_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n519()</div><div class='add'>+    fun_l28_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n520()</div><div class='add'>+    fun_l28_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n521()</div><div class='add'>+    fun_l28_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n522()</div><div class='add'>+    fun_l28_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n523()</div><div class='add'>+    fun_l28_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n524()</div><div class='add'>+    fun_l28_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n525()</div><div class='add'>+    fun_l28_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n526()</div><div class='add'>+    fun_l28_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n527()</div><div class='add'>+    fun_l28_n9</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n528()</div><div class='add'>+    fun_l28_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n529()</div><div class='add'>+    fun_l28_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n530()</div><div class='add'>+    fun_l28_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n531()</div><div class='add'>+    fun_l28_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n532()</div><div class='add'>+    fun_l28_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n533()</div><div class='add'>+    fun_l28_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n534()</div><div class='add'>+    fun_l28_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n535()</div><div class='add'>+    fun_l28_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n536()</div><div class='add'>+    fun_l28_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n537()</div><div class='add'>+    fun_l28_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n538()</div><div class='add'>+    fun_l28_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n539()</div><div class='add'>+    fun_l28_n283</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n540()</div><div class='add'>+    fun_l28_n694</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n541()</div><div class='add'>+    fun_l28_n396</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n542()</div><div class='add'>+    fun_l28_n181</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n543()</div><div class='add'>+    fun_l28_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n544()</div><div class='add'>+    fun_l28_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n545()</div><div class='add'>+    fun_l28_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n546()</div><div class='add'>+    fun_l28_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n547()</div><div class='add'>+    fun_l28_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n548()</div><div class='add'>+    fun_l28_n180</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n549()</div><div class='add'>+    fun_l28_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n550()</div><div class='add'>+    fun_l28_n161</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n551()</div><div class='add'>+    fun_l28_n603</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n552()</div><div class='add'>+    fun_l28_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n553()</div><div class='add'>+    fun_l28_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n554()</div><div class='add'>+    fun_l28_n370</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n555()</div><div class='add'>+    fun_l28_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n556()</div><div class='add'>+    fun_l28_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n557()</div><div class='add'>+    fun_l28_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n558()</div><div class='add'>+    fun_l28_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n559()</div><div class='add'>+    fun_l28_n345</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n560()</div><div class='add'>+    fun_l28_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n561()</div><div class='add'>+    fun_l28_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n562()</div><div class='add'>+    fun_l28_n717</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n563()</div><div class='add'>+    fun_l28_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n564()</div><div class='add'>+    fun_l28_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n565()</div><div class='add'>+    fun_l28_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n566()</div><div class='add'>+    fun_l28_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n567()</div><div class='add'>+    fun_l28_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n568()</div><div class='add'>+    fun_l28_n253</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n569()</div><div class='add'>+    fun_l28_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n570()</div><div class='add'>+    fun_l28_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n571()</div><div class='add'>+    fun_l28_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n572()</div><div class='add'>+    fun_l28_n127</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n573()</div><div class='add'>+    fun_l28_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n574()</div><div class='add'>+    fun_l28_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n575()</div><div class='add'>+    fun_l28_n536</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n576()</div><div class='add'>+    fun_l28_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n577()</div><div class='add'>+    fun_l28_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n578()</div><div class='add'>+    fun_l28_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n579()</div><div class='add'>+    fun_l28_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n580()</div><div class='add'>+    fun_l28_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n581()</div><div class='add'>+    fun_l28_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n582()</div><div class='add'>+    fun_l28_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n583()</div><div class='add'>+    fun_l28_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n584()</div><div class='add'>+    fun_l28_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n585()</div><div class='add'>+    fun_l28_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n586()</div><div class='add'>+    fun_l28_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n587()</div><div class='add'>+    fun_l28_n528</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n588()</div><div class='add'>+    fun_l28_n214</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n589()</div><div class='add'>+    fun_l28_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n590()</div><div class='add'>+    fun_l28_n69</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n591()</div><div class='add'>+    fun_l28_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n592()</div><div class='add'>+    fun_l28_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n593()</div><div class='add'>+    fun_l28_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n594()</div><div class='add'>+    fun_l28_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n595()</div><div class='add'>+    fun_l28_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n596()</div><div class='add'>+    fun_l28_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n597()</div><div class='add'>+    fun_l28_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n598()</div><div class='add'>+    fun_l28_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n599()</div><div class='add'>+    fun_l28_n111</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n600()</div><div class='add'>+    fun_l28_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n601()</div><div class='add'>+    fun_l28_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n602()</div><div class='add'>+    fun_l28_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n603()</div><div class='add'>+    fun_l28_n379</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n604()</div><div class='add'>+    fun_l28_n959</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n605()</div><div class='add'>+    fun_l28_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n606()</div><div class='add'>+    fun_l28_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n607()</div><div class='add'>+    fun_l28_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n608()</div><div class='add'>+    fun_l28_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n609()</div><div class='add'>+    fun_l28_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n610()</div><div class='add'>+    fun_l28_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n611()</div><div class='add'>+    fun_l28_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n612()</div><div class='add'>+    fun_l28_n605</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n613()</div><div class='add'>+    fun_l28_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n614()</div><div class='add'>+    fun_l28_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n615()</div><div class='add'>+    fun_l28_n50</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n616()</div><div class='add'>+    fun_l28_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n617()</div><div class='add'>+    fun_l28_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n618()</div><div class='add'>+    fun_l28_n887</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n619()</div><div class='add'>+    fun_l28_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n620()</div><div class='add'>+    fun_l28_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n621()</div><div class='add'>+    fun_l28_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n622()</div><div class='add'>+    fun_l28_n267</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n623()</div><div class='add'>+    fun_l28_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n624()</div><div class='add'>+    fun_l28_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n625()</div><div class='add'>+    fun_l28_n845</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n626()</div><div class='add'>+    fun_l28_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n627()</div><div class='add'>+    fun_l28_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n628()</div><div class='add'>+    fun_l28_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n629()</div><div class='add'>+    fun_l28_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n630()</div><div class='add'>+    fun_l28_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n631()</div><div class='add'>+    fun_l28_n250</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n632()</div><div class='add'>+    fun_l28_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n633()</div><div class='add'>+    fun_l28_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n634()</div><div class='add'>+    fun_l28_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n635()</div><div class='add'>+    fun_l28_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n636()</div><div class='add'>+    fun_l28_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n637()</div><div class='add'>+    fun_l28_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n638()</div><div class='add'>+    fun_l28_n859</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n639()</div><div class='add'>+    fun_l28_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n640()</div><div class='add'>+    fun_l28_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n641()</div><div class='add'>+    fun_l28_n226</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n642()</div><div class='add'>+    fun_l28_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n643()</div><div class='add'>+    fun_l28_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n644()</div><div class='add'>+    fun_l28_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n645()</div><div class='add'>+    fun_l28_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n646()</div><div class='add'>+    fun_l28_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n647()</div><div class='add'>+    fun_l28_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n648()</div><div class='add'>+    fun_l28_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n649()</div><div class='add'>+    fun_l28_n968</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n650()</div><div class='add'>+    fun_l28_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n651()</div><div class='add'>+    fun_l28_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n652()</div><div class='add'>+    fun_l28_n112</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n653()</div><div class='add'>+    fun_l28_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n654()</div><div class='add'>+    fun_l28_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n655()</div><div class='add'>+    fun_l28_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n656()</div><div class='add'>+    fun_l28_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n657()</div><div class='add'>+    fun_l28_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n658()</div><div class='add'>+    fun_l28_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n659()</div><div class='add'>+    fun_l28_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n660()</div><div class='add'>+    fun_l28_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n661()</div><div class='add'>+    fun_l28_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n662()</div><div class='add'>+    fun_l28_n709</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n663()</div><div class='add'>+    fun_l28_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n664()</div><div class='add'>+    fun_l28_n727</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n665()</div><div class='add'>+    fun_l28_n630</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n666()</div><div class='add'>+    fun_l28_n514</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n667()</div><div class='add'>+    fun_l28_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n668()</div><div class='add'>+    fun_l28_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n669()</div><div class='add'>+    fun_l28_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n670()</div><div class='add'>+    fun_l28_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n671()</div><div class='add'>+    fun_l28_n316</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n672()</div><div class='add'>+    fun_l28_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n673()</div><div class='add'>+    fun_l28_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n674()</div><div class='add'>+    fun_l28_n681</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n675()</div><div class='add'>+    fun_l28_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n676()</div><div class='add'>+    fun_l28_n812</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n677()</div><div class='add'>+    fun_l28_n666</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n678()</div><div class='add'>+    fun_l28_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n679()</div><div class='add'>+    fun_l28_n953</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n680()</div><div class='add'>+    fun_l28_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n681()</div><div class='add'>+    fun_l28_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n682()</div><div class='add'>+    fun_l28_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n683()</div><div class='add'>+    fun_l28_n673</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n684()</div><div class='add'>+    fun_l28_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n685()</div><div class='add'>+    fun_l28_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n686()</div><div class='add'>+    fun_l28_n684</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n687()</div><div class='add'>+    fun_l28_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n688()</div><div class='add'>+    fun_l28_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n689()</div><div class='add'>+    fun_l28_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n690()</div><div class='add'>+    fun_l28_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n691()</div><div class='add'>+    fun_l28_n235</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n692()</div><div class='add'>+    fun_l28_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n693()</div><div class='add'>+    fun_l28_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n694()</div><div class='add'>+    fun_l28_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n695()</div><div class='add'>+    fun_l28_n993</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n696()</div><div class='add'>+    fun_l28_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n697()</div><div class='add'>+    fun_l28_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n698()</div><div class='add'>+    fun_l28_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n699()</div><div class='add'>+    fun_l28_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n700()</div><div class='add'>+    fun_l28_n678</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n701()</div><div class='add'>+    fun_l28_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n702()</div><div class='add'>+    fun_l28_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n703()</div><div class='add'>+    fun_l28_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n704()</div><div class='add'>+    fun_l28_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n705()</div><div class='add'>+    fun_l28_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n706()</div><div class='add'>+    fun_l28_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n707()</div><div class='add'>+    fun_l28_n643</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n708()</div><div class='add'>+    fun_l28_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n709()</div><div class='add'>+    fun_l28_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n710()</div><div class='add'>+    fun_l28_n170</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n711()</div><div class='add'>+    fun_l28_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n712()</div><div class='add'>+    fun_l28_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n713()</div><div class='add'>+    fun_l28_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n714()</div><div class='add'>+    fun_l28_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n715()</div><div class='add'>+    fun_l28_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n716()</div><div class='add'>+    fun_l28_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n717()</div><div class='add'>+    fun_l28_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n718()</div><div class='add'>+    fun_l28_n340</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n719()</div><div class='add'>+    fun_l28_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n720()</div><div class='add'>+    fun_l28_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n721()</div><div class='add'>+    fun_l28_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n722()</div><div class='add'>+    fun_l28_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n723()</div><div class='add'>+    fun_l28_n139</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n724()</div><div class='add'>+    fun_l28_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n725()</div><div class='add'>+    fun_l28_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n726()</div><div class='add'>+    fun_l28_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n727()</div><div class='add'>+    fun_l28_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n728()</div><div class='add'>+    fun_l28_n856</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n729()</div><div class='add'>+    fun_l28_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n730()</div><div class='add'>+    fun_l28_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n731()</div><div class='add'>+    fun_l28_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n732()</div><div class='add'>+    fun_l28_n873</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n733()</div><div class='add'>+    fun_l28_n989</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n734()</div><div class='add'>+    fun_l28_n657</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n735()</div><div class='add'>+    fun_l28_n259</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n736()</div><div class='add'>+    fun_l28_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n737()</div><div class='add'>+    fun_l28_n964</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n738()</div><div class='add'>+    fun_l28_n215</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n739()</div><div class='add'>+    fun_l28_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n740()</div><div class='add'>+    fun_l28_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n741()</div><div class='add'>+    fun_l28_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n742()</div><div class='add'>+    fun_l28_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n743()</div><div class='add'>+    fun_l28_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n744()</div><div class='add'>+    fun_l28_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n745()</div><div class='add'>+    fun_l28_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n746()</div><div class='add'>+    fun_l28_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n747()</div><div class='add'>+    fun_l28_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n748()</div><div class='add'>+    fun_l28_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n749()</div><div class='add'>+    fun_l28_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n750()</div><div class='add'>+    fun_l28_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n751()</div><div class='add'>+    fun_l28_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n752()</div><div class='add'>+    fun_l28_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n753()</div><div class='add'>+    fun_l28_n634</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n754()</div><div class='add'>+    fun_l28_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n755()</div><div class='add'>+    fun_l28_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n756()</div><div class='add'>+    fun_l28_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n757()</div><div class='add'>+    fun_l28_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n758()</div><div class='add'>+    fun_l28_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n759()</div><div class='add'>+    fun_l28_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n760()</div><div class='add'>+    fun_l28_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n761()</div><div class='add'>+    fun_l28_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n762()</div><div class='add'>+    fun_l28_n352</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n763()</div><div class='add'>+    fun_l28_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n764()</div><div class='add'>+    fun_l28_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n765()</div><div class='add'>+    fun_l28_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n766()</div><div class='add'>+    fun_l28_n615</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n767()</div><div class='add'>+    fun_l28_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n768()</div><div class='add'>+    fun_l28_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n769()</div><div class='add'>+    fun_l28_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n770()</div><div class='add'>+    fun_l28_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n771()</div><div class='add'>+    fun_l28_n80</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n772()</div><div class='add'>+    fun_l28_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n773()</div><div class='add'>+    fun_l28_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n774()</div><div class='add'>+    fun_l28_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n775()</div><div class='add'>+    fun_l28_n978</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n776()</div><div class='add'>+    fun_l28_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n777()</div><div class='add'>+    fun_l28_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n778()</div><div class='add'>+    fun_l28_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n779()</div><div class='add'>+    fun_l28_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n780()</div><div class='add'>+    fun_l28_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n781()</div><div class='add'>+    fun_l28_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n782()</div><div class='add'>+    fun_l28_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n783()</div><div class='add'>+    fun_l28_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n784()</div><div class='add'>+    fun_l28_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n785()</div><div class='add'>+    fun_l28_n419</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n786()</div><div class='add'>+    fun_l28_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n787()</div><div class='add'>+    fun_l28_n915</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n788()</div><div class='add'>+    fun_l28_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n789()</div><div class='add'>+    fun_l28_n725</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n790()</div><div class='add'>+    fun_l28_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n791()</div><div class='add'>+    fun_l28_n469</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n792()</div><div class='add'>+    fun_l28_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n793()</div><div class='add'>+    fun_l28_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n794()</div><div class='add'>+    fun_l28_n8</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n795()</div><div class='add'>+    fun_l28_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n796()</div><div class='add'>+    fun_l28_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n797()</div><div class='add'>+    fun_l28_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n798()</div><div class='add'>+    fun_l28_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n799()</div><div class='add'>+    fun_l28_n806</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n800()</div><div class='add'>+    fun_l28_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n801()</div><div class='add'>+    fun_l28_n680</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n802()</div><div class='add'>+    fun_l28_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n803()</div><div class='add'>+    fun_l28_n955</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n804()</div><div class='add'>+    fun_l28_n566</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n805()</div><div class='add'>+    fun_l28_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n806()</div><div class='add'>+    fun_l28_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n807()</div><div class='add'>+    fun_l28_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n808()</div><div class='add'>+    fun_l28_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n809()</div><div class='add'>+    fun_l28_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n810()</div><div class='add'>+    fun_l28_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n811()</div><div class='add'>+    fun_l28_n672</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n812()</div><div class='add'>+    fun_l28_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n813()</div><div class='add'>+    fun_l28_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n814()</div><div class='add'>+    fun_l28_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n815()</div><div class='add'>+    fun_l28_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n816()</div><div class='add'>+    fun_l28_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n817()</div><div class='add'>+    fun_l28_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n818()</div><div class='add'>+    fun_l28_n595</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n819()</div><div class='add'>+    fun_l28_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n820()</div><div class='add'>+    fun_l28_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n821()</div><div class='add'>+    fun_l28_n683</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n822()</div><div class='add'>+    fun_l28_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n823()</div><div class='add'>+    fun_l28_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n824()</div><div class='add'>+    fun_l28_n908</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n825()</div><div class='add'>+    fun_l28_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n826()</div><div class='add'>+    fun_l28_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n827()</div><div class='add'>+    fun_l28_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n828()</div><div class='add'>+    fun_l28_n594</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n829()</div><div class='add'>+    fun_l28_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n830()</div><div class='add'>+    fun_l28_n102</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n831()</div><div class='add'>+    fun_l28_n819</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n832()</div><div class='add'>+    fun_l28_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n833()</div><div class='add'>+    fun_l28_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n834()</div><div class='add'>+    fun_l28_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n835()</div><div class='add'>+    fun_l28_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n836()</div><div class='add'>+    fun_l28_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n837()</div><div class='add'>+    fun_l28_n747</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n838()</div><div class='add'>+    fun_l28_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n839()</div><div class='add'>+    fun_l28_n274</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n840()</div><div class='add'>+    fun_l28_n236</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n841()</div><div class='add'>+    fun_l28_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n842()</div><div class='add'>+    fun_l28_n805</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n843()</div><div class='add'>+    fun_l28_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n844()</div><div class='add'>+    fun_l28_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n845()</div><div class='add'>+    fun_l28_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n846()</div><div class='add'>+    fun_l28_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n847()</div><div class='add'>+    fun_l28_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n848()</div><div class='add'>+    fun_l28_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n849()</div><div class='add'>+    fun_l28_n903</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n850()</div><div class='add'>+    fun_l28_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n851()</div><div class='add'>+    fun_l28_n924</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n852()</div><div class='add'>+    fun_l28_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n853()</div><div class='add'>+    fun_l28_n480</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n854()</div><div class='add'>+    fun_l28_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n855()</div><div class='add'>+    fun_l28_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n856()</div><div class='add'>+    fun_l28_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n857()</div><div class='add'>+    fun_l28_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n858()</div><div class='add'>+    fun_l28_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n859()</div><div class='add'>+    fun_l28_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n860()</div><div class='add'>+    fun_l28_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n861()</div><div class='add'>+    fun_l28_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n862()</div><div class='add'>+    fun_l28_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n863()</div><div class='add'>+    fun_l28_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n864()</div><div class='add'>+    fun_l28_n40</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n865()</div><div class='add'>+    fun_l28_n665</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n866()</div><div class='add'>+    fun_l28_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n867()</div><div class='add'>+    fun_l28_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n868()</div><div class='add'>+    fun_l28_n159</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n869()</div><div class='add'>+    fun_l28_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n870()</div><div class='add'>+    fun_l28_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n871()</div><div class='add'>+    fun_l28_n234</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n872()</div><div class='add'>+    fun_l28_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n873()</div><div class='add'>+    fun_l28_n207</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n874()</div><div class='add'>+    fun_l28_n136</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n875()</div><div class='add'>+    fun_l28_n565</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n876()</div><div class='add'>+    fun_l28_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n877()</div><div class='add'>+    fun_l28_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n878()</div><div class='add'>+    fun_l28_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n879()</div><div class='add'>+    fun_l28_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n880()</div><div class='add'>+    fun_l28_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n881()</div><div class='add'>+    fun_l28_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n882()</div><div class='add'>+    fun_l28_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n883()</div><div class='add'>+    fun_l28_n764</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n884()</div><div class='add'>+    fun_l28_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n885()</div><div class='add'>+    fun_l28_n302</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n886()</div><div class='add'>+    fun_l28_n857</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n887()</div><div class='add'>+    fun_l28_n73</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n888()</div><div class='add'>+    fun_l28_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n889()</div><div class='add'>+    fun_l28_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n890()</div><div class='add'>+    fun_l28_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n891()</div><div class='add'>+    fun_l28_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n892()</div><div class='add'>+    fun_l28_n951</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n893()</div><div class='add'>+    fun_l28_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n894()</div><div class='add'>+    fun_l28_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n895()</div><div class='add'>+    fun_l28_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n896()</div><div class='add'>+    fun_l28_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n897()</div><div class='add'>+    fun_l28_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n898()</div><div class='add'>+    fun_l28_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n899()</div><div class='add'>+    fun_l28_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n900()</div><div class='add'>+    fun_l28_n212</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n901()</div><div class='add'>+    fun_l28_n386</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n902()</div><div class='add'>+    fun_l28_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n903()</div><div class='add'>+    fun_l28_n807</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n904()</div><div class='add'>+    fun_l28_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n905()</div><div class='add'>+    fun_l28_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n906()</div><div class='add'>+    fun_l28_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n907()</div><div class='add'>+    fun_l28_n185</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n908()</div><div class='add'>+    fun_l28_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n909()</div><div class='add'>+    fun_l28_n493</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n910()</div><div class='add'>+    fun_l28_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n911()</div><div class='add'>+    fun_l28_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n912()</div><div class='add'>+    fun_l28_n284</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n913()</div><div class='add'>+    fun_l28_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n914()</div><div class='add'>+    fun_l28_n177</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n915()</div><div class='add'>+    fun_l28_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n916()</div><div class='add'>+    fun_l28_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n917()</div><div class='add'>+    fun_l28_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n918()</div><div class='add'>+    fun_l28_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n919()</div><div class='add'>+    fun_l28_n550</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n920()</div><div class='add'>+    fun_l28_n458</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n921()</div><div class='add'>+    fun_l28_n739</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n922()</div><div class='add'>+    fun_l28_n394</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n923()</div><div class='add'>+    fun_l28_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n924()</div><div class='add'>+    fun_l28_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n925()</div><div class='add'>+    fun_l28_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n926()</div><div class='add'>+    fun_l28_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n927()</div><div class='add'>+    fun_l28_n645</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n928()</div><div class='add'>+    fun_l28_n668</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n929()</div><div class='add'>+    fun_l28_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n930()</div><div class='add'>+    fun_l28_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n931()</div><div class='add'>+    fun_l28_n411</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n932()</div><div class='add'>+    fun_l28_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n933()</div><div class='add'>+    fun_l28_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n934()</div><div class='add'>+    fun_l28_n3</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n935()</div><div class='add'>+    fun_l28_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n936()</div><div class='add'>+    fun_l28_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n937()</div><div class='add'>+    fun_l28_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n938()</div><div class='add'>+    fun_l28_n996</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n939()</div><div class='add'>+    fun_l28_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n940()</div><div class='add'>+    fun_l28_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n941()</div><div class='add'>+    fun_l28_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n942()</div><div class='add'>+    fun_l28_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n943()</div><div class='add'>+    fun_l28_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n944()</div><div class='add'>+    fun_l28_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n945()</div><div class='add'>+    fun_l28_n115</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n946()</div><div class='add'>+    fun_l28_n654</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n947()</div><div class='add'>+    fun_l28_n218</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n948()</div><div class='add'>+    fun_l28_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n949()</div><div class='add'>+    fun_l28_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n950()</div><div class='add'>+    fun_l28_n901</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n951()</div><div class='add'>+    fun_l28_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n952()</div><div class='add'>+    fun_l28_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n953()</div><div class='add'>+    fun_l28_n888</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n954()</div><div class='add'>+    fun_l28_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n955()</div><div class='add'>+    fun_l28_n766</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n956()</div><div class='add'>+    fun_l28_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n957()</div><div class='add'>+    fun_l28_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n958()</div><div class='add'>+    fun_l28_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n959()</div><div class='add'>+    fun_l28_n531</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n960()</div><div class='add'>+    fun_l28_n982</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n961()</div><div class='add'>+    fun_l28_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n962()</div><div class='add'>+    fun_l28_n701</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n963()</div><div class='add'>+    fun_l28_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n964()</div><div class='add'>+    fun_l28_n488</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n965()</div><div class='add'>+    fun_l28_n793</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n966()</div><div class='add'>+    fun_l28_n969</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n967()</div><div class='add'>+    fun_l28_n35</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n968()</div><div class='add'>+    fun_l28_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n969()</div><div class='add'>+    fun_l28_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n970()</div><div class='add'>+    fun_l28_n437</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n971()</div><div class='add'>+    fun_l28_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n972()</div><div class='add'>+    fun_l28_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n973()</div><div class='add'>+    fun_l28_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n974()</div><div class='add'>+    fun_l28_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n975()</div><div class='add'>+    fun_l28_n145</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n976()</div><div class='add'>+    fun_l28_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n977()</div><div class='add'>+    fun_l28_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n978()</div><div class='add'>+    fun_l28_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n979()</div><div class='add'>+    fun_l28_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n980()</div><div class='add'>+    fun_l28_n369</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n981()</div><div class='add'>+    fun_l28_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n982()</div><div class='add'>+    fun_l28_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n983()</div><div class='add'>+    fun_l28_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n984()</div><div class='add'>+    fun_l28_n880</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n985()</div><div class='add'>+    fun_l28_n688</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n986()</div><div class='add'>+    fun_l28_n796</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n987()</div><div class='add'>+    fun_l28_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n988()</div><div class='add'>+    fun_l28_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n989()</div><div class='add'>+    fun_l28_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n990()</div><div class='add'>+    fun_l28_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n991()</div><div class='add'>+    fun_l28_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n992()</div><div class='add'>+    fun_l28_n280</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n993()</div><div class='add'>+    fun_l28_n842</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n994()</div><div class='add'>+    fun_l28_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n995()</div><div class='add'>+    fun_l28_n934</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n996()</div><div class='add'>+    fun_l28_n451</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n997()</div><div class='add'>+    fun_l28_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n998()</div><div class='add'>+    fun_l28_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l27_n999()</div><div class='add'>+    fun_l28_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n0()</div><div class='add'>+    fun_l29_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n1()</div><div class='add'>+    fun_l29_n12</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n2()</div><div class='add'>+    fun_l29_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n3()</div><div class='add'>+    fun_l29_n360</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n4()</div><div class='add'>+    fun_l29_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n5()</div><div class='add'>+    fun_l29_n541</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n6()</div><div class='add'>+    fun_l29_n913</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n7()</div><div class='add'>+    fun_l29_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n8()</div><div class='add'>+    fun_l29_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n9()</div><div class='add'>+    fun_l29_n476</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n10()</div><div class='add'>+    fun_l29_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n11()</div><div class='add'>+    fun_l29_n484</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n12()</div><div class='add'>+    fun_l29_n52</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n13()</div><div class='add'>+    fun_l29_n294</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n14()</div><div class='add'>+    fun_l29_n387</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n15()</div><div class='add'>+    fun_l29_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n16()</div><div class='add'>+    fun_l29_n578</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n17()</div><div class='add'>+    fun_l29_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n18()</div><div class='add'>+    fun_l29_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n19()</div><div class='add'>+    fun_l29_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n20()</div><div class='add'>+    fun_l29_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n21()</div><div class='add'>+    fun_l29_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n22()</div><div class='add'>+    fun_l29_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n23()</div><div class='add'>+    fun_l29_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n24()</div><div class='add'>+    fun_l29_n22</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n25()</div><div class='add'>+    fun_l29_n925</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n26()</div><div class='add'>+    fun_l29_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n27()</div><div class='add'>+    fun_l29_n714</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n28()</div><div class='add'>+    fun_l29_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n29()</div><div class='add'>+    fun_l29_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n30()</div><div class='add'>+    fun_l29_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n31()</div><div class='add'>+    fun_l29_n854</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n32()</div><div class='add'>+    fun_l29_n616</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n33()</div><div class='add'>+    fun_l29_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n34()</div><div class='add'>+    fun_l29_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n35()</div><div class='add'>+    fun_l29_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n36()</div><div class='add'>+    fun_l29_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n37()</div><div class='add'>+    fun_l29_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n38()</div><div class='add'>+    fun_l29_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n39()</div><div class='add'>+    fun_l29_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n40()</div><div class='add'>+    fun_l29_n409</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n41()</div><div class='add'>+    fun_l29_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n42()</div><div class='add'>+    fun_l29_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n43()</div><div class='add'>+    fun_l29_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n44()</div><div class='add'>+    fun_l29_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n45()</div><div class='add'>+    fun_l29_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n46()</div><div class='add'>+    fun_l29_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n47()</div><div class='add'>+    fun_l29_n596</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n48()</div><div class='add'>+    fun_l29_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n49()</div><div class='add'>+    fun_l29_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n50()</div><div class='add'>+    fun_l29_n498</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n51()</div><div class='add'>+    fun_l29_n548</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n52()</div><div class='add'>+    fun_l29_n641</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n53()</div><div class='add'>+    fun_l29_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n54()</div><div class='add'>+    fun_l29_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n55()</div><div class='add'>+    fun_l29_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n56()</div><div class='add'>+    fun_l29_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n57()</div><div class='add'>+    fun_l29_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n58()</div><div class='add'>+    fun_l29_n233</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n59()</div><div class='add'>+    fun_l29_n344</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n60()</div><div class='add'>+    fun_l29_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n61()</div><div class='add'>+    fun_l29_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n62()</div><div class='add'>+    fun_l29_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n63()</div><div class='add'>+    fun_l29_n228</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n64()</div><div class='add'>+    fun_l29_n31</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n65()</div><div class='add'>+    fun_l29_n679</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n66()</div><div class='add'>+    fun_l29_n902</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n67()</div><div class='add'>+    fun_l29_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n68()</div><div class='add'>+    fun_l29_n830</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n69()</div><div class='add'>+    fun_l29_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n70()</div><div class='add'>+    fun_l29_n551</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n71()</div><div class='add'>+    fun_l29_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n72()</div><div class='add'>+    fun_l29_n126</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n73()</div><div class='add'>+    fun_l29_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n74()</div><div class='add'>+    fun_l29_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n75()</div><div class='add'>+    fun_l29_n82</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n76()</div><div class='add'>+    fun_l29_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n77()</div><div class='add'>+    fun_l29_n761</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n78()</div><div class='add'>+    fun_l29_n439</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n79()</div><div class='add'>+    fun_l29_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n80()</div><div class='add'>+    fun_l29_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n81()</div><div class='add'>+    fun_l29_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n82()</div><div class='add'>+    fun_l29_n545</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n83()</div><div class='add'>+    fun_l29_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n84()</div><div class='add'>+    fun_l29_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n85()</div><div class='add'>+    fun_l29_n160</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n86()</div><div class='add'>+    fun_l29_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n87()</div><div class='add'>+    fun_l29_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n88()</div><div class='add'>+    fun_l29_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n89()</div><div class='add'>+    fun_l29_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n90()</div><div class='add'>+    fun_l29_n772</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n91()</div><div class='add'>+    fun_l29_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n92()</div><div class='add'>+    fun_l29_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n93()</div><div class='add'>+    fun_l29_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n94()</div><div class='add'>+    fun_l29_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n95()</div><div class='add'>+    fun_l29_n475</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n96()</div><div class='add'>+    fun_l29_n523</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n97()</div><div class='add'>+    fun_l29_n621</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n98()</div><div class='add'>+    fun_l29_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n99()</div><div class='add'>+    fun_l29_n803</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n100()</div><div class='add'>+    fun_l29_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n101()</div><div class='add'>+    fun_l29_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n102()</div><div class='add'>+    fun_l29_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n103()</div><div class='add'>+    fun_l29_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n104()</div><div class='add'>+    fun_l29_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n105()</div><div class='add'>+    fun_l29_n985</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n106()</div><div class='add'>+    fun_l29_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n107()</div><div class='add'>+    fun_l29_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n108()</div><div class='add'>+    fun_l29_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n109()</div><div class='add'>+    fun_l29_n17</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n110()</div><div class='add'>+    fun_l29_n146</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n111()</div><div class='add'>+    fun_l29_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n112()</div><div class='add'>+    fun_l29_n189</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n113()</div><div class='add'>+    fun_l29_n838</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n114()</div><div class='add'>+    fun_l29_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n115()</div><div class='add'>+    fun_l29_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n116()</div><div class='add'>+    fun_l29_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n117()</div><div class='add'>+    fun_l29_n338</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n118()</div><div class='add'>+    fun_l29_n745</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n119()</div><div class='add'>+    fun_l29_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n120()</div><div class='add'>+    fun_l29_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n121()</div><div class='add'>+    fun_l29_n71</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n122()</div><div class='add'>+    fun_l29_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n123()</div><div class='add'>+    fun_l29_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n124()</div><div class='add'>+    fun_l29_n868</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n125()</div><div class='add'>+    fun_l29_n519</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n126()</div><div class='add'>+    fun_l29_n877</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n127()</div><div class='add'>+    fun_l29_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n128()</div><div class='add'>+    fun_l29_n184</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n129()</div><div class='add'>+    fun_l29_n797</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n130()</div><div class='add'>+    fun_l29_n801</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n131()</div><div class='add'>+    fun_l29_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n132()</div><div class='add'>+    fun_l29_n562</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n133()</div><div class='add'>+    fun_l29_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n134()</div><div class='add'>+    fun_l29_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n135()</div><div class='add'>+    fun_l29_n134</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n136()</div><div class='add'>+    fun_l29_n62</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n137()</div><div class='add'>+    fun_l29_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n138()</div><div class='add'>+    fun_l29_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n139()</div><div class='add'>+    fun_l29_n279</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n140()</div><div class='add'>+    fun_l29_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n141()</div><div class='add'>+    fun_l29_n843</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n142()</div><div class='add'>+    fun_l29_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n143()</div><div class='add'>+    fun_l29_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n144()</div><div class='add'>+    fun_l29_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n145()</div><div class='add'>+    fun_l29_n383</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n146()</div><div class='add'>+    fun_l29_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n147()</div><div class='add'>+    fun_l29_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n148()</div><div class='add'>+    fun_l29_n639</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n149()</div><div class='add'>+    fun_l29_n751</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n150()</div><div class='add'>+    fun_l29_n504</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n151()</div><div class='add'>+    fun_l29_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n152()</div><div class='add'>+    fun_l29_n505</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n153()</div><div class='add'>+    fun_l29_n932</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n154()</div><div class='add'>+    fun_l29_n414</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n155()</div><div class='add'>+    fun_l29_n121</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n156()</div><div class='add'>+    fun_l29_n313</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n157()</div><div class='add'>+    fun_l29_n620</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n158()</div><div class='add'>+    fun_l29_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n159()</div><div class='add'>+    fun_l29_n119</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n160()</div><div class='add'>+    fun_l29_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n161()</div><div class='add'>+    fun_l29_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n162()</div><div class='add'>+    fun_l29_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n163()</div><div class='add'>+    fun_l29_n494</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n164()</div><div class='add'>+    fun_l29_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n165()</div><div class='add'>+    fun_l29_n558</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n166()</div><div class='add'>+    fun_l29_n864</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n167()</div><div class='add'>+    fun_l29_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n168()</div><div class='add'>+    fun_l29_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n169()</div><div class='add'>+    fun_l29_n129</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n170()</div><div class='add'>+    fun_l29_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n171()</div><div class='add'>+    fun_l29_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n172()</div><div class='add'>+    fun_l29_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n173()</div><div class='add'>+    fun_l29_n574</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n174()</div><div class='add'>+    fun_l29_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n175()</div><div class='add'>+    fun_l29_n213</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n176()</div><div class='add'>+    fun_l29_n68</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n177()</div><div class='add'>+    fun_l29_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n178()</div><div class='add'>+    fun_l29_n979</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n179()</div><div class='add'>+    fun_l29_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n180()</div><div class='add'>+    fun_l29_n509</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n181()</div><div class='add'>+    fun_l29_n663</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n182()</div><div class='add'>+    fun_l29_n407</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n183()</div><div class='add'>+    fun_l29_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n184()</div><div class='add'>+    fun_l29_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n185()</div><div class='add'>+    fun_l29_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n186()</div><div class='add'>+    fun_l29_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n187()</div><div class='add'>+    fun_l29_n48</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n188()</div><div class='add'>+    fun_l29_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n189()</div><div class='add'>+    fun_l29_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n190()</div><div class='add'>+    fun_l29_n893</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n191()</div><div class='add'>+    fun_l29_n581</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n192()</div><div class='add'>+    fun_l29_n210</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n193()</div><div class='add'>+    fun_l29_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n194()</div><div class='add'>+    fun_l29_n295</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n195()</div><div class='add'>+    fun_l29_n471</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n196()</div><div class='add'>+    fun_l29_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n197()</div><div class='add'>+    fun_l29_n318</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n198()</div><div class='add'>+    fun_l29_n15</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n199()</div><div class='add'>+    fun_l29_n696</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n200()</div><div class='add'>+    fun_l29_n702</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n201()</div><div class='add'>+    fun_l29_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n202()</div><div class='add'>+    fun_l29_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n203()</div><div class='add'>+    fun_l29_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n204()</div><div class='add'>+    fun_l29_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n205()</div><div class='add'>+    fun_l29_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n206()</div><div class='add'>+    fun_l29_n156</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n207()</div><div class='add'>+    fun_l29_n690</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n208()</div><div class='add'>+    fun_l29_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n209()</div><div class='add'>+    fun_l29_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n210()</div><div class='add'>+    fun_l29_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n211()</div><div class='add'>+    fun_l29_n46</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n212()</div><div class='add'>+    fun_l29_n238</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n213()</div><div class='add'>+    fun_l29_n722</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n214()</div><div class='add'>+    fun_l29_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n215()</div><div class='add'>+    fun_l29_n496</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n216()</div><div class='add'>+    fun_l29_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n217()</div><div class='add'>+    fun_l29_n689</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n218()</div><div class='add'>+    fun_l29_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n219()</div><div class='add'>+    fun_l29_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n220()</div><div class='add'>+    fun_l29_n92</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n221()</div><div class='add'>+    fun_l29_n246</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n222()</div><div class='add'>+    fun_l29_n624</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n223()</div><div class='add'>+    fun_l29_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n224()</div><div class='add'>+    fun_l29_n992</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n225()</div><div class='add'>+    fun_l29_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n226()</div><div class='add'>+    fun_l29_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n227()</div><div class='add'>+    fun_l29_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n228()</div><div class='add'>+    fun_l29_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n229()</div><div class='add'>+    fun_l29_n336</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n230()</div><div class='add'>+    fun_l29_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n231()</div><div class='add'>+    fun_l29_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n232()</div><div class='add'>+    fun_l29_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n233()</div><div class='add'>+    fun_l29_n669</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n234()</div><div class='add'>+    fun_l29_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n235()</div><div class='add'>+    fun_l29_n642</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n236()</div><div class='add'>+    fun_l29_n59</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n237()</div><div class='add'>+    fun_l29_n175</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n238()</div><div class='add'>+    fun_l29_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n239()</div><div class='add'>+    fun_l29_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n240()</div><div class='add'>+    fun_l29_n65</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n241()</div><div class='add'>+    fun_l29_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n242()</div><div class='add'>+    fun_l29_n467</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n243()</div><div class='add'>+    fun_l29_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n244()</div><div class='add'>+    fun_l29_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n245()</div><div class='add'>+    fun_l29_n571</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n246()</div><div class='add'>+    fun_l29_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n247()</div><div class='add'>+    fun_l29_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n248()</div><div class='add'>+    fun_l29_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n249()</div><div class='add'>+    fun_l29_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n250()</div><div class='add'>+    fun_l29_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n251()</div><div class='add'>+    fun_l29_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n252()</div><div class='add'>+    fun_l29_n788</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n253()</div><div class='add'>+    fun_l29_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n254()</div><div class='add'>+    fun_l29_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n255()</div><div class='add'>+    fun_l29_n171</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n256()</div><div class='add'>+    fun_l29_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n257()</div><div class='add'>+    fun_l29_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n258()</div><div class='add'>+    fun_l29_n326</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n259()</div><div class='add'>+    fun_l29_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n260()</div><div class='add'>+    fun_l29_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n261()</div><div class='add'>+    fun_l29_n650</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n262()</div><div class='add'>+    fun_l29_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n263()</div><div class='add'>+    fun_l29_n56</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n264()</div><div class='add'>+    fun_l29_n288</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n265()</div><div class='add'>+    fun_l29_n187</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n266()</div><div class='add'>+    fun_l29_n461</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n267()</div><div class='add'>+    fun_l29_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n268()</div><div class='add'>+    fun_l29_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n269()</div><div class='add'>+    fun_l29_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n270()</div><div class='add'>+    fun_l29_n731</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n271()</div><div class='add'>+    fun_l29_n763</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n272()</div><div class='add'>+    fun_l29_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n273()</div><div class='add'>+    fun_l29_n693</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n274()</div><div class='add'>+    fun_l29_n775</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n275()</div><div class='add'>+    fun_l29_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n276()</div><div class='add'>+    fun_l29_n491</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n277()</div><div class='add'>+    fun_l29_n799</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n278()</div><div class='add'>+    fun_l29_n506</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n279()</div><div class='add'>+    fun_l29_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n280()</div><div class='add'>+    fun_l29_n988</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n281()</div><div class='add'>+    fun_l29_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n282()</div><div class='add'>+    fun_l29_n389</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n283()</div><div class='add'>+    fun_l29_n133</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n284()</div><div class='add'>+    fun_l29_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n285()</div><div class='add'>+    fun_l29_n285</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n286()</div><div class='add'>+    fun_l29_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n287()</div><div class='add'>+    fun_l29_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n288()</div><div class='add'>+    fun_l29_n297</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n289()</div><div class='add'>+    fun_l29_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n290()</div><div class='add'>+    fun_l29_n535</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n291()</div><div class='add'>+    fun_l29_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n292()</div><div class='add'>+    fun_l29_n19</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n293()</div><div class='add'>+    fun_l29_n444</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n294()</div><div class='add'>+    fun_l29_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n295()</div><div class='add'>+    fun_l29_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n296()</div><div class='add'>+    fun_l29_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n297()</div><div class='add'>+    fun_l29_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n298()</div><div class='add'>+    fun_l29_n716</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n299()</div><div class='add'>+    fun_l29_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n300()</div><div class='add'>+    fun_l29_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n301()</div><div class='add'>+    fun_l29_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n302()</div><div class='add'>+    fun_l29_n308</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n303()</div><div class='add'>+    fun_l29_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n304()</div><div class='add'>+    fun_l29_n577</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n305()</div><div class='add'>+    fun_l29_n537</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n306()</div><div class='add'>+    fun_l29_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n307()</div><div class='add'>+    fun_l29_n211</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n308()</div><div class='add'>+    fun_l29_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n309()</div><div class='add'>+    fun_l29_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n310()</div><div class='add'>+    fun_l29_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n311()</div><div class='add'>+    fun_l29_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n312()</div><div class='add'>+    fun_l29_n844</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n313()</div><div class='add'>+    fun_l29_n865</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n314()</div><div class='add'>+    fun_l29_n27</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n315()</div><div class='add'>+    fun_l29_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n316()</div><div class='add'>+    fun_l29_n89</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n317()</div><div class='add'>+    fun_l29_n11</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n318()</div><div class='add'>+    fun_l29_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n319()</div><div class='add'>+    fun_l29_n604</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n320()</div><div class='add'>+    fun_l29_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n321()</div><div class='add'>+    fun_l29_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n322()</div><div class='add'>+    fun_l29_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n323()</div><div class='add'>+    fun_l29_n61</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n324()</div><div class='add'>+    fun_l29_n776</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n325()</div><div class='add'>+    fun_l29_n377</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n326()</div><div class='add'>+    fun_l29_n768</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n327()</div><div class='add'>+    fun_l29_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n328()</div><div class='add'>+    fun_l29_n719</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n329()</div><div class='add'>+    fun_l29_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n330()</div><div class='add'>+    fun_l29_n995</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n331()</div><div class='add'>+    fun_l29_n32</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n332()</div><div class='add'>+    fun_l29_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n333()</div><div class='add'>+    fun_l29_n570</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n334()</div><div class='add'>+    fun_l29_n194</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n335()</div><div class='add'>+    fun_l29_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n336()</div><div class='add'>+    fun_l29_n463</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n337()</div><div class='add'>+    fun_l29_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n338()</div><div class='add'>+    fun_l29_n524</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n339()</div><div class='add'>+    fun_l29_n221</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n340()</div><div class='add'>+    fun_l29_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n341()</div><div class='add'>+    fun_l29_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n342()</div><div class='add'>+    fun_l29_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n343()</div><div class='add'>+    fun_l29_n510</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n344()</div><div class='add'>+    fun_l29_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n345()</div><div class='add'>+    fun_l29_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n346()</div><div class='add'>+    fun_l29_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n347()</div><div class='add'>+    fun_l29_n315</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n348()</div><div class='add'>+    fun_l29_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n349()</div><div class='add'>+    fun_l29_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n350()</div><div class='add'>+    fun_l29_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n351()</div><div class='add'>+    fun_l29_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n352()</div><div class='add'>+    fun_l29_n229</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n353()</div><div class='add'>+    fun_l29_n113</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n354()</div><div class='add'>+    fun_l29_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n355()</div><div class='add'>+    fun_l29_n105</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n356()</div><div class='add'>+    fun_l29_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n357()</div><div class='add'>+    fun_l29_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n358()</div><div class='add'>+    fun_l29_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n359()</div><div class='add'>+    fun_l29_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n360()</div><div class='add'>+    fun_l29_n752</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n361()</div><div class='add'>+    fun_l29_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n362()</div><div class='add'>+    fun_l29_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n363()</div><div class='add'>+    fun_l29_n612</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n364()</div><div class='add'>+    fun_l29_n268</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n365()</div><div class='add'>+    fun_l29_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n366()</div><div class='add'>+    fun_l29_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n367()</div><div class='add'>+    fun_l29_n477</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n368()</div><div class='add'>+    fun_l29_n353</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n369()</div><div class='add'>+    fun_l29_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n370()</div><div class='add'>+    fun_l29_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n371()</div><div class='add'>+    fun_l29_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n372()</div><div class='add'>+    fun_l29_n421</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n373()</div><div class='add'>+    fun_l29_n685</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n374()</div><div class='add'>+    fun_l29_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n375()</div><div class='add'>+    fun_l29_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n376()</div><div class='add'>+    fun_l29_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n377()</div><div class='add'>+    fun_l29_n852</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n378()</div><div class='add'>+    fun_l29_n872</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n379()</div><div class='add'>+    fun_l29_n981</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n380()</div><div class='add'>+    fun_l29_n939</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n381()</div><div class='add'>+    fun_l29_n13</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n382()</div><div class='add'>+    fun_l29_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n383()</div><div class='add'>+    fun_l29_n291</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n384()</div><div class='add'>+    fun_l29_n465</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n385()</div><div class='add'>+    fun_l29_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n386()</div><div class='add'>+    fun_l29_n53</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n387()</div><div class='add'>+    fun_l29_n525</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n388()</div><div class='add'>+    fun_l29_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n389()</div><div class='add'>+    fun_l29_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n390()</div><div class='add'>+    fun_l29_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n391()</div><div class='add'>+    fun_l29_n275</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n392()</div><div class='add'>+    fun_l29_n973</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n393()</div><div class='add'>+    fun_l29_n538</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n394()</div><div class='add'>+    fun_l29_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n395()</div><div class='add'>+    fun_l29_n219</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n396()</div><div class='add'>+    fun_l29_n823</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n397()</div><div class='add'>+    fun_l29_n676</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n398()</div><div class='add'>+    fun_l29_n319</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n399()</div><div class='add'>+    fun_l29_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n400()</div><div class='add'>+    fun_l29_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n401()</div><div class='add'>+    fun_l29_n876</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n402()</div><div class='add'>+    fun_l29_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n403()</div><div class='add'>+    fun_l29_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n404()</div><div class='add'>+    fun_l29_n459</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n405()</div><div class='add'>+    fun_l29_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n406()</div><div class='add'>+    fun_l29_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n407()</div><div class='add'>+    fun_l29_n692</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n408()</div><div class='add'>+    fun_l29_n91</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n409()</div><div class='add'>+    fun_l29_n120</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n410()</div><div class='add'>+    fun_l29_n337</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n411()</div><div class='add'>+    fun_l29_n963</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n412()</div><div class='add'>+    fun_l29_n16</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n413()</div><div class='add'>+    fun_l29_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n414()</div><div class='add'>+    fun_l29_n255</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n415()</div><div class='add'>+    fun_l29_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n416()</div><div class='add'>+    fun_l29_n430</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n417()</div><div class='add'>+    fun_l29_n374</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n418()</div><div class='add'>+    fun_l29_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n419()</div><div class='add'>+    fun_l29_n393</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n420()</div><div class='add'>+    fun_l29_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n421()</div><div class='add'>+    fun_l29_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n422()</div><div class='add'>+    fun_l29_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n423()</div><div class='add'>+    fun_l29_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n424()</div><div class='add'>+    fun_l29_n839</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n425()</div><div class='add'>+    fun_l29_n871</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n426()</div><div class='add'>+    fun_l29_n333</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n427()</div><div class='add'>+    fun_l29_n652</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n428()</div><div class='add'>+    fun_l29_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n429()</div><div class='add'>+    fun_l29_n472</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n430()</div><div class='add'>+    fun_l29_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n431()</div><div class='add'>+    fun_l29_n305</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n432()</div><div class='add'>+    fun_l29_n569</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n433()</div><div class='add'>+    fun_l29_n869</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n434()</div><div class='add'>+    fun_l29_n203</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n435()</div><div class='add'>+    fun_l29_n804</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n436()</div><div class='add'>+    fun_l29_n878</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n437()</div><div class='add'>+    fun_l29_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n438()</div><div class='add'>+    fun_l29_n990</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n439()</div><div class='add'>+    fun_l29_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n440()</div><div class='add'>+    fun_l29_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n441()</div><div class='add'>+    fun_l29_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n442()</div><div class='add'>+    fun_l29_n534</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n443()</div><div class='add'>+    fun_l29_n232</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n444()</div><div class='add'>+    fun_l29_n447</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n445()</div><div class='add'>+    fun_l29_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n446()</div><div class='add'>+    fun_l29_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n447()</div><div class='add'>+    fun_l29_n128</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n448()</div><div class='add'>+    fun_l29_n760</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n449()</div><div class='add'>+    fun_l29_n204</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n450()</div><div class='add'>+    fun_l29_n912</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n451()</div><div class='add'>+    fun_l29_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n452()</div><div class='add'>+    fun_l29_n721</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n453()</div><div class='add'>+    fun_l29_n699</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n454()</div><div class='add'>+    fun_l29_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n455()</div><div class='add'>+    fun_l29_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n456()</div><div class='add'>+    fun_l29_n431</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n457()</div><div class='add'>+    fun_l29_n644</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n458()</div><div class='add'>+    fun_l29_n638</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n459()</div><div class='add'>+    fun_l29_n967</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n460()</div><div class='add'>+    fun_l29_n83</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n461()</div><div class='add'>+    fun_l29_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n462()</div><div class='add'>+    fun_l29_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n463()</div><div class='add'>+    fun_l29_n485</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n464()</div><div class='add'>+    fun_l29_n826</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n465()</div><div class='add'>+    fun_l29_n774</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n466()</div><div class='add'>+    fun_l29_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n467()</div><div class='add'>+    fun_l29_n809</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n468()</div><div class='add'>+    fun_l29_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n469()</div><div class='add'>+    fun_l29_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n470()</div><div class='add'>+    fun_l29_n517</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n471()</div><div class='add'>+    fun_l29_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n472()</div><div class='add'>+    fun_l29_n970</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n473()</div><div class='add'>+    fun_l29_n686</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n474()</div><div class='add'>+    fun_l29_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n475()</div><div class='add'>+    fun_l29_n176</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n476()</div><div class='add'>+    fun_l29_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n477()</div><div class='add'>+    fun_l29_n81</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n478()</div><div class='add'>+    fun_l29_n836</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n479()</div><div class='add'>+    fun_l29_n898</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n480()</div><div class='add'>+    fun_l29_n49</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n481()</div><div class='add'>+    fun_l29_n468</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n482()</div><div class='add'>+    fun_l29_n314</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n483()</div><div class='add'>+    fun_l29_n242</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n484()</div><div class='add'>+    fun_l29_n647</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n485()</div><div class='add'>+    fun_l29_n167</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n486()</div><div class='add'>+    fun_l29_n245</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n487()</div><div class='add'>+    fun_l29_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n488()</div><div class='add'>+    fun_l29_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n489()</div><div class='add'>+    fun_l29_n481</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n490()</div><div class='add'>+    fun_l29_n154</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n491()</div><div class='add'>+    fun_l29_n271</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n492()</div><div class='add'>+    fun_l29_n671</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n493()</div><div class='add'>+    fun_l29_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n494()</div><div class='add'>+    fun_l29_n14</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n495()</div><div class='add'>+    fun_l29_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n496()</div><div class='add'>+    fun_l29_n464</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n497()</div><div class='add'>+    fun_l29_n7</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n498()</div><div class='add'>+    fun_l29_n372</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n499()</div><div class='add'>+    fun_l29_n202</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n500()</div><div class='add'>+    fun_l29_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n501()</div><div class='add'>+    fun_l29_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n502()</div><div class='add'>+    fun_l29_n977</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n503()</div><div class='add'>+    fun_l29_n287</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n504()</div><div class='add'>+    fun_l29_n905</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n505()</div><div class='add'>+    fun_l29_n847</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n506()</div><div class='add'>+    fun_l29_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n507()</div><div class='add'>+    fun_l29_n889</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n508()</div><div class='add'>+    fun_l29_n527</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n509()</div><div class='add'>+    fun_l29_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n510()</div><div class='add'>+    fun_l29_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n511()</div><div class='add'>+    fun_l29_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n512()</div><div class='add'>+    fun_l29_n252</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n513()</div><div class='add'>+    fun_l29_n42</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n514()</div><div class='add'>+    fun_l29_n398</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n515()</div><div class='add'>+    fun_l29_n655</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n516()</div><div class='add'>+    fun_l29_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n517()</div><div class='add'>+    fun_l29_n883</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n518()</div><div class='add'>+    fun_l29_n401</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n519()</div><div class='add'>+    fun_l29_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n520()</div><div class='add'>+    fun_l29_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n521()</div><div class='add'>+    fun_l29_n277</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n522()</div><div class='add'>+    fun_l29_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n523()</div><div class='add'>+    fun_l29_n373</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n524()</div><div class='add'>+    fun_l29_n378</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n525()</div><div class='add'>+    fun_l29_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n526()</div><div class='add'>+    fun_l29_n975</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n527()</div><div class='add'>+    fun_l29_n34</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n528()</div><div class='add'>+    fun_l29_n346</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n529()</div><div class='add'>+    fun_l29_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n530()</div><div class='add'>+    fun_l29_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n531()</div><div class='add'>+    fun_l29_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n532()</div><div class='add'>+    fun_l29_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n533()</div><div class='add'>+    fun_l29_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n534()</div><div class='add'>+    fun_l29_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n535()</div><div class='add'>+    fun_l29_n602</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n536()</div><div class='add'>+    fun_l29_n573</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n537()</div><div class='add'>+    fun_l29_n448</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n538()</div><div class='add'>+    fun_l29_n637</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n539()</div><div class='add'>+    fun_l29_n890</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n540()</div><div class='add'>+    fun_l29_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n541()</div><div class='add'>+    fun_l29_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n542()</div><div class='add'>+    fun_l29_n656</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n543()</div><div class='add'>+    fun_l29_n974</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n544()</div><div class='add'>+    fun_l29_n711</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n545()</div><div class='add'>+    fun_l29_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n546()</div><div class='add'>+    fun_l29_n677</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n547()</div><div class='add'>+    fun_l29_n125</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n548()</div><div class='add'>+    fun_l29_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n549()</div><div class='add'>+    fun_l29_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n550()</div><div class='add'>+    fun_l29_n86</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n551()</div><div class='add'>+    fun_l29_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n552()</div><div class='add'>+    fun_l29_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n553()</div><div class='add'>+    fun_l29_n143</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n554()</div><div class='add'>+    fun_l29_n435</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n555()</div><div class='add'>+    fun_l29_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n556()</div><div class='add'>+    fun_l29_n23</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n557()</div><div class='add'>+    fun_l29_n658</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n558()</div><div class='add'>+    fun_l29_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n559()</div><div class='add'>+    fun_l29_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n560()</div><div class='add'>+    fun_l29_n101</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n561()</div><div class='add'>+    fun_l29_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n562()</div><div class='add'>+    fun_l29_n43</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n563()</div><div class='add'>+    fun_l29_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n564()</div><div class='add'>+    fun_l29_n131</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n565()</div><div class='add'>+    fun_l29_n920</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n566()</div><div class='add'>+    fun_l29_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n567()</div><div class='add'>+    fun_l29_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n568()</div><div class='add'>+    fun_l29_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n569()</div><div class='add'>+    fun_l29_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n570()</div><div class='add'>+    fun_l29_n349</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n571()</div><div class='add'>+    fun_l29_n927</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n572()</div><div class='add'>+    fun_l29_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n573()</div><div class='add'>+    fun_l29_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n574()</div><div class='add'>+    fun_l29_n397</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n575()</div><div class='add'>+    fun_l29_n423</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n576()</div><div class='add'>+    fun_l29_n867</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n577()</div><div class='add'>+    fun_l29_n529</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n578()</div><div class='add'>+    fun_l29_n825</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n579()</div><div class='add'>+    fun_l29_n51</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n580()</div><div class='add'>+    fun_l29_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n581()</div><div class='add'>+    fun_l29_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n582()</div><div class='add'>+    fun_l29_n771</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n583()</div><div class='add'>+    fun_l29_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n584()</div><div class='add'>+    fun_l29_n348</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n585()</div><div class='add'>+    fun_l29_n895</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n586()</div><div class='add'>+    fun_l29_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n587()</div><div class='add'>+    fun_l29_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n588()</div><div class='add'>+    fun_l29_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n589()</div><div class='add'>+    fun_l29_n837</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n590()</div><div class='add'>+    fun_l29_n956</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n591()</div><div class='add'>+    fun_l29_n309</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n592()</div><div class='add'>+    fun_l29_n706</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n593()</div><div class='add'>+    fun_l29_n58</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n594()</div><div class='add'>+    fun_l29_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n595()</div><div class='add'>+    fun_l29_n281</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n596()</div><div class='add'>+    fun_l29_n748</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n597()</div><div class='add'>+    fun_l29_n109</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n598()</div><div class='add'>+    fun_l29_n730</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n599()</div><div class='add'>+    fun_l29_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n600()</div><div class='add'>+    fun_l29_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n601()</div><div class='add'>+    fun_l29_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n602()</div><div class='add'>+    fun_l29_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n603()</div><div class='add'>+    fun_l29_n331</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n604()</div><div class='add'>+    fun_l29_n695</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n605()</div><div class='add'>+    fun_l29_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n606()</div><div class='add'>+    fun_l29_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n607()</div><div class='add'>+    fun_l29_n728</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n608()</div><div class='add'>+    fun_l29_n248</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n609()</div><div class='add'>+    fun_l29_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n610()</div><div class='add'>+    fun_l29_n473</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n611()</div><div class='add'>+    fun_l29_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n612()</div><div class='add'>+    fun_l29_n790</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n613()</div><div class='add'>+    fun_l29_n983</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n614()</div><div class='add'>+    fun_l29_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n615()</div><div class='add'>+    fun_l29_n792</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n616()</div><div class='add'>+    fun_l29_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n617()</div><div class='add'>+    fun_l29_n559</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n618()</div><div class='add'>+    fun_l29_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n619()</div><div class='add'>+    fun_l29_n152</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n620()</div><div class='add'>+    fun_l29_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n621()</div><div class='add'>+    fun_l29_n165</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n622()</div><div class='add'>+    fun_l29_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n623()</div><div class='add'>+    fun_l29_n182</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n624()</div><div class='add'>+    fun_l29_n76</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n625()</div><div class='add'>+    fun_l29_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n626()</div><div class='add'>+    fun_l29_n943</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n627()</div><div class='add'>+    fun_l29_n25</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n628()</div><div class='add'>+    fun_l29_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n629()</div><div class='add'>+    fun_l29_n590</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n630()</div><div class='add'>+    fun_l29_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n631()</div><div class='add'>+    fun_l29_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n632()</div><div class='add'>+    fun_l29_n197</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n633()</div><div class='add'>+    fun_l29_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n634()</div><div class='add'>+    fun_l29_n585</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n635()</div><div class='add'>+    fun_l29_n987</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n636()</div><div class='add'>+    fun_l29_n440</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n637()</div><div class='add'>+    fun_l29_n808</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n638()</div><div class='add'>+    fun_l29_n208</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n639()</div><div class='add'>+    fun_l29_n382</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n640()</div><div class='add'>+    fun_l29_n631</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n641()</div><div class='add'>+    fun_l29_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n642()</div><div class='add'>+    fun_l29_n682</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n643()</div><div class='add'>+    fun_l29_n57</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n644()</div><div class='add'>+    fun_l29_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n645()</div><div class='add'>+    fun_l29_n855</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n646()</div><div class='add'>+    fun_l29_n200</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n647()</div><div class='add'>+    fun_l29_n820</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n648()</div><div class='add'>+    fun_l29_n363</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n649()</div><div class='add'>+    fun_l29_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n650()</div><div class='add'>+    fun_l29_n342</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n651()</div><div class='add'>+    fun_l29_n740</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n652()</div><div class='add'>+    fun_l29_n646</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n653()</div><div class='add'>+    fun_l29_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n654()</div><div class='add'>+    fun_l29_n438</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n655()</div><div class='add'>+    fun_l29_n198</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n656()</div><div class='add'>+    fun_l29_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n657()</div><div class='add'>+    fun_l29_n54</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n658()</div><div class='add'>+    fun_l29_n5</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n659()</div><div class='add'>+    fun_l29_n30</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n660()</div><div class='add'>+    fun_l29_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n661()</div><div class='add'>+    fun_l29_n231</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n662()</div><div class='add'>+    fun_l29_n515</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n663()</div><div class='add'>+    fun_l29_n327</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n664()</div><div class='add'>+    fun_l29_n188</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n665()</div><div class='add'>+    fun_l29_n976</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n666()</div><div class='add'>+    fun_l29_n482</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n667()</div><div class='add'>+    fun_l29_n106</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n668()</div><div class='add'>+    fun_l29_n339</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n669()</div><div class='add'>+    fun_l29_n445</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n670()</div><div class='add'>+    fun_l29_n708</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n671()</div><div class='add'>+    fun_l29_n846</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n672()</div><div class='add'>+    fun_l29_n142</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n673()</div><div class='add'>+    fun_l29_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n674()</div><div class='add'>+    fun_l29_n875</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n675()</div><div class='add'>+    fun_l29_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n676()</div><div class='add'>+    fun_l29_n243</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n677()</div><div class='add'>+    fun_l29_n580</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n678()</div><div class='add'>+    fun_l29_n75</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n679()</div><div class='add'>+    fun_l29_n230</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n680()</div><div class='add'>+    fun_l29_n72</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n681()</div><div class='add'>+    fun_l29_n429</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n682()</div><div class='add'>+    fun_l29_n816</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n683()</div><div class='add'>+    fun_l29_n896</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n684()</div><div class='add'>+    fun_l29_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n685()</div><div class='add'>+    fun_l29_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n686()</div><div class='add'>+    fun_l29_n547</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n687()</div><div class='add'>+    fun_l29_n670</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n688()</div><div class='add'>+    fun_l29_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n689()</div><div class='add'>+    fun_l29_n137</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n690()</div><div class='add'>+    fun_l29_n532</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n691()</div><div class='add'>+    fun_l29_n608</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n692()</div><div class='add'>+    fun_l29_n264</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n693()</div><div class='add'>+    fun_l29_n220</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n694()</div><div class='add'>+    fun_l29_n499</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n695()</div><div class='add'>+    fun_l29_n244</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n696()</div><div class='add'>+    fun_l29_n952</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n697()</div><div class='add'>+    fun_l29_n700</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n698()</div><div class='add'>+    fun_l29_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n699()</div><div class='add'>+    fun_l29_n712</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n700()</div><div class='add'>+    fun_l29_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n701()</div><div class='add'>+    fun_l29_n759</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n702()</div><div class='add'>+    fun_l29_n786</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n703()</div><div class='add'>+    fun_l29_n858</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n704()</div><div class='add'>+    fun_l29_n328</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n705()</div><div class='add'>+    fun_l29_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n706()</div><div class='add'>+    fun_l29_n317</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n707()</div><div class='add'>+    fun_l29_n335</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n708()</div><div class='add'>+    fun_l29_n483</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n709()</div><div class='add'>+    fun_l29_n1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n710()</div><div class='add'>+    fun_l29_n962</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n711()</div><div class='add'>+    fun_l29_n158</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n712()</div><div class='add'>+    fun_l29_n591</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n713()</div><div class='add'>+    fun_l29_n849</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n714()</div><div class='add'>+    fun_l29_n149</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n715()</div><div class='add'>+    fun_l29_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n716()</div><div class='add'>+    fun_l29_n173</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n717()</div><div class='add'>+    fun_l29_n21</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n718()</div><div class='add'>+    fun_l29_n384</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n719()</div><div class='add'>+    fun_l29_n601</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n720()</div><div class='add'>+    fun_l29_n388</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n721()</div><div class='add'>+    fun_l29_n866</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n722()</div><div class='add'>+    fun_l29_n261</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n723()</div><div class='add'>+    fun_l29_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n724()</div><div class='add'>+    fun_l29_n77</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n725()</div><div class='add'>+    fun_l29_n395</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n726()</div><div class='add'>+    fun_l29_n863</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n727()</div><div class='add'>+    fun_l29_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n728()</div><div class='add'>+    fun_l29_n400</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n729()</div><div class='add'>+    fun_l29_n495</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n730()</div><div class='add'>+    fun_l29_n813</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n731()</div><div class='add'>+    fun_l29_n330</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n732()</div><div class='add'>+    fun_l29_n479</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n733()</div><div class='add'>+    fun_l29_n446</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n734()</div><div class='add'>+    fun_l29_n354</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n735()</div><div class='add'>+    fun_l29_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n736()</div><div class='add'>+    fun_l29_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n737()</div><div class='add'>+    fun_l29_n457</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n738()</div><div class='add'>+    fun_l29_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n739()</div><div class='add'>+    fun_l29_n412</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n740()</div><div class='add'>+    fun_l29_n290</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n741()</div><div class='add'>+    fun_l29_n935</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n742()</div><div class='add'>+    fun_l29_n833</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n743()</div><div class='add'>+    fun_l29_n296</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n744()</div><div class='add'>+    fun_l29_n249</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n745()</div><div class='add'>+    fun_l29_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n746()</div><div class='add'>+    fun_l29_n707</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n747()</div><div class='add'>+    fun_l29_n633</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n748()</div><div class='add'>+    fun_l29_n303</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n749()</div><div class='add'>+    fun_l29_n971</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n750()</div><div class='add'>+    fun_l29_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n751()</div><div class='add'>+    fun_l29_n88</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n752()</div><div class='add'>+    fun_l29_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n753()</div><div class='add'>+    fun_l29_n322</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n754()</div><div class='add'>+    fun_l29_n362</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n755()</div><div class='add'>+    fun_l29_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n756()</div><div class='add'>+    fun_l29_n848</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n757()</div><div class='add'>+    fun_l29_n617</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n758()</div><div class='add'>+    fun_l29_n103</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n759()</div><div class='add'>+    fun_l29_n625</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n760()</div><div class='add'>+    fun_l29_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n761()</div><div class='add'>+    fun_l29_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n762()</div><div class='add'>+    fun_l29_n118</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n763()</div><div class='add'>+    fun_l29_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n764()</div><div class='add'>+    fun_l29_n609</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n765()</div><div class='add'>+    fun_l29_n710</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n766()</div><div class='add'>+    fun_l29_n563</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n767()</div><div class='add'>+    fun_l29_n324</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n768()</div><div class='add'>+    fun_l29_n783</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n769()</div><div class='add'>+    fun_l29_n512</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n770()</div><div class='add'>+    fun_l29_n0</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n771()</div><div class='add'>+    fun_l29_n60</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n772()</div><div class='add'>+    fun_l29_n18</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n773()</div><div class='add'>+    fun_l29_n741</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n774()</div><div class='add'>+    fun_l29_n862</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n775()</div><div class='add'>+    fun_l29_n183</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n776()</div><div class='add'>+    fun_l29_n148</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n777()</div><div class='add'>+    fun_l29_n703</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n778()</div><div class='add'>+    fun_l29_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n779()</div><div class='add'>+    fun_l29_n84</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n780()</div><div class='add'>+    fun_l29_n85</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n781()</div><div class='add'>+    fun_l29_n632</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n782()</div><div class='add'>+    fun_l29_n28</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n783()</div><div class='add'>+    fun_l29_n123</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n784()</div><div class='add'>+    fun_l29_n66</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n785()</div><div class='add'>+    fun_l29_n266</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n786()</div><div class='add'>+    fun_l29_n860</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n787()</div><div class='add'>+    fun_l29_n769</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n788()</div><div class='add'>+    fun_l29_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n789()</div><div class='add'>+    fun_l29_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n790()</div><div class='add'>+    fun_l29_n455</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n791()</div><div class='add'>+    fun_l29_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n792()</div><div class='add'>+    fun_l29_n557</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n793()</div><div class='add'>+    fun_l29_n827</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n794()</div><div class='add'>+    fun_l29_n561</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n795()</div><div class='add'>+    fun_l29_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n796()</div><div class='add'>+    fun_l29_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n797()</div><div class='add'>+    fun_l29_n157</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n798()</div><div class='add'>+    fun_l29_n691</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n799()</div><div class='add'>+    fun_l29_n20</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n800()</div><div class='add'>+    fun_l29_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n801()</div><div class='add'>+    fun_l29_n675</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n802()</div><div class='add'>+    fun_l29_n385</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n803()</div><div class='add'>+    fun_l29_n206</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n804()</div><div class='add'>+    fun_l29_n366</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n805()</div><div class='add'>+    fun_l29_n107</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n806()</div><div class='add'>+    fun_l29_n425</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n807()</div><div class='add'>+    fun_l29_n371</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n808()</div><div class='add'>+    fun_l29_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n809()</div><div class='add'>+    fun_l29_n168</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n810()</div><div class='add'>+    fun_l29_n201</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n811()</div><div class='add'>+    fun_l29_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n812()</div><div class='add'>+    fun_l29_n251</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n813()</div><div class='add'>+    fun_l29_n10</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n814()</div><div class='add'>+    fun_l29_n428</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n815()</div><div class='add'>+    fun_l29_n850</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n816()</div><div class='add'>+    fun_l29_n276</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n817()</div><div class='add'>+    fun_l29_n196</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n818()</div><div class='add'>+    fun_l29_n623</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n819()</div><div class='add'>+    fun_l29_n441</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n820()</div><div class='add'>+    fun_l29_n724</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n821()</div><div class='add'>+    fun_l29_n958</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n822()</div><div class='add'>+    fun_l29_n449</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n823()</div><div class='add'>+    fun_l29_n408</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n824()</div><div class='add'>+    fun_l29_n74</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n825()</div><div class='add'>+    fun_l29_n124</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n826()</div><div class='add'>+    fun_l29_n991</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n827()</div><div class='add'>+    fun_l29_n576</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n828()</div><div class='add'>+    fun_l29_n743</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n829()</div><div class='add'>+    fun_l29_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n830()</div><div class='add'>+    fun_l29_n376</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n831()</div><div class='add'>+    fun_l29_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n832()</div><div class='add'>+    fun_l29_n358</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n833()</div><div class='add'>+    fun_l29_n567</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n834()</div><div class='add'>+    fun_l29_n415</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n835()</div><div class='add'>+    fun_l29_n984</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n836()</div><div class='add'>+    fun_l29_n367</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n837()</div><div class='add'>+    fun_l29_n299</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n838()</div><div class='add'>+    fun_l29_n718</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n839()</div><div class='add'>+    fun_l29_n241</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n840()</div><div class='add'>+    fun_l29_n736</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n841()</div><div class='add'>+    fun_l29_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n842()</div><div class='add'>+    fun_l29_n994</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n843()</div><div class='add'>+    fun_l29_n301</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n844()</div><div class='add'>+    fun_l29_n597</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n845()</div><div class='add'>+    fun_l29_n141</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n846()</div><div class='add'>+    fun_l29_n37</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n847()</div><div class='add'>+    fun_l29_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n848()</div><div class='add'>+    fun_l29_n286</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n849()</div><div class='add'>+    fun_l29_n607</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n850()</div><div class='add'>+    fun_l29_n503</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n851()</div><div class='add'>+    fun_l29_n321</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n852()</div><div class='add'>+    fun_l29_n179</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n853()</div><div class='add'>+    fun_l29_n802</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n854()</div><div class='add'>+    fun_l29_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n855()</div><div class='add'>+    fun_l29_n300</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n856()</div><div class='add'>+    fun_l29_n453</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n857()</div><div class='add'>+    fun_l29_n520</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n858()</div><div class='add'>+    fun_l29_n911</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n859()</div><div class='add'>+    fun_l29_n209</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n860()</div><div class='add'>+    fun_l29_n921</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n861()</div><div class='add'>+    fun_l29_n653</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n862()</div><div class='add'>+    fun_l29_n347</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n863()</div><div class='add'>+    fun_l29_n733</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n864()</div><div class='add'>+    fun_l29_n824</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n865()</div><div class='add'>+    fun_l29_n497</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n866()</div><div class='add'>+    fun_l29_n256</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n867()</div><div class='add'>+    fun_l29_n884</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n868()</div><div class='add'>+    fun_l29_n937</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n869()</div><div class='add'>+    fun_l29_n894</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n870()</div><div class='add'>+    fun_l29_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n871()</div><div class='add'>+    fun_l29_n45</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n872()</div><div class='add'>+    fun_l29_n640</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n873()</div><div class='add'>+    fun_l29_n909</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n874()</div><div class='add'>+    fun_l29_n586</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n875()</div><div class='add'>+    fun_l29_n600</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n876()</div><div class='add'>+    fun_l29_n636</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n877()</div><div class='add'>+    fun_l29_n972</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n878()</div><div class='add'>+    fun_l29_n627</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n879()</div><div class='add'>+    fun_l29_n381</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n880()</div><div class='add'>+    fun_l29_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n881()</div><div class='add'>+    fun_l29_n350</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n882()</div><div class='add'>+    fun_l29_n611</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n883()</div><div class='add'>+    fun_l29_n355</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n884()</div><div class='add'>+    fun_l29_n945</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n885()</div><div class='add'>+    fun_l29_n462</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n886()</div><div class='add'>+    fun_l29_n723</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n887()</div><div class='add'>+    fun_l29_n500</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n888()</div><div class='add'>+    fun_l29_n166</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n889()</div><div class='add'>+    fun_l29_n779</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n890()</div><div class='add'>+    fun_l29_n151</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n891()</div><div class='add'>+    fun_l29_n757</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n892()</div><div class='add'>+    fun_l29_n782</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n893()</div><div class='add'>+    fun_l29_n108</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n894()</div><div class='add'>+    fun_l29_n122</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n895()</div><div class='add'>+    fun_l29_n815</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n896()</div><div class='add'>+    fun_l29_n742</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n897()</div><div class='add'>+    fun_l29_n861</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n898()</div><div class='add'>+    fun_l29_n738</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n899()</div><div class='add'>+    fun_l29_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n900()</div><div class='add'>+    fun_l29_n648</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n901()</div><div class='add'>+    fun_l29_n923</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n902()</div><div class='add'>+    fun_l29_n269</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n903()</div><div class='add'>+    fun_l29_n626</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n904()</div><div class='add'>+    fun_l29_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n905()</div><div class='add'>+    fun_l29_n587</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n906()</div><div class='add'>+    fun_l29_n841</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n907()</div><div class='add'>+    fun_l29_n239</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n908()</div><div class='add'>+    fun_l29_n87</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n909()</div><div class='add'>+    fun_l29_n765</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n910()</div><div class='add'>+    fun_l29_n216</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n911()</div><div class='add'>+    fun_l29_n110</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n912()</div><div class='add'>+    fun_l29_n96</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n913()</div><div class='add'>+    fun_l29_n946</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n914()</div><div class='add'>+    fun_l29_n762</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n915()</div><div class='add'>+    fun_l29_n697</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n916()</div><div class='add'>+    fun_l29_n44</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n917()</div><div class='add'>+    fun_l29_n257</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n918()</div><div class='add'>+    fun_l29_n195</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n919()</div><div class='add'>+    fun_l29_n886</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n920()</div><div class='add'>+    fun_l29_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n921()</div><div class='add'>+    fun_l29_n746</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n922()</div><div class='add'>+    fun_l29_n756</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n923()</div><div class='add'>+    fun_l29_n33</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n924()</div><div class='add'>+    fun_l29_n720</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n925()</div><div class='add'>+    fun_l29_n629</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n926()</div><div class='add'>+    fun_l29_n144</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n927()</div><div class='add'>+    fun_l29_n225</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n928()</div><div class='add'>+    fun_l29_n556</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n929()</div><div class='add'>+    fun_l29_n436</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n930()</div><div class='add'>+    fun_l29_n380</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n931()</div><div class='add'>+    fun_l29_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n932()</div><div class='add'>+    fun_l29_n949</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n933()</div><div class='add'>+    fun_l29_n811</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n934()</div><div class='add'>+    fun_l29_n589</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n935()</div><div class='add'>+    fun_l29_n961</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n936()</div><div class='add'>+    fun_l29_n413</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n937()</div><div class='add'>+    fun_l29_n941</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n938()</div><div class='add'>+    fun_l29_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n939()</div><div class='add'>+    fun_l29_n364</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n940()</div><div class='add'>+    fun_l29_n100</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n941()</div><div class='add'>+    fun_l29_n254</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n942()</div><div class='add'>+    fun_l29_n272</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n943()</div><div class='add'>+    fun_l29_n420</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n944()</div><div class='add'>+    fun_l29_n132</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n945()</div><div class='add'>+    fun_l29_n907</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n946()</div><div class='add'>+    fun_l29_n784</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n947()</div><div class='add'>+    fun_l29_n938</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n948()</div><div class='add'>+    fun_l29_n780</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n949()</div><div class='add'>+    fun_l29_n584</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n950()</div><div class='add'>+    fun_l29_n258</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n951()</div><div class='add'>+    fun_l29_n754</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n952()</div><div class='add'>+    fun_l29_n582</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n953()</div><div class='add'>+    fun_l29_n278</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n954()</div><div class='add'>+    fun_l29_n870</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n955()</div><div class='add'>+    fun_l29_n664</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n956()</div><div class='add'>+    fun_l29_n375</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n957()</div><div class='add'>+    fun_l29_n613</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n958()</div><div class='add'>+    fun_l29_n530</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n959()</div><div class='add'>+    fun_l29_n933</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n960()</div><div class='add'>+    fun_l29_n298</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n961()</div><div class='add'>+    fun_l29_n507</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n962()</div><div class='add'>+    fun_l29_n526</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n963()</div><div class='add'>+    fun_l29_n508</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n964()</div><div class='add'>+    fun_l29_n227</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n965()</div><div class='add'>+    fun_l29_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n966()</div><div class='add'>+    fun_l29_n489</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n967()</div><div class='add'>+    fun_l29_n789</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n968()</div><div class='add'>+    fun_l29_n304</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n969()</div><div class='add'>+    fun_l29_n343</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n970()</div><div class='add'>+    fun_l29_n560</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n971()</div><div class='add'>+    fun_l29_n610</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n972()</div><div class='add'>+    fun_l29_n606</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n973()</div><div class='add'>+    fun_l29_n592</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n974()</div><div class='add'>+    fun_l29_n135</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n975()</div><div class='add'>+    fun_l29_n513</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n976()</div><div class='add'>+    fun_l29_n522</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n977()</div><div class='add'>+    fun_l29_n323</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n978()</div><div class='add'>+    fun_l29_n26</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n979()</div><div class='add'>+    fun_l29_n737</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n980()</div><div class='add'>+    fun_l29_n705</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n981()</div><div class='add'>+    fun_l29_n405</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n982()</div><div class='add'>+    fun_l29_n891</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n983()</div><div class='add'>+    fun_l29_n155</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n984()</div><div class='add'>+    fun_l29_n814</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n985()</div><div class='add'>+    fun_l29_n70</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n986()</div><div class='add'>+    fun_l29_n940</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n987()</div><div class='add'>+    fun_l29_n427</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n988()</div><div class='add'>+    fun_l29_n478</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n989()</div><div class='add'>+    fun_l29_n432</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n990()</div><div class='add'>+    fun_l29_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n991()</div><div class='add'>+    fun_l29_n422</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n992()</div><div class='add'>+    fun_l29_n917</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n993()</div><div class='add'>+    fun_l29_n391</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n994()</div><div class='add'>+    fun_l29_n950</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n995()</div><div class='add'>+    fun_l29_n635</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n996()</div><div class='add'>+    fun_l29_n392</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n997()</div><div class='add'>+    fun_l29_n311</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n998()</div><div class='add'>+    fun_l29_n320</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l28_n999()</div><div class='add'>+    fun_l29_n916</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n0()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n1()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n2()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n3()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n4()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n5()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n6()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n7()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n8()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n9()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n10()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n11()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n12()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n13()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n14()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n15()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n16()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n17()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n18()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n19()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n20()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n21()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n22()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n23()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n24()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n25()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n26()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n27()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n28()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n29()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n30()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n31()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n32()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n33()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n34()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n35()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n36()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n37()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n38()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n39()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n40()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n41()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n42()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n43()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n44()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n45()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n46()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n47()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n48()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n49()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n50()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n51()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n52()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n53()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n54()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n55()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n56()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n57()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n58()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n59()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n60()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n61()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n62()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n63()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n64()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n65()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n66()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n67()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n68()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n69()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n70()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n71()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n72()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n73()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n74()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n75()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n76()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n77()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n78()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n79()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n80()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n81()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n82()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n83()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n84()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n85()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n86()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n87()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n88()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n89()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n90()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n91()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n92()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n93()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n94()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n95()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n96()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n97()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n98()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n99()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n100()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n101()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n102()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n103()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n104()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n105()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n106()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n107()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n108()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n109()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n110()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n111()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n112()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n113()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n114()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n115()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n116()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n117()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n118()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n119()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n120()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n121()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n122()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n123()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n124()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n125()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n126()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n127()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n128()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n129()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n130()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n131()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n132()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n133()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n134()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n135()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n136()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n137()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n138()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n139()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n140()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n141()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n142()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n143()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n144()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n145()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n146()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n147()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n148()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n149()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n150()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n151()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n152()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n153()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n154()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n155()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n156()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n157()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n158()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n159()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n160()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n161()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n162()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n163()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n164()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n165()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n166()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n167()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n168()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n169()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n170()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n171()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n172()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n173()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n174()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n175()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n176()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n177()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n178()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n179()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n180()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n181()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n182()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n183()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n184()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n185()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n186()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n187()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n188()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n189()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n190()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n191()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n192()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n193()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n194()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n195()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n196()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n197()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n198()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n199()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n200()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n201()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n202()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n203()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n204()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n205()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n206()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n207()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n208()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n209()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n210()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n211()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n212()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n213()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n214()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n215()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n216()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n217()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n218()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n219()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n220()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n221()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n222()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n223()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n224()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n225()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n226()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n227()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n228()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n229()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n230()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n231()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n232()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n233()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n234()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n235()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n236()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n237()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n238()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n239()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n240()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n241()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n242()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n243()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n244()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n245()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n246()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n247()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n248()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n249()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n250()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n251()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n252()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n253()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n254()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n255()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n256()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n257()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n258()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n259()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n260()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n261()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n262()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n263()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n264()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n265()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n266()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n267()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n268()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n269()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n270()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n271()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n272()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n273()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n274()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n275()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n276()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n277()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n278()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n279()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n280()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n281()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n282()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n283()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n284()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n285()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n286()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n287()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n288()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n289()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n290()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n291()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n292()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n293()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n294()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n295()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n296()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n297()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n298()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n299()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n300()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n301()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n302()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n303()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n304()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n305()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n306()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n307()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n308()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n309()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n310()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n311()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n312()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n313()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n314()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n315()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n316()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n317()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n318()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n319()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n320()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n321()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n322()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n323()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n324()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n325()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n326()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n327()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n328()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n329()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n330()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n331()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n332()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n333()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n334()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n335()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n336()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n337()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n338()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n339()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n340()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n341()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n342()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n343()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n344()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n345()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n346()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n347()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n348()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n349()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n350()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n351()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n352()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n353()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n354()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n355()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n356()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n357()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n358()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n359()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n360()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n361()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n362()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n363()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n364()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n365()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n366()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n367()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n368()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n369()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n370()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n371()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n372()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n373()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n374()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n375()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n376()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n377()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n378()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n379()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n380()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n381()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n382()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n383()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n384()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n385()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n386()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n387()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n388()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n389()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n390()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n391()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n392()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n393()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n394()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n395()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n396()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n397()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n398()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n399()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n400()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n401()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n402()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n403()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n404()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n405()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n406()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n407()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n408()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n409()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n410()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n411()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n412()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n413()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n414()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n415()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n416()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n417()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n418()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n419()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n420()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n421()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n422()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n423()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n424()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n425()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n426()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n427()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n428()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n429()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n430()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n431()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n432()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n433()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n434()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n435()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n436()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n437()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n438()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n439()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n440()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n441()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n442()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n443()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n444()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n445()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n446()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n447()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n448()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n449()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n450()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n451()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n452()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n453()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n454()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n455()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n456()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n457()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n458()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n459()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n460()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n461()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n462()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n463()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n464()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n465()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n466()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n467()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n468()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n469()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n470()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n471()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n472()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n473()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n474()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n475()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n476()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n477()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n478()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n479()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n480()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n481()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n482()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n483()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n484()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n485()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n486()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n487()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n488()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n489()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n490()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n491()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n492()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n493()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n494()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n495()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n496()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n497()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n498()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n499()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n500()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n501()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n502()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n503()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n504()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n505()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n506()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n507()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n508()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n509()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n510()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n511()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n512()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n513()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n514()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n515()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n516()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n517()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n518()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n519()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n520()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n521()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n522()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n523()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n524()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n525()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n526()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n527()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n528()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n529()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n530()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n531()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n532()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n533()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n534()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n535()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n536()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n537()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n538()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n539()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n540()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n541()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n542()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n543()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n544()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n545()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n546()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n547()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n548()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n549()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n550()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n551()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n552()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n553()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n554()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n555()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n556()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n557()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n558()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n559()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n560()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n561()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n562()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n563()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n564()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n565()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n566()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n567()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n568()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n569()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n570()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n571()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n572()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n573()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n574()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n575()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n576()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n577()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n578()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n579()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n580()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n581()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n582()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n583()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n584()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n585()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n586()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n587()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n588()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n589()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n590()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n591()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n592()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n593()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n594()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n595()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n596()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n597()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n598()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n599()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n600()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n601()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n602()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n603()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n604()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n605()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n606()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n607()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n608()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n609()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n610()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n611()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n612()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n613()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n614()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n615()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n616()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n617()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n618()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n619()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n620()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n621()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n622()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n623()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n624()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n625()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n626()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n627()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n628()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n629()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n630()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n631()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n632()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n633()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n634()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n635()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n636()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n637()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n638()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n639()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n640()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n641()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n642()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n643()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n644()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n645()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n646()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n647()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n648()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n649()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n650()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n651()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n652()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n653()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n654()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n655()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n656()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n657()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n658()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n659()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n660()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n661()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n662()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n663()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n664()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n665()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n666()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n667()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n668()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n669()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n670()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n671()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n672()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n673()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n674()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n675()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n676()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n677()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n678()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n679()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n680()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n681()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n682()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n683()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n684()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n685()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n686()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n687()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n688()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n689()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n690()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n691()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n692()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n693()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n694()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n695()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n696()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n697()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n698()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n699()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n700()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n701()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n702()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n703()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n704()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n705()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n706()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n707()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n708()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n709()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n710()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n711()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n712()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n713()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n714()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n715()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n716()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n717()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n718()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n719()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n720()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n721()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n722()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n723()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n724()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n725()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n726()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n727()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n728()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n729()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n730()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n731()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n732()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n733()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n734()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n735()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n736()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n737()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n738()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n739()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n740()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n741()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n742()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n743()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n744()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n745()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n746()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n747()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n748()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n749()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n750()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n751()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n752()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n753()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n754()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n755()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n756()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n757()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n758()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n759()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n760()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n761()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n762()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n763()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n764()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n765()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n766()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n767()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n768()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n769()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n770()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n771()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n772()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n773()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n774()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n775()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n776()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n777()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n778()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n779()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n780()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n781()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n782()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n783()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n784()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n785()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n786()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n787()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n788()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n789()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n790()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n791()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n792()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n793()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n794()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n795()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n796()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n797()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n798()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n799()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n800()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n801()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n802()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n803()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n804()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n805()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n806()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n807()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n808()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n809()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n810()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n811()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n812()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n813()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n814()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n815()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n816()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n817()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n818()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n819()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n820()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n821()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n822()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n823()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n824()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n825()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n826()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n827()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n828()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n829()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n830()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n831()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n832()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n833()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n834()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n835()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n836()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n837()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n838()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n839()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n840()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n841()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n842()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n843()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n844()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n845()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n846()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n847()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n848()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n849()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n850()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n851()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n852()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n853()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n854()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n855()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n856()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n857()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n858()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n859()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n860()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n861()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n862()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n863()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n864()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n865()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n866()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n867()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n868()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n869()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n870()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n871()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n872()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n873()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n874()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n875()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n876()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n877()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n878()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n879()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n880()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n881()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n882()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n883()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n884()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n885()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n886()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n887()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n888()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n889()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n890()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n891()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n892()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n893()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n894()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n895()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n896()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n897()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n898()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n899()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n900()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n901()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n902()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n903()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n904()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n905()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n906()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n907()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n908()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n909()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n910()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n911()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n912()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n913()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n914()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n915()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n916()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n917()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n918()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n919()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n920()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n921()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n922()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n923()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n924()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n925()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n926()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n927()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n928()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n929()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n930()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n931()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n932()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n933()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n934()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n935()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n936()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n937()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n938()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n939()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n940()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n941()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n942()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n943()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n944()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n945()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n946()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n947()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n948()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n949()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n950()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n951()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n952()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n953()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n954()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n955()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n956()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n957()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n958()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n959()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n960()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n961()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n962()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n963()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n964()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n965()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n966()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n967()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n968()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n969()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n970()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n971()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n972()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n973()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n974()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n975()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n976()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n977()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n978()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n979()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n980()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n981()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n982()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n983()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n984()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n985()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n986()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n987()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n988()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n989()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n990()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n991()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n992()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n993()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n994()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n995()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n996()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n997()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n998()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def fun_l29_n999()</div><div class='add'>+    inc</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+@a = 0</div><div class='add'>+@b = 0</div><div class='add'>+@c = 0</div><div class='add'>+@d = 0</div><div class='add'>+@count = 0</div><div class='add'>+def inc()</div><div class='add'>+    @count += 1</div><div class='add'>+end</div><div class='add'>+1000.times do</div><div class='add'>+    fun_l0_n0</div><div class='add'>+    fun_l0_n1</div><div class='add'>+    fun_l0_n2</div><div class='add'>+    fun_l0_n3</div><div class='add'>+    fun_l0_n4</div><div class='add'>+    fun_l0_n5</div><div class='add'>+    fun_l0_n6</div><div class='add'>+    fun_l0_n7</div><div class='add'>+    fun_l0_n8</div><div class='add'>+    fun_l0_n9</div><div class='add'>+    fun_l0_n10</div><div class='add'>+    fun_l0_n11</div><div class='add'>+    fun_l0_n12</div><div class='add'>+    fun_l0_n13</div><div class='add'>+    fun_l0_n14</div><div class='add'>+    fun_l0_n15</div><div class='add'>+    fun_l0_n16</div><div class='add'>+    fun_l0_n17</div><div class='add'>+    fun_l0_n18</div><div class='add'>+    fun_l0_n19</div><div class='add'>+    fun_l0_n20</div><div class='add'>+    fun_l0_n21</div><div class='add'>+    fun_l0_n22</div><div class='add'>+    fun_l0_n23</div><div class='add'>+    fun_l0_n24</div><div class='add'>+    fun_l0_n25</div><div class='add'>+    fun_l0_n26</div><div class='add'>+    fun_l0_n27</div><div class='add'>+    fun_l0_n28</div><div class='add'>+    fun_l0_n29</div><div class='add'>+    fun_l0_n30</div><div class='add'>+    fun_l0_n31</div><div class='add'>+    fun_l0_n32</div><div class='add'>+    fun_l0_n33</div><div class='add'>+    fun_l0_n34</div><div class='add'>+    fun_l0_n35</div><div class='add'>+    fun_l0_n36</div><div class='add'>+    fun_l0_n37</div><div class='add'>+    fun_l0_n38</div><div class='add'>+    fun_l0_n39</div><div class='add'>+    fun_l0_n40</div><div class='add'>+    fun_l0_n41</div><div class='add'>+    fun_l0_n42</div><div class='add'>+    fun_l0_n43</div><div class='add'>+    fun_l0_n44</div><div class='add'>+    fun_l0_n45</div><div class='add'>+    fun_l0_n46</div><div class='add'>+    fun_l0_n47</div><div class='add'>+    fun_l0_n48</div><div class='add'>+    fun_l0_n49</div><div class='add'>+    fun_l0_n50</div><div class='add'>+    fun_l0_n51</div><div class='add'>+    fun_l0_n52</div><div class='add'>+    fun_l0_n53</div><div class='add'>+    fun_l0_n54</div><div class='add'>+    fun_l0_n55</div><div class='add'>+    fun_l0_n56</div><div class='add'>+    fun_l0_n57</div><div class='add'>+    fun_l0_n58</div><div class='add'>+    fun_l0_n59</div><div class='add'>+    fun_l0_n60</div><div class='add'>+    fun_l0_n61</div><div class='add'>+    fun_l0_n62</div><div class='add'>+    fun_l0_n63</div><div class='add'>+    fun_l0_n64</div><div class='add'>+    fun_l0_n65</div><div class='add'>+    fun_l0_n66</div><div class='add'>+    fun_l0_n67</div><div class='add'>+    fun_l0_n68</div><div class='add'>+    fun_l0_n69</div><div class='add'>+    fun_l0_n70</div><div class='add'>+    fun_l0_n71</div><div class='add'>+    fun_l0_n72</div><div class='add'>+    fun_l0_n73</div><div class='add'>+    fun_l0_n74</div><div class='add'>+    fun_l0_n75</div><div class='add'>+    fun_l0_n76</div><div class='add'>+    fun_l0_n77</div><div class='add'>+    fun_l0_n78</div><div class='add'>+    fun_l0_n79</div><div class='add'>+    fun_l0_n80</div><div class='add'>+    fun_l0_n81</div><div class='add'>+    fun_l0_n82</div><div class='add'>+    fun_l0_n83</div><div class='add'>+    fun_l0_n84</div><div class='add'>+    fun_l0_n85</div><div class='add'>+    fun_l0_n86</div><div class='add'>+    fun_l0_n87</div><div class='add'>+    fun_l0_n88</div><div class='add'>+    fun_l0_n89</div><div class='add'>+    fun_l0_n90</div><div class='add'>+    fun_l0_n91</div><div class='add'>+    fun_l0_n92</div><div class='add'>+    fun_l0_n93</div><div class='add'>+    fun_l0_n94</div><div class='add'>+    fun_l0_n95</div><div class='add'>+    fun_l0_n96</div><div class='add'>+    fun_l0_n97</div><div class='add'>+    fun_l0_n98</div><div class='add'>+    fun_l0_n99</div><div class='add'>+    fun_l0_n100</div><div class='add'>+    fun_l0_n101</div><div class='add'>+    fun_l0_n102</div><div class='add'>+    fun_l0_n103</div><div class='add'>+    fun_l0_n104</div><div class='add'>+    fun_l0_n105</div><div class='add'>+    fun_l0_n106</div><div class='add'>+    fun_l0_n107</div><div class='add'>+    fun_l0_n108</div><div class='add'>+    fun_l0_n109</div><div class='add'>+    fun_l0_n110</div><div class='add'>+    fun_l0_n111</div><div class='add'>+    fun_l0_n112</div><div class='add'>+    fun_l0_n113</div><div class='add'>+    fun_l0_n114</div><div class='add'>+    fun_l0_n115</div><div class='add'>+    fun_l0_n116</div><div class='add'>+    fun_l0_n117</div><div class='add'>+    fun_l0_n118</div><div class='add'>+    fun_l0_n119</div><div class='add'>+    fun_l0_n120</div><div class='add'>+    fun_l0_n121</div><div class='add'>+    fun_l0_n122</div><div class='add'>+    fun_l0_n123</div><div class='add'>+    fun_l0_n124</div><div class='add'>+    fun_l0_n125</div><div class='add'>+    fun_l0_n126</div><div class='add'>+    fun_l0_n127</div><div class='add'>+    fun_l0_n128</div><div class='add'>+    fun_l0_n129</div><div class='add'>+    fun_l0_n130</div><div class='add'>+    fun_l0_n131</div><div class='add'>+    fun_l0_n132</div><div class='add'>+    fun_l0_n133</div><div class='add'>+    fun_l0_n134</div><div class='add'>+    fun_l0_n135</div><div class='add'>+    fun_l0_n136</div><div class='add'>+    fun_l0_n137</div><div class='add'>+    fun_l0_n138</div><div class='add'>+    fun_l0_n139</div><div class='add'>+    fun_l0_n140</div><div class='add'>+    fun_l0_n141</div><div class='add'>+    fun_l0_n142</div><div class='add'>+    fun_l0_n143</div><div class='add'>+    fun_l0_n144</div><div class='add'>+    fun_l0_n145</div><div class='add'>+    fun_l0_n146</div><div class='add'>+    fun_l0_n147</div><div class='add'>+    fun_l0_n148</div><div class='add'>+    fun_l0_n149</div><div class='add'>+    fun_l0_n150</div><div class='add'>+    fun_l0_n151</div><div class='add'>+    fun_l0_n152</div><div class='add'>+    fun_l0_n153</div><div class='add'>+    fun_l0_n154</div><div class='add'>+    fun_l0_n155</div><div class='add'>+    fun_l0_n156</div><div class='add'>+    fun_l0_n157</div><div class='add'>+    fun_l0_n158</div><div class='add'>+    fun_l0_n159</div><div class='add'>+    fun_l0_n160</div><div class='add'>+    fun_l0_n161</div><div class='add'>+    fun_l0_n162</div><div class='add'>+    fun_l0_n163</div><div class='add'>+    fun_l0_n164</div><div class='add'>+    fun_l0_n165</div><div class='add'>+    fun_l0_n166</div><div class='add'>+    fun_l0_n167</div><div class='add'>+    fun_l0_n168</div><div class='add'>+    fun_l0_n169</div><div class='add'>+    fun_l0_n170</div><div class='add'>+    fun_l0_n171</div><div class='add'>+    fun_l0_n172</div><div class='add'>+    fun_l0_n173</div><div class='add'>+    fun_l0_n174</div><div class='add'>+    fun_l0_n175</div><div class='add'>+    fun_l0_n176</div><div class='add'>+    fun_l0_n177</div><div class='add'>+    fun_l0_n178</div><div class='add'>+    fun_l0_n179</div><div class='add'>+    fun_l0_n180</div><div class='add'>+    fun_l0_n181</div><div class='add'>+    fun_l0_n182</div><div class='add'>+    fun_l0_n183</div><div class='add'>+    fun_l0_n184</div><div class='add'>+    fun_l0_n185</div><div class='add'>+    fun_l0_n186</div><div class='add'>+    fun_l0_n187</div><div class='add'>+    fun_l0_n188</div><div class='add'>+    fun_l0_n189</div><div class='add'>+    fun_l0_n190</div><div class='add'>+    fun_l0_n191</div><div class='add'>+    fun_l0_n192</div><div class='add'>+    fun_l0_n193</div><div class='add'>+    fun_l0_n194</div><div class='add'>+    fun_l0_n195</div><div class='add'>+    fun_l0_n196</div><div class='add'>+    fun_l0_n197</div><div class='add'>+    fun_l0_n198</div><div class='add'>+    fun_l0_n199</div><div class='add'>+    fun_l0_n200</div><div class='add'>+    fun_l0_n201</div><div class='add'>+    fun_l0_n202</div><div class='add'>+    fun_l0_n203</div><div class='add'>+    fun_l0_n204</div><div class='add'>+    fun_l0_n205</div><div class='add'>+    fun_l0_n206</div><div class='add'>+    fun_l0_n207</div><div class='add'>+    fun_l0_n208</div><div class='add'>+    fun_l0_n209</div><div class='add'>+    fun_l0_n210</div><div class='add'>+    fun_l0_n211</div><div class='add'>+    fun_l0_n212</div><div class='add'>+    fun_l0_n213</div><div class='add'>+    fun_l0_n214</div><div class='add'>+    fun_l0_n215</div><div class='add'>+    fun_l0_n216</div><div class='add'>+    fun_l0_n217</div><div class='add'>+    fun_l0_n218</div><div class='add'>+    fun_l0_n219</div><div class='add'>+    fun_l0_n220</div><div class='add'>+    fun_l0_n221</div><div class='add'>+    fun_l0_n222</div><div class='add'>+    fun_l0_n223</div><div class='add'>+    fun_l0_n224</div><div class='add'>+    fun_l0_n225</div><div class='add'>+    fun_l0_n226</div><div class='add'>+    fun_l0_n227</div><div class='add'>+    fun_l0_n228</div><div class='add'>+    fun_l0_n229</div><div class='add'>+    fun_l0_n230</div><div class='add'>+    fun_l0_n231</div><div class='add'>+    fun_l0_n232</div><div class='add'>+    fun_l0_n233</div><div class='add'>+    fun_l0_n234</div><div class='add'>+    fun_l0_n235</div><div class='add'>+    fun_l0_n236</div><div class='add'>+    fun_l0_n237</div><div class='add'>+    fun_l0_n238</div><div class='add'>+    fun_l0_n239</div><div class='add'>+    fun_l0_n240</div><div class='add'>+    fun_l0_n241</div><div class='add'>+    fun_l0_n242</div><div class='add'>+    fun_l0_n243</div><div class='add'>+    fun_l0_n244</div><div class='add'>+    fun_l0_n245</div><div class='add'>+    fun_l0_n246</div><div class='add'>+    fun_l0_n247</div><div class='add'>+    fun_l0_n248</div><div class='add'>+    fun_l0_n249</div><div class='add'>+    fun_l0_n250</div><div class='add'>+    fun_l0_n251</div><div class='add'>+    fun_l0_n252</div><div class='add'>+    fun_l0_n253</div><div class='add'>+    fun_l0_n254</div><div class='add'>+    fun_l0_n255</div><div class='add'>+    fun_l0_n256</div><div class='add'>+    fun_l0_n257</div><div class='add'>+    fun_l0_n258</div><div class='add'>+    fun_l0_n259</div><div class='add'>+    fun_l0_n260</div><div class='add'>+    fun_l0_n261</div><div class='add'>+    fun_l0_n262</div><div class='add'>+    fun_l0_n263</div><div class='add'>+    fun_l0_n264</div><div class='add'>+    fun_l0_n265</div><div class='add'>+    fun_l0_n266</div><div class='add'>+    fun_l0_n267</div><div class='add'>+    fun_l0_n268</div><div class='add'>+    fun_l0_n269</div><div class='add'>+    fun_l0_n270</div><div class='add'>+    fun_l0_n271</div><div class='add'>+    fun_l0_n272</div><div class='add'>+    fun_l0_n273</div><div class='add'>+    fun_l0_n274</div><div class='add'>+    fun_l0_n275</div><div class='add'>+    fun_l0_n276</div><div class='add'>+    fun_l0_n277</div><div class='add'>+    fun_l0_n278</div><div class='add'>+    fun_l0_n279</div><div class='add'>+    fun_l0_n280</div><div class='add'>+    fun_l0_n281</div><div class='add'>+    fun_l0_n282</div><div class='add'>+    fun_l0_n283</div><div class='add'>+    fun_l0_n284</div><div class='add'>+    fun_l0_n285</div><div class='add'>+    fun_l0_n286</div><div class='add'>+    fun_l0_n287</div><div class='add'>+    fun_l0_n288</div><div class='add'>+    fun_l0_n289</div><div class='add'>+    fun_l0_n290</div><div class='add'>+    fun_l0_n291</div><div class='add'>+    fun_l0_n292</div><div class='add'>+    fun_l0_n293</div><div class='add'>+    fun_l0_n294</div><div class='add'>+    fun_l0_n295</div><div class='add'>+    fun_l0_n296</div><div class='add'>+    fun_l0_n297</div><div class='add'>+    fun_l0_n298</div><div class='add'>+    fun_l0_n299</div><div class='add'>+    fun_l0_n300</div><div class='add'>+    fun_l0_n301</div><div class='add'>+    fun_l0_n302</div><div class='add'>+    fun_l0_n303</div><div class='add'>+    fun_l0_n304</div><div class='add'>+    fun_l0_n305</div><div class='add'>+    fun_l0_n306</div><div class='add'>+    fun_l0_n307</div><div class='add'>+    fun_l0_n308</div><div class='add'>+    fun_l0_n309</div><div class='add'>+    fun_l0_n310</div><div class='add'>+    fun_l0_n311</div><div class='add'>+    fun_l0_n312</div><div class='add'>+    fun_l0_n313</div><div class='add'>+    fun_l0_n314</div><div class='add'>+    fun_l0_n315</div><div class='add'>+    fun_l0_n316</div><div class='add'>+    fun_l0_n317</div><div class='add'>+    fun_l0_n318</div><div class='add'>+    fun_l0_n319</div><div class='add'>+    fun_l0_n320</div><div class='add'>+    fun_l0_n321</div><div class='add'>+    fun_l0_n322</div><div class='add'>+    fun_l0_n323</div><div class='add'>+    fun_l0_n324</div><div class='add'>+    fun_l0_n325</div><div class='add'>+    fun_l0_n326</div><div class='add'>+    fun_l0_n327</div><div class='add'>+    fun_l0_n328</div><div class='add'>+    fun_l0_n329</div><div class='add'>+    fun_l0_n330</div><div class='add'>+    fun_l0_n331</div><div class='add'>+    fun_l0_n332</div><div class='add'>+    fun_l0_n333</div><div class='add'>+    fun_l0_n334</div><div class='add'>+    fun_l0_n335</div><div class='add'>+    fun_l0_n336</div><div class='add'>+    fun_l0_n337</div><div class='add'>+    fun_l0_n338</div><div class='add'>+    fun_l0_n339</div><div class='add'>+    fun_l0_n340</div><div class='add'>+    fun_l0_n341</div><div class='add'>+    fun_l0_n342</div><div class='add'>+    fun_l0_n343</div><div class='add'>+    fun_l0_n344</div><div class='add'>+    fun_l0_n345</div><div class='add'>+    fun_l0_n346</div><div class='add'>+    fun_l0_n347</div><div class='add'>+    fun_l0_n348</div><div class='add'>+    fun_l0_n349</div><div class='add'>+    fun_l0_n350</div><div class='add'>+    fun_l0_n351</div><div class='add'>+    fun_l0_n352</div><div class='add'>+    fun_l0_n353</div><div class='add'>+    fun_l0_n354</div><div class='add'>+    fun_l0_n355</div><div class='add'>+    fun_l0_n356</div><div class='add'>+    fun_l0_n357</div><div class='add'>+    fun_l0_n358</div><div class='add'>+    fun_l0_n359</div><div class='add'>+    fun_l0_n360</div><div class='add'>+    fun_l0_n361</div><div class='add'>+    fun_l0_n362</div><div class='add'>+    fun_l0_n363</div><div class='add'>+    fun_l0_n364</div><div class='add'>+    fun_l0_n365</div><div class='add'>+    fun_l0_n366</div><div class='add'>+    fun_l0_n367</div><div class='add'>+    fun_l0_n368</div><div class='add'>+    fun_l0_n369</div><div class='add'>+    fun_l0_n370</div><div class='add'>+    fun_l0_n371</div><div class='add'>+    fun_l0_n372</div><div class='add'>+    fun_l0_n373</div><div class='add'>+    fun_l0_n374</div><div class='add'>+    fun_l0_n375</div><div class='add'>+    fun_l0_n376</div><div class='add'>+    fun_l0_n377</div><div class='add'>+    fun_l0_n378</div><div class='add'>+    fun_l0_n379</div><div class='add'>+    fun_l0_n380</div><div class='add'>+    fun_l0_n381</div><div class='add'>+    fun_l0_n382</div><div class='add'>+    fun_l0_n383</div><div class='add'>+    fun_l0_n384</div><div class='add'>+    fun_l0_n385</div><div class='add'>+    fun_l0_n386</div><div class='add'>+    fun_l0_n387</div><div class='add'>+    fun_l0_n388</div><div class='add'>+    fun_l0_n389</div><div class='add'>+    fun_l0_n390</div><div class='add'>+    fun_l0_n391</div><div class='add'>+    fun_l0_n392</div><div class='add'>+    fun_l0_n393</div><div class='add'>+    fun_l0_n394</div><div class='add'>+    fun_l0_n395</div><div class='add'>+    fun_l0_n396</div><div class='add'>+    fun_l0_n397</div><div class='add'>+    fun_l0_n398</div><div class='add'>+    fun_l0_n399</div><div class='add'>+    fun_l0_n400</div><div class='add'>+    fun_l0_n401</div><div class='add'>+    fun_l0_n402</div><div class='add'>+    fun_l0_n403</div><div class='add'>+    fun_l0_n404</div><div class='add'>+    fun_l0_n405</div><div class='add'>+    fun_l0_n406</div><div class='add'>+    fun_l0_n407</div><div class='add'>+    fun_l0_n408</div><div class='add'>+    fun_l0_n409</div><div class='add'>+    fun_l0_n410</div><div class='add'>+    fun_l0_n411</div><div class='add'>+    fun_l0_n412</div><div class='add'>+    fun_l0_n413</div><div class='add'>+    fun_l0_n414</div><div class='add'>+    fun_l0_n415</div><div class='add'>+    fun_l0_n416</div><div class='add'>+    fun_l0_n417</div><div class='add'>+    fun_l0_n418</div><div class='add'>+    fun_l0_n419</div><div class='add'>+    fun_l0_n420</div><div class='add'>+    fun_l0_n421</div><div class='add'>+    fun_l0_n422</div><div class='add'>+    fun_l0_n423</div><div class='add'>+    fun_l0_n424</div><div class='add'>+    fun_l0_n425</div><div class='add'>+    fun_l0_n426</div><div class='add'>+    fun_l0_n427</div><div class='add'>+    fun_l0_n428</div><div class='add'>+    fun_l0_n429</div><div class='add'>+    fun_l0_n430</div><div class='add'>+    fun_l0_n431</div><div class='add'>+    fun_l0_n432</div><div class='add'>+    fun_l0_n433</div><div class='add'>+    fun_l0_n434</div><div class='add'>+    fun_l0_n435</div><div class='add'>+    fun_l0_n436</div><div class='add'>+    fun_l0_n437</div><div class='add'>+    fun_l0_n438</div><div class='add'>+    fun_l0_n439</div><div class='add'>+    fun_l0_n440</div><div class='add'>+    fun_l0_n441</div><div class='add'>+    fun_l0_n442</div><div class='add'>+    fun_l0_n443</div><div class='add'>+    fun_l0_n444</div><div class='add'>+    fun_l0_n445</div><div class='add'>+    fun_l0_n446</div><div class='add'>+    fun_l0_n447</div><div class='add'>+    fun_l0_n448</div><div class='add'>+    fun_l0_n449</div><div class='add'>+    fun_l0_n450</div><div class='add'>+    fun_l0_n451</div><div class='add'>+    fun_l0_n452</div><div class='add'>+    fun_l0_n453</div><div class='add'>+    fun_l0_n454</div><div class='add'>+    fun_l0_n455</div><div class='add'>+    fun_l0_n456</div><div class='add'>+    fun_l0_n457</div><div class='add'>+    fun_l0_n458</div><div class='add'>+    fun_l0_n459</div><div class='add'>+    fun_l0_n460</div><div class='add'>+    fun_l0_n461</div><div class='add'>+    fun_l0_n462</div><div class='add'>+    fun_l0_n463</div><div class='add'>+    fun_l0_n464</div><div class='add'>+    fun_l0_n465</div><div class='add'>+    fun_l0_n466</div><div class='add'>+    fun_l0_n467</div><div class='add'>+    fun_l0_n468</div><div class='add'>+    fun_l0_n469</div><div class='add'>+    fun_l0_n470</div><div class='add'>+    fun_l0_n471</div><div class='add'>+    fun_l0_n472</div><div class='add'>+    fun_l0_n473</div><div class='add'>+    fun_l0_n474</div><div class='add'>+    fun_l0_n475</div><div class='add'>+    fun_l0_n476</div><div class='add'>+    fun_l0_n477</div><div class='add'>+    fun_l0_n478</div><div class='add'>+    fun_l0_n479</div><div class='add'>+    fun_l0_n480</div><div class='add'>+    fun_l0_n481</div><div class='add'>+    fun_l0_n482</div><div class='add'>+    fun_l0_n483</div><div class='add'>+    fun_l0_n484</div><div class='add'>+    fun_l0_n485</div><div class='add'>+    fun_l0_n486</div><div class='add'>+    fun_l0_n487</div><div class='add'>+    fun_l0_n488</div><div class='add'>+    fun_l0_n489</div><div class='add'>+    fun_l0_n490</div><div class='add'>+    fun_l0_n491</div><div class='add'>+    fun_l0_n492</div><div class='add'>+    fun_l0_n493</div><div class='add'>+    fun_l0_n494</div><div class='add'>+    fun_l0_n495</div><div class='add'>+    fun_l0_n496</div><div class='add'>+    fun_l0_n497</div><div class='add'>+    fun_l0_n498</div><div class='add'>+    fun_l0_n499</div><div class='add'>+    fun_l0_n500</div><div class='add'>+    fun_l0_n501</div><div class='add'>+    fun_l0_n502</div><div class='add'>+    fun_l0_n503</div><div class='add'>+    fun_l0_n504</div><div class='add'>+    fun_l0_n505</div><div class='add'>+    fun_l0_n506</div><div class='add'>+    fun_l0_n507</div><div class='add'>+    fun_l0_n508</div><div class='add'>+    fun_l0_n509</div><div class='add'>+    fun_l0_n510</div><div class='add'>+    fun_l0_n511</div><div class='add'>+    fun_l0_n512</div><div class='add'>+    fun_l0_n513</div><div class='add'>+    fun_l0_n514</div><div class='add'>+    fun_l0_n515</div><div class='add'>+    fun_l0_n516</div><div class='add'>+    fun_l0_n517</div><div class='add'>+    fun_l0_n518</div><div class='add'>+    fun_l0_n519</div><div class='add'>+    fun_l0_n520</div><div class='add'>+    fun_l0_n521</div><div class='add'>+    fun_l0_n522</div><div class='add'>+    fun_l0_n523</div><div class='add'>+    fun_l0_n524</div><div class='add'>+    fun_l0_n525</div><div class='add'>+    fun_l0_n526</div><div class='add'>+    fun_l0_n527</div><div class='add'>+    fun_l0_n528</div><div class='add'>+    fun_l0_n529</div><div class='add'>+    fun_l0_n530</div><div class='add'>+    fun_l0_n531</div><div class='add'>+    fun_l0_n532</div><div class='add'>+    fun_l0_n533</div><div class='add'>+    fun_l0_n534</div><div class='add'>+    fun_l0_n535</div><div class='add'>+    fun_l0_n536</div><div class='add'>+    fun_l0_n537</div><div class='add'>+    fun_l0_n538</div><div class='add'>+    fun_l0_n539</div><div class='add'>+    fun_l0_n540</div><div class='add'>+    fun_l0_n541</div><div class='add'>+    fun_l0_n542</div><div class='add'>+    fun_l0_n543</div><div class='add'>+    fun_l0_n544</div><div class='add'>+    fun_l0_n545</div><div class='add'>+    fun_l0_n546</div><div class='add'>+    fun_l0_n547</div><div class='add'>+    fun_l0_n548</div><div class='add'>+    fun_l0_n549</div><div class='add'>+    fun_l0_n550</div><div class='add'>+    fun_l0_n551</div><div class='add'>+    fun_l0_n552</div><div class='add'>+    fun_l0_n553</div><div class='add'>+    fun_l0_n554</div><div class='add'>+    fun_l0_n555</div><div class='add'>+    fun_l0_n556</div><div class='add'>+    fun_l0_n557</div><div class='add'>+    fun_l0_n558</div><div class='add'>+    fun_l0_n559</div><div class='add'>+    fun_l0_n560</div><div class='add'>+    fun_l0_n561</div><div class='add'>+    fun_l0_n562</div><div class='add'>+    fun_l0_n563</div><div class='add'>+    fun_l0_n564</div><div class='add'>+    fun_l0_n565</div><div class='add'>+    fun_l0_n566</div><div class='add'>+    fun_l0_n567</div><div class='add'>+    fun_l0_n568</div><div class='add'>+    fun_l0_n569</div><div class='add'>+    fun_l0_n570</div><div class='add'>+    fun_l0_n571</div><div class='add'>+    fun_l0_n572</div><div class='add'>+    fun_l0_n573</div><div class='add'>+    fun_l0_n574</div><div class='add'>+    fun_l0_n575</div><div class='add'>+    fun_l0_n576</div><div class='add'>+    fun_l0_n577</div><div class='add'>+    fun_l0_n578</div><div class='add'>+    fun_l0_n579</div><div class='add'>+    fun_l0_n580</div><div class='add'>+    fun_l0_n581</div><div class='add'>+    fun_l0_n582</div><div class='add'>+    fun_l0_n583</div><div class='add'>+    fun_l0_n584</div><div class='add'>+    fun_l0_n585</div><div class='add'>+    fun_l0_n586</div><div class='add'>+    fun_l0_n587</div><div class='add'>+    fun_l0_n588</div><div class='add'>+    fun_l0_n589</div><div class='add'>+    fun_l0_n590</div><div class='add'>+    fun_l0_n591</div><div class='add'>+    fun_l0_n592</div><div class='add'>+    fun_l0_n593</div><div class='add'>+    fun_l0_n594</div><div class='add'>+    fun_l0_n595</div><div class='add'>+    fun_l0_n596</div><div class='add'>+    fun_l0_n597</div><div class='add'>+    fun_l0_n598</div><div class='add'>+    fun_l0_n599</div><div class='add'>+    fun_l0_n600</div><div class='add'>+    fun_l0_n601</div><div class='add'>+    fun_l0_n602</div><div class='add'>+    fun_l0_n603</div><div class='add'>+    fun_l0_n604</div><div class='add'>+    fun_l0_n605</div><div class='add'>+    fun_l0_n606</div><div class='add'>+    fun_l0_n607</div><div class='add'>+    fun_l0_n608</div><div class='add'>+    fun_l0_n609</div><div class='add'>+    fun_l0_n610</div><div class='add'>+    fun_l0_n611</div><div class='add'>+    fun_l0_n612</div><div class='add'>+    fun_l0_n613</div><div class='add'>+    fun_l0_n614</div><div class='add'>+    fun_l0_n615</div><div class='add'>+    fun_l0_n616</div><div class='add'>+    fun_l0_n617</div><div class='add'>+    fun_l0_n618</div><div class='add'>+    fun_l0_n619</div><div class='add'>+    fun_l0_n620</div><div class='add'>+    fun_l0_n621</div><div class='add'>+    fun_l0_n622</div><div class='add'>+    fun_l0_n623</div><div class='add'>+    fun_l0_n624</div><div class='add'>+    fun_l0_n625</div><div class='add'>+    fun_l0_n626</div><div class='add'>+    fun_l0_n627</div><div class='add'>+    fun_l0_n628</div><div class='add'>+    fun_l0_n629</div><div class='add'>+    fun_l0_n630</div><div class='add'>+    fun_l0_n631</div><div class='add'>+    fun_l0_n632</div><div class='add'>+    fun_l0_n633</div><div class='add'>+    fun_l0_n634</div><div class='add'>+    fun_l0_n635</div><div class='add'>+    fun_l0_n636</div><div class='add'>+    fun_l0_n637</div><div class='add'>+    fun_l0_n638</div><div class='add'>+    fun_l0_n639</div><div class='add'>+    fun_l0_n640</div><div class='add'>+    fun_l0_n641</div><div class='add'>+    fun_l0_n642</div><div class='add'>+    fun_l0_n643</div><div class='add'>+    fun_l0_n644</div><div class='add'>+    fun_l0_n645</div><div class='add'>+    fun_l0_n646</div><div class='add'>+    fun_l0_n647</div><div class='add'>+    fun_l0_n648</div><div class='add'>+    fun_l0_n649</div><div class='add'>+    fun_l0_n650</div><div class='add'>+    fun_l0_n651</div><div class='add'>+    fun_l0_n652</div><div class='add'>+    fun_l0_n653</div><div class='add'>+    fun_l0_n654</div><div class='add'>+    fun_l0_n655</div><div class='add'>+    fun_l0_n656</div><div class='add'>+    fun_l0_n657</div><div class='add'>+    fun_l0_n658</div><div class='add'>+    fun_l0_n659</div><div class='add'>+    fun_l0_n660</div><div class='add'>+    fun_l0_n661</div><div class='add'>+    fun_l0_n662</div><div class='add'>+    fun_l0_n663</div><div class='add'>+    fun_l0_n664</div><div class='add'>+    fun_l0_n665</div><div class='add'>+    fun_l0_n666</div><div class='add'>+    fun_l0_n667</div><div class='add'>+    fun_l0_n668</div><div class='add'>+    fun_l0_n669</div><div class='add'>+    fun_l0_n670</div><div class='add'>+    fun_l0_n671</div><div class='add'>+    fun_l0_n672</div><div class='add'>+    fun_l0_n673</div><div class='add'>+    fun_l0_n674</div><div class='add'>+    fun_l0_n675</div><div class='add'>+    fun_l0_n676</div><div class='add'>+    fun_l0_n677</div><div class='add'>+    fun_l0_n678</div><div class='add'>+    fun_l0_n679</div><div class='add'>+    fun_l0_n680</div><div class='add'>+    fun_l0_n681</div><div class='add'>+    fun_l0_n682</div><div class='add'>+    fun_l0_n683</div><div class='add'>+    fun_l0_n684</div><div class='add'>+    fun_l0_n685</div><div class='add'>+    fun_l0_n686</div><div class='add'>+    fun_l0_n687</div><div class='add'>+    fun_l0_n688</div><div class='add'>+    fun_l0_n689</div><div class='add'>+    fun_l0_n690</div><div class='add'>+    fun_l0_n691</div><div class='add'>+    fun_l0_n692</div><div class='add'>+    fun_l0_n693</div><div class='add'>+    fun_l0_n694</div><div class='add'>+    fun_l0_n695</div><div class='add'>+    fun_l0_n696</div><div class='add'>+    fun_l0_n697</div><div class='add'>+    fun_l0_n698</div><div class='add'>+    fun_l0_n699</div><div class='add'>+    fun_l0_n700</div><div class='add'>+    fun_l0_n701</div><div class='add'>+    fun_l0_n702</div><div class='add'>+    fun_l0_n703</div><div class='add'>+    fun_l0_n704</div><div class='add'>+    fun_l0_n705</div><div class='add'>+    fun_l0_n706</div><div class='add'>+    fun_l0_n707</div><div class='add'>+    fun_l0_n708</div><div class='add'>+    fun_l0_n709</div><div class='add'>+    fun_l0_n710</div><div class='add'>+    fun_l0_n711</div><div class='add'>+    fun_l0_n712</div><div class='add'>+    fun_l0_n713</div><div class='add'>+    fun_l0_n714</div><div class='add'>+    fun_l0_n715</div><div class='add'>+    fun_l0_n716</div><div class='add'>+    fun_l0_n717</div><div class='add'>+    fun_l0_n718</div><div class='add'>+    fun_l0_n719</div><div class='add'>+    fun_l0_n720</div><div class='add'>+    fun_l0_n721</div><div class='add'>+    fun_l0_n722</div><div class='add'>+    fun_l0_n723</div><div class='add'>+    fun_l0_n724</div><div class='add'>+    fun_l0_n725</div><div class='add'>+    fun_l0_n726</div><div class='add'>+    fun_l0_n727</div><div class='add'>+    fun_l0_n728</div><div class='add'>+    fun_l0_n729</div><div class='add'>+    fun_l0_n730</div><div class='add'>+    fun_l0_n731</div><div class='add'>+    fun_l0_n732</div><div class='add'>+    fun_l0_n733</div><div class='add'>+    fun_l0_n734</div><div class='add'>+    fun_l0_n735</div><div class='add'>+    fun_l0_n736</div><div class='add'>+    fun_l0_n737</div><div class='add'>+    fun_l0_n738</div><div class='add'>+    fun_l0_n739</div><div class='add'>+    fun_l0_n740</div><div class='add'>+    fun_l0_n741</div><div class='add'>+    fun_l0_n742</div><div class='add'>+    fun_l0_n743</div><div class='add'>+    fun_l0_n744</div><div class='add'>+    fun_l0_n745</div><div class='add'>+    fun_l0_n746</div><div class='add'>+    fun_l0_n747</div><div class='add'>+    fun_l0_n748</div><div class='add'>+    fun_l0_n749</div><div class='add'>+    fun_l0_n750</div><div class='add'>+    fun_l0_n751</div><div class='add'>+    fun_l0_n752</div><div class='add'>+    fun_l0_n753</div><div class='add'>+    fun_l0_n754</div><div class='add'>+    fun_l0_n755</div><div class='add'>+    fun_l0_n756</div><div class='add'>+    fun_l0_n757</div><div class='add'>+    fun_l0_n758</div><div class='add'>+    fun_l0_n759</div><div class='add'>+    fun_l0_n760</div><div class='add'>+    fun_l0_n761</div><div class='add'>+    fun_l0_n762</div><div class='add'>+    fun_l0_n763</div><div class='add'>+    fun_l0_n764</div><div class='add'>+    fun_l0_n765</div><div class='add'>+    fun_l0_n766</div><div class='add'>+    fun_l0_n767</div><div class='add'>+    fun_l0_n768</div><div class='add'>+    fun_l0_n769</div><div class='add'>+    fun_l0_n770</div><div class='add'>+    fun_l0_n771</div><div class='add'>+    fun_l0_n772</div><div class='add'>+    fun_l0_n773</div><div class='add'>+    fun_l0_n774</div><div class='add'>+    fun_l0_n775</div><div class='add'>+    fun_l0_n776</div><div class='add'>+    fun_l0_n777</div><div class='add'>+    fun_l0_n778</div><div class='add'>+    fun_l0_n779</div><div class='add'>+    fun_l0_n780</div><div class='add'>+    fun_l0_n781</div><div class='add'>+    fun_l0_n782</div><div class='add'>+    fun_l0_n783</div><div class='add'>+    fun_l0_n784</div><div class='add'>+    fun_l0_n785</div><div class='add'>+    fun_l0_n786</div><div class='add'>+    fun_l0_n787</div><div class='add'>+    fun_l0_n788</div><div class='add'>+    fun_l0_n789</div><div class='add'>+    fun_l0_n790</div><div class='add'>+    fun_l0_n791</div><div class='add'>+    fun_l0_n792</div><div class='add'>+    fun_l0_n793</div><div class='add'>+    fun_l0_n794</div><div class='add'>+    fun_l0_n795</div><div class='add'>+    fun_l0_n796</div><div class='add'>+    fun_l0_n797</div><div class='add'>+    fun_l0_n798</div><div class='add'>+    fun_l0_n799</div><div class='add'>+    fun_l0_n800</div><div class='add'>+    fun_l0_n801</div><div class='add'>+    fun_l0_n802</div><div class='add'>+    fun_l0_n803</div><div class='add'>+    fun_l0_n804</div><div class='add'>+    fun_l0_n805</div><div class='add'>+    fun_l0_n806</div><div class='add'>+    fun_l0_n807</div><div class='add'>+    fun_l0_n808</div><div class='add'>+    fun_l0_n809</div><div class='add'>+    fun_l0_n810</div><div class='add'>+    fun_l0_n811</div><div class='add'>+    fun_l0_n812</div><div class='add'>+    fun_l0_n813</div><div class='add'>+    fun_l0_n814</div><div class='add'>+    fun_l0_n815</div><div class='add'>+    fun_l0_n816</div><div class='add'>+    fun_l0_n817</div><div class='add'>+    fun_l0_n818</div><div class='add'>+    fun_l0_n819</div><div class='add'>+    fun_l0_n820</div><div class='add'>+    fun_l0_n821</div><div class='add'>+    fun_l0_n822</div><div class='add'>+    fun_l0_n823</div><div class='add'>+    fun_l0_n824</div><div class='add'>+    fun_l0_n825</div><div class='add'>+    fun_l0_n826</div><div class='add'>+    fun_l0_n827</div><div class='add'>+    fun_l0_n828</div><div class='add'>+    fun_l0_n829</div><div class='add'>+    fun_l0_n830</div><div class='add'>+    fun_l0_n831</div><div class='add'>+    fun_l0_n832</div><div class='add'>+    fun_l0_n833</div><div class='add'>+    fun_l0_n834</div><div class='add'>+    fun_l0_n835</div><div class='add'>+    fun_l0_n836</div><div class='add'>+    fun_l0_n837</div><div class='add'>+    fun_l0_n838</div><div class='add'>+    fun_l0_n839</div><div class='add'>+    fun_l0_n840</div><div class='add'>+    fun_l0_n841</div><div class='add'>+    fun_l0_n842</div><div class='add'>+    fun_l0_n843</div><div class='add'>+    fun_l0_n844</div><div class='add'>+    fun_l0_n845</div><div class='add'>+    fun_l0_n846</div><div class='add'>+    fun_l0_n847</div><div class='add'>+    fun_l0_n848</div><div class='add'>+    fun_l0_n849</div><div class='add'>+    fun_l0_n850</div><div class='add'>+    fun_l0_n851</div><div class='add'>+    fun_l0_n852</div><div class='add'>+    fun_l0_n853</div><div class='add'>+    fun_l0_n854</div><div class='add'>+    fun_l0_n855</div><div class='add'>+    fun_l0_n856</div><div class='add'>+    fun_l0_n857</div><div class='add'>+    fun_l0_n858</div><div class='add'>+    fun_l0_n859</div><div class='add'>+    fun_l0_n860</div><div class='add'>+    fun_l0_n861</div><div class='add'>+    fun_l0_n862</div><div class='add'>+    fun_l0_n863</div><div class='add'>+    fun_l0_n864</div><div class='add'>+    fun_l0_n865</div><div class='add'>+    fun_l0_n866</div><div class='add'>+    fun_l0_n867</div><div class='add'>+    fun_l0_n868</div><div class='add'>+    fun_l0_n869</div><div class='add'>+    fun_l0_n870</div><div class='add'>+    fun_l0_n871</div><div class='add'>+    fun_l0_n872</div><div class='add'>+    fun_l0_n873</div><div class='add'>+    fun_l0_n874</div><div class='add'>+    fun_l0_n875</div><div class='add'>+    fun_l0_n876</div><div class='add'>+    fun_l0_n877</div><div class='add'>+    fun_l0_n878</div><div class='add'>+    fun_l0_n879</div><div class='add'>+    fun_l0_n880</div><div class='add'>+    fun_l0_n881</div><div class='add'>+    fun_l0_n882</div><div class='add'>+    fun_l0_n883</div><div class='add'>+    fun_l0_n884</div><div class='add'>+    fun_l0_n885</div><div class='add'>+    fun_l0_n886</div><div class='add'>+    fun_l0_n887</div><div class='add'>+    fun_l0_n888</div><div class='add'>+    fun_l0_n889</div><div class='add'>+    fun_l0_n890</div><div class='add'>+    fun_l0_n891</div><div class='add'>+    fun_l0_n892</div><div class='add'>+    fun_l0_n893</div><div class='add'>+    fun_l0_n894</div><div class='add'>+    fun_l0_n895</div><div class='add'>+    fun_l0_n896</div><div class='add'>+    fun_l0_n897</div><div class='add'>+    fun_l0_n898</div><div class='add'>+    fun_l0_n899</div><div class='add'>+    fun_l0_n900</div><div class='add'>+    fun_l0_n901</div><div class='add'>+    fun_l0_n902</div><div class='add'>+    fun_l0_n903</div><div class='add'>+    fun_l0_n904</div><div class='add'>+    fun_l0_n905</div><div class='add'>+    fun_l0_n906</div><div class='add'>+    fun_l0_n907</div><div class='add'>+    fun_l0_n908</div><div class='add'>+    fun_l0_n909</div><div class='add'>+    fun_l0_n910</div><div class='add'>+    fun_l0_n911</div><div class='add'>+    fun_l0_n912</div><div class='add'>+    fun_l0_n913</div><div class='add'>+    fun_l0_n914</div><div class='add'>+    fun_l0_n915</div><div class='add'>+    fun_l0_n916</div><div class='add'>+    fun_l0_n917</div><div class='add'>+    fun_l0_n918</div><div class='add'>+    fun_l0_n919</div><div class='add'>+    fun_l0_n920</div><div class='add'>+    fun_l0_n921</div><div class='add'>+    fun_l0_n922</div><div class='add'>+    fun_l0_n923</div><div class='add'>+    fun_l0_n924</div><div class='add'>+    fun_l0_n925</div><div class='add'>+    fun_l0_n926</div><div class='add'>+    fun_l0_n927</div><div class='add'>+    fun_l0_n928</div><div class='add'>+    fun_l0_n929</div><div class='add'>+    fun_l0_n930</div><div class='add'>+    fun_l0_n931</div><div class='add'>+    fun_l0_n932</div><div class='add'>+    fun_l0_n933</div><div class='add'>+    fun_l0_n934</div><div class='add'>+    fun_l0_n935</div><div class='add'>+    fun_l0_n936</div><div class='add'>+    fun_l0_n937</div><div class='add'>+    fun_l0_n938</div><div class='add'>+    fun_l0_n939</div><div class='add'>+    fun_l0_n940</div><div class='add'>+    fun_l0_n941</div><div class='add'>+    fun_l0_n942</div><div class='add'>+    fun_l0_n943</div><div class='add'>+    fun_l0_n944</div><div class='add'>+    fun_l0_n945</div><div class='add'>+    fun_l0_n946</div><div class='add'>+    fun_l0_n947</div><div class='add'>+    fun_l0_n948</div><div class='add'>+    fun_l0_n949</div><div class='add'>+    fun_l0_n950</div><div class='add'>+    fun_l0_n951</div><div class='add'>+    fun_l0_n952</div><div class='add'>+    fun_l0_n953</div><div class='add'>+    fun_l0_n954</div><div class='add'>+    fun_l0_n955</div><div class='add'>+    fun_l0_n956</div><div class='add'>+    fun_l0_n957</div><div class='add'>+    fun_l0_n958</div><div class='add'>+    fun_l0_n959</div><div class='add'>+    fun_l0_n960</div><div class='add'>+    fun_l0_n961</div><div class='add'>+    fun_l0_n962</div><div class='add'>+    fun_l0_n963</div><div class='add'>+    fun_l0_n964</div><div class='add'>+    fun_l0_n965</div><div class='add'>+    fun_l0_n966</div><div class='add'>+    fun_l0_n967</div><div class='add'>+    fun_l0_n968</div><div class='add'>+    fun_l0_n969</div><div class='add'>+    fun_l0_n970</div><div class='add'>+    fun_l0_n971</div><div class='add'>+    fun_l0_n972</div><div class='add'>+    fun_l0_n973</div><div class='add'>+    fun_l0_n974</div><div class='add'>+    fun_l0_n975</div><div class='add'>+    fun_l0_n976</div><div class='add'>+    fun_l0_n977</div><div class='add'>+    fun_l0_n978</div><div class='add'>+    fun_l0_n979</div><div class='add'>+    fun_l0_n980</div><div class='add'>+    fun_l0_n981</div><div class='add'>+    fun_l0_n982</div><div class='add'>+    fun_l0_n983</div><div class='add'>+    fun_l0_n984</div><div class='add'>+    fun_l0_n985</div><div class='add'>+    fun_l0_n986</div><div class='add'>+    fun_l0_n987</div><div class='add'>+    fun_l0_n988</div><div class='add'>+    fun_l0_n989</div><div class='add'>+    fun_l0_n990</div><div class='add'>+    fun_l0_n991</div><div class='add'>+    fun_l0_n992</div><div class='add'>+    fun_l0_n993</div><div class='add'>+    fun_l0_n994</div><div class='add'>+    fun_l0_n995</div><div class='add'>+    fun_l0_n996</div><div class='add'>+    fun_l0_n997</div><div class='add'>+    fun_l0_n998</div><div class='add'>+    fun_l0_n999</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+@count</div><div class='add'>+</div><div class='add'>+}</div><div class='head'>diff --git a/bootstraptest/test_yjit_rust_port.rb b/bootstraptest/test_yjit_rust_port.rb<br/>new file mode 100644<br/>index 0000000000..e399e0e49e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_yjit_rust_port.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>bootstraptest/test_yjit_rust_port.rb</a></div><div class='hunk'>@@ -0,0 +1,422 @@</div><div class='add'>+# Simple tests that we know we can pass</div><div class='add'>+# To keep track of what we got working during the Rust port</div><div class='add'>+# And avoid breaking/losing functionality</div><div class='add'>+#</div><div class='add'>+# Say "Thread" here to dodge WASM CI check. We use ractors here</div><div class='add'>+# which WASM doesn't support and it only greps for "Thread".</div><div class='add'>+</div><div class='add'>+# Test for opt_mod</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  def mod(a, b)</div><div class='add'>+    a % b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  mod(7, 5)</div><div class='add'>+  mod(7, 5)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test for opt_mult</div><div class='add'>+assert_equal '12', %q{</div><div class='add'>+  def mult(a, b)</div><div class='add'>+    a * b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  mult(6, 2)</div><div class='add'>+  mult(6, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Test for opt_div</div><div class='add'>+assert_equal '3', %q{</div><div class='add'>+  def div(a, b)</div><div class='add'>+    a / b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  div(6, 2)</div><div class='add'>+  div(6, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '5', %q{</div><div class='add'>+  def plus(a, b)</div><div class='add'>+    a + b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  plus(3, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    a - b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(3, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    a &lt; b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(2, 3)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Bitwise left shift</div><div class='add'>+assert_equal '4', %q{</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    1 &lt;&lt; 2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(1, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '-7', %q{</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    -7</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(1, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Putstring</div><div class='add'>+assert_equal 'foo', %q{</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    "foo"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(1, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '-6', %q{</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    a + -7</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(1, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    a == b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(3, 3)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    a &lt; b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(3, 5)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '777', %q{</div><div class='add'>+  def foo(a)</div><div class='add'>+    if a</div><div class='add'>+      777</div><div class='add'>+    else</div><div class='add'>+      333</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(true)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '5', %q{</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    while a &lt; b</div><div class='add'>+      a += 1</div><div class='add'>+    end</div><div class='add'>+    a</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(1, 5)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# opt_aref</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    a[b]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo([0, 1, 2], 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Simple function calls with 0, 1, 2 arguments</div><div class='add'>+assert_equal '-2', %q{</div><div class='add'>+  def bar()</div><div class='add'>+    -2</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    bar()</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(3, 2)</div><div class='add'>+}</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  def bar(a)</div><div class='add'>+    a</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    bar(b)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(3, 2)</div><div class='add'>+}</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  def bar(a, b)</div><div class='add'>+    a - b</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def foo(a, b)</div><div class='add'>+    bar(a, b)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  foo(3, 2)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Regression test for assembler bug</div><div class='add'>+assert_equal '1', %q{</div><div class='add'>+  def check_index(index)</div><div class='add'>+    if 0x40000000 &lt; index</div><div class='add'>+        return -1</div><div class='add'>+    end</div><div class='add'>+    1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  check_index 2</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Setivar test</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  class Klass</div><div class='add'>+    attr_accessor :a</div><div class='add'>+</div><div class='add'>+    def set()</div><div class='add'>+        @a = 2</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def get()</div><div class='add'>+        @a</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  o = Klass.new</div><div class='add'>+  o.set()</div><div class='add'>+  o.a</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Regression for putobject bug</div><div class='add'>+assert_equal '1.5', %q{</div><div class='add'>+  def foo(x)</div><div class='add'>+    x</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def bar</div><div class='add'>+    foo(1.5)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  bar()</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Getivar with an extended ivar table</div><div class='add'>+assert_equal '3', %q{</div><div class='add'>+  class Foo</div><div class='add'>+    def initialize</div><div class='add'>+      @x1 = 1</div><div class='add'>+      @x2 = 1</div><div class='add'>+      @x3 = 1</div><div class='add'>+      @x4 = 3</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def bar</div><div class='add'>+      @x4</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  f = Foo.new</div><div class='add'>+  f.bar</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal 'true', %q{</div><div class='add'>+  x = [[false, true]]</div><div class='add'>+  for i, j in x</div><div class='add'>+    ;</div><div class='add'>+  end</div><div class='add'>+  j</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Regression for getivar</div><div class='add'>+assert_equal '[nil]', %q{</div><div class='add'>+  [TrueClass].each do |klass|</div><div class='add'>+    klass.class_eval("def foo = @foo")</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  [true].map do |instance|</div><div class='add'>+    instance.foo</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Regression for send</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def bar(baz: 2)</div><div class='add'>+    baz</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def foo</div><div class='add'>+    bar(1, baz: 123)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    foo</div><div class='add'>+    foo</div><div class='add'>+  rescue ArgumentError =&gt; e</div><div class='add'>+    print "ok"</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Array access regression test</div><div class='add'>+assert_equal '[0, 1, 2, 3, 4, 5]', %q{</div><div class='add'>+  def expandarray_useless_splat</div><div class='add'>+    arr = [0, 1, 2, 3, 4, 5]</div><div class='add'>+    a, * = arr</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  expandarray_useless_splat</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Make sure we're correctly reading RStruct's as.ary union for embedded RStructs</div><div class='add'>+assert_equal '3,12', %q{</div><div class='add'>+  pt_struct = Struct.new(:x, :y)</div><div class='add'>+  p = pt_struct.new(3, 12)</div><div class='add'>+  def pt_inspect(pt)</div><div class='add'>+    "#{pt.x},#{pt.y}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Make sure pt_inspect is JITted</div><div class='add'>+  10.times { pt_inspect(p) }</div><div class='add'>+</div><div class='add'>+  # Make sure it's returning '3,12' instead of e.g. '3,false'</div><div class='add'>+  pt_inspect(p)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '2', %q{</div><div class='add'>+  def foo(s)</div><div class='add'>+    s.foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  S = Struct.new(:foo)</div><div class='add'>+  foo(S.new(1))</div><div class='add'>+  foo(S.new(2))</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Try to compile new method while OOM</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def foo</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  RubyVM::YJIT.simulate_oom! if defined?(RubyVM::YJIT)</div><div class='add'>+</div><div class='add'>+  foo</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# test hitting a branch stub when out of memory</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  def nimai(jita)</div><div class='add'>+    if jita</div><div class='add'>+      :ng</div><div class='add'>+    else</div><div class='add'>+      :ok</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  nimai(true)</div><div class='add'>+  nimai(true)</div><div class='add'>+</div><div class='add'>+  RubyVM::YJIT.simulate_oom! if defined?(RubyVM::YJIT)</div><div class='add'>+</div><div class='add'>+  nimai(false)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.current returns a current ractor</div><div class='add'>+assert_equal 'Ractor', %q{</div><div class='add'>+  Ractor.current.class</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.new returns new Ractor</div><div class='add'>+assert_equal 'Ractor', %q{</div><div class='add'>+  Ractor.new{}.class</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor.allocate is not supported</div><div class='add'>+assert_equal "[:ok, :ok]", %q{</div><div class='add'>+  rs = []</div><div class='add'>+  begin</div><div class='add'>+    Ractor.allocate</div><div class='add'>+  rescue =&gt; e</div><div class='add'>+    rs &lt;&lt; :ok if e.message == 'allocator undefined for Ractor'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    Ractor.new{}.dup</div><div class='add'>+  rescue</div><div class='add'>+    rs &lt;&lt; :ok if e.message == 'allocator undefined for Ractor'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  rs</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# A return value of a Ractor block will be a message from the Ractor.</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  # join</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    'ok'</div><div class='add'>+  end</div><div class='add'>+  r.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Passed arguments to Ractor.new will be a block parameter</div><div class='add'>+# The values are passed with Ractor-communication pass.</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  # ping-pong with arg</div><div class='add'>+  r = Ractor.new 'ok' do |msg|</div><div class='add'>+    msg</div><div class='add'>+  end</div><div class='add'>+  r.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Pass multiple arguments to Ractor.new</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  # ping-pong with two args</div><div class='add'>+  r =  Ractor.new 'ping', 'pong' do |msg, msg2|</div><div class='add'>+    [msg, msg2]</div><div class='add'>+  end</div><div class='add'>+  'ok' if r.take == ['ping', 'pong']</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# Ractor#send passes an object with copy to a Ractor</div><div class='add'>+# and Ractor.receive in the Ractor block can receive the passed value.</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    msg = Ractor.receive</div><div class='add'>+  end</div><div class='add'>+  r.send 'ok'</div><div class='add'>+  r.take</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+assert_equal '[1, 2, 3]', %q{</div><div class='add'>+  def foo(arr)</div><div class='add'>+    arr &lt;&lt; 1</div><div class='add'>+    arr &lt;&lt; 2</div><div class='add'>+    arr &lt;&lt; 3</div><div class='add'>+    arr</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def bar()</div><div class='add'>+    foo([])</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  bar()</div><div class='add'>+}</div><div class='head'>diff --git a/builtin.c b/builtin.c<br/>new file mode 100644<br/>index 0000000000..21fff95650<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/builtin.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>builtin.c</a></div><div class='hunk'>@@ -0,0 +1,69 @@</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "iseq.h"</div><div class='add'>+#include "builtin.h"</div><div class='add'>+</div><div class='add'>+#ifdef CROSS_COMPILING</div><div class='add'>+</div><div class='add'>+#define INCLUDED_BY_BUILTIN_C 1</div><div class='add'>+#include "mini_builtin.c"</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+</div><div class='add'>+#include "builtin_binary.inc"</div><div class='add'>+</div><div class='add'>+static const unsigned char *</div><div class='add'>+bin4feature(const struct builtin_binary *bb, const char *feature, size_t *psize)</div><div class='add'>+{</div><div class='add'>+    *psize = bb-&gt;bin_size;</div><div class='add'>+    return strcmp(bb-&gt;feature, feature) ? NULL : bb-&gt;bin;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const unsigned char*</div><div class='add'>+builtin_lookup(const char *feature, size_t *psize)</div><div class='add'>+{</div><div class='add'>+    static int index = 0;</div><div class='add'>+    const unsigned char *bin = bin4feature(&amp;builtin_binary[index++], feature, psize);</div><div class='add'>+</div><div class='add'>+    // usually, `builtin_binary` order is loading order at miniruby.</div><div class='add'>+    for (const struct builtin_binary *bb = &amp;builtin_binary[0]; bb-&gt;feature &amp;&amp;! bin; bb++) {</div><div class='add'>+        bin = bin4feature(bb++, feature, psize);</div><div class='add'>+    }</div><div class='add'>+    return bin;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_load_with_builtin_functions(const char *feature_name, const struct rb_builtin_function *table)</div><div class='add'>+{</div><div class='add'>+    // search binary</div><div class='add'>+    size_t size;</div><div class='add'>+    const unsigned char *bin = builtin_lookup(feature_name, &amp;size);</div><div class='add'>+    if (! bin) {</div><div class='add'>+        rb_bug("builtin_lookup: can not find %s\n", feature_name);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // load binary</div><div class='add'>+    rb_vm_t *vm = GET_VM();</div><div class='add'>+    if (vm-&gt;builtin_function_table != NULL) rb_bug("vm-&gt;builtin_function_table should be NULL.");</div><div class='add'>+    vm-&gt;builtin_function_table = table;</div><div class='add'>+    vm-&gt;builtin_inline_index = 0;</div><div class='add'>+    const rb_iseq_t *iseq = rb_iseq_ibf_load_bytes((const char *)bin, size);</div><div class='add'>+    vm-&gt;builtin_function_table = NULL;</div><div class='add'>+</div><div class='add'>+    // exec</div><div class='add'>+    rb_iseq_eval(rb_iseq_check(iseq));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_builtin(void)</div><div class='add'>+{</div><div class='add'>+    // nothing</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_builtin_features(void)</div><div class='add'>+{</div><div class='add'>+    rb_load_with_builtin_functions("gem_prelude", NULL);</div><div class='add'>+}</div><div class='head'>diff --git a/builtin.h b/builtin.h<br/>new file mode 100644<br/>index 0000000000..38ad5a1629<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/builtin.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>builtin.h</a></div><div class='hunk'>@@ -0,0 +1,121 @@</div><div class='add'>+#ifndef BUILTIN_H_INCLUDED</div><div class='add'>+#define BUILTIN_H_INCLUDED</div><div class='add'>+</div><div class='add'>+// invoke</div><div class='add'>+</div><div class='add'>+struct rb_builtin_function {</div><div class='add'>+    // for invocation</div><div class='add'>+    const void * const func_ptr;</div><div class='add'>+    const int argc;</div><div class='add'>+</div><div class='add'>+    // for load</div><div class='add'>+    const int index;</div><div class='add'>+    const char * const name;</div><div class='add'>+</div><div class='add'>+    // for jit</div><div class='add'>+    void (*compiler)(VALUE, long, unsigned, bool);</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define RB_BUILTIN_FUNCTION(_i, _name, _fname, _arity, _compiler) {\</div><div class='add'>+  .name = _i &lt; 0 ? NULL : #_name, \</div><div class='add'>+  .func_ptr = (void *)_fname, \</div><div class='add'>+  .argc = _arity, \</div><div class='add'>+  .index = _i, \</div><div class='add'>+  .compiler = _compiler, \</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void rb_load_with_builtin_functions(const char *feature_name, const struct rb_builtin_function *table);</div><div class='add'>+</div><div class='add'>+#ifndef rb_execution_context_t</div><div class='add'>+typedef struct rb_execution_context_struct rb_execution_context_t;</div><div class='add'>+#define rb_execution_context_t rb_execution_context_t</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* The following code is generated by the following Ruby script:</div><div class='add'>+</div><div class='add'>+typedef = proc {|i, args|</div><div class='add'>+  "typedef VALUE (*rb_builtin_arity#{i}_function_type)(rb_execution_context_t *ec, VALUE self#{args});"</div><div class='add'>+}</div><div class='add'>+puts typedef[0, ""]</div><div class='add'>+(1..15).each {|i|</div><div class='add'>+  puts typedef[i, ",\n        " + (0...i).map{"VALUE"}.join(", ")]</div><div class='add'>+}</div><div class='add'>+16.times{|i|</div><div class='add'>+  puts "static inline void rb_builtin_function_check_arity#{i}(rb_builtin_arity#{i}_function_type f){}"</div><div class='add'>+}</div><div class='add'>+*/</div><div class='add'>+</div><div class='add'>+typedef VALUE (*rb_builtin_arity0_function_type)(rb_execution_context_t *ec, VALUE self);</div><div class='add'>+typedef VALUE (*rb_builtin_arity1_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity2_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity3_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity4_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity5_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity6_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity7_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity8_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity9_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity10_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity11_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity12_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity13_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity14_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+typedef VALUE (*rb_builtin_arity15_function_type)(rb_execution_context_t *ec, VALUE self,</div><div class='add'>+        VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);</div><div class='add'>+static inline void rb_builtin_function_check_arity0(rb_builtin_arity0_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity1(rb_builtin_arity1_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity2(rb_builtin_arity2_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity3(rb_builtin_arity3_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity4(rb_builtin_arity4_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity5(rb_builtin_arity5_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity6(rb_builtin_arity6_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity7(rb_builtin_arity7_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity8(rb_builtin_arity8_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity9(rb_builtin_arity9_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity10(rb_builtin_arity10_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity11(rb_builtin_arity11_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity12(rb_builtin_arity12_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity13(rb_builtin_arity13_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity14(rb_builtin_arity14_function_type f){}</div><div class='add'>+static inline void rb_builtin_function_check_arity15(rb_builtin_arity15_function_type f){}</div><div class='add'>+</div><div class='add'>+PUREFUNC(VALUE rb_vm_lvar_exposed(rb_execution_context_t *ec, int index));</div><div class='add'>+VALUE rb_vm_lvar_exposed(rb_execution_context_t *ec, int index);</div><div class='add'>+</div><div class='add'>+// __builtin_inline!</div><div class='add'>+</div><div class='add'>+PUREFUNC(static inline VALUE rb_vm_lvar(rb_execution_context_t *ec, int index));</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_vm_lvar(rb_execution_context_t *ec, int index)</div><div class='add'>+{</div><div class='add'>+#if defined(VM_CORE_H_EC_DEFINED) &amp;&amp; VM_CORE_H_EC_DEFINED</div><div class='add'>+    return ec-&gt;cfp-&gt;ep[index];</div><div class='add'>+#else</div><div class='add'>+    return rb_vm_lvar_exposed(ec, index);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// dump/load</div><div class='add'>+</div><div class='add'>+struct builtin_binary {</div><div class='add'>+    const char *feature;          // feature name</div><div class='add'>+    const unsigned char *bin;     // binary by ISeq#to_binary</div><div class='add'>+    size_t bin_size;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#endif // BUILTIN_H_INCLUDED</div><div class='head'>diff --git a/ccan/build_assert/build_assert.h b/ccan/build_assert/build_assert.h<br/>index a04d1d4709..b846849241 100644<br/>--- a/<a href='/ruby.git/tree/ccan/build_assert/build_assert.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ccan/build_assert/build_assert.h</a><br/>+++ b/<a href='/ruby.git/tree/ccan/build_assert/build_assert.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ccan/build_assert/build_assert.h</a></div><div class='hunk'>@@ -3,7 +3,7 @@</div><div class='ctx'> #define CCAN_BUILD_ASSERT_H</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * BUILD_ASSERT - assert a build-time dependency.</div><div class='add'>+ * CCAN_BUILD_ASSERT - assert a build-time dependency.</div><div class='ctx'>  * @cond: the compile-time condition which must be true.</div><div class='ctx'>  *</div><div class='ctx'>  * Your compile will fail if the condition isn't true, or can't be evaluated</div><div class='hunk'>@@ -15,15 +15,15 @@</div><div class='ctx'>  *	static char *foo_to_char(struct foo *foo)</div><div class='ctx'>  *	{</div><div class='ctx'>  *		// This code needs string to be at start of foo.</div><div class='del'>- *		BUILD_ASSERT(offsetof(struct foo, string) == 0);</div><div class='add'>+ *		CCAN_BUILD_ASSERT(offsetof(struct foo, string) == 0);</div><div class='ctx'>  *		return (char *)foo;</div><div class='ctx'>  *	}</div><div class='ctx'>  */</div><div class='del'>-#define BUILD_ASSERT(cond) \</div><div class='add'>+#define CCAN_BUILD_ASSERT(cond) \</div><div class='ctx'> 	do { (void) sizeof(char [1 - 2*!(cond)]); } while(0)</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * BUILD_ASSERT_OR_ZERO - assert a build-time dependency, as an expression.</div><div class='add'>+ * CCAN_BUILD_ASSERT_OR_ZERO - assert a build-time dependency, as an expression.</div><div class='ctx'>  * @cond: the compile-time condition which must be true.</div><div class='ctx'>  *</div><div class='ctx'>  * Your compile will fail if the condition isn't true, or can't be evaluated</div><div class='hunk'>@@ -32,9 +32,9 @@</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	#define foo_to_char(foo)					\</div><div class='ctx'>  *		 ((char *)(foo)						\</div><div class='del'>- *		  + BUILD_ASSERT_OR_ZERO(offsetof(struct foo, string) == 0))</div><div class='add'>+ *		  + CCAN_BUILD_ASSERT_OR_ZERO(offsetof(struct foo, string) == 0))</div><div class='ctx'>  */</div><div class='del'>-#define BUILD_ASSERT_OR_ZERO(cond) \</div><div class='add'>+#define CCAN_BUILD_ASSERT_OR_ZERO(cond) \</div><div class='ctx'> 	(sizeof(char [1 - 2*!(cond)]) - 1)</div><div class='ctx'> </div><div class='ctx'> #endif /* CCAN_BUILD_ASSERT_H */</div><div class='head'>diff --git a/ccan/check_type/check_type.h b/ccan/check_type/check_type.h<br/>index 1f77a535e4..659e1a5a83 100644<br/>--- a/<a href='/ruby.git/tree/ccan/check_type/check_type.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ccan/check_type/check_type.h</a><br/>+++ b/<a href='/ruby.git/tree/ccan/check_type/check_type.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ccan/check_type/check_type.h</a></div><div class='hunk'>@@ -3,7 +3,7 @@</div><div class='ctx'> #define CCAN_CHECK_TYPE_H</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * check_type - issue a warning or build failure if type is not correct.</div><div class='add'>+ * ccan_check_type - issue a warning or build failure if type is not correct.</div><div class='ctx'>  * @expr: the expression whose type we should check (not evaluated).</div><div class='ctx'>  * @type: the exact type we expect the expression to be.</div><div class='ctx'>  *</div><div class='hunk'>@@ -11,7 +11,7 @@</div><div class='ctx'>  * argument is of the expected type.  No type promotion of the expression is</div><div class='ctx'>  * done: an unsigned int is not the same as an int!</div><div class='ctx'>  *</div><div class='del'>- * check_type() always evaluates to 0.</div><div class='add'>+ * ccan_check_type() always evaluates to 0.</div><div class='ctx'>  *</div><div class='ctx'>  * If your compiler does not support typeof, then the best we can do is fail</div><div class='ctx'>  * to compile if the sizes of the types are unequal (a less complete check).</div><div class='hunk'>@@ -19,11 +19,11 @@</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	// They should always pass a 64-bit value to _set_some_value!</div><div class='ctx'>  *	#define set_some_value(expr)			\</div><div class='del'>- *		_set_some_value((check_type((expr), uint64_t), (expr)))</div><div class='add'>+ *		_set_some_value((ccan_check_type((expr), uint64_t), (expr)))</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * check_types_match - issue a warning or build failure if types are not same.</div><div class='add'>+ * ccan_check_types_match - issue a warning or build failure if types are not same.</div><div class='ctx'>  * @expr1: the first expression (not evaluated).</div><div class='ctx'>  * @expr2: the second expression (not evaluated).</div><div class='ctx'>  *</div><div class='hunk'>@@ -31,7 +31,7 @@</div><div class='ctx'>  * arguments are of identical types.  No type promotion of the expressions is</div><div class='ctx'>  * done: an unsigned int is not the same as an int!</div><div class='ctx'>  *</div><div class='del'>- * check_types_match() always evaluates to 0.</div><div class='add'>+ * ccan_check_types_match() always evaluates to 0.</div><div class='ctx'>  *</div><div class='ctx'>  * If your compiler does not support typeof, then the best we can do is fail</div><div class='ctx'>  * to compile if the sizes of the types are unequal (a less complete check).</div><div class='hunk'>@@ -39,25 +39,25 @@</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	// Do subtraction to get to enclosing type, but make sure that</div><div class='ctx'>  *	// pointer is of correct type for that member.</div><div class='del'>- *	#define container_of(mbr_ptr, encl_type, mbr)			\</div><div class='del'>- *		(check_types_match((mbr_ptr), &amp;((encl_type *)0)-&gt;mbr),	\</div><div class='add'>+ *	#define ccan_container_of(mbr_ptr, encl_type, mbr)			\</div><div class='add'>+ *		(ccan_check_types_match((mbr_ptr), &amp;((encl_type *)0)-&gt;mbr),	\</div><div class='ctx'>  *		 ((encl_type *)						\</div><div class='ctx'>  *		  ((char *)(mbr_ptr) - offsetof(enclosing_type, mbr))))</div><div class='ctx'>  */</div><div class='del'>-#if HAVE_TYPEOF</div><div class='del'>-#define check_type(expr, type)			\</div><div class='add'>+#if defined(HAVE_TYPEOF) &amp;&amp; HAVE_TYPEOF</div><div class='add'>+#define ccan_check_type(expr, type)			\</div><div class='ctx'> 	((typeof(expr) *)0 != (type *)0)</div><div class='ctx'> </div><div class='del'>-#define check_types_match(expr1, expr2)		\</div><div class='add'>+#define ccan_check_types_match(expr1, expr2)		\</div><div class='ctx'> 	((typeof(expr1) *)0 != (typeof(expr2) *)0)</div><div class='ctx'> #else</div><div class='ctx'> #include "ccan/build_assert/build_assert.h"</div><div class='ctx'> /* Without typeof, we can only test the sizes. */</div><div class='del'>-#define check_type(expr, type)					\</div><div class='del'>-	BUILD_ASSERT_OR_ZERO(sizeof(expr) == sizeof(type))</div><div class='add'>+#define ccan_check_type(expr, type)					\</div><div class='add'>+	CCAN_BUILD_ASSERT_OR_ZERO(sizeof(expr) == sizeof(type))</div><div class='ctx'> </div><div class='del'>-#define check_types_match(expr1, expr2)				\</div><div class='del'>-	BUILD_ASSERT_OR_ZERO(sizeof(expr1) == sizeof(expr2))</div><div class='add'>+#define ccan_check_types_match(expr1, expr2)				\</div><div class='add'>+	CCAN_BUILD_ASSERT_OR_ZERO(sizeof(expr1) == sizeof(expr2))</div><div class='ctx'> #endif /* HAVE_TYPEOF */</div><div class='ctx'> </div><div class='ctx'> #endif /* CCAN_CHECK_TYPE_H */</div><div class='head'>diff --git a/ccan/container_of/container_of.h b/ccan/container_of/container_of.h<br/>index ae3e1fc81f..872bb6ea6e 100644<br/>--- a/<a href='/ruby.git/tree/ccan/container_of/container_of.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ccan/container_of/container_of.h</a><br/>+++ b/<a href='/ruby.git/tree/ccan/container_of/container_of.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ccan/container_of/container_of.h</a></div><div class='hunk'>@@ -4,7 +4,7 @@</div><div class='ctx'> #include "ccan/check_type/check_type.h"</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * container_of - get pointer to enclosing structure</div><div class='add'>+ * ccan_container_of - get pointer to enclosing structure</div><div class='ctx'>  * @member_ptr: pointer to the structure member</div><div class='ctx'>  * @containing_type: the type this member is within</div><div class='ctx'>  * @member: the name of this member within the structure.</div><div class='hunk'>@@ -24,18 +24,18 @@</div><div class='ctx'>  *</div><div class='ctx'>  *	static struct info *foo_to_info(struct foo *foo)</div><div class='ctx'>  *	{</div><div class='del'>- *		return container_of(foo, struct info, my_foo);</div><div class='add'>+ *		return ccan_container_of(foo, struct info, my_foo);</div><div class='ctx'>  *	}</div><div class='ctx'>  */</div><div class='del'>-#define container_of(member_ptr, containing_type, member)		\</div><div class='add'>+#define ccan_container_of(member_ptr, containing_type, member)		\</div><div class='ctx'> 	 ((containing_type *)						\</div><div class='ctx'> 	  ((char *)(member_ptr)						\</div><div class='del'>-	   - container_off(containing_type, member))			\</div><div class='del'>-	  + check_types_match(*(member_ptr), ((containing_type *)0)-&gt;member))</div><div class='add'>+	   - ccan_container_off(containing_type, member))		\</div><div class='add'>+	  + ccan_check_types_match(*(member_ptr), ((containing_type *)0)-&gt;member))</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * container_of_or_null - get pointer to enclosing structure, or NULL</div><div class='add'>+ * ccan_container_of_or_null - get pointer to enclosing structure, or NULL</div><div class='ctx'>  * @member_ptr: pointer to the structure member</div><div class='ctx'>  * @containing_type: the type this member is within</div><div class='ctx'>  * @member: the name of this member within the structure.</div><div class='hunk'>@@ -56,21 +56,21 @@</div><div class='ctx'>  *</div><div class='ctx'>  *	static struct info *foo_to_info_allowing_null(struct foo *foo)</div><div class='ctx'>  *	{</div><div class='del'>- *		return container_of_or_null(foo, struct info, my_foo);</div><div class='add'>+ *		return ccan_container_of_or_null(foo, struct info, my_foo);</div><div class='ctx'>  *	}</div><div class='ctx'>  */</div><div class='ctx'> static inline char *container_of_or_null_(void *member_ptr, size_t offset)</div><div class='ctx'> {</div><div class='ctx'> 	return member_ptr ? (char *)member_ptr - offset : NULL;</div><div class='ctx'> }</div><div class='del'>-#define container_of_or_null(member_ptr, containing_type, member)	\</div><div class='add'>+#define ccan_container_of_or_null(member_ptr, containing_type, member)	\</div><div class='ctx'> 	((containing_type *)						\</div><div class='del'>-	 container_of_or_null_(member_ptr,				\</div><div class='del'>-			       container_off(containing_type, member))	\</div><div class='del'>-	 + check_types_match(*(member_ptr), ((containing_type *)0)-&gt;member))</div><div class='add'>+	 ccan_container_of_or_null_(member_ptr,				\</div><div class='add'>+			       ccan_container_off(containing_type, member))	\</div><div class='add'>+	 + ccan_check_types_match(*(member_ptr), ((containing_type *)0)-&gt;member))</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * container_off - get offset to enclosing structure</div><div class='add'>+ * ccan_container_off - get offset to enclosing structure</div><div class='ctx'>  * @containing_type: the type this member is within</div><div class='ctx'>  * @member: the name of this member within the structure.</div><div class='ctx'>  *</div><div class='hunk'>@@ -89,15 +89,15 @@ static inline char *container_of_or_null_(void *member_ptr, size_t offset)</div><div class='ctx'>  *</div><div class='ctx'>  *	static struct info *foo_to_info(struct foo *foo)</div><div class='ctx'>  *	{</div><div class='del'>- *		size_t off = container_off(struct info, my_foo);</div><div class='add'>+ *		size_t off = ccan_container_off(struct info, my_foo);</div><div class='ctx'>  *		return (void *)((char *)foo - off);</div><div class='ctx'>  *	}</div><div class='ctx'>  */</div><div class='del'>-#define container_off(containing_type, member)	\</div><div class='add'>+#define ccan_container_off(containing_type, member)	\</div><div class='ctx'> 	offsetof(containing_type, member)</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * container_of_var - get pointer to enclosing structure using a variable</div><div class='add'>+ * ccan_container_of_var - get pointer to enclosing structure using a variable</div><div class='ctx'>  * @member_ptr: pointer to the structure member</div><div class='ctx'>  * @container_var: a pointer of same type as this member's container</div><div class='ctx'>  * @member: the name of this member within the structure.</div><div class='hunk'>@@ -108,21 +108,21 @@ static inline char *container_of_or_null_(void *member_ptr, size_t offset)</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	static struct info *foo_to_i(struct foo *foo)</div><div class='ctx'>  *	{</div><div class='del'>- *		struct info *i = container_of_var(foo, i, my_foo);</div><div class='add'>+ *		struct info *i = ccan_container_of_var(foo, i, my_foo);</div><div class='ctx'>  *		return i;</div><div class='ctx'>  *	}</div><div class='ctx'>  */</div><div class='del'>-#if HAVE_TYPEOF</div><div class='del'>-#define container_of_var(member_ptr, container_var, member) \</div><div class='del'>-	container_of(member_ptr, typeof(*container_var), member)</div><div class='add'>+#if defined(HAVE_TYPEOF) &amp;&amp; HAVE_TYPEOF</div><div class='add'>+#define ccan_container_of_var(member_ptr, container_var, member) \</div><div class='add'>+	ccan_container_of(member_ptr, typeof(*container_var), member)</div><div class='ctx'> #else</div><div class='del'>-#define container_of_var(member_ptr, container_var, member)	\</div><div class='add'>+#define ccan_container_of_var(member_ptr, container_var, member)	\</div><div class='ctx'> 	((void *)((char *)(member_ptr)	-			\</div><div class='del'>-		  container_off_var(container_var, member)))</div><div class='add'>+		  ccan_container_off_var(container_var, member)))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * container_off_var - get offset of a field in enclosing structure</div><div class='add'>+ * ccan_container_off_var - get offset of a field in enclosing structure</div><div class='ctx'>  * @container_var: a pointer to a container structure</div><div class='ctx'>  * @member: the name of a member within the structure.</div><div class='ctx'>  *</div><div class='hunk'>@@ -131,11 +131,11 @@ static inline char *container_of_or_null_(void *member_ptr, size_t offset)</div><div class='ctx'>  * structure memory layout.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='del'>-#if HAVE_TYPEOF</div><div class='del'>-#define container_off_var(var, member)		\</div><div class='del'>-	container_off(typeof(*var), member)</div><div class='add'>+#if defined(HAVE_TYPEOF) &amp;&amp; HAVE_TYPEOF</div><div class='add'>+#define ccan_container_off_var(var, member)		\</div><div class='add'>+	ccan_container_off(typeof(*var), member)</div><div class='ctx'> #else</div><div class='del'>-#define container_off_var(var, member)			\</div><div class='add'>+#define ccan_container_off_var(var, member)			\</div><div class='ctx'> 	((const char *)&amp;(var)-&gt;member - (const char *)(var))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='head'>diff --git a/ccan/list/list.h b/ccan/list/list.h<br/>index 59ab45ee53..30b2af04e9 100644<br/>--- a/<a href='/ruby.git/tree/ccan/list/list.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ccan/list/list.h</a><br/>+++ b/<a href='/ruby.git/tree/ccan/list/list.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ccan/list/list.h</a></div><div class='hunk'>@@ -7,7 +7,7 @@</div><div class='ctx'> #include "ccan/check_type/check_type.h"</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * struct list_node - an entry in a doubly-linked list</div><div class='add'>+ * struct ccan_list_node - an entry in a doubly-linked list</div><div class='ctx'>  * @next: next entry (self if empty)</div><div class='ctx'>  * @prev: previous entry (self if empty)</div><div class='ctx'>  *</div><div class='hunk'>@@ -16,209 +16,209 @@</div><div class='ctx'>  *	struct child {</div><div class='ctx'>  *		const char *name;</div><div class='ctx'>  *		// Linked list of all us children.</div><div class='del'>- *		struct list_node list;</div><div class='add'>+ *		struct ccan_list_node list;</div><div class='ctx'>  *	};</div><div class='ctx'>  */</div><div class='del'>-struct list_node</div><div class='add'>+struct ccan_list_node</div><div class='ctx'> {</div><div class='del'>-	struct list_node *next, *prev;</div><div class='add'>+	struct ccan_list_node *next, *prev;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * struct list_head - the head of a doubly-linked list</div><div class='del'>- * @h: the list_head (containing next and prev pointers)</div><div class='add'>+ * struct ccan_list_head - the head of a doubly-linked list</div><div class='add'>+ * @h: the ccan_list_head (containing next and prev pointers)</div><div class='ctx'>  *</div><div class='ctx'>  * This is used as the head of a linked list.</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	struct parent {</div><div class='ctx'>  *		const char *name;</div><div class='del'>- *		struct list_head children;</div><div class='add'>+ *		struct ccan_list_head children;</div><div class='ctx'>  *		unsigned int num_children;</div><div class='ctx'>  *	};</div><div class='ctx'>  */</div><div class='del'>-struct list_head</div><div class='add'>+struct ccan_list_head</div><div class='ctx'> {</div><div class='del'>-	struct list_node n;</div><div class='add'>+	struct ccan_list_node n;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-#define LIST_LOC __FILE__  ":" stringify(__LINE__)</div><div class='del'>-#define list_debug(h, loc) ((void)loc, h)</div><div class='del'>-#define list_debug_node(n, loc) ((void)loc, n)</div><div class='add'>+#define CCAN_LIST_LOC __FILE__  ":" ccan_stringify(__LINE__)</div><div class='add'>+#define ccan_list_debug(h, loc) ((void)loc, h)</div><div class='add'>+#define ccan_list_debug_node(n, loc) ((void)loc, n)</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * LIST_HEAD_INIT - initializer for an empty list_head</div><div class='add'>+ * CCAN_LIST_HEAD_INIT - initializer for an empty ccan_list_head</div><div class='ctx'>  * @name: the name of the list.</div><div class='ctx'>  *</div><div class='ctx'>  * Explicit initializer for an empty list.</div><div class='ctx'>  *</div><div class='ctx'>  * See also:</div><div class='del'>- *	LIST_HEAD, list_head_init()</div><div class='add'>+ *	CCAN_LIST_HEAD, ccan_list_head_init()</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	static struct list_head my_list = LIST_HEAD_INIT(my_list);</div><div class='add'>+ *	static struct ccan_list_head my_list = CCAN_LIST_HEAD_INIT(my_list);</div><div class='ctx'>  */</div><div class='del'>-#define LIST_HEAD_INIT(name) { { &amp;(name).n, &amp;(name).n } }</div><div class='add'>+#define CCAN_LIST_HEAD_INIT(name) { { &amp;(name).n, &amp;(name).n } }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * LIST_HEAD - define and initialize an empty list_head</div><div class='add'>+ * CCAN_LIST_HEAD - define and initialize an empty ccan_list_head</div><div class='ctx'>  * @name: the name of the list.</div><div class='ctx'>  *</div><div class='del'>- * The LIST_HEAD macro defines a list_head and initializes it to an empty</div><div class='del'>- * list.  It can be prepended by "static" to define a static list_head.</div><div class='add'>+ * The CCAN_LIST_HEAD macro defines a ccan_list_head and initializes it to an empty</div><div class='add'>+ * list.  It can be prepended by "static" to define a static ccan_list_head.</div><div class='ctx'>  *</div><div class='ctx'>  * See also:</div><div class='del'>- *	LIST_HEAD_INIT, list_head_init()</div><div class='add'>+ *	CCAN_LIST_HEAD_INIT, ccan_list_head_init()</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	static LIST_HEAD(my_global_list);</div><div class='add'>+ *	static CCAN_LIST_HEAD(my_global_list);</div><div class='ctx'>  */</div><div class='del'>-#define LIST_HEAD(name) \</div><div class='del'>-	struct list_head name = LIST_HEAD_INIT(name)</div><div class='add'>+#define CCAN_LIST_HEAD(name) \</div><div class='add'>+	struct ccan_list_head name = CCAN_LIST_HEAD_INIT(name)</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_head_init - initialize a list_head</div><div class='del'>- * @h: the list_head to set to the empty list</div><div class='add'>+ * ccan_list_head_init - initialize a ccan_list_head</div><div class='add'>+ * @h: the ccan_list_head to set to the empty list</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	...</div><div class='ctx'>  *	struct parent *parent = malloc(sizeof(*parent));</div><div class='ctx'>  *</div><div class='del'>- *	list_head_init(&amp;parent-&gt;children);</div><div class='add'>+ *	ccan_list_head_init(&amp;parent-&gt;children);</div><div class='ctx'>  *	parent-&gt;num_children = 0;</div><div class='ctx'>  */</div><div class='del'>-static inline void list_head_init(struct list_head *h)</div><div class='add'>+static inline void ccan_list_head_init(struct ccan_list_head *h)</div><div class='ctx'> {</div><div class='ctx'> 	h-&gt;n.next = h-&gt;n.prev = &amp;h-&gt;n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_node_init - initialize a list_node</div><div class='del'>- * @n: the list_node to link to itself.</div><div class='add'>+ * ccan_list_node_init - initialize a ccan_list_node</div><div class='add'>+ * @n: the ccan_list_node to link to itself.</div><div class='ctx'>  *</div><div class='del'>- * You don't need to use this normally!  But it lets you list_del(@n)</div><div class='add'>+ * You don't need to use this normally!  But it lets you ccan_list_del(@n)</div><div class='ctx'>  * safely.</div><div class='ctx'>  */</div><div class='del'>-static inline void list_node_init(struct list_node *n)</div><div class='add'>+static inline void ccan_list_node_init(struct ccan_list_node *n)</div><div class='ctx'> {</div><div class='ctx'> 	n-&gt;next = n-&gt;prev = n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_add_after - add an entry after an existing node in a linked list</div><div class='del'>- * @h: the list_head to add the node to (for debugging)</div><div class='del'>- * @p: the existing list_node to add the node after</div><div class='del'>- * @n: the new list_node to add to the list.</div><div class='add'>+ * ccan_list_add_after - add an entry after an existing node in a linked list</div><div class='add'>+ * @h: the ccan_list_head to add the node to (for debugging)</div><div class='add'>+ * @p: the existing ccan_list_node to add the node after</div><div class='add'>+ * @n: the new ccan_list_node to add to the list.</div><div class='ctx'>  *</div><div class='del'>- * The existing list_node must already be a member of the list.</div><div class='del'>- * The new list_node does not need to be initialized; it will be overwritten.</div><div class='add'>+ * The existing ccan_list_node must already be a member of the list.</div><div class='add'>+ * The new ccan_list_node does not need to be initialized; it will be overwritten.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	struct child c1, c2, c3;</div><div class='del'>- *	LIST_HEAD(h);</div><div class='add'>+ *	CCAN_LIST_HEAD(h);</div><div class='ctx'>  *</div><div class='del'>- *	list_add_tail(&amp;h, &amp;c1.list);</div><div class='del'>- *	list_add_tail(&amp;h, &amp;c3.list);</div><div class='del'>- *	list_add_after(&amp;h, &amp;c1.list, &amp;c2.list);</div><div class='add'>+ *	ccan_list_add_tail(&amp;h, &amp;c1.list);</div><div class='add'>+ *	ccan_list_add_tail(&amp;h, &amp;c3.list);</div><div class='add'>+ *	ccan_list_add_after(&amp;h, &amp;c1.list, &amp;c2.list);</div><div class='ctx'>  */</div><div class='del'>-#define list_add_after(h, p, n) list_add_after_(h, p, n, LIST_LOC)</div><div class='del'>-static inline void list_add_after_(struct list_head *h,</div><div class='del'>-				   struct list_node *p,</div><div class='del'>-				   struct list_node *n,</div><div class='add'>+#define ccan_list_add_after(h, p, n) ccan_list_add_after_(h, p, n, CCAN_LIST_LOC)</div><div class='add'>+static inline void ccan_list_add_after_(struct ccan_list_head *h,</div><div class='add'>+				   struct ccan_list_node *p,</div><div class='add'>+				   struct ccan_list_node *n,</div><div class='ctx'> 				   const char *abortstr)</div><div class='ctx'> {</div><div class='ctx'> 	n-&gt;next = p-&gt;next;</div><div class='ctx'> 	n-&gt;prev = p;</div><div class='ctx'> 	p-&gt;next-&gt;prev = n;</div><div class='ctx'> 	p-&gt;next = n;</div><div class='del'>-	(void)list_debug(h, abortstr);</div><div class='add'>+	(void)ccan_list_debug(h, abortstr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_add - add an entry at the start of a linked list.</div><div class='del'>- * @h: the list_head to add the node to</div><div class='del'>- * @n: the list_node to add to the list.</div><div class='add'>+ * ccan_list_add - add an entry at the start of a linked list.</div><div class='add'>+ * @h: the ccan_list_head to add the node to</div><div class='add'>+ * @n: the ccan_list_node to add to the list.</div><div class='ctx'>  *</div><div class='del'>- * The list_node does not need to be initialized; it will be overwritten.</div><div class='add'>+ * The ccan_list_node does not need to be initialized; it will be overwritten.</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	struct child *child = malloc(sizeof(*child));</div><div class='ctx'>  *</div><div class='ctx'>  *	child-&gt;name = "marvin";</div><div class='del'>- *	list_add(&amp;parent-&gt;children, &amp;child-&gt;list);</div><div class='add'>+ *	ccan_list_add(&amp;parent-&gt;children, &amp;child-&gt;list);</div><div class='ctx'>  *	parent-&gt;num_children++;</div><div class='ctx'>  */</div><div class='del'>-#define list_add(h, n) list_add_(h, n, LIST_LOC)</div><div class='del'>-static inline void list_add_(struct list_head *h,</div><div class='del'>-			     struct list_node *n,</div><div class='add'>+#define ccan_list_add(h, n) ccan_list_add_(h, n, CCAN_LIST_LOC)</div><div class='add'>+static inline void ccan_list_add_(struct ccan_list_head *h,</div><div class='add'>+			     struct ccan_list_node *n,</div><div class='ctx'> 			     const char *abortstr)</div><div class='ctx'> {</div><div class='del'>-	list_add_after_(h, &amp;h-&gt;n, n, abortstr);</div><div class='add'>+	ccan_list_add_after_(h, &amp;h-&gt;n, n, abortstr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_add_before - add an entry before an existing node in a linked list</div><div class='del'>- * @h: the list_head to add the node to (for debugging)</div><div class='del'>- * @p: the existing list_node to add the node before</div><div class='del'>- * @n: the new list_node to add to the list.</div><div class='add'>+ * ccan_list_add_before - add an entry before an existing node in a linked list</div><div class='add'>+ * @h: the ccan_list_head to add the node to (for debugging)</div><div class='add'>+ * @p: the existing ccan_list_node to add the node before</div><div class='add'>+ * @n: the new ccan_list_node to add to the list.</div><div class='ctx'>  *</div><div class='del'>- * The existing list_node must already be a member of the list.</div><div class='del'>- * The new list_node does not need to be initialized; it will be overwritten.</div><div class='add'>+ * The existing ccan_list_node must already be a member of the list.</div><div class='add'>+ * The new ccan_list_node does not need to be initialized; it will be overwritten.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_head_init(&amp;h);</div><div class='del'>- *	list_add_tail(&amp;h, &amp;c1.list);</div><div class='del'>- *	list_add_tail(&amp;h, &amp;c3.list);</div><div class='del'>- *	list_add_before(&amp;h, &amp;c3.list, &amp;c2.list);</div><div class='del'>- */</div><div class='del'>-#define list_add_before(h, p, n) list_add_before_(h, p, n, LIST_LOC)</div><div class='del'>-static inline void list_add_before_(struct list_head *h,</div><div class='del'>-				    struct list_node *p,</div><div class='del'>-				    struct list_node *n,</div><div class='add'>+ *	ccan_list_head_init(&amp;h);</div><div class='add'>+ *	ccan_list_add_tail(&amp;h, &amp;c1.list);</div><div class='add'>+ *	ccan_list_add_tail(&amp;h, &amp;c3.list);</div><div class='add'>+ *	ccan_list_add_before(&amp;h, &amp;c3.list, &amp;c2.list);</div><div class='add'>+ */</div><div class='add'>+#define ccan_list_add_before(h, p, n) ccan_list_add_before_(h, p, n, CCAN_LIST_LOC)</div><div class='add'>+static inline void ccan_list_add_before_(struct ccan_list_head *h,</div><div class='add'>+				    struct ccan_list_node *p,</div><div class='add'>+				    struct ccan_list_node *n,</div><div class='ctx'> 				    const char *abortstr)</div><div class='ctx'> {</div><div class='ctx'> 	n-&gt;next = p;</div><div class='ctx'> 	n-&gt;prev = p-&gt;prev;</div><div class='ctx'> 	p-&gt;prev-&gt;next = n;</div><div class='ctx'> 	p-&gt;prev = n;</div><div class='del'>-	(void)list_debug(h, abortstr);</div><div class='add'>+	(void)ccan_list_debug(h, abortstr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_add_tail - add an entry at the end of a linked list.</div><div class='del'>- * @h: the list_head to add the node to</div><div class='del'>- * @n: the list_node to add to the list.</div><div class='add'>+ * ccan_list_add_tail - add an entry at the end of a linked list.</div><div class='add'>+ * @h: the ccan_list_head to add the node to</div><div class='add'>+ * @n: the ccan_list_node to add to the list.</div><div class='ctx'>  *</div><div class='del'>- * The list_node does not need to be initialized; it will be overwritten.</div><div class='add'>+ * The ccan_list_node does not need to be initialized; it will be overwritten.</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_add_tail(&amp;parent-&gt;children, &amp;child-&gt;list);</div><div class='add'>+ *	ccan_list_add_tail(&amp;parent-&gt;children, &amp;child-&gt;list);</div><div class='ctx'>  *	parent-&gt;num_children++;</div><div class='ctx'>  */</div><div class='del'>-#define list_add_tail(h, n) list_add_tail_(h, n, LIST_LOC)</div><div class='del'>-static inline void list_add_tail_(struct list_head *h,</div><div class='del'>-				  struct list_node *n,</div><div class='add'>+#define ccan_list_add_tail(h, n) ccan_list_add_tail_(h, n, CCAN_LIST_LOC)</div><div class='add'>+static inline void ccan_list_add_tail_(struct ccan_list_head *h,</div><div class='add'>+				  struct ccan_list_node *n,</div><div class='ctx'> 				  const char *abortstr)</div><div class='ctx'> {</div><div class='del'>-	list_add_before_(h, &amp;h-&gt;n, n, abortstr);</div><div class='add'>+	ccan_list_add_before_(h, &amp;h-&gt;n, n, abortstr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_empty - is a list empty?</div><div class='del'>- * @h: the list_head</div><div class='add'>+ * ccan_list_empty - is a list empty?</div><div class='add'>+ * @h: the ccan_list_head</div><div class='ctx'>  *</div><div class='ctx'>  * If the list is empty, returns true.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	assert(list_empty(&amp;parent-&gt;children) == (parent-&gt;num_children == 0));</div><div class='add'>+ *	assert(ccan_list_empty(&amp;parent-&gt;children) == (parent-&gt;num_children == 0));</div><div class='ctx'>  */</div><div class='del'>-#define list_empty(h) list_empty_(h, LIST_LOC)</div><div class='del'>-static inline int list_empty_(const struct list_head *h, const char* abortstr)</div><div class='add'>+#define ccan_list_empty(h) ccan_list_empty_(h, CCAN_LIST_LOC)</div><div class='add'>+static inline int ccan_list_empty_(const struct ccan_list_head *h, const char* abortstr)</div><div class='ctx'> {</div><div class='del'>-	(void)list_debug(h, abortstr);</div><div class='add'>+	(void)ccan_list_debug(h, abortstr);</div><div class='ctx'> 	return h-&gt;n.next == &amp;h-&gt;n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_empty_nodebug - is a list empty (and don't perform debug checks)?</div><div class='del'>- * @h: the list_head</div><div class='add'>+ * ccan_list_empty_nodebug - is a list empty (and don't perform debug checks)?</div><div class='add'>+ * @h: the ccan_list_head</div><div class='ctx'>  *</div><div class='ctx'>  * If the list is empty, returns true.</div><div class='ctx'>  * This differs from list_empty() in that if CCAN_LIST_DEBUG is set it</div><div class='hunk'>@@ -226,20 +226,20 @@ static inline int list_empty_(const struct list_head *h, const char* abortstr)</div><div class='ctx'>  * know what you're doing.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	assert(list_empty_nodebug(&amp;parent-&gt;children) == (parent-&gt;num_children == 0));</div><div class='add'>+ *	assert(ccan_list_empty_nodebug(&amp;parent-&gt;children) == (parent-&gt;num_children == 0));</div><div class='ctx'>  */</div><div class='ctx'> #ifndef CCAN_LIST_DEBUG</div><div class='del'>-#define list_empty_nodebug(h) list_empty(h)</div><div class='add'>+#define ccan_list_empty_nodebug(h) ccan_list_empty(h)</div><div class='ctx'> #else</div><div class='del'>-static inline int list_empty_nodebug(const struct list_head *h)</div><div class='add'>+static inline int ccan_list_empty_nodebug(const struct ccan_list_head *h)</div><div class='ctx'> {</div><div class='ctx'> 	return h-&gt;n.next == &amp;h-&gt;n;</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_empty_nocheck - is a list empty?</div><div class='del'>- * @h: the list_head</div><div class='add'>+ * ccan_list_empty_nocheck - is a list empty?</div><div class='add'>+ * @h: the ccan_list_head</div><div class='ctx'>  *</div><div class='ctx'>  * If the list is empty, returns true. This doesn't perform any</div><div class='ctx'>  * debug check for list consistency, so it can be called without</div><div class='hunk'>@@ -247,29 +247,29 @@ static inline int list_empty_nodebug(const struct list_head *h)</div><div class='ctx'>  * checks where an incorrect result is not an issue (optimized</div><div class='ctx'>  * bail out path for example).</div><div class='ctx'>  */</div><div class='del'>-static inline bool list_empty_nocheck(const struct list_head *h)</div><div class='add'>+static inline bool ccan_list_empty_nocheck(const struct ccan_list_head *h)</div><div class='ctx'> {</div><div class='ctx'> 	return h-&gt;n.next == &amp;h-&gt;n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_del - delete an entry from an (unknown) linked list.</div><div class='del'>- * @n: the list_node to delete from the list.</div><div class='add'>+ * ccan_list_del - delete an entry from an (unknown) linked list.</div><div class='add'>+ * @n: the ccan_list_node to delete from the list.</div><div class='ctx'>  *</div><div class='ctx'>  * Note that this leaves @n in an undefined state; it can be added to</div><div class='ctx'>  * another list, but not deleted again.</div><div class='ctx'>  *</div><div class='ctx'>  * See also:</div><div class='del'>- *	list_del_from(), list_del_init()</div><div class='add'>+ *	ccan_list_del_from(), ccan_list_del_init()</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_del(&amp;child-&gt;list);</div><div class='add'>+ *	ccan_list_del(&amp;child-&gt;list);</div><div class='ctx'>  *	parent-&gt;num_children--;</div><div class='ctx'>  */</div><div class='del'>-#define list_del(n) list_del_(n, LIST_LOC)</div><div class='del'>-static inline void list_del_(struct list_node *n, const char* abortstr)</div><div class='add'>+#define ccan_list_del(n) ccan_list_del_(n, CCAN_LIST_LOC)</div><div class='add'>+static inline void ccan_list_del_(struct ccan_list_node *n, const char* abortstr)</div><div class='ctx'> {</div><div class='del'>-	(void)list_debug_node(n, abortstr);</div><div class='add'>+	(void)ccan_list_debug_node(n, abortstr);</div><div class='ctx'> 	n-&gt;next-&gt;prev = n-&gt;prev;</div><div class='ctx'> 	n-&gt;prev-&gt;next = n-&gt;next;</div><div class='ctx'> #ifdef CCAN_LIST_DEBUG</div><div class='hunk'>@@ -279,80 +279,80 @@ static inline void list_del_(struct list_node *n, const char* abortstr)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_del_init - delete a node, and reset it so it can be deleted again.</div><div class='del'>- * @n: the list_node to be deleted.</div><div class='add'>+ * ccan_list_del_init - delete a node, and reset it so it can be deleted again.</div><div class='add'>+ * @n: the ccan_list_node to be deleted.</div><div class='ctx'>  *</div><div class='del'>- * list_del(@n) or list_del_init() again after this will be safe,</div><div class='add'>+ * ccan_list_del(@n) or ccan_list_del_init() again after this will be safe,</div><div class='ctx'>  * which can be useful in some cases.</div><div class='ctx'>  *</div><div class='ctx'>  * See also:</div><div class='del'>- *	list_del_from(), list_del()</div><div class='add'>+ *	ccan_list_del_from(), ccan_list_del()</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_del_init(&amp;child-&gt;list);</div><div class='add'>+ *	ccan_list_del_init(&amp;child-&gt;list);</div><div class='ctx'>  *	parent-&gt;num_children--;</div><div class='ctx'>  */</div><div class='del'>-#define list_del_init(n) list_del_init_(n, LIST_LOC)</div><div class='del'>-static inline void list_del_init_(struct list_node *n, const char *abortstr)</div><div class='add'>+#define ccan_list_del_init(n) ccan_list_del_init_(n, CCAN_LIST_LOC)</div><div class='add'>+static inline void ccan_list_del_init_(struct ccan_list_node *n, const char *abortstr)</div><div class='ctx'> {</div><div class='del'>-	list_del_(n, abortstr);</div><div class='del'>-	list_node_init(n);</div><div class='add'>+	ccan_list_del_(n, abortstr);</div><div class='add'>+	ccan_list_node_init(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_del_from - delete an entry from a known linked list.</div><div class='del'>- * @h: the list_head the node is in.</div><div class='del'>- * @n: the list_node to delete from the list.</div><div class='add'>+ * ccan_list_del_from - delete an entry from a known linked list.</div><div class='add'>+ * @h: the ccan_list_head the node is in.</div><div class='add'>+ * @n: the ccan_list_node to delete from the list.</div><div class='ctx'>  *</div><div class='ctx'>  * This explicitly indicates which list a node is expected to be in,</div><div class='ctx'>  * which is better documentation and can catch more bugs.</div><div class='ctx'>  *</div><div class='del'>- * See also: list_del()</div><div class='add'>+ * See also: ccan_list_del()</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_del_from(&amp;parent-&gt;children, &amp;child-&gt;list);</div><div class='add'>+ *	ccan_list_del_from(&amp;parent-&gt;children, &amp;child-&gt;list);</div><div class='ctx'>  *	parent-&gt;num_children--;</div><div class='ctx'>  */</div><div class='del'>-static inline void list_del_from(struct list_head *h, struct list_node *n)</div><div class='add'>+static inline void ccan_list_del_from(struct ccan_list_head *h, struct ccan_list_node *n)</div><div class='ctx'> {</div><div class='ctx'> #ifdef CCAN_LIST_DEBUG</div><div class='ctx'> 	{</div><div class='ctx'> 		/* Thorough check: make sure it was in list! */</div><div class='del'>-		struct list_node *i;</div><div class='add'>+		struct ccan_list_node *i;</div><div class='ctx'> 		for (i = h-&gt;n.next; i != n; i = i-&gt;next)</div><div class='ctx'> 			assert(i != &amp;h-&gt;n);</div><div class='ctx'> 	}</div><div class='ctx'> #endif /* CCAN_LIST_DEBUG */</div><div class='ctx'> </div><div class='ctx'> 	/* Quick test that catches a surprising number of bugs. */</div><div class='del'>-	assert(!list_empty(h));</div><div class='del'>-	list_del(n);</div><div class='add'>+	assert(!ccan_list_empty(h));</div><div class='add'>+	ccan_list_del(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_swap - swap out an entry from an (unknown) linked list for a new one.</div><div class='del'>- * @o: the list_node to replace from the list.</div><div class='del'>- * @n: the list_node to insert in place of the old one.</div><div class='add'>+ * ccan_list_swap - swap out an entry from an (unknown) linked list for a new one.</div><div class='add'>+ * @o: the ccan_list_node to replace from the list.</div><div class='add'>+ * @n: the ccan_list_node to insert in place of the old one.</div><div class='ctx'>  *</div><div class='ctx'>  * Note that this leaves @o in an undefined state; it can be added to</div><div class='ctx'>  * another list, but not deleted/swapped again.</div><div class='ctx'>  *</div><div class='ctx'>  * See also:</div><div class='del'>- *	list_del()</div><div class='add'>+ *	ccan_list_del()</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	struct child x1, x2;</div><div class='del'>- *	LIST_HEAD(xh);</div><div class='add'>+ *	CCAN_LIST_HEAD(xh);</div><div class='ctx'>  *</div><div class='del'>- *	list_add(&amp;xh, &amp;x1.list);</div><div class='del'>- *	list_swap(&amp;x1.list, &amp;x2.list);</div><div class='add'>+ *	ccan_list_add(&amp;xh, &amp;x1.list);</div><div class='add'>+ *	ccan_list_swap(&amp;x1.list, &amp;x2.list);</div><div class='ctx'>  */</div><div class='del'>-#define list_swap(o, n) list_swap_(o, n, LIST_LOC)</div><div class='del'>-static inline void list_swap_(struct list_node *o,</div><div class='del'>-			      struct list_node *n,</div><div class='add'>+#define ccan_list_swap(o, n) ccan_list_swap_(o, n, CCAN_LIST_LOC)</div><div class='add'>+static inline void ccan_list_swap_(struct ccan_list_node *o,</div><div class='add'>+			      struct ccan_list_node *n,</div><div class='ctx'> 			      const char* abortstr)</div><div class='ctx'> {</div><div class='del'>-	(void)list_debug_node(o, abortstr);</div><div class='add'>+	(void)ccan_list_debug_node(o, abortstr);</div><div class='ctx'> 	*n = *o;</div><div class='ctx'> 	n-&gt;next-&gt;prev = n;</div><div class='ctx'> 	n-&gt;prev-&gt;next = n;</div><div class='hunk'>@@ -363,135 +363,135 @@ static inline void list_swap_(struct list_node *o,</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_entry - convert a list_node back into the structure containing it.</div><div class='del'>- * @n: the list_node</div><div class='add'>+ * ccan_list_entry - convert a ccan_list_node back into the structure containing it.</div><div class='add'>+ * @n: the ccan_list_node</div><div class='ctx'>  * @type: the type of the entry</div><div class='del'>- * @member: the list_node member of the type</div><div class='add'>+ * @member: the ccan_list_node member of the type</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	// First list entry is children.next; convert back to child.</div><div class='del'>- *	child = list_entry(parent-&gt;children.n.next, struct child, list);</div><div class='add'>+ *	child = ccan_list_entry(parent-&gt;children.n.next, struct child, list);</div><div class='ctx'>  *</div><div class='ctx'>  * See Also:</div><div class='del'>- *	list_top(), list_for_each()</div><div class='add'>+ *	ccan_list_top(), ccan_list_for_each()</div><div class='ctx'>  */</div><div class='del'>-#define list_entry(n, type, member) container_of(n, type, member)</div><div class='add'>+#define ccan_list_entry(n, type, member) ccan_container_of(n, type, member)</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_top - get the first entry in a list</div><div class='del'>- * @h: the list_head</div><div class='add'>+ * ccan_list_top - get the first entry in a list</div><div class='add'>+ * @h: the ccan_list_head</div><div class='ctx'>  * @type: the type of the entry</div><div class='del'>- * @member: the list_node member of the type</div><div class='add'>+ * @member: the ccan_list_node member of the type</div><div class='ctx'>  *</div><div class='ctx'>  * If the list is empty, returns NULL.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	struct child *first;</div><div class='del'>- *	first = list_top(&amp;parent-&gt;children, struct child, list);</div><div class='add'>+ *	first = ccan_list_top(&amp;parent-&gt;children, struct child, list);</div><div class='ctx'>  *	if (!first)</div><div class='ctx'>  *		printf("Empty list!\n");</div><div class='ctx'>  */</div><div class='del'>-#define list_top(h, type, member)					\</div><div class='del'>-	((type *)list_top_((h), list_off_(type, member)))</div><div class='add'>+#define ccan_list_top(h, type, member)					\</div><div class='add'>+	((type *)ccan_list_top_((h), ccan_list_off_(type, member)))</div><div class='ctx'> </div><div class='del'>-static inline const void *list_top_(const struct list_head *h, size_t off)</div><div class='add'>+static inline const void *ccan_list_top_(const struct ccan_list_head *h, size_t off)</div><div class='ctx'> {</div><div class='del'>-	if (list_empty(h))</div><div class='add'>+	if (ccan_list_empty(h))</div><div class='ctx'> 		return NULL;</div><div class='ctx'> 	return (const char *)h-&gt;n.next - off;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_pop - remove the first entry in a list</div><div class='del'>- * @h: the list_head</div><div class='add'>+ * ccan_list_pop - remove the first entry in a list</div><div class='add'>+ * @h: the ccan_list_head</div><div class='ctx'>  * @type: the type of the entry</div><div class='del'>- * @member: the list_node member of the type</div><div class='add'>+ * @member: the ccan_list_node member of the type</div><div class='ctx'>  *</div><div class='ctx'>  * If the list is empty, returns NULL.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	struct child *one;</div><div class='del'>- *	one = list_pop(&amp;parent-&gt;children, struct child, list);</div><div class='add'>+ *	one = ccan_list_pop(&amp;parent-&gt;children, struct child, list);</div><div class='ctx'>  *	if (!one)</div><div class='ctx'>  *		printf("Empty list!\n");</div><div class='ctx'>  */</div><div class='del'>-#define list_pop(h, type, member)					\</div><div class='del'>-	((type *)list_pop_((h), list_off_(type, member)))</div><div class='add'>+#define ccan_list_pop(h, type, member)					\</div><div class='add'>+	((type *)ccan_list_pop_((h), ccan_list_off_(type, member)))</div><div class='ctx'> </div><div class='del'>-static inline const void *list_pop_(const struct list_head *h, size_t off)</div><div class='add'>+static inline const void *ccan_list_pop_(const struct ccan_list_head *h, size_t off)</div><div class='ctx'> {</div><div class='del'>-	struct list_node *n;</div><div class='add'>+	struct ccan_list_node *n;</div><div class='ctx'> </div><div class='del'>-	if (list_empty(h))</div><div class='add'>+	if (ccan_list_empty(h))</div><div class='ctx'> 		return NULL;</div><div class='ctx'> 	n = h-&gt;n.next;</div><div class='del'>-	list_del(n);</div><div class='add'>+	ccan_list_del(n);</div><div class='ctx'> 	return (const char *)n - off;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_tail - get the last entry in a list</div><div class='del'>- * @h: the list_head</div><div class='add'>+ * ccan_list_tail - get the last entry in a list</div><div class='add'>+ * @h: the ccan_list_head</div><div class='ctx'>  * @type: the type of the entry</div><div class='del'>- * @member: the list_node member of the type</div><div class='add'>+ * @member: the ccan_list_node member of the type</div><div class='ctx'>  *</div><div class='ctx'>  * If the list is empty, returns NULL.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	struct child *last;</div><div class='del'>- *	last = list_tail(&amp;parent-&gt;children, struct child, list);</div><div class='add'>+ *	last = ccan_list_tail(&amp;parent-&gt;children, struct child, list);</div><div class='ctx'>  *	if (!last)</div><div class='ctx'>  *		printf("Empty list!\n");</div><div class='ctx'>  */</div><div class='del'>-#define list_tail(h, type, member) \</div><div class='del'>-	((type *)list_tail_((h), list_off_(type, member)))</div><div class='add'>+#define ccan_list_tail(h, type, member) \</div><div class='add'>+	((type *)ccan_list_tail_((h), ccan_list_off_(type, member)))</div><div class='ctx'> </div><div class='del'>-static inline const void *list_tail_(const struct list_head *h, size_t off)</div><div class='add'>+static inline const void *ccan_list_tail_(const struct ccan_list_head *h, size_t off)</div><div class='ctx'> {</div><div class='del'>-	if (list_empty(h))</div><div class='add'>+	if (ccan_list_empty(h))</div><div class='ctx'> 		return NULL;</div><div class='ctx'> 	return (const char *)h-&gt;n.prev - off;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_for_each - iterate through a list.</div><div class='del'>- * @h: the list_head (warning: evaluated multiple times!)</div><div class='del'>- * @i: the structure containing the list_node</div><div class='del'>- * @member: the list_node member of the structure</div><div class='add'>+ * ccan_list_for_each - iterate through a list.</div><div class='add'>+ * @h: the ccan_list_head (warning: evaluated multiple times!)</div><div class='add'>+ * @i: the structure containing the ccan_list_node</div><div class='add'>+ * @member: the ccan_list_node member of the structure</div><div class='ctx'>  *</div><div class='ctx'>  * This is a convenient wrapper to iterate @i over the entire list.  It's</div><div class='ctx'>  * a for loop, so you can break and continue as normal.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_for_each(&amp;parent-&gt;children, child, list)</div><div class='add'>+ *	ccan_list_for_each(&amp;parent-&gt;children, child, list)</div><div class='ctx'>  *		printf("Name: %s\n", child-&gt;name);</div><div class='ctx'>  */</div><div class='del'>-#define list_for_each(h, i, member)					\</div><div class='del'>-	list_for_each_off(h, i, list_off_var_(i, member))</div><div class='add'>+#define ccan_list_for_each(h, i, member)					\</div><div class='add'>+	ccan_list_for_each_off(h, i, ccan_list_off_var_(i, member))</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_for_each_rev - iterate through a list backwards.</div><div class='del'>- * @h: the list_head</div><div class='del'>- * @i: the structure containing the list_node</div><div class='del'>- * @member: the list_node member of the structure</div><div class='add'>+ * ccan_list_for_each_rev - iterate through a list backwards.</div><div class='add'>+ * @h: the ccan_list_head</div><div class='add'>+ * @i: the structure containing the ccan_list_node</div><div class='add'>+ * @member: the ccan_list_node member of the structure</div><div class='ctx'>  *</div><div class='ctx'>  * This is a convenient wrapper to iterate @i over the entire list.  It's</div><div class='ctx'>  * a for loop, so you can break and continue as normal.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_for_each_rev(&amp;parent-&gt;children, child, list)</div><div class='add'>+ *	ccan_list_for_each_rev(&amp;parent-&gt;children, child, list)</div><div class='ctx'>  *		printf("Name: %s\n", child-&gt;name);</div><div class='ctx'>  */</div><div class='del'>-#define list_for_each_rev(h, i, member)					\</div><div class='del'>-	list_for_each_rev_off(h, i, list_off_var_(i, member))</div><div class='add'>+#define ccan_list_for_each_rev(h, i, member)					\</div><div class='add'>+	ccan_list_for_each_rev_off(h, i, ccan_list_off_var_(i, member))</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_for_each_rev_safe - iterate through a list backwards,</div><div class='add'>+ * ccan_list_for_each_rev_safe - iterate through a list backwards,</div><div class='ctx'>  * maybe during deletion</div><div class='del'>- * @h: the list_head</div><div class='del'>- * @i: the structure containing the list_node</div><div class='del'>- * @nxt: the structure containing the list_node</div><div class='del'>- * @member: the list_node member of the structure</div><div class='add'>+ * @h: the ccan_list_head</div><div class='add'>+ * @i: the structure containing the ccan_list_node</div><div class='add'>+ * @nxt: the structure containing the ccan_list_node</div><div class='add'>+ * @member: the ccan_list_node member of the structure</div><div class='ctx'>  *</div><div class='ctx'>  * This is a convenient wrapper to iterate @i over the entire list backwards.</div><div class='ctx'>  * It's a for loop, so you can break and continue as normal.  The extra</div><div class='hunk'>@@ -500,74 +500,74 @@ static inline const void *list_tail_(const struct list_head *h, size_t off)</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	struct child *next;</div><div class='del'>- *	list_for_each_rev_safe(&amp;parent-&gt;children, child, next, list) {</div><div class='add'>+ *	ccan_list_for_each_rev_safe(&amp;parent-&gt;children, child, next, list) {</div><div class='ctx'>  *		printf("Name: %s\n", child-&gt;name);</div><div class='ctx'>  *	}</div><div class='ctx'>  */</div><div class='del'>-#define list_for_each_rev_safe(h, i, nxt, member)			\</div><div class='del'>-	list_for_each_rev_safe_off(h, i, nxt, list_off_var_(i, member))</div><div class='add'>+#define ccan_list_for_each_rev_safe(h, i, nxt, member)			\</div><div class='add'>+	ccan_list_for_each_rev_safe_off(h, i, nxt, ccan_list_off_var_(i, member))</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_for_each_safe - iterate through a list, maybe during deletion</div><div class='del'>- * @h: the list_head</div><div class='del'>- * @i: the structure containing the list_node</div><div class='del'>- * @nxt: the structure containing the list_node</div><div class='del'>- * @member: the list_node member of the structure</div><div class='add'>+ * ccan_list_for_each_safe - iterate through a list, maybe during deletion</div><div class='add'>+ * @h: the ccan_list_head</div><div class='add'>+ * @i: the structure containing the ccan_list_node</div><div class='add'>+ * @nxt: the structure containing the ccan_list_node</div><div class='add'>+ * @member: the ccan_list_node member of the structure</div><div class='ctx'>  *</div><div class='ctx'>  * This is a convenient wrapper to iterate @i over the entire list.  It's</div><div class='ctx'>  * a for loop, so you can break and continue as normal.  The extra variable</div><div class='ctx'>  * @nxt is used to hold the next element, so you can delete @i from the list.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_for_each_safe(&amp;parent-&gt;children, child, next, list) {</div><div class='del'>- *		list_del(&amp;child-&gt;list);</div><div class='add'>+ *	ccan_list_for_each_safe(&amp;parent-&gt;children, child, next, list) {</div><div class='add'>+ *		ccan_list_del(&amp;child-&gt;list);</div><div class='ctx'>  *		parent-&gt;num_children--;</div><div class='ctx'>  *	}</div><div class='ctx'>  */</div><div class='del'>-#define list_for_each_safe(h, i, nxt, member)				\</div><div class='del'>-	list_for_each_safe_off(h, i, nxt, list_off_var_(i, member))</div><div class='add'>+#define ccan_list_for_each_safe(h, i, nxt, member)				\</div><div class='add'>+	ccan_list_for_each_safe_off(h, i, nxt, ccan_list_off_var_(i, member))</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_next - get the next entry in a list</div><div class='del'>- * @h: the list_head</div><div class='add'>+ * ccan_list_next - get the next entry in a list</div><div class='add'>+ * @h: the ccan_list_head</div><div class='ctx'>  * @i: a pointer to an entry in the list.</div><div class='del'>- * @member: the list_node member of the structure</div><div class='add'>+ * @member: the ccan_list_node member of the structure</div><div class='ctx'>  *</div><div class='ctx'>  * If @i was the last entry in the list, returns NULL.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	struct child *second;</div><div class='del'>- *	second = list_next(&amp;parent-&gt;children, first, list);</div><div class='add'>+ *	second = ccan_list_next(&amp;parent-&gt;children, first, list);</div><div class='ctx'>  *	if (!second)</div><div class='ctx'>  *		printf("No second child!\n");</div><div class='ctx'>  */</div><div class='del'>-#define list_next(h, i, member)						\</div><div class='del'>-	((list_typeof(i))list_entry_or_null(list_debug(h,		\</div><div class='del'>-					    __FILE__ ":" stringify(__LINE__)), \</div><div class='add'>+#define ccan_list_next(h, i, member)						\</div><div class='add'>+	((ccan_list_typeof(i))ccan_list_entry_or_null(ccan_list_debug(h,		\</div><div class='add'>+					    __FILE__ ":" ccan_stringify(__LINE__)), \</div><div class='ctx'> 					    (i)-&gt;member.next,		\</div><div class='del'>-					    list_off_var_((i), member)))</div><div class='add'>+					    ccan_list_off_var_((i), member)))</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_prev - get the previous entry in a list</div><div class='del'>- * @h: the list_head</div><div class='add'>+ * ccan_list_prev - get the previous entry in a list</div><div class='add'>+ * @h: the ccan_list_head</div><div class='ctx'>  * @i: a pointer to an entry in the list.</div><div class='del'>- * @member: the list_node member of the structure</div><div class='add'>+ * @member: the ccan_list_node member of the structure</div><div class='ctx'>  *</div><div class='ctx'>  * If @i was the first entry in the list, returns NULL.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	first = list_prev(&amp;parent-&gt;children, second, list);</div><div class='add'>+ *	first = ccan_list_prev(&amp;parent-&gt;children, second, list);</div><div class='ctx'>  *	if (!first)</div><div class='ctx'>  *		printf("Can't go back to first child?!\n");</div><div class='ctx'>  */</div><div class='del'>-#define list_prev(h, i, member)						\</div><div class='del'>-	((list_typeof(i))list_entry_or_null(list_debug(h,		\</div><div class='del'>-					    __FILE__ ":" stringify(__LINE__)), \</div><div class='add'>+#define ccan_list_prev(h, i, member)						\</div><div class='add'>+	((ccan_list_typeof(i))ccan_list_entry_or_null(ccan_list_debug(h,		\</div><div class='add'>+					    __FILE__ ":" ccan_stringify(__LINE__)), \</div><div class='ctx'> 					    (i)-&gt;member.prev,		\</div><div class='del'>-					    list_off_var_((i), member)))</div><div class='add'>+					    ccan_list_off_var_((i), member)))</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_append_list - empty one list onto the end of another.</div><div class='add'>+ * ccan_list_append_list - empty one list onto the end of another.</div><div class='ctx'>  * @to: the list to append into</div><div class='ctx'>  * @from: the list to empty.</div><div class='ctx'>  *</div><div class='hunk'>@@ -575,20 +575,20 @@ static inline const void *list_tail_(const struct list_head *h, size_t off)</div><div class='ctx'>  * @to.  After this @from will be empty.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	struct list_head adopter;</div><div class='add'>+ *	struct ccan_list_head adopter;</div><div class='ctx'>  *</div><div class='del'>- *	list_append_list(&amp;adopter, &amp;parent-&gt;children);</div><div class='del'>- *	assert(list_empty(&amp;parent-&gt;children));</div><div class='add'>+ *	ccan_list_append_list(&amp;adopter, &amp;parent-&gt;children);</div><div class='add'>+ *	assert(ccan_list_empty(&amp;parent-&gt;children));</div><div class='ctx'>  *	parent-&gt;num_children = 0;</div><div class='ctx'>  */</div><div class='del'>-#define list_append_list(t, f) list_append_list_(t, f,			\</div><div class='del'>-				   __FILE__ ":" stringify(__LINE__))</div><div class='del'>-static inline void list_append_list_(struct list_head *to,</div><div class='del'>-				     struct list_head *from,</div><div class='add'>+#define ccan_list_append_list(t, f) ccan_list_append_list_(t, f,			\</div><div class='add'>+				   __FILE__ ":" ccan_stringify(__LINE__))</div><div class='add'>+static inline void ccan_list_append_list_(struct ccan_list_head *to,</div><div class='add'>+				     struct ccan_list_head *from,</div><div class='ctx'> 				     const char *abortstr)</div><div class='ctx'> {</div><div class='del'>-	struct list_node *from_tail = list_debug(from, abortstr)-&gt;n.prev;</div><div class='del'>-	struct list_node *to_tail = list_debug(to, abortstr)-&gt;n.prev;</div><div class='add'>+	struct ccan_list_node *from_tail = ccan_list_debug(from, abortstr)-&gt;n.prev;</div><div class='add'>+	struct ccan_list_node *to_tail = ccan_list_debug(to, abortstr)-&gt;n.prev;</div><div class='ctx'> </div><div class='ctx'> 	/* Sew in head and entire list. */</div><div class='ctx'> 	to-&gt;n.prev = from_tail;</div><div class='hunk'>@@ -597,12 +597,12 @@ static inline void list_append_list_(struct list_head *to,</div><div class='ctx'> 	from-&gt;n.prev = to_tail;</div><div class='ctx'> </div><div class='ctx'> 	/* Now remove head. */</div><div class='del'>-	list_del(&amp;from-&gt;n);</div><div class='del'>-	list_head_init(from);</div><div class='add'>+	ccan_list_del(&amp;from-&gt;n);</div><div class='add'>+	ccan_list_head_init(from);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_prepend_list - empty one list into the start of another.</div><div class='add'>+ * ccan_list_prepend_list - empty one list into the start of another.</div><div class='ctx'>  * @to: the list to prepend into</div><div class='ctx'>  * @from: the list to empty.</div><div class='ctx'>  *</div><div class='hunk'>@@ -610,17 +610,17 @@ static inline void list_append_list_(struct list_head *to,</div><div class='ctx'>  * of @to.  After this @from will be empty.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_prepend_list(&amp;adopter, &amp;parent-&gt;children);</div><div class='del'>- *	assert(list_empty(&amp;parent-&gt;children));</div><div class='add'>+ *	ccan_list_prepend_list(&amp;adopter, &amp;parent-&gt;children);</div><div class='add'>+ *	assert(ccan_list_empty(&amp;parent-&gt;children));</div><div class='ctx'>  *	parent-&gt;num_children = 0;</div><div class='ctx'>  */</div><div class='del'>-#define list_prepend_list(t, f) list_prepend_list_(t, f, LIST_LOC)</div><div class='del'>-static inline void list_prepend_list_(struct list_head *to,</div><div class='del'>-				      struct list_head *from,</div><div class='add'>+#define ccan_list_prepend_list(t, f) ccan_list_prepend_list_(t, f, CCAN_LIST_LOC)</div><div class='add'>+static inline void ccan_list_prepend_list_(struct ccan_list_head *to,</div><div class='add'>+				      struct ccan_list_head *from,</div><div class='ctx'> 				      const char *abortstr)</div><div class='ctx'> {</div><div class='del'>-	struct list_node *from_tail = list_debug(from, abortstr)-&gt;n.prev;</div><div class='del'>-	struct list_node *to_head = list_debug(to, abortstr)-&gt;n.next;</div><div class='add'>+	struct ccan_list_node *from_tail = ccan_list_debug(from, abortstr)-&gt;n.prev;</div><div class='add'>+	struct ccan_list_node *to_head = ccan_list_debug(to, abortstr)-&gt;n.next;</div><div class='ctx'> </div><div class='ctx'> 	/* Sew in head and entire list. */</div><div class='ctx'> 	to-&gt;n.next = &amp;from-&gt;n;</div><div class='hunk'>@@ -629,160 +629,161 @@ static inline void list_prepend_list_(struct list_head *to,</div><div class='ctx'> 	from_tail-&gt;next = to_head;</div><div class='ctx'> </div><div class='ctx'> 	/* Now remove head. */</div><div class='del'>-	list_del(&amp;from-&gt;n);</div><div class='del'>-	list_head_init(from);</div><div class='add'>+	ccan_list_del(&amp;from-&gt;n);</div><div class='add'>+	ccan_list_head_init(from);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* internal macros, do not use directly */</div><div class='del'>-#define list_for_each_off_dir_(h, i, off, dir)				\</div><div class='del'>-	for (i = list_node_to_off_(list_debug(h, LIST_LOC)-&gt;n.dir,	\</div><div class='add'>+#define ccan_list_for_each_off_dir_(h, i, off, dir)				\</div><div class='add'>+	for (i = ccan_list_node_to_off_(ccan_list_debug(h, CCAN_LIST_LOC)-&gt;n.dir,	\</div><div class='ctx'> 				   (off));				\</div><div class='del'>-	list_node_from_off_((void *)i, (off)) != &amp;(h)-&gt;n;		\</div><div class='del'>-	i = list_node_to_off_(list_node_from_off_((void *)i, (off))-&gt;dir, \</div><div class='add'>+	ccan_list_node_from_off_((void *)i, (off)) != &amp;(h)-&gt;n;		\</div><div class='add'>+	i = ccan_list_node_to_off_(ccan_list_node_from_off_((void *)i, (off))-&gt;dir, \</div><div class='ctx'> 			      (off)))</div><div class='ctx'> </div><div class='del'>-#define list_for_each_safe_off_dir_(h, i, nxt, off, dir)		\</div><div class='del'>-	for (i = list_node_to_off_(list_debug(h, LIST_LOC)-&gt;n.dir,	\</div><div class='add'>+#define ccan_list_for_each_safe_off_dir_(h, i, nxt, off, dir)		\</div><div class='add'>+	for (i = ccan_list_node_to_off_(ccan_list_debug(h, CCAN_LIST_LOC)-&gt;n.dir,	\</div><div class='ctx'> 				   (off)),				\</div><div class='del'>-	nxt = list_node_to_off_(list_node_from_off_(i, (off))-&gt;dir,	\</div><div class='add'>+	nxt = ccan_list_node_to_off_(ccan_list_node_from_off_(i, (off))-&gt;dir,	\</div><div class='ctx'> 				(off));					\</div><div class='del'>-	list_node_from_off_(i, (off)) != &amp;(h)-&gt;n;			\</div><div class='add'>+	ccan_list_node_from_off_(i, (off)) != &amp;(h)-&gt;n;			\</div><div class='ctx'> 	i = nxt,							\</div><div class='del'>-	nxt = list_node_to_off_(list_node_from_off_(i, (off))-&gt;dir,	\</div><div class='add'>+	nxt = ccan_list_node_to_off_(ccan_list_node_from_off_(i, (off))-&gt;dir,	\</div><div class='ctx'> 				(off)))</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_for_each_off - iterate through a list of memory regions.</div><div class='del'>- * @h: the list_head</div><div class='del'>- * @i: the pointer to a memory region wich contains list node data.</div><div class='add'>+ * ccan_list_for_each_off - iterate through a list of memory regions.</div><div class='add'>+ * @h: the ccan_list_head</div><div class='add'>+ * @i: the pointer to a memory region which contains list node data.</div><div class='ctx'>  * @off: offset(relative to @i) at which list node data resides.</div><div class='ctx'>  *</div><div class='ctx'>  * This is a low-level wrapper to iterate @i over the entire list, used to</div><div class='del'>- * implement all oher, more high-level, for-each constructs. It's a for loop,</div><div class='add'>+ * implement all other, more high-level, for-each constructs. It's a for loop,</div><div class='ctx'>  * so you can break and continue as normal.</div><div class='ctx'>  *</div><div class='ctx'>  * WARNING! Being the low-level macro that it is, this wrapper doesn't know</div><div class='ctx'>  * nor care about the type of @i. The only assumption made is that @i points</div><div class='ctx'>  * to a chunk of memory that at some @offset, relative to @i, contains a</div><div class='del'>- * properly filled `struct list_node' which in turn contains pointers to</div><div class='add'>+ * properly filled `struct ccan_list_node' which in turn contains pointers to</div><div class='ctx'>  * memory chunks and it's turtles all the way down. With all that in mind</div><div class='ctx'>  * remember that given the wrong pointer/offset couple this macro will</div><div class='ctx'>  * happily churn all you memory until SEGFAULT stops it, in other words</div><div class='ctx'>  * caveat emptor.</div><div class='ctx'>  *</div><div class='ctx'>  * It is worth mentioning that one of legitimate use-cases for that wrapper</div><div class='del'>- * is operation on opaque types with known offset for `struct list_node'</div><div class='add'>+ * is operation on opaque types with known offset for `struct ccan_list_node'</div><div class='ctx'>  * member(preferably 0), because it allows you not to disclose the type of</div><div class='ctx'>  * @i.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_for_each_off(&amp;parent-&gt;children, child,</div><div class='add'>+ *	ccan_list_for_each_off(&amp;parent-&gt;children, child,</div><div class='ctx'>  *				offsetof(struct child, list))</div><div class='ctx'>  *		printf("Name: %s\n", child-&gt;name);</div><div class='ctx'>  */</div><div class='del'>-#define list_for_each_off(h, i, off)                                    \</div><div class='del'>-	list_for_each_off_dir_((h),(i),(off),next)</div><div class='add'>+#define ccan_list_for_each_off(h, i, off)                                    \</div><div class='add'>+	ccan_list_for_each_off_dir_((h),(i),(off),next)</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_for_each_rev_off - iterate through a list of memory regions backwards</div><div class='del'>- * @h: the list_head</div><div class='del'>- * @i: the pointer to a memory region wich contains list node data.</div><div class='add'>+ * ccan_list_for_each_rev_off - iterate through a list of memory regions backwards</div><div class='add'>+ * @h: the ccan_list_head</div><div class='add'>+ * @i: the pointer to a memory region which contains list node data.</div><div class='ctx'>  * @off: offset(relative to @i) at which list node data resides.</div><div class='ctx'>  *</div><div class='del'>- * See list_for_each_off for details</div><div class='add'>+ * See ccan_list_for_each_off for details</div><div class='ctx'>  */</div><div class='del'>-#define list_for_each_rev_off(h, i, off)                                    \</div><div class='del'>-	list_for_each_off_dir_((h),(i),(off),prev)</div><div class='add'>+#define ccan_list_for_each_rev_off(h, i, off)                                    \</div><div class='add'>+	ccan_list_for_each_off_dir_((h),(i),(off),prev)</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_for_each_safe_off - iterate through a list of memory regions, maybe</div><div class='add'>+ * ccan_list_for_each_safe_off - iterate through a list of memory regions, maybe</div><div class='ctx'>  * during deletion</div><div class='del'>- * @h: the list_head</div><div class='del'>- * @i: the pointer to a memory region wich contains list node data.</div><div class='del'>- * @nxt: the structure containing the list_node</div><div class='add'>+ * @h: the ccan_list_head</div><div class='add'>+ * @i: the pointer to a memory region which contains list node data.</div><div class='add'>+ * @nxt: the structure containing the ccan_list_node</div><div class='ctx'>  * @off: offset(relative to @i) at which list node data resides.</div><div class='ctx'>  *</div><div class='del'>- * For details see `list_for_each_off' and `list_for_each_safe'</div><div class='add'>+ * For details see `ccan_list_for_each_off' and `ccan_list_for_each_safe'</div><div class='ctx'>  * descriptions.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_for_each_safe_off(&amp;parent-&gt;children, child,</div><div class='add'>+ *	ccan_list_for_each_safe_off(&amp;parent-&gt;children, child,</div><div class='ctx'>  *		next, offsetof(struct child, list))</div><div class='ctx'>  *		printf("Name: %s\n", child-&gt;name);</div><div class='ctx'>  */</div><div class='del'>-#define list_for_each_safe_off(h, i, nxt, off)                          \</div><div class='del'>-	list_for_each_safe_off_dir_((h),(i),(nxt),(off),next)</div><div class='add'>+#define ccan_list_for_each_safe_off(h, i, nxt, off)                          \</div><div class='add'>+	ccan_list_for_each_safe_off_dir_((h),(i),(nxt),(off),next)</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='del'>- * list_for_each_rev_safe_off - iterate backwards through a list of</div><div class='add'>+ * ccan_list_for_each_rev_safe_off - iterate backwards through a list of</div><div class='ctx'>  * memory regions, maybe during deletion</div><div class='del'>- * @h: the list_head</div><div class='del'>- * @i: the pointer to a memory region wich contains list node data.</div><div class='del'>- * @nxt: the structure containing the list_node</div><div class='add'>+ * @h: the ccan_list_head</div><div class='add'>+ * @i: the pointer to a memory region which contains list node data.</div><div class='add'>+ * @nxt: the structure containing the ccan_list_node</div><div class='ctx'>  * @off: offset(relative to @i) at which list node data resides.</div><div class='ctx'>  *</div><div class='del'>- * For details see `list_for_each_rev_off' and `list_for_each_rev_safe'</div><div class='add'>+ * For details see `ccan_list_for_each_rev_off' and `ccan_list_for_each_rev_safe'</div><div class='ctx'>  * descriptions.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='del'>- *	list_for_each_rev_safe_off(&amp;parent-&gt;children, child,</div><div class='add'>+ *	ccan_list_for_each_rev_safe_off(&amp;parent-&gt;children, child,</div><div class='ctx'>  *		next, offsetof(struct child, list))</div><div class='ctx'>  *		printf("Name: %s\n", child-&gt;name);</div><div class='ctx'>  */</div><div class='del'>-#define list_for_each_rev_safe_off(h, i, nxt, off)                      \</div><div class='del'>-	list_for_each_safe_off_dir_((h),(i),(nxt),(off),prev)</div><div class='add'>+#define ccan_list_for_each_rev_safe_off(h, i, nxt, off)                      \</div><div class='add'>+	ccan_list_for_each_safe_off_dir_((h),(i),(nxt),(off),prev)</div><div class='ctx'> </div><div class='ctx'> /* Other -off variants. */</div><div class='del'>-#define list_entry_off(n, type, off)		\</div><div class='del'>-	((type *)list_node_from_off_((n), (off)))</div><div class='add'>+#define ccan_list_entry_off(n, type, off)		\</div><div class='add'>+	((type *)ccan_list_node_from_off_((n), (off)))</div><div class='ctx'> </div><div class='del'>-#define list_head_off(h, type, off)		\</div><div class='del'>-	((type *)list_head_off((h), (off)))</div><div class='add'>+#define ccan_list_head_off(h, type, off)		\</div><div class='add'>+	((type *)ccan_list_head_off((h), (off)))</div><div class='ctx'> </div><div class='del'>-#define list_tail_off(h, type, off)		\</div><div class='del'>-	((type *)list_tail_((h), (off)))</div><div class='add'>+#define ccan_list_tail_off(h, type, off)		\</div><div class='add'>+	((type *)ccan_list_tail_((h), (off)))</div><div class='ctx'> </div><div class='del'>-#define list_add_off(h, n, off)                 \</div><div class='del'>-	list_add((h), list_node_from_off_((n), (off)))</div><div class='add'>+#define ccan_list_add_off(h, n, off)                 \</div><div class='add'>+	ccan_list_add((h), ccan_list_node_from_off_((n), (off)))</div><div class='ctx'> </div><div class='del'>-#define list_del_off(n, off)                    \</div><div class='del'>-	list_del(list_node_from_off_((n), (off)))</div><div class='add'>+#define ccan_list_del_off(n, off)                    \</div><div class='add'>+	ccan_list_del(ccan_list_node_from_off_((n), (off)))</div><div class='ctx'> </div><div class='del'>-#define list_del_from_off(h, n, off)			\</div><div class='del'>-	list_del_from(h, list_node_from_off_((n), (off)))</div><div class='add'>+#define ccan_list_del_from_off(h, n, off)			\</div><div class='add'>+	ccan_list_del_from(h, ccan_list_node_from_off_((n), (off)))</div><div class='ctx'> </div><div class='ctx'> /* Offset helper functions so we only single-evaluate. */</div><div class='del'>-static inline void *list_node_to_off_(struct list_node *node, size_t off)</div><div class='add'>+static inline void *ccan_list_node_to_off_(struct ccan_list_node *node, size_t off)</div><div class='ctx'> {</div><div class='ctx'> 	return (void *)((char *)node - off);</div><div class='ctx'> }</div><div class='del'>-static inline struct list_node *list_node_from_off_(void *ptr, size_t off)</div><div class='add'>+static inline struct ccan_list_node *ccan_list_node_from_off_(void *ptr, size_t off)</div><div class='ctx'> {</div><div class='del'>-	return (struct list_node *)((char *)ptr + off);</div><div class='add'>+	return (struct ccan_list_node *)((char *)ptr + off);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* Get the offset of the member, but make sure it's a list_node. */</div><div class='del'>-#define list_off_(type, member)					\</div><div class='del'>-	(container_off(type, member) +				\</div><div class='del'>-	 check_type(((type *)0)-&gt;member, struct list_node))</div><div class='add'>+/* Get the offset of the member, but make sure it's a ccan_list_node. */</div><div class='add'>+#define ccan_list_off_(type, member)					\</div><div class='add'>+	(ccan_container_off(type, member) +				\</div><div class='add'>+	 ccan_check_type(((type *)0)-&gt;member, struct ccan_list_node))</div><div class='ctx'> </div><div class='del'>-#define list_off_var_(var, member)			\</div><div class='del'>-	(container_off_var(var, member) +		\</div><div class='del'>-	 check_type(var-&gt;member, struct list_node))</div><div class='add'>+#define ccan_list_off_var_(var, member)			\</div><div class='add'>+	(ccan_container_off_var(var, member) +		\</div><div class='add'>+	 ccan_check_type(var-&gt;member, struct ccan_list_node))</div><div class='ctx'> </div><div class='del'>-#if HAVE_TYPEOF</div><div class='del'>-#define list_typeof(var) typeof(var)</div><div class='add'>+#if defined(HAVE_TYPEOF) &amp;&amp; HAVE_TYPEOF</div><div class='add'>+#define ccan_list_typeof(var) typeof(var)</div><div class='ctx'> #else</div><div class='del'>-#define list_typeof(var) void *</div><div class='add'>+#define ccan_list_typeof(var) void *</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> /* Returns member, or NULL if at end of list. */</div><div class='del'>-static inline void *list_entry_or_null(const struct list_head *h,</div><div class='del'>-				       const struct list_node *n,</div><div class='add'>+static inline void *ccan_list_entry_or_null(const struct ccan_list_head *h,</div><div class='add'>+				       const struct ccan_list_node *n,</div><div class='ctx'> 				       size_t off)</div><div class='ctx'> {</div><div class='ctx'> 	if (n == &amp;h-&gt;n)</div><div class='ctx'> 		return NULL;</div><div class='ctx'> 	return (char *)n - off;</div><div class='ctx'> }</div><div class='add'>+</div><div class='ctx'> #endif /* CCAN_LIST_H */</div><div class='head'>diff --git a/ccan/str/str.h b/ccan/str/str.h<br/>index 9a9da9cd3f..6d4cf62423 100644<br/>--- a/<a href='/ruby.git/tree/ccan/str/str.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ccan/str/str.h</a><br/>+++ b/<a href='/ruby.git/tree/ccan/str/str.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ccan/str/str.h</a></div><div class='hunk'>@@ -2,15 +2,16 @@</div><div class='ctx'> #ifndef CCAN_STR_H</div><div class='ctx'> #define CCAN_STR_H</div><div class='ctx'> /**</div><div class='del'>- * stringify - Turn expression into a string literal</div><div class='add'>+ * ccan_stringify - Turn expression into a string literal</div><div class='ctx'>  * @expr: any C expression</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='ctx'>  *	#define PRINT_COND_IF_FALSE(cond) \</div><div class='del'>- *		((cond) || printf("%s is false!", stringify(cond)))</div><div class='add'>+ *		((cond) || printf("%s is false!", ccan_stringify(cond)))</div><div class='ctx'>  */</div><div class='del'>-#define stringify(expr)		stringify_1(expr)</div><div class='add'>+#define stringify(expr)		ccan_stringify_1(expr)</div><div class='add'>+#define ccan_stringify(expr)	ccan_stringify_1(expr)</div><div class='ctx'> /* Double-indirection required to stringify expansions */</div><div class='del'>-#define stringify_1(expr)	#expr</div><div class='add'>+#define ccan_stringify_1(expr)	#expr</div><div class='ctx'> </div><div class='ctx'> #endif /* CCAN_STR_H */</div><div class='head'>diff --git a/class.c b/class.c<br/>index c1cf6ab051..cf0b7b821f 100644<br/>--- a/<a href='/ruby.git/tree/class.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>class.c</a><br/>+++ b/<a href='/ruby.git/tree/class.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>class.c</a></div><div class='hunk'>@@ -10,116 +10,149 @@</div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='ctx'> /*!</div><div class='del'>- * \defgroup class Classes and their hierarchy.</div><div class='del'>- * \par Terminology</div><div class='del'>- * - class: same as in Ruby.</div><div class='del'>- * - singleton class: class for a particular object</div><div class='del'>- * - eigenclass: = singleton class</div><div class='del'>- * - metaclass: class of a class. metaclass is a kind of singleton class.</div><div class='del'>- * - metametaclass: class of a metaclass.</div><div class='del'>- * - meta^(n)-class: class of a meta^(n-1)-class.</div><div class='del'>- * - attached object: A singleton class knows its unique instance.</div><div class='del'>- *   The instance is called the attached object for the singleton class.</div><div class='add'>+ * \addtogroup class</div><div class='ctx'>  * \{</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;ctype.h&gt;</div><div class='add'>+</div><div class='add'>+#include "constant.h"</div><div class='add'>+#include "debug_counter.h"</div><div class='add'>+#include "id_table.h"</div><div class='ctx'> #include "internal.h"</div><div class='add'>+#include "internal/class.h"</div><div class='add'>+#include "internal/eval.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/string.h"</div><div class='add'>+#include "internal/variable.h"</div><div class='ctx'> #include "ruby/st.h"</div><div class='del'>-#include "constant.h"</div><div class='ctx'> #include "vm_core.h"</div><div class='del'>-#include "id_table.h"</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='ctx'> </div><div class='ctx'> #define id_attached id__attached__</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_class_subclass_add(VALUE super, VALUE klass)</div><div class='add'>+#define METACLASS_OF(k) RBASIC(k)-&gt;klass</div><div class='add'>+#define SET_METACLASS_OF(k, cls) RBASIC_SET_CLASS(k, cls)</div><div class='add'>+</div><div class='add'>+RUBY_EXTERN rb_serial_t ruby_vm_global_cvar_state;</div><div class='add'>+</div><div class='add'>+static rb_subclass_entry_t *</div><div class='add'>+push_subclass_entry_to_list(VALUE super, VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     rb_subclass_entry_t *entry, *head;</div><div class='ctx'> </div><div class='del'>-    if (super &amp;&amp; super != Qundef) {</div><div class='del'>-	entry = ALLOC(rb_subclass_entry_t);</div><div class='del'>-	entry-&gt;klass = klass;</div><div class='del'>-	entry-&gt;next = NULL;</div><div class='add'>+    entry = ZALLOC(rb_subclass_entry_t);</div><div class='add'>+    entry-&gt;klass = klass;</div><div class='add'>+</div><div class='add'>+    head = RCLASS_SUBCLASSES(super);</div><div class='add'>+    if (!head) {</div><div class='add'>+        head = ZALLOC(rb_subclass_entry_t);</div><div class='add'>+        RCLASS_SUBCLASSES(super) = head;</div><div class='add'>+    }</div><div class='add'>+    entry-&gt;next = head-&gt;next;</div><div class='add'>+    entry-&gt;prev = head;</div><div class='add'>+</div><div class='add'>+    if (head-&gt;next) {</div><div class='add'>+        head-&gt;next-&gt;prev = entry;</div><div class='add'>+    }</div><div class='add'>+    head-&gt;next = entry;</div><div class='ctx'> </div><div class='del'>-	head = RCLASS_EXT(super)-&gt;subclasses;</div><div class='del'>-	if (head) {</div><div class='del'>-	    entry-&gt;next = head;</div><div class='del'>-	    RCLASS_EXT(head-&gt;klass)-&gt;parent_subclasses = &amp;entry-&gt;next;</div><div class='del'>-	}</div><div class='add'>+    return entry;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-	RCLASS_EXT(super)-&gt;subclasses = entry;</div><div class='del'>-	RCLASS_EXT(klass)-&gt;parent_subclasses = &amp;RCLASS_EXT(super)-&gt;subclasses;</div><div class='add'>+void</div><div class='add'>+rb_class_subclass_add(VALUE super, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    if (super &amp;&amp; !UNDEF_P(super)) {</div><div class='add'>+        rb_subclass_entry_t *entry = push_subclass_entry_to_list(super, klass);</div><div class='add'>+        RCLASS_SUBCLASS_ENTRY(klass) = entry;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> rb_module_add_to_subclasses_list(VALUE module, VALUE iclass)</div><div class='ctx'> {</div><div class='del'>-    rb_subclass_entry_t *entry, *head;</div><div class='add'>+    rb_subclass_entry_t *entry = push_subclass_entry_to_list(module, iclass);</div><div class='add'>+    RCLASS_MODULE_SUBCLASS_ENTRY(iclass) = entry;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    entry = ALLOC(rb_subclass_entry_t);</div><div class='del'>-    entry-&gt;klass = iclass;</div><div class='del'>-    entry-&gt;next = NULL;</div><div class='add'>+void</div><div class='add'>+rb_class_remove_subclass_head(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_subclass_entry_t *head = RCLASS_SUBCLASSES(klass);</div><div class='ctx'> </div><div class='del'>-    head = RCLASS_EXT(module)-&gt;subclasses;</div><div class='ctx'>     if (head) {</div><div class='del'>-	entry-&gt;next = head;</div><div class='del'>-	RCLASS_EXT(head-&gt;klass)-&gt;module_subclasses = &amp;entry-&gt;next;</div><div class='add'>+        if (head-&gt;next) {</div><div class='add'>+            head-&gt;next-&gt;prev = NULL;</div><div class='add'>+        }</div><div class='add'>+        RCLASS_SUBCLASSES(klass) = NULL;</div><div class='add'>+        xfree(head);</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    RCLASS_EXT(module)-&gt;subclasses = entry;</div><div class='del'>-    RCLASS_EXT(iclass)-&gt;module_subclasses = &amp;RCLASS_EXT(module)-&gt;subclasses;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_class_remove_from_super_subclasses(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    rb_subclass_entry_t *entry;</div><div class='add'>+    rb_subclass_entry_t *entry = RCLASS_SUBCLASS_ENTRY(klass);</div><div class='ctx'> </div><div class='del'>-    if (RCLASS_EXT(klass)-&gt;parent_subclasses) {</div><div class='del'>-	entry = *RCLASS_EXT(klass)-&gt;parent_subclasses;</div><div class='add'>+    if (entry) {</div><div class='add'>+        rb_subclass_entry_t *prev = entry-&gt;prev, *next = entry-&gt;next;</div><div class='ctx'> </div><div class='del'>-	*RCLASS_EXT(klass)-&gt;parent_subclasses = entry-&gt;next;</div><div class='del'>-	if (entry-&gt;next) {</div><div class='del'>-	    RCLASS_EXT(entry-&gt;next-&gt;klass)-&gt;parent_subclasses = RCLASS_EXT(klass)-&gt;parent_subclasses;</div><div class='del'>-	}</div><div class='del'>-	xfree(entry);</div><div class='add'>+        if (prev) {</div><div class='add'>+            prev-&gt;next = next;</div><div class='add'>+        }</div><div class='add'>+        if (next) {</div><div class='add'>+            next-&gt;prev = prev;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        xfree(entry);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    RCLASS_EXT(klass)-&gt;parent_subclasses = NULL;</div><div class='add'>+    RCLASS_SUBCLASS_ENTRY(klass) = NULL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_class_remove_from_module_subclasses(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    rb_subclass_entry_t *entry;</div><div class='add'>+    rb_subclass_entry_t *entry = RCLASS_MODULE_SUBCLASS_ENTRY(klass);</div><div class='ctx'> </div><div class='del'>-    if (RCLASS_EXT(klass)-&gt;module_subclasses) {</div><div class='del'>-	entry = *RCLASS_EXT(klass)-&gt;module_subclasses;</div><div class='del'>-	*RCLASS_EXT(klass)-&gt;module_subclasses = entry-&gt;next;</div><div class='add'>+    if (entry) {</div><div class='add'>+        rb_subclass_entry_t *prev = entry-&gt;prev, *next = entry-&gt;next;</div><div class='ctx'> </div><div class='del'>-	if (entry-&gt;next) {</div><div class='del'>-	    RCLASS_EXT(entry-&gt;next-&gt;klass)-&gt;module_subclasses = RCLASS_EXT(klass)-&gt;module_subclasses;</div><div class='del'>-	}</div><div class='add'>+        if (prev) {</div><div class='add'>+            prev-&gt;next = next;</div><div class='add'>+        }</div><div class='add'>+        if (next) {</div><div class='add'>+            next-&gt;prev = prev;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	xfree(entry);</div><div class='add'>+        xfree(entry);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    RCLASS_EXT(klass)-&gt;module_subclasses = NULL;</div><div class='add'>+    RCLASS_MODULE_SUBCLASS_ENTRY(klass) = NULL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_class_foreach_subclass(VALUE klass, void (*f)(VALUE, VALUE), VALUE arg)</div><div class='ctx'> {</div><div class='del'>-    rb_subclass_entry_t *cur = RCLASS_EXT(klass)-&gt;subclasses;</div><div class='add'>+    // RCLASS_SUBCLASSES should always point to our head element which has NULL klass</div><div class='add'>+    rb_subclass_entry_t *cur = RCLASS_SUBCLASSES(klass);</div><div class='add'>+    // if we have a subclasses list, then the head is a placeholder with no valid</div><div class='add'>+    // class. So ignore it and use the next element in the list (if one exists)</div><div class='add'>+    if (cur) {</div><div class='add'>+        RUBY_ASSERT(!cur-&gt;klass);</div><div class='add'>+        cur = cur-&gt;next;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     /* do not be tempted to simplify this loop into a for loop, the order of</div><div class='ctx'>        operations is important here if `f` modifies the linked list */</div><div class='ctx'>     while (cur) {</div><div class='del'>-	VALUE curklass = cur-&gt;klass;</div><div class='del'>-	cur = cur-&gt;next;</div><div class='del'>-	f(curklass, arg);</div><div class='add'>+        VALUE curklass = cur-&gt;klass;</div><div class='add'>+        cur = cur-&gt;next;</div><div class='add'>+        // do not trigger GC during f, otherwise the cur will become</div><div class='add'>+        // a dangling pointer if the subclass is collected</div><div class='add'>+        f(curklass, arg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -162,22 +195,35 @@ rb_class_detach_module_subclasses(VALUE klass)</div><div class='ctx'> static VALUE</div><div class='ctx'> class_alloc(VALUE flags, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    NEWOBJ_OF(obj, struct RClass, klass, (flags &amp; T_MASK) | FL_PROMOTED1 /* start from age == 2 */ | (RGENGC_WB_PROTECTED_CLASS ? FL_WB_PROTECTED : 0));</div><div class='add'>+    size_t alloc_size = sizeof(struct RClass);</div><div class='add'>+</div><div class='add'>+#if RCLASS_EXT_EMBEDDED</div><div class='add'>+    alloc_size += sizeof(rb_classext_t);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    flags &amp;= T_MASK;</div><div class='add'>+    flags |= FL_PROMOTED1 /* start from age == 2 */;</div><div class='add'>+    if (RGENGC_WB_PROTECTED_CLASS) flags |= FL_WB_PROTECTED;</div><div class='add'>+    RVARGC_NEWOBJ_OF(obj, struct RClass, klass, flags, alloc_size);</div><div class='add'>+</div><div class='add'>+#if RCLASS_EXT_EMBEDDED</div><div class='add'>+    memset(RCLASS_EXT(obj), 0, sizeof(rb_classext_t));</div><div class='add'>+#else</div><div class='ctx'>     obj-&gt;ptr = ZALLOC(rb_classext_t);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     /* ZALLOC</div><div class='del'>-      RCLASS_IV_TBL(obj) = 0;</div><div class='ctx'>       RCLASS_CONST_TBL(obj) = 0;</div><div class='ctx'>       RCLASS_M_TBL(obj) = 0;</div><div class='ctx'>       RCLASS_IV_INDEX_TBL(obj) = 0;</div><div class='ctx'>       RCLASS_SET_SUPER((VALUE)obj, 0);</div><div class='del'>-      RCLASS_EXT(obj)-&gt;subclasses = NULL;</div><div class='del'>-      RCLASS_EXT(obj)-&gt;parent_subclasses = NULL;</div><div class='del'>-      RCLASS_EXT(obj)-&gt;module_subclasses = NULL;</div><div class='add'>+      RCLASS_SUBCLASSES(obj) = NULL;</div><div class='add'>+      RCLASS_PARENT_SUBCLASSES(obj) = NULL;</div><div class='add'>+      RCLASS_MODULE_SUBCLASSES(obj) = NULL;</div><div class='ctx'>      */</div><div class='ctx'>     RCLASS_SET_ORIGIN((VALUE)obj, (VALUE)obj);</div><div class='del'>-    RCLASS_SERIAL(obj) = rb_next_class_serial();</div><div class='del'>-    RCLASS_REFINED_CLASS(obj) = Qnil;</div><div class='del'>-    RCLASS_EXT(obj)-&gt;allocator = 0;</div><div class='add'>+    RB_OBJ_WRITE(obj, &amp;RCLASS_REFINED_CLASS(obj), Qnil);</div><div class='add'>+    RCLASS_ALLOCATOR(obj) = 0;</div><div class='ctx'> </div><div class='ctx'>     return (VALUE)obj;</div><div class='ctx'> }</div><div class='hunk'>@@ -205,57 +251,106 @@ rb_class_boot(VALUE super)</div><div class='ctx'>     RCLASS_SET_SUPER(klass, super);</div><div class='ctx'>     RCLASS_M_TBL_INIT(klass);</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(klass, super);</div><div class='ctx'>     return (VALUE)klass;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE *</div><div class='add'>+class_superclasses_including_self(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    if (FL_TEST_RAW(klass, RCLASS_SUPERCLASSES_INCLUDE_SELF))</div><div class='add'>+        return RCLASS_SUPERCLASSES(klass);</div><div class='add'>+</div><div class='add'>+    size_t depth = RCLASS_SUPERCLASS_DEPTH(klass);</div><div class='add'>+    VALUE *superclasses = xmalloc(sizeof(VALUE) * (depth + 1));</div><div class='add'>+    if (depth &gt; 0)</div><div class='add'>+        memcpy(superclasses, RCLASS_SUPERCLASSES(klass), sizeof(VALUE) * depth);</div><div class='add'>+    superclasses[depth] = klass;</div><div class='add'>+</div><div class='add'>+    RCLASS_SUPERCLASSES(klass) = superclasses;</div><div class='add'>+    FL_SET_RAW(klass, RCLASS_SUPERCLASSES_INCLUDE_SELF);</div><div class='add'>+    return superclasses;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_class_update_superclasses(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE super = RCLASS_SUPER(klass);</div><div class='add'>+</div><div class='add'>+    if (!RB_TYPE_P(klass, T_CLASS)) return;</div><div class='add'>+    if (UNDEF_P(super)) return;</div><div class='add'>+</div><div class='add'>+    // If the superclass array is already built</div><div class='add'>+    if (RCLASS_SUPERCLASSES(klass))</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+    // find the proper superclass</div><div class='add'>+    while (super != Qfalse &amp;&amp; !RB_TYPE_P(super, T_CLASS)) {</div><div class='add'>+        super = RCLASS_SUPER(super);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // For BasicObject and uninitialized classes, depth=0 and ary=NULL</div><div class='add'>+    if (super == Qfalse)</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+    // Sometimes superclasses are set before the full ancestry tree is built</div><div class='add'>+    // This happens during metaclass construction</div><div class='add'>+    if (super != rb_cBasicObject &amp;&amp; !RCLASS_SUPERCLASS_DEPTH(super)) {</div><div class='add'>+        rb_class_update_superclasses(super);</div><div class='add'>+</div><div class='add'>+        // If it is still unset we need to try later</div><div class='add'>+        if (!RCLASS_SUPERCLASS_DEPTH(super))</div><div class='add'>+            return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RCLASS_SUPERCLASSES(klass) = class_superclasses_including_self(super);</div><div class='add'>+    RCLASS_SUPERCLASS_DEPTH(klass) = RCLASS_SUPERCLASS_DEPTH(super) + 1;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Ensures a class can be derived from super.</div><div class='del'>- *</div><div class='del'>- * \param super a reference to an object.</div><div class='del'>- * \exception TypeError if \a super is not a Class or \a super is a singleton class.</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> rb_check_inheritable(VALUE super)</div><div class='ctx'> {</div><div class='ctx'>     if (!RB_TYPE_P(super, T_CLASS)) {</div><div class='del'>-	rb_raise(rb_eTypeError, "superclass must be a Class (%"PRIsVALUE" given)",</div><div class='del'>-		 rb_obj_class(super));</div><div class='add'>+        rb_raise(rb_eTypeError, "superclass must be an instance of Class (given an instance of %"PRIsVALUE")",</div><div class='add'>+                 rb_obj_class(super));</div><div class='ctx'>     }</div><div class='ctx'>     if (RBASIC(super)-&gt;flags &amp; FL_SINGLETON) {</div><div class='del'>-	rb_raise(rb_eTypeError, "can't make subclass of singleton class");</div><div class='add'>+        rb_raise(rb_eTypeError, "can't make subclass of singleton class");</div><div class='ctx'>     }</div><div class='ctx'>     if (super == rb_cClass) {</div><div class='del'>-	rb_raise(rb_eTypeError, "can't make subclass of Class");</div><div class='add'>+        rb_raise(rb_eTypeError, "can't make subclass of Class");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-/*!</div><div class='del'>- * Creates a new class.</div><div class='del'>- * \param super     a class from which the new class derives.</div><div class='del'>- * \exception TypeError \a super is not inheritable.</div><div class='del'>- * \exception TypeError \a super is the Class class.</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_class_new(VALUE super)</div><div class='ctx'> {</div><div class='ctx'>     Check_Type(super, T_CLASS);</div><div class='ctx'>     rb_check_inheritable(super);</div><div class='del'>-    return rb_class_boot(super);</div><div class='add'>+    VALUE klass = rb_class_boot(super);</div><div class='add'>+</div><div class='add'>+    if (super != rb_cObject &amp;&amp; super != rb_cBasicObject) {</div><div class='add'>+        RCLASS_EXT(klass)-&gt;max_iv_count = RCLASS_EXT(super)-&gt;max_iv_count;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return klass;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_class_s_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return rb_class_boot(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> clone_method(VALUE old_klass, VALUE new_klass, ID mid, const rb_method_entry_t *me)</div><div class='ctx'> {</div><div class='ctx'>     if (me-&gt;def-&gt;type == VM_METHOD_TYPE_ISEQ) {</div><div class='del'>-	rb_cref_t *new_cref;</div><div class='del'>-	rb_vm_rewrite_cref(me-&gt;def-&gt;body.iseq.cref, old_klass, new_klass, &amp;new_cref);</div><div class='del'>-	rb_add_method_iseq(new_klass, mid, me-&gt;def-&gt;body.iseq.iseqptr, new_cref, METHOD_ENTRY_VISI(me));</div><div class='add'>+        rb_cref_t *new_cref;</div><div class='add'>+        rb_vm_rewrite_cref(me-&gt;def-&gt;body.iseq.cref, old_klass, new_klass, &amp;new_cref);</div><div class='add'>+        rb_add_method_iseq(new_klass, mid, me-&gt;def-&gt;body.iseq.iseqptr, new_cref, METHOD_ENTRY_VISI(me));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_method_entry_set(new_klass, mid, me, METHOD_ENTRY_VISI(me));</div><div class='add'>+        rb_method_entry_set(new_klass, mid, me, METHOD_ENTRY_VISI(me));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -299,13 +394,102 @@ static void</div><div class='ctx'> class_init_copy_check(VALUE clone, VALUE orig)</div><div class='ctx'> {</div><div class='ctx'>     if (orig == rb_cBasicObject) {</div><div class='del'>-	rb_raise(rb_eTypeError, "can't copy the root class");</div><div class='add'>+        rb_raise(rb_eTypeError, "can't copy the root class");</div><div class='ctx'>     }</div><div class='ctx'>     if (RCLASS_SUPER(clone) != 0 || clone == rb_cBasicObject) {</div><div class='del'>-	rb_raise(rb_eTypeError, "already initialized class");</div><div class='add'>+        rb_raise(rb_eTypeError, "already initialized class");</div><div class='ctx'>     }</div><div class='ctx'>     if (FL_TEST(orig, FL_SINGLETON)) {</div><div class='del'>-	rb_raise(rb_eTypeError, "can't copy singleton class");</div><div class='add'>+        rb_raise(rb_eTypeError, "can't copy singleton class");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct cvc_table_copy_ctx {</div><div class='add'>+    VALUE clone;</div><div class='add'>+    struct rb_id_table * new_table;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+cvc_table_copy(ID id, VALUE val, void *data) {</div><div class='add'>+    struct cvc_table_copy_ctx *ctx = (struct cvc_table_copy_ctx *)data;</div><div class='add'>+    struct rb_cvar_class_tbl_entry * orig_entry;</div><div class='add'>+    orig_entry = (struct rb_cvar_class_tbl_entry *)val;</div><div class='add'>+</div><div class='add'>+    struct rb_cvar_class_tbl_entry *ent;</div><div class='add'>+</div><div class='add'>+    ent = ALLOC(struct rb_cvar_class_tbl_entry);</div><div class='add'>+    ent-&gt;class_value = ctx-&gt;clone;</div><div class='add'>+    ent-&gt;cref = orig_entry-&gt;cref;</div><div class='add'>+    ent-&gt;global_cvar_state = orig_entry-&gt;global_cvar_state;</div><div class='add'>+    rb_id_table_insert(ctx-&gt;new_table, id, (VALUE)ent);</div><div class='add'>+</div><div class='add'>+    RB_OBJ_WRITTEN(ctx-&gt;clone, Qundef, ent-&gt;cref);</div><div class='add'>+</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+copy_tables(VALUE clone, VALUE orig)</div><div class='add'>+{</div><div class='add'>+    if (RCLASS_CONST_TBL(clone)) {</div><div class='add'>+        rb_free_const_table(RCLASS_CONST_TBL(clone));</div><div class='add'>+        RCLASS_CONST_TBL(clone) = 0;</div><div class='add'>+    }</div><div class='add'>+    if (RCLASS_CVC_TBL(orig)) {</div><div class='add'>+        struct rb_id_table *rb_cvc_tbl = RCLASS_CVC_TBL(orig);</div><div class='add'>+        struct rb_id_table *rb_cvc_tbl_dup = rb_id_table_create(rb_id_table_size(rb_cvc_tbl));</div><div class='add'>+</div><div class='add'>+        struct cvc_table_copy_ctx ctx;</div><div class='add'>+        ctx.clone = clone;</div><div class='add'>+        ctx.new_table = rb_cvc_tbl_dup;</div><div class='add'>+        rb_id_table_foreach(rb_cvc_tbl, cvc_table_copy, &amp;ctx);</div><div class='add'>+        RCLASS_CVC_TBL(clone) = rb_cvc_tbl_dup;</div><div class='add'>+    }</div><div class='add'>+    rb_id_table_free(RCLASS_M_TBL(clone));</div><div class='add'>+    RCLASS_M_TBL(clone) = 0;</div><div class='add'>+    if (!RB_TYPE_P(clone, T_ICLASS)) {</div><div class='add'>+        st_data_t id;</div><div class='add'>+</div><div class='add'>+        rb_iv_tbl_copy(clone, orig);</div><div class='add'>+        CONST_ID(id, "__tmp_classpath__");</div><div class='add'>+        rb_attr_delete(clone, id);</div><div class='add'>+        CONST_ID(id, "__classpath__");</div><div class='add'>+        rb_attr_delete(clone, id);</div><div class='add'>+    }</div><div class='add'>+    if (RCLASS_CONST_TBL(orig)) {</div><div class='add'>+        struct clone_const_arg arg;</div><div class='add'>+</div><div class='add'>+        arg.tbl = RCLASS_CONST_TBL(clone) = rb_id_table_create(0);</div><div class='add'>+        arg.klass = clone;</div><div class='add'>+        rb_id_table_foreach(RCLASS_CONST_TBL(orig), clone_const_i, &amp;arg);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool ensure_origin(VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * If this flag is set, that module is allocated but not initialized yet.</div><div class='add'>+ */</div><div class='add'>+enum {RMODULE_ALLOCATED_BUT_NOT_INITIALIZED = RUBY_FL_USER5};</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+RMODULE_UNINITIALIZED(VALUE module)</div><div class='add'>+{</div><div class='add'>+    return FL_TEST_RAW(module, RMODULE_ALLOCATED_BUT_NOT_INITIALIZED);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_module_set_initialized(VALUE mod)</div><div class='add'>+{</div><div class='add'>+    FL_UNSET_RAW(mod, RMODULE_ALLOCATED_BUT_NOT_INITIALIZED);</div><div class='add'>+    /* no more re-initialization */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_module_check_initializable(VALUE mod)</div><div class='add'>+{</div><div class='add'>+    if (!RMODULE_UNINITIALIZED(mod)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "already initialized module");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -313,49 +497,107 @@ class_init_copy_check(VALUE clone, VALUE orig)</div><div class='ctx'> VALUE</div><div class='ctx'> rb_mod_init_copy(VALUE clone, VALUE orig)</div><div class='ctx'> {</div><div class='del'>-    if (RB_TYPE_P(clone, T_CLASS)) {</div><div class='del'>-	class_init_copy_check(clone, orig);</div><div class='add'>+    switch (BUILTIN_TYPE(clone)) {</div><div class='add'>+      case T_CLASS:</div><div class='add'>+      case T_ICLASS:</div><div class='add'>+        class_init_copy_check(clone, orig);</div><div class='add'>+        break;</div><div class='add'>+      case T_MODULE:</div><div class='add'>+        rb_module_check_initializable(clone);</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'>     if (!OBJ_INIT_COPY(clone, orig)) return clone;</div><div class='add'>+</div><div class='add'>+    /* cloned flag is refer at constant inline cache</div><div class='add'>+     * see vm_get_const_key_cref() in vm_insnhelper.c</div><div class='add'>+     */</div><div class='add'>+    FL_SET(clone, RCLASS_CLONED);</div><div class='add'>+    FL_SET(orig , RCLASS_CLONED);</div><div class='add'>+</div><div class='ctx'>     if (!FL_TEST(CLASS_OF(clone), FL_SINGLETON)) {</div><div class='del'>-	RBASIC_SET_CLASS(clone, rb_singleton_class_clone(orig));</div><div class='del'>-	rb_singleton_class_attached(RBASIC(clone)-&gt;klass, (VALUE)clone);</div><div class='del'>-    }</div><div class='del'>-    RCLASS_SET_SUPER(clone, RCLASS_SUPER(orig));</div><div class='del'>-    RCLASS_EXT(clone)-&gt;allocator = RCLASS_EXT(orig)-&gt;allocator;</div><div class='del'>-    if (RCLASS_IV_TBL(clone)) {</div><div class='del'>-	st_free_table(RCLASS_IV_TBL(clone));</div><div class='del'>-	RCLASS_IV_TBL(clone) = 0;</div><div class='add'>+        RBASIC_SET_CLASS(clone, rb_singleton_class_clone(orig));</div><div class='add'>+        rb_singleton_class_attached(METACLASS_OF(clone), (VALUE)clone);</div><div class='ctx'>     }</div><div class='del'>-    if (RCLASS_CONST_TBL(clone)) {</div><div class='del'>-	rb_free_const_table(RCLASS_CONST_TBL(clone));</div><div class='del'>-	RCLASS_CONST_TBL(clone) = 0;</div><div class='add'>+    RCLASS_ALLOCATOR(clone) = RCLASS_ALLOCATOR(orig);</div><div class='add'>+    copy_tables(clone, orig);</div><div class='add'>+    if (RCLASS_M_TBL(orig)) {</div><div class='add'>+        struct clone_method_arg arg;</div><div class='add'>+        arg.old_klass = orig;</div><div class='add'>+        arg.new_klass = clone;</div><div class='add'>+        RCLASS_M_TBL_INIT(clone);</div><div class='add'>+        rb_id_table_foreach(RCLASS_M_TBL(orig), clone_method_i, &amp;arg);</div><div class='ctx'>     }</div><div class='del'>-    RCLASS_M_TBL(clone) = 0;</div><div class='del'>-    if (RCLASS_IV_TBL(orig)) {</div><div class='del'>-	st_data_t id;</div><div class='ctx'> </div><div class='del'>-	RCLASS_IV_TBL(clone) = rb_st_copy(clone, RCLASS_IV_TBL(orig));</div><div class='del'>-	CONST_ID(id, "__tmp_classpath__");</div><div class='del'>-	st_delete(RCLASS_IV_TBL(clone), &amp;id, 0);</div><div class='del'>-	CONST_ID(id, "__classpath__");</div><div class='del'>-	st_delete(RCLASS_IV_TBL(clone), &amp;id, 0);</div><div class='del'>-	CONST_ID(id, "__classid__");</div><div class='del'>-	st_delete(RCLASS_IV_TBL(clone), &amp;id, 0);</div><div class='add'>+    if (RCLASS_ORIGIN(orig) == orig) {</div><div class='add'>+        RCLASS_SET_SUPER(clone, RCLASS_SUPER(orig));</div><div class='ctx'>     }</div><div class='del'>-    if (RCLASS_CONST_TBL(orig)) {</div><div class='del'>-	struct clone_const_arg arg;</div><div class='add'>+    else {</div><div class='add'>+        VALUE p = RCLASS_SUPER(orig);</div><div class='add'>+        VALUE orig_origin = RCLASS_ORIGIN(orig);</div><div class='add'>+        VALUE prev_clone_p = clone;</div><div class='add'>+        VALUE origin_stack = rb_ary_hidden_new(2);</div><div class='add'>+        VALUE origin[2];</div><div class='add'>+        VALUE clone_p = 0;</div><div class='add'>+        long origin_len;</div><div class='add'>+        int add_subclass;</div><div class='add'>+        VALUE clone_origin;</div><div class='add'>+</div><div class='add'>+        ensure_origin(clone);</div><div class='add'>+        clone_origin = RCLASS_ORIGIN(clone);</div><div class='add'>+</div><div class='add'>+        while (p &amp;&amp; p != orig_origin) {</div><div class='add'>+            if (BUILTIN_TYPE(p) != T_ICLASS) {</div><div class='add'>+                rb_bug("non iclass between module/class and origin");</div><div class='add'>+            }</div><div class='add'>+            clone_p = class_alloc(RBASIC(p)-&gt;flags, METACLASS_OF(p));</div><div class='add'>+            RCLASS_SET_SUPER(prev_clone_p, clone_p);</div><div class='add'>+            prev_clone_p = clone_p;</div><div class='add'>+            RCLASS_M_TBL(clone_p) = RCLASS_M_TBL(p);</div><div class='add'>+            RCLASS_CONST_TBL(clone_p) = RCLASS_CONST_TBL(p);</div><div class='add'>+            RCLASS_ALLOCATOR(clone_p) = RCLASS_ALLOCATOR(p);</div><div class='add'>+            if (RB_TYPE_P(clone, T_CLASS)) {</div><div class='add'>+                RCLASS_SET_INCLUDER(clone_p, clone);</div><div class='add'>+            }</div><div class='add'>+            add_subclass = TRUE;</div><div class='add'>+            if (p != RCLASS_ORIGIN(p)) {</div><div class='add'>+                origin[0] = clone_p;</div><div class='add'>+                origin[1] = RCLASS_ORIGIN(p);</div><div class='add'>+                rb_ary_cat(origin_stack, origin, 2);</div><div class='add'>+            }</div><div class='add'>+            else if ((origin_len = RARRAY_LEN(origin_stack)) &gt; 1 &amp;&amp;</div><div class='add'>+                     RARRAY_AREF(origin_stack, origin_len - 1) == p) {</div><div class='add'>+                RCLASS_SET_ORIGIN(RARRAY_AREF(origin_stack, (origin_len -= 2)), clone_p);</div><div class='add'>+                RICLASS_SET_ORIGIN_SHARED_MTBL(clone_p);</div><div class='add'>+                rb_ary_resize(origin_stack, origin_len);</div><div class='add'>+                add_subclass = FALSE;</div><div class='add'>+            }</div><div class='add'>+            if (add_subclass) {</div><div class='add'>+                rb_module_add_to_subclasses_list(METACLASS_OF(p), clone_p);</div><div class='add'>+            }</div><div class='add'>+            p = RCLASS_SUPER(p);</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	arg.tbl = RCLASS_CONST_TBL(clone) = rb_id_table_create(0);</div><div class='del'>-	arg.klass = clone;</div><div class='del'>-	rb_id_table_foreach(RCLASS_CONST_TBL(orig), clone_const_i, &amp;arg);</div><div class='del'>-    }</div><div class='del'>-    if (RCLASS_M_TBL(orig)) {</div><div class='del'>-	struct clone_method_arg arg;</div><div class='del'>-	arg.old_klass = orig;</div><div class='del'>-	arg.new_klass = clone;</div><div class='del'>-	RCLASS_M_TBL_INIT(clone);</div><div class='del'>-	rb_id_table_foreach(RCLASS_M_TBL(orig), clone_method_i, &amp;arg);</div><div class='add'>+        if (p == orig_origin) {</div><div class='add'>+            if (clone_p) {</div><div class='add'>+                RCLASS_SET_SUPER(clone_p, clone_origin);</div><div class='add'>+                RCLASS_SET_SUPER(clone_origin, RCLASS_SUPER(orig_origin));</div><div class='add'>+            }</div><div class='add'>+            copy_tables(clone_origin, orig_origin);</div><div class='add'>+            if (RCLASS_M_TBL(orig_origin)) {</div><div class='add'>+                struct clone_method_arg arg;</div><div class='add'>+                arg.old_klass = orig;</div><div class='add'>+                arg.new_klass = clone;</div><div class='add'>+                RCLASS_M_TBL_INIT(clone_origin);</div><div class='add'>+                rb_id_table_foreach(RCLASS_M_TBL(orig_origin), clone_method_i, &amp;arg);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_bug("no origin for class that has origin");</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        rb_class_update_superclasses(clone);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return clone;</div><div class='hunk'>@@ -367,72 +609,73 @@ rb_singleton_class_clone(VALUE obj)</div><div class='ctx'>     return rb_singleton_class_clone_and_attach(obj, Qundef);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+// Clone and return the singleton class of `obj` if it has been created and is attached to `obj`.</div><div class='ctx'> VALUE</div><div class='ctx'> rb_singleton_class_clone_and_attach(VALUE obj, VALUE attach)</div><div class='ctx'> {</div><div class='del'>-    const VALUE klass = RBASIC(obj)-&gt;klass;</div><div class='add'>+    const VALUE klass = METACLASS_OF(obj);</div><div class='ctx'> </div><div class='del'>-    if (!FL_TEST(klass, FL_SINGLETON))</div><div class='del'>-	return klass;</div><div class='add'>+    // Note that `rb_singleton_class()` can create situations where `klass` is</div><div class='add'>+    // attached to an object other than `obj`. In which case `obj` does not have</div><div class='add'>+    // a material singleton class attached yet and there is no singleton class</div><div class='add'>+    // to clone.</div><div class='add'>+    if (!(FL_TEST(klass, FL_SINGLETON) &amp;&amp; rb_attr_get(klass, id_attached) == obj)) {</div><div class='add'>+        // nothing to clone</div><div class='add'>+        return klass;</div><div class='add'>+    }</div><div class='ctx'>     else {</div><div class='del'>-	/* copy singleton(unnamed) class */</div><div class='del'>-	VALUE clone = class_alloc(RBASIC(klass)-&gt;flags, 0);</div><div class='del'>-</div><div class='del'>-	if (BUILTIN_TYPE(obj) == T_CLASS) {</div><div class='del'>-	    RBASIC_SET_CLASS(clone, clone);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    RBASIC_SET_CLASS(clone, rb_singleton_class_clone(klass));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	RCLASS_SET_SUPER(clone, RCLASS_SUPER(klass));</div><div class='del'>-	RCLASS_EXT(clone)-&gt;allocator = RCLASS_EXT(klass)-&gt;allocator;</div><div class='del'>-	if (RCLASS_IV_TBL(klass)) {</div><div class='del'>-	    RCLASS_IV_TBL(clone) = rb_st_copy(clone, RCLASS_IV_TBL(klass));</div><div class='del'>-	}</div><div class='del'>-	if (RCLASS_CONST_TBL(klass)) {</div><div class='del'>-	    struct clone_const_arg arg;</div><div class='del'>-	    arg.tbl = RCLASS_CONST_TBL(clone) = rb_id_table_create(0);</div><div class='del'>-	    arg.klass = clone;</div><div class='del'>-	    rb_id_table_foreach(RCLASS_CONST_TBL(klass), clone_const_i, &amp;arg);</div><div class='del'>-	}</div><div class='del'>-	if (attach != Qundef) {</div><div class='del'>-	    rb_singleton_class_attached(clone, attach);</div><div class='del'>-	}</div><div class='del'>-	RCLASS_M_TBL_INIT(clone);</div><div class='del'>-	{</div><div class='del'>-	    struct clone_method_arg arg;</div><div class='del'>-	    arg.old_klass = klass;</div><div class='del'>-	    arg.new_klass = clone;</div><div class='del'>-	    rb_id_table_foreach(RCLASS_M_TBL(klass), clone_method_i, &amp;arg);</div><div class='del'>-	}</div><div class='del'>-	rb_singleton_class_attached(RBASIC(clone)-&gt;klass, clone);</div><div class='del'>-	FL_SET(clone, FL_SINGLETON);</div><div class='del'>-</div><div class='del'>-	return clone;</div><div class='add'>+        /* copy singleton(unnamed) class */</div><div class='add'>+        bool klass_of_clone_is_new;</div><div class='add'>+        VALUE clone = class_alloc(RBASIC(klass)-&gt;flags, 0);</div><div class='add'>+</div><div class='add'>+        if (BUILTIN_TYPE(obj) == T_CLASS) {</div><div class='add'>+            klass_of_clone_is_new = true;</div><div class='add'>+            RBASIC_SET_CLASS(clone, clone);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            VALUE klass_metaclass_clone = rb_singleton_class_clone(klass);</div><div class='add'>+            // When `METACLASS_OF(klass) == klass_metaclass_clone`, it means the</div><div class='add'>+            // recursive call did not clone `METACLASS_OF(klass)`.</div><div class='add'>+            klass_of_clone_is_new = (METACLASS_OF(klass) != klass_metaclass_clone);</div><div class='add'>+            RBASIC_SET_CLASS(clone, klass_metaclass_clone);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        RCLASS_SET_SUPER(clone, RCLASS_SUPER(klass));</div><div class='add'>+        RCLASS_ALLOCATOR(clone) = RCLASS_ALLOCATOR(klass);</div><div class='add'>+        rb_iv_tbl_copy(clone, klass);</div><div class='add'>+        if (RCLASS_CONST_TBL(klass)) {</div><div class='add'>+            struct clone_const_arg arg;</div><div class='add'>+            arg.tbl = RCLASS_CONST_TBL(clone) = rb_id_table_create(0);</div><div class='add'>+            arg.klass = clone;</div><div class='add'>+            rb_id_table_foreach(RCLASS_CONST_TBL(klass), clone_const_i, &amp;arg);</div><div class='add'>+        }</div><div class='add'>+        if (!UNDEF_P(attach)) {</div><div class='add'>+            rb_singleton_class_attached(clone, attach);</div><div class='add'>+        }</div><div class='add'>+        RCLASS_M_TBL_INIT(clone);</div><div class='add'>+        {</div><div class='add'>+            struct clone_method_arg arg;</div><div class='add'>+            arg.old_klass = klass;</div><div class='add'>+            arg.new_klass = clone;</div><div class='add'>+            rb_id_table_foreach(RCLASS_M_TBL(klass), clone_method_i, &amp;arg);</div><div class='add'>+        }</div><div class='add'>+        if (klass_of_clone_is_new) {</div><div class='add'>+            rb_singleton_class_attached(METACLASS_OF(clone), clone);</div><div class='add'>+        }</div><div class='add'>+        FL_SET(clone, FL_SINGLETON);</div><div class='add'>+</div><div class='add'>+        return clone;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Attach a object to a singleton class.</div><div class='del'>- * @pre \a klass is the singleton class of \a obj.</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> rb_singleton_class_attached(VALUE klass, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (FL_TEST(klass, FL_SINGLETON)) {</div><div class='del'>-	if (!RCLASS_IV_TBL(klass)) {</div><div class='del'>-	    RCLASS_IV_TBL(klass) = st_init_numtable();</div><div class='del'>-	}</div><div class='del'>-	rb_class_ivar_set(klass, id_attached, obj);</div><div class='add'>+        rb_class_ivar_set(klass, id_attached, obj);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#define METACLASS_OF(k) RBASIC(k)-&gt;klass</div><div class='del'>-#define SET_METACLASS_OF(k, cls) RBASIC_SET_CLASS(k, cls)</div><div class='del'>-</div><div class='ctx'> /*!</div><div class='ctx'>  * whether k is a meta^(n)-class of Class class</div><div class='ctx'>  * @retval 1 if \a k is a meta^(n)-class of Class class (n &gt;= 0)</div><div class='hunk'>@@ -450,7 +693,7 @@ int</div><div class='ctx'> rb_singleton_class_internal_p(VALUE sklass)</div><div class='ctx'> {</div><div class='ctx'>     return (RB_TYPE_P(rb_attr_get(sklass, id_attached), T_CLASS) &amp;&amp;</div><div class='del'>-	    !rb_singleton_class_has_metaclass_p(sklass));</div><div class='add'>+            !rb_singleton_class_has_metaclass_p(sklass));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*!</div><div class='hunk'>@@ -492,20 +735,21 @@ make_metaclass(VALUE klass)</div><div class='ctx'>     rb_singleton_class_attached(metaclass, klass);</div><div class='ctx'> </div><div class='ctx'>     if (META_CLASS_OF_CLASS_CLASS_P(klass)) {</div><div class='del'>-	SET_METACLASS_OF(klass, metaclass);</div><div class='del'>-	SET_METACLASS_OF(metaclass, metaclass);</div><div class='add'>+        SET_METACLASS_OF(klass, metaclass);</div><div class='add'>+        SET_METACLASS_OF(metaclass, metaclass);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE tmp = METACLASS_OF(klass); /* for a meta^(n)-class klass, tmp is meta^(n)-class of Class class */</div><div class='del'>-	SET_METACLASS_OF(klass, metaclass);</div><div class='del'>-	SET_METACLASS_OF(metaclass, ENSURE_EIGENCLASS(tmp));</div><div class='add'>+        VALUE tmp = METACLASS_OF(klass); /* for a meta^(n)-class klass, tmp is meta^(n)-class of Class class */</div><div class='add'>+        SET_METACLASS_OF(klass, metaclass);</div><div class='add'>+        SET_METACLASS_OF(metaclass, ENSURE_EIGENCLASS(tmp));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     super = RCLASS_SUPER(klass);</div><div class='ctx'>     while (RB_TYPE_P(super, T_ICLASS)) super = RCLASS_SUPER(super);</div><div class='ctx'>     RCLASS_SET_SUPER(metaclass, super ? ENSURE_EIGENCLASS(super) : rb_cClass);</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(metaclass, RCLASS_SUPER(metaclass));</div><div class='add'>+    // Full class ancestry may not have been filled until we reach here.</div><div class='add'>+    rb_class_update_superclasses(METACLASS_OF(metaclass));</div><div class='ctx'> </div><div class='ctx'>     return metaclass;</div><div class='ctx'> }</div><div class='hunk'>@@ -519,7 +763,7 @@ make_metaclass(VALUE klass)</div><div class='ctx'> static inline VALUE</div><div class='ctx'> make_singleton_class(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE orig_class = RBASIC(obj)-&gt;klass;</div><div class='add'>+    VALUE orig_class = METACLASS_OF(obj);</div><div class='ctx'>     VALUE klass = rb_class_boot(orig_class);</div><div class='ctx'> </div><div class='ctx'>     FL_SET(klass, FL_SINGLETON);</div><div class='hunk'>@@ -537,11 +781,63 @@ boot_defclass(const char *name, VALUE super)</div><div class='ctx'>     VALUE obj = rb_class_boot(super);</div><div class='ctx'>     ID id = rb_intern(name);</div><div class='ctx'> </div><div class='del'>-    rb_name_class(obj, id);</div><div class='ctx'>     rb_const_set((rb_cObject ? rb_cObject : obj), id, obj);</div><div class='add'>+    rb_vm_add_root_module(obj);</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/***********************************************************************</div><div class='add'>+ *</div><div class='add'>+ * Document-class: Refinement</div><div class='add'>+ *</div><div class='add'>+ *  Refinement is a class of the +self+ (current context) inside +refine+</div><div class='add'>+ *  statement. It allows to import methods from other modules, see #import_methods.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#if 0 /* for RDoc */</div><div class='add'>+/*</div><div class='add'>+ * Document-method: Refinement#import_methods</div><div class='add'>+ *</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     import_methods(module, ...)    -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Imports methods from modules. Unlike Module#include,</div><div class='add'>+ *  Refinement#import_methods copies methods and adds them into the refinement,</div><div class='add'>+ *  so the refinement is activated in the imported methods.</div><div class='add'>+ *</div><div class='add'>+ *  Note that due to method copying, only methods defined in Ruby code can be imported.</div><div class='add'>+ *</div><div class='add'>+ *     module StrUtils</div><div class='add'>+ *       def indent(level)</div><div class='add'>+ *         ' ' * level + self</div><div class='add'>+ *       end</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     module M</div><div class='add'>+ *       refine String do</div><div class='add'>+ *         import_methods StrUtils</div><div class='add'>+ *       end</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     using M</div><div class='add'>+ *     "foo".indent(3)</div><div class='add'>+ *     #=&gt; "   foo"</div><div class='add'>+ *</div><div class='add'>+ *     module M</div><div class='add'>+ *       refine String do</div><div class='add'>+ *         import_methods Enumerable</div><div class='add'>+ *         # Can't import method which is not defined with Ruby code: Enumerable#drop</div><div class='add'>+ *       end</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+refinement_import_methods(int argc, VALUE *argv, VALUE refinement)</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+# endif</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_class_hierarchy(void)</div><div class='ctx'> {</div><div class='hunk'>@@ -550,16 +846,25 @@ Init_class_hierarchy(void)</div><div class='ctx'>     rb_gc_register_mark_object(rb_cObject);</div><div class='ctx'> </div><div class='ctx'>     /* resolve class name ASAP for order-independence */</div><div class='del'>-    rb_class_name(rb_cObject);</div><div class='add'>+    rb_set_class_path_string(rb_cObject, rb_cObject, rb_fstring_lit("Object"));</div><div class='ctx'> </div><div class='ctx'>     rb_cModule = boot_defclass("Module", rb_cObject);</div><div class='ctx'>     rb_cClass =  boot_defclass("Class",  rb_cModule);</div><div class='add'>+    rb_cRefinement =  boot_defclass("Refinement",  rb_cModule);</div><div class='add'>+</div><div class='add'>+#if 0 /* for RDoc */</div><div class='add'>+    // we pretend it to be public, otherwise RDoc will ignore it</div><div class='add'>+    rb_define_method(rb_cRefinement, "import_methods", refinement_import_methods, -1);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     rb_const_set(rb_cObject, rb_intern_const("BasicObject"), rb_cBasicObject);</div><div class='ctx'>     RBASIC_SET_CLASS(rb_cClass, rb_cClass);</div><div class='ctx'>     RBASIC_SET_CLASS(rb_cModule, rb_cClass);</div><div class='ctx'>     RBASIC_SET_CLASS(rb_cObject, rb_cClass);</div><div class='add'>+    RBASIC_SET_CLASS(rb_cRefinement, rb_cClass);</div><div class='ctx'>     RBASIC_SET_CLASS(rb_cBasicObject, rb_cClass);</div><div class='add'>+</div><div class='add'>+    ENSURE_EIGENCLASS(rb_cRefinement);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -577,24 +882,13 @@ VALUE</div><div class='ctx'> rb_make_metaclass(VALUE obj, VALUE unused)</div><div class='ctx'> {</div><div class='ctx'>     if (BUILTIN_TYPE(obj) == T_CLASS) {</div><div class='del'>-	return make_metaclass(obj);</div><div class='add'>+        return make_metaclass(obj);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return make_singleton_class(obj);</div><div class='add'>+        return make_singleton_class(obj);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-/*!</div><div class='del'>- * Defines a new class.</div><div class='del'>- * \param id     ignored</div><div class='del'>- * \param super  A class from which the new class will derive. NULL means \c Object class.</div><div class='del'>- * \return       the created class</div><div class='del'>- * \throw TypeError if super is not a \c Class object.</div><div class='del'>- *</div><div class='del'>- * \note the returned class will not be associated with \a id.</div><div class='del'>- *       You must explicitly set a class name if necessary.</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_define_class_id(ID id, VALUE super)</div><div class='ctx'> {</div><div class='hunk'>@@ -602,7 +896,7 @@ rb_define_class_id(ID id, VALUE super)</div><div class='ctx'> </div><div class='ctx'>     if (!super) super = rb_cObject;</div><div class='ctx'>     klass = rb_class_new(super);</div><div class='del'>-    rb_make_metaclass(klass, RBASIC(super)-&gt;klass);</div><div class='add'>+    rb_make_metaclass(klass, METACLASS_OF(super));</div><div class='ctx'> </div><div class='ctx'>     return klass;</div><div class='ctx'> }</div><div class='hunk'>@@ -625,23 +919,6 @@ rb_class_inherited(VALUE super, VALUE klass)</div><div class='ctx'>     return rb_funcall(super, inherited, 1, klass);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*!</div><div class='del'>- * Defines a top-level class.</div><div class='del'>- * \param name   name of the class</div><div class='del'>- * \param super  a class from which the new class will derive.</div><div class='del'>- * \return the created class</div><div class='del'>- * \throw TypeError if the constant name \a name is already taken but</div><div class='del'>- *                  the constant is not a \c Class.</div><div class='del'>- * \throw TypeError if the class is already defined but the class can not</div><div class='del'>- *                  be reopened because its superclass is not \a super.</div><div class='del'>- * \throw ArgumentError if the \a super is NULL.</div><div class='del'>- * \post top-level constant named \a name refers the returned class.</div><div class='del'>- *</div><div class='del'>- * \note if a class named \a name is already defined and its superclass is</div><div class='del'>- *       \a super, the function just returns the defined class.</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_define_class(const char *name, VALUE super)</div><div class='ctx'> {</div><div class='hunk'>@@ -650,118 +927,111 @@ rb_define_class(const char *name, VALUE super)</div><div class='ctx'> </div><div class='ctx'>     id = rb_intern(name);</div><div class='ctx'>     if (rb_const_defined(rb_cObject, id)) {</div><div class='del'>-	klass = rb_const_get(rb_cObject, id);</div><div class='del'>-	if (!RB_TYPE_P(klass, T_CLASS)) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "%s is not a class (%"PRIsVALUE")",</div><div class='del'>-		     name, rb_obj_class(klass));</div><div class='del'>-	}</div><div class='del'>-	if (rb_class_real(RCLASS_SUPER(klass)) != super) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "superclass mismatch for class %s", name);</div><div class='del'>-	}</div><div class='del'>-	return klass;</div><div class='add'>+        klass = rb_const_get(rb_cObject, id);</div><div class='add'>+        if (!RB_TYPE_P(klass, T_CLASS)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "%s is not a class (%"PRIsVALUE")",</div><div class='add'>+                     name, rb_obj_class(klass));</div><div class='add'>+        }</div><div class='add'>+        if (rb_class_real(RCLASS_SUPER(klass)) != super) {</div><div class='add'>+            rb_raise(rb_eTypeError, "superclass mismatch for class %s", name);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* Class may have been defined in Ruby and not pin-rooted */</div><div class='add'>+        rb_vm_add_root_module(klass);</div><div class='add'>+        return klass;</div><div class='ctx'>     }</div><div class='ctx'>     if (!super) {</div><div class='del'>-	rb_raise(rb_eArgError, "no super class for `%s'", name);</div><div class='add'>+        rb_raise(rb_eArgError, "no super class for `%s'", name);</div><div class='ctx'>     }</div><div class='ctx'>     klass = rb_define_class_id(id, super);</div><div class='del'>-    rb_vm_add_root_module(id, klass);</div><div class='del'>-    rb_name_class(klass, id);</div><div class='add'>+    rb_vm_add_root_module(klass);</div><div class='ctx'>     rb_const_set(rb_cObject, id, klass);</div><div class='ctx'>     rb_class_inherited(super, klass);</div><div class='ctx'> </div><div class='ctx'>     return klass;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-/*!</div><div class='del'>- * Defines a class under the namespace of \a outer.</div><div class='del'>- * \param outer  a class which contains the new class.</div><div class='del'>- * \param name   name of the new class</div><div class='del'>- * \param super  a class from which the new class will derive.</div><div class='del'>- *               NULL means \c Object class.</div><div class='del'>- * \return the created class</div><div class='del'>- * \throw TypeError if the constant name \a name is already taken but</div><div class='del'>- *                  the constant is not a \c Class.</div><div class='del'>- * \throw TypeError if the class is already defined but the class can not</div><div class='del'>- *                  be reopened because its superclass is not \a super.</div><div class='del'>- * \post top-level constant named \a name refers the returned class.</div><div class='del'>- *</div><div class='del'>- * \note if a class named \a name is already defined and its superclass is</div><div class='del'>- *       \a super, the function just returns the defined class.</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_define_class_under(VALUE outer, const char *name, VALUE super)</div><div class='ctx'> {</div><div class='ctx'>     return rb_define_class_id_under(outer, rb_intern(name), super);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-/*!</div><div class='del'>- * Defines a class under the namespace of \a outer.</div><div class='del'>- * \param outer  a class which contains the new class.</div><div class='del'>- * \param id     name of the new class</div><div class='del'>- * \param super  a class from which the new class will derive.</div><div class='del'>- *               NULL means \c Object class.</div><div class='del'>- * \return the created class</div><div class='del'>- * \throw TypeError if the constant name \a name is already taken but</div><div class='del'>- *                  the constant is not a \c Class.</div><div class='del'>- * \throw TypeError if the class is already defined but the class can not</div><div class='del'>- *                  be reopened because its superclass is not \a super.</div><div class='del'>- * \post top-level constant named \a name refers the returned class.</div><div class='del'>- *</div><div class='del'>- * \note if a class named \a name is already defined and its superclass is</div><div class='del'>- *       \a super, the function just returns the defined class.</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='del'>-rb_define_class_id_under(VALUE outer, ID id, VALUE super)</div><div class='add'>+rb_define_class_id_under_no_pin(VALUE outer, ID id, VALUE super)</div><div class='ctx'> {</div><div class='ctx'>     VALUE klass;</div><div class='ctx'> </div><div class='ctx'>     if (rb_const_defined_at(outer, id)) {</div><div class='del'>-	klass = rb_const_get_at(outer, id);</div><div class='del'>-	if (!RB_TYPE_P(klass, T_CLASS)) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "%"PRIsVALUE"::%"PRIsVALUE" is not a class"</div><div class='del'>-		     " (%"PRIsVALUE")",</div><div class='del'>-		     outer, rb_id2str(id), rb_obj_class(klass));</div><div class='del'>-	}</div><div class='del'>-	if (rb_class_real(RCLASS_SUPER(klass)) != super) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "superclass mismatch for class "</div><div class='del'>-		     "%"PRIsVALUE"::%"PRIsVALUE""</div><div class='del'>-		     " (%"PRIsVALUE" is given but was %"PRIsVALUE")",</div><div class='del'>-		     outer, rb_id2str(id), RCLASS_SUPER(klass), super);</div><div class='del'>-	}</div><div class='del'>-	return klass;</div><div class='add'>+        klass = rb_const_get_at(outer, id);</div><div class='add'>+        if (!RB_TYPE_P(klass, T_CLASS)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "%"PRIsVALUE"::%"PRIsVALUE" is not a class"</div><div class='add'>+                     " (%"PRIsVALUE")",</div><div class='add'>+                     outer, rb_id2str(id), rb_obj_class(klass));</div><div class='add'>+        }</div><div class='add'>+        if (rb_class_real(RCLASS_SUPER(klass)) != super) {</div><div class='add'>+            rb_raise(rb_eTypeError, "superclass mismatch for class "</div><div class='add'>+                     "%"PRIsVALUE"::%"PRIsVALUE""</div><div class='add'>+                     " (%"PRIsVALUE" is given but was %"PRIsVALUE")",</div><div class='add'>+                     outer, rb_id2str(id), RCLASS_SUPER(klass), super);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        return klass;</div><div class='ctx'>     }</div><div class='ctx'>     if (!super) {</div><div class='del'>-	rb_raise(rb_eArgError, "no super class for `%"PRIsVALUE"::%"PRIsVALUE"'",</div><div class='del'>-		 rb_class_path(outer), rb_id2str(id));</div><div class='add'>+        rb_raise(rb_eArgError, "no super class for `%"PRIsVALUE"::%"PRIsVALUE"'",</div><div class='add'>+                 rb_class_path(outer), rb_id2str(id));</div><div class='ctx'>     }</div><div class='ctx'>     klass = rb_define_class_id(id, super);</div><div class='ctx'>     rb_set_class_path_string(klass, outer, rb_id2str(id));</div><div class='ctx'>     rb_const_set(outer, id, klass);</div><div class='ctx'>     rb_class_inherited(super, klass);</div><div class='del'>-    rb_gc_register_mark_object(klass);</div><div class='ctx'> </div><div class='ctx'>     return klass;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_module_new(void)</div><div class='add'>+rb_define_class_id_under(VALUE outer, ID id, VALUE super)</div><div class='add'>+{</div><div class='add'>+    VALUE klass = rb_define_class_id_under_no_pin(outer, id, super);</div><div class='add'>+    rb_vm_add_root_module(klass);</div><div class='add'>+    return klass;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_module_s_alloc(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE mdl = class_alloc(T_MODULE, rb_cModule);</div><div class='add'>+    VALUE mod = class_alloc(T_MODULE, klass);</div><div class='add'>+    RCLASS_M_TBL_INIT(mod);</div><div class='add'>+    FL_SET(mod, RMODULE_ALLOCATED_BUT_NOT_INITIALIZED);</div><div class='add'>+    return mod;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+module_new(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE mdl = class_alloc(T_MODULE, klass);</div><div class='ctx'>     RCLASS_M_TBL_INIT(mdl);</div><div class='ctx'>     return (VALUE)mdl;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_define_module_id(ID id)</div><div class='add'>+rb_module_new(void)</div><div class='ctx'> {</div><div class='del'>-    VALUE mdl;</div><div class='add'>+    return module_new(rb_cModule);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    mdl = rb_module_new();</div><div class='del'>-    rb_name_class(mdl, id);</div><div class='add'>+VALUE</div><div class='add'>+rb_refinement_new(void)</div><div class='add'>+{</div><div class='add'>+    return module_new(rb_cRefinement);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return mdl;</div><div class='add'>+// Kept for compatibility. Use rb_module_new() instead.</div><div class='add'>+VALUE</div><div class='add'>+rb_define_module_id(ID id)</div><div class='add'>+{</div><div class='add'>+    return rb_module_new();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -772,15 +1042,17 @@ rb_define_module(const char *name)</div><div class='ctx'> </div><div class='ctx'>     id = rb_intern(name);</div><div class='ctx'>     if (rb_const_defined(rb_cObject, id)) {</div><div class='del'>-	module = rb_const_get(rb_cObject, id);</div><div class='del'>-	if (!RB_TYPE_P(module, T_MODULE)) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "%s is not a module (%"PRIsVALUE")",</div><div class='del'>-		     name, rb_obj_class(module));</div><div class='del'>-	}</div><div class='del'>-	return module;</div><div class='del'>-    }</div><div class='del'>-    module = rb_define_module_id(id);</div><div class='del'>-    rb_vm_add_root_module(id, module);</div><div class='add'>+        module = rb_const_get(rb_cObject, id);</div><div class='add'>+        if (!RB_TYPE_P(module, T_MODULE)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "%s is not a module (%"PRIsVALUE")",</div><div class='add'>+                     name, rb_obj_class(module));</div><div class='add'>+        }</div><div class='add'>+        /* Module may have been defined in Ruby and not pin-rooted */</div><div class='add'>+        rb_vm_add_root_module(module);</div><div class='add'>+        return module;</div><div class='add'>+    }</div><div class='add'>+    module = rb_module_new();</div><div class='add'>+    rb_vm_add_root_module(module);</div><div class='ctx'>     rb_const_set(rb_cObject, id, module);</div><div class='ctx'> </div><div class='ctx'>     return module;</div><div class='hunk'>@@ -798,15 +1070,17 @@ rb_define_module_id_under(VALUE outer, ID id)</div><div class='ctx'>     VALUE module;</div><div class='ctx'> </div><div class='ctx'>     if (rb_const_defined_at(outer, id)) {</div><div class='del'>-	module = rb_const_get_at(outer, id);</div><div class='del'>-	if (!RB_TYPE_P(module, T_MODULE)) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "%"PRIsVALUE"::%"PRIsVALUE" is not a module"</div><div class='del'>-		     " (%"PRIsVALUE")",</div><div class='del'>-		     outer, rb_id2str(id), rb_obj_class(module));</div><div class='del'>-	}</div><div class='del'>-	return module;</div><div class='del'>-    }</div><div class='del'>-    module = rb_define_module_id(id);</div><div class='add'>+        module = rb_const_get_at(outer, id);</div><div class='add'>+        if (!RB_TYPE_P(module, T_MODULE)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "%"PRIsVALUE"::%"PRIsVALUE" is not a module"</div><div class='add'>+                     " (%"PRIsVALUE")",</div><div class='add'>+                     outer, rb_id2str(id), rb_obj_class(module));</div><div class='add'>+        }</div><div class='add'>+        /* Module may have been defined in Ruby and not pin-rooted */</div><div class='add'>+        rb_gc_register_mark_object(module);</div><div class='add'>+        return module;</div><div class='add'>+    }</div><div class='add'>+    module = rb_module_new();</div><div class='ctx'>     rb_const_set(outer, id, module);</div><div class='ctx'>     rb_set_class_path_string(module, outer, rb_id2str(id));</div><div class='ctx'>     rb_gc_register_mark_object(module);</div><div class='hunk'>@@ -819,30 +1093,22 @@ rb_include_class_new(VALUE module, VALUE super)</div><div class='ctx'> {</div><div class='ctx'>     VALUE klass = class_alloc(T_ICLASS, rb_cClass);</div><div class='ctx'> </div><div class='add'>+    RCLASS_M_TBL(klass) = RCLASS_M_TBL(module);</div><div class='add'>+</div><div class='add'>+    RCLASS_SET_ORIGIN(klass, klass);</div><div class='ctx'>     if (BUILTIN_TYPE(module) == T_ICLASS) {</div><div class='del'>-	module = RBASIC(module)-&gt;klass;</div><div class='del'>-    }</div><div class='del'>-    if (!RCLASS_IV_TBL(module)) {</div><div class='del'>-	RCLASS_IV_TBL(module) = st_init_numtable();</div><div class='add'>+        module = METACLASS_OF(module);</div><div class='ctx'>     }</div><div class='add'>+    RUBY_ASSERT(!RB_TYPE_P(module, T_ICLASS));</div><div class='ctx'>     if (!RCLASS_CONST_TBL(module)) {</div><div class='del'>-	RCLASS_CONST_TBL(module) = rb_id_table_create(0);</div><div class='add'>+        RCLASS_CONST_TBL(module) = rb_id_table_create(0);</div><div class='ctx'>     }</div><div class='del'>-    RCLASS_IV_TBL(klass) = RCLASS_IV_TBL(module);</div><div class='del'>-    RCLASS_CONST_TBL(klass) = RCLASS_CONST_TBL(module);</div><div class='ctx'> </div><div class='del'>-    RCLASS_M_TBL(OBJ_WB_UNPROTECT(klass)) =</div><div class='del'>-      RCLASS_M_TBL(OBJ_WB_UNPROTECT(RCLASS_ORIGIN(module))); /* TODO: unprotected? */</div><div class='add'>+    RCLASS_CVC_TBL(klass) = RCLASS_CVC_TBL(module);</div><div class='add'>+    RCLASS_CONST_TBL(klass) = RCLASS_CONST_TBL(module);</div><div class='ctx'> </div><div class='ctx'>     RCLASS_SET_SUPER(klass, super);</div><div class='del'>-    if (RB_TYPE_P(module, T_ICLASS)) {</div><div class='del'>-	RBASIC_SET_CLASS(klass, RBASIC(module)-&gt;klass);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	RBASIC_SET_CLASS(klass, module);</div><div class='del'>-    }</div><div class='del'>-    OBJ_INFECT(klass, module);</div><div class='del'>-    OBJ_INFECT(klass, super);</div><div class='add'>+    RBASIC_SET_CLASS(klass, module);</div><div class='ctx'> </div><div class='ctx'>     return (VALUE)klass;</div><div class='ctx'> }</div><div class='hunk'>@@ -854,10 +1120,10 @@ ensure_includable(VALUE klass, VALUE module)</div><div class='ctx'> {</div><div class='ctx'>     rb_class_modify_check(klass);</div><div class='ctx'>     Check_Type(module, T_MODULE);</div><div class='add'>+    rb_module_set_initialized(module);</div><div class='ctx'>     if (!NIL_P(rb_refinement_module_get_refined_class(module))) {</div><div class='del'>-	rb_raise(rb_eArgError, "refinement module is not allowed");</div><div class='add'>+        rb_raise(rb_eArgError, "refinement module is not allowed");</div><div class='ctx'>     }</div><div class='del'>-    OBJ_INFECT(klass, module);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -869,7 +1135,40 @@ rb_include_module(VALUE klass, VALUE module)</div><div class='ctx'> </div><div class='ctx'>     changed = include_modules_at(klass, RCLASS_ORIGIN(klass), module, TRUE);</div><div class='ctx'>     if (changed &lt; 0)</div><div class='del'>-	rb_raise(rb_eArgError, "cyclic include detected");</div><div class='add'>+        rb_raise(rb_eArgError, "cyclic include detected");</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(klass, T_MODULE)) {</div><div class='add'>+        rb_subclass_entry_t *iclass = RCLASS_SUBCLASSES(klass);</div><div class='add'>+        // skip the placeholder subclass entry at the head of the list</div><div class='add'>+        if (iclass) {</div><div class='add'>+            RUBY_ASSERT(!iclass-&gt;klass);</div><div class='add'>+            iclass = iclass-&gt;next;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        while (iclass) {</div><div class='add'>+            int do_include = 1;</div><div class='add'>+            VALUE check_class = iclass-&gt;klass;</div><div class='add'>+            /* During lazy sweeping, iclass-&gt;klass could be a dead object that</div><div class='add'>+             * has not yet been swept. */</div><div class='add'>+            if (!rb_objspace_garbage_object_p(check_class)) {</div><div class='add'>+                while (check_class) {</div><div class='add'>+                    RUBY_ASSERT(!rb_objspace_garbage_object_p(check_class));</div><div class='add'>+</div><div class='add'>+                    if (RB_TYPE_P(check_class, T_ICLASS) &amp;&amp;</div><div class='add'>+                            (METACLASS_OF(check_class) == module)) {</div><div class='add'>+                        do_include = 0;</div><div class='add'>+                    }</div><div class='add'>+                    check_class = RCLASS_SUPER(check_class);</div><div class='add'>+                }</div><div class='add'>+</div><div class='add'>+                if (do_include) {</div><div class='add'>+                    include_modules_at(iclass-&gt;klass, RCLASS_ORIGIN(iclass-&gt;klass), module, TRUE);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            iclass = iclass-&gt;next;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static enum rb_id_table_iterator_result</div><div class='hunk'>@@ -879,120 +1178,252 @@ add_refined_method_entry_i(ID key, VALUE value, void *data)</div><div class='ctx'>     return ID_TABLE_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-include_modules_at(const VALUE klass, VALUE c, VALUE module, int search_super)</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+clear_module_cache_i(ID id, VALUE val, void *data)</div><div class='add'>+{</div><div class='add'>+    VALUE klass = (VALUE)data;</div><div class='add'>+    rb_clear_method_cache(klass, id);</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+module_in_super_chain(const VALUE klass, VALUE module)</div><div class='ctx'> {</div><div class='del'>-    VALUE p, iclass;</div><div class='del'>-    int method_changed = 0, constant_changed = 0;</div><div class='ctx'>     struct rb_id_table *const klass_m_tbl = RCLASS_M_TBL(RCLASS_ORIGIN(klass));</div><div class='add'>+    if (klass_m_tbl) {</div><div class='add'>+        while (module) {</div><div class='add'>+            if (klass_m_tbl == RCLASS_M_TBL(module))</div><div class='add'>+                return true;</div><div class='add'>+            module = RCLASS_SUPER(module);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return false;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// For each ID key in the class constant table, we're going to clear the VM's</div><div class='add'>+// inline constant caches associated with it.</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+clear_constant_cache_i(ID id, VALUE value, void *data)</div><div class='add'>+{</div><div class='add'>+    rb_clear_constant_cache_for_id(id);</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+do_include_modules_at(const VALUE klass, VALUE c, VALUE module, int search_super, bool check_cyclic)</div><div class='add'>+{</div><div class='add'>+    VALUE p, iclass, origin_stack = 0;</div><div class='add'>+    int method_changed = 0;</div><div class='add'>+    long origin_len;</div><div class='add'>+    VALUE klass_origin = RCLASS_ORIGIN(klass);</div><div class='add'>+    VALUE original_klass = klass;</div><div class='add'>+</div><div class='add'>+    if (check_cyclic &amp;&amp; module_in_super_chain(klass, module))</div><div class='add'>+        return -1;</div><div class='ctx'> </div><div class='ctx'>     while (module) {</div><div class='del'>-	int superclass_seen = FALSE;</div><div class='del'>-	struct rb_id_table *tbl;</div><div class='del'>-</div><div class='del'>-	if (RCLASS_ORIGIN(module) != module)</div><div class='del'>-	    goto skip;</div><div class='del'>-	if (klass_m_tbl &amp;&amp; klass_m_tbl == RCLASS_M_TBL(module))</div><div class='del'>-	    return -1;</div><div class='del'>-	/* ignore if the module included already in superclasses */</div><div class='del'>-	for (p = RCLASS_SUPER(klass); p; p = RCLASS_SUPER(p)) {</div><div class='del'>-	    int type = BUILTIN_TYPE(p);</div><div class='del'>-	    if (type == T_ICLASS) {</div><div class='del'>-		if (RCLASS_M_TBL(p) == RCLASS_M_TBL(module)) {</div><div class='del'>-		    if (!superclass_seen) {</div><div class='del'>-			c = p;  /* move insertion point */</div><div class='del'>-		    }</div><div class='del'>-		    goto skip;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else if (type == T_CLASS) {</div><div class='del'>-		if (!search_super) break;</div><div class='del'>-		superclass_seen = TRUE;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	iclass = rb_include_class_new(module, RCLASS_SUPER(c));</div><div class='del'>-	c = RCLASS_SET_SUPER(c, iclass);</div><div class='del'>-</div><div class='del'>-	{</div><div class='del'>-	    VALUE m = module;</div><div class='del'>-	    if (BUILTIN_TYPE(m) == T_ICLASS) m = RBASIC(m)-&gt;klass;</div><div class='del'>-	    rb_module_add_to_subclasses_list(m, iclass);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (FL_TEST(klass, RMODULE_IS_REFINEMENT)) {</div><div class='del'>-	    VALUE refined_class =</div><div class='del'>-		rb_refinement_module_get_refined_class(klass);</div><div class='del'>-</div><div class='del'>-	    rb_id_table_foreach(RMODULE_M_TBL(module), add_refined_method_entry_i, (void *)refined_class);</div><div class='del'>-	    FL_SET(c, RMODULE_INCLUDED_INTO_REFINEMENT);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	tbl = RMODULE_M_TBL(module);</div><div class='del'>-	if (tbl &amp;&amp; rb_id_table_size(tbl)) method_changed = 1;</div><div class='del'>-</div><div class='del'>-	tbl = RMODULE_CONST_TBL(module);</div><div class='del'>-	if (tbl &amp;&amp; rb_id_table_size(tbl)) constant_changed = 1;</div><div class='add'>+        int c_seen = FALSE;</div><div class='add'>+        int superclass_seen = FALSE;</div><div class='add'>+        struct rb_id_table *tbl;</div><div class='add'>+</div><div class='add'>+        if (klass == c) {</div><div class='add'>+            c_seen = TRUE;</div><div class='add'>+        }</div><div class='add'>+        if (klass_origin != c || search_super) {</div><div class='add'>+            /* ignore if the module included already in superclasses for include,</div><div class='add'>+             * ignore if the module included before origin class for prepend</div><div class='add'>+             */</div><div class='add'>+            for (p = RCLASS_SUPER(klass); p; p = RCLASS_SUPER(p)) {</div><div class='add'>+                int type = BUILTIN_TYPE(p);</div><div class='add'>+                if (klass_origin == p &amp;&amp; !search_super)</div><div class='add'>+                    break;</div><div class='add'>+                if (c == p)</div><div class='add'>+                    c_seen = TRUE;</div><div class='add'>+                if (type == T_ICLASS) {</div><div class='add'>+                    if (RCLASS_M_TBL(p) == RCLASS_M_TBL(module)) {</div><div class='add'>+                        if (!superclass_seen &amp;&amp; c_seen) {</div><div class='add'>+                            c = p;  /* move insertion point */</div><div class='add'>+                        }</div><div class='add'>+                        goto skip;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                else if (type == T_CLASS) {</div><div class='add'>+                    superclass_seen = TRUE;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        VALUE super_class = RCLASS_SUPER(c);</div><div class='add'>+</div><div class='add'>+        // invalidate inline method cache</div><div class='add'>+        RB_DEBUG_COUNTER_INC(cvar_include_invalidate);</div><div class='add'>+        ruby_vm_global_cvar_state++;</div><div class='add'>+        tbl = RCLASS_M_TBL(module);</div><div class='add'>+        if (tbl &amp;&amp; rb_id_table_size(tbl)) {</div><div class='add'>+            if (search_super) { // include</div><div class='add'>+                if (super_class &amp;&amp; !RB_TYPE_P(super_class, T_MODULE)) {</div><div class='add'>+                    rb_id_table_foreach(tbl, clear_module_cache_i, (void *)super_class);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else { // prepend</div><div class='add'>+                if (!RB_TYPE_P(original_klass, T_MODULE)) {</div><div class='add'>+                    rb_id_table_foreach(tbl, clear_module_cache_i, (void *)original_klass);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            method_changed = 1;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // setup T_ICLASS for the include/prepend module</div><div class='add'>+        iclass = rb_include_class_new(module, super_class);</div><div class='add'>+        c = RCLASS_SET_SUPER(c, iclass);</div><div class='add'>+        RCLASS_SET_INCLUDER(iclass, klass);</div><div class='add'>+        if (module != RCLASS_ORIGIN(module)) {</div><div class='add'>+            if (!origin_stack) origin_stack = rb_ary_hidden_new(2);</div><div class='add'>+            VALUE origin[2] = {iclass, RCLASS_ORIGIN(module)};</div><div class='add'>+            rb_ary_cat(origin_stack, origin, 2);</div><div class='add'>+        }</div><div class='add'>+        else if (origin_stack &amp;&amp; (origin_len = RARRAY_LEN(origin_stack)) &gt; 1 &amp;&amp;</div><div class='add'>+                 RARRAY_AREF(origin_stack, origin_len - 1) == module) {</div><div class='add'>+            RCLASS_SET_ORIGIN(RARRAY_AREF(origin_stack, (origin_len -= 2)), iclass);</div><div class='add'>+            RICLASS_SET_ORIGIN_SHARED_MTBL(iclass);</div><div class='add'>+            rb_ary_resize(origin_stack, origin_len);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        VALUE m = module;</div><div class='add'>+        if (BUILTIN_TYPE(m) == T_ICLASS) m = METACLASS_OF(m);</div><div class='add'>+        rb_module_add_to_subclasses_list(m, iclass);</div><div class='add'>+</div><div class='add'>+        if (BUILTIN_TYPE(klass) == T_MODULE &amp;&amp; FL_TEST(klass, RMODULE_IS_REFINEMENT)) {</div><div class='add'>+            VALUE refined_class =</div><div class='add'>+                rb_refinement_module_get_refined_class(klass);</div><div class='add'>+</div><div class='add'>+            rb_id_table_foreach(RCLASS_M_TBL(module), add_refined_method_entry_i, (void *)refined_class);</div><div class='add'>+            RUBY_ASSERT(BUILTIN_TYPE(c) == T_MODULE);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        tbl = RCLASS_CONST_TBL(module);</div><div class='add'>+        if (tbl &amp;&amp; rb_id_table_size(tbl))</div><div class='add'>+            rb_id_table_foreach(tbl, clear_constant_cache_i, NULL);</div><div class='ctx'>       skip:</div><div class='del'>-	module = RCLASS_SUPER(module);</div><div class='add'>+        module = RCLASS_SUPER(module);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (method_changed) rb_clear_method_cache_by_class(klass);</div><div class='del'>-    if (constant_changed) rb_clear_constant_cache();</div><div class='del'>-</div><div class='ctx'>     return method_changed;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+include_modules_at(const VALUE klass, VALUE c, VALUE module, int search_super)</div><div class='add'>+{</div><div class='add'>+    return do_include_modules_at(klass, c, module, search_super, true);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static enum rb_id_table_iterator_result</div><div class='ctx'> move_refined_method(ID key, VALUE value, void *data)</div><div class='ctx'> {</div><div class='del'>-    rb_method_entry_t *me = (rb_method_entry_t *) value;</div><div class='del'>-    VALUE klass = (VALUE)data;</div><div class='del'>-    struct rb_id_table *tbl = RCLASS_M_TBL(klass);</div><div class='add'>+    rb_method_entry_t *me = (rb_method_entry_t *)value;</div><div class='ctx'> </div><div class='ctx'>     if (me-&gt;def-&gt;type == VM_METHOD_TYPE_REFINED) {</div><div class='del'>-	if (me-&gt;def-&gt;body.refined.orig_me) {</div><div class='del'>-	    const rb_method_entry_t *orig_me = me-&gt;def-&gt;body.refined.orig_me, *new_me;</div><div class='del'>-	    RB_OBJ_WRITE(me, &amp;me-&gt;def-&gt;body.refined.orig_me, NULL);</div><div class='del'>-	    new_me = rb_method_entry_clone(me);</div><div class='del'>-	    rb_id_table_insert(tbl, key, (VALUE)new_me);</div><div class='del'>-	    RB_OBJ_WRITTEN(klass, Qundef, new_me);</div><div class='del'>-	    rb_method_entry_copy(me, orig_me);</div><div class='del'>-	    return ID_TABLE_CONTINUE;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_id_table_insert(tbl, key, (VALUE)me);</div><div class='del'>-	    return ID_TABLE_DELETE;</div><div class='del'>-	}</div><div class='add'>+        VALUE klass = (VALUE)data;</div><div class='add'>+        struct rb_id_table *tbl = RCLASS_M_TBL(klass);</div><div class='add'>+</div><div class='add'>+        if (me-&gt;def-&gt;body.refined.orig_me) {</div><div class='add'>+            const rb_method_entry_t *orig_me = me-&gt;def-&gt;body.refined.orig_me, *new_me;</div><div class='add'>+            RB_OBJ_WRITE(me, &amp;me-&gt;def-&gt;body.refined.orig_me, NULL);</div><div class='add'>+            new_me = rb_method_entry_clone(me);</div><div class='add'>+            rb_method_table_insert(klass, tbl, key, new_me);</div><div class='add'>+            rb_method_entry_copy(me, orig_me);</div><div class='add'>+            return ID_TABLE_CONTINUE;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_method_table_insert(klass, tbl, key, me);</div><div class='add'>+            return ID_TABLE_DELETE;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return ID_TABLE_CONTINUE;</div><div class='add'>+        return ID_TABLE_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+cache_clear_refined_method(ID key, VALUE value, void *data)</div><div class='add'>+{</div><div class='add'>+    rb_method_entry_t *me = (rb_method_entry_t *) value;</div><div class='add'>+</div><div class='add'>+    if (me-&gt;def-&gt;type == VM_METHOD_TYPE_REFINED &amp;&amp; me-&gt;def-&gt;body.refined.orig_me) {</div><div class='add'>+        VALUE klass = (VALUE)data;</div><div class='add'>+        rb_clear_method_cache(klass, me-&gt;called_id);</div><div class='ctx'>     }</div><div class='add'>+    // Refined method entries without an orig_me is going to stay in the method</div><div class='add'>+    // table of klass, like before the move, so no need to clear the cache.</div><div class='add'>+</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+ensure_origin(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE origin = RCLASS_ORIGIN(klass);</div><div class='add'>+    if (origin == klass) {</div><div class='add'>+        origin = class_alloc(T_ICLASS, klass);</div><div class='add'>+        RCLASS_SET_SUPER(origin, RCLASS_SUPER(klass));</div><div class='add'>+        RCLASS_SET_SUPER(klass, origin);</div><div class='add'>+        RCLASS_SET_ORIGIN(klass, origin);</div><div class='add'>+        RCLASS_M_TBL(origin) = RCLASS_M_TBL(klass);</div><div class='add'>+        RCLASS_M_TBL_INIT(klass);</div><div class='add'>+        rb_id_table_foreach(RCLASS_M_TBL(origin), cache_clear_refined_method, (void *)klass);</div><div class='add'>+        rb_id_table_foreach(RCLASS_M_TBL(origin), move_refined_method, (void *)klass);</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    return false;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_prepend_module(VALUE klass, VALUE module)</div><div class='ctx'> {</div><div class='del'>-    VALUE origin;</div><div class='del'>-    int changed = 0;</div><div class='add'>+    int changed;</div><div class='add'>+    bool klass_had_no_origin;</div><div class='ctx'> </div><div class='ctx'>     ensure_includable(klass, module);</div><div class='add'>+    if (module_in_super_chain(klass, module))</div><div class='add'>+        rb_raise(rb_eArgError, "cyclic prepend detected");</div><div class='ctx'> </div><div class='del'>-    origin = RCLASS_ORIGIN(klass);</div><div class='del'>-    if (origin == klass) {</div><div class='del'>-	origin = class_alloc(T_ICLASS, klass);</div><div class='del'>-	OBJ_WB_UNPROTECT(origin); /* TODO: conservative shading. Need more survey. */</div><div class='del'>-	RCLASS_SET_SUPER(origin, RCLASS_SUPER(klass));</div><div class='del'>-	RCLASS_SET_SUPER(klass, origin);</div><div class='del'>-	RCLASS_SET_ORIGIN(klass, origin);</div><div class='del'>-	RCLASS_M_TBL(origin) = RCLASS_M_TBL(klass);</div><div class='del'>-	RCLASS_M_TBL_INIT(klass);</div><div class='del'>-	rb_id_table_foreach(RCLASS_M_TBL(origin), move_refined_method, (void *)klass);</div><div class='del'>-    }</div><div class='del'>-    changed = include_modules_at(klass, klass, module, FALSE);</div><div class='del'>-    if (changed &lt; 0)</div><div class='del'>-	rb_raise(rb_eArgError, "cyclic prepend detected");</div><div class='add'>+    klass_had_no_origin = ensure_origin(klass);</div><div class='add'>+    changed = do_include_modules_at(klass, klass, module, FALSE, false);</div><div class='add'>+    RUBY_ASSERT(changed &gt;= 0); // already checked for cyclic prepend above</div><div class='ctx'>     if (changed) {</div><div class='del'>-	rb_vm_check_redefinition_by_prepend(klass);</div><div class='add'>+        rb_vm_check_redefinition_by_prepend(klass);</div><div class='add'>+    }</div><div class='add'>+    if (RB_TYPE_P(klass, T_MODULE)) {</div><div class='add'>+        rb_subclass_entry_t *iclass = RCLASS_SUBCLASSES(klass);</div><div class='add'>+        // skip the placeholder subclass entry at the head of the list if it exists</div><div class='add'>+        if (iclass) {</div><div class='add'>+            RUBY_ASSERT(!iclass-&gt;klass);</div><div class='add'>+            iclass = iclass-&gt;next;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        VALUE klass_origin = RCLASS_ORIGIN(klass);</div><div class='add'>+        struct rb_id_table *klass_m_tbl = RCLASS_M_TBL(klass);</div><div class='add'>+        struct rb_id_table *klass_origin_m_tbl = RCLASS_M_TBL(klass_origin);</div><div class='add'>+        while (iclass) {</div><div class='add'>+            /* During lazy sweeping, iclass-&gt;klass could be a dead object that</div><div class='add'>+             * has not yet been swept. */</div><div class='add'>+            if (!rb_objspace_garbage_object_p(iclass-&gt;klass)) {</div><div class='add'>+                const VALUE subclass = iclass-&gt;klass;</div><div class='add'>+                if (klass_had_no_origin &amp;&amp; klass_origin_m_tbl == RCLASS_M_TBL(subclass)) {</div><div class='add'>+                    // backfill an origin iclass to handle refinements and future prepends</div><div class='add'>+                    rb_id_table_foreach(RCLASS_M_TBL(subclass), clear_module_cache_i, (void *)subclass);</div><div class='add'>+                    RCLASS_M_TBL(subclass) = klass_m_tbl;</div><div class='add'>+                    VALUE origin = rb_include_class_new(klass_origin, RCLASS_SUPER(subclass));</div><div class='add'>+                    RCLASS_SET_SUPER(subclass, origin);</div><div class='add'>+                    RCLASS_SET_INCLUDER(origin, RCLASS_INCLUDER(subclass));</div><div class='add'>+                    RCLASS_SET_ORIGIN(subclass, origin);</div><div class='add'>+                    RICLASS_SET_ORIGIN_SHARED_MTBL(origin);</div><div class='add'>+                }</div><div class='add'>+                include_modules_at(subclass, subclass, module, FALSE);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            iclass = iclass-&gt;next;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1000,17 +1431,22 @@ rb_prepend_module(VALUE klass, VALUE module)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     mod.included_modules -&gt; array</div><div class='ctx'>  *</div><div class='del'>- *  Returns the list of modules included in &lt;i&gt;mod&lt;/i&gt;.</div><div class='add'>+ *  Returns the list of modules included or prepended in &lt;i&gt;mod&lt;/i&gt;</div><div class='add'>+ *  or one of &lt;i&gt;mod&lt;/i&gt;'s ancestors.</div><div class='add'>+ *</div><div class='add'>+ *     module Sub</div><div class='add'>+ *     end</div><div class='ctx'>  *</div><div class='ctx'>  *     module Mixin</div><div class='add'>+ *       prepend Sub</div><div class='ctx'>  *     end</div><div class='ctx'>  *</div><div class='ctx'>  *     module Outer</div><div class='ctx'>  *       include Mixin</div><div class='ctx'>  *     end</div><div class='ctx'>  *</div><div class='del'>- *     Mixin.included_modules   #=&gt; []</div><div class='del'>- *     Outer.included_modules   #=&gt; [Mixin]</div><div class='add'>+ *     Mixin.included_modules   #=&gt; [Sub]</div><div class='add'>+ *     Outer.included_modules   #=&gt; [Sub, Mixin]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -1021,11 +1457,11 @@ rb_mod_included_modules(VALUE mod)</div><div class='ctx'>     VALUE origin = RCLASS_ORIGIN(mod);</div><div class='ctx'> </div><div class='ctx'>     for (p = RCLASS_SUPER(mod); p; p = RCLASS_SUPER(p)) {</div><div class='del'>-	if (p != origin &amp;&amp; BUILTIN_TYPE(p) == T_ICLASS) {</div><div class='del'>-	    VALUE m = RBASIC(p)-&gt;klass;</div><div class='del'>-	    if (RB_TYPE_P(m, T_MODULE))</div><div class='del'>-		rb_ary_push(ary, m);</div><div class='del'>-	}</div><div class='add'>+        if (p != origin &amp;&amp; RCLASS_ORIGIN(p) == p &amp;&amp; BUILTIN_TYPE(p) == T_ICLASS) {</div><div class='add'>+            VALUE m = METACLASS_OF(p);</div><div class='add'>+            if (RB_TYPE_P(m, T_MODULE))</div><div class='add'>+                rb_ary_push(ary, m);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -1034,8 +1470,8 @@ rb_mod_included_modules(VALUE mod)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     mod.include?(module)    -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;module&lt;/i&gt; is included in</div><div class='del'>- *  &lt;i&gt;mod&lt;/i&gt; or one of &lt;i&gt;mod&lt;/i&gt;'s ancestors.</div><div class='add'>+ *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;module&lt;/i&gt; is included</div><div class='add'>+ *  or prepended in &lt;i&gt;mod&lt;/i&gt; or one of &lt;i&gt;mod&lt;/i&gt;'s ancestors.</div><div class='ctx'>  *</div><div class='ctx'>  *     module A</div><div class='ctx'>  *     end</div><div class='hunk'>@@ -1056,9 +1492,9 @@ rb_mod_include_p(VALUE mod, VALUE mod2)</div><div class='ctx'> </div><div class='ctx'>     Check_Type(mod2, T_MODULE);</div><div class='ctx'>     for (p = RCLASS_SUPER(mod); p; p = RCLASS_SUPER(p)) {</div><div class='del'>-	if (BUILTIN_TYPE(p) == T_ICLASS) {</div><div class='del'>-	    if (RBASIC(p)-&gt;klass == mod2) return Qtrue;</div><div class='del'>-	}</div><div class='add'>+        if (BUILTIN_TYPE(p) == T_ICLASS &amp;&amp; !FL_TEST(p, RICLASS_IS_ORIGIN)) {</div><div class='add'>+            if (METACLASS_OF(p) == mod2) return Qtrue;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -1085,18 +1521,149 @@ VALUE</div><div class='ctx'> rb_mod_ancestors(VALUE mod)</div><div class='ctx'> {</div><div class='ctx'>     VALUE p, ary = rb_ary_new();</div><div class='add'>+    VALUE refined_class = Qnil;</div><div class='add'>+    if (BUILTIN_TYPE(mod) == T_MODULE &amp;&amp; FL_TEST(mod, RMODULE_IS_REFINEMENT)) {</div><div class='add'>+        refined_class = rb_refinement_module_get_refined_class(mod);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     for (p = mod; p; p = RCLASS_SUPER(p)) {</div><div class='del'>-	if (BUILTIN_TYPE(p) == T_ICLASS) {</div><div class='del'>-	    rb_ary_push(ary, RBASIC(p)-&gt;klass);</div><div class='del'>-	}</div><div class='del'>-	else if (p == RCLASS_ORIGIN(p)) {</div><div class='del'>-	    rb_ary_push(ary, p);</div><div class='del'>-	}</div><div class='add'>+        if (p == refined_class) break;</div><div class='add'>+        if (p != RCLASS_ORIGIN(p)) continue;</div><div class='add'>+        if (BUILTIN_TYPE(p) == T_ICLASS) {</div><div class='add'>+            rb_ary_push(ary, METACLASS_OF(p));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_ary_push(ary, p);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+struct subclass_traverse_data</div><div class='add'>+{</div><div class='add'>+    VALUE buffer;</div><div class='add'>+    long count;</div><div class='add'>+    long maxcount;</div><div class='add'>+    bool immediate_only;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+class_descendants_recursive(VALUE klass, VALUE v)</div><div class='add'>+{</div><div class='add'>+    struct subclass_traverse_data *data = (struct subclass_traverse_data *) v;</div><div class='add'>+</div><div class='add'>+    if (BUILTIN_TYPE(klass) == T_CLASS &amp;&amp; !FL_TEST(klass, FL_SINGLETON)) {</div><div class='add'>+        if (data-&gt;buffer &amp;&amp; data-&gt;count &lt; data-&gt;maxcount &amp;&amp; !rb_objspace_garbage_object_p(klass)) {</div><div class='add'>+            // assumes that this does not cause GC as long as the length does not exceed the capacity</div><div class='add'>+            rb_ary_push(data-&gt;buffer, klass);</div><div class='add'>+        }</div><div class='add'>+        data-&gt;count++;</div><div class='add'>+        if (!data-&gt;immediate_only) {</div><div class='add'>+            rb_class_foreach_subclass(klass, class_descendants_recursive, v);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_class_foreach_subclass(klass, class_descendants_recursive, v);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+class_descendants(VALUE klass, bool immediate_only)</div><div class='add'>+{</div><div class='add'>+    struct subclass_traverse_data data = { Qfalse, 0, -1, immediate_only };</div><div class='add'>+</div><div class='add'>+    // estimate the count of subclasses</div><div class='add'>+    rb_class_foreach_subclass(klass, class_descendants_recursive, (VALUE) &amp;data);</div><div class='add'>+</div><div class='add'>+    // the following allocation may cause GC which may change the number of subclasses</div><div class='add'>+    data.buffer = rb_ary_new_capa(data.count);</div><div class='add'>+    data.maxcount = data.count;</div><div class='add'>+    data.count = 0;</div><div class='add'>+</div><div class='add'>+    size_t gc_count = rb_gc_count();</div><div class='add'>+</div><div class='add'>+    // enumerate subclasses</div><div class='add'>+    rb_class_foreach_subclass(klass, class_descendants_recursive, (VALUE) &amp;data);</div><div class='add'>+</div><div class='add'>+    if (gc_count != rb_gc_count()) {</div><div class='add'>+        rb_bug("GC must not occur during the subclass iteration of Class#descendants");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return data.buffer;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     subclasses -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array of classes where the receiver is the</div><div class='add'>+ *  direct superclass of the class, excluding singleton classes.</div><div class='add'>+ *  The order of the returned array is not defined.</div><div class='add'>+ *</div><div class='add'>+ *     class A; end</div><div class='add'>+ *     class B &lt; A; end</div><div class='add'>+ *     class C &lt; B; end</div><div class='add'>+ *     class D &lt; A; end</div><div class='add'>+ *</div><div class='add'>+ *     A.subclasses        #=&gt; [D, B]</div><div class='add'>+ *     B.subclasses        #=&gt; [C]</div><div class='add'>+ *     C.subclasses        #=&gt; []</div><div class='add'>+ *</div><div class='add'>+ *  Anonymous subclasses (not associated with a constant) are</div><div class='add'>+ *  returned, too:</div><div class='add'>+ *</div><div class='add'>+ *     c = Class.new(A)</div><div class='add'>+ *     A.subclasses        # =&gt; [#&lt;Class:0x00007f003c77bd78&gt;, D, B]</div><div class='add'>+ *</div><div class='add'>+ *  Note that the parent does not hold references to subclasses</div><div class='add'>+ *  and doesn't prevent them from being garbage collected. This</div><div class='add'>+ *  means that the subclass might disappear when all references</div><div class='add'>+ *  to it are dropped:</div><div class='add'>+ *</div><div class='add'>+ *     # drop the reference to subclass, it can be garbage-collected now</div><div class='add'>+ *     c = nil</div><div class='add'>+ *</div><div class='add'>+ *     A.subclasses</div><div class='add'>+ *     # It can be</div><div class='add'>+ *     #  =&gt; [#&lt;Class:0x00007f003c77bd78&gt;, D, B]</div><div class='add'>+ *     # ...or just</div><div class='add'>+ *     #  =&gt; [D, B]</div><div class='add'>+ *     # ...depending on whether garbage collector was run</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_class_subclasses(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return class_descendants(klass, true);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     attached_object -&gt; object</div><div class='add'>+ *</div><div class='add'>+ *  Returns the object for which the receiver is the singleton class.</div><div class='add'>+ *</div><div class='add'>+ *  Raises an TypeError if the class is not a singleton class.</div><div class='add'>+ *</div><div class='add'>+ *     class Foo; end</div><div class='add'>+ *</div><div class='add'>+ *     Foo.singleton_class.attached_object        #=&gt; Foo</div><div class='add'>+ *     Foo.attached_object                        #=&gt; TypeError: `Foo' is not a singleton class</div><div class='add'>+ *     Foo.new.singleton_class.attached_object    #=&gt; #&lt;Foo:0x000000010491a370&gt;</div><div class='add'>+ *     TrueClass.attached_object                  #=&gt; TypeError: `TrueClass' is not a singleton class</div><div class='add'>+ *     NilClass.attached_object                   #=&gt; TypeError: `NilClass' is not a singleton class</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_class_attached_object(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    if (!FL_TEST(klass, FL_SINGLETON)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "`%"PRIsVALUE"' is not a singleton class", klass);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return rb_attr_get(klass, id_attached);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> ins_methods_push(st_data_t name, st_data_t ary)</div><div class='ctx'> {</div><div class='hunk'>@@ -1109,39 +1676,45 @@ ins_methods_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='ctx'>     switch ((rb_method_visibility_t)type) {</div><div class='ctx'>       case METHOD_VISI_UNDEF:</div><div class='ctx'>       case METHOD_VISI_PRIVATE:</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>       default: /* everything but private */</div><div class='del'>-	ins_methods_push(name, ary);</div><div class='del'>-	break;</div><div class='add'>+        ins_methods_push(name, ary);</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ins_methods_prot_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='add'>+ins_methods_type_i(st_data_t name, st_data_t type, st_data_t ary, rb_method_visibility_t visi)</div><div class='ctx'> {</div><div class='del'>-    if ((rb_method_visibility_t)type == METHOD_VISI_PROTECTED) {</div><div class='del'>-	ins_methods_push(name, ary);</div><div class='add'>+    if ((rb_method_visibility_t)type == visi) {</div><div class='add'>+        ins_methods_push(name, ary);</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='add'>+ins_methods_prot_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='add'>+{</div><div class='add'>+    return ins_methods_type_i(name, type, ary, METHOD_VISI_PROTECTED);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='ctx'> ins_methods_priv_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='ctx'> {</div><div class='del'>-    if ((rb_method_visibility_t)type == METHOD_VISI_PRIVATE) {</div><div class='del'>-	ins_methods_push(name, ary);</div><div class='del'>-    }</div><div class='del'>-    return ST_CONTINUE;</div><div class='add'>+    return ins_methods_type_i(name, type, ary, METHOD_VISI_PRIVATE);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> ins_methods_pub_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='ctx'> {</div><div class='del'>-    if ((rb_method_visibility_t)type == METHOD_VISI_PUBLIC) {</div><div class='del'>-	ins_methods_push(name, ary);</div><div class='del'>-    }</div><div class='del'>-    return ST_CONTINUE;</div><div class='add'>+    return ins_methods_type_i(name, type, ary, METHOD_VISI_PUBLIC);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ins_methods_undef_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='add'>+{</div><div class='add'>+    return ins_methods_type_i(name, type, ary, METHOD_VISI_UNDEF);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct method_entry_arg {</div><div class='hunk'>@@ -1157,23 +1730,41 @@ method_entry_i(ID key, VALUE value, void *data)</div><div class='ctx'>     rb_method_visibility_t type;</div><div class='ctx'> </div><div class='ctx'>     if (me-&gt;def-&gt;type == VM_METHOD_TYPE_REFINED) {</div><div class='del'>-	VALUE owner = me-&gt;owner;</div><div class='del'>-	me = rb_resolve_refined_method(Qnil, me);</div><div class='del'>-	if (!me) return ID_TABLE_CONTINUE;</div><div class='del'>-	if (!arg-&gt;recur &amp;&amp; me-&gt;owner != owner) return ID_TABLE_CONTINUE;</div><div class='del'>-    }</div><div class='del'>-    if (!st_lookup(arg-&gt;list, key, 0)) {</div><div class='del'>-	if (UNDEFINED_METHOD_ENTRY_P(me)) {</div><div class='del'>-	    type = METHOD_VISI_UNDEF; /* none */</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    type = METHOD_ENTRY_VISI(me);</div><div class='del'>-	}</div><div class='del'>-	st_add_direct(arg-&gt;list, key, (st_data_t)type);</div><div class='add'>+        VALUE owner = me-&gt;owner;</div><div class='add'>+        me = rb_resolve_refined_method(Qnil, me);</div><div class='add'>+        if (!me) return ID_TABLE_CONTINUE;</div><div class='add'>+        if (!arg-&gt;recur &amp;&amp; me-&gt;owner != owner) return ID_TABLE_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+    if (!st_is_member(arg-&gt;list, key)) {</div><div class='add'>+        if (UNDEFINED_METHOD_ENTRY_P(me)) {</div><div class='add'>+            type = METHOD_VISI_UNDEF; /* none */</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            type = METHOD_ENTRY_VISI(me);</div><div class='add'>+            RUBY_ASSERT(type != METHOD_VISI_UNDEF);</div><div class='add'>+        }</div><div class='add'>+        st_add_direct(arg-&gt;list, key, (st_data_t)type);</div><div class='ctx'>     }</div><div class='ctx'>     return ID_TABLE_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+add_instance_method_list(VALUE mod, struct method_entry_arg *me_arg)</div><div class='add'>+{</div><div class='add'>+    struct rb_id_table *m_tbl = RCLASS_M_TBL(mod);</div><div class='add'>+    if (!m_tbl) return;</div><div class='add'>+    rb_id_table_foreach(m_tbl, method_entry_i, me_arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+particular_class_p(VALUE mod)</div><div class='add'>+{</div><div class='add'>+    if (!mod) return false;</div><div class='add'>+    if (FL_TEST(mod, FL_SINGLETON)) return true;</div><div class='add'>+    if (BUILTIN_TYPE(mod) == T_ICLASS) return true;</div><div class='add'>+    return false;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> class_instance_method_list(int argc, const VALUE *argv, VALUE mod, int obj, int (*func) (st_data_t, st_data_t, st_data_t))</div><div class='ctx'> {</div><div class='hunk'>@@ -1183,20 +1774,26 @@ class_instance_method_list(int argc, const VALUE *argv, VALUE mod, int obj, int</div><div class='ctx'> </div><div class='ctx'>     if (rb_check_arity(argc, 0, 1)) recur = RTEST(argv[0]);</div><div class='ctx'> </div><div class='add'>+    me_arg.list = st_init_numtable();</div><div class='add'>+    me_arg.recur = recur;</div><div class='add'>+</div><div class='add'>+    if (obj) {</div><div class='add'>+        for (; particular_class_p(mod); mod = RCLASS_SUPER(mod)) {</div><div class='add'>+            add_instance_method_list(mod, &amp;me_arg);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     if (!recur &amp;&amp; RCLASS_ORIGIN(mod) != mod) {</div><div class='del'>-	mod = RCLASS_ORIGIN(mod);</div><div class='del'>-	prepended = 1;</div><div class='add'>+        mod = RCLASS_ORIGIN(mod);</div><div class='add'>+        prepended = 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    me_arg.list = st_init_numtable();</div><div class='del'>-    me_arg.recur = recur;</div><div class='ctx'>     for (; mod; mod = RCLASS_SUPER(mod)) {</div><div class='del'>-	if (RCLASS_M_TBL(mod)) rb_id_table_foreach(RCLASS_M_TBL(mod), method_entry_i, &amp;me_arg);</div><div class='del'>-	if (BUILTIN_TYPE(mod) == T_ICLASS &amp;&amp; !prepended) continue;</div><div class='del'>-	if (obj &amp;&amp; FL_TEST(mod, FL_SINGLETON)) continue;</div><div class='del'>-	if (!recur) break;</div><div class='add'>+        add_instance_method_list(mod, &amp;me_arg);</div><div class='add'>+        if (BUILTIN_TYPE(mod) == T_ICLASS &amp;&amp; !prepended) continue;</div><div class='add'>+        if (!recur) break;</div><div class='ctx'>     }</div><div class='del'>-    ary = rb_ary_new();</div><div class='add'>+    ary = rb_ary_new2(me_arg.list-&gt;num_entries);</div><div class='ctx'>     st_foreach(me_arg.list, func, ary);</div><div class='ctx'>     st_free_table(me_arg.list);</div><div class='ctx'> </div><div class='hunk'>@@ -1228,6 +1825,15 @@ class_instance_method_list(int argc, const VALUE *argv, VALUE mod, int obj, int</div><div class='ctx'>  *     B.instance_methods(true).include?(:method1) #=&gt; true</div><div class='ctx'>  *     C.instance_methods(false)                   #=&gt; [:method3]</div><div class='ctx'>  *     C.instance_methods.include?(:method2)       #=&gt; true</div><div class='add'>+ *</div><div class='add'>+ *  Note that method visibility changes in the current class, as well as aliases,</div><div class='add'>+ *  are considered as methods of the current class by this method:</div><div class='add'>+ *</div><div class='add'>+ *     class C &lt; B</div><div class='add'>+ *       alias method4 method2</div><div class='add'>+ *       protected :method2</div><div class='add'>+ *     end</div><div class='add'>+ *     C.instance_methods(false).sort               #=&gt; [:method2, :method3, :method4]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -1291,13 +1897,28 @@ rb_class_public_instance_methods(int argc, const VALUE *argv, VALUE mod)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='add'>+ *     mod.undefined_instance_methods   -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a list of the undefined instance methods defined in &lt;i&gt;mod&lt;/i&gt;.</div><div class='add'>+ *  The undefined methods of any ancestors are not included.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_class_undefined_instance_methods(VALUE mod)</div><div class='add'>+{</div><div class='add'>+    VALUE include_super = Qfalse;</div><div class='add'>+    return class_instance_method_list(1, &amp;include_super, mod, 0, ins_methods_undef_i);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='ctx'>  *     obj.methods(regular=true)    -&gt; array</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns a list of the names of public and protected methods of</div><div class='ctx'>  *  &lt;i&gt;obj&lt;/i&gt;. This will include all the methods accessible in</div><div class='ctx'>  *  &lt;i&gt;obj&lt;/i&gt;'s ancestors.</div><div class='ctx'>  *  If the optional parameter is &lt;code&gt;false&lt;/code&gt;, it</div><div class='del'>- *  returns an array of &lt;i&gt;obj&lt;i&gt;'s public and protected singleton methods,</div><div class='add'>+ *  returns an array of &lt;i&gt;obj&lt;/i&gt;'s public and protected singleton methods,</div><div class='ctx'>  *  the array will not include methods in modules included in &lt;i&gt;obj&lt;/i&gt;.</div><div class='ctx'>  *</div><div class='ctx'>  *     class Klass</div><div class='hunk'>@@ -1324,7 +1945,7 @@ rb_obj_methods(int argc, const VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     rb_check_arity(argc, 0, 1);</div><div class='ctx'>     if (argc &gt; 0 &amp;&amp; !RTEST(argv[0])) {</div><div class='del'>-	return rb_obj_singleton_methods(argc, argv, obj);</div><div class='add'>+        return rb_obj_singleton_methods(argc, argv, obj);</div><div class='ctx'>     }</div><div class='ctx'>     return class_instance_method_list(argc, argv, CLASS_OF(obj), 1, ins_methods_i);</div><div class='ctx'> }</div><div class='hunk'>@@ -1416,21 +2037,24 @@ rb_obj_singleton_methods(int argc, const VALUE *argv, VALUE obj)</div><div class='ctx'>     int recur = TRUE;</div><div class='ctx'> </div><div class='ctx'>     if (rb_check_arity(argc, 0, 1)) recur = RTEST(argv[0]);</div><div class='add'>+    if (RB_TYPE_P(obj, T_CLASS) &amp;&amp; FL_TEST(obj, FL_SINGLETON)) {</div><div class='add'>+        rb_singleton_class(obj);</div><div class='add'>+    }</div><div class='ctx'>     klass = CLASS_OF(obj);</div><div class='ctx'>     origin = RCLASS_ORIGIN(klass);</div><div class='ctx'>     me_arg.list = st_init_numtable();</div><div class='ctx'>     me_arg.recur = recur;</div><div class='ctx'>     if (klass &amp;&amp; FL_TEST(klass, FL_SINGLETON)) {</div><div class='del'>-	if ((mtbl = RCLASS_M_TBL(origin)) != 0) rb_id_table_foreach(mtbl, method_entry_i, &amp;me_arg);</div><div class='del'>-	klass = RCLASS_SUPER(klass);</div><div class='add'>+        if ((mtbl = RCLASS_M_TBL(origin)) != 0) rb_id_table_foreach(mtbl, method_entry_i, &amp;me_arg);</div><div class='add'>+        klass = RCLASS_SUPER(klass);</div><div class='ctx'>     }</div><div class='ctx'>     if (recur) {</div><div class='del'>-	while (klass &amp;&amp; (FL_TEST(klass, FL_SINGLETON) || RB_TYPE_P(klass, T_ICLASS))) {</div><div class='del'>-	    if (klass != origin &amp;&amp; (mtbl = RCLASS_M_TBL(klass)) != 0) rb_id_table_foreach(mtbl, method_entry_i, &amp;me_arg);</div><div class='del'>-	    klass = RCLASS_SUPER(klass);</div><div class='del'>-	}</div><div class='add'>+        while (klass &amp;&amp; (FL_TEST(klass, FL_SINGLETON) || RB_TYPE_P(klass, T_ICLASS))) {</div><div class='add'>+            if (klass != origin &amp;&amp; (mtbl = RCLASS_M_TBL(klass)) != 0) rb_id_table_foreach(mtbl, method_entry_i, &amp;me_arg);</div><div class='add'>+            klass = RCLASS_SUPER(klass);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    ary = rb_ary_new();</div><div class='add'>+    ary = rb_ary_new2(me_arg.list-&gt;num_entries);</div><div class='ctx'>     st_foreach(me_arg.list, ins_methods_i, ary);</div><div class='ctx'>     st_free_table(me_arg.list);</div><div class='ctx'> </div><div class='hunk'>@@ -1441,77 +2065,40 @@ rb_obj_singleton_methods(int argc, const VALUE *argv, VALUE obj)</div><div class='ctx'>  * \}</div><div class='ctx'>  */</div><div class='ctx'> /*!</div><div class='del'>- * \defgroup defmethod Defining methods</div><div class='del'>- * There are some APIs to define a method from C.</div><div class='del'>- * These API takes a C function as a method body.</div><div class='del'>- *</div><div class='del'>- * \par Method body functions</div><div class='del'>- * Method body functions must return a VALUE and</div><div class='del'>- * can be one of the following form:</div><div class='del'>- * &lt;dl&gt;</div><div class='del'>- * &lt;dt&gt;Fixed number of parameters&lt;/dt&gt;</div><div class='del'>- * &lt;dd&gt;</div><div class='del'>- *     This form is a normal C function, excepting it takes</div><div class='del'>- *     a receiver object as the first argument.</div><div class='del'>- *</div><div class='del'>- *     \code</div><div class='del'>- *     static VALUE my_method(VALUE self, VALUE x, VALUE y);</div><div class='del'>- *     \endcode</div><div class='del'>- * &lt;/dd&gt;</div><div class='del'>- * &lt;dt&gt;argc and argv style&lt;/dt&gt;</div><div class='del'>- * &lt;dd&gt;</div><div class='del'>- *     This form takes three parameters: \a argc, \a argv and \a self.</div><div class='del'>- *     \a self is the receiver. \a argc is the number of arguments.</div><div class='del'>- *     \a argv is a pointer to an array of the arguments.</div><div class='del'>- *</div><div class='del'>- *     \code</div><div class='del'>- *     static VALUE my_method(int argc, VALUE *argv, VALUE self);</div><div class='del'>- *     \endcode</div><div class='del'>- * &lt;/dd&gt;</div><div class='del'>- * &lt;dt&gt;Ruby array style&lt;/dt&gt;</div><div class='del'>- * &lt;dd&gt;</div><div class='del'>- *     This form takes two parameters: self and args.</div><div class='del'>- *     \a self is the receiver. \a args is an Array object which</div><div class='del'>- *     contains the arguments.</div><div class='del'>- *</div><div class='del'>- *     \code</div><div class='del'>- *     static VALUE my_method(VALUE self, VALUE args);</div><div class='del'>- *     \endcode</div><div class='del'>- * &lt;/dd&gt;</div><div class='del'>- *</div><div class='del'>- * \par Number of parameters</div><div class='del'>- * Method defining APIs takes the number of parameters which the</div><div class='del'>- * method will takes. This number is called \a argc.</div><div class='del'>- * \a argc can be:</div><div class='del'>- * &lt;dl&gt;</div><div class='del'>- * &lt;dt&gt;zero or positive number&lt;/dt&gt;</div><div class='del'>- * &lt;dd&gt;This means the method body function takes a fixed number of parameters&lt;/dd&gt;</div><div class='del'>- * &lt;dt&gt;-1&lt;/dt&gt;</div><div class='del'>- * &lt;dd&gt;This means the method body function is "argc and argv" style.&lt;/dd&gt;</div><div class='del'>- * &lt;dt&gt;-2&lt;/dt&gt;</div><div class='del'>- * &lt;dd&gt;This means the method body function is "self and args" style.&lt;/dd&gt;</div><div class='del'>- * &lt;/dl&gt;</div><div class='add'>+ * \addtogroup defmethod</div><div class='ctx'>  * \{</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='add'>+#ifdef rb_define_method_id</div><div class='add'>+#undef rb_define_method_id</div><div class='add'>+#endif</div><div class='ctx'> void</div><div class='ctx'> rb_define_method_id(VALUE klass, ID mid, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='ctx'>     rb_add_method_cfunc(klass, mid, func, argc, METHOD_VISI_PUBLIC);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef rb_define_method</div><div class='add'>+#undef rb_define_method</div><div class='add'>+#endif</div><div class='ctx'> void</div><div class='ctx'> rb_define_method(VALUE klass, const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='ctx'>     rb_add_method_cfunc(klass, rb_intern(name), func, argc, METHOD_VISI_PUBLIC);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef rb_define_protected_method</div><div class='add'>+#undef rb_define_protected_method</div><div class='add'>+#endif</div><div class='ctx'> void</div><div class='ctx'> rb_define_protected_method(VALUE klass, const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='ctx'>     rb_add_method_cfunc(klass, rb_intern(name), func, argc, METHOD_VISI_PROTECTED);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef rb_define_private_method</div><div class='add'>+#undef rb_define_private_method</div><div class='add'>+#endif</div><div class='ctx'> void</div><div class='ctx'> rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='hunk'>@@ -1537,7 +2124,7 @@ rb_undef_methods_from(VALUE klass, VALUE super)</div><div class='ctx'> {</div><div class='ctx'>     struct rb_id_table *mtbl = RCLASS_M_TBL(super);</div><div class='ctx'>     if (mtbl) {</div><div class='del'>-	rb_id_table_foreach(mtbl, undef_method_i, (void *)klass);</div><div class='add'>+        rb_id_table_foreach(mtbl, undef_method_i, (void *)klass);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1549,19 +2136,15 @@ rb_undef_methods_from(VALUE klass, VALUE super)</div><div class='ctx'>  * \{</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-#define SPECIAL_SINGLETON(x,c) do {\</div><div class='del'>-    if (obj == (x)) {\</div><div class='del'>-	return (c);\</div><div class='del'>-    }\</div><div class='del'>-} while (0)</div><div class='del'>-</div><div class='ctx'> static inline VALUE</div><div class='ctx'> special_singleton_class_of(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    SPECIAL_SINGLETON(Qnil, rb_cNilClass);</div><div class='del'>-    SPECIAL_SINGLETON(Qfalse, rb_cFalseClass);</div><div class='del'>-    SPECIAL_SINGLETON(Qtrue, rb_cTrueClass);</div><div class='del'>-    return Qnil;</div><div class='add'>+    switch (obj) {</div><div class='add'>+      case Qnil:   return rb_cNilClass;</div><div class='add'>+      case Qfalse: return rb_cFalseClass;</div><div class='add'>+      case Qtrue:  return rb_cTrueClass;</div><div class='add'>+      default:     return Qnil;</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -1584,40 +2167,33 @@ singleton_class_of(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE klass;</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(obj) || FLONUM_P(obj) || STATIC_SYM_P(obj)) {</div><div class='del'>-      no_singleton:</div><div class='del'>-	rb_raise(rb_eTypeError, "can't define singleton");</div><div class='del'>-    }</div><div class='del'>-    if (SPECIAL_CONST_P(obj)) {</div><div class='del'>-	klass = special_singleton_class_of(obj);</div><div class='del'>-	if (NIL_P(klass))</div><div class='del'>-	    rb_bug("unknown immediate %p", (void *)obj);</div><div class='del'>-	return klass;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	switch (BUILTIN_TYPE(obj)) {</div><div class='del'>-	  case T_FLOAT: case T_BIGNUM: case T_SYMBOL:</div><div class='del'>-	    goto no_singleton;</div><div class='del'>-	  case T_STRING:</div><div class='del'>-	    if (FL_TEST_RAW(obj, RSTRING_FSTR)) goto no_singleton;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+    switch (TYPE(obj)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+      case T_SYMBOL:</div><div class='add'>+        rb_raise(rb_eTypeError, "can't define singleton");</div><div class='add'>+</div><div class='add'>+      case T_FALSE:</div><div class='add'>+      case T_TRUE:</div><div class='add'>+      case T_NIL:</div><div class='add'>+        klass = special_singleton_class_of(obj);</div><div class='add'>+        if (NIL_P(klass))</div><div class='add'>+            rb_bug("unknown immediate %p", (void *)obj);</div><div class='add'>+        return klass;</div><div class='add'>+</div><div class='add'>+      case T_STRING:</div><div class='add'>+        if (FL_TEST_RAW(obj, RSTRING_FSTR)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "can't define singleton");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    klass = RBASIC(obj)-&gt;klass;</div><div class='add'>+    klass = METACLASS_OF(obj);</div><div class='ctx'>     if (!(FL_TEST(klass, FL_SINGLETON) &amp;&amp;</div><div class='del'>-	  rb_ivar_get(klass, id_attached) == obj)) {</div><div class='del'>-	rb_serial_t serial = RCLASS_SERIAL(klass);</div><div class='del'>-	klass = rb_make_metaclass(obj, klass);</div><div class='del'>-	RCLASS_SERIAL(klass) = serial;</div><div class='add'>+          rb_attr_get(klass, id_attached) == obj)) {</div><div class='add'>+        klass = rb_make_metaclass(obj, klass);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (OBJ_TAINTED(obj)) {</div><div class='del'>-	OBJ_TAINT(klass);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	FL_UNSET(klass, FL_TAINT);</div><div class='del'>-    }</div><div class='ctx'>     RB_FL_SET_RAW(klass, RB_OBJ_FROZEN_RAW(obj));</div><div class='ctx'> </div><div class='ctx'>     return klass;</div><div class='hunk'>@@ -1628,11 +2204,11 @@ rb_freeze_singleton_class(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     /* should not propagate to meta-meta-class, and so on */</div><div class='ctx'>     if (!(RBASIC(x)-&gt;flags &amp; FL_SINGLETON)) {</div><div class='del'>-	VALUE klass = RBASIC_CLASS(x);</div><div class='del'>-	if (klass &amp;&amp; (klass = RCLASS_ORIGIN(klass)) != 0 &amp;&amp;</div><div class='del'>-	    FL_TEST(klass, (FL_SINGLETON|FL_FREEZE)) == FL_SINGLETON) {</div><div class='del'>-	    OBJ_FREEZE_RAW(klass);</div><div class='del'>-	}</div><div class='add'>+        VALUE klass = RBASIC_CLASS(x);</div><div class='add'>+        if (klass &amp;&amp; // no class when hidden from ObjectSpace</div><div class='add'>+            FL_TEST(klass, (FL_SINGLETON|FL_FREEZE)) == FL_SINGLETON) {</div><div class='add'>+            OBJ_FREEZE_RAW(klass);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1649,31 +2225,14 @@ rb_singleton_class_get(VALUE obj)</div><div class='ctx'>     VALUE klass;</div><div class='ctx'> </div><div class='ctx'>     if (SPECIAL_CONST_P(obj)) {</div><div class='del'>-	return rb_special_singleton_class(obj);</div><div class='add'>+        return rb_special_singleton_class(obj);</div><div class='ctx'>     }</div><div class='del'>-    klass = RBASIC(obj)-&gt;klass;</div><div class='add'>+    klass = METACLASS_OF(obj);</div><div class='ctx'>     if (!FL_TEST(klass, FL_SINGLETON)) return Qnil;</div><div class='del'>-    if (rb_ivar_get(klass, id_attached) != obj) return Qnil;</div><div class='add'>+    if (rb_attr_get(klass, id_attached) != obj) return Qnil;</div><div class='ctx'>     return klass;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Returns the singleton class of \a obj. Creates it if necessary.</div><div class='del'>- *</div><div class='del'>- * \param obj an arbitrary object.</div><div class='del'>- * \throw TypeError if \a obj is a Integer or a Symbol.</div><div class='del'>- * \return the singleton class.</div><div class='del'>- *</div><div class='del'>- * \post \a obj has its own singleton class.</div><div class='del'>- * \post if \a obj is a class,</div><div class='del'>- *       the returned singleton class also has its own</div><div class='del'>- *       singleton class in order to keep consistency of the</div><div class='del'>- *       inheritance structure of metaclasses.</div><div class='del'>- * \note a new singleton class will be created</div><div class='del'>- *       if \a obj does not have it.</div><div class='del'>- * \note the singleton classes for nil, true and false are:</div><div class='del'>- *       NilClass, TrueClass and FalseClass.</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_singleton_class(VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -1694,28 +2253,18 @@ rb_singleton_class(VALUE obj)</div><div class='ctx'>  * \{</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Defines a singleton method for \a obj.</div><div class='del'>- * \param obj    an arbitrary object</div><div class='del'>- * \param name   name of the singleton method</div><div class='del'>- * \param func   the method body</div><div class='del'>- * \param argc   the number of parameters, or -1 or -2. see \ref defmethod.</div><div class='del'>- */</div><div class='add'>+#ifdef rb_define_singleton_method</div><div class='add'>+#undef rb_define_singleton_method</div><div class='add'>+#endif</div><div class='ctx'> void</div><div class='ctx'> rb_define_singleton_method(VALUE obj, const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='ctx'>     rb_define_method(singleton_class_of(obj), name, func, argc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*!</div><div class='del'>- * Defines a module function for \a module.</div><div class='del'>- * \param module  an module or a class.</div><div class='del'>- * \param name    name of the function</div><div class='del'>- * \param func    the method body</div><div class='del'>- * \param argc    the number of parameters, or -1 or -2. see \ref defmethod.</div><div class='del'>- */</div><div class='add'>+#ifdef rb_define_module_function</div><div class='add'>+#undef rb_define_module_function</div><div class='add'>+#endif</div><div class='ctx'> void</div><div class='ctx'> rb_define_module_function(VALUE module, const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='hunk'>@@ -1723,39 +2272,21 @@ rb_define_module_function(VALUE module, const char *name, VALUE (*func)(ANYARGS)</div><div class='ctx'>     rb_define_singleton_method(module, name, func, argc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-/*!</div><div class='del'>- * Defines a global function</div><div class='del'>- * \param name    name of the function</div><div class='del'>- * \param func    the method body</div><div class='del'>- * \param argc    the number of parameters, or -1 or -2. see \ref defmethod.</div><div class='del'>- */</div><div class='add'>+#ifdef rb_define_global_function</div><div class='add'>+#undef rb_define_global_function</div><div class='add'>+#endif</div><div class='ctx'> void</div><div class='ctx'> rb_define_global_function(const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> {</div><div class='ctx'>     rb_define_module_function(rb_mKernel, name, func, argc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-/*!</div><div class='del'>- * Defines an alias of a method.</div><div class='del'>- * \param klass  the class which the original method belongs to</div><div class='del'>- * \param name1  a new name for the method</div><div class='del'>- * \param name2  the original name of the method</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> rb_define_alias(VALUE klass, const char *name1, const char *name2)</div><div class='ctx'> {</div><div class='ctx'>     rb_alias(klass, rb_intern(name1), rb_intern(name2));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Defines (a) public accessor method(s) for an attribute.</div><div class='del'>- * \param klass  the class which the attribute will belongs to</div><div class='del'>- * \param name   name of the attribute</div><div class='del'>- * \param read   a getter method for the attribute will be defined if \a read is non-zero.</div><div class='del'>- * \param write  a setter method for the attribute will be defined if \a write is non-zero.</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> rb_define_attr(VALUE klass, const char *name, int read, int write)</div><div class='ctx'> {</div><div class='hunk'>@@ -1769,14 +2300,13 @@ rb_keyword_error_new(const char *error, VALUE keys)</div><div class='ctx'>     VALUE error_message = rb_sprintf("%s keyword%.*s", error, len &gt; 1, "s");</div><div class='ctx'> </div><div class='ctx'>     if (len &gt; 0) {</div><div class='del'>-	rb_str_cat_cstr(error_message, ": ");</div><div class='del'>-	while (1) {</div><div class='add'>+        rb_str_cat_cstr(error_message, ": ");</div><div class='add'>+        while (1) {</div><div class='ctx'>             const VALUE k = RARRAY_AREF(keys, i);</div><div class='del'>-	    Check_Type(k, T_SYMBOL); /* wrong hash is given to rb_get_kwargs */</div><div class='del'>-	    rb_str_append(error_message, rb_sym2str(k));</div><div class='del'>-	    if (++i &gt;= len) break;</div><div class='del'>-	    rb_str_cat_cstr(error_message, ", ");</div><div class='del'>-	}</div><div class='add'>+            rb_str_append(error_message, rb_inspect(k));</div><div class='add'>+            if (++i &gt;= len) break;</div><div class='add'>+            rb_str_cat_cstr(error_message, ", ");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return rb_exc_new_str(rb_eArgError, error_message);</div><div class='hunk'>@@ -1795,63 +2325,39 @@ unknown_keyword_error(VALUE hash, const ID *table, int keywords)</div><div class='ctx'> {</div><div class='ctx'>     int i;</div><div class='ctx'>     for (i = 0; i &lt; keywords; i++) {</div><div class='del'>-	st_data_t key = ID2SYM(table[i]);</div><div class='add'>+        st_data_t key = ID2SYM(table[i]);</div><div class='ctx'>         rb_hash_stlike_delete(hash, &amp;key, NULL);</div><div class='ctx'>     }</div><div class='ctx'>     rb_keyword_error("unknown", rb_hash_keys(hash));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-struct extract_keywords {</div><div class='del'>-    VALUE kwdhash, nonsymkey;</div><div class='del'>-};</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> separate_symbol(st_data_t key, st_data_t value, st_data_t arg)</div><div class='ctx'> {</div><div class='del'>-    struct extract_keywords *argp = (struct extract_keywords *)arg;</div><div class='del'>-    VALUE k = (VALUE)key, v = (VALUE)value;</div><div class='del'>-</div><div class='del'>-    if (argp-&gt;kwdhash) {</div><div class='del'>-        if (UNLIKELY(!SYMBOL_P(k))) {</div><div class='del'>-            argp-&gt;nonsymkey = k;</div><div class='del'>-            return ST_STOP;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    else if (SYMBOL_P(k)) {</div><div class='del'>-        if (UNLIKELY(argp-&gt;nonsymkey != Qundef)) {</div><div class='del'>-            argp-&gt;kwdhash = Qnil;</div><div class='del'>-            return ST_STOP;</div><div class='del'>-        }</div><div class='del'>-        argp-&gt;kwdhash = rb_hash_new();</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        if (argp-&gt;nonsymkey == Qundef)</div><div class='del'>-            argp-&gt;nonsymkey = k;</div><div class='del'>-        return ST_CONTINUE;</div><div class='del'>-    }</div><div class='del'>-    rb_hash_aset(argp-&gt;kwdhash, k, v);</div><div class='add'>+    VALUE *kwdhash = (VALUE *)arg;</div><div class='add'>+    if (!SYMBOL_P(key)) kwdhash++;</div><div class='add'>+    if (!*kwdhash) *kwdhash = rb_hash_new();</div><div class='add'>+    rb_hash_aset(*kwdhash, (VALUE)key, (VALUE)value);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_extract_keywords(VALUE *orighash)</div><div class='ctx'> {</div><div class='del'>-    struct extract_keywords arg = {0, Qundef};</div><div class='add'>+    VALUE parthash[2] = {0, 0};</div><div class='ctx'>     VALUE hash = *orighash;</div><div class='ctx'> </div><div class='ctx'>     if (RHASH_EMPTY_P(hash)) {</div><div class='del'>-	*orighash = 0;</div><div class='del'>-	return hash;</div><div class='del'>-    }</div><div class='del'>-    rb_hash_foreach(hash, separate_symbol, (st_data_t)&amp;arg);</div><div class='del'>-    if (arg.kwdhash) {</div><div class='del'>-        if (arg.nonsymkey != Qundef) {</div><div class='del'>-            rb_raise(rb_eArgError, "non-symbol key in keyword arguments: %+"PRIsVALUE,</div><div class='del'>-                     arg.nonsymkey);</div><div class='del'>-        }</div><div class='ctx'>         *orighash = 0;</div><div class='add'>+        return hash;</div><div class='add'>+    }</div><div class='add'>+    rb_hash_foreach(hash, separate_symbol, (st_data_t)&amp;parthash);</div><div class='add'>+    *orighash = parthash[1];</div><div class='add'>+    if (parthash[1] &amp;&amp; RBASIC_CLASS(hash) != rb_cHash) {</div><div class='add'>+        RBASIC_SET_CLASS(parthash[1], RBASIC_CLASS(hash));</div><div class='ctx'>     }</div><div class='del'>-    return arg.kwdhash;</div><div class='add'>+    return parthash[0];</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='hunk'>@@ -1864,193 +2370,230 @@ rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, V</div><div class='ctx'> </div><div class='ctx'> #define extract_kwarg(keyword, val) \</div><div class='ctx'>     (key = (st_data_t)(keyword), values ? \</div><div class='del'>-     rb_hash_stlike_delete(keyword_hash, &amp;key, (val)) : \</div><div class='del'>-     rb_hash_stlike_lookup(keyword_hash, key, (val)))</div><div class='add'>+     (rb_hash_stlike_delete(keyword_hash, &amp;key, &amp;(val)) || ((val) = Qundef, 0)) : \</div><div class='add'>+     rb_hash_stlike_lookup(keyword_hash, key, NULL))</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(keyword_hash)) keyword_hash = 0;</div><div class='ctx'> </div><div class='ctx'>     if (optional &lt; 0) {</div><div class='del'>-	rest = 1;</div><div class='del'>-	optional = -1-optional;</div><div class='del'>-    }</div><div class='del'>-    if (values) {</div><div class='del'>-	for (j = 0; j &lt; required + optional; j++) {</div><div class='del'>-	    values[j] = Qundef;</div><div class='del'>-	}</div><div class='add'>+        rest = 1;</div><div class='add'>+        optional = -1-optional;</div><div class='ctx'>     }</div><div class='ctx'>     if (required) {</div><div class='del'>-	for (; i &lt; required; i++) {</div><div class='del'>-	    VALUE keyword = ID2SYM(table[i]);</div><div class='del'>-	    if (keyword_hash) {</div><div class='del'>-		st_data_t val;</div><div class='del'>-		if (extract_kwarg(keyword, &amp;val)) {</div><div class='del'>-		    if (values) values[i] = (VALUE)val;</div><div class='del'>-		    continue;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    if (NIL_P(missing)) missing = rb_ary_tmp_new(1);</div><div class='del'>-	    rb_ary_push(missing, keyword);</div><div class='del'>-	}</div><div class='del'>-	if (!NIL_P(missing)) {</div><div class='del'>-	    rb_keyword_error("missing", missing);</div><div class='del'>-	}</div><div class='add'>+        for (; i &lt; required; i++) {</div><div class='add'>+            VALUE keyword = ID2SYM(table[i]);</div><div class='add'>+            if (keyword_hash) {</div><div class='add'>+                if (extract_kwarg(keyword, values[i])) {</div><div class='add'>+                    continue;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            if (NIL_P(missing)) missing = rb_ary_hidden_new(1);</div><div class='add'>+            rb_ary_push(missing, keyword);</div><div class='add'>+        }</div><div class='add'>+        if (!NIL_P(missing)) {</div><div class='add'>+            rb_keyword_error("missing", missing);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     j = i;</div><div class='ctx'>     if (optional &amp;&amp; keyword_hash) {</div><div class='del'>-	for (i = 0; i &lt; optional; i++) {</div><div class='del'>-	    st_data_t val;</div><div class='del'>-	    if (extract_kwarg(ID2SYM(table[required+i]), &amp;val)) {</div><div class='del'>-		if (values) values[required+i] = (VALUE)val;</div><div class='del'>-		j++;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; optional; i++) {</div><div class='add'>+            if (extract_kwarg(ID2SYM(table[required+i]), values[required+i])) {</div><div class='add'>+                j++;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (!rest &amp;&amp; keyword_hash) {</div><div class='del'>-	if (RHASH_SIZE(keyword_hash) &gt; (unsigned int)(values ? 0 : j)) {</div><div class='del'>-	    unknown_keyword_error(keyword_hash, table, required+optional);</div><div class='del'>-	}</div><div class='add'>+        if (RHASH_SIZE(keyword_hash) &gt; (unsigned int)(values ? 0 : j)) {</div><div class='add'>+            unknown_keyword_error(keyword_hash, table, required+optional);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (values &amp;&amp; !keyword_hash) {</div><div class='add'>+        for (i = 0; i &lt; required + optional; i++) {</div><div class='add'>+            values[i] = Qundef;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return j;</div><div class='ctx'> #undef extract_kwarg</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#undef rb_scan_args</div><div class='del'>-int</div><div class='del'>-rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...)</div><div class='add'>+struct rb_scan_args_t {</div><div class='add'>+    int kw_flag;</div><div class='add'>+    int n_lead;</div><div class='add'>+    int n_opt;</div><div class='add'>+    int n_trail;</div><div class='add'>+    bool f_var;</div><div class='add'>+    bool f_hash;</div><div class='add'>+    bool f_block;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_scan_args_parse(int kw_flag, const char *fmt, struct rb_scan_args_t *arg)</div><div class='ctx'> {</div><div class='del'>-    int i;</div><div class='ctx'>     const char *p = fmt;</div><div class='del'>-    VALUE *var;</div><div class='del'>-    va_list vargs;</div><div class='del'>-    int f_var = 0, f_hash = 0, f_block = 0;</div><div class='del'>-    int n_lead = 0, n_opt = 0, n_trail = 0, n_mand;</div><div class='del'>-    int argi = 0, last_idx = -1;</div><div class='del'>-    VALUE hash = Qnil, last_hash = 0;</div><div class='add'>+</div><div class='add'>+    memset(arg, 0, sizeof(*arg));</div><div class='add'>+    arg-&gt;kw_flag = kw_flag;</div><div class='ctx'> </div><div class='ctx'>     if (ISDIGIT(*p)) {</div><div class='del'>-	n_lead = *p - '0';</div><div class='del'>-	p++;</div><div class='del'>-	if (ISDIGIT(*p)) {</div><div class='del'>-	    n_opt = *p - '0';</div><div class='del'>-	    p++;</div><div class='del'>-	}</div><div class='add'>+        arg-&gt;n_lead = *p - '0';</div><div class='add'>+        p++;</div><div class='add'>+        if (ISDIGIT(*p)) {</div><div class='add'>+            arg-&gt;n_opt = *p - '0';</div><div class='add'>+            p++;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (*p == '*') {</div><div class='del'>-	f_var = 1;</div><div class='del'>-	p++;</div><div class='add'>+        arg-&gt;f_var = 1;</div><div class='add'>+        p++;</div><div class='ctx'>     }</div><div class='ctx'>     if (ISDIGIT(*p)) {</div><div class='del'>-	n_trail = *p - '0';</div><div class='del'>-	p++;</div><div class='add'>+        arg-&gt;n_trail = *p - '0';</div><div class='add'>+        p++;</div><div class='ctx'>     }</div><div class='ctx'>     if (*p == ':') {</div><div class='del'>-	f_hash = 1;</div><div class='del'>-	p++;</div><div class='add'>+        arg-&gt;f_hash = 1;</div><div class='add'>+        p++;</div><div class='ctx'>     }</div><div class='ctx'>     if (*p == '&amp;') {</div><div class='del'>-	f_block = 1;</div><div class='del'>-	p++;</div><div class='add'>+        arg-&gt;f_block = 1;</div><div class='add'>+        p++;</div><div class='ctx'>     }</div><div class='ctx'>     if (*p != '\0') {</div><div class='del'>-	rb_fatal("bad scan arg format: %s", fmt);</div><div class='del'>-    }</div><div class='del'>-    n_mand = n_lead + n_trail;</div><div class='del'>-</div><div class='del'>-    if (argc &lt; n_mand)</div><div class='del'>-	goto argc_error;</div><div class='del'>-</div><div class='del'>-    va_start(vargs, fmt);</div><div class='del'>-</div><div class='del'>-    /* capture an option hash - phase 1: pop */</div><div class='del'>-    if (f_hash &amp;&amp; n_mand &lt; argc) {</div><div class='del'>-	VALUE last = argv[argc - 1];</div><div class='del'>-</div><div class='del'>-	if (NIL_P(last)) {</div><div class='del'>-	    /* nil is taken as an empty option hash only if it is not</div><div class='del'>-	       ambiguous; i.e. '*' is not specified and arguments are</div><div class='del'>-	       given more than sufficient */</div><div class='del'>-	    if (!f_var &amp;&amp; n_mand + n_opt &lt; argc)</div><div class='del'>-		argc--;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    hash = rb_check_hash_type(last);</div><div class='del'>-	    if (!NIL_P(hash)) {</div><div class='del'>-		VALUE opts = rb_extract_keywords(&amp;hash);</div><div class='del'>-		if (!(last_hash = hash)) argc--;</div><div class='del'>-		else last_idx = argc - 1;</div><div class='del'>-		hash = opts ? opts : Qnil;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        rb_fatal("bad scan arg format: %s", fmt);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+rb_scan_args_assign(const struct rb_scan_args_t *arg, int argc, const VALUE *const argv, va_list vargs)</div><div class='add'>+{</div><div class='add'>+    int i, argi = 0;</div><div class='add'>+    VALUE *var, hash = Qnil;</div><div class='add'>+#define rb_scan_args_next_param() va_arg(vargs, VALUE *)</div><div class='add'>+    const int kw_flag = arg-&gt;kw_flag;</div><div class='add'>+    const int n_lead = arg-&gt;n_lead;</div><div class='add'>+    const int n_opt = arg-&gt;n_opt;</div><div class='add'>+    const int n_trail = arg-&gt;n_trail;</div><div class='add'>+    const int n_mand = n_lead + n_trail;</div><div class='add'>+    const bool f_var = arg-&gt;f_var;</div><div class='add'>+    const bool f_hash = arg-&gt;f_hash;</div><div class='add'>+    const bool f_block = arg-&gt;f_block;</div><div class='add'>+</div><div class='add'>+    /* capture an option hash - phase 1: pop from the argv */</div><div class='add'>+    if (f_hash &amp;&amp; argc &gt; 0) {</div><div class='add'>+        VALUE last = argv[argc - 1];</div><div class='add'>+        if (rb_scan_args_keyword_p(kw_flag, last)) {</div><div class='add'>+            hash = rb_hash_dup(last);</div><div class='add'>+            argc--;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (argc &lt; n_mand) {</div><div class='add'>+        goto argc_error;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     /* capture leading mandatory arguments */</div><div class='del'>-    for (i = n_lead; i-- &gt; 0; ) {</div><div class='del'>-	var = va_arg(vargs, VALUE *);</div><div class='del'>-	if (var) *var = (argi == last_idx) ? last_hash : argv[argi];</div><div class='del'>-	argi++;</div><div class='add'>+    for (i = 0; i &lt; n_lead; i++) {</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (var) *var = argv[argi];</div><div class='add'>+        argi++;</div><div class='ctx'>     }</div><div class='ctx'>     /* capture optional arguments */</div><div class='del'>-    for (i = n_opt; i-- &gt; 0; ) {</div><div class='del'>-	var = va_arg(vargs, VALUE *);</div><div class='del'>-	if (argi &lt; argc - n_trail) {</div><div class='del'>-	    if (var) *var = (argi == last_idx) ? last_hash : argv[argi];</div><div class='del'>-	    argi++;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (var) *var = Qnil;</div><div class='del'>-	}</div><div class='add'>+    for (i = 0; i &lt; n_opt; i++) {</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (argi &lt; argc - n_trail) {</div><div class='add'>+            if (var) *var = argv[argi];</div><div class='add'>+            argi++;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (var) *var = Qnil;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     /* capture variable length arguments */</div><div class='ctx'>     if (f_var) {</div><div class='del'>-	int n_var = argc - argi - n_trail;</div><div class='del'>-</div><div class='del'>-	var = va_arg(vargs, VALUE *);</div><div class='del'>-	if (0 &lt; n_var) {</div><div class='del'>-	    if (var) {</div><div class='del'>-		int f_last = (last_idx + 1 == argc - n_trail);</div><div class='del'>-		*var = rb_ary_new4(n_var-f_last, &amp;argv[argi]);</div><div class='del'>-		if (f_last) rb_ary_push(*var, last_hash);</div><div class='del'>-	    }</div><div class='del'>-	    argi += n_var;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (var) *var = rb_ary_new();</div><div class='del'>-	}</div><div class='add'>+        int n_var = argc - argi - n_trail;</div><div class='add'>+</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (0 &lt; n_var) {</div><div class='add'>+            if (var) *var = rb_ary_new_from_values(n_var, &amp;argv[argi]);</div><div class='add'>+            argi += n_var;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (var) *var = rb_ary_new();</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     /* capture trailing mandatory arguments */</div><div class='del'>-    for (i = n_trail; i-- &gt; 0; ) {</div><div class='del'>-	var = va_arg(vargs, VALUE *);</div><div class='del'>-	if (var) *var = (argi == last_idx) ? last_hash : argv[argi];</div><div class='del'>-	argi++;</div><div class='add'>+    for (i = 0; i &lt; n_trail; i++) {</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (var) *var = argv[argi];</div><div class='add'>+        argi++;</div><div class='ctx'>     }</div><div class='ctx'>     /* capture an option hash - phase 2: assignment */</div><div class='ctx'>     if (f_hash) {</div><div class='del'>-	var = va_arg(vargs, VALUE *);</div><div class='del'>-	if (var) *var = hash;</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (var) *var = hash;</div><div class='ctx'>     }</div><div class='ctx'>     /* capture iterator block */</div><div class='ctx'>     if (f_block) {</div><div class='del'>-	var = va_arg(vargs, VALUE *);</div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    *var = rb_block_proc();</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    *var = Qnil;</div><div class='del'>-	}</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            *var = rb_block_proc();</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            *var = Qnil;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    va_end(vargs);</div><div class='ctx'> </div><div class='del'>-    if (argi &lt; argc) {</div><div class='del'>-      argc_error:</div><div class='del'>-	rb_error_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt);</div><div class='add'>+    if (argi == argc) {</div><div class='add'>+        return argc;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return argc;</div><div class='add'>+  argc_error:</div><div class='add'>+    return -(argc + 1);</div><div class='add'>+#undef rb_scan_args_next_param</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+rb_scan_args_result(const struct rb_scan_args_t *const arg, int argc)</div><div class='add'>+{</div><div class='add'>+    const int n_lead = arg-&gt;n_lead;</div><div class='add'>+    const int n_opt = arg-&gt;n_opt;</div><div class='add'>+    const int n_trail = arg-&gt;n_trail;</div><div class='add'>+    const int n_mand = n_lead + n_trail;</div><div class='add'>+    const bool f_var = arg-&gt;f_var;</div><div class='add'>+</div><div class='add'>+    if (argc &gt;= 0) {</div><div class='add'>+        return argc;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    argc = -argc - 1;</div><div class='add'>+    rb_error_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt);</div><div class='add'>+    UNREACHABLE_RETURN(-1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#undef rb_scan_args</div><div class='ctx'> int</div><div class='del'>-rb_class_has_methods(VALUE c)</div><div class='add'>+rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...)</div><div class='ctx'> {</div><div class='del'>-    return rb_id_table_size(RCLASS_M_TBL(c)) == 0 ? FALSE : TRUE;</div><div class='add'>+    va_list vargs;</div><div class='add'>+    struct rb_scan_args_t arg;</div><div class='add'>+    rb_scan_args_parse(RB_SCAN_ARGS_PASS_CALLED_KEYWORDS, fmt, &amp;arg);</div><div class='add'>+    va_start(vargs,fmt);</div><div class='add'>+    argc = rb_scan_args_assign(&amp;arg, argc, argv, vargs);</div><div class='add'>+    va_end(vargs);</div><div class='add'>+    return rb_scan_args_result(&amp;arg, argc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#undef rb_scan_args_kw</div><div class='add'>+int</div><div class='add'>+rb_scan_args_kw(int kw_flag, int argc, const VALUE *argv, const char *fmt, ...)</div><div class='add'>+{</div><div class='add'>+    va_list vargs;</div><div class='add'>+    struct rb_scan_args_t arg;</div><div class='add'>+    rb_scan_args_parse(kw_flag, fmt, &amp;arg);</div><div class='add'>+    va_start(vargs,fmt);</div><div class='add'>+    argc = rb_scan_args_assign(&amp;arg, argc, argv, vargs);</div><div class='add'>+    va_end(vargs);</div><div class='add'>+    return rb_scan_args_result(&amp;arg, argc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*!</div><div class='head'>diff --git a/common.mk b/common.mk<br/>index 4bcd0037d3..126053c9c8 100644<br/>--- a/<a href='/ruby.git/tree/common.mk?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>common.mk</a><br/>+++ b/<a href='/ruby.git/tree/common.mk?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>common.mk</a></div><div class='hunk'>@@ -1,11 +1,14 @@</div><div class='add'>+# -*- mode: makefile-gmake; indent-tabs-mode: t -*-</div><div class='add'>+</div><div class='ctx'> bin: $(PROGRAM) $(WPROGRAM)</div><div class='ctx'> lib: $(LIBRUBY)</div><div class='ctx'> dll: $(LIBRUBY_SO)</div><div class='ctx'> </div><div class='del'>-.SUFFIXES: .inc .h .c .y .i .$(ASMEXT) .$(DTRACE_EXT)</div><div class='add'>+.SUFFIXES: .rbinc .rb .inc .h .c .y .i .$(ASMEXT) .$(DTRACE_EXT)</div><div class='ctx'> </div><div class='ctx'> # V=0 quiet, V=1 verbose.  other values don't work.</div><div class='ctx'> V = 0</div><div class='add'>+V0 = $(V:0=)</div><div class='ctx'> Q1 = $(V:1=)</div><div class='ctx'> Q = $(Q1:0=@)</div><div class='ctx'> ECHO0 = $(ECHO1:0=echo)</div><div class='hunk'>@@ -15,8 +18,10 @@ mflags = $(MFLAGS)</div><div class='ctx'> gnumake_recursive =</div><div class='ctx'> enable_shared = $(ENABLE_SHARED:no=)</div><div class='ctx'> </div><div class='del'>-UNICODE_VERSION = 11.0.0</div><div class='del'>-UNICODE_EMOJI_VERSION = 11.0</div><div class='add'>+UNICODE_VERSION = 15.0.0</div><div class='add'>+UNICODE_EMOJI_VERSION_0 = $(UNICODE_VERSION)///</div><div class='add'>+UNICODE_EMOJI_VERSION_1 = $(UNICODE_EMOJI_VERSION_0:.0///=)</div><div class='add'>+UNICODE_EMOJI_VERSION = $(UNICODE_EMOJI_VERSION_1:///=)</div><div class='ctx'> UNICODE_BETA = NO</div><div class='ctx'> </div><div class='ctx'> ### set the following environment variable or uncomment the line if</div><div class='hunk'>@@ -36,43 +41,50 @@ RUBYLIB       = $(PATH_SEPARATOR)</div><div class='ctx'> RUBYOPT       = -</div><div class='ctx'> RUN_OPTS      = --disable-gems</div><div class='ctx'> </div><div class='del'>-INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(srcdir) -I$(UNICODE_HDR_DIR)</div><div class='add'>+# GITPULLOPTIONS = --no-tags</div><div class='add'>+</div><div class='add'>+INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(srcdir) -I$(UNICODE_HDR_DIR) $(incflags)</div><div class='ctx'> </div><div class='ctx'> GEM_HOME =</div><div class='ctx'> GEM_PATH =</div><div class='ctx'> GEM_VENDOR =</div><div class='ctx'> </div><div class='ctx'> BENCHMARK_DRIVER_GIT_URL = https://github.com/benchmark-driver/benchmark-driver</div><div class='del'>-BENCHMARK_DRIVER_GIT_REF = v0.14.11</div><div class='add'>+BENCHMARK_DRIVER_GIT_REF = v0.16.0</div><div class='ctx'> SIMPLECOV_GIT_URL = https://github.com/colszowka/simplecov.git</div><div class='del'>-SIMPLECOV_GIT_REF = v0.15.0</div><div class='add'>+SIMPLECOV_GIT_REF = v0.17.0</div><div class='ctx'> SIMPLECOV_HTML_GIT_URL = https://github.com/colszowka/simplecov-html.git</div><div class='ctx'> SIMPLECOV_HTML_GIT_REF = v0.10.2</div><div class='ctx'> DOCLIE_GIT_URL = https://github.com/ms-ati/docile.git</div><div class='del'>-DOCLIE_GIT_REF = v1.1.5</div><div class='add'>+DOCLIE_GIT_REF = v1.3.2</div><div class='ctx'> </div><div class='ctx'> STATIC_RUBY   = static-ruby</div><div class='ctx'> </div><div class='ctx'> TIMESTAMPDIR  = $(EXTOUT)/.timestamp</div><div class='add'>+RUBYCOMMONDIR = $(EXTOUT)/common</div><div class='ctx'> EXTCONF       = extconf.rb</div><div class='ctx'> LIBRUBY_EXTS  = ./.libruby-with-ext.time</div><div class='ctx'> REVISION_H    = ./.revision.time</div><div class='ctx'> PLATFORM_D    = $(TIMESTAMPDIR)/.$(PLATFORM_DIR).time</div><div class='ctx'> ENC_TRANS_D   = $(TIMESTAMPDIR)/.enc-trans.time</div><div class='add'>+RDOC          = $(XRUBY) "$(srcdir)/libexec/rdoc" --root "$(srcdir)" --encoding=UTF-8 --all</div><div class='ctx'> RDOCOUT       = $(EXTOUT)/rdoc</div><div class='ctx'> HTMLOUT       = $(EXTOUT)/html</div><div class='ctx'> CAPIOUT       = doc/capi</div><div class='ctx'> INSTALL_DOC_OPTS = --rdoc-output="$(RDOCOUT)" --html-output="$(HTMLOUT)"</div><div class='add'>+RDOC_GEN_OPTS = --page-dir "$(srcdir)/doc" --no-force-update \</div><div class='add'>+	--title "Documentation for Ruby $(RUBY_API_VERSION)" \</div><div class='add'>+	--main README.md</div><div class='ctx'> </div><div class='ctx'> INITOBJS      = dmyext.$(OBJEXT) dmyenc.$(OBJEXT)</div><div class='ctx'> NORMALMAINOBJ = main.$(OBJEXT)</div><div class='ctx'> MAINOBJ       = $(NORMALMAINOBJ)</div><div class='ctx'> DLDOBJS	      = $(INITOBJS)</div><div class='ctx'> EXTSOLIBS     =</div><div class='del'>-MINIOBJS      = $(ARCHMINIOBJS) miniinit.$(OBJEXT) dmyext.$(OBJEXT) miniprelude.$(OBJEXT)</div><div class='add'>+MINIOBJS      = $(ARCHMINIOBJS) miniinit.$(OBJEXT) dmyext.$(OBJEXT)</div><div class='ctx'> ENC_MK        = enc.mk</div><div class='ctx'> MAKE_ENC      = -f $(ENC_MK) V="$(V)" UNICODE_HDR_DIR="$(UNICODE_HDR_DIR)" \</div><div class='del'>-		RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(mflags)</div><div class='add'>+		RUBY="$(BOOTSTRAPRUBY)" MINIRUBY="$(BOOTSTRAPRUBY)" $(mflags)</div><div class='ctx'> </div><div class='ctx'> COMMONOBJS    = array.$(OBJEXT) \</div><div class='ctx'> 		ast.$(OBJEXT) \</div><div class='hunk'>@@ -96,12 +108,14 @@ COMMONOBJS    = array.$(OBJEXT) \</div><div class='ctx'> 		hash.$(OBJEXT) \</div><div class='ctx'> 		inits.$(OBJEXT) \</div><div class='ctx'> 		io.$(OBJEXT) \</div><div class='add'>+		io_buffer.$(OBJEXT) \</div><div class='ctx'> 		iseq.$(OBJEXT) \</div><div class='ctx'> 		load.$(OBJEXT) \</div><div class='ctx'> 		marshal.$(OBJEXT) \</div><div class='ctx'> 		math.$(OBJEXT) \</div><div class='add'>+		memory_view.$(OBJEXT) \</div><div class='ctx'> 		mjit.$(OBJEXT) \</div><div class='del'>-		mjit_compile.$(OBJEXT) \</div><div class='add'>+		mjit_c.$(OBJEXT) \</div><div class='ctx'> 		node.$(OBJEXT) \</div><div class='ctx'> 		numeric.$(OBJEXT) \</div><div class='ctx'> 		object.$(OBJEXT) \</div><div class='hunk'>@@ -109,6 +123,7 @@ COMMONOBJS    = array.$(OBJEXT) \</div><div class='ctx'> 		parse.$(OBJEXT) \</div><div class='ctx'> 		proc.$(OBJEXT) \</div><div class='ctx'> 		process.$(OBJEXT) \</div><div class='add'>+		ractor.$(OBJEXT) \</div><div class='ctx'> 		random.$(OBJEXT) \</div><div class='ctx'> 		range.$(OBJEXT) \</div><div class='ctx'> 		rational.$(OBJEXT) \</div><div class='hunk'>@@ -120,7 +135,8 @@ COMMONOBJS    = array.$(OBJEXT) \</div><div class='ctx'> 		regparse.$(OBJEXT) \</div><div class='ctx'> 		regsyntax.$(OBJEXT) \</div><div class='ctx'> 		ruby.$(OBJEXT) \</div><div class='del'>-		safe.$(OBJEXT) \</div><div class='add'>+		scheduler.$(OBJEXT) \</div><div class='add'>+		shape.$(OBJEXT) \</div><div class='ctx'> 		signal.$(OBJEXT) \</div><div class='ctx'> 		sprintf.$(OBJEXT) \</div><div class='ctx'> 		st.$(OBJEXT) \</div><div class='hunk'>@@ -138,7 +154,9 @@ COMMONOBJS    = array.$(OBJEXT) \</div><div class='ctx'> 		vm.$(OBJEXT) \</div><div class='ctx'> 		vm_backtrace.$(OBJEXT) \</div><div class='ctx'> 		vm_dump.$(OBJEXT) \</div><div class='add'>+		vm_sync.$(OBJEXT) \</div><div class='ctx'> 		vm_trace.$(OBJEXT) \</div><div class='add'>+		$(YJIT_OBJ) \</div><div class='ctx'> 		$(COROUTINE_OBJ) \</div><div class='ctx'> 		$(DTRACE_OBJ) \</div><div class='ctx'> 		$(BUILTIN_ENCOBJS) \</div><div class='hunk'>@@ -150,45 +168,49 @@ EXPORTOBJS    = $(DLNOBJ) \</div><div class='ctx'> 		loadpath.$(OBJEXT) \</div><div class='ctx'> 		$(COMMONOBJS)</div><div class='ctx'> </div><div class='del'>-OBJS          = $(EXPORTOBJS) prelude.$(OBJEXT)</div><div class='add'>+OBJS          = $(EXPORTOBJS) builtin.$(OBJEXT)</div><div class='ctx'> ALLOBJS       = $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(INITOBJS)</div><div class='ctx'> </div><div class='del'>-GOLFOBJS      = goruby.$(OBJEXT) golf_prelude.$(OBJEXT)</div><div class='add'>+GOLFOBJS      = goruby.$(OBJEXT)</div><div class='ctx'> </div><div class='ctx'> DEFAULT_PRELUDES = $(GEM_PRELUDE)</div><div class='del'>-PRELUDE_SCRIPTS = $(srcdir)/prelude.rb $(DEFAULT_PRELUDES)</div><div class='del'>-GEM_PRELUDE   = $(srcdir)/gem_prelude.rb</div><div class='del'>-PRELUDES      = {$(srcdir)}prelude.c {$(srcdir)}miniprelude.c</div><div class='add'>+PRELUDE_SCRIPTS = $(DEFAULT_PRELUDES)</div><div class='add'>+GEM_PRELUDE   =</div><div class='add'>+PRELUDES      = {$(srcdir)}miniprelude.c</div><div class='ctx'> GOLFPRELUDES  = {$(srcdir)}golf_prelude.c</div><div class='ctx'> </div><div class='ctx'> SCRIPT_ARGS   =	--dest-dir="$(DESTDIR)" \</div><div class='ctx'> 		--extout="$(EXTOUT)" \</div><div class='add'>+		--ext-build-dir="./ext" \</div><div class='ctx'> 		--mflags="$(MFLAGS)" \</div><div class='ctx'> 		--make-flags="$(MAKEFLAGS)"</div><div class='ctx'> EXTMK_ARGS    =	$(SCRIPT_ARGS) --extension $(EXTS) --extstatic $(EXTSTATIC) \</div><div class='ctx'> 		--make-flags="V=$(V) MINIRUBY='$(MINIRUBY)'" \</div><div class='ctx'> 		--gnumake=$(gnumake) --extflags="$(EXTLDFLAGS)" \</div><div class='ctx'> 		--</div><div class='del'>-INSTRUBY      =	$(SUDO) $(RUNRUBY) -r./$(arch)-fake $(srcdir)/tool/rbinstall.rb</div><div class='add'>+INSTRUBY      =	$(SUDO) $(INSTRUBY_ENV) $(RUNRUBY) -r./$(arch)-fake $(tooldir)/rbinstall.rb</div><div class='ctx'> INSTRUBY_ARGS =	$(SCRIPT_ARGS) \</div><div class='ctx'> 		--data-mode=$(INSTALL_DATA_MODE) \</div><div class='ctx'> 		--prog-mode=$(INSTALL_PROG_MODE) \</div><div class='ctx'> 		--installed-list $(INSTALLED_LIST) \</div><div class='del'>-		--mantype="$(MANTYPE)"</div><div class='add'>+		--mantype="$(MANTYPE)" \</div><div class='add'>+		$(INSTRUBY_OPTS)</div><div class='ctx'> INSTALL_PROG_MODE = 0755</div><div class='ctx'> INSTALL_DATA_MODE = 0644</div><div class='ctx'> </div><div class='add'>+BOOTSTRAPRUBY_COMMAND = $(BOOTSTRAPRUBY) $(BOOTSTRAPRUBY_OPT)</div><div class='ctx'> TESTSDIR      = $(srcdir)/test</div><div class='add'>+TOOL_TESTSDIR = $(tooldir)/test</div><div class='ctx'> TEST_EXCLUDES = --excludes-dir=$(TESTSDIR)/excludes --name=!/memory_leak/</div><div class='del'>-EXCLUDE_TESTFRAMEWORK = --exclude=/testunit/ --exclude=/minitest/</div><div class='ctx'> TESTWORKDIR   = testwork</div><div class='ctx'> TESTOPTS      = $(RUBY_TESTOPTS)</div><div class='ctx'> </div><div class='ctx'> TESTRUN_SCRIPT = $(srcdir)/test.rb</div><div class='ctx'> </div><div class='del'>-COMPILE_PRELUDE = $(srcdir)/tool/generic_erb.rb $(srcdir)/template/prelude.c.tmpl</div><div class='add'>+COMPILE_PRELUDE = $(tooldir)/generic_erb.rb $(srcdir)/template/prelude.c.tmpl \</div><div class='add'>+	$(tooldir)/ruby_vm/helpers/c_escape.rb</div><div class='ctx'> </div><div class='del'>-SHOWFLAGS = showflags</div><div class='add'>+SHOWFLAGS = $(no_silence:no=showflags)</div><div class='ctx'> </div><div class='ctx'> MAKE_LINK = $(MINIRUBY) -rfileutils -e "include FileUtils::Verbose" \</div><div class='ctx'> 	  -e "src, dest = ARGV" \</div><div class='hunk'>@@ -198,12 +220,27 @@ MAKE_LINK = $(MINIRUBY) -rfileutils -e "include FileUtils::Verbose" \</div><div class='ctx'> 	  -e "noraise {ln(src, dest)} or" \</div><div class='ctx'> 	  -e "cp(src, dest)"</div><div class='ctx'> </div><div class='add'>+# For release builds</div><div class='add'>+YJIT_RUSTC_ARGS = --crate-name=yjit \</div><div class='add'>+	--crate-type=staticlib \</div><div class='add'>+	--edition=2021 \</div><div class='add'>+	-g \</div><div class='add'>+	-C opt-level=3 \</div><div class='add'>+	-C overflow-checks=on \</div><div class='add'>+	'--out-dir=$(CARGO_TARGET_DIR)/release/' \</div><div class='add'>+	$(top_srcdir)/yjit/src/lib.rs</div><div class='ctx'> </div><div class='ctx'> all: $(SHOWFLAGS) main docs</div><div class='ctx'> </div><div class='ctx'> main: $(SHOWFLAGS) exts $(ENCSTATIC:static=lib)encs</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='add'>+main: $(srcdir)/lib/ruby_vm/mjit/instruction.rb</div><div class='add'>+srcs: $(srcdir)/lib/ruby_vm/mjit/instruction.rb</div><div class='add'>+$(srcdir)/lib/ruby_vm/mjit/instruction.rb: $(tooldir)/insns2vm.rb $(tooldir)/ruby_vm/views/lib/ruby_vm/mjit/instruction.rb.erb $(srcdir)/insns.def</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(BASERUBY) -Ku $(tooldir)/insns2vm.rb --basedir="$(srcdir)" $(INSNS2VMOPT) $@</div><div class='add'>+</div><div class='ctx'> mjit-headers: $(MJIT_SUPPORT)-mjit-headers</div><div class='ctx'> no-mjit-headers: PHONY</div><div class='ctx'> yes-mjit-headers: mjit_config.h PHONY</div><div class='hunk'>@@ -211,6 +248,9 @@ yes-mjit-headers: mjit_config.h PHONY</div><div class='ctx'> mjit.$(OBJEXT): mjit_config.h</div><div class='ctx'> mjit_config.h: Makefile</div><div class='ctx'> </div><div class='add'>+.PHONY: mjit-bindgen</div><div class='add'>+mjit-bindgen:</div><div class='add'>+	$(Q) $(BASERUBY) -rrubygems -C $(srcdir)/tool/mjit bindgen.rb $(CURDIR)</div><div class='ctx'> </div><div class='ctx'> # These rules using MJIT_HEADER_SUFFIX must be in common.mk, not</div><div class='ctx'> # Makefile.in, in order to override the macro in defs/universal.mk.</div><div class='hunk'>@@ -218,19 +258,20 @@ mjit_config.h: Makefile</div><div class='ctx'> # Other `-Dxxx`s preceding `-DMJIT_HEADER` will be removed in transform_mjit_header.rb.</div><div class='ctx'> # So `-DMJIT_HEADER` should be passed first when rb_mjit_header.h is generated.</div><div class='ctx'> $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time: probes.h vm.$(OBJEXT) \</div><div class='del'>-		$(TIMESTAMPDIR)/$(arch)/.time</div><div class='add'>+		$(TIMESTAMPDIR)/$(arch)/.time $(tooldir)/mjit_tabs.rb $(PREP) $(RBCONFIG)</div><div class='ctx'> 	$(ECHO) building $(@F:.time=.h)</div><div class='del'>-	$(Q) $(CPP) -DMJIT_HEADER $(MJIT_HEADER_FLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/vm.c $(CPPOUTFLAG)$(@F:.time=.h).new</div><div class='add'>+	$(Q)$(MINIRUBY) $(tooldir)/mjit_tabs.rb "$(MJIT_TABS)" \</div><div class='add'>+		$(CPP) -DMJIT_HEADER $(MJIT_HEADER_FLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/vm.c $(CPPOUTFLAG)$(@F:.time=.h).new</div><div class='ctx'> 	$(Q) $(IFCHANGE) "--timestamp=$@" $(@F:.time=.h) $(@F:.time=.h).new</div><div class='ctx'> </div><div class='ctx'> $(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).h: $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time</div><div class='ctx'> </div><div class='ctx'> $(MJIT_MIN_HEADER:.h=)$(MJIT_HEADER_SUFFIX).h: \</div><div class='ctx'> 		$(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time \</div><div class='del'>-		$(srcdir)/tool/transform_mjit_header.rb $(PREP) \</div><div class='add'>+		$(tooldir)/transform_mjit_header.rb $(PREP) \</div><div class='ctx'> 		$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).h</div><div class='ctx'> 	$(ECHO) building $@</div><div class='del'>-	$(MINIRUBY) $(srcdir)/tool/transform_mjit_header.rb "$(CC) $(ARCH_FLAG)" $(MJIT_HEADER:.h=)$(MJIT_HEADER_ARCH).h $@</div><div class='add'>+	$(Q)$(MINIRUBY) $(tooldir)/transform_mjit_header.rb "$(CC) $(CFLAGS) -w" $(MJIT_HEADER:.h=)$(MJIT_HEADER_ARCH).h $@</div><div class='ctx'> 	$(Q) $(MAKEDIRS) $(MJIT_HEADER_INSTALL_DIR)</div><div class='ctx'> 	$(Q) $(MAKE_LINK) $@ $(MJIT_HEADER_INSTALL_DIR)/$(@F)</div><div class='ctx'> </div><div class='hunk'>@@ -250,6 +291,9 @@ showflags:</div><div class='ctx'> 	"	LANG = $(LANG)" \</div><div class='ctx'> 	"	LC_ALL = $(LC_ALL)" \</div><div class='ctx'> 	"	LC_CTYPE = $(LC_CTYPE)" \</div><div class='add'>+	"	MFLAGS = $(MFLAGS)" \</div><div class='add'>+	"	RUSTC = $(RUSTC)" \</div><div class='add'>+	"	YJIT_RUSTC_ARGS = $(YJIT_RUSTC_ARGS)" \</div><div class='ctx'> 	$(MESSAGE_END)</div><div class='ctx'> 	-@$(CC_VERSION)</div><div class='ctx'> </div><div class='hunk'>@@ -264,19 +308,20 @@ EXTS_NOTE = -f $(EXTS_MK) $(mflags) RUBY="$(MINIRUBY)" top_srcdir="$(srcdir)" no</div><div class='ctx'> exts: build-ext</div><div class='ctx'> </div><div class='ctx'> EXTS_MK = exts.mk</div><div class='del'>-$(EXTS_MK): ext/configure-ext.mk $(TIMESTAMPDIR)/$(arch)/.time $(srcdir)/template/exts.mk.tmpl</div><div class='add'>+$(EXTS_MK): ext/configure-ext.mk $(srcdir)/template/exts.mk.tmpl \</div><div class='add'>+	    $(TIMESTAMPDIR)/$(arch)/.time $(TIMESTAMPDIR)/.RUBYCOMMONDIR.time</div><div class='ctx'> 	$(Q)$(MAKE) -f ext/configure-ext.mk $(mflags) V=$(V) EXTSTATIC=$(EXTSTATIC) \</div><div class='ctx'> 		gnumake=$(gnumake) MINIRUBY="$(MINIRUBY)" \</div><div class='ctx'> 		EXTLDFLAGS="$(EXTLDFLAGS)" srcdir="$(srcdir)"</div><div class='ctx'> 	$(ECHO) generating makefile $@</div><div class='del'>-	$(Q)$(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ -c \</div><div class='del'>-	    $(srcdir)/template/exts.mk.tmpl --gnumake=$(gnumake)</div><div class='add'>+	$(Q)$(MINIRUBY) $(tooldir)/generic_erb.rb -o $@ -c \</div><div class='add'>+	    $(srcdir)/template/exts.mk.tmpl --gnumake=$(gnumake) --configure-exts=ext/configure-ext.mk</div><div class='ctx'> </div><div class='ctx'> ext/configure-ext.mk: $(PREP) all-incs $(MKFILES) $(RBCONFIG) $(LIBRUBY) \</div><div class='ctx'> 		$(srcdir)/template/configure-ext.mk.tmpl</div><div class='ctx'> 	$(ECHO) generating makefiles $@</div><div class='ctx'> 	$(Q)$(MAKEDIRS) $(@D)</div><div class='del'>-	$(Q)$(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ -c \</div><div class='add'>+	$(Q)$(MINIRUBY) $(tooldir)/generic_erb.rb -o $@ -c \</div><div class='ctx'> 	    $(srcdir)/template/$(@F).tmpl --srcdir="$(srcdir)" \</div><div class='ctx'> 	    --miniruby="$(MINIRUBY)" --script-args='$(SCRIPT_ARGS)'</div><div class='ctx'> </div><div class='hunk'>@@ -284,18 +329,19 @@ configure-ext: $(EXTS_MK)</div><div class='ctx'> </div><div class='ctx'> build-ext: $(EXTS_MK)</div><div class='ctx'> 	$(Q)$(MAKE) -f $(EXTS_MK) $(mflags) libdir="$(libdir)" LIBRUBY_EXTS=$(LIBRUBY_EXTS) \</div><div class='del'>-	    EXTENCS="$(ENCOBJS)" UPDATE_LIBRARIES=no $(EXTSTATIC)</div><div class='add'>+	    EXTENCS="$(ENCOBJS)" MINIRUBY="$(MINIRUBY)" UPDATE_LIBRARIES=no $(EXTSTATIC)</div><div class='ctx'> 	$(Q)$(MAKE) $(EXTS_NOTE)</div><div class='ctx'> </div><div class='ctx'> exts-note: $(EXTS_MK)</div><div class='ctx'> 	$(Q)$(MAKE) $(EXTS_NOTE)</div><div class='ctx'> </div><div class='del'>-ext/extinit.c: $(srcdir)/template/extinit.c.tmpl</div><div class='del'>-	$(Q)$(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ -c \</div><div class='add'>+ext/extinit.c: $(srcdir)/template/extinit.c.tmpl $(PREP)</div><div class='add'>+	$(MAKEDIRS) $(@D)</div><div class='add'>+	$(Q)$(MINIRUBY) $(tooldir)/generic_erb.rb -o $@ -c \</div><div class='ctx'> 	    $(srcdir)/template/extinit.c.tmpl $(EXTINITS)</div><div class='ctx'> </div><div class='ctx'> prog: program wprogram</div><div class='del'>-programs: $(PROGRAM) $(WPROGRAM)</div><div class='add'>+programs: $(PROGRAM) $(WPROGRAM) $(arch)-fake.rb</div><div class='ctx'> </div><div class='ctx'> $(PREP): $(MKFILES)</div><div class='ctx'> </div><div class='hunk'>@@ -310,7 +356,6 @@ $(GOLF): $(LIBRUBY) $(GOLFOBJS) PHONY</div><div class='ctx'> 	$(Q) $(MAKE) $(mflags) \</div><div class='ctx'> 		GOLF=_dummy_golf_target_to_avoid_conflict_just_in_case_ \</div><div class='ctx'> 		MAINOBJ=goruby.$(OBJEXT) \</div><div class='del'>-		EXTOBJS="golf_prelude.$(OBJEXT) $(EXTOBJS)" \</div><div class='ctx'> 		PROGRAM=$(GORUBY)$(EXEEXT) \</div><div class='ctx'> 		V=$(V) \</div><div class='ctx'> 	program</div><div class='hunk'>@@ -322,9 +367,9 @@ $(CAPIOUT)/.timestamp: Doxyfile $(PREP)</div><div class='ctx'> 	-$(Q) $(DOXYGEN) -b</div><div class='ctx'> 	$(Q) $(MINIRUBY) -e 'File.open(ARGV[0], "w"){'"|f|"' f.puts(Time.now)}' "$@"</div><div class='ctx'> </div><div class='del'>-Doxyfile: $(srcdir)/template/Doxyfile.tmpl $(PREP) $(srcdir)/tool/generic_erb.rb $(RBCONFIG)</div><div class='add'>+Doxyfile: $(srcdir)/template/Doxyfile.tmpl $(PREP) $(tooldir)/generic_erb.rb $(RBCONFIG)</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ $(srcdir)/template/Doxyfile.tmpl \</div><div class='add'>+	$(Q) $(MINIRUBY) $(tooldir)/generic_erb.rb -o $@ $(srcdir)/template/Doxyfile.tmpl \</div><div class='ctx'> 	--srcdir="$(srcdir)" --miniruby="$(MINIRUBY)"</div><div class='ctx'> </div><div class='ctx'> program: $(SHOWFLAGS) $(PROGRAM)</div><div class='hunk'>@@ -338,7 +383,7 @@ $(LIBRUBY_A):	$(LIBRUBY_A_OBJS) $(MAINOBJ) $(INITOBJS) $(ARCHFILE)</div><div class='ctx'> $(LIBRUBY_SO):	$(OBJS) $(DLDOBJS) $(LIBRUBY_A) $(PREP) $(BUILTIN_ENCOBJS)</div><div class='ctx'> </div><div class='ctx'> $(LIBRUBY_EXTS):</div><div class='del'>-	@exit &gt; $@</div><div class='add'>+	@$(NULLCMD) &gt; $@</div><div class='ctx'> </div><div class='ctx'> $(STATIC_RUBY)$(EXEEXT): $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A)</div><div class='ctx'> 	$(Q)$(RM) $@</div><div class='hunk'>@@ -347,7 +392,7 @@ $(STATIC_RUBY)$(EXEEXT): $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A)</div><div class='ctx'> ruby.imp: $(COMMONOBJS)</div><div class='ctx'> 	$(Q){ \</div><div class='ctx'> 	$(NM) -Pgp $(COMMONOBJS) | \</div><div class='del'>-	awk 'BEGIN{print "#!"}; $$2~/^[BDT]$$/&amp;&amp;$$1!~/^$(SYMBOL_PREFIX)(Init_|InitVM_|ruby_static_id_|.*_threadptr_|rb_ec_)|^\./{print $$1}'; \</div><div class='add'>+	awk 'BEGIN{print "#!"}; $$2~/^[A-TV-Z]$$/&amp;&amp;$$1!~/^$(SYMBOL_PREFIX)(Init_|InitVM_|ruby_static_id_|.*_threadptr_|rb_ec_)|^\./{print $$1}'; \</div><div class='ctx'> 	($(CHDIR) $(srcdir) &amp;&amp; \</div><div class='ctx'> 	 exec sed -n '/^MJIT_FUNC_EXPORTED/!d;N;s/.*\n\(rb_[a-zA-Z_0-9]*\).*/$(SYMBOL_PREFIX)\1/p' cont.c gc.c thread*c vm*.c) \</div><div class='ctx'> 	} | \</div><div class='hunk'>@@ -359,17 +404,17 @@ pkgconfig-data: $(ruby_pc)</div><div class='ctx'> $(ruby_pc): $(srcdir)/template/ruby.pc.in config.status</div><div class='ctx'> </div><div class='ctx'> install-all: docs pre-install-all do-install-all post-install-all</div><div class='del'>-pre-install-all:: all pre-install-local pre-install-ext pre-install-doc</div><div class='add'>+pre-install-all:: all pre-install-local pre-install-ext pre-install-gem pre-install-doc</div><div class='ctx'> do-install-all: pre-install-all</div><div class='ctx'> 	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=all $(INSTALL_DOC_OPTS)</div><div class='del'>-post-install-all:: post-install-local post-install-ext post-install-doc</div><div class='add'>+post-install-all:: post-install-local post-install-ext post-install-gem post-install-doc</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> install-nodoc: pre-install-nodoc do-install-nodoc post-install-nodoc</div><div class='del'>-pre-install-nodoc:: pre-install-local pre-install-ext</div><div class='add'>+pre-install-nodoc:: pre-install-local pre-install-ext pre-install-gem</div><div class='ctx'> do-install-nodoc: main pre-install-nodoc</div><div class='del'>-	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS)</div><div class='del'>-post-install-nodoc:: post-install-local post-install-ext</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=all --exclude=doc</div><div class='add'>+post-install-nodoc:: post-install-local post-install-ext post-install-gem</div><div class='ctx'> </div><div class='ctx'> install-local: pre-install-local do-install-local post-install-local</div><div class='ctx'> pre-install-local:: pre-install-bin pre-install-lib pre-install-man</div><div class='hunk'>@@ -448,7 +493,7 @@ post-no-install-all:: post-no-install-local post-no-install-ext post-no-install-</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> uninstall: $(INSTALLED_LIST) sudo-precheck</div><div class='del'>-	$(Q)$(SUDO) $(MINIRUBY) $(srcdir)/tool/rbuninstall.rb --destdir=$(DESTDIR) $(INSTALLED_LIST)</div><div class='add'>+	$(Q)$(SUDO) $(MINIRUBY) $(tooldir)/rbuninstall.rb --destdir=$(DESTDIR) $(INSTALLED_LIST)</div><div class='ctx'> </div><div class='ctx'> reinstall: all uninstall install</div><div class='ctx'> </div><div class='hunk'>@@ -456,7 +501,7 @@ what-where-nodoc: no-install-nodoc</div><div class='ctx'> no-install-nodoc: pre-no-install-nodoc dont-install-nodoc post-no-install-nodoc</div><div class='ctx'> pre-no-install-nodoc:: pre-no-install-local pre-no-install-ext</div><div class='ctx'> dont-install-nodoc:  $(PREP)</div><div class='del'>-	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --exclude=doc</div><div class='ctx'> post-no-install-nodoc:: post-no-install-local post-no-install-ext</div><div class='ctx'> </div><div class='ctx'> what-where-local: no-install-local</div><div class='hunk'>@@ -535,23 +580,30 @@ post-install-doc::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> install-gem: pre-install-gem do-install-gem post-install-gem</div><div class='del'>-pre-install-gem:: pre-install-bin pre-install-lib pre-install-man</div><div class='add'>+pre-install-gem:: prepare-gems pre-install-bin pre-install-lib pre-install-man</div><div class='ctx'> do-install-gem: $(PROGRAM) pre-install-gem</div><div class='ctx'> 	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=gem</div><div class='ctx'> post-install-gem::</div><div class='ctx'> 	@$(NULLCMD)</div><div class='ctx'> </div><div class='add'>+install-dbg: pre-install-dbg do-install-dbg post-install-dbg</div><div class='add'>+pre-install-dbg::</div><div class='add'>+do-install-dbg: $(PROGRAM) pre-install-dbg</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=dbg</div><div class='add'>+post-install-dbg::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='ctx'> rdoc: PHONY main</div><div class='ctx'> 	@echo Generating RDoc documentation</div><div class='del'>-	$(Q) $(XRUBY) "$(srcdir)/libexec/rdoc" --root "$(srcdir)" --page-dir "$(srcdir)/doc" --encoding=UTF-8 --no-force-update --all --ri --op "$(RDOCOUT)" $(RDOCFLAGS) "$(srcdir)"</div><div class='add'>+	$(Q) $(RDOC) --ri --op "$(RDOCOUT)" $(RDOC_GEN_OPTS) $(RDOCFLAGS) "$(srcdir)"</div><div class='ctx'> </div><div class='ctx'> html: PHONY main</div><div class='ctx'> 	@echo Generating RDoc HTML files</div><div class='del'>-	$(Q) $(XRUBY) "$(srcdir)/libexec/rdoc" --root "$(srcdir)" --page-dir "$(srcdir)/doc" --encoding=UTF-8 --no-force-update --all --op "$(HTMLOUT)" $(RDOCFLAGS) "$(srcdir)"</div><div class='add'>+	$(Q) $(RDOC) --op "$(HTMLOUT)" $(RDOC_GEN_OPTS) $(RDOCFLAGS) "$(srcdir)"</div><div class='ctx'> </div><div class='ctx'> rdoc-coverage: PHONY main</div><div class='ctx'> 	@echo Generating RDoc coverage report</div><div class='del'>-	$(Q) $(XRUBY) "$(srcdir)/libexec/rdoc" --root "$(srcdir)" --encoding=UTF-8 --all --quiet -C $(RDOCFLAGS) "$(srcdir)"</div><div class='add'>+	$(Q) $(RDOC) --quiet -C $(RDOCFLAGS) "$(srcdir)"</div><div class='ctx'> </div><div class='ctx'> RDOCBENCHOUT=/tmp/rdocbench</div><div class='ctx'> </div><div class='hunk'>@@ -582,16 +634,20 @@ clear-installed-list: PHONY</div><div class='ctx'> </div><div class='ctx'> clean: clean-ext clean-enc clean-golf clean-docs clean-extout clean-local clean-platform clean-spec</div><div class='ctx'> clean-local:: clean-runnable</div><div class='del'>-	$(Q)$(RM) $(OBJS) $(MINIOBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)</div><div class='add'>+	$(Q)$(RM) $(OBJS) $(MINIOBJS) $(INITOBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)</div><div class='ctx'> 	$(Q)$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT) dmyext.$(OBJEXT) dmyenc.$(OBJEXT) $(ARCHFILE) .*.time</div><div class='del'>-	$(Q)$(RM) y.tab.c y.output encdb.h transdb.h config.log rbconfig.rb $(ruby_pc)</div><div class='del'>-	$(Q)$(RM) probes.h probes.$(OBJEXT) probes.stamp ruby-glommed.$(OBJEXT) ruby.imp</div><div class='del'>-	$(Q)$(RM) GNUmakefile.old Makefile.old $(arch)-fake.rb bisect.sh $(ENC_TRANS_D)</div><div class='del'>-	-$(Q) $(RMDIR) enc/jis enc/trans enc 2&gt; $(NULL) || exit 0</div><div class='del'>-clean-runnable:: PHONY</div><div class='del'>-	$(Q)$(CHDIR) bin 2&gt;$(NULL) &amp;&amp; $(RM) $(PROGRAM) $(WPROGRAM) $(GORUBY)$(EXEEXT) bin/*.$(DLEXT) 2&gt;$(NULL) || exit 0</div><div class='del'>-	$(Q)$(CHDIR) lib 2&gt;$(NULL) &amp;&amp; $(RM) $(LIBRUBY_A) $(LIBRUBY) $(LIBRUBY_ALIASES) $(RUBY_BASE_NAME)/$(RUBY_PROGRAM_VERSION) $(RUBY_BASE_NAME)/vendor_ruby 2&gt;$(NULL) || exit 0</div><div class='del'>-	$(Q)$(RMDIR) lib/$(RUBY_BASE_NAME) lib bin 2&gt;$(NULL) || exit 0</div><div class='add'>+	$(Q)$(RM) y.tab.c y.output encdb.h transdb.h config.log rbconfig.rb $(ruby_pc) $(COROUTINE_H:/Context.h=/.time)</div><div class='add'>+	$(Q)$(RM) probes.h probes.$(OBJEXT) probes.stamp ruby-glommed.$(OBJEXT) ruby.imp ChangeLog $(STATIC_RUBY)$(EXEEXT)</div><div class='add'>+	$(Q)$(RM) GNUmakefile.old Makefile.old $(arch)-fake.rb bisect.sh $(ENC_TRANS_D) builtin_binary.inc</div><div class='add'>+	-$(Q)$(RMALL) yjit/target</div><div class='add'>+	-$(Q) $(RMDIR) enc/jis enc/trans enc $(COROUTINE_H:/Context.h=) coroutine yjit 2&gt; $(NULL) || $(NULLCMD)</div><div class='add'>+</div><div class='add'>+bin/clean-runnable:: PHONY</div><div class='add'>+	$(Q)$(CHDIR) bin 2&gt;$(NULL) &amp;&amp; $(RM) $(PROGRAM) $(WPROGRAM) $(GORUBY)$(EXEEXT) bin/*.$(DLEXT) 2&gt;$(NULL) || $(NULLCMD)</div><div class='add'>+lib/clean-runnable:: PHONY</div><div class='add'>+	$(Q)$(CHDIR) lib 2&gt;$(NULL) &amp;&amp; $(RM) $(LIBRUBY_A) $(LIBRUBY) $(LIBRUBY_ALIASES) $(RUBY_BASE_NAME)/$(RUBY_PROGRAM_VERSION) $(RUBY_BASE_NAME)/vendor_ruby 2&gt;$(NULL) || $(NULLCMD)</div><div class='add'>+clean-runnable:: bin/clean-runnable lib/clean-runnable PHONY</div><div class='add'>+	$(Q)$(RMDIR) lib/$(RUBY_BASE_NAME) lib bin 2&gt;$(NULL) || $(NULLCMD)</div><div class='ctx'> clean-ext:: PHONY</div><div class='ctx'> clean-golf: PHONY</div><div class='ctx'> 	$(Q)$(RM) $(GORUBY)$(EXEEXT) $(GOLFOBJS)</div><div class='hunk'>@@ -600,14 +656,14 @@ clean-html: PHONY</div><div class='ctx'> clean-capi: PHONY</div><div class='ctx'> clean-platform: PHONY</div><div class='ctx'> clean-extout: PHONY</div><div class='del'>-	-$(Q)$(RMDIR) $(EXTOUT)/$(arch) $(EXTOUT) 2&gt; $(NULL) || exit 0</div><div class='add'>+	-$(Q)$(RMDIR) $(EXTOUT)/$(arch) $(RUBYCOMMONDIR) $(EXTOUT) 2&gt; $(NULL) || $(NULLCMD)</div><div class='ctx'> clean-docs: clean-rdoc clean-html clean-capi</div><div class='ctx'> clean-spec: PHONY</div><div class='ctx'> clean-rubyspec: clean-spec</div><div class='ctx'> </div><div class='ctx'> distclean: distclean-ext distclean-enc distclean-golf distclean-docs distclean-extout distclean-local distclean-platform distclean-spec</div><div class='ctx'> distclean-local:: clean-local</div><div class='del'>-	$(Q)$(RM) $(MKFILES) yasmdata.rb *.inc $(PRELUDES)</div><div class='add'>+	$(Q)$(RM) $(MKFILES) yasmdata.rb *.inc $(PRELUDES) *.rbinc</div><div class='ctx'> 	$(Q)$(RM) config.cache config.status config.status.lineno</div><div class='ctx'> 	$(Q)$(RM) *~ *.bak *.stackdump core *.core gmon.out $(PREP)</div><div class='ctx'> 	-$(Q)$(RMALL) $(srcdir)/autom4te.cache</div><div class='hunk'>@@ -636,9 +692,10 @@ clean-srcs-local::</div><div class='ctx'> 	$(Q)$(RM) $(MJIT_MIN_HEADER) $(MJIT_MIN_HEADER:.h=)$(MJIT_HEADER_SUFFIX:%=*).h</div><div class='ctx'> </div><div class='ctx'> realclean-srcs-local:: clean-srcs-local</div><div class='del'>-	$(Q)$(CHDIR) $(srcdir) &amp;&amp; $(exec) $(RM) parse.c parse.h lex.c enc/trans/newline.c $(PRELUDES) revision.h</div><div class='del'>-	$(Q)$(CHDIR) $(srcdir) &amp;&amp; $(exec) $(RM) id.c id.h probes.dmyh</div><div class='del'>-	$(Q)$(CHDIR) $(srcdir) &amp;&amp; $(exec) $(RM) configure aclocal.m4 tool/config.guess tool/config.sub gems/*.gem</div><div class='add'>+	$(Q)$(CHDIR) $(srcdir) &amp;&amp; $(RM) \</div><div class='add'>+	  parse.c parse.h lex.c enc/trans/newline.c $(PRELUDES) revision.h \</div><div class='add'>+	  id.c id.h probes.dmyh configure aclocal.m4 tool/config.guess tool/config.sub gems/*.gem \</div><div class='add'>+	|| $(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> clean-srcs-ext::</div><div class='ctx'> realclean-srcs-ext:: clean-srcs-ext</div><div class='hunk'>@@ -655,29 +712,29 @@ realclean-platform: distclean-platform</div><div class='ctx'> realclean-spec: distclean-spec</div><div class='ctx'> realclean-rubyspec: realclean-spec</div><div class='ctx'> </div><div class='del'>-clean-ext:: ext/clean gems/clean timestamp/clean</div><div class='del'>-distclean-ext:: ext/distclean gems/distclean timestamp/distclean</div><div class='del'>-realclean-ext:: ext/realclean gems/realclean timestamp/realclean</div><div class='add'>+clean-ext:: ext/clean .bundle/clean timestamp/clean</div><div class='add'>+distclean-ext:: ext/distclean .bundle/distclean timestamp/distclean</div><div class='add'>+realclean-ext:: ext/realclean .bundle/realclean timestamp/realclean</div><div class='ctx'> </div><div class='ctx'> ext/clean.mk ext/distclean.mk ext/realclean.mk::</div><div class='del'>-ext/clean gems/clean:: ext/clean.mk</div><div class='del'>-ext/distclean gems/distclean:: ext/distclean.mk</div><div class='del'>-ext/realclean gems/realclean:: ext/realclean.mk</div><div class='add'>+ext/clean:: ext/clean.mk</div><div class='add'>+ext/distclean:: ext/distclean.mk</div><div class='add'>+ext/realclean:: ext/realclean.mk</div><div class='ctx'> </div><div class='del'>-timestamp/clean:: ext/clean gems/clean</div><div class='del'>-timestamp/distclean:: ext/distclean gems/distclean</div><div class='del'>-timestamp/realclean:: ext/realclean gems/realclean</div><div class='add'>+timestamp/clean:: ext/clean .bundle/clean</div><div class='add'>+timestamp/distclean:: ext/distclean .bundle/distclean</div><div class='add'>+timestamp/realclean:: ext/realclean .bundle/realclean</div><div class='ctx'> </div><div class='ctx'> timestamp/clean timestamp/distclean timestamp/realclean::</div><div class='ctx'> 	$(Q)$(RM) $(TIMESTAMPDIR)/.*.time $(TIMESTAMPDIR)/$(arch)/.time</div><div class='del'>-	$(Q)$(RMDIRS) $(TIMESTAMPDIR)/$(arch) 2&gt; $(NULL) || exit 0</div><div class='add'>+	$(Q)$(RMDIRS) $(TIMESTAMPDIR)/$(arch) $(TIMESTAMPDIR) 2&gt; $(NULL) || $(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> clean-ext::</div><div class='ctx'> 	-$(Q)$(RM) ext/extinit.$(OBJEXT)</div><div class='ctx'> </div><div class='ctx'> distclean-ext realclean-ext::</div><div class='ctx'> 	-$(Q)$(RM) $(EXTS_MK) ext/extinit.* ext/configure-ext.mk</div><div class='del'>-	-$(Q)$(RMDIR) ext 2&gt; $(NULL) || exit 0</div><div class='add'>+	-$(Q)$(RMDIR) ext 2&gt; $(NULL) || $(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> clean-enc distclean-enc realclean-enc: PHONY</div><div class='ctx'> </div><div class='hunk'>@@ -685,7 +742,7 @@ clean-enc: clean-enc.d</div><div class='ctx'> </div><div class='ctx'> clean-enc.d: PHONY</div><div class='ctx'> 	$(Q)$(RM) $(ENC_TRANS_D)</div><div class='del'>-	-$(Q) $(RMDIR) enc/jis enc/trans enc 2&gt; $(NULL) || exit 0</div><div class='add'>+	-$(Q) $(RMDIR) enc/jis enc/trans enc 2&gt; $(NULL) || $(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> clean-rdoc distclean-rdoc realclean-rdoc:</div><div class='ctx'> 	@echo $(@:-rdoc=ing) rdoc</div><div class='hunk'>@@ -699,91 +756,132 @@ clean-capi distclean-capi realclean-capi:</div><div class='ctx'> 	@echo $(@:-capi=ing) capi</div><div class='ctx'> 	$(Q)$(RMALL) $(CAPIOUT)</div><div class='ctx'> </div><div class='del'>-clean-platform:</div><div class='add'>+clean-platform distclean-platform realclean-platform:</div><div class='ctx'> 	$(Q) $(RM) $(PLATFORM_D)</div><div class='del'>-	-$(Q) $(RMDIR) $(PLATFORM_DIR) 2&gt; $(NULL) || exit 0</div><div class='add'>+	-$(Q) $(RMDIR) $(PLATFORM_DIR) 2&gt; $(NULL) || $(NULLCMD)</div><div class='ctx'> </div><div class='ctx'> RUBYSPEC_CAPIEXT = spec/ruby/optional/capi/ext</div><div class='ctx'> clean-spec: PHONY</div><div class='ctx'> 	-$(Q) $(RM) $(RUBYSPEC_CAPIEXT)/*.$(OBJEXT) $(RUBYSPEC_CAPIEXT)/*.$(DLEXT)</div><div class='del'>-	-$(Q) $(RMDIRS) $(RUBYSPEC_CAPIEXT) 2&gt; $(NULL) || exit 0</div><div class='add'>+	-$(Q) $(RMDIRS) $(RUBYSPEC_CAPIEXT) 2&gt; $(NULL) || $(NULLCMD)</div><div class='add'>+	-$(Q) $(RMALL) rubyspec_temp</div><div class='ctx'> </div><div class='del'>-check: main test test-testframework test-almost test-spec</div><div class='add'>+check: main $(DOT_WAIT) test $(DOT_WAIT) test-tool $(DOT_WAIT) test-all</div><div class='ctx'> 	$(ECHO) check succeeded</div><div class='add'>+	-$(Q) : : "run only on sh"; \</div><div class='add'>+	if [ x"$(GIT)" != x ] &amp;&amp; $(CHDIR) "$(srcdir)" &amp;&amp; \</div><div class='add'>+	    b=`$(GIT) symbolic-ref --short HEAD 2&gt;&amp;1` &amp;&amp; \</div><div class='add'>+	    u=`$(GIT) branch --list --format='%(upstream:short)' $$b`; then \</div><div class='add'>+	  set -x; $(GIT) --no-pager log --format=oneline -G '^ *# *include *("|&lt;ruby)' $$u..HEAD --; \</div><div class='add'>+	fi</div><div class='ctx'> check-ruby: test test-ruby</div><div class='ctx'> </div><div class='ctx'> fake: $(CROSS_COMPILING)-fake</div><div class='ctx'> yes-fake: $(arch)-fake.rb $(RBCONFIG) PHONY</div><div class='ctx'> no-fake -fake: PHONY</div><div class='ctx'> </div><div class='del'>-# really doesn't depend on .o, just ensure newer than headers which</div><div class='del'>-# version.o depends on.</div><div class='del'>-$(arch)-fake.rb: $(srcdir)/template/fake.rb.in $(srcdir)/tool/generic_erb.rb version.$(OBJEXT) miniruby$(EXEEXT)</div><div class='add'>+$(HAVE_BASERUBY:no=)$(arch)-fake.rb: miniruby$(EXEEXT)</div><div class='add'>+</div><div class='add'>+# actually depending on other headers more.</div><div class='add'>+$(arch:noarch=ignore)-fake.rb: $(top_srcdir)/revision.h $(top_srcdir)/version.h $(srcdir)/version.c</div><div class='add'>+$(arch:noarch=ignore)-fake.rb: {$(VPATH)}id.h {$(VPATH)}vm_opts.h</div><div class='add'>+</div><div class='add'>+$(arch:noarch=ignore)-fake.rb: $(srcdir)/template/fake.rb.in $(tooldir)/generic_erb.rb</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(CPP) $(warnflags) $(XCFLAGS) $(CPPFLAGS) "$(srcdir)/version.c" | \</div><div class='del'>-	$(BOOTSTRAPRUBY) "$(srcdir)/tool/generic_erb.rb" -o $@ "$(srcdir)/template/fake.rb.in" \</div><div class='del'>-		i=- srcdir="$(srcdir)" BASERUBY="$(BASERUBY)"</div><div class='add'>+	$(Q) $(CPP) -DRUBY_EXPORT $(INCFLAGS) $(CPPFLAGS) "$(srcdir)/version.c" | \</div><div class='add'>+	$(BOOTSTRAPRUBY) "$(tooldir)/generic_erb.rb" -o $@ "$(srcdir)/template/fake.rb.in" \</div><div class='add'>+	    i=- srcdir="$(srcdir)" BASERUBY="$(BASERUBY)" \</div><div class='add'>+	    LIBPATHENV="$(LIBPATHENV)" PRELOADENV="$(PRELOADENV)" LIBRUBY_SO="$(LIBRUBY_SO)"</div><div class='add'>+</div><div class='add'>+noarch-fake.rb: # prerequisite of yes-fake</div><div class='add'>+	$(Q) exit &gt; $@</div><div class='ctx'> </div><div class='ctx'> btest: $(TEST_RUNNABLE)-btest</div><div class='ctx'> no-btest: PHONY</div><div class='del'>-yes-btest: fake miniruby$(EXEEXT) PHONY</div><div class='del'>-	$(Q)$(exec) $(BOOTSTRAPRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(BTESTRUBY) $(RUN_OPTS)" $(OPTS) $(TESTOPTS) $(BTESTS)</div><div class='add'>+yes-btest: yes-fake miniruby$(EXEEXT) PHONY</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='add'>+	$(Q)$(gnumake_recursive)$(exec) $(BOOTSTRAPRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(BTESTRUBY) $(RUN_OPTS)" $(OPTS) $(TESTOPTS) $(BTESTS)</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='ctx'> </div><div class='ctx'> btest-ruby: $(TEST_RUNNABLE)-btest-ruby</div><div class='ctx'> no-btest-ruby: PHONY</div><div class='ctx'> yes-btest-ruby: prog PHONY</div><div class='del'>-	$(Q)$(exec) $(RUNRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(PROGRAM) -I$(srcdir)/lib $(RUN_OPTS)" -q $(OPTS) $(TESTOPTS) $(BTESTS)</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='add'>+	$(Q)$(gnumake_recursive)$(exec) $(RUNRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(PROGRAM) -I$(srcdir)/lib $(RUN_OPTS)" $(OPTS) $(TESTOPTS) $(BTESTS)</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='add'>+</div><div class='add'>+rtest: yes-fake miniruby$(EXEEXT) PHONY</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='add'>+	$(Q)$(exec) $(BOOTSTRAPRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(BTESTRUBY) $(RUN_OPTS)" --sets=ractor -v</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='ctx'> </div><div class='ctx'> test-basic: $(TEST_RUNNABLE)-test-basic</div><div class='ctx'> no-test-basic: PHONY</div><div class='ctx'> yes-test-basic: prog PHONY</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='ctx'> 	$(Q)$(exec) $(RUNRUBY) "$(srcdir)/basictest/runner.rb" --run-opt=$(RUN_OPTS) $(OPTS) $(TESTOPTS)</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='ctx'> </div><div class='ctx'> test-knownbugs: test-knownbug</div><div class='ctx'> test-knownbug: $(TEST_RUNNABLE)-test-knownbug</div><div class='ctx'> no-test-knownbug: PHONY</div><div class='ctx'> yes-test-knownbug: prog PHONY</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='ctx'> 	-$(exec) $(RUNRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(PROGRAM) $(RUN_OPTS)" $(OPTS) $(TESTOPTS) $(srcdir)/KNOWNBUGS.rb</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='ctx'> </div><div class='ctx'> test-testframework: $(TEST_RUNNABLE)-test-testframework</div><div class='ctx'> yes-test-testframework: prog PHONY</div><div class='del'>-	$(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) "$(srcdir)/test/runner.rb" --ruby="$(RUNRUBY)" $(TESTOPTS) testunit minitest</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='add'>+	$(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) "$(TOOL_TESTSDIR)/runner.rb" --ruby="$(RUNRUBY)" $(TESTOPTS) testunit</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='ctx'> no-test-testframework: PHONY</div><div class='ctx'> </div><div class='add'>+test-tool: $(TEST_RUNNABLE)-test-tool</div><div class='add'>+yes-test-tool: prog PHONY</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='add'>+	$(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) "$(TOOL_TESTSDIR)/runner.rb" --ruby="$(RUNRUBY)" $(TESTOPTS)</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='add'>+no-test-tool: PHONY</div><div class='add'>+</div><div class='ctx'> test-sample: test-basic # backward compatibility for mswin-build</div><div class='del'>-test-short: btest-ruby test-knownbug test-basic</div><div class='add'>+test-short: btest-ruby $(DOT_WAIT) test-knownbug $(DOT_WAIT) test-basic</div><div class='ctx'> test: test-short</div><div class='ctx'> </div><div class='ctx'> # $ make test-all TESTOPTS="--help" displays more detail</div><div class='ctx'> # for example, make test-all TESTOPTS="-j2 -v -n test-name -- test-file-name"</div><div class='ctx'> test-all: $(TEST_RUNNABLE)-test-all</div><div class='ctx'> yes-test-all: programs PHONY</div><div class='del'>-	$(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) "$(srcdir)/test/runner.rb" --ruby="$(RUNRUBY)" $(TEST_EXCLUDES) $(TESTOPTS) $(TESTS)</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='add'>+	$(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) "$(TESTSDIR)/runner.rb" --ruby="$(RUNRUBY)" $(TEST_EXCLUDES) $(TESTOPTS) $(TESTS)</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='ctx'> TESTS_BUILD = mkmf</div><div class='ctx'> no-test-all: PHONY</div><div class='del'>-	$(gnumake_recursive)$(MINIRUBY) -I"$(srcdir)/lib" "$(srcdir)/test/runner.rb" $(TESTOPTS) $(TESTS_BUILD)</div><div class='add'>+	$(gnumake_recursive)$(MINIRUBY) -I"$(srcdir)/lib" "$(TESTSDIR)/runner.rb" $(TESTOPTS) $(TESTS_BUILD)</div><div class='ctx'> </div><div class='del'>-test-almost: $(TEST_RUNNABLE)-test-almost</div><div class='del'>-yes-test-almost: prog PHONY</div><div class='del'>-	$(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) "$(srcdir)/test/runner.rb" --ruby="$(RUNRUBY)" $(TEST_EXCLUDES) $(TESTOPTS) $(EXCLUDE_TESTFRAMEWORK) $(TESTS)</div><div class='del'>-no-test-almost: PHONY</div><div class='add'>+test-almost: test-all</div><div class='add'>+yes-test-almost: yes-test-all</div><div class='add'>+no-test-almost: no-test-all</div><div class='ctx'> </div><div class='ctx'> test-ruby: $(TEST_RUNNABLE)-test-ruby</div><div class='ctx'> no-test-ruby: PHONY</div><div class='ctx'> yes-test-ruby: prog encs PHONY</div><div class='del'>-	$(gnumake_recursive)$(RUNRUBY) "$(srcdir)/test/runner.rb" $(TEST_EXCLUDES) $(TESTOPTS) -- ruby -ext-</div><div class='add'>+	$(gnumake_recursive)$(RUNRUBY) "$(TESTSDIR)/runner.rb" $(TEST_EXCLUDES) $(TESTOPTS) -- ruby -ext-</div><div class='ctx'> </div><div class='ctx'> extconf: $(PREP)</div><div class='ctx'> 	$(Q) $(MAKEDIRS) "$(EXTCONFDIR)"</div><div class='ctx'> 	$(RUNRUBY) -C "$(EXTCONFDIR)" $(EXTCONF) $(EXTCONFARGS)</div><div class='ctx'> </div><div class='del'>-$(RBCONFIG): $(srcdir)/tool/mkconfig.rb config.status $(srcdir)/version.h</div><div class='add'>+rbconfig.rb: $(RBCONFIG)</div><div class='add'>+</div><div class='add'>+$(HAVE_BASERUBY:no=)$(RBCONFIG)$(HAVE_BASERUBY:no=): $(PREP)</div><div class='add'>+$(RBCONFIG): $(tooldir)/mkconfig.rb config.status $(srcdir)/version.h $(srcdir)/common.mk</div><div class='ctx'> 	$(Q)$(BOOTSTRAPRUBY) -n \</div><div class='ctx'> 	-e 'BEGIN{version=ARGV.shift;mis=ARGV.dup}' \</div><div class='ctx'> 	-e 'END{abort "UNICODE version mismatch: #{mis}" unless mis.empty?}' \</div><div class='ctx'> 	-e '(mis.delete(ARGF.path); ARGF.close) if /ONIG_UNICODE_VERSION_STRING +"#{Regexp.quote(version)}"/o' \</div><div class='ctx'> 	$(UNICODE_VERSION) $(UNICODE_DATA_HEADERS)</div><div class='del'>-	$(Q)$(BOOTSTRAPRUBY) $(srcdir)/tool/mkconfig.rb \</div><div class='add'>+	$(Q)$(BOOTSTRAPRUBY) $(tooldir)/mkconfig.rb \</div><div class='ctx'> 		-arch=$(arch) -version=$(RUBY_PROGRAM_VERSION) \</div><div class='ctx'> 		-install_name=$(RUBY_INSTALL_NAME) \</div><div class='ctx'> 		-so_name=$(RUBY_SO_NAME) \</div><div class='hunk'>@@ -795,17 +893,21 @@ $(RBCONFIG): $(srcdir)/tool/mkconfig.rb config.status $(srcdir)/version.h</div><div class='ctx'> test-rubyspec: test-spec</div><div class='ctx'> yes-test-rubyspec: yes-test-spec</div><div class='ctx'> </div><div class='del'>-test-spec-precheck: $(arch)-fake.rb programs</div><div class='add'>+test-spec-precheck: programs yes-fake</div><div class='ctx'> </div><div class='ctx'> test-spec: $(TEST_RUNNABLE)-test-spec</div><div class='ctx'> yes-test-spec: test-spec-precheck</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='ctx'> 	$(gnumake_recursive)$(Q) \</div><div class='ctx'> 	$(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec $(MSPECOPT) $(SPECOPTS)</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='ctx'> no-test-spec:</div><div class='ctx'> </div><div class='add'>+check: $(DOT_WAIT) test-spec</div><div class='add'>+</div><div class='ctx'> RUNNABLE = $(LIBRUBY_RELATIVE:no=un)-runnable</div><div class='del'>-runnable: $(RUNNABLE) prog $(srcdir)/tool/mkrunnable.rb PHONY</div><div class='del'>-	$(Q) $(MINIRUBY) $(srcdir)/tool/mkrunnable.rb -v $(EXTOUT)</div><div class='add'>+runnable: $(RUNNABLE) prog $(tooldir)/mkrunnable.rb PHONY</div><div class='add'>+	$(Q) $(MINIRUBY) $(tooldir)/mkrunnable.rb -v $(EXTOUT)</div><div class='ctx'> yes-runnable: PHONY</div><div class='ctx'> </div><div class='ctx'> encs: enc trans</div><div class='hunk'>@@ -818,11 +920,13 @@ encs enc trans libencs libenc libtrans: $(SHOWFLAGS) $(ENC_MK) $(LIBRUBY) $(PREP</div><div class='ctx'> libenc enc: {$(VPATH)}encdb.h</div><div class='ctx'> libtrans trans: {$(VPATH)}transdb.h</div><div class='ctx'> </div><div class='add'>+ENC_HEADERS = $(srcdir)/enc/jis/props.h</div><div class='ctx'> # Use MINIRUBY which loads fake.rb for cross compiling</div><div class='ctx'> $(ENC_MK): $(srcdir)/enc/make_encmake.rb $(srcdir)/enc/Makefile.in $(srcdir)/enc/depend \</div><div class='del'>-	$(srcdir)/enc/encinit.c.erb $(srcdir)/lib/mkmf.rb $(RBCONFIG) fake</div><div class='add'>+	   $(srcdir)/enc/encinit.c.erb $(ENC_HEADERS) $(srcdir)/lib/mkmf.rb $(RBCONFIG) $(HAVE_BASERUBY)-fake</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(MINIRUBY) $(srcdir)/enc/make_encmake.rb --builtin-encs="$(BUILTIN_ENCOBJS)" --builtin-transes="$(BUILTIN_TRANSOBJS)" --module$(ENCSTATIC) $(ENCS) $@</div><div class='add'>+	$(Q) $(BOOTSTRAPRUBY_COMMAND) $(srcdir)/enc/make_encmake.rb \</div><div class='add'>+	  --builtin-encs="$(BUILTIN_ENCOBJS)" --builtin-transes="$(BUILTIN_TRANSOBJS)" --module$(ENCSTATIC) $(ENCS) $@</div><div class='ctx'> </div><div class='ctx'> .PRECIOUS: $(MKFILES)</div><div class='ctx'> </div><div class='hunk'>@@ -839,92 +943,100 @@ $(ENC_MK): $(srcdir)/enc/make_encmake.rb $(srcdir)/enc/Makefile.in $(srcdir)/enc</div><div class='ctx'> </div><div class='ctx'> PHONY:</div><div class='ctx'> </div><div class='del'>-{$(VPATH)}parse.c: {$(VPATH)}parse.y $(srcdir)/tool/ytab.sed {$(VPATH)}id.h</div><div class='add'>+{$(VPATH)}parse.c: {$(VPATH)}parse.y $(tooldir)/ytab.sed {$(VPATH)}id.h</div><div class='ctx'> {$(VPATH)}parse.h: {$(VPATH)}parse.c</div><div class='ctx'> </div><div class='ctx'> {$(srcdir)}.y.c:</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q)$(BASERUBY) $(srcdir)/tool/id2token.rb --path-separator=.$(PATH_SEPARATOR)./ --vpath=$(VPATH) id.h $(SRC_FILE) &gt; parse.tmp.y</div><div class='add'>+	$(Q)$(BASERUBY) $(tooldir)/id2token.rb $(SRC_FILE) &gt; parse.tmp.y</div><div class='ctx'> 	$(Q)$(YACC) -d $(YFLAGS) -o y.tab.c parse.tmp.y</div><div class='ctx'> 	$(Q)$(RM) parse.tmp.y</div><div class='del'>-	$(Q)sed -f $(srcdir)/tool/ytab.sed -e "/^#/s|parse\.tmp\.[iy]|$(SRC_FILE)|" -e "/^#/s!y\.tab\.c!$@!" y.tab.c &gt; $@.new</div><div class='add'>+	$(Q)sed -f $(tooldir)/ytab.sed -e "/^#/s|parse\.tmp\.[iy]|$(SRC_FILE)|" -e "/^#/s!y\.tab\.c!$@!" y.tab.c &gt; $@.new</div><div class='ctx'> 	$(Q)$(MV) $@.new $@</div><div class='ctx'> 	$(Q)sed -e "/^#line.*y\.tab\.h/d;/^#line.*parse.*\.y/d" y.tab.h &gt; $(@:.c=.h)</div><div class='ctx'> 	$(Q)$(RM) y.tab.c y.tab.h</div><div class='ctx'> </div><div class='ctx'> $(PLATFORM_D):</div><div class='ctx'> 	$(Q) $(MAKEDIRS) $(PLATFORM_DIR) $(@D)</div><div class='del'>-	@exit &gt; $@</div><div class='add'>+	@$(NULLCMD) &gt; $@</div><div class='ctx'> </div><div class='del'>-exe/$(PROGRAM): ruby-runner.c ruby-runner.h exe/.time miniruby$(EXEEXT) {$(VPATH)}config.h</div><div class='del'>-	$(Q) $(CC) $(CFLAGS) $(CPPFLAGS) -DRUBY_INSTALL_NAME=$(@F) $(COUTFLAG)ruby-runner.$(OBJEXT) -c $(CSRCFLAG)$(srcdir)/ruby-runner.c</div><div class='del'>-	$(Q) $(PURIFY) $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(OUTFLAG)$@ ruby-runner.$(OBJEXT) $(LIBS)</div><div class='add'>+exe/$(PROGRAM): ruby-runner.c ruby-runner.h exe/.time $(PREP) {$(VPATH)}config.h</div><div class='add'>+	$(Q) $(CC) $(CFLAGS) $(INCFLAGS) $(CPPFLAGS) -DRUBY_INSTALL_NAME=$(@F) $(COUTFLAG)ruby-runner.$(OBJEXT) -c $(CSRCFLAG)$(srcdir)/ruby-runner.c</div><div class='add'>+	$(Q) $(PURIFY) $(CC) $(CFLAGS) $(LDFLAGS) $(OUTFLAG)$@ ruby-runner.$(OBJEXT) $(LIBS)</div><div class='ctx'> 	$(Q) $(POSTLINK)</div><div class='del'>-	$(Q) ./miniruby$(EXEEXT) \</div><div class='del'>-	    -e 'prog, dest = ARGV; dest += "/ruby"' \</div><div class='add'>+	$(Q) $(BOOTSTRAPRUBY) \</div><div class='add'>+	    -e 'prog, dest, inst = ARGV; dest += "/ruby"' \</div><div class='add'>+	    -e 'exit unless prog==inst' \</div><div class='ctx'> 	    -e 'unless prog=="ruby"' \</div><div class='ctx'> 	    -e '  begin File.unlink(dest); rescue Errno::ENOENT; end' \</div><div class='ctx'> 	    -e '  File.symlink(prog, dest)' \</div><div class='ctx'> 	    -e 'end' \</div><div class='del'>-	$(@F) $(@D)</div><div class='add'>+	$(@F) $(@D) $(RUBY_INSTALL_NAME)$(EXEEXT)</div><div class='ctx'> </div><div class='ctx'> exe/.time:</div><div class='ctx'> 	$(Q) $(MAKEDIRS) $(@D)</div><div class='del'>-	@exit &gt; $@</div><div class='add'>+	@$(NULLCMD) &gt; $@</div><div class='ctx'> </div><div class='ctx'> $(BUILTIN_ENCOBJS) $(BUILTIN_TRANSOBJS): $(ENC_TRANS_D)</div><div class='ctx'> </div><div class='ctx'> $(ENC_TRANS_D):</div><div class='ctx'> 	$(Q) $(MAKEDIRS) enc/trans $(@D)</div><div class='del'>-	@exit &gt; $@</div><div class='add'>+	@$(NULLCMD) &gt; $@</div><div class='ctx'> </div><div class='ctx'> $(TIMESTAMPDIR)/$(arch)/.time:</div><div class='ctx'> 	$(Q)$(MAKEDIRS) $(@D) $(EXTOUT)/$(arch)</div><div class='del'>-	@exit &gt; $@</div><div class='add'>+	@$(NULLCMD) &gt; $@</div><div class='add'>+</div><div class='add'>+$(TIMESTAMPDIR)/.RUBYCOMMONDIR.time:</div><div class='add'>+	$(Q)$(MAKEDIRS) $(@D) $(RUBYCOMMONDIR)</div><div class='add'>+	@$(NULLCMD) &gt; $@</div><div class='ctx'> </div><div class='ctx'> ###</div><div class='ctx'> CCAN_DIR = {$(VPATH)}ccan</div><div class='ctx'> </div><div class='ctx'> RUBY_H_INCLUDES    = {$(VPATH)}ruby.h {$(VPATH)}config.h {$(VPATH)}defines.h \</div><div class='ctx'> 		     {$(VPATH)}intern.h {$(VPATH)}missing.h {$(VPATH)}st.h \</div><div class='del'>-		     {$(VPATH)}subst.h</div><div class='add'>+		     {$(VPATH)}assert.h {$(VPATH)}subst.h</div><div class='ctx'> </div><div class='ctx'> ###</div><div class='ctx'> </div><div class='ctx'> acosh.$(OBJEXT): {$(VPATH)}acosh.c</div><div class='ctx'> alloca.$(OBJEXT): {$(VPATH)}alloca.c {$(VPATH)}config.h</div><div class='add'>+cbrt.$(OBJEXT): {$(VPATH)}cbrt.c</div><div class='add'>+close.$(OBJEXT): {$(VPATH)}close.c</div><div class='ctx'> crypt.$(OBJEXT): {$(VPATH)}crypt.c {$(VPATH)}crypt.h {$(VPATH)}missing/des_tables.c</div><div class='del'>-dup2.$(OBJEXT): {$(VPATH)}dup2.c</div><div class='ctx'> erf.$(OBJEXT): {$(VPATH)}erf.c</div><div class='ctx'> explicit_bzero.$(OBJEXT): {$(VPATH)}explicit_bzero.c</div><div class='del'>-finite.$(OBJEXT): {$(VPATH)}finite.c</div><div class='add'>+ffs.$(OBJEXT): {$(VPATH)}ffs.c</div><div class='ctx'> flock.$(OBJEXT): {$(VPATH)}flock.c</div><div class='add'>+hypot.$(OBJEXT): {$(VPATH)}hypot.c</div><div class='add'>+langinfo.$(OBJEXT): {$(VPATH)}langinfo.c</div><div class='add'>+lgamma_r.$(OBJEXT): {$(VPATH)}lgamma_r.c</div><div class='ctx'> memcmp.$(OBJEXT): {$(VPATH)}memcmp.c</div><div class='ctx'> memmove.$(OBJEXT): {$(VPATH)}memmove.c</div><div class='del'>-mkdir.$(OBJEXT): {$(VPATH)}mkdir.c</div><div class='add'>+nan.$(OBJEXT): {$(VPATH)}nan.c</div><div class='add'>+nextafter.$(OBJEXT): {$(VPATH)}nextafter.c</div><div class='add'>+procstat_vm.$(OBJEXT): {$(VPATH)}procstat_vm.c</div><div class='ctx'> setproctitle.$(OBJEXT): {$(VPATH)}setproctitle.c</div><div class='ctx'> strchr.$(OBJEXT): {$(VPATH)}strchr.c</div><div class='del'>-strdup.$(OBJEXT): {$(VPATH)}strdup.c</div><div class='ctx'> strerror.$(OBJEXT): {$(VPATH)}strerror.c</div><div class='ctx'> strlcat.$(OBJEXT): {$(VPATH)}strlcat.c</div><div class='ctx'> strlcpy.$(OBJEXT): {$(VPATH)}strlcpy.c</div><div class='ctx'> strstr.$(OBJEXT): {$(VPATH)}strstr.c</div><div class='del'>-nt.$(OBJEXT): {$(VPATH)}nt.c</div><div class='del'>-ia64.$(OBJEXT): {$(VPATH)}ia64.s</div><div class='del'>-	$(CC) $(CFLAGS) -c $&lt;</div><div class='add'>+tgamma.$(OBJEXT): {$(VPATH)}tgamma.c</div><div class='add'>+</div><div class='ctx'> .coroutine_obj $(COROUTINE_OBJ): \</div><div class='del'>-	{$(VPATH)}$(COROUTINE_H:.h=).$(ASMEXT) \</div><div class='add'>+	{$(VPATH)}$(COROUTINE_SRC) \</div><div class='ctx'> 	$(COROUTINE_H:/Context.h=/.time)</div><div class='ctx'> $(COROUTINE_H:/Context.h=/.time):</div><div class='ctx'> 	$(Q) $(MAKEDIRS) $(@D)</div><div class='del'>-	@exit &gt; $@</div><div class='add'>+	@$(NULLCMD) &gt; $@</div><div class='ctx'> </div><div class='ctx'> ###</div><div class='ctx'> </div><div class='ctx'> # dependencies for generated C sources.</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}parse.c</div><div class='ctx'> miniprelude.$(OBJEXT): {$(VPATH)}miniprelude.c</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}prelude.c</div><div class='ctx'> </div><div class='ctx'> # dependencies for optional sources.</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}opt_sc.inc {$(VPATH)}optunifs.inc</div><div class='hunk'>@@ -936,14 +1048,14 @@ win32/win32.$(OBJEXT): {$(VPATH)}win32/win32.c {$(VPATH)}win32/file.h \</div><div class='ctx'> win32/file.$(OBJEXT): {$(VPATH)}win32/file.c {$(VPATH)}win32/file.h \</div><div class='ctx'>   $(RUBY_H_INCLUDES) $(PLATFORM_D)</div><div class='ctx'> </div><div class='del'>-$(NEWLINE_C): $(srcdir)/enc/trans/newline.trans $(srcdir)/tool/transcode-tblgen.rb</div><div class='add'>+$(NEWLINE_C): $(srcdir)/enc/trans/newline.trans $(tooldir)/transcode-tblgen.rb</div><div class='ctx'> 	$(Q) $(MAKEDIRS) $(@D)</div><div class='del'>-	$(Q) $(BASERUBY) "$(srcdir)/tool/transcode-tblgen.rb" -vo $@ $(srcdir)/enc/trans/newline.trans</div><div class='add'>+	$(Q) $(BASERUBY) "$(tooldir)/transcode-tblgen.rb" -vo $@ $(srcdir)/enc/trans/newline.trans</div><div class='ctx'> enc/trans/newline.$(OBJEXT): $(NEWLINE_C)</div><div class='ctx'> </div><div class='del'>-verconf.h: $(srcdir)/template/verconf.h.tmpl $(srcdir)/tool/generic_erb.rb</div><div class='add'>+verconf.h: $(srcdir)/template/verconf.h.tmpl $(tooldir)/generic_erb.rb $(RBCONFIG)</div><div class='ctx'> 	$(ECHO) creating $@</div><div class='del'>-	$(Q) $(BOOTSTRAPRUBY) "$(srcdir)/tool/generic_erb.rb" -o $@ $(srcdir)/template/verconf.h.tmpl</div><div class='add'>+	$(Q) $(BOOTSTRAPRUBY) "$(tooldir)/generic_erb.rb" -o $@ $(srcdir)/template/verconf.h.tmpl</div><div class='ctx'> </div><div class='ctx'> ruby-glommed.$(OBJEXT): $(OBJS)</div><div class='ctx'> </div><div class='hunk'>@@ -953,26 +1065,49 @@ INSNS2VMOPT = --srcdir="$(srcdir)"</div><div class='ctx'> </div><div class='ctx'> srcs_vpath = {$(VPATH)}</div><div class='ctx'> </div><div class='del'>-# TODO: dependencies on tool/ruby_vm scripts.</div><div class='del'>-inc_common_headers = $(srcdir)/tool/ruby_vm/views/_copyright.erb $(srcdir)/tool/ruby_vm/views/_notice.erb</div><div class='del'>-$(srcs_vpath)opt_sc.inc: $(srcdir)/tool/ruby_vm/views/opt_sc.inc.erb $(inc_common_headers)</div><div class='del'>-$(srcs_vpath)optinsn.inc: $(srcdir)/tool/ruby_vm/views/optinsn.inc.erb $(inc_common_headers)</div><div class='del'>-$(srcs_vpath)optunifs.inc: $(srcdir)/tool/ruby_vm/views/optunifs.inc.erb $(inc_common_headers)</div><div class='del'>-$(srcs_vpath)insns.inc: $(srcdir)/tool/ruby_vm/views/insns.inc.erb $(inc_common_headers)</div><div class='del'>-$(srcs_vpath)insns_info.inc: $(srcdir)/tool/ruby_vm/views/insns_info.inc.erb $(inc_common_headers) \</div><div class='del'>-  $(srcdir)/tool/ruby_vm/views/_insn_type_chars.erb $(srcdir)/tool/ruby_vm/views/_insn_name_info.erb \</div><div class='del'>-  $(srcdir)/tool/ruby_vm/views/_insn_len_info.erb $(srcdir)/tool/ruby_vm/views/_insn_operand_info.erb \</div><div class='del'>-  $(srcdir)/tool/ruby_vm/views/_attributes.erb $(srcdir)/tool/ruby_vm/views/_insn_stack_increase.erb</div><div class='del'>-$(srcs_vpath)vmtc.inc: $(srcdir)/tool/ruby_vm/views/vmtc.inc.erb $(inc_common_headers)</div><div class='del'>-$(srcs_vpath)vm.inc: $(srcdir)/tool/ruby_vm/views/vm.inc.erb $(inc_common_headers) \</div><div class='del'>-  $(srcdir)/tool/ruby_vm/views/_insn_entry.erb $(srcdir)/tool/ruby_vm/views/_trace_instruction.erb</div><div class='del'>-$(srcs_vpath)mjit_compile.inc: $(srcdir)/tool/ruby_vm/views/mjit_compile.inc.erb $(inc_common_headers) \</div><div class='del'>-  $(srcdir)/tool/ruby_vm/views/_mjit_compile_insn.erb $(srcdir)/tool/ruby_vm/views/_mjit_compile_send.erb \</div><div class='del'>-  $(srcdir)/tool/ruby_vm/views/_mjit_compile_ivar.erb \</div><div class='del'>-  $(srcdir)/tool/ruby_vm/views/_mjit_compile_insn_body.erb $(srcdir)/tool/ruby_vm/views/_mjit_compile_pc_and_sp.erb</div><div class='add'>+inc_common_headers = $(tooldir)/ruby_vm/views/_copyright.erb $(tooldir)/ruby_vm/views/_notice.erb</div><div class='add'>+$(srcs_vpath)opt_sc.inc: $(tooldir)/ruby_vm/views/opt_sc.inc.erb $(inc_common_headers)</div><div class='add'>+$(srcs_vpath)optinsn.inc: $(tooldir)/ruby_vm/views/optinsn.inc.erb $(inc_common_headers)</div><div class='add'>+$(srcs_vpath)optunifs.inc: $(tooldir)/ruby_vm/views/optunifs.inc.erb $(inc_common_headers)</div><div class='add'>+$(srcs_vpath)insns.inc: $(tooldir)/ruby_vm/views/insns.inc.erb $(inc_common_headers)</div><div class='add'>+$(srcs_vpath)insns_info.inc: $(tooldir)/ruby_vm/views/insns_info.inc.erb $(inc_common_headers) \</div><div class='add'>+  $(tooldir)/ruby_vm/views/_insn_type_chars.erb $(tooldir)/ruby_vm/views/_insn_name_info.erb \</div><div class='add'>+  $(tooldir)/ruby_vm/views/_insn_len_info.erb $(tooldir)/ruby_vm/views/_insn_operand_info.erb \</div><div class='add'>+  $(tooldir)/ruby_vm/views/_attributes.erb $(tooldir)/ruby_vm/views/_comptime_insn_stack_increase.erb \</div><div class='add'>+  $(tooldir)/ruby_vm/views/_insn_sp_pc_dependency.erb</div><div class='add'>+$(srcs_vpath)vmtc.inc: $(tooldir)/ruby_vm/views/vmtc.inc.erb $(inc_common_headers)</div><div class='add'>+$(srcs_vpath)vm.inc: $(tooldir)/ruby_vm/views/vm.inc.erb $(inc_common_headers) \</div><div class='add'>+  $(tooldir)/ruby_vm/views/_insn_entry.erb $(tooldir)/ruby_vm/views/_trace_instruction.erb</div><div class='add'>+$(srcs_vpath)mjit_sp_inc.inc: $(tooldir)/ruby_vm/views/mjit_sp_inc.inc.erb</div><div class='add'>+</div><div class='add'>+BUILTIN_RB_SRCS = \</div><div class='add'>+		$(srcdir)/ast.rb \</div><div class='add'>+		$(srcdir)/dir.rb \</div><div class='add'>+		$(srcdir)/gc.rb \</div><div class='add'>+		$(srcdir)/numeric.rb \</div><div class='add'>+		$(srcdir)/io.rb \</div><div class='add'>+		$(srcdir)/marshal.rb \</div><div class='add'>+		$(srcdir)/mjit.rb \</div><div class='add'>+		$(srcdir)/mjit_c.rb \</div><div class='add'>+		$(srcdir)/pack.rb \</div><div class='add'>+		$(srcdir)/trace_point.rb \</div><div class='add'>+		$(srcdir)/warning.rb \</div><div class='add'>+		$(srcdir)/array.rb \</div><div class='add'>+		$(srcdir)/kernel.rb \</div><div class='add'>+		$(srcdir)/ractor.rb \</div><div class='add'>+		$(srcdir)/symbol.rb \</div><div class='add'>+		$(srcdir)/timev.rb \</div><div class='add'>+		$(srcdir)/thread_sync.rb \</div><div class='add'>+		$(srcdir)/nilclass.rb \</div><div class='add'>+		$(srcdir)/prelude.rb \</div><div class='add'>+		$(srcdir)/gem_prelude.rb \</div><div class='add'>+		$(srcdir)/yjit.rb \</div><div class='add'>+		$(empty)</div><div class='add'>+BUILTIN_RB_INCS = $(BUILTIN_RB_SRCS:.rb=.rbinc)</div><div class='ctx'> </div><div class='ctx'> common-srcs: $(srcs_vpath)parse.c $(srcs_vpath)lex.c $(srcs_vpath)enc/trans/newline.c $(srcs_vpath)id.c \</div><div class='del'>-	     srcs-lib srcs-ext incs</div><div class='add'>+	     $(BUILTIN_RB_INCS) \</div><div class='add'>+	     srcs-lib srcs-ext incs preludes</div><div class='ctx'> </div><div class='ctx'> missing-srcs: $(srcdir)/missing/des_tables.c</div><div class='ctx'> </div><div class='hunk'>@@ -1009,57 +1144,51 @@ all-incs: incs {$(VPATH)}encdb.h {$(VPATH)}transdb.h</div><div class='ctx'> incs: $(INSNS) {$(VPATH)}node_name.inc {$(VPATH)}known_errors.inc \</div><div class='ctx'>       {$(VPATH)}vm_call_iseq_optimized.inc $(srcdir)/revision.h \</div><div class='ctx'>       $(REVISION_H) \</div><div class='del'>-      $(UNICODE_DATA_HEADERS) $(srcdir)/enc/jis/props.h \</div><div class='add'>+      $(UNICODE_DATA_HEADERS) $(ENC_HEADERS) \</div><div class='ctx'>       {$(VPATH)}id.h {$(VPATH)}probes.dmyh</div><div class='ctx'> </div><div class='ctx'> insns: $(INSNS)</div><div class='ctx'> </div><div class='del'>-id.h: $(srcdir)/tool/generic_erb.rb $(srcdir)/template/id.h.tmpl $(srcdir)/defs/id.def</div><div class='add'>+id.h: $(tooldir)/generic_erb.rb $(srcdir)/template/id.h.tmpl $(srcdir)/defs/id.def</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb --output=$@ \</div><div class='add'>+	$(Q) $(BASERUBY) $(tooldir)/generic_erb.rb --output=$@ \</div><div class='ctx'> 		$(srcdir)/template/id.h.tmpl</div><div class='ctx'> </div><div class='del'>-id.c: $(srcdir)/tool/generic_erb.rb $(srcdir)/template/id.c.tmpl $(srcdir)/defs/id.def</div><div class='add'>+id.c: $(tooldir)/generic_erb.rb $(srcdir)/template/id.c.tmpl $(srcdir)/defs/id.def</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb --output=$@ \</div><div class='add'>+	$(Q) $(BASERUBY) $(tooldir)/generic_erb.rb --output=$@ \</div><div class='ctx'> 		$(srcdir)/template/id.c.tmpl</div><div class='ctx'> </div><div class='del'>-node_name.inc: $(srcdir)/tool/node_name.rb $(srcdir)/node.h</div><div class='add'>+node_name.inc: $(tooldir)/node_name.rb $(srcdir)/node.h</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(BASERUBY) -n $(srcdir)/tool/node_name.rb &lt; $(srcdir)/node.h &gt; $@</div><div class='add'>+	$(Q) $(BASERUBY) -n $(tooldir)/node_name.rb &lt; $(srcdir)/node.h &gt; $@</div><div class='ctx'> </div><div class='del'>-encdb.h: $(PREP) $(srcdir)/tool/generic_erb.rb $(srcdir)/template/encdb.h.tmpl</div><div class='add'>+encdb.h: $(RBCONFIG) $(tooldir)/generic_erb.rb $(srcdir)/template/encdb.h.tmpl</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/encdb.h.tmpl $(srcdir)/enc enc</div><div class='add'>+	$(Q) $(BOOTSTRAPRUBY) $(tooldir)/generic_erb.rb -c -o $@ $(srcdir)/template/encdb.h.tmpl $(srcdir)/enc enc</div><div class='ctx'> </div><div class='del'>-transdb.h: $(PREP) srcs-enc $(srcdir)/tool/generic_erb.rb $(srcdir)/template/transdb.h.tmpl</div><div class='add'>+transdb.h: $(RBCONFIG) srcs-enc $(tooldir)/generic_erb.rb $(srcdir)/template/transdb.h.tmpl</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/transdb.h.tmpl $(srcdir)/enc/trans enc/trans</div><div class='add'>+	$(Q) $(BOOTSTRAPRUBY) $(tooldir)/generic_erb.rb -c -o $@ $(srcdir)/template/transdb.h.tmpl $(srcdir)/enc/trans enc/trans</div><div class='ctx'> </div><div class='ctx'> enc/encinit.c: $(ENC_MK) $(srcdir)/enc/encinit.c.erb</div><div class='ctx'> </div><div class='ctx'> known_errors.inc: $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -c -o $@ $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def</div><div class='del'>-</div><div class='del'>-vm_call_iseq_optimized.inc: $(srcdir)/tool/mk_call_iseq_optimized.rb</div><div class='del'>-	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(BASERUBY) $(srcdir)/tool/mk_call_iseq_optimized.rb &gt; $@</div><div class='add'>+	$(Q) $(BASERUBY) $(tooldir)/generic_erb.rb -c -o $@ $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def</div><div class='ctx'> </div><div class='del'>-$(MINIPRELUDE_C): $(COMPILE_PRELUDE)</div><div class='add'>+vm_call_iseq_optimized.inc: $(srcdir)/template/call_iseq_optimized.inc.tmpl</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -I$(srcdir) -o $@ \</div><div class='del'>-		$(srcdir)/template/prelude.c.tmpl</div><div class='add'>+	$(Q) $(BASERUBY) $(tooldir)/generic_erb.rb -c -o $@ $(srcdir)/template/call_iseq_optimized.inc.tmpl</div><div class='ctx'> </div><div class='del'>-$(PRELUDE_C): $(COMPILE_PRELUDE) \</div><div class='del'>-	   $(PRELUDE_SCRIPTS)</div><div class='add'>+$(MINIPRELUDE_C): $(COMPILE_PRELUDE) $(BUILTIN_RB_SRCS)</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -I$(srcdir) -c -o $@ \</div><div class='del'>-		$(srcdir)/template/prelude.c.tmpl $(PRELUDE_SCRIPTS)</div><div class='add'>+	$(Q) $(BASERUBY) $(tooldir)/generic_erb.rb -I$(srcdir) -o $@ \</div><div class='add'>+		$(srcdir)/template/prelude.c.tmpl $(BUILTIN_RB_SRCS)</div><div class='ctx'> </div><div class='ctx'> $(GOLF_PRELUDE_C): $(COMPILE_PRELUDE) {$(srcdir)}golf_prelude.rb</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -I$(srcdir) -c -o $@ \</div><div class='add'>+	$(Q) $(BASERUBY) $(tooldir)/generic_erb.rb -I$(srcdir) -c -o $@ \</div><div class='ctx'> 		$(srcdir)/template/prelude.c.tmpl golf_prelude.rb</div><div class='ctx'> </div><div class='ctx'> MAINCPPFLAGS = $(ENABLE_DEBUG_ENV:yes=-DRUBY_DEBUG_ENV=1)</div><div class='hunk'>@@ -1068,108 +1197,119 @@ $(MAINOBJ): $(srcdir)/$(MAINSRC)</div><div class='ctx'> 	$(ECHO) compiling $(srcdir)/$(MAINSRC)</div><div class='ctx'> 	$(Q) $(CC) $(MAINCPPFLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$(srcdir)/$(MAINSRC)</div><div class='ctx'> </div><div class='del'>-{$(VPATH)}probes.dmyh: {$(srcdir)}probes.d $(srcdir)/tool/gen_dummy_probes.rb</div><div class='add'>+{$(VPATH)}probes.dmyh: {$(srcdir)}probes.d $(tooldir)/gen_dummy_probes.rb</div><div class='ctx'> </div><div class='ctx'> probes.dmyh:</div><div class='del'>-	$(BASERUBY) $(srcdir)/tool/gen_dummy_probes.rb $(srcdir)/probes.d &gt; $@</div><div class='add'>+	$(BASERUBY) $(tooldir)/gen_dummy_probes.rb $(srcdir)/probes.d &gt; $@</div><div class='ctx'> </div><div class='ctx'> probes.h: {$(VPATH)}probes.$(DTRACE_EXT)</div><div class='ctx'> </div><div class='ctx'> prereq: incs srcs preludes PHONY</div><div class='ctx'> </div><div class='del'>-preludes: {$(VPATH)}prelude.c</div><div class='ctx'> preludes: {$(VPATH)}miniprelude.c</div><div class='ctx'> preludes: {$(srcdir)}golf_prelude.c</div><div class='ctx'> </div><div class='del'>-$(srcdir)/revision.h:</div><div class='del'>-	$(Q)$(gnumake:yes=#) $(RM) $(@F)</div><div class='del'>-	$(Q)$(gnumake:yes=#) exit &gt; $@ || exit &gt; $(@F)</div><div class='add'>+{$(srcdir)}.rb.rbinc:</div><div class='add'>+	$(ECHO) making $@</div><div class='add'>+	$(Q) $(BASERUBY) $(tooldir)/mk_builtin_loader.rb $&lt;</div><div class='add'>+</div><div class='add'>+builtin_binary.inc: $(PREP) $(BUILTIN_RB_SRCS) $(srcdir)/template/builtin_binary.inc.tmpl</div><div class='add'>+	$(Q) $(MINIRUBY) $(tooldir)/generic_erb.rb -o $@ \</div><div class='add'>+		$(srcdir)/template/builtin_binary.inc.tmpl -- --cross=$(CROSS_COMPILING)</div><div class='add'>+</div><div class='add'>+$(BUILTIN_RB_INCS): $(top_srcdir)/tool/mk_builtin_loader.rb</div><div class='ctx'> </div><div class='del'>-$(REVISION_H): $(srcdir)/version.h $(srcdir)/tool/file2lastrev.rb $(REVISION_FORCE)</div><div class='del'>-	-$(Q) $(BASERUBY) $(srcdir)/tool/file2lastrev.rb -q --revision.h "$(srcdir)" &gt; revision.tmp</div><div class='del'>-	$(Q)$(IFCHANGE) "--timestamp=$@" "$(srcdir)/revision.h" revision.tmp</div><div class='add'>+$(srcdir)/revision.h$(no_baseruby:no=~disabled~): $(REVISION_H)</div><div class='ctx'> </div><div class='del'>-$(srcdir)/ext/ripper/ripper.c: $(srcdir)/ext/ripper/tools/preproc.rb $(srcdir)/parse.y id.h</div><div class='add'>+$(REVISION_H)$(no_baseruby:no=~disabled~):</div><div class='add'>+	$(Q) $(BASERUBY) $(tooldir)/file2lastrev.rb -q --revision.h --srcdir="$(srcdir)" --output=revision.h --timestamp=$@</div><div class='add'>+$(REVISION_H)$(yes_baseruby:yes=~disabled~):</div><div class='add'>+	$(Q) exit &gt; $@</div><div class='add'>+</div><div class='add'>+$(srcdir)/ext/ripper/ripper.c: $(srcdir)/ext/ripper/tools/preproc.rb $(srcdir)/parse.y $(srcdir)/defs/id.def $(srcdir)/ext/ripper/depend</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) VPATH=$${PWD-`pwd`} &amp;&amp; $(CHDIR) $(@D) &amp;&amp; \</div><div class='del'>-	sed -e 's/{\$$([^(){}]*)[^{}]*}//g' -e /AUTOGENERATED/q depend | \</div><div class='add'>+	$(Q) $(CHDIR) $(@D) &amp;&amp; \</div><div class='add'>+	$(CAT_DEPEND) depend | \</div><div class='ctx'> 	$(exec) $(MAKE) -f - $(mflags) \</div><div class='del'>-		Q=$(Q) ECHO=$(ECHO) RM="$(RM)" top_srcdir=../.. srcdir=. VPATH="$${VPATH}" \</div><div class='del'>-		RUBY="$(BASERUBY)" PATH_SEPARATOR="$(PATH_SEPARATOR)"</div><div class='add'>+		Q=$(Q) ECHO=$(ECHO) RM="$(RM1)" BISON="$(YACC)" top_srcdir=../.. srcdir=. VPATH=../.. \</div><div class='add'>+		RUBY="$(BASERUBY)" PATH_SEPARATOR="$(PATH_SEPARATOR)" LANG=C</div><div class='ctx'> </div><div class='del'>-$(srcdir)/ext/json/parser/parser.c: $(srcdir)/ext/json/parser/parser.rl</div><div class='add'>+$(srcdir)/ext/json/parser/parser.c: $(srcdir)/ext/json/parser/parser.rl $(srcdir)/ext/json/parser/prereq.mk</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='ctx'> 	$(Q) $(CHDIR) $(@D) &amp;&amp; $(exec) $(MAKE) -f prereq.mk $(mflags) \</div><div class='ctx'> 		Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=. VPATH=../../.. BASERUBY="$(BASERUBY)"</div><div class='ctx'> </div><div class='del'>-$(srcdir)/ext/date/zonetab.h: $(srcdir)/ext/date/zonetab.list</div><div class='add'>+$(srcdir)/ext/date/zonetab.h: $(srcdir)/ext/date/zonetab.list $(srcdir)/ext/date/prereq.mk</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='ctx'> 	$(Q) $(CHDIR) $(@D) &amp;&amp; $(exec) $(MAKE) -f prereq.mk $(mflags) \</div><div class='ctx'> 		Q=$(Q) ECHO=$(ECHO) top_srcdir=../.. srcdir=. VPATH=../.. BASERUBY="$(BASERUBY)"</div><div class='ctx'> </div><div class='ctx'> $(srcdir)/ext/rbconfig/sizeof/sizes.c: $(srcdir)/ext/rbconfig/sizeof/depend \</div><div class='del'>-		$(srcdir)/tool/generic_erb.rb $(srcdir)/template/sizes.c.tmpl $(srcdir)/configure.ac</div><div class='add'>+		$(tooldir)/generic_erb.rb $(srcdir)/template/sizes.c.tmpl $(srcdir)/configure.ac</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='ctx'> 	$(Q) $(CHDIR) $(@D) &amp;&amp; \</div><div class='del'>-	sed '/AUTOGENERATED/q' depend | \</div><div class='add'>+	$(CAT_DEPEND) depend | \</div><div class='ctx'> 	$(exec) $(MAKE) -f - $(mflags) \</div><div class='ctx'> 		Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=. VPATH=../../.. RUBY="$(BASERUBY)" $(@F)</div><div class='ctx'> </div><div class='ctx'> $(srcdir)/ext/rbconfig/sizeof/limits.c: $(srcdir)/ext/rbconfig/sizeof/depend \</div><div class='del'>-		$(srcdir)/tool/generic_erb.rb $(srcdir)/template/limits.c.tmpl</div><div class='add'>+		$(tooldir)/generic_erb.rb $(srcdir)/template/limits.c.tmpl</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='ctx'> 	$(Q) $(CHDIR) $(@D) &amp;&amp; \</div><div class='del'>-	sed '/AUTOGENERATED/q' depend | \</div><div class='add'>+	$(CAT_DEPEND) depend | \</div><div class='ctx'> 	$(exec) $(MAKE) -f - $(mflags) \</div><div class='ctx'> 		Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=. VPATH=../../.. RUBY="$(BASERUBY)" $(@F)</div><div class='ctx'> </div><div class='ctx'> $(srcdir)/ext/socket/constdefs.c: $(srcdir)/ext/socket/depend</div><div class='ctx'> 	$(Q) $(CHDIR) $(@D) &amp;&amp; \</div><div class='del'>-	sed '/AUTOGENERATED/q' depend | \</div><div class='add'>+	$(CAT_DEPEND) depend | \</div><div class='ctx'> 	$(exec) $(MAKE) -f - $(mflags) \</div><div class='ctx'> 		Q=$(Q) ECHO=$(ECHO) top_srcdir=../.. srcdir=. VPATH=../.. RUBY="$(BASERUBY)"</div><div class='ctx'> </div><div class='ctx'> $(srcdir)/ext/etc/constdefs.h: $(srcdir)/ext/etc/depend</div><div class='ctx'> 	$(Q) $(CHDIR) $(@D) &amp;&amp; \</div><div class='del'>-	sed '/AUTOGENERATED/q' depend | \</div><div class='add'>+	$(CAT_DEPEND) depend | \</div><div class='ctx'> 	$(exec) $(MAKE) -f - $(mflags) \</div><div class='ctx'> 		Q=$(Q) ECHO=$(ECHO) top_srcdir=../.. srcdir=. VPATH=../.. RUBY="$(BASERUBY)"</div><div class='ctx'> </div><div class='ctx'> ##</div><div class='ctx'> </div><div class='del'>-run: fake miniruby$(EXEEXT) PHONY</div><div class='del'>-	$(BTESTRUBY) $(TESTRUN_SCRIPT) $(RUNOPT)</div><div class='add'>+run: yes-fake miniruby$(EXEEXT) PHONY</div><div class='add'>+	$(BTESTRUBY) $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)</div><div class='ctx'> </div><div class='ctx'> runruby: $(PROGRAM) PHONY</div><div class='del'>-	$(RUNRUBY) $(TESTRUN_SCRIPT)</div><div class='add'>+	RUBY_ON_BUG='gdb -x $(srcdir)/.gdbinit -p' $(RUNRUBY) $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)</div><div class='ctx'> </div><div class='del'>-parse: fake miniruby$(EXEEXT) PHONY</div><div class='add'>+runirb: $(PROGRAM) PHONY</div><div class='add'>+	RUBY_ON_BUG='gdb -x $(srcdir)/.gdbinit -p' $(RUNRUBY) $(RUNOPT0) -r irb -e 'IRB.start("make runirb")' $(RUNOPT)</div><div class='add'>+</div><div class='add'>+parse: yes-fake miniruby$(EXEEXT) PHONY</div><div class='ctx'> 	$(BTESTRUBY) --dump=parsetree_with_comment,insns $(TESTRUN_SCRIPT)</div><div class='ctx'> </div><div class='ctx'> bisect: PHONY</div><div class='del'>-	$(srcdir)/tool/bisect.sh miniruby $(srcdir)</div><div class='add'>+	$(tooldir)/bisect.sh miniruby $(srcdir)</div><div class='ctx'> </div><div class='ctx'> bisect-ruby: PHONY</div><div class='del'>-	$(srcdir)/tool/bisect.sh ruby $(srcdir)</div><div class='add'>+	$(tooldir)/bisect.sh ruby $(srcdir)</div><div class='ctx'> </div><div class='ctx'> COMPARE_RUBY = $(BASERUBY)</div><div class='add'>+BENCH_RUBY = $(RUNRUBY)</div><div class='add'>+BENCH_OPTS = --output=markdown --output-compare -v</div><div class='ctx'> ITEM =</div><div class='del'>-ARGS = $$(find $(srcdir)/benchmark -maxdepth 1 -name '*$(ITEM)*.yml' -o -name '*$(ITEM)*.rb' | sort)</div><div class='add'>+ARGS = $$(find $(srcdir)/benchmark -maxdepth 1 -name '$(ITEM)' -o -name '*$(ITEM)*.yml' -o -name '*$(ITEM)*.rb' | sort)</div><div class='ctx'> OPTS =</div><div class='ctx'> </div><div class='del'>-# You can pass several options through OPTS environment variable.</div><div class='del'>-# $ make benchmark ARGS="--help" displays more detail.</div><div class='del'>-# for example,</div><div class='del'>-#  $ make benchmark COMPARE_RUBY="ruby-trunk" OPTS="-e ruby-2.2.2"</div><div class='del'>-# This command compares trunk and built-ruby and 2.2.2</div><div class='add'>+# See benchmark/README.md for details.</div><div class='ctx'> benchmark: miniruby$(EXEEXT) update-benchmark-driver PHONY</div><div class='ctx'> 	$(BASERUBY) -rrubygems -I$(srcdir)/benchmark/lib $(srcdir)/benchmark/benchmark-driver/exe/benchmark-driver \</div><div class='ctx'> 	            --executables="compare-ruby::$(COMPARE_RUBY) -I$(EXTOUT)/common --disable-gem" \</div><div class='del'>-	            --executables="built-ruby::$(MINIRUBY) -r$(srcdir)/prelude --disable-gem" \</div><div class='del'>-	            $(ARGS) $(OPTS)</div><div class='add'>+	            --executables="built-ruby::$(BENCH_RUBY) --disable-gem" \</div><div class='add'>+	            $(BENCH_OPTS) $(ARGS) $(OPTS)</div><div class='ctx'> </div><div class='ctx'> run.gdb:</div><div class='ctx'> 	echo set breakpoint pending on         &gt; run.gdb</div><div class='add'>+	echo b rb_assert_failure              &gt;&gt; run.gdb</div><div class='add'>+	echo b rb_bug                         &gt;&gt; run.gdb</div><div class='ctx'> 	echo b ruby_debug_breakpoint          &gt;&gt; run.gdb</div><div class='ctx'> 	echo '# handle SIGINT nostop'         &gt;&gt; run.gdb</div><div class='ctx'> 	echo '# handle SIGPIPE nostop'        &gt;&gt; run.gdb</div><div class='hunk'>@@ -1184,38 +1324,48 @@ run.gdb:</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> gdb: miniruby$(EXEEXT) run.gdb PHONY</div><div class='del'>-	gdb -x run.gdb --quiet --args $(MINIRUBY) $(TESTRUN_SCRIPT)</div><div class='add'>+	gdb -x run.gdb --quiet --args $(MINIRUBY) $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)</div><div class='ctx'> </div><div class='ctx'> gdb-ruby: $(PROGRAM) run.gdb PHONY</div><div class='del'>-	$(Q) $(RUNRUBY_COMMAND) $(RUNRUBY_DEBUGGER) -- $(TESTRUN_SCRIPT)</div><div class='add'>+	$(Q) $(RUNRUBY_COMMAND) $(RUNRUBY_DEBUGGER) -- $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)</div><div class='ctx'> </div><div class='ctx'> LLDB_INIT = command script import -r $(srcdir)/misc/lldb_cruby.py</div><div class='ctx'> </div><div class='ctx'> lldb: miniruby$(EXEEXT) PHONY</div><div class='del'>-	lldb -o '$(LLDB_INIT)' miniruby$(EXEEXT) -- $(TESTRUN_SCRIPT)</div><div class='add'>+	lldb -o '$(LLDB_INIT)' miniruby$(EXEEXT) -- $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)</div><div class='ctx'> </div><div class='ctx'> lldb-ruby: $(PROGRAM) PHONY</div><div class='del'>-	lldb $(enable_shared:yes=-o 'target modules add ${LIBRUBY_SO}') -o '$(LLDB_INIT)' $(PROGRAM) -- $(TESTRUN_SCRIPT)</div><div class='add'>+	lldb $(enable_shared:yes=-o 'target modules add ${LIBRUBY_SO}') -o '$(LLDB_INIT)' $(PROGRAM) -- $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT)</div><div class='ctx'> </div><div class='ctx'> DISTPKGS = gzip,zip,all</div><div class='add'>+PKGSDIR = tmp</div><div class='ctx'> dist:</div><div class='del'>-	$(BASERUBY) $(srcdir)/tool/make-snapshot \</div><div class='add'>+	$(BASERUBY) $(V0:1=-v) $(tooldir)/make-snapshot \</div><div class='ctx'> 	-srcdir=$(srcdir) -packages=$(DISTPKGS) \</div><div class='ctx'> 	-unicode-version=$(UNICODE_VERSION) \</div><div class='del'>-	tmp $(RELNAME)</div><div class='add'>+	$(DISTOPTS) $(PKGSDIR) $(RELNAME)</div><div class='ctx'> </div><div class='ctx'> up:: update-remote</div><div class='ctx'> </div><div class='ctx'> up::</div><div class='del'>-	-$(Q)$(MAKE) $(mflags) Q=$(Q) REVISION_FORCE=PHONY "$(REVISION_H)"</div><div class='add'>+	-$(Q)$(MAKE) $(mflags) Q=$(Q) REVISION_FORCE=PHONY ALWAYS_UPDATE_UNICODE= after-update</div><div class='ctx'> </div><div class='del'>-up::</div><div class='del'>-	-$(Q)$(MAKE) $(mflags) Q=$(Q) after-update</div><div class='add'>+yes::</div><div class='add'>+no::</div><div class='ctx'> </div><div class='add'>+after-update:: common-srcs</div><div class='add'>+after-update:: $(REVISION_H)</div><div class='ctx'> after-update:: extract-extlibs</div><div class='add'>+after-update:: extract-gems</div><div class='add'>+</div><div class='add'>+update-src::</div><div class='add'>+	$(Q) $(RM) $(REVISION_H) revision.h "$(srcdir)/$(REVISION_H)" "$(srcdir)/revision.h"</div><div class='add'>+	$(Q) exit &gt; "$(srcdir)/revision.h"</div><div class='ctx'> </div><div class='ctx'> update-remote:: update-src update-download</div><div class='del'>-update-download:: update-unicode update-gems download-extlibs</div><div class='add'>+update-download:: $(ALWAYS_UPDATE_UNICODE:yes=update-unicode)</div><div class='add'>+update-download:: update-gems</div><div class='add'>+update-download:: download-extlibs</div><div class='ctx'> </div><div class='ctx'> update-mspec:</div><div class='ctx'> update-rubyspec:</div><div class='hunk'>@@ -1224,11 +1374,16 @@ update-config_files: PHONY</div><div class='ctx'> 	$(Q) $(BASERUBY) -C "$(srcdir)" tool/downloader.rb -d tool --cache-dir=$(CACHE_DIR) -e gnu \</div><div class='ctx'> 	    config.guess config.sub</div><div class='ctx'> </div><div class='del'>-update-gems: PHONY</div><div class='add'>+refresh-gems: update-bundled_gems prepare-gems</div><div class='add'>+prepare-gems: $(HAVE_BASERUBY:yes=update-gems) $(HAVE_BASERUBY:yes=extract-gems)</div><div class='add'>+extract-gems: $(HAVE_BASERUBY:yes=update-gems)</div><div class='add'>+</div><div class='add'>+update-gems$(gnumake:yes=-sequential): PHONY</div><div class='ctx'> 	$(ECHO) Downloading bundled gem files...</div><div class='ctx'> 	$(Q) $(BASERUBY) -C "$(srcdir)" \</div><div class='ctx'> 	    -I./tool -rdownloader -answ \</div><div class='ctx'> 	    -e 'gem, ver = *$$F' \</div><div class='add'>+	    -e 'next if !ver or /^#/=~gem' \</div><div class='ctx'> 	    -e 'old = Dir.glob("gems/#{gem}-*.gem")' \</div><div class='ctx'> 	    -e 'gem = "#{gem}-#{ver}.gem"' \</div><div class='ctx'> 	    -e 'Downloader::RubyGems.download(gem, "gems", nil) and' \</div><div class='hunk'>@@ -1237,55 +1392,141 @@ update-gems: PHONY</div><div class='ctx'> 	    -e 'FileUtils.rm_rf(old.map{'"|n|"'n.chomp(".gem")})' \</div><div class='ctx'> 	    gems/bundled_gems</div><div class='ctx'> </div><div class='del'>-extract-gems: PHONY</div><div class='add'>+extract-gems$(gnumake:yes=-sequential): PHONY</div><div class='ctx'> 	$(ECHO) Extracting bundled gem files...</div><div class='del'>-	$(Q) $(RUNRUBY) -C "$(srcdir)/gems" \</div><div class='del'>-	    -I../tool -rgem-unpack -answ \</div><div class='del'>-	    -e 'gem, ver = *$$F' \</div><div class='del'>-	    -e 'Gem.unpack("#{gem}-#{ver}.gem")' \</div><div class='del'>-	    bundled_gems</div><div class='add'>+	$(Q) $(BASERUBY) -C "$(srcdir)" \</div><div class='add'>+	    -Itool/lib -rfileutils -rbundled_gem -answ \</div><div class='add'>+	    -e 'BEGIN {d = ".bundle/gems"}' \</div><div class='add'>+	    -e 'gem, ver, _, rev = *$$F' \</div><div class='add'>+	    -e 'next if !ver or /^#/=~gem' \</div><div class='add'>+	    -e 'g = "#{gem}-#{ver}"' \</div><div class='add'>+	    -e 'if File.directory?("#{d}/#{g}")' \</div><div class='add'>+	    -e 'elsif rev and File.exist?(gs = "gems/src/#{gem}/#{gem}.gemspec")' \</div><div class='add'>+	    -e   'BundledGem.copy(gs, ".bundle")' \</div><div class='add'>+	    -e 'else' \</div><div class='add'>+	    -e   'BundledGem.unpack("gems/#{g}.gem", ".bundle")' \</div><div class='add'>+	    -e 'end' \</div><div class='add'>+	    gems/bundled_gems</div><div class='add'>+</div><div class='add'>+outdate-bundled-gems: PHONY</div><div class='add'>+	$(Q) $(BASERUBY) $(tooldir)/$@.rb --make="$(MAKE)" --mflags="$(MFLAGS)" "$(srcdir)"</div><div class='ctx'> </div><div class='ctx'> update-bundled_gems: PHONY</div><div class='ctx'> 	$(Q) $(RUNRUBY) -rrubygems \</div><div class='del'>-	    -pla \</div><div class='del'>-	    -e '(gem,src), = Gem::SpecFetcher.fetcher.detect(:latest) {'"|s|" \</div><div class='del'>-	    -e   's.platform=="ruby"&amp;&amp;s.name==$$F[0]' \</div><div class='del'>-	    -e '}' \</div><div class='del'>-	    -e 'gem = src.fetch_spec(gem)' \</div><div class='del'>-	    -e '$$_ = [gem.name, gem.version, gem.metadata["source_code_uri"]||gem.homepage].join(" ")' \</div><div class='add'>+	     $(tooldir)/update-bundled_gems.rb \</div><div class='ctx'> 	     "$(srcdir)/gems/bundled_gems" | \</div><div class='del'>-	"$(IFCHANGE)" "$(srcdir)/gems/bundled_gems" -</div><div class='del'>-</div><div class='del'>-test-bundled-gems-precheck: $(arch)-fake.rb programs</div><div class='del'>-</div><div class='del'>-test-bundled-gems-fetch: $(PREP)</div><div class='add'>+	$(IFCHANGE) "$(srcdir)/gems/bundled_gems" -</div><div class='add'>+	$(GIT) -C "$(srcdir)" diff --no-ext-diff --ignore-submodules --exit-code || \</div><div class='add'>+	$(GIT) -C "$(srcdir)" commit -m "Update bundled_gems" gems/bundled_gems</div><div class='add'>+</div><div class='add'>+PRECHECK_BUNDLED_GEMS = test-bundled-gems-precheck</div><div class='add'>+test-bundled-gems-precheck: $(TEST_RUNNABLE)-test-bundled-gems-precheck</div><div class='add'>+yes-test-bundled-gems-precheck: main</div><div class='add'>+no-test-bundled-gems-precheck:</div><div class='add'>+</div><div class='add'>+test-bundled-gems-fetch: yes-test-bundled-gems-fetch</div><div class='add'>+yes-test-bundled-gems-fetch:</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='ctx'> 	$(Q) $(BASERUBY) -C $(srcdir)/gems ../tool/fetch-bundled_gems.rb src bundled_gems</div><div class='del'>-</div><div class='del'>-test-bundled-gems-prepare: test-bundled-gems-precheck test-bundled-gems-fetch</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='add'>+no-test-bundled-gems-fetch:</div><div class='add'>+</div><div class='add'>+test-bundled-gems-prepare: $(PRECHECK_BUNDLED_GEMS) test-bundled-gems-fetch</div><div class='add'>+test-bundled-gems-prepare: $(TEST_RUNNABLE)-test-bundled-gems-prepare</div><div class='add'>+no-test-bundled-gems-prepare: no-test-bundled-gems-precheck</div><div class='add'>+yes-test-bundled-gems-prepare: yes-test-bundled-gems-precheck</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='ctx'> 	$(XRUBY) -C "$(srcdir)" bin/gem install --no-document \</div><div class='del'>-		--install-dir .bundle --conservative "bundler" "minitest:~&gt; 5" 'test-unit' 'rake' 'hoe' 'yard' 'pry' 'packnga'</div><div class='add'>+		--install-dir .bundle --conservative "bundler" "minitest:~&gt; 5" "test-unit" "rake" "hoe" "rexml" "json-schema:5.1.0" "test-unit-rr"</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='ctx'> </div><div class='ctx'> PREPARE_BUNDLED_GEMS = test-bundled-gems-prepare</div><div class='ctx'> test-bundled-gems: $(TEST_RUNNABLE)-test-bundled-gems</div><div class='ctx'> yes-test-bundled-gems: test-bundled-gems-run</div><div class='ctx'> no-test-bundled-gems:</div><div class='add'>+</div><div class='add'>+# Override this to allow failure of specific gems on CI</div><div class='add'>+# TEST_BUNDLED_GEMS_ALLOW_FAILURES =</div><div class='add'>+</div><div class='add'>+BUNDLED_GEMS =</div><div class='ctx'> test-bundled-gems-run: $(PREPARE_BUNDLED_GEMS)</div><div class='add'>+	$(gnumake_recursive)$(Q) $(XRUBY) $(tooldir)/test-bundled-gems.rb $(BUNDLED_GEMS)</div><div class='ctx'> </div><div class='del'>-test-bundler-precheck: $(arch)-fake.rb programs</div><div class='add'>+test-syntax-suggest-precheck: $(TEST_RUNNABLE)-test-syntax-suggest-precheck</div><div class='add'>+no-test-syntax-suggest-precheck:</div><div class='add'>+yes-test-syntax-suggest-precheck: main</div><div class='ctx'> </div><div class='del'>-yes-test-bundler-prepare: test-bundler-precheck</div><div class='add'>+test-syntax-suggest-prepare: $(TEST_RUNNABLE)-test-syntax-suggest-prepare</div><div class='add'>+no-test-syntax-suggest-prepare: no-test-syntax-suggest-precheck</div><div class='add'>+yes-test-syntax-suggest-prepare: yes-test-syntax-suggest-precheck</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='ctx'> 	$(XRUBY) -C "$(srcdir)" bin/gem install --no-document \</div><div class='del'>-		--install-dir .bundle --conservative "rspec:~&gt; 3.5"</div><div class='del'>-</div><div class='del'>-RSPECOPTS = --format progress</div><div class='add'>+		--install-dir .bundle --conservative "bundler" "rake" "rspec:~&gt; 3" #"ruby-prof"</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='add'>+</div><div class='add'>+RSPECOPTS =</div><div class='add'>+SYNTAX_SUGGEST_SPECS =</div><div class='add'>+PREPARE_SYNTAX_SUGGEST = test-syntax-suggest-prepare</div><div class='add'>+test-syntax-suggest: $(TEST_RUNNABLE)-test-syntax-suggest</div><div class='add'>+yes-test-syntax-suggest: yes-$(PREPARE_SYNTAX_SUGGEST)</div><div class='add'>+	$(XRUBY) -C $(srcdir) -Ispec/syntax_suggest .bundle/bin/rspec \</div><div class='add'>+		--require spec_helper $(RSPECOPTS) spec/syntax_suggest/$(SYNTAX_SUGGEST_SPECS)</div><div class='add'>+no-test-syntax-suggest:</div><div class='add'>+</div><div class='add'>+check: $(DOT_WAIT) $(TEST_RUNNABLE)-$(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest</div><div class='add'>+</div><div class='add'>+test-bundler-precheck: $(TEST_RUNNABLE)-test-bundler-precheck</div><div class='add'>+no-test-bundler-precheck:</div><div class='add'>+yes-test-bundler-precheck: main $(arch)-fake.rb</div><div class='add'>+</div><div class='add'>+no-test-bundler-prepare: no-test-bundler-precheck</div><div class='add'>+yes-test-bundler-prepare: yes-test-bundler-precheck</div><div class='add'>+	$(ACTIONS_GROUP)</div><div class='add'>+	$(XRUBY) -C $(srcdir) -Ilib \</div><div class='add'>+		-e 'ENV["GEM_HOME"] = File.expand_path(".bundle")' \</div><div class='add'>+		-e 'ENV["BUNDLE_APP_CONFIG"] = File.expand_path(".bundle")' \</div><div class='add'>+		-e 'ENV["BUNDLE_PATH__SYSTEM"] = "true"' \</div><div class='add'>+		-e 'ENV["BUNDLE_WITHOUT"] = "lint doc"' \</div><div class='add'>+		-e 'load "spec/bundler/support/bundle.rb"' -- install --gemfile=tool/bundler/dev_gems.rb</div><div class='add'>+	$(ACTIONS_ENDGROUP)</div><div class='add'>+</div><div class='add'>+RSPECOPTS =</div><div class='ctx'> BUNDLER_SPECS =</div><div class='ctx'> test-bundler: $(TEST_RUNNABLE)-test-bundler</div><div class='ctx'> yes-test-bundler: yes-test-bundler-prepare</div><div class='del'>-	$(gnumake_recursive)$(Q) \</div><div class='del'>-	$(XRUBY) -C $(srcdir) -Ispec/bundler .bundle/bin/rspec \</div><div class='add'>+	$(gnumake_recursive)$(XRUBY) \</div><div class='add'>+		-r./$(arch)-fake \</div><div class='add'>+		-e "exec(*ARGV)" -- \</div><div class='add'>+		$(XRUBY) -C $(srcdir) -Ispec/bundler .bundle/bin/rspec \</div><div class='ctx'> 		--require spec_helper $(RSPECOPTS) spec/bundler/$(BUNDLER_SPECS)</div><div class='ctx'> no-test-bundler:</div><div class='ctx'> </div><div class='add'>+PARALLELRSPECOPTS = --runtime-log $(srcdir)/tmp/parallel_runtime_rspec.log</div><div class='add'>+test-bundler-parallel: $(TEST_RUNNABLE)-test-bundler-parallel</div><div class='add'>+yes-test-bundler-parallel: yes-test-bundler-prepare</div><div class='add'>+	$(gnumake_recursive)$(XRUBY) \</div><div class='add'>+		-r./$(arch)-fake \</div><div class='add'>+		-e "ARGV[-1] = File.expand_path(ARGV[-1])" \</div><div class='add'>+		-e "exec(*ARGV)" -- \</div><div class='add'>+		$(XRUBY) -I$(srcdir)/spec/bundler \</div><div class='add'>+		-e "ENV['PARALLEL_TESTS_EXECUTABLE'] = ARGV.shift" \</div><div class='add'>+		-e "load ARGV.shift" \</div><div class='add'>+		"$(XRUBY) -C $(srcdir) -Ispec/bundler .bundle/bin/rspec" \</div><div class='add'>+		$(srcdir)/.bundle/bin/parallel_rspec \</div><div class='add'>+		-o "--require spec_helper" \</div><div class='add'>+		$(PARALLELRSPECOPTS) $(srcdir)/spec/bundler/$(BUNDLER_SPECS)</div><div class='add'>+no-test-bundler-parallel:</div><div class='add'>+</div><div class='add'>+# The annocheck supports ELF format binaries compiled for any OS and for any</div><div class='add'>+# architecture. It is designed to be independent of the host OS and the</div><div class='add'>+# architecture. The test-annocheck.sh requires docker or podman.</div><div class='add'>+test-annocheck: $(PROGRAM)</div><div class='add'>+	$(tooldir)/test-annocheck.sh $(PROGRAM)</div><div class='add'>+</div><div class='add'>+GEM = up</div><div class='add'>+sync-default-gems:</div><div class='add'>+	$(Q) $(XRUBY) -C "$(srcdir)" tool/sync_default_gems.rb $(GEM)</div><div class='add'>+</div><div class='ctx'> UNICODE_FILES = $(UNICODE_SRC_DATA_DIR)/UnicodeData.txt \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR)/CompositionExclusions.txt \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR)/NormalizationTest.txt \</div><div class='hunk'>@@ -1301,99 +1542,141 @@ UNICODE_PROPERTY_FILES =  \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR)/PropertyAliases.txt \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR)/PropertyValueAliases.txt \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR)/Scripts.txt \</div><div class='add'>+		$(empty)</div><div class='add'>+</div><div class='add'>+UNICODE_AUXILIARY_FILES =  \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR)/auxiliary/GraphemeBreakProperty.txt \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR)/auxiliary/GraphemeBreakTest.txt \</div><div class='ctx'> 		$(empty)</div><div class='ctx'> </div><div class='add'>+UNICODE_UCD_EMOJI_FILES = \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/emoji/emoji-data.txt \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)/emoji/emoji-variation-sequences.txt \</div><div class='add'>+		$(empty)</div><div class='add'>+</div><div class='ctx'> UNICODE_EMOJI_FILES = \</div><div class='del'>-		$(UNICODE_SRC_EMOJI_DATA_DIR)/emoji-data.txt \</div><div class='ctx'> 		$(UNICODE_SRC_EMOJI_DATA_DIR)/emoji-sequences.txt \</div><div class='ctx'> 		$(UNICODE_SRC_EMOJI_DATA_DIR)/emoji-test.txt \</div><div class='del'>-		$(UNICODE_SRC_EMOJI_DATA_DIR)/emoji-variation-sequences.txt \</div><div class='ctx'> 		$(UNICODE_SRC_EMOJI_DATA_DIR)/emoji-zwj-sequences.txt \</div><div class='ctx'> 		$(empty)</div><div class='ctx'> </div><div class='del'>-update-unicode: $(UNICODE_FILES) $(UNICODE_PROPERTY_FILES)</div><div class='add'>+update-unicode: $(UNICODE_FILES) $(UNICODE_PROPERTY_FILES) \</div><div class='add'>+		$(UNICODE_AUXILIARY_FILES) $(UNICODE_UCD_EMOJI_FILES) $(UNICODE_EMOJI_FILES)</div><div class='ctx'> </div><div class='ctx'> CACHE_DIR = $(srcdir)/.downloaded-cache</div><div class='del'>-UNICODE_DOWNLOAD = \</div><div class='del'>-	$(BASERUBY) $(srcdir)/tool/downloader.rb \</div><div class='add'>+UNICODE_DOWNLOADER_ALWAYS_UPDATE = $(ALWAYS_UPDATE_UNICODE:yes=--always)</div><div class='add'>+UNICODE_DOWNLOADER = \</div><div class='add'>+	$(BASERUBY) $(tooldir)/downloader.rb \</div><div class='ctx'> 	    --cache-dir=$(CACHE_DIR) \</div><div class='del'>-	    --unicode-beta $(UNICODE_BETA) \</div><div class='add'>+	    --exist $(UNICODE_DOWNLOADER_ALWAYS_UPDATE:no=) \</div><div class='add'>+	    unicode --unicode-beta=$(UNICODE_BETA)</div><div class='add'>+UNICODE_DOWNLOAD = \</div><div class='add'>+	$(UNICODE_DOWNLOADER) \</div><div class='ctx'> 	    -d $(UNICODE_SRC_DATA_DIR) \</div><div class='del'>-	    -p $(UNICODE_VERSION)/ucd \</div><div class='del'>-	    -e $(ALWAYS_UPDATE_UNICODE:yes=-a) unicode</div><div class='add'>+	    -p $(UNICODE_VERSION)/ucd</div><div class='add'>+UNICODE_AUXILIARY_DOWNLOAD = \</div><div class='add'>+	$(UNICODE_DOWNLOADER) \</div><div class='add'>+	    -d $(UNICODE_SRC_DATA_DIR)/auxiliary \</div><div class='add'>+	    -p $(UNICODE_VERSION)/ucd/auxiliary</div><div class='add'>+UNICODE_UCD_EMOJI_DOWNLOAD = \</div><div class='add'>+	$(UNICODE_DOWNLOADER) \</div><div class='add'>+	    -d $(UNICODE_SRC_DATA_DIR)/emoji \</div><div class='add'>+	    -p $(UNICODE_VERSION)/ucd/emoji</div><div class='ctx'> UNICODE_EMOJI_DOWNLOAD = \</div><div class='del'>-	$(BASERUBY) $(srcdir)/tool/downloader.rb \</div><div class='del'>-	    --cache-dir=$(CACHE_DIR) \</div><div class='del'>-	    --unicode-beta $(UNICODE_BETA) \</div><div class='add'>+	$(UNICODE_DOWNLOADER) \</div><div class='ctx'> 	    -d $(UNICODE_SRC_EMOJI_DATA_DIR) \</div><div class='del'>-	    -p emoji/$(UNICODE_EMOJI_VERSION) \</div><div class='del'>-	    -e $(ALWAYS_UPDATE_UNICODE:yes=-a) unicode</div><div class='add'>+	    -p emoji/$(UNICODE_EMOJI_VERSION)</div><div class='ctx'> </div><div class='del'>-$(UNICODE_PROPERTY_FILES): update-unicode-property-files</div><div class='del'>-update-unicode-property-files:</div><div class='del'>-	$(ECHO) Downloading Unicode $(UNICODE_VERSION) property files...</div><div class='add'>+update-unicode-files: $(UNICODE_FILES) $(UNICODE_PROPERTY_FILES)</div><div class='add'>+$(UNICODE_FILES) $(UNICODE_PROPERTY_FILES):</div><div class='add'>+	$(ECHO) Downloading Unicode $(UNICODE_VERSION) data and property files...</div><div class='add'>+	$(Q) $(MAKEDIRS) "$(UNICODE_SRC_DATA_DIR)"</div><div class='add'>+	$(Q) $(UNICODE_DOWNLOAD) $(UNICODE_FILES) $(UNICODE_PROPERTY_FILES)</div><div class='add'>+</div><div class='add'>+update-unicode-auxiliary-files: $(UNICODE_AUXILIARY_FILES)</div><div class='add'>+$(UNICODE_AUXILIARY_FILES):</div><div class='add'>+	$(ECHO) Downloading Unicode $(UNICODE_VERSION) auxiliary files...</div><div class='ctx'> 	$(Q) $(MAKEDIRS) "$(UNICODE_SRC_DATA_DIR)/auxiliary"</div><div class='del'>-	$(Q) $(UNICODE_DOWNLOAD) $(UNICODE_PROPERTY_FILES)</div><div class='add'>+	$(Q) $(UNICODE_AUXILIARY_DOWNLOAD) $(UNICODE_AUXILIARY_FILES)</div><div class='add'>+</div><div class='add'>+update-unicode-ucd-emoji-files: $(UNICODE_UCD_EMOJI_FILES)</div><div class='add'>+$(UNICODE_UCD_EMOJI_FILES):</div><div class='add'>+	$(ECHO) Downloading Unicode UCD emoji $(UNICODE_EMOJI_VERSION) files...</div><div class='add'>+	$(Q) $(MAKEDIRS) "$(UNICODE_SRC_DATA_DIR)/emoji"</div><div class='add'>+	$(Q) $(UNICODE_UCD_EMOJI_DOWNLOAD) $(UNICODE_UCD_EMOJI_FILES)</div><div class='add'>+</div><div class='add'>+update-unicode-emoji-files: $(UNICODE_EMOJI_FILES)</div><div class='add'>+$(UNICODE_EMOJI_FILES):</div><div class='ctx'> 	$(ECHO) Downloading Unicode emoji $(UNICODE_EMOJI_VERSION) files...</div><div class='ctx'> 	$(Q) $(MAKEDIRS) "$(UNICODE_SRC_EMOJI_DATA_DIR)"</div><div class='ctx'> 	$(Q) $(UNICODE_EMOJI_DOWNLOAD) $(UNICODE_EMOJI_FILES)</div><div class='ctx'> </div><div class='del'>-$(UNICODE_FILES): update-unicode-files</div><div class='del'>-update-unicode-files:</div><div class='del'>-	$(ECHO) Downloading Unicode $(UNICODE_VERSION) data files...</div><div class='del'>-	$(Q) $(MAKEDIRS) "$(UNICODE_SRC_DATA_DIR)"</div><div class='del'>-	$(Q) $(UNICODE_DOWNLOAD) $(UNICODE_FILES)</div><div class='del'>-</div><div class='del'>-$(srcdir)/$(HAVE_BASERUBY:yes=lib/unicode_normalize/tables.rb): \</div><div class='del'>-	$(UNICODE_SRC_DATA_DIR)/.unicode-tables.time</div><div class='add'>+$(srcdir)/lib/unicode_normalize/tables.rb: \</div><div class='add'>+	$(UNICODE_SRC_DATA_DIR)/$(HAVE_BASERUBY:yes=.unicode-tables.time)</div><div class='ctx'> </div><div class='ctx'> $(UNICODE_SRC_DATA_DIR)/$(ALWAYS_UPDATE_UNICODE:yes=.unicode-tables.time): \</div><div class='del'>-	$(UNICODE_FILES) $(UNICODE_PROPERTY_FILES)</div><div class='add'>+	$(UNICODE_FILES) $(UNICODE_PROPERTY_FILES) \</div><div class='add'>+	$(UNICODE_AUXILIARY_FILES) $(UNICODE_UCD_EMOJI_FILES) $(UNICODE_EMOJI_FILES)</div><div class='ctx'> </div><div class='ctx'> touch-unicode-files:</div><div class='ctx'> 	$(MAKEDIRS) $(UNICODE_SRC_DATA_DIR)</div><div class='del'>-	touch $(UNICODE_SRC_DATA_DIR)/.unicode-tables.time $(UNICODE_DATA_HEADERS)</div><div class='add'>+	$(Q) $(TOUCH) $(UNICODE_SRC_DATA_DIR)/.unicode-tables.time $(UNICODE_DATA_HEADERS)</div><div class='add'>+</div><div class='add'>+UNICODE_TABLES_DATA_FILES = \</div><div class='add'>+	$(UNICODE_SRC_DATA_DIR)/UnicodeData.txt \</div><div class='add'>+	$(UNICODE_SRC_DATA_DIR)/CompositionExclusions.txt \</div><div class='add'>+	$(empty)</div><div class='ctx'> </div><div class='del'>-$(UNICODE_SRC_DATA_DIR)/.unicode-tables.time: $(srcdir)/tool/generic_erb.rb \</div><div class='add'>+UNICODE_TABLES_DEPENDENTS_1 = none$(ALWAYS_UPDATE_UNICODE)</div><div class='add'>+UNICODE_TABLES_DEPENDENTS = $(UNICODE_TABLES_DEPENDENTS_1:noneyes=force)</div><div class='add'>+UNICODE_TABLES_TIMESTAMP = yes</div><div class='add'>+$(UNICODE_SRC_DATA_DIR)/.unicode-tables.$(UNICODE_TABLES_DEPENDENTS:none=time):</div><div class='add'>+	$(Q) $(MAKEDIRS) $(@D)</div><div class='add'>+	$(Q) exit &gt; $(@) || $(NULLCMD)</div><div class='add'>+$(UNICODE_SRC_DATA_DIR)/.unicode-tables.$(UNICODE_TABLES_DEPENDENTS:force=time): \</div><div class='add'>+		$(tooldir)/generic_erb.rb \</div><div class='ctx'> 		$(srcdir)/template/unicode_norm_gen.tmpl \</div><div class='del'>-		$(ALWAYS_UPDATE_UNICODE:yes=update-unicode)</div><div class='del'>-	$(Q) $(MAKE) $(@D)</div><div class='del'>-	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb \</div><div class='del'>-		-c -t$@ -o $(srcdir)/lib/unicode_normalize/tables.rb \</div><div class='add'>+		$(UNICODE_TABLES_DATA_FILES) \</div><div class='add'>+	$(order_only) \</div><div class='add'>+		$(UNICODE_SRC_DATA_DIR)</div><div class='add'>+	$(Q) $(BASERUBY) $(tooldir)/generic_erb.rb \</div><div class='add'>+		-c $(UNICODE_TABLES_TIMESTAMP:yes=-t$@) \</div><div class='add'>+		-o $(srcdir)/lib/unicode_normalize/tables.rb \</div><div class='ctx'> 		-I $(srcdir) \</div><div class='ctx'> 		$(srcdir)/template/unicode_norm_gen.tmpl \</div><div class='ctx'> 		$(UNICODE_DATA_DIR) lib/unicode_normalize</div><div class='ctx'> </div><div class='ctx'> $(UNICODE_SRC_DATA_DIR):</div><div class='del'>-	$(Q) $(exec) $(MAKEDIRS) $@ || exit &amp;&amp; echo $(MAKE)</div><div class='add'>+	$(gnumake_recursive)$(Q) $(MAKEDIRS) $@</div><div class='ctx'> </div><div class='ctx'> $(UNICODE_HDR_DIR)/$(ALWAYS_UPDATE_UNICODE:yes=name2ctype.h): \</div><div class='del'>-		$(srcdir)/tool/enc-unicode.rb \</div><div class='add'>+		$(tooldir)/enc-unicode.rb \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR)/UnicodeData.txt \</div><div class='del'>-		$(UNICODE_PROPERTY_FILES)</div><div class='add'>+		$(UNICODE_AUXILIARY_FILES) \</div><div class='add'>+		$(UNICODE_PROPERTY_FILES) \</div><div class='add'>+		$(UNICODE_UCD_EMOJI_FILES) \</div><div class='add'>+		$(UNICODE_EMOJI_FILES)</div><div class='ctx'> </div><div class='ctx'> $(UNICODE_HDR_DIR)/name2ctype.h:</div><div class='ctx'> 	$(MAKEDIRS) $(@D)</div><div class='del'>-	$(BOOTSTRAPRUBY) $(srcdir)/tool/enc-unicode.rb --header \</div><div class='add'>+	$(BOOTSTRAPRUBY) $(tooldir)/enc-unicode.rb --header \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR) $(UNICODE_SRC_EMOJI_DATA_DIR) &gt; $@.new</div><div class='ctx'> 	$(MV) $@.new $@</div><div class='ctx'> </div><div class='ctx'> # the next non-comment line was:</div><div class='del'>-# $(UNICODE_HDR_DIR)/casefold.h: $(srcdir)/enc/unicode/case-folding.rb \</div><div class='add'>+# $(UNICODE_HDR_DIR)/casefold.h: $(tooldir)/enc-case-folding.rb \</div><div class='ctx'> # but was changed to make sure CI works on systems that don't have gperf</div><div class='ctx'> unicode-up: $(UNICODE_DATA_HEADERS)</div><div class='ctx'> </div><div class='ctx'> $(UNICODE_HDR_DIR)/$(ALWAYS_UPDATE_UNICODE:yes=casefold.h): \</div><div class='del'>-		$(srcdir)/enc/unicode/case-folding.rb \</div><div class='add'>+		$(tooldir)/enc-case-folding.rb \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR)/UnicodeData.txt \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR)/SpecialCasing.txt \</div><div class='ctx'> 		$(UNICODE_SRC_DATA_DIR)/CaseFolding.txt</div><div class='ctx'> </div><div class='ctx'> $(UNICODE_HDR_DIR)/casefold.h:</div><div class='ctx'> 	$(MAKEDIRS) $(@D)</div><div class='del'>-	$(Q) $(BASERUBY) $(srcdir)/enc/unicode/case-folding.rb \</div><div class='add'>+	$(Q) $(BASERUBY) $(tooldir)/enc-case-folding.rb \</div><div class='ctx'> 		--output-file=$@ \</div><div class='ctx'> 		--mapping-data-directory=$(UNICODE_SRC_DATA_DIR)</div><div class='ctx'> </div><div class='hunk'>@@ -1421,9 +1704,6 @@ info-libruby_so: PHONY</div><div class='ctx'> info-arch: PHONY</div><div class='ctx'> 	@echo arch=$(arch)</div><div class='ctx'> </div><div class='del'>-change: PHONY</div><div class='del'>-	$(BASERUBY) -C "$(srcdir)" ./tool/change_maker.rb $(CHANGES) &gt; change.log</div><div class='del'>-</div><div class='ctx'> exam: check</div><div class='ctx'> </div><div class='ctx'> love: sudo-precheck up all test exam install</div><div class='hunk'>@@ -1437,76 +1717,318 @@ sudo-precheck: PHONY</div><div class='ctx'> 	@$(SUDO) echo &gt; $(NULL)</div><div class='ctx'> </div><div class='ctx'> update-man-date: PHONY</div><div class='del'>-	-$(Q) $(BASERUBY) -I"$(srcdir)/tool" -rvcs -i -p \</div><div class='add'>+	-$(Q) $(BASERUBY) -I"$(tooldir)/lib" -rvcs -i -p \</div><div class='ctx'> 	-e 'BEGIN{@vcs=VCS.detect(ARGV.shift)}' \</div><div class='ctx'> 	-e '$$_.sub!(/^(\.Dd ).*/){$$1+@vcs.modified(ARGF.path).strftime("%B %d, %Y")}' \</div><div class='ctx'> 	"$(srcdir)" "$(srcdir)"/man/*.1</div><div class='ctx'> </div><div class='add'>+.PHONY: ChangeLog</div><div class='add'>+ChangeLog:</div><div class='add'>+	$(ECHO) Generating $@</div><div class='add'>+	-$(Q) $(BASERUBY) -I"$(tooldir)/lib" -rvcs \</div><div class='add'>+	-e 'VCS.detect(ARGV[0]).export_changelog("@", nil, nil, ARGV[1])' \</div><div class='add'>+	"$(srcdir)" $@</div><div class='add'>+</div><div class='add'>+HELP_EXTRA_TASKS = ""</div><div class='add'>+</div><div class='ctx'> help: PHONY</div><div class='ctx'> 	$(MESSAGE_BEGIN) \</div><div class='ctx'> 	"                Makefile of Ruby" \</div><div class='ctx'> 	"" \</div><div class='ctx'> 	"targets:" \</div><div class='del'>-	"  all (default):       builds all of below" \</div><div class='del'>-	"  miniruby:            builds only miniruby" \</div><div class='del'>-	"  encs:                builds encodings" \</div><div class='del'>-	"  exts:                builds extensions" \</div><div class='del'>-	"  main:                builds encodings, extensions and ruby" \</div><div class='del'>-	"  docs:                builds documents" \</div><div class='del'>-	"  install-capi:        builds C API documents" \</div><div class='del'>-	"  run:                 runs test.rb by miniruby" \</div><div class='del'>-	"  runruby:             runs test.rb by ruby you just built" \</div><div class='del'>-	"  gdb:                 runs test.rb by miniruby under gdb" \</div><div class='del'>-	"  gdb-ruby:            runs test.rb by ruby under gdb" \</div><div class='del'>-	"  check:               equals make test test-all test-spec" \</div><div class='del'>-	"  exam:                equals make check" \</div><div class='del'>-	"  test:                ruby core tests" \</div><div class='del'>-	"  test-all:            all ruby tests [TESTOPTS=-j4 TESTS=&lt;test files&gt;]" \</div><div class='del'>-	"  test-spec:           run the Ruby spec suite" \</div><div class='del'>-	"  test-rubyspec:       same as test-spec" \</div><div class='del'>-	"  test-bundler:        run the Bundler spec" \</div><div class='del'>-	"  test-bundled-gems:   run the test suite of bundled gems" \</div><div class='del'>-	"  up:                  update local copy and autogenerated files" \</div><div class='del'>-	"  benchmark:           benchmark this ruby and COMPARE_RUBY." \</div><div class='del'>-	"  gcbench:             gc benchmark [GCBENCH_ITEM=&lt;item_name&gt;]" \</div><div class='del'>-	"  gcbench-rdoc:        gc benchmark with GCBENCH_ITEM=rdoc" \</div><div class='del'>-	"  install:             install all ruby distributions" \</div><div class='del'>-	"  install-nodoc:       install without rdoc" \</div><div class='del'>-	"  install-cross:       install cross compiling stuff" \</div><div class='del'>-	"  clean:               clean for tarball" \</div><div class='del'>-	"  distclean:           clean for repository" \</div><div class='del'>-	"  change:              make change log template" \</div><div class='del'>-	"  golf:                for golfers" \</div><div class='del'>-	"  goruby:              same as golf" \</div><div class='del'>-	"" \</div><div class='add'>+	"  all (default):         builds all of below" \</div><div class='add'>+	"  miniruby:              builds only miniruby" \</div><div class='add'>+	"  encs:                  builds encodings" \</div><div class='add'>+	"  exts:                  builds extensions" \</div><div class='add'>+	"  main:                  builds encodings, extensions and ruby" \</div><div class='add'>+	"  docs:                  builds documents" \</div><div class='add'>+	"  install-capi:          builds C API documents" \</div><div class='add'>+	"  run:                   runs test.rb by miniruby" \</div><div class='add'>+	"  runruby:               runs test.rb by ruby you just built" \</div><div class='add'>+	"  gdb:                   runs test.rb by miniruby under gdb" \</div><div class='add'>+	"  gdb-ruby:              runs test.rb by ruby under gdb" \</div><div class='add'>+	"  check:                 equals make test test-tool test-all test-spec" \</div><div class='add'>+	"  test:                  ruby core tests [BTESTS=&lt;bootstraptest files&gt;]" \</div><div class='add'>+	"  test-all:              all ruby tests [TESTOPTS=-j4 TESTS=&lt;test files&gt;]" \</div><div class='add'>+	"  test-spec:             run the Ruby spec suite [SPECOPTS=&lt;specs, opts&gt;]" \</div><div class='add'>+	"  test-bundler:          run the Bundler spec" \</div><div class='add'>+	"  test-bundler-parallel: run the Bundler spec with parallel" \</div><div class='add'>+	"  test-bundled-gems:     run the test suite of bundled gems" \</div><div class='add'>+	"  test-tool:             tests under the tool/test" \</div><div class='add'>+	"  update-gems:           download files of the bundled gems" \</div><div class='add'>+	"  update-bundled_gems:   update the latest version of bundled gems" \</div><div class='add'>+	"  sync-default-gems:     sync default gems from upstream [GEM=&lt;gem_name git_ref&gt;]" \</div><div class='add'>+	"  up:                    update local copy and autogenerated files" \</div><div class='add'>+	"  benchmark:             benchmark this ruby and COMPARE_RUBY." \</div><div class='add'>+	"  gcbench:               gc benchmark [GCBENCH_ITEM=&lt;item_name&gt;]" \</div><div class='add'>+	"  install:               install all ruby distributions" \</div><div class='add'>+	"  install-nodoc:         install without rdoc" \</div><div class='add'>+	"  install-cross:         install cross compiling stuff" \</div><div class='add'>+	"  clean:                 clean for tarball" \</div><div class='add'>+	"  distclean:             clean for repository" \</div><div class='add'>+	"  golf:                  build goruby for golfers" \</div><div class='add'>+	$(HELP_EXTRA_TASKS) \</div><div class='ctx'> 	"see DeveloperHowto for more detail: " \</div><div class='ctx'> 	"  https://bugs.ruby-lang.org/projects/ruby/wiki/DeveloperHowto" \</div><div class='ctx'> 	$(MESSAGE_END)</div><div class='ctx'> </div><div class='add'>+$(CROSS_COMPILING:yes=)builtin.$(OBJEXT): {$(VPATH)}mini_builtin.c</div><div class='add'>+$(CROSS_COMPILING:yes=)builtin.$(OBJEXT): {$(VPATH)}miniprelude.c</div><div class='add'>+</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> addr2line.$(OBJEXT): {$(VPATH)}addr2line.c</div><div class='ctx'> addr2line.$(OBJEXT): {$(VPATH)}addr2line.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> addr2line.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> addr2line.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+addr2line.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> addr2line.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> array.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-array.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/compar.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/enum.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/proc.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/rational.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+array.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}array.c</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}array.rbinc</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='del'>-array.$(OBJEXT): {$(VPATH)}gc.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-array.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}probes.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> array.$(OBJEXT): {$(VPATH)}transient_heap.h</div><div class='hunk'>@@ -1515,15 +2037,191 @@ ast.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> ast.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> ast.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> ast.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+ast.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> ast.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-ast.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/parse.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+ast.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}assert.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}ast.c</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}ast.rbinc</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}missing.h</div><div class='hunk'>@@ -1532,6 +2230,7 @@ ast.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+ast.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='hunk'>@@ -1540,39 +2239,565 @@ ast.$(OBJEXT): {$(VPATH)}util.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> ast.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> bignum.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-bignum.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/complex.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+bignum.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}bignum.c</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-bignum.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-bignum.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-bignum.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-bignum.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}thread.h</div><div class='ctx'> bignum.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+builtin.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+builtin.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+builtin.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+builtin.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+builtin.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+builtin.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+builtin.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+builtin.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+builtin.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+builtin.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+builtin.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+builtin.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+builtin.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+builtin.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+builtin.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}builtin.c</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}builtin_binary.inc</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}shape.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+builtin.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> class.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> class.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> class.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> class.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> class.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-class.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/eval.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+class.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}class.c</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}id.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-class.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}node.h</div><div class='hunk'>@@ -1580,20 +2805,191 @@ class.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-class.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> class.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> compar.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+compar.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+compar.$(OBJEXT): $(top_srcdir)/internal/compar.h</div><div class='add'>+compar.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+compar.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+compar.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+compar.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+compar.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+compar.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> compar.$(OBJEXT): {$(VPATH)}compar.c</div><div class='ctx'> compar.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> compar.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> compar.$(OBJEXT): {$(VPATH)}id.h</div><div class='ctx'> compar.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> compar.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> compar.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> compar.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> compile.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='hunk'>@@ -1601,9 +2997,48 @@ compile.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> compile.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> compile.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> compile.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-compile.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/compile.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/complex.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/encoding.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/rational.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/re.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+compile.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}compile.c</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='hunk'>@@ -1615,69 +3050,579 @@ compile.$(OBJEXT): {$(VPATH)}insns.inc</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}insns_info.inc</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-compile.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rmatch.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='del'>-compile.$(OBJEXT): {$(VPATH)}opt_sc.inc</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}optinsn.inc</div><div class='del'>-compile.$(OBJEXT): {$(VPATH)}optunifs.inc</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}re.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}regex.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}vm_callinfo.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> compile.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+complex.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+complex.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+complex.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+complex.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> complex.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-complex.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/complex.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/math.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/rational.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+complex.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> complex.$(OBJEXT): {$(VPATH)}complex.c</div><div class='ctx'> complex.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> complex.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-complex.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> complex.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> complex.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> complex.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-complex.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> complex.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-complex.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-complex.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> complex.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> complex.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> complex.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> cont.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> cont.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> cont.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> cont.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+cont.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> cont.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-cont.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/cont.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/proc.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+cont.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}$(COROUTINE_H)</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}cont.c</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}fiber/scheduler.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}gc.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-cont.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}mjit.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='hunk'>@@ -1685,113 +3630,1378 @@ cont.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> cont.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}yjit.h</div><div class='ctx'> debug.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> debug.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> debug.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> debug.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> debug.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-debug.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/signal.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+debug.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}debug.c</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}gc.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}io.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}vm_callinfo.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> debug.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> debug_counter.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-debug_counter.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> debug_counter.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> debug_counter.$(OBJEXT): {$(VPATH)}debug_counter.c</div><div class='ctx'> debug_counter.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> debug_counter.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-debug_counter.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> debug_counter.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> debug_counter.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-debug_counter.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> debug_counter.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-debug_counter.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-debug_counter.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> debug_counter.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> debug_counter.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+debug_counter.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> dir.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-dir.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/dir.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/encoding.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/file.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/io.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+dir.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}dir.c</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}dir.rbinc</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}io.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}thread.h</div><div class='ctx'> dir.$(OBJEXT): {$(VPATH)}util.h</div><div class='ctx'> dln.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-dln.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+dln.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+dln.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> dln.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> dln.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> dln.$(OBJEXT): {$(VPATH)}dln.c</div><div class='ctx'> dln.$(OBJEXT): {$(VPATH)}dln.h</div><div class='ctx'> dln.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> dln.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> dln.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> dln.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> dln.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> dln_find.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> dln_find.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> dln_find.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> dln_find.$(OBJEXT): {$(VPATH)}dln.h</div><div class='ctx'> dln_find.$(OBJEXT): {$(VPATH)}dln_find.c</div><div class='ctx'> dln_find.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> dln_find.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> dln_find.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> dln_find.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> dmydln.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> dmydln.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> dmydln.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> dmydln.$(OBJEXT): {$(VPATH)}dmydln.c</div><div class='ctx'> dmydln.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> dmydln.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> dmydln.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> dmydln.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> dmyenc.$(OBJEXT): {$(VPATH)}dmyenc.c</div><div class='ctx'> dmyext.$(OBJEXT): {$(VPATH)}dmyext.c</div><div class='add'>+enc/ascii.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> enc/ascii.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> enc/ascii.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> enc/ascii.$(OBJEXT): {$(VPATH)}enc/ascii.c</div><div class='ctx'> enc/ascii.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> enc/ascii.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> enc/ascii.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> enc/ascii.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+enc/ascii.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): {$(VPATH)}enc/trans/newline.c</div><div class='ctx'> enc/trans/newline.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): {$(VPATH)}subst.h</div><div class='hunk'>@@ -1799,95 +5009,1304 @@ enc/trans/newline.$(OBJEXT): {$(VPATH)}transcode_data.h</div><div class='ctx'> enc/unicode.$(OBJEXT): $(UNICODE_HDR_DIR)/casefold.h</div><div class='ctx'> enc/unicode.$(OBJEXT): $(UNICODE_HDR_DIR)/name2ctype.h</div><div class='ctx'> enc/unicode.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> enc/unicode.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> enc/unicode.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> enc/unicode.$(OBJEXT): {$(VPATH)}enc/unicode.c</div><div class='ctx'> enc/unicode.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+enc/unicode.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> enc/unicode.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> enc/unicode.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-enc/unicode.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> enc/unicode.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='ctx'> enc/unicode.$(OBJEXT): {$(VPATH)}regint.h</div><div class='ctx'> enc/unicode.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> enc/unicode.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): {$(VPATH)}enc/us_ascii.c</div><div class='ctx'> enc/us_ascii.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+enc/utf_8.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): {$(VPATH)}enc/utf_8.c</div><div class='ctx'> enc/utf_8.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+enc/utf_8.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+encoding.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> encoding.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-encoding.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/enc.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/encoding.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/inits.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/load.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+encoding.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}encoding.c</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-encoding.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> encoding.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='ctx'> enum.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-enum.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/compar.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/enum.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/proc.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/rational.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/re.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+enum.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}enum.c</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-enum.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='del'>-enum.$(OBJEXT): {$(VPATH)}transient_heap.h</div><div class='ctx'> enum.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+enumerator.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+enumerator.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+enumerator.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+enumerator.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> enumerator.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-enumerator.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/enumerator.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/range.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/rational.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/struct.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+enumerator.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}enumerator.c</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-enumerator.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> enumerator.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> error.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> error.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> error.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> error.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> error.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-error.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/eval.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/io.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/load.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+error.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}error.c</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}io.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}known_errors.inc</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}method.h</div><div class='hunk'>@@ -1897,30 +6316,215 @@ error.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-error.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> error.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}warning.rbinc</div><div class='ctx'> eval.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> eval.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> eval.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> eval.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+eval.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> eval.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-eval.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/cont.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/eval.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/inits.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/io.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+eval.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}eval.c</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}eval_error.c</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}eval_jump.c</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}fiber/scheduler.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}gc.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}io.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}method.h</div><div class='hunk'>@@ -1932,8 +6536,11 @@ eval.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}probes.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}probes_helper.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='hunk'>@@ -1944,22 +6551,214 @@ eval.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> eval.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> explicit_bzero.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> explicit_bzero.$(OBJEXT): {$(VPATH)}explicit_bzero.c</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+explicit_bzero.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='ctx'> explicit_bzero.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> file.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-file.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/dir.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/file.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/io.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/load.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/process.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+file.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}dln.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}file.c</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}io.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> file.$(OBJEXT): {$(VPATH)}thread.h</div><div class='hunk'>@@ -1968,8 +6767,49 @@ gc.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> gc.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> gc.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> gc.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+gc.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> gc.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-gc.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/complex.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/cont.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/eval.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/io.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/proc.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/rational.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/struct.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+gc.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}debug.h</div><div class='hunk'>@@ -1979,11 +6819,163 @@ gc.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}gc.c</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}gc.rbinc</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}id.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rmatch.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}mjit.h</div><div class='hunk'>@@ -1992,100 +6984,603 @@ gc.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}re.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}regex.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}regint.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}thread.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}transient_heap.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}vm_callinfo.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> gc.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='del'>-golf_prelude.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='del'>-golf_prelude.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='del'>-golf_prelude.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='del'>-golf_prelude.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='del'>-golf_prelude.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-golf_prelude.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}config.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}golf_prelude.c</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}golf_prelude.rb</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}id.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}intern.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}io.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}method.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}node.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}st.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}subst.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='del'>-golf_prelude.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='add'>+goruby.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+goruby.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+goruby.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+goruby.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+goruby.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> goruby.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-goruby.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+goruby.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+goruby.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+goruby.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+goruby.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+goruby.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+goruby.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+goruby.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+goruby.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+goruby.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+goruby.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='ctx'> goruby.$(OBJEXT): {$(VPATH)}backward.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> goruby.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> goruby.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}golf_prelude.c</div><div class='ctx'> goruby.$(OBJEXT): {$(VPATH)}goruby.c</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> goruby.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/nonstring.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> goruby.$(OBJEXT): {$(VPATH)}main.c</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> goruby.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> goruby.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> goruby.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> goruby.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> goruby.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+hash.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+hash.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+hash.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+hash.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> hash.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-hash.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/cont.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/proc.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/time.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+hash.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='del'>-hash.$(OBJEXT): {$(VPATH)}gc.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}hash.c</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-hash.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}transient_heap.h</div><div class='ctx'> hash.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='add'>+inits.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> inits.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-inits.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+inits.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+inits.$(OBJEXT): $(top_srcdir)/internal/inits.h</div><div class='add'>+inits.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> inits.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> inits.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-inits.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> inits.$(OBJEXT): {$(VPATH)}inits.c</div><div class='ctx'> inits.$(OBJEXT): {$(VPATH)}intern.h</div><div class='del'>-inits.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-inits.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> inits.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-inits.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-inits.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}prelude.rbinc</div><div class='ctx'> inits.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> inits.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> io.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='hunk'>@@ -2093,24 +7588,215 @@ io.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> io.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> io.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> io.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-io.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/encoding.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/inits.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/io.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/process.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/transcode.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+io.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}dln.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}fiber/scheduler.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}io.c</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}io.rbinc</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}io/buffer.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}thread.h</div><div class='hunk'>@@ -2119,13 +7805,234 @@ io.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}util.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> io.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+io_buffer.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+io_buffer.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}fiber/scheduler.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}io/buffer.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}io_buffer.c</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+io_buffer.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> iseq.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> iseq.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> iseq.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> iseq.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+iseq.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> iseq.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-iseq.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/compile.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/file.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/parse.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+iseq.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='hunk'>@@ -2137,7 +8044,155 @@ iseq.$(OBJEXT): {$(VPATH)}insns.inc</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}insns_info.inc</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-iseq.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}iseq.c</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}method.h</div><div class='hunk'>@@ -2147,31 +8202,213 @@ iseq.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}node_name.inc</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}vm_callinfo.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-iseq.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> iseq.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}yjit.h</div><div class='ctx'> load.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> load.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> load.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> load.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> load.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-load.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/dir.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/file.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/load.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/parse.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+load.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}darray.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}dln.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-load.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}load.c</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}missing.h</div><div class='hunk'>@@ -2182,246 +8419,2712 @@ load.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}probes.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}util.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-load.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> load.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> loadpath.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> loadpath.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='ctx'> loadpath.$(OBJEXT): $(top_srcdir)/version.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> loadpath.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> loadpath.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> loadpath.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+loadpath.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> loadpath.$(OBJEXT): {$(VPATH)}loadpath.c</div><div class='ctx'> loadpath.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> loadpath.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> loadpath.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> loadpath.$(OBJEXT): {$(VPATH)}verconf.h</div><div class='ctx'> localeinit.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-localeinit.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-localeinit.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+localeinit.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}localeinit.c</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> localeinit.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+main.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> main.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-main.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}assert.h</div><div class='ctx'> main.$(OBJEXT): {$(VPATH)}backward.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> main.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> main.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> main.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> main.$(OBJEXT): {$(VPATH)}main.c</div><div class='ctx'> main.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-main.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> main.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> main.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> main.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+marshal.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+marshal.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+marshal.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+marshal.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> marshal.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-marshal.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/encoding.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/struct.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/util.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+marshal.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}id.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/nonstring.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}io.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}marshal.c</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}marshal.rbinc</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> marshal.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> math.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-math.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/complex.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/math.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+math.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> math.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> math.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-math.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> math.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> math.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-math.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> math.$(OBJEXT): {$(VPATH)}math.c</div><div class='ctx'> math.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-math.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-math.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> math.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> math.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+memory_view.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+memory_view.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+memory_view.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+memory_view.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+memory_view.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+memory_view.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}memory_view.c</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}memory_view.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}shape.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+memory_view.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='add'>+miniinit.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+miniinit.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+miniinit.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+miniinit.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> miniinit.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+miniinit.$(OBJEXT): $(srcdir)/mjit_c.rb</div><div class='add'>+miniinit.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+miniinit.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+miniinit.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+miniinit.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+miniinit.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+miniinit.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+miniinit.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+miniinit.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+miniinit.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+miniinit.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}array.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}ast.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> miniinit.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> miniinit.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}dir.rb</div><div class='ctx'> miniinit.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}gc.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}gem_prelude.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> miniinit.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/nonstring.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}io.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}kernel.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}marshal.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}mini_builtin.c</div><div class='ctx'> miniinit.$(OBJEXT): {$(VPATH)}miniinit.c</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}miniprelude.c</div><div class='ctx'> miniinit.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}mjit.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}mjit_c.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}nilclass.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}numeric.rb</div><div class='ctx'> miniinit.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> miniinit.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}pack.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}prelude.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}ractor.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> miniinit.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> miniinit.$(OBJEXT): {$(VPATH)}subst.h</div><div class='del'>-miniprelude.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='del'>-miniprelude.$(OBJEXT): {$(VPATH)}miniprelude.c</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}symbol.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}thread_sync.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}timev.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}trace_point.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}warning.rb</div><div class='add'>+miniinit.$(OBJEXT): {$(VPATH)}yjit.rb</div><div class='ctx'> mjit.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> mjit.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> mjit.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> mjit.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+mjit.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> mjit.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-mjit.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+mjit.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/cmdlineopt.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/compile.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/cont.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/file.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/process.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+mjit.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}debug.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}dln.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}gc.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}id.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}insns.def</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}insns.inc</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}insns_info.inc</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}mjit.c</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}mjit.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}mjit.rbinc</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}mjit_c.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}mjit_config.h</div><div class='del'>-mjit.$(OBJEXT): {$(VPATH)}mjit_worker.c</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}thread.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}vm_callinfo.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> mjit.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='del'>-mjit_compile.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='del'>-mjit_compile.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='del'>-mjit_compile.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='del'>-mjit_compile.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='del'>-mjit_compile.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-mjit_compile.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}config.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}id.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}insns.def</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}insns.inc</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}insns_info.inc</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}intern.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}method.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}mjit.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}mjit_compile.c</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}mjit_compile.inc</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}node.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}st.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}subst.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}vm_exec.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}vm_insnhelper.h</div><div class='del'>-mjit_compile.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='add'>+mjit.$(OBJEXT): {$(VPATH)}yjit.h</div><div class='add'>+mjit_c.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+mjit_c.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+mjit_c.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+mjit_c.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+mjit_c.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+mjit_c.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+mjit_c.$(OBJEXT): $(srcdir)/mjit_c.rb</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/compile.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+mjit_c.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}insns.def</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}insns.inc</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}insns_info.inc</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}mjit.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}mjit_c.c</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}mjit_c.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}mjit_c.rb</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}mjit_c.rbinc</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}mjit_sp_inc.inc</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}shape.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}vm_callinfo.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}vm_exec.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}vm_insnhelper.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+mjit_c.$(OBJEXT): {$(VPATH)}yjit.h</div><div class='ctx'> node.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> node.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> node.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> node.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> node.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-node.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+node.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-node.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-node.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}node.c</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}node.h</div><div class='del'>-node.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-node.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-node.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> node.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> numeric.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-numeric.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/complex.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/enumerator.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/rational.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/util.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+numeric.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-numeric.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}numeric.c</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}numeric.rbinc</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> numeric.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+object.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+object.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+object.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+object.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> object.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-object.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/eval.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/inits.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/struct.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+object.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-object.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}kernel.rbinc</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}nilclass.rbinc</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}object.c</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> object.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}variable.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> pack.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-pack.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+pack.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+pack.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+pack.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+pack.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+pack.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+pack.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+pack.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+pack.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+pack.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> pack.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> pack.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> pack.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> pack.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> pack.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-pack.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> pack.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> pack.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> pack.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> pack.$(OBJEXT): {$(VPATH)}pack.c</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}pack.rbinc</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> pack.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> pack.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+parse.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> parse.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-parse.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/compile.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/complex.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/encoding.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/io.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/parse.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/rational.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/re.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+parse.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}defs/keywords</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}io.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}lex.c</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}missing.h</div><div class='hunk'>@@ -2433,58 +11136,208 @@ parse.$(OBJEXT): {$(VPATH)}parse.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}parse.y</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}regex.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='ctx'> parse.$(OBJEXT): {$(VPATH)}util.h</div><div class='del'>-prelude.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='del'>-prelude.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='del'>-prelude.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='del'>-prelude.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='del'>-prelude.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-prelude.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}config.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}gem_prelude.rb</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}id.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}intern.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}io.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}method.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}node.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}prelude.c</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}prelude.rb</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}st.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}subst.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='del'>-prelude.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> proc.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> proc.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> proc.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> proc.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> proc.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-proc.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/eval.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/proc.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+proc.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}gc.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-proc.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}missing.h</div><div class='hunk'>@@ -2494,36 +11347,228 @@ proc.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}proc.c</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-proc.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> proc.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}yjit.h</div><div class='ctx'> process.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> process.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> process.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> process.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+process.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> process.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-process.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/dir.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/eval.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/process.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/time.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+process.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}dln.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}fiber/scheduler.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}hrtime.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}io.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}mjit.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}process.c</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}thread.h</div><div class='hunk'>@@ -2531,65 +11576,973 @@ process.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}util.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-process.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> process.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+ractor.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+ractor.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+ractor.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+ractor.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+ractor.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+ractor.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/complex.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/rational.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/struct.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+ractor.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}mjit.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}ractor.c</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}ractor.rbinc</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}shape.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}thread.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}transient_heap.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}variable.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='add'>+ractor.$(OBJEXT): {$(VPATH)}yjit.h</div><div class='ctx'> random.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-random.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/random.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+random.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> random.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> random.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-random.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> random.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> random.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-random.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> random.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-random.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-random.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}mt19937.c</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='ctx'> random.$(OBJEXT): {$(VPATH)}random.c</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}random.h</div><div class='ctx'> random.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> random.$(OBJEXT): {$(VPATH)}siphash.c</div><div class='ctx'> random.$(OBJEXT): {$(VPATH)}siphash.h</div><div class='ctx'> random.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> random.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> range.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-range.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/compar.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/enum.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/enumerator.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/range.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/struct.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+range.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}id.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-range.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}range.c</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> range.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> rational.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-rational.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/complex.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/rational.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+rational.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> rational.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> rational.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-rational.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> rational.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> rational.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> rational.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-rational.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> rational.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-rational.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-rational.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> rational.$(OBJEXT): {$(VPATH)}rational.c</div><div class='ctx'> rational.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> rational.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> rational.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+re.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> re.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-re.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/encoding.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/ractor.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/re.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/time.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+re.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}hrtime.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-re.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rmatch.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='hunk'>@@ -2598,102 +12551,1198 @@ re.$(OBJEXT): {$(VPATH)}re.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}regex.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}regint.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> re.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+regcomp.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> regcomp.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> regcomp.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> regcomp.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> regcomp.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> regcomp.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> regcomp.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-regcomp.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> regcomp.$(OBJEXT): {$(VPATH)}regcomp.c</div><div class='ctx'> regcomp.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='ctx'> regcomp.$(OBJEXT): {$(VPATH)}regint.h</div><div class='ctx'> regcomp.$(OBJEXT): {$(VPATH)}regparse.h</div><div class='ctx'> regcomp.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> regcomp.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+regenc.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> regenc.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> regenc.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> regenc.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> regenc.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> regenc.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> regenc.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-regenc.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> regenc.$(OBJEXT): {$(VPATH)}regenc.c</div><div class='ctx'> regenc.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='ctx'> regenc.$(OBJEXT): {$(VPATH)}regint.h</div><div class='ctx'> regenc.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> regenc.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+regerror.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> regerror.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> regerror.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> regerror.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> regerror.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> regerror.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> regerror.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-regerror.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> regerror.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='ctx'> regerror.$(OBJEXT): {$(VPATH)}regerror.c</div><div class='ctx'> regerror.$(OBJEXT): {$(VPATH)}regint.h</div><div class='ctx'> regerror.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> regerror.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+regexec.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> regexec.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> regexec.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> regexec.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> regexec.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> regexec.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> regexec.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-regexec.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> regexec.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='ctx'> regexec.$(OBJEXT): {$(VPATH)}regexec.c</div><div class='ctx'> regexec.$(OBJEXT): {$(VPATH)}regint.h</div><div class='ctx'> regexec.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> regexec.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+regparse.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> regparse.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regparse.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+regparse.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+regparse.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> regparse.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> regparse.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> regparse.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> regparse.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> regparse.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-regparse.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> regparse.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='ctx'> regparse.$(OBJEXT): {$(VPATH)}regint.h</div><div class='ctx'> regparse.$(OBJEXT): {$(VPATH)}regparse.c</div><div class='ctx'> regparse.$(OBJEXT): {$(VPATH)}regparse.h</div><div class='ctx'> regparse.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> regparse.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+regsyntax.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> regsyntax.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> regsyntax.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> regsyntax.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> regsyntax.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> regsyntax.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> regsyntax.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-regsyntax.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> regsyntax.$(OBJEXT): {$(VPATH)}regenc.h</div><div class='ctx'> regsyntax.$(OBJEXT): {$(VPATH)}regint.h</div><div class='ctx'> regsyntax.$(OBJEXT): {$(VPATH)}regsyntax.c</div><div class='ctx'> regsyntax.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> regsyntax.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> ruby-runner.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+ruby-runner.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+ruby-runner.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='ctx'> ruby-runner.$(OBJEXT): {$(VPATH)}ruby-runner.c</div><div class='ctx'> ruby-runner.$(OBJEXT): {$(VPATH)}ruby-runner.h</div><div class='ctx'> ruby.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> ruby.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> ruby.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> ruby.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+ruby.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> ruby.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ruby.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='del'>-ruby.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/cmdlineopt.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/cont.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/file.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/inits.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/io.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/load.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/loadpath.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/missing.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/parse.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/process.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+ruby.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}dln.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}mjit.h</div><div class='hunk'>@@ -2703,6 +13752,7 @@ ruby.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}ruby.c</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}thread.h</div><div class='hunk'>@@ -2710,68 +13760,776 @@ ruby.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}util.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-ruby.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> ruby.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='del'>-safe.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='del'>-safe.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='del'>-safe.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='del'>-safe.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='del'>-safe.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-safe.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}config.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}id.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}intern.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}io.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}method.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}node.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}safe.c</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}st.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}subst.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='del'>-safe.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}yjit.h</div><div class='add'>+scheduler.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+scheduler.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+scheduler.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+scheduler.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+scheduler.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+scheduler.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+scheduler.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+scheduler.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+scheduler.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+scheduler.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+scheduler.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+scheduler.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+scheduler.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+scheduler.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+scheduler.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+scheduler.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}fiber/scheduler.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}io/buffer.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}scheduler.c</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}shape.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+scheduler.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+setproctitle.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> setproctitle.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-setproctitle.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> setproctitle.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> setproctitle.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> setproctitle.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+setproctitle.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> setproctitle.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> setproctitle.$(OBJEXT): {$(VPATH)}setproctitle.c</div><div class='ctx'> setproctitle.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> setproctitle.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> setproctitle.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+shape.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+shape.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+shape.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+shape.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+shape.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+shape.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}shape.c</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}shape.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}variable.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+shape.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='ctx'> signal.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> signal.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> signal.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> signal.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> signal.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-signal.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/eval.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/signal.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+signal.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-signal.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/nonstring.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}signal.c</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}subst.h</div><div class='hunk'>@@ -2781,49 +14539,540 @@ signal.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> signal.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> sprintf.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-sprintf.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+sprintf.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-sprintf.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rmatch.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}re.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}regex.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}sprintf.c</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}util.h</div><div class='ctx'> sprintf.$(OBJEXT): {$(VPATH)}vsnprintf.c</div><div class='del'>-st.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='del'>-st.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='del'>-st.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='del'>-st.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> st.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-st.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+st.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+st.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+st.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+st.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+st.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+st.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> st.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> st.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-st.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> st.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> st.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-st.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> st.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-st.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-st.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> st.$(OBJEXT): {$(VPATH)}st.c</div><div class='ctx'> st.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> st.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> strftime.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-strftime.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+strftime.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+strftime.$(OBJEXT): $(top_srcdir)/internal/encoding.h</div><div class='add'>+strftime.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+strftime.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+strftime.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+strftime.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> strftime.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> strftime.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> strftime.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> strftime.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> strftime.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-strftime.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> strftime.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> strftime.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> strftime.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='hunk'>@@ -2831,19 +15080,204 @@ strftime.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> strftime.$(OBJEXT): {$(VPATH)}strftime.c</div><div class='ctx'> strftime.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> strftime.$(OBJEXT): {$(VPATH)}timev.h</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}util.h</div><div class='ctx'> string.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-string.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/compar.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/encoding.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/proc.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/re.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/transcode.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+string.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}config.h</div><div class='del'>-string.$(OBJEXT): {$(VPATH)}crypt.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}encindex.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}gc.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-string.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/nonstring.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rmatch.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='hunk'>@@ -2852,14 +15286,42 @@ string.$(OBJEXT): {$(VPATH)}probes.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}re.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}regex.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}string.c</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> string.$(OBJEXT): {$(VPATH)}util.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='ctx'> strlcat.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+strlcat.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='ctx'> strlcat.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> strlcat.$(OBJEXT): {$(VPATH)}strlcat.c</div><div class='ctx'> strlcpy.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+strlcpy.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='ctx'> strlcpy.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> strlcpy.$(OBJEXT): {$(VPATH)}strlcpy.c</div><div class='ctx'> struct.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='hunk'>@@ -2867,14 +15329,193 @@ struct.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> struct.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> struct.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> struct.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-struct.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/proc.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/struct.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+struct.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-struct.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}node.h</div><div class='hunk'>@@ -2882,6 +15523,7 @@ struct.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}struct.c</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}subst.h</div><div class='hunk'>@@ -2889,11 +15531,35 @@ struct.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}transient_heap.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-struct.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> struct.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> symbol.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-symbol.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+symbol.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}gc.h</div><div class='hunk'>@@ -2903,33 +15569,374 @@ symbol.$(OBJEXT): {$(VPATH)}id_table.c</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-symbol.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/nonstring.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}probes.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}symbol.c</div><div class='ctx'> symbol.$(OBJEXT): {$(VPATH)}symbol.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}symbol.rb</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}symbol.rbinc</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+symbol.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='ctx'> thread.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> thread.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> thread.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> thread.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+thread.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> thread.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-thread.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/cont.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/io.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/proc.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/signal.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/time.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+thread.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}debug.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}fiber/scheduler.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}gc.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}hrtime.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}io.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}method.h</div><div class='hunk'>@@ -2938,8 +15945,11 @@ thread.$(OBJEXT): {$(VPATH)}mjit.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}thread.c</div><div class='hunk'>@@ -2948,69 +15958,738 @@ thread.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).c</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}thread_sync.c</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}thread_sync.rbinc</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}timev.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> thread.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='ctx'> time.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-time.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/compar.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/rational.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/time.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+time.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-time.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}time.c</div><div class='ctx'> time.$(OBJEXT): {$(VPATH)}timev.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}timev.rbinc</div><div class='ctx'> transcode.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-transcode.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/inits.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/transcode.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+transcode.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-transcode.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}transcode.c</div><div class='ctx'> transcode.$(OBJEXT): {$(VPATH)}transcode_data.h</div><div class='ctx'> transient_heap.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-transient_heap.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+transient_heap.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+transient_heap.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+transient_heap.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+transient_heap.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+transient_heap.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+transient_heap.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+transient_heap.$(OBJEXT): $(top_srcdir)/internal/struct.h</div><div class='add'>+transient_heap.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+transient_heap.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}debug.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-transient_heap.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}transient_heap.c</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}transient_heap.h</div><div class='ctx'> transient_heap.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+transient_heap.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='ctx'> util.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-util.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+util.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+util.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+util.$(OBJEXT): $(top_srcdir)/internal/util.h</div><div class='add'>+util.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> util.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> util.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-util.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}dtoa.c</div><div class='ctx'> util.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> util.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-util.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> util.$(OBJEXT): {$(VPATH)}missing.h</div><div class='del'>-util.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-util.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='ctx'> util.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> util.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> util.$(OBJEXT): {$(VPATH)}util.c</div><div class='hunk'>@@ -3020,7 +16699,36 @@ variable.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> variable.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> variable.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> variable.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-variable.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/eval.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/re.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+variable.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='hunk'>@@ -3030,14 +16738,165 @@ variable.$(OBJEXT): {$(VPATH)}id.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-variable.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='hunk'>@@ -3045,28 +16904,197 @@ variable.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}transient_heap.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}util.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}variable.c</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}variable.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> variable.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='ctx'> version.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> version.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> version.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> version.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+version.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> version.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> version.$(OBJEXT): $(hdrdir)/ruby/version.h</div><div class='del'>-version.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='del'>-version.$(OBJEXT): $(top_srcdir)/revision.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/internal/cmdlineopt.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+version.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='ctx'> version.$(OBJEXT): $(top_srcdir)/version.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}mjit.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}revision.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='hunk'>@@ -3074,12 +17102,57 @@ version.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}version.c</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> version.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}yjit.h</div><div class='ctx'> vm.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> vm.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> vm.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> vm.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+vm.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> vm.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-vm.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/bignum.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/bits.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/compar.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/compile.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/cont.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/eval.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/inits.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/numeric.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/object.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/parse.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/proc.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/random.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/re.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/struct.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/thread.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+vm.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}config.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='hunk'>@@ -3095,7 +17168,155 @@ vm.$(OBJEXT): {$(VPATH)}insns.inc</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}insns_info.inc</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-vm.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}missing.h</div><div class='hunk'>@@ -3106,17 +17327,22 @@ vm.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}probes.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}probes_helper.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}variable.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vm.c</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vm.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vm.inc</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vm_args.c</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vm_call_iseq_optimized.inc</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_callinfo.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vm_eval.c</div><div class='hunk'>@@ -3126,22 +17352,196 @@ vm.$(OBJEXT): {$(VPATH)}vm_insnhelper.c</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vm_insnhelper.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vm_method.c</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='ctx'> vm.$(OBJEXT): {$(VPATH)}vmtc.inc</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}yjit.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-vm_backtrace.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/error.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+vm_backtrace.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}debug.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-vm_backtrace.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}missing.h</div><div class='hunk'>@@ -3150,36 +17550,199 @@ vm_backtrace.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+vm_backtrace.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}vm_backtrace.c</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-vm_backtrace.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> vm_backtrace.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> vm_dump.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> vm_dump.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> vm_dump.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> vm_dump.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='ctx'> vm_dump.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-vm_dump.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+vm_dump.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+vm_dump.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+vm_dump.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+vm_dump.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+vm_dump.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+vm_dump.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+vm_dump.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+vm_dump.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+vm_dump.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+vm_dump.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}addr2line.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}defines.h</div><div class='del'>-vm_dump.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}gc.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-vm_dump.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}missing.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}node.h</div><div class='del'>-vm_dump.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='del'>-vm_dump.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}procstat_vm.c</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='hunk'>@@ -3188,21 +17751,388 @@ vm_dump.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}vm_dump.c</div><div class='ctx'> vm_dump.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+vm_sync.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+vm_sync.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+vm_sync.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+vm_sync.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+vm_sync.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+vm_sync.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+vm_sync.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+vm_sync.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+vm_sync.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+vm_sync.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+vm_sync.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+vm_sync.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+vm_sync.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+vm_sync.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+vm_sync.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}ractor_core.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}shape.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}vm_sync.c</div><div class='add'>+vm_sync.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='ctx'> vm_trace.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='ctx'> vm_trace.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='ctx'> vm_trace.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='ctx'> vm_trace.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+vm_trace.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> vm_trace.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-vm_trace.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/symbol.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+vm_trace.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}constant.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}debug.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}defines.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}eval_intern.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}intern.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}internal.h</div><div class='del'>-vm_trace.$(OBJEXT): {$(VPATH)}io.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}method.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}missing.h</div><div class='hunk'>@@ -3210,14 +18140,239 @@ vm_trace.$(OBJEXT): {$(VPATH)}mjit.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}node.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}ractor.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}shape.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}st.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}subst.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}trace_point.rbinc</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='del'>-vm_trace.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='ctx'> vm_trace.$(OBJEXT): {$(VPATH)}vm_trace.c</div><div class='add'>+vm_trace.$(OBJEXT): {$(VPATH)}yjit.h</div><div class='add'>+yjit.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h</div><div class='add'>+yjit.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h</div><div class='add'>+yjit.$(OBJEXT): $(CCAN_DIR)/list/list.h</div><div class='add'>+yjit.$(OBJEXT): $(CCAN_DIR)/str/str.h</div><div class='add'>+yjit.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/array.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/class.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/compile.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/compilers.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/cont.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/fixnum.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/gc.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/hash.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/imemo.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/serial.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/static_assert.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/string.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/variable.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/vm.h</div><div class='add'>+yjit.$(OBJEXT): $(top_srcdir)/internal/warnings.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}assert.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}atomic.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}backward/2/assume.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}backward/2/attributes.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}backward/2/bool.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}backward/2/limits.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}backward/2/long_long.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}builtin.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}config.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}constant.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}debug.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}debug_counter.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}defines.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}encoding.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}gc.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}id.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}id_table.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}insns.def</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}insns.inc</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}insns_info.inc</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}intern.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/abi.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/anyargs.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/assume.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/cold.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/const.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/error.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/format.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/pure.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/warning.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/cast.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/compiler_is.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/compiler_since.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/config.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/constant_p.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/rarray.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/rclass.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/rdata.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/rfile.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/rhash.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/robject.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/rstring.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/ctype.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/dllexport.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/dosish.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/encoding/re.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/encoding/string.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/error.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/eval.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/event.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/fl_type.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/gc.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/glob.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/globals.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/has/attribute.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/has/builtin.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/has/extension.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/has/feature.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/has/warning.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/array.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/class.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/compar.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/complex.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/cont.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/dir.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/enum.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/error.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/eval.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/file.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/gc.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/hash.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/io.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/load.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/object.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/parse.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/proc.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/process.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/random.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/range.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/rational.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/re.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/select.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/signal.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/string.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/struct.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/thread.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/time.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/variable.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/intern/vm.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/interpreter.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/iterator.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/memory.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/method.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/module.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/newobj.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/rgengc.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/scan_args.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/special_consts.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/static_assert.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/stdalign.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/stdbool.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/symbol.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/value.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/value_type.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/variable.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/warning_push.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}internal/xmalloc.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}iseq.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}method.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}missing.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}node.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}onigmo.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}oniguruma.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}probes.dmyh</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}probes.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}probes_helper.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}ruby_assert.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}ruby_atomic.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}shape.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}st.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}subst.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}thread_native.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}vm_callinfo.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}vm_core.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}vm_debug.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}vm_insnhelper.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}vm_opts.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}vm_sync.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}yjit.c</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}yjit.h</div><div class='add'>+yjit.$(OBJEXT): {$(VPATH)}yjit.rbinc</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/compar.c b/compar.c<br/>index 02529c9960..040f77975e 100644<br/>--- a/<a href='/ruby.git/tree/compar.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>compar.c</a><br/>+++ b/<a href='/ruby.git/tree/compar.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>compar.c</a></div><div class='hunk'>@@ -9,8 +9,12 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby/ruby.h"</div><div class='ctx'> #include "id.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/compar.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/vm.h"</div><div class='add'>+#include "ruby/ruby.h"</div><div class='ctx'> </div><div class='ctx'> VALUE rb_mComparable;</div><div class='ctx'> </div><div class='hunk'>@@ -26,13 +30,13 @@ rb_cmperr(VALUE x, VALUE y)</div><div class='ctx'>     VALUE classname;</div><div class='ctx'> </div><div class='ctx'>     if (SPECIAL_CONST_P(y) || BUILTIN_TYPE(y) == T_FLOAT) {</div><div class='del'>-	classname = rb_inspect(y);</div><div class='add'>+        classname = rb_inspect(y);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	classname = rb_obj_class(y);</div><div class='add'>+        classname = rb_obj_class(y);</div><div class='ctx'>     }</div><div class='ctx'>     rb_raise(rb_eArgError, "comparison of %"PRIsVALUE" with %"PRIsVALUE" failed",</div><div class='del'>-	     rb_obj_class(x), classname);</div><div class='add'>+             rb_obj_class(x), classname);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -46,12 +50,12 @@ VALUE</div><div class='ctx'> rb_invcmp(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     VALUE invcmp = rb_exec_recursive(invcmp_recursive, x, y);</div><div class='del'>-    if (invcmp == Qundef || NIL_P(invcmp)) {</div><div class='del'>-	return Qnil;</div><div class='add'>+    if (NIL_OR_UNDEF_P(invcmp)) {</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	int result = -rb_cmpint(invcmp, x, y);</div><div class='del'>-	return INT2FIX(result);</div><div class='add'>+        int result = -rb_cmpint(invcmp, x, y);</div><div class='add'>+        return INT2FIX(result);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -80,8 +84,7 @@ cmp_equal(VALUE x, VALUE y)</div><div class='ctx'>     c = rb_exec_recursive_paired_outer(cmp_eq_recursive, x, y, y);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(c)) return Qfalse;</div><div class='del'>-    if (rb_cmpint(c, x, y) == 0) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(rb_cmpint(c, x, y) == 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -95,14 +98,13 @@ cmpint(VALUE x, VALUE y)</div><div class='ctx'>  *     obj &gt; other    -&gt; true or false</div><div class='ctx'>  *</div><div class='ctx'>  *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='del'>- *  method, returning true if it returns 1.</div><div class='add'>+ *  method, returning true if it returns a value greater than 0.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> cmp_gt(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    if (cmpint(x, y) &gt; 0) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(cmpint(x, y) &gt; 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -110,14 +112,13 @@ cmp_gt(VALUE x, VALUE y)</div><div class='ctx'>  *     obj &gt;= other    -&gt; true or false</div><div class='ctx'>  *</div><div class='ctx'>  *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='del'>- *  method, returning true if it returns 0 or 1.</div><div class='add'>+ *  method, returning true if it returns a value greater than or equal to 0.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> cmp_ge(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    if (cmpint(x, y) &gt;= 0) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(cmpint(x, y) &gt;= 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -125,14 +126,13 @@ cmp_ge(VALUE x, VALUE y)</div><div class='ctx'>  *     obj &lt; other    -&gt; true or false</div><div class='ctx'>  *</div><div class='ctx'>  *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='del'>- *  method, returning true if it returns -1.</div><div class='add'>+ *  method, returning true if it returns a value less than 0.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> cmp_lt(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    if (cmpint(x, y) &lt; 0) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(cmpint(x, y) &lt; 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -140,23 +140,22 @@ cmp_lt(VALUE x, VALUE y)</div><div class='ctx'>  *     obj &lt;= other    -&gt; true or false</div><div class='ctx'>  *</div><div class='ctx'>  *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='del'>- *  method, returning true if it returns -1 or 0.</div><div class='add'>+ *  method, returning true if it returns a value less than or equal to 0.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> cmp_le(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    if (cmpint(x, y) &lt;= 0) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(cmpint(x, y) &lt;= 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     obj.between?(min, max)    -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Returns &lt;code&gt;false&lt;/code&gt; if &lt;i&gt;obj&lt;/i&gt; &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='del'>- *  &lt;i&gt;min&lt;/i&gt; is less than zero or if &lt;i&gt;anObject&lt;/i&gt; &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='del'>- *  &lt;i&gt;max&lt;/i&gt; is greater than zero, &lt;code&gt;true&lt;/code&gt; otherwise.</div><div class='add'>+ *  Returns &lt;code&gt;false&lt;/code&gt; if _obj_ &lt;code&gt;&lt;=&gt;&lt;/code&gt; _min_ is less</div><div class='add'>+ *  than zero or if _obj_ &lt;code&gt;&lt;=&gt;&lt;/code&gt; _max_ is greater than zero,</div><div class='add'>+ *  &lt;code&gt;true&lt;/code&gt; otherwise.</div><div class='ctx'>  *</div><div class='ctx'>  *     3.between?(1, 5)               #=&gt; true</div><div class='ctx'>  *     6.between?(1, 5)               #=&gt; false</div><div class='hunk'>@@ -168,18 +167,18 @@ cmp_le(VALUE x, VALUE y)</div><div class='ctx'> static VALUE</div><div class='ctx'> cmp_between(VALUE x, VALUE min, VALUE max)</div><div class='ctx'> {</div><div class='del'>-    if (cmpint(x, min) &lt; 0) return Qfalse;</div><div class='del'>-    if (cmpint(x, max) &gt; 0) return Qfalse;</div><div class='del'>-    return Qtrue;</div><div class='add'>+    return RBOOL((cmpint(x, min) &gt;= 0 &amp;&amp; cmpint(x, max) &lt;= 0));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     obj.clamp(min, max) -&gt;  obj</div><div class='add'>+ *     obj.clamp(range)    -&gt;  obj</div><div class='ctx'>  *</div><div class='del'>- * Returns &lt;i&gt;min&lt;/i&gt; if &lt;i&gt;obj&lt;/i&gt; &lt;code&gt;&lt;=&gt;&lt;/code&gt; &lt;i&gt;min&lt;/i&gt; is less</div><div class='del'>- * than zero, &lt;i&gt;max&lt;/i&gt; if &lt;i&gt;obj&lt;/i&gt; &lt;code&gt;&lt;=&gt;&lt;/code&gt; &lt;i&gt;max&lt;/i&gt; is</div><div class='del'>- * greater than zero and &lt;i&gt;obj&lt;/i&gt; otherwise.</div><div class='add'>+ * In &lt;code&gt;(min, max)&lt;/code&gt; form, returns _min_ if _obj_</div><div class='add'>+ * &lt;code&gt;&lt;=&gt;&lt;/code&gt; _min_ is less than zero, _max_ if _obj_</div><div class='add'>+ * &lt;code&gt;&lt;=&gt;&lt;/code&gt; _max_ is greater than zero, and _obj_</div><div class='add'>+ * otherwise.</div><div class='ctx'>  *</div><div class='ctx'>  *     12.clamp(0, 100)         #=&gt; 12</div><div class='ctx'>  *     523.clamp(0, 100)        #=&gt; 100</div><div class='hunk'>@@ -187,36 +186,76 @@ cmp_between(VALUE x, VALUE min, VALUE max)</div><div class='ctx'>  *</div><div class='ctx'>  *     'd'.clamp('a', 'f')      #=&gt; 'd'</div><div class='ctx'>  *     'z'.clamp('a', 'f')      #=&gt; 'f'</div><div class='add'>+ *</div><div class='add'>+ * In &lt;code&gt;(range)&lt;/code&gt; form, returns _range.begin_ if _obj_</div><div class='add'>+ * &lt;code&gt;&lt;=&gt;&lt;/code&gt; _range.begin_ is less than zero, _range.end_</div><div class='add'>+ * if _obj_ &lt;code&gt;&lt;=&gt;&lt;/code&gt; _range.end_ is greater than zero, and</div><div class='add'>+ * _obj_ otherwise.</div><div class='add'>+ *</div><div class='add'>+ *     12.clamp(0..100)         #=&gt; 12</div><div class='add'>+ *     523.clamp(0..100)        #=&gt; 100</div><div class='add'>+ *     -3.123.clamp(0..100)     #=&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *     'd'.clamp('a'..'f')      #=&gt; 'd'</div><div class='add'>+ *     'z'.clamp('a'..'f')      #=&gt; 'f'</div><div class='add'>+ *</div><div class='add'>+ * If _range.begin_ is +nil+, it is considered smaller than _obj_,</div><div class='add'>+ * and if _range.end_ is +nil+, it is considered greater than</div><div class='add'>+ * _obj_.</div><div class='add'>+ *</div><div class='add'>+ *     -20.clamp(0..)           #=&gt; 0</div><div class='add'>+ *     523.clamp(..100)         #=&gt; 100</div><div class='add'>+ *</div><div class='add'>+ * When _range.end_ is excluded and not +nil+, an exception is</div><div class='add'>+ * raised.</div><div class='add'>+ *</div><div class='add'>+ *     100.clamp(0...100)       # ArgumentError</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-cmp_clamp(VALUE x, VALUE min, VALUE max)</div><div class='add'>+cmp_clamp(int argc, VALUE *argv, VALUE x)</div><div class='ctx'> {</div><div class='del'>-    int c;</div><div class='del'>-</div><div class='del'>-    if (cmpint(min, max) &gt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "min argument must be smaller than max argument");</div><div class='add'>+    VALUE min, max;</div><div class='add'>+    int c, excl = 0;</div><div class='add'>+</div><div class='add'>+    if (rb_scan_args(argc, argv, "11", &amp;min, &amp;max) == 1) {</div><div class='add'>+        VALUE range = min;</div><div class='add'>+        if (!rb_range_values(range, &amp;min, &amp;max, &amp;excl)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "wrong argument type %s (expected Range)",</div><div class='add'>+                     rb_builtin_class_name(range));</div><div class='add'>+        }</div><div class='add'>+        if (!NIL_P(max)) {</div><div class='add'>+            if (excl) rb_raise(rb_eArgError, "cannot clamp with an exclusive range");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (!NIL_P(min) &amp;&amp; !NIL_P(max) &amp;&amp; cmpint(min, max) &gt; 0) {</div><div class='add'>+        rb_raise(rb_eArgError, "min argument must be smaller than max argument");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    c = cmpint(x, min);</div><div class='del'>-    if (c == 0) return x;</div><div class='del'>-    if (c &lt; 0) return min;</div><div class='del'>-    c = cmpint(x, max);</div><div class='del'>-    if (c &gt; 0) return max;</div><div class='add'>+    if (!NIL_P(min)) {</div><div class='add'>+        c = cmpint(x, min);</div><div class='add'>+        if (c == 0) return x;</div><div class='add'>+        if (c &lt; 0) return min;</div><div class='add'>+    }</div><div class='add'>+    if (!NIL_P(max)) {</div><div class='add'>+        c = cmpint(x, max);</div><div class='add'>+        if (c &gt; 0) return max;</div><div class='add'>+    }</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  The &lt;code&gt;Comparable&lt;/code&gt; mixin is used by classes whose objects</div><div class='del'>- *  may be ordered. The class must define the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator,</div><div class='del'>- *  which compares the receiver against another object, returning -1, 0,</div><div class='del'>- *  or +1 depending on whether the receiver is less than, equal to, or</div><div class='del'>- *  greater than the other object. If the other object is not comparable</div><div class='del'>- *  then the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator should return nil.</div><div class='del'>- *  &lt;code&gt;Comparable&lt;/code&gt; uses</div><div class='del'>- *  &lt;code&gt;&lt;=&gt;&lt;/code&gt; to implement the conventional comparison operators</div><div class='del'>- *  (&lt;code&gt;&lt;&lt;/code&gt;, &lt;code&gt;&lt;=&lt;/code&gt;, &lt;code&gt;==&lt;/code&gt;, &lt;code&gt;&gt;=&lt;/code&gt;,</div><div class='del'>- *  and &lt;code&gt;&gt;&lt;/code&gt;) and the method &lt;code&gt;between?&lt;/code&gt;.</div><div class='add'>+ *  The Comparable mixin is used by classes whose objects may be</div><div class='add'>+ *  ordered. The class must define the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator,</div><div class='add'>+ *  which compares the receiver against another object, returning a</div><div class='add'>+ *  value less than 0, returning 0, or returning a value greater than 0,</div><div class='add'>+ *  depending on whether the receiver is less than, equal to,</div><div class='add'>+ *  or greater than the other object. If the other object is not</div><div class='add'>+ *  comparable then the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator should return +nil+.</div><div class='add'>+ *  Comparable uses &lt;code&gt;&lt;=&gt;&lt;/code&gt; to implement the conventional</div><div class='add'>+ *  comparison operators (&lt;code&gt;&lt;&lt;/code&gt;, &lt;code&gt;&lt;=&lt;/code&gt;,</div><div class='add'>+ *  &lt;code&gt;==&lt;/code&gt;, &lt;code&gt;&gt;=&lt;/code&gt;, and &lt;code&gt;&gt;&lt;/code&gt;) and the</div><div class='add'>+ *  method &lt;code&gt;between?&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='ctx'>  *     class SizeMatters</div><div class='ctx'>  *       include Comparable</div><div class='hunk'>@@ -243,14 +282,27 @@ cmp_clamp(VALUE x, VALUE min, VALUE max)</div><div class='ctx'>  *     s4.between?(s3, s5)           #=&gt; true</div><div class='ctx'>  *     [ s3, s2, s5, s4, s1 ].sort   #=&gt; [Z, YY, XXX, WWWW, VVVVV]</div><div class='ctx'>  *</div><div class='add'>+ *  == What's Here</div><div class='add'>+ *</div><div class='add'>+ *  \Module \Comparable provides these methods, all of which use method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *  - #&lt;: Returns whether +self+ is less than the given object.</div><div class='add'>+ *  - #&lt;=: Returns whether +self+ is less than or equal to the given object.</div><div class='add'>+ *  - #==: Returns whether +self+ is equal to the given object.</div><div class='add'>+ *  - #&gt;: Returns whether +self+ is greater than or equal to the given object.</div><div class='add'>+ *  - #&gt;=: Returns whether +self+ is greater than the given object.</div><div class='add'>+ *  - #between?: Returns +true+ if +self+ is between two given objects.</div><div class='add'>+ *  - #clamp: For given objects +min+ and +max+, or range &lt;tt&gt;(min..max)&lt;/tt&gt;, returns:</div><div class='add'>+ *</div><div class='add'>+ *    - +min+ if &lt;tt&gt;(self &lt;=&gt; min) &lt; 0&lt;/tt&gt;.</div><div class='add'>+ *    - +max+ if &lt;tt&gt;(self &lt;=&gt; max) &gt; 0&lt;/tt&gt;.</div><div class='add'>+ *    - +self+ otherwise.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_Comparable(void)</div><div class='ctx'> {</div><div class='del'>-#undef rb_intern</div><div class='del'>-#define rb_intern(str) rb_intern_const(str)</div><div class='del'>-</div><div class='ctx'>     rb_mComparable = rb_define_module("Comparable");</div><div class='ctx'>     rb_define_method(rb_mComparable, "==", cmp_equal, 1);</div><div class='ctx'>     rb_define_method(rb_mComparable, "&gt;", cmp_gt, 1);</div><div class='hunk'>@@ -258,5 +310,5 @@ Init_Comparable(void)</div><div class='ctx'>     rb_define_method(rb_mComparable, "&lt;", cmp_lt, 1);</div><div class='ctx'>     rb_define_method(rb_mComparable, "&lt;=", cmp_le, 1);</div><div class='ctx'>     rb_define_method(rb_mComparable, "between?", cmp_between, 2);</div><div class='del'>-    rb_define_method(rb_mComparable, "clamp", cmp_clamp, 2);</div><div class='add'>+    rb_define_method(rb_mComparable, "clamp", cmp_clamp, -1);</div><div class='ctx'> }</div><div class='head'>diff --git a/compile.c b/compile.c<br/>index 0bca488614..0452305923 100644<br/>--- a/<a href='/ruby.git/tree/compile.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>compile.c</a><br/>+++ b/<a href='/ruby.git/tree/compile.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>compile.c</a></div><div class='hunk'>@@ -9,24 +9,40 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby/encoding.h"</div><div class='del'>-#include "ruby/re.h"</div><div class='del'>-#include "ruby/util.h"</div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "encindex.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> #include &lt;math.h&gt;</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_DLADDR</div><div class='add'>+# include &lt;dlfcn.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "encindex.h"</div><div class='add'>+#include "gc.h"</div><div class='add'>+#include "id_table.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/array.h"</div><div class='add'>+#include "internal/compile.h"</div><div class='add'>+#include "internal/complex.h"</div><div class='add'>+#include "internal/encoding.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/numeric.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/rational.h"</div><div class='add'>+#include "internal/re.h"</div><div class='add'>+#include "internal/symbol.h"</div><div class='add'>+#include "internal/thread.h"</div><div class='add'>+#include "internal/variable.h"</div><div class='add'>+#include "iseq.h"</div><div class='add'>+#include "ruby/re.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='ctx'> #include "vm_core.h"</div><div class='add'>+#include "vm_callinfo.h"</div><div class='ctx'> #include "vm_debug.h"</div><div class='del'>-#include "iseq.h"</div><div class='add'>+</div><div class='add'>+#include "builtin.h"</div><div class='ctx'> #include "insns.inc"</div><div class='ctx'> #include "insns_info.inc"</div><div class='del'>-#include "id_table.h"</div><div class='del'>-#include "gc.h"</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_DLADDR</div><div class='del'>-# include &lt;dlfcn.h&gt;</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> #undef RUBY_UNTYPED_DATA_WARNING</div><div class='ctx'> #define RUBY_UNTYPED_DATA_WARNING 0</div><div class='hunk'>@@ -36,11 +52,11 @@</div><div class='ctx'> </div><div class='ctx'> typedef struct iseq_link_element {</div><div class='ctx'>     enum {</div><div class='del'>-	ISEQ_ELEMENT_ANCHOR,</div><div class='del'>-	ISEQ_ELEMENT_LABEL,</div><div class='del'>-	ISEQ_ELEMENT_INSN,</div><div class='del'>-	ISEQ_ELEMENT_ADJUST,</div><div class='del'>-	ISEQ_ELEMENT_TRACE</div><div class='add'>+        ISEQ_ELEMENT_ANCHOR,</div><div class='add'>+        ISEQ_ELEMENT_LABEL,</div><div class='add'>+        ISEQ_ELEMENT_INSN,</div><div class='add'>+        ISEQ_ELEMENT_ADJUST,</div><div class='add'>+        ISEQ_ELEMENT_TRACE,</div><div class='ctx'>     } type;</div><div class='ctx'>     struct iseq_link_element *next;</div><div class='ctx'>     struct iseq_link_element *prev;</div><div class='hunk'>@@ -77,8 +93,9 @@ typedef struct iseq_insn_data {</div><div class='ctx'>     int sc_state;</div><div class='ctx'>     VALUE *operands;</div><div class='ctx'>     struct {</div><div class='del'>-	int line_no;</div><div class='del'>-	rb_event_flag_t events;</div><div class='add'>+        int line_no;</div><div class='add'>+        int node_id;</div><div class='add'>+        rb_event_flag_t events;</div><div class='ctx'>     } insn_info;</div><div class='ctx'> } INSN;</div><div class='ctx'> </div><div class='hunk'>@@ -106,6 +123,8 @@ struct iseq_compile_data_ensure_node_stack {</div><div class='ctx'>     struct ensure_range *erange;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+const ID rb_iseq_shared_exc_local_tbl[] = {idERROR_INFO};</div><div class='add'>+</div><div class='ctx'> /**</div><div class='ctx'>  * debug function(macro) interface depend on CPDEBUG</div><div class='ctx'>  * if it is less than 0, runtime option is in effect.</div><div class='hunk'>@@ -173,6 +192,7 @@ struct iseq_compile_data_ensure_node_stack {</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if CPDEBUG &gt; 1 || CPDEBUG &lt; 0</div><div class='add'>+#undef printf</div><div class='ctx'> #define printf ruby_debug_printf</div><div class='ctx'> #define debugs if (compile_debug_print_indent(1)) ruby_debug_printf</div><div class='ctx'> #define debug_compile(msg, v) ((void)(compile_debug_print_indent(1) &amp;&amp; fputs((msg), stderr)), (v))</div><div class='hunk'>@@ -198,112 +218,77 @@ struct iseq_compile_data_ensure_node_stack {</div><div class='ctx'>   APPEND_LIST((seq1), (seq2))</div><div class='ctx'> </div><div class='ctx'> /* add an instruction */</div><div class='del'>-#define ADD_INSN(seq, line, insn) \</div><div class='del'>-  ADD_ELEM((seq), (LINK_ELEMENT *) new_insn_body(iseq, (line), BIN(insn), 0))</div><div class='add'>+#define ADD_INSN(seq, line_node, insn) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) new_insn_body(iseq, (line_node), BIN(insn), 0))</div><div class='ctx'> </div><div class='ctx'> /* insert an instruction before next */</div><div class='del'>-#define INSERT_BEFORE_INSN(next, line, insn) \</div><div class='del'>-  ELEM_INSERT_PREV(&amp;(next)-&gt;link, (LINK_ELEMENT *) new_insn_body(iseq, (line), BIN(insn), 0))</div><div class='add'>+#define INSERT_BEFORE_INSN(next, line_node, insn) \</div><div class='add'>+  ELEM_INSERT_PREV(&amp;(next)-&gt;link, (LINK_ELEMENT *) new_insn_body(iseq, (line_node), BIN(insn), 0))</div><div class='ctx'> </div><div class='ctx'> /* insert an instruction after prev */</div><div class='del'>-#define INSERT_AFTER_INSN(prev, line, insn) \</div><div class='del'>-  ELEM_INSERT_NEXT(&amp;(prev)-&gt;link, (LINK_ELEMENT *) new_insn_body(iseq, (line), BIN(insn), 0))</div><div class='add'>+#define INSERT_AFTER_INSN(prev, line_node, insn) \</div><div class='add'>+  ELEM_INSERT_NEXT(&amp;(prev)-&gt;link, (LINK_ELEMENT *) new_insn_body(iseq, (line_node), BIN(insn), 0))</div><div class='ctx'> </div><div class='ctx'> /* add an instruction with some operands (1, 2, 3, 5) */</div><div class='del'>-#define ADD_INSN1(seq, line, insn, op1) \</div><div class='add'>+#define ADD_INSN1(seq, line_node, insn, op1) \</div><div class='ctx'>   ADD_ELEM((seq), (LINK_ELEMENT *) \</div><div class='del'>-           new_insn_body(iseq, (line), BIN(insn), 1, (VALUE)(op1)))</div><div class='add'>+           new_insn_body(iseq, (line_node), BIN(insn), 1, (VALUE)(op1)))</div><div class='ctx'> </div><div class='ctx'> /* insert an instruction with some operands (1, 2, 3, 5) before next */</div><div class='del'>-#define INSERT_BEFORE_INSN1(next, line, insn, op1) \</div><div class='add'>+#define INSERT_BEFORE_INSN1(next, line_node, insn, op1) \</div><div class='ctx'>   ELEM_INSERT_PREV(&amp;(next)-&gt;link, (LINK_ELEMENT *) \</div><div class='del'>-           new_insn_body(iseq, (line), BIN(insn), 1, (VALUE)(op1)))</div><div class='add'>+           new_insn_body(iseq, (line_node), BIN(insn), 1, (VALUE)(op1)))</div><div class='ctx'> </div><div class='ctx'> /* insert an instruction with some operands (1, 2, 3, 5) after prev */</div><div class='del'>-#define INSERT_AFTER_INSN1(prev, line, insn, op1) \</div><div class='add'>+#define INSERT_AFTER_INSN1(prev, line_node, insn, op1) \</div><div class='ctx'>   ELEM_INSERT_NEXT(&amp;(prev)-&gt;link, (LINK_ELEMENT *) \</div><div class='del'>-           new_insn_body(iseq, (line), BIN(insn), 1, (VALUE)(op1)))</div><div class='add'>+           new_insn_body(iseq, (line_node), BIN(insn), 1, (VALUE)(op1)))</div><div class='ctx'> </div><div class='ctx'> #define LABEL_REF(label) ((label)-&gt;refcnt++)</div><div class='ctx'> </div><div class='ctx'> /* add an instruction with label operand (alias of ADD_INSN1) */</div><div class='del'>-#define ADD_INSNL(seq, line, insn, label) (ADD_INSN1(seq, line, insn, label), LABEL_REF(label))</div><div class='add'>+#define ADD_INSNL(seq, line_node, insn, label) (ADD_INSN1(seq, line_node, insn, label), LABEL_REF(label))</div><div class='ctx'> </div><div class='del'>-#define ADD_INSN2(seq, line, insn, op1, op2) \</div><div class='add'>+#define ADD_INSN2(seq, line_node, insn, op1, op2) \</div><div class='ctx'>   ADD_ELEM((seq), (LINK_ELEMENT *) \</div><div class='del'>-           new_insn_body(iseq, (line), BIN(insn), 2, (VALUE)(op1), (VALUE)(op2)))</div><div class='add'>+           new_insn_body(iseq, (line_node), BIN(insn), 2, (VALUE)(op1), (VALUE)(op2)))</div><div class='ctx'> </div><div class='del'>-#define ADD_INSN3(seq, line, insn, op1, op2, op3) \</div><div class='add'>+#define ADD_INSN3(seq, line_node, insn, op1, op2, op3) \</div><div class='ctx'>   ADD_ELEM((seq), (LINK_ELEMENT *) \</div><div class='del'>-           new_insn_body(iseq, (line), BIN(insn), 3, (VALUE)(op1), (VALUE)(op2), (VALUE)(op3)))</div><div class='add'>+           new_insn_body(iseq, (line_node), BIN(insn), 3, (VALUE)(op1), (VALUE)(op2), (VALUE)(op3)))</div><div class='ctx'> </div><div class='ctx'> /* Specific Insn factory */</div><div class='del'>-#define ADD_SEND(seq, line, id, argc) \</div><div class='del'>-  ADD_SEND_R((seq), (line), (id), (argc), NULL, (VALUE)INT2FIX(0), NULL)</div><div class='add'>+#define ADD_SEND(seq, line_node, id, argc) \</div><div class='add'>+  ADD_SEND_R((seq), (line_node), (id), (argc), NULL, (VALUE)INT2FIX(0), NULL)</div><div class='ctx'> </div><div class='del'>-#define ADD_SEND_WITH_FLAG(seq, line, id, argc, flag) \</div><div class='del'>-  ADD_SEND_R((seq), (line), (id), (argc), NULL, (VALUE)(flag), NULL)</div><div class='add'>+#define ADD_SEND_WITH_FLAG(seq, line_node, id, argc, flag) \</div><div class='add'>+  ADD_SEND_R((seq), (line_node), (id), (argc), NULL, (VALUE)(flag), NULL)</div><div class='ctx'> </div><div class='del'>-#define ADD_SEND_WITH_BLOCK(seq, line, id, argc, block) \</div><div class='del'>-  ADD_SEND_R((seq), (line), (id), (argc), (block), (VALUE)INT2FIX(0), NULL)</div><div class='add'>+#define ADD_SEND_WITH_BLOCK(seq, line_node, id, argc, block) \</div><div class='add'>+  ADD_SEND_R((seq), (line_node), (id), (argc), (block), (VALUE)INT2FIX(0), NULL)</div><div class='ctx'> </div><div class='del'>-#define ADD_CALL_RECEIVER(seq, line) \</div><div class='del'>-  ADD_INSN((seq), (line), putself)</div><div class='add'>+#define ADD_CALL_RECEIVER(seq, line_node) \</div><div class='add'>+  ADD_INSN((seq), (line_node), putself)</div><div class='ctx'> </div><div class='del'>-#define ADD_CALL(seq, line, id, argc) \</div><div class='del'>-  ADD_SEND_R((seq), (line), (id), (argc), NULL, (VALUE)INT2FIX(VM_CALL_FCALL), NULL)</div><div class='add'>+#define ADD_CALL(seq, line_node, id, argc) \</div><div class='add'>+  ADD_SEND_R((seq), (line_node), (id), (argc), NULL, (VALUE)INT2FIX(VM_CALL_FCALL), NULL)</div><div class='ctx'> </div><div class='del'>-#define ADD_CALL_WITH_BLOCK(seq, line, id, argc, block) \</div><div class='del'>-  ADD_SEND_R((seq), (line), (id), (argc), (block), (VALUE)INT2FIX(VM_CALL_FCALL), NULL)</div><div class='add'>+#define ADD_CALL_WITH_BLOCK(seq, line_node, id, argc, block) \</div><div class='add'>+  ADD_SEND_R((seq), (line_node), (id), (argc), (block), (VALUE)INT2FIX(VM_CALL_FCALL), NULL)</div><div class='ctx'> </div><div class='del'>-#define ADD_SEND_R(seq, line, id, argc, block, flag, keywords) \</div><div class='del'>-  ADD_ELEM((seq), (LINK_ELEMENT *) new_insn_send(iseq, (line), (id), (VALUE)(argc), (block), (VALUE)(flag), (keywords)))</div><div class='add'>+#define ADD_SEND_R(seq, line_node, id, argc, block, flag, keywords) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) new_insn_send(iseq, (line_node), (id), (VALUE)(argc), (block), (VALUE)(flag), (keywords)))</div><div class='ctx'> </div><div class='ctx'> #define ADD_TRACE(seq, event) \</div><div class='ctx'>   ADD_ELEM((seq), (LINK_ELEMENT *)new_trace_body(iseq, (event), 0))</div><div class='ctx'> #define ADD_TRACE_WITH_DATA(seq, event, data) \</div><div class='ctx'>   ADD_ELEM((seq), (LINK_ELEMENT *)new_trace_body(iseq, (event), (data)))</div><div class='ctx'> </div><div class='add'>+static void iseq_add_getlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, const NODE *const line_node, int idx, int level);</div><div class='add'>+static void iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, const NODE *const line_node, int idx, int level);</div><div class='ctx'> </div><div class='del'>-#define DECL_BRANCH_BASE(branches, first_line, first_column, last_line, last_column, type) \</div><div class='del'>-  do { \</div><div class='del'>-      if (ISEQ_COVERAGE(iseq) &amp;&amp; \</div><div class='del'>-	  ISEQ_BRANCH_COVERAGE(iseq) &amp;&amp; \</div><div class='del'>-	  (first_line) &gt; 0) { \</div><div class='del'>-	  VALUE structure = RARRAY_AREF(ISEQ_BRANCH_COVERAGE(iseq), 0); \</div><div class='del'>-	  branches = rb_ary_tmp_new(0); \</div><div class='del'>-	  rb_ary_push(structure, branches); \</div><div class='del'>-	  rb_ary_push(branches, ID2SYM(rb_intern(type))); \</div><div class='del'>-	  rb_ary_push(branches, INT2FIX(first_line)); \</div><div class='del'>-	  rb_ary_push(branches, INT2FIX(first_column)); \</div><div class='del'>-	  rb_ary_push(branches, INT2FIX(last_line)); \</div><div class='del'>-	  rb_ary_push(branches, INT2FIX(last_column)); \</div><div class='del'>-      } \</div><div class='del'>-  } while (0)</div><div class='del'>-#define ADD_TRACE_BRANCH_COVERAGE(seq, first_line, first_column, last_line, last_column, type, branches) \</div><div class='del'>-  do { \</div><div class='del'>-      if (ISEQ_COVERAGE(iseq) &amp;&amp; \</div><div class='del'>-	  ISEQ_BRANCH_COVERAGE(iseq) &amp;&amp; \</div><div class='del'>-	  (first_line) &gt; 0) { \</div><div class='del'>-	  VALUE counters = RARRAY_AREF(ISEQ_BRANCH_COVERAGE(iseq), 1); \</div><div class='del'>-	  long counter_idx = RARRAY_LEN(counters); \</div><div class='del'>-	  rb_ary_push(counters, INT2FIX(0)); \</div><div class='del'>-	  rb_ary_push(branches, ID2SYM(rb_intern(type))); \</div><div class='del'>-	  rb_ary_push(branches, INT2FIX(first_line)); \</div><div class='del'>-	  rb_ary_push(branches, INT2FIX(first_column)); \</div><div class='del'>-	  rb_ary_push(branches, INT2FIX(last_line)); \</div><div class='del'>-	  rb_ary_push(branches, INT2FIX(last_column)); \</div><div class='del'>-	  rb_ary_push(branches, INT2FIX(counter_idx)); \</div><div class='del'>-          ADD_TRACE_WITH_DATA(seq, RUBY_EVENT_COVERAGE_BRANCH, counter_idx); \</div><div class='del'>-          ADD_INSN(seq, last_line, nop); \</div><div class='del'>-      } \</div><div class='del'>-  } while (0)</div><div class='del'>-</div><div class='del'>-static void iseq_add_getlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, int level);</div><div class='del'>-static void iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, int level);</div><div class='del'>-</div><div class='del'>-#define ADD_GETLOCAL(seq, line, idx, level) iseq_add_getlocal(iseq, (seq), (line), (idx), (level))</div><div class='del'>-#define ADD_SETLOCAL(seq, line, idx, level) iseq_add_setlocal(iseq, (seq), (line), (idx), (level))</div><div class='add'>+#define ADD_GETLOCAL(seq, line_node, idx, level) iseq_add_getlocal(iseq, (seq), (line_node), (idx), (level))</div><div class='add'>+#define ADD_SETLOCAL(seq, line_node, idx, level) iseq_add_setlocal(iseq, (seq), (line_node), (idx), (level))</div><div class='ctx'> </div><div class='ctx'> /* add label */</div><div class='ctx'> #define ADD_LABEL(seq, label) \</div><div class='hunk'>@@ -312,8 +297,8 @@ static void iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line,</div><div class='ctx'> #define APPEND_LABEL(seq, before, label) \</div><div class='ctx'>   APPEND_ELEM((seq), (before), (LINK_ELEMENT *) (label))</div><div class='ctx'> </div><div class='del'>-#define ADD_ADJUST(seq, line, label) \</div><div class='del'>-  ADD_ELEM((seq), (LINK_ELEMENT *) new_adjust_body(iseq, (label), (line)))</div><div class='add'>+#define ADD_ADJUST(seq, line_node, label) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) new_adjust_body(iseq, (label), nd_line(line_node)))</div><div class='ctx'> </div><div class='ctx'> #define ADD_ADJUST_RESTORE(seq, label) \</div><div class='ctx'>   ADD_ELEM((seq), (LINK_ELEMENT *) new_adjust_body(iseq, (label), -1))</div><div class='hunk'>@@ -322,11 +307,13 @@ static void iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line,</div><div class='ctx'>     ((label) ? (LABEL_REF(label), (label)-&gt;unremovable=1) : 0)</div><div class='ctx'> #define ADD_CATCH_ENTRY(type, ls, le, iseqv, lc) do {				\</div><div class='ctx'>     VALUE _e = rb_ary_new3(5, (type),						\</div><div class='del'>-			   (VALUE)(ls) | 1, (VALUE)(le) | 1,			\</div><div class='del'>-			   (VALUE)(iseqv), (VALUE)(lc) | 1);			\</div><div class='add'>+                           (VALUE)(ls) | 1, (VALUE)(le) | 1,			\</div><div class='add'>+                           (VALUE)(iseqv), (VALUE)(lc) | 1);			\</div><div class='ctx'>     LABEL_UNREMOVABLE(ls);							\</div><div class='ctx'>     LABEL_REF(le);								\</div><div class='ctx'>     LABEL_REF(lc);								\</div><div class='add'>+    if (NIL_P(ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary)) \</div><div class='add'>+        RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary, rb_ary_hidden_new(3)); \</div><div class='ctx'>     rb_ary_push(ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary, freeze_hide_obj(_e));	\</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='hunk'>@@ -347,8 +334,8 @@ static void iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line,</div><div class='ctx'> </div><div class='ctx'> #define COMPILE_RECV(anchor, desc, node) \</div><div class='ctx'>     (private_recv_p(node) ? \</div><div class='del'>-     (ADD_INSN(anchor, nd_line(node), putself), VM_CALL_FCALL) : \</div><div class='del'>-     (COMPILE(anchor, desc, node-&gt;nd_recv), 0))</div><div class='add'>+     (ADD_INSN(anchor, node, putself), VM_CALL_FCALL) : \</div><div class='add'>+     COMPILE(anchor, desc, node-&gt;nd_recv) ? 0 : -1)</div><div class='ctx'> </div><div class='ctx'> #define OPERAND_AT(insn, idx) \</div><div class='ctx'>   (((INSN*)(insn))-&gt;operands[(idx)])</div><div class='hunk'>@@ -366,9 +353,9 @@ static void iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line,</div><div class='ctx'> </div><div class='ctx'> /* error */</div><div class='ctx'> #if CPDEBUG &gt; 0</div><div class='del'>-NORETURN(static void append_compile_error(rb_iseq_t *iseq, int line, const char *fmt, ...));</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='ctx'> #endif</div><div class='del'>-</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4)</div><div class='ctx'> static void</div><div class='ctx'> append_compile_error(const rb_iseq_t *iseq, int line, const char *fmt, ...)</div><div class='ctx'> {</div><div class='hunk'>@@ -381,13 +368,16 @@ append_compile_error(const rb_iseq_t *iseq, int line, const char *fmt, ...)</div><div class='ctx'>     err = rb_syntax_error_append(err, file, line, -1, NULL, fmt, args);</div><div class='ctx'>     va_end(args);</div><div class='ctx'>     if (NIL_P(err_info)) {</div><div class='del'>-	RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;err_info, err);</div><div class='del'>-	rb_set_errinfo(err);</div><div class='add'>+        RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;err_info, err);</div><div class='add'>+        rb_set_errinfo(err);</div><div class='ctx'>     }</div><div class='ctx'>     else if (!err_info) {</div><div class='del'>-	RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;err_info, Qtrue);</div><div class='add'>+        RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;err_info, Qtrue);</div><div class='add'>+    }</div><div class='add'>+    if (compile_debug) {</div><div class='add'>+        if (SPECIAL_CONST_P(err)) err = rb_eSyntaxError;</div><div class='add'>+        rb_exc_fatal(err);</div><div class='ctx'>     }</div><div class='del'>-    if (compile_debug) rb_exc_fatal(err);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if 0</div><div class='hunk'>@@ -412,17 +402,17 @@ do { \</div><div class='ctx'>     const NODE *error_node = (node); \</div><div class='ctx'>     enum node_type error_type = nd_type(error_node); \</div><div class='ctx'>     if (error_type != (ndtype)) { \</div><div class='del'>-	COMPILE_ERROR(ERROR_ARGS_AT(error_node) \</div><div class='del'>-		      prefix ": " #ndtype " is expected, but %s", \</div><div class='del'>-		      ruby_node_name(error_type)); \</div><div class='del'>-	return errval; \</div><div class='add'>+        COMPILE_ERROR(ERROR_ARGS_AT(error_node) \</div><div class='add'>+                      prefix ": " #ndtype " is expected, but %s", \</div><div class='add'>+                      ruby_node_name(error_type)); \</div><div class='add'>+        return errval; \</div><div class='ctx'>     } \</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='ctx'> #define EXPECT_NODE_NONULL(prefix, parent, ndtype, errval) \</div><div class='ctx'> do { \</div><div class='ctx'>     COMPILE_ERROR(ERROR_ARGS_AT(parent) \</div><div class='del'>-		  prefix ": must be " #ndtype ", but 0"); \</div><div class='add'>+                  prefix ": must be " #ndtype ", but 0"); \</div><div class='ctx'>     return errval; \</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='hunk'>@@ -430,7 +420,7 @@ do { \</div><div class='ctx'> do { \</div><div class='ctx'>     const NODE *error_node = (node); \</div><div class='ctx'>     COMPILE_ERROR(ERROR_ARGS_AT(error_node) prefix ": unknown node (%s)", \</div><div class='del'>-		  ruby_node_name(nd_type(error_node))); \</div><div class='add'>+                  ruby_node_name(nd_type(error_node))); \</div><div class='ctx'>     return errval; \</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='hunk'>@@ -438,6 +428,7 @@ do { \</div><div class='ctx'> #define COMPILE_NG 0</div><div class='ctx'> </div><div class='ctx'> #define CHECK(sub) if (!(sub)) {BEFORE_RETURN;return COMPILE_NG;}</div><div class='add'>+#define NO_CHECK(sub) (void)(sub)</div><div class='ctx'> #define BEFORE_RETURN</div><div class='ctx'> </div><div class='ctx'> /* leave name uninitialized so that compiler warn if INIT_ANCHOR is</div><div class='hunk'>@@ -479,7 +470,7 @@ static void dump_disasm_list(const LINK_ELEMENT *elem);</div><div class='ctx'> static int insn_data_length(INSN *iobj);</div><div class='ctx'> static int calc_sp_depth(int depth, INSN *iobj);</div><div class='ctx'> </div><div class='del'>-static INSN *new_insn_body(rb_iseq_t *iseq, int line_no, enum ruby_vminsn_type insn_id, int argc, ...);</div><div class='add'>+static INSN *new_insn_body(rb_iseq_t *iseq, const NODE *const line_node, enum ruby_vminsn_type insn_id, int argc, ...);</div><div class='ctx'> static LABEL *new_label_body(rb_iseq_t *iseq, long line);</div><div class='ctx'> static ADJUST *new_adjust_body(rb_iseq_t *iseq, LABEL *label, int line);</div><div class='ctx'> static TRACE *new_trace_body(rb_iseq_t *iseq, rb_event_flag_t event, long data);</div><div class='hunk'>@@ -491,7 +482,7 @@ static int iseq_setup_insn(rb_iseq_t *iseq, LINK_ANCHOR *const anchor);</div><div class='ctx'> static int iseq_optimize(rb_iseq_t *iseq, LINK_ANCHOR *const anchor);</div><div class='ctx'> static int iseq_insns_unification(rb_iseq_t *iseq, LINK_ANCHOR *const anchor);</div><div class='ctx'> </div><div class='del'>-static int iseq_set_local_table(rb_iseq_t *iseq, const ID *tbl);</div><div class='add'>+static int iseq_set_local_table(rb_iseq_t *iseq, const rb_ast_id_table_t *tbl);</div><div class='ctx'> static int iseq_set_exception_local_table(rb_iseq_t *iseq);</div><div class='ctx'> static int iseq_set_arguments(rb_iseq_t *iseq, LINK_ANCHOR *const anchor, const NODE *const node);</div><div class='ctx'> </div><div class='hunk'>@@ -501,6 +492,7 @@ static int iseq_set_exception_table(rb_iseq_t *iseq);</div><div class='ctx'> static int iseq_set_optargs_table(rb_iseq_t *iseq);</div><div class='ctx'> </div><div class='ctx'> static int compile_defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, VALUE needstr);</div><div class='add'>+static int compile_hash(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int method_call_keywords, int popped);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * To make Array to LinkedList, use link_anchor</div><div class='hunk'>@@ -518,19 +510,19 @@ verify_list(ISEQ_ARG_DECLARE const char *info, LINK_ANCHOR *const anchor)</div><div class='ctx'>     list = anchor-&gt;anchor.next;</div><div class='ctx'>     plist = &amp;anchor-&gt;anchor;</div><div class='ctx'>     while (list) {</div><div class='del'>-	if (plist != list-&gt;prev) {</div><div class='del'>-	    flag += 1;</div><div class='del'>-	}</div><div class='del'>-	plist = list;</div><div class='del'>-	list = list-&gt;next;</div><div class='add'>+        if (plist != list-&gt;prev) {</div><div class='add'>+            flag += 1;</div><div class='add'>+        }</div><div class='add'>+        plist = list;</div><div class='add'>+        list = list-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (anchor-&gt;last != plist &amp;&amp; anchor-&gt;last != 0) {</div><div class='del'>-	flag |= 0x70000;</div><div class='add'>+        flag |= 0x70000;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (flag != 0) {</div><div class='del'>-	rb_bug("list verify error: %08x (%s)", flag, info);</div><div class='add'>+        rb_bug("list verify error: %08x (%s)", flag, info);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='hunk'>@@ -538,6 +530,42 @@ verify_list(ISEQ_ARG_DECLARE const char *info, LINK_ANCHOR *const anchor)</div><div class='ctx'> #define verify_list(info, anchor) verify_list(iseq, (info), (anchor))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+verify_call_cache(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+#if CPDEBUG</div><div class='add'>+    VALUE *original = rb_iseq_original_iseq(iseq);</div><div class='add'>+    size_t i = 0;</div><div class='add'>+    while (i &lt; ISEQ_BODY(iseq)-&gt;iseq_size) {</div><div class='add'>+        VALUE insn = original[i];</div><div class='add'>+        const char *types = insn_op_types(insn);</div><div class='add'>+</div><div class='add'>+        for (int j=0; types[j]; j++) {</div><div class='add'>+            if (types[j] == TS_CALLDATA) {</div><div class='add'>+                struct rb_call_data *cd = (struct rb_call_data *)original[i+j+1];</div><div class='add'>+                const struct rb_callinfo *ci = cd-&gt;ci;</div><div class='add'>+                const struct rb_callcache *cc = cd-&gt;cc;</div><div class='add'>+                if (cc != vm_cc_empty()) {</div><div class='add'>+                    vm_ci_dump(ci);</div><div class='add'>+                    rb_bug("call cache is not initialized by vm_cc_empty()");</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        i += insn_len(insn);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    for (unsigned int i=0; i&lt;ISEQ_BODY(iseq)-&gt;ci_size; i++) {</div><div class='add'>+        struct rb_call_data *cd = &amp;ISEQ_BODY(iseq)-&gt;call_data[i];</div><div class='add'>+        const struct rb_callinfo *ci = cd-&gt;ci;</div><div class='add'>+        const struct rb_callcache *cc = cd-&gt;cc;</div><div class='add'>+        if (cc != NULL &amp;&amp; cc != vm_cc_empty()) {</div><div class='add'>+            vm_ci_dump(ci);</div><div class='add'>+            rb_bug("call cache is not initialized by vm_cc_empty()");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * elem1, elem2 =&gt; elem1, elem2, elem</div><div class='ctx'>  */</div><div class='hunk'>@@ -568,36 +596,120 @@ APPEND_ELEM(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor, LINK_ELEMENT *before, LI</div><div class='ctx'> #define APPEND_ELEM(anchor, before, elem) APPEND_ELEM(iseq, (anchor), (before), (elem))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define ISEQ_LAST_LINE(iseq) (ISEQ_COMPILE_DATA(iseq)-&gt;last_line)</div><div class='del'>-</div><div class='ctx'> static int</div><div class='del'>-iseq_add_mark_object_compile_time(const rb_iseq_t *iseq, VALUE v)</div><div class='add'>+branch_coverage_valid_p(rb_iseq_t *iseq, int first_line)</div><div class='ctx'> {</div><div class='del'>-    if (!SPECIAL_CONST_P(v)) {</div><div class='del'>-	rb_ary_push(ISEQ_COMPILE_DATA(iseq)-&gt;mark_ary, v);</div><div class='add'>+    if (!ISEQ_COVERAGE(iseq)) return 0;</div><div class='add'>+    if (!ISEQ_BRANCH_COVERAGE(iseq)) return 0;</div><div class='add'>+    if (first_line &lt;= 0) return 0;</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+decl_branch_base(rb_iseq_t *iseq, const NODE *node, const char *type)</div><div class='add'>+{</div><div class='add'>+    const int first_lineno = nd_first_lineno(node), first_column = nd_first_column(node);</div><div class='add'>+    const int last_lineno = nd_last_lineno(node), last_column = nd_last_column(node);</div><div class='add'>+</div><div class='add'>+    if (!branch_coverage_valid_p(iseq, first_lineno)) return Qundef;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * if !structure[node]</div><div class='add'>+     *   structure[node] = [type, first_lineno, first_column, last_lineno, last_column, branches = {}]</div><div class='add'>+     * else</div><div class='add'>+     *   branches = structure[node][5]</div><div class='add'>+     * end</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    VALUE structure = RARRAY_AREF(ISEQ_BRANCH_COVERAGE(iseq), 0);</div><div class='add'>+    VALUE key = (VALUE)node | 1; // FIXNUM for hash key</div><div class='add'>+    VALUE branch_base = rb_hash_aref(structure, key);</div><div class='add'>+    VALUE branches;</div><div class='add'>+</div><div class='add'>+    if (NIL_P(branch_base)) {</div><div class='add'>+        branch_base = rb_ary_hidden_new(6);</div><div class='add'>+        rb_hash_aset(structure, key, branch_base);</div><div class='add'>+        rb_ary_push(branch_base, ID2SYM(rb_intern(type)));</div><div class='add'>+        rb_ary_push(branch_base, INT2FIX(first_lineno));</div><div class='add'>+        rb_ary_push(branch_base, INT2FIX(first_column));</div><div class='add'>+        rb_ary_push(branch_base, INT2FIX(last_lineno));</div><div class='add'>+        rb_ary_push(branch_base, INT2FIX(last_column));</div><div class='add'>+        branches = rb_hash_new();</div><div class='add'>+        rb_obj_hide(branches);</div><div class='add'>+        rb_ary_push(branch_base, branches);</div><div class='ctx'>     }</div><div class='del'>-    return COMPILE_OK;</div><div class='add'>+    else {</div><div class='add'>+        branches = RARRAY_AREF(branch_base, 5);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return branches;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static inline VALUE</div><div class='del'>-freeze_literal(rb_iseq_t *iseq, VALUE lit)</div><div class='add'>+static NODE</div><div class='add'>+generate_dummy_line_node(int lineno, int node_id)</div><div class='ctx'> {</div><div class='del'>-    lit = rb_fstring(lit);</div><div class='del'>-    rb_ary_push(ISEQ_COMPILE_DATA(iseq)-&gt;mark_ary, lit);</div><div class='del'>-    return lit;</div><div class='add'>+    NODE dummy = { 0 };</div><div class='add'>+    nd_set_line(&amp;dummy, lineno);</div><div class='add'>+    nd_set_node_id(&amp;dummy, node_id);</div><div class='add'>+    return dummy;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+add_trace_branch_coverage(rb_iseq_t *iseq, LINK_ANCHOR *const seq, const NODE *node, int branch_id, const char *type, VALUE branches)</div><div class='add'>+{</div><div class='add'>+    const int first_lineno = nd_first_lineno(node), first_column = nd_first_column(node);</div><div class='add'>+    const int last_lineno = nd_last_lineno(node), last_column = nd_last_column(node);</div><div class='add'>+</div><div class='add'>+    if (!branch_coverage_valid_p(iseq, first_lineno)) return;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * if !branches[branch_id]</div><div class='add'>+     *   branches[branch_id] = [type, first_lineno, first_column, last_lineno, last_column, counter_idx]</div><div class='add'>+     * else</div><div class='add'>+     *   counter_idx= branches[branch_id][5]</div><div class='add'>+     * end</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    VALUE key = INT2FIX(branch_id);</div><div class='add'>+    VALUE branch = rb_hash_aref(branches, key);</div><div class='add'>+    long counter_idx;</div><div class='add'>+</div><div class='add'>+    if (NIL_P(branch)) {</div><div class='add'>+        branch = rb_ary_hidden_new(6);</div><div class='add'>+        rb_hash_aset(branches, key, branch);</div><div class='add'>+        rb_ary_push(branch, ID2SYM(rb_intern(type)));</div><div class='add'>+        rb_ary_push(branch, INT2FIX(first_lineno));</div><div class='add'>+        rb_ary_push(branch, INT2FIX(first_column));</div><div class='add'>+        rb_ary_push(branch, INT2FIX(last_lineno));</div><div class='add'>+        rb_ary_push(branch, INT2FIX(last_column));</div><div class='add'>+        VALUE counters = RARRAY_AREF(ISEQ_BRANCH_COVERAGE(iseq), 1);</div><div class='add'>+        counter_idx = RARRAY_LEN(counters);</div><div class='add'>+        rb_ary_push(branch, LONG2FIX(counter_idx));</div><div class='add'>+        rb_ary_push(counters, INT2FIX(0));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        counter_idx = FIX2LONG(RARRAY_AREF(branch, 5));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_TRACE_WITH_DATA(seq, RUBY_EVENT_COVERAGE_BRANCH, counter_idx);</div><div class='add'>+</div><div class='add'>+    NODE dummy_line_node = generate_dummy_line_node(last_lineno, nd_node_id(node));</div><div class='add'>+    ADD_INSN(seq, &amp;dummy_line_node, nop);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#define ISEQ_LAST_LINE(iseq) (ISEQ_COMPILE_DATA(iseq)-&gt;last_line)</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> validate_label(st_data_t name, st_data_t label, st_data_t arg)</div><div class='ctx'> {</div><div class='ctx'>     rb_iseq_t *iseq = (rb_iseq_t *)arg;</div><div class='ctx'>     LABEL *lobj = (LABEL *)label;</div><div class='ctx'>     if (!lobj-&gt;link.next) {</div><div class='del'>-	do {</div><div class='del'>-	    COMPILE_ERROR(iseq, lobj-&gt;position,</div><div class='del'>-			  "%"PRIsVALUE": undefined label",</div><div class='del'>-			  rb_sym2str((VALUE)name));</div><div class='del'>-	} while (0);</div><div class='add'>+        do {</div><div class='add'>+            COMPILE_ERROR(iseq, lobj-&gt;position,</div><div class='add'>+                          "%"PRIsVALUE": undefined label",</div><div class='add'>+                          rb_sym2str((VALUE)name));</div><div class='add'>+        } while (0);</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -610,14 +722,15 @@ validate_labels(rb_iseq_t *iseq, st_table *labels_table)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_iseq_compile_ifunc(rb_iseq_t *iseq, const struct vm_ifunc *ifunc)</div><div class='add'>+rb_iseq_compile_callback(rb_iseq_t *iseq, const struct rb_iseq_new_with_callback_callback_func * ifunc)</div><div class='ctx'> {</div><div class='ctx'>     DECL_ANCHOR(ret);</div><div class='ctx'>     INIT_ANCHOR(ret);</div><div class='ctx'> </div><div class='ctx'>     (*ifunc-&gt;func)(iseq, ret, ifunc-&gt;data);</div><div class='ctx'> </div><div class='del'>-    ADD_INSN(ret, ISEQ_COMPILE_DATA(iseq)-&gt;last_line, leave);</div><div class='add'>+    NODE dummy_line_node = generate_dummy_line_node(ISEQ_COMPILE_DATA(iseq)-&gt;last_line, -1);</div><div class='add'>+    ADD_INSN(ret, &amp;dummy_line_node, leave);</div><div class='ctx'> </div><div class='ctx'>     CHECK(iseq_setup_insn(iseq, ret));</div><div class='ctx'>     return iseq_setup(iseq, ret);</div><div class='hunk'>@@ -629,130 +742,135 @@ rb_iseq_compile_node(rb_iseq_t *iseq, const NODE *node)</div><div class='ctx'>     DECL_ANCHOR(ret);</div><div class='ctx'>     INIT_ANCHOR(ret);</div><div class='ctx'> </div><div class='del'>-    if (imemo_type_p((VALUE)node, imemo_ifunc)) {</div><div class='add'>+    if (IMEMO_TYPE_P(node, imemo_ifunc)) {</div><div class='ctx'>         rb_raise(rb_eArgError, "unexpected imemo_ifunc");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (node == 0) {</div><div class='del'>-	COMPILE(ret, "nil", node);</div><div class='del'>-	iseq_set_local_table(iseq, 0);</div><div class='add'>+        NO_CHECK(COMPILE(ret, "nil", node));</div><div class='add'>+        iseq_set_local_table(iseq, 0);</div><div class='ctx'>     }</div><div class='ctx'>     /* assume node is T_NODE */</div><div class='del'>-    else if (nd_type(node) == NODE_SCOPE) {</div><div class='del'>-	/* iseq type of top, method, class, block */</div><div class='del'>-	iseq_set_local_table(iseq, node-&gt;nd_tbl);</div><div class='del'>-	iseq_set_arguments(iseq, ret, node-&gt;nd_args);</div><div class='del'>-</div><div class='del'>-	switch (iseq-&gt;body-&gt;type) {</div><div class='del'>-	  case ISEQ_TYPE_BLOCK:</div><div class='del'>-	    {</div><div class='del'>-		LABEL *start = ISEQ_COMPILE_DATA(iseq)-&gt;start_label = NEW_LABEL(0);</div><div class='del'>-		LABEL *end = ISEQ_COMPILE_DATA(iseq)-&gt;end_label = NEW_LABEL(0);</div><div class='del'>-</div><div class='del'>-		start-&gt;rescued = LABEL_RESCUE_BEG;</div><div class='del'>-		end-&gt;rescued = LABEL_RESCUE_END;</div><div class='del'>-</div><div class='del'>-		ADD_TRACE(ret, RUBY_EVENT_B_CALL);</div><div class='del'>-		ADD_INSN (ret, FIX2INT(iseq-&gt;body-&gt;location.first_lineno), nop);</div><div class='del'>-		ADD_LABEL(ret, start);</div><div class='del'>-		CHECK(COMPILE(ret, "block body", node-&gt;nd_body));</div><div class='del'>-		ADD_LABEL(ret, end);</div><div class='del'>-		ADD_TRACE(ret, RUBY_EVENT_B_RETURN);</div><div class='del'>-		ISEQ_COMPILE_DATA(iseq)-&gt;last_line = iseq-&gt;body-&gt;location.code_location.end_pos.lineno;</div><div class='del'>-</div><div class='del'>-		/* wide range catch handler must put at last */</div><div class='del'>-		ADD_CATCH_ENTRY(CATCH_TYPE_REDO, start, end, NULL, start);</div><div class='del'>-		ADD_CATCH_ENTRY(CATCH_TYPE_NEXT, start, end, NULL, end);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_TYPE_CLASS:</div><div class='del'>-	    {</div><div class='del'>-		ADD_TRACE(ret, RUBY_EVENT_CLASS);</div><div class='del'>-		CHECK(COMPILE(ret, "scoped node", node-&gt;nd_body));</div><div class='del'>-		ADD_TRACE(ret, RUBY_EVENT_END);</div><div class='del'>-		ISEQ_COMPILE_DATA(iseq)-&gt;last_line = nd_line(node);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_TYPE_METHOD:</div><div class='del'>-	    {</div><div class='del'>-		ADD_TRACE(ret, RUBY_EVENT_CALL);</div><div class='del'>-		CHECK(COMPILE(ret, "scoped node", node-&gt;nd_body));</div><div class='del'>-		ADD_TRACE(ret, RUBY_EVENT_RETURN);</div><div class='del'>-		ISEQ_COMPILE_DATA(iseq)-&gt;last_line = nd_line(node);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  default: {</div><div class='del'>-	    CHECK(COMPILE(ret, "scoped node", node-&gt;nd_body));</div><div class='del'>-	    break;</div><div class='del'>-	  }</div><div class='del'>-	}</div><div class='add'>+    else if (nd_type_p(node, NODE_SCOPE)) {</div><div class='add'>+        /* iseq type of top, method, class, block */</div><div class='add'>+        iseq_set_local_table(iseq, node-&gt;nd_tbl);</div><div class='add'>+        iseq_set_arguments(iseq, ret, node-&gt;nd_args);</div><div class='add'>+</div><div class='add'>+        switch (ISEQ_BODY(iseq)-&gt;type) {</div><div class='add'>+          case ISEQ_TYPE_BLOCK:</div><div class='add'>+            {</div><div class='add'>+                LABEL *start = ISEQ_COMPILE_DATA(iseq)-&gt;start_label = NEW_LABEL(0);</div><div class='add'>+                LABEL *end = ISEQ_COMPILE_DATA(iseq)-&gt;end_label = NEW_LABEL(0);</div><div class='add'>+</div><div class='add'>+                start-&gt;rescued = LABEL_RESCUE_BEG;</div><div class='add'>+                end-&gt;rescued = LABEL_RESCUE_END;</div><div class='add'>+</div><div class='add'>+                ADD_TRACE(ret, RUBY_EVENT_B_CALL);</div><div class='add'>+                NODE dummy_line_node = generate_dummy_line_node(ISEQ_BODY(iseq)-&gt;location.first_lineno, -1);</div><div class='add'>+                ADD_INSN (ret, &amp;dummy_line_node, nop);</div><div class='add'>+                ADD_LABEL(ret, start);</div><div class='add'>+                CHECK(COMPILE(ret, "block body", node-&gt;nd_body));</div><div class='add'>+                ADD_LABEL(ret, end);</div><div class='add'>+                ADD_TRACE(ret, RUBY_EVENT_B_RETURN);</div><div class='add'>+                ISEQ_COMPILE_DATA(iseq)-&gt;last_line = ISEQ_BODY(iseq)-&gt;location.code_location.end_pos.lineno;</div><div class='add'>+</div><div class='add'>+                /* wide range catch handler must put at last */</div><div class='add'>+                ADD_CATCH_ENTRY(CATCH_TYPE_REDO, start, end, NULL, start);</div><div class='add'>+                ADD_CATCH_ENTRY(CATCH_TYPE_NEXT, start, end, NULL, end);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_TYPE_CLASS:</div><div class='add'>+            {</div><div class='add'>+                ADD_TRACE(ret, RUBY_EVENT_CLASS);</div><div class='add'>+                CHECK(COMPILE(ret, "scoped node", node-&gt;nd_body));</div><div class='add'>+                ADD_TRACE(ret, RUBY_EVENT_END);</div><div class='add'>+                ISEQ_COMPILE_DATA(iseq)-&gt;last_line = nd_line(node);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_TYPE_METHOD:</div><div class='add'>+            {</div><div class='add'>+                ISEQ_COMPILE_DATA(iseq)-&gt;root_node = node-&gt;nd_body;</div><div class='add'>+                ADD_TRACE(ret, RUBY_EVENT_CALL);</div><div class='add'>+                CHECK(COMPILE(ret, "scoped node", node-&gt;nd_body));</div><div class='add'>+                ISEQ_COMPILE_DATA(iseq)-&gt;root_node = node-&gt;nd_body;</div><div class='add'>+                ADD_TRACE(ret, RUBY_EVENT_RETURN);</div><div class='add'>+                ISEQ_COMPILE_DATA(iseq)-&gt;last_line = nd_line(node);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          default: {</div><div class='add'>+            CHECK(COMPILE(ret, "scoped node", node-&gt;nd_body));</div><div class='add'>+            break;</div><div class='add'>+          }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	const char *m;</div><div class='add'>+        const char *m;</div><div class='ctx'> #define INVALID_ISEQ_TYPE(type) \</div><div class='del'>-	ISEQ_TYPE_##type: m = #type; goto invalid_iseq_type</div><div class='del'>-	switch (iseq-&gt;body-&gt;type) {</div><div class='del'>-	  case INVALID_ISEQ_TYPE(METHOD);</div><div class='del'>-	  case INVALID_ISEQ_TYPE(CLASS);</div><div class='del'>-	  case INVALID_ISEQ_TYPE(BLOCK);</div><div class='del'>-	  case INVALID_ISEQ_TYPE(EVAL);</div><div class='del'>-	  case INVALID_ISEQ_TYPE(MAIN);</div><div class='del'>-	  case INVALID_ISEQ_TYPE(TOP);</div><div class='add'>+        ISEQ_TYPE_##type: m = #type; goto invalid_iseq_type</div><div class='add'>+        switch (ISEQ_BODY(iseq)-&gt;type) {</div><div class='add'>+          case INVALID_ISEQ_TYPE(METHOD);</div><div class='add'>+          case INVALID_ISEQ_TYPE(CLASS);</div><div class='add'>+          case INVALID_ISEQ_TYPE(BLOCK);</div><div class='add'>+          case INVALID_ISEQ_TYPE(EVAL);</div><div class='add'>+          case INVALID_ISEQ_TYPE(MAIN);</div><div class='add'>+          case INVALID_ISEQ_TYPE(TOP);</div><div class='ctx'> #undef INVALID_ISEQ_TYPE /* invalid iseq types end */</div><div class='del'>-	  case ISEQ_TYPE_RESCUE:</div><div class='del'>-	    iseq_set_exception_local_table(iseq);</div><div class='del'>-	    CHECK(COMPILE(ret, "rescue", node));</div><div class='del'>-	    break;</div><div class='del'>-	  case ISEQ_TYPE_ENSURE:</div><div class='del'>-	    iseq_set_exception_local_table(iseq);</div><div class='del'>-	    CHECK(COMPILE_POPPED(ret, "ensure", node));</div><div class='del'>-	    break;</div><div class='del'>-	  case ISEQ_TYPE_PLAIN:</div><div class='del'>-	    CHECK(COMPILE(ret, "ensure", node));</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    COMPILE_ERROR(ERROR_ARGS "unknown scope: %d", iseq-&gt;body-&gt;type);</div><div class='del'>-	    return COMPILE_NG;</div><div class='del'>-	  invalid_iseq_type:</div><div class='del'>-	    COMPILE_ERROR(ERROR_ARGS "compile/ISEQ_TYPE_%s should not be reached", m);</div><div class='del'>-	    return COMPILE_NG;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (iseq-&gt;body-&gt;type == ISEQ_TYPE_RESCUE || iseq-&gt;body-&gt;type == ISEQ_TYPE_ENSURE) {</div><div class='del'>-	ADD_GETLOCAL(ret, 0, LVAR_ERRINFO, 0);</div><div class='del'>-	ADD_INSN1(ret, 0, throw, INT2FIX(0) /* continue throw */ );</div><div class='add'>+          case ISEQ_TYPE_RESCUE:</div><div class='add'>+            iseq_set_exception_local_table(iseq);</div><div class='add'>+            CHECK(COMPILE(ret, "rescue", node));</div><div class='add'>+            break;</div><div class='add'>+          case ISEQ_TYPE_ENSURE:</div><div class='add'>+            iseq_set_exception_local_table(iseq);</div><div class='add'>+            CHECK(COMPILE_POPPED(ret, "ensure", node));</div><div class='add'>+            break;</div><div class='add'>+          case ISEQ_TYPE_PLAIN:</div><div class='add'>+            CHECK(COMPILE(ret, "ensure", node));</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            COMPILE_ERROR(ERROR_ARGS "unknown scope: %d", ISEQ_BODY(iseq)-&gt;type);</div><div class='add'>+            return COMPILE_NG;</div><div class='add'>+          invalid_iseq_type:</div><div class='add'>+            COMPILE_ERROR(ERROR_ARGS "compile/ISEQ_TYPE_%s should not be reached", m);</div><div class='add'>+            return COMPILE_NG;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (ISEQ_BODY(iseq)-&gt;type == ISEQ_TYPE_RESCUE || ISEQ_BODY(iseq)-&gt;type == ISEQ_TYPE_ENSURE) {</div><div class='add'>+        NODE dummy_line_node = generate_dummy_line_node(0, -1);</div><div class='add'>+        ADD_GETLOCAL(ret, &amp;dummy_line_node, LVAR_ERRINFO, 0);</div><div class='add'>+        ADD_INSN1(ret, &amp;dummy_line_node, throw, INT2FIX(0) /* continue throw */ );</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ADD_INSN(ret, ISEQ_COMPILE_DATA(iseq)-&gt;last_line, leave);</div><div class='add'>+        NODE dummy_line_node = generate_dummy_line_node(ISEQ_COMPILE_DATA(iseq)-&gt;last_line, -1);</div><div class='add'>+        ADD_INSN(ret, &amp;dummy_line_node, leave);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-#if SUPPORT_JOKE</div><div class='add'>+#if OPT_SUPPORT_JOKE</div><div class='ctx'>     if (ISEQ_COMPILE_DATA(iseq)-&gt;labels_table) {</div><div class='del'>-	st_table *labels_table = ISEQ_COMPILE_DATA(iseq)-&gt;labels_table;</div><div class='del'>-	ISEQ_COMPILE_DATA(iseq)-&gt;labels_table = 0;</div><div class='del'>-	validate_labels(iseq, labels_table);</div><div class='add'>+        st_table *labels_table = ISEQ_COMPILE_DATA(iseq)-&gt;labels_table;</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;labels_table = 0;</div><div class='add'>+        validate_labels(iseq, labels_table);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     CHECK(iseq_setup_insn(iseq, ret));</div><div class='ctx'>     return iseq_setup(iseq, ret);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-int</div><div class='add'>+static int</div><div class='ctx'> rb_iseq_translate_threaded_code(rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'> #if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE</div><div class='ctx'>     const void * const *table = rb_vm_get_insns_address_table();</div><div class='ctx'>     unsigned int i;</div><div class='del'>-    VALUE *encoded = (VALUE *)iseq-&gt;body-&gt;iseq_encoded;</div><div class='add'>+    VALUE *encoded = (VALUE *)ISEQ_BODY(iseq)-&gt;iseq_encoded;</div><div class='ctx'> </div><div class='del'>-    for (i = 0; i &lt; iseq-&gt;body-&gt;iseq_size; /* */ ) {</div><div class='del'>-	int insn = (int)iseq-&gt;body-&gt;iseq_encoded[i];</div><div class='del'>-	int len = insn_len(insn);</div><div class='del'>-	encoded[i] = (VALUE)table[insn];</div><div class='del'>-	i += len;</div><div class='add'>+    for (i = 0; i &lt; ISEQ_BODY(iseq)-&gt;iseq_size; /* */ ) {</div><div class='add'>+        int insn = (int)ISEQ_BODY(iseq)-&gt;iseq_encoded[i];</div><div class='add'>+        int len = insn_len(insn);</div><div class='add'>+        encoded[i] = (VALUE)table[insn];</div><div class='add'>+        i += len;</div><div class='ctx'>     }</div><div class='del'>-    FL_SET(iseq, ISEQ_TRANSLATED);</div><div class='add'>+    FL_SET((VALUE)iseq, ISEQ_TRANSLATED);</div><div class='ctx'> #endif</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -763,20 +881,20 @@ rb_iseq_original_iseq(const rb_iseq_t *iseq) /* cold path */</div><div class='ctx'>     VALUE *original_code;</div><div class='ctx'> </div><div class='ctx'>     if (ISEQ_ORIGINAL_ISEQ(iseq)) return ISEQ_ORIGINAL_ISEQ(iseq);</div><div class='del'>-    original_code = ISEQ_ORIGINAL_ISEQ_ALLOC(iseq, iseq-&gt;body-&gt;iseq_size);</div><div class='del'>-    MEMCPY(original_code, iseq-&gt;body-&gt;iseq_encoded, VALUE, iseq-&gt;body-&gt;iseq_size);</div><div class='add'>+    original_code = ISEQ_ORIGINAL_ISEQ_ALLOC(iseq, ISEQ_BODY(iseq)-&gt;iseq_size);</div><div class='add'>+    MEMCPY(original_code, ISEQ_BODY(iseq)-&gt;iseq_encoded, VALUE, ISEQ_BODY(iseq)-&gt;iseq_size);</div><div class='ctx'> </div><div class='ctx'> #if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE</div><div class='ctx'>     {</div><div class='del'>-	unsigned int i;</div><div class='add'>+        unsigned int i;</div><div class='ctx'> </div><div class='del'>-	for (i = 0; i &lt; iseq-&gt;body-&gt;iseq_size; /* */ ) {</div><div class='del'>-	    const void *addr = (const void *)original_code[i];</div><div class='del'>-	    const int insn = rb_vm_insn_addr2insn(addr);</div><div class='add'>+        for (i = 0; i &lt; ISEQ_BODY(iseq)-&gt;iseq_size; /* */ ) {</div><div class='add'>+            const void *addr = (const void *)original_code[i];</div><div class='add'>+            const int insn = rb_vm_insn_addr2insn(addr);</div><div class='ctx'> </div><div class='del'>-	    original_code[i] = insn;</div><div class='del'>-	    i += insn_len(insn);</div><div class='del'>-	}</div><div class='add'>+            original_code[i] = insn;</div><div class='add'>+            i += insn_len(insn);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return original_code;</div><div class='hunk'>@@ -796,6 +914,16 @@ rb_iseq_original_iseq(const rb_iseq_t *iseq) /* cold path */</div><div class='ctx'>   #define STRICT_ALIGNMENT</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * Some OpenBSD platforms (including sparc64) require strict alignment.</div><div class='add'>+ */</div><div class='add'>+#if defined(__OpenBSD__)</div><div class='add'>+  #include &lt;sys/endian.h&gt;</div><div class='add'>+  #ifdef __STRICT_ALIGNMENT</div><div class='add'>+    #define STRICT_ALIGNMENT</div><div class='add'>+  #endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #ifdef STRICT_ALIGNMENT</div><div class='ctx'>   #if defined(HAVE_TRUE_LONG_LONG) &amp;&amp; SIZEOF_LONG_LONG &gt; SIZEOF_VALUE</div><div class='ctx'>     #define ALIGNMENT_SIZE SIZEOF_LONG_LONG</div><div class='hunk'>@@ -836,11 +964,10 @@ calc_padding(void *ptr, size_t size)</div><div class='ctx'> #endif /* STRICT_ALIGNMENT */</div><div class='ctx'> </div><div class='ctx'> static void *</div><div class='del'>-compile_data_alloc(rb_iseq_t *iseq, size_t size)</div><div class='add'>+compile_data_alloc_with_arena(struct iseq_compile_data_storage **arena, size_t size)</div><div class='ctx'> {</div><div class='ctx'>     void *ptr = 0;</div><div class='del'>-    struct iseq_compile_data_storage *storage =</div><div class='del'>-	ISEQ_COMPILE_DATA(iseq)-&gt;storage_current;</div><div class='add'>+    struct iseq_compile_data_storage *storage = *arena;</div><div class='ctx'> #ifdef STRICT_ALIGNMENT</div><div class='ctx'>     size_t padding = calc_padding((void *)&amp;storage-&gt;buff[storage-&gt;pos], size);</div><div class='ctx'> #else</div><div class='hunk'>@@ -849,18 +976,18 @@ compile_data_alloc(rb_iseq_t *iseq, size_t size)</div><div class='ctx'> </div><div class='ctx'>     if (size &gt;= INT_MAX - padding) rb_memerror();</div><div class='ctx'>     if (storage-&gt;pos + size + padding &gt; storage-&gt;size) {</div><div class='del'>-	unsigned int alloc_size = storage-&gt;size;</div><div class='del'>-</div><div class='del'>-	while (alloc_size &lt; size + PADDING_SIZE_MAX) {</div><div class='del'>-	    if (alloc_size &gt;= INT_MAX / 2) rb_memerror();</div><div class='del'>-	    alloc_size *= 2;</div><div class='del'>-	}</div><div class='del'>-	storage-&gt;next = (void *)ALLOC_N(char, alloc_size +</div><div class='del'>-					offsetof(struct iseq_compile_data_storage, buff));</div><div class='del'>-	storage = ISEQ_COMPILE_DATA(iseq)-&gt;storage_current = storage-&gt;next;</div><div class='del'>-	storage-&gt;next = 0;</div><div class='del'>-	storage-&gt;pos = 0;</div><div class='del'>-	storage-&gt;size = alloc_size;</div><div class='add'>+        unsigned int alloc_size = storage-&gt;size;</div><div class='add'>+</div><div class='add'>+        while (alloc_size &lt; size + PADDING_SIZE_MAX) {</div><div class='add'>+            if (alloc_size &gt;= INT_MAX / 2) rb_memerror();</div><div class='add'>+            alloc_size *= 2;</div><div class='add'>+        }</div><div class='add'>+        storage-&gt;next = (void *)ALLOC_N(char, alloc_size +</div><div class='add'>+                                        offsetof(struct iseq_compile_data_storage, buff));</div><div class='add'>+        storage = *arena = storage-&gt;next;</div><div class='add'>+        storage-&gt;next = 0;</div><div class='add'>+        storage-&gt;pos = 0;</div><div class='add'>+        storage-&gt;size = alloc_size;</div><div class='ctx'> #ifdef STRICT_ALIGNMENT</div><div class='ctx'>         padding = calc_padding((void *)&amp;storage-&gt;buff[storage-&gt;pos], size);</div><div class='ctx'> #endif /* STRICT_ALIGNMENT */</div><div class='hunk'>@@ -875,10 +1002,34 @@ compile_data_alloc(rb_iseq_t *iseq, size_t size)</div><div class='ctx'>     return ptr;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void *</div><div class='add'>+compile_data_alloc(rb_iseq_t *iseq, size_t size)</div><div class='add'>+{</div><div class='add'>+    struct iseq_compile_data_storage ** arena = &amp;ISEQ_COMPILE_DATA(iseq)-&gt;node.storage_current;</div><div class='add'>+    return compile_data_alloc_with_arena(arena, size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+compile_data_alloc2(rb_iseq_t *iseq, size_t x, size_t y)</div><div class='add'>+{</div><div class='add'>+    size_t size = rb_size_mul_or_raise(x, y, rb_eRuntimeError);</div><div class='add'>+    return compile_data_alloc(iseq, size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+compile_data_calloc2(rb_iseq_t *iseq, size_t x, size_t y)</div><div class='add'>+{</div><div class='add'>+    size_t size = rb_size_mul_or_raise(x, y, rb_eRuntimeError);</div><div class='add'>+    void *p = compile_data_alloc(iseq, size);</div><div class='add'>+    memset(p, 0, size);</div><div class='add'>+    return p;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static INSN *</div><div class='ctx'> compile_data_alloc_insn(rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    return (INSN *)compile_data_alloc(iseq, sizeof(INSN));</div><div class='add'>+    struct iseq_compile_data_storage ** arena = &amp;ISEQ_COMPILE_DATA(iseq)-&gt;insn.storage_current;</div><div class='add'>+    return (INSN *)compile_data_alloc_with_arena(arena, sizeof(INSN));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static LABEL *</div><div class='hunk'>@@ -909,7 +1060,7 @@ ELEM_INSERT_NEXT(LINK_ELEMENT *elem1, LINK_ELEMENT *elem2)</div><div class='ctx'>     elem2-&gt;prev = elem1;</div><div class='ctx'>     elem1-&gt;next = elem2;</div><div class='ctx'>     if (elem2-&gt;next) {</div><div class='del'>-	elem2-&gt;next-&gt;prev = elem2;</div><div class='add'>+        elem2-&gt;next-&gt;prev = elem2;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -923,7 +1074,7 @@ ELEM_INSERT_PREV(LINK_ELEMENT *elem1, LINK_ELEMENT *elem2)</div><div class='ctx'>     elem2-&gt;next = elem1;</div><div class='ctx'>     elem1-&gt;prev = elem2;</div><div class='ctx'>     if (elem2-&gt;prev) {</div><div class='del'>-	elem2-&gt;prev-&gt;next = elem2;</div><div class='add'>+        elem2-&gt;prev-&gt;next = elem2;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -936,10 +1087,10 @@ ELEM_REPLACE(LINK_ELEMENT *elem1, LINK_ELEMENT *elem2)</div><div class='ctx'>     elem2-&gt;prev = elem1-&gt;prev;</div><div class='ctx'>     elem2-&gt;next = elem1-&gt;next;</div><div class='ctx'>     if (elem1-&gt;prev) {</div><div class='del'>-	elem1-&gt;prev-&gt;next = elem2;</div><div class='add'>+        elem1-&gt;prev-&gt;next = elem2;</div><div class='ctx'>     }</div><div class='ctx'>     if (elem1-&gt;next) {</div><div class='del'>-	elem1-&gt;next-&gt;prev = elem2;</div><div class='add'>+        elem1-&gt;next-&gt;prev = elem2;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -948,7 +1099,7 @@ ELEM_REMOVE(LINK_ELEMENT *elem)</div><div class='ctx'> {</div><div class='ctx'>     elem-&gt;prev-&gt;next = elem-&gt;next;</div><div class='ctx'>     if (elem-&gt;next) {</div><div class='del'>-	elem-&gt;next-&gt;prev = elem-&gt;prev;</div><div class='add'>+        elem-&gt;next-&gt;prev = elem-&gt;prev;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -965,29 +1116,16 @@ LAST_ELEMENT(LINK_ANCHOR *const anchor)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static LINK_ELEMENT *</div><div class='del'>-POP_ELEMENT(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor)</div><div class='del'>-{</div><div class='del'>-    LINK_ELEMENT *elem = anchor-&gt;last;</div><div class='del'>-    anchor-&gt;last = anchor-&gt;last-&gt;prev;</div><div class='del'>-    anchor-&gt;last-&gt;next = 0;</div><div class='del'>-    verify_list("pop", anchor);</div><div class='del'>-    return elem;</div><div class='del'>-}</div><div class='del'>-#if CPDEBUG &lt; 0</div><div class='del'>-#define POP_ELEMENT(anchor) POP_ELEMENT(iseq, (anchor))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static LINK_ELEMENT *</div><div class='ctx'> ELEM_FIRST_INSN(LINK_ELEMENT *elem)</div><div class='ctx'> {</div><div class='ctx'>     while (elem) {</div><div class='del'>-	switch (elem-&gt;type) {</div><div class='del'>-	  case ISEQ_ELEMENT_INSN:</div><div class='del'>-	  case ISEQ_ELEMENT_ADJUST:</div><div class='del'>-	    return elem;</div><div class='del'>-	  default:</div><div class='del'>-	    elem = elem-&gt;next;</div><div class='del'>-	}</div><div class='add'>+        switch (elem-&gt;type) {</div><div class='add'>+          case ISEQ_ELEMENT_INSN:</div><div class='add'>+          case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+            return elem;</div><div class='add'>+          default:</div><div class='add'>+            elem = elem-&gt;next;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return NULL;</div><div class='ctx'> }</div><div class='hunk'>@@ -997,11 +1135,11 @@ LIST_INSN_SIZE_ONE(const LINK_ANCHOR *const anchor)</div><div class='ctx'> {</div><div class='ctx'>     LINK_ELEMENT *first_insn = ELEM_FIRST_INSN(FIRST_ELEMENT(anchor));</div><div class='ctx'>     if (first_insn != NULL &amp;&amp;</div><div class='del'>-	ELEM_FIRST_INSN(first_insn-&gt;next) == NULL) {</div><div class='del'>-	return TRUE;</div><div class='add'>+        ELEM_FIRST_INSN(first_insn-&gt;next) == NULL) {</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1009,10 +1147,10 @@ static int</div><div class='ctx'> LIST_INSN_SIZE_ZERO(const LINK_ANCHOR *const anchor)</div><div class='ctx'> {</div><div class='ctx'>     if (ELEM_FIRST_INSN(FIRST_ELEMENT(anchor)) == NULL) {</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1027,9 +1165,9 @@ static void</div><div class='ctx'> APPEND_LIST(ISEQ_ARG_DECLARE LINK_ANCHOR *const anc1, LINK_ANCHOR *const anc2)</div><div class='ctx'> {</div><div class='ctx'>     if (anc2-&gt;anchor.next) {</div><div class='del'>-	anc1-&gt;last-&gt;next = anc2-&gt;anchor.next;</div><div class='del'>-	anc2-&gt;anchor.next-&gt;prev = anc1-&gt;last;</div><div class='del'>-	anc1-&gt;last = anc2-&gt;last;</div><div class='add'>+        anc1-&gt;last-&gt;next = anc2-&gt;anchor.next;</div><div class='add'>+        anc2-&gt;anchor.next-&gt;prev = anc1-&gt;last;</div><div class='add'>+        anc1-&gt;last = anc2-&gt;last;</div><div class='ctx'>     }</div><div class='ctx'>     verify_list("append", anc1);</div><div class='ctx'> }</div><div class='hunk'>@@ -1037,58 +1175,29 @@ APPEND_LIST(ISEQ_ARG_DECLARE LINK_ANCHOR *const anc1, LINK_ANCHOR *const anc2)</div><div class='ctx'> #define APPEND_LIST(anc1, anc2) APPEND_LIST(iseq, (anc1), (anc2))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * anc1: e1, e2, e3</div><div class='del'>- * anc2: e4, e5</div><div class='del'>- *#=&gt;</div><div class='del'>- * anc1: e4, e5, e1, e2, e3</div><div class='del'>- * anc2: e4, e5 (broken)</div><div class='del'>- */</div><div class='del'>-static void</div><div class='del'>-INSERT_LIST(ISEQ_ARG_DECLARE LINK_ANCHOR *const anc1, LINK_ANCHOR *const anc2)</div><div class='del'>-{</div><div class='del'>-    if (anc2-&gt;anchor.next) {</div><div class='del'>-	LINK_ELEMENT *first = anc1-&gt;anchor.next;</div><div class='del'>-	anc1-&gt;anchor.next = anc2-&gt;anchor.next;</div><div class='del'>-	anc1-&gt;anchor.next-&gt;prev = &amp;anc1-&gt;anchor;</div><div class='del'>-	anc2-&gt;last-&gt;next = first;</div><div class='del'>-	if (first) {</div><div class='del'>-	    first-&gt;prev = anc2-&gt;last;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    anc1-&gt;last = anc2-&gt;last;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    verify_list("append", anc1);</div><div class='del'>-}</div><div class='del'>-#if CPDEBUG &lt; 0</div><div class='del'>-#define INSERT_LIST(anc1, anc2) INSERT_LIST(iseq, (anc1), (anc2))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #if CPDEBUG &amp;&amp; 0</div><div class='ctx'> static void</div><div class='del'>-debug_list(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor)</div><div class='add'>+debug_list(ISEQ_ARG_DECLARE LINK_ANCHOR *const anchor, LINK_ELEMENT *cur)</div><div class='ctx'> {</div><div class='ctx'>     LINK_ELEMENT *list = FIRST_ELEMENT(anchor);</div><div class='ctx'>     printf("----\n");</div><div class='del'>-    printf("anch: %p, frst: %p, last: %p\n", &amp;anchor-&gt;anchor,</div><div class='del'>-	   anchor-&gt;anchor.next, anchor-&gt;last);</div><div class='add'>+    printf("anch: %p, frst: %p, last: %p\n", (void *)&amp;anchor-&gt;anchor,</div><div class='add'>+           (void *)anchor-&gt;anchor.next, (void *)anchor-&gt;last);</div><div class='ctx'>     while (list) {</div><div class='del'>-	printf("curr: %p, next: %p, prev: %p, type: %d\n", list, list-&gt;next,</div><div class='del'>-	       list-&gt;prev, FIX2INT(list-&gt;type));</div><div class='del'>-	list = list-&gt;next;</div><div class='add'>+        printf("curr: %p, next: %p, prev: %p, type: %d\n", (void *)list, (void *)list-&gt;next,</div><div class='add'>+               (void *)list-&gt;prev, (int)list-&gt;type);</div><div class='add'>+        list = list-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'>     printf("----\n");</div><div class='ctx'> </div><div class='del'>-    dump_disasm_list(anchor-&gt;anchor.next);</div><div class='add'>+    dump_disasm_list_with_cursor(anchor-&gt;anchor.next, cur, 0);</div><div class='ctx'>     verify_list("debug list", anchor);</div><div class='ctx'> }</div><div class='ctx'> #if CPDEBUG &lt; 0</div><div class='del'>-#define debug_list(anc) debug_list(iseq, (anc))</div><div class='add'>+#define debug_list(anc, cur) debug_list(iseq, (anc), (cur))</div><div class='ctx'> #endif</div><div class='ctx'> #else</div><div class='del'>-#define debug_list(anc) ((void)0)</div><div class='add'>+#define debug_list(anc, cur) ((void)0)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static TRACE *</div><div class='hunk'>@@ -1134,131 +1243,161 @@ new_adjust_body(rb_iseq_t *iseq, LABEL *label, int line)</div><div class='ctx'>     return adjust;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+iseq_insn_each_markable_object(INSN *insn, void (*func)(VALUE *, VALUE), VALUE data)</div><div class='add'>+{</div><div class='add'>+    const char *types = insn_op_types(insn-&gt;insn_id);</div><div class='add'>+    for (int j = 0; types[j]; j++) {</div><div class='add'>+        char type = types[j];</div><div class='add'>+        switch (type) {</div><div class='add'>+          case TS_CDHASH:</div><div class='add'>+          case TS_ISEQ:</div><div class='add'>+          case TS_VALUE:</div><div class='add'>+          case TS_IC: // constant path array</div><div class='add'>+          case TS_CALLDATA: // ci is stored.</div><div class='add'>+            func(&amp;OPERAND_AT(insn, j), data);</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+iseq_insn_each_object_write_barrier(VALUE *obj_ptr, VALUE iseq)</div><div class='add'>+{</div><div class='add'>+    RB_OBJ_WRITTEN(iseq, Qundef, *obj_ptr);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static INSN *</div><div class='del'>-new_insn_core(rb_iseq_t *iseq, int line_no,</div><div class='del'>-	      int insn_id, int argc, VALUE *argv)</div><div class='add'>+new_insn_core(rb_iseq_t *iseq, const NODE *line_node,</div><div class='add'>+              int insn_id, int argc, VALUE *argv)</div><div class='ctx'> {</div><div class='ctx'>     INSN *iobj = compile_data_alloc_insn(iseq);</div><div class='ctx'> </div><div class='del'>-    /* printf("insn_id: %d, line: %d\n", insn_id, line_no); */</div><div class='add'>+    /* printf("insn_id: %d, line: %d\n", insn_id, nd_line(line_node)); */</div><div class='ctx'> </div><div class='ctx'>     iobj-&gt;link.type = ISEQ_ELEMENT_INSN;</div><div class='ctx'>     iobj-&gt;link.next = 0;</div><div class='ctx'>     iobj-&gt;insn_id = insn_id;</div><div class='del'>-    iobj-&gt;insn_info.line_no = line_no;</div><div class='add'>+    iobj-&gt;insn_info.line_no = nd_line(line_node);</div><div class='add'>+    iobj-&gt;insn_info.node_id = nd_node_id(line_node);</div><div class='ctx'>     iobj-&gt;insn_info.events = 0;</div><div class='ctx'>     iobj-&gt;operands = argv;</div><div class='ctx'>     iobj-&gt;operand_size = argc;</div><div class='ctx'>     iobj-&gt;sc_state = 0;</div><div class='add'>+</div><div class='add'>+    iseq_insn_each_markable_object(iobj, iseq_insn_each_object_write_barrier, (VALUE)iseq);</div><div class='add'>+</div><div class='ctx'>     return iobj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static INSN *</div><div class='del'>-new_insn_body(rb_iseq_t *iseq, int line_no, enum ruby_vminsn_type insn_id, int argc, ...)</div><div class='add'>+new_insn_body(rb_iseq_t *iseq, const NODE *const line_node, enum ruby_vminsn_type insn_id, int argc, ...)</div><div class='ctx'> {</div><div class='ctx'>     VALUE *operands = 0;</div><div class='ctx'>     va_list argv;</div><div class='ctx'>     if (argc &gt; 0) {</div><div class='del'>-	int i;</div><div class='del'>-	va_init_list(argv, argc);</div><div class='del'>-	operands = (VALUE *)compile_data_alloc(iseq, sizeof(VALUE) * argc);</div><div class='del'>-	for (i = 0; i &lt; argc; i++) {</div><div class='del'>-	    VALUE v = va_arg(argv, VALUE);</div><div class='del'>-	    operands[i] = v;</div><div class='del'>-	}</div><div class='del'>-	va_end(argv);</div><div class='add'>+        int i;</div><div class='add'>+        va_start(argv, argc);</div><div class='add'>+        operands = compile_data_alloc2(iseq, sizeof(VALUE), argc);</div><div class='add'>+        for (i = 0; i &lt; argc; i++) {</div><div class='add'>+            VALUE v = va_arg(argv, VALUE);</div><div class='add'>+            operands[i] = v;</div><div class='add'>+        }</div><div class='add'>+        va_end(argv);</div><div class='ctx'>     }</div><div class='del'>-    return new_insn_core(iseq, line_no, insn_id, argc, operands);</div><div class='add'>+    return new_insn_core(iseq, line_node, insn_id, argc, operands);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static struct rb_call_info *</div><div class='del'>-new_callinfo(rb_iseq_t *iseq, ID mid, int argc, unsigned int flag, struct rb_call_info_kw_arg *kw_arg, int has_blockiseq)</div><div class='add'>+static const struct rb_callinfo *</div><div class='add'>+new_callinfo(rb_iseq_t *iseq, ID mid, int argc, unsigned int flag, struct rb_callinfo_kwarg *kw_arg, int has_blockiseq)</div><div class='ctx'> {</div><div class='del'>-    size_t size = kw_arg != NULL ? sizeof(struct rb_call_info_with_kwarg) : sizeof(struct rb_call_info);</div><div class='del'>-    struct rb_call_info *ci = (struct rb_call_info *)compile_data_alloc(iseq, size);</div><div class='del'>-    struct rb_call_info_with_kwarg *ci_kw = (struct rb_call_info_with_kwarg *)ci;</div><div class='add'>+    VM_ASSERT(argc &gt;= 0);</div><div class='ctx'> </div><div class='del'>-    ci-&gt;mid = mid;</div><div class='del'>-    ci-&gt;flag = flag;</div><div class='del'>-    ci-&gt;orig_argc = argc;</div><div class='add'>+    if (!(flag &amp; (VM_CALL_ARGS_SPLAT | VM_CALL_ARGS_BLOCKARG | VM_CALL_KW_SPLAT)) &amp;&amp;</div><div class='add'>+        kw_arg == NULL &amp;&amp; !has_blockiseq) {</div><div class='add'>+        flag |= VM_CALL_ARGS_SIMPLE;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (kw_arg) {</div><div class='del'>-	ci-&gt;flag |= VM_CALL_KWARG;</div><div class='del'>-	ci_kw-&gt;kw_arg = kw_arg;</div><div class='del'>-	ci-&gt;orig_argc += kw_arg-&gt;keyword_len;</div><div class='del'>-	iseq-&gt;body-&gt;ci_kw_size++;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	iseq-&gt;body-&gt;ci_size++;</div><div class='add'>+        flag |= VM_CALL_KWARG;</div><div class='add'>+        argc += kw_arg-&gt;keyword_len;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (!(ci-&gt;flag &amp; (VM_CALL_ARGS_SPLAT | VM_CALL_ARGS_BLOCKARG | VM_CALL_KW_SPLAT)) &amp;&amp;</div><div class='del'>-	kw_arg == NULL &amp;&amp; !has_blockiseq) {</div><div class='del'>-	ci-&gt;flag |= VM_CALL_ARGS_SIMPLE;</div><div class='del'>-    }</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;ci_size++;</div><div class='add'>+    const struct rb_callinfo *ci = vm_ci_new(mid, flag, argc, kw_arg);</div><div class='add'>+    RB_OBJ_WRITTEN(iseq, Qundef, ci);</div><div class='ctx'>     return ci;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static INSN *</div><div class='del'>-new_insn_send(rb_iseq_t *iseq, int line_no, ID id, VALUE argc, const rb_iseq_t *blockiseq, VALUE flag, struct rb_call_info_kw_arg *keywords)</div><div class='add'>+new_insn_send(rb_iseq_t *iseq, const NODE *const line_node, ID id, VALUE argc, const rb_iseq_t *blockiseq, VALUE flag, struct rb_callinfo_kwarg *keywords)</div><div class='ctx'> {</div><div class='del'>-    VALUE *operands = (VALUE *)compile_data_alloc(iseq, sizeof(VALUE) * 3);</div><div class='del'>-    operands[0] = (VALUE)new_callinfo(iseq, id, FIX2INT(argc), FIX2INT(flag), keywords, blockiseq != NULL);</div><div class='del'>-    operands[1] = Qfalse; /* cache */</div><div class='del'>-    operands[2] = (VALUE)blockiseq;</div><div class='del'>-    return new_insn_core(iseq, line_no, BIN(send), 3, operands);</div><div class='add'>+    VALUE *operands = compile_data_calloc2(iseq, sizeof(VALUE), 2);</div><div class='add'>+    VALUE ci = (VALUE)new_callinfo(iseq, id, FIX2INT(argc), FIX2INT(flag), keywords, blockiseq != NULL);</div><div class='add'>+    operands[0] = ci;</div><div class='add'>+    operands[1] = (VALUE)blockiseq;</div><div class='add'>+    if (blockiseq) {</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, blockiseq);</div><div class='add'>+    }</div><div class='add'>+    INSN *insn = new_insn_core(iseq, line_node, BIN(send), 2, operands);</div><div class='add'>+    RB_OBJ_WRITTEN(iseq, Qundef, ci);</div><div class='add'>+    RB_GC_GUARD(ci);</div><div class='add'>+    return insn;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static rb_iseq_t *</div><div class='ctx'> new_child_iseq(rb_iseq_t *iseq, const NODE *const node,</div><div class='del'>-	       VALUE name, const rb_iseq_t *parent, enum iseq_type type, int line_no)</div><div class='add'>+               VALUE name, const rb_iseq_t *parent, enum rb_iseq_type type, int line_no)</div><div class='ctx'> {</div><div class='ctx'>     rb_iseq_t *ret_iseq;</div><div class='ctx'>     rb_ast_body_t ast;</div><div class='ctx'> </div><div class='ctx'>     ast.root = node;</div><div class='ctx'>     ast.compile_option = 0;</div><div class='del'>-    ast.line_count = -1;</div><div class='add'>+    ast.script_lines = ISEQ_BODY(iseq)-&gt;variable.script_lines;</div><div class='ctx'> </div><div class='ctx'>     debugs("[new_child_iseq]&gt; ---------------------------------------\n");</div><div class='add'>+    int isolated_depth = ISEQ_COMPILE_DATA(iseq)-&gt;isolated_depth;</div><div class='ctx'>     ret_iseq = rb_iseq_new_with_opt(&amp;ast, name,</div><div class='del'>-				    rb_iseq_path(iseq), rb_iseq_realpath(iseq),</div><div class='del'>-				    INT2FIX(line_no), parent, type, ISEQ_COMPILE_DATA(iseq)-&gt;option);</div><div class='add'>+                                    rb_iseq_path(iseq), rb_iseq_realpath(iseq),</div><div class='add'>+                                    line_no, parent,</div><div class='add'>+                                    isolated_depth ? isolated_depth + 1 : 0,</div><div class='add'>+                                    type, ISEQ_COMPILE_DATA(iseq)-&gt;option);</div><div class='ctx'>     debugs("[new_child_iseq]&lt; ---------------------------------------\n");</div><div class='del'>-    iseq_add_mark_object_compile_time(iseq, (VALUE)ret_iseq);</div><div class='ctx'>     return ret_iseq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static rb_iseq_t *</div><div class='del'>-new_child_iseq_ifunc(rb_iseq_t *iseq, const struct vm_ifunc *ifunc,</div><div class='del'>-		     VALUE name, const rb_iseq_t *parent, enum iseq_type type, int line_no)</div><div class='add'>+new_child_iseq_with_callback(rb_iseq_t *iseq, const struct rb_iseq_new_with_callback_callback_func *ifunc,</div><div class='add'>+                     VALUE name, const rb_iseq_t *parent, enum rb_iseq_type type, int line_no)</div><div class='ctx'> {</div><div class='ctx'>     rb_iseq_t *ret_iseq;</div><div class='ctx'> </div><div class='del'>-    debugs("[new_child_iseq_ifunc]&gt; ---------------------------------------\n");</div><div class='del'>-    ret_iseq = rb_iseq_new_ifunc(ifunc, name,</div><div class='del'>-				 rb_iseq_path(iseq), rb_iseq_realpath(iseq),</div><div class='del'>-				 INT2FIX(line_no), parent, type, ISEQ_COMPILE_DATA(iseq)-&gt;option);</div><div class='del'>-    debugs("[new_child_iseq_ifunc]&lt; ---------------------------------------\n");</div><div class='del'>-    iseq_add_mark_object_compile_time(iseq, (VALUE)ret_iseq);</div><div class='add'>+    debugs("[new_child_iseq_with_callback]&gt; ---------------------------------------\n");</div><div class='add'>+    ret_iseq = rb_iseq_new_with_callback(ifunc, name,</div><div class='add'>+                                 rb_iseq_path(iseq), rb_iseq_realpath(iseq),</div><div class='add'>+                                 line_no, parent, type, ISEQ_COMPILE_DATA(iseq)-&gt;option);</div><div class='add'>+    debugs("[new_child_iseq_with_callback]&lt; ---------------------------------------\n");</div><div class='ctx'>     return ret_iseq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> set_catch_except_p(struct rb_iseq_constant_body *body)</div><div class='ctx'> {</div><div class='del'>-    body-&gt;catch_except_p = TRUE;</div><div class='add'>+    body-&gt;catch_except_p = true;</div><div class='ctx'>     if (body-&gt;parent_iseq != NULL) {</div><div class='del'>-        set_catch_except_p(body-&gt;parent_iseq-&gt;body);</div><div class='add'>+        set_catch_except_p(ISEQ_BODY(body-&gt;parent_iseq));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* Set body-&gt;catch_except_p to TRUE if the ISeq may catch an exception. If it is FALSE,</div><div class='del'>-   JIT-ed code may be optimized.  If we are extremely conservative, we should set TRUE</div><div class='add'>+/* Set body-&gt;catch_except_p to true if the ISeq may catch an exception. If it is false,</div><div class='add'>+   JIT-ed code may be optimized.  If we are extremely conservative, we should set true</div><div class='ctx'>    if catch table exists.  But we want to optimize while loop, which always has catch</div><div class='ctx'>    table entries for break/next/redo.</div><div class='ctx'> </div><div class='del'>-   So this function sets TRUE for limited ISeqs with break/next/redo catch table entries</div><div class='add'>+   So this function sets true for limited ISeqs with break/next/redo catch table entries</div><div class='ctx'>    whose child ISeq would really raise an exception. */</div><div class='ctx'> static void</div><div class='ctx'> update_catch_except_flags(struct rb_iseq_constant_body *body)</div><div class='hunk'>@@ -1272,11 +1411,7 @@ update_catch_except_flags(struct rb_iseq_constant_body *body)</div><div class='ctx'>        BREAK/NEXT/REDO catch table entries are used only when `throw` insn is used in the block. */</div><div class='ctx'>     pos = 0;</div><div class='ctx'>     while (pos &lt; body-&gt;iseq_size) {</div><div class='del'>-#if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE</div><div class='del'>-        insn = rb_vm_insn_addr2insn((void *)body-&gt;iseq_encoded[pos]);</div><div class='del'>-#else</div><div class='del'>-        insn = (int)body-&gt;iseq_encoded[pos];</div><div class='del'>-#endif</div><div class='add'>+        insn = rb_vm_insn_decode(body-&gt;iseq_encoded[pos]);</div><div class='ctx'>         if (insn == BIN(throw)) {</div><div class='ctx'>             set_catch_except_p(body);</div><div class='ctx'>             break;</div><div class='hunk'>@@ -1288,11 +1423,12 @@ update_catch_except_flags(struct rb_iseq_constant_body *body)</div><div class='ctx'>         return;</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; ct-&gt;size; i++) {</div><div class='del'>-        const struct iseq_catch_table_entry *entry = &amp;ct-&gt;entries[i];</div><div class='add'>+        const struct iseq_catch_table_entry *entry =</div><div class='add'>+            UNALIGNED_MEMBER_PTR(ct, entries[i]);</div><div class='ctx'>         if (entry-&gt;type != CATCH_TYPE_BREAK</div><div class='ctx'>             &amp;&amp; entry-&gt;type != CATCH_TYPE_NEXT</div><div class='ctx'>             &amp;&amp; entry-&gt;type != CATCH_TYPE_REDO) {</div><div class='del'>-            body-&gt;catch_except_p = TRUE;</div><div class='add'>+            body-&gt;catch_except_p = true;</div><div class='ctx'>             break;</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='hunk'>@@ -1302,6 +1438,7 @@ static void</div><div class='ctx'> iseq_insert_nop_between_end_and_cont(rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     VALUE catch_table_ary = ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary;</div><div class='add'>+    if (NIL_P(catch_table_ary)) return;</div><div class='ctx'>     unsigned int i, tlen = (unsigned int)RARRAY_LEN(catch_table_ary);</div><div class='ctx'>     const VALUE *tptr = RARRAY_CONST_PTR_TRANSIENT(catch_table_ary);</div><div class='ctx'>     for (i = 0; i &lt; tlen; i++) {</div><div class='hunk'>@@ -1309,11 +1446,20 @@ iseq_insert_nop_between_end_and_cont(rb_iseq_t *iseq)</div><div class='ctx'>         LINK_ELEMENT *end = (LINK_ELEMENT *)(ptr[2] &amp; ~1);</div><div class='ctx'>         LINK_ELEMENT *cont = (LINK_ELEMENT *)(ptr[4] &amp; ~1);</div><div class='ctx'>         LINK_ELEMENT *e;</div><div class='del'>-        for (e = end; e &amp;&amp; (IS_LABEL(e) || IS_TRACE(e)); e = e-&gt;next) {</div><div class='del'>-            if (e == cont) {</div><div class='del'>-                INSN *nop = new_insn_core(iseq, 0, BIN(nop), 0, 0);</div><div class='del'>-                ELEM_INSERT_NEXT(end, &amp;nop-&gt;link);</div><div class='del'>-                break;</div><div class='add'>+</div><div class='add'>+        enum rb_catch_type ct = (enum rb_catch_type)(ptr[0] &amp; 0xffff);</div><div class='add'>+</div><div class='add'>+        if (ct != CATCH_TYPE_BREAK</div><div class='add'>+            &amp;&amp; ct != CATCH_TYPE_NEXT</div><div class='add'>+            &amp;&amp; ct != CATCH_TYPE_REDO) {</div><div class='add'>+</div><div class='add'>+            for (e = end; e &amp;&amp; (IS_LABEL(e) || IS_TRACE(e)); e = e-&gt;next) {</div><div class='add'>+                if (e == cont) {</div><div class='add'>+                    NODE dummy_line_node = generate_dummy_line_node(0, -1);</div><div class='add'>+                    INSN *nop = new_insn_core(iseq, &amp;dummy_line_node, BIN(nop), 0, 0);</div><div class='add'>+                    ELEM_INSERT_NEXT(end, &amp;nop-&gt;link);</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='hunk'>@@ -1323,35 +1469,37 @@ static int</div><div class='ctx'> iseq_setup_insn(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(ISEQ_COMPILE_DATA(iseq)-&gt;err_info))</div><div class='del'>-	return COMPILE_NG;</div><div class='add'>+        return COMPILE_NG;</div><div class='ctx'> </div><div class='ctx'>     /* debugs("[compile step 2] (iseq_array_to_linkedlist)\n"); */</div><div class='ctx'> </div><div class='ctx'>     if (compile_debug &gt; 5)</div><div class='del'>-	dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='add'>+        dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='ctx'> </div><div class='ctx'>     debugs("[compile step 3.1 (iseq_optimize)]\n");</div><div class='ctx'>     iseq_optimize(iseq, anchor);</div><div class='ctx'> </div><div class='ctx'>     if (compile_debug &gt; 5)</div><div class='del'>-	dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='add'>+        dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='ctx'> </div><div class='ctx'>     if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;instructions_unification) {</div><div class='del'>-	debugs("[compile step 3.2 (iseq_insns_unification)]\n");</div><div class='del'>-	iseq_insns_unification(iseq, anchor);</div><div class='del'>-	if (compile_debug &gt; 5)</div><div class='del'>-	    dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='add'>+        debugs("[compile step 3.2 (iseq_insns_unification)]\n");</div><div class='add'>+        iseq_insns_unification(iseq, anchor);</div><div class='add'>+        if (compile_debug &gt; 5)</div><div class='add'>+            dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;stack_caching) {</div><div class='del'>-	debugs("[compile step 3.3 (iseq_set_sequence_stackcaching)]\n");</div><div class='del'>-	iseq_set_sequence_stackcaching(iseq, anchor);</div><div class='del'>-	if (compile_debug &gt; 5)</div><div class='del'>-	    dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='add'>+        debugs("[compile step 3.3 (iseq_set_sequence_stackcaching)]\n");</div><div class='add'>+        iseq_set_sequence_stackcaching(iseq, anchor);</div><div class='add'>+        if (compile_debug &gt; 5)</div><div class='add'>+            dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     debugs("[compile step 3.4 (iseq_insert_nop_between_end_and_cont)]\n");</div><div class='ctx'>     iseq_insert_nop_between_end_and_cont(iseq);</div><div class='add'>+    if (compile_debug &gt; 5)</div><div class='add'>+        dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='ctx'> </div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -1365,7 +1513,7 @@ iseq_setup(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'>     debugs("[compile step 4.1 (iseq_set_sequence)]\n");</div><div class='ctx'>     if (!iseq_set_sequence(iseq, anchor)) return COMPILE_NG;</div><div class='ctx'>     if (compile_debug &gt; 5)</div><div class='del'>-	dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='add'>+        dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='ctx'> </div><div class='ctx'>     debugs("[compile step 4.2 (iseq_set_exception_table)]\n");</div><div class='ctx'>     if (!iseq_set_exception_table(iseq)) return COMPILE_NG;</div><div class='hunk'>@@ -1376,12 +1524,27 @@ iseq_setup(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'>     debugs("[compile step 5 (iseq_translate_threaded_code)] \n");</div><div class='ctx'>     if (!rb_iseq_translate_threaded_code(iseq)) return COMPILE_NG;</div><div class='ctx'> </div><div class='del'>-    update_catch_except_flags(iseq-&gt;body);</div><div class='add'>+    debugs("[compile step 6 (update_catch_except_flags)] \n");</div><div class='add'>+    update_catch_except_flags(ISEQ_BODY(iseq));</div><div class='add'>+</div><div class='add'>+    debugs("[compile step 6.1 (remove unused catch tables)] \n");</div><div class='add'>+    if (!ISEQ_BODY(iseq)-&gt;catch_except_p &amp;&amp; ISEQ_BODY(iseq)-&gt;catch_table) {</div><div class='add'>+        xfree(ISEQ_BODY(iseq)-&gt;catch_table);</div><div class='add'>+        ISEQ_BODY(iseq)-&gt;catch_table = NULL;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#if VM_INSN_INFO_TABLE_IMPL == 2</div><div class='add'>+    if (ISEQ_BODY(iseq)-&gt;insns_info.succ_index_table == NULL) {</div><div class='add'>+        debugs("[compile step 7 (rb_iseq_insns_info_encode_positions)] \n");</div><div class='add'>+        rb_iseq_insns_info_encode_positions(iseq);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     if (compile_debug &gt; 1) {</div><div class='del'>-	VALUE str = rb_iseq_disasm(iseq);</div><div class='del'>-	printf("%s\n", StringValueCStr(str));</div><div class='add'>+        VALUE str = rb_iseq_disasm(iseq);</div><div class='add'>+        printf("%s\n", StringValueCStr(str));</div><div class='ctx'>     }</div><div class='add'>+    verify_call_cache(iseq);</div><div class='ctx'>     debugs("[compile step: finish]\n");</div><div class='ctx'> </div><div class='ctx'>     return COMPILE_OK;</div><div class='hunk'>@@ -1390,16 +1553,8 @@ iseq_setup(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'> static int</div><div class='ctx'> iseq_set_exception_local_table(rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    /* TODO: every id table is same -&gt; share it.</div><div class='del'>-     * Current problem is iseq_free().</div><div class='del'>-     */</div><div class='del'>-    ID id_dollar_bang;</div><div class='del'>-    ID *ids = (ID *)ALLOC_N(ID, 1);</div><div class='del'>-</div><div class='del'>-    CONST_ID(id_dollar_bang, "#$!");</div><div class='del'>-    iseq-&gt;body-&gt;local_table_size = 1;</div><div class='del'>-    ids[0] = id_dollar_bang;</div><div class='del'>-    iseq-&gt;body-&gt;local_table = ids;</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;local_table_size = numberof(rb_iseq_shared_exc_local_tbl);</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;local_table = rb_iseq_shared_exc_local_tbl;</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1407,9 +1562,9 @@ static int</div><div class='ctx'> get_lvar_level(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     int lev = 0;</div><div class='del'>-    while (iseq != iseq-&gt;body-&gt;local_iseq) {</div><div class='del'>-	lev++;</div><div class='del'>-	iseq = iseq-&gt;body-&gt;parent_iseq;</div><div class='add'>+    while (iseq != ISEQ_BODY(iseq)-&gt;local_iseq) {</div><div class='add'>+        lev++;</div><div class='add'>+        iseq = ISEQ_BODY(iseq)-&gt;parent_iseq;</div><div class='ctx'>     }</div><div class='ctx'>     return lev;</div><div class='ctx'> }</div><div class='hunk'>@@ -1419,10 +1574,10 @@ get_dyna_var_idx_at_raw(const rb_iseq_t *iseq, ID id)</div><div class='ctx'> {</div><div class='ctx'>     unsigned int i;</div><div class='ctx'> </div><div class='del'>-    for (i = 0; i &lt; iseq-&gt;body-&gt;local_table_size; i++) {</div><div class='del'>-	if (iseq-&gt;body-&gt;local_table[i] == id) {</div><div class='del'>-	    return (int)i;</div><div class='del'>-	}</div><div class='add'>+    for (i = 0; i &lt; ISEQ_BODY(iseq)-&gt;local_table_size; i++) {</div><div class='add'>+        if (ISEQ_BODY(iseq)-&gt;local_table[i] == id) {</div><div class='add'>+            return (int)i;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return -1;</div><div class='ctx'> }</div><div class='hunk'>@@ -1430,7 +1585,7 @@ get_dyna_var_idx_at_raw(const rb_iseq_t *iseq, ID id)</div><div class='ctx'> static int</div><div class='ctx'> get_local_var_idx(const rb_iseq_t *iseq, ID id)</div><div class='ctx'> {</div><div class='del'>-    int idx = get_dyna_var_idx_at_raw(iseq-&gt;body-&gt;local_iseq, id);</div><div class='add'>+    int idx = get_dyna_var_idx_at_raw(ISEQ_BODY(iseq)-&gt;local_iseq, id);</div><div class='ctx'> </div><div class='ctx'>     if (idx &lt; 0) {</div><div class='ctx'>         COMPILE_ERROR(iseq, ISEQ_LAST_LINE(iseq),</div><div class='hunk'>@@ -1447,12 +1602,12 @@ get_dyna_var_idx(const rb_iseq_t *iseq, ID id, int *level, int *ls)</div><div class='ctx'>     const rb_iseq_t *const topmost_iseq = iseq;</div><div class='ctx'> </div><div class='ctx'>     while (iseq) {</div><div class='del'>-	idx = get_dyna_var_idx_at_raw(iseq, id);</div><div class='del'>-	if (idx &gt;= 0) {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	iseq = iseq-&gt;body-&gt;parent_iseq;</div><div class='del'>-	lv++;</div><div class='add'>+        idx = get_dyna_var_idx_at_raw(iseq, id);</div><div class='add'>+        if (idx &gt;= 0) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        iseq = ISEQ_BODY(iseq)-&gt;parent_iseq;</div><div class='add'>+        lv++;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (idx &lt; 0) {</div><div class='hunk'>@@ -1461,7 +1616,7 @@ get_dyna_var_idx(const rb_iseq_t *iseq, ID id, int *level, int *ls)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     *level = lv;</div><div class='del'>-    *ls = iseq-&gt;body-&gt;local_table_size;</div><div class='add'>+    *ls = ISEQ_BODY(iseq)-&gt;local_table_size;</div><div class='ctx'>     return idx;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1470,17 +1625,17 @@ iseq_local_block_param_p(const rb_iseq_t *iseq, unsigned int idx, unsigned int l</div><div class='ctx'> {</div><div class='ctx'>     const struct rb_iseq_constant_body *body;</div><div class='ctx'>     while (level &gt; 0) {</div><div class='del'>-	iseq = iseq-&gt;body-&gt;parent_iseq;</div><div class='del'>-	level--;</div><div class='add'>+        iseq = ISEQ_BODY(iseq)-&gt;parent_iseq;</div><div class='add'>+        level--;</div><div class='ctx'>     }</div><div class='del'>-    body = iseq-&gt;body;</div><div class='add'>+    body = ISEQ_BODY(iseq);</div><div class='ctx'>     if (body-&gt;local_iseq == iseq &amp;&amp; /* local variables */</div><div class='del'>-	body-&gt;param.flags.has_block &amp;&amp;</div><div class='del'>-	body-&gt;local_table_size - body-&gt;param.block_start == idx) {</div><div class='del'>-	return TRUE;</div><div class='add'>+        body-&gt;param.flags.has_block &amp;&amp;</div><div class='add'>+        body-&gt;local_table_size - body-&gt;param.block_start == idx) {</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1490,35 +1645,84 @@ iseq_block_param_id_p(const rb_iseq_t *iseq, ID id, int *pidx, int *plevel)</div><div class='ctx'>     int level, ls;</div><div class='ctx'>     int idx = get_dyna_var_idx(iseq, id, &amp;level, &amp;ls);</div><div class='ctx'>     if (iseq_local_block_param_p(iseq, ls - idx, level)) {</div><div class='del'>-	*pidx = ls - idx;</div><div class='del'>-	*plevel = level;</div><div class='del'>-	return TRUE;</div><div class='add'>+        *pidx = ls - idx;</div><div class='add'>+        *plevel = level;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-iseq_add_getlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, int level)</div><div class='add'>+access_outer_variables(const rb_iseq_t *iseq, int level, ID id, bool write)</div><div class='add'>+{</div><div class='add'>+    int isolated_depth = ISEQ_COMPILE_DATA(iseq)-&gt;isolated_depth;</div><div class='add'>+</div><div class='add'>+    if (isolated_depth &amp;&amp; level &gt;= isolated_depth) {</div><div class='add'>+        if (id == rb_intern("yield")) {</div><div class='add'>+            COMPILE_ERROR(iseq, ISEQ_LAST_LINE(iseq), "can not yield from isolated Proc");</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            COMPILE_ERROR(iseq, ISEQ_LAST_LINE(iseq), "can not access variable `%s' from isolated Proc", rb_id2name(id));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    for (int i=0; i&lt;level; i++) {</div><div class='add'>+        VALUE val;</div><div class='add'>+        struct rb_id_table *ovs = ISEQ_BODY(iseq)-&gt;outer_variables;</div><div class='add'>+</div><div class='add'>+        if (!ovs) {</div><div class='add'>+            ovs = ISEQ_BODY(iseq)-&gt;outer_variables = rb_id_table_create(8);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (rb_id_table_lookup(ISEQ_BODY(iseq)-&gt;outer_variables, id, &amp;val)) {</div><div class='add'>+            if (write &amp;&amp; !val) {</div><div class='add'>+                rb_id_table_insert(ISEQ_BODY(iseq)-&gt;outer_variables, id, Qtrue);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_id_table_insert(ISEQ_BODY(iseq)-&gt;outer_variables, id, RBOOL(write));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        iseq = ISEQ_BODY(iseq)-&gt;parent_iseq;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ID</div><div class='add'>+iseq_lvar_id(const rb_iseq_t *iseq, int idx, int level)</div><div class='add'>+{</div><div class='add'>+    for (int i=0; i&lt;level; i++) {</div><div class='add'>+        iseq = ISEQ_BODY(iseq)-&gt;parent_iseq;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ID id = ISEQ_BODY(iseq)-&gt;local_table[ISEQ_BODY(iseq)-&gt;local_table_size - idx];</div><div class='add'>+    // fprintf(stderr, "idx:%d level:%d ID:%s\n", idx, level, rb_id2name(id));</div><div class='add'>+    return id;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+iseq_add_getlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, const NODE *const line_node, int idx, int level)</div><div class='ctx'> {</div><div class='ctx'>     if (iseq_local_block_param_p(iseq, idx, level)) {</div><div class='del'>-	ADD_INSN2(seq, line, getblockparam, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='add'>+        ADD_INSN2(seq, line_node, getblockparam, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ADD_INSN2(seq, line, getlocal, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='add'>+        ADD_INSN2(seq, line_node, getlocal, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='ctx'>     }</div><div class='add'>+    if (level &gt; 0) access_outer_variables(iseq, level, iseq_lvar_id(iseq, idx, level), Qfalse);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, int level)</div><div class='add'>+iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, const NODE *const line_node, int idx, int level)</div><div class='ctx'> {</div><div class='ctx'>     if (iseq_local_block_param_p(iseq, idx, level)) {</div><div class='del'>-	ADD_INSN2(seq, line, setblockparam, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='add'>+        ADD_INSN2(seq, line_node, setblockparam, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ADD_INSN2(seq, line, setlocal, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='add'>+        ADD_INSN2(seq, line_node, setlocal, INT2FIX((idx) + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='ctx'>     }</div><div class='add'>+    if (level &gt; 0) access_outer_variables(iseq, level, iseq_lvar_id(iseq, idx, level), Qtrue);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -1526,49 +1730,49 @@ iseq_add_setlocal(rb_iseq_t *iseq, LINK_ANCHOR *const seq, int line, int idx, in</div><div class='ctx'> static void</div><div class='ctx'> iseq_calc_param_size(rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     if (body-&gt;param.flags.has_opt ||</div><div class='del'>-	body-&gt;param.flags.has_post ||</div><div class='del'>-	body-&gt;param.flags.has_rest ||</div><div class='del'>-	body-&gt;param.flags.has_block ||</div><div class='del'>-	body-&gt;param.flags.has_kw ||</div><div class='del'>-	body-&gt;param.flags.has_kwrest) {</div><div class='del'>-</div><div class='del'>-	if (body-&gt;param.flags.has_block) {</div><div class='del'>-	    body-&gt;param.size = body-&gt;param.block_start + 1;</div><div class='del'>-	}</div><div class='del'>-	else if (body-&gt;param.flags.has_kwrest) {</div><div class='del'>-	    body-&gt;param.size = body-&gt;param.keyword-&gt;rest_start + 1;</div><div class='del'>-	}</div><div class='del'>-	else if (body-&gt;param.flags.has_kw) {</div><div class='del'>-	    body-&gt;param.size = body-&gt;param.keyword-&gt;bits_start + 1;</div><div class='del'>-	}</div><div class='del'>-	else if (body-&gt;param.flags.has_post) {</div><div class='del'>-	    body-&gt;param.size = body-&gt;param.post_start + body-&gt;param.post_num;</div><div class='del'>-	}</div><div class='del'>-	else if (body-&gt;param.flags.has_rest) {</div><div class='del'>-	    body-&gt;param.size = body-&gt;param.rest_start + 1;</div><div class='del'>-	}</div><div class='del'>-	else if (body-&gt;param.flags.has_opt) {</div><div class='del'>-	    body-&gt;param.size = body-&gt;param.lead_num + body-&gt;param.opt_num;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='add'>+        body-&gt;param.flags.has_post ||</div><div class='add'>+        body-&gt;param.flags.has_rest ||</div><div class='add'>+        body-&gt;param.flags.has_block ||</div><div class='add'>+        body-&gt;param.flags.has_kw ||</div><div class='add'>+        body-&gt;param.flags.has_kwrest) {</div><div class='add'>+</div><div class='add'>+        if (body-&gt;param.flags.has_block) {</div><div class='add'>+            body-&gt;param.size = body-&gt;param.block_start + 1;</div><div class='add'>+        }</div><div class='add'>+        else if (body-&gt;param.flags.has_kwrest) {</div><div class='add'>+            body-&gt;param.size = body-&gt;param.keyword-&gt;rest_start + 1;</div><div class='add'>+        }</div><div class='add'>+        else if (body-&gt;param.flags.has_kw) {</div><div class='add'>+            body-&gt;param.size = body-&gt;param.keyword-&gt;bits_start + 1;</div><div class='add'>+        }</div><div class='add'>+        else if (body-&gt;param.flags.has_post) {</div><div class='add'>+            body-&gt;param.size = body-&gt;param.post_start + body-&gt;param.post_num;</div><div class='add'>+        }</div><div class='add'>+        else if (body-&gt;param.flags.has_rest) {</div><div class='add'>+            body-&gt;param.size = body-&gt;param.rest_start + 1;</div><div class='add'>+        }</div><div class='add'>+        else if (body-&gt;param.flags.has_opt) {</div><div class='add'>+            body-&gt;param.size = body-&gt;param.lead_num + body-&gt;param.opt_num;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='ctx'>             UNREACHABLE;</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	body-&gt;param.size = body-&gt;param.lead_num;</div><div class='add'>+        body-&gt;param.size = body-&gt;param.lead_num;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> iseq_set_arguments_keywords(rb_iseq_t *iseq, LINK_ANCHOR *const optargs,</div><div class='del'>-			    const struct rb_args_info *args, int arg_size)</div><div class='add'>+                            const struct rb_args_info *args, int arg_size)</div><div class='ctx'> {</div><div class='ctx'>     const NODE *node = args-&gt;kw_args;</div><div class='del'>-    struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     struct rb_iseq_param_keyword *keyword;</div><div class='del'>-    const VALUE default_values = rb_ary_tmp_new(1);</div><div class='add'>+    const VALUE default_values = rb_ary_hidden_new(1);</div><div class='ctx'>     const VALUE complex_mark = rb_str_tmp_new(0);</div><div class='ctx'>     int kw = 0, rkw = 0, di = 0, i;</div><div class='ctx'> </div><div class='hunk'>@@ -1576,69 +1780,68 @@ iseq_set_arguments_keywords(rb_iseq_t *iseq, LINK_ANCHOR *const optargs,</div><div class='ctx'>     body-&gt;param.keyword = keyword = ZALLOC_N(struct rb_iseq_param_keyword, 1);</div><div class='ctx'> </div><div class='ctx'>     while (node) {</div><div class='del'>-	kw++;</div><div class='del'>-	node = node-&gt;nd_next;</div><div class='add'>+        kw++;</div><div class='add'>+        node = node-&gt;nd_next;</div><div class='ctx'>     }</div><div class='ctx'>     arg_size += kw;</div><div class='ctx'>     keyword-&gt;bits_start = arg_size++;</div><div class='ctx'> </div><div class='ctx'>     node = args-&gt;kw_args;</div><div class='ctx'>     while (node) {</div><div class='del'>-	const NODE *val_node = node-&gt;nd_body-&gt;nd_value;</div><div class='del'>-	VALUE dv;</div><div class='del'>-</div><div class='del'>-	if (val_node == (const NODE *)-1) {</div><div class='del'>-	    ++rkw;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    switch (nd_type(val_node)) {</div><div class='del'>-	      case NODE_LIT:</div><div class='del'>-		dv = val_node-&gt;nd_lit;</div><div class='del'>-		iseq_add_mark_object_compile_time(iseq, dv);</div><div class='del'>-		break;</div><div class='del'>-	      case NODE_NIL:</div><div class='del'>-		dv = Qnil;</div><div class='del'>-		break;</div><div class='del'>-	      case NODE_TRUE:</div><div class='del'>-		dv = Qtrue;</div><div class='del'>-		break;</div><div class='del'>-	      case NODE_FALSE:</div><div class='del'>-		dv = Qfalse;</div><div class='del'>-		break;</div><div class='del'>-	      default:</div><div class='del'>-		COMPILE_POPPED(optargs, "kwarg", node); /* nd_type(node) == NODE_KW_ARG */</div><div class='del'>-		dv = complex_mark;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    keyword-&gt;num = ++di;</div><div class='del'>-	    rb_ary_push(default_values, dv);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	node = node-&gt;nd_next;</div><div class='add'>+        const NODE *val_node = node-&gt;nd_body-&gt;nd_value;</div><div class='add'>+        VALUE dv;</div><div class='add'>+</div><div class='add'>+        if (val_node == NODE_SPECIAL_REQUIRED_KEYWORD) {</div><div class='add'>+            ++rkw;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            switch (nd_type(val_node)) {</div><div class='add'>+              case NODE_LIT:</div><div class='add'>+                dv = val_node-&gt;nd_lit;</div><div class='add'>+                break;</div><div class='add'>+              case NODE_NIL:</div><div class='add'>+                dv = Qnil;</div><div class='add'>+                break;</div><div class='add'>+              case NODE_TRUE:</div><div class='add'>+                dv = Qtrue;</div><div class='add'>+                break;</div><div class='add'>+              case NODE_FALSE:</div><div class='add'>+                dv = Qfalse;</div><div class='add'>+                break;</div><div class='add'>+              default:</div><div class='add'>+                NO_CHECK(COMPILE_POPPED(optargs, "kwarg", node)); /* nd_type_p(node, NODE_KW_ARG) */</div><div class='add'>+                dv = complex_mark;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            keyword-&gt;num = ++di;</div><div class='add'>+            rb_ary_push(default_values, dv);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        node = node-&gt;nd_next;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     keyword-&gt;num = kw;</div><div class='ctx'> </div><div class='ctx'>     if (args-&gt;kw_rest_arg-&gt;nd_vid != 0) {</div><div class='del'>-	keyword-&gt;rest_start = arg_size++;</div><div class='del'>-	body-&gt;param.flags.has_kwrest = TRUE;</div><div class='add'>+        keyword-&gt;rest_start = arg_size++;</div><div class='add'>+        body-&gt;param.flags.has_kwrest = TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     keyword-&gt;required_num = rkw;</div><div class='ctx'>     keyword-&gt;table = &amp;body-&gt;local_table[keyword-&gt;bits_start - keyword-&gt;num];</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE *dvs = ALLOC_N(VALUE, RARRAY_LEN(default_values));</div><div class='add'>+        VALUE *dvs = ALLOC_N(VALUE, RARRAY_LEN(default_values));</div><div class='ctx'> </div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(default_values); i++) {</div><div class='del'>-	    VALUE dv = RARRAY_AREF(default_values, i);</div><div class='del'>-	    if (dv == complex_mark) dv = Qundef;</div><div class='del'>-	    if (!SPECIAL_CONST_P(dv)) {</div><div class='del'>-		RB_OBJ_WRITTEN(iseq, Qundef, dv);</div><div class='del'>-	    }</div><div class='del'>-	    dvs[i] = dv;</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(default_values); i++) {</div><div class='add'>+            VALUE dv = RARRAY_AREF(default_values, i);</div><div class='add'>+            if (dv == complex_mark) dv = Qundef;</div><div class='add'>+            if (!SPECIAL_CONST_P(dv)) {</div><div class='add'>+                RB_OBJ_WRITTEN(iseq, Qundef, dv);</div><div class='add'>+            }</div><div class='add'>+            dvs[i] = dv;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	keyword-&gt;default_values = dvs;</div><div class='add'>+        keyword-&gt;default_values = dvs;</div><div class='ctx'>     }</div><div class='ctx'>     return arg_size;</div><div class='ctx'> }</div><div class='hunk'>@@ -1649,147 +1852,143 @@ iseq_set_arguments(rb_iseq_t *iseq, LINK_ANCHOR *const optargs, const NODE *cons</div><div class='ctx'>     debugs("iseq_set_arguments: %s\n", node_args ? "" : "0");</div><div class='ctx'> </div><div class='ctx'>     if (node_args) {</div><div class='del'>-	struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='del'>-	struct rb_args_info *args = node_args-&gt;nd_ainfo;</div><div class='del'>-	ID rest_id = 0;</div><div class='del'>-	int last_comma = 0;</div><div class='del'>-	ID block_id = 0;</div><div class='del'>-	int arg_size;</div><div class='del'>-</div><div class='del'>-	EXPECT_NODE("iseq_set_arguments", node_args, NODE_ARGS, COMPILE_NG);</div><div class='del'>-</div><div class='del'>-	body-&gt;param.lead_num = arg_size = (int)args-&gt;pre_args_num;</div><div class='del'>-	if (body-&gt;param.lead_num &gt; 0) body-&gt;param.flags.has_lead = TRUE;</div><div class='del'>-	debugs("  - argc: %d\n", body-&gt;param.lead_num);</div><div class='del'>-</div><div class='del'>-	rest_id = args-&gt;rest_arg;</div><div class='del'>-	if (rest_id == 1) {</div><div class='del'>-	    last_comma = 1;</div><div class='del'>-	    rest_id = 0;</div><div class='del'>-	}</div><div class='del'>-	block_id = args-&gt;block_arg;</div><div class='del'>-</div><div class='del'>-	if (args-&gt;opt_args) {</div><div class='del'>-	    const NODE *node = args-&gt;opt_args;</div><div class='del'>-	    LABEL *label;</div><div class='del'>-	    VALUE labels = rb_ary_tmp_new(1);</div><div class='del'>-	    VALUE *opt_table;</div><div class='del'>-	    int i = 0, j;</div><div class='del'>-</div><div class='del'>-	    while (node) {</div><div class='del'>-		label = NEW_LABEL(nd_line(node));</div><div class='del'>-		rb_ary_push(labels, (VALUE)label | 1);</div><div class='del'>-		ADD_LABEL(optargs, label);</div><div class='del'>-		COMPILE_POPPED(optargs, "optarg", node-&gt;nd_body);</div><div class='del'>-		node = node-&gt;nd_next;</div><div class='del'>-		i += 1;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    /* last label */</div><div class='del'>-	    label = NEW_LABEL(nd_line(node_args));</div><div class='del'>-	    rb_ary_push(labels, (VALUE)label | 1);</div><div class='del'>-	    ADD_LABEL(optargs, label);</div><div class='del'>-</div><div class='del'>-	    opt_table = ALLOC_N(VALUE, i+1);</div><div class='add'>+        struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='add'>+        struct rb_args_info *args = node_args-&gt;nd_ainfo;</div><div class='add'>+        ID rest_id = 0;</div><div class='add'>+        int last_comma = 0;</div><div class='add'>+        ID block_id = 0;</div><div class='add'>+        int arg_size;</div><div class='add'>+</div><div class='add'>+        EXPECT_NODE("iseq_set_arguments", node_args, NODE_ARGS, COMPILE_NG);</div><div class='add'>+</div><div class='add'>+        body-&gt;param.flags.ruby2_keywords = args-&gt;ruby2_keywords;</div><div class='add'>+        body-&gt;param.lead_num = arg_size = (int)args-&gt;pre_args_num;</div><div class='add'>+        if (body-&gt;param.lead_num &gt; 0) body-&gt;param.flags.has_lead = TRUE;</div><div class='add'>+        debugs("  - argc: %d\n", body-&gt;param.lead_num);</div><div class='add'>+</div><div class='add'>+        rest_id = args-&gt;rest_arg;</div><div class='add'>+        if (rest_id == NODE_SPECIAL_EXCESSIVE_COMMA) {</div><div class='add'>+            last_comma = 1;</div><div class='add'>+            rest_id = 0;</div><div class='add'>+        }</div><div class='add'>+        block_id = args-&gt;block_arg;</div><div class='add'>+</div><div class='add'>+        if (args-&gt;opt_args) {</div><div class='add'>+            const NODE *node = args-&gt;opt_args;</div><div class='add'>+            LABEL *label;</div><div class='add'>+            VALUE labels = rb_ary_hidden_new(1);</div><div class='add'>+            VALUE *opt_table;</div><div class='add'>+            int i = 0, j;</div><div class='add'>+</div><div class='add'>+            while (node) {</div><div class='add'>+                label = NEW_LABEL(nd_line(node));</div><div class='add'>+                rb_ary_push(labels, (VALUE)label | 1);</div><div class='add'>+                ADD_LABEL(optargs, label);</div><div class='add'>+                NO_CHECK(COMPILE_POPPED(optargs, "optarg", node-&gt;nd_body));</div><div class='add'>+                node = node-&gt;nd_next;</div><div class='add'>+                i += 1;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            /* last label */</div><div class='add'>+            label = NEW_LABEL(nd_line(node_args));</div><div class='add'>+            rb_ary_push(labels, (VALUE)label | 1);</div><div class='add'>+            ADD_LABEL(optargs, label);</div><div class='add'>+</div><div class='add'>+            opt_table = ALLOC_N(VALUE, i+1);</div><div class='ctx'> </div><div class='ctx'>             MEMCPY(opt_table, RARRAY_CONST_PTR_TRANSIENT(labels), VALUE, i+1);</div><div class='del'>-	    for (j = 0; j &lt; i+1; j++) {</div><div class='del'>-		opt_table[j] &amp;= ~1;</div><div class='del'>-	    }</div><div class='del'>-	    rb_ary_clear(labels);</div><div class='del'>-</div><div class='del'>-	    body-&gt;param.flags.has_opt = TRUE;</div><div class='del'>-	    body-&gt;param.opt_num = i;</div><div class='del'>-	    body-&gt;param.opt_table = opt_table;</div><div class='del'>-	    arg_size += i;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (rest_id) {</div><div class='del'>-	    body-&gt;param.rest_start = arg_size++;</div><div class='del'>-	    body-&gt;param.flags.has_rest = TRUE;</div><div class='del'>-	    assert(body-&gt;param.rest_start != -1);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (args-&gt;first_post_arg) {</div><div class='del'>-	    body-&gt;param.post_start = arg_size;</div><div class='del'>-	    body-&gt;param.post_num = args-&gt;post_args_num;</div><div class='del'>-	    body-&gt;param.flags.has_post = TRUE;</div><div class='del'>-	    arg_size += args-&gt;post_args_num;</div><div class='del'>-</div><div class='del'>-	    if (body-&gt;param.flags.has_rest) { /* TODO: why that? */</div><div class='del'>-		body-&gt;param.post_start = body-&gt;param.rest_start + 1;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (args-&gt;kw_args) {</div><div class='del'>-	    arg_size = iseq_set_arguments_keywords(iseq, optargs, args, arg_size);</div><div class='del'>-	}</div><div class='del'>-	else if (args-&gt;kw_rest_arg) {</div><div class='del'>-	    struct rb_iseq_param_keyword *keyword = ZALLOC_N(struct rb_iseq_param_keyword, 1);</div><div class='del'>-	    keyword-&gt;rest_start = arg_size++;</div><div class='del'>-	    body-&gt;param.keyword = keyword;</div><div class='del'>-	    body-&gt;param.flags.has_kwrest = TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (block_id) {</div><div class='del'>-	    body-&gt;param.block_start = arg_size++;</div><div class='del'>-	    body-&gt;param.flags.has_block = TRUE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	iseq_calc_param_size(iseq);</div><div class='del'>-	body-&gt;param.size = arg_size;</div><div class='del'>-</div><div class='del'>-	if (args-&gt;pre_init) { /* m_init */</div><div class='del'>-	    COMPILE_POPPED(optargs, "init arguments (m)", args-&gt;pre_init);</div><div class='del'>-	}</div><div class='del'>-	if (args-&gt;post_init) { /* p_init */</div><div class='del'>-	    COMPILE_POPPED(optargs, "init arguments (p)", args-&gt;post_init);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='del'>-	    if (body-&gt;param.flags.has_opt    == FALSE &amp;&amp;</div><div class='del'>-		body-&gt;param.flags.has_post   == FALSE &amp;&amp;</div><div class='del'>-		body-&gt;param.flags.has_rest   == FALSE &amp;&amp;</div><div class='del'>-		body-&gt;param.flags.has_kw     == FALSE &amp;&amp;</div><div class='del'>-		body-&gt;param.flags.has_kwrest == FALSE) {</div><div class='del'>-</div><div class='del'>-		if (body-&gt;param.lead_num == 1 &amp;&amp; last_comma == 0) {</div><div class='del'>-		    /* {|a|} */</div><div class='del'>-		    body-&gt;param.flags.ambiguous_param0 = TRUE;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+            for (j = 0; j &lt; i+1; j++) {</div><div class='add'>+                opt_table[j] &amp;= ~1;</div><div class='add'>+            }</div><div class='add'>+            rb_ary_clear(labels);</div><div class='add'>+</div><div class='add'>+            body-&gt;param.flags.has_opt = TRUE;</div><div class='add'>+            body-&gt;param.opt_num = i;</div><div class='add'>+            body-&gt;param.opt_table = opt_table;</div><div class='add'>+            arg_size += i;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (rest_id) {</div><div class='add'>+            body-&gt;param.rest_start = arg_size++;</div><div class='add'>+            body-&gt;param.flags.has_rest = TRUE;</div><div class='add'>+            assert(body-&gt;param.rest_start != -1);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (args-&gt;first_post_arg) {</div><div class='add'>+            body-&gt;param.post_start = arg_size;</div><div class='add'>+            body-&gt;param.post_num = args-&gt;post_args_num;</div><div class='add'>+            body-&gt;param.flags.has_post = TRUE;</div><div class='add'>+            arg_size += args-&gt;post_args_num;</div><div class='add'>+</div><div class='add'>+            if (body-&gt;param.flags.has_rest) { /* TODO: why that? */</div><div class='add'>+                body-&gt;param.post_start = body-&gt;param.rest_start + 1;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (args-&gt;kw_args) {</div><div class='add'>+            arg_size = iseq_set_arguments_keywords(iseq, optargs, args, arg_size);</div><div class='add'>+        }</div><div class='add'>+        else if (args-&gt;kw_rest_arg) {</div><div class='add'>+            struct rb_iseq_param_keyword *keyword = ZALLOC_N(struct rb_iseq_param_keyword, 1);</div><div class='add'>+            keyword-&gt;rest_start = arg_size++;</div><div class='add'>+            body-&gt;param.keyword = keyword;</div><div class='add'>+            body-&gt;param.flags.has_kwrest = TRUE;</div><div class='add'>+        }</div><div class='add'>+        else if (args-&gt;no_kwarg) {</div><div class='add'>+            body-&gt;param.flags.accepts_no_kwarg = TRUE;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (block_id) {</div><div class='add'>+            body-&gt;param.block_start = arg_size++;</div><div class='add'>+            body-&gt;param.flags.has_block = TRUE;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        iseq_calc_param_size(iseq);</div><div class='add'>+        body-&gt;param.size = arg_size;</div><div class='add'>+</div><div class='add'>+        if (args-&gt;pre_init) { /* m_init */</div><div class='add'>+            NO_CHECK(COMPILE_POPPED(optargs, "init arguments (m)", args-&gt;pre_init));</div><div class='add'>+        }</div><div class='add'>+        if (args-&gt;post_init) { /* p_init */</div><div class='add'>+            NO_CHECK(COMPILE_POPPED(optargs, "init arguments (p)", args-&gt;post_init));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+            if (body-&gt;param.flags.has_opt    == FALSE &amp;&amp;</div><div class='add'>+                body-&gt;param.flags.has_post   == FALSE &amp;&amp;</div><div class='add'>+                body-&gt;param.flags.has_rest   == FALSE &amp;&amp;</div><div class='add'>+                body-&gt;param.flags.has_kw     == FALSE &amp;&amp;</div><div class='add'>+                body-&gt;param.flags.has_kwrest == FALSE) {</div><div class='add'>+</div><div class='add'>+                if (body-&gt;param.lead_num == 1 &amp;&amp; last_comma == 0) {</div><div class='add'>+                    /* {|a|} */</div><div class='add'>+                    body-&gt;param.flags.ambiguous_param0 = TRUE;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-iseq_set_local_table(rb_iseq_t *iseq, const ID *tbl)</div><div class='add'>+iseq_set_local_table(rb_iseq_t *iseq, const rb_ast_id_table_t *tbl)</div><div class='ctx'> {</div><div class='del'>-    unsigned int size;</div><div class='del'>-</div><div class='del'>-    if (tbl) {</div><div class='del'>-	size = (unsigned int)*tbl;</div><div class='del'>-	tbl++;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	size = 0;</div><div class='del'>-    }</div><div class='add'>+    unsigned int size = tbl ? tbl-&gt;size : 0;</div><div class='ctx'> </div><div class='ctx'>     if (size &gt; 0) {</div><div class='del'>-	ID *ids = (ID *)ALLOC_N(ID, size);</div><div class='del'>-	MEMCPY(ids, tbl, ID, size);</div><div class='del'>-	iseq-&gt;body-&gt;local_table = ids;</div><div class='add'>+        ID *ids = (ID *)ALLOC_N(ID, size);</div><div class='add'>+        MEMCPY(ids, tbl-&gt;ids, ID, size);</div><div class='add'>+        ISEQ_BODY(iseq)-&gt;local_table = ids;</div><div class='ctx'>     }</div><div class='del'>-    iseq-&gt;body-&gt;local_table_size = size;</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;local_table_size = size;</div><div class='ctx'> </div><div class='del'>-    debugs("iseq_set_local_table: %u\n", iseq-&gt;body-&gt;local_table_size);</div><div class='add'>+    debugs("iseq_set_local_table: %u\n", ISEQ_BODY(iseq)-&gt;local_table_size);</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-cdhash_cmp(VALUE val, VALUE lit)</div><div class='add'>+int</div><div class='add'>+rb_iseq_cdhash_cmp(VALUE val, VALUE lit)</div><div class='ctx'> {</div><div class='ctx'>     int tval, tlit;</div><div class='ctx'> </div><div class='hunk'>@@ -1822,13 +2021,26 @@ cdhash_cmp(VALUE val, VALUE lit)</div><div class='ctx'>     else if (tlit == T_FLOAT) {</div><div class='ctx'>         return rb_float_cmp(lit, val);</div><div class='ctx'>     }</div><div class='add'>+    else if (tlit == T_RATIONAL) {</div><div class='add'>+        const struct RRational *rat1 = RRATIONAL(val);</div><div class='add'>+        const struct RRational *rat2 = RRATIONAL(lit);</div><div class='add'>+        return rb_iseq_cdhash_cmp(rat1-&gt;num, rat2-&gt;num) || rb_iseq_cdhash_cmp(rat1-&gt;den, rat2-&gt;den);</div><div class='add'>+    }</div><div class='add'>+    else if (tlit == T_COMPLEX) {</div><div class='add'>+        const struct RComplex *comp1 = RCOMPLEX(val);</div><div class='add'>+        const struct RComplex *comp2 = RCOMPLEX(lit);</div><div class='add'>+        return rb_iseq_cdhash_cmp(comp1-&gt;real, comp2-&gt;real) || rb_iseq_cdhash_cmp(comp1-&gt;imag, comp2-&gt;imag);</div><div class='add'>+    }</div><div class='add'>+    else if (tlit == T_REGEXP) {</div><div class='add'>+        return rb_reg_equal(val, lit) ? 0 : -1;</div><div class='add'>+    }</div><div class='ctx'>     else {</div><div class='ctx'>         UNREACHABLE_RETURN(-1);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static st_index_t</div><div class='del'>-cdhash_hash(VALUE a)</div><div class='add'>+st_index_t</div><div class='add'>+rb_iseq_cdhash_hash(VALUE a)</div><div class='ctx'> {</div><div class='ctx'>     switch (OBJ_BUILTIN_TYPE(a)) {</div><div class='ctx'>       case -1:</div><div class='hunk'>@@ -1840,14 +2052,20 @@ cdhash_hash(VALUE a)</div><div class='ctx'>         return FIX2LONG(rb_big_hash(a));</div><div class='ctx'>       case T_FLOAT:</div><div class='ctx'>         return rb_dbl_long_hash(RFLOAT_VALUE(a));</div><div class='add'>+      case T_RATIONAL:</div><div class='add'>+        return rb_rational_hash(a);</div><div class='add'>+      case T_COMPLEX:</div><div class='add'>+        return rb_complex_hash(a);</div><div class='add'>+      case T_REGEXP:</div><div class='add'>+        return NUM2LONG(rb_reg_hash(a));</div><div class='ctx'>       default:</div><div class='ctx'>         UNREACHABLE_RETURN(0);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const struct st_hash_type cdhash_type = {</div><div class='del'>-    cdhash_cmp,</div><div class='del'>-    cdhash_hash,</div><div class='add'>+    rb_iseq_cdhash_cmp,</div><div class='add'>+    rb_iseq_cdhash_hash,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> struct cdhash_set_label_struct {</div><div class='hunk'>@@ -1857,7 +2075,7 @@ struct cdhash_set_label_struct {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-cdhash_set_label_i(VALUE key, VALUE val, void *ptr)</div><div class='add'>+cdhash_set_label_i(VALUE key, VALUE val, VALUE ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct cdhash_set_label_struct *data = (struct cdhash_set_label_struct *)ptr;</div><div class='ctx'>     LABEL *lobj = (LABEL *)(val &amp; ~1);</div><div class='hunk'>@@ -1869,18 +2087,24 @@ cdhash_set_label_i(VALUE key, VALUE val, void *ptr)</div><div class='ctx'> static inline VALUE</div><div class='ctx'> get_ivar_ic_value(rb_iseq_t *iseq,ID id)</div><div class='ctx'> {</div><div class='add'>+    return INT2FIX(ISEQ_BODY(iseq)-&gt;ivc_size++);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+get_cvar_ic_value(rb_iseq_t *iseq,ID id)</div><div class='add'>+{</div><div class='ctx'>     VALUE val;</div><div class='ctx'>     struct rb_id_table *tbl = ISEQ_COMPILE_DATA(iseq)-&gt;ivar_cache_table;</div><div class='ctx'>     if (tbl) {</div><div class='del'>-	if (rb_id_table_lookup(tbl,id,&amp;val)) {</div><div class='del'>-	    return val;</div><div class='del'>-	}</div><div class='add'>+        if (rb_id_table_lookup(tbl,id,&amp;val)) {</div><div class='add'>+            return val;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	tbl = rb_id_table_create(1);</div><div class='del'>-	ISEQ_COMPILE_DATA(iseq)-&gt;ivar_cache_table = tbl;</div><div class='add'>+        tbl = rb_id_table_create(1);</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;ivar_cache_table = tbl;</div><div class='ctx'>     }</div><div class='del'>-    val = INT2FIX(iseq-&gt;body-&gt;is_size++);</div><div class='add'>+    val = INT2FIX(ISEQ_BODY(iseq)-&gt;icvarc_size++);</div><div class='ctx'>     rb_id_table_insert(tbl,id,val);</div><div class='ctx'>     return val;</div><div class='ctx'> }</div><div class='hunk'>@@ -1901,103 +2125,113 @@ fix_sp_depth(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'>     LINK_ELEMENT *list;</div><div class='ctx'> </div><div class='ctx'>     for (list = FIRST_ELEMENT(anchor); list; list = list-&gt;next) {</div><div class='del'>-	if (list-&gt;type == ISEQ_ELEMENT_LABEL) {</div><div class='del'>-	    LABEL *lobj = (LABEL *)list;</div><div class='del'>-	    lobj-&gt;set = TRUE;</div><div class='del'>-	}</div><div class='add'>+        if (IS_LABEL(list)) {</div><div class='add'>+            LABEL *lobj = (LABEL *)list;</div><div class='add'>+            lobj-&gt;set = TRUE;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     for (list = FIRST_ELEMENT(anchor); list; list = list-&gt;next) {</div><div class='del'>-	switch (list-&gt;type) {</div><div class='del'>-	  case ISEQ_ELEMENT_INSN:</div><div class='del'>-	    {</div><div class='del'>-		int j, len, insn;</div><div class='del'>-		const char *types;</div><div class='del'>-		VALUE *operands;</div><div class='del'>-		INSN *iobj = (INSN *)list;</div><div class='del'>-</div><div class='del'>-		/* update sp */</div><div class='del'>-		sp = calc_sp_depth(sp, iobj);</div><div class='del'>-		if (sp &lt; 0) {</div><div class='del'>-		    BADINSN_DUMP(anchor, list, NULL);</div><div class='del'>-		    COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='del'>-				  "argument stack underflow (%d)", sp);</div><div class='del'>-		    return -1;</div><div class='del'>-		}</div><div class='del'>-		if (sp &gt; stack_max) {</div><div class='del'>-		    stack_max = sp;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		line = iobj-&gt;insn_info.line_no;</div><div class='del'>-		/* fprintf(stderr, "insn: %-16s, sp: %d\n", insn_name(iobj-&gt;insn_id), sp); */</div><div class='del'>-		operands = iobj-&gt;operands;</div><div class='del'>-		insn = iobj-&gt;insn_id;</div><div class='del'>-		types = insn_op_types(insn);</div><div class='del'>-		len = insn_len(insn);</div><div class='del'>-</div><div class='del'>-		/* operand check */</div><div class='del'>-		if (iobj-&gt;operand_size != len - 1) {</div><div class='del'>-		    /* printf("operand size miss! (%d, %d)\n", iobj-&gt;operand_size, len); */</div><div class='del'>-		    BADINSN_DUMP(anchor, list, NULL);</div><div class='del'>-		    COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='del'>-				  "operand size miss! (%d for %d)",</div><div class='del'>-				  iobj-&gt;operand_size, len - 1);</div><div class='del'>-		    return -1;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		for (j = 0; types[j]; j++) {</div><div class='del'>-		    if (types[j] == TS_OFFSET) {</div><div class='del'>-			/* label(destination position) */</div><div class='del'>-			LABEL *lobj = (LABEL *)operands[j];</div><div class='del'>-			if (!lobj-&gt;set) {</div><div class='del'>-			    BADINSN_DUMP(anchor, list, NULL);</div><div class='del'>-			    COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='del'>-					  "unknown label: "LABEL_FORMAT, lobj-&gt;label_no);</div><div class='del'>-			    return -1;</div><div class='del'>-			}</div><div class='del'>-			if (lobj-&gt;sp == -1) {</div><div class='del'>-			    lobj-&gt;sp = sp;</div><div class='del'>-			}</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_LABEL:</div><div class='del'>-	    {</div><div class='del'>-		LABEL *lobj = (LABEL *)list;</div><div class='del'>-		if (lobj-&gt;sp == -1) {</div><div class='del'>-		    lobj-&gt;sp = sp;</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    sp = lobj-&gt;sp;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_TRACE:</div><div class='del'>-	    {</div><div class='del'>-		/* ignore */</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_ADJUST:</div><div class='del'>-	    {</div><div class='del'>-		ADJUST *adjust = (ADJUST *)list;</div><div class='del'>-		int orig_sp = sp;</div><div class='del'>-</div><div class='del'>-		sp = adjust-&gt;label ? adjust-&gt;label-&gt;sp : 0;</div><div class='del'>-		if (adjust-&gt;line_no != -1 &amp;&amp; orig_sp - sp &lt; 0) {</div><div class='del'>-		    BADINSN_DUMP(anchor, list, NULL);</div><div class='del'>-		    COMPILE_ERROR(iseq, adjust-&gt;line_no,</div><div class='del'>-				  "iseq_set_sequence: adjust bug %d &lt; %d",</div><div class='del'>-				  orig_sp, sp);</div><div class='del'>-		    return -1;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  default:</div><div class='del'>-	    BADINSN_DUMP(anchor, list, NULL);</div><div class='del'>-	    COMPILE_ERROR(iseq, line, "unknown list type: %d", list-&gt;type);</div><div class='del'>-	    return -1;</div><div class='del'>-	}</div><div class='add'>+        switch (list-&gt;type) {</div><div class='add'>+          case ISEQ_ELEMENT_INSN:</div><div class='add'>+            {</div><div class='add'>+                int j, len, insn;</div><div class='add'>+                const char *types;</div><div class='add'>+                VALUE *operands;</div><div class='add'>+                INSN *iobj = (INSN *)list;</div><div class='add'>+</div><div class='add'>+                /* update sp */</div><div class='add'>+                sp = calc_sp_depth(sp, iobj);</div><div class='add'>+                if (sp &lt; 0) {</div><div class='add'>+                    BADINSN_DUMP(anchor, list, NULL);</div><div class='add'>+                    COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+                                  "argument stack underflow (%d)", sp);</div><div class='add'>+                    return -1;</div><div class='add'>+                }</div><div class='add'>+                if (sp &gt; stack_max) {</div><div class='add'>+                    stack_max = sp;</div><div class='add'>+                }</div><div class='add'>+</div><div class='add'>+                line = iobj-&gt;insn_info.line_no;</div><div class='add'>+                /* fprintf(stderr, "insn: %-16s, sp: %d\n", insn_name(iobj-&gt;insn_id), sp); */</div><div class='add'>+                operands = iobj-&gt;operands;</div><div class='add'>+                insn = iobj-&gt;insn_id;</div><div class='add'>+                types = insn_op_types(insn);</div><div class='add'>+                len = insn_len(insn);</div><div class='add'>+</div><div class='add'>+                /* operand check */</div><div class='add'>+                if (iobj-&gt;operand_size != len - 1) {</div><div class='add'>+                    /* printf("operand size miss! (%d, %d)\n", iobj-&gt;operand_size, len); */</div><div class='add'>+                    BADINSN_DUMP(anchor, list, NULL);</div><div class='add'>+                    COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+                                  "operand size miss! (%d for %d)",</div><div class='add'>+                                  iobj-&gt;operand_size, len - 1);</div><div class='add'>+                    return -1;</div><div class='add'>+                }</div><div class='add'>+</div><div class='add'>+                for (j = 0; types[j]; j++) {</div><div class='add'>+                    if (types[j] == TS_OFFSET) {</div><div class='add'>+                        /* label(destination position) */</div><div class='add'>+                        LABEL *lobj = (LABEL *)operands[j];</div><div class='add'>+                        if (!lobj-&gt;set) {</div><div class='add'>+                            BADINSN_DUMP(anchor, list, NULL);</div><div class='add'>+                            COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+                                          "unknown label: "LABEL_FORMAT, lobj-&gt;label_no);</div><div class='add'>+                            return -1;</div><div class='add'>+                        }</div><div class='add'>+                        if (lobj-&gt;sp == -1) {</div><div class='add'>+                            lobj-&gt;sp = sp;</div><div class='add'>+                        }</div><div class='add'>+                        else if (lobj-&gt;sp != sp) {</div><div class='add'>+                            debugs("%s:%d: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",</div><div class='add'>+                                   RSTRING_PTR(rb_iseq_path(iseq)), line,</div><div class='add'>+                                   lobj-&gt;label_no, lobj-&gt;sp, sp);</div><div class='add'>+                        }</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_LABEL:</div><div class='add'>+            {</div><div class='add'>+                LABEL *lobj = (LABEL *)list;</div><div class='add'>+                if (lobj-&gt;sp == -1) {</div><div class='add'>+                    lobj-&gt;sp = sp;</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    if (lobj-&gt;sp != sp) {</div><div class='add'>+                        debugs("%s:%d: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",</div><div class='add'>+                                RSTRING_PTR(rb_iseq_path(iseq)), line,</div><div class='add'>+                                lobj-&gt;label_no, lobj-&gt;sp, sp);</div><div class='add'>+                    }</div><div class='add'>+                    sp = lobj-&gt;sp;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_TRACE:</div><div class='add'>+            {</div><div class='add'>+                /* ignore */</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+            {</div><div class='add'>+                ADJUST *adjust = (ADJUST *)list;</div><div class='add'>+                int orig_sp = sp;</div><div class='add'>+</div><div class='add'>+                sp = adjust-&gt;label ? adjust-&gt;label-&gt;sp : 0;</div><div class='add'>+                if (adjust-&gt;line_no != -1 &amp;&amp; orig_sp - sp &lt; 0) {</div><div class='add'>+                    BADINSN_DUMP(anchor, list, NULL);</div><div class='add'>+                    COMPILE_ERROR(iseq, adjust-&gt;line_no,</div><div class='add'>+                                  "iseq_set_sequence: adjust bug %d &lt; %d",</div><div class='add'>+                                  orig_sp, sp);</div><div class='add'>+                    return -1;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          default:</div><div class='add'>+            BADINSN_DUMP(anchor, list, NULL);</div><div class='add'>+            COMPILE_ERROR(iseq, line, "unknown list type: %d", list-&gt;type);</div><div class='add'>+            return -1;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return stack_max;</div><div class='ctx'> }</div><div class='hunk'>@@ -2008,8 +2242,14 @@ add_insn_info(struct iseq_insn_info_entry *insns_info, unsigned int *positions,</div><div class='ctx'> {</div><div class='ctx'>     if (insns_info_index == 0 ||</div><div class='ctx'>         insns_info[insns_info_index-1].line_no != iobj-&gt;insn_info.line_no ||</div><div class='add'>+#ifdef USE_ISEQ_NODE_ID</div><div class='add'>+        insns_info[insns_info_index-1].node_id != iobj-&gt;insn_info.node_id ||</div><div class='add'>+#endif</div><div class='ctx'>         insns_info[insns_info_index-1].events  != iobj-&gt;insn_info.events) {</div><div class='ctx'>         insns_info[insns_info_index].line_no    = iobj-&gt;insn_info.line_no;</div><div class='add'>+#ifdef USE_ISEQ_NODE_ID</div><div class='add'>+        insns_info[insns_info_index].node_id    = iobj-&gt;insn_info.node_id;</div><div class='add'>+#endif</div><div class='ctx'>         insns_info[insns_info_index].events     = iobj-&gt;insn_info.events;</div><div class='ctx'>         positions[insns_info_index]             = code_index;</div><div class='ctx'>         return TRUE;</div><div class='hunk'>@@ -2021,14 +2261,34 @@ static int</div><div class='ctx'> add_adjust_info(struct iseq_insn_info_entry *insns_info, unsigned int *positions,</div><div class='ctx'>                 int insns_info_index, int code_index, const ADJUST *adjust)</div><div class='ctx'> {</div><div class='del'>-    if (insns_info_index &gt; 0 ||</div><div class='del'>-        insns_info[insns_info_index-1].line_no != adjust-&gt;line_no) {</div><div class='del'>-        insns_info[insns_info_index].line_no    = adjust-&gt;line_no;</div><div class='del'>-        insns_info[insns_info_index].events     = 0;</div><div class='del'>-        positions[insns_info_index]             = code_index;</div><div class='del'>-        return TRUE;</div><div class='add'>+    insns_info[insns_info_index].line_no    = adjust-&gt;line_no;</div><div class='add'>+    insns_info[insns_info_index].events     = 0;</div><div class='add'>+    positions[insns_info_index]             = code_index;</div><div class='add'>+    return TRUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ID *</div><div class='add'>+array_to_idlist(VALUE arr)</div><div class='add'>+{</div><div class='add'>+    RUBY_ASSERT(RB_TYPE_P(arr, T_ARRAY));</div><div class='add'>+    long size = RARRAY_LEN(arr);</div><div class='add'>+    ID *ids = (ID *)ALLOC_N(ID, size + 1);</div><div class='add'>+    for (int i = 0; i &lt; size; i++) {</div><div class='add'>+        VALUE sym = RARRAY_AREF(arr, i);</div><div class='add'>+        ids[i] = SYM2ID(sym);</div><div class='ctx'>     }</div><div class='del'>-    return FALSE;</div><div class='add'>+    ids[size] = 0;</div><div class='add'>+    return ids;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+idlist_to_array(const ID *ids)</div><div class='add'>+{</div><div class='add'>+    VALUE arr = rb_ary_new();</div><div class='add'>+    while (*ids) {</div><div class='add'>+        rb_ary_push(arr, ID2SYM(*ids++));</div><div class='add'>+    }</div><div class='add'>+    return arr;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='hunk'>@@ -2038,7 +2298,7 @@ static int</div><div class='ctx'> iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'> {</div><div class='ctx'>     struct iseq_insn_info_entry *insns_info;</div><div class='del'>-    struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     unsigned int *positions;</div><div class='ctx'>     LINK_ELEMENT *list;</div><div class='ctx'>     VALUE *generated_iseq;</div><div class='hunk'>@@ -2051,22 +2311,22 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'>     if (stack_max &lt; 0) return COMPILE_NG;</div><div class='ctx'> </div><div class='ctx'>     /* fix label position */</div><div class='del'>-    list = FIRST_ELEMENT(anchor);</div><div class='ctx'>     insn_num = code_index = 0;</div><div class='del'>-    while (list) {</div><div class='del'>-	switch (list-&gt;type) {</div><div class='del'>-	  case ISEQ_ELEMENT_INSN:</div><div class='del'>-	    {</div><div class='del'>-		INSN *iobj = (INSN *)list;</div><div class='del'>-		/* update sp */</div><div class='del'>-		sp = calc_sp_depth(sp, iobj);</div><div class='del'>-		insn_num++;</div><div class='add'>+    for (list = FIRST_ELEMENT(anchor); list; list = list-&gt;next) {</div><div class='add'>+        switch (list-&gt;type) {</div><div class='add'>+          case ISEQ_ELEMENT_INSN:</div><div class='add'>+            {</div><div class='add'>+                INSN *iobj = (INSN *)list;</div><div class='add'>+                /* update sp */</div><div class='add'>+                sp = calc_sp_depth(sp, iobj);</div><div class='add'>+                insn_num++;</div><div class='add'>+                events = iobj-&gt;insn_info.events |= events;</div><div class='ctx'>                 if (ISEQ_COVERAGE(iseq)) {</div><div class='ctx'>                     if (ISEQ_LINE_COVERAGE(iseq) &amp;&amp; (events &amp; RUBY_EVENT_COVERAGE_LINE) &amp;&amp;</div><div class='ctx'>                         !(rb_get_coverage_mode() &amp; COVERAGE_TARGET_ONESHOT_LINES)) {</div><div class='del'>-                        int line = iobj-&gt;insn_info.line_no;</div><div class='del'>-                        if (line &gt;= 1) {</div><div class='del'>-                            RARRAY_ASET(ISEQ_LINE_COVERAGE(iseq), line - 1, INT2FIX(0));</div><div class='add'>+                        int line = iobj-&gt;insn_info.line_no - 1;</div><div class='add'>+                        if (line &gt;= 0 &amp;&amp; line &lt; RARRAY_LEN(ISEQ_LINE_COVERAGE(iseq))) {</div><div class='add'>+                            RARRAY_ASET(ISEQ_LINE_COVERAGE(iseq), line, INT2FIX(0));</div><div class='ctx'>                         }</div><div class='ctx'>                     }</div><div class='ctx'>                     if (ISEQ_BRANCH_COVERAGE(iseq) &amp;&amp; (events &amp; RUBY_EVENT_COVERAGE_BRANCH)) {</div><div class='hunk'>@@ -2075,243 +2335,298 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'>                         }</div><div class='ctx'>                         RARRAY_ASET(ISEQ_PC2BRANCHINDEX(iseq), code_index, INT2FIX(data));</div><div class='ctx'>                     }</div><div class='del'>-		}</div><div class='add'>+                }</div><div class='ctx'>                 code_index += insn_data_length(iobj);</div><div class='del'>-		iobj-&gt;insn_info.events |= events;</div><div class='del'>-		events = 0;</div><div class='add'>+                events = 0;</div><div class='ctx'>                 data = 0;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_LABEL:</div><div class='del'>-	    {</div><div class='del'>-		LABEL *lobj = (LABEL *)list;</div><div class='del'>-		lobj-&gt;position = code_index;</div><div class='del'>-		sp = lobj-&gt;sp;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_TRACE:</div><div class='del'>-	    {</div><div class='del'>-		TRACE *trace = (TRACE *)list;</div><div class='del'>-		events |= trace-&gt;event;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_LABEL:</div><div class='add'>+            {</div><div class='add'>+                LABEL *lobj = (LABEL *)list;</div><div class='add'>+                lobj-&gt;position = code_index;</div><div class='add'>+                if (lobj-&gt;sp != sp) {</div><div class='add'>+                    debugs("%s: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",</div><div class='add'>+                           RSTRING_PTR(rb_iseq_path(iseq)),</div><div class='add'>+                           lobj-&gt;label_no, lobj-&gt;sp, sp);</div><div class='add'>+                }</div><div class='add'>+                sp = lobj-&gt;sp;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_TRACE:</div><div class='add'>+            {</div><div class='add'>+                TRACE *trace = (TRACE *)list;</div><div class='add'>+                events |= trace-&gt;event;</div><div class='ctx'>                 if (trace-&gt;event &amp; RUBY_EVENT_COVERAGE_BRANCH) data = trace-&gt;data;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_ADJUST:</div><div class='del'>-	    {</div><div class='del'>-		ADJUST *adjust = (ADJUST *)list;</div><div class='del'>-		if (adjust-&gt;line_no != -1) {</div><div class='del'>-		    int orig_sp = sp;</div><div class='del'>-		    sp = adjust-&gt;label ? adjust-&gt;label-&gt;sp : 0;</div><div class='del'>-		    if (orig_sp - sp &gt; 0) {</div><div class='del'>-			if (orig_sp - sp &gt; 1) code_index++; /* 1 operand */</div><div class='del'>-			code_index++; /* insn */</div><div class='del'>-			insn_num++;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  default: break;</div><div class='del'>-	}</div><div class='del'>-	list = list-&gt;next;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+            {</div><div class='add'>+                ADJUST *adjust = (ADJUST *)list;</div><div class='add'>+                if (adjust-&gt;line_no != -1) {</div><div class='add'>+                    int orig_sp = sp;</div><div class='add'>+                    sp = adjust-&gt;label ? adjust-&gt;label-&gt;sp : 0;</div><div class='add'>+                    if (orig_sp - sp &gt; 0) {</div><div class='add'>+                        if (orig_sp - sp &gt; 1) code_index++; /* 1 operand */</div><div class='add'>+                        code_index++; /* insn */</div><div class='add'>+                        insn_num++;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          default: break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* make instruction sequence */</div><div class='ctx'>     generated_iseq = ALLOC_N(VALUE, code_index);</div><div class='ctx'>     insns_info = ALLOC_N(struct iseq_insn_info_entry, insn_num);</div><div class='ctx'>     positions = ALLOC_N(unsigned int, insn_num);</div><div class='del'>-    body-&gt;is_entries = ZALLOC_N(union iseq_inline_storage_entry, body-&gt;is_size);</div><div class='del'>-    body-&gt;ci_entries = (struct rb_call_info *)ruby_xmalloc(sizeof(struct rb_call_info) * body-&gt;ci_size +</div><div class='del'>-								 sizeof(struct rb_call_info_with_kwarg) * body-&gt;ci_kw_size);</div><div class='del'>-    MEMZERO(body-&gt;ci_entries + body-&gt;ci_size, struct rb_call_info_with_kwarg,  body-&gt;ci_kw_size); /* need to clear ci_kw entries */</div><div class='del'>-    body-&gt;cc_entries = ZALLOC_N(struct rb_call_cache, body-&gt;ci_size + body-&gt;ci_kw_size);</div><div class='add'>+    body-&gt;is_entries = ZALLOC_N(union iseq_inline_storage_entry, ISEQ_IS_SIZE(body));</div><div class='add'>+    body-&gt;call_data = ZALLOC_N(struct rb_call_data, body-&gt;ci_size);</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;ci_index = 0;</div><div class='ctx'> </div><div class='del'>-    ISEQ_COMPILE_DATA(iseq)-&gt;ci_index = ISEQ_COMPILE_DATA(iseq)-&gt;ci_kw_index = 0;</div><div class='add'>+    // Calculate the bitmask buffer size.</div><div class='add'>+    // Round the generated_iseq size up to the nearest multiple</div><div class='add'>+    // of the number of bits in an unsigned long.</div><div class='add'>+</div><div class='add'>+    // Allocate enough room for the bitmask list</div><div class='add'>+    iseq_bits_t * mark_offset_bits;</div><div class='add'>+    int code_size = code_index;</div><div class='add'>+</div><div class='add'>+    iseq_bits_t tmp[1] = {0};</div><div class='add'>+    bool needs_bitmap = false;</div><div class='add'>+</div><div class='add'>+    if (ISEQ_MBITS_BUFLEN(code_index) == 1) {</div><div class='add'>+        mark_offset_bits = tmp;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        mark_offset_bits = ZALLOC_N(iseq_bits_t, ISEQ_MBITS_BUFLEN(code_index));</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     list = FIRST_ELEMENT(anchor);</div><div class='ctx'>     insns_info_index = code_index = sp = 0;</div><div class='ctx'> </div><div class='ctx'>     while (list) {</div><div class='del'>-	switch (list-&gt;type) {</div><div class='del'>-	  case ISEQ_ELEMENT_INSN:</div><div class='del'>-	    {</div><div class='del'>-		int j, len, insn;</div><div class='del'>-		const char *types;</div><div class='del'>-		VALUE *operands;</div><div class='del'>-		INSN *iobj = (INSN *)list;</div><div class='del'>-</div><div class='del'>-		/* update sp */</div><div class='del'>-		sp = calc_sp_depth(sp, iobj);</div><div class='del'>-		/* fprintf(stderr, "insn: %-16s, sp: %d\n", insn_name(iobj-&gt;insn_id), sp); */</div><div class='del'>-		operands = iobj-&gt;operands;</div><div class='del'>-		insn = iobj-&gt;insn_id;</div><div class='del'>-		generated_iseq[code_index] = insn;</div><div class='del'>-		types = insn_op_types(insn);</div><div class='del'>-		len = insn_len(insn);</div><div class='del'>-</div><div class='del'>-		for (j = 0; types[j]; j++) {</div><div class='del'>-		    char type = types[j];</div><div class='del'>-		    /* printf("--&gt; [%c - (%d-%d)]\n", type, k, j); */</div><div class='del'>-		    switch (type) {</div><div class='del'>-		      case TS_OFFSET:</div><div class='del'>-			{</div><div class='del'>-			    /* label(destination position) */</div><div class='del'>-			    LABEL *lobj = (LABEL *)operands[j];</div><div class='del'>-			    generated_iseq[code_index + 1 + j] = lobj-&gt;position - (code_index + len);</div><div class='del'>-			    break;</div><div class='del'>-			}</div><div class='del'>-		      case TS_CDHASH:</div><div class='del'>-			{</div><div class='del'>-			    VALUE map = operands[j];</div><div class='del'>-			    struct cdhash_set_label_struct data;</div><div class='add'>+        switch (list-&gt;type) {</div><div class='add'>+          case ISEQ_ELEMENT_INSN:</div><div class='add'>+            {</div><div class='add'>+                int j, len, insn;</div><div class='add'>+                const char *types;</div><div class='add'>+                VALUE *operands;</div><div class='add'>+                INSN *iobj = (INSN *)list;</div><div class='add'>+</div><div class='add'>+                /* update sp */</div><div class='add'>+                sp = calc_sp_depth(sp, iobj);</div><div class='add'>+                /* fprintf(stderr, "insn: %-16s, sp: %d\n", insn_name(iobj-&gt;insn_id), sp); */</div><div class='add'>+                operands = iobj-&gt;operands;</div><div class='add'>+                insn = iobj-&gt;insn_id;</div><div class='add'>+                generated_iseq[code_index] = insn;</div><div class='add'>+                types = insn_op_types(insn);</div><div class='add'>+                len = insn_len(insn);</div><div class='add'>+</div><div class='add'>+                for (j = 0; types[j]; j++) {</div><div class='add'>+                    char type = types[j];</div><div class='add'>+</div><div class='add'>+                    /* printf("--&gt; [%c - (%d-%d)]\n", type, k, j); */</div><div class='add'>+                    switch (type) {</div><div class='add'>+                      case TS_OFFSET:</div><div class='add'>+                        {</div><div class='add'>+                            /* label(destination position) */</div><div class='add'>+                            LABEL *lobj = (LABEL *)operands[j];</div><div class='add'>+                            generated_iseq[code_index + 1 + j] = lobj-&gt;position - (code_index + len);</div><div class='add'>+                            break;</div><div class='add'>+                        }</div><div class='add'>+                      case TS_CDHASH:</div><div class='add'>+                        {</div><div class='add'>+                            VALUE map = operands[j];</div><div class='add'>+                            struct cdhash_set_label_struct data;</div><div class='ctx'>                             data.hash = map;</div><div class='ctx'>                             data.pos = code_index;</div><div class='ctx'>                             data.len = len;</div><div class='del'>-			    rb_hash_foreach(map, cdhash_set_label_i, (VALUE)&amp;data);</div><div class='del'>-</div><div class='del'>-			    rb_hash_rehash(map);</div><div class='del'>-			    freeze_hide_obj(map);</div><div class='del'>-			    generated_iseq[code_index + 1 + j] = map;</div><div class='del'>-			    RB_OBJ_WRITTEN(iseq, Qundef, map);</div><div class='del'>-			    FL_SET(iseq, ISEQ_MARKABLE_ISEQ);</div><div class='del'>-			    break;</div><div class='del'>-			}</div><div class='del'>-		      case TS_LINDEX:</div><div class='del'>-		      case TS_NUM:	/* ulong */</div><div class='del'>-			generated_iseq[code_index + 1 + j] = FIX2INT(operands[j]);</div><div class='del'>-			break;</div><div class='del'>-		      case TS_VALUE:	/* VALUE */</div><div class='del'>-		      case TS_ISEQ:	/* iseq */</div><div class='del'>-			{</div><div class='del'>-			    VALUE v = operands[j];</div><div class='del'>-			    generated_iseq[code_index + 1 + j] = v;</div><div class='del'>-			    /* to mark ruby object */</div><div class='del'>-			    if (!SPECIAL_CONST_P(v)) {</div><div class='del'>-				RB_OBJ_WRITTEN(iseq, Qundef, v);</div><div class='del'>-				FL_SET(iseq, ISEQ_MARKABLE_ISEQ);</div><div class='del'>-			    }</div><div class='del'>-			    break;</div><div class='del'>-			}</div><div class='del'>-		      case TS_ISE: /* inline storage entry */</div><div class='del'>-			/* Treated as an IC, but may contain a markable VALUE */</div><div class='del'>-			FL_SET(iseq, ISEQ_MARKABLE_ISEQ);</div><div class='del'>-		      case TS_IC: /* inline cache */</div><div class='del'>-			{</div><div class='del'>-			    unsigned int ic_index = FIX2UINT(operands[j]);</div><div class='del'>-			    IC ic = (IC)&amp;body-&gt;is_entries[ic_index];</div><div class='del'>-			    if (UNLIKELY(ic_index &gt;= body-&gt;is_size)) {</div><div class='add'>+                            rb_hash_foreach(map, cdhash_set_label_i, (VALUE)&amp;data);</div><div class='add'>+</div><div class='add'>+                            rb_hash_rehash(map);</div><div class='add'>+                            freeze_hide_obj(map);</div><div class='add'>+                            generated_iseq[code_index + 1 + j] = map;</div><div class='add'>+                            ISEQ_MBITS_SET(mark_offset_bits, code_index + 1 + j);</div><div class='add'>+                            RB_OBJ_WRITTEN(iseq, Qundef, map);</div><div class='add'>+                            needs_bitmap = true;</div><div class='add'>+                            break;</div><div class='add'>+                        }</div><div class='add'>+                      case TS_LINDEX:</div><div class='add'>+                      case TS_NUM:	/* ulong */</div><div class='add'>+                        generated_iseq[code_index + 1 + j] = FIX2INT(operands[j]);</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_ISEQ:	/* iseq */</div><div class='add'>+                      case TS_VALUE:	/* VALUE */</div><div class='add'>+                        {</div><div class='add'>+                            VALUE v = operands[j];</div><div class='add'>+                            generated_iseq[code_index + 1 + j] = v;</div><div class='add'>+                            /* to mark ruby object */</div><div class='add'>+                            if (!SPECIAL_CONST_P(v)) {</div><div class='add'>+                                RB_OBJ_WRITTEN(iseq, Qundef, v);</div><div class='add'>+                                ISEQ_MBITS_SET(mark_offset_bits, code_index + 1 + j);</div><div class='add'>+                                needs_bitmap = true;</div><div class='add'>+                            }</div><div class='add'>+                            break;</div><div class='add'>+                        }</div><div class='add'>+                      /* [ TS_IVC | TS_ICVARC | TS_ISE | TS_IC ] */</div><div class='add'>+                      case TS_IC: /* inline cache: constants */</div><div class='add'>+                        {</div><div class='add'>+                            unsigned int ic_index = ISEQ_COMPILE_DATA(iseq)-&gt;ic_index++;</div><div class='add'>+                            IC ic = &amp;ISEQ_IS_ENTRY_START(body, type)[ic_index].ic_cache;</div><div class='add'>+                            if (UNLIKELY(ic_index &gt;= body-&gt;ic_size)) {</div><div class='add'>+                                BADINSN_DUMP(anchor, &amp;iobj-&gt;link, 0);</div><div class='add'>+                                COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+                                              "iseq_set_sequence: ic_index overflow: index: %d, size: %d",</div><div class='add'>+                                              ic_index, ISEQ_IS_SIZE(body));</div><div class='add'>+                            }</div><div class='add'>+</div><div class='add'>+                            ic-&gt;segments = array_to_idlist(operands[j]);</div><div class='add'>+</div><div class='add'>+                            generated_iseq[code_index + 1 + j] = (VALUE)ic;</div><div class='add'>+                        }</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_IVC: /* inline ivar cache */</div><div class='add'>+                        {</div><div class='add'>+                            unsigned int ic_index = FIX2UINT(operands[j]);</div><div class='add'>+</div><div class='add'>+                            IVC cache = ((IVC)&amp;body-&gt;is_entries[ic_index]);</div><div class='add'>+</div><div class='add'>+                            if (insn == BIN(setinstancevariable)) {</div><div class='add'>+                                cache-&gt;iv_set_name = SYM2ID(operands[j - 1]);</div><div class='add'>+                            }</div><div class='add'>+                            else {</div><div class='add'>+                                cache-&gt;iv_set_name = 0;</div><div class='add'>+                            }</div><div class='add'>+</div><div class='add'>+                            vm_ic_attr_index_initialize(cache, INVALID_SHAPE_ID);</div><div class='add'>+                        }</div><div class='add'>+                      case TS_ISE: /* inline storage entry: `once` insn */</div><div class='add'>+                      case TS_ICVARC: /* inline cvar cache */</div><div class='add'>+                        {</div><div class='add'>+                            unsigned int ic_index = FIX2UINT(operands[j]);</div><div class='add'>+                            IC ic = &amp;ISEQ_IS_ENTRY_START(body, type)[ic_index].ic_cache;</div><div class='add'>+                            if (UNLIKELY(ic_index &gt;= ISEQ_IS_SIZE(body))) {</div><div class='ctx'>                                 BADINSN_DUMP(anchor, &amp;iobj-&gt;link, 0);</div><div class='ctx'>                                 COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='ctx'>                                               "iseq_set_sequence: ic_index overflow: index: %d, size: %d",</div><div class='del'>-                                              ic_index, body-&gt;is_size);</div><div class='del'>-			    }</div><div class='del'>-			    generated_iseq[code_index + 1 + j] = (VALUE)ic;</div><div class='del'>-			    break;</div><div class='del'>-			}</div><div class='del'>-		      case TS_CALLINFO: /* call info */</div><div class='del'>-			{</div><div class='del'>-			    struct rb_call_info *base_ci = (struct rb_call_info *)operands[j];</div><div class='del'>-			    struct rb_call_info *ci;</div><div class='del'>-</div><div class='del'>-			    if (base_ci-&gt;flag &amp; VM_CALL_KWARG) {</div><div class='del'>-				struct rb_call_info_with_kwarg *ci_kw_entries = (struct rb_call_info_with_kwarg *)&amp;body-&gt;ci_entries[body-&gt;ci_size];</div><div class='del'>-				struct rb_call_info_with_kwarg *ci_kw = &amp;ci_kw_entries[ISEQ_COMPILE_DATA(iseq)-&gt;ci_kw_index++];</div><div class='del'>-				*ci_kw = *((struct rb_call_info_with_kwarg *)base_ci);</div><div class='del'>-				ci = (struct rb_call_info *)ci_kw;</div><div class='del'>-				assert(ISEQ_COMPILE_DATA(iseq)-&gt;ci_kw_index &lt;= body-&gt;ci_kw_size);</div><div class='del'>-			    }</div><div class='del'>-			    else {</div><div class='del'>-				ci = &amp;body-&gt;ci_entries[ISEQ_COMPILE_DATA(iseq)-&gt;ci_index++];</div><div class='del'>-				*ci = *base_ci;</div><div class='del'>-				assert(ISEQ_COMPILE_DATA(iseq)-&gt;ci_index &lt;= body-&gt;ci_size);</div><div class='del'>-			    }</div><div class='del'>-</div><div class='del'>-			    generated_iseq[code_index + 1 + j] = (VALUE)ci;</div><div class='del'>-			    break;</div><div class='del'>-			}</div><div class='del'>-		      case TS_CALLCACHE:</div><div class='del'>-			{</div><div class='del'>-			    struct rb_call_cache *cc = &amp;body-&gt;cc_entries[ISEQ_COMPILE_DATA(iseq)-&gt;ci_index + ISEQ_COMPILE_DATA(iseq)-&gt;ci_kw_index - 1];</div><div class='del'>-			    generated_iseq[code_index + 1 + j] = (VALUE)cc;</div><div class='del'>-			    break;</div><div class='del'>-			}</div><div class='del'>-		      case TS_ID: /* ID */</div><div class='del'>-			generated_iseq[code_index + 1 + j] = SYM2ID(operands[j]);</div><div class='del'>-			break;</div><div class='del'>-		      case TS_GENTRY:</div><div class='del'>-			{</div><div class='del'>-			    struct rb_global_entry *entry =</div><div class='del'>-				(struct rb_global_entry *)(operands[j] &amp; (~1));</div><div class='del'>-			    generated_iseq[code_index + 1 + j] = (VALUE)entry;</div><div class='del'>-			}</div><div class='del'>-			break;</div><div class='del'>-		      case TS_FUNCPTR:</div><div class='del'>-			generated_iseq[code_index + 1 + j] = operands[j];</div><div class='del'>-			break;</div><div class='del'>-		      default:</div><div class='del'>-			BADINSN_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='del'>-				      "unknown operand type: %c", type);</div><div class='del'>-			return COMPILE_NG;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		if (add_insn_info(insns_info, positions, insns_info_index, code_index, iobj)) insns_info_index++;</div><div class='del'>-		code_index += len;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_LABEL:</div><div class='del'>-	    {</div><div class='del'>-		LABEL *lobj = (LABEL *)list;</div><div class='del'>-		sp = lobj-&gt;sp;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_ADJUST:</div><div class='del'>-	    {</div><div class='del'>-		ADJUST *adjust = (ADJUST *)list;</div><div class='del'>-		int orig_sp = sp;</div><div class='del'>-</div><div class='del'>-		if (adjust-&gt;label) {</div><div class='del'>-		    sp = adjust-&gt;label-&gt;sp;</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    sp = 0;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (adjust-&gt;line_no != -1) {</div><div class='del'>-		    const int diff = orig_sp - sp;</div><div class='del'>-		    if (diff &gt; 0) {</div><div class='del'>-			if (add_adjust_info(insns_info, positions, insns_info_index, code_index, adjust)) insns_info_index++;</div><div class='del'>-		    }</div><div class='del'>-		    if (diff &gt; 1) {</div><div class='del'>-			generated_iseq[code_index++] = BIN(adjuststack);</div><div class='del'>-			generated_iseq[code_index++] = orig_sp - sp;</div><div class='del'>-		    }</div><div class='del'>-		    else if (diff == 1) {</div><div class='del'>-			generated_iseq[code_index++] = BIN(pop);</div><div class='del'>-		    }</div><div class='del'>-		    else if (diff &lt; 0) {</div><div class='del'>-			int label_no = adjust-&gt;label ? adjust-&gt;label-&gt;label_no : -1;</div><div class='del'>-			xfree(generated_iseq);</div><div class='del'>-			xfree(insns_info);</div><div class='del'>-			xfree(positions);</div><div class='del'>-			debug_list(anchor);</div><div class='del'>-			COMPILE_ERROR(iseq, adjust-&gt;line_no,</div><div class='del'>-				      "iseq_set_sequence: adjust bug to %d %d &lt; %d",</div><div class='del'>-				      label_no, orig_sp, sp);</div><div class='del'>-			return COMPILE_NG;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  default:</div><div class='del'>-	    /* ignore */</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	list = list-&gt;next;</div><div class='add'>+                                              ic_index, ISEQ_IS_SIZE(body));</div><div class='add'>+                            }</div><div class='add'>+                            generated_iseq[code_index + 1 + j] = (VALUE)ic;</div><div class='add'>+</div><div class='add'>+                            break;</div><div class='add'>+                        }</div><div class='add'>+                        case TS_CALLDATA:</div><div class='add'>+                        {</div><div class='add'>+                            const struct rb_callinfo *source_ci = (const struct rb_callinfo *)operands[j];</div><div class='add'>+                            struct rb_call_data *cd = &amp;body-&gt;call_data[ISEQ_COMPILE_DATA(iseq)-&gt;ci_index++];</div><div class='add'>+                            assert(ISEQ_COMPILE_DATA(iseq)-&gt;ci_index &lt;= body-&gt;ci_size);</div><div class='add'>+                            cd-&gt;ci = source_ci;</div><div class='add'>+                            cd-&gt;cc = vm_cc_empty();</div><div class='add'>+                            generated_iseq[code_index + 1 + j] = (VALUE)cd;</div><div class='add'>+                            break;</div><div class='add'>+                        }</div><div class='add'>+                      case TS_ID: /* ID */</div><div class='add'>+                        generated_iseq[code_index + 1 + j] = SYM2ID(operands[j]);</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_FUNCPTR:</div><div class='add'>+                        generated_iseq[code_index + 1 + j] = operands[j];</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_BUILTIN:</div><div class='add'>+                        generated_iseq[code_index + 1 + j] = operands[j];</div><div class='add'>+                        break;</div><div class='add'>+                      default:</div><div class='add'>+                        BADINSN_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+                                      "unknown operand type: %c", type);</div><div class='add'>+                        return COMPILE_NG;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                if (add_insn_info(insns_info, positions, insns_info_index, code_index, iobj)) insns_info_index++;</div><div class='add'>+                code_index += len;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_LABEL:</div><div class='add'>+            {</div><div class='add'>+                LABEL *lobj = (LABEL *)list;</div><div class='add'>+                if (lobj-&gt;sp != sp) {</div><div class='add'>+                    debugs("%s: sp inconsistency found but ignored (" LABEL_FORMAT " sp: %d, calculated sp: %d)\n",</div><div class='add'>+                           RSTRING_PTR(rb_iseq_path(iseq)),</div><div class='add'>+                           lobj-&gt;label_no, lobj-&gt;sp, sp);</div><div class='add'>+                }</div><div class='add'>+                sp = lobj-&gt;sp;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+            {</div><div class='add'>+                ADJUST *adjust = (ADJUST *)list;</div><div class='add'>+                int orig_sp = sp;</div><div class='add'>+</div><div class='add'>+                if (adjust-&gt;label) {</div><div class='add'>+                    sp = adjust-&gt;label-&gt;sp;</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    sp = 0;</div><div class='add'>+                }</div><div class='add'>+</div><div class='add'>+                if (adjust-&gt;line_no != -1) {</div><div class='add'>+                    const int diff = orig_sp - sp;</div><div class='add'>+                    if (diff &gt; 0) {</div><div class='add'>+                        if (insns_info_index == 0) {</div><div class='add'>+                            COMPILE_ERROR(iseq, adjust-&gt;line_no,</div><div class='add'>+                                          "iseq_set_sequence: adjust bug (ISEQ_ELEMENT_ADJUST must not be the first in iseq)");</div><div class='add'>+                        }</div><div class='add'>+                        if (add_adjust_info(insns_info, positions, insns_info_index, code_index, adjust)) insns_info_index++;</div><div class='add'>+                    }</div><div class='add'>+                    if (diff &gt; 1) {</div><div class='add'>+                        generated_iseq[code_index++] = BIN(adjuststack);</div><div class='add'>+                        generated_iseq[code_index++] = orig_sp - sp;</div><div class='add'>+                    }</div><div class='add'>+                    else if (diff == 1) {</div><div class='add'>+                        generated_iseq[code_index++] = BIN(pop);</div><div class='add'>+                    }</div><div class='add'>+                    else if (diff &lt; 0) {</div><div class='add'>+                        int label_no = adjust-&gt;label ? adjust-&gt;label-&gt;label_no : -1;</div><div class='add'>+                        xfree(generated_iseq);</div><div class='add'>+                        xfree(insns_info);</div><div class='add'>+                        xfree(positions);</div><div class='add'>+                        if (ISEQ_MBITS_BUFLEN(code_size) &gt; 1) {</div><div class='add'>+                            xfree(mark_offset_bits);</div><div class='add'>+                        }</div><div class='add'>+                        debug_list(anchor, list);</div><div class='add'>+                        COMPILE_ERROR(iseq, adjust-&gt;line_no,</div><div class='add'>+                                      "iseq_set_sequence: adjust bug to %d %d &lt; %d",</div><div class='add'>+                                      label_no, orig_sp, sp);</div><div class='add'>+                        return COMPILE_NG;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          default:</div><div class='add'>+            /* ignore */</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        list = list-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     body-&gt;iseq_encoded = (void *)generated_iseq;</div><div class='ctx'>     body-&gt;iseq_size = code_index;</div><div class='ctx'>     body-&gt;stack_max = stack_max;</div><div class='ctx'> </div><div class='add'>+    if (ISEQ_MBITS_BUFLEN(body-&gt;iseq_size) == 1) {</div><div class='add'>+        body-&gt;mark_bits.single = mark_offset_bits[0];</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (needs_bitmap) {</div><div class='add'>+            body-&gt;mark_bits.list = mark_offset_bits;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            body-&gt;mark_bits.list = 0;</div><div class='add'>+            ruby_xfree(mark_offset_bits);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     /* get rid of memory leak when REALLOC failed */</div><div class='ctx'>     body-&gt;insns_info.body = insns_info;</div><div class='ctx'>     body-&gt;insns_info.positions = positions;</div><div class='hunk'>@@ -2344,46 +2659,49 @@ iseq_set_exception_table(rb_iseq_t *iseq)</div><div class='ctx'>     unsigned int tlen, i;</div><div class='ctx'>     struct iseq_catch_table_entry *entry;</div><div class='ctx'> </div><div class='del'>-    tlen = (int)RARRAY_LEN(ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary);</div><div class='del'>-    tptr = RARRAY_CONST_PTR_TRANSIENT(ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary);</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;catch_table = NULL;</div><div class='add'>+</div><div class='add'>+    VALUE catch_table_ary = ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary;</div><div class='add'>+    if (NIL_P(catch_table_ary)) return COMPILE_OK;</div><div class='add'>+    tlen = (int)RARRAY_LEN(catch_table_ary);</div><div class='add'>+    tptr = RARRAY_CONST_PTR_TRANSIENT(catch_table_ary);</div><div class='ctx'> </div><div class='ctx'>     if (tlen &gt; 0) {</div><div class='del'>-	struct iseq_catch_table *table = xmalloc(iseq_catch_table_bytes(tlen));</div><div class='del'>-	table-&gt;size = tlen;</div><div class='add'>+        struct iseq_catch_table *table = xmalloc(iseq_catch_table_bytes(tlen));</div><div class='add'>+        table-&gt;size = tlen;</div><div class='ctx'> </div><div class='del'>-	for (i = 0; i &lt; table-&gt;size; i++) {</div><div class='add'>+        for (i = 0; i &lt; table-&gt;size; i++) {</div><div class='ctx'>             ptr = RARRAY_CONST_PTR_TRANSIENT(tptr[i]);</div><div class='del'>-	    entry = &amp;table-&gt;entries[i];</div><div class='del'>-	    entry-&gt;type = (enum catch_type)(ptr[0] &amp; 0xffff);</div><div class='del'>-	    entry-&gt;start = label_get_position((LABEL *)(ptr[1] &amp; ~1));</div><div class='del'>-	    entry-&gt;end = label_get_position((LABEL *)(ptr[2] &amp; ~1));</div><div class='del'>-	    entry-&gt;iseq = (rb_iseq_t *)ptr[3];</div><div class='del'>-	    RB_OBJ_WRITTEN(iseq, Qundef, entry-&gt;iseq);</div><div class='del'>-</div><div class='del'>-	    /* stack depth */</div><div class='del'>-	    if (ptr[4]) {</div><div class='del'>-		LABEL *lobj = (LABEL *)(ptr[4] &amp; ~1);</div><div class='del'>-		entry-&gt;cont = label_get_position(lobj);</div><div class='del'>-		entry-&gt;sp = label_get_sp(lobj);</div><div class='del'>-</div><div class='del'>-		/* TODO: Dirty Hack!  Fix me */</div><div class='del'>-		if (entry-&gt;type == CATCH_TYPE_RESCUE ||</div><div class='del'>-		    entry-&gt;type == CATCH_TYPE_BREAK ||</div><div class='del'>-		    entry-&gt;type == CATCH_TYPE_NEXT) {</div><div class='del'>-		    entry-&gt;sp--;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		entry-&gt;cont = 0;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	iseq-&gt;body-&gt;catch_table = table;</div><div class='del'>-	RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary, 0); /* free */</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	iseq-&gt;body-&gt;catch_table = NULL;</div><div class='add'>+            entry = UNALIGNED_MEMBER_PTR(table, entries[i]);</div><div class='add'>+            entry-&gt;type = (enum rb_catch_type)(ptr[0] &amp; 0xffff);</div><div class='add'>+            entry-&gt;start = label_get_position((LABEL *)(ptr[1] &amp; ~1));</div><div class='add'>+            entry-&gt;end = label_get_position((LABEL *)(ptr[2] &amp; ~1));</div><div class='add'>+            entry-&gt;iseq = (rb_iseq_t *)ptr[3];</div><div class='add'>+            RB_OBJ_WRITTEN(iseq, Qundef, entry-&gt;iseq);</div><div class='add'>+</div><div class='add'>+            /* stack depth */</div><div class='add'>+            if (ptr[4]) {</div><div class='add'>+                LABEL *lobj = (LABEL *)(ptr[4] &amp; ~1);</div><div class='add'>+                entry-&gt;cont = label_get_position(lobj);</div><div class='add'>+                entry-&gt;sp = label_get_sp(lobj);</div><div class='add'>+</div><div class='add'>+                /* TODO: Dirty Hack!  Fix me */</div><div class='add'>+                if (entry-&gt;type == CATCH_TYPE_RESCUE ||</div><div class='add'>+                    entry-&gt;type == CATCH_TYPE_BREAK ||</div><div class='add'>+                    entry-&gt;type == CATCH_TYPE_NEXT) {</div><div class='add'>+                    entry-&gt;sp--;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                entry-&gt;cont = 0;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        ISEQ_BODY(iseq)-&gt;catch_table = table;</div><div class='add'>+        RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary, 0); /* free */</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    RB_GC_GUARD(catch_table_ary);</div><div class='add'>+</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2400,12 +2718,12 @@ static int</div><div class='ctx'> iseq_set_optargs_table(rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     int i;</div><div class='del'>-    VALUE *opt_table = (VALUE *)iseq-&gt;body-&gt;param.opt_table;</div><div class='add'>+    VALUE *opt_table = (VALUE *)ISEQ_BODY(iseq)-&gt;param.opt_table;</div><div class='ctx'> </div><div class='del'>-    if (iseq-&gt;body-&gt;param.flags.has_opt) {</div><div class='del'>-	for (i = 0; i &lt; iseq-&gt;body-&gt;param.opt_num + 1; i++) {</div><div class='del'>-	    opt_table[i] = label_get_position((LABEL *)opt_table[i]);</div><div class='del'>-	}</div><div class='add'>+    if (ISEQ_BODY(iseq)-&gt;param.flags.has_opt) {</div><div class='add'>+        for (i = 0; i &lt; ISEQ_BODY(iseq)-&gt;param.opt_num + 1; i++) {</div><div class='add'>+            opt_table[i] = label_get_position((LABEL *)opt_table[i]);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -2419,27 +2737,27 @@ get_destination_insn(INSN *iobj)</div><div class='ctx'> </div><div class='ctx'>     list = lobj-&gt;link.next;</div><div class='ctx'>     while (list) {</div><div class='del'>-	switch (list-&gt;type) {</div><div class='del'>-	  case ISEQ_ELEMENT_INSN:</div><div class='del'>-	  case ISEQ_ELEMENT_ADJUST:</div><div class='del'>-	    goto found;</div><div class='del'>-	  case ISEQ_ELEMENT_LABEL:</div><div class='del'>-	    /* ignore */</div><div class='del'>-	    break;</div><div class='del'>-	  case ISEQ_ELEMENT_TRACE:</div><div class='del'>-	    {</div><div class='del'>-		TRACE *trace = (TRACE *)list;</div><div class='del'>-		events |= trace-&gt;event;</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	  default: break;</div><div class='del'>-	}</div><div class='del'>-	list = list-&gt;next;</div><div class='add'>+        switch (list-&gt;type) {</div><div class='add'>+          case ISEQ_ELEMENT_INSN:</div><div class='add'>+          case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+            goto found;</div><div class='add'>+          case ISEQ_ELEMENT_LABEL:</div><div class='add'>+            /* ignore */</div><div class='add'>+            break;</div><div class='add'>+          case ISEQ_ELEMENT_TRACE:</div><div class='add'>+            {</div><div class='add'>+                TRACE *trace = (TRACE *)list;</div><div class='add'>+                events |= trace-&gt;event;</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+          default: break;</div><div class='add'>+        }</div><div class='add'>+        list = list-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'>   found:</div><div class='ctx'>     if (list &amp;&amp; IS_INSN(list)) {</div><div class='del'>-	INSN *iobj = (INSN *)list;</div><div class='del'>-	iobj-&gt;insn_info.events |= events;</div><div class='add'>+        INSN *iobj = (INSN *)list;</div><div class='add'>+        iobj-&gt;insn_info.events |= events;</div><div class='ctx'>     }</div><div class='ctx'>     return list;</div><div class='ctx'> }</div><div class='hunk'>@@ -2450,10 +2768,10 @@ get_next_insn(INSN *iobj)</div><div class='ctx'>     LINK_ELEMENT *list = iobj-&gt;link.next;</div><div class='ctx'> </div><div class='ctx'>     while (list) {</div><div class='del'>-	if (IS_INSN(list) || IS_ADJUST(list)) {</div><div class='del'>-	    return list;</div><div class='del'>-	}</div><div class='del'>-	list = list-&gt;next;</div><div class='add'>+        if (IS_INSN(list) || IS_ADJUST(list)) {</div><div class='add'>+            return list;</div><div class='add'>+        }</div><div class='add'>+        list = list-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -2464,10 +2782,10 @@ get_prev_insn(INSN *iobj)</div><div class='ctx'>     LINK_ELEMENT *list = iobj-&gt;link.prev;</div><div class='ctx'> </div><div class='ctx'>     while (list) {</div><div class='del'>-	if (IS_INSN(list) || IS_ADJUST(list)) {</div><div class='del'>-	    return list;</div><div class='del'>-	}</div><div class='del'>-	list = list-&gt;prev;</div><div class='add'>+        if (IS_INSN(list) || IS_ADJUST(list)) {</div><div class='add'>+            return list;</div><div class='add'>+        }</div><div class='add'>+        list = list-&gt;prev;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -2497,9 +2815,9 @@ find_destination(INSN *i)</div><div class='ctx'> {</div><div class='ctx'>     int pos, len = insn_len(i-&gt;insn_id);</div><div class='ctx'>     for (pos = 0; pos &lt; len; ++pos) {</div><div class='del'>-	if (insn_op_types(i-&gt;insn_id)[pos] == TS_OFFSET) {</div><div class='del'>-	    return (LABEL *)OPERAND_AT(i, pos);</div><div class='del'>-	}</div><div class='add'>+        if (insn_op_types(i-&gt;insn_id)[pos] == TS_OFFSET) {</div><div class='add'>+            return (LABEL *)OPERAND_AT(i, pos);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -2515,56 +2833,51 @@ remove_unreachable_chunk(rb_iseq_t *iseq, LINK_ELEMENT *i)</div><div class='ctx'>     MEMZERO(unref_counts, int, nlabels);</div><div class='ctx'>     end = i;</div><div class='ctx'>     do {</div><div class='del'>-	LABEL *lab;</div><div class='del'>-	if (IS_INSN(i)) {</div><div class='del'>-	    if (IS_INSN_ID(i, leave)) {</div><div class='del'>-		end = i;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    else if ((lab = find_destination((INSN *)i)) != 0) {</div><div class='del'>-		if (lab-&gt;unremovable) break;</div><div class='del'>-		unref_counts[lab-&gt;label_no]++;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else if (IS_LABEL(i)) {</div><div class='del'>-	    lab = (LABEL *)i;</div><div class='del'>-	    if (lab-&gt;unremovable) return 0;</div><div class='del'>-	    if (lab-&gt;refcnt &gt; unref_counts[lab-&gt;label_no]) {</div><div class='del'>-		if (i == first) return 0;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	else if (IS_TRACE(i)) {</div><div class='del'>-	    /* do nothing */</div><div class='del'>-	}</div><div class='del'>-	else if (IS_ADJUST(i)) {</div><div class='del'>-	    LABEL *dest = ((ADJUST *)i)-&gt;label;</div><div class='del'>-	    if (dest &amp;&amp; dest-&gt;unremovable) return 0;</div><div class='del'>-	}</div><div class='del'>-	end = i;</div><div class='add'>+        LABEL *lab;</div><div class='add'>+        if (IS_INSN(i)) {</div><div class='add'>+            if (IS_INSN_ID(i, leave)) {</div><div class='add'>+                end = i;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            else if ((lab = find_destination((INSN *)i)) != 0) {</div><div class='add'>+                unref_counts[lab-&gt;label_no]++;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else if (IS_LABEL(i)) {</div><div class='add'>+            lab = (LABEL *)i;</div><div class='add'>+            if (lab-&gt;unremovable) return 0;</div><div class='add'>+            if (lab-&gt;refcnt &gt; unref_counts[lab-&gt;label_no]) {</div><div class='add'>+                if (i == first) return 0;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        else if (IS_TRACE(i)) {</div><div class='add'>+            /* do nothing */</div><div class='add'>+        }</div><div class='add'>+        else if (IS_ADJUST(i)) {</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+        end = i;</div><div class='ctx'>     } while ((i = i-&gt;next) != 0);</div><div class='ctx'>     i = first;</div><div class='ctx'>     do {</div><div class='del'>-	if (IS_INSN(i)) {</div><div class='del'>-	    struct rb_iseq_constant_body *body = iseq-&gt;body;</div><div class='del'>-	    VALUE insn = INSN_OF(i);</div><div class='del'>-	    int pos, len = insn_len(insn);</div><div class='del'>-	    for (pos = 0; pos &lt; len; ++pos) {</div><div class='del'>-		switch (insn_op_types(insn)[pos]) {</div><div class='del'>-		  case TS_OFFSET:</div><div class='del'>-		    unref_destination((INSN *)i, pos);</div><div class='del'>-		    break;</div><div class='del'>-		  case TS_CALLINFO:</div><div class='del'>-		    if (((struct rb_call_info *)OPERAND_AT(i, pos))-&gt;flag &amp; VM_CALL_KWARG)</div><div class='del'>-			--(body-&gt;ci_kw_size);</div><div class='del'>-		    else</div><div class='del'>-			--(body-&gt;ci_size);</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	ELEM_REMOVE(i);</div><div class='add'>+        if (IS_INSN(i)) {</div><div class='add'>+            struct rb_iseq_constant_body *body = ISEQ_BODY(iseq);</div><div class='add'>+            VALUE insn = INSN_OF(i);</div><div class='add'>+            int pos, len = insn_len(insn);</div><div class='add'>+            for (pos = 0; pos &lt; len; ++pos) {</div><div class='add'>+                switch (insn_op_types(insn)[pos]) {</div><div class='add'>+                  case TS_OFFSET:</div><div class='add'>+                    unref_destination((INSN *)i, pos);</div><div class='add'>+                    break;</div><div class='add'>+                  case TS_CALLDATA:</div><div class='add'>+                    --(body-&gt;ci_size);</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        ELEM_REMOVE(i);</div><div class='ctx'>     } while ((i != end) &amp;&amp; (i = i-&gt;next) != 0);</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='hunk'>@@ -2574,33 +2887,18 @@ iseq_pop_newarray(rb_iseq_t *iseq, INSN *iobj)</div><div class='ctx'> {</div><div class='ctx'>     switch (OPERAND_AT(iobj, 0)) {</div><div class='ctx'>       case INT2FIX(0): /* empty array */</div><div class='del'>-	ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='del'>-	return TRUE;</div><div class='add'>+        ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+        return TRUE;</div><div class='ctx'>       case INT2FIX(1): /* single element array */</div><div class='del'>-	ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='del'>-	return FALSE;</div><div class='add'>+        ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+        return FALSE;</div><div class='ctx'>       default:</div><div class='del'>-	iobj-&gt;insn_id = BIN(adjuststack);</div><div class='del'>-	return TRUE;</div><div class='add'>+        iobj-&gt;insn_id = BIN(adjuststack);</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-same_debug_pos_p(LINK_ELEMENT *iobj1, LINK_ELEMENT *iobj2)</div><div class='del'>-{</div><div class='del'>-    VALUE debug1 = OPERAND_AT(iobj1, 0);</div><div class='del'>-    VALUE debug2 = OPERAND_AT(iobj2, 0);</div><div class='del'>-    if (debug1 == debug2) return TRUE;</div><div class='del'>-    if (!RB_TYPE_P(debug1, T_ARRAY)) return FALSE;</div><div class='del'>-    if (!RB_TYPE_P(debug2, T_ARRAY)) return FALSE;</div><div class='del'>-    if (RARRAY_LEN(debug1) != 2) return FALSE;</div><div class='del'>-    if (RARRAY_LEN(debug2) != 2) return FALSE;</div><div class='del'>-    if (RARRAY_AREF(debug1, 0) != RARRAY_AREF(debug2, 0)) return FALSE;</div><div class='del'>-    if (RARRAY_AREF(debug1, 1) != RARRAY_AREF(debug2, 1)) return FALSE;</div><div class='del'>-    return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='ctx'> is_frozen_putstring(INSN *insn, VALUE *op)</div><div class='ctx'> {</div><div class='ctx'>     if (IS_INSN_ID(insn, putstring)) {</div><div class='hunk'>@@ -2638,68 +2936,91 @@ optimize_checktype(rb_iseq_t *iseq, INSN *iobj)</div><div class='ctx'>      *   jump L2</div><div class='ctx'>      * L2:</div><div class='ctx'>      */</div><div class='del'>-    int line;</div><div class='add'>+    int line, node_id;</div><div class='ctx'>     INSN *niobj, *ciobj, *dup = 0;</div><div class='ctx'>     LABEL *dest = 0;</div><div class='ctx'>     VALUE type;</div><div class='ctx'> </div><div class='ctx'>     switch (INSN_OF(iobj)) {</div><div class='ctx'>       case BIN(putstring):</div><div class='del'>-	type = INT2FIX(T_STRING);</div><div class='del'>-	break;</div><div class='add'>+        type = INT2FIX(T_STRING);</div><div class='add'>+        break;</div><div class='ctx'>       case BIN(putnil):</div><div class='del'>-	type = INT2FIX(T_NIL);</div><div class='del'>-	break;</div><div class='add'>+        type = INT2FIX(T_NIL);</div><div class='add'>+        break;</div><div class='ctx'>       case BIN(putobject):</div><div class='del'>-	type = INT2FIX(TYPE(OPERAND_AT(iobj, 0)));</div><div class='del'>-	break;</div><div class='add'>+        type = INT2FIX(TYPE(OPERAND_AT(iobj, 0)));</div><div class='add'>+        break;</div><div class='ctx'>       default: return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ciobj = (INSN *)get_next_insn(iobj);</div><div class='ctx'>     if (IS_INSN_ID(ciobj, jump)) {</div><div class='del'>-	ciobj = (INSN *)get_next_insn((INSN*)OPERAND_AT(ciobj, 0));</div><div class='add'>+        ciobj = (INSN *)get_next_insn((INSN*)OPERAND_AT(ciobj, 0));</div><div class='ctx'>     }</div><div class='ctx'>     if (IS_INSN_ID(ciobj, dup)) {</div><div class='del'>-	ciobj = (INSN *)get_next_insn(dup = ciobj);</div><div class='add'>+        ciobj = (INSN *)get_next_insn(dup = ciobj);</div><div class='ctx'>     }</div><div class='ctx'>     if (!ciobj || !IS_INSN_ID(ciobj, checktype)) return FALSE;</div><div class='ctx'>     niobj = (INSN *)get_next_insn(ciobj);</div><div class='ctx'>     if (!niobj) {</div><div class='del'>-      no_branch:</div><div class='del'>-	/* TODO: putobject true/false */</div><div class='del'>-	return FALSE;</div><div class='add'>+        /* TODO: putobject true/false */</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     switch (INSN_OF(niobj)) {</div><div class='ctx'>       case BIN(branchif):</div><div class='del'>-	if (OPERAND_AT(ciobj, 0) == type) {</div><div class='del'>-	    dest = (LABEL *)OPERAND_AT(niobj, 0);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (OPERAND_AT(ciobj, 0) == type) {</div><div class='add'>+            dest = (LABEL *)OPERAND_AT(niobj, 0);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case BIN(branchunless):</div><div class='del'>-	if (OPERAND_AT(ciobj, 0) != type) {</div><div class='del'>-	    dest = (LABEL *)OPERAND_AT(niobj, 0);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (OPERAND_AT(ciobj, 0) != type) {</div><div class='add'>+            dest = (LABEL *)OPERAND_AT(niobj, 0);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	goto no_branch;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     line = ciobj-&gt;insn_info.line_no;</div><div class='add'>+    node_id = ciobj-&gt;insn_info.node_id;</div><div class='add'>+    NODE dummy_line_node = generate_dummy_line_node(line, node_id);</div><div class='ctx'>     if (!dest) {</div><div class='del'>-	if (niobj-&gt;link.next &amp;&amp; IS_LABEL(niobj-&gt;link.next)) {</div><div class='del'>-	    dest = (LABEL *)niobj-&gt;link.next; /* reuse label */</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    dest = NEW_LABEL(line);</div><div class='del'>-	    ELEM_INSERT_NEXT(&amp;niobj-&gt;link, &amp;dest-&gt;link);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    INSERT_AFTER_INSN1(iobj, line, jump, dest);</div><div class='add'>+        if (niobj-&gt;link.next &amp;&amp; IS_LABEL(niobj-&gt;link.next)) {</div><div class='add'>+            dest = (LABEL *)niobj-&gt;link.next; /* reuse label */</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            dest = NEW_LABEL(line);</div><div class='add'>+            ELEM_INSERT_NEXT(&amp;niobj-&gt;link, &amp;dest-&gt;link);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    INSERT_AFTER_INSN1(iobj, &amp;dummy_line_node, jump, dest);</div><div class='ctx'>     LABEL_REF(dest);</div><div class='del'>-    if (!dup) INSERT_AFTER_INSN(iobj, line, pop);</div><div class='add'>+    if (!dup) INSERT_AFTER_INSN(iobj, &amp;dummy_line_node, pop);</div><div class='ctx'>     return TRUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const struct rb_callinfo *</div><div class='add'>+ci_flag_set(const rb_iseq_t *iseq, const struct rb_callinfo *ci, unsigned int add)</div><div class='add'>+{</div><div class='add'>+    const struct rb_callinfo *nci = vm_ci_new(vm_ci_mid(ci),</div><div class='add'>+                                             vm_ci_flag(ci) | add,</div><div class='add'>+                                             vm_ci_argc(ci),</div><div class='add'>+                                             vm_ci_kwarg(ci));</div><div class='add'>+    RB_OBJ_WRITTEN(iseq, ci, nci);</div><div class='add'>+    return nci;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const struct rb_callinfo *</div><div class='add'>+ci_argc_set(const rb_iseq_t *iseq, const struct rb_callinfo *ci, int argc)</div><div class='add'>+{</div><div class='add'>+    const struct rb_callinfo *nci = vm_ci_new(vm_ci_mid(ci),</div><div class='add'>+                                              vm_ci_flag(ci),</div><div class='add'>+                                              argc,</div><div class='add'>+                                              vm_ci_kwarg(ci));</div><div class='add'>+    RB_OBJ_WRITTEN(iseq, ci, nci);</div><div class='add'>+    return nci;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcallopt)</div><div class='ctx'> {</div><div class='hunk'>@@ -2709,126 +3030,113 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal</div><div class='ctx'>     optimize_checktype(iseq, iobj);</div><div class='ctx'> </div><div class='ctx'>     if (IS_INSN_ID(iobj, jump)) {</div><div class='del'>-	INSN *niobj, *diobj, *piobj, *dniobj;</div><div class='del'>-	diobj = (INSN *)get_destination_insn(iobj);</div><div class='del'>-	niobj = (INSN *)get_next_insn(iobj);</div><div class='del'>-</div><div class='del'>-	if (diobj == niobj) {</div><div class='del'>-	    /*</div><div class='del'>-	     *   jump LABEL</div><div class='del'>-	     *  LABEL:</div><div class='del'>-	     * =&gt;</div><div class='del'>-	     *   LABEL:</div><div class='del'>-	     */</div><div class='del'>-	    unref_destination(iobj, 0);</div><div class='del'>-	    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='del'>-	    return COMPILE_OK;</div><div class='del'>-	}</div><div class='del'>-	else if (iobj != diobj &amp;&amp; IS_INSN_ID(diobj, jump) &amp;&amp;</div><div class='del'>-		 OPERAND_AT(iobj, 0) != OPERAND_AT(diobj, 0)) {</div><div class='del'>-	    /*</div><div class='del'>-	     *  useless jump elimination:</div><div class='del'>-	     *     jump LABEL1</div><div class='del'>-	     *     ...</div><div class='del'>-	     *   LABEL1:</div><div class='del'>-	     *     jump LABEL2</div><div class='del'>-	     *</div><div class='del'>-	     *   =&gt; in this case, first jump instruction should jump to</div><div class='del'>-	     *      LABEL2 directly</div><div class='del'>-	     */</div><div class='del'>-	    replace_destination(iobj, diobj);</div><div class='del'>-	    remove_unreachable_chunk(iseq, iobj-&gt;link.next);</div><div class='del'>-	    goto again;</div><div class='del'>-	}</div><div class='del'>-	else if (dniobj = 0,</div><div class='del'>-		 IS_INSN_ID(diobj, leave) ||</div><div class='del'>-		 (diobj-&gt;operand_size == 0 &amp;&amp;</div><div class='del'>-		  (dniobj = (INSN *)get_next_insn(diobj)) != 0 &amp;&amp;</div><div class='del'>-		  (IS_INSN_ID(dniobj, leave) || (dniobj = 0)))) {</div><div class='del'>-	    INSN *pop;</div><div class='del'>-	    /*</div><div class='del'>-	     *  jump LABEL</div><div class='del'>-	     *  ...</div><div class='del'>-	     * LABEL:</div><div class='del'>-	     *  leave</div><div class='del'>-	     * =&gt;</div><div class='del'>-	     *  leave</div><div class='del'>-	     *  pop</div><div class='del'>-	     *  ...</div><div class='del'>-	     * LABEL:</div><div class='del'>-	     *  leave</div><div class='del'>-	     */</div><div class='del'>-	    /* replace */</div><div class='del'>-	    unref_destination(iobj, 0);</div><div class='del'>-	    iobj-&gt;insn_id = diobj-&gt;insn_id;</div><div class='del'>-	    iobj-&gt;operand_size = 0;</div><div class='del'>-	    iobj-&gt;insn_info = diobj-&gt;insn_info;</div><div class='del'>-	    if (dniobj) {</div><div class='del'>-		dniobj = new_insn_body(iseq, dniobj-&gt;insn_info.line_no, BIN(leave), 0);</div><div class='del'>-		ELEM_INSERT_NEXT(&amp;iobj-&gt;link, &amp;dniobj-&gt;link);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		dniobj = iobj;</div><div class='del'>-	    }</div><div class='del'>-	    /* adjust stack depth */</div><div class='del'>-	    pop = new_insn_body(iseq, diobj-&gt;insn_info.line_no, BIN(pop), 0);</div><div class='del'>-	    ELEM_INSERT_NEXT(&amp;dniobj-&gt;link, &amp;pop-&gt;link);</div><div class='del'>-	    goto again;</div><div class='del'>-	}</div><div class='del'>-	else if ((piobj = (INSN *)get_prev_insn(iobj)) != 0 &amp;&amp;</div><div class='del'>-		 (IS_INSN_ID(piobj, branchif) ||</div><div class='del'>-		  IS_INSN_ID(piobj, branchunless))) {</div><div class='del'>-	    INSN *pdiobj = (INSN *)get_destination_insn(piobj);</div><div class='del'>-	    if (niobj == pdiobj) {</div><div class='del'>-		int refcnt = IS_LABEL(piobj-&gt;link.next) ?</div><div class='del'>-		    ((LABEL *)piobj-&gt;link.next)-&gt;refcnt : 0;</div><div class='del'>-		/*</div><div class='del'>-		 * useless jump elimination (if/unless destination):</div><div class='del'>-		 *   if   L1</div><div class='del'>-		 *   jump L2</div><div class='del'>-		 * L1:</div><div class='del'>-		 *   ...</div><div class='del'>-		 * L2:</div><div class='del'>-		 *</div><div class='del'>-		 * ==&gt;</div><div class='del'>-		 *   unless L2</div><div class='del'>-		 * L1:</div><div class='del'>-		 *   ...</div><div class='del'>-		 * L2:</div><div class='del'>-		 */</div><div class='del'>-		piobj-&gt;insn_id = (IS_INSN_ID(piobj, branchif))</div><div class='del'>-		  ? BIN(branchunless) : BIN(branchif);</div><div class='del'>-		replace_destination(piobj, iobj);</div><div class='del'>-		if (refcnt &lt;= 1) {</div><div class='del'>-		    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    /* TODO: replace other branch destinations too */</div><div class='del'>-		}</div><div class='del'>-		return COMPILE_OK;</div><div class='del'>-	    }</div><div class='del'>-	    else if (diobj == pdiobj) {</div><div class='del'>-		/*</div><div class='del'>-		 * useless jump elimination (if/unless before jump):</div><div class='del'>-		 * L1:</div><div class='del'>-		 *   ...</div><div class='del'>-		 *   if   L1</div><div class='del'>-		 *   jump L1</div><div class='del'>-		 *</div><div class='del'>-		 * ==&gt;</div><div class='del'>-		 * L1:</div><div class='del'>-		 *   ...</div><div class='del'>-		 *   pop</div><div class='del'>-		 *   jump L1</div><div class='del'>-		 */</div><div class='del'>-		INSN *popiobj = new_insn_core(iseq, iobj-&gt;insn_info.line_no,</div><div class='del'>-					      BIN(pop), 0, 0);</div><div class='del'>-		ELEM_REPLACE(&amp;piobj-&gt;link, &amp;popiobj-&gt;link);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (remove_unreachable_chunk(iseq, iobj-&gt;link.next)) {</div><div class='del'>-	    goto again;</div><div class='del'>-	}</div><div class='add'>+        INSN *niobj, *diobj, *piobj;</div><div class='add'>+        diobj = (INSN *)get_destination_insn(iobj);</div><div class='add'>+        niobj = (INSN *)get_next_insn(iobj);</div><div class='add'>+</div><div class='add'>+        if (diobj == niobj) {</div><div class='add'>+            /*</div><div class='add'>+             *   jump LABEL</div><div class='add'>+             *  LABEL:</div><div class='add'>+             * =&gt;</div><div class='add'>+             *   LABEL:</div><div class='add'>+             */</div><div class='add'>+            unref_destination(iobj, 0);</div><div class='add'>+            ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+            return COMPILE_OK;</div><div class='add'>+        }</div><div class='add'>+        else if (iobj != diobj &amp;&amp; IS_INSN(&amp;diobj-&gt;link) &amp;&amp;</div><div class='add'>+                 IS_INSN_ID(diobj, jump) &amp;&amp;</div><div class='add'>+                 OPERAND_AT(iobj, 0) != OPERAND_AT(diobj, 0) &amp;&amp;</div><div class='add'>+                 diobj-&gt;insn_info.events == 0) {</div><div class='add'>+            /*</div><div class='add'>+             *  useless jump elimination:</div><div class='add'>+             *     jump LABEL1</div><div class='add'>+             *     ...</div><div class='add'>+             *   LABEL1:</div><div class='add'>+             *     jump LABEL2</div><div class='add'>+             *</div><div class='add'>+             *   =&gt; in this case, first jump instruction should jump to</div><div class='add'>+             *      LABEL2 directly</div><div class='add'>+             */</div><div class='add'>+            replace_destination(iobj, diobj);</div><div class='add'>+            remove_unreachable_chunk(iseq, iobj-&gt;link.next);</div><div class='add'>+            goto again;</div><div class='add'>+        }</div><div class='add'>+        else if (IS_INSN_ID(diobj, leave)) {</div><div class='add'>+            /*</div><div class='add'>+             *  jump LABEL</div><div class='add'>+             *  ...</div><div class='add'>+             * LABEL:</div><div class='add'>+             *  leave</div><div class='add'>+             * =&gt;</div><div class='add'>+             *  leave</div><div class='add'>+             *  ...</div><div class='add'>+             * LABEL:</div><div class='add'>+             *  leave</div><div class='add'>+             */</div><div class='add'>+            /* replace */</div><div class='add'>+            unref_destination(iobj, 0);</div><div class='add'>+            iobj-&gt;insn_id = BIN(leave);</div><div class='add'>+            iobj-&gt;operand_size = 0;</div><div class='add'>+            iobj-&gt;insn_info = diobj-&gt;insn_info;</div><div class='add'>+            goto again;</div><div class='add'>+        }</div><div class='add'>+        else if (IS_INSN(iobj-&gt;link.prev) &amp;&amp;</div><div class='add'>+                 (piobj = (INSN *)iobj-&gt;link.prev) &amp;&amp;</div><div class='add'>+                 (IS_INSN_ID(piobj, branchif) ||</div><div class='add'>+                  IS_INSN_ID(piobj, branchunless))) {</div><div class='add'>+            INSN *pdiobj = (INSN *)get_destination_insn(piobj);</div><div class='add'>+            if (niobj == pdiobj) {</div><div class='add'>+                int refcnt = IS_LABEL(piobj-&gt;link.next) ?</div><div class='add'>+                    ((LABEL *)piobj-&gt;link.next)-&gt;refcnt : 0;</div><div class='add'>+                /*</div><div class='add'>+                 * useless jump elimination (if/unless destination):</div><div class='add'>+                 *   if   L1</div><div class='add'>+                 *   jump L2</div><div class='add'>+                 * L1:</div><div class='add'>+                 *   ...</div><div class='add'>+                 * L2:</div><div class='add'>+                 *</div><div class='add'>+                 * ==&gt;</div><div class='add'>+                 *   unless L2</div><div class='add'>+                 * L1:</div><div class='add'>+                 *   ...</div><div class='add'>+                 * L2:</div><div class='add'>+                 */</div><div class='add'>+                piobj-&gt;insn_id = (IS_INSN_ID(piobj, branchif))</div><div class='add'>+                  ? BIN(branchunless) : BIN(branchif);</div><div class='add'>+                replace_destination(piobj, iobj);</div><div class='add'>+                if (refcnt &lt;= 1) {</div><div class='add'>+                    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    /* TODO: replace other branch destinations too */</div><div class='add'>+                }</div><div class='add'>+                return COMPILE_OK;</div><div class='add'>+            }</div><div class='add'>+            else if (diobj == pdiobj) {</div><div class='add'>+                /*</div><div class='add'>+                 * useless jump elimination (if/unless before jump):</div><div class='add'>+                 * L1:</div><div class='add'>+                 *   ...</div><div class='add'>+                 *   if   L1</div><div class='add'>+                 *   jump L1</div><div class='add'>+                 *</div><div class='add'>+                 * ==&gt;</div><div class='add'>+                 * L1:</div><div class='add'>+                 *   ...</div><div class='add'>+                 *   pop</div><div class='add'>+                 *   jump L1</div><div class='add'>+                 */</div><div class='add'>+                NODE dummy_line_node = generate_dummy_line_node(iobj-&gt;insn_info.line_no, iobj-&gt;insn_info.node_id);</div><div class='add'>+                INSN *popiobj = new_insn_core(iseq, &amp;dummy_line_node, BIN(pop), 0, 0);</div><div class='add'>+                ELEM_REPLACE(&amp;piobj-&gt;link, &amp;popiobj-&gt;link);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (remove_unreachable_chunk(iseq, iobj-&gt;link.next)) {</div><div class='add'>+            goto again;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='hunk'>@@ -2840,395 +3148,550 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal</div><div class='ctx'>      *</div><div class='ctx'>      * putobject "beg".."end"</div><div class='ctx'>      */</div><div class='del'>-    if (IS_INSN_ID(iobj, checkmatch)) {</div><div class='del'>-        INSN *range = (INSN *)get_prev_insn(iobj);</div><div class='add'>+    if (IS_INSN_ID(iobj, newrange)) {</div><div class='add'>+        INSN *const range = iobj;</div><div class='ctx'>         INSN *beg, *end;</div><div class='ctx'>         VALUE str_beg, str_end;</div><div class='ctx'> </div><div class='del'>-	if (range &amp;&amp; IS_INSN_ID(range, newrange) &amp;&amp;</div><div class='del'>-                (end = (INSN *)get_prev_insn(range)) != 0 &amp;&amp;</div><div class='add'>+        if ((end = (INSN *)get_prev_insn(range)) != 0 &amp;&amp;</div><div class='ctx'>                 is_frozen_putstring(end, &amp;str_end) &amp;&amp;</div><div class='ctx'>                 (beg = (INSN *)get_prev_insn(end)) != 0 &amp;&amp;</div><div class='ctx'>                 is_frozen_putstring(beg, &amp;str_beg)) {</div><div class='del'>-	    int excl = FIX2INT(OPERAND_AT(range, 0));</div><div class='del'>-	    VALUE lit_range = rb_range_new(str_beg, str_end, excl);</div><div class='del'>-</div><div class='del'>-	    iseq_add_mark_object_compile_time(iseq, lit_range);</div><div class='del'>-	    ELEM_REMOVE(&amp;beg-&gt;link);</div><div class='del'>-	    ELEM_REMOVE(&amp;end-&gt;link);</div><div class='del'>-	    range-&gt;insn_id = BIN(putobject);</div><div class='del'>-	    OPERAND_AT(range, 0) = lit_range;</div><div class='del'>-	}</div><div class='add'>+            int excl = FIX2INT(OPERAND_AT(range, 0));</div><div class='add'>+            VALUE lit_range = rb_range_new(str_beg, str_end, excl);</div><div class='add'>+</div><div class='add'>+            ELEM_REMOVE(&amp;beg-&gt;link);</div><div class='add'>+            ELEM_REMOVE(&amp;end-&gt;link);</div><div class='add'>+            range-&gt;insn_id = BIN(putobject);</div><div class='add'>+            OPERAND_AT(range, 0) = lit_range;</div><div class='add'>+            RB_OBJ_WRITTEN(iseq, Qundef, lit_range);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (IS_INSN_ID(iobj, leave)) {</div><div class='del'>-	remove_unreachable_chunk(iseq, iobj-&gt;link.next);</div><div class='add'>+        remove_unreachable_chunk(iseq, iobj-&gt;link.next);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     *  ...</div><div class='add'>+     *  duparray [...]</div><div class='add'>+     *  concatarray</div><div class='add'>+     * =&gt;</div><div class='add'>+     *  ...</div><div class='add'>+     *  putobject [...]</div><div class='add'>+     *  concatarray</div><div class='add'>+     */</div><div class='add'>+    if (IS_INSN_ID(iobj, duparray)) {</div><div class='add'>+        LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='add'>+        if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, concatarray)) {</div><div class='add'>+            iobj-&gt;insn_id = BIN(putobject);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (IS_INSN_ID(iobj, branchif) ||</div><div class='del'>-	IS_INSN_ID(iobj, branchnil) ||</div><div class='del'>-	IS_INSN_ID(iobj, branchunless)) {</div><div class='del'>-	/*</div><div class='del'>-	 *   if L1</div><div class='del'>-	 *   ...</div><div class='del'>-	 * L1:</div><div class='del'>-	 *   jump L2</div><div class='del'>-	 * =&gt;</div><div class='del'>-	 *   if L2</div><div class='del'>-	 */</div><div class='del'>-	INSN *nobj = (INSN *)get_destination_insn(iobj);</div><div class='del'>-	INSN *pobj = (INSN *)iobj-&gt;link.prev;</div><div class='del'>-	int prev_dup = 0;</div><div class='del'>-	if (pobj) {</div><div class='del'>-	    if (!IS_INSN(&amp;pobj-&gt;link))</div><div class='del'>-		pobj = 0;</div><div class='del'>-	    else if (IS_INSN_ID(pobj, dup))</div><div class='del'>-		prev_dup = 1;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	for (;;) {</div><div class='del'>-	    if (IS_INSN_ID(nobj, jump)) {</div><div class='del'>-		replace_destination(iobj, nobj);</div><div class='del'>-	    }</div><div class='del'>-	    else if (prev_dup &amp;&amp; IS_INSN_ID(nobj, dup) &amp;&amp;</div><div class='del'>-		     !!(nobj = (INSN *)nobj-&gt;link.next) &amp;&amp;</div><div class='del'>-		     /* basic blocks, with no labels in the middle */</div><div class='del'>-		     nobj-&gt;insn_id == iobj-&gt;insn_id) {</div><div class='del'>-		/*</div><div class='del'>-		 *   dup</div><div class='del'>-		 *   if L1</div><div class='del'>-		 *   ...</div><div class='del'>-		 * L1:</div><div class='del'>-		 *   dup</div><div class='del'>-		 *   if L2</div><div class='del'>-		 * =&gt;</div><div class='del'>-		 *   dup</div><div class='del'>-		 *   if L2</div><div class='del'>-		 *   ...</div><div class='del'>-		 * L1:</div><div class='del'>-		 *   dup</div><div class='del'>-		 *   if L2</div><div class='del'>-		 */</div><div class='del'>-		replace_destination(iobj, nobj);</div><div class='del'>-	    }</div><div class='del'>-	    else if (pobj) {</div><div class='del'>-		/*</div><div class='del'>-		 *   putnil</div><div class='del'>-		 *   if L1</div><div class='del'>-		 * =&gt;</div><div class='del'>-		 *   # nothing</div><div class='del'>-		 *</div><div class='del'>-		 *   putobject true</div><div class='del'>-		 *   if L1</div><div class='del'>-		 * =&gt;</div><div class='del'>-		 *   jump L1</div><div class='del'>-		 *</div><div class='del'>-		 *   putstring ".."</div><div class='del'>-		 *   if L1</div><div class='del'>-		 * =&gt;</div><div class='del'>-		 *   jump L1</div><div class='del'>-		 *</div><div class='del'>-		 *   putstring ".."</div><div class='del'>-		 *   dup</div><div class='del'>-		 *   if L1</div><div class='del'>-		 * =&gt;</div><div class='del'>-		 *   putstring ".."</div><div class='del'>-		 *   jump L1</div><div class='del'>-		 *</div><div class='del'>-		 */</div><div class='del'>-		int cond;</div><div class='del'>-		if (prev_dup &amp;&amp; IS_INSN(pobj-&gt;link.prev)) {</div><div class='del'>-		    pobj = (INSN *)pobj-&gt;link.prev;</div><div class='del'>-		}</div><div class='del'>-		if (IS_INSN_ID(pobj, putobject)) {</div><div class='del'>-		    cond = (IS_INSN_ID(iobj, branchif) ?</div><div class='del'>-			    OPERAND_AT(pobj, 0) != Qfalse :</div><div class='del'>-			    IS_INSN_ID(iobj, branchunless) ?</div><div class='del'>-			    OPERAND_AT(pobj, 0) == Qfalse :</div><div class='del'>-			    FALSE);</div><div class='del'>-		}</div><div class='del'>-		else if (IS_INSN_ID(pobj, putstring) ||</div><div class='del'>-			 IS_INSN_ID(pobj, duparray) ||</div><div class='del'>-			 IS_INSN_ID(pobj, newarray)) {</div><div class='del'>-		    cond = IS_INSN_ID(iobj, branchif);</div><div class='del'>-		}</div><div class='del'>-		else if (IS_INSN_ID(pobj, putnil)) {</div><div class='del'>-		    cond = !IS_INSN_ID(iobj, branchif);</div><div class='del'>-		}</div><div class='del'>-		else break;</div><div class='del'>-		if (prev_dup || !IS_INSN_ID(pobj, newarray)) {</div><div class='del'>-		    ELEM_REMOVE(iobj-&gt;link.prev);</div><div class='del'>-		}</div><div class='del'>-		else if (!iseq_pop_newarray(iseq, pobj)) {</div><div class='del'>-		    pobj = new_insn_core(iseq, pobj-&gt;insn_info.line_no, BIN(pop), 0, NULL);</div><div class='del'>-                    ELEM_INSERT_PREV(&amp;iobj-&gt;link, &amp;pobj-&gt;link);</div><div class='del'>-		}</div><div class='del'>-		if (cond) {</div><div class='del'>-		    if (prev_dup) {</div><div class='del'>-			pobj = new_insn_core(iseq, pobj-&gt;insn_info.line_no, BIN(putnil), 0, NULL);</div><div class='del'>-			ELEM_INSERT_NEXT(&amp;iobj-&gt;link, &amp;pobj-&gt;link);</div><div class='del'>-		    }</div><div class='del'>-		    iobj-&gt;insn_id = BIN(jump);</div><div class='del'>-		    goto again;</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    unref_destination(iobj, 0);</div><div class='del'>-		    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    else break;</div><div class='del'>-	    nobj = (INSN *)get_destination_insn(nobj);</div><div class='del'>-	}</div><div class='add'>+        IS_INSN_ID(iobj, branchnil) ||</div><div class='add'>+        IS_INSN_ID(iobj, branchunless)) {</div><div class='add'>+        /*</div><div class='add'>+         *   if L1</div><div class='add'>+         *   ...</div><div class='add'>+         * L1:</div><div class='add'>+         *   jump L2</div><div class='add'>+         * =&gt;</div><div class='add'>+         *   if L2</div><div class='add'>+         */</div><div class='add'>+        INSN *nobj = (INSN *)get_destination_insn(iobj);</div><div class='add'>+</div><div class='add'>+        /* This is super nasty hack!!!</div><div class='add'>+         *</div><div class='add'>+         * This jump-jump optimization may ignore event flags of the jump</div><div class='add'>+         * instruction being skipped.  Actually, Line 2 TracePoint event</div><div class='add'>+         * is never fired in the following code:</div><div class='add'>+         *</div><div class='add'>+         *   1: raise if 1 == 2</div><div class='add'>+         *   2: while true</div><div class='add'>+         *   3:   break</div><div class='add'>+         *   4: end</div><div class='add'>+         *</div><div class='add'>+         * This is critical for coverage measurement.  [Bug #15980]</div><div class='add'>+         *</div><div class='add'>+         * This is a stopgap measure: stop the jump-jump optimization if</div><div class='add'>+         * coverage measurement is enabled and if the skipped instruction</div><div class='add'>+         * has any event flag.</div><div class='add'>+         *</div><div class='add'>+         * Note that, still, TracePoint Line event does not occur on Line 2.</div><div class='add'>+         * This should be fixed in future.</div><div class='add'>+         */</div><div class='add'>+        int stop_optimization =</div><div class='add'>+            ISEQ_COVERAGE(iseq) &amp;&amp; ISEQ_LINE_COVERAGE(iseq) &amp;&amp;</div><div class='add'>+            nobj-&gt;link.type == ISEQ_ELEMENT_INSN &amp;&amp;</div><div class='add'>+            nobj-&gt;insn_info.events;</div><div class='add'>+        if (!stop_optimization) {</div><div class='add'>+            INSN *pobj = (INSN *)iobj-&gt;link.prev;</div><div class='add'>+            int prev_dup = 0;</div><div class='add'>+            if (pobj) {</div><div class='add'>+                if (!IS_INSN(&amp;pobj-&gt;link))</div><div class='add'>+                    pobj = 0;</div><div class='add'>+                else if (IS_INSN_ID(pobj, dup))</div><div class='add'>+                    prev_dup = 1;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            for (;;) {</div><div class='add'>+                if (IS_INSN(&amp;nobj-&gt;link) &amp;&amp; IS_INSN_ID(nobj, jump)) {</div><div class='add'>+                    replace_destination(iobj, nobj);</div><div class='add'>+                }</div><div class='add'>+                else if (prev_dup &amp;&amp; IS_INSN_ID(nobj, dup) &amp;&amp;</div><div class='add'>+                         !!(nobj = (INSN *)nobj-&gt;link.next) &amp;&amp;</div><div class='add'>+                         /* basic blocks, with no labels in the middle */</div><div class='add'>+                         nobj-&gt;insn_id == iobj-&gt;insn_id) {</div><div class='add'>+                    /*</div><div class='add'>+                     *   dup</div><div class='add'>+                     *   if L1</div><div class='add'>+                     *   ...</div><div class='add'>+                     * L1:</div><div class='add'>+                     *   dup</div><div class='add'>+                     *   if L2</div><div class='add'>+                     * =&gt;</div><div class='add'>+                     *   dup</div><div class='add'>+                     *   if L2</div><div class='add'>+                     *   ...</div><div class='add'>+                     * L1:</div><div class='add'>+                     *   dup</div><div class='add'>+                     *   if L2</div><div class='add'>+                     */</div><div class='add'>+                    replace_destination(iobj, nobj);</div><div class='add'>+                }</div><div class='add'>+                else if (pobj) {</div><div class='add'>+                    /*</div><div class='add'>+                     *   putnil</div><div class='add'>+                     *   if L1</div><div class='add'>+                     * =&gt;</div><div class='add'>+                     *   # nothing</div><div class='add'>+                     *</div><div class='add'>+                     *   putobject true</div><div class='add'>+                     *   if L1</div><div class='add'>+                     * =&gt;</div><div class='add'>+                     *   jump L1</div><div class='add'>+                     *</div><div class='add'>+                     *   putstring ".."</div><div class='add'>+                     *   if L1</div><div class='add'>+                     * =&gt;</div><div class='add'>+                     *   jump L1</div><div class='add'>+                     *</div><div class='add'>+                     *   putstring ".."</div><div class='add'>+                     *   dup</div><div class='add'>+                     *   if L1</div><div class='add'>+                     * =&gt;</div><div class='add'>+                     *   putstring ".."</div><div class='add'>+                     *   jump L1</div><div class='add'>+                     *</div><div class='add'>+                     */</div><div class='add'>+                    int cond;</div><div class='add'>+                    if (prev_dup &amp;&amp; IS_INSN(pobj-&gt;link.prev)) {</div><div class='add'>+                        pobj = (INSN *)pobj-&gt;link.prev;</div><div class='add'>+                    }</div><div class='add'>+                    if (IS_INSN_ID(pobj, putobject)) {</div><div class='add'>+                        cond = (IS_INSN_ID(iobj, branchif) ?</div><div class='add'>+                                OPERAND_AT(pobj, 0) != Qfalse :</div><div class='add'>+                                IS_INSN_ID(iobj, branchunless) ?</div><div class='add'>+                                OPERAND_AT(pobj, 0) == Qfalse :</div><div class='add'>+                                FALSE);</div><div class='add'>+                    }</div><div class='add'>+                    else if (IS_INSN_ID(pobj, putstring) ||</div><div class='add'>+                             IS_INSN_ID(pobj, duparray) ||</div><div class='add'>+                             IS_INSN_ID(pobj, newarray)) {</div><div class='add'>+                        cond = IS_INSN_ID(iobj, branchif);</div><div class='add'>+                    }</div><div class='add'>+                    else if (IS_INSN_ID(pobj, putnil)) {</div><div class='add'>+                        cond = !IS_INSN_ID(iobj, branchif);</div><div class='add'>+                    }</div><div class='add'>+                    else break;</div><div class='add'>+                    if (prev_dup || !IS_INSN_ID(pobj, newarray)) {</div><div class='add'>+                        ELEM_REMOVE(iobj-&gt;link.prev);</div><div class='add'>+                    }</div><div class='add'>+                    else if (!iseq_pop_newarray(iseq, pobj)) {</div><div class='add'>+                        NODE dummy_line_node = generate_dummy_line_node(pobj-&gt;insn_info.line_no, pobj-&gt;insn_info.node_id);</div><div class='add'>+                        pobj = new_insn_core(iseq, &amp;dummy_line_node, BIN(pop), 0, NULL);</div><div class='add'>+                        ELEM_INSERT_PREV(&amp;iobj-&gt;link, &amp;pobj-&gt;link);</div><div class='add'>+                    }</div><div class='add'>+                    if (cond) {</div><div class='add'>+                        if (prev_dup) {</div><div class='add'>+                            NODE dummy_line_node = generate_dummy_line_node(pobj-&gt;insn_info.line_no, pobj-&gt;insn_info.node_id);</div><div class='add'>+                            pobj = new_insn_core(iseq, &amp;dummy_line_node, BIN(putnil), 0, NULL);</div><div class='add'>+                            ELEM_INSERT_NEXT(&amp;iobj-&gt;link, &amp;pobj-&gt;link);</div><div class='add'>+                        }</div><div class='add'>+                        iobj-&gt;insn_id = BIN(jump);</div><div class='add'>+                        goto again;</div><div class='add'>+                    }</div><div class='add'>+                    else {</div><div class='add'>+                        unref_destination(iobj, 0);</div><div class='add'>+                        ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+                    }</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+                else break;</div><div class='add'>+                nobj = (INSN *)get_destination_insn(nobj);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (IS_INSN_ID(iobj, pop)) {</div><div class='del'>-	/*</div><div class='del'>-	 *  putself / putnil / putobject obj / putstring "..."</div><div class='del'>-	 *  pop</div><div class='del'>-	 * =&gt;</div><div class='del'>-	 *  # do nothing</div><div class='del'>-	 */</div><div class='del'>-	LINK_ELEMENT *prev = iobj-&gt;link.prev;</div><div class='del'>-	if (IS_INSN(prev)) {</div><div class='del'>-	    enum ruby_vminsn_type previ = ((INSN *)prev)-&gt;insn_id;</div><div class='del'>-	    if (previ == BIN(putobject) || previ == BIN(putnil) ||</div><div class='del'>-		previ == BIN(putself) || previ == BIN(putstring) ||</div><div class='del'>-		previ == BIN(dup) ||</div><div class='del'>-		previ == BIN(getlocal) ||</div><div class='del'>-		previ == BIN(getblockparam) ||</div><div class='del'>-		previ == BIN(getblockparamproxy) ||</div><div class='del'>-		/* getinstancevariable may issue a warning */</div><div class='del'>-		previ == BIN(duparray)) {</div><div class='del'>-		/* just push operand or static value and pop soon, no</div><div class='del'>-		 * side effects */</div><div class='del'>-		ELEM_REMOVE(prev);</div><div class='del'>-		ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='del'>-	    }</div><div class='del'>-	    else if (previ == BIN(newarray) &amp;&amp; iseq_pop_newarray(iseq, (INSN*)prev)) {</div><div class='del'>-		ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='del'>-	    }</div><div class='del'>-	    else if (previ == BIN(concatarray)) {</div><div class='del'>-		INSN *piobj = (INSN *)prev;</div><div class='del'>-		INSERT_BEFORE_INSN1(piobj, piobj-&gt;insn_info.line_no, splatarray, Qfalse);</div><div class='del'>-		INSN_OF(piobj) = BIN(pop);</div><div class='del'>-	    }</div><div class='del'>-	    else if (previ == BIN(concatstrings)) {</div><div class='del'>-		if (OPERAND_AT(prev, 0) == INT2FIX(1)) {</div><div class='del'>-		    ELEM_REMOVE(prev);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='del'>-		    INSN_OF(prev) = BIN(adjuststack);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        /*</div><div class='add'>+         *  putself / putnil / putobject obj / putstring "..."</div><div class='add'>+         *  pop</div><div class='add'>+         * =&gt;</div><div class='add'>+         *  # do nothing</div><div class='add'>+         */</div><div class='add'>+        LINK_ELEMENT *prev = iobj-&gt;link.prev;</div><div class='add'>+        if (IS_INSN(prev)) {</div><div class='add'>+            enum ruby_vminsn_type previ = ((INSN *)prev)-&gt;insn_id;</div><div class='add'>+            if (previ == BIN(putobject) || previ == BIN(putnil) ||</div><div class='add'>+                previ == BIN(putself) || previ == BIN(putstring) ||</div><div class='add'>+                previ == BIN(dup) ||</div><div class='add'>+                previ == BIN(getlocal) ||</div><div class='add'>+                previ == BIN(getblockparam) ||</div><div class='add'>+                previ == BIN(getblockparamproxy) ||</div><div class='add'>+                /* getinstancevariable may issue a warning */</div><div class='add'>+                previ == BIN(duparray)) {</div><div class='add'>+                /* just push operand or static value and pop soon, no</div><div class='add'>+                 * side effects */</div><div class='add'>+                ELEM_REMOVE(prev);</div><div class='add'>+                ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+            }</div><div class='add'>+            else if (previ == BIN(newarray) &amp;&amp; iseq_pop_newarray(iseq, (INSN*)prev)) {</div><div class='add'>+                ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+            }</div><div class='add'>+            else if (previ == BIN(concatarray)) {</div><div class='add'>+                INSN *piobj = (INSN *)prev;</div><div class='add'>+                NODE dummy_line_node = generate_dummy_line_node(piobj-&gt;insn_info.line_no, piobj-&gt;insn_info.node_id);</div><div class='add'>+                INSERT_BEFORE_INSN1(piobj, &amp;dummy_line_node, splatarray, Qfalse);</div><div class='add'>+                INSN_OF(piobj) = BIN(pop);</div><div class='add'>+            }</div><div class='add'>+            else if (previ == BIN(concatstrings)) {</div><div class='add'>+                if (OPERAND_AT(prev, 0) == INT2FIX(1)) {</div><div class='add'>+                    ELEM_REMOVE(prev);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+                    INSN_OF(prev) = BIN(adjuststack);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (IS_INSN_ID(iobj, newarray) ||</div><div class='del'>-	IS_INSN_ID(iobj, duparray) ||</div><div class='del'>-	IS_INSN_ID(iobj, expandarray) ||</div><div class='del'>-	IS_INSN_ID(iobj, concatarray) ||</div><div class='del'>-	IS_INSN_ID(iobj, splatarray) ||</div><div class='del'>-	0) {</div><div class='del'>-	/*</div><div class='del'>-	 *  newarray N</div><div class='del'>-	 *  splatarray</div><div class='del'>-	 * =&gt;</div><div class='del'>-	 *  newarray N</div><div class='del'>-	 * newarray always puts an array</div><div class='del'>-	 */</div><div class='del'>-	LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='del'>-	if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, splatarray)) {</div><div class='del'>-	    /* remove splatarray following always-array insn */</div><div class='del'>-	    ELEM_REMOVE(next);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (IS_INSN_ID(iobj, tostring)) {</div><div class='del'>-	LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='del'>-	/*</div><div class='del'>-	 *  tostring</div><div class='del'>-	 *  concatstrings 1</div><div class='del'>-	 * =&gt;</div><div class='del'>-	 *  tostring</div><div class='del'>-	 */</div><div class='del'>-	if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, concatstrings) &amp;&amp;</div><div class='del'>-	    OPERAND_AT(next, 0) == INT2FIX(1)) {</div><div class='del'>-	    ELEM_REMOVE(next);</div><div class='del'>-	}</div><div class='add'>+        IS_INSN_ID(iobj, duparray) ||</div><div class='add'>+        IS_INSN_ID(iobj, expandarray) ||</div><div class='add'>+        IS_INSN_ID(iobj, concatarray) ||</div><div class='add'>+        IS_INSN_ID(iobj, splatarray) ||</div><div class='add'>+        0) {</div><div class='add'>+        /*</div><div class='add'>+         *  newarray N</div><div class='add'>+         *  splatarray</div><div class='add'>+         * =&gt;</div><div class='add'>+         *  newarray N</div><div class='add'>+         * newarray always puts an array</div><div class='add'>+         */</div><div class='add'>+        LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='add'>+        if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, splatarray)) {</div><div class='add'>+            /* remove splatarray following always-array insn */</div><div class='add'>+            ELEM_REMOVE(next);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, newarray)) {</div><div class='add'>+        LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='add'>+        if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, expandarray) &amp;&amp;</div><div class='add'>+            OPERAND_AT(next, 1) == INT2FIX(0)) {</div><div class='add'>+            VALUE op1, op2;</div><div class='add'>+            op1 = OPERAND_AT(iobj, 0);</div><div class='add'>+            op2 = OPERAND_AT(next, 0);</div><div class='add'>+            ELEM_REMOVE(next);</div><div class='add'>+</div><div class='add'>+            if (op1 == op2) {</div><div class='add'>+                /*</div><div class='add'>+                 *  newarray 2</div><div class='add'>+                 *  expandarray 2, 0</div><div class='add'>+                 * =&gt;</div><div class='add'>+                 *  swap</div><div class='add'>+                 */</div><div class='add'>+                if (op1 == INT2FIX(2)) {</div><div class='add'>+                    INSN_OF(iobj) = BIN(swap);</div><div class='add'>+                    iobj-&gt;operand_size = 0;</div><div class='add'>+                }</div><div class='add'>+                /*</div><div class='add'>+                 *  newarray X</div><div class='add'>+                 *  expandarray X, 0</div><div class='add'>+                 * =&gt;</div><div class='add'>+                 *  opt_reverse X</div><div class='add'>+                 */</div><div class='add'>+                else {</div><div class='add'>+                    INSN_OF(iobj) = BIN(opt_reverse);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                NODE dummy_line_node = generate_dummy_line_node(iobj-&gt;insn_info.line_no, iobj-&gt;insn_info.node_id);</div><div class='add'>+                long diff = FIX2LONG(op1) - FIX2LONG(op2);</div><div class='add'>+                INSN_OF(iobj) = BIN(opt_reverse);</div><div class='add'>+                OPERAND_AT(iobj, 0) = OPERAND_AT(next, 0);</div><div class='add'>+</div><div class='add'>+                if (op1 &gt; op2) {</div><div class='add'>+                    /* X &gt; Y</div><div class='add'>+                     *  newarray X</div><div class='add'>+                     *  expandarray Y, 0</div><div class='add'>+                     * =&gt;</div><div class='add'>+                     *  pop * (Y-X)</div><div class='add'>+                     *  opt_reverse Y</div><div class='add'>+                     */</div><div class='add'>+                    for (; diff &gt; 0; diff--) {</div><div class='add'>+                        INSERT_BEFORE_INSN(iobj, &amp;dummy_line_node, pop);</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                else { /* (op1 &lt; op2) */</div><div class='add'>+                    /* X &lt; Y</div><div class='add'>+                     *  newarray X</div><div class='add'>+                     *  expandarray Y, 0</div><div class='add'>+                     * =&gt;</div><div class='add'>+                     *  putnil * (Y-X)</div><div class='add'>+                     *  opt_reverse Y</div><div class='add'>+                     */</div><div class='add'>+                    for (; diff &lt; 0; diff++) {</div><div class='add'>+                        INSERT_BEFORE_INSN(iobj, &amp;dummy_line_node, putnil);</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, duparray)) {</div><div class='add'>+        LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='add'>+        /*</div><div class='add'>+         *  duparray obj</div><div class='add'>+         *  expandarray X, 0</div><div class='add'>+         * =&gt;</div><div class='add'>+         *  putobject obj</div><div class='add'>+         *  expandarray X, 0</div><div class='add'>+         */</div><div class='add'>+        if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, expandarray)) {</div><div class='add'>+            INSN_OF(iobj) = BIN(putobject);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (IS_INSN_ID(iobj, anytostring)) {</div><div class='add'>+        LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='add'>+        /*</div><div class='add'>+         *  anytostring</div><div class='add'>+         *  concatstrings 1</div><div class='add'>+         * =&gt;</div><div class='add'>+         *  anytostring</div><div class='add'>+         */</div><div class='add'>+        if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, concatstrings) &amp;&amp;</div><div class='add'>+            OPERAND_AT(next, 0) == INT2FIX(1)) {</div><div class='add'>+            ELEM_REMOVE(next);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (IS_INSN_ID(iobj, putstring) ||</div><div class='del'>-	(IS_INSN_ID(iobj, putobject) &amp;&amp; RB_TYPE_P(OPERAND_AT(iobj, 0), T_STRING))) {</div><div class='del'>-	/*</div><div class='del'>-	 *  putstring ""</div><div class='del'>-	 *  concatstrings N</div><div class='del'>-	 * =&gt;</div><div class='del'>-	 *  concatstrings N-1</div><div class='del'>-	 */</div><div class='del'>-	if (IS_NEXT_INSN_ID(&amp;iobj-&gt;link, concatstrings) &amp;&amp;</div><div class='del'>-	    RSTRING_LEN(OPERAND_AT(iobj, 0)) == 0) {</div><div class='del'>-	    INSN *next = (INSN *)iobj-&gt;link.next;</div><div class='del'>-	    if ((OPERAND_AT(next, 0) = FIXNUM_INC(OPERAND_AT(next, 0), -1)) == INT2FIX(1)) {</div><div class='del'>-		ELEM_REMOVE(&amp;next-&gt;link);</div><div class='del'>-	    }</div><div class='del'>-	    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='del'>-	}</div><div class='add'>+        (IS_INSN_ID(iobj, putobject) &amp;&amp; RB_TYPE_P(OPERAND_AT(iobj, 0), T_STRING))) {</div><div class='add'>+        /*</div><div class='add'>+         *  putstring ""</div><div class='add'>+         *  concatstrings N</div><div class='add'>+         * =&gt;</div><div class='add'>+         *  concatstrings N-1</div><div class='add'>+         */</div><div class='add'>+        if (IS_NEXT_INSN_ID(&amp;iobj-&gt;link, concatstrings) &amp;&amp;</div><div class='add'>+            RSTRING_LEN(OPERAND_AT(iobj, 0)) == 0) {</div><div class='add'>+            INSN *next = (INSN *)iobj-&gt;link.next;</div><div class='add'>+            if ((OPERAND_AT(next, 0) = FIXNUM_INC(OPERAND_AT(next, 0), -1)) == INT2FIX(1)) {</div><div class='add'>+                ELEM_REMOVE(&amp;next-&gt;link);</div><div class='add'>+            }</div><div class='add'>+            ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (IS_INSN_ID(iobj, concatstrings)) {</div><div class='del'>-	/*</div><div class='del'>-	 *  concatstrings N</div><div class='del'>-	 *  concatstrings M</div><div class='del'>-	 * =&gt;</div><div class='del'>-	 *  concatstrings N+M-1</div><div class='del'>-	 */</div><div class='del'>-	LINK_ELEMENT *next = iobj-&gt;link.next, *freeze = 0;</div><div class='del'>-	INSN *jump = 0;</div><div class='del'>-	if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, freezestring))</div><div class='del'>-	    next = (freeze = next)-&gt;next;</div><div class='del'>-	if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, jump))</div><div class='del'>-	    next = get_destination_insn(jump = (INSN *)next);</div><div class='del'>-	if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, concatstrings)) {</div><div class='del'>-	    int n = FIX2INT(OPERAND_AT(iobj, 0)) + FIX2INT(OPERAND_AT(next, 0)) - 1;</div><div class='del'>-	    OPERAND_AT(iobj, 0) = INT2FIX(n);</div><div class='del'>-	    if (jump) {</div><div class='del'>-		LABEL *label = ((LABEL *)OPERAND_AT(jump, 0));</div><div class='del'>-		if (!--label-&gt;refcnt) {</div><div class='del'>-		    ELEM_REMOVE(&amp;label-&gt;link);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    label = NEW_LABEL(0);</div><div class='del'>-		    OPERAND_AT(jump, 0) = (VALUE)label;</div><div class='del'>-		}</div><div class='del'>-		label-&gt;refcnt++;</div><div class='del'>-		if (freeze &amp;&amp; IS_NEXT_INSN_ID(next, freezestring)) {</div><div class='del'>-		    if (same_debug_pos_p(freeze, next-&gt;next)) {</div><div class='del'>-			ELEM_REMOVE(freeze);</div><div class='del'>-		    }</div><div class='del'>-		    else {</div><div class='del'>-			next = next-&gt;next;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		ELEM_INSERT_NEXT(next, &amp;label-&gt;link);</div><div class='del'>-		CHECK(iseq_peephole_optimize(iseq, get_next_insn(jump), do_tailcallopt));</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		if (freeze) ELEM_REMOVE(freeze);</div><div class='del'>-		ELEM_REMOVE(next);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (IS_INSN_ID(iobj, freezestring) &amp;&amp;</div><div class='del'>-	NIL_P(OPERAND_AT(iobj, 0)) &amp;&amp;</div><div class='del'>-	IS_NEXT_INSN_ID(&amp;iobj-&gt;link, send)) {</div><div class='del'>-	INSN *niobj = (INSN *)iobj-&gt;link.next;</div><div class='del'>-	struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(niobj, 0);</div><div class='del'>-	/*</div><div class='del'>-	 *  freezestring nil # no debug_info</div><div class='del'>-	 *  send &lt;:+@, 0, ARG_SIMPLE&gt;  # :-@, too</div><div class='del'>-	 * =&gt;</div><div class='del'>-	 *  send &lt;:+@, 0, ARG_SIMPLE&gt;  # :-@, too</div><div class='del'>-	 */</div><div class='del'>-	if ((ci-&gt;mid == idUPlus || ci-&gt;mid == idUMinus) &amp;&amp;</div><div class='del'>-	    (ci-&gt;flag &amp; VM_CALL_ARGS_SIMPLE) &amp;&amp;</div><div class='del'>-	    ci-&gt;orig_argc == 0) {</div><div class='del'>-	    ELEM_REMOVE(list);</div><div class='del'>-	    return COMPILE_OK;</div><div class='del'>-	}</div><div class='add'>+        /*</div><div class='add'>+         *  concatstrings N</div><div class='add'>+         *  concatstrings M</div><div class='add'>+         * =&gt;</div><div class='add'>+         *  concatstrings N+M-1</div><div class='add'>+         */</div><div class='add'>+        LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='add'>+        INSN *jump = 0;</div><div class='add'>+        if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, jump))</div><div class='add'>+            next = get_destination_insn(jump = (INSN *)next);</div><div class='add'>+        if (IS_INSN(next) &amp;&amp; IS_INSN_ID(next, concatstrings)) {</div><div class='add'>+            int n = FIX2INT(OPERAND_AT(iobj, 0)) + FIX2INT(OPERAND_AT(next, 0)) - 1;</div><div class='add'>+            OPERAND_AT(iobj, 0) = INT2FIX(n);</div><div class='add'>+            if (jump) {</div><div class='add'>+                LABEL *label = ((LABEL *)OPERAND_AT(jump, 0));</div><div class='add'>+                if (!--label-&gt;refcnt) {</div><div class='add'>+                    ELEM_REMOVE(&amp;label-&gt;link);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    label = NEW_LABEL(0);</div><div class='add'>+                    OPERAND_AT(jump, 0) = (VALUE)label;</div><div class='add'>+                }</div><div class='add'>+                label-&gt;refcnt++;</div><div class='add'>+                ELEM_INSERT_NEXT(next, &amp;label-&gt;link);</div><div class='add'>+                CHECK(iseq_peephole_optimize(iseq, get_next_insn(jump), do_tailcallopt));</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ELEM_REMOVE(next);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (do_tailcallopt &amp;&amp;</div><div class='del'>-	(IS_INSN_ID(iobj, send) ||</div><div class='del'>-	 IS_INSN_ID(iobj, opt_aref_with) ||</div><div class='del'>-	 IS_INSN_ID(iobj, opt_aset_with) ||</div><div class='del'>-	 IS_INSN_ID(iobj, invokesuper))) {</div><div class='del'>-	/*</div><div class='del'>-	 *  send ...</div><div class='del'>-	 *  leave</div><div class='del'>-	 * =&gt;</div><div class='del'>-	 *  send ..., ... | VM_CALL_TAILCALL, ...</div><div class='del'>-	 *  leave # unreachable</div><div class='del'>-	 */</div><div class='del'>-	INSN *piobj = NULL;</div><div class='del'>-	if (iobj-&gt;link.next) {</div><div class='del'>-	    LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='del'>-	    do {</div><div class='del'>-		if (!IS_INSN(next)) {</div><div class='del'>-		    next = next-&gt;next;</div><div class='del'>-		    continue;</div><div class='del'>-		}</div><div class='del'>-		switch (INSN_OF(next)) {</div><div class='del'>-		  case BIN(nop):</div><div class='del'>-		    next = next-&gt;next;</div><div class='del'>-		    break;</div><div class='del'>-		  case BIN(jump):</div><div class='del'>-		    /* if cond</div><div class='del'>-		     *   return tailcall</div><div class='del'>-		     * end</div><div class='del'>-		     */</div><div class='del'>-		    next = get_destination_insn((INSN *)next);</div><div class='del'>-		    break;</div><div class='del'>-		  case BIN(leave):</div><div class='del'>-		    piobj = iobj;</div><div class='del'>-		  default:</div><div class='del'>-		    next = NULL;</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    } while (next);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (piobj) {</div><div class='del'>-	    struct rb_call_info *ci = (struct rb_call_info *)piobj-&gt;operands[0];</div><div class='del'>-	    if (IS_INSN_ID(piobj, send) || IS_INSN_ID(piobj, invokesuper)) {</div><div class='del'>-		if (piobj-&gt;operands[2] == 0) { /* no blockiseq */</div><div class='del'>-		    ci-&gt;flag |= VM_CALL_TAILCALL;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		ci-&gt;flag |= VM_CALL_TAILCALL;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        (IS_INSN_ID(iobj, send) ||</div><div class='add'>+         IS_INSN_ID(iobj, opt_aref_with) ||</div><div class='add'>+         IS_INSN_ID(iobj, opt_aset_with) ||</div><div class='add'>+         IS_INSN_ID(iobj, invokesuper))) {</div><div class='add'>+        /*</div><div class='add'>+         *  send ...</div><div class='add'>+         *  leave</div><div class='add'>+         * =&gt;</div><div class='add'>+         *  send ..., ... | VM_CALL_TAILCALL, ...</div><div class='add'>+         *  leave # unreachable</div><div class='add'>+         */</div><div class='add'>+        INSN *piobj = NULL;</div><div class='add'>+        if (iobj-&gt;link.next) {</div><div class='add'>+            LINK_ELEMENT *next = iobj-&gt;link.next;</div><div class='add'>+            do {</div><div class='add'>+                if (!IS_INSN(next)) {</div><div class='add'>+                    next = next-&gt;next;</div><div class='add'>+                    continue;</div><div class='add'>+                }</div><div class='add'>+                switch (INSN_OF(next)) {</div><div class='add'>+                  case BIN(nop):</div><div class='add'>+                    next = next-&gt;next;</div><div class='add'>+                    break;</div><div class='add'>+                  case BIN(jump):</div><div class='add'>+                    /* if cond</div><div class='add'>+                     *   return tailcall</div><div class='add'>+                     * end</div><div class='add'>+                     */</div><div class='add'>+                    next = get_destination_insn((INSN *)next);</div><div class='add'>+                    break;</div><div class='add'>+                  case BIN(leave):</div><div class='add'>+                    piobj = iobj;</div><div class='add'>+                    /* fall through */</div><div class='add'>+                  default:</div><div class='add'>+                    next = NULL;</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            } while (next);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (piobj) {</div><div class='add'>+            const struct rb_callinfo *ci = (struct rb_callinfo *)OPERAND_AT(piobj, 0);</div><div class='add'>+            if (IS_INSN_ID(piobj, send) ||</div><div class='add'>+                IS_INSN_ID(piobj, invokesuper)) {</div><div class='add'>+                if (OPERAND_AT(piobj, 1) == 0) { /* no blockiseq */</div><div class='add'>+                    ci = ci_flag_set(iseq, ci, VM_CALL_TAILCALL);</div><div class='add'>+                    OPERAND_AT(piobj, 0) = (VALUE)ci;</div><div class='add'>+                    RB_OBJ_WRITTEN(iseq, Qundef, ci);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ci = ci_flag_set(iseq, ci, VM_CALL_TAILCALL);</div><div class='add'>+                OPERAND_AT(piobj, 0) = (VALUE)ci;</div><div class='add'>+                RB_OBJ_WRITTEN(iseq, Qundef, ci);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (IS_INSN_ID(iobj, dup)) {</div><div class='del'>-	if (IS_NEXT_INSN_ID(&amp;iobj-&gt;link, setlocal)) {</div><div class='del'>-	    LINK_ELEMENT *set1 = iobj-&gt;link.next, *set2 = NULL;</div><div class='del'>-	    if (IS_NEXT_INSN_ID(set1, setlocal)) {</div><div class='del'>-		set2 = set1-&gt;next;</div><div class='del'>-		if (OPERAND_AT(set1, 0) == OPERAND_AT(set2, 0) &amp;&amp;</div><div class='del'>-		    OPERAND_AT(set1, 1) == OPERAND_AT(set2, 1)) {</div><div class='del'>-		    ELEM_REMOVE(set1);</div><div class='del'>-		    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else if (IS_NEXT_INSN_ID(set1, dup) &amp;&amp;</div><div class='del'>-		     IS_NEXT_INSN_ID(set1-&gt;next, setlocal)) {</div><div class='del'>-		set2 = set1-&gt;next-&gt;next;</div><div class='del'>-		if (OPERAND_AT(set1, 0) == OPERAND_AT(set2, 0) &amp;&amp;</div><div class='del'>-		    OPERAND_AT(set1, 1) == OPERAND_AT(set2, 1)) {</div><div class='del'>-		    ELEM_REMOVE(set1-&gt;next);</div><div class='del'>-		    ELEM_REMOVE(set2);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        if (IS_NEXT_INSN_ID(&amp;iobj-&gt;link, setlocal)) {</div><div class='add'>+            LINK_ELEMENT *set1 = iobj-&gt;link.next, *set2 = NULL;</div><div class='add'>+</div><div class='add'>+            /*</div><div class='add'>+            *  dup</div><div class='add'>+            *  setlocal x, y</div><div class='add'>+            *  setlocal x, y</div><div class='add'>+            * =&gt;</div><div class='add'>+            *  dup</div><div class='add'>+            *  setlocal x, y</div><div class='add'>+            */</div><div class='add'>+            if (IS_NEXT_INSN_ID(set1, setlocal)) {</div><div class='add'>+                set2 = set1-&gt;next;</div><div class='add'>+                if (OPERAND_AT(set1, 0) == OPERAND_AT(set2, 0) &amp;&amp;</div><div class='add'>+                    OPERAND_AT(set1, 1) == OPERAND_AT(set2, 1)) {</div><div class='add'>+                    ELEM_REMOVE(set1);</div><div class='add'>+                    ELEM_REMOVE(&amp;iobj-&gt;link);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            /*</div><div class='add'>+            *  dup</div><div class='add'>+            *  setlocal x, y</div><div class='add'>+            *  dup</div><div class='add'>+            *  setlocal x, y</div><div class='add'>+            * =&gt;</div><div class='add'>+            *  dup</div><div class='add'>+            *  setlocal x, y</div><div class='add'>+            */</div><div class='add'>+            else if (IS_NEXT_INSN_ID(set1, dup) &amp;&amp;</div><div class='add'>+                     IS_NEXT_INSN_ID(set1-&gt;next, setlocal)) {</div><div class='add'>+                set2 = set1-&gt;next-&gt;next;</div><div class='add'>+                if (OPERAND_AT(set1, 0) == OPERAND_AT(set2, 0) &amp;&amp;</div><div class='add'>+                    OPERAND_AT(set1, 1) == OPERAND_AT(set2, 1)) {</div><div class='add'>+                    ELEM_REMOVE(set1-&gt;next);</div><div class='add'>+                    ELEM_REMOVE(set2);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    /*</div><div class='add'>+    *  getlocal x, y</div><div class='add'>+    *  dup</div><div class='add'>+    *  setlocal x, y</div><div class='add'>+    * =&gt;</div><div class='add'>+    *  dup</div><div class='add'>+    */</div><div class='ctx'>     if (IS_INSN_ID(iobj, getlocal)) {</div><div class='del'>-	LINK_ELEMENT *niobj = &amp;iobj-&gt;link;</div><div class='del'>-	if (IS_NEXT_INSN_ID(niobj, dup)) {</div><div class='del'>-	    niobj = niobj-&gt;next;</div><div class='del'>-	}</div><div class='del'>-	if (IS_NEXT_INSN_ID(niobj, setlocal)) {</div><div class='del'>-	    LINK_ELEMENT *set1 = niobj-&gt;next;</div><div class='del'>-	    if (OPERAND_AT(iobj, 0) == OPERAND_AT(set1, 0) &amp;&amp;</div><div class='del'>-		OPERAND_AT(iobj, 1) == OPERAND_AT(set1, 1)) {</div><div class='del'>-		ELEM_REMOVE(set1);</div><div class='del'>-		ELEM_REMOVE(niobj);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        LINK_ELEMENT *niobj = &amp;iobj-&gt;link;</div><div class='add'>+        if (IS_NEXT_INSN_ID(niobj, dup)) {</div><div class='add'>+            niobj = niobj-&gt;next;</div><div class='add'>+        }</div><div class='add'>+        if (IS_NEXT_INSN_ID(niobj, setlocal)) {</div><div class='add'>+            LINK_ELEMENT *set1 = niobj-&gt;next;</div><div class='add'>+            if (OPERAND_AT(iobj, 0) == OPERAND_AT(set1, 0) &amp;&amp;</div><div class='add'>+                OPERAND_AT(iobj, 1) == OPERAND_AT(set1, 1)) {</div><div class='add'>+                ELEM_REMOVE(set1);</div><div class='add'>+                ELEM_REMOVE(niobj);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+    *  opt_invokebuiltin_delegate</div><div class='add'>+    *  trace</div><div class='add'>+    *  leave</div><div class='add'>+    * =&gt;</div><div class='add'>+    *  opt_invokebuiltin_delegate_leave</div><div class='add'>+    *  trace</div><div class='add'>+    *  leave</div><div class='add'>+    */</div><div class='add'>+    if (IS_INSN_ID(iobj, opt_invokebuiltin_delegate)) {</div><div class='add'>+        if (IS_TRACE(iobj-&gt;link.next)) {</div><div class='add'>+            if (IS_NEXT_INSN_ID(iobj-&gt;link.next, leave)) {</div><div class='add'>+                iobj-&gt;insn_id = BIN(opt_invokebuiltin_delegate_leave);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+    *  getblockparam</div><div class='add'>+    *  branchif / branchunless</div><div class='add'>+    * =&gt;</div><div class='add'>+    *  getblockparamproxy</div><div class='add'>+    *  branchif / branchunless</div><div class='add'>+    */</div><div class='add'>+    if (IS_INSN_ID(iobj, getblockparam)) {</div><div class='add'>+        if (IS_NEXT_INSN_ID(&amp;iobj-&gt;link, branchif) || IS_NEXT_INSN_ID(&amp;iobj-&gt;link, branchunless)) {</div><div class='add'>+            iobj-&gt;insn_id = BIN(getblockparamproxy);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return COMPILE_OK;</div><div class='hunk'>@@ -3239,15 +3702,14 @@ insn_set_specialized_instruction(rb_iseq_t *iseq, INSN *iobj, int insn_id)</div><div class='ctx'> {</div><div class='ctx'>     iobj-&gt;insn_id = insn_id;</div><div class='ctx'>     iobj-&gt;operand_size = insn_len(insn_id) - 1;</div><div class='add'>+    iobj-&gt;insn_info.events |= RUBY_EVENT_C_CALL | RUBY_EVENT_C_RETURN;</div><div class='ctx'> </div><div class='ctx'>     if (insn_id == BIN(opt_neq)) {</div><div class='del'>-	VALUE *old_operands = iobj-&gt;operands;</div><div class='del'>-	iobj-&gt;operand_size = 4;</div><div class='del'>-	iobj-&gt;operands = (VALUE *)compile_data_alloc(iseq, iobj-&gt;operand_size * sizeof(VALUE));</div><div class='del'>-	iobj-&gt;operands[0] = (VALUE)new_callinfo(iseq, idEq, 1, 0, NULL, FALSE);</div><div class='del'>-	iobj-&gt;operands[1] = Qfalse; /* CALL_CACHE */</div><div class='del'>-	iobj-&gt;operands[2] = old_operands[0];</div><div class='del'>-	iobj-&gt;operands[3] = Qfalse; /* CALL_CACHE */</div><div class='add'>+        VALUE original_ci = iobj-&gt;operands[0];</div><div class='add'>+        iobj-&gt;operand_size = 2;</div><div class='add'>+        iobj-&gt;operands = compile_data_calloc2(iseq, iobj-&gt;operand_size, sizeof(VALUE));</div><div class='add'>+        iobj-&gt;operands[0] = (VALUE)new_callinfo(iseq, idEq, 1, 0, NULL, FALSE);</div><div class='add'>+        iobj-&gt;operands[1] = original_ci;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return COMPILE_OK;</div><div class='hunk'>@@ -3257,75 +3719,77 @@ static int</div><div class='ctx'> iseq_specialized_instruction(rb_iseq_t *iseq, INSN *iobj)</div><div class='ctx'> {</div><div class='ctx'>     if (IS_INSN_ID(iobj, newarray) &amp;&amp; iobj-&gt;link.next &amp;&amp;</div><div class='del'>-	IS_INSN(iobj-&gt;link.next)) {</div><div class='del'>-	/*</div><div class='del'>-	 *   [a, b, ...].max/min -&gt; a, b, c, opt_newarray_max/min</div><div class='del'>-	 */</div><div class='del'>-	INSN *niobj = (INSN *)iobj-&gt;link.next;</div><div class='del'>-	if (IS_INSN_ID(niobj, send)) {</div><div class='del'>-	    struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(niobj, 0);</div><div class='del'>-	    if ((ci-&gt;flag &amp; VM_CALL_ARGS_SIMPLE) &amp;&amp; ci-&gt;orig_argc == 0) {</div><div class='del'>-		switch (ci-&gt;mid) {</div><div class='del'>-		  case idMax:</div><div class='del'>-		    iobj-&gt;insn_id = BIN(opt_newarray_max);</div><div class='del'>-		    ELEM_REMOVE(&amp;niobj-&gt;link);</div><div class='del'>-		    return COMPILE_OK;</div><div class='del'>-		  case idMin:</div><div class='del'>-		    iobj-&gt;insn_id = BIN(opt_newarray_min);</div><div class='del'>-		    ELEM_REMOVE(&amp;niobj-&gt;link);</div><div class='del'>-		    return COMPILE_OK;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        IS_INSN(iobj-&gt;link.next)) {</div><div class='add'>+        /*</div><div class='add'>+         *   [a, b, ...].max/min -&gt; a, b, c, opt_newarray_max/min</div><div class='add'>+         */</div><div class='add'>+        INSN *niobj = (INSN *)iobj-&gt;link.next;</div><div class='add'>+        if (IS_INSN_ID(niobj, send)) {</div><div class='add'>+            const struct rb_callinfo *ci = (struct rb_callinfo *)OPERAND_AT(niobj, 0);</div><div class='add'>+            if ((vm_ci_flag(ci) &amp; VM_CALL_ARGS_SIMPLE) &amp;&amp; vm_ci_argc(ci) == 0) {</div><div class='add'>+                switch (vm_ci_mid(ci)) {</div><div class='add'>+                  case idMax:</div><div class='add'>+                    iobj-&gt;insn_id = BIN(opt_newarray_max);</div><div class='add'>+                    ELEM_REMOVE(&amp;niobj-&gt;link);</div><div class='add'>+                    return COMPILE_OK;</div><div class='add'>+                  case idMin:</div><div class='add'>+                    iobj-&gt;insn_id = BIN(opt_newarray_min);</div><div class='add'>+                    ELEM_REMOVE(&amp;niobj-&gt;link);</div><div class='add'>+                    return COMPILE_OK;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (IS_INSN_ID(iobj, send)) {</div><div class='del'>-	struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(iobj, 0);</div><div class='del'>-	const rb_iseq_t *blockiseq = (rb_iseq_t *)OPERAND_AT(iobj, 2);</div><div class='add'>+        const struct rb_callinfo *ci = (struct rb_callinfo *)OPERAND_AT(iobj, 0);</div><div class='add'>+        const rb_iseq_t *blockiseq = (rb_iseq_t *)OPERAND_AT(iobj, 1);</div><div class='ctx'> </div><div class='ctx'> #define SP_INSN(opt) insn_set_specialized_instruction(iseq, iobj, BIN(opt_##opt))</div><div class='del'>-	if (ci-&gt;flag &amp; VM_CALL_ARGS_SIMPLE) {</div><div class='del'>-	    switch (ci-&gt;orig_argc) {</div><div class='del'>-	      case 0:</div><div class='del'>-		switch (ci-&gt;mid) {</div><div class='del'>-		  case idLength: SP_INSN(length); return COMPILE_OK;</div><div class='del'>-		  case idSize:	 SP_INSN(size);	  return COMPILE_OK;</div><div class='del'>-		  case idEmptyP: SP_INSN(empty_p);return COMPILE_OK;</div><div class='del'>-		  case idSucc:	 SP_INSN(succ);	  return COMPILE_OK;</div><div class='del'>-		  case idNot:	 SP_INSN(not);	  return COMPILE_OK;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      case 1:</div><div class='del'>-		switch (ci-&gt;mid) {</div><div class='del'>-		  case idPLUS:	 SP_INSN(plus);	  return COMPILE_OK;</div><div class='del'>-		  case idMINUS:	 SP_INSN(minus);  return COMPILE_OK;</div><div class='del'>-		  case idMULT:	 SP_INSN(mult);	  return COMPILE_OK;</div><div class='del'>-		  case idDIV:	 SP_INSN(div);	  return COMPILE_OK;</div><div class='del'>-		  case idMOD:	 SP_INSN(mod);	  return COMPILE_OK;</div><div class='del'>-		  case idEq:	 SP_INSN(eq);	  return COMPILE_OK;</div><div class='del'>-		  case idNeq:	 SP_INSN(neq);	  return COMPILE_OK;</div><div class='del'>-		  case idLT:	 SP_INSN(lt);	  return COMPILE_OK;</div><div class='del'>-		  case idLE:	 SP_INSN(le);	  return COMPILE_OK;</div><div class='del'>-		  case idGT:	 SP_INSN(gt);	  return COMPILE_OK;</div><div class='del'>-		  case idGE:	 SP_INSN(ge);	  return COMPILE_OK;</div><div class='del'>-		  case idLTLT:	 SP_INSN(ltlt);	  return COMPILE_OK;</div><div class='del'>-		  case idAREF:	 SP_INSN(aref);	  return COMPILE_OK;</div><div class='add'>+        if (vm_ci_flag(ci) &amp; VM_CALL_ARGS_SIMPLE) {</div><div class='add'>+            switch (vm_ci_argc(ci)) {</div><div class='add'>+              case 0:</div><div class='add'>+                switch (vm_ci_mid(ci)) {</div><div class='add'>+                  case idLength: SP_INSN(length); return COMPILE_OK;</div><div class='add'>+                  case idSize:	 SP_INSN(size);	  return COMPILE_OK;</div><div class='add'>+                  case idEmptyP: SP_INSN(empty_p);return COMPILE_OK;</div><div class='add'>+                  case idNilP:   SP_INSN(nil_p);  return COMPILE_OK;</div><div class='add'>+                  case idSucc:	 SP_INSN(succ);	  return COMPILE_OK;</div><div class='add'>+                  case idNot:	 SP_INSN(not);	  return COMPILE_OK;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case 1:</div><div class='add'>+                switch (vm_ci_mid(ci)) {</div><div class='add'>+                  case idPLUS:	 SP_INSN(plus);	  return COMPILE_OK;</div><div class='add'>+                  case idMINUS:	 SP_INSN(minus);  return COMPILE_OK;</div><div class='add'>+                  case idMULT:	 SP_INSN(mult);	  return COMPILE_OK;</div><div class='add'>+                  case idDIV:	 SP_INSN(div);	  return COMPILE_OK;</div><div class='add'>+                  case idMOD:	 SP_INSN(mod);	  return COMPILE_OK;</div><div class='add'>+                  case idEq:	 SP_INSN(eq);	  return COMPILE_OK;</div><div class='add'>+                  case idNeq:	 SP_INSN(neq);	  return COMPILE_OK;</div><div class='add'>+                  case idEqTilde:SP_INSN(regexpmatch2);return COMPILE_OK;</div><div class='add'>+                  case idLT:	 SP_INSN(lt);	  return COMPILE_OK;</div><div class='add'>+                  case idLE:	 SP_INSN(le);	  return COMPILE_OK;</div><div class='add'>+                  case idGT:	 SP_INSN(gt);	  return COMPILE_OK;</div><div class='add'>+                  case idGE:	 SP_INSN(ge);	  return COMPILE_OK;</div><div class='add'>+                  case idLTLT:	 SP_INSN(ltlt);	  return COMPILE_OK;</div><div class='add'>+                  case idAREF:	 SP_INSN(aref);	  return COMPILE_OK;</div><div class='ctx'>                   case idAnd:    SP_INSN(and);    return COMPILE_OK;</div><div class='ctx'>                   case idOr:     SP_INSN(or);    return COMPILE_OK;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      case 2:</div><div class='del'>-		switch (ci-&gt;mid) {</div><div class='del'>-		  case idASET:	 SP_INSN(aset);	  return COMPILE_OK;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if ((ci-&gt;flag &amp; VM_CALL_ARGS_BLOCKARG) == 0 &amp;&amp; blockiseq == NULL) {</div><div class='del'>-	    iobj-&gt;insn_id = BIN(opt_send_without_block);</div><div class='del'>-	    iobj-&gt;operand_size = insn_len(iobj-&gt;insn_id) - 1;</div><div class='del'>-	}</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case 2:</div><div class='add'>+                switch (vm_ci_mid(ci)) {</div><div class='add'>+                  case idASET:	 SP_INSN(aset);	  return COMPILE_OK;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if ((vm_ci_flag(ci) &amp; VM_CALL_ARGS_BLOCKARG) == 0 &amp;&amp; blockiseq == NULL) {</div><div class='add'>+            iobj-&gt;insn_id = BIN(opt_send_without_block);</div><div class='add'>+            iobj-&gt;operand_size = insn_len(iobj-&gt;insn_id) - 1;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #undef SP_INSN</div><div class='ctx'> </div><div class='hunk'>@@ -3335,17 +3799,17 @@ iseq_specialized_instruction(rb_iseq_t *iseq, INSN *iobj)</div><div class='ctx'> static inline int</div><div class='ctx'> tailcallable_p(rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    switch (iseq-&gt;body-&gt;type) {</div><div class='add'>+    switch (ISEQ_BODY(iseq)-&gt;type) {</div><div class='ctx'>       case ISEQ_TYPE_TOP:</div><div class='ctx'>       case ISEQ_TYPE_EVAL:</div><div class='ctx'>       case ISEQ_TYPE_MAIN:</div><div class='del'>-	/* not tail callable because cfp will be over popped */</div><div class='add'>+        /* not tail callable because cfp will be over popped */</div><div class='ctx'>       case ISEQ_TYPE_RESCUE:</div><div class='ctx'>       case ISEQ_TYPE_ENSURE:</div><div class='del'>-	/* rescue block can't tail call because of errinfo */</div><div class='del'>-	return FALSE;</div><div class='add'>+        /* rescue block can't tail call because of errinfo */</div><div class='add'>+        return FALSE;</div><div class='ctx'>       default:</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3355,7 +3819,7 @@ iseq_optimize(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'>     LINK_ELEMENT *list;</div><div class='ctx'>     const int do_peepholeopt = ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;peephole_optimization;</div><div class='ctx'>     const int do_tailcallopt = tailcallable_p(iseq) &amp;&amp;</div><div class='del'>-	ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;tailcall_optimization;</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;tailcall_optimization;</div><div class='ctx'>     const int do_si = ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction;</div><div class='ctx'>     const int do_ou = ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;operands_unification;</div><div class='ctx'>     int rescue_level = 0;</div><div class='hunk'>@@ -3363,30 +3827,50 @@ iseq_optimize(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'> </div><div class='ctx'>     list = FIRST_ELEMENT(anchor);</div><div class='ctx'> </div><div class='add'>+    int do_block_optimization = 0;</div><div class='add'>+</div><div class='add'>+    if (ISEQ_BODY(iseq)-&gt;type == ISEQ_TYPE_BLOCK &amp;&amp; !ISEQ_BODY(iseq)-&gt;catch_except_p) {</div><div class='add'>+        do_block_optimization = 1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     while (list) {</div><div class='del'>-	if (IS_INSN(list)) {</div><div class='del'>-	    if (do_peepholeopt) {</div><div class='del'>-		iseq_peephole_optimize(iseq, list, tailcallopt);</div><div class='del'>-	    }</div><div class='del'>-	    if (do_si) {</div><div class='del'>-		iseq_specialized_instruction(iseq, (INSN *)list);</div><div class='del'>-	    }</div><div class='del'>-	    if (do_ou) {</div><div class='del'>-		insn_operands_unification((INSN *)list);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (IS_LABEL(list)) {</div><div class='del'>-	    switch (((LABEL *)list)-&gt;rescued) {</div><div class='del'>-	      case LABEL_RESCUE_BEG:</div><div class='del'>-		rescue_level++;</div><div class='del'>-		tailcallopt = FALSE;</div><div class='del'>-		break;</div><div class='del'>-	      case LABEL_RESCUE_END:</div><div class='del'>-		if (!--rescue_level) tailcallopt = do_tailcallopt;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	list = list-&gt;next;</div><div class='add'>+        if (IS_INSN(list)) {</div><div class='add'>+            if (do_peepholeopt) {</div><div class='add'>+                iseq_peephole_optimize(iseq, list, tailcallopt);</div><div class='add'>+            }</div><div class='add'>+            if (do_si) {</div><div class='add'>+                iseq_specialized_instruction(iseq, (INSN *)list);</div><div class='add'>+            }</div><div class='add'>+            if (do_ou) {</div><div class='add'>+                insn_operands_unification((INSN *)list);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (do_block_optimization) {</div><div class='add'>+                INSN * item = (INSN *)list;</div><div class='add'>+                if (IS_INSN_ID(item, jump)) {</div><div class='add'>+                    do_block_optimization = 0;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (IS_LABEL(list)) {</div><div class='add'>+            switch (((LABEL *)list)-&gt;rescued) {</div><div class='add'>+              case LABEL_RESCUE_BEG:</div><div class='add'>+                rescue_level++;</div><div class='add'>+                tailcallopt = FALSE;</div><div class='add'>+                break;</div><div class='add'>+              case LABEL_RESCUE_END:</div><div class='add'>+                if (!--rescue_level) tailcallopt = do_tailcallopt;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        list = list-&gt;next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (do_block_optimization) {</div><div class='add'>+        LINK_ELEMENT * le = FIRST_ELEMENT(anchor)-&gt;next;</div><div class='add'>+        if (IS_INSN(le) &amp;&amp; IS_INSN_ID((INSN *)le, nop)) {</div><div class='add'>+            ELEM_REMOVE(le);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -3394,7 +3878,7 @@ iseq_optimize(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'> #if OPT_INSTRUCTIONS_UNIFICATION</div><div class='ctx'> static INSN *</div><div class='ctx'> new_unified_insn(rb_iseq_t *iseq,</div><div class='del'>-		 int insn_id, int size, LINK_ELEMENT *seq_list)</div><div class='add'>+                 int insn_id, int size, LINK_ELEMENT *seq_list)</div><div class='ctx'> {</div><div class='ctx'>     INSN *iobj = 0;</div><div class='ctx'>     LINK_ELEMENT *list = seq_list;</div><div class='hunk'>@@ -3404,26 +3888,26 @@ new_unified_insn(rb_iseq_t *iseq,</div><div class='ctx'> </div><div class='ctx'>     /* count argc */</div><div class='ctx'>     for (i = 0; i &lt; size; i++) {</div><div class='del'>-	iobj = (INSN *)list;</div><div class='del'>-	argc += iobj-&gt;operand_size;</div><div class='del'>-	list = list-&gt;next;</div><div class='add'>+        iobj = (INSN *)list;</div><div class='add'>+        argc += iobj-&gt;operand_size;</div><div class='add'>+        list = list-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (argc &gt; 0) {</div><div class='del'>-	ptr = operands =</div><div class='del'>-	    (VALUE *)compile_data_alloc(iseq, sizeof(VALUE) * argc);</div><div class='add'>+        ptr = operands = compile_data_alloc2(iseq, sizeof(VALUE), argc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* copy operands */</div><div class='ctx'>     list = seq_list;</div><div class='ctx'>     for (i = 0; i &lt; size; i++) {</div><div class='del'>-	iobj = (INSN *)list;</div><div class='del'>-	MEMCPY(ptr, iobj-&gt;operands, VALUE, iobj-&gt;operand_size);</div><div class='del'>-	ptr += iobj-&gt;operand_size;</div><div class='del'>-	list = list-&gt;next;</div><div class='add'>+        iobj = (INSN *)list;</div><div class='add'>+        MEMCPY(ptr, iobj-&gt;operands, VALUE, iobj-&gt;operand_size);</div><div class='add'>+        ptr += iobj-&gt;operand_size;</div><div class='add'>+        list = list-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return new_insn_core(iseq, iobj-&gt;insn_info.line_no, insn_id, argc, operands);</div><div class='add'>+    NODE dummy_line_node = generate_dummy_line_node(iobj-&gt;insn_info.line_no, iobj-&gt;insn_info.node_id);</div><div class='add'>+    return new_insn_core(iseq, &amp;dummy_line_node, insn_id, argc, operands);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -3443,41 +3927,41 @@ iseq_insns_unification(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'> </div><div class='ctx'>     list = FIRST_ELEMENT(anchor);</div><div class='ctx'>     while (list) {</div><div class='del'>-	if (IS_INSN(list)) {</div><div class='del'>-	    iobj = (INSN *)list;</div><div class='del'>-	    id = iobj-&gt;insn_id;</div><div class='del'>-	    if (unified_insns_data[id] != 0) {</div><div class='del'>-		const int *const *entry = unified_insns_data[id];</div><div class='del'>-		for (j = 1; j &lt; (intptr_t)entry[0]; j++) {</div><div class='del'>-		    const int *unified = entry[j];</div><div class='del'>-		    LINK_ELEMENT *li = list-&gt;next;</div><div class='del'>-		    for (k = 2; k &lt; unified[1]; k++) {</div><div class='del'>-			if (!IS_INSN(li) ||</div><div class='del'>-			    ((INSN *)li)-&gt;insn_id != unified[k]) {</div><div class='del'>-			    goto miss;</div><div class='del'>-			}</div><div class='del'>-			li = li-&gt;next;</div><div class='del'>-		    }</div><div class='del'>-		    /* matched */</div><div class='del'>-		    niobj =</div><div class='del'>-			new_unified_insn(iseq, unified[0], unified[1] - 1,</div><div class='del'>-					 list);</div><div class='del'>-</div><div class='del'>-		    /* insert to list */</div><div class='del'>-		    niobj-&gt;link.prev = (LINK_ELEMENT *)iobj-&gt;link.prev;</div><div class='del'>-		    niobj-&gt;link.next = li;</div><div class='del'>-		    if (li) {</div><div class='del'>-			li-&gt;prev = (LINK_ELEMENT *)niobj;</div><div class='del'>-		    }</div><div class='del'>-</div><div class='del'>-		    list-&gt;prev-&gt;next = (LINK_ELEMENT *)niobj;</div><div class='del'>-		    list = (LINK_ELEMENT *)niobj;</div><div class='del'>-		    break;</div><div class='del'>-		  miss:;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	list = list-&gt;next;</div><div class='add'>+        if (IS_INSN(list)) {</div><div class='add'>+            iobj = (INSN *)list;</div><div class='add'>+            id = iobj-&gt;insn_id;</div><div class='add'>+            if (unified_insns_data[id] != 0) {</div><div class='add'>+                const int *const *entry = unified_insns_data[id];</div><div class='add'>+                for (j = 1; j &lt; (intptr_t)entry[0]; j++) {</div><div class='add'>+                    const int *unified = entry[j];</div><div class='add'>+                    LINK_ELEMENT *li = list-&gt;next;</div><div class='add'>+                    for (k = 2; k &lt; unified[1]; k++) {</div><div class='add'>+                        if (!IS_INSN(li) ||</div><div class='add'>+                            ((INSN *)li)-&gt;insn_id != unified[k]) {</div><div class='add'>+                            goto miss;</div><div class='add'>+                        }</div><div class='add'>+                        li = li-&gt;next;</div><div class='add'>+                    }</div><div class='add'>+                    /* matched */</div><div class='add'>+                    niobj =</div><div class='add'>+                        new_unified_insn(iseq, unified[0], unified[1] - 1,</div><div class='add'>+                                         list);</div><div class='add'>+</div><div class='add'>+                    /* insert to list */</div><div class='add'>+                    niobj-&gt;link.prev = (LINK_ELEMENT *)iobj-&gt;link.prev;</div><div class='add'>+                    niobj-&gt;link.next = li;</div><div class='add'>+                    if (li) {</div><div class='add'>+                        li-&gt;prev = (LINK_ELEMENT *)niobj;</div><div class='add'>+                    }</div><div class='add'>+</div><div class='add'>+                    list-&gt;prev-&gt;next = (LINK_ELEMENT *)niobj;</div><div class='add'>+                    list = (LINK_ELEMENT *)niobj;</div><div class='add'>+                    break;</div><div class='add'>+                  miss:;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        list = list-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return COMPILE_OK;</div><div class='hunk'>@@ -3501,28 +3985,28 @@ insn_set_sc_state(rb_iseq_t *iseq, const LINK_ELEMENT *anchor, INSN *iobj, int s</div><div class='ctx'>     nstate = SC_NEXT(iobj-&gt;insn_id);</div><div class='ctx'> </div><div class='ctx'>     if (insn_id == BIN(jump) ||</div><div class='del'>-	insn_id == BIN(branchif) || insn_id == BIN(branchunless)) {</div><div class='del'>-	LABEL *lobj = (LABEL *)OPERAND_AT(iobj, 0);</div><div class='del'>-</div><div class='del'>-	if (lobj-&gt;sc_state != 0) {</div><div class='del'>-	    if (lobj-&gt;sc_state != nstate) {</div><div class='del'>-		BADINSN_DUMP(anchor, iobj, lobj);</div><div class='del'>-		COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='del'>-			      "insn_set_sc_state error: %d at "LABEL_FORMAT</div><div class='del'>-			      ", %d expected\n",</div><div class='del'>-			      lobj-&gt;sc_state, lobj-&gt;label_no, nstate);</div><div class='del'>-		return COMPILE_NG;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    lobj-&gt;sc_state = nstate;</div><div class='del'>-	}</div><div class='del'>-	if (insn_id == BIN(jump)) {</div><div class='del'>-	    nstate = SCS_XX;</div><div class='del'>-	}</div><div class='add'>+        insn_id == BIN(branchif) || insn_id == BIN(branchunless)) {</div><div class='add'>+        LABEL *lobj = (LABEL *)OPERAND_AT(iobj, 0);</div><div class='add'>+</div><div class='add'>+        if (lobj-&gt;sc_state != 0) {</div><div class='add'>+            if (lobj-&gt;sc_state != nstate) {</div><div class='add'>+                BADINSN_DUMP(anchor, iobj, lobj);</div><div class='add'>+                COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+                              "insn_set_sc_state error: %d at "LABEL_FORMAT</div><div class='add'>+                              ", %d expected\n",</div><div class='add'>+                              lobj-&gt;sc_state, lobj-&gt;label_no, nstate);</div><div class='add'>+                return COMPILE_NG;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            lobj-&gt;sc_state = nstate;</div><div class='add'>+        }</div><div class='add'>+        if (insn_id == BIN(jump)) {</div><div class='add'>+            nstate = SCS_XX;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (insn_id == BIN(leave)) {</div><div class='del'>-	nstate = SCS_XX;</div><div class='add'>+        nstate = SCS_XX;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return nstate;</div><div class='hunk'>@@ -3532,12 +4016,12 @@ static int</div><div class='ctx'> label_set_sc_state(LABEL *lobj, int state)</div><div class='ctx'> {</div><div class='ctx'>     if (lobj-&gt;sc_state != 0) {</div><div class='del'>-	if (lobj-&gt;sc_state != state) {</div><div class='del'>-	    state = lobj-&gt;sc_state;</div><div class='del'>-	}</div><div class='add'>+        if (lobj-&gt;sc_state != state) {</div><div class='add'>+            state = lobj-&gt;sc_state;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	lobj-&gt;sc_state = state;</div><div class='add'>+        lobj-&gt;sc_state = state;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return state;</div><div class='hunk'>@@ -3561,83 +4045,84 @@ iseq_set_sequence_stackcaching(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)</div><div class='ctx'>     /* for each list element */</div><div class='ctx'>     while (list) {</div><div class='ctx'>       redo_point:</div><div class='del'>-	switch (list-&gt;type) {</div><div class='del'>-	  case ISEQ_ELEMENT_INSN:</div><div class='del'>-	    {</div><div class='del'>-		INSN *iobj = (INSN *)list;</div><div class='del'>-		insn_id = iobj-&gt;insn_id;</div><div class='del'>-</div><div class='del'>-		/* dump_disasm_list(list); */</div><div class='del'>-</div><div class='del'>-		switch (insn_id) {</div><div class='del'>-		  case BIN(nop):</div><div class='del'>-		    {</div><div class='del'>-			/* exception merge point */</div><div class='del'>-			if (state != SCS_AX) {</div><div class='del'>-			    INSN *rpobj =</div><div class='del'>-				new_insn_body(iseq, 0, BIN(reput), 0);</div><div class='del'>-</div><div class='del'>-			    /* replace this insn */</div><div class='del'>-			    ELEM_REPLACE(list, (LINK_ELEMENT *)rpobj);</div><div class='del'>-			    list = (LINK_ELEMENT *)rpobj;</div><div class='del'>-			    goto redo_point;</div><div class='del'>-			}</div><div class='del'>-			break;</div><div class='del'>-		    }</div><div class='del'>-		  case BIN(swap):</div><div class='del'>-		    {</div><div class='del'>-			if (state == SCS_AB || state == SCS_BA) {</div><div class='del'>-			    state = (state == SCS_AB ? SCS_BA : SCS_AB);</div><div class='del'>-</div><div class='del'>-			    ELEM_REMOVE(list);</div><div class='del'>-			    list = list-&gt;next;</div><div class='del'>-			    goto redo_point;</div><div class='del'>-			}</div><div class='del'>-			break;</div><div class='del'>-		    }</div><div class='del'>-		  case BIN(pop):</div><div class='del'>-		    {</div><div class='del'>-			switch (state) {</div><div class='del'>-			  case SCS_AX:</div><div class='del'>-			  case SCS_BX:</div><div class='del'>-			    state = SCS_XX;</div><div class='del'>-			    break;</div><div class='del'>-			  case SCS_AB:</div><div class='del'>-			    state = SCS_AX;</div><div class='del'>-			    break;</div><div class='del'>-			  case SCS_BA:</div><div class='del'>-			    state = SCS_BX;</div><div class='del'>-			    break;</div><div class='del'>-			  case SCS_XX:</div><div class='del'>-			    goto normal_insn;</div><div class='del'>-			  default:</div><div class='del'>-			    COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='del'>-					  "unreachable");</div><div class='del'>-			    return COMPILE_NG;</div><div class='del'>-			}</div><div class='del'>-			/* remove useless pop */</div><div class='del'>-			ELEM_REMOVE(list);</div><div class='del'>-			list = list-&gt;next;</div><div class='del'>-			goto redo_point;</div><div class='del'>-		    }</div><div class='del'>-		  default:;</div><div class='del'>-		    /* none */</div><div class='del'>-		}		/* end of switch */</div><div class='del'>-	      normal_insn:</div><div class='del'>-		state = insn_set_sc_state(iseq, anchor, iobj, state);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_LABEL:</div><div class='del'>-	    {</div><div class='del'>-		LABEL *lobj;</div><div class='del'>-		lobj = (LABEL *)list;</div><div class='del'>-</div><div class='del'>-		state = label_set_sc_state(lobj, state);</div><div class='del'>-	    }</div><div class='del'>-	  default:</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	list = list-&gt;next;</div><div class='add'>+        switch (list-&gt;type) {</div><div class='add'>+          case ISEQ_ELEMENT_INSN:</div><div class='add'>+            {</div><div class='add'>+                INSN *iobj = (INSN *)list;</div><div class='add'>+                insn_id = iobj-&gt;insn_id;</div><div class='add'>+</div><div class='add'>+                /* dump_disasm_list(list); */</div><div class='add'>+</div><div class='add'>+                switch (insn_id) {</div><div class='add'>+                  case BIN(nop):</div><div class='add'>+                    {</div><div class='add'>+                        /* exception merge point */</div><div class='add'>+                        if (state != SCS_AX) {</div><div class='add'>+                            NODE dummy_line_node = generate_dummy_line_node(0, -1);</div><div class='add'>+                            INSN *rpobj =</div><div class='add'>+                                new_insn_body(iseq, &amp;dummy_line_node, BIN(reput), 0);</div><div class='add'>+</div><div class='add'>+                            /* replace this insn */</div><div class='add'>+                            ELEM_REPLACE(list, (LINK_ELEMENT *)rpobj);</div><div class='add'>+                            list = (LINK_ELEMENT *)rpobj;</div><div class='add'>+                            goto redo_point;</div><div class='add'>+                        }</div><div class='add'>+                        break;</div><div class='add'>+                    }</div><div class='add'>+                  case BIN(swap):</div><div class='add'>+                    {</div><div class='add'>+                        if (state == SCS_AB || state == SCS_BA) {</div><div class='add'>+                            state = (state == SCS_AB ? SCS_BA : SCS_AB);</div><div class='add'>+</div><div class='add'>+                            ELEM_REMOVE(list);</div><div class='add'>+                            list = list-&gt;next;</div><div class='add'>+                            goto redo_point;</div><div class='add'>+                        }</div><div class='add'>+                        break;</div><div class='add'>+                    }</div><div class='add'>+                  case BIN(pop):</div><div class='add'>+                    {</div><div class='add'>+                        switch (state) {</div><div class='add'>+                          case SCS_AX:</div><div class='add'>+                          case SCS_BX:</div><div class='add'>+                            state = SCS_XX;</div><div class='add'>+                            break;</div><div class='add'>+                          case SCS_AB:</div><div class='add'>+                            state = SCS_AX;</div><div class='add'>+                            break;</div><div class='add'>+                          case SCS_BA:</div><div class='add'>+                            state = SCS_BX;</div><div class='add'>+                            break;</div><div class='add'>+                          case SCS_XX:</div><div class='add'>+                            goto normal_insn;</div><div class='add'>+                          default:</div><div class='add'>+                            COMPILE_ERROR(iseq, iobj-&gt;insn_info.line_no,</div><div class='add'>+                                          "unreachable");</div><div class='add'>+                            return COMPILE_NG;</div><div class='add'>+                        }</div><div class='add'>+                        /* remove useless pop */</div><div class='add'>+                        ELEM_REMOVE(list);</div><div class='add'>+                        list = list-&gt;next;</div><div class='add'>+                        goto redo_point;</div><div class='add'>+                    }</div><div class='add'>+                  default:;</div><div class='add'>+                    /* none */</div><div class='add'>+                }		/* end of switch */</div><div class='add'>+              normal_insn:</div><div class='add'>+                state = insn_set_sc_state(iseq, anchor, iobj, state);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_LABEL:</div><div class='add'>+            {</div><div class='add'>+                LABEL *lobj;</div><div class='add'>+                lobj = (LABEL *)list;</div><div class='add'>+</div><div class='add'>+                state = label_set_sc_state(lobj, state);</div><div class='add'>+            }</div><div class='add'>+          default:</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        list = list-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return COMPILE_OK;</div><div class='hunk'>@@ -3649,20 +4134,20 @@ all_string_result_p(const NODE *node)</div><div class='ctx'>     if (!node) return FALSE;</div><div class='ctx'>     switch (nd_type(node)) {</div><div class='ctx'>       case NODE_STR: case NODE_DSTR:</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>       case NODE_IF: case NODE_UNLESS:</div><div class='del'>-	if (!node-&gt;nd_body || !node-&gt;nd_else) return FALSE;</div><div class='del'>-	if (all_string_result_p(node-&gt;nd_body))</div><div class='del'>-	    return all_string_result_p(node-&gt;nd_else);</div><div class='del'>-	return FALSE;</div><div class='add'>+        if (!node-&gt;nd_body || !node-&gt;nd_else) return FALSE;</div><div class='add'>+        if (all_string_result_p(node-&gt;nd_body))</div><div class='add'>+            return all_string_result_p(node-&gt;nd_else);</div><div class='add'>+        return FALSE;</div><div class='ctx'>       case NODE_AND: case NODE_OR:</div><div class='del'>-	if (!node-&gt;nd_2nd)</div><div class='del'>-	    return all_string_result_p(node-&gt;nd_1st);</div><div class='del'>-	if (!all_string_result_p(node-&gt;nd_1st))</div><div class='del'>-	    return FALSE;</div><div class='del'>-	return all_string_result_p(node-&gt;nd_2nd);</div><div class='add'>+        if (!node-&gt;nd_2nd)</div><div class='add'>+            return all_string_result_p(node-&gt;nd_1st);</div><div class='add'>+        if (!all_string_result_p(node-&gt;nd_1st))</div><div class='add'>+            return FALSE;</div><div class='add'>+        return all_string_result_p(node-&gt;nd_2nd);</div><div class='ctx'>       default:</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3676,33 +4161,35 @@ compile_dstr_fragments(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *cons</div><div class='ctx'> </div><div class='ctx'>     debugp_param("nd_lit", lit);</div><div class='ctx'>     if (!NIL_P(lit)) {</div><div class='del'>-	cnt++;</div><div class='del'>-	if (!RB_TYPE_P(lit, T_STRING)) {</div><div class='del'>-	    COMPILE_ERROR(ERROR_ARGS "dstr: must be string: %s",</div><div class='del'>-			  rb_builtin_type_name(TYPE(lit)));</div><div class='del'>-	    return COMPILE_NG;</div><div class='del'>-	}</div><div class='del'>-	lit = freeze_literal(iseq, lit);</div><div class='del'>-	ADD_INSN1(ret, nd_line(node), putobject, lit);</div><div class='del'>-	if (RSTRING_LEN(lit) == 0) first_lit = LAST_ELEMENT(ret);</div><div class='add'>+        cnt++;</div><div class='add'>+        if (!RB_TYPE_P(lit, T_STRING)) {</div><div class='add'>+            COMPILE_ERROR(ERROR_ARGS "dstr: must be string: %s",</div><div class='add'>+                          rb_builtin_type_name(TYPE(lit)));</div><div class='add'>+            return COMPILE_NG;</div><div class='add'>+        }</div><div class='add'>+        lit = rb_fstring(lit);</div><div class='add'>+        ADD_INSN1(ret, node, putobject, lit);</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, lit);</div><div class='add'>+        if (RSTRING_LEN(lit) == 0) first_lit = LAST_ELEMENT(ret);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (list) {</div><div class='del'>-	const NODE *const head = list-&gt;nd_head;</div><div class='del'>-	if (nd_type(head) == NODE_STR) {</div><div class='del'>-	    lit = freeze_literal(iseq, head-&gt;nd_lit);</div><div class='del'>-	    ADD_INSN1(ret, nd_line(head), putobject, lit);</div><div class='del'>-	    lit = Qnil;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    CHECK(COMPILE(ret, "each string", head));</div><div class='del'>-	}</div><div class='del'>-	cnt++;</div><div class='del'>-	list = list-&gt;nd_next;</div><div class='add'>+        const NODE *const head = list-&gt;nd_head;</div><div class='add'>+        if (nd_type_p(head, NODE_STR)) {</div><div class='add'>+            lit = rb_fstring(head-&gt;nd_lit);</div><div class='add'>+            ADD_INSN1(ret, head, putobject, lit);</div><div class='add'>+            RB_OBJ_WRITTEN(iseq, Qundef, lit);</div><div class='add'>+            lit = Qnil;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            CHECK(COMPILE(ret, "each string", head));</div><div class='add'>+        }</div><div class='add'>+        cnt++;</div><div class='add'>+        list = list-&gt;nd_next;</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(lit) &amp;&amp; first_lit) {</div><div class='del'>-	ELEM_REMOVE(first_lit);</div><div class='del'>-	--cnt;</div><div class='add'>+        ELEM_REMOVE(first_lit);</div><div class='add'>+        --cnt;</div><div class='ctx'>     }</div><div class='ctx'>     *cntp = cnt;</div><div class='ctx'> </div><div class='hunk'>@@ -3710,11 +4197,32 @@ compile_dstr_fragments(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *cons</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='add'>+compile_block(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int popped)</div><div class='add'>+{</div><div class='add'>+    while (node &amp;&amp; nd_type_p(node, NODE_BLOCK)) {</div><div class='add'>+        CHECK(COMPILE_(ret, "BLOCK body", node-&gt;nd_head,</div><div class='add'>+                       (node-&gt;nd_next ? 1 : popped)));</div><div class='add'>+        node = node-&gt;nd_next;</div><div class='add'>+    }</div><div class='add'>+    if (node) {</div><div class='add'>+        CHECK(COMPILE_(ret, "BLOCK next", node-&gt;nd_next, popped));</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='ctx'> compile_dstr(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node)</div><div class='ctx'> {</div><div class='ctx'>     int cnt;</div><div class='del'>-    CHECK(compile_dstr_fragments(iseq, ret, node, &amp;cnt));</div><div class='del'>-    ADD_INSN1(ret, nd_line(node), concatstrings, INT2FIX(cnt));</div><div class='add'>+    if (!node-&gt;nd_next) {</div><div class='add'>+        VALUE lit = rb_fstring(node-&gt;nd_lit);</div><div class='add'>+        ADD_INSN1(ret, node, putstring, lit);</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, lit);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        CHECK(compile_dstr_fragments(iseq, ret, node, &amp;cnt));</div><div class='add'>+        ADD_INSN1(ret, node, concatstrings, INT2FIX(cnt));</div><div class='add'>+    }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3723,199 +4231,237 @@ compile_dregx(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node)</div><div class='ctx'> {</div><div class='ctx'>     int cnt;</div><div class='ctx'>     CHECK(compile_dstr_fragments(iseq, ret, node, &amp;cnt));</div><div class='del'>-    ADD_INSN2(ret, nd_line(node), toregexp, INT2FIX(node-&gt;nd_cflag), INT2FIX(cnt));</div><div class='add'>+    ADD_INSN2(ret, node, toregexp, INT2FIX(node-&gt;nd_cflag), INT2FIX(cnt));</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> compile_flip_flop(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int again,</div><div class='del'>-		  LABEL *then_label, LABEL *else_label)</div><div class='add'>+                  LABEL *then_label, LABEL *else_label)</div><div class='ctx'> {</div><div class='ctx'>     const int line = nd_line(node);</div><div class='ctx'>     LABEL *lend = NEW_LABEL(line);</div><div class='del'>-    rb_num_t cnt = ISEQ_FLIP_CNT_INCREMENT(iseq-&gt;body-&gt;local_iseq)</div><div class='del'>-	+ VM_SVAR_FLIPFLOP_START;</div><div class='add'>+    rb_num_t cnt = ISEQ_FLIP_CNT_INCREMENT(ISEQ_BODY(iseq)-&gt;local_iseq)</div><div class='add'>+        + VM_SVAR_FLIPFLOP_START;</div><div class='ctx'>     VALUE key = INT2FIX(cnt);</div><div class='ctx'> </div><div class='del'>-    ADD_INSN2(ret, line, getspecial, key, INT2FIX(0));</div><div class='del'>-    ADD_INSNL(ret, line, branchif, lend);</div><div class='add'>+    ADD_INSN2(ret, node, getspecial, key, INT2FIX(0));</div><div class='add'>+    ADD_INSNL(ret, node, branchif, lend);</div><div class='ctx'> </div><div class='ctx'>     /* *flip == 0 */</div><div class='ctx'>     CHECK(COMPILE(ret, "flip2 beg", node-&gt;nd_beg));</div><div class='del'>-    ADD_INSNL(ret, line, branchunless, else_label);</div><div class='del'>-    ADD_INSN1(ret, line, putobject, Qtrue);</div><div class='del'>-    ADD_INSN1(ret, line, setspecial, key);</div><div class='add'>+    ADD_INSNL(ret, node, branchunless, else_label);</div><div class='add'>+    ADD_INSN1(ret, node, putobject, Qtrue);</div><div class='add'>+    ADD_INSN1(ret, node, setspecial, key);</div><div class='ctx'>     if (!again) {</div><div class='del'>-	ADD_INSNL(ret, line, jump, then_label);</div><div class='add'>+        ADD_INSNL(ret, node, jump, then_label);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* *flip == 1 */</div><div class='ctx'>     ADD_LABEL(ret, lend);</div><div class='ctx'>     CHECK(COMPILE(ret, "flip2 end", node-&gt;nd_end));</div><div class='del'>-    ADD_INSNL(ret, line, branchunless, then_label);</div><div class='del'>-    ADD_INSN1(ret, line, putobject, Qfalse);</div><div class='del'>-    ADD_INSN1(ret, line, setspecial, key);</div><div class='del'>-    ADD_INSNL(ret, line, jump, then_label);</div><div class='add'>+    ADD_INSNL(ret, node, branchunless, then_label);</div><div class='add'>+    ADD_INSN1(ret, node, putobject, Qfalse);</div><div class='add'>+    ADD_INSN1(ret, node, setspecial, key);</div><div class='add'>+    ADD_INSNL(ret, node, jump, then_label);</div><div class='ctx'> </div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> compile_branch_condition(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *cond,</div><div class='del'>-			 LABEL *then_label, LABEL *else_label)</div><div class='add'>+                         LABEL *then_label, LABEL *else_label)</div><div class='ctx'> {</div><div class='ctx'>   again:</div><div class='ctx'>     switch (nd_type(cond)) {</div><div class='ctx'>       case NODE_AND:</div><div class='del'>-	{</div><div class='del'>-	    LABEL *label = NEW_LABEL(nd_line(cond));</div><div class='del'>-	    CHECK(compile_branch_condition(iseq, ret, cond-&gt;nd_1st, label,</div><div class='del'>-					   else_label));</div><div class='del'>-	    if (!label-&gt;refcnt) break;</div><div class='del'>-	    ADD_LABEL(ret, label);</div><div class='del'>-	    cond = cond-&gt;nd_2nd;</div><div class='del'>-	    goto again;</div><div class='del'>-	}</div><div class='add'>+        {</div><div class='add'>+            LABEL *label = NEW_LABEL(nd_line(cond));</div><div class='add'>+            CHECK(compile_branch_condition(iseq, ret, cond-&gt;nd_1st, label,</div><div class='add'>+                                           else_label));</div><div class='add'>+            if (!label-&gt;refcnt) {</div><div class='add'>+                ADD_INSN(ret, cond, putnil);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            ADD_LABEL(ret, label);</div><div class='add'>+            cond = cond-&gt;nd_2nd;</div><div class='add'>+            goto again;</div><div class='add'>+        }</div><div class='ctx'>       case NODE_OR:</div><div class='del'>-	{</div><div class='del'>-	    LABEL *label = NEW_LABEL(nd_line(cond));</div><div class='del'>-	    CHECK(compile_branch_condition(iseq, ret, cond-&gt;nd_1st, then_label,</div><div class='del'>-					   label));</div><div class='del'>-	    if (!label-&gt;refcnt) break;</div><div class='del'>-	    ADD_LABEL(ret, label);</div><div class='del'>-	    cond = cond-&gt;nd_2nd;</div><div class='del'>-	    goto again;</div><div class='del'>-	}</div><div class='add'>+        {</div><div class='add'>+            LABEL *label = NEW_LABEL(nd_line(cond));</div><div class='add'>+            CHECK(compile_branch_condition(iseq, ret, cond-&gt;nd_1st, then_label,</div><div class='add'>+                                           label));</div><div class='add'>+            if (!label-&gt;refcnt) {</div><div class='add'>+                ADD_INSN(ret, cond, putnil);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            ADD_LABEL(ret, label);</div><div class='add'>+            cond = cond-&gt;nd_2nd;</div><div class='add'>+            goto again;</div><div class='add'>+        }</div><div class='ctx'>       case NODE_LIT:		/* NODE_LIT is always true */</div><div class='ctx'>       case NODE_TRUE:</div><div class='ctx'>       case NODE_STR:</div><div class='del'>-      case NODE_ZARRAY:</div><div class='add'>+      case NODE_ZLIST:</div><div class='ctx'>       case NODE_LAMBDA:</div><div class='del'>-	/* printf("useless condition eliminate (%s)\n",  ruby_node_name(nd_type(cond))); */</div><div class='del'>-	ADD_INSNL(ret, nd_line(cond), jump, then_label);</div><div class='del'>-	break;</div><div class='add'>+        /* printf("useless condition eliminate (%s)\n",  ruby_node_name(nd_type(cond))); */</div><div class='add'>+        ADD_INSNL(ret, cond, jump, then_label);</div><div class='add'>+        return COMPILE_OK;</div><div class='ctx'>       case NODE_FALSE:</div><div class='ctx'>       case NODE_NIL:</div><div class='del'>-	/* printf("useless condition eliminate (%s)\n", ruby_node_name(nd_type(cond))); */</div><div class='del'>-	ADD_INSNL(ret, nd_line(cond), jump, else_label);</div><div class='del'>-	break;</div><div class='del'>-      case NODE_ARRAY:</div><div class='add'>+        /* printf("useless condition eliminate (%s)\n", ruby_node_name(nd_type(cond))); */</div><div class='add'>+        ADD_INSNL(ret, cond, jump, else_label);</div><div class='add'>+        return COMPILE_OK;</div><div class='add'>+      case NODE_LIST:</div><div class='ctx'>       case NODE_ARGSCAT:</div><div class='ctx'>       case NODE_DREGX:</div><div class='ctx'>       case NODE_DSTR:</div><div class='del'>-	CHECK(COMPILE_POPPED(ret, "branch condition", cond));</div><div class='del'>-	ADD_INSNL(ret, nd_line(cond), jump, then_label);</div><div class='del'>-	break;</div><div class='add'>+        CHECK(COMPILE_POPPED(ret, "branch condition", cond));</div><div class='add'>+        ADD_INSNL(ret, cond, jump, then_label);</div><div class='add'>+        return COMPILE_OK;</div><div class='ctx'>       case NODE_FLIP2:</div><div class='del'>-	CHECK(compile_flip_flop(iseq, ret, cond, TRUE, then_label, else_label));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_flip_flop(iseq, ret, cond, TRUE, then_label, else_label));</div><div class='add'>+        return COMPILE_OK;</div><div class='ctx'>       case NODE_FLIP3:</div><div class='del'>-	CHECK(compile_flip_flop(iseq, ret, cond, FALSE, then_label, else_label));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_flip_flop(iseq, ret, cond, FALSE, then_label, else_label));</div><div class='add'>+        return COMPILE_OK;</div><div class='ctx'>       case NODE_DEFINED:</div><div class='del'>-	CHECK(compile_defined_expr(iseq, ret, cond, Qfalse));</div><div class='del'>-	goto branch;</div><div class='add'>+        CHECK(compile_defined_expr(iseq, ret, cond, Qfalse));</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	CHECK(COMPILE(ret, "branch condition", cond));</div><div class='del'>-      branch:</div><div class='del'>-	ADD_INSNL(ret, nd_line(cond), branchunless, else_label);</div><div class='del'>-	ADD_INSNL(ret, nd_line(cond), jump, then_label);</div><div class='del'>-	break;</div><div class='add'>+        CHECK(COMPILE(ret, "branch condition", cond));</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    ADD_INSNL(ret, cond, branchunless, else_label);</div><div class='add'>+    ADD_INSNL(ret, cond, jump, then_label);</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#define HASH_BRACE 1</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+keyword_node_p(const NODE *const node)</div><div class='add'>+{</div><div class='add'>+    return nd_type_p(node, NODE_HASH) &amp;&amp; (node-&gt;nd_brace &amp; HASH_BRACE) != HASH_BRACE;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='del'>-compile_array_keyword_arg(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='del'>-			  const NODE *const root_node,</div><div class='del'>-			  struct rb_call_info_kw_arg **const kw_arg_ptr,</div><div class='del'>-			  unsigned int *flag)</div><div class='add'>+compile_keyword_arg(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='add'>+                          const NODE *const root_node,</div><div class='add'>+                          struct rb_callinfo_kwarg **const kw_arg_ptr,</div><div class='add'>+                          unsigned int *flag)</div><div class='ctx'> {</div><div class='ctx'>     if (kw_arg_ptr == NULL) return FALSE;</div><div class='ctx'> </div><div class='del'>-    if (nd_type(root_node) == NODE_HASH &amp;&amp; root_node-&gt;nd_head &amp;&amp; nd_type(root_node-&gt;nd_head) == NODE_ARRAY) {</div><div class='del'>-	const NODE *node = root_node-&gt;nd_head;</div><div class='del'>-</div><div class='del'>-	while (node) {</div><div class='del'>-	    const NODE *key_node = node-&gt;nd_head;</div><div class='del'>-</div><div class='del'>-	    assert(nd_type(node) == NODE_ARRAY);</div><div class='del'>-	    if (!key_node) {</div><div class='del'>-		if (flag &amp;&amp; !root_node-&gt;nd_alen) *flag |= VM_CALL_KW_SPLAT;</div><div class='del'>-		return FALSE;</div><div class='del'>-	    }</div><div class='del'>-	    else if (nd_type(key_node) == NODE_LIT &amp;&amp; RB_TYPE_P(key_node-&gt;nd_lit, T_SYMBOL)) {</div><div class='del'>-		/* can be keywords */</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		return FALSE;</div><div class='del'>-	    }</div><div class='del'>-	    node = node-&gt;nd_next; /* skip value node */</div><div class='del'>-	    node = node-&gt;nd_next;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* may be keywords */</div><div class='del'>-	node = root_node-&gt;nd_head;</div><div class='del'>-	{</div><div class='del'>-	    int len = (int)node-&gt;nd_alen / 2;</div><div class='del'>-	    struct rb_call_info_kw_arg *kw_arg  = (struct rb_call_info_kw_arg *)ruby_xmalloc(sizeof(struct rb_call_info_kw_arg) + sizeof(VALUE) * (len - 1));</div><div class='del'>-	    VALUE *keywords = kw_arg-&gt;keywords;</div><div class='del'>-	    int i = 0;</div><div class='del'>-	    kw_arg-&gt;keyword_len = len;</div><div class='del'>-</div><div class='del'>-	    *kw_arg_ptr = kw_arg;</div><div class='del'>-</div><div class='del'>-	    for (i=0; node != NULL; i++, node = node-&gt;nd_next-&gt;nd_next) {</div><div class='del'>-		const NODE *key_node = node-&gt;nd_head;</div><div class='del'>-		const NODE *val_node = node-&gt;nd_next-&gt;nd_head;</div><div class='del'>-		keywords[i] = key_node-&gt;nd_lit;</div><div class='del'>-		COMPILE(ret, "keyword values", val_node);</div><div class='del'>-	    }</div><div class='del'>-	    assert(i == len);</div><div class='del'>-	    return TRUE;</div><div class='del'>-	}</div><div class='add'>+    if (root_node-&gt;nd_head &amp;&amp; nd_type_p(root_node-&gt;nd_head, NODE_LIST)) {</div><div class='add'>+        const NODE *node = root_node-&gt;nd_head;</div><div class='add'>+        int seen_nodes = 0;</div><div class='add'>+</div><div class='add'>+        while (node) {</div><div class='add'>+            const NODE *key_node = node-&gt;nd_head;</div><div class='add'>+            seen_nodes++;</div><div class='add'>+</div><div class='add'>+            assert(nd_type_p(node, NODE_LIST));</div><div class='add'>+            if (key_node &amp;&amp; nd_type_p(key_node, NODE_LIT) &amp;&amp; SYMBOL_P(key_node-&gt;nd_lit)) {</div><div class='add'>+                /* can be keywords */</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                if (flag) {</div><div class='add'>+                    *flag |= VM_CALL_KW_SPLAT;</div><div class='add'>+                    if (seen_nodes &gt; 1 || node-&gt;nd_next-&gt;nd_next) {</div><div class='add'>+                        /* A new hash will be created for the keyword arguments</div><div class='add'>+                         * in this case, so mark the method as passing mutable</div><div class='add'>+                         * keyword splat.</div><div class='add'>+                         */</div><div class='add'>+                        *flag |= VM_CALL_KW_SPLAT_MUT;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                return FALSE;</div><div class='add'>+            }</div><div class='add'>+            node = node-&gt;nd_next; /* skip value node */</div><div class='add'>+            node = node-&gt;nd_next;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* may be keywords */</div><div class='add'>+        node = root_node-&gt;nd_head;</div><div class='add'>+        {</div><div class='add'>+            int len = (int)node-&gt;nd_alen / 2;</div><div class='add'>+            struct rb_callinfo_kwarg *kw_arg =</div><div class='add'>+                rb_xmalloc_mul_add(len, sizeof(VALUE), sizeof(struct rb_callinfo_kwarg));</div><div class='add'>+            VALUE *keywords = kw_arg-&gt;keywords;</div><div class='add'>+            int i = 0;</div><div class='add'>+            kw_arg-&gt;keyword_len = len;</div><div class='add'>+</div><div class='add'>+            *kw_arg_ptr = kw_arg;</div><div class='add'>+</div><div class='add'>+            for (i=0; node != NULL; i++, node = node-&gt;nd_next-&gt;nd_next) {</div><div class='add'>+                const NODE *key_node = node-&gt;nd_head;</div><div class='add'>+                const NODE *val_node = node-&gt;nd_next-&gt;nd_head;</div><div class='add'>+                keywords[i] = key_node-&gt;nd_lit;</div><div class='add'>+                NO_CHECK(COMPILE(ret, "keyword values", val_node));</div><div class='add'>+            }</div><div class='add'>+            assert(i == len);</div><div class='add'>+            return TRUE;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return FALSE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-enum compile_array_type_t {</div><div class='del'>-    COMPILE_ARRAY_TYPE_ARRAY,</div><div class='del'>-    COMPILE_ARRAY_TYPE_HASH,</div><div class='del'>-    COMPILE_ARRAY_TYPE_ARGS</div><div class='del'>-};</div><div class='add'>+static int</div><div class='add'>+compile_args(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node,</div><div class='add'>+                   struct rb_callinfo_kwarg **keywords_ptr, unsigned int *flag)</div><div class='add'>+{</div><div class='add'>+    int len = 0;</div><div class='add'>+</div><div class='add'>+    for (; node; len++, node = node-&gt;nd_next) {</div><div class='add'>+        if (CPDEBUG &gt; 0) {</div><div class='add'>+            EXPECT_NODE("compile_args", node, NODE_LIST, -1);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (node-&gt;nd_next == NULL &amp;&amp; keyword_node_p(node-&gt;nd_head)) { /* last node */</div><div class='add'>+            if (compile_keyword_arg(iseq, ret, node-&gt;nd_head, keywords_ptr, flag)) {</div><div class='add'>+                len--;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                compile_hash(iseq, ret, node-&gt;nd_head, TRUE, FALSE);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            NO_CHECK(COMPILE_(ret, "array element", node-&gt;nd_head, FALSE));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return len;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static inline int</div><div class='ctx'> static_literal_node_p(const NODE *node, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    node = node-&gt;nd_head;</div><div class='ctx'>     switch (nd_type(node)) {</div><div class='ctx'>       case NODE_LIT:</div><div class='ctx'>       case NODE_NIL:</div><div class='ctx'>       case NODE_TRUE:</div><div class='ctx'>       case NODE_FALSE:</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>       case NODE_STR:</div><div class='del'>-        if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal) {</div><div class='del'>-            return TRUE;</div><div class='del'>-        } else {</div><div class='del'>-            return FALSE;</div><div class='del'>-        }</div><div class='add'>+        return ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal;</div><div class='ctx'>       default:</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline VALUE</div><div class='ctx'> static_literal_value(const NODE *node, rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    node = node-&gt;nd_head;</div><div class='ctx'>     switch (nd_type(node)) {</div><div class='ctx'>       case NODE_NIL:</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>       case NODE_TRUE:</div><div class='del'>-	return Qtrue;</div><div class='add'>+        return Qtrue;</div><div class='ctx'>       case NODE_FALSE:</div><div class='del'>-	return Qfalse;</div><div class='add'>+        return Qfalse;</div><div class='ctx'>       case NODE_STR:</div><div class='ctx'>         if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;debug_frozen_string_literal || RTEST(ruby_debug)) {</div><div class='ctx'>             VALUE lit;</div><div class='hunk'>@@ -3928,249 +4474,420 @@ static_literal_value(const NODE *node, rb_iseq_t *iseq)</div><div class='ctx'>             return rb_fstring(node-&gt;nd_lit);</div><div class='ctx'>         }</div><div class='ctx'>       default:</div><div class='del'>-	return node-&gt;nd_lit;</div><div class='add'>+        return node-&gt;nd_lit;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-compile_array(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node_root,</div><div class='del'>-	      enum compile_array_type_t type, struct rb_call_info_kw_arg **keywords_ptr,</div><div class='del'>-	      unsigned int *flag, int popped)</div><div class='add'>+compile_array(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int popped)</div><div class='ctx'> {</div><div class='del'>-    const NODE *node = node_root;</div><div class='del'>-    int line = (int)nd_line(node);</div><div class='del'>-    int len = 0;</div><div class='add'>+    const NODE *line_node = node;</div><div class='add'>+</div><div class='add'>+    if (nd_type_p(node, NODE_ZLIST)) {</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, line_node, newarray, INT2FIX(0));</div><div class='add'>+        }</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    EXPECT_NODE("compile_array", node, NODE_LIST, -1);</div><div class='add'>+</div><div class='add'>+    if (popped) {</div><div class='add'>+        for (; node; node = node-&gt;nd_next) {</div><div class='add'>+            NO_CHECK(COMPILE_(ret, "array element", node-&gt;nd_head, popped));</div><div class='add'>+        }</div><div class='add'>+        return 1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* Compilation of an array literal.</div><div class='add'>+     * The following code is essentially the same as:</div><div class='add'>+     *</div><div class='add'>+     *     for (int count = 0; node; count++; node-&gt;nd_next) {</div><div class='add'>+     *         compile(node-&gt;nd_head);</div><div class='add'>+     *     }</div><div class='add'>+     *     ADD_INSN(newarray, count);</div><div class='add'>+     *</div><div class='add'>+     * However, there are three points.</div><div class='add'>+     *</div><div class='add'>+     * - The code above causes stack overflow for a big string literal.</div><div class='add'>+     *   The following limits the stack length up to max_stack_len.</div><div class='add'>+     *</div><div class='add'>+     *   [x1,x2,...,x10000] =&gt;</div><div class='add'>+     *     push x1  ; push x2  ; ...; push x256; newarray 256;</div><div class='add'>+     *     push x257; push x258; ...; push x512; newarray 256; concatarray;</div><div class='add'>+     *     push x513; push x514; ...; push x768; newarray 256; concatarray;</div><div class='add'>+     *     ...</div><div class='add'>+     *</div><div class='add'>+     * - Long subarray can be optimized by pre-allocating a hidden array.</div><div class='add'>+     *</div><div class='add'>+     *   [1,2,3,...,100] =&gt;</div><div class='add'>+     *     duparray [1,2,3,...,100]</div><div class='add'>+     *</div><div class='add'>+     *   [x, 1,2,3,...,100, z] =&gt;</div><div class='add'>+     *     push x; newarray 1;</div><div class='add'>+     *     putobject [1,2,3,...,100] (&lt;- hidden array); concatarray;</div><div class='add'>+     *     push z; newarray 1; concatarray</div><div class='add'>+     *</div><div class='add'>+     * - If the last element is a keyword, newarraykwsplat should be emitted</div><div class='add'>+     *   to check and remove empty keyword arguments hash from array.</div><div class='add'>+     *   (Note: a keyword is NODE_HASH which is not static_literal_node_p.)</div><div class='add'>+     *</div><div class='add'>+     *   [1,2,3,**kw] =&gt;</div><div class='add'>+     *     putobject 1; putobject 2; putobject 3; push kw; newarraykwsplat</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    const int max_stack_len = 0x100;</div><div class='add'>+    const int min_tmp_ary_len = 0x40;</div><div class='add'>+    int stack_len = 0;</div><div class='add'>+    int first_chunk = 1;</div><div class='add'>+</div><div class='add'>+    /* Convert pushed elements to an array, and concatarray if needed */</div><div class='add'>+#define FLUSH_CHUNK(newarrayinsn)                               \</div><div class='add'>+    if (stack_len) {                                            \</div><div class='add'>+        ADD_INSN1(ret, line_node, newarrayinsn, INT2FIX(stack_len)); \</div><div class='add'>+        if (!first_chunk) ADD_INSN(ret, line_node, concatarray);     \</div><div class='add'>+        first_chunk = stack_len = 0;                            \</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (node) {</div><div class='add'>+        int count = 1;</div><div class='add'>+</div><div class='add'>+        /* pre-allocation check (this branch can be omittable) */</div><div class='add'>+        if (static_literal_node_p(node-&gt;nd_head, iseq)) {</div><div class='add'>+            /* count the elements that are optimizable */</div><div class='add'>+            const NODE *node_tmp = node-&gt;nd_next;</div><div class='add'>+            for (; node_tmp &amp;&amp; static_literal_node_p(node_tmp-&gt;nd_head, iseq); node_tmp = node_tmp-&gt;nd_next)</div><div class='add'>+                count++;</div><div class='add'>+</div><div class='add'>+            if ((first_chunk &amp;&amp; stack_len == 0 &amp;&amp; !node_tmp) || count &gt;= min_tmp_ary_len) {</div><div class='add'>+                /* The literal contains only optimizable elements, or the subarray is long enough */</div><div class='add'>+                VALUE ary = rb_ary_hidden_new(count);</div><div class='add'>+</div><div class='add'>+                /* Create a hidden array */</div><div class='add'>+                for (; count; count--, node = node-&gt;nd_next)</div><div class='add'>+                    rb_ary_push(ary, static_literal_value(node-&gt;nd_head, iseq));</div><div class='add'>+                OBJ_FREEZE(ary);</div><div class='add'>+</div><div class='add'>+                /* Emit optimized code */</div><div class='add'>+                FLUSH_CHUNK(newarray);</div><div class='add'>+                if (first_chunk) {</div><div class='add'>+                    ADD_INSN1(ret, line_node, duparray, ary);</div><div class='add'>+                    first_chunk = 0;</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    ADD_INSN1(ret, line_node, putobject, ary);</div><div class='add'>+                    ADD_INSN(ret, line_node, concatarray);</div><div class='add'>+                }</div><div class='add'>+                RB_OBJ_WRITTEN(iseq, Qundef, ary);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* Base case: Compile "count" elements */</div><div class='add'>+        for (; count; count--, node = node-&gt;nd_next) {</div><div class='add'>+            if (CPDEBUG &gt; 0) {</div><div class='add'>+                EXPECT_NODE("compile_array", node, NODE_LIST, -1);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            NO_CHECK(COMPILE_(ret, "array element", node-&gt;nd_head, 0));</div><div class='add'>+            stack_len++;</div><div class='add'>+</div><div class='add'>+            if (!node-&gt;nd_next &amp;&amp; keyword_node_p(node-&gt;nd_head)) {</div><div class='add'>+                /* Reached the end, and the last element is a keyword */</div><div class='add'>+                FLUSH_CHUNK(newarraykwsplat);</div><div class='add'>+                return 1;</div><div class='add'>+            }</div><div class='ctx'> </div><div class='del'>-    if (nd_type(node) == NODE_ZARRAY) {</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    switch (type) {</div><div class='del'>-	      case COMPILE_ARRAY_TYPE_ARRAY: ADD_INSN1(ret, line, newarray, INT2FIX(0)); break;</div><div class='del'>-	      case COMPILE_ARRAY_TYPE_HASH: ADD_INSN1(ret, line, newhash, INT2FIX(0)); break;</div><div class='del'>-	      case COMPILE_ARRAY_TYPE_ARGS: /* do nothing */ break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+            /* If there are many pushed elements, flush them to avoid stack overflow */</div><div class='add'>+            if (stack_len &gt;= max_stack_len) FLUSH_CHUNK(newarray);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    FLUSH_CHUNK(newarray);</div><div class='add'>+#undef FLUSH_CHUNK</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* Compile an array containing the single element represented by node */</div><div class='add'>+static int</div><div class='add'>+compile_array_1(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node)</div><div class='add'>+{</div><div class='add'>+    if (static_literal_node_p(node, iseq)) {</div><div class='add'>+        VALUE ary = rb_ary_hidden_new(1);</div><div class='add'>+        rb_ary_push(ary, static_literal_value(node, iseq));</div><div class='add'>+        OBJ_FREEZE(ary);</div><div class='add'>+</div><div class='add'>+        ADD_INSN1(ret, node, duparray, ary);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	int opt_p = 1;</div><div class='del'>-	int first = 1, i;</div><div class='del'>-</div><div class='del'>-	while (node) {</div><div class='del'>-	    const NODE *start_node = node, *end_node;</div><div class='del'>-	    const NODE *kw = 0;</div><div class='del'>-	    const int max = 0x100;</div><div class='del'>-	    DECL_ANCHOR(anchor);</div><div class='del'>-	    INIT_ANCHOR(anchor);</div><div class='del'>-</div><div class='del'>-	    for (i=0; i&lt;max &amp;&amp; node; i++, len++, node = node-&gt;nd_next) {</div><div class='del'>-		if (CPDEBUG &gt; 0) {</div><div class='del'>-		    EXPECT_NODE("compile_array", node, NODE_ARRAY, -1);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (type != COMPILE_ARRAY_TYPE_ARRAY &amp;&amp; !node-&gt;nd_head) {</div><div class='del'>-		    kw = node-&gt;nd_next;</div><div class='del'>-		    node = 0;</div><div class='del'>-		    if (kw) {</div><div class='del'>-			opt_p = 0;</div><div class='del'>-			node = kw-&gt;nd_next;</div><div class='del'>-			kw = kw-&gt;nd_head;</div><div class='del'>-		    }</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-                if (opt_p &amp;&amp; !static_literal_node_p(node, iseq)) {</div><div class='del'>-		    opt_p = 0;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		if (type == COMPILE_ARRAY_TYPE_ARGS &amp;&amp;</div><div class='del'>-		    node-&gt;nd_next == NULL /* last node */ &amp;&amp;</div><div class='del'>-		    compile_array_keyword_arg(iseq, anchor, node-&gt;nd_head, keywords_ptr, flag)) {</div><div class='del'>-		    len--;</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    COMPILE_(anchor, "array element", node-&gt;nd_head, popped);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (opt_p &amp;&amp; type != COMPILE_ARRAY_TYPE_ARGS) {</div><div class='del'>-		if (!popped) {</div><div class='del'>-		    VALUE ary = rb_ary_tmp_new(i);</div><div class='del'>-</div><div class='del'>-		    end_node = node;</div><div class='del'>-		    node = start_node;</div><div class='del'>-</div><div class='del'>-		    while (node != end_node) {</div><div class='del'>-                        rb_ary_push(ary, static_literal_value(node, iseq));</div><div class='del'>-			node = node-&gt;nd_next;</div><div class='del'>-		    }</div><div class='del'>-		    while (node &amp;&amp; node-&gt;nd_next &amp;&amp;</div><div class='del'>-                           static_literal_node_p(node, iseq) &amp;&amp;</div><div class='del'>-                           static_literal_node_p(node-&gt;nd_next, iseq)) {</div><div class='del'>-			VALUE elem[2];</div><div class='del'>-                        elem[0] = static_literal_value(node, iseq);</div><div class='del'>-                        elem[1] = static_literal_value(node-&gt;nd_next, iseq);</div><div class='del'>-			rb_ary_cat(ary, elem, 2);</div><div class='del'>-			node = node-&gt;nd_next-&gt;nd_next;</div><div class='del'>-			len++;</div><div class='del'>-		    }</div><div class='del'>-</div><div class='del'>-		    OBJ_FREEZE(ary);</div><div class='del'>-</div><div class='del'>-		    iseq_add_mark_object_compile_time(iseq, ary);</div><div class='del'>-</div><div class='del'>-		    if (first) {</div><div class='del'>-			first = 0;</div><div class='del'>-			if (type == COMPILE_ARRAY_TYPE_ARRAY) {</div><div class='del'>-			    ADD_INSN1(ret, line, duparray, ary);</div><div class='del'>-			}</div><div class='del'>-			else { /* COMPILE_ARRAY_TYPE_HASH */</div><div class='del'>-                            VALUE hash;</div><div class='del'>-</div><div class='del'>-                            hash = rb_hash_new_with_size(RARRAY_LEN(ary) / 2);</div><div class='del'>-                            rb_hash_bulk_insert(RARRAY_LEN(ary), RARRAY_CONST_PTR_TRANSIENT(ary), hash);</div><div class='del'>-                            iseq_add_mark_object_compile_time(iseq, rb_obj_hide(hash));</div><div class='del'>-                            ADD_INSN1(ret, line, duphash, hash);</div><div class='del'>-			}</div><div class='del'>-		    }</div><div class='del'>-		    else {</div><div class='del'>-			if (type == COMPILE_ARRAY_TYPE_ARRAY) {</div><div class='del'>-			    ADD_INSN1(ret, line, putobject, ary);</div><div class='del'>-			    ADD_INSN(ret, line, concatarray);</div><div class='del'>-			}</div><div class='del'>-			else {</div><div class='del'>-			    COMPILE_ERROR(ERROR_ARGS "core#hash_merge_ary");</div><div class='del'>-			    return -1;</div><div class='del'>-			}</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		if (!popped || kw) {</div><div class='del'>-		    switch (type) {</div><div class='del'>-		      case COMPILE_ARRAY_TYPE_ARRAY:</div><div class='del'>-			ADD_INSN1(anchor, line, newarray, INT2FIX(i));</div><div class='del'>-</div><div class='del'>-			if (first) {</div><div class='del'>-			    first = 0;</div><div class='del'>-			}</div><div class='del'>-			else {</div><div class='del'>-			    ADD_INSN(anchor, line, concatarray);</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			APPEND_LIST(ret, anchor);</div><div class='del'>-			break;</div><div class='del'>-		      case COMPILE_ARRAY_TYPE_HASH:</div><div class='del'>-			if (i &gt; 0) {</div><div class='del'>-			    if (first) {</div><div class='del'>-				if (!popped) {</div><div class='del'>-				    ADD_INSN1(anchor, line, newhash, INT2FIX(i));</div><div class='del'>-				}</div><div class='del'>-				APPEND_LIST(ret, anchor);</div><div class='del'>-			    }</div><div class='del'>-			    else {</div><div class='del'>-				if (!popped) {</div><div class='del'>-				    ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='del'>-				    ADD_INSN(ret, line, swap);</div><div class='del'>-				}</div><div class='del'>-				APPEND_LIST(ret, anchor);</div><div class='del'>-				if (!popped) {</div><div class='del'>-				    ADD_SEND(ret, line, id_core_hash_merge_ptr, INT2FIX(i + 1));</div><div class='del'>-				}</div><div class='del'>-			    }</div><div class='del'>-			}</div><div class='del'>-			if (kw) {</div><div class='del'>-			    if (!popped) {</div><div class='del'>-				ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='del'>-				if (i &gt; 0 || !first) ADD_INSN(ret, line, swap);</div><div class='del'>-				else ADD_INSN1(ret, line, newhash, INT2FIX(0));</div><div class='del'>-			    }</div><div class='del'>-			    COMPILE(ret, "keyword splat", kw);</div><div class='del'>-			    if (popped) {</div><div class='del'>-				ADD_INSN(ret, line, pop);</div><div class='del'>-			    }</div><div class='del'>-			    else {</div><div class='del'>-				ADD_SEND(ret, line, id_core_hash_merge_kwd, INT2FIX(2));</div><div class='del'>-			    }</div><div class='del'>-			}</div><div class='del'>-			first = 0;</div><div class='del'>-			break;</div><div class='del'>-		      case COMPILE_ARRAY_TYPE_ARGS:</div><div class='del'>-			APPEND_LIST(ret, anchor);</div><div class='del'>-			break;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    /* popped */</div><div class='del'>-		    APPEND_LIST(ret, anchor);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        CHECK(COMPILE_(ret, "array element", node, FALSE));</div><div class='add'>+        if (keyword_node_p(node)) {</div><div class='add'>+            ADD_INSN1(ret, node, newarraykwsplat, INT2FIX(1));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN1(ret, node, newarray, INT2FIX(1));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    return len;</div><div class='add'>+</div><div class='add'>+    return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-case_when_optimizable_literal(const NODE *const node)</div><div class='add'>+static inline int</div><div class='add'>+static_literal_node_pair_p(const NODE *node, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    return node-&gt;nd_head &amp;&amp; static_literal_node_p(node-&gt;nd_head, iseq) &amp;&amp; static_literal_node_p(node-&gt;nd_next-&gt;nd_head, iseq);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_hash(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int method_call_keywords, int popped)</div><div class='add'>+{</div><div class='add'>+    const NODE *line_node = node;</div><div class='add'>+</div><div class='add'>+    node = node-&gt;nd_head;</div><div class='add'>+</div><div class='add'>+    if (!node || nd_type_p(node, NODE_ZLIST)) {</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, line_node, newhash, INT2FIX(0));</div><div class='add'>+        }</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    EXPECT_NODE("compile_hash", node, NODE_LIST, -1);</div><div class='add'>+</div><div class='add'>+    if (popped) {</div><div class='add'>+        for (; node; node = node-&gt;nd_next) {</div><div class='add'>+            NO_CHECK(COMPILE_(ret, "hash element", node-&gt;nd_head, popped));</div><div class='add'>+        }</div><div class='add'>+        return 1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* Compilation of a hash literal (or keyword arguments).</div><div class='add'>+     * This is very similar to compile_array, but there are some differences:</div><div class='add'>+     *</div><div class='add'>+     * - It contains key-value pairs.  So we need to take every two elements.</div><div class='add'>+     *   We can assume that the length is always even.</div><div class='add'>+     *</div><div class='add'>+     * - Merging is done by a method call (id_core_hash_merge_ptr).</div><div class='add'>+     *   Sometimes we need to insert the receiver, so "anchor" is needed.</div><div class='add'>+     *   In addition, a method call is much slower than concatarray.</div><div class='add'>+     *   So it pays only when the subsequence is really long.</div><div class='add'>+     *   (min_tmp_hash_len must be much larger than min_tmp_ary_len.)</div><div class='add'>+     *</div><div class='add'>+     * - We need to handle keyword splat: **kw.</div><div class='add'>+     *   For **kw, the key part (node-&gt;nd_head) is NULL, and the value part</div><div class='add'>+     *   (node-&gt;nd_next-&gt;nd_head) is "kw".</div><div class='add'>+     *   The code is a bit difficult to avoid hash allocation for **{}.</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    const int max_stack_len = 0x100;</div><div class='add'>+    const int min_tmp_hash_len = 0x800;</div><div class='add'>+    int stack_len = 0;</div><div class='add'>+    int first_chunk = 1;</div><div class='add'>+    DECL_ANCHOR(anchor);</div><div class='add'>+    INIT_ANCHOR(anchor);</div><div class='add'>+</div><div class='add'>+    /* Convert pushed elements to a hash, and merge if needed */</div><div class='add'>+#define FLUSH_CHUNK()                                                                   \</div><div class='add'>+    if (stack_len) {                                                                    \</div><div class='add'>+        if (first_chunk) {                                                              \</div><div class='add'>+            APPEND_LIST(ret, anchor);                                                   \</div><div class='add'>+            ADD_INSN1(ret, line_node, newhash, INT2FIX(stack_len));                          \</div><div class='add'>+        }                                                                               \</div><div class='add'>+        else {                                                                          \</div><div class='add'>+            ADD_INSN1(ret, line_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));  \</div><div class='add'>+            ADD_INSN(ret, line_node, swap);                                                  \</div><div class='add'>+            APPEND_LIST(ret, anchor);                                                   \</div><div class='add'>+            ADD_SEND(ret, line_node, id_core_hash_merge_ptr, INT2FIX(stack_len + 1));        \</div><div class='add'>+        }                                                                               \</div><div class='add'>+        INIT_ANCHOR(anchor);                                                            \</div><div class='add'>+        first_chunk = stack_len = 0;                                                    \</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (node) {</div><div class='add'>+        int count = 1;</div><div class='add'>+</div><div class='add'>+        /* pre-allocation check (this branch can be omittable) */</div><div class='add'>+        if (static_literal_node_pair_p(node, iseq)) {</div><div class='add'>+            /* count the elements that are optimizable */</div><div class='add'>+            const NODE *node_tmp = node-&gt;nd_next-&gt;nd_next;</div><div class='add'>+            for (; node_tmp &amp;&amp; static_literal_node_pair_p(node_tmp, iseq); node_tmp = node_tmp-&gt;nd_next-&gt;nd_next)</div><div class='add'>+                count++;</div><div class='add'>+</div><div class='add'>+            if ((first_chunk &amp;&amp; stack_len == 0 &amp;&amp; !node_tmp) || count &gt;= min_tmp_hash_len) {</div><div class='add'>+                /* The literal contains only optimizable elements, or the subsequence is long enough */</div><div class='add'>+                VALUE ary = rb_ary_hidden_new(count);</div><div class='add'>+</div><div class='add'>+                /* Create a hidden hash */</div><div class='add'>+                for (; count; count--, node = node-&gt;nd_next-&gt;nd_next) {</div><div class='add'>+                    VALUE elem[2];</div><div class='add'>+                    elem[0] = static_literal_value(node-&gt;nd_head, iseq);</div><div class='add'>+                    elem[1] = static_literal_value(node-&gt;nd_next-&gt;nd_head, iseq);</div><div class='add'>+                    rb_ary_cat(ary, elem, 2);</div><div class='add'>+                }</div><div class='add'>+                VALUE hash = rb_hash_new_with_size(RARRAY_LEN(ary) / 2);</div><div class='add'>+                rb_hash_bulk_insert(RARRAY_LEN(ary), RARRAY_CONST_PTR_TRANSIENT(ary), hash);</div><div class='add'>+                hash = rb_obj_hide(hash);</div><div class='add'>+                OBJ_FREEZE(hash);</div><div class='add'>+</div><div class='add'>+                /* Emit optimized code */</div><div class='add'>+                FLUSH_CHUNK();</div><div class='add'>+                if (first_chunk) {</div><div class='add'>+                    ADD_INSN1(ret, line_node, duphash, hash);</div><div class='add'>+                    first_chunk = 0;</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    ADD_INSN1(ret, line_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+                    ADD_INSN(ret, line_node, swap);</div><div class='add'>+</div><div class='add'>+                    ADD_INSN1(ret, line_node, putobject, hash);</div><div class='add'>+</div><div class='add'>+                    ADD_SEND(ret, line_node, id_core_hash_merge_kwd, INT2FIX(2));</div><div class='add'>+                }</div><div class='add'>+                RB_OBJ_WRITTEN(iseq, Qundef, hash);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* Base case: Compile "count" elements */</div><div class='add'>+        for (; count; count--, node = node-&gt;nd_next-&gt;nd_next) {</div><div class='add'>+</div><div class='add'>+            if (CPDEBUG &gt; 0) {</div><div class='add'>+                EXPECT_NODE("compile_hash", node, NODE_LIST, -1);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (node-&gt;nd_head) {</div><div class='add'>+                /* Normal key-value pair */</div><div class='add'>+                NO_CHECK(COMPILE_(anchor, "hash key element", node-&gt;nd_head, 0));</div><div class='add'>+                NO_CHECK(COMPILE_(anchor, "hash value element", node-&gt;nd_next-&gt;nd_head, 0));</div><div class='add'>+                stack_len += 2;</div><div class='add'>+</div><div class='add'>+                /* If there are many pushed elements, flush them to avoid stack overflow */</div><div class='add'>+                if (stack_len &gt;= max_stack_len) FLUSH_CHUNK();</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                /* kwsplat case: foo(..., **kw, ...) */</div><div class='add'>+                FLUSH_CHUNK();</div><div class='add'>+</div><div class='add'>+                const NODE *kw = node-&gt;nd_next-&gt;nd_head;</div><div class='add'>+                int empty_kw = nd_type_p(kw, NODE_LIT) &amp;&amp; RB_TYPE_P(kw-&gt;nd_lit, T_HASH); /* foo(  ..., **{}, ...) */</div><div class='add'>+                int first_kw = first_chunk &amp;&amp; stack_len == 0; /* foo(1,2,3, **kw, ...) */</div><div class='add'>+                int last_kw = !node-&gt;nd_next-&gt;nd_next;        /* foo(  ..., **kw) */</div><div class='add'>+                int only_kw = last_kw &amp;&amp; first_kw;            /* foo(1,2,3, **kw) */</div><div class='add'>+</div><div class='add'>+                if (empty_kw) {</div><div class='add'>+                    if (only_kw &amp;&amp; method_call_keywords) {</div><div class='add'>+                        /* **{} appears at the only keyword argument in method call,</div><div class='add'>+                         * so it won't be modified.</div><div class='add'>+                         * kw is a special NODE_LIT that contains a special empty hash,</div><div class='add'>+                         * so this emits: putobject {}.</div><div class='add'>+                         * This is only done for method calls and not for literal hashes,</div><div class='add'>+                         * because literal hashes should always result in a new hash.</div><div class='add'>+                         */</div><div class='add'>+                        NO_CHECK(COMPILE(ret, "keyword splat", kw));</div><div class='add'>+                    }</div><div class='add'>+                    else if (first_kw) {</div><div class='add'>+                        /* **{} appears as the first keyword argument, so it may be modified.</div><div class='add'>+                         * We need to create a fresh hash object.</div><div class='add'>+                         */</div><div class='add'>+                        ADD_INSN1(ret, line_node, newhash, INT2FIX(0));</div><div class='add'>+                    }</div><div class='add'>+                    /* Any empty keyword splats that are not the first can be ignored.</div><div class='add'>+                     * since merging an empty hash into the existing hash is the same</div><div class='add'>+                     * as not merging it. */</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    if (only_kw &amp;&amp; method_call_keywords) {</div><div class='add'>+                        /* **kw is only keyword argument in method call.</div><div class='add'>+                         * Use directly.  This will be not be flagged as mutable.</div><div class='add'>+                         * This is only done for method calls and not for literal hashes,</div><div class='add'>+                         * because literal hashes should always result in a new hash.</div><div class='add'>+                         */</div><div class='add'>+                        NO_CHECK(COMPILE(ret, "keyword splat", kw));</div><div class='add'>+                    }</div><div class='add'>+                    else {</div><div class='add'>+                        /* There is more than one keyword argument, or this is not a method</div><div class='add'>+                         * call.  In that case, we need to add an empty hash (if first keyword),</div><div class='add'>+                         * or merge the hash to the accumulated hash (if not the first keyword).</div><div class='add'>+                         */</div><div class='add'>+                        ADD_INSN1(ret, line_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+                        if (first_kw) ADD_INSN1(ret, line_node, newhash, INT2FIX(0));</div><div class='add'>+                        else ADD_INSN(ret, line_node, swap);</div><div class='add'>+</div><div class='add'>+                        NO_CHECK(COMPILE(ret, "keyword splat", kw));</div><div class='add'>+</div><div class='add'>+                        ADD_SEND(ret, line_node, id_core_hash_merge_kwd, INT2FIX(2));</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+</div><div class='add'>+                first_chunk = 0;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    FLUSH_CHUNK();</div><div class='add'>+#undef FLUSH_CHUNK</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_node_case_when_optimizable_literal(const NODE *const node)</div><div class='ctx'> {</div><div class='ctx'>     switch (nd_type(node)) {</div><div class='ctx'>       case NODE_LIT: {</div><div class='del'>-	VALUE v = node-&gt;nd_lit;</div><div class='del'>-	double ival;</div><div class='del'>-	if (RB_TYPE_P(v, T_FLOAT) &amp;&amp;</div><div class='del'>-	    modf(RFLOAT_VALUE(v), &amp;ival) == 0.0) {</div><div class='del'>-	    return FIXABLE(ival) ? LONG2FIX((long)ival) : rb_dbl2big(ival);</div><div class='del'>-	}</div><div class='del'>-	if (SYMBOL_P(v) || rb_obj_is_kind_of(v, rb_cNumeric)) {</div><div class='del'>-	    return v;</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        VALUE v = node-&gt;nd_lit;</div><div class='add'>+        double ival;</div><div class='add'>+        if (RB_FLOAT_TYPE_P(v) &amp;&amp;</div><div class='add'>+            modf(RFLOAT_VALUE(v), &amp;ival) == 0.0) {</div><div class='add'>+            return FIXABLE(ival) ? LONG2FIX((long)ival) : rb_dbl2big(ival);</div><div class='add'>+        }</div><div class='add'>+        if (RB_TYPE_P(v, T_RATIONAL) || RB_TYPE_P(v, T_COMPLEX)) {</div><div class='add'>+            return Qundef;</div><div class='add'>+        }</div><div class='add'>+        if (SYMBOL_P(v) || rb_obj_is_kind_of(v, rb_cNumeric)) {</div><div class='add'>+            return v;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_NIL:</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>       case NODE_TRUE:</div><div class='del'>-	return Qtrue;</div><div class='add'>+        return Qtrue;</div><div class='ctx'>       case NODE_FALSE:</div><div class='del'>-	return Qfalse;</div><div class='add'>+        return Qfalse;</div><div class='ctx'>       case NODE_STR:</div><div class='del'>-	return rb_fstring(node-&gt;nd_lit);</div><div class='add'>+        return rb_fstring(node-&gt;nd_lit);</div><div class='ctx'>     }</div><div class='ctx'>     return Qundef;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> when_vals(rb_iseq_t *iseq, LINK_ANCHOR *const cond_seq, const NODE *vals,</div><div class='del'>-	  LABEL *l1, int only_special_literals, VALUE literals)</div><div class='add'>+          LABEL *l1, int only_special_literals, VALUE literals)</div><div class='ctx'> {</div><div class='ctx'>     while (vals) {</div><div class='del'>-	const NODE *val = vals-&gt;nd_head;</div><div class='del'>-	VALUE lit = case_when_optimizable_literal(val);</div><div class='del'>-</div><div class='del'>-	if (lit == Qundef) {</div><div class='del'>-	    only_special_literals = 0;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (rb_hash_lookup(literals, lit) != Qnil) {</div><div class='del'>-		VALUE file = rb_iseq_path(iseq);</div><div class='del'>-		rb_compile_warning(RSTRING_PTR(file), nd_line(val),</div><div class='del'>-				   "duplicated when clause is ignored");</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rb_hash_aset(literals, lit, (VALUE)(l1) | 1);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ADD_INSN(cond_seq, nd_line(val), dup); /* dup target */</div><div class='del'>-</div><div class='del'>-	if (nd_type(val) == NODE_STR) {</div><div class='del'>-	    debugp_param("nd_lit", val-&gt;nd_lit);</div><div class='del'>-	    lit = freeze_literal(iseq, val-&gt;nd_lit);</div><div class='del'>-	    ADD_INSN1(cond_seq, nd_line(val), putobject, lit);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (!COMPILE(cond_seq, "when cond", val)) return -1;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ADD_INSN1(cond_seq, nd_line(vals), checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE));</div><div class='del'>-	ADD_INSNL(cond_seq, nd_line(val), branchif, l1);</div><div class='del'>-	vals = vals-&gt;nd_next;</div><div class='add'>+        const NODE *val = vals-&gt;nd_head;</div><div class='add'>+        VALUE lit = rb_node_case_when_optimizable_literal(val);</div><div class='add'>+</div><div class='add'>+        if (UNDEF_P(lit)) {</div><div class='add'>+            only_special_literals = 0;</div><div class='add'>+        }</div><div class='add'>+        else if (NIL_P(rb_hash_lookup(literals, lit))) {</div><div class='add'>+            rb_hash_aset(literals, lit, (VALUE)(l1) | 1);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (nd_type_p(val, NODE_STR)) {</div><div class='add'>+            debugp_param("nd_lit", val-&gt;nd_lit);</div><div class='add'>+            lit = rb_fstring(val-&gt;nd_lit);</div><div class='add'>+            ADD_INSN1(cond_seq, val, putobject, lit);</div><div class='add'>+            RB_OBJ_WRITTEN(iseq, Qundef, lit);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (!COMPILE(cond_seq, "when cond", val)) return -1;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // Emit patern === target</div><div class='add'>+        ADD_INSN1(cond_seq, vals, topn, INT2FIX(1));</div><div class='add'>+        ADD_CALL(cond_seq, vals, idEqq, INT2FIX(1));</div><div class='add'>+        ADD_INSNL(cond_seq, val, branchif, l1);</div><div class='add'>+        vals = vals-&gt;nd_next;</div><div class='ctx'>     }</div><div class='ctx'>     return only_special_literals;</div><div class='ctx'> }</div><div class='hunk'>@@ -4179,19 +4896,19 @@ static int</div><div class='ctx'> when_splat_vals(rb_iseq_t *iseq, LINK_ANCHOR *const cond_seq, const NODE *vals,</div><div class='ctx'>                 LABEL *l1, int only_special_literals, VALUE literals)</div><div class='ctx'> {</div><div class='del'>-    const int line = nd_line(vals);</div><div class='add'>+    const NODE *line_node = vals;</div><div class='ctx'> </div><div class='ctx'>     switch (nd_type(vals)) {</div><div class='del'>-      case NODE_ARRAY:</div><div class='add'>+      case NODE_LIST:</div><div class='ctx'>         if (when_vals(iseq, cond_seq, vals, l1, only_special_literals, literals) &lt; 0)</div><div class='ctx'>             return COMPILE_NG;</div><div class='ctx'>         break;</div><div class='ctx'>       case NODE_SPLAT:</div><div class='del'>-        ADD_INSN (cond_seq, line, dup);</div><div class='add'>+        ADD_INSN (cond_seq, line_node, dup);</div><div class='ctx'>         CHECK(COMPILE(cond_seq, "when splat", vals-&gt;nd_head));</div><div class='del'>-        ADD_INSN1(cond_seq, line, splatarray, Qfalse);</div><div class='del'>-        ADD_INSN1(cond_seq, line, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE | VM_CHECKMATCH_ARRAY));</div><div class='del'>-        ADD_INSNL(cond_seq, line, branchif, l1);</div><div class='add'>+        ADD_INSN1(cond_seq, line_node, splatarray, Qfalse);</div><div class='add'>+        ADD_INSN1(cond_seq, line_node, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE | VM_CHECKMATCH_ARRAY));</div><div class='add'>+        ADD_INSNL(cond_seq, line_node, branchif, l1);</div><div class='ctx'>         break;</div><div class='ctx'>       case NODE_ARGSCAT:</div><div class='ctx'>         CHECK(when_splat_vals(iseq, cond_seq, vals-&gt;nd_head, l1, only_special_literals, literals));</div><div class='hunk'>@@ -4199,63 +4916,264 @@ when_splat_vals(rb_iseq_t *iseq, LINK_ANCHOR *const cond_seq, const NODE *vals,</div><div class='ctx'>         break;</div><div class='ctx'>       case NODE_ARGSPUSH:</div><div class='ctx'>         CHECK(when_splat_vals(iseq, cond_seq, vals-&gt;nd_head, l1, only_special_literals, literals));</div><div class='del'>-        ADD_INSN (cond_seq, line, dup);</div><div class='add'>+        ADD_INSN (cond_seq, line_node, dup);</div><div class='ctx'>         CHECK(COMPILE(cond_seq, "when argspush body", vals-&gt;nd_body));</div><div class='del'>-        ADD_INSN1(cond_seq, line, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE));</div><div class='del'>-        ADD_INSNL(cond_seq, line, branchif, l1);</div><div class='add'>+        ADD_INSN1(cond_seq, line_node, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE));</div><div class='add'>+        ADD_INSNL(cond_seq, line_node, branchif, l1);</div><div class='ctx'>         break;</div><div class='ctx'>       default:</div><div class='del'>-        ADD_INSN (cond_seq, line, dup);</div><div class='add'>+        ADD_INSN (cond_seq, line_node, dup);</div><div class='ctx'>         CHECK(COMPILE(cond_seq, "when val", vals));</div><div class='del'>-        ADD_INSN1(cond_seq, line, splatarray, Qfalse);</div><div class='del'>-        ADD_INSN1(cond_seq, line, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE | VM_CHECKMATCH_ARRAY));</div><div class='del'>-        ADD_INSNL(cond_seq, line, branchif, l1);</div><div class='add'>+        ADD_INSN1(cond_seq, line_node, splatarray, Qfalse);</div><div class='add'>+        ADD_INSN1(cond_seq, line_node, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE | VM_CHECKMATCH_ARRAY));</div><div class='add'>+        ADD_INSNL(cond_seq, line_node, branchif, l1);</div><div class='ctx'>         break;</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* Multiple Assignment Handling</div><div class='add'>+ *</div><div class='add'>+ * In order to handle evaluation of multiple assignment such that the left hand side</div><div class='add'>+ * is evaluated before the right hand side, we need to process the left hand side</div><div class='add'>+ * and see if there are any attributes that need to be assigned, or constants set</div><div class='add'>+ * on explicit objects.  If so, we add instructions to evaluate the receiver of</div><div class='add'>+ * any assigned attributes or constants before we process the right hand side.</div><div class='add'>+ *</div><div class='add'>+ * For a multiple assignment such as:</div><div class='add'>+ *</div><div class='add'>+ *   l1.m1, l2[0] = r3, r4</div><div class='add'>+ *</div><div class='add'>+ * We start off evaluating l1 and l2, then we evaluate r3 and r4, then we</div><div class='add'>+ * assign the result of r3 to l1.m1, and then the result of r4 to l2.m2.</div><div class='add'>+ * On the VM stack, this looks like:</div><div class='add'>+ *</div><div class='add'>+ *     self                               # putself</div><div class='add'>+ *     l1                                 # send</div><div class='add'>+ *     l1, self                           # putself</div><div class='add'>+ *     l1, l2                             # send</div><div class='add'>+ *     l1, l2, 0                          # putobject 0</div><div class='add'>+ *     l1, l2, 0, [r3, r4]                # after evaluation of RHS</div><div class='add'>+ *     l1, l2, 0, [r3, r4], r4, r3        # expandarray</div><div class='add'>+ *     l1, l2, 0, [r3, r4], r4, r3, l1    # topn 5</div><div class='add'>+ *     l1, l2, 0, [r3, r4], r4, l1, r3    # swap</div><div class='add'>+ *     l1, l2, 0, [r3, r4], r4, m1=       # send</div><div class='add'>+ *     l1, l2, 0, [r3, r4], r4            # pop</div><div class='add'>+ *     l1, l2, 0, [r3, r4], r4, l2        # topn 3</div><div class='add'>+ *     l1, l2, 0, [r3, r4], r4, l2, 0     # topn 3</div><div class='add'>+ *     l1, l2, 0, [r3, r4], r4, l2, 0, r4 # topn 2</div><div class='add'>+ *     l1, l2, 0, [r3, r4], r4, []=       # send</div><div class='add'>+ *     l1, l2, 0, [r3, r4], r4            # pop</div><div class='add'>+ *     l1, l2, 0, [r3, r4]                # pop</div><div class='add'>+ *     [r3, r4], l2, 0, [r3, r4]          # setn 3</div><div class='add'>+ *     [r3, r4], l2, 0                    # pop</div><div class='add'>+ *     [r3, r4], l2                       # pop</div><div class='add'>+ *     [r3, r4]                           # pop</div><div class='add'>+ *</div><div class='add'>+ * This is made more complex when you have to handle splats, post args,</div><div class='add'>+ * and arbitrary levels of nesting.  You need to keep track of the total</div><div class='add'>+ * number of attributes to set, and for each attribute, how many entries</div><div class='add'>+ * are on the stack before the final attribute, in order to correctly</div><div class='add'>+ * calculate the topn value to use to get the receiver of the attribute</div><div class='add'>+ * setter method.</div><div class='add'>+ *</div><div class='add'>+ * A brief description of the VM stack for simple multiple assignment</div><div class='add'>+ * with no splat (rhs_array will not be present if the return value of</div><div class='add'>+ * the multiple assignment is not needed):</div><div class='add'>+ *</div><div class='add'>+ *     lhs_attr1, lhs_attr2, ..., rhs_array, ..., rhs_arg2, rhs_arg1</div><div class='add'>+ *</div><div class='add'>+ * For multiple assignment with splats, while processing the part before</div><div class='add'>+ * the splat (splat+post here is an array of the splat and the post arguments):</div><div class='add'>+ *</div><div class='add'>+ *     lhs_attr1, lhs_attr2, ..., rhs_array, splat+post, ..., rhs_arg2, rhs_arg1</div><div class='add'>+ *</div><div class='add'>+ * When processing the splat and post arguments:</div><div class='add'>+ *</div><div class='add'>+ *     lhs_attr1, lhs_attr2, ..., rhs_array, ..., post_arg2, post_arg1, splat</div><div class='add'>+ *</div><div class='add'>+ * When processing nested multiple assignment, existing values on the stack</div><div class='add'>+ * are kept.  So for:</div><div class='add'>+ *</div><div class='add'>+ *     (l1.m1, l2.m2), l3.m3, l4* = [r1, r2], r3, r4</div><div class='add'>+ *</div><div class='add'>+ * The stack layout would be the following before processing the nested</div><div class='add'>+ * multiple assignment:</div><div class='add'>+ *</div><div class='add'>+ *     l1, l2, [[r1, r2], r3, r4], [r4], r3, [r1, r2]</div><div class='add'>+ *</div><div class='add'>+ * In order to handle this correctly, we need to keep track of the nesting</div><div class='add'>+ * level for each attribute assignment, as well as the attribute number</div><div class='add'>+ * (left hand side attributes are processed left to right) and number of</div><div class='add'>+ * arguments to pass to the setter method. struct masgn_lhs_node tracks</div><div class='add'>+ * this information.</div><div class='add'>+ *</div><div class='add'>+ * We also need to track information for the entire multiple assignment, such</div><div class='add'>+ * as the total number of arguments, and the current nesting level, to</div><div class='add'>+ * handle both nested multiple assignment as well as cases where the</div><div class='add'>+ * rhs is not needed.  We also need to keep track of all attribute</div><div class='add'>+ * assignments in this, which we do using a linked listed. struct masgn_state</div><div class='add'>+ * tracks this information.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+struct masgn_lhs_node {</div><div class='add'>+  INSN *before_insn;</div><div class='add'>+  struct masgn_lhs_node *next;</div><div class='add'>+  const NODE *line_node;</div><div class='add'>+  int argn;</div><div class='add'>+  int num_args;</div><div class='add'>+  int lhs_pos;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct masgn_state {</div><div class='add'>+    struct masgn_lhs_node *first_memo;</div><div class='add'>+    struct masgn_lhs_node *last_memo;</div><div class='add'>+    int lhs_level;</div><div class='add'>+    int num_args;</div><div class='add'>+    bool nested;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+add_masgn_lhs_node(struct masgn_state *state, int lhs_pos, const NODE *line_node, int argc, INSN *before_insn)</div><div class='add'>+{</div><div class='add'>+    if (!state) {</div><div class='add'>+        rb_bug("no masgn_state");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    struct masgn_lhs_node *memo;</div><div class='add'>+    memo = malloc(sizeof(struct masgn_lhs_node));</div><div class='add'>+    if (!memo) {</div><div class='add'>+        return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    memo-&gt;before_insn = before_insn;</div><div class='add'>+    memo-&gt;line_node = line_node;</div><div class='add'>+    memo-&gt;argn = state-&gt;num_args + 1;</div><div class='add'>+    memo-&gt;num_args = argc;</div><div class='add'>+    state-&gt;num_args += argc;</div><div class='add'>+    memo-&gt;lhs_pos = lhs_pos;</div><div class='add'>+    memo-&gt;next = NULL;</div><div class='add'>+    if (!state-&gt;first_memo) {</div><div class='add'>+        state-&gt;first_memo = memo;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        state-&gt;last_memo-&gt;next = memo;</div><div class='add'>+    }</div><div class='add'>+    state-&gt;last_memo = memo;</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int compile_massign0(rb_iseq_t *iseq, LINK_ANCHOR *const pre, LINK_ANCHOR *const rhs, LINK_ANCHOR *const lhs, LINK_ANCHOR *const post, const NODE *const node, struct masgn_state *state, int popped);</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-compile_massign_lhs(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node)</div><div class='add'>+compile_massign_lhs(rb_iseq_t *iseq, LINK_ANCHOR *const pre, LINK_ANCHOR *const rhs, LINK_ANCHOR *const lhs, LINK_ANCHOR *const post, const NODE *const node, struct masgn_state *state, int lhs_pos)</div><div class='ctx'> {</div><div class='ctx'>     switch (nd_type(node)) {</div><div class='ctx'>       case NODE_ATTRASGN: {</div><div class='del'>-	INSN *iobj;</div><div class='del'>-	struct rb_call_info *ci;</div><div class='del'>-	VALUE dupidx;</div><div class='del'>-	int line = nd_line(node);</div><div class='del'>-</div><div class='del'>-	CHECK(COMPILE_POPPED(ret, "masgn lhs (NODE_ATTRASGN)", node));</div><div class='del'>-</div><div class='del'>-	iobj = (INSN *)get_prev_insn((INSN *)LAST_ELEMENT(ret)); /* send insn */</div><div class='del'>-	ci = (struct rb_call_info *)iobj-&gt;operands[0];</div><div class='del'>-	ci-&gt;orig_argc += 1;</div><div class='del'>-	dupidx = INT2FIX(ci-&gt;orig_argc);</div><div class='del'>-</div><div class='del'>-	INSERT_BEFORE_INSN1(iobj, line, topn, dupidx);</div><div class='del'>-	if (ci-&gt;flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='del'>-	    --ci-&gt;orig_argc;</div><div class='del'>-	    INSERT_BEFORE_INSN1(iobj, line, newarray, INT2FIX(1));</div><div class='del'>-	    INSERT_BEFORE_INSN(iobj, line, concatarray);</div><div class='del'>-	}</div><div class='del'>-	ADD_INSN(ret, line, pop);	/* result */</div><div class='del'>-	break;</div><div class='add'>+        INSN *iobj;</div><div class='add'>+        const NODE *line_node = node;</div><div class='add'>+</div><div class='add'>+        CHECK(COMPILE_POPPED(pre, "masgn lhs (NODE_ATTRASGN)", node));</div><div class='add'>+</div><div class='add'>+        bool safenav_call = false;</div><div class='add'>+        LINK_ELEMENT *insn_element = LAST_ELEMENT(pre);</div><div class='add'>+        iobj = (INSN *)get_prev_insn((INSN *)insn_element); /* send insn */</div><div class='add'>+        ASSUME(iobj);</div><div class='add'>+        ELEM_REMOVE(insn_element);</div><div class='add'>+        if (!IS_INSN_ID(iobj, send)) {</div><div class='add'>+            safenav_call = true;</div><div class='add'>+            iobj = (INSN *)get_prev_insn(iobj);</div><div class='add'>+            ELEM_INSERT_NEXT(&amp;iobj-&gt;link, insn_element);</div><div class='add'>+        }</div><div class='add'>+        (pre-&gt;last = iobj-&gt;link.prev)-&gt;next = 0;</div><div class='add'>+</div><div class='add'>+        const struct rb_callinfo *ci = (struct rb_callinfo *)OPERAND_AT(iobj, 0);</div><div class='add'>+        int argc = vm_ci_argc(ci) + 1;</div><div class='add'>+        ci = ci_argc_set(iseq, ci, argc);</div><div class='add'>+        OPERAND_AT(iobj, 0) = (VALUE)ci;</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, ci);</div><div class='add'>+</div><div class='add'>+        if (argc == 1) {</div><div class='add'>+            ADD_INSN(lhs, line_node, swap);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN1(lhs, line_node, topn, INT2FIX(argc));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (!add_masgn_lhs_node(state, lhs_pos, line_node, argc, (INSN *)LAST_ELEMENT(lhs))) {</div><div class='add'>+            return COMPILE_NG;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        iobj-&gt;link.prev = lhs-&gt;last;</div><div class='add'>+        lhs-&gt;last-&gt;next = &amp;iobj-&gt;link;</div><div class='add'>+        for (lhs-&gt;last = &amp;iobj-&gt;link; lhs-&gt;last-&gt;next; lhs-&gt;last = lhs-&gt;last-&gt;next);</div><div class='add'>+        if (vm_ci_flag(ci) &amp; VM_CALL_ARGS_SPLAT) {</div><div class='add'>+            int argc = vm_ci_argc(ci);</div><div class='add'>+            ci = ci_argc_set(iseq, ci, argc - 1);</div><div class='add'>+            OPERAND_AT(iobj, 0) = (VALUE)ci;</div><div class='add'>+            RB_OBJ_WRITTEN(iseq, Qundef, iobj);</div><div class='add'>+            INSERT_BEFORE_INSN1(iobj, line_node, newarray, INT2FIX(1));</div><div class='add'>+            INSERT_BEFORE_INSN(iobj, line_node, concatarray);</div><div class='add'>+        }</div><div class='add'>+        if (!safenav_call) {</div><div class='add'>+            ADD_INSN(lhs, line_node, pop);</div><div class='add'>+            if (argc != 1) {</div><div class='add'>+                ADD_INSN(lhs, line_node, pop);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        for (int i=0; i &lt; argc; i++) {</div><div class='add'>+            ADD_INSN(post, line_node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_MASGN: {</div><div class='del'>-	DECL_ANCHOR(anchor);</div><div class='del'>-	INIT_ANCHOR(anchor);</div><div class='del'>-	CHECK(COMPILE_POPPED(anchor, "nest masgn lhs", node));</div><div class='del'>-	ELEM_REMOVE(FIRST_ELEMENT(anchor));</div><div class='del'>-	ADD_SEQ(ret, anchor);</div><div class='del'>-	break;</div><div class='add'>+        DECL_ANCHOR(nest_rhs);</div><div class='add'>+        INIT_ANCHOR(nest_rhs);</div><div class='add'>+        DECL_ANCHOR(nest_lhs);</div><div class='add'>+        INIT_ANCHOR(nest_lhs);</div><div class='add'>+</div><div class='add'>+        int prev_level = state-&gt;lhs_level;</div><div class='add'>+        bool prev_nested = state-&gt;nested;</div><div class='add'>+        state-&gt;nested = 1;</div><div class='add'>+        state-&gt;lhs_level = lhs_pos - 1;</div><div class='add'>+        CHECK(compile_massign0(iseq, pre, nest_rhs, nest_lhs, post, node, state, 1));</div><div class='add'>+        state-&gt;lhs_level = prev_level;</div><div class='add'>+        state-&gt;nested = prev_nested;</div><div class='add'>+</div><div class='add'>+        ADD_SEQ(lhs, nest_rhs);</div><div class='add'>+        ADD_SEQ(lhs, nest_lhs);</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='add'>+      case NODE_CDECL:</div><div class='add'>+        if (!node-&gt;nd_vid) {</div><div class='add'>+            /* Special handling only needed for expr::C, not for C */</div><div class='add'>+            INSN *iobj;</div><div class='add'>+</div><div class='add'>+            CHECK(COMPILE_POPPED(pre, "masgn lhs (NODE_CDECL)", node));</div><div class='add'>+</div><div class='add'>+            LINK_ELEMENT *insn_element = LAST_ELEMENT(pre);</div><div class='add'>+            iobj = (INSN *)insn_element; /* setconstant insn */</div><div class='add'>+            ELEM_REMOVE((LINK_ELEMENT *)get_prev_insn((INSN *)get_prev_insn(iobj)));</div><div class='add'>+            ELEM_REMOVE((LINK_ELEMENT *)get_prev_insn(iobj));</div><div class='add'>+            ELEM_REMOVE(insn_element);</div><div class='add'>+            pre-&gt;last = iobj-&gt;link.prev;</div><div class='add'>+            ADD_ELEM(lhs, (LINK_ELEMENT *)iobj);</div><div class='add'>+</div><div class='add'>+            if (!add_masgn_lhs_node(state, lhs_pos, node, 1, (INSN *)LAST_ELEMENT(lhs))) {</div><div class='add'>+                return COMPILE_NG;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            ADD_INSN(post, node, pop);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        /* Fallthrough */</div><div class='ctx'>       default: {</div><div class='del'>-	DECL_ANCHOR(anchor);</div><div class='del'>-	INIT_ANCHOR(anchor);</div><div class='del'>-	CHECK(COMPILE_POPPED(anchor, "masgn lhs", node));</div><div class='del'>-	ELEM_REMOVE(FIRST_ELEMENT(anchor));</div><div class='del'>-	ADD_SEQ(ret, anchor);</div><div class='add'>+        DECL_ANCHOR(anchor);</div><div class='add'>+        INIT_ANCHOR(anchor);</div><div class='add'>+        CHECK(COMPILE_POPPED(anchor, "masgn lhs", node));</div><div class='add'>+        ELEM_REMOVE(FIRST_ELEMENT(anchor));</div><div class='add'>+        ADD_SEQ(lhs, anchor);</div><div class='ctx'>       }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -4266,15 +5184,15 @@ static int</div><div class='ctx'> compile_massign_opt_lhs(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *lhsn)</div><div class='ctx'> {</div><div class='ctx'>     if (lhsn) {</div><div class='del'>-	CHECK(compile_massign_opt_lhs(iseq, ret, lhsn-&gt;nd_next));</div><div class='del'>-	CHECK(compile_massign_lhs(iseq, ret, lhsn-&gt;nd_head));</div><div class='add'>+        CHECK(compile_massign_opt_lhs(iseq, ret, lhsn-&gt;nd_next));</div><div class='add'>+        CHECK(compile_massign_lhs(iseq, ret, ret, ret, ret, lhsn-&gt;nd_head, NULL, 0));</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> compile_massign_opt(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='del'>-		    const NODE *rhsn, const NODE *orig_lhsn)</div><div class='add'>+                    const NODE *rhsn, const NODE *orig_lhsn)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mem[64];</div><div class='ctx'>     const int memsize = numberof(mem);</div><div class='hunk'>@@ -4287,174 +5205,211 @@ compile_massign_opt(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='ctx'>     int i; \</div><div class='ctx'>     if (memindex == memsize) return 0; \</div><div class='ctx'>     for (i=0; i&lt;memindex; i++) { \</div><div class='del'>-	if (mem[i] == (v)) return 0; \</div><div class='add'>+        if (mem[i] == (v)) return 0; \</div><div class='ctx'>     } \</div><div class='ctx'>     mem[memindex++] = (v); \</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-    if (rhsn == 0 || nd_type(rhsn) != NODE_ARRAY) {</div><div class='del'>-	return 0;</div><div class='add'>+    if (rhsn == 0 || !nd_type_p(rhsn, NODE_LIST)) {</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (lhsn) {</div><div class='del'>-	const NODE *ln = lhsn-&gt;nd_head;</div><div class='del'>-	switch (nd_type(ln)) {</div><div class='del'>-	  case NODE_LASGN:</div><div class='del'>-	    MEMORY(ln-&gt;nd_vid);</div><div class='del'>-	    break;</div><div class='del'>-	  case NODE_DASGN:</div><div class='del'>-	  case NODE_DASGN_CURR:</div><div class='del'>-	  case NODE_IASGN:</div><div class='del'>-	  case NODE_CVASGN:</div><div class='del'>-	    MEMORY(ln-&gt;nd_vid);</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='del'>-	lhsn = lhsn-&gt;nd_next;</div><div class='del'>-	llen++;</div><div class='add'>+        const NODE *ln = lhsn-&gt;nd_head;</div><div class='add'>+        switch (nd_type(ln)) {</div><div class='add'>+          case NODE_LASGN:</div><div class='add'>+            MEMORY(ln-&gt;nd_vid);</div><div class='add'>+            break;</div><div class='add'>+          case NODE_DASGN:</div><div class='add'>+          case NODE_IASGN:</div><div class='add'>+          case NODE_CVASGN:</div><div class='add'>+            MEMORY(ln-&gt;nd_vid);</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+        lhsn = lhsn-&gt;nd_next;</div><div class='add'>+        llen++;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (rhsn) {</div><div class='del'>-	if (llen &lt;= rlen) {</div><div class='del'>-	    COMPILE_POPPED(ret, "masgn val (popped)", rhsn-&gt;nd_head);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    COMPILE(ret, "masgn val", rhsn-&gt;nd_head);</div><div class='del'>-	}</div><div class='del'>-	rhsn = rhsn-&gt;nd_next;</div><div class='del'>-	rlen++;</div><div class='add'>+        if (llen &lt;= rlen) {</div><div class='add'>+            NO_CHECK(COMPILE_POPPED(ret, "masgn val (popped)", rhsn-&gt;nd_head));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            NO_CHECK(COMPILE(ret, "masgn val", rhsn-&gt;nd_head));</div><div class='add'>+        }</div><div class='add'>+        rhsn = rhsn-&gt;nd_next;</div><div class='add'>+        rlen++;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (llen &gt; rlen) {</div><div class='del'>-	for (i=0; i&lt;llen-rlen; i++) {</div><div class='del'>-	    ADD_INSN(ret, nd_line(orig_lhsn), putnil);</div><div class='del'>-	}</div><div class='add'>+        for (i=0; i&lt;llen-rlen; i++) {</div><div class='add'>+            ADD_INSN(ret, orig_lhsn, putnil);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     compile_massign_opt_lhs(iseq, ret, orig_lhsn);</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-adjust_stack(rb_iseq_t *iseq, LINK_ANCHOR *const ret, int line, int rlen, int llen)</div><div class='add'>+static int</div><div class='add'>+compile_massign0(rb_iseq_t *iseq, LINK_ANCHOR *const pre, LINK_ANCHOR *const rhs, LINK_ANCHOR *const lhs, LINK_ANCHOR *const post, const NODE *const node, struct masgn_state *state, int popped)</div><div class='ctx'> {</div><div class='del'>-    if (rlen &lt; llen) {</div><div class='del'>-	do {ADD_INSN(ret, line, putnil);} while (++rlen &lt; llen);</div><div class='add'>+    const NODE *rhsn = node-&gt;nd_value;</div><div class='add'>+    const NODE *splatn = node-&gt;nd_args;</div><div class='add'>+    const NODE *lhsn = node-&gt;nd_head;</div><div class='add'>+    const NODE *lhsn_count = lhsn;</div><div class='add'>+    int lhs_splat = (splatn &amp;&amp; NODE_NAMED_REST_P(splatn)) ? 1 : 0;</div><div class='add'>+</div><div class='add'>+    int llen = 0;</div><div class='add'>+    int lpos = 0;</div><div class='add'>+    int expand = 1;</div><div class='add'>+</div><div class='add'>+    while (lhsn_count) {</div><div class='add'>+        llen++;</div><div class='add'>+        lhsn_count = lhsn_count-&gt;nd_next;</div><div class='add'>+    }</div><div class='add'>+    while (lhsn) {</div><div class='add'>+        CHECK(compile_massign_lhs(iseq, pre, rhs, lhs, post, lhsn-&gt;nd_head, state, (llen - lpos) + lhs_splat + state-&gt;lhs_level));</div><div class='add'>+        lpos++;</div><div class='add'>+        lhsn = lhsn-&gt;nd_next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (lhs_splat) {</div><div class='add'>+        if (nd_type_p(splatn, NODE_POSTARG)) {</div><div class='add'>+            /*a, b, *r, p1, p2 */</div><div class='add'>+            const NODE *postn = splatn-&gt;nd_2nd;</div><div class='add'>+            const NODE *restn = splatn-&gt;nd_1st;</div><div class='add'>+            int plen = (int)postn-&gt;nd_alen;</div><div class='add'>+            int ppos = 0;</div><div class='add'>+            int flag = 0x02 | (NODE_NAMED_REST_P(restn) ? 0x01 : 0x00);</div><div class='add'>+</div><div class='add'>+            ADD_INSN2(lhs, splatn, expandarray, INT2FIX(plen), INT2FIX(flag));</div><div class='add'>+</div><div class='add'>+            if (NODE_NAMED_REST_P(restn)) {</div><div class='add'>+                CHECK(compile_massign_lhs(iseq, pre, rhs, lhs, post, restn, state, 1 + plen + state-&gt;lhs_level));</div><div class='add'>+            }</div><div class='add'>+            while (postn) {</div><div class='add'>+                CHECK(compile_massign_lhs(iseq, pre, rhs, lhs, post, postn-&gt;nd_head, state, (plen - ppos) + state-&gt;lhs_level));</div><div class='add'>+                ppos++;</div><div class='add'>+                postn = postn-&gt;nd_next;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* a, b, *r */</div><div class='add'>+            CHECK(compile_massign_lhs(iseq, pre, rhs, lhs, post, splatn, state, 1 + state-&gt;lhs_level));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+    if (!state-&gt;nested) {</div><div class='add'>+        NO_CHECK(COMPILE(rhs, "normal masgn rhs", rhsn));</div><div class='ctx'>     }</div><div class='del'>-    else if (rlen &gt; llen) {</div><div class='del'>-	do {ADD_INSN(ret, line, pop);} while (--rlen &gt; llen);</div><div class='add'>+</div><div class='add'>+    if (!popped) {</div><div class='add'>+        ADD_INSN(rhs, node, dup);</div><div class='ctx'>     }</div><div class='add'>+    if (expand) {</div><div class='add'>+        ADD_INSN2(rhs, node, expandarray, INT2FIX(llen), INT2FIX(lhs_splat));</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> compile_massign(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='ctx'> {</div><div class='del'>-    const NODE *rhsn = node-&gt;nd_value;</div><div class='del'>-    const NODE *splatn = node-&gt;nd_args;</div><div class='del'>-    const NODE *lhsn = node-&gt;nd_head;</div><div class='del'>-    int lhs_splat = (splatn &amp;&amp; NODE_NAMED_REST_P(splatn)) ? 1 : 0;</div><div class='del'>-</div><div class='del'>-    if (!popped || splatn || !compile_massign_opt(iseq, ret, rhsn, lhsn)) {</div><div class='del'>-	int llen = 0;</div><div class='del'>-	int expand = 1;</div><div class='del'>-	DECL_ANCHOR(lhsseq);</div><div class='del'>-</div><div class='del'>-	INIT_ANCHOR(lhsseq);</div><div class='del'>-</div><div class='del'>-	while (lhsn) {</div><div class='del'>-	    CHECK(compile_massign_lhs(iseq, lhsseq, lhsn-&gt;nd_head));</div><div class='del'>-	    llen += 1;</div><div class='del'>-	    lhsn = lhsn-&gt;nd_next;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	COMPILE(ret, "normal masgn rhs", rhsn);</div><div class='del'>-</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, nd_line(node), dup);</div><div class='del'>-	}</div><div class='del'>-	else if (!lhs_splat) {</div><div class='del'>-	    INSN *last = (INSN*)ret-&gt;last;</div><div class='del'>-	    if (IS_INSN(&amp;last-&gt;link) &amp;&amp;</div><div class='del'>-		IS_INSN_ID(last, newarray) &amp;&amp;</div><div class='del'>-		last-&gt;operand_size == 1) {</div><div class='del'>-		int rlen = FIX2INT(OPERAND_AT(last, 0));</div><div class='del'>-		/* special case: assign to aset or attrset */</div><div class='del'>-		if (llen == 2) {</div><div class='del'>-		    POP_ELEMENT(ret);</div><div class='del'>-		    adjust_stack(iseq, ret, nd_line(node), rlen, llen);</div><div class='del'>-		    ADD_INSN(ret, nd_line(node), swap);</div><div class='del'>-		    expand = 0;</div><div class='del'>-		}</div><div class='del'>-		else if (llen &gt; 2 &amp;&amp; llen != rlen) {</div><div class='del'>-		    POP_ELEMENT(ret);</div><div class='del'>-		    adjust_stack(iseq, ret, nd_line(node), rlen, llen);</div><div class='del'>-		    ADD_INSN1(ret, nd_line(node), reverse, INT2FIX(llen));</div><div class='del'>-		    expand = 0;</div><div class='del'>-		}</div><div class='del'>-		else if (llen &gt; 2) {</div><div class='del'>-		    last-&gt;insn_id = BIN(reverse);</div><div class='del'>-		    expand = 0;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (expand) {</div><div class='del'>-	    ADD_INSN2(ret, nd_line(node), expandarray,</div><div class='del'>-		      INT2FIX(llen), INT2FIX(lhs_splat));</div><div class='del'>-	}</div><div class='del'>-	ADD_SEQ(ret, lhsseq);</div><div class='del'>-</div><div class='del'>-	if (lhs_splat) {</div><div class='del'>-	    if (nd_type(splatn) == NODE_POSTARG) {</div><div class='del'>-		/*a, b, *r, p1, p2 */</div><div class='del'>-		const NODE *postn = splatn-&gt;nd_2nd;</div><div class='del'>-		const NODE *restn = splatn-&gt;nd_1st;</div><div class='del'>-		int num = (int)postn-&gt;nd_alen;</div><div class='del'>-		int flag = 0x02 | (NODE_NAMED_REST_P(restn) ? 0x01 : 0x00);</div><div class='del'>-</div><div class='del'>-		ADD_INSN2(ret, nd_line(splatn), expandarray,</div><div class='del'>-			  INT2FIX(num), INT2FIX(flag));</div><div class='del'>-</div><div class='del'>-		if (NODE_NAMED_REST_P(restn)) {</div><div class='del'>-		    CHECK(compile_massign_lhs(iseq, ret, restn));</div><div class='del'>-		}</div><div class='del'>-		while (postn) {</div><div class='del'>-		    CHECK(compile_massign_lhs(iseq, ret, postn-&gt;nd_head));</div><div class='del'>-		    postn = postn-&gt;nd_next;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		/* a, b, *r */</div><div class='del'>-		CHECK(compile_massign_lhs(iseq, ret, splatn));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+    if (!popped || node-&gt;nd_args || !compile_massign_opt(iseq, ret, node-&gt;nd_value, node-&gt;nd_head)) {</div><div class='add'>+        struct masgn_state state;</div><div class='add'>+        state.lhs_level = popped ? 0 : 1;</div><div class='add'>+        state.nested = 0;</div><div class='add'>+        state.num_args = 0;</div><div class='add'>+        state.first_memo = NULL;</div><div class='add'>+        state.last_memo = NULL;</div><div class='add'>+</div><div class='add'>+        DECL_ANCHOR(pre);</div><div class='add'>+        INIT_ANCHOR(pre);</div><div class='add'>+        DECL_ANCHOR(rhs);</div><div class='add'>+        INIT_ANCHOR(rhs);</div><div class='add'>+        DECL_ANCHOR(lhs);</div><div class='add'>+        INIT_ANCHOR(lhs);</div><div class='add'>+        DECL_ANCHOR(post);</div><div class='add'>+        INIT_ANCHOR(post);</div><div class='add'>+        int ok = compile_massign0(iseq, pre, rhs, lhs, post, node, &amp;state, popped);</div><div class='add'>+</div><div class='add'>+        struct masgn_lhs_node *memo = state.first_memo, *tmp_memo;</div><div class='add'>+        while (memo) {</div><div class='add'>+            VALUE topn_arg = INT2FIX((state.num_args - memo-&gt;argn) + memo-&gt;lhs_pos);</div><div class='add'>+            for (int i = 0; i &lt; memo-&gt;num_args; i++) {</div><div class='add'>+                INSERT_BEFORE_INSN1(memo-&gt;before_insn, memo-&gt;line_node, topn, topn_arg);</div><div class='add'>+            }</div><div class='add'>+            tmp_memo = memo-&gt;next;</div><div class='add'>+            free(memo);</div><div class='add'>+            memo = tmp_memo;</div><div class='add'>+        }</div><div class='add'>+        CHECK(ok);</div><div class='add'>+</div><div class='add'>+        ADD_SEQ(ret, pre);</div><div class='add'>+        ADD_SEQ(ret, rhs);</div><div class='add'>+        ADD_SEQ(ret, lhs);</div><div class='add'>+        if (!popped &amp;&amp; state.num_args &gt;= 1) {</div><div class='add'>+            /* make sure rhs array is returned before popping */</div><div class='add'>+            ADD_INSN1(ret, node, setn, INT2FIX(state.num_args));</div><div class='add'>+        }</div><div class='add'>+        ADD_SEQ(ret, post);</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+collect_const_segments(rb_iseq_t *iseq, const NODE *node)</div><div class='add'>+{</div><div class='add'>+    VALUE arr = rb_ary_new();</div><div class='add'>+    for (;;) {</div><div class='add'>+        switch (nd_type(node)) {</div><div class='add'>+          case NODE_CONST:</div><div class='add'>+            rb_ary_unshift(arr, ID2SYM(node-&gt;nd_vid));</div><div class='add'>+            return arr;</div><div class='add'>+          case NODE_COLON3:</div><div class='add'>+            rb_ary_unshift(arr, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+            rb_ary_unshift(arr, ID2SYM(idNULL));</div><div class='add'>+            return arr;</div><div class='add'>+          case NODE_COLON2:</div><div class='add'>+            rb_ary_unshift(arr, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+            node = node-&gt;nd_head;</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            return Qfalse;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> compile_const_prefix(rb_iseq_t *iseq, const NODE *const node,</div><div class='del'>-		     LINK_ANCHOR *const pref, LINK_ANCHOR *const body)</div><div class='add'>+                     LINK_ANCHOR *const pref, LINK_ANCHOR *const body)</div><div class='ctx'> {</div><div class='ctx'>     switch (nd_type(node)) {</div><div class='ctx'>       case NODE_CONST:</div><div class='del'>-	debugi("compile_const_prefix - colon", node-&gt;nd_vid);</div><div class='del'>-	ADD_INSN1(body, nd_line(node), getconstant, ID2SYM(node-&gt;nd_vid));</div><div class='del'>-	break;</div><div class='add'>+        debugi("compile_const_prefix - colon", node-&gt;nd_vid);</div><div class='add'>+        ADD_INSN1(body, node, putobject, Qtrue);</div><div class='add'>+        ADD_INSN1(body, node, getconstant, ID2SYM(node-&gt;nd_vid));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_COLON3:</div><div class='del'>-	debugi("compile_const_prefix - colon3", node-&gt;nd_mid);</div><div class='del'>-	ADD_INSN(body, nd_line(node), pop);</div><div class='del'>-	ADD_INSN1(body, nd_line(node), putobject, rb_cObject);</div><div class='del'>-	ADD_INSN1(body, nd_line(node), getconstant, ID2SYM(node-&gt;nd_mid));</div><div class='del'>-	break;</div><div class='add'>+        debugi("compile_const_prefix - colon3", node-&gt;nd_mid);</div><div class='add'>+        ADD_INSN(body, node, pop);</div><div class='add'>+        ADD_INSN1(body, node, putobject, rb_cObject);</div><div class='add'>+        ADD_INSN1(body, node, putobject, Qtrue);</div><div class='add'>+        ADD_INSN1(body, node, getconstant, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_COLON2:</div><div class='del'>-	CHECK(compile_const_prefix(iseq, node-&gt;nd_head, pref, body));</div><div class='del'>-	debugi("compile_const_prefix - colon2", node-&gt;nd_mid);</div><div class='del'>-	ADD_INSN1(body, nd_line(node), getconstant, ID2SYM(node-&gt;nd_mid));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_const_prefix(iseq, node-&gt;nd_head, pref, body));</div><div class='add'>+        debugi("compile_const_prefix - colon2", node-&gt;nd_mid);</div><div class='add'>+        ADD_INSN1(body, node, putobject, Qfalse);</div><div class='add'>+        ADD_INSN1(body, node, getconstant, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	CHECK(COMPILE(pref, "const colon2 prefix", node));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(COMPILE(pref, "const colon2 prefix", node));</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -4462,174 +5417,219 @@ compile_const_prefix(rb_iseq_t *iseq, const NODE *const node,</div><div class='ctx'> static int</div><div class='ctx'> compile_cpath(LINK_ANCHOR *const ret, rb_iseq_t *iseq, const NODE *cpath)</div><div class='ctx'> {</div><div class='del'>-    if (nd_type(cpath) == NODE_COLON3) {</div><div class='del'>-	/* toplevel class ::Foo */</div><div class='del'>-	ADD_INSN1(ret, nd_line(cpath), putobject, rb_cObject);</div><div class='del'>-	return VM_DEFINECLASS_FLAG_SCOPED;</div><div class='add'>+    if (nd_type_p(cpath, NODE_COLON3)) {</div><div class='add'>+        /* toplevel class ::Foo */</div><div class='add'>+        ADD_INSN1(ret, cpath, putobject, rb_cObject);</div><div class='add'>+        return VM_DEFINECLASS_FLAG_SCOPED;</div><div class='ctx'>     }</div><div class='ctx'>     else if (cpath-&gt;nd_head) {</div><div class='del'>-	/* Bar::Foo */</div><div class='del'>-	COMPILE(ret, "nd_else-&gt;nd_head", cpath-&gt;nd_head);</div><div class='del'>-	return VM_DEFINECLASS_FLAG_SCOPED;</div><div class='add'>+        /* Bar::Foo */</div><div class='add'>+        NO_CHECK(COMPILE(ret, "nd_else-&gt;nd_head", cpath-&gt;nd_head));</div><div class='add'>+        return VM_DEFINECLASS_FLAG_SCOPED;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	/* class at cbase Foo */</div><div class='del'>-	ADD_INSN1(ret, nd_line(cpath), putspecialobject,</div><div class='del'>-		  INT2FIX(VM_SPECIAL_OBJECT_CONST_BASE));</div><div class='del'>-	return 0;</div><div class='add'>+        /* class at cbase Foo */</div><div class='add'>+        ADD_INSN1(ret, cpath, putspecialobject,</div><div class='add'>+                  INT2FIX(VM_SPECIAL_OBJECT_CONST_BASE));</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define private_recv_p(node) (nd_type((node)-&gt;nd_recv) == NODE_SELF)</div><div class='del'>-static int</div><div class='add'>+static inline int</div><div class='add'>+private_recv_p(const NODE *node)</div><div class='add'>+{</div><div class='add'>+    if (nd_type_p(node-&gt;nd_recv, NODE_SELF)) {</div><div class='add'>+        NODE *self = node-&gt;nd_recv;</div><div class='add'>+        return self-&gt;nd_state != 0;</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='ctx'> defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='del'>-	     const NODE *const node, LABEL **lfinish, VALUE needstr);</div><div class='add'>+             const NODE *const node, LABEL **lfinish, VALUE needstr);</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='add'>+compile_call(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, const enum node_type type, const NODE *const line_node, int popped, bool assume_receiver);</div><div class='add'>+</div><div class='add'>+static void</div><div class='ctx'> defined_expr0(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='del'>-	      const NODE *const node, LABEL **lfinish, VALUE needstr)</div><div class='add'>+              const NODE *const node, LABEL **lfinish, VALUE needstr,</div><div class='add'>+              bool keep_result)</div><div class='ctx'> {</div><div class='ctx'>     enum defined_type expr_type = DEFINED_NOT_DEFINED;</div><div class='ctx'>     enum node_type type;</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'> </div><div class='ctx'>     switch (type = nd_type(node)) {</div><div class='ctx'> </div><div class='del'>-	/* easy literals */</div><div class='add'>+        /* easy literals */</div><div class='ctx'>       case NODE_NIL:</div><div class='del'>-	expr_type = DEFINED_NIL;</div><div class='del'>-	break;</div><div class='add'>+        expr_type = DEFINED_NIL;</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_SELF:</div><div class='del'>-	expr_type = DEFINED_SELF;</div><div class='del'>-	break;</div><div class='add'>+        expr_type = DEFINED_SELF;</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_TRUE:</div><div class='del'>-	expr_type = DEFINED_TRUE;</div><div class='del'>-	break;</div><div class='add'>+        expr_type = DEFINED_TRUE;</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_FALSE:</div><div class='del'>-	expr_type = DEFINED_FALSE;</div><div class='del'>-	break;</div><div class='add'>+        expr_type = DEFINED_FALSE;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='del'>-      case NODE_ARRAY:{</div><div class='del'>-	const NODE *vals = node;</div><div class='add'>+      case NODE_LIST:{</div><div class='add'>+        const NODE *vals = node;</div><div class='ctx'> </div><div class='del'>-	do {</div><div class='del'>-	    defined_expr0(iseq, ret, vals-&gt;nd_head, lfinish, Qfalse);</div><div class='add'>+        do {</div><div class='add'>+            defined_expr0(iseq, ret, vals-&gt;nd_head, lfinish, Qfalse, false);</div><div class='ctx'> </div><div class='del'>-	    if (!lfinish[1]) {</div><div class='del'>-		lfinish[1] = NEW_LABEL(nd_line(node));</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSNL(ret, nd_line(node), branchunless, lfinish[1]);</div><div class='del'>-	} while ((vals = vals-&gt;nd_next) != NULL);</div><div class='add'>+            if (!lfinish[1]) {</div><div class='add'>+                lfinish[1] = NEW_LABEL(line);</div><div class='add'>+            }</div><div class='add'>+            ADD_INSNL(ret, line_node, branchunless, lfinish[1]);</div><div class='add'>+        } while ((vals = vals-&gt;nd_next) != NULL);</div><div class='ctx'>       }</div><div class='add'>+        /* fall through */</div><div class='ctx'>       case NODE_STR:</div><div class='ctx'>       case NODE_LIT:</div><div class='del'>-      case NODE_ZARRAY:</div><div class='add'>+      case NODE_ZLIST:</div><div class='ctx'>       case NODE_AND:</div><div class='ctx'>       case NODE_OR:</div><div class='ctx'>       default:</div><div class='del'>-	expr_type = DEFINED_EXPR;</div><div class='del'>-	break;</div><div class='add'>+        expr_type = DEFINED_EXPR;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='del'>-	/* variables */</div><div class='add'>+        /* variables */</div><div class='ctx'>       case NODE_LVAR:</div><div class='ctx'>       case NODE_DVAR:</div><div class='del'>-	expr_type = DEFINED_LVAR;</div><div class='del'>-	break;</div><div class='add'>+        expr_type = DEFINED_LVAR;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='add'>+#define PUSH_VAL(type) (needstr == Qfalse ? Qtrue : rb_iseq_defined_string(type))</div><div class='ctx'>       case NODE_IVAR:</div><div class='del'>-	ADD_INSN(ret, nd_line(node), putnil);</div><div class='del'>-	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_IVAR),</div><div class='del'>-		  ID2SYM(node-&gt;nd_vid), needstr);</div><div class='del'>-	return 1;</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        ADD_INSN3(ret, line_node, defined, INT2FIX(DEFINED_IVAR),</div><div class='add'>+                  ID2SYM(node-&gt;nd_vid), PUSH_VAL(DEFINED_IVAR));</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='ctx'>       case NODE_GVAR:</div><div class='del'>-	ADD_INSN(ret, nd_line(node), putnil);</div><div class='del'>-	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_GVAR),</div><div class='del'>-		  ID2SYM(node-&gt;nd_entry-&gt;id), needstr);</div><div class='del'>-	return 1;</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        ADD_INSN3(ret, line_node, defined, INT2FIX(DEFINED_GVAR),</div><div class='add'>+                  ID2SYM(node-&gt;nd_entry), PUSH_VAL(DEFINED_GVAR));</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='ctx'>       case NODE_CVAR:</div><div class='del'>-	ADD_INSN(ret, nd_line(node), putnil);</div><div class='del'>-	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_CVAR),</div><div class='del'>-		  ID2SYM(node-&gt;nd_vid), needstr);</div><div class='del'>-	return 1;</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        ADD_INSN3(ret, line_node, defined, INT2FIX(DEFINED_CVAR),</div><div class='add'>+                  ID2SYM(node-&gt;nd_vid), PUSH_VAL(DEFINED_CVAR));</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='ctx'>       case NODE_CONST:</div><div class='del'>-	ADD_INSN(ret, nd_line(node), putnil);</div><div class='del'>-	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_CONST),</div><div class='del'>-		  ID2SYM(node-&gt;nd_vid), needstr);</div><div class='del'>-	return 1;</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        ADD_INSN3(ret, line_node, defined, INT2FIX(DEFINED_CONST),</div><div class='add'>+                  ID2SYM(node-&gt;nd_vid), PUSH_VAL(DEFINED_CONST));</div><div class='add'>+        return;</div><div class='ctx'>       case NODE_COLON2:</div><div class='del'>-	if (!lfinish[1]) {</div><div class='del'>-	    lfinish[1] = NEW_LABEL(nd_line(node));</div><div class='del'>-	}</div><div class='del'>-	defined_expr0(iseq, ret, node-&gt;nd_head, lfinish, Qfalse);</div><div class='del'>-	ADD_INSNL(ret, nd_line(node), branchunless, lfinish[1]);</div><div class='del'>-	COMPILE(ret, "defined/colon2#nd_head", node-&gt;nd_head);</div><div class='del'>-</div><div class='del'>-	ADD_INSN3(ret, nd_line(node), defined,</div><div class='del'>-		  (rb_is_const_id(node-&gt;nd_mid) ?</div><div class='del'>-		   INT2FIX(DEFINED_CONST) : INT2FIX(DEFINED_METHOD)),</div><div class='del'>-		  ID2SYM(node-&gt;nd_mid), needstr);</div><div class='del'>-	return 1;</div><div class='add'>+        if (!lfinish[1]) {</div><div class='add'>+            lfinish[1] = NEW_LABEL(line);</div><div class='add'>+        }</div><div class='add'>+        defined_expr0(iseq, ret, node-&gt;nd_head, lfinish, Qfalse, false);</div><div class='add'>+        ADD_INSNL(ret, line_node, branchunless, lfinish[1]);</div><div class='add'>+        NO_CHECK(COMPILE(ret, "defined/colon2#nd_head", node-&gt;nd_head));</div><div class='add'>+</div><div class='add'>+        if (rb_is_const_id(node-&gt;nd_mid)) {</div><div class='add'>+            ADD_INSN3(ret, line_node, defined, INT2FIX(DEFINED_CONST_FROM),</div><div class='add'>+                    ID2SYM(node-&gt;nd_mid), PUSH_VAL(DEFINED_CONST));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN3(ret, line_node, defined, INT2FIX(DEFINED_METHOD),</div><div class='add'>+                    ID2SYM(node-&gt;nd_mid), PUSH_VAL(DEFINED_METHOD));</div><div class='add'>+        }</div><div class='add'>+        return;</div><div class='ctx'>       case NODE_COLON3:</div><div class='del'>-	ADD_INSN1(ret, nd_line(node), putobject, rb_cObject);</div><div class='del'>-	ADD_INSN3(ret, nd_line(node), defined,</div><div class='del'>-		  INT2FIX(DEFINED_CONST), ID2SYM(node-&gt;nd_mid), needstr);</div><div class='del'>-	return 1;</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, rb_cObject);</div><div class='add'>+        ADD_INSN3(ret, line_node, defined,</div><div class='add'>+                  INT2FIX(DEFINED_CONST_FROM), ID2SYM(node-&gt;nd_mid), PUSH_VAL(DEFINED_CONST));</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='del'>-	/* method dispatch */</div><div class='add'>+        /* method dispatch */</div><div class='ctx'>       case NODE_CALL:</div><div class='ctx'>       case NODE_OPCALL:</div><div class='ctx'>       case NODE_VCALL:</div><div class='ctx'>       case NODE_FCALL:</div><div class='ctx'>       case NODE_ATTRASGN:{</div><div class='del'>-	const int explicit_receiver =</div><div class='del'>-	    (type == NODE_CALL || type == NODE_OPCALL ||</div><div class='del'>-	     (type == NODE_ATTRASGN &amp;&amp; !private_recv_p(node)));</div><div class='del'>-</div><div class='del'>-	if (!lfinish[1] &amp;&amp; (node-&gt;nd_args || explicit_receiver)) {</div><div class='del'>-	    lfinish[1] = NEW_LABEL(nd_line(node));</div><div class='del'>-	}</div><div class='del'>-	if (node-&gt;nd_args) {</div><div class='del'>-	    defined_expr0(iseq, ret, node-&gt;nd_args, lfinish, Qfalse);</div><div class='del'>-	    ADD_INSNL(ret, nd_line(node), branchunless, lfinish[1]);</div><div class='del'>-	}</div><div class='del'>-	if (explicit_receiver) {</div><div class='del'>-	    defined_expr0(iseq, ret, node-&gt;nd_recv, lfinish, Qfalse);</div><div class='del'>-	    ADD_INSNL(ret, nd_line(node), branchunless, lfinish[1]);</div><div class='del'>-	    COMPILE(ret, "defined/recv", node-&gt;nd_recv);</div><div class='del'>-	    ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_METHOD),</div><div class='del'>-		      ID2SYM(node-&gt;nd_mid), needstr);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ADD_INSN(ret, nd_line(node), putself);</div><div class='del'>-	    ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_FUNC),</div><div class='del'>-		      ID2SYM(node-&gt;nd_mid), needstr);</div><div class='del'>-	}</div><div class='del'>-	return 1;</div><div class='add'>+        const int explicit_receiver =</div><div class='add'>+            (type == NODE_CALL || type == NODE_OPCALL ||</div><div class='add'>+             (type == NODE_ATTRASGN &amp;&amp; !private_recv_p(node)));</div><div class='add'>+</div><div class='add'>+        if (node-&gt;nd_args || explicit_receiver) {</div><div class='add'>+            if (!lfinish[1]) {</div><div class='add'>+                lfinish[1] = NEW_LABEL(line);</div><div class='add'>+            }</div><div class='add'>+            if (!lfinish[2]) {</div><div class='add'>+                lfinish[2] = NEW_LABEL(line);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (node-&gt;nd_args) {</div><div class='add'>+            defined_expr0(iseq, ret, node-&gt;nd_args, lfinish, Qfalse, false);</div><div class='add'>+            ADD_INSNL(ret, line_node, branchunless, lfinish[1]);</div><div class='add'>+        }</div><div class='add'>+        if (explicit_receiver) {</div><div class='add'>+            defined_expr0(iseq, ret, node-&gt;nd_recv, lfinish, Qfalse, true);</div><div class='add'>+            switch (nd_type(node-&gt;nd_recv)) {</div><div class='add'>+              case NODE_CALL:</div><div class='add'>+              case NODE_OPCALL:</div><div class='add'>+              case NODE_VCALL:</div><div class='add'>+              case NODE_FCALL:</div><div class='add'>+              case NODE_ATTRASGN:</div><div class='add'>+                ADD_INSNL(ret, line_node, branchunless, lfinish[2]);</div><div class='add'>+                compile_call(iseq, ret, node-&gt;nd_recv, nd_type(node-&gt;nd_recv), line_node, 0, true);</div><div class='add'>+                break;</div><div class='add'>+              default:</div><div class='add'>+                ADD_INSNL(ret, line_node, branchunless, lfinish[1]);</div><div class='add'>+                NO_CHECK(COMPILE(ret, "defined/recv", node-&gt;nd_recv));</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            if (keep_result) {</div><div class='add'>+                ADD_INSN(ret, line_node, dup);</div><div class='add'>+            }</div><div class='add'>+            ADD_INSN3(ret, line_node, defined, INT2FIX(DEFINED_METHOD),</div><div class='add'>+                      ID2SYM(node-&gt;nd_mid), PUSH_VAL(DEFINED_METHOD));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN(ret, line_node, putself);</div><div class='add'>+            if (keep_result) {</div><div class='add'>+                ADD_INSN(ret, line_node, dup);</div><div class='add'>+            }</div><div class='add'>+            ADD_INSN3(ret, line_node, defined, INT2FIX(DEFINED_FUNC),</div><div class='add'>+                      ID2SYM(node-&gt;nd_mid), PUSH_VAL(DEFINED_METHOD));</div><div class='add'>+        }</div><div class='add'>+        return;</div><div class='ctx'>       }</div><div class='ctx'> </div><div class='ctx'>       case NODE_YIELD:</div><div class='del'>-	ADD_INSN(ret, nd_line(node), putnil);</div><div class='del'>-	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_YIELD), 0,</div><div class='del'>-		  needstr);</div><div class='del'>-	return 1;</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        ADD_INSN3(ret, line_node, defined, INT2FIX(DEFINED_YIELD), 0,</div><div class='add'>+                  PUSH_VAL(DEFINED_YIELD));</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='ctx'>       case NODE_BACK_REF:</div><div class='ctx'>       case NODE_NTH_REF:</div><div class='del'>-	ADD_INSN(ret, nd_line(node), putnil);</div><div class='del'>-	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_REF),</div><div class='del'>-		  INT2FIX((node-&gt;nd_nth &lt;&lt; 1) | (type == NODE_BACK_REF)),</div><div class='del'>-		  needstr);</div><div class='del'>-	return 1;</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        ADD_INSN3(ret, line_node, defined, INT2FIX(DEFINED_REF),</div><div class='add'>+                  INT2FIX((node-&gt;nd_nth &lt;&lt; 1) | (type == NODE_BACK_REF)),</div><div class='add'>+                  PUSH_VAL(DEFINED_GVAR));</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='ctx'>       case NODE_SUPER:</div><div class='ctx'>       case NODE_ZSUPER:</div><div class='del'>-	ADD_INSN(ret, nd_line(node), putnil);</div><div class='del'>-	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_ZSUPER), 0,</div><div class='del'>-		  needstr);</div><div class='del'>-	return 1;</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        ADD_INSN3(ret, line_node, defined, INT2FIX(DEFINED_ZSUPER), 0,</div><div class='add'>+                  PUSH_VAL(DEFINED_ZSUPER));</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='add'>+#undef PUSH_VAL</div><div class='ctx'>       case NODE_OP_ASGN1:</div><div class='ctx'>       case NODE_OP_ASGN2:</div><div class='ctx'>       case NODE_OP_ASGN_OR:</div><div class='hunk'>@@ -4637,81 +5637,84 @@ defined_expr0(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='ctx'>       case NODE_MASGN:</div><div class='ctx'>       case NODE_LASGN:</div><div class='ctx'>       case NODE_DASGN:</div><div class='del'>-      case NODE_DASGN_CURR:</div><div class='ctx'>       case NODE_GASGN:</div><div class='ctx'>       case NODE_IASGN:</div><div class='ctx'>       case NODE_CDECL:</div><div class='ctx'>       case NODE_CVASGN:</div><div class='del'>-	expr_type = DEFINED_ASGN;</div><div class='del'>-	break;</div><div class='add'>+        expr_type = DEFINED_ASGN;</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (expr_type) {</div><div class='del'>-	if (needstr != Qfalse) {</div><div class='del'>-	    VALUE str = rb_iseq_defined_string(expr_type);</div><div class='del'>-	    ADD_INSN1(ret, nd_line(node), putobject, str);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ADD_INSN1(ret, nd_line(node), putobject, Qtrue);</div><div class='del'>-	}</div><div class='del'>-	return 1;</div><div class='add'>+    assert(expr_type != DEFINED_NOT_DEFINED);</div><div class='add'>+</div><div class='add'>+    if (needstr != Qfalse) {</div><div class='add'>+        VALUE str = rb_iseq_defined_string(expr_type);</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, str);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, Qtrue);</div><div class='ctx'>     }</div><div class='del'>-    return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-build_defined_rescue_iseq(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *unused)</div><div class='add'>+static void</div><div class='add'>+build_defined_rescue_iseq(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const void *unused)</div><div class='ctx'> {</div><div class='del'>-    ADD_INSN(ret, 0, putnil);</div><div class='add'>+    NODE dummy_line_node = generate_dummy_line_node(0, -1);</div><div class='add'>+    ADD_INSN(ret, &amp;dummy_line_node, putnil);</div><div class='ctx'>     iseq_set_exception_local_table(iseq);</div><div class='del'>-    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='add'>+static void</div><div class='ctx'> defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *const ret,</div><div class='del'>-	     const NODE *const node, LABEL **lfinish, VALUE needstr)</div><div class='add'>+             const NODE *const node, LABEL **lfinish, VALUE needstr)</div><div class='ctx'> {</div><div class='ctx'>     LINK_ELEMENT *lcur = ret-&gt;last;</div><div class='del'>-    int done = defined_expr0(iseq, ret, node, lfinish, needstr);</div><div class='add'>+    defined_expr0(iseq, ret, node, lfinish, needstr, false);</div><div class='ctx'>     if (lfinish[1]) {</div><div class='del'>-	int line = nd_line(node);</div><div class='del'>-	LABEL *lstart = NEW_LABEL(line);</div><div class='del'>-	LABEL *lend = NEW_LABEL(line);</div><div class='del'>-	const rb_iseq_t *rescue;</div><div class='del'>-	rescue = new_child_iseq_ifunc(iseq, IFUNC_NEW(build_defined_rescue_iseq, 0, 0),</div><div class='del'>-				      rb_str_concat(rb_str_new2("defined guard in "),</div><div class='del'>-						    iseq-&gt;body-&gt;location.label),</div><div class='del'>-				      iseq, ISEQ_TYPE_RESCUE, 0);</div><div class='del'>-	lstart-&gt;rescued = LABEL_RESCUE_BEG;</div><div class='del'>-	lend-&gt;rescued = LABEL_RESCUE_END;</div><div class='del'>-	APPEND_LABEL(ret, lcur, lstart);</div><div class='del'>-	ADD_LABEL(ret, lend);</div><div class='del'>-	ADD_CATCH_ENTRY(CATCH_TYPE_RESCUE, lstart, lend, rescue, lfinish[1]);</div><div class='del'>-    }</div><div class='del'>-    return done;</div><div class='add'>+        int line = nd_line(node);</div><div class='add'>+        LABEL *lstart = NEW_LABEL(line);</div><div class='add'>+        LABEL *lend = NEW_LABEL(line);</div><div class='add'>+        const rb_iseq_t *rescue;</div><div class='add'>+        struct rb_iseq_new_with_callback_callback_func *ifunc =</div><div class='add'>+            rb_iseq_new_with_callback_new_callback(build_defined_rescue_iseq, NULL);</div><div class='add'>+        rescue = new_child_iseq_with_callback(iseq, ifunc,</div><div class='add'>+                                              rb_str_concat(rb_str_new2("defined guard in "),</div><div class='add'>+                                                            ISEQ_BODY(iseq)-&gt;location.label),</div><div class='add'>+                                              iseq, ISEQ_TYPE_RESCUE, 0);</div><div class='add'>+        lstart-&gt;rescued = LABEL_RESCUE_BEG;</div><div class='add'>+        lend-&gt;rescued = LABEL_RESCUE_END;</div><div class='add'>+        APPEND_LABEL(ret, lcur, lstart);</div><div class='add'>+        ADD_LABEL(ret, lend);</div><div class='add'>+        ADD_CATCH_ENTRY(CATCH_TYPE_RESCUE, lstart, lend, rescue, lfinish[1]);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> compile_defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, VALUE needstr)</div><div class='ctx'> {</div><div class='ctx'>     const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'>     if (!node-&gt;nd_head) {</div><div class='del'>-	VALUE str = rb_iseq_defined_string(DEFINED_NIL);</div><div class='del'>-	ADD_INSN1(ret, line, putobject, str);</div><div class='add'>+        VALUE str = rb_iseq_defined_string(DEFINED_NIL);</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, str);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	LABEL *lfinish[2];</div><div class='del'>-	LINK_ELEMENT *last = ret-&gt;last;</div><div class='del'>-	lfinish[0] = NEW_LABEL(line);</div><div class='del'>-	lfinish[1] = 0;</div><div class='del'>-	defined_expr(iseq, ret, node-&gt;nd_head, lfinish, needstr);</div><div class='del'>-	if (lfinish[1]) {</div><div class='del'>-	    ELEM_INSERT_NEXT(last, &amp;new_insn_body(iseq, line, BIN(putnil), 0)-&gt;link);</div><div class='del'>-	    ADD_INSN(ret, line, swap);</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	    ADD_LABEL(ret, lfinish[1]);</div><div class='del'>-	}</div><div class='del'>-	ADD_LABEL(ret, lfinish[0]);</div><div class='add'>+        LABEL *lfinish[3];</div><div class='add'>+        LINK_ELEMENT *last = ret-&gt;last;</div><div class='add'>+        lfinish[0] = NEW_LABEL(line);</div><div class='add'>+        lfinish[1] = 0;</div><div class='add'>+        lfinish[2] = 0;</div><div class='add'>+        defined_expr(iseq, ret, node-&gt;nd_head, lfinish, needstr);</div><div class='add'>+        if (lfinish[1]) {</div><div class='add'>+            ELEM_INSERT_NEXT(last, &amp;new_insn_body(iseq, line_node, BIN(putnil), 0)-&gt;link);</div><div class='add'>+            ADD_INSN(ret, line_node, swap);</div><div class='add'>+            if (lfinish[2]) {</div><div class='add'>+                ADD_LABEL(ret, lfinish[2]);</div><div class='add'>+            }</div><div class='add'>+            ADD_INSN(ret, line_node, pop);</div><div class='add'>+            ADD_LABEL(ret, lfinish[1]);</div><div class='add'>+        }</div><div class='add'>+        ADD_LABEL(ret, lfinish[0]);</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -4722,27 +5725,27 @@ make_name_for_block(const rb_iseq_t *orig_iseq)</div><div class='ctx'>     int level = 1;</div><div class='ctx'>     const rb_iseq_t *iseq = orig_iseq;</div><div class='ctx'> </div><div class='del'>-    if (orig_iseq-&gt;body-&gt;parent_iseq != 0) {</div><div class='del'>-	while (orig_iseq-&gt;body-&gt;local_iseq != iseq) {</div><div class='del'>-	    if (iseq-&gt;body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='del'>-		level++;</div><div class='del'>-	    }</div><div class='del'>-	    iseq = iseq-&gt;body-&gt;parent_iseq;</div><div class='del'>-	}</div><div class='add'>+    if (ISEQ_BODY(orig_iseq)-&gt;parent_iseq != 0) {</div><div class='add'>+        while (ISEQ_BODY(orig_iseq)-&gt;local_iseq != iseq) {</div><div class='add'>+            if (ISEQ_BODY(iseq)-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+                level++;</div><div class='add'>+            }</div><div class='add'>+            iseq = ISEQ_BODY(iseq)-&gt;parent_iseq;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (level == 1) {</div><div class='del'>-	return rb_sprintf("block in %"PRIsVALUE, iseq-&gt;body-&gt;location.label);</div><div class='add'>+        return rb_sprintf("block in %"PRIsVALUE, ISEQ_BODY(iseq)-&gt;location.label);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_sprintf("block (%d levels) in %"PRIsVALUE, level, iseq-&gt;body-&gt;location.label);</div><div class='add'>+        return rb_sprintf("block (%d levels) in %"PRIsVALUE, level, ISEQ_BODY(iseq)-&gt;location.label);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> push_ensure_entry(rb_iseq_t *iseq,</div><div class='del'>-		  struct iseq_compile_data_ensure_node_stack *enl,</div><div class='del'>-		  struct ensure_range *er, const NODE *const node)</div><div class='add'>+                  struct iseq_compile_data_ensure_node_stack *enl,</div><div class='add'>+                  struct ensure_range *er, const NODE *const node)</div><div class='ctx'> {</div><div class='ctx'>     enl-&gt;ensure_node = node;</div><div class='ctx'>     enl-&gt;prev = ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack;	/* prev */</div><div class='hunk'>@@ -4752,13 +5755,13 @@ push_ensure_entry(rb_iseq_t *iseq,</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> add_ensure_range(rb_iseq_t *iseq, struct ensure_range *erange,</div><div class='del'>-		 LABEL *lstart, LABEL *lend)</div><div class='add'>+                 LABEL *lstart, LABEL *lend)</div><div class='ctx'> {</div><div class='ctx'>     struct ensure_range *ne =</div><div class='del'>-	compile_data_alloc(iseq, sizeof(struct ensure_range));</div><div class='add'>+        compile_data_alloc(iseq, sizeof(struct ensure_range));</div><div class='ctx'> </div><div class='ctx'>     while (erange-&gt;next != 0) {</div><div class='del'>-	erange = erange-&gt;next;</div><div class='add'>+        erange = erange-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'>     ne-&gt;next = 0;</div><div class='ctx'>     ne-&gt;begin = lend;</div><div class='hunk'>@@ -4768,149 +5771,175 @@ add_ensure_range(rb_iseq_t *iseq, struct ensure_range *erange,</div><div class='ctx'>     erange-&gt;next = ne;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static bool</div><div class='add'>+can_add_ensure_iseq(const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    struct iseq_compile_data_ensure_node_stack *e;</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;in_rescue &amp;&amp; (e = ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack) != NULL) {</div><div class='add'>+        while (e) {</div><div class='add'>+            if (e-&gt;ensure_node) return false;</div><div class='add'>+            e = e-&gt;prev;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> add_ensure_iseq(LINK_ANCHOR *const ret, rb_iseq_t *iseq, int is_return)</div><div class='ctx'> {</div><div class='add'>+    assert(can_add_ensure_iseq(iseq));</div><div class='add'>+</div><div class='ctx'>     struct iseq_compile_data_ensure_node_stack *enlp =</div><div class='del'>-	ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack;</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack;</div><div class='ctx'>     struct iseq_compile_data_ensure_node_stack *prev_enlp = enlp;</div><div class='ctx'>     DECL_ANCHOR(ensure);</div><div class='ctx'> </div><div class='ctx'>     INIT_ANCHOR(ensure);</div><div class='ctx'>     while (enlp) {</div><div class='del'>-	if (enlp-&gt;erange != NULL) {</div><div class='del'>-	    DECL_ANCHOR(ensure_part);</div><div class='del'>-	    LABEL *lstart = NEW_LABEL(0);</div><div class='del'>-	    LABEL *lend = NEW_LABEL(0);</div><div class='del'>-	    INIT_ANCHOR(ensure_part);</div><div class='del'>-</div><div class='del'>-	    add_ensure_range(iseq, enlp-&gt;erange, lstart, lend);</div><div class='del'>-</div><div class='del'>-	    ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack = enlp-&gt;prev;</div><div class='del'>-	    ADD_LABEL(ensure_part, lstart);</div><div class='del'>-	    COMPILE_POPPED(ensure_part, "ensure part", enlp-&gt;ensure_node);</div><div class='del'>-	    ADD_LABEL(ensure_part, lend);</div><div class='del'>-	    ADD_SEQ(ensure, ensure_part);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (!is_return) {</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	enlp = enlp-&gt;prev;</div><div class='add'>+        if (enlp-&gt;erange != NULL) {</div><div class='add'>+            DECL_ANCHOR(ensure_part);</div><div class='add'>+            LABEL *lstart = NEW_LABEL(0);</div><div class='add'>+            LABEL *lend = NEW_LABEL(0);</div><div class='add'>+            INIT_ANCHOR(ensure_part);</div><div class='add'>+</div><div class='add'>+            add_ensure_range(iseq, enlp-&gt;erange, lstart, lend);</div><div class='add'>+</div><div class='add'>+            ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack = enlp-&gt;prev;</div><div class='add'>+            ADD_LABEL(ensure_part, lstart);</div><div class='add'>+            NO_CHECK(COMPILE_POPPED(ensure_part, "ensure part", enlp-&gt;ensure_node));</div><div class='add'>+            ADD_LABEL(ensure_part, lend);</div><div class='add'>+            ADD_SEQ(ensure, ensure_part);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (!is_return) {</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        enlp = enlp-&gt;prev;</div><div class='ctx'>     }</div><div class='ctx'>     ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack = prev_enlp;</div><div class='ctx'>     ADD_SEQ(ret, ensure);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-setup_args(rb_iseq_t *iseq, LINK_ANCHOR *const args, const NODE *argn,</div><div class='del'>-	   unsigned int *flag, struct rb_call_info_kw_arg **keywords)</div><div class='add'>+static int</div><div class='add'>+check_keyword(const NODE *node)</div><div class='ctx'> {</div><div class='del'>-    VALUE argc = INT2FIX(0);</div><div class='del'>-    int nsplat = 0;</div><div class='del'>-    DECL_ANCHOR(arg_block);</div><div class='del'>-    DECL_ANCHOR(args_splat);</div><div class='add'>+    /* This check is essentially a code clone of compile_keyword_arg. */</div><div class='ctx'> </div><div class='del'>-    INIT_ANCHOR(arg_block);</div><div class='del'>-    INIT_ANCHOR(args_splat);</div><div class='del'>-    if (argn &amp;&amp; nd_type(argn) == NODE_BLOCK_PASS) {</div><div class='del'>-	COMPILE(arg_block, "block", argn-&gt;nd_body);</div><div class='del'>-	*flag |= VM_CALL_ARGS_BLOCKARG;</div><div class='del'>-	argn = argn-&gt;nd_head;</div><div class='add'>+    if (nd_type_p(node, NODE_LIST)) {</div><div class='add'>+        while (node-&gt;nd_next) {</div><div class='add'>+            node = node-&gt;nd_next;</div><div class='add'>+        }</div><div class='add'>+        node = node-&gt;nd_head;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-  setup_argn:</div><div class='add'>+    return keyword_node_p(node);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+setup_args_core(rb_iseq_t *iseq, LINK_ANCHOR *const args, const NODE *argn,</div><div class='add'>+                int dup_rest, unsigned int *flag, struct rb_callinfo_kwarg **keywords)</div><div class='add'>+{</div><div class='ctx'>     if (argn) {</div><div class='del'>-	switch (nd_type(argn)) {</div><div class='del'>-	  case NODE_SPLAT: {</div><div class='del'>-	    COMPILE(args, "args (splat)", argn-&gt;nd_head);</div><div class='del'>-	    ADD_INSN1(args, nd_line(argn), splatarray, nsplat ? Qtrue : Qfalse);</div><div class='del'>-	    argc = INT2FIX(1);</div><div class='del'>-	    nsplat++;</div><div class='del'>-	    *flag |= VM_CALL_ARGS_SPLAT;</div><div class='del'>-	    break;</div><div class='del'>-	  }</div><div class='del'>-	  case NODE_ARGSCAT:</div><div class='del'>-	  case NODE_ARGSPUSH: {</div><div class='del'>-	    int next_is_array = (nd_type(argn-&gt;nd_head) == NODE_ARRAY);</div><div class='del'>-	    DECL_ANCHOR(tmp);</div><div class='del'>-</div><div class='del'>-	    INIT_ANCHOR(tmp);</div><div class='del'>-	    COMPILE(tmp, "args (cat: splat)", argn-&gt;nd_body);</div><div class='del'>-	    if (nd_type(argn) == NODE_ARGSCAT) {</div><div class='del'>-		ADD_INSN1(tmp, nd_line(argn), splatarray, nsplat ? Qtrue : Qfalse);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		ADD_INSN1(tmp, nd_line(argn), newarray, INT2FIX(1));</div><div class='del'>-	    }</div><div class='del'>-	    INSERT_LIST(args_splat, tmp);</div><div class='del'>-	    nsplat++;</div><div class='del'>-	    *flag |= VM_CALL_ARGS_SPLAT;</div><div class='del'>-	    if (nd_type(argn-&gt;nd_body) == NODE_HASH)</div><div class='del'>-		*flag |= VM_CALL_KW_SPLAT;</div><div class='del'>-</div><div class='del'>-	    if (next_is_array) {</div><div class='del'>-		int len = compile_array(iseq, args, argn-&gt;nd_head, COMPILE_ARRAY_TYPE_ARGS, NULL, flag, FALSE);</div><div class='del'>-		if (len &lt; 0) return Qnil;</div><div class='del'>-		argc = INT2FIX(len + 1);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		argn = argn-&gt;nd_head;</div><div class='del'>-		goto setup_argn;</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	  }</div><div class='del'>-	  case NODE_ARRAY:</div><div class='del'>-	    {</div><div class='del'>-		int len = compile_array(iseq, args, argn, COMPILE_ARRAY_TYPE_ARGS, keywords, flag, FALSE);</div><div class='del'>-		if (len &lt; 0) return Qnil;</div><div class='del'>-		argc = INT2FIX(len);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  default: {</div><div class='del'>-	    UNKNOWN_NODE("setup_arg", argn, Qnil);</div><div class='del'>-	  }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (nsplat &gt; 1) {</div><div class='del'>-	int i;</div><div class='del'>-	for (i=1; i&lt;nsplat; i++) {</div><div class='del'>-	    ADD_INSN(args_splat, nd_line(argn), concatarray);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!LIST_INSN_SIZE_ZERO(args_splat)) {</div><div class='del'>-	ADD_SEQ(args, args_splat);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (*flag &amp; VM_CALL_ARGS_BLOCKARG) {</div><div class='del'>-	if (LIST_INSN_SIZE_ONE(arg_block)) {</div><div class='del'>-	    LINK_ELEMENT *elem = FIRST_ELEMENT(arg_block);</div><div class='del'>-	    if (elem-&gt;type == ISEQ_ELEMENT_INSN) {</div><div class='del'>-		INSN *iobj = (INSN *)elem;</div><div class='del'>-		if (iobj-&gt;insn_id == BIN(getblockparam)) {</div><div class='del'>-		    iobj-&gt;insn_id = BIN(getblockparamproxy);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	ADD_SEQ(args, arg_block);</div><div class='del'>-    }</div><div class='del'>-    return argc;</div><div class='add'>+        switch (nd_type(argn)) {</div><div class='add'>+          case NODE_SPLAT: {</div><div class='add'>+            NO_CHECK(COMPILE(args, "args (splat)", argn-&gt;nd_head));</div><div class='add'>+            ADD_INSN1(args, argn, splatarray, RBOOL(dup_rest));</div><div class='add'>+            if (flag) *flag |= VM_CALL_ARGS_SPLAT;</div><div class='add'>+            return INT2FIX(1);</div><div class='add'>+          }</div><div class='add'>+          case NODE_ARGSCAT:</div><div class='add'>+          case NODE_ARGSPUSH: {</div><div class='add'>+            int next_is_list = (nd_type_p(argn-&gt;nd_head, NODE_LIST));</div><div class='add'>+            VALUE argc = setup_args_core(iseq, args, argn-&gt;nd_head, 1, NULL, NULL);</div><div class='add'>+            if (nd_type_p(argn-&gt;nd_body, NODE_LIST)) {</div><div class='add'>+                /* This branch is needed to avoid "newarraykwsplat" [Bug #16442] */</div><div class='add'>+                int rest_len = compile_args(iseq, args, argn-&gt;nd_body, NULL, NULL);</div><div class='add'>+                ADD_INSN1(args, argn, newarray, INT2FIX(rest_len));</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                NO_CHECK(COMPILE(args, "args (cat: splat)", argn-&gt;nd_body));</div><div class='add'>+            }</div><div class='add'>+            if (flag) {</div><div class='add'>+                *flag |= VM_CALL_ARGS_SPLAT;</div><div class='add'>+                /* This is a dirty hack.  It traverses the AST twice.</div><div class='add'>+                 * In a long term, it should be fixed by a redesign of keyword arguments */</div><div class='add'>+                if (check_keyword(argn-&gt;nd_body))</div><div class='add'>+                    *flag |= VM_CALL_KW_SPLAT;</div><div class='add'>+            }</div><div class='add'>+            if (nd_type_p(argn, NODE_ARGSCAT)) {</div><div class='add'>+                if (next_is_list) {</div><div class='add'>+                    ADD_INSN1(args, argn, splatarray, Qtrue);</div><div class='add'>+                    return INT2FIX(FIX2INT(argc) + 1);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    ADD_INSN1(args, argn, splatarray, Qfalse);</div><div class='add'>+                    ADD_INSN(args, argn, concatarray);</div><div class='add'>+                    return argc;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ADD_INSN1(args, argn, newarray, INT2FIX(1));</div><div class='add'>+                ADD_INSN(args, argn, concatarray);</div><div class='add'>+                return argc;</div><div class='add'>+            }</div><div class='add'>+          }</div><div class='add'>+          case NODE_LIST: {</div><div class='add'>+            int len = compile_args(iseq, args, argn, keywords, flag);</div><div class='add'>+            return INT2FIX(len);</div><div class='add'>+          }</div><div class='add'>+          default: {</div><div class='add'>+            UNKNOWN_NODE("setup_arg", argn, Qnil);</div><div class='add'>+          }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return INT2FIX(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-build_postexe_iseq(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *body)</div><div class='add'>+setup_args(rb_iseq_t *iseq, LINK_ANCHOR *const args, const NODE *argn,</div><div class='add'>+           unsigned int *flag, struct rb_callinfo_kwarg **keywords)</div><div class='add'>+{</div><div class='add'>+    VALUE ret;</div><div class='add'>+    if (argn &amp;&amp; nd_type_p(argn, NODE_BLOCK_PASS)) {</div><div class='add'>+        unsigned int dup_rest = 1;</div><div class='add'>+        DECL_ANCHOR(arg_block);</div><div class='add'>+        INIT_ANCHOR(arg_block);</div><div class='add'>+        NO_CHECK(COMPILE(arg_block, "block", argn-&gt;nd_body));</div><div class='add'>+</div><div class='add'>+        *flag |= VM_CALL_ARGS_BLOCKARG;</div><div class='add'>+</div><div class='add'>+        if (LIST_INSN_SIZE_ONE(arg_block)) {</div><div class='add'>+            LINK_ELEMENT *elem = FIRST_ELEMENT(arg_block);</div><div class='add'>+            if (IS_INSN(elem)) {</div><div class='add'>+                INSN *iobj = (INSN *)elem;</div><div class='add'>+                if (iobj-&gt;insn_id == BIN(getblockparam)) {</div><div class='add'>+                    iobj-&gt;insn_id = BIN(getblockparamproxy);</div><div class='add'>+                }</div><div class='add'>+                dup_rest = 0;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        ret = setup_args_core(iseq, args, argn-&gt;nd_head, dup_rest, flag, keywords);</div><div class='add'>+        ADD_SEQ(args, arg_block);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ret = setup_args_core(iseq, args, argn, 0, flag, keywords);</div><div class='add'>+    }</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+build_postexe_iseq(rb_iseq_t *iseq, LINK_ANCHOR *ret, const void *ptr)</div><div class='ctx'> {</div><div class='add'>+    const NODE *body = ptr;</div><div class='ctx'>     int line = nd_line(body);</div><div class='ctx'>     VALUE argc = INT2FIX(0);</div><div class='del'>-    const rb_iseq_t *block = NEW_CHILD_ISEQ(body, make_name_for_block(iseq-&gt;body-&gt;parent_iseq), ISEQ_TYPE_BLOCK, line);</div><div class='add'>+    const rb_iseq_t *block = NEW_CHILD_ISEQ(body, make_name_for_block(ISEQ_BODY(iseq)-&gt;parent_iseq), ISEQ_TYPE_BLOCK, line);</div><div class='ctx'> </div><div class='del'>-    ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='del'>-    ADD_CALL_WITH_BLOCK(ret, line, id_core_set_postexe, argc, block);</div><div class='add'>+    ADD_INSN1(ret, body, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+    ADD_CALL_WITH_BLOCK(ret, body, id_core_set_postexe, argc, block);</div><div class='add'>+    RB_OBJ_WRITTEN(iseq, Qundef, (VALUE)block);</div><div class='ctx'>     iseq_set_local_table(iseq, 0);</div><div class='del'>-    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -4919,83 +5948,91 @@ compile_named_capture_assign(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE</div><div class='ctx'>     const NODE *vars;</div><div class='ctx'>     LINK_ELEMENT *last;</div><div class='ctx'>     int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'>     LABEL *fail_label = NEW_LABEL(line), *end_label = NEW_LABEL(line);</div><div class='ctx'> </div><div class='ctx'> #if !(defined(NAMED_CAPTURE_BY_SVAR) &amp;&amp; NAMED_CAPTURE_BY_SVAR-0)</div><div class='del'>-    ADD_INSN1(ret, line, getglobal, ((VALUE)rb_global_entry(idBACKREF) | 1));</div><div class='add'>+    ADD_INSN1(ret, line_node, getglobal, ID2SYM(idBACKREF));</div><div class='ctx'> #else</div><div class='del'>-    ADD_INSN2(ret, line, getspecial, INT2FIX(1) /* '~' */, INT2FIX(0));</div><div class='add'>+    ADD_INSN2(ret, line_node, getspecial, INT2FIX(1) /* '~' */, INT2FIX(0));</div><div class='ctx'> #endif</div><div class='del'>-    ADD_INSN(ret, line, dup);</div><div class='del'>-    ADD_INSNL(ret, line, branchunless, fail_label);</div><div class='add'>+    ADD_INSN(ret, line_node, dup);</div><div class='add'>+    ADD_INSNL(ret, line_node, branchunless, fail_label);</div><div class='ctx'> </div><div class='ctx'>     for (vars = node; vars; vars = vars-&gt;nd_next) {</div><div class='del'>-	INSN *cap;</div><div class='del'>-	if (vars-&gt;nd_next) {</div><div class='del'>-	    ADD_INSN(ret, line, dup);</div><div class='del'>-	}</div><div class='del'>-	last = ret-&gt;last;</div><div class='del'>-	COMPILE_POPPED(ret, "capture", vars-&gt;nd_head);</div><div class='del'>-	last = last-&gt;next; /* putobject :var */</div><div class='del'>-	cap = new_insn_send(iseq, line, idAREF, INT2FIX(1),</div><div class='del'>-			    NULL, INT2FIX(0), NULL);</div><div class='del'>-	ELEM_INSERT_PREV(last-&gt;next, (LINK_ELEMENT *)cap);</div><div class='add'>+        INSN *cap;</div><div class='add'>+        if (vars-&gt;nd_next) {</div><div class='add'>+            ADD_INSN(ret, line_node, dup);</div><div class='add'>+        }</div><div class='add'>+        last = ret-&gt;last;</div><div class='add'>+        NO_CHECK(COMPILE_POPPED(ret, "capture", vars-&gt;nd_head));</div><div class='add'>+        last = last-&gt;next; /* putobject :var */</div><div class='add'>+        cap = new_insn_send(iseq, line_node, idAREF, INT2FIX(1),</div><div class='add'>+                            NULL, INT2FIX(0), NULL);</div><div class='add'>+        ELEM_INSERT_PREV(last-&gt;next, (LINK_ELEMENT *)cap);</div><div class='ctx'> #if !defined(NAMED_CAPTURE_SINGLE_OPT) || NAMED_CAPTURE_SINGLE_OPT-0</div><div class='del'>-	if (!vars-&gt;nd_next &amp;&amp; vars == node) {</div><div class='del'>-	    /* only one name */</div><div class='del'>-	    DECL_ANCHOR(nom);</div><div class='add'>+        if (!vars-&gt;nd_next &amp;&amp; vars == node) {</div><div class='add'>+            /* only one name */</div><div class='add'>+            DECL_ANCHOR(nom);</div><div class='ctx'> </div><div class='del'>-	    INIT_ANCHOR(nom);</div><div class='del'>-	    ADD_INSNL(nom, line, jump, end_label);</div><div class='del'>-	    ADD_LABEL(nom, fail_label);</div><div class='add'>+            INIT_ANCHOR(nom);</div><div class='add'>+            ADD_INSNL(nom, line_node, jump, end_label);</div><div class='add'>+            ADD_LABEL(nom, fail_label);</div><div class='ctx'> # if 0				/* $~ must be MatchData or nil */</div><div class='del'>-	    ADD_INSN(nom, line, pop);</div><div class='del'>-	    ADD_INSN(nom, line, putnil);</div><div class='add'>+            ADD_INSN(nom, line_node, pop);</div><div class='add'>+            ADD_INSN(nom, line_node, putnil);</div><div class='ctx'> # endif</div><div class='del'>-	    ADD_LABEL(nom, end_label);</div><div class='del'>-	    (nom-&gt;last-&gt;next = cap-&gt;link.next)-&gt;prev = nom-&gt;last;</div><div class='del'>-	    (cap-&gt;link.next = nom-&gt;anchor.next)-&gt;prev = &amp;cap-&gt;link;</div><div class='del'>-	    return;</div><div class='del'>-	}</div><div class='add'>+            ADD_LABEL(nom, end_label);</div><div class='add'>+            (nom-&gt;last-&gt;next = cap-&gt;link.next)-&gt;prev = nom-&gt;last;</div><div class='add'>+            (cap-&gt;link.next = nom-&gt;anchor.next)-&gt;prev = &amp;cap-&gt;link;</div><div class='add'>+            return;</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='del'>-    ADD_INSNL(ret, line, jump, end_label);</div><div class='add'>+    ADD_INSNL(ret, line_node, jump, end_label);</div><div class='ctx'>     ADD_LABEL(ret, fail_label);</div><div class='del'>-    ADD_INSN(ret, line, pop);</div><div class='add'>+    ADD_INSN(ret, line_node, pop);</div><div class='ctx'>     for (vars = node; vars; vars = vars-&gt;nd_next) {</div><div class='del'>-	last = ret-&gt;last;</div><div class='del'>-	COMPILE_POPPED(ret, "capture", vars-&gt;nd_head);</div><div class='del'>-	last = last-&gt;next; /* putobject :var */</div><div class='del'>-	((INSN*)last)-&gt;insn_id = BIN(putnil);</div><div class='del'>-	((INSN*)last)-&gt;operand_size = 0;</div><div class='add'>+        last = ret-&gt;last;</div><div class='add'>+        NO_CHECK(COMPILE_POPPED(ret, "capture", vars-&gt;nd_head));</div><div class='add'>+        last = last-&gt;next; /* putobject :var */</div><div class='add'>+        ((INSN*)last)-&gt;insn_id = BIN(putnil);</div><div class='add'>+        ((INSN*)last)-&gt;operand_size = 0;</div><div class='ctx'>     }</div><div class='ctx'>     ADD_LABEL(ret, end_label);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-number_literal_p(const NODE *n)</div><div class='add'>+optimizable_range_item_p(const NODE *n)</div><div class='ctx'> {</div><div class='del'>-    return (n &amp;&amp; nd_type(n) == NODE_LIT &amp;&amp; RB_INTEGER_TYPE_P(n-&gt;nd_lit));</div><div class='add'>+    if (!n) return FALSE;</div><div class='add'>+    switch (nd_type(n)) {</div><div class='add'>+      case NODE_LIT:</div><div class='add'>+        return RB_INTEGER_TYPE_P(n-&gt;nd_lit);</div><div class='add'>+      case NODE_NIL:</div><div class='add'>+        return TRUE;</div><div class='add'>+      default:</div><div class='add'>+        return FALSE;</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> compile_if(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped, const enum node_type type)</div><div class='ctx'> {</div><div class='del'>-    struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     const NODE *const node_body = type == NODE_IF ? node-&gt;nd_body : node-&gt;nd_else;</div><div class='ctx'>     const NODE *const node_else = type == NODE_IF ? node-&gt;nd_else : node-&gt;nd_body;</div><div class='ctx'> </div><div class='ctx'>     const int line = nd_line(node);</div><div class='del'>-    const int lineno = nd_first_lineno(node);</div><div class='del'>-    const int column = nd_first_column(node);</div><div class='del'>-    const int last_lineno = nd_last_lineno(node);</div><div class='del'>-    const int last_column = nd_last_column(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'>     DECL_ANCHOR(cond_seq);</div><div class='ctx'>     DECL_ANCHOR(then_seq);</div><div class='ctx'>     DECL_ANCHOR(else_seq);</div><div class='ctx'>     LABEL *then_label, *else_label, *end_label;</div><div class='del'>-    VALUE branches = 0;</div><div class='del'>-    int ci_size, ci_kw_size;</div><div class='add'>+    VALUE branches = Qfalse;</div><div class='add'>+    int ci_size;</div><div class='add'>+    VALUE catch_table = ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary;</div><div class='add'>+    long catch_table_size = NIL_P(catch_table) ? 0 : RARRAY_LEN(catch_table);</div><div class='ctx'> </div><div class='ctx'>     INIT_ANCHOR(cond_seq);</div><div class='ctx'>     INIT_ANCHOR(then_seq);</div><div class='hunk'>@@ -5005,64 +6042,71 @@ compile_if(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int</div><div class='ctx'>     end_label = 0;</div><div class='ctx'> </div><div class='ctx'>     compile_branch_condition(iseq, cond_seq, node-&gt;nd_cond,</div><div class='del'>-			     then_label, else_label);</div><div class='add'>+                             then_label, else_label);</div><div class='ctx'> </div><div class='ctx'>     ci_size = body-&gt;ci_size;</div><div class='del'>-    ci_kw_size = body-&gt;ci_kw_size;</div><div class='ctx'>     CHECK(COMPILE_(then_seq, "then", node_body, popped));</div><div class='add'>+    catch_table = ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary;</div><div class='ctx'>     if (!then_label-&gt;refcnt) {</div><div class='ctx'>         body-&gt;ci_size = ci_size;</div><div class='del'>-        body-&gt;ci_kw_size = ci_kw_size;</div><div class='add'>+        if (!NIL_P(catch_table)) rb_ary_set_len(catch_table, catch_table_size);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (!NIL_P(catch_table)) catch_table_size = RARRAY_LEN(catch_table);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ci_size = body-&gt;ci_size;</div><div class='del'>-    ci_kw_size = body-&gt;ci_kw_size;</div><div class='ctx'>     CHECK(COMPILE_(else_seq, "else", node_else, popped));</div><div class='add'>+    catch_table = ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary;</div><div class='ctx'>     if (!else_label-&gt;refcnt) {</div><div class='ctx'>         body-&gt;ci_size = ci_size;</div><div class='del'>-        body-&gt;ci_kw_size = ci_kw_size;</div><div class='add'>+        if (!NIL_P(catch_table)) rb_ary_set_len(catch_table, catch_table_size);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (!NIL_P(catch_table)) catch_table_size = RARRAY_LEN(catch_table);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ADD_SEQ(ret, cond_seq);</div><div class='ctx'> </div><div class='ctx'>     if (then_label-&gt;refcnt &amp;&amp; else_label-&gt;refcnt) {</div><div class='del'>-	DECL_BRANCH_BASE(branches, lineno, column, last_lineno, last_column, type == NODE_IF ? "if" : "unless");</div><div class='add'>+        branches = decl_branch_base(iseq, node, type == NODE_IF ? "if" : "unless");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (then_label-&gt;refcnt) {</div><div class='del'>-	ADD_LABEL(ret, then_label);</div><div class='del'>-	if (else_label-&gt;refcnt) {</div><div class='del'>-	    ADD_TRACE_BRANCH_COVERAGE(</div><div class='del'>-		ret,</div><div class='del'>-		node_body ? nd_first_lineno(node_body) : lineno,</div><div class='del'>-		node_body ? nd_first_column(node_body) : column,</div><div class='del'>-		node_body ? nd_last_lineno(node_body) : last_lineno,</div><div class='del'>-		node_body ? nd_last_column(node_body) : last_column,</div><div class='del'>-		type == NODE_IF ? "then" : "else",</div><div class='del'>-		branches);</div><div class='del'>-	    end_label = NEW_LABEL(line);</div><div class='del'>-	    ADD_INSNL(then_seq, line, jump, end_label);</div><div class='del'>-	}</div><div class='del'>-	ADD_SEQ(ret, then_seq);</div><div class='add'>+        ADD_LABEL(ret, then_label);</div><div class='add'>+        if (else_label-&gt;refcnt) {</div><div class='add'>+            add_trace_branch_coverage(</div><div class='add'>+                iseq,</div><div class='add'>+                ret,</div><div class='add'>+                node_body ? node_body : node,</div><div class='add'>+                0,</div><div class='add'>+                type == NODE_IF ? "then" : "else",</div><div class='add'>+                branches);</div><div class='add'>+            end_label = NEW_LABEL(line);</div><div class='add'>+            ADD_INSNL(then_seq, line_node, jump, end_label);</div><div class='add'>+            if (!popped) {</div><div class='add'>+                ADD_INSN(then_seq, line_node, pop);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        ADD_SEQ(ret, then_seq);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (else_label-&gt;refcnt) {</div><div class='del'>-	ADD_LABEL(ret, else_label);</div><div class='del'>-	if (then_label-&gt;refcnt) {</div><div class='del'>-	    ADD_TRACE_BRANCH_COVERAGE(</div><div class='del'>-		ret,</div><div class='del'>-		node_else ? nd_first_lineno(node_else) : lineno,</div><div class='del'>-		node_else ? nd_first_column(node_else) : column,</div><div class='del'>-		node_else ? nd_last_lineno(node_else) : last_lineno,</div><div class='del'>-		node_else ? nd_last_column(node_else) : last_column,</div><div class='del'>-		type == NODE_IF ? "else" : "then",</div><div class='del'>-		branches);</div><div class='del'>-	}</div><div class='del'>-	ADD_SEQ(ret, else_seq);</div><div class='add'>+        ADD_LABEL(ret, else_label);</div><div class='add'>+        if (then_label-&gt;refcnt) {</div><div class='add'>+            add_trace_branch_coverage(</div><div class='add'>+                iseq,</div><div class='add'>+                ret,</div><div class='add'>+                node_else ? node_else : node,</div><div class='add'>+                1,</div><div class='add'>+                type == NODE_IF ? "else" : "then",</div><div class='add'>+                branches);</div><div class='add'>+        }</div><div class='add'>+        ADD_SEQ(ret, else_seq);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (end_label) {</div><div class='del'>-	ADD_LABEL(ret, end_label);</div><div class='add'>+        ADD_LABEL(ret, end_label);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return COMPILE_OK;</div><div class='hunk'>@@ -5079,9 +6123,11 @@ compile_case(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_nod</div><div class='ctx'>     DECL_ANCHOR(cond_seq);</div><div class='ctx'>     int only_special_literals = 1;</div><div class='ctx'>     VALUE literals = rb_hash_new();</div><div class='del'>-    int line, lineno, column, last_lineno, last_column;</div><div class='add'>+    int line;</div><div class='ctx'>     enum node_type type;</div><div class='del'>-    VALUE branches = 0;</div><div class='add'>+    const NODE *line_node;</div><div class='add'>+    VALUE branches = Qfalse;</div><div class='add'>+    int branch_id = 0;</div><div class='ctx'> </div><div class='ctx'>     INIT_ANCHOR(head);</div><div class='ctx'>     INIT_ANCHOR(body_seq);</div><div class='hunk'>@@ -5091,16 +6137,13 @@ compile_case(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_nod</div><div class='ctx'> </div><div class='ctx'>     CHECK(COMPILE(head, "case base", node-&gt;nd_head));</div><div class='ctx'> </div><div class='del'>-    DECL_BRANCH_BASE(branches, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "case");</div><div class='add'>+    branches = decl_branch_base(iseq, node, "case");</div><div class='ctx'> </div><div class='ctx'>     node = node-&gt;nd_body;</div><div class='ctx'>     EXPECT_NODE("NODE_CASE", node, NODE_WHEN, COMPILE_NG);</div><div class='ctx'>     type = nd_type(node);</div><div class='ctx'>     line = nd_line(node);</div><div class='del'>-    lineno = nd_first_lineno(node);</div><div class='del'>-    column = nd_first_column(node);</div><div class='del'>-    last_lineno = nd_last_lineno(node);</div><div class='del'>-    last_column = nd_last_column(node);</div><div class='add'>+    line_node = node;</div><div class='ctx'> </div><div class='ctx'>     endlabel = NEW_LABEL(line);</div><div class='ctx'>     elselabel = NEW_LABEL(line);</div><div class='hunk'>@@ -5108,79 +6151,74 @@ compile_case(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_nod</div><div class='ctx'>     ADD_SEQ(ret, head);	/* case VAL */</div><div class='ctx'> </div><div class='ctx'>     while (type == NODE_WHEN) {</div><div class='del'>-	LABEL *l1;</div><div class='del'>-</div><div class='del'>-	l1 = NEW_LABEL(line);</div><div class='del'>-	ADD_LABEL(body_seq, l1);</div><div class='del'>-	ADD_INSN(body_seq, line, pop);</div><div class='del'>-	ADD_TRACE_BRANCH_COVERAGE(</div><div class='del'>-		body_seq,</div><div class='del'>-		node-&gt;nd_body ? nd_first_lineno(node-&gt;nd_body) : lineno,</div><div class='del'>-		node-&gt;nd_body ? nd_first_column(node-&gt;nd_body) : column,</div><div class='del'>-		node-&gt;nd_body ? nd_last_lineno(node-&gt;nd_body) : last_lineno,</div><div class='del'>-		node-&gt;nd_body ? nd_last_column(node-&gt;nd_body) : last_column,</div><div class='del'>-		"when",</div><div class='del'>-		branches);</div><div class='del'>-	CHECK(COMPILE_(body_seq, "when body", node-&gt;nd_body, popped));</div><div class='del'>-	ADD_INSNL(body_seq, line, jump, endlabel);</div><div class='del'>-</div><div class='del'>-	vals = node-&gt;nd_head;</div><div class='del'>-	if (vals) {</div><div class='del'>-	    switch (nd_type(vals)) {</div><div class='del'>-	      case NODE_ARRAY:</div><div class='del'>-		only_special_literals = when_vals(iseq, cond_seq, vals, l1, only_special_literals, literals);</div><div class='del'>-		if (only_special_literals &lt; 0) return COMPILE_NG;</div><div class='del'>-		break;</div><div class='del'>-	      case NODE_SPLAT:</div><div class='del'>-	      case NODE_ARGSCAT:</div><div class='del'>-	      case NODE_ARGSPUSH:</div><div class='del'>-		only_special_literals = 0;</div><div class='del'>-		CHECK(when_splat_vals(iseq, cond_seq, vals, l1, only_special_literals, literals));</div><div class='del'>-		break;</div><div class='del'>-	      default:</div><div class='del'>-		UNKNOWN_NODE("NODE_CASE", vals, COMPILE_NG);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    EXPECT_NODE_NONULL("NODE_CASE", node, NODE_ARRAY, COMPILE_NG);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	node = node-&gt;nd_next;</div><div class='del'>-	if (!node) {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	type = nd_type(node);</div><div class='del'>-	line = nd_line(node);</div><div class='del'>-	lineno = nd_first_lineno(node);</div><div class='del'>-	column = nd_first_column(node);</div><div class='del'>-	last_lineno = nd_last_lineno(node);</div><div class='del'>-	last_column = nd_last_column(node);</div><div class='add'>+        LABEL *l1;</div><div class='add'>+</div><div class='add'>+        l1 = NEW_LABEL(line);</div><div class='add'>+        ADD_LABEL(body_seq, l1);</div><div class='add'>+        ADD_INSN(body_seq, line_node, pop);</div><div class='add'>+        add_trace_branch_coverage(</div><div class='add'>+                iseq,</div><div class='add'>+                body_seq,</div><div class='add'>+                node-&gt;nd_body ? node-&gt;nd_body : node,</div><div class='add'>+                branch_id++,</div><div class='add'>+                "when",</div><div class='add'>+                branches);</div><div class='add'>+        CHECK(COMPILE_(body_seq, "when body", node-&gt;nd_body, popped));</div><div class='add'>+        ADD_INSNL(body_seq, line_node, jump, endlabel);</div><div class='add'>+</div><div class='add'>+        vals = node-&gt;nd_head;</div><div class='add'>+        if (vals) {</div><div class='add'>+            switch (nd_type(vals)) {</div><div class='add'>+              case NODE_LIST:</div><div class='add'>+                only_special_literals = when_vals(iseq, cond_seq, vals, l1, only_special_literals, literals);</div><div class='add'>+                if (only_special_literals &lt; 0) return COMPILE_NG;</div><div class='add'>+                break;</div><div class='add'>+              case NODE_SPLAT:</div><div class='add'>+              case NODE_ARGSCAT:</div><div class='add'>+              case NODE_ARGSPUSH:</div><div class='add'>+                only_special_literals = 0;</div><div class='add'>+                CHECK(when_splat_vals(iseq, cond_seq, vals, l1, only_special_literals, literals));</div><div class='add'>+                break;</div><div class='add'>+              default:</div><div class='add'>+                UNKNOWN_NODE("NODE_CASE", vals, COMPILE_NG);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            EXPECT_NODE_NONULL("NODE_CASE", node, NODE_LIST, COMPILE_NG);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        node = node-&gt;nd_next;</div><div class='add'>+        if (!node) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        type = nd_type(node);</div><div class='add'>+        line = nd_line(node);</div><div class='add'>+        line_node = node;</div><div class='ctx'>     }</div><div class='ctx'>     /* else */</div><div class='ctx'>     if (node) {</div><div class='del'>-	ADD_LABEL(cond_seq, elselabel);</div><div class='del'>-	ADD_INSN(cond_seq, line, pop);</div><div class='del'>-	ADD_TRACE_BRANCH_COVERAGE(cond_seq, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "else", branches);</div><div class='del'>-	CHECK(COMPILE_(cond_seq, "else", node, popped));</div><div class='del'>-	ADD_INSNL(cond_seq, line, jump, endlabel);</div><div class='add'>+        ADD_LABEL(cond_seq, elselabel);</div><div class='add'>+        ADD_INSN(cond_seq, line_node, pop);</div><div class='add'>+        add_trace_branch_coverage(iseq, cond_seq, node, branch_id, "else", branches);</div><div class='add'>+        CHECK(COMPILE_(cond_seq, "else", node, popped));</div><div class='add'>+        ADD_INSNL(cond_seq, line_node, jump, endlabel);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	debugs("== else (implicit)\n");</div><div class='del'>-	ADD_LABEL(cond_seq, elselabel);</div><div class='del'>-	ADD_INSN(cond_seq, nd_line(orig_node), pop);</div><div class='del'>-	ADD_TRACE_BRANCH_COVERAGE(cond_seq, nd_first_lineno(orig_node), nd_first_column(orig_node), nd_last_lineno(orig_node), nd_last_column(orig_node), "else", branches);</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(cond_seq, nd_line(orig_node), putnil);</div><div class='del'>-	}</div><div class='del'>-	ADD_INSNL(cond_seq, nd_line(orig_node), jump, endlabel);</div><div class='add'>+        debugs("== else (implicit)\n");</div><div class='add'>+        ADD_LABEL(cond_seq, elselabel);</div><div class='add'>+        ADD_INSN(cond_seq, orig_node, pop);</div><div class='add'>+        add_trace_branch_coverage(iseq, cond_seq, orig_node, branch_id, "else", branches);</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(cond_seq, orig_node, putnil);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(cond_seq, orig_node, jump, endlabel);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (only_special_literals &amp;&amp; ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction) {</div><div class='del'>-	iseq_add_mark_object_compile_time(iseq, literals);</div><div class='del'>-</div><div class='del'>-	ADD_INSN(ret, nd_line(orig_node), dup);</div><div class='del'>-	ADD_INSN2(ret, nd_line(orig_node), opt_case_dispatch, literals, elselabel);</div><div class='del'>-	LABEL_REF(elselabel);</div><div class='add'>+        ADD_INSN(ret, orig_node, dup);</div><div class='add'>+        ADD_INSN2(ret, orig_node, opt_case_dispatch, literals, elselabel);</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, literals);</div><div class='add'>+        LABEL_REF(elselabel);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ADD_SEQ(ret, cond_seq);</div><div class='hunk'>@@ -5197,92 +6235,1166 @@ compile_case2(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_no</div><div class='ctx'>     const NODE *node = orig_node-&gt;nd_body;</div><div class='ctx'>     LABEL *endlabel;</div><div class='ctx'>     DECL_ANCHOR(body_seq);</div><div class='del'>-    VALUE branches = 0;</div><div class='add'>+    VALUE branches = Qfalse;</div><div class='add'>+    int branch_id = 0;</div><div class='ctx'> </div><div class='del'>-    DECL_BRANCH_BASE(branches, nd_first_lineno(orig_node), nd_first_column(orig_node), nd_last_lineno(orig_node), nd_last_column(orig_node), "case");</div><div class='add'>+    branches = decl_branch_base(iseq, orig_node, "case");</div><div class='ctx'> </div><div class='ctx'>     INIT_ANCHOR(body_seq);</div><div class='ctx'>     endlabel = NEW_LABEL(nd_line(node));</div><div class='ctx'> </div><div class='del'>-    while (node &amp;&amp; nd_type(node) == NODE_WHEN) {</div><div class='del'>-	const int line = nd_line(node);</div><div class='del'>-	const int lineno = nd_first_lineno(node);</div><div class='del'>-	const int column = nd_first_column(node);</div><div class='del'>-	const int last_lineno = nd_last_lineno(node);</div><div class='del'>-	const int last_column = nd_last_column(node);</div><div class='del'>-	LABEL *l1 = NEW_LABEL(line);</div><div class='del'>-	ADD_LABEL(body_seq, l1);</div><div class='del'>-	ADD_TRACE_BRANCH_COVERAGE(</div><div class='del'>-		body_seq,</div><div class='del'>-		node-&gt;nd_body ? nd_first_lineno(node-&gt;nd_body) : lineno,</div><div class='del'>-		node-&gt;nd_body ? nd_first_column(node-&gt;nd_body) : column,</div><div class='del'>-		node-&gt;nd_body ? nd_last_lineno(node-&gt;nd_body) : last_lineno,</div><div class='del'>-		node-&gt;nd_body ? nd_last_column(node-&gt;nd_body) : last_column,</div><div class='del'>-		"when",</div><div class='del'>-		branches);</div><div class='del'>-	CHECK(COMPILE_(body_seq, "when", node-&gt;nd_body, popped));</div><div class='del'>-	ADD_INSNL(body_seq, line, jump, endlabel);</div><div class='del'>-</div><div class='del'>-	vals = node-&gt;nd_head;</div><div class='del'>-	if (!vals) {</div><div class='del'>-	    COMPILE_ERROR(ERROR_ARGS "NODE_WHEN: must be NODE_ARRAY, but 0");</div><div class='del'>-	    return COMPILE_NG;</div><div class='del'>-	}</div><div class='del'>-	switch (nd_type(vals)) {</div><div class='del'>-	  case NODE_ARRAY:</div><div class='del'>-	    while (vals) {</div><div class='del'>-		LABEL *lnext;</div><div class='del'>-		val = vals-&gt;nd_head;</div><div class='del'>-		lnext = NEW_LABEL(nd_line(val));</div><div class='del'>-		debug_compile("== when2\n", (void)0);</div><div class='del'>-		CHECK(compile_branch_condition(iseq, ret, val, l1, lnext));</div><div class='del'>-		ADD_LABEL(ret, lnext);</div><div class='del'>-		vals = vals-&gt;nd_next;</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	  case NODE_SPLAT:</div><div class='del'>-	  case NODE_ARGSCAT:</div><div class='del'>-	  case NODE_ARGSPUSH:</div><div class='del'>-	    ADD_INSN(ret, nd_line(vals), putnil);</div><div class='del'>-	    CHECK(COMPILE(ret, "when2/cond splat", vals));</div><div class='del'>-	    ADD_INSN1(ret, nd_line(vals), checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_WHEN | VM_CHECKMATCH_ARRAY));</div><div class='del'>-	    ADD_INSNL(ret, nd_line(vals), branchif, l1);</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    UNKNOWN_NODE("NODE_WHEN", vals, COMPILE_NG);</div><div class='del'>-	}</div><div class='del'>-	node = node-&gt;nd_next;</div><div class='add'>+    while (node &amp;&amp; nd_type_p(node, NODE_WHEN)) {</div><div class='add'>+        const int line = nd_line(node);</div><div class='add'>+        LABEL *l1 = NEW_LABEL(line);</div><div class='add'>+        ADD_LABEL(body_seq, l1);</div><div class='add'>+        add_trace_branch_coverage(</div><div class='add'>+                iseq,</div><div class='add'>+                body_seq,</div><div class='add'>+                node-&gt;nd_body ? node-&gt;nd_body : node,</div><div class='add'>+                branch_id++,</div><div class='add'>+                "when",</div><div class='add'>+                branches);</div><div class='add'>+        CHECK(COMPILE_(body_seq, "when", node-&gt;nd_body, popped));</div><div class='add'>+        ADD_INSNL(body_seq, node, jump, endlabel);</div><div class='add'>+</div><div class='add'>+        vals = node-&gt;nd_head;</div><div class='add'>+        if (!vals) {</div><div class='add'>+            EXPECT_NODE_NONULL("NODE_WHEN", node, NODE_LIST, COMPILE_NG);</div><div class='add'>+        }</div><div class='add'>+        switch (nd_type(vals)) {</div><div class='add'>+          case NODE_LIST:</div><div class='add'>+            while (vals) {</div><div class='add'>+                LABEL *lnext;</div><div class='add'>+                val = vals-&gt;nd_head;</div><div class='add'>+                lnext = NEW_LABEL(nd_line(val));</div><div class='add'>+                debug_compile("== when2\n", (void)0);</div><div class='add'>+                CHECK(compile_branch_condition(iseq, ret, val, l1, lnext));</div><div class='add'>+                ADD_LABEL(ret, lnext);</div><div class='add'>+                vals = vals-&gt;nd_next;</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+          case NODE_SPLAT:</div><div class='add'>+          case NODE_ARGSCAT:</div><div class='add'>+          case NODE_ARGSPUSH:</div><div class='add'>+            ADD_INSN(ret, vals, putnil);</div><div class='add'>+            CHECK(COMPILE(ret, "when2/cond splat", vals));</div><div class='add'>+            ADD_INSN1(ret, vals, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_WHEN | VM_CHECKMATCH_ARRAY));</div><div class='add'>+            ADD_INSNL(ret, vals, branchif, l1);</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            UNKNOWN_NODE("NODE_WHEN", vals, COMPILE_NG);</div><div class='add'>+        }</div><div class='add'>+        node = node-&gt;nd_next;</div><div class='ctx'>     }</div><div class='ctx'>     /* else */</div><div class='del'>-    ADD_TRACE_BRANCH_COVERAGE(</div><div class='del'>-	ret,</div><div class='del'>-	node ? nd_first_lineno(node) : nd_first_lineno(orig_node),</div><div class='del'>-	node ? nd_first_column(node) : nd_first_column(orig_node),</div><div class='del'>-	node ? nd_last_lineno(node) : nd_last_lineno(orig_node),</div><div class='del'>-	node ? nd_last_column(node) : nd_last_column(orig_node),</div><div class='del'>-	"else",</div><div class='del'>-	branches);</div><div class='add'>+    add_trace_branch_coverage(</div><div class='add'>+        iseq,</div><div class='add'>+        ret,</div><div class='add'>+        node ? node : orig_node,</div><div class='add'>+        branch_id,</div><div class='add'>+        "else",</div><div class='add'>+        branches);</div><div class='ctx'>     CHECK(COMPILE_(ret, "else", node, popped));</div><div class='del'>-    ADD_INSNL(ret, nd_line(orig_node), jump, endlabel);</div><div class='add'>+    ADD_INSNL(ret, orig_node, jump, endlabel);</div><div class='add'>+</div><div class='add'>+    ADD_SEQ(ret, body_seq);</div><div class='add'>+    ADD_LABEL(ret, endlabel);</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int iseq_compile_pattern_match(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *unmatched, bool in_single_pattern, bool in_alt_pattern, int base_index, bool use_deconstructed_cache);</div><div class='add'>+</div><div class='add'>+static int iseq_compile_pattern_constant(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *match_failed, bool in_single_pattern, int base_index);</div><div class='add'>+static int iseq_compile_array_deconstruct(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *deconstruct, LABEL *deconstructed, LABEL *match_failed, LABEL *type_error, bool in_single_pattern, int base_index, bool use_deconstructed_cache);</div><div class='add'>+static int iseq_compile_pattern_set_general_errmsg(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, VALUE errmsg, int base_index);</div><div class='add'>+static int iseq_compile_pattern_set_length_errmsg(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, VALUE errmsg, VALUE pattern_length, int base_index);</div><div class='add'>+static int iseq_compile_pattern_set_eqq_errmsg(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int base_index);</div><div class='add'>+</div><div class='add'>+#define CASE3_BI_OFFSET_DECONSTRUCTED_CACHE 0</div><div class='add'>+#define CASE3_BI_OFFSET_ERROR_STRING        1</div><div class='add'>+#define CASE3_BI_OFFSET_KEY_ERROR_P         2</div><div class='add'>+#define CASE3_BI_OFFSET_KEY_ERROR_MATCHEE   3</div><div class='add'>+#define CASE3_BI_OFFSET_KEY_ERROR_KEY       4</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_compile_pattern_each(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *matched, LABEL *unmatched, bool in_single_pattern, bool in_alt_pattern, int base_index, bool use_deconstructed_cache)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='add'>+</div><div class='add'>+    switch (nd_type(node)) {</div><div class='add'>+      case NODE_ARYPTN: {</div><div class='add'>+        /*</div><div class='add'>+         *   if pattern.use_rest_num?</div><div class='add'>+         *     rest_num = 0</div><div class='add'>+         *   end</div><div class='add'>+         *   if pattern.has_constant_node?</div><div class='add'>+         *     unless pattern.constant === obj</div><div class='add'>+         *       goto match_failed</div><div class='add'>+         *     end</div><div class='add'>+         *   end</div><div class='add'>+         *   unless obj.respond_to?(:deconstruct)</div><div class='add'>+         *     goto match_failed</div><div class='add'>+         *   end</div><div class='add'>+         *   d = obj.deconstruct</div><div class='add'>+         *   unless Array === d</div><div class='add'>+         *     goto type_error</div><div class='add'>+         *   end</div><div class='add'>+         *   min_argc = pattern.pre_args_num + pattern.post_args_num</div><div class='add'>+         *   if pattern.has_rest_arg?</div><div class='add'>+         *     unless d.length &gt;= min_argc</div><div class='add'>+         *       goto match_failed</div><div class='add'>+         *     end</div><div class='add'>+         *   else</div><div class='add'>+         *     unless d.length == min_argc</div><div class='add'>+         *       goto match_failed</div><div class='add'>+         *     end</div><div class='add'>+         *   end</div><div class='add'>+         *   pattern.pre_args_num.each do |i|</div><div class='add'>+         *     unless pattern.pre_args[i].match?(d[i])</div><div class='add'>+         *       goto match_failed</div><div class='add'>+         *     end</div><div class='add'>+         *   end</div><div class='add'>+         *   if pattern.use_rest_num?</div><div class='add'>+         *     rest_num = d.length - min_argc</div><div class='add'>+         *     if pattern.has_rest_arg? &amp;&amp; pattern.has_rest_arg_id # not `*`, but `*rest`</div><div class='add'>+         *       unless pattern.rest_arg.match?(d[pattern.pre_args_num, rest_num])</div><div class='add'>+         *         goto match_failed</div><div class='add'>+         *       end</div><div class='add'>+         *     end</div><div class='add'>+         *   end</div><div class='add'>+         *   pattern.post_args_num.each do |i|</div><div class='add'>+         *     j = pattern.pre_args_num + i</div><div class='add'>+         *     j += rest_num</div><div class='add'>+         *     unless pattern.post_args[i].match?(d[j])</div><div class='add'>+         *       goto match_failed</div><div class='add'>+         *     end</div><div class='add'>+         *   end</div><div class='add'>+         *   goto matched</div><div class='add'>+         * type_error:</div><div class='add'>+         *   FrozenCore.raise TypeError</div><div class='add'>+         * match_failed:</div><div class='add'>+         *   goto unmatched</div><div class='add'>+         */</div><div class='add'>+        struct rb_ary_pattern_info *apinfo = node-&gt;nd_apinfo;</div><div class='add'>+        const NODE *args = apinfo-&gt;pre_args;</div><div class='add'>+        const int pre_args_num = apinfo-&gt;pre_args ? rb_long2int(apinfo-&gt;pre_args-&gt;nd_alen) : 0;</div><div class='add'>+        const int post_args_num = apinfo-&gt;post_args ? rb_long2int(apinfo-&gt;post_args-&gt;nd_alen) : 0;</div><div class='add'>+</div><div class='add'>+        const int min_argc = pre_args_num + post_args_num;</div><div class='add'>+        const int use_rest_num = apinfo-&gt;rest_arg &amp;&amp; (NODE_NAMED_REST_P(apinfo-&gt;rest_arg) ||</div><div class='add'>+                                                      (!NODE_NAMED_REST_P(apinfo-&gt;rest_arg) &amp;&amp; post_args_num &gt; 0));</div><div class='add'>+</div><div class='add'>+        LABEL *match_failed, *type_error, *deconstruct, *deconstructed;</div><div class='add'>+        int i;</div><div class='add'>+        match_failed = NEW_LABEL(line);</div><div class='add'>+        type_error = NEW_LABEL(line);</div><div class='add'>+        deconstruct = NEW_LABEL(line);</div><div class='add'>+        deconstructed = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+        if (use_rest_num) {</div><div class='add'>+            ADD_INSN1(ret, line_node, putobject, INT2FIX(0)); /* allocate stack for rest_num */</div><div class='add'>+            ADD_INSN(ret, line_node, swap);</div><div class='add'>+            if (base_index) {</div><div class='add'>+                base_index++;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        CHECK(iseq_compile_pattern_constant(iseq, ret, node, match_failed, in_single_pattern, base_index));</div><div class='add'>+</div><div class='add'>+        CHECK(iseq_compile_array_deconstruct(iseq, ret, node, deconstruct, deconstructed, match_failed, type_error, in_single_pattern, base_index, use_deconstructed_cache));</div><div class='add'>+</div><div class='add'>+        ADD_INSN(ret, line_node, dup);</div><div class='add'>+        ADD_SEND(ret, line_node, idLength, INT2FIX(0));</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, INT2FIX(min_argc));</div><div class='add'>+        ADD_SEND(ret, line_node, apinfo-&gt;rest_arg ? idGE : idEq, INT2FIX(1)); // (1)</div><div class='add'>+        if (in_single_pattern) {</div><div class='add'>+            CHECK(iseq_compile_pattern_set_length_errmsg(iseq, ret, node,</div><div class='add'>+                                                         apinfo-&gt;rest_arg ? rb_fstring_lit("%p length mismatch (given %p, expected %p+)") :</div><div class='add'>+                                                                            rb_fstring_lit("%p length mismatch (given %p, expected %p)"),</div><div class='add'>+                                                         INT2FIX(min_argc), base_index + 1 /* (1) */));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(ret, line_node, branchunless, match_failed);</div><div class='add'>+</div><div class='add'>+        for (i = 0; i &lt; pre_args_num; i++) {</div><div class='add'>+            ADD_INSN(ret, line_node, dup);</div><div class='add'>+            ADD_INSN1(ret, line_node, putobject, INT2FIX(i));</div><div class='add'>+            ADD_SEND(ret, line_node, idAREF, INT2FIX(1)); // (2)</div><div class='add'>+            CHECK(iseq_compile_pattern_match(iseq, ret, args-&gt;nd_head, match_failed, in_single_pattern, in_alt_pattern, base_index + 1 /* (2) */, false));</div><div class='add'>+            args = args-&gt;nd_next;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='add'>+        if (apinfo-&gt;rest_arg) {</div><div class='add'>+            if (NODE_NAMED_REST_P(apinfo-&gt;rest_arg)) {</div><div class='add'>+                ADD_INSN(ret, line_node, dup);</div><div class='add'>+                ADD_INSN1(ret, line_node, putobject, INT2FIX(pre_args_num));</div><div class='add'>+                ADD_INSN1(ret, line_node, topn, INT2FIX(1));</div><div class='add'>+                ADD_SEND(ret, line_node, idLength, INT2FIX(0));</div><div class='add'>+                ADD_INSN1(ret, line_node, putobject, INT2FIX(min_argc));</div><div class='add'>+                ADD_SEND(ret, line_node, idMINUS, INT2FIX(1));</div><div class='add'>+                ADD_INSN1(ret, line_node, setn, INT2FIX(4));</div><div class='add'>+                ADD_SEND(ret, line_node, idAREF, INT2FIX(2)); // (3)</div><div class='add'>+</div><div class='add'>+                CHECK(iseq_compile_pattern_match(iseq, ret, apinfo-&gt;rest_arg, match_failed, in_single_pattern, in_alt_pattern, base_index + 1 /* (3) */, false));</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                if (post_args_num &gt; 0) {</div><div class='add'>+                    ADD_INSN(ret, line_node, dup);</div><div class='add'>+                    ADD_SEND(ret, line_node, idLength, INT2FIX(0));</div><div class='add'>+                    ADD_INSN1(ret, line_node, putobject, INT2FIX(min_argc));</div><div class='add'>+                    ADD_SEND(ret, line_node, idMINUS, INT2FIX(1));</div><div class='add'>+                    ADD_INSN1(ret, line_node, setn, INT2FIX(2));</div><div class='add'>+                    ADD_INSN(ret, line_node, pop);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        args = apinfo-&gt;post_args;</div><div class='add'>+        for (i = 0; i &lt; post_args_num; i++) {</div><div class='add'>+            ADD_INSN(ret, line_node, dup);</div><div class='add'>+</div><div class='add'>+            ADD_INSN1(ret, line_node, putobject, INT2FIX(pre_args_num + i));</div><div class='add'>+            ADD_INSN1(ret, line_node, topn, INT2FIX(3));</div><div class='add'>+            ADD_SEND(ret, line_node, idPLUS, INT2FIX(1));</div><div class='add'>+</div><div class='add'>+            ADD_SEND(ret, line_node, idAREF, INT2FIX(1)); // (4)</div><div class='add'>+            CHECK(iseq_compile_pattern_match(iseq, ret, args-&gt;nd_head, match_failed, in_single_pattern, in_alt_pattern, base_index + 1 /* (4) */, false));</div><div class='add'>+            args = args-&gt;nd_next;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+        if (use_rest_num) {</div><div class='add'>+            ADD_INSN(ret, line_node, pop);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, matched);</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        if (use_rest_num) {</div><div class='add'>+            ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ADD_LABEL(ret, type_error);</div><div class='add'>+        ADD_INSN1(ret, line_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, rb_eTypeError);</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, rb_fstring_lit("deconstruct must return Array"));</div><div class='add'>+        ADD_SEND(ret, line_node, id_core_raise, INT2FIX(2));</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+</div><div class='add'>+        ADD_LABEL(ret, match_failed);</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+        if (use_rest_num) {</div><div class='add'>+            ADD_INSN(ret, line_node, pop);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, unmatched);</div><div class='add'>+</div><div class='add'>+        break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_FNDPTN: {</div><div class='add'>+        /*</div><div class='add'>+         *   if pattern.has_constant_node?</div><div class='add'>+         *     unless pattern.constant === obj</div><div class='add'>+         *       goto match_failed</div><div class='add'>+         *     end</div><div class='add'>+         *   end</div><div class='add'>+         *   unless obj.respond_to?(:deconstruct)</div><div class='add'>+         *     goto match_failed</div><div class='add'>+         *   end</div><div class='add'>+         *   d = obj.deconstruct</div><div class='add'>+         *   unless Array === d</div><div class='add'>+         *     goto type_error</div><div class='add'>+         *   end</div><div class='add'>+         *   unless d.length &gt;= pattern.args_num</div><div class='add'>+         *     goto match_failed</div><div class='add'>+         *   end</div><div class='add'>+         *</div><div class='add'>+         *   begin</div><div class='add'>+         *     len = d.length</div><div class='add'>+         *     limit = d.length - pattern.args_num</div><div class='add'>+         *     i = 0</div><div class='add'>+         *     while i &lt;= limit</div><div class='add'>+         *       if pattern.args_num.times.all? {|j| pattern.args[j].match?(d[i+j]) }</div><div class='add'>+         *         if pattern.has_pre_rest_arg_id</div><div class='add'>+         *           unless pattern.pre_rest_arg.match?(d[0, i])</div><div class='add'>+         *             goto find_failed</div><div class='add'>+         *           end</div><div class='add'>+         *         end</div><div class='add'>+         *         if pattern.has_post_rest_arg_id</div><div class='add'>+         *           unless pattern.post_rest_arg.match?(d[i+pattern.args_num, len])</div><div class='add'>+         *             goto find_failed</div><div class='add'>+         *           end</div><div class='add'>+         *         end</div><div class='add'>+         *         goto find_succeeded</div><div class='add'>+         *       end</div><div class='add'>+         *       i+=1</div><div class='add'>+         *     end</div><div class='add'>+         *   find_failed:</div><div class='add'>+         *     goto match_failed</div><div class='add'>+         *   find_succeeded:</div><div class='add'>+         *   end</div><div class='add'>+         *</div><div class='add'>+         *   goto matched</div><div class='add'>+         * type_error:</div><div class='add'>+         *   FrozenCore.raise TypeError</div><div class='add'>+         * match_failed:</div><div class='add'>+         *   goto unmatched</div><div class='add'>+         */</div><div class='add'>+        struct rb_fnd_pattern_info *fpinfo = node-&gt;nd_fpinfo;</div><div class='add'>+        const NODE *args = fpinfo-&gt;args;</div><div class='add'>+        const int args_num = fpinfo-&gt;args ? rb_long2int(fpinfo-&gt;args-&gt;nd_alen) : 0;</div><div class='add'>+</div><div class='add'>+        LABEL *match_failed, *type_error, *deconstruct, *deconstructed;</div><div class='add'>+        match_failed = NEW_LABEL(line);</div><div class='add'>+        type_error = NEW_LABEL(line);</div><div class='add'>+        deconstruct = NEW_LABEL(line);</div><div class='add'>+        deconstructed = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+        CHECK(iseq_compile_pattern_constant(iseq, ret, node, match_failed, in_single_pattern, base_index));</div><div class='add'>+</div><div class='add'>+        CHECK(iseq_compile_array_deconstruct(iseq, ret, node, deconstruct, deconstructed, match_failed, type_error, in_single_pattern, base_index, use_deconstructed_cache));</div><div class='add'>+</div><div class='add'>+        ADD_INSN(ret, line_node, dup);</div><div class='add'>+        ADD_SEND(ret, line_node, idLength, INT2FIX(0));</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, INT2FIX(args_num));</div><div class='add'>+        ADD_SEND(ret, line_node, idGE, INT2FIX(1)); // (1)</div><div class='add'>+        if (in_single_pattern) {</div><div class='add'>+            CHECK(iseq_compile_pattern_set_length_errmsg(iseq, ret, node, rb_fstring_lit("%p length mismatch (given %p, expected %p+)"), INT2FIX(args_num), base_index + 1 /* (1) */));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(ret, line_node, branchunless, match_failed);</div><div class='add'>+</div><div class='add'>+        {</div><div class='add'>+            LABEL *while_begin = NEW_LABEL(nd_line(node));</div><div class='add'>+            LABEL *next_loop = NEW_LABEL(nd_line(node));</div><div class='add'>+            LABEL *find_succeeded = NEW_LABEL(line);</div><div class='add'>+            LABEL *find_failed = NEW_LABEL(nd_line(node));</div><div class='add'>+            int j;</div><div class='add'>+</div><div class='add'>+            ADD_INSN(ret, line_node, dup); /* allocate stack for len */</div><div class='add'>+            ADD_SEND(ret, line_node, idLength, INT2FIX(0)); // (2)</div><div class='add'>+</div><div class='add'>+            ADD_INSN(ret, line_node, dup); /* allocate stack for limit */</div><div class='add'>+            ADD_INSN1(ret, line_node, putobject, INT2FIX(args_num));</div><div class='add'>+            ADD_SEND(ret, line_node, idMINUS, INT2FIX(1)); // (3)</div><div class='add'>+</div><div class='add'>+            ADD_INSN1(ret, line_node, putobject, INT2FIX(0)); /* allocate stack for i */ // (4)</div><div class='add'>+</div><div class='add'>+            ADD_LABEL(ret, while_begin);</div><div class='add'>+</div><div class='add'>+            ADD_INSN(ret, line_node, dup);</div><div class='add'>+            ADD_INSN1(ret, line_node, topn, INT2FIX(2));</div><div class='add'>+            ADD_SEND(ret, line_node, idLE, INT2FIX(1));</div><div class='add'>+            ADD_INSNL(ret, line_node, branchunless, find_failed);</div><div class='add'>+</div><div class='add'>+            for (j = 0; j &lt; args_num; j++) {</div><div class='add'>+                ADD_INSN1(ret, line_node, topn, INT2FIX(3));</div><div class='add'>+                ADD_INSN1(ret, line_node, topn, INT2FIX(1));</div><div class='add'>+                if (j != 0) {</div><div class='add'>+                    ADD_INSN1(ret, line_node, putobject, INT2FIX(j));</div><div class='add'>+                    ADD_SEND(ret, line_node, idPLUS, INT2FIX(1));</div><div class='add'>+                }</div><div class='add'>+                ADD_SEND(ret, line_node, idAREF, INT2FIX(1)); // (5)</div><div class='add'>+</div><div class='add'>+                CHECK(iseq_compile_pattern_match(iseq, ret, args-&gt;nd_head, next_loop, in_single_pattern, in_alt_pattern, base_index + 4 /* (2), (3), (4), (5) */, false));</div><div class='add'>+                args = args-&gt;nd_next;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (NODE_NAMED_REST_P(fpinfo-&gt;pre_rest_arg)) {</div><div class='add'>+                ADD_INSN1(ret, line_node, topn, INT2FIX(3));</div><div class='add'>+                ADD_INSN1(ret, line_node, putobject, INT2FIX(0));</div><div class='add'>+                ADD_INSN1(ret, line_node, topn, INT2FIX(2));</div><div class='add'>+                ADD_SEND(ret, line_node, idAREF, INT2FIX(2)); // (6)</div><div class='add'>+                CHECK(iseq_compile_pattern_match(iseq, ret, fpinfo-&gt;pre_rest_arg, find_failed, in_single_pattern, in_alt_pattern, base_index + 4 /* (2), (3), (4), (6) */, false));</div><div class='add'>+            }</div><div class='add'>+            if (NODE_NAMED_REST_P(fpinfo-&gt;post_rest_arg)) {</div><div class='add'>+                ADD_INSN1(ret, line_node, topn, INT2FIX(3));</div><div class='add'>+                ADD_INSN1(ret, line_node, topn, INT2FIX(1));</div><div class='add'>+                ADD_INSN1(ret, line_node, putobject, INT2FIX(args_num));</div><div class='add'>+                ADD_SEND(ret, line_node, idPLUS, INT2FIX(1));</div><div class='add'>+                ADD_INSN1(ret, line_node, topn, INT2FIX(3));</div><div class='add'>+                ADD_SEND(ret, line_node, idAREF, INT2FIX(2)); // (7)</div><div class='add'>+                CHECK(iseq_compile_pattern_match(iseq, ret, fpinfo-&gt;post_rest_arg, find_failed, in_single_pattern, in_alt_pattern, base_index + 4 /* (2), (3),(4), (7) */, false));</div><div class='add'>+            }</div><div class='add'>+            ADD_INSNL(ret, line_node, jump, find_succeeded);</div><div class='add'>+</div><div class='add'>+            ADD_LABEL(ret, next_loop);</div><div class='add'>+            ADD_INSN1(ret, line_node, putobject, INT2FIX(1));</div><div class='add'>+            ADD_SEND(ret, line_node, idPLUS, INT2FIX(1));</div><div class='add'>+            ADD_INSNL(ret, line_node, jump, while_begin);</div><div class='add'>+</div><div class='add'>+            ADD_LABEL(ret, find_failed);</div><div class='add'>+            ADD_INSN1(ret, line_node, adjuststack, INT2FIX(3));</div><div class='add'>+            if (in_single_pattern) {</div><div class='add'>+                ADD_INSN1(ret, line_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+                ADD_INSN1(ret, line_node, putobject, rb_fstring_lit("%p does not match to find pattern"));</div><div class='add'>+                ADD_INSN1(ret, line_node, topn, INT2FIX(2));</div><div class='add'>+                ADD_SEND(ret, line_node, id_core_sprintf, INT2FIX(2)); // (8)</div><div class='add'>+                ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_ERROR_STRING + 1 /* (8) */)); // (9)</div><div class='add'>+</div><div class='add'>+                ADD_INSN1(ret, line_node, putobject, Qfalse);</div><div class='add'>+                ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_KEY_ERROR_P + 2 /* (8), (9) */));</div><div class='add'>+</div><div class='add'>+                ADD_INSN(ret, line_node, pop);</div><div class='add'>+                ADD_INSN(ret, line_node, pop);</div><div class='add'>+            }</div><div class='add'>+            ADD_INSNL(ret, line_node, jump, match_failed);</div><div class='add'>+            ADD_INSN1(ret, line_node, dupn, INT2FIX(3));</div><div class='add'>+</div><div class='add'>+            ADD_LABEL(ret, find_succeeded);</div><div class='add'>+            ADD_INSN1(ret, line_node, adjuststack, INT2FIX(3));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, matched);</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+</div><div class='add'>+        ADD_LABEL(ret, type_error);</div><div class='add'>+        ADD_INSN1(ret, line_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, rb_eTypeError);</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, rb_fstring_lit("deconstruct must return Array"));</div><div class='add'>+        ADD_SEND(ret, line_node, id_core_raise, INT2FIX(2));</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+</div><div class='add'>+        ADD_LABEL(ret, match_failed);</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, unmatched);</div><div class='add'>+</div><div class='add'>+        break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_HSHPTN: {</div><div class='add'>+        /*</div><div class='add'>+         *   keys = nil</div><div class='add'>+         *   if pattern.has_kw_args_node? &amp;&amp; !pattern.has_kw_rest_arg_node?</div><div class='add'>+         *     keys = pattern.kw_args_node.keys</div><div class='add'>+         *   end</div><div class='add'>+         *   if pattern.has_constant_node?</div><div class='add'>+         *     unless pattern.constant === obj</div><div class='add'>+         *       goto match_failed</div><div class='add'>+         *     end</div><div class='add'>+         *   end</div><div class='add'>+         *   unless obj.respond_to?(:deconstruct_keys)</div><div class='add'>+         *     goto match_failed</div><div class='add'>+         *   end</div><div class='add'>+         *   d = obj.deconstruct_keys(keys)</div><div class='add'>+         *   unless Hash === d</div><div class='add'>+         *     goto type_error</div><div class='add'>+         *   end</div><div class='add'>+         *   if pattern.has_kw_rest_arg_node?</div><div class='add'>+         *     d = d.dup</div><div class='add'>+         *   end</div><div class='add'>+         *   if pattern.has_kw_args_node?</div><div class='add'>+         *     pattern.kw_args_node.each |k,|</div><div class='add'>+         *       unless d.key?(k)</div><div class='add'>+         *         goto match_failed</div><div class='add'>+         *       end</div><div class='add'>+         *     end</div><div class='add'>+         *     pattern.kw_args_node.each |k, pat|</div><div class='add'>+         *       if pattern.has_kw_rest_arg_node?</div><div class='add'>+         *         unless pat.match?(d.delete(k))</div><div class='add'>+         *           goto match_failed</div><div class='add'>+         *         end</div><div class='add'>+         *       else</div><div class='add'>+         *         unless pat.match?(d[k])</div><div class='add'>+         *           goto match_failed</div><div class='add'>+         *         end</div><div class='add'>+         *       end</div><div class='add'>+         *     end</div><div class='add'>+         *   else</div><div class='add'>+         *     unless d.empty?</div><div class='add'>+         *       goto match_failed</div><div class='add'>+         *     end</div><div class='add'>+         *   end</div><div class='add'>+         *   if pattern.has_kw_rest_arg_node?</div><div class='add'>+         *     if pattern.no_rest_keyword?</div><div class='add'>+         *       unless d.empty?</div><div class='add'>+         *         goto match_failed</div><div class='add'>+         *       end</div><div class='add'>+         *     else</div><div class='add'>+         *       unless pattern.kw_rest_arg_node.match?(d)</div><div class='add'>+         *         goto match_failed</div><div class='add'>+         *       end</div><div class='add'>+         *     end</div><div class='add'>+         *   end</div><div class='add'>+         *   goto matched</div><div class='add'>+         * type_error:</div><div class='add'>+         *   FrozenCore.raise TypeError</div><div class='add'>+         * match_failed:</div><div class='add'>+         *   goto unmatched</div><div class='add'>+         */</div><div class='add'>+        LABEL *match_failed, *type_error;</div><div class='add'>+        VALUE keys = Qnil;</div><div class='add'>+</div><div class='add'>+        match_failed = NEW_LABEL(line);</div><div class='add'>+        type_error = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+        if (node-&gt;nd_pkwargs &amp;&amp; !node-&gt;nd_pkwrestarg) {</div><div class='add'>+            const NODE *kw_args = node-&gt;nd_pkwargs-&gt;nd_head;</div><div class='add'>+            keys = rb_ary_new_capa(kw_args ? kw_args-&gt;nd_alen/2 : 0);</div><div class='add'>+            while (kw_args) {</div><div class='add'>+                rb_ary_push(keys, kw_args-&gt;nd_head-&gt;nd_lit);</div><div class='add'>+                kw_args = kw_args-&gt;nd_next-&gt;nd_next;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        CHECK(iseq_compile_pattern_constant(iseq, ret, node, match_failed, in_single_pattern, base_index));</div><div class='add'>+</div><div class='add'>+        ADD_INSN(ret, line_node, dup);</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, ID2SYM(rb_intern("deconstruct_keys")));</div><div class='add'>+        ADD_SEND(ret, line_node, idRespond_to, INT2FIX(1)); // (1)</div><div class='add'>+        if (in_single_pattern) {</div><div class='add'>+            CHECK(iseq_compile_pattern_set_general_errmsg(iseq, ret, node, rb_fstring_lit("%p does not respond to #deconstruct_keys"), base_index + 1 /* (1) */));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(ret, line_node, branchunless, match_failed);</div><div class='add'>+</div><div class='add'>+        if (NIL_P(keys)) {</div><div class='add'>+            ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN1(ret, line_node, duparray, keys);</div><div class='add'>+            RB_OBJ_WRITTEN(iseq, Qundef, rb_obj_hide(keys));</div><div class='add'>+        }</div><div class='add'>+        ADD_SEND(ret, line_node, rb_intern("deconstruct_keys"), INT2FIX(1)); // (2)</div><div class='add'>+</div><div class='add'>+        ADD_INSN(ret, line_node, dup);</div><div class='add'>+        ADD_INSN1(ret, line_node, checktype, INT2FIX(T_HASH));</div><div class='add'>+        ADD_INSNL(ret, line_node, branchunless, type_error);</div><div class='add'>+</div><div class='add'>+        if (node-&gt;nd_pkwrestarg) {</div><div class='add'>+            ADD_SEND(ret, line_node, rb_intern("dup"), INT2FIX(0));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (node-&gt;nd_pkwargs) {</div><div class='add'>+            int i;</div><div class='add'>+            int keys_num;</div><div class='add'>+            const NODE *args;</div><div class='add'>+            args = node-&gt;nd_pkwargs-&gt;nd_head;</div><div class='add'>+            if (args) {</div><div class='add'>+                DECL_ANCHOR(match_values);</div><div class='add'>+                INIT_ANCHOR(match_values);</div><div class='add'>+                keys_num = rb_long2int(args-&gt;nd_alen) / 2;</div><div class='add'>+                for (i = 0; i &lt; keys_num; i++) {</div><div class='add'>+                    NODE *key_node = args-&gt;nd_head;</div><div class='add'>+                    NODE *value_node = args-&gt;nd_next-&gt;nd_head;</div><div class='add'>+                    VALUE key;</div><div class='add'>+</div><div class='add'>+                    if (!nd_type_p(key_node, NODE_LIT)) {</div><div class='add'>+                        UNKNOWN_NODE("NODE_IN", key_node, COMPILE_NG);</div><div class='add'>+                    }</div><div class='add'>+                    key = key_node-&gt;nd_lit;</div><div class='add'>+</div><div class='add'>+                    ADD_INSN(ret, line_node, dup);</div><div class='add'>+                    ADD_INSN1(ret, line_node, putobject, key);</div><div class='add'>+                    ADD_SEND(ret, line_node, rb_intern("key?"), INT2FIX(1)); // (3)</div><div class='add'>+                    if (in_single_pattern) {</div><div class='add'>+                        LABEL *match_succeeded;</div><div class='add'>+                        match_succeeded = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+                        ADD_INSN(ret, line_node, dup);</div><div class='add'>+                        ADD_INSNL(ret, line_node, branchif, match_succeeded);</div><div class='add'>+</div><div class='add'>+                        ADD_INSN1(ret, line_node, putobject, rb_str_freeze(rb_sprintf("key not found: %+"PRIsVALUE, key))); // (4)</div><div class='add'>+                        ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_ERROR_STRING + 2 /* (3), (4) */));</div><div class='add'>+                        ADD_INSN1(ret, line_node, putobject, Qtrue); // (5)</div><div class='add'>+                        ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_KEY_ERROR_P + 3 /* (3), (4), (5) */));</div><div class='add'>+                        ADD_INSN1(ret, line_node, topn, INT2FIX(3)); // (6)</div><div class='add'>+                        ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_KEY_ERROR_MATCHEE + 4 /* (3), (4), (5), (6) */));</div><div class='add'>+                        ADD_INSN1(ret, line_node, putobject, key); // (7)</div><div class='add'>+                        ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_KEY_ERROR_KEY + 5 /* (3), (4), (5), (6), (7) */));</div><div class='add'>+</div><div class='add'>+                        ADD_INSN1(ret, line_node, adjuststack, INT2FIX(4));</div><div class='add'>+</div><div class='add'>+                        ADD_LABEL(ret, match_succeeded);</div><div class='add'>+                    }</div><div class='add'>+                    ADD_INSNL(ret, line_node, branchunless, match_failed);</div><div class='add'>+</div><div class='add'>+                    ADD_INSN(match_values, line_node, dup);</div><div class='add'>+                    ADD_INSN1(match_values, line_node, putobject, key);</div><div class='add'>+                    ADD_SEND(match_values, line_node, node-&gt;nd_pkwrestarg ? rb_intern("delete") : idAREF, INT2FIX(1)); // (8)</div><div class='add'>+                    CHECK(iseq_compile_pattern_match(iseq, match_values, value_node, match_failed, in_single_pattern, in_alt_pattern, base_index + 1 /* (8) */, false));</div><div class='add'>+                    args = args-&gt;nd_next-&gt;nd_next;</div><div class='add'>+                }</div><div class='add'>+                ADD_SEQ(ret, match_values);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN(ret, line_node, dup);</div><div class='add'>+            ADD_SEND(ret, line_node, idEmptyP, INT2FIX(0)); // (9)</div><div class='add'>+            if (in_single_pattern) {</div><div class='add'>+                CHECK(iseq_compile_pattern_set_general_errmsg(iseq, ret, node, rb_fstring_lit("%p is not empty"), base_index + 1 /* (9) */));</div><div class='add'>+            }</div><div class='add'>+            ADD_INSNL(ret, line_node, branchunless, match_failed);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (node-&gt;nd_pkwrestarg) {</div><div class='add'>+            if (node-&gt;nd_pkwrestarg == NODE_SPECIAL_NO_REST_KEYWORD) {</div><div class='add'>+                ADD_INSN(ret, line_node, dup);</div><div class='add'>+                ADD_SEND(ret, line_node, idEmptyP, INT2FIX(0)); // (10)</div><div class='add'>+                if (in_single_pattern) {</div><div class='add'>+                    CHECK(iseq_compile_pattern_set_general_errmsg(iseq, ret, node, rb_fstring_lit("rest of %p is not empty"), base_index + 1 /* (10) */));</div><div class='add'>+                }</div><div class='add'>+                ADD_INSNL(ret, line_node, branchunless, match_failed);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ADD_INSN(ret, line_node, dup); // (11)</div><div class='add'>+                CHECK(iseq_compile_pattern_match(iseq, ret, node-&gt;nd_pkwrestarg, match_failed, in_single_pattern, in_alt_pattern, base_index + 1 /* (11) */, false));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, matched);</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+</div><div class='add'>+        ADD_LABEL(ret, type_error);</div><div class='add'>+        ADD_INSN1(ret, line_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, rb_eTypeError);</div><div class='add'>+        ADD_INSN1(ret, line_node, putobject, rb_fstring_lit("deconstruct_keys must return Hash"));</div><div class='add'>+        ADD_SEND(ret, line_node, id_core_raise, INT2FIX(2));</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+</div><div class='add'>+        ADD_LABEL(ret, match_failed);</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, unmatched);</div><div class='add'>+        break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_LIT:</div><div class='add'>+      case NODE_STR:</div><div class='add'>+      case NODE_XSTR:</div><div class='add'>+      case NODE_DSTR:</div><div class='add'>+      case NODE_DSYM:</div><div class='add'>+      case NODE_DREGX:</div><div class='add'>+      case NODE_LIST:</div><div class='add'>+      case NODE_ZLIST:</div><div class='add'>+      case NODE_LAMBDA:</div><div class='add'>+      case NODE_DOT2:</div><div class='add'>+      case NODE_DOT3:</div><div class='add'>+      case NODE_CONST:</div><div class='add'>+      case NODE_LVAR:</div><div class='add'>+      case NODE_DVAR:</div><div class='add'>+      case NODE_IVAR:</div><div class='add'>+      case NODE_CVAR:</div><div class='add'>+      case NODE_GVAR:</div><div class='add'>+      case NODE_TRUE:</div><div class='add'>+      case NODE_FALSE:</div><div class='add'>+      case NODE_SELF:</div><div class='add'>+      case NODE_NIL:</div><div class='add'>+      case NODE_COLON2:</div><div class='add'>+      case NODE_COLON3:</div><div class='add'>+      case NODE_BEGIN:</div><div class='add'>+        CHECK(COMPILE(ret, "case in literal", node)); // (1)</div><div class='add'>+        if (in_single_pattern) {</div><div class='add'>+            ADD_INSN1(ret, line_node, dupn, INT2FIX(2));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN1(ret, line_node, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE)); // (2)</div><div class='add'>+        if (in_single_pattern) {</div><div class='add'>+            CHECK(iseq_compile_pattern_set_eqq_errmsg(iseq, ret, node, base_index + 2 /* (1), (2) */));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(ret, line_node, branchif, matched);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, unmatched);</div><div class='add'>+        break;</div><div class='add'>+      case NODE_LASGN: {</div><div class='add'>+        struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='add'>+        ID id = node-&gt;nd_vid;</div><div class='add'>+        int idx = ISEQ_BODY(body-&gt;local_iseq)-&gt;local_table_size - get_local_var_idx(iseq, id);</div><div class='add'>+</div><div class='add'>+        if (in_alt_pattern) {</div><div class='add'>+            const char *name = rb_id2name(id);</div><div class='add'>+            if (name &amp;&amp; strlen(name) &gt; 0 &amp;&amp; name[0] != '_') {</div><div class='add'>+                COMPILE_ERROR(ERROR_ARGS "illegal variable in alternative pattern (%"PRIsVALUE")",</div><div class='add'>+                              rb_id2str(id));</div><div class='add'>+                return COMPILE_NG;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ADD_SETLOCAL(ret, line_node, idx, get_lvar_level(iseq));</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, matched);</div><div class='add'>+        break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DASGN: {</div><div class='add'>+        int idx, lv, ls;</div><div class='add'>+        ID id = node-&gt;nd_vid;</div><div class='add'>+</div><div class='add'>+        idx = get_dyna_var_idx(iseq, id, &amp;lv, &amp;ls);</div><div class='add'>+</div><div class='add'>+        if (in_alt_pattern) {</div><div class='add'>+            const char *name = rb_id2name(id);</div><div class='add'>+            if (name &amp;&amp; strlen(name) &gt; 0 &amp;&amp; name[0] != '_') {</div><div class='add'>+                COMPILE_ERROR(ERROR_ARGS "illegal variable in alternative pattern (%"PRIsVALUE")",</div><div class='add'>+                              rb_id2str(id));</div><div class='add'>+                return COMPILE_NG;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (idx &lt; 0) {</div><div class='add'>+            COMPILE_ERROR(ERROR_ARGS "NODE_DASGN: unknown id (%"PRIsVALUE")",</div><div class='add'>+                          rb_id2str(id));</div><div class='add'>+            return COMPILE_NG;</div><div class='add'>+        }</div><div class='add'>+        ADD_SETLOCAL(ret, line_node, ls - idx, lv);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, matched);</div><div class='add'>+        break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_IF:</div><div class='add'>+      case NODE_UNLESS: {</div><div class='add'>+        LABEL *match_failed;</div><div class='add'>+        match_failed = unmatched;</div><div class='add'>+        CHECK(iseq_compile_pattern_match(iseq, ret, node-&gt;nd_body, unmatched, in_single_pattern, in_alt_pattern, base_index, use_deconstructed_cache));</div><div class='add'>+        CHECK(COMPILE(ret, "case in if", node-&gt;nd_cond));</div><div class='add'>+        if (in_single_pattern) {</div><div class='add'>+            LABEL *match_succeeded;</div><div class='add'>+            match_succeeded = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+            ADD_INSN(ret, line_node, dup);</div><div class='add'>+            if (nd_type_p(node, NODE_IF)) {</div><div class='add'>+                ADD_INSNL(ret, line_node, branchif, match_succeeded);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ADD_INSNL(ret, line_node, branchunless, match_succeeded);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            ADD_INSN1(ret, line_node, putobject, rb_fstring_lit("guard clause does not return true")); // (1)</div><div class='add'>+            ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_ERROR_STRING + 1 /* (1) */)); // (2)</div><div class='add'>+            ADD_INSN1(ret, line_node, putobject, Qfalse);</div><div class='add'>+            ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_KEY_ERROR_P + 2 /* (1), (2) */));</div><div class='add'>+</div><div class='add'>+            ADD_INSN(ret, line_node, pop);</div><div class='add'>+            ADD_INSN(ret, line_node, pop);</div><div class='add'>+</div><div class='add'>+            ADD_LABEL(ret, match_succeeded);</div><div class='add'>+        }</div><div class='add'>+        if (nd_type_p(node, NODE_IF)) {</div><div class='add'>+            ADD_INSNL(ret, line_node, branchunless, match_failed);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSNL(ret, line_node, branchif, match_failed);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, matched);</div><div class='add'>+        break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_HASH: {</div><div class='add'>+        NODE *n;</div><div class='add'>+        LABEL *match_failed;</div><div class='add'>+        match_failed = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+        n = node-&gt;nd_head;</div><div class='add'>+        if (! (nd_type_p(n, NODE_LIST) &amp;&amp; n-&gt;nd_alen == 2)) {</div><div class='add'>+            COMPILE_ERROR(ERROR_ARGS "unexpected node");</div><div class='add'>+            return COMPILE_NG;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ADD_INSN(ret, line_node, dup); // (1)</div><div class='add'>+        CHECK(iseq_compile_pattern_match(iseq, ret, n-&gt;nd_head, match_failed, in_single_pattern, in_alt_pattern, base_index + 1 /* (1) */, use_deconstructed_cache));</div><div class='add'>+        CHECK(iseq_compile_pattern_each(iseq, ret, n-&gt;nd_next-&gt;nd_head, matched, match_failed, in_single_pattern, in_alt_pattern, base_index, false));</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+</div><div class='add'>+        ADD_LABEL(ret, match_failed);</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, unmatched);</div><div class='add'>+        break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_OR: {</div><div class='add'>+        LABEL *match_succeeded, *fin;</div><div class='add'>+        match_succeeded = NEW_LABEL(line);</div><div class='add'>+        fin = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+        ADD_INSN(ret, line_node, dup); // (1)</div><div class='add'>+        CHECK(iseq_compile_pattern_each(iseq, ret, node-&gt;nd_1st, match_succeeded, fin, in_single_pattern, true, base_index + 1 /* (1) */, use_deconstructed_cache));</div><div class='add'>+        ADD_LABEL(ret, match_succeeded);</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, matched);</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        ADD_LABEL(ret, fin);</div><div class='add'>+        CHECK(iseq_compile_pattern_each(iseq, ret, node-&gt;nd_2nd, matched, unmatched, in_single_pattern, true, base_index, use_deconstructed_cache));</div><div class='add'>+        break;</div><div class='add'>+      }</div><div class='add'>+      default:</div><div class='add'>+        UNKNOWN_NODE("NODE_IN", node, COMPILE_NG);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_compile_pattern_match(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *unmatched, bool in_single_pattern, bool in_alt_pattern, int base_index, bool use_deconstructed_cache)</div><div class='add'>+{</div><div class='add'>+    LABEL *fin = NEW_LABEL(nd_line(node));</div><div class='add'>+    CHECK(iseq_compile_pattern_each(iseq, ret, node, fin, unmatched, in_single_pattern, in_alt_pattern, base_index, use_deconstructed_cache));</div><div class='add'>+    ADD_LABEL(ret, fin);</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_compile_pattern_constant(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *match_failed, bool in_single_pattern, int base_index)</div><div class='add'>+{</div><div class='add'>+    const NODE *line_node = node;</div><div class='add'>+</div><div class='add'>+    if (node-&gt;nd_pconst) {</div><div class='add'>+        ADD_INSN(ret, line_node, dup); // (1)</div><div class='add'>+        CHECK(COMPILE(ret, "constant", node-&gt;nd_pconst)); // (2)</div><div class='add'>+        if (in_single_pattern) {</div><div class='add'>+            ADD_INSN1(ret, line_node, dupn, INT2FIX(2));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN1(ret, line_node, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_CASE)); // (3)</div><div class='add'>+        if (in_single_pattern) {</div><div class='add'>+            CHECK(iseq_compile_pattern_set_eqq_errmsg(iseq, ret, node, base_index + 3 /* (1), (2), (3) */));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(ret, line_node, branchunless, match_failed);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_compile_array_deconstruct(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, LABEL *deconstruct, LABEL *deconstructed, LABEL *match_failed, LABEL *type_error, bool in_single_pattern, int base_index, bool use_deconstructed_cache)</div><div class='add'>+{</div><div class='add'>+    const NODE *line_node = node;</div><div class='add'>+</div><div class='add'>+    // NOTE: this optimization allows us to re-use the #deconstruct value</div><div class='add'>+    // (or its absence).</div><div class='add'>+    if (use_deconstructed_cache) {</div><div class='add'>+        // If value is nil then we haven't tried to deconstruct</div><div class='add'>+        ADD_INSN1(ret, line_node, topn, INT2FIX(base_index + CASE3_BI_OFFSET_DECONSTRUCTED_CACHE));</div><div class='add'>+        ADD_INSNL(ret, line_node, branchnil, deconstruct);</div><div class='add'>+</div><div class='add'>+        // If false then the value is not deconstructable</div><div class='add'>+        ADD_INSN1(ret, line_node, topn, INT2FIX(base_index + CASE3_BI_OFFSET_DECONSTRUCTED_CACHE));</div><div class='add'>+        ADD_INSNL(ret, line_node, branchunless, match_failed);</div><div class='add'>+</div><div class='add'>+        // Drop value, add deconstructed to the stack and jump</div><div class='add'>+        ADD_INSN(ret, line_node, pop); // (1)</div><div class='add'>+        ADD_INSN1(ret, line_node, topn, INT2FIX(base_index + CASE3_BI_OFFSET_DECONSTRUCTED_CACHE - 1 /* (1) */));</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, deconstructed);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, deconstruct);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_LABEL(ret, deconstruct);</div><div class='add'>+    ADD_INSN(ret, line_node, dup);</div><div class='add'>+    ADD_INSN1(ret, line_node, putobject, ID2SYM(rb_intern("deconstruct")));</div><div class='add'>+    ADD_SEND(ret, line_node, idRespond_to, INT2FIX(1)); // (2)</div><div class='add'>+</div><div class='add'>+    // Cache the result of respond_to? (in case it's false is stays there, if true - it's overwritten after #deconstruct)</div><div class='add'>+    if (use_deconstructed_cache) {</div><div class='add'>+        ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_DECONSTRUCTED_CACHE + 1 /* (2) */));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (in_single_pattern) {</div><div class='add'>+        CHECK(iseq_compile_pattern_set_general_errmsg(iseq, ret, node, rb_fstring_lit("%p does not respond to #deconstruct"), base_index + 1 /* (2) */));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_INSNL(ret, line_node, branchunless, match_failed);</div><div class='add'>+</div><div class='add'>+    ADD_SEND(ret, line_node, rb_intern("deconstruct"), INT2FIX(0));</div><div class='add'>+</div><div class='add'>+    // Cache the result (if it's cacheable - currently, only top-level array patterns)</div><div class='add'>+    if (use_deconstructed_cache) {</div><div class='add'>+        ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_DECONSTRUCTED_CACHE));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_INSN(ret, line_node, dup);</div><div class='add'>+    ADD_INSN1(ret, line_node, checktype, INT2FIX(T_ARRAY));</div><div class='add'>+    ADD_INSNL(ret, line_node, branchunless, type_error);</div><div class='add'>+</div><div class='add'>+    ADD_LABEL(ret, deconstructed);</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_compile_pattern_set_general_errmsg(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, VALUE errmsg, int base_index)</div><div class='add'>+{</div><div class='add'>+    /*</div><div class='add'>+     *   if match_succeeded?</div><div class='add'>+     *     goto match_succeeded</div><div class='add'>+     *   end</div><div class='add'>+     *   error_string = FrozenCore.sprintf(errmsg, matchee)</div><div class='add'>+     *   key_error_p = false</div><div class='add'>+     * match_succeeded:</div><div class='add'>+     */</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='add'>+    LABEL *match_succeeded = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+    ADD_INSN(ret, line_node, dup);</div><div class='add'>+    ADD_INSNL(ret, line_node, branchif, match_succeeded);</div><div class='add'>+</div><div class='add'>+    ADD_INSN1(ret, line_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+    ADD_INSN1(ret, line_node, putobject, errmsg);</div><div class='add'>+    ADD_INSN1(ret, line_node, topn, INT2FIX(3));</div><div class='add'>+    ADD_SEND(ret, line_node, id_core_sprintf, INT2FIX(2)); // (1)</div><div class='add'>+    ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_ERROR_STRING + 1 /* (1) */)); // (2)</div><div class='add'>+</div><div class='add'>+    ADD_INSN1(ret, line_node, putobject, Qfalse);</div><div class='add'>+    ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_KEY_ERROR_P + 2 /* (1), (2) */));</div><div class='add'>+</div><div class='add'>+    ADD_INSN(ret, line_node, pop);</div><div class='add'>+    ADD_INSN(ret, line_node, pop);</div><div class='add'>+    ADD_LABEL(ret, match_succeeded);</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_compile_pattern_set_length_errmsg(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, VALUE errmsg, VALUE pattern_length, int base_index)</div><div class='add'>+{</div><div class='add'>+    /*</div><div class='add'>+     *   if match_succeeded?</div><div class='add'>+     *     goto match_succeeded</div><div class='add'>+     *   end</div><div class='add'>+     *   error_string = FrozenCore.sprintf(errmsg, matchee, matchee.length, pat.length)</div><div class='add'>+     *   key_error_p = false</div><div class='add'>+     * match_succeeded:</div><div class='add'>+     */</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='add'>+    LABEL *match_succeeded = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+    ADD_INSN(ret, line_node, dup);</div><div class='add'>+    ADD_INSNL(ret, line_node, branchif, match_succeeded);</div><div class='add'>+</div><div class='add'>+    ADD_INSN1(ret, line_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+    ADD_INSN1(ret, line_node, putobject, errmsg);</div><div class='add'>+    ADD_INSN1(ret, line_node, topn, INT2FIX(3));</div><div class='add'>+    ADD_INSN(ret, line_node, dup);</div><div class='add'>+    ADD_SEND(ret, line_node, idLength, INT2FIX(0));</div><div class='add'>+    ADD_INSN1(ret, line_node, putobject, pattern_length);</div><div class='add'>+    ADD_SEND(ret, line_node, id_core_sprintf, INT2FIX(4)); // (1)</div><div class='add'>+    ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_ERROR_STRING + 1 /* (1) */)); // (2)</div><div class='add'>+</div><div class='add'>+    ADD_INSN1(ret, line_node, putobject, Qfalse);</div><div class='add'>+    ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_KEY_ERROR_P + 2/* (1), (2) */));</div><div class='add'>+</div><div class='add'>+    ADD_INSN(ret, line_node, pop);</div><div class='add'>+    ADD_INSN(ret, line_node, pop);</div><div class='add'>+    ADD_LABEL(ret, match_succeeded);</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_compile_pattern_set_eqq_errmsg(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int base_index)</div><div class='add'>+{</div><div class='add'>+    /*</div><div class='add'>+     *   if match_succeeded?</div><div class='add'>+     *     goto match_succeeded</div><div class='add'>+     *   end</div><div class='add'>+     *   error_string = FrozenCore.sprintf("%p === %p does not return true", pat, matchee)</div><div class='add'>+     *   key_error_p = false</div><div class='add'>+     * match_succeeded:</div><div class='add'>+     */</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='add'>+    LABEL *match_succeeded = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+    ADD_INSN(ret, line_node, dup);</div><div class='add'>+    ADD_INSNL(ret, line_node, branchif, match_succeeded);</div><div class='add'>+</div><div class='add'>+    ADD_INSN1(ret, line_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+    ADD_INSN1(ret, line_node, putobject, rb_fstring_lit("%p === %p does not return true"));</div><div class='add'>+    ADD_INSN1(ret, line_node, topn, INT2FIX(3));</div><div class='add'>+    ADD_INSN1(ret, line_node, topn, INT2FIX(5));</div><div class='add'>+    ADD_SEND(ret, line_node, id_core_sprintf, INT2FIX(3)); // (1)</div><div class='add'>+    ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_ERROR_STRING + 1 /* (1) */)); // (2)</div><div class='add'>+</div><div class='add'>+    ADD_INSN1(ret, line_node, putobject, Qfalse);</div><div class='add'>+    ADD_INSN1(ret, line_node, setn, INT2FIX(base_index + CASE3_BI_OFFSET_KEY_ERROR_P + 2 /* (1), (2) */));</div><div class='add'>+</div><div class='add'>+    ADD_INSN(ret, line_node, pop);</div><div class='add'>+    ADD_INSN(ret, line_node, pop);</div><div class='add'>+</div><div class='add'>+    ADD_LABEL(ret, match_succeeded);</div><div class='add'>+    ADD_INSN1(ret, line_node, setn, INT2FIX(2));</div><div class='add'>+    ADD_INSN(ret, line_node, pop);</div><div class='add'>+    ADD_INSN(ret, line_node, pop);</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_case3(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_node, int popped)</div><div class='add'>+{</div><div class='add'>+    const NODE *pattern;</div><div class='add'>+    const NODE *node = orig_node;</div><div class='add'>+    LABEL *endlabel, *elselabel;</div><div class='add'>+    DECL_ANCHOR(head);</div><div class='add'>+    DECL_ANCHOR(body_seq);</div><div class='add'>+    DECL_ANCHOR(cond_seq);</div><div class='add'>+    int line;</div><div class='add'>+    enum node_type type;</div><div class='add'>+    const NODE *line_node;</div><div class='add'>+    VALUE branches = 0;</div><div class='add'>+    int branch_id = 0;</div><div class='add'>+    bool single_pattern;</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(head);</div><div class='add'>+    INIT_ANCHOR(body_seq);</div><div class='add'>+    INIT_ANCHOR(cond_seq);</div><div class='add'>+</div><div class='add'>+    branches = decl_branch_base(iseq, node, "case");</div><div class='add'>+</div><div class='add'>+    node = node-&gt;nd_body;</div><div class='add'>+    EXPECT_NODE("NODE_CASE3", node, NODE_IN, COMPILE_NG);</div><div class='add'>+    type = nd_type(node);</div><div class='add'>+    line = nd_line(node);</div><div class='add'>+    line_node = node;</div><div class='add'>+    single_pattern = !node-&gt;nd_next;</div><div class='add'>+</div><div class='add'>+    endlabel = NEW_LABEL(line);</div><div class='add'>+    elselabel = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+    if (single_pattern) {</div><div class='add'>+        /* allocate stack for ... */</div><div class='add'>+        ADD_INSN(head, line_node, putnil); /* key_error_key */</div><div class='add'>+        ADD_INSN(head, line_node, putnil); /* key_error_matchee */</div><div class='add'>+        ADD_INSN1(head, line_node, putobject, Qfalse); /* key_error_p */</div><div class='add'>+        ADD_INSN(head, line_node, putnil); /* error_string */</div><div class='add'>+    }</div><div class='add'>+    ADD_INSN(head, line_node, putnil); /* allocate stack for cached #deconstruct value */</div><div class='add'>+</div><div class='add'>+    CHECK(COMPILE(head, "case base", orig_node-&gt;nd_head));</div><div class='add'>+</div><div class='add'>+    ADD_SEQ(ret, head);	/* case VAL */</div><div class='add'>+</div><div class='add'>+    while (type == NODE_IN) {</div><div class='add'>+        LABEL *l1;</div><div class='add'>+</div><div class='add'>+        if (branch_id) {</div><div class='add'>+            ADD_INSN(body_seq, line_node, putnil);</div><div class='add'>+        }</div><div class='add'>+        l1 = NEW_LABEL(line);</div><div class='add'>+        ADD_LABEL(body_seq, l1);</div><div class='add'>+        ADD_INSN1(body_seq, line_node, adjuststack, INT2FIX(single_pattern ? 6 : 2));</div><div class='add'>+        add_trace_branch_coverage(</div><div class='add'>+            iseq,</div><div class='add'>+            body_seq,</div><div class='add'>+            node-&gt;nd_body ? node-&gt;nd_body : node,</div><div class='add'>+            branch_id++,</div><div class='add'>+            "in",</div><div class='add'>+            branches);</div><div class='add'>+        CHECK(COMPILE_(body_seq, "in body", node-&gt;nd_body, popped));</div><div class='add'>+        ADD_INSNL(body_seq, line_node, jump, endlabel);</div><div class='add'>+</div><div class='add'>+        pattern = node-&gt;nd_head;</div><div class='add'>+        if (pattern) {</div><div class='add'>+            int pat_line = nd_line(pattern);</div><div class='add'>+            LABEL *next_pat = NEW_LABEL(pat_line);</div><div class='add'>+            ADD_INSN (cond_seq, pattern, dup); /* dup case VAL */</div><div class='add'>+            // NOTE: set base_index (it's "under" the matchee value, so it's position is 2)</div><div class='add'>+            CHECK(iseq_compile_pattern_each(iseq, cond_seq, pattern, l1, next_pat, single_pattern, false, 2, true));</div><div class='add'>+            ADD_LABEL(cond_seq, next_pat);</div><div class='add'>+            LABEL_UNREMOVABLE(next_pat);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            COMPILE_ERROR(ERROR_ARGS "unexpected node");</div><div class='add'>+            return COMPILE_NG;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        node = node-&gt;nd_next;</div><div class='add'>+        if (!node) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        type = nd_type(node);</div><div class='add'>+        line = nd_line(node);</div><div class='add'>+        line_node = node;</div><div class='add'>+    }</div><div class='add'>+    /* else */</div><div class='add'>+    if (node) {</div><div class='add'>+        ADD_LABEL(cond_seq, elselabel);</div><div class='add'>+        ADD_INSN(cond_seq, line_node, pop);</div><div class='add'>+        ADD_INSN(cond_seq, line_node, pop); /* discard cached #deconstruct value */</div><div class='add'>+        add_trace_branch_coverage(iseq, cond_seq, node, branch_id, "else", branches);</div><div class='add'>+        CHECK(COMPILE_(cond_seq, "else", node, popped));</div><div class='add'>+        ADD_INSNL(cond_seq, line_node, jump, endlabel);</div><div class='add'>+        ADD_INSN(cond_seq, line_node, putnil);</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(cond_seq, line_node, putnil);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        debugs("== else (implicit)\n");</div><div class='add'>+        ADD_LABEL(cond_seq, elselabel);</div><div class='add'>+        add_trace_branch_coverage(iseq, cond_seq, orig_node, branch_id, "else", branches);</div><div class='add'>+        ADD_INSN1(cond_seq, orig_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+</div><div class='add'>+        if (single_pattern) {</div><div class='add'>+            /*</div><div class='add'>+             *   if key_error_p</div><div class='add'>+             *     FrozenCore.raise NoMatchingPatternKeyError.new(FrozenCore.sprintf("%p: %s", case_val, error_string), matchee: key_error_matchee, key: key_error_key)</div><div class='add'>+             *   else</div><div class='add'>+             *     FrozenCore.raise NoMatchingPatternError, FrozenCore.sprintf("%p: %s", case_val, error_string)</div><div class='add'>+             *   end</div><div class='add'>+             */</div><div class='add'>+            LABEL *key_error, *fin;</div><div class='add'>+            struct rb_callinfo_kwarg *kw_arg;</div><div class='add'>+</div><div class='add'>+            key_error = NEW_LABEL(line);</div><div class='add'>+            fin = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+            kw_arg = rb_xmalloc_mul_add(2, sizeof(VALUE), sizeof(struct rb_callinfo_kwarg));</div><div class='add'>+            kw_arg-&gt;keyword_len = 2;</div><div class='add'>+            kw_arg-&gt;keywords[0] = ID2SYM(rb_intern("matchee"));</div><div class='add'>+            kw_arg-&gt;keywords[1] = ID2SYM(rb_intern("key"));</div><div class='add'>+</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, topn, INT2FIX(CASE3_BI_OFFSET_KEY_ERROR_P + 2));</div><div class='add'>+            ADD_INSNL(cond_seq, orig_node, branchif, key_error);</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, putobject, rb_eNoMatchingPatternError);</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, putobject, rb_fstring_lit("%p: %s"));</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, topn, INT2FIX(4)); /* case VAL */</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, topn, INT2FIX(CASE3_BI_OFFSET_ERROR_STRING + 6));</div><div class='add'>+            ADD_SEND(cond_seq, orig_node, id_core_sprintf, INT2FIX(3));</div><div class='add'>+            ADD_SEND(cond_seq, orig_node, id_core_raise, INT2FIX(2));</div><div class='add'>+            ADD_INSNL(cond_seq, orig_node, jump, fin);</div><div class='add'>+</div><div class='add'>+            ADD_LABEL(cond_seq, key_error);</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, putobject, rb_eNoMatchingPatternKeyError);</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, putobject, rb_fstring_lit("%p: %s"));</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, topn, INT2FIX(4)); /* case VAL */</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, topn, INT2FIX(CASE3_BI_OFFSET_ERROR_STRING + 6));</div><div class='add'>+            ADD_SEND(cond_seq, orig_node, id_core_sprintf, INT2FIX(3));</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, topn, INT2FIX(CASE3_BI_OFFSET_KEY_ERROR_MATCHEE + 4));</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, topn, INT2FIX(CASE3_BI_OFFSET_KEY_ERROR_KEY + 5));</div><div class='add'>+            ADD_SEND_R(cond_seq, orig_node, rb_intern("new"), INT2FIX(1), NULL, INT2FIX(VM_CALL_KWARG), kw_arg);</div><div class='add'>+            ADD_SEND(cond_seq, orig_node, id_core_raise, INT2FIX(1));</div><div class='add'>+</div><div class='add'>+            ADD_LABEL(cond_seq, fin);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, putobject, rb_eNoMatchingPatternError);</div><div class='add'>+            ADD_INSN1(cond_seq, orig_node, topn, INT2FIX(2));</div><div class='add'>+            ADD_SEND(cond_seq, orig_node, id_core_raise, INT2FIX(2));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN1(cond_seq, orig_node, adjuststack, INT2FIX(single_pattern ? 7 : 3));</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(cond_seq, orig_node, putnil);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(cond_seq, orig_node, jump, endlabel);</div><div class='add'>+        ADD_INSN1(cond_seq, orig_node, dupn, INT2FIX(single_pattern ? 5 : 1));</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(cond_seq, line_node, putnil);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_SEQ(ret, cond_seq);</div><div class='ctx'>     ADD_SEQ(ret, body_seq);</div><div class='ctx'>     ADD_LABEL(ret, endlabel);</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#undef CASE3_BI_OFFSET_DECONSTRUCTED_CACHE</div><div class='add'>+#undef CASE3_BI_OFFSET_ERROR_STRING</div><div class='add'>+#undef CASE3_BI_OFFSET_KEY_ERROR_P</div><div class='add'>+#undef CASE3_BI_OFFSET_KEY_ERROR_MATCHEE</div><div class='add'>+#undef CASE3_BI_OFFSET_KEY_ERROR_KEY</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> compile_loop(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped, const enum node_type type)</div><div class='ctx'> {</div><div class='ctx'>     const int line = (int)nd_line(node);</div><div class='del'>-    const int lineno = nd_first_lineno(node);</div><div class='del'>-    const int column = nd_first_column(node);</div><div class='del'>-    const int last_lineno = nd_last_lineno(node);</div><div class='del'>-    const int last_column = nd_last_column(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='add'>+</div><div class='ctx'>     LABEL *prev_start_label = ISEQ_COMPILE_DATA(iseq)-&gt;start_label;</div><div class='ctx'>     LABEL *prev_end_label = ISEQ_COMPILE_DATA(iseq)-&gt;end_label;</div><div class='ctx'>     LABEL *prev_redo_label = ISEQ_COMPILE_DATA(iseq)-&gt;redo_label;</div><div class='ctx'>     int prev_loopval_popped = ISEQ_COMPILE_DATA(iseq)-&gt;loopval_popped;</div><div class='del'>-    VALUE branches = 0;</div><div class='add'>+    VALUE branches = Qfalse;</div><div class='ctx'> </div><div class='ctx'>     struct iseq_compile_data_ensure_node_stack enl;</div><div class='ctx'> </div><div class='hunk'>@@ -5299,66 +7411,65 @@ compile_loop(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, in</div><div class='ctx'>     push_ensure_entry(iseq, &amp;enl, NULL, NULL);</div><div class='ctx'> </div><div class='ctx'>     if (node-&gt;nd_state == 1) {</div><div class='del'>-	ADD_INSNL(ret, line, jump, next_label);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, next_label);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	tmp_label = NEW_LABEL(line);</div><div class='del'>-	ADD_INSNL(ret, line, jump, tmp_label);</div><div class='add'>+        tmp_label = NEW_LABEL(line);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, tmp_label);</div><div class='ctx'>     }</div><div class='ctx'>     ADD_LABEL(ret, adjust_label);</div><div class='del'>-    ADD_INSN(ret, line, putnil);</div><div class='add'>+    ADD_INSN(ret, line_node, putnil);</div><div class='ctx'>     ADD_LABEL(ret, next_catch_label);</div><div class='del'>-    ADD_INSN(ret, line, pop);</div><div class='del'>-    ADD_INSNL(ret, line, jump, next_label);</div><div class='add'>+    ADD_INSN(ret, line_node, pop);</div><div class='add'>+    ADD_INSNL(ret, line_node, jump, next_label);</div><div class='ctx'>     if (tmp_label) ADD_LABEL(ret, tmp_label);</div><div class='ctx'> </div><div class='ctx'>     ADD_LABEL(ret, redo_label);</div><div class='del'>-    DECL_BRANCH_BASE(branches, lineno, column, last_lineno, last_column, type == NODE_WHILE ? "while" : "until");</div><div class='del'>-    ADD_TRACE_BRANCH_COVERAGE(</div><div class='del'>-	ret,</div><div class='del'>-	node-&gt;nd_body ? nd_first_lineno(node-&gt;nd_body) : lineno,</div><div class='del'>-	node-&gt;nd_body ? nd_first_column(node-&gt;nd_body) : column,</div><div class='del'>-	node-&gt;nd_body ? nd_last_lineno(node-&gt;nd_body) : last_lineno,</div><div class='del'>-	node-&gt;nd_body ? nd_last_column(node-&gt;nd_body) : last_column,</div><div class='del'>-	"body",</div><div class='del'>-	branches);</div><div class='add'>+    branches = decl_branch_base(iseq, node, type == NODE_WHILE ? "while" : "until");</div><div class='add'>+    add_trace_branch_coverage(</div><div class='add'>+        iseq,</div><div class='add'>+        ret,</div><div class='add'>+        node-&gt;nd_body ? node-&gt;nd_body : node,</div><div class='add'>+        0,</div><div class='add'>+        "body",</div><div class='add'>+        branches);</div><div class='ctx'>     CHECK(COMPILE_POPPED(ret, "while body", node-&gt;nd_body));</div><div class='ctx'>     ADD_LABEL(ret, next_label);	/* next */</div><div class='ctx'> </div><div class='ctx'>     if (type == NODE_WHILE) {</div><div class='del'>-	compile_branch_condition(iseq, ret, node-&gt;nd_cond,</div><div class='del'>-				 redo_label, end_label);</div><div class='add'>+        compile_branch_condition(iseq, ret, node-&gt;nd_cond,</div><div class='add'>+                                 redo_label, end_label);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	/* until */</div><div class='del'>-	compile_branch_condition(iseq, ret, node-&gt;nd_cond,</div><div class='del'>-				 end_label, redo_label);</div><div class='add'>+        /* until */</div><div class='add'>+        compile_branch_condition(iseq, ret, node-&gt;nd_cond,</div><div class='add'>+                                 end_label, redo_label);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ADD_LABEL(ret, end_label);</div><div class='ctx'>     ADD_ADJUST_RESTORE(ret, adjust_label);</div><div class='ctx'> </div><div class='del'>-    if (node-&gt;nd_state == Qundef) {</div><div class='del'>-	/* ADD_INSN(ret, line, putundef); */</div><div class='del'>-	COMPILE_ERROR(ERROR_ARGS "unsupported: putundef");</div><div class='del'>-	return COMPILE_NG;</div><div class='add'>+    if (UNDEF_P(node-&gt;nd_state)) {</div><div class='add'>+        /* ADD_INSN(ret, line_node, putundef); */</div><div class='add'>+        COMPILE_ERROR(ERROR_ARGS "unsupported: putundef");</div><div class='add'>+        return COMPILE_NG;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ADD_INSN(ret, line, putnil);</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ADD_LABEL(ret, break_label);	/* break */</div><div class='ctx'> </div><div class='ctx'>     if (popped) {</div><div class='del'>-	ADD_INSN(ret, line, pop);</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ADD_CATCH_ENTRY(CATCH_TYPE_BREAK, redo_label, break_label, NULL,</div><div class='del'>-		    break_label);</div><div class='add'>+                    break_label);</div><div class='ctx'>     ADD_CATCH_ENTRY(CATCH_TYPE_NEXT, redo_label, break_label, NULL,</div><div class='del'>-		    next_catch_label);</div><div class='add'>+                    next_catch_label);</div><div class='ctx'>     ADD_CATCH_ENTRY(CATCH_TYPE_REDO, redo_label, break_label, NULL,</div><div class='del'>-		    ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='add'>+                    ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='ctx'> </div><div class='ctx'>     ISEQ_COMPILE_DATA(iseq)-&gt;start_label = prev_start_label;</div><div class='ctx'>     ISEQ_COMPILE_DATA(iseq)-&gt;end_label = prev_end_label;</div><div class='hunk'>@@ -5372,30 +7483,54 @@ static int</div><div class='ctx'> compile_iter(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='ctx'> {</div><div class='ctx'>     const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'>     const rb_iseq_t *prevblock = ISEQ_COMPILE_DATA(iseq)-&gt;current_block;</div><div class='ctx'>     LABEL *retry_label = NEW_LABEL(line);</div><div class='ctx'>     LABEL *retry_end_l = NEW_LABEL(line);</div><div class='ctx'>     const rb_iseq_t *child_iseq;</div><div class='ctx'> </div><div class='ctx'>     ADD_LABEL(ret, retry_label);</div><div class='del'>-    if (nd_type(node) == NODE_FOR) {</div><div class='del'>-	CHECK(COMPILE(ret, "iter caller (for)", node-&gt;nd_iter));</div><div class='add'>+    if (nd_type_p(node, NODE_FOR)) {</div><div class='add'>+        CHECK(COMPILE(ret, "iter caller (for)", node-&gt;nd_iter));</div><div class='ctx'> </div><div class='del'>-	ISEQ_COMPILE_DATA(iseq)-&gt;current_block = child_iseq =</div><div class='del'>-	    NEW_CHILD_ISEQ(node-&gt;nd_body, make_name_for_block(iseq),</div><div class='del'>-			   ISEQ_TYPE_BLOCK, line);</div><div class='del'>-	ADD_SEND_WITH_BLOCK(ret, line, idEach, INT2FIX(0), child_iseq);</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;current_block = child_iseq =</div><div class='add'>+            NEW_CHILD_ISEQ(node-&gt;nd_body, make_name_for_block(iseq),</div><div class='add'>+                           ISEQ_TYPE_BLOCK, line);</div><div class='add'>+        ADD_SEND_WITH_BLOCK(ret, line_node, idEach, INT2FIX(0), child_iseq);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ISEQ_COMPILE_DATA(iseq)-&gt;current_block = child_iseq =</div><div class='del'>-	    NEW_CHILD_ISEQ(node-&gt;nd_body, make_name_for_block(iseq),</div><div class='del'>-			   ISEQ_TYPE_BLOCK, line);</div><div class='del'>-	CHECK(COMPILE(ret, "iter caller", node-&gt;nd_iter));</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;current_block = child_iseq =</div><div class='add'>+            NEW_CHILD_ISEQ(node-&gt;nd_body, make_name_for_block(iseq),</div><div class='add'>+                           ISEQ_TYPE_BLOCK, line);</div><div class='add'>+        CHECK(COMPILE(ret, "iter caller", node-&gt;nd_iter));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    {</div><div class='add'>+        // We need to put the label "retry_end_l" immediately after the last "send" instruction.</div><div class='add'>+        // This because vm_throw checks if the break cont is equal to the index of next insn of the "send".</div><div class='add'>+        // (Otherwise, it is considered "break from proc-closure". See "TAG_BREAK" handling in "vm_throw_start".)</div><div class='add'>+        //</div><div class='add'>+        // Normally, "send" instruction is at the last.</div><div class='add'>+        // However, qcall under branch coverage measurement adds some instructions after the "send".</div><div class='add'>+        //</div><div class='add'>+        // Note that "invokesuper" appears instead of "send".</div><div class='add'>+        INSN *iobj;</div><div class='add'>+        LINK_ELEMENT *last_elem = LAST_ELEMENT(ret);</div><div class='add'>+        iobj = IS_INSN(last_elem) ? (INSN*) last_elem : (INSN*) get_prev_insn((INSN*) last_elem);</div><div class='add'>+        while (INSN_OF(iobj) != BIN(send) &amp;&amp; INSN_OF(iobj) != BIN(invokesuper)) {</div><div class='add'>+            iobj = (INSN*) get_prev_insn(iobj);</div><div class='add'>+        }</div><div class='add'>+        ELEM_INSERT_NEXT(&amp;iobj-&gt;link, (LINK_ELEMENT*) retry_end_l);</div><div class='add'>+</div><div class='add'>+        // LINK_ANCHOR has a pointer to the last element, but ELEM_INSERT_NEXT does not update it</div><div class='add'>+        // even if we add an insn to the last of LINK_ANCHOR. So this updates it manually.</div><div class='add'>+        if (&amp;iobj-&gt;link == LAST_ELEMENT(ret)) {</div><div class='add'>+            ret-&gt;last = (LINK_ELEMENT*) retry_end_l;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    ADD_LABEL(ret, retry_end_l);</div><div class='ctx'> </div><div class='ctx'>     if (popped) {</div><div class='del'>-	ADD_INSN(ret, line, pop);</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ISEQ_COMPILE_DATA(iseq)-&gt;current_block = prevblock;</div><div class='hunk'>@@ -5410,27 +7545,27 @@ compile_for_masgn(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const nod</div><div class='ctx'>     /* massign to var in "for"</div><div class='ctx'>      * (args.length == 1 &amp;&amp; Array.try_convert(args[0])) || args</div><div class='ctx'>      */</div><div class='del'>-    const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'>     const NODE *var = node-&gt;nd_var;</div><div class='ctx'>     LABEL *not_single = NEW_LABEL(nd_line(var));</div><div class='ctx'>     LABEL *not_ary = NEW_LABEL(nd_line(var));</div><div class='ctx'>     CHECK(COMPILE(ret, "for var", var));</div><div class='del'>-    ADD_INSN(ret, line, dup);</div><div class='del'>-    ADD_CALL(ret, line, idLength, INT2FIX(0));</div><div class='del'>-    ADD_INSN1(ret, line, putobject, INT2FIX(1));</div><div class='del'>-    ADD_CALL(ret, line, idEq, INT2FIX(1));</div><div class='del'>-    ADD_INSNL(ret, line, branchunless, not_single);</div><div class='del'>-    ADD_INSN(ret, line, dup);</div><div class='del'>-    ADD_INSN1(ret, line, putobject, INT2FIX(0));</div><div class='del'>-    ADD_CALL(ret, line, idAREF, INT2FIX(1));</div><div class='del'>-    ADD_INSN1(ret, line, putobject, rb_cArray);</div><div class='del'>-    ADD_INSN(ret, line, swap);</div><div class='del'>-    ADD_CALL(ret, line, rb_intern("try_convert"), INT2FIX(1));</div><div class='del'>-    ADD_INSN(ret, line, dup);</div><div class='del'>-    ADD_INSNL(ret, line, branchunless, not_ary);</div><div class='del'>-    ADD_INSN(ret, line, swap);</div><div class='add'>+    ADD_INSN(ret, line_node, dup);</div><div class='add'>+    ADD_CALL(ret, line_node, idLength, INT2FIX(0));</div><div class='add'>+    ADD_INSN1(ret, line_node, putobject, INT2FIX(1));</div><div class='add'>+    ADD_CALL(ret, line_node, idEq, INT2FIX(1));</div><div class='add'>+    ADD_INSNL(ret, line_node, branchunless, not_single);</div><div class='add'>+    ADD_INSN(ret, line_node, dup);</div><div class='add'>+    ADD_INSN1(ret, line_node, putobject, INT2FIX(0));</div><div class='add'>+    ADD_CALL(ret, line_node, idAREF, INT2FIX(1));</div><div class='add'>+    ADD_INSN1(ret, line_node, putobject, rb_cArray);</div><div class='add'>+    ADD_INSN(ret, line_node, swap);</div><div class='add'>+    ADD_CALL(ret, line_node, rb_intern("try_convert"), INT2FIX(1));</div><div class='add'>+    ADD_INSN(ret, line_node, dup);</div><div class='add'>+    ADD_INSNL(ret, line_node, branchunless, not_ary);</div><div class='add'>+    ADD_INSN(ret, line_node, swap);</div><div class='ctx'>     ADD_LABEL(ret, not_ary);</div><div class='del'>-    ADD_INSN(ret, line, pop);</div><div class='add'>+    ADD_INSN(ret, line_node, pop);</div><div class='ctx'>     ADD_LABEL(ret, not_single);</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -5438,62 +7573,58 @@ compile_for_masgn(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const nod</div><div class='ctx'> static int</div><div class='ctx'> compile_break(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='ctx'> {</div><div class='del'>-    const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'>     unsigned long throw_flag = 0;</div><div class='ctx'> </div><div class='del'>-    if (ISEQ_COMPILE_DATA(iseq)-&gt;redo_label != 0) {</div><div class='del'>-	/* while/until */</div><div class='del'>-	LABEL *splabel = NEW_LABEL(0);</div><div class='del'>-	ADD_LABEL(ret, splabel);</div><div class='del'>-	ADD_ADJUST(ret, line, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='del'>-	CHECK(COMPILE_(ret, "break val (while/until)", node-&gt;nd_stts,</div><div class='del'>-		       ISEQ_COMPILE_DATA(iseq)-&gt;loopval_popped));</div><div class='del'>-	add_ensure_iseq(ret, iseq, 0);</div><div class='del'>-	ADD_INSNL(ret, line, jump, ISEQ_COMPILE_DATA(iseq)-&gt;end_label);</div><div class='del'>-	ADD_ADJUST_RESTORE(ret, splabel);</div><div class='del'>-</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, putnil);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else if (iseq-&gt;body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='del'>-      break_by_insn:</div><div class='del'>-	/* escape from block */</div><div class='del'>-	CHECK(COMPILE(ret, "break val (block)", node-&gt;nd_stts));</div><div class='del'>-        ADD_INSN1(ret, line, throw, INT2FIX(throw_flag | TAG_BREAK));</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else if (iseq-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='del'>-      break_in_eval:</div><div class='del'>-	COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with break");</div><div class='del'>-	return COMPILE_NG;</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;redo_label != 0 &amp;&amp; can_add_ensure_iseq(iseq)) {</div><div class='add'>+        /* while/until */</div><div class='add'>+        LABEL *splabel = NEW_LABEL(0);</div><div class='add'>+        ADD_LABEL(ret, splabel);</div><div class='add'>+        ADD_ADJUST(ret, line_node, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='add'>+        CHECK(COMPILE_(ret, "break val (while/until)", node-&gt;nd_stts,</div><div class='add'>+                       ISEQ_COMPILE_DATA(iseq)-&gt;loopval_popped));</div><div class='add'>+        add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, ISEQ_COMPILE_DATA(iseq)-&gt;end_label);</div><div class='add'>+        ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	const rb_iseq_t *ip = iseq-&gt;body-&gt;parent_iseq;</div><div class='add'>+        const rb_iseq_t *ip = iseq;</div><div class='ctx'> </div><div class='del'>-	while (ip) {</div><div class='del'>-	    if (!ISEQ_COMPILE_DATA(ip)) {</div><div class='del'>-		ip = 0;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='add'>+        while (ip) {</div><div class='add'>+            if (!ISEQ_COMPILE_DATA(ip)) {</div><div class='add'>+                ip = 0;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='ctx'> </div><div class='del'>-	    if (ISEQ_COMPILE_DATA(ip)-&gt;redo_label != 0) {</div><div class='add'>+            if (ISEQ_COMPILE_DATA(ip)-&gt;redo_label != 0) {</div><div class='ctx'>                 throw_flag = VM_THROW_NO_ESCAPE_FLAG;</div><div class='del'>-		goto break_by_insn;</div><div class='del'>-	    }</div><div class='del'>-	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='del'>-		goto break_by_insn;</div><div class='del'>-	    }</div><div class='del'>-	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='del'>-		goto break_in_eval;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    ip = ip-&gt;body-&gt;parent_iseq;</div><div class='del'>-	}</div><div class='del'>-	COMPILE_ERROR(ERROR_ARGS "Invalid break");</div><div class='del'>-	return COMPILE_NG;</div><div class='add'>+            }</div><div class='add'>+            else if (ISEQ_BODY(ip)-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+                throw_flag = 0;</div><div class='add'>+            }</div><div class='add'>+            else if (ISEQ_BODY(ip)-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='add'>+                COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with break");</div><div class='add'>+                return COMPILE_NG;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ip = ISEQ_BODY(ip)-&gt;parent_iseq;</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            /* escape from block */</div><div class='add'>+            CHECK(COMPILE(ret, "break val (block)", node-&gt;nd_stts));</div><div class='add'>+            ADD_INSN1(ret, line_node, throw, INT2FIX(throw_flag | TAG_BREAK));</div><div class='add'>+            if (popped) {</div><div class='add'>+                ADD_INSN(ret, line_node, pop);</div><div class='add'>+            }</div><div class='add'>+            return COMPILE_OK;</div><div class='add'>+        }</div><div class='add'>+        COMPILE_ERROR(ERROR_ARGS "Invalid break");</div><div class='add'>+        return COMPILE_NG;</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -5501,77 +7632,72 @@ compile_break(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, i</div><div class='ctx'> static int</div><div class='ctx'> compile_next(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='ctx'> {</div><div class='del'>-    const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'>     unsigned long throw_flag = 0;</div><div class='ctx'> </div><div class='del'>-    if (ISEQ_COMPILE_DATA(iseq)-&gt;redo_label != 0) {</div><div class='del'>-	LABEL *splabel = NEW_LABEL(0);</div><div class='del'>-	debugs("next in while loop\n");</div><div class='del'>-	ADD_LABEL(ret, splabel);</div><div class='del'>-	CHECK(COMPILE(ret, "next val/valid syntax?", node-&gt;nd_stts));</div><div class='del'>-	add_ensure_iseq(ret, iseq, 0);</div><div class='del'>-	ADD_ADJUST(ret, line, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='del'>-	ADD_INSNL(ret, line, jump, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='del'>-	ADD_ADJUST_RESTORE(ret, splabel);</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, putnil);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else if (ISEQ_COMPILE_DATA(iseq)-&gt;end_label) {</div><div class='del'>-	LABEL *splabel = NEW_LABEL(0);</div><div class='del'>-	debugs("next in block\n");</div><div class='del'>-	ADD_LABEL(ret, splabel);</div><div class='del'>-	ADD_ADJUST(ret, line, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='del'>-	CHECK(COMPILE(ret, "next val", node-&gt;nd_stts));</div><div class='del'>-	add_ensure_iseq(ret, iseq, 0);</div><div class='del'>-	ADD_INSNL(ret, line, jump, ISEQ_COMPILE_DATA(iseq)-&gt;end_label);</div><div class='del'>-	ADD_ADJUST_RESTORE(ret, splabel);</div><div class='del'>-	splabel-&gt;unremovable = FALSE;</div><div class='del'>-</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, putnil);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else if (iseq-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='del'>-      next_in_eval:</div><div class='del'>-	COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with next");</div><div class='del'>-	return COMPILE_NG;</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;redo_label != 0 &amp;&amp; can_add_ensure_iseq(iseq)) {</div><div class='add'>+        LABEL *splabel = NEW_LABEL(0);</div><div class='add'>+        debugs("next in while loop\n");</div><div class='add'>+        ADD_LABEL(ret, splabel);</div><div class='add'>+        CHECK(COMPILE(ret, "next val/valid syntax?", node-&gt;nd_stts));</div><div class='add'>+        add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+        ADD_ADJUST(ret, line_node, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='add'>+        ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else if (ISEQ_COMPILE_DATA(iseq)-&gt;end_label &amp;&amp; can_add_ensure_iseq(iseq)) {</div><div class='add'>+        LABEL *splabel = NEW_LABEL(0);</div><div class='add'>+        debugs("next in block\n");</div><div class='add'>+        ADD_LABEL(ret, splabel);</div><div class='add'>+        ADD_ADJUST(ret, line_node, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='add'>+        CHECK(COMPILE(ret, "next val", node-&gt;nd_stts));</div><div class='add'>+        add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, ISEQ_COMPILE_DATA(iseq)-&gt;end_label);</div><div class='add'>+        ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	const rb_iseq_t *ip = iseq;</div><div class='add'>+        const rb_iseq_t *ip = iseq;</div><div class='ctx'> </div><div class='del'>-	while (ip) {</div><div class='del'>-	    if (!ISEQ_COMPILE_DATA(ip)) {</div><div class='del'>-		ip = 0;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='add'>+        while (ip) {</div><div class='add'>+            if (!ISEQ_COMPILE_DATA(ip)) {</div><div class='add'>+                ip = 0;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='ctx'> </div><div class='ctx'>             throw_flag = VM_THROW_NO_ESCAPE_FLAG;</div><div class='del'>-	    if (ISEQ_COMPILE_DATA(ip)-&gt;redo_label != 0) {</div><div class='del'>-		/* while loop */</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='del'>-		goto next_in_eval;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    ip = ip-&gt;body-&gt;parent_iseq;</div><div class='del'>-	}</div><div class='del'>-	if (ip != 0) {</div><div class='del'>-	    CHECK(COMPILE(ret, "next val", node-&gt;nd_stts));</div><div class='del'>-            ADD_INSN1(ret, line, throw, INT2FIX(throw_flag | TAG_NEXT));</div><div class='del'>-</div><div class='del'>-	    if (popped) {</div><div class='del'>-		ADD_INSN(ret, line, pop);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    COMPILE_ERROR(ERROR_ARGS "Invalid next");</div><div class='del'>-	    return COMPILE_NG;</div><div class='del'>-	}</div><div class='add'>+            if (ISEQ_COMPILE_DATA(ip)-&gt;redo_label != 0) {</div><div class='add'>+                /* while loop */</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            else if (ISEQ_BODY(ip)-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            else if (ISEQ_BODY(ip)-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='add'>+                COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with next");</div><div class='add'>+                return COMPILE_NG;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            ip = ISEQ_BODY(ip)-&gt;parent_iseq;</div><div class='add'>+        }</div><div class='add'>+        if (ip != 0) {</div><div class='add'>+            CHECK(COMPILE(ret, "next val", node-&gt;nd_stts));</div><div class='add'>+            ADD_INSN1(ret, line_node, throw, INT2FIX(throw_flag | TAG_NEXT));</div><div class='add'>+</div><div class='add'>+            if (popped) {</div><div class='add'>+                ADD_INSN(ret, line_node, pop);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            COMPILE_ERROR(ERROR_ARGS "Invalid next");</div><div class='add'>+            return COMPILE_NG;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -5579,72 +7705,68 @@ compile_next(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, in</div><div class='ctx'> static int</div><div class='ctx'> compile_redo(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='ctx'> {</div><div class='del'>-    const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='add'>+</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;redo_label &amp;&amp; can_add_ensure_iseq(iseq)) {</div><div class='add'>+        LABEL *splabel = NEW_LABEL(0);</div><div class='add'>+        debugs("redo in while");</div><div class='add'>+        ADD_LABEL(ret, splabel);</div><div class='add'>+        ADD_ADJUST(ret, line_node, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='add'>+        add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='add'>+        ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else if (ISEQ_BODY(iseq)-&gt;type != ISEQ_TYPE_EVAL &amp;&amp; ISEQ_COMPILE_DATA(iseq)-&gt;start_label &amp;&amp; can_add_ensure_iseq(iseq)) {</div><div class='add'>+        LABEL *splabel = NEW_LABEL(0);</div><div class='ctx'> </div><div class='del'>-    if (ISEQ_COMPILE_DATA(iseq)-&gt;redo_label) {</div><div class='del'>-	LABEL *splabel = NEW_LABEL(0);</div><div class='del'>-	debugs("redo in while");</div><div class='del'>-	ADD_LABEL(ret, splabel);</div><div class='del'>-	ADD_ADJUST(ret, line, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='del'>-	add_ensure_iseq(ret, iseq, 0);</div><div class='del'>-	ADD_INSNL(ret, line, jump, ISEQ_COMPILE_DATA(iseq)-&gt;redo_label);</div><div class='del'>-	ADD_ADJUST_RESTORE(ret, splabel);</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, putnil);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else if (iseq-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='del'>-      redo_in_eval:</div><div class='del'>-	COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with redo");</div><div class='del'>-	return COMPILE_NG;</div><div class='del'>-    }</div><div class='del'>-    else if (ISEQ_COMPILE_DATA(iseq)-&gt;start_label) {</div><div class='del'>-	LABEL *splabel = NEW_LABEL(0);</div><div class='del'>-</div><div class='del'>-	debugs("redo in block");</div><div class='del'>-	ADD_LABEL(ret, splabel);</div><div class='del'>-	add_ensure_iseq(ret, iseq, 0);</div><div class='del'>-	ADD_ADJUST(ret, line, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='del'>-	ADD_INSNL(ret, line, jump, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='del'>-	ADD_ADJUST_RESTORE(ret, splabel);</div><div class='del'>-</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, putnil);</div><div class='del'>-	}</div><div class='add'>+        debugs("redo in block");</div><div class='add'>+        ADD_LABEL(ret, splabel);</div><div class='add'>+        add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+        ADD_ADJUST(ret, line_node, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, ISEQ_COMPILE_DATA(iseq)-&gt;start_label);</div><div class='add'>+        ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	const rb_iseq_t *ip = iseq;</div><div class='del'>-</div><div class='del'>-	while (ip) {</div><div class='del'>-	    if (!ISEQ_COMPILE_DATA(ip)) {</div><div class='del'>-		ip = 0;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (ISEQ_COMPILE_DATA(ip)-&gt;redo_label != 0) {</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    else if (ip-&gt;body-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='del'>-		goto redo_in_eval;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    ip = ip-&gt;body-&gt;parent_iseq;</div><div class='del'>-	}</div><div class='del'>-	if (ip != 0) {</div><div class='del'>-	    ADD_INSN(ret, line, putnil);</div><div class='del'>-            ADD_INSN1(ret, line, throw, INT2FIX(VM_THROW_NO_ESCAPE_FLAG | TAG_REDO));</div><div class='del'>-</div><div class='del'>-	    if (popped) {</div><div class='del'>-		ADD_INSN(ret, line, pop);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    COMPILE_ERROR(ERROR_ARGS "Invalid redo");</div><div class='del'>-	    return COMPILE_NG;</div><div class='del'>-	}</div><div class='add'>+        const rb_iseq_t *ip = iseq;</div><div class='add'>+</div><div class='add'>+        while (ip) {</div><div class='add'>+            if (!ISEQ_COMPILE_DATA(ip)) {</div><div class='add'>+                ip = 0;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (ISEQ_COMPILE_DATA(ip)-&gt;redo_label != 0) {</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            else if (ISEQ_BODY(ip)-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            else if (ISEQ_BODY(ip)-&gt;type == ISEQ_TYPE_EVAL) {</div><div class='add'>+                COMPILE_ERROR(ERROR_ARGS "Can't escape from eval with redo");</div><div class='add'>+                return COMPILE_NG;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            ip = ISEQ_BODY(ip)-&gt;parent_iseq;</div><div class='add'>+        }</div><div class='add'>+        if (ip != 0) {</div><div class='add'>+            ADD_INSN(ret, line_node, putnil);</div><div class='add'>+            ADD_INSN1(ret, line_node, throw, INT2FIX(VM_THROW_NO_ESCAPE_FLAG | TAG_REDO));</div><div class='add'>+</div><div class='add'>+            if (popped) {</div><div class='add'>+                ADD_INSN(ret, line_node, pop);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            COMPILE_ERROR(ERROR_ARGS "Invalid redo");</div><div class='add'>+            return COMPILE_NG;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -5652,19 +7774,19 @@ compile_redo(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, in</div><div class='ctx'> static int</div><div class='ctx'> compile_retry(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='ctx'> {</div><div class='del'>-    const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'> </div><div class='del'>-    if (iseq-&gt;body-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='del'>-	ADD_INSN(ret, line, putnil);</div><div class='del'>-	ADD_INSN1(ret, line, throw, INT2FIX(TAG_RETRY));</div><div class='add'>+    if (ISEQ_BODY(iseq)-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='add'>+        ADD_INSN(ret, line_node, putnil);</div><div class='add'>+        ADD_INSN1(ret, line_node, throw, INT2FIX(TAG_RETRY));</div><div class='ctx'> </div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, line_node, pop);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	COMPILE_ERROR(ERROR_ARGS "Invalid retry");</div><div class='del'>-	return COMPILE_NG;</div><div class='add'>+        COMPILE_ERROR(ERROR_ARGS "Invalid retry");</div><div class='add'>+        return COMPILE_NG;</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -5673,27 +7795,36 @@ static int</div><div class='ctx'> compile_rescue(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='ctx'> {</div><div class='ctx'>     const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'>     LABEL *lstart = NEW_LABEL(line);</div><div class='ctx'>     LABEL *lend = NEW_LABEL(line);</div><div class='ctx'>     LABEL *lcont = NEW_LABEL(line);</div><div class='ctx'>     const rb_iseq_t *rescue = NEW_CHILD_ISEQ(node-&gt;nd_resq,</div><div class='del'>-					     rb_str_concat(rb_str_new2("rescue in "), iseq-&gt;body-&gt;location.label),</div><div class='del'>-					     ISEQ_TYPE_RESCUE, line);</div><div class='add'>+                                             rb_str_concat(rb_str_new2("rescue in "),</div><div class='add'>+                                                           ISEQ_BODY(iseq)-&gt;location.label),</div><div class='add'>+                                             ISEQ_TYPE_RESCUE, line);</div><div class='ctx'> </div><div class='ctx'>     lstart-&gt;rescued = LABEL_RESCUE_BEG;</div><div class='ctx'>     lend-&gt;rescued = LABEL_RESCUE_END;</div><div class='ctx'>     ADD_LABEL(ret, lstart);</div><div class='del'>-    CHECK(COMPILE(ret, "rescue head", node-&gt;nd_head));</div><div class='add'>+</div><div class='add'>+    bool prev_in_rescue = ISEQ_COMPILE_DATA(iseq)-&gt;in_rescue;</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;in_rescue = true;</div><div class='add'>+    {</div><div class='add'>+        CHECK(COMPILE(ret, "rescue head", node-&gt;nd_head));</div><div class='add'>+    }</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;in_rescue = prev_in_rescue;</div><div class='add'>+</div><div class='ctx'>     ADD_LABEL(ret, lend);</div><div class='ctx'>     if (node-&gt;nd_else) {</div><div class='del'>-	ADD_INSN(ret, line, pop);</div><div class='del'>-	CHECK(COMPILE(ret, "rescue else", node-&gt;nd_else));</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+        CHECK(COMPILE(ret, "rescue else", node-&gt;nd_else));</div><div class='ctx'>     }</div><div class='del'>-    ADD_INSN(ret, line, nop);</div><div class='add'>+    ADD_INSN(ret, line_node, nop);</div><div class='ctx'>     ADD_LABEL(ret, lcont);</div><div class='ctx'> </div><div class='ctx'>     if (popped) {</div><div class='del'>-	ADD_INSN(ret, line, pop);</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* register catch entry */</div><div class='hunk'>@@ -5706,53 +7837,54 @@ static int</div><div class='ctx'> compile_resbody(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='ctx'> {</div><div class='ctx'>     const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'>     const NODE *resq = node;</div><div class='ctx'>     const NODE *narg;</div><div class='ctx'>     LABEL *label_miss, *label_hit;</div><div class='ctx'> </div><div class='ctx'>     while (resq) {</div><div class='del'>-	label_miss = NEW_LABEL(line);</div><div class='del'>-	label_hit = NEW_LABEL(line);</div><div class='del'>-</div><div class='del'>-	narg = resq-&gt;nd_args;</div><div class='del'>-	if (narg) {</div><div class='del'>-	    switch (nd_type(narg)) {</div><div class='del'>-	      case NODE_ARRAY:</div><div class='del'>-		while (narg) {</div><div class='del'>-		    ADD_GETLOCAL(ret, line, LVAR_ERRINFO, 0);</div><div class='del'>-		    CHECK(COMPILE(ret, "rescue arg", narg-&gt;nd_head));</div><div class='del'>-		    ADD_INSN1(ret, line, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_RESCUE));</div><div class='del'>-		    ADD_INSNL(ret, line, branchif, label_hit);</div><div class='del'>-		    narg = narg-&gt;nd_next;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      case NODE_SPLAT:</div><div class='del'>-	      case NODE_ARGSCAT:</div><div class='del'>-	      case NODE_ARGSPUSH:</div><div class='del'>-		ADD_GETLOCAL(ret, line, LVAR_ERRINFO, 0);</div><div class='del'>-		CHECK(COMPILE(ret, "rescue/cond splat", narg));</div><div class='del'>-		ADD_INSN1(ret, line, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_RESCUE | VM_CHECKMATCH_ARRAY));</div><div class='del'>-		ADD_INSNL(ret, line, branchif, label_hit);</div><div class='del'>-		break;</div><div class='del'>-	      default:</div><div class='del'>-		UNKNOWN_NODE("NODE_RESBODY", narg, COMPILE_NG);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ADD_GETLOCAL(ret, line, LVAR_ERRINFO, 0);</div><div class='del'>-	    ADD_INSN1(ret, line, putobject, rb_eStandardError);</div><div class='del'>-	    ADD_INSN1(ret, line, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_RESCUE));</div><div class='del'>-	    ADD_INSNL(ret, line, branchif, label_hit);</div><div class='del'>-	}</div><div class='del'>-	ADD_INSNL(ret, line, jump, label_miss);</div><div class='del'>-	ADD_LABEL(ret, label_hit);</div><div class='del'>-	CHECK(COMPILE(ret, "resbody body", resq-&gt;nd_body));</div><div class='del'>-	if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;tailcall_optimization) {</div><div class='del'>-	    ADD_INSN(ret, line, nop);</div><div class='del'>-	}</div><div class='del'>-	ADD_INSN(ret, line, leave);</div><div class='del'>-	ADD_LABEL(ret, label_miss);</div><div class='del'>-	resq = resq-&gt;nd_head;</div><div class='add'>+        label_miss = NEW_LABEL(line);</div><div class='add'>+        label_hit = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+        narg = resq-&gt;nd_args;</div><div class='add'>+        if (narg) {</div><div class='add'>+            switch (nd_type(narg)) {</div><div class='add'>+              case NODE_LIST:</div><div class='add'>+                while (narg) {</div><div class='add'>+                    ADD_GETLOCAL(ret, line_node, LVAR_ERRINFO, 0);</div><div class='add'>+                    CHECK(COMPILE(ret, "rescue arg", narg-&gt;nd_head));</div><div class='add'>+                    ADD_INSN1(ret, line_node, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_RESCUE));</div><div class='add'>+                    ADD_INSNL(ret, line_node, branchif, label_hit);</div><div class='add'>+                    narg = narg-&gt;nd_next;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case NODE_SPLAT:</div><div class='add'>+              case NODE_ARGSCAT:</div><div class='add'>+              case NODE_ARGSPUSH:</div><div class='add'>+                ADD_GETLOCAL(ret, line_node, LVAR_ERRINFO, 0);</div><div class='add'>+                CHECK(COMPILE(ret, "rescue/cond splat", narg));</div><div class='add'>+                ADD_INSN1(ret, line_node, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_RESCUE | VM_CHECKMATCH_ARRAY));</div><div class='add'>+                ADD_INSNL(ret, line_node, branchif, label_hit);</div><div class='add'>+                break;</div><div class='add'>+              default:</div><div class='add'>+                UNKNOWN_NODE("NODE_RESBODY", narg, COMPILE_NG);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_GETLOCAL(ret, line_node, LVAR_ERRINFO, 0);</div><div class='add'>+            ADD_INSN1(ret, line_node, putobject, rb_eStandardError);</div><div class='add'>+            ADD_INSN1(ret, line_node, checkmatch, INT2FIX(VM_CHECKMATCH_TYPE_RESCUE));</div><div class='add'>+            ADD_INSNL(ret, line_node, branchif, label_hit);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(ret, line_node, jump, label_miss);</div><div class='add'>+        ADD_LABEL(ret, label_hit);</div><div class='add'>+        CHECK(COMPILE(ret, "resbody body", resq-&gt;nd_body));</div><div class='add'>+        if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;tailcall_optimization) {</div><div class='add'>+            ADD_INSN(ret, line_node, nop);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN(ret, line_node, leave);</div><div class='add'>+        ADD_LABEL(ret, label_miss);</div><div class='add'>+        resq = resq-&gt;nd_head;</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -5761,10 +7893,11 @@ static int</div><div class='ctx'> compile_ensure(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='ctx'> {</div><div class='ctx'>     const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'>     DECL_ANCHOR(ensr);</div><div class='ctx'>     const rb_iseq_t *ensure = NEW_CHILD_ISEQ(node-&gt;nd_ensr,</div><div class='del'>-					     rb_str_concat(rb_str_new2 ("ensure in "), iseq-&gt;body-&gt;location.label),</div><div class='del'>-					     ISEQ_TYPE_ENSURE, line);</div><div class='add'>+                                             rb_str_concat(rb_str_new2 ("ensure in "), ISEQ_BODY(iseq)-&gt;location.label),</div><div class='add'>+                                             ISEQ_TYPE_ENSURE, line);</div><div class='ctx'>     LABEL *lstart = NEW_LABEL(line);</div><div class='ctx'>     LABEL *lend = NEW_LABEL(line);</div><div class='ctx'>     LABEL *lcont = NEW_LABEL(line);</div><div class='hunk'>@@ -5788,17 +7921,17 @@ compile_ensure(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node,</div><div class='ctx'>     CHECK(COMPILE_(ret, "ensure head", node-&gt;nd_head, (popped | last_leave)));</div><div class='ctx'>     ADD_LABEL(ret, lend);</div><div class='ctx'>     ADD_SEQ(ret, ensr);</div><div class='del'>-    if (!popped &amp;&amp; last_leave) ADD_INSN(ret, line, putnil);</div><div class='add'>+    if (!popped &amp;&amp; last_leave) ADD_INSN(ret, line_node, putnil);</div><div class='ctx'>     ADD_LABEL(ret, lcont);</div><div class='del'>-    if (last_leave) ADD_INSN(ret, line, pop);</div><div class='add'>+    if (last_leave) ADD_INSN(ret, line_node, pop);</div><div class='ctx'> </div><div class='ctx'>     erange = ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack-&gt;erange;</div><div class='ctx'>     if (lstart-&gt;link.next != &amp;lend-&gt;link) {</div><div class='del'>-	while (erange) {</div><div class='del'>-	    ADD_CATCH_ENTRY(CATCH_TYPE_ENSURE, erange-&gt;begin, erange-&gt;end,</div><div class='del'>-			    ensure, lcont);</div><div class='del'>-	    erange = erange-&gt;next;</div><div class='del'>-	}</div><div class='add'>+        while (erange) {</div><div class='add'>+            ADD_CATCH_ENTRY(CATCH_TYPE_ENSURE, erange-&gt;begin, erange-&gt;end,</div><div class='add'>+                            ensure, lcont);</div><div class='add'>+            erange = erange-&gt;next;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ISEQ_COMPILE_DATA(iseq)-&gt;ensure_node_stack = enl.prev;</div><div class='hunk'>@@ -5808,55 +7941,58 @@ compile_ensure(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node,</div><div class='ctx'> static int</div><div class='ctx'> compile_return(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='ctx'> {</div><div class='del'>-    const int line = nd_line(node);</div><div class='add'>+    const NODE *line_node = node;</div><div class='ctx'> </div><div class='ctx'>     if (iseq) {</div><div class='del'>-	enum iseq_type type = iseq-&gt;body-&gt;type;</div><div class='del'>-	const rb_iseq_t *is = iseq;</div><div class='del'>-	enum iseq_type t = type;</div><div class='del'>-	const NODE *retval = node-&gt;nd_stts;</div><div class='del'>-	LABEL *splabel = 0;</div><div class='del'>-</div><div class='del'>-	while (t == ISEQ_TYPE_RESCUE || t == ISEQ_TYPE_ENSURE) {</div><div class='del'>-	    if (!(is = is-&gt;body-&gt;parent_iseq)) break;</div><div class='del'>-	    t = is-&gt;body-&gt;type;</div><div class='del'>-	}</div><div class='del'>-	switch (t) {</div><div class='del'>-	  case ISEQ_TYPE_TOP:</div><div class='del'>-	  case ISEQ_TYPE_MAIN:</div><div class='del'>-	    if (is == iseq) {</div><div class='del'>-		/* plain top-level, leave directly */</div><div class='del'>-		type = ISEQ_TYPE_METHOD;</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (type == ISEQ_TYPE_METHOD) {</div><div class='del'>-	    splabel = NEW_LABEL(0);</div><div class='del'>-	    ADD_LABEL(ret, splabel);</div><div class='del'>-	    ADD_ADJUST(ret, line, 0);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CHECK(COMPILE(ret, "return nd_stts (return val)", retval));</div><div class='del'>-</div><div class='del'>-	if (type == ISEQ_TYPE_METHOD) {</div><div class='del'>-	    add_ensure_iseq(ret, iseq, 1);</div><div class='del'>-	    ADD_TRACE(ret, RUBY_EVENT_RETURN);</div><div class='del'>-	    ADD_INSN(ret, line, leave);</div><div class='del'>-	    ADD_ADJUST_RESTORE(ret, splabel);</div><div class='del'>-</div><div class='del'>-	    if (!popped) {</div><div class='del'>-		ADD_INSN(ret, line, putnil);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ADD_INSN1(ret, line, throw, INT2FIX(TAG_RETURN));</div><div class='del'>-	    if (popped) {</div><div class='del'>-		ADD_INSN(ret, line, pop);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        enum rb_iseq_type type = ISEQ_BODY(iseq)-&gt;type;</div><div class='add'>+        const rb_iseq_t *is = iseq;</div><div class='add'>+        enum rb_iseq_type t = type;</div><div class='add'>+        const NODE *retval = node-&gt;nd_stts;</div><div class='add'>+        LABEL *splabel = 0;</div><div class='add'>+</div><div class='add'>+        while (t == ISEQ_TYPE_RESCUE || t == ISEQ_TYPE_ENSURE) {</div><div class='add'>+            if (!(is = ISEQ_BODY(is)-&gt;parent_iseq)) break;</div><div class='add'>+            t = ISEQ_BODY(is)-&gt;type;</div><div class='add'>+        }</div><div class='add'>+        switch (t) {</div><div class='add'>+          case ISEQ_TYPE_TOP:</div><div class='add'>+          case ISEQ_TYPE_MAIN:</div><div class='add'>+            if (retval) {</div><div class='add'>+                rb_warn("argument of top-level return is ignored");</div><div class='add'>+            }</div><div class='add'>+            if (is == iseq) {</div><div class='add'>+                /* plain top-level, leave directly */</div><div class='add'>+                type = ISEQ_TYPE_METHOD;</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (type == ISEQ_TYPE_METHOD) {</div><div class='add'>+            splabel = NEW_LABEL(0);</div><div class='add'>+            ADD_LABEL(ret, splabel);</div><div class='add'>+            ADD_ADJUST(ret, line_node, 0);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        CHECK(COMPILE(ret, "return nd_stts (return val)", retval));</div><div class='add'>+</div><div class='add'>+        if (type == ISEQ_TYPE_METHOD &amp;&amp; can_add_ensure_iseq(iseq)) {</div><div class='add'>+            add_ensure_iseq(ret, iseq, 1);</div><div class='add'>+            ADD_TRACE(ret, RUBY_EVENT_RETURN);</div><div class='add'>+            ADD_INSN(ret, line_node, leave);</div><div class='add'>+            ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+</div><div class='add'>+            if (!popped) {</div><div class='add'>+                ADD_INSN(ret, line_node, putnil);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN1(ret, line_node, throw, INT2FIX(TAG_RETURN));</div><div class='add'>+            if (popped) {</div><div class='add'>+                ADD_INSN(ret, line_node, pop);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -5867,21 +8003,1399 @@ compile_evstr(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, i</div><div class='ctx'>     CHECK(COMPILE_(ret, "nd_body", node, popped));</div><div class='ctx'> </div><div class='ctx'>     if (!popped &amp;&amp; !all_string_result_p(node)) {</div><div class='del'>-	const int line = nd_line(node);</div><div class='del'>-	const unsigned int flag = VM_CALL_FCALL;</div><div class='del'>-	LABEL *isstr = NEW_LABEL(line);</div><div class='del'>-	ADD_INSN(ret, line, dup);</div><div class='del'>-	ADD_INSN1(ret, line, checktype, INT2FIX(T_STRING));</div><div class='del'>-	ADD_INSNL(ret, line, branchif, isstr);</div><div class='del'>-	ADD_INSN(ret, line, dup);</div><div class='del'>-	ADD_SEND_R(ret, line, idTo_s, INT2FIX(0), NULL, INT2FIX(flag), NULL);</div><div class='del'>-	ADD_INSN(ret, line, tostring);</div><div class='del'>-	ADD_LABEL(ret, isstr);</div><div class='add'>+        const NODE *line_node = node;</div><div class='add'>+        const unsigned int flag = VM_CALL_FCALL;</div><div class='add'>+</div><div class='add'>+        // Note, this dup could be removed if we are willing to change anytostring. It pops</div><div class='add'>+        // two VALUEs off the stack when it could work by replacing the top most VALUE.</div><div class='add'>+        ADD_INSN(ret, line_node, dup);</div><div class='add'>+        ADD_INSN1(ret, line_node, objtostring, new_callinfo(iseq, idTo_s, 0, flag, NULL, FALSE));</div><div class='add'>+        ADD_INSN(ret, line_node, anytostring);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+compile_lvar(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *line_node, ID id)</div><div class='add'>+{</div><div class='add'>+    int idx = ISEQ_BODY(ISEQ_BODY(iseq)-&gt;local_iseq)-&gt;local_table_size - get_local_var_idx(iseq, id);</div><div class='add'>+</div><div class='add'>+    debugs("id: %s idx: %d\n", rb_id2name(id), idx);</div><div class='add'>+    ADD_GETLOCAL(ret, line_node, idx, get_lvar_level(iseq));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static LABEL *</div><div class='add'>+qcall_branch_start(rb_iseq_t *iseq, LINK_ANCHOR *const recv, VALUE *branches, const NODE *node, const NODE *line_node)</div><div class='add'>+{</div><div class='add'>+    LABEL *else_label = NEW_LABEL(nd_line(line_node));</div><div class='add'>+    VALUE br = 0;</div><div class='add'>+</div><div class='add'>+    br = decl_branch_base(iseq, node, "&amp;.");</div><div class='add'>+    *branches = br;</div><div class='add'>+    ADD_INSN(recv, line_node, dup);</div><div class='add'>+    ADD_INSNL(recv, line_node, branchnil, else_label);</div><div class='add'>+    add_trace_branch_coverage(iseq, recv, node, 0, "then", br);</div><div class='add'>+    return else_label;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+qcall_branch_end(rb_iseq_t *iseq, LINK_ANCHOR *const ret, LABEL *else_label, VALUE branches, const NODE *node, const NODE *line_node)</div><div class='add'>+{</div><div class='add'>+    LABEL *end_label;</div><div class='add'>+    if (!else_label) return;</div><div class='add'>+    end_label = NEW_LABEL(nd_line(line_node));</div><div class='add'>+    ADD_INSNL(ret, line_node, jump, end_label);</div><div class='add'>+    ADD_LABEL(ret, else_label);</div><div class='add'>+    add_trace_branch_coverage(iseq, ret, node, 1, "else", branches);</div><div class='add'>+    ADD_LABEL(ret, end_label);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_call_precheck_freeze(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, const NODE *line_node, int popped)</div><div class='add'>+{</div><div class='add'>+    /* optimization shortcut</div><div class='add'>+     *   "literal".freeze -&gt; opt_str_freeze("literal")</div><div class='add'>+     */</div><div class='add'>+    if (node-&gt;nd_recv &amp;&amp; nd_type_p(node-&gt;nd_recv, NODE_STR) &amp;&amp;</div><div class='add'>+        (node-&gt;nd_mid == idFreeze || node-&gt;nd_mid == idUMinus) &amp;&amp;</div><div class='add'>+        node-&gt;nd_args == NULL &amp;&amp;</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;current_block == NULL &amp;&amp;</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction) {</div><div class='add'>+        VALUE str = rb_fstring(node-&gt;nd_recv-&gt;nd_lit);</div><div class='add'>+        if (node-&gt;nd_mid == idUMinus) {</div><div class='add'>+            ADD_INSN2(ret, line_node, opt_str_uminus, str,</div><div class='add'>+                      new_callinfo(iseq, idUMinus, 0, 0, NULL, FALSE));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN2(ret, line_node, opt_str_freeze, str,</div><div class='add'>+                      new_callinfo(iseq, idFreeze, 0, 0, NULL, FALSE));</div><div class='add'>+        }</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, str);</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, line_node, pop);</div><div class='add'>+        }</div><div class='add'>+        return TRUE;</div><div class='add'>+    }</div><div class='add'>+    /* optimization shortcut</div><div class='add'>+     *   obj["literal"] -&gt; opt_aref_with(obj, "literal")</div><div class='add'>+     */</div><div class='add'>+    if (node-&gt;nd_mid == idAREF &amp;&amp; !private_recv_p(node) &amp;&amp; node-&gt;nd_args &amp;&amp;</div><div class='add'>+        nd_type_p(node-&gt;nd_args, NODE_LIST) &amp;&amp; node-&gt;nd_args-&gt;nd_alen == 1 &amp;&amp;</div><div class='add'>+        nd_type_p(node-&gt;nd_args-&gt;nd_head, NODE_STR) &amp;&amp;</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;current_block == NULL &amp;&amp;</div><div class='add'>+        !ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal &amp;&amp;</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction) {</div><div class='add'>+        VALUE str = rb_fstring(node-&gt;nd_args-&gt;nd_head-&gt;nd_lit);</div><div class='add'>+        CHECK(COMPILE(ret, "recv", node-&gt;nd_recv));</div><div class='add'>+        ADD_INSN2(ret, line_node, opt_aref_with, str,</div><div class='add'>+                  new_callinfo(iseq, idAREF, 1, 0, NULL, FALSE));</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, str);</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, line_node, pop);</div><div class='add'>+        }</div><div class='add'>+        return TRUE;</div><div class='add'>+    }</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_has_builtin_function_table(const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    return ISEQ_COMPILE_DATA(iseq)-&gt;builtin_function_table != NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const struct rb_builtin_function *</div><div class='add'>+iseq_builtin_function_lookup(const rb_iseq_t *iseq, const char *name)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    const struct rb_builtin_function *table = ISEQ_COMPILE_DATA(iseq)-&gt;builtin_function_table;</div><div class='add'>+    for (i=0; table[i].index != -1; i++) {</div><div class='add'>+        if (strcmp(table[i].name, name) == 0) {</div><div class='add'>+            return &amp;table[i];</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const char *</div><div class='add'>+iseq_builtin_function_name(const enum node_type type, const NODE *recv, ID mid)</div><div class='add'>+{</div><div class='add'>+    const char *name = rb_id2name(mid);</div><div class='add'>+    static const char prefix[] = "__builtin_";</div><div class='add'>+    const size_t prefix_len = sizeof(prefix) - 1;</div><div class='add'>+</div><div class='add'>+    switch (type) {</div><div class='add'>+      case NODE_CALL:</div><div class='add'>+        if (recv) {</div><div class='add'>+            switch (nd_type(recv)) {</div><div class='add'>+              case NODE_VCALL:</div><div class='add'>+                if (recv-&gt;nd_mid == rb_intern("__builtin")) {</div><div class='add'>+                    return name;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case NODE_CONST:</div><div class='add'>+                if (recv-&gt;nd_vid == rb_intern("Primitive")) {</div><div class='add'>+                    return name;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              default: break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      case NODE_VCALL:</div><div class='add'>+      case NODE_FCALL:</div><div class='add'>+        if (UNLIKELY(strncmp(prefix, name, prefix_len) == 0)) {</div><div class='add'>+            return &amp;name[prefix_len];</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      default: break;</div><div class='add'>+    }</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+delegate_call_p(const rb_iseq_t *iseq, unsigned int argc, const LINK_ANCHOR *args, unsigned int *pstart_index)</div><div class='add'>+{</div><div class='add'>+</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+        *pstart_index = 0;</div><div class='add'>+        return TRUE;</div><div class='add'>+    }</div><div class='add'>+    else if (argc &lt;= ISEQ_BODY(iseq)-&gt;local_table_size) {</div><div class='add'>+        unsigned int start=0;</div><div class='add'>+</div><div class='add'>+        // local_table: [p1, p2, p3, l1, l2, l3]</div><div class='add'>+        // arguments:           [p3, l1, l2]     -&gt; 2</div><div class='add'>+        for (start = 0;</div><div class='add'>+             argc + start &lt;= ISEQ_BODY(iseq)-&gt;local_table_size;</div><div class='add'>+             start++) {</div><div class='add'>+            const LINK_ELEMENT *elem = FIRST_ELEMENT(args);</div><div class='add'>+</div><div class='add'>+            for (unsigned int i=start; i-start&lt;argc; i++) {</div><div class='add'>+                if (IS_INSN(elem) &amp;&amp;</div><div class='add'>+                    INSN_OF(elem) == BIN(getlocal)) {</div><div class='add'>+                    int local_index = FIX2INT(OPERAND_AT(elem, 0));</div><div class='add'>+                    int local_level = FIX2INT(OPERAND_AT(elem, 1));</div><div class='add'>+</div><div class='add'>+                    if (local_level == 0) {</div><div class='add'>+                        unsigned int index = ISEQ_BODY(iseq)-&gt;local_table_size - (local_index - VM_ENV_DATA_SIZE + 1);</div><div class='add'>+                        if (0) { // for debug</div><div class='add'>+                            fprintf(stderr, "lvar:%s (%d), id:%s (%d) local_index:%d, local_size:%d\n",</div><div class='add'>+                                    rb_id2name(ISEQ_BODY(iseq)-&gt;local_table[i]),     i,</div><div class='add'>+                                    rb_id2name(ISEQ_BODY(iseq)-&gt;local_table[index]), index,</div><div class='add'>+                                    local_index, (int)ISEQ_BODY(iseq)-&gt;local_table_size);</div><div class='add'>+                        }</div><div class='add'>+                        if (i == index) {</div><div class='add'>+                            elem = elem-&gt;next;</div><div class='add'>+                            continue; /* for */</div><div class='add'>+                        }</div><div class='add'>+                        else {</div><div class='add'>+                            goto next;</div><div class='add'>+                        }</div><div class='add'>+                    }</div><div class='add'>+                    else {</div><div class='add'>+                        goto fail; // level != 0 is unsupported</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    goto fail; // insn is not a getlocal</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            goto success;</div><div class='add'>+          next:;</div><div class='add'>+        }</div><div class='add'>+      fail:</div><div class='add'>+        return FALSE;</div><div class='add'>+      success:</div><div class='add'>+        *pstart_index = start;</div><div class='add'>+        return TRUE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return FALSE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_builtin_arg(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, const NODE *line_node, int popped)</div><div class='add'>+{</div><div class='add'>+    if (!node) goto no_arg;</div><div class='add'>+    if (!nd_type_p(node, NODE_LIST)) goto bad_arg;</div><div class='add'>+    if (node-&gt;nd_next) goto too_many_arg;</div><div class='add'>+    node = node-&gt;nd_head;</div><div class='add'>+    if (!node) goto no_arg;</div><div class='add'>+    if (!nd_type_p(node, NODE_LIT)) goto bad_arg;</div><div class='add'>+    VALUE name = node-&gt;nd_lit;</div><div class='add'>+    if (!SYMBOL_P(name)) goto non_symbol_arg;</div><div class='add'>+    if (!popped) {</div><div class='add'>+        compile_lvar(iseq, ret, line_node, SYM2ID(name));</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+  no_arg:</div><div class='add'>+    COMPILE_ERROR(ERROR_ARGS "arg!: no argument");</div><div class='add'>+    return COMPILE_NG;</div><div class='add'>+  too_many_arg:</div><div class='add'>+    COMPILE_ERROR(ERROR_ARGS "arg!: too many argument");</div><div class='add'>+    return COMPILE_NG;</div><div class='add'>+  non_symbol_arg:</div><div class='add'>+    COMPILE_ERROR(ERROR_ARGS "non symbol argument to arg!: %s",</div><div class='add'>+                  rb_builtin_class_name(name));</div><div class='add'>+    return COMPILE_NG;</div><div class='add'>+  bad_arg:</div><div class='add'>+    UNKNOWN_NODE("arg!", node, COMPILE_NG);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static NODE *</div><div class='add'>+mandatory_node(const rb_iseq_t *iseq, const NODE *cond_node)</div><div class='add'>+{</div><div class='add'>+    const NODE *node = ISEQ_COMPILE_DATA(iseq)-&gt;root_node;</div><div class='add'>+    if (nd_type(node) == NODE_IF &amp;&amp; node-&gt;nd_cond == cond_node) {</div><div class='add'>+        return node-&gt;nd_body;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_bug("mandatory_node: can't find mandatory node");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_builtin_mandatory_only_method(rb_iseq_t *iseq, const NODE *node, const NODE *line_node)</div><div class='add'>+{</div><div class='add'>+    // arguments</div><div class='add'>+    struct rb_args_info args = {</div><div class='add'>+        .pre_args_num = ISEQ_BODY(iseq)-&gt;param.lead_num,</div><div class='add'>+    };</div><div class='add'>+    NODE args_node;</div><div class='add'>+    rb_node_init(&amp;args_node, NODE_ARGS, 0, 0, (VALUE)&amp;args);</div><div class='add'>+</div><div class='add'>+    // local table without non-mandatory parameters</div><div class='add'>+    const int skip_local_size = ISEQ_BODY(iseq)-&gt;param.size - ISEQ_BODY(iseq)-&gt;param.lead_num;</div><div class='add'>+    const int table_size = ISEQ_BODY(iseq)-&gt;local_table_size - skip_local_size;</div><div class='add'>+</div><div class='add'>+    VALUE idtmp = 0;</div><div class='add'>+    rb_ast_id_table_t *tbl = ALLOCV(idtmp, sizeof(rb_ast_id_table_t) + table_size * sizeof(ID));</div><div class='add'>+    tbl-&gt;size = table_size;</div><div class='add'>+</div><div class='add'>+    int i;</div><div class='add'>+</div><div class='add'>+    // lead parameters</div><div class='add'>+    for (i=0; i&lt;ISEQ_BODY(iseq)-&gt;param.lead_num; i++) {</div><div class='add'>+        tbl-&gt;ids[i] = ISEQ_BODY(iseq)-&gt;local_table[i];</div><div class='add'>+    }</div><div class='add'>+    // local variables</div><div class='add'>+    for (; i&lt;table_size; i++) {</div><div class='add'>+        tbl-&gt;ids[i] = ISEQ_BODY(iseq)-&gt;local_table[i + skip_local_size];</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    NODE scope_node;</div><div class='add'>+    rb_node_init(&amp;scope_node, NODE_SCOPE, (VALUE)tbl, (VALUE)mandatory_node(iseq, node), (VALUE)&amp;args_node);</div><div class='add'>+</div><div class='add'>+    rb_ast_body_t ast = {</div><div class='add'>+        .root = &amp;scope_node,</div><div class='add'>+        .compile_option = 0,</div><div class='add'>+        .script_lines = ISEQ_BODY(iseq)-&gt;variable.script_lines,</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    int prev_inline_index = GET_VM()-&gt;builtin_inline_index;</div><div class='add'>+</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;mandatory_only_iseq =</div><div class='add'>+      rb_iseq_new_with_opt(&amp;ast, rb_iseq_base_label(iseq),</div><div class='add'>+                           rb_iseq_path(iseq), rb_iseq_realpath(iseq),</div><div class='add'>+                           nd_line(line_node), NULL, 0,</div><div class='add'>+                           ISEQ_TYPE_METHOD, ISEQ_COMPILE_DATA(iseq)-&gt;option);</div><div class='add'>+</div><div class='add'>+    GET_VM()-&gt;builtin_inline_index = prev_inline_index;</div><div class='add'>+    ALLOCV_END(idtmp);</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_builtin_function_call(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, const NODE *line_node, int popped,</div><div class='add'>+                              const rb_iseq_t *parent_block, LINK_ANCHOR *args, const char *builtin_func)</div><div class='add'>+{</div><div class='add'>+    NODE *args_node = node-&gt;nd_args;</div><div class='add'>+</div><div class='add'>+    if (parent_block != NULL) {</div><div class='add'>+        COMPILE_ERROR(iseq, nd_line(line_node), "should not call builtins here.");</div><div class='add'>+        return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+# define BUILTIN_INLINE_PREFIX "_bi"</div><div class='add'>+        char inline_func[DECIMAL_SIZE_OF_BITS(sizeof(int) * CHAR_BIT) + sizeof(BUILTIN_INLINE_PREFIX)];</div><div class='add'>+        bool cconst = false;</div><div class='add'>+      retry:;</div><div class='add'>+        const struct rb_builtin_function *bf = iseq_builtin_function_lookup(iseq, builtin_func);</div><div class='add'>+</div><div class='add'>+        if (bf == NULL) {</div><div class='add'>+            if (strcmp("cstmt!", builtin_func) == 0 ||</div><div class='add'>+                strcmp("cexpr!", builtin_func) == 0) {</div><div class='add'>+                // ok</div><div class='add'>+            }</div><div class='add'>+            else if (strcmp("cconst!", builtin_func) == 0) {</div><div class='add'>+                cconst = true;</div><div class='add'>+            }</div><div class='add'>+            else if (strcmp("cinit!", builtin_func) == 0) {</div><div class='add'>+                // ignore</div><div class='add'>+                GET_VM()-&gt;builtin_inline_index++;</div><div class='add'>+                return COMPILE_OK;</div><div class='add'>+            }</div><div class='add'>+            else if (strcmp("attr!", builtin_func) == 0) {</div><div class='add'>+                // There's only "inline" attribute for now</div><div class='add'>+                ISEQ_BODY(iseq)-&gt;builtin_inline_p = true;</div><div class='add'>+                return COMPILE_OK;</div><div class='add'>+            }</div><div class='add'>+            else if (strcmp("arg!", builtin_func) == 0) {</div><div class='add'>+                return compile_builtin_arg(iseq, ret, args_node, line_node, popped);</div><div class='add'>+            }</div><div class='add'>+            else if (strcmp("mandatory_only?", builtin_func) == 0) {</div><div class='add'>+                if (popped) {</div><div class='add'>+                    rb_bug("mandatory_only? should be in if condition");</div><div class='add'>+                }</div><div class='add'>+                else if (!LIST_INSN_SIZE_ZERO(ret)) {</div><div class='add'>+                    rb_bug("mandatory_only? should be put on top");</div><div class='add'>+                }</div><div class='add'>+</div><div class='add'>+                ADD_INSN1(ret, line_node, putobject, Qfalse);</div><div class='add'>+                return compile_builtin_mandatory_only_method(iseq, node, line_node);</div><div class='add'>+            }</div><div class='add'>+            else if (1) {</div><div class='add'>+                rb_bug("can't find builtin function:%s", builtin_func);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                COMPILE_ERROR(ERROR_ARGS "can't find builtin function:%s", builtin_func);</div><div class='add'>+                return COMPILE_NG;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (GET_VM()-&gt;builtin_inline_index == INT_MAX) {</div><div class='add'>+                rb_bug("builtin inline function index overflow:%s", builtin_func);</div><div class='add'>+            }</div><div class='add'>+            int inline_index = GET_VM()-&gt;builtin_inline_index++;</div><div class='add'>+            snprintf(inline_func, sizeof(inline_func), BUILTIN_INLINE_PREFIX "%d", inline_index);</div><div class='add'>+            builtin_func = inline_func;</div><div class='add'>+            args_node = NULL;</div><div class='add'>+            goto retry;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (cconst) {</div><div class='add'>+            typedef VALUE(*builtin_func0)(void *, VALUE);</div><div class='add'>+            VALUE const_val = (*(builtin_func0)bf-&gt;func_ptr)(NULL, Qnil);</div><div class='add'>+            ADD_INSN1(ret, line_node, putobject, const_val);</div><div class='add'>+            return COMPILE_OK;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // fprintf(stderr, "func_name:%s -&gt; %p\n", builtin_func, bf-&gt;func_ptr);</div><div class='add'>+</div><div class='add'>+        unsigned int flag = 0;</div><div class='add'>+        struct rb_callinfo_kwarg *keywords = NULL;</div><div class='add'>+        VALUE argc = setup_args(iseq, args, args_node, &amp;flag, &amp;keywords);</div><div class='add'>+</div><div class='add'>+        if (FIX2INT(argc) != bf-&gt;argc) {</div><div class='add'>+            COMPILE_ERROR(ERROR_ARGS "argc is not match for builtin function:%s (expect %d but %d)",</div><div class='add'>+                          builtin_func, bf-&gt;argc, FIX2INT(argc));</div><div class='add'>+            return COMPILE_NG;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        unsigned int start_index;</div><div class='add'>+        if (delegate_call_p(iseq, FIX2INT(argc), args, &amp;start_index)) {</div><div class='add'>+            ADD_INSN2(ret, line_node, opt_invokebuiltin_delegate, bf, INT2FIX(start_index));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_SEQ(ret, args);</div><div class='add'>+            ADD_INSN1(ret, line_node, invokebuiltin, bf);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (popped) ADD_INSN(ret, line_node, pop);</div><div class='add'>+        return COMPILE_OK;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_call(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, const enum node_type type, const NODE *const line_node, int popped, bool assume_receiver)</div><div class='add'>+{</div><div class='add'>+    /* call:  obj.method(...)</div><div class='add'>+     * fcall: func(...)</div><div class='add'>+     * vcall: func</div><div class='add'>+     */</div><div class='add'>+    DECL_ANCHOR(recv);</div><div class='add'>+    DECL_ANCHOR(args);</div><div class='add'>+    ID mid = node-&gt;nd_mid;</div><div class='add'>+    VALUE argc;</div><div class='add'>+    unsigned int flag = 0;</div><div class='add'>+    struct rb_callinfo_kwarg *keywords = NULL;</div><div class='add'>+    const rb_iseq_t *parent_block = ISEQ_COMPILE_DATA(iseq)-&gt;current_block;</div><div class='add'>+    LABEL *else_label = NULL;</div><div class='add'>+    VALUE branches = Qfalse;</div><div class='add'>+</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;current_block = NULL;</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(recv);</div><div class='add'>+    INIT_ANCHOR(args);</div><div class='add'>+#if OPT_SUPPORT_JOKE</div><div class='add'>+    if (nd_type_p(node, NODE_VCALL)) {</div><div class='add'>+        ID id_bitblt;</div><div class='add'>+        ID id_answer;</div><div class='add'>+</div><div class='add'>+        CONST_ID(id_bitblt, "bitblt");</div><div class='add'>+        CONST_ID(id_answer, "the_answer_to_life_the_universe_and_everything");</div><div class='add'>+</div><div class='add'>+        if (mid == id_bitblt) {</div><div class='add'>+            ADD_INSN(ret, line_node, bitblt);</div><div class='add'>+            return COMPILE_OK;</div><div class='add'>+        }</div><div class='add'>+        else if (mid == id_answer) {</div><div class='add'>+            ADD_INSN(ret, line_node, answer);</div><div class='add'>+            return COMPILE_OK;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    /* only joke */</div><div class='add'>+    {</div><div class='add'>+        ID goto_id;</div><div class='add'>+        ID label_id;</div><div class='add'>+</div><div class='add'>+        CONST_ID(goto_id, "__goto__");</div><div class='add'>+        CONST_ID(label_id, "__label__");</div><div class='add'>+</div><div class='add'>+        if (nd_type_p(node, NODE_FCALL) &amp;&amp;</div><div class='add'>+            (mid == goto_id || mid == label_id)) {</div><div class='add'>+            LABEL *label;</div><div class='add'>+            st_data_t data;</div><div class='add'>+            st_table *labels_table = ISEQ_COMPILE_DATA(iseq)-&gt;labels_table;</div><div class='add'>+            VALUE label_name;</div><div class='add'>+</div><div class='add'>+            if (!labels_table) {</div><div class='add'>+                labels_table = st_init_numtable();</div><div class='add'>+                ISEQ_COMPILE_DATA(iseq)-&gt;labels_table = labels_table;</div><div class='add'>+            }</div><div class='add'>+            if (nd_type_p(node-&gt;nd_args-&gt;nd_head, NODE_LIT) &amp;&amp;</div><div class='add'>+                SYMBOL_P(node-&gt;nd_args-&gt;nd_head-&gt;nd_lit)) {</div><div class='add'>+</div><div class='add'>+                label_name = node-&gt;nd_args-&gt;nd_head-&gt;nd_lit;</div><div class='add'>+                if (!st_lookup(labels_table, (st_data_t)label_name, &amp;data)) {</div><div class='add'>+                    label = NEW_LABEL(nd_line(line_node));</div><div class='add'>+                    label-&gt;position = nd_line(line_node);</div><div class='add'>+                    st_insert(labels_table, (st_data_t)label_name, (st_data_t)label);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    label = (LABEL *)data;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                COMPILE_ERROR(ERROR_ARGS "invalid goto/label format");</div><div class='add'>+                return COMPILE_NG;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (mid == goto_id) {</div><div class='add'>+                ADD_INSNL(ret, line_node, jump, label);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ADD_LABEL(ret, label);</div><div class='add'>+            }</div><div class='add'>+            return COMPILE_OK;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    const char *builtin_func;</div><div class='add'>+    if (UNLIKELY(iseq_has_builtin_function_table(iseq)) &amp;&amp;</div><div class='add'>+        (builtin_func = iseq_builtin_function_name(type, node-&gt;nd_recv, mid)) != NULL) {</div><div class='add'>+        return compile_builtin_function_call(iseq, ret, node, line_node, popped, parent_block, args, builtin_func);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* receiver */</div><div class='add'>+    if (!assume_receiver) {</div><div class='add'>+        if (type == NODE_CALL || type == NODE_OPCALL || type == NODE_QCALL) {</div><div class='add'>+            int idx, level;</div><div class='add'>+</div><div class='add'>+            if (mid == idCall &amp;&amp;</div><div class='add'>+                nd_type_p(node-&gt;nd_recv, NODE_LVAR) &amp;&amp;</div><div class='add'>+                iseq_block_param_id_p(iseq, node-&gt;nd_recv-&gt;nd_vid, &amp;idx, &amp;level)) {</div><div class='add'>+                ADD_INSN2(recv, node-&gt;nd_recv, getblockparamproxy, INT2FIX(idx + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='add'>+            }</div><div class='add'>+            else if (private_recv_p(node)) {</div><div class='add'>+                ADD_INSN(recv, node, putself);</div><div class='add'>+                flag |= VM_CALL_FCALL;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                CHECK(COMPILE(recv, "recv", node-&gt;nd_recv));</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (type == NODE_QCALL) {</div><div class='add'>+                else_label = qcall_branch_start(iseq, recv, &amp;branches, node, line_node);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else if (type == NODE_FCALL || type == NODE_VCALL) {</div><div class='add'>+            ADD_CALL_RECEIVER(recv, line_node);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* args */</div><div class='add'>+    if (type != NODE_VCALL) {</div><div class='add'>+        argc = setup_args(iseq, args, node-&gt;nd_args, &amp;flag, &amp;keywords);</div><div class='add'>+        CHECK(!NIL_P(argc));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        argc = INT2FIX(0);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_SEQ(ret, recv);</div><div class='add'>+    ADD_SEQ(ret, args);</div><div class='add'>+</div><div class='add'>+    debugp_param("call args argc", argc);</div><div class='add'>+    debugp_param("call method", ID2SYM(mid));</div><div class='add'>+</div><div class='add'>+    switch ((int)type) {</div><div class='add'>+      case NODE_VCALL:</div><div class='add'>+        flag |= VM_CALL_VCALL;</div><div class='add'>+        /* VCALL is funcall, so fall through */</div><div class='add'>+      case NODE_FCALL:</div><div class='add'>+        flag |= VM_CALL_FCALL;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_SEND_R(ret, line_node, mid, argc, parent_block, INT2FIX(flag), keywords);</div><div class='add'>+</div><div class='add'>+    qcall_branch_end(iseq, ret, else_label, branches, node, line_node);</div><div class='add'>+    if (popped) {</div><div class='add'>+        ADD_INSN(ret, line_node, pop);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_op_asgn1(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    VALUE argc;</div><div class='add'>+    unsigned int flag = 0;</div><div class='add'>+    int asgnflag = 0;</div><div class='add'>+    ID id = node-&gt;nd_mid;</div><div class='add'>+    int boff = 0;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * a[x] (op)= y</div><div class='add'>+     *</div><div class='add'>+     * nil       # nil</div><div class='add'>+     * eval a    # nil a</div><div class='add'>+     * eval x    # nil a x</div><div class='add'>+     * dupn 2    # nil a x a x</div><div class='add'>+     * send :[]  # nil a x a[x]</div><div class='add'>+     * eval y    # nil a x a[x] y</div><div class='add'>+     * send op   # nil a x ret</div><div class='add'>+     * setn 3    # ret a x ret</div><div class='add'>+     * send []=  # ret ?</div><div class='add'>+     * pop       # ret</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * nd_recv[nd_args-&gt;nd_body] (nd_mid)= nd_args-&gt;nd_head;</div><div class='add'>+     * NODE_OP_ASGN nd_recv</div><div class='add'>+     *              nd_args-&gt;nd_head</div><div class='add'>+     *              nd_args-&gt;nd_body</div><div class='add'>+     *              nd_mid</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    if (!popped) {</div><div class='add'>+        ADD_INSN(ret, node, putnil);</div><div class='add'>+    }</div><div class='add'>+    asgnflag = COMPILE_RECV(ret, "NODE_OP_ASGN1 recv", node);</div><div class='add'>+    CHECK(asgnflag != -1);</div><div class='add'>+    switch (nd_type(node-&gt;nd_args-&gt;nd_head)) {</div><div class='add'>+      case NODE_ZLIST:</div><div class='add'>+        argc = INT2FIX(0);</div><div class='add'>+        break;</div><div class='add'>+      case NODE_BLOCK_PASS:</div><div class='add'>+        boff = 1;</div><div class='add'>+        /* fall through */</div><div class='add'>+      default:</div><div class='add'>+        argc = setup_args(iseq, ret, node-&gt;nd_args-&gt;nd_head, &amp;flag, NULL);</div><div class='add'>+        CHECK(!NIL_P(argc));</div><div class='add'>+    }</div><div class='add'>+    ADD_INSN1(ret, node, dupn, FIXNUM_INC(argc, 1 + boff));</div><div class='add'>+    flag |= asgnflag;</div><div class='add'>+    ADD_SEND_WITH_FLAG(ret, node, idAREF, argc, INT2FIX(flag));</div><div class='add'>+</div><div class='add'>+    if (id == idOROP || id == idANDOP) {</div><div class='add'>+        /* a[x] ||= y  or  a[x] &amp;&amp;= y</div><div class='add'>+</div><div class='add'>+           unless/if a[x]</div><div class='add'>+           a[x]= y</div><div class='add'>+           else</div><div class='add'>+           nil</div><div class='add'>+           end</div><div class='add'>+        */</div><div class='add'>+        LABEL *label = NEW_LABEL(line);</div><div class='add'>+        LABEL *lfin = NEW_LABEL(line);</div><div class='add'>+</div><div class='add'>+        ADD_INSN(ret, node, dup);</div><div class='add'>+        if (id == idOROP) {</div><div class='add'>+            ADD_INSNL(ret, node, branchif, label);</div><div class='add'>+        }</div><div class='add'>+        else { /* idANDOP */</div><div class='add'>+            ADD_INSNL(ret, node, branchunless, label);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN(ret, node, pop);</div><div class='add'>+</div><div class='add'>+        CHECK(COMPILE(ret, "NODE_OP_ASGN1 args-&gt;body: ", node-&gt;nd_args-&gt;nd_body));</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, node, setn, FIXNUM_INC(argc, 2+boff));</div><div class='add'>+        }</div><div class='add'>+        if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='add'>+            ADD_INSN1(ret, node, newarray, INT2FIX(1));</div><div class='add'>+            if (boff &gt; 0) {</div><div class='add'>+                ADD_INSN1(ret, node, dupn, INT2FIX(3));</div><div class='add'>+                ADD_INSN(ret, node, swap);</div><div class='add'>+                ADD_INSN(ret, node, pop);</div><div class='add'>+            }</div><div class='add'>+            ADD_INSN(ret, node, concatarray);</div><div class='add'>+            if (boff &gt; 0) {</div><div class='add'>+                ADD_INSN1(ret, node, setn, INT2FIX(3));</div><div class='add'>+                ADD_INSN(ret, node, pop);</div><div class='add'>+                ADD_INSN(ret, node, pop);</div><div class='add'>+            }</div><div class='add'>+            ADD_SEND_WITH_FLAG(ret, node, idASET, argc, INT2FIX(flag));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (boff &gt; 0)</div><div class='add'>+                ADD_INSN(ret, node, swap);</div><div class='add'>+            ADD_SEND_WITH_FLAG(ret, node, idASET, FIXNUM_INC(argc, 1), INT2FIX(flag));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN(ret, node, pop);</div><div class='add'>+        ADD_INSNL(ret, node, jump, lfin);</div><div class='add'>+        ADD_LABEL(ret, label);</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, node, setn, FIXNUM_INC(argc, 2+boff));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN1(ret, node, adjuststack, FIXNUM_INC(argc, 2+boff));</div><div class='add'>+        ADD_LABEL(ret, lfin);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        CHECK(COMPILE(ret, "NODE_OP_ASGN1 args-&gt;body: ", node-&gt;nd_args-&gt;nd_body));</div><div class='add'>+        ADD_SEND(ret, node, id, INT2FIX(1));</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, node, setn, FIXNUM_INC(argc, 2+boff));</div><div class='add'>+        }</div><div class='add'>+        if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='add'>+            ADD_INSN1(ret, node, newarray, INT2FIX(1));</div><div class='add'>+            if (boff &gt; 0) {</div><div class='add'>+                ADD_INSN1(ret, node, dupn, INT2FIX(3));</div><div class='add'>+                ADD_INSN(ret, node, swap);</div><div class='add'>+                ADD_INSN(ret, node, pop);</div><div class='add'>+            }</div><div class='add'>+            ADD_INSN(ret, node, concatarray);</div><div class='add'>+            if (boff &gt; 0) {</div><div class='add'>+                ADD_INSN1(ret, node, setn, INT2FIX(3));</div><div class='add'>+                ADD_INSN(ret, node, pop);</div><div class='add'>+                ADD_INSN(ret, node, pop);</div><div class='add'>+            }</div><div class='add'>+            ADD_SEND_WITH_FLAG(ret, node, idASET, argc, INT2FIX(flag));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (boff &gt; 0)</div><div class='add'>+                ADD_INSN(ret, node, swap);</div><div class='add'>+            ADD_SEND_WITH_FLAG(ret, node, idASET, FIXNUM_INC(argc, 1), INT2FIX(flag));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN(ret, node, pop);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_op_asgn2(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    ID atype = node-&gt;nd_next-&gt;nd_mid;</div><div class='add'>+    ID vid = node-&gt;nd_next-&gt;nd_vid, aid = rb_id_attrset(vid);</div><div class='add'>+    int asgnflag;</div><div class='add'>+    LABEL *lfin = NEW_LABEL(line);</div><div class='add'>+    LABEL *lcfin = NEW_LABEL(line);</div><div class='add'>+    LABEL *lskip = 0;</div><div class='add'>+    /*</div><div class='add'>+      class C; attr_accessor :c; end</div><div class='add'>+      r = C.new</div><div class='add'>+      r.a &amp;&amp;= v # asgn2</div><div class='add'>+</div><div class='add'>+      eval r    # r</div><div class='add'>+      dup       # r r</div><div class='add'>+      eval r.a  # r o</div><div class='add'>+</div><div class='add'>+      # or</div><div class='add'>+      dup       # r o o</div><div class='add'>+      if lcfin  # r o</div><div class='add'>+      pop       # r</div><div class='add'>+      eval v    # r v</div><div class='add'>+      swap      # v r</div><div class='add'>+      topn 1    # v r v</div><div class='add'>+      send a=   # v ?</div><div class='add'>+      jump lfin # v ?</div><div class='add'>+</div><div class='add'>+      lcfin:      # r o</div><div class='add'>+      swap      # o r</div><div class='add'>+</div><div class='add'>+      lfin:       # o ?</div><div class='add'>+      pop       # o</div><div class='add'>+</div><div class='add'>+      # or (popped)</div><div class='add'>+      if lcfin  # r</div><div class='add'>+      eval v    # r v</div><div class='add'>+      send a=   # ?</div><div class='add'>+      jump lfin # ?</div><div class='add'>+</div><div class='add'>+      lcfin:      # r</div><div class='add'>+</div><div class='add'>+      lfin:       # ?</div><div class='add'>+      pop       #</div><div class='add'>+</div><div class='add'>+      # and</div><div class='add'>+      dup       # r o o</div><div class='add'>+      unless lcfin</div><div class='add'>+      pop       # r</div><div class='add'>+      eval v    # r v</div><div class='add'>+      swap      # v r</div><div class='add'>+      topn 1    # v r v</div><div class='add'>+      send a=   # v ?</div><div class='add'>+      jump lfin # v ?</div><div class='add'>+</div><div class='add'>+      # others</div><div class='add'>+      eval v    # r o v</div><div class='add'>+      send ??   # r w</div><div class='add'>+      send a=   # w</div><div class='add'>+</div><div class='add'>+    */</div><div class='add'>+</div><div class='add'>+    asgnflag = COMPILE_RECV(ret, "NODE_OP_ASGN2#recv", node);</div><div class='add'>+    CHECK(asgnflag != -1);</div><div class='add'>+    if (node-&gt;nd_next-&gt;nd_aid) {</div><div class='add'>+        lskip = NEW_LABEL(line);</div><div class='add'>+        ADD_INSN(ret, node, dup);</div><div class='add'>+        ADD_INSNL(ret, node, branchnil, lskip);</div><div class='add'>+    }</div><div class='add'>+    ADD_INSN(ret, node, dup);</div><div class='add'>+    ADD_SEND_WITH_FLAG(ret, node, vid, INT2FIX(0), INT2FIX(asgnflag));</div><div class='add'>+</div><div class='add'>+    if (atype == idOROP || atype == idANDOP) {</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, dup);</div><div class='add'>+        }</div><div class='add'>+        if (atype == idOROP) {</div><div class='add'>+            ADD_INSNL(ret, node, branchif, lcfin);</div><div class='add'>+        }</div><div class='add'>+        else { /* idANDOP */</div><div class='add'>+            ADD_INSNL(ret, node, branchunless, lcfin);</div><div class='add'>+        }</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        CHECK(COMPILE(ret, "NODE_OP_ASGN2 val", node-&gt;nd_value));</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, swap);</div><div class='add'>+            ADD_INSN1(ret, node, topn, INT2FIX(1));</div><div class='add'>+        }</div><div class='add'>+        ADD_SEND_WITH_FLAG(ret, node, aid, INT2FIX(1), INT2FIX(asgnflag));</div><div class='add'>+        ADD_INSNL(ret, node, jump, lfin);</div><div class='add'>+</div><div class='add'>+        ADD_LABEL(ret, lcfin);</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, swap);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ADD_LABEL(ret, lfin);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        CHECK(COMPILE(ret, "NODE_OP_ASGN2 val", node-&gt;nd_value));</div><div class='add'>+        ADD_SEND(ret, node, atype, INT2FIX(1));</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, swap);</div><div class='add'>+            ADD_INSN1(ret, node, topn, INT2FIX(1));</div><div class='add'>+        }</div><div class='add'>+        ADD_SEND_WITH_FLAG(ret, node, aid, INT2FIX(1), INT2FIX(asgnflag));</div><div class='add'>+    }</div><div class='add'>+    if (lskip &amp;&amp; popped) {</div><div class='add'>+        ADD_LABEL(ret, lskip);</div><div class='add'>+    }</div><div class='add'>+    ADD_INSN(ret, node, pop);</div><div class='add'>+    if (lskip &amp;&amp; !popped) {</div><div class='add'>+        ADD_LABEL(ret, lskip);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_op_cdecl(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    LABEL *lfin = 0;</div><div class='add'>+    LABEL *lassign = 0;</div><div class='add'>+    ID mid;</div><div class='add'>+</div><div class='add'>+    switch (nd_type(node-&gt;nd_head)) {</div><div class='add'>+      case NODE_COLON3:</div><div class='add'>+        ADD_INSN1(ret, node, putobject, rb_cObject);</div><div class='add'>+        break;</div><div class='add'>+      case NODE_COLON2:</div><div class='add'>+        CHECK(COMPILE(ret, "NODE_OP_CDECL/colon2#nd_head", node-&gt;nd_head-&gt;nd_head));</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        COMPILE_ERROR(ERROR_ARGS "%s: invalid node in NODE_OP_CDECL",</div><div class='add'>+                      ruby_node_name(nd_type(node-&gt;nd_head)));</div><div class='add'>+        return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+    mid = node-&gt;nd_head-&gt;nd_mid;</div><div class='add'>+    /* cref */</div><div class='add'>+    if (node-&gt;nd_aid == idOROP) {</div><div class='add'>+        lassign = NEW_LABEL(line);</div><div class='add'>+        ADD_INSN(ret, node, dup); /* cref cref */</div><div class='add'>+        ADD_INSN3(ret, node, defined, INT2FIX(DEFINED_CONST_FROM),</div><div class='add'>+                  ID2SYM(mid), Qtrue); /* cref bool */</div><div class='add'>+        ADD_INSNL(ret, node, branchunless, lassign); /* cref */</div><div class='add'>+    }</div><div class='add'>+    ADD_INSN(ret, node, dup); /* cref cref */</div><div class='add'>+    ADD_INSN1(ret, node, putobject, Qtrue);</div><div class='add'>+    ADD_INSN1(ret, node, getconstant, ID2SYM(mid)); /* cref obj */</div><div class='add'>+</div><div class='add'>+    if (node-&gt;nd_aid == idOROP || node-&gt;nd_aid == idANDOP) {</div><div class='add'>+        lfin = NEW_LABEL(line);</div><div class='add'>+        if (!popped) ADD_INSN(ret, node, dup); /* cref [obj] obj */</div><div class='add'>+        if (node-&gt;nd_aid == idOROP)</div><div class='add'>+            ADD_INSNL(ret, node, branchif, lfin);</div><div class='add'>+        else /* idANDOP */</div><div class='add'>+            ADD_INSNL(ret, node, branchunless, lfin);</div><div class='add'>+        /* cref [obj] */</div><div class='add'>+        if (!popped) ADD_INSN(ret, node, pop); /* cref */</div><div class='add'>+        if (lassign) ADD_LABEL(ret, lassign);</div><div class='add'>+        CHECK(COMPILE(ret, "NODE_OP_CDECL#nd_value", node-&gt;nd_value));</div><div class='add'>+        /* cref value */</div><div class='add'>+        if (popped)</div><div class='add'>+            ADD_INSN1(ret, node, topn, INT2FIX(1)); /* cref value cref */</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN1(ret, node, dupn, INT2FIX(2)); /* cref value cref value */</div><div class='add'>+            ADD_INSN(ret, node, swap); /* cref value value cref */</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN1(ret, node, setconstant, ID2SYM(mid)); /* cref [value] */</div><div class='add'>+        ADD_LABEL(ret, lfin);			    /* cref [value] */</div><div class='add'>+        if (!popped) ADD_INSN(ret, node, swap); /* [value] cref */</div><div class='add'>+        ADD_INSN(ret, node, pop); /* [value] */</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        CHECK(COMPILE(ret, "NODE_OP_CDECL#nd_value", node-&gt;nd_value));</div><div class='add'>+        /* cref obj value */</div><div class='add'>+        ADD_CALL(ret, node, node-&gt;nd_aid, INT2FIX(1));</div><div class='add'>+        /* cref value */</div><div class='add'>+        ADD_INSN(ret, node, swap); /* value cref */</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, node, topn, INT2FIX(1)); /* value cref value */</div><div class='add'>+            ADD_INSN(ret, node, swap); /* value value cref */</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN1(ret, node, setconstant, ID2SYM(mid));</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_op_log(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped, const enum node_type type)</div><div class='add'>+{</div><div class='add'>+    const int line = nd_line(node);</div><div class='add'>+    LABEL *lfin = NEW_LABEL(line);</div><div class='add'>+    LABEL *lassign;</div><div class='add'>+</div><div class='add'>+    if (type == NODE_OP_ASGN_OR &amp;&amp; !nd_type_p(node-&gt;nd_head, NODE_IVAR)) {</div><div class='add'>+        LABEL *lfinish[2];</div><div class='add'>+        lfinish[0] = lfin;</div><div class='add'>+        lfinish[1] = 0;</div><div class='add'>+        defined_expr(iseq, ret, node-&gt;nd_head, lfinish, Qfalse);</div><div class='add'>+        lassign = lfinish[1];</div><div class='add'>+        if (!lassign) {</div><div class='add'>+            lassign = NEW_LABEL(line);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSNL(ret, node, branchunless, lassign);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        lassign = NEW_LABEL(line);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    CHECK(COMPILE(ret, "NODE_OP_ASGN_AND/OR#nd_head", node-&gt;nd_head));</div><div class='add'>+</div><div class='add'>+    if (!popped) {</div><div class='add'>+        ADD_INSN(ret, node, dup);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (type == NODE_OP_ASGN_AND) {</div><div class='add'>+        ADD_INSNL(ret, node, branchunless, lfin);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ADD_INSNL(ret, node, branchif, lfin);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!popped) {</div><div class='add'>+        ADD_INSN(ret, node, pop);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_LABEL(ret, lassign);</div><div class='add'>+    CHECK(COMPILE_(ret, "NODE_OP_ASGN_AND/OR#nd_value", node-&gt;nd_value, popped));</div><div class='add'>+    ADD_LABEL(ret, lfin);</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_super(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped, const enum node_type type)</div><div class='add'>+{</div><div class='add'>+    struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='add'>+    DECL_ANCHOR(args);</div><div class='add'>+    int argc;</div><div class='add'>+    unsigned int flag = 0;</div><div class='add'>+    struct rb_callinfo_kwarg *keywords = NULL;</div><div class='add'>+    const rb_iseq_t *parent_block = ISEQ_COMPILE_DATA(iseq)-&gt;current_block;</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(args);</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;current_block = NULL;</div><div class='add'>+    if (type == NODE_SUPER) {</div><div class='add'>+        VALUE vargc = setup_args(iseq, args, node-&gt;nd_args, &amp;flag, &amp;keywords);</div><div class='add'>+        CHECK(!NIL_P(vargc));</div><div class='add'>+        argc = FIX2INT(vargc);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        /* NODE_ZSUPER */</div><div class='add'>+        int i;</div><div class='add'>+        const rb_iseq_t *liseq = body-&gt;local_iseq;</div><div class='add'>+        const struct rb_iseq_constant_body *const local_body = ISEQ_BODY(liseq);</div><div class='add'>+        const struct rb_iseq_param_keyword *const local_kwd = local_body-&gt;param.keyword;</div><div class='add'>+        int lvar_level = get_lvar_level(iseq);</div><div class='add'>+</div><div class='add'>+        argc = local_body-&gt;param.lead_num;</div><div class='add'>+</div><div class='add'>+        /* normal arguments */</div><div class='add'>+        for (i = 0; i &lt; local_body-&gt;param.lead_num; i++) {</div><div class='add'>+            int idx = local_body-&gt;local_table_size - i;</div><div class='add'>+            ADD_GETLOCAL(args, node, idx, lvar_level);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (local_body-&gt;param.flags.has_opt) {</div><div class='add'>+            /* optional arguments */</div><div class='add'>+            int j;</div><div class='add'>+            for (j = 0; j &lt; local_body-&gt;param.opt_num; j++) {</div><div class='add'>+                int idx = local_body-&gt;local_table_size - (i + j);</div><div class='add'>+                ADD_GETLOCAL(args, node, idx, lvar_level);</div><div class='add'>+            }</div><div class='add'>+            i += j;</div><div class='add'>+            argc = i;</div><div class='add'>+        }</div><div class='add'>+        if (local_body-&gt;param.flags.has_rest) {</div><div class='add'>+            /* rest argument */</div><div class='add'>+            int idx = local_body-&gt;local_table_size - local_body-&gt;param.rest_start;</div><div class='add'>+            ADD_GETLOCAL(args, node, idx, lvar_level);</div><div class='add'>+            ADD_INSN1(args, node, splatarray, Qfalse);</div><div class='add'>+</div><div class='add'>+            argc = local_body-&gt;param.rest_start + 1;</div><div class='add'>+            flag |= VM_CALL_ARGS_SPLAT;</div><div class='add'>+        }</div><div class='add'>+        if (local_body-&gt;param.flags.has_post) {</div><div class='add'>+            /* post arguments */</div><div class='add'>+            int post_len = local_body-&gt;param.post_num;</div><div class='add'>+            int post_start = local_body-&gt;param.post_start;</div><div class='add'>+</div><div class='add'>+            if (local_body-&gt;param.flags.has_rest) {</div><div class='add'>+                int j;</div><div class='add'>+                for (j=0; j&lt;post_len; j++) {</div><div class='add'>+                    int idx = local_body-&gt;local_table_size - (post_start + j);</div><div class='add'>+                    ADD_GETLOCAL(args, node, idx, lvar_level);</div><div class='add'>+                }</div><div class='add'>+                ADD_INSN1(args, node, newarray, INT2FIX(j));</div><div class='add'>+                ADD_INSN (args, node, concatarray);</div><div class='add'>+                /* argc is settled at above */</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                int j;</div><div class='add'>+                for (j=0; j&lt;post_len; j++) {</div><div class='add'>+                    int idx = local_body-&gt;local_table_size - (post_start + j);</div><div class='add'>+                    ADD_GETLOCAL(args, node, idx, lvar_level);</div><div class='add'>+                }</div><div class='add'>+                argc = post_len + post_start;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (local_body-&gt;param.flags.has_kw) { /* TODO: support keywords */</div><div class='add'>+            int local_size = local_body-&gt;local_table_size;</div><div class='add'>+            argc++;</div><div class='add'>+</div><div class='add'>+            ADD_INSN1(args, node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+</div><div class='add'>+            if (local_body-&gt;param.flags.has_kwrest) {</div><div class='add'>+                int idx = local_body-&gt;local_table_size - local_kwd-&gt;rest_start;</div><div class='add'>+                ADD_GETLOCAL(args, node, idx, lvar_level);</div><div class='add'>+                if (local_kwd-&gt;num &gt; 0) {</div><div class='add'>+                    ADD_SEND (args, node, rb_intern("dup"), INT2FIX(0));</div><div class='add'>+                    flag |= VM_CALL_KW_SPLAT_MUT;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ADD_INSN1(args, node, newhash, INT2FIX(0));</div><div class='add'>+                flag |= VM_CALL_KW_SPLAT_MUT;</div><div class='add'>+            }</div><div class='add'>+            for (i = 0; i &lt; local_kwd-&gt;num; ++i) {</div><div class='add'>+                ID id = local_kwd-&gt;table[i];</div><div class='add'>+                int idx = local_size - get_local_var_idx(liseq, id);</div><div class='add'>+                ADD_INSN1(args, node, putobject, ID2SYM(id));</div><div class='add'>+                ADD_GETLOCAL(args, node, idx, lvar_level);</div><div class='add'>+            }</div><div class='add'>+            ADD_SEND(args, node, id_core_hash_merge_ptr, INT2FIX(i * 2 + 1));</div><div class='add'>+            if (local_body-&gt;param.flags.has_rest) {</div><div class='add'>+                ADD_INSN1(args, node, newarray, INT2FIX(1));</div><div class='add'>+                ADD_INSN (args, node, concatarray);</div><div class='add'>+                --argc;</div><div class='add'>+            }</div><div class='add'>+            flag |= VM_CALL_KW_SPLAT;</div><div class='add'>+        }</div><div class='add'>+        else if (local_body-&gt;param.flags.has_kwrest) {</div><div class='add'>+            int idx = local_body-&gt;local_table_size - local_kwd-&gt;rest_start;</div><div class='add'>+            ADD_GETLOCAL(args, node, idx, lvar_level);</div><div class='add'>+</div><div class='add'>+            if (local_body-&gt;param.flags.has_rest) {</div><div class='add'>+                ADD_INSN1(args, node, newarray, INT2FIX(1));</div><div class='add'>+                ADD_INSN (args, node, concatarray);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                argc++;</div><div class='add'>+            }</div><div class='add'>+            flag |= VM_CALL_KW_SPLAT;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    flag |= VM_CALL_SUPER | VM_CALL_FCALL;</div><div class='add'>+    if (type == NODE_ZSUPER) flag |= VM_CALL_ZSUPER;</div><div class='add'>+    ADD_INSN(ret, node, putself);</div><div class='add'>+    ADD_SEQ(ret, args);</div><div class='add'>+    ADD_INSN2(ret, node, invokesuper,</div><div class='add'>+              new_callinfo(iseq, 0, argc, flag, keywords, parent_block != NULL),</div><div class='add'>+              parent_block);</div><div class='add'>+</div><div class='add'>+    if (popped) {</div><div class='add'>+        ADD_INSN(ret, node, pop);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_yield(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    DECL_ANCHOR(args);</div><div class='add'>+    VALUE argc;</div><div class='add'>+    unsigned int flag = 0;</div><div class='add'>+    struct rb_callinfo_kwarg *keywords = NULL;</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(args);</div><div class='add'>+</div><div class='add'>+    switch (ISEQ_BODY(ISEQ_BODY(iseq)-&gt;local_iseq)-&gt;type) {</div><div class='add'>+      case ISEQ_TYPE_TOP:</div><div class='add'>+      case ISEQ_TYPE_MAIN:</div><div class='add'>+      case ISEQ_TYPE_CLASS:</div><div class='add'>+        COMPILE_ERROR(ERROR_ARGS "Invalid yield");</div><div class='add'>+        return COMPILE_NG;</div><div class='add'>+      default: /* valid */;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (node-&gt;nd_head) {</div><div class='add'>+        argc = setup_args(iseq, args, node-&gt;nd_head, &amp;flag, &amp;keywords);</div><div class='add'>+        CHECK(!NIL_P(argc));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        argc = INT2FIX(0);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_SEQ(ret, args);</div><div class='add'>+    ADD_INSN1(ret, node, invokeblock, new_callinfo(iseq, 0, FIX2INT(argc), flag, keywords, FALSE));</div><div class='add'>+</div><div class='add'>+    if (popped) {</div><div class='add'>+        ADD_INSN(ret, node, pop);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    int level = 0;</div><div class='add'>+    const rb_iseq_t *tmp_iseq = iseq;</div><div class='add'>+    for (; tmp_iseq != ISEQ_BODY(iseq)-&gt;local_iseq; level++ ) {</div><div class='add'>+        tmp_iseq = ISEQ_BODY(tmp_iseq)-&gt;parent_iseq;</div><div class='add'>+    }</div><div class='add'>+    if (level &gt; 0) access_outer_variables(iseq, level, rb_intern("yield"), true);</div><div class='add'>+</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_match(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped, const enum node_type type)</div><div class='add'>+{</div><div class='add'>+    DECL_ANCHOR(recv);</div><div class='add'>+    DECL_ANCHOR(val);</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(recv);</div><div class='add'>+    INIT_ANCHOR(val);</div><div class='add'>+    switch ((int)type) {</div><div class='add'>+      case NODE_MATCH:</div><div class='add'>+        ADD_INSN1(recv, node, putobject, node-&gt;nd_lit);</div><div class='add'>+        ADD_INSN2(val, node, getspecial, INT2FIX(0),</div><div class='add'>+                  INT2FIX(0));</div><div class='add'>+        break;</div><div class='add'>+      case NODE_MATCH2:</div><div class='add'>+        CHECK(COMPILE(recv, "receiver", node-&gt;nd_recv));</div><div class='add'>+        CHECK(COMPILE(val, "value", node-&gt;nd_value));</div><div class='add'>+        break;</div><div class='add'>+      case NODE_MATCH3:</div><div class='add'>+        CHECK(COMPILE(recv, "receiver", node-&gt;nd_value));</div><div class='add'>+        CHECK(COMPILE(val, "value", node-&gt;nd_recv));</div><div class='add'>+        break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ADD_SEQ(ret, recv);</div><div class='add'>+    ADD_SEQ(ret, val);</div><div class='add'>+    ADD_SEND(ret, node, idEqTilde, INT2FIX(1));</div><div class='add'>+</div><div class='add'>+    if (node-&gt;nd_args) {</div><div class='add'>+        compile_named_capture_assign(iseq, ret, node-&gt;nd_args);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (popped) {</div><div class='add'>+        ADD_INSN(ret, node, pop);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_colon2(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    if (rb_is_const_id(node-&gt;nd_mid)) {</div><div class='add'>+        /* constant */</div><div class='add'>+        VALUE segments;</div><div class='add'>+        if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache &amp;&amp;</div><div class='add'>+                (segments = collect_const_segments(iseq, node))) {</div><div class='add'>+            ISEQ_BODY(iseq)-&gt;ic_size++;</div><div class='add'>+            ADD_INSN1(ret, node, opt_getconstant_path, segments);</div><div class='add'>+            RB_OBJ_WRITTEN(iseq, Qundef, segments);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* constant */</div><div class='add'>+            DECL_ANCHOR(pref);</div><div class='add'>+            DECL_ANCHOR(body);</div><div class='add'>+</div><div class='add'>+            INIT_ANCHOR(pref);</div><div class='add'>+            INIT_ANCHOR(body);</div><div class='add'>+            CHECK(compile_const_prefix(iseq, node, pref, body));</div><div class='add'>+            if (LIST_INSN_SIZE_ZERO(pref)) {</div><div class='add'>+                ADD_INSN(ret, node, putnil);</div><div class='add'>+                ADD_SEQ(ret, body);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ADD_SEQ(ret, pref);</div><div class='add'>+                ADD_SEQ(ret, body);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        /* function call */</div><div class='add'>+        ADD_CALL_RECEIVER(ret, node);</div><div class='add'>+        CHECK(COMPILE(ret, "colon2#nd_head", node-&gt;nd_head));</div><div class='add'>+        ADD_CALL(ret, node, node-&gt;nd_mid, INT2FIX(1));</div><div class='add'>+    }</div><div class='add'>+    if (popped) {</div><div class='add'>+        ADD_INSN(ret, node, pop);</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int popped);</div><div class='add'>+static int</div><div class='add'>+compile_colon3(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    debugi("colon3#nd_mid", node-&gt;nd_mid);</div><div class='add'>+</div><div class='add'>+    /* add cache insn */</div><div class='add'>+    if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+        ISEQ_BODY(iseq)-&gt;ic_size++;</div><div class='add'>+        VALUE segments = rb_ary_new_from_args(2, ID2SYM(idNULL), ID2SYM(node-&gt;nd_mid));</div><div class='add'>+        ADD_INSN1(ret, node, opt_getconstant_path, segments);</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, segments);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ADD_INSN1(ret, node, putobject, rb_cObject);</div><div class='add'>+        ADD_INSN1(ret, node, putobject, Qtrue);</div><div class='add'>+        ADD_INSN1(ret, node, getconstant, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (popped) {</div><div class='add'>+        ADD_INSN(ret, node, pop);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_dots(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped, const int excl)</div><div class='add'>+{</div><div class='add'>+    VALUE flag = INT2FIX(excl);</div><div class='add'>+    const NODE *b = node-&gt;nd_beg;</div><div class='add'>+    const NODE *e = node-&gt;nd_end;</div><div class='add'>+</div><div class='add'>+    if (optimizable_range_item_p(b) &amp;&amp; optimizable_range_item_p(e)) {</div><div class='add'>+        if (!popped) {</div><div class='add'>+            VALUE bv = nd_type_p(b, NODE_LIT) ? b-&gt;nd_lit : Qnil;</div><div class='add'>+            VALUE ev = nd_type_p(e, NODE_LIT) ? e-&gt;nd_lit : Qnil;</div><div class='add'>+            VALUE val = rb_range_new(bv, ev, excl);</div><div class='add'>+            ADD_INSN1(ret, node, putobject, val);</div><div class='add'>+            RB_OBJ_WRITTEN(iseq, Qundef, val);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        CHECK(COMPILE_(ret, "min", b, popped));</div><div class='add'>+        CHECK(COMPILE_(ret, "max", e, popped));</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, node, newrange, flag);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_errinfo(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    if (!popped) {</div><div class='add'>+        if (ISEQ_BODY(iseq)-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='add'>+            ADD_GETLOCAL(ret, node, LVAR_ERRINFO, 0);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            const rb_iseq_t *ip = iseq;</div><div class='add'>+            int level = 0;</div><div class='add'>+            while (ip) {</div><div class='add'>+                if (ISEQ_BODY(ip)-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+                ip = ISEQ_BODY(ip)-&gt;parent_iseq;</div><div class='add'>+                level++;</div><div class='add'>+            }</div><div class='add'>+            if (ip) {</div><div class='add'>+                ADD_GETLOCAL(ret, node, LVAR_ERRINFO, level);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ADD_INSN(ret, node, putnil);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_kw_arg(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='add'>+    LABEL *end_label = NEW_LABEL(nd_line(node));</div><div class='add'>+    const NODE *default_value = node-&gt;nd_body-&gt;nd_value;</div><div class='add'>+</div><div class='add'>+    if (default_value == NODE_SPECIAL_REQUIRED_KEYWORD) {</div><div class='add'>+        /* required argument. do nothing */</div><div class='add'>+        COMPILE_ERROR(ERROR_ARGS "unreachable");</div><div class='add'>+        return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+    else if (nd_type_p(default_value, NODE_LIT) ||</div><div class='add'>+             nd_type_p(default_value, NODE_NIL) ||</div><div class='add'>+             nd_type_p(default_value, NODE_TRUE) ||</div><div class='add'>+             nd_type_p(default_value, NODE_FALSE)) {</div><div class='add'>+        COMPILE_ERROR(ERROR_ARGS "unreachable");</div><div class='add'>+        return COMPILE_NG;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        /* if keywordcheck(_kw_bits, nth_keyword)</div><div class='add'>+         *   kw = default_value</div><div class='add'>+         * end</div><div class='add'>+         */</div><div class='add'>+        int kw_bits_idx = body-&gt;local_table_size - body-&gt;param.keyword-&gt;bits_start;</div><div class='add'>+        int keyword_idx = body-&gt;param.keyword-&gt;num;</div><div class='add'>+</div><div class='add'>+        ADD_INSN2(ret, node, checkkeyword, INT2FIX(kw_bits_idx + VM_ENV_DATA_SIZE - 1), INT2FIX(keyword_idx));</div><div class='add'>+        ADD_INSNL(ret, node, branchif, end_label);</div><div class='add'>+        CHECK(COMPILE_POPPED(ret, "keyword default argument", node-&gt;nd_body));</div><div class='add'>+        ADD_LABEL(ret, end_label);</div><div class='add'>+    }</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_attrasgn(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='add'>+{</div><div class='add'>+    DECL_ANCHOR(recv);</div><div class='add'>+    DECL_ANCHOR(args);</div><div class='add'>+    unsigned int flag = 0;</div><div class='add'>+    ID mid = node-&gt;nd_mid;</div><div class='add'>+    VALUE argc;</div><div class='add'>+    LABEL *else_label = NULL;</div><div class='add'>+    VALUE branches = Qfalse;</div><div class='add'>+</div><div class='add'>+    /* optimization shortcut</div><div class='add'>+     *   obj["literal"] = value -&gt; opt_aset_with(obj, "literal", value)</div><div class='add'>+     */</div><div class='add'>+    if (!ISEQ_COMPILE_DATA(iseq)-&gt;in_masgn &amp;&amp;</div><div class='add'>+        mid == idASET &amp;&amp; !private_recv_p(node) &amp;&amp; node-&gt;nd_args &amp;&amp;</div><div class='add'>+        nd_type_p(node-&gt;nd_args, NODE_LIST) &amp;&amp; node-&gt;nd_args-&gt;nd_alen == 2 &amp;&amp;</div><div class='add'>+        nd_type_p(node-&gt;nd_args-&gt;nd_head, NODE_STR) &amp;&amp;</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;current_block == NULL &amp;&amp;</div><div class='add'>+        !ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal &amp;&amp;</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction)</div><div class='add'>+    {</div><div class='add'>+        VALUE str = rb_fstring(node-&gt;nd_args-&gt;nd_head-&gt;nd_lit);</div><div class='add'>+        CHECK(COMPILE(ret, "recv", node-&gt;nd_recv));</div><div class='add'>+        CHECK(COMPILE(ret, "value", node-&gt;nd_args-&gt;nd_next-&gt;nd_head));</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, swap);</div><div class='add'>+            ADD_INSN1(ret, node, topn, INT2FIX(1));</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN2(ret, node, opt_aset_with, str,</div><div class='add'>+                  new_callinfo(iseq, idASET, 2, 0, NULL, FALSE));</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, str);</div><div class='add'>+        ADD_INSN(ret, node, pop);</div><div class='add'>+        return COMPILE_OK;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(recv);</div><div class='add'>+    INIT_ANCHOR(args);</div><div class='add'>+    argc = setup_args(iseq, args, node-&gt;nd_args, &amp;flag, NULL);</div><div class='add'>+    CHECK(!NIL_P(argc));</div><div class='add'>+</div><div class='add'>+    int asgnflag = COMPILE_RECV(recv, "recv", node);</div><div class='add'>+    CHECK(asgnflag != -1);</div><div class='add'>+    flag |= (unsigned int)asgnflag;</div><div class='add'>+</div><div class='add'>+    debugp_param("argc", argc);</div><div class='add'>+    debugp_param("nd_mid", ID2SYM(mid));</div><div class='add'>+</div><div class='add'>+    if (!rb_is_attrset_id(mid)) {</div><div class='add'>+        /* safe nav attr */</div><div class='add'>+        mid = rb_id_attrset(mid);</div><div class='add'>+        else_label = qcall_branch_start(iseq, recv, &amp;branches, node, node);</div><div class='add'>+    }</div><div class='add'>+    if (!popped) {</div><div class='add'>+        ADD_INSN(ret, node, putnil);</div><div class='add'>+        ADD_SEQ(ret, recv);</div><div class='add'>+        ADD_SEQ(ret, args);</div><div class='add'>+</div><div class='add'>+        if (flag &amp; VM_CALL_ARGS_BLOCKARG) {</div><div class='add'>+            ADD_INSN1(ret, node, topn, INT2FIX(1));</div><div class='add'>+            if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='add'>+                ADD_INSN1(ret, node, putobject, INT2FIX(-1));</div><div class='add'>+                ADD_SEND_WITH_FLAG(ret, node, idAREF, INT2FIX(1), INT2FIX(asgnflag));</div><div class='add'>+            }</div><div class='add'>+            ADD_INSN1(ret, node, setn, FIXNUM_INC(argc, 3));</div><div class='add'>+            ADD_INSN (ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        else if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='add'>+            ADD_INSN(ret, node, dup);</div><div class='add'>+            ADD_INSN1(ret, node, putobject, INT2FIX(-1));</div><div class='add'>+            ADD_SEND_WITH_FLAG(ret, node, idAREF, INT2FIX(1), INT2FIX(asgnflag));</div><div class='add'>+            ADD_INSN1(ret, node, setn, FIXNUM_INC(argc, 2));</div><div class='add'>+            ADD_INSN (ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN1(ret, node, setn, FIXNUM_INC(argc, 1));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ADD_SEQ(ret, recv);</div><div class='add'>+        ADD_SEQ(ret, args);</div><div class='add'>+    }</div><div class='add'>+    ADD_SEND_WITH_FLAG(ret, node, mid, argc, INT2FIX(flag));</div><div class='add'>+    qcall_branch_end(iseq, ret, else_label, branches, node, node);</div><div class='add'>+    ADD_INSN(ret, node, pop);</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped);</div><div class='ctx'> /**</div><div class='ctx'>   compile each node</div><div class='ctx'> </div><div class='hunk'>@@ -5893,36 +9407,37 @@ static int</div><div class='ctx'> iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, const NODE *node, int popped)</div><div class='ctx'> {</div><div class='ctx'>     if (node == 0) {</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    int lineno = ISEQ_COMPILE_DATA(iseq)-&gt;last_line;</div><div class='del'>-	    if (lineno == 0) lineno = FIX2INT(rb_iseq_first_lineno(iseq));</div><div class='del'>-	    debugs("node: NODE_NIL(implicit)\n");</div><div class='del'>-	    ADD_INSN(ret, lineno, putnil);</div><div class='del'>-	}</div><div class='del'>-	return COMPILE_OK;</div><div class='add'>+        if (!popped) {</div><div class='add'>+            int lineno = ISEQ_COMPILE_DATA(iseq)-&gt;last_line;</div><div class='add'>+            if (lineno == 0) lineno = FIX2INT(rb_iseq_first_lineno(iseq));</div><div class='add'>+            debugs("node: NODE_NIL(implicit)\n");</div><div class='add'>+            NODE dummy_line_node = generate_dummy_line_node(lineno, -1);</div><div class='add'>+            ADD_INSN(ret, &amp;dummy_line_node, putnil);</div><div class='add'>+        }</div><div class='add'>+        return COMPILE_OK;</div><div class='ctx'>     }</div><div class='ctx'>     return iseq_compile_each0(iseq, ret, node, popped);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int popped)</div><div class='add'>+iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const node, int popped)</div><div class='ctx'> {</div><div class='ctx'>     const int line = (int)nd_line(node);</div><div class='ctx'>     const enum node_type type = nd_type(node);</div><div class='del'>-    struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'> </div><div class='ctx'>     if (ISEQ_COMPILE_DATA(iseq)-&gt;last_line == line) {</div><div class='del'>-	/* ignore */</div><div class='add'>+        /* ignore */</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (node-&gt;flags &amp; NODE_FL_NEWLINE) {</div><div class='del'>-	    int event = RUBY_EVENT_LINE;</div><div class='del'>-	    ISEQ_COMPILE_DATA(iseq)-&gt;last_line = line;</div><div class='del'>-	    if (ISEQ_COVERAGE(iseq) &amp;&amp; ISEQ_LINE_COVERAGE(iseq)) {</div><div class='del'>-		event |= RUBY_EVENT_COVERAGE_LINE;</div><div class='del'>-	    }</div><div class='del'>-	    ADD_TRACE(ret, event);</div><div class='del'>-	}</div><div class='add'>+        if (node-&gt;flags &amp; NODE_FL_NEWLINE) {</div><div class='add'>+            int event = RUBY_EVENT_LINE;</div><div class='add'>+            ISEQ_COMPILE_DATA(iseq)-&gt;last_line = line;</div><div class='add'>+            if (ISEQ_COVERAGE(iseq) &amp;&amp; ISEQ_LINE_COVERAGE(iseq)) {</div><div class='add'>+                event |= RUBY_EVENT_COVERAGE_LINE;</div><div class='add'>+            }</div><div class='add'>+            ADD_TRACE(ret, event);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     debug_node_start(node);</div><div class='hunk'>@@ -5930,1632 +9445,684 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in</div><div class='ctx'> #define BEFORE_RETURN debug_node_end()</div><div class='ctx'> </div><div class='ctx'>     switch (type) {</div><div class='del'>-      case NODE_BLOCK:{</div><div class='del'>-	while (node &amp;&amp; nd_type(node) == NODE_BLOCK) {</div><div class='del'>-	    CHECK(COMPILE_(ret, "BLOCK body", node-&gt;nd_head,</div><div class='del'>-			   (node-&gt;nd_next ? 1 : popped)));</div><div class='del'>-	    node = node-&gt;nd_next;</div><div class='del'>-	}</div><div class='del'>-	if (node) {</div><div class='del'>-	    CHECK(COMPILE_(ret, "BLOCK next", node-&gt;nd_next, popped));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='add'>+      case NODE_BLOCK:</div><div class='add'>+        CHECK(compile_block(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_IF:</div><div class='ctx'>       case NODE_UNLESS:</div><div class='del'>-	CHECK(compile_if(iseq, ret, node, popped, type));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_if(iseq, ret, node, popped, type));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_CASE:</div><div class='del'>-	CHECK(compile_case(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_case(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_CASE2:</div><div class='del'>-	CHECK(compile_case2(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_case2(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='add'>+      case NODE_CASE3:</div><div class='add'>+        CHECK(compile_case3(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_WHILE:</div><div class='ctx'>       case NODE_UNTIL:</div><div class='del'>-	CHECK(compile_loop(iseq, ret, node, popped, type));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_loop(iseq, ret, node, popped, type));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_FOR:</div><div class='ctx'>       case NODE_ITER:</div><div class='del'>-	CHECK(compile_iter(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_iter(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_FOR_MASGN:</div><div class='del'>-	CHECK(compile_for_masgn(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_for_masgn(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_BREAK:</div><div class='del'>-	CHECK(compile_break(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_break(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_NEXT:</div><div class='del'>-	CHECK(compile_next(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_next(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_REDO:</div><div class='del'>-	CHECK(compile_redo(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_redo(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_RETRY:</div><div class='del'>-	CHECK(compile_retry(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_retry(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_BEGIN:{</div><div class='del'>-	CHECK(COMPILE_(ret, "NODE_BEGIN", node-&gt;nd_body, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(COMPILE_(ret, "NODE_BEGIN", node-&gt;nd_body, popped));</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_RESCUE:</div><div class='del'>-	CHECK(compile_rescue(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_rescue(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_RESBODY:</div><div class='del'>-	CHECK(compile_resbody(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_resbody(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_ENSURE:</div><div class='del'>-	CHECK(compile_ensure(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_ensure(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case NODE_AND:</div><div class='ctx'>       case NODE_OR:{</div><div class='del'>-	LABEL *end_label = NEW_LABEL(line);</div><div class='del'>-	CHECK(COMPILE(ret, "nd_1st", node-&gt;nd_1st));</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, dup);</div><div class='del'>-	}</div><div class='del'>-	if (type == NODE_AND) {</div><div class='del'>-	    ADD_INSNL(ret, line, branchunless, end_label);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ADD_INSNL(ret, line, branchif, end_label);</div><div class='del'>-	}</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	CHECK(COMPILE_(ret, "nd_2nd", node-&gt;nd_2nd, popped));</div><div class='del'>-	ADD_LABEL(ret, end_label);</div><div class='del'>-	break;</div><div class='add'>+        LABEL *end_label = NEW_LABEL(line);</div><div class='add'>+        CHECK(COMPILE(ret, "nd_1st", node-&gt;nd_1st));</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, dup);</div><div class='add'>+        }</div><div class='add'>+        if (type == NODE_AND) {</div><div class='add'>+            ADD_INSNL(ret, node, branchunless, end_label);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSNL(ret, node, branchif, end_label);</div><div class='add'>+        }</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        CHECK(COMPILE_(ret, "nd_2nd", node-&gt;nd_2nd, popped));</div><div class='add'>+        ADD_LABEL(ret, end_label);</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'> </div><div class='ctx'>       case NODE_MASGN:{</div><div class='del'>-	compile_massign(iseq, ret, node, popped);</div><div class='del'>-	break;</div><div class='add'>+        bool prev_in_masgn = ISEQ_COMPILE_DATA(iseq)-&gt;in_masgn;</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;in_masgn = true;</div><div class='add'>+        compile_massign(iseq, ret, node, popped);</div><div class='add'>+        ISEQ_COMPILE_DATA(iseq)-&gt;in_masgn = prev_in_masgn;</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'> </div><div class='ctx'>       case NODE_LASGN:{</div><div class='del'>-	ID id = node-&gt;nd_vid;</div><div class='del'>-	int idx = body-&gt;local_iseq-&gt;body-&gt;local_table_size - get_local_var_idx(iseq, id);</div><div class='add'>+        ID id = node-&gt;nd_vid;</div><div class='add'>+        int idx = ISEQ_BODY(body-&gt;local_iseq)-&gt;local_table_size - get_local_var_idx(iseq, id);</div><div class='ctx'> </div><div class='del'>-	debugs("lvar: %s idx: %d\n", rb_id2name(id), idx);</div><div class='del'>-	CHECK(COMPILE(ret, "rvalue", node-&gt;nd_value));</div><div class='add'>+        debugs("lvar: %s idx: %d\n", rb_id2name(id), idx);</div><div class='add'>+        CHECK(COMPILE(ret, "rvalue", node-&gt;nd_value));</div><div class='ctx'> </div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, dup);</div><div class='del'>-	}</div><div class='del'>-	ADD_SETLOCAL(ret, line, idx, get_lvar_level(iseq));</div><div class='del'>-	break;</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, dup);</div><div class='add'>+        }</div><div class='add'>+        ADD_SETLOCAL(ret, node, idx, get_lvar_level(iseq));</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='del'>-      case NODE_DASGN:</div><div class='del'>-      case NODE_DASGN_CURR:{</div><div class='del'>-	int idx, lv, ls;</div><div class='del'>-	ID id = node-&gt;nd_vid;</div><div class='del'>-	CHECK(COMPILE(ret, "dvalue", node-&gt;nd_value));</div><div class='del'>-	debugi("dassn id", rb_id2str(id) ? id : '*');</div><div class='del'>-</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, dup);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	idx = get_dyna_var_idx(iseq, id, &amp;lv, &amp;ls);</div><div class='del'>-</div><div class='del'>-	if (idx &lt; 0) {</div><div class='del'>-	    COMPILE_ERROR(ERROR_ARGS "NODE_DASGN(_CURR): unknown id (%"PRIsVALUE")",</div><div class='del'>-			  rb_id2str(id));</div><div class='del'>-	    goto ng;</div><div class='del'>-	}</div><div class='del'>-	ADD_SETLOCAL(ret, line, ls - idx, lv);</div><div class='del'>-	break;</div><div class='add'>+      case NODE_DASGN: {</div><div class='add'>+        int idx, lv, ls;</div><div class='add'>+        ID id = node-&gt;nd_vid;</div><div class='add'>+        CHECK(COMPILE(ret, "dvalue", node-&gt;nd_value));</div><div class='add'>+        debugi("dassn id", rb_id2str(id) ? id : '*');</div><div class='add'>+</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, dup);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        idx = get_dyna_var_idx(iseq, id, &amp;lv, &amp;ls);</div><div class='add'>+</div><div class='add'>+        if (idx &lt; 0) {</div><div class='add'>+            COMPILE_ERROR(ERROR_ARGS "NODE_DASGN: unknown id (%"PRIsVALUE")",</div><div class='add'>+                          rb_id2str(id));</div><div class='add'>+            goto ng;</div><div class='add'>+        }</div><div class='add'>+        ADD_SETLOCAL(ret, node, ls - idx, lv);</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_GASGN:{</div><div class='del'>-	CHECK(COMPILE(ret, "lvalue", node-&gt;nd_value));</div><div class='del'>-</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, dup);</div><div class='del'>-	}</div><div class='del'>-	ADD_INSN1(ret, line, setglobal,</div><div class='del'>-		  ((VALUE)node-&gt;nd_entry | 1));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(COMPILE(ret, "lvalue", node-&gt;nd_value));</div><div class='add'>+</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, dup);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN1(ret, node, setglobal, ID2SYM(node-&gt;nd_entry));</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_IASGN:{</div><div class='del'>-	CHECK(COMPILE(ret, "lvalue", node-&gt;nd_value));</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, dup);</div><div class='del'>-	}</div><div class='del'>-	ADD_INSN2(ret, line, setinstancevariable,</div><div class='del'>-		  ID2SYM(node-&gt;nd_vid),</div><div class='del'>-		  get_ivar_ic_value(iseq,node-&gt;nd_vid));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(COMPILE(ret, "lvalue", node-&gt;nd_value));</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, dup);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN2(ret, node, setinstancevariable,</div><div class='add'>+                  ID2SYM(node-&gt;nd_vid),</div><div class='add'>+                  get_ivar_ic_value(iseq,node-&gt;nd_vid));</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_CDECL:{</div><div class='del'>-	CHECK(COMPILE(ret, "lvalue", node-&gt;nd_value));</div><div class='del'>-</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, dup);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (node-&gt;nd_vid) {</div><div class='del'>-	    ADD_INSN1(ret, line, putspecialobject,</div><div class='del'>-		      INT2FIX(VM_SPECIAL_OBJECT_CONST_BASE));</div><div class='del'>-	    ADD_INSN1(ret, line, setconstant, ID2SYM(node-&gt;nd_vid));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    compile_cpath(ret, iseq, node-&gt;nd_else);</div><div class='del'>-	    ADD_INSN1(ret, line, setconstant, ID2SYM(node-&gt;nd_else-&gt;nd_mid));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (node-&gt;nd_vid) {</div><div class='add'>+            CHECK(COMPILE(ret, "lvalue", node-&gt;nd_value));</div><div class='add'>+</div><div class='add'>+            if (!popped) {</div><div class='add'>+                ADD_INSN(ret, node, dup);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            ADD_INSN1(ret, node, putspecialobject,</div><div class='add'>+                      INT2FIX(VM_SPECIAL_OBJECT_CONST_BASE));</div><div class='add'>+            ADD_INSN1(ret, node, setconstant, ID2SYM(node-&gt;nd_vid));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            compile_cpath(ret, iseq, node-&gt;nd_else);</div><div class='add'>+            CHECK(COMPILE(ret, "lvalue", node-&gt;nd_value));</div><div class='add'>+            ADD_INSN(ret, node, swap);</div><div class='add'>+</div><div class='add'>+            if (!popped) {</div><div class='add'>+                ADD_INSN1(ret, node, topn, INT2FIX(1));</div><div class='add'>+                ADD_INSN(ret, node, swap);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            ADD_INSN1(ret, node, setconstant, ID2SYM(node-&gt;nd_else-&gt;nd_mid));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_CVASGN:{</div><div class='del'>-	CHECK(COMPILE(ret, "cvasgn val", node-&gt;nd_value));</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, dup);</div><div class='del'>-	}</div><div class='del'>-	ADD_INSN1(ret, line, setclassvariable,</div><div class='del'>-		  ID2SYM(node-&gt;nd_vid));</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='del'>-      case NODE_OP_ASGN1: {</div><div class='del'>-	DECL_ANCHOR(args);</div><div class='del'>-	VALUE argc;</div><div class='del'>-	unsigned int flag = 0;</div><div class='del'>-	unsigned int asgnflag = 0;</div><div class='del'>-	ID id = node-&gt;nd_mid;</div><div class='del'>-	int boff = 0;</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * a[x] (op)= y</div><div class='del'>-	 *</div><div class='del'>-	 * nil       # nil</div><div class='del'>-	 * eval a    # nil a</div><div class='del'>-	 * eval x    # nil a x</div><div class='del'>-	 * dupn 2    # nil a x a x</div><div class='del'>-	 * send :[]  # nil a x a[x]</div><div class='del'>-	 * eval y    # nil a x a[x] y</div><div class='del'>-	 * send op   # nil a x ret</div><div class='del'>-	 * setn 3    # ret a x ret</div><div class='del'>-	 * send []=  # ret ?</div><div class='del'>-	 * pop       # ret</div><div class='del'>-	 */</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * nd_recv[nd_args-&gt;nd_body] (nd_mid)= nd_args-&gt;nd_head;</div><div class='del'>-	 * NODE_OP_ASGN nd_recv</div><div class='del'>-	 *              nd_args-&gt;nd_head</div><div class='del'>-	 *              nd_args-&gt;nd_body</div><div class='del'>-	 *              nd_mid</div><div class='del'>-	 */</div><div class='del'>-</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, putnil);</div><div class='del'>-	}</div><div class='del'>-	asgnflag = COMPILE_RECV(ret, "NODE_OP_ASGN1 recv", node);</div><div class='del'>-	switch (nd_type(node-&gt;nd_args-&gt;nd_head)) {</div><div class='del'>-	  case NODE_ZARRAY:</div><div class='del'>-	    argc = INT2FIX(0);</div><div class='del'>-	    break;</div><div class='del'>-	  case NODE_BLOCK_PASS:</div><div class='del'>-	    boff = 1;</div><div class='del'>-	  default:</div><div class='del'>-	    INIT_ANCHOR(args);</div><div class='del'>-	    argc = setup_args(iseq, args, node-&gt;nd_args-&gt;nd_head, &amp;flag, NULL);</div><div class='del'>-	    CHECK(!NIL_P(argc));</div><div class='del'>-	    ADD_SEQ(ret, args);</div><div class='del'>-	}</div><div class='del'>-	ADD_INSN1(ret, line, dupn, FIXNUM_INC(argc, 1 + boff));</div><div class='del'>-	ADD_SEND_WITH_FLAG(ret, line, idAREF, argc, INT2FIX(flag));</div><div class='del'>-	flag |= asgnflag;</div><div class='del'>-</div><div class='del'>-	if (id == idOROP || id == idANDOP) {</div><div class='del'>-	    /* a[x] ||= y  or  a[x] &amp;&amp;= y</div><div class='del'>-</div><div class='del'>-	       unless/if a[x]</div><div class='del'>-	       a[x]= y</div><div class='del'>-	       else</div><div class='del'>-	       nil</div><div class='del'>-	       end</div><div class='del'>-	    */</div><div class='del'>-	    LABEL *label = NEW_LABEL(line);</div><div class='del'>-	    LABEL *lfin = NEW_LABEL(line);</div><div class='del'>-</div><div class='del'>-	    ADD_INSN(ret, line, dup);</div><div class='del'>-	    if (id == idOROP) {</div><div class='del'>-		ADD_INSNL(ret, line, branchif, label);</div><div class='del'>-	    }</div><div class='del'>-	    else { /* idANDOP */</div><div class='del'>-		ADD_INSNL(ret, line, branchunless, label);</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-</div><div class='del'>-	    CHECK(COMPILE(ret, "NODE_OP_ASGN1 args-&gt;body: ", node-&gt;nd_args-&gt;nd_body));</div><div class='del'>-	    if (!popped) {</div><div class='del'>-		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 2+boff));</div><div class='del'>-	    }</div><div class='del'>-	    if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='del'>-		ADD_INSN1(ret, line, newarray, INT2FIX(1));</div><div class='del'>-		if (boff &gt; 0) {</div><div class='del'>-		    ADD_INSN1(ret, line, dupn, INT2FIX(3));</div><div class='del'>-		    ADD_INSN(ret, line, swap);</div><div class='del'>-		    ADD_INSN(ret, line, pop);</div><div class='del'>-		}</div><div class='del'>-		ADD_INSN(ret, line, concatarray);</div><div class='del'>-		if (boff &gt; 0) {</div><div class='del'>-		    ADD_INSN1(ret, line, setn, INT2FIX(3));</div><div class='del'>-		    ADD_INSN(ret, line, pop);</div><div class='del'>-		    ADD_INSN(ret, line, pop);</div><div class='del'>-		}</div><div class='del'>-		ADD_SEND_WITH_FLAG(ret, line, idASET, argc, INT2FIX(flag));</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		if (boff &gt; 0)</div><div class='del'>-		    ADD_INSN(ret, line, swap);</div><div class='del'>-		ADD_SEND_WITH_FLAG(ret, line, idASET, FIXNUM_INC(argc, 1), INT2FIX(flag));</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	    ADD_INSNL(ret, line, jump, lfin);</div><div class='del'>-	    ADD_LABEL(ret, label);</div><div class='del'>-	    if (!popped) {</div><div class='del'>-		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 2+boff));</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSN1(ret, line, adjuststack, FIXNUM_INC(argc, 2+boff));</div><div class='del'>-	    ADD_LABEL(ret, lfin);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    CHECK(COMPILE(ret, "NODE_OP_ASGN1 args-&gt;body: ", node-&gt;nd_args-&gt;nd_body));</div><div class='del'>-	    ADD_SEND(ret, line, id, INT2FIX(1));</div><div class='del'>-	    if (!popped) {</div><div class='del'>-		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 2+boff));</div><div class='del'>-	    }</div><div class='del'>-	    if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='del'>-		ADD_INSN1(ret, line, newarray, INT2FIX(1));</div><div class='del'>-		if (boff &gt; 0) {</div><div class='del'>-		    ADD_INSN1(ret, line, dupn, INT2FIX(3));</div><div class='del'>-		    ADD_INSN(ret, line, swap);</div><div class='del'>-		    ADD_INSN(ret, line, pop);</div><div class='del'>-		}</div><div class='del'>-		ADD_INSN(ret, line, concatarray);</div><div class='del'>-		if (boff &gt; 0) {</div><div class='del'>-		    ADD_INSN1(ret, line, setn, INT2FIX(3));</div><div class='del'>-		    ADD_INSN(ret, line, pop);</div><div class='del'>-		    ADD_INSN(ret, line, pop);</div><div class='del'>-		}</div><div class='del'>-		ADD_SEND_WITH_FLAG(ret, line, idASET, argc, INT2FIX(flag));</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		if (boff &gt; 0)</div><div class='del'>-		    ADD_INSN(ret, line, swap);</div><div class='del'>-		ADD_SEND_WITH_FLAG(ret, line, idASET, FIXNUM_INC(argc, 1), INT2FIX(flag));</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='del'>-      case NODE_OP_ASGN2:{</div><div class='del'>-	ID atype = node-&gt;nd_next-&gt;nd_mid;</div><div class='del'>-	ID vid = node-&gt;nd_next-&gt;nd_vid, aid = rb_id_attrset(vid);</div><div class='del'>-	VALUE asgnflag;</div><div class='del'>-	LABEL *lfin = NEW_LABEL(line);</div><div class='del'>-	LABEL *lcfin = NEW_LABEL(line);</div><div class='del'>-	LABEL *lskip = 0;</div><div class='del'>-	/*</div><div class='del'>-	  class C; attr_accessor :c; end</div><div class='del'>-	  r = C.new</div><div class='del'>-	  r.a &amp;&amp;= v # asgn2</div><div class='del'>-</div><div class='del'>-	  eval r    # r</div><div class='del'>-	  dup       # r r</div><div class='del'>-	  eval r.a  # r o</div><div class='del'>-</div><div class='del'>-	  # or</div><div class='del'>-	  dup       # r o o</div><div class='del'>-	  if lcfin  # r o</div><div class='del'>-	  pop       # r</div><div class='del'>-	  eval v    # r v</div><div class='del'>-	  swap      # v r</div><div class='del'>-	  topn 1    # v r v</div><div class='del'>-	  send a=   # v ?</div><div class='del'>-	  jump lfin # v ?</div><div class='del'>-</div><div class='del'>-	  lcfin:      # r o</div><div class='del'>-	  swap      # o r</div><div class='del'>-</div><div class='del'>-	  lfin:       # o ?</div><div class='del'>-	  pop       # o</div><div class='del'>-</div><div class='del'>-	  # and</div><div class='del'>-	  dup       # r o o</div><div class='del'>-	  unless lcfin</div><div class='del'>-	  pop       # r</div><div class='del'>-	  eval v    # r v</div><div class='del'>-	  swap      # v r</div><div class='del'>-	  topn 1    # v r v</div><div class='del'>-	  send a=   # v ?</div><div class='del'>-	  jump lfin # v ?</div><div class='del'>-</div><div class='del'>-	  # others</div><div class='del'>-	  eval v    # r o v</div><div class='del'>-	  send ??   # r w</div><div class='del'>-	  send a=   # w</div><div class='del'>-</div><div class='del'>-	*/</div><div class='del'>-</div><div class='del'>-	asgnflag = COMPILE_RECV(ret, "NODE_OP_ASGN2#recv", node);</div><div class='del'>-	if (node-&gt;nd_next-&gt;nd_aid) {</div><div class='del'>-	    lskip = NEW_LABEL(line);</div><div class='del'>-	    ADD_INSN(ret, line, dup);</div><div class='del'>-	    ADD_INSNL(ret, line, branchnil, lskip);</div><div class='del'>-	}</div><div class='del'>-	ADD_INSN(ret, line, dup);</div><div class='del'>-	ADD_SEND(ret, line, vid, INT2FIX(0));</div><div class='del'>-</div><div class='del'>-	if (atype == idOROP || atype == idANDOP) {</div><div class='del'>-	    ADD_INSN(ret, line, dup);</div><div class='del'>-	    if (atype == idOROP) {</div><div class='del'>-		ADD_INSNL(ret, line, branchif, lcfin);</div><div class='del'>-	    }</div><div class='del'>-	    else { /* idANDOP */</div><div class='del'>-		ADD_INSNL(ret, line, branchunless, lcfin);</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	    CHECK(COMPILE(ret, "NODE_OP_ASGN2 val", node-&gt;nd_value));</div><div class='del'>-	    ADD_INSN(ret, line, swap);</div><div class='del'>-	    ADD_INSN1(ret, line, topn, INT2FIX(1));</div><div class='del'>-	    ADD_SEND_WITH_FLAG(ret, line, aid, INT2FIX(1), INT2FIX(asgnflag));</div><div class='del'>-	    ADD_INSNL(ret, line, jump, lfin);</div><div class='del'>-</div><div class='del'>-	    ADD_LABEL(ret, lcfin);</div><div class='del'>-	    ADD_INSN(ret, line, swap);</div><div class='del'>-</div><div class='del'>-	    ADD_LABEL(ret, lfin);</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	    if (lskip) {</div><div class='del'>-		ADD_LABEL(ret, lskip);</div><div class='del'>-	    }</div><div class='del'>-	    if (popped) {</div><div class='del'>-		/* we can apply more optimize */</div><div class='del'>-		ADD_INSN(ret, line, pop);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    CHECK(COMPILE(ret, "NODE_OP_ASGN2 val", node-&gt;nd_value));</div><div class='del'>-	    ADD_SEND(ret, line, atype, INT2FIX(1));</div><div class='del'>-	    if (!popped) {</div><div class='del'>-		ADD_INSN(ret, line, swap);</div><div class='del'>-		ADD_INSN1(ret, line, topn, INT2FIX(1));</div><div class='del'>-	    }</div><div class='del'>-	    ADD_SEND_WITH_FLAG(ret, line, aid, INT2FIX(1), INT2FIX(asgnflag));</div><div class='del'>-	    if (lskip &amp;&amp; popped) {</div><div class='del'>-		ADD_LABEL(ret, lskip);</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	    if (lskip &amp;&amp; !popped) {</div><div class='del'>-		ADD_LABEL(ret, lskip);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='del'>-      case NODE_OP_CDECL: {</div><div class='del'>-	LABEL *lfin = 0;</div><div class='del'>-	LABEL *lassign = 0;</div><div class='del'>-	ID mid;</div><div class='del'>-</div><div class='del'>-	switch (nd_type(node-&gt;nd_head)) {</div><div class='del'>-	  case NODE_COLON3:</div><div class='del'>-	    ADD_INSN1(ret, line, putobject, rb_cObject);</div><div class='del'>-	    break;</div><div class='del'>-	  case NODE_COLON2:</div><div class='del'>-	    CHECK(COMPILE(ret, "NODE_OP_CDECL/colon2#nd_head", node-&gt;nd_head-&gt;nd_head));</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    COMPILE_ERROR(ERROR_ARGS "%s: invalid node in NODE_OP_CDECL",</div><div class='del'>-			  ruby_node_name(nd_type(node-&gt;nd_head)));</div><div class='del'>-	    goto ng;</div><div class='del'>-	}</div><div class='del'>-	mid = node-&gt;nd_head-&gt;nd_mid;</div><div class='del'>-	/* cref */</div><div class='del'>-	if (node-&gt;nd_aid == idOROP) {</div><div class='del'>-	    lassign = NEW_LABEL(line);</div><div class='del'>-	    ADD_INSN(ret, line, dup); /* cref cref */</div><div class='del'>-	    ADD_INSN3(ret, line, defined, INT2FIX(DEFINED_CONST),</div><div class='del'>-		      ID2SYM(mid), Qfalse); /* cref bool */</div><div class='del'>-	    ADD_INSNL(ret, line, branchunless, lassign); /* cref */</div><div class='del'>-	}</div><div class='del'>-	ADD_INSN(ret, line, dup); /* cref cref */</div><div class='del'>-	ADD_INSN1(ret, line, getconstant, ID2SYM(mid)); /* cref obj */</div><div class='del'>-</div><div class='del'>-	if (node-&gt;nd_aid == idOROP || node-&gt;nd_aid == idANDOP) {</div><div class='del'>-	    lfin = NEW_LABEL(line);</div><div class='del'>-	    if (!popped) ADD_INSN(ret, line, dup); /* cref [obj] obj */</div><div class='del'>-	    if (node-&gt;nd_aid == idOROP)</div><div class='del'>-		ADD_INSNL(ret, line, branchif, lfin);</div><div class='del'>-	    else /* idANDOP */</div><div class='del'>-		ADD_INSNL(ret, line, branchunless, lfin);</div><div class='del'>-	    /* cref [obj] */</div><div class='del'>-	    if (!popped) ADD_INSN(ret, line, pop); /* cref */</div><div class='del'>-	    if (lassign) ADD_LABEL(ret, lassign);</div><div class='del'>-	    CHECK(COMPILE(ret, "NODE_OP_CDECL#nd_value", node-&gt;nd_value));</div><div class='del'>-	    /* cref value */</div><div class='del'>-	    if (popped)</div><div class='del'>-		ADD_INSN1(ret, line, topn, INT2FIX(1)); /* cref value cref */</div><div class='del'>-	    else {</div><div class='del'>-		ADD_INSN1(ret, line, dupn, INT2FIX(2)); /* cref value cref value */</div><div class='del'>-		ADD_INSN(ret, line, swap); /* cref value value cref */</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSN1(ret, line, setconstant, ID2SYM(mid)); /* cref [value] */</div><div class='del'>-	    ADD_LABEL(ret, lfin);			    /* cref [value] */</div><div class='del'>-	    if (!popped) ADD_INSN(ret, line, swap); /* [value] cref */</div><div class='del'>-	    ADD_INSN(ret, line, pop); /* [value] */</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    CHECK(COMPILE(ret, "NODE_OP_CDECL#nd_value", node-&gt;nd_value));</div><div class='del'>-	    /* cref obj value */</div><div class='del'>-	    ADD_CALL(ret, line, node-&gt;nd_aid, INT2FIX(1));</div><div class='del'>-	    /* cref value */</div><div class='del'>-	    ADD_INSN(ret, line, swap); /* value cref */</div><div class='del'>-	    if (!popped) {</div><div class='del'>-		ADD_INSN1(ret, line, topn, INT2FIX(1)); /* value cref value */</div><div class='del'>-		ADD_INSN(ret, line, swap); /* value value cref */</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSN1(ret, line, setconstant, ID2SYM(mid));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        CHECK(COMPILE(ret, "cvasgn val", node-&gt;nd_value));</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, dup);</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN2(ret, node, setclassvariable,</div><div class='add'>+                  ID2SYM(node-&gt;nd_vid),</div><div class='add'>+                  get_cvar_ic_value(iseq,node-&gt;nd_vid));</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='add'>+      case NODE_OP_ASGN1:</div><div class='add'>+        CHECK(compile_op_asgn1(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='add'>+      case NODE_OP_ASGN2:</div><div class='add'>+        CHECK(compile_op_asgn2(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='add'>+      case NODE_OP_CDECL:</div><div class='add'>+        CHECK(compile_op_cdecl(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_OP_ASGN_AND:</div><div class='del'>-      case NODE_OP_ASGN_OR:{</div><div class='del'>-	LABEL *lfin = NEW_LABEL(line);</div><div class='del'>-	LABEL *lassign;</div><div class='del'>-</div><div class='del'>-	if (nd_type(node) == NODE_OP_ASGN_OR) {</div><div class='del'>-	    LABEL *lfinish[2];</div><div class='del'>-	    lfinish[0] = lfin;</div><div class='del'>-	    lfinish[1] = 0;</div><div class='del'>-	    defined_expr(iseq, ret, node-&gt;nd_head, lfinish, Qfalse);</div><div class='del'>-	    lassign = lfinish[1];</div><div class='del'>-	    if (!lassign) {</div><div class='del'>-		lassign = NEW_LABEL(line);</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSNL(ret, line, branchunless, lassign);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    lassign = NEW_LABEL(line);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	CHECK(COMPILE(ret, "NODE_OP_ASGN_AND/OR#nd_head", node-&gt;nd_head));</div><div class='del'>-	ADD_INSN(ret, line, dup);</div><div class='del'>-</div><div class='del'>-	if (nd_type(node) == NODE_OP_ASGN_AND) {</div><div class='del'>-	    ADD_INSNL(ret, line, branchunless, lfin);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ADD_INSNL(ret, line, branchif, lfin);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ADD_INSN(ret, line, pop);</div><div class='del'>-	ADD_LABEL(ret, lassign);</div><div class='del'>-	CHECK(COMPILE(ret, "NODE_OP_ASGN_AND/OR#nd_value", node-&gt;nd_value));</div><div class='del'>-	ADD_LABEL(ret, lfin);</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    /* we can apply more optimize */</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='del'>-      case NODE_CALL:</div><div class='del'>-      case NODE_OPCALL:</div><div class='del'>-	/* optimization shortcut</div><div class='del'>-	 *   "literal".freeze -&gt; opt_str_freeze("literal")</div><div class='del'>-	 */</div><div class='del'>-	if (node-&gt;nd_recv &amp;&amp; nd_type(node-&gt;nd_recv) == NODE_STR &amp;&amp;</div><div class='del'>-	    (node-&gt;nd_mid == idFreeze || node-&gt;nd_mid == idUMinus) &amp;&amp;</div><div class='del'>-	    node-&gt;nd_args == NULL &amp;&amp;</div><div class='del'>-	    ISEQ_COMPILE_DATA(iseq)-&gt;current_block == NULL &amp;&amp;</div><div class='del'>-	    ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction) {</div><div class='del'>-	    VALUE str = freeze_literal(iseq, node-&gt;nd_recv-&gt;nd_lit);</div><div class='del'>-	    if (node-&gt;nd_mid == idUMinus) {</div><div class='del'>-		ADD_INSN3(ret, line, opt_str_uminus, str,</div><div class='del'>-                          new_callinfo(iseq, idUMinus, 0, 0, NULL, FALSE),</div><div class='del'>-                          Qundef /* CALL_CACHE */);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		ADD_INSN3(ret, line, opt_str_freeze, str,</div><div class='del'>-                          new_callinfo(iseq, idFreeze, 0, 0, NULL, FALSE),</div><div class='del'>-                          Qundef /* CALL_CACHE */);</div><div class='del'>-	    }</div><div class='del'>-	    if (popped) {</div><div class='del'>-		ADD_INSN(ret, line, pop);</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	/* optimization shortcut</div><div class='del'>-	 *   obj["literal"] -&gt; opt_aref_with(obj, "literal")</div><div class='del'>-	 */</div><div class='del'>-	if (node-&gt;nd_mid == idAREF &amp;&amp; !private_recv_p(node) &amp;&amp; node-&gt;nd_args &amp;&amp;</div><div class='del'>-	    nd_type(node-&gt;nd_args) == NODE_ARRAY &amp;&amp; node-&gt;nd_args-&gt;nd_alen == 1 &amp;&amp;</div><div class='del'>-	    nd_type(node-&gt;nd_args-&gt;nd_head) == NODE_STR &amp;&amp;</div><div class='del'>-	    ISEQ_COMPILE_DATA(iseq)-&gt;current_block == NULL &amp;&amp;</div><div class='del'>-            !ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal &amp;&amp;</div><div class='del'>-	    ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction) {</div><div class='del'>-	    VALUE str = freeze_literal(iseq, node-&gt;nd_args-&gt;nd_head-&gt;nd_lit);</div><div class='del'>-	    CHECK(COMPILE(ret, "recv", node-&gt;nd_recv));</div><div class='del'>-	    ADD_INSN3(ret, line, opt_aref_with, str,</div><div class='del'>-		      new_callinfo(iseq, idAREF, 1, 0, NULL, FALSE),</div><div class='del'>-		      NULL/* CALL_CACHE */);</div><div class='del'>-	    if (popped) {</div><div class='del'>-		ADD_INSN(ret, line, pop);</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-      case NODE_QCALL:</div><div class='del'>-      case NODE_FCALL:</div><div class='del'>-      case NODE_VCALL:{		/* VCALL: variable or call */</div><div class='del'>-	/*</div><div class='del'>-	  call:  obj.method(...)</div><div class='del'>-	  fcall: func(...)</div><div class='del'>-	  vcall: func</div><div class='del'>-	*/</div><div class='del'>-	DECL_ANCHOR(recv);</div><div class='del'>-	DECL_ANCHOR(args);</div><div class='del'>-	LABEL *else_label = 0;</div><div class='del'>-	LABEL *end_label = 0;</div><div class='del'>-	VALUE branches = 0;</div><div class='del'>-	ID mid = node-&gt;nd_mid;</div><div class='del'>-	VALUE argc;</div><div class='del'>-	unsigned int flag = 0;</div><div class='del'>-	struct rb_call_info_kw_arg *keywords = NULL;</div><div class='del'>-	const rb_iseq_t *parent_block = ISEQ_COMPILE_DATA(iseq)-&gt;current_block;</div><div class='del'>-	ISEQ_COMPILE_DATA(iseq)-&gt;current_block = NULL;</div><div class='del'>-</div><div class='del'>-	INIT_ANCHOR(recv);</div><div class='del'>-	INIT_ANCHOR(args);</div><div class='del'>-#if SUPPORT_JOKE</div><div class='del'>-	if (nd_type(node) == NODE_VCALL) {</div><div class='del'>-            ID id_bitblt;</div><div class='del'>-	    ID id_answer;</div><div class='del'>-</div><div class='del'>-            CONST_ID(id_bitblt, "bitblt");</div><div class='del'>-	    CONST_ID(id_answer, "the_answer_to_life_the_universe_and_everything");</div><div class='del'>-</div><div class='del'>-            if (mid == id_bitblt) {</div><div class='del'>-                ADD_INSN(ret, line, bitblt);</div><div class='del'>-                break;</div><div class='del'>-            }</div><div class='del'>-            else if (mid == id_answer) {</div><div class='del'>-		ADD_INSN(ret, line, answer);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	/* only joke */</div><div class='del'>-	{</div><div class='del'>-	    ID goto_id;</div><div class='del'>-	    ID label_id;</div><div class='del'>-</div><div class='del'>-	    CONST_ID(goto_id, "__goto__");</div><div class='del'>-	    CONST_ID(label_id, "__label__");</div><div class='del'>-</div><div class='del'>-	    if (nd_type(node) == NODE_FCALL &amp;&amp;</div><div class='del'>-		(mid == goto_id || mid == label_id)) {</div><div class='del'>-		LABEL *label;</div><div class='del'>-		st_data_t data;</div><div class='del'>-		st_table *labels_table = ISEQ_COMPILE_DATA(iseq)-&gt;labels_table;</div><div class='del'>-		VALUE label_name;</div><div class='del'>-</div><div class='del'>-		if (!labels_table) {</div><div class='del'>-		    labels_table = st_init_numtable();</div><div class='del'>-		    ISEQ_COMPILE_DATA(iseq)-&gt;labels_table = labels_table;</div><div class='del'>-		}</div><div class='del'>-		if (nd_type(node-&gt;nd_args-&gt;nd_head) == NODE_LIT &amp;&amp;</div><div class='del'>-		    SYMBOL_P(node-&gt;nd_args-&gt;nd_head-&gt;nd_lit)) {</div><div class='del'>-</div><div class='del'>-		    label_name = node-&gt;nd_args-&gt;nd_head-&gt;nd_lit;</div><div class='del'>-		    if (!st_lookup(labels_table, (st_data_t)label_name, &amp;data)) {</div><div class='del'>-			label = NEW_LABEL(line);</div><div class='del'>-			label-&gt;position = line;</div><div class='del'>-			st_insert(labels_table, (st_data_t)label_name, (st_data_t)label);</div><div class='del'>-		    }</div><div class='del'>-		    else {</div><div class='del'>-			label = (LABEL *)data;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    COMPILE_ERROR(ERROR_ARGS "invalid goto/label format");</div><div class='del'>-		    goto ng;</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-		if (mid == goto_id) {</div><div class='del'>-		    ADD_INSNL(ret, line, jump, label);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    ADD_LABEL(ret, label);</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-	/* receiver */</div><div class='del'>-	if (type == NODE_CALL || type == NODE_OPCALL || type == NODE_QCALL) {</div><div class='del'>-	    int idx, level;</div><div class='del'>-</div><div class='del'>-	    if (mid == idCall &amp;&amp;</div><div class='del'>-		nd_type(node-&gt;nd_recv) == NODE_LVAR &amp;&amp;</div><div class='del'>-		iseq_block_param_id_p(iseq, node-&gt;nd_recv-&gt;nd_vid, &amp;idx, &amp;level)) {</div><div class='del'>-		ADD_INSN2(recv, nd_line(node-&gt;nd_recv), getblockparamproxy, INT2FIX(idx + VM_ENV_DATA_SIZE - 1), INT2FIX(level));</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		CHECK(COMPILE(recv, "recv", node-&gt;nd_recv));</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (type == NODE_QCALL) {</div><div class='del'>-		else_label = NEW_LABEL(line);</div><div class='del'>-		end_label = NEW_LABEL(line);</div><div class='del'>-</div><div class='del'>-		DECL_BRANCH_BASE(branches, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "&amp;.");</div><div class='del'>-		ADD_INSN(recv, line, dup);</div><div class='del'>-		ADD_INSNL(recv, line, branchnil, else_label);</div><div class='del'>-		ADD_TRACE_BRANCH_COVERAGE(recv, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "then", branches);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else if (type == NODE_FCALL || type == NODE_VCALL) {</div><div class='del'>-	    ADD_CALL_RECEIVER(recv, line);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* args */</div><div class='del'>-	if (type != NODE_VCALL) {</div><div class='del'>-	    argc = setup_args(iseq, args, node-&gt;nd_args, &amp;flag, &amp;keywords);</div><div class='del'>-	    CHECK(!NIL_P(argc));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    argc = INT2FIX(0);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ADD_SEQ(ret, recv);</div><div class='del'>-	ADD_SEQ(ret, args);</div><div class='del'>-</div><div class='del'>-	debugp_param("call args argc", argc);</div><div class='del'>-	debugp_param("call method", ID2SYM(mid));</div><div class='del'>-</div><div class='del'>-	switch ((int)type) {</div><div class='del'>-	  case NODE_VCALL:</div><div class='del'>-	    flag |= VM_CALL_VCALL;</div><div class='del'>-	    /* VCALL is funcall, so fall through */</div><div class='del'>-	  case NODE_FCALL:</div><div class='del'>-	    flag |= VM_CALL_FCALL;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ADD_SEND_R(ret, line, mid, argc, parent_block, INT2FIX(flag), keywords);</div><div class='del'>-</div><div class='del'>-	if (else_label &amp;&amp; end_label) {</div><div class='del'>-	    ADD_INSNL(ret, line, jump, end_label);</div><div class='del'>-	    ADD_LABEL(ret, else_label);</div><div class='del'>-	    ADD_TRACE_BRANCH_COVERAGE(ret, nd_first_lineno(node), nd_first_column(node), nd_last_lineno(node), nd_last_column(node), "else", branches);</div><div class='del'>-	    ADD_LABEL(ret, end_label);</div><div class='del'>-	}</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='add'>+      case NODE_OP_ASGN_OR:</div><div class='add'>+        CHECK(compile_op_log(iseq, ret, node, popped, type));</div><div class='add'>+        break;</div><div class='add'>+      case NODE_CALL:   /* obj.foo */</div><div class='add'>+      case NODE_OPCALL: /* foo[] */</div><div class='add'>+        if (compile_call_precheck_freeze(iseq, ret, node, node, popped) == TRUE) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+      case NODE_QCALL: /* obj&amp;.foo */</div><div class='add'>+      case NODE_FCALL: /* foo() */</div><div class='add'>+      case NODE_VCALL: /* foo (variable or call) */</div><div class='add'>+        if (compile_call(iseq, ret, node, type, node, popped, false) == COMPILE_NG) {</div><div class='add'>+            goto ng;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_SUPER:</div><div class='del'>-      case NODE_ZSUPER:{</div><div class='del'>-	DECL_ANCHOR(args);</div><div class='del'>-	int argc;</div><div class='del'>-	unsigned int flag = 0;</div><div class='del'>-	struct rb_call_info_kw_arg *keywords = NULL;</div><div class='del'>-	const rb_iseq_t *parent_block = ISEQ_COMPILE_DATA(iseq)-&gt;current_block;</div><div class='del'>-</div><div class='del'>-	INIT_ANCHOR(args);</div><div class='del'>-	ISEQ_COMPILE_DATA(iseq)-&gt;current_block = NULL;</div><div class='del'>-	if (type == NODE_SUPER) {</div><div class='del'>-	    VALUE vargc = setup_args(iseq, args, node-&gt;nd_args, &amp;flag, &amp;keywords);</div><div class='del'>-	    CHECK(!NIL_P(vargc));</div><div class='del'>-	    argc = FIX2INT(vargc);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    /* NODE_ZSUPER */</div><div class='del'>-	    int i;</div><div class='del'>-	    const rb_iseq_t *liseq = body-&gt;local_iseq;</div><div class='del'>-	    const struct rb_iseq_constant_body *const local_body = liseq-&gt;body;</div><div class='del'>-	    const struct rb_iseq_param_keyword *const local_kwd = local_body-&gt;param.keyword;</div><div class='del'>-	    int lvar_level = get_lvar_level(iseq);</div><div class='del'>-</div><div class='del'>-	    argc = local_body-&gt;param.lead_num;</div><div class='del'>-</div><div class='del'>-	    /* normal arguments */</div><div class='del'>-	    for (i = 0; i &lt; local_body-&gt;param.lead_num; i++) {</div><div class='del'>-		int idx = local_body-&gt;local_table_size - i;</div><div class='del'>-		ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (local_body-&gt;param.flags.has_opt) {</div><div class='del'>-		/* optional arguments */</div><div class='del'>-		int j;</div><div class='del'>-		for (j = 0; j &lt; local_body-&gt;param.opt_num; j++) {</div><div class='del'>-		    int idx = local_body-&gt;local_table_size - (i + j);</div><div class='del'>-		    ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='del'>-		}</div><div class='del'>-		i += j;</div><div class='del'>-		argc = i;</div><div class='del'>-	    }</div><div class='del'>-	    if (local_body-&gt;param.flags.has_rest) {</div><div class='del'>-		/* rest argument */</div><div class='del'>-		int idx = local_body-&gt;local_table_size - local_body-&gt;param.rest_start;</div><div class='del'>-</div><div class='del'>-		ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='del'>-		ADD_INSN1(args, line, splatarray, Qfalse);</div><div class='del'>-</div><div class='del'>-		argc = local_body-&gt;param.rest_start + 1;</div><div class='del'>-		flag |= VM_CALL_ARGS_SPLAT;</div><div class='del'>-	    }</div><div class='del'>-	    if (local_body-&gt;param.flags.has_post) {</div><div class='del'>-		/* post arguments */</div><div class='del'>-		int post_len = local_body-&gt;param.post_num;</div><div class='del'>-		int post_start = local_body-&gt;param.post_start;</div><div class='del'>-</div><div class='del'>-		if (local_body-&gt;param.flags.has_rest) {</div><div class='del'>-		    int j;</div><div class='del'>-		    for (j=0; j&lt;post_len; j++) {</div><div class='del'>-			int idx = local_body-&gt;local_table_size - (post_start + j);</div><div class='del'>-			ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='del'>-		    }</div><div class='del'>-		    ADD_INSN1(args, line, newarray, INT2FIX(j));</div><div class='del'>-		    ADD_INSN (args, line, concatarray);</div><div class='del'>-		    /* argc is settled at above */</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    int j;</div><div class='del'>-		    for (j=0; j&lt;post_len; j++) {</div><div class='del'>-			int idx = local_body-&gt;local_table_size - (post_start + j);</div><div class='del'>-			ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='del'>-		    }</div><div class='del'>-		    argc = post_len + post_start;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (local_body-&gt;param.flags.has_kw) { /* TODO: support keywords */</div><div class='del'>-		int local_size = local_body-&gt;local_table_size;</div><div class='del'>-		argc++;</div><div class='del'>-</div><div class='del'>-		ADD_INSN1(args, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='del'>-</div><div class='del'>-		if (local_body-&gt;param.flags.has_kwrest) {</div><div class='del'>-		    int idx = local_body-&gt;local_table_size - local_kwd-&gt;rest_start;</div><div class='del'>-		    ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='del'>-		    ADD_SEND (args, line, rb_intern("dup"), INT2FIX(0));</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    ADD_INSN1(args, line, newhash, INT2FIX(0));</div><div class='del'>-		}</div><div class='del'>-		for (i = 0; i &lt; local_kwd-&gt;num; ++i) {</div><div class='del'>-		    ID id = local_kwd-&gt;table[i];</div><div class='del'>-		    int idx = local_size - get_local_var_idx(liseq, id);</div><div class='del'>-		    ADD_INSN1(args, line, putobject, ID2SYM(id));</div><div class='del'>-		    ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='del'>-		}</div><div class='del'>-		ADD_SEND(args, line, id_core_hash_merge_ptr, INT2FIX(i * 2 + 1));</div><div class='del'>-		if (local_body-&gt;param.flags.has_rest) {</div><div class='del'>-		    ADD_INSN1(args, line, newarray, INT2FIX(1));</div><div class='del'>-		    ADD_INSN (args, line, concatarray);</div><div class='del'>-		    --argc;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else if (local_body-&gt;param.flags.has_kwrest) {</div><div class='del'>-		int idx = local_body-&gt;local_table_size - local_kwd-&gt;rest_start;</div><div class='del'>-		ADD_GETLOCAL(args, line, idx, lvar_level);</div><div class='del'>-</div><div class='del'>-		ADD_SEND (args, line, rb_intern("dup"), INT2FIX(0));</div><div class='del'>-		if (local_body-&gt;param.flags.has_rest) {</div><div class='del'>-		    ADD_INSN1(args, line, newarray, INT2FIX(1));</div><div class='del'>-		    ADD_INSN (args, line, concatarray);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    argc++;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ADD_INSN(ret, line, putself);</div><div class='del'>-	ADD_SEQ(ret, args);</div><div class='del'>-	ADD_INSN3(ret, line, invokesuper,</div><div class='del'>-		  new_callinfo(iseq, 0, argc, flag | VM_CALL_SUPER | (type == NODE_ZSUPER ? VM_CALL_ZSUPER : 0) | VM_CALL_FCALL, keywords, parent_block != NULL),</div><div class='del'>-		  Qnil, /* CALL_CACHE */</div><div class='del'>-		  parent_block);</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='del'>-      case NODE_ARRAY:{</div><div class='del'>-	CHECK(compile_array(iseq, ret, node, COMPILE_ARRAY_TYPE_ARRAY, NULL, NULL, popped) &gt;= 0);</div><div class='del'>-	break;</div><div class='add'>+      case NODE_ZSUPER:</div><div class='add'>+        CHECK(compile_super(iseq, ret, node, popped, type));</div><div class='add'>+        break;</div><div class='add'>+      case NODE_LIST:{</div><div class='add'>+        CHECK(compile_array(iseq, ret, node, popped) &gt;= 0);</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='del'>-      case NODE_ZARRAY:{</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN1(ret, line, newarray, INT2FIX(0));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+      case NODE_ZLIST:{</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, node, newarray, INT2FIX(0));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_VALUES:{</div><div class='del'>-	const NODE *n = node;</div><div class='del'>-	if (popped) {</div><div class='del'>-	    COMPILE_ERROR(ERROR_ARGS "NODE_VALUES: must not be popped");</div><div class='del'>-	}</div><div class='del'>-	while (n) {</div><div class='del'>-	    CHECK(COMPILE(ret, "values item", n-&gt;nd_head));</div><div class='del'>-	    n = n-&gt;nd_next;</div><div class='del'>-	}</div><div class='del'>-	ADD_INSN1(ret, line, newarray, INT2FIX(node-&gt;nd_alen));</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='del'>-      case NODE_HASH:{</div><div class='del'>-	DECL_ANCHOR(list);</div><div class='del'>-	enum node_type type = node-&gt;nd_head ? nd_type(node-&gt;nd_head) : NODE_ZARRAY;</div><div class='del'>-</div><div class='del'>-	INIT_ANCHOR(list);</div><div class='del'>-	switch (type) {</div><div class='del'>-	  case NODE_ARRAY:</div><div class='del'>-	    CHECK(compile_array(iseq, list, node-&gt;nd_head, COMPILE_ARRAY_TYPE_HASH, NULL, NULL, popped) &gt;= 0);</div><div class='del'>-	    ADD_SEQ(ret, list);</div><div class='del'>-	    break;</div><div class='del'>-</div><div class='del'>-	  case NODE_ZARRAY:</div><div class='del'>-	    if (popped) break;</div><div class='del'>-	    ADD_INSN1(ret, line, newhash, INT2FIX(0));</div><div class='del'>-	    break;</div><div class='del'>-</div><div class='del'>-	  default:</div><div class='del'>-	    COMPILE_ERROR(ERROR_ARGS_AT(node-&gt;nd_head) "can't make hash with this node: %s",</div><div class='del'>-			  ruby_node_name(type));</div><div class='del'>-	    goto ng;</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        const NODE *n = node;</div><div class='add'>+        if (popped) {</div><div class='add'>+            COMPILE_ERROR(ERROR_ARGS "NODE_VALUES: must not be popped");</div><div class='add'>+        }</div><div class='add'>+        while (n) {</div><div class='add'>+            CHECK(COMPILE(ret, "values item", n-&gt;nd_head));</div><div class='add'>+            n = n-&gt;nd_next;</div><div class='add'>+        }</div><div class='add'>+        ADD_INSN1(ret, node, newarray, INT2FIX(node-&gt;nd_alen));</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='add'>+      case NODE_HASH:</div><div class='add'>+        CHECK(compile_hash(iseq, ret, node, FALSE, popped) &gt;= 0);</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_RETURN:</div><div class='del'>-	CHECK(compile_return(iseq, ret, node, popped));</div><div class='del'>-	break;</div><div class='del'>-      case NODE_YIELD:{</div><div class='del'>-	DECL_ANCHOR(args);</div><div class='del'>-	VALUE argc;</div><div class='del'>-	unsigned int flag = 0;</div><div class='del'>-	struct rb_call_info_kw_arg *keywords = NULL;</div><div class='del'>-</div><div class='del'>-	INIT_ANCHOR(args);</div><div class='del'>-	if (body-&gt;type == ISEQ_TYPE_TOP ||</div><div class='del'>-	    body-&gt;type == ISEQ_TYPE_MAIN) {</div><div class='del'>-	    COMPILE_ERROR(ERROR_ARGS "Invalid yield");</div><div class='del'>-	    goto ng;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (node-&gt;nd_head) {</div><div class='del'>-	    argc = setup_args(iseq, args, node-&gt;nd_head, &amp;flag, &amp;keywords);</div><div class='del'>-	    CHECK(!NIL_P(argc));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    argc = INT2FIX(0);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ADD_SEQ(ret, args);</div><div class='del'>-	ADD_INSN1(ret, line, invokeblock, new_callinfo(iseq, 0, FIX2INT(argc), flag, keywords, FALSE));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='add'>+        CHECK(compile_return(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='add'>+      case NODE_YIELD:</div><div class='add'>+        CHECK(compile_yield(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_LVAR:{</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ID id = node-&gt;nd_vid;</div><div class='del'>-	    int idx = body-&gt;local_iseq-&gt;body-&gt;local_table_size - get_local_var_idx(iseq, id);</div><div class='del'>-</div><div class='del'>-	    debugs("id: %s idx: %d\n", rb_id2name(id), idx);</div><div class='del'>-	    ADD_GETLOCAL(ret, line, idx, get_lvar_level(iseq));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (!popped) {</div><div class='add'>+            compile_lvar(iseq, ret, node, node-&gt;nd_vid);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_DVAR:{</div><div class='del'>-	int lv, idx, ls;</div><div class='del'>-	debugi("nd_vid", node-&gt;nd_vid);</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    idx = get_dyna_var_idx(iseq, node-&gt;nd_vid, &amp;lv, &amp;ls);</div><div class='del'>-	    if (idx &lt; 0) {</div><div class='del'>-		COMPILE_ERROR(ERROR_ARGS "unknown dvar (%"PRIsVALUE")",</div><div class='del'>-			      rb_id2str(node-&gt;nd_vid));</div><div class='del'>-		goto ng;</div><div class='del'>-	    }</div><div class='del'>-	    ADD_GETLOCAL(ret, line, ls - idx, lv);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        int lv, idx, ls;</div><div class='add'>+        debugi("nd_vid", node-&gt;nd_vid);</div><div class='add'>+        if (!popped) {</div><div class='add'>+            idx = get_dyna_var_idx(iseq, node-&gt;nd_vid, &amp;lv, &amp;ls);</div><div class='add'>+            if (idx &lt; 0) {</div><div class='add'>+                COMPILE_ERROR(ERROR_ARGS "unknown dvar (%"PRIsVALUE")",</div><div class='add'>+                              rb_id2str(node-&gt;nd_vid));</div><div class='add'>+                goto ng;</div><div class='add'>+            }</div><div class='add'>+            ADD_GETLOCAL(ret, node, ls - idx, lv);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_GVAR:{</div><div class='del'>-	ADD_INSN1(ret, line, getglobal,</div><div class='del'>-		  ((VALUE)node-&gt;nd_entry | 1));</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        ADD_INSN1(ret, node, getglobal, ID2SYM(node-&gt;nd_entry));</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_IVAR:{</div><div class='del'>-	debugi("nd_vid", node-&gt;nd_vid);</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN2(ret, line, getinstancevariable,</div><div class='del'>-		      ID2SYM(node-&gt;nd_vid),</div><div class='del'>-		      get_ivar_ic_value(iseq,node-&gt;nd_vid));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        debugi("nd_vid", node-&gt;nd_vid);</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN2(ret, node, getinstancevariable,</div><div class='add'>+                      ID2SYM(node-&gt;nd_vid),</div><div class='add'>+                      get_ivar_ic_value(iseq,node-&gt;nd_vid));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_CONST:{</div><div class='del'>-	debugi("nd_vid", node-&gt;nd_vid);</div><div class='del'>-</div><div class='del'>-	if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='del'>-	    LABEL *lend = NEW_LABEL(line);</div><div class='del'>-	    int ic_index = body-&gt;is_size++;</div><div class='del'>-</div><div class='del'>-            ADD_INSN2(ret, line, opt_getinlinecache, lend, INT2FIX(ic_index));</div><div class='del'>-	    ADD_INSN1(ret, line, getconstant, ID2SYM(node-&gt;nd_vid));</div><div class='del'>-            ADD_INSN1(ret, line, opt_setinlinecache, INT2FIX(ic_index));</div><div class='del'>-	    ADD_LABEL(ret, lend);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ADD_INSN(ret, line, putnil);</div><div class='del'>-	    ADD_INSN1(ret, line, getconstant, ID2SYM(node-&gt;nd_vid));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        debugi("nd_vid", node-&gt;nd_vid);</div><div class='add'>+</div><div class='add'>+        if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+            body-&gt;ic_size++;</div><div class='add'>+            VALUE segments = rb_ary_new_from_args(1, ID2SYM(node-&gt;nd_vid));</div><div class='add'>+            ADD_INSN1(ret, node, opt_getconstant_path, segments);</div><div class='add'>+            RB_OBJ_WRITTEN(iseq, Qundef, segments);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN(ret, node, putnil);</div><div class='add'>+            ADD_INSN1(ret, node, putobject, Qtrue);</div><div class='add'>+            ADD_INSN1(ret, node, getconstant, ID2SYM(node-&gt;nd_vid));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_CVAR:{</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN1(ret, line, getclassvariable,</div><div class='del'>-		      ID2SYM(node-&gt;nd_vid));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN2(ret, node, getclassvariable,</div><div class='add'>+                      ID2SYM(node-&gt;nd_vid),</div><div class='add'>+                      get_cvar_ic_value(iseq,node-&gt;nd_vid));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_NTH_REF:{</div><div class='ctx'>         if (!popped) {</div><div class='del'>-	    if (!node-&gt;nd_nth) {</div><div class='del'>-		ADD_INSN(ret, line, putnil);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSN2(ret, line, getspecial, INT2FIX(1) /* '~'  */,</div><div class='del'>-		      INT2FIX(node-&gt;nd_nth &lt;&lt; 1));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+            if (!node-&gt;nd_nth) {</div><div class='add'>+                ADD_INSN(ret, node, putnil);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            ADD_INSN2(ret, node, getspecial, INT2FIX(1) /* '~'  */,</div><div class='add'>+                      INT2FIX(node-&gt;nd_nth &lt;&lt; 1));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_BACK_REF:{</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN2(ret, line, getspecial, INT2FIX(1) /* '~' */,</div><div class='del'>-		      INT2FIX(0x01 | (node-&gt;nd_nth &lt;&lt; 1)));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN2(ret, node, getspecial, INT2FIX(1) /* '~' */,</div><div class='add'>+                      INT2FIX(0x01 | (node-&gt;nd_nth &lt;&lt; 1)));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_MATCH:</div><div class='ctx'>       case NODE_MATCH2:</div><div class='del'>-      case NODE_MATCH3:{</div><div class='del'>-	DECL_ANCHOR(recv);</div><div class='del'>-	DECL_ANCHOR(val);</div><div class='del'>-</div><div class='del'>-	INIT_ANCHOR(recv);</div><div class='del'>-	INIT_ANCHOR(val);</div><div class='del'>-	switch (nd_type(node)) {</div><div class='del'>-	  case NODE_MATCH:</div><div class='del'>-	    ADD_INSN1(recv, line, putobject, node-&gt;nd_lit);</div><div class='del'>-	    ADD_INSN2(val, line, getspecial, INT2FIX(0),</div><div class='del'>-		      INT2FIX(0));</div><div class='del'>-	    break;</div><div class='del'>-	  case NODE_MATCH2:</div><div class='del'>-	    CHECK(COMPILE(recv, "receiver", node-&gt;nd_recv));</div><div class='del'>-	    CHECK(COMPILE(val, "value", node-&gt;nd_value));</div><div class='del'>-	    break;</div><div class='del'>-	  case NODE_MATCH3:</div><div class='del'>-	    CHECK(COMPILE(recv, "receiver", node-&gt;nd_value));</div><div class='del'>-	    CHECK(COMPILE(val, "value", node-&gt;nd_recv));</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction) {</div><div class='del'>-	    /* TODO: detect by node */</div><div class='del'>-	    if (recv-&gt;last == recv-&gt;anchor.next &amp;&amp;</div><div class='del'>-		INSN_OF(recv-&gt;last) == BIN(putobject) &amp;&amp;</div><div class='del'>-		nd_type(node) == NODE_MATCH2) {</div><div class='del'>-		ADD_SEQ(ret, val);</div><div class='del'>-		ADD_INSN1(ret, line, opt_regexpmatch1,</div><div class='del'>-			  OPERAND_AT(recv-&gt;last, 0));</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		ADD_SEQ(ret, recv);</div><div class='del'>-		ADD_SEQ(ret, val);</div><div class='del'>-		ADD_INSN2(ret, line, opt_regexpmatch2, new_callinfo(iseq, idEqTilde, 1, 0, NULL, FALSE), Qnil);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ADD_SEQ(ret, recv);</div><div class='del'>-	    ADD_SEQ(ret, val);</div><div class='del'>-	    ADD_SEND(ret, line, idEqTilde, INT2FIX(1));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (node-&gt;nd_args) {</div><div class='del'>-	    compile_named_capture_assign(iseq, ret, node-&gt;nd_args);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='add'>+      case NODE_MATCH3:</div><div class='add'>+        CHECK(compile_match(iseq, ret, node, popped, type));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_LIT:{</div><div class='del'>-	debugp_param("lit", node-&gt;nd_lit);</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN1(ret, line, putobject, node-&gt;nd_lit);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        debugp_param("lit", node-&gt;nd_lit);</div><div class='add'>+        if (!popped) {</div><div class='add'>+            if (UNLIKELY(node-&gt;nd_lit == rb_mRubyVMFrozenCore)) {</div><div class='add'>+                ADD_INSN1(ret, node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE)); // [Bug #20569]</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ADD_INSN1(ret, node, putobject, node-&gt;nd_lit);</div><div class='add'>+            }</div><div class='add'>+            RB_OBJ_WRITTEN(iseq, Qundef, node-&gt;nd_lit);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_STR:{</div><div class='del'>-	debugp_param("nd_lit", node-&gt;nd_lit);</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    VALUE lit = node-&gt;nd_lit;</div><div class='del'>-	    if (!ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal) {</div><div class='del'>-		lit = freeze_literal(iseq, lit);</div><div class='del'>-		ADD_INSN1(ret, line, putstring, lit);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;debug_frozen_string_literal || RTEST(ruby_debug)) {</div><div class='del'>-		    VALUE debug_info = rb_ary_new_from_args(2, rb_iseq_path(iseq), INT2FIX(line));</div><div class='del'>-		    lit = rb_str_dup(lit);</div><div class='del'>-		    rb_ivar_set(lit, id_debug_created_info, rb_obj_freeze(debug_info));</div><div class='del'>-		    lit = rb_str_freeze(lit);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    lit = rb_fstring(lit);</div><div class='del'>-		}</div><div class='del'>-		ADD_INSN1(ret, line, putobject, lit);</div><div class='del'>-		iseq_add_mark_object_compile_time(iseq, lit);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        debugp_param("nd_lit", node-&gt;nd_lit);</div><div class='add'>+        if (!popped) {</div><div class='add'>+            VALUE lit = node-&gt;nd_lit;</div><div class='add'>+            if (!ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal) {</div><div class='add'>+                lit = rb_fstring(lit);</div><div class='add'>+                ADD_INSN1(ret, node, putstring, lit);</div><div class='add'>+                RB_OBJ_WRITTEN(iseq, Qundef, lit);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;debug_frozen_string_literal || RTEST(ruby_debug)) {</div><div class='add'>+                    VALUE debug_info = rb_ary_new_from_args(2, rb_iseq_path(iseq), INT2FIX(line));</div><div class='add'>+                    lit = rb_str_dup(lit);</div><div class='add'>+                    rb_ivar_set(lit, id_debug_created_info, rb_obj_freeze(debug_info));</div><div class='add'>+                    lit = rb_str_freeze(lit);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    lit = rb_fstring(lit);</div><div class='add'>+                }</div><div class='add'>+                ADD_INSN1(ret, node, putobject, lit);</div><div class='add'>+                RB_OBJ_WRITTEN(iseq, Qundef, lit);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_DSTR:{</div><div class='del'>-	compile_dstr(iseq, ret, node);</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal) {</div><div class='del'>-		VALUE debug_info = Qnil;</div><div class='del'>-		if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;debug_frozen_string_literal || RTEST(ruby_debug)) {</div><div class='del'>-		    debug_info = rb_ary_new_from_args(2, rb_iseq_path(iseq), INT2FIX(line));</div><div class='del'>-		    iseq_add_mark_object_compile_time(iseq, rb_obj_freeze(debug_info));</div><div class='del'>-		}</div><div class='del'>-		ADD_INSN1(ret, line, freezestring, debug_info);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        compile_dstr(iseq, ret, node);</div><div class='add'>+</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_XSTR:{</div><div class='del'>-	ADD_CALL_RECEIVER(ret, line);</div><div class='del'>-	ADD_INSN1(ret, line, putobject, freeze_literal(iseq, node-&gt;nd_lit));</div><div class='del'>-	ADD_CALL(ret, line, idBackquote, INT2FIX(1));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        ADD_CALL_RECEIVER(ret, node);</div><div class='add'>+        VALUE str = rb_fstring(node-&gt;nd_lit);</div><div class='add'>+        ADD_INSN1(ret, node, putobject, str);</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, str);</div><div class='add'>+        ADD_CALL(ret, node, idBackquote, INT2FIX(1));</div><div class='add'>+</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_DXSTR:{</div><div class='del'>-	ADD_CALL_RECEIVER(ret, line);</div><div class='del'>-	compile_dstr(iseq, ret, node);</div><div class='del'>-	ADD_CALL(ret, line, idBackquote, INT2FIX(1));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        ADD_CALL_RECEIVER(ret, node);</div><div class='add'>+        compile_dstr(iseq, ret, node);</div><div class='add'>+        ADD_CALL(ret, node, idBackquote, INT2FIX(1));</div><div class='add'>+</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_EVSTR:</div><div class='del'>-	CHECK(compile_evstr(iseq, ret, node-&gt;nd_body, popped));</div><div class='del'>-	break;</div><div class='add'>+        CHECK(compile_evstr(iseq, ret, node-&gt;nd_body, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_DREGX:{</div><div class='del'>-	compile_dregx(iseq, ret, node);</div><div class='add'>+        compile_dregx(iseq, ret, node);</div><div class='ctx'> </div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_ONCE:{</div><div class='del'>-	int ic_index = body-&gt;is_size++;</div><div class='del'>-	const rb_iseq_t *block_iseq;</div><div class='del'>-	block_iseq = NEW_CHILD_ISEQ(node-&gt;nd_body, make_name_for_block(iseq), ISEQ_TYPE_PLAIN, line);</div><div class='add'>+        int ic_index = body-&gt;ise_size++;</div><div class='add'>+        const rb_iseq_t *block_iseq;</div><div class='add'>+        block_iseq = NEW_CHILD_ISEQ(node-&gt;nd_body, make_name_for_block(iseq), ISEQ_TYPE_PLAIN, line);</div><div class='ctx'> </div><div class='del'>-	ADD_INSN2(ret, line, once, block_iseq, INT2FIX(ic_index));</div><div class='add'>+        ADD_INSN2(ret, node, once, block_iseq, INT2FIX(ic_index));</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, (VALUE)block_iseq);</div><div class='ctx'> </div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_ARGSCAT:{</div><div class='del'>-	if (popped) {</div><div class='del'>-	    CHECK(COMPILE(ret, "argscat head", node-&gt;nd_head));</div><div class='del'>-	    ADD_INSN1(ret, line, splatarray, Qfalse);</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	    CHECK(COMPILE(ret, "argscat body", node-&gt;nd_body));</div><div class='del'>-	    ADD_INSN1(ret, line, splatarray, Qfalse);</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    CHECK(COMPILE(ret, "argscat head", node-&gt;nd_head));</div><div class='del'>-	    CHECK(COMPILE(ret, "argscat body", node-&gt;nd_body));</div><div class='del'>-	    ADD_INSN(ret, line, concatarray);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (popped) {</div><div class='add'>+            CHECK(COMPILE(ret, "argscat head", node-&gt;nd_head));</div><div class='add'>+            ADD_INSN1(ret, node, splatarray, Qfalse);</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+            CHECK(COMPILE(ret, "argscat body", node-&gt;nd_body));</div><div class='add'>+            ADD_INSN1(ret, node, splatarray, Qfalse);</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            CHECK(COMPILE(ret, "argscat head", node-&gt;nd_head));</div><div class='add'>+            CHECK(COMPILE(ret, "argscat body", node-&gt;nd_body));</div><div class='add'>+            ADD_INSN(ret, node, concatarray);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_ARGSPUSH:{</div><div class='del'>-	if (popped) {</div><div class='del'>-	    CHECK(COMPILE(ret, "arsgpush head", node-&gt;nd_head));</div><div class='del'>-	    ADD_INSN1(ret, line, splatarray, Qfalse);</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	    CHECK(COMPILE_(ret, "argspush body", node-&gt;nd_body, popped));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    CHECK(COMPILE(ret, "arsgpush head", node-&gt;nd_head));</div><div class='del'>-	    CHECK(COMPILE_(ret, "argspush body", node-&gt;nd_body, popped));</div><div class='del'>-	    ADD_INSN1(ret, line, newarray, INT2FIX(1));</div><div class='del'>-	    ADD_INSN(ret, line, concatarray);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (popped) {</div><div class='add'>+            CHECK(COMPILE(ret, "argspush head", node-&gt;nd_head));</div><div class='add'>+            ADD_INSN1(ret, node, splatarray, Qfalse);</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+            CHECK(COMPILE_(ret, "argspush body", node-&gt;nd_body, popped));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            CHECK(COMPILE(ret, "argspush head", node-&gt;nd_head));</div><div class='add'>+            CHECK(compile_array_1(iseq, ret, node-&gt;nd_body));</div><div class='add'>+            ADD_INSN(ret, node, concatarray);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_SPLAT:{</div><div class='del'>-	CHECK(COMPILE(ret, "splat", node-&gt;nd_head));</div><div class='del'>-	ADD_INSN1(ret, line, splatarray, Qtrue);</div><div class='add'>+        CHECK(COMPILE(ret, "splat", node-&gt;nd_head));</div><div class='add'>+        ADD_INSN1(ret, node, splatarray, Qtrue);</div><div class='ctx'> </div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_DEFN:{</div><div class='del'>-	const rb_iseq_t *method_iseq = NEW_ISEQ(node-&gt;nd_defn,</div><div class='del'>-						rb_id2str(node-&gt;nd_mid),</div><div class='del'>-						ISEQ_TYPE_METHOD, line);</div><div class='add'>+        ID mid = node-&gt;nd_mid;</div><div class='add'>+        const rb_iseq_t *method_iseq = NEW_ISEQ(node-&gt;nd_defn,</div><div class='add'>+                                                rb_id2str(mid),</div><div class='add'>+                                                ISEQ_TYPE_METHOD, line);</div><div class='ctx'> </div><div class='del'>-	debugp_param("defn/iseq", rb_iseqw_new(method_iseq));</div><div class='add'>+        debugp_param("defn/iseq", rb_iseqw_new(method_iseq));</div><div class='add'>+        ADD_INSN2(ret, node, definemethod, ID2SYM(mid), method_iseq);</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, (VALUE)method_iseq);</div><div class='ctx'> </div><div class='del'>-	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='del'>-	ADD_INSN1(ret, line, putobject, ID2SYM(node-&gt;nd_mid));</div><div class='del'>-	ADD_INSN1(ret, line, putiseq, method_iseq);</div><div class='del'>-	ADD_SEND (ret, line, id_core_define_method, INT2FIX(2));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, node, putobject, ID2SYM(mid));</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_DEFS:{</div><div class='del'>-	const rb_iseq_t * singleton_method = NEW_ISEQ(node-&gt;nd_defn,</div><div class='del'>-						      rb_id2str(node-&gt;nd_mid),</div><div class='del'>-						      ISEQ_TYPE_METHOD, line);</div><div class='del'>-</div><div class='del'>-	debugp_param("defs/iseq", rb_iseqw_new(singleton_method));</div><div class='del'>-</div><div class='del'>-	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='del'>-	CHECK(COMPILE(ret, "defs: recv", node-&gt;nd_recv));</div><div class='del'>-	ADD_INSN1(ret, line, putobject, ID2SYM(node-&gt;nd_mid));</div><div class='del'>-	ADD_INSN1(ret, line, putiseq, singleton_method);</div><div class='del'>-	ADD_SEND (ret, line, id_core_define_singleton_method, INT2FIX(3));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        ID mid = node-&gt;nd_mid;</div><div class='add'>+        const rb_iseq_t * singleton_method_iseq = NEW_ISEQ(node-&gt;nd_defn,</div><div class='add'>+                                                           rb_id2str(mid),</div><div class='add'>+                                                           ISEQ_TYPE_METHOD, line);</div><div class='add'>+</div><div class='add'>+        debugp_param("defs/iseq", rb_iseqw_new(singleton_method_iseq));</div><div class='add'>+        CHECK(COMPILE(ret, "defs: recv", node-&gt;nd_recv));</div><div class='add'>+        ADD_INSN2(ret, node, definesmethod, ID2SYM(mid), singleton_method_iseq);</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, (VALUE)singleton_method_iseq);</div><div class='add'>+</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, node, putobject, ID2SYM(mid));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_ALIAS:{</div><div class='del'>-	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='del'>-	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_CBASE));</div><div class='del'>-	CHECK(COMPILE(ret, "alias arg1", node-&gt;nd_1st));</div><div class='del'>-	CHECK(COMPILE(ret, "alias arg2", node-&gt;nd_2nd));</div><div class='del'>-	ADD_SEND(ret, line, id_core_set_method_alias, INT2FIX(3));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        ADD_INSN1(ret, node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+        ADD_INSN1(ret, node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_CBASE));</div><div class='add'>+        CHECK(COMPILE(ret, "alias arg1", node-&gt;nd_1st));</div><div class='add'>+        CHECK(COMPILE(ret, "alias arg2", node-&gt;nd_2nd));</div><div class='add'>+        ADD_SEND(ret, node, id_core_set_method_alias, INT2FIX(3));</div><div class='add'>+</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_VALIAS:{</div><div class='del'>-	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='del'>-	ADD_INSN1(ret, line, putobject, ID2SYM(node-&gt;nd_alias));</div><div class='del'>-	ADD_INSN1(ret, line, putobject, ID2SYM(node-&gt;nd_orig));</div><div class='del'>-	ADD_SEND(ret, line, id_core_set_variable_alias, INT2FIX(2));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        ADD_INSN1(ret, node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+        ADD_INSN1(ret, node, putobject, ID2SYM(node-&gt;nd_alias));</div><div class='add'>+        ADD_INSN1(ret, node, putobject, ID2SYM(node-&gt;nd_orig));</div><div class='add'>+        ADD_SEND(ret, node, id_core_set_variable_alias, INT2FIX(2));</div><div class='add'>+</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_UNDEF:{</div><div class='del'>-	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='del'>-	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_CBASE));</div><div class='del'>-	CHECK(COMPILE(ret, "undef arg", node-&gt;nd_undef));</div><div class='del'>-	ADD_SEND(ret, line, id_core_undef_method, INT2FIX(2));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        ADD_INSN1(ret, node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+        ADD_INSN1(ret, node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_CBASE));</div><div class='add'>+        CHECK(COMPILE(ret, "undef arg", node-&gt;nd_undef));</div><div class='add'>+        ADD_SEND(ret, node, id_core_undef_method, INT2FIX(2));</div><div class='add'>+</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_CLASS:{</div><div class='del'>-	const rb_iseq_t *class_iseq = NEW_CHILD_ISEQ(node-&gt;nd_body,</div><div class='del'>-						     rb_sprintf("&lt;class:%"PRIsVALUE"&gt;", rb_id2str(node-&gt;nd_cpath-&gt;nd_mid)),</div><div class='del'>-						     ISEQ_TYPE_CLASS, line);</div><div class='del'>-	const int flags = VM_DEFINECLASS_TYPE_CLASS |</div><div class='del'>-	    (node-&gt;nd_super ? VM_DEFINECLASS_FLAG_HAS_SUPERCLASS : 0) |</div><div class='del'>-	    compile_cpath(ret, iseq, node-&gt;nd_cpath);</div><div class='del'>-</div><div class='del'>-	CHECK(COMPILE(ret, "super", node-&gt;nd_super));</div><div class='del'>-	ADD_INSN3(ret, line, defineclass, ID2SYM(node-&gt;nd_cpath-&gt;nd_mid), class_iseq, INT2FIX(flags));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        const rb_iseq_t *class_iseq = NEW_CHILD_ISEQ(node-&gt;nd_body,</div><div class='add'>+                                                     rb_str_freeze(rb_sprintf("&lt;class:%"PRIsVALUE"&gt;", rb_id2str(node-&gt;nd_cpath-&gt;nd_mid))),</div><div class='add'>+                                                     ISEQ_TYPE_CLASS, line);</div><div class='add'>+        const int flags = VM_DEFINECLASS_TYPE_CLASS |</div><div class='add'>+            (node-&gt;nd_super ? VM_DEFINECLASS_FLAG_HAS_SUPERCLASS : 0) |</div><div class='add'>+            compile_cpath(ret, iseq, node-&gt;nd_cpath);</div><div class='add'>+</div><div class='add'>+        CHECK(COMPILE(ret, "super", node-&gt;nd_super));</div><div class='add'>+        ADD_INSN3(ret, node, defineclass, ID2SYM(node-&gt;nd_cpath-&gt;nd_mid), class_iseq, INT2FIX(flags));</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, (VALUE)class_iseq);</div><div class='add'>+</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_MODULE:{</div><div class='ctx'>         const rb_iseq_t *module_iseq = NEW_CHILD_ISEQ(node-&gt;nd_body,</div><div class='del'>-						      rb_sprintf("&lt;module:%"PRIsVALUE"&gt;", rb_id2str(node-&gt;nd_cpath-&gt;nd_mid)),</div><div class='del'>-						      ISEQ_TYPE_CLASS, line);</div><div class='del'>-	const int flags = VM_DEFINECLASS_TYPE_MODULE |</div><div class='del'>-	    compile_cpath(ret, iseq, node-&gt;nd_cpath);</div><div class='del'>-</div><div class='del'>-	ADD_INSN (ret, line, putnil); /* dummy */</div><div class='del'>-	ADD_INSN3(ret, line, defineclass, ID2SYM(node-&gt;nd_cpath-&gt;nd_mid), module_iseq, INT2FIX(flags));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+                                                      rb_str_freeze(rb_sprintf("&lt;module:%"PRIsVALUE"&gt;", rb_id2str(node-&gt;nd_cpath-&gt;nd_mid))),</div><div class='add'>+                                                      ISEQ_TYPE_CLASS, line);</div><div class='add'>+        const int flags = VM_DEFINECLASS_TYPE_MODULE |</div><div class='add'>+            compile_cpath(ret, iseq, node-&gt;nd_cpath);</div><div class='add'>+</div><div class='add'>+        ADD_INSN (ret, node, putnil); /* dummy */</div><div class='add'>+        ADD_INSN3(ret, node, defineclass, ID2SYM(node-&gt;nd_cpath-&gt;nd_mid), module_iseq, INT2FIX(flags));</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, (VALUE)module_iseq);</div><div class='add'>+</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_SCLASS:{</div><div class='del'>-	ID singletonclass;</div><div class='del'>-	const rb_iseq_t *singleton_class = NEW_ISEQ(node-&gt;nd_body, rb_fstring_lit("singleton class"),</div><div class='del'>-						    ISEQ_TYPE_CLASS, line);</div><div class='del'>-</div><div class='del'>-	CHECK(COMPILE(ret, "sclass#recv", node-&gt;nd_recv));</div><div class='del'>-	ADD_INSN (ret, line, putnil);</div><div class='del'>-	CONST_ID(singletonclass, "singletonclass");</div><div class='del'>-	ADD_INSN3(ret, line, defineclass,</div><div class='del'>-		  ID2SYM(singletonclass), singleton_class,</div><div class='del'>-		  INT2FIX(VM_DEFINECLASS_TYPE_SINGLETON_CLASS));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='del'>-      case NODE_COLON2:{</div><div class='del'>-	if (rb_is_const_id(node-&gt;nd_mid)) {</div><div class='del'>-	    /* constant */</div><div class='del'>-	    LABEL *lend = NEW_LABEL(line);</div><div class='del'>-	    int ic_index = body-&gt;is_size++;</div><div class='del'>-</div><div class='del'>-	    DECL_ANCHOR(pref);</div><div class='del'>-	    DECL_ANCHOR(body);</div><div class='del'>-</div><div class='del'>-	    INIT_ANCHOR(pref);</div><div class='del'>-	    INIT_ANCHOR(body);</div><div class='del'>-	    CHECK(compile_const_prefix(iseq, node, pref, body));</div><div class='del'>-	    if (LIST_INSN_SIZE_ZERO(pref)) {</div><div class='del'>-		if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='del'>-                    ADD_INSN2(ret, line, opt_getinlinecache, lend, INT2FIX(ic_index));</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    ADD_INSN(ret, line, putnil);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		ADD_SEQ(ret, body);</div><div class='del'>-</div><div class='del'>-		if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='del'>-                    ADD_INSN1(ret, line, opt_setinlinecache, INT2FIX(ic_index));</div><div class='del'>-		    ADD_LABEL(ret, lend);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		ADD_SEQ(ret, pref);</div><div class='del'>-		ADD_SEQ(ret, body);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    /* function call */</div><div class='del'>-	    ADD_CALL_RECEIVER(ret, line);</div><div class='del'>-	    CHECK(COMPILE(ret, "colon2#nd_head", node-&gt;nd_head));</div><div class='del'>-	    ADD_CALL(ret, line, node-&gt;nd_mid, INT2FIX(1));</div><div class='del'>-	}</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='del'>-      case NODE_COLON3:{</div><div class='del'>-	LABEL *lend = NEW_LABEL(line);</div><div class='del'>-	int ic_index = body-&gt;is_size++;</div><div class='del'>-</div><div class='del'>-	debugi("colon3#nd_mid", node-&gt;nd_mid);</div><div class='del'>-</div><div class='del'>-	/* add cache insn */</div><div class='del'>-	if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='del'>-            ADD_INSN2(ret, line, opt_getinlinecache, lend, INT2FIX(ic_index));</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	ADD_INSN1(ret, line, putobject, rb_cObject);</div><div class='del'>-	ADD_INSN1(ret, line, getconstant, ID2SYM(node-&gt;nd_mid));</div><div class='del'>-</div><div class='del'>-	if (ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;inline_const_cache) {</div><div class='del'>-            ADD_INSN1(ret, line, opt_setinlinecache, INT2FIX(ic_index));</div><div class='del'>-	    ADD_LABEL(ret, lend);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        ID singletonclass;</div><div class='add'>+        const rb_iseq_t *singleton_class = NEW_ISEQ(node-&gt;nd_body, rb_fstring_lit("singleton class"),</div><div class='add'>+                                                    ISEQ_TYPE_CLASS, line);</div><div class='add'>+</div><div class='add'>+        CHECK(COMPILE(ret, "sclass#recv", node-&gt;nd_recv));</div><div class='add'>+        ADD_INSN (ret, node, putnil);</div><div class='add'>+        CONST_ID(singletonclass, "singletonclass");</div><div class='add'>+        ADD_INSN3(ret, node, defineclass,</div><div class='add'>+                  ID2SYM(singletonclass), singleton_class,</div><div class='add'>+                  INT2FIX(VM_DEFINECLASS_TYPE_SINGLETON_CLASS));</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, (VALUE)singleton_class);</div><div class='add'>+</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='add'>+      case NODE_COLON2:</div><div class='add'>+        CHECK(compile_colon2(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='add'>+      case NODE_COLON3:</div><div class='add'>+        CHECK(compile_colon3(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_DOT2:</div><div class='del'>-      case NODE_DOT3:{</div><div class='del'>-	int excl = type == NODE_DOT3;</div><div class='del'>-	VALUE flag = INT2FIX(excl);</div><div class='del'>-	const NODE *b = node-&gt;nd_beg;</div><div class='del'>-	const NODE *e = node-&gt;nd_end;</div><div class='del'>-	if (number_literal_p(b) &amp;&amp; number_literal_p(e)) {</div><div class='del'>-	    if (!popped) {</div><div class='del'>-		VALUE val = rb_range_new(b-&gt;nd_lit, e-&gt;nd_lit, excl);</div><div class='del'>-		iseq_add_mark_object_compile_time(iseq, val);</div><div class='del'>-		ADD_INSN1(ret, line, putobject, val);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    CHECK(COMPILE_(ret, "min", b, popped));</div><div class='del'>-	    CHECK(COMPILE_(ret, "max", e, popped));</div><div class='del'>-	    if (!popped) {</div><div class='del'>-		ADD_INSN1(ret, line, newrange, flag);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='add'>+        CHECK(compile_dots(iseq, ret, node, popped, FALSE));</div><div class='add'>+        break;</div><div class='add'>+      case NODE_DOT3:</div><div class='add'>+        CHECK(compile_dots(iseq, ret, node, popped, TRUE));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_FLIP2:</div><div class='ctx'>       case NODE_FLIP3:{</div><div class='del'>-	LABEL *lend = NEW_LABEL(line);</div><div class='del'>-	LABEL *ltrue = NEW_LABEL(line);</div><div class='del'>-	LABEL *lfalse = NEW_LABEL(line);</div><div class='del'>-	CHECK(compile_flip_flop(iseq, ret, node, type == NODE_FLIP2,</div><div class='del'>-				ltrue, lfalse));</div><div class='del'>-	ADD_LABEL(ret, ltrue);</div><div class='del'>-	ADD_INSN1(ret, line, putobject, Qtrue);</div><div class='del'>-	ADD_INSNL(ret, line, jump, lend);</div><div class='del'>-	ADD_LABEL(ret, lfalse);</div><div class='del'>-	ADD_INSN1(ret, line, putobject, Qfalse);</div><div class='del'>-	ADD_LABEL(ret, lend);</div><div class='del'>-	break;</div><div class='add'>+        LABEL *lend = NEW_LABEL(line);</div><div class='add'>+        LABEL *ltrue = NEW_LABEL(line);</div><div class='add'>+        LABEL *lfalse = NEW_LABEL(line);</div><div class='add'>+        CHECK(compile_flip_flop(iseq, ret, node, type == NODE_FLIP2,</div><div class='add'>+                                ltrue, lfalse));</div><div class='add'>+        ADD_LABEL(ret, ltrue);</div><div class='add'>+        ADD_INSN1(ret, node, putobject, Qtrue);</div><div class='add'>+        ADD_INSNL(ret, node, jump, lend);</div><div class='add'>+        ADD_LABEL(ret, lfalse);</div><div class='add'>+        ADD_INSN1(ret, node, putobject, Qfalse);</div><div class='add'>+        ADD_LABEL(ret, lend);</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_SELF:{</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, putself);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, putself);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_NIL:{</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, putnil);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, putnil);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_TRUE:{</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN1(ret, line, putobject, Qtrue);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, node, putobject, Qtrue);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_FALSE:{</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN1(ret, line, putobject, Qfalse);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='del'>-      case NODE_ERRINFO:{</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    if (body-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='del'>-		ADD_GETLOCAL(ret, line, LVAR_ERRINFO, 0);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		const rb_iseq_t *ip = iseq;</div><div class='del'>-		int level = 0;</div><div class='del'>-		while (ip) {</div><div class='del'>-		    if (ip-&gt;body-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='del'>-			break;</div><div class='del'>-		    }</div><div class='del'>-		    ip = ip-&gt;body-&gt;parent_iseq;</div><div class='del'>-		    level++;</div><div class='del'>-		}</div><div class='del'>-		if (ip) {</div><div class='del'>-		    ADD_GETLOCAL(ret, line, LVAR_ERRINFO, level);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    ADD_INSN(ret, line, putnil);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN1(ret, node, putobject, Qfalse);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='add'>+      case NODE_ERRINFO:</div><div class='add'>+        CHECK(compile_errinfo(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_DEFINED:</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    CHECK(compile_defined_expr(iseq, ret, node, Qtrue));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (!popped) {</div><div class='add'>+            CHECK(compile_defined_expr(iseq, ret, node, Qtrue));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_POSTEXE:{</div><div class='del'>-	/* compiled to:</div><div class='del'>-	 *   ONCE{ rb_mRubyVMFrozenCore::core#set_postexe{ ... } }</div><div class='del'>-	 */</div><div class='del'>-	int is_index = body-&gt;is_size++;</div><div class='del'>-	const rb_iseq_t *once_iseq =</div><div class='del'>-	    new_child_iseq_ifunc(iseq, IFUNC_NEW(build_postexe_iseq, node-&gt;nd_body, 0),</div><div class='del'>-				 rb_fstring(make_name_for_block(iseq)), iseq, ISEQ_TYPE_BLOCK, line);</div><div class='del'>-</div><div class='del'>-	ADD_INSN2(ret, line, once, once_iseq, INT2FIX(is_index));</div><div class='del'>-</div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        /* compiled to:</div><div class='add'>+         *   ONCE{ rb_mRubyVMFrozenCore::core#set_postexe{ ... } }</div><div class='add'>+         */</div><div class='add'>+        int is_index = body-&gt;ise_size++;</div><div class='add'>+        struct rb_iseq_new_with_callback_callback_func *ifunc =</div><div class='add'>+            rb_iseq_new_with_callback_new_callback(build_postexe_iseq, node-&gt;nd_body);</div><div class='add'>+        const rb_iseq_t *once_iseq =</div><div class='add'>+            new_child_iseq_with_callback(iseq, ifunc,</div><div class='add'>+                                 rb_fstring(make_name_for_block(iseq)), iseq, ISEQ_TYPE_BLOCK, line);</div><div class='add'>+</div><div class='add'>+        ADD_INSN2(ret, node, once, once_iseq, INT2FIX(is_index));</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, (VALUE)once_iseq);</div><div class='add'>+</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case NODE_KW_ARG:</div><div class='del'>-	{</div><div class='del'>-	    LABEL *end_label = NEW_LABEL(nd_line(node));</div><div class='del'>-	    const NODE *default_value = node-&gt;nd_body-&gt;nd_value;</div><div class='del'>-</div><div class='del'>-	    if (default_value == (const NODE *)-1) {</div><div class='del'>-		/* required argument. do nothing */</div><div class='del'>-		COMPILE_ERROR(ERROR_ARGS "unreachable");</div><div class='del'>-		goto ng;</div><div class='del'>-	    }</div><div class='del'>-	    else if (nd_type(default_value) == NODE_LIT ||</div><div class='del'>-		     nd_type(default_value) == NODE_NIL ||</div><div class='del'>-		     nd_type(default_value) == NODE_TRUE ||</div><div class='del'>-		     nd_type(default_value) == NODE_FALSE) {</div><div class='del'>-		COMPILE_ERROR(ERROR_ARGS "unreachable");</div><div class='del'>-		goto ng;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		/* if keywordcheck(_kw_bits, nth_keyword)</div><div class='del'>-		 *   kw = default_value</div><div class='del'>-		 * end</div><div class='del'>-		 */</div><div class='del'>-		int kw_bits_idx = body-&gt;local_table_size - body-&gt;param.keyword-&gt;bits_start;</div><div class='del'>-		int keyword_idx = body-&gt;param.keyword-&gt;num;</div><div class='del'>-</div><div class='del'>-		ADD_INSN2(ret, line, checkkeyword, INT2FIX(kw_bits_idx + VM_ENV_DATA_SIZE - 1), INT2FIX(keyword_idx));</div><div class='del'>-		ADD_INSNL(ret, line, branchif, end_label);</div><div class='del'>-		CHECK(COMPILE_POPPED(ret, "keyword default argument", node-&gt;nd_body));</div><div class='del'>-		ADD_LABEL(ret, end_label);</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        CHECK(compile_kw_arg(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_DSYM:{</div><div class='del'>-	compile_dstr(iseq, ret, node);</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, intern);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='del'>-      case NODE_ATTRASGN:{</div><div class='del'>-	DECL_ANCHOR(recv);</div><div class='del'>-	DECL_ANCHOR(args);</div><div class='del'>-	unsigned int flag = 0;</div><div class='del'>-	ID mid = node-&gt;nd_mid;</div><div class='del'>-	LABEL *lskip = 0;</div><div class='del'>-	VALUE argc;</div><div class='del'>-</div><div class='del'>-	/* optimization shortcut</div><div class='del'>-	 *   obj["literal"] = value -&gt; opt_aset_with(obj, "literal", value)</div><div class='del'>-	 */</div><div class='del'>-	if (mid == idASET &amp;&amp; !private_recv_p(node) &amp;&amp; node-&gt;nd_args &amp;&amp;</div><div class='del'>-	    nd_type(node-&gt;nd_args) == NODE_ARRAY &amp;&amp; node-&gt;nd_args-&gt;nd_alen == 2 &amp;&amp;</div><div class='del'>-	    nd_type(node-&gt;nd_args-&gt;nd_head) == NODE_STR &amp;&amp;</div><div class='del'>-	    ISEQ_COMPILE_DATA(iseq)-&gt;current_block == NULL &amp;&amp;</div><div class='del'>-            !ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;frozen_string_literal &amp;&amp;</div><div class='del'>-	    ISEQ_COMPILE_DATA(iseq)-&gt;option-&gt;specialized_instruction)</div><div class='del'>-	{</div><div class='del'>-	    VALUE str = freeze_literal(iseq, node-&gt;nd_args-&gt;nd_head-&gt;nd_lit);</div><div class='del'>-	    CHECK(COMPILE(ret, "recv", node-&gt;nd_recv));</div><div class='del'>-	    CHECK(COMPILE(ret, "value", node-&gt;nd_args-&gt;nd_next-&gt;nd_head));</div><div class='del'>-	    if (!popped) {</div><div class='del'>-		ADD_INSN(ret, line, swap);</div><div class='del'>-		ADD_INSN1(ret, line, topn, INT2FIX(1));</div><div class='del'>-	    }</div><div class='del'>-	    ADD_INSN3(ret, line, opt_aset_with, str,</div><div class='del'>-		      new_callinfo(iseq, idASET, 2, 0, NULL, FALSE),</div><div class='del'>-		      NULL/* CALL_CACHE */);</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	INIT_ANCHOR(recv);</div><div class='del'>-	INIT_ANCHOR(args);</div><div class='del'>-	argc = setup_args(iseq, args, node-&gt;nd_args, &amp;flag, NULL);</div><div class='del'>-	CHECK(!NIL_P(argc));</div><div class='del'>-</div><div class='del'>-	flag |= COMPILE_RECV(recv, "recv", node);</div><div class='del'>-</div><div class='del'>-	debugp_param("argc", argc);</div><div class='del'>-	debugp_param("nd_mid", ID2SYM(mid));</div><div class='del'>-</div><div class='del'>-	if (!rb_is_attrset_id(mid)) {</div><div class='del'>-	    /* safe nav attr */</div><div class='del'>-	    mid = rb_id_attrset(mid);</div><div class='del'>-	    ADD_INSN(recv, line, dup);</div><div class='del'>-	    lskip = NEW_LABEL(line);</div><div class='del'>-	    ADD_INSNL(recv, line, branchnil, lskip);</div><div class='del'>-	}</div><div class='del'>-	if (!popped) {</div><div class='del'>-	    ADD_INSN(ret, line, putnil);</div><div class='del'>-	    ADD_SEQ(ret, recv);</div><div class='del'>-	    ADD_SEQ(ret, args);</div><div class='del'>-</div><div class='del'>-	    if (flag &amp; VM_CALL_ARGS_BLOCKARG) {</div><div class='del'>-		ADD_INSN1(ret, line, topn, INT2FIX(1));</div><div class='del'>-		if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='del'>-		    ADD_INSN1(ret, line, putobject, INT2FIX(-1));</div><div class='del'>-		    ADD_SEND(ret, line, idAREF, INT2FIX(1));</div><div class='del'>-		}</div><div class='del'>-		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 3));</div><div class='del'>-		ADD_INSN (ret, line, pop);</div><div class='del'>-	    }</div><div class='del'>-	    else if (flag &amp; VM_CALL_ARGS_SPLAT) {</div><div class='del'>-		ADD_INSN(ret, line, dup);</div><div class='del'>-		ADD_INSN1(ret, line, putobject, INT2FIX(-1));</div><div class='del'>-		ADD_SEND(ret, line, idAREF, INT2FIX(1));</div><div class='del'>-		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 2));</div><div class='del'>-		ADD_INSN (ret, line, pop);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		ADD_INSN1(ret, line, setn, FIXNUM_INC(argc, 1));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ADD_SEQ(ret, recv);</div><div class='del'>-	    ADD_SEQ(ret, args);</div><div class='del'>-	}</div><div class='del'>-	ADD_SEND_WITH_FLAG(ret, line, mid, argc, INT2FIX(flag));</div><div class='del'>-	if (lskip) ADD_LABEL(ret, lskip);</div><div class='del'>-	ADD_INSN(ret, line, pop);</div><div class='del'>-</div><div class='del'>-	break;</div><div class='add'>+        compile_dstr(iseq, ret, node);</div><div class='add'>+        if (!popped) {</div><div class='add'>+            ADD_INSN(ret, node, intern);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='add'>+      case NODE_ATTRASGN:</div><div class='add'>+        CHECK(compile_attrasgn(iseq, ret, node, popped));</div><div class='add'>+        break;</div><div class='ctx'>       case NODE_LAMBDA:{</div><div class='del'>-	/* compile same as lambda{...} */</div><div class='del'>-	const rb_iseq_t *block = NEW_CHILD_ISEQ(node-&gt;nd_body, make_name_for_block(iseq), ISEQ_TYPE_BLOCK, line);</div><div class='del'>-	VALUE argc = INT2FIX(0);</div><div class='add'>+        /* compile same as lambda{...} */</div><div class='add'>+        const rb_iseq_t *block = NEW_CHILD_ISEQ(node-&gt;nd_body, make_name_for_block(iseq), ISEQ_TYPE_BLOCK, line);</div><div class='add'>+        VALUE argc = INT2FIX(0);</div><div class='ctx'> </div><div class='del'>-	ADD_INSN1(ret, line, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='del'>-	ADD_CALL_WITH_BLOCK(ret, line, idLambda, argc, block);</div><div class='add'>+        ADD_INSN1(ret, node, putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+        ADD_CALL_WITH_BLOCK(ret, node, idLambda, argc, block);</div><div class='add'>+        RB_OBJ_WRITTEN(iseq, Qundef, (VALUE)block);</div><div class='ctx'> </div><div class='del'>-	if (popped) {</div><div class='del'>-	    ADD_INSN(ret, line, pop);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (popped) {</div><div class='add'>+            ADD_INSN(ret, node, pop);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       default:</div><div class='del'>-	UNKNOWN_NODE("iseq_compile_each", node, COMPILE_NG);</div><div class='add'>+        UNKNOWN_NODE("iseq_compile_each", node, COMPILE_NG);</div><div class='ctx'>       ng:</div><div class='del'>-	debug_node_end();</div><div class='del'>-	return COMPILE_NG;</div><div class='add'>+        debug_node_end();</div><div class='add'>+        return COMPILE_NG;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     debug_node_end();</div><div class='hunk'>@@ -7575,22 +10142,23 @@ insn_data_length(INSN *iobj)</div><div class='ctx'> static int</div><div class='ctx'> calc_sp_depth(int depth, INSN *insn)</div><div class='ctx'> {</div><div class='del'>-    return insn_stack_increase(depth, insn-&gt;insn_id, insn-&gt;operands);</div><div class='add'>+    return comptime_insn_stack_increase(depth, insn-&gt;insn_id, insn-&gt;operands);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> opobj_inspect(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    struct RBasic *r = (struct RBasic *) obj;</div><div class='del'>-    if (!SPECIAL_CONST_P(r)  &amp;&amp; r-&gt;klass == 0) {</div><div class='del'>-	switch (BUILTIN_TYPE(r)) {</div><div class='del'>-	  case T_STRING:</div><div class='del'>-	    obj = rb_str_new_cstr(RSTRING_PTR(obj));</div><div class='del'>-	    break;</div><div class='del'>-	  case T_ARRAY:</div><div class='del'>-	    obj = rb_ary_dup(obj);</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+    if (!SPECIAL_CONST_P(obj) &amp;&amp; !RBASIC_CLASS(obj)) {</div><div class='add'>+        switch (BUILTIN_TYPE(obj)) {</div><div class='add'>+          case T_STRING:</div><div class='add'>+            obj = rb_str_new_cstr(RSTRING_PTR(obj));</div><div class='add'>+            break;</div><div class='add'>+          case T_ARRAY:</div><div class='add'>+            obj = rb_ary_dup(obj);</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return rb_inspect(obj);</div><div class='ctx'> }</div><div class='hunk'>@@ -7603,89 +10171,92 @@ insn_data_to_s_detail(INSN *iobj)</div><div class='ctx'>     VALUE str = rb_sprintf("%-20s ", insn_name(iobj-&gt;insn_id));</div><div class='ctx'> </div><div class='ctx'>     if (iobj-&gt;operands) {</div><div class='del'>-	const char *types = insn_op_types(iobj-&gt;insn_id);</div><div class='del'>-	int j;</div><div class='del'>-</div><div class='del'>-	for (j = 0; types[j]; j++) {</div><div class='del'>-	    char type = types[j];</div><div class='del'>-</div><div class='del'>-	    switch (type) {</div><div class='del'>-	      case TS_OFFSET:	/* label(destination position) */</div><div class='del'>-		{</div><div class='del'>-		    LABEL *lobj = (LABEL *)OPERAND_AT(iobj, j);</div><div class='del'>-		    rb_str_catf(str, LABEL_FORMAT, lobj-&gt;label_no);</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      case TS_ISEQ:	/* iseq */</div><div class='del'>-		{</div><div class='del'>-		    rb_iseq_t *iseq = (rb_iseq_t *)OPERAND_AT(iobj, j);</div><div class='del'>-		    VALUE val = Qnil;</div><div class='del'>-		    if (0 &amp;&amp; iseq) { /* TODO: invalidate now */</div><div class='del'>-			val = (VALUE)iseq;</div><div class='del'>-		    }</div><div class='del'>-		    rb_str_concat(str, opobj_inspect(val));</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      case TS_LINDEX:</div><div class='del'>-	      case TS_NUM:	/* ulong */</div><div class='del'>-	      case TS_VALUE:	/* VALUE */</div><div class='del'>-		{</div><div class='del'>-		    VALUE v = OPERAND_AT(iobj, j);</div><div class='del'>-		    rb_str_concat(str, opobj_inspect(v));</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	      case TS_ID:	/* ID */</div><div class='del'>-		rb_str_concat(str, opobj_inspect(OPERAND_AT(iobj, j)));</div><div class='del'>-		break;</div><div class='del'>-	      case TS_GENTRY:</div><div class='del'>-		{</div><div class='del'>-		    struct rb_global_entry *entry = (struct rb_global_entry *)</div><div class='del'>-		      (OPERAND_AT(iobj, j) &amp; (~1));</div><div class='del'>-		    rb_str_append(str, rb_id2str(entry-&gt;id));</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	      case TS_IC:	/* inline cache */</div><div class='del'>-	      case TS_ISE:	/* inline storage entry */</div><div class='del'>-		rb_str_catf(str, "&lt;ic:%d&gt;", FIX2INT(OPERAND_AT(iobj, j)));</div><div class='del'>-		break;</div><div class='del'>-	      case TS_CALLINFO: /* call info */</div><div class='del'>-		{</div><div class='del'>-		    struct rb_call_info *ci = (struct rb_call_info *)OPERAND_AT(iobj, j);</div><div class='del'>-		    rb_str_cat2(str, "&lt;callinfo:");</div><div class='del'>-		    if (ci-&gt;mid) rb_str_catf(str, "%"PRIsVALUE, rb_id2str(ci-&gt;mid));</div><div class='del'>-		    rb_str_catf(str, ", %d&gt;", ci-&gt;orig_argc);</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	      case TS_CALLCACHE: /* call cache */</div><div class='del'>-		{</div><div class='del'>-		    rb_str_catf(str, "&lt;call cache&gt;");</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	      case TS_CDHASH:	/* case/when condition cache */</div><div class='del'>-		rb_str_cat2(str, "&lt;ch&gt;");</div><div class='del'>-		break;</div><div class='del'>-	      case TS_FUNCPTR:</div><div class='del'>-		{</div><div class='del'>-		    const void *func = (const void *)OPERAND_AT(iobj, j);</div><div class='add'>+        const char *types = insn_op_types(iobj-&gt;insn_id);</div><div class='add'>+        int j;</div><div class='add'>+</div><div class='add'>+        for (j = 0; types[j]; j++) {</div><div class='add'>+            char type = types[j];</div><div class='add'>+</div><div class='add'>+            switch (type) {</div><div class='add'>+              case TS_OFFSET:	/* label(destination position) */</div><div class='add'>+                {</div><div class='add'>+                    LABEL *lobj = (LABEL *)OPERAND_AT(iobj, j);</div><div class='add'>+                    rb_str_catf(str, LABEL_FORMAT, lobj-&gt;label_no);</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_ISEQ:	/* iseq */</div><div class='add'>+                {</div><div class='add'>+                    rb_iseq_t *iseq = (rb_iseq_t *)OPERAND_AT(iobj, j);</div><div class='add'>+                    VALUE val = Qnil;</div><div class='add'>+                    if (0 &amp;&amp; iseq) { /* TODO: invalidate now */</div><div class='add'>+                        val = (VALUE)iseq;</div><div class='add'>+                    }</div><div class='add'>+                    rb_str_concat(str, opobj_inspect(val));</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_LINDEX:</div><div class='add'>+              case TS_NUM:	/* ulong */</div><div class='add'>+              case TS_VALUE:	/* VALUE */</div><div class='add'>+                {</div><div class='add'>+                    VALUE v = OPERAND_AT(iobj, j);</div><div class='add'>+                    if (!CLASS_OF(v))</div><div class='add'>+                        rb_str_cat2(str, "&lt;hidden&gt;");</div><div class='add'>+                    else {</div><div class='add'>+                        rb_str_concat(str, opobj_inspect(v));</div><div class='add'>+                    }</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+              case TS_ID:	/* ID */</div><div class='add'>+                rb_str_concat(str, opobj_inspect(OPERAND_AT(iobj, j)));</div><div class='add'>+                break;</div><div class='add'>+              case TS_IC:	/* inline cache */</div><div class='add'>+                rb_str_concat(str, opobj_inspect(OPERAND_AT(iobj, j)));</div><div class='add'>+                break;</div><div class='add'>+              case TS_IVC:	/* inline ivar cache */</div><div class='add'>+                rb_str_catf(str, "&lt;ivc:%d&gt;", FIX2INT(OPERAND_AT(iobj, j)));</div><div class='add'>+                break;</div><div class='add'>+              case TS_ICVARC:   /* inline cvar cache */</div><div class='add'>+                rb_str_catf(str, "&lt;icvarc:%d&gt;", FIX2INT(OPERAND_AT(iobj, j)));</div><div class='add'>+                break;</div><div class='add'>+              case TS_ISE:	/* inline storage entry */</div><div class='add'>+                rb_str_catf(str, "&lt;ise:%d&gt;", FIX2INT(OPERAND_AT(iobj, j)));</div><div class='add'>+                break;</div><div class='add'>+              case TS_CALLDATA: /* we store these as call infos at compile time */</div><div class='add'>+                {</div><div class='add'>+                    const struct rb_callinfo *ci = (struct rb_callinfo *)OPERAND_AT(iobj, j);</div><div class='add'>+                    rb_str_cat2(str, "&lt;calldata:");</div><div class='add'>+                    if (vm_ci_mid(ci)) rb_str_catf(str, "%"PRIsVALUE, rb_id2str(vm_ci_mid(ci)));</div><div class='add'>+                    rb_str_catf(str, ", %d&gt;", vm_ci_argc(ci));</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+              case TS_CDHASH:	/* case/when condition cache */</div><div class='add'>+                rb_str_cat2(str, "&lt;ch&gt;");</div><div class='add'>+                break;</div><div class='add'>+              case TS_FUNCPTR:</div><div class='add'>+                {</div><div class='add'>+                    void *func = (void *)OPERAND_AT(iobj, j);</div><div class='ctx'> #ifdef HAVE_DLADDR</div><div class='del'>-		    Dl_info info;</div><div class='del'>-		    if (dladdr(func, &amp;info) &amp;&amp; info.dli_sname) {</div><div class='del'>-			rb_str_cat2(str, info.dli_sname);</div><div class='del'>-			break;</div><div class='del'>-		    }</div><div class='add'>+                    Dl_info info;</div><div class='add'>+                    if (dladdr(func, &amp;info) &amp;&amp; info.dli_sname) {</div><div class='add'>+                        rb_str_cat2(str, info.dli_sname);</div><div class='add'>+                        break;</div><div class='add'>+                    }</div><div class='ctx'> #endif</div><div class='del'>-		    rb_str_catf(str, "&lt;%p&gt;", func);</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      default:{</div><div class='del'>-		rb_raise(rb_eSyntaxError, "unknown operand type: %c", type);</div><div class='del'>-	      }</div><div class='del'>-	    }</div><div class='del'>-	    if (types[j + 1]) {</div><div class='del'>-		rb_str_cat2(str, ", ");</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+                    rb_str_catf(str, "&lt;%p&gt;", func);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_BUILTIN:</div><div class='add'>+                rb_str_cat2(str, "&lt;TS_BUILTIN&gt;");</div><div class='add'>+                break;</div><div class='add'>+              default:{</div><div class='add'>+                rb_raise(rb_eSyntaxError, "unknown operand type: %c", type);</div><div class='add'>+              }</div><div class='add'>+            }</div><div class='add'>+            if (types[j + 1]) {</div><div class='add'>+                rb_str_cat2(str, ", ");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='hunk'>@@ -7707,40 +10278,40 @@ dump_disasm_list_with_cursor(const LINK_ELEMENT *link, const LINK_ELEMENT *curr,</div><div class='ctx'>     printf("-- raw disasm--------\n");</div><div class='ctx'> </div><div class='ctx'>     while (link) {</div><div class='del'>-	if (curr) printf(curr == link ? "*" : " ");</div><div class='del'>-	switch (link-&gt;type) {</div><div class='del'>-	  case ISEQ_ELEMENT_INSN:</div><div class='del'>-	    {</div><div class='del'>-		iobj = (INSN *)link;</div><div class='del'>-		str = insn_data_to_s_detail(iobj);</div><div class='del'>-		printf("%04d %-65s(%4u)\n", pos, StringValueCStr(str), iobj-&gt;insn_info.line_no);</div><div class='del'>-		pos += insn_data_length(iobj);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_LABEL:</div><div class='del'>-	    {</div><div class='del'>-		lobj = (LABEL *)link;</div><div class='del'>-		printf(LABEL_FORMAT" [sp: %d]%s\n", lobj-&gt;label_no, lobj-&gt;sp,</div><div class='del'>-		       dest == lobj ? " &lt;---" : "");</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_TRACE:</div><div class='del'>-	    {</div><div class='del'>-		TRACE *trace = (TRACE *)link;</div><div class='del'>-		printf("trace: %0x\n", trace-&gt;event);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  case ISEQ_ELEMENT_ADJUST:</div><div class='del'>-	    {</div><div class='del'>-		ADJUST *adjust = (ADJUST *)link;</div><div class='del'>-		printf("adjust: [label: %d]\n", adjust-&gt;label ? adjust-&gt;label-&gt;label_no : -1);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  default:</div><div class='del'>-	    /* ignore */</div><div class='del'>-	    rb_raise(rb_eSyntaxError, "dump_disasm_list error: %ld\n", FIX2LONG(link-&gt;type));</div><div class='del'>-	}</div><div class='del'>-	link = link-&gt;next;</div><div class='add'>+        if (curr) printf(curr == link ? "*" : " ");</div><div class='add'>+        switch (link-&gt;type) {</div><div class='add'>+          case ISEQ_ELEMENT_INSN:</div><div class='add'>+            {</div><div class='add'>+                iobj = (INSN *)link;</div><div class='add'>+                str = insn_data_to_s_detail(iobj);</div><div class='add'>+                printf("  %04d %-65s(%4u)\n", pos, StringValueCStr(str), iobj-&gt;insn_info.line_no);</div><div class='add'>+                pos += insn_data_length(iobj);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_LABEL:</div><div class='add'>+            {</div><div class='add'>+                lobj = (LABEL *)link;</div><div class='add'>+                printf(LABEL_FORMAT" [sp: %d]%s\n", lobj-&gt;label_no, lobj-&gt;sp,</div><div class='add'>+                       dest == lobj ? " &lt;---" : "");</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_TRACE:</div><div class='add'>+            {</div><div class='add'>+                TRACE *trace = (TRACE *)link;</div><div class='add'>+                printf("  trace: %0x\n", trace-&gt;event);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          case ISEQ_ELEMENT_ADJUST:</div><div class='add'>+            {</div><div class='add'>+                ADJUST *adjust = (ADJUST *)link;</div><div class='add'>+                printf("  adjust: [label: %d]\n", adjust-&gt;label ? adjust-&gt;label-&gt;label_no : -1);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          default:</div><div class='add'>+            /* ignore */</div><div class='add'>+            rb_raise(rb_eSyntaxError, "dump_disasm_list error: %ld\n", FIX2LONG(link-&gt;type));</div><div class='add'>+        }</div><div class='add'>+        link = link-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'>     printf("---------------------\n");</div><div class='ctx'>     fflush(stdout);</div><div class='hunk'>@@ -7758,7 +10329,7 @@ rb_insns_name_array(void)</div><div class='ctx'>     VALUE ary = rb_ary_new_capa(VM_INSTRUCTION_SIZE);</div><div class='ctx'>     int i;</div><div class='ctx'>     for (i = 0; i &lt; VM_INSTRUCTION_SIZE; i++) {</div><div class='del'>-	rb_ary_push(ary, rb_fstring_cstr(insn_name(i)));</div><div class='add'>+        rb_ary_push(ary, rb_fstring_cstr(insn_name(i)));</div><div class='ctx'>     }</div><div class='ctx'>     return rb_obj_freeze(ary);</div><div class='ctx'> }</div><div class='hunk'>@@ -7771,11 +10342,11 @@ register_label(rb_iseq_t *iseq, struct st_table *labels_table, VALUE obj)</div><div class='ctx'>     obj = rb_to_symbol_type(obj);</div><div class='ctx'> </div><div class='ctx'>     if (st_lookup(labels_table, obj, &amp;tmp) == 0) {</div><div class='del'>-	label = NEW_LABEL(0);</div><div class='del'>-	st_insert(labels_table, obj, (st_data_t)label);</div><div class='add'>+        label = NEW_LABEL(0);</div><div class='add'>+        st_insert(labels_table, obj, (st_data_t)label);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	label = (LABEL *)tmp;</div><div class='add'>+        label = (LABEL *)tmp;</div><div class='ctx'>     }</div><div class='ctx'>     LABEL_REF(label);</div><div class='ctx'>     return label;</div><div class='hunk'>@@ -7784,18 +10355,16 @@ register_label(rb_iseq_t *iseq, struct st_table *labels_table, VALUE obj)</div><div class='ctx'> static VALUE</div><div class='ctx'> get_exception_sym2type(VALUE sym)</div><div class='ctx'> {</div><div class='del'>-#undef rb_intern</div><div class='del'>-#define rb_intern(str) rb_intern_const(str)</div><div class='ctx'>     static VALUE symRescue, symEnsure, symRetry;</div><div class='ctx'>     static VALUE symBreak, symRedo, symNext;</div><div class='ctx'> </div><div class='ctx'>     if (symRescue == 0) {</div><div class='del'>-	symRescue = ID2SYM(rb_intern("rescue"));</div><div class='del'>-	symEnsure = ID2SYM(rb_intern("ensure"));</div><div class='del'>-	symRetry  = ID2SYM(rb_intern("retry"));</div><div class='del'>-	symBreak  = ID2SYM(rb_intern("break"));</div><div class='del'>-	symRedo   = ID2SYM(rb_intern("redo"));</div><div class='del'>-	symNext   = ID2SYM(rb_intern("next"));</div><div class='add'>+        symRescue = ID2SYM(rb_intern_const("rescue"));</div><div class='add'>+        symEnsure = ID2SYM(rb_intern_const("ensure"));</div><div class='add'>+        symRetry  = ID2SYM(rb_intern_const("retry"));</div><div class='add'>+        symBreak  = ID2SYM(rb_intern_const("break"));</div><div class='add'>+        symRedo   = ID2SYM(rb_intern_const("redo"));</div><div class='add'>+        symNext   = ID2SYM(rb_intern_const("next"));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (sym == symRescue) return CATCH_TYPE_RESCUE;</div><div class='hunk'>@@ -7810,25 +10379,25 @@ get_exception_sym2type(VALUE sym)</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> iseq_build_from_ary_exception(rb_iseq_t *iseq, struct st_table *labels_table,</div><div class='del'>-		     VALUE exception)</div><div class='add'>+                     VALUE exception)</div><div class='ctx'> {</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(exception); i++) {</div><div class='del'>-	const rb_iseq_t *eiseq;</div><div class='del'>-	VALUE v, type;</div><div class='del'>-	LABEL *lstart, *lend, *lcont;</div><div class='del'>-	unsigned int sp;</div><div class='del'>-</div><div class='del'>-	v = rb_to_array_type(RARRAY_AREF(exception, i));</div><div class='del'>-	if (RARRAY_LEN(v) != 6) {</div><div class='del'>-	    rb_raise(rb_eSyntaxError, "wrong exception entry");</div><div class='del'>-	}</div><div class='add'>+        const rb_iseq_t *eiseq;</div><div class='add'>+        VALUE v, type;</div><div class='add'>+        LABEL *lstart, *lend, *lcont;</div><div class='add'>+        unsigned int sp;</div><div class='add'>+</div><div class='add'>+        v = rb_to_array_type(RARRAY_AREF(exception, i));</div><div class='add'>+        if (RARRAY_LEN(v) != 6) {</div><div class='add'>+            rb_raise(rb_eSyntaxError, "wrong exception entry");</div><div class='add'>+        }</div><div class='ctx'>         type = get_exception_sym2type(RARRAY_AREF(v, 0));</div><div class='del'>-        if (RARRAY_AREF(v, 1) == Qnil) {</div><div class='del'>-	    eiseq = NULL;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='add'>+        if (NIL_P(RARRAY_AREF(v, 1))) {</div><div class='add'>+            eiseq = NULL;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='ctx'>             eiseq = rb_iseqw_to_iseq(rb_iseq_load(RARRAY_AREF(v, 1), (VALUE)iseq, Qnil));</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='hunk'>@@ -7837,18 +10406,18 @@ iseq_build_from_ary_exception(rb_iseq_t *iseq, struct st_table *labels_table,</div><div class='ctx'>         lcont  = register_label(iseq, labels_table, RARRAY_AREF(v, 4));</div><div class='ctx'>         sp     = NUM2UINT(RARRAY_AREF(v, 5));</div><div class='ctx'> </div><div class='del'>-	/* TODO: Dirty Hack!  Fix me */</div><div class='del'>-	if (type == CATCH_TYPE_RESCUE ||</div><div class='del'>-	    type == CATCH_TYPE_BREAK ||</div><div class='del'>-	    type == CATCH_TYPE_NEXT) {</div><div class='del'>-	    ++sp;</div><div class='del'>-	}</div><div class='add'>+        /* TODO: Dirty Hack!  Fix me */</div><div class='add'>+        if (type == CATCH_TYPE_RESCUE ||</div><div class='add'>+            type == CATCH_TYPE_BREAK ||</div><div class='add'>+            type == CATCH_TYPE_NEXT) {</div><div class='add'>+            ++sp;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	lcont-&gt;sp = sp;</div><div class='add'>+        lcont-&gt;sp = sp;</div><div class='ctx'> </div><div class='del'>-	ADD_CATCH_ENTRY(type, lstart, lend, eiseq, lcont);</div><div class='add'>+        ADD_CATCH_ENTRY(type, lstart, lend, eiseq, lcont);</div><div class='ctx'> </div><div class='del'>-	RB_GC_GUARD(v);</div><div class='add'>+        RB_GC_GUARD(v);</div><div class='ctx'>     }</div><div class='ctx'>     return COMPILE_OK;</div><div class='ctx'> }</div><div class='hunk'>@@ -7858,10 +10427,10 @@ insn_make_insn_table(void)</div><div class='ctx'> {</div><div class='ctx'>     struct st_table *table;</div><div class='ctx'>     int i;</div><div class='del'>-    table = st_init_numtable();</div><div class='add'>+    table = st_init_numtable_with_size(VM_INSTRUCTION_SIZE);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;VM_INSTRUCTION_SIZE; i++) {</div><div class='del'>-	st_insert(table, ID2SYM(rb_intern(insn_name(i))), i);</div><div class='add'>+        st_insert(table, ID2SYM(rb_intern_const(insn_name(i))), i);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return table;</div><div class='hunk'>@@ -7874,13 +10443,13 @@ iseq_build_load_iseq(const rb_iseq_t *iseq, VALUE op)</div><div class='ctx'>     const rb_iseq_t *loaded_iseq;</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(op, T_ARRAY)) {</div><div class='del'>-	iseqw = rb_iseq_load(op, (VALUE)iseq, Qnil);</div><div class='add'>+        iseqw = rb_iseq_load(op, (VALUE)iseq, Qnil);</div><div class='ctx'>     }</div><div class='ctx'>     else if (CLASS_OF(op) == rb_cISeq) {</div><div class='del'>-	iseqw = op;</div><div class='add'>+        iseqw = op;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_raise(rb_eSyntaxError, "ISEQ is required");</div><div class='add'>+        rb_raise(rb_eSyntaxError, "ISEQ is required");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     loaded_iseq = rb_iseqw_to_iseq(iseqw);</div><div class='hunk'>@@ -7893,60 +10462,62 @@ iseq_build_callinfo_from_hash(rb_iseq_t *iseq, VALUE op)</div><div class='ctx'>     ID mid = 0;</div><div class='ctx'>     int orig_argc = 0;</div><div class='ctx'>     unsigned int flag = 0;</div><div class='del'>-    struct rb_call_info_kw_arg *kw_arg = 0;</div><div class='add'>+    struct rb_callinfo_kwarg *kw_arg = 0;</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(op)) {</div><div class='del'>-	VALUE vmid = rb_hash_aref(op, ID2SYM(rb_intern("mid")));</div><div class='del'>-	VALUE vflag = rb_hash_aref(op, ID2SYM(rb_intern("flag")));</div><div class='del'>-	VALUE vorig_argc = rb_hash_aref(op, ID2SYM(rb_intern("orig_argc")));</div><div class='del'>-	VALUE vkw_arg = rb_hash_aref(op, ID2SYM(rb_intern("kw_arg")));</div><div class='del'>-</div><div class='del'>-	if (!NIL_P(vmid)) mid = SYM2ID(vmid);</div><div class='del'>-	if (!NIL_P(vflag)) flag = NUM2UINT(vflag);</div><div class='del'>-	if (!NIL_P(vorig_argc)) orig_argc = FIX2INT(vorig_argc);</div><div class='del'>-</div><div class='del'>-	if (!NIL_P(vkw_arg)) {</div><div class='del'>-	    int i;</div><div class='del'>-	    int len = RARRAY_LENINT(vkw_arg);</div><div class='del'>-	    size_t n = rb_call_info_kw_arg_bytes(len);</div><div class='del'>-</div><div class='del'>-	    kw_arg = xmalloc(n);</div><div class='del'>-	    kw_arg-&gt;keyword_len = len;</div><div class='del'>-	    for (i = 0; i &lt; len; i++) {</div><div class='del'>-		VALUE kw = RARRAY_AREF(vkw_arg, i);</div><div class='del'>-		SYM2ID(kw);	/* make immortal */</div><div class='del'>-		kw_arg-&gt;keywords[i] = kw;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        VALUE vmid = rb_hash_aref(op, ID2SYM(rb_intern_const("mid")));</div><div class='add'>+        VALUE vflag = rb_hash_aref(op, ID2SYM(rb_intern_const("flag")));</div><div class='add'>+        VALUE vorig_argc = rb_hash_aref(op, ID2SYM(rb_intern_const("orig_argc")));</div><div class='add'>+        VALUE vkw_arg = rb_hash_aref(op, ID2SYM(rb_intern_const("kw_arg")));</div><div class='add'>+</div><div class='add'>+        if (!NIL_P(vmid)) mid = SYM2ID(vmid);</div><div class='add'>+        if (!NIL_P(vflag)) flag = NUM2UINT(vflag);</div><div class='add'>+        if (!NIL_P(vorig_argc)) orig_argc = FIX2INT(vorig_argc);</div><div class='add'>+</div><div class='add'>+        if (!NIL_P(vkw_arg)) {</div><div class='add'>+            int i;</div><div class='add'>+            int len = RARRAY_LENINT(vkw_arg);</div><div class='add'>+            size_t n = rb_callinfo_kwarg_bytes(len);</div><div class='add'>+</div><div class='add'>+            kw_arg = xmalloc(n);</div><div class='add'>+            kw_arg-&gt;keyword_len = len;</div><div class='add'>+            for (i = 0; i &lt; len; i++) {</div><div class='add'>+                VALUE kw = RARRAY_AREF(vkw_arg, i);</div><div class='add'>+                SYM2ID(kw);	/* make immortal */</div><div class='add'>+                kw_arg-&gt;keywords[i] = kw;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return (VALUE)new_callinfo(iseq, mid, orig_argc, flag, kw_arg, (flag &amp; VM_CALL_ARGS_SIMPLE) == 0);</div><div class='add'>+    const struct rb_callinfo *ci = new_callinfo(iseq, mid, orig_argc, flag, kw_arg, (flag &amp; VM_CALL_ARGS_SIMPLE) == 0);</div><div class='add'>+    RB_OBJ_WRITTEN(iseq, Qundef, ci);</div><div class='add'>+    return (VALUE)ci;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static rb_event_flag_t</div><div class='ctx'> event_name_to_flag(VALUE sym)</div><div class='ctx'> {</div><div class='del'>-#define CHECK_EVENT(ev) if (sym == ID2SYM(rb_intern(#ev))) return ev;</div><div class='del'>-		CHECK_EVENT(RUBY_EVENT_LINE);</div><div class='del'>-		CHECK_EVENT(RUBY_EVENT_CLASS);</div><div class='del'>-		CHECK_EVENT(RUBY_EVENT_END);</div><div class='del'>-		CHECK_EVENT(RUBY_EVENT_CALL);</div><div class='del'>-		CHECK_EVENT(RUBY_EVENT_RETURN);</div><div class='del'>-		CHECK_EVENT(RUBY_EVENT_B_CALL);</div><div class='del'>-		CHECK_EVENT(RUBY_EVENT_B_RETURN);</div><div class='add'>+#define CHECK_EVENT(ev) if (sym == ID2SYM(rb_intern_const(#ev))) return ev;</div><div class='add'>+                CHECK_EVENT(RUBY_EVENT_LINE);</div><div class='add'>+                CHECK_EVENT(RUBY_EVENT_CLASS);</div><div class='add'>+                CHECK_EVENT(RUBY_EVENT_END);</div><div class='add'>+                CHECK_EVENT(RUBY_EVENT_CALL);</div><div class='add'>+                CHECK_EVENT(RUBY_EVENT_RETURN);</div><div class='add'>+                CHECK_EVENT(RUBY_EVENT_B_CALL);</div><div class='add'>+                CHECK_EVENT(RUBY_EVENT_B_RETURN);</div><div class='ctx'> #undef CHECK_EVENT</div><div class='ctx'>     return RUBY_EVENT_NONE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *const anchor,</div><div class='del'>-			 VALUE body, VALUE labels_wrapper)</div><div class='add'>+                         VALUE body, VALUE node_ids, VALUE labels_wrapper)</div><div class='ctx'> {</div><div class='ctx'>     /* TODO: body should be frozen */</div><div class='ctx'>     long i, len = RARRAY_LEN(body);</div><div class='ctx'>     struct st_table *labels_table = DATA_PTR(labels_wrapper);</div><div class='ctx'>     int j;</div><div class='del'>-    int line_no = 0;</div><div class='add'>+    int line_no = 0, node_id = -1, insn_idx = 0;</div><div class='ctx'>     int ret = COMPILE_OK;</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='hunk'>@@ -7955,140 +10526,174 @@ iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *const anchor,</div><div class='ctx'>     static struct st_table *insn_table;</div><div class='ctx'> </div><div class='ctx'>     if (insn_table == 0) {</div><div class='del'>-	insn_table = insn_make_insn_table();</div><div class='add'>+        insn_table = insn_make_insn_table();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;len; i++) {</div><div class='ctx'>         VALUE obj = RARRAY_AREF(body, i);</div><div class='ctx'> </div><div class='del'>-	if (SYMBOL_P(obj)) {</div><div class='del'>-	    rb_event_flag_t event;</div><div class='del'>-	    if ((event = event_name_to_flag(obj)) != RUBY_EVENT_NONE) {</div><div class='del'>-		ADD_TRACE(anchor, event);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		LABEL *label = register_label(iseq, labels_table, obj);</div><div class='del'>-		ADD_LABEL(anchor, label);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else if (FIXNUM_P(obj)) {</div><div class='del'>-	    line_no = NUM2INT(obj);</div><div class='del'>-	}</div><div class='del'>-	else if (RB_TYPE_P(obj, T_ARRAY)) {</div><div class='del'>-	    VALUE *argv = 0;</div><div class='del'>-	    int argc = RARRAY_LENINT(obj) - 1;</div><div class='del'>-	    st_data_t insn_id;</div><div class='del'>-	    VALUE insn;</div><div class='del'>-</div><div class='del'>-	    insn = (argc &lt; 0) ? Qnil : RARRAY_AREF(obj, 0);</div><div class='del'>-	    if (st_lookup(insn_table, (st_data_t)insn, &amp;insn_id) == 0) {</div><div class='del'>-		/* TODO: exception */</div><div class='del'>-		COMPILE_ERROR(iseq, line_no,</div><div class='del'>-			      "unknown instruction: %+"PRIsVALUE, insn);</div><div class='del'>-		ret = COMPILE_NG;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (argc != insn_len((VALUE)insn_id)-1) {</div><div class='del'>-		COMPILE_ERROR(iseq, line_no,</div><div class='del'>-			      "operand size mismatch");</div><div class='del'>-		ret = COMPILE_NG;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (argc &gt; 0) {</div><div class='del'>-		argv = compile_data_alloc(iseq, sizeof(VALUE) * argc);</div><div class='del'>-		for (j=0; j&lt;argc; j++) {</div><div class='del'>-		    VALUE op = rb_ary_entry(obj, j+1);</div><div class='del'>-		    switch (insn_op_type((VALUE)insn_id, j)) {</div><div class='del'>-		      case TS_OFFSET: {</div><div class='del'>-			LABEL *label = register_label(iseq, labels_table, op);</div><div class='del'>-			argv[j] = (VALUE)label;</div><div class='del'>-			break;</div><div class='del'>-		      }</div><div class='del'>-		      case TS_LINDEX:</div><div class='del'>-		      case TS_NUM:</div><div class='del'>-			(void)NUM2INT(op);</div><div class='del'>-			argv[j] = op;</div><div class='del'>-			break;</div><div class='del'>-		      case TS_VALUE:</div><div class='del'>-			argv[j] = op;</div><div class='del'>-			iseq_add_mark_object_compile_time(iseq, op);</div><div class='del'>-			break;</div><div class='del'>-		      case TS_ISEQ:</div><div class='del'>-			{</div><div class='del'>-			    if (op != Qnil) {</div><div class='del'>-				VALUE v = (VALUE)iseq_build_load_iseq(iseq, op);</div><div class='del'>-				argv[j] = v;</div><div class='del'>-				iseq_add_mark_object_compile_time(iseq, v);</div><div class='del'>-			    }</div><div class='del'>-			    else {</div><div class='del'>-				argv[j] = 0;</div><div class='del'>-			    }</div><div class='del'>-			}</div><div class='del'>-			break;</div><div class='del'>-		      case TS_GENTRY:</div><div class='del'>-			op = rb_to_symbol_type(op);</div><div class='del'>-			argv[j] = (VALUE)rb_global_entry(SYM2ID(op));</div><div class='del'>-			break;</div><div class='del'>-		      case TS_ISE:</div><div class='del'>-			FL_SET(iseq, ISEQ_MARKABLE_ISEQ);</div><div class='del'>-		      case TS_IC:</div><div class='del'>-			argv[j] = op;</div><div class='del'>-			if (NUM2UINT(op) &gt;= iseq-&gt;body-&gt;is_size) {</div><div class='del'>-			    iseq-&gt;body-&gt;is_size = NUM2INT(op) + 1;</div><div class='del'>-			}</div><div class='del'>-			break;</div><div class='del'>-		      case TS_CALLINFO:</div><div class='del'>-			argv[j] = iseq_build_callinfo_from_hash(iseq, op);</div><div class='del'>-			break;</div><div class='del'>-		      case TS_CALLCACHE:</div><div class='del'>-			argv[j] = Qfalse;</div><div class='del'>-			break;</div><div class='del'>-		      case TS_ID:</div><div class='del'>-			argv[j] = rb_to_symbol_type(op);</div><div class='del'>-			break;</div><div class='del'>-		      case TS_CDHASH:</div><div class='del'>-			{</div><div class='del'>-			    int i;</div><div class='del'>-			    VALUE map = rb_hash_new_with_size(RARRAY_LEN(op)/2);</div><div class='add'>+        if (SYMBOL_P(obj)) {</div><div class='add'>+            rb_event_flag_t event;</div><div class='add'>+            if ((event = event_name_to_flag(obj)) != RUBY_EVENT_NONE) {</div><div class='add'>+                ADD_TRACE(anchor, event);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                LABEL *label = register_label(iseq, labels_table, obj);</div><div class='add'>+                ADD_LABEL(anchor, label);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else if (FIXNUM_P(obj)) {</div><div class='add'>+            line_no = NUM2INT(obj);</div><div class='add'>+        }</div><div class='add'>+        else if (RB_TYPE_P(obj, T_ARRAY)) {</div><div class='add'>+            VALUE *argv = 0;</div><div class='add'>+            int argc = RARRAY_LENINT(obj) - 1;</div><div class='add'>+            st_data_t insn_id;</div><div class='add'>+            VALUE insn;</div><div class='add'>+</div><div class='add'>+            if (node_ids) {</div><div class='add'>+                node_id = NUM2INT(rb_ary_entry(node_ids, insn_idx++));</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            insn = (argc &lt; 0) ? Qnil : RARRAY_AREF(obj, 0);</div><div class='add'>+            if (st_lookup(insn_table, (st_data_t)insn, &amp;insn_id) == 0) {</div><div class='add'>+                /* TODO: exception */</div><div class='add'>+                COMPILE_ERROR(iseq, line_no,</div><div class='add'>+                              "unknown instruction: %+"PRIsVALUE, insn);</div><div class='add'>+                ret = COMPILE_NG;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (argc != insn_len((VALUE)insn_id)-1) {</div><div class='add'>+                COMPILE_ERROR(iseq, line_no,</div><div class='add'>+                              "operand size mismatch");</div><div class='add'>+                ret = COMPILE_NG;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (argc &gt; 0) {</div><div class='add'>+                argv = compile_data_calloc2(iseq, sizeof(VALUE), argc);</div><div class='add'>+</div><div class='add'>+                // add element before operand setup to make GC root</div><div class='add'>+                NODE dummy_line_node = generate_dummy_line_node(line_no, node_id);</div><div class='add'>+                ADD_ELEM(anchor,</div><div class='add'>+                         (LINK_ELEMENT*)new_insn_core(iseq, &amp;dummy_line_node,</div><div class='add'>+                                                      (enum ruby_vminsn_type)insn_id, argc, argv));</div><div class='add'>+</div><div class='add'>+                for (j=0; j&lt;argc; j++) {</div><div class='add'>+                    VALUE op = rb_ary_entry(obj, j+1);</div><div class='add'>+                    switch (insn_op_type((VALUE)insn_id, j)) {</div><div class='add'>+                      case TS_OFFSET: {</div><div class='add'>+                        LABEL *label = register_label(iseq, labels_table, op);</div><div class='add'>+                        argv[j] = (VALUE)label;</div><div class='add'>+                        break;</div><div class='add'>+                      }</div><div class='add'>+                      case TS_LINDEX:</div><div class='add'>+                      case TS_NUM:</div><div class='add'>+                        (void)NUM2INT(op);</div><div class='add'>+                        argv[j] = op;</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_VALUE:</div><div class='add'>+                        argv[j] = op;</div><div class='add'>+                        RB_OBJ_WRITTEN(iseq, Qundef, op);</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_ISEQ:</div><div class='add'>+                        {</div><div class='add'>+                            if (op != Qnil) {</div><div class='add'>+                                VALUE v = (VALUE)iseq_build_load_iseq(iseq, op);</div><div class='add'>+                                argv[j] = v;</div><div class='add'>+                                RB_OBJ_WRITTEN(iseq, Qundef, v);</div><div class='add'>+                            }</div><div class='add'>+                            else {</div><div class='add'>+                                argv[j] = 0;</div><div class='add'>+                            }</div><div class='add'>+                        }</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_ISE:</div><div class='add'>+                        argv[j] = op;</div><div class='add'>+                        if (NUM2UINT(op) &gt;= ISEQ_BODY(iseq)-&gt;ise_size) {</div><div class='add'>+                            ISEQ_BODY(iseq)-&gt;ise_size = NUM2INT(op) + 1;</div><div class='add'>+                        }</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_IC:</div><div class='add'>+                        {</div><div class='add'>+                            VALUE segments = rb_ary_new();</div><div class='add'>+                            op = rb_to_array_type(op);</div><div class='add'>+</div><div class='add'>+                            for (int i = 0; i &lt; RARRAY_LEN(op); i++) {</div><div class='add'>+                                VALUE sym = RARRAY_AREF(op, i);</div><div class='add'>+                                sym = rb_to_symbol_type(sym);</div><div class='add'>+                                rb_ary_push(segments, sym);</div><div class='add'>+                            }</div><div class='add'>+</div><div class='add'>+                            RB_GC_GUARD(op);</div><div class='add'>+                            argv[j] = segments;</div><div class='add'>+                            RB_OBJ_WRITTEN(iseq, Qundef, segments);</div><div class='add'>+                            ISEQ_BODY(iseq)-&gt;ic_size++;</div><div class='add'>+                        }</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_IVC:  /* inline ivar cache */</div><div class='add'>+                        argv[j] = op;</div><div class='add'>+                        if (NUM2UINT(op) &gt;= ISEQ_BODY(iseq)-&gt;ivc_size) {</div><div class='add'>+                            ISEQ_BODY(iseq)-&gt;ivc_size = NUM2INT(op) + 1;</div><div class='add'>+                        }</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_ICVARC:  /* inline cvar cache */</div><div class='add'>+                        argv[j] = op;</div><div class='add'>+                        if (NUM2UINT(op) &gt;= ISEQ_BODY(iseq)-&gt;icvarc_size) {</div><div class='add'>+                            ISEQ_BODY(iseq)-&gt;icvarc_size = NUM2INT(op) + 1;</div><div class='add'>+                        }</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_CALLDATA:</div><div class='add'>+                        argv[j] = iseq_build_callinfo_from_hash(iseq, op);</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_ID:</div><div class='add'>+                        argv[j] = rb_to_symbol_type(op);</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_CDHASH:</div><div class='add'>+                        {</div><div class='add'>+                            int i;</div><div class='add'>+                            VALUE map = rb_hash_new_with_size(RARRAY_LEN(op)/2);</div><div class='ctx'> </div><div class='ctx'>                             RHASH_TBL_RAW(map)-&gt;type = &amp;cdhash_type;</div><div class='del'>-			    op = rb_to_array_type(op);</div><div class='del'>-			    for (i=0; i&lt;RARRAY_LEN(op); i+=2) {</div><div class='del'>-				VALUE key = RARRAY_AREF(op, i);</div><div class='del'>-				VALUE sym = RARRAY_AREF(op, i+1);</div><div class='del'>-				LABEL *label =</div><div class='del'>-				  register_label(iseq, labels_table, sym);</div><div class='del'>-				rb_hash_aset(map, key, (VALUE)label | 1);</div><div class='del'>-			    }</div><div class='del'>-			    RB_GC_GUARD(op);</div><div class='del'>-			    argv[j] = map;</div><div class='del'>-			    iseq_add_mark_object_compile_time(iseq, map);</div><div class='del'>-			}</div><div class='del'>-			break;</div><div class='del'>-		      case TS_FUNCPTR:</div><div class='del'>-			{</div><div class='add'>+                            op = rb_to_array_type(op);</div><div class='add'>+                            for (i=0; i&lt;RARRAY_LEN(op); i+=2) {</div><div class='add'>+                                VALUE key = RARRAY_AREF(op, i);</div><div class='add'>+                                VALUE sym = RARRAY_AREF(op, i+1);</div><div class='add'>+                                LABEL *label =</div><div class='add'>+                                  register_label(iseq, labels_table, sym);</div><div class='add'>+                                rb_hash_aset(map, key, (VALUE)label | 1);</div><div class='add'>+                            }</div><div class='add'>+                            RB_GC_GUARD(op);</div><div class='add'>+                            argv[j] = map;</div><div class='add'>+                            RB_OBJ_WRITTEN(iseq, Qundef, map);</div><div class='add'>+                        }</div><div class='add'>+                        break;</div><div class='add'>+                      case TS_FUNCPTR:</div><div class='add'>+                        {</div><div class='ctx'> #if SIZEOF_VALUE &lt;= SIZEOF_LONG</div><div class='del'>-			    long funcptr = NUM2LONG(op);</div><div class='add'>+                            long funcptr = NUM2LONG(op);</div><div class='ctx'> #else</div><div class='del'>-			    LONG_LONG funcptr = NUM2LL(op);</div><div class='add'>+                            LONG_LONG funcptr = NUM2LL(op);</div><div class='ctx'> #endif</div><div class='del'>-			    argv[j] = (VALUE)funcptr;</div><div class='del'>-			}</div><div class='del'>-			break;</div><div class='del'>-		      default:</div><div class='del'>-			rb_raise(rb_eSyntaxError, "unknown operand: %c", insn_op_type((VALUE)insn_id, j));</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    ADD_ELEM(anchor,</div><div class='del'>-		     (LINK_ELEMENT*)new_insn_core(iseq, line_no,</div><div class='del'>-						  (enum ruby_vminsn_type)insn_id, argc, argv));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_raise(rb_eTypeError, "unexpected object for instruction");</div><div class='del'>-	}</div><div class='add'>+                            argv[j] = (VALUE)funcptr;</div><div class='add'>+                        }</div><div class='add'>+                        break;</div><div class='add'>+                      default:</div><div class='add'>+                        rb_raise(rb_eSyntaxError, "unknown operand: %c", insn_op_type((VALUE)insn_id, j));</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                NODE dummy_line_node = generate_dummy_line_node(line_no, node_id);</div><div class='add'>+                ADD_ELEM(anchor,</div><div class='add'>+                         (LINK_ELEMENT*)new_insn_core(iseq, &amp;dummy_line_node,</div><div class='add'>+                                                      (enum ruby_vminsn_type)insn_id, argc, NULL));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_raise(rb_eTypeError, "unexpected object for instruction");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     DATA_PTR(labels_wrapper) = 0;</div><div class='ctx'>     validate_labels(iseq, labels_table);</div><div class='hunk'>@@ -8104,12 +10709,12 @@ int_param(int *dst, VALUE param, VALUE sym)</div><div class='ctx'> {</div><div class='ctx'>     VALUE val = rb_hash_aref(param, sym);</div><div class='ctx'>     if (FIXNUM_P(val)) {</div><div class='del'>-	*dst = FIX2INT(val);</div><div class='del'>-	return TRUE;</div><div class='add'>+        *dst = FIX2INT(val);</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else if (!NIL_P(val)) {</div><div class='del'>-	rb_raise(rb_eTypeError, "invalid %+"PRIsVALUE" Fixnum: %+"PRIsVALUE,</div><div class='del'>-		 sym, val);</div><div class='add'>+        rb_raise(rb_eTypeError, "invalid %+"PRIsVALUE" Fixnum: %+"PRIsVALUE,</div><div class='add'>+                 sym, val);</div><div class='ctx'>     }</div><div class='ctx'>     return FALSE;</div><div class='ctx'> }</div><div class='hunk'>@@ -8125,31 +10730,31 @@ iseq_build_kw(rb_iseq_t *iseq, VALUE params, VALUE keywords)</div><div class='ctx'>     ID *ids;</div><div class='ctx'>     struct rb_iseq_param_keyword *keyword = ZALLOC(struct rb_iseq_param_keyword);</div><div class='ctx'> </div><div class='del'>-    iseq-&gt;body-&gt;param.flags.has_kw = TRUE;</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;param.flags.has_kw = TRUE;</div><div class='ctx'> </div><div class='ctx'>     keyword-&gt;num = len;</div><div class='del'>-#define SYM(s) ID2SYM(rb_intern(#s))</div><div class='add'>+#define SYM(s) ID2SYM(rb_intern_const(#s))</div><div class='ctx'>     (void)int_param(&amp;keyword-&gt;bits_start, params, SYM(kwbits));</div><div class='ctx'>     i = keyword-&gt;bits_start - keyword-&gt;num;</div><div class='del'>-    ids = (ID *)&amp;iseq-&gt;body-&gt;local_table[i];</div><div class='add'>+    ids = (ID *)&amp;ISEQ_BODY(iseq)-&gt;local_table[i];</div><div class='ctx'> #undef SYM</div><div class='ctx'> </div><div class='ctx'>     /* required args */</div><div class='ctx'>     for (i = 0; i &lt; len; i++) {</div><div class='del'>-	VALUE val = RARRAY_AREF(keywords, i);</div><div class='add'>+        VALUE val = RARRAY_AREF(keywords, i);</div><div class='ctx'> </div><div class='del'>-	if (!SYMBOL_P(val)) {</div><div class='del'>-	    goto default_values;</div><div class='del'>-	}</div><div class='del'>-	ids[i] = SYM2ID(val);</div><div class='del'>-	keyword-&gt;required_num++;</div><div class='add'>+        if (!SYMBOL_P(val)) {</div><div class='add'>+            goto default_values;</div><div class='add'>+        }</div><div class='add'>+        ids[i] = SYM2ID(val);</div><div class='add'>+        keyword-&gt;required_num++;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>   default_values: /* note: we intentionally preserve `i' from previous loop */</div><div class='ctx'>     default_len = len - i;</div><div class='ctx'>     if (default_len == 0) {</div><div class='del'>-	keyword-&gt;table = ids;</div><div class='del'>-	return keyword;</div><div class='add'>+        keyword-&gt;table = ids;</div><div class='add'>+        return keyword;</div><div class='ctx'>     }</div><div class='ctx'>     else if (default_len &lt; 0) {</div><div class='ctx'>         UNREACHABLE;</div><div class='hunk'>@@ -8158,23 +10763,23 @@ iseq_build_kw(rb_iseq_t *iseq, VALUE params, VALUE keywords)</div><div class='ctx'>     dvs = ALLOC_N(VALUE, (unsigned int)default_len);</div><div class='ctx'> </div><div class='ctx'>     for (j = 0; i &lt; len; i++, j++) {</div><div class='del'>-	key = RARRAY_AREF(keywords, i);</div><div class='del'>-	CHECK_ARRAY(key);</div><div class='del'>-</div><div class='del'>-	switch (RARRAY_LEN(key)) {</div><div class='del'>-	  case 1:</div><div class='del'>-	    sym = RARRAY_AREF(key, 0);</div><div class='del'>-	    default_val = Qundef;</div><div class='del'>-	    break;</div><div class='del'>-	  case 2:</div><div class='del'>-	    sym = RARRAY_AREF(key, 0);</div><div class='del'>-	    default_val = RARRAY_AREF(key, 1);</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    rb_raise(rb_eTypeError, "keyword default has unsupported len %+"PRIsVALUE, key);</div><div class='del'>-	}</div><div class='del'>-	ids[i] = SYM2ID(sym);</div><div class='del'>-	dvs[j] = default_val;</div><div class='add'>+        key = RARRAY_AREF(keywords, i);</div><div class='add'>+        CHECK_ARRAY(key);</div><div class='add'>+</div><div class='add'>+        switch (RARRAY_LEN(key)) {</div><div class='add'>+          case 1:</div><div class='add'>+            sym = RARRAY_AREF(key, 0);</div><div class='add'>+            default_val = Qundef;</div><div class='add'>+            break;</div><div class='add'>+          case 2:</div><div class='add'>+            sym = RARRAY_AREF(key, 0);</div><div class='add'>+            default_val = RARRAY_AREF(key, 1);</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            rb_raise(rb_eTypeError, "keyword default has unsupported len %+"PRIsVALUE, key);</div><div class='add'>+        }</div><div class='add'>+        ids[i] = SYM2ID(sym);</div><div class='add'>+        dvs[j] = default_val;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     keyword-&gt;table = ids;</div><div class='hunk'>@@ -8183,96 +10788,143 @@ iseq_build_kw(rb_iseq_t *iseq, VALUE params, VALUE keywords)</div><div class='ctx'>     return keyword;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+iseq_insn_each_object_mark(VALUE *obj_ptr, VALUE _)</div><div class='add'>+{</div><div class='add'>+    rb_gc_mark(*obj_ptr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_iseq_mark_insn_storage(struct iseq_compile_data_storage *storage)</div><div class='add'>+{</div><div class='add'>+    INSN *iobj = 0;</div><div class='add'>+    size_t size = sizeof(INSN);</div><div class='add'>+    unsigned int pos = 0;</div><div class='add'>+</div><div class='add'>+    while (storage) {</div><div class='add'>+#ifdef STRICT_ALIGNMENT</div><div class='add'>+        size_t padding = calc_padding((void *)&amp;storage-&gt;buff[pos], size);</div><div class='add'>+#else</div><div class='add'>+        const size_t padding = 0; /* expected to be optimized by compiler */</div><div class='add'>+#endif /* STRICT_ALIGNMENT */</div><div class='add'>+        size_t offset = pos + size + padding;</div><div class='add'>+        if (offset &gt; storage-&gt;size || offset &gt; storage-&gt;pos) {</div><div class='add'>+            pos = 0;</div><div class='add'>+            storage = storage-&gt;next;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+#ifdef STRICT_ALIGNMENT</div><div class='add'>+            pos += (int)padding;</div><div class='add'>+#endif /* STRICT_ALIGNMENT */</div><div class='add'>+</div><div class='add'>+            iobj = (INSN *)&amp;storage-&gt;buff[pos];</div><div class='add'>+</div><div class='add'>+            if (iobj-&gt;operands) {</div><div class='add'>+                iseq_insn_each_markable_object(iobj, iseq_insn_each_object_mark, (VALUE)0);</div><div class='add'>+            }</div><div class='add'>+            pos += (int)size;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc, VALUE locals, VALUE params,</div><div class='del'>-			 VALUE exception, VALUE body)</div><div class='add'>+                         VALUE exception, VALUE body)</div><div class='ctx'> {</div><div class='del'>-#define SYM(s) ID2SYM(rb_intern(#s))</div><div class='add'>+#define SYM(s) ID2SYM(rb_intern_const(#s))</div><div class='ctx'>     int i, len;</div><div class='ctx'>     unsigned int arg_size, local_size, stack_max;</div><div class='ctx'>     ID *tbl;</div><div class='ctx'>     struct st_table *labels_table = st_init_numtable();</div><div class='del'>-    VALUE labels_wrapper = Data_Wrap_Struct(0, 0, st_free_table, labels_table);</div><div class='add'>+    VALUE labels_wrapper = Data_Wrap_Struct(0, rb_mark_set, st_free_table, labels_table);</div><div class='ctx'>     VALUE arg_opt_labels = rb_hash_aref(params, SYM(opt));</div><div class='ctx'>     VALUE keywords = rb_hash_aref(params, SYM(keyword));</div><div class='del'>-    VALUE sym_arg_rest = ID2SYM(rb_intern("#arg_rest"));</div><div class='add'>+    VALUE sym_arg_rest = ID2SYM(rb_intern_const("#arg_rest"));</div><div class='ctx'>     DECL_ANCHOR(anchor);</div><div class='ctx'>     INIT_ANCHOR(anchor);</div><div class='ctx'> </div><div class='ctx'>     len = RARRAY_LENINT(locals);</div><div class='del'>-    iseq-&gt;body-&gt;local_table_size = len;</div><div class='del'>-    iseq-&gt;body-&gt;local_table = tbl = len &gt; 0 ? (ID *)ALLOC_N(ID, iseq-&gt;body-&gt;local_table_size) : NULL;</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;local_table_size = len;</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;local_table = tbl = len &gt; 0 ? (ID *)ALLOC_N(ID, ISEQ_BODY(iseq)-&gt;local_table_size) : NULL;</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; len; i++) {</div><div class='del'>-	VALUE lv = RARRAY_AREF(locals, i);</div><div class='add'>+        VALUE lv = RARRAY_AREF(locals, i);</div><div class='ctx'> </div><div class='del'>-	if (sym_arg_rest == lv) {</div><div class='del'>-	    tbl[i] = 0;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    tbl[i] = FIXNUM_P(lv) ? (ID)FIX2LONG(lv) : SYM2ID(CHECK_SYMBOL(lv));</div><div class='del'>-	}</div><div class='add'>+        if (sym_arg_rest == lv) {</div><div class='add'>+            tbl[i] = 0;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            tbl[i] = FIXNUM_P(lv) ? (ID)FIX2LONG(lv) : SYM2ID(CHECK_SYMBOL(lv));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-#define INT_PARAM(F) int_param(&amp;iseq-&gt;body-&gt;param.F, params, SYM(F))</div><div class='add'>+#define INT_PARAM(F) int_param(&amp;ISEQ_BODY(iseq)-&gt;param.F, params, SYM(F))</div><div class='ctx'>     if (INT_PARAM(lead_num)) {</div><div class='del'>-	iseq-&gt;body-&gt;param.flags.has_lead = TRUE;</div><div class='add'>+        ISEQ_BODY(iseq)-&gt;param.flags.has_lead = TRUE;</div><div class='ctx'>     }</div><div class='del'>-    if (INT_PARAM(post_num)) iseq-&gt;body-&gt;param.flags.has_post = TRUE;</div><div class='del'>-    if (INT_PARAM(post_start)) iseq-&gt;body-&gt;param.flags.has_post = TRUE;</div><div class='del'>-    if (INT_PARAM(rest_start)) iseq-&gt;body-&gt;param.flags.has_rest = TRUE;</div><div class='del'>-    if (INT_PARAM(block_start)) iseq-&gt;body-&gt;param.flags.has_block = TRUE;</div><div class='add'>+    if (INT_PARAM(post_num)) ISEQ_BODY(iseq)-&gt;param.flags.has_post = TRUE;</div><div class='add'>+    if (INT_PARAM(post_start)) ISEQ_BODY(iseq)-&gt;param.flags.has_post = TRUE;</div><div class='add'>+    if (INT_PARAM(rest_start)) ISEQ_BODY(iseq)-&gt;param.flags.has_rest = TRUE;</div><div class='add'>+    if (INT_PARAM(block_start)) ISEQ_BODY(iseq)-&gt;param.flags.has_block = TRUE;</div><div class='ctx'> #undef INT_PARAM</div><div class='ctx'>     {</div><div class='ctx'> #define INT_PARAM(F) F = (int_param(&amp;x, misc, SYM(F)) ? (unsigned int)x : 0)</div><div class='del'>-	int x;</div><div class='del'>-	INT_PARAM(arg_size);</div><div class='del'>-	INT_PARAM(local_size);</div><div class='del'>-	INT_PARAM(stack_max);</div><div class='add'>+        int x;</div><div class='add'>+        INT_PARAM(arg_size);</div><div class='add'>+        INT_PARAM(local_size);</div><div class='add'>+        INT_PARAM(stack_max);</div><div class='ctx'> #undef INT_PARAM</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    VALUE node_ids = Qfalse;</div><div class='add'>+#ifdef USE_ISEQ_NODE_ID</div><div class='add'>+    node_ids = rb_hash_aref(misc, ID2SYM(rb_intern("node_ids")));</div><div class='add'>+    if (!RB_TYPE_P(node_ids, T_ARRAY)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "node_ids is not an array");</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     if (RB_TYPE_P(arg_opt_labels, T_ARRAY)) {</div><div class='del'>-	len = RARRAY_LENINT(arg_opt_labels);</div><div class='del'>-	iseq-&gt;body-&gt;param.flags.has_opt = !!(len - 1 &gt;= 0);</div><div class='add'>+        len = RARRAY_LENINT(arg_opt_labels);</div><div class='add'>+        ISEQ_BODY(iseq)-&gt;param.flags.has_opt = !!(len - 1 &gt;= 0);</div><div class='ctx'> </div><div class='del'>-	if (iseq-&gt;body-&gt;param.flags.has_opt) {</div><div class='del'>-	    VALUE *opt_table = ALLOC_N(VALUE, len);</div><div class='add'>+        if (ISEQ_BODY(iseq)-&gt;param.flags.has_opt) {</div><div class='add'>+            VALUE *opt_table = ALLOC_N(VALUE, len);</div><div class='ctx'> </div><div class='del'>-	    for (i = 0; i &lt; len; i++) {</div><div class='del'>-		VALUE ent = RARRAY_AREF(arg_opt_labels, i);</div><div class='del'>-		LABEL *label = register_label(iseq, labels_table, ent);</div><div class='del'>-		opt_table[i] = (VALUE)label;</div><div class='del'>-	    }</div><div class='add'>+            for (i = 0; i &lt; len; i++) {</div><div class='add'>+                VALUE ent = RARRAY_AREF(arg_opt_labels, i);</div><div class='add'>+                LABEL *label = register_label(iseq, labels_table, ent);</div><div class='add'>+                opt_table[i] = (VALUE)label;</div><div class='add'>+            }</div><div class='ctx'> </div><div class='del'>-	    iseq-&gt;body-&gt;param.opt_num = len - 1;</div><div class='del'>-	    iseq-&gt;body-&gt;param.opt_table = opt_table;</div><div class='del'>-	}</div><div class='add'>+            ISEQ_BODY(iseq)-&gt;param.opt_num = len - 1;</div><div class='add'>+            ISEQ_BODY(iseq)-&gt;param.opt_table = opt_table;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (!NIL_P(arg_opt_labels)) {</div><div class='del'>-	rb_raise(rb_eTypeError, ":opt param is not an array: %+"PRIsVALUE,</div><div class='del'>-		 arg_opt_labels);</div><div class='add'>+        rb_raise(rb_eTypeError, ":opt param is not an array: %+"PRIsVALUE,</div><div class='add'>+                 arg_opt_labels);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(keywords, T_ARRAY)) {</div><div class='del'>-	iseq-&gt;body-&gt;param.keyword = iseq_build_kw(iseq, params, keywords);</div><div class='add'>+        ISEQ_BODY(iseq)-&gt;param.keyword = iseq_build_kw(iseq, params, keywords);</div><div class='ctx'>     }</div><div class='ctx'>     else if (!NIL_P(keywords)) {</div><div class='del'>-	rb_raise(rb_eTypeError, ":keywords param is not an array: %+"PRIsVALUE,</div><div class='del'>-		 keywords);</div><div class='add'>+        rb_raise(rb_eTypeError, ":keywords param is not an array: %+"PRIsVALUE,</div><div class='add'>+                 keywords);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (Qtrue == rb_hash_aref(params, SYM(ambiguous_param0))) {</div><div class='del'>-	iseq-&gt;body-&gt;param.flags.ambiguous_param0 = TRUE;</div><div class='add'>+        ISEQ_BODY(iseq)-&gt;param.flags.ambiguous_param0 = TRUE;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (int_param(&amp;i, params, SYM(kwrest))) {</div><div class='del'>-	struct rb_iseq_param_keyword *keyword = (struct rb_iseq_param_keyword *)iseq-&gt;body-&gt;param.keyword;</div><div class='del'>-	if (keyword == NULL) {</div><div class='del'>-	    iseq-&gt;body-&gt;param.keyword = keyword = ZALLOC(struct rb_iseq_param_keyword);</div><div class='del'>-	}</div><div class='del'>-	keyword-&gt;rest_start = i;</div><div class='del'>-	iseq-&gt;body-&gt;param.flags.has_kwrest = TRUE;</div><div class='add'>+        struct rb_iseq_param_keyword *keyword = (struct rb_iseq_param_keyword *)ISEQ_BODY(iseq)-&gt;param.keyword;</div><div class='add'>+        if (keyword == NULL) {</div><div class='add'>+            ISEQ_BODY(iseq)-&gt;param.keyword = keyword = ZALLOC(struct rb_iseq_param_keyword);</div><div class='add'>+        }</div><div class='add'>+        keyword-&gt;rest_start = i;</div><div class='add'>+        ISEQ_BODY(iseq)-&gt;param.flags.has_kwrest = TRUE;</div><div class='ctx'>     }</div><div class='ctx'> #undef SYM</div><div class='ctx'>     iseq_calc_param_size(iseq);</div><div class='hunk'>@@ -8281,163 +10933,77 @@ rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc, VALUE locals, VALUE params,</div><div class='ctx'>     iseq_build_from_ary_exception(iseq, labels_table, exception);</div><div class='ctx'> </div><div class='ctx'>     /* body */</div><div class='del'>-    iseq_build_from_ary_body(iseq, anchor, body, labels_wrapper);</div><div class='add'>+    iseq_build_from_ary_body(iseq, anchor, body, node_ids, labels_wrapper);</div><div class='ctx'> </div><div class='del'>-    iseq-&gt;body-&gt;param.size = arg_size;</div><div class='del'>-    iseq-&gt;body-&gt;local_table_size = local_size;</div><div class='del'>-    iseq-&gt;body-&gt;stack_max = stack_max;</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;param.size = arg_size;</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;local_table_size = local_size;</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;stack_max = stack_max;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* for parser */</div><div class='ctx'> </div><div class='ctx'> int</div><div class='del'>-rb_dvar_defined(ID id, const struct rb_block *base_block)</div><div class='del'>-{</div><div class='del'>-    const rb_iseq_t *iseq;</div><div class='del'>-</div><div class='del'>-    if (base_block &amp;&amp; (iseq = vm_block_iseq(base_block)) != NULL) {</div><div class='del'>-	const struct rb_iseq_constant_body *body = iseq-&gt;body;</div><div class='del'>-	while (body-&gt;type == ISEQ_TYPE_BLOCK ||</div><div class='del'>-	       body-&gt;type == ISEQ_TYPE_RESCUE ||</div><div class='del'>-	       body-&gt;type == ISEQ_TYPE_ENSURE ||</div><div class='del'>-	       body-&gt;type == ISEQ_TYPE_EVAL ||</div><div class='del'>-	       body-&gt;type == ISEQ_TYPE_MAIN</div><div class='del'>-	       ) {</div><div class='del'>-	    unsigned int i;</div><div class='del'>-</div><div class='del'>-	    for (i = 0; i &lt; body-&gt;local_table_size; i++) {</div><div class='del'>-		if (body-&gt;local_table[i] == id) {</div><div class='del'>-		    return 1;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    iseq = body-&gt;parent_iseq;</div><div class='del'>-	    body = iseq-&gt;body;</div><div class='del'>-	}</div><div class='add'>+rb_dvar_defined(ID id, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    if (iseq) {</div><div class='add'>+        const struct rb_iseq_constant_body *body = ISEQ_BODY(iseq);</div><div class='add'>+        while (body-&gt;type == ISEQ_TYPE_BLOCK ||</div><div class='add'>+               body-&gt;type == ISEQ_TYPE_RESCUE ||</div><div class='add'>+               body-&gt;type == ISEQ_TYPE_ENSURE ||</div><div class='add'>+               body-&gt;type == ISEQ_TYPE_EVAL ||</div><div class='add'>+               body-&gt;type == ISEQ_TYPE_MAIN</div><div class='add'>+               ) {</div><div class='add'>+            unsigned int i;</div><div class='add'>+</div><div class='add'>+            for (i = 0; i &lt; body-&gt;local_table_size; i++) {</div><div class='add'>+                if (body-&gt;local_table[i] == id) {</div><div class='add'>+                    return 1;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            iseq = body-&gt;parent_iseq;</div><div class='add'>+            body = ISEQ_BODY(iseq);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='del'>-rb_local_defined(ID id, const struct rb_block *base_block)</div><div class='add'>+rb_local_defined(ID id, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    const rb_iseq_t *iseq;</div><div class='del'>-</div><div class='del'>-    if (base_block &amp;&amp; (iseq = vm_block_iseq(base_block)) != NULL) {</div><div class='del'>-	unsigned int i;</div><div class='del'>-	const struct rb_iseq_constant_body *const body = iseq-&gt;body-&gt;local_iseq-&gt;body;</div><div class='add'>+    if (iseq) {</div><div class='add'>+        unsigned int i;</div><div class='add'>+        const struct rb_iseq_constant_body *const body = ISEQ_BODY(ISEQ_BODY(iseq)-&gt;local_iseq);</div><div class='ctx'> </div><div class='del'>-	for (i=0; i&lt;body-&gt;local_table_size; i++) {</div><div class='del'>-	    if (body-&gt;local_table[i] == id) {</div><div class='del'>-		return 1;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        for (i=0; i&lt;body-&gt;local_table_size; i++) {</div><div class='add'>+            if (body-&gt;local_table[i] == id) {</div><div class='add'>+                return 1;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-caller_location(VALUE *path, VALUE *realpath)</div><div class='del'>-{</div><div class='del'>-    const rb_execution_context_t *ec = GET_EC();</div><div class='del'>-    const rb_control_frame_t *const cfp =</div><div class='del'>-        rb_vm_get_ruby_level_next_cfp(ec, ec-&gt;cfp);</div><div class='del'>-</div><div class='del'>-    if (cfp) {</div><div class='del'>-	int line = rb_vm_get_sourceline(cfp);</div><div class='del'>-	*path = rb_iseq_path(cfp-&gt;iseq);</div><div class='del'>-	*realpath = rb_iseq_realpath(cfp-&gt;iseq);</div><div class='del'>-	return line;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	*path = rb_fstring_lit("&lt;compiled&gt;");</div><div class='del'>-	*realpath = *path;</div><div class='del'>-	return 1;</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-    VALUE arg;</div><div class='del'>-    rb_insn_func_t func;</div><div class='del'>-    int line;</div><div class='del'>-} accessor_args;</div><div class='del'>-</div><div class='del'>-static const rb_iseq_t *</div><div class='del'>-method_for_self(VALUE name, VALUE arg, rb_insn_func_t func,</div><div class='del'>-		VALUE (*build)(rb_iseq_t *, LINK_ANCHOR *const, VALUE))</div><div class='del'>-{</div><div class='del'>-    VALUE path, realpath;</div><div class='del'>-    accessor_args acc;</div><div class='del'>-</div><div class='del'>-    acc.arg = arg;</div><div class='del'>-    acc.func = func;</div><div class='del'>-    acc.line = caller_location(&amp;path, &amp;realpath);</div><div class='del'>-    return rb_iseq_new_ifunc(IFUNC_NEW(build, (VALUE)&amp;acc, 0),</div><div class='del'>-			     rb_sym2str(name), path, realpath,</div><div class='del'>-			     INT2FIX(acc.line), 0, ISEQ_TYPE_METHOD, 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-for_self_aref(rb_iseq_t *iseq, LINK_ANCHOR *const ret, VALUE a)</div><div class='del'>-{</div><div class='del'>-    const accessor_args *const args = (void *)a;</div><div class='del'>-    const int line = args-&gt;line;</div><div class='del'>-    struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='del'>-</div><div class='del'>-    iseq_set_local_table(iseq, 0);</div><div class='del'>-    body-&gt;param.lead_num = 0;</div><div class='del'>-    body-&gt;param.size = 0;</div><div class='del'>-</div><div class='del'>-    ADD_INSN1(ret, line, putobject, args-&gt;arg);</div><div class='del'>-    ADD_INSN1(ret, line, opt_call_c_function, (VALUE)args-&gt;func);</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-for_self_aset(rb_iseq_t *iseq, LINK_ANCHOR *const ret, VALUE a)</div><div class='del'>-{</div><div class='del'>-    const accessor_args *const args = (void *)a;</div><div class='del'>-    const int line = args-&gt;line;</div><div class='del'>-    struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='del'>-    static const ID vars[] = {1, idUScore};</div><div class='del'>-</div><div class='del'>-    iseq_set_local_table(iseq, vars);</div><div class='del'>-    body-&gt;param.lead_num = 1;</div><div class='del'>-    body-&gt;param.size = 1;</div><div class='del'>-</div><div class='del'>-    ADD_GETLOCAL(ret, line, numberof(vars)-1, 0);</div><div class='del'>-    ADD_INSN1(ret, line, putobject, args-&gt;arg);</div><div class='del'>-    ADD_INSN1(ret, line, opt_call_c_function, (VALUE)args-&gt;func);</div><div class='del'>-    ADD_INSN(ret, line, pop);</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * func (index) -&gt; (value)</div><div class='del'>- */</div><div class='del'>-const rb_iseq_t *</div><div class='del'>-rb_method_for_self_aref(VALUE name, VALUE arg, rb_insn_func_t func)</div><div class='del'>-{</div><div class='del'>-    return method_for_self(name, arg, func, for_self_aref);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * func (index, value) -&gt; (index, value)</div><div class='del'>- */</div><div class='del'>-const rb_iseq_t *</div><div class='del'>-rb_method_for_self_aset(VALUE name, VALUE arg, rb_insn_func_t func)</div><div class='del'>-{</div><div class='del'>-    return method_for_self(name, arg, func, for_self_aset);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /* ISeq binary format */</div><div class='ctx'> </div><div class='ctx'> #ifndef IBF_ISEQ_DEBUG</div><div class='ctx'> #define IBF_ISEQ_DEBUG 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifndef IBF_ISEQ_ENABLE_LOCAL_BUFFER</div><div class='add'>+#define IBF_ISEQ_ENABLE_LOCAL_BUFFER 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> typedef unsigned int ibf_offset_t;</div><div class='ctx'> #define IBF_OFFSET(ptr) ((ibf_offset_t)(VALUE)(ptr))</div><div class='ctx'> </div><div class='add'>+#define IBF_MAJOR_VERSION ISEQ_MAJOR_VERSION</div><div class='add'>+#ifdef RUBY_DEVEL</div><div class='add'>+#define IBF_DEVEL_VERSION 4</div><div class='add'>+#define IBF_MINOR_VERSION (ISEQ_MINOR_VERSION * 10000 + IBF_DEVEL_VERSION)</div><div class='add'>+#else</div><div class='add'>+#define IBF_MINOR_VERSION ISEQ_MINOR_VERSION</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> struct ibf_header {</div><div class='ctx'>     char magic[4]; /* YARB */</div><div class='ctx'>     unsigned int major_version;</div><div class='hunk'>@@ -8446,39 +11012,124 @@ struct ibf_header {</div><div class='ctx'>     unsigned int extra_size;</div><div class='ctx'> </div><div class='ctx'>     unsigned int iseq_list_size;</div><div class='del'>-    unsigned int id_list_size;</div><div class='del'>-    unsigned int object_list_size;</div><div class='del'>-</div><div class='add'>+    unsigned int global_object_list_size;</div><div class='ctx'>     ibf_offset_t iseq_list_offset;</div><div class='del'>-    ibf_offset_t id_list_offset;</div><div class='del'>-    ibf_offset_t object_list_offset;</div><div class='add'>+    ibf_offset_t global_object_list_offset;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-struct ibf_dump {</div><div class='add'>+struct ibf_dump_buffer {</div><div class='ctx'>     VALUE str;</div><div class='del'>-    VALUE iseq_list;      /* [iseq0 offset, ...] */</div><div class='del'>-    VALUE obj_list;       /* [objs] */</div><div class='add'>+    st_table *obj_table; /* obj -&gt; obj number */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct ibf_dump {</div><div class='ctx'>     st_table *iseq_table; /* iseq -&gt; iseq number */</div><div class='del'>-    st_table *id_table;   /* id -&gt; id number */</div><div class='add'>+    struct ibf_dump_buffer global_buffer;</div><div class='add'>+    struct ibf_dump_buffer *current_buffer;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-rb_iseq_t * iseq_alloc(void);</div><div class='add'>+struct ibf_load_buffer {</div><div class='add'>+    const char *buff;</div><div class='add'>+    ibf_offset_t size;</div><div class='add'>+</div><div class='add'>+    VALUE obj_list; /* [obj0, ...] */</div><div class='add'>+    unsigned int obj_list_size;</div><div class='add'>+    ibf_offset_t obj_list_offset;</div><div class='add'>+};</div><div class='ctx'> </div><div class='ctx'> struct ibf_load {</div><div class='del'>-    const RUBY_ALIGNAS(SIZEOF_VALUE) char *buff;</div><div class='ctx'>     const struct ibf_header *header;</div><div class='del'>-    ID *id_list;     /* [id0, ...] */</div><div class='del'>-    VALUE iseq_list; /* [iseq0, ...] */</div><div class='del'>-    VALUE obj_list;  /* [obj0, ...] */</div><div class='add'>+    VALUE iseq_list;       /* [iseq0, ...] */</div><div class='add'>+    struct ibf_load_buffer global_buffer;</div><div class='ctx'>     VALUE loader_obj;</div><div class='del'>-    VALUE str;</div><div class='ctx'>     rb_iseq_t *iseq;</div><div class='add'>+    VALUE str;</div><div class='add'>+    struct ibf_load_buffer *current_buffer;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct pinned_list {</div><div class='add'>+    long size;</div><div class='add'>+    VALUE * buffer;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+pinned_list_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+    struct pinned_list *list = (struct pinned_list *)ptr;</div><div class='add'>+    for (i = 0; i &lt; list-&gt;size; i++) {</div><div class='add'>+        if (list-&gt;buffer[i]) {</div><div class='add'>+            rb_gc_mark(list-&gt;buffer[i]);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+pinned_list_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct pinned_list *list = (struct pinned_list *)ptr;</div><div class='add'>+    xfree(list-&gt;buffer);</div><div class='add'>+    xfree(ptr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+pinned_list_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct pinned_list *list = (struct pinned_list *)ptr;</div><div class='add'>+    return sizeof(struct pinned_list) + (list-&gt;size * sizeof(VALUE *));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t pinned_list_type = {</div><div class='add'>+    "pinned_list",</div><div class='add'>+    {pinned_list_mark, pinned_list_free, pinned_list_memsize,},</div><div class='add'>+    0, 0, RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+pinned_list_fetch(VALUE list, long offset)</div><div class='add'>+{</div><div class='add'>+    struct pinned_list * ptr;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(list, struct pinned_list, &amp;pinned_list_type, ptr);</div><div class='add'>+</div><div class='add'>+    if (offset &gt;= ptr-&gt;size) {</div><div class='add'>+        rb_raise(rb_eIndexError, "object index out of range: %ld", offset);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ptr-&gt;buffer[offset];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+pinned_list_store(VALUE list, long offset, VALUE object)</div><div class='add'>+{</div><div class='add'>+    struct pinned_list * ptr;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(list, struct pinned_list, &amp;pinned_list_type, ptr);</div><div class='add'>+</div><div class='add'>+    if (offset &gt;= ptr-&gt;size) {</div><div class='add'>+        rb_raise(rb_eIndexError, "object index out of range: %ld", offset);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RB_OBJ_WRITE(list, &amp;ptr-&gt;buffer[offset], object);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+pinned_list_new(long size)</div><div class='add'>+{</div><div class='add'>+    struct pinned_list * ptr;</div><div class='add'>+    VALUE obj_list =</div><div class='add'>+        TypedData_Make_Struct(0, struct pinned_list, &amp;pinned_list_type, ptr);</div><div class='add'>+</div><div class='add'>+    ptr-&gt;buffer = xcalloc(size, sizeof(VALUE));</div><div class='add'>+    ptr-&gt;size = size;</div><div class='add'>+</div><div class='add'>+    return obj_list;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static ibf_offset_t</div><div class='ctx'> ibf_dump_pos(struct ibf_dump *dump)</div><div class='ctx'> {</div><div class='del'>-    long pos = RSTRING_LEN(dump-&gt;str);</div><div class='add'>+    long pos = RSTRING_LEN(dump-&gt;current_buffer-&gt;str);</div><div class='ctx'> #if SIZEOF_LONG &gt; SIZEOF_INT</div><div class='ctx'>     if (pos &gt;= UINT_MAX) {</div><div class='ctx'>         rb_raise(rb_eRuntimeError, "dump size exceeds");</div><div class='hunk'>@@ -8500,9 +11151,9 @@ ibf_dump_align(struct ibf_dump *dump, size_t align)</div><div class='ctx'>         }</div><div class='ctx'> #endif</div><div class='ctx'>         for (; size &gt; sizeof(padding); size -= sizeof(padding)) {</div><div class='del'>-            rb_str_cat(dump-&gt;str, padding, sizeof(padding));</div><div class='add'>+            rb_str_cat(dump-&gt;current_buffer-&gt;str, padding, sizeof(padding));</div><div class='ctx'>         }</div><div class='del'>-        rb_str_cat(dump-&gt;str, padding, size);</div><div class='add'>+        rb_str_cat(dump-&gt;current_buffer-&gt;str, padding, size);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -8510,26 +11161,41 @@ static ibf_offset_t</div><div class='ctx'> ibf_dump_write(struct ibf_dump *dump, const void *buff, unsigned long size)</div><div class='ctx'> {</div><div class='ctx'>     ibf_offset_t pos = ibf_dump_pos(dump);</div><div class='del'>-    rb_str_cat(dump-&gt;str, (const char *)buff, size);</div><div class='add'>+    rb_str_cat(dump-&gt;current_buffer-&gt;str, (const char *)buff, size);</div><div class='ctx'>     /* TODO: overflow check */</div><div class='ctx'>     return pos;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static ibf_offset_t</div><div class='add'>+ibf_dump_write_byte(struct ibf_dump *dump, unsigned char byte)</div><div class='add'>+{</div><div class='add'>+    return ibf_dump_write(dump, &amp;byte, sizeof(unsigned char));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> ibf_dump_overwrite(struct ibf_dump *dump, void *buff, unsigned int size, long offset)</div><div class='ctx'> {</div><div class='del'>-    VALUE str = dump-&gt;str;</div><div class='add'>+    VALUE str = dump-&gt;current_buffer-&gt;str;</div><div class='ctx'>     char *ptr = RSTRING_PTR(str);</div><div class='ctx'>     if ((unsigned long)(size + offset) &gt; (unsigned long)RSTRING_LEN(str))</div><div class='del'>-	rb_bug("ibf_dump_overwrite: overflow");</div><div class='add'>+        rb_bug("ibf_dump_overwrite: overflow");</div><div class='ctx'>     memcpy(ptr + offset, buff, size);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const void *</div><div class='add'>+ibf_load_ptr(const struct ibf_load *load, ibf_offset_t *offset, int size)</div><div class='add'>+{</div><div class='add'>+    ibf_offset_t beg = *offset;</div><div class='add'>+    *offset += size;</div><div class='add'>+    return load-&gt;current_buffer-&gt;buff + beg;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void *</div><div class='del'>-ibf_load_alloc(const struct ibf_load *load, ibf_offset_t offset, int size)</div><div class='add'>+ibf_load_alloc(const struct ibf_load *load, ibf_offset_t offset, size_t x, size_t y)</div><div class='ctx'> {</div><div class='del'>-    void *buff = ruby_xmalloc(size);</div><div class='del'>-    memcpy(buff, load-&gt;buff + offset, size);</div><div class='add'>+    void *buff = ruby_xmalloc2(x, y);</div><div class='add'>+    size_t size = x * y;</div><div class='add'>+    memcpy(buff, load-&gt;current_buffer-&gt;buff + offset, size);</div><div class='ctx'>     return buff;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -8538,7 +11204,7 @@ ibf_load_alloc(const struct ibf_load *load, ibf_offset_t offset, int size)</div><div class='ctx'> #define IBF_W(b, type, n) (IBF_W_ALIGN(type), (type *)(VALUE)IBF_WP(b, type, n))</div><div class='ctx'> #define IBF_WV(variable)   ibf_dump_write(dump, &amp;(variable), sizeof(variable))</div><div class='ctx'> #define IBF_WP(b, type, n) ibf_dump_write(dump, (b), sizeof(type) * (n))</div><div class='del'>-#define IBF_R(val, type, n) (type *)ibf_load_alloc(load, IBF_OFFSET(val), sizeof(type) * (n))</div><div class='add'>+#define IBF_R(val, type, n) (type *)ibf_load_alloc(load, IBF_OFFSET(val), sizeof(type), (n))</div><div class='ctx'> #define IBF_ZERO(variable) memset(&amp;(variable), 0, sizeof(variable))</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -8547,21 +11213,21 @@ ibf_table_lookup(struct st_table *table, st_data_t key)</div><div class='ctx'>     st_data_t val;</div><div class='ctx'> </div><div class='ctx'>     if (st_lookup(table, key, &amp;val)) {</div><div class='del'>-	return (int)val;</div><div class='add'>+        return (int)val;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ibf_table_index(struct st_table *table, st_data_t key)</div><div class='add'>+ibf_table_find_or_insert(struct st_table *table, st_data_t key)</div><div class='ctx'> {</div><div class='ctx'>     int index = ibf_table_lookup(table, key);</div><div class='ctx'> </div><div class='ctx'>     if (index &lt; 0) { /* not found */</div><div class='del'>-	index = (int)table-&gt;num_entries;</div><div class='del'>-	st_insert(table, key, (st_data_t)index);</div><div class='add'>+        index = (int)table-&gt;num_entries;</div><div class='add'>+        st_insert(table, key, (st_data_t)index);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return index;</div><div class='hunk'>@@ -8569,514 +11235,917 @@ ibf_table_index(struct st_table *table, st_data_t key)</div><div class='ctx'> </div><div class='ctx'> /* dump/load generic */</div><div class='ctx'> </div><div class='add'>+static void ibf_dump_object_list(struct ibf_dump *dump, ibf_offset_t *obj_list_offset, unsigned int *obj_list_size);</div><div class='add'>+</div><div class='ctx'> static VALUE ibf_load_object(const struct ibf_load *load, VALUE object_index);</div><div class='ctx'> static rb_iseq_t *ibf_load_iseq(const struct ibf_load *load, const rb_iseq_t *index_iseq);</div><div class='ctx'> </div><div class='add'>+static st_table *</div><div class='add'>+ibf_dump_object_table_new(void)</div><div class='add'>+{</div><div class='add'>+    st_table *obj_table = st_init_numtable(); /* need free */</div><div class='add'>+    st_insert(obj_table, (st_data_t)Qnil, (st_data_t)0); /* 0th is nil */</div><div class='add'>+</div><div class='add'>+    return obj_table;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> ibf_dump_object(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    long index = RARRAY_LEN(dump-&gt;obj_list);</div><div class='del'>-    long i;</div><div class='del'>-    for (i=0; i&lt;index; i++) {</div><div class='del'>-	if (RARRAY_AREF(dump-&gt;obj_list, i) == obj) return (VALUE)i; /* dedup */</div><div class='del'>-    }</div><div class='del'>-    rb_ary_push(dump-&gt;obj_list, obj);</div><div class='del'>-    return (VALUE)index;</div><div class='add'>+    return ibf_table_find_or_insert(dump-&gt;current_buffer-&gt;obj_table, (st_data_t)obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> ibf_dump_id(struct ibf_dump *dump, ID id)</div><div class='ctx'> {</div><div class='del'>-    return (VALUE)ibf_table_index(dump-&gt;id_table, (st_data_t)id);</div><div class='add'>+    if (id == 0 || rb_id2name(id) == NULL) {</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+    return ibf_dump_object(dump, rb_id2sym(id));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static ID</div><div class='ctx'> ibf_load_id(const struct ibf_load *load, const ID id_index)</div><div class='ctx'> {</div><div class='del'>-    ID id;</div><div class='del'>-</div><div class='ctx'>     if (id_index == 0) {</div><div class='del'>-	id = 0;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	id = load-&gt;id_list[(long)id_index];</div><div class='del'>-</div><div class='del'>-	if (id == 0) {</div><div class='del'>-	    long *indices = (long *)(load-&gt;buff + load-&gt;header-&gt;id_list_offset);</div><div class='del'>-	    VALUE str = ibf_load_object(load, indices[id_index]);</div><div class='del'>-	    id = NIL_P(str) ? 0 : rb_intern_str(str); /* str == nil -&gt; internal junk id */</div><div class='del'>-	    load-&gt;id_list[(long)id_index] = id;</div><div class='del'>-	}</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    return id;</div><div class='add'>+    VALUE sym = ibf_load_object(load, id_index);</div><div class='add'>+    return rb_sym2id(sym);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* dump/load: code */</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-ibf_dump_callinfo(struct ibf_dump *dump, const struct rb_call_info *ci)</div><div class='del'>-{</div><div class='del'>-    return (ci-&gt;flag &amp; VM_CALL_KWARG) ? Qtrue : Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static ibf_offset_t ibf_dump_iseq_each(struct ibf_dump *dump, const rb_iseq_t *iseq);</div><div class='ctx'> </div><div class='del'>-static rb_iseq_t *</div><div class='add'>+static int</div><div class='ctx'> ibf_dump_iseq(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     if (iseq == NULL) {</div><div class='del'>-	return (rb_iseq_t *)-1;</div><div class='add'>+        return -1;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	int iseq_index = ibf_table_lookup(dump-&gt;iseq_table, (st_data_t)iseq);</div><div class='del'>-	if (iseq_index &lt; 0) {</div><div class='del'>-	    iseq_index = ibf_table_index(dump-&gt;iseq_table, (st_data_t)iseq);</div><div class='del'>-	    rb_ary_store(dump-&gt;iseq_list, iseq_index, LONG2NUM(ibf_dump_iseq_each(dump, rb_iseq_check(iseq))));</div><div class='del'>-	}</div><div class='del'>-	return (rb_iseq_t *)(VALUE)iseq_index;</div><div class='add'>+        return ibf_table_find_or_insert(dump-&gt;iseq_table, (st_data_t)iseq);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-ibf_dump_gentry(struct ibf_dump *dump, const struct rb_global_entry *entry)</div><div class='add'>+static unsigned char</div><div class='add'>+ibf_load_byte(const struct ibf_load *load, ibf_offset_t *offset)</div><div class='ctx'> {</div><div class='del'>-    return (VALUE)ibf_dump_id(dump, entry-&gt;id);</div><div class='add'>+    if (*offset &gt;= load-&gt;current_buffer-&gt;size) { rb_raise(rb_eRuntimeError, "invalid bytecode"); }</div><div class='add'>+    return (unsigned char)load-&gt;current_buffer-&gt;buff[(*offset)++];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Small uint serialization</div><div class='add'>+ * 0x00000000_00000000 - 0x00000000_0000007f: 1byte | XXXX XXX1 |</div><div class='add'>+ * 0x00000000_00000080 - 0x00000000_00003fff: 2byte | XXXX XX10 | XXXX XXXX |</div><div class='add'>+ * 0x00000000_00004000 - 0x00000000_001fffff: 3byte | XXXX X100 | XXXX XXXX | XXXX XXXX |</div><div class='add'>+ * 0x00000000_00020000 - 0x00000000_0fffffff: 4byte | XXXX 1000 | XXXX XXXX | XXXX XXXX | XXXX XXXX |</div><div class='add'>+ * ...</div><div class='add'>+ * 0x00010000_00000000 - 0x00ffffff_ffffffff: 8byte | 1000 0000 | XXXX XXXX | XXXX XXXX | XXXX XXXX | XXXX XXXX | XXXX XXXX | XXXX XXXX | XXXX XXXX |</div><div class='add'>+ * 0x01000000_00000000 - 0xffffffff_ffffffff: 9byte | 0000 0000 | XXXX XXXX | XXXX XXXX | XXXX XXXX | XXXX XXXX | XXXX XXXX | XXXX XXXX | XXXX XXXX | XXXX XXXX |</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+ibf_dump_write_small_value(struct ibf_dump *dump, VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (sizeof(VALUE) &gt; 8 || CHAR_BIT != 8) {</div><div class='add'>+        ibf_dump_write(dump, &amp;x, sizeof(VALUE));</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    enum { max_byte_length = sizeof(VALUE) + 1 };</div><div class='add'>+</div><div class='add'>+    unsigned char bytes[max_byte_length];</div><div class='add'>+    ibf_offset_t n;</div><div class='add'>+</div><div class='add'>+    for (n = 0; n &lt; sizeof(VALUE) &amp;&amp; (x &gt;&gt; (7 - n)); n++, x &gt;&gt;= 8) {</div><div class='add'>+        bytes[max_byte_length - 1 - n] = (unsigned char)x;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    x &lt;&lt;= 1;</div><div class='add'>+    x |= 1;</div><div class='add'>+    x &lt;&lt;= n;</div><div class='add'>+    bytes[max_byte_length - 1 - n] = (unsigned char)x;</div><div class='add'>+    n++;</div><div class='add'>+</div><div class='add'>+    ibf_dump_write(dump, bytes + max_byte_length - n, n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ibf_load_gentry(const struct ibf_load *load, const struct rb_global_entry *entry)</div><div class='add'>+ibf_load_small_value(const struct ibf_load *load, ibf_offset_t *offset)</div><div class='ctx'> {</div><div class='del'>-    ID gid = ibf_load_id(load, (ID)(VALUE)entry);</div><div class='del'>-    return (VALUE)rb_global_entry(gid);</div><div class='add'>+    if (sizeof(VALUE) &gt; 8 || CHAR_BIT != 8) {</div><div class='add'>+        union { char s[sizeof(VALUE)]; VALUE v; } x;</div><div class='add'>+</div><div class='add'>+        memcpy(x.s, load-&gt;current_buffer-&gt;buff + *offset, sizeof(VALUE));</div><div class='add'>+        *offset += sizeof(VALUE);</div><div class='add'>+</div><div class='add'>+        return x.v;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    enum { max_byte_length = sizeof(VALUE) + 1 };</div><div class='add'>+</div><div class='add'>+    const unsigned char *buffer = (const unsigned char *)load-&gt;current_buffer-&gt;buff;</div><div class='add'>+    const unsigned char c = buffer[*offset];</div><div class='add'>+</div><div class='add'>+    ibf_offset_t n =</div><div class='add'>+        c &amp; 1 ? 1 :</div><div class='add'>+        c == 0 ? 9 : ntz_int32(c) + 1;</div><div class='add'>+    VALUE x = (VALUE)c &gt;&gt; n;</div><div class='add'>+</div><div class='add'>+    if (*offset + n &gt; load-&gt;current_buffer-&gt;size) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "invalid byte sequence");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ibf_offset_t i;</div><div class='add'>+    for (i = 1; i &lt; n; i++) {</div><div class='add'>+        x &lt;&lt;= 8;</div><div class='add'>+        x |= (VALUE)buffer[*offset + i];</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    *offset += n;</div><div class='add'>+    return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE *</div><div class='add'>+static void</div><div class='add'>+ibf_dump_builtin(struct ibf_dump *dump, const struct rb_builtin_function *bf)</div><div class='add'>+{</div><div class='add'>+    // short: index</div><div class='add'>+    // short: name.length</div><div class='add'>+    // bytes: name</div><div class='add'>+    // // omit argc (only verify with name)</div><div class='add'>+    ibf_dump_write_small_value(dump, (VALUE)bf-&gt;index);</div><div class='add'>+</div><div class='add'>+    size_t len = strlen(bf-&gt;name);</div><div class='add'>+    ibf_dump_write_small_value(dump, (VALUE)len);</div><div class='add'>+    ibf_dump_write(dump, bf-&gt;name, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const struct rb_builtin_function *</div><div class='add'>+ibf_load_builtin(const struct ibf_load *load, ibf_offset_t *offset)</div><div class='add'>+{</div><div class='add'>+    int i = (int)ibf_load_small_value(load, offset);</div><div class='add'>+    int len = (int)ibf_load_small_value(load, offset);</div><div class='add'>+    const char *name = (char *)ibf_load_ptr(load, offset, len);</div><div class='add'>+</div><div class='add'>+    if (0) {</div><div class='add'>+        fprintf(stderr, "%.*s!!\n", len, name);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    const struct rb_builtin_function *table = GET_VM()-&gt;builtin_function_table;</div><div class='add'>+    if (table == NULL) rb_raise(rb_eArgError, "builtin function table is not provided");</div><div class='add'>+    if (strncmp(table[i].name, name, len) != 0) {</div><div class='add'>+        rb_raise(rb_eArgError, "builtin function index (%d) mismatch (expect %s but %s)", i, name, table[i].name);</div><div class='add'>+    }</div><div class='add'>+    // fprintf(stderr, "load-builtin: name:%s(%d)\n", table[i].name, table[i].argc);</div><div class='add'>+</div><div class='add'>+    return &amp;table[i];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ibf_offset_t</div><div class='ctx'> ibf_dump_code(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     const int iseq_size = body-&gt;iseq_size;</div><div class='ctx'>     int code_index;</div><div class='del'>-    VALUE *code;</div><div class='ctx'>     const VALUE *orig_code = rb_iseq_original_iseq(iseq);</div><div class='ctx'> </div><div class='del'>-    code = ALLOCA_N(VALUE, iseq_size);</div><div class='add'>+    ibf_offset_t offset = ibf_dump_pos(dump);</div><div class='ctx'> </div><div class='ctx'>     for (code_index=0; code_index&lt;iseq_size;) {</div><div class='del'>-	const VALUE insn = orig_code[code_index];</div><div class='del'>-	const char *types = insn_op_types(insn);</div><div class='del'>-	int op_index;</div><div class='del'>-</div><div class='del'>-	code[code_index++] = (VALUE)insn;</div><div class='del'>-</div><div class='del'>-	for (op_index=0; types[op_index]; op_index++, code_index++) {</div><div class='del'>-	    VALUE op = orig_code[code_index];</div><div class='del'>-	    switch (types[op_index]) {</div><div class='del'>-	      case TS_CDHASH:</div><div class='del'>-	      case TS_VALUE:</div><div class='del'>-		code[code_index] = ibf_dump_object(dump, op);</div><div class='del'>-		break;</div><div class='del'>-	      case TS_ISEQ:</div><div class='del'>-		code[code_index] = (VALUE)ibf_dump_iseq(dump, (const rb_iseq_t *)op);</div><div class='del'>-		break;</div><div class='del'>-	      case TS_IC:</div><div class='del'>-	      case TS_ISE:</div><div class='del'>-		{</div><div class='del'>-		    unsigned int i;</div><div class='del'>-		    for (i=0; i&lt;body-&gt;is_size; i++) {</div><div class='del'>-			if (op == (VALUE)&amp;body-&gt;is_entries[i]) {</div><div class='del'>-			    break;</div><div class='del'>-			}</div><div class='del'>-		    }</div><div class='del'>-		    code[code_index] = i;</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      case TS_CALLINFO:</div><div class='del'>-		code[code_index] = ibf_dump_callinfo(dump, (const struct rb_call_info *)op);</div><div class='del'>-		break;</div><div class='del'>-	      case TS_CALLCACHE:</div><div class='del'>-		code[code_index] = 0;</div><div class='del'>-		break;</div><div class='del'>-	      case TS_ID:</div><div class='del'>-		code[code_index] = ibf_dump_id(dump, (ID)op);</div><div class='del'>-		break;</div><div class='del'>-	      case TS_GENTRY:</div><div class='del'>-		code[code_index] = ibf_dump_gentry(dump, (const struct rb_global_entry *)op);</div><div class='del'>-		break;</div><div class='del'>-	      case TS_FUNCPTR:</div><div class='del'>-		rb_raise(rb_eRuntimeError, "TS_FUNCPTR is not supported");</div><div class='del'>-		break;</div><div class='del'>-	      default:</div><div class='del'>-		code[code_index] = op;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	assert(insn_len(insn) == op_index+1);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return IBF_W(code, VALUE, iseq_size);</div><div class='add'>+        const VALUE insn = orig_code[code_index++];</div><div class='add'>+        const char *types = insn_op_types(insn);</div><div class='add'>+        int op_index;</div><div class='add'>+</div><div class='add'>+        /* opcode */</div><div class='add'>+        if (insn &gt;= 0x100) { rb_raise(rb_eRuntimeError, "invalid instruction"); }</div><div class='add'>+        ibf_dump_write_small_value(dump, insn);</div><div class='add'>+</div><div class='add'>+        /* operands */</div><div class='add'>+        for (op_index=0; types[op_index]; op_index++, code_index++) {</div><div class='add'>+            VALUE op = orig_code[code_index];</div><div class='add'>+            VALUE wv;</div><div class='add'>+</div><div class='add'>+            switch (types[op_index]) {</div><div class='add'>+              case TS_CDHASH:</div><div class='add'>+              case TS_VALUE:</div><div class='add'>+                wv = ibf_dump_object(dump, op);</div><div class='add'>+                break;</div><div class='add'>+              case TS_ISEQ:</div><div class='add'>+                wv = (VALUE)ibf_dump_iseq(dump, (const rb_iseq_t *)op);</div><div class='add'>+                break;</div><div class='add'>+              case TS_IC:</div><div class='add'>+                {</div><div class='add'>+                    IC ic = (IC)op;</div><div class='add'>+                    VALUE arr = idlist_to_array(ic-&gt;segments);</div><div class='add'>+                    wv = ibf_dump_object(dump, arr);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_ISE:</div><div class='add'>+              case TS_IVC:</div><div class='add'>+              case TS_ICVARC:</div><div class='add'>+                {</div><div class='add'>+                    union iseq_inline_storage_entry *is = (union iseq_inline_storage_entry *)op;</div><div class='add'>+                    wv = is - ISEQ_IS_ENTRY_START(body, types[op_index]);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_CALLDATA:</div><div class='add'>+                {</div><div class='add'>+                    goto skip_wv;</div><div class='add'>+                }</div><div class='add'>+              case TS_ID:</div><div class='add'>+                wv = ibf_dump_id(dump, (ID)op);</div><div class='add'>+                break;</div><div class='add'>+              case TS_FUNCPTR:</div><div class='add'>+                rb_raise(rb_eRuntimeError, "TS_FUNCPTR is not supported");</div><div class='add'>+                goto skip_wv;</div><div class='add'>+              case TS_BUILTIN:</div><div class='add'>+                ibf_dump_builtin(dump, (const struct rb_builtin_function *)op);</div><div class='add'>+                goto skip_wv;</div><div class='add'>+              default:</div><div class='add'>+                wv = op;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            ibf_dump_write_small_value(dump, wv);</div><div class='add'>+          skip_wv:;</div><div class='add'>+        }</div><div class='add'>+        assert(insn_len(insn) == op_index+1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return offset;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE *</div><div class='del'>-ibf_load_code(const struct ibf_load *load, const rb_iseq_t *iseq, const struct rb_iseq_constant_body *body)</div><div class='add'>+ibf_load_code(const struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t bytecode_offset, ibf_offset_t bytecode_size, unsigned int iseq_size)</div><div class='ctx'> {</div><div class='del'>-    const int iseq_size = body-&gt;iseq_size;</div><div class='del'>-    int code_index;</div><div class='del'>-    VALUE *code = IBF_R(body-&gt;iseq_encoded, VALUE, iseq_size);</div><div class='add'>+    VALUE iseqv = (VALUE)iseq;</div><div class='add'>+    unsigned int code_index;</div><div class='add'>+    ibf_offset_t reading_pos = bytecode_offset;</div><div class='add'>+    VALUE *code = ALLOC_N(VALUE, iseq_size);</div><div class='ctx'> </div><div class='del'>-    struct rb_iseq_constant_body *load_body = iseq-&gt;body;</div><div class='del'>-    struct rb_call_info *ci_entries = load_body-&gt;ci_entries;</div><div class='del'>-    struct rb_call_info_with_kwarg *ci_kw_entries = (struct rb_call_info_with_kwarg *)&amp;load_body-&gt;ci_entries[load_body-&gt;ci_size];</div><div class='del'>-    struct rb_call_cache *cc_entries = load_body-&gt;cc_entries;</div><div class='del'>-    union iseq_inline_storage_entry *is_entries = load_body-&gt;is_entries;</div><div class='add'>+    struct rb_iseq_constant_body *load_body = ISEQ_BODY(iseq);</div><div class='add'>+    struct rb_call_data *cd_entries = load_body-&gt;call_data;</div><div class='add'>+    int ic_index = 0;</div><div class='add'>+</div><div class='add'>+    iseq_bits_t * mark_offset_bits;</div><div class='add'>+</div><div class='add'>+    iseq_bits_t tmp[1] = {0};</div><div class='add'>+</div><div class='add'>+    if (ISEQ_MBITS_BUFLEN(iseq_size) == 1) {</div><div class='add'>+        mark_offset_bits = tmp;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        mark_offset_bits = ZALLOC_N(iseq_bits_t, ISEQ_MBITS_BUFLEN(iseq_size));</div><div class='add'>+    }</div><div class='add'>+    bool needs_bitmap = false;</div><div class='ctx'> </div><div class='del'>-    load_body-&gt;iseq_encoded = code;</div><div class='del'>-    load_body-&gt;iseq_size = 0;</div><div class='ctx'>     for (code_index=0; code_index&lt;iseq_size;) {</div><div class='del'>-	const VALUE insn = code[code_index++];</div><div class='del'>-	const char *types = insn_op_types(insn);</div><div class='del'>-	int op_index;</div><div class='del'>-</div><div class='del'>-	for (op_index=0; types[op_index]; op_index++, code_index++) {</div><div class='del'>-	    VALUE op = code[code_index];</div><div class='del'>-</div><div class='del'>-	    switch (types[op_index]) {</div><div class='del'>-	      case TS_CDHASH:</div><div class='del'>-	      case TS_VALUE:</div><div class='del'>-	        {</div><div class='del'>-		    VALUE v = ibf_load_object(load, op);</div><div class='del'>-		    code[code_index] = v;</div><div class='del'>-		    if (!SPECIAL_CONST_P(v)) {</div><div class='del'>-			RB_OBJ_WRITTEN(iseq, Qundef, v);</div><div class='del'>-			FL_SET(iseq, ISEQ_MARKABLE_ISEQ);</div><div class='del'>-		    }</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	      case TS_ISEQ:</div><div class='del'>-	        {</div><div class='del'>-		    VALUE v = (VALUE)ibf_load_iseq(load, (const rb_iseq_t *)op);</div><div class='del'>-		    code[code_index] = v;</div><div class='del'>-		    if (!SPECIAL_CONST_P(v)) {</div><div class='del'>-			RB_OBJ_WRITTEN(iseq, Qundef, v);</div><div class='del'>-			FL_SET(iseq, ISEQ_MARKABLE_ISEQ);</div><div class='del'>-		    }</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	      case TS_ISE:</div><div class='del'>-		FL_SET(iseq, ISEQ_MARKABLE_ISEQ);</div><div class='del'>-	      case TS_IC:</div><div class='del'>-		code[code_index] = (VALUE)&amp;is_entries[(int)op];</div><div class='del'>-		break;</div><div class='del'>-	      case TS_CALLINFO:</div><div class='del'>-		code[code_index] = op ? (VALUE)ci_kw_entries++ : (VALUE)ci_entries++; /* op is Qtrue (kw) or Qfalse (!kw) */</div><div class='del'>-		break;</div><div class='del'>-	      case TS_CALLCACHE:</div><div class='del'>-		code[code_index] = (VALUE)cc_entries++;</div><div class='del'>-		break;</div><div class='del'>-	      case TS_ID:</div><div class='del'>-		code[code_index] = ibf_load_id(load, (ID)op);</div><div class='del'>-		break;</div><div class='del'>-	      case TS_GENTRY:</div><div class='del'>-		code[code_index] = ibf_load_gentry(load, (const struct rb_global_entry *)op);</div><div class='del'>-		break;</div><div class='del'>-	      case TS_FUNCPTR:</div><div class='del'>-		rb_raise(rb_eRuntimeError, "TS_FUNCPTR is not supported");</div><div class='del'>-		break;</div><div class='del'>-	      default:</div><div class='del'>-		/* code[code_index] = op; */</div><div class='del'>-		continue;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (insn_len(insn) != op_index+1) {</div><div class='del'>-	    rb_raise(rb_eRuntimeError, "operand size mismatch");</div><div class='del'>-	}</div><div class='add'>+        /* opcode */</div><div class='add'>+        const VALUE insn = code[code_index] = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+        const char *types = insn_op_types(insn);</div><div class='add'>+        int op_index;</div><div class='add'>+</div><div class='add'>+        code_index++;</div><div class='add'>+</div><div class='add'>+        /* operands */</div><div class='add'>+        for (op_index=0; types[op_index]; op_index++, code_index++) {</div><div class='add'>+            const char operand_type = types[op_index];</div><div class='add'>+            switch (operand_type) {</div><div class='add'>+              case TS_VALUE:</div><div class='add'>+                {</div><div class='add'>+                    VALUE op = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+                    VALUE v = ibf_load_object(load, op);</div><div class='add'>+                    code[code_index] = v;</div><div class='add'>+                    if (!SPECIAL_CONST_P(v)) {</div><div class='add'>+                        RB_OBJ_WRITTEN(iseqv, Qundef, v);</div><div class='add'>+                        ISEQ_MBITS_SET(mark_offset_bits, code_index);</div><div class='add'>+                        needs_bitmap = true;</div><div class='add'>+                    }</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+              case TS_CDHASH:</div><div class='add'>+                {</div><div class='add'>+                    VALUE op = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+                    VALUE v = ibf_load_object(load, op);</div><div class='add'>+                    v = rb_hash_dup(v); // hash dumped as frozen</div><div class='add'>+                    RHASH_TBL_RAW(v)-&gt;type = &amp;cdhash_type;</div><div class='add'>+                    rb_hash_rehash(v); // hash function changed</div><div class='add'>+                    freeze_hide_obj(v);</div><div class='add'>+</div><div class='add'>+                    // Overwrite the existing hash in the object list.  This</div><div class='add'>+                    // is to keep the object alive during load time.</div><div class='add'>+                    // [Bug #17984] [ruby-core:104259]</div><div class='add'>+                    pinned_list_store(load-&gt;current_buffer-&gt;obj_list, (long)op, v);</div><div class='add'>+</div><div class='add'>+                    code[code_index] = v;</div><div class='add'>+                    ISEQ_MBITS_SET(mark_offset_bits, code_index);</div><div class='add'>+                    RB_OBJ_WRITTEN(iseqv, Qundef, v);</div><div class='add'>+                    needs_bitmap = true;</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+              case TS_ISEQ:</div><div class='add'>+                {</div><div class='add'>+                    VALUE op = (VALUE)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+                    VALUE v = (VALUE)ibf_load_iseq(load, (const rb_iseq_t *)op);</div><div class='add'>+                    code[code_index] = v;</div><div class='add'>+                    if (!SPECIAL_CONST_P(v)) {</div><div class='add'>+                        RB_OBJ_WRITTEN(iseqv, Qundef, v);</div><div class='add'>+                        ISEQ_MBITS_SET(mark_offset_bits, code_index);</div><div class='add'>+                        needs_bitmap = true;</div><div class='add'>+                    }</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+              case TS_IC:</div><div class='add'>+                {</div><div class='add'>+                    VALUE op = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+                    VALUE arr = ibf_load_object(load, op);</div><div class='add'>+</div><div class='add'>+                    IC ic = &amp;ISEQ_IS_IC_ENTRY(load_body, ic_index++);</div><div class='add'>+                    ic-&gt;segments = array_to_idlist(arr);</div><div class='add'>+</div><div class='add'>+                    code[code_index] = (VALUE)ic;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_ISE:</div><div class='add'>+              case TS_ICVARC:</div><div class='add'>+              case TS_IVC:</div><div class='add'>+                {</div><div class='add'>+                    unsigned int op = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+</div><div class='add'>+                    ISE ic = ISEQ_IS_ENTRY_START(load_body, operand_type) + op;</div><div class='add'>+                    code[code_index] = (VALUE)ic;</div><div class='add'>+</div><div class='add'>+                    if (operand_type == TS_IVC) {</div><div class='add'>+                        IVC cache = (IVC)ic;</div><div class='add'>+</div><div class='add'>+                        if (insn == BIN(setinstancevariable)) {</div><div class='add'>+                            ID iv_name = (ID)code[code_index - 1];</div><div class='add'>+                            cache-&gt;iv_set_name = iv_name;</div><div class='add'>+                        }</div><div class='add'>+                        else {</div><div class='add'>+                            cache-&gt;iv_set_name = 0;</div><div class='add'>+                        }</div><div class='add'>+</div><div class='add'>+                        vm_ic_attr_index_initialize(cache, INVALID_SHAPE_ID);</div><div class='add'>+                    }</div><div class='add'>+</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_CALLDATA:</div><div class='add'>+                {</div><div class='add'>+                    code[code_index] = (VALUE)cd_entries++;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_ID:</div><div class='add'>+                {</div><div class='add'>+                    VALUE op = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+                    code[code_index] = ibf_load_id(load, (ID)(VALUE)op);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_FUNCPTR:</div><div class='add'>+                rb_raise(rb_eRuntimeError, "TS_FUNCPTR is not supported");</div><div class='add'>+                break;</div><div class='add'>+              case TS_BUILTIN:</div><div class='add'>+                code[code_index] = (VALUE)ibf_load_builtin(load, &amp;reading_pos);</div><div class='add'>+                break;</div><div class='add'>+              default:</div><div class='add'>+                code[code_index] = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (insn_len(insn) != op_index+1) {</div><div class='add'>+            rb_raise(rb_eRuntimeError, "operand size mismatch");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    load_body-&gt;iseq_encoded = code;</div><div class='ctx'>     load_body-&gt;iseq_size = code_index;</div><div class='ctx'> </div><div class='add'>+    if (ISEQ_MBITS_BUFLEN(load_body-&gt;iseq_size) == 1) {</div><div class='add'>+        load_body-&gt;mark_bits.single = mark_offset_bits[0];</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (needs_bitmap) {</div><div class='add'>+            load_body-&gt;mark_bits.list = mark_offset_bits;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            load_body-&gt;mark_bits.list = 0;</div><div class='add'>+            ruby_xfree(mark_offset_bits);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    assert(code_index == iseq_size);</div><div class='add'>+    assert(reading_pos == bytecode_offset + bytecode_size);</div><div class='ctx'>     return code;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE *</div><div class='add'>+static ibf_offset_t</div><div class='ctx'> ibf_dump_param_opt_table(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    int opt_num = iseq-&gt;body-&gt;param.opt_num;</div><div class='add'>+    int opt_num = ISEQ_BODY(iseq)-&gt;param.opt_num;</div><div class='ctx'> </div><div class='ctx'>     if (opt_num &gt; 0) {</div><div class='del'>-	return IBF_W(iseq-&gt;body-&gt;param.opt_table, VALUE, opt_num + 1);</div><div class='add'>+        IBF_W_ALIGN(VALUE);</div><div class='add'>+        return ibf_dump_write(dump, ISEQ_BODY(iseq)-&gt;param.opt_table, sizeof(VALUE) * (opt_num + 1));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return NULL;</div><div class='add'>+        return ibf_dump_pos(dump);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE *</div><div class='del'>-ibf_load_param_opt_table(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='add'>+ibf_load_param_opt_table(const struct ibf_load *load, ibf_offset_t opt_table_offset, int opt_num)</div><div class='ctx'> {</div><div class='del'>-    int opt_num = body-&gt;param.opt_num;</div><div class='del'>-</div><div class='ctx'>     if (opt_num &gt; 0) {</div><div class='del'>-	ibf_offset_t offset = IBF_OFFSET(body-&gt;param.opt_table);</div><div class='del'>-	VALUE *table = ALLOC_N(VALUE, opt_num+1);</div><div class='del'>-	MEMCPY(table, load-&gt;buff + offset, VALUE, opt_num+1);</div><div class='del'>-	return table;</div><div class='add'>+        VALUE *table = ALLOC_N(VALUE, opt_num+1);</div><div class='add'>+        MEMCPY(table, load-&gt;current_buffer-&gt;buff + opt_table_offset, VALUE, opt_num+1);</div><div class='add'>+        return table;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return NULL;</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static struct rb_iseq_param_keyword *</div><div class='add'>+static ibf_offset_t</div><div class='ctx'> ibf_dump_param_keyword(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    const struct rb_iseq_param_keyword *kw = iseq-&gt;body-&gt;param.keyword;</div><div class='add'>+    const struct rb_iseq_param_keyword *kw = ISEQ_BODY(iseq)-&gt;param.keyword;</div><div class='ctx'> </div><div class='ctx'>     if (kw) {</div><div class='del'>-	struct rb_iseq_param_keyword dump_kw = *kw;</div><div class='del'>-	int dv_num = kw-&gt;num - kw-&gt;required_num;</div><div class='del'>-	ID *ids = kw-&gt;num &gt; 0 ? ALLOCA_N(ID, kw-&gt;num) : NULL;</div><div class='del'>-	VALUE *dvs = dv_num &gt; 0 ? ALLOCA_N(VALUE, dv_num) : NULL;</div><div class='del'>-	int i;</div><div class='add'>+        struct rb_iseq_param_keyword dump_kw = *kw;</div><div class='add'>+        int dv_num = kw-&gt;num - kw-&gt;required_num;</div><div class='add'>+        ID *ids = kw-&gt;num &gt; 0 ? ALLOCA_N(ID, kw-&gt;num) : NULL;</div><div class='add'>+        VALUE *dvs = dv_num &gt; 0 ? ALLOCA_N(VALUE, dv_num) : NULL;</div><div class='add'>+        int i;</div><div class='ctx'> </div><div class='del'>-	for (i=0; i&lt;kw-&gt;num; i++) ids[i] = (ID)ibf_dump_id(dump, kw-&gt;table[i]);</div><div class='del'>-	for (i=0; i&lt;dv_num; i++) dvs[i] = (VALUE)ibf_dump_object(dump, kw-&gt;default_values[i]);</div><div class='add'>+        for (i=0; i&lt;kw-&gt;num; i++) ids[i] = (ID)ibf_dump_id(dump, kw-&gt;table[i]);</div><div class='add'>+        for (i=0; i&lt;dv_num; i++) dvs[i] = (VALUE)ibf_dump_object(dump, kw-&gt;default_values[i]);</div><div class='ctx'> </div><div class='del'>-	dump_kw.table = IBF_W(ids, ID, kw-&gt;num);</div><div class='del'>-	dump_kw.default_values = IBF_W(dvs, VALUE, dv_num);</div><div class='del'>-	return IBF_W(&amp;dump_kw, struct rb_iseq_param_keyword, 1);</div><div class='add'>+        dump_kw.table = IBF_W(ids, ID, kw-&gt;num);</div><div class='add'>+        dump_kw.default_values = IBF_W(dvs, VALUE, dv_num);</div><div class='add'>+        IBF_W_ALIGN(struct rb_iseq_param_keyword);</div><div class='add'>+        return ibf_dump_write(dump, &amp;dump_kw, sizeof(struct rb_iseq_param_keyword) * 1);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return NULL;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const struct rb_iseq_param_keyword *</div><div class='del'>-ibf_load_param_keyword(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='del'>-{</div><div class='del'>-    if (body-&gt;param.keyword) {</div><div class='del'>-	struct rb_iseq_param_keyword *kw = IBF_R(body-&gt;param.keyword, struct rb_iseq_param_keyword, 1);</div><div class='del'>-	ID *ids = IBF_R(kw-&gt;table, ID, kw-&gt;num);</div><div class='del'>-	int dv_num = kw-&gt;num - kw-&gt;required_num;</div><div class='del'>-	VALUE *dvs = IBF_R(kw-&gt;default_values, VALUE, dv_num);</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	for (i=0; i&lt;kw-&gt;num; i++) {</div><div class='del'>-	    ids[i] = ibf_load_id(load, ids[i]);</div><div class='del'>-	}</div><div class='del'>-	for (i=0; i&lt;dv_num; i++) {</div><div class='del'>-	    dvs[i] = ibf_load_object(load, dvs[i]);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	kw-&gt;table = ids;</div><div class='del'>-	kw-&gt;default_values = dvs;</div><div class='del'>-	return kw;</div><div class='add'>+ibf_load_param_keyword(const struct ibf_load *load, ibf_offset_t param_keyword_offset)</div><div class='add'>+{</div><div class='add'>+    if (param_keyword_offset) {</div><div class='add'>+        struct rb_iseq_param_keyword *kw = IBF_R(param_keyword_offset, struct rb_iseq_param_keyword, 1);</div><div class='add'>+        ID *ids = IBF_R(kw-&gt;table, ID, kw-&gt;num);</div><div class='add'>+        int dv_num = kw-&gt;num - kw-&gt;required_num;</div><div class='add'>+        VALUE *dvs = IBF_R(kw-&gt;default_values, VALUE, dv_num);</div><div class='add'>+        int i;</div><div class='add'>+</div><div class='add'>+        for (i=0; i&lt;kw-&gt;num; i++) {</div><div class='add'>+            ids[i] = ibf_load_id(load, ids[i]);</div><div class='add'>+        }</div><div class='add'>+        for (i=0; i&lt;dv_num; i++) {</div><div class='add'>+            dvs[i] = ibf_load_object(load, dvs[i]);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        kw-&gt;table = ids;</div><div class='add'>+        kw-&gt;default_values = dvs;</div><div class='add'>+        return kw;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return NULL;</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static struct iseq_insn_info_entry *</div><div class='add'>+static ibf_offset_t</div><div class='ctx'> ibf_dump_insns_info_body(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    return IBF_W(iseq-&gt;body-&gt;insns_info.body, struct iseq_insn_info_entry, iseq-&gt;body-&gt;insns_info.size);</div><div class='add'>+    ibf_offset_t offset = ibf_dump_pos(dump);</div><div class='add'>+    const struct iseq_insn_info_entry *entries = ISEQ_BODY(iseq)-&gt;insns_info.body;</div><div class='add'>+</div><div class='add'>+    unsigned int i;</div><div class='add'>+    for (i = 0; i &lt; ISEQ_BODY(iseq)-&gt;insns_info.size; i++) {</div><div class='add'>+        ibf_dump_write_small_value(dump, entries[i].line_no);</div><div class='add'>+#ifdef USE_ISEQ_NODE_ID</div><div class='add'>+        ibf_dump_write_small_value(dump, entries[i].node_id);</div><div class='add'>+#endif</div><div class='add'>+        ibf_dump_write_small_value(dump, entries[i].events);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return offset;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct iseq_insn_info_entry *</div><div class='del'>-ibf_load_insns_info_body(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='add'>+ibf_load_insns_info_body(const struct ibf_load *load, ibf_offset_t body_offset, unsigned int size)</div><div class='ctx'> {</div><div class='del'>-    return IBF_R(body-&gt;insns_info.body, struct iseq_insn_info_entry, body-&gt;insns_info.size);</div><div class='add'>+    ibf_offset_t reading_pos = body_offset;</div><div class='add'>+    struct iseq_insn_info_entry *entries = ALLOC_N(struct iseq_insn_info_entry, size);</div><div class='add'>+</div><div class='add'>+    unsigned int i;</div><div class='add'>+    for (i = 0; i &lt; size; i++) {</div><div class='add'>+        entries[i].line_no = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+#ifdef USE_ISEQ_NODE_ID</div><div class='add'>+        entries[i].node_id = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+#endif</div><div class='add'>+        entries[i].events = (rb_event_flag_t)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return entries;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static unsigned int *</div><div class='del'>-ibf_dump_insns_info_positions(struct ibf_dump *dump, const struct rb_iseq_constant_body *body)</div><div class='add'>+static ibf_offset_t</div><div class='add'>+ibf_dump_insns_info_positions(struct ibf_dump *dump, const unsigned int *positions, unsigned int size)</div><div class='ctx'> {</div><div class='del'>-    return IBF_W(body-&gt;insns_info.positions, unsigned int, body-&gt;insns_info.size);</div><div class='add'>+    ibf_offset_t offset = ibf_dump_pos(dump);</div><div class='add'>+</div><div class='add'>+    unsigned int last = 0;</div><div class='add'>+    unsigned int i;</div><div class='add'>+    for (i = 0; i &lt; size; i++) {</div><div class='add'>+        ibf_dump_write_small_value(dump, positions[i] - last);</div><div class='add'>+        last = positions[i];</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return offset;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static unsigned int *</div><div class='del'>-ibf_load_insns_info_positions(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='add'>+ibf_load_insns_info_positions(const struct ibf_load *load, ibf_offset_t positions_offset, unsigned int size)</div><div class='ctx'> {</div><div class='del'>-    return IBF_R(body-&gt;insns_info.positions, unsigned int, body-&gt;insns_info.size);</div><div class='add'>+    ibf_offset_t reading_pos = positions_offset;</div><div class='add'>+    unsigned int *positions = ALLOC_N(unsigned int, size);</div><div class='add'>+</div><div class='add'>+    unsigned int last = 0;</div><div class='add'>+    unsigned int i;</div><div class='add'>+    for (i = 0; i &lt; size; i++) {</div><div class='add'>+        positions[i] = last + (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+        last = positions[i];</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return positions;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static ID *</div><div class='add'>+static ibf_offset_t</div><div class='ctx'> ibf_dump_local_table(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     const int size = body-&gt;local_table_size;</div><div class='ctx'>     ID *table = ALLOCA_N(ID, size);</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;size; i++) {</div><div class='del'>-	table[i] = ibf_dump_id(dump, body-&gt;local_table[i]);</div><div class='add'>+        table[i] = ibf_dump_id(dump, body-&gt;local_table[i]);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return IBF_W(table, ID, size);</div><div class='add'>+    IBF_W_ALIGN(ID);</div><div class='add'>+    return ibf_dump_write(dump, table, sizeof(ID) * size);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static ID *</div><div class='del'>-ibf_load_local_table(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='add'>+ibf_load_local_table(const struct ibf_load *load, ibf_offset_t local_table_offset, int size)</div><div class='ctx'> {</div><div class='del'>-    const int size = body-&gt;local_table_size;</div><div class='del'>-</div><div class='ctx'>     if (size &gt; 0) {</div><div class='del'>-	ID *table = IBF_R(body-&gt;local_table, ID, size);</div><div class='del'>-	int i;</div><div class='add'>+        ID *table = IBF_R(local_table_offset, ID, size);</div><div class='add'>+        int i;</div><div class='ctx'> </div><div class='del'>-	for (i=0; i&lt;size; i++) {</div><div class='del'>-	    table[i] = ibf_load_id(load, table[i]);</div><div class='del'>-	}</div><div class='del'>-	return table;</div><div class='add'>+        for (i=0; i&lt;size; i++) {</div><div class='add'>+            table[i] = ibf_load_id(load, table[i]);</div><div class='add'>+        }</div><div class='add'>+        return table;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return NULL;</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static struct iseq_catch_table *</div><div class='add'>+static ibf_offset_t</div><div class='ctx'> ibf_dump_catch_table(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    const struct iseq_catch_table *table = iseq-&gt;body-&gt;catch_table;</div><div class='add'>+    const struct iseq_catch_table *table = ISEQ_BODY(iseq)-&gt;catch_table;</div><div class='ctx'> </div><div class='ctx'>     if (table) {</div><div class='del'>-	int byte_size = iseq_catch_table_bytes(iseq-&gt;body-&gt;catch_table-&gt;size);</div><div class='del'>-	struct iseq_catch_table *dump_table = (struct iseq_catch_table *)ALLOCA_N(char, byte_size);</div><div class='del'>-	unsigned int i;</div><div class='del'>-	dump_table-&gt;size = table-&gt;size;</div><div class='del'>-	for (i=0; i&lt;table-&gt;size; i++) {</div><div class='del'>-	    dump_table-&gt;entries[i] = table-&gt;entries[i];</div><div class='del'>-	    dump_table-&gt;entries[i].iseq = ibf_dump_iseq(dump, table-&gt;entries[i].iseq);</div><div class='del'>-	}</div><div class='del'>-	return (struct iseq_catch_table *)(VALUE)ibf_dump_write(dump, dump_table, byte_size);</div><div class='add'>+        int *iseq_indices = ALLOCA_N(int, table-&gt;size);</div><div class='add'>+        unsigned int i;</div><div class='add'>+</div><div class='add'>+        for (i=0; i&lt;table-&gt;size; i++) {</div><div class='add'>+            iseq_indices[i] = ibf_dump_iseq(dump, table-&gt;entries[i].iseq);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        const ibf_offset_t offset = ibf_dump_pos(dump);</div><div class='add'>+</div><div class='add'>+        for (i=0; i&lt;table-&gt;size; i++) {</div><div class='add'>+            ibf_dump_write_small_value(dump, iseq_indices[i]);</div><div class='add'>+            ibf_dump_write_small_value(dump, table-&gt;entries[i].type);</div><div class='add'>+            ibf_dump_write_small_value(dump, table-&gt;entries[i].start);</div><div class='add'>+            ibf_dump_write_small_value(dump, table-&gt;entries[i].end);</div><div class='add'>+            ibf_dump_write_small_value(dump, table-&gt;entries[i].cont);</div><div class='add'>+            ibf_dump_write_small_value(dump, table-&gt;entries[i].sp);</div><div class='add'>+        }</div><div class='add'>+        return offset;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return NULL;</div><div class='add'>+        return ibf_dump_pos(dump);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct iseq_catch_table *</div><div class='del'>-ibf_load_catch_table(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='del'>-{</div><div class='del'>-    if (body-&gt;catch_table) {</div><div class='del'>-	struct iseq_catch_table *table;</div><div class='del'>-	unsigned int i;</div><div class='del'>-	unsigned int size;</div><div class='del'>-	size = *(unsigned int *)(load-&gt;buff + IBF_OFFSET(body-&gt;catch_table));</div><div class='del'>-	table = ibf_load_alloc(load, IBF_OFFSET(body-&gt;catch_table), iseq_catch_table_bytes(size));</div><div class='del'>-	for (i=0; i&lt;size; i++) {</div><div class='del'>-	    table-&gt;entries[i].iseq = ibf_load_iseq(load, table-&gt;entries[i].iseq);</div><div class='del'>-	}</div><div class='del'>-	return table;</div><div class='add'>+ibf_load_catch_table(const struct ibf_load *load, ibf_offset_t catch_table_offset, unsigned int size)</div><div class='add'>+{</div><div class='add'>+    if (size) {</div><div class='add'>+        struct iseq_catch_table *table = ruby_xmalloc(iseq_catch_table_bytes(size));</div><div class='add'>+        table-&gt;size = size;</div><div class='add'>+</div><div class='add'>+        ibf_offset_t reading_pos = catch_table_offset;</div><div class='add'>+</div><div class='add'>+        unsigned int i;</div><div class='add'>+        for (i=0; i&lt;table-&gt;size; i++) {</div><div class='add'>+            int iseq_index = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+            table-&gt;entries[i].type = (enum rb_catch_type)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+            table-&gt;entries[i].start = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+            table-&gt;entries[i].end = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+            table-&gt;entries[i].cont = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+            table-&gt;entries[i].sp = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+</div><div class='add'>+            table-&gt;entries[i].iseq = ibf_load_iseq(load, (const rb_iseq_t *)(VALUE)iseq_index);</div><div class='add'>+        }</div><div class='add'>+        return table;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return NULL;</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static struct rb_call_info *</div><div class='add'>+static ibf_offset_t</div><div class='ctx'> ibf_dump_ci_entries(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     const unsigned int ci_size = body-&gt;ci_size;</div><div class='del'>-    const unsigned int ci_kw_size = body-&gt;ci_kw_size;</div><div class='del'>-    const struct rb_call_info *ci_entries = body-&gt;ci_entries;</div><div class='del'>-    struct rb_call_info *dump_ci_entries;</div><div class='del'>-    struct rb_call_info_with_kwarg *dump_ci_kw_entries;</div><div class='del'>-    int byte_size = ci_size * sizeof(struct rb_call_info) +</div><div class='del'>-                    ci_kw_size * sizeof(struct rb_call_info_with_kwarg);</div><div class='del'>-    unsigned int i;</div><div class='add'>+    const struct rb_call_data *cds = body-&gt;call_data;</div><div class='add'>+</div><div class='add'>+    ibf_offset_t offset = ibf_dump_pos(dump);</div><div class='ctx'> </div><div class='del'>-    dump_ci_entries = (struct rb_call_info *)ALLOCA_N(char, byte_size);</div><div class='del'>-    dump_ci_kw_entries = (struct rb_call_info_with_kwarg *)&amp;dump_ci_entries[ci_size];</div><div class='del'>-    memcpy(dump_ci_entries, ci_entries, byte_size);</div><div class='add'>+    unsigned int i;</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;ci_size; i++) { /* conver ID for each ci */</div><div class='del'>-	dump_ci_entries[i].mid = ibf_dump_id(dump, dump_ci_entries[i].mid);</div><div class='add'>+    for (i = 0; i &lt; ci_size; i++) {</div><div class='add'>+        const struct rb_callinfo *ci = cds[i].ci;</div><div class='add'>+        if (ci != NULL) {</div><div class='add'>+            ibf_dump_write_small_value(dump, ibf_dump_id(dump, vm_ci_mid(ci)));</div><div class='add'>+            ibf_dump_write_small_value(dump, vm_ci_flag(ci));</div><div class='add'>+            ibf_dump_write_small_value(dump, vm_ci_argc(ci));</div><div class='add'>+</div><div class='add'>+            const struct rb_callinfo_kwarg *kwarg = vm_ci_kwarg(ci);</div><div class='add'>+            if (kwarg) {</div><div class='add'>+                int len = kwarg-&gt;keyword_len;</div><div class='add'>+                ibf_dump_write_small_value(dump, len);</div><div class='add'>+                for (int j=0; j&lt;len; j++) {</div><div class='add'>+                    VALUE keyword = ibf_dump_object(dump, kwarg-&gt;keywords[j]);</div><div class='add'>+                    ibf_dump_write_small_value(dump, keyword);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ibf_dump_write_small_value(dump, 0);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            // TODO: truncate NULL ci from call_data.</div><div class='add'>+            ibf_dump_write_small_value(dump, (VALUE)-1);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    for (i=0; i&lt;ci_kw_size; i++) {</div><div class='del'>-	const struct rb_call_info_kw_arg *kw_arg = dump_ci_kw_entries[i].kw_arg;</div><div class='del'>-	int j;</div><div class='del'>-	VALUE *keywords = ALLOCA_N(VALUE, kw_arg-&gt;keyword_len);</div><div class='del'>-	for (j=0; j&lt;kw_arg-&gt;keyword_len; j++) {</div><div class='del'>-	    keywords[j] = (VALUE)ibf_dump_object(dump, kw_arg-&gt;keywords[j]); /* kw_arg-&gt;keywords[n] is Symbol */</div><div class='del'>-	}</div><div class='del'>-	dump_ci_kw_entries[i].kw_arg = (struct rb_call_info_kw_arg *)(VALUE)ibf_dump_write(dump, &amp;kw_arg-&gt;keyword_len, sizeof(int));</div><div class='del'>-	ibf_dump_write(dump, keywords, sizeof(VALUE) * kw_arg-&gt;keyword_len);</div><div class='ctx'> </div><div class='del'>-	dump_ci_kw_entries[i].ci.mid = ibf_dump_id(dump, dump_ci_kw_entries[i].ci.mid);</div><div class='add'>+    return offset;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+dump_outer_variable(ID id, VALUE val, void *dump)</div><div class='add'>+{</div><div class='add'>+    ibf_dump_write_small_value(dump, ibf_dump_id(dump, id));</div><div class='add'>+    ibf_dump_write_small_value(dump, val);</div><div class='add'>+</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ibf_offset_t</div><div class='add'>+ibf_dump_outer_variables(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    struct rb_id_table * ovs = ISEQ_BODY(iseq)-&gt;outer_variables;</div><div class='add'>+</div><div class='add'>+    ibf_offset_t offset = ibf_dump_pos(dump);</div><div class='add'>+</div><div class='add'>+    if (ovs) {</div><div class='add'>+        ibf_dump_write_small_value(dump, (VALUE)rb_id_table_size(ovs));</div><div class='add'>+        rb_id_table_foreach(ovs, dump_outer_variable, (void *)dump);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ibf_dump_write_small_value(dump, (VALUE)0);</div><div class='ctx'>     }</div><div class='del'>-    return (struct rb_call_info *)(VALUE)ibf_dump_write(dump, dump_ci_entries, byte_size);</div><div class='add'>+</div><div class='add'>+    return offset;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static struct rb_call_info *</div><div class='del'>-ibf_load_ci_entries(const struct ibf_load *load, const struct rb_iseq_constant_body *body)</div><div class='add'>+/* note that we dump out rb_call_info but load back rb_call_data */</div><div class='add'>+static void</div><div class='add'>+ibf_load_ci_entries(const struct ibf_load *load,</div><div class='add'>+                    ibf_offset_t ci_entries_offset,</div><div class='add'>+                    unsigned int ci_size,</div><div class='add'>+                    struct rb_call_data **cd_ptr)</div><div class='ctx'> {</div><div class='add'>+    ibf_offset_t reading_pos = ci_entries_offset;</div><div class='add'>+</div><div class='ctx'>     unsigned int i;</div><div class='del'>-    const unsigned int ci_size = body-&gt;ci_size;</div><div class='del'>-    const unsigned int ci_kw_size = body-&gt;ci_kw_size;</div><div class='del'>-    struct rb_call_info *ci_entries = ibf_load_alloc(load, IBF_OFFSET(body-&gt;ci_entries),</div><div class='del'>-						     sizeof(struct rb_call_info) * body-&gt;ci_size +</div><div class='del'>-						     sizeof(struct rb_call_info_with_kwarg) * body-&gt;ci_kw_size);</div><div class='del'>-    struct rb_call_info_with_kwarg *ci_kw_entries = (struct rb_call_info_with_kwarg *)&amp;ci_entries[ci_size];</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;ci_size; i++) {</div><div class='del'>-	ci_entries[i].mid = ibf_load_id(load, ci_entries[i].mid);</div><div class='add'>+    struct rb_call_data *cds = ZALLOC_N(struct rb_call_data, ci_size);</div><div class='add'>+    *cd_ptr = cds;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; ci_size; i++) {</div><div class='add'>+        VALUE mid_index = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+        if (mid_index != (VALUE)-1) {</div><div class='add'>+            ID mid = ibf_load_id(load, mid_index);</div><div class='add'>+            unsigned int flag = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+            unsigned int argc = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+</div><div class='add'>+            struct rb_callinfo_kwarg *kwarg = NULL;</div><div class='add'>+            int kwlen = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+            if (kwlen &gt; 0) {</div><div class='add'>+                kwarg = rb_xmalloc_mul_add(kwlen, sizeof(VALUE), sizeof(struct rb_callinfo_kwarg));</div><div class='add'>+                kwarg-&gt;keyword_len = kwlen;</div><div class='add'>+                for (int j=0; j&lt;kwlen; j++) {</div><div class='add'>+                    VALUE keyword = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+                    kwarg-&gt;keywords[j] = ibf_load_object(load, keyword);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            cds[i].ci = vm_ci_new(mid, flag, argc, kwarg);</div><div class='add'>+            RB_OBJ_WRITTEN(load-&gt;iseq, Qundef, cds[i].ci);</div><div class='add'>+            cds[i].cc = vm_cc_empty();</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            // NULL ci</div><div class='add'>+            cds[i].ci = NULL;</div><div class='add'>+            cds[i].cc = NULL;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct rb_id_table *</div><div class='add'>+ibf_load_outer_variables(const struct ibf_load * load, ibf_offset_t outer_variables_offset)</div><div class='add'>+{</div><div class='add'>+    ibf_offset_t reading_pos = outer_variables_offset;</div><div class='add'>+</div><div class='add'>+    struct rb_id_table *tbl = NULL;</div><div class='add'>+</div><div class='add'>+    size_t table_size = (size_t)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+</div><div class='add'>+    if (table_size &gt; 0) {</div><div class='add'>+        tbl = rb_id_table_create(table_size);</div><div class='ctx'>     }</div><div class='del'>-    for (i=0; i&lt;ci_kw_size; i++) {</div><div class='del'>-	int j;</div><div class='del'>-	ibf_offset_t kw_arg_offset = IBF_OFFSET(ci_kw_entries[i].kw_arg);</div><div class='del'>-	const int keyword_len = *(int *)(load-&gt;buff + kw_arg_offset);</div><div class='del'>-	const VALUE *keywords = (VALUE *)(load-&gt;buff + kw_arg_offset + sizeof(int));</div><div class='del'>-	struct rb_call_info_kw_arg *kw_arg = ruby_xmalloc(sizeof(struct rb_call_info_kw_arg) + sizeof(VALUE) * (keyword_len - 1));</div><div class='del'>-	kw_arg-&gt;keyword_len = keyword_len;</div><div class='del'>-	for (j=0; j&lt;kw_arg-&gt;keyword_len; j++) {</div><div class='del'>-	    kw_arg-&gt;keywords[j] = (VALUE)ibf_load_object(load, keywords[j]);</div><div class='del'>-	}</div><div class='del'>-	ci_kw_entries[i].kw_arg = kw_arg;</div><div class='del'>-	ci_kw_entries[i].ci.mid = ibf_load_id(load, ci_kw_entries[i].ci.mid);</div><div class='add'>+</div><div class='add'>+    for (size_t i = 0; i &lt; table_size; i++) {</div><div class='add'>+        ID key = ibf_load_id(load, (ID)ibf_load_small_value(load, &amp;reading_pos));</div><div class='add'>+        VALUE value = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+        if (!key) key = rb_make_temporary_id(i);</div><div class='add'>+        rb_id_table_insert(tbl, key, value);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return ci_entries;</div><div class='add'>+    return tbl;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static ibf_offset_t</div><div class='ctx'> ibf_dump_iseq_each(struct ibf_dump *dump, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    struct rb_iseq_constant_body dump_body;</div><div class='del'>-#if VM_INSN_INFO_TABLE_IMPL == 2</div><div class='add'>+    assert(dump-&gt;current_buffer == &amp;dump-&gt;global_buffer);</div><div class='add'>+</div><div class='ctx'>     unsigned int *positions;</div><div class='del'>-#endif</div><div class='del'>-    dump_body = *iseq-&gt;body;</div><div class='ctx'> </div><div class='del'>-    dump_body.location.pathobj = ibf_dump_object(dump, dump_body.location.pathobj); /* TODO: freeze */</div><div class='del'>-    dump_body.location.base_label = ibf_dump_object(dump, dump_body.location.base_label);</div><div class='del'>-    dump_body.location.label = ibf_dump_object(dump, dump_body.location.label);</div><div class='add'>+    const struct rb_iseq_constant_body *body = ISEQ_BODY(iseq);</div><div class='ctx'> </div><div class='del'>-    dump_body.iseq_encoded =         ibf_dump_code(dump, iseq);</div><div class='del'>-    dump_body.param.opt_table =      ibf_dump_param_opt_table(dump, iseq);</div><div class='del'>-    dump_body.param.keyword =        ibf_dump_param_keyword(dump, iseq);</div><div class='del'>-    dump_body.insns_info.body =      ibf_dump_insns_info_body(dump, iseq);</div><div class='del'>-#if VM_INSN_INFO_TABLE_IMPL == 2</div><div class='del'>-    positions = rb_iseq_insns_info_decode_positions(&amp;dump_body);</div><div class='del'>-    dump_body.insns_info.positions = positions;</div><div class='del'>-    dump_body.insns_info.succ_index_table = 0;</div><div class='add'>+    const VALUE location_pathobj_index = ibf_dump_object(dump, body-&gt;location.pathobj); /* TODO: freeze */</div><div class='add'>+    const VALUE location_base_label_index = ibf_dump_object(dump, body-&gt;location.base_label);</div><div class='add'>+    const VALUE location_label_index = ibf_dump_object(dump, body-&gt;location.label);</div><div class='add'>+</div><div class='add'>+#if IBF_ISEQ_ENABLE_LOCAL_BUFFER</div><div class='add'>+    ibf_offset_t iseq_start = ibf_dump_pos(dump);</div><div class='add'>+</div><div class='add'>+    struct ibf_dump_buffer *saved_buffer = dump-&gt;current_buffer;</div><div class='add'>+    struct ibf_dump_buffer buffer;</div><div class='add'>+    buffer.str = rb_str_new(0, 0);</div><div class='add'>+    buffer.obj_table = ibf_dump_object_table_new();</div><div class='add'>+    dump-&gt;current_buffer = &amp;buffer;</div><div class='ctx'> #endif</div><div class='del'>-    dump_body.insns_info.positions = ibf_dump_insns_info_positions(dump, &amp;dump_body);</div><div class='del'>-#if VM_INSN_INFO_TABLE_IMPL == 2</div><div class='add'>+</div><div class='add'>+    const ibf_offset_t bytecode_offset =        ibf_dump_code(dump, iseq);</div><div class='add'>+    const ibf_offset_t bytecode_size =          ibf_dump_pos(dump) - bytecode_offset;</div><div class='add'>+    const ibf_offset_t param_opt_table_offset = ibf_dump_param_opt_table(dump, iseq);</div><div class='add'>+    const ibf_offset_t param_keyword_offset =   ibf_dump_param_keyword(dump, iseq);</div><div class='add'>+    const ibf_offset_t insns_info_body_offset = ibf_dump_insns_info_body(dump, iseq);</div><div class='add'>+</div><div class='add'>+    positions = rb_iseq_insns_info_decode_positions(ISEQ_BODY(iseq));</div><div class='add'>+    const ibf_offset_t insns_info_positions_offset = ibf_dump_insns_info_positions(dump, positions, body-&gt;insns_info.size);</div><div class='ctx'>     ruby_xfree(positions);</div><div class='add'>+</div><div class='add'>+    const ibf_offset_t local_table_offset = ibf_dump_local_table(dump, iseq);</div><div class='add'>+    const unsigned int catch_table_size =   body-&gt;catch_table ? body-&gt;catch_table-&gt;size : 0;</div><div class='add'>+    const ibf_offset_t catch_table_offset = ibf_dump_catch_table(dump, iseq);</div><div class='add'>+    const int parent_iseq_index =           ibf_dump_iseq(dump, ISEQ_BODY(iseq)-&gt;parent_iseq);</div><div class='add'>+    const int local_iseq_index =            ibf_dump_iseq(dump, ISEQ_BODY(iseq)-&gt;local_iseq);</div><div class='add'>+    const int mandatory_only_iseq_index =   ibf_dump_iseq(dump, ISEQ_BODY(iseq)-&gt;mandatory_only_iseq);</div><div class='add'>+    const ibf_offset_t ci_entries_offset =  ibf_dump_ci_entries(dump, iseq);</div><div class='add'>+    const ibf_offset_t outer_variables_offset = ibf_dump_outer_variables(dump, iseq);</div><div class='add'>+</div><div class='add'>+#if IBF_ISEQ_ENABLE_LOCAL_BUFFER</div><div class='add'>+    ibf_offset_t local_obj_list_offset;</div><div class='add'>+    unsigned int local_obj_list_size;</div><div class='add'>+</div><div class='add'>+    ibf_dump_object_list(dump, &amp;local_obj_list_offset, &amp;local_obj_list_size);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    ibf_offset_t body_offset = ibf_dump_pos(dump);</div><div class='add'>+</div><div class='add'>+    /* dump the constant body */</div><div class='add'>+    unsigned int param_flags =</div><div class='add'>+        (body-&gt;param.flags.has_lead         &lt;&lt; 0) |</div><div class='add'>+        (body-&gt;param.flags.has_opt          &lt;&lt; 1) |</div><div class='add'>+        (body-&gt;param.flags.has_rest         &lt;&lt; 2) |</div><div class='add'>+        (body-&gt;param.flags.has_post         &lt;&lt; 3) |</div><div class='add'>+        (body-&gt;param.flags.has_kw           &lt;&lt; 4) |</div><div class='add'>+        (body-&gt;param.flags.has_kwrest       &lt;&lt; 5) |</div><div class='add'>+        (body-&gt;param.flags.has_block        &lt;&lt; 6) |</div><div class='add'>+        (body-&gt;param.flags.ambiguous_param0 &lt;&lt; 7) |</div><div class='add'>+        (body-&gt;param.flags.accepts_no_kwarg &lt;&lt; 8) |</div><div class='add'>+        (body-&gt;param.flags.ruby2_keywords   &lt;&lt; 9);</div><div class='add'>+</div><div class='add'>+#if IBF_ISEQ_ENABLE_LOCAL_BUFFER</div><div class='add'>+#  define IBF_BODY_OFFSET(x) (x)</div><div class='add'>+#else</div><div class='add'>+#  define IBF_BODY_OFFSET(x) (body_offset - (x))</div><div class='ctx'> #endif</div><div class='del'>-    dump_body.local_table =          ibf_dump_local_table(dump, iseq);</div><div class='del'>-    dump_body.catch_table =          ibf_dump_catch_table(dump, iseq);</div><div class='del'>-    dump_body.parent_iseq =          ibf_dump_iseq(dump, iseq-&gt;body-&gt;parent_iseq);</div><div class='del'>-    dump_body.local_iseq =           ibf_dump_iseq(dump, iseq-&gt;body-&gt;local_iseq);</div><div class='del'>-    dump_body.is_entries =           NULL;</div><div class='del'>-    dump_body.ci_entries =           ibf_dump_ci_entries(dump, iseq);</div><div class='del'>-    dump_body.cc_entries =           NULL;</div><div class='del'>-    dump_body.variable.coverage      = Qnil;</div><div class='del'>-    dump_body.variable.original_iseq = NULL;</div><div class='ctx'> </div><div class='del'>-    IBF_W_ALIGN(struct rb_iseq_constant_body);</div><div class='del'>-    return IBF_WV(dump_body);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;type);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;iseq_size);</div><div class='add'>+    ibf_dump_write_small_value(dump, IBF_BODY_OFFSET(bytecode_offset));</div><div class='add'>+    ibf_dump_write_small_value(dump, bytecode_size);</div><div class='add'>+    ibf_dump_write_small_value(dump, param_flags);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;param.size);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;param.lead_num);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;param.opt_num);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;param.rest_start);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;param.post_start);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;param.post_num);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;param.block_start);</div><div class='add'>+    ibf_dump_write_small_value(dump, IBF_BODY_OFFSET(param_opt_table_offset));</div><div class='add'>+    ibf_dump_write_small_value(dump, param_keyword_offset);</div><div class='add'>+    ibf_dump_write_small_value(dump, location_pathobj_index);</div><div class='add'>+    ibf_dump_write_small_value(dump, location_base_label_index);</div><div class='add'>+    ibf_dump_write_small_value(dump, location_label_index);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;location.first_lineno);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;location.node_id);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;location.code_location.beg_pos.lineno);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;location.code_location.beg_pos.column);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;location.code_location.end_pos.lineno);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;location.code_location.end_pos.column);</div><div class='add'>+    ibf_dump_write_small_value(dump, IBF_BODY_OFFSET(insns_info_body_offset));</div><div class='add'>+    ibf_dump_write_small_value(dump, IBF_BODY_OFFSET(insns_info_positions_offset));</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;insns_info.size);</div><div class='add'>+    ibf_dump_write_small_value(dump, IBF_BODY_OFFSET(local_table_offset));</div><div class='add'>+    ibf_dump_write_small_value(dump, catch_table_size);</div><div class='add'>+    ibf_dump_write_small_value(dump, IBF_BODY_OFFSET(catch_table_offset));</div><div class='add'>+    ibf_dump_write_small_value(dump, parent_iseq_index);</div><div class='add'>+    ibf_dump_write_small_value(dump, local_iseq_index);</div><div class='add'>+    ibf_dump_write_small_value(dump, mandatory_only_iseq_index);</div><div class='add'>+    ibf_dump_write_small_value(dump, IBF_BODY_OFFSET(ci_entries_offset));</div><div class='add'>+    ibf_dump_write_small_value(dump, IBF_BODY_OFFSET(outer_variables_offset));</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;variable.flip_count);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;local_table_size);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;ivc_size);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;icvarc_size);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;ise_size);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;ic_size);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;ci_size);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;stack_max);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;catch_except_p);</div><div class='add'>+    ibf_dump_write_small_value(dump, body-&gt;builtin_inline_p);</div><div class='add'>+</div><div class='add'>+#undef IBF_BODY_OFFSET</div><div class='add'>+</div><div class='add'>+#if IBF_ISEQ_ENABLE_LOCAL_BUFFER</div><div class='add'>+    ibf_offset_t iseq_length_bytes = ibf_dump_pos(dump);</div><div class='add'>+</div><div class='add'>+    dump-&gt;current_buffer = saved_buffer;</div><div class='add'>+    ibf_dump_write(dump, RSTRING_PTR(buffer.str), iseq_length_bytes);</div><div class='add'>+</div><div class='add'>+    ibf_offset_t offset = ibf_dump_pos(dump);</div><div class='add'>+    ibf_dump_write_small_value(dump, iseq_start);</div><div class='add'>+    ibf_dump_write_small_value(dump, iseq_length_bytes);</div><div class='add'>+    ibf_dump_write_small_value(dump, body_offset);</div><div class='add'>+</div><div class='add'>+    ibf_dump_write_small_value(dump, local_obj_list_offset);</div><div class='add'>+    ibf_dump_write_small_value(dump, local_obj_list_size);</div><div class='add'>+</div><div class='add'>+    st_free_table(buffer.obj_table); // TODO: this leaks in case of exception</div><div class='add'>+</div><div class='add'>+    return offset;</div><div class='add'>+#else</div><div class='add'>+    return body_offset;</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -9084,143 +12153,244 @@ ibf_load_location_str(const struct ibf_load *load, VALUE str_index)</div><div class='ctx'> {</div><div class='ctx'>     VALUE str = ibf_load_object(load, str_index);</div><div class='ctx'>     if (str != Qnil) {</div><div class='del'>-	str = rb_fstring(str);</div><div class='add'>+        str = rb_fstring(str);</div><div class='ctx'>     }</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-ibf_load_iseq_each(const struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t offset)</div><div class='add'>+ibf_load_iseq_each(struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t offset)</div><div class='ctx'> {</div><div class='del'>-    struct rb_iseq_constant_body *load_body = iseq-&gt;body = ZALLOC(struct rb_iseq_constant_body);</div><div class='del'>-    const struct rb_iseq_constant_body *body = (struct rb_iseq_constant_body *)(load-&gt;buff + offset);</div><div class='add'>+    struct rb_iseq_constant_body *load_body = ISEQ_BODY(iseq) = rb_iseq_constant_body_alloc();</div><div class='add'>+</div><div class='add'>+    ibf_offset_t reading_pos = offset;</div><div class='add'>+</div><div class='add'>+#if IBF_ISEQ_ENABLE_LOCAL_BUFFER</div><div class='add'>+    struct ibf_load_buffer *saved_buffer = load-&gt;current_buffer;</div><div class='add'>+    load-&gt;current_buffer = &amp;load-&gt;global_buffer;</div><div class='add'>+</div><div class='add'>+    const ibf_offset_t iseq_start = (ibf_offset_t)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const ibf_offset_t iseq_length_bytes = (ibf_offset_t)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const ibf_offset_t body_offset = (ibf_offset_t)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+</div><div class='add'>+    struct ibf_load_buffer buffer;</div><div class='add'>+    buffer.buff = load-&gt;global_buffer.buff + iseq_start;</div><div class='add'>+    buffer.size = iseq_length_bytes;</div><div class='add'>+    buffer.obj_list_offset = (ibf_offset_t)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    buffer.obj_list_size = (ibf_offset_t)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    buffer.obj_list = pinned_list_new(buffer.obj_list_size);</div><div class='add'>+</div><div class='add'>+    load-&gt;current_buffer = &amp;buffer;</div><div class='add'>+    reading_pos = body_offset;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if IBF_ISEQ_ENABLE_LOCAL_BUFFER</div><div class='add'>+#  define IBF_BODY_OFFSET(x) (x)</div><div class='add'>+#else</div><div class='add'>+#  define IBF_BODY_OFFSET(x) (offset - (x))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    const unsigned int type = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const unsigned int iseq_size = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const ibf_offset_t bytecode_offset = (ibf_offset_t)IBF_BODY_OFFSET(ibf_load_small_value(load, &amp;reading_pos));</div><div class='add'>+    const ibf_offset_t bytecode_size = (ibf_offset_t)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const unsigned int param_flags = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const unsigned int param_size = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int param_lead_num = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int param_opt_num = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int param_rest_start = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int param_post_start = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int param_post_num = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int param_block_start = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const ibf_offset_t param_opt_table_offset = (ibf_offset_t)IBF_BODY_OFFSET(ibf_load_small_value(load, &amp;reading_pos));</div><div class='add'>+    const ibf_offset_t param_keyword_offset = (ibf_offset_t)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const VALUE location_pathobj_index = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const VALUE location_base_label_index = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const VALUE location_label_index = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int location_first_lineno = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int location_node_id = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int location_code_location_beg_pos_lineno = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int location_code_location_beg_pos_column = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int location_code_location_end_pos_lineno = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int location_code_location_end_pos_column = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const ibf_offset_t insns_info_body_offset = (ibf_offset_t)IBF_BODY_OFFSET(ibf_load_small_value(load, &amp;reading_pos));</div><div class='add'>+    const ibf_offset_t insns_info_positions_offset = (ibf_offset_t)IBF_BODY_OFFSET(ibf_load_small_value(load, &amp;reading_pos));</div><div class='add'>+    const unsigned int insns_info_size = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const ibf_offset_t local_table_offset = (ibf_offset_t)IBF_BODY_OFFSET(ibf_load_small_value(load, &amp;reading_pos));</div><div class='add'>+    const unsigned int catch_table_size = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const ibf_offset_t catch_table_offset = (ibf_offset_t)IBF_BODY_OFFSET(ibf_load_small_value(load, &amp;reading_pos));</div><div class='add'>+    const int parent_iseq_index = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int local_iseq_index = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const int mandatory_only_iseq_index = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const ibf_offset_t ci_entries_offset = (ibf_offset_t)IBF_BODY_OFFSET(ibf_load_small_value(load, &amp;reading_pos));</div><div class='add'>+    const ibf_offset_t outer_variables_offset = (ibf_offset_t)IBF_BODY_OFFSET(ibf_load_small_value(load, &amp;reading_pos));</div><div class='add'>+    const rb_snum_t variable_flip_count = (rb_snum_t)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const unsigned int local_table_size = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+</div><div class='add'>+    const unsigned int ivc_size = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const unsigned int icvarc_size = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const unsigned int ise_size = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const unsigned int ic_size = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+</div><div class='add'>+    const unsigned int ci_size = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const unsigned int stack_max = (unsigned int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const char catch_except_p = (char)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const bool builtin_inline_p = (bool)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+</div><div class='add'>+    // setup fname and dummy frame</div><div class='add'>+    VALUE path = ibf_load_object(load, location_pathobj_index);</div><div class='add'>+    {</div><div class='add'>+        VALUE realpath = Qnil;</div><div class='add'>+</div><div class='add'>+        if (RB_TYPE_P(path, T_STRING)) {</div><div class='add'>+            realpath = path = rb_fstring(path);</div><div class='add'>+        }</div><div class='add'>+        else if (RB_TYPE_P(path, T_ARRAY)) {</div><div class='add'>+            VALUE pathobj = path;</div><div class='add'>+            if (RARRAY_LEN(pathobj) != 2) {</div><div class='add'>+                rb_raise(rb_eRuntimeError, "path object size mismatch");</div><div class='add'>+            }</div><div class='add'>+            path = rb_fstring(RARRAY_AREF(pathobj, 0));</div><div class='add'>+            realpath = RARRAY_AREF(pathobj, 1);</div><div class='add'>+            if (!NIL_P(realpath)) {</div><div class='add'>+                if (!RB_TYPE_P(realpath, T_STRING)) {</div><div class='add'>+                    rb_raise(rb_eArgError, "unexpected realpath %"PRIxVALUE</div><div class='add'>+                             "(%x), path=%+"PRIsVALUE,</div><div class='add'>+                             realpath, TYPE(realpath), path);</div><div class='add'>+                }</div><div class='add'>+                realpath = rb_fstring(realpath);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_raise(rb_eRuntimeError, "unexpected path object");</div><div class='add'>+        }</div><div class='add'>+        rb_iseq_pathobj_set(iseq, path, realpath);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    /* memcpy(load_body, load-&gt;buff + offset, sizeof(*load_body)); */</div><div class='del'>-    load_body-&gt;type = body-&gt;type;</div><div class='del'>-    load_body-&gt;stack_max = body-&gt;stack_max;</div><div class='del'>-    load_body-&gt;param = body-&gt;param;</div><div class='add'>+    // push dummy frame</div><div class='add'>+    rb_execution_context_t *ec = GET_EC();</div><div class='add'>+    VALUE dummy_frame = rb_vm_push_frame_fname(ec, path);</div><div class='add'>+</div><div class='add'>+#undef IBF_BODY_OFFSET</div><div class='add'>+</div><div class='add'>+    load_body-&gt;type = type;</div><div class='add'>+    load_body-&gt;stack_max = stack_max;</div><div class='add'>+    load_body-&gt;param.flags.has_lead = (param_flags &gt;&gt; 0) &amp; 1;</div><div class='add'>+    load_body-&gt;param.flags.has_opt = (param_flags &gt;&gt; 1) &amp; 1;</div><div class='add'>+    load_body-&gt;param.flags.has_rest = (param_flags &gt;&gt; 2) &amp; 1;</div><div class='add'>+    load_body-&gt;param.flags.has_post = (param_flags &gt;&gt; 3) &amp; 1;</div><div class='ctx'>     load_body-&gt;param.flags.has_kw = FALSE;</div><div class='del'>-    load_body-&gt;local_table_size = body-&gt;local_table_size;</div><div class='del'>-    load_body-&gt;is_size = body-&gt;is_size;</div><div class='del'>-    load_body-&gt;ci_size = body-&gt;ci_size;</div><div class='del'>-    load_body-&gt;ci_kw_size = body-&gt;ci_kw_size;</div><div class='del'>-    load_body-&gt;insns_info.size = body-&gt;insns_info.size;</div><div class='add'>+    load_body-&gt;param.flags.has_kwrest = (param_flags &gt;&gt; 5) &amp; 1;</div><div class='add'>+    load_body-&gt;param.flags.has_block = (param_flags &gt;&gt; 6) &amp; 1;</div><div class='add'>+    load_body-&gt;param.flags.ambiguous_param0 = (param_flags &gt;&gt; 7) &amp; 1;</div><div class='add'>+    load_body-&gt;param.flags.accepts_no_kwarg = (param_flags &gt;&gt; 8) &amp; 1;</div><div class='add'>+    load_body-&gt;param.flags.ruby2_keywords = (param_flags &gt;&gt; 9) &amp; 1;</div><div class='add'>+    load_body-&gt;param.size = param_size;</div><div class='add'>+    load_body-&gt;param.lead_num = param_lead_num;</div><div class='add'>+    load_body-&gt;param.opt_num = param_opt_num;</div><div class='add'>+    load_body-&gt;param.rest_start = param_rest_start;</div><div class='add'>+    load_body-&gt;param.post_start = param_post_start;</div><div class='add'>+    load_body-&gt;param.post_num = param_post_num;</div><div class='add'>+    load_body-&gt;param.block_start = param_block_start;</div><div class='add'>+    load_body-&gt;local_table_size = local_table_size;</div><div class='add'>+    load_body-&gt;ci_size = ci_size;</div><div class='add'>+    load_body-&gt;insns_info.size = insns_info_size;</div><div class='ctx'> </div><div class='ctx'>     ISEQ_COVERAGE_SET(iseq, Qnil);</div><div class='ctx'>     ISEQ_ORIGINAL_ISEQ_CLEAR(iseq);</div><div class='del'>-    iseq-&gt;body-&gt;variable.flip_count = body-&gt;variable.flip_count;</div><div class='del'>-</div><div class='del'>-    {</div><div class='del'>-	VALUE realpath = Qnil, path = ibf_load_object(load, body-&gt;location.pathobj);</div><div class='del'>-	if (RB_TYPE_P(path, T_STRING)) {</div><div class='del'>-	    realpath = path = rb_fstring(path);</div><div class='del'>-	}</div><div class='del'>-	else if (RB_TYPE_P(path, T_ARRAY)) {</div><div class='del'>-	    VALUE pathobj = path;</div><div class='del'>-	    if (RARRAY_LEN(pathobj) != 2) {</div><div class='del'>-		rb_raise(rb_eRuntimeError, "path object size mismatch");</div><div class='del'>-	    }</div><div class='del'>-	    path = rb_fstring(RARRAY_AREF(pathobj, 0));</div><div class='del'>-	    realpath = RARRAY_AREF(pathobj, 1);</div><div class='del'>-	    if (!NIL_P(realpath)) {</div><div class='del'>-		if (!RB_TYPE_P(realpath, T_STRING)) {</div><div class='del'>-		    rb_raise(rb_eArgError, "unexpected realpath %"PRIxVALUE</div><div class='del'>-			     "(%x), path=%+"PRIsVALUE,</div><div class='del'>-			     realpath, TYPE(realpath), path);</div><div class='del'>-		}</div><div class='del'>-		realpath = rb_fstring(realpath);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_raise(rb_eRuntimeError, "unexpected path object");</div><div class='del'>-	}</div><div class='del'>-	rb_iseq_pathobj_set(iseq, path, realpath);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    RB_OBJ_WRITE(iseq, &amp;load_body-&gt;location.base_label,    ibf_load_location_str(load, body-&gt;location.base_label));</div><div class='del'>-    RB_OBJ_WRITE(iseq, &amp;load_body-&gt;location.label,         ibf_load_location_str(load, body-&gt;location.label));</div><div class='del'>-    load_body-&gt;location.first_lineno = body-&gt;location.first_lineno;</div><div class='del'>-    load_body-&gt;location.node_id = body-&gt;location.node_id;</div><div class='del'>-    load_body-&gt;location.code_location = body-&gt;location.code_location;</div><div class='del'>-    load_body-&gt;catch_except_p = body-&gt;catch_except_p;</div><div class='del'>-</div><div class='del'>-    load_body-&gt;is_entries           = ZALLOC_N(union iseq_inline_storage_entry, body-&gt;is_size);</div><div class='del'>-    load_body-&gt;ci_entries           = ibf_load_ci_entries(load, body);</div><div class='del'>-    load_body-&gt;cc_entries           = ZALLOC_N(struct rb_call_cache, body-&gt;ci_size + body-&gt;ci_kw_size);</div><div class='del'>-    load_body-&gt;param.opt_table      = ibf_load_param_opt_table(load, body);</div><div class='del'>-    load_body-&gt;param.keyword        = ibf_load_param_keyword(load, body);</div><div class='del'>-    load_body-&gt;param.flags.has_kw   = body-&gt;param.flags.has_kw;</div><div class='del'>-    load_body-&gt;insns_info.body      = ibf_load_insns_info_body(load, body);</div><div class='del'>-    load_body-&gt;insns_info.positions = ibf_load_insns_info_positions(load, body);</div><div class='del'>-    load_body-&gt;local_table          = ibf_load_local_table(load, body);</div><div class='del'>-    load_body-&gt;catch_table          = ibf_load_catch_table(load, body);</div><div class='del'>-    load_body-&gt;parent_iseq          = ibf_load_iseq(load, body-&gt;parent_iseq);</div><div class='del'>-    load_body-&gt;local_iseq           = ibf_load_iseq(load, body-&gt;local_iseq);</div><div class='del'>-</div><div class='del'>-    ibf_load_code(load, iseq, body);</div><div class='add'>+    load_body-&gt;variable.flip_count = variable_flip_count;</div><div class='add'>+    load_body-&gt;variable.script_lines = Qnil;</div><div class='add'>+</div><div class='add'>+    load_body-&gt;location.first_lineno = location_first_lineno;</div><div class='add'>+    load_body-&gt;location.node_id = location_node_id;</div><div class='add'>+    load_body-&gt;location.code_location.beg_pos.lineno = location_code_location_beg_pos_lineno;</div><div class='add'>+    load_body-&gt;location.code_location.beg_pos.column = location_code_location_beg_pos_column;</div><div class='add'>+    load_body-&gt;location.code_location.end_pos.lineno = location_code_location_end_pos_lineno;</div><div class='add'>+    load_body-&gt;location.code_location.end_pos.column = location_code_location_end_pos_column;</div><div class='add'>+    load_body-&gt;catch_except_p = catch_except_p;</div><div class='add'>+    load_body-&gt;builtin_inline_p = builtin_inline_p;</div><div class='add'>+</div><div class='add'>+    load_body-&gt;ivc_size             = ivc_size;</div><div class='add'>+    load_body-&gt;icvarc_size          = icvarc_size;</div><div class='add'>+    load_body-&gt;ise_size             = ise_size;</div><div class='add'>+    load_body-&gt;ic_size              = ic_size;</div><div class='add'>+    load_body-&gt;is_entries           = ZALLOC_N(union iseq_inline_storage_entry, ISEQ_IS_SIZE(load_body));</div><div class='add'>+                                      ibf_load_ci_entries(load, ci_entries_offset, ci_size, &amp;load_body-&gt;call_data);</div><div class='add'>+    load_body-&gt;outer_variables      = ibf_load_outer_variables(load, outer_variables_offset);</div><div class='add'>+    load_body-&gt;param.opt_table      = ibf_load_param_opt_table(load, param_opt_table_offset, param_opt_num);</div><div class='add'>+    load_body-&gt;param.keyword        = ibf_load_param_keyword(load, param_keyword_offset);</div><div class='add'>+    load_body-&gt;param.flags.has_kw   = (param_flags &gt;&gt; 4) &amp; 1;</div><div class='add'>+    load_body-&gt;insns_info.body      = ibf_load_insns_info_body(load, insns_info_body_offset, insns_info_size);</div><div class='add'>+    load_body-&gt;insns_info.positions = ibf_load_insns_info_positions(load, insns_info_positions_offset, insns_info_size);</div><div class='add'>+    load_body-&gt;local_table          = ibf_load_local_table(load, local_table_offset, local_table_size);</div><div class='add'>+    load_body-&gt;catch_table          = ibf_load_catch_table(load, catch_table_offset, catch_table_size);</div><div class='add'>+    load_body-&gt;parent_iseq          = ibf_load_iseq(load, (const rb_iseq_t *)(VALUE)parent_iseq_index);</div><div class='add'>+    load_body-&gt;local_iseq           = ibf_load_iseq(load, (const rb_iseq_t *)(VALUE)local_iseq_index);</div><div class='add'>+    load_body-&gt;mandatory_only_iseq  = ibf_load_iseq(load, (const rb_iseq_t *)(VALUE)mandatory_only_iseq_index);</div><div class='add'>+</div><div class='add'>+    ibf_load_code(load, iseq, bytecode_offset, bytecode_size, iseq_size);</div><div class='ctx'> #if VM_INSN_INFO_TABLE_IMPL == 2</div><div class='ctx'>     rb_iseq_insns_info_encode_positions(iseq);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     rb_iseq_translate_threaded_code(iseq);</div><div class='del'>-}</div><div class='ctx'> </div><div class='add'>+#if IBF_ISEQ_ENABLE_LOCAL_BUFFER</div><div class='add'>+    load-&gt;current_buffer = &amp;load-&gt;global_buffer;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-ibf_dump_iseq_list(struct ibf_dump *dump, struct ibf_header *header)</div><div class='del'>-{</div><div class='del'>-    const long size = RARRAY_LEN(dump-&gt;iseq_list);</div><div class='del'>-    ibf_offset_t *list = ALLOCA_N(ibf_offset_t, size);</div><div class='del'>-    long i;</div><div class='add'>+    RB_OBJ_WRITE(iseq, &amp;load_body-&gt;location.base_label,    ibf_load_location_str(load, location_base_label_index));</div><div class='add'>+    RB_OBJ_WRITE(iseq, &amp;load_body-&gt;location.label,         ibf_load_location_str(load, location_label_index));</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;size; i++) {</div><div class='del'>-	list[i] = (ibf_offset_t)NUM2LONG(rb_ary_entry(dump-&gt;iseq_list, i));</div><div class='del'>-    }</div><div class='add'>+#if IBF_ISEQ_ENABLE_LOCAL_BUFFER</div><div class='add'>+    load-&gt;current_buffer = saved_buffer;</div><div class='add'>+#endif</div><div class='add'>+    verify_call_cache(iseq);</div><div class='ctx'> </div><div class='del'>-    ibf_dump_align(dump, sizeof(ibf_offset_t));</div><div class='del'>-    header-&gt;iseq_list_offset = ibf_dump_write(dump, list, sizeof(ibf_offset_t) * size);</div><div class='del'>-    header-&gt;iseq_list_size = (unsigned int)size;</div><div class='add'>+    RB_GC_GUARD(dummy_frame);</div><div class='add'>+    rb_vm_pop_frame_no_int(ec);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-struct ibf_dump_id_list_i_arg {</div><div class='add'>+struct ibf_dump_iseq_list_arg</div><div class='add'>+{</div><div class='ctx'>     struct ibf_dump *dump;</div><div class='del'>-    long *list;</div><div class='del'>-    int current_i;</div><div class='add'>+    VALUE offset_list;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ibf_dump_id_list_i(st_data_t key, st_data_t val, st_data_t ptr)</div><div class='add'>+ibf_dump_iseq_list_i(st_data_t key, st_data_t val, st_data_t ptr)</div><div class='ctx'> {</div><div class='del'>-    struct ibf_dump_id_list_i_arg *arg = (struct ibf_dump_id_list_i_arg *)ptr;</div><div class='del'>-    int i = (int)val;</div><div class='del'>-    ID id = (ID)key;</div><div class='del'>-    assert(arg-&gt;current_i == i);</div><div class='del'>-    arg-&gt;current_i++;</div><div class='add'>+    const rb_iseq_t *iseq = (const rb_iseq_t *)key;</div><div class='add'>+    struct ibf_dump_iseq_list_arg *args = (struct ibf_dump_iseq_list_arg *)ptr;</div><div class='ctx'> </div><div class='del'>-    if (rb_id2name(id)) {</div><div class='del'>-	arg-&gt;list[i] = (long)ibf_dump_object(arg-&gt;dump, rb_id2str(id));</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	arg-&gt;list[i] = 0;</div><div class='del'>-    }</div><div class='add'>+    ibf_offset_t offset = ibf_dump_iseq_each(args-&gt;dump, iseq);</div><div class='add'>+    rb_ary_push(args-&gt;offset_list, UINT2NUM(offset));</div><div class='ctx'> </div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-ibf_dump_id_list(struct ibf_dump *dump, struct ibf_header *header)</div><div class='add'>+ibf_dump_iseq_list(struct ibf_dump *dump, struct ibf_header *header)</div><div class='ctx'> {</div><div class='del'>-    const long size = dump-&gt;id_table-&gt;num_entries;</div><div class='del'>-    struct ibf_dump_id_list_i_arg arg;</div><div class='del'>-    arg.list = ALLOCA_N(long, size);</div><div class='del'>-    arg.dump = dump;</div><div class='del'>-    arg.current_i = 0;</div><div class='add'>+    VALUE offset_list = rb_ary_hidden_new(dump-&gt;iseq_table-&gt;num_entries);</div><div class='ctx'> </div><div class='del'>-    st_foreach(dump-&gt;id_table, ibf_dump_id_list_i, (st_data_t)&amp;arg);</div><div class='add'>+    struct ibf_dump_iseq_list_arg args;</div><div class='add'>+    args.dump = dump;</div><div class='add'>+    args.offset_list = offset_list;</div><div class='ctx'> </div><div class='del'>-    ibf_dump_align(dump, sizeof(long));</div><div class='del'>-    header-&gt;id_list_offset = ibf_dump_write(dump, arg.list, sizeof(long) * size);</div><div class='del'>-    header-&gt;id_list_size = (unsigned int)size;</div><div class='add'>+    st_foreach(dump-&gt;iseq_table, ibf_dump_iseq_list_i, (st_data_t)&amp;args);</div><div class='add'>+</div><div class='add'>+    st_index_t i;</div><div class='add'>+    st_index_t size = dump-&gt;iseq_table-&gt;num_entries;</div><div class='add'>+    ibf_offset_t *offsets = ALLOCA_N(ibf_offset_t, size);</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; size; i++) {</div><div class='add'>+        offsets[i] = NUM2UINT(RARRAY_AREF(offset_list, i));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ibf_dump_align(dump, sizeof(ibf_offset_t));</div><div class='add'>+    header-&gt;iseq_list_offset = ibf_dump_write(dump, offsets, sizeof(ibf_offset_t) * size);</div><div class='add'>+    header-&gt;iseq_list_size = (unsigned int)size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define IBF_OBJECT_INTERNAL FL_PROMOTED0</div><div class='hunk'>@@ -9237,19 +12407,14 @@ struct ibf_object_header {</div><div class='ctx'>     unsigned int frozen: 1;</div><div class='ctx'>     unsigned int internal: 1;</div><div class='ctx'> };</div><div class='del'>-static const size_t ibf_object_header_align =</div><div class='del'>-    RUBY_ALIGNOF(struct ibf_object_header);</div><div class='ctx'> </div><div class='ctx'> enum ibf_object_class_index {</div><div class='ctx'>     IBF_OBJECT_CLASS_OBJECT,</div><div class='ctx'>     IBF_OBJECT_CLASS_ARRAY,</div><div class='del'>-    IBF_OBJECT_CLASS_STANDARD_ERROR</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct ibf_object_string {</div><div class='del'>-    long encindex;</div><div class='del'>-    long len;</div><div class='del'>-    char ptr[FLEX_ARY_LEN];</div><div class='add'>+    IBF_OBJECT_CLASS_STANDARD_ERROR,</div><div class='add'>+    IBF_OBJECT_CLASS_NO_MATCHING_PATTERN_ERROR,</div><div class='add'>+    IBF_OBJECT_CLASS_TYPE_ERROR,</div><div class='add'>+    IBF_OBJECT_CLASS_NO_MATCHING_PATTERN_KEY_ERROR,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> struct ibf_object_regexp {</div><div class='hunk'>@@ -9257,11 +12422,6 @@ struct ibf_object_regexp {</div><div class='ctx'>     char option;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-struct ibf_object_array {</div><div class='del'>-    long len;</div><div class='del'>-    long ary[FLEX_ARY_LEN];</div><div class='del'>-};</div><div class='del'>-</div><div class='ctx'> struct ibf_object_hash {</div><div class='ctx'>     long len;</div><div class='ctx'>     long keyval[FLEX_ARY_LEN];</div><div class='hunk'>@@ -9281,7 +12441,7 @@ struct ibf_object_bignum {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> enum ibf_object_data_type {</div><div class='del'>-    IBF_OBJECT_DATA_ENCODING</div><div class='add'>+    IBF_OBJECT_DATA_ENCODING,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> struct ibf_object_complex_rational {</div><div class='hunk'>@@ -9294,18 +12454,16 @@ struct ibf_object_symbol {</div><div class='ctx'> </div><div class='ctx'> #define IBF_ALIGNED_OFFSET(align, offset) /* offset &gt; 0 */ \</div><div class='ctx'>     ((((offset) - 1) / (align) + 1) * (align))</div><div class='del'>-#define IBF_OBJHEADER(offset)     (const struct ibf_object_header *)\</div><div class='del'>-    ibf_load_check_offset(load, IBF_ALIGNED_OFFSET(ibf_object_header_align, offset))</div><div class='ctx'> #define IBF_OBJBODY(type, offset) (const type *)\</div><div class='ctx'>     ibf_load_check_offset(load, IBF_ALIGNED_OFFSET(RUBY_ALIGNOF(type), offset))</div><div class='ctx'> </div><div class='ctx'> static const void *</div><div class='ctx'> ibf_load_check_offset(const struct ibf_load *load, size_t offset)</div><div class='ctx'> {</div><div class='del'>-    if (offset &gt;= (size_t)RSTRING_LEN(load-&gt;str)) {</div><div class='del'>-	rb_raise(rb_eIndexError, "object offset out of range: %"PRIdSIZE, offset);</div><div class='add'>+    if (offset &gt;= load-&gt;current_buffer-&gt;size) {</div><div class='add'>+        rb_raise(rb_eIndexError, "object offset out of range: %"PRIdSIZE, offset);</div><div class='ctx'>     }</div><div class='del'>-    return load-&gt;buff + offset;</div><div class='add'>+    return load-&gt;current_buffer-&gt;buff + offset;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> NORETURN(static void ibf_dump_object_unsupported(struct ibf_dump *dump, VALUE obj));</div><div class='hunk'>@@ -9318,11 +12476,13 @@ ibf_dump_object_unsupported(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'>     rb_raise(rb_eNotImpError, "ibf_dump_object_unsupported: %s", buff);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+NORETURN(static VALUE ibf_load_object_unsupported(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset));</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> ibf_load_object_unsupported(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='ctx'> {</div><div class='ctx'>     rb_raise(rb_eArgError, "unsupported");</div><div class='del'>-    return Qnil;</div><div class='add'>+    UNREACHABLE_RETURN(Qnil);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -9330,35 +12490,49 @@ ibf_dump_object_class(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     enum ibf_object_class_index cindex;</div><div class='ctx'>     if (obj == rb_cObject) {</div><div class='del'>-	cindex = IBF_OBJECT_CLASS_OBJECT;</div><div class='add'>+        cindex = IBF_OBJECT_CLASS_OBJECT;</div><div class='ctx'>     }</div><div class='ctx'>     else if (obj == rb_cArray) {</div><div class='del'>-	cindex = IBF_OBJECT_CLASS_ARRAY;</div><div class='add'>+        cindex = IBF_OBJECT_CLASS_ARRAY;</div><div class='ctx'>     }</div><div class='ctx'>     else if (obj == rb_eStandardError) {</div><div class='del'>-	cindex = IBF_OBJECT_CLASS_STANDARD_ERROR;</div><div class='add'>+        cindex = IBF_OBJECT_CLASS_STANDARD_ERROR;</div><div class='add'>+    }</div><div class='add'>+    else if (obj == rb_eNoMatchingPatternError) {</div><div class='add'>+        cindex = IBF_OBJECT_CLASS_NO_MATCHING_PATTERN_ERROR;</div><div class='add'>+    }</div><div class='add'>+    else if (obj == rb_eTypeError) {</div><div class='add'>+        cindex = IBF_OBJECT_CLASS_TYPE_ERROR;</div><div class='add'>+    }</div><div class='add'>+    else if (obj == rb_eNoMatchingPatternKeyError) {</div><div class='add'>+        cindex = IBF_OBJECT_CLASS_NO_MATCHING_PATTERN_KEY_ERROR;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_obj_info_dump(obj);</div><div class='del'>-	rb_p(obj);</div><div class='del'>-	rb_bug("unsupported class");</div><div class='add'>+        rb_obj_info_dump(obj);</div><div class='add'>+        rb_p(obj);</div><div class='add'>+        rb_bug("unsupported class");</div><div class='ctx'>     }</div><div class='del'>-    ibf_dump_write(dump, &amp;cindex, sizeof(cindex));</div><div class='add'>+    ibf_dump_write_small_value(dump, (VALUE)cindex);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> ibf_load_object_class(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='ctx'> {</div><div class='del'>-    const enum ibf_object_class_index *cindexp = IBF_OBJBODY(enum ibf_object_class_index, offset);</div><div class='del'>-    enum ibf_object_class_index cindex = *cindexp;</div><div class='add'>+    enum ibf_object_class_index cindex = (enum ibf_object_class_index)ibf_load_small_value(load, &amp;offset);</div><div class='ctx'> </div><div class='ctx'>     switch (cindex) {</div><div class='ctx'>       case IBF_OBJECT_CLASS_OBJECT:</div><div class='del'>-	return rb_cObject;</div><div class='add'>+        return rb_cObject;</div><div class='ctx'>       case IBF_OBJECT_CLASS_ARRAY:</div><div class='del'>-	return rb_cArray;</div><div class='add'>+        return rb_cArray;</div><div class='ctx'>       case IBF_OBJECT_CLASS_STANDARD_ERROR:</div><div class='del'>-	return rb_eStandardError;</div><div class='add'>+        return rb_eStandardError;</div><div class='add'>+      case IBF_OBJECT_CLASS_NO_MATCHING_PATTERN_ERROR:</div><div class='add'>+        return rb_eNoMatchingPatternError;</div><div class='add'>+      case IBF_OBJECT_CLASS_TYPE_ERROR:</div><div class='add'>+        return rb_eTypeError;</div><div class='add'>+      case IBF_OBJECT_CLASS_NO_MATCHING_PATTERN_KEY_ERROR:</div><div class='add'>+        return rb_eNoMatchingPatternKeyError;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_raise(rb_eArgError, "ibf_load_object_class: unknown class (%d)", (int)cindex);</div><div class='hunk'>@@ -9385,56 +12559,66 @@ ibf_dump_object_string(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'>     long encindex = (long)rb_enc_get_index(obj);</div><div class='ctx'>     long len = RSTRING_LEN(obj);</div><div class='ctx'>     const char *ptr = RSTRING_PTR(obj);</div><div class='del'>-    long buff[2];</div><div class='ctx'> </div><div class='ctx'>     if (encindex &gt; RUBY_ENCINDEX_BUILTIN_MAX) {</div><div class='del'>-	rb_encoding *enc = rb_enc_from_index((int)encindex);</div><div class='del'>-	const char *enc_name = rb_enc_name(enc);</div><div class='del'>-	encindex = RUBY_ENCINDEX_BUILTIN_MAX + ibf_dump_object(dump, rb_str_new2(enc_name));</div><div class='add'>+        rb_encoding *enc = rb_enc_from_index((int)encindex);</div><div class='add'>+        const char *enc_name = rb_enc_name(enc);</div><div class='add'>+        encindex = RUBY_ENCINDEX_BUILTIN_MAX + ibf_dump_object(dump, rb_str_new2(enc_name));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    buff[0] = encindex;</div><div class='del'>-    buff[1] = len;</div><div class='del'>-    (void)IBF_W(buff, long, 2);</div><div class='add'>+    ibf_dump_write_small_value(dump, encindex);</div><div class='add'>+    ibf_dump_write_small_value(dump, len);</div><div class='ctx'>     IBF_WP(ptr, char, len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> ibf_load_object_string(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='ctx'> {</div><div class='del'>-    const struct ibf_object_string *string = IBF_OBJBODY(struct ibf_object_string, offset);</div><div class='del'>-    VALUE str = rb_str_new(string-&gt;ptr, string-&gt;len);</div><div class='del'>-    int encindex = (int)string-&gt;encindex;</div><div class='add'>+    ibf_offset_t reading_pos = offset;</div><div class='add'>+</div><div class='add'>+    int encindex = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const long len = (long)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const char *ptr = load-&gt;current_buffer-&gt;buff + reading_pos;</div><div class='ctx'> </div><div class='ctx'>     if (encindex &gt; RUBY_ENCINDEX_BUILTIN_MAX) {</div><div class='del'>-	VALUE enc_name_str = ibf_load_object(load, encindex - RUBY_ENCINDEX_BUILTIN_MAX);</div><div class='del'>-	encindex = rb_enc_find_index(RSTRING_PTR(enc_name_str));</div><div class='add'>+        VALUE enc_name_str = ibf_load_object(load, encindex - RUBY_ENCINDEX_BUILTIN_MAX);</div><div class='add'>+        encindex = rb_enc_find_index(RSTRING_PTR(enc_name_str));</div><div class='ctx'>     }</div><div class='del'>-    rb_enc_associate_index(str, encindex);</div><div class='ctx'> </div><div class='del'>-    if (header-&gt;internal) rb_obj_hide(str);</div><div class='del'>-    if (header-&gt;frozen)   str = rb_fstring(str);</div><div class='add'>+    VALUE str;</div><div class='add'>+    if (header-&gt;frozen &amp;&amp; !header-&gt;internal) {</div><div class='add'>+        str = rb_enc_interned_str(ptr, len, rb_enc_from_index(encindex));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        str = rb_enc_str_new(ptr, len, rb_enc_from_index(encindex));</div><div class='ctx'> </div><div class='add'>+        if (header-&gt;internal) rb_obj_hide(str);</div><div class='add'>+        if (header-&gt;frozen)   str = rb_fstring(str);</div><div class='add'>+    }</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> ibf_dump_object_regexp(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    struct ibf_object_regexp regexp;</div><div class='ctx'>     VALUE srcstr = RREGEXP_SRC(obj);</div><div class='del'>-    IBF_ZERO(regexp);</div><div class='add'>+    struct ibf_object_regexp regexp;</div><div class='ctx'>     regexp.option = (char)rb_reg_options(obj);</div><div class='ctx'>     regexp.srcstr = (long)ibf_dump_object(dump, srcstr);</div><div class='del'>-    (void)IBF_W(&amp;regexp, struct ibf_object_regexp, 1);</div><div class='add'>+</div><div class='add'>+    ibf_dump_write_byte(dump, (unsigned char)regexp.option);</div><div class='add'>+    ibf_dump_write_small_value(dump, regexp.srcstr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> ibf_load_object_regexp(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='ctx'> {</div><div class='del'>-    const struct ibf_object_regexp *regexp = IBF_OBJBODY(struct ibf_object_regexp, offset);</div><div class='del'>-    VALUE srcstr = ibf_load_object(load, regexp-&gt;srcstr);</div><div class='del'>-    VALUE reg = rb_reg_compile(srcstr, (int)regexp-&gt;option, NULL, 0);</div><div class='add'>+    struct ibf_object_regexp regexp;</div><div class='add'>+    regexp.option = ibf_load_byte(load, &amp;offset);</div><div class='add'>+    regexp.srcstr = ibf_load_small_value(load, &amp;offset);</div><div class='add'>+</div><div class='add'>+    VALUE srcstr = ibf_load_object(load, regexp.srcstr);</div><div class='add'>+    VALUE reg = rb_reg_compile(srcstr, (int)regexp.option, NULL, 0);</div><div class='ctx'> </div><div class='ctx'>     if (header-&gt;internal) rb_obj_hide(reg);</div><div class='ctx'>     if (header-&gt;frozen)   rb_obj_freeze(reg);</div><div class='hunk'>@@ -9445,27 +12629,30 @@ ibf_load_object_regexp(const struct ibf_load *load, const struct ibf_object_head</div><div class='ctx'> static void</div><div class='ctx'> ibf_dump_object_array(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    long i, len = (int)RARRAY_LEN(obj);</div><div class='del'>-    (void)IBF_W(&amp;len, long, 1);</div><div class='add'>+    long i, len = RARRAY_LEN(obj);</div><div class='add'>+    ibf_dump_write_small_value(dump, len);</div><div class='ctx'>     for (i=0; i&lt;len; i++) {</div><div class='del'>-	long index = (long)ibf_dump_object(dump, RARRAY_AREF(obj, i));</div><div class='del'>-	IBF_WV(index);</div><div class='add'>+        long index = (long)ibf_dump_object(dump, RARRAY_AREF(obj, i));</div><div class='add'>+        ibf_dump_write_small_value(dump, index);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> ibf_load_object_array(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='ctx'> {</div><div class='del'>-    const struct ibf_object_array *array = IBF_OBJBODY(struct ibf_object_array, offset);</div><div class='del'>-    VALUE ary = rb_ary_new_capa(array-&gt;len);</div><div class='add'>+    ibf_offset_t reading_pos = offset;</div><div class='add'>+</div><div class='add'>+    const long len = (long)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+</div><div class='add'>+    VALUE ary = header-&gt;internal ? rb_ary_hidden_new(len) : rb_ary_new_capa(len);</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;array-&gt;len; i++) {</div><div class='del'>-	rb_ary_push(ary, ibf_load_object(load, array-&gt;ary[i]));</div><div class='add'>+    for (i=0; i&lt;len; i++) {</div><div class='add'>+        const VALUE index = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+        rb_ary_push(ary, ibf_load_object(load, index));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (header-&gt;internal) rb_obj_hide(ary);</div><div class='del'>-    if (header-&gt;frozen)   rb_obj_freeze(ary);</div><div class='add'>+    if (header-&gt;frozen) rb_obj_freeze(ary);</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -9474,10 +12661,12 @@ static int</div><div class='ctx'> ibf_dump_object_hash_i(st_data_t key, st_data_t val, st_data_t ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct ibf_dump *dump = (struct ibf_dump *)ptr;</div><div class='del'>-    long keyval[2];</div><div class='del'>-    keyval[0] = (long)ibf_dump_object(dump, (VALUE)key);</div><div class='del'>-    keyval[1] = (long)ibf_dump_object(dump, (VALUE)val);</div><div class='del'>-    (void)IBF_W(keyval, long, 2);</div><div class='add'>+</div><div class='add'>+    VALUE key_index = ibf_dump_object(dump, (VALUE)key);</div><div class='add'>+    VALUE val_index = ibf_dump_object(dump, (VALUE)val);</div><div class='add'>+</div><div class='add'>+    ibf_dump_write_small_value(dump, key_index);</div><div class='add'>+    ibf_dump_write_small_value(dump, val_index);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -9485,21 +12674,25 @@ static void</div><div class='ctx'> ibf_dump_object_hash(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     long len = RHASH_SIZE(obj);</div><div class='del'>-    (void)IBF_W(&amp;len, long, 1);</div><div class='add'>+    ibf_dump_write_small_value(dump, (VALUE)len);</div><div class='add'>+</div><div class='ctx'>     if (len &gt; 0) rb_hash_foreach(obj, ibf_dump_object_hash_i, (VALUE)dump);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> ibf_load_object_hash(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='ctx'> {</div><div class='del'>-    const struct ibf_object_hash *hash = IBF_OBJBODY(struct ibf_object_hash, offset);</div><div class='del'>-    VALUE obj = rb_hash_new_with_size(hash-&gt;len);</div><div class='add'>+    long len = (long)ibf_load_small_value(load, &amp;offset);</div><div class='add'>+    VALUE obj = rb_hash_new_with_size(len);</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;hash-&gt;len; i++) {</div><div class='del'>-	VALUE key = ibf_load_object(load, hash-&gt;keyval[i*2  ]);</div><div class='del'>-	VALUE val = ibf_load_object(load, hash-&gt;keyval[i*2+1]);</div><div class='del'>-	rb_hash_aset(obj, key, val);</div><div class='add'>+    for (i = 0; i &lt; len; i++) {</div><div class='add'>+        VALUE key_index = ibf_load_small_value(load, &amp;offset);</div><div class='add'>+        VALUE val_index = ibf_load_small_value(load, &amp;offset);</div><div class='add'>+</div><div class='add'>+        VALUE key = ibf_load_object(load, key_index);</div><div class='add'>+        VALUE val = ibf_load_object(load, val_index);</div><div class='add'>+        rb_hash_aset(obj, key, val);</div><div class='ctx'>     }</div><div class='ctx'>     rb_hash_rehash(obj);</div><div class='ctx'> </div><div class='hunk'>@@ -9513,18 +12706,18 @@ static void</div><div class='ctx'> ibf_dump_object_struct(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (rb_obj_is_kind_of(obj, rb_cRange)) {</div><div class='del'>-	struct ibf_object_struct_range range;</div><div class='del'>-	VALUE beg, end;</div><div class='del'>-	IBF_ZERO(range);</div><div class='del'>-	range.len = 3;</div><div class='del'>-	range.class_index = 0;</div><div class='add'>+        struct ibf_object_struct_range range;</div><div class='add'>+        VALUE beg, end;</div><div class='add'>+        IBF_ZERO(range);</div><div class='add'>+        range.len = 3;</div><div class='add'>+        range.class_index = 0;</div><div class='ctx'> </div><div class='del'>-	rb_range_values(obj, &amp;beg, &amp;end, &amp;range.excl);</div><div class='del'>-	range.beg = (long)ibf_dump_object(dump, beg);</div><div class='del'>-	range.end = (long)ibf_dump_object(dump, end);</div><div class='add'>+        rb_range_values(obj, &amp;beg, &amp;end, &amp;range.excl);</div><div class='add'>+        range.beg = (long)ibf_dump_object(dump, beg);</div><div class='add'>+        range.end = (long)ibf_dump_object(dump, end);</div><div class='ctx'> </div><div class='del'>-	IBF_W_ALIGN(struct ibf_object_struct_range);</div><div class='del'>-	IBF_WV(range);</div><div class='add'>+        IBF_W_ALIGN(struct ibf_object_struct_range);</div><div class='add'>+        IBF_WV(range);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         rb_raise(rb_eNotImpError, "ibf_dump_object_struct: unsupported class %"PRIsVALUE,</div><div class='hunk'>@@ -9562,7 +12755,7 @@ ibf_load_object_bignum(const struct ibf_load *load, const struct ibf_object_head</div><div class='ctx'>     int sign = bignum-&gt;slen &gt; 0;</div><div class='ctx'>     ssize_t len = sign &gt; 0 ? bignum-&gt;slen : -1 * bignum-&gt;slen;</div><div class='ctx'>     VALUE obj = rb_integer_unpack(bignum-&gt;digits, len * 2, 2, 0,</div><div class='del'>-				  INTEGER_PACK_LITTLE_ENDIAN | (sign == 0 ? INTEGER_PACK_NEGATIVE : 0));</div><div class='add'>+                                  INTEGER_PACK_LITTLE_ENDIAN | (sign == 0 ? INTEGER_PACK_NEGATIVE : 0));</div><div class='ctx'>     if (header-&gt;internal) rb_obj_hide(obj);</div><div class='ctx'>     if (header-&gt;frozen)   rb_obj_freeze(obj);</div><div class='ctx'>     return obj;</div><div class='hunk'>@@ -9572,17 +12765,17 @@ static void</div><div class='ctx'> ibf_dump_object_data(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (rb_data_is_encoding(obj)) {</div><div class='del'>-	rb_encoding *enc = rb_to_encoding(obj);</div><div class='del'>-	const char *name = rb_enc_name(enc);</div><div class='del'>-	long len = strlen(name) + 1;</div><div class='del'>-	long data[2];</div><div class='del'>-	data[0] = IBF_OBJECT_DATA_ENCODING;</div><div class='del'>-	data[1] = len;</div><div class='del'>-	(void)IBF_W(data, long, 2);</div><div class='del'>-	IBF_WP(name, char, len);</div><div class='add'>+        rb_encoding *enc = rb_to_encoding(obj);</div><div class='add'>+        const char *name = rb_enc_name(enc);</div><div class='add'>+        long len = strlen(name) + 1;</div><div class='add'>+        long data[2];</div><div class='add'>+        data[0] = IBF_OBJECT_DATA_ENCODING;</div><div class='add'>+        data[1] = len;</div><div class='add'>+        (void)IBF_W(data, long, 2);</div><div class='add'>+        IBF_WP(name, char, len);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ibf_dump_object_unsupported(dump, obj);</div><div class='add'>+        ibf_dump_object_unsupported(dump, obj);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -9596,10 +12789,10 @@ ibf_load_object_data(const struct ibf_load *load, const struct ibf_object_header</div><div class='ctx'> </div><div class='ctx'>     switch (type) {</div><div class='ctx'>       case IBF_OBJECT_DATA_ENCODING:</div><div class='del'>-	{</div><div class='del'>-	    VALUE encobj = rb_enc_from_encoding(rb_enc_find(data));</div><div class='del'>-	    return encobj;</div><div class='del'>-	}</div><div class='add'>+        {</div><div class='add'>+            VALUE encobj = rb_enc_from_encoding(rb_enc_find(data));</div><div class='add'>+            return encobj;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return ibf_load_object_unsupported(load, header, offset);</div><div class='hunk'>@@ -9632,18 +12825,24 @@ ibf_load_object_complex_rational(const struct ibf_load *load, const struct ibf_o</div><div class='ctx'> static void</div><div class='ctx'> ibf_dump_object_symbol(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE str = rb_sym2str(obj);</div><div class='del'>-    long str_index = (long)ibf_dump_object(dump, str);</div><div class='del'>-    (void)IBF_W(&amp;str_index, long, 1);</div><div class='add'>+    ibf_dump_object_string(dump, rb_sym2str(obj));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> ibf_load_object_symbol(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)</div><div class='ctx'> {</div><div class='del'>-    /* const struct ibf_object_header *header = IBF_OBJHEADER(offset); */</div><div class='del'>-    const struct ibf_object_symbol *symbol = IBF_OBJBODY(struct ibf_object_symbol, offset);</div><div class='del'>-    VALUE str = ibf_load_object(load, symbol-&gt;str);</div><div class='del'>-    ID id = rb_intern_str(str);</div><div class='add'>+    ibf_offset_t reading_pos = offset;</div><div class='add'>+</div><div class='add'>+    int encindex = (int)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const long len = (long)ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+    const char *ptr = load-&gt;current_buffer-&gt;buff + reading_pos;</div><div class='add'>+</div><div class='add'>+    if (encindex &gt; RUBY_ENCINDEX_BUILTIN_MAX) {</div><div class='add'>+        VALUE enc_name_str = ibf_load_object(load, encindex - RUBY_ENCINDEX_BUILTIN_MAX);</div><div class='add'>+        encindex = rb_enc_find_index(RSTRING_PTR(enc_name_str));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ID id = rb_intern3(ptr, len, rb_enc_from_index(encindex));</div><div class='ctx'>     return ID2SYM(id);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -9683,6 +12882,32 @@ static ibf_dump_object_function dump_object_functions[RUBY_T_MASK+1] = {</div><div class='ctx'>     ibf_dump_object_unsupported, /* 0x1f */</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+ibf_dump_object_object_header(struct ibf_dump *dump, const struct ibf_object_header header)</div><div class='add'>+{</div><div class='add'>+    unsigned char byte =</div><div class='add'>+        (header.type          &lt;&lt; 0) |</div><div class='add'>+        (header.special_const &lt;&lt; 5) |</div><div class='add'>+        (header.frozen        &lt;&lt; 6) |</div><div class='add'>+        (header.internal      &lt;&lt; 7);</div><div class='add'>+</div><div class='add'>+    IBF_WV(byte);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct ibf_object_header</div><div class='add'>+ibf_load_object_object_header(const struct ibf_load *load, ibf_offset_t *offset)</div><div class='add'>+{</div><div class='add'>+    unsigned char byte = ibf_load_byte(load, offset);</div><div class='add'>+</div><div class='add'>+    struct ibf_object_header header;</div><div class='add'>+    header.type          = (byte &gt;&gt; 0) &amp; 0x1f;</div><div class='add'>+    header.special_const = (byte &gt;&gt; 5) &amp; 0x01;</div><div class='add'>+    header.frozen        = (byte &gt;&gt; 6) &amp; 0x01;</div><div class='add'>+    header.internal      = (byte &gt;&gt; 7) &amp; 0x01;</div><div class='add'>+</div><div class='add'>+    return header;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static ibf_offset_t</div><div class='ctx'> ibf_dump_object_object(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -9694,31 +12919,27 @@ ibf_dump_object_object(struct ibf_dump *dump, VALUE obj)</div><div class='ctx'>     IBF_W_ALIGN(ibf_offset_t);</div><div class='ctx'>     current_offset = ibf_dump_pos(dump);</div><div class='ctx'> </div><div class='del'>-    if (SPECIAL_CONST_P(obj)) {</div><div class='del'>-	if (RB_TYPE_P(obj, T_SYMBOL) ||</div><div class='del'>-	    RB_TYPE_P(obj, T_FLOAT)) {</div><div class='del'>-	    obj_header.internal = FALSE;</div><div class='del'>-	    goto dump_object;</div><div class='del'>-	}</div><div class='del'>-	obj_header.special_const = TRUE;</div><div class='del'>-	obj_header.frozen = TRUE;</div><div class='del'>-	obj_header.internal = TRUE;</div><div class='del'>-	IBF_WV(obj_header);</div><div class='del'>-	(void)IBF_W(&amp;obj, VALUE, 1);</div><div class='add'>+    if (SPECIAL_CONST_P(obj) &amp;&amp;</div><div class='add'>+        ! (SYMBOL_P(obj) ||</div><div class='add'>+           RB_FLOAT_TYPE_P(obj))) {</div><div class='add'>+        obj_header.special_const = TRUE;</div><div class='add'>+        obj_header.frozen = TRUE;</div><div class='add'>+        obj_header.internal = TRUE;</div><div class='add'>+        ibf_dump_object_object_header(dump, obj_header);</div><div class='add'>+        ibf_dump_write_small_value(dump, obj);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	obj_header.internal = (RBASIC_CLASS(obj) == 0) ? TRUE : FALSE;</div><div class='del'>-      dump_object:</div><div class='del'>-	obj_header.special_const = FALSE;</div><div class='del'>-	obj_header.frozen = FL_TEST(obj, FL_FREEZE) ? TRUE : FALSE;</div><div class='del'>-	IBF_WV(obj_header);</div><div class='del'>-	(*dump_object_functions[obj_header.type])(dump, obj);</div><div class='add'>+        obj_header.internal = SPECIAL_CONST_P(obj) ? FALSE : (RBASIC_CLASS(obj) == 0) ? TRUE : FALSE;</div><div class='add'>+        obj_header.special_const = FALSE;</div><div class='add'>+        obj_header.frozen = FL_TEST(obj, FL_FREEZE) ? TRUE : FALSE;</div><div class='add'>+        ibf_dump_object_object_header(dump, obj_header);</div><div class='add'>+        (*dump_object_functions[obj_header.type])(dump, obj);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return current_offset;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-typedef VALUE (*ibf_load_object_function)(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t);</div><div class='add'>+typedef VALUE (*ibf_load_object_function)(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset);</div><div class='ctx'> static ibf_load_object_function load_object_functions[RUBY_T_MASK+1] = {</div><div class='ctx'>     ibf_load_object_unsupported, /* T_NONE */</div><div class='ctx'>     ibf_load_object_unsupported, /* T_OBJECT */</div><div class='hunk'>@@ -9758,95 +12979,109 @@ static VALUE</div><div class='ctx'> ibf_load_object(const struct ibf_load *load, VALUE object_index)</div><div class='ctx'> {</div><div class='ctx'>     if (object_index == 0) {</div><div class='del'>-	return Qnil;</div><div class='del'>-    }</div><div class='del'>-    else if (object_index &gt;= load-&gt;header-&gt;object_list_size) {</div><div class='del'>-	rb_raise(rb_eIndexError, "object index out of range: %"PRIdVALUE, object_index);</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE obj = rb_ary_entry(load-&gt;obj_list, (long)object_index);</div><div class='del'>-	if (obj == Qnil) { /* TODO: avoid multiple Qnil load */</div><div class='del'>-	    ibf_offset_t *offsets = (ibf_offset_t *)(load-&gt;header-&gt;object_list_offset + load-&gt;buff);</div><div class='del'>-	    ibf_offset_t offset = offsets[object_index];</div><div class='del'>-	    const struct ibf_object_header *header = IBF_OBJHEADER(offset);</div><div class='del'>-	    size_t value_offset;</div><div class='add'>+        VALUE obj = pinned_list_fetch(load-&gt;current_buffer-&gt;obj_list, (long)object_index);</div><div class='add'>+        if (!obj) {</div><div class='add'>+            ibf_offset_t *offsets = (ibf_offset_t *)(load-&gt;current_buffer-&gt;obj_list_offset + load-&gt;current_buffer-&gt;buff);</div><div class='add'>+            ibf_offset_t offset = offsets[object_index];</div><div class='add'>+            const struct ibf_object_header header = ibf_load_object_object_header(load, &amp;offset);</div><div class='ctx'> </div><div class='ctx'> #if IBF_ISEQ_DEBUG</div><div class='del'>-	    fprintf(stderr, "ibf_load_object: list=%#x offsets=%p offset=%#x\n",</div><div class='del'>-	            load-&gt;header-&gt;object_list_offset, offsets, offset);</div><div class='del'>-	    fprintf(stderr, "ibf_load_object: type=%#x special=%d frozen=%d internal=%d\n",</div><div class='del'>-	            header-&gt;type, header-&gt;special_const, header-&gt;frozen, header-&gt;internal);</div><div class='add'>+            fprintf(stderr, "ibf_load_object: list=%#x offsets=%p offset=%#x\n",</div><div class='add'>+                    load-&gt;current_buffer-&gt;obj_list_offset, (void *)offsets, offset);</div><div class='add'>+            fprintf(stderr, "ibf_load_object: type=%#x special=%d frozen=%d internal=%d\n",</div><div class='add'>+                    header.type, header.special_const, header.frozen, header.internal);</div><div class='ctx'> #endif</div><div class='del'>-	    value_offset = (const char *)(header + 1) - load-&gt;buff;</div><div class='del'>-	    if (value_offset &gt;= (size_t)RSTRING_LEN(load-&gt;str)) {</div><div class='del'>-		rb_raise(rb_eIndexError, "object offset out of range: %"PRIdSIZE, value_offset);</div><div class='del'>-	    }</div><div class='del'>-	    offset = (ibf_offset_t)value_offset;</div><div class='del'>-</div><div class='del'>-	    if (header-&gt;special_const) {</div><div class='del'>-		const VALUE *vp = IBF_OBJBODY(VALUE, offset);</div><div class='del'>-#if IBF_ISEQ_DEBUG</div><div class='del'>-		fprintf(stderr, "ibf_load_object: vp=%p\n", vp);</div><div class='del'>-#endif</div><div class='del'>-		obj = *vp;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		obj = (*load_object_functions[header-&gt;type])(load, header, offset);</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    rb_ary_store(load-&gt;obj_list, (long)object_index, obj);</div><div class='del'>-	}</div><div class='add'>+            if (offset &gt;= load-&gt;current_buffer-&gt;size) {</div><div class='add'>+                rb_raise(rb_eIndexError, "object offset out of range: %u", offset);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (header.special_const) {</div><div class='add'>+                ibf_offset_t reading_pos = offset;</div><div class='add'>+</div><div class='add'>+                obj = ibf_load_small_value(load, &amp;reading_pos);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                obj = (*load_object_functions[header.type])(load, &amp;header, offset);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            pinned_list_store(load-&gt;current_buffer-&gt;obj_list, (long)object_index, obj);</div><div class='add'>+        }</div><div class='ctx'> #if IBF_ISEQ_DEBUG</div><div class='del'>-	fprintf(stderr, "ibf_load_object: index=%#"PRIxVALUE" obj=%#"PRIxVALUE"\n",</div><div class='del'>-	        object_index, obj);</div><div class='add'>+        fprintf(stderr, "ibf_load_object: index=%#"PRIxVALUE" obj=%#"PRIxVALUE"\n",</div><div class='add'>+                object_index, obj);</div><div class='ctx'> #endif</div><div class='del'>-	return obj;</div><div class='add'>+        return obj;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+struct ibf_dump_object_list_arg</div><div class='add'>+{</div><div class='add'>+    struct ibf_dump *dump;</div><div class='add'>+    VALUE offset_list;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ibf_dump_object_list_i(st_data_t key, st_data_t val, st_data_t ptr)</div><div class='add'>+{</div><div class='add'>+    VALUE obj = (VALUE)key;</div><div class='add'>+    struct ibf_dump_object_list_arg *args = (struct ibf_dump_object_list_arg *)ptr;</div><div class='add'>+</div><div class='add'>+    ibf_offset_t offset = ibf_dump_object_object(args-&gt;dump, obj);</div><div class='add'>+    rb_ary_push(args-&gt;offset_list, UINT2NUM(offset));</div><div class='add'>+</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='del'>-ibf_dump_object_list(struct ibf_dump *dump, struct ibf_header *header)</div><div class='add'>+ibf_dump_object_list(struct ibf_dump *dump, ibf_offset_t *obj_list_offset, unsigned int *obj_list_size)</div><div class='ctx'> {</div><div class='del'>-    VALUE list = rb_ary_tmp_new(RARRAY_LEN(dump-&gt;obj_list));</div><div class='del'>-    int i, size;</div><div class='add'>+    st_table *obj_table = dump-&gt;current_buffer-&gt;obj_table;</div><div class='add'>+    VALUE offset_list = rb_ary_hidden_new(obj_table-&gt;num_entries);</div><div class='add'>+</div><div class='add'>+    struct ibf_dump_object_list_arg args;</div><div class='add'>+    args.dump = dump;</div><div class='add'>+    args.offset_list = offset_list;</div><div class='add'>+</div><div class='add'>+    st_foreach(obj_table, ibf_dump_object_list_i, (st_data_t)&amp;args);</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;RARRAY_LEN(dump-&gt;obj_list); i++) {</div><div class='del'>-	VALUE obj = RARRAY_AREF(dump-&gt;obj_list, i);</div><div class='del'>-	ibf_offset_t offset = ibf_dump_object_object(dump, obj);</div><div class='del'>-	rb_ary_push(list, UINT2NUM(offset));</div><div class='del'>-    }</div><div class='del'>-    size = i;</div><div class='ctx'>     IBF_W_ALIGN(ibf_offset_t);</div><div class='del'>-    header-&gt;object_list_offset = ibf_dump_pos(dump);</div><div class='add'>+    *obj_list_offset = ibf_dump_pos(dump);</div><div class='add'>+</div><div class='add'>+    st_index_t size = obj_table-&gt;num_entries;</div><div class='add'>+    st_index_t i;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;size; i++) {</div><div class='del'>-	ibf_offset_t offset = NUM2UINT(RARRAY_AREF(list, i));</div><div class='del'>-	IBF_WV(offset);</div><div class='add'>+        ibf_offset_t offset = NUM2UINT(RARRAY_AREF(offset_list, i));</div><div class='add'>+        IBF_WV(offset);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    header-&gt;object_list_size = size;</div><div class='add'>+    *obj_list_size = (unsigned int)size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> ibf_dump_mark(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct ibf_dump *dump = (struct ibf_dump *)ptr;</div><div class='del'>-    rb_gc_mark(dump-&gt;str);</div><div class='del'>-    rb_gc_mark(dump-&gt;iseq_list);</div><div class='del'>-    rb_gc_mark(dump-&gt;obj_list);</div><div class='add'>+    rb_gc_mark(dump-&gt;global_buffer.str);</div><div class='add'>+</div><div class='add'>+    rb_mark_set(dump-&gt;global_buffer.obj_table);</div><div class='add'>+    rb_mark_set(dump-&gt;iseq_table);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> ibf_dump_free(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct ibf_dump *dump = (struct ibf_dump *)ptr;</div><div class='del'>-    if (dump-&gt;iseq_table) {</div><div class='del'>-	st_free_table(dump-&gt;iseq_table);</div><div class='del'>-	dump-&gt;iseq_table = 0;</div><div class='add'>+    if (dump-&gt;global_buffer.obj_table) {</div><div class='add'>+        st_free_table(dump-&gt;global_buffer.obj_table);</div><div class='add'>+        dump-&gt;global_buffer.obj_table = 0;</div><div class='ctx'>     }</div><div class='del'>-    if (dump-&gt;id_table) {</div><div class='del'>-	st_free_table(dump-&gt;id_table);</div><div class='del'>-	dump-&gt;id_table = 0;</div><div class='add'>+    if (dump-&gt;iseq_table) {</div><div class='add'>+        st_free_table(dump-&gt;iseq_table);</div><div class='add'>+        dump-&gt;iseq_table = 0;</div><div class='ctx'>     }</div><div class='ctx'>     ruby_xfree(dump);</div><div class='ctx'> }</div><div class='hunk'>@@ -9857,27 +13092,27 @@ ibf_dump_memsize(const void *ptr)</div><div class='ctx'>     struct ibf_dump *dump = (struct ibf_dump *)ptr;</div><div class='ctx'>     size_t size = sizeof(*dump);</div><div class='ctx'>     if (dump-&gt;iseq_table) size += st_memsize(dump-&gt;iseq_table);</div><div class='del'>-    if (dump-&gt;id_table) size += st_memsize(dump-&gt;id_table);</div><div class='add'>+    if (dump-&gt;global_buffer.obj_table) size += st_memsize(dump-&gt;global_buffer.obj_table);</div><div class='ctx'>     return size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const rb_data_type_t ibf_dump_type = {</div><div class='ctx'>     "ibf_dump",</div><div class='ctx'>     {ibf_dump_mark, ibf_dump_free, ibf_dump_memsize,},</div><div class='del'>-    0, 0, RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> ibf_dump_setup(struct ibf_dump *dump, VALUE dumper_obj)</div><div class='ctx'> {</div><div class='del'>-    RB_OBJ_WRITE(dumper_obj, &amp;dump-&gt;str, rb_str_new(0, 0));</div><div class='del'>-    RB_OBJ_WRITE(dumper_obj, &amp;dump-&gt;iseq_list, rb_ary_tmp_new(0));</div><div class='del'>-    RB_OBJ_WRITE(dumper_obj, &amp;dump-&gt;obj_list, rb_ary_tmp_new(1));</div><div class='del'>-    rb_ary_push(dump-&gt;obj_list, Qnil); /* 0th is nil */</div><div class='add'>+    dump-&gt;global_buffer.obj_table = NULL; // GC may run before a value is assigned</div><div class='add'>+    dump-&gt;iseq_table = NULL;</div><div class='add'>+</div><div class='add'>+    RB_OBJ_WRITE(dumper_obj, &amp;dump-&gt;global_buffer.str, rb_str_new(0, 0));</div><div class='add'>+    dump-&gt;global_buffer.obj_table = ibf_dump_object_table_new();</div><div class='ctx'>     dump-&gt;iseq_table = st_init_numtable(); /* need free */</div><div class='del'>-    dump-&gt;id_table = st_init_numtable();   /* need free */</div><div class='ctx'> </div><div class='del'>-    ibf_table_index(dump-&gt;id_table, 0); /* id_index:0 is 0 */</div><div class='add'>+    dump-&gt;current_buffer = &amp;dump-&gt;global_buffer;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -9888,12 +13123,12 @@ rb_iseq_ibf_dump(const rb_iseq_t *iseq, VALUE opt)</div><div class='ctx'>     VALUE dump_obj;</div><div class='ctx'>     VALUE str;</div><div class='ctx'> </div><div class='del'>-    if (iseq-&gt;body-&gt;parent_iseq != NULL ||</div><div class='del'>-	iseq-&gt;body-&gt;local_iseq != iseq) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "should be top of iseq");</div><div class='add'>+    if (ISEQ_BODY(iseq)-&gt;parent_iseq != NULL ||</div><div class='add'>+        ISEQ_BODY(iseq)-&gt;local_iseq != iseq) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "should be top of iseq");</div><div class='ctx'>     }</div><div class='ctx'>     if (RTEST(ISEQ_COVERAGE(iseq))) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "should not compile with coverage");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "should not compile with coverage");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     dump_obj = TypedData_Make_Struct(0, struct ibf_dump, &amp;ibf_dump_type, dump);</div><div class='hunk'>@@ -9907,26 +13142,25 @@ rb_iseq_ibf_dump(const rb_iseq_t *iseq, VALUE opt)</div><div class='ctx'>     header.magic[1] = 'A';</div><div class='ctx'>     header.magic[2] = 'R';</div><div class='ctx'>     header.magic[3] = 'B';</div><div class='del'>-    header.major_version = ISEQ_MAJOR_VERSION;</div><div class='del'>-    header.minor_version = ISEQ_MINOR_VERSION;</div><div class='add'>+    header.major_version = IBF_MAJOR_VERSION;</div><div class='add'>+    header.minor_version = IBF_MINOR_VERSION;</div><div class='ctx'>     ibf_dump_iseq_list(dump, &amp;header);</div><div class='del'>-    ibf_dump_id_list(dump, &amp;header);</div><div class='del'>-    ibf_dump_object_list(dump, &amp;header);</div><div class='add'>+    ibf_dump_object_list(dump, &amp;header.global_object_list_offset, &amp;header.global_object_list_size);</div><div class='ctx'>     header.size = ibf_dump_pos(dump);</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(opt)) {</div><div class='del'>-	VALUE opt_str = opt;</div><div class='del'>-	const char *ptr = StringValuePtr(opt_str);</div><div class='del'>-	header.extra_size = RSTRING_LENINT(opt_str);</div><div class='del'>-	ibf_dump_write(dump, ptr, header.extra_size);</div><div class='add'>+        VALUE opt_str = opt;</div><div class='add'>+        const char *ptr = StringValuePtr(opt_str);</div><div class='add'>+        header.extra_size = RSTRING_LENINT(opt_str);</div><div class='add'>+        ibf_dump_write(dump, ptr, header.extra_size);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	header.extra_size = 0;</div><div class='add'>+        header.extra_size = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ibf_dump_overwrite(dump, &amp;header, sizeof(header), 0);</div><div class='ctx'> </div><div class='del'>-    str = dump-&gt;str;</div><div class='add'>+    str = dump-&gt;global_buffer.str;</div><div class='ctx'>     ibf_dump_free(dump);</div><div class='ctx'>     DATA_PTR(dump_obj) = NULL;</div><div class='ctx'>     RB_GC_GUARD(dump_obj);</div><div class='hunk'>@@ -9936,7 +13170,7 @@ rb_iseq_ibf_dump(const rb_iseq_t *iseq, VALUE opt)</div><div class='ctx'> static const ibf_offset_t *</div><div class='ctx'> ibf_iseq_list(const struct ibf_load *load)</div><div class='ctx'> {</div><div class='del'>-    return (ibf_offset_t *)(load-&gt;buff + load-&gt;header-&gt;iseq_list_offset);</div><div class='add'>+    return (const ibf_offset_t *)(load-&gt;global_buffer.buff + load-&gt;header-&gt;iseq_list_offset);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -9944,26 +13178,22 @@ rb_ibf_load_iseq_complete(rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     struct ibf_load *load = RTYPEDDATA_DATA(iseq-&gt;aux.loader.obj);</div><div class='ctx'>     rb_iseq_t *prev_src_iseq = load-&gt;iseq;</div><div class='del'>-    const ibf_offset_t offset = ibf_iseq_list(load)[iseq-&gt;aux.loader.index];</div><div class='add'>+    ibf_offset_t offset = ibf_iseq_list(load)[iseq-&gt;aux.loader.index];</div><div class='ctx'>     load-&gt;iseq = iseq;</div><div class='ctx'> #if IBF_ISEQ_DEBUG</div><div class='ctx'>     fprintf(stderr, "rb_ibf_load_iseq_complete: index=%#x offset=%#x size=%#x\n",</div><div class='del'>-	    iseq-&gt;aux.loader.index, offset,</div><div class='del'>-	    load-&gt;header-&gt;size);</div><div class='add'>+            iseq-&gt;aux.loader.index, offset,</div><div class='add'>+            load-&gt;header-&gt;size);</div><div class='ctx'> #endif</div><div class='del'>-    if (offset % sizeof(VALUE)) {</div><div class='del'>-        rb_raise(rb_eArgError, "unaligned iseq offset: %#x @ %u",</div><div class='del'>-                 offset, iseq-&gt;aux.loader.index);</div><div class='del'>-    }</div><div class='ctx'>     ibf_load_iseq_each(load, iseq, offset);</div><div class='ctx'>     ISEQ_COMPILE_DATA_CLEAR(iseq);</div><div class='del'>-    FL_UNSET(iseq, ISEQ_NOT_LOADED_YET);</div><div class='add'>+    FL_UNSET((VALUE)iseq, ISEQ_NOT_LOADED_YET);</div><div class='ctx'>     rb_iseq_init_trace(iseq);</div><div class='ctx'>     load-&gt;iseq = prev_src_iseq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if USE_LAZY_LOAD</div><div class='del'>-const rb_iseq_t *</div><div class='add'>+MJIT_FUNC_EXPORTED const rb_iseq_t *</div><div class='ctx'> rb_iseq_complete(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     rb_ibf_load_iseq_complete((rb_iseq_t *)iseq);</div><div class='hunk'>@@ -9978,93 +13208,106 @@ ibf_load_iseq(const struct ibf_load *load, const rb_iseq_t *index_iseq)</div><div class='ctx'> </div><div class='ctx'> #if IBF_ISEQ_DEBUG</div><div class='ctx'>     fprintf(stderr, "ibf_load_iseq: index_iseq=%p iseq_list=%p\n",</div><div class='del'>-	    index_iseq, (void *)load-&gt;iseq_list);</div><div class='add'>+            (void *)index_iseq, (void *)load-&gt;iseq_list);</div><div class='ctx'> #endif</div><div class='ctx'>     if (iseq_index == -1) {</div><div class='del'>-	return NULL;</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE iseqv = rb_ary_entry(load-&gt;iseq_list, iseq_index);</div><div class='add'>+        VALUE iseqv = pinned_list_fetch(load-&gt;iseq_list, iseq_index);</div><div class='ctx'> </div><div class='ctx'> #if IBF_ISEQ_DEBUG</div><div class='del'>-	fprintf(stderr, "ibf_load_iseq: iseqv=%p\n", (void *)iseqv);</div><div class='add'>+        fprintf(stderr, "ibf_load_iseq: iseqv=%p\n", (void *)iseqv);</div><div class='ctx'> #endif</div><div class='del'>-	if (iseqv != Qnil) {</div><div class='del'>-	    return (rb_iseq_t *)iseqv;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_iseq_t *iseq = iseq_imemo_alloc();</div><div class='add'>+        if (iseqv) {</div><div class='add'>+            return (rb_iseq_t *)iseqv;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_iseq_t *iseq = iseq_imemo_alloc();</div><div class='ctx'> #if IBF_ISEQ_DEBUG</div><div class='del'>-	    fprintf(stderr, "ibf_load_iseq: new iseq=%p\n", iseq);</div><div class='add'>+            fprintf(stderr, "ibf_load_iseq: new iseq=%p\n", (void *)iseq);</div><div class='ctx'> #endif</div><div class='del'>-	    FL_SET(iseq, ISEQ_NOT_LOADED_YET);</div><div class='del'>-	    iseq-&gt;aux.loader.obj = load-&gt;loader_obj;</div><div class='del'>-	    iseq-&gt;aux.loader.index = iseq_index;</div><div class='add'>+            FL_SET((VALUE)iseq, ISEQ_NOT_LOADED_YET);</div><div class='add'>+            iseq-&gt;aux.loader.obj = load-&gt;loader_obj;</div><div class='add'>+            iseq-&gt;aux.loader.index = iseq_index;</div><div class='ctx'> #if IBF_ISEQ_DEBUG</div><div class='del'>-	    fprintf(stderr, "ibf_load_iseq: iseq=%p loader_obj=%p index=%d\n",</div><div class='del'>-		    iseq, (void *)load-&gt;loader_obj, iseq_index);</div><div class='add'>+            fprintf(stderr, "ibf_load_iseq: iseq=%p loader_obj=%p index=%d\n",</div><div class='add'>+                    (void *)iseq, (void *)load-&gt;loader_obj, iseq_index);</div><div class='ctx'> #endif</div><div class='del'>-	    rb_ary_store(load-&gt;iseq_list, iseq_index, (VALUE)iseq);</div><div class='add'>+            pinned_list_store(load-&gt;iseq_list, iseq_index, (VALUE)iseq);</div><div class='ctx'> </div><div class='ctx'> #if !USE_LAZY_LOAD</div><div class='ctx'> #if IBF_ISEQ_DEBUG</div><div class='del'>-	    fprintf(stderr, "ibf_load_iseq: loading iseq=%p\n", iseq);</div><div class='add'>+            fprintf(stderr, "ibf_load_iseq: loading iseq=%p\n", (void *)iseq);</div><div class='ctx'> #endif</div><div class='del'>-	    rb_ibf_load_iseq_complete(iseq);</div><div class='add'>+            rb_ibf_load_iseq_complete(iseq);</div><div class='add'>+#else</div><div class='add'>+            if (GET_VM()-&gt;builtin_function_table) {</div><div class='add'>+                rb_ibf_load_iseq_complete(iseq);</div><div class='add'>+            }</div><div class='ctx'> #endif /* !USE_LAZY_LOAD */</div><div class='ctx'> </div><div class='ctx'> #if IBF_ISEQ_DEBUG</div><div class='del'>-	    fprintf(stderr, "ibf_load_iseq: iseq=%p loaded %p\n",</div><div class='del'>-		    iseq, load-&gt;iseq);</div><div class='add'>+            fprintf(stderr, "ibf_load_iseq: iseq=%p loaded %p\n",</div><div class='add'>+                    (void *)iseq, (void *)load-&gt;iseq);</div><div class='ctx'> #endif</div><div class='del'>-	    return iseq;</div><div class='del'>-	}</div><div class='add'>+            return iseq;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-ibf_load_setup(struct ibf_load *load, VALUE loader_obj, VALUE str)</div><div class='add'>+ibf_load_setup_bytes(struct ibf_load *load, VALUE loader_obj, const char *bytes, size_t size)</div><div class='ctx'> {</div><div class='del'>-    rb_check_safe_obj(str);</div><div class='del'>-</div><div class='del'>-    if (RSTRING_LENINT(str) &lt; (int)sizeof(struct ibf_header)) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "broken binary format");</div><div class='del'>-    }</div><div class='del'>-    RB_OBJ_WRITE(loader_obj, &amp;load-&gt;str, str);</div><div class='ctx'>     load-&gt;loader_obj = loader_obj;</div><div class='del'>-    load-&gt;buff = StringValuePtr(str);</div><div class='del'>-    load-&gt;header = (struct ibf_header *)load-&gt;buff;</div><div class='del'>-    RB_OBJ_WRITE(loader_obj, &amp;load-&gt;iseq_list, rb_ary_tmp_new(0));</div><div class='del'>-    RB_OBJ_WRITE(loader_obj, &amp;load-&gt;obj_list, rb_ary_tmp_new(0));</div><div class='del'>-    load-&gt;id_list = ZALLOC_N(ID, load-&gt;header-&gt;id_list_size);</div><div class='add'>+    load-&gt;global_buffer.buff = bytes;</div><div class='add'>+    load-&gt;header = (struct ibf_header *)load-&gt;global_buffer.buff;</div><div class='add'>+    load-&gt;global_buffer.size = load-&gt;header-&gt;size;</div><div class='add'>+    load-&gt;global_buffer.obj_list_offset = load-&gt;header-&gt;global_object_list_offset;</div><div class='add'>+    load-&gt;global_buffer.obj_list_size = load-&gt;header-&gt;global_object_list_size;</div><div class='add'>+    RB_OBJ_WRITE(loader_obj, &amp;load-&gt;iseq_list, pinned_list_new(load-&gt;header-&gt;iseq_list_size));</div><div class='add'>+    RB_OBJ_WRITE(loader_obj, &amp;load-&gt;global_buffer.obj_list, pinned_list_new(load-&gt;global_buffer.obj_list_size));</div><div class='ctx'>     load-&gt;iseq = NULL;</div><div class='ctx'> </div><div class='del'>-    if (RSTRING_LENINT(str) &lt; (int)load-&gt;header-&gt;size) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "broken binary format");</div><div class='add'>+    load-&gt;current_buffer = &amp;load-&gt;global_buffer;</div><div class='add'>+</div><div class='add'>+    if (size &lt; load-&gt;header-&gt;size) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "broken binary format");</div><div class='ctx'>     }</div><div class='ctx'>     if (strncmp(load-&gt;header-&gt;magic, "YARB", 4) != 0) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "unknown binary format");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "unknown binary format");</div><div class='ctx'>     }</div><div class='del'>-    if (load-&gt;header-&gt;major_version != ISEQ_MAJOR_VERSION ||</div><div class='del'>-	load-&gt;header-&gt;minor_version != ISEQ_MINOR_VERSION) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "unmatched version file (%u.%u for %u.%u)",</div><div class='del'>-		 load-&gt;header-&gt;major_version, load-&gt;header-&gt;minor_version, ISEQ_MAJOR_VERSION, ISEQ_MINOR_VERSION);</div><div class='add'>+    if (load-&gt;header-&gt;major_version != IBF_MAJOR_VERSION ||</div><div class='add'>+        load-&gt;header-&gt;minor_version != IBF_MINOR_VERSION) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "unmatched version file (%u.%u for %u.%u)",</div><div class='add'>+                 load-&gt;header-&gt;major_version, load-&gt;header-&gt;minor_version, IBF_MAJOR_VERSION, IBF_MINOR_VERSION);</div><div class='ctx'>     }</div><div class='del'>-    if (strcmp(load-&gt;buff + sizeof(struct ibf_header), RUBY_PLATFORM) != 0) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "unmatched platform");</div><div class='add'>+    if (strcmp(load-&gt;global_buffer.buff + sizeof(struct ibf_header), RUBY_PLATFORM) != 0) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "unmatched platform");</div><div class='ctx'>     }</div><div class='ctx'>     if (load-&gt;header-&gt;iseq_list_offset % RUBY_ALIGNOF(ibf_offset_t)) {</div><div class='ctx'>         rb_raise(rb_eArgError, "unaligned iseq list offset: %u",</div><div class='ctx'>                  load-&gt;header-&gt;iseq_list_offset);</div><div class='ctx'>     }</div><div class='del'>-    if (load-&gt;header-&gt;id_list_offset % RUBY_ALIGNOF(long)) {</div><div class='del'>-        rb_raise(rb_eArgError, "unaligned ID list offset: %u",</div><div class='del'>-                 load-&gt;header-&gt;id_list_offset);</div><div class='del'>-    }</div><div class='del'>-    if (load-&gt;header-&gt;object_list_offset % RUBY_ALIGNOF(ibf_offset_t)) {</div><div class='add'>+    if (load-&gt;global_buffer.obj_list_offset % RUBY_ALIGNOF(ibf_offset_t)) {</div><div class='ctx'>         rb_raise(rb_eArgError, "unaligned object list offset: %u",</div><div class='del'>-                 load-&gt;header-&gt;object_list_offset);</div><div class='add'>+                 load-&gt;global_buffer.obj_list_offset);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ibf_load_setup(struct ibf_load *load, VALUE loader_obj, VALUE str)</div><div class='add'>+{</div><div class='add'>+    if (RSTRING_LENINT(str) &lt; (int)sizeof(struct ibf_header)) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "broken binary format");</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+#if USE_LAZY_LOAD</div><div class='add'>+    str = rb_str_new(RSTRING_PTR(str), RSTRING_LEN(str));</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    ibf_load_setup_bytes(load, loader_obj, StringValuePtr(str), RSTRING_LEN(str));</div><div class='add'>+    RB_OBJ_WRITE(loader_obj, &amp;load-&gt;str, str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -10073,22 +13316,20 @@ ibf_loader_mark(void *ptr)</div><div class='ctx'>     struct ibf_load *load = (struct ibf_load *)ptr;</div><div class='ctx'>     rb_gc_mark(load-&gt;str);</div><div class='ctx'>     rb_gc_mark(load-&gt;iseq_list);</div><div class='del'>-    rb_gc_mark(load-&gt;obj_list);</div><div class='add'>+    rb_gc_mark(load-&gt;global_buffer.obj_list);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> ibf_loader_free(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct ibf_load *load = (struct ibf_load *)ptr;</div><div class='del'>-    ruby_xfree(load-&gt;id_list);</div><div class='ctx'>     ruby_xfree(load);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static size_t</div><div class='ctx'> ibf_loader_memsize(const void *ptr)</div><div class='ctx'> {</div><div class='del'>-    struct ibf_load *load = (struct ibf_load *)ptr;</div><div class='del'>-    return sizeof(struct ibf_load) + load-&gt;header-&gt;id_list_size * sizeof(ID);</div><div class='add'>+    return sizeof(struct ibf_load);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const rb_data_type_t ibf_load_type = {</div><div class='hunk'>@@ -10111,6 +13352,20 @@ rb_iseq_ibf_load(VALUE str)</div><div class='ctx'>     return iseq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+const rb_iseq_t *</div><div class='add'>+rb_iseq_ibf_load_bytes(const char *bytes, size_t size)</div><div class='add'>+{</div><div class='add'>+    struct ibf_load *load;</div><div class='add'>+    rb_iseq_t *iseq;</div><div class='add'>+    VALUE loader_obj = TypedData_Make_Struct(0, struct ibf_load, &amp;ibf_load_type, load);</div><div class='add'>+</div><div class='add'>+    ibf_load_setup_bytes(load, loader_obj, bytes, size);</div><div class='add'>+    iseq = ibf_load_iseq(load, 0);</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(loader_obj);</div><div class='add'>+    return iseq;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='ctx'> rb_iseq_ibf_load_extra_data(VALUE str)</div><div class='ctx'> {</div><div class='hunk'>@@ -10119,7 +13374,7 @@ rb_iseq_ibf_load_extra_data(VALUE str)</div><div class='ctx'>     VALUE extra_str;</div><div class='ctx'> </div><div class='ctx'>     ibf_load_setup(load, loader_obj, str);</div><div class='del'>-    extra_str = rb_str_new(load-&gt;buff + load-&gt;header-&gt;size, load-&gt;header-&gt;extra_size);</div><div class='add'>+    extra_str = rb_str_new(load-&gt;global_buffer.buff + load-&gt;header-&gt;size, load-&gt;header-&gt;extra_size);</div><div class='ctx'>     RB_GC_GUARD(loader_obj);</div><div class='ctx'>     return extra_str;</div><div class='ctx'> }</div><div class='head'>diff --git a/complex.c b/complex.c<br/>index 685d4bc075..a227cb0a58 100644<br/>--- a/<a href='/ruby.git/tree/complex.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>complex.c</a><br/>+++ b/<a href='/ruby.git/tree/complex.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>complex.c</a></div><div class='hunk'>@@ -5,16 +5,25 @@</div><div class='ctx'>   which is written in ruby.</div><div class='ctx'> */</div><div class='ctx'> </div><div class='del'>-#include "ruby/config.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='ctx'> #if defined _MSC_VER</div><div class='ctx'> /* Microsoft Visual C does not define M_PI and others by default */</div><div class='ctx'> # define _USE_MATH_DEFINES 1</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='add'>+#include &lt;ctype.h&gt;</div><div class='ctx'> #include &lt;math.h&gt;</div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "id.h"</div><div class='ctx'> </div><div class='del'>-#define NDEBUG</div><div class='add'>+#include "id.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/array.h"</div><div class='add'>+#include "internal/class.h"</div><div class='add'>+#include "internal/complex.h"</div><div class='add'>+#include "internal/math.h"</div><div class='add'>+#include "internal/numeric.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/rational.h"</div><div class='ctx'> #include "ruby_assert.h"</div><div class='ctx'> </div><div class='ctx'> #define ZERO INT2FIX(0)</div><div class='hunk'>@@ -25,15 +34,11 @@</div><div class='ctx'> #else</div><div class='ctx'> static VALUE RFLOAT_0;</div><div class='ctx'> #endif</div><div class='del'>-#if defined(HAVE_SIGNBIT) &amp;&amp; defined(__GNUC__) &amp;&amp; defined(__sun) &amp;&amp; \</div><div class='del'>-    !defined(signbit)</div><div class='del'>-extern int signbit(double);</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> VALUE rb_cComplex;</div><div class='ctx'> </div><div class='ctx'> static ID id_abs, id_arg,</div><div class='del'>-    id_denominator, id_fdiv, id_numerator, id_quo,</div><div class='add'>+    id_denominator, id_numerator,</div><div class='ctx'>     id_real_p, id_i_real, id_i_imag,</div><div class='ctx'>     id_finite_p, id_infinite_p, id_rationalize,</div><div class='ctx'>     id_PI;</div><div class='hunk'>@@ -42,15 +47,8 @@ static ID id_abs, id_arg,</div><div class='ctx'> #define id_negate idUMinus</div><div class='ctx'> #define id_expt idPow</div><div class='ctx'> #define id_to_f idTo_f</div><div class='del'>-</div><div class='del'>-#define f_boolcast(x) ((x) ? Qtrue : Qfalse)</div><div class='del'>-</div><div class='del'>-#define binop(n,op) \</div><div class='del'>-inline static VALUE \</div><div class='del'>-f_##n(VALUE x, VALUE y)\</div><div class='del'>-{\</div><div class='del'>-    return rb_funcall(x, (op), 1, y);\</div><div class='del'>-}</div><div class='add'>+#define id_quo idQuo</div><div class='add'>+#define id_fdiv idFdiv</div><div class='ctx'> </div><div class='ctx'> #define fun1(n) \</div><div class='ctx'> inline static VALUE \</div><div class='hunk'>@@ -71,10 +69,27 @@ f_##n(VALUE x, VALUE y)\</div><div class='ctx'> inline static VALUE</div><div class='ctx'> f_add(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    if (FIXNUM_ZERO_P(y))</div><div class='del'>-	return x;</div><div class='del'>-    if (FIXNUM_ZERO_P(x))</div><div class='del'>-	return y;</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x) &amp;&amp;</div><div class='add'>+        LIKELY(rb_method_basic_definition_p(rb_cInteger, idPLUS))) {</div><div class='add'>+        if (FIXNUM_ZERO_P(x))</div><div class='add'>+            return y;</div><div class='add'>+        if (FIXNUM_ZERO_P(y))</div><div class='add'>+            return x;</div><div class='add'>+        return rb_int_plus(x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(x) &amp;&amp;</div><div class='add'>+             LIKELY(rb_method_basic_definition_p(rb_cFloat, idPLUS))) {</div><div class='add'>+        if (FIXNUM_ZERO_P(y))</div><div class='add'>+            return x;</div><div class='add'>+        return rb_float_plus(x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_RATIONAL) &amp;&amp;</div><div class='add'>+             LIKELY(rb_method_basic_definition_p(rb_cRational, idPLUS))) {</div><div class='add'>+        if (FIXNUM_ZERO_P(y))</div><div class='add'>+            return x;</div><div class='add'>+        return rb_rational_plus(x, y);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     return rb_funcall(x, '+', 1, y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -82,7 +97,7 @@ inline static VALUE</div><div class='ctx'> f_div(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     if (FIXNUM_P(y) &amp;&amp; FIX2LONG(y) == 1)</div><div class='del'>-	return x;</div><div class='add'>+        return x;</div><div class='ctx'>     return rb_funcall(x, '/', 1, y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -106,26 +121,104 @@ f_gt_p(VALUE x, VALUE y)</div><div class='ctx'> inline static VALUE</div><div class='ctx'> f_mul(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    if (FIXNUM_ZERO_P(y) &amp;&amp; RB_INTEGER_TYPE_P(x))</div><div class='del'>-	return ZERO;</div><div class='del'>-    if (FIXNUM_ZERO_P(x) &amp;&amp; RB_INTEGER_TYPE_P(y))</div><div class='del'>-	return ZERO;</div><div class='del'>-    if (y == ONE) return x;</div><div class='del'>-    if (x == ONE) return y;</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x) &amp;&amp;</div><div class='add'>+        LIKELY(rb_method_basic_definition_p(rb_cInteger, idMULT))) {</div><div class='add'>+        if (FIXNUM_ZERO_P(y))</div><div class='add'>+            return ZERO;</div><div class='add'>+        if (FIXNUM_ZERO_P(x) &amp;&amp; RB_INTEGER_TYPE_P(y))</div><div class='add'>+            return ZERO;</div><div class='add'>+        if (x == ONE) return y;</div><div class='add'>+        if (y == ONE) return x;</div><div class='add'>+        return rb_int_mul(x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(x) &amp;&amp;</div><div class='add'>+             LIKELY(rb_method_basic_definition_p(rb_cFloat, idMULT))) {</div><div class='add'>+        if (y == ONE) return x;</div><div class='add'>+        return rb_float_mul(x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_RATIONAL) &amp;&amp;</div><div class='add'>+             LIKELY(rb_method_basic_definition_p(rb_cRational, idMULT))) {</div><div class='add'>+        if (y == ONE) return x;</div><div class='add'>+        return rb_rational_mul(x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (LIKELY(rb_method_basic_definition_p(CLASS_OF(x), idMULT))) {</div><div class='add'>+        if (y == ONE) return x;</div><div class='add'>+    }</div><div class='ctx'>     return rb_funcall(x, '*', 1, y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> inline static VALUE</div><div class='ctx'> f_sub(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    if (FIXNUM_ZERO_P(y))</div><div class='del'>-	return x;</div><div class='add'>+    if (FIXNUM_ZERO_P(y) &amp;&amp;</div><div class='add'>+        LIKELY(rb_method_basic_definition_p(CLASS_OF(x), idMINUS))) {</div><div class='add'>+        return x;</div><div class='add'>+    }</div><div class='ctx'>     return rb_funcall(x, '-', 1, y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-fun1(abs)</div><div class='del'>-fun1(arg)</div><div class='del'>-fun1(denominator)</div><div class='add'>+inline static VALUE</div><div class='add'>+f_abs(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x)) {</div><div class='add'>+        return rb_int_abs(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+        return rb_float_abs(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='add'>+        return rb_rational_abs(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_COMPLEX)) {</div><div class='add'>+        return rb_complex_abs(x);</div><div class='add'>+    }</div><div class='add'>+    return rb_funcall(x, id_abs, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE numeric_arg(VALUE self);</div><div class='add'>+static VALUE float_arg(VALUE self);</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_arg(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x)) {</div><div class='add'>+        return numeric_arg(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+        return float_arg(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='add'>+        return numeric_arg(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_COMPLEX)) {</div><div class='add'>+        return rb_complex_arg(x);</div><div class='add'>+    }</div><div class='add'>+    return rb_funcall(x, id_arg, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_numerator(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='add'>+        return RRATIONAL(x)-&gt;num;</div><div class='add'>+    }</div><div class='add'>+    if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+        return rb_float_numerator(x);</div><div class='add'>+    }</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_denominator(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='add'>+        return RRATIONAL(x)-&gt;den;</div><div class='add'>+    }</div><div class='add'>+    if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+        return rb_float_denominator(x);</div><div class='add'>+    }</div><div class='add'>+    return INT2FIX(1);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> inline static VALUE</div><div class='ctx'> f_negate(VALUE x)</div><div class='hunk'>@@ -145,21 +238,39 @@ f_negate(VALUE x)</div><div class='ctx'>     return rb_funcall(x, id_negate, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-fun1(numerator)</div><div class='del'>-fun1(real_p)</div><div class='add'>+static bool nucomp_real_p(VALUE self);</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+f_real_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x)) {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(x, T_COMPLEX)) {</div><div class='add'>+        return nucomp_real_p(x);</div><div class='add'>+    }</div><div class='add'>+    return rb_funcall(x, id_real_p, 0);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> inline static VALUE</div><div class='ctx'> f_to_i(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     if (RB_TYPE_P(x, T_STRING))</div><div class='del'>-	return rb_str_to_inum(x, 10, 0);</div><div class='add'>+        return rb_str_to_inum(x, 10, 0);</div><div class='ctx'>     return rb_funcall(x, id_to_i, 0);</div><div class='ctx'> }</div><div class='add'>+</div><div class='ctx'> inline static VALUE</div><div class='ctx'> f_to_f(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     if (RB_TYPE_P(x, T_STRING))</div><div class='del'>-	return DBL2NUM(rb_str_to_dbl(x, 0));</div><div class='add'>+        return DBL2NUM(rb_str_to_dbl(x, 0));</div><div class='ctx'>     return rb_funcall(x, id_to_f, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -169,15 +280,27 @@ inline static int</div><div class='ctx'> f_eqeq_p(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     if (FIXNUM_P(x) &amp;&amp; FIXNUM_P(y))</div><div class='del'>-	return x == y;</div><div class='add'>+        return x == y;</div><div class='ctx'>     else if (RB_FLOAT_TYPE_P(x) || RB_FLOAT_TYPE_P(y))</div><div class='del'>-	return NUM2DBL(x) == NUM2DBL(y);</div><div class='add'>+        return NUM2DBL(x) == NUM2DBL(y);</div><div class='ctx'>     return (int)rb_equal(x, y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> fun2(expt)</div><div class='ctx'> fun2(fdiv)</div><div class='del'>-fun2(quo)</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+f_quo(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(x))</div><div class='add'>+        return rb_numeric_quo(x, y);</div><div class='add'>+    if (RB_FLOAT_TYPE_P(x))</div><div class='add'>+        return rb_float_div(x, y);</div><div class='add'>+    if (RB_TYPE_P(x, T_RATIONAL))</div><div class='add'>+        return rb_numeric_quo(x, y);</div><div class='add'>+</div><div class='add'>+    return rb_funcallv(x, id_quo, 1, &amp;y);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> inline static int</div><div class='ctx'> f_negative_p(VALUE x)</div><div class='hunk'>@@ -193,51 +316,54 @@ f_negative_p(VALUE x)</div><div class='ctx'> </div><div class='ctx'> #define f_positive_p(x) (!f_negative_p(x))</div><div class='ctx'> </div><div class='del'>-inline static int</div><div class='add'>+inline static bool</div><div class='ctx'> f_zero_p(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    if (RB_INTEGER_TYPE_P(x)) {</div><div class='add'>+    if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+        return FLOAT_ZERO_P(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_INTEGER_TYPE_P(x)) {</div><div class='ctx'>         return FIXNUM_ZERO_P(x);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='ctx'>         const VALUE num = RRATIONAL(x)-&gt;num;</div><div class='ctx'>         return FIXNUM_ZERO_P(num);</div><div class='ctx'>     }</div><div class='del'>-    return (int)rb_equal(x, ZERO);</div><div class='add'>+    return rb_equal(x, ZERO) != 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define f_nonzero_p(x) (!f_zero_p(x))</div><div class='ctx'> </div><div class='del'>-VALUE rb_flo_is_finite_p(VALUE num);</div><div class='add'>+static inline bool</div><div class='add'>+always_finite_type_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (FIXNUM_P(x)) return true;</div><div class='add'>+    if (FLONUM_P(x)) return true; /* Infinity can't be a flonum */</div><div class='add'>+    return (RB_INTEGER_TYPE_P(x) || RB_TYPE_P(x, T_RATIONAL));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> inline static int</div><div class='ctx'> f_finite_p(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    if (RB_INTEGER_TYPE_P(x)) {</div><div class='add'>+    if (always_finite_type_p(x)) {</div><div class='ctx'>         return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_FLOAT_TYPE_P(x)) {</div><div class='del'>-	return (int)rb_flo_is_finite_p(x);</div><div class='del'>-    }</div><div class='del'>-    else if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='del'>-	return TRUE;</div><div class='add'>+        return isfinite(RFLOAT_VALUE(x));</div><div class='ctx'>     }</div><div class='ctx'>     return RTEST(rb_funcallv(x, id_finite_p, 0, 0));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE rb_flo_is_infinite_p(VALUE num);</div><div class='del'>-inline static VALUE</div><div class='add'>+inline static int</div><div class='ctx'> f_infinite_p(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    if (RB_INTEGER_TYPE_P(x)) {</div><div class='del'>-        return Qnil;</div><div class='add'>+    if (always_finite_type_p(x)) {</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_FLOAT_TYPE_P(x)) {</div><div class='del'>-	return rb_flo_is_infinite_p(x);</div><div class='add'>+        return isinf(RFLOAT_VALUE(x));</div><div class='ctx'>     }</div><div class='del'>-    else if (RB_TYPE_P(x, T_RATIONAL)) {</div><div class='del'>-        return Qnil;</div><div class='del'>-    }</div><div class='del'>-    return rb_funcallv(x, id_infinite_p, 0, 0);</div><div class='add'>+    return RTEST(rb_funcallv(x, id_infinite_p, 0, 0));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> inline static int</div><div class='hunk'>@@ -269,7 +395,7 @@ nucomp_s_new_internal(VALUE klass, VALUE real, VALUE imag)</div><div class='ctx'> </div><div class='ctx'>     RCOMPLEX_SET_REAL(obj, real);</div><div class='ctx'>     RCOMPLEX_SET_IMAG(obj, imag);</div><div class='del'>-    OBJ_FREEZE_RAW(obj);</div><div class='add'>+    OBJ_FREEZE_RAW((VALUE)obj);</div><div class='ctx'> </div><div class='ctx'>     return (VALUE)obj;</div><div class='ctx'> }</div><div class='hunk'>@@ -295,62 +421,53 @@ f_complex_new_bang2(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'>     return nucomp_s_new_internal(klass, x, y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef CANONICALIZATION_FOR_MATHN</div><div class='del'>-static int canonicalization = 0;</div><div class='del'>-</div><div class='del'>-RUBY_FUNC_EXPORTED void</div><div class='del'>-nucomp_canonicalization(int f)</div><div class='del'>-{</div><div class='del'>-    canonicalization = f;</div><div class='del'>-}</div><div class='del'>-#else</div><div class='del'>-#define canonicalization 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-inline static void</div><div class='add'>+WARN_UNUSED_RESULT(inline static VALUE nucomp_real_check(VALUE num));</div><div class='add'>+inline static VALUE</div><div class='ctx'> nucomp_real_check(VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     if (!RB_INTEGER_TYPE_P(num) &amp;&amp;</div><div class='del'>-	!RB_FLOAT_TYPE_P(num) &amp;&amp;</div><div class='del'>-	!RB_TYPE_P(num, T_RATIONAL)) {</div><div class='del'>-	if (!k_numeric_p(num) || !f_real_p(num))</div><div class='del'>-	    rb_raise(rb_eTypeError, "not a real");</div><div class='add'>+        !RB_FLOAT_TYPE_P(num) &amp;&amp;</div><div class='add'>+        !RB_TYPE_P(num, T_RATIONAL)) {</div><div class='add'>+        if (RB_TYPE_P(num, T_COMPLEX) &amp;&amp; nucomp_real_p(num)) {</div><div class='add'>+            VALUE real = RCOMPLEX(num)-&gt;real;</div><div class='add'>+            assert(!RB_TYPE_P(real, T_COMPLEX));</div><div class='add'>+            return real;</div><div class='add'>+        }</div><div class='add'>+        if (!k_numeric_p(num) || !f_real_p(num))</div><div class='add'>+            rb_raise(rb_eTypeError, "not a real");</div><div class='ctx'>     }</div><div class='add'>+    return num;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> inline static VALUE</div><div class='ctx'> nucomp_s_canonicalize_internal(VALUE klass, VALUE real, VALUE imag)</div><div class='ctx'> {</div><div class='ctx'>     int complex_r, complex_i;</div><div class='del'>-#ifdef CANONICALIZATION_FOR_MATHN</div><div class='del'>-    if (k_exact_zero_p(imag) &amp;&amp; canonicalization)</div><div class='del'>-	return real;</div><div class='del'>-#endif</div><div class='ctx'>     complex_r = RB_TYPE_P(real, T_COMPLEX);</div><div class='ctx'>     complex_i = RB_TYPE_P(imag, T_COMPLEX);</div><div class='ctx'>     if (!complex_r &amp;&amp; !complex_i) {</div><div class='del'>-	return nucomp_s_new_internal(klass, real, imag);</div><div class='add'>+        return nucomp_s_new_internal(klass, real, imag);</div><div class='ctx'>     }</div><div class='ctx'>     else if (!complex_r) {</div><div class='del'>-	get_dat1(imag);</div><div class='add'>+        get_dat1(imag);</div><div class='ctx'> </div><div class='del'>-	return nucomp_s_new_internal(klass,</div><div class='del'>-				     f_sub(real, dat-&gt;imag),</div><div class='del'>-				     f_add(ZERO, dat-&gt;real));</div><div class='add'>+        return nucomp_s_new_internal(klass,</div><div class='add'>+                                     f_sub(real, dat-&gt;imag),</div><div class='add'>+                                     f_add(ZERO, dat-&gt;real));</div><div class='ctx'>     }</div><div class='ctx'>     else if (!complex_i) {</div><div class='del'>-	get_dat1(real);</div><div class='add'>+        get_dat1(real);</div><div class='ctx'> </div><div class='del'>-	return nucomp_s_new_internal(klass,</div><div class='del'>-				     dat-&gt;real,</div><div class='del'>-				     f_add(dat-&gt;imag, imag));</div><div class='add'>+        return nucomp_s_new_internal(klass,</div><div class='add'>+                                     dat-&gt;real,</div><div class='add'>+                                     f_add(dat-&gt;imag, imag));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	get_dat2(real, imag);</div><div class='add'>+        get_dat2(real, imag);</div><div class='ctx'> </div><div class='del'>-	return nucomp_s_new_internal(klass,</div><div class='del'>-				     f_sub(adat-&gt;real, bdat-&gt;imag),</div><div class='del'>-				     f_add(adat-&gt;imag, bdat-&gt;real));</div><div class='add'>+        return nucomp_s_new_internal(klass,</div><div class='add'>+                                     f_sub(adat-&gt;real, bdat-&gt;imag),</div><div class='add'>+                                     f_add(adat-&gt;imag, bdat-&gt;real));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -370,22 +487,26 @@ nucomp_s_new(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'>     switch (rb_scan_args(argc, argv, "11", &amp;real, &amp;imag)) {</div><div class='ctx'>       case 1:</div><div class='del'>-	nucomp_real_check(real);</div><div class='del'>-	imag = ZERO;</div><div class='del'>-	break;</div><div class='add'>+        real = nucomp_real_check(real);</div><div class='add'>+        imag = ZERO;</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	nucomp_real_check(real);</div><div class='del'>-	nucomp_real_check(imag);</div><div class='del'>-	break;</div><div class='add'>+        real = nucomp_real_check(real);</div><div class='add'>+        imag = nucomp_real_check(imag);</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return nucomp_s_canonicalize_internal(klass, real, imag);</div><div class='add'>+    return nucomp_s_new_internal(klass, real, imag);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> inline static VALUE</div><div class='ctx'> f_complex_new2(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    assert(!RB_TYPE_P(x, T_COMPLEX));</div><div class='add'>+    if (RB_TYPE_P(x, T_COMPLEX)) {</div><div class='add'>+        get_dat1(x);</div><div class='add'>+        x = dat-&gt;real;</div><div class='add'>+        y = f_add(dat-&gt;imag, y);</div><div class='add'>+    }</div><div class='ctx'>     return nucomp_s_canonicalize_internal(klass, x, y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -394,7 +515,7 @@ static VALUE nucomp_s_convert(int argc, VALUE *argv, VALUE klass);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Complex(x[, y])  -&gt;  numeric</div><div class='add'>+ *    Complex(x[, y], exception: true)  -&gt;  numeric or nil</div><div class='ctx'>  *</div><div class='ctx'>  * Returns x+i*y;</div><div class='ctx'>  *</div><div class='hunk'>@@ -403,6 +524,9 @@ static VALUE nucomp_s_convert(int argc, VALUE *argv, VALUE klass);</div><div class='ctx'>  *    Complex(nil)     #=&gt; TypeError</div><div class='ctx'>  *    Complex(1, nil)  #=&gt; TypeError</div><div class='ctx'>  *</div><div class='add'>+ *    Complex(1, nil, exception: false)  #=&gt; nil</div><div class='add'>+ *    Complex('1+2', exception: false)   #=&gt; nil</div><div class='add'>+ *</div><div class='ctx'>  * Syntax of string form:</div><div class='ctx'>  *</div><div class='ctx'>  *   string form = extra spaces , complex , extra spaces ;</div><div class='hunk'>@@ -435,13 +559,10 @@ nucomp_f_complex(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>         a2 = Qundef;</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(opts)) {</div><div class='del'>-        static ID kwds[1];</div><div class='del'>-        VALUE exception;</div><div class='del'>-        if (!kwds[0]) {</div><div class='del'>-            kwds[0] = rb_intern_const("exception");</div><div class='del'>-        }</div><div class='del'>-        rb_get_kwargs(opts, kwds, 0, 1, &amp;exception);</div><div class='del'>-        raise = (exception != Qfalse);</div><div class='add'>+        raise = rb_opts_exception_p(opts, raise);</div><div class='add'>+    }</div><div class='add'>+    if (argc &gt; 0 &amp;&amp; CLASS_OF(a1) == rb_cComplex &amp;&amp; UNDEF_P(a2)) {</div><div class='add'>+        return a1;</div><div class='ctx'>     }</div><div class='ctx'>     return nucomp_convert(rb_cComplex, a1, a2, raise);</div><div class='ctx'> }</div><div class='hunk'>@@ -470,14 +591,14 @@ static VALUE</div><div class='ctx'> m_cos(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     if (!RB_TYPE_P(x, T_COMPLEX))</div><div class='del'>-	return m_cos_bang(x);</div><div class='add'>+        return m_cos_bang(x);</div><div class='ctx'>     {</div><div class='del'>-	get_dat1(x);</div><div class='del'>-	return f_complex_new2(rb_cComplex,</div><div class='del'>-			      f_mul(m_cos_bang(dat-&gt;real),</div><div class='del'>-				    m_cosh_bang(dat-&gt;imag)),</div><div class='del'>-			      f_mul(f_negate(m_sin_bang(dat-&gt;real)),</div><div class='del'>-				    m_sinh_bang(dat-&gt;imag)));</div><div class='add'>+        get_dat1(x);</div><div class='add'>+        return f_complex_new2(rb_cComplex,</div><div class='add'>+                              f_mul(m_cos_bang(dat-&gt;real),</div><div class='add'>+                                    m_cosh_bang(dat-&gt;imag)),</div><div class='add'>+                              f_mul(f_negate(m_sin_bang(dat-&gt;real)),</div><div class='add'>+                                    m_sinh_bang(dat-&gt;imag)));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -485,60 +606,73 @@ static VALUE</div><div class='ctx'> m_sin(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     if (!RB_TYPE_P(x, T_COMPLEX))</div><div class='del'>-	return m_sin_bang(x);</div><div class='add'>+        return m_sin_bang(x);</div><div class='ctx'>     {</div><div class='del'>-	get_dat1(x);</div><div class='del'>-	return f_complex_new2(rb_cComplex,</div><div class='del'>-			      f_mul(m_sin_bang(dat-&gt;real),</div><div class='del'>-				    m_cosh_bang(dat-&gt;imag)),</div><div class='del'>-			      f_mul(m_cos_bang(dat-&gt;real),</div><div class='del'>-				    m_sinh_bang(dat-&gt;imag)));</div><div class='add'>+        get_dat1(x);</div><div class='add'>+        return f_complex_new2(rb_cComplex,</div><div class='add'>+                              f_mul(m_sin_bang(dat-&gt;real),</div><div class='add'>+                                    m_cosh_bang(dat-&gt;imag)),</div><div class='add'>+                              f_mul(m_cos_bang(dat-&gt;real),</div><div class='add'>+                                    m_sinh_bang(dat-&gt;imag)));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-f_complex_polar(VALUE klass, VALUE x, VALUE y)</div><div class='add'>+f_complex_polar_real(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    assert(!RB_TYPE_P(x, T_COMPLEX));</div><div class='del'>-    assert(!RB_TYPE_P(y, T_COMPLEX));</div><div class='ctx'>     if (f_zero_p(x) || f_zero_p(y)) {</div><div class='del'>-	if (canonicalization) return x;</div><div class='del'>-	return nucomp_s_new_internal(klass, x, RFLOAT_0);</div><div class='add'>+        return nucomp_s_new_internal(klass, x, RFLOAT_0);</div><div class='ctx'>     }</div><div class='ctx'>     if (RB_FLOAT_TYPE_P(y)) {</div><div class='del'>-	const double arg = RFLOAT_VALUE(y);</div><div class='del'>-	if (arg == M_PI) {</div><div class='del'>-	    x = f_negate(x);</div><div class='del'>-	    if (canonicalization) return x;</div><div class='del'>-	    y = RFLOAT_0;</div><div class='del'>-	}</div><div class='del'>-	else if (arg == M_PI_2) {</div><div class='del'>-	    y = x;</div><div class='del'>-	    x = RFLOAT_0;</div><div class='del'>-	}</div><div class='del'>-	else if (arg == M_PI_2+M_PI) {</div><div class='del'>-	    y = f_negate(x);</div><div class='del'>-	    x = RFLOAT_0;</div><div class='del'>-	}</div><div class='del'>-	else if (RB_FLOAT_TYPE_P(x)) {</div><div class='del'>-	    const double abs = RFLOAT_VALUE(x);</div><div class='del'>-	    const double real = abs * cos(arg), imag = abs * sin(arg);</div><div class='del'>-	    x = DBL2NUM(real);</div><div class='del'>-	    if (canonicalization &amp;&amp; imag == 0.0) return x;</div><div class='del'>-	    y = DBL2NUM(imag);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    y = f_mul(x, DBL2NUM(sin(arg)));</div><div class='del'>-	    x = f_mul(x, DBL2NUM(cos(arg)));</div><div class='del'>-	    if (canonicalization &amp;&amp; f_zero_p(y)) return x;</div><div class='del'>-	}</div><div class='del'>-	return nucomp_s_new_internal(klass, x, y);</div><div class='add'>+        const double arg = RFLOAT_VALUE(y);</div><div class='add'>+        if (arg == M_PI) {</div><div class='add'>+            x = f_negate(x);</div><div class='add'>+            y = RFLOAT_0;</div><div class='add'>+        }</div><div class='add'>+        else if (arg == M_PI_2) {</div><div class='add'>+            y = x;</div><div class='add'>+            x = RFLOAT_0;</div><div class='add'>+        }</div><div class='add'>+        else if (arg == M_PI_2+M_PI) {</div><div class='add'>+            y = f_negate(x);</div><div class='add'>+            x = RFLOAT_0;</div><div class='add'>+        }</div><div class='add'>+        else if (RB_FLOAT_TYPE_P(x)) {</div><div class='add'>+            const double abs = RFLOAT_VALUE(x);</div><div class='add'>+            const double real = abs * cos(arg), imag = abs * sin(arg);</div><div class='add'>+            x = DBL2NUM(real);</div><div class='add'>+            y = DBL2NUM(imag);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            const double ax = sin(arg), ay = cos(arg);</div><div class='add'>+            y = f_mul(x, DBL2NUM(ax));</div><div class='add'>+            x = f_mul(x, DBL2NUM(ay));</div><div class='add'>+        }</div><div class='add'>+        return nucomp_s_new_internal(klass, x, y);</div><div class='ctx'>     }</div><div class='ctx'>     return nucomp_s_canonicalize_internal(klass,</div><div class='del'>-					  f_mul(x, m_cos(y)),</div><div class='del'>-					  f_mul(x, m_sin(y)));</div><div class='add'>+                                          f_mul(x, m_cos(y)),</div><div class='add'>+                                          f_mul(x, m_sin(y)));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+f_complex_polar(VALUE klass, VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    x = nucomp_real_check(x);</div><div class='add'>+    y = nucomp_real_check(y);</div><div class='add'>+    return f_complex_polar_real(klass, x, y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE___COSPI</div><div class='add'>+# define cospi(x) __cospi(x)</div><div class='add'>+#else</div><div class='add'>+# define cospi(x) cos((x) * M_PI)</div><div class='add'>+#endif</div><div class='add'>+#ifdef HAVE___SINPI</div><div class='add'>+# define sinpi(x) __sinpi(x)</div><div class='add'>+#else</div><div class='add'>+# define sinpi(x) sin((x) * M_PI)</div><div class='add'>+#endif</div><div class='ctx'> /* returns a Complex or Float of ang*PI-rotated abs */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_dbl_complex_new_polar_pi(double abs, double ang)</div><div class='hunk'>@@ -548,16 +682,16 @@ rb_dbl_complex_new_polar_pi(double abs, double ang)</div><div class='ctx'>     int pos = fr == +0.5;</div><div class='ctx'> </div><div class='ctx'>     if (pos || fr == -0.5) {</div><div class='del'>-	if ((modf(fi / 2.0, &amp;fi) != fr) ^ pos) abs = -abs;</div><div class='del'>-	return rb_complex_new(RFLOAT_0, DBL2NUM(abs));</div><div class='add'>+        if ((modf(fi / 2.0, &amp;fi) != fr) ^ pos) abs = -abs;</div><div class='add'>+        return rb_complex_new(RFLOAT_0, DBL2NUM(abs));</div><div class='ctx'>     }</div><div class='ctx'>     else if (fr == 0.0) {</div><div class='del'>-	if (modf(fi / 2.0, &amp;fi) != 0.0) abs = -abs;</div><div class='del'>-	return DBL2NUM(abs);</div><div class='add'>+        if (modf(fi / 2.0, &amp;fi) != 0.0) abs = -abs;</div><div class='add'>+        return DBL2NUM(abs);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ang *= M_PI;</div><div class='del'>-	return rb_complex_new(DBL2NUM(abs * cos(ang)), DBL2NUM(abs * sin(ang)));</div><div class='add'>+        const double real = abs * cospi(ang), imag = abs * sinpi(ang);</div><div class='add'>+        return rb_complex_new(DBL2NUM(real), DBL2NUM(imag));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -577,17 +711,15 @@ nucomp_s_polar(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     VALUE abs, arg;</div><div class='ctx'> </div><div class='del'>-    switch (rb_scan_args(argc, argv, "11", &amp;abs, &amp;arg)) {</div><div class='del'>-      case 1:</div><div class='del'>-	nucomp_real_check(abs);</div><div class='del'>-	if (canonicalization) return abs;</div><div class='del'>-	return nucomp_s_new_internal(klass, abs, ZERO);</div><div class='del'>-      default:</div><div class='del'>-	nucomp_real_check(abs);</div><div class='del'>-	nucomp_real_check(arg);</div><div class='del'>-	break;</div><div class='add'>+    argc = rb_scan_args(argc, argv, "11", &amp;abs, &amp;arg);</div><div class='add'>+    abs = nucomp_real_check(abs);</div><div class='add'>+    if (argc == 2) {</div><div class='add'>+        arg = nucomp_real_check(arg);</div><div class='ctx'>     }</div><div class='del'>-    return f_complex_polar(klass, abs, arg);</div><div class='add'>+    else {</div><div class='add'>+        arg = ZERO;</div><div class='add'>+    }</div><div class='add'>+    return f_complex_polar_real(klass, abs, arg);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -636,7 +768,7 @@ rb_complex_uminus(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     get_dat1(self);</div><div class='ctx'>     return f_complex_new2(CLASS_OF(self),</div><div class='del'>-			  f_negate(dat-&gt;real), f_negate(dat-&gt;imag));</div><div class='add'>+                          f_negate(dat-&gt;real), f_negate(dat-&gt;imag));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -655,20 +787,20 @@ VALUE</div><div class='ctx'> rb_complex_plus(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='ctx'>     if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='del'>-	VALUE real, imag;</div><div class='add'>+        VALUE real, imag;</div><div class='ctx'> </div><div class='del'>-	get_dat2(self, other);</div><div class='add'>+        get_dat2(self, other);</div><div class='ctx'> </div><div class='del'>-	real = f_add(adat-&gt;real, bdat-&gt;real);</div><div class='del'>-	imag = f_add(adat-&gt;imag, bdat-&gt;imag);</div><div class='add'>+        real = f_add(adat-&gt;real, bdat-&gt;real);</div><div class='add'>+        imag = f_add(adat-&gt;imag, bdat-&gt;imag);</div><div class='ctx'> </div><div class='del'>-	return f_complex_new2(CLASS_OF(self), real, imag);</div><div class='add'>+        return f_complex_new2(CLASS_OF(self), real, imag);</div><div class='ctx'>     }</div><div class='ctx'>     if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='del'>-	get_dat1(self);</div><div class='add'>+        get_dat1(self);</div><div class='ctx'> </div><div class='del'>-	return f_complex_new2(CLASS_OF(self),</div><div class='del'>-			      f_add(dat-&gt;real, other), dat-&gt;imag);</div><div class='add'>+        return f_complex_new2(CLASS_OF(self),</div><div class='add'>+                              f_add(dat-&gt;real, other), dat-&gt;imag);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_num_coerce_bin(self, other, '+');</div><div class='ctx'> }</div><div class='hunk'>@@ -689,33 +821,33 @@ VALUE</div><div class='ctx'> rb_complex_minus(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='ctx'>     if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='del'>-	VALUE real, imag;</div><div class='add'>+        VALUE real, imag;</div><div class='ctx'> </div><div class='del'>-	get_dat2(self, other);</div><div class='add'>+        get_dat2(self, other);</div><div class='ctx'> </div><div class='del'>-	real = f_sub(adat-&gt;real, bdat-&gt;real);</div><div class='del'>-	imag = f_sub(adat-&gt;imag, bdat-&gt;imag);</div><div class='add'>+        real = f_sub(adat-&gt;real, bdat-&gt;real);</div><div class='add'>+        imag = f_sub(adat-&gt;imag, bdat-&gt;imag);</div><div class='ctx'> </div><div class='del'>-	return f_complex_new2(CLASS_OF(self), real, imag);</div><div class='add'>+        return f_complex_new2(CLASS_OF(self), real, imag);</div><div class='ctx'>     }</div><div class='ctx'>     if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='del'>-	get_dat1(self);</div><div class='add'>+        get_dat1(self);</div><div class='ctx'> </div><div class='del'>-	return f_complex_new2(CLASS_OF(self),</div><div class='del'>-			      f_sub(dat-&gt;real, other), dat-&gt;imag);</div><div class='add'>+        return f_complex_new2(CLASS_OF(self),</div><div class='add'>+                              f_sub(dat-&gt;real, other), dat-&gt;imag);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_num_coerce_bin(self, other, '-');</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-safe_mul(VALUE a, VALUE b, int az, int bz)</div><div class='add'>+safe_mul(VALUE a, VALUE b, bool az, bool bz)</div><div class='ctx'> {</div><div class='ctx'>     double v;</div><div class='ctx'>     if (!az &amp;&amp; bz &amp;&amp; RB_FLOAT_TYPE_P(a) &amp;&amp; (v = RFLOAT_VALUE(a), !isnan(v))) {</div><div class='del'>-	a = signbit(v) ? DBL2NUM(-1.0) : DBL2NUM(1.0);</div><div class='add'>+        a = signbit(v) ? DBL2NUM(-1.0) : DBL2NUM(1.0);</div><div class='ctx'>     }</div><div class='ctx'>     if (!bz &amp;&amp; az &amp;&amp; RB_FLOAT_TYPE_P(b) &amp;&amp; (v = RFLOAT_VALUE(b), !isnan(v))) {</div><div class='del'>-	b = signbit(v) ? DBL2NUM(-1.0) : DBL2NUM(1.0);</div><div class='add'>+        b = signbit(v) ? DBL2NUM(-1.0) : DBL2NUM(1.0);</div><div class='ctx'>     }</div><div class='ctx'>     return f_mul(a, b);</div><div class='ctx'> }</div><div class='hunk'>@@ -723,10 +855,10 @@ safe_mul(VALUE a, VALUE b, int az, int bz)</div><div class='ctx'> static void</div><div class='ctx'> comp_mul(VALUE areal, VALUE aimag, VALUE breal, VALUE bimag, VALUE *real, VALUE *imag)</div><div class='ctx'> {</div><div class='del'>-    int arzero = f_zero_p(areal);</div><div class='del'>-    int aizero = f_zero_p(aimag);</div><div class='del'>-    int brzero = f_zero_p(breal);</div><div class='del'>-    int bizero = f_zero_p(bimag);</div><div class='add'>+    bool arzero = f_zero_p(areal);</div><div class='add'>+    bool aizero = f_zero_p(aimag);</div><div class='add'>+    bool brzero = f_zero_p(breal);</div><div class='add'>+    bool bizero = f_zero_p(bimag);</div><div class='ctx'>     *real = f_sub(safe_mul(areal, breal, arzero, brzero),</div><div class='ctx'>                   safe_mul(aimag, bimag, aizero, bizero));</div><div class='ctx'>     *imag = f_add(safe_mul(areal, bimag, arzero, bizero),</div><div class='hunk'>@@ -749,65 +881,59 @@ VALUE</div><div class='ctx'> rb_complex_mul(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='ctx'>     if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='del'>-	VALUE real, imag;</div><div class='del'>-	get_dat2(self, other);</div><div class='add'>+        VALUE real, imag;</div><div class='add'>+        get_dat2(self, other);</div><div class='ctx'> </div><div class='ctx'>         comp_mul(adat-&gt;real, adat-&gt;imag, bdat-&gt;real, bdat-&gt;imag, &amp;real, &amp;imag);</div><div class='ctx'> </div><div class='del'>-	return f_complex_new2(CLASS_OF(self), real, imag);</div><div class='add'>+        return f_complex_new2(CLASS_OF(self), real, imag);</div><div class='ctx'>     }</div><div class='ctx'>     if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='del'>-	get_dat1(self);</div><div class='add'>+        get_dat1(self);</div><div class='ctx'> </div><div class='del'>-	return f_complex_new2(CLASS_OF(self),</div><div class='del'>-			      f_mul(dat-&gt;real, other),</div><div class='del'>-			      f_mul(dat-&gt;imag, other));</div><div class='add'>+        return f_complex_new2(CLASS_OF(self),</div><div class='add'>+                              f_mul(dat-&gt;real, other),</div><div class='add'>+                              f_mul(dat-&gt;imag, other));</div><div class='ctx'>     }</div><div class='ctx'>     return rb_num_coerce_bin(self, other, '*');</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> inline static VALUE</div><div class='ctx'> f_divide(VALUE self, VALUE other,</div><div class='del'>-	 VALUE (*func)(VALUE, VALUE), ID id)</div><div class='add'>+         VALUE (*func)(VALUE, VALUE), ID id)</div><div class='ctx'> {</div><div class='ctx'>     if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='ctx'>         VALUE r, n, x, y;</div><div class='del'>-	int flo;</div><div class='del'>-	get_dat2(self, other);</div><div class='del'>-</div><div class='del'>-	flo = (RB_FLOAT_TYPE_P(adat-&gt;real) || RB_FLOAT_TYPE_P(adat-&gt;imag) ||</div><div class='del'>-	       RB_FLOAT_TYPE_P(bdat-&gt;real) || RB_FLOAT_TYPE_P(bdat-&gt;imag));</div><div class='del'>-</div><div class='del'>-	if (f_gt_p(f_abs(bdat-&gt;real), f_abs(bdat-&gt;imag))) {</div><div class='del'>-	    r = (*func)(bdat-&gt;imag, bdat-&gt;real);</div><div class='del'>-	    n = f_mul(bdat-&gt;real, f_add(ONE, f_mul(r, r)));</div><div class='del'>-	    if (flo)</div><div class='del'>-		return f_complex_new2(CLASS_OF(self),</div><div class='del'>-				      (*func)(self, n),</div><div class='del'>-				      (*func)(f_negate(f_mul(self, r)), n));</div><div class='add'>+        int flo;</div><div class='add'>+        get_dat2(self, other);</div><div class='add'>+</div><div class='add'>+        flo = (RB_FLOAT_TYPE_P(adat-&gt;real) || RB_FLOAT_TYPE_P(adat-&gt;imag) ||</div><div class='add'>+               RB_FLOAT_TYPE_P(bdat-&gt;real) || RB_FLOAT_TYPE_P(bdat-&gt;imag));</div><div class='add'>+</div><div class='add'>+        if (f_gt_p(f_abs(bdat-&gt;real), f_abs(bdat-&gt;imag))) {</div><div class='add'>+            r = (*func)(bdat-&gt;imag, bdat-&gt;real);</div><div class='add'>+            n = f_mul(bdat-&gt;real, f_add(ONE, f_mul(r, r)));</div><div class='ctx'>             x = (*func)(f_add(adat-&gt;real, f_mul(adat-&gt;imag, r)), n);</div><div class='ctx'>             y = (*func)(f_sub(adat-&gt;imag, f_mul(adat-&gt;real, r)), n);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    r = (*func)(bdat-&gt;real, bdat-&gt;imag);</div><div class='del'>-	    n = f_mul(bdat-&gt;imag, f_add(ONE, f_mul(r, r)));</div><div class='del'>-	    if (flo)</div><div class='del'>-		return f_complex_new2(CLASS_OF(self),</div><div class='del'>-				      (*func)(f_mul(self, r), n),</div><div class='del'>-				      (*func)(f_negate(self), n));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            r = (*func)(bdat-&gt;real, bdat-&gt;imag);</div><div class='add'>+            n = f_mul(bdat-&gt;imag, f_add(ONE, f_mul(r, r)));</div><div class='ctx'>             x = (*func)(f_add(f_mul(adat-&gt;real, r), adat-&gt;imag), n);</div><div class='ctx'>             y = (*func)(f_sub(f_mul(adat-&gt;imag, r), adat-&gt;real), n);</div><div class='del'>-	}</div><div class='del'>-        x = rb_rational_canonicalize(x);</div><div class='del'>-        y = rb_rational_canonicalize(y);</div><div class='add'>+        }</div><div class='add'>+        if (!flo) {</div><div class='add'>+            x = rb_rational_canonicalize(x);</div><div class='add'>+            y = rb_rational_canonicalize(y);</div><div class='add'>+        }</div><div class='ctx'>         return f_complex_new2(CLASS_OF(self), x, y);</div><div class='ctx'>     }</div><div class='ctx'>     if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='del'>-	get_dat1(self);</div><div class='del'>-</div><div class='del'>-	return f_complex_new2(CLASS_OF(self),</div><div class='del'>-			      (*func)(dat-&gt;real, other),</div><div class='del'>-			      (*func)(dat-&gt;imag, other));</div><div class='add'>+        VALUE x, y;</div><div class='add'>+        get_dat1(self);</div><div class='add'>+        x = rb_rational_canonicalize((*func)(dat-&gt;real, other));</div><div class='add'>+        y = rb_rational_canonicalize((*func)(dat-&gt;imag, other));</div><div class='add'>+        return f_complex_new2(CLASS_OF(self), x, y);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_num_coerce_bin(self, other, id);</div><div class='ctx'> }</div><div class='hunk'>@@ -868,31 +994,31 @@ VALUE</div><div class='ctx'> rb_complex_pow(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='ctx'>     if (k_numeric_p(other) &amp;&amp; k_exact_zero_p(other))</div><div class='del'>-	return f_complex_new_bang1(CLASS_OF(self), ONE);</div><div class='add'>+        return f_complex_new_bang1(CLASS_OF(self), ONE);</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(other, T_RATIONAL) &amp;&amp; RRATIONAL(other)-&gt;den == LONG2FIX(1))</div><div class='del'>-	other = RRATIONAL(other)-&gt;num; /* c14n */</div><div class='add'>+        other = RRATIONAL(other)-&gt;num; /* c14n */</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='del'>-	get_dat1(other);</div><div class='add'>+        get_dat1(other);</div><div class='ctx'> </div><div class='del'>-	if (k_exact_zero_p(dat-&gt;imag))</div><div class='del'>-	    other = dat-&gt;real; /* c14n */</div><div class='add'>+        if (k_exact_zero_p(dat-&gt;imag))</div><div class='add'>+            other = dat-&gt;real; /* c14n */</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='del'>-	VALUE r, theta, nr, ntheta;</div><div class='add'>+        VALUE r, theta, nr, ntheta;</div><div class='ctx'> </div><div class='del'>-	get_dat1(other);</div><div class='add'>+        get_dat1(other);</div><div class='ctx'> </div><div class='del'>-	r = f_abs(self);</div><div class='del'>-	theta = f_arg(self);</div><div class='add'>+        r = f_abs(self);</div><div class='add'>+        theta = f_arg(self);</div><div class='ctx'> </div><div class='del'>-	nr = m_exp_bang(f_sub(f_mul(dat-&gt;real, m_log_bang(r)),</div><div class='del'>-			      f_mul(dat-&gt;imag, theta)));</div><div class='del'>-	ntheta = f_add(f_mul(theta, dat-&gt;real),</div><div class='del'>-		       f_mul(dat-&gt;imag, m_log_bang(r)));</div><div class='del'>-	return f_complex_polar(CLASS_OF(self), nr, ntheta);</div><div class='add'>+        nr = m_exp_bang(f_sub(f_mul(dat-&gt;real, m_log_bang(r)),</div><div class='add'>+                              f_mul(dat-&gt;imag, theta)));</div><div class='add'>+        ntheta = f_add(f_mul(theta, dat-&gt;real),</div><div class='add'>+                       f_mul(dat-&gt;imag, m_log_bang(r)));</div><div class='add'>+        return f_complex_polar(CLASS_OF(self), nr, ntheta);</div><div class='ctx'>     }</div><div class='ctx'>     if (FIXNUM_P(other)) {</div><div class='ctx'>         long n = FIX2LONG(other);</div><div class='hunk'>@@ -933,19 +1059,19 @@ rb_complex_pow(VALUE self, VALUE other)</div><div class='ctx'>                 }</div><div class='ctx'>             }</div><div class='ctx'>             return nucomp_s_new_internal(CLASS_OF(self), zr, zi);</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='del'>-	VALUE r, theta;</div><div class='add'>+        VALUE r, theta;</div><div class='ctx'> </div><div class='del'>-	if (RB_TYPE_P(other, T_BIGNUM))</div><div class='del'>-	    rb_warn("in a**b, b may be too big");</div><div class='add'>+        if (RB_BIGNUM_TYPE_P(other))</div><div class='add'>+            rb_warn("in a**b, b may be too big");</div><div class='ctx'> </div><div class='del'>-	r = f_abs(self);</div><div class='del'>-	theta = f_arg(self);</div><div class='add'>+        r = f_abs(self);</div><div class='add'>+        theta = f_arg(self);</div><div class='ctx'> </div><div class='del'>-	return f_complex_polar(CLASS_OF(self), f_expt(r, other),</div><div class='del'>-			       f_mul(theta, other));</div><div class='add'>+        return f_complex_polar(CLASS_OF(self), f_expt(r, other),</div><div class='add'>+                               f_mul(theta, other));</div><div class='ctx'>     }</div><div class='ctx'>     return rb_num_coerce_bin(self, other, id_expt);</div><div class='ctx'> }</div><div class='hunk'>@@ -966,30 +1092,78 @@ static VALUE</div><div class='ctx'> nucomp_eqeq_p(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='ctx'>     if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='del'>-	get_dat2(self, other);</div><div class='add'>+        get_dat2(self, other);</div><div class='ctx'> </div><div class='del'>-	return f_boolcast(f_eqeq_p(adat-&gt;real, bdat-&gt;real) &amp;&amp;</div><div class='del'>-			  f_eqeq_p(adat-&gt;imag, bdat-&gt;imag));</div><div class='add'>+        return RBOOL(f_eqeq_p(adat-&gt;real, bdat-&gt;real) &amp;&amp;</div><div class='add'>+                          f_eqeq_p(adat-&gt;imag, bdat-&gt;imag));</div><div class='ctx'>     }</div><div class='ctx'>     if (k_numeric_p(other) &amp;&amp; f_real_p(other)) {</div><div class='del'>-	get_dat1(self);</div><div class='add'>+        get_dat1(self);</div><div class='ctx'> </div><div class='del'>-	return f_boolcast(f_eqeq_p(dat-&gt;real, other) &amp;&amp; f_zero_p(dat-&gt;imag));</div><div class='add'>+        return RBOOL(f_eqeq_p(dat-&gt;real, other) &amp;&amp; f_zero_p(dat-&gt;imag));</div><div class='ctx'>     }</div><div class='del'>-    return f_boolcast(f_eqeq_p(other, self));</div><div class='add'>+    return RBOOL(f_eqeq_p(other, self));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+nucomp_real_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    get_dat1(self);</div><div class='add'>+    return f_zero_p(dat-&gt;imag);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    cmp &lt;=&gt; object  -&gt;  0, 1, -1, or nil</div><div class='add'>+ *</div><div class='add'>+ * If +cmp+'s imaginary part is zero, and +object+ is also a</div><div class='add'>+ * real number (or a Complex number where the imaginary part is zero),</div><div class='add'>+ * compare the real part of +cmp+ to object.  Otherwise, return nil.</div><div class='add'>+ *</div><div class='add'>+ *    Complex(2, 3)  &lt;=&gt; Complex(2, 3)   #=&gt; nil</div><div class='add'>+ *    Complex(2, 3)  &lt;=&gt; 1               #=&gt; nil</div><div class='add'>+ *    Complex(2)     &lt;=&gt; 1               #=&gt; 1</div><div class='add'>+ *    Complex(2)     &lt;=&gt; 2               #=&gt; 0</div><div class='add'>+ *    Complex(2)     &lt;=&gt; 3               #=&gt; -1</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_cmp(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    if (!k_numeric_p(other)) {</div><div class='add'>+        return rb_num_coerce_cmp(self, other, idCmp);</div><div class='add'>+    }</div><div class='add'>+    if (!nucomp_real_p(self)) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+    if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='add'>+        if (nucomp_real_p(other)) {</div><div class='add'>+            get_dat2(self, other);</div><div class='add'>+            return rb_funcall(adat-&gt;real, idCmp, 1, bdat-&gt;real);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        get_dat1(self);</div><div class='add'>+        if (f_real_p(other)) {</div><div class='add'>+            return rb_funcall(dat-&gt;real, idCmp, 1, other);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return rb_num_coerce_cmp(dat-&gt;real, other, idCmp);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> nucomp_coerce(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='del'>-    if (k_numeric_p(other) &amp;&amp; f_real_p(other))</div><div class='del'>-	return rb_assoc_new(f_complex_new_bang1(CLASS_OF(self), other), self);</div><div class='ctx'>     if (RB_TYPE_P(other, T_COMPLEX))</div><div class='del'>-	return rb_assoc_new(other, self);</div><div class='add'>+        return rb_assoc_new(other, self);</div><div class='add'>+    if (k_numeric_p(other) &amp;&amp; f_real_p(other))</div><div class='add'>+        return rb_assoc_new(f_complex_new_bang1(CLASS_OF(self), other), self);</div><div class='ctx'> </div><div class='ctx'>     rb_raise(rb_eTypeError, "%"PRIsVALUE" can't be coerced into %"PRIsVALUE,</div><div class='del'>-	     rb_obj_class(other), rb_obj_class(self));</div><div class='add'>+             rb_obj_class(other), rb_obj_class(self));</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1009,16 +1183,16 @@ rb_complex_abs(VALUE self)</div><div class='ctx'>     get_dat1(self);</div><div class='ctx'> </div><div class='ctx'>     if (f_zero_p(dat-&gt;real)) {</div><div class='del'>-	VALUE a = f_abs(dat-&gt;imag);</div><div class='del'>-	if (RB_FLOAT_TYPE_P(dat-&gt;real) &amp;&amp; !RB_FLOAT_TYPE_P(dat-&gt;imag))</div><div class='del'>-	    a = f_to_f(a);</div><div class='del'>-	return a;</div><div class='add'>+        VALUE a = f_abs(dat-&gt;imag);</div><div class='add'>+        if (RB_FLOAT_TYPE_P(dat-&gt;real) &amp;&amp; !RB_FLOAT_TYPE_P(dat-&gt;imag))</div><div class='add'>+            a = f_to_f(a);</div><div class='add'>+        return a;</div><div class='ctx'>     }</div><div class='ctx'>     if (f_zero_p(dat-&gt;imag)) {</div><div class='del'>-	VALUE a = f_abs(dat-&gt;real);</div><div class='del'>-	if (!RB_FLOAT_TYPE_P(dat-&gt;real) &amp;&amp; RB_FLOAT_TYPE_P(dat-&gt;imag))</div><div class='del'>-	    a = f_to_f(a);</div><div class='del'>-	return a;</div><div class='add'>+        VALUE a = f_abs(dat-&gt;real);</div><div class='add'>+        if (!RB_FLOAT_TYPE_P(dat-&gt;real) &amp;&amp; RB_FLOAT_TYPE_P(dat-&gt;imag))</div><div class='add'>+            a = f_to_f(a);</div><div class='add'>+        return a;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_math_hypot(dat-&gt;real, dat-&gt;imag);</div><div class='ctx'> }</div><div class='hunk'>@@ -1037,7 +1211,7 @@ nucomp_abs2(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     get_dat1(self);</div><div class='ctx'>     return f_add(f_mul(dat-&gt;real, dat-&gt;real),</div><div class='del'>-		 f_mul(dat-&gt;imag, dat-&gt;imag));</div><div class='add'>+                 f_mul(dat-&gt;imag, dat-&gt;imag));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1105,12 +1279,13 @@ rb_complex_conjugate(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    cmp.real?  -&gt;  false</div><div class='add'>+ *    Complex(1).real?     -&gt;  false</div><div class='add'>+ *    Complex(1, 2).real?  -&gt;  false</div><div class='ctx'>  *</div><div class='del'>- * Returns false.</div><div class='add'>+ * Returns false, even if the complex number has no imaginary part.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-nucomp_false(VALUE self)</div><div class='add'>+nucomp_real_p_m(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -1155,17 +1330,17 @@ nucomp_numerator(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     get_dat1(self);</div><div class='ctx'> </div><div class='del'>-    cd = f_denominator(self);</div><div class='add'>+    cd = nucomp_denominator(self);</div><div class='ctx'>     return f_complex_new2(CLASS_OF(self),</div><div class='del'>-			  f_mul(f_numerator(dat-&gt;real),</div><div class='del'>-				f_div(cd, f_denominator(dat-&gt;real))),</div><div class='del'>-			  f_mul(f_numerator(dat-&gt;imag),</div><div class='del'>-				f_div(cd, f_denominator(dat-&gt;imag))));</div><div class='add'>+                          f_mul(f_numerator(dat-&gt;real),</div><div class='add'>+                                f_div(cd, f_denominator(dat-&gt;real))),</div><div class='add'>+                          f_mul(f_numerator(dat-&gt;imag),</div><div class='add'>+                                f_div(cd, f_denominator(dat-&gt;imag))));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='del'>-static VALUE</div><div class='del'>-nucomp_hash(VALUE self)</div><div class='add'>+st_index_t</div><div class='add'>+rb_complex_hash(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     st_index_t v, h[2];</div><div class='ctx'>     VALUE n;</div><div class='hunk'>@@ -1176,7 +1351,13 @@ nucomp_hash(VALUE self)</div><div class='ctx'>     n = rb_hash(dat-&gt;imag);</div><div class='ctx'>     h[1] = NUM2LONG(n);</div><div class='ctx'>     v = rb_memhash(h, sizeof(h));</div><div class='del'>-    return ST2FIX(v);</div><div class='add'>+    return v;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+nucomp_hash(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return ST2FIX(rb_complex_hash(self));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='hunk'>@@ -1184,11 +1365,11 @@ static VALUE</div><div class='ctx'> nucomp_eql_p(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='ctx'>     if (RB_TYPE_P(other, T_COMPLEX)) {</div><div class='del'>-	get_dat2(self, other);</div><div class='add'>+        get_dat2(self, other);</div><div class='ctx'> </div><div class='del'>-	return f_boolcast((CLASS_OF(adat-&gt;real) == CLASS_OF(bdat-&gt;real)) &amp;&amp;</div><div class='del'>-			  (CLASS_OF(adat-&gt;imag) == CLASS_OF(bdat-&gt;imag)) &amp;&amp;</div><div class='del'>-			  f_eqeq_p(self, other));</div><div class='add'>+        return RBOOL((CLASS_OF(adat-&gt;real) == CLASS_OF(bdat-&gt;real)) &amp;&amp;</div><div class='add'>+                          (CLASS_OF(adat-&gt;imag) == CLASS_OF(bdat-&gt;imag)) &amp;&amp;</div><div class='add'>+                          f_eqeq_p(self, other));</div><div class='ctx'> </div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='hunk'>@@ -1198,8 +1379,8 @@ inline static int</div><div class='ctx'> f_signbit(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     if (RB_FLOAT_TYPE_P(x)) {</div><div class='del'>-	double f = RFLOAT_VALUE(x);</div><div class='del'>-	return !isnan(f) &amp;&amp; signbit(f);</div><div class='add'>+        double f = RFLOAT_VALUE(x);</div><div class='add'>+        return !isnan(f) &amp;&amp; signbit(f);</div><div class='ctx'>     }</div><div class='ctx'>     return f_negative_p(x);</div><div class='ctx'> }</div><div class='hunk'>@@ -1225,7 +1406,7 @@ f_format(VALUE self, VALUE (*func)(VALUE))</div><div class='ctx'> </div><div class='ctx'>     rb_str_concat(s, (*func)(f_abs(dat-&gt;imag)));</div><div class='ctx'>     if (!rb_isdigit(RSTRING_PTR(s)[RSTRING_LEN(s) - 1]))</div><div class='del'>-	rb_str_cat2(s, "*");</div><div class='add'>+        rb_str_cat2(s, "*");</div><div class='ctx'>     rb_str_cat2(s, "i");</div><div class='ctx'> </div><div class='ctx'>     return s;</div><div class='hunk'>@@ -1287,10 +1468,7 @@ rb_complex_finite_p(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     get_dat1(self);</div><div class='ctx'> </div><div class='del'>-    if (f_finite_p(dat-&gt;real) &amp;&amp; f_finite_p(dat-&gt;imag)) {</div><div class='del'>-	return Qtrue;</div><div class='del'>-    }</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(f_finite_p(dat-&gt;real) &amp;&amp; f_finite_p(dat-&gt;imag));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1310,8 +1488,8 @@ rb_complex_infinite_p(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     get_dat1(self);</div><div class='ctx'> </div><div class='del'>-    if (NIL_P(f_infinite_p(dat-&gt;real)) &amp;&amp; NIL_P(f_infinite_p(dat-&gt;imag))) {</div><div class='del'>-	return Qnil;</div><div class='add'>+    if (!f_infinite_p(dat-&gt;real) &amp;&amp; !f_infinite_p(dat-&gt;imag)) {</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     return ONE;</div><div class='ctx'> }</div><div class='hunk'>@@ -1354,14 +1532,12 @@ nucomp_marshal_load(VALUE self, VALUE a)</div><div class='ctx'> {</div><div class='ctx'>     Check_Type(a, T_ARRAY);</div><div class='ctx'>     if (RARRAY_LEN(a) != 2)</div><div class='del'>-	rb_raise(rb_eArgError, "marshaled complex must have an array whose length is 2 but %ld", RARRAY_LEN(a));</div><div class='add'>+        rb_raise(rb_eArgError, "marshaled complex must have an array whose length is 2 but %ld", RARRAY_LEN(a));</div><div class='ctx'>     rb_ivar_set(self, id_i_real, RARRAY_AREF(a, 0));</div><div class='ctx'>     rb_ivar_set(self, id_i_imag, RARRAY_AREF(a, 1));</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* --- */</div><div class='del'>-</div><div class='ctx'> VALUE</div><div class='ctx'> rb_complex_raw(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='hunk'>@@ -1395,13 +1571,6 @@ rb_Complex(VALUE x, VALUE y)</div><div class='ctx'>     return nucomp_s_convert(2, a, rb_cComplex);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Creates a Complex object.</div><div class='del'>- *</div><div class='del'>- * \param real    real part value</div><div class='del'>- * \param imag    imaginary part value</div><div class='del'>- * \return        a new Complex object</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_dbl_complex_new(double real, double imag)</div><div class='ctx'> {</div><div class='hunk'>@@ -1425,8 +1594,8 @@ nucomp_to_i(VALUE self)</div><div class='ctx'>     get_dat1(self);</div><div class='ctx'> </div><div class='ctx'>     if (!k_exact_zero_p(dat-&gt;imag)) {</div><div class='del'>-	rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Integer",</div><div class='del'>-		 self);</div><div class='add'>+        rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Integer",</div><div class='add'>+                 self);</div><div class='ctx'>     }</div><div class='ctx'>     return f_to_i(dat-&gt;real);</div><div class='ctx'> }</div><div class='hunk'>@@ -1448,8 +1617,8 @@ nucomp_to_f(VALUE self)</div><div class='ctx'>     get_dat1(self);</div><div class='ctx'> </div><div class='ctx'>     if (!k_exact_zero_p(dat-&gt;imag)) {</div><div class='del'>-	rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Float",</div><div class='del'>-		 self);</div><div class='add'>+        rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Float",</div><div class='add'>+                 self);</div><div class='ctx'>     }</div><div class='ctx'>     return f_to_f(dat-&gt;real);</div><div class='ctx'> }</div><div class='hunk'>@@ -1473,8 +1642,8 @@ nucomp_to_r(VALUE self)</div><div class='ctx'>     get_dat1(self);</div><div class='ctx'> </div><div class='ctx'>     if (!k_exact_zero_p(dat-&gt;imag)) {</div><div class='del'>-	rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Rational",</div><div class='del'>-		 self);</div><div class='add'>+        rb_raise(rb_eRangeError, "can't convert %"PRIsVALUE" into Rational",</div><div class='add'>+                 self);</div><div class='ctx'>     }</div><div class='ctx'>     return f_to_r(dat-&gt;real);</div><div class='ctx'> }</div><div class='hunk'>@@ -1545,8 +1714,6 @@ numeric_to_c(VALUE self)</div><div class='ctx'>     return rb_complex_new1(self);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-</div><div class='ctx'> inline static int</div><div class='ctx'> issign(int c)</div><div class='ctx'> {</div><div class='hunk'>@@ -1555,14 +1722,14 @@ issign(int c)</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> read_sign(const char **s,</div><div class='del'>-	  char **b)</div><div class='add'>+          char **b)</div><div class='ctx'> {</div><div class='ctx'>     int sign = '?';</div><div class='ctx'> </div><div class='ctx'>     if (issign(**s)) {</div><div class='del'>-	sign = **b = **s;</div><div class='del'>-	(*s)++;</div><div class='del'>-	(*b)++;</div><div class='add'>+        sign = **b = **s;</div><div class='add'>+        (*s)++;</div><div class='add'>+        (*b)++;</div><div class='ctx'>     }</div><div class='ctx'>     return sign;</div><div class='ctx'> }</div><div class='hunk'>@@ -1575,32 +1742,32 @@ isdecimal(int c)</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> read_digits(const char **s, int strict,</div><div class='del'>-	    char **b)</div><div class='add'>+            char **b)</div><div class='ctx'> {</div><div class='ctx'>     int us = 1;</div><div class='ctx'> </div><div class='ctx'>     if (!isdecimal(**s))</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'> </div><div class='ctx'>     while (isdecimal(**s) || **s == '_') {</div><div class='del'>-	if (**s == '_') {</div><div class='del'>-	    if (strict) {</div><div class='del'>-		if (us)</div><div class='del'>-		    return 0;</div><div class='del'>-	    }</div><div class='del'>-	    us = 1;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    **b = **s;</div><div class='del'>-	    (*b)++;</div><div class='del'>-	    us = 0;</div><div class='del'>-	}</div><div class='del'>-	(*s)++;</div><div class='add'>+        if (**s == '_') {</div><div class='add'>+            if (us) {</div><div class='add'>+                if (strict) return 0;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            us = 1;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            **b = **s;</div><div class='add'>+            (*b)++;</div><div class='add'>+            us = 0;</div><div class='add'>+        }</div><div class='add'>+        (*s)++;</div><div class='ctx'>     }</div><div class='ctx'>     if (us)</div><div class='del'>-	do {</div><div class='del'>-	    (*s)--;</div><div class='del'>-	} while (**s == '_');</div><div class='add'>+        do {</div><div class='add'>+            (*s)--;</div><div class='add'>+        } while (**s == '_');</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1612,70 +1779,70 @@ islettere(int c)</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> read_num(const char **s, int strict,</div><div class='del'>-	 char **b)</div><div class='add'>+         char **b)</div><div class='ctx'> {</div><div class='ctx'>     if (**s != '.') {</div><div class='del'>-	if (!read_digits(s, strict, b))</div><div class='del'>-	    return 0;</div><div class='add'>+        if (!read_digits(s, strict, b))</div><div class='add'>+            return 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (**s == '.') {</div><div class='del'>-	**b = **s;</div><div class='del'>-	(*s)++;</div><div class='del'>-	(*b)++;</div><div class='del'>-	if (!read_digits(s, strict, b)) {</div><div class='del'>-	    (*b)--;</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='add'>+        **b = **s;</div><div class='add'>+        (*s)++;</div><div class='add'>+        (*b)++;</div><div class='add'>+        if (!read_digits(s, strict, b)) {</div><div class='add'>+            (*b)--;</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (islettere(**s)) {</div><div class='del'>-	**b = **s;</div><div class='del'>-	(*s)++;</div><div class='del'>-	(*b)++;</div><div class='del'>-	read_sign(s, b);</div><div class='del'>-	if (!read_digits(s, strict, b)) {</div><div class='del'>-	    (*b)--;</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='add'>+        **b = **s;</div><div class='add'>+        (*s)++;</div><div class='add'>+        (*b)++;</div><div class='add'>+        read_sign(s, b);</div><div class='add'>+        if (!read_digits(s, strict, b)) {</div><div class='add'>+            (*b)--;</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> inline static int</div><div class='ctx'> read_den(const char **s, int strict,</div><div class='del'>-	 char **b)</div><div class='add'>+         char **b)</div><div class='ctx'> {</div><div class='ctx'>     if (!read_digits(s, strict, b))</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> read_rat_nos(const char **s, int strict,</div><div class='del'>-	     char **b)</div><div class='add'>+             char **b)</div><div class='ctx'> {</div><div class='ctx'>     if (!read_num(s, strict, b))</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     if (**s == '/') {</div><div class='del'>-	**b = **s;</div><div class='del'>-	(*s)++;</div><div class='del'>-	(*b)++;</div><div class='del'>-	if (!read_den(s, strict, b)) {</div><div class='del'>-	    (*b)--;</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='add'>+        **b = **s;</div><div class='add'>+        (*s)++;</div><div class='add'>+        (*b)++;</div><div class='add'>+        if (!read_den(s, strict, b)) {</div><div class='add'>+            (*b)--;</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> read_rat(const char **s, int strict,</div><div class='del'>-	 char **b)</div><div class='add'>+         char **b)</div><div class='ctx'> {</div><div class='ctx'>     read_sign(s, b);</div><div class='ctx'>     if (!read_rat_nos(s, strict, b))</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1683,22 +1850,22 @@ inline static int</div><div class='ctx'> isimagunit(int c)</div><div class='ctx'> {</div><div class='ctx'>     return (c == 'i' || c == 'I' ||</div><div class='del'>-	    c == 'j' || c == 'J');</div><div class='add'>+            c == 'j' || c == 'J');</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> str2num(char *s)</div><div class='ctx'> {</div><div class='ctx'>     if (strchr(s, '/'))</div><div class='del'>-	return rb_cstr_to_rat(s, 0);</div><div class='add'>+        return rb_cstr_to_rat(s, 0);</div><div class='ctx'>     if (strpbrk(s, ".eE"))</div><div class='del'>-	return DBL2NUM(rb_cstr_to_dbl(s, 0));</div><div class='add'>+        return DBL2NUM(rb_cstr_to_dbl(s, 0));</div><div class='ctx'>     return rb_cstr_to_inum(s, 10, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> read_comp(const char **s, int strict,</div><div class='del'>-	  VALUE *ret, char **b)</div><div class='add'>+          VALUE *ret, char **b)</div><div class='ctx'> {</div><div class='ctx'>     char *bb;</div><div class='ctx'>     int sign;</div><div class='hunk'>@@ -1709,72 +1876,72 @@ read_comp(const char **s, int strict,</div><div class='ctx'>     sign = read_sign(s, b);</div><div class='ctx'> </div><div class='ctx'>     if (isimagunit(**s)) {</div><div class='del'>-	(*s)++;</div><div class='del'>-	num = INT2FIX((sign == '-') ? -1 : + 1);</div><div class='del'>-	*ret = rb_complex_new2(ZERO, num);</div><div class='del'>-	return 1; /* e.g. "i" */</div><div class='add'>+        (*s)++;</div><div class='add'>+        num = INT2FIX((sign == '-') ? -1 : + 1);</div><div class='add'>+        *ret = rb_complex_new2(ZERO, num);</div><div class='add'>+        return 1; /* e.g. "i" */</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!read_rat_nos(s, strict, b)) {</div><div class='del'>-	**b = '\0';</div><div class='del'>-	num = str2num(bb);</div><div class='del'>-	*ret = rb_complex_new2(num, ZERO);</div><div class='del'>-	return 0; /* e.g. "-" */</div><div class='add'>+        **b = '\0';</div><div class='add'>+        num = str2num(bb);</div><div class='add'>+        *ret = rb_complex_new2(num, ZERO);</div><div class='add'>+        return 0; /* e.g. "-" */</div><div class='ctx'>     }</div><div class='ctx'>     **b = '\0';</div><div class='ctx'>     num = str2num(bb);</div><div class='ctx'> </div><div class='ctx'>     if (isimagunit(**s)) {</div><div class='del'>-	(*s)++;</div><div class='del'>-	*ret = rb_complex_new2(ZERO, num);</div><div class='del'>-	return 1; /* e.g. "3i" */</div><div class='add'>+        (*s)++;</div><div class='add'>+        *ret = rb_complex_new2(ZERO, num);</div><div class='add'>+        return 1; /* e.g. "3i" */</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (**s == '@') {</div><div class='del'>-	int st;</div><div class='del'>-</div><div class='del'>-	(*s)++;</div><div class='del'>-	bb = *b;</div><div class='del'>-	st = read_rat(s, strict, b);</div><div class='del'>-	**b = '\0';</div><div class='del'>-	if (strlen(bb) &lt; 1 ||</div><div class='del'>-	    !isdecimal(*(bb + strlen(bb) - 1))) {</div><div class='del'>-	    *ret = rb_complex_new2(num, ZERO);</div><div class='del'>-	    return 0; /* e.g. "1@-" */</div><div class='del'>-	}</div><div class='del'>-	num2 = str2num(bb);</div><div class='del'>-	*ret = rb_complex_new_polar(num, num2);</div><div class='del'>-	if (!st)</div><div class='del'>-	    return 0; /* e.g. "1@2." */</div><div class='del'>-	else</div><div class='del'>-	    return 1; /* e.g. "1@2" */</div><div class='add'>+        int st;</div><div class='add'>+</div><div class='add'>+        (*s)++;</div><div class='add'>+        bb = *b;</div><div class='add'>+        st = read_rat(s, strict, b);</div><div class='add'>+        **b = '\0';</div><div class='add'>+        if (strlen(bb) &lt; 1 ||</div><div class='add'>+            !isdecimal(*(bb + strlen(bb) - 1))) {</div><div class='add'>+            *ret = rb_complex_new2(num, ZERO);</div><div class='add'>+            return 0; /* e.g. "1@-" */</div><div class='add'>+        }</div><div class='add'>+        num2 = str2num(bb);</div><div class='add'>+        *ret = rb_complex_new_polar(num, num2);</div><div class='add'>+        if (!st)</div><div class='add'>+            return 0; /* e.g. "1@2." */</div><div class='add'>+        else</div><div class='add'>+            return 1; /* e.g. "1@2" */</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (issign(**s)) {</div><div class='del'>-	bb = *b;</div><div class='del'>-	sign = read_sign(s, b);</div><div class='del'>-	if (isimagunit(**s))</div><div class='del'>-	    num2 = INT2FIX((sign == '-') ? -1 : + 1);</div><div class='del'>-	else {</div><div class='del'>-	    if (!read_rat_nos(s, strict, b)) {</div><div class='del'>-		*ret = rb_complex_new2(num, ZERO);</div><div class='del'>-		return 0; /* e.g. "1+xi" */</div><div class='del'>-	    }</div><div class='del'>-	    **b = '\0';</div><div class='del'>-	    num2 = str2num(bb);</div><div class='del'>-	}</div><div class='del'>-	if (!isimagunit(**s)) {</div><div class='del'>-	    *ret = rb_complex_new2(num, ZERO);</div><div class='del'>-	    return 0; /* e.g. "1+3x" */</div><div class='del'>-	}</div><div class='del'>-	(*s)++;</div><div class='del'>-	*ret = rb_complex_new2(num, num2);</div><div class='del'>-	return 1; /* e.g. "1+2i" */</div><div class='add'>+        bb = *b;</div><div class='add'>+        sign = read_sign(s, b);</div><div class='add'>+        if (isimagunit(**s))</div><div class='add'>+            num2 = INT2FIX((sign == '-') ? -1 : + 1);</div><div class='add'>+        else {</div><div class='add'>+            if (!read_rat_nos(s, strict, b)) {</div><div class='add'>+                *ret = rb_complex_new2(num, ZERO);</div><div class='add'>+                return 0; /* e.g. "1+xi" */</div><div class='add'>+            }</div><div class='add'>+            **b = '\0';</div><div class='add'>+            num2 = str2num(bb);</div><div class='add'>+        }</div><div class='add'>+        if (!isimagunit(**s)) {</div><div class='add'>+            *ret = rb_complex_new2(num, ZERO);</div><div class='add'>+            return 0; /* e.g. "1+3x" */</div><div class='add'>+        }</div><div class='add'>+        (*s)++;</div><div class='add'>+        *ret = rb_complex_new2(num, num2);</div><div class='add'>+        return 1; /* e.g. "1+2i" */</div><div class='ctx'>     }</div><div class='ctx'>     /* !(@, - or +) */</div><div class='ctx'>     {</div><div class='del'>-	*ret = rb_complex_new2(num, ZERO);</div><div class='del'>-	return 1; /* e.g. "3" */</div><div class='add'>+        *ret = rb_complex_new2(num, ZERO);</div><div class='add'>+        return 1; /* e.g. "3" */</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1782,7 +1949,7 @@ inline static void</div><div class='ctx'> skip_ws(const char **s)</div><div class='ctx'> {</div><div class='ctx'>     while (isspace((unsigned char)**s))</div><div class='del'>-	(*s)++;</div><div class='add'>+        (*s)++;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -1823,22 +1990,22 @@ string_to_c_strict(VALUE self, int raise)</div><div class='ctx'> </div><div class='ctx'>     if (!s || memchr(s, '\0', RSTRING_LEN(self))) {</div><div class='ctx'>         if (!raise) return Qnil;</div><div class='del'>-	rb_raise(rb_eArgError, "string contains null byte");</div><div class='add'>+        rb_raise(rb_eArgError, "string contains null byte");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (s &amp;&amp; s[RSTRING_LEN(self)]) {</div><div class='del'>-	rb_str_modify(self);</div><div class='del'>-	s = RSTRING_PTR(self);</div><div class='del'>-	s[RSTRING_LEN(self)] = '\0';</div><div class='add'>+        rb_str_modify(self);</div><div class='add'>+        s = RSTRING_PTR(self);</div><div class='add'>+        s[RSTRING_LEN(self)] = '\0';</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!s)</div><div class='del'>-	s = (char *)"";</div><div class='add'>+        s = (char *)"";</div><div class='ctx'> </div><div class='ctx'>     if (!parse_comp(s, 1, &amp;num)) {</div><div class='ctx'>         if (!raise) return Qnil;</div><div class='del'>-	rb_raise(rb_eArgError, "invalid value for convert(): %+"PRIsVALUE,</div><div class='del'>-		 self);</div><div class='add'>+        rb_raise(rb_eArgError, "invalid value for convert(): %+"PRIsVALUE,</div><div class='add'>+                 self);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return num;</div><div class='hunk'>@@ -1865,6 +2032,12 @@ string_to_c_strict(VALUE self, int raise)</div><div class='ctx'>  *    '1/2+3/4i'.to_c    #=&gt; ((1/2)+(3/4)*i)</div><div class='ctx'>  *    'ruby'.to_c        #=&gt; (0+0i)</div><div class='ctx'>  *</div><div class='add'>+ * Polar form:</div><div class='add'>+ *    include Math</div><div class='add'>+ *    "1.0@0".to_c        #=&gt; (1+0.0i)</div><div class='add'>+ *    "1.0@#{PI/2}".to_c  #=&gt; (0.0+1i)</div><div class='add'>+ *    "1.0@#{PI}".to_c    #=&gt; (-1+0.0i)</div><div class='add'>+ *</div><div class='ctx'>  * See Kernel.Complex.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1878,13 +2051,13 @@ string_to_c(VALUE self)</div><div class='ctx'>     s = RSTRING_PTR(self);</div><div class='ctx'> </div><div class='ctx'>     if (s &amp;&amp; s[RSTRING_LEN(self)]) {</div><div class='del'>-	rb_str_modify(self);</div><div class='del'>-	s = RSTRING_PTR(self);</div><div class='del'>-	s[RSTRING_LEN(self)] = '\0';</div><div class='add'>+        rb_str_modify(self);</div><div class='add'>+        s = RSTRING_PTR(self);</div><div class='add'>+        s[RSTRING_LEN(self)] = '\0';</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!s)</div><div class='del'>-	s = (char *)"";</div><div class='add'>+        s = (char *)"";</div><div class='ctx'> </div><div class='ctx'>     (void)parse_comp(s, 0, &amp;num);</div><div class='ctx'> </div><div class='hunk'>@@ -1900,65 +2073,70 @@ to_complex(VALUE val)</div><div class='ctx'> static VALUE</div><div class='ctx'> nucomp_convert(VALUE klass, VALUE a1, VALUE a2, int raise)</div><div class='ctx'> {</div><div class='del'>-    if (NIL_P(a1) || NIL_P(a2))</div><div class='del'>-	rb_raise(rb_eTypeError, "can't convert nil into Complex");</div><div class='add'>+    if (NIL_P(a1) || NIL_P(a2)) {</div><div class='add'>+        if (!raise) return Qnil;</div><div class='add'>+        rb_raise(rb_eTypeError, "can't convert nil into Complex");</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(a1, T_STRING)) {</div><div class='del'>-	a1 = string_to_c_strict(a1, raise);</div><div class='add'>+        a1 = string_to_c_strict(a1, raise);</div><div class='ctx'>         if (NIL_P(a1)) return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(a2, T_STRING)) {</div><div class='del'>-	a2 = string_to_c_strict(a2, raise);</div><div class='add'>+        a2 = string_to_c_strict(a2, raise);</div><div class='ctx'>         if (NIL_P(a2)) return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(a1, T_COMPLEX)) {</div><div class='del'>-	{</div><div class='del'>-	    get_dat1(a1);</div><div class='add'>+        {</div><div class='add'>+            get_dat1(a1);</div><div class='ctx'> </div><div class='del'>-	    if (k_exact_zero_p(dat-&gt;imag))</div><div class='del'>-		a1 = dat-&gt;real;</div><div class='del'>-	}</div><div class='add'>+            if (k_exact_zero_p(dat-&gt;imag))</div><div class='add'>+                a1 = dat-&gt;real;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(a2, T_COMPLEX)) {</div><div class='del'>-	{</div><div class='del'>-	    get_dat1(a2);</div><div class='add'>+        {</div><div class='add'>+            get_dat1(a2);</div><div class='ctx'> </div><div class='del'>-	    if (k_exact_zero_p(dat-&gt;imag))</div><div class='del'>-		a2 = dat-&gt;real;</div><div class='del'>-	}</div><div class='add'>+            if (k_exact_zero_p(dat-&gt;imag))</div><div class='add'>+                a2 = dat-&gt;real;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(a1, T_COMPLEX)) {</div><div class='del'>-	if (a2 == Qundef || (k_exact_zero_p(a2)))</div><div class='del'>-	    return a1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (a2 == Qundef) {</div><div class='del'>-	if (k_numeric_p(a1) &amp;&amp; !f_real_p(a1))</div><div class='del'>-	    return a1;</div><div class='del'>-	/* should raise exception for consistency */</div><div class='del'>-	if (!k_numeric_p(a1)) {</div><div class='del'>-            if (!raise)</div><div class='del'>-                return rb_protect(to_complex, a1, NULL);</div><div class='del'>-	    return to_complex(a1);</div><div class='add'>+        if (UNDEF_P(a2) || (k_exact_zero_p(a2)))</div><div class='add'>+            return a1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (UNDEF_P(a2)) {</div><div class='add'>+        if (k_numeric_p(a1) &amp;&amp; !f_real_p(a1))</div><div class='add'>+            return a1;</div><div class='add'>+        /* should raise exception for consistency */</div><div class='add'>+        if (!k_numeric_p(a1)) {</div><div class='add'>+            if (!raise) {</div><div class='add'>+                a1 = rb_protect(to_complex, a1, NULL);</div><div class='add'>+                rb_set_errinfo(Qnil);</div><div class='add'>+                return a1;</div><div class='add'>+            }</div><div class='add'>+            return to_complex(a1);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if ((k_numeric_p(a1) &amp;&amp; k_numeric_p(a2)) &amp;&amp;</div><div class='del'>-	    (!f_real_p(a1) || !f_real_p(a2)))</div><div class='del'>-	    return f_add(a1,</div><div class='del'>-			 f_mul(a2,</div><div class='del'>-			       f_complex_new_bang2(rb_cComplex, ZERO, ONE)));</div><div class='add'>+        if ((k_numeric_p(a1) &amp;&amp; k_numeric_p(a2)) &amp;&amp;</div><div class='add'>+            (!f_real_p(a1) || !f_real_p(a2)))</div><div class='add'>+            return f_add(a1,</div><div class='add'>+                         f_mul(a2,</div><div class='add'>+                               f_complex_new_bang2(rb_cComplex, ZERO, ONE)));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='ctx'>         int argc;</div><div class='del'>-	VALUE argv2[2];</div><div class='del'>-	argv2[0] = a1;</div><div class='del'>-        if (a2 == Qundef) {</div><div class='add'>+        VALUE argv2[2];</div><div class='add'>+        argv2[0] = a1;</div><div class='add'>+        if (UNDEF_P(a2)) {</div><div class='ctx'>             argv2[1] = Qnil;</div><div class='ctx'>             argc = 1;</div><div class='ctx'>         }</div><div class='hunk'>@@ -1968,7 +2146,7 @@ nucomp_convert(VALUE klass, VALUE a1, VALUE a2, int raise)</div><div class='ctx'>             argv2[1] = a2;</div><div class='ctx'>             argc = 2;</div><div class='ctx'>         }</div><div class='del'>-	return nucomp_s_new(argc, argv2, klass);</div><div class='add'>+        return nucomp_s_new(argc, argv2, klass);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1984,33 +2162,6 @@ nucomp_s_convert(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     return nucomp_convert(klass, a1, a2, TRUE);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* --- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *    num.real  -&gt;  self</div><div class='del'>- *</div><div class='del'>- * Returns self.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-numeric_real(VALUE self)</div><div class='del'>-{</div><div class='del'>-    return self;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *    num.imag       -&gt;  0</div><div class='del'>- *    num.imaginary  -&gt;  0</div><div class='del'>- *</div><div class='del'>- * Returns zero.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-numeric_imag(VALUE self)</div><div class='del'>-{</div><div class='del'>-    return INT2FIX(0);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    num.abs2  -&gt;  real</div><div class='hunk'>@@ -2052,8 +2203,6 @@ numeric_rect(VALUE self)</div><div class='ctx'>     return rb_assoc_new(self, INT2FIX(0));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE float_arg(VALUE self);</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    num.polar  -&gt;  array</div><div class='hunk'>@@ -2086,19 +2235,6 @@ numeric_polar(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    num.conj       -&gt;  self</div><div class='del'>- *    num.conjugate  -&gt;  self</div><div class='del'>- *</div><div class='del'>- * Returns self.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-numeric_conj(VALUE self)</div><div class='del'>-{</div><div class='del'>-    return self;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='ctx'>  *    flo.arg    -&gt;  0 or float</div><div class='ctx'>  *    flo.angle  -&gt;  0 or float</div><div class='ctx'>  *    flo.phase  -&gt;  0 or float</div><div class='hunk'>@@ -2109,9 +2245,9 @@ static VALUE</div><div class='ctx'> float_arg(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     if (isnan(RFLOAT_VALUE(self)))</div><div class='del'>-	return self;</div><div class='add'>+        return self;</div><div class='ctx'>     if (f_tpositive_p(self))</div><div class='del'>-	return INT2FIX(0);</div><div class='add'>+        return INT2FIX(0);</div><div class='ctx'>     return rb_const_get(rb_mMath, id_PI);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2121,6 +2257,14 @@ float_arg(VALUE self)</div><div class='ctx'>  * and i is imaginary unit.  Real a equals complex a+0i</div><div class='ctx'>  * mathematically.</div><div class='ctx'>  *</div><div class='add'>+ * You can create a \Complex object explicitly with:</div><div class='add'>+ *</div><div class='add'>+ * - A {complex literal}[rdoc-ref:syntax/literals.rdoc@Complex+Literals].</div><div class='add'>+ *</div><div class='add'>+ * You can convert certain objects to \Complex objects with:</div><div class='add'>+ *</div><div class='add'>+ * - \Method #Complex.</div><div class='add'>+ *</div><div class='ctx'>  * Complex object can be created as literal, and also by using</div><div class='ctx'>  * Kernel#Complex, Complex::rect, Complex::polar or to_c method.</div><div class='ctx'>  *</div><div class='hunk'>@@ -2152,22 +2296,17 @@ void</div><div class='ctx'> Init_Complex(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE compat;</div><div class='del'>-#undef rb_intern</div><div class='del'>-#define rb_intern(str) rb_intern_const(str)</div><div class='del'>-</div><div class='del'>-    id_abs = rb_intern("abs");</div><div class='del'>-    id_arg = rb_intern("arg");</div><div class='del'>-    id_denominator = rb_intern("denominator");</div><div class='del'>-    id_fdiv = rb_intern("fdiv");</div><div class='del'>-    id_numerator = rb_intern("numerator");</div><div class='del'>-    id_quo = rb_intern("quo");</div><div class='del'>-    id_real_p = rb_intern("real?");</div><div class='del'>-    id_i_real = rb_intern("@real");</div><div class='del'>-    id_i_imag = rb_intern("@image"); /* @image, not @imag */</div><div class='del'>-    id_finite_p = rb_intern("finite?");</div><div class='del'>-    id_infinite_p = rb_intern("infinite?");</div><div class='del'>-    id_rationalize = rb_intern("rationalize");</div><div class='del'>-    id_PI = rb_intern("PI");</div><div class='add'>+    id_abs = rb_intern_const("abs");</div><div class='add'>+    id_arg = rb_intern_const("arg");</div><div class='add'>+    id_denominator = rb_intern_const("denominator");</div><div class='add'>+    id_numerator = rb_intern_const("numerator");</div><div class='add'>+    id_real_p = rb_intern_const("real?");</div><div class='add'>+    id_i_real = rb_intern_const("@real");</div><div class='add'>+    id_i_imag = rb_intern_const("@image"); /* @image, not @imag */</div><div class='add'>+    id_finite_p = rb_intern_const("finite?");</div><div class='add'>+    id_infinite_p = rb_intern_const("infinite?");</div><div class='add'>+    id_rationalize = rb_intern_const("rationalize");</div><div class='add'>+    id_PI = rb_intern_const("PI");</div><div class='ctx'> </div><div class='ctx'>     rb_cComplex = rb_define_class("Complex", rb_cNumeric);</div><div class='ctx'> </div><div class='hunk'>@@ -2182,9 +2321,8 @@ Init_Complex(void)</div><div class='ctx'> </div><div class='ctx'>     rb_define_global_function("Complex", nucomp_f_complex, -1);</div><div class='ctx'> </div><div class='del'>-    rb_undef_methods_from(rb_cComplex, rb_mComparable);</div><div class='add'>+    rb_undef_methods_from(rb_cComplex, RCLASS_ORIGIN(rb_mComparable));</div><div class='ctx'>     rb_undef_method(rb_cComplex, "%");</div><div class='del'>-    rb_undef_method(rb_cComplex, "&lt;=&gt;");</div><div class='ctx'>     rb_undef_method(rb_cComplex, "div");</div><div class='ctx'>     rb_undef_method(rb_cComplex, "divmod");</div><div class='ctx'>     rb_undef_method(rb_cComplex, "floor");</div><div class='hunk'>@@ -2210,6 +2348,7 @@ Init_Complex(void)</div><div class='ctx'>     rb_define_method(rb_cComplex, "**", rb_complex_pow, 1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cComplex, "==", nucomp_eqeq_p, 1);</div><div class='add'>+    rb_define_method(rb_cComplex, "&lt;=&gt;", nucomp_cmp, 1);</div><div class='ctx'>     rb_define_method(rb_cComplex, "coerce", nucomp_coerce, 1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cComplex, "abs", rb_complex_abs, 0);</div><div class='hunk'>@@ -2224,7 +2363,7 @@ Init_Complex(void)</div><div class='ctx'>     rb_define_method(rb_cComplex, "conjugate", rb_complex_conjugate, 0);</div><div class='ctx'>     rb_define_method(rb_cComplex, "conj", rb_complex_conjugate, 0);</div><div class='ctx'> </div><div class='del'>-    rb_define_method(rb_cComplex, "real?", nucomp_false, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "real?", nucomp_real_p_m, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cComplex, "numerator", nucomp_numerator, 0);</div><div class='ctx'>     rb_define_method(rb_cComplex, "denominator", nucomp_denominator, 0);</div><div class='hunk'>@@ -2247,8 +2386,6 @@ Init_Complex(void)</div><div class='ctx'>     rb_define_private_method(compat, "marshal_load", nucomp_marshal_load, 1);</div><div class='ctx'>     rb_marshal_define_compat(rb_cComplex, compat, nucomp_dumper, nucomp_loader);</div><div class='ctx'> </div><div class='del'>-    /* --- */</div><div class='del'>-</div><div class='ctx'>     rb_define_method(rb_cComplex, "to_i", nucomp_to_i, 0);</div><div class='ctx'>     rb_define_method(rb_cComplex, "to_f", nucomp_to_f, 0);</div><div class='ctx'>     rb_define_method(rb_cComplex, "to_r", nucomp_to_r, 0);</div><div class='hunk'>@@ -2261,11 +2398,6 @@ Init_Complex(void)</div><div class='ctx'> </div><div class='ctx'>     rb_define_private_method(CLASS_OF(rb_cComplex), "convert", nucomp_s_convert, -1);</div><div class='ctx'> </div><div class='del'>-    /* --- */</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cNumeric, "real", numeric_real, 0);</div><div class='del'>-    rb_define_method(rb_cNumeric, "imaginary", numeric_imag, 0);</div><div class='del'>-    rb_define_method(rb_cNumeric, "imag", numeric_imag, 0);</div><div class='ctx'>     rb_define_method(rb_cNumeric, "abs2", numeric_abs2, 0);</div><div class='ctx'>     rb_define_method(rb_cNumeric, "arg", numeric_arg, 0);</div><div class='ctx'>     rb_define_method(rb_cNumeric, "angle", numeric_arg, 0);</div><div class='hunk'>@@ -2273,8 +2405,6 @@ Init_Complex(void)</div><div class='ctx'>     rb_define_method(rb_cNumeric, "rectangular", numeric_rect, 0);</div><div class='ctx'>     rb_define_method(rb_cNumeric, "rect", numeric_rect, 0);</div><div class='ctx'>     rb_define_method(rb_cNumeric, "polar", numeric_polar, 0);</div><div class='del'>-    rb_define_method(rb_cNumeric, "conjugate", numeric_conj, 0);</div><div class='del'>-    rb_define_method(rb_cNumeric, "conj", numeric_conj, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cFloat, "arg", float_arg, 0);</div><div class='ctx'>     rb_define_method(rb_cFloat, "angle", float_arg, 0);</div><div class='hunk'>@@ -2284,7 +2414,7 @@ Init_Complex(void)</div><div class='ctx'>      * The imaginary unit.</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_const(rb_cComplex, "I",</div><div class='del'>-		    f_complex_new_bang2(rb_cComplex, ZERO, ONE));</div><div class='add'>+                    f_complex_new_bang2(rb_cComplex, ZERO, ONE));</div><div class='ctx'> </div><div class='ctx'> #if !USE_FLONUM</div><div class='ctx'>     rb_gc_register_mark_object(RFLOAT_0 = DBL2NUM(0.0));</div><div class='hunk'>@@ -2292,9 +2422,3 @@ Init_Complex(void)</div><div class='ctx'> </div><div class='ctx'>     rb_provide("complex.so");	/* for backward compatibility */</div><div class='ctx'> }</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>-Local variables:</div><div class='del'>-c-file-style: "ruby"</div><div class='del'>-End:</div><div class='del'>-*/</div><div class='head'>diff --git a/configure.ac b/configure.ac<br/>index 4e3f1ef0e5..220392d120 100644<br/>--- a/<a href='/ruby.git/tree/configure.ac?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>configure.ac</a><br/>+++ b/<a href='/ruby.git/tree/configure.ac?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>configure.ac</a></div><div class='hunk'>@@ -1,26 +1,59 @@</div><div class='ctx'> dnl Process this file with autoconf to produce a configure script.</div><div class='del'>-AC_INIT()</div><div class='add'>+AC_INIT</div><div class='ctx'> {</div><div class='ctx'> AC_CONFIG_AUX_DIR(tool)</div><div class='del'>-AC_CONFIG_MACRO_DIRS(tool/m4)</div><div class='ctx'> </div><div class='ctx'> AC_PREREQ(2.67)</div><div class='ctx'> </div><div class='del'>-dnl   override AC_CHECKING</div><div class='del'>-dnl   placed here due to aclocal(1)'s</div><div class='del'>-dnl   ignoring this definition in separate files</div><div class='del'>-AC_DEFUN([AC_CHECKING],[dnl</div><div class='del'>-AC_REQUIRE([_COLORIZE_RESULT_PREPARE])dnl</div><div class='del'>-AS_MESSAGE([checking ${msg_checking}$1${msg_reset}...])])dnl</div><div class='add'>+tooldir="$srcdir/tool"</div><div class='ctx'> </div><div class='ctx'> AC_DISABLE_OPTION_CHECKING</div><div class='ctx'> </div><div class='del'>-AC_ARG_VAR([cflags], [additional CFLAGS (ignored when CFLAGS is given)])</div><div class='del'>-AC_ARG_VAR([cppflags], [additional CPPFLAGS (ignored when CPPFLAGS is given)])</div><div class='del'>-AC_ARG_VAR([cxxflags], [additional CXXFLAGS (ignored when CXXFLAGS is given)])</div><div class='add'>+m4_include([tool/m4/_colorize_result_prepare.m4])dnl</div><div class='add'>+m4_include([tool/m4/ac_msg_result.m4])dnl</div><div class='add'>+m4_include([tool/m4/colorize_result.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_append_option.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_append_options.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_check_builtin_func.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_check_builtin_setjmp.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_check_printf_prefix.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_check_setjmp.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_check_signedness.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_check_sizeof.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_check_sysconf.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_cppoutfile.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_decl_attribute.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_default_arch.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_define_if.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_defint.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_dtrace_available.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_dtrace_postprocess.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_func_attribute.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_mingw32.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_prepend_option.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_prog_gnu_ld.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_prog_makedirs.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_replace_funcs.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_replace_type.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_require_funcs.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_rm_recursive.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_setjmp_type.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_stack_grow_direction.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_thread.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_try_cflags.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_try_cxxflags.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_try_ldflags.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_universal_arch.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_wasm_tools.m4])dnl</div><div class='add'>+m4_include([tool/m4/ruby_werror_flag.m4])dnl</div><div class='add'>+</div><div class='add'>+AC_ARG_VAR([cflags], [additional CFLAGS (ignored when CFLAGS is given)])dnl</div><div class='add'>+AC_ARG_VAR([cppflags], [additional CPPFLAGS (ignored when CPPFLAGS is given)])dnl</div><div class='add'>+AC_ARG_VAR([cxxflags], [additional CXXFLAGS (ignored when CXXFLAGS is given)])dnl</div><div class='ctx'> </div><div class='ctx'> : "environment section" &amp;&amp; {</div><div class='ctx'> HAVE_BASERUBY=yes</div><div class='add'>+BASERUBY_VERSION=</div><div class='ctx'> AC_ARG_WITH(baseruby,</div><div class='ctx'> 	AS_HELP_STRING([--with-baseruby=RUBY], [use RUBY as baseruby; RUBY is the pathname of ruby]),</div><div class='ctx'> 	[AS_CASE(["$withval"],</div><div class='hunk'>@@ -31,15 +64,22 @@ AC_ARG_WITH(baseruby,</div><div class='ctx'> 	[</div><div class='ctx'> 		AC_PATH_PROG([BASERUBY], [ruby], [false])</div><div class='ctx'> 	])</div><div class='del'>-AS_IF([test "$HAVE_BASERUBY" = yes -a "`RUBYOPT=- $BASERUBY -e 'print 42' 2&gt;/dev/null`" = 42], [</div><div class='del'>-    AS_IF([test "`RUBYOPT=- $BASERUBY --disable=gems -e 'print 42' 2&gt;/dev/null`" = 42], [</div><div class='del'>-	BASERUBY="$BASERUBY --disable=gems"</div><div class='add'>+# BASERUBY must be &gt;= 2.2.0. Note that `"2.2.0" &gt; "2.2"` is true.</div><div class='add'>+AS_IF([test "$HAVE_BASERUBY" != no -a "`RUBYOPT=- $BASERUBY --disable=gems -e 'print 42 if RUBY_VERSION &gt; "2.2"' 2&gt;/dev/null`" = 42], [</div><div class='add'>+    AS_CASE(["$build_os"], [mingw*], [</div><div class='add'>+        # Can MSys shell run a command with a drive letter?</div><div class='add'>+        RUBYOPT=- `cygpath -ma "$BASERUBY"` --disable=gems -e exit 2&gt;/dev/null || HAVE_BASERUBY=no</div><div class='ctx'>     ])</div><div class='add'>+    BASERUBY="$BASERUBY --disable=gems"</div><div class='add'>+    BASERUBY_VERSION=`$BASERUBY -v`</div><div class='ctx'>     $BASERUBY -C "$srcdir" tool/downloader.rb -d tool -e gnu config.guess config.sub &gt;&amp;AS_MESSAGE_FD</div><div class='ctx'> ], [</div><div class='del'>-    BASERUBY="echo executable host ruby is required.  use --with-baseruby option.; false"</div><div class='ctx'>     HAVE_BASERUBY=no</div><div class='ctx'> ])</div><div class='add'>+AS_IF([test "$HAVE_BASERUBY" = no], [</div><div class='add'>+    AS_IF([test "$cross_compiling" = yes], [AC_MSG_ERROR([executable host ruby is required for cross-compiling])])</div><div class='add'>+    BASERUBY="echo executable host ruby is required.  use --with-baseruby option.; false"</div><div class='add'>+])</div><div class='ctx'> AC_SUBST(BASERUBY)</div><div class='ctx'> AC_SUBST(HAVE_BASERUBY)</div><div class='ctx'> </div><div class='hunk'>@@ -55,27 +95,53 @@ AS_IF([test x"$HAVE_GIT" = xyes], [command -v "$GIT" &gt; /dev/null || HAVE_GIT=no]</div><div class='ctx'> AC_SUBST(GIT)</div><div class='ctx'> AC_SUBST(HAVE_GIT)</div><div class='ctx'> </div><div class='del'>-eval `sed -n ['s/^@%:@define RUBY_API_VERSION_\([A-Z][A-Z_0-9]*\) \([0-9][0-9]*\)/API_\1=\2/p'] $srcdir/include/ruby/version.h`</div><div class='del'>-RUBY_PROGRAM_VERSION=`sed -n 's/^@%:@define RUBY_VERSION "\(.*\)"/\1/p' $srcdir/version.h`</div><div class='del'>-MAJOR=`echo $RUBY_PROGRAM_VERSION | cut -d. -f1`</div><div class='del'>-MINOR=`echo $RUBY_PROGRAM_VERSION | cut -d. -f2`</div><div class='del'>-TEENY=`echo $RUBY_PROGRAM_VERSION | cut -d. -f3`</div><div class='add'>+eval `sed -n -e ['s/^@%:@define RUBY_[A-Z_]*VERSION_\([A-Z][A-Z][A-Z_0-9]*\) \([0-9][0-9]*\)$/\1=\2/p'] \</div><div class='add'>+      -e ['s/^@%:@define \(RUBY_ABI_VERSION\) \([0-9][0-9]*\).*/\1=\2/p'] \</div><div class='add'>+      -e ['s/^@%:@define \(RUBY_PATCHLEVEL\) \(.*\)/\1=\2/p'] \</div><div class='add'>+     $srcdir/include/ruby/internal/abi.h \</div><div class='add'>+     $srcdir/include/ruby/version.h $srcdir/version.h`</div><div class='ctx'> for v in MAJOR MINOR TEENY; do</div><div class='ctx'>     AS_IF([eval "test \"\$$v\" = ''"], [</div><div class='ctx'> 	AC_MSG_ERROR(could not determine $v number from version.h)</div><div class='ctx'>     ])</div><div class='ctx'> done</div><div class='del'>-AS_IF([test "$MAJOR.$MINOR" != "$API_MAJOR.$API_MINOR"], [</div><div class='del'>-    AC_MSG_ERROR([API version $API_MAJOR.$API_MINOR differs from program version $MAJOR.$MINOR])</div><div class='del'>-])</div><div class='ctx'> AC_SUBST(MAJOR)</div><div class='ctx'> AC_SUBST(MINOR)</div><div class='ctx'> AC_SUBST(TEENY)</div><div class='del'>-AC_SUBST(RUBY_PROGRAM_VERSION)</div><div class='ctx'> AC_SUBST(RUBY_API_VERSION, '$(MAJOR).$(MINOR)')</div><div class='del'>-RUBY_PATCHLEVEL=`sed -n 's/^#define RUBY_PATCHLEVEL //p' $srcdir/version.h`</div><div class='add'>+AC_SUBST(RUBY_PROGRAM_VERSION, '$(MAJOR).$(MINOR).$(TEENY)')</div><div class='add'>+AS_CASE([$RUBY_PATCHLEVEL], [-*], [</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_ABI_VERSION, [${RUBY_ABI_VERSION}])</div><div class='add'>+], [RUBY_ABI_VERSION=])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$program_prefix" = NONE], [</div><div class='add'>+  program_prefix=</div><div class='add'>+])</div><div class='add'>+AS_IF([test "$prefix" -ef .], [</div><div class='add'>+  AC_MSG_ERROR(--prefix cannot be the current working directory.)</div><div class='add'>+])</div><div class='add'>+RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"`</div><div class='add'>+RUBYW_BASE_NAME=`echo rubyw | sed "$program_transform_name"`</div><div class='add'>+AC_SUBST(RUBY_BASE_NAME)</div><div class='add'>+AC_SUBST(RUBYW_BASE_NAME)</div><div class='add'>+AC_SUBST(RUBY_VERSION_NAME, '${RUBY_BASE_NAME}-${ruby_version}')</div><div class='add'>+</div><div class='ctx'> dnl checks for alternative programs</div><div class='ctx'> AC_CANONICAL_BUILD</div><div class='add'>+AC_CANONICAL_HOST</div><div class='add'>+AC_CANONICAL_TARGET</div><div class='add'>+AS_CASE(["$target_cpu-$target_os"],</div><div class='add'>+    [aarch64-darwin*], [</div><div class='add'>+        target_cpu=arm64</div><div class='add'>+        AS_CASE(["$target_vendor"], [unknown], [</div><div class='add'>+            target_vendor=apple</div><div class='add'>+            target=${target%%-unknown-*}-apple-${target@%:@*-unknown-}</div><div class='add'>+        ])</div><div class='add'>+        target="arm64-${target@%:@aarch64-}"</div><div class='add'>+        AS_IF([test -n "$target_alias"], [target_alias="arm64-${target_alias@%:@aarch64-}"])</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+AC_ARG_PROGRAM</div><div class='ctx'> RUBY_RM_RECURSIVE</div><div class='ctx'> AC_ARG_WITH(gcc,</div><div class='ctx'> 	AS_HELP_STRING([--without-gcc], [never use gcc]),</div><div class='hunk'>@@ -89,21 +155,127 @@ AS_IF([test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"], [</div><div class='ctx'>   AC_MSG_ERROR(cached CC is different -- throw away $cache_file</div><div class='ctx'> (it is also a good idea to do 'make clean' before compiling))</div><div class='ctx'> ])</div><div class='del'>-test -z "$CC" || ac_cv_prog_CC="$CC"</div><div class='ctx'> </div><div class='del'>-AS_IF([test "$program_prefix" = NONE], [</div><div class='del'>-  program_prefix=</div><div class='add'>+RUBY_WASM_TOOLS</div><div class='add'>+</div><div class='add'>+AS_CASE(["${build_os}"],</div><div class='add'>+[linux*|cygwin*|msys*], [</div><div class='add'>+    # Naruse prefers GCC on Linux</div><div class='add'>+    AC_CHECK_TOOLS([CC], [gcc clang cc])</div><div class='add'>+],</div><div class='add'>+[solaris*], [</div><div class='add'>+    # Clang on Solaris is largely untested.</div><div class='add'>+    # https://bugs.ruby-lang.org/issues/17949</div><div class='add'>+    AC_CHECK_TOOLS([CC], [cc gcc])</div><div class='add'>+], [</div><div class='add'>+    # OpenBSD wants to prefer cc over gcc.</div><div class='add'>+    # See https://github.com/ruby/ruby/pull/2443</div><div class='add'>+    AC_CHECK_TOOLS([CC], [cl.exe clang cc gcc c99 /usr/ucb/cc])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+AC_ARG_VAR([AR],       [Archiver command])</div><div class='add'>+AC_ARG_VAR([AS],       [Assembler command])</div><div class='add'>+AC_ARG_VAR([CC],       [C compiler command])</div><div class='add'>+AC_ARG_VAR([CXX],      [C++ compiler command])</div><div class='add'>+AC_ARG_VAR([LD],       [Linker command])</div><div class='add'>+AC_ARG_VAR([NM],       [Symbol list command])</div><div class='add'>+AC_ARG_VAR([OBJCOPY],  [Objcopy command])</div><div class='add'>+AC_ARG_VAR([OBJDUMP],  [Objdump command])</div><div class='add'>+AC_ARG_VAR([RANLIB],   [Ranlib command])</div><div class='add'>+AC_ARG_VAR([STRIP],    [Strip command])</div><div class='add'>+</div><div class='add'>+# We don't want to bother things like `ccache gcc`, `clang -shared-libgcc`, ...</div><div class='add'>+set rb_dummy ${CC}</div><div class='add'>+rb_CC=$2</div><div class='add'>+AC_DEFUN([RUBY_CHECK_PROG_FOR_CC], [</div><div class='add'>+    rb_prog=`echo "${rb_CC}" | sed "$2"`</div><div class='add'>+    AC_CHECK_PROG([$1], [$rb_prog], [$rb_prog])</div><div class='add'>+])</div><div class='add'>+AS_CASE(["/${rb_CC} "],</div><div class='add'>+[*@&lt;:@\ /@:&gt;@"cc "*], [</div><div class='add'>+    # Don't try g++/clang++ when CC=cc</div><div class='add'>+    AC_CHECK_PROGS([CXX],    [cl.exe CC c++])</div><div class='add'>+],</div><div class='add'>+[*icc*],              [</div><div class='add'>+    # Intel C++ has interprocedural optimizations.  It tends to come with its</div><div class='add'>+    # own linker etc.</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([AR],      [s/icc/xiar/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([CXX],     [s/icc/icpc/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([LD],      [s/icc/xild/])</div><div class='add'>+],</div><div class='add'>+[*gcc*],              [</div><div class='add'>+    # Ditto for GCC.</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([LD],      [s/gcc/ld/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([AR],      [s/gcc/gcc-ar/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([CXX],     [s/gcc/g++/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([NM],      [s/gcc/gcc-nm/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([RANLIB],  [s/gcc/gcc-ranlib/])</div><div class='add'>+],</div><div class='add'>+[*clang*],            [</div><div class='add'>+    # Ditto for LLVM.  Note however that llvm-as is a LLVM-IR to LLVM bitcode</div><div class='add'>+    # assembler that does not target your machine native binary.</div><div class='add'>+</div><div class='add'>+    # Xcode has its own version tools that may be incompatible with</div><div class='add'>+    # genuine LLVM tools, use the tools in the same directory.</div><div class='add'>+</div><div class='add'>+    AS_IF([$rb_CC -E -dM -xc - &lt; /dev/null | grep -F __apple_build_version__ &gt; /dev/null],</div><div class='add'>+          [llvm_prefix=], [llvm_prefix=llvm-])</div><div class='add'>+    # AC_PREPROC_IFELSE cannot be used before AC_USE_SYSTEM_EXTENSIONS</div><div class='add'>+</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([LD],      [s/clang/ld/]) # ... maybe try lld ?</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([AR],      [s/clang/${llvm_prefix}ar/])</div><div class='add'>+#   RUBY_CHECK_PROG_FOR_CC([AS],      [s/clang/${llvm_prefix}as/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([CXX],     [s/clang/clang++/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([NM],      [s/clang/${llvm_prefix}nm/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([OBJCOPY], [s/clang/${llvm_prefix}objcopy/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([OBJDUMP], [s/clang/${llvm_prefix}objdump/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([RANLIB],  [s/clang/${llvm_prefix}ranlib/])</div><div class='add'>+    RUBY_CHECK_PROG_FOR_CC([STRIP],   [s/clang/${llvm_prefix}strip/])</div><div class='add'>+])</div><div class='add'>+AS_UNSET(rb_CC)</div><div class='add'>+AS_UNSET(rb_dummy)</div><div class='add'>+</div><div class='add'>+AS_CASE(["${build_os}"],</div><div class='add'>+[solaris*], [</div><div class='add'>+    AC_PATH_TOOL([LD], [ld], [/usr/ccs/bin/ld], [/usr/ccs/bin:$PATH])</div><div class='add'>+],</div><div class='add'>+[aix*], [</div><div class='add'>+    AC_PATH_TOOL([NM], [nm], [/usr/ccs/bin/nm], [/usr/ccs/bin:$PATH])</div><div class='ctx'> ])</div><div class='del'>-AS_IF([test "$prefix" -ef .], [</div><div class='del'>-  AC_MSG_ERROR(--prefix cannot be the current working directory.)</div><div class='add'>+AS_CASE(["${target_os}"],</div><div class='add'>+[cygwin*|msys*|mingw*], [</div><div class='add'>+    ac_cv_prog_ac_ct_OBJCOPY=":"</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+rb_test_CFLAGS=${CFLAGS+yes}</div><div class='add'>+rb_test_CXXFLAGS=${CXXFLAGS+yes}</div><div class='add'>+</div><div class='add'>+# BSD's ports and MacPorts prefix GNU binutils with 'g'</div><div class='add'>+</div><div class='add'>+dnl Seems necessarily in order to add -std=gnu99 option for gcc 4.9.</div><div class='add'>+m4_version_prereq([2.70], [AC_PROG_CC], [AC_PROG_CC_C99])</div><div class='add'>+</div><div class='add'>+AC_PROG_CXX</div><div class='add'>+AC_PROG_CPP</div><div class='add'>+AC_PROG_RANLIB</div><div class='add'>+AC_CHECK_TOOLS([AR],      [gar ar])</div><div class='add'>+AC_CHECK_TOOLS([AS],      [gas as])</div><div class='add'>+AC_CHECK_TOOLS([LD],      [gld ld]) # ... try gold ?</div><div class='add'>+AC_CHECK_TOOLS([NM],      [gnm nm])</div><div class='add'>+AC_CHECK_TOOLS([OBJCOPY], [gobjcopy objcopy])</div><div class='add'>+AC_CHECK_TOOLS([OBJDUMP], [gobjdump objdump])</div><div class='add'>+AC_CHECK_TOOLS([STRIP],   [gstrip strip], [:])</div><div class='add'>+</div><div class='add'>+AS_IF([test ! $rb_test_CFLAGS], [AS_UNSET(CFLAGS)]); AS_UNSET(rb_test_CFLAGS)</div><div class='add'>+AS_IF([test ! $rb_test_CXXFLAGS], [AS_UNSET(CXXFLAGS)]); AS_UNSET(rb_save_CXXFLAGS)</div><div class='add'>+</div><div class='add'>+AS_IF([test "${CXX}" = "g++" -a -z "${GXX}"], [</div><div class='add'>+    # AC_PROG_CXX sets $CXX to "g++" when it purposefully finds that there is</div><div class='add'>+    # _no_ g++.  This brain-damaged design must be worked around.  Thankfully,</div><div class='add'>+    # similar thing doesn't happen for AC_PROG_CC.</div><div class='add'>+    rb_there_is_in_fact_no_gplusplus_but_autoconf_is_cheating_us=true</div><div class='ctx'> ])</div><div class='del'>-RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"`</div><div class='del'>-RUBYW_BASE_NAME=`echo rubyw | sed "$program_transform_name"`</div><div class='del'>-AC_SUBST(RUBY_BASE_NAME)</div><div class='del'>-AC_SUBST(RUBYW_BASE_NAME)</div><div class='del'>-AC_SUBST(RUBY_VERSION_NAME, '${RUBY_BASE_NAME}-${ruby_version}')</div><div class='ctx'> </div><div class='del'>-AC_CANONICAL_TARGET</div><div class='ctx'> test x"$target_alias" = x &amp;&amp;</div><div class='ctx'> target_os=`echo $target_os | sed 's/linux-gnu$/linux/;s/linux-gnu/linux-/'`</div><div class='ctx'> ac_install_sh='' # unusable for extension libraries.</div><div class='hunk'>@@ -130,7 +302,7 @@ AS_CASE("${os_version_style}",</div><div class='ctx'> 	[minor],   [os_version_style_transform=['s/\([0-9]\.[0-9][0-9]*\)\.[0-9][.0-9]*$/\1/']],</div><div class='ctx'> 	[major+0], [os_version_style_transform=['s/\([0-9]\)\.[0-9][.0-9]*$/\1.0/']],</div><div class='ctx'> 	[major],   [os_version_style_transform=['s/\([0-9]\)\.[0-9][.0-9]*$/\1/']],</div><div class='del'>-	[none],    [os_version_style_transform=['s/[0-9]\.[0-9][.0-9]*$//']],</div><div class='add'>+	[none],    [os_version_style_transform=['s/[0-9]*\.[0-9][.0-9]*$//']],</div><div class='ctx'> 	[AC_MSG_ERROR(unknown --with-os-version-style: $withval)])</div><div class='ctx'> AS_IF([test -z "$target_alias" -a -n "$os_version_style_transform"],</div><div class='ctx'> 	[</div><div class='hunk'>@@ -151,7 +323,8 @@ AC_ARG_ENABLE(load-relative,</div><div class='ctx'>        AS_HELP_STRING([--enable-load-relative], [resolve load paths at run time]),</div><div class='ctx'>        [load_relative=$enableval])</div><div class='ctx'> </div><div class='del'>-AC_ARG_PROGRAM</div><div class='add'>+# checks for UNIX variants that set C preprocessor variables</div><div class='add'>+AC_USE_SYSTEM_EXTENSIONS</div><div class='ctx'> </div><div class='ctx'> dnl Checks for programs.</div><div class='ctx'> </div><div class='hunk'>@@ -160,67 +333,51 @@ test -z "$optflags" ||</div><div class='ctx'>     cflagspat="$cflagspat;s|"`eval echo '"'"${optflags}"'"' | sed 's/[[][|.*]]/\\&amp;/g;s/^ */ /;s/ *$/ /'`'| |g'</div><div class='ctx'> test -z "$debugflags" ||</div><div class='ctx'>     cflagspat="$cflagspat;s|"`eval echo '"'"${debugflags}"'"' | sed 's/[[][|.*]]/\\&amp;/g;s/^ */ /;s/ *$/ /'`'| |g'</div><div class='del'>-test -z "warnflags" ||</div><div class='add'>+test -z "$warnflags" ||</div><div class='ctx'>     cflagspat="$cflagspat;s|"`eval echo '"'"${warnflags}"'"' | sed 's/[[][|.*]]/\\&amp;/g;s/^ */ /;s/ *$/ /'`'| |g'</div><div class='ctx'> AS_IF([test -z "${CFLAGS+set}"], [</div><div class='ctx'>     cflags=`echo " $cflags " | sed "$cflagspat;s/^ *//;s/ *$//"`</div><div class='ctx'>     orig_cflags="$cflags"</div><div class='ctx'>     cflags="$cflags "'${optflags} ${debugflags} ${warnflags}'</div><div class='ctx'> ])</div><div class='del'>-AS_IF([test -z "${CXXFLAGS+set}"], [</div><div class='del'>-    cxxflags=`echo " $cxxflags " | sed "$cflagspat;s/^ *//;s/ *$//"`</div><div class='del'>-    orig_cxxflags="$cxxflags"</div><div class='del'>-    cxxflags="$cxxflags "'${optflags} ${debugflags} ${warnflags}'</div><div class='del'>-])</div><div class='add'>+dnl AS_IF([test -z "${CXXFLAGS+set}"], [</div><div class='add'>+dnl     cxxflags=`echo " $cxxflags " | sed "$cflagspat;s/^ *//;s/ *$//"`</div><div class='add'>+dnl     orig_cxxflags="$cxxflags"</div><div class='add'>+dnl     cxxflags="$cxxflags "'${optflags} ${debugflags} ${warnflags}'</div><div class='add'>+dnl ])</div><div class='ctx'> </div><div class='ctx'> AS_CASE(["$host_os:$build_os"],</div><div class='ctx'> [darwin*:darwin*], [</div><div class='del'>-    AC_CHECK_TOOLS(CC, [clang gcc cc])</div><div class='ctx'>     # Following Apple deployed clang are broken</div><div class='ctx'>     # clang version 1.0 (http://llvm.org/svn/llvm-project/cfe/tags/Apple/clang-23 exported)</div><div class='ctx'>     # Apple clang version 2.0 (tags/Apple/clang-137) (based on LLVM 2.9svn)</div><div class='ctx'>     # Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)</div><div class='del'>-    AS_IF([! $CC -E -xc - &lt;&lt;SRC &gt;/dev/null], [</div><div class='del'>-	@%:@if defined __APPLE_CC__ &amp;&amp; defined __clang_major__ &amp;&amp; __clang_major__ &lt; 3</div><div class='del'>-	@%:@error premature clang</div><div class='del'>-	@%:@endif</div><div class='del'>-SRC</div><div class='del'>-	AC_MSG_ERROR([clang version 3.0 or later is required])</div><div class='del'>-    ])</div><div class='del'>-])</div><div class='del'>-AS_IF([test x"${build}" != x"${host}"], [</div><div class='del'>-  AC_CHECK_TOOL(CC, gcc)</div><div class='add'>+    AC_PREPROC_IFELSE(</div><div class='add'>+	[AC_LANG_PROGRAM([</div><div class='add'>+	    @%:@if defined __APPLE_CC__ &amp;&amp; defined __clang_major__ &amp;&amp; __clang_major__ &lt; 3</div><div class='add'>+	    @%:@error premature clang</div><div class='add'>+	    @%:@endif</div><div class='add'>+	])],</div><div class='add'>+	[],</div><div class='add'>+	[AC_MSG_ERROR([clang version 3.0 or later is required])])</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='del'>-AC_PROG_CC</div><div class='del'>-AS_CASE([$CC],</div><div class='del'>-[gcc-*], [</div><div class='del'>-    gcc_prefix=gcc- gcc_suffix=`echo "$CC" | sed 's/^gcc//'`</div><div class='del'>-    AC_PROG_CXX(g++${gcc_suffix})],</div><div class='del'>-[clang-*], [</div><div class='del'>-    gcc_prefix=clang- gcc_suffix=`echo "$CC" | sed 's/^clang//'`</div><div class='del'>-    AC_PROG_CXX(clang++${gcc_suffix})],</div><div class='del'>-[gcc_prefix= gcc_suffix=])</div><div class='del'>-</div><div class='del'>-dnl Select the appropriate C++ compiler in OS X</div><div class='del'>-AS_CASE(["$build_os"],</div><div class='del'>-  [darwin1*.*], [</div><div class='del'>-    AS_CASE(["x$CC"],</div><div class='del'>-      [xgcc-4.2|x/usr/bin/gcc-4.2], [: ${CXX=g++-4.2}],</div><div class='del'>-      [xgcc|x/usr/bin/gcc],         [: ${CXX=g++}],</div><div class='del'>-      [xcc|x/usr/bin/cc],           [: ${CXX=c++}],</div><div class='del'>-      [xicc],                       [: ${CXX=icpc}],</div><div class='del'>-      [xclang|x/usr/bin/clang],     [: ${CXX=clang++}])</div><div class='del'>-  ])</div><div class='del'>-test -z "$CXX" || ac_cv_prog_CXX="$CXX"</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[darwin*], [</div><div class='add'>+    AC_MSG_CHECKING(if minimum required OS X version is supported)</div><div class='add'>+    AC_PREPROC_IFELSE([AC_LANG_SOURCE([[@%:@include &lt;AvailabilityMacros.h&gt;</div><div class='add'>+	@%:@if MAC_OS_X_VERSION_MIN_REQUIRED &lt; __MAC_10_5</div><div class='add'>+	@%:@error pre OS X 10.5</div><div class='add'>+	[!&lt;===== pre OS X 10.5 =====&gt;]</div><div class='add'>+	@%:@endif</div><div class='add'>+	]])],</div><div class='add'>+	[AC_MSG_RESULT(yes)],</div><div class='add'>+	[AC_MSG_RESULT(no)</div><div class='add'>+	AC_MSG_ERROR([Unsupported OS X version is required])])</div><div class='add'>+])</div><div class='ctx'> </div><div class='del'>-AC_PROG_CXX</div><div class='ctx'> RUBY_MINGW32</div><div class='del'>-AC_PROG_GCC_TRADITIONAL</div><div class='ctx'> AC_SUBST(GCC)</div><div class='del'>-AS_CASE(["$target_os"],</div><div class='del'>-[solaris*], [AC_PATH_TOOL([LD], [ld], [/usr/ccs/bin/ld], [/usr/ccs/bin:$PATH])],</div><div class='del'>-[AC_CHECK_TOOL([LD], [ld], [ld])])</div><div class='ctx'> AC_SUBST(LD)</div><div class='ctx'> AS_IF([test "$GCC" = yes], [</div><div class='ctx'>     linker_flag=-Wl,</div><div class='hunk'>@@ -229,19 +386,24 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'>     gcc_minor=`echo =__GNUC_MINOR__ | $CC -E -xc - | sed '/^=/!d;s///'`</div><div class='ctx'>     test -n "$gcc_major" || gcc_major=0</div><div class='ctx'>     test -n "$gcc_minor" || gcc_minor=0</div><div class='del'>-    AS_CASE(["x$CC"], [xicc], [</div><div class='del'>-      icc_version=`echo =__ICC | $CC -E -xc - | sed '/^=/!d;s///'`</div><div class='del'>-    ])</div><div class='add'>+    icc_version=`echo =__ICC | $CC -E -xc - | sed '/^=/!d;s///;/^__ICC/d'`</div><div class='ctx'>     test -n "$icc_version" || icc_version=0</div><div class='ctx'>     # RUBY_APPEND_OPTIONS(XCFLAGS, ["-include ruby/config.h" "-include ruby/missing.h"])</div><div class='add'>+</div><div class='add'>+    AS_IF([test "$gcc_major" -lt 4], [</div><div class='add'>+        AC_MSG_ERROR([too old GCC: $gcc_major.$gcc_minor])</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+    AC_CACHE_CHECK([if thread-local storage is supported], [rb_cv_tls_supported],</div><div class='add'>+        [AC_LINK_IFELSE([AC_LANG_PROGRAM([[int __thread conftest;]])],</div><div class='add'>+            [rb_cv_tls_supported=yes],</div><div class='add'>+            [rb_cv_tls_supported=no])])</div><div class='add'>+    AS_IF([test x"$rb_cv_tls_supported" != xyes],</div><div class='add'>+        [AC_DEFINE(RB_THREAD_LOCAL_SPECIFIER_IS_UNSUPPORTED)])</div><div class='ctx'> ], [</div><div class='ctx'>     linker_flag=</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='del'>-AS_IF([test "$GCC" = yes -a "$gcc_major" -lt 3 ], [</div><div class='del'>-    AC_MSG_ERROR([too old GCC])</div><div class='del'>-])</div><div class='del'>-</div><div class='ctx'> RUBY_PROG_GNU_LD</div><div class='ctx'> RUBY_CPPOUTFILE</div><div class='ctx'> </div><div class='hunk'>@@ -255,6 +417,12 @@ AC_SUBST(CSRCFLAG)</div><div class='ctx'> : ${MJIT_CC=$CC}</div><div class='ctx'> AS_IF([test "x$cross_compiling" = xno], [</div><div class='ctx'>     AC_PATH_PROG([MJIT_CC], ${MJIT_CC})</div><div class='add'>+</div><div class='add'>+    # if $CC is in /usr/lib/ccache/$CC, search original $CC (disable ccache)</div><div class='add'>+    AS_IF([echo $RUBY_DEBUG | grep ci &gt; /dev/null &amp;&amp;</div><div class='add'>+           echo $MJIT_CC | grep ^/usr/lib/ccache &gt; /dev/null], [</div><div class='add'>+           PATH=`echo $PATH | sed "s/\/usr\/lib\/ccache://"` MJIT_CC=`which $CC`])</div><div class='add'>+</div><div class='ctx'>     AS_CASE([$target_os],</div><div class='ctx'> 	[*mingw*], [command -v cygpath &gt; /dev/null &amp;&amp; MJIT_CC=`cygpath -ma $MJIT_CC`])</div><div class='ctx'>     shift 2</div><div class='hunk'>@@ -269,11 +437,20 @@ AS_CASE(["$build_os"],</div><div class='ctx'>     echo 'int main(void) {return 0;}' &gt; conftest.c</div><div class='ctx'>     AS_IF([$CC -framework Foundation -o conftest conftest.c 2&gt;&amp;1 |</div><div class='ctx'> 	   grep '^ld: warning: text-based stub file' &gt;/dev/null], [</div><div class='del'>-	CC_WRAPPER=`cd -P "$srcdir/tool" &amp;&amp; pwd`/darwin-cc</div><div class='add'>+	CC_WRAPPER=`cd -P "${tooldir}" &amp;&amp; pwd`/darwin-cc</div><div class='ctx'> 	CC="$CC_WRAPPER $CC"</div><div class='ctx'>     ])</div><div class='ctx'>     rm -fr conftest*</div><div class='ctx'>   ])</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+  [wasi*], [</div><div class='add'>+    # Clang linker automatically uses wasm-opt with -O if it found.</div><div class='add'>+    # https://github.com/llvm/llvm-project/blob/812828984c10857a4cd260eb638c52a4411f9143/clang/lib/Driver/ToolChains/WebAssembly.cpp#L95-L118</div><div class='add'>+    # However optimization before asyncify causes misoptimization,</div><div class='add'>+    # so wrap clang to insert our fake wasm-opt, which does nothing, in PATH.</div><div class='add'>+    CC_WRAPPER=`cd -P "${tooldir}" &amp;&amp; pwd`/wasm-clangw</div><div class='add'>+    CC="$CC_WRAPPER $CC"</div><div class='add'>+  ])</div><div class='ctx'> </div><div class='ctx'> cc_version=</div><div class='ctx'> for option in --version -v -V -qversion; do</div><div class='hunk'>@@ -290,40 +467,24 @@ AC_SUBST(CC_VERSION_MESSAGE, $cc_version_message)</div><div class='ctx'> : ${DLDFLAGS="$LDFLAGS"}</div><div class='ctx'> </div><div class='ctx'> RUBY_UNIVERSAL_ARCH</div><div class='del'>-AS_IF([test "$target_cpu" != "$host_cpu" -a "$GCC" = yes -a "$cross_compiling" = no -a "$universal_binary" = no], [</div><div class='add'>+AS_IF([test "$target_cpu" != "$host_cpu" -a "$GCC" = yes -a "$cross_compiling" = no -a "${universal_binary:-no}" = no], [</div><div class='ctx'>     RUBY_DEFAULT_ARCH("$target_cpu")</div><div class='ctx'> ])</div><div class='add'>+host_os=$target_os</div><div class='add'>+host_vendor=$target_vendor</div><div class='add'>+host_cpu=$target_cpu</div><div class='add'>+host=$target</div><div class='add'>+host_alias=$target_alias</div><div class='ctx'> </div><div class='del'>-AS_CASE(["$target_os"], [darwin*], [</div><div class='del'>-if libtool 2&gt;&amp;1 | grep no_warning_for_no_symbols &gt; /dev/null; then</div><div class='del'>-  ac_cv_prog_ac_ct_RANLIB=:</div><div class='del'>-  ac_cv_prog_ac_ct_AR='libtool -static'</div><div class='del'>-  rb_cv_arflags='-no_warning_for_no_symbols -o'</div><div class='del'>-fi</div><div class='del'>-])</div><div class='del'>-AC_CHECK_TOOLS(RANLIB, [${gcc_prefix}ranlib${gcc_suffix} ranlib], :)</div><div class='del'>-AC_CHECK_TOOLS(AR, [${gcc_prefix}ar${gcc_suffix} ar])</div><div class='del'>-AS_IF([test -z "$AR"], [</div><div class='del'>-  AC_CHECK_PROGS(AR, aal, ar)</div><div class='del'>-])</div><div class='ctx'> AC_CACHE_CHECK([for $AR flags], [rb_cv_arflags], [</div><div class='ctx'>     AS_IF([$AR rcD conftest.a &gt; /dev/null 2&gt;&amp;1 &amp;&amp; rm conftest.a],</div><div class='ctx'> 	[rb_cv_arflags=rcD], [rb_cv_arflags=rcu])</div><div class='ctx'> ])</div><div class='ctx'> AC_SUBST(ARFLAGS, ["$rb_cv_arflags "])</div><div class='del'>-</div><div class='del'>-AC_CHECK_TOOL(AS, as)</div><div class='del'>-ASFLAGS=$ASFLAGS</div><div class='ctx'> AC_SUBST(ASFLAGS)</div><div class='ctx'> </div><div class='del'>-AS_CASE(["$target_os"],[cygwin*|mingw*], [ac_cv_prog_ac_ct_OBJCOPY=":"])</div><div class='del'>-</div><div class='del'>-# BSD's ports and MacPorts prefix GNU binutils with 'g'</div><div class='del'>-AC_CHECK_TOOLS(OBJDUMP, [objdump gobjdump])</div><div class='del'>-AC_CHECK_TOOLS(OBJCOPY, [objcopy gobjcopy])</div><div class='del'>-</div><div class='ctx'> AS_CASE(["$target_os"],</div><div class='del'>-[cygwin*|mingw*], [</div><div class='add'>+[cygwin*|msys*|mingw*], [</div><div class='ctx'>     AC_CHECK_TOOL(WINDRES, windres)</div><div class='ctx'>     AC_CHECK_TOOL(DLLWRAP, dllwrap)</div><div class='ctx'>     target=`echo $target | sed "s/^$target_cpu-/-/"`</div><div class='hunk'>@@ -335,38 +496,34 @@ AS_CASE(["$target_os"],</div><div class='ctx'>     [mingw*], [</div><div class='ctx'> 	test "$rb_cv_msvcrt" = "" &amp;&amp; unset rb_cv_msvcrt</div><div class='ctx'> 	AC_CACHE_CHECK(for mingw32 runtime DLL, rb_cv_msvcrt, [</div><div class='del'>-	AC_TRY_LINK([@%:@include &lt;stdio.h&gt;],</div><div class='del'>-		    [FILE* volatile f = stdin; return 0;],</div><div class='add'>+	AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include &lt;stdio.h&gt;]],</div><div class='add'>+		    [[FILE* volatile f = stdin; return 0;]])],</div><div class='ctx'> 		    [rb_cv_msvcrt=`$OBJDUMP -p conftest$ac_exeext |</div><div class='ctx'> 				   tr A-Z a-z |</div><div class='del'>-				   sed -n '/^[[ 	]]*dll name: \(msvc.*\)\.dll$/{s//\1/p;q;}'`],</div><div class='add'>+				   sed -n '/^[[ 	]]*dll name: \(msvc.*\)\.dll$/{s//\1/p;q;};</div><div class='add'>+					/^[[ 	]]*dll name: \(ucrtbase\|api-ms-win-crt-.*\)\.dll$/{s//ucrt/p;q;}'`],</div><div class='ctx'> 		    [rb_cv_msvcrt=msvcrt])</div><div class='ctx'> 	test "$rb_cv_msvcrt" = "" &amp;&amp; rb_cv_msvcrt=msvcrt])</div><div class='ctx'> 	RT_VER=`echo "$rb_cv_msvcrt" | tr -cd [0-9]`</div><div class='ctx'> 	test "$RT_VER" = "" &amp;&amp; RT_VER=60</div><div class='add'>+	test "$rb_cv_msvcrt" = "ucrt" &amp;&amp; RT_VER=140</div><div class='ctx'> 	AC_DEFINE_UNQUOTED(RUBY_MSVCRT_VERSION, $RT_VER)</div><div class='ctx'> 	sysconfdir=</div><div class='ctx'>     ])</div><div class='add'>+    rb_cv_binary_elf=no</div><div class='ctx'>     : ${enable_shared=yes}</div><div class='ctx'>     ],</div><div class='del'>-[aix*],     [AC_CHECK_TOOL(NM, nm, /usr/ccs/bin/nm, /usr/ccs/bin:$PATH)],</div><div class='ctx'> [hiuxmpp*], [AC_DEFINE(__HIUX_MPP__)])    # by TOYODA Eizi &lt;toyoda@npd.kishou.go.jp&gt;</div><div class='del'>-AC_CHECK_TOOLS(NM, [${gcc_prefix}nm${gcc_suffix} nm])</div><div class='ctx'> </div><div class='ctx'> AC_PROG_LN_S</div><div class='ctx'> AC_PROG_MAKE_SET</div><div class='ctx'> AC_PROG_INSTALL</div><div class='del'>-AC_PROG_MKDIR_P</div><div class='del'>-AS_IF([test "x$MKDIR_P" = "x -d"], [</div><div class='del'>-  AS_IF([test x"$as_mkdir_p" != xfalse], [</div><div class='del'>-    MKDIR_P='mkdir -p'</div><div class='del'>-    echo "use 'mkdir -p' as MKDIR_P"</div><div class='del'>-  ], [</div><div class='del'>-    AC_MSG_ERROR([mkdir -p is required])</div><div class='del'>-  ])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],[openbsd*],[</div><div class='add'>+    ac_cv_path_mkdir="mkdir"</div><div class='ctx'> ])</div><div class='del'>-MAKEDIRS="$MKDIR_P"</div><div class='del'>-AC_SUBST(MAKEDIRS)</div><div class='add'>+</div><div class='add'>+RUBY_PROG_MAKEDIRS</div><div class='ctx'> </div><div class='ctx'> AC_CHECK_PROG([DTRACE], [${ac_tool_prefix}dtrace], [${ac_tool_prefix}dtrace])</div><div class='ctx'> AS_IF([test "$cross_compiling:$ac_cv_prog_DTRACE" = no: -a -n "$ac_tool_prefix"], [</div><div class='hunk'>@@ -376,11 +533,35 @@ AS_IF([test "$cross_compiling:$ac_cv_prog_DTRACE" = no: -a -n "$ac_tool_prefix"]</div><div class='ctx'> AC_CHECK_PROGS(DOT, dot)</div><div class='ctx'> AC_CHECK_PROGS(DOXYGEN, doxygen)</div><div class='ctx'> </div><div class='del'>-AC_CHECK_PROG(PKG_CONFIG, pkg-config, [pkg-config], [], [],</div><div class='del'>-    [`"$as_dir/$ac_word$ac_exec_ext" --print-errors --version &gt; /dev/null 2&gt;&amp;1 || echo "$as_dir/$ac_word$ac_exec_ext"`])</div><div class='add'>+tool_warned=$ac_tool_warned ac_tool_warned=no</div><div class='add'>+AC_CHECK_TOOL(PKG_CONFIG, pkg-config)</div><div class='add'>+ac_tool_warned=$tool_warned</div><div class='add'>+AS_IF([test -z "$PKG_CONFIG"], [],</div><div class='add'>+["$PKG_CONFIG" --print-errors --version &gt; /dev/null 2&gt;&amp;1], [],</div><div class='add'>+[</div><div class='add'>+    unset ac_cv_prog_PKG_CONFIG</div><div class='add'>+    PKG_CONFIG=</div><div class='add'>+    AC_MSG_WARN([$PKG_CONFIG does not work; ignore])</div><div class='add'>+])</div><div class='ctx'> </div><div class='del'>-# checks for UNIX variants that set C preprocessor variables</div><div class='del'>-AC_USE_SYSTEM_EXTENSIONS</div><div class='add'>+AC_MSG_CHECKING([whether it is Android])</div><div class='add'>+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='add'>+	@%:@ifndef __ANDROID__</div><div class='add'>+	@%:@error Not android</div><div class='add'>+	@%:@endif</div><div class='add'>+]], [[]])],</div><div class='add'>+[</div><div class='add'>+	AC_MSG_RESULT(yes)</div><div class='add'>+	target_os=${target_os}-android</div><div class='add'>+	AS_IF([test "x$cross_compiling" = xno], [</div><div class='add'>+                AC_MSG_CHECKING([for Android API version])</div><div class='add'>+                # hacky workaround: https://github.com/termux/termux-packages/issues/6176</div><div class='add'>+                rb_android_api=`getprop ro.build.version.sdk`</div><div class='add'>+                AC_MSG_RESULT($rb_android_api)</div><div class='add'>+                RUBY_APPEND_OPTIONS(CPPFLAGS, -D__ANDROID_API__=$rb_android_api -Wno-macro-redefined)</div><div class='add'>+	])</div><div class='add'>+],</div><div class='add'>+[AC_MSG_RESULT(no)])</div><div class='ctx'> </div><div class='ctx'> AC_SUBST(RM, ['rm -f'])</div><div class='ctx'> AC_SUBST(CP, ['cp'])</div><div class='hunk'>@@ -417,7 +598,7 @@ AC_SUBST(CHDIR)</div><div class='ctx'> : "compiler section" &amp;&amp; {</div><div class='ctx'> RUBY_WERROR_FLAG([</div><div class='ctx'>     AC_MSG_CHECKING([whether CFLAGS is valid])</div><div class='del'>-    AC_TRY_COMPILE([], [],</div><div class='add'>+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],</div><div class='ctx'> 	[AC_MSG_RESULT(yes)],</div><div class='ctx'> 	[</div><div class='ctx'> 	AC_MSG_RESULT(no)</div><div class='hunk'>@@ -433,7 +614,7 @@ RUBY_WERROR_FLAG([</div><div class='ctx'> 	echo '&lt;?xml?&gt;&lt;plist&gt;&lt;dict&gt;&lt;key&gt;CFBundleIdentifier&lt;/key&gt;&lt;string&gt;&lt;/string&gt;&lt;/dict&gt;&lt;/plist&gt;' &gt; Info.plist &amp;&amp;</div><div class='ctx'> 	:</div><div class='ctx'>     } || AC_MSG_ERROR([failed to make temporary directory])</div><div class='del'>-    AC_TRY_LINK([], [],</div><div class='add'>+    AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],</div><div class='ctx'> 	[AC_MSG_RESULT(yes)],</div><div class='ctx'> 	[</div><div class='ctx'> 	cd .. &amp;&amp; rm -fr tmp.$$.try_link</div><div class='hunk'>@@ -444,27 +625,58 @@ RUBY_WERROR_FLAG([</div><div class='ctx'>     cd .. &amp;&amp; rm -fr tmp.$$.try_link</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='del'>-: ${RPATHFLAG=''}</div><div class='del'>-rpathflag=''</div><div class='del'>-AS_IF([test x"${RPATHFLAG}" = x], [</div><div class='del'>-    AS_CASE(["$target_os"],</div><div class='del'>-	[hpux*], [AS_IF([test "$rb_cv_prog_gnu_ld" = no], [rpathflag='+b '])],</div><div class='add'>+: "rpath" &amp;&amp; {</div><div class='add'>+    AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf,</div><div class='add'>+        [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[</div><div class='add'>+            AS_CASE(["`head -1 conftest$EXEEXT | tr -dc '\177ELF' | tr '\177' .`"],</div><div class='add'>+            [.ELF*], [rb_cv_binary_elf=yes], [rb_cv_binary_elf=no])],</div><div class='add'>+            [rb_cv_binary_elf=no])])</div><div class='add'>+</div><div class='add'>+    rpathflag=''</div><div class='add'>+    AS_IF([test x"${RPATHFLAG=}" = x], [</div><div class='add'>+	AS_CASE(["$target_os"],</div><div class='ctx'> 	[aix*], [rpathflag='-blibpath:'],</div><div class='del'>-	[for rpathflag in -R "-rpath "; do</div><div class='add'>+	[for rpathflag in "-rpath " -R; do</div><div class='ctx'> 	    AS_CASE("$rpathflag",</div><div class='ctx'> 		    [*" "], [AS_CASE(["${linker_flag}"],</div><div class='ctx'> 				     [*,], [rpathflag=`echo "$rpathflag" | tr ' ' ,`])])</div><div class='ctx'> 	    rpathflag="${linker_flag}${rpathflag}"</div><div class='ctx'> 	    RUBY_TRY_LDFLAGS([${rpathflag}.], [], [rpathflag=])</div><div class='del'>-	    AS_IF([test "x${rpathflag}" != x], [])</div><div class='add'>+	    AS_IF([test "x${rpathflag}" != x], [break])</div><div class='ctx'>         done])</div><div class='del'>-], [</div><div class='del'>-    rpathflag=`echo "$RPATHFLAG" | sed 's/%.*//'`</div><div class='add'>+    ], [</div><div class='add'>+        rpathflag=`echo "$RPATHFLAG" | sed 's/%.*//'`</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+    AC_ARG_ENABLE(rpath,</div><div class='add'>+        AS_HELP_STRING([--enable-rpath], [embed run path into extension libraries.</div><div class='add'>+        enabled by default on ELF platforms]),</div><div class='add'>+        [enable_rpath=$enableval], [enable_rpath="$rb_cv_binary_elf"])</div><div class='add'>+</div><div class='add'>+    AS_IF([test "$enable_rpath:${RPATHFLAG}" = yes:], [</div><div class='add'>+        RPATHFLAG="${rpathflag:+ ${rpathflag}%1\$-s}"</div><div class='add'>+    ])</div><div class='add'>+    AS_CASE([${RPATHFLAG}],[*'%1$'*],[: ${LIBPATHFLAG=' -L%1$-s'}],[: ${LIBPATHFLAG=' -L%s'}])</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_TRY_LDFLAGS(-fdeclspec, [fdeclspec=yes], [fdeclspec=no])</div><div class='add'>+AS_IF([test "$fdeclspec" = yes], [</div><div class='add'>+    RUBY_APPEND_OPTIONS(CFLAGS, -fdeclspec)</div><div class='add'>+    RUBY_APPEND_OPTIONS(cflags, -fdeclspec)</div><div class='add'>+    RUBY_APPEND_OPTIONS(orig_cflags, -fdeclspec)</div><div class='add'>+])</div><div class='add'>+RUBY_TRY_CXXFLAGS(-fdeclspec, [fdeclspec=yes], [fdeclspec=no])</div><div class='add'>+AS_IF([test "$fdeclspec" = yes], [</div><div class='add'>+    RUBY_APPEND_OPTIONS(CXXFLAGS, -fdeclspec)</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='del'>-AS_CASE([$RUBY_PATCHLEVEL], [-*],</div><div class='del'>-	[RUBY_DEVEL=yes], [RUBY_DEVEL=no])</div><div class='del'>-particular_werror_flags=$RUBY_DEVEL</div><div class='add'>+AC_ARG_ENABLE(devel,</div><div class='add'>+    AS_HELP_STRING([--enable-devel], [enable development build]),</div><div class='add'>+    [RUBY_DEVEL=$enableval],</div><div class='add'>+    [AS_IF([test "x${RUBY_DEVEL-no}" != xyes], [RUBY_DEVEL=])]</div><div class='add'>+)dnl</div><div class='add'>+AC_SUBST(RUBY_DEVEL)</div><div class='add'>+particular_werror_flags=${RUBY_DEVEL:-no}</div><div class='ctx'> AC_ARG_ENABLE(werror,</div><div class='ctx'> 	AS_HELP_STRING([--disable-werror],</div><div class='ctx'> 		       [don't make warnings into errors</div><div class='hunk'>@@ -475,10 +687,7 @@ AC_ARG_ENABLE(werror,</div><div class='ctx'> rb_cv_warnflags="$warnflags"</div><div class='ctx'> AS_CASE(["$GCC:${warnflags+set}:${extra_warnflags:+set}:"],</div><div class='ctx'> [yes::*|yes:*:set:], [# GCC &amp;&amp; (!warnflags || extra_warnflags)</div><div class='del'>-    AS_IF([test $gcc_major -ge 4], [</div><div class='del'>-	extra_warnflags="$extra_warnflags -Werror=extra-tokens"</div><div class='del'>-    ])</div><div class='del'>-    AS_IF([test $gcc_major -ge 5 -a $gcc_major -le 6], [</div><div class='add'>+    AS_IF([test $gcc_major -le 6], [</div><div class='ctx'> 	extra_warnflags="$extra_warnflags -Wno-maybe-uninitialized"</div><div class='ctx'>     ])</div><div class='ctx'>     # ICC doesn't support -Werror=</div><div class='hunk'>@@ -486,17 +695,17 @@ AS_CASE(["$GCC:${warnflags+set}:${extra_warnflags:+set}:"],</div><div class='ctx'> 	particular_werror_flags=no</div><div class='ctx'>     ])</div><div class='ctx'>     for wflag in \</div><div class='del'>-		 -Werror=declaration-after-statement \</div><div class='add'>+		 -Werror=extra-tokens \</div><div class='ctx'> 		 -Werror=deprecated-declarations \</div><div class='del'>-		 -Werror=division-by-zero \</div><div class='add'>+		 -Werror=division-by-zero -Werror=div-by-zero \</div><div class='ctx'> 		 -Werror=duplicated-cond \</div><div class='ctx'> 		 -Werror=implicit-function-declaration \</div><div class='ctx'> 		 -Werror=implicit-int \</div><div class='ctx'> 		 -Werror=misleading-indentation \</div><div class='ctx'> 		 -Werror=pointer-arith \</div><div class='del'>-		 -Werror=restrict \</div><div class='ctx'> 		 -Werror=shorten-64-to-32 \</div><div class='ctx'> 		 -Werror=write-strings \</div><div class='add'>+		 -Werror=old-style-definition \</div><div class='ctx'> 		 -Wimplicit-fallthrough=0 \</div><div class='ctx'> 		 -Wmissing-noreturn \</div><div class='ctx'> 		 -Wno-cast-function-type \</div><div class='hunk'>@@ -513,7 +722,7 @@ AS_CASE(["$GCC:${warnflags+set}:${extra_warnflags:+set}:"],</div><div class='ctx'> 		 -Wsuggest-attribute=format \</div><div class='ctx'> 		 -Wsuggest-attribute=noreturn \</div><div class='ctx'> 		 -Wunused-variable \</div><div class='del'>-		 -diag-disable=175,188,2259 \</div><div class='add'>+		 -diag-disable=175,188,1684,2259,2312 \</div><div class='ctx'> 		 $extra_warnflags \</div><div class='ctx'> 		 ; do</div><div class='ctx'> 	AS_IF([test "$particular_werror_flags" != yes], [</div><div class='hunk'>@@ -532,6 +741,18 @@ AS_CASE(["$GCC:${warnflags+set}:${extra_warnflags:+set}:"],</div><div class='ctx'> 	    ])</div><div class='ctx'> 	])</div><div class='ctx'>     done</div><div class='add'>+    AS_IF([test "$particular_werror_flags" = "yes"], [</div><div class='add'>+	wflag=-Werror=undef</div><div class='add'>+    ], [</div><div class='add'>+	wflag=-Wundef</div><div class='add'>+    ])</div><div class='add'>+    RUBY_TRY_CFLAGS($wflag, [</div><div class='add'>+	RUBY_APPEND_OPTIONS(warnflags, $wflag)</div><div class='add'>+    ], [], [</div><div class='add'>+	@%:@if !defined(RUBY_CONFIG_TEST_NEVER_DEFINED_SYMBOL)</div><div class='add'>+	@%:@elif RUBY_CONFIG_TEST_NEVER_DEFINED_SYMBOL</div><div class='add'>+	@%:@endif</div><div class='add'>+    ])</div><div class='ctx'>     AS_CASE([" $warnflags "],[*" -Wno-missing-field-initializers "*], [wflag="-Wall -Wextra"],</div><div class='ctx'>                              [wflag=-Wall])</div><div class='ctx'>     RUBY_TRY_CFLAGS($wflag, [warnflags="$wflag${warnflags+ $warnflags}"])</div><div class='hunk'>@@ -540,6 +761,22 @@ AS_CASE(["$GCC:${warnflags+set}:${extra_warnflags:+set}:"],</div><div class='ctx'>     warnflags=</div><div class='ctx'> ])</div><div class='ctx'> RUBY_TRY_CFLAGS(-Qunused-arguments, [RUBY_APPEND_OPTIONS(rb_cv_wsuppress_flags, -Qunused-arguments)])</div><div class='add'>+AC_COMPILE_IFELSE([</div><div class='add'>+    AC_LANG_PROGRAM([</div><div class='add'>+@%:@if !(defined(__SUNPRO_C)||defined(__SUNPRO_CC))</div><div class='add'>+@%:@error not sunpro</div><div class='add'>+@%:@endif],[])], [</div><div class='add'>+    for e in \</div><div class='add'>+        E_STATEMENT_NOT_REACHED \</div><div class='add'>+        E_INIT_SIGN_EXTEND \</div><div class='add'>+        E_INIT_DOES_NOT_FIT \</div><div class='add'>+        E_INITIALIZATION_TYPE_MISMATCH</div><div class='add'>+    do</div><div class='add'>+        RUBY_TRY_CFLAGS([-erroff=${e}], [</div><div class='add'>+            RUBY_APPEND_OPTIONS(rb_cv_warnflags, [-erroff=${e}])</div><div class='add'>+        ])</div><div class='add'>+    done</div><div class='add'>+])</div><div class='ctx'> </div><div class='ctx'> AC_ARG_WITH(compress-debug-sections,</div><div class='ctx'> 	AS_HELP_STRING([--with-compress-debug-sections=type],</div><div class='hunk'>@@ -552,13 +789,27 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'>     # argument check. The performance drop is very little and Ubuntu enables</div><div class='ctx'>     # _FORTIFY_SOURCE=2 by default. So, let's support it for protecting us from</div><div class='ctx'>     # a mistake of silly C extensions.</div><div class='del'>-    RUBY_TRY_CFLAGS(-D_FORTIFY_SOURCE=2, [RUBY_APPEND_OPTION(XCFLAGS, -D_FORTIFY_SOURCE=2)])</div><div class='add'>+</div><div class='add'>+    # TODO: check if link succeeds with _FORTIFY_SOURCE=2.</div><div class='add'>+    AS_CASE(["$target_os"],</div><div class='add'>+    [mingw*], [</div><div class='add'>+	fortify_source=no</div><div class='add'>+    ])</div><div class='add'>+    AC_ARG_ENABLE(fortify_source,</div><div class='add'>+		  AS_HELP_STRING([--disable-fortify-source],</div><div class='add'>+				 [disable -D_FORTIFY_SOURCE=2 option, which causes link error on mingw]),</div><div class='add'>+		  [fortify_source=$enableval])</div><div class='add'>+    AS_IF([test "x$fortify_source" != xno], [</div><div class='add'>+        RUBY_TRY_CFLAGS([$optflags -D_FORTIFY_SOURCE=2],</div><div class='add'>+                        [RUBY_APPEND_OPTION(XCFLAGS, -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2)], [],</div><div class='add'>+                        [@%:@include &lt;stdio.h&gt;])</div><div class='add'>+    ])</div><div class='ctx'> </div><div class='ctx'>     : ${MJIT_HEADER_FLAGS='-P -dD'}</div><div class='ctx'> </div><div class='ctx'>     # -fstack-protector</div><div class='ctx'>     AS_CASE(["$target_os"],</div><div class='del'>-    [mingw*], [</div><div class='add'>+    [emscripten*|wasi*], [</div><div class='ctx'> 	stack_protector=no</div><div class='ctx'>     ])</div><div class='ctx'>     AS_IF([test -z "${stack_protector+set}"], [</div><div class='hunk'>@@ -570,12 +821,25 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'> 	    AS_IF([test "x$stack_protector" = xyes], [stack_protector=option; break])</div><div class='ctx'> 	])</div><div class='ctx'>     ])</div><div class='add'>+    AC_MSG_CHECKING([for -fstack-protector])</div><div class='add'>+    AC_MSG_RESULT(["$stack_protector"])</div><div class='ctx'>     AS_CASE(["$stack_protector"], [-*], [</div><div class='ctx'> 	RUBY_APPEND_OPTION(XCFLAGS, $stack_protector)</div><div class='ctx'> 	RUBY_APPEND_OPTION(XLDFLAGS, $stack_protector)</div><div class='ctx'> 	RUBY_APPEND_OPTION(LDFLAGS, $stack_protector)</div><div class='ctx'>     ])</div><div class='ctx'> </div><div class='add'>+    # aarch64 branch protection</div><div class='add'>+    AS_CASE(["$target_cpu"], [aarch64], [</div><div class='add'>+	AS_FOR(option, opt, [-mbranch-protection=pac-ret -msign-return-address=all], [</div><div class='add'>+            RUBY_TRY_CFLAGS(option, [branch_protection=yes], [branch_protection=no])</div><div class='add'>+            AS_IF([test "x$branch_protection" = xyes], [</div><div class='add'>+                RUBY_APPEND_OPTION(XCFLAGS, option)</div><div class='add'>+                break</div><div class='add'>+            ])</div><div class='add'>+        ])</div><div class='add'>+    ])</div><div class='add'>+</div><div class='ctx'>     AS_CASE("${compress_debug_sections:-zlib}",</div><div class='ctx'>     [none|no], [], [</div><div class='ctx'>     RUBY_TRY_LDFLAGS(${linker_flag}--compress-debug-sections=${compress_debug_sections:-zlib},</div><div class='hunk'>@@ -605,13 +869,13 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'> 	  ], [</div><div class='ctx'> 	    CFLAGS="$CFLAGS -Werror -Wuninitialized"</div><div class='ctx'> 	  ])</div><div class='del'>-	  AC_TRY_COMPILE([@%:@include &lt;math.h&gt;</div><div class='add'>+	  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include &lt;math.h&gt;</div><div class='ctx'> 	    int foo(double x)</div><div class='ctx'> 	    {</div><div class='ctx'> 	      int exp;</div><div class='ctx'> 	      frexp(x, &amp;exp);</div><div class='ctx'> 	      return exp;</div><div class='del'>-	    }], [if (foo(0.0)) return 1;],</div><div class='add'>+	    }]], [[if (foo(0.0)) return 1;]])],</div><div class='ctx'> 	    [rb_cv_mingw64_broken_frexp_modf=no],</div><div class='ctx'> 	    [rb_cv_mingw64_broken_frexp_modf=yes])</div><div class='ctx'> 	  CFLAGS="$save_CFLAGS"</div><div class='hunk'>@@ -620,33 +884,8 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'> 	AC_DEFINE(RUBY_MINGW64_BROKEN_FREXP_MODF)</div><div class='ctx'>       ])</div><div class='ctx'>     ],</div><div class='del'>-    [cygwin*|darwin*|netbsd*], [</div><div class='del'>-      # need lgamma_r(), finite()</div><div class='del'>-    ],</div><div class='del'>-    [solaris*], [</div><div class='del'>-      # ANSI (no XCFLAGS because this is C only)</div><div class='del'>-      # Because "-std=gnu99" affects existance of functions on Solaris,</div><div class='del'>-      # "-std=gnu99" will be appended to CPPFLAGS.</div><div class='del'>-	for ansi_options in -std=gnu99; do</div><div class='del'>-	    RUBY_TRY_CFLAGS(${ansi_options}, [</div><div class='del'>-		RUBY_APPEND_OPTIONS(CPPFLAGS, ${ansi_options})</div><div class='del'>-	    ], [ansi_options=])</div><div class='del'>-	    test "x${ansi_options}" = x || break</div><div class='del'>-	done</div><div class='del'>-    ],</div><div class='del'>-    [</div><div class='del'>-      # ANSI (no XCFLAGS because this is C only)</div><div class='del'>-      rb_tmp_std_check=`echo $CC $CFLAGS $optflags $warnflags $debugflags | fgrep std= | tr -d  '\015'`</div><div class='del'>-      AS_IF([test "x$rb_tmp_std_check" = "x"],</div><div class='del'>-      [</div><div class='del'>-	for ansi_options in -std=gnu99; do</div><div class='del'>-	    RUBY_TRY_CFLAGS(${ansi_options}, [</div><div class='del'>-		RUBY_APPEND_OPTIONS(warnflags, ${ansi_options})</div><div class='del'>-		RUBY_APPEND_OPTIONS(strict_warnflags, ${ansi_options})</div><div class='del'>-	    ], [ansi_options=])</div><div class='del'>-	    test "x${ansi_options}" = x || break</div><div class='del'>-	done</div><div class='del'>-      ])</div><div class='add'>+    [cygwin*|msys*|darwin*|netbsd*], [</div><div class='add'>+      # need lgamma_r()</div><div class='ctx'>     ])</div><div class='ctx'> </div><div class='ctx'>     # suppress annoying -Wstrict-overflow warnings</div><div class='hunk'>@@ -657,15 +896,12 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'>     test "${debugflags+set}" || {RUBY_TRY_CFLAGS(-g3, [debugflags=-g3])}</div><div class='ctx'> ])</div><div class='ctx'> test $ac_cv_prog_cc_g = yes &amp;&amp; : ${debugflags=-g}</div><div class='del'>-AS_IF([test "x$RUBY_DEVEL" = xyes], [RUBY_APPEND_OPTION(XCFLAGS, -DRUBY_DEVEL=1)])</div><div class='ctx'> </div><div class='ctx'> AS_IF([test "$GCC" = ""], [</div><div class='ctx'>     AS_CASE(["$target_os"],[aix*],[warnflags="$warnflags -qinfo=por" rb_cv_warnflags="$rb_cv_warnflags -qinfo=por"])</div><div class='ctx'> ])</div><div class='ctx'> AS_IF([test "$GCC" = yes], [</div><div class='del'>-    AS_IF([test "$gcc_major" -ge 4], [</div><div class='del'>-	RUBY_TRY_CFLAGS(-fvisibility=hidden, [visibility_option=yes], [visibility_option=no])</div><div class='del'>-    ])</div><div class='add'>+    RUBY_TRY_CFLAGS(-fvisibility=hidden, [visibility_option=yes], [visibility_option=no])</div><div class='ctx'>     AC_SUBST(WERRORFLAG, "-Werror")</div><div class='ctx'>     AS_IF([test "$visibility_option" = yes], [</div><div class='ctx'> 	RUBY_APPEND_OPTION(XCFLAGS, -fvisibility=hidden)</div><div class='hunk'>@@ -690,7 +926,7 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'> </div><div class='ctx'>     # disable fast-math</div><div class='ctx'>     for oflag in -fno-fast-math; do</div><div class='del'>-	RUBY_TRY_CFLAGS($oflag, [RUBY_APPEND_OPTION(CFLAGS, $oflag)])</div><div class='add'>+	RUBY_TRY_CFLAGS($oflag, [RUBY_APPEND_OPTION(optflags, $oflag)])</div><div class='ctx'>     done</div><div class='ctx'>     for oflag in -fexcess-precision=standard -fp-model\ precise; do</div><div class='ctx'> 	RUBY_TRY_CFLAGS($oflag, [RUBY_APPEND_OPTION(XCFLAGS, $oflag)])</div><div class='hunk'>@@ -699,13 +935,13 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'> </div><div class='ctx'> AS_CASE(["$target_cpu"], [[i[3-6]86*]], [</div><div class='ctx'>     AC_CACHE_CHECK([for __sync_val_compare_and_swap], [rb_cv_gcc_compiler_cas], [</div><div class='del'>-	AC_TRY_LINK([unsigned long atomic_var;],</div><div class='del'>-	    [__sync_val_compare_and_swap(&amp;atomic_var, 0, 1);],</div><div class='add'>+	AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned long atomic_var;]],</div><div class='add'>+	    [[__sync_val_compare_and_swap(&amp;atomic_var, 0, 1);]])],</div><div class='ctx'> 	    [rb_cv_gcc_compiler_cas=yes],</div><div class='ctx'> 	    [</div><div class='ctx'> 	    save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -march=i486"</div><div class='del'>-	    AC_TRY_LINK([unsigned long atomic_var;],</div><div class='del'>-		[__sync_val_compare_and_swap(&amp;atomic_var, 0, 1);],</div><div class='add'>+	    AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned long atomic_var;]],</div><div class='add'>+		[[__sync_val_compare_and_swap(&amp;atomic_var, 0, 1);]])],</div><div class='ctx'> 		[rb_cv_gcc_compiler_cas=i486],</div><div class='ctx'> 		[rb_cv_gcc_compiler_cas=no])</div><div class='ctx'> 	    CFLAGS="$save_CFLAGS"</div><div class='hunk'>@@ -714,17 +950,35 @@ AS_CASE(["$target_cpu"], [[i[3-6]86*]], [</div><div class='ctx'>     AS_IF([test "$rb_cv_gcc_compiler_cas" = i486], [ARCH_FLAG="-march=i486"])</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='add'>+OPT_DIR=</div><div class='add'>+AC_ARG_WITH([gmp-dir],</div><div class='add'>+  AS_HELP_STRING([--with-gmp-dir=DIR],</div><div class='add'>+                 [specify the prefix directory where gmp is installed]),</div><div class='add'>+  [OPT_DIR="${OPT_DIR:+$OPT_DIR$PATH_SEPARATOR}$withval"], [])</div><div class='add'>+AC_ARG_WITH([gmp],</div><div class='add'>+  [AS_HELP_STRING([--without-gmp],</div><div class='add'>+                  [disable GNU GMP to accelerate Bignum operations])],</div><div class='add'>+  [], [with_gmp=yes])</div><div class='add'>+</div><div class='ctx'> AC_ARG_WITH(opt-dir,</div><div class='ctx'> 	AS_HELP_STRING([--with-opt-dir=DIR-LIST],</div><div class='ctx'> 		       [add optional headers and libraries directories separated by $PATH_SEPARATOR]),</div><div class='del'>-	[</div><div class='del'>-		val=`echo "$PATH_SEPARATOR$withval" | sed "s|$PATH_SEPARATOR\([[^$PATH_SEPARATOR]*]\)| -I\1/include|g;s/^ //"`</div><div class='del'>-		CPPFLAGS="$CPPFLAGS $val"</div><div class='del'>-		val=`echo "$PATH_SEPARATOR$withval" | sed "s|$PATH_SEPARATOR\([[^$PATH_SEPARATOR]*]\)| -L\1/lib${rpathflag:+ $rpathflag\\\\1/lib}|g;s/^ //"`</div><div class='del'>-		LDFLAGS="$LDFLAGS $val"</div><div class='del'>-		LDFLAGS_OPTDIR="$val"</div><div class='del'>-		OPT_DIR="$withval"</div><div class='del'>-	], [OPT_DIR=])</div><div class='add'>+	[OPT_DIR="${OPT_DIR:+$OPT_DIR$PATH_SEPARATOR}$withval"], [])</div><div class='add'>+</div><div class='add'>+AS_IF([test "x$OPT_DIR" != x], [</div><div class='add'>+    val=`IFS="$PATH_SEPARATOR"</div><div class='add'>+        for dir in $OPT_DIR; do</div><div class='add'>+            test -z "$dir" &amp;&amp; continue</div><div class='add'>+            echo x ${LIBPATHFLAG} ${RPATHFLAG} |</div><div class='add'>+            sed "s/^x *//;s${IFS}"'%1\\$-s'"${IFS}${dir}/lib${IFS}g;s${IFS}%s${IFS}${dir}/lib${IFS}g"</div><div class='add'>+        done | tr '\012' ' ' | sed 's/ *$//'`</div><div class='add'>+    LDFLAGS="${LDFLAGS:+$LDFLAGS }$val"</div><div class='add'>+    DLDFLAGS="${DLDFLAGS:+$DLDFLAGS }$val"</div><div class='add'>+    LDFLAGS_OPTDIR="$val"</div><div class='add'>+    INCFLAGS="${INCFLAGS:+$INCFLAGS }"`echo "$OPT_DIR" | tr "${PATH_SEPARATOR}" '\012' |</div><div class='add'>+        sed '/^$/d;s|^|-I|;s|$|/include|' | tr '\012' ' ' | sed 's/ *$//'`</div><div class='add'>+])</div><div class='add'>+AC_SUBST(incflags, "$INCFLAGS")</div><div class='ctx'> </div><div class='ctx'> test -z "${ac_env_CFLAGS_set}" -a -n "${cflags+set}" &amp;&amp; eval CFLAGS="\"$cflags $ARCH_FLAG\""</div><div class='ctx'> test -z "${ac_env_CXXFLAGS_set}" -a -n "${cxxflags+set}" &amp;&amp; eval CXXFLAGS="\"$cxxflags $ARCH_FLAG\""</div><div class='hunk'>@@ -732,7 +986,7 @@ test -z "${ac_env_CXXFLAGS_set}" -a -n "${cxxflags+set}" &amp;&amp; eval CXXFLAGS="\"$cx</div><div class='ctx'> </div><div class='ctx'> AC_CACHE_CHECK([whether compiler has statement and declarations in expressions],</div><div class='ctx'>   rb_cv_have_stmt_and_decl_in_expr,</div><div class='del'>-  [AC_TRY_COMPILE([],[ __extension__ ({ int a = 0; a; }); ],</div><div class='add'>+  [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[ __extension__ ({ int a = 0; a; }); ]])],</div><div class='ctx'>   [rb_cv_have_stmt_and_decl_in_expr=yes],</div><div class='ctx'>   [rb_cv_have_stmt_and_decl_in_expr=no])])</div><div class='ctx'> AS_IF([test "$rb_cv_have_stmt_and_decl_in_expr" = yes], [</div><div class='hunk'>@@ -749,33 +1003,22 @@ AS_CASE(["$target_os"],</div><div class='ctx'>   RUBY_APPEND_OPTION(CPPFLAGS, -D__MINGW_USE_VC2005_COMPAT)</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='del'>-AS_CASE(["$target_os"],</div><div class='del'>-[freebsd*], [</div><div class='del'>-  AC_CACHE_CHECK([whether pthread should be enabled by default],</div><div class='del'>-    rb_cv_enable_pthread_default,</div><div class='del'>-    [AC_TRY_CPP([</div><div class='del'>-#include &lt;osreldate.h&gt;</div><div class='del'>-#if __FreeBSD_version &lt; 502102</div><div class='del'>-#error pthread should be disabled on this platform</div><div class='del'>-#endif</div><div class='del'>-      ],</div><div class='del'>-      rb_cv_enable_pthread_default=yes,</div><div class='del'>-      rb_cv_enable_pthread_default=no)])</div><div class='del'>-  enable_pthread=$rb_cv_enable_pthread_default</div><div class='del'>-  ],</div><div class='del'>-[mingw*], [</div><div class='del'>-  enable_pthread=no</div><div class='del'>-  ],</div><div class='del'>-[</div><div class='del'>-  enable_pthread=yes</div><div class='del'>-  ])</div><div class='add'>+RUBY_THREAD</div><div class='ctx'> </div><div class='ctx'> dnl Checks for libraries.</div><div class='ctx'> AS_CASE(["$target_os"],[*bsd*|dragonfly*],[],[ac_cv_func_daemon=no])</div><div class='ctx'> </div><div class='add'>+AS_CASE(["$target_os"], [*android*], [</div><div class='add'>+	AS_CASE(["$target_cpu"], [arm*], [</div><div class='add'>+		ac_cv_func___builtin_setjmp=no</div><div class='add'>+	])</div><div class='add'>+])</div><div class='add'>+</div><div class='ctx'> AS_UNSET(ORIG_LIBS)</div><div class='ctx'> POSTLINK=:</div><div class='ctx'> AC_SUBST(POSTLINK)</div><div class='add'>+cleanlibs=</div><div class='add'>+AC_SUBST(cleanlibs)</div><div class='ctx'> AS_CASE(["$target_os"],</div><div class='ctx'> [nextstep*], [	],</div><div class='ctx'> [openstep*], [	],</div><div class='hunk'>@@ -784,45 +1027,30 @@ AS_CASE(["$target_os"],</div><div class='ctx'> 		ORIG_LIBS="$LIBS"</div><div class='ctx'> 		RUBY_PREPEND_OPTION(LIBS, -lobjc)</div><div class='ctx'> 		RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT)</div><div class='del'>-		AC_MSG_CHECKING(whether Mac OS X 10.5 or later)</div><div class='del'>-		AC_TRY_CPP([#include &lt;AvailabilityMacros.h&gt;</div><div class='del'>-		    #if MAC_OS_X_VERSION_MAX_ALLOWED &lt;= 1040</div><div class='del'>-		    #error pre OS X 10.4</div><div class='del'>-		    [!&lt;===== pre OS X 10.4 =====&gt;]</div><div class='del'>-		    #endif</div><div class='del'>-		    ],</div><div class='del'>-		    [macosx_10_5=yes], [macosx_10_5=no])</div><div class='del'>-		AC_MSG_RESULT($macosx_10_5)</div><div class='del'>-		AS_IF([test "${target_os@%:@darwin}" -ge 16], [</div><div class='add'>+		AC_CACHE_CHECK([whether syscall(2) is deprecated], rb_cv_syscall_deprecated,</div><div class='add'>+		    [RUBY_WERROR_FLAG([</div><div class='add'>+			AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include &lt;unistd.h&gt;]],</div><div class='add'>+							   [[if (syscall(0)) return 1;]])],</div><div class='add'>+			    [rb_cv_syscall_deprecated=no],</div><div class='add'>+			    [rb_cv_syscall_deprecated=yes])])])</div><div class='add'>+		AS_IF([test $rb_cv_syscall_deprecated = yes], [</div><div class='ctx'> 		    ac_cv_func___syscall=no</div><div class='ctx'> 		    ac_cv_func_syscall=no</div><div class='ctx'> 		    ac_cv_header_sys_syscall_h=no</div><div class='ctx'> 		    ac_cv_header_syscall_h=no</div><div class='ctx'> 		])</div><div class='del'>-		AS_IF([test $macosx_10_5 = yes], [</div><div class='del'>-		    ac_cv_func_getcontext=no</div><div class='del'>-		    ac_cv_func_setcontext=no</div><div class='del'>-		], [</div><div class='del'>-		    AC_DEFINE(BROKEN_SETREUID, 1)</div><div class='del'>-		    AC_DEFINE(BROKEN_SETREGID, 1)</div><div class='del'>-		])</div><div class='del'>-		incs=`$CC -v -E -xc - &lt; /dev/null 2&gt;&amp;1 | sed ['1,/^@%:@include &lt;/d;s/^ *//;s|[^./][^/]*/\.\./||g;/\/include$/!d;s||/lib|;/\/usr\/lib/d']`</div><div class='del'>-		for d in `$CC -print-search-dirs | sed -e '/^libraries: */!d;s///' | tr : '\012' | fgrep -v /../ | sed -n 's|^\(/.*/lib\)/$|\1|p'`; do</div><div class='del'>-		    incs=`echo "$incs" | fgrep -v "$d"`</div><div class='del'>-		done</div><div class='del'>-		for d in $incs; do</div><div class='del'>-		    test -d "$d" &amp;&amp; RUBY_APPEND_OPTIONS(LDFLAGS, "-L$d")</div><div class='del'>-		done</div><div class='add'>+		ac_cv_func_getcontext=no</div><div class='add'>+		ac_cv_func_setcontext=no</div><div class='ctx'> 		ac_cv_type_getgroups=gid_t # getgroups() on Rosetta fills garbage</div><div class='ctx'> 		ac_cv_lib_crypt_crypt=no</div><div class='ctx'> 		ac_cv_func_fdatasync=no # Mac OS X wrongly reports it has fdatasync()</div><div class='ctx'> 		ac_cv_func_vfork=no</div><div class='del'>-		AS_IF([test $gcc_major -lt 4 -o \( $gcc_major -eq 4 -a $gcc_minor -lt 3 \)], [</div><div class='add'>+		AS_IF([test $gcc_major -eq 4 -a $gcc_minor -lt 3], [</div><div class='ctx'> 		    ac_cv_func___builtin_setjmp=no</div><div class='ctx'> 		])</div><div class='ctx'> 		with_setjmp_type=sigsetjmp # to hijack SIGCHLD handler</div><div class='ctx'> 		AC_CACHE_CHECK(for broken crypt with 8bit chars, rb_cv_broken_crypt,</div><div class='del'>-		    [AC_TRY_RUN([</div><div class='add'>+		    [AC_RUN_IFELSE([AC_LANG_SOURCE([[</div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='ctx'> #include &lt;unistd.h&gt;</div><div class='ctx'> #include &lt;string.h&gt;</div><div class='hunk'>@@ -859,7 +1087,7 @@ main()</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='del'>-],</div><div class='add'>+]])],</div><div class='ctx'> 		    rb_cv_broken_crypt=no,</div><div class='ctx'> 		    rb_cv_broken_crypt=yes,</div><div class='ctx'> 		    rb_cv_broken_crypt=yes)])</div><div class='hunk'>@@ -882,17 +1110,16 @@ main()</div><div class='ctx'> 		AC_CHECK_HEADERS(crt_externs.h, [], [], [</div><div class='ctx'> 		    #include &lt;crt_externs.h&gt;</div><div class='ctx'> 		])</div><div class='add'>+		cleanlibs='$(TARGET_SO).dSYM'</div><div class='ctx'> 		],</div><div class='del'>-[hpux*], [	LIBS="-lm $LIBS"</div><div class='del'>-		ac_cv_c_inline=no],</div><div class='ctx'> [solaris*], [	LIBS="-lm $LIBS"</div><div class='ctx'> 		ac_cv_func_vfork=no</div><div class='ctx'> 		AC_MSG_CHECKING(whether _XOPEN_SOURCE is already given)</div><div class='del'>-		AC_TRY_COMPILE([#include &lt;unistd.h&gt;</div><div class='add'>+		AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include &lt;unistd.h&gt;</div><div class='ctx'> 			#ifndef _XOPEN_SOURCE</div><div class='ctx'> 			#error _XOPEN_SOURCE is not defined</div><div class='ctx'> 			#endif</div><div class='del'>-			], [],</div><div class='add'>+			]], [[]])],</div><div class='ctx'> 		        [given_xopen_source=yes], [given_xopen_source=no])</div><div class='ctx'> 		AC_MSG_RESULT($given_xopen_source)</div><div class='ctx'> 		AS_IF([test $given_xopen_source = no], [</div><div class='hunk'>@@ -902,13 +1129,13 @@ main()</div><div class='ctx'> 		    AS_IF([test x"$define_xopen_source" != x], [</div><div class='ctx'> 		      break</div><div class='ctx'> 		    ])</div><div class='del'>-		    RUBY_WERROR_FLAG([AC_TRY_COMPILE([</div><div class='add'>+		    RUBY_WERROR_FLAG([AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='ctx'> 			#define _XOPEN_SOURCE ${tmp_xpg}00</div><div class='ctx'> 			#include &lt;unistd.h&gt;</div><div class='ctx'> 			#ifndef _XPG${tmp_xpg}</div><div class='ctx'> 			#error _XPG${tmp_xpg} should be defined by _XOPEN_SOURCE=${tmp_xpg}00</div><div class='ctx'> 			#endif</div><div class='del'>-			], [],</div><div class='add'>+			]], [[]])],</div><div class='ctx'> 			[define_xopen_source=${tmp_xpg}00], [])</div><div class='ctx'> 			])</div><div class='ctx'> 		  done</div><div class='hunk'>@@ -918,19 +1145,33 @@ main()</div><div class='ctx'> 		  AC_MSG_RESULT($define_xopen_source)</div><div class='ctx'> 		  AS_IF([test x"$define_xopen_source" != xno], [</div><div class='ctx'> 		    RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE=$define_xopen_source)</div><div class='add'>+		    # _XOPEN_SOURCE should not be defined for C++ on Solaris.</div><div class='add'>+		    RUBY_APPEND_OPTIONS(CXXFLAGS, -U_XOPEN_SOURCE)</div><div class='ctx'> 		  ])</div><div class='ctx'> 		])</div><div class='add'>+		AC_CHECK_TYPES([caddr_t],[],[],[@%:@include &lt;sys/types.h&gt;])</div><div class='add'>+		AC_CACHE_CHECK([whether madvise declaration is needed], rb_cv_madvice_prototype_using_caddr_t,</div><div class='add'>+		  [RUBY_WERROR_FLAG([AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='add'>+		    @%:@include &lt;sys/unistd.h&gt;</div><div class='add'>+		    @%:@include &lt;sys/mman.h&gt;</div><div class='add'>+		    @%:@include &lt;sys/types.h&gt;</div><div class='add'>+		    extern int madvise(caddr_t, size_t, int);</div><div class='add'>+		    ]], [[]])],</div><div class='add'>+		    [rb_cv_madvice_prototype_using_caddr_t=yes], [rb_cv_madvice_prototype_using_caddr_t=no])</div><div class='add'>+		  ])</div><div class='add'>+		])</div><div class='add'>+		AS_IF([test $rb_cv_madvice_prototype_using_caddr_t = yes], [AC_DEFINE(NEED_MADVICE_PROTOTYPE_USING_CADDR_T, 1)])</div><div class='ctx'> 		],</div><div class='ctx'> [haiku*], [</div><div class='ctx'> 		LIBS="$LIBS" # m lib is include in root</div><div class='ctx'> 		],</div><div class='del'>-[cygwin*], [	ac_cv_header_langinfo_h=yes</div><div class='add'>+[cygwin*|msys*], [</div><div class='add'>+		ac_cv_header_langinfo_h=yes</div><div class='ctx'> 		RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE -D_GNU_SOURCE)</div><div class='ctx'> 		AC_CHECK_FUNCS(cygwin_conv_path)</div><div class='ctx'> 		AC_LIBOBJ([langinfo])</div><div class='ctx'> 		],</div><div class='del'>-[mingw*], [	LIBS="-lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi $LIBS"</div><div class='del'>-		ac_cv_header_a_out_h=no</div><div class='add'>+[mingw*], [	LIBS="-lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi -lbcrypt $LIBS"</div><div class='ctx'> 		ac_cv_header_pwd_h=no</div><div class='ctx'> 		ac_cv_header_utime_h=no</div><div class='ctx'> 		ac_cv_header_sys_ioctl_h=no</div><div class='hunk'>@@ -940,42 +1181,36 @@ main()</div><div class='ctx'> 		ac_cv_header_sys_time_h=no</div><div class='ctx'> 		ac_cv_header_sys_times_h=no</div><div class='ctx'> 		ac_cv_header_sys_socket_h=no</div><div class='add'>+		ac_cv_func_execv=yes</div><div class='ctx'> 		ac_cv_func_lstat=yes</div><div class='ctx'> 		ac_cv_func_times=yes</div><div class='ctx'> 		ac_cv_func_waitpid=yes</div><div class='ctx'> 		ac_cv_func_fsync=yes</div><div class='ctx'> 		ac_cv_func_seekdir=yes</div><div class='ctx'> 		ac_cv_func_telldir=yes</div><div class='del'>-		ac_cv_func_isinf=yes</div><div class='del'>-		ac_cv_func_isnan=yes</div><div class='del'>-		ac_cv_func_finite=yes</div><div class='ctx'> 		ac_cv_func_lchown=yes</div><div class='ctx'> 		ac_cv_func_link=yes</div><div class='ctx'> 		ac_cv_func_readlink=yes</div><div class='add'>+		ac_cv_func_shutdown=yes</div><div class='ctx'> 		ac_cv_func_symlink=yes</div><div class='ctx'> 		ac_cv_lib_crypt_crypt=no</div><div class='ctx'> 		ac_cv_func_getpgrp_void=no</div><div class='ctx'> 		ac_cv_func_memcmp_working=yes</div><div class='ctx'> 		ac_cv_lib_dl_dlopen=no</div><div class='del'>-		rb_cv_binary_elf=no</div><div class='del'>-		rb_cv_negative_time_t=no</div><div class='add'>+		rb_cv_negative_time_t=yes</div><div class='ctx'> 		ac_cv_func_fcntl=yes</div><div class='ctx'> 		ac_cv_func_flock=yes</div><div class='ctx'> 		ac_cv_func_gmtime_r=yes</div><div class='ctx'> 		rb_cv_large_fd_select=yes</div><div class='ctx'> 		ac_cv_type_struct_timeval=yes</div><div class='del'>-                ac_cv_func_clock_gettime=yes</div><div class='del'>-                ac_cv_func_clock_getres=yes</div><div class='ctx'> 		ac_cv_func_malloc_usable_size=no</div><div class='ctx'> 		ac_cv_type_off_t=yes</div><div class='ctx'> 		ac_cv_sizeof_off_t=8</div><div class='ctx'> 		AS_IF([test "$target_cpu" = x64], [</div><div class='ctx'> 		    ac_cv_func___builtin_setjmp=yes</div><div class='ctx'> 		    ac_cv_func_round=no</div><div class='del'>-		    rb_cv_fiber_coroutine=yes</div><div class='ctx'> 		])</div><div class='ctx'> 		ac_cv_func_tgamma=no</div><div class='del'>-		rb_cv_negative_time_t=yes</div><div class='ctx'> 		AC_CHECK_TYPE([NET_LUID], [], [],</div><div class='ctx'> 			      [@%:@include &lt;winsock2.h&gt;</div><div class='ctx'> 			      @%:@include &lt;iphlpapi.h&gt;])</div><div class='hunk'>@@ -999,9 +1234,6 @@ main()</div><div class='ctx'> [netbsd*], [	LIBS="-lm $LIBS"</div><div class='ctx'> 		],</div><div class='ctx'> [dragonfly*], [	LIBS="-lm $LIBS"</div><div class='del'>-		# isinf() and isnan() are macros on DragonFly.</div><div class='del'>-		ac_cv_func_isinf=yes</div><div class='del'>-		ac_cv_func_isnan=yes</div><div class='ctx'> 		],</div><div class='ctx'> [aix*],[	LIBS="-lm $LIBS"</div><div class='ctx'> 		ac_cv_func_round=no</div><div class='hunk'>@@ -1020,12 +1252,43 @@ main()</div><div class='ctx'> 			ac_cv_func___builtin_setjmp=no</div><div class='ctx'> 		])</div><div class='ctx'> 		],</div><div class='add'>+[emscripten*], [LIBS="-lm -lc $LIBS"</div><div class='add'>+		RUBY_APPEND_OPTIONS(LDFLAGS, "-sALLOW_MEMORY_GROWTH=1")</div><div class='add'>+		RUBY_APPEND_OPTIONS(LDFLAGS, "-sASYNCIFY")</div><div class='add'>+		RUBY_APPEND_OPTIONS(LDFLAGS, "-sFORCE_FILESYSTEM=1")</div><div class='add'>+		ac_cv_func_shutdown=no</div><div class='add'>+		],</div><div class='add'>+[wasi*],[	LIBS="-lm -lwasi-emulated-mman -lwasi-emulated-signal -lwasi-emulated-getpid -lwasi-emulated-process-clocks $LIBS"</div><div class='add'>+		RUBY_APPEND_OPTIONS(CFLAGS, -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_MMAN -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_PROCESS_CLOCKS)</div><div class='add'>+		RUBY_APPEND_OPTIONS(CPPFLAGS, -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_MMAN -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_PROCESS_CLOCKS)</div><div class='add'>+		POSTLINK="\$(WASMOPT) --asyncify \$(wasmoptflags) --pass-arg=asyncify-ignore-imports -o \$@ \$@${POSTLINK:+; $POSTLINK}"</div><div class='add'>+		# wasi-libc's sys/socket.h is not compatible with -std=gnu99,</div><div class='add'>+		# so re-declare shutdown in include/ruby/missing.h</div><div class='add'>+		ac_cv_func_shutdown=no</div><div class='add'>+		],</div><div class='ctx'> [	LIBS="-lm $LIBS"])</div><div class='ctx'> : ${ORIG_LIBS=$LIBS}</div><div class='ctx'> </div><div class='add'>+AS_IF([test -n "${rb_there_is_in_fact_no_gplusplus_but_autoconf_is_cheating_us}"], [</div><div class='add'>+    AC_MSG_NOTICE([Test skipped due to lack of a C++ compiler.])</div><div class='add'>+],</div><div class='add'>+[test -n "${CXX}"], [</div><div class='add'>+    RUBY_WERROR_FLAG([</div><div class='add'>+        AC_MSG_CHECKING([whether CXXFLAGS is valid])</div><div class='add'>+        AC_LANG_PUSH(C++)</div><div class='add'>+        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include &lt;cstdio&gt;]], [[]])],</div><div class='add'>+	    [AC_MSG_RESULT(yes)],[</div><div class='add'>+            AC_MSG_RESULT(no)</div><div class='add'>+            # The message mentions CXXFLAGS, but CPPFLAGS might also affects.</div><div class='add'>+            AC_MSG_WARN([something wrong with CXXFLAGS="$CXXFLAGS"])</div><div class='add'>+            CXX=false</div><div class='add'>+        ])</div><div class='add'>+        AC_LANG_POP(C++)</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+</div><div class='ctx'> AC_CHECK_LIB(crypt, crypt)      # glibc (GNU/Linux, GNU/Hurd, GNU/kFreeBSD)</div><div class='ctx'> AC_CHECK_LIB(dl, dlopen)	# Dynamic linking for SunOS/Solaris and SYSV</div><div class='del'>-AC_CHECK_LIB(dld, shl_load)	# Dynamic linking for HP-UX</div><div class='ctx'> AC_CHECK_LIB(socket, shutdown)  # SunOS/Solaris</div><div class='ctx'> </div><div class='ctx'> dnl Checks for header files.</div><div class='hunk'>@@ -1034,8 +1297,13 @@ dnl AC_HEADER_STDC has been checked in AC_USE_SYSTEM_EXTENSIONS</div><div class='ctx'> AC_HEADER_STDBOOL</div><div class='ctx'> AC_HEADER_SYS_WAIT</div><div class='ctx'> </div><div class='del'>-AC_CHECK_HEADERS(a.out.h)</div><div class='add'>+AC_CHECK_HEADERS([afunix.h], [], [],</div><div class='add'>+[#ifdef _WIN32</div><div class='add'>+# include &lt;winsock2.h&gt;</div><div class='add'>+#endif</div><div class='add'>+])</div><div class='ctx'> AC_CHECK_HEADERS(atomic.h)</div><div class='add'>+AC_CHECK_HEADERS(copyfile.h)</div><div class='ctx'> AC_CHECK_HEADERS(direct.h)</div><div class='ctx'> AC_CHECK_HEADERS(grp.h)</div><div class='ctx'> AC_CHECK_HEADERS(fcntl.h)</div><div class='hunk'>@@ -1055,6 +1323,7 @@ AC_CHECK_HEADERS(sanitizer/asan_interface.h)</div><div class='ctx'> AC_CHECK_HEADERS(sanitizer/msan_interface.h)</div><div class='ctx'> AC_CHECK_HEADERS(setjmpex.h)</div><div class='ctx'> AC_CHECK_HEADERS(stdalign.h)</div><div class='add'>+AC_CHECK_HEADERS(stdio.h)</div><div class='ctx'> AC_CHECK_HEADERS(sys/attr.h)</div><div class='ctx'> AC_CHECK_HEADERS(sys/eventfd.h)</div><div class='ctx'> AC_CHECK_HEADERS(sys/fcntl.h)</div><div class='hunk'>@@ -1064,6 +1333,7 @@ AC_CHECK_HEADERS(sys/ioctl.h)</div><div class='ctx'> AC_CHECK_HEADERS(sys/mkdev.h)</div><div class='ctx'> AC_CHECK_HEADERS(sys/param.h)</div><div class='ctx'> AC_CHECK_HEADERS(sys/prctl.h)</div><div class='add'>+AC_CHECK_HEADERS(sys/random.h)</div><div class='ctx'> AC_CHECK_HEADERS(sys/resource.h)</div><div class='ctx'> AC_CHECK_HEADERS(sys/select.h)</div><div class='ctx'> AC_CHECK_HEADERS(sys/sendfile.h)</div><div class='hunk'>@@ -1078,12 +1348,13 @@ AC_CHECK_HEADERS(syscall.h)</div><div class='ctx'> AC_CHECK_HEADERS(time.h)</div><div class='ctx'> AC_CHECK_HEADERS(ucontext.h)</div><div class='ctx'> AC_CHECK_HEADERS(utime.h)</div><div class='add'>+AC_CHECK_HEADERS(stdatomic.h)</div><div class='add'>+</div><div class='add'>+AS_CASE("$target_cpu", [x64|x86_64|i[3-6]86*], [</div><div class='add'>+  AC_CHECK_HEADERS(x86intrin.h)</div><div class='add'>+])</div><div class='add'>+RUBY_UNIVERSAL_CHECK_HEADER([x86_64, i386], x86intrin.h)</div><div class='ctx'> </div><div class='del'>-AC_ARG_WITH([gmp],</div><div class='del'>-  [AS_HELP_STRING([--without-gmp],</div><div class='del'>-    [disable GNU GMP to accelerate Bignum operations])],</div><div class='del'>-  [],</div><div class='del'>-  [with_gmp=yes])</div><div class='ctx'> AS_IF([test "x$with_gmp" != xno],</div><div class='ctx'>   [AC_CHECK_HEADERS(gmp.h)</div><div class='ctx'>    AS_IF([test "x$ac_cv_header_gmp_h" != xno],</div><div class='hunk'>@@ -1094,41 +1365,58 @@ AC_ARG_WITH([jemalloc],</div><div class='ctx'>   [AS_HELP_STRING([--with-jemalloc],[use jemalloc allocator])],</div><div class='ctx'>   [with_jemalloc=$withval], [with_jemalloc=no])</div><div class='ctx'> AS_IF([test "x$with_jemalloc" != xno],[</div><div class='del'>-  AC_SEARCH_LIBS([malloc_conf], [jemalloc],</div><div class='del'>-    [</div><div class='del'>-      AC_DEFINE(HAVE_LIBJEMALLOC, 1)</div><div class='del'>-      with_jemalloc=yes</div><div class='del'>-    ],</div><div class='del'>-    [test x$with_jemalloc = xyes &amp;&amp; with_jemalloc=no])</div><div class='del'>-  AC_CHECK_HEADER(jemalloc/jemalloc.h, [</div><div class='del'>-    AC_DEFINE(RUBY_ALTERNATIVE_MALLOC_HEADER, [&lt;jemalloc/jemalloc.h&gt;])</div><div class='add'>+  # find jemalloc header first</div><div class='add'>+  save_CPPFLAGS="${CPPFLAGS}"</div><div class='add'>+  CPPFLAGS="${INCFLAGS} ${CPPFLAGS}"</div><div class='add'>+  malloc_header=</div><div class='add'>+  AC_CHECK_HEADER(jemalloc/jemalloc.h, [malloc_header=jemalloc/jemalloc.h], [</div><div class='add'>+    AC_CHECK_HEADER(jemalloc.h, [malloc_header=jemalloc.h])</div><div class='ctx'>   ])</div><div class='del'>-  AS_IF([test "x$with_jemalloc" != xyes], [</div><div class='del'>-    AC_CACHE_CHECK([for jemalloc with JEMALLOC_MANGLE], rb_cv_jemalloc_demangle,</div><div class='del'>-      [AC_LINK_IFELSE([AC_LANG_PROGRAM([@%:@define JEMALLOC_MANGLE 1</div><div class='del'>-      @%:@ifdef RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='del'>-      @%:@include RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='del'>-      @%:@else</div><div class='del'>-      @%:@include &lt;jemalloc.h&gt;</div><div class='del'>-      @%:@endif], [return !&amp;malloc_conf])],</div><div class='del'>-      [rb_cv_jemalloc_demangle=yes],</div><div class='del'>-      [rb_cv_jemalloc_demangle=no])</div><div class='del'>-    ])</div><div class='add'>+  AS_IF([test "$malloc_header" != ""], [</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_ALTERNATIVE_MALLOC_HEADER, [&lt;$malloc_header&gt;])</div><div class='ctx'>   ])</div><div class='del'>-  AS_IF([test "x$rb_cv_jemalloc_demangle" = xyes], [</div><div class='del'>-    AC_DEFINE(JEMALLOC_MANGLE)</div><div class='del'>-    with_jemalloc=yes</div><div class='add'>+  save_LIBS="$LIBS"</div><div class='add'>+  AC_CACHE_CHECK([for jemalloc library], rb_cv_jemalloc_library, [</div><div class='add'>+    rb_cv_jemalloc_library=no</div><div class='add'>+    # try [with mangle, without mangle] x [no more additional</div><div class='add'>+    # libraries, adding jemalloc] combination, using the jemalloc</div><div class='add'>+    # header found above.</div><div class='add'>+    for mangle in '' mangle; do</div><div class='add'>+      for lib in '' -ljemalloc; do</div><div class='add'>+        LIBS="${lib:+$lib }$LIBS"</div><div class='add'>+        AC_LINK_IFELSE([AC_LANG_PROGRAM([${mangle:+@%:@define JEMALLOC_MANGLE 1}</div><div class='add'>+          @%:@include &lt;stdio.h&gt;</div><div class='add'>+          @%:@ifdef RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='add'>+          @%:@include RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='add'>+          @%:@else</div><div class='add'>+          extern const char *malloc_conf;</div><div class='add'>+          @%:@endif],</div><div class='add'>+          [/* access at runtime not to be optimized away */</div><div class='add'>+          if (malloc_conf) printf("malloc_conf=%s\n", malloc_conf);])],</div><div class='add'>+          [rb_cv_jemalloc_library="${lib:-none required}${mangle:+ with mangle}"])</div><div class='add'>+        LIBS="$save_LIBS"</div><div class='add'>+        test "${rb_cv_jemalloc_library}" = no || break 2</div><div class='add'>+      done</div><div class='add'>+    done</div><div class='ctx'>   ])</div><div class='add'>+  CPPFLAGS="${save_CPPFLAGS}"</div><div class='add'>+  unset save_CPPFLAGS</div><div class='add'>+  with_jemalloc=${rb_cv_jemalloc_library}</div><div class='ctx'>   AS_CASE(["$with_jemalloc"],</div><div class='del'>-    [yes],</div><div class='del'>-    [</div><div class='del'>-      AC_DEFINE(HAVE_MALLOC_CONF)</div><div class='del'>-      ac_cv_func_malloc_usable_size=yes</div><div class='del'>-    ],</div><div class='del'>-    [no],</div><div class='del'>-    [AC_MSG_ERROR([jemalloc requested but not found])</div><div class='add'>+  [no],</div><div class='add'>+    [AC_MSG_ERROR([jemalloc requested but not found])],</div><div class='add'>+  [-l*], [</div><div class='add'>+    set dummy $with_jemalloc</div><div class='add'>+    LIBS="$2 $LIBS"</div><div class='add'>+    DLDLIBS="$2${DLDLIBS:+ $DLDLIBS}" # probably needed also in extension libraries</div><div class='ctx'>   ])</div><div class='del'>-])</div><div class='add'>+  AS_CASE(["$with_jemalloc"],</div><div class='add'>+  [*" with mangle"], [</div><div class='add'>+    AC_DEFINE(JEMALLOC_MANGLE)</div><div class='add'>+  ])</div><div class='add'>+  AC_DEFINE(HAVE_MALLOC_CONF)</div><div class='add'>+  ac_cv_func_malloc_usable_size=yes</div><div class='add'>+]) # with_jemalloc</div><div class='ctx'> </div><div class='ctx'> dnl check for large file stuff</div><div class='ctx'> mv confdefs.h confdefs1.h</div><div class='hunk'>@@ -1168,12 +1456,13 @@ AS_CASE(["$target_os"],</div><div class='ctx'> 	])</div><div class='ctx'>     ])</div><div class='ctx'> </div><div class='del'>-AC_C_BIGENDIAN</div><div class='add'>+AC_C_BIGENDIAN([], [], [], [AC_DEFINE(AC_APPLE_UNIVERSAL_BUILD, 1)])</div><div class='ctx'> AC_C_CONST</div><div class='ctx'> AC_C_CHAR_UNSIGNED</div><div class='ctx'> AC_C_INLINE</div><div class='ctx'> AC_C_VOLATILE</div><div class='ctx'> AC_C_TYPEOF</div><div class='add'>+AC_C_RESTRICT</div><div class='ctx'> </div><div class='ctx'> AS_CASE(":$ac_cv_c_const:$ac_cv_c_volatile:",</div><div class='ctx'>     [*:no:*], [AC_MSG_ERROR(ANSI C-conforming const and volatile are mandatory)])</div><div class='hunk'>@@ -1205,8 +1494,8 @@ AC_CACHE_CHECK(packed struct attribute, rb_cv_packed_struct,</div><div class='ctx'> 	"__pragma(pack(push, 1)) x __pragma(pack(pop))" \</div><div class='ctx'> 	"x __attribute__((packed))" \</div><div class='ctx'> 	; do</div><div class='del'>-	AC_TRY_COMPILE([@%:@define PACKED_STRUCT(x) $mac</div><div class='del'>-			PACKED_STRUCT(struct { int a; });], [],</div><div class='add'>+	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@define PACKED_STRUCT(x) $mac</div><div class='add'>+			PACKED_STRUCT(struct { int a; });]], [[]])],</div><div class='ctx'> 		[rb_cv_packed_struct=$mac; break])</div><div class='ctx'>     done])</div><div class='ctx'> AS_IF([test "$rb_cv_packed_struct" != no], [</div><div class='hunk'>@@ -1245,132 +1534,58 @@ RUBY_REPLACE_TYPE(clockid_t, [], CLOCKID, [@%:@ifdef HAVE_TIME_H</div><div class='ctx'> @%:@ include &lt;sys/time.h&gt;</div><div class='ctx'> @%:@endif])</div><div class='ctx'> </div><div class='del'>-AC_CACHE_CHECK(for prototypes, rb_cv_have_prototypes,</div><div class='del'>-  [AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],</div><div class='del'>-	rb_cv_have_prototypes=yes,</div><div class='del'>-	rb_cv_have_prototypes=no)])</div><div class='del'>-AS_IF([test "$rb_cv_have_prototypes" = yes], [</div><div class='del'>-  AC_DEFINE(HAVE_PROTOTYPES)</div><div class='del'>-])</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK(token paste string, rb_cv_tokenpaste,</div><div class='del'>-  [AC_TRY_COMPILE([@%:@define paste(a,b) a@%:@@%:@b],</div><div class='del'>-		  [int xy = 1; return paste(x,y);],</div><div class='del'>-		  rb_cv_tokenpaste=ansi,</div><div class='del'>-		  rb_cv_tokenpaste=knr)])</div><div class='del'>-AS_IF([test "$rb_cv_tokenpaste" = ansi], [</div><div class='del'>-  AC_DEFINE(TOKEN_PASTE(x,y),[x@%:@@%:@y])</div><div class='del'>-], [</div><div class='del'>-  AC_DEFINE(TOKEN_PASTE(x,y),[x/**/y])</div><div class='del'>-])</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK(stringization, rb_cv_stringization, [</div><div class='del'>-  rb_cv_stringization=no</div><div class='del'>-  for string in "#expr" '"expr"'; do</div><div class='del'>-    AC_COMPILE_IFELSE([</div><div class='del'>-      AC_LANG_BOOL_COMPILE_TRY([</div><div class='del'>-#define STRINGIZE0(expr) $string</div><div class='del'>-#define STRINGIZE(expr) STRINGIZE0(expr)</div><div class='del'>-#undef real_test_for_stringization</div><div class='del'>-#define test_for_stringization -.real_test_for_stringization.-</div><div class='del'>-const char stringized[[]] = STRINGIZE(test_for_stringization);</div><div class='del'>-], [sizeof(stringized) == 32])],</div><div class='del'>-      [rb_cv_stringization="$string"; break],</div><div class='del'>-      [rb_cv_stringization=no])</div><div class='del'>-  done]</div><div class='del'>-)</div><div class='del'>-AC_DEFINE(STRINGIZE(expr),STRINGIZE0(expr))</div><div class='del'>-AS_IF([test x"$rb_cv_stringization" != xno -a "$rb_cv_stringization" != "#expr"], [</div><div class='del'>-  AC_DEFINE_UNQUOTED(STRINGIZE0(expr),$rb_cv_stringization)</div><div class='del'>-  AC_DEFINE(OLD_FASHIONED_STRINGIZATION,1)</div><div class='del'>-])</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK([string literal concatenation],</div><div class='del'>-  rb_cv_string_literal_concatenation, [</div><div class='del'>-  AC_COMPILE_IFELSE([</div><div class='del'>-    AC_LANG_BOOL_COMPILE_TRY([</div><div class='del'>-const char concatenated_literal[[]] = "literals" "to"</div><div class='del'>-  "be" "concatenated.";</div><div class='del'>-], [sizeof(concatenated_literal) == 26])],</div><div class='del'>-    [rb_cv_string_literal_concatenation=yes],</div><div class='del'>-    [rb_cv_string_literal_concatenation=no])]</div><div class='del'>-)</div><div class='del'>-AS_IF([test "$rb_cv_string_literal_concatenation" = no], [</div><div class='del'>-  AC_MSG_ERROR([No string literal concatenation])</div><div class='del'>-])</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK(for variable length prototypes and stdarg.h, rb_cv_stdarg,</div><div class='del'>-  [AC_TRY_COMPILE([</div><div class='del'>-#include &lt;stdarg.h&gt;</div><div class='del'>-int foo(int x, ...) {</div><div class='del'>-	va_list va;</div><div class='del'>-	va_start(va, x);</div><div class='del'>-	va_arg(va, int);</div><div class='del'>-	va_arg(va, char *);</div><div class='del'>-	va_arg(va, double);</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-], [return foo(10, "", 3.14);],</div><div class='del'>-	rb_cv_stdarg=yes,</div><div class='del'>-	rb_cv_stdarg=no)])</div><div class='del'>-AS_IF([test "$rb_cv_stdarg" = yes], [</div><div class='del'>-  AC_DEFINE(HAVE_STDARG_PROTOTYPES)</div><div class='del'>-])</div><div class='del'>-</div><div class='add'>+# __VA_ARGS__ is also tested in AC_PROG_CC_C99 since autoconf 2.60a (around</div><div class='add'>+# 2006). The check below is redundant and should always success.  Remain not</div><div class='add'>+# deleted for backward compat.</div><div class='ctx'> AC_CACHE_CHECK(for variable length macro, rb_cv_va_args_macro,</div><div class='del'>-  [AC_TRY_COMPILE([</div><div class='del'>-int foo(int x, ...);</div><div class='del'>-@%:@define FOO(a, ...) foo(a, @%:@@%:@__VA_ARGS__)</div><div class='del'>-], [FOO(1);FOO(1,2);FOO(1,2,3);],</div><div class='add'>+  [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='add'>+int foo(const char*);</div><div class='add'>+@%:@define FOO(...) foo(@%:@__VA_ARGS__)</div><div class='add'>+]], [[FOO(1);FOO(1,2);FOO(1,2,3);]])],</div><div class='ctx'>   rb_cv_va_args_macro=yes,</div><div class='ctx'>   rb_cv_va_args_macro=no)])</div><div class='ctx'> AS_IF([test "$rb_cv_va_args_macro" = yes], [</div><div class='ctx'>   AC_DEFINE(HAVE_VA_ARGS_MACRO)</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='del'>-AC_CACHE_CHECK([for alignas() syntax], rb_cv_have_alignas, [</div><div class='del'>-rb_cv_have_alignas=no</div><div class='del'>-RUBY_WERROR_FLAG([</div><div class='del'>-for attr in \</div><div class='del'>-    "_Alignas(x)" \</div><div class='del'>-    "alignas(x)" \</div><div class='del'>-    "@&lt;:@@&lt;:@alignas(x)@:&gt;@@:&gt;@" \</div><div class='del'>-    "__declspec(aligned(x))" \</div><div class='del'>-    "__attribute__((__aligned__(x)))" \</div><div class='del'>-;</div><div class='del'>-do</div><div class='del'>-    # C11 _Alignas and GCC __attribute__((__aligned__)) behave</div><div class='del'>-    # slightly differently.  What we want is GCC's.  Check that</div><div class='del'>-    # here by something C11 does not allow (`struct ALIGNAS ...`)</div><div class='del'>-    AC_TRY_COMPILE(</div><div class='del'>-	[@%:@define ALIGNAS(x) $attr</div><div class='del'>-	struct ALIGNAS(128) conftest_tag { int foo; } foo; ], [],</div><div class='del'>-        [rb_cv_have_alignas="$attr"; break], [])</div><div class='del'>-done</div><div class='del'>-])])</div><div class='del'>-AS_IF([test "$rb_cv_have_alignas" != no], [</div><div class='del'>-    AC_DEFINE_UNQUOTED([RUBY_ALIGNAS(x)], $rb_cv_have_alignas)</div><div class='add'>+# We want C11's  `_Alignof`.  GCC (and alike) have  `__alignof__`, which behave</div><div class='add'>+# slightly differently  than the  C11's.  We cannot  use `__alignof__`  for our</div><div class='add'>+# purpose.   The problem  is, however,  that  old gcc  and old  clang had  both</div><div class='add'>+# implemented `_Alignof` as  a synonym of `__alignof__`.  They are  not what we</div><div class='add'>+# want.  We have to check sanity.</div><div class='add'>+#</div><div class='add'>+# See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023</div><div class='add'>+# See also: https://bugs.llvm.org/show_bug.cgi?id=26547</div><div class='add'>+AC_CACHE_CHECK([if _Alignof() works], rb_cv_have__alignof,[</div><div class='add'>+    rb_cv_have__alignof=no</div><div class='add'>+    RUBY_WERROR_FLAG([</div><div class='add'>+        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='add'>+            @%:@ifdef HAVE_STDALIGN_H</div><div class='add'>+            @%:@include &lt;stdalign.h&gt;</div><div class='add'>+            @%:@endif</div><div class='add'>+            @%:@ifdef STDC_HEADERS</div><div class='add'>+            @%:@include &lt;stddef.h&gt;</div><div class='add'>+            @%:@endif</div><div class='add'>+            @%:@ifndef __GNUC__</div><div class='add'>+            @%:@define __extension__</div><div class='add'>+            @%:@endif</div><div class='add'>+        ]], [[</div><div class='add'>+            typedef struct conftest_tag {</div><div class='add'>+                char _;</div><div class='add'>+                double d;</div><div class='add'>+            } T;</div><div class='add'>+            static int conftest_ary@&lt;:@</div><div class='add'>+                offsetof(T, d) == __extension__ _Alignof(double)</div><div class='add'>+                ? 1 : -1</div><div class='add'>+            @:&gt;@;</div><div class='add'>+            return conftest_ary@&lt;:@0@:&gt;@;</div><div class='add'>+        ]])],[</div><div class='add'>+            rb_cv_have__alignof=yes</div><div class='add'>+        ],[])</div><div class='add'>+    ])</div><div class='ctx'> ])</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK([for alignof() syntax], rb_cv_have_alignof,[</div><div class='del'>-rb_cv_have_alignof=no</div><div class='del'>-RUBY_WERROR_FLAG([</div><div class='del'>-for expr in \</div><div class='del'>-    "alignof" \</div><div class='del'>-    "_Alignof" \</div><div class='del'>-    "__alignof" \</div><div class='del'>-    "__alignof__" \</div><div class='del'>-;</div><div class='del'>-do</div><div class='del'>-    AC_TRY_COMPILE([</div><div class='del'>-    @%:@ifdef HAVE_STDALIGN_H</div><div class='del'>-    @%:@include &lt;stdalign.h&gt;</div><div class='del'>-    @%:@endif],[return (int)$expr(int);],</div><div class='del'>-        [rb_cv_have_alignof="$expr"; break], [])</div><div class='del'>-done</div><div class='del'>-])])</div><div class='del'>-AS_IF([test "$rb_cv_have_alignof" != no], [</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_ALIGNOF, $rb_cv_have_alignof)</div><div class='add'>+AS_IF([test "$rb_cv_have__alignof" != no], [</div><div class='add'>+    AC_DEFINE(HAVE__ALIGNOF)</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='ctx'> RUBY_FUNC_ATTRIBUTE(__const__, CONSTFUNC)</div><div class='hunk'>@@ -1378,7 +1593,6 @@ RUBY_FUNC_ATTRIBUTE(__pure__, PUREFUNC)</div><div class='ctx'> RUBY_FUNC_ATTRIBUTE(__noreturn__, NORETURN)</div><div class='ctx'> RUBY_FUNC_ATTRIBUTE(__deprecated__, DEPRECATED)</div><div class='ctx'> RUBY_FUNC_ATTRIBUTE(__deprecated__("by "@%:@n), DEPRECATED_BY(n,x), rb_cv_func_deprecated_by)</div><div class='del'>-RUBY_TYPE_ATTRIBUTE(__deprecated__ mesg, DEPRECATED_TYPE(mesg,x), rb_cv_type_deprecated)</div><div class='ctx'> RUBY_FUNC_ATTRIBUTE(__noinline__, NOINLINE)</div><div class='ctx'> RUBY_FUNC_ATTRIBUTE(__always_inline__, ALWAYS_INLINE)</div><div class='ctx'> RUBY_FUNC_ATTRIBUTE(__no_sanitize__(san), NO_SANITIZE(san, x), rb_cv_func_no_sanitize)</div><div class='hunk'>@@ -1393,6 +1607,32 @@ AS_IF([test "$rb_cv_func_weak" != x], [</div><div class='ctx'>    AC_DEFINE(HAVE_FUNC_WEAK)</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='add'>+AC_CACHE_CHECK([for __attribute__((__depreacted__(msg))) in C++],</div><div class='add'>+  rb_cv_CentOS6_CXX_workaround,</div><div class='add'>+  RUBY_WERROR_FLAG([</div><div class='add'>+    AC_LANG_PUSH([C++])</div><div class='add'>+    AC_COMPILE_IFELSE(</div><div class='add'>+      [AC_LANG_PROGRAM(</div><div class='add'>+        [],</div><div class='add'>+        [__attribute__((__deprecated__("message"))) int conftest(...);])],</div><div class='add'>+      [rb_cv_CentOS6_CXX_workaround=yes],</div><div class='add'>+      [rb_cv_CentOS6_CXX_workaround=no])</div><div class='add'>+    AC_LANG_POP()]))</div><div class='add'>+AS_IF([test "$rb_cv_CentOS6_CXX_workaround" != no],[</div><div class='add'>+  AC_DEFINE([RUBY_CXX_DEPRECATED(msg)],</div><div class='add'>+    [__attribute__((__deprecated__(msg)))])])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK([for std::nullptr_t], rb_cv_CXX_nullptr, [</div><div class='add'>+  AC_LANG_PUSH([C++])</div><div class='add'>+  AC_COMPILE_IFELSE(</div><div class='add'>+    [AC_LANG_PROGRAM(</div><div class='add'>+      [@%:@include &lt;cstddef&gt;],</div><div class='add'>+      [static std::nullptr_t const *const conftest = nullptr;])],</div><div class='add'>+    [rb_cv_CXX_nullptr=yes],</div><div class='add'>+    [rb_cv_CXX_nullptr=no])</div><div class='add'>+  AC_LANG_POP()])</div><div class='add'>+AS_IF([test "$rb_cv_CXX_nullptr" != no],[AC_DEFINE(HAVE_NULLPTR)])</div><div class='add'>+</div><div class='ctx'> if_i386=${universal_binary+[defined __i386__]}</div><div class='ctx'> RUBY_FUNC_ATTRIBUTE(__stdcall__,  FUNC_STDCALL,  rb_cv_func_stdcall,  ${if_i386})</div><div class='ctx'> RUBY_FUNC_ATTRIBUTE(__cdecl__,    FUNC_CDECL,    rb_cv_func_cdecl,    ${if_i386})</div><div class='hunk'>@@ -1404,8 +1644,8 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'>     AC_CACHE_CHECK([for function alias], [rb_cv_gcc_function_alias],</div><div class='ctx'> 	[rb_cv_gcc_function_alias=no</div><div class='ctx'> 	for a in alias weak,alias; do</div><div class='del'>-	    AC_TRY_LINK([void foo(void) {}</div><div class='del'>-		void bar(void) __attribute__(($a("foo")));], [bar()],</div><div class='add'>+	    AC_LINK_IFELSE([AC_LANG_PROGRAM([[void foo(void) {}</div><div class='add'>+		void bar(void) __attribute__(($a("foo")));]], [[bar()]])],</div><div class='ctx'> 		[rb_cv_gcc_function_alias=$a; break])</div><div class='ctx'> 	done])</div><div class='ctx'>     AS_IF([test "$rb_cv_gcc_function_alias" != no], [</div><div class='hunk'>@@ -1415,16 +1655,18 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'> 	AC_DEFINE_UNQUOTED([RUBY_ALIAS_FUNCTION_VOID(prot, name, args)],</div><div class='ctx'> 			   [RUBY_ALIAS_FUNCTION_TYPE(void, prot, name, args)])</div><div class='ctx'>     ])</div><div class='add'>+])</div><div class='ctx'> </div><div class='add'>+{</div><div class='ctx'>     AC_CACHE_CHECK([for __atomic builtins], [rb_cv_gcc_atomic_builtins], [</div><div class='del'>-	AC_TRY_LINK([unsigned char atomic_var;],</div><div class='del'>-		    [</div><div class='add'>+	AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned int atomic_var;]],</div><div class='add'>+		    [[</div><div class='ctx'> 			__atomic_exchange_n(&amp;atomic_var, 0, __ATOMIC_SEQ_CST);</div><div class='ctx'> 			__atomic_exchange_n(&amp;atomic_var, 1, __ATOMIC_SEQ_CST);</div><div class='ctx'> 			__atomic_fetch_add(&amp;atomic_var, 1, __ATOMIC_SEQ_CST);</div><div class='ctx'> 			__atomic_fetch_sub(&amp;atomic_var, 1, __ATOMIC_SEQ_CST);</div><div class='ctx'> 			__atomic_or_fetch(&amp;atomic_var, 1, __ATOMIC_SEQ_CST);</div><div class='del'>-		    ],</div><div class='add'>+		    ]])],</div><div class='ctx'> 		    [rb_cv_gcc_atomic_builtins=yes],</div><div class='ctx'> 		    [rb_cv_gcc_atomic_builtins=no])])</div><div class='ctx'>     AS_IF([test "$rb_cv_gcc_atomic_builtins" = yes], [</div><div class='hunk'>@@ -1432,15 +1674,15 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'>     ])</div><div class='ctx'> </div><div class='ctx'>     AC_CACHE_CHECK([for __sync builtins], [rb_cv_gcc_sync_builtins], [</div><div class='del'>-	AC_TRY_LINK([unsigned char atomic_var;],</div><div class='del'>-		    [</div><div class='add'>+	AC_LINK_IFELSE([AC_LANG_PROGRAM([[unsigned int atomic_var;]],</div><div class='add'>+		    [[</div><div class='ctx'> 			__sync_lock_test_and_set(&amp;atomic_var, 0);</div><div class='ctx'> 			__sync_lock_test_and_set(&amp;atomic_var, 1);</div><div class='ctx'> 			__sync_fetch_and_add(&amp;atomic_var, 1);</div><div class='ctx'> 			__sync_fetch_and_sub(&amp;atomic_var, 1);</div><div class='ctx'> 			__sync_or_and_fetch(&amp;atomic_var, 1);</div><div class='ctx'> 			__sync_val_compare_and_swap(&amp;atomic_var, 0, 1);</div><div class='del'>-		    ],</div><div class='add'>+		    ]])],</div><div class='ctx'> 		    [rb_cv_gcc_sync_builtins=yes],</div><div class='ctx'> 		    [rb_cv_gcc_sync_builtins=no])])</div><div class='ctx'>     AS_IF([test "$rb_cv_gcc_sync_builtins" = yes], [</div><div class='hunk'>@@ -1449,49 +1691,67 @@ AS_IF([test "$GCC" = yes], [</div><div class='ctx'> </div><div class='ctx'>     AC_CACHE_CHECK(for __builtin_unreachable, rb_cv_func___builtin_unreachable,</div><div class='ctx'>     [RUBY_WERROR_FLAG(</div><div class='del'>-    [AC_TRY_LINK([volatile int zero;],</div><div class='del'>-	[if (zero) __builtin_unreachable();],</div><div class='add'>+    [AC_LINK_IFELSE([AC_LANG_PROGRAM([[volatile int zero;]],</div><div class='add'>+	[[if (zero) __builtin_unreachable();]])],</div><div class='ctx'> 	[rb_cv_func___builtin_unreachable=yes],</div><div class='ctx'> 	[rb_cv_func___builtin_unreachable=no])</div><div class='ctx'>     ])</div><div class='ctx'>     ])</div><div class='ctx'>     AS_IF([test "$rb_cv_func___builtin_unreachable" = yes], [</div><div class='del'>-	AC_DEFINE_UNQUOTED(UNREACHABLE, [__builtin_unreachable()])</div><div class='add'>+	AC_DEFINE(HAVE___BUILTIN_UNREACHABLE)</div><div class='ctx'>     ])</div><div class='del'>-])</div><div class='add'>+</div><div class='add'>+    AC_CACHE_CHECK(for __assume, rb_cv_func___assume,</div><div class='add'>+    [RUBY_WERROR_FLAG([</div><div class='add'>+        AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],</div><div class='add'>+            [[__assume(1);]])],</div><div class='add'>+            [rb_cv_func___assume=yes],</div><div class='add'>+            [rb_cv_func___assume=no])</div><div class='add'>+    ])</div><div class='add'>+    ])</div><div class='add'>+    AS_IF([test "$rb_cv_func___assume" = yes], [</div><div class='add'>+	AC_DEFINE(HAVE___ASSUME)</div><div class='add'>+    ])</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> AC_CACHE_CHECK(for exported function attribute, rb_cv_func_exported, [</div><div class='ctx'> rb_cv_func_exported=no</div><div class='ctx'> RUBY_WERROR_FLAG([</div><div class='ctx'> for mac in '__attribute__ ((__visibility__("default")))' '__declspec(dllexport)'; do</div><div class='del'>-  AC_TRY_COMPILE([@%:@define RUBY_FUNC_EXPORTED $mac extern</div><div class='del'>-    RUBY_FUNC_EXPORTED void conftest_attribute_check(void);], [],</div><div class='add'>+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@define RUBY_FUNC_EXPORTED $mac extern</div><div class='add'>+    RUBY_FUNC_EXPORTED void conftest_attribute_check(void);]], [[]])],</div><div class='ctx'>     [rb_cv_func_exported="$mac"; break])</div><div class='ctx'> done</div><div class='ctx'> ])])</div><div class='ctx'> AS_IF([test "$rb_cv_func_exported" != no], [</div><div class='ctx'>     AC_DEFINE_UNQUOTED(RUBY_FUNC_EXPORTED, [$rb_cv_func_exported extern])</div><div class='ctx'> ])</div><div class='add'>+RUBY_DECL_ATTRIBUTE([__nonnull__(n)], [RUBY_FUNC_NONNULL(n,x)], [rb_cv_func_nonnull],</div><div class='add'>+                    [], [function], [</div><div class='add'>+@%:@define x int conftest_attribute_check(void *p)</div><div class='add'>+@%:@define n 1</div><div class='add'>+])</div><div class='ctx'> </div><div class='ctx'> RUBY_APPEND_OPTION(XCFLAGS, -DRUBY_EXPORT)</div><div class='ctx'> </div><div class='ctx'> AC_ARG_ENABLE(mathn,</div><div class='del'>-    AS_HELP_STRING([--disable-mathn], [disable canonicalization for mathn]),</div><div class='del'>-    [mathn=$enableval], [mathn=yes])</div><div class='del'>-test "x$mathn" = xyes || mathn=</div><div class='del'>-AC_SUBST(MATHN, $mathn)</div><div class='add'>+    AS_HELP_STRING([--enable-mathn], [enable canonicalization for mathn]),</div><div class='add'>+    [AC_MSG_ERROR([mathn support has been dropped])])</div><div class='ctx'> </div><div class='ctx'> AC_CACHE_CHECK(for function name string predefined identifier,</div><div class='ctx'>     rb_cv_function_name_string,</div><div class='del'>-    [rb_cv_function_name_string=no</div><div class='del'>-    RUBY_WERROR_FLAG([</div><div class='del'>-	for func in __func__ __FUNCTION__; do</div><div class='del'>-	    AC_TRY_LINK([@%:@include &lt;stdio.h&gt;],</div><div class='del'>-			[puts($func);],</div><div class='del'>-			[rb_cv_function_name_string=$func</div><div class='del'>-			break])</div><div class='del'>-	done</div><div class='del'>-    ])]</div><div class='add'>+    [AS_CASE(["$target_os"],[openbsd*],[</div><div class='add'>+      rb_cv_function_name_string=__func__</div><div class='add'>+     ],[</div><div class='add'>+     rb_cv_function_name_string=no</div><div class='add'>+      RUBY_WERROR_FLAG([</div><div class='add'>+        for func in __func__ __FUNCTION__; do</div><div class='add'>+            AC_LINK_IFELSE([AC_LANG_PROGRAM([[@%:@include &lt;stdio.h&gt;]],</div><div class='add'>+					    [[puts($func);]])],</div><div class='add'>+            [rb_cv_function_name_string=$func</div><div class='add'>+            break])</div><div class='add'>+        done</div><div class='add'>+      ])])]</div><div class='ctx'> )</div><div class='ctx'> AS_IF([test "$rb_cv_function_name_string" != no], [</div><div class='ctx'>     AC_DEFINE_UNQUOTED(RUBY_FUNCTION_NAME_STRING, [$rb_cv_function_name_string])</div><div class='hunk'>@@ -1551,16 +1811,21 @@ RUBY_CHECK_SIGNEDNESS(size_t, [AC_MSG_ERROR(size_t is signed)], [],</div><div class='ctx'> 		      [@%:@include &lt;sys/types.h&gt;])</div><div class='ctx'> RUBY_CHECK_SIZEOF(size_t, [int long void*], [], [@%:@include &lt;sys/types.h&gt;])</div><div class='ctx'> RUBY_CHECK_SIZEOF(ptrdiff_t, size_t, [], [@%:@include &lt;stddef.h&gt;])</div><div class='add'>+RUBY_CHECK_SIZEOF(dev_t)</div><div class='ctx'> RUBY_CHECK_PRINTF_PREFIX(size_t, z)</div><div class='ctx'> RUBY_CHECK_PRINTF_PREFIX(ptrdiff_t, t)</div><div class='del'>-AC_STRUCT_ST_BLKSIZE</div><div class='del'>-AC_STRUCT_ST_BLOCKS</div><div class='del'>-AC_STRUCT_ST_RDEV</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_blksize])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_blocks])</div><div class='add'>+AC_CHECK_MEMBERS([struct stat.st_rdev])</div><div class='ctx'> RUBY_CHECK_SIZEOF([struct stat.st_size], [off_t int long "long long"], [], [@%:@include &lt;sys/stat.h&gt;])</div><div class='ctx'> AS_IF([test "$ac_cv_member_struct_stat_st_blocks" = yes], [</div><div class='ctx'>     RUBY_CHECK_SIZEOF([struct stat.st_blocks], [off_t int long "long long"], [], [@%:@include &lt;sys/stat.h&gt;])</div><div class='ctx'> ])</div><div class='ctx'> RUBY_CHECK_SIZEOF([struct stat.st_ino], [long "long long"], [], [@%:@include &lt;sys/stat.h&gt;])</div><div class='add'>+RUBY_CHECK_SIZEOF([struct stat.st_dev], [dev_t int long "long long"], [], [@%:@include &lt;sys/stat.h&gt;])</div><div class='add'>+AS_IF([test "$ac_cv_member_struct_stat_st_rdev" = yes], [</div><div class='add'>+    RUBY_CHECK_SIZEOF([struct stat.st_rdev], [dev_t int long "long long"], [], [@%:@include &lt;sys/stat.h&gt;])</div><div class='add'>+])</div><div class='ctx'> AC_CHECK_MEMBERS([struct stat.st_atim])</div><div class='ctx'> AC_CHECK_MEMBERS([struct stat.st_atimespec])</div><div class='ctx'> AC_CHECK_MEMBERS([struct stat.st_atimensec])</div><div class='hunk'>@@ -1571,6 +1836,8 @@ AC_CHECK_MEMBERS([struct stat.st_ctim])</div><div class='ctx'> AC_CHECK_MEMBERS([struct stat.st_ctimespec])</div><div class='ctx'> AC_CHECK_MEMBERS([struct stat.st_ctimensec])</div><div class='ctx'> AC_CHECK_MEMBERS([struct stat.st_birthtimespec])</div><div class='add'>+AS_IF([test "x$ac_cv_member_struct_stat_st_birthtimespec" != xyes],</div><div class='add'>+    [AC_CHECK_MEMBERS([struct statx.stx_btime])])</div><div class='ctx'> </div><div class='ctx'> AC_CHECK_TYPES([struct timeval], [], [], [@%:@ifdef HAVE_TIME_H</div><div class='ctx'> @%:@include &lt;time.h&gt;</div><div class='hunk'>@@ -1642,9 +1909,9 @@ AS_IF([test "x$rb_cv_type_int64_t" != xno], [</div><div class='ctx'> </div><div class='ctx'> AC_CACHE_CHECK(for stack end address, rb_cv_stack_end_address,</div><div class='ctx'> [rb_cv_stack_end_address=no</div><div class='del'>-  AC_TRY_LINK(</div><div class='del'>-    [extern void *__libc_stack_end;],</div><div class='del'>-    [if (!__libc_stack_end) return 1;],</div><div class='add'>+  AC_LINK_IFELSE([AC_LANG_PROGRAM(</div><div class='add'>+      [[extern void *__libc_stack_end;]],</div><div class='add'>+      [[if (!__libc_stack_end) return 1;]])],</div><div class='ctx'>     [rb_cv_stack_end_address="__libc_stack_end"])</div><div class='ctx'> ])</div><div class='ctx'> AS_IF([test $rb_cv_stack_end_address != no], [</div><div class='hunk'>@@ -1653,9 +1920,8 @@ AS_IF([test $rb_cv_stack_end_address != no], [</div><div class='ctx'> </div><div class='ctx'> dnl Checks for library functions.</div><div class='ctx'> AC_TYPE_GETGROUPS</div><div class='del'>-AC_TYPE_SIGNAL</div><div class='ctx'> AS_CASE(["${target_cpu}-${target_os}:${target_archs}"],</div><div class='del'>-[powerpc-darwin*], [</div><div class='add'>+[powerpc*-darwin*], [</div><div class='ctx'>   AC_LIBSOURCES(alloca.c)</div><div class='ctx'>   AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.${ac_objext}])</div><div class='ctx'>   AC_DEFINE(C_ALLOCA)</div><div class='hunk'>@@ -1664,8 +1930,8 @@ AS_CASE(["${target_cpu}-${target_os}:${target_archs}"],</div><div class='ctx'> [universal-darwin*:*ppc*], [</div><div class='ctx'>   AC_LIBSOURCES(alloca.c)</div><div class='ctx'>   AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.${ac_objext}])</div><div class='del'>-  RUBY_DEFINE_IF([defined __powerpc__], C_ALLOCA, 1)</div><div class='del'>-  RUBY_DEFINE_IF([defined __powerpc__], alloca, alloca)</div><div class='add'>+  RUBY_DEFINE_IF([defined __POWERPC__], C_ALLOCA, 1) # Darwin defines __POWERPC__ for ppc and ppc64 both</div><div class='add'>+  RUBY_DEFINE_IF([defined __POWERPC__], alloca, alloca)</div><div class='ctx'>   ],</div><div class='ctx'> [</div><div class='ctx'>   AC_FUNC_ALLOCA</div><div class='hunk'>@@ -1673,14 +1939,14 @@ AS_CASE(["${target_cpu}-${target_os}:${target_archs}"],</div><div class='ctx'> AS_IF([test "x$ALLOCA" = "x"], [</div><div class='ctx'>     AC_CACHE_CHECK([for dynamic size alloca], rb_cv_dynamic_alloca, [</div><div class='ctx'>     for chk in ok __chkstk; do</div><div class='del'>-	AC_TRY_LINK([</div><div class='add'>+	AC_LINK_IFELSE([AC_LANG_PROGRAM([[</div><div class='ctx'> 	    @%:@ifdef HAVE_ALLOCA_H</div><div class='ctx'> 	    @%:@include &lt;alloca.h&gt;</div><div class='ctx'> 	    @%:@endif</div><div class='ctx'> 	    void $chk() {}</div><div class='ctx'> 	    int dynamic_alloca_test;</div><div class='del'>-	    int dynamic_alloca_result;],</div><div class='del'>-	    [dynamic_alloca_result = alloca(dynamic_alloca_test) != 0;],</div><div class='add'>+	    int dynamic_alloca_result;]],</div><div class='add'>+	    [[dynamic_alloca_result = alloca(dynamic_alloca_test) != 0;]])],</div><div class='ctx'> 	    [rb_cv_dynamic_alloca=$chk; break])</div><div class='ctx'>     done])</div><div class='ctx'>     AS_IF([test "x$rb_cv_dynamic_alloca" = "x__chkstk"], [</div><div class='hunk'>@@ -1693,41 +1959,27 @@ AS_IF([test "x$ALLOCA" = "x"], [</div><div class='ctx'> ])</div><div class='ctx'> AC_FUNC_MEMCMP</div><div class='ctx'> </div><div class='del'>-# http://sources.redhat.com/ml/libc-hacker/2005-08/msg00008.html</div><div class='del'>-# Debian GNU/Linux Etch's libc6.1 2.3.6.ds1-13etch5 has this problem.</div><div class='del'>-# Debian GNU/Linux Lenny's libc6.1 2.7-10 has no problem.</div><div class='del'>-AC_CACHE_CHECK(for broken erfc of glibc-2.3.6 on IA64, rb_cv_broken_glibc_ia64_erfc,</div><div class='del'>-  [AC_TRY_RUN([</div><div class='del'>-#include &lt;math.h&gt;</div><div class='del'>-int</div><div class='del'>-main()</div><div class='del'>-{</div><div class='del'>-   erfc(10000.0);</div><div class='del'>-   return 0;</div><div class='del'>-}</div><div class='del'>-],</div><div class='del'>-	rb_cv_broken_glibc_ia64_erfc=no,</div><div class='del'>-	rb_cv_broken_glibc_ia64_erfc=yes,</div><div class='del'>-	rb_cv_broken_glibc_ia64_erfc=no)])</div><div class='del'>-AS_CASE([$rb_cv_broken_glibc_ia64_erfc],[yes],[ac_cv_func_erf=no])</div><div class='del'>-</div><div class='ctx'> AS_CASE(["$target_os"],[freebsd*],[</div><div class='ctx'> 	 AC_DEFINE(BROKEN_CLOSE)</div><div class='ctx'> 	 AC_REPLACE_FUNCS(close)</div><div class='ctx'> 	 ])</div><div class='ctx'> </div><div class='add'>+# dup and dup2 are always available except for WASI</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+    [wasi*], [],</div><div class='add'>+    [</div><div class='add'>+        RUBY_REQUIRE_FUNCS(dup dup2)</div><div class='add'>+    ]</div><div class='add'>+)</div><div class='add'>+</div><div class='ctx'> AC_REPLACE_FUNCS(acosh)</div><div class='ctx'> AC_REPLACE_FUNCS(cbrt)</div><div class='ctx'> AC_REPLACE_FUNCS(crypt)</div><div class='del'>-AC_REPLACE_FUNCS(dup2)</div><div class='ctx'> AC_REPLACE_FUNCS(erf)</div><div class='ctx'> AC_REPLACE_FUNCS(explicit_bzero)</div><div class='ctx'> AC_REPLACE_FUNCS(ffs)</div><div class='del'>-AC_REPLACE_FUNCS(finite)</div><div class='ctx'> AC_REPLACE_FUNCS(flock)</div><div class='ctx'> AC_REPLACE_FUNCS(hypot)</div><div class='del'>-AC_REPLACE_FUNCS(isinf)</div><div class='del'>-AC_REPLACE_FUNCS(isnan)</div><div class='ctx'> AC_REPLACE_FUNCS(lgamma_r)</div><div class='ctx'> AC_REPLACE_FUNCS(memmove)</div><div class='ctx'> AC_REPLACE_FUNCS(nan)</div><div class='hunk'>@@ -1740,52 +1992,16 @@ AC_REPLACE_FUNCS(strlcpy)</div><div class='ctx'> AC_REPLACE_FUNCS(strstr)</div><div class='ctx'> AC_REPLACE_FUNCS(tgamma)</div><div class='ctx'> </div><div class='add'>+AC_DEFINE(HAVE_ISFINITE)        # C99; backward compatibility</div><div class='add'>+</div><div class='ctx'> # for missing/setproctitle.c</div><div class='ctx'> AS_CASE(["$target_os"],</div><div class='ctx'> [aix* | k*bsd*-gnu | kopensolaris*-gnu | linux* | darwin*], [AC_DEFINE(SPT_TYPE,SPT_REUSEARGV)],</div><div class='del'>-[hpux*], [AC_DEFINE(SPT_TYPE,SPT_PSTAT) ],</div><div class='ctx'> [])</div><div class='ctx'> AC_CHECK_HEADERS(sys/pstat.h)</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-AC_CACHE_CHECK(for signbit, rb_cv_have_signbit,</div><div class='del'>-  [AC_TRY_LINK([</div><div class='del'>-#include &lt;math.h&gt;</div><div class='del'>-], [int v = signbit(-0.0);],</div><div class='del'>-	rb_cv_have_signbit=yes,</div><div class='del'>-	rb_cv_have_signbit=no)])</div><div class='del'>-AS_IF([test "$rb_cv_have_signbit" = yes], [</div><div class='del'>-  AC_DEFINE(HAVE_SIGNBIT)</div><div class='del'>-], [</div><div class='del'>-  AC_LIBOBJ([signbit])</div><div class='del'>-])</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK(for broken memmem, rb_cv_broken_memmem, [</div><div class='del'>-    AC_TRY_RUN([</div><div class='del'>-@%:@include &lt;string.h&gt;</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-main(int argc, char **argv)</div><div class='del'>-{</div><div class='del'>-    const char *str = "hogefugafoobar";</div><div class='del'>-    const char *rs = "foo";</div><div class='del'>-    const char *empty = "";</div><div class='del'>-    char *p;</div><div class='del'>-</div><div class='del'>-    p = memmem(str, strlen(str), rs, strlen(rs));</div><div class='del'>-    if (p == str+8) {</div><div class='del'>-	p = memmem(str, strlen(str), empty, strlen(empty));</div><div class='del'>-	if (p == str)</div><div class='del'>-	    return 0;</div><div class='del'>-    }</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-    ],</div><div class='del'>-    rb_cv_broken_memmem=no,</div><div class='del'>-    rb_cv_broken_memmem=yes,</div><div class='del'>-    rb_cv_broken_memmem=yes)</div><div class='del'>-])</div><div class='del'>-test x"$rb_cv_broken_memmem" = xyes &amp;&amp; ac_cv_func_memmem=no</div><div class='add'>+AC_DEFINE(HAVE_SIGNBIT)         # C99; backward compatibility</div><div class='ctx'> </div><div class='ctx'> AC_FUNC_FORK</div><div class='ctx'> </div><div class='hunk'>@@ -1795,9 +2011,13 @@ AC_CHECK_FUNCS(_longjmp)		# used for AC_ARG_WITH(setjmp-type)</div><div class='ctx'> test x$ac_cv_func__longjmp = xno &amp;&amp; ac_cv_func__setjmp=no</div><div class='ctx'> AC_CHECK_FUNCS(arc4random_buf)</div><div class='ctx'> AC_CHECK_FUNCS(atan2l atan2f)</div><div class='add'>+AC_CHECK_DECLS(atomic_signal_fence, [], [], [#include &lt;stdatomic.h&gt;])</div><div class='add'>+AC_CHECK_FUNCS(chmod)</div><div class='add'>+AC_CHECK_FUNCS(chown)</div><div class='ctx'> AC_CHECK_FUNCS(chroot)</div><div class='ctx'> AC_CHECK_FUNCS(chsize)</div><div class='ctx'> AC_CHECK_FUNCS(clock_gettime)</div><div class='add'>+AC_CHECK_FUNCS(copy_file_range)</div><div class='ctx'> AC_CHECK_FUNCS(cosh)</div><div class='ctx'> AC_CHECK_FUNCS(crypt_r)</div><div class='ctx'> AC_CHECK_FUNCS(daemon)</div><div class='hunk'>@@ -1805,11 +2025,16 @@ AC_CHECK_FUNCS(dirfd)</div><div class='ctx'> AC_CHECK_FUNCS(dl_iterate_phdr)</div><div class='ctx'> AC_CHECK_FUNCS(dlopen)</div><div class='ctx'> AC_CHECK_FUNCS(dladdr)</div><div class='del'>-AC_CHECK_FUNCS(dup)</div><div class='ctx'> AC_CHECK_FUNCS(dup3)</div><div class='ctx'> AC_CHECK_FUNCS(eaccess)</div><div class='ctx'> AC_CHECK_FUNCS(endgrent)</div><div class='ctx'> AC_CHECK_FUNCS(eventfd)</div><div class='add'>+AC_CHECK_FUNCS(execl)</div><div class='add'>+AC_CHECK_FUNCS(execle)</div><div class='add'>+AC_CHECK_FUNCS(execv)</div><div class='add'>+AC_CHECK_FUNCS(execve)</div><div class='add'>+AC_CHECK_FUNCS(explicit_memset)</div><div class='add'>+AC_CHECK_FUNCS(fcopyfile)</div><div class='ctx'> AC_CHECK_FUNCS(fchmod)</div><div class='ctx'> AC_CHECK_FUNCS(fchown)</div><div class='ctx'> AC_CHECK_FUNCS(fcntl)</div><div class='hunk'>@@ -1823,19 +2048,31 @@ AC_CHECK_FUNCS(ftruncate)</div><div class='ctx'> AC_CHECK_FUNCS(ftruncate64)		# used for Win32 platform</div><div class='ctx'> AC_CHECK_FUNCS(getattrlist)</div><div class='ctx'> AC_CHECK_FUNCS(getcwd)</div><div class='add'>+AC_CHECK_FUNCS(getegid)</div><div class='add'>+AC_CHECK_FUNCS(getentropy)</div><div class='add'>+AC_CHECK_FUNCS(geteuid)</div><div class='add'>+AC_CHECK_FUNCS(getgid)</div><div class='ctx'> AC_CHECK_FUNCS(getgidx)</div><div class='ctx'> AC_CHECK_FUNCS(getgrnam)</div><div class='ctx'> AC_CHECK_FUNCS(getgrnam_r)</div><div class='ctx'> AC_CHECK_FUNCS(getgroups)</div><div class='add'>+AC_CHECK_FUNCS(getlogin)</div><div class='add'>+AC_CHECK_FUNCS(getlogin_r)</div><div class='ctx'> AC_CHECK_FUNCS(getpgid)</div><div class='ctx'> AC_CHECK_FUNCS(getpgrp)</div><div class='add'>+AC_CHECK_FUNCS(getppid)</div><div class='ctx'> AC_CHECK_FUNCS(getpriority)</div><div class='add'>+AC_CHECK_FUNCS(getpwnam)</div><div class='ctx'> AC_CHECK_FUNCS(getpwnam_r)</div><div class='add'>+AC_CHECK_FUNCS(getpwuid)</div><div class='add'>+AC_CHECK_FUNCS(getpwuid_r)</div><div class='add'>+AC_CHECK_FUNCS(getrandom)</div><div class='ctx'> AC_CHECK_FUNCS(getresgid)</div><div class='ctx'> AC_CHECK_FUNCS(getresuid)</div><div class='ctx'> AC_CHECK_FUNCS(getrlimit)</div><div class='ctx'> AC_CHECK_FUNCS(getsid)</div><div class='ctx'> AC_CHECK_FUNCS(gettimeofday)		# for making ac_cv_func_gettimeofday</div><div class='add'>+AC_CHECK_FUNCS(getuid)</div><div class='ctx'> AC_CHECK_FUNCS(getuidx)</div><div class='ctx'> AC_CHECK_FUNCS(gmtime_r)</div><div class='ctx'> AC_CHECK_FUNCS(grantpt)</div><div class='hunk'>@@ -1843,6 +2080,7 @@ AC_CHECK_FUNCS(initgroups)</div><div class='ctx'> AC_CHECK_FUNCS(ioctl)</div><div class='ctx'> AC_CHECK_FUNCS(isfinite)</div><div class='ctx'> AC_CHECK_FUNCS(issetugid)</div><div class='add'>+AC_CHECK_FUNCS(kill)</div><div class='ctx'> AC_CHECK_FUNCS(killpg)</div><div class='ctx'> AC_CHECK_FUNCS(lchmod)</div><div class='ctx'> AC_CHECK_FUNCS(lchown)</div><div class='hunk'>@@ -1863,10 +2101,16 @@ AC_CHECK_FUNCS(memmem)</div><div class='ctx'> AC_CHECK_FUNCS(mkfifo)</div><div class='ctx'> AC_CHECK_FUNCS(mknod)</div><div class='ctx'> AC_CHECK_FUNCS(mktime)</div><div class='add'>+AC_CHECK_FUNCS(mmap)</div><div class='add'>+AC_CHECK_FUNCS(mremap)</div><div class='ctx'> AC_CHECK_FUNCS(openat)</div><div class='add'>+AC_CHECK_FUNCS(pclose)</div><div class='add'>+AC_CHECK_FUNCS(pipe)</div><div class='ctx'> AC_CHECK_FUNCS(pipe2)</div><div class='ctx'> AC_CHECK_FUNCS(poll)</div><div class='add'>+AC_CHECK_FUNCS(popen)</div><div class='ctx'> AC_CHECK_FUNCS(posix_fadvise)</div><div class='add'>+AC_CHECK_FUNCS(posix_madvise)</div><div class='ctx'> AC_CHECK_FUNCS(posix_memalign)</div><div class='ctx'> AC_CHECK_FUNCS(ppoll)</div><div class='ctx'> AC_CHECK_FUNCS(pread)</div><div class='hunk'>@@ -1874,6 +2118,7 @@ AC_CHECK_FUNCS(pwrite)</div><div class='ctx'> AC_CHECK_FUNCS(qsort_r)</div><div class='ctx'> AC_CHECK_FUNCS(qsort_s)</div><div class='ctx'> AC_CHECK_FUNCS(readlink)</div><div class='add'>+AC_CHECK_FUNCS(realpath)</div><div class='ctx'> AC_CHECK_FUNCS(round)</div><div class='ctx'> AC_CHECK_FUNCS(sched_getaffinity)</div><div class='ctx'> AC_CHECK_FUNCS(seekdir)</div><div class='hunk'>@@ -1904,24 +2149,32 @@ AC_CHECK_FUNCS(spawnv)</div><div class='ctx'> AC_CHECK_FUNCS(symlink)</div><div class='ctx'> AC_CHECK_FUNCS(syscall)</div><div class='ctx'> AC_CHECK_FUNCS(sysconf)</div><div class='add'>+AC_CHECK_FUNCS(system)</div><div class='ctx'> AC_CHECK_FUNCS(tanh)</div><div class='ctx'> AC_CHECK_FUNCS(telldir)</div><div class='ctx'> AC_CHECK_FUNCS(timegm)</div><div class='ctx'> AC_CHECK_FUNCS(times)</div><div class='ctx'> AC_CHECK_FUNCS(truncate)</div><div class='ctx'> AC_CHECK_FUNCS(truncate64)		# used for Win32</div><div class='add'>+AC_CHECK_FUNCS(tzset)</div><div class='add'>+AC_CHECK_FUNCS(umask)</div><div class='ctx'> AC_CHECK_FUNCS(unsetenv)</div><div class='ctx'> AC_CHECK_FUNCS(utimensat)</div><div class='ctx'> AC_CHECK_FUNCS(utimes)</div><div class='ctx'> AC_CHECK_FUNCS(wait4)</div><div class='ctx'> AC_CHECK_FUNCS(waitpid)</div><div class='add'>+AC_CHECK_FUNCS(__cospi)</div><div class='add'>+AC_CHECK_FUNCS(__sinpi)</div><div class='add'>+</div><div class='add'>+AS_IF([test "x$ac_cv_member_struct_statx_stx_btime" = xyes],</div><div class='add'>+    [AC_CHECK_FUNCS(statx)])</div><div class='ctx'> </div><div class='ctx'> AS_CASE(["$ac_cv_func_memset_s:$ac_cv_func_qsort_s"], [*yes*],</div><div class='ctx'>     [RUBY_DEFINE_IF([!defined __STDC_WANT_LIB_EXT1__], [__STDC_WANT_LIB_EXT1__], 1)])</div><div class='ctx'> </div><div class='ctx'> AS_IF([test "$ac_cv_func_getcwd" = yes], [</div><div class='ctx'>     AC_CACHE_CHECK(if getcwd allocates buffer if NULL is given, [rb_cv_getcwd_malloc],</div><div class='del'>-	[AC_TRY_RUN([</div><div class='add'>+	[AC_RUN_IFELSE([AC_LANG_SOURCE([[</div><div class='ctx'> @%:@include &lt;stddef.h&gt;</div><div class='ctx'> @%:@include &lt;stdio.h&gt;</div><div class='ctx'> @%:@ifdef HAVE_UNISTD_H</div><div class='hunk'>@@ -1940,11 +2193,11 @@ main(int argc, char **argv)</div><div class='ctx'>     if (!getcwd(NULL, 0)) return EXIT_FAILURE;</div><div class='ctx'>     return EXIT_SUCCESS;</div><div class='ctx'> }</div><div class='del'>-],</div><div class='add'>+]])],</div><div class='ctx'> 	    rb_cv_getcwd_malloc=yes,</div><div class='ctx'> 	    rb_cv_getcwd_malloc=no,</div><div class='ctx'> 	    AS_CASE($target_os,</div><div class='del'>-		[linux*|darwin*|*bsd|cygwin*|mingw*|mswin*],</div><div class='add'>+		[linux*|darwin*|*bsd|cygwin*|msys*|mingw*|mswin*],</div><div class='ctx'> 		[rb_cv_getcwd_malloc=yes],</div><div class='ctx'> 		[rb_cv_getcwd_malloc=no]))])</div><div class='ctx'>     AS_IF([test "$rb_cv_getcwd_malloc" = no], [AC_DEFINE(NO_GETCWD_MALLOC, 1)])</div><div class='hunk'>@@ -1985,24 +2238,25 @@ AS_IF([test x$rb_cv_builtin___builtin_choose_expr = xyes], [</div><div class='ctx'> ])</div><div class='ctx'> RUBY_CHECK_BUILTIN_FUNC(__builtin_types_compatible_p, [__builtin_types_compatible_p(int, int)])</div><div class='ctx'> RUBY_CHECK_BUILTIN_FUNC(__builtin_trap, [__builtin_trap()])</div><div class='add'>+RUBY_CHECK_BUILTIN_FUNC(__builtin_expect, [__builtin_expect(0, 0)])</div><div class='ctx'> </div><div class='ctx'> AS_IF([test "$ac_cv_func_qsort_r" != no], [</div><div class='ctx'>   AC_CACHE_CHECK(whether qsort_r is GNU version, rb_cv_gnu_qsort_r,</div><div class='del'>-    [AC_TRY_COMPILE([</div><div class='add'>+    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='ctx'> @%:@include &lt;stdlib.h&gt;</div><div class='ctx'> void (qsort_r)(void *base, size_t nmemb, size_t size,</div><div class='ctx'> 	    int (*compar)(const void *, const void *, void *),</div><div class='ctx'> 	    void *arg);</div><div class='del'>-],[ ],</div><div class='add'>+]], [[ ]])],</div><div class='ctx'>       [rb_cv_gnu_qsort_r=yes],</div><div class='ctx'>       [rb_cv_gnu_qsort_r=no])</div><div class='ctx'>   ])</div><div class='ctx'>   AC_CACHE_CHECK(whether qsort_r is BSD version, rb_cv_bsd_qsort_r,</div><div class='del'>-    [AC_TRY_COMPILE([</div><div class='add'>+    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='ctx'> @%:@include &lt;stdlib.h&gt;</div><div class='ctx'> void (qsort_r)(void *base, size_t nmemb, size_t size,</div><div class='ctx'> 	     void *arg, int (*compar)(void *, const void *, const void *));</div><div class='del'>-],[ ],</div><div class='add'>+]], [[ ]])],</div><div class='ctx'>       [rb_cv_bsd_qsort_r=yes],</div><div class='ctx'>       [rb_cv_bsd_qsort_r=no])</div><div class='ctx'>   ])</div><div class='hunk'>@@ -2017,7 +2271,7 @@ void (qsort_r)(void *base, size_t nmemb, size_t size,</div><div class='ctx'> </div><div class='ctx'> AC_CACHE_CHECK(whether atan2 handles Inf as C99, rb_cv_atan2_inf_c99, [</div><div class='ctx'>     AS_IF([test $ac_cv_func_atan2f:$ac_cv_func_atan2l = yes:yes], [</div><div class='del'>-	AC_TRY_RUN([</div><div class='add'>+	AC_RUN_IFELSE([AC_LANG_SOURCE([[</div><div class='ctx'> @%:@include &lt;math.h&gt;</div><div class='ctx'> @%:@ifdef HAVE_UNISTD_H</div><div class='ctx'> @%:@include &lt;unistd.h&gt;</div><div class='hunk'>@@ -2035,7 +2289,7 @@ main(int argc, char **argv)</div><div class='ctx'>     if (fabs(atan2(INFINITY, INFINITY) - M_PI_4) &lt;= 0.01) return EXIT_SUCCESS;</div><div class='ctx'>     return EXIT_FAILURE;</div><div class='ctx'> }</div><div class='del'>-],</div><div class='add'>+]])],</div><div class='ctx'> 	[rb_cv_atan2_inf_c99=yes],</div><div class='ctx'> 	[rb_cv_atan2_inf_c99=no],</div><div class='ctx'> 	[AS_CASE($target_os, [mingw*|mswin*], [rb_cv_atan2_inf_c99=no], [rb_cv_atan2_inf_c99=yes])]</div><div class='hunk'>@@ -2047,7 +2301,7 @@ AS_IF([test "x$rb_cv_atan2_inf_c99" = xyes], [AC_DEFINE(ATAN2_INF_C99)])</div><div class='ctx'> # Some platform need -lrt for clock_gettime, but the other don't.</div><div class='ctx'> AS_IF([test x"$ac_cv_func_clock_gettime" != xyes], [</div><div class='ctx'>     # glibc 2.17 moves clock_* functions from librt to the main C library.</div><div class='del'>-    # http://sourceware.org/ml/libc-announce/2012/msg00001.html</div><div class='add'>+    # https://sourceware.org/legacy-ml/libc-announce/2012/msg00001.html</div><div class='ctx'>     AC_CHECK_LIB(rt, clock_gettime)</div><div class='ctx'>     AS_IF([test x"$ac_cv_lib_rt_clock_gettime" = xyes], [</div><div class='ctx'> 	AC_DEFINE(HAVE_CLOCK_GETTIME, 1)</div><div class='hunk'>@@ -2064,9 +2318,9 @@ AS_IF([test x"$ac_cv_lib_rt_timer_settime" = xyes], [</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='ctx'> AC_CACHE_CHECK(for unsetenv returns a value, rb_cv_unsetenv_return_value,</div><div class='del'>-  [AC_TRY_COMPILE([</div><div class='add'>+  [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='ctx'> #include &lt;stdlib.h&gt;</div><div class='del'>-], [int v = unsetenv("foo");],</div><div class='add'>+]], [[int v = unsetenv("foo");]])],</div><div class='ctx'> 	rb_cv_unsetenv_return_value=yes,</div><div class='ctx'> 	rb_cv_unsetenv_return_value=no)])</div><div class='ctx'> AS_IF([test "$rb_cv_unsetenv_return_value" = no], [</div><div class='hunk'>@@ -2084,21 +2338,21 @@ AS_IF([test "$use_setreuid" = yes], [</div><div class='ctx'> ])</div><div class='ctx'> AC_STRUCT_TIMEZONE</div><div class='ctx'> AC_CACHE_CHECK(for struct tm.tm_gmtoff, rb_cv_member_struct_tm_tm_gmtoff,</div><div class='del'>-  [AC_TRY_COMPILE([</div><div class='add'>+  [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='ctx'> @%:@define _BSD_SOURCE</div><div class='ctx'> @%:@define _DEFAULT_SOURCE</div><div class='ctx'> @%:@include &lt;time.h&gt;</div><div class='del'>-   ],</div><div class='del'>-    [struct tm t; t.tm_gmtoff = 3600;],</div><div class='add'>+    ]],</div><div class='add'>+    [[struct tm t; t.tm_gmtoff = 3600;]])],</div><div class='ctx'>   [rb_cv_member_struct_tm_tm_gmtoff=yes],</div><div class='ctx'>   [rb_cv_member_struct_tm_tm_gmtoff=no])])</div><div class='ctx'> AS_IF([test "$rb_cv_member_struct_tm_tm_gmtoff" = yes], [</div><div class='ctx'>   AC_DEFINE(HAVE_STRUCT_TM_TM_GMTOFF)</div><div class='ctx'> ])</div><div class='ctx'> AC_CACHE_CHECK(for external int daylight, rb_cv_have_daylight,</div><div class='del'>-  [AC_TRY_LINK([#include &lt;time.h&gt;</div><div class='del'>-  int i;],</div><div class='del'>-	[i = daylight;],</div><div class='add'>+  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include &lt;time.h&gt;</div><div class='add'>+  int i;]],</div><div class='add'>+	[[i = daylight;]])],</div><div class='ctx'> 	rb_cv_have_daylight=yes,</div><div class='ctx'> 	rb_cv_have_daylight=no)])</div><div class='ctx'> AS_IF([test "$rb_cv_have_daylight" = yes], [</div><div class='hunk'>@@ -2106,7 +2360,7 @@ AS_IF([test "$rb_cv_have_daylight" = yes], [</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='ctx'> AC_CACHE_CHECK(for negative time_t for gmtime(3), rb_cv_negative_time_t,</div><div class='del'>-  [AC_TRY_RUN([</div><div class='add'>+  [AC_RUN_IFELSE([AC_LANG_SOURCE([[</div><div class='ctx'> #include &lt;stdlib.h&gt;</div><div class='ctx'> #include &lt;time.h&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -2136,7 +2390,7 @@ main()</div><div class='ctx'>    check(gmtime(&amp;t), 1, 12, 13, 20, 52);</div><div class='ctx'>    return 0;</div><div class='ctx'> }</div><div class='del'>-],</div><div class='add'>+]])],</div><div class='ctx'> 	rb_cv_negative_time_t=yes,</div><div class='ctx'> 	rb_cv_negative_time_t=no,</div><div class='ctx'> 	rb_cv_negative_time_t=yes)])</div><div class='hunk'>@@ -2145,9 +2399,9 @@ AS_IF([test "$rb_cv_negative_time_t" = yes], [</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='ctx'> # [ruby-dev:40910] overflow of time on FreeBSD</div><div class='del'>-# http://www.freebsd.org/cgi/query-pr.cgi?pr=145341</div><div class='add'>+# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=145341</div><div class='ctx'> AC_CACHE_CHECK(for localtime(3) overflow correctly, rb_cv_localtime_overflow,</div><div class='del'>-  [AC_TRY_RUN([</div><div class='add'>+  [AC_RUN_IFELSE([AC_LANG_SOURCE([[</div><div class='ctx'> #include &lt;stdlib.h&gt;</div><div class='ctx'> #include &lt;time.h&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -2179,7 +2433,7 @@ main()</div><div class='ctx'>     check(t);</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='del'>-],</div><div class='add'>+]])],</div><div class='ctx'> 	rb_cv_localtime_overflow=yes,</div><div class='ctx'> 	rb_cv_localtime_overflow=no,</div><div class='ctx'> 	rb_cv_localtime_overflow=no)])</div><div class='hunk'>@@ -2192,7 +2446,7 @@ AS_IF([test "$ac_cv_func_sigprocmask" = yes &amp;&amp; test "$ac_cv_func_sigaction" = ye</div><div class='ctx'> ], [</div><div class='ctx'>   AC_CHECK_FUNCS(sigsetmask)</div><div class='ctx'>   AC_CACHE_CHECK(for BSD signal semantics, rb_cv_bsd_signal,</div><div class='del'>-    [AC_TRY_RUN([</div><div class='add'>+    [AC_RUN_IFELSE([AC_LANG_SOURCE([[</div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='ctx'> #include &lt;signal.h&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -2210,7 +2464,7 @@ main()</div><div class='ctx'>   kill(getpid(), SIGINT);</div><div class='ctx'>   return 0;</div><div class='ctx'> }</div><div class='del'>-],</div><div class='add'>+]])],</div><div class='ctx'> 	rb_cv_bsd_signal=yes,</div><div class='ctx'> 	rb_cv_bsd_signal=no,</div><div class='ctx'> 	rb_cv_bsd_signal=$ac_cv_func_sigsetmask)])</div><div class='hunk'>@@ -2224,7 +2478,7 @@ AC_CHECK_TYPES([sig_t],[],[],[@%:@include &lt;signal.h&gt;])</div><div class='ctx'> AS_IF([test "$ac_cv_func_getpgid" = no], [</div><div class='ctx'>   # AC_FUNC_GETPGRP fails when cross-compiling with old autoconf.</div><div class='ctx'>   # autoconf is changed between 2.52d and 2.52f?</div><div class='del'>-  # http://lists.gnu.org/archive/html/bug-gnu-utils/2001-09/msg00181.html</div><div class='add'>+  # https://lists.gnu.org/archive/html/bug-gnu-utils/2001-09/msg00181.html</div><div class='ctx'>   # "autoconf cleanup for AC_FUNC_GETPGRP and GETPGRP_VOID"</div><div class='ctx'> AC_FUNC_GETPGRP</div><div class='ctx'> ])</div><div class='hunk'>@@ -2243,21 +2497,6 @@ AS_IF([test x"$ac_cv_func_dirfd" = xno], [</div><div class='ctx'> ])])</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='del'>-AS_IF([test x"$target_cpu" = xia64], [</div><div class='del'>-    AC_LIBOBJ([ia64])</div><div class='del'>-    AC_CACHE_CHECK(for __libc_ia64_register_backing_store_base,</div><div class='del'>-                   rb_cv___libc_ia64_register_backing_store_base,</div><div class='del'>-    [rb_cv___libc_ia64_register_backing_store_base=no</div><div class='del'>-    AC_TRY_LINK(</div><div class='del'>-      [extern unsigned long __libc_ia64_register_backing_store_base;],</div><div class='del'>-      [unsigned long p = __libc_ia64_register_backing_store_base;</div><div class='del'>-       printf("%ld\n", p);],</div><div class='del'>-      [rb_cv___libc_ia64_register_backing_store_base=yes])])</div><div class='del'>-    AS_IF([test $rb_cv___libc_ia64_register_backing_store_base = yes], [</div><div class='del'>-      AC_DEFINE(HAVE___LIBC_IA64_REGISTER_BACKING_STORE_BASE)</div><div class='del'>-    ])</div><div class='del'>-])</div><div class='del'>-</div><div class='ctx'> AC_CACHE_CHECK(whether right shift preserve sign bit, rb_cv_rshift_sign,</div><div class='ctx'>     [AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([], [(-1==(-1&gt;&gt;1))])],</div><div class='ctx'> 	rb_cv_rshift_sign=yes,</div><div class='hunk'>@@ -2268,6 +2507,45 @@ AS_IF([test "$rb_cv_rshift_sign" = yes], [</div><div class='ctx'>   AC_DEFINE(RSHIFT(x,y), (((x)&lt;0) ? ~((~(x))&gt;&gt;(int)(y)) : (x)&gt;&gt;(int)(y)))</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='add'>+AS_IF([test "$ac_cv_func_copy_file_range" = no], [</div><div class='add'>+  AC_CACHE_CHECK([for copy_file_range],</div><div class='add'>+    rb_cv_use_copy_file_range,</div><div class='add'>+    [AC_RUN_IFELSE([AC_LANG_SOURCE([[</div><div class='add'>+#include &lt;sys/types.h&gt;</div><div class='add'>+#include &lt;sys/stat.h&gt;</div><div class='add'>+#include &lt;sys/syscall.h&gt;</div><div class='add'>+#include &lt;fcntl.h&gt;</div><div class='add'>+#include &lt;unistd.h&gt;</div><div class='add'>+</div><div class='add'>+#ifndef O_TMPFILE</div><div class='add'>+  #define O_TMPFILE __O_TMPFILE</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+main()</div><div class='add'>+{</div><div class='add'>+#ifdef __NR_copy_file_range</div><div class='add'>+   int ret, fd_in, fd_out;</div><div class='add'>+   fd_in = open("/tmp", O_TMPFILE|O_RDWR, S_IRUSR);</div><div class='add'>+   fd_out = open("/tmp", O_TMPFILE|O_WRONLY, S_IWUSR);</div><div class='add'>+   ret = syscall(__NR_copy_file_range, fd_in, NULL, fd_out, NULL, 0, 0);</div><div class='add'>+   close(fd_in);</div><div class='add'>+   close(fd_out);</div><div class='add'>+   if (ret == -1) { return 1; }</div><div class='add'>+   return 0;</div><div class='add'>+#else</div><div class='add'>+   return 1;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+  ]])],</div><div class='add'>+    [rb_cv_use_copy_file_range=yes],</div><div class='add'>+    [rb_cv_use_copy_file_range=no],</div><div class='add'>+    [rb_cv_use_copy_file_range=no])])</div><div class='add'>+])</div><div class='add'>+AS_CASE(["$ac_cv_func_copy_file_range:$rb_cv_use_copy_file_range"], [*yes*], [</div><div class='add'>+  AC_DEFINE(USE_COPY_FILE_RANGE)</div><div class='add'>+])</div><div class='add'>+</div><div class='ctx'> AS_CASE(["$ac_cv_func_gettimeofday:$ac_cv_func_clock_gettime"],</div><div class='ctx'> [*yes*], [],</div><div class='ctx'> [</div><div class='hunk'>@@ -2309,70 +2587,126 @@ AS_IF([test "${universal_binary-no}" = yes ], [</div><div class='ctx'>     AC_DEFINE_UNQUOTED(STACK_GROW_DIRECTION, $dir)</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='del'>-AC_ARG_ENABLE(fiber-coroutine,</div><div class='del'>-    AS_HELP_STRING([--disable-fiber-coroutine], [disable native coroutine implementation for fiber]),</div><div class='del'>-    [rb_cv_fiber_coroutine=$enableval])</div><div class='del'>-AS_CASE(["$rb_cv_fiber_coroutine"], [yes|''], [</div><div class='del'>-    AC_MSG_CHECKING(native coroutine implementation for ${target_cpu}-${target_os})</div><div class='add'>+AC_ARG_WITH(coroutine,</div><div class='add'>+    AS_HELP_STRING([--with-coroutine=IMPLEMENTATION], [specify the coroutine implementation to use]),</div><div class='add'>+    [coroutine_type=$withval], [coroutine_type=])</div><div class='add'>+AS_CASE([$coroutine_type], [yes|''], [</div><div class='add'>+    coroutine_type=</div><div class='ctx'>     AS_CASE(["$target_cpu-$target_os"],</div><div class='del'>-	[x*64-darwin*], [</div><div class='del'>-	    rb_cv_fiber_coroutine=amd64</div><div class='del'>-	],</div><div class='del'>-	[x*64-linux], [</div><div class='del'>-	    AS_CASE(["$ac_cv_sizeof_voidp"],</div><div class='del'>-	        [8], [ rb_cv_fiber_coroutine=amd64 ],</div><div class='del'>-	        [4], [ rb_cv_fiber_coroutine=x86 ],</div><div class='del'>-		[*], [ rb_cv_fiber_coroutine= ]</div><div class='del'>-	    )</div><div class='del'>-	],</div><div class='del'>-	[*86-linux], [</div><div class='del'>-	    rb_cv_fiber_coroutine=x86</div><div class='del'>-	],</div><div class='del'>-	[x64-mingw32], [</div><div class='del'>-	    rb_cv_fiber_coroutine=win64</div><div class='del'>-	],</div><div class='del'>-	[powerpc64le-linux], [</div><div class='del'>-	    rb_cv_fiber_coroutine=ppc64le</div><div class='del'>-	],</div><div class='del'>-	[*], [</div><div class='del'>-	    rb_cv_fiber_coroutine=</div><div class='del'>-	]</div><div class='add'>+        [universal-darwin*], [</div><div class='add'>+            coroutine_type=universal</div><div class='add'>+        ],</div><div class='add'>+        [x*64-darwin*], [</div><div class='add'>+            coroutine_type=amd64</div><div class='add'>+        ],</div><div class='add'>+        [arm64-darwin*], [</div><div class='add'>+            coroutine_type=arm64</div><div class='add'>+        ],</div><div class='add'>+        # Correct target name is powerpc*-, but Ruby seems to prefer ppc*-.</div><div class='add'>+        # Notice that Darwin PPC ABI differs from AIX and ELF.</div><div class='add'>+        # Adding PPC targets for AIX, *BSD and *Linux will require separate implementations.</div><div class='add'>+        [powerpc-darwin*|ppc-darwin*], [</div><div class='add'>+            coroutine_type=ppc</div><div class='add'>+        ],</div><div class='add'>+        [powerpc64-darwin*|ppc64-darwin*], [</div><div class='add'>+            coroutine_type=ppc64</div><div class='add'>+        ],</div><div class='add'>+        [x*64-linux*], [</div><div class='add'>+            AS_CASE(["$ac_cv_sizeof_voidp"],</div><div class='add'>+                [8], [ coroutine_type=amd64 ],</div><div class='add'>+                [4], [ coroutine_type=x86 ],</div><div class='add'>+                dnl unknown pointer size, bail out as no Context.h soon.</div><div class='add'>+            )</div><div class='add'>+        ],</div><div class='add'>+        [*86-linux*], [</div><div class='add'>+            coroutine_type=x86</div><div class='add'>+        ],</div><div class='add'>+        [x64-mingw*], [</div><div class='add'>+            coroutine_type=win64</div><div class='add'>+        ],</div><div class='add'>+        [*86-mingw*], [</div><div class='add'>+            coroutine_type=win32</div><div class='add'>+        ],</div><div class='add'>+        [arm*-linux*], [</div><div class='add'>+            coroutine_type=arm32</div><div class='add'>+        ],</div><div class='add'>+        [aarch64-linux*], [</div><div class='add'>+            coroutine_type=arm64</div><div class='add'>+        ],</div><div class='add'>+        [powerpc64le-linux*], [</div><div class='add'>+            coroutine_type=ppc64le</div><div class='add'>+        ],</div><div class='add'>+        [riscv64-linux*], [</div><div class='add'>+            coroutine_type=riscv64</div><div class='add'>+        ],</div><div class='add'>+        [x86_64-freebsd*], [</div><div class='add'>+            coroutine_type=amd64</div><div class='add'>+        ],</div><div class='add'>+        [i386-freebsd*], [</div><div class='add'>+            coroutine_type=x86</div><div class='add'>+        ],</div><div class='add'>+        [aarch64-freebsd*], [</div><div class='add'>+            coroutine_type=arm64</div><div class='add'>+        ],</div><div class='add'>+        [x86_64-netbsd*], [</div><div class='add'>+            coroutine_type=amd64</div><div class='add'>+        ],</div><div class='add'>+        [i386-netbsd*], [</div><div class='add'>+            coroutine_type=x86</div><div class='add'>+        ],</div><div class='add'>+        [aarch64-netbsd*], [</div><div class='add'>+            coroutine_type=arm64</div><div class='add'>+        ],</div><div class='add'>+        [x86_64-openbsd*], [</div><div class='add'>+            coroutine_type=amd64</div><div class='add'>+        ],</div><div class='add'>+        [i386-openbsd*], [</div><div class='add'>+            coroutine_type=x86</div><div class='add'>+        ],</div><div class='add'>+        [*-openbsd*], [</div><div class='add'>+            coroutine_type=pthread</div><div class='add'>+        ],</div><div class='add'>+        [x86_64-dragonfly*], [</div><div class='add'>+            coroutine_type=amd64</div><div class='add'>+        ],</div><div class='add'>+        [*-haiku*], [</div><div class='add'>+            coroutine_type=pthread</div><div class='add'>+        ],</div><div class='add'>+        [*-emscripten*], [</div><div class='add'>+            coroutine_type=emscripten</div><div class='add'>+        ],</div><div class='add'>+        [*-wasi*], [</div><div class='add'>+            coroutine_type=asyncify</div><div class='add'>+        ],</div><div class='add'>+        [</div><div class='add'>+            AC_CHECK_FUNCS([getcontext swapcontext makecontext],</div><div class='add'>+                [coroutine_type=ucontext],</div><div class='add'>+                [coroutine_type=pthread; break]</div><div class='add'>+            )</div><div class='add'>+        ]</div><div class='ctx'>     )</div><div class='del'>-    AC_MSG_RESULT(${rb_cv_fiber_coroutine:-no})</div><div class='del'>-])</div><div class='del'>-AS_IF([test "${rb_cv_fiber_coroutine:-no}" != no], [</div><div class='del'>-    COROUTINE_H=coroutine/$rb_cv_fiber_coroutine/Context.h</div><div class='del'>-    AC_DEFINE_UNQUOTED(FIBER_USE_COROUTINE, ["$COROUTINE_H"])</div><div class='del'>-    AC_SUBST(X_FIBER_COROUTINE_H, [$COROUTINE_H])</div><div class='del'>-])</div><div class='del'>-</div><div class='del'>-AS_IF([test x"$enable_pthread" = xyes], [</div><div class='del'>-    for pthread_lib in thr pthread pthreads c c_r root; do</div><div class='del'>-	AC_CHECK_LIB($pthread_lib, pthread_create,</div><div class='del'>-		     rb_with_pthread=yes, rb_with_pthread=no)</div><div class='del'>-	AS_IF([test "$rb_with_pthread" = "yes"], [break])</div><div class='del'>-    done</div><div class='del'>-    AS_IF([test x"$rb_with_pthread" = xyes], [</div><div class='del'>-	AC_DEFINE(_REENTRANT)</div><div class='del'>-	AC_DEFINE(_THREAD_SAFE)</div><div class='del'>-	AC_DEFINE(HAVE_LIBPTHREAD)</div><div class='del'>-	AC_CHECK_HEADERS(pthread_np.h, [], [], [@%:@include &lt;pthread.h&gt;])</div><div class='del'>-	AS_CASE(["$pthread_lib:$target_os"],</div><div class='del'>-		[c:*], [],</div><div class='del'>-		[root:*], [],</div><div class='del'>-		[c_r:*|*:openbsd*|*:mirbsd*],  [LIBS="-pthread $LIBS"],</div><div class='del'>-		[LIBS="-l$pthread_lib $LIBS"])</div><div class='del'>-    ], [</div><div class='del'>-	AC_MSG_WARN("Don't know how to find pthread library on your system -- thread support disabled")</div><div class='del'>-    ])</div><div class='add'>+    AC_MSG_CHECKING(native coroutine implementation for ${target_cpu}-${target_os})</div><div class='add'>+    AC_MSG_RESULT(${coroutine_type})</div><div class='add'>+])</div><div class='add'>+COROUTINE_H=coroutine/$coroutine_type/Context.h</div><div class='add'>+AS_IF([test ! -f "$srcdir/$COROUTINE_H"],</div><div class='add'>+      [AC_MSG_ERROR('$coroutine_type' is not supported as coroutine)])</div><div class='add'>+COROUTINE_SRC=coroutine/$coroutine_type/Context.c</div><div class='add'>+AS_IF([test ! -f "$srcdir/$COROUTINE_SRC"],</div><div class='add'>+      [COROUTINE_SRC=coroutine/$coroutine_type/Context.'$(ASMEXT)'])</div><div class='add'>+AC_DEFINE_UNQUOTED(COROUTINE_H, ["$COROUTINE_H"])</div><div class='add'>+AC_SUBST(X_COROUTINE_H, [$COROUTINE_H])</div><div class='add'>+AC_SUBST(X_COROUTINE_SRC, [$COROUTINE_SRC])</div><div class='add'>+</div><div class='add'>+AS_IF([test "$THREAD_MODEL" = pthread], [</div><div class='ctx'>     AC_CACHE_CHECK([whether pthread_t is scalar type], [rb_cv_scalar_pthread_t], [</div><div class='del'>-	AC_TRY_COMPILE([</div><div class='add'>+	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='ctx'> 	    @%:@include &lt;pthread.h&gt;</div><div class='del'>-	    ], [</div><div class='add'>+	    ]], [[</div><div class='ctx'> 	    pthread_t thread_id;</div><div class='ctx'> 	    thread_id = 0;</div><div class='ctx'> 	    if (!thread_id) return 0;</div><div class='del'>-	    ], [rb_cv_scalar_pthread_t=yes], [rb_cv_scalar_pthread_t=no])</div><div class='add'>+	    ]])],[rb_cv_scalar_pthread_t=yes],[rb_cv_scalar_pthread_t=no])</div><div class='ctx'>     ])</div><div class='ctx'>     AS_IF([test x"$rb_cv_scalar_pthread_t" = xyes], [</div><div class='ctx'> 	: # RUBY_CHECK_SIZEOF(pthread_t, [void* int long], [], [@%:@include &lt;pthread.h&gt;])</div><div class='hunk'>@@ -2384,28 +2718,29 @@ AS_IF([test x"$enable_pthread" = xyes], [</div><div class='ctx'> 	pthread_get_stackaddr_np pthread_get_stacksize_np \</div><div class='ctx'> 	thr_stksegment pthread_stackseg_np pthread_getthrds_np \</div><div class='ctx'> 	pthread_condattr_setclock \</div><div class='del'>-	pthread_sigmask pthread_setname_np pthread_set_name_np)</div><div class='add'>+	pthread_setname_np pthread_set_name_np)</div><div class='add'>+    AS_CASE(["$target_os"],[emscripten*],[ac_cv_func_pthread_sigmask=no],[AC_CHECK_FUNCS(pthread_sigmask)])</div><div class='ctx'>     AS_CASE(["$target_os"],[aix*],[ac_cv_func_pthread_getattr_np=no],[AC_CHECK_FUNCS(pthread_getattr_np)])</div><div class='ctx'>     set_current_thread_name=</div><div class='ctx'>     AS_IF([test "$ac_cv_func_pthread_setname_np" = yes], [</div><div class='ctx'> 	AC_CACHE_CHECK([arguments of pthread_setname_np], [rb_cv_func_pthread_setname_np_arguments],</div><div class='ctx'> 	    [rb_cv_func_pthread_setname_np_arguments=</div><div class='ctx'> 	    # Linux,AIX,  (pthread_self(), name)</div><div class='del'>-	    # NetBSD (pthread_self(), name, \"%s\")</div><div class='add'>+	    # NetBSD (pthread_self(), \"%s\", name)</div><div class='ctx'> 	    # Darwin (name)</div><div class='ctx'> 	    for mac in \</div><div class='ctx'> 		"(pthread_self(), name)" \</div><div class='del'>-		"(pthread_self(), name, \"%s\")" \</div><div class='add'>+		"(pthread_self(), \"%s\", name)" \</div><div class='ctx'> 		"(name)" \</div><div class='ctx'> 		; do</div><div class='del'>-		AC_TRY_COMPILE([</div><div class='add'>+		AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='ctx'> 		    @%:@include &lt;pthread.h&gt;</div><div class='ctx'> 		    @%:@ifdef HAVE_PTHREAD_NP_H</div><div class='ctx'> 		    @%:@include &lt;pthread_np.h&gt;</div><div class='ctx'> 		    @%:@endif</div><div class='ctx'> 		    @%:@define SET_THREAD_NAME(name) pthread_setname_np${mac}</div><div class='del'>-		    ],</div><div class='del'>-		    [if (SET_THREAD_NAME("conftest")) return 1;],</div><div class='add'>+		    ]],</div><div class='add'>+		    [[if (SET_THREAD_NAME("conftest")) return 1;]])],</div><div class='ctx'> 		    [rb_cv_func_pthread_setname_np_arguments="${mac}"</div><div class='ctx'> 		    break])</div><div class='ctx'> 	    done</div><div class='hunk'>@@ -2429,8 +2764,8 @@ AS_IF([test x"$enable_pthread" = xyes], [</div><div class='ctx'> </div><div class='ctx'> AS_IF([test x"$ac_cv_header_ucontext_h" = xno], [</div><div class='ctx'>     AC_CACHE_CHECK([if signal.h defines ucontext_t], [rb_cv_ucontext_in_signal_h],</div><div class='del'>-	[AC_TRY_COMPILE([@%:@include &lt;signal.h&gt;],</div><div class='del'>-	[size_t size = sizeof(ucontext_t);],</div><div class='add'>+	[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include &lt;signal.h&gt;]],</div><div class='add'>+					    [[size_t size = sizeof(ucontext_t);]])],</div><div class='ctx'> 	[rb_cv_ucontext_in_signal_h=yes], [rb_cv_ucontext_in_signal_h=no])])</div><div class='ctx'>     AS_IF([test x"$rb_cv_ucontext_in_signal_h" = xyes], [</div><div class='ctx'> 	    AC_DEFINE_UNQUOTED(UCONTEXT_IN_SIGNAL_H, 1)</div><div class='hunk'>@@ -2438,28 +2773,28 @@ AS_IF([test x"$ac_cv_header_ucontext_h" = xno], [</div><div class='ctx'> ])</div><div class='ctx'> AS_IF([test x"$ac_cv_header_ucontext_h" = xyes -o x"$rb_cv_ucontext_in_signal_h" = xyes], [</div><div class='ctx'>     AC_CACHE_CHECK([if mcontext_t is a pointer], [rb_cv_mcontext_t_ptr],</div><div class='del'>-	[AC_TRY_COMPILE([</div><div class='add'>+	[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='ctx'> 	    @%:@include &lt;signal.h&gt;</div><div class='ctx'> 	    @%:@ifdef HAVE_UCONTEXT_H</div><div class='ctx'> 	    @%:@include &lt;ucontext.h&gt;</div><div class='ctx'> 	    @%:@endif</div><div class='ctx'>         mcontext_t test(mcontext_t mc) {return mc+1;}</div><div class='del'>-	],</div><div class='del'>-	[test(0);],</div><div class='add'>+	  ]],</div><div class='add'>+	  [[test(0);]])],</div><div class='ctx'> 	[rb_cv_mcontext_t_ptr=yes], [rb_cv_mcontext_t_ptr=no])])</div><div class='ctx'>     AS_IF([test x"$rb_cv_mcontext_t_ptr" = xyes], [</div><div class='ctx'> 	AC_DEFINE_UNQUOTED(DEFINE_MCONTEXT_PTR(mc, uc), mcontext_t mc = (uc)-&gt;uc_mcontext)</div><div class='ctx'>     ], [</div><div class='ctx'> 	AC_DEFINE_UNQUOTED(DEFINE_MCONTEXT_PTR(mc, uc), mcontext_t *mc = &amp;(uc)-&gt;uc_mcontext)</div><div class='ctx'>     ])</div><div class='del'>-    AS_IF([test x"$rb_with_pthread" = xyes], [</div><div class='add'>+    AS_IF([test x"$THREAD_MODEL" = xpthread], [</div><div class='ctx'> 	AC_CHECK_FUNCS(getcontext setcontext)</div><div class='ctx'>     ])</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='del'>-AS_IF([test "$ac_cv_func_fork_works" = "yes" -a "$rb_with_pthread" = "yes"], [</div><div class='add'>+AS_IF([test "$ac_cv_func_fork_works" = "yes" -a x"$THREAD_MODEL" = xpthread], [</div><div class='ctx'>     AC_CACHE_CHECK([if fork works with pthread], rb_cv_fork_with_pthread,</div><div class='del'>-	[AC_TRY_RUN([</div><div class='add'>+	[AC_RUN_IFELSE([AC_LANG_SOURCE([[</div><div class='ctx'> #include &lt;stdlib.h&gt;</div><div class='ctx'> #include &lt;unistd.h&gt;</div><div class='ctx'> #include &lt;pthread.h&gt;</div><div class='hunk'>@@ -2515,45 +2850,76 @@ main(int argc, char *argv[])</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return EXIT_SUCCESS;</div><div class='del'>-}],</div><div class='add'>+}]])],</div><div class='ctx'> 	rb_cv_fork_with_pthread=yes,</div><div class='ctx'> 	rb_cv_fork_with_pthread=no,</div><div class='ctx'> 	rb_cv_fork_with_pthread=yes)])</div><div class='ctx'>     test x$rb_cv_fork_with_pthread = xyes || AC_DEFINE(CANNOT_FORK_WITH_PTHREAD)</div><div class='ctx'> ])</div><div class='add'>+</div><div class='add'>+AC_CHECK_HEADERS([sys/user.h])</div><div class='add'>+AS_IF([test "x$ac_cv_func_mmap" = xyes], [</div><div class='add'>+    AC_CACHE_CHECK([whether PAGE_SIZE is compile-time const], rb_cv_const_page_size,</div><div class='add'>+	[malloc_headers=`sed -n '/MALLOC_HEADERS_BEGIN/,/MALLOC_HEADERS_END/p' ${srcdir}/gc.c`</div><div class='add'>+	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$malloc_headers</div><div class='add'>+            typedef char conftest_page[PAGE_SIZE];</div><div class='add'>+        ]], [[]])],</div><div class='add'>+        [rb_cv_const_page_size=yes],</div><div class='add'>+        [rb_cv_const_page_size=no])])</div><div class='add'>+])</div><div class='add'>+AS_IF([test "x$rb_cv_const_page_size" = xyes],</div><div class='add'>+    [AC_DEFINE(HAVE_CONST_PAGE_SIZE, 1)],</div><div class='add'>+    [AC_DEFINE(HAVE_CONST_PAGE_SIZE, 0)]</div><div class='add'>+)</div><div class='add'>+</div><div class='add'>+AS_IF([test "x$ac_cv_func_ioctl" = xyes], [</div><div class='add'>+    AC_CACHE_CHECK([ioctl request type], rb_cv_ioctl_request_type,</div><div class='add'>+        [rb_cv_ioctl_request_type=no</div><div class='add'>+        dnl corresponding NUM2IOCTLREQ needs to be defined</div><div class='add'>+        for type in "unsigned long:ULONG_MAX" int:INT_MAX; do</div><div class='add'>+            max=`echo $type | sed 's/.*://'`</div><div class='add'>+            type=`echo $type | sed 's/:.*//'`</div><div class='add'>+            RUBY_WERROR_FLAG([</div><div class='add'>+                AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[</div><div class='add'>+                    @%:@include &lt;limits.h&gt;</div><div class='add'>+                    @%:@include &lt;sys/types.h&gt;</div><div class='add'>+                    @%:@if defined(HAVE_SYS_IOCTL_H) &amp;&amp; !defined(_WIN32)</div><div class='add'>+                    @%:@include &lt;sys/ioctl.h&gt;</div><div class='add'>+                    @%:@endif</div><div class='add'>+                ]], [[</div><div class='add'>+                    $type req = $max;</div><div class='add'>+                    if (ioctl(0, req)) {/* do nothing*/};</div><div class='add'>+                ]])],</div><div class='add'>+                [rb_cv_ioctl_request_type="$type"])</div><div class='add'>+            ])</div><div class='add'>+            test "x$rb_cv_ioctl_request_type" = xno || break</div><div class='add'>+        done])</div><div class='add'>+    AS_CASE(["$rb_cv_ioctl_request_type"], [no|int], [],</div><div class='add'>+    ["unsigned long"], [</div><div class='add'>+        AC_DEFINE_UNQUOTED(IOCTL_REQ_TYPE, [$rb_cv_ioctl_request_type])</div><div class='add'>+        AC_DEFINE_UNQUOTED(NUM2IOCTLREQ(num), [NUM2ULONG(num)])</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> : "runtime section" &amp;&amp; {</div><div class='ctx'> dnl wheather use dln_a_out or not</div><div class='ctx'> AC_ARG_WITH(dln-a-out,</div><div class='del'>-	AS_HELP_STRING([--with-dln-a-out], [use dln_a_out if possible]),</div><div class='add'>+	AS_HELP_STRING([--with-dln-a-out], [dln_a_out is deprecated]),</div><div class='ctx'> 	[</div><div class='ctx'> 	AS_CASE([$withval],</div><div class='ctx'> 	[yes], [</div><div class='del'>-	    AS_IF([test "$enable_shared" = yes], [</div><div class='del'>-		AC_MSG_ERROR(dln_a_out can not make shared library)</div><div class='del'>-	    ])</div><div class='del'>-	    with_dln_a_out=yes],</div><div class='del'>-	[</div><div class='del'>-	    with_dln_a_out=no])], [with_dln_a_out=no])</div><div class='del'>-</div><div class='del'>-AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf,</div><div class='del'>-[AC_TRY_LINK([],[], [</div><div class='del'>-AS_CASE(["`head -1 conftest$EXEEXT | tr -dc '\177ELF' | tr '\177' .`"],</div><div class='del'>-[.ELF*], [rb_cv_binary_elf=yes], [rb_cv_binary_elf=no])],</div><div class='del'>-rb_cv_binary_elf=no)])</div><div class='add'>+	    AC_MSG_ERROR(dln_a_out no longer supported)</div><div class='add'>+	])</div><div class='add'>+])</div><div class='ctx'> </div><div class='ctx'> AS_IF([test "$rb_cv_binary_elf" = yes], [</div><div class='ctx'>   AC_DEFINE(USE_ELF)</div><div class='del'>-  AS_IF([test "$with_dln_a_out" = yes], [</div><div class='del'>-    AC_MSG_ERROR(dln_a_out does not work with ELF)</div><div class='del'>-  ])</div><div class='ctx'>   AC_CHECK_HEADERS([elf.h elf_abi.h])</div><div class='ctx'>   AS_IF([test $ac_cv_header_elf_h = yes -o $ac_cv_header_elf_abi_h = yes], [</div><div class='ctx'>     AC_LIBOBJ([addr2line])</div><div class='del'>-    AS_IF([test "x$compress_debug_sections" = xzlib], [</div><div class='del'>-      AC_CHECK_LIB([z], [uncompress])</div><div class='del'>-    ])</div><div class='add'>+    AC_CHECK_LIB([z], [uncompress])</div><div class='ctx'>   ])</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='hunk'>@@ -2565,20 +2931,24 @@ AS_IF([test "$ac_cv_header_mach_o_loader_h" = yes], [</div><div class='ctx'> AS_CASE(["$target_os"],</div><div class='ctx'> [linux* | gnu* | k*bsd*-gnu | bsdi* | kopensolaris*-gnu], [</div><div class='ctx'>     AS_IF([test "$rb_cv_binary_elf" = no], [</div><div class='del'>-	with_dln_a_out=yes</div><div class='add'>+	AC_MSG_ERROR(Not ELF)</div><div class='ctx'>     ], [</div><div class='ctx'> 	LDFLAGS="$LDFLAGS -rdynamic"</div><div class='ctx'>     ])])</div><div class='ctx'> LIBEXT=a</div><div class='ctx'> </div><div class='add'>+AC_ARG_WITH(mjit-tabs,</div><div class='add'>+    AS_HELP_STRING([--without-mjit-tabs], [expand tabs in mjit header]),</div><div class='add'>+    [AS_IF([test $withval = no], [MJIT_TABS=false])])</div><div class='add'>+AC_SUBST(MJIT_TABS)dnl</div><div class='ctx'> AC_SUBST(DLDFLAGS)dnl</div><div class='ctx'> AC_SUBST(ARCH_FLAG)dnl</div><div class='ctx'> AC_SUBST(MJIT_HEADER_FLAGS)dnl</div><div class='ctx'> AC_SUBST(MJIT_HEADER_INSTALL_DIR)dnl</div><div class='ctx'> AC_SUBST(MJIT_CC)dnl</div><div class='del'>-AS_IF([test "$GCC" = "yes"], [</div><div class='del'>-    AS_CASE(["$target_os"],[aix*],[mjit_std_cflag="-std=gnu99"])</div><div class='del'>-])</div><div class='add'>+AS_CASE(["$GCC:$target_os"],</div><div class='add'>+    [yes:aix*], [mjit_std_cflag="-std=gnu99"],</div><div class='add'>+    [mjit_std_cflag=])</div><div class='ctx'> AC_SUBST(MJIT_CFLAGS, [${MJIT_CFLAGS-"-w ${mjit_std_cflag} ${orig_cflags}"}])dnl</div><div class='ctx'> AC_SUBST(MJIT_OPTFLAGS, [${MJIT_OPTFLAGS-'$(optflags)'}])dnl</div><div class='ctx'> AC_SUBST(MJIT_DEBUGFLAGS, [${MJIT_DEBUGFLAGS-'$(debugflags)'}])dnl</div><div class='hunk'>@@ -2589,13 +2959,12 @@ AC_SUBST(CCDLFLAGS)dnl</div><div class='ctx'> AC_SUBST(LDSHARED)dnl</div><div class='ctx'> AC_SUBST(LDSHAREDXX)dnl</div><div class='ctx'> AC_SUBST(DLEXT)dnl</div><div class='del'>-AC_SUBST(DLEXT2)dnl</div><div class='ctx'> AC_SUBST(LIBEXT)dnl</div><div class='ctx'> AC_SUBST(ASMEXT, S)dnl</div><div class='ctx'> </div><div class='ctx'> STATIC=</div><div class='ctx'> </div><div class='del'>-AS_IF([test "$with_dln_a_out" != yes], [</div><div class='add'>+: "dlopen" &amp;&amp; {</div><div class='ctx'>   rb_cv_dlopen=unknown</div><div class='ctx'>   AC_MSG_CHECKING(whether OS depend dynamic link works)</div><div class='ctx'>   AS_IF([test "$GCC" = yes], [</div><div class='hunk'>@@ -2609,30 +2978,37 @@ AS_IF([test "$with_dln_a_out" != yes], [</div><div class='ctx'>       # mkmf.rb's have_header() to fail if the desired resource happens to be</div><div class='ctx'>       # installed in the /usr/local tree.</div><div class='ctx'>       RUBY_APPEND_OPTION(CCDLFLAGS, -fno-common)],</div><div class='del'>-    [bsdi*|cygwin*|mingw*|aix*|interix*], [ ],</div><div class='add'>+    [bsdi*|cygwin*|msys*|mingw*|aix*|interix*], [ ],</div><div class='ctx'>     [</div><div class='ctx'>       RUBY_APPEND_OPTION(CCDLFLAGS, -fPIC)])</div><div class='ctx'>   ], [</div><div class='ctx'>     AS_CASE(["$target_os"],</div><div class='del'>-	[hpux*],          [CCDLFLAGS="$CCDLFLAGS +Z"],</div><div class='ctx'> 	[solaris*|irix*], [CCDLFLAGS="$CCDLFLAGS -KPIC"],</div><div class='ctx'> 	[sunos*],         [CCDLFLAGS="$CCDLFLAGS -PIC"],</div><div class='ctx'> 	[esix*|uxpds*],   [CCDLFLAGS="$CCDLFLAGS -KPIC"],</div><div class='ctx'> 	                  [: ${CCDLFLAGS=""}])</div><div class='ctx'>   ])</div><div class='add'>+}</div><div class='ctx'> </div><div class='add'>+EXTSTATIC=</div><div class='add'>+AC_SUBST(EXTSTATIC)dnl</div><div class='add'>+AC_ARG_WITH(static-linked-ext,</div><div class='add'>+	    AS_HELP_STRING([--with-static-linked-ext], [link external modules statically]),</div><div class='add'>+            [AS_CASE([$withval],[yes],[STATIC=;EXTSTATIC=static],[no],[],[EXTSTATIC="$withval"])])</div><div class='add'>+AS_CASE([",$EXTSTATIC,"], [,static,|*,enc,*], [</div><div class='add'>+  ENCOBJS='enc/encinit.$(OBJEXT) enc/libenc.$(LIBEXT) enc/libtrans.$(LIBEXT)'</div><div class='add'>+  EXTOBJS='ext/extinit.$(OBJEXT)'</div><div class='add'>+  AC_DEFINE_UNQUOTED(EXTSTATIC, 1)</div><div class='add'>+  AC_SUBST(ENCSTATIC, static)</div><div class='add'>+], [</div><div class='add'>+  ENCOBJS='dmyenc.$(OBJEXT)'</div><div class='add'>+  EXTOBJS='dmyext.$(OBJEXT)'</div><div class='add'>+])</div><div class='add'>+AC_SUBST(ENCOBJS)</div><div class='add'>+AC_SUBST(EXTOBJS)</div><div class='ctx'> </div><div class='del'>-  AC_ARG_ENABLE(rpath,</div><div class='del'>-       AS_HELP_STRING([--enable-rpath], [embed run path into extension libraries.</div><div class='del'>-       enabled by default on ELF platforms]),</div><div class='del'>-       [enable_rpath=$enableval], [enable_rpath="$rb_cv_binary_elf"])</div><div class='del'>-</div><div class='del'>-  AS_CASE(["$target_os"],</div><div class='del'>-	[hpux*], [	DLDFLAGS="$DLDFLAGS -E"</div><div class='del'>-			: ${LDSHARED='$(LD) -b'}</div><div class='del'>-			XLDFLAGS="$XLDFLAGS -Wl,-E"</div><div class='del'>-			: ${LIBPATHENV=SHLIB_PATH}</div><div class='del'>-			rb_cv_dlopen=yes],</div><div class='add'>+: "rpath" &amp;&amp; {</div><div class='add'>+    AS_CASE(["$target_os"],</div><div class='ctx'> 	[solaris*], [	AS_IF([test "$GCC" = yes], [</div><div class='ctx'> 			    : ${LDSHARED='$(CC) -shared'}</div><div class='ctx'> 			    AS_IF([test "$rb_cv_prog_gnu_ld" = yes], [</div><div class='hunk'>@@ -2672,7 +3048,6 @@ AS_IF([test "$with_dln_a_out" != yes], [</div><div class='ctx'> 			rb_cv_dlopen=yes],</div><div class='ctx'> 	[interix*], [	: ${LDSHARED='$(CC) -shared'}</div><div class='ctx'> 			XLDFLAGS="$XLDFLAGS -Wl,-E"</div><div class='del'>-			LIBPATHFLAG=" -L%1\$-s"</div><div class='ctx'> 			rb_cv_dlopen=yes],</div><div class='ctx'> 	[freebsd*|dragonfly*], [</div><div class='ctx'> 			: ${LDSHARED='$(CC) -shared'}</div><div class='hunk'>@@ -2691,8 +3066,16 @@ AS_IF([test "$with_dln_a_out" != yes], [</div><div class='ctx'> 	[darwin*], [	: ${LDSHARED='$(CC) -dynamic -bundle'}</div><div class='ctx'> 			: ${DLDSHARED='$(CC) -dynamiclib'}</div><div class='ctx'> 			: ${LDFLAGS=""}</div><div class='del'>-			: ${LIBPATHENV=DYLD_FALLBACK_LIBRARY_PATH}</div><div class='add'>+			: ${LIBPATHENV=DYLD_LIBRARY_PATH}</div><div class='ctx'> 			: ${PRELOADENV=DYLD_INSERT_LIBRARIES}</div><div class='add'>+                        AS_IF([test x"$enable_shared" = xyes], [</div><div class='add'>+                            # Resolve symbols from libruby.dylib when --enable-shared</div><div class='add'>+                            EXTDLDFLAGS='$(LIBRUBYARG_SHARED)'</div><div class='add'>+                        ], [test "x$EXTSTATIC" = x], [</div><div class='add'>+                            # When building exts as bundles, a mach-o bundle needs to know its loader</div><div class='add'>+                            # program to bind symbols from the ruby executable</div><div class='add'>+                            EXTDLDFLAGS="-bundle_loader '\$(BUILTRUBY)'"</div><div class='add'>+			])</div><div class='ctx'> 			rb_cv_dlopen=yes],</div><div class='ctx'>         [aix*], [	: ${LDSHARED='$(CC)'}</div><div class='ctx'> 			AS_IF([test "$GCC" = yes], [</div><div class='hunk'>@@ -2713,7 +3096,7 @@ AS_IF([test "$with_dln_a_out" != yes], [</div><div class='ctx'> 			: ${LDSHARED='$(LD) -Bshareable -x'}</div><div class='ctx'> 			LDFLAGS="$LDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"</div><div class='ctx'> 			rb_cv_dlopen=yes],</div><div class='del'>-	[cygwin*|mingw*], [</div><div class='add'>+	[cygwin*|msys*|mingw*], [</div><div class='ctx'> 			: ${LDSHARED='$(CC) -shared'}</div><div class='ctx'> 			XLDFLAGS="$XLDFLAGS -Wl,--stack,0x00200000,--enable-auto-import"</div><div class='ctx'> 			DLDFLAGS="${DLDFLAGS} -Wl,--enable-auto-image-base,--enable-auto-import"</div><div class='hunk'>@@ -2724,30 +3107,36 @@ AS_IF([test "$with_dln_a_out" != yes], [</div><div class='ctx'> 	[atheos*], [	: ${LDSHARED='$(CC) -shared'}</div><div class='ctx'> 			rb_cv_dlopen=yes],</div><div class='ctx'> 	[	: ${LDSHARED='$(LD)'}])</div><div class='del'>-  AC_MSG_RESULT($rb_cv_dlopen)</div><div class='add'>+    AC_MSG_RESULT($rb_cv_dlopen)</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-  AS_IF([test "$rb_cv_dlopen" = yes], [</div><div class='add'>+AS_IF([test "$rb_cv_dlopen" = yes], [</div><div class='ctx'>     AS_CASE(["$target_os"],</div><div class='del'>-      [darwin*], [</div><div class='add'>+    [darwin*], [</div><div class='add'>+        AC_SUBST(ADDITIONAL_DLDFLAGS, "")</div><div class='ctx'> 	for flag in \</div><div class='del'>-	  "-undefined dynamic_lookup" \</div><div class='ctx'> 	  "-multiply_defined suppress" \</div><div class='add'>+	  "-undefined dynamic_lookup" \</div><div class='ctx'> 	  ; do</div><div class='del'>-	  test "x${linker_flag}" = x || flag="${linker_flag}`echo ${flag} | tr ' ' ,`"</div><div class='del'>-	  RUBY_TRY_LDFLAGS([$flag], [], [flag=])</div><div class='del'>-	  AS_IF([test "x$flag" != x], [</div><div class='del'>-	    RUBY_APPEND_OPTIONS(DLDFLAGS, [$flag])</div><div class='del'>-	  ])</div><div class='add'>+            test "x${linker_flag}" = x || flag="${linker_flag}`echo ${flag} | tr ' ' ,`"</div><div class='add'>+            RUBY_TRY_LDFLAGS([$flag], [], [flag=])</div><div class='add'>+            AS_IF([test x"$flag" = x], [continue])</div><div class='add'>+</div><div class='add'>+            AC_MSG_CHECKING([whether $flag is accepted for bundle])</div><div class='add'>+            : &gt; conftest.c</div><div class='add'>+            AS_IF([${LDSHARED%%'$(CC)'*}$CC${LDSHARED@%:@*'$(CC)'} -o conftest.bundle $flag conftest.c &gt;/dev/null 2&gt;conftest.err &amp;&amp;</div><div class='add'>+                test ! -s conftest.err], [</div><div class='add'>+                AC_MSG_RESULT([yes])</div><div class='add'>+                RUBY_APPEND_OPTIONS(DLDFLAGS, [$flag])</div><div class='add'>+            ], [</div><div class='add'>+                AC_MSG_RESULT([no])</div><div class='add'>+                RUBY_APPEND_OPTIONS(ADDITIONAL_DLDFLAGS, [$flag])</div><div class='add'>+            ])</div><div class='add'>+            rm -fr conftest.*</div><div class='ctx'> 	done</div><div class='del'>-      ])</div><div class='del'>-  ])</div><div class='del'>-</div><div class='del'>-  AS_IF([test "$enable_rpath:${RPATHFLAG}" = yes:], [</div><div class='del'>-      AS_IF([test "x$rpathflag" != x], [</div><div class='del'>-	  RPATHFLAG=" ${rpathflag}%1\$-s"</div><div class='del'>-      ])</div><div class='del'>-  ])</div><div class='add'>+    ])</div><div class='ctx'> ])</div><div class='add'>+</div><div class='ctx'> AS_IF([test "${LDSHAREDXX}" = ""], [</div><div class='ctx'>     AS_CASE(["${LDSHARED}"],</div><div class='ctx'> 	[*'$(CC)'*], [</div><div class='hunk'>@@ -2762,7 +3151,6 @@ AS_IF([test "${LDSHAREDXX}" = ""], [</div><div class='ctx'> 	[ld" "*], [</div><div class='ctx'> 	    ])</div><div class='ctx'> ])</div><div class='del'>-AS_CASE([${RPATHFLAG}],[*'%1$'*],[: ${LIBPATHFLAG=' -L%1$-s'}],[: ${LIBPATHFLAG=' -L%s'}])</div><div class='ctx'> </div><div class='ctx'> AC_SUBST(LINK_SO)</div><div class='ctx'> AC_SUBST(LIBPATHFLAG)</div><div class='hunk'>@@ -2771,23 +3159,6 @@ AC_SUBST(LIBPATHENV, "${LIBPATHENV-LD_LIBRARY_PATH}")</div><div class='ctx'> AC_SUBST(PRELOADENV, "${PRELOADENV-LD_PRELOAD}")</div><div class='ctx'> AC_SUBST(TRY_LINK)</div><div class='ctx'> </div><div class='del'>-AS_IF([test "x$OPT_DIR" != x], [</div><div class='del'>-    pat=`echo "${LDFLAGS_OPTDIR}" | sed ['s/[][\\.*|]/\\\\&amp;/']`</div><div class='del'>-    LDFLAGS=`echo "${LDFLAGS}" | sed "s| ${pat}||"`</div><div class='del'>-    val=`IFS="$PATH_SEPARATOR"</div><div class='del'>-        for dir in $OPT_DIR; do</div><div class='del'>-            echo x ${LIBPATHFLAG} ${RPATHFLAG} |</div><div class='del'>-            sed "s/^x *//;s${IFS}"'%1\\$-s'"${IFS}${dir}/lib${IFS}g;s${IFS}%s${IFS}${dir}/lib${IFS}g"</div><div class='del'>-        done | tr '\012' ' ' | sed 's/ *$//'`</div><div class='del'>-    AS_IF([test x"$val" != x], [</div><div class='del'>-	test x"${LDFLAGS}" = x || LDFLAGS="$LDFLAGS "</div><div class='del'>-	LDFLAGS="$LDFLAGS$val"</div><div class='del'>-	test x"${DLDFLAGS}" = x || DLDFLAGS="$DLDFLAGS "</div><div class='del'>-	DLDFLAGS="$DLDFLAGS$val"</div><div class='del'>-    ])</div><div class='del'>-    LDFLAGS_OPTDIR="$val"</div><div class='del'>-])</div><div class='del'>-</div><div class='ctx'> AS_CASE(["$target_os"],</div><div class='ctx'> [freebsd*], [</div><div class='ctx'>     AC_CHECK_LIB([procstat], [procstat_open_sysctl])</div><div class='hunk'>@@ -2797,10 +3168,20 @@ AS_CASE(["$target_os"],</div><div class='ctx'>     ])</div><div class='ctx'> AS_CASE(["$target_cpu-$target_os"],</div><div class='ctx'> [*-darwin*], [</div><div class='add'>+    AC_CHECK_HEADERS([libproc.h])</div><div class='ctx'>     AC_CHECK_HEADERS([execinfo.h])</div><div class='ctx'>     AS_IF([test "x$ac_cv_header_execinfo_h" = xyes], [</div><div class='ctx'> 	AC_CHECK_LIB([execinfo], [backtrace])</div><div class='ctx'> 	AC_CHECK_HEADERS([libunwind.h])</div><div class='add'>+</div><div class='add'>+    AC_CHECK_HEADERS([mach/task.h mach/mach_init.h mach/mach_port.h])</div><div class='add'>+    AS_IF([ test \</div><div class='add'>+        "x${ac_cv_header_mach_task_h}" = xyes -a \</div><div class='add'>+        "x${ac_cv_header_mach_mach_init_h}" = xyes -a \</div><div class='add'>+        "x${ac_cv_header_mach_mach_port_h}" = xyes \</div><div class='add'>+    ], [</div><div class='add'>+        AC_DEFINE([HAVE_MACH_TASK_EXCEPTION_PORTS], [1])</div><div class='add'>+    ])</div><div class='ctx'>     ])],</div><div class='ctx'> [*-freebsd*|x86_64-netbsd*], [</div><div class='ctx'>     AC_CHECK_HEADERS([execinfo.h])</div><div class='hunk'>@@ -2812,7 +3193,7 @@ AC_CHECK_FUNCS(backtrace)</div><div class='ctx'> </div><div class='ctx'> AS_IF([test "x$ac_cv_func_backtrace" = xyes], [</div><div class='ctx'>   AC_CACHE_CHECK(for broken backtrace, rb_cv_broken_backtrace,</div><div class='del'>-    [AC_TRY_RUN([</div><div class='add'>+    [AC_RUN_IFELSE([AC_LANG_SOURCE([[</div><div class='ctx'> #include &lt;unistd.h&gt;</div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='ctx'> #include &lt;stdlib.h&gt;</div><div class='hunk'>@@ -2821,6 +3202,7 @@ AS_IF([test "x$ac_cv_func_backtrace" = xyes], [</div><div class='ctx'> #include &lt;signal.h&gt;</div><div class='ctx'> #include &lt;execinfo.h&gt;</div><div class='ctx'> </div><div class='add'>+]`grep '^@%:@ *define  *RUBY_SIGALTSTACK_SIZE' ${srcdir}/signal.c`[</div><div class='ctx'> #define TRACE_SIZE 256</div><div class='ctx'> </div><div class='ctx'> void sigsegv(int signum, siginfo_t *info, void *ctx){</div><div class='hunk'>@@ -2840,12 +3222,12 @@ main(void)</div><div class='ctx'>     stack_t ss;</div><div class='ctx'>     struct sigaction sa;</div><div class='ctx'> </div><div class='del'>-    ss.ss_sp = malloc(SIGSTKSZ);</div><div class='add'>+    ss.ss_sp = malloc(RUBY_SIGALTSTACK_SIZE);</div><div class='ctx'>     if (ss.ss_sp == NULL) {</div><div class='ctx'> 	fprintf(stderr, "cannot allocate memory for sigaltstack\n");</div><div class='ctx'> 	return EXIT_FAILURE;</div><div class='ctx'>     }</div><div class='del'>-    ss.ss_size = SIGSTKSZ;</div><div class='add'>+    ss.ss_size = RUBY_SIGALTSTACK_SIZE;</div><div class='ctx'>     ss.ss_flags = 0;</div><div class='ctx'>     if (sigaltstack(&amp;ss, NULL) == -1) {</div><div class='ctx'> 	fprintf(stderr, "sigaltstack failed\n");</div><div class='hunk'>@@ -2860,7 +3242,7 @@ main(void)</div><div class='ctx'>     a[0] = 1;</div><div class='ctx'>     return EXIT_SUCCESS;</div><div class='ctx'> }</div><div class='del'>-],</div><div class='add'>+]])],</div><div class='ctx'> 	rb_cv_broken_backtrace=no,</div><div class='ctx'> 	rb_cv_broken_backtrace=yes,</div><div class='ctx'> 	rb_cv_broken_backtrace=no)])</div><div class='hunk'>@@ -2875,49 +3257,21 @@ AC_ARG_WITH(valgrind,</div><div class='ctx'> AS_IF([test x$with_valgrind != xno],</div><div class='ctx'>         [AC_CHECK_HEADERS(valgrind/memcheck.h)])</div><div class='ctx'> </div><div class='del'>-dln_a_out_works=no</div><div class='del'>-AS_IF([test "$ac_cv_header_a_out_h" = yes], [</div><div class='del'>-  AS_IF([test "$with_dln_a_out" = yes || test "$rb_cv_dlopen" = unknown], [</div><div class='del'>-    cat confdefs.h &gt; config.h</div><div class='del'>-    AC_CACHE_CHECK(whether matz's dln works, rb_cv_dln_a_out,</div><div class='del'>-    [AC_TRY_COMPILE([</div><div class='del'>-#define USE_DLN_A_OUT</div><div class='del'>-#include "dln.c"</div><div class='del'>-],</div><div class='del'>-	[],</div><div class='del'>-	rb_cv_dln_a_out=yes,</div><div class='del'>-	rb_cv_dln_a_out=no)])</div><div class='del'>-    AS_IF([test "$rb_cv_dln_a_out" = yes], [</div><div class='del'>-      dln_a_out_works=yes</div><div class='del'>-      AC_DEFINE(USE_DLN_A_OUT)</div><div class='del'>-    ])</div><div class='del'>-  ])</div><div class='del'>-])</div><div class='del'>-</div><div class='del'>-AS_IF([test "$dln_a_out_works" = yes], [</div><div class='del'>-  AS_IF([test "$GCC" = yes], [</div><div class='del'>-    STATIC=-static</div><div class='del'>-  ], [</div><div class='del'>-    STATIC=-Bstatic</div><div class='del'>-  ])</div><div class='del'>-  DLEXT=so</div><div class='del'>-  CCDLFLAGS=</div><div class='del'>-], [</div><div class='add'>+: "dlext &amp; soext" &amp;&amp; {</div><div class='ctx'>   AS_CASE(["$target_os"],</div><div class='del'>-    [hpux*], [</div><div class='del'>-	DLEXT=sl],</div><div class='ctx'>     [darwin*], [</div><div class='ctx'> 	SOEXT=dylib</div><div class='ctx'> 	DLEXT=bundle],</div><div class='del'>-    [cygwin*|mingw*|*djgpp*], [</div><div class='add'>+    [cygwin*|msys*|mingw*|*djgpp*], [</div><div class='ctx'> 	LOAD_RELATIVE=1</div><div class='ctx'> 	SOEXT=dll</div><div class='ctx'> 	DLEXT=so],</div><div class='ctx'>     [</div><div class='ctx'> 	DLEXT=so])</div><div class='del'>-])</div><div class='ctx'> : ${SOEXT="${DLEXT}"}</div><div class='ctx'> AC_SUBST(SOEXT)</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> AS_IF([test "$rb_cv_dlopen:$load_relative" = yes:yes], [</div><div class='ctx'>     AS_IF([test "$ac_cv_func_dladdr" = yes], [</div><div class='ctx'> 	LOAD_RELATIVE=1</div><div class='hunk'>@@ -2931,47 +3285,32 @@ AS_IF([test x"$LOAD_RELATIVE" = x1], [</div><div class='ctx'> </div><div class='ctx'> len=2 # .rb</div><div class='ctx'> n=`expr "$DLEXT"  : '.*'`; test "$n" -gt "$len" &amp;&amp; len=$n</div><div class='del'>-n=`expr "$DLEXT2" : '.*'`; test "$n" -gt "$len" &amp;&amp; len=$n</div><div class='ctx'> AC_DEFINE_UNQUOTED(DLEXT_MAXLEN, `expr $len + 1`)</div><div class='ctx'> test ".$DLEXT"  = "." || AC_DEFINE_UNQUOTED(DLEXT,  ".$DLEXT")</div><div class='del'>-test ".$DLEXT2" = "." || AC_DEFINE_UNQUOTED(DLEXT2, ".$DLEXT2")</div><div class='ctx'> AC_SUBST(DLEXT)</div><div class='ctx'> </div><div class='del'>-AS_IF([test "$with_dln_a_out" = yes], [</div><div class='del'>-  STRIP=true</div><div class='del'>-], [</div><div class='del'>-  AC_CHECK_TOOL(STRIP, strip, :)dnl</div><div class='del'>-])</div><div class='del'>-</div><div class='del'>-AS_CASE(["$target_os"],</div><div class='del'>-  [linux* | gnu* | k*bsd*-gnu | kopensolaris*-gnu], [</div><div class='del'>-	STRIP="$STRIP -S -x"],</div><div class='del'>-  [darwin*], [</div><div class='del'>-	STRIP="$STRIP -A -n"])</div><div class='add'>+: "strip" &amp;&amp; {</div><div class='add'>+    AC_MSG_CHECKING([for $STRIP flags])</div><div class='add'>+    AC_LINK_IFELSE([AC_LANG_PROGRAM], [AS_IF(</div><div class='add'>+        ["${STRIP}" -A -n conftest$ac_exeext 2&gt;/dev/null], [</div><div class='add'>+            AC_MSG_RESULT([-A -n])</div><div class='add'>+            STRIP="${STRIP} -A -n"</div><div class='add'>+        ],</div><div class='add'>+        ["${STRIP}" -S -x conftest$ac_exeext 2&gt;/dev/null], [</div><div class='add'>+            AC_MSG_RESULT([-S -x])</div><div class='add'>+            STRIP="${STRIP} -S -x"</div><div class='add'>+        ], [</div><div class='add'>+            AC_MSG_RESULT([none needed])</div><div class='add'>+        ])</div><div class='add'>+    ])</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> AC_ARG_WITH(ext,</div><div class='del'>-            AC_HELP_STRING([--with-ext=EXTS],</div><div class='add'>+            AS_HELP_STRING([--with-ext=EXTS],</div><div class='ctx'>                            [pass to --with-ext option of extmk.rb]))</div><div class='ctx'> AC_ARG_WITH(out-ext,</div><div class='del'>-            AC_HELP_STRING([--with-out-ext=EXTS],</div><div class='add'>+            AS_HELP_STRING([--with-out-ext=EXTS],</div><div class='ctx'>                            [pass to --without-ext option of extmk.rb]))</div><div class='del'>-EXTSTATIC=</div><div class='del'>-AC_SUBST(EXTSTATIC)dnl</div><div class='del'>-AC_ARG_WITH(static-linked-ext,</div><div class='del'>-	    AS_HELP_STRING([--with-static-linked-ext], [link external modules statically]),</div><div class='del'>-            [AS_CASE([$withval],[yes],[STATIC=;EXTSTATIC=static],[no],[],[EXTSTATIC="$withval"])])</div><div class='del'>-AS_CASE([",$EXTSTATIC,"], [,static,|*,enc,*], [</div><div class='del'>-  ENCOBJS='enc/encinit.$(OBJEXT) enc/libenc.$(LIBEXT) enc/libtrans.$(LIBEXT)'</div><div class='del'>-  EXTOBJS='ext/extinit.$(OBJEXT)'</div><div class='del'>-  AC_DEFINE_UNQUOTED(EXTSTATIC, 1)</div><div class='del'>-  AC_SUBST(ENCSTATIC, static)</div><div class='del'>-], [</div><div class='del'>-  ENCOBJS='dmyenc.$(OBJEXT)'</div><div class='del'>-  EXTOBJS='dmyext.$(OBJEXT)'</div><div class='del'>-])</div><div class='del'>-AC_SUBST(ENCOBJS)</div><div class='del'>-AC_SUBST(EXTOBJS)</div><div class='del'>-</div><div class='ctx'> AC_ARG_WITH(setup,</div><div class='ctx'> 	    AS_HELP_STRING([--with-setup=SETUP], [use extension libraries setup]),</div><div class='ctx'> 	    [setup=$withval])</div><div class='hunk'>@@ -3014,7 +3353,7 @@ AS_IF([test x"${exec_prefix}" != xNONE], [</div><div class='ctx'>     RUBY_EXEC_PREFIX=$ac_default_prefix</div><div class='ctx'> ])</div><div class='ctx'> pat=`echo "${RUBY_EXEC_PREFIX}" | tr -c '\012' .`'\(.*\)'</div><div class='del'>-for var in bindir libdir rubylibprefix; do</div><div class='add'>+for var in bindir includedir libdir rubylibprefix; do</div><div class='ctx'>     eval val='"$'$var'"'</div><div class='ctx'>     AS_CASE(["$val"], ["${RUBY_EXEC_PREFIX}"*], [val='${exec_prefix}'"`expr \"$val\" : \"$pat\"`"])</div><div class='ctx'>     eval $var='"$val"'</div><div class='hunk'>@@ -3030,20 +3369,23 @@ AS_IF([test x"$cross_compiling" = xyes], [</div><div class='ctx'>   AC_SUBST(XRUBY_RUBYLIBDIR)</div><div class='ctx'>   AC_SUBST(XRUBY_RUBYHDRDIR)</div><div class='ctx'>   PREP='$(arch)-fake.rb'</div><div class='add'>+  AS_CASE(["$enable_shared:$EXTSTATIC:$target_os"], [no::darwin*], [</div><div class='add'>+    # darwin target requires miniruby for linking ext bundles</div><div class='add'>+    PREP="$PREP"' miniruby$(EXEEXT)'</div><div class='add'>+  ])</div><div class='ctx'>   RUNRUBY_COMMAND='$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`'</div><div class='ctx'>   RUNRUBY='$(RUNRUBY_COMMAND)'</div><div class='ctx'>   XRUBY='$(MINIRUBY)'</div><div class='del'>-  BOOTSTRAPRUBY='$(BASERUBY)'</div><div class='ctx'>   TEST_RUNNABLE=no</div><div class='ctx'>   CROSS_COMPILING=yes</div><div class='add'>+  AC_DEFINE(CROSS_COMPILING, 1)</div><div class='ctx'> ], [</div><div class='ctx'>   MINIRUBY='./miniruby$(EXEEXT) -I$(srcdir)/lib -I.'</div><div class='ctx'>   MINIRUBY="$MINIRUBY"' -I$(EXTOUT)/common'</div><div class='ctx'>   PREP='miniruby$(EXEEXT)'</div><div class='del'>-  RUNRUBY_COMMAND='$(MINIRUBY) $(srcdir)/tool/runruby.rb --extout=$(EXTOUT) $(RUNRUBYOPT)'</div><div class='add'>+  RUNRUBY_COMMAND='$(MINIRUBY) $(tooldir)/runruby.rb --extout=$(EXTOUT) $(RUNRUBYOPT)'</div><div class='ctx'>   RUNRUBY='$(RUNRUBY_COMMAND) --'</div><div class='ctx'>   XRUBY='$(RUNRUBY)'</div><div class='del'>-  BOOTSTRAPRUBY='$(MINIRUBY)'</div><div class='ctx'>   TEST_RUNNABLE=yes</div><div class='ctx'>   CROSS_COMPILING=no</div><div class='ctx'> ])</div><div class='hunk'>@@ -3055,7 +3397,6 @@ AC_SUBST(PREP)</div><div class='ctx'> AC_SUBST(RUNRUBY_COMMAND)</div><div class='ctx'> AC_SUBST(RUNRUBY)</div><div class='ctx'> AC_SUBST(XRUBY)</div><div class='del'>-AC_SUBST(BOOTSTRAPRUBY)</div><div class='ctx'> AC_SUBST(EXTOUT, [${EXTOUT=.ext}])</div><div class='ctx'> </div><div class='ctx'> FIRSTMAKEFILE=""</div><div class='hunk'>@@ -3066,11 +3407,11 @@ LIBRUBYARG='$(LIBRUBYARG_STATIC)'</div><div class='ctx'> SOLIBS='$(MAINLIBS)'</div><div class='ctx'> </div><div class='ctx'> AS_CASE(["$target_os"],</div><div class='del'>-  [cygwin*|mingw*|haiku*|darwin*], [</div><div class='add'>+  [cygwin*|msys*|mingw*|haiku*|darwin*], [</div><div class='ctx'>     : ${DLDLIBS=""}</div><div class='ctx'>     ],</div><div class='ctx'>   [</div><div class='del'>-    DLDLIBS="$DLDLIBS -lc"</div><div class='add'>+    DLDLIBS="${DLDLIBS:+$DLDLIBS }-lc"</div><div class='ctx'>     ])</div><div class='ctx'> </div><div class='ctx'> AC_ARG_ENABLE(multiarch,</div><div class='hunk'>@@ -3136,6 +3477,17 @@ AS_CASE("$enable_shared", [yes], [</div><div class='ctx'>   AC_DEFINE_UNQUOTED(LIBDIR_BASENAME, ["${libdir_basename}"])</div><div class='ctx'>   libdir_basename="${libdir_basename}"${multiarch+'/${arch}'}</div><div class='ctx'> </div><div class='add'>+  # Debian bullseye reportedly has its ld(1) patched, which breaks</div><div class='add'>+  # --enable-shared --with-jemalloc combination.  We might have to deal with</div><div class='add'>+  # the ld(1) change sooner or later, but in the meantime let us force it</div><div class='add'>+  # the old way.</div><div class='add'>+  #</div><div class='add'>+  # See https://github.com/ruby/ruby/pull/4627</div><div class='add'>+  RUBY_TRY_LDFLAGS([${linker_flag}--no-as-needed], [no_as_needed=yes], [no_as_needed=no])</div><div class='add'>+  AS_IF([test "$no_as_needed" = yes], [</div><div class='add'>+      RUBY_APPEND_OPTIONS(LDFLAGS, [${linker_flag}--no-as-needed])</div><div class='add'>+  ])</div><div class='add'>+</div><div class='ctx'>   AS_CASE(["$target_os"],</div><div class='ctx'>     [freebsd*|dragonfly*], [],</div><div class='ctx'>     [</div><div class='hunk'>@@ -3166,6 +3518,10 @@ AS_CASE("$enable_shared", [yes], [</div><div class='ctx'> 	AS_IF([test "$rb_cv_binary_elf" != "yes" ], [</div><div class='ctx'> 	    LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)"</div><div class='ctx'> 	    LIBRUBY_ALIASES=''</div><div class='add'>+	], [test "$load_relative" = yes], [</div><div class='add'>+	    libprefix="'\$\$ORIGIN/../${libdir_basename}'"</div><div class='add'>+	    LIBRUBY_RPATHFLAGS="-Wl,-rpath,${libprefix}"</div><div class='add'>+	    LIBRUBY_RELATIVE=yes</div><div class='ctx'> 	])</div><div class='ctx'> 	],</div><div class='ctx'>     [netbsd*], [</div><div class='hunk'>@@ -3186,11 +3542,13 @@ AS_CASE("$enable_shared", [yes], [</div><div class='ctx'> 	LIBRUBY_SONAME='lib$(RUBY_SO_NAME).$(SOEXT).$(RUBY_PROGRAM_VERSION)'</div><div class='ctx'> 	LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)'</div><div class='ctx'> 	RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ["${linker_flag}-h${linker_flag:+,}"'$(@F)'])</div><div class='del'>-	XLDFLAGS="$XLDFLAGS "'-R${libdir}'</div><div class='del'>-	],</div><div class='del'>-    [hpux*], [</div><div class='del'>-	XLDFLAGS="$XLDFLAGS "'-Wl,+s,+b,$(libdir)'</div><div class='del'>-	LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)'</div><div class='add'>+	AS_IF([test "$load_relative" = yes], [</div><div class='add'>+	    libprefix="'\$\$ORIGIN/../${libdir_basename}'"</div><div class='add'>+	    LIBRUBY_RPATHFLAGS="-R${libprefix}"</div><div class='add'>+	    LIBRUBY_RELATIVE=yes</div><div class='add'>+	], [</div><div class='add'>+	    LIBRUBY_RPATHFLAGS='-R${libdir}'</div><div class='add'>+	])</div><div class='ctx'> 	],</div><div class='ctx'>     [aix*], [</div><div class='ctx'> 	RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ["${linker_flag}-bnoentry" "$XLDFLAGS" "$LDFLAGS_OPTDIR"])</div><div class='hunk'>@@ -3218,7 +3576,7 @@ AS_CASE("$enable_shared", [yes], [</div><div class='ctx'>     [interix*], [</div><div class='ctx'> 	LIBRUBYARG_SHARED='-L. -L${libdir} -l$(RUBY_SO_NAME)'</div><div class='ctx'> 	],</div><div class='del'>-    [mingw*|cygwin*|mswin*], [</div><div class='add'>+    [cygwin*|msys*|mingw*|mswin*], [</div><div class='ctx'> 	LIBRUBY_RELATIVE=yes</div><div class='ctx'> 	])</div><div class='ctx'> ], [</div><div class='hunk'>@@ -3277,7 +3635,7 @@ AS_CASE("$cross_compiling:${LIBPATHENV}", [yes:* | no:], [], [</div><div class='ctx'>     AC_MSG_CHECKING(whether wrapper for $LIBPATHENV is needed)</div><div class='ctx'>     AS_IF([env ${LIBPATHENV}=/lib /bin/sh -c ': ${'${LIBPATHENV}'?}' 2&gt;/dev/null],</div><div class='ctx'> 	[AC_MSG_RESULT(no)],</div><div class='del'>-	[PREP="$PREP"' exe/$(PROGRAM)'</div><div class='add'>+	[AC_SUBST(XRUBY_LIBPATHENV_WRAPPER, 'exe/$(PROGRAM)')</div><div class='ctx'> 	AC_MSG_RESULT(yes)]</div><div class='ctx'>     )</div><div class='ctx'> ])</div><div class='hunk'>@@ -3295,6 +3653,9 @@ AS_CASE(["${enable_dtrace}"],</div><div class='ctx'> ], [</div><div class='ctx'>     rb_cv_dtrace_available=no</div><div class='ctx'> ])</div><div class='add'>+AS_CASE(["$target_os"],[freebsd*],[</div><div class='add'>+         rb_cv_dtrace_available=no</div><div class='add'>+	 ])</div><div class='ctx'> AS_IF([test "${enable_dtrace}" = yes], [dnl</div><div class='ctx'>     AS_IF([test -z "$DTRACE"], [dnl</div><div class='ctx'> 	AC_MSG_ERROR([dtrace(1) is missing])</div><div class='hunk'>@@ -3347,18 +3708,30 @@ CAPITARGET=""</div><div class='ctx'> AC_ARG_ENABLE(install-doc,</div><div class='ctx'>        AS_HELP_STRING([--disable-install-doc], [do not install either rdoc indexes or C API documents during install]),</div><div class='ctx'>        [install_doc=$enableval], [install_doc=yes])</div><div class='add'>+AC_ARG_WITH(rdoc,</div><div class='add'>+      AS_HELP_STRING([--with-rdoc=ri,html], [comma/space separated list of RDoc formats to install]),</div><div class='add'>+      [install_rdoc=`echo ,$withval, | sed 'y/,/ /;s/ ri / rdoc /;s/^ *//;s/ *$//'`], [</div><div class='ctx'> AC_ARG_ENABLE(install-rdoc,</div><div class='ctx'>       AS_HELP_STRING([--disable-install-rdoc], [do not install rdoc indexes during install]),</div><div class='ctx'>       [install_rdoc=$enableval], [install_rdoc=yes])</div><div class='add'>+])</div><div class='ctx'> AC_ARG_ENABLE(install-capi,</div><div class='ctx'>       AS_HELP_STRING([--disable-install-capi], [do not install C API documents during install]),</div><div class='ctx'>       [install_capi=$enableval], [install_capi=no])</div><div class='ctx'> </div><div class='ctx'> AS_IF([test "$install_doc" != no], [</div><div class='del'>-    AS_IF([test "$install_rdoc" != no], [</div><div class='add'>+    AS_CASE(["$install_rdoc"],</div><div class='add'>+    [yes], [</div><div class='ctx'> 	RDOCTARGET="rdoc"</div><div class='del'>-    ], [</div><div class='add'>+    ],</div><div class='add'>+    [all], [</div><div class='add'>+	RDOCTARGET="rdoc html"</div><div class='add'>+    ],</div><div class='add'>+    [no|''], [</div><div class='ctx'> 	RDOCTARGET="nodoc"</div><div class='add'>+    ],</div><div class='add'>+    [</div><div class='add'>+	RDOCTARGET="$install_rdoc"</div><div class='ctx'>     ])</div><div class='ctx'>     AS_IF([test "$install_capi" != no -a -n "$DOXYGEN"], [</div><div class='ctx'> 	CAPITARGET="capi"</div><div class='hunk'>@@ -3377,29 +3750,142 @@ AS_CASE(["$RDOCTARGET:$CAPITARGET"],[nodoc:nodoc],[INSTALLDOC=nodoc],[INSTALLDOC</div><div class='ctx'> AC_SUBST(INSTALLDOC)</div><div class='ctx'> </div><div class='ctx'> AC_ARG_ENABLE(jit-support,</div><div class='del'>-        AS_HELP_STRING([--disable-jit-support], [disable JIT features]),</div><div class='del'>-        [MJIT_SUPPORT=$enableval</div><div class='del'>-         AS_IF([test x"$enable_jit_support" = "xyes"],</div><div class='del'>-                 [AC_DEFINE(USE_MJIT, 1)],</div><div class='del'>-                 [AC_DEFINE(USE_MJIT, 0)])],</div><div class='del'>-        [MJIT_SUPPORT=yes</div><div class='del'>-         AC_DEFINE(USE_MJIT, 1)])</div><div class='add'>+    AS_HELP_STRING([--disable-jit-support], [disable JIT features]),</div><div class='add'>+    [MJIT_SUPPORT=$enableval],</div><div class='add'>+    [AS_CASE(["$target_os"],</div><div class='add'>+        [wasi | mingw* | solaris*], [MJIT_SUPPORT=no],</div><div class='add'>+        [MJIT_SUPPORT=yes]</div><div class='add'>+    )])</div><div class='add'>+</div><div class='add'>+AS_IF([test x"$MJIT_SUPPORT" = "xyes"],</div><div class='add'>+	[AC_DEFINE(USE_MJIT, 1)],</div><div class='add'>+	[AC_DEFINE(USE_MJIT, 0)])</div><div class='ctx'> </div><div class='ctx'> AC_SUBST(MJIT_SUPPORT)</div><div class='ctx'> </div><div class='add'>+AC_CHECK_PROG(RUSTC, [rustc], [rustc], [no]) dnl no ac_tool_prefix</div><div class='add'>+</div><div class='add'>+dnl check if rustc is recent enough to build YJIT (rustc &gt;= 1.58.0)</div><div class='add'>+YJIT_RUSTC_OK=no</div><div class='add'>+AS_IF([test "$RUSTC" != "no"],</div><div class='add'>+    AC_MSG_CHECKING([whether ${RUSTC} works for YJIT])</div><div class='add'>+    YJIT_TARGET_ARCH=</div><div class='add'>+    AS_CASE(["$target_cpu"],</div><div class='add'>+        [arm64|aarch64], [YJIT_TARGET_ARCH=aarch64],</div><div class='add'>+        [x86_64], [YJIT_TARGET_ARCH=x86_64],</div><div class='add'>+    )</div><div class='add'>+    dnl Fails in case rustc target doesn't match ruby target.</div><div class='add'>+    dnl Can happen on Rosetta, for example.</div><div class='add'>+    AS_IF([echo "#[cfg(target_arch = \"$YJIT_TARGET_ARCH\")] fn main() { let x = 1; format!(\"{x}\"); }" |</div><div class='add'>+            $RUSTC - --emit asm=/dev/null 2&gt;/dev/null],</div><div class='add'>+        [YJIT_RUSTC_OK=yes]</div><div class='add'>+    )</div><div class='add'>+    AC_MSG_RESULT($YJIT_RUSTC_OK)</div><div class='add'>+)</div><div class='add'>+</div><div class='add'>+dnl check if we can build YJIT on this target platform</div><div class='add'>+dnl we can't easily cross-compile with rustc so we don't support that</div><div class='add'>+YJIT_TARGET_OK=no</div><div class='add'>+AS_IF([test "$cross_compiling" = no],</div><div class='add'>+    AS_CASE(["$target_cpu-$target_os"],</div><div class='add'>+        [*android*], [</div><div class='add'>+            YJIT_TARGET_OK=no</div><div class='add'>+        ],</div><div class='add'>+        [arm64-darwin*|aarch64-darwin*|x86_64-darwin*], [</div><div class='add'>+            YJIT_TARGET_OK=yes</div><div class='add'>+        ],</div><div class='add'>+        [arm64-*linux*|aarch64-*linux*|x86_64-*linux*], [</div><div class='add'>+            YJIT_TARGET_OK=yes</div><div class='add'>+        ],</div><div class='add'>+        [arm64-*bsd*|aarch64-*bsd*|x86_64-*bsd*], [</div><div class='add'>+            YJIT_TARGET_OK=yes</div><div class='add'>+        ]</div><div class='add'>+    )</div><div class='add'>+)</div><div class='add'>+</div><div class='add'>+dnl build YJIT in release mode if rustc &gt;= 1.58.0 is present and we are on a supported platform</div><div class='add'>+AC_ARG_ENABLE(yjit,</div><div class='add'>+    AS_HELP_STRING([--enable-yjit],</div><div class='add'>+    [enable in-process JIT compiler that requires Rust build tools. enabled by default on supported platforms if rustc 1.58.0+ is available]),</div><div class='add'>+    [YJIT_SUPPORT=$enableval],</div><div class='add'>+    [AS_CASE(["$enable_jit_support:$YJIT_TARGET_OK:$YJIT_RUSTC_OK"],</div><div class='add'>+        [yes:yes:yes|:yes:yes], [</div><div class='add'>+            YJIT_SUPPORT=yes</div><div class='add'>+        ],</div><div class='add'>+        [YJIT_SUPPORT=no]</div><div class='add'>+    )]</div><div class='add'>+)</div><div class='add'>+</div><div class='add'>+CARGO=</div><div class='add'>+CARGO_BUILD_ARGS=</div><div class='add'>+YJIT_LIBS=</div><div class='add'>+AS_CASE(["${YJIT_SUPPORT}"],</div><div class='add'>+[yes|dev|stats|dev_nodebug], [</div><div class='add'>+    AS_IF([test x"$enable_jit_support" = "xno"],</div><div class='add'>+        AC_MSG_ERROR([--disable-jit-support but --enable-yjit. YJIT requires JIT support])</div><div class='add'>+    )</div><div class='add'>+    AS_IF([test x"$RUSTC" = "xno"],</div><div class='add'>+        AC_MSG_ERROR([rustc is required. Installation instructions available at https://www.rust-lang.org/tools/install])</div><div class='add'>+    )</div><div class='add'>+</div><div class='add'>+    AS_CASE(["${YJIT_SUPPORT}"],</div><div class='add'>+    [yes], [</div><div class='add'>+	rb_rust_target_subdir=release</div><div class='add'>+    ],</div><div class='add'>+    [dev], [</div><div class='add'>+	rb_rust_target_subdir=debug</div><div class='add'>+	CARGO_BUILD_ARGS='--features stats,disasm'</div><div class='add'>+	AC_DEFINE(RUBY_DEBUG, 1)</div><div class='add'>+    ],</div><div class='add'>+    [dev_nodebug], [</div><div class='add'>+	rb_rust_target_subdir=dev_nodebug</div><div class='add'>+	CARGO_BUILD_ARGS='--profile dev_nodebug --features stats,disasm'</div><div class='add'>+    ],</div><div class='add'>+    [stats], [</div><div class='add'>+	rb_rust_target_subdir=stats</div><div class='add'>+	CARGO_BUILD_ARGS='--profile stats --features stats'</div><div class='add'>+	AC_DEFINE(YJIT_STATS, 1)</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+    AS_IF([test -n "${CARGO_BUILD_ARGS}"], [</div><div class='add'>+             AC_CHECK_TOOL(CARGO, [cargo], [no])</div><div class='add'>+             AS_IF([test x"$CARGO" = "xno"],</div><div class='add'>+                AC_MSG_ERROR([cargo is required. Installation instructions available at https://www.rust-lang.org/tools/install])</div><div class='add'>+             ]))</div><div class='add'>+</div><div class='add'>+    YJIT_LIBS="yjit/target/${rb_rust_target_subdir}/libyjit.a"</div><div class='add'>+    AS_CASE(["$target_os"],[openbsd*],[</div><div class='add'>+        # Link libc++abi (which requires libpthread) for _Unwind_* functions needed by yjit</div><div class='add'>+        LDFLAGS="$LDFLAGS -lpthread -lc++abi"</div><div class='add'>+    ])</div><div class='add'>+    YJIT_OBJ='yjit.$(OBJEXT)'</div><div class='add'>+    AS_IF([test x"$YJIT_SUPPORT" != "xyes" ], [</div><div class='add'>+        AC_DEFINE_UNQUOTED(YJIT_SUPPORT, [$YJIT_SUPPORT])</div><div class='add'>+    ])</div><div class='add'>+    AC_DEFINE(USE_YJIT, 1)</div><div class='add'>+], [AC_DEFINE(USE_YJIT, 0)])</div><div class='add'>+</div><div class='add'>+dnl These variables end up in ::RbConfig::CONFIG</div><div class='add'>+AC_SUBST(YJIT_SUPPORT)dnl what flavor of YJIT the Ruby build includes</div><div class='add'>+AC_SUBST(RUSTC)dnl Rust compiler command</div><div class='add'>+AC_SUBST(CARGO)dnl Cargo command for Rust builds</div><div class='add'>+AC_SUBST(CARGO_BUILD_ARGS)dnl for selecting Rust build profiles</div><div class='add'>+AC_SUBST(YJIT_LIBS)dnl for optionally building the Rust parts of YJIT</div><div class='add'>+AC_SUBST(YJIT_OBJ)dnl for optionally building the C parts of YJIT</div><div class='add'>+</div><div class='ctx'> AC_ARG_ENABLE(install-static-library,</div><div class='ctx'> 	AS_HELP_STRING([--disable-install-static-library], [do not install static ruby library]),</div><div class='del'>-	[INSTALL_STATIC_LIBRARY=$enableval],</div><div class='add'>+	[INSTALL_STATIC_LIBRARY=$enableval</div><div class='add'>+         AS_IF([test x"$enable_shared" = xno -a x"$INSTALL_STATIC_LIBRARY" = xno],</div><div class='add'>+                 [AC_MSG_ERROR([must install either static or shared library])],</div><div class='add'>+                 [])],</div><div class='ctx'> 	AS_IF([test x"$enable_shared" = xyes],</div><div class='ctx'> 	    [INSTALL_STATIC_LIBRARY=no],</div><div class='ctx'> 	    [INSTALL_STATIC_LIBRARY=yes]))</div><div class='ctx'> AC_SUBST(INSTALL_STATIC_LIBRARY)</div><div class='ctx'> </div><div class='del'>-AS_IF([test "$rb_with_pthread" = "yes"], [</div><div class='del'>-    THREAD_MODEL=pthread</div><div class='del'>-])</div><div class='ctx'> AC_CACHE_CHECK([for prefix of external symbols], rb_cv_symbol_prefix, [</div><div class='del'>-    AC_TRY_COMPILE([extern void conftest_external(void) {}], [], [</div><div class='add'>+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[extern void conftest_external(void) {}]], [[]])],[</div><div class='ctx'> 	rb_cv_symbol_prefix=`$NM conftest.$ac_objext |</div><div class='ctx'> 			     sed -n ['/.*T[ 	]\([^ 	]*\)conftest_external.*/!d;s//\1/p;q']`</div><div class='ctx'> 	],</div><div class='hunk'>@@ -3410,7 +3896,7 @@ SYMBOL_PREFIX="$rb_cv_symbol_prefix"</div><div class='ctx'> test "x$SYMBOL_PREFIX" = xNONE &amp;&amp; SYMBOL_PREFIX=''</div><div class='ctx'> DLNOBJ=dln.o</div><div class='ctx'> AC_ARG_ENABLE(dln,</div><div class='del'>-	      AC_HELP_STRING([--disable-dln], [disable dynamic link feature]),</div><div class='add'>+	      AS_HELP_STRING([--disable-dln], [disable dynamic link feature]),</div><div class='ctx'> 	      [test "$enableval" = yes || DLNOBJ=dmydln.o])</div><div class='ctx'> AC_SUBST(DLNOBJ)</div><div class='ctx'> MINIDLNOBJ=dmydln.o</div><div class='hunk'>@@ -3423,16 +3909,30 @@ AS_CASE(["$target_os"],</div><div class='ctx'> 	],</div><div class='ctx'>     [darwin*], [</div><div class='ctx'> 	RUBY_APPEND_OPTION(CFLAGS, -pipe)</div><div class='add'>+        AC_MSG_CHECKING([whether Security framework is needed])</div><div class='ctx'> 	AC_COMPILE_IFELSE([</div><div class='del'>-	    AC_LANG_BOOL_COMPILE_TRY([@%:@include &lt;AvailabilityMacros.h&gt;],</div><div class='del'>-		[MAC_OS_X_VERSION_MIN_REQUIRED &gt;= MAC_OS_X_VERSION_10_7])],</div><div class='add'>+	    AC_LANG_BOOL_COMPILE_TRY([</div><div class='add'>+@%:@include &lt;AvailabilityMacros.h&gt;</div><div class='add'>+enum {</div><div class='add'>+    least = MAC_OS_X_VERSION_10_7, /* just fail if undefined */</div><div class='add'>+    required = MAC_OS_X_VERSION_MIN_REQUIRED,</div><div class='add'>+    upper /* bigger than MIN_REQUIRED, or */</div><div class='add'>+@%:@ifdef MAC_OS_X_VERSION_10_10</div><div class='add'>+        = MAC_OS_X_VERSION_10_10</div><div class='add'>+@%:@endif</div><div class='add'>+};],</div><div class='add'>+	    [required &gt;= least &amp;&amp; required &lt; upper])],</div><div class='ctx'> 	    [dnl</div><div class='add'>+		AC_MSG_RESULT(yes)</div><div class='ctx'> 		RUBY_APPEND_OPTION(XLDFLAGS, [-framework Security])</div><div class='ctx'> 		RUBY_APPEND_OPTION(LIBRUBYARG_STATIC, [-framework Security])</div><div class='add'>+	    ],dnl</div><div class='add'>+	    [dnl</div><div class='add'>+		AC_MSG_RESULT(no)</div><div class='ctx'> 	    ]dnl</div><div class='ctx'> 	)</div><div class='del'>-	RUBY_APPEND_OPTION(XLDFLAGS, [-framework Foundation])</div><div class='del'>-	RUBY_APPEND_OPTION(LIBRUBYARG_STATIC, [-framework Foundation])</div><div class='add'>+	RUBY_APPEND_OPTION(XLDFLAGS, [-framework CoreFoundation])</div><div class='add'>+	RUBY_APPEND_OPTION(LIBRUBYARG_STATIC, [-framework CoreFoundation])</div><div class='ctx'> 	],</div><div class='ctx'>     [osf*], [</div><div class='ctx'> 	AS_IF([test "$GCC" != "yes" ], [</div><div class='hunk'>@@ -3449,7 +3949,7 @@ AS_CASE(["$target_os"],</div><div class='ctx'> 	  CFLAGS="$CFLAGS -std"</div><div class='ctx'> 	])</div><div class='ctx'> 	],</div><div class='del'>-    [cygwin*|mingw*], [</div><div class='add'>+    [cygwin*|msys*|mingw*], [</div><div class='ctx'> 	LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)'</div><div class='ctx'> 	AS_CASE(["$target_os"],</div><div class='ctx'> 	[cygwin*], [</div><div class='hunk'>@@ -3464,13 +3964,12 @@ AS_CASE(["$target_os"],</div><div class='ctx'> 		LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'</div><div class='ctx'> 	    ])</div><div class='ctx'> 	    EXPORT_PREFIX=' '</div><div class='del'>-	    DLDFLAGS="${DLDFLAGS}"' $(DEFFILE)'</div><div class='add'>+	    EXTDLDFLAGS='$(DEFFILE)'</div><div class='ctx'> 	    AC_LIBOBJ([win32/win32])</div><div class='ctx'> 	    AC_LIBOBJ([win32/file])</div><div class='ctx'> 	    COMMON_LIBS=m</div><div class='ctx'> #	    COMMON_MACROS="WIN32_LEAN_AND_MEAN="</div><div class='ctx'> 	    COMMON_HEADERS="winsock2.h windows.h"</div><div class='del'>-	    THREAD_MODEL=win32</div><div class='ctx'> 	    PLATFORM_DIR=win32</div><div class='ctx'> 	    ])</div><div class='ctx'> 	LIBRUBY_ALIASES=''</div><div class='hunk'>@@ -3483,21 +3982,20 @@ AS_CASE(["$target_os"],</div><div class='ctx'> 	    LIBRUBYARG='-l$(RUBY_SO_NAME)'</div><div class='ctx'> 	])</div><div class='ctx'> 	],</div><div class='del'>-    [hpux*], [</div><div class='del'>-	AS_CASE(["$YACC"],[*yacc*], [</div><div class='del'>-	    XCFLAGS="$XCFLAGS -DYYMAXDEPTH=300"</div><div class='del'>-	    YACC="$YACC -Nl40000 -Nm40000"</div><div class='del'>-	])</div><div class='add'>+    [wasi*], [</div><div class='add'>+        FIRSTMAKEFILE=GNUmakefile:wasm/GNUmakefile.in</div><div class='add'>+        AC_LIBOBJ([wasm/missing])</div><div class='add'>+        AC_LIBOBJ([wasm/runtime])</div><div class='add'>+        AC_LIBOBJ([wasm/fiber])</div><div class='add'>+        AC_LIBOBJ([wasm/machine])</div><div class='add'>+        AC_LIBOBJ([wasm/setjmp])</div><div class='add'>+        AC_LIBOBJ([wasm/machine_core])</div><div class='add'>+        AC_LIBOBJ([wasm/setjmp_core])</div><div class='add'>+        PLATFORM_DIR=wasm</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='ctx'> MINIOBJS="$MINIDLNOBJ"</div><div class='ctx'> </div><div class='del'>-AS_CASE(["$THREAD_MODEL"],</div><div class='del'>-[pthread], [AC_CHECK_HEADERS(pthread.h)],</div><div class='del'>-[win32],   [],</div><div class='del'>-[""],      [AC_MSG_ERROR(thread model is missing)],</div><div class='del'>-           [AC_MSG_ERROR(unknown thread model $THREAD_MODEL)])</div><div class='del'>-</div><div class='ctx'> AC_ARG_ENABLE(debug-env,</div><div class='ctx'>        AS_HELP_STRING([--enable-debug-env], [enable RUBY_DEBUG environment variable]),</div><div class='ctx'>        [AC_SUBST(ENABLE_DEBUG_ENV, yes)])</div><div class='hunk'>@@ -3542,13 +4040,12 @@ AS_IF([test "${universal_binary-no}" = yes ], [</div><div class='ctx'>     AC_CACHE_CHECK([for architecture macros], rb_cv_architecture_macros, [</div><div class='ctx'>     mv confdefs.h confdefs1.h</div><div class='ctx'>     : &gt; confdefs.h</div><div class='del'>-    AC_TRY_COMPILE([@%:@if defined __`echo ${universal_archnames} |</div><div class='add'>+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@if defined __`echo ${universal_archnames} |</div><div class='ctx'>     sed 's/=[^ ]*//g;s/ /__ || defined __/g'`__</div><div class='ctx'> @%:@else</div><div class='ctx'> @%:@error</div><div class='ctx'> &gt;&gt;&gt;&gt;&gt;&gt;&lt;&lt;&lt;&lt;&lt;&lt;</div><div class='del'>-@%:@endif], [],</div><div class='del'>-[</div><div class='add'>+@%:@endif]], [[]])],[</div><div class='ctx'>     rb_cv_architecture_macros=yes</div><div class='ctx'>     mv -f confdefs1.h confdefs.h</div><div class='ctx'> ], [</div><div class='hunk'>@@ -3561,16 +4058,17 @@ AS_IF([test "${universal_binary-no}" = yes ], [</div><div class='ctx'> 	CFLAGS="$new_cflags -arch $archs"</div><div class='ctx'> 	archs="__${archs}__"</div><div class='ctx'> 	AC_MSG_CHECKING([for macro ${archs} on ${cpu}])</div><div class='del'>-	AC_TRY_COMPILE([@%:@ifndef ${archs}</div><div class='add'>+	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@ifndef ${archs}</div><div class='ctx'> @%:@error</div><div class='del'>-@%:@endif], [], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])</div><div class='add'>+@%:@endif]], [[]])],</div><div class='add'>+	[AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])</div><div class='ctx'>     done</div><div class='ctx'>     mv -f confdefs1.h confdefs.h</div><div class='ctx'>     AC_MSG_ERROR([failed])</div><div class='ctx'>     ])])</div><div class='ctx'>     AC_CACHE_CHECK(whether __ARCHITECTURE__ is available, rb_cv_architecture_available,</div><div class='del'>-	AC_TRY_COMPILE([@%:@include &lt;stdio.h&gt;</div><div class='del'>-		const char arch[[]] = __ARCHITECTURE__;], [puts(arch);],</div><div class='add'>+	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include &lt;stdio.h&gt;</div><div class='add'>+		const char arch[[]] = __ARCHITECTURE__;]], [[puts(arch);]])],</div><div class='ctx'> 		[rb_cv_architecture_available=yes], [rb_cv_architecture_available=no]))</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='hunk'>@@ -3599,10 +4097,11 @@ AS_IF([test "${ARCH_FLAG}"], [</div><div class='ctx'>     CXXFLAGS=`echo "$CXXFLAGS" | sed "s| *$archflagpat"'||'`</div><div class='ctx'>     LDFLAGS=`echo "$LDFLAGS" | sed "s| *$archflagpat"'||'`</div><div class='ctx'> ])</div><div class='add'>+rb_cv_warnflags=`echo "$rb_cv_warnflags" | sed 's/^ *//;s/ *$//'`</div><div class='ctx'> warnflags="$rb_cv_warnflags"</div><div class='ctx'> AC_SUBST(cppflags)dnl</div><div class='ctx'> AC_SUBST(cflags, ["${orig_cflags:+$orig_cflags }"'${optflags} ${debugflags} ${warnflags}'])dnl</div><div class='del'>-AC_SUBST(cxxflags, ["${orig_cxxflags:+$orig_cxxflags }"'${optflags} ${debugflags} ${warnflags}'])dnl</div><div class='add'>+AC_SUBST(cxxflags)dnl</div><div class='ctx'> AC_SUBST(optflags)dnl</div><div class='ctx'> AC_SUBST(debugflags)dnl</div><div class='ctx'> AC_SUBST(warnflags)dnl</div><div class='hunk'>@@ -3637,6 +4136,7 @@ AC_SUBST(EXPORT_PREFIX)</div><div class='ctx'> AC_SUBST(SYMBOL_PREFIX)</div><div class='ctx'> AC_SUBST(MINIOBJS)</div><div class='ctx'> AC_SUBST(THREAD_MODEL)</div><div class='add'>+AC_SUBST(COROUTINE_TYPE, ${coroutine_type})</div><div class='ctx'> AC_SUBST(PLATFORM_DIR)</div><div class='ctx'> </div><div class='ctx'> firstmf=`echo $FIRSTMAKEFILE | sed 's/:.*//'`</div><div class='hunk'>@@ -3655,7 +4155,7 @@ test "$program_suffix" != NONE &amp;&amp;</div><div class='ctx'> </div><div class='ctx'> RUBY_INSTALL_NAME="${ri_prefix}"'$(RUBY_BASE_NAME)'"${ri_suffix}"</div><div class='ctx'> AS_CASE(["$target_os"],</div><div class='del'>-  [cygwin*|mingw*], [</div><div class='add'>+  [cygwin*|msys*|mingw*], [</div><div class='ctx'>     RUBYW_INSTALL_NAME="${ri_prefix}"'$(RUBYW_BASE_NAME)'"${ri_suffix}"</div><div class='ctx'>     rubyw_install_name='$(RUBYW_INSTALL_NAME)'</div><div class='ctx'>     ])</div><div class='hunk'>@@ -3697,6 +4197,7 @@ AS_CASE(["$ruby_version"],</div><div class='ctx'> AS_IF([test ${RUBY_LIB_VERSION_STYLE+set}], [</div><div class='ctx'>     {</div><div class='ctx'>     echo "#define RUBY_LIB_VERSION_STYLE $RUBY_LIB_VERSION_STYLE"</div><div class='add'>+    echo '@%:@include "confdefs.h"'</div><div class='ctx'>     echo '#define STRINGIZE(x) x'</div><div class='ctx'>     test -f revision.h -o -f "${srcdir}/revision.h" || echo '#define RUBY_REVISION 0'</div><div class='ctx'>     echo '#include "version.h"'</div><div class='hunk'>@@ -3779,10 +4280,14 @@ AS_IF([test "${universal_binary-no}" = yes ], [</div><div class='ctx'>     AC_SUBST(UNIVERSAL_ARCHNAMES, "${universal_archnames}")</div><div class='ctx'>     AC_SUBST(UNIVERSAL_INTS, "${ints}")</div><div class='ctx'>     AC_DEFINE_UNQUOTED(RUBY_PLATFORM_OS, "${target_os}")</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_ARCH, "universal-"RUBY_PLATFORM_OS)</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "universal."RUBY_PLATFORM_CPU"-"RUBY_PLATFORM_OS)</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_ARCH, "universal-" RUBY_PLATFORM_OS)</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "universal." RUBY_PLATFORM_CPU "-" RUBY_PLATFORM_OS)</div><div class='ctx'> ], [</div><div class='del'>-    arch="${target_cpu}-${target_os}"</div><div class='add'>+    AS_IF([test "${target_os}-${rb_cv_msvcrt}" = "mingw32-ucrt" ], [</div><div class='add'>+        arch="${target_cpu}-mingw-ucrt"</div><div class='add'>+    ], [</div><div class='add'>+        arch="${target_cpu}-${target_os}"</div><div class='add'>+    ])</div><div class='ctx'>     AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "$arch")</div><div class='ctx'> ])</div><div class='ctx'> </div><div class='hunk'>@@ -3864,6 +4369,13 @@ AS_IF([test -z "$MANTYPE"], [</div><div class='ctx'> ])</div><div class='ctx'> AC_SUBST(MANTYPE)</div><div class='ctx'> </div><div class='add'>+MKMF_VERBOSE=0</div><div class='add'>+AC_ARG_ENABLE(mkmf-verbose,</div><div class='add'>+    AS_HELP_STRING([--enable-mkmf-verbose], [enable verbose in mkmf]),</div><div class='add'>+    [MKMF_VERBOSE=1],</div><div class='add'>+    [MKMF_VERBOSE=0])</div><div class='add'>+AC_SUBST(MKMF_VERBOSE)</div><div class='add'>+</div><div class='ctx'> AC_ARG_ENABLE(rubygems,</div><div class='ctx'> 	AS_HELP_STRING([--disable-rubygems], [disable rubygems by default]),</div><div class='ctx'> 	[enable_rubygems="$enableval"], [enable_rubygems=yes])</div><div class='hunk'>@@ -3886,7 +4398,7 @@ guard=INCLUDE_RUBY_CONFIG_H</div><div class='ctx'> } | tr -d '\015' |</div><div class='ctx'> (</div><div class='ctx'>   AS_IF([test "x$CONFIGURE_TTY" = xyes], [color=--color], [color=])</div><div class='del'>-  exec ${srcdir}/tool/ifchange $color "${config_h}" -</div><div class='add'>+  exec ${SHELL} ${tooldir}/ifchange $color "${config_h}" -</div><div class='ctx'> ) &gt;&amp;AS_MESSAGE_FD || AC_MSG_ERROR([failed to create ${config_h}])</div><div class='ctx'> tr -d '\015' &lt; largefile.h &gt; confdefs.h</div><div class='ctx'> rm largefile.h</div><div class='hunk'>@@ -3917,49 +4429,55 @@ AS_MESSAGE([$PACKAGE library version = $ruby_version])</div><div class='ctx'> AS_IF([test x"$CC_WRAPPER" != x], [</div><div class='ctx'>     CC='$(CC_WRAPPER) '"${CC@%:@$CC_WRAPPER }"</div><div class='ctx'>     CPP='$(CC_WRAPPER) '"${CPP@%:@$CC_WRAPPER }"</div><div class='del'>-    CC_WRAPPER='$(rubyarchdir)/darwin-cc'</div><div class='del'>-    XCC_WRAPPER='$(top_srcdir)/tool/darwin-cc'</div><div class='add'>+    XCC_WRAPPER="$CC_WRAPPER"</div><div class='ctx'> ])</div><div class='ctx'> AC_SUBST(CC_WRAPPER, '')</div><div class='ctx'> AC_SUBST(XCC_WRAPPER)</div><div class='ctx'> </div><div class='ctx'> AS_CASE([" $CPP "], [*" $CC "*], [CPP=`echo " $CPP " | sed "s| $CC |"' $(CC) |;s/^ *//;s/  *$//'`])</div><div class='ctx'> </div><div class='add'>+AS_IF([test ! -f "$srcdir/revision.h"], [</div><div class='add'>+    AS_IF([test "x$HAVE_BASERUBY" = xyes], [</div><div class='add'>+	${BASERUBY} -C "$srcdir" tool/file2lastrev.rb -q --revision.h &gt; "$srcdir/revision.h"</div><div class='add'>+    ], [</div><div class='add'>+	touch "$srcdir/revision.h"</div><div class='add'>+    ])</div><div class='add'>+])</div><div class='add'>+</div><div class='ctx'> AS_IF([test x"$firstmf" != x], [</div><div class='ctx'>     AC_CONFIG_FILES($firstmf:$firsttmpl, [], [firstmf="$firstmf" firsttmpl="$firsttmpl"])</div><div class='ctx'> ])</div><div class='del'>-AC_CONFIG_FILES(Makefile, [</div><div class='add'>+AC_CONFIG_FILES(Makefile:template/Makefile.in, [</div><div class='ctx'>     tmpmk=confmk$$.tmp</div><div class='ctx'>     {</div><div class='ctx'> 	AS_IF([test ${VCS+set}], [</div><div class='ctx'> 	    :</div><div class='del'>-	], [svn info "$srcdir" &gt; /dev/null 2&gt;&amp;1], [</div><div class='del'>-	    VCS='svn'</div><div class='ctx'> 	], [git_dir=`$GIT --work-tree="$srcdir" --git-dir="$srcdir/.git" rev-parse --git-dir 2&gt;/dev/null`], [</div><div class='del'>-	    AS_IF([test -d "$git_dir/svn"], [</div><div class='del'>-		VCS='$(GIT) svn'</div><div class='del'>-	    ], [</div><div class='del'>-		VCS='$(GIT)'</div><div class='del'>-	    ])</div><div class='add'>+	    VCS='$(GIT)'</div><div class='ctx'> 	], [</div><div class='ctx'> 	    VCS='echo cannot'</div><div class='ctx'> 	])</div><div class='ctx'> 	AS_CASE("$VCS",</div><div class='del'>-		[svn],          [VCSUP='$(VCS) up $(SVNUPOPTIONS)'],</div><div class='del'>-		['$(GIT) svn'], [VCSUP='$(VCS) rebase $(GITSVNREBASEOPTIONS)'],</div><div class='del'>-		['$(GIT)'|git], [VCSUP='$(VCS) pull $(GITPULLOPTIONS)'],</div><div class='add'>+		['$(GIT)'|git], [VCSUP='$(VCS) pull --rebase $(GITPULLOPTIONS)'],</div><div class='ctx'> 		[VCSUP='$(VCS)'])</div><div class='del'>-	sed -n \</div><div class='del'>-	    -e '[/^@%:@define \(RUBY_RELEASE_[A-Z]*\) \([0-9][0-9]*\)/]{' \</div><div class='del'>-	    -e   's//\1 = \2/' \</div><div class='del'>-	    -e   '[s/ \([0-9]\)$/ 0\1/]' \</div><div class='del'>-	    -e   p \</div><div class='del'>-	    -e '}' "$srcdir/version.h"</div><div class='add'>+	for f in "$srcdir/version.h" "$srcdir/revision.h"; do</div><div class='add'>+            test -f "$f" || continue</div><div class='add'>+	    sed -n \</div><div class='add'>+	        -e '[/^@%:@define \(RUBY_RELEASE_[A-Z]*\) \([0-9][0-9]*\)/]{' \</div><div class='add'>+	        -e   's//\1 = \2/' \</div><div class='add'>+	        -e   '[s/ \([0-9]\)$/ 0\1/]' \</div><div class='add'>+	        -e   p \</div><div class='add'>+	        -e '}' "$f"</div><div class='add'>+        done</div><div class='ctx'> 	sed '/^MISSING/s/\$U\././g;/^VCS *=/s#@VCS@#'"$VCS"'#;/^VCSUP *=/s#@VCSUP@#'"$VCSUP"'#' Makefile</div><div class='ctx'> 	echo; test x"$EXEEXT" = x || echo 'miniruby: miniruby$(EXEEXT)'</div><div class='ctx'> 	AS_IF([test "$gnumake" != yes], [</div><div class='ctx'> 	    echo ['$(MKFILES): $(srcdir)/common.mk']</div><div class='ctx'> 	    sed ['s/{\$([^(){}]*)[^{}]*}//g'] ${srcdir}/common.mk</div><div class='add'>+            AS_IF([test "$YJIT_SUPPORT" = yes], [</div><div class='add'>+                cat ${srcdir}/yjit/not_gmake.mk</div><div class='add'>+                echo ['$(MKFILES): ${srcdir}/yjit/not_gmake.mk']</div><div class='add'>+            ])</div><div class='ctx'> 	], [</div><div class='ctx'> 	    echo 'distclean-local::; @$(RM) GNUmakefile uncommon.mk'</div><div class='ctx'> 	])</div><div class='hunk'>@@ -3977,10 +4495,10 @@ AC_CONFIG_FILES(Makefile, [</div><div class='ctx'> 	echo 'ruby: $(PROGRAM);' &gt;&gt; $tmpmk</div><div class='ctx'> 	test "$tmpmk" = "$tmpgmk" || rm -f "$tmpgmk"</div><div class='ctx'>     ]) &amp;&amp; mv -f $tmpmk Makefile],</div><div class='del'>-[EXEEXT='$EXEEXT' gnumake='$gnumake' GIT='$GIT'])</div><div class='add'>+[EXEEXT='$EXEEXT' MAKE='${MAKE-make}' gnumake='$gnumake' GIT='$GIT' YJIT_SUPPORT='$YJIT_SUPPORT'])</div><div class='ctx'> </div><div class='ctx'> AC_ARG_WITH([ruby-pc],</div><div class='del'>-	    AC_HELP_STRING([--with-ruby-pc=FILENAME], [pc file basename]),</div><div class='add'>+	    AS_HELP_STRING([--with-ruby-pc=FILENAME], [pc file basename]),</div><div class='ctx'> 	    [ruby_pc="$withval"],</div><div class='ctx'> 	    [ruby_pc="${RUBY_BASE_NAME}-${MAJOR}.${MINOR}.pc"])</div><div class='ctx'> AC_SUBST(ruby_pc)</div><div class='hunk'>@@ -3991,21 +4509,6 @@ AC_ARG_WITH(destdir,</div><div class='ctx'> 	    [DESTDIR="$withval"])</div><div class='ctx'> AC_SUBST(DESTDIR)</div><div class='ctx'> </div><div class='del'>-AC_CONFIG_FILES($ruby_pc:template/ruby.pc.in,</div><div class='del'>-    [</div><div class='del'>-    AS_IF([sed ['s/\$(\([A-Za-z_][A-Za-z0-9_]*\))/${\1}/g;s/@[A-Za-z_][A-Za-z0-9_]*@//'] $ruby_pc &gt; ruby.tmp.pc &amp;&amp;</div><div class='del'>-	{</div><div class='del'>-	    test -z "$PKG_CONFIG" ||</div><div class='del'>-	    PKG_CONFIG_PATH=. $PKG_CONFIG --print-errors ruby.tmp</div><div class='del'>-	}],</div><div class='del'>-    [</div><div class='del'>-	mv -f ruby.tmp.pc $ruby_pc</div><div class='del'>-    ], [</div><div class='del'>-	exit 1</div><div class='del'>-    ])</div><div class='del'>-    ],</div><div class='del'>-    [ruby_pc='$ruby_pc' PKG_CONFIG='$PKG_CONFIG'])</div><div class='del'>-</div><div class='ctx'> AC_OUTPUT</div><div class='ctx'> }</div><div class='ctx'> }</div><div class='hunk'>@@ -4014,19 +4517,23 @@ AS_IF([test "$silent" = yes], [], [</div><div class='ctx'> AS_IF([${FOLD+:} false], [], [</div><div class='ctx'> AS_IF([test "`echo abcdefg hijklmno | fold -s -w10 | sed 1d`" = hijklmno], [FOLD="fold"], [FOLD=])</div><div class='ctx'> ])</div><div class='add'>+fold_width=`expr $COLUMNS - 30 2&gt;/dev/null` || fold_width=50</div><div class='ctx'> AS_REQUIRE_SHELL_FN([config_summary],</div><div class='ctx'>     [AS_FUNCTION_DESCRIBE([config_summary], [NAME, VAL], [configuration summary])],</div><div class='ctx'>     [AS_IF([test -z "$2"], [], [</div><div class='ctx'> 	AS_ECHO_N(["   * $1:                     "]) | dd bs=1 count=26 2&gt;/dev/null</div><div class='ctx'> 	AS_IF([test "$FOLD"], [</div><div class='del'>-	    echo "$2" | fold -s -w50 |</div><div class='add'>+	    echo "$2" | fold -s -w$fold_width |</div><div class='ctx'> 	    sed '1!s/^/                          /;$!s/$/\\/'</div><div class='ctx'> 	], [echo "$2"])</div><div class='ctx'>     ])]</div><div class='ctx'> )</div><div class='ctx'> </div><div class='add'>+AS_IF([test $install_doc = yes],</div><div class='add'>+    [DOCTARGETS=`echo " $RDOCTARGET $CAPITARGET " | sed 's/ nodoc //g;s/^ *//;s/ *$//'`],</div><div class='add'>+    [DOCTARGETS=no])</div><div class='ctx'> echo "---"</div><div class='del'>-echo "Configuration summary for $RUBY_BASE_NAME version $RUBY_PROGRAM_VERSION"</div><div class='add'>+echo "Configuration summary for $RUBY_BASE_NAME version $MAJOR.$MINOR.$TEENY"</div><div class='ctx'> echo ""</div><div class='ctx'> config_summary "Installation prefix" "$prefix"</div><div class='ctx'> config_summary "exec prefix"         "$exec_prefix"</div><div class='hunk'>@@ -4039,7 +4546,8 @@ config_summary "site libraries path" "$rubysitearchprefix"</div><div class='ctx'> config_summary "vendor path"         "$vendordir"</div><div class='ctx'> config_summary "target OS"           "$target_os"</div><div class='ctx'> config_summary "compiler"            "$CC"</div><div class='del'>-config_summary "with pthread"        "$enable_pthread"</div><div class='add'>+config_summary "with thread"         "$THREAD_MODEL"</div><div class='add'>+config_summary "with coroutine"      "$coroutine_type"</div><div class='ctx'> config_summary "enable shared libs"  "$ENABLE_SHARED"</div><div class='ctx'> config_summary "dynamic library ext" "$DLEXT"</div><div class='ctx'> config_summary "CFLAGS"              "$cflags"</div><div class='hunk'>@@ -4050,11 +4558,13 @@ config_summary "optflags"            "$optflags"</div><div class='ctx'> config_summary "debugflags"          "$debugflags"</div><div class='ctx'> config_summary "warnflags"           "$warnflags"</div><div class='ctx'> config_summary "strip command"       "$STRIP"</div><div class='del'>-config_summary "install doc"         "$install_doc"</div><div class='del'>-config_summary "JIT support"         "$MJIT_SUPPORT"</div><div class='add'>+config_summary "install doc"         "$DOCTARGETS"</div><div class='add'>+config_summary "MJIT support"        "$MJIT_SUPPORT"</div><div class='add'>+config_summary "YJIT support"        "$YJIT_SUPPORT"</div><div class='ctx'> config_summary "man page type"       "$MANTYPE"</div><div class='ctx'> config_summary "search path"         "$search_path"</div><div class='ctx'> config_summary "static-linked-ext"   ${EXTSTATIC:+"yes"}</div><div class='add'>+config_summary "BASERUBY -v"         "$BASERUBY_VERSION"</div><div class='ctx'> echo ""</div><div class='ctx'> echo "---"</div><div class='ctx'> ])</div><div class='head'>diff --git a/constant.h b/constant.h<br/>index fcccf07384..e0d36909e1 100644<br/>--- a/<a href='/ruby.git/tree/constant.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>constant.h</a><br/>+++ b/<a href='/ruby.git/tree/constant.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>constant.h</a></div><div class='hunk'>@@ -1,3 +1,5 @@</div><div class='add'>+#ifndef CONSTANT_H</div><div class='add'>+#define CONSTANT_H</div><div class='ctx'> /**********************************************************************</div><div class='ctx'> </div><div class='ctx'>   constant.h -</div><div class='hunk'>@@ -8,8 +10,8 @@</div><div class='ctx'>   Copyright (C) 2009 Yusuke Endoh</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='del'>-#ifndef CONSTANT_H</div><div class='del'>-#define CONSTANT_H</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "id_table.h"</div><div class='ctx'> </div><div class='ctx'> typedef enum {</div><div class='ctx'>     CONST_DEPRECATED = 0x100,</div><div class='hunk'>@@ -31,21 +33,23 @@ typedef enum {</div><div class='ctx'> typedef struct rb_const_entry_struct {</div><div class='ctx'>     rb_const_flag_t flag;</div><div class='ctx'>     int line;</div><div class='del'>-    const VALUE value;            /* should be mark */</div><div class='del'>-    const VALUE file;             /* should be mark */</div><div class='add'>+    VALUE value;            /* should be mark */</div><div class='add'>+    VALUE file;             /* should be mark */</div><div class='ctx'> } rb_const_entry_t;</div><div class='ctx'> </div><div class='ctx'> VALUE rb_mod_private_constant(int argc, const VALUE *argv, VALUE obj);</div><div class='ctx'> VALUE rb_mod_public_constant(int argc, const VALUE *argv, VALUE obj);</div><div class='ctx'> VALUE rb_mod_deprecate_constant(int argc, const VALUE *argv, VALUE obj);</div><div class='ctx'> void rb_free_const_table(struct rb_id_table *tbl);</div><div class='del'>-VALUE rb_public_const_get(VALUE klass, ID id);</div><div class='add'>+VALUE rb_const_source_location(VALUE, ID);</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);</div><div class='add'>+rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);</div><div class='ctx'> VALUE rb_public_const_get_at(VALUE klass, ID id);</div><div class='ctx'> VALUE rb_public_const_get_from(VALUE klass, ID id);</div><div class='del'>-int rb_public_const_defined(VALUE klass, ID id);</div><div class='del'>-int rb_public_const_defined_at(VALUE klass, ID id);</div><div class='ctx'> int rb_public_const_defined_from(VALUE klass, ID id);</div><div class='del'>-rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);</div><div class='del'>-int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);</div><div class='add'>+VALUE rb_const_source_location_at(VALUE, ID);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='ctx'> </div><div class='ctx'> #endif /* CONSTANT_H */</div><div class='head'>diff --git a/cont.c b/cont.c<br/>index da469b6cd5..5375d1945b 100644<br/>--- a/<a href='/ruby.git/tree/cont.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>cont.c</a><br/>+++ b/<a href='/ruby.git/tree/cont.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>cont.c</a></div><div class='hunk'>@@ -9,93 +9,69 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "vm_core.h"</div><div class='del'>-#include "gc.h"</div><div class='del'>-#include "eval_intern.h"</div><div class='del'>-#include "mjit.h"</div><div class='del'>-</div><div class='del'>-/* FIBER_USE_NATIVE enables Fiber performance improvement using system</div><div class='del'>- * dependent method such as make/setcontext on POSIX system or</div><div class='del'>- * CreateFiber() API on Windows.</div><div class='del'>- * This hack make Fiber context switch faster (x2 or more).</div><div class='del'>- * However, it decrease maximum number of Fiber.  For example, on the</div><div class='del'>- * 32bit POSIX OS, ten or twenty thousands Fiber can be created.</div><div class='del'>- *</div><div class='del'>- * Details is reported in the paper "A Fast Fiber Implementation for Ruby 1.9"</div><div class='del'>- * in Proc. of 51th Programming Symposium, pp.21--28 (2010) (in Japanese).</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>-  Enable FIBER_USE_COROUTINE to make fiber yield/resume much faster by using native assembly implementations.</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> </div><div class='del'>-  rvm install ruby-head-ioquatix-native-fiber --url https://github.com/ioquatix/ruby --branch native-fiber</div><div class='add'>+#ifndef _WIN32</div><div class='add'>+#include &lt;unistd.h&gt;</div><div class='add'>+#include &lt;sys/mman.h&gt;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-  # Without libcoro</div><div class='del'>-  koyoko% ./build/bin/ruby ./fiber_benchmark.rb 10000 1000</div><div class='del'>-  setup time for 10000 fibers:   0.099961</div><div class='del'>-  execution time for 1000 messages:  19.505909</div><div class='add'>+// On Solaris, madvise() is NOT declared for SUS (XPG4v2) or later,</div><div class='add'>+// but MADV_* macros are defined when __EXTENSIONS__ is defined.</div><div class='add'>+#ifdef NEED_MADVICE_PROTOTYPE_USING_CADDR_T</div><div class='add'>+#include &lt;sys/types.h&gt;</div><div class='add'>+extern int madvise(caddr_t, size_t, int);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-  # With libcoro</div><div class='del'>-  koyoko% ./build/bin/ruby ./fiber_benchmark.rb 10000 1000</div><div class='del'>-  setup time for 10000 fibers:   0.099268</div><div class='del'>-  execution time for 1000 messages:   8.491746</div><div class='del'>-*/</div><div class='add'>+#include COROUTINE_H</div><div class='ctx'> </div><div class='del'>-#ifdef FIBER_USE_COROUTINE</div><div class='del'>-#include FIBER_USE_COROUTINE</div><div class='del'>-#define FIBER_USE_NATIVE 1</div><div class='del'>-#endif</div><div class='add'>+#include "eval_intern.h"</div><div class='add'>+#include "gc.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/cont.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/proc.h"</div><div class='add'>+#include "internal/sanitizers.h"</div><div class='add'>+#include "internal/warnings.h"</div><div class='add'>+#include "ruby/fiber/scheduler.h"</div><div class='add'>+#include "mjit.h"</div><div class='add'>+#include "yjit.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "vm_sync.h"</div><div class='add'>+#include "id_table.h"</div><div class='add'>+#include "ractor_core.h"</div><div class='ctx'> </div><div class='del'>-#if !defined(FIBER_USE_NATIVE)</div><div class='del'>-# if defined(HAVE_GETCONTEXT) &amp;&amp; defined(HAVE_SETCONTEXT)</div><div class='del'>-#   if 0</div><div class='del'>-#   elif defined(__NetBSD__)</div><div class='del'>-/* On our experience, NetBSD doesn't support using setcontext() and pthread</div><div class='del'>- * simultaneously.  This is because pthread_self(), TLS and other information</div><div class='del'>- * are represented by stack pointer (higher bits of stack pointer).</div><div class='del'>- * TODO: check such constraint on configure.</div><div class='del'>- */</div><div class='del'>-#     define FIBER_USE_NATIVE 0</div><div class='del'>-#   elif defined(__sun)</div><div class='del'>-/* On Solaris because resuming any Fiber caused SEGV, for some reason.</div><div class='del'>- */</div><div class='del'>-#     define FIBER_USE_NATIVE 0</div><div class='del'>-#   elif defined(__ia64)</div><div class='del'>-/* At least, Linux/ia64's getcontext(3) doesn't save register window.</div><div class='del'>- */</div><div class='del'>-#     define FIBER_USE_NATIVE 0</div><div class='del'>-#   elif defined(__GNU__)</div><div class='del'>-/* GNU/Hurd doesn't fully support getcontext, setcontext, makecontext</div><div class='del'>- * and swapcontext functions. Disabling their usage till support is</div><div class='del'>- * implemented. More info at</div><div class='del'>- * http://darnassus.sceen.net/~hurd-web/open_issues/glibc/#getcontext</div><div class='del'>- */</div><div class='del'>-#     define FIBER_USE_NATIVE 0</div><div class='del'>-#   else</div><div class='del'>-#     define FIBER_USE_NATIVE 1</div><div class='del'>-#   endif</div><div class='del'>-# elif defined(_WIN32)</div><div class='del'>-#  define FIBER_USE_NATIVE 1</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-#if !defined(FIBER_USE_NATIVE)</div><div class='del'>-#define FIBER_USE_NATIVE 0</div><div class='del'>-#endif</div><div class='add'>+static const int DEBUG = 0;</div><div class='ctx'> </div><div class='del'>-#if FIBER_USE_NATIVE</div><div class='del'>-#ifndef _WIN32</div><div class='del'>-#include &lt;unistd.h&gt;</div><div class='del'>-#include &lt;sys/mman.h&gt;</div><div class='del'>-#include &lt;ucontext.h&gt;</div><div class='del'>-#endif</div><div class='ctx'> #define RB_PAGE_SIZE (pagesize)</div><div class='ctx'> #define RB_PAGE_MASK (~(RB_PAGE_SIZE - 1))</div><div class='ctx'> static long pagesize;</div><div class='del'>-#endif /*FIBER_USE_NATIVE*/</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t cont_data_type, fiber_data_type;</div><div class='add'>+static VALUE rb_cContinuation;</div><div class='add'>+static VALUE rb_cFiber;</div><div class='add'>+static VALUE rb_eFiberError;</div><div class='add'>+#ifdef RB_EXPERIMENTAL_FIBER_POOL</div><div class='add'>+static VALUE rb_cFiberPool;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #define CAPTURE_JUST_VALID_VM_STACK 1</div><div class='ctx'> </div><div class='add'>+// Defined in `coroutine/$arch/Context.h`:</div><div class='add'>+#ifdef COROUTINE_LIMITED_ADDRESS_SPACE</div><div class='add'>+#define FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+#define FIBER_POOL_INITIAL_SIZE 8</div><div class='add'>+#define FIBER_POOL_ALLOCATION_MAXIMUM_SIZE 32</div><div class='add'>+#else</div><div class='add'>+#define FIBER_POOL_INITIAL_SIZE 32</div><div class='add'>+#define FIBER_POOL_ALLOCATION_MAXIMUM_SIZE 1024</div><div class='add'>+#endif</div><div class='add'>+#ifdef RB_EXPERIMENTAL_FIBER_POOL</div><div class='add'>+#define FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define jit_cont_enabled (mjit_enabled || rb_yjit_enabled_p())</div><div class='add'>+</div><div class='ctx'> enum context_type {</div><div class='ctx'>     CONTINUATION_CONTEXT = 0,</div><div class='ctx'>     FIBER_CONTEXT = 1</div><div class='hunk'>@@ -109,29 +85,148 @@ struct cont_saved_vm_stack {</div><div class='ctx'> #endif</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+struct fiber_pool;</div><div class='add'>+</div><div class='add'>+// Represents a single stack.</div><div class='add'>+struct fiber_pool_stack {</div><div class='add'>+    // A pointer to the memory allocation (lowest address) for the stack.</div><div class='add'>+    void * base;</div><div class='add'>+</div><div class='add'>+    // The current stack pointer, taking into account the direction of the stack.</div><div class='add'>+    void * current;</div><div class='add'>+</div><div class='add'>+    // The size of the stack excluding any guard pages.</div><div class='add'>+    size_t size;</div><div class='add'>+</div><div class='add'>+    // The available stack capacity w.r.t. the current stack offset.</div><div class='add'>+    size_t available;</div><div class='add'>+</div><div class='add'>+    // The pool this stack should be allocated from.</div><div class='add'>+    struct fiber_pool * pool;</div><div class='add'>+</div><div class='add'>+    // If the stack is allocated, the allocation it came from.</div><div class='add'>+    struct fiber_pool_allocation * allocation;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+// A linked list of vacant (unused) stacks.</div><div class='add'>+// This structure is stored in the first page of a stack if it is not in use.</div><div class='add'>+// @sa fiber_pool_vacancy_pointer</div><div class='add'>+struct fiber_pool_vacancy {</div><div class='add'>+    // Details about the vacant stack:</div><div class='add'>+    struct fiber_pool_stack stack;</div><div class='add'>+</div><div class='add'>+    // The vacancy linked list.</div><div class='add'>+#ifdef FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+    struct fiber_pool_vacancy * previous;</div><div class='add'>+#endif</div><div class='add'>+    struct fiber_pool_vacancy * next;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+// Manages singly linked list of mapped regions of memory which contains 1 more more stack:</div><div class='add'>+//</div><div class='add'>+// base = +-------------------------------+-----------------------+  +</div><div class='add'>+//        |VM Stack       |VM Stack       |                       |  |</div><div class='add'>+//        |               |               |                       |  |</div><div class='add'>+//        |               |               |                       |  |</div><div class='add'>+//        +-------------------------------+                       |  |</div><div class='add'>+//        |Machine Stack  |Machine Stack  |                       |  |</div><div class='add'>+//        |               |               |                       |  |</div><div class='add'>+//        |               |               |                       |  |</div><div class='add'>+//        |               |               | .  .  .  .            |  |  size</div><div class='add'>+//        |               |               |                       |  |</div><div class='add'>+//        |               |               |                       |  |</div><div class='add'>+//        |               |               |                       |  |</div><div class='add'>+//        |               |               |                       |  |</div><div class='add'>+//        |               |               |                       |  |</div><div class='add'>+//        +-------------------------------+                       |  |</div><div class='add'>+//        |Guard Page     |Guard Page     |                       |  |</div><div class='add'>+//        +-------------------------------+-----------------------+  v</div><div class='add'>+//</div><div class='add'>+//        +-------------------------------------------------------&gt;</div><div class='add'>+//</div><div class='add'>+//                                  count</div><div class='add'>+//</div><div class='add'>+struct fiber_pool_allocation {</div><div class='add'>+    // A pointer to the memory mapped region.</div><div class='add'>+    void * base;</div><div class='add'>+</div><div class='add'>+    // The size of the individual stacks.</div><div class='add'>+    size_t size;</div><div class='add'>+</div><div class='add'>+    // The stride of individual stacks (including any guard pages or other accounting details).</div><div class='add'>+    size_t stride;</div><div class='add'>+</div><div class='add'>+    // The number of stacks that were allocated.</div><div class='add'>+    size_t count;</div><div class='add'>+</div><div class='add'>+#ifdef FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+    // The number of stacks used in this allocation.</div><div class='add'>+    size_t used;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    struct fiber_pool * pool;</div><div class='add'>+</div><div class='add'>+    // The allocation linked list.</div><div class='add'>+#ifdef FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+    struct fiber_pool_allocation * previous;</div><div class='add'>+#endif</div><div class='add'>+    struct fiber_pool_allocation * next;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+// A fiber pool manages vacant stacks to reduce the overhead of creating fibers.</div><div class='add'>+struct fiber_pool {</div><div class='add'>+    // A singly-linked list of allocations which contain 1 or more stacks each.</div><div class='add'>+    struct fiber_pool_allocation * allocations;</div><div class='add'>+</div><div class='add'>+    // Provides O(1) stack "allocation":</div><div class='add'>+    struct fiber_pool_vacancy * vacancies;</div><div class='add'>+</div><div class='add'>+    // The size of the stack allocations (excluding any guard page).</div><div class='add'>+    size_t size;</div><div class='add'>+</div><div class='add'>+    // The total number of stacks that have been allocated in this pool.</div><div class='add'>+    size_t count;</div><div class='add'>+</div><div class='add'>+    // The initial number of stacks to allocate.</div><div class='add'>+    size_t initial_count;</div><div class='add'>+</div><div class='add'>+    // Whether to madvise(free) the stack or not:</div><div class='add'>+    int free_stacks;</div><div class='add'>+</div><div class='add'>+    // The number of stacks that have been used in this pool.</div><div class='add'>+    size_t used;</div><div class='add'>+</div><div class='add'>+    // The amount to allocate for the vm_stack:</div><div class='add'>+    size_t vm_stack_size;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+// Continuation contexts used by JITs</div><div class='add'>+struct rb_jit_cont {</div><div class='add'>+    rb_execution_context_t *ec; // continuation ec</div><div class='add'>+    struct rb_jit_cont *prev, *next; // used to form lists</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+// Doubly linked list for enumerating all on-stack ISEQs.</div><div class='add'>+static struct rb_jit_cont *first_jit_cont;</div><div class='add'>+</div><div class='ctx'> typedef struct rb_context_struct {</div><div class='ctx'>     enum context_type type;</div><div class='ctx'>     int argc;</div><div class='add'>+    int kw_splat;</div><div class='ctx'>     VALUE self;</div><div class='ctx'>     VALUE value;</div><div class='ctx'> </div><div class='ctx'>     struct cont_saved_vm_stack saved_vm_stack;</div><div class='ctx'> </div><div class='ctx'>     struct {</div><div class='del'>-	VALUE *stack;</div><div class='del'>-	VALUE *stack_src;</div><div class='del'>-	size_t stack_size;</div><div class='del'>-#ifdef __ia64</div><div class='del'>-	VALUE *register_stack;</div><div class='del'>-	VALUE *register_stack_src;</div><div class='del'>-	int register_stack_size;</div><div class='del'>-#endif</div><div class='add'>+        VALUE *stack;</div><div class='add'>+        VALUE *stack_src;</div><div class='add'>+        size_t stack_size;</div><div class='ctx'>     } machine;</div><div class='ctx'>     rb_execution_context_t saved_ec;</div><div class='ctx'>     rb_jmpbuf_t jmpbuf;</div><div class='ctx'>     rb_ensure_entry_t *ensure_array;</div><div class='del'>-    /* Pointer to MJIT info about the continuation.  */</div><div class='del'>-    struct mjit_cont *mjit_cont;</div><div class='add'>+    struct rb_jit_cont *jit_cont; // Continuation contexts for JITs</div><div class='ctx'> } rb_context_t;</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -154,157 +249,681 @@ enum fiber_status {</div><div class='ctx'>     FIBER_TERMINATED</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-#define FIBER_CREATED_P(fib)    ((fib)-&gt;status == FIBER_CREATED)</div><div class='del'>-#define FIBER_RESUMED_P(fib)    ((fib)-&gt;status == FIBER_RESUMED)</div><div class='del'>-#define FIBER_SUSPENDED_P(fib)  ((fib)-&gt;status == FIBER_SUSPENDED)</div><div class='del'>-#define FIBER_TERMINATED_P(fib) ((fib)-&gt;status == FIBER_TERMINATED)</div><div class='del'>-#define FIBER_RUNNABLE_P(fib)   (FIBER_CREATED_P(fib) || FIBER_SUSPENDED_P(fib))</div><div class='del'>-</div><div class='del'>-#if FIBER_USE_NATIVE &amp;&amp; !defined(FIBER_USE_COROUTINE) &amp;&amp; !defined(_WIN32)</div><div class='del'>-static inline int</div><div class='del'>-fiber_context_create(ucontext_t *context, void (*func)(), void *arg, void *ptr, size_t size)</div><div class='del'>-{</div><div class='del'>-    if (getcontext(context) &lt; 0) return -1;</div><div class='del'>-    /*</div><div class='del'>-     * getcontext() may fail by some reasons:</div><div class='del'>-     *   1. SELinux policy banned one of "rt_sigprocmask",</div><div class='del'>-     *      "sigprocmask" or "swapcontext";</div><div class='del'>-     *   2. libseccomp (aka. syscall filter) banned one of them.</div><div class='del'>-     */</div><div class='del'>-    context-&gt;uc_link = NULL;</div><div class='del'>-    context-&gt;uc_stack.ss_sp = ptr;</div><div class='del'>-    context-&gt;uc_stack.ss_size = size;</div><div class='del'>-    makecontext(context, func, 0);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='add'>+#define FIBER_CREATED_P(fiber)    ((fiber)-&gt;status == FIBER_CREATED)</div><div class='add'>+#define FIBER_RESUMED_P(fiber)    ((fiber)-&gt;status == FIBER_RESUMED)</div><div class='add'>+#define FIBER_SUSPENDED_P(fiber)  ((fiber)-&gt;status == FIBER_SUSPENDED)</div><div class='add'>+#define FIBER_TERMINATED_P(fiber) ((fiber)-&gt;status == FIBER_TERMINATED)</div><div class='add'>+#define FIBER_RUNNABLE_P(fiber)   (FIBER_CREATED_P(fiber) || FIBER_SUSPENDED_P(fiber))</div><div class='ctx'> </div><div class='ctx'> struct rb_fiber_struct {</div><div class='ctx'>     rb_context_t cont;</div><div class='ctx'>     VALUE first_proc;</div><div class='ctx'>     struct rb_fiber_struct *prev;</div><div class='add'>+    struct rb_fiber_struct *resuming_fiber;</div><div class='add'>+</div><div class='ctx'>     BITFIELD(enum fiber_status, status, 2);</div><div class='del'>-    /* If a fiber invokes "transfer",</div><div class='del'>-     * then this fiber can't "resume" any more after that.</div><div class='del'>-     * You shouldn't mix "transfer" and "resume".</div><div class='del'>-     */</div><div class='del'>-    unsigned int transferred : 1;</div><div class='del'>-</div><div class='del'>-#if FIBER_USE_NATIVE</div><div class='del'>-#if defined(FIBER_USE_COROUTINE)</div><div class='del'>-#define FIBER_ALLOCATE_STACK</div><div class='del'>-    coroutine_context context;</div><div class='del'>-    void *ss_sp;</div><div class='del'>-    size_t ss_size;</div><div class='del'>-#elif defined(_WIN32)</div><div class='del'>-    void *fib_handle;</div><div class='add'>+    /* Whether the fiber is allowed to implicitly yield. */</div><div class='add'>+    unsigned int yielding : 1;</div><div class='add'>+    unsigned int blocking : 1;</div><div class='add'>+</div><div class='add'>+    struct coroutine_context context;</div><div class='add'>+    struct fiber_pool_stack stack;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static struct fiber_pool shared_fiber_pool = {NULL, NULL, 0, 0, 0, 0};</div><div class='add'>+</div><div class='add'>+static ID fiber_initialize_keywords[3] = {0};</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * FreeBSD require a first (i.e. addr) argument of mmap(2) is not NULL</div><div class='add'>+ * if MAP_STACK is passed.</div><div class='add'>+ * https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=158755</div><div class='add'>+ */</div><div class='add'>+#if defined(MAP_STACK) &amp;&amp; !defined(__FreeBSD__) &amp;&amp; !defined(__FreeBSD_kernel__)</div><div class='add'>+#define FIBER_STACK_FLAGS (MAP_PRIVATE | MAP_ANON | MAP_STACK)</div><div class='ctx'> #else</div><div class='del'>-#define FIBER_ALLOCATE_STACK</div><div class='del'>-    ucontext_t context;</div><div class='del'>-    /* Because context.uc_stack.ss_sp and context.uc_stack.ss_size</div><div class='del'>-     * are not necessarily valid after makecontext() or swapcontext(),</div><div class='del'>-     * they are saved in these variables for later use.</div><div class='del'>-     */</div><div class='del'>-    void *ss_sp;</div><div class='del'>-    size_t ss_size;</div><div class='del'>-#endif</div><div class='add'>+#define FIBER_STACK_FLAGS (MAP_PRIVATE | MAP_ANON)</div><div class='ctx'> #endif</div><div class='del'>-};</div><div class='ctx'> </div><div class='del'>-#ifdef FIBER_ALLOCATE_STACK</div><div class='del'>-#define MAX_MACHINE_STACK_CACHE  10</div><div class='del'>-static int machine_stack_cache_index = 0;</div><div class='del'>-typedef struct machine_stack_cache_struct {</div><div class='del'>-    void *ptr;</div><div class='del'>-    size_t size;</div><div class='del'>-} machine_stack_cache_t;</div><div class='del'>-static machine_stack_cache_t machine_stack_cache[MAX_MACHINE_STACK_CACHE];</div><div class='del'>-static machine_stack_cache_t terminated_machine_stack;</div><div class='add'>+#define ERRNOMSG strerror(errno)</div><div class='add'>+</div><div class='add'>+// Locates the stack vacancy details for the given stack.</div><div class='add'>+inline static struct fiber_pool_vacancy *</div><div class='add'>+fiber_pool_vacancy_pointer(void * base, size_t size)</div><div class='add'>+{</div><div class='add'>+    STACK_GROW_DIR_DETECTION;</div><div class='add'>+</div><div class='add'>+    return (struct fiber_pool_vacancy *)(</div><div class='add'>+        (char*)base + STACK_DIR_UPPER(0, size - RB_PAGE_SIZE)</div><div class='add'>+    );</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+// Compute the base pointer for a vacant stack, for the area which can be poisoned.</div><div class='add'>+inline static void *</div><div class='add'>+fiber_pool_stack_poison_base(struct fiber_pool_stack * stack)</div><div class='add'>+{</div><div class='add'>+    STACK_GROW_DIR_DETECTION;</div><div class='add'>+</div><div class='add'>+    return (char*)stack-&gt;base + STACK_DIR_UPPER(RB_PAGE_SIZE, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Compute the size of the vacant stack, for the area that can be poisoned.</div><div class='add'>+inline static size_t</div><div class='add'>+fiber_pool_stack_poison_size(struct fiber_pool_stack * stack)</div><div class='add'>+{</div><div class='add'>+    return stack-&gt;size - RB_PAGE_SIZE;</div><div class='add'>+}</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-static const char *</div><div class='del'>-fiber_status_name(enum fiber_status s)</div><div class='add'>+// Reset the current stack pointer and available size of the given stack.</div><div class='add'>+inline static void</div><div class='add'>+fiber_pool_stack_reset(struct fiber_pool_stack * stack)</div><div class='ctx'> {</div><div class='del'>-    switch (s) {</div><div class='del'>-      case FIBER_CREATED: return "created";</div><div class='del'>-      case FIBER_RESUMED: return "resumed";</div><div class='del'>-      case FIBER_SUSPENDED: return "suspended";</div><div class='del'>-      case FIBER_TERMINATED: return "terminated";</div><div class='add'>+    STACK_GROW_DIR_DETECTION;</div><div class='add'>+</div><div class='add'>+    stack-&gt;current = (char*)stack-&gt;base + STACK_DIR_UPPER(0, stack-&gt;size);</div><div class='add'>+    stack-&gt;available = stack-&gt;size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// A pointer to the base of the current unused portion of the stack.</div><div class='add'>+inline static void *</div><div class='add'>+fiber_pool_stack_base(struct fiber_pool_stack * stack)</div><div class='add'>+{</div><div class='add'>+    STACK_GROW_DIR_DETECTION;</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(stack-&gt;current);</div><div class='add'>+</div><div class='add'>+    return STACK_DIR_UPPER(stack-&gt;current, (char*)stack-&gt;current - stack-&gt;available);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Allocate some memory from the stack. Used to allocate vm_stack inline with machine stack.</div><div class='add'>+// @sa fiber_initialize_coroutine</div><div class='add'>+inline static void *</div><div class='add'>+fiber_pool_stack_alloca(struct fiber_pool_stack * stack, size_t offset)</div><div class='add'>+{</div><div class='add'>+    STACK_GROW_DIR_DETECTION;</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "fiber_pool_stack_alloca(%p): %"PRIuSIZE"/%"PRIuSIZE"\n", (void*)stack, offset, stack-&gt;available);</div><div class='add'>+    VM_ASSERT(stack-&gt;available &gt;= offset);</div><div class='add'>+</div><div class='add'>+    // The pointer to the memory being allocated:</div><div class='add'>+    void * pointer = STACK_DIR_UPPER(stack-&gt;current, (char*)stack-&gt;current - offset);</div><div class='add'>+</div><div class='add'>+    // Move the stack pointer:</div><div class='add'>+    stack-&gt;current = STACK_DIR_UPPER((char*)stack-&gt;current + offset, (char*)stack-&gt;current - offset);</div><div class='add'>+    stack-&gt;available -= offset;</div><div class='add'>+</div><div class='add'>+    return pointer;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Reset the current stack pointer and available size of the given stack.</div><div class='add'>+inline static void</div><div class='add'>+fiber_pool_vacancy_reset(struct fiber_pool_vacancy * vacancy)</div><div class='add'>+{</div><div class='add'>+    fiber_pool_stack_reset(&amp;vacancy-&gt;stack);</div><div class='add'>+</div><div class='add'>+    // Consume one page of the stack because it's used for the vacancy list:</div><div class='add'>+    fiber_pool_stack_alloca(&amp;vacancy-&gt;stack, RB_PAGE_SIZE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static struct fiber_pool_vacancy *</div><div class='add'>+fiber_pool_vacancy_push(struct fiber_pool_vacancy * vacancy, struct fiber_pool_vacancy * head)</div><div class='add'>+{</div><div class='add'>+    vacancy-&gt;next = head;</div><div class='add'>+</div><div class='add'>+#ifdef FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+    if (head) {</div><div class='add'>+        head-&gt;previous = vacancy;</div><div class='add'>+        vacancy-&gt;previous = NULL;</div><div class='ctx'>     }</div><div class='del'>-    VM_UNREACHABLE(fiber_status_name);</div><div class='del'>-    return NULL;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return vacancy;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef FIBER_POOL_ALLOCATION_FREE</div><div class='ctx'> static void</div><div class='del'>-fiber_verify(const rb_fiber_t *fib)</div><div class='add'>+fiber_pool_vacancy_remove(struct fiber_pool_vacancy * vacancy)</div><div class='ctx'> {</div><div class='del'>-#if VM_CHECK_MODE &gt; 0</div><div class='del'>-    VM_ASSERT(fib-&gt;cont.saved_ec.fiber_ptr == fib);</div><div class='add'>+    if (vacancy-&gt;next) {</div><div class='add'>+        vacancy-&gt;next-&gt;previous = vacancy-&gt;previous;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    switch (fib-&gt;status) {</div><div class='del'>-      case FIBER_RESUMED:</div><div class='del'>-	VM_ASSERT(fib-&gt;cont.saved_ec.vm_stack != NULL);</div><div class='del'>-	break;</div><div class='del'>-      case FIBER_SUSPENDED:</div><div class='del'>-	VM_ASSERT(fib-&gt;cont.saved_ec.vm_stack != NULL);</div><div class='del'>-	break;</div><div class='del'>-      case FIBER_CREATED:</div><div class='del'>-      case FIBER_TERMINATED:</div><div class='del'>-	/* TODO */</div><div class='del'>-	break;</div><div class='del'>-      default:</div><div class='del'>-	VM_UNREACHABLE(fiber_verify);</div><div class='add'>+    if (vacancy-&gt;previous) {</div><div class='add'>+        vacancy-&gt;previous-&gt;next = vacancy-&gt;next;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        // It's the head of the list:</div><div class='add'>+        vacancy-&gt;stack.pool-&gt;vacancies = vacancy-&gt;next;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static struct fiber_pool_vacancy *</div><div class='add'>+fiber_pool_vacancy_pop(struct fiber_pool * pool)</div><div class='add'>+{</div><div class='add'>+    struct fiber_pool_vacancy * vacancy = pool-&gt;vacancies;</div><div class='add'>+</div><div class='add'>+    if (vacancy) {</div><div class='add'>+        fiber_pool_vacancy_remove(vacancy);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return vacancy;</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+inline static struct fiber_pool_vacancy *</div><div class='add'>+fiber_pool_vacancy_pop(struct fiber_pool * pool)</div><div class='add'>+{</div><div class='add'>+    struct fiber_pool_vacancy * vacancy = pool-&gt;vacancies;</div><div class='add'>+</div><div class='add'>+    if (vacancy) {</div><div class='add'>+        pool-&gt;vacancies = vacancy-&gt;next;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    return vacancy;</div><div class='add'>+}</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='add'>+// Initialize the vacant stack. The [base, size] allocation should not include the guard page.</div><div class='add'>+// @param base The pointer to the lowest address of the allocated memory.</div><div class='add'>+// @param size The size of the allocated memory.</div><div class='add'>+inline static struct fiber_pool_vacancy *</div><div class='add'>+fiber_pool_vacancy_initialize(struct fiber_pool * fiber_pool, struct fiber_pool_vacancy * vacancies, void * base, size_t size)</div><div class='add'>+{</div><div class='add'>+    struct fiber_pool_vacancy * vacancy = fiber_pool_vacancy_pointer(base, size);</div><div class='add'>+</div><div class='add'>+    vacancy-&gt;stack.base = base;</div><div class='add'>+    vacancy-&gt;stack.size = size;</div><div class='add'>+</div><div class='add'>+    fiber_pool_vacancy_reset(vacancy);</div><div class='add'>+</div><div class='add'>+    vacancy-&gt;stack.pool = fiber_pool;</div><div class='add'>+</div><div class='add'>+    return fiber_pool_vacancy_push(vacancy, vacancies);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if VM_CHECK_MODE &gt; 0</div><div class='del'>-void</div><div class='del'>-rb_ec_verify(const rb_execution_context_t *ec)</div><div class='add'>+// Allocate a maximum of count stacks, size given by stride.</div><div class='add'>+// @param count the number of stacks to allocate / were allocated.</div><div class='add'>+// @param stride the size of the individual stacks.</div><div class='add'>+// @return [void *] the allocated memory or NULL if allocation failed.</div><div class='add'>+inline static void *</div><div class='add'>+fiber_pool_allocate_memory(size_t * count, size_t stride)</div><div class='ctx'> {</div><div class='del'>-    /* TODO */</div><div class='add'>+    // We use a divide-by-2 strategy to try and allocate memory. We are trying</div><div class='add'>+    // to allocate `count` stacks. In normal situation, this won't fail. But</div><div class='add'>+    // if we ran out of address space, or we are allocating more memory than</div><div class='add'>+    // the system would allow (e.g. overcommit * physical memory + swap), we</div><div class='add'>+    // divide count by two and try again. This condition should only be</div><div class='add'>+    // encountered in edge cases, but we handle it here gracefully.</div><div class='add'>+    while (*count &gt; 1) {</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+        void * base = VirtualAlloc(0, (*count)*stride, MEM_COMMIT, PAGE_READWRITE);</div><div class='add'>+</div><div class='add'>+        if (!base) {</div><div class='add'>+            *count = (*count) &gt;&gt; 1;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return base;</div><div class='add'>+        }</div><div class='add'>+#else</div><div class='add'>+        errno = 0;</div><div class='add'>+        void * base = mmap(NULL, (*count)*stride, PROT_READ | PROT_WRITE, FIBER_STACK_FLAGS, -1, 0);</div><div class='add'>+</div><div class='add'>+        if (base == MAP_FAILED) {</div><div class='add'>+            // If the allocation fails, count = count / 2, and try again.</div><div class='add'>+            *count = (*count) &gt;&gt; 1;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+#if defined(MADV_FREE_REUSE)</div><div class='add'>+            // On Mac MADV_FREE_REUSE is necessary for the task_info api</div><div class='add'>+            // to keep the accounting accurate as possible when a page is marked as reusable</div><div class='add'>+            // it can possibly not occurring at first call thus re-iterating if necessary.</div><div class='add'>+            while (madvise(base, (*count)*stride, MADV_FREE_REUSE) == -1 &amp;&amp; errno == EAGAIN);</div><div class='add'>+#endif</div><div class='add'>+            return base;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return NULL;</div><div class='ctx'> }</div><div class='add'>+</div><div class='add'>+// Given an existing fiber pool, expand it by the specified number of stacks.</div><div class='add'>+// @param count the maximum number of stacks to allocate.</div><div class='add'>+// @return the allocated fiber pool.</div><div class='add'>+// @sa fiber_pool_allocation_free</div><div class='add'>+static struct fiber_pool_allocation *</div><div class='add'>+fiber_pool_expand(struct fiber_pool * fiber_pool, size_t count)</div><div class='add'>+{</div><div class='add'>+    STACK_GROW_DIR_DETECTION;</div><div class='add'>+</div><div class='add'>+    size_t size = fiber_pool-&gt;size;</div><div class='add'>+    size_t stride = size + RB_PAGE_SIZE;</div><div class='add'>+</div><div class='add'>+    // Allocate the memory required for the stacks:</div><div class='add'>+    void * base = fiber_pool_allocate_memory(&amp;count, stride);</div><div class='add'>+</div><div class='add'>+    if (base == NULL) {</div><div class='add'>+        rb_raise(rb_eFiberError, "can't alloc machine stack to fiber (%"PRIuSIZE" x %"PRIuSIZE" bytes): %s", count, size, ERRNOMSG);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    struct fiber_pool_vacancy * vacancies = fiber_pool-&gt;vacancies;</div><div class='add'>+    struct fiber_pool_allocation * allocation = RB_ALLOC(struct fiber_pool_allocation);</div><div class='add'>+</div><div class='add'>+    // Initialize fiber pool allocation:</div><div class='add'>+    allocation-&gt;base = base;</div><div class='add'>+    allocation-&gt;size = size;</div><div class='add'>+    allocation-&gt;stride = stride;</div><div class='add'>+    allocation-&gt;count = count;</div><div class='add'>+#ifdef FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+    allocation-&gt;used = 0;</div><div class='add'>+#endif</div><div class='add'>+    allocation-&gt;pool = fiber_pool;</div><div class='add'>+</div><div class='add'>+    if (DEBUG) {</div><div class='add'>+        fprintf(stderr, "fiber_pool_expand(%"PRIuSIZE"): %p, %"PRIuSIZE"/%"PRIuSIZE" x [%"PRIuSIZE":%"PRIuSIZE"]\n",</div><div class='add'>+                count, (void*)fiber_pool, fiber_pool-&gt;used, fiber_pool-&gt;count, size, fiber_pool-&gt;vm_stack_size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // Iterate over all stacks, initializing the vacancy list:</div><div class='add'>+    for (size_t i = 0; i &lt; count; i += 1) {</div><div class='add'>+        void * base = (char*)allocation-&gt;base + (stride * i);</div><div class='add'>+        void * page = (char*)base + STACK_DIR_UPPER(size, 0);</div><div class='add'>+</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+        DWORD old_protect;</div><div class='add'>+</div><div class='add'>+        if (!VirtualProtect(page, RB_PAGE_SIZE, PAGE_READWRITE | PAGE_GUARD, &amp;old_protect)) {</div><div class='add'>+            VirtualFree(allocation-&gt;base, 0, MEM_RELEASE);</div><div class='add'>+            rb_raise(rb_eFiberError, "can't set a guard page: %s", ERRNOMSG);</div><div class='add'>+        }</div><div class='add'>+#else</div><div class='add'>+        if (mprotect(page, RB_PAGE_SIZE, PROT_NONE) &lt; 0) {</div><div class='add'>+            munmap(allocation-&gt;base, count*stride);</div><div class='add'>+            rb_raise(rb_eFiberError, "can't set a guard page: %s", ERRNOMSG);</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        vacancies = fiber_pool_vacancy_initialize(</div><div class='add'>+            fiber_pool, vacancies,</div><div class='add'>+            (char*)base + STACK_DIR_UPPER(0, RB_PAGE_SIZE),</div><div class='add'>+            size</div><div class='add'>+        );</div><div class='add'>+</div><div class='add'>+#ifdef FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+        vacancies-&gt;stack.allocation = allocation;</div><div class='ctx'> #endif</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // Insert the allocation into the head of the pool:</div><div class='add'>+    allocation-&gt;next = fiber_pool-&gt;allocations;</div><div class='add'>+</div><div class='add'>+#ifdef FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+    if (allocation-&gt;next) {</div><div class='add'>+        allocation-&gt;next-&gt;previous = allocation;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='add'>+    allocation-&gt;previous = NULL;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    fiber_pool-&gt;allocations = allocation;</div><div class='add'>+    fiber_pool-&gt;vacancies = vacancies;</div><div class='add'>+    fiber_pool-&gt;count += count;</div><div class='add'>+</div><div class='add'>+    return allocation;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Initialize the specified fiber pool with the given number of stacks.</div><div class='add'>+// @param vm_stack_size The size of the vm stack to allocate.</div><div class='ctx'> static void</div><div class='del'>-fiber_status_set(rb_fiber_t *fib, enum fiber_status s)</div><div class='add'>+fiber_pool_initialize(struct fiber_pool * fiber_pool, size_t size, size_t count, size_t vm_stack_size)</div><div class='ctx'> {</div><div class='del'>-    if (0) fprintf(stderr, "fib: %p, status: %s -&gt; %s\n", (void *)fib, fiber_status_name(fib-&gt;status), fiber_status_name(s));</div><div class='del'>-    VM_ASSERT(!FIBER_TERMINATED_P(fib));</div><div class='del'>-    VM_ASSERT(fib-&gt;status != s);</div><div class='del'>-    fiber_verify(fib);</div><div class='del'>-    fib-&gt;status = s;</div><div class='add'>+    VM_ASSERT(vm_stack_size &lt; size);</div><div class='add'>+</div><div class='add'>+    fiber_pool-&gt;allocations = NULL;</div><div class='add'>+    fiber_pool-&gt;vacancies = NULL;</div><div class='add'>+    fiber_pool-&gt;size = ((size / RB_PAGE_SIZE) + 1) * RB_PAGE_SIZE;</div><div class='add'>+    fiber_pool-&gt;count = 0;</div><div class='add'>+    fiber_pool-&gt;initial_count = count;</div><div class='add'>+    fiber_pool-&gt;free_stacks = 1;</div><div class='add'>+    fiber_pool-&gt;used = 0;</div><div class='add'>+</div><div class='add'>+    fiber_pool-&gt;vm_stack_size = vm_stack_size;</div><div class='add'>+</div><div class='add'>+    fiber_pool_expand(fiber_pool, count);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_ec_set_vm_stack(rb_execution_context_t *ec, VALUE *stack, size_t size)</div><div class='add'>+#ifdef FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+// Free the list of fiber pool allocations.</div><div class='add'>+static void</div><div class='add'>+fiber_pool_allocation_free(struct fiber_pool_allocation * allocation)</div><div class='ctx'> {</div><div class='del'>-    ec-&gt;vm_stack = stack;</div><div class='del'>-    ec-&gt;vm_stack_size = size;</div><div class='add'>+    STACK_GROW_DIR_DETECTION;</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(allocation-&gt;used == 0);</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "fiber_pool_allocation_free: %p base=%p count=%"PRIuSIZE"\n", (void*)allocation, allocation-&gt;base, allocation-&gt;count);</div><div class='add'>+</div><div class='add'>+    size_t i;</div><div class='add'>+    for (i = 0; i &lt; allocation-&gt;count; i += 1) {</div><div class='add'>+        void * base = (char*)allocation-&gt;base + (allocation-&gt;stride * i) + STACK_DIR_UPPER(0, RB_PAGE_SIZE);</div><div class='add'>+</div><div class='add'>+        struct fiber_pool_vacancy * vacancy = fiber_pool_vacancy_pointer(base, allocation-&gt;size);</div><div class='add'>+</div><div class='add'>+        // Pop the vacant stack off the free list:</div><div class='add'>+        fiber_pool_vacancy_remove(vacancy);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    VirtualFree(allocation-&gt;base, 0, MEM_RELEASE);</div><div class='add'>+#else</div><div class='add'>+    munmap(allocation-&gt;base, allocation-&gt;stride * allocation-&gt;count);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (allocation-&gt;previous) {</div><div class='add'>+        allocation-&gt;previous-&gt;next = allocation-&gt;next;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        // We are the head of the list, so update the pool:</div><div class='add'>+        allocation-&gt;pool-&gt;allocations = allocation-&gt;next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (allocation-&gt;next) {</div><div class='add'>+        allocation-&gt;next-&gt;previous = allocation-&gt;previous;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    allocation-&gt;pool-&gt;count -= allocation-&gt;count;</div><div class='add'>+</div><div class='add'>+    ruby_xfree(allocation);</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+// Acquire a stack from the given fiber pool. If none are available, allocate more.</div><div class='add'>+static struct fiber_pool_stack</div><div class='add'>+fiber_pool_stack_acquire(struct fiber_pool * fiber_pool)</div><div class='add'>+{</div><div class='add'>+    struct fiber_pool_vacancy * vacancy = fiber_pool_vacancy_pop(fiber_pool);</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "fiber_pool_stack_acquire: %p used=%"PRIuSIZE"\n", (void*)fiber_pool-&gt;vacancies, fiber_pool-&gt;used);</div><div class='add'>+</div><div class='add'>+    if (!vacancy) {</div><div class='add'>+        const size_t maximum = FIBER_POOL_ALLOCATION_MAXIMUM_SIZE;</div><div class='add'>+        const size_t minimum = fiber_pool-&gt;initial_count;</div><div class='add'>+</div><div class='add'>+        size_t count = fiber_pool-&gt;count;</div><div class='add'>+        if (count &gt; maximum) count = maximum;</div><div class='add'>+        if (count &lt; minimum) count = minimum;</div><div class='add'>+</div><div class='add'>+        fiber_pool_expand(fiber_pool, count);</div><div class='add'>+</div><div class='add'>+        // The free list should now contain some stacks:</div><div class='add'>+        VM_ASSERT(fiber_pool-&gt;vacancies);</div><div class='add'>+</div><div class='add'>+        vacancy = fiber_pool_vacancy_pop(fiber_pool);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(vacancy);</div><div class='add'>+    VM_ASSERT(vacancy-&gt;stack.base);</div><div class='add'>+</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+    __asan_unpoison_memory_region(fiber_pool_stack_poison_base(&amp;vacancy-&gt;stack), fiber_pool_stack_poison_size(&amp;vacancy-&gt;stack));</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    // Take the top item from the free list:</div><div class='add'>+    fiber_pool-&gt;used += 1;</div><div class='add'>+</div><div class='add'>+#ifdef FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+    vacancy-&gt;stack.allocation-&gt;used += 1;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    fiber_pool_stack_reset(&amp;vacancy-&gt;stack);</div><div class='ctx'> </div><div class='add'>+    return vacancy-&gt;stack;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// We advise the operating system that the stack memory pages are no longer being used.</div><div class='add'>+// This introduce some performance overhead but allows system to relaim memory when there is pressure.</div><div class='ctx'> static inline void</div><div class='del'>-ec_switch(rb_thread_t *th, rb_fiber_t *fib)</div><div class='add'>+fiber_pool_stack_free(struct fiber_pool_stack * stack)</div><div class='add'>+{</div><div class='add'>+    void * base = fiber_pool_stack_base(stack);</div><div class='add'>+    size_t size = stack-&gt;available;</div><div class='add'>+</div><div class='add'>+    // If this is not true, the vacancy information will almost certainly be destroyed:</div><div class='add'>+    VM_ASSERT(size &lt;= (stack-&gt;size - RB_PAGE_SIZE));</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "fiber_pool_stack_free: %p+%"PRIuSIZE" [base=%p, size=%"PRIuSIZE"]\n", base, size, stack-&gt;base, stack-&gt;size);</div><div class='add'>+</div><div class='add'>+    // The pages being used by the stack can be returned back to the system.</div><div class='add'>+    // That doesn't change the page mapping, but it does allow the system to</div><div class='add'>+    // reclaim the physical memory.</div><div class='add'>+    // Since we no longer care about the data itself, we don't need to page</div><div class='add'>+    // out to disk, since that is costly. Not all systems support that, so</div><div class='add'>+    // we try our best to select the most efficient implementation.</div><div class='add'>+    // In addition, it's actually slightly desirable to not do anything here,</div><div class='add'>+    // but that results in higher memory usage.</div><div class='add'>+</div><div class='add'>+#ifdef __wasi__</div><div class='add'>+    // WebAssembly doesn't support madvise, so we just don't do anything.</div><div class='add'>+#elif VM_CHECK_MODE &gt; 0 &amp;&amp; defined(MADV_DONTNEED)</div><div class='add'>+    // This immediately discards the pages and the memory is reset to zero.</div><div class='add'>+    madvise(base, size, MADV_DONTNEED);</div><div class='add'>+#elif defined(MADV_FREE_REUSABLE)</div><div class='add'>+    // Darwin / macOS / iOS.</div><div class='add'>+    // Acknowledge the kernel down to the task info api we make this</div><div class='add'>+    // page reusable for future use.</div><div class='add'>+    // As for MADV_FREE_REUSE below we ensure in the rare occasions the task was not</div><div class='add'>+    // completed at the time of the call to re-iterate.</div><div class='add'>+    while (madvise(base, size, MADV_FREE_REUSABLE) == -1 &amp;&amp; errno == EAGAIN);</div><div class='add'>+#elif defined(MADV_FREE)</div><div class='add'>+    // Recent Linux.</div><div class='add'>+    madvise(base, size, MADV_FREE);</div><div class='add'>+#elif defined(MADV_DONTNEED)</div><div class='add'>+    // Old Linux.</div><div class='add'>+    madvise(base, size, MADV_DONTNEED);</div><div class='add'>+#elif defined(POSIX_MADV_DONTNEED)</div><div class='add'>+    // Solaris?</div><div class='add'>+    posix_madvise(base, size, POSIX_MADV_DONTNEED);</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+    VirtualAlloc(base, size, MEM_RESET, PAGE_READWRITE);</div><div class='add'>+    // Not available in all versions of Windows.</div><div class='add'>+    //DiscardVirtualMemory(base, size);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+    __asan_poison_memory_region(fiber_pool_stack_poison_base(stack), fiber_pool_stack_poison_size(stack));</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Release and return a stack to the vacancy list.</div><div class='add'>+static void</div><div class='add'>+fiber_pool_stack_release(struct fiber_pool_stack * stack)</div><div class='ctx'> {</div><div class='del'>-    rb_execution_context_t *ec = &amp;fib-&gt;cont.saved_ec;</div><div class='add'>+    struct fiber_pool * pool = stack-&gt;pool;</div><div class='add'>+    struct fiber_pool_vacancy * vacancy = fiber_pool_vacancy_pointer(stack-&gt;base, stack-&gt;size);</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "fiber_pool_stack_release: %p used=%"PRIuSIZE"\n", stack-&gt;base, stack-&gt;pool-&gt;used);</div><div class='add'>+</div><div class='add'>+    // Copy the stack details into the vacancy area:</div><div class='add'>+    vacancy-&gt;stack = *stack;</div><div class='add'>+    // After this point, be careful about updating/using state in stack, since it's copied to the vacancy area.</div><div class='add'>+</div><div class='add'>+    // Reset the stack pointers and reserve space for the vacancy data:</div><div class='add'>+    fiber_pool_vacancy_reset(vacancy);</div><div class='add'>+</div><div class='add'>+    // Push the vacancy into the vancancies list:</div><div class='add'>+    pool-&gt;vacancies = fiber_pool_vacancy_push(vacancy, pool-&gt;vacancies);</div><div class='add'>+    pool-&gt;used -= 1;</div><div class='add'>+</div><div class='add'>+#ifdef FIBER_POOL_ALLOCATION_FREE</div><div class='add'>+    struct fiber_pool_allocation * allocation = stack-&gt;allocation;</div><div class='add'>+</div><div class='add'>+    allocation-&gt;used -= 1;</div><div class='add'>+</div><div class='add'>+    // Release address space and/or dirty memory:</div><div class='add'>+    if (allocation-&gt;used == 0) {</div><div class='add'>+        fiber_pool_allocation_free(allocation);</div><div class='add'>+    }</div><div class='add'>+    else if (stack-&gt;pool-&gt;free_stacks) {</div><div class='add'>+        fiber_pool_stack_free(&amp;vacancy-&gt;stack);</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    // This is entirely optional, but clears the dirty flag from the stack</div><div class='add'>+    // memory, so it won't get swapped to disk when there is memory pressure:</div><div class='add'>+    if (stack-&gt;pool-&gt;free_stacks) {</div><div class='add'>+        fiber_pool_stack_free(&amp;vacancy-&gt;stack);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    ruby_current_execution_context_ptr = th-&gt;ec = ec;</div><div class='add'>+static inline void</div><div class='add'>+ec_switch(rb_thread_t *th, rb_fiber_t *fiber)</div><div class='add'>+{</div><div class='add'>+    rb_execution_context_t *ec = &amp;fiber-&gt;cont.saved_ec;</div><div class='add'>+    rb_ractor_set_current_ec(th-&gt;ractor, th-&gt;ec = ec);</div><div class='add'>+    // ruby_current_execution_context_ptr = th-&gt;ec = ec;</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * timer-thread may set trap interrupt on previous th-&gt;ec at any time;</div><div class='ctx'>      * ensure we do not delay (or lose) the trap interrupt handling.</div><div class='ctx'>      */</div><div class='del'>-    if (th-&gt;vm-&gt;main_thread == th &amp;&amp; rb_signal_buff_size() &gt; 0) {</div><div class='add'>+    if (th-&gt;vm-&gt;ractor.main_thread == th &amp;&amp;</div><div class='add'>+        rb_signal_buff_size() &gt; 0) {</div><div class='ctx'>         RUBY_VM_SET_TRAP_INTERRUPT(ec);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     VM_ASSERT(ec-&gt;fiber_ptr-&gt;cont.self == 0 || ec-&gt;vm_stack != NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static const rb_data_type_t cont_data_type, fiber_data_type;</div><div class='del'>-static VALUE rb_cContinuation;</div><div class='del'>-static VALUE rb_cFiber;</div><div class='del'>-static VALUE rb_eFiberError;</div><div class='add'>+static inline void</div><div class='add'>+fiber_restore_thread(rb_thread_t *th, rb_fiber_t *fiber)</div><div class='add'>+{</div><div class='add'>+    ec_switch(th, fiber);</div><div class='add'>+    VM_ASSERT(th-&gt;ec-&gt;fiber_ptr == fiber);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static COROUTINE</div><div class='add'>+fiber_entry(struct coroutine_context * from, struct coroutine_context * to)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fiber = to-&gt;argument;</div><div class='add'>+</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+    // Address sanitizer will copy the previous stack base and stack size into</div><div class='add'>+    // the "from" fiber. `coroutine_initialize_main` doesn't generally know the</div><div class='add'>+    // stack bounds (base + size). Therefore, the main fiber `stack_base` and</div><div class='add'>+    // `stack_size` will be NULL/0. It's specifically important in that case to</div><div class='add'>+    // get the (base+size) of the previous fiber and save it, so that later when</div><div class='add'>+    // we return to the main coroutine, we don't supply (NULL, 0) to</div><div class='add'>+    // __sanitizer_start_switch_fiber which royally messes up the internal state</div><div class='add'>+    // of ASAN and causes (sometimes) the following message:</div><div class='add'>+    // "WARNING: ASan is ignoring requested __asan_handle_no_return"</div><div class='add'>+    __sanitizer_finish_switch_fiber(to-&gt;fake_stack, (const void**)&amp;from-&gt;stack_base, &amp;from-&gt;stack_size);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    rb_thread_t *thread = fiber-&gt;cont.saved_ec.thread_ptr;</div><div class='add'>+</div><div class='add'>+#ifdef COROUTINE_PTHREAD_CONTEXT</div><div class='add'>+    ruby_thread_set_native(thread);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    fiber_restore_thread(thread, fiber);</div><div class='add'>+</div><div class='add'>+    rb_fiber_start(fiber);</div><div class='add'>+</div><div class='add'>+#ifndef COROUTINE_PTHREAD_CONTEXT</div><div class='add'>+    VM_UNREACHABLE(fiber_entry);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Initialize a fiber's coroutine's machine stack and vm stack.</div><div class='add'>+static VALUE *</div><div class='add'>+fiber_initialize_coroutine(rb_fiber_t *fiber, size_t * vm_stack_size)</div><div class='add'>+{</div><div class='add'>+    struct fiber_pool * fiber_pool = fiber-&gt;stack.pool;</div><div class='add'>+    rb_execution_context_t *sec = &amp;fiber-&gt;cont.saved_ec;</div><div class='add'>+    void * vm_stack = NULL;</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(fiber_pool != NULL);</div><div class='add'>+</div><div class='add'>+    fiber-&gt;stack = fiber_pool_stack_acquire(fiber_pool);</div><div class='add'>+    vm_stack = fiber_pool_stack_alloca(&amp;fiber-&gt;stack, fiber_pool-&gt;vm_stack_size);</div><div class='add'>+    *vm_stack_size = fiber_pool-&gt;vm_stack_size;</div><div class='add'>+</div><div class='add'>+    coroutine_initialize(&amp;fiber-&gt;context, fiber_entry, fiber_pool_stack_base(&amp;fiber-&gt;stack), fiber-&gt;stack.available);</div><div class='add'>+</div><div class='add'>+    // The stack for this execution context is the one we allocated:</div><div class='add'>+    sec-&gt;machine.stack_start = fiber-&gt;stack.current;</div><div class='add'>+    sec-&gt;machine.stack_maxsize = fiber-&gt;stack.available;</div><div class='add'>+</div><div class='add'>+    fiber-&gt;context.argument = (void*)fiber;</div><div class='add'>+</div><div class='add'>+    return vm_stack;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Release the stack from the fiber, it's execution context, and return it to</div><div class='add'>+// the fiber pool.</div><div class='add'>+static void</div><div class='add'>+fiber_stack_release(rb_fiber_t * fiber)</div><div class='add'>+{</div><div class='add'>+    rb_execution_context_t *ec = &amp;fiber-&gt;cont.saved_ec;</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "fiber_stack_release: %p, stack.base=%p\n", (void*)fiber, fiber-&gt;stack.base);</div><div class='add'>+</div><div class='add'>+    // Return the stack back to the fiber pool if it wasn't already:</div><div class='add'>+    if (fiber-&gt;stack.base) {</div><div class='add'>+        fiber_pool_stack_release(&amp;fiber-&gt;stack);</div><div class='add'>+        fiber-&gt;stack.base = NULL;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // The stack is no longer associated with this execution context:</div><div class='add'>+    rb_ec_clear_vm_stack(ec);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const char *</div><div class='add'>+fiber_status_name(enum fiber_status s)</div><div class='add'>+{</div><div class='add'>+    switch (s) {</div><div class='add'>+      case FIBER_CREATED: return "created";</div><div class='add'>+      case FIBER_RESUMED: return "resumed";</div><div class='add'>+      case FIBER_SUSPENDED: return "suspended";</div><div class='add'>+      case FIBER_TERMINATED: return "terminated";</div><div class='add'>+    }</div><div class='add'>+    VM_UNREACHABLE(fiber_status_name);</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiber_verify(const rb_fiber_t *fiber)</div><div class='add'>+{</div><div class='add'>+#if VM_CHECK_MODE &gt; 0</div><div class='add'>+    VM_ASSERT(fiber-&gt;cont.saved_ec.fiber_ptr == fiber);</div><div class='add'>+</div><div class='add'>+    switch (fiber-&gt;status) {</div><div class='add'>+      case FIBER_RESUMED:</div><div class='add'>+        VM_ASSERT(fiber-&gt;cont.saved_ec.vm_stack != NULL);</div><div class='add'>+        break;</div><div class='add'>+      case FIBER_SUSPENDED:</div><div class='add'>+        VM_ASSERT(fiber-&gt;cont.saved_ec.vm_stack != NULL);</div><div class='add'>+        break;</div><div class='add'>+      case FIBER_CREATED:</div><div class='add'>+      case FIBER_TERMINATED:</div><div class='add'>+        /* TODO */</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        VM_UNREACHABLE(fiber_verify);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static void</div><div class='add'>+fiber_status_set(rb_fiber_t *fiber, enum fiber_status s)</div><div class='add'>+{</div><div class='add'>+    // if (DEBUG) fprintf(stderr, "fiber: %p, status: %s -&gt; %s\n", (void *)fiber, fiber_status_name(fiber-&gt;status), fiber_status_name(s));</div><div class='add'>+    VM_ASSERT(!FIBER_TERMINATED_P(fiber));</div><div class='add'>+    VM_ASSERT(fiber-&gt;status != s);</div><div class='add'>+    fiber_verify(fiber);</div><div class='add'>+    fiber-&gt;status = s;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static rb_context_t *</div><div class='ctx'> cont_ptr(VALUE obj)</div><div class='hunk'>@@ -319,20 +938,26 @@ cont_ptr(VALUE obj)</div><div class='ctx'> static rb_fiber_t *</div><div class='ctx'> fiber_ptr(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    rb_fiber_t *fib;</div><div class='add'>+    rb_fiber_t *fiber;</div><div class='ctx'> </div><div class='del'>-    TypedData_Get_Struct(obj, rb_fiber_t, &amp;fiber_data_type, fib);</div><div class='del'>-    if (!fib) rb_raise(rb_eFiberError, "uninitialized fiber");</div><div class='add'>+    TypedData_Get_Struct(obj, rb_fiber_t, &amp;fiber_data_type, fiber);</div><div class='add'>+    if (!fiber) rb_raise(rb_eFiberError, "uninitialized fiber");</div><div class='ctx'> </div><div class='del'>-    return fib;</div><div class='add'>+    return fiber;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> NOINLINE(static VALUE cont_capture(volatile int *volatile stat));</div><div class='ctx'> </div><div class='ctx'> #define THREAD_MUST_BE_RUNNING(th) do { \</div><div class='del'>-	if (!(th)-&gt;ec-&gt;tag) rb_raise(rb_eThreadError, "not running thread");	\</div><div class='add'>+        if (!(th)-&gt;ec-&gt;tag) rb_raise(rb_eThreadError, "not running thread"); \</div><div class='ctx'>     } while (0)</div><div class='ctx'> </div><div class='add'>+rb_thread_t*</div><div class='add'>+rb_fiber_threadptr(const rb_fiber_t *fiber)</div><div class='add'>+{</div><div class='add'>+    return fiber-&gt;cont.saved_ec.thread_ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> cont_thread_value(const rb_context_t *cont)</div><div class='ctx'> {</div><div class='hunk'>@@ -340,57 +965,70 @@ cont_thread_value(const rb_context_t *cont)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='add'>+cont_compact(void *ptr)</div><div class='add'>+{</div><div class='add'>+    rb_context_t *cont = ptr;</div><div class='add'>+</div><div class='add'>+    if (cont-&gt;self) {</div><div class='add'>+        cont-&gt;self = rb_gc_location(cont-&gt;self);</div><div class='add'>+    }</div><div class='add'>+    cont-&gt;value = rb_gc_location(cont-&gt;value);</div><div class='add'>+    rb_execution_context_update(&amp;cont-&gt;saved_ec);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='ctx'> cont_mark(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     rb_context_t *cont = ptr;</div><div class='ctx'> </div><div class='ctx'>     RUBY_MARK_ENTER("cont");</div><div class='del'>-    rb_gc_mark(cont-&gt;value);</div><div class='add'>+    if (cont-&gt;self) {</div><div class='add'>+        rb_gc_mark_movable(cont-&gt;self);</div><div class='add'>+    }</div><div class='add'>+    rb_gc_mark_movable(cont-&gt;value);</div><div class='ctx'> </div><div class='ctx'>     rb_execution_context_mark(&amp;cont-&gt;saved_ec);</div><div class='ctx'>     rb_gc_mark(cont_thread_value(cont));</div><div class='ctx'> </div><div class='ctx'>     if (cont-&gt;saved_vm_stack.ptr) {</div><div class='ctx'> #ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='del'>-	rb_gc_mark_locations(cont-&gt;saved_vm_stack.ptr,</div><div class='del'>-			     cont-&gt;saved_vm_stack.ptr + cont-&gt;saved_vm_stack.slen + cont-&gt;saved_vm_stack.clen);</div><div class='add'>+        rb_gc_mark_locations(cont-&gt;saved_vm_stack.ptr,</div><div class='add'>+                             cont-&gt;saved_vm_stack.ptr + cont-&gt;saved_vm_stack.slen + cont-&gt;saved_vm_stack.clen);</div><div class='ctx'> #else</div><div class='del'>-	rb_gc_mark_locations(cont-&gt;saved_vm_stack.ptr,</div><div class='del'>-			     cont-&gt;saved_vm_stack.ptr, cont-&gt;saved_ec.stack_size);</div><div class='add'>+        rb_gc_mark_locations(cont-&gt;saved_vm_stack.ptr,</div><div class='add'>+                             cont-&gt;saved_vm_stack.ptr, cont-&gt;saved_ec.stack_size);</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (cont-&gt;machine.stack) {</div><div class='del'>-	if (cont-&gt;type == CONTINUATION_CONTEXT) {</div><div class='del'>-	    /* cont */</div><div class='del'>-	    rb_gc_mark_locations(cont-&gt;machine.stack,</div><div class='del'>-				 cont-&gt;machine.stack + cont-&gt;machine.stack_size);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    /* fiber */</div><div class='del'>-	    const rb_fiber_t *fib = (rb_fiber_t*)cont;</div><div class='del'>-</div><div class='del'>-	    if (!FIBER_TERMINATED_P(fib)) {</div><div class='del'>-		rb_gc_mark_locations(cont-&gt;machine.stack,</div><div class='del'>-				     cont-&gt;machine.stack + cont-&gt;machine.stack_size);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-#ifdef __ia64</div><div class='del'>-    if (cont-&gt;machine.register_stack) {</div><div class='del'>-	rb_gc_mark_locations(cont-&gt;machine.register_stack,</div><div class='del'>-			     cont-&gt;machine.register_stack + cont-&gt;machine.register_stack_size);</div><div class='add'>+        if (cont-&gt;type == CONTINUATION_CONTEXT) {</div><div class='add'>+            /* cont */</div><div class='add'>+            rb_gc_mark_locations(cont-&gt;machine.stack,</div><div class='add'>+                                 cont-&gt;machine.stack + cont-&gt;machine.stack_size);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* fiber */</div><div class='add'>+            const rb_fiber_t *fiber = (rb_fiber_t*)cont;</div><div class='add'>+</div><div class='add'>+            if (!FIBER_TERMINATED_P(fiber)) {</div><div class='add'>+                rb_gc_mark_locations(cont-&gt;machine.stack,</div><div class='add'>+                                     cont-&gt;machine.stack + cont-&gt;machine.stack_size);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'>     RUBY_MARK_LEAVE("cont");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if 0</div><div class='ctx'> static int</div><div class='del'>-fiber_is_root_p(const rb_fiber_t *fib)</div><div class='add'>+fiber_is_root_p(const rb_fiber_t *fiber)</div><div class='ctx'> {</div><div class='del'>-    return fib == fib-&gt;cont.saved_ec.thread_ptr-&gt;root_fiber;</div><div class='add'>+    return fiber == fiber-&gt;cont.saved_ec.thread_ptr-&gt;root_fiber;</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void jit_cont_free(struct rb_jit_cont *cont);</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> cont_free(void *ptr)</div><div class='hunk'>@@ -398,55 +1036,23 @@ cont_free(void *ptr)</div><div class='ctx'>     rb_context_t *cont = ptr;</div><div class='ctx'> </div><div class='ctx'>     RUBY_FREE_ENTER("cont");</div><div class='del'>-    ruby_xfree(cont-&gt;saved_ec.vm_stack);</div><div class='ctx'> </div><div class='del'>-#if FIBER_USE_NATIVE</div><div class='ctx'>     if (cont-&gt;type == CONTINUATION_CONTEXT) {</div><div class='del'>-	/* cont */</div><div class='del'>-	ruby_xfree(cont-&gt;ensure_array);</div><div class='del'>-	RUBY_FREE_UNLESS_NULL(cont-&gt;machine.stack);</div><div class='add'>+        ruby_xfree(cont-&gt;saved_ec.vm_stack);</div><div class='add'>+        ruby_xfree(cont-&gt;ensure_array);</div><div class='add'>+        RUBY_FREE_UNLESS_NULL(cont-&gt;machine.stack);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	/* fiber */</div><div class='del'>-	rb_fiber_t *fib = (rb_fiber_t*)cont;</div><div class='del'>-#if defined(FIBER_USE_COROUTINE)</div><div class='del'>-	coroutine_destroy(&amp;fib-&gt;context);</div><div class='del'>-	if (fib-&gt;ss_sp != NULL) {</div><div class='del'>-	    if (fiber_is_root_p(fib)) {</div><div class='del'>-		rb_bug("Illegal root fiber parameter");</div><div class='del'>-	    }</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-            VirtualFree((void*)fib-&gt;ss_sp, 0, MEM_RELEASE);</div><div class='del'>-#else</div><div class='del'>-	    munmap((void*)fib-&gt;ss_sp, fib-&gt;ss_size);</div><div class='del'>-#endif</div><div class='del'>-            fib-&gt;ss_sp = NULL;</div><div class='del'>-	}</div><div class='del'>-#elif defined(_WIN32)</div><div class='del'>-	if (!fiber_is_root_p(fib)) {</div><div class='del'>-	    /* don't delete root fiber handle */</div><div class='del'>-	    if (fib-&gt;fib_handle) {</div><div class='del'>-		DeleteFiber(fib-&gt;fib_handle);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-#else /* not WIN32 */</div><div class='del'>-        /* fib-&gt;ss_sp == NULL is possible for root fiber */</div><div class='del'>-	if (fib-&gt;ss_sp != NULL) {</div><div class='del'>-	    munmap((void*)fib-&gt;ss_sp, fib-&gt;ss_size);</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='add'>+        rb_fiber_t *fiber = (rb_fiber_t*)cont;</div><div class='add'>+        coroutine_destroy(&amp;fiber-&gt;context);</div><div class='add'>+        fiber_stack_release(fiber);</div><div class='ctx'>     }</div><div class='del'>-#else /* not FIBER_USE_NATIVE */</div><div class='del'>-    ruby_xfree(cont-&gt;ensure_array);</div><div class='del'>-    RUBY_FREE_UNLESS_NULL(cont-&gt;machine.stack);</div><div class='del'>-#endif</div><div class='del'>-#ifdef __ia64</div><div class='del'>-    RUBY_FREE_UNLESS_NULL(cont-&gt;machine.register_stack);</div><div class='del'>-#endif</div><div class='add'>+</div><div class='ctx'>     RUBY_FREE_UNLESS_NULL(cont-&gt;saved_vm_stack.ptr);</div><div class='ctx'> </div><div class='del'>-    if (mjit_enabled &amp;&amp; cont-&gt;mjit_cont != NULL) {</div><div class='del'>-        mjit_cont_free(cont-&gt;mjit_cont);</div><div class='add'>+    if (jit_cont_enabled) {</div><div class='add'>+        VM_ASSERT(cont-&gt;jit_cont != NULL);</div><div class='add'>+        jit_cont_free(cont-&gt;jit_cont);</div><div class='ctx'>     }</div><div class='ctx'>     /* free rb_cont_t or rb_fiber_t */</div><div class='ctx'>     ruby_xfree(ptr);</div><div class='hunk'>@@ -462,98 +1068,106 @@ cont_memsize(const void *ptr)</div><div class='ctx'>     size = sizeof(*cont);</div><div class='ctx'>     if (cont-&gt;saved_vm_stack.ptr) {</div><div class='ctx'> #ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='del'>-	size_t n = (cont-&gt;saved_vm_stack.slen + cont-&gt;saved_vm_stack.clen);</div><div class='add'>+        size_t n = (cont-&gt;saved_vm_stack.slen + cont-&gt;saved_vm_stack.clen);</div><div class='ctx'> #else</div><div class='del'>-	size_t n = cont-&gt;saved_ec.vm_stack_size;</div><div class='add'>+        size_t n = cont-&gt;saved_ec.vm_stack_size;</div><div class='ctx'> #endif</div><div class='del'>-	size += n * sizeof(*cont-&gt;saved_vm_stack.ptr);</div><div class='add'>+        size += n * sizeof(*cont-&gt;saved_vm_stack.ptr);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (cont-&gt;machine.stack) {</div><div class='del'>-	size += cont-&gt;machine.stack_size * sizeof(*cont-&gt;machine.stack);</div><div class='add'>+        size += cont-&gt;machine.stack_size * sizeof(*cont-&gt;machine.stack);</div><div class='ctx'>     }</div><div class='del'>-#ifdef __ia64</div><div class='del'>-    if (cont-&gt;machine.register_stack) {</div><div class='del'>-	size += cont-&gt;machine.register_stack_size * sizeof(*cont-&gt;machine.register_stack);</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='add'>+</div><div class='ctx'>     return size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_fiber_mark_self(const rb_fiber_t *fib)</div><div class='add'>+rb_fiber_update_self(rb_fiber_t *fiber)</div><div class='ctx'> {</div><div class='del'>-    if (fib-&gt;cont.self) {</div><div class='del'>-	rb_gc_mark(fib-&gt;cont.self);</div><div class='add'>+    if (fiber-&gt;cont.self) {</div><div class='add'>+        fiber-&gt;cont.self = rb_gc_location(fiber-&gt;cont.self);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_execution_context_mark(&amp;fib-&gt;cont.saved_ec);</div><div class='add'>+        rb_execution_context_update(&amp;fiber-&gt;cont.saved_ec);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_fiber_mark_self(const rb_fiber_t *fiber)</div><div class='add'>+{</div><div class='add'>+    if (fiber-&gt;cont.self) {</div><div class='add'>+        rb_gc_mark_movable(fiber-&gt;cont.self);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_execution_context_mark(&amp;fiber-&gt;cont.saved_ec);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-fiber_mark(void *ptr)</div><div class='add'>+fiber_compact(void *ptr)</div><div class='ctx'> {</div><div class='del'>-    rb_fiber_t *fib = ptr;</div><div class='del'>-    RUBY_MARK_ENTER("cont");</div><div class='del'>-    fiber_verify(fib);</div><div class='del'>-    rb_gc_mark(fib-&gt;first_proc);</div><div class='del'>-    if (fib-&gt;prev) rb_fiber_mark_self(fib-&gt;prev);</div><div class='add'>+    rb_fiber_t *fiber = ptr;</div><div class='add'>+    fiber-&gt;first_proc = rb_gc_location(fiber-&gt;first_proc);</div><div class='ctx'> </div><div class='del'>-#if !FIBER_USE_NATIVE</div><div class='del'>-    if (fib-&gt;status == FIBER_TERMINATED) {</div><div class='del'>-	/* FIBER_TERMINATED fiber should not mark machine stack */</div><div class='del'>-	if (fib-&gt;cont.saved_ec.machine.stack_end != NULL) {</div><div class='del'>-	    fib-&gt;cont.saved_ec.machine.stack_end = NULL;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='add'>+    if (fiber-&gt;prev) rb_fiber_update_self(fiber-&gt;prev);</div><div class='add'>+</div><div class='add'>+    cont_compact(&amp;fiber-&gt;cont);</div><div class='add'>+    fiber_verify(fiber);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    cont_mark(&amp;fib-&gt;cont);</div><div class='add'>+static void</div><div class='add'>+fiber_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fiber = ptr;</div><div class='add'>+    RUBY_MARK_ENTER("cont");</div><div class='add'>+    fiber_verify(fiber);</div><div class='add'>+    rb_gc_mark_movable(fiber-&gt;first_proc);</div><div class='add'>+    if (fiber-&gt;prev) rb_fiber_mark_self(fiber-&gt;prev);</div><div class='add'>+    cont_mark(&amp;fiber-&gt;cont);</div><div class='ctx'>     RUBY_MARK_LEAVE("cont");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> fiber_free(void *ptr)</div><div class='ctx'> {</div><div class='del'>-    rb_fiber_t *fib = ptr;</div><div class='add'>+    rb_fiber_t *fiber = ptr;</div><div class='ctx'>     RUBY_FREE_ENTER("fiber");</div><div class='ctx'> </div><div class='del'>-    if (fib-&gt;cont.saved_ec.local_storage) {</div><div class='del'>-	st_free_table(fib-&gt;cont.saved_ec.local_storage);</div><div class='add'>+    if (DEBUG) fprintf(stderr, "fiber_free: %p[%p]\n", (void *)fiber, fiber-&gt;stack.base);</div><div class='add'>+</div><div class='add'>+    if (fiber-&gt;cont.saved_ec.local_storage) {</div><div class='add'>+        rb_id_table_free(fiber-&gt;cont.saved_ec.local_storage);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    cont_free(&amp;fib-&gt;cont);</div><div class='add'>+    cont_free(&amp;fiber-&gt;cont);</div><div class='ctx'>     RUBY_FREE_LEAVE("fiber");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static size_t</div><div class='ctx'> fiber_memsize(const void *ptr)</div><div class='ctx'> {</div><div class='del'>-    const rb_fiber_t *fib = ptr;</div><div class='del'>-    size_t size = sizeof(*fib);</div><div class='del'>-    const rb_execution_context_t *saved_ec = &amp;fib-&gt;cont.saved_ec;</div><div class='add'>+    const rb_fiber_t *fiber = ptr;</div><div class='add'>+    size_t size = sizeof(*fiber);</div><div class='add'>+    const rb_execution_context_t *saved_ec = &amp;fiber-&gt;cont.saved_ec;</div><div class='ctx'>     const rb_thread_t *th = rb_ec_thread_ptr(saved_ec);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * vm.c::thread_memsize already counts th-&gt;ec-&gt;local_storage</div><div class='ctx'>      */</div><div class='del'>-    if (saved_ec-&gt;local_storage &amp;&amp; fib != th-&gt;root_fiber) {</div><div class='del'>-	size += st_memsize(saved_ec-&gt;local_storage);</div><div class='add'>+    if (saved_ec-&gt;local_storage &amp;&amp; fiber != th-&gt;root_fiber) {</div><div class='add'>+        size += rb_id_table_memsize(saved_ec-&gt;local_storage);</div><div class='add'>+        size += rb_obj_memsize_of(saved_ec-&gt;storage);</div><div class='ctx'>     }</div><div class='del'>-    size += cont_memsize(&amp;fib-&gt;cont);</div><div class='add'>+</div><div class='add'>+    size += cont_memsize(&amp;fiber-&gt;cont);</div><div class='ctx'>     return size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_obj_is_fiber(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    if (rb_typeddata_is_kind_of(obj, &amp;fiber_data_type)) {</div><div class='del'>-	return Qtrue;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='add'>+    return RBOOL(rb_typeddata_is_kind_of(obj, &amp;fiber_data_type));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -562,47 +1176,31 @@ cont_save_machine_stack(rb_thread_t *th, rb_context_t *cont)</div><div class='ctx'>     size_t size;</div><div class='ctx'> </div><div class='ctx'>     SET_MACHINE_STACK_END(&amp;th-&gt;ec-&gt;machine.stack_end);</div><div class='del'>-#ifdef __ia64</div><div class='del'>-    th-&gt;ec-&gt;machine.register_stack_end = rb_ia64_bsp();</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'>     if (th-&gt;ec-&gt;machine.stack_start &gt; th-&gt;ec-&gt;machine.stack_end) {</div><div class='del'>-	size = cont-&gt;machine.stack_size = th-&gt;ec-&gt;machine.stack_start - th-&gt;ec-&gt;machine.stack_end;</div><div class='del'>-	cont-&gt;machine.stack_src = th-&gt;ec-&gt;machine.stack_end;</div><div class='add'>+        size = cont-&gt;machine.stack_size = th-&gt;ec-&gt;machine.stack_start - th-&gt;ec-&gt;machine.stack_end;</div><div class='add'>+        cont-&gt;machine.stack_src = th-&gt;ec-&gt;machine.stack_end;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	size = cont-&gt;machine.stack_size = th-&gt;ec-&gt;machine.stack_end - th-&gt;ec-&gt;machine.stack_start;</div><div class='del'>-	cont-&gt;machine.stack_src = th-&gt;ec-&gt;machine.stack_start;</div><div class='add'>+        size = cont-&gt;machine.stack_size = th-&gt;ec-&gt;machine.stack_end - th-&gt;ec-&gt;machine.stack_start;</div><div class='add'>+        cont-&gt;machine.stack_src = th-&gt;ec-&gt;machine.stack_start;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (cont-&gt;machine.stack) {</div><div class='del'>-	REALLOC_N(cont-&gt;machine.stack, VALUE, size);</div><div class='add'>+        REALLOC_N(cont-&gt;machine.stack, VALUE, size);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	cont-&gt;machine.stack = ALLOC_N(VALUE, size);</div><div class='add'>+        cont-&gt;machine.stack = ALLOC_N(VALUE, size);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     FLUSH_REGISTER_WINDOWS;</div><div class='add'>+    asan_unpoison_memory_region(cont-&gt;machine.stack_src, size, false);</div><div class='ctx'>     MEMCPY(cont-&gt;machine.stack, cont-&gt;machine.stack_src, VALUE, size);</div><div class='del'>-</div><div class='del'>-#ifdef __ia64</div><div class='del'>-    rb_ia64_flushrs();</div><div class='del'>-    size = cont-&gt;machine.register_stack_size = th-&gt;ec-&gt;machine.register_stack_end - th-&gt;ec-&gt;machine.register_stack_start;</div><div class='del'>-    cont-&gt;machine.register_stack_src = th-&gt;ec-&gt;machine.register_stack_start;</div><div class='del'>-    if (cont-&gt;machine.register_stack) {</div><div class='del'>-	REALLOC_N(cont-&gt;machine.register_stack, VALUE, size);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	cont-&gt;machine.register_stack = ALLOC_N(VALUE, size);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    MEMCPY(cont-&gt;machine.register_stack, cont-&gt;machine.register_stack_src, VALUE, size);</div><div class='del'>-#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const rb_data_type_t cont_data_type = {</div><div class='ctx'>     "continuation",</div><div class='del'>-    {cont_mark, cont_free, cont_memsize,},</div><div class='add'>+    {cont_mark, cont_free, cont_memsize, cont_compact},</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'> };</div><div class='ctx'> </div><div class='hunk'>@@ -619,11 +1217,112 @@ cont_save_thread(rb_context_t *cont, rb_thread_t *th)</div><div class='ctx'>     /* saved_ec-&gt;machine.stack_end should be NULL */</div><div class='ctx'>     /* because it may happen GC afterward */</div><div class='ctx'>     sec-&gt;machine.stack_end = NULL;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-#ifdef __ia64</div><div class='del'>-    sec-&gt;machine.register_stack_start = NULL;</div><div class='del'>-    sec-&gt;machine.register_stack_end = NULL;</div><div class='del'>-#endif</div><div class='add'>+static rb_nativethread_lock_t jit_cont_lock;</div><div class='add'>+</div><div class='add'>+// Register a new continuation with execution context `ec`. Return JIT info about</div><div class='add'>+// the continuation.</div><div class='add'>+static struct rb_jit_cont *</div><div class='add'>+jit_cont_new(rb_execution_context_t *ec)</div><div class='add'>+{</div><div class='add'>+    struct rb_jit_cont *cont;</div><div class='add'>+</div><div class='add'>+    // We need to use calloc instead of something like ZALLOC to avoid triggering GC here.</div><div class='add'>+    // When this function is called from rb_thread_alloc through rb_threadptr_root_fiber_setup,</div><div class='add'>+    // the thread is still being prepared and marking it causes SEGV.</div><div class='add'>+    cont = calloc(1, sizeof(struct rb_jit_cont));</div><div class='add'>+    if (cont == NULL)</div><div class='add'>+        rb_memerror();</div><div class='add'>+    cont-&gt;ec = ec;</div><div class='add'>+</div><div class='add'>+    rb_native_mutex_lock(&amp;jit_cont_lock);</div><div class='add'>+    if (first_jit_cont == NULL) {</div><div class='add'>+        cont-&gt;next = cont-&gt;prev = NULL;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        cont-&gt;prev = NULL;</div><div class='add'>+        cont-&gt;next = first_jit_cont;</div><div class='add'>+        first_jit_cont-&gt;prev = cont;</div><div class='add'>+    }</div><div class='add'>+    first_jit_cont = cont;</div><div class='add'>+    rb_native_mutex_unlock(&amp;jit_cont_lock);</div><div class='add'>+</div><div class='add'>+    return cont;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Unregister continuation `cont`.</div><div class='add'>+static void</div><div class='add'>+jit_cont_free(struct rb_jit_cont *cont)</div><div class='add'>+{</div><div class='add'>+    if (!cont) return;</div><div class='add'>+</div><div class='add'>+    rb_native_mutex_lock(&amp;jit_cont_lock);</div><div class='add'>+    if (cont == first_jit_cont) {</div><div class='add'>+        first_jit_cont = cont-&gt;next;</div><div class='add'>+        if (first_jit_cont != NULL)</div><div class='add'>+            first_jit_cont-&gt;prev = NULL;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        cont-&gt;prev-&gt;next = cont-&gt;next;</div><div class='add'>+        if (cont-&gt;next != NULL)</div><div class='add'>+            cont-&gt;next-&gt;prev = cont-&gt;prev;</div><div class='add'>+    }</div><div class='add'>+    rb_native_mutex_unlock(&amp;jit_cont_lock);</div><div class='add'>+</div><div class='add'>+    free(cont);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Call a given callback against all on-stack ISEQs.</div><div class='add'>+void</div><div class='add'>+rb_jit_cont_each_iseq(rb_iseq_callback callback, void *data)</div><div class='add'>+{</div><div class='add'>+    struct rb_jit_cont *cont;</div><div class='add'>+    for (cont = first_jit_cont; cont != NULL; cont = cont-&gt;next) {</div><div class='add'>+        if (cont-&gt;ec-&gt;vm_stack == NULL)</div><div class='add'>+            continue;</div><div class='add'>+</div><div class='add'>+        const rb_control_frame_t *cfp;</div><div class='add'>+        for (cfp = RUBY_VM_END_CONTROL_FRAME(cont-&gt;ec) - 1; ; cfp = RUBY_VM_NEXT_CONTROL_FRAME(cfp)) {</div><div class='add'>+            const rb_iseq_t *iseq;</div><div class='add'>+            if (cfp-&gt;pc &amp;&amp; (iseq = cfp-&gt;iseq) != NULL &amp;&amp; imemo_type((VALUE)iseq) == imemo_iseq) {</div><div class='add'>+                callback(iseq, data);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (cfp == cont-&gt;ec-&gt;cfp)</div><div class='add'>+                break; // reached the most recent cfp</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Finish working with jit_cont.</div><div class='add'>+void</div><div class='add'>+rb_jit_cont_finish(void)</div><div class='add'>+{</div><div class='add'>+    if (!jit_cont_enabled)</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+    struct rb_jit_cont *cont, *next;</div><div class='add'>+    for (cont = first_jit_cont; cont != NULL; cont = next) {</div><div class='add'>+        next = cont-&gt;next;</div><div class='add'>+        free(cont); // Don't use xfree because it's allocated by calloc.</div><div class='add'>+    }</div><div class='add'>+    rb_native_mutex_destroy(&amp;jit_cont_lock);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+cont_init_jit_cont(rb_context_t *cont)</div><div class='add'>+{</div><div class='add'>+    VM_ASSERT(cont-&gt;jit_cont == NULL);</div><div class='add'>+    if (jit_cont_enabled) {</div><div class='add'>+        cont-&gt;jit_cont = jit_cont_new(&amp;(cont-&gt;saved_ec));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct rb_execution_context_struct *</div><div class='add'>+rb_fiberptr_get_ec(struct rb_fiber_struct *fiber)</div><div class='add'>+{</div><div class='add'>+    return &amp;fiber-&gt;cont.saved_ec;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -635,9 +1334,7 @@ cont_init(rb_context_t *cont, rb_thread_t *th)</div><div class='ctx'>     cont-&gt;saved_ec.local_storage = NULL;</div><div class='ctx'>     cont-&gt;saved_ec.local_storage_recursive_hash = Qnil;</div><div class='ctx'>     cont-&gt;saved_ec.local_storage_recursive_hash_for_trace = Qnil;</div><div class='del'>-    if (mjit_enabled) {</div><div class='del'>-        cont-&gt;mjit_cont = mjit_cont_new(&amp;cont-&gt;saved_ec);</div><div class='del'>-    }</div><div class='add'>+    cont_init_jit_cont(cont);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static rb_context_t *</div><div class='hunk'>@@ -654,37 +1351,57 @@ cont_new(VALUE klass)</div><div class='ctx'>     return cont;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_fiberptr_self(struct rb_fiber_struct *fiber)</div><div class='add'>+{</div><div class='add'>+    return fiber-&gt;cont.self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+unsigned int</div><div class='add'>+rb_fiberptr_blocking(struct rb_fiber_struct *fiber)</div><div class='add'>+{</div><div class='add'>+    return fiber-&gt;blocking;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Start working with jit_cont.</div><div class='add'>+void</div><div class='add'>+rb_jit_cont_init(void)</div><div class='add'>+{</div><div class='add'>+    if (!jit_cont_enabled)</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+    rb_native_mutex_initialize(&amp;jit_cont_lock);</div><div class='add'>+    cont_init_jit_cont(&amp;GET_EC()-&gt;fiber_ptr-&gt;cont);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #if 0</div><div class='ctx'> void</div><div class='ctx'> show_vm_stack(const rb_execution_context_t *ec)</div><div class='ctx'> {</div><div class='ctx'>     VALUE *p = ec-&gt;vm_stack;</div><div class='ctx'>     while (p &lt; ec-&gt;cfp-&gt;sp) {</div><div class='del'>-	fprintf(stderr, "%3d ", (int)(p - ec-&gt;vm_stack));</div><div class='del'>-	rb_obj_info_dump(*p);</div><div class='del'>-	p++;</div><div class='add'>+        fprintf(stderr, "%3d ", (int)(p - ec-&gt;vm_stack));</div><div class='add'>+        rb_obj_info_dump(*p);</div><div class='add'>+        p++;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> show_vm_pcs(const rb_control_frame_t *cfp,</div><div class='del'>-	    const rb_control_frame_t *end_of_cfp)</div><div class='add'>+            const rb_control_frame_t *end_of_cfp)</div><div class='ctx'> {</div><div class='ctx'>     int i=0;</div><div class='ctx'>     while (cfp != end_of_cfp) {</div><div class='del'>-	int pc = 0;</div><div class='del'>-	if (cfp-&gt;iseq) {</div><div class='del'>-	    pc = cfp-&gt;pc - cfp-&gt;iseq-&gt;body-&gt;iseq_encoded;</div><div class='del'>-	}</div><div class='del'>-	fprintf(stderr, "%2d pc: %d\n", i++, pc);</div><div class='del'>-	cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);</div><div class='add'>+        int pc = 0;</div><div class='add'>+        if (cfp-&gt;iseq) {</div><div class='add'>+            pc = cfp-&gt;pc - ISEQ_BODY(cfp-&gt;iseq)-&gt;iseq_encoded;</div><div class='add'>+        }</div><div class='add'>+        fprintf(stderr, "%2d pc: %d\n", i++, pc);</div><div class='add'>+        cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='del'>-COMPILER_WARNING_PUSH</div><div class='del'>-#ifdef __clang__</div><div class='del'>-COMPILER_WARNING_IGNORED(-Wduplicate-decl-specifier)</div><div class='del'>-#endif</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> cont_capture(volatile int *volatile stat)</div><div class='ctx'> {</div><div class='hunk'>@@ -703,58 +1420,52 @@ cont_capture(volatile int *volatile stat)</div><div class='ctx'>     cont-&gt;saved_vm_stack.clen = ec-&gt;vm_stack + ec-&gt;vm_stack_size - (VALUE*)ec-&gt;cfp;</div><div class='ctx'>     cont-&gt;saved_vm_stack.ptr = ALLOC_N(VALUE, cont-&gt;saved_vm_stack.slen + cont-&gt;saved_vm_stack.clen);</div><div class='ctx'>     MEMCPY(cont-&gt;saved_vm_stack.ptr,</div><div class='del'>-	   ec-&gt;vm_stack,</div><div class='del'>-	   VALUE, cont-&gt;saved_vm_stack.slen);</div><div class='add'>+           ec-&gt;vm_stack,</div><div class='add'>+           VALUE, cont-&gt;saved_vm_stack.slen);</div><div class='ctx'>     MEMCPY(cont-&gt;saved_vm_stack.ptr + cont-&gt;saved_vm_stack.slen,</div><div class='del'>-	   (VALUE*)ec-&gt;cfp,</div><div class='del'>-	   VALUE,</div><div class='del'>-	   cont-&gt;saved_vm_stack.clen);</div><div class='add'>+           (VALUE*)ec-&gt;cfp,</div><div class='add'>+           VALUE,</div><div class='add'>+           cont-&gt;saved_vm_stack.clen);</div><div class='ctx'> #else</div><div class='ctx'>     cont-&gt;saved_vm_stack.ptr = ALLOC_N(VALUE, ec-&gt;vm_stack_size);</div><div class='ctx'>     MEMCPY(cont-&gt;saved_vm_stack.ptr, ec-&gt;vm_stack, VALUE, ec-&gt;vm_stack_size);</div><div class='ctx'> #endif</div><div class='add'>+    // At this point, `cfp` is valid but `vm_stack` should be cleared:</div><div class='ctx'>     rb_ec_set_vm_stack(&amp;cont-&gt;saved_ec, NULL, 0);</div><div class='add'>+    VM_ASSERT(cont-&gt;saved_ec.cfp != NULL);</div><div class='ctx'>     cont_save_machine_stack(th, cont);</div><div class='ctx'> </div><div class='ctx'>     /* backup ensure_list to array for search in another context */</div><div class='ctx'>     {</div><div class='del'>-	rb_ensure_list_t *p;</div><div class='del'>-	int size = 0;</div><div class='del'>-	rb_ensure_entry_t *entry;</div><div class='del'>-	for (p=th-&gt;ec-&gt;ensure_list; p; p=p-&gt;next)</div><div class='del'>-	    size++;</div><div class='del'>-	entry = cont-&gt;ensure_array = ALLOC_N(rb_ensure_entry_t,size+1);</div><div class='del'>-	for (p=th-&gt;ec-&gt;ensure_list; p; p=p-&gt;next) {</div><div class='del'>-	    if (!p-&gt;entry.marker)</div><div class='del'>-		p-&gt;entry.marker = rb_ary_tmp_new(0); /* dummy object */</div><div class='del'>-	    *entry++ = p-&gt;entry;</div><div class='del'>-	}</div><div class='del'>-	entry-&gt;marker = 0;</div><div class='add'>+        rb_ensure_list_t *p;</div><div class='add'>+        int size = 0;</div><div class='add'>+        rb_ensure_entry_t *entry;</div><div class='add'>+        for (p=th-&gt;ec-&gt;ensure_list; p; p=p-&gt;next)</div><div class='add'>+            size++;</div><div class='add'>+        entry = cont-&gt;ensure_array = ALLOC_N(rb_ensure_entry_t,size+1);</div><div class='add'>+        for (p=th-&gt;ec-&gt;ensure_list; p; p=p-&gt;next) {</div><div class='add'>+            if (!p-&gt;entry.marker)</div><div class='add'>+                p-&gt;entry.marker = rb_ary_hidden_new(0); /* dummy object */</div><div class='add'>+            *entry++ = p-&gt;entry;</div><div class='add'>+        }</div><div class='add'>+        entry-&gt;marker = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (ruby_setjmp(cont-&gt;jmpbuf)) {</div><div class='del'>-	VALUE value;</div><div class='add'>+        VALUE value;</div><div class='ctx'> </div><div class='del'>-	VAR_INITIALIZED(cont);</div><div class='del'>-	value = cont-&gt;value;</div><div class='del'>-	if (cont-&gt;argc == -1) rb_exc_raise(value);</div><div class='del'>-	cont-&gt;value = Qnil;</div><div class='del'>-	*stat = 1;</div><div class='del'>-	return value;</div><div class='add'>+        VAR_INITIALIZED(cont);</div><div class='add'>+        value = cont-&gt;value;</div><div class='add'>+        if (cont-&gt;argc == -1) rb_exc_raise(value);</div><div class='add'>+        cont-&gt;value = Qnil;</div><div class='add'>+        *stat = 1;</div><div class='add'>+        return value;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	*stat = 0;</div><div class='del'>-	return contval;</div><div class='add'>+        *stat = 0;</div><div class='add'>+        return contval;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='del'>-COMPILER_WARNING_POP</div><div class='del'>-</div><div class='del'>-static inline void</div><div class='del'>-fiber_restore_thread(rb_thread_t *th, rb_fiber_t *fib)</div><div class='del'>-{</div><div class='del'>-    ec_switch(th, fib);</div><div class='del'>-    VM_ASSERT(th-&gt;ec-&gt;fiber_ptr == fib);</div><div class='del'>-}</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='ctx'> cont_restore_thread(rb_context_t *cont)</div><div class='hunk'>@@ -763,247 +1474,104 @@ cont_restore_thread(rb_context_t *cont)</div><div class='ctx'> </div><div class='ctx'>     /* restore thread context */</div><div class='ctx'>     if (cont-&gt;type == CONTINUATION_CONTEXT) {</div><div class='del'>-	/* continuation */</div><div class='del'>-	rb_execution_context_t *sec = &amp;cont-&gt;saved_ec;</div><div class='del'>-	rb_fiber_t *fib = NULL;</div><div class='add'>+        /* continuation */</div><div class='add'>+        rb_execution_context_t *sec = &amp;cont-&gt;saved_ec;</div><div class='add'>+        rb_fiber_t *fiber = NULL;</div><div class='ctx'> </div><div class='del'>-	if (sec-&gt;fiber_ptr != NULL) {</div><div class='del'>-	    fib = sec-&gt;fiber_ptr;</div><div class='del'>-	}</div><div class='del'>-	else if (th-&gt;root_fiber) {</div><div class='del'>-	    fib = th-&gt;root_fiber;</div><div class='del'>-	}</div><div class='add'>+        if (sec-&gt;fiber_ptr != NULL) {</div><div class='add'>+            fiber = sec-&gt;fiber_ptr;</div><div class='add'>+        }</div><div class='add'>+        else if (th-&gt;root_fiber) {</div><div class='add'>+            fiber = th-&gt;root_fiber;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	if (fib &amp;&amp; th-&gt;ec != &amp;fib-&gt;cont.saved_ec) {</div><div class='del'>-	    ec_switch(th, fib);</div><div class='del'>-	}</div><div class='add'>+        if (fiber &amp;&amp; th-&gt;ec != &amp;fiber-&gt;cont.saved_ec) {</div><div class='add'>+            ec_switch(th, fiber);</div><div class='add'>+        }</div><div class='ctx'> </div><div class='ctx'>         if (th-&gt;ec-&gt;trace_arg != sec-&gt;trace_arg) {</div><div class='ctx'>             rb_raise(rb_eRuntimeError, "can't call across trace_func");</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='del'>-	/* copy vm stack */</div><div class='add'>+        /* copy vm stack */</div><div class='ctx'> #ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='del'>-	MEMCPY(th-&gt;ec-&gt;vm_stack,</div><div class='del'>-	       cont-&gt;saved_vm_stack.ptr,</div><div class='del'>-	       VALUE, cont-&gt;saved_vm_stack.slen);</div><div class='del'>-	MEMCPY(th-&gt;ec-&gt;vm_stack + th-&gt;ec-&gt;vm_stack_size - cont-&gt;saved_vm_stack.clen,</div><div class='del'>-	       cont-&gt;saved_vm_stack.ptr + cont-&gt;saved_vm_stack.slen,</div><div class='del'>-	       VALUE, cont-&gt;saved_vm_stack.clen);</div><div class='add'>+        MEMCPY(th-&gt;ec-&gt;vm_stack,</div><div class='add'>+               cont-&gt;saved_vm_stack.ptr,</div><div class='add'>+               VALUE, cont-&gt;saved_vm_stack.slen);</div><div class='add'>+        MEMCPY(th-&gt;ec-&gt;vm_stack + th-&gt;ec-&gt;vm_stack_size - cont-&gt;saved_vm_stack.clen,</div><div class='add'>+               cont-&gt;saved_vm_stack.ptr + cont-&gt;saved_vm_stack.slen,</div><div class='add'>+               VALUE, cont-&gt;saved_vm_stack.clen);</div><div class='ctx'> #else</div><div class='del'>-	MEMCPY(th-&gt;ec-&gt;vm_stack, cont-&gt;saved_vm_stack.ptr, VALUE, sec-&gt;vm_stack_size);</div><div class='add'>+        MEMCPY(th-&gt;ec-&gt;vm_stack, cont-&gt;saved_vm_stack.ptr, VALUE, sec-&gt;vm_stack_size);</div><div class='ctx'> #endif</div><div class='del'>-	/* other members of ec */</div><div class='add'>+        /* other members of ec */</div><div class='ctx'> </div><div class='del'>-	th-&gt;ec-&gt;cfp = sec-&gt;cfp;</div><div class='del'>-	th-&gt;ec-&gt;raised_flag = sec-&gt;raised_flag;</div><div class='del'>-	th-&gt;ec-&gt;tag = sec-&gt;tag;</div><div class='del'>-	th-&gt;ec-&gt;protect_tag = sec-&gt;protect_tag;</div><div class='del'>-	th-&gt;ec-&gt;root_lep = sec-&gt;root_lep;</div><div class='del'>-	th-&gt;ec-&gt;root_svar = sec-&gt;root_svar;</div><div class='del'>-	th-&gt;ec-&gt;ensure_list = sec-&gt;ensure_list;</div><div class='del'>-	th-&gt;ec-&gt;errinfo = sec-&gt;errinfo;</div><div class='add'>+        th-&gt;ec-&gt;cfp = sec-&gt;cfp;</div><div class='add'>+        th-&gt;ec-&gt;raised_flag = sec-&gt;raised_flag;</div><div class='add'>+        th-&gt;ec-&gt;tag = sec-&gt;tag;</div><div class='add'>+        th-&gt;ec-&gt;root_lep = sec-&gt;root_lep;</div><div class='add'>+        th-&gt;ec-&gt;root_svar = sec-&gt;root_svar;</div><div class='add'>+        th-&gt;ec-&gt;ensure_list = sec-&gt;ensure_list;</div><div class='add'>+        th-&gt;ec-&gt;errinfo = sec-&gt;errinfo;</div><div class='ctx'> </div><div class='del'>-	VM_ASSERT(th-&gt;ec-&gt;vm_stack != NULL);</div><div class='add'>+        VM_ASSERT(th-&gt;ec-&gt;vm_stack != NULL);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	/* fiber */</div><div class='del'>-	fiber_restore_thread(th, (rb_fiber_t*)cont);</div><div class='add'>+        /* fiber */</div><div class='add'>+        fiber_restore_thread(th, (rb_fiber_t*)cont);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if FIBER_USE_NATIVE</div><div class='del'>-#if defined(FIBER_USE_COROUTINE)</div><div class='del'>-static COROUTINE</div><div class='del'>-fiber_entry(coroutine_context * from, coroutine_context * to)</div><div class='del'>-{</div><div class='del'>-    rb_fiber_start();</div><div class='del'>-}</div><div class='del'>-#elif defined(_WIN32)</div><div class='del'>-static void</div><div class='del'>-fiber_set_stack_location(void)</div><div class='del'>-{</div><div class='del'>-    rb_thread_t *th = GET_THREAD();</div><div class='del'>-    VALUE *ptr;</div><div class='del'>-</div><div class='del'>-    SET_MACHINE_STACK_END(&amp;ptr);</div><div class='del'>-    th-&gt;ec-&gt;machine.stack_start = (void*)(((VALUE)ptr &amp; RB_PAGE_MASK) + STACK_UPPER((void *)&amp;ptr, 0, RB_PAGE_SIZE));</div><div class='del'>-}</div><div class='add'>+NOINLINE(static void fiber_setcontext(rb_fiber_t *new_fiber, rb_fiber_t *old_fiber));</div><div class='ctx'> </div><div class='del'>-NORETURN(static VOID CALLBACK fiber_entry(void *arg));</div><div class='del'>-static VOID CALLBACK</div><div class='del'>-fiber_entry(void *arg)</div><div class='del'>-{</div><div class='del'>-    fiber_set_stack_location();</div><div class='del'>-    rb_fiber_start();</div><div class='del'>-}</div><div class='del'>-#else</div><div class='del'>-NORETURN(static void fiber_entry(void *arg));</div><div class='ctx'> static void</div><div class='del'>-fiber_entry(void *arg)</div><div class='del'>-{</div><div class='del'>-    rb_fiber_start();</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef FIBER_ALLOCATE_STACK</div><div class='del'>-/*</div><div class='del'>- * FreeBSD require a first (i.e. addr) argument of mmap(2) is not NULL</div><div class='del'>- * if MAP_STACK is passed.</div><div class='del'>- * http://www.FreeBSD.org/cgi/query-pr.cgi?pr=158755</div><div class='del'>- */</div><div class='del'>-#if defined(MAP_STACK) &amp;&amp; !defined(__FreeBSD__) &amp;&amp; !defined(__FreeBSD_kernel__)</div><div class='del'>-#define FIBER_STACK_FLAGS (MAP_PRIVATE | MAP_ANON | MAP_STACK)</div><div class='del'>-#else</div><div class='del'>-#define FIBER_STACK_FLAGS (MAP_PRIVATE | MAP_ANON)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define ERRNOMSG strerror(errno)</div><div class='del'>-</div><div class='del'>-static char*</div><div class='del'>-fiber_machine_stack_alloc(size_t size)</div><div class='add'>+fiber_setcontext(rb_fiber_t *new_fiber, rb_fiber_t *old_fiber)</div><div class='ctx'> {</div><div class='del'>-    char *ptr;</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-    DWORD old_protect;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    if (machine_stack_cache_index &gt; 0) {</div><div class='del'>-        if (machine_stack_cache[machine_stack_cache_index - 1].size == (size / sizeof(VALUE))) {</div><div class='del'>-            ptr = machine_stack_cache[machine_stack_cache_index - 1].ptr;</div><div class='del'>-            machine_stack_cache_index--;</div><div class='del'>-            machine_stack_cache[machine_stack_cache_index].ptr = NULL;</div><div class='del'>-            machine_stack_cache[machine_stack_cache_index].size = 0;</div><div class='del'>-        } else {</div><div class='del'>-            /* TODO handle multiple machine stack size */</div><div class='del'>-            rb_bug("machine_stack_cache size is not canonicalized");</div><div class='del'>-        }</div><div class='del'>-    } else {</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-        ptr = VirtualAlloc(0, size, MEM_COMMIT, PAGE_READWRITE);</div><div class='del'>-</div><div class='del'>-        if (!ptr) {</div><div class='del'>-            rb_raise(rb_eFiberError, "can't allocate machine stack to fiber: %s", ERRNOMSG);</div><div class='del'>-        }</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='ctx'> </div><div class='del'>-        if (!VirtualProtect(ptr, RB_PAGE_SIZE, PAGE_READWRITE | PAGE_GUARD, &amp;old_protect)) {</div><div class='del'>-            rb_raise(rb_eFiberError, "can't set a guard page: %s", ERRNOMSG);</div><div class='del'>-        }</div><div class='del'>-#else</div><div class='del'>-        void *page;</div><div class='add'>+    /* save old_fiber's machine stack - to ensure efficient garbage collection */</div><div class='add'>+    if (!FIBER_TERMINATED_P(old_fiber)) {</div><div class='ctx'>         STACK_GROW_DIR_DETECTION;</div><div class='del'>-</div><div class='del'>-        errno = 0;</div><div class='del'>-        ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, FIBER_STACK_FLAGS, -1, 0);</div><div class='del'>-        if (ptr == MAP_FAILED) {</div><div class='del'>-            rb_raise(rb_eFiberError, "can't alloc machine stack to fiber: %s", ERRNOMSG);</div><div class='add'>+        SET_MACHINE_STACK_END(&amp;th-&gt;ec-&gt;machine.stack_end);</div><div class='add'>+        if (STACK_DIR_UPPER(0, 1)) {</div><div class='add'>+            old_fiber-&gt;cont.machine.stack_size = th-&gt;ec-&gt;machine.stack_start - th-&gt;ec-&gt;machine.stack_end;</div><div class='add'>+            old_fiber-&gt;cont.machine.stack = th-&gt;ec-&gt;machine.stack_end;</div><div class='ctx'>         }</div><div class='del'>-</div><div class='del'>-        /* guard page setup */</div><div class='del'>-        page = ptr + STACK_DIR_UPPER(size - RB_PAGE_SIZE, 0);</div><div class='del'>-        if (mprotect(page, RB_PAGE_SIZE, PROT_NONE) &lt; 0) {</div><div class='del'>-            rb_raise(rb_eFiberError, "can't set a guard page: %s", ERRNOMSG);</div><div class='add'>+        else {</div><div class='add'>+            old_fiber-&gt;cont.machine.stack_size = th-&gt;ec-&gt;machine.stack_end - th-&gt;ec-&gt;machine.stack_start;</div><div class='add'>+            old_fiber-&gt;cont.machine.stack = th-&gt;ec-&gt;machine.stack_start;</div><div class='ctx'>         }</div><div class='del'>-#endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return ptr;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='add'>+    /* exchange machine_stack_start between old_fiber and new_fiber */</div><div class='add'>+    old_fiber-&gt;cont.saved_ec.machine.stack_start = th-&gt;ec-&gt;machine.stack_start;</div><div class='ctx'> </div><div class='del'>-#if FIBER_USE_NATIVE</div><div class='del'>-static void</div><div class='del'>-fiber_initialize_machine_stack_context(rb_fiber_t *fib, size_t size)</div><div class='del'>-{</div><div class='del'>-    rb_execution_context_t *sec = &amp;fib-&gt;cont.saved_ec;</div><div class='del'>-</div><div class='del'>-#if defined(FIBER_USE_COROUTINE)</div><div class='del'>-    char *ptr;</div><div class='del'>-    STACK_GROW_DIR_DETECTION;</div><div class='add'>+    /* old_fiber-&gt;machine.stack_end should be NULL */</div><div class='add'>+    old_fiber-&gt;cont.saved_ec.machine.stack_end = NULL;</div><div class='ctx'> </div><div class='del'>-    ptr = fiber_machine_stack_alloc(size);</div><div class='del'>-    fib-&gt;ss_sp = ptr;</div><div class='del'>-    fib-&gt;ss_size = size;</div><div class='del'>-    coroutine_initialize(&amp;fib-&gt;context, fiber_entry, ptr+size, size);</div><div class='del'>-    sec-&gt;machine.stack_start = (VALUE*)(ptr + STACK_DIR_UPPER(0, size));</div><div class='del'>-    sec-&gt;machine.stack_maxsize = size - RB_PAGE_SIZE;</div><div class='del'>-#elif defined(_WIN32)</div><div class='del'>-# if defined(_MSC_VER) &amp;&amp; _MSC_VER &lt;= 1200</div><div class='del'>-#   define CreateFiberEx(cs, stacksize, flags, entry, param) \</div><div class='del'>-    CreateFiber((stacksize), (entry), (param))</div><div class='del'>-# endif</div><div class='del'>-    fib-&gt;fib_handle = CreateFiberEx(size - 1, size, 0, fiber_entry, NULL);</div><div class='del'>-    if (!fib-&gt;fib_handle) {</div><div class='del'>-	/* try to release unnecessary fibers &amp; retry to create */</div><div class='del'>-	rb_gc();</div><div class='del'>-	fib-&gt;fib_handle = CreateFiberEx(size - 1, size, 0, fiber_entry, NULL);</div><div class='del'>-	if (!fib-&gt;fib_handle) {</div><div class='del'>-	    rb_raise(rb_eFiberError, "can't create fiber");</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    sec-&gt;machine.stack_maxsize = size;</div><div class='del'>-#else /* not WIN32 */</div><div class='del'>-    char *ptr;</div><div class='del'>-    STACK_GROW_DIR_DETECTION;</div><div class='add'>+    // if (DEBUG) fprintf(stderr, "fiber_setcontext: %p[%p] -&gt; %p[%p]\n", (void*)old_fiber, old_fiber-&gt;stack.base, (void*)new_fiber, new_fiber-&gt;stack.base);</div><div class='ctx'> </div><div class='del'>-    ptr = fiber_machine_stack_alloc(size);</div><div class='del'>-    fib-&gt;ss_sp = ptr;</div><div class='del'>-    fib-&gt;ss_size = size;</div><div class='del'>-    if (fiber_context_create(&amp;fib-&gt;context, fiber_entry, NULL, fib-&gt;ss_sp, fib-&gt;ss_size)) {</div><div class='del'>-	rb_raise(rb_eFiberError, "can't get context for creating fiber: %s", ERRNOMSG);</div><div class='del'>-    }</div><div class='del'>-    sec-&gt;machine.stack_start = (VALUE*)(ptr + STACK_DIR_UPPER(0, size));</div><div class='del'>-    sec-&gt;machine.stack_maxsize = size - RB_PAGE_SIZE;</div><div class='del'>-#endif</div><div class='del'>-#ifdef __ia64</div><div class='del'>-    sth-&gt;machine.register_stack_maxsize = sth-&gt;machine.stack_maxsize;</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+    __sanitizer_start_switch_fiber(FIBER_TERMINATED_P(old_fiber) ? NULL : &amp;old_fiber-&gt;context.fake_stack, new_fiber-&gt;context.stack_base, new_fiber-&gt;context.stack_size);</div><div class='ctx'> #endif</div><div class='del'>-}</div><div class='ctx'> </div><div class='del'>-NOINLINE(static void fiber_setcontext(rb_fiber_t *newfib, rb_fiber_t *oldfib));</div><div class='add'>+    /* swap machine context */</div><div class='add'>+    struct coroutine_context * from = coroutine_transfer(&amp;old_fiber-&gt;context, &amp;new_fiber-&gt;context);</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-fiber_setcontext(rb_fiber_t *newfib, rb_fiber_t *oldfib)</div><div class='del'>-{</div><div class='del'>-    rb_thread_t *th = GET_THREAD();</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+    __sanitizer_finish_switch_fiber(old_fiber-&gt;context.fake_stack, NULL, NULL);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    /* save oldfib's machine stack / TODO: is it needed? */</div><div class='del'>-    if (!FIBER_TERMINATED_P(oldfib)) {</div><div class='del'>-	STACK_GROW_DIR_DETECTION;</div><div class='del'>-	SET_MACHINE_STACK_END(&amp;th-&gt;ec-&gt;machine.stack_end);</div><div class='del'>-	if (STACK_DIR_UPPER(0, 1)) {</div><div class='del'>-	    oldfib-&gt;cont.machine.stack_size = th-&gt;ec-&gt;machine.stack_start - th-&gt;ec-&gt;machine.stack_end;</div><div class='del'>-	    oldfib-&gt;cont.machine.stack = th-&gt;ec-&gt;machine.stack_end;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    oldfib-&gt;cont.machine.stack_size = th-&gt;ec-&gt;machine.stack_end - th-&gt;ec-&gt;machine.stack_start;</div><div class='del'>-	    oldfib-&gt;cont.machine.stack = th-&gt;ec-&gt;machine.stack_start;</div><div class='del'>-	}</div><div class='add'>+    if (from == NULL) {</div><div class='add'>+        rb_syserr_fail(errno, "coroutine_transfer");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    /* exchange machine_stack_start between oldfib and newfib */</div><div class='del'>-    oldfib-&gt;cont.saved_ec.machine.stack_start = th-&gt;ec-&gt;machine.stack_start;</div><div class='del'>-</div><div class='del'>-    /* oldfib-&gt;machine.stack_end should be NULL */</div><div class='del'>-    oldfib-&gt;cont.saved_ec.machine.stack_end = NULL;</div><div class='del'>-</div><div class='ctx'>     /* restore thread context */</div><div class='del'>-    fiber_restore_thread(th, newfib);</div><div class='add'>+    fiber_restore_thread(th, old_fiber);</div><div class='ctx'> </div><div class='del'>-    /* swap machine context */</div><div class='del'>-#if defined(FIBER_USE_COROUTINE)</div><div class='del'>-    coroutine_transfer(&amp;oldfib-&gt;context, &amp;newfib-&gt;context);</div><div class='del'>-#elif defined(_WIN32)</div><div class='del'>-    SwitchToFiber(newfib-&gt;fib_handle);</div><div class='del'>-#else</div><div class='del'>-    if (!newfib-&gt;context.uc_stack.ss_sp &amp;&amp; th-&gt;root_fiber != newfib) {</div><div class='del'>-	rb_bug("non_root_fiber-&gt;context.uc_stac.ss_sp should not be NULL");</div><div class='del'>-    }</div><div class='del'>-    swapcontext(&amp;oldfib-&gt;context, &amp;newfib-&gt;context);</div><div class='del'>-#endif</div><div class='add'>+    // It's possible to get here, and new_fiber is already freed.</div><div class='add'>+    // if (DEBUG) fprintf(stderr, "fiber_setcontext: %p[%p] &lt;- %p[%p]\n", (void*)old_fiber, old_fiber-&gt;stack.base, (void*)new_fiber, new_fiber-&gt;stack.base);</div><div class='ctx'> }</div><div class='del'>-#endif /* FIBER_USE_NATIVE */</div><div class='ctx'> </div><div class='ctx'> NOINLINE(NORETURN(static void cont_restore_1(rb_context_t *)));</div><div class='ctx'> </div><div class='hunk'>@@ -1013,68 +1581,26 @@ cont_restore_1(rb_context_t *cont)</div><div class='ctx'>     cont_restore_thread(cont);</div><div class='ctx'> </div><div class='ctx'>     /* restore machine stack */</div><div class='del'>-#ifdef _M_AMD64</div><div class='add'>+#if defined(_M_AMD64) &amp;&amp; !defined(__MINGW64__)</div><div class='ctx'>     {</div><div class='del'>-	/* workaround for x64 SEH */</div><div class='del'>-	jmp_buf buf;</div><div class='del'>-	setjmp(buf);</div><div class='del'>-	((_JUMP_BUFFER*)(&amp;cont-&gt;jmpbuf))-&gt;Frame =</div><div class='del'>-	    ((_JUMP_BUFFER*)(&amp;buf))-&gt;Frame;</div><div class='add'>+        /* workaround for x64 SEH */</div><div class='add'>+        jmp_buf buf;</div><div class='add'>+        setjmp(buf);</div><div class='add'>+        _JUMP_BUFFER *bp = (void*)&amp;cont-&gt;jmpbuf;</div><div class='add'>+        bp-&gt;Frame = ((_JUMP_BUFFER*)((void*)&amp;buf))-&gt;Frame;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     if (cont-&gt;machine.stack_src) {</div><div class='del'>-	FLUSH_REGISTER_WINDOWS;</div><div class='del'>-	MEMCPY(cont-&gt;machine.stack_src, cont-&gt;machine.stack,</div><div class='del'>-		VALUE, cont-&gt;machine.stack_size);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-#ifdef __ia64</div><div class='del'>-    if (cont-&gt;machine.register_stack_src) {</div><div class='del'>-	MEMCPY(cont-&gt;machine.register_stack_src, cont-&gt;machine.register_stack,</div><div class='del'>-	       VALUE, cont-&gt;machine.register_stack_size);</div><div class='add'>+        FLUSH_REGISTER_WINDOWS;</div><div class='add'>+        MEMCPY(cont-&gt;machine.stack_src, cont-&gt;machine.stack,</div><div class='add'>+               VALUE, cont-&gt;machine.stack_size);</div><div class='ctx'>     }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'>     ruby_longjmp(cont-&gt;jmpbuf, 1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> NORETURN(NOINLINE(static void cont_restore_0(rb_context_t *, VALUE *)));</div><div class='ctx'> </div><div class='del'>-#ifdef __ia64</div><div class='del'>-#define C(a) rse_##a##0, rse_##a##1, rse_##a##2, rse_##a##3, rse_##a##4</div><div class='del'>-#define E(a) rse_##a##0= rse_##a##1= rse_##a##2= rse_##a##3= rse_##a##4</div><div class='del'>-static volatile int C(a), C(b), C(c), C(d), C(e);</div><div class='del'>-static volatile int C(f), C(g), C(h), C(i), C(j);</div><div class='del'>-static volatile int C(k), C(l), C(m), C(n), C(o);</div><div class='del'>-static volatile int C(p), C(q), C(r), C(s), C(t);</div><div class='del'>-#if 0</div><div class='del'>-{/* the above lines make cc-mode.el confused so much */}</div><div class='del'>-#endif</div><div class='del'>-int rb_dummy_false = 0;</div><div class='del'>-NORETURN(NOINLINE(static void register_stack_extend(rb_context_t *, VALUE *, VALUE *)));</div><div class='del'>-static void</div><div class='del'>-register_stack_extend(rb_context_t *cont, VALUE *vp, VALUE *curr_bsp)</div><div class='del'>-{</div><div class='del'>-    if (rb_dummy_false) {</div><div class='del'>-        /* use registers as much as possible */</div><div class='del'>-        E(a) = E(b) = E(c) = E(d) = E(e) =</div><div class='del'>-        E(f) = E(g) = E(h) = E(i) = E(j) =</div><div class='del'>-        E(k) = E(l) = E(m) = E(n) = E(o) =</div><div class='del'>-        E(p) = E(q) = E(r) = E(s) = E(t) = 0;</div><div class='del'>-        E(a) = E(b) = E(c) = E(d) = E(e) =</div><div class='del'>-        E(f) = E(g) = E(h) = E(i) = E(j) =</div><div class='del'>-        E(k) = E(l) = E(m) = E(n) = E(o) =</div><div class='del'>-        E(p) = E(q) = E(r) = E(s) = E(t) = 0;</div><div class='del'>-    }</div><div class='del'>-    if (curr_bsp &lt; cont-&gt;machine.register_stack_src+cont-&gt;machine.register_stack_size) {</div><div class='del'>-        register_stack_extend(cont, vp, (VALUE*)rb_ia64_bsp());</div><div class='del'>-    }</div><div class='del'>-    cont_restore_0(cont, vp);</div><div class='del'>-}</div><div class='del'>-#undef C</div><div class='del'>-#undef E</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> static void</div><div class='ctx'> cont_restore_0(rb_context_t *cont, VALUE *addr_in_prev_frame)</div><div class='ctx'> {</div><div class='hunk'>@@ -1084,48 +1610,49 @@ cont_restore_0(rb_context_t *cont, VALUE *addr_in_prev_frame)</div><div class='ctx'> #else</div><div class='ctx'> #define STACK_PAD_SIZE 1024</div><div class='ctx'> #endif</div><div class='del'>-	VALUE space[STACK_PAD_SIZE];</div><div class='add'>+        VALUE space[STACK_PAD_SIZE];</div><div class='ctx'> </div><div class='ctx'> #if !STACK_GROW_DIRECTION</div><div class='del'>-	if (addr_in_prev_frame &gt; &amp;space[0]) {</div><div class='del'>-	    /* Stack grows downward */</div><div class='add'>+        if (addr_in_prev_frame &gt; &amp;space[0]) {</div><div class='add'>+            /* Stack grows downward */</div><div class='ctx'> #endif</div><div class='ctx'> #if STACK_GROW_DIRECTION &lt;= 0</div><div class='del'>-	    volatile VALUE *const end = cont-&gt;machine.stack_src;</div><div class='del'>-	    if (&amp;space[0] &gt; end) {</div><div class='add'>+            volatile VALUE *const end = cont-&gt;machine.stack_src;</div><div class='add'>+            if (&amp;space[0] &gt; end) {</div><div class='ctx'> # ifdef HAVE_ALLOCA</div><div class='del'>-		volatile VALUE *sp = ALLOCA_N(VALUE, &amp;space[0] - end);</div><div class='del'>-		space[0] = *sp;</div><div class='add'>+                volatile VALUE *sp = ALLOCA_N(VALUE, &amp;space[0] - end);</div><div class='add'>+                // We need to make sure that the stack pointer is moved,</div><div class='add'>+                // but some compilers may remove the allocation by optimization.</div><div class='add'>+                // We hope that the following read/write will prevent such an optimization.</div><div class='add'>+                *sp = Qfalse;</div><div class='add'>+                space[0] = *sp;</div><div class='ctx'> # else</div><div class='del'>-		cont_restore_0(cont, &amp;space[0]);</div><div class='add'>+                cont_restore_0(cont, &amp;space[0]);</div><div class='ctx'> # endif</div><div class='del'>-	    }</div><div class='add'>+            }</div><div class='ctx'> #endif</div><div class='ctx'> #if !STACK_GROW_DIRECTION</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    /* Stack grows upward */</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* Stack grows upward */</div><div class='ctx'> #endif</div><div class='ctx'> #if STACK_GROW_DIRECTION &gt;= 0</div><div class='del'>-	    volatile VALUE *const end = cont-&gt;machine.stack_src + cont-&gt;machine.stack_size;</div><div class='del'>-	    if (&amp;space[STACK_PAD_SIZE] &lt; end) {</div><div class='add'>+            volatile VALUE *const end = cont-&gt;machine.stack_src + cont-&gt;machine.stack_size;</div><div class='add'>+            if (&amp;space[STACK_PAD_SIZE] &lt; end) {</div><div class='ctx'> # ifdef HAVE_ALLOCA</div><div class='del'>-		volatile VALUE *sp = ALLOCA_N(VALUE, end - &amp;space[STACK_PAD_SIZE]);</div><div class='del'>-		space[0] = *sp;</div><div class='add'>+                volatile VALUE *sp = ALLOCA_N(VALUE, end - &amp;space[STACK_PAD_SIZE]);</div><div class='add'>+                space[0] = *sp;</div><div class='ctx'> # else</div><div class='del'>-		cont_restore_0(cont, &amp;space[STACK_PAD_SIZE-1]);</div><div class='add'>+                cont_restore_0(cont, &amp;space[STACK_PAD_SIZE-1]);</div><div class='ctx'> # endif</div><div class='del'>-	    }</div><div class='add'>+            }</div><div class='ctx'> #endif</div><div class='ctx'> #if !STACK_GROW_DIRECTION</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     cont_restore_1(cont);</div><div class='ctx'> }</div><div class='del'>-#ifdef __ia64</div><div class='del'>-#define cont_restore_0(cont, vp) register_stack_extend((cont), (vp), (VALUE*)rb_ia64_bsp())</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  Document-class: Continuation</div><div class='hunk'>@@ -1133,7 +1660,7 @@ cont_restore_0(rb_context_t *cont, VALUE *addr_in_prev_frame)</div><div class='ctx'>  *  Continuation objects are generated by Kernel#callcc,</div><div class='ctx'>  *  after having +require+d &lt;i&gt;continuation&lt;/i&gt;. They hold</div><div class='ctx'>  *  a return address and execution context, allowing a nonlocal return</div><div class='del'>- *  to the end of the &lt;code&gt;callcc&lt;/code&gt; block from anywhere within a</div><div class='add'>+ *  to the end of the #callcc block from anywhere within a</div><div class='ctx'>  *  program. Continuations are somewhat analogous to a structured</div><div class='ctx'>  *  version of C's &lt;code&gt;setjmp/longjmp&lt;/code&gt; (although they contain</div><div class='ctx'>  *  more state, so you might consider them closer to threads).</div><div class='hunk'>@@ -1177,7 +1704,7 @@ cont_restore_0(rb_context_t *cont, VALUE *addr_in_prev_frame)</div><div class='ctx'>  *     require "continuation"</div><div class='ctx'>  *     callcc {|cont|</div><div class='ctx'>  *       for i in 0..4</div><div class='del'>- *         print "\n#{i}: "</div><div class='add'>+ *         print "#{i}: "</div><div class='ctx'>  *         for j in i*5...(i+1)*5</div><div class='ctx'>  *           cont.call() if j == 17</div><div class='ctx'>  *           printf "%3d", j</div><div class='hunk'>@@ -1217,10 +1744,10 @@ rb_callcc(VALUE self)</div><div class='ctx'>     volatile VALUE val = cont_capture(&amp;called);</div><div class='ctx'> </div><div class='ctx'>     if (called) {</div><div class='del'>-	return val;</div><div class='add'>+        return val;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_yield(val);</div><div class='add'>+        return rb_yield(val);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1228,35 +1755,39 @@ static VALUE</div><div class='ctx'> make_passing_arg(int argc, const VALUE *argv)</div><div class='ctx'> {</div><div class='ctx'>     switch (argc) {</div><div class='add'>+      case -1:</div><div class='add'>+        return argv[0];</div><div class='ctx'>       case 0:</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>       case 1:</div><div class='del'>-	return argv[0];</div><div class='add'>+        return argv[0];</div><div class='ctx'>       default:</div><div class='del'>-	return rb_ary_new4(argc, argv);</div><div class='add'>+        return rb_ary_new4(argc, argv);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+typedef VALUE e_proc(VALUE);</div><div class='add'>+</div><div class='ctx'> /* CAUTION!! : Currently, error in rollback_func is not supported  */</div><div class='ctx'> /* same as rb_protect if set rollback_func to NULL */</div><div class='ctx'> void</div><div class='del'>-ruby_register_rollback_func_for_ensure(VALUE (*ensure_func)(ANYARGS), VALUE (*rollback_func)(ANYARGS))</div><div class='add'>+ruby_register_rollback_func_for_ensure(e_proc *ensure_func, e_proc *rollback_func)</div><div class='ctx'> {</div><div class='ctx'>     st_table **table_p = &amp;GET_VM()-&gt;ensure_rollback_table;</div><div class='ctx'>     if (UNLIKELY(*table_p == NULL)) {</div><div class='del'>-	*table_p = st_init_numtable();</div><div class='add'>+        *table_p = st_init_numtable();</div><div class='ctx'>     }</div><div class='ctx'>     st_insert(*table_p, (st_data_t)ensure_func, (st_data_t)rollback_func);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static inline VALUE</div><div class='del'>-lookup_rollback_func(VALUE (*ensure_func)(ANYARGS))</div><div class='add'>+static inline e_proc *</div><div class='add'>+lookup_rollback_func(e_proc *ensure_func)</div><div class='ctx'> {</div><div class='ctx'>     st_table *table = GET_VM()-&gt;ensure_rollback_table;</div><div class='ctx'>     st_data_t val;</div><div class='ctx'>     if (table &amp;&amp; st_lookup(table, (st_data_t)ensure_func, &amp;val))</div><div class='del'>-	return (VALUE) val;</div><div class='del'>-    return Qundef;</div><div class='add'>+        return (e_proc *) val;</div><div class='add'>+    return (e_proc *) Qundef;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -1269,58 +1800,59 @@ rollback_ensure_stack(VALUE self,rb_ensure_list_t *current,rb_ensure_entry_t *ta</div><div class='ctx'>     size_t cur_size;</div><div class='ctx'>     size_t target_size;</div><div class='ctx'>     size_t base_point;</div><div class='del'>-    VALUE (*func)(ANYARGS);</div><div class='add'>+    e_proc *func;</div><div class='ctx'> </div><div class='ctx'>     cur_size = 0;</div><div class='ctx'>     for (p=current; p; p=p-&gt;next)</div><div class='del'>-	cur_size++;</div><div class='add'>+        cur_size++;</div><div class='ctx'>     target_size = 0;</div><div class='ctx'>     for (entry=target; entry-&gt;marker; entry++)</div><div class='del'>-	target_size++;</div><div class='add'>+        target_size++;</div><div class='ctx'> </div><div class='ctx'>     /* search common stack point */</div><div class='ctx'>     p = current;</div><div class='ctx'>     base_point = cur_size;</div><div class='ctx'>     while (base_point) {</div><div class='del'>-	if (target_size &gt;= base_point &amp;&amp;</div><div class='del'>-	    p-&gt;entry.marker == target[target_size - base_point].marker)</div><div class='del'>-	    break;</div><div class='del'>-	base_point --;</div><div class='del'>-	p = p-&gt;next;</div><div class='add'>+        if (target_size &gt;= base_point &amp;&amp;</div><div class='add'>+            p-&gt;entry.marker == target[target_size - base_point].marker)</div><div class='add'>+            break;</div><div class='add'>+        base_point --;</div><div class='add'>+        p = p-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* rollback function check */</div><div class='ctx'>     for (i=0; i &lt; target_size - base_point; i++) {</div><div class='del'>-	if (!lookup_rollback_func(target[i].e_proc)) {</div><div class='del'>-	    rb_raise(rb_eRuntimeError, "continuation called from out of critical rb_ensure scope");</div><div class='del'>-	}</div><div class='add'>+        if (!lookup_rollback_func(target[i].e_proc)) {</div><div class='add'>+            rb_raise(rb_eRuntimeError, "continuation called from out of critical rb_ensure scope");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     /* pop ensure stack */</div><div class='ctx'>     while (cur_size &gt; base_point) {</div><div class='del'>-	/* escape from ensure block */</div><div class='del'>-	(*current-&gt;entry.e_proc)(current-&gt;entry.data2);</div><div class='del'>-	current = current-&gt;next;</div><div class='del'>-	cur_size--;</div><div class='add'>+        /* escape from ensure block */</div><div class='add'>+        (*current-&gt;entry.e_proc)(current-&gt;entry.data2);</div><div class='add'>+        current = current-&gt;next;</div><div class='add'>+        cur_size--;</div><div class='ctx'>     }</div><div class='ctx'>     /* push ensure stack */</div><div class='ctx'>     for (j = 0; j &lt; i; j++) {</div><div class='del'>-        func = (VALUE (*)(ANYARGS)) lookup_rollback_func(target[i - j - 1].e_proc);</div><div class='del'>-        if ((VALUE)func != Qundef) {</div><div class='add'>+        func = lookup_rollback_func(target[i - j - 1].e_proc);</div><div class='add'>+        if (!UNDEF_P((VALUE)func)) {</div><div class='ctx'>             (*func)(target[i - j - 1].data2);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+NORETURN(static VALUE rb_cont_call(int argc, VALUE *argv, VALUE contval));</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     cont.call(args, ...)</div><div class='ctx'>  *     cont[args, ...]</div><div class='ctx'>  *</div><div class='del'>- *  Invokes the continuation. The program continues from the end of the</div><div class='del'>- *  &lt;code&gt;callcc&lt;/code&gt; block. If no arguments are given, the original</div><div class='del'>- *  &lt;code&gt;callcc&lt;/code&gt; returns &lt;code&gt;nil&lt;/code&gt;. If one argument is</div><div class='del'>- *  given, &lt;code&gt;callcc&lt;/code&gt; returns it. Otherwise, an array</div><div class='del'>- *  containing &lt;i&gt;args&lt;/i&gt; is returned.</div><div class='add'>+ *  Invokes the continuation. The program continues from the end of</div><div class='add'>+ *  the #callcc block. If no arguments are given, the original #callcc</div><div class='add'>+ *  returns +nil+. If one argument is given, #callcc returns</div><div class='add'>+ *  it. Otherwise, an array containing &lt;i&gt;args&lt;/i&gt; is returned.</div><div class='ctx'>  *</div><div class='ctx'>  *     callcc {|cont|  cont.call }           #=&gt; nil</div><div class='ctx'>  *     callcc {|cont|  cont.call 1 }         #=&gt; 1</div><div class='hunk'>@@ -1334,15 +1866,12 @@ rb_cont_call(int argc, VALUE *argv, VALUE contval)</div><div class='ctx'>     rb_thread_t *th = GET_THREAD();</div><div class='ctx'> </div><div class='ctx'>     if (cont_thread_value(cont) != th-&gt;self) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "continuation called across threads");</div><div class='del'>-    }</div><div class='del'>-    if (cont-&gt;saved_ec.protect_tag != th-&gt;ec-&gt;protect_tag) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "continuation called across stack rewinding barrier");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "continuation called across threads");</div><div class='ctx'>     }</div><div class='ctx'>     if (cont-&gt;saved_ec.fiber_ptr) {</div><div class='del'>-	if (th-&gt;ec-&gt;fiber_ptr != cont-&gt;saved_ec.fiber_ptr) {</div><div class='del'>-	    rb_raise(rb_eRuntimeError, "continuation called across fiber");</div><div class='del'>-	}</div><div class='add'>+        if (th-&gt;ec-&gt;fiber_ptr != cont-&gt;saved_ec.fiber_ptr) {</div><div class='add'>+            rb_raise(rb_eRuntimeError, "continuation called across fiber");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     rollback_ensure_stack(contval, th-&gt;ec-&gt;ensure_list, cont-&gt;ensure_array);</div><div class='ctx'> </div><div class='hunk'>@@ -1350,7 +1879,7 @@ rb_cont_call(int argc, VALUE *argv, VALUE contval)</div><div class='ctx'>     cont-&gt;value = make_passing_arg(argc, argv);</div><div class='ctx'> </div><div class='ctx'>     cont_restore_0(cont, &amp;contval);</div><div class='del'>-    return Qnil; /* unreachable */</div><div class='add'>+    UNREACHABLE_RETURN(Qnil);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*********/</div><div class='hunk'>@@ -1372,10 +1901,10 @@ rb_cont_call(int argc, VALUE *argv, VALUE contval)</div><div class='ctx'>  *  manpage to configure the size of the fiber stack(s).</div><div class='ctx'>  *</div><div class='ctx'>  *  When a fiber is created it will not run automatically. Rather it must</div><div class='del'>- *  be explicitly asked to run using the &lt;code&gt;Fiber#resume&lt;/code&gt; method.</div><div class='add'>+ *  be explicitly asked to run using the Fiber#resume method.</div><div class='ctx'>  *  The code running inside the fiber can give up control by calling</div><div class='del'>- *  &lt;code&gt;Fiber.yield&lt;/code&gt; in which case it yields control back to caller</div><div class='del'>- *  (the caller of the &lt;code&gt;Fiber#resume&lt;/code&gt;).</div><div class='add'>+ *  Fiber.yield in which case it yields control back to caller (the</div><div class='add'>+ *  caller of the Fiber#resume).</div><div class='ctx'>  *</div><div class='ctx'>  *  Upon yielding or termination the Fiber returns the value of the last</div><div class='ctx'>  *  executed expression</div><div class='hunk'>@@ -1397,10 +1926,10 @@ rb_cont_call(int argc, VALUE *argv, VALUE contval)</div><div class='ctx'>  *    2</div><div class='ctx'>  *    FiberError: dead fiber called</div><div class='ctx'>  *</div><div class='del'>- *  The &lt;code&gt;Fiber#resume&lt;/code&gt; method accepts an arbitrary number of</div><div class='del'>- *  parameters, if it is the first call to &lt;code&gt;resume&lt;/code&gt; then they</div><div class='del'>- *  will be passed as block arguments. Otherwise they will be the return</div><div class='del'>- *  value of the call to &lt;code&gt;Fiber.yield&lt;/code&gt;</div><div class='add'>+ *  The Fiber#resume method accepts an arbitrary number of parameters,</div><div class='add'>+ *  if it is the first call to #resume then they will be passed as</div><div class='add'>+ *  block arguments. Otherwise they will be the return value of the</div><div class='add'>+ *  call to Fiber.yield</div><div class='ctx'>  *</div><div class='ctx'>  *  Example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -1409,20 +1938,40 @@ rb_cont_call(int argc, VALUE *argv, VALUE contval)</div><div class='ctx'>  *    end</div><div class='ctx'>  *</div><div class='ctx'>  *    puts fiber.resume 10</div><div class='del'>- *    puts fiber.resume 14</div><div class='del'>- *    puts fiber.resume 18</div><div class='add'>+ *    puts fiber.resume 1_000_000</div><div class='add'>+ *    puts fiber.resume "The fiber will be dead before I can cause trouble"</div><div class='ctx'>  *</div><div class='ctx'>  *  &lt;em&gt;produces&lt;/em&gt;</div><div class='ctx'>  *</div><div class='ctx'>  *    12</div><div class='del'>- *    14</div><div class='add'>+ *    1000000</div><div class='ctx'>  *    FiberError: dead fiber called</div><div class='ctx'>  *</div><div class='add'>+ *  == Non-blocking Fibers</div><div class='add'>+ *</div><div class='add'>+ *  The concept of &lt;em&gt;non-blocking fiber&lt;/em&gt; was introduced in Ruby 3.0.</div><div class='add'>+ *  A non-blocking fiber, when reaching a operation that would normally block</div><div class='add'>+ *  the fiber (like &lt;code&gt;sleep&lt;/code&gt;, or wait for another process or I/O)</div><div class='add'>+ *  will yield control to other fibers and allow the &lt;em&gt;scheduler&lt;/em&gt; to</div><div class='add'>+ *  handle blocking and waking up (resuming) this fiber when it can proceed.</div><div class='add'>+ *</div><div class='add'>+ *  For a Fiber to behave as non-blocking, it need to be created in Fiber.new with</div><div class='add'>+ *  &lt;tt&gt;blocking: false&lt;/tt&gt; (which is the default), and Fiber.scheduler</div><div class='add'>+ *  should be set with Fiber.set_scheduler. If Fiber.scheduler is not set in</div><div class='add'>+ *  the current thread, blocking and non-blocking fibers' behavior is identical.</div><div class='add'>+ *</div><div class='add'>+ *  Ruby doesn't provide a scheduler class: it is expected to be implemented by</div><div class='add'>+ *  the user and correspond to Fiber::Scheduler.</div><div class='add'>+ *</div><div class='add'>+ *  There is also Fiber.schedule method, which is expected to immediately perform</div><div class='add'>+ *  the given block in a non-blocking manner. Its actual implementation is up to</div><div class='add'>+ *  the scheduler.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static const rb_data_type_t fiber_data_type = {</div><div class='ctx'>     "fiber",</div><div class='del'>-    {fiber_mark, fiber_free, fiber_memsize,},</div><div class='add'>+    {fiber_mark, fiber_free, fiber_memsize, fiber_compact,},</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'> };</div><div class='ctx'> </div><div class='hunk'>@@ -1433,251 +1982,622 @@ fiber_alloc(VALUE klass)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static rb_fiber_t*</div><div class='del'>-fiber_t_alloc(VALUE fibval)</div><div class='add'>+fiber_t_alloc(VALUE fiber_value, unsigned int blocking)</div><div class='ctx'> {</div><div class='del'>-    rb_fiber_t *fib;</div><div class='add'>+    rb_fiber_t *fiber;</div><div class='ctx'>     rb_thread_t *th = GET_THREAD();</div><div class='ctx'> </div><div class='del'>-    if (DATA_PTR(fibval) != 0) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "cannot initialize twice");</div><div class='add'>+    if (DATA_PTR(fiber_value) != 0) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "cannot initialize twice");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     THREAD_MUST_BE_RUNNING(th);</div><div class='del'>-    fib = ZALLOC(rb_fiber_t);</div><div class='del'>-    fib-&gt;cont.self = fibval;</div><div class='del'>-    fib-&gt;cont.type = FIBER_CONTEXT;</div><div class='del'>-    cont_init(&amp;fib-&gt;cont, th);</div><div class='del'>-    fib-&gt;cont.saved_ec.fiber_ptr = fib;</div><div class='del'>-    fib-&gt;prev = NULL;</div><div class='del'>-</div><div class='del'>-    /* fib-&gt;status == 0 == CREATED</div><div class='del'>-     * So that we don't need to set status: fiber_status_set(fib, FIBER_CREATED); */</div><div class='del'>-    VM_ASSERT(FIBER_CREATED_P(fib));</div><div class='del'>-</div><div class='del'>-    DATA_PTR(fibval) = fib;</div><div class='del'>-</div><div class='del'>-    return fib;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-rb_control_frame_t *</div><div class='del'>-rb_vm_push_frame(rb_execution_context_t *sec,</div><div class='del'>-		 const rb_iseq_t *iseq,</div><div class='del'>-		 VALUE type,</div><div class='del'>-		 VALUE self,</div><div class='del'>-		 VALUE specval,</div><div class='del'>-		 VALUE cref_or_me,</div><div class='del'>-		 const VALUE *pc,</div><div class='del'>-		 VALUE *sp,</div><div class='del'>-		 int local_size,</div><div class='del'>-		 int stack_max);</div><div class='add'>+    fiber = ZALLOC(rb_fiber_t);</div><div class='add'>+    fiber-&gt;cont.self = fiber_value;</div><div class='add'>+    fiber-&gt;cont.type = FIBER_CONTEXT;</div><div class='add'>+    fiber-&gt;blocking = blocking;</div><div class='add'>+    cont_init(&amp;fiber-&gt;cont, th);</div><div class='add'>+</div><div class='add'>+    fiber-&gt;cont.saved_ec.fiber_ptr = fiber;</div><div class='add'>+    rb_ec_clear_vm_stack(&amp;fiber-&gt;cont.saved_ec);</div><div class='add'>+</div><div class='add'>+    fiber-&gt;prev = NULL;</div><div class='add'>+</div><div class='add'>+    /* fiber-&gt;status == 0 == CREATED</div><div class='add'>+     * So that we don't need to set status: fiber_status_set(fiber, FIBER_CREATED); */</div><div class='add'>+    VM_ASSERT(FIBER_CREATED_P(fiber));</div><div class='add'>+</div><div class='add'>+    DATA_PTR(fiber_value) = fiber;</div><div class='add'>+</div><div class='add'>+    return fiber;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static rb_fiber_t *</div><div class='add'>+root_fiber_alloc(rb_thread_t *th)</div><div class='add'>+{</div><div class='add'>+    VALUE fiber_value = fiber_alloc(rb_cFiber);</div><div class='add'>+    rb_fiber_t *fiber = th-&gt;ec-&gt;fiber_ptr;</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(DATA_PTR(fiber_value) == NULL);</div><div class='add'>+    VM_ASSERT(fiber-&gt;cont.type == FIBER_CONTEXT);</div><div class='add'>+    VM_ASSERT(FIBER_RESUMED_P(fiber));</div><div class='add'>+</div><div class='add'>+    th-&gt;root_fiber = fiber;</div><div class='add'>+    DATA_PTR(fiber_value) = fiber;</div><div class='add'>+    fiber-&gt;cont.self = fiber_value;</div><div class='add'>+</div><div class='add'>+    coroutine_initialize_main(&amp;fiber-&gt;context);</div><div class='add'>+</div><div class='add'>+    return fiber;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline rb_fiber_t*</div><div class='add'>+fiber_current(void)</div><div class='add'>+{</div><div class='add'>+    rb_execution_context_t *ec = GET_EC();</div><div class='add'>+    if (ec-&gt;fiber_ptr-&gt;cont.self == 0) {</div><div class='add'>+        root_fiber_alloc(rb_ec_thread_ptr(ec));</div><div class='add'>+    }</div><div class='add'>+    return ec-&gt;fiber_ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+current_fiber_storage(void)</div><div class='add'>+{</div><div class='add'>+    rb_execution_context_t *ec = GET_EC();</div><div class='add'>+    return ec-&gt;storage;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+inherit_fiber_storage(void)</div><div class='add'>+{</div><div class='add'>+    return rb_obj_dup(current_fiber_storage());</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+fiber_storage_set(struct rb_fiber_struct *fiber, VALUE storage)</div><div class='add'>+{</div><div class='add'>+    fiber-&gt;cont.saved_ec.storage = storage;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+fiber_storage_get(rb_fiber_t *fiber)</div><div class='add'>+{</div><div class='add'>+    VALUE storage = fiber-&gt;cont.saved_ec.storage;</div><div class='add'>+    if (storage == Qnil) {</div><div class='add'>+        storage = rb_hash_new();</div><div class='add'>+        fiber_storage_set(fiber, storage);</div><div class='add'>+    }</div><div class='add'>+    return storage;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+storage_access_must_be_from_same_fiber(VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fiber = fiber_ptr(self);</div><div class='add'>+    rb_fiber_t *current = fiber_current();</div><div class='add'>+    if (fiber != current) {</div><div class='add'>+        rb_raise(rb_eArgError, "Fiber storage can only be accessed from the Fiber it belongs to");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ *  call-seq: fiber.storage -&gt; hash (dup)</div><div class='add'>+ *</div><div class='add'>+ *  Returns a copy of the storage hash for the fiber. The method can only be called on the</div><div class='add'>+ *  Fiber.current.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_storage_get(VALUE self)</div><div class='add'>+{</div><div class='add'>+    storage_access_must_be_from_same_fiber(self);</div><div class='add'>+    return rb_obj_dup(fiber_storage_get(fiber_ptr(self)));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+fiber_storage_validate_each(VALUE key, VALUE value, VALUE _argument)</div><div class='add'>+{</div><div class='add'>+    Check_Type(key, T_SYMBOL);</div><div class='add'>+</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiber_storage_validate(VALUE value)</div><div class='add'>+{</div><div class='add'>+    // nil is an allowed value and will be lazily initialized.</div><div class='add'>+    if (value == Qnil) return;</div><div class='add'>+</div><div class='add'>+    if (!RB_TYPE_P(value, T_HASH)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "storage must be a hash");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RB_OBJ_FROZEN(value)) {</div><div class='add'>+        rb_raise(rb_eFrozenError, "storage must not be frozen");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_hash_foreach(value, fiber_storage_validate_each, Qundef);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ *  call-seq: fiber.storage = hash</div><div class='add'>+ *</div><div class='add'>+ *  Sets the storage hash for the fiber. This feature is experimental</div><div class='add'>+ *  and may change in the future. The method can only be called on the</div><div class='add'>+ *  Fiber.current.</div><div class='add'>+ *</div><div class='add'>+ *  You should be careful about using this method as you may inadvertently clear</div><div class='add'>+ *  important fiber-storage state. You should mostly prefer to assign specific</div><div class='add'>+ *  keys in the storage using Fiber::[]=.</div><div class='add'>+ *</div><div class='add'>+ *  You can also use &lt;tt&gt;Fiber.new(storage: nil)&lt;/tt&gt; to create a fiber with an empty</div><div class='add'>+ *  storage.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    while request = request_queue.pop</div><div class='add'>+ *      # Reset the per-request state:</div><div class='add'>+ *      Fiber.current.storage = nil</div><div class='add'>+ *      handle_request(request)</div><div class='add'>+ *    end</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_storage_set(VALUE self, VALUE value)</div><div class='add'>+{</div><div class='add'>+    if (rb_warning_category_enabled_p(RB_WARN_CATEGORY_EXPERIMENTAL)) {</div><div class='add'>+        rb_category_warn(RB_WARN_CATEGORY_EXPERIMENTAL,</div><div class='add'>+          "Fiber#storage= is experimental and may be removed in the future!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    storage_access_must_be_from_same_fiber(self);</div><div class='add'>+    fiber_storage_validate(value);</div><div class='add'>+</div><div class='add'>+    fiber_ptr(self)-&gt;cont.saved_ec.storage = rb_obj_dup(value);</div><div class='add'>+    return value;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ *  call-seq: Fiber[key] -&gt; value</div><div class='add'>+ *</div><div class='add'>+ *  Returns the value of the fiber storage variable identified by +key+.</div><div class='add'>+ *</div><div class='add'>+ *  The +key+ must be a symbol, and the value is set by Fiber#[]= or</div><div class='add'>+ *  Fiber#store.</div><div class='add'>+ *</div><div class='add'>+ *  See also Fiber::[]=.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_storage_aref(VALUE class, VALUE key)</div><div class='add'>+{</div><div class='add'>+    Check_Type(key, T_SYMBOL);</div><div class='add'>+</div><div class='add'>+    VALUE storage = fiber_storage_get(fiber_current());</div><div class='add'>+</div><div class='add'>+    if (storage == Qnil) return Qnil;</div><div class='add'>+</div><div class='add'>+    return rb_hash_aref(storage, key);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ *  call-seq: Fiber[key] = value</div><div class='add'>+ *</div><div class='add'>+ *  Assign +value+ to the fiber storage variable identified by +key+.</div><div class='add'>+ *  The variable is created if it doesn't exist.</div><div class='add'>+ *</div><div class='add'>+ *  +key+ must be a Symbol, otherwise a TypeError is raised.</div><div class='add'>+ *</div><div class='add'>+ *  See also Fiber::[].</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_storage_aset(VALUE class, VALUE key, VALUE value)</div><div class='add'>+{</div><div class='add'>+    Check_Type(key, T_SYMBOL);</div><div class='add'>+</div><div class='add'>+    VALUE storage = fiber_storage_get(fiber_current());</div><div class='add'>+</div><div class='add'>+    return rb_hash_aset(storage, key, value);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-fiber_init(VALUE fibval, VALUE proc)</div><div class='add'>+fiber_initialize(VALUE self, VALUE proc, struct fiber_pool * fiber_pool, unsigned int blocking, VALUE storage)</div><div class='add'>+{</div><div class='add'>+    if (storage == Qundef || storage == Qtrue) {</div><div class='add'>+        // The default, inherit storage (dup) from the current fiber:</div><div class='add'>+        storage = inherit_fiber_storage();</div><div class='add'>+    }</div><div class='add'>+    else /* nil, hash, etc. */ {</div><div class='add'>+        fiber_storage_validate(storage);</div><div class='add'>+        storage = rb_obj_dup(storage);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_fiber_t *fiber = fiber_t_alloc(self, blocking);</div><div class='add'>+</div><div class='add'>+    fiber-&gt;cont.saved_ec.storage = storage;</div><div class='add'>+    fiber-&gt;first_proc = proc;</div><div class='add'>+    fiber-&gt;stack.base = NULL;</div><div class='add'>+    fiber-&gt;stack.pool = fiber_pool;</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiber_prepare_stack(rb_fiber_t *fiber)</div><div class='ctx'> {</div><div class='del'>-    rb_fiber_t *fib = fiber_t_alloc(fibval);</div><div class='del'>-    rb_context_t *cont = &amp;fib-&gt;cont;</div><div class='add'>+    rb_context_t *cont = &amp;fiber-&gt;cont;</div><div class='ctx'>     rb_execution_context_t *sec = &amp;cont-&gt;saved_ec;</div><div class='del'>-    rb_thread_t *cth = GET_THREAD();</div><div class='del'>-    rb_vm_t *vm = cth-&gt;vm;</div><div class='del'>-    size_t fib_stack_bytes = vm-&gt;default_params.fiber_vm_stack_size;</div><div class='del'>-    size_t thr_stack_bytes = vm-&gt;default_params.thread_vm_stack_size;</div><div class='del'>-    VALUE *vm_stack;</div><div class='add'>+</div><div class='add'>+    size_t vm_stack_size = 0;</div><div class='add'>+    VALUE *vm_stack = fiber_initialize_coroutine(fiber, &amp;vm_stack_size);</div><div class='ctx'> </div><div class='ctx'>     /* initialize cont */</div><div class='ctx'>     cont-&gt;saved_vm_stack.ptr = NULL;</div><div class='del'>-    if (fib_stack_bytes == thr_stack_bytes) {</div><div class='del'>-        vm_stack = rb_thread_recycle_stack(fib_stack_bytes / sizeof(VALUE));</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        vm_stack = ruby_xmalloc(fib_stack_bytes);</div><div class='del'>-    }</div><div class='del'>-    rb_ec_set_vm_stack(sec, vm_stack, fib_stack_bytes / sizeof(VALUE));</div><div class='del'>-    sec-&gt;cfp = (void *)(sec-&gt;vm_stack + sec-&gt;vm_stack_size);</div><div class='del'>-</div><div class='del'>-    rb_vm_push_frame(sec,</div><div class='del'>-		     NULL,</div><div class='del'>-		     VM_FRAME_MAGIC_DUMMY | VM_ENV_FLAG_LOCAL | VM_FRAME_FLAG_FINISH | VM_FRAME_FLAG_CFRAME,</div><div class='del'>-		     Qnil, /* self */</div><div class='del'>-		     VM_BLOCK_HANDLER_NONE,</div><div class='del'>-		     0, /* specval */</div><div class='del'>-		     NULL, /* pc */</div><div class='del'>-		     sec-&gt;vm_stack, /* sp */</div><div class='del'>-		     0, /* local_size */</div><div class='del'>-		     0);</div><div class='add'>+    rb_ec_initialize_vm_stack(sec, vm_stack, vm_stack_size / sizeof(VALUE));</div><div class='ctx'> </div><div class='ctx'>     sec-&gt;tag = NULL;</div><div class='ctx'>     sec-&gt;local_storage = NULL;</div><div class='ctx'>     sec-&gt;local_storage_recursive_hash = Qnil;</div><div class='ctx'>     sec-&gt;local_storage_recursive_hash_for_trace = Qnil;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    fib-&gt;first_proc = proc;</div><div class='del'>-</div><div class='del'>-#if !FIBER_USE_NATIVE</div><div class='del'>-    MEMCPY(&amp;cont-&gt;jmpbuf, &amp;cth-&gt;root_jmpbuf, rb_jmpbuf_t, 1);</div><div class='del'>-#endif</div><div class='add'>+static struct fiber_pool *</div><div class='add'>+rb_fiber_pool_default(VALUE pool)</div><div class='add'>+{</div><div class='add'>+    return &amp;shared_fiber_pool;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return fibval;</div><div class='add'>+VALUE rb_fiber_inherit_storage(struct rb_execution_context_struct *ec, struct rb_fiber_struct *fiber)</div><div class='add'>+{</div><div class='add'>+    VALUE storage = rb_obj_dup(ec-&gt;storage);</div><div class='add'>+    fiber-&gt;cont.saved_ec.storage = storage;</div><div class='add'>+    return storage;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_fiber_init(VALUE fibval)</div><div class='add'>+rb_fiber_initialize_kw(int argc, VALUE* argv, VALUE self, int kw_splat)</div><div class='add'>+{</div><div class='add'>+    VALUE pool = Qnil;</div><div class='add'>+    VALUE blocking = Qfalse;</div><div class='add'>+    VALUE storage = Qundef;</div><div class='add'>+</div><div class='add'>+    if (kw_splat != RB_NO_KEYWORDS) {</div><div class='add'>+        VALUE options = Qnil;</div><div class='add'>+        VALUE arguments[3] = {Qundef};</div><div class='add'>+</div><div class='add'>+        argc = rb_scan_args_kw(kw_splat, argc, argv, ":", &amp;options);</div><div class='add'>+        rb_get_kwargs(options, fiber_initialize_keywords, 0, 3, arguments);</div><div class='add'>+</div><div class='add'>+        if (!UNDEF_P(arguments[0])) {</div><div class='add'>+            blocking = arguments[0];</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (!UNDEF_P(arguments[1])) {</div><div class='add'>+            pool = arguments[1];</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        storage = arguments[2];</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return fiber_initialize(self, rb_block_proc(), rb_fiber_pool_default(pool), RTEST(blocking), storage);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Fiber.new(blocking: false, storage: true) { |*args| ... } -&gt; fiber</div><div class='add'>+ *</div><div class='add'>+ *  Creates new Fiber. Initially, the fiber is not running and can be resumed</div><div class='add'>+ *  with #resume. Arguments to the first #resume call will be passed to the</div><div class='add'>+ *  block:</div><div class='add'>+ *</div><div class='add'>+ *    f = Fiber.new do |initial|</div><div class='add'>+ *       current = initial</div><div class='add'>+ *       loop do</div><div class='add'>+ *         puts "current: #{current.inspect}"</div><div class='add'>+ *         current = Fiber.yield</div><div class='add'>+ *       end</div><div class='add'>+ *    end</div><div class='add'>+ *    f.resume(100)     # prints: current: 100</div><div class='add'>+ *    f.resume(1, 2, 3) # prints: current: [1, 2, 3]</div><div class='add'>+ *    f.resume          # prints: current: nil</div><div class='add'>+ *    # ... and so on ...</div><div class='add'>+ *</div><div class='add'>+ *  If &lt;tt&gt;blocking: false&lt;/tt&gt; is passed to &lt;tt&gt;Fiber.new&lt;/tt&gt;, _and_ current</div><div class='add'>+ *  thread has a Fiber.scheduler defined, the Fiber becomes non-blocking (see</div><div class='add'>+ *  "Non-blocking Fibers" section in class docs).</div><div class='add'>+ *</div><div class='add'>+ *  If the &lt;tt&gt;storage&lt;/tt&gt; is unspecified, the default is to inherit a copy of</div><div class='add'>+ *  the storage from the current fiber. This is the same as specifying</div><div class='add'>+ *  &lt;tt&gt;storage: true&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *    Fiber[:x] = 1</div><div class='add'>+ *    Fiber.new do</div><div class='add'>+ *      Fiber[:x] # =&gt; 1</div><div class='add'>+ *      Fiber[:x] = 2</div><div class='add'>+ *    end.resume</div><div class='add'>+ *    Fiber[:x] # =&gt; 1</div><div class='add'>+ *</div><div class='add'>+ *  If the given &lt;tt&gt;storage&lt;/tt&gt; is &lt;tt&gt;nil&lt;/tt&gt;, this function will lazy</div><div class='add'>+ *  initialize the internal storage, which starts as an empty hash.</div><div class='add'>+ *</div><div class='add'>+ *    Fiber[:x] = "Hello World"</div><div class='add'>+ *    Fiber.new(storage: nil) do</div><div class='add'>+ *      Fiber[:x] # nil</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *  Otherwise, the given &lt;tt&gt;storage&lt;/tt&gt; is used as the new fiber's storage,</div><div class='add'>+ *  and it must be an instance of Hash.</div><div class='add'>+ *</div><div class='add'>+ *  Explicitly using &lt;tt&gt;storage: true&lt;/tt&gt; is currently experimental and may</div><div class='add'>+ *  change in the future.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_initialize(int argc, VALUE* argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    return fiber_init(fibval, rb_block_proc());</div><div class='add'>+    return rb_fiber_initialize_kw(argc, argv, self, rb_keyword_given_p());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_fiber_new(VALUE (*func)(ANYARGS), VALUE obj)</div><div class='add'>+rb_fiber_new_storage(rb_block_call_func_t func, VALUE obj, VALUE storage)</div><div class='add'>+{</div><div class='add'>+    return fiber_initialize(fiber_alloc(rb_cFiber), rb_proc_new(func, obj), rb_fiber_pool_default(Qnil), 0, storage);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_new(rb_block_call_func_t func, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return rb_fiber_new_storage(func, obj, Qtrue);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_s_schedule_kw(int argc, VALUE* argv, int kw_splat)</div><div class='add'>+{</div><div class='add'>+    rb_thread_t * th = GET_THREAD();</div><div class='add'>+    VALUE scheduler = th-&gt;scheduler;</div><div class='add'>+    VALUE fiber = Qnil;</div><div class='add'>+</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        fiber = rb_fiber_scheduler_fiber(scheduler, argc, argv, kw_splat);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "No scheduler is available!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return fiber;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Fiber.schedule { |*args| ... } -&gt; fiber</div><div class='add'>+ *</div><div class='add'>+ *  The method is &lt;em&gt;expected&lt;/em&gt; to immediately run the provided block of code in a</div><div class='add'>+ *  separate non-blocking fiber.</div><div class='add'>+ *</div><div class='add'>+ *     puts "Go to sleep!"</div><div class='add'>+ *</div><div class='add'>+ *     Fiber.set_scheduler(MyScheduler.new)</div><div class='add'>+ *</div><div class='add'>+ *     Fiber.schedule do</div><div class='add'>+ *       puts "Going to sleep"</div><div class='add'>+ *       sleep(1)</div><div class='add'>+ *       puts "I slept well"</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     puts "Wakey-wakey, sleepyhead"</div><div class='add'>+ *</div><div class='add'>+ *  Assuming MyScheduler is properly implemented, this program will produce:</div><div class='add'>+ *</div><div class='add'>+ *     Go to sleep!</div><div class='add'>+ *     Going to sleep</div><div class='add'>+ *     Wakey-wakey, sleepyhead</div><div class='add'>+ *     ...1 sec pause here...</div><div class='add'>+ *     I slept well</div><div class='add'>+ *</div><div class='add'>+ *  ...e.g. on the first blocking operation inside the Fiber (&lt;tt&gt;sleep(1)&lt;/tt&gt;),</div><div class='add'>+ *  the control is yielded to the outside code (main fiber), and &lt;em&gt;at the end</div><div class='add'>+ *  of that execution&lt;/em&gt;, the scheduler takes care of properly resuming all the</div><div class='add'>+ *  blocked fibers.</div><div class='add'>+ *</div><div class='add'>+ *  Note that the behavior described above is how the method is &lt;em&gt;expected&lt;/em&gt;</div><div class='add'>+ *  to behave, actual behavior is up to the current scheduler's implementation of</div><div class='add'>+ *  Fiber::Scheduler#fiber method. Ruby doesn't enforce this method to</div><div class='add'>+ *  behave in any particular way.</div><div class='add'>+ *</div><div class='add'>+ *  If the scheduler is not set, the method raises</div><div class='add'>+ *  &lt;tt&gt;RuntimeError (No scheduler is available!)&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_s_schedule(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return rb_fiber_s_schedule_kw(argc, argv, rb_keyword_given_p());</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Fiber.scheduler -&gt; obj or nil</div><div class='add'>+ *</div><div class='add'>+ *  Returns the Fiber scheduler, that was last set for the current thread with Fiber.set_scheduler.</div><div class='add'>+ *  Returns +nil+ if no scheduler is set (which is the default), and non-blocking fibers'</div><div class='add'>+ *  behavior is the same as blocking.</div><div class='add'>+ *  (see "Non-blocking fibers" section in class docs for details about the scheduler concept).</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_s_scheduler(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return rb_fiber_scheduler_get();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Fiber.current_scheduler -&gt; obj or nil</div><div class='add'>+ *</div><div class='add'>+ *  Returns the Fiber scheduler, that was last set for the current thread with Fiber.set_scheduler</div><div class='add'>+ *  if and only if the current fiber is non-blocking.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_current_scheduler(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    return fiber_init(fiber_alloc(rb_cFiber), rb_proc_new(func, obj));</div><div class='add'>+    return rb_fiber_scheduler_current();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void rb_fiber_terminate(rb_fiber_t *fib, int need_interrupt);</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Fiber.set_scheduler(scheduler) -&gt; scheduler</div><div class='add'>+ *</div><div class='add'>+ *  Sets the Fiber scheduler for the current thread. If the scheduler is set, non-blocking</div><div class='add'>+ *  fibers (created by Fiber.new with &lt;tt&gt;blocking: false&lt;/tt&gt;, or by Fiber.schedule)</div><div class='add'>+ *  call that scheduler's hook methods on potentially blocking operations, and the current</div><div class='add'>+ *  thread will call scheduler's +close+ method on finalization (allowing the scheduler to</div><div class='add'>+ *  properly manage all non-finished fibers).</div><div class='add'>+ *</div><div class='add'>+ *  +scheduler+ can be an object of any class corresponding to Fiber::Scheduler. Its</div><div class='add'>+ *  implementation is up to the user.</div><div class='add'>+ *</div><div class='add'>+ *  See also the "Non-blocking fibers" section in class docs.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_set_scheduler(VALUE klass, VALUE scheduler)</div><div class='add'>+{</div><div class='add'>+    return rb_fiber_scheduler_set(scheduler);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NORETURN(static void rb_fiber_terminate(rb_fiber_t *fiber, int need_interrupt, VALUE err));</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_fiber_start(void)</div><div class='add'>+rb_fiber_start(rb_fiber_t *fiber)</div><div class='ctx'> {</div><div class='del'>-    rb_thread_t * volatile th = GET_THREAD();</div><div class='del'>-    rb_fiber_t *fib = th-&gt;ec-&gt;fiber_ptr;</div><div class='add'>+    rb_thread_t * volatile th = fiber-&gt;cont.saved_ec.thread_ptr;</div><div class='add'>+</div><div class='ctx'>     rb_proc_t *proc;</div><div class='ctx'>     enum ruby_tag_type state;</div><div class='ctx'>     int need_interrupt = TRUE;</div><div class='ctx'> </div><div class='del'>-    VM_ASSERT(th-&gt;ec == ruby_current_execution_context_ptr);</div><div class='del'>-    VM_ASSERT(FIBER_RESUMED_P(fib));</div><div class='add'>+    VM_ASSERT(th-&gt;ec == GET_EC());</div><div class='add'>+    VM_ASSERT(FIBER_RESUMED_P(fiber));</div><div class='add'>+</div><div class='add'>+    if (fiber-&gt;blocking) {</div><div class='add'>+        th-&gt;blocking += 1;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     EC_PUSH_TAG(th-&gt;ec);</div><div class='ctx'>     if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='del'>-	rb_context_t *cont = &amp;VAR_FROM_MEMORY(fib)-&gt;cont;</div><div class='del'>-	int argc;</div><div class='del'>-	const VALUE *argv, args = cont-&gt;value;</div><div class='del'>-	GetProcPtr(fib-&gt;first_proc, proc);</div><div class='del'>-	argv = (argc = cont-&gt;argc) &gt; 1 ? RARRAY_CONST_PTR(args) : &amp;args;</div><div class='del'>-	cont-&gt;value = Qnil;</div><div class='del'>-	th-&gt;ec-&gt;errinfo = Qnil;</div><div class='del'>-	th-&gt;ec-&gt;root_lep = rb_vm_proc_local_ep(fib-&gt;first_proc);</div><div class='del'>-	th-&gt;ec-&gt;root_svar = Qfalse;</div><div class='del'>-</div><div class='del'>-	EXEC_EVENT_HOOK(th-&gt;ec, RUBY_EVENT_FIBER_SWITCH, th-&gt;self, 0, 0, 0, Qnil);</div><div class='del'>-	cont-&gt;value = rb_vm_invoke_proc(th-&gt;ec, proc, argc, argv, VM_BLOCK_HANDLER_NONE);</div><div class='add'>+        rb_context_t *cont = &amp;VAR_FROM_MEMORY(fiber)-&gt;cont;</div><div class='add'>+        int argc;</div><div class='add'>+        const VALUE *argv, args = cont-&gt;value;</div><div class='add'>+        GetProcPtr(fiber-&gt;first_proc, proc);</div><div class='add'>+        argv = (argc = cont-&gt;argc) &gt; 1 ? RARRAY_CONST_PTR(args) : &amp;args;</div><div class='add'>+        cont-&gt;value = Qnil;</div><div class='add'>+        th-&gt;ec-&gt;errinfo = Qnil;</div><div class='add'>+        th-&gt;ec-&gt;root_lep = rb_vm_proc_local_ep(fiber-&gt;first_proc);</div><div class='add'>+        th-&gt;ec-&gt;root_svar = Qfalse;</div><div class='add'>+</div><div class='add'>+        EXEC_EVENT_HOOK(th-&gt;ec, RUBY_EVENT_FIBER_SWITCH, th-&gt;self, 0, 0, 0, Qnil);</div><div class='add'>+        cont-&gt;value = rb_vm_invoke_proc(th-&gt;ec, proc, argc, argv, cont-&gt;kw_splat, VM_BLOCK_HANDLER_NONE);</div><div class='ctx'>     }</div><div class='ctx'>     EC_POP_TAG();</div><div class='ctx'> </div><div class='add'>+    VALUE err = Qfalse;</div><div class='ctx'>     if (state) {</div><div class='del'>-	VALUE err = th-&gt;ec-&gt;errinfo;</div><div class='del'>-	VM_ASSERT(FIBER_RESUMED_P(fib));</div><div class='del'>-</div><div class='del'>-	if (state == TAG_RAISE || state == TAG_FATAL) {</div><div class='del'>-	    rb_threadptr_pending_interrupt_enque(th, err);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    err = rb_vm_make_jump_tag_but_local_jump(state, err);</div><div class='del'>-	    if (!NIL_P(err)) {</div><div class='del'>-		rb_threadptr_pending_interrupt_enque(th, err);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	need_interrupt = TRUE;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    rb_fiber_terminate(fib, need_interrupt);</div><div class='del'>-    VM_UNREACHABLE(rb_fiber_start);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static rb_fiber_t *</div><div class='del'>-root_fiber_alloc(rb_thread_t *th)</div><div class='del'>-{</div><div class='del'>-    VALUE fibval = fiber_alloc(rb_cFiber);</div><div class='del'>-    rb_fiber_t *fib = th-&gt;ec-&gt;fiber_ptr;</div><div class='del'>-</div><div class='del'>-    VM_ASSERT(DATA_PTR(fibval) == NULL);</div><div class='del'>-    VM_ASSERT(fib-&gt;cont.type == FIBER_CONTEXT);</div><div class='del'>-    VM_ASSERT(fib-&gt;status == FIBER_RESUMED);</div><div class='del'>-</div><div class='del'>-    th-&gt;root_fiber = fib;</div><div class='del'>-    DATA_PTR(fibval) = fib;</div><div class='del'>-    fib-&gt;cont.self = fibval;</div><div class='add'>+        err = th-&gt;ec-&gt;errinfo;</div><div class='add'>+        VM_ASSERT(FIBER_RESUMED_P(fiber));</div><div class='ctx'> </div><div class='del'>-#if FIBER_USE_NATIVE</div><div class='del'>-#if defined(FIBER_USE_COROUTINE)</div><div class='del'>-    coroutine_initialize(&amp;fib-&gt;context, NULL, NULL, 0);</div><div class='del'>-#elif defined(_WIN32)</div><div class='del'>-    /* setup fib_handle for root Fiber */</div><div class='del'>-    if (fib-&gt;fib_handle == 0) {</div><div class='del'>-        if ((fib-&gt;fib_handle = ConvertThreadToFiber(0)) == 0) {</div><div class='del'>-            rb_bug("root_fiber_alloc: ConvertThreadToFiber() failed - %s\n", rb_w32_strerror(-1));</div><div class='add'>+        if (state == TAG_RAISE) {</div><div class='add'>+            // noop...</div><div class='ctx'>         }</div><div class='add'>+        else if (state == TAG_FATAL) {</div><div class='add'>+            rb_threadptr_pending_interrupt_enque(th, err);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            err = rb_vm_make_jump_tag_but_local_jump(state, err);</div><div class='add'>+        }</div><div class='add'>+        need_interrupt = TRUE;</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-        rb_bug("root_fiber_alloc: fib_handle is not NULL.");</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-    return fib;</div><div class='add'>+    rb_fiber_terminate(fiber, need_interrupt, err);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+// Set up a "root fiber", which is the fiber that every Ractor has.</div><div class='ctx'> void</div><div class='ctx'> rb_threadptr_root_fiber_setup(rb_thread_t *th)</div><div class='ctx'> {</div><div class='del'>-    rb_fiber_t *fib = ruby_mimmalloc(sizeof(rb_fiber_t));</div><div class='del'>-    MEMZERO(fib, rb_fiber_t, 1);</div><div class='del'>-    fib-&gt;cont.type = FIBER_CONTEXT;</div><div class='del'>-    fib-&gt;cont.saved_ec.fiber_ptr = fib;</div><div class='del'>-    fib-&gt;cont.saved_ec.thread_ptr = th;</div><div class='del'>-    fiber_status_set(fib, FIBER_RESUMED); /* skip CREATED */</div><div class='del'>-    th-&gt;ec = &amp;fib-&gt;cont.saved_ec;</div><div class='del'>-</div><div class='del'>-    /* NOTE: On WIN32, fib_handle is not allocated yet. */</div><div class='add'>+    rb_fiber_t *fiber = ruby_mimmalloc(sizeof(rb_fiber_t));</div><div class='add'>+    if (!fiber) {</div><div class='add'>+        rb_bug("%s", strerror(errno)); /* ... is it possible to call rb_bug here? */</div><div class='add'>+    }</div><div class='add'>+    MEMZERO(fiber, rb_fiber_t, 1);</div><div class='add'>+    fiber-&gt;cont.type = FIBER_CONTEXT;</div><div class='add'>+    fiber-&gt;cont.saved_ec.fiber_ptr = fiber;</div><div class='add'>+    fiber-&gt;cont.saved_ec.thread_ptr = th;</div><div class='add'>+    fiber-&gt;blocking = 1;</div><div class='add'>+    fiber_status_set(fiber, FIBER_RESUMED); /* skip CREATED */</div><div class='add'>+    th-&gt;ec = &amp;fiber-&gt;cont.saved_ec;</div><div class='add'>+    // When rb_threadptr_root_fiber_setup is called for the first time, mjit_enabled and</div><div class='add'>+    // rb_yjit_enabled_p() are still false. So this does nothing and rb_jit_cont_init() that is</div><div class='add'>+    // called later will take care of it. However, you still have to call cont_init_jit_cont()</div><div class='add'>+    // here for other Ractors, which are not initialized by rb_jit_cont_init().</div><div class='add'>+    cont_init_jit_cont(&amp;fiber-&gt;cont);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_threadptr_root_fiber_release(rb_thread_t *th)</div><div class='ctx'> {</div><div class='ctx'>     if (th-&gt;root_fiber) {</div><div class='del'>-	/* ignore. A root fiber object will free th-&gt;ec */</div><div class='add'>+        /* ignore. A root fiber object will free th-&gt;ec */</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VM_ASSERT(th-&gt;ec-&gt;fiber_ptr-&gt;cont.type == FIBER_CONTEXT);</div><div class='del'>-	VM_ASSERT(th-&gt;ec-&gt;fiber_ptr-&gt;cont.self == 0);</div><div class='del'>-	fiber_free(th-&gt;ec-&gt;fiber_ptr);</div><div class='add'>+        rb_execution_context_t *ec = GET_EC();</div><div class='add'>+</div><div class='add'>+        VM_ASSERT(th-&gt;ec-&gt;fiber_ptr-&gt;cont.type == FIBER_CONTEXT);</div><div class='add'>+        VM_ASSERT(th-&gt;ec-&gt;fiber_ptr-&gt;cont.self == 0);</div><div class='ctx'> </div><div class='del'>-	if (th-&gt;ec == ruby_current_execution_context_ptr) {</div><div class='del'>-	    ruby_current_execution_context_ptr = NULL;</div><div class='del'>-	}</div><div class='del'>-	th-&gt;ec = NULL;</div><div class='add'>+        if (th-&gt;ec == ec) {</div><div class='add'>+            rb_ractor_set_current_ec(th-&gt;ractor, NULL);</div><div class='add'>+        }</div><div class='add'>+        fiber_free(th-&gt;ec-&gt;fiber_ptr);</div><div class='add'>+        th-&gt;ec = NULL;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static inline rb_fiber_t*</div><div class='del'>-fiber_current(void)</div><div class='add'>+void</div><div class='add'>+rb_threadptr_root_fiber_terminate(rb_thread_t *th)</div><div class='ctx'> {</div><div class='del'>-    rb_execution_context_t *ec = GET_EC();</div><div class='del'>-    if (ec-&gt;fiber_ptr-&gt;cont.self == 0) {</div><div class='del'>-	root_fiber_alloc(rb_ec_thread_ptr(ec));</div><div class='del'>-    }</div><div class='del'>-    return ec-&gt;fiber_ptr;</div><div class='add'>+    rb_fiber_t *fiber = th-&gt;ec-&gt;fiber_ptr;</div><div class='add'>+</div><div class='add'>+    fiber-&gt;status = FIBER_TERMINATED;</div><div class='add'>+</div><div class='add'>+    // The vm_stack is `alloca`ed on the thread stack, so it's gone too:</div><div class='add'>+    rb_ec_clear_vm_stack(th-&gt;ec);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline rb_fiber_t*</div><div class='del'>-return_fiber(void)</div><div class='add'>+return_fiber(bool terminate)</div><div class='ctx'> {</div><div class='del'>-    rb_fiber_t *fib = fiber_current();</div><div class='del'>-    rb_fiber_t *prev = fib-&gt;prev;</div><div class='add'>+    rb_fiber_t *fiber = fiber_current();</div><div class='add'>+    rb_fiber_t *prev = fiber-&gt;prev;</div><div class='ctx'> </div><div class='del'>-    if (!prev) {</div><div class='del'>-	rb_thread_t *th = GET_THREAD();</div><div class='del'>-	rb_fiber_t *root_fiber = th-&gt;root_fiber;</div><div class='del'>-</div><div class='del'>-	VM_ASSERT(root_fiber != NULL);</div><div class='del'>-</div><div class='del'>-	if (root_fiber == fib) {</div><div class='del'>-	    rb_raise(rb_eFiberError, "can't yield from root fiber");</div><div class='del'>-	}</div><div class='del'>-	return root_fiber;</div><div class='add'>+    if (prev) {</div><div class='add'>+        fiber-&gt;prev = NULL;</div><div class='add'>+        prev-&gt;resuming_fiber = NULL;</div><div class='add'>+        return prev;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	fib-&gt;prev = NULL;</div><div class='del'>-	return prev;</div><div class='add'>+        if (!terminate) {</div><div class='add'>+            rb_raise(rb_eFiberError, "attempt to yield on a not resumed fiber");</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        rb_thread_t *th = GET_THREAD();</div><div class='add'>+        rb_fiber_t *root_fiber = th-&gt;root_fiber;</div><div class='add'>+</div><div class='add'>+        VM_ASSERT(root_fiber != NULL);</div><div class='add'>+</div><div class='add'>+        // search resuming fiber</div><div class='add'>+        for (fiber = root_fiber; fiber-&gt;resuming_fiber; fiber = fiber-&gt;resuming_fiber) {</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        return fiber;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1687,234 +2607,319 @@ rb_fiber_current(void)</div><div class='ctx'>     return fiber_current()-&gt;cont.self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static inline VALUE</div><div class='del'>-fiber_store(rb_fiber_t *next_fib, rb_thread_t *th)</div><div class='add'>+// Prepare to execute next_fiber on the given thread.</div><div class='add'>+static inline void</div><div class='add'>+fiber_store(rb_fiber_t *next_fiber, rb_thread_t *th)</div><div class='ctx'> {</div><div class='del'>-    rb_fiber_t *fib;</div><div class='add'>+    rb_fiber_t *fiber;</div><div class='ctx'> </div><div class='ctx'>     if (th-&gt;ec-&gt;fiber_ptr != NULL) {</div><div class='del'>-        fib = th-&gt;ec-&gt;fiber_ptr;</div><div class='add'>+        fiber = th-&gt;ec-&gt;fiber_ptr;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         /* create root fiber */</div><div class='del'>-        fib = root_fiber_alloc(th);</div><div class='add'>+        fiber = root_fiber_alloc(th);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    VM_ASSERT(FIBER_RESUMED_P(fib) || FIBER_TERMINATED_P(fib));</div><div class='del'>-    VM_ASSERT(FIBER_RUNNABLE_P(next_fib));</div><div class='del'>-</div><div class='del'>-#if FIBER_USE_NATIVE</div><div class='del'>-    if (FIBER_CREATED_P(next_fib)) {</div><div class='del'>-        fiber_initialize_machine_stack_context(next_fib, th-&gt;vm-&gt;default_params.fiber_machine_stack_size);</div><div class='add'>+    if (FIBER_CREATED_P(next_fiber)) {</div><div class='add'>+        fiber_prepare_stack(next_fiber);</div><div class='ctx'>     }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-    if (FIBER_RESUMED_P(fib)) fiber_status_set(fib, FIBER_SUSPENDED);</div><div class='add'>+    VM_ASSERT(FIBER_RESUMED_P(fiber) || FIBER_TERMINATED_P(fiber));</div><div class='add'>+    VM_ASSERT(FIBER_RUNNABLE_P(next_fiber));</div><div class='ctx'> </div><div class='del'>-#if FIBER_USE_NATIVE == 0</div><div class='del'>-    /* should (re-)allocate stack are before fib-&gt;status change to pass fiber_verify() */</div><div class='del'>-    cont_save_machine_stack(th, &amp;fib-&gt;cont);</div><div class='del'>-#endif</div><div class='add'>+    if (FIBER_RESUMED_P(fiber)) fiber_status_set(fiber, FIBER_SUSPENDED);</div><div class='ctx'> </div><div class='del'>-    fiber_status_set(next_fib, FIBER_RESUMED);</div><div class='del'>-</div><div class='del'>-#if FIBER_USE_NATIVE</div><div class='del'>-    fiber_setcontext(next_fib, fib);</div><div class='del'>-    /* restored */</div><div class='del'>-#ifdef MAX_MACHINE_STACK_CACHE</div><div class='del'>-    if (terminated_machine_stack.ptr) {</div><div class='del'>-        if (machine_stack_cache_index &lt; MAX_MACHINE_STACK_CACHE) {</div><div class='del'>-            machine_stack_cache[machine_stack_cache_index++] = terminated_machine_stack;</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            if (terminated_machine_stack.ptr != fib-&gt;cont.machine.stack) {</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-                VirtualFree(terminated_machine_stack.ptr, 0, MEM_RELEASE);</div><div class='del'>-#else</div><div class='del'>-                munmap((void*)terminated_machine_stack.ptr, terminated_machine_stack.size * sizeof(VALUE));</div><div class='del'>-#endif</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                rb_bug("terminated fiber resumed");</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        terminated_machine_stack.ptr = NULL;</div><div class='del'>-        terminated_machine_stack.size = 0;</div><div class='del'>-    }</div><div class='del'>-#endif /* not _WIN32 */</div><div class='del'>-    fib = th-&gt;ec-&gt;fiber_ptr;</div><div class='del'>-    if (fib-&gt;cont.argc == -1) rb_exc_raise(fib-&gt;cont.value);</div><div class='del'>-    return fib-&gt;cont.value;</div><div class='del'>-</div><div class='del'>-#else /* FIBER_USE_NATIVE */</div><div class='del'>-    fib-&gt;cont.saved_ec.machine.stack_end = NULL;</div><div class='del'>-    if (ruby_setjmp(fib-&gt;cont.jmpbuf)) {</div><div class='del'>-        /* restored */</div><div class='del'>-        fib = th-&gt;ec-&gt;fiber_ptr;</div><div class='del'>-        if (fib-&gt;cont.argc == -1) rb_exc_raise(fib-&gt;cont.value);</div><div class='del'>-        if (next_fib-&gt;cont.value == Qundef) {</div><div class='del'>-            cont_restore_0(&amp;next_fib-&gt;cont, &amp;next_fib-&gt;cont.value);</div><div class='del'>-            VM_UNREACHABLE(fiber_store);</div><div class='del'>-        }</div><div class='del'>-        return fib-&gt;cont.value;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        VALUE undef = Qundef;</div><div class='del'>-        cont_restore_0(&amp;next_fib-&gt;cont, &amp;undef);</div><div class='del'>-        VM_UNREACHABLE(fiber_store);</div><div class='del'>-    }</div><div class='del'>-#endif /* FIBER_USE_NATIVE */</div><div class='add'>+    fiber_status_set(next_fiber, FIBER_RESUMED);</div><div class='add'>+    fiber_setcontext(next_fiber, fiber);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline VALUE</div><div class='del'>-fiber_switch(rb_fiber_t *fib, int argc, const VALUE *argv, int is_resume)</div><div class='add'>+fiber_switch(rb_fiber_t *fiber, int argc, const VALUE *argv, int kw_splat, rb_fiber_t *resuming_fiber, bool yielding)</div><div class='ctx'> {</div><div class='ctx'>     VALUE value;</div><div class='del'>-    rb_context_t *cont = &amp;fib-&gt;cont;</div><div class='add'>+    rb_context_t *cont = &amp;fiber-&gt;cont;</div><div class='ctx'>     rb_thread_t *th = GET_THREAD();</div><div class='ctx'> </div><div class='ctx'>     /* make sure the root_fiber object is available */</div><div class='ctx'>     if (th-&gt;root_fiber == NULL) root_fiber_alloc(th);</div><div class='ctx'> </div><div class='del'>-    if (th-&gt;ec-&gt;fiber_ptr == fib) {</div><div class='del'>-	/* ignore fiber context switch</div><div class='del'>-         * because destination fiber is same as current fiber</div><div class='del'>-	 */</div><div class='del'>-	return make_passing_arg(argc, argv);</div><div class='add'>+    if (th-&gt;ec-&gt;fiber_ptr == fiber) {</div><div class='add'>+        /* ignore fiber context switch</div><div class='add'>+         * because destination fiber is the same as current fiber</div><div class='add'>+         */</div><div class='add'>+        return make_passing_arg(argc, argv);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (cont_thread_value(cont) != th-&gt;self) {</div><div class='del'>-	rb_raise(rb_eFiberError, "fiber called across threads");</div><div class='del'>-    }</div><div class='del'>-    else if (cont-&gt;saved_ec.protect_tag != th-&gt;ec-&gt;protect_tag) {</div><div class='del'>-	rb_raise(rb_eFiberError, "fiber called across stack rewinding barrier");</div><div class='del'>-    }</div><div class='del'>-    else if (FIBER_TERMINATED_P(fib)) {</div><div class='del'>-	value = rb_exc_new2(rb_eFiberError, "dead fiber called");</div><div class='del'>-</div><div class='del'>-	if (!FIBER_TERMINATED_P(th-&gt;ec-&gt;fiber_ptr)) {</div><div class='del'>-	    rb_exc_raise(value);</div><div class='del'>-	    VM_UNREACHABLE(fiber_switch);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    /* th-&gt;ec-&gt;fiber_ptr is also dead =&gt; switch to root fiber */</div><div class='del'>-	    /* (this means we're being called from rb_fiber_terminate, */</div><div class='del'>-	    /* and the terminated fiber's return_fiber() is already dead) */</div><div class='del'>-	    VM_ASSERT(FIBER_SUSPENDED_P(th-&gt;root_fiber));</div><div class='del'>-</div><div class='del'>-	    cont = &amp;th-&gt;root_fiber-&gt;cont;</div><div class='del'>-	    cont-&gt;argc = -1;</div><div class='del'>-	    cont-&gt;value = value;</div><div class='del'>-#if FIBER_USE_NATIVE</div><div class='del'>-	    fiber_setcontext(th-&gt;root_fiber, th-&gt;ec-&gt;fiber_ptr);</div><div class='del'>-#else</div><div class='del'>-	    cont_restore_0(cont, &amp;value);</div><div class='del'>-#endif</div><div class='del'>-	    VM_UNREACHABLE(fiber_switch);</div><div class='del'>-	}</div><div class='add'>+        rb_raise(rb_eFiberError, "fiber called across threads");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (FIBER_TERMINATED_P(fiber)) {</div><div class='add'>+        value = rb_exc_new2(rb_eFiberError, "dead fiber called");</div><div class='add'>+</div><div class='add'>+        if (!FIBER_TERMINATED_P(th-&gt;ec-&gt;fiber_ptr)) {</div><div class='add'>+            rb_exc_raise(value);</div><div class='add'>+            VM_UNREACHABLE(fiber_switch);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* th-&gt;ec-&gt;fiber_ptr is also dead =&gt; switch to root fiber */</div><div class='add'>+            /* (this means we're being called from rb_fiber_terminate, */</div><div class='add'>+            /* and the terminated fiber's return_fiber() is already dead) */</div><div class='add'>+            VM_ASSERT(FIBER_SUSPENDED_P(th-&gt;root_fiber));</div><div class='add'>+</div><div class='add'>+            cont = &amp;th-&gt;root_fiber-&gt;cont;</div><div class='add'>+            cont-&gt;argc = -1;</div><div class='add'>+            cont-&gt;value = value;</div><div class='add'>+</div><div class='add'>+            fiber_setcontext(th-&gt;root_fiber, th-&gt;ec-&gt;fiber_ptr);</div><div class='add'>+</div><div class='add'>+            VM_UNREACHABLE(fiber_switch);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(FIBER_RUNNABLE_P(fiber));</div><div class='add'>+</div><div class='add'>+    rb_fiber_t *current_fiber = fiber_current();</div><div class='add'>+</div><div class='add'>+    VM_ASSERT(!current_fiber-&gt;resuming_fiber);</div><div class='add'>+</div><div class='add'>+    if (resuming_fiber) {</div><div class='add'>+        current_fiber-&gt;resuming_fiber = resuming_fiber;</div><div class='add'>+        fiber-&gt;prev = fiber_current();</div><div class='add'>+        fiber-&gt;yielding = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (is_resume) {</div><div class='del'>-	fib-&gt;prev = fiber_current();</div><div class='add'>+    VM_ASSERT(!current_fiber-&gt;yielding);</div><div class='add'>+    if (yielding) {</div><div class='add'>+        current_fiber-&gt;yielding = 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    VM_ASSERT(FIBER_RUNNABLE_P(fib));</div><div class='add'>+    if (current_fiber-&gt;blocking) {</div><div class='add'>+        th-&gt;blocking -= 1;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     cont-&gt;argc = argc;</div><div class='add'>+    cont-&gt;kw_splat = kw_splat;</div><div class='ctx'>     cont-&gt;value = make_passing_arg(argc, argv);</div><div class='del'>-    value = fiber_store(fib, th);</div><div class='add'>+</div><div class='add'>+    fiber_store(fiber, th);</div><div class='add'>+</div><div class='add'>+    // We cannot free the stack until the pthread is joined:</div><div class='add'>+#ifndef COROUTINE_PTHREAD_CONTEXT</div><div class='add'>+    if (resuming_fiber &amp;&amp; FIBER_TERMINATED_P(fiber)) {</div><div class='add'>+        fiber_stack_release(fiber);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (fiber_current()-&gt;blocking) {</div><div class='add'>+        th-&gt;blocking += 1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     RUBY_VM_CHECK_INTS(th-&gt;ec);</div><div class='ctx'> </div><div class='ctx'>     EXEC_EVENT_HOOK(th-&gt;ec, RUBY_EVENT_FIBER_SWITCH, th-&gt;self, 0, 0, 0, Qnil);</div><div class='ctx'> </div><div class='add'>+    current_fiber = th-&gt;ec-&gt;fiber_ptr;</div><div class='add'>+    value = current_fiber-&gt;cont.value;</div><div class='add'>+    if (current_fiber-&gt;cont.argc == -1) rb_exc_raise(value);</div><div class='ctx'>     return value;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_fiber_transfer(VALUE fibval, int argc, const VALUE *argv)</div><div class='add'>+rb_fiber_transfer(VALUE fiber_value, int argc, const VALUE *argv)</div><div class='ctx'> {</div><div class='del'>-    return fiber_switch(fiber_ptr(fibval), argc, argv, 0);</div><div class='add'>+    return fiber_switch(fiber_ptr(fiber_value), argc, argv, RB_NO_KEYWORDS, NULL, false);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_fiber_close(rb_fiber_t *fib)</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     fiber.blocking? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if +fiber+ is blocking and +false+ otherwise.</div><div class='add'>+ *  Fiber is non-blocking if it was created via passing &lt;tt&gt;blocking: false&lt;/tt&gt;</div><div class='add'>+ *  to Fiber.new, or via Fiber.schedule.</div><div class='add'>+ *</div><div class='add'>+ *  Note that, even if the method returns +false+, the fiber behaves differently</div><div class='add'>+ *  only if Fiber.scheduler is set in the current thread.</div><div class='add'>+ *</div><div class='add'>+ *  See the "Non-blocking fibers" section in class docs for details.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_blocking_p(VALUE fiber)</div><div class='add'>+{</div><div class='add'>+    return RBOOL(fiber_ptr(fiber)-&gt;blocking);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+fiber_blocking_yield(VALUE fiber_value)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fiber = fiber_ptr(fiber_value);</div><div class='add'>+    rb_thread_t * volatile th = fiber-&gt;cont.saved_ec.thread_ptr;</div><div class='add'>+</div><div class='add'>+    // fiber-&gt;blocking is `unsigned int : 1`, so we use it as a boolean:</div><div class='add'>+    fiber-&gt;blocking = 1;</div><div class='add'>+</div><div class='add'>+    // Once the fiber is blocking, and current, we increment the thread blocking state:</div><div class='add'>+    th-&gt;blocking += 1;</div><div class='add'>+</div><div class='add'>+    return rb_yield(fiber_value);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+fiber_blocking_ensure(VALUE fiber_value)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fiber = fiber_ptr(fiber_value);</div><div class='add'>+    rb_thread_t * volatile th = fiber-&gt;cont.saved_ec.thread_ptr;</div><div class='add'>+</div><div class='add'>+    // We are no longer blocking:</div><div class='add'>+    fiber-&gt;blocking = 0;</div><div class='add'>+    th-&gt;blocking -= 1;</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Fiber.blocking{|fiber| ...} -&gt; result</div><div class='add'>+ *</div><div class='add'>+ *  Forces the fiber to be blocking for the duration of the block. Returns the</div><div class='add'>+ *  result of the block.</div><div class='add'>+ *</div><div class='add'>+ *  See the "Non-blocking fibers" section in class docs for details.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_blocking(VALUE class)</div><div class='ctx'> {</div><div class='del'>-    rb_execution_context_t *ec = &amp;fib-&gt;cont.saved_ec;</div><div class='del'>-    VALUE *vm_stack = ec-&gt;vm_stack;</div><div class='del'>-    size_t stack_bytes = ec-&gt;vm_stack_size * sizeof(VALUE);</div><div class='add'>+    VALUE fiber_value = rb_fiber_current();</div><div class='add'>+    rb_fiber_t *fiber = fiber_ptr(fiber_value);</div><div class='ctx'> </div><div class='del'>-    fiber_status_set(fib, FIBER_TERMINATED);</div><div class='del'>-    if (stack_bytes == rb_ec_vm_ptr(ec)-&gt;default_params.thread_vm_stack_size) {</div><div class='del'>-        rb_thread_recycle_stack_release(vm_stack);</div><div class='add'>+    // If we are already blocking, this is essentially a no-op:</div><div class='add'>+    if (fiber-&gt;blocking) {</div><div class='add'>+        return rb_yield(fiber_value);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        ruby_xfree(vm_stack);</div><div class='add'>+        return rb_ensure(fiber_blocking_yield, fiber_value, fiber_blocking_ensure, fiber_value);</div><div class='ctx'>     }</div><div class='del'>-    rb_ec_set_vm_stack(ec, NULL, 0);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-#if !FIBER_USE_NATIVE</div><div class='del'>-    /* should not mark machine stack any more */</div><div class='del'>-    ec-&gt;machine.stack_end = NULL;</div><div class='del'>-#endif</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Fiber.blocking? -&gt; false or 1</div><div class='add'>+ *</div><div class='add'>+ *  Returns +false+ if the current fiber is non-blocking.</div><div class='add'>+ *  Fiber is non-blocking if it was created via passing &lt;tt&gt;blocking: false&lt;/tt&gt;</div><div class='add'>+ *  to Fiber.new, or via Fiber.schedule.</div><div class='add'>+ *</div><div class='add'>+ *  If the current Fiber is blocking, the method returns 1.</div><div class='add'>+ *  Future developments may allow for situations where larger integers</div><div class='add'>+ *  could be returned.</div><div class='add'>+ *</div><div class='add'>+ *  Note that, even if the method returns +false+, Fiber behaves differently</div><div class='add'>+ *  only if Fiber.scheduler is set in the current thread.</div><div class='add'>+ *</div><div class='add'>+ *  See the "Non-blocking fibers" section in class docs for details.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_s_blocking_p(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_thread_t *thread = GET_THREAD();</div><div class='add'>+    unsigned blocking = thread-&gt;blocking;</div><div class='add'>+</div><div class='add'>+    if (blocking == 0)</div><div class='add'>+        return Qfalse;</div><div class='add'>+</div><div class='add'>+    return INT2NUM(blocking);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_fiber_close(rb_fiber_t *fiber)</div><div class='add'>+{</div><div class='add'>+    fiber_status_set(fiber, FIBER_TERMINATED);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-rb_fiber_terminate(rb_fiber_t *fib, int need_interrupt)</div><div class='add'>+rb_fiber_terminate(rb_fiber_t *fiber, int need_interrupt, VALUE error)</div><div class='ctx'> {</div><div class='del'>-    VALUE value = fib-&gt;cont.value;</div><div class='del'>-    rb_fiber_t *ret_fib;</div><div class='add'>+    VALUE value = fiber-&gt;cont.value;</div><div class='ctx'> </div><div class='del'>-    VM_ASSERT(FIBER_RESUMED_P(fib));</div><div class='del'>-    rb_fiber_close(fib);</div><div class='add'>+    VM_ASSERT(FIBER_RESUMED_P(fiber));</div><div class='add'>+    rb_fiber_close(fiber);</div><div class='ctx'> </div><div class='del'>-#if FIBER_USE_NATIVE</div><div class='del'>-#if defined(FIBER_USE_COROUTINE)</div><div class='del'>-    coroutine_destroy(&amp;fib-&gt;context);</div><div class='del'>-#elif !defined(_WIN32)</div><div class='del'>-    fib-&gt;context.uc_stack.ss_sp = NULL;</div><div class='del'>-#endif</div><div class='add'>+    fiber-&gt;cont.machine.stack = NULL;</div><div class='add'>+    fiber-&gt;cont.machine.stack_size = 0;</div><div class='ctx'> </div><div class='del'>-#ifdef MAX_MACHINE_STACK_CACHE</div><div class='del'>-    /* Ruby must not switch to other thread until storing terminated_machine_stack */</div><div class='del'>-    terminated_machine_stack.ptr = fib-&gt;ss_sp;</div><div class='del'>-    terminated_machine_stack.size = fib-&gt;ss_size / sizeof(VALUE);</div><div class='del'>-    fib-&gt;ss_sp = NULL;</div><div class='del'>-    fib-&gt;cont.machine.stack = NULL;</div><div class='del'>-    fib-&gt;cont.machine.stack_size = 0;</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='add'>+    rb_fiber_t *next_fiber = return_fiber(true);</div><div class='add'>+</div><div class='add'>+    if (need_interrupt) RUBY_VM_SET_INTERRUPT(&amp;next_fiber-&gt;cont.saved_ec);</div><div class='ctx'> </div><div class='del'>-    ret_fib = return_fiber();</div><div class='del'>-    if (need_interrupt) RUBY_VM_SET_INTERRUPT(&amp;ret_fib-&gt;cont.saved_ec);</div><div class='del'>-    fiber_switch(ret_fib, 1, &amp;value, 0);</div><div class='add'>+    if (RTEST(error))</div><div class='add'>+        fiber_switch(next_fiber, -1, &amp;error, RB_NO_KEYWORDS, NULL, false);</div><div class='add'>+    else</div><div class='add'>+        fiber_switch(next_fiber, 1, &amp;value, RB_NO_KEYWORDS, NULL, false);</div><div class='add'>+    ruby_stop(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_fiber_resume(VALUE fibval, int argc, const VALUE *argv)</div><div class='add'>+static VALUE</div><div class='add'>+fiber_resume_kw(rb_fiber_t *fiber, int argc, const VALUE *argv, int kw_splat)</div><div class='ctx'> {</div><div class='del'>-    rb_fiber_t *fib = fiber_ptr(fibval);</div><div class='add'>+    rb_fiber_t *current_fiber = fiber_current();</div><div class='ctx'> </div><div class='del'>-    if (fib-&gt;prev != 0 || fiber_is_root_p(fib)) {</div><div class='del'>-	rb_raise(rb_eFiberError, "double resume");</div><div class='add'>+    if (argc == -1 &amp;&amp; FIBER_CREATED_P(fiber)) {</div><div class='add'>+        rb_raise(rb_eFiberError, "cannot raise exception on unborn fiber");</div><div class='ctx'>     }</div><div class='del'>-    if (fib-&gt;transferred != 0) {</div><div class='del'>-	rb_raise(rb_eFiberError, "cannot resume transferred Fiber");</div><div class='add'>+    else if (FIBER_TERMINATED_P(fiber)) {</div><div class='add'>+        rb_raise(rb_eFiberError, "attempt to resume a terminated fiber");</div><div class='add'>+    }</div><div class='add'>+    else if (fiber == current_fiber) {</div><div class='add'>+        rb_raise(rb_eFiberError, "attempt to resume the current fiber");</div><div class='add'>+    }</div><div class='add'>+    else if (fiber-&gt;prev != NULL) {</div><div class='add'>+        rb_raise(rb_eFiberError, "attempt to resume a resumed fiber (double resume)");</div><div class='add'>+    }</div><div class='add'>+    else if (fiber-&gt;resuming_fiber) {</div><div class='add'>+        rb_raise(rb_eFiberError, "attempt to resume a resuming fiber");</div><div class='add'>+    }</div><div class='add'>+    else if (fiber-&gt;prev == NULL &amp;&amp;</div><div class='add'>+             (!fiber-&gt;yielding &amp;&amp; fiber-&gt;status != FIBER_CREATED)) {</div><div class='add'>+        rb_raise(rb_eFiberError, "attempt to resume a transferring fiber");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return fiber_switch(fib, argc, argv, 1);</div><div class='add'>+    return fiber_switch(fiber, argc, argv, kw_splat, fiber, false);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_resume_kw(VALUE self, int argc, const VALUE *argv, int kw_splat)</div><div class='add'>+{</div><div class='add'>+    return fiber_resume_kw(fiber_ptr(self), argc, argv, kw_splat);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_resume(VALUE self, int argc, const VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    return fiber_resume_kw(fiber_ptr(self), argc, argv, RB_NO_KEYWORDS);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_yield_kw(int argc, const VALUE *argv, int kw_splat)</div><div class='add'>+{</div><div class='add'>+    return fiber_switch(return_fiber(false), argc, argv, kw_splat, NULL, true);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_fiber_yield(int argc, const VALUE *argv)</div><div class='ctx'> {</div><div class='del'>-    return fiber_switch(return_fiber(), argc, argv, 0);</div><div class='add'>+    return fiber_switch(return_fiber(false), argc, argv, RB_NO_KEYWORDS, NULL, true);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_fiber_reset_root_local_storage(rb_thread_t *th)</div><div class='ctx'> {</div><div class='ctx'>     if (th-&gt;root_fiber &amp;&amp; th-&gt;root_fiber != th-&gt;ec-&gt;fiber_ptr) {</div><div class='del'>-	th-&gt;ec-&gt;local_storage = th-&gt;root_fiber-&gt;cont.saved_ec.local_storage;</div><div class='add'>+        th-&gt;ec-&gt;local_storage = th-&gt;root_fiber-&gt;cont.saved_ec.local_storage;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1924,34 +2929,110 @@ rb_fiber_reset_root_local_storage(rb_thread_t *th)</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns true if the fiber can still be resumed (or transferred</div><div class='ctx'>  *  to). After finishing execution of the fiber block this method will</div><div class='del'>- *  always return false. You need to &lt;code&gt;require 'fiber'&lt;/code&gt;</div><div class='del'>- *  before using this method.</div><div class='add'>+ *  always return +false+.</div><div class='ctx'>  */</div><div class='ctx'> VALUE</div><div class='del'>-rb_fiber_alive_p(VALUE fibval)</div><div class='add'>+rb_fiber_alive_p(VALUE fiber_value)</div><div class='ctx'> {</div><div class='del'>-    return FIBER_TERMINATED_P(fiber_ptr(fibval)) ? Qfalse : Qtrue;</div><div class='add'>+    return RBOOL(!FIBER_TERMINATED_P(fiber_ptr(fiber_value)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     fiber.resume(args, ...) -&gt; obj</div><div class='ctx'>  *</div><div class='del'>- *  Resumes the fiber from the point at which the last &lt;code&gt;Fiber.yield&lt;/code&gt;</div><div class='del'>- *  was called, or starts running it if it is the first call to</div><div class='del'>- *  &lt;code&gt;resume&lt;/code&gt;. Arguments passed to resume will be the value of</div><div class='del'>- *  the &lt;code&gt;Fiber.yield&lt;/code&gt; expression or will be passed as block</div><div class='del'>- *  parameters to the fiber's block if this is the first &lt;code&gt;resume&lt;/code&gt;.</div><div class='add'>+ *  Resumes the fiber from the point at which the last Fiber.yield was</div><div class='add'>+ *  called, or starts running it if it is the first call to</div><div class='add'>+ *  #resume. Arguments passed to resume will be the value of the</div><div class='add'>+ *  Fiber.yield expression or will be passed as block parameters to</div><div class='add'>+ *  the fiber's block if this is the first #resume.</div><div class='ctx'>  *</div><div class='ctx'>  *  Alternatively, when resume is called it evaluates to the arguments passed</div><div class='del'>- *  to the next &lt;code&gt;Fiber.yield&lt;/code&gt; statement inside the fiber's block</div><div class='add'>+ *  to the next Fiber.yield statement inside the fiber's block</div><div class='ctx'>  *  or to the block value if it runs to completion without any</div><div class='del'>- *  &lt;code&gt;Fiber.yield&lt;/code&gt;</div><div class='add'>+ *  Fiber.yield</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_m_resume(int argc, VALUE *argv, VALUE fiber)</div><div class='add'>+{</div><div class='add'>+    return rb_fiber_resume_kw(fiber, argc, argv, rb_keyword_given_p());</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     fiber.backtrace -&gt; array</div><div class='add'>+ *     fiber.backtrace(start) -&gt; array</div><div class='add'>+ *     fiber.backtrace(start, count) -&gt; array</div><div class='add'>+ *     fiber.backtrace(start..end) -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns the current execution stack of the fiber. +start+, +count+ and +end+ allow</div><div class='add'>+ *  to select only parts of the backtrace.</div><div class='add'>+ *</div><div class='add'>+ *     def level3</div><div class='add'>+ *       Fiber.yield</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     def level2</div><div class='add'>+ *       level3</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     def level1</div><div class='add'>+ *       level2</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     f = Fiber.new { level1 }</div><div class='add'>+ *</div><div class='add'>+ *     # It is empty before the fiber started</div><div class='add'>+ *     f.backtrace</div><div class='add'>+ *     #=&gt; []</div><div class='add'>+ *</div><div class='add'>+ *     f.resume</div><div class='add'>+ *</div><div class='add'>+ *     f.backtrace</div><div class='add'>+ *     #=&gt; ["test.rb:2:in `yield'", "test.rb:2:in `level3'", "test.rb:6:in `level2'", "test.rb:10:in `level1'", "test.rb:13:in `block in &lt;main&gt;'"]</div><div class='add'>+ *     p f.backtrace(1) # start from the item 1</div><div class='add'>+ *     #=&gt; ["test.rb:2:in `level3'", "test.rb:6:in `level2'", "test.rb:10:in `level1'", "test.rb:13:in `block in &lt;main&gt;'"]</div><div class='add'>+ *     p f.backtrace(2, 2) # start from item 2, take 2</div><div class='add'>+ *     #=&gt; ["test.rb:6:in `level2'", "test.rb:10:in `level1'"]</div><div class='add'>+ *     p f.backtrace(1..3) # take items from 1 to 3</div><div class='add'>+ *     #=&gt; ["test.rb:2:in `level3'", "test.rb:6:in `level2'", "test.rb:10:in `level1'"]</div><div class='add'>+ *</div><div class='add'>+ *     f.resume</div><div class='add'>+ *</div><div class='add'>+ *     # It is nil after the fiber is finished</div><div class='add'>+ *     f.backtrace</div><div class='add'>+ *     #=&gt; nil</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_fiber_m_resume(int argc, VALUE *argv, VALUE fib)</div><div class='add'>+rb_fiber_backtrace(int argc, VALUE *argv, VALUE fiber)</div><div class='ctx'> {</div><div class='del'>-    return rb_fiber_resume(fib, argc, argv);</div><div class='add'>+    return rb_vm_backtrace(argc, argv, &amp;fiber_ptr(fiber)-&gt;cont.saved_ec);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     fiber.backtrace_locations -&gt; array</div><div class='add'>+ *     fiber.backtrace_locations(start) -&gt; array</div><div class='add'>+ *     fiber.backtrace_locations(start, count) -&gt; array</div><div class='add'>+ *     fiber.backtrace_locations(start..end) -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Like #backtrace, but returns each line of the execution stack as a</div><div class='add'>+ *  Thread::Backtrace::Location. Accepts the same arguments as #backtrace.</div><div class='add'>+ *</div><div class='add'>+ *    f = Fiber.new { Fiber.yield }</div><div class='add'>+ *    f.resume</div><div class='add'>+ *    loc = f.backtrace_locations.first</div><div class='add'>+ *    loc.label  #=&gt; "yield"</div><div class='add'>+ *    loc.path   #=&gt; "test.rb"</div><div class='add'>+ *    loc.lineno #=&gt; 1</div><div class='add'>+ *</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_backtrace_locations(int argc, VALUE *argv, VALUE fiber)</div><div class='add'>+{</div><div class='add'>+    return rb_vm_backtrace_locations(argc, argv, &amp;fiber_ptr(fiber)-&gt;cont.saved_ec);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1961,50 +3042,105 @@ rb_fiber_m_resume(int argc, VALUE *argv, VALUE fib)</div><div class='ctx'>  *  Transfer control to another fiber, resuming it from where it last</div><div class='ctx'>  *  stopped or starting it if it was not resumed before. The calling</div><div class='ctx'>  *  fiber will be suspended much like in a call to</div><div class='del'>- *  &lt;code&gt;Fiber.yield&lt;/code&gt;. You need to &lt;code&gt;require 'fiber'&lt;/code&gt;</div><div class='del'>- *  before using this method.</div><div class='add'>+ *  Fiber.yield.</div><div class='ctx'>  *</div><div class='del'>- *  The fiber which receives the transfer call is treats it much like</div><div class='add'>+ *  The fiber which receives the transfer call treats it much like</div><div class='ctx'>  *  a resume call. Arguments passed to transfer are treated like those</div><div class='ctx'>  *  passed to resume.</div><div class='ctx'>  *</div><div class='del'>- *  You cannot resume a fiber that transferred control to another one.</div><div class='del'>- *  This will cause a double resume error. You need to transfer control</div><div class='del'>- *  back to this fiber before it can yield and resume.</div><div class='add'>+ *  The two style of control passing to and from fiber (one is #resume and</div><div class='add'>+ *  Fiber::yield, another is #transfer to and from fiber) can't be freely</div><div class='add'>+ *  mixed.</div><div class='add'>+ *</div><div class='add'>+ *  * If the Fiber's lifecycle had started with transfer, it will never</div><div class='add'>+ *    be able to yield or be resumed control passing, only</div><div class='add'>+ *    finish or transfer back. (It still can resume other fibers that</div><div class='add'>+ *    are allowed to be resumed.)</div><div class='add'>+ *  * If the Fiber's lifecycle had started with resume, it can yield</div><div class='add'>+ *    or transfer to another Fiber, but can receive control back only</div><div class='add'>+ *    the way compatible with the way it was given away: if it had</div><div class='add'>+ *    transferred, it only can be transferred back, and if it had</div><div class='add'>+ *    yielded, it only can be resumed back. After that, it again can</div><div class='add'>+ *    transfer or yield.</div><div class='add'>+ *</div><div class='add'>+ *  If those rules are broken FiberError is raised.</div><div class='add'>+ *</div><div class='add'>+ *  For an individual Fiber design, yield/resume is easier to use</div><div class='add'>+ *  (the Fiber just gives away control, it doesn't need to think</div><div class='add'>+ *  about who the control is given to), while transfer is more flexible</div><div class='add'>+ *  for complex cases, allowing to build arbitrary graphs of Fibers</div><div class='add'>+ *  dependent on each other.</div><div class='add'>+ *</div><div class='ctx'>  *</div><div class='ctx'>  *  Example:</div><div class='ctx'>  *</div><div class='del'>- *    fiber1 = Fiber.new do</div><div class='del'>- *      puts "In Fiber 1"</div><div class='del'>- *      Fiber.yield</div><div class='del'>- *    end</div><div class='add'>+ *     manager = nil # For local var to be visible inside worker block</div><div class='ctx'>  *</div><div class='del'>- *    fiber2 = Fiber.new do</div><div class='del'>- *      puts "In Fiber 2"</div><div class='del'>- *      fiber1.transfer</div><div class='del'>- *      puts "Never see this message"</div><div class='del'>- *    end</div><div class='add'>+ *     # This fiber would be started with transfer</div><div class='add'>+ *     # It can't yield, and can't be resumed</div><div class='add'>+ *     worker = Fiber.new { |work|</div><div class='add'>+ *       puts "Worker: starts"</div><div class='add'>+ *       puts "Worker: Performed #{work.inspect}, transferring back"</div><div class='add'>+ *       # Fiber.yield     # this would raise FiberError: attempt to yield on a not resumed fiber</div><div class='add'>+ *       # manager.resume  # this would raise FiberError: attempt to resume a resumed fiber (double resume)</div><div class='add'>+ *       manager.transfer(work.capitalize)</div><div class='add'>+ *     }</div><div class='ctx'>  *</div><div class='del'>- *    fiber3 = Fiber.new do</div><div class='del'>- *      puts "In Fiber 3"</div><div class='del'>- *    end</div><div class='add'>+ *     # This fiber would be started with resume</div><div class='add'>+ *     # It can yield or transfer, and can be transferred</div><div class='add'>+ *     # back or resumed</div><div class='add'>+ *     manager = Fiber.new {</div><div class='add'>+ *       puts "Manager: starts"</div><div class='add'>+ *       puts "Manager: transferring 'something' to worker"</div><div class='add'>+ *       result = worker.transfer('something')</div><div class='add'>+ *       puts "Manager: worker returned #{result.inspect}"</div><div class='add'>+ *       # worker.resume    # this would raise FiberError: attempt to resume a transferring fiber</div><div class='add'>+ *       Fiber.yield        # this is OK, the fiber transferred from and to, now it can yield</div><div class='add'>+ *       puts "Manager: finished"</div><div class='add'>+ *     }</div><div class='ctx'>  *</div><div class='del'>- *    fiber2.resume</div><div class='del'>- *    fiber3.resume</div><div class='add'>+ *     puts "Starting the manager"</div><div class='add'>+ *     manager.resume</div><div class='add'>+ *     puts "Resuming the manager"</div><div class='add'>+ *     # manager.transfer  # this would raise FiberError: attempt to transfer to a yielding fiber</div><div class='add'>+ *     manager.resume</div><div class='ctx'>  *</div><div class='ctx'>  *  &lt;em&gt;produces&lt;/em&gt;</div><div class='ctx'>  *</div><div class='del'>- *    In fiber 2</div><div class='del'>- *    In fiber 1</div><div class='del'>- *    In fiber 3</div><div class='add'>+ *     Starting the manager</div><div class='add'>+ *     Manager: starts</div><div class='add'>+ *     Manager: transferring 'something' to worker</div><div class='add'>+ *     Worker: starts</div><div class='add'>+ *     Worker: Performed "something", transferring back</div><div class='add'>+ *     Manager: worker returned "Something"</div><div class='add'>+ *     Resuming the manager</div><div class='add'>+ *     Manager: finished</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_fiber_m_transfer(int argc, VALUE *argv, VALUE fibval)</div><div class='add'>+rb_fiber_m_transfer(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    rb_fiber_t *fib = fiber_ptr(fibval);</div><div class='del'>-    fib-&gt;transferred = 1;</div><div class='del'>-    return fiber_switch(fib, argc, argv, 0);</div><div class='add'>+    return rb_fiber_transfer_kw(self, argc, argv, rb_keyword_given_p());</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+fiber_transfer_kw(rb_fiber_t *fiber, int argc, const VALUE *argv, int kw_splat)</div><div class='add'>+{</div><div class='add'>+  if (fiber-&gt;resuming_fiber) {</div><div class='add'>+      rb_raise(rb_eFiberError, "attempt to transfer to a resuming fiber");</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  if (fiber-&gt;yielding) {</div><div class='add'>+      rb_raise(rb_eFiberError, "attempt to transfer to a yielding fiber");</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return fiber_switch(fiber, argc, argv, kw_splat, NULL, false);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_transfer_kw(VALUE self, int argc, const VALUE *argv, int kw_splat)</div><div class='add'>+{</div><div class='add'>+    return fiber_transfer_kw(fiber_ptr(self), argc, argv, kw_splat);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -2013,55 +3149,101 @@ rb_fiber_m_transfer(int argc, VALUE *argv, VALUE fibval)</div><div class='ctx'>  *</div><div class='ctx'>  *  Yields control back to the context that resumed the fiber, passing</div><div class='ctx'>  *  along any arguments that were passed to it. The fiber will resume</div><div class='del'>- *  processing at this point when &lt;code&gt;resume&lt;/code&gt; is called next.</div><div class='del'>- *  Any arguments passed to the next &lt;code&gt;resume&lt;/code&gt; will be the</div><div class='del'>- *  value that this &lt;code&gt;Fiber.yield&lt;/code&gt; expression evaluates to.</div><div class='add'>+ *  processing at this point when #resume is called next.</div><div class='add'>+ *  Any arguments passed to the next #resume will be the value that</div><div class='add'>+ *  this Fiber.yield expression evaluates to.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_fiber_s_yield(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    return rb_fiber_yield(argc, argv);</div><div class='add'>+    return rb_fiber_yield_kw(argc, argv, rb_keyword_given_p());</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+fiber_raise(rb_fiber_t *fiber, int argc, const VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    VALUE exception = rb_make_exception(argc, argv);</div><div class='add'>+</div><div class='add'>+    if (fiber-&gt;resuming_fiber) {</div><div class='add'>+        rb_raise(rb_eFiberError, "attempt to raise a resuming fiber");</div><div class='add'>+    }</div><div class='add'>+    else if (FIBER_SUSPENDED_P(fiber) &amp;&amp; !fiber-&gt;yielding) {</div><div class='add'>+        return fiber_transfer_kw(fiber, -1, &amp;exception, RB_NO_KEYWORDS);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return fiber_resume_kw(fiber, -1, &amp;exception, RB_NO_KEYWORDS);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_fiber_raise(VALUE fiber, int argc, const VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    return fiber_raise(fiber_ptr(fiber), argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Fiber.current() -&gt; fiber</div><div class='add'>+ *     fiber.raise                                 -&gt; obj</div><div class='add'>+ *     fiber.raise(string)                         -&gt; obj</div><div class='add'>+ *     fiber.raise(exception [, string [, array]]) -&gt; obj</div><div class='ctx'>  *</div><div class='del'>- *  Returns the current fiber. You need to &lt;code&gt;require 'fiber'&lt;/code&gt;</div><div class='del'>- *  before using this method. If you are not running in the context of</div><div class='del'>- *  a fiber this method will return the root fiber.</div><div class='add'>+ *  Raises an exception in the fiber at the point at which the last</div><div class='add'>+ *  +Fiber.yield+ was called. If the fiber has not been started or has</div><div class='add'>+ *  already run to completion, raises +FiberError+. If the fiber is</div><div class='add'>+ *  yielding, it is resumed. If it is transferring, it is transferred into.</div><div class='add'>+ *  But if it is resuming, raises +FiberError+.</div><div class='add'>+ *</div><div class='add'>+ *  With no arguments, raises a +RuntimeError+. With a single +String+</div><div class='add'>+ *  argument, raises a +RuntimeError+ with the string as a message.  Otherwise,</div><div class='add'>+ *  the first parameter should be the name of an +Exception+ class (or an</div><div class='add'>+ *  object that returns an +Exception+ object when sent an +exception+</div><div class='add'>+ *  message). The optional second parameter sets the message associated with</div><div class='add'>+ *  the exception, and the third parameter is an array of callback information.</div><div class='add'>+ *  Exceptions are caught by the +rescue+ clause of &lt;code&gt;begin...end&lt;/code&gt;</div><div class='add'>+ *  blocks.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_fiber_s_current(VALUE klass)</div><div class='add'>+rb_fiber_m_raise(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    return rb_fiber_current();</div><div class='add'>+    return rb_fiber_raise(self, argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   fiber.to_s   -&gt; string</div><div class='del'>- *</div><div class='del'>- * Returns fiber information string.</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Fiber.current -&gt; fiber</div><div class='ctx'>  *</div><div class='add'>+ *  Returns the current fiber. If you are not running in the context of</div><div class='add'>+ *  a fiber this method will return the root fiber.</div><div class='ctx'>  */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_s_current(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return rb_fiber_current();</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-fiber_to_s(VALUE fibval)</div><div class='add'>+fiber_to_s(VALUE fiber_value)</div><div class='ctx'> {</div><div class='del'>-    const rb_fiber_t *fib = fiber_ptr(fibval);</div><div class='add'>+    const rb_fiber_t *fiber = fiber_ptr(fiber_value);</div><div class='ctx'>     const rb_proc_t *proc;</div><div class='del'>-    char status_info[0x10];</div><div class='add'>+    char status_info[0x20];</div><div class='ctx'> </div><div class='del'>-    snprintf(status_info, 0x10, " (%s)", fiber_status_name(fib-&gt;status));</div><div class='del'>-    if (!rb_obj_is_proc(fib-&gt;first_proc)) {</div><div class='del'>-	VALUE str = rb_any_to_s(fibval);</div><div class='del'>-	strlcat(status_info, "&gt;", sizeof(status_info));</div><div class='del'>-	rb_str_set_len(str, RSTRING_LEN(str)-1);</div><div class='del'>-	rb_str_cat_cstr(str, status_info);</div><div class='del'>-	return str;</div><div class='add'>+    if (fiber-&gt;resuming_fiber) {</div><div class='add'>+        snprintf(status_info, 0x20, " (%s by resuming)", fiber_status_name(fiber-&gt;status));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        snprintf(status_info, 0x20, " (%s)", fiber_status_name(fiber-&gt;status));</div><div class='ctx'>     }</div><div class='del'>-    GetProcPtr(fib-&gt;first_proc, proc);</div><div class='del'>-    return rb_block_to_s(fibval, &amp;proc-&gt;block, status_info);</div><div class='add'>+</div><div class='add'>+    if (!rb_obj_is_proc(fiber-&gt;first_proc)) {</div><div class='add'>+        VALUE str = rb_any_to_s(fiber_value);</div><div class='add'>+        strlcat(status_info, "&gt;", sizeof(status_info));</div><div class='add'>+        rb_str_set_len(str, RSTRING_LEN(str)-1);</div><div class='add'>+        rb_str_cat_cstr(str, status_info);</div><div class='add'>+        return str;</div><div class='add'>+    }</div><div class='add'>+    GetProcPtr(fiber-&gt;first_proc, proc);</div><div class='add'>+    return rb_block_to_s(fiber_value, &amp;proc-&gt;block, status_info);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_WORKING_FORK</div><div class='hunk'>@@ -2077,6 +3259,74 @@ rb_fiber_atfork(rb_thread_t *th)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifdef RB_EXPERIMENTAL_FIBER_POOL</div><div class='add'>+static void</div><div class='add'>+fiber_pool_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct fiber_pool * fiber_pool = ptr;</div><div class='add'>+    RUBY_FREE_ENTER("fiber_pool");</div><div class='add'>+</div><div class='add'>+    fiber_pool_allocation_free(fiber_pool-&gt;allocations);</div><div class='add'>+    ruby_xfree(fiber_pool);</div><div class='add'>+</div><div class='add'>+    RUBY_FREE_LEAVE("fiber_pool");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+fiber_pool_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    const struct fiber_pool * fiber_pool = ptr;</div><div class='add'>+    size_t size = sizeof(*fiber_pool);</div><div class='add'>+</div><div class='add'>+    size += fiber_pool-&gt;count * fiber_pool-&gt;size;</div><div class='add'>+</div><div class='add'>+    return size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t FiberPoolDataType = {</div><div class='add'>+    "fiber_pool",</div><div class='add'>+    {NULL, fiber_pool_free, fiber_pool_memsize,},</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+fiber_pool_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    struct fiber_pool *fiber_pool;</div><div class='add'>+</div><div class='add'>+    return TypedData_Make_Struct(klass, struct fiber_pool, &amp;FiberPoolDataType, fiber_pool);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiber_pool_initialize(int argc, VALUE* argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+    VALUE size = Qnil, count = Qnil, vm_stack_size = Qnil;</div><div class='add'>+    struct fiber_pool * fiber_pool = NULL;</div><div class='add'>+</div><div class='add'>+    // Maybe these should be keyword arguments.</div><div class='add'>+    rb_scan_args(argc, argv, "03", &amp;size, &amp;count, &amp;vm_stack_size);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(size)) {</div><div class='add'>+        size = SIZET2NUM(th-&gt;vm-&gt;default_params.fiber_machine_stack_size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (NIL_P(count)) {</div><div class='add'>+        count = INT2NUM(128);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (NIL_P(vm_stack_size)) {</div><div class='add'>+        vm_stack_size = SIZET2NUM(th-&gt;vm-&gt;default_params.fiber_vm_stack_size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(self, struct fiber_pool, &amp;FiberPoolDataType, fiber_pool);</div><div class='add'>+</div><div class='add'>+    fiber_pool_initialize(fiber_pool, NUM2SIZET(size), NUM2SIZET(count), NUM2SIZET(vm_stack_size));</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  Document-class: FiberError</div><div class='ctx'>  *</div><div class='hunk'>@@ -2093,8 +3343,10 @@ rb_fiber_atfork(rb_thread_t *th)</div><div class='ctx'> void</div><div class='ctx'> Init_Cont(void)</div><div class='ctx'> {</div><div class='del'>-#if FIBER_USE_NATIVE</div><div class='ctx'>     rb_thread_t *th = GET_THREAD();</div><div class='add'>+    size_t vm_stack_size = th-&gt;vm-&gt;default_params.fiber_vm_stack_size;</div><div class='add'>+    size_t machine_stack_size = th-&gt;vm-&gt;default_params.fiber_machine_stack_size;</div><div class='add'>+    size_t stack_size = machine_stack_size + vm_stack_size;</div><div class='ctx'> </div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'>     SYSTEM_INFO info;</div><div class='hunk'>@@ -2104,16 +3356,54 @@ Init_Cont(void)</div><div class='ctx'>     pagesize = sysconf(_SC_PAGESIZE);</div><div class='ctx'> #endif</div><div class='ctx'>     SET_MACHINE_STACK_END(&amp;th-&gt;ec-&gt;machine.stack_end);</div><div class='del'>-#endif</div><div class='add'>+</div><div class='add'>+    fiber_pool_initialize(&amp;shared_fiber_pool, stack_size, FIBER_POOL_INITIAL_SIZE, vm_stack_size);</div><div class='add'>+</div><div class='add'>+    fiber_initialize_keywords[0] = rb_intern_const("blocking");</div><div class='add'>+    fiber_initialize_keywords[1] = rb_intern_const("pool");</div><div class='add'>+    fiber_initialize_keywords[2] = rb_intern_const("storage");</div><div class='add'>+</div><div class='add'>+    const char *fiber_shared_fiber_pool_free_stacks = getenv("RUBY_SHARED_FIBER_POOL_FREE_STACKS");</div><div class='add'>+    if (fiber_shared_fiber_pool_free_stacks) {</div><div class='add'>+        shared_fiber_pool.free_stacks = atoi(fiber_shared_fiber_pool_free_stacks);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     rb_cFiber = rb_define_class("Fiber", rb_cObject);</div><div class='ctx'>     rb_define_alloc_func(rb_cFiber, fiber_alloc);</div><div class='ctx'>     rb_eFiberError = rb_define_class("FiberError", rb_eStandardError);</div><div class='ctx'>     rb_define_singleton_method(rb_cFiber, "yield", rb_fiber_s_yield, -1);</div><div class='del'>-    rb_define_method(rb_cFiber, "initialize", rb_fiber_init, 0);</div><div class='add'>+    rb_define_singleton_method(rb_cFiber, "current", rb_fiber_s_current, 0);</div><div class='add'>+    rb_define_singleton_method(rb_cFiber, "blocking", rb_fiber_blocking, 0);</div><div class='add'>+    rb_define_singleton_method(rb_cFiber, "[]", rb_fiber_storage_aref, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cFiber, "[]=", rb_fiber_storage_aset, 2);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cFiber, "initialize", rb_fiber_initialize, -1);</div><div class='add'>+    rb_define_method(rb_cFiber, "blocking?", rb_fiber_blocking_p, 0);</div><div class='add'>+    rb_define_method(rb_cFiber, "storage", rb_fiber_storage_get, 0);</div><div class='add'>+    rb_define_method(rb_cFiber, "storage=", rb_fiber_storage_set, 1);</div><div class='ctx'>     rb_define_method(rb_cFiber, "resume", rb_fiber_m_resume, -1);</div><div class='add'>+    rb_define_method(rb_cFiber, "raise", rb_fiber_m_raise, -1);</div><div class='add'>+    rb_define_method(rb_cFiber, "backtrace", rb_fiber_backtrace, -1);</div><div class='add'>+    rb_define_method(rb_cFiber, "backtrace_locations", rb_fiber_backtrace_locations, -1);</div><div class='ctx'>     rb_define_method(rb_cFiber, "to_s", fiber_to_s, 0);</div><div class='ctx'>     rb_define_alias(rb_cFiber, "inspect", "to_s");</div><div class='add'>+    rb_define_method(rb_cFiber, "transfer", rb_fiber_m_transfer, -1);</div><div class='add'>+    rb_define_method(rb_cFiber, "alive?", rb_fiber_alive_p, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_singleton_method(rb_cFiber, "blocking?", rb_fiber_s_blocking_p, 0);</div><div class='add'>+    rb_define_singleton_method(rb_cFiber, "scheduler", rb_fiber_s_scheduler, 0);</div><div class='add'>+    rb_define_singleton_method(rb_cFiber, "set_scheduler", rb_fiber_set_scheduler, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cFiber, "current_scheduler", rb_fiber_current_scheduler, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_singleton_method(rb_cFiber, "schedule", rb_fiber_s_schedule, -1);</div><div class='add'>+</div><div class='add'>+#ifdef RB_EXPERIMENTAL_FIBER_POOL</div><div class='add'>+    rb_cFiberPool = rb_define_class_under(rb_cFiber, "Pool", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(rb_cFiberPool, fiber_pool_alloc);</div><div class='add'>+    rb_define_method(rb_cFiberPool, "initialize", rb_fiber_pool_initialize, -1);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    rb_provide("fiber.so");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> RUBY_SYMBOL_EXPORT_BEGIN</div><div class='hunk'>@@ -2129,12 +3419,4 @@ ruby_Init_Continuation_body(void)</div><div class='ctx'>     rb_define_global_function("callcc", rb_callcc, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-ruby_Init_Fiber_as_Coroutine(void)</div><div class='del'>-{</div><div class='del'>-    rb_define_method(rb_cFiber, "transfer", rb_fiber_m_transfer, -1);</div><div class='del'>-    rb_define_method(rb_cFiber, "alive?", rb_fiber_alive_p, 0);</div><div class='del'>-    rb_define_singleton_method(rb_cFiber, "current", rb_fiber_s_current, 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> RUBY_SYMBOL_EXPORT_END</div><div class='head'>diff --git a/coroutine/amd64/Context.S b/coroutine/amd64/Context.S<br/>index 6193993e03..d50732adbc 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/amd64/Context.S?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/amd64/Context.S</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/amd64/Context.S?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/amd64/Context.S</a></div><div class='hunk'>@@ -2,17 +2,17 @@</div><div class='ctx'> ##  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'> ##</div><div class='ctx'> ##  Created by Samuel Williams on 10/5/2018.</div><div class='del'>-##  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+##  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> ##</div><div class='ctx'> </div><div class='add'>+#define TOKEN_PASTE(x,y) x##y</div><div class='add'>+#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)</div><div class='add'>+</div><div class='ctx'> .text</div><div class='ctx'> </div><div class='del'>-# For older linkers</div><div class='del'>-.globl _coroutine_transfer</div><div class='del'>-_coroutine_transfer:</div><div class='add'>+.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)</div><div class='add'>+PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):</div><div class='ctx'> </div><div class='del'>-.globl coroutine_transfer</div><div class='del'>-coroutine_transfer:</div><div class='ctx'> 	# Save caller state</div><div class='ctx'> 	pushq %rbp</div><div class='ctx'> 	pushq %rbx</div><div class='hunk'>@@ -27,7 +27,7 @@ coroutine_transfer:</div><div class='ctx'> 	# Restore callee stack pointer</div><div class='ctx'> 	movq (%rsi), %rsp</div><div class='ctx'> </div><div class='del'>-	# Restore callee stack</div><div class='add'>+	# Restore callee state</div><div class='ctx'> 	popq %r15</div><div class='ctx'> 	popq %r14</div><div class='ctx'> 	popq %r13</div><div class='hunk'>@@ -41,6 +41,6 @@ coroutine_transfer:</div><div class='ctx'> 	# We pop the return address and jump to it</div><div class='ctx'> 	ret</div><div class='ctx'> </div><div class='del'>-#if defined(__linux__) &amp;&amp; defined(__ELF__)</div><div class='add'>+#if (defined(__linux__) || defined(__FreeBSD__)) &amp;&amp; defined(__ELF__)</div><div class='ctx'> .section .note.GNU-stack,"",%progbits</div><div class='ctx'> #endif</div><div class='head'>diff --git a/coroutine/amd64/Context.h b/coroutine/amd64/Context.h<br/>index 1801c1e2c5..44daa4e01a 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/amd64/Context.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/amd64/Context.h</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/amd64/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/amd64/Context.h</a></div><div class='hunk'>@@ -1,44 +1,72 @@</div><div class='add'>+#ifndef COROUTINE_AMD64_CONTEXT_H</div><div class='add'>+#define COROUTINE_AMD64_CONTEXT_H 1</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'>  *</div><div class='ctx'>  *  Created by Samuel Williams on 10/5/2018.</div><div class='del'>- *  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+ *  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> */</div><div class='ctx'> </div><div class='ctx'> #pragma once</div><div class='ctx'> </div><div class='ctx'> #include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='ctx'> #include &lt;string.h&gt;</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #define COROUTINE __attribute__((noreturn)) void</div><div class='ctx'> </div><div class='del'>-const size_t COROUTINE_REGISTERS = 6;</div><div class='add'>+enum {COROUTINE_REGISTERS = 6};</div><div class='add'>+</div><div class='add'>+#if defined(__SANITIZE_ADDRESS__)</div><div class='add'>+    #define COROUTINE_SANITIZE_ADDRESS</div><div class='add'>+#elif defined(__has_feature)</div><div class='add'>+    #if __has_feature(address_sanitizer)</div><div class='add'>+        #define COROUTINE_SANITIZE_ADDRESS</div><div class='add'>+    #endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+#include &lt;sanitizer/common_interface_defs.h&gt;</div><div class='add'>+#include &lt;sanitizer/asan_interface.h&gt;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-typedef struct</div><div class='add'>+struct coroutine_context</div><div class='ctx'> {</div><div class='ctx'>     void **stack_pointer;</div><div class='del'>-} coroutine_context;</div><div class='add'>+    void *argument;</div><div class='add'>+</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+    void *fake_stack;</div><div class='add'>+    void *stack_base;</div><div class='add'>+    size_t stack_size;</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='ctx'> </div><div class='del'>-typedef COROUTINE(* coroutine_start)(coroutine_context *from, coroutine_context *self);</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static inline void coroutine_initialize(</div><div class='del'>-    coroutine_context *context,</div><div class='add'>+    struct coroutine_context *context,</div><div class='ctx'>     coroutine_start start,</div><div class='del'>-    void *stack_pointer,</div><div class='del'>-    size_t stack_size</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='ctx'> ) {</div><div class='del'>-    /* Force 16-byte alignment */</div><div class='del'>-    context-&gt;stack_pointer = (void**)((uintptr_t)stack_pointer &amp; ~0xF);</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='ctx'> </div><div class='del'>-    if (!start) {</div><div class='del'>-        assert(!context-&gt;stack_pointer);</div><div class='del'>-        /* We are main coroutine for this thread */</div><div class='del'>-        return;</div><div class='del'>-    }</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+    context-&gt;fake_stack = NULL;</div><div class='add'>+    context-&gt;stack_base = stack;</div><div class='add'>+    context-&gt;stack_size = size;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    // Stack grows down. Force 16-byte alignment.</div><div class='add'>+    char * top = (char*)stack + size;</div><div class='add'>+    context-&gt;stack_pointer = (void**)((uintptr_t)top &amp; ~0xF);</div><div class='ctx'> </div><div class='ctx'>     *--context-&gt;stack_pointer = NULL;</div><div class='ctx'>     *--context-&gt;stack_pointer = (void*)start;</div><div class='hunk'>@@ -47,13 +75,11 @@ static inline void coroutine_initialize(</div><div class='ctx'>     memset(context-&gt;stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-coroutine_context * coroutine_transfer(coroutine_context * current, coroutine_context * target);</div><div class='add'>+struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target);</div><div class='ctx'> </div><div class='del'>-static inline void coroutine_destroy(coroutine_context * context)</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='ctx'> {</div><div class='ctx'>     context-&gt;stack_pointer = NULL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='add'>+#endif /* COROUTINE_AMD64_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/arm32/Context.S b/coroutine/arm32/Context.S<br/>index c2b93d0a34..1850c4c408 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/arm32/Context.S?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/arm32/Context.S</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/arm32/Context.S?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/arm32/Context.S</a></div><div class='hunk'>@@ -2,13 +2,32 @@</div><div class='ctx'> ##  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'> ##</div><div class='ctx'> ##  Created by Samuel Williams on 10/5/2018.</div><div class='del'>-##  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+##  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> ##</div><div class='ctx'> </div><div class='add'>+#define TOKEN_PASTE(x,y) x##y</div><div class='add'>+#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)</div><div class='add'>+</div><div class='add'>+.file "Context.S"</div><div class='ctx'> .text</div><div class='add'>+.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)</div><div class='add'>+.align 2</div><div class='add'>+.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer),%function</div><div class='add'>+.syntax unified</div><div class='add'>+</div><div class='add'>+PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):</div><div class='add'>+	# Save caller state (8 registers + return address)</div><div class='add'>+	push {r4-r11,lr}</div><div class='add'>+</div><div class='add'>+	# Save caller stack pointer</div><div class='add'>+	str sp, [r0]</div><div class='add'>+</div><div class='add'>+	# Restore callee stack pointer</div><div class='add'>+	ldr sp, [r1]</div><div class='add'>+</div><div class='add'>+	# Restore callee state (8 registers program counter)</div><div class='add'>+	pop {r4-r11,pc}</div><div class='ctx'> </div><div class='del'>-.globl coroutine_transfer</div><div class='del'>-coroutine_transfer:</div><div class='del'>-	stmia r1!, {r4-r11,sp,lr}</div><div class='del'>-	ldmia r0!, {r4-r11,sp,pc}</div><div class='del'>-	bx lr</div><div class='add'>+#if defined(__linux__) &amp;&amp; defined(__ELF__)</div><div class='add'>+.section .note.GNU-stack,"",%progbits</div><div class='add'>+#endif</div><div class='head'>diff --git a/coroutine/arm32/Context.h b/coroutine/arm32/Context.h<br/>index 60732df7a0..09410eb25d 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/arm32/Context.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/arm32/Context.h</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/arm32/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/arm32/Context.h</a></div><div class='hunk'>@@ -1,43 +1,48 @@</div><div class='add'>+#ifndef COROUTINE_ARM32_CONTEXT_H</div><div class='add'>+#define COROUTINE_ARM32_CONTEXT_H 1</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'>  *</div><div class='ctx'>  *  Created by Samuel Williams on 10/5/2018.</div><div class='del'>- *  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+ *  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> */</div><div class='ctx'> </div><div class='ctx'> #pragma once</div><div class='ctx'> </div><div class='ctx'> #include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='ctx'> #include &lt;string.h&gt;</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #define COROUTINE __attribute__((noreturn)) void</div><div class='add'>+#define COROUTINE_LIMITED_ADDRESS_SPACE</div><div class='ctx'> </div><div class='del'>-const size_t COROUTINE_REGISTERS = 9;</div><div class='add'>+enum {COROUTINE_REGISTERS = 8};</div><div class='ctx'> </div><div class='del'>-typedef struct</div><div class='add'>+struct coroutine_context</div><div class='ctx'> {</div><div class='ctx'>     void **stack_pointer;</div><div class='del'>-} coroutine_context;</div><div class='add'>+    void *argument;</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-typedef COROUTINE(* coroutine_start)(coroutine_context *from, coroutine_context *self);</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static inline void coroutine_initialize(</div><div class='del'>-    coroutine_context *context,</div><div class='add'>+    struct coroutine_context *context,</div><div class='ctx'>     coroutine_start start,</div><div class='del'>-    void *stack_pointer,</div><div class='del'>-    size_t stack_size</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='ctx'> ) {</div><div class='del'>-    context-&gt;stack_pointer = (void**)stack_pointer;</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='ctx'> </div><div class='del'>-    if (!start) {</div><div class='del'>-        assert(!context-&gt;stack_pointer);</div><div class='del'>-        /* We are main coroutine for this thread */</div><div class='del'>-        return;</div><div class='del'>-    }</div><div class='add'>+    // Stack grows down. Force 16-byte alignment.</div><div class='add'>+    char * top = (char*)stack + size;</div><div class='add'>+    context-&gt;stack_pointer = (void**)((uintptr_t)top &amp; ~0xF);</div><div class='ctx'> </div><div class='ctx'>     *--context-&gt;stack_pointer = (void*)start;</div><div class='ctx'> </div><div class='hunk'>@@ -45,12 +50,10 @@ static inline void coroutine_initialize(</div><div class='ctx'>     memset(context-&gt;stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-coroutine_context * coroutine_transfer(coroutine_context * current, coroutine_context * target);</div><div class='add'>+struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target);</div><div class='ctx'> </div><div class='del'>-static inline void coroutine_destroy(coroutine_context * context)</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='ctx'> {</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='add'>+#endif /* COROUTINE_ARM32_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/arm64/Context.S b/coroutine/arm64/Context.S<br/>index f6e5f0a6bc..07d50d30df 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/arm64/Context.S?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/arm64/Context.S</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/arm64/Context.S?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/arm64/Context.S</a></div><div class='hunk'>@@ -2,18 +2,28 @@</div><div class='ctx'> ##  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'> ##</div><div class='ctx'> ##  Created by Samuel Williams on 10/5/2018.</div><div class='del'>-##  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+##  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> ##</div><div class='ctx'> </div><div class='add'>+#define TOKEN_PASTE(x,y) x##y</div><div class='add'>+#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)</div><div class='add'>+</div><div class='add'>+#if defined(__APPLE__)</div><div class='add'>+#define x29 fp</div><div class='add'>+#define x30 lr</div><div class='add'>+.text</div><div class='add'>+.p2align 2</div><div class='add'>+#else</div><div class='ctx'> .text</div><div class='ctx'> .align 2</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-.global coroutine_transfer</div><div class='del'>-coroutine_transfer:</div><div class='add'>+.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)</div><div class='add'>+PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):</div><div class='ctx'> </div><div class='ctx'> 	# Make space on the stack for caller registers</div><div class='ctx'> 	sub sp, sp, 0xb0</div><div class='del'>-	</div><div class='add'>+</div><div class='ctx'> 	# Save caller registers</div><div class='ctx'> 	stp d8, d9, [sp, 0x00]</div><div class='ctx'> 	stp d10, d11, [sp, 0x10]</div><div class='hunk'>@@ -57,3 +67,7 @@ coroutine_transfer:</div><div class='ctx'> </div><div class='ctx'> 	# Jump to return address (in x4)</div><div class='ctx'> 	ret x4</div><div class='add'>+</div><div class='add'>+#if defined(__linux__) &amp;&amp; defined(__ELF__)</div><div class='add'>+.section .note.GNU-stack,"",%progbits</div><div class='add'>+#endif</div><div class='head'>diff --git a/coroutine/arm64/Context.h b/coroutine/arm64/Context.h<br/>index 03b91fd937..1472621f48 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/arm64/Context.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/arm64/Context.h</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/arm64/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/arm64/Context.h</a></div><div class='hunk'>@@ -1,44 +1,72 @@</div><div class='add'>+#ifndef COROUTINE_ARM64_CONTEXT_H</div><div class='add'>+#define COROUTINE_ARM64_CONTEXT_H 1</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'>  *</div><div class='ctx'>  *  Created by Samuel Williams on 10/5/2018.</div><div class='del'>- *  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+ *  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> */</div><div class='ctx'> </div><div class='ctx'> #pragma once</div><div class='ctx'> </div><div class='ctx'> #include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='ctx'> #include &lt;string.h&gt;</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #define COROUTINE __attribute__((noreturn)) void</div><div class='ctx'> </div><div class='del'>-const size_t COROUTINE_REGISTERS = 0xb0 / 8;</div><div class='add'>+enum {COROUTINE_REGISTERS = 0xb0 / 8};</div><div class='add'>+</div><div class='add'>+#if defined(__SANITIZE_ADDRESS__)</div><div class='add'>+    #define COROUTINE_SANITIZE_ADDRESS</div><div class='add'>+#elif defined(__has_feature)</div><div class='add'>+    #if __has_feature(address_sanitizer)</div><div class='add'>+        #define COROUTINE_SANITIZE_ADDRESS</div><div class='add'>+    #endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+#include &lt;sanitizer/common_interface_defs.h&gt;</div><div class='add'>+#include &lt;sanitizer/asan_interface.h&gt;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-typedef struct</div><div class='add'>+struct coroutine_context</div><div class='ctx'> {</div><div class='ctx'>     void **stack_pointer;</div><div class='del'>-} coroutine_context;</div><div class='add'>+    void *argument;</div><div class='ctx'> </div><div class='del'>-typedef COROUTINE(* coroutine_start)(coroutine_context *from, coroutine_context *self);</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+    void *fake_stack;</div><div class='add'>+    void *stack_base;</div><div class='add'>+    size_t stack_size;</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static inline void coroutine_initialize(</div><div class='del'>-    coroutine_context *context,</div><div class='add'>+    struct coroutine_context *context,</div><div class='ctx'>     coroutine_start start,</div><div class='del'>-    void *stack_pointer,</div><div class='del'>-    size_t stack_size</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='ctx'> ) {</div><div class='del'>-    /* Force 16-byte alignment */</div><div class='del'>-    context-&gt;stack_pointer = (void**)((uintptr_t)stack_pointer &amp; ~0xF);</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='ctx'> </div><div class='del'>-    if (!start) {</div><div class='del'>-        assert(!context-&gt;stack_pointer);</div><div class='del'>-        /* We are main coroutine for this thread */</div><div class='del'>-        return;</div><div class='del'>-    }</div><div class='add'>+#if defined(COROUTINE_SANITIZE_ADDRESS)</div><div class='add'>+    context-&gt;fake_stack = NULL;</div><div class='add'>+    context-&gt;stack_base = stack;</div><div class='add'>+    context-&gt;stack_size = size;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    // Stack grows down. Force 16-byte alignment.</div><div class='add'>+    char * top = (char*)stack + size;</div><div class='add'>+    context-&gt;stack_pointer = (void**)((uintptr_t)top &amp; ~0xF);</div><div class='ctx'> </div><div class='ctx'>     context-&gt;stack_pointer -= COROUTINE_REGISTERS;</div><div class='ctx'>     memset(context-&gt;stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS);</div><div class='hunk'>@@ -46,12 +74,10 @@ static inline void coroutine_initialize(</div><div class='ctx'>     context-&gt;stack_pointer[0xa0 / 8] = (void*)start;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-coroutine_context * coroutine_transfer(coroutine_context * current, coroutine_context * target);</div><div class='add'>+struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target);</div><div class='ctx'> </div><div class='del'>-static inline void coroutine_destroy(coroutine_context * context)</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='ctx'> {</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='add'>+#endif /* COROUTINE_ARM64_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/asyncify/Context.c b/coroutine/asyncify/Context.c<br/>new file mode 100644<br/>index 0000000000..303e5f4429<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/asyncify/Context.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/asyncify/Context.c</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+#include "Context.h"</div><div class='add'>+</div><div class='add'>+void coroutine_trampoline(void * _start, void * _context)</div><div class='add'>+{</div><div class='add'>+    coroutine_start start = (coroutine_start)_start;</div><div class='add'>+    struct coroutine_context * context = _context;</div><div class='add'>+    rb_wasm_set_stack_pointer(context-&gt;current_sp);</div><div class='add'>+</div><div class='add'>+    start(context-&gt;from, context);</div><div class='add'>+}</div><div class='head'>diff --git a/coroutine/asyncify/Context.h b/coroutine/asyncify/Context.h<br/>new file mode 100644<br/>index 0000000000..71791a4004<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/asyncify/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/asyncify/Context.h</a></div><div class='hunk'>@@ -0,0 +1,93 @@</div><div class='add'>+#ifndef COROUTINE_ASYNCIFY_CONTEXT_H</div><div class='add'>+#define COROUTINE_ASYNCIFY_CONTEXT_H</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ This is a coroutine implementation based on Binaryen's Asyncify transformation for WebAssembly.</div><div class='add'>+</div><div class='add'>+ This implementation is built on low-level ucontext-like API in wasm/fiber.c</div><div class='add'>+ This file is an adapter for the common coroutine interface and for stack manipulation.</div><div class='add'>+ wasm/fiber.c doesn't take care of stack to avoid duplicate management with this adapter.</div><div class='add'>+</div><div class='add'>+ * See also: wasm/fiber.c</div><div class='add'>+*/</div><div class='add'>+</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='add'>+#include "wasm/asyncify.h"</div><div class='add'>+#include "wasm/machine.h"</div><div class='add'>+#include "wasm/fiber.h"</div><div class='add'>+</div><div class='add'>+#define COROUTINE void __attribute__((__noreturn__))</div><div class='add'>+</div><div class='add'>+static const int ASYNCIFY_CORO_DEBUG = 0;</div><div class='add'>+</div><div class='add'>+struct coroutine_context</div><div class='add'>+{</div><div class='add'>+    rb_wasm_fiber_context fc;</div><div class='add'>+    void *argument;</div><div class='add'>+    struct coroutine_context *from;</div><div class='add'>+</div><div class='add'>+    void *current_sp;</div><div class='add'>+    void *stack_base;</div><div class='add'>+    size_t size;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='add'>+</div><div class='add'>+COROUTINE coroutine_trampoline(void * _start, void * _context);</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context)</div><div class='add'>+{</div><div class='add'>+    if (ASYNCIFY_CORO_DEBUG) fprintf(stderr, "[%s] entry (context = %p)\n", __func__, context);</div><div class='add'>+    // NULL fiber entry means it's the main fiber, and handled specially.</div><div class='add'>+    rb_wasm_init_context(&amp;context-&gt;fc, NULL, NULL, NULL);</div><div class='add'>+    // mark the main fiber has already started</div><div class='add'>+    context-&gt;fc.is_started = true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize(struct coroutine_context *context, coroutine_start start, void *stack, size_t size)</div><div class='add'>+{</div><div class='add'>+    // Linear stack pointer must be always aligned down to 16 bytes.</div><div class='add'>+    // https://github.com/WebAssembly/tool-conventions/blob/c74267a5897c1bdc9aa60adeaf41816387d3cd12/BasicCABI.md#the-linear-stack</div><div class='add'>+    uintptr_t sp = ((uintptr_t)stack + size) &amp; ~0xF;</div><div class='add'>+    if (ASYNCIFY_CORO_DEBUG) fprintf(stderr, "[%s] entry (context = %p, stack = %p ... %p)\n", __func__, context, stack, (char *)sp);</div><div class='add'>+    rb_wasm_init_context(&amp;context-&gt;fc, coroutine_trampoline, start, context);</div><div class='add'>+    // record the initial stack pointer position to restore it after resumption</div><div class='add'>+    context-&gt;current_sp = (char *)sp;</div><div class='add'>+    context-&gt;stack_base = stack;</div><div class='add'>+    context-&gt;size = size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target)</div><div class='add'>+{</div><div class='add'>+    if (ASYNCIFY_CORO_DEBUG) fprintf(stderr, "[%s] entry (current = %p, target = %p)\n", __func__, current, target);</div><div class='add'>+    struct coroutine_context * previous = target-&gt;from;</div><div class='add'>+</div><div class='add'>+    target-&gt;from = current;</div><div class='add'>+    if (ASYNCIFY_CORO_DEBUG) fprintf(stderr, "[%s] current-&gt;current_sp = %p -&gt; %p\n", __func__, current-&gt;current_sp, rb_wasm_get_stack_pointer());</div><div class='add'>+    // record the current stack pointer position to restore it after resumption</div><div class='add'>+    current-&gt;current_sp = rb_wasm_get_stack_pointer();</div><div class='add'>+</div><div class='add'>+    // suspend the current coroutine and resume another coroutine</div><div class='add'>+</div><div class='add'>+    rb_wasm_swapcontext(&amp;current-&gt;fc, &amp;target-&gt;fc);</div><div class='add'>+</div><div class='add'>+    // after the original coroutine resumed</div><div class='add'>+</div><div class='add'>+    rb_wasm_set_stack_pointer(current-&gt;current_sp);</div><div class='add'>+</div><div class='add'>+    target-&gt;from = previous;</div><div class='add'>+</div><div class='add'>+    return target;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='add'>+{</div><div class='add'>+    if (ASYNCIFY_CORO_DEBUG) fprintf(stderr, "[%s] entry (context = %p)\n", __func__, context);</div><div class='add'>+    context-&gt;stack_base = NULL;</div><div class='add'>+    context-&gt;size = 0;</div><div class='add'>+    context-&gt;from = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* COROUTINE_ASYNCIFY_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/emscripten/Context.c b/coroutine/emscripten/Context.c<br/>new file mode 100644<br/>index 0000000000..75c088daaa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/emscripten/Context.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/emscripten/Context.c</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+#include "Context.h"</div><div class='add'>+</div><div class='add'>+void coroutine_trampoline(void * _context)</div><div class='add'>+{</div><div class='add'>+    struct coroutine_context * context = _context;</div><div class='add'>+</div><div class='add'>+    context-&gt;entry_func(context-&gt;from, context);</div><div class='add'>+}</div><div class='head'>diff --git a/coroutine/emscripten/Context.h b/coroutine/emscripten/Context.h<br/>new file mode 100644<br/>index 0000000000..361e241685<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/emscripten/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/emscripten/Context.h</a></div><div class='hunk'>@@ -0,0 +1,77 @@</div><div class='add'>+#ifndef COROUTINE_EMSCRIPTEN_CONTEXT_H</div><div class='add'>+#define COROUTINE_EMSCRIPTEN_CONTEXT_H 1</div><div class='add'>+</div><div class='add'>+/* An experimental coroutine wrapper for emscripten</div><div class='add'>+ * Contact on Yusuke Endoh if you encounter any problem about this</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#pragma once</div><div class='add'>+</div><div class='add'>+#include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;emscripten/fiber.h&gt;</div><div class='add'>+</div><div class='add'>+#define COROUTINE __attribute__((noreturn)) void</div><div class='add'>+</div><div class='add'>+#if INTPTR_MAX &lt;= INT32_MAX</div><div class='add'>+#define COROUTINE_LIMITED_ADDRESS_SPACE</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct coroutine_context;</div><div class='add'>+</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='add'>+</div><div class='add'>+struct coroutine_context</div><div class='add'>+{</div><div class='add'>+    emscripten_fiber_t state;</div><div class='add'>+    coroutine_start entry_func;</div><div class='add'>+    struct coroutine_context * from;</div><div class='add'>+    void *argument;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+COROUTINE coroutine_trampoline(void * _context);</div><div class='add'>+</div><div class='add'>+#define MAIN_ASYNCIFY_STACK_SIZE 65536</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    static char asyncify_stack[MAIN_ASYNCIFY_STACK_SIZE];</div><div class='add'>+    emscripten_fiber_init_from_current_context(&amp;context-&gt;state, asyncify_stack, MAIN_ASYNCIFY_STACK_SIZE);</div><div class='add'>+}</div><div class='add'>+#undef MAIN_ASYNCIFY_STACK_SIZE</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize(</div><div class='add'>+    struct coroutine_context *context,</div><div class='add'>+    coroutine_start start,</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='add'>+) {</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='add'>+</div><div class='add'>+    uintptr_t addr = (uintptr_t)stack;</div><div class='add'>+    size_t offset = addr &amp; 0xF;</div><div class='add'>+    void *c_stack = (void*)((addr + 0xF) &amp; ~0xF);</div><div class='add'>+    size -= offset;</div><div class='add'>+    size_t c_stack_size = (size / 2) &amp; ~0xF;</div><div class='add'>+    void *asyncify_stack = (void*)((uintptr_t)c_stack + c_stack_size);</div><div class='add'>+    size_t asyncify_stack_size = size - c_stack_size;</div><div class='add'>+    context-&gt;entry_func = start;</div><div class='add'>+</div><div class='add'>+    emscripten_fiber_init(&amp;context-&gt;state, coroutine_trampoline, context, c_stack, c_stack_size, asyncify_stack, asyncify_stack_size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target)</div><div class='add'>+{</div><div class='add'>+    struct coroutine_context * previous = target-&gt;from;</div><div class='add'>+</div><div class='add'>+    target-&gt;from = current;</div><div class='add'>+    emscripten_fiber_swap(&amp;current-&gt;state, &amp;target-&gt;state);</div><div class='add'>+    target-&gt;from = previous;</div><div class='add'>+</div><div class='add'>+    return target;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='add'>+{</div><div class='add'>+    context-&gt;from = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* COROUTINE_EMSCRIPTEN_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/ppc/Context.S b/coroutine/ppc/Context.S<br/>new file mode 100644<br/>index 0000000000..cdda93e179<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/ppc/Context.S?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/ppc/Context.S</a></div><div class='hunk'>@@ -0,0 +1,90 @@</div><div class='add'>+; Based on the code by Samuel Williams. Created by Sergey Fedorov on 04/06/2022.</div><div class='add'>+; Credits to Samuel Williams, Rei Odaira and Iain Sandoe. Errors, if any, are mine.</div><div class='add'>+; Some relevant examples: https://github.com/gcc-mirror/gcc/blob/master/libphobos/libdruntime/config/powerpc/switchcontext.S</div><div class='add'>+; https://github.com/gcc-mirror/gcc/blob/master/libgcc/config/rs6000/darwin-gpsave.S</div><div class='add'>+; https://www.ibm.com/docs/en/aix/7.2?topic=epilogs-saving-gprs-only</div><div class='add'>+; ppc32 version may be re-written compactly with stmw/lwm, but the code wonÊ¼t be faster, see: https://github.com/ruby/ruby/pull/5927#issuecomment-1139730541</div><div class='add'>+</div><div class='add'>+; Notice that this code is only for Darwin (macOS). Darwin ABI differs from AIX and ELF.</div><div class='add'>+; To add support for AIX, *BSD or *Linux, please make separate implementations.</div><div class='add'>+</div><div class='add'>+#define TOKEN_PASTE(x,y) x##y</div><div class='add'>+#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)</div><div class='add'>+</div><div class='add'>+.machine ppc7400 ; = G4, Rosetta</div><div class='add'>+.text</div><div class='add'>+</div><div class='add'>+.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)</div><div class='add'>+.align 2</div><div class='add'>+</div><div class='add'>+PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):</div><div class='add'>+	; Make space on the stack for caller registers</div><div class='add'>+	; (Should we rather use red zone? See libphobos example.)</div><div class='add'>+	subi r1,r1,80</div><div class='add'>+</div><div class='add'>+	; Get LR</div><div class='add'>+	mflr r0</div><div class='add'>+</div><div class='add'>+	; Save caller registers</div><div class='add'>+	stw r31,0(r1)</div><div class='add'>+	stw r30,4(r1)</div><div class='add'>+	stw r29,8(r1)</div><div class='add'>+	stw r28,12(r1)</div><div class='add'>+	stw r27,16(r1)</div><div class='add'>+	stw r26,20(r1)</div><div class='add'>+	stw r25,24(r1)</div><div class='add'>+	stw r24,28(r1)</div><div class='add'>+	stw r23,32(r1)</div><div class='add'>+	stw r22,36(r1)</div><div class='add'>+	stw r21,40(r1)</div><div class='add'>+	stw r20,44(r1)</div><div class='add'>+	stw r19,48(r1)</div><div class='add'>+	stw r18,52(r1)</div><div class='add'>+	stw r17,56(r1)</div><div class='add'>+	stw r16,60(r1)</div><div class='add'>+	stw r15,64(r1)</div><div class='add'>+	stw r14,68(r1)</div><div class='add'>+	stw r13,72(r1)</div><div class='add'>+</div><div class='add'>+	; Save return address</div><div class='add'>+	; Possibly should rather be saved into linkage area, see libphobos and IBM docs</div><div class='add'>+	stw r0,76(r1)</div><div class='add'>+</div><div class='add'>+	; Save stack pointer to first argument</div><div class='add'>+	stw r1,0(r3)</div><div class='add'>+</div><div class='add'>+	; Load stack pointer from second argument</div><div class='add'>+	lwz r1,0(r4)</div><div class='add'>+</div><div class='add'>+	; Load return address</div><div class='add'>+	lwz r0,76(r1)</div><div class='add'>+</div><div class='add'>+	; Restore caller registers</div><div class='add'>+	lwz r13,72(r1)</div><div class='add'>+	lwz r14,68(r1)</div><div class='add'>+	lwz r15,64(r1)</div><div class='add'>+	lwz r16,60(r1)</div><div class='add'>+	lwz r17,56(r1)</div><div class='add'>+	lwz r18,52(r1)</div><div class='add'>+	lwz r19,48(r1)</div><div class='add'>+	lwz r20,44(r1)</div><div class='add'>+	lwz r21,40(r1)</div><div class='add'>+	lwz r22,36(r1)</div><div class='add'>+	lwz r23,32(r1)</div><div class='add'>+	lwz r24,28(r1)</div><div class='add'>+	lwz r25,24(r1)</div><div class='add'>+	lwz r26,20(r1)</div><div class='add'>+	lwz r27,16(r1)</div><div class='add'>+	lwz r28,12(r1)</div><div class='add'>+	lwz r29,8(r1)</div><div class='add'>+	lwz r30,4(r1)</div><div class='add'>+	lwz r31,0(r1)</div><div class='add'>+</div><div class='add'>+	; Set LR</div><div class='add'>+	mtlr r0</div><div class='add'>+</div><div class='add'>+	; Pop stack frame</div><div class='add'>+	addi r1,r1,80</div><div class='add'>+</div><div class='add'>+	; Jump to return address</div><div class='add'>+	blr</div><div class='head'>diff --git a/coroutine/ppc/Context.h b/coroutine/ppc/Context.h<br/>new file mode 100644<br/>index 0000000000..1fce112579<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/ppc/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/ppc/Context.h</a></div><div class='hunk'>@@ -0,0 +1,58 @@</div><div class='add'>+#ifndef COROUTINE_PPC_CONTEXT_H</div><div class='add'>+#define COROUTINE_PPC_CONTEXT_H 1</div><div class='add'>+</div><div class='add'>+#pragma once</div><div class='add'>+</div><div class='add'>+#include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='add'>+#include &lt;string.h&gt;</div><div class='add'>+</div><div class='add'>+#define COROUTINE __attribute__((noreturn)) void</div><div class='add'>+#define COROUTINE_LIMITED_ADDRESS_SPACE</div><div class='add'>+</div><div class='add'>+enum {</div><div class='add'>+  COROUTINE_REGISTERS =</div><div class='add'>+  20  /* 19 general purpose registers (r13â€“r31) and 1 return address */</div><div class='add'>+  + 4  /* space for fiber_entry() to store the link register */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct coroutine_context</div><div class='add'>+{</div><div class='add'>+    void **stack_pointer;</div><div class='add'>+    void *argument;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize(</div><div class='add'>+    struct coroutine_context *context,</div><div class='add'>+    coroutine_start start,</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='add'>+) {</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='add'>+</div><div class='add'>+    // Stack grows down. Force 16-byte alignment.</div><div class='add'>+    char * top = (char*)stack + size;</div><div class='add'>+    context-&gt;stack_pointer = (void**)((uintptr_t)top &amp; ~0xF);</div><div class='add'>+</div><div class='add'>+    context-&gt;stack_pointer -= COROUTINE_REGISTERS;</div><div class='add'>+    memset(context-&gt;stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS);</div><div class='add'>+</div><div class='add'>+    /* Skip a global prologue that sets the TOC register */</div><div class='add'>+    context-&gt;stack_pointer[19] = ((char*)start) + 8;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target);</div><div class='add'>+</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='add'>+{</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* COROUTINE_PPC_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/ppc64/Context.S b/coroutine/ppc64/Context.S<br/>new file mode 100644<br/>index 0000000000..f8561e0e7d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/ppc64/Context.S?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/ppc64/Context.S</a></div><div class='hunk'>@@ -0,0 +1,89 @@</div><div class='add'>+; Based on the code by Samuel Williams. Created by Sergey Fedorov on 04/06/2022.</div><div class='add'>+; Credits to Samuel Williams, Rei Odaira and Iain Sandoe. Errors, if any, are mine.</div><div class='add'>+; Some relevant examples: https://github.com/gcc-mirror/gcc/blob/master/libphobos/libdruntime/config/powerpc/switchcontext.S</div><div class='add'>+; https://github.com/gcc-mirror/gcc/blob/master/libgcc/config/rs6000/darwin-gpsave.S</div><div class='add'>+; https://www.ibm.com/docs/en/aix/7.2?topic=epilogs-saving-gprs-only</div><div class='add'>+</div><div class='add'>+; Notice that this code is only for Darwin (macOS). Darwin ABI differs from AIX and ELF.</div><div class='add'>+; To add support for AIX, *BSD or *Linux, please make separate implementations.</div><div class='add'>+</div><div class='add'>+#define TOKEN_PASTE(x,y) x##y</div><div class='add'>+#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)</div><div class='add'>+</div><div class='add'>+.machine ppc64 ; = G5</div><div class='add'>+.text</div><div class='add'>+</div><div class='add'>+.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)</div><div class='add'>+.align 2</div><div class='add'>+</div><div class='add'>+PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):</div><div class='add'>+	; Make space on the stack for caller registers</div><div class='add'>+	; (Should we rather use red zone? See libphobos example.)</div><div class='add'>+	subi r1,r1,160</div><div class='add'>+</div><div class='add'>+	; Get LR</div><div class='add'>+	mflr r0</div><div class='add'>+</div><div class='add'>+	; Save caller registers</div><div class='add'>+	std r31,0(r1)</div><div class='add'>+	std r30,8(r1)</div><div class='add'>+	std r29,16(r1)</div><div class='add'>+	std r28,24(r1)</div><div class='add'>+	std r27,32(r1)</div><div class='add'>+	std r26,40(r1)</div><div class='add'>+	std r25,48(r1)</div><div class='add'>+	std r24,56(r1)</div><div class='add'>+	std r23,64(r1)</div><div class='add'>+	std r22,72(r1)</div><div class='add'>+	std r21,80(r1)</div><div class='add'>+	std r20,88(r1)</div><div class='add'>+	std r19,96(r1)</div><div class='add'>+	std r18,104(r1)</div><div class='add'>+	std r17,112(r1)</div><div class='add'>+	std r16,120(r1)</div><div class='add'>+	std r15,128(r1)</div><div class='add'>+	std r14,136(r1)</div><div class='add'>+	std r13,144(r1)</div><div class='add'>+</div><div class='add'>+	; Save return address</div><div class='add'>+	; Possibly should rather be saved into linkage area, see libphobos and IBM docs</div><div class='add'>+	std r0,152(r1)</div><div class='add'>+</div><div class='add'>+	; Save stack pointer to first argument</div><div class='add'>+	std r1,0(r3)</div><div class='add'>+</div><div class='add'>+	; Load stack pointer from second argument</div><div class='add'>+	ld r1,0(r4)</div><div class='add'>+</div><div class='add'>+	; Load return address</div><div class='add'>+	ld r0,152(r1)</div><div class='add'>+</div><div class='add'>+	; Restore caller registers</div><div class='add'>+	ld r13,144(r1)</div><div class='add'>+	ld r14,136(r1)</div><div class='add'>+	ld r15,128(r1)</div><div class='add'>+	ld r16,120(r1)</div><div class='add'>+	ld r17,112(r1)</div><div class='add'>+	ld r18,104(r1)</div><div class='add'>+	ld r19,96(r1)</div><div class='add'>+	ld r20,88(r1)</div><div class='add'>+	ld r21,80(r1)</div><div class='add'>+	ld r22,72(r1)</div><div class='add'>+	ld r23,64(r1)</div><div class='add'>+	ld r24,56(r1)</div><div class='add'>+	ld r25,48(r1)</div><div class='add'>+	ld r26,40(r1)</div><div class='add'>+	ld r27,32(r1)</div><div class='add'>+	ld r28,24(r1)</div><div class='add'>+	ld r29,16(r1)</div><div class='add'>+	ld r30,8(r1)</div><div class='add'>+	ld r31,0(r1)</div><div class='add'>+</div><div class='add'>+	; Set LR</div><div class='add'>+	mtlr r0</div><div class='add'>+</div><div class='add'>+	; Pop stack frame</div><div class='add'>+	addi r1,r1,160</div><div class='add'>+</div><div class='add'>+	; Jump to return address</div><div class='add'>+	blr</div><div class='head'>diff --git a/coroutine/ppc64/Context.h b/coroutine/ppc64/Context.h<br/>new file mode 100644<br/>index 0000000000..3e6f77f55a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/ppc64/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/ppc64/Context.h</a></div><div class='hunk'>@@ -0,0 +1,57 @@</div><div class='add'>+#ifndef COROUTINE_PPC64_CONTEXT_H</div><div class='add'>+#define COROUTINE_PPC64_CONTEXT_H 1</div><div class='add'>+</div><div class='add'>+#pragma once</div><div class='add'>+</div><div class='add'>+#include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='add'>+#include &lt;string.h&gt;</div><div class='add'>+</div><div class='add'>+#define COROUTINE __attribute__((noreturn)) void</div><div class='add'>+</div><div class='add'>+enum {</div><div class='add'>+  COROUTINE_REGISTERS =</div><div class='add'>+  20  /* 19 general purpose registers (r13â€“r31) and 1 return address */</div><div class='add'>+  + 4  /* space for fiber_entry() to store the link register */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct coroutine_context</div><div class='add'>+{</div><div class='add'>+    void **stack_pointer;</div><div class='add'>+    void *argument;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize(</div><div class='add'>+    struct coroutine_context *context,</div><div class='add'>+    coroutine_start start,</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='add'>+) {</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='add'>+</div><div class='add'>+    // Stack grows down. Force 16-byte alignment.</div><div class='add'>+    char * top = (char*)stack + size;</div><div class='add'>+    context-&gt;stack_pointer = (void**)((uintptr_t)top &amp; ~0xF);</div><div class='add'>+</div><div class='add'>+    context-&gt;stack_pointer -= COROUTINE_REGISTERS;</div><div class='add'>+    memset(context-&gt;stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS);</div><div class='add'>+</div><div class='add'>+    /* Skip a global prologue that sets the TOC register */</div><div class='add'>+    context-&gt;stack_pointer[19] = ((char*)start) + 8;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target);</div><div class='add'>+</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='add'>+{</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* COROUTINE_PPC64_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/ppc64le/Context.S b/coroutine/ppc64le/Context.S<br/>index 1b39086f8f..61be9efcf0 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/ppc64le/Context.S?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/ppc64le/Context.S</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/ppc64le/Context.S?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/ppc64le/Context.S</a></div><div class='hunk'>@@ -1,9 +1,12 @@</div><div class='add'>+#define TOKEN_PASTE(x,y) x##y</div><div class='add'>+#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)</div><div class='add'>+</div><div class='ctx'> .text</div><div class='ctx'> .align 2</div><div class='ctx'> </div><div class='del'>-.globl coroutine_transfer</div><div class='del'>-.type   coroutine_transfer, @function</div><div class='del'>-coroutine_transfer:</div><div class='add'>+.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)</div><div class='add'>+.type   PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer), @function</div><div class='add'>+PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):</div><div class='ctx'> 	# Make space on the stack for caller registers</div><div class='ctx'> 	addi 1,1,-152</div><div class='ctx'> </div><div class='head'>diff --git a/coroutine/ppc64le/Context.h b/coroutine/ppc64le/Context.h<br/>index de592f5a46..fbfaa2ee63 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/ppc64le/Context.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/ppc64le/Context.h</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/ppc64le/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/ppc64le/Context.h</a></div><div class='hunk'>@@ -1,39 +1,44 @@</div><div class='add'>+#ifndef COROUTINE_PPC64LE_CONTEXT_H</div><div class='add'>+#define COROUTINE_PPC64LE_CONTEXT_H 1</div><div class='add'>+</div><div class='ctx'> #pragma once</div><div class='ctx'> </div><div class='ctx'> #include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='ctx'> #include &lt;string.h&gt;</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #define COROUTINE __attribute__((noreturn)) void</div><div class='ctx'> </div><div class='del'>-const size_t COROUTINE_REGISTERS =</div><div class='add'>+enum {</div><div class='add'>+  COROUTINE_REGISTERS =</div><div class='ctx'>   19  /* 18 general purpose registers (r14-r31) and 1 return address */</div><div class='del'>-  + 4;  /* space for fiber_entry() to store the link register */</div><div class='add'>+  + 4  /* space for fiber_entry() to store the link register */</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-typedef struct</div><div class='add'>+struct coroutine_context</div><div class='ctx'> {</div><div class='ctx'>     void **stack_pointer;</div><div class='del'>-} coroutine_context;</div><div class='add'>+    void *argument;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='ctx'> </div><div class='del'>-typedef COROUTINE(* coroutine_start)(coroutine_context *from, coroutine_context *self);</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static inline void coroutine_initialize(</div><div class='del'>-    coroutine_context *context,</div><div class='add'>+    struct coroutine_context *context,</div><div class='ctx'>     coroutine_start start,</div><div class='del'>-    void *stack_pointer,</div><div class='del'>-    size_t stack_size</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='ctx'> ) {</div><div class='del'>-    /* Force 16-byte alignment */</div><div class='del'>-    context-&gt;stack_pointer = (void**)((uintptr_t)stack_pointer &amp; ~0xF);</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='ctx'> </div><div class='del'>-    if (!start) {</div><div class='del'>-        assert(!context-&gt;stack_pointer);</div><div class='del'>-        /* We are main coroutine for this thread */</div><div class='del'>-        return;</div><div class='del'>-    }</div><div class='add'>+    // Stack grows down. Force 16-byte alignment.</div><div class='add'>+    char * top = (char*)stack + size;</div><div class='add'>+    context-&gt;stack_pointer = (void**)((uintptr_t)top &amp; ~0xF);</div><div class='ctx'> </div><div class='ctx'>     context-&gt;stack_pointer -= COROUTINE_REGISTERS;</div><div class='ctx'>     memset(context-&gt;stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS);</div><div class='hunk'>@@ -42,13 +47,11 @@ static inline void coroutine_initialize(</div><div class='ctx'>     context-&gt;stack_pointer[18] = ((char*)start) + 8;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-coroutine_context * coroutine_transfer(coroutine_context * current, coroutine_context * target);</div><div class='add'>+struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target);</div><div class='ctx'> </div><div class='del'>-static inline void coroutine_destroy(coroutine_context * context)</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='ctx'> {</div><div class='ctx'>     context-&gt;stack_pointer = NULL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='add'>+#endif /* COROUTINE_PPC64LE_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/pthread/Context.c b/coroutine/pthread/Context.c<br/>new file mode 100644<br/>index 0000000000..38774cda0b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/pthread/Context.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/pthread/Context.c</a></div><div class='hunk'>@@ -0,0 +1,272 @@</div><div class='add'>+/*</div><div class='add'>+ *  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='add'>+ *</div><div class='add'>+ *  Created by Samuel Williams on 24/6/2021.</div><div class='add'>+ *  Copyright, 2021, by Samuel Williams.</div><div class='add'>+*/</div><div class='add'>+</div><div class='add'>+#include "Context.h"</div><div class='add'>+#include &lt;stdlib.h&gt;</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+#include &lt;errno.h&gt;</div><div class='add'>+</div><div class='add'>+static const int DEBUG = 0;</div><div class='add'>+</div><div class='add'>+static</div><div class='add'>+int check(const char * message, int result) {</div><div class='add'>+    if (result) {</div><div class='add'>+        switch (result) {</div><div class='add'>+            case EDEADLK:</div><div class='add'>+                if (DEBUG) fprintf(stderr, "deadlock detected result=%d errno=%d\n", result, errno);</div><div class='add'>+                break;</div><div class='add'>+            default:</div><div class='add'>+                if (DEBUG) fprintf(stderr, "error detected result=%d errno=%d\n", result, errno);</div><div class='add'>+                perror(message);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    assert(result == 0);</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;id = pthread_self();</div><div class='add'>+</div><div class='add'>+    check("coroutine_initialize_main:pthread_cond_init",</div><div class='add'>+        pthread_cond_init(&amp;context-&gt;schedule, NULL)</div><div class='add'>+    );</div><div class='add'>+</div><div class='add'>+    context-&gt;shared = (struct coroutine_shared*)malloc(sizeof(struct coroutine_shared));</div><div class='add'>+    assert(context-&gt;shared);</div><div class='add'>+</div><div class='add'>+    context-&gt;shared-&gt;main = context;</div><div class='add'>+    context-&gt;shared-&gt;count = 1;</div><div class='add'>+</div><div class='add'>+    if (DEBUG) {</div><div class='add'>+        pthread_mutexattr_t attr;</div><div class='add'>+        pthread_mutexattr_init(&amp;attr);</div><div class='add'>+        pthread_mutexattr_settype(&amp;attr, PTHREAD_MUTEX_ERRORCHECK);</div><div class='add'>+</div><div class='add'>+        check("coroutine_initialize_main:pthread_mutex_init",</div><div class='add'>+            pthread_mutex_init(&amp;context-&gt;shared-&gt;guard, &amp;attr)</div><div class='add'>+        );</div><div class='add'>+    } else {</div><div class='add'>+        check("coroutine_initialize_main:pthread_mutex_init",</div><div class='add'>+            pthread_mutex_init(&amp;context-&gt;shared-&gt;guard, NULL)</div><div class='add'>+        );</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static</div><div class='add'>+void coroutine_release(struct coroutine_context *context) {</div><div class='add'>+    if (context-&gt;shared) {</div><div class='add'>+        size_t count = (context-&gt;shared-&gt;count -= 1);</div><div class='add'>+</div><div class='add'>+        if (count == 0) {</div><div class='add'>+            if (DEBUG) fprintf(stderr, "coroutine_release:pthread_mutex_destroy(%p)\n", &amp;context-&gt;shared-&gt;guard);</div><div class='add'>+            pthread_mutex_destroy(&amp;context-&gt;shared-&gt;guard);</div><div class='add'>+            free(context-&gt;shared);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        context-&gt;shared = NULL;</div><div class='add'>+</div><div class='add'>+        if (DEBUG) fprintf(stderr, "coroutine_release:pthread_cond_destroy(%p)\n", &amp;context-&gt;schedule);</div><div class='add'>+        pthread_cond_destroy(&amp;context-&gt;schedule);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void coroutine_initialize(</div><div class='add'>+    struct coroutine_context *context,</div><div class='add'>+    coroutine_start start,</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='add'>+) {</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='add'>+</div><div class='add'>+    // We will create the thread when we first transfer, but save the details now:</div><div class='add'>+    context-&gt;shared = NULL;</div><div class='add'>+    context-&gt;start = start;</div><div class='add'>+    context-&gt;stack = stack;</div><div class='add'>+    context-&gt;size = size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static</div><div class='add'>+int is_locked(pthread_mutex_t * mutex) {</div><div class='add'>+    int result = pthread_mutex_trylock(mutex);</div><div class='add'>+</div><div class='add'>+    // If we could successfully lock the mutex:</div><div class='add'>+    if (result == 0) {</div><div class='add'>+        pthread_mutex_unlock(mutex);</div><div class='add'>+        // We could lock the mutex, so it wasn't locked:</div><div class='add'>+        return 0;</div><div class='add'>+    } else {</div><div class='add'>+        // Otherwise we couldn't lock it because it's already locked:</div><div class='add'>+        return 1;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static</div><div class='add'>+void coroutine_guard_unlock(void * _context)</div><div class='add'>+{</div><div class='add'>+    struct coroutine_context * context = _context;</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "coroutine_guard_unlock:pthread_mutex_unlock\n");</div><div class='add'>+</div><div class='add'>+    check("coroutine_guard_unlock:pthread_mutex_unlock",</div><div class='add'>+        pthread_mutex_unlock(&amp;context-&gt;shared-&gt;guard)</div><div class='add'>+    );</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static</div><div class='add'>+void coroutine_wait(struct coroutine_context *context)</div><div class='add'>+{</div><div class='add'>+    if (DEBUG) fprintf(stderr, "coroutine_wait:pthread_mutex_lock(guard=%p is_locked=%d)\n", &amp;context-&gt;shared-&gt;guard, is_locked(&amp;context-&gt;shared-&gt;guard));</div><div class='add'>+    check("coroutine_wait:pthread_mutex_lock",</div><div class='add'>+        pthread_mutex_lock(&amp;context-&gt;shared-&gt;guard)</div><div class='add'>+    );</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "coroutine_wait:pthread_mutex_unlock(guard)\n");</div><div class='add'>+    pthread_mutex_unlock(&amp;context-&gt;shared-&gt;guard);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static</div><div class='add'>+void coroutine_trampoline_cleanup(void *_context) {</div><div class='add'>+    struct coroutine_context * context = _context;</div><div class='add'>+    coroutine_release(context);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void * coroutine_trampoline(void * _context)</div><div class='add'>+{</div><div class='add'>+    struct coroutine_context * context = _context;</div><div class='add'>+    assert(context-&gt;shared);</div><div class='add'>+</div><div class='add'>+    pthread_cleanup_push(coroutine_trampoline_cleanup, context);</div><div class='add'>+</div><div class='add'>+    coroutine_wait(context);</div><div class='add'>+</div><div class='add'>+    context-&gt;start(context-&gt;from, context);</div><div class='add'>+</div><div class='add'>+    pthread_cleanup_pop(1);</div><div class='add'>+</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static</div><div class='add'>+int coroutine_create_thread(struct coroutine_context *context)</div><div class='add'>+{</div><div class='add'>+    int result;</div><div class='add'>+</div><div class='add'>+    pthread_attr_t attr;</div><div class='add'>+    result = pthread_attr_init(&amp;attr);</div><div class='add'>+    if (result != 0) {</div><div class='add'>+        return result;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    result = pthread_attr_setstack(&amp;attr, context-&gt;stack, (size_t)context-&gt;size);</div><div class='add'>+    if (result != 0) {</div><div class='add'>+        pthread_attr_destroy(&amp;attr);</div><div class='add'>+        return result;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    result = pthread_cond_init(&amp;context-&gt;schedule, NULL);</div><div class='add'>+    if (result != 0) {</div><div class='add'>+        pthread_attr_destroy(&amp;attr);</div><div class='add'>+        return result;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    result = pthread_create(&amp;context-&gt;id, &amp;attr, coroutine_trampoline, context);</div><div class='add'>+    if (result != 0) {</div><div class='add'>+        pthread_attr_destroy(&amp;attr);</div><div class='add'>+        if (DEBUG) fprintf(stderr, "coroutine_create_thread:pthread_cond_destroy(%p)\n", &amp;context-&gt;schedule);</div><div class='add'>+        pthread_cond_destroy(&amp;context-&gt;schedule);</div><div class='add'>+        return result;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    context-&gt;shared-&gt;count += 1;</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target)</div><div class='add'>+{</div><div class='add'>+    assert(current-&gt;shared);</div><div class='add'>+</div><div class='add'>+    struct coroutine_context * previous = target-&gt;from;</div><div class='add'>+    target-&gt;from = current;</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "coroutine_transfer:pthread_mutex_lock(guard=%p is_locked=%d)\n", &amp;current-&gt;shared-&gt;guard, is_locked(&amp;current-&gt;shared-&gt;guard));</div><div class='add'>+    pthread_mutex_lock(&amp;current-&gt;shared-&gt;guard);</div><div class='add'>+    pthread_cleanup_push(coroutine_guard_unlock, current);</div><div class='add'>+</div><div class='add'>+    // First transfer:</div><div class='add'>+    if (target-&gt;shared == NULL) {</div><div class='add'>+        target-&gt;shared = current-&gt;shared;</div><div class='add'>+</div><div class='add'>+        if (DEBUG) fprintf(stderr, "coroutine_transfer:coroutine_create_thread...\n");</div><div class='add'>+        if (coroutine_create_thread(target)) {</div><div class='add'>+            if (DEBUG) fprintf(stderr, "coroutine_transfer:coroutine_create_thread failed\n");</div><div class='add'>+            target-&gt;shared = NULL;</div><div class='add'>+            target-&gt;from = previous;</div><div class='add'>+            return NULL;</div><div class='add'>+        }</div><div class='add'>+    } else {</div><div class='add'>+        if (DEBUG) fprintf(stderr, "coroutine_transfer:pthread_cond_signal(target)\n");</div><div class='add'>+        pthread_cond_signal(&amp;target-&gt;schedule);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // A side effect of acting upon a cancellation request while in a condition wait is that the mutex is (in effect) re-acquired before calling the first cancellation cleanup handler. If cancelled, pthread_cond_wait immediately invokes cleanup handlers.</div><div class='add'>+    if (DEBUG) fprintf(stderr, "coroutine_transfer:pthread_cond_wait(schedule=%p, guard=%p, is_locked=%d)\n", &amp;current-&gt;schedule, &amp;current-&gt;shared-&gt;guard, is_locked(&amp;current-&gt;shared-&gt;guard));</div><div class='add'>+    check("coroutine_transfer:pthread_cond_wait",</div><div class='add'>+        pthread_cond_wait(&amp;current-&gt;schedule, &amp;current-&gt;shared-&gt;guard)</div><div class='add'>+    );</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "coroutine_transfer:pthread_cleanup_pop\n");</div><div class='add'>+    pthread_cleanup_pop(1);</div><div class='add'>+</div><div class='add'>+#ifdef __FreeBSD__</div><div class='add'>+    // Apparently required for FreeBSD:</div><div class='add'>+    pthread_testcancel();</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    target-&gt;from = previous;</div><div class='add'>+</div><div class='add'>+    return target;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static</div><div class='add'>+void coroutine_join(struct coroutine_context * context) {</div><div class='add'>+    if (DEBUG) fprintf(stderr, "coroutine_join:pthread_cancel\n");</div><div class='add'>+    int result = pthread_cancel(context-&gt;id);</div><div class='add'>+    if (result == -1 &amp;&amp; errno == ESRCH) {</div><div class='add'>+        // The thread may be dead due to fork, so it cannot be joined and this doesn't represent a real error:</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    check("coroutine_join:pthread_cancel", result);</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "coroutine_join:pthread_join\n");</div><div class='add'>+    check("coroutine_join:pthread_join",</div><div class='add'>+        pthread_join(context-&gt;id, NULL)</div><div class='add'>+    );</div><div class='add'>+</div><div class='add'>+    if (DEBUG) fprintf(stderr, "coroutine_join:pthread_join done\n");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void coroutine_destroy(struct coroutine_context * context)</div><div class='add'>+{</div><div class='add'>+    if (DEBUG) fprintf(stderr, "coroutine_destroy\n");</div><div class='add'>+</div><div class='add'>+    assert(context);</div><div class='add'>+</div><div class='add'>+    // We are already destroyed or never created:</div><div class='add'>+    if (context-&gt;shared == NULL) return;</div><div class='add'>+</div><div class='add'>+    if (context == context-&gt;shared-&gt;main) {</div><div class='add'>+        context-&gt;shared-&gt;main = NULL;</div><div class='add'>+        coroutine_release(context);</div><div class='add'>+    } else {</div><div class='add'>+        coroutine_join(context);</div><div class='add'>+        assert(context-&gt;shared == NULL);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='head'>diff --git a/coroutine/pthread/Context.h b/coroutine/pthread/Context.h<br/>new file mode 100644<br/>index 0000000000..6d551ee9df<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/pthread/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/pthread/Context.h</a></div><div class='hunk'>@@ -0,0 +1,63 @@</div><div class='add'>+/*</div><div class='add'>+ *  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='add'>+ *</div><div class='add'>+ *  Created by Samuel Williams on 24/6/2021.</div><div class='add'>+ *  Copyright, 2021, by Samuel Williams.</div><div class='add'>+*/</div><div class='add'>+</div><div class='add'>+#pragma once</div><div class='add'>+</div><div class='add'>+#include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;pthread.h&gt;</div><div class='add'>+</div><div class='add'>+#define COROUTINE void</div><div class='add'>+</div><div class='add'>+#define COROUTINE_PTHREAD_CONTEXT</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STDINT_H</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='add'>+#if INTPTR_MAX &lt;= INT32_MAX</div><div class='add'>+#define COROUTINE_LIMITED_ADDRESS_SPACE</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct coroutine_context;</div><div class='add'>+</div><div class='add'>+struct coroutine_shared</div><div class='add'>+{</div><div class='add'>+    pthread_mutex_t guard;</div><div class='add'>+    struct coroutine_context * main;</div><div class='add'>+</div><div class='add'>+    size_t count;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='add'>+</div><div class='add'>+struct coroutine_context</div><div class='add'>+{</div><div class='add'>+    struct coroutine_shared * shared;</div><div class='add'>+</div><div class='add'>+    coroutine_start start;</div><div class='add'>+    void *argument;</div><div class='add'>+</div><div class='add'>+    void *stack;</div><div class='add'>+    size_t size;</div><div class='add'>+</div><div class='add'>+    pthread_t id;</div><div class='add'>+    pthread_cond_t schedule;</div><div class='add'>+    struct coroutine_context * from;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+void coroutine_initialize_main(struct coroutine_context * context);</div><div class='add'>+</div><div class='add'>+void coroutine_initialize(</div><div class='add'>+    struct coroutine_context *context,</div><div class='add'>+    coroutine_start start,</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='add'>+);</div><div class='add'>+</div><div class='add'>+struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target);</div><div class='add'>+</div><div class='add'>+void coroutine_destroy(struct coroutine_context * context);</div><div class='head'>diff --git a/coroutine/riscv64/Context.S b/coroutine/riscv64/Context.S<br/>new file mode 100644<br/>index 0000000000..cc4e872f84<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/riscv64/Context.S?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/riscv64/Context.S</a></div><div class='hunk'>@@ -0,0 +1,87 @@</div><div class='add'>+#define TOKEN_PASTE(x,y) x##y</div><div class='add'>+#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)</div><div class='add'>+</div><div class='add'>+.text</div><div class='add'>+.align 2</div><div class='add'>+</div><div class='add'>+.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)</div><div class='add'>+PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):</div><div class='add'>+</div><div class='add'>+	# Make space on the stack for caller registers</div><div class='add'>+	addi sp, sp, -0xd0</div><div class='add'>+</div><div class='add'>+	# Save caller registers</div><div class='add'>+	sd s0, 0x00(sp)</div><div class='add'>+	sd s1, 0x08(sp)</div><div class='add'>+	sd s2, 0x10(sp)</div><div class='add'>+	sd s3, 0x18(sp)</div><div class='add'>+	sd s4, 0x20(sp)</div><div class='add'>+	sd s5, 0x28(sp)</div><div class='add'>+	sd s6, 0x30(sp)</div><div class='add'>+	sd s7, 0x38(sp)</div><div class='add'>+	sd s8, 0x40(sp)</div><div class='add'>+	sd s9, 0x48(sp)</div><div class='add'>+	sd s10, 0x50(sp)</div><div class='add'>+	sd s11, 0x58(sp)</div><div class='add'>+	fsd fs0, 0x60(sp)</div><div class='add'>+	fsd fs1, 0x68(sp)</div><div class='add'>+	fsd fs2, 0x70(sp)</div><div class='add'>+	fsd fs3, 0x78(sp)</div><div class='add'>+	fsd fs4, 0x80(sp)</div><div class='add'>+	fsd fs5, 0x88(sp)</div><div class='add'>+	fsd fs6, 0x90(sp)</div><div class='add'>+	fsd fs7, 0x98(sp)</div><div class='add'>+	fsd fs8, 0xa0(sp)</div><div class='add'>+	fsd fs9, 0xa8(sp)</div><div class='add'>+	fsd fs10, 0xb0(sp)</div><div class='add'>+	fsd fs11, 0xb8(sp)</div><div class='add'>+</div><div class='add'>+	# Save return address</div><div class='add'>+	sd ra, 0xc0(sp)</div><div class='add'>+</div><div class='add'>+	# Save stack pointer to a0 (first argument)</div><div class='add'>+	mv a2, sp</div><div class='add'>+	sd a2, (a0)</div><div class='add'>+</div><div class='add'>+	# Load stack pointer from a1 (second argument)</div><div class='add'>+	ld a3, (a1)</div><div class='add'>+	mv sp, a3</div><div class='add'>+</div><div class='add'>+	# Restore caller registers</div><div class='add'>+	ld s0, 0x00(sp)</div><div class='add'>+	ld s1, 0x08(sp)</div><div class='add'>+	ld s2, 0x10(sp)</div><div class='add'>+	ld s3, 0x18(sp)</div><div class='add'>+	ld s4, 0x20(sp)</div><div class='add'>+	ld s5, 0x28(sp)</div><div class='add'>+	ld s6, 0x30(sp)</div><div class='add'>+	ld s7, 0x38(sp)</div><div class='add'>+	ld s8, 0x40(sp)</div><div class='add'>+	ld s9, 0x48(sp)</div><div class='add'>+	ld s10, 0x50(sp)</div><div class='add'>+	ld s11, 0x58(sp)</div><div class='add'>+	fld fs0, 0x60(sp)</div><div class='add'>+	fld fs1, 0x68(sp)</div><div class='add'>+	fld fs2, 0x70(sp)</div><div class='add'>+	fld fs3, 0x78(sp)</div><div class='add'>+	fld fs4, 0x80(sp)</div><div class='add'>+	fld fs5, 0x88(sp)</div><div class='add'>+	fld fs6, 0x90(sp)</div><div class='add'>+	fld fs7, 0x98(sp)</div><div class='add'>+	fld fs8, 0xa0(sp)</div><div class='add'>+	fld fs9, 0xa8(sp)</div><div class='add'>+	fld fs10, 0xb0(sp)</div><div class='add'>+	fld fs11, 0xb8(sp)</div><div class='add'>+</div><div class='add'>+	# Load return address</div><div class='add'>+	ld ra, 0xc0(sp)</div><div class='add'>+</div><div class='add'>+	# Pop stack frame</div><div class='add'>+	addi sp, sp, 0xd0</div><div class='add'>+</div><div class='add'>+	# Jump to return address</div><div class='add'>+	ret</div><div class='add'>+</div><div class='add'>+#if defined(__linux__) &amp;&amp; defined(__ELF__)</div><div class='add'>+.section .note.GNU-stack,"",%progbits</div><div class='add'>+#endif</div><div class='head'>diff --git a/coroutine/riscv64/Context.h b/coroutine/riscv64/Context.h<br/>new file mode 100644<br/>index 0000000000..9ce1140e0b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/riscv64/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/riscv64/Context.h</a></div><div class='hunk'>@@ -0,0 +1,46 @@</div><div class='add'>+#pragma once</div><div class='add'>+</div><div class='add'>+#include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='add'>+#include &lt;string.h&gt;</div><div class='add'>+</div><div class='add'>+#define COROUTINE __attribute__((noreturn)) void</div><div class='add'>+</div><div class='add'>+enum {COROUTINE_REGISTERS = 0xd0 / 8};</div><div class='add'>+</div><div class='add'>+struct coroutine_context</div><div class='add'>+{</div><div class='add'>+    void **stack_pointer;</div><div class='add'>+    void *argument;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize(</div><div class='add'>+    struct coroutine_context *context,</div><div class='add'>+    coroutine_start start,</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='add'>+) {</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='add'>+</div><div class='add'>+    // Stack grows down. Force 16-byte alignment.</div><div class='add'>+    char * top = (char*)stack + size;</div><div class='add'>+    context-&gt;stack_pointer = (void**)((uintptr_t)top &amp; ~0xF);</div><div class='add'>+</div><div class='add'>+    context-&gt;stack_pointer -= COROUTINE_REGISTERS;</div><div class='add'>+    memset(context-&gt;stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS);</div><div class='add'>+</div><div class='add'>+    context-&gt;stack_pointer[0xc0 / 8] = (void*)start;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target);</div><div class='add'>+</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='add'>+{</div><div class='add'>+}</div><div class='head'>diff --git a/coroutine/ucontext/Context.c b/coroutine/ucontext/Context.c<br/>new file mode 100644<br/>index 0000000000..5d728d554d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/ucontext/Context.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/ucontext/Context.c</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+/*</div><div class='add'>+ *  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='add'>+ *</div><div class='add'>+ *  Created by Samuel Williams on 24/6/2019.</div><div class='add'>+ *  Copyright, 2019, by Samuel Williams.</div><div class='add'>+*/</div><div class='add'>+</div><div class='add'>+/* According to Solaris' ucontext.h, makecontext, etc. are removed in SUSv4.</div><div class='add'>+ * To enable the prototype declarations, we need to define __EXTENSIONS__.</div><div class='add'>+ */</div><div class='add'>+#if defined(__sun) &amp;&amp; !defined(__EXTENSIONS__)</div><div class='add'>+#define __EXTENSIONS__</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "Context.h"</div><div class='add'>+</div><div class='add'>+void coroutine_trampoline(void * _start, void * _context)</div><div class='add'>+{</div><div class='add'>+    coroutine_start start = (coroutine_start)_start;</div><div class='add'>+    struct coroutine_context * context = _context;</div><div class='add'>+</div><div class='add'>+    start(context-&gt;from, context);</div><div class='add'>+}</div><div class='head'>diff --git a/coroutine/ucontext/Context.h b/coroutine/ucontext/Context.h<br/>new file mode 100644<br/>index 0000000000..d338d8de60<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/ucontext/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/ucontext/Context.h</a></div><div class='hunk'>@@ -0,0 +1,79 @@</div><div class='add'>+#ifndef COROUTINE_UCONTEXT_CONTEXT_H</div><div class='add'>+#define COROUTINE_UCONTEXT_CONTEXT_H 1</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='add'>+ *</div><div class='add'>+ *  Created by Samuel Williams on 24/6/2019.</div><div class='add'>+ *  Copyright, 2019, by Samuel Williams.</div><div class='add'>+*/</div><div class='add'>+</div><div class='add'>+#pragma once</div><div class='add'>+</div><div class='add'>+#include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;ucontext.h&gt;</div><div class='add'>+</div><div class='add'>+#define COROUTINE __attribute__((noreturn)) void</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STDINT_H</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='add'>+#if INTPTR_MAX &lt;= INT32_MAX</div><div class='add'>+#define COROUTINE_LIMITED_ADDRESS_SPACE</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct coroutine_context</div><div class='add'>+{</div><div class='add'>+    ucontext_t state;</div><div class='add'>+    struct coroutine_context * from;</div><div class='add'>+    void *argument;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='add'>+</div><div class='add'>+COROUTINE coroutine_trampoline(void * _start, void * _context);</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;from = NULL;</div><div class='add'>+    getcontext(&amp;context-&gt;state);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize(</div><div class='add'>+    struct coroutine_context *context,</div><div class='add'>+    coroutine_start start,</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='add'>+) {</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='add'>+</div><div class='add'>+    coroutine_initialize_main(context);</div><div class='add'>+</div><div class='add'>+    context-&gt;state.uc_stack.ss_size = size;</div><div class='add'>+    // Despite what it's called, this is not actually a stack pointer. It points to the address of the stack allocation (the lowest address).</div><div class='add'>+    context-&gt;state.uc_stack.ss_sp = (char*)stack;</div><div class='add'>+    context-&gt;state.uc_stack.ss_flags = 0;</div><div class='add'>+    context-&gt;state.uc_link = NULL;</div><div class='add'>+</div><div class='add'>+    makecontext(&amp;context-&gt;state, (void(*)(void))coroutine_trampoline, 2, (void*)start, (void*)context);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target)</div><div class='add'>+{</div><div class='add'>+    struct coroutine_context * previous = target-&gt;from;</div><div class='add'>+</div><div class='add'>+    target-&gt;from = current;</div><div class='add'>+    swapcontext(&amp;current-&gt;state, &amp;target-&gt;state);</div><div class='add'>+    target-&gt;from = previous;</div><div class='add'>+</div><div class='add'>+    return target;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='add'>+{</div><div class='add'>+    context-&gt;state.uc_stack.ss_sp = NULL;</div><div class='add'>+    context-&gt;state.uc_stack.ss_size = 0;</div><div class='add'>+    context-&gt;from = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* COROUTINE_UCONTEXT_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/universal/Context.S b/coroutine/universal/Context.S<br/>new file mode 100644<br/>index 0000000000..11c80a7927<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/universal/Context.S?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/universal/Context.S</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+#if 0</div><div class='add'>+#elif defined __x86_64__</div><div class='add'>+# include "coroutine/amd64/Context.S"</div><div class='add'>+#elif defined __i386__</div><div class='add'>+# include "coroutine/x86/Context.S"</div><div class='add'>+#elif defined __ppc__</div><div class='add'>+# include "coroutine/ppc/Context.S"</div><div class='add'>+#elif defined __ppc64__ &amp;&amp; defined(WORDS_BIGENDIAN)</div><div class='add'>+# include "coroutine/ppc64/Context.S"</div><div class='add'>+#elif defined __ppc64__ &amp;&amp; !defined(WORDS_BIGENDIAN)</div><div class='add'>+# include "coroutine/ppc64le/Context.S"</div><div class='add'>+#elif defined __arm64__</div><div class='add'>+# include "coroutine/arm64/Context.S"</div><div class='add'>+#else</div><div class='add'>+# error "Unsupported CPU"</div><div class='add'>+#endif</div><div class='head'>diff --git a/coroutine/universal/Context.h b/coroutine/universal/Context.h<br/>new file mode 100644<br/>index 0000000000..ec4d2f484a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/universal/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/universal/Context.h</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+#ifndef COROUTINE_UNIVERSAL_CONTEXT_H</div><div class='add'>+#define COROUTINE_UNIVERSAL_CONTEXT_H 1</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+#elif defined __x86_64__</div><div class='add'>+# include "coroutine/amd64/Context.h"</div><div class='add'>+#elif defined __i386__</div><div class='add'>+# include "coroutine/x86/Context.h"</div><div class='add'>+#elif defined __ppc__</div><div class='add'>+# include "coroutine/ppc/Context.h"</div><div class='add'>+#elif defined __ppc64__ &amp;&amp; defined(WORDS_BIGENDIAN)</div><div class='add'>+# include "coroutine/ppc64/Context.h"</div><div class='add'>+#elif defined __ppc64__ &amp;&amp; !defined(WORDS_BIGENDIAN)</div><div class='add'>+# include "coroutine/ppc64le/Context.h"</div><div class='add'>+#elif defined __arm64__</div><div class='add'>+# include "coroutine/arm64/Context.h"</div><div class='add'>+#else</div><div class='add'>+# error "Unsupported CPU"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* COROUTINE_UNIVERSAL_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/win32/Context.S b/coroutine/win32/Context.S<br/>new file mode 100644<br/>index 0000000000..d14bf435e8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/coroutine/win32/Context.S?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/win32/Context.S</a></div><div class='hunk'>@@ -0,0 +1,47 @@</div><div class='add'>+##</div><div class='add'>+##  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='add'>+##</div><div class='add'>+##  Created by Lars Kanis on 06/06/2019.</div><div class='add'>+##</div><div class='add'>+</div><div class='add'>+.text</div><div class='add'>+</div><div class='add'>+# Using fastcall is a big win (and it's the same as how x64 works).</div><div class='add'>+# In coroutine transfer, the arguments are passed in ecx and edx. We don't need</div><div class='add'>+# to touch these in order to pass them to the destination coroutine.</div><div class='add'>+</div><div class='add'>+.globl @coroutine_transfer@8</div><div class='add'>+@coroutine_transfer@8:</div><div class='add'>+	# Save the thread information block:</div><div class='add'>+	pushl %fs:0</div><div class='add'>+	pushl %fs:4</div><div class='add'>+	pushl %fs:8</div><div class='add'>+</div><div class='add'>+	# Save caller registers:</div><div class='add'>+	pushl %ebp</div><div class='add'>+	pushl %ebx</div><div class='add'>+	pushl %edi</div><div class='add'>+	pushl %esi</div><div class='add'>+</div><div class='add'>+	# Save caller stack pointer:</div><div class='add'>+	movl %esp, (%ecx)</div><div class='add'>+</div><div class='add'>+	# Restore callee stack pointer:</div><div class='add'>+	movl (%edx), %esp</div><div class='add'>+</div><div class='add'>+	# Restore callee stack:</div><div class='add'>+	popl %esi</div><div class='add'>+	popl %edi</div><div class='add'>+	popl %ebx</div><div class='add'>+	popl %ebp</div><div class='add'>+</div><div class='add'>+	# Restore the thread information block:</div><div class='add'>+	popl %fs:8</div><div class='add'>+	popl %fs:4</div><div class='add'>+	popl %fs:0</div><div class='add'>+</div><div class='add'>+	# Save the first argument as the return value:</div><div class='add'>+	movl %ecx, %eax</div><div class='add'>+</div><div class='add'>+	# Jump to the address on the stack:</div><div class='add'>+	ret</div><div class='head'>diff --git a/coroutine/win32/Context.asm b/coroutine/win32/Context.asm<br/>index 2647ea4bc4..f8f431239b 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/win32/Context.asm?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/win32/Context.asm</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/win32/Context.asm?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/win32/Context.asm</a></div><div class='hunk'>@@ -2,7 +2,7 @@</div><div class='ctx'> ;;  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'> ;;</div><div class='ctx'> ;;  Created by Samuel Williams on 10/5/2018.</div><div class='del'>-;;  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+;;  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> ;;</div><div class='ctx'> </div><div class='ctx'> .386</div><div class='head'>diff --git a/coroutine/win32/Context.h b/coroutine/win32/Context.h<br/>index aa9f17ddab..902fd1246f 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/win32/Context.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/win32/Context.h</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/win32/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/win32/Context.h</a></div><div class='hunk'>@@ -1,62 +1,65 @@</div><div class='add'>+#ifndef COROUTINE_WIN32_CONTEXT_H</div><div class='add'>+#define COROUTINE_WIN32_CONTEXT_H 1</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'>  *</div><div class='ctx'>  *  Created by Samuel Williams on 10/5/2018.</div><div class='del'>- *  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+ *  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> */</div><div class='ctx'> </div><div class='ctx'> #pragma once</div><div class='ctx'> </div><div class='ctx'> #include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='ctx'> #include &lt;string.h&gt;</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #define COROUTINE __declspec(noreturn) void __fastcall</div><div class='add'>+#define COROUTINE_LIMITED_ADDRESS_SPACE</div><div class='ctx'> </div><div class='ctx'> /* This doesn't include thread information block */</div><div class='del'>-const size_t COROUTINE_REGISTERS = 4;</div><div class='add'>+enum {COROUTINE_REGISTERS = 4};</div><div class='ctx'> </div><div class='del'>-typedef struct</div><div class='add'>+struct coroutine_context</div><div class='ctx'> {</div><div class='ctx'>     void **stack_pointer;</div><div class='del'>-} coroutine_context;</div><div class='add'>+    void *argument;</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-typedef void(__fastcall * coroutine_start)(coroutine_context *from, coroutine_context *self);</div><div class='add'>+typedef void(__fastcall * coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='add'>+</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static inline void coroutine_initialize(</div><div class='del'>-    coroutine_context *context,</div><div class='add'>+    struct coroutine_context *context,</div><div class='ctx'>     coroutine_start start,</div><div class='del'>-    void *stack_pointer,</div><div class='del'>-    size_t stack_size</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='ctx'> ) {</div><div class='del'>-    context-&gt;stack_pointer = (void**)stack_pointer;</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='ctx'> </div><div class='del'>-    if (!start) {</div><div class='del'>-        assert(!context-&gt;stack_pointer);</div><div class='del'>-        /* We are main coroutine for this thread */</div><div class='del'>-        return;</div><div class='del'>-    }</div><div class='add'>+    // Stack grows down. Force 16-byte alignment.</div><div class='add'>+    char * top = (char*)stack + size;</div><div class='add'>+    context-&gt;stack_pointer = (void**)((uintptr_t)top &amp; ~0xF);</div><div class='ctx'> </div><div class='ctx'>     *--context-&gt;stack_pointer = (void*)start;</div><div class='ctx'> </div><div class='ctx'>     /* Windows Thread Information Block */</div><div class='del'>-    *--context-&gt;stack_pointer = 0; /* fs:[0] */</div><div class='del'>-    *--context-&gt;stack_pointer = (void*)stack_pointer; /* fs:[4] */</div><div class='del'>-    *--context-&gt;stack_pointer = (void*)((char *)stack_pointer - stack_size);  /* fs:[8] */</div><div class='add'>+    *--context-&gt;stack_pointer = (void*)0xFFFFFFFF; /* fs:[0] */</div><div class='add'>+    *--context-&gt;stack_pointer = (void*)top; /* fs:[4] */</div><div class='add'>+    *--context-&gt;stack_pointer = (void*)stack;  /* fs:[8] */</div><div class='ctx'> </div><div class='ctx'>     context-&gt;stack_pointer -= COROUTINE_REGISTERS;</div><div class='ctx'>     memset(context-&gt;stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-coroutine_context * __fastcall coroutine_transfer(coroutine_context * current, coroutine_context * target);</div><div class='add'>+struct coroutine_context * __fastcall coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target);</div><div class='ctx'> </div><div class='del'>-static inline void coroutine_destroy(coroutine_context * context)</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='ctx'> {</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='add'>+#endif /* COROUTINE_WIN32_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/win64/Context.S b/coroutine/win64/Context.S<br/>index 4b16e0ce8c..e0ee38e006 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/win64/Context.S?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/win64/Context.S</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/win64/Context.S?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/win64/Context.S</a></div><div class='hunk'>@@ -2,7 +2,7 @@</div><div class='ctx'> ##  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'> ##</div><div class='ctx'> ##  Created by Samuel Williams on 4/11/2018.</div><div class='del'>-##  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+##  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> ##</div><div class='ctx'> </div><div class='ctx'> .text</div><div class='head'>diff --git a/coroutine/win64/Context.asm b/coroutine/win64/Context.asm<br/>index 59673ffa3e..8c4dea1c93 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/win64/Context.asm?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/win64/Context.asm</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/win64/Context.asm?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/win64/Context.asm</a></div><div class='hunk'>@@ -2,7 +2,7 @@</div><div class='ctx'> ;;  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'> ;;</div><div class='ctx'> ;;  Created by Samuel Williams on 10/5/2018.</div><div class='del'>-;;  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+;;  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> ;;</div><div class='ctx'> </div><div class='ctx'> .code</div><div class='head'>diff --git a/coroutine/win64/Context.h b/coroutine/win64/Context.h<br/>index 16a8f583ab..aaa4caeaf9 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/win64/Context.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/win64/Context.h</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/win64/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/win64/Context.h</a></div><div class='hunk'>@@ -1,47 +1,52 @@</div><div class='add'>+#ifndef COROUTINE_WIN64_CONTEXT_H</div><div class='add'>+#define COROUTINE_WIN64_CONTEXT_H 1</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'>  *</div><div class='ctx'>  *  Created by Samuel Williams on 10/5/2018.</div><div class='del'>- *  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+ *  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> */</div><div class='ctx'> </div><div class='ctx'> #pragma once</div><div class='ctx'> </div><div class='ctx'> #include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='ctx'> #include &lt;string.h&gt;</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #define COROUTINE __declspec(noreturn) void</div><div class='ctx'> </div><div class='del'>-const size_t COROUTINE_REGISTERS = 8;</div><div class='del'>-const size_t COROUTINE_XMM_REGISTERS = 1+10*2;</div><div class='add'>+enum {</div><div class='add'>+    COROUTINE_REGISTERS = 8,</div><div class='add'>+    COROUTINE_XMM_REGISTERS = 1+10*2,</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-typedef struct</div><div class='add'>+struct coroutine_context</div><div class='ctx'> {</div><div class='ctx'>     void **stack_pointer;</div><div class='del'>-} coroutine_context;</div><div class='add'>+    void *argument;</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-typedef void(* coroutine_start)(coroutine_context *from, coroutine_context *self);</div><div class='add'>+typedef void(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self);</div><div class='ctx'> </div><div class='ctx'> void coroutine_trampoline();</div><div class='ctx'> </div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static inline void coroutine_initialize(</div><div class='del'>-    coroutine_context *context,</div><div class='add'>+    struct coroutine_context *context,</div><div class='ctx'>     coroutine_start start,</div><div class='del'>-    void *stack_pointer,</div><div class='del'>-    size_t stack_size</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='ctx'> ) {</div><div class='del'>-    /* Force 16-byte alignment */</div><div class='del'>-    context-&gt;stack_pointer = (void**)((uintptr_t)stack_pointer &amp; ~0xF);</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='ctx'> </div><div class='del'>-    if (!start) {</div><div class='del'>-        assert(!context-&gt;stack_pointer);</div><div class='del'>-        /* We are main coroutine for this thread */</div><div class='del'>-        return;</div><div class='del'>-    }</div><div class='add'>+    // Stack grows down. Force 16-byte alignment.</div><div class='add'>+    char * top = (char*)stack + size;</div><div class='add'>+    context-&gt;stack_pointer = (void**)((uintptr_t)top &amp; ~0xF);</div><div class='ctx'> </div><div class='ctx'>     /* Win64 ABI requires space for arguments */</div><div class='ctx'>     context-&gt;stack_pointer -= 4;</div><div class='hunk'>@@ -53,20 +58,18 @@ static inline void coroutine_initialize(</div><div class='ctx'> </div><div class='ctx'>     /* Windows Thread Information Block */</div><div class='ctx'>     /* *--context-&gt;stack_pointer = 0; */ /* gs:[0x00] is not used */</div><div class='del'>-    *--context-&gt;stack_pointer = (void*)stack_pointer; /* gs:[0x08] */</div><div class='del'>-    *--context-&gt;stack_pointer = (void*)((char *)stack_pointer - stack_size);  /* gs:[0x10] */</div><div class='add'>+    *--context-&gt;stack_pointer = (void*)top; /* gs:[0x08] */</div><div class='add'>+    *--context-&gt;stack_pointer = (void*)stack;  /* gs:[0x10] */</div><div class='ctx'> </div><div class='ctx'>     context-&gt;stack_pointer -= COROUTINE_REGISTERS;</div><div class='ctx'>     memset(context-&gt;stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS);</div><div class='ctx'>     memset(context-&gt;stack_pointer - COROUTINE_XMM_REGISTERS, 0, sizeof(void*) * COROUTINE_XMM_REGISTERS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-coroutine_context * coroutine_transfer(coroutine_context * current, coroutine_context * target);</div><div class='add'>+struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target);</div><div class='ctx'> </div><div class='del'>-static inline void coroutine_destroy(coroutine_context * context)</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='ctx'> {</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='add'>+#endif /* COROUTINE_WIN64_CONTEXT_H */</div><div class='head'>diff --git a/coroutine/x86/Context.S b/coroutine/x86/Context.S<br/>index d6a0a2def7..f06a417084 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/x86/Context.S?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/x86/Context.S</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/x86/Context.S?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/x86/Context.S</a></div><div class='hunk'>@@ -2,17 +2,16 @@</div><div class='ctx'> ##  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'> ##</div><div class='ctx'> ##  Created by Samuel Williams on 3/11/2018.</div><div class='del'>-##  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+##  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> ##</div><div class='ctx'> </div><div class='del'>-.text</div><div class='add'>+#define TOKEN_PASTE(x,y) x##y</div><div class='add'>+#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)</div><div class='ctx'> </div><div class='del'>-.globl coroutine_transfer</div><div class='del'>-coroutine_transfer:</div><div class='add'>+.text</div><div class='ctx'> </div><div class='del'>-# For older linkers</div><div class='del'>-.globl _coroutine_transfer</div><div class='del'>-_coroutine_transfer:</div><div class='add'>+.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)</div><div class='add'>+PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):</div><div class='ctx'> </div><div class='ctx'> 	# Save caller registers</div><div class='ctx'> 	pushl %ebp</div><div class='hunk'>@@ -38,6 +37,6 @@ _coroutine_transfer:</div><div class='ctx'> 	# Jump to the address on the stack</div><div class='ctx'> 	ret</div><div class='ctx'> </div><div class='del'>-#if defined(__linux__) &amp;&amp; defined(__ELF__)</div><div class='add'>+#if (defined(__linux__) || defined(__FreeBSD__)) &amp;&amp; defined(__ELF__)</div><div class='ctx'> .section .note.GNU-stack,"",%progbits</div><div class='ctx'> #endif</div><div class='head'>diff --git a/coroutine/x86/Context.h b/coroutine/x86/Context.h<br/>index b077227a1d..d98eaf6486 100644<br/>--- a/<a href='/ruby.git/tree/coroutine/x86/Context.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coroutine/x86/Context.h</a><br/>+++ b/<a href='/ruby.git/tree/coroutine/x86/Context.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coroutine/x86/Context.h</a></div><div class='hunk'>@@ -1,44 +1,48 @@</div><div class='add'>+#ifndef COROUTINE_X86_CONTEXT_H</div><div class='add'>+#define COROUTINE_X86_CONTEXT_H 1</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  This file is part of the "Coroutine" project and released under the MIT License.</div><div class='ctx'>  *</div><div class='ctx'>  *  Created by Samuel Williams on 3/11/2018.</div><div class='del'>- *  Copyright, 2018, by Samuel Williams. All rights reserved.</div><div class='add'>+ *  Copyright, 2018, by Samuel Williams.</div><div class='ctx'> */</div><div class='ctx'> </div><div class='ctx'> #pragma once</div><div class='ctx'> </div><div class='ctx'> #include &lt;assert.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='ctx'> #include &lt;string.h&gt;</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #define COROUTINE __attribute__((noreturn, fastcall)) void</div><div class='add'>+#define COROUTINE_LIMITED_ADDRESS_SPACE</div><div class='ctx'> </div><div class='del'>-const size_t COROUTINE_REGISTERS = 4;</div><div class='add'>+enum {COROUTINE_REGISTERS = 4};</div><div class='ctx'> </div><div class='del'>-typedef struct</div><div class='add'>+struct coroutine_context</div><div class='ctx'> {</div><div class='ctx'>     void **stack_pointer;</div><div class='del'>-} coroutine_context;</div><div class='add'>+    void *argument;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef COROUTINE(* coroutine_start)(struct coroutine_context *from, struct coroutine_context *self) __attribute__((fastcall));</div><div class='ctx'> </div><div class='del'>-typedef COROUTINE(* coroutine_start)(coroutine_context *from, coroutine_context *self) __attribute__((fastcall));</div><div class='add'>+static inline void coroutine_initialize_main(struct coroutine_context * context) {</div><div class='add'>+    context-&gt;stack_pointer = NULL;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static inline void coroutine_initialize(</div><div class='del'>-    coroutine_context *context,</div><div class='add'>+    struct coroutine_context *context,</div><div class='ctx'>     coroutine_start start,</div><div class='del'>-    void *stack_pointer,</div><div class='del'>-    size_t stack_size</div><div class='add'>+    void *stack,</div><div class='add'>+    size_t size</div><div class='ctx'> ) {</div><div class='del'>-    /* Force 16-byte alignment */</div><div class='del'>-    context-&gt;stack_pointer = (void**)((uintptr_t)stack_pointer &amp; ~0xF);</div><div class='add'>+    assert(start &amp;&amp; stack &amp;&amp; size &gt;= 1024);</div><div class='ctx'> </div><div class='del'>-    if (!start) {</div><div class='del'>-        assert(!context-&gt;stack_pointer);</div><div class='del'>-        /* We are main coroutine for this thread */</div><div class='del'>-        return;</div><div class='del'>-    }</div><div class='add'>+    // Stack grows down. Force 16-byte alignment.</div><div class='add'>+    char * top = (char*)stack + size;</div><div class='add'>+    context-&gt;stack_pointer = (void**)((uintptr_t)top &amp; ~0xF);</div><div class='ctx'> </div><div class='ctx'>     *--context-&gt;stack_pointer = NULL;</div><div class='ctx'>     *--context-&gt;stack_pointer = (void*)start;</div><div class='hunk'>@@ -47,13 +51,11 @@ static inline void coroutine_initialize(</div><div class='ctx'>     memset(context-&gt;stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-coroutine_context * coroutine_transfer(coroutine_context * current, coroutine_context * target) __attribute__((fastcall));</div><div class='add'>+struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target) __attribute__((fastcall));</div><div class='ctx'> </div><div class='del'>-static inline void coroutine_destroy(coroutine_context * context)</div><div class='add'>+static inline void coroutine_destroy(struct coroutine_context * context)</div><div class='ctx'> {</div><div class='ctx'>     context-&gt;stack_pointer = NULL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='add'>+#endif /* COROUTINE_X86_CONTEXT_H */</div><div class='head'>diff --git a/coverage/README b/coverage/README<br/>index 7e4ff59e2a..a4c3dfcb03 100644<br/>--- a/<a href='/ruby.git/tree/coverage/README?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>coverage/README</a><br/>+++ b/<a href='/ruby.git/tree/coverage/README?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>coverage/README</a></div><div class='hunk'>@@ -4,7 +4,7 @@ The make task `update-coverage' retrieves simplecov for coverage report.</div><div class='ctx'> </div><div class='ctx'> COVERAGE=1 make test-all TESTS=test/cgi</div><div class='ctx'> </div><div class='del'>-it generate test coverage to coverage directory.</div><div class='add'>+it generates test coverage to coverage directory.</div><div class='ctx'> </div><div class='ctx'> Limitation</div><div class='ctx'> </div><div class='hunk'>@@ -13,5 +13,5 @@ Limitation</div><div class='ctx'> </div><div class='ctx'> TODO</div><div class='ctx'> </div><div class='del'>- * more reduce bundled simplecov(additional configuration, formatter, etc)</div><div class='add'>+ * more reduce bundled simplecov(additional configuration, formatter, etc.)</div><div class='ctx'>  * measure rubyspec coverage</div><div class='head'>diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in<br/>index 192cf43b37..f342d2fcf7 100644<br/>--- a/<a href='/ruby.git/tree/cygwin/GNUmakefile.in?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>cygwin/GNUmakefile.in</a><br/>+++ b/<a href='/ruby.git/tree/cygwin/GNUmakefile.in?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>cygwin/GNUmakefile.in</a></div><div class='hunk'>@@ -1,16 +1,26 @@</div><div class='add'>+gnumake = yes</div><div class='add'>+</div><div class='ctx'> include Makefile</div><div class='ctx'> </div><div class='del'>-ENABLE_SHARED=@ENABLE_SHARED@</div><div class='del'>-DLLWRAP = @DLLWRAP@ --target=@target_os@ --driver-name="$(CC)"</div><div class='del'>-WINDRES = @WINDRES@ --preprocessor="$(CPP) -xc" -DRC_INVOKED</div><div class='add'>+MUNICODE_FLAG := $(if $(filter mingw%,$(target_os)),-municode)</div><div class='add'>+override EXE_LDFLAGS += $(MUNICODE_FLAG)</div><div class='add'>+</div><div class='add'>+DLLWRAP = @DLLWRAP@ --target=$(target_os) --driver-name="$(CC)"</div><div class='add'>+windres-cpp := $(CPP) -xc</div><div class='add'>+windres-cpp := --preprocessor=$(firstword $(windres-cpp)) \</div><div class='add'>+	$(addprefix --preprocessor-arg=,$(wordlist 2,$(words $(windres-cpp)),$(windres-cpp)))</div><div class='add'>+WINDRES = @WINDRES@ $(windres-cpp) -DRC_INVOKED</div><div class='ctx'> STRIP = @STRIP@</div><div class='ctx'> </div><div class='del'>-ifeq (@target_os@,cygwin)</div><div class='add'>+ifeq ($(target_os),cygwin)</div><div class='ctx'>   DLL_BASE_NAME := $(LIBRUBY_SO:.dll=)</div><div class='ctx'> else</div><div class='ctx'>   DLL_BASE_NAME := $(RUBY_SO_NAME)</div><div class='ctx'>   DLLWRAP += -mno-cygwin</div><div class='ctx'>   VPATH := $(VPATH):$(srcdir)/win32</div><div class='add'>+  ifneq ($(filter -flto%,$(LDFLAGS)),)</div><div class='add'>+    miniruby$(EXEEXT): XLDFLAGS += -Wno-maybe-uninitialized</div><div class='add'>+  endif</div><div class='ctx'> endif</div><div class='ctx'> </div><div class='ctx'> ifneq ($(ENABLE_SHARED),yes)</div><div class='hunk'>@@ -28,11 +38,9 @@ endif</div><div class='ctx'> </div><div class='ctx'> WPROGRAM = $(RUBYW_INSTALL_NAME)$(EXEEXT)</div><div class='ctx'> </div><div class='del'>--include uncommon.mk</div><div class='add'>+include $(srcdir)/template/GNUmakefile.in</div><div class='ctx'> </div><div class='del'>-include $(srcdir)/defs/gmake.mk</div><div class='del'>-</div><div class='del'>-SOLIBS := $(DLL_BASE_NAME).res.@OBJEXT@ $(SOLIBS)</div><div class='add'>+SOLIBS := $(DLL_BASE_NAME).res.$(OBJEXT) $(SOLIBS)</div><div class='ctx'> override EXTOBJS += $(if $(filter-out $(RUBYW_INSTALL_NAME),$(@:$(EXEEXT)=)),$(RUBY_INSTALL_NAME),$(@:$(EXEEXT)=)).res.$(OBJEXT)</div><div class='ctx'> RCFILES = $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(DLL_BASE_NAME).rc</div><div class='ctx'> RUBYDEF = $(DLL_BASE_NAME).def</div><div class='hunk'>@@ -41,26 +49,26 @@ ruby: $(PROGRAM)</div><div class='ctx'> rubyw: $(WPROGRAM)</div><div class='ctx'> </div><div class='ctx'> $(LIBRUBY): $(RUBY_EXP) $(LIBRUBY_SO)</div><div class='del'>-$(RUBY_EXP) $(LIBRUBY_SO): $(DLL_BASE_NAME).res.@OBJEXT@</div><div class='add'>+$(RUBY_EXP) $(LIBRUBY_SO): $(DLL_BASE_NAME).res.$(OBJEXT)</div><div class='ctx'> </div><div class='del'>-%.res.@OBJEXT@: %.rc</div><div class='add'>+%.res.$(OBJEXT): %.rc</div><div class='ctx'> 	$(ECHO) compiling $@</div><div class='ctx'> 	$(Q) $(WINDRES) --include-dir . --include-dir $(&lt;D) --include-dir $(srcdir)/win32 $&lt; $@</div><div class='ctx'> </div><div class='del'>-%.rc: $(RBCONFIG) $(srcdir)/revision.h $(srcdir)/win32/resource.rb</div><div class='add'>+%.rc: $(BOOTSTRAPRUBY_FAKE) $(RBCONFIG) $(srcdir)/revision.h $(srcdir)/win32/resource.rb</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(MINIRUBY) $(srcdir)/win32/resource.rb \</div><div class='add'>+	$(Q) $(BOOTSTRAPRUBY_COMMAND) $(srcdir)/win32/resource.rb \</div><div class='ctx'> 	  -ruby_name=$(RUBY_INSTALL_NAME) -rubyw_name=$(RUBYW_INSTALL_NAME) \</div><div class='ctx'> 	  -so_name=$(DLL_BASE_NAME) -output=$(*F) \</div><div class='ctx'> 	  . $(icondirs) $(srcdir)/win32</div><div class='ctx'> </div><div class='del'>-$(PROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@</div><div class='del'>-$(WPROGRAM): $(RUBYW_INSTALL_NAME).res.@OBJEXT@</div><div class='add'>+$(PROGRAM): $(RUBY_INSTALL_NAME).res.$(OBJEXT)</div><div class='add'>+$(WPROGRAM): $(RUBYW_INSTALL_NAME).res.$(OBJEXT)</div><div class='ctx'> 	@rm -f $@</div><div class='ctx'> 	$(ECHO) linking $@</div><div class='del'>-	$(Q) $(PURIFY) $(CC) -mwindows -e $(SYMBOL_PREFIX)mainCRTStartup $(LDFLAGS) $(XLDFLAGS) \</div><div class='add'>+	$(Q) $(PURIFY) $(CC) $(MUNICODE_FLAG) -mwindows -e $(SYMBOL_PREFIX)mainCRTStartup $(LDFLAGS) $(XLDFLAGS) \</div><div class='ctx'> 	  $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@</div><div class='del'>-$(STUBPROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@</div><div class='add'>+$(STUBPROGRAM): $(RUBY_INSTALL_NAME).res.$(OBJEXT)</div><div class='ctx'> </div><div class='ctx'> $(RUBY_EXP): $(LIBRUBY_A)</div><div class='ctx'> 	$(ECHO) creating $@</div><div class='hunk'>@@ -72,7 +80,7 @@ $(RUBY_EXP): $(LIBRUBY_A)</div><div class='ctx'> </div><div class='ctx'> GNUmakefile:	$(srcdir)/cygwin/GNUmakefile.in</div><div class='ctx'> </div><div class='del'>-ifeq (@target_os@,mingw32)</div><div class='add'>+ifeq ($(target_os),mingw32)</div><div class='ctx'> $(OBJS) $(MAINOBJ): win32.h</div><div class='ctx'> </div><div class='ctx'> dir.$(OBJEXT) win32/win32.$(OBJEXT): win32/dir.h</div><div class='hunk'>@@ -83,24 +91,17 @@ MSYS2_ARG_CONV_EXCL_PARAM = --exclude=;--name=</div><div class='ctx'> yes-test-ruby:	 export MSYS2_ARG_CONV_EXCL=$(MSYS2_ARG_CONV_EXCL_PARAM)</div><div class='ctx'> yes-test-all:	 export MSYS2_ARG_CONV_EXCL=$(MSYS2_ARG_CONV_EXCL_PARAM)</div><div class='ctx'> yes-test-almost: export MSYS2_ARG_CONV_EXCL=$(MSYS2_ARG_CONV_EXCL_PARAM)</div><div class='add'>+test/% spec/%/ spec/%_spec.rb: export MSYS2_ARG_CONV_EXCL=$(MSYS2_ARG_CONV_EXCL_PARAM)</div><div class='ctx'> </div><div class='ctx'> endif</div><div class='ctx'> </div><div class='ctx'> $(LIBRUBY_SO): $(RUBYDEF)</div><div class='ctx'> </div><div class='del'>-$(RUBYDEF): $(LIBRUBY_A) $(PREP) $(RBCONFIG)</div><div class='add'>+$(RUBYDEF): $(LIBRUBY_A) $(PREP) $(BOOTSTRAPRUBY_FAKE) $(RBCONFIG)</div><div class='ctx'> 	$(ECHO) generating $@</div><div class='del'>-	$(Q) $(MINIRUBY) $(srcdir)/win32/mkexports.rb -output=$@ $(LIBRUBY_A)</div><div class='add'>+	$(Q) $(BOOTSTRAPRUBY_COMMAND) $(srcdir)/win32/mkexports.rb -output=$@ $(LIBRUBY_A)</div><div class='ctx'> </div><div class='ctx'> clean-local::</div><div class='ctx'> 	@$(RM) $(RUBYDEF)</div><div class='del'>-</div><div class='del'>-ifeq (@target_os@,cygwin)</div><div class='del'>-cygwin-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)0.dll: $(LIBRUBY_A) $(RUBYDEF)</div><div class='del'>-	$(ECHO) generating $@</div><div class='del'>-	$(Q) @DLLWRAP@ -s --def=$(RUBYDEF) -o $@</div><div class='del'>-endif</div><div class='del'>-</div><div class='del'>-clean-local::</div><div class='del'>-	@$(RM) $(RUBY_EXP) $(RCFILES:.rc=.res.@OBJEXT@)</div><div class='add'>+	@$(RM) $(RUBY_EXP) $(RCFILES:.rc=.res.$(OBJEXT))</div><div class='ctx'> 	@$(RM) $(RCFILES)</div><div class='head'>diff --git a/darray.h b/darray.h<br/>new file mode 100644<br/>index 0000000000..c9a53f1e01<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/darray.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>darray.h</a></div><div class='hunk'>@@ -0,0 +1,179 @@</div><div class='add'>+#ifndef RUBY_DARRAY_H</div><div class='add'>+#define RUBY_DARRAY_H</div><div class='add'>+</div><div class='add'>+#include &lt;stdint.h&gt;</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+#include &lt;stdlib.h&gt;</div><div class='add'>+</div><div class='add'>+// Type for a dynamic array. Use to declare a dynamic array.</div><div class='add'>+// It is a pointer so it fits in st_table nicely. Designed</div><div class='add'>+// to be fairly type-safe.</div><div class='add'>+//</div><div class='add'>+// NULL is a valid empty dynamic array.</div><div class='add'>+//</div><div class='add'>+// Example:</div><div class='add'>+//      rb_darray(char) char_array = NULL;</div><div class='add'>+//      rb_darray_append(&amp;char_array, 'e');</div><div class='add'>+//      printf("pushed %c\n", *rb_darray_ref(char_array, 0));</div><div class='add'>+//      rb_darray_free(char_array);</div><div class='add'>+//</div><div class='add'>+#define rb_darray(T) struct { rb_darray_meta_t meta; T data[]; } *</div><div class='add'>+</div><div class='add'>+// Copy an element out of the array. Warning: not bounds checked.</div><div class='add'>+//</div><div class='add'>+// T rb_darray_get(rb_darray(T) ary, size_t idx);</div><div class='add'>+//</div><div class='add'>+#define rb_darray_get(ary, idx) ((ary)-&gt;data[(idx)])</div><div class='add'>+</div><div class='add'>+// Assign to an element. Warning: not bounds checked.</div><div class='add'>+//</div><div class='add'>+// void rb_darray_set(rb_darray(T) ary, size_t idx, T element);</div><div class='add'>+//</div><div class='add'>+#define rb_darray_set(ary, idx, element) ((ary)-&gt;data[(idx)] = (element))</div><div class='add'>+</div><div class='add'>+// Get a pointer to an element. Warning: not bounds checked.</div><div class='add'>+//</div><div class='add'>+// T *rb_darray_ref(rb_darray(T) ary, size_t idx);</div><div class='add'>+//</div><div class='add'>+#define rb_darray_ref(ary, idx) (&amp;((ary)-&gt;data[(idx)]))</div><div class='add'>+</div><div class='add'>+// Copy a new element into the array. ptr_to_ary is evaluated multiple times.</div><div class='add'>+//</div><div class='add'>+// void rb_darray_append(rb_darray(T) *ptr_to_ary, T element);</div><div class='add'>+//</div><div class='add'>+#define rb_darray_append(ptr_to_ary, element) do {  \</div><div class='add'>+    rb_darray_ensure_space((ptr_to_ary), sizeof(**(ptr_to_ary)), \</div><div class='add'>+                           sizeof((*(ptr_to_ary))-&gt;data[0])); \</div><div class='add'>+    rb_darray_set(*(ptr_to_ary), \</div><div class='add'>+                  (*(ptr_to_ary))-&gt;meta.size, \</div><div class='add'>+                  (element)); \</div><div class='add'>+    (*(ptr_to_ary))-&gt;meta.size++; \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+// Last element of the array</div><div class='add'>+//</div><div class='add'>+#define rb_darray_back(ary) ((ary)-&gt;data[(ary)-&gt;meta.size - 1])</div><div class='add'>+</div><div class='add'>+// Remove the last element of the array.</div><div class='add'>+//</div><div class='add'>+#define rb_darray_pop_back(ary) ((ary)-&gt;meta.size--)</div><div class='add'>+</div><div class='add'>+// Remove element at idx and replace it by the last element</div><div class='add'>+#define rb_darray_remove_unordered(ary, idx) do {   \</div><div class='add'>+    rb_darray_set(ary, idx, rb_darray_back(ary));   \</div><div class='add'>+    rb_darray_pop_back(ary);                        \</div><div class='add'>+} while (0);</div><div class='add'>+</div><div class='add'>+// Iterate over items of the array in a for loop</div><div class='add'>+//</div><div class='add'>+#define rb_darray_foreach(ary, idx_name, elem_ptr_var) \</div><div class='add'>+    for (size_t idx_name = 0; idx_name &lt; rb_darray_size(ary) &amp;&amp; ((elem_ptr_var) = rb_darray_ref(ary, idx_name)); ++idx_name)</div><div class='add'>+</div><div class='add'>+// Iterate over valid indicies in the array in a for loop</div><div class='add'>+//</div><div class='add'>+#define rb_darray_for(ary, idx_name) \</div><div class='add'>+    for (size_t idx_name = 0; idx_name &lt; rb_darray_size(ary); ++idx_name)</div><div class='add'>+</div><div class='add'>+// Make a dynamic array of a certain size. All bytes backing the elements are set to zero.</div><div class='add'>+//</div><div class='add'>+// Note that NULL is a valid empty dynamic array.</div><div class='add'>+//</div><div class='add'>+// void rb_darray_make(rb_darray(T) *ptr_to_ary, size_t size);</div><div class='add'>+//</div><div class='add'>+#define rb_darray_make(ptr_to_ary, size) \</div><div class='add'>+    rb_darray_make_impl((ptr_to_ary), size, sizeof(**(ptr_to_ary)), \</div><div class='add'>+                         sizeof((*(ptr_to_ary))-&gt;data[0]))</div><div class='add'>+</div><div class='add'>+#define rb_darray_data_ptr(ary) ((ary)-&gt;data)</div><div class='add'>+</div><div class='add'>+// Set the size of the array to zero without freeing the backing memory.</div><div class='add'>+// Allows reusing the same array.</div><div class='add'>+//</div><div class='add'>+#define rb_darray_clear(ary) (ary-&gt;meta.size = 0)</div><div class='add'>+</div><div class='add'>+typedef struct rb_darray_meta {</div><div class='add'>+    size_t size;</div><div class='add'>+    size_t capa;</div><div class='add'>+} rb_darray_meta_t;</div><div class='add'>+</div><div class='add'>+// Get the size of the dynamic array.</div><div class='add'>+//</div><div class='add'>+static inline size_t</div><div class='add'>+rb_darray_size(const void *ary)</div><div class='add'>+{</div><div class='add'>+    const rb_darray_meta_t *meta = ary;</div><div class='add'>+    return meta ? meta-&gt;size : 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Get the capacity of the dynamic array.</div><div class='add'>+//</div><div class='add'>+static inline size_t</div><div class='add'>+rb_darray_capa(const void *ary)</div><div class='add'>+{</div><div class='add'>+    const rb_darray_meta_t *meta = ary;</div><div class='add'>+    return meta ? meta-&gt;capa : 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Free the dynamic array.</div><div class='add'>+//</div><div class='add'>+static inline void</div><div class='add'>+rb_darray_free(void *ary)</div><div class='add'>+{</div><div class='add'>+    rb_darray_meta_t *meta = ary;</div><div class='add'>+    ruby_sized_xfree(ary, meta-&gt;capa);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Internal function</div><div class='add'>+// Ensure there is space for one more element.</div><div class='add'>+// Note: header_size can be bigger than sizeof(rb_darray_meta_t) when T is __int128_t, for example.</div><div class='add'>+static inline void</div><div class='add'>+rb_darray_ensure_space(void *ptr_to_ary, size_t header_size, size_t element_size)</div><div class='add'>+{</div><div class='add'>+    rb_darray_meta_t **ptr_to_ptr_to_meta = ptr_to_ary;</div><div class='add'>+    rb_darray_meta_t *meta = *ptr_to_ptr_to_meta;</div><div class='add'>+    size_t current_capa = rb_darray_capa(meta);</div><div class='add'>+    if (rb_darray_size(meta) &lt; current_capa) return;</div><div class='add'>+</div><div class='add'>+    // Double the capacity</div><div class='add'>+    size_t new_capa = current_capa == 0 ? 1 : current_capa * 2;</div><div class='add'>+</div><div class='add'>+    rb_darray_meta_t *doubled_ary = rb_xrealloc_mul_add(meta, new_capa, element_size, header_size);</div><div class='add'>+    // rb_xrealloc functions guarantee that NULL is not returned</div><div class='add'>+    assert(doubled_ary != NULL);</div><div class='add'>+</div><div class='add'>+    if (meta == NULL) {</div><div class='add'>+        // First allocation. Initialize size. On subsequence allocations</div><div class='add'>+        // realloc takes care of carrying over the size.</div><div class='add'>+        doubled_ary-&gt;size = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    doubled_ary-&gt;capa = new_capa;</div><div class='add'>+</div><div class='add'>+    // We don't have access to the type of the dynamic array in function context.</div><div class='add'>+    // Write out result with memcpy to avoid strict aliasing issue.</div><div class='add'>+    memcpy(ptr_to_ary, &amp;doubled_ary, sizeof(doubled_ary));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+rb_darray_make_impl(void *ptr_to_ary, size_t array_size, size_t header_size, size_t element_size)</div><div class='add'>+{</div><div class='add'>+    rb_darray_meta_t **ptr_to_ptr_to_meta = ptr_to_ary;</div><div class='add'>+    if (array_size == 0) {</div><div class='add'>+        *ptr_to_ptr_to_meta = NULL;</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_darray_meta_t *meta = rb_xcalloc_mul_add(array_size, element_size, header_size);</div><div class='add'>+    // rb_xcalloc functions guarantee that NULL is not returned</div><div class='add'>+    assert(meta != NULL);</div><div class='add'>+</div><div class='add'>+    meta-&gt;size = array_size;</div><div class='add'>+    meta-&gt;capa = array_size;</div><div class='add'>+</div><div class='add'>+    // We don't have access to the type of the dynamic array in function context.</div><div class='add'>+    // Write out result with memcpy to avoid strict aliasing issue.</div><div class='add'>+    memcpy(ptr_to_ary, &amp;meta, sizeof(meta));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_DARRAY_H */</div><div class='head'>diff --git a/debug.c b/debug.c<br/>index e4ad163ad1..3dd0f71906 100644<br/>--- a/<a href='/ruby.git/tree/debug.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>debug.c</a><br/>+++ b/<a href='/ruby.git/tree/debug.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>debug.c</a></div><div class='hunk'>@@ -9,15 +9,33 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+</div><div class='add'>+#include "eval_intern.h"</div><div class='add'>+#include "encindex.h"</div><div class='add'>+#include "id.h"</div><div class='add'>+#include "internal/signal.h"</div><div class='ctx'> #include "ruby/encoding.h"</div><div class='ctx'> #include "ruby/io.h"</div><div class='add'>+#include "ruby/ruby.h"</div><div class='ctx'> #include "ruby/util.h"</div><div class='del'>-#include "vm_debug.h"</div><div class='del'>-#include "eval_intern.h"</div><div class='del'>-#include "vm_core.h"</div><div class='ctx'> #include "symbol.h"</div><div class='del'>-#include "id.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "vm_debug.h"</div><div class='add'>+#include "vm_callinfo.h"</div><div class='add'>+#include "ruby/thread_native.h"</div><div class='add'>+#include "ractor_core.h"</div><div class='add'>+</div><div class='add'>+/* This is the only place struct RIMemo is actually used */</div><div class='add'>+struct RIMemo {</div><div class='add'>+    VALUE flags;</div><div class='add'>+    VALUE v0;</div><div class='add'>+    VALUE v1;</div><div class='add'>+    VALUE v2;</div><div class='add'>+    VALUE v3;</div><div class='add'>+};</div><div class='ctx'> </div><div class='ctx'> /* for gdb */</div><div class='ctx'> const union {</div><div class='hunk'>@@ -28,31 +46,41 @@ const union {</div><div class='ctx'>     enum ruby_method_ids        method_ids;</div><div class='ctx'>     enum ruby_id_types          id_types;</div><div class='ctx'>     enum ruby_fl_type           fl_types;</div><div class='add'>+    enum ruby_fl_ushift         fl_ushift;</div><div class='ctx'>     enum ruby_encoding_consts   encoding_consts;</div><div class='ctx'>     enum ruby_coderange_type    enc_coderange_types;</div><div class='ctx'>     enum ruby_econv_flag_type   econv_flag_types;</div><div class='add'>+    rb_econv_result_t           econv_result;</div><div class='add'>+    enum ruby_preserved_encindex encoding_index;</div><div class='ctx'>     enum ruby_robject_flags     robject_flags;</div><div class='add'>+#if !USE_RVARGC</div><div class='add'>+    enum ruby_robject_consts    robject_consts;</div><div class='add'>+#endif</div><div class='ctx'>     enum ruby_rmodule_flags     rmodule_flags;</div><div class='ctx'>     enum ruby_rstring_flags     rstring_flags;</div><div class='add'>+#if !USE_RVARGC</div><div class='add'>+    enum ruby_rstring_consts    rstring_consts;</div><div class='add'>+#endif</div><div class='ctx'>     enum ruby_rarray_flags      rarray_flags;</div><div class='add'>+    enum ruby_rarray_consts     rarray_consts;</div><div class='ctx'>     enum {</div><div class='del'>-	RUBY_FMODE_READABLE		= FMODE_READABLE,</div><div class='del'>-	RUBY_FMODE_WRITABLE		= FMODE_WRITABLE,</div><div class='del'>-	RUBY_FMODE_READWRITE		= FMODE_READWRITE,</div><div class='del'>-	RUBY_FMODE_BINMODE		= FMODE_BINMODE,</div><div class='del'>-	RUBY_FMODE_SYNC 		= FMODE_SYNC,</div><div class='del'>-	RUBY_FMODE_TTY			= FMODE_TTY,</div><div class='del'>-	RUBY_FMODE_DUPLEX		= FMODE_DUPLEX,</div><div class='del'>-	RUBY_FMODE_APPEND		= FMODE_APPEND,</div><div class='del'>-	RUBY_FMODE_CREATE		= FMODE_CREATE,</div><div class='del'>-	RUBY_FMODE_NOREVLOOKUP		= 0x00000100,</div><div class='del'>-	RUBY_FMODE_TRUNC		= FMODE_TRUNC,</div><div class='del'>-	RUBY_FMODE_TEXTMODE		= FMODE_TEXTMODE,</div><div class='del'>-	RUBY_FMODE_PREP 		= 0x00010000,</div><div class='del'>-	RUBY_FMODE_SETENC_BY_BOM	= FMODE_SETENC_BY_BOM,</div><div class='del'>-	RUBY_FMODE_UNIX 		= 0x00200000,</div><div class='del'>-	RUBY_FMODE_INET 		= 0x00400000,</div><div class='del'>-	RUBY_FMODE_INET6		= 0x00800000,</div><div class='add'>+        RUBY_FMODE_READABLE		= FMODE_READABLE,</div><div class='add'>+        RUBY_FMODE_WRITABLE		= FMODE_WRITABLE,</div><div class='add'>+        RUBY_FMODE_READWRITE		= FMODE_READWRITE,</div><div class='add'>+        RUBY_FMODE_BINMODE		= FMODE_BINMODE,</div><div class='add'>+        RUBY_FMODE_SYNC 		= FMODE_SYNC,</div><div class='add'>+        RUBY_FMODE_TTY			= FMODE_TTY,</div><div class='add'>+        RUBY_FMODE_DUPLEX		= FMODE_DUPLEX,</div><div class='add'>+        RUBY_FMODE_APPEND		= FMODE_APPEND,</div><div class='add'>+        RUBY_FMODE_CREATE		= FMODE_CREATE,</div><div class='add'>+        RUBY_FMODE_NOREVLOOKUP		= 0x00000100,</div><div class='add'>+        RUBY_FMODE_TRUNC		= FMODE_TRUNC,</div><div class='add'>+        RUBY_FMODE_TEXTMODE		= FMODE_TEXTMODE,</div><div class='add'>+        RUBY_FMODE_PREP 		= 0x00010000,</div><div class='add'>+        RUBY_FMODE_SETENC_BY_BOM	= FMODE_SETENC_BY_BOM,</div><div class='add'>+        RUBY_FMODE_UNIX 		= 0x00200000,</div><div class='add'>+        RUBY_FMODE_INET 		= 0x00400000,</div><div class='add'>+        RUBY_FMODE_INET6		= 0x00800000,</div><div class='ctx'> </div><div class='ctx'>         RUBY_NODE_TYPESHIFT = NODE_TYPESHIFT,</div><div class='ctx'>         RUBY_NODE_TYPEMASK  = NODE_TYPEMASK,</div><div class='hunk'>@@ -60,9 +88,9 @@ const union {</div><div class='ctx'>         RUBY_NODE_FL_NEWLINE   = NODE_FL_NEWLINE</div><div class='ctx'>     } various;</div><div class='ctx'>     union {</div><div class='del'>-	enum imemo_type                     types;</div><div class='del'>-	enum {RUBY_IMEMO_MASK = IMEMO_MASK} mask;</div><div class='del'>-	struct RIMemo                      *ptr;</div><div class='add'>+        enum imemo_type                     types;</div><div class='add'>+        enum {RUBY_IMEMO_MASK = IMEMO_MASK} mask;</div><div class='add'>+        struct RIMemo                      *ptr;</div><div class='ctx'>     } imemo;</div><div class='ctx'>     struct RSymbol *symbol_ptr;</div><div class='ctx'>     enum vm_call_flag_bits vm_call_flags;</div><div class='hunk'>@@ -74,9 +102,9 @@ int</div><div class='ctx'> ruby_debug_print_indent(int level, int debug_level, int indent_level)</div><div class='ctx'> {</div><div class='ctx'>     if (level &lt; debug_level) {</div><div class='del'>-	fprintf(stderr, "%*s", indent_level, "");</div><div class='del'>-	fflush(stderr);</div><div class='del'>-	return TRUE;</div><div class='add'>+        fprintf(stderr, "%*s", indent_level, "");</div><div class='add'>+        fflush(stderr);</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     return FALSE;</div><div class='ctx'> }</div><div class='hunk'>@@ -96,11 +124,11 @@ VALUE</div><div class='ctx'> ruby_debug_print_value(int level, int debug_level, const char *header, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (level &lt; debug_level) {</div><div class='del'>-	char buff[0x100];</div><div class='del'>-	rb_raw_obj_info(buff, 0x100, obj);</div><div class='add'>+        char buff[0x100];</div><div class='add'>+        rb_raw_obj_info(buff, 0x100, obj);</div><div class='ctx'> </div><div class='del'>-	fprintf(stderr, "DBG&gt; %s: %s\n", header, buff);</div><div class='del'>-	fflush(stderr);</div><div class='add'>+        fprintf(stderr, "DBG&gt; %s: %s\n", header, buff);</div><div class='add'>+        fflush(stderr);</div><div class='ctx'>     }</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='hunk'>@@ -115,8 +143,8 @@ ID</div><div class='ctx'> ruby_debug_print_id(int level, int debug_level, const char *header, ID id)</div><div class='ctx'> {</div><div class='ctx'>     if (level &lt; debug_level) {</div><div class='del'>-	fprintf(stderr, "DBG&gt; %s: %s\n", header, rb_id2name(id));</div><div class='del'>-	fflush(stderr);</div><div class='add'>+        fprintf(stderr, "DBG&gt; %s: %s\n", header, rb_id2name(id));</div><div class='add'>+        fflush(stderr);</div><div class='ctx'>     }</div><div class='ctx'>     return id;</div><div class='ctx'> }</div><div class='hunk'>@@ -125,8 +153,8 @@ NODE *</div><div class='ctx'> ruby_debug_print_node(int level, int debug_level, const char *header, const NODE *node)</div><div class='ctx'> {</div><div class='ctx'>     if (level &lt; debug_level) {</div><div class='del'>-	fprintf(stderr, "DBG&gt; %s: %s (%u)\n", header,</div><div class='del'>-		ruby_node_name(nd_type(node)), nd_line(node));</div><div class='add'>+        fprintf(stderr, "DBG&gt; %s: %s (%u)\n", header,</div><div class='add'>+                ruby_node_name(nd_type(node)), nd_line(node));</div><div class='ctx'>     }</div><div class='ctx'>     return (NODE *)node;</div><div class='ctx'> }</div><div class='hunk'>@@ -147,6 +175,7 @@ extern int ruby_w32_rtc_error;</div><div class='ctx'> UINT ruby_w32_codepage[2];</div><div class='ctx'> #endif</div><div class='ctx'> extern int ruby_rgengc_debug;</div><div class='add'>+extern int ruby_on_ci;</div><div class='ctx'> </div><div class='ctx'> int</div><div class='ctx'> ruby_env_debug_option(const char *str, int len, void *arg)</div><div class='hunk'>@@ -155,11 +184,11 @@ ruby_env_debug_option(const char *str, int len, void *arg)</div><div class='ctx'>     size_t retlen;</div><div class='ctx'>     unsigned long n;</div><div class='ctx'> #define SET_WHEN(name, var, val) do {	    \</div><div class='del'>-	if (len == sizeof(name) - 1 &amp;&amp;	    \</div><div class='del'>-	    strncmp(str, (name), len) == 0) { \</div><div class='del'>-	    (var) = (val);		    \</div><div class='del'>-	    return 1;			    \</div><div class='del'>-	}				    \</div><div class='add'>+        if (len == sizeof(name) - 1 &amp;&amp;	    \</div><div class='add'>+            strncmp(str, (name), len) == 0) { \</div><div class='add'>+            (var) = (val);		    \</div><div class='add'>+            return 1;			    \</div><div class='add'>+        }				    \</div><div class='ctx'>     } while (0)</div><div class='ctx'> #define NAME_MATCH_VALUE(name)				\</div><div class='ctx'>     ((size_t)len &gt;= sizeof(name)-1 &amp;&amp;			\</div><div class='hunk'>@@ -168,34 +197,35 @@ ruby_env_debug_option(const char *str, int len, void *arg)</div><div class='ctx'>       (str[sizeof(name)-1] == '=' &amp;&amp;			\</div><div class='ctx'>        (str += sizeof(name), len -= sizeof(name), 1))))</div><div class='ctx'> #define SET_UINT(val) do { \</div><div class='del'>-	n = ruby_scan_digits(str, len, 10, &amp;retlen, &amp;ov); \</div><div class='del'>-	if (!ov &amp;&amp; retlen) { \</div><div class='del'>-	    val = (unsigned int)n; \</div><div class='del'>-	} \</div><div class='del'>-	str += retlen; \</div><div class='del'>-	len -= retlen; \</div><div class='add'>+        n = ruby_scan_digits(str, len, 10, &amp;retlen, &amp;ov); \</div><div class='add'>+        if (!ov &amp;&amp; retlen) { \</div><div class='add'>+            val = (unsigned int)n; \</div><div class='add'>+        } \</div><div class='add'>+        str += retlen; \</div><div class='add'>+        len -= retlen; \</div><div class='ctx'>     } while (0)</div><div class='ctx'> #define SET_UINT_LIST(name, vals, num) do { \</div><div class='del'>-	int i; \</div><div class='del'>-	for (i = 0; i &lt; (num); ++i) { \</div><div class='del'>-	    SET_UINT((vals)[i]); \</div><div class='del'>-	    if (!len || *str != ':') break; \</div><div class='del'>-	    ++str; \</div><div class='del'>-	    --len; \</div><div class='del'>-	} \</div><div class='del'>-	if (len &gt; 0) { \</div><div class='del'>-	    fprintf(stderr, "ignored "name" option: `%.*s'\n", len, str); \</div><div class='del'>-	} \</div><div class='add'>+        int i; \</div><div class='add'>+        for (i = 0; i &lt; (num); ++i) { \</div><div class='add'>+            SET_UINT((vals)[i]); \</div><div class='add'>+            if (!len || *str != ':') break; \</div><div class='add'>+            ++str; \</div><div class='add'>+            --len; \</div><div class='add'>+        } \</div><div class='add'>+        if (len &gt; 0) { \</div><div class='add'>+            fprintf(stderr, "ignored "name" option: `%.*s'\n", len, str); \</div><div class='add'>+        } \</div><div class='ctx'>     } while (0)</div><div class='ctx'> #define SET_WHEN_UINT(name, vals, num, req) \</div><div class='ctx'>     if (NAME_MATCH_VALUE(name)) SET_UINT_LIST(name, vals, num);</div><div class='ctx'> </div><div class='ctx'>     SET_WHEN("gc_stress", *ruby_initial_gc_stress_ptr, Qtrue);</div><div class='ctx'>     SET_WHEN("core", ruby_enable_coredump, 1);</div><div class='add'>+    SET_WHEN("ci", ruby_on_ci, 1);</div><div class='ctx'>     if (NAME_MATCH_VALUE("rgengc")) {</div><div class='del'>-	if (!len) ruby_rgengc_debug = 1;</div><div class='del'>-	else SET_UINT_LIST("rgengc", &amp;ruby_rgengc_debug, 1);</div><div class='del'>-	return 1;</div><div class='add'>+        if (!len) ruby_rgengc_debug = 1;</div><div class='add'>+        else SET_UINT_LIST("rgengc", &amp;ruby_rgengc_debug, 1);</div><div class='add'>+        return 1;</div><div class='ctx'>     }</div><div class='ctx'> #if defined _WIN32</div><div class='ctx'> # if RUBY_MSVCRT_VERSION &gt;= 80</div><div class='hunk'>@@ -204,9 +234,9 @@ ruby_env_debug_option(const char *str, int len, void *arg)</div><div class='ctx'> #endif</div><div class='ctx'> #if defined _WIN32 || defined __CYGWIN__</div><div class='ctx'>     if (NAME_MATCH_VALUE("codepage")) {</div><div class='del'>-	if (!len) fprintf(stderr, "missing codepage argument");</div><div class='del'>-	else SET_UINT_LIST("codepage", ruby_w32_codepage, numberof(ruby_w32_codepage));</div><div class='del'>-	return 1;</div><div class='add'>+        if (!len) fprintf(stderr, "missing codepage argument");</div><div class='add'>+        else SET_UINT_LIST("codepage", ruby_w32_codepage, numberof(ruby_w32_codepage));</div><div class='add'>+        return 1;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return 0;</div><div class='hunk'>@@ -216,12 +246,388 @@ static void</div><div class='ctx'> set_debug_option(const char *str, int len, void *arg)</div><div class='ctx'> {</div><div class='ctx'>     if (!ruby_env_debug_option(str, len, arg)) {</div><div class='del'>-	fprintf(stderr, "unexpected debug option: %.*s\n", len, str);</div><div class='add'>+        fprintf(stderr, "unexpected debug option: %.*s\n", len, str);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if USE_RUBY_DEBUG_LOG</div><div class='add'>+static void setup_debug_log(void);</div><div class='add'>+#else</div><div class='add'>+#define setup_debug_log()</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> ruby_set_debug_option(const char *str)</div><div class='ctx'> {</div><div class='ctx'>     ruby_each_words(str, set_debug_option, 0);</div><div class='add'>+    setup_debug_log();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if USE_RUBY_DEBUG_LOG</div><div class='add'>+</div><div class='add'>+// RUBY_DEBUG_LOG features</div><div class='add'>+// See vm_debug.h comments for details.</div><div class='add'>+</div><div class='add'>+#define MAX_DEBUG_LOG             0x1000</div><div class='add'>+#define MAX_DEBUG_LOG_MESSAGE_LEN 0x0200</div><div class='add'>+#define MAX_DEBUG_LOG_FILTER_LEN  0x0020</div><div class='add'>+#define MAX_DEBUG_LOG_FILTER_NUM  0x0010</div><div class='add'>+</div><div class='add'>+enum ruby_debug_log_mode ruby_debug_log_mode;</div><div class='add'>+</div><div class='add'>+struct debug_log_filter {</div><div class='add'>+    enum debug_log_filter_type {</div><div class='add'>+        dlf_all,</div><div class='add'>+        dlf_file, // "file:..."</div><div class='add'>+        dlf_func, // "func:..."</div><div class='add'>+    } type;</div><div class='add'>+    bool negative;</div><div class='add'>+    char str[MAX_DEBUG_LOG_FILTER_LEN];</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char *dlf_type_names[] = {</div><div class='add'>+    "all",</div><div class='add'>+    "file",</div><div class='add'>+    "func",</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static struct {</div><div class='add'>+    char *mem;</div><div class='add'>+    unsigned int cnt;</div><div class='add'>+    struct debug_log_filter filters[MAX_DEBUG_LOG_FILTER_NUM];</div><div class='add'>+    unsigned int filters_num;</div><div class='add'>+    rb_nativethread_lock_t lock;</div><div class='add'>+    FILE *output;</div><div class='add'>+} debug_log;</div><div class='add'>+</div><div class='add'>+static char *</div><div class='add'>+RUBY_DEBUG_LOG_MEM_ENTRY(unsigned int index)</div><div class='add'>+{</div><div class='add'>+    return &amp;debug_log.mem[MAX_DEBUG_LOG_MESSAGE_LEN * index];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum debug_log_filter_type</div><div class='add'>+filter_type(const char *str, int *skiplen)</div><div class='add'>+{</div><div class='add'>+    if (strncmp(str, "file:", 5) == 0) {</div><div class='add'>+        *skiplen = 5;</div><div class='add'>+        return dlf_file;</div><div class='add'>+    }</div><div class='add'>+    else if(strncmp(str, "func:", 5) == 0) {</div><div class='add'>+        *skiplen = 5;</div><div class='add'>+        return dlf_func;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        *skiplen = 0;</div><div class='add'>+        return dlf_all;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+setup_debug_log_filter(void)</div><div class='add'>+{</div><div class='add'>+    const char *filter_config = getenv("RUBY_DEBUG_LOG_FILTER");</div><div class='add'>+</div><div class='add'>+    if (filter_config &amp;&amp; strlen(filter_config) &gt; 0) {</div><div class='add'>+        unsigned int i;</div><div class='add'>+        for (i=0; i&lt;MAX_DEBUG_LOG_FILTER_NUM &amp;&amp; filter_config; i++) {</div><div class='add'>+            size_t len;</div><div class='add'>+            const char *str = filter_config;</div><div class='add'>+            const char *p;</div><div class='add'>+</div><div class='add'>+            if ((p = strchr(str, ',')) == NULL) {</div><div class='add'>+                len = strlen(str);</div><div class='add'>+                filter_config = NULL;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                len = p - str - 1; // 1 is ','</div><div class='add'>+                filter_config = p + 1;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            // positive/negative</div><div class='add'>+            if (*str == '-') {</div><div class='add'>+                debug_log.filters[i].negative = true;</div><div class='add'>+                str++;</div><div class='add'>+            }</div><div class='add'>+            else if (*str == '+') {</div><div class='add'>+                // negative is false on default.</div><div class='add'>+                str++;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            // type</div><div class='add'>+            int skiplen;</div><div class='add'>+            debug_log.filters[i].type = filter_type(str, &amp;skiplen);</div><div class='add'>+            len -= skiplen;</div><div class='add'>+</div><div class='add'>+            if (len &gt;= MAX_DEBUG_LOG_FILTER_LEN) {</div><div class='add'>+                fprintf(stderr, "too long: %s (max:%d)\n", str, MAX_DEBUG_LOG_FILTER_LEN - 1);</div><div class='add'>+                exit(1);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            // body</div><div class='add'>+            strncpy(debug_log.filters[i].str, str + skiplen, len);</div><div class='add'>+            debug_log.filters[i].str[len] = 0;</div><div class='add'>+        }</div><div class='add'>+        debug_log.filters_num = i;</div><div class='add'>+</div><div class='add'>+        for (i=0; i&lt;debug_log.filters_num; i++) {</div><div class='add'>+            fprintf(stderr, "RUBY_DEBUG_LOG_FILTER[%d]=%s (%s%s)\n", i,</div><div class='add'>+                    debug_log.filters[i].str,</div><div class='add'>+                    debug_log.filters[i].negative ? "-" : "",</div><div class='add'>+                    dlf_type_names[debug_log.filters[i].type]);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+setup_debug_log(void)</div><div class='add'>+{</div><div class='add'>+    // check RUBY_DEBUG_LOG</div><div class='add'>+    const char *log_config = getenv("RUBY_DEBUG_LOG");</div><div class='add'>+    if (log_config &amp;&amp; strlen(log_config) &gt; 0) {</div><div class='add'>+        if (strcmp(log_config, "mem") == 0) {</div><div class='add'>+            debug_log.mem = (char *)malloc(MAX_DEBUG_LOG * MAX_DEBUG_LOG_MESSAGE_LEN);</div><div class='add'>+            if (debug_log.mem == NULL) {</div><div class='add'>+                fprintf(stderr, "setup_debug_log failed (can't allocate memory)\n");</div><div class='add'>+                exit(1);</div><div class='add'>+            }</div><div class='add'>+            ruby_debug_log_mode |= ruby_debug_log_memory;</div><div class='add'>+        }</div><div class='add'>+        else if (strcmp(log_config, "stderr") == 0) {</div><div class='add'>+            ruby_debug_log_mode |= ruby_debug_log_stderr;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ruby_debug_log_mode |= ruby_debug_log_file;</div><div class='add'>+            if ((debug_log.output = fopen(log_config, "w")) == NULL) {</div><div class='add'>+                fprintf(stderr, "can not open %s for RUBY_DEBUG_LOG\n", log_config);</div><div class='add'>+                exit(1);</div><div class='add'>+            }</div><div class='add'>+            setvbuf(debug_log.output, NULL, _IONBF, 0);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        fprintf(stderr, "RUBY_DEBUG_LOG=%s %s%s%s\n", log_config,</div><div class='add'>+                (ruby_debug_log_mode &amp; ruby_debug_log_memory) ? "[mem]" : "",</div><div class='add'>+                (ruby_debug_log_mode &amp; ruby_debug_log_stderr) ? "[stderr]" : "",</div><div class='add'>+                (ruby_debug_log_mode &amp; ruby_debug_log_file)   ? "[file]" : "");</div><div class='add'>+        rb_nativethread_lock_initialize(&amp;debug_log.lock);</div><div class='add'>+</div><div class='add'>+        setup_debug_log_filter();</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+check_filter(const char *str, const struct debug_log_filter *filter, bool *state)</div><div class='add'>+{</div><div class='add'>+    if (filter-&gt;negative) {</div><div class='add'>+        if (strstr(str, filter-&gt;str) == NULL) {</div><div class='add'>+            *state = true;</div><div class='add'>+            return false;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            *state = false;</div><div class='add'>+            return true;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (strstr(str, filter-&gt;str) != NULL) {</div><div class='add'>+            *state = true;</div><div class='add'>+            return true;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            *state = false;</div><div class='add'>+            return false;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+//</div><div class='add'>+// RUBY_DEBUG_LOG_FILTER=-foo,-bar,baz,boo</div><div class='add'>+// returns true if</div><div class='add'>+//   (func_name or file_name) doesn't contain foo</div><div class='add'>+// and</div><div class='add'>+//   (func_name or file_name) doesn't contain bar</div><div class='add'>+// and</div><div class='add'>+//   (func_name or file_name) contains baz or boo</div><div class='add'>+//</div><div class='add'>+// RUBY_DEBUG_LOG_FILTER=foo,bar,-baz,-boo</div><div class='add'>+// retunrs true if</div><div class='add'>+//   (func_name or file_name) contains foo or bar</div><div class='add'>+// or</div><div class='add'>+//   (func_name or file_name) doesn't contain baz and</div><div class='add'>+//   (func_name or file_name) doesn't contain boo and</div><div class='add'>+//</div><div class='add'>+// You can specify "file:" (ex file:foo) or "func:" (ex  func:foo)</div><div class='add'>+// prefixes to specify the filter for.</div><div class='add'>+//</div><div class='add'>+bool</div><div class='add'>+ruby_debug_log_filter(const char *func_name, const char *file_name)</div><div class='add'>+{</div><div class='add'>+    if (debug_log.filters_num &gt; 0) {</div><div class='add'>+        bool state = false;</div><div class='add'>+</div><div class='add'>+        for (unsigned int i = 0; i&lt;debug_log.filters_num; i++) {</div><div class='add'>+            const struct debug_log_filter *filter = &amp;debug_log.filters[i];</div><div class='add'>+</div><div class='add'>+            switch (filter-&gt;type) {</div><div class='add'>+              case dlf_all:</div><div class='add'>+                if (check_filter(func_name, filter, &amp;state)) return state;</div><div class='add'>+                if (check_filter(file_name, filter, &amp;state)) return state;</div><div class='add'>+                break;</div><div class='add'>+              case dlf_func:</div><div class='add'>+                if (check_filter(func_name, filter, &amp;state)) return state;</div><div class='add'>+                break;</div><div class='add'>+              case dlf_file:</div><div class='add'>+                if (check_filter(file_name, filter, &amp;state)) return state;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        return state;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const char *</div><div class='add'>+pretty_filename(const char *path)</div><div class='add'>+{</div><div class='add'>+    // basename is one idea.</div><div class='add'>+    const char *s;</div><div class='add'>+    while ((s = strchr(path, '/')) != NULL) {</div><div class='add'>+        path = s+1;</div><div class='add'>+    }</div><div class='add'>+    return path;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#undef ruby_debug_log</div><div class='add'>+void</div><div class='add'>+ruby_debug_log(const char *file, int line, const char *func_name, const char *fmt, ...)</div><div class='add'>+{</div><div class='add'>+    char buff[MAX_DEBUG_LOG_MESSAGE_LEN] = {0};</div><div class='add'>+    int len = 0;</div><div class='add'>+    int r = 0;</div><div class='add'>+</div><div class='add'>+    // message title</div><div class='add'>+    if (func_name &amp;&amp; len &lt; MAX_DEBUG_LOG_MESSAGE_LEN) {</div><div class='add'>+        r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN, "%s\t", func_name);</div><div class='add'>+        if (r &lt; 0) rb_bug("ruby_debug_log returns %d\n", r);</div><div class='add'>+        len += r;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // message</div><div class='add'>+    if (fmt &amp;&amp; len &lt; MAX_DEBUG_LOG_MESSAGE_LEN) {</div><div class='add'>+        va_list args;</div><div class='add'>+        va_start(args, fmt);</div><div class='add'>+        r = vsnprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN - len, fmt, args);</div><div class='add'>+        va_end(args);</div><div class='add'>+        if (r &lt; 0) rb_bug("ruby_debug_log vsnprintf() returns %d", r);</div><div class='add'>+        len += r;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // optional information</div><div class='add'>+</div><div class='add'>+    // C location</div><div class='add'>+    if (file &amp;&amp; len &lt; MAX_DEBUG_LOG_MESSAGE_LEN) {</div><div class='add'>+        r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN, "\t%s:%d", pretty_filename(file), line);</div><div class='add'>+        if (r &lt; 0) rb_bug("ruby_debug_log returns %d\n", r);</div><div class='add'>+        len += r;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (rb_current_execution_context(false)) {</div><div class='add'>+        // Ruby location</div><div class='add'>+        int ruby_line;</div><div class='add'>+        const char *ruby_file = rb_source_location_cstr(&amp;ruby_line);</div><div class='add'>+        if (len &lt; MAX_DEBUG_LOG_MESSAGE_LEN) {</div><div class='add'>+            if (ruby_file) {</div><div class='add'>+                r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN - len, "\t%s:%d", pretty_filename(ruby_file), ruby_line);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN - len, "\t");</div><div class='add'>+            }</div><div class='add'>+            if (r &lt; 0) rb_bug("ruby_debug_log returns %d\n", r);</div><div class='add'>+            len += r;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // ractor information</div><div class='add'>+        if (ruby_single_main_ractor == NULL) {</div><div class='add'>+            rb_ractor_t *cr = GET_RACTOR();</div><div class='add'>+            if (r &amp;&amp; len &lt; MAX_DEBUG_LOG_MESSAGE_LEN) {</div><div class='add'>+                r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN - len, "\tr:#%u/%u",</div><div class='add'>+                             (unsigned int)rb_ractor_id(cr), GET_VM()-&gt;ractor.cnt);</div><div class='add'>+                if (r &lt; 0) rb_bug("ruby_debug_log returns %d\n", r);</div><div class='add'>+                len += r;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // thread information</div><div class='add'>+        const rb_thread_t *th = GET_THREAD();</div><div class='add'>+        if (r &amp;&amp; len &lt; MAX_DEBUG_LOG_MESSAGE_LEN) {</div><div class='add'>+            r = snprintf(buff + len, MAX_DEBUG_LOG_MESSAGE_LEN - len, "\tth:%u", rb_th_serial(th));</div><div class='add'>+            if (r &lt; 0) rb_bug("ruby_debug_log returns %d\n", r);</div><div class='add'>+            len += r;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_nativethread_lock_lock(&amp;debug_log.lock);</div><div class='add'>+    {</div><div class='add'>+        unsigned int cnt = debug_log.cnt++;</div><div class='add'>+</div><div class='add'>+        if (ruby_debug_log_mode &amp; ruby_debug_log_memory) {</div><div class='add'>+            unsigned int index = cnt % MAX_DEBUG_LOG;</div><div class='add'>+            char *dst = RUBY_DEBUG_LOG_MEM_ENTRY(index);</div><div class='add'>+            strncpy(dst, buff, MAX_DEBUG_LOG_MESSAGE_LEN);</div><div class='add'>+        }</div><div class='add'>+        if (ruby_debug_log_mode &amp; ruby_debug_log_stderr) {</div><div class='add'>+            fprintf(stderr, "%4u: %s\n", cnt, buff);</div><div class='add'>+        }</div><div class='add'>+        if (ruby_debug_log_mode &amp; ruby_debug_log_file) {</div><div class='add'>+            fprintf(debug_log.output, "%u\t%s\n", cnt, buff);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    rb_nativethread_lock_unlock(&amp;debug_log.lock);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// for debugger</div><div class='add'>+static void</div><div class='add'>+debug_log_dump(FILE *out, unsigned int n)</div><div class='add'>+{</div><div class='add'>+    if (ruby_debug_log_mode &amp; ruby_debug_log_memory) {</div><div class='add'>+        unsigned int size = debug_log.cnt &gt; MAX_DEBUG_LOG ? MAX_DEBUG_LOG : debug_log.cnt;</div><div class='add'>+        unsigned int current_index = debug_log.cnt % MAX_DEBUG_LOG;</div><div class='add'>+        if (n == 0) n = size;</div><div class='add'>+        if (n &gt; size) n = size;</div><div class='add'>+</div><div class='add'>+        for (unsigned int i=0; i&lt;n; i++) {</div><div class='add'>+            int index = current_index - size + i;</div><div class='add'>+            if (index &lt; 0) index += MAX_DEBUG_LOG;</div><div class='add'>+            VM_ASSERT(index &lt;= MAX_DEBUG_LOG);</div><div class='add'>+            const char *mesg = RUBY_DEBUG_LOG_MEM_ENTRY(index);;</div><div class='add'>+            fprintf(out, "%4u: %s\n", debug_log.cnt - size + i, mesg);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        fprintf(stderr, "RUBY_DEBUG_LOG=mem is not specified.");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// for debuggers</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ruby_debug_log_print(unsigned int n)</div><div class='add'>+{</div><div class='add'>+    debug_log_dump(stderr, n);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ruby_debug_log_dump(const char *fname, unsigned int n)</div><div class='add'>+{</div><div class='add'>+    FILE *fp = fopen(fname, "w");</div><div class='add'>+    if (fp == NULL) {</div><div class='add'>+        fprintf(stderr, "can't open %s. give up.\n", fname);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        debug_log_dump(fp, n);</div><div class='add'>+        fclose(fp);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='add'>+#endif // #if USE_RUBY_DEBUG_LOG</div><div class='head'>diff --git a/debug_counter.c b/debug_counter.c<br/>index 8c4004af41..463bebf849 100644<br/>--- a/<a href='/ruby.git/tree/debug_counter.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>debug_counter.c</a><br/>+++ b/<a href='/ruby.git/tree/debug_counter.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>debug_counter.c</a></div><div class='hunk'>@@ -9,19 +9,81 @@</div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='ctx'> #include "debug_counter.h"</div><div class='del'>-#if USE_DEBUG_COUNTER</div><div class='add'>+#include "internal.h"</div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='ctx'> #include &lt;locale.h&gt;</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "ruby/thread_native.h"</div><div class='ctx'> </div><div class='del'>-static const char *const debug_counter_names[] = {</div><div class='del'>-    ""</div><div class='add'>+#if USE_DEBUG_COUNTER</div><div class='add'>+</div><div class='add'>+const char *const rb_debug_counter_names[] = {</div><div class='add'>+#define DEBUG_COUNTER_NAME_EMPTY "" /* Suppress -Wstring-concatenation */</div><div class='add'>+    DEBUG_COUNTER_NAME_EMPTY</div><div class='add'>+#undef DEBUG_COUNTER_NAME_EMPTY</div><div class='ctx'> #define RB_DEBUG_COUNTER(name) #name,</div><div class='ctx'> #include "debug_counter.h"</div><div class='ctx'> #undef RB_DEBUG_COUNTER</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-size_t rb_debug_counter[numberof(debug_counter_names)];</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+size_t rb_debug_counter[numberof(rb_debug_counter_names)];</div><div class='add'>+void rb_debug_counter_add_atomic(enum rb_debug_counter_type type, int add);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+static rb_nativethread_lock_t debug_counter_lock;</div><div class='add'>+</div><div class='add'>+__attribute__((constructor))</div><div class='add'>+static void</div><div class='add'>+debug_counter_setup(void)</div><div class='add'>+{</div><div class='add'>+    rb_nativethread_lock_initialize(&amp;debug_counter_lock);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_debug_counter_add_atomic(enum rb_debug_counter_type type, int add)</div><div class='add'>+{</div><div class='add'>+    rb_nativethread_lock_lock(&amp;debug_counter_lock);</div><div class='add'>+    {</div><div class='add'>+        rb_debug_counter[(int)type] += add;</div><div class='add'>+    }</div><div class='add'>+    rb_nativethread_lock_unlock(&amp;debug_counter_lock);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int debug_counter_disable_show_at_exit = 0;</div><div class='add'>+</div><div class='add'>+// note that this operation is not atomic.</div><div class='add'>+void</div><div class='add'>+ruby_debug_counter_reset(void)</div><div class='add'>+{</div><div class='add'>+    for (int i = 0; i &lt; RB_DEBUG_COUNTER_MAX; i++) {</div><div class='add'>+        rb_debug_counter[i] = 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// note that this operation is not atomic.</div><div class='add'>+size_t</div><div class='add'>+ruby_debug_counter_get(const char **names_ptr, size_t *counters_ptr)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    if (names_ptr != NULL) {</div><div class='add'>+        for (i=0; i&lt;RB_DEBUG_COUNTER_MAX; i++) {</div><div class='add'>+            names_ptr[i] = rb_debug_counter_names[i];</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (counters_ptr != NULL) {</div><div class='add'>+        for (i=0; i&lt;RB_DEBUG_COUNTER_MAX; i++) {</div><div class='add'>+            counters_ptr[i] = rb_debug_counter[i];</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return RB_DEBUG_COUNTER_MAX;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ruby_debug_counter_show_at_exit(int enable)</div><div class='add'>+{</div><div class='add'>+    debug_counter_disable_show_at_exit = !enable;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_debug_counter_show_results(const char *msg)</div><div class='hunk'>@@ -31,25 +93,60 @@ rb_debug_counter_show_results(const char *msg)</div><div class='ctx'>     setlocale(LC_NUMERIC, "");</div><div class='ctx'> </div><div class='ctx'>     if (env == NULL || strcmp("1", env) != 0) {</div><div class='del'>-	int i;</div><div class='add'>+        int i;</div><div class='ctx'>         fprintf(stderr, "[RUBY_DEBUG_COUNTER]\t%d %s\n", getpid(), msg);</div><div class='del'>-	for (i=0; i&lt;RB_DEBUG_COUNTER_MAX; i++) {</div><div class='add'>+        for (i=0; i&lt;RB_DEBUG_COUNTER_MAX; i++) {</div><div class='ctx'>             fprintf(stderr, "[RUBY_DEBUG_COUNTER]\t%-30s\t%'14"PRIuSIZE"\n",</div><div class='del'>-		    debug_counter_names[i],</div><div class='del'>-		    rb_debug_counter[i]);</div><div class='del'>-	}</div><div class='add'>+                    rb_debug_counter_names[i],</div><div class='add'>+                    rb_debug_counter[i]);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_debug_counter_show(RB_UNUSED_VAR(VALUE klass))</div><div class='add'>+{</div><div class='add'>+    rb_debug_counter_show_results("show_debug_counters");</div><div class='add'>+    ruby_debug_counter_show_at_exit(FALSE);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_debug_counter_reset(RB_UNUSED_VAR(VALUE klass))</div><div class='add'>+{</div><div class='add'>+    ruby_debug_counter_reset();</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> __attribute__((destructor))</div><div class='ctx'> static void</div><div class='ctx'> debug_counter_show_results_at_exit(void)</div><div class='ctx'> {</div><div class='del'>-    rb_debug_counter_show_results("normal exit.");</div><div class='add'>+    if (debug_counter_disable_show_at_exit == 0) {</div><div class='add'>+        rb_debug_counter_show_results("normal exit.");</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='add'>+</div><div class='ctx'> #else</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> rb_debug_counter_show_results(const char *msg)</div><div class='ctx'> {</div><div class='ctx'> }</div><div class='add'>+</div><div class='add'>+size_t</div><div class='add'>+ruby_debug_counter_get(const char **names_ptr, size_t *counters_ptr)</div><div class='add'>+{</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+void</div><div class='add'>+ruby_debug_counter_reset(void)</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ruby_debug_counter_show_at_exit(int enable)</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #endif /* USE_DEBUG_COUNTER */</div><div class='head'>diff --git a/debug_counter.h b/debug_counter.h<br/>index bd03204af4..6e0b8dee60 100644<br/>--- a/<a href='/ruby.git/tree/debug_counter.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>debug_counter.h</a><br/>+++ b/<a href='/ruby.git/tree/debug_counter.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>debug_counter.h</a></div><div class='hunk'>@@ -14,28 +14,92 @@</div><div class='ctx'> </div><div class='ctx'> #ifdef RB_DEBUG_COUNTER</div><div class='ctx'> </div><div class='add'>+// method cache (IMC: inline method cache)</div><div class='add'>+RB_DEBUG_COUNTER(mc_inline_hit)              // IMC hit</div><div class='add'>+RB_DEBUG_COUNTER(mc_inline_miss_klass)       // IMC miss by different class</div><div class='add'>+RB_DEBUG_COUNTER(mc_inline_miss_invalidated) // IMC miss by invalidated ME</div><div class='add'>+RB_DEBUG_COUNTER(mc_inline_miss_empty)       // IMC miss because prev is empty slot</div><div class='add'>+RB_DEBUG_COUNTER(mc_inline_miss_same_cc)     // IMC miss, but same CC</div><div class='add'>+RB_DEBUG_COUNTER(mc_inline_miss_same_cme)    // IMC miss, but same CME</div><div class='add'>+RB_DEBUG_COUNTER(mc_inline_miss_same_def)    // IMC miss, but same definition</div><div class='add'>+RB_DEBUG_COUNTER(mc_inline_miss_diff)        // IMC miss, different methods</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(cvar_write_inline_hit)      // cvar cache hit on write</div><div class='add'>+RB_DEBUG_COUNTER(cvar_read_inline_hit)       // cvar cache hit on read</div><div class='add'>+RB_DEBUG_COUNTER(cvar_inline_miss)           // miss inline cache</div><div class='add'>+RB_DEBUG_COUNTER(cvar_class_invalidate)      // invalidate cvar cache when define a cvar that's defined on a subclass</div><div class='add'>+RB_DEBUG_COUNTER(cvar_include_invalidate)    // invalidate cvar cache on module include or prepend</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(mc_cme_complement)          // number of acquiring complement CME</div><div class='add'>+RB_DEBUG_COUNTER(mc_cme_complement_hit)      // number of cache hit for complemented CME</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(mc_search)                  // count for method lookup in class tree</div><div class='add'>+RB_DEBUG_COUNTER(mc_search_notfound)         //           method lookup, but not found</div><div class='add'>+RB_DEBUG_COUNTER(mc_search_super)            // total traversed classes</div><div class='add'>+</div><div class='add'>+// callinfo</div><div class='add'>+RB_DEBUG_COUNTER(ci_packed)  // number of packed CI</div><div class='add'>+RB_DEBUG_COUNTER(ci_kw)      //           non-packed CI w/ keywords</div><div class='add'>+RB_DEBUG_COUNTER(ci_nokw)    //           non-packed CI w/o keywords</div><div class='add'>+RB_DEBUG_COUNTER(ci_runtime) //           creating temporary CI</div><div class='add'>+</div><div class='add'>+// callcache</div><div class='add'>+RB_DEBUG_COUNTER(cc_new)        // number of CC</div><div class='add'>+RB_DEBUG_COUNTER(cc_temp)       //           dummy CC (stack-allocated)</div><div class='add'>+RB_DEBUG_COUNTER(cc_found_in_ccs)      // count for CC lookup success in CCS</div><div class='add'>+RB_DEBUG_COUNTER(cc_not_found_in_ccs)  // count for CC lookup success in CCS</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(cc_ent_invalidate) // count for invalidating cc (cc-&gt;klass = 0)</div><div class='add'>+RB_DEBUG_COUNTER(cc_cme_invalidate) // count for invalidating CME</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(cc_invalidate_leaf)          // count for invalidating klass if klass has no-subclasses</div><div class='add'>+RB_DEBUG_COUNTER(cc_invalidate_leaf_ccs)      //                        corresponding CCS</div><div class='add'>+RB_DEBUG_COUNTER(cc_invalidate_leaf_callable) //                        complimented cache (no-subclasses)</div><div class='add'>+RB_DEBUG_COUNTER(cc_invalidate_tree)          // count for invalidating klass if klass has subclasses</div><div class='add'>+RB_DEBUG_COUNTER(cc_invalidate_tree_cme)      //                        cme if cme is found in this class or superclasses</div><div class='add'>+RB_DEBUG_COUNTER(cc_invalidate_tree_callable) //                        complimented cache (subclasses)</div><div class='add'>+RB_DEBUG_COUNTER(cc_invalidate_negative)      // count for invalidating negative cache</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(ccs_free)   // count for free'ing ccs</div><div class='add'>+RB_DEBUG_COUNTER(ccs_maxlen) // maximum length of ccs</div><div class='add'>+RB_DEBUG_COUNTER(ccs_found)      // count for finding corresponding ccs on method lookup</div><div class='add'>+RB_DEBUG_COUNTER(ccs_not_found)  // count for not found corresponding ccs on method lookup</div><div class='add'>+</div><div class='add'>+// vm_eval.c</div><div class='add'>+RB_DEBUG_COUNTER(call0_public)</div><div class='add'>+RB_DEBUG_COUNTER(call0_other)</div><div class='add'>+RB_DEBUG_COUNTER(gccct_hit)</div><div class='add'>+RB_DEBUG_COUNTER(gccct_miss)</div><div class='add'>+RB_DEBUG_COUNTER(gccct_null)</div><div class='add'>+</div><div class='add'>+// iseq</div><div class='add'>+RB_DEBUG_COUNTER(iseq_num)    // number of total created iseq</div><div class='add'>+RB_DEBUG_COUNTER(iseq_cd_num) // number of total created cd (call_data)</div><div class='add'>+</div><div class='ctx'> /*</div><div class='del'>- * method cache (mc) counts.</div><div class='del'>- *</div><div class='del'>- * * mc_inline_hit/miss: inline mc hit/miss counts (VM send insn)</div><div class='del'>- * * mc_global_hit/miss: global method cache hit/miss counts</div><div class='del'>- *                       two types: (1) inline cache miss (VM send insn)</div><div class='del'>- *                                  (2) called from C (rb_funcall).</div><div class='del'>- * * mc_global_state_miss: inline mc miss by global_state miss.</div><div class='del'>- * * mc_class_serial_miss:            ... by mc_class_serial_miss</div><div class='del'>- * * mc_cme_complement: cme complement counts.</div><div class='del'>- * * mc_cme_complement_hit: cme cache hit counts.</div><div class='del'>- * * mc_search_super: search_method() call counts.</div><div class='add'>+ * call cache fastpath usage</div><div class='ctx'>  */</div><div class='del'>-RB_DEBUG_COUNTER(mc_inline_hit)</div><div class='del'>-RB_DEBUG_COUNTER(mc_inline_miss)</div><div class='del'>-RB_DEBUG_COUNTER(mc_global_hit)</div><div class='del'>-RB_DEBUG_COUNTER(mc_global_miss)</div><div class='del'>-RB_DEBUG_COUNTER(mc_global_state_miss)</div><div class='del'>-RB_DEBUG_COUNTER(mc_class_serial_miss)</div><div class='del'>-RB_DEBUG_COUNTER(mc_cme_complement)</div><div class='del'>-RB_DEBUG_COUNTER(mc_cme_complement_hit)</div><div class='del'>-RB_DEBUG_COUNTER(mc_search_super)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_general)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_iseq_setup)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_iseq_setup_0start)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_iseq_setup_tailcall_0start)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_iseq_fix) /* several functions created with tool/mk_call_iseq_optimized.rb */</div><div class='add'>+RB_DEBUG_COUNTER(ccf_iseq_opt) /* has_opt == TRUE (has optional parameters), but other flags are FALSE */</div><div class='add'>+RB_DEBUG_COUNTER(ccf_iseq_kw1) /* vm_call_iseq_setup_kwparm_kwarg() */</div><div class='add'>+RB_DEBUG_COUNTER(ccf_iseq_kw2) /* vm_call_iseq_setup_kwparm_nokwarg() */</div><div class='add'>+RB_DEBUG_COUNTER(ccf_cfunc)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_cfunc_with_frame)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_ivar) /* attr_reader */</div><div class='add'>+RB_DEBUG_COUNTER(ccf_attrset) /* attr_writer */</div><div class='add'>+RB_DEBUG_COUNTER(ccf_method_missing)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_zsuper)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_bmethod)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_opt_send)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_opt_call)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_opt_block_call)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_opt_struct_aref)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_opt_struct_aset)</div><div class='add'>+RB_DEBUG_COUNTER(ccf_super_method)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * control frame push counts.</div><div class='hunk'>@@ -66,7 +130,6 @@ RB_DEBUG_COUNTER(frame_C2R)</div><div class='ctx'> /* instance variable counts</div><div class='ctx'>  *</div><div class='ctx'>  * * ivar_get_ic_hit/miss: ivar_get inline cache (ic) hit/miss counts (VM insn)</div><div class='del'>- * * ivar_get_ic_miss_serial: ivar_get ic miss reason by serial (VM insn)</div><div class='ctx'>  * * ivar_get_ic_miss_unset:                      ... by unset (VM insn)</div><div class='ctx'>  * * ivar_get_ic_miss_noobject:                   ... by "not T_OBJECT" (VM insn)</div><div class='ctx'>  * * ivar_set_...: same counts with ivar_set (VM insn)</div><div class='hunk'>@@ -76,17 +139,17 @@ RB_DEBUG_COUNTER(frame_C2R)</div><div class='ctx'>  */</div><div class='ctx'> RB_DEBUG_COUNTER(ivar_get_ic_hit)</div><div class='ctx'> RB_DEBUG_COUNTER(ivar_get_ic_miss)</div><div class='del'>-RB_DEBUG_COUNTER(ivar_get_ic_miss_serial)</div><div class='del'>-RB_DEBUG_COUNTER(ivar_get_ic_miss_unset)</div><div class='ctx'> RB_DEBUG_COUNTER(ivar_get_ic_miss_noobject)</div><div class='ctx'> RB_DEBUG_COUNTER(ivar_set_ic_hit)</div><div class='ctx'> RB_DEBUG_COUNTER(ivar_set_ic_miss)</div><div class='del'>-RB_DEBUG_COUNTER(ivar_set_ic_miss_serial)</div><div class='del'>-RB_DEBUG_COUNTER(ivar_set_ic_miss_unset)</div><div class='del'>-RB_DEBUG_COUNTER(ivar_set_ic_miss_oorange)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_set_ic_miss_iv_hit)</div><div class='ctx'> RB_DEBUG_COUNTER(ivar_set_ic_miss_noobject)</div><div class='ctx'> RB_DEBUG_COUNTER(ivar_get_base)</div><div class='ctx'> RB_DEBUG_COUNTER(ivar_set_base)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_get_ic_miss_set)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_get_cc_miss_set)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_get_ic_miss_unset)</div><div class='add'>+RB_DEBUG_COUNTER(ivar_get_cc_miss_unset)</div><div class='ctx'> </div><div class='ctx'> /* local variable counts</div><div class='ctx'>  *</div><div class='hunk'>@@ -121,11 +184,22 @@ RB_DEBUG_COUNTER(gc_major_shady)</div><div class='ctx'> RB_DEBUG_COUNTER(gc_major_force)</div><div class='ctx'> RB_DEBUG_COUNTER(gc_major_oldmalloc)</div><div class='ctx'> </div><div class='add'>+RB_DEBUG_COUNTER(gc_enter_start)</div><div class='add'>+RB_DEBUG_COUNTER(gc_enter_mark_continue)</div><div class='add'>+RB_DEBUG_COUNTER(gc_enter_sweep_continue)</div><div class='add'>+RB_DEBUG_COUNTER(gc_enter_rest)</div><div class='add'>+RB_DEBUG_COUNTER(gc_enter_finalizer)</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(gc_isptr_trial)</div><div class='add'>+RB_DEBUG_COUNTER(gc_isptr_range)</div><div class='add'>+RB_DEBUG_COUNTER(gc_isptr_align)</div><div class='add'>+RB_DEBUG_COUNTER(gc_isptr_maybe)</div><div class='add'>+</div><div class='ctx'> /* object allocation counts:</div><div class='ctx'>  *</div><div class='ctx'>  * * obj_newobj: newobj counts</div><div class='ctx'>  * * obj_newobj_slowpath: newobj with slowpath counts</div><div class='del'>- * * obj_newobj_wb_unprotected: newobj for wb_unprotecte.</div><div class='add'>+ * * obj_newobj_wb_unprotected: newobj for wb_unprotected.</div><div class='ctx'>  * * obj_free: obj_free() counts</div><div class='ctx'>  * * obj_promote: promoted counts (oldgen)</div><div class='ctx'>  * * obj_wb_unprotect: wb unprotect counts</div><div class='hunk'>@@ -147,9 +221,12 @@ RB_DEBUG_COUNTER(gc_major_oldmalloc)</div><div class='ctx'>  *   * str_nofree:        nofree</div><div class='ctx'>  *   * str_fstr:          fstr</div><div class='ctx'>  *   * hash_empty: hash is empty</div><div class='del'>- *   * hash_under4:     has under 4 entries</div><div class='del'>- *   * hash_ge4:        has n entries (4&lt;=n&lt;8)</div><div class='del'>- *   * hash_ge8:        has n entries (8&lt;=n)</div><div class='add'>+ *   * hash_1_4:       has 1 to 4 entries</div><div class='add'>+ *   * hash_5_8:       has 5 to 8 entries</div><div class='add'>+ *   * hash_g8:        has n entries (n&gt;8)</div><div class='add'>+ *   * match_under4:    has under 4 oniguruma regions allocated</div><div class='add'>+ *   * match_ge4:       has n regions allocated (4&lt;=n&lt;8)</div><div class='add'>+ *   * match_ge8:       has n regions allocated (8&lt;=n)</div><div class='ctx'>  *   * data_empty: T_DATA but no memory free.</div><div class='ctx'>  *   * data_xfree:        free'ed by xfree().</div><div class='ctx'>  *   * data_imm_free:     free'ed immediately.</div><div class='hunk'>@@ -166,6 +243,7 @@ RB_DEBUG_COUNTER(obj_wb_unprotect)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_obj_embed)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_obj_transient)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_obj_ptr)</div><div class='add'>+RB_DEBUG_COUNTER(obj_obj_too_complex)</div><div class='ctx'> </div><div class='ctx'> RB_DEBUG_COUNTER(obj_str_ptr)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_str_embed)</div><div class='hunk'>@@ -176,32 +254,57 @@ RB_DEBUG_COUNTER(obj_str_fstr)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_ary_embed)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_ary_transient)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_ary_ptr)</div><div class='add'>+RB_DEBUG_COUNTER(obj_ary_extracapa)</div><div class='add'>+/*</div><div class='add'>+  ary_shared_create: shared ary by Array#dup and so on.</div><div class='add'>+  ary_shared: finished in shard.</div><div class='add'>+  ary_shared_root_occupied: shared_root but has only 1 refcnt.</div><div class='add'>+    The number (ary_shared - ary_shared_root_occupied) is meaningful.</div><div class='add'>+ */</div><div class='add'>+RB_DEBUG_COUNTER(obj_ary_shared_create)</div><div class='add'>+RB_DEBUG_COUNTER(obj_ary_shared)</div><div class='add'>+RB_DEBUG_COUNTER(obj_ary_shared_root_occupied)</div><div class='ctx'> </div><div class='ctx'> RB_DEBUG_COUNTER(obj_hash_empty)</div><div class='del'>-RB_DEBUG_COUNTER(obj_hash_under4)</div><div class='del'>-RB_DEBUG_COUNTER(obj_hash_ge4)</div><div class='del'>-RB_DEBUG_COUNTER(obj_hash_ge8)</div><div class='add'>+RB_DEBUG_COUNTER(obj_hash_1)</div><div class='add'>+RB_DEBUG_COUNTER(obj_hash_2)</div><div class='add'>+RB_DEBUG_COUNTER(obj_hash_3)</div><div class='add'>+RB_DEBUG_COUNTER(obj_hash_4)</div><div class='add'>+RB_DEBUG_COUNTER(obj_hash_5_8)</div><div class='add'>+RB_DEBUG_COUNTER(obj_hash_g8)</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(obj_hash_null)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_hash_ar)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_hash_st)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_hash_transient)</div><div class='del'>-</div><div class='ctx'> RB_DEBUG_COUNTER(obj_hash_force_convert)</div><div class='ctx'> </div><div class='ctx'> RB_DEBUG_COUNTER(obj_struct_embed)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_struct_transient)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_struct_ptr)</div><div class='ctx'> </div><div class='del'>-RB_DEBUG_COUNTER(obj_regexp_ptr)</div><div class='del'>-</div><div class='ctx'> RB_DEBUG_COUNTER(obj_data_empty)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_data_xfree)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_data_imm_free)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_data_zombie)</div><div class='ctx'> </div><div class='add'>+RB_DEBUG_COUNTER(obj_match_under4)</div><div class='add'>+RB_DEBUG_COUNTER(obj_match_ge4)</div><div class='add'>+RB_DEBUG_COUNTER(obj_match_ge8)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_match_ptr)</div><div class='del'>-RB_DEBUG_COUNTER(obj_file_ptr)</div><div class='add'>+</div><div class='add'>+RB_DEBUG_COUNTER(obj_iclass_ptr)</div><div class='add'>+RB_DEBUG_COUNTER(obj_class_ptr)</div><div class='add'>+RB_DEBUG_COUNTER(obj_module_ptr)</div><div class='add'>+</div><div class='ctx'> RB_DEBUG_COUNTER(obj_bignum_ptr)</div><div class='add'>+RB_DEBUG_COUNTER(obj_bignum_embed)</div><div class='add'>+RB_DEBUG_COUNTER(obj_float)</div><div class='add'>+RB_DEBUG_COUNTER(obj_complex)</div><div class='add'>+RB_DEBUG_COUNTER(obj_rational)</div><div class='ctx'> </div><div class='add'>+RB_DEBUG_COUNTER(obj_regexp_ptr)</div><div class='add'>+RB_DEBUG_COUNTER(obj_file_ptr)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_symbol)</div><div class='ctx'> </div><div class='ctx'> RB_DEBUG_COUNTER(obj_imemo_ment)</div><div class='hunk'>@@ -215,10 +318,14 @@ RB_DEBUG_COUNTER(obj_imemo_throw_data)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_imemo_ifunc)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_imemo_memo)</div><div class='ctx'> RB_DEBUG_COUNTER(obj_imemo_parser_strterm)</div><div class='add'>+RB_DEBUG_COUNTER(obj_imemo_callinfo)</div><div class='add'>+RB_DEBUG_COUNTER(obj_imemo_callcache)</div><div class='add'>+RB_DEBUG_COUNTER(obj_imemo_constcache)</div><div class='ctx'> </div><div class='del'>-RB_DEBUG_COUNTER(obj_iclass_ptr)</div><div class='del'>-RB_DEBUG_COUNTER(obj_class_ptr)</div><div class='del'>-RB_DEBUG_COUNTER(obj_module_ptr)</div><div class='add'>+/* ar_table */</div><div class='add'>+RB_DEBUG_COUNTER(artable_hint_hit)</div><div class='add'>+RB_DEBUG_COUNTER(artable_hint_miss)</div><div class='add'>+RB_DEBUG_COUNTER(artable_hint_notfound)</div><div class='ctx'> </div><div class='ctx'> /* heap function counts</div><div class='ctx'>  *</div><div class='hunk'>@@ -233,6 +340,13 @@ RB_DEBUG_COUNTER(theap_alloc)</div><div class='ctx'> RB_DEBUG_COUNTER(theap_alloc_fail)</div><div class='ctx'> RB_DEBUG_COUNTER(theap_evacuate)</div><div class='ctx'> </div><div class='add'>+// VM sync</div><div class='add'>+RB_DEBUG_COUNTER(vm_sync_lock)</div><div class='add'>+RB_DEBUG_COUNTER(vm_sync_lock_enter)</div><div class='add'>+RB_DEBUG_COUNTER(vm_sync_lock_enter_nb)</div><div class='add'>+RB_DEBUG_COUNTER(vm_sync_lock_enter_cr)</div><div class='add'>+RB_DEBUG_COUNTER(vm_sync_barrier)</div><div class='add'>+</div><div class='ctx'> /* load (not implemented yet) */</div><div class='ctx'> /*</div><div class='ctx'> RB_DEBUG_COUNTER(load_files)</div><div class='hunk'>@@ -243,6 +357,10 @@ RB_DEBUG_COUNTER(load_path_is_not_realpath)</div><div class='ctx'> #ifndef RUBY_DEBUG_COUNTER_H</div><div class='ctx'> #define RUBY_DEBUG_COUNTER_H 1</div><div class='ctx'> </div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+</div><div class='ctx'> #if !defined(__GNUC__) &amp;&amp; USE_DEBUG_COUNTER</div><div class='ctx'> #error "USE_DEBUG_COUNTER is not supported by other than __GNUC__"</div><div class='ctx'> #endif</div><div class='hunk'>@@ -255,29 +373,62 @@ enum rb_debug_counter_type {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> #if USE_DEBUG_COUNTER</div><div class='del'>-#include "ruby/ruby.h"</div><div class='del'>-</div><div class='ctx'> extern size_t rb_debug_counter[];</div><div class='add'>+RUBY_EXTERN struct rb_ractor_struct *ruby_single_main_ractor;</div><div class='add'>+RUBY_EXTERN void rb_debug_counter_add_atomic(enum rb_debug_counter_type type, int add);</div><div class='ctx'> </div><div class='ctx'> inline static int</div><div class='ctx'> rb_debug_counter_add(enum rb_debug_counter_type type, int add, int cond)</div><div class='ctx'> {</div><div class='ctx'>     if (cond) {</div><div class='del'>-	rb_debug_counter[(int)type] += add;</div><div class='add'>+        if (ruby_single_main_ractor != NULL) {</div><div class='add'>+            rb_debug_counter[(int)type] += add;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_debug_counter_add_atomic(type, add);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return cond;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+inline static int</div><div class='add'>+rb_debug_counter_max(enum rb_debug_counter_type type, unsigned int num)</div><div class='add'>+{</div><div class='add'>+    // TODO: sync</div><div class='add'>+    if (rb_debug_counter[(int)type] &lt; num) {</div><div class='add'>+        rb_debug_counter[(int)type] = num;</div><div class='add'>+        return 1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE rb_debug_counter_reset(VALUE klass);</div><div class='add'>+VALUE rb_debug_counter_show(VALUE klass);</div><div class='add'>+</div><div class='ctx'> #define RB_DEBUG_COUNTER_INC(type)                rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, 1)</div><div class='ctx'> #define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !(cond)))</div><div class='del'>-#define RB_DEBUG_COUNTER_INC_IF(type, cond)       rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, (cond))</div><div class='add'>+#define RB_DEBUG_COUNTER_INC_IF(type, cond)       rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !!(cond))</div><div class='add'>+#define RB_DEBUG_COUNTER_ADD(type, num)           rb_debug_counter_add(RB_DEBUG_COUNTER_##type, (num), 1)</div><div class='add'>+#define RB_DEBUG_COUNTER_SETMAX(type, num)        rb_debug_counter_max(RB_DEBUG_COUNTER_##type, (unsigned int)(num))</div><div class='ctx'> </div><div class='ctx'> #else</div><div class='ctx'> #define RB_DEBUG_COUNTER_INC(type)              ((void)0)</div><div class='del'>-#define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (cond)</div><div class='del'>-#define RB_DEBUG_COUNTER_INC_IF(type, cond)     (cond)</div><div class='add'>+#define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!!(cond))</div><div class='add'>+#define RB_DEBUG_COUNTER_INC_IF(type, cond)     (!!(cond))</div><div class='add'>+#define RB_DEBUG_COUNTER_ADD(type, num)         ((void)0)</div><div class='add'>+#define RB_DEBUG_COUNTER_SETMAX(type, num)      0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> void rb_debug_counter_show_results(const char *msg);</div><div class='ctx'> </div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+</div><div class='add'>+size_t ruby_debug_counter_get(const char **names_ptr, size_t *counters_ptr);</div><div class='add'>+void ruby_debug_counter_reset(void);</div><div class='add'>+void ruby_debug_counter_show_at_exit(int enable);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='ctx'> #endif /* RUBY_DEBUG_COUNTER_H */</div><div class='head'>diff --git a/defs/gmake.mk b/defs/gmake.mk<br/>index d8a43802ef..54fef6685f 100644<br/>--- a/<a href='/ruby.git/tree/defs/gmake.mk?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>defs/gmake.mk</a><br/>+++ b/<a href='/ruby.git/tree/defs/gmake.mk?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>defs/gmake.mk</a></div><div class='hunk'>@@ -1,9 +1,25 @@</div><div class='del'>-# -*- makefile-gmake -*-</div><div class='del'>-gnumake = yes</div><div class='add'>+# -*- mode: makefile-gmake; indent-tabs-mode: t -*-</div><div class='add'>+</div><div class='add'>+reconfig config.status: export MAKE:=$(MAKE)</div><div class='ctx'> override gnumake_recursive := $(if $(findstring n,$(firstword $(MFLAGS))),,+)</div><div class='ctx'> override mflags := $(filter-out -j%,$(MFLAGS))</div><div class='ctx'> MSPECOPT += $(if $(filter -j%,$(MFLAGS)),-j)</div><div class='add'>+nproc = $(subst -j,,$(filter -j%,$(MFLAGS)))</div><div class='add'>+</div><div class='add'>+ifeq ($(GITHUB_ACTIONS),true)</div><div class='add'>+override ACTIONS_GROUP = @echo "\#\#[group]$(patsubst yes-%,%,$@)"</div><div class='add'>+override ACTIONS_ENDGROUP = @echo "\#\#[endgroup]"</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+ifneq ($(filter darwin%,$(target_os)),)</div><div class='add'>+# Remove debug option not to generate thousands of .dSYM</div><div class='add'>+MJIT_DEBUGFLAGS := $(filter-out -g%,$(MJIT_DEBUGFLAGS))</div><div class='ctx'> </div><div class='add'>+INSTRUBY_ENV += SDKROOT=</div><div class='add'>+endif</div><div class='add'>+INSTRUBY_ARGS += --gnumake</div><div class='add'>+</div><div class='add'>+ifeq ($(DOT_WAIT),)</div><div class='ctx'> CHECK_TARGETS := great exam love check test check% test% btest%</div><div class='ctx'> # expand test targets, and those dependents</div><div class='ctx'> TEST_TARGETS := $(filter $(CHECK_TARGETS),$(MAKECMDGOALS))</div><div class='hunk'>@@ -11,23 +27,26 @@ TEST_DEPENDS := $(filter-out commit $(TEST_TARGETS),$(MAKECMDGOALS))</div><div class='ctx'> TEST_TARGETS := $(patsubst great,exam,$(TEST_TARGETS))</div><div class='ctx'> TEST_DEPENDS := $(filter-out great $(TEST_TARGETS),$(TEST_DEPENDS))</div><div class='ctx'> TEST_TARGETS := $(patsubst exam,check,$(TEST_TARGETS))</div><div class='del'>-TEST_TARGETS := $(patsubst check,test-spec test-all,$(TEST_TARGETS))</div><div class='add'>+TEST_TARGETS := $(patsubst check,test-syntax-suggest test-spec test-all test-tool test-short,$(TEST_TARGETS))</div><div class='ctx'> TEST_TARGETS := $(patsubst test-rubyspec,test-spec,$(TEST_TARGETS))</div><div class='ctx'> TEST_DEPENDS := $(filter-out exam check test-spec $(TEST_TARGETS),$(TEST_DEPENDS))</div><div class='ctx'> TEST_TARGETS := $(patsubst love,check,$(TEST_TARGETS))</div><div class='ctx'> TEST_DEPENDS := $(filter-out love $(TEST_TARGETS),$(TEST_DEPENDS))</div><div class='del'>-TEST_TARGETS := $(patsubst test-all,test test-testframework test-almost,$(patsubst check-%,test test-%,$(TEST_TARGETS)))</div><div class='add'>+TEST_TARGETS := $(patsubst test-almost,test-all,$(patsubst check-%,test test-%,$(TEST_TARGETS)))</div><div class='ctx'> TEST_DEPENDS := $(filter-out test-all $(TEST_TARGETS),$(TEST_DEPENDS))</div><div class='ctx'> TEST_TARGETS := $(patsubst test,test-short,$(TEST_TARGETS))</div><div class='ctx'> TEST_DEPENDS := $(filter-out test $(TEST_TARGETS),$(TEST_DEPENDS))</div><div class='ctx'> TEST_TARGETS := $(patsubst test-short,btest-ruby test-knownbug test-basic,$(TEST_TARGETS))</div><div class='add'>+TEST_TARGETS := $(patsubst test-bundled-gems,test-bundled-gems-run,$(TEST_TARGETS))</div><div class='add'>+TEST_TARGETS := $(patsubst test-bundled-gems-run,test-bundled-gems-run $(PREPARE_BUNDLED_GEMS),$(TEST_TARGETS))</div><div class='add'>+TEST_TARGETS := $(patsubst test-bundled-gems-prepare,test-bundled-gems-prepare $(PRECHECK_BUNDLED_GEMS) test-bundled-gems-fetch,$(TEST_TARGETS))</div><div class='add'>+TEST_TARGETS := $(patsubst test-syntax-suggest,test-syntax-suggest $(PREPARE_SYNTAX_SUGGEST),$(TEST_TARGETS))</div><div class='ctx'> TEST_DEPENDS := $(filter-out test-short $(TEST_TARGETS),$(TEST_DEPENDS))</div><div class='ctx'> TEST_DEPENDS += $(if $(filter great exam love check,$(MAKECMDGOALS)),all exts)</div><div class='del'>-</div><div class='del'>-ifneq ($(filter -O0 -Od,$(optflags)),)</div><div class='del'>-override XCFLAGS := $(filter-out -D_FORTIFY_SOURCE=%,$(XCFLAGS))</div><div class='ctx'> endif</div><div class='ctx'> </div><div class='add'>+in-srcdir := $(if $(filter-out .,$(srcdir)),$(CHDIR) $(srcdir) &amp;&amp;)</div><div class='add'>+</div><div class='ctx'> ifeq ($(if $(filter all main exts enc trans libencs libenc libtrans \</div><div class='ctx'> 		    prog program ruby ruby$(EXEEXT) \</div><div class='ctx'> 		    wprogram rubyw rubyw$(EXEEXT) \</div><div class='hunk'>@@ -55,6 +74,7 @@ $(foreach arch,$(arch_flags),\</div><div class='ctx'> 	$(eval $(call archcmd,$(patsubst -arch=%,%,$(value arch)),$(patsubst -arch=%,-arch %,$(value arch)))))</div><div class='ctx'> endif</div><div class='ctx'> </div><div class='add'>+ifeq ($(DOT_WAIT),)</div><div class='ctx'> .PHONY: $(addprefix yes-,$(TEST_TARGETS))</div><div class='ctx'> </div><div class='ctx'> ifneq ($(filter-out btest%,$(TEST_TARGETS)),)</div><div class='hunk'>@@ -63,13 +83,17 @@ endif</div><div class='ctx'> </div><div class='ctx'> ORDERED_TEST_TARGETS := $(filter $(TEST_TARGETS), \</div><div class='ctx'> 	btest-ruby test-knownbug test-basic \</div><div class='del'>-	test-testframework test-ruby test-almost test-all \</div><div class='del'>-	test-spec test-bundler-prepare test-bundler \</div><div class='add'>+	test-testframework test-tool test-ruby test-all \</div><div class='add'>+	test-spec test-syntax-suggest-prepare test-syntax-suggest \</div><div class='add'>+	test-bundler-prepare test-bundler test-bundler-parallel \</div><div class='add'>+	test-bundled-gems-precheck test-bundled-gems-fetch \</div><div class='add'>+	test-bundled-gems-prepare test-bundled-gems-run \</div><div class='ctx'> 	)</div><div class='ctx'> prev_test := $(if $(filter test-spec,$(ORDERED_TEST_TARGETS)),test-spec-precheck)</div><div class='ctx'> $(foreach test,$(ORDERED_TEST_TARGETS), \</div><div class='ctx'> 	$(eval yes-$(value test) no-$(value test): $(value prev_test)); \</div><div class='ctx'> 	$(eval prev_test := $(value test)))</div><div class='add'>+endif</div><div class='ctx'> </div><div class='ctx'> ifneq ($(if $(filter install,$(MAKECMDGOALS)),$(filter uninstall,$(MAKECMDGOALS))),)</div><div class='ctx'> install-targets := $(filter install uninstall,$(MAKECMDGOALS))</div><div class='hunk'>@@ -86,10 +110,14 @@ showflags: up</div><div class='ctx'> sudo-precheck: test yes-test-testframework no-test-testframework</div><div class='ctx'> install-prereq: sudo-precheck</div><div class='ctx'> yes-test-all no-test-all: install</div><div class='del'>-yes-test-almost no-test-almost: install</div><div class='ctx'> endif</div><div class='del'>-ifneq ($(filter great,$(MAKECMDGOALS)),)</div><div class='del'>-love: test-rubyspec</div><div class='add'>+yes-test-bundler-parallel: PARALLELRSPECOPTS += $(if $(nproc),-n$(shell expr $(nproc) + $(nproc) / 2))</div><div class='add'>+</div><div class='add'>+# Cross reference needs to parse all files at once</div><div class='add'>+love install reinstall: RDOCFLAGS = --force-update</div><div class='add'>+</div><div class='add'>+ifneq ($(if $(filter -flto%,$(CFLAGS)),$(subst darwin,,$(arch)),$(arch)),$(arch))</div><div class='add'>+override EXE_LDFLAGS = $(filter-out -g%,$(LDFLAGS))</div><div class='ctx'> endif</div><div class='ctx'> </div><div class='ctx'> $(srcdir)/missing/des_tables.c: $(srcdir)/missing/crypt.c</div><div class='hunk'>@@ -97,7 +125,7 @@ ifeq ($(if $(filter yes,$(CROSS_COMPILING)),,$(CC)),)</div><div class='ctx'> 	touch $@</div><div class='ctx'> else</div><div class='ctx'> 	@$(ECHO) building make_des_table</div><div class='del'>-	$(CC) $(CPPFLAGS) -DDUMP $(LDFLAGS) $(XLDFLAGS) $(LIBS) -omake_des_table $(srcdir)/missing/crypt.c</div><div class='add'>+	$(CC) $(INCFLAGS) $(CPPFLAGS) -DDUMP $(EXE_LDFLAGS) $(XLDFLAGS) $(LIBS) -omake_des_table $(srcdir)/missing/crypt.c</div><div class='ctx'> 	@[ -x ./make_des_table ]</div><div class='ctx'> 	@$(ECHO) generating $@</div><div class='ctx'> 	$(Q) $(MAKEDIRS) $(@D)</div><div class='hunk'>@@ -106,10 +134,12 @@ else</div><div class='ctx'> 	$(Q) $(RMALL) make_des_table*</div><div class='ctx'> endif</div><div class='ctx'> </div><div class='add'>+config.status: $(wildcard config.cache)</div><div class='add'>+</div><div class='ctx'> STUBPROGRAM = rubystub$(EXEEXT)</div><div class='ctx'> IGNOREDPATTERNS = %~ .% %.orig %.rej \#%\#</div><div class='ctx'> SCRIPTBINDIR := $(if $(EXEEXT),,exec/)</div><div class='del'>-SCRIPTPROGRAMS = $(addprefix $(SCRIPTBINDIR),$(addsuffix $(EXEEXT),$(filter-out $(IGNOREDPATTERNS),$(notdir $(wildcard $(srcdir)/libexec/*)))))</div><div class='add'>+SCRIPTPROGRAMS = $(addprefix $(SCRIPTBINDIR),$(addsuffix $(EXEEXT),$(filter-out $(IGNOREDPATTERNS),$(notdir $(wildcard $(srcdir)/bin/*)))))</div><div class='ctx'> </div><div class='ctx'> stub: $(STUBPROGRAM)</div><div class='ctx'> scriptbin: $(SCRIPTPROGRAMS)</div><div class='hunk'>@@ -124,7 +154,7 @@ $(STUBPROGRAM): rubystub.$(OBJEXT) $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SE</div><div class='ctx'> rubystub$(EXEEXT):</div><div class='ctx'> 	@rm -f $@</div><div class='ctx'> 	$(ECHO) linking $@</div><div class='del'>-	$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) rubystub.$(OBJEXT) $(EXTOBJS) $(LIBRUBYARG) $(MAINLIBS) $(LIBS) $(EXTLIBS) $(OUTFLAG)$@</div><div class='add'>+	$(Q) $(PURIFY) $(CC) $(EXE_LDFLAGS) $(XLDFLAGS) rubystub.$(OBJEXT) $(EXTOBJS) $(LIBRUBYARG) $(MAINLIBS) $(LIBS) $(EXTLIBS) $(OUTFLAG)$@</div><div class='ctx'> 	$(Q) $(POSTLINK)</div><div class='ctx'> 	$(if $(STRIP),$(Q) $(STRIP) $@)</div><div class='ctx'> </div><div class='hunk'>@@ -135,26 +165,196 @@ $(SCRIPTBINDIR)%$(EXEEXT): bin/% $(STUBPROGRAM) \</div><div class='ctx'> 	$(Q) chmod +x $@</div><div class='ctx'> 	$(Q) $(POSTLINK)</div><div class='ctx'> </div><div class='del'>-$(TIMESTAMPDIR)/.exec.time:</div><div class='del'>-	$(Q) mkdir exec</div><div class='del'>-	$(Q) exit &gt; $@</div><div class='add'>+$(SCRIPTBINDIR):</div><div class='add'>+	$(Q) mkdir $@</div><div class='ctx'> </div><div class='ctx'> .PHONY: commit</div><div class='del'>-commit: $(if $(filter commit,$(MAKECMDGOALS)),$(filter-out commit,$(MAKECMDGOALS)))</div><div class='del'>-	@$(BASERUBY) -C "$(srcdir)" -I./tool -rvcs -e 'VCS.detect(".").commit'</div><div class='add'>+commit: $(if $(filter commit,$(MAKECMDGOALS)),$(filter-out commit,$(MAKECMDGOALS))) up</div><div class='add'>+	@$(BASERUBY) -C "$(srcdir)" -I./tool/lib -rvcs -e 'VCS.detect(".").commit'</div><div class='ctx'> 	+$(Q) \</div><div class='ctx'> 	{ \</div><div class='del'>-	  $(CHDIR) "$(srcdir)"; \</div><div class='del'>-	  sed 's/^@.*@$$//;s/@[A-Za-z_][A-Za-z_0-9]*@//g;/^all-incs:/d' defs/gmake.mk Makefile.in; \</div><div class='del'>-	  sed 's/{[.;]*$$([a-zA-Z0-9_]*)}//g' common.mk; \</div><div class='add'>+	  $(in-srcdir) \</div><div class='add'>+	  exec sed -f tool/prereq.status defs/gmake.mk template/Makefile.in common.mk; \</div><div class='ctx'> 	} | \</div><div class='del'>-	$(MAKE) $(mflags) Q=$(Q) ECHO=$(ECHO) srcdir="$(srcdir)" srcs_vpath="$(srcdir)/" CHDIR="$(CHDIR)" \</div><div class='add'>+	$(MAKE) $(mflags) Q=$(Q) ECHO=$(ECHO) srcdir="$(srcdir)" srcs_vpath="" CHDIR="$(CHDIR)" \</div><div class='ctx'> 		BOOTSTRAPRUBY="$(BOOTSTRAPRUBY)" MINIRUBY="$(BASERUBY)" BASERUBY="$(BASERUBY)" \</div><div class='ctx'> 		VCSUP="" ENC_MK=.top-enc.mk REVISION_FORCE=PHONY CONFIGURE="$(CONFIGURE)" -f - \</div><div class='ctx'> 		update-src srcs all-incs</div><div class='ctx'> </div><div class='del'>-ifeq ($(words $(filter update-gems extract-gems,$(MAKECMDGOALS))),2)</div><div class='del'>-extract-gems: update-gems</div><div class='add'>+GITHUB_RUBY_URL = https://github.com/ruby/ruby</div><div class='add'>+PR =</div><div class='add'>+</div><div class='add'>+COMMIT_GPG_SIGN = $(shell $(GIT) -C "$(srcdir)" config commit.gpgsign)</div><div class='add'>+REMOTE_GITHUB_URL = $(shell $(GIT) -C "$(srcdir)" config remote.github.url)</div><div class='add'>+COMMITS_NOTES = commits</div><div class='add'>+</div><div class='add'>+.PHONY: fetch-github</div><div class='add'>+fetch-github:</div><div class='add'>+	$(call fetch-github,$(PR))</div><div class='add'>+</div><div class='add'>+define fetch-github</div><div class='add'>+	$(if $(1),,\</div><div class='add'>+	  echo "usage:"; echo "  make $@ PR=1234"; \</div><div class='add'>+	  exit 1; \</div><div class='add'>+	)</div><div class='add'>+	$(eval REMOTE_GITHUB_URL := $(REMOTE_GITHUB_URL))</div><div class='add'>+	$(if $(REMOTE_GITHUB_URL),,</div><div class='add'>+	  echo adding $(GITHUB_RUBY_URL) as remote github</div><div class='add'>+	  $(GIT) -C "$(srcdir)" remote add github $(GITHUB_RUBY_URL)</div><div class='add'>+	  $(GIT) -C "$(srcdir)" config --add remote.github.fetch +refs/notes/$(COMMITS_NOTES):refs/notes/$(COMMITS_NOTES)</div><div class='add'>+	  $(eval REMOTE_GITHUB_URL := $(GITHUB_RUBY_URL))</div><div class='add'>+	)</div><div class='add'>+	$(if $(shell $(GIT) -C "$(srcdir)" rev-parse "github/pull/$(1)/head" -- 2&gt; /dev/null),</div><div class='add'>+	    $(GIT) -C "$(srcdir)" branch -f "gh-$(1)" "github/pull/$(1)/head",</div><div class='add'>+	    $(GIT) -C "$(srcdir)" fetch -f github "pull/$(1)/head:gh-$(1)"</div><div class='add'>+	)</div><div class='add'>+endef</div><div class='add'>+</div><div class='add'>+.PHONY: checkout-github</div><div class='add'>+checkout-github: fetch-github</div><div class='add'>+	$(GIT) -C "$(srcdir)" checkout "gh-$(PR)"</div><div class='add'>+</div><div class='add'>+.PHONY: update-github</div><div class='add'>+update-github: fetch-github</div><div class='add'>+	$(eval PULL_REQUEST_API := https://api.github.com/repos/ruby/ruby/pulls/$(PR))</div><div class='add'>+	$(eval PULL_REQUEST_FORK_BRANCH := $(shell \</div><div class='add'>+	  curl -s $(if $(GITHUB_TOKEN),-H "Authorization: bearer $(GITHUB_TOKEN)") $(PULL_REQUEST_API) | \</div><div class='add'>+	  $(BASERUBY) -rjson -e 'JSON.parse(STDIN.read)["head"].tap { |h| print "#{h["repo"]["full_name"]} #{h["ref"]}" }' \</div><div class='add'>+	))</div><div class='add'>+	$(eval FORK_REPO := $(word 1,$(PULL_REQUEST_FORK_BRANCH)))</div><div class='add'>+	$(eval PR_BRANCH := $(word 2,$(PULL_REQUEST_FORK_BRANCH)))</div><div class='add'>+</div><div class='add'>+	$(eval GITHUB_UPDATE_WORKTREE := $(shell mktemp -d "$(srcdir)/gh-$(PR)-XXXXXX"))</div><div class='add'>+	$(GIT) -C "$(srcdir)" worktree add $(notdir $(GITHUB_UPDATE_WORKTREE)) "gh-$(PR)"</div><div class='add'>+	$(GIT) -C "$(GITHUB_UPDATE_WORKTREE)" merge master --no-edit</div><div class='add'>+	@$(BASERUBY) -e 'print "Are you sure to push this to PR=$(PR)? [Y/n]: "; exit(gets.chomp != "n")'</div><div class='add'>+	$(GIT) -C "$(srcdir)" remote add fork-$(PR) git@github.com:$(FORK_REPO).git</div><div class='add'>+	$(GIT) -C "$(GITHUB_UPDATE_WORKTREE)" push fork-$(PR) gh-$(PR):$(PR_BRANCH)</div><div class='add'>+	$(GIT) -C "$(srcdir)" remote rm fork-$(PR)</div><div class='add'>+	$(GIT) -C "$(srcdir)" worktree remove $(notdir $(GITHUB_UPDATE_WORKTREE))</div><div class='add'>+	$(GIT) -C "$(srcdir)" branch -D gh-$(PR)</div><div class='add'>+</div><div class='add'>+.PHONY: pull-github</div><div class='add'>+pull-github: fetch-github</div><div class='add'>+	$(call pull-github,$(PR))</div><div class='add'>+</div><div class='add'>+define pull-github</div><div class='add'>+	$(eval GITHUB_MERGE_BASE := $(shell $(GIT) -C "$(srcdir)" log -1 --format=format:%H))</div><div class='add'>+	$(eval GITHUB_MERGE_BRANCH := $(shell $(GIT) -C "$(srcdir)" symbolic-ref --short HEAD))</div><div class='add'>+	$(eval GITHUB_MERGE_WORKTREE := $(shell mktemp -d "$(srcdir)/gh-$(1)-XXXXXX"))</div><div class='add'>+	$(GIT) -C "$(srcdir)" worktree prune</div><div class='add'>+	$(GIT) -C "$(srcdir)" worktree add $(notdir $(GITHUB_MERGE_WORKTREE)) "gh-$(1)"</div><div class='add'>+	$(GIT) -C "$(GITHUB_MERGE_WORKTREE)" rebase $(GITHUB_MERGE_BRANCH)</div><div class='add'>+	$(eval COMMIT_GPG_SIGN := $(COMMIT_GPG_SIGN))</div><div class='add'>+	$(if $(filter true,$(COMMIT_GPG_SIGN)), \</div><div class='add'>+	  $(GIT) -C "$(GITHUB_MERGE_WORKTREE)" rebase --exec "$(GIT) commit --amend --no-edit -S" "$(GITHUB_MERGE_BASE)"; \</div><div class='add'>+	)</div><div class='add'>+	$(GIT) -C "$(GITHUB_MERGE_WORKTREE)" rebase --exec "$(GIT) notes add --message 'Merged: $(GITHUB_RUBY_URL)/pull/$(1)'" "$(GITHUB_MERGE_BASE)"</div><div class='add'>+endef</div><div class='add'>+</div><div class='add'>+.PHONY: fetch-github-%</div><div class='add'>+fetch-github-%:</div><div class='add'>+	$(call fetch-github,$*)</div><div class='add'>+</div><div class='add'>+.PHONY: checkout-github-%</div><div class='add'>+checkout-github-%: fetch-github-%</div><div class='add'>+	$(GIT) -C "$(srcdir)" checkout "gh-$*"</div><div class='add'>+</div><div class='add'>+.PHONY: pr-% pull-github-%</div><div class='add'>+pr-% pull-github-%: fetch-github-%</div><div class='add'>+	$(call pull-github,$*)</div><div class='add'>+</div><div class='add'>+HELP_EXTRA_TASKS = \</div><div class='add'>+	"  checkout-github:       checkout GitHub Pull Request [PR=1234]" \</div><div class='add'>+	"  pull-github:           rebase GitHub Pull Request to new worktree [PR=1234]" \</div><div class='add'>+	"  update-github:         merge master branch and push it to Pull Request [PR=1234]" \</div><div class='add'>+	""</div><div class='add'>+</div><div class='add'>+# 1. squeeze spaces</div><div class='add'>+# 2. strip and skip comment/empty lines</div><div class='add'>+# 3. "gem x.y.z URL xxxxxx" -&gt; "gem|x.y.z|xxxxxx|URL"</div><div class='add'>+# 4. "gem x.y.z URL" -&gt; "gem-x.y.z"</div><div class='add'>+bundled-gems := $(shell sed \</div><div class='add'>+	-e 's/[ 	][ 	]*/ /g' \</div><div class='add'>+	-e 's/^ //;/\#/d;s/ *$$//;/^$$/d' \</div><div class='add'>+	$(if $(filter yes,$(HAVE_GIT)), \</div><div class='add'>+	-e 's/^\(.*\) \(.*\) \(.*\) \(.*\)/\1|\2|\4|\3/' \</div><div class='add'>+	) \</div><div class='add'>+	-e 's/ /-/;s/ .*//' \</div><div class='add'>+	 $(srcdir)/gems/bundled_gems)</div><div class='add'>+</div><div class='add'>+bundled-gems-rev := $(filter-out $(subst |,,$(bundled-gems)),$(bundled-gems))</div><div class='add'>+bundled-gems := $(filter-out $(bundled-gems-rev),$(bundled-gems))</div><div class='add'>+</div><div class='add'>+# calls $(1) with name, version, revision, URL</div><div class='add'>+foreach-bundled-gems-rev = \</div><div class='add'>+    $(foreach g,$(bundled-gems-rev),$(call foreach-bundled-gems-rev-0,$(1),$(subst |, ,$(value g))))</div><div class='add'>+foreach-bundled-gems-rev-0 = \</div><div class='add'>+    $(call $(1),$(word 1,$(2)),$(word 2,$(2)),$(word 3,$(2)),$(word 4,$(2)))</div><div class='add'>+bundled-gem-gemfile = $(srcdir)/gems/$(1)-$(2).gem</div><div class='add'>+bundled-gem-srcdir = $(srcdir)/gems/src/$(1)</div><div class='add'>+bundled-gem-extracted = $(srcdir)/.bundle/gems/$(1)-$(2)</div><div class='add'>+</div><div class='add'>+update-gems: | $(patsubst %,$(srcdir)/gems/%.gem,$(bundled-gems))</div><div class='add'>+update-gems: | $(call foreach-bundled-gems-rev,bundled-gem-gemfile)</div><div class='add'>+update-gems: | $(call foreach-bundled-gems-rev,bundled-gem-srcdir)</div><div class='add'>+</div><div class='add'>+test-bundler-precheck: | $(srcdir)/.bundle/cache</div><div class='add'>+</div><div class='add'>+$(srcdir)/.bundle/cache:</div><div class='add'>+	$(MAKEDIRS) $(@D) $(CACHE_DIR)</div><div class='add'>+	$(LN_S) ../.downloaded-cache $@</div><div class='add'>+</div><div class='add'>+$(srcdir)/gems/%.gem:</div><div class='add'>+	$(ECHO) Downloading bundled gem $*...</div><div class='add'>+	$(Q) $(BASERUBY) -C "$(srcdir)" \</div><div class='add'>+	    -I./tool -rdownloader \</div><div class='add'>+	    -e 'gem = "$(@F)"' \</div><div class='add'>+	    -e 'old = Dir.glob("gems/"+gem.sub(/-[^-]*$$/, "-*.gem"))' \</div><div class='add'>+	    -e 'Downloader::RubyGems.download(gem, "gems", nil) and' \</div><div class='add'>+	    -e '(old.delete("gems/#{gem}"); !old.empty?) and' \</div><div class='add'>+	    -e 'File.unlink(*old) and' \</div><div class='add'>+	    -e 'FileUtils.rm_rf(old.map{'"|n|"'n.chomp(".gem")})'</div><div class='add'>+</div><div class='add'>+extract-gems: | $(patsubst %,$(srcdir)/.bundle/gems/%,$(bundled-gems))</div><div class='add'>+extract-gems: | $(call foreach-bundled-gems-rev,bundled-gem-extracted)</div><div class='add'>+</div><div class='add'>+$(srcdir)/.bundle/gems/%: $(srcdir)/gems/%.gem | .bundle/gems</div><div class='add'>+	$(ECHO) Extracting bundle gem $*...</div><div class='add'>+	$(Q) $(BASERUBY) -C "$(srcdir)" \</div><div class='add'>+	    -Itool/lib -rbundled_gem \</div><div class='add'>+	    -e 'BundledGem.unpack("gems/$(@F).gem", ".bundle")'</div><div class='add'>+</div><div class='add'>+define copy-gem</div><div class='add'>+$(srcdir)/gems/src/$(1): | $(srcdir)/gems/src</div><div class='add'>+	$(ECHO) Cloning $(4)</div><div class='add'>+	$(Q) $(GIT) clone $(4) $$(@)</div><div class='add'>+</div><div class='add'>+$(srcdir)/.bundle/gems/$(1)-$(2): | $(srcdir)/gems/src/$(1) .bundle/gems</div><div class='add'>+	$(ECHO) Copying $(1)@$(3) to $$(@F)</div><div class='add'>+	$(Q) $(CHDIR) "$(srcdir)/gems/src/$(1)" &amp;&amp; \</div><div class='add'>+	    $(GIT) fetch origin $(3) &amp;&amp; \</div><div class='add'>+	    $(GIT) checkout --detach $(3) &amp;&amp; \</div><div class='add'>+	:</div><div class='add'>+	$(Q) $(BASERUBY) -C "$(srcdir)" \</div><div class='add'>+	    -Itool/lib -rbundled_gem \</div><div class='add'>+	    -e 'BundledGem.copy("gems/src/$(1)/$(1).gemspec", ".bundle")'</div><div class='add'>+</div><div class='add'>+endef</div><div class='add'>+define copy-gem-0</div><div class='add'>+$(eval $(call copy-gem,$(1),$(2),$(3),$(4)))</div><div class='add'>+endef</div><div class='add'>+</div><div class='add'>+$(call foreach-bundled-gems-rev,copy-gem-0)</div><div class='add'>+</div><div class='add'>+$(srcdir)/gems/src:</div><div class='add'>+	$(MAKEDIRS) $@</div><div class='add'>+</div><div class='add'>+$(srcdir)/.bundle/gems:</div><div class='add'>+	$(MAKEDIRS) $@</div><div class='add'>+</div><div class='add'>+ifneq ($(filter update-bundled_gems refresh-gems,$(MAKECMDGOALS)),)</div><div class='add'>+update-gems: update-bundled_gems</div><div class='ctx'> endif</div><div class='ctx'> </div><div class='ctx'> ifeq ($(filter 0 1,$(words $(arch_flags))),)</div><div class='hunk'>@@ -185,9 +385,25 @@ $(MJIT_MIN_HEADER): $(mjit_min_headers) $(PREP)</div><div class='ctx'> </div><div class='ctx'> endif</div><div class='ctx'> </div><div class='del'>-# GNU make treat the target as unmodified when its dependents get</div><div class='del'>-# updated but it is not updated, while others may not.</div><div class='del'>-$(srcdir)/revision.h: $(REVISION_H)</div><div class='add'>+.SECONDARY: update-unicode-files</div><div class='add'>+.SECONDARY: update-unicode-auxiliary-files</div><div class='add'>+.SECONDARY: update-unicode-ucd-emoji-files</div><div class='add'>+.SECONDARY: update-unicode-emoji-files</div><div class='add'>+</div><div class='add'>+ifeq ($(HAVE_GIT),yes)</div><div class='add'>+REVISION_LATEST := $(shell $(CHDIR) $(srcdir) &amp;&amp; $(GIT) log -1 --format=%H 2&gt;/dev/null)</div><div class='add'>+else</div><div class='add'>+REVISION_LATEST := update</div><div class='add'>+endif</div><div class='add'>+REVISION_IN_HEADER := $(shell sed -n 's/^\#define RUBY_FULL_REVISION "\(.*\)"/\1/p' $(wildcard $(srcdir)/revision.h revision.h) /dev/null 2&gt;/dev/null)</div><div class='add'>+ifeq ($(REVISION_IN_HEADER),)</div><div class='add'>+REVISION_IN_HEADER := none</div><div class='add'>+endif</div><div class='add'>+ifneq ($(REVISION_IN_HEADER),$(REVISION_LATEST))</div><div class='add'>+$(REVISION_H): PHONY</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+include $(top_srcdir)/yjit/yjit.mk</div><div class='ctx'> </div><div class='ctx'> # Query on the generated rdoc</div><div class='ctx'> #</div><div class='hunk'>@@ -196,10 +412,71 @@ rdoc\:%: PHONY</div><div class='ctx'> 	$(Q)$(RUNRUBY) $(srcdir)/libexec/ri --no-standard-docs --doc-dir=$(RDOCOUT) $(patsubst rdoc:%,%,$@)</div><div class='ctx'> </div><div class='ctx'> test_%.rb test/%: programs PHONY</div><div class='del'>-	+$(Q)$(exec) $(RUNRUBY) "$(srcdir)/test/runner.rb" --ruby="$(RUNRUBY)" $(TEST_EXCLUDES) $(TESTOPTS) -- $(patsubst test/%,%,$@)</div><div class='add'>+	$(Q)$(exec) $(RUNRUBY) "$(TESTSDIR)/runner.rb" --ruby="$(RUNRUBY)" $(TEST_EXCLUDES) $(TESTOPTS) -- $(patsubst test/%,%,$@)</div><div class='add'>+</div><div class='add'>+spec/bundler/%: PHONY</div><div class='add'>+	$(Q)$(exec) $(XRUBY) -C $(srcdir) -Ispec/bundler .bundle/bin/rspec --require spec_helper $(RSPECOPTS) $@</div><div class='add'>+</div><div class='add'>+spec/bundler: test-bundler-parallel</div><div class='add'>+	$(Q)$(NULLCMD)</div><div class='add'>+</div><div class='add'>+# workaround to avoid matching non ruby files with "spec/%/" under GNU make 3.81</div><div class='add'>+spec/%_spec.c:</div><div class='add'>+	$(empty)</div><div class='add'>+$(srcdir)/$(RUBYSPEC_CAPIEXT)/rubyspec.h:</div><div class='add'>+	$(empty)</div><div class='add'>+</div><div class='add'>+benchmark/%: miniruby$(EXEEXT) update-benchmark-driver PHONY</div><div class='add'>+	$(Q)$(BASERUBY) -rrubygems -I$(srcdir)/benchmark/lib $(srcdir)/benchmark/benchmark-driver/exe/benchmark-driver \</div><div class='add'>+	            --executables="compare-ruby::$(COMPARE_RUBY) -I$(EXTOUT)/common --disable-gem" \</div><div class='add'>+	            --executables="built-ruby::$(BENCH_RUBY) --disable-gem" \</div><div class='add'>+	            $(srcdir)/$@ $(BENCH_OPTS) $(OPTS)</div><div class='ctx'> </div><div class='ctx'> clean-srcs-ext::</div><div class='ctx'> 	$(Q)$(RM) $(patsubst $(srcdir)/%,%,$(EXT_SRCS))</div><div class='ctx'> </div><div class='ctx'> clean-srcs-extra::</div><div class='ctx'> 	$(Q)$(RM) $(patsubst $(srcdir)/%,%,$(EXTRA_SRCS))</div><div class='add'>+</div><div class='add'>+ifneq ($(filter $(VCS),git),)</div><div class='add'>+update-src::</div><div class='add'>+	@$(BASERUBY) $(tooldir)/lib/colorize.rb pass "Latest commit hash = $(shell $(filter-out svn,$(VCS)) -C $(srcdir) rev-parse --short=10 HEAD)"</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+# Update dependencies and commit the updates to the current branch.</div><div class='add'>+update-deps:</div><div class='add'>+	$(eval update_deps := $(shell date +update-deps-%Y%m%d))</div><div class='add'>+	$(eval deps_dir := $(shell mktemp -d)/$(update_deps))</div><div class='add'>+	$(eval GIT_DIR := $(shell $(GIT) -C $(srcdir) rev-parse --absolute-git-dir))</div><div class='add'>+	$(GIT) --git-dir=$(GIT_DIR) worktree add $(deps_dir)</div><div class='add'>+	cp $(tooldir)/config.guess $(tooldir)/config.sub $(deps_dir)/tool</div><div class='add'>+	[ -f config.status ] &amp;&amp; cp config.status $(deps_dir)</div><div class='add'>+	cd $(deps_dir) &amp;&amp; autoconf &amp;&amp; \</div><div class='add'>+	exec ./configure -q -C --enable-load-relative --disable-install-doc --disable-rubygems 'optflags=-O0' 'debugflags=-save-temps=obj -g'</div><div class='add'>+	$(RUNRUBY) -C $(deps_dir) tool/update-deps --fix</div><div class='add'>+	$(GIT) -C $(deps_dir) diff --no-ext-diff --ignore-submodules --exit-code || \</div><div class='add'>+	    $(GIT) -C $(deps_dir) commit --all --message='Update dependencies'</div><div class='add'>+	$(GIT) --git-dir=$(GIT_DIR) worktree remove $(deps_dir)</div><div class='add'>+	$(RMDIR) $(dir $(deps_dir))</div><div class='add'>+	$(GIT) --git-dir=$(GIT_DIR) merge --no-edit --ff-only $(update_deps)</div><div class='add'>+	$(GIT) --git-dir=$(GIT_DIR) branch --delete $(update_deps)</div><div class='add'>+</div><div class='add'>+# order-only-prerequisites doesn't work for $(RUBYSPEC_CAPIEXT)</div><div class='add'>+# because the same named directory exists in the source tree.</div><div class='add'>+$(RUBYSPEC_CAPIEXT)/%.$(DLEXT): $(srcdir)/$(RUBYSPEC_CAPIEXT)/%.c $(srcdir)/$(RUBYSPEC_CAPIEXT)/rubyspec.h $(RUBY_H_INCLUDES) $(LIBRUBY)</div><div class='add'>+	$(ECHO) building $@</div><div class='add'>+	$(Q) $(MAKEDIRS) $(@D)</div><div class='add'>+	$(Q) $(DLDSHARED) $(XDLDFLAGS) $(XLDFLAGS) $(LDFLAGS) $(INCFLAGS) $(CPPFLAGS) $(OUTFLAG)$@ $&lt; $(LIBRUBYARG)</div><div class='add'>+	$(Q) $(RMALL) $@.*</div><div class='add'>+</div><div class='add'>+rubyspec-capiext: $(patsubst %.c,$(RUBYSPEC_CAPIEXT)/%.$(DLEXT),$(notdir $(wildcard $(srcdir)/$(RUBYSPEC_CAPIEXT)/*.c)))</div><div class='add'>+	@ $(NULLCMD)</div><div class='add'>+</div><div class='add'>+ifeq ($(ENABLE_SHARED),yes)</div><div class='add'>+exts: rubyspec-capiext</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+spec/%/ spec/%_spec.rb: programs exts PHONY</div><div class='add'>+	+$(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec-run -B $(srcdir)/spec/default.mspec $(SPECOPTS) $(patsubst %,$(srcdir)/%,$@)</div><div class='add'>+</div><div class='add'>+ruby.pc: $(filter-out ruby.pc,$(ruby_pc))</div><div class='head'>diff --git a/defs/id.def b/defs/id.def<br/>index bb7cc6f922..ebf00506ea 100644<br/>--- a/<a href='/ruby.git/tree/defs/id.def?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>defs/id.def</a><br/>+++ b/<a href='/ruby.git/tree/defs/id.def?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>defs/id.def</a></div><div class='hunk'>@@ -3,9 +3,11 @@ firstline, predefined = __LINE__+1, %[\</div><div class='ctx'>   max</div><div class='ctx'>   min</div><div class='ctx'>   freeze</div><div class='add'>+  nil?</div><div class='ctx'>   inspect</div><div class='ctx'>   intern</div><div class='ctx'>   object_id</div><div class='add'>+  const_added</div><div class='ctx'>   const_missing</div><div class='ctx'>   method_missing                                        MethodMissing</div><div class='ctx'>   method_added</div><div class='hunk'>@@ -24,6 +26,7 @@ firstline, predefined = __LINE__+1, %[\</div><div class='ctx'>   send</div><div class='ctx'>   __send__</div><div class='ctx'>   __attached__</div><div class='add'>+  __recursive_key__</div><div class='ctx'>   initialize</div><div class='ctx'>   initialize_copy</div><div class='ctx'>   initialize_clone</div><div class='hunk'>@@ -45,14 +48,35 @@ firstline, predefined = __LINE__+1, %[\</div><div class='ctx'>   call</div><div class='ctx'>   mesg</div><div class='ctx'>   exception</div><div class='add'>+  locals</div><div class='ctx'>   not                                                   NOT</div><div class='ctx'>   and                                                   AND</div><div class='ctx'>   or                                                    OR</div><div class='add'>+  div</div><div class='add'>+  divmod</div><div class='add'>+  fdiv</div><div class='add'>+  quo</div><div class='add'>+  name</div><div class='add'>+  nil</div><div class='add'>+  path</div><div class='ctx'> </div><div class='ctx'>   _                                                     UScore</div><div class='add'>+</div><div class='add'>+  # MUST be successive</div><div class='add'>+  _1  NUMPARAM_1</div><div class='add'>+  _2  NUMPARAM_2</div><div class='add'>+  _3  NUMPARAM_3</div><div class='add'>+  _4  NUMPARAM_4</div><div class='add'>+  _5  NUMPARAM_5</div><div class='add'>+  _6  NUMPARAM_6</div><div class='add'>+  _7  NUMPARAM_7</div><div class='add'>+  _8  NUMPARAM_8</div><div class='add'>+  _9  NUMPARAM_9</div><div class='add'>+</div><div class='ctx'>   "/*NULL*/"                                            NULL</div><div class='ctx'>   empty?</div><div class='ctx'>   eql?</div><div class='add'>+  default</div><div class='ctx'>   respond_to?                                           Respond_to</div><div class='ctx'>   respond_to_missing?                                   Respond_to_missing</div><div class='ctx'>   &lt;IFUNC&gt;</div><div class='hunk'>@@ -65,17 +89,22 @@ firstline, predefined = __LINE__+1, %[\</div><div class='ctx'>   core#set_postexe</div><div class='ctx'>   core#hash_merge_ptr</div><div class='ctx'>   core#hash_merge_kwd</div><div class='add'>+  core#raise</div><div class='add'>+  core#sprintf</div><div class='ctx'> </div><div class='ctx'>   -                                                     debug#created_info</div><div class='ctx'> </div><div class='ctx'>   $_                                                    LASTLINE</div><div class='ctx'>   $~                                                    BACKREF</div><div class='add'>+  $!                                                    ERROR_INFO</div><div class='ctx'> ]</div><div class='ctx'> </div><div class='ctx'> # VM ID         OP      Parser Token</div><div class='ctx'> token_ops = %[\</div><div class='ctx'>   Dot2          ..      DOT2</div><div class='ctx'>   Dot3          ...     DOT3</div><div class='add'>+  BDot2         ..      BDOT2</div><div class='add'>+  BDot3         ...     BDOT3</div><div class='ctx'>   UPlus         +@      UPLUS</div><div class='ctx'>   UMinus        -@      UMINUS</div><div class='ctx'>   Pow           **      POW</div><div class='hunk'>@@ -114,6 +143,21 @@ class KeywordError &lt; RuntimeError</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='add'>+def id2varname(token, prefix = nil)</div><div class='add'>+  if /#/ =~ token</div><div class='add'>+    token = "_#{token.gsub(/\W+/, '_')}"</div><div class='add'>+  else</div><div class='add'>+    token = token.sub(/\?/, 'P')</div><div class='add'>+    token = prefix + token if prefix</div><div class='add'>+    token.sub!(/\A[a-z]/) {$&amp;.upcase}</div><div class='add'>+    token.sub!(/\A\$/, "_G_")</div><div class='add'>+    token.sub!(/\A@@/, "_C_")</div><div class='add'>+    token.sub!(/\A@/, "_I_")</div><div class='add'>+    token.gsub!(/\W+/, "")</div><div class='add'>+  end</div><div class='add'>+  token</div><div class='add'>+end</div><div class='add'>+</div><div class='ctx'> predefined_ids = {}</div><div class='ctx'> preserved_ids = []</div><div class='ctx'> local_ids = []</div><div class='hunk'>@@ -129,16 +173,7 @@ predefined.split(/^/).each_with_index do |line, num|</div><div class='ctx'>   line.sub!(/\s+#.*/, '')</div><div class='ctx'>   name, token = line.split</div><div class='ctx'>   next unless name</div><div class='del'>-  token ||= name</div><div class='del'>-  if /#/ =~ token</div><div class='del'>-    token = "_#{token.gsub(/\W+/, '_')}"</div><div class='del'>-  else</div><div class='del'>-    token = token.sub(/\?/, 'P').sub(/\A[a-z]/) {$&amp;.upcase}</div><div class='del'>-    token.sub!(/\A\$/, "_G_")</div><div class='del'>-    token.sub!(/\A@@/, "_C_")</div><div class='del'>-    token.sub!(/\A@/, "_I_")</div><div class='del'>-    token.gsub!(/\W+/, "")</div><div class='del'>-  end</div><div class='add'>+  token = id2varname(token || name)</div><div class='ctx'>   if name == '-'</div><div class='ctx'>     preserved_ids &lt;&lt; token</div><div class='ctx'>     next</div><div class='hunk'>@@ -161,13 +196,14 @@ predefined.split(/^/).each_with_index do |line, num|</div><div class='ctx'>   end &lt;&lt; token</div><div class='ctx'>   predefined_ids[token] = name</div><div class='ctx'> end</div><div class='add'>+index = 127</div><div class='ctx'> token_ops.split(/^/).each do |line|</div><div class='ctx'>   next if /^#/ =~ line</div><div class='ctx'>   line.sub!(/\s+#.*/, '')</div><div class='ctx'>   id, op, token = line.split</div><div class='ctx'>   next unless id and op</div><div class='ctx'>   token ||= (id unless /\A\W\z/ =~ op)</div><div class='del'>-  token_op_ids &lt;&lt; [id, op, token]</div><div class='add'>+  token_op_ids &lt;&lt; [id, op, token, (index += 1 if token)]</div><div class='ctx'> end</div><div class='ctx'> {</div><div class='ctx'>   "LOCAL" =&gt; local_ids,</div><div class='hunk'>@@ -179,4 +215,5 @@ end</div><div class='ctx'>   :preserved =&gt; preserved_ids,</div><div class='ctx'>   :predefined =&gt; predefined_ids,</div><div class='ctx'>   :token_op =&gt; token_op_ids,</div><div class='add'>+  :last_token =&gt; index,</div><div class='ctx'> }</div><div class='head'>diff --git a/defs/keywords b/defs/keywords<br/>index fc30ec2d15..a1b1f4f60f 100644<br/>--- a/<a href='/ruby.git/tree/defs/keywords?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>defs/keywords</a><br/>+++ b/<a href='/ruby.git/tree/defs/keywords?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>defs/keywords</a></div><div class='hunk'>@@ -2,7 +2,7 @@</div><div class='ctx'> struct kwtable {short name, id[2], state;};</div><div class='ctx'> const struct kwtable *rb_reserved_word(const char *, unsigned int);</div><div class='ctx'> #ifndef RIPPER</div><div class='del'>-static const struct kwtable *reserved_word(/*!ANSI{*/const char *, unsigned int/*}!ANSI*/);</div><div class='add'>+static const struct kwtable *reserved_word(register const char *str, register size_t len);</div><div class='ctx'> #define rb_reserved_word(str, len) reserved_word(str, len)</div><div class='ctx'> %}</div><div class='ctx'> </div><div class='head'>diff --git a/defs/lex.c.src b/defs/lex.c.src<br/>index fc30ec2d15..a1b1f4f60f 100644<br/>--- a/<a href='/ruby.git/tree/defs/lex.c.src?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>defs/lex.c.src</a><br/>+++ b/<a href='/ruby.git/tree/defs/lex.c.src?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>defs/lex.c.src</a></div><div class='hunk'>@@ -2,7 +2,7 @@</div><div class='ctx'> struct kwtable {short name, id[2], state;};</div><div class='ctx'> const struct kwtable *rb_reserved_word(const char *, unsigned int);</div><div class='ctx'> #ifndef RIPPER</div><div class='del'>-static const struct kwtable *reserved_word(/*!ANSI{*/const char *, unsigned int/*}!ANSI*/);</div><div class='add'>+static const struct kwtable *reserved_word(register const char *str, register size_t len);</div><div class='ctx'> #define rb_reserved_word(str, len) reserved_word(str, len)</div><div class='ctx'> %}</div><div class='ctx'> </div><div class='head'>diff --git a/defs/separated_version.mk b/defs/separated_version.mk<br/>index f086f4b24a..72ee093da7 100644<br/>--- a/<a href='/ruby.git/tree/defs/separated_version.mk?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>defs/separated_version.mk</a><br/>+++ b/<a href='/ruby.git/tree/defs/separated_version.mk?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>defs/separated_version.mk</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> # ******** FOR DEVELEPERS ONLY ********</div><div class='ctx'> # Separate version.o into a shared library which varies every</div><div class='del'>-# revisions, in order to make the rest sharable.</div><div class='add'>+# revisions, in order to make the rest shareable.</div><div class='ctx'> </div><div class='ctx'> include $(firstword $(wildcard GNUmakefile Makefile))</div><div class='ctx'> </div><div class='head'>diff --git a/dir.c b/dir.c<br/>index 2f38e35976..3f73f83fc5 100644<br/>--- a/<a href='/ruby.git/tree/dir.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>dir.c</a><br/>+++ b/<a href='/ruby.git/tree/dir.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>dir.c</a></div><div class='hunk'>@@ -11,12 +11,10 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby/encoding.h"</div><div class='del'>-#include "ruby/thread.h"</div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "id.h"</div><div class='del'>-#include "encindex.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> </div><div class='add'>+#include &lt;ctype.h&gt;</div><div class='add'>+#include &lt;errno.h&gt;</div><div class='ctx'> #include &lt;sys/types.h&gt;</div><div class='ctx'> #include &lt;sys/stat.h&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -36,12 +34,10 @@</div><div class='ctx'> #   define USE_OPENDIR_AT 0</div><div class='ctx'> # endif</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #if USE_OPENDIR_AT</div><div class='ctx'> # include &lt;fcntl.h&gt;</div><div class='ctx'> #endif</div><div class='del'>-#ifndef AT_FDCWD</div><div class='del'>-# define AT_FDCWD -1</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> #undef HAVE_DIRENT_NAMLEN</div><div class='ctx'> #if defined HAVE_DIRENT_H &amp;&amp; !defined _WIN32</div><div class='hunk'>@@ -54,13 +50,13 @@</div><div class='ctx'> # define dirent direct</div><div class='ctx'> # define NAMLEN(dirent) (dirent)-&gt;d_namlen</div><div class='ctx'> # define HAVE_DIRENT_NAMLEN 1</div><div class='del'>-# if HAVE_SYS_NDIR_H</div><div class='add'>+# ifdef HAVE_SYS_NDIR_H</div><div class='ctx'> #  include &lt;sys/ndir.h&gt;</div><div class='ctx'> # endif</div><div class='del'>-# if HAVE_SYS_DIR_H</div><div class='add'>+# ifdef HAVE_SYS_DIR_H</div><div class='ctx'> #  include &lt;sys/dir.h&gt;</div><div class='ctx'> # endif</div><div class='del'>-# if HAVE_NDIR_H</div><div class='add'>+# ifdef HAVE_NDIR_H</div><div class='ctx'> #  include &lt;ndir.h&gt;</div><div class='ctx'> # endif</div><div class='ctx'> # ifdef _WIN32</div><div class='hunk'>@@ -68,8 +64,6 @@</div><div class='ctx'> # endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#include &lt;errno.h&gt;</div><div class='del'>-</div><div class='ctx'> #ifndef HAVE_STDLIB_H</div><div class='ctx'> char *getenv();</div><div class='ctx'> #endif</div><div class='hunk'>@@ -78,36 +72,14 @@ char *getenv();</div><div class='ctx'> char *strchr(char*,char);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-</div><div class='del'>-#include "ruby/util.h"</div><div class='del'>-</div><div class='del'>-#define vm_initialized rb_cThread</div><div class='del'>-</div><div class='del'>-/* define system APIs */</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-#undef chdir</div><div class='del'>-#define chdir(p) rb_w32_uchdir(p)</div><div class='del'>-#undef mkdir</div><div class='del'>-#define mkdir(p, m) rb_w32_umkdir((p), (m))</div><div class='del'>-#undef rmdir</div><div class='del'>-#define rmdir(p) rb_w32_urmdir(p)</div><div class='del'>-#undef opendir</div><div class='del'>-#define opendir(p) rb_w32_uopendir(p)</div><div class='del'>-#define ruby_getcwd() rb_w32_ugetcwd(NULL, 0)</div><div class='del'>-#define IS_WIN32 1</div><div class='del'>-#else</div><div class='del'>-#define IS_WIN32 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #ifdef HAVE_SYS_ATTR_H</div><div class='ctx'> #include &lt;sys/attr.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #define USE_NAME_ON_FS_REAL_BASENAME 1	/* platform dependent APIs to</div><div class='del'>-					 * get real basenames */</div><div class='add'>+                                         * get real basenames */</div><div class='ctx'> #define USE_NAME_ON_FS_BY_FNMATCH 2	/* select the matching</div><div class='del'>-					 * basename by fnmatch */</div><div class='add'>+                                         * basename by fnmatch */</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_GETATTRLIST</div><div class='ctx'> # define USE_NAME_ON_FS USE_NAME_ON_FS_REAL_BASENAME</div><div class='hunk'>@@ -123,15 +95,54 @@ char *strchr(char*,char);</div><div class='ctx'> </div><div class='ctx'> #ifdef __APPLE__</div><div class='ctx'> # define NORMALIZE_UTF8PATH 1</div><div class='add'>+# include &lt;sys/param.h&gt;</div><div class='add'>+# include &lt;sys/mount.h&gt;</div><div class='add'>+# include &lt;sys/vnode.h&gt;</div><div class='ctx'> #else</div><div class='ctx'> # define NORMALIZE_UTF8PATH 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if NORMALIZE_UTF8PATH</div><div class='del'>-#include &lt;sys/param.h&gt;</div><div class='del'>-#include &lt;sys/mount.h&gt;</div><div class='del'>-#include &lt;sys/vnode.h&gt;</div><div class='add'>+#include "encindex.h"</div><div class='add'>+#include "id.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/array.h"</div><div class='add'>+#include "internal/dir.h"</div><div class='add'>+#include "internal/encoding.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/file.h"</div><div class='add'>+#include "internal/gc.h"</div><div class='add'>+#include "internal/io.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/vm.h"</div><div class='add'>+#include "ruby/encoding.h"</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/thread.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "builtin.h"</div><div class='add'>+</div><div class='add'>+#ifndef AT_FDCWD</div><div class='add'>+# define AT_FDCWD -1</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='add'>+#define vm_initialized rb_cThread</div><div class='add'>+</div><div class='add'>+/* define system APIs */</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+# undef chdir</div><div class='add'>+# define chdir(p) rb_w32_uchdir(p)</div><div class='add'>+# undef mkdir</div><div class='add'>+# define mkdir(p, m) rb_w32_umkdir((p), (m))</div><div class='add'>+# undef rmdir</div><div class='add'>+# define rmdir(p) rb_w32_urmdir(p)</div><div class='add'>+# undef opendir</div><div class='add'>+# define opendir(p) rb_w32_uopendir(p)</div><div class='add'>+# define ruby_getcwd() rb_w32_ugetcwd(NULL, 0)</div><div class='add'>+# define IS_WIN32 1</div><div class='add'>+#else</div><div class='add'>+# define IS_WIN32 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if NORMALIZE_UTF8PATH</div><div class='ctx'> # if defined HAVE_FGETATTRLIST || !defined HAVE_GETATTRLIST</div><div class='ctx'> #   define need_normalization(dirp, path) need_normalization(dirp)</div><div class='ctx'> # else</div><div class='hunk'>@@ -149,12 +160,12 @@ need_normalization(DIR *dirp, const char *path)</div><div class='ctx'>     int ret = getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), 0);</div><div class='ctx'> #   endif</div><div class='ctx'>     if (!ret) {</div><div class='del'>-	const fsobj_tag_t *tag = (void *)(attrbuf+1);</div><div class='del'>-	switch (*tag) {</div><div class='del'>-	  case VT_HFS:</div><div class='del'>-	  case VT_CIFS:</div><div class='del'>-	    return TRUE;</div><div class='del'>-	}</div><div class='add'>+        const fsobj_tag_t *tag = (void *)(attrbuf+1);</div><div class='add'>+        switch (*tag) {</div><div class='add'>+          case VT_HFS:</div><div class='add'>+          case VT_CIFS:</div><div class='add'>+            return TRUE;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> # endif</div><div class='ctx'>     return FALSE;</div><div class='hunk'>@@ -164,9 +175,9 @@ static inline int</div><div class='ctx'> has_nonascii(const char *ptr, size_t len)</div><div class='ctx'> {</div><div class='ctx'>     while (len &gt; 0) {</div><div class='del'>-	if (!ISASCII(*ptr)) return 1;</div><div class='del'>-	ptr++;</div><div class='del'>-	--len;</div><div class='add'>+        if (!ISASCII(*ptr)) return 1;</div><div class='add'>+        ptr++;</div><div class='add'>+        --len;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -176,12 +187,18 @@ has_nonascii(const char *ptr, size_t len)</div><div class='ctx'> # define IF_NORMALIZE_UTF8PATH(something) /* nothing */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef IFTODT</div><div class='add'>+#if defined(IFTODT) &amp;&amp; defined(DT_UNKNOWN)</div><div class='add'>+# define EMULATE_IFTODT 0</div><div class='add'>+#else</div><div class='add'>+# define EMULATE_IFTODT 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if EMULATE_IFTODT</div><div class='ctx'> # define IFTODT(m)	(((m) &amp; S_IFMT) / ((~S_IFMT &amp; (S_IFMT-1)) + 1))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> typedef enum {</div><div class='del'>-#ifdef DT_UNKNOWN</div><div class='add'>+#if !EMULATE_IFTODT</div><div class='ctx'>     path_exist     = DT_UNKNOWN,</div><div class='ctx'>     path_directory = DT_DIR,</div><div class='ctx'>     path_regular   = DT_REG,</div><div class='hunk'>@@ -206,11 +223,13 @@ typedef enum {</div><div class='ctx'> #else</div><div class='ctx'> #define FNM_SYSCASE	0</div><div class='ctx'> #endif</div><div class='del'>-#if _WIN32</div><div class='add'>+#ifdef _WIN32</div><div class='ctx'> #define FNM_SHORTNAME	0x20</div><div class='ctx'> #else</div><div class='ctx'> #define FNM_SHORTNAME	0</div><div class='ctx'> #endif</div><div class='add'>+#define FNM_GLOB_NOSORT 0x40</div><div class='add'>+#define FNM_GLOB_SKIPDOT 0x80</div><div class='ctx'> </div><div class='ctx'> #define FNM_NOMATCH	1</div><div class='ctx'> #define FNM_ERROR	2</div><div class='hunk'>@@ -235,53 +254,53 @@ bracket(</div><div class='ctx'> </div><div class='ctx'>     if (p &gt;= pend) return NULL;</div><div class='ctx'>     if (*p == '!' || *p == '^') {</div><div class='del'>-	not = 1;</div><div class='del'>-	p++;</div><div class='add'>+        not = 1;</div><div class='add'>+        p++;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (*p != ']') {</div><div class='del'>-	const char *t1 = p;</div><div class='del'>-	if (escape &amp;&amp; *t1 == '\\')</div><div class='del'>-	    t1++;</div><div class='del'>-	if (!*t1)</div><div class='del'>-	    return NULL;</div><div class='del'>-	p = t1 + (r = rb_enc_mbclen(t1, pend, enc));</div><div class='del'>-	if (p &gt;= pend) return NULL;</div><div class='del'>-	if (p[0] == '-' &amp;&amp; p[1] != ']') {</div><div class='del'>-	    const char *t2 = p + 1;</div><div class='del'>-	    int r2;</div><div class='del'>-	    if (escape &amp;&amp; *t2 == '\\')</div><div class='del'>-		t2++;</div><div class='del'>-	    if (!*t2)</div><div class='del'>-		return NULL;</div><div class='del'>-	    p = t2 + (r2 = rb_enc_mbclen(t2, pend, enc));</div><div class='del'>-	    if (ok) continue;</div><div class='del'>-	    if ((r &lt;= (send-s) &amp;&amp; memcmp(t1, s, r) == 0) ||</div><div class='del'>-		(r2 &lt;= (send-s) &amp;&amp; memcmp(t2, s, r2) == 0)) {</div><div class='del'>-		ok = 1;</div><div class='del'>-		continue;</div><div class='del'>-	    }</div><div class='del'>-	    c1 = rb_enc_codepoint(s, send, enc);</div><div class='del'>-	    if (nocase) c1 = rb_enc_toupper(c1, enc);</div><div class='del'>-	    c2 = rb_enc_codepoint(t1, pend, enc);</div><div class='del'>-	    if (nocase) c2 = rb_enc_toupper(c2, enc);</div><div class='del'>-	    if (c1 &lt; c2) continue;</div><div class='del'>-	    c2 = rb_enc_codepoint(t2, pend, enc);</div><div class='del'>-	    if (nocase) c2 = rb_enc_toupper(c2, enc);</div><div class='del'>-	    if (c1 &gt; c2) continue;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (ok) continue;</div><div class='del'>-	    if (r &lt;= (send-s) &amp;&amp; memcmp(t1, s, r) == 0) {</div><div class='del'>-		ok = 1;</div><div class='del'>-		continue;</div><div class='del'>-	    }</div><div class='del'>-	    if (!nocase) continue;</div><div class='del'>-	    c1 = rb_enc_toupper(rb_enc_codepoint(s, send, enc), enc);</div><div class='del'>-	    c2 = rb_enc_toupper(rb_enc_codepoint(p, pend, enc), enc);</div><div class='del'>-	    if (c1 != c2) continue;</div><div class='del'>-	}</div><div class='del'>-	ok = 1;</div><div class='add'>+        const char *t1 = p;</div><div class='add'>+        if (escape &amp;&amp; *t1 == '\\')</div><div class='add'>+            t1++;</div><div class='add'>+        if (!*t1)</div><div class='add'>+            return NULL;</div><div class='add'>+        p = t1 + (r = rb_enc_mbclen(t1, pend, enc));</div><div class='add'>+        if (p &gt;= pend) return NULL;</div><div class='add'>+        if (p[0] == '-' &amp;&amp; p[1] != ']') {</div><div class='add'>+            const char *t2 = p + 1;</div><div class='add'>+            int r2;</div><div class='add'>+            if (escape &amp;&amp; *t2 == '\\')</div><div class='add'>+                t2++;</div><div class='add'>+            if (!*t2)</div><div class='add'>+                return NULL;</div><div class='add'>+            p = t2 + (r2 = rb_enc_mbclen(t2, pend, enc));</div><div class='add'>+            if (ok) continue;</div><div class='add'>+            if ((r &lt;= (send-s) &amp;&amp; memcmp(t1, s, r) == 0) ||</div><div class='add'>+                (r2 &lt;= (send-s) &amp;&amp; memcmp(t2, s, r2) == 0)) {</div><div class='add'>+                ok = 1;</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            c1 = rb_enc_codepoint(s, send, enc);</div><div class='add'>+            if (nocase) c1 = rb_enc_toupper(c1, enc);</div><div class='add'>+            c2 = rb_enc_codepoint(t1, pend, enc);</div><div class='add'>+            if (nocase) c2 = rb_enc_toupper(c2, enc);</div><div class='add'>+            if (c1 &lt; c2) continue;</div><div class='add'>+            c2 = rb_enc_codepoint(t2, pend, enc);</div><div class='add'>+            if (nocase) c2 = rb_enc_toupper(c2, enc);</div><div class='add'>+            if (c1 &gt; c2) continue;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (ok) continue;</div><div class='add'>+            if (r &lt;= (send-s) &amp;&amp; memcmp(t1, s, r) == 0) {</div><div class='add'>+                ok = 1;</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            if (!nocase) continue;</div><div class='add'>+            c1 = rb_enc_toupper(rb_enc_codepoint(s, send, enc), enc);</div><div class='add'>+            c2 = rb_enc_toupper(rb_enc_codepoint(p, pend, enc), enc);</div><div class='add'>+            if (c1 != c2) continue;</div><div class='add'>+        }</div><div class='add'>+        ok = 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return ok == not ? NULL : (char *)p + 1;</div><div class='hunk'>@@ -319,72 +338,72 @@ fnmatch_helper(</div><div class='ctx'>     int r;</div><div class='ctx'> </div><div class='ctx'>     if (period &amp;&amp; *s == '.' &amp;&amp; *UNESCAPE(p) != '.') /* leading period */</div><div class='del'>-	RETURN(FNM_NOMATCH);</div><div class='add'>+        RETURN(FNM_NOMATCH);</div><div class='ctx'> </div><div class='ctx'>     while (1) {</div><div class='del'>-	switch (*p) {</div><div class='del'>-	  case '*':</div><div class='del'>-	    do { p++; } while (*p == '*');</div><div class='del'>-	    if (ISEND(UNESCAPE(p))) {</div><div class='del'>-		p = UNESCAPE(p);</div><div class='del'>-		RETURN(0);</div><div class='del'>-	    }</div><div class='del'>-	    if (ISEND(s))</div><div class='del'>-		RETURN(FNM_NOMATCH);</div><div class='del'>-	    ptmp = p;</div><div class='del'>-	    stmp = s;</div><div class='del'>-	    continue;</div><div class='del'>-</div><div class='del'>-	  case '?':</div><div class='del'>-	    if (ISEND(s))</div><div class='del'>-		RETURN(FNM_NOMATCH);</div><div class='del'>-	    p++;</div><div class='del'>-	    Inc(s, send, enc);</div><div class='del'>-	    continue;</div><div class='del'>-</div><div class='del'>-	  case '[': {</div><div class='del'>-	    const char *t;</div><div class='del'>-	    if (ISEND(s))</div><div class='del'>-		RETURN(FNM_NOMATCH);</div><div class='del'>-	    if ((t = bracket(p + 1, pend, s, send, flags, enc)) != 0) {</div><div class='del'>-		p = t;</div><div class='del'>-		Inc(s, send, enc);</div><div class='del'>-		continue;</div><div class='del'>-	    }</div><div class='del'>-	    goto failed;</div><div class='del'>-	  }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* ordinary */</div><div class='del'>-	p = UNESCAPE(p);</div><div class='del'>-	if (ISEND(s))</div><div class='del'>-	    RETURN(ISEND(p) ? 0 : FNM_NOMATCH);</div><div class='del'>-	if (ISEND(p))</div><div class='del'>-	    goto failed;</div><div class='del'>-	r = rb_enc_precise_mbclen(p, pend, enc);</div><div class='del'>-	if (!MBCLEN_CHARFOUND_P(r))</div><div class='del'>-	    goto failed;</div><div class='del'>-	if (r &lt;= (send-s) &amp;&amp; memcmp(p, s, r) == 0) {</div><div class='del'>-	    p += r;</div><div class='del'>-	    s += r;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	if (!nocase) goto failed;</div><div class='del'>-	if (rb_enc_toupper(rb_enc_codepoint(p, pend, enc), enc) !=</div><div class='del'>-	    rb_enc_toupper(rb_enc_codepoint(s, send, enc), enc))</div><div class='del'>-	    goto failed;</div><div class='del'>-	p += r;</div><div class='del'>-	Inc(s, send, enc);</div><div class='del'>-	continue;</div><div class='add'>+        switch (*p) {</div><div class='add'>+          case '*':</div><div class='add'>+            do { p++; } while (*p == '*');</div><div class='add'>+            if (ISEND(UNESCAPE(p))) {</div><div class='add'>+                p = UNESCAPE(p);</div><div class='add'>+                RETURN(0);</div><div class='add'>+            }</div><div class='add'>+            if (ISEND(s))</div><div class='add'>+                RETURN(FNM_NOMATCH);</div><div class='add'>+            ptmp = p;</div><div class='add'>+            stmp = s;</div><div class='add'>+            continue;</div><div class='add'>+</div><div class='add'>+          case '?':</div><div class='add'>+            if (ISEND(s))</div><div class='add'>+                RETURN(FNM_NOMATCH);</div><div class='add'>+            p++;</div><div class='add'>+            Inc(s, send, enc);</div><div class='add'>+            continue;</div><div class='add'>+</div><div class='add'>+          case '[': {</div><div class='add'>+            const char *t;</div><div class='add'>+            if (ISEND(s))</div><div class='add'>+                RETURN(FNM_NOMATCH);</div><div class='add'>+            if ((t = bracket(p + 1, pend, s, send, flags, enc)) != 0) {</div><div class='add'>+                p = t;</div><div class='add'>+                Inc(s, send, enc);</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            goto failed;</div><div class='add'>+          }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* ordinary */</div><div class='add'>+        p = UNESCAPE(p);</div><div class='add'>+        if (ISEND(s))</div><div class='add'>+            RETURN(ISEND(p) ? 0 : FNM_NOMATCH);</div><div class='add'>+        if (ISEND(p))</div><div class='add'>+            goto failed;</div><div class='add'>+        r = rb_enc_precise_mbclen(p, pend, enc);</div><div class='add'>+        if (!MBCLEN_CHARFOUND_P(r))</div><div class='add'>+            goto failed;</div><div class='add'>+        if (r &lt;= (send-s) &amp;&amp; memcmp(p, s, r) == 0) {</div><div class='add'>+            p += r;</div><div class='add'>+            s += r;</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        if (!nocase) goto failed;</div><div class='add'>+        if (rb_enc_toupper(rb_enc_codepoint(p, pend, enc), enc) !=</div><div class='add'>+            rb_enc_toupper(rb_enc_codepoint(s, send, enc), enc))</div><div class='add'>+            goto failed;</div><div class='add'>+        p += r;</div><div class='add'>+        Inc(s, send, enc);</div><div class='add'>+        continue;</div><div class='ctx'> </div><div class='ctx'>       failed: /* try next '*' position */</div><div class='del'>-	if (ptmp &amp;&amp; stmp) {</div><div class='del'>-	    p = ptmp;</div><div class='del'>-	    Inc(stmp, send, enc); /* !ISEND(*stmp) */</div><div class='del'>-	    s = stmp;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	RETURN(FNM_NOMATCH);</div><div class='add'>+        if (ptmp &amp;&amp; stmp) {</div><div class='add'>+            p = ptmp;</div><div class='add'>+            Inc(stmp, send, enc); /* !ISEND(*stmp) */</div><div class='add'>+            s = stmp;</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        RETURN(FNM_NOMATCH);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -405,37 +424,37 @@ fnmatch(</div><div class='ctx'>     const char *stmp = 0;</div><div class='ctx'> </div><div class='ctx'>     if (pathname) {</div><div class='del'>-	while (1) {</div><div class='del'>-	    if (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/') {</div><div class='del'>-		do { p += 3; } while (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/');</div><div class='del'>-		ptmp = p;</div><div class='del'>-		stmp = s;</div><div class='del'>-	    }</div><div class='del'>-	    if (fnmatch_helper(&amp;p, &amp;s, flags, enc) == 0) {</div><div class='del'>-		while (*s &amp;&amp; *s != '/') Inc(s, send, enc);</div><div class='del'>-		if (*p &amp;&amp; *s) {</div><div class='del'>-		    p++;</div><div class='del'>-		    s++;</div><div class='del'>-		    continue;</div><div class='del'>-		}</div><div class='del'>-		if (!*p &amp;&amp; !*s)</div><div class='del'>-		    return 0;</div><div class='del'>-	    }</div><div class='del'>-	    /* failed : try next recursion */</div><div class='del'>-	    if (ptmp &amp;&amp; stmp &amp;&amp; !(period &amp;&amp; *stmp == '.')) {</div><div class='del'>-		while (*stmp &amp;&amp; *stmp != '/') Inc(stmp, send, enc);</div><div class='del'>-		if (*stmp) {</div><div class='del'>-		    p = ptmp;</div><div class='del'>-		    stmp++;</div><div class='del'>-		    s = stmp;</div><div class='del'>-		    continue;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    return FNM_NOMATCH;</div><div class='del'>-	}</div><div class='add'>+        while (1) {</div><div class='add'>+            if (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/') {</div><div class='add'>+                do { p += 3; } while (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/');</div><div class='add'>+                ptmp = p;</div><div class='add'>+                stmp = s;</div><div class='add'>+            }</div><div class='add'>+            if (fnmatch_helper(&amp;p, &amp;s, flags, enc) == 0) {</div><div class='add'>+                while (*s &amp;&amp; *s != '/') Inc(s, send, enc);</div><div class='add'>+                if (*p &amp;&amp; *s) {</div><div class='add'>+                    p++;</div><div class='add'>+                    s++;</div><div class='add'>+                    continue;</div><div class='add'>+                }</div><div class='add'>+                if (!*p &amp;&amp; !*s)</div><div class='add'>+                    return 0;</div><div class='add'>+            }</div><div class='add'>+            /* failed : try next recursion */</div><div class='add'>+            if (ptmp &amp;&amp; stmp &amp;&amp; !(period &amp;&amp; *stmp == '.')) {</div><div class='add'>+                while (*stmp &amp;&amp; *stmp != '/') Inc(stmp, send, enc);</div><div class='add'>+                if (*stmp) {</div><div class='add'>+                    p = ptmp;</div><div class='add'>+                    stmp++;</div><div class='add'>+                    s = stmp;</div><div class='add'>+                    continue;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            return FNM_NOMATCH;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else</div><div class='del'>-	return fnmatch_helper(&amp;p, &amp;s, flags, enc);</div><div class='add'>+        return fnmatch_helper(&amp;p, &amp;s, flags, enc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE rb_cDir;</div><div class='hunk'>@@ -501,50 +520,23 @@ static DIR *</div><div class='ctx'> opendir_without_gvl(const char *path)</div><div class='ctx'> {</div><div class='ctx'>     if (vm_initialized) {</div><div class='del'>-	union { const void *in; void *out; } u;</div><div class='add'>+        union { const void *in; void *out; } u;</div><div class='ctx'> </div><div class='del'>-	u.in = path;</div><div class='add'>+        u.in = path;</div><div class='ctx'> </div><div class='del'>-	return rb_thread_call_without_gvl(nogvl_opendir, u.out, RUBY_UBF_IO, 0);</div><div class='add'>+        return rb_thread_call_without_gvl(nogvl_opendir, u.out, RUBY_UBF_IO, 0);</div><div class='ctx'>     }</div><div class='ctx'>     else</div><div class='del'>-	return opendir(path);</div><div class='add'>+        return opendir(path);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     Dir.new( string ) -&gt; aDir</div><div class='del'>- *     Dir.new( string, encoding: enc ) -&gt; aDir</div><div class='del'>- *</div><div class='del'>- *  Returns a new directory object for the named directory.</div><div class='del'>- *</div><div class='del'>- *  The optional &lt;i&gt;encoding&lt;/i&gt; keyword argument specifies the encoding of the directory.</div><div class='del'>- *  If not specified, the filesystem encoding is used.</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_initialize(int argc, VALUE *argv, VALUE dir)</div><div class='add'>+dir_initialize(rb_execution_context_t *ec, VALUE dir, VALUE dirname, VALUE enc)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dp;</div><div class='del'>-    rb_encoding  *fsenc;</div><div class='del'>-    VALUE dirname, opt, orig;</div><div class='del'>-    static ID keyword_ids[1];</div><div class='add'>+    VALUE orig;</div><div class='ctx'>     const char *path;</div><div class='del'>-</div><div class='del'>-    if (!keyword_ids[0]) {</div><div class='del'>-	keyword_ids[0] = rb_id_encoding();</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    fsenc = rb_filesystem_encoding();</div><div class='del'>-</div><div class='del'>-    rb_scan_args(argc, argv, "1:", &amp;dirname, &amp;opt);</div><div class='del'>-</div><div class='del'>-    if (!NIL_P(opt)) {</div><div class='del'>-	VALUE enc;</div><div class='del'>-	rb_get_kwargs(opt, keyword_ids, 0, 1, &amp;enc);</div><div class='del'>-	if (enc != Qundef &amp;&amp; !NIL_P(enc)) {</div><div class='del'>-	    fsenc = rb_to_encoding(enc);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='add'>+    rb_encoding *fsenc = NIL_P(enc) ? rb_filesystem_encoding() : rb_to_encoding(enc);</div><div class='ctx'> </div><div class='ctx'>     FilePathValue(dirname);</div><div class='ctx'>     orig = rb_str_dup_frozen(dirname);</div><div class='hunk'>@@ -559,59 +551,46 @@ dir_initialize(int argc, VALUE *argv, VALUE dir)</div><div class='ctx'>     path = RSTRING_PTR(dirname);</div><div class='ctx'>     dp-&gt;dir = opendir_without_gvl(path);</div><div class='ctx'>     if (dp-&gt;dir == NULL) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	if (rb_gc_for_fd(e)) {</div><div class='del'>-	    dp-&gt;dir = opendir_without_gvl(path);</div><div class='del'>-	}</div><div class='add'>+        int e = errno;</div><div class='add'>+        if (rb_gc_for_fd(e)) {</div><div class='add'>+            dp-&gt;dir = opendir_without_gvl(path);</div><div class='add'>+        }</div><div class='ctx'> #ifdef HAVE_GETATTRLIST</div><div class='del'>-	else if (e == EIO) {</div><div class='del'>-	    u_int32_t attrbuf[1];</div><div class='del'>-	    struct attrlist al = {ATTR_BIT_MAP_COUNT, 0};</div><div class='del'>-	    if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW) == 0) {</div><div class='del'>-		dp-&gt;dir = opendir_without_gvl(path);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-	if (dp-&gt;dir == NULL) {</div><div class='del'>-	    RB_GC_GUARD(dirname);</div><div class='del'>-	    rb_syserr_fail_path(e, orig);</div><div class='del'>-	}</div><div class='add'>+        else if (e == EIO) {</div><div class='add'>+            u_int32_t attrbuf[1];</div><div class='add'>+            struct attrlist al = {ATTR_BIT_MAP_COUNT, 0};</div><div class='add'>+            if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW) == 0) {</div><div class='add'>+                dp-&gt;dir = opendir_without_gvl(path);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        if (dp-&gt;dir == NULL) {</div><div class='add'>+            RB_GC_GUARD(dirname);</div><div class='add'>+            rb_syserr_fail_path(e, orig);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     RB_OBJ_WRITE(dir, &amp;dp-&gt;path, orig);</div><div class='ctx'> </div><div class='ctx'>     return dir;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     Dir.open( string ) -&gt; aDir</div><div class='del'>- *     Dir.open( string, encoding: enc ) -&gt; aDir</div><div class='del'>- *     Dir.open( string ) {| aDir | block } -&gt; anObject</div><div class='del'>- *     Dir.open( string, encoding: enc ) {| aDir | block } -&gt; anObject</div><div class='del'>- *</div><div class='del'>- *  The optional &lt;i&gt;encoding&lt;/i&gt; keyword argument specifies the encoding of the directory.</div><div class='del'>- *  If not specified, the filesystem encoding is used.</div><div class='del'>- *</div><div class='del'>- *  With no block, &lt;code&gt;open&lt;/code&gt; is a synonym for</div><div class='del'>- *  &lt;code&gt;Dir::new&lt;/code&gt;. If a block is present, it is passed</div><div class='del'>- *  &lt;i&gt;aDir&lt;/i&gt; as a parameter. The directory is closed at the end of</div><div class='del'>- *  the block, and &lt;code&gt;Dir::open&lt;/code&gt; returns the value of the</div><div class='del'>- *  block.</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+dir_s_open(rb_execution_context_t *ec, VALUE klass, VALUE dirname, VALUE enc)</div><div class='ctx'> {</div><div class='ctx'>     struct dir_data *dp;</div><div class='ctx'>     VALUE dir = TypedData_Make_Struct(klass, struct dir_data, &amp;dir_data_type, dp);</div><div class='ctx'> </div><div class='del'>-    dir_initialize(argc, argv, dir);</div><div class='del'>-    if (rb_block_given_p()) {</div><div class='del'>-	return rb_ensure(rb_yield, dir, dir_close, dir);</div><div class='del'>-    }</div><div class='add'>+    dir_initialize(ec, dir, dirname, enc);</div><div class='ctx'> </div><div class='ctx'>     return dir;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+dir_s_close(rb_execution_context_t *ec, VALUE klass, VALUE dir)</div><div class='add'>+{</div><div class='add'>+    return dir_close(dir);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> NORETURN(static void dir_closed(void));</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -651,12 +630,12 @@ dir_inspect(VALUE dir)</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(dir, struct dir_data, &amp;dir_data_type, dirp);</div><div class='ctx'>     if (!NIL_P(dirp-&gt;path)) {</div><div class='del'>-	VALUE str = rb_str_new_cstr("#&lt;");</div><div class='del'>-	rb_str_append(str, rb_class_name(CLASS_OF(dir)));</div><div class='del'>-	rb_str_cat2(str, ":");</div><div class='del'>-	rb_str_append(str, dirp-&gt;path);</div><div class='del'>-	rb_str_cat2(str, "&gt;");</div><div class='del'>-	return str;</div><div class='add'>+        VALUE str = rb_str_new_cstr("#&lt;");</div><div class='add'>+        rb_str_append(str, rb_class_name(CLASS_OF(dir)));</div><div class='add'>+        rb_str_cat2(str, ":");</div><div class='add'>+        rb_str_append(str, dirp-&gt;path);</div><div class='add'>+        rb_str_cat2(str, "&gt;");</div><div class='add'>+        return str;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_funcallv(dir, idTo_s, 0, 0);</div><div class='ctx'> }</div><div class='hunk'>@@ -698,7 +677,7 @@ dir_fileno(VALUE dir)</div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='ctx'>     fd = dirfd(dirp-&gt;dir);</div><div class='ctx'>     if (fd == -1)</div><div class='del'>-	rb_sys_fail("dirfd");</div><div class='add'>+        rb_sys_fail("dirfd");</div><div class='ctx'>     return INT2NUM(fd);</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='hunk'>@@ -730,12 +709,12 @@ static int</div><div class='ctx'> fundamental_encoding_p(rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     switch (rb_enc_to_index(enc)) {</div><div class='del'>-      case ENCINDEX_ASCII:</div><div class='add'>+      case ENCINDEX_ASCII_8BIT:</div><div class='ctx'>       case ENCINDEX_US_ASCII:</div><div class='ctx'>       case ENCINDEX_UTF_8:</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>       default:</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> # define READDIR(dir, enc) rb_w32_readdir((dir), (enc))</div><div class='hunk'>@@ -752,11 +731,11 @@ to_be_skipped(const struct dirent *dp)</div><div class='ctx'> #ifdef HAVE_DIRENT_NAMLEN</div><div class='ctx'>     switch (NAMLEN(dp)) {</div><div class='ctx'>       case 2:</div><div class='del'>-	if (name[1] != '.') return FALSE;</div><div class='add'>+        if (name[1] != '.') return FALSE;</div><div class='ctx'>       case 1:</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>       default:</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> #else</div><div class='ctx'>     if (!name[1]) return TRUE;</div><div class='hunk'>@@ -787,12 +766,12 @@ dir_read(VALUE dir)</div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='ctx'>     errno = 0;</div><div class='ctx'>     if ((dp = READDIR(dirp-&gt;dir, dirp-&gt;enc)) != NULL) {</div><div class='del'>-	return rb_external_str_new_with_enc(dp-&gt;d_name, NAMLEN(dp), dirp-&gt;enc);</div><div class='add'>+        return rb_external_str_new_with_enc(dp-&gt;d_name, NAMLEN(dp), dirp-&gt;enc);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	int e = errno;</div><div class='del'>-	if (e != 0) rb_syserr_fail(e, 0);</div><div class='del'>-	return Qnil;		/* end of stream */</div><div class='add'>+        int e = errno;</div><div class='add'>+        if (e != 0) rb_syserr_fail(e, 0);</div><div class='add'>+        return Qnil;		/* end of stream */</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -842,24 +821,23 @@ dir_each_entry(VALUE dir, VALUE (*each)(VALUE, VALUE), VALUE arg, int children_o</div><div class='ctx'>     rewinddir(dirp-&gt;dir);</div><div class='ctx'>     IF_NORMALIZE_UTF8PATH(norm_p = need_normalization(dirp-&gt;dir, RSTRING_PTR(dirp-&gt;path)));</div><div class='ctx'>     while ((dp = READDIR(dirp-&gt;dir, dirp-&gt;enc)) != NULL) {</div><div class='del'>-	const char *name = dp-&gt;d_name;</div><div class='del'>-	size_t namlen = NAMLEN(dp);</div><div class='del'>-	VALUE path;</div><div class='del'>-</div><div class='del'>-	if (children_only &amp;&amp; name[0] == '.') {</div><div class='del'>-	    if (namlen == 1) continue; /* current directory */</div><div class='del'>-	    if (namlen == 2 &amp;&amp; name[1] == '.') continue; /* parent directory */</div><div class='del'>-	}</div><div class='add'>+        const char *name = dp-&gt;d_name;</div><div class='add'>+        size_t namlen = NAMLEN(dp);</div><div class='add'>+        VALUE path;</div><div class='add'>+</div><div class='add'>+        if (children_only &amp;&amp; name[0] == '.') {</div><div class='add'>+            if (namlen == 1) continue; /* current directory */</div><div class='add'>+            if (namlen == 2 &amp;&amp; name[1] == '.') continue; /* parent directory */</div><div class='add'>+        }</div><div class='ctx'> #if NORMALIZE_UTF8PATH</div><div class='del'>-	if (norm_p &amp;&amp; has_nonascii(name, namlen) &amp;&amp;</div><div class='del'>-	    !NIL_P(path = rb_str_normalize_ospath(name, namlen))) {</div><div class='del'>-	    path = rb_external_str_with_enc(path, dirp-&gt;enc);</div><div class='del'>-	}</div><div class='del'>-	else</div><div class='add'>+        if (norm_p &amp;&amp; has_nonascii(name, namlen) &amp;&amp;</div><div class='add'>+            !NIL_P(path = rb_str_normalize_ospath(name, namlen))) {</div><div class='add'>+            path = rb_external_str_with_enc(path, dirp-&gt;enc);</div><div class='add'>+        }</div><div class='add'>+        else</div><div class='ctx'> #endif</div><div class='del'>-	path = rb_external_str_new_with_enc(name, namlen, dirp-&gt;enc);</div><div class='del'>-	(*each)(arg, path);</div><div class='del'>-	if (dirp-&gt;dir == NULL) dir_closed();</div><div class='add'>+        path = rb_external_str_new_with_enc(name, namlen, dirp-&gt;enc);</div><div class='add'>+        (*each)(arg, path);</div><div class='ctx'>     }</div><div class='ctx'>     return dir;</div><div class='ctx'> }</div><div class='hunk'>@@ -870,8 +848,7 @@ dir_each_entry(VALUE dir, VALUE (*each)(VALUE, VALUE), VALUE arg, int children_o</div><div class='ctx'>  *     dir.pos -&gt; integer</div><div class='ctx'>  *     dir.tell -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  Returns the current position in &lt;em&gt;dir&lt;/em&gt;. See also</div><div class='del'>- *  &lt;code&gt;Dir#seek&lt;/code&gt;.</div><div class='add'>+ *  Returns the current position in &lt;em&gt;dir&lt;/em&gt;. See also Dir#seek.</div><div class='ctx'>  *</div><div class='ctx'>  *     d = Dir.new("testdir")</div><div class='ctx'>  *     d.tell   #=&gt; 0</div><div class='hunk'>@@ -898,7 +875,7 @@ dir_tell(VALUE dir)</div><div class='ctx'>  *     dir.seek( integer ) -&gt; dir</div><div class='ctx'>  *</div><div class='ctx'>  *  Seeks to a particular location in &lt;em&gt;dir&lt;/em&gt;. &lt;i&gt;integer&lt;/i&gt;</div><div class='del'>- *  must be a value returned by &lt;code&gt;Dir#tell&lt;/code&gt;.</div><div class='add'>+ *  must be a value returned by Dir#tell.</div><div class='ctx'>  *</div><div class='ctx'>  *     d = Dir.new("testdir")   #=&gt; #&lt;Dir:0x401b3c40&gt;</div><div class='ctx'>  *     d.read                   #=&gt; "."</div><div class='hunk'>@@ -926,8 +903,7 @@ dir_seek(VALUE dir, VALUE pos)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     dir.pos = integer  -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  Synonym for &lt;code&gt;Dir#seek&lt;/code&gt;, but returns the position</div><div class='del'>- *  parameter.</div><div class='add'>+ *  Synonym for Dir#seek, but returns the position parameter.</div><div class='ctx'>  *</div><div class='ctx'>  *     d = Dir.new("testdir")   #=&gt; #&lt;Dir:0x401b3c40&gt;</div><div class='ctx'>  *     d.read                   #=&gt; "."</div><div class='hunk'>@@ -1002,7 +978,7 @@ static void</div><div class='ctx'> dir_chdir(VALUE path)</div><div class='ctx'> {</div><div class='ctx'>     if (chdir(RSTRING_PTR(path)) &lt; 0)</div><div class='del'>-	rb_sys_fail_path(path);</div><div class='add'>+        rb_sys_fail_path(path);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int chdir_blocking = 0;</div><div class='hunk'>@@ -1014,24 +990,26 @@ struct chdir_data {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-chdir_yield(struct chdir_data *args)</div><div class='add'>+chdir_yield(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct chdir_data *args = (void *)v;</div><div class='ctx'>     dir_chdir(args-&gt;new_path);</div><div class='ctx'>     args-&gt;done = TRUE;</div><div class='ctx'>     chdir_blocking++;</div><div class='del'>-    if (chdir_thread == Qnil)</div><div class='del'>-	chdir_thread = rb_thread_current();</div><div class='add'>+    if (NIL_P(chdir_thread))</div><div class='add'>+        chdir_thread = rb_thread_current();</div><div class='ctx'>     return rb_yield(args-&gt;new_path);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-chdir_restore(struct chdir_data *args)</div><div class='add'>+chdir_restore(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct chdir_data *args = (void *)v;</div><div class='ctx'>     if (args-&gt;done) {</div><div class='del'>-	chdir_blocking--;</div><div class='del'>-	if (chdir_blocking == 0)</div><div class='del'>-	    chdir_thread = Qnil;</div><div class='del'>-	dir_chdir(args-&gt;old_path);</div><div class='add'>+        chdir_blocking--;</div><div class='add'>+        if (chdir_blocking == 0)</div><div class='add'>+            chdir_thread = Qnil;</div><div class='add'>+        dir_chdir(args-&gt;old_path);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -1044,8 +1022,8 @@ chdir_restore(struct chdir_data *args)</div><div class='ctx'>  *  Changes the current working directory of the process to the given</div><div class='ctx'>  *  string. When called without an argument, changes the directory to</div><div class='ctx'>  *  the value of the environment variable &lt;code&gt;HOME&lt;/code&gt;, or</div><div class='del'>- *  &lt;code&gt;LOGDIR&lt;/code&gt;. &lt;code&gt;SystemCallError&lt;/code&gt; (probably</div><div class='del'>- *  &lt;code&gt;Errno::ENOENT&lt;/code&gt;) if the target directory does not exist.</div><div class='add'>+ *  &lt;code&gt;LOGDIR&lt;/code&gt;. SystemCallError (probably Errno::ENOENT) if</div><div class='add'>+ *  the target directory does not exist.</div><div class='ctx'>  *</div><div class='ctx'>  *  If a block is given, it is passed the name of the new current</div><div class='ctx'>  *  directory, and the block is executed with that as the current</div><div class='hunk'>@@ -1054,7 +1032,8 @@ chdir_restore(struct chdir_data *args)</div><div class='ctx'>  *  block. &lt;code&gt;chdir&lt;/code&gt; blocks can be nested, but in a</div><div class='ctx'>  *  multi-threaded program an error will be raised if a thread attempts</div><div class='ctx'>  *  to open a &lt;code&gt;chdir&lt;/code&gt; block while another thread has one</div><div class='del'>- *  open.</div><div class='add'>+ *  open or a call to &lt;code&gt;chdir&lt;/code&gt; without a block occurs inside</div><div class='add'>+ *  a block passed to &lt;code&gt;chdir&lt;/code&gt; (even in the same thread).</div><div class='ctx'>  *</div><div class='ctx'>  *     Dir.chdir("/var/spool/mail")</div><div class='ctx'>  *     puts Dir.pwd</div><div class='hunk'>@@ -1084,33 +1063,35 @@ dir_s_chdir(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>         path = rb_str_encode_ospath(rb_get_path(argv[0]));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	const char *dist = getenv("HOME");</div><div class='del'>-	if (!dist) {</div><div class='del'>-	    dist = getenv("LOGDIR");</div><div class='del'>-	    if (!dist) rb_raise(rb_eArgError, "HOME/LOGDIR not set");</div><div class='del'>-	}</div><div class='del'>-	path = rb_str_new2(dist);</div><div class='add'>+        const char *dist = getenv("HOME");</div><div class='add'>+        if (!dist) {</div><div class='add'>+            dist = getenv("LOGDIR");</div><div class='add'>+            if (!dist) rb_raise(rb_eArgError, "HOME/LOGDIR not set");</div><div class='add'>+        }</div><div class='add'>+        path = rb_str_new2(dist);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (chdir_blocking &gt; 0) {</div><div class='del'>-	if (!rb_block_given_p() || rb_thread_current() != chdir_thread)</div><div class='del'>-	    rb_warn("conflicting chdir during another chdir block");</div><div class='add'>+        if (rb_thread_current() != chdir_thread)</div><div class='add'>+            rb_raise(rb_eRuntimeError, "conflicting chdir during another chdir block");</div><div class='add'>+        if (!rb_block_given_p())</div><div class='add'>+            rb_warn("conflicting chdir during another chdir block");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	struct chdir_data args;</div><div class='add'>+        struct chdir_data args;</div><div class='ctx'> </div><div class='del'>-	args.old_path = rb_str_encode_ospath(rb_dir_getwd());</div><div class='del'>-	args.new_path = path;</div><div class='del'>-	args.done = FALSE;</div><div class='del'>-	return rb_ensure(chdir_yield, (VALUE)&amp;args, chdir_restore, (VALUE)&amp;args);</div><div class='add'>+        args.old_path = rb_str_encode_ospath(rb_dir_getwd());</div><div class='add'>+        args.new_path = path;</div><div class='add'>+        args.done = FALSE;</div><div class='add'>+        return rb_ensure(chdir_yield, (VALUE)&amp;args, chdir_restore, (VALUE)&amp;args);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	char *p = RSTRING_PTR(path);</div><div class='del'>-	int r = (int)(VALUE)rb_thread_call_without_gvl(nogvl_chdir, p,</div><div class='del'>-							RUBY_UBF_IO, 0);</div><div class='del'>-	if (r &lt; 0)</div><div class='del'>-	    rb_sys_fail_path(path);</div><div class='add'>+        char *p = RSTRING_PTR(path);</div><div class='add'>+        int r = (int)(VALUE)rb_thread_call_without_gvl(nogvl_chdir, p,</div><div class='add'>+                                                        RUBY_UBF_IO, 0);</div><div class='add'>+        if (r &lt; 0)</div><div class='add'>+            rb_sys_fail_path(path);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='hunk'>@@ -1131,9 +1112,8 @@ rb_dir_getwd_ospath(void)</div><div class='ctx'>     DATA_PTR(path_guard) = path;</div><div class='ctx'> #ifdef __APPLE__</div><div class='ctx'>     cwd = rb_str_normalize_ospath(path, strlen(path));</div><div class='del'>-    OBJ_TAINT(cwd);</div><div class='ctx'> #else</div><div class='del'>-    cwd = rb_tainted_str_new2(path);</div><div class='add'>+    cwd = rb_str_new2(path);</div><div class='ctx'> #endif</div><div class='ctx'>     DATA_PTR(path_guard) = 0;</div><div class='ctx'> </div><div class='hunk'>@@ -1151,12 +1131,12 @@ rb_dir_getwd(void)</div><div class='ctx'> </div><div class='ctx'>     switch (fsenc) {</div><div class='ctx'>       case ENCINDEX_US_ASCII:</div><div class='del'>-	fsenc = ENCINDEX_ASCII;</div><div class='del'>-      case ENCINDEX_ASCII:</div><div class='del'>-	break;</div><div class='add'>+        fsenc = ENCINDEX_ASCII_8BIT;</div><div class='add'>+      case ENCINDEX_ASCII_8BIT:</div><div class='add'>+        break;</div><div class='ctx'> #if defined _WIN32 || defined __APPLE__</div><div class='ctx'>       default:</div><div class='del'>-	return rb_str_conv_enc(cwd, NULL, fs);</div><div class='add'>+        return rb_str_conv_enc(cwd, NULL, fs);</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     return rb_enc_associate_index(cwd, fsenc);</div><div class='hunk'>@@ -1194,8 +1174,8 @@ check_dirname(VALUE dir)</div><div class='ctx'>     pend = path + len;</div><div class='ctx'>     pend = rb_enc_path_end(rb_enc_path_skip_prefix(path, pend, enc), pend, enc);</div><div class='ctx'>     if (pend - path &lt; len) {</div><div class='del'>-	d = rb_str_subseq(d, 0, pend - path);</div><div class='del'>-	StringValueCStr(d);</div><div class='add'>+        d = rb_str_subseq(d, 0, pend - path);</div><div class='add'>+        StringValueCStr(d);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_str_encode_ospath(d);</div><div class='ctx'> }</div><div class='hunk'>@@ -1215,7 +1195,7 @@ dir_s_chroot(VALUE dir, VALUE path)</div><div class='ctx'> {</div><div class='ctx'>     path = check_dirname(path);</div><div class='ctx'>     if (chroot(RSTRING_PTR(path)) == -1)</div><div class='del'>-	rb_sys_fail_path(path);</div><div class='add'>+        rb_sys_fail_path(path);</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='hunk'>@@ -1242,11 +1222,10 @@ nogvl_mkdir(void *ptr)</div><div class='ctx'>  *</div><div class='ctx'>  *  Makes a new directory named by &lt;i&gt;string&lt;/i&gt;, with permissions</div><div class='ctx'>  *  specified by the optional parameter &lt;i&gt;anInteger&lt;/i&gt;. The</div><div class='del'>- *  permissions may be modified by the value of</div><div class='del'>- *  &lt;code&gt;File::umask&lt;/code&gt;, and are ignored on NT. Raises a</div><div class='del'>- *  &lt;code&gt;SystemCallError&lt;/code&gt; if the directory cannot be created. See</div><div class='del'>- *  also the discussion of permissions in the class documentation for</div><div class='del'>- *  &lt;code&gt;File&lt;/code&gt;.</div><div class='add'>+ *  permissions may be modified by the value of File::umask, and are</div><div class='add'>+ *  ignored on NT. Raises a SystemCallError if the directory cannot be</div><div class='add'>+ *  created. See also the discussion of permissions in the class</div><div class='add'>+ *  documentation for File.</div><div class='ctx'>  *</div><div class='ctx'>  *    Dir.mkdir(File.join(Dir.home, ".foo"), 0700) #=&gt; 0</div><div class='ctx'>  *</div><div class='hunk'>@@ -1259,17 +1238,17 @@ dir_s_mkdir(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     int r;</div><div class='ctx'> </div><div class='ctx'>     if (rb_scan_args(argc, argv, "11", &amp;path, &amp;vmode) == 2) {</div><div class='del'>-	m.mode = NUM2MODET(vmode);</div><div class='add'>+        m.mode = NUM2MODET(vmode);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	m.mode = 0777;</div><div class='add'>+        m.mode = 0777;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     path = check_dirname(path);</div><div class='ctx'>     m.path = RSTRING_PTR(path);</div><div class='ctx'>     r = (int)(VALUE)rb_thread_call_without_gvl(nogvl_mkdir, &amp;m, RUBY_UBF_IO, 0);</div><div class='ctx'>     if (r &lt; 0)</div><div class='del'>-	rb_sys_fail_path(path);</div><div class='add'>+        rb_sys_fail_path(path);</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='hunk'>@@ -1288,8 +1267,8 @@ nogvl_rmdir(void *ptr)</div><div class='ctx'>  *     Dir.rmdir( string ) -&gt; 0</div><div class='ctx'>  *     Dir.unlink( string ) -&gt; 0</div><div class='ctx'>  *</div><div class='del'>- *  Deletes the named directory. Raises a subclass of</div><div class='del'>- *  &lt;code&gt;SystemCallError&lt;/code&gt; if the directory isn't empty.</div><div class='add'>+ *  Deletes the named directory. Raises a subclass of SystemCallError</div><div class='add'>+ *  if the directory isn't empty.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> dir_s_rmdir(VALUE obj, VALUE dir)</div><div class='hunk'>@@ -1301,7 +1280,7 @@ dir_s_rmdir(VALUE obj, VALUE dir)</div><div class='ctx'>     p = RSTRING_PTR(dir);</div><div class='ctx'>     r = (int)(VALUE)rb_thread_call_without_gvl(nogvl_rmdir, (void *)p, RUBY_UBF_IO, 0);</div><div class='ctx'>     if (r &lt; 0)</div><div class='del'>-	rb_sys_fail_path(dir);</div><div class='add'>+        rb_sys_fail_path(dir);</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='hunk'>@@ -1346,9 +1325,34 @@ sys_enc_warning_in(const char *func, const char *mesg, rb_encoding *enc)</div><div class='ctx'> #define sys_warning(val, enc) \</div><div class='ctx'>     ((flags &amp; GLOB_VERBOSE) ? sys_enc_warning_in(RUBY_FUNCTION_NAME_STRING, (val), (enc)) :(void)0)</div><div class='ctx'> </div><div class='add'>+static inline size_t</div><div class='add'>+glob_alloc_size(size_t x, size_t y)</div><div class='add'>+{</div><div class='add'>+    size_t z;</div><div class='add'>+    if (rb_mul_size_overflow(x, y, SSIZE_MAX, &amp;z)) {</div><div class='add'>+        rb_memerror();          /* or...? */</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return z;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+glob_alloc_n(size_t x, size_t y)</div><div class='add'>+{</div><div class='add'>+    return malloc(glob_alloc_size(x, y));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+glob_realloc_n(void *p, size_t x, size_t y)</div><div class='add'>+{</div><div class='add'>+    return realloc(p, glob_alloc_size(x, y));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #define GLOB_ALLOC(type) ((type *)malloc(sizeof(type)))</div><div class='del'>-#define GLOB_ALLOC_N(type, n) ((type *)malloc(sizeof(type) * (n)))</div><div class='add'>+#define GLOB_ALLOC_N(type, n) ((type *)glob_alloc_n(sizeof(type), n))</div><div class='ctx'> #define GLOB_REALLOC(ptr, size) realloc((ptr), (size))</div><div class='add'>+#define GLOB_REALLOC_N(ptr, n) glob_realloc_n(ptr, sizeof(*(ptr)), n)</div><div class='ctx'> #define GLOB_FREE(ptr) free(ptr)</div><div class='ctx'> #define GLOB_JUMP_TAG(status) (((status) == -1) ? rb_memerror() : rb_jump_tag(status))</div><div class='ctx'> </div><div class='hunk'>@@ -1382,8 +1386,8 @@ at_subpath(int fd, size_t baselen, const char *path)</div><div class='ctx'> {</div><div class='ctx'> #if USE_OPENDIR_AT</div><div class='ctx'>     if (fd != (int)AT_FDCWD &amp;&amp; baselen &gt; 0) {</div><div class='del'>-	path += baselen;</div><div class='del'>-	if (*path == '/') ++path;</div><div class='add'>+        path += baselen;</div><div class='add'>+        if (*path == '/') ++path;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return *path ? path : ".";</div><div class='hunk'>@@ -1399,7 +1403,7 @@ do_stat(int fd, size_t baselen, const char *path, struct stat *pst, int flags, r</div><div class='ctx'>     int ret = STAT(path, pst);</div><div class='ctx'> #endif</div><div class='ctx'>     if (ret &lt; 0 &amp;&amp; !to_be_ignored(errno))</div><div class='del'>-	sys_warning(path, enc);</div><div class='add'>+        sys_warning(path, enc);</div><div class='ctx'> </div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='hunk'>@@ -1414,7 +1418,7 @@ do_lstat(int fd, size_t baselen, const char *path, struct stat *pst, int flags,</div><div class='ctx'>     int ret = lstat(path, pst);</div><div class='ctx'> #endif</div><div class='ctx'>     if (ret &lt; 0 &amp;&amp; !to_be_ignored(errno))</div><div class='del'>-	sys_warning(path, enc);</div><div class='add'>+        sys_warning(path, enc);</div><div class='ctx'> </div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='hunk'>@@ -1432,16 +1436,16 @@ with_gvl_gc_for_fd(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     int *e = ptr;</div><div class='ctx'> </div><div class='del'>-    return (void *)(rb_gc_for_fd(*e) ? Qtrue : Qfalse);</div><div class='add'>+    return (void *)RBOOL(rb_gc_for_fd(*e));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> gc_for_fd_with_gvl(int e)</div><div class='ctx'> {</div><div class='ctx'>     if (vm_initialized)</div><div class='del'>-	return (int)(VALUE)rb_thread_call_with_gvl(with_gvl_gc_for_fd, &amp;e);</div><div class='add'>+        return (int)(VALUE)rb_thread_call_with_gvl(with_gvl_gc_for_fd, &amp;e);</div><div class='ctx'>     else</div><div class='del'>-	return rb_gc_for_fd(e) ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(rb_gc_for_fd(e));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void *</div><div class='hunk'>@@ -1453,32 +1457,32 @@ nogvl_opendir_at(void *ptr)</div><div class='ctx'> #if USE_OPENDIR_AT</div><div class='ctx'>     const int opendir_flags = (O_RDONLY|O_CLOEXEC|</div><div class='ctx'> #  ifdef O_DIRECTORY</div><div class='del'>-			       O_DIRECTORY|</div><div class='add'>+                               O_DIRECTORY|</div><div class='ctx'> #  endif /* O_DIRECTORY */</div><div class='del'>-			       0);</div><div class='add'>+                               0);</div><div class='ctx'>     int fd = openat(oaa-&gt;basefd, oaa-&gt;path, opendir_flags);</div><div class='ctx'> </div><div class='ctx'>     dirp = fd &gt;= 0 ? fdopendir(fd) : 0;</div><div class='ctx'>     if (!dirp) {</div><div class='del'>-	int e = errno;</div><div class='del'>-</div><div class='del'>-	switch (gc_for_fd_with_gvl(e)) {</div><div class='del'>-	  default:</div><div class='del'>-	    if (fd &lt; 0) fd = openat(oaa-&gt;basefd, oaa-&gt;path, opendir_flags);</div><div class='del'>-	    if (fd &gt;= 0) dirp = fdopendir(fd);</div><div class='del'>-	    if (dirp) return dirp;</div><div class='del'>-</div><div class='del'>-	    e = errno;</div><div class='del'>-	    /* fallthrough*/</div><div class='del'>-	  case 0:</div><div class='del'>-	    if (fd &gt;= 0) close(fd);</div><div class='del'>-	    errno = e;</div><div class='del'>-	}</div><div class='add'>+        int e = errno;</div><div class='add'>+</div><div class='add'>+        switch (gc_for_fd_with_gvl(e)) {</div><div class='add'>+          default:</div><div class='add'>+            if (fd &lt; 0) fd = openat(oaa-&gt;basefd, oaa-&gt;path, opendir_flags);</div><div class='add'>+            if (fd &gt;= 0) dirp = fdopendir(fd);</div><div class='add'>+            if (dirp) return dirp;</div><div class='add'>+</div><div class='add'>+            e = errno;</div><div class='add'>+            /* fallthrough*/</div><div class='add'>+          case 0:</div><div class='add'>+            if (fd &gt;= 0) close(fd);</div><div class='add'>+            errno = e;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #else  /* !USE_OPENDIR_AT */</div><div class='ctx'>     dirp = opendir(oaa-&gt;path);</div><div class='ctx'>     if (!dirp &amp;&amp; gc_for_fd_with_gvl(errno))</div><div class='del'>-	dirp = opendir(oaa-&gt;path);</div><div class='add'>+        dirp = opendir(oaa-&gt;path);</div><div class='ctx'> #endif /* !USE_OPENDIR_AT */</div><div class='ctx'> </div><div class='ctx'>     return dirp;</div><div class='hunk'>@@ -1493,37 +1497,37 @@ opendir_at(int basefd, const char *path)</div><div class='ctx'>     oaa.path = path;</div><div class='ctx'> </div><div class='ctx'>     if (vm_initialized)</div><div class='del'>-	return rb_thread_call_without_gvl(nogvl_opendir_at, &amp;oaa, RUBY_UBF_IO, 0);</div><div class='add'>+        return rb_thread_call_without_gvl(nogvl_opendir_at, &amp;oaa, RUBY_UBF_IO, 0);</div><div class='ctx'>     else</div><div class='del'>-	return nogvl_opendir_at(&amp;oaa);</div><div class='add'>+        return nogvl_opendir_at(&amp;oaa);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static DIR *</div><div class='ctx'> do_opendir(const int basefd, size_t baselen, const char *path, int flags, rb_encoding *enc,</div><div class='del'>-	   ruby_glob_errfunc *errfunc, VALUE arg, int *status)</div><div class='add'>+           ruby_glob_errfunc *errfunc, VALUE arg, int *status)</div><div class='ctx'> {</div><div class='ctx'>     DIR *dirp;</div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'>     VALUE tmp = 0;</div><div class='ctx'>     if (!fundamental_encoding_p(enc)) {</div><div class='del'>-	tmp = rb_enc_str_new(path, strlen(path), enc);</div><div class='del'>-	tmp = rb_str_encode_ospath(tmp);</div><div class='del'>-	path = RSTRING_PTR(tmp);</div><div class='add'>+        tmp = rb_enc_str_new(path, strlen(path), enc);</div><div class='add'>+        tmp = rb_str_encode_ospath(tmp);</div><div class='add'>+        path = RSTRING_PTR(tmp);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     dirp = opendir_at(basefd, at_subpath(basefd, baselen, path));</div><div class='ctx'>     if (!dirp) {</div><div class='del'>-	int e = errno;</div><div class='del'>-</div><div class='del'>-	*status = 0;</div><div class='del'>-	if (!to_be_ignored(e)) {</div><div class='del'>-	    if (errfunc) {</div><div class='del'>-		*status = (*errfunc)(path, arg, enc, e);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		sys_warning(path, enc);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        int e = errno;</div><div class='add'>+</div><div class='add'>+        *status = 0;</div><div class='add'>+        if (!to_be_ignored(e)) {</div><div class='add'>+            if (errfunc) {</div><div class='add'>+                *status = (*errfunc)(path, arg, enc, e);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                sys_warning(path, enc);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'>     if (tmp) rb_str_resize(tmp, 0); /* GC guard */</div><div class='hunk'>@@ -1546,37 +1550,37 @@ has_magic(const char *p, const char *pend, int flags, rb_encoding *enc)</div><div class='ctx'>     register char c;</div><div class='ctx'> </div><div class='ctx'>     while (p &lt; pend &amp;&amp; (c = *p++) != 0) {</div><div class='del'>-	switch (c) {</div><div class='del'>-	  case '{':</div><div class='del'>-	    return BRACE;</div><div class='add'>+        switch (c) {</div><div class='add'>+          case '{':</div><div class='add'>+            return BRACE;</div><div class='ctx'> </div><div class='del'>-	  case '*':</div><div class='del'>-	  case '?':</div><div class='del'>-	  case '[':</div><div class='del'>-	    hasmagical = 1;</div><div class='del'>-	    break;</div><div class='add'>+          case '*':</div><div class='add'>+          case '?':</div><div class='add'>+          case '[':</div><div class='add'>+            hasmagical = 1;</div><div class='add'>+            break;</div><div class='ctx'> </div><div class='del'>-	  case '\\':</div><div class='del'>-	    if (escape &amp;&amp; p++ &gt;= pend)</div><div class='del'>-		continue;</div><div class='del'>-	    break;</div><div class='add'>+          case '\\':</div><div class='add'>+            if (escape &amp;&amp; p++ &gt;= pend)</div><div class='add'>+                continue;</div><div class='add'>+            break;</div><div class='ctx'> </div><div class='ctx'> #ifdef _WIN32</div><div class='del'>-	  case '.':</div><div class='del'>-	    break;</div><div class='add'>+          case '.':</div><div class='add'>+            break;</div><div class='ctx'> </div><div class='del'>-	  case '~':</div><div class='del'>-	    hasalpha = 1;</div><div class='del'>-	    break;</div><div class='add'>+          case '~':</div><div class='add'>+            hasalpha = 1;</div><div class='add'>+            break;</div><div class='ctx'> #endif</div><div class='del'>-	  default:</div><div class='del'>-	    if (IS_WIN32 || ISALPHA(c)) {</div><div class='del'>-		hasalpha = 1;</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+          default:</div><div class='add'>+            if (IS_WIN32 || ISALPHA(c)) {</div><div class='add'>+                hasalpha = 1;</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	p = Next(p-1, pend, enc);</div><div class='add'>+        p = Next(p-1, pend, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return hasmagical ? MAGICAL : hasalpha ? ALPHA : PLAIN;</div><div class='hunk'>@@ -1592,33 +1596,33 @@ find_dirsep(const char *p, const char *pend, int flags, rb_encoding *enc)</div><div class='ctx'>     int open = 0;</div><div class='ctx'> </div><div class='ctx'>     while ((c = *p++) != 0) {</div><div class='del'>-	switch (c) {</div><div class='del'>-	  case '[':</div><div class='del'>-	    open = 1;</div><div class='del'>-	    continue;</div><div class='del'>-	  case ']':</div><div class='del'>-	    open = 0;</div><div class='del'>-	    continue;</div><div class='del'>-</div><div class='del'>-	  case '{':</div><div class='del'>-	    open = 1;</div><div class='del'>-	    continue;</div><div class='del'>-	  case '}':</div><div class='del'>-	    open = 0;</div><div class='del'>-	    continue;</div><div class='del'>-</div><div class='del'>-	  case '/':</div><div class='del'>-	    if (!open)</div><div class='del'>-		return (char *)p-1;</div><div class='del'>-	    continue;</div><div class='del'>-</div><div class='del'>-	  case '\\':</div><div class='del'>-	    if (escape &amp;&amp; !(c = *p++))</div><div class='del'>-		return (char *)p-1;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	p = Next(p-1, pend, enc);</div><div class='add'>+        switch (c) {</div><div class='add'>+          case '[':</div><div class='add'>+            open = 1;</div><div class='add'>+            continue;</div><div class='add'>+          case ']':</div><div class='add'>+            open = 0;</div><div class='add'>+            continue;</div><div class='add'>+</div><div class='add'>+          case '{':</div><div class='add'>+            open = 1;</div><div class='add'>+            continue;</div><div class='add'>+          case '}':</div><div class='add'>+            open = 0;</div><div class='add'>+            continue;</div><div class='add'>+</div><div class='add'>+          case '/':</div><div class='add'>+            if (!open)</div><div class='add'>+                return (char *)p-1;</div><div class='add'>+            continue;</div><div class='add'>+</div><div class='add'>+          case '\\':</div><div class='add'>+            if (escape &amp;&amp; !(c = *p++))</div><div class='add'>+                return (char *)p-1;</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        p = Next(p-1, pend, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return (char *)p-1;</div><div class='hunk'>@@ -1632,20 +1636,20 @@ remove_backslashes(char *p, register const char *pend, rb_encoding *enc)</div><div class='ctx'>     char *s = p;</div><div class='ctx'> </div><div class='ctx'>     while (*p) {</div><div class='del'>-	if (*p == '\\') {</div><div class='del'>-	    if (t != s)</div><div class='del'>-		memmove(t, s, p - s);</div><div class='del'>-	    t += p - s;</div><div class='del'>-	    s = ++p;</div><div class='del'>-	    if (!*p) break;</div><div class='del'>-	}</div><div class='del'>-	Inc(p, pend, enc);</div><div class='add'>+        if (*p == '\\') {</div><div class='add'>+            if (t != s)</div><div class='add'>+                memmove(t, s, p - s);</div><div class='add'>+            t += p - s;</div><div class='add'>+            s = ++p;</div><div class='add'>+            if (!*p) break;</div><div class='add'>+        }</div><div class='add'>+        Inc(p, pend, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (*p++);</div><div class='ctx'> </div><div class='ctx'>     if (t != s)</div><div class='del'>-	memmove(t, s, p - s); /* move '\0' too */</div><div class='add'>+        memmove(t, s, p - s); /* move '\0' too */</div><div class='ctx'> </div><div class='ctx'>     return p;</div><div class='ctx'> }</div><div class='hunk'>@@ -1666,57 +1670,54 @@ glob_make_pattern(const char *p, const char *e, int flags, rb_encoding *enc)</div><div class='ctx'>     int recursive = 0;</div><div class='ctx'> </div><div class='ctx'>     while (p &lt; e &amp;&amp; *p) {</div><div class='del'>-	tmp = GLOB_ALLOC(struct glob_pattern);</div><div class='del'>-	if (!tmp) goto error;</div><div class='del'>-	if (p + 2 &lt; e &amp;&amp; p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/') {</div><div class='del'>-	    /* fold continuous RECURSIVEs (needed in glob_helper) */</div><div class='del'>-	    do { p += 3; while (*p == '/') p++; } while (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/');</div><div class='del'>-	    tmp-&gt;type = RECURSIVE;</div><div class='del'>-	    tmp-&gt;str = 0;</div><div class='del'>-	    dirsep = 1;</div><div class='del'>-	    recursive = 1;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    const char *m = find_dirsep(p, e, flags, enc);</div><div class='del'>-	    const enum glob_pattern_type magic = has_magic(p, m, flags, enc);</div><div class='del'>-	    const enum glob_pattern_type non_magic = (USE_NAME_ON_FS || FNM_SYSCASE) ? PLAIN : ALPHA;</div><div class='del'>-	    char *buf;</div><div class='del'>-</div><div class='del'>-	    if (!(FNM_SYSCASE || magic &gt; non_magic) &amp;&amp; !recursive &amp;&amp; *m) {</div><div class='del'>-		const char *m2;</div><div class='del'>-		while (has_magic(m+1, m2 = find_dirsep(m+1, e, flags, enc), flags, enc) &lt;= non_magic &amp;&amp;</div><div class='del'>-		       *m2) {</div><div class='del'>-		    m = m2;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    buf = GLOB_ALLOC_N(char, m-p+1);</div><div class='del'>-	    if (!buf) {</div><div class='del'>-		GLOB_FREE(tmp);</div><div class='del'>-		goto error;</div><div class='del'>-	    }</div><div class='del'>-	    memcpy(buf, p, m-p);</div><div class='del'>-	    buf[m-p] = '\0';</div><div class='del'>-	    tmp-&gt;type = magic &gt; MAGICAL ? MAGICAL : magic &gt; non_magic ? magic : PLAIN;</div><div class='del'>-	    tmp-&gt;str = buf;</div><div class='del'>-	    if (*m) {</div><div class='del'>-		dirsep = 1;</div><div class='del'>-		p = m + 1;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		dirsep = 0;</div><div class='del'>-		p = m;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	*tail = tmp;</div><div class='del'>-	tail = &amp;tmp-&gt;next;</div><div class='add'>+        tmp = GLOB_ALLOC(struct glob_pattern);</div><div class='add'>+        if (!tmp) goto error;</div><div class='add'>+        if (p + 2 &lt; e &amp;&amp; p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/') {</div><div class='add'>+            /* fold continuous RECURSIVEs (needed in glob_helper) */</div><div class='add'>+            do { p += 3; while (*p == '/') p++; } while (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/');</div><div class='add'>+            tmp-&gt;type = RECURSIVE;</div><div class='add'>+            tmp-&gt;str = 0;</div><div class='add'>+            dirsep = 1;</div><div class='add'>+            recursive = 1;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            const char *m = find_dirsep(p, e, flags, enc);</div><div class='add'>+            const enum glob_pattern_type magic = has_magic(p, m, flags, enc);</div><div class='add'>+            const enum glob_pattern_type non_magic = (USE_NAME_ON_FS || FNM_SYSCASE) ? PLAIN : ALPHA;</div><div class='add'>+            char *buf;</div><div class='add'>+</div><div class='add'>+            if (!(FNM_SYSCASE || magic &gt; non_magic) &amp;&amp; !recursive &amp;&amp; *m) {</div><div class='add'>+                const char *m2;</div><div class='add'>+                while (has_magic(m+1, m2 = find_dirsep(m+1, e, flags, enc), flags, enc) &lt;= non_magic &amp;&amp;</div><div class='add'>+                       *m2) {</div><div class='add'>+                    m = m2;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            buf = GLOB_ALLOC_N(char, m-p+1);</div><div class='add'>+            if (!buf) {</div><div class='add'>+                GLOB_FREE(tmp);</div><div class='add'>+                goto error;</div><div class='add'>+            }</div><div class='add'>+            memcpy(buf, p, m-p);</div><div class='add'>+            buf[m-p] = '\0';</div><div class='add'>+            tmp-&gt;type = magic &gt; MAGICAL ? MAGICAL : magic &gt; non_magic ? magic : PLAIN;</div><div class='add'>+            tmp-&gt;str = buf;</div><div class='add'>+            if (*m) {</div><div class='add'>+                dirsep = 1;</div><div class='add'>+                p = m + 1;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                dirsep = 0;</div><div class='add'>+                p = m;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        *tail = tmp;</div><div class='add'>+        tail = &amp;tmp-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     tmp = GLOB_ALLOC(struct glob_pattern);</div><div class='ctx'>     if (!tmp) {</div><div class='del'>-      error:</div><div class='del'>-	*tail = 0;</div><div class='del'>-	glob_free_pattern(list);</div><div class='del'>-	return 0;</div><div class='add'>+        goto error;</div><div class='ctx'>     }</div><div class='ctx'>     tmp-&gt;type = dirsep ? MATCH_DIR : MATCH_ALL;</div><div class='ctx'>     tmp-&gt;str = 0;</div><div class='hunk'>@@ -1724,17 +1725,22 @@ glob_make_pattern(const char *p, const char *e, int flags, rb_encoding *enc)</div><div class='ctx'>     tmp-&gt;next = 0;</div><div class='ctx'> </div><div class='ctx'>     return list;</div><div class='add'>+</div><div class='add'>+  error:</div><div class='add'>+    *tail = 0;</div><div class='add'>+    glob_free_pattern(list);</div><div class='add'>+    return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> glob_free_pattern(struct glob_pattern *list)</div><div class='ctx'> {</div><div class='ctx'>     while (list) {</div><div class='del'>-	struct glob_pattern *tmp = list;</div><div class='del'>-	list = list-&gt;next;</div><div class='del'>-	if (tmp-&gt;str)</div><div class='del'>-	    GLOB_FREE(tmp-&gt;str);</div><div class='del'>-	GLOB_FREE(tmp);</div><div class='add'>+        struct glob_pattern *tmp = list;</div><div class='add'>+        list = list-&gt;next;</div><div class='add'>+        if (tmp-&gt;str)</div><div class='add'>+            GLOB_FREE(tmp-&gt;str);</div><div class='add'>+        GLOB_FREE(tmp);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1746,7 +1752,7 @@ join_path(const char *path, size_t len, int dirsep, const char *name, size_t nam</div><div class='ctx'>     if (!buf) return 0;</div><div class='ctx'>     memcpy(buf, path, len);</div><div class='ctx'>     if (dirsep) {</div><div class='del'>-	buf[len++] = '/';</div><div class='add'>+        buf[len++] = '/';</div><div class='ctx'>     }</div><div class='ctx'>     memcpy(buf+len, name, namlen);</div><div class='ctx'>     buf[len+namlen] = '\0';</div><div class='hunk'>@@ -1763,8 +1769,8 @@ static int</div><div class='ctx'> is_case_sensitive(DIR *dirp, const char *path)</div><div class='ctx'> {</div><div class='ctx'>     struct {</div><div class='del'>-	u_int32_t length;</div><div class='del'>-	vol_capabilities_attr_t cap[1];</div><div class='add'>+        u_int32_t length;</div><div class='add'>+        vol_capabilities_attr_t cap[1];</div><div class='ctx'>     } __attribute__((aligned(4), packed)) attrbuf[1];</div><div class='ctx'>     struct attrlist al = {ATTR_BIT_MAP_COUNT, 0, 0, ATTR_VOL_INFO|ATTR_VOL_CAPABILITIES};</div><div class='ctx'>     const vol_capabilities_attr_t *const cap = attrbuf[0].cap;</div><div class='hunk'>@@ -1773,13 +1779,13 @@ is_case_sensitive(DIR *dirp, const char *path)</div><div class='ctx'> </div><div class='ctx'> #   if defined HAVE_FGETATTRLIST</div><div class='ctx'>     if (fgetattrlist(dirfd(dirp), &amp;al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW))</div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'> #   else</div><div class='ctx'>     if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW))</div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'> #   endif</div><div class='ctx'>     if (!(cap-&gt;valid[idx] &amp; mask))</div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'>     return (cap-&gt;capabilities[idx] &amp; mask) != 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1787,10 +1793,10 @@ static char *</div><div class='ctx'> replace_real_basename(char *path, long base, rb_encoding *enc, int norm_p, int flags, rb_pathtype_t *type)</div><div class='ctx'> {</div><div class='ctx'>     struct {</div><div class='del'>-	u_int32_t length;</div><div class='del'>-	attrreference_t ref[1];</div><div class='del'>-	fsobj_type_t objtype;</div><div class='del'>-	char path[MAXPATHLEN * 3];</div><div class='add'>+        u_int32_t length;</div><div class='add'>+        attrreference_t ref[1];</div><div class='add'>+        fsobj_type_t objtype;</div><div class='add'>+        char path[MAXPATHLEN * 3];</div><div class='ctx'>     } __attribute__((aligned(4), packed)) attrbuf[1];</div><div class='ctx'>     struct attrlist al = {ATTR_BIT_MAP_COUNT, 0, ATTR_CMN_NAME|ATTR_CMN_OBJTYPE};</div><div class='ctx'>     const attrreference_t *const ar = attrbuf[0].ref;</div><div class='hunk'>@@ -1801,9 +1807,9 @@ replace_real_basename(char *path, long base, rb_encoding *enc, int norm_p, int f</div><div class='ctx'> </div><div class='ctx'>     *type = path_noent;</div><div class='ctx'>     if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW)) {</div><div class='del'>-	if (!to_be_ignored(errno))</div><div class='del'>-	    sys_warning(path, enc);</div><div class='del'>-	return path;</div><div class='add'>+        if (!to_be_ignored(errno))</div><div class='add'>+            sys_warning(path, enc);</div><div class='add'>+        return path;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     switch (attrbuf[0].objtype) {</div><div class='hunk'>@@ -1815,21 +1821,21 @@ replace_real_basename(char *path, long base, rb_encoding *enc, int norm_p, int f</div><div class='ctx'>     name = (char *)ar + ar-&gt;attr_dataoffset;</div><div class='ctx'>     len = (long)ar-&gt;attr_length - 1;</div><div class='ctx'>     if (name + len &gt; (char *)attrbuf + sizeof(attrbuf))</div><div class='del'>-	return path;</div><div class='add'>+        return path;</div><div class='ctx'> </div><div class='ctx'> # if NORMALIZE_UTF8PATH</div><div class='ctx'>     if (norm_p &amp;&amp; has_nonascii(name, len)) {</div><div class='del'>-	if (!NIL_P(utf8str = rb_str_normalize_ospath(name, len))) {</div><div class='del'>-	    RSTRING_GETMEM(utf8str, name, len);</div><div class='del'>-	}</div><div class='add'>+        if (!NIL_P(utf8str = rb_str_normalize_ospath(name, len))) {</div><div class='add'>+            RSTRING_GETMEM(utf8str, name, len);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> # endif</div><div class='ctx'> </div><div class='ctx'>     tmp = GLOB_REALLOC(path, base + len + 1);</div><div class='ctx'>     if (tmp) {</div><div class='del'>-	path = tmp;</div><div class='del'>-	memcpy(path + base, name, len);</div><div class='del'>-	path[base + len] = '\0';</div><div class='add'>+        path = tmp;</div><div class='add'>+        memcpy(path + base, name, len);</div><div class='add'>+        path[base + len] = '\0';</div><div class='ctx'>     }</div><div class='ctx'>     IF_NORMALIZE_UTF8PATH(if (!NIL_P(utf8str)) rb_str_resize(utf8str, 0));</div><div class='ctx'>     return path;</div><div class='hunk'>@@ -1850,62 +1856,62 @@ replace_real_basename(char *path, long base, rb_encoding *enc, int norm_p, int f</div><div class='ctx'>     long wlen;</div><div class='ctx'>     int e = 0;</div><div class='ctx'>     if (!fundamental_encoding_p(enc)) {</div><div class='del'>-	tmp = rb_enc_str_new_cstr(plainname, enc);</div><div class='del'>-	tmp = rb_str_encode_ospath(tmp);</div><div class='del'>-	plainname = RSTRING_PTR(tmp);</div><div class='add'>+        tmp = rb_enc_str_new_cstr(plainname, enc);</div><div class='add'>+        tmp = rb_str_encode_ospath(tmp);</div><div class='add'>+        plainname = RSTRING_PTR(tmp);</div><div class='ctx'>     }</div><div class='ctx'>     wplain = rb_w32_mbstr_to_wstr(CP_UTF8, plainname, -1, &amp;wlen);</div><div class='ctx'>     if (tmp) rb_str_resize(tmp, 0);</div><div class='ctx'>     if (!wplain) return path;</div><div class='ctx'>     if (GetFileAttributesExW(wplain, GetFileExInfoStandard, &amp;fa)) {</div><div class='del'>-	h = FindFirstFileW(wplain, &amp;fd);</div><div class='del'>-	e = rb_w32_map_errno(GetLastError());</div><div class='add'>+        h = FindFirstFileW(wplain, &amp;fd);</div><div class='add'>+        e = rb_w32_map_errno(GetLastError());</div><div class='ctx'>     }</div><div class='ctx'>     if (fa.dwFileAttributes &amp; FILE_ATTRIBUTE_REPARSE_POINT) {</div><div class='del'>-	if (!rb_w32_reparse_symlink_p(wplain))</div><div class='del'>-	    fa.dwFileAttributes &amp;= ~FILE_ATTRIBUTE_REPARSE_POINT;</div><div class='add'>+        if (!rb_w32_reparse_symlink_p(wplain))</div><div class='add'>+            fa.dwFileAttributes &amp;= ~FILE_ATTRIBUTE_REPARSE_POINT;</div><div class='ctx'>     }</div><div class='ctx'>     free(wplain);</div><div class='ctx'>     if (h == INVALID_HANDLE_VALUE) {</div><div class='del'>-	*type = path_noent;</div><div class='del'>-	if (e &amp;&amp; !to_be_ignored(e)) {</div><div class='del'>-	    errno = e;</div><div class='del'>-	    sys_warning(path, enc);</div><div class='del'>-	}</div><div class='del'>-	return path;</div><div class='add'>+        *type = path_noent;</div><div class='add'>+        if (e &amp;&amp; !to_be_ignored(e)) {</div><div class='add'>+            errno = e;</div><div class='add'>+            sys_warning(path, enc);</div><div class='add'>+        }</div><div class='add'>+        return path;</div><div class='ctx'>     }</div><div class='ctx'>     FindClose(h);</div><div class='ctx'>     *type =</div><div class='del'>-	(fa.dwFileAttributes &amp; FILE_ATTRIBUTE_REPARSE_POINT) ? path_symlink :</div><div class='del'>-	(fa.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) ? path_directory :</div><div class='del'>-	path_regular;</div><div class='add'>+        (fa.dwFileAttributes &amp; FILE_ATTRIBUTE_REPARSE_POINT) ? path_symlink :</div><div class='add'>+        (fa.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) ? path_directory :</div><div class='add'>+        path_regular;</div><div class='ctx'>     if (tmp) {</div><div class='del'>-	char *buf;</div><div class='del'>-	tmp = rb_w32_conv_from_wchar(fd.cFileName, enc);</div><div class='del'>-	wlen = RSTRING_LEN(tmp);</div><div class='del'>-	buf = GLOB_REALLOC(path, base + wlen + 1);</div><div class='del'>-	if (buf) {</div><div class='del'>-	    path = buf;</div><div class='del'>-	    memcpy(path + base, RSTRING_PTR(tmp), wlen);</div><div class='del'>-	    path[base + wlen] = 0;</div><div class='del'>-	}</div><div class='del'>-	rb_str_resize(tmp, 0);</div><div class='add'>+        char *buf;</div><div class='add'>+        tmp = rb_w32_conv_from_wchar(fd.cFileName, enc);</div><div class='add'>+        wlen = RSTRING_LEN(tmp);</div><div class='add'>+        buf = GLOB_REALLOC(path, base + wlen + 1);</div><div class='add'>+        if (buf) {</div><div class='add'>+            path = buf;</div><div class='add'>+            memcpy(path + base, RSTRING_PTR(tmp), wlen);</div><div class='add'>+            path[base + wlen] = 0;</div><div class='add'>+        }</div><div class='add'>+        rb_str_resize(tmp, 0);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	char *utf8filename;</div><div class='del'>-	wlen = WideCharToMultiByte(CP_UTF8, 0, fd.cFileName, -1, NULL, 0, NULL, NULL);</div><div class='del'>-	utf8filename = GLOB_REALLOC(0, wlen);</div><div class='del'>-	if (utf8filename) {</div><div class='del'>-	    char *buf;</div><div class='del'>-	    WideCharToMultiByte(CP_UTF8, 0, fd.cFileName, -1, utf8filename, wlen, NULL, NULL);</div><div class='del'>-	    buf = GLOB_REALLOC(path, base + wlen + 1);</div><div class='del'>-	    if (buf) {</div><div class='del'>-		path = buf;</div><div class='del'>-		memcpy(path + base, utf8filename, wlen);</div><div class='del'>-		path[base + wlen] = 0;</div><div class='del'>-	    }</div><div class='del'>-	    GLOB_FREE(utf8filename);</div><div class='del'>-	}</div><div class='add'>+        char *utf8filename;</div><div class='add'>+        wlen = WideCharToMultiByte(CP_UTF8, 0, fd.cFileName, -1, NULL, 0, NULL, NULL);</div><div class='add'>+        utf8filename = GLOB_REALLOC(0, wlen);</div><div class='add'>+        if (utf8filename) {</div><div class='add'>+            char *buf;</div><div class='add'>+            WideCharToMultiByte(CP_UTF8, 0, fd.cFileName, -1, utf8filename, wlen, NULL, NULL);</div><div class='add'>+            buf = GLOB_REALLOC(path, base + wlen + 1);</div><div class='add'>+            if (buf) {</div><div class='add'>+                path = buf;</div><div class='add'>+                memcpy(path + base, utf8filename, wlen);</div><div class='add'>+                path[base + wlen] = 0;</div><div class='add'>+            }</div><div class='add'>+            GLOB_FREE(utf8filename);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return path;</div><div class='ctx'> }</div><div class='hunk'>@@ -1974,13 +1980,15 @@ rb_glob_warning(const char *path, VALUE a, const void *enc, int error)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+NORETURN(static VALUE glob_func_error(VALUE val));</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> glob_func_error(VALUE val)</div><div class='ctx'> {</div><div class='ctx'>     struct glob_error_args *arg = (struct glob_error_args *)val;</div><div class='ctx'>     VALUE path = rb_enc_str_new_cstr(arg-&gt;path, arg-&gt;enc);</div><div class='ctx'>     rb_syserr_fail_str(arg-&gt;error, path);</div><div class='del'>-    return Qnil;</div><div class='add'>+    UNREACHABLE_RETURN(Qnil);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -1990,8 +1998,12 @@ rb_glob_error(const char *path, VALUE a, const void *enc, int error)</div><div class='ctx'>     struct glob_error_args args;</div><div class='ctx'>     VALUE (*errfunc)(VALUE) = glob_func_error;</div><div class='ctx'> </div><div class='del'>-    if (error == EACCES) {</div><div class='del'>-	errfunc = glob_func_warning;</div><div class='add'>+    switch (error) {</div><div class='add'>+      case EACCES:</div><div class='add'>+#ifdef ENOTCAPABLE</div><div class='add'>+      case ENOTCAPABLE:</div><div class='add'>+#endif</div><div class='add'>+        errfunc = glob_func_warning;</div><div class='ctx'>     }</div><div class='ctx'>     args.path = path;</div><div class='ctx'>     args.enc = enc;</div><div class='hunk'>@@ -2000,13 +2012,22 @@ rb_glob_error(const char *path, VALUE a, const void *enc, int error)</div><div class='ctx'>     return status;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+typedef struct rb_dirent {</div><div class='add'>+    long d_namlen;</div><div class='add'>+    const char *d_name;</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    const char *d_altname;</div><div class='add'>+#endif</div><div class='add'>+    uint8_t d_type;</div><div class='add'>+} rb_dirent_t;</div><div class='add'>+</div><div class='ctx'> static inline int</div><div class='del'>-dirent_match(const char *pat, rb_encoding *enc, const char *name, const struct dirent *dp, int flags)</div><div class='add'>+dirent_match(const char *pat, rb_encoding *enc, const char *name, const rb_dirent_t *dp, int flags)</div><div class='ctx'> {</div><div class='ctx'>     if (fnmatch(pat, enc, name, flags) == 0) return 1;</div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'>     if (dp-&gt;d_altname &amp;&amp; (flags &amp; FNM_SHORTNAME)) {</div><div class='del'>-	if (fnmatch(pat, enc, dp-&gt;d_altname, flags) == 0) return 1;</div><div class='add'>+        if (fnmatch(pat, enc, dp-&gt;d_altname, flags) == 0) return 1;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return 0;</div><div class='hunk'>@@ -2026,7 +2047,7 @@ struct push_glob_args {</div><div class='ctx'> </div><div class='ctx'> struct dirent_brace_args {</div><div class='ctx'>     const char *name;</div><div class='del'>-    const struct dirent *dp;</div><div class='add'>+    const rb_dirent_t *dp;</div><div class='ctx'>     int flags;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='hunk'>@@ -2047,32 +2068,39 @@ join_path_from_pattern(struct glob_pattern **beg)</div><div class='ctx'>     size_t path_len = 0;</div><div class='ctx'> </div><div class='ctx'>     for (p = *beg; p; p = p-&gt;next) {</div><div class='del'>-	const char *str;</div><div class='del'>-	switch (p-&gt;type) {</div><div class='del'>-	  case RECURSIVE:</div><div class='del'>-	    str = "**";</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    str = p-&gt;str;</div><div class='del'>-	    if (!str) continue;</div><div class='del'>-	}</div><div class='del'>-	if (!path) {</div><div class='del'>-	    path_len = strlen(str);</div><div class='del'>-	    path = GLOB_ALLOC_N(char, path_len + 1);</div><div class='del'>-	    memcpy(path, str, path_len);</div><div class='del'>-	    path[path_len] = '\0';</div><div class='del'>-	} else {</div><div class='del'>-	    size_t len = strlen(str);</div><div class='del'>-	    char *tmp;</div><div class='del'>-	    tmp = GLOB_REALLOC(path, path_len + len + 2);</div><div class='del'>-	    if (tmp) {</div><div class='del'>-		path = tmp;</div><div class='del'>-		path[path_len++] = '/';</div><div class='del'>-		memcpy(path + path_len, str, len);</div><div class='del'>-		path_len += len;</div><div class='del'>-		path[path_len] = '\0';</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        const char *str;</div><div class='add'>+        switch (p-&gt;type) {</div><div class='add'>+          case RECURSIVE:</div><div class='add'>+            str = "**";</div><div class='add'>+            break;</div><div class='add'>+          case MATCH_DIR:</div><div class='add'>+            /* append last slash */</div><div class='add'>+            str = "";</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            str = p-&gt;str;</div><div class='add'>+            if (!str) continue;</div><div class='add'>+        }</div><div class='add'>+        if (!path) {</div><div class='add'>+            path_len = strlen(str);</div><div class='add'>+            path = GLOB_ALLOC_N(char, path_len + 1);</div><div class='add'>+            if (path) {</div><div class='add'>+                memcpy(path, str, path_len);</div><div class='add'>+                path[path_len] = '\0';</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            size_t len = strlen(str);</div><div class='add'>+            char *tmp;</div><div class='add'>+            tmp = GLOB_REALLOC(path, path_len + len + 2);</div><div class='add'>+            if (tmp) {</div><div class='add'>+                path = tmp;</div><div class='add'>+                path[path_len++] = '/';</div><div class='add'>+                memcpy(path + path_len, str, len);</div><div class='add'>+                path_len += len;</div><div class='add'>+                path[path_len] = '\0';</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return path;</div><div class='ctx'> }</div><div class='hunk'>@@ -2080,7 +2108,160 @@ join_path_from_pattern(struct glob_pattern **beg)</div><div class='ctx'> static int push_caller(const char *path, VALUE val, void *enc);</div><div class='ctx'> </div><div class='ctx'> static int ruby_brace_expand(const char *str, int flags, ruby_glob_func *func, VALUE arg,</div><div class='del'>-			     rb_encoding *enc, VALUE var);</div><div class='add'>+                             rb_encoding *enc, VALUE var);</div><div class='add'>+</div><div class='add'>+static const size_t rb_dirent_name_offset =</div><div class='add'>+    offsetof(rb_dirent_t, d_type) + sizeof(uint8_t);</div><div class='add'>+</div><div class='add'>+static rb_dirent_t *</div><div class='add'>+dirent_copy(const struct dirent *dp, rb_dirent_t *rdp)</div><div class='add'>+{</div><div class='add'>+    if (!dp) return NULL;</div><div class='add'>+    size_t namlen = NAMLEN(dp);</div><div class='add'>+    const size_t altlen =</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+        dp-&gt;d_altlen ? dp-&gt;d_altlen + 1 :</div><div class='add'>+#endif</div><div class='add'>+        0;</div><div class='add'>+    rb_dirent_t *newrdp = rdp;</div><div class='add'>+    if (!rdp &amp;&amp; !(newrdp = malloc(rb_dirent_name_offset + namlen + 1 + altlen)))</div><div class='add'>+        return NULL;</div><div class='add'>+    newrdp-&gt;d_namlen = namlen;</div><div class='add'>+    if (!rdp) {</div><div class='add'>+        char *name = (char *)newrdp + rb_dirent_name_offset;</div><div class='add'>+        memcpy(name, dp-&gt;d_name, namlen);</div><div class='add'>+        name[namlen] = '\0';</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+        newrdp-&gt;d_altname = NULL;</div><div class='add'>+        if (altlen) {</div><div class='add'>+            char *const altname = name + namlen + 1;</div><div class='add'>+            memcpy(altname, dp-&gt;d_altname, altlen - 1);</div><div class='add'>+            altname[altlen - 1] = '\0';</div><div class='add'>+            newrdp-&gt;d_altname = altname;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        newrdp-&gt;d_name = name;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        newrdp-&gt;d_name = dp-&gt;d_name;</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+        newrdp-&gt;d_altname = dp-&gt;d_altname;</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+#if !EMULATE_IFTODT</div><div class='add'>+    newrdp-&gt;d_type = dp-&gt;d_type;</div><div class='add'>+#else</div><div class='add'>+    newrdp-&gt;d_type = 0;</div><div class='add'>+#endif</div><div class='add'>+    return newrdp;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+typedef union {</div><div class='add'>+    struct {</div><div class='add'>+        DIR *dirp;</div><div class='add'>+        rb_dirent_t ent;</div><div class='add'>+    } nosort;</div><div class='add'>+    struct {</div><div class='add'>+        size_t count, idx;</div><div class='add'>+        rb_dirent_t **entries;</div><div class='add'>+    } sort;</div><div class='add'>+} ruby_glob_entries_t;</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+glob_sort_cmp(const void *a, const void *b, void *e)</div><div class='add'>+{</div><div class='add'>+    const rb_dirent_t *ent1 = *(void **)a;</div><div class='add'>+    const rb_dirent_t *ent2 = *(void **)b;</div><div class='add'>+    return strcmp(ent1-&gt;d_name, ent2-&gt;d_name);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+glob_dir_finish(ruby_glob_entries_t *ent, int flags)</div><div class='add'>+{</div><div class='add'>+    if (flags &amp; FNM_GLOB_NOSORT) {</div><div class='add'>+        closedir(ent-&gt;nosort.dirp);</div><div class='add'>+        ent-&gt;nosort.dirp = NULL;</div><div class='add'>+    }</div><div class='add'>+    else if (ent-&gt;sort.entries) {</div><div class='add'>+        for (size_t i = 0, count = ent-&gt;sort.count; i &lt; count;) {</div><div class='add'>+            GLOB_FREE(ent-&gt;sort.entries[i++]);</div><div class='add'>+        }</div><div class='add'>+        GLOB_FREE(ent-&gt;sort.entries);</div><div class='add'>+        ent-&gt;sort.entries = NULL;</div><div class='add'>+        ent-&gt;sort.count = ent-&gt;sort.idx = 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ruby_glob_entries_t *</div><div class='add'>+glob_opendir(ruby_glob_entries_t *ent, DIR *dirp, int flags, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    MEMZERO(ent, ruby_glob_entries_t, 1);</div><div class='add'>+    if (flags &amp; FNM_GLOB_NOSORT) {</div><div class='add'>+        ent-&gt;nosort.dirp = dirp;</div><div class='add'>+        return ent;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        void *newp;</div><div class='add'>+        struct dirent *dp;</div><div class='add'>+        size_t count = 0, capacity = 0;</div><div class='add'>+        ent-&gt;sort.count = 0;</div><div class='add'>+        ent-&gt;sort.idx = 0;</div><div class='add'>+        ent-&gt;sort.entries = 0;</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+        if ((capacity = dirp-&gt;nfiles) &gt; 0) {</div><div class='add'>+            if (!(newp = GLOB_ALLOC_N(rb_dirent_t, capacity))) {</div><div class='add'>+                closedir(dirp);</div><div class='add'>+                return NULL;</div><div class='add'>+            }</div><div class='add'>+            ent-&gt;sort.entries = newp;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        while ((dp = READDIR(dirp, enc)) != NULL) {</div><div class='add'>+            rb_dirent_t *rdp = dirent_copy(dp, NULL);</div><div class='add'>+            if (!rdp) {</div><div class='add'>+                goto nomem;</div><div class='add'>+            }</div><div class='add'>+            if (count &gt;= capacity) {</div><div class='add'>+                capacity += 256;</div><div class='add'>+                if (!(newp = GLOB_REALLOC_N(ent-&gt;sort.entries, capacity)))</div><div class='add'>+                    goto nomem;</div><div class='add'>+                ent-&gt;sort.entries = newp;</div><div class='add'>+            }</div><div class='add'>+            ent-&gt;sort.entries[count++] = rdp;</div><div class='add'>+            ent-&gt;sort.count = count;</div><div class='add'>+        }</div><div class='add'>+        closedir(dirp);</div><div class='add'>+        if (count &lt; capacity) {</div><div class='add'>+            if (!(newp = GLOB_REALLOC_N(ent-&gt;sort.entries, count))) {</div><div class='add'>+                glob_dir_finish(ent, 0);</div><div class='add'>+                return NULL;</div><div class='add'>+            }</div><div class='add'>+            ent-&gt;sort.entries = newp;</div><div class='add'>+        }</div><div class='add'>+        ruby_qsort(ent-&gt;sort.entries, ent-&gt;sort.count, sizeof(ent-&gt;sort.entries[0]),</div><div class='add'>+                   glob_sort_cmp, NULL);</div><div class='add'>+        return ent;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+  nomem:</div><div class='add'>+    glob_dir_finish(ent, 0);</div><div class='add'>+    closedir(dirp);</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static rb_dirent_t *</div><div class='add'>+glob_getent(ruby_glob_entries_t *ent, int flags, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    if (flags &amp; FNM_GLOB_NOSORT) {</div><div class='add'>+        return dirent_copy(READDIR(ent-&gt;nosort.dirp, enc), &amp;ent-&gt;nosort.ent);</div><div class='add'>+    }</div><div class='add'>+    else if (ent-&gt;sort.idx &lt; ent-&gt;sort.count) {</div><div class='add'>+        return ent-&gt;sort.entries[ent-&gt;sort.idx++];</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return NULL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> glob_helper(</div><div class='hunk'>@@ -2104,307 +2285,325 @@ glob_helper(</div><div class='ctx'>     int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='ctx'>     size_t pathlen = baselen + namelen;</div><div class='ctx'> </div><div class='add'>+    rb_check_stack_overflow();</div><div class='add'>+</div><div class='ctx'>     for (cur = beg; cur &lt; end; ++cur) {</div><div class='del'>-	struct glob_pattern *p = *cur;</div><div class='del'>-	if (p-&gt;type == RECURSIVE) {</div><div class='del'>-	    recursive = 1;</div><div class='del'>-	    p = p-&gt;next;</div><div class='del'>-	}</div><div class='del'>-	switch (p-&gt;type) {</div><div class='del'>-	  case PLAIN:</div><div class='del'>-	    plain = 1;</div><div class='del'>-	    break;</div><div class='del'>-	  case ALPHA:</div><div class='add'>+        struct glob_pattern *p = *cur;</div><div class='add'>+        if (p-&gt;type == RECURSIVE) {</div><div class='add'>+            recursive = 1;</div><div class='add'>+            p = p-&gt;next;</div><div class='add'>+        }</div><div class='add'>+        switch (p-&gt;type) {</div><div class='add'>+          case PLAIN:</div><div class='add'>+            plain = 1;</div><div class='add'>+            break;</div><div class='add'>+          case ALPHA:</div><div class='ctx'> #if USE_NAME_ON_FS == USE_NAME_ON_FS_REAL_BASENAME</div><div class='del'>-	    plain = 1;</div><div class='add'>+            plain = 1;</div><div class='ctx'> #else</div><div class='del'>-	    magical = 1;</div><div class='del'>-#endif</div><div class='del'>-	    break;</div><div class='del'>-	  case BRACE:</div><div class='del'>-	    if (!recursive) {</div><div class='del'>-		brace = 1;</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	  case MAGICAL:</div><div class='del'>-	    magical = 2;</div><div class='del'>-	    break;</div><div class='del'>-	  case MATCH_ALL:</div><div class='del'>-	    match_all = 1;</div><div class='del'>-	    break;</div><div class='del'>-	  case MATCH_DIR:</div><div class='del'>-	    match_dir = 1;</div><div class='del'>-	    break;</div><div class='del'>-	  case RECURSIVE:</div><div class='del'>-	    rb_bug("continuous RECURSIVEs");</div><div class='del'>-	}</div><div class='add'>+            magical = 1;</div><div class='add'>+#endif</div><div class='add'>+            break;</div><div class='add'>+          case BRACE:</div><div class='add'>+            if (!recursive || strchr(p-&gt;str, '/')) {</div><div class='add'>+                brace = 1;</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+          case MAGICAL:</div><div class='add'>+            magical = 2;</div><div class='add'>+            break;</div><div class='add'>+          case MATCH_ALL:</div><div class='add'>+            match_all = 1;</div><div class='add'>+            break;</div><div class='add'>+          case MATCH_DIR:</div><div class='add'>+            match_dir = 1;</div><div class='add'>+            break;</div><div class='add'>+          case RECURSIVE:</div><div class='add'>+            rb_bug("continuous RECURSIVEs");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (brace) {</div><div class='del'>-	struct push_glob_args args;</div><div class='del'>-	char* brace_path = join_path_from_pattern(beg);</div><div class='del'>-	if (!brace_path) return -1;</div><div class='del'>-	args.fd = fd;</div><div class='del'>-	args.path = path;</div><div class='del'>-	args.baselen = baselen;</div><div class='del'>-	args.namelen = namelen;</div><div class='del'>-	args.dirsep = dirsep;</div><div class='del'>-	args.pathtype = pathtype;</div><div class='del'>-	args.flags = flags;</div><div class='del'>-	args.funcs = funcs;</div><div class='del'>-	args.arg = arg;</div><div class='del'>-	status = ruby_brace_expand(brace_path, flags, push_caller, (VALUE)&amp;args, enc, Qfalse);</div><div class='del'>-	GLOB_FREE(brace_path);</div><div class='del'>-	return status;</div><div class='add'>+        struct push_glob_args args;</div><div class='add'>+        char* brace_path = join_path_from_pattern(beg);</div><div class='add'>+        if (!brace_path) return -1;</div><div class='add'>+        args.fd = fd;</div><div class='add'>+        args.path = path;</div><div class='add'>+        args.baselen = baselen;</div><div class='add'>+        args.namelen = namelen;</div><div class='add'>+        args.dirsep = dirsep;</div><div class='add'>+        args.pathtype = pathtype;</div><div class='add'>+        args.flags = flags;</div><div class='add'>+        args.funcs = funcs;</div><div class='add'>+        args.arg = arg;</div><div class='add'>+        status = ruby_brace_expand(brace_path, flags, push_caller, (VALUE)&amp;args, enc, Qfalse);</div><div class='add'>+        GLOB_FREE(brace_path);</div><div class='add'>+        return status;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (*path) {</div><div class='del'>-	if (match_all &amp;&amp; pathtype == path_unknown) {</div><div class='del'>-	    if (do_lstat(fd, baselen, path, &amp;st, flags, enc) == 0) {</div><div class='del'>-		pathtype = IFTODT(st.st_mode);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		pathtype = path_noent;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (match_dir &amp;&amp; (pathtype == path_unknown || pathtype == path_symlink)) {</div><div class='del'>-	    if (do_stat(fd, baselen, path, &amp;st, flags, enc) == 0) {</div><div class='del'>-		pathtype = IFTODT(st.st_mode);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		pathtype = path_noent;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (match_all &amp;&amp; pathtype &gt; path_noent) {</div><div class='del'>-	    const char *subpath = path + baselen + (baselen &amp;&amp; path[baselen] == '/');</div><div class='del'>-	    status = glob_call_func(funcs-&gt;match, subpath, arg, enc);</div><div class='del'>-	    if (status) return status;</div><div class='del'>-	}</div><div class='del'>-	if (match_dir &amp;&amp; pathtype == path_directory) {</div><div class='del'>-	    int seplen = (baselen &amp;&amp; path[baselen] == '/');</div><div class='del'>-	    const char *subpath = path + baselen + seplen;</div><div class='del'>-	    char *tmp = join_path(subpath, namelen - seplen, dirsep, "", 0);</div><div class='del'>-	    if (!tmp) return -1;</div><div class='del'>-	    status = glob_call_func(funcs-&gt;match, tmp, arg, enc);</div><div class='del'>-	    GLOB_FREE(tmp);</div><div class='del'>-	    if (status) return status;</div><div class='del'>-	}</div><div class='add'>+        if (match_all &amp;&amp; pathtype == path_unknown) {</div><div class='add'>+            if (do_lstat(fd, baselen, path, &amp;st, flags, enc) == 0) {</div><div class='add'>+                pathtype = IFTODT(st.st_mode);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                pathtype = path_noent;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (match_dir &amp;&amp; (pathtype == path_unknown || pathtype == path_symlink)) {</div><div class='add'>+            if (do_stat(fd, baselen, path, &amp;st, flags, enc) == 0) {</div><div class='add'>+                pathtype = IFTODT(st.st_mode);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                pathtype = path_noent;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (match_all &amp;&amp; pathtype &gt; path_noent) {</div><div class='add'>+            const char *subpath = path + baselen + (baselen &amp;&amp; path[baselen] == '/');</div><div class='add'>+            status = glob_call_func(funcs-&gt;match, subpath, arg, enc);</div><div class='add'>+            if (status) return status;</div><div class='add'>+        }</div><div class='add'>+        if (match_dir &amp;&amp; pathtype == path_directory) {</div><div class='add'>+            int seplen = (baselen &amp;&amp; path[baselen] == '/');</div><div class='add'>+            const char *subpath = path + baselen + seplen;</div><div class='add'>+            char *tmp = join_path(subpath, namelen - seplen, dirsep, "", 0);</div><div class='add'>+            if (!tmp) return -1;</div><div class='add'>+            status = glob_call_func(funcs-&gt;match, tmp, arg, enc);</div><div class='add'>+            GLOB_FREE(tmp);</div><div class='add'>+            if (status) return status;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (pathtype == path_noent) return 0;</div><div class='ctx'> </div><div class='ctx'>     if (magical || recursive) {</div><div class='del'>-	struct dirent *dp;</div><div class='del'>-	DIR *dirp;</div><div class='add'>+        rb_dirent_t *dp;</div><div class='add'>+        DIR *dirp;</div><div class='ctx'> # if USE_NAME_ON_FS == USE_NAME_ON_FS_BY_FNMATCH</div><div class='del'>-	char *plainname = 0;</div><div class='add'>+        char *plainname = 0;</div><div class='ctx'> # endif</div><div class='del'>-	IF_NORMALIZE_UTF8PATH(int norm_p);</div><div class='add'>+        IF_NORMALIZE_UTF8PATH(int norm_p);</div><div class='ctx'> # if USE_NAME_ON_FS == USE_NAME_ON_FS_BY_FNMATCH</div><div class='del'>-	if (cur + 1 == end &amp;&amp; (*cur)-&gt;type &lt;= ALPHA) {</div><div class='del'>-	    plainname = join_path(path, pathlen, dirsep, (*cur)-&gt;str, strlen((*cur)-&gt;str));</div><div class='del'>-	    if (!plainname) return -1;</div><div class='del'>-	    dirp = do_opendir(fd, basename, plainname, flags, enc, funcs-&gt;error, arg, &amp;status);</div><div class='del'>-	    GLOB_FREE(plainname);</div><div class='del'>-	}</div><div class='del'>-	else</div><div class='add'>+        if (cur + 1 == end &amp;&amp; (*cur)-&gt;type &lt;= ALPHA) {</div><div class='add'>+            plainname = join_path(path, pathlen, dirsep, (*cur)-&gt;str, strlen((*cur)-&gt;str));</div><div class='add'>+            if (!plainname) return -1;</div><div class='add'>+            dirp = do_opendir(fd, basename, plainname, flags, enc, funcs-&gt;error, arg, &amp;status);</div><div class='add'>+            GLOB_FREE(plainname);</div><div class='add'>+        }</div><div class='add'>+        else</div><div class='ctx'> # else</div><div class='del'>-	    ;</div><div class='add'>+            ;</div><div class='ctx'> # endif</div><div class='del'>-	dirp = do_opendir(fd, baselen, path, flags, enc, funcs-&gt;error, arg, &amp;status);</div><div class='del'>-	if (dirp == NULL) {</div><div class='add'>+        dirp = do_opendir(fd, baselen, path, flags, enc, funcs-&gt;error, arg, &amp;status);</div><div class='add'>+        if (dirp == NULL) {</div><div class='ctx'> # if FNM_SYSCASE || NORMALIZE_UTF8PATH</div><div class='del'>-	    if ((magical &lt; 2) &amp;&amp; !recursive &amp;&amp; (errno == EACCES)) {</div><div class='del'>-		/* no read permission, fallback */</div><div class='del'>-		goto literally;</div><div class='del'>-	    }</div><div class='add'>+            if ((magical &lt; 2) &amp;&amp; !recursive &amp;&amp; (errno == EACCES)) {</div><div class='add'>+                /* no read permission, fallback */</div><div class='add'>+                goto literally;</div><div class='add'>+            }</div><div class='ctx'> # endif</div><div class='del'>-	    return status;</div><div class='del'>-	}</div><div class='del'>-	IF_NORMALIZE_UTF8PATH(norm_p = need_normalization(dirp, *path ? path : "."));</div><div class='add'>+            return status;</div><div class='add'>+        }</div><div class='add'>+        IF_NORMALIZE_UTF8PATH(norm_p = need_normalization(dirp, *path ? path : "."));</div><div class='ctx'> </div><div class='ctx'> # if NORMALIZE_UTF8PATH</div><div class='del'>-	if (!(norm_p || magical || recursive)) {</div><div class='del'>-	    closedir(dirp);</div><div class='del'>-	    goto literally;</div><div class='del'>-	}</div><div class='add'>+        if (!(norm_p || magical || recursive)) {</div><div class='add'>+            closedir(dirp);</div><div class='add'>+            goto literally;</div><div class='add'>+        }</div><div class='ctx'> # endif</div><div class='ctx'> # ifdef HAVE_GETATTRLIST</div><div class='del'>-	if (is_case_sensitive(dirp, path) == 0)</div><div class='del'>-	    flags |= FNM_CASEFOLD;</div><div class='add'>+        if (is_case_sensitive(dirp, path) == 0)</div><div class='add'>+            flags |= FNM_CASEFOLD;</div><div class='ctx'> # endif</div><div class='del'>-	while ((dp = READDIR(dirp, enc)) != NULL) {</div><div class='del'>-	    char *buf;</div><div class='del'>-	    rb_pathtype_t new_pathtype = path_unknown;</div><div class='del'>-	    const char *name;</div><div class='del'>-	    size_t namlen;</div><div class='del'>-	    int dotfile = 0;</div><div class='del'>-	    IF_NORMALIZE_UTF8PATH(VALUE utf8str = Qnil);</div><div class='del'>-</div><div class='del'>-	    name = dp-&gt;d_name;</div><div class='del'>-	    namlen = NAMLEN(dp);</div><div class='del'>-	    if (recursive &amp;&amp; name[0] == '.') {</div><div class='del'>-		++dotfile;</div><div class='del'>-		if (namlen == 1) {</div><div class='del'>-		    /* unless DOTMATCH, skip current directories not to recurse infinitely */</div><div class='del'>-		    if (!(flags &amp; FNM_DOTMATCH)) continue;</div><div class='del'>-		    ++dotfile;</div><div class='del'>-		    new_pathtype = path_directory; /* force to skip stat/lstat */</div><div class='del'>-		}</div><div class='del'>-		else if (namlen == 2 &amp;&amp; name[1] == '.') {</div><div class='del'>-		    /* always skip parent directories not to recurse infinitely */</div><div class='del'>-		    continue;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='add'>+        ruby_glob_entries_t globent;</div><div class='add'>+        if (!glob_opendir(&amp;globent, dirp, flags, enc)) {</div><div class='add'>+            status = 0;</div><div class='add'>+            if (funcs-&gt;error) {</div><div class='add'>+                status = (*funcs-&gt;error)(path, arg, enc, ENOMEM);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                sys_warning(path, enc);</div><div class='add'>+            }</div><div class='add'>+            return status;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        int skipdot = (flags &amp; FNM_GLOB_SKIPDOT);</div><div class='add'>+        flags |= FNM_GLOB_SKIPDOT;</div><div class='add'>+</div><div class='add'>+        while ((dp = glob_getent(&amp;globent, flags, enc)) != NULL) {</div><div class='add'>+            char *buf;</div><div class='add'>+            rb_pathtype_t new_pathtype = path_unknown;</div><div class='add'>+            const char *name;</div><div class='add'>+            size_t namlen;</div><div class='add'>+            int dotfile = 0;</div><div class='add'>+            IF_NORMALIZE_UTF8PATH(VALUE utf8str = Qnil);</div><div class='add'>+</div><div class='add'>+            name = dp-&gt;d_name;</div><div class='add'>+            namlen = dp-&gt;d_namlen;</div><div class='add'>+            if (name[0] == '.') {</div><div class='add'>+                ++dotfile;</div><div class='add'>+                if (namlen == 1) {</div><div class='add'>+                    /* unless DOTMATCH, skip current directories not to recurse infinitely */</div><div class='add'>+                    if (recursive &amp;&amp; !(flags &amp; FNM_DOTMATCH)) continue;</div><div class='add'>+                    if (skipdot) continue;</div><div class='add'>+                    ++dotfile;</div><div class='add'>+                    new_pathtype = path_directory; /* force to skip stat/lstat */</div><div class='add'>+                }</div><div class='add'>+                else if (namlen == 2 &amp;&amp; name[1] == '.') {</div><div class='add'>+                    /* always skip parent directories not to recurse infinitely */</div><div class='add'>+                    continue;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='ctx'> </div><div class='ctx'> # if NORMALIZE_UTF8PATH</div><div class='del'>-	    if (norm_p &amp;&amp; has_nonascii(name, namlen)) {</div><div class='del'>-		if (!NIL_P(utf8str = rb_str_normalize_ospath(name, namlen))) {</div><div class='del'>-		    RSTRING_GETMEM(utf8str, name, namlen);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='add'>+            if (norm_p &amp;&amp; has_nonascii(name, namlen)) {</div><div class='add'>+                if (!NIL_P(utf8str = rb_str_normalize_ospath(name, namlen))) {</div><div class='add'>+                    RSTRING_GETMEM(utf8str, name, namlen);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='ctx'> # endif</div><div class='del'>-	    buf = join_path(path, pathlen, dirsep, name, namlen);</div><div class='del'>-	    IF_NORMALIZE_UTF8PATH(if (!NIL_P(utf8str)) rb_str_resize(utf8str, 0));</div><div class='del'>-	    if (!buf) {</div><div class='del'>-		status = -1;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    name = buf + pathlen + (dirsep != 0);</div><div class='del'>-#ifdef DT_UNKNOWN</div><div class='del'>-	    if (dp-&gt;d_type != DT_UNKNOWN) {</div><div class='del'>-		/* Got it. We need no more lstat. */</div><div class='del'>-		new_pathtype = dp-&gt;d_type;</div><div class='del'>-	    }</div><div class='del'>-#endif</div><div class='del'>-	    if (recursive &amp;&amp; dotfile &lt; ((flags &amp; FNM_DOTMATCH) ? 2 : 1) &amp;&amp;</div><div class='del'>-		new_pathtype == path_unknown) {</div><div class='del'>-		/* RECURSIVE never match dot files unless FNM_DOTMATCH is set */</div><div class='del'>-		if (do_lstat(fd, baselen, buf, &amp;st, flags, enc) == 0)</div><div class='del'>-		    new_pathtype = IFTODT(st.st_mode);</div><div class='del'>-		else</div><div class='del'>-		    new_pathtype = path_noent;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    new_beg = new_end = GLOB_ALLOC_N(struct glob_pattern *, (end - beg) * 2);</div><div class='del'>-	    if (!new_beg) {</div><div class='del'>-		GLOB_FREE(buf);</div><div class='del'>-		status = -1;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    for (cur = beg; cur &lt; end; ++cur) {</div><div class='del'>-		struct glob_pattern *p = *cur;</div><div class='del'>-		struct dirent_brace_args args;</div><div class='del'>-		if (p-&gt;type == RECURSIVE) {</div><div class='del'>-		    if (new_pathtype == path_directory || /* not symlink but real directory */</div><div class='del'>-			new_pathtype == path_exist) {</div><div class='del'>-			if (dotfile &lt; ((flags &amp; FNM_DOTMATCH) ? 2 : 1))</div><div class='del'>-			    *new_end++ = p; /* append recursive pattern */</div><div class='del'>-		    }</div><div class='del'>-		    p = p-&gt;next; /* 0 times recursion */</div><div class='del'>-		}</div><div class='del'>-		switch (p-&gt;type) {</div><div class='del'>-		  case BRACE:</div><div class='del'>-		    args.name = name;</div><div class='del'>-		    args.dp = dp;</div><div class='del'>-		    args.flags = flags;</div><div class='del'>-		    if (ruby_brace_expand(p-&gt;str, flags, dirent_match_brace,</div><div class='del'>-					  (VALUE)&amp;args, enc, Qfalse) &gt; 0)</div><div class='del'>-			*new_end++ = p-&gt;next;</div><div class='del'>-		    break;</div><div class='del'>-		  case ALPHA:</div><div class='add'>+            buf = join_path(path, pathlen, dirsep, name, namlen);</div><div class='add'>+            IF_NORMALIZE_UTF8PATH(if (!NIL_P(utf8str)) rb_str_resize(utf8str, 0));</div><div class='add'>+            if (!buf) {</div><div class='add'>+                status = -1;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            name = buf + pathlen + (dirsep != 0);</div><div class='add'>+#if !EMULATE_IFTODT</div><div class='add'>+            if (dp-&gt;d_type != DT_UNKNOWN) {</div><div class='add'>+                /* Got it. We need no more lstat. */</div><div class='add'>+                new_pathtype = dp-&gt;d_type;</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+            if (recursive &amp;&amp; dotfile &lt; ((flags &amp; FNM_DOTMATCH) ? 2 : 1) &amp;&amp;</div><div class='add'>+                new_pathtype == path_unknown) {</div><div class='add'>+                /* RECURSIVE never match dot files unless FNM_DOTMATCH is set */</div><div class='add'>+                if (do_lstat(fd, baselen, buf, &amp;st, flags, enc) == 0)</div><div class='add'>+                    new_pathtype = IFTODT(st.st_mode);</div><div class='add'>+                else</div><div class='add'>+                    new_pathtype = path_noent;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            new_beg = new_end = GLOB_ALLOC_N(struct glob_pattern *, (end - beg) * 2);</div><div class='add'>+            if (!new_beg) {</div><div class='add'>+                GLOB_FREE(buf);</div><div class='add'>+                status = -1;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            for (cur = beg; cur &lt; end; ++cur) {</div><div class='add'>+                struct glob_pattern *p = *cur;</div><div class='add'>+                struct dirent_brace_args args;</div><div class='add'>+                if (p-&gt;type == RECURSIVE) {</div><div class='add'>+                    if (new_pathtype == path_directory || /* not symlink but real directory */</div><div class='add'>+                        new_pathtype == path_exist) {</div><div class='add'>+                        if (dotfile &lt; ((flags &amp; FNM_DOTMATCH) ? 2 : 1))</div><div class='add'>+                            *new_end++ = p; /* append recursive pattern */</div><div class='add'>+                    }</div><div class='add'>+                    p = p-&gt;next; /* 0 times recursion */</div><div class='add'>+                }</div><div class='add'>+                switch (p-&gt;type) {</div><div class='add'>+                  case BRACE:</div><div class='add'>+                    args.name = name;</div><div class='add'>+                    args.dp = dp;</div><div class='add'>+                    args.flags = flags;</div><div class='add'>+                    if (ruby_brace_expand(p-&gt;str, flags, dirent_match_brace,</div><div class='add'>+                                          (VALUE)&amp;args, enc, Qfalse) &gt; 0)</div><div class='add'>+                        *new_end++ = p-&gt;next;</div><div class='add'>+                    break;</div><div class='add'>+                  case ALPHA:</div><div class='ctx'> # if USE_NAME_ON_FS == USE_NAME_ON_FS_BY_FNMATCH</div><div class='del'>-		    if (plainname) {</div><div class='del'>-			*new_end++ = p-&gt;next;</div><div class='del'>-			break;</div><div class='del'>-		    }</div><div class='add'>+                    if (plainname) {</div><div class='add'>+                        *new_end++ = p-&gt;next;</div><div class='add'>+                        break;</div><div class='add'>+                    }</div><div class='ctx'> # endif</div><div class='del'>-		  case PLAIN:</div><div class='del'>-		  case MAGICAL:</div><div class='del'>-		    if (dirent_match(p-&gt;str, enc, name, dp, flags))</div><div class='del'>-			*new_end++ = p-&gt;next;</div><div class='del'>-		  default:</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    status = glob_helper(fd, buf, baselen, name - buf - baselen + namlen, 1,</div><div class='del'>-				 new_pathtype, new_beg, new_end,</div><div class='del'>-				 flags, funcs, arg, enc);</div><div class='del'>-	    GLOB_FREE(buf);</div><div class='del'>-	    GLOB_FREE(new_beg);</div><div class='del'>-	    if (status) break;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	closedir(dirp);</div><div class='add'>+                  case PLAIN:</div><div class='add'>+                  case MAGICAL:</div><div class='add'>+                    if (dirent_match(p-&gt;str, enc, name, dp, flags))</div><div class='add'>+                        *new_end++ = p-&gt;next;</div><div class='add'>+                  default:</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            status = glob_helper(fd, buf, baselen, name - buf - baselen + namlen, 1,</div><div class='add'>+                                 new_pathtype, new_beg, new_end,</div><div class='add'>+                                 flags, funcs, arg, enc);</div><div class='add'>+            GLOB_FREE(buf);</div><div class='add'>+            GLOB_FREE(new_beg);</div><div class='add'>+            if (status) break;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        glob_dir_finish(&amp;globent, flags);</div><div class='ctx'>     }</div><div class='ctx'>     else if (plain) {</div><div class='del'>-	struct glob_pattern **copy_beg, **copy_end, **cur2;</div><div class='add'>+        struct glob_pattern **copy_beg, **copy_end, **cur2;</div><div class='ctx'> </div><div class='ctx'> # if FNM_SYSCASE || NORMALIZE_UTF8PATH</div><div class='ctx'>       literally:</div><div class='ctx'> # endif</div><div class='del'>-	copy_beg = copy_end = GLOB_ALLOC_N(struct glob_pattern *, end - beg);</div><div class='del'>-	if (!copy_beg) return -1;</div><div class='del'>-	for (cur = beg; cur &lt; end; ++cur)</div><div class='del'>-	    *copy_end++ = (*cur)-&gt;type &lt;= ALPHA ? *cur : 0;</div><div class='del'>-</div><div class='del'>-	for (cur = copy_beg; cur &lt; copy_end; ++cur) {</div><div class='del'>-	    if (*cur) {</div><div class='del'>-		rb_pathtype_t new_pathtype = path_unknown;</div><div class='del'>-		char *buf;</div><div class='del'>-		char *name;</div><div class='del'>-		size_t len = strlen((*cur)-&gt;str) + 1;</div><div class='del'>-		name = GLOB_ALLOC_N(char, len);</div><div class='del'>-		if (!name) {</div><div class='del'>-		    status = -1;</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-		memcpy(name, (*cur)-&gt;str, len);</div><div class='del'>-		if (escape)</div><div class='del'>-		    len = remove_backslashes(name, name+len-1, enc) - name;</div><div class='del'>-</div><div class='del'>-		new_beg = new_end = GLOB_ALLOC_N(struct glob_pattern *, end - beg);</div><div class='del'>-		if (!new_beg) {</div><div class='del'>-		    GLOB_FREE(name);</div><div class='del'>-		    status = -1;</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-		*new_end++ = (*cur)-&gt;next;</div><div class='del'>-		for (cur2 = cur + 1; cur2 &lt; copy_end; ++cur2) {</div><div class='del'>-		    if (*cur2 &amp;&amp; fnmatch((*cur2)-&gt;str, enc, name, flags) == 0) {</div><div class='del'>-			*new_end++ = (*cur2)-&gt;next;</div><div class='del'>-			*cur2 = 0;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-		buf = join_path(path, pathlen, dirsep, name, len);</div><div class='del'>-		GLOB_FREE(name);</div><div class='del'>-		if (!buf) {</div><div class='del'>-		    GLOB_FREE(new_beg);</div><div class='del'>-		    status = -1;</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='add'>+        copy_beg = copy_end = GLOB_ALLOC_N(struct glob_pattern *, end - beg);</div><div class='add'>+        if (!copy_beg) return -1;</div><div class='add'>+        for (cur = beg; cur &lt; end; ++cur)</div><div class='add'>+            *copy_end++ = (*cur)-&gt;type &lt;= ALPHA ? *cur : 0;</div><div class='add'>+</div><div class='add'>+        for (cur = copy_beg; cur &lt; copy_end; ++cur) {</div><div class='add'>+            if (*cur) {</div><div class='add'>+                rb_pathtype_t new_pathtype = path_unknown;</div><div class='add'>+                char *buf;</div><div class='add'>+                char *name;</div><div class='add'>+                size_t len = strlen((*cur)-&gt;str) + 1;</div><div class='add'>+                name = GLOB_ALLOC_N(char, len);</div><div class='add'>+                if (!name) {</div><div class='add'>+                    status = -1;</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+                memcpy(name, (*cur)-&gt;str, len);</div><div class='add'>+                if (escape)</div><div class='add'>+                    len = remove_backslashes(name, name+len-1, enc) - name;</div><div class='add'>+</div><div class='add'>+                new_beg = new_end = GLOB_ALLOC_N(struct glob_pattern *, end - beg);</div><div class='add'>+                if (!new_beg) {</div><div class='add'>+                    GLOB_FREE(name);</div><div class='add'>+                    status = -1;</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+                *new_end++ = (*cur)-&gt;next;</div><div class='add'>+                for (cur2 = cur + 1; cur2 &lt; copy_end; ++cur2) {</div><div class='add'>+                    if (*cur2 &amp;&amp; fnmatch((*cur2)-&gt;str, enc, name, flags) == 0) {</div><div class='add'>+                        *new_end++ = (*cur2)-&gt;next;</div><div class='add'>+                        *cur2 = 0;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+</div><div class='add'>+                buf = join_path(path, pathlen, dirsep, name, len);</div><div class='add'>+                GLOB_FREE(name);</div><div class='add'>+                if (!buf) {</div><div class='add'>+                    GLOB_FREE(new_beg);</div><div class='add'>+                    status = -1;</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='ctx'> #if USE_NAME_ON_FS == USE_NAME_ON_FS_REAL_BASENAME</div><div class='del'>-		if ((*cur)-&gt;type == ALPHA) {</div><div class='del'>-		    buf = replace_real_basename(buf, pathlen + (dirsep != 0), enc,</div><div class='del'>-						IF_NORMALIZE_UTF8PATH(1)+0,</div><div class='del'>-						flags, &amp;new_pathtype);</div><div class='del'>-		    if (!buf) break;</div><div class='del'>-		}</div><div class='del'>-#endif</div><div class='del'>-		status = glob_helper(fd, buf, baselen,</div><div class='del'>-				     namelen + strlen(buf + pathlen), 1,</div><div class='del'>-				     new_pathtype, new_beg, new_end,</div><div class='del'>-				     flags, funcs, arg, enc);</div><div class='del'>-		GLOB_FREE(buf);</div><div class='del'>-		GLOB_FREE(new_beg);</div><div class='del'>-		if (status) break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	GLOB_FREE(copy_beg);</div><div class='add'>+                if ((*cur)-&gt;type == ALPHA) {</div><div class='add'>+                    buf = replace_real_basename(buf, pathlen + (dirsep != 0), enc,</div><div class='add'>+                                                IF_NORMALIZE_UTF8PATH(1)+0,</div><div class='add'>+                                                flags, &amp;new_pathtype);</div><div class='add'>+                    if (!buf) break;</div><div class='add'>+                }</div><div class='add'>+#endif</div><div class='add'>+                status = glob_helper(fd, buf, baselen,</div><div class='add'>+                                     namelen + strlen(buf + pathlen), 1,</div><div class='add'>+                                     new_pathtype, new_beg, new_end,</div><div class='add'>+                                     flags, funcs, arg, enc);</div><div class='add'>+                GLOB_FREE(buf);</div><div class='add'>+                GLOB_FREE(new_beg);</div><div class='add'>+                if (status) break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        GLOB_FREE(copy_beg);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return status;</div><div class='hunk'>@@ -2419,19 +2618,37 @@ push_caller(const char *path, VALUE val, void *enc)</div><div class='ctx'> </div><div class='ctx'>     list = glob_make_pattern(path, path + strlen(path), arg-&gt;flags, enc);</div><div class='ctx'>     if (!list) {</div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'>     }</div><div class='ctx'>     status = glob_helper(arg-&gt;fd, arg-&gt;path, arg-&gt;baselen, arg-&gt;namelen, arg-&gt;dirsep,</div><div class='del'>-			 arg-&gt;pathtype, &amp;list, &amp;list + 1, arg-&gt;flags, arg-&gt;funcs,</div><div class='del'>-			 arg-&gt;arg, enc);</div><div class='add'>+                         arg-&gt;pathtype, &amp;list, &amp;list + 1, arg-&gt;flags, arg-&gt;funcs,</div><div class='add'>+                         arg-&gt;arg, enc);</div><div class='ctx'>     glob_free_pattern(list);</div><div class='ctx'>     return status;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int ruby_glob0(const char *path, int fd, const char *base, int flags,</div><div class='add'>+                      const ruby_glob_funcs_t *funcs, VALUE arg, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+struct push_glob0_args {</div><div class='add'>+    int fd;</div><div class='add'>+    const char *base;</div><div class='add'>+    int flags;</div><div class='add'>+    const ruby_glob_funcs_t *funcs;</div><div class='add'>+    VALUE arg;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+push_glob0_caller(const char *path, VALUE val, void *enc)</div><div class='add'>+{</div><div class='add'>+    struct push_glob0_args *arg = (struct push_glob0_args *)val;</div><div class='add'>+    return ruby_glob0(path, arg-&gt;fd, arg-&gt;base, arg-&gt;flags, arg-&gt;funcs, arg-&gt;arg, enc);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> ruby_glob0(const char *path, int fd, const char *base, int flags,</div><div class='del'>-	   const ruby_glob_funcs_t *funcs, VALUE arg,</div><div class='del'>-	   rb_encoding *enc)</div><div class='add'>+           const ruby_glob_funcs_t *funcs, VALUE arg,</div><div class='add'>+           rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     struct glob_pattern *list;</div><div class='ctx'>     const char *root, *start;</div><div class='hunk'>@@ -2440,6 +2657,17 @@ ruby_glob0(const char *path, int fd, const char *base, int flags,</div><div class='ctx'>     int status, dirsep = FALSE;</div><div class='ctx'> </div><div class='ctx'>     start = root = path;</div><div class='add'>+</div><div class='add'>+    if (*root == '{') {</div><div class='add'>+        struct push_glob0_args args;</div><div class='add'>+        args.fd = fd;</div><div class='add'>+        args.base = base;</div><div class='add'>+        args.flags = flags;</div><div class='add'>+        args.funcs = funcs;</div><div class='add'>+        args.arg = arg;</div><div class='add'>+        return ruby_brace_expand(path, flags, push_glob0_caller, (VALUE)&amp;args, enc, Qfalse);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     flags |= FNM_SYSCASE;</div><div class='ctx'> #if defined DOSISH</div><div class='ctx'>     root = rb_enc_path_skip_prefix(root, root + strlen(root), enc);</div><div class='hunk'>@@ -2449,10 +2677,10 @@ ruby_glob0(const char *path, int fd, const char *base, int flags,</div><div class='ctx'> </div><div class='ctx'>     n = root - start;</div><div class='ctx'>     if (!n &amp;&amp; base) {</div><div class='del'>-	n = strlen(base);</div><div class='del'>-	baselen = n;</div><div class='del'>-	start = base;</div><div class='del'>-	dirsep = TRUE;</div><div class='add'>+        n = strlen(base);</div><div class='add'>+        baselen = n;</div><div class='add'>+        start = base;</div><div class='add'>+        dirsep = TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     buf = GLOB_ALLOC_N(char, n + 1);</div><div class='ctx'>     if (!buf) return -1;</div><div class='hunk'>@@ -2461,12 +2689,12 @@ ruby_glob0(const char *path, int fd, const char *base, int flags,</div><div class='ctx'> </div><div class='ctx'>     list = glob_make_pattern(root, root + strlen(root), flags, enc);</div><div class='ctx'>     if (!list) {</div><div class='del'>-	GLOB_FREE(buf);</div><div class='del'>-	return -1;</div><div class='add'>+        GLOB_FREE(buf);</div><div class='add'>+        return -1;</div><div class='ctx'>     }</div><div class='ctx'>     status = glob_helper(fd, buf, baselen, n-baselen, dirsep,</div><div class='del'>-			 path_unknown, &amp;list, &amp;list + 1,</div><div class='del'>-			 flags, funcs, arg, enc);</div><div class='add'>+                         path_unknown, &amp;list, &amp;list + 1,</div><div class='add'>+                         flags, funcs, arg, enc);</div><div class='ctx'>     glob_free_pattern(list);</div><div class='ctx'>     GLOB_FREE(buf);</div><div class='ctx'> </div><div class='hunk'>@@ -2478,9 +2706,9 @@ ruby_glob(const char *path, int flags, ruby_glob_func *func, VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     ruby_glob_funcs_t funcs;</div><div class='ctx'>     funcs.match = func;</div><div class='del'>-    funcs.error = NULL;</div><div class='add'>+    funcs.error = 0;</div><div class='ctx'>     return ruby_glob0(path, AT_FDCWD, 0, flags &amp; ~GLOB_VERBOSE,</div><div class='del'>-		      &amp;funcs, arg, rb_ascii8bit_encoding());</div><div class='add'>+                      &amp;funcs, arg, rb_ascii8bit_encoding());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -2509,7 +2737,7 @@ rb_glob(const char *path, void (*func)(const char *, VALUE, void *), VALUE arg)</div><div class='ctx'>     args.enc = rb_ascii8bit_encoding();</div><div class='ctx'> </div><div class='ctx'>     status = ruby_glob0(path, AT_FDCWD, 0, GLOB_VERBOSE, &amp;rb_glob_funcs,</div><div class='del'>-			(VALUE)&amp;args, args.enc);</div><div class='add'>+                        (VALUE)&amp;args, args.enc);</div><div class='ctx'>     if (status) GLOB_JUMP_TAG(status);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2519,7 +2747,6 @@ push_pattern(const char *path, VALUE ary, void *enc)</div><div class='ctx'> #if defined _WIN32 || defined __APPLE__</div><div class='ctx'>     VALUE name = rb_utf8_str_new_cstr(path);</div><div class='ctx'>     rb_encoding *eenc = rb_default_internal_encoding();</div><div class='del'>-    OBJ_TAINT(name);</div><div class='ctx'>     name = rb_str_conv_enc(name, NULL, eenc ? eenc : enc);</div><div class='ctx'> #else</div><div class='ctx'>     VALUE name = rb_external_str_new_with_enc(path, strlen(path), enc);</div><div class='hunk'>@@ -2529,7 +2756,7 @@ push_pattern(const char *path, VALUE ary, void *enc)</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> ruby_brace_expand(const char *str, int flags, ruby_glob_func *func, VALUE arg,</div><div class='del'>-		  rb_encoding *enc, VALUE var)</div><div class='add'>+                  rb_encoding *enc, VALUE var)</div><div class='ctx'> {</div><div class='ctx'>     const int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='ctx'>     const char *p = str;</div><div class='hunk'>@@ -2539,48 +2766,48 @@ ruby_brace_expand(const char *str, int flags, ruby_glob_func *func, VALUE arg,</div><div class='ctx'>     int nest = 0, status = 0;</div><div class='ctx'> </div><div class='ctx'>     while (*p) {</div><div class='del'>-	if (*p == '{' &amp;&amp; nest++ == 0) {</div><div class='del'>-	    lbrace = p;</div><div class='del'>-	}</div><div class='del'>-	if (*p == '}' &amp;&amp; lbrace &amp;&amp; --nest == 0) {</div><div class='del'>-	    rbrace = p;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	if (*p == '\\' &amp;&amp; escape) {</div><div class='del'>-	    if (!*++p) break;</div><div class='del'>-	}</div><div class='del'>-	Inc(p, pend, enc);</div><div class='add'>+        if (*p == '{' &amp;&amp; nest++ == 0) {</div><div class='add'>+            lbrace = p;</div><div class='add'>+        }</div><div class='add'>+        if (*p == '}' &amp;&amp; lbrace &amp;&amp; --nest == 0) {</div><div class='add'>+            rbrace = p;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        if (*p == '\\' &amp;&amp; escape) {</div><div class='add'>+            if (!*++p) break;</div><div class='add'>+        }</div><div class='add'>+        Inc(p, pend, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (lbrace &amp;&amp; rbrace) {</div><div class='del'>-	size_t len = strlen(s) + 1;</div><div class='del'>-	char *buf = GLOB_ALLOC_N(char, len);</div><div class='del'>-	long shift;</div><div class='del'>-</div><div class='del'>-	if (!buf) return -1;</div><div class='del'>-	memcpy(buf, s, lbrace-s);</div><div class='del'>-	shift = (lbrace-s);</div><div class='del'>-	p = lbrace;</div><div class='del'>-	while (p &lt; rbrace) {</div><div class='del'>-	    const char *t = ++p;</div><div class='del'>-	    nest = 0;</div><div class='del'>-	    while (p &lt; rbrace &amp;&amp; !(*p == ',' &amp;&amp; nest == 0)) {</div><div class='del'>-		if (*p == '{') nest++;</div><div class='del'>-		if (*p == '}') nest--;</div><div class='del'>-		if (*p == '\\' &amp;&amp; escape) {</div><div class='del'>-		    if (++p == rbrace) break;</div><div class='del'>-		}</div><div class='del'>-		Inc(p, pend, enc);</div><div class='del'>-	    }</div><div class='del'>-	    memcpy(buf+shift, t, p-t);</div><div class='del'>-	    strlcpy(buf+shift+(p-t), rbrace+1, len-(shift+(p-t)));</div><div class='del'>-	    status = ruby_brace_expand(buf, flags, func, arg, enc, var);</div><div class='del'>-	    if (status) break;</div><div class='del'>-	}</div><div class='del'>-	GLOB_FREE(buf);</div><div class='add'>+        size_t len = strlen(s) + 1;</div><div class='add'>+        char *buf = GLOB_ALLOC_N(char, len);</div><div class='add'>+        long shift;</div><div class='add'>+</div><div class='add'>+        if (!buf) return -1;</div><div class='add'>+        memcpy(buf, s, lbrace-s);</div><div class='add'>+        shift = (lbrace-s);</div><div class='add'>+        p = lbrace;</div><div class='add'>+        while (p &lt; rbrace) {</div><div class='add'>+            const char *t = ++p;</div><div class='add'>+            nest = 0;</div><div class='add'>+            while (p &lt; rbrace &amp;&amp; !(*p == ',' &amp;&amp; nest == 0)) {</div><div class='add'>+                if (*p == '{') nest++;</div><div class='add'>+                if (*p == '}') nest--;</div><div class='add'>+                if (*p == '\\' &amp;&amp; escape) {</div><div class='add'>+                    if (++p == rbrace) break;</div><div class='add'>+                }</div><div class='add'>+                Inc(p, pend, enc);</div><div class='add'>+            }</div><div class='add'>+            memcpy(buf+shift, t, p-t);</div><div class='add'>+            strlcpy(buf+shift+(p-t), rbrace+1, len-(shift+(p-t)));</div><div class='add'>+            status = ruby_brace_expand(buf, flags, func, arg, enc, var);</div><div class='add'>+            if (status) break;</div><div class='add'>+        }</div><div class='add'>+        GLOB_FREE(buf);</div><div class='ctx'>     }</div><div class='ctx'>     else if (!lbrace &amp;&amp; !rbrace) {</div><div class='del'>-	status = glob_call_func(func, s, arg, enc);</div><div class='add'>+        status = glob_call_func(func, s, arg, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     RB_GC_GUARD(var);</div><div class='hunk'>@@ -2608,7 +2835,7 @@ ruby_brace_glob_with_enc(const char *str, int flags, ruby_glob_func *func, VALUE</div><div class='ctx'> </div><div class='ctx'>     flags &amp;= ~GLOB_VERBOSE;</div><div class='ctx'>     args.funcs.match = func;</div><div class='del'>-    args.funcs.error = NULL;</div><div class='add'>+    args.funcs.error = 0;</div><div class='ctx'>     args.value = arg;</div><div class='ctx'>     args.flags = flags;</div><div class='ctx'>     return ruby_brace_expand(str, flags, glob_brace, (VALUE)&amp;args, enc, Qfalse);</div><div class='hunk'>@@ -2631,9 +2858,9 @@ push_glob(VALUE ary, VALUE str, VALUE base, int flags)</div><div class='ctx'>     str = rb_str_encode_ospath(str);</div><div class='ctx'> #endif</div><div class='ctx'>     if (rb_enc_to_index(enc) == ENCINDEX_US_ASCII)</div><div class='del'>-	enc = rb_filesystem_encoding();</div><div class='add'>+        enc = rb_filesystem_encoding();</div><div class='ctx'>     if (rb_enc_to_index(enc) == ENCINDEX_US_ASCII)</div><div class='del'>-	enc = rb_ascii8bit_encoding();</div><div class='add'>+        enc = rb_ascii8bit_encoding();</div><div class='ctx'>     flags |= GLOB_VERBOSE;</div><div class='ctx'>     args.func = push_pattern;</div><div class='ctx'>     args.value = ary;</div><div class='hunk'>@@ -2641,244 +2868,116 @@ push_glob(VALUE ary, VALUE str, VALUE base, int flags)</div><div class='ctx'>     args.base = 0;</div><div class='ctx'>     fd = AT_FDCWD;</div><div class='ctx'>     if (!NIL_P(base)) {</div><div class='del'>-	if (!RB_TYPE_P(base, T_STRING) || !rb_enc_check(str, base)) {</div><div class='del'>-	    struct dir_data *dirp = DATA_PTR(base);</div><div class='del'>-	    if (!dirp-&gt;dir) dir_closed();</div><div class='add'>+        if (!RB_TYPE_P(base, T_STRING) || !rb_enc_check(str, base)) {</div><div class='add'>+            struct dir_data *dirp = DATA_PTR(base);</div><div class='add'>+            if (!dirp-&gt;dir) dir_closed();</div><div class='ctx'> #ifdef HAVE_DIRFD</div><div class='del'>-	    if ((fd = dirfd(dirp-&gt;dir)) == -1)</div><div class='del'>-		rb_sys_fail_path(dir_inspect(base));</div><div class='add'>+            if ((fd = dirfd(dirp-&gt;dir)) == -1)</div><div class='add'>+                rb_sys_fail_path(dir_inspect(base));</div><div class='ctx'> #endif</div><div class='del'>-	    base = dirp-&gt;path;</div><div class='del'>-	}</div><div class='del'>-	args.base = RSTRING_PTR(base);</div><div class='add'>+            base = dirp-&gt;path;</div><div class='add'>+        }</div><div class='add'>+        args.base = RSTRING_PTR(base);</div><div class='ctx'>     }</div><div class='ctx'> #if defined _WIN32 || defined __APPLE__</div><div class='ctx'>     enc = rb_utf8_encoding();</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     return ruby_glob0(RSTRING_PTR(str), fd, args.base, flags, &amp;rb_glob_funcs,</div><div class='del'>-		      (VALUE)&amp;args, enc);</div><div class='add'>+                      (VALUE)&amp;args, enc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_push_glob(VALUE str, VALUE base, int flags) /* '\0' is delimiter */</div><div class='ctx'> {</div><div class='del'>-    long offset = 0;</div><div class='del'>-    long len;</div><div class='ctx'>     VALUE ary;</div><div class='del'>-    int warned = FALSE;</div><div class='add'>+    int status;</div><div class='ctx'> </div><div class='ctx'>     /* can contain null bytes as separators */</div><div class='del'>-    if (!RB_TYPE_P((str), T_STRING)) {</div><div class='del'>-	FilePathValue(str);</div><div class='add'>+    if (!RB_TYPE_P(str, T_STRING)) {</div><div class='add'>+        FilePathValue(str);</div><div class='add'>+    }</div><div class='add'>+    else if (!rb_str_to_cstr(str)) {</div><div class='add'>+        rb_raise(rb_eArgError, "nul-separated glob pattern is deprecated");</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_check_safe_obj(str);</div><div class='del'>-	rb_enc_check(str, rb_enc_from_encoding(rb_usascii_encoding()));</div><div class='add'>+        rb_enc_check(str, rb_enc_from_encoding(rb_usascii_encoding()));</div><div class='ctx'>     }</div><div class='ctx'>     ary = rb_ary_new();</div><div class='ctx'> </div><div class='del'>-    while (offset &lt; (len = RSTRING_LEN(str))) {</div><div class='del'>-	int status;</div><div class='del'>-        long rest = len - offset;</div><div class='del'>-        const char *pbeg = RSTRING_PTR(str), *p = pbeg + offset;</div><div class='del'>-        const char *pend = memchr(p, '\0', rest);</div><div class='del'>-        if (pend) {</div><div class='del'>-            if (!warned) {</div><div class='del'>-                rb_warn("use glob patterns list instead of nul-separated patterns");</div><div class='del'>-                warned = TRUE;</div><div class='del'>-            }</div><div class='del'>-            rest = ++pend - p;</div><div class='del'>-            offset = pend - pbeg;</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            offset = len;</div><div class='del'>-        }</div><div class='del'>-	status = push_glob(ary, rb_str_subseq(str, p-pbeg, rest),</div><div class='del'>-			   base, flags);</div><div class='del'>-	if (status) GLOB_JUMP_TAG(status);</div><div class='del'>-    }</div><div class='add'>+    status = push_glob(ary, str, base, flags);</div><div class='add'>+    if (status) GLOB_JUMP_TAG(status);</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-dir_globs(long argc, const VALUE *argv, VALUE base, int flags)</div><div class='add'>+dir_globs(VALUE args, VALUE base, int flags)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary = rb_ary_new();</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='del'>-    for (i = 0; i &lt; argc; ++i) {</div><div class='del'>-	int status;</div><div class='del'>-	VALUE str = argv[i];</div><div class='del'>-	FilePathValue(str);</div><div class='del'>-	status = push_glob(ary, str, base, flags);</div><div class='del'>-	if (status) GLOB_JUMP_TAG(status);</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(args); ++i) {</div><div class='add'>+        int status;</div><div class='add'>+        VALUE str = RARRAY_AREF(args, i);</div><div class='add'>+        FilePathValue(str);</div><div class='add'>+        status = push_glob(ary, str, base, flags);</div><div class='add'>+        if (status) GLOB_JUMP_TAG(status);</div><div class='ctx'>     }</div><div class='add'>+    RB_GC_GUARD(args);</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-dir_glob_options(VALUE opt, VALUE *base, int *flags)</div><div class='add'>+static VALUE</div><div class='add'>+dir_glob_option_base(VALUE base)</div><div class='ctx'> {</div><div class='del'>-    ID kw[2];</div><div class='del'>-    VALUE args[2];</div><div class='del'>-    kw[0] = rb_intern("base");</div><div class='del'>-    if (flags) kw[1] = rb_intern("flags");</div><div class='del'>-    rb_get_kwargs(opt, kw, 0, flags ? 2 : 1, args);</div><div class='del'>-    if (args[0] == Qundef || NIL_P(args[0])) {</div><div class='del'>-	*base = Qnil;</div><div class='add'>+    if (NIL_OR_UNDEF_P(base)) {</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> #if USE_OPENDIR_AT</div><div class='del'>-    else if (rb_typeddata_is_kind_of(args[0], &amp;dir_data_type)) {</div><div class='del'>-	*base = args[0];</div><div class='add'>+    if (rb_typeddata_is_kind_of(base, &amp;dir_data_type)) {</div><div class='add'>+        return base;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='del'>-    else {</div><div class='del'>-	FilePathValue(args[0]);</div><div class='del'>-	if (!RSTRING_LEN(args[0])) args[0] = Qnil;</div><div class='del'>-	*base = args[0];</div><div class='del'>-    }</div><div class='del'>-    if (flags &amp;&amp; args[1] != Qundef) {</div><div class='del'>-	*flags = NUM2INT(args[1]);</div><div class='del'>-    }</div><div class='add'>+    FilePathValue(base);</div><div class='add'>+    if (!RSTRING_LEN(base)) return Qnil;</div><div class='add'>+    return base;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+dir_glob_option_sort(VALUE sort)</div><div class='add'>+{</div><div class='add'>+    return (rb_bool_expected(sort, "sort", TRUE) ? 0 : FNM_GLOB_NOSORT);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     Dir[ string [, string ...] [, base: path] ] -&gt; array</div><div class='del'>- *</div><div class='del'>- *  Equivalent to calling</div><div class='del'>- *  &lt;code&gt;Dir.glob([&lt;/code&gt;&lt;i&gt;string,...&lt;/i&gt;&lt;code&gt;], 0)&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_aref(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+dir_s_aref(rb_execution_context_t *ec, VALUE obj, VALUE args, VALUE base, VALUE sort)</div><div class='ctx'> {</div><div class='del'>-    VALUE opts, base;</div><div class='del'>-    argc = rb_scan_args(argc, argv, "*:", NULL, &amp;opts);</div><div class='del'>-    dir_glob_options(opts, &amp;base, NULL);</div><div class='del'>-    if (argc == 1) {</div><div class='del'>-	return rb_push_glob(argv[0], base, 0);</div><div class='add'>+    const int flags = dir_glob_option_sort(sort);</div><div class='add'>+    base = dir_glob_option_base(base);</div><div class='add'>+    if (RARRAY_LEN(args) == 1) {</div><div class='add'>+        return rb_push_glob(RARRAY_AREF(args, 0), base, flags);</div><div class='ctx'>     }</div><div class='del'>-    return dir_globs(argc, argv, base, 0);</div><div class='add'>+    return dir_globs(args, base, flags);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     Dir.glob( pattern, [flags], [base: path] )                       -&gt; array</div><div class='del'>- *     Dir.glob( pattern, [flags], [base: path] ) { |filename| block }  -&gt; nil</div><div class='del'>- *</div><div class='del'>- *  Expands +pattern+, which is a pattern string or an Array of pattern</div><div class='del'>- *  strings, and returns an array containing the matching filenames.</div><div class='del'>- *  If a block is given, calls the block once for each matching filename,</div><div class='del'>- *  passing the filename as a parameter to the block.</div><div class='del'>- *</div><div class='del'>- *  The optional +base+ keyword argument specifies the base directory for</div><div class='del'>- *  interpreting relative pathnames instead of the current working directory.</div><div class='del'>- *  As the results are not prefixed with the base directory name in this</div><div class='del'>- *  case, you will need to prepend the base directory name if you want real</div><div class='del'>- *  paths.</div><div class='del'>- *</div><div class='del'>- *  Note that the pattern is not a regexp, it's closer to a shell glob.</div><div class='del'>- *  See File::fnmatch for the meaning of the +flags+ parameter.</div><div class='del'>- *  Case sensitivity depends on your system (File::FNM_CASEFOLD is ignored),</div><div class='del'>- *  as does the order in which the results are returned.</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;*&lt;/code&gt;::</div><div class='del'>- *    Matches any file. Can be restricted by other values in the glob.</div><div class='del'>- *    Equivalent to &lt;code&gt;/ .* /mx&lt;/code&gt; in regexp.</div><div class='del'>- *</div><div class='del'>- *    &lt;code&gt;*&lt;/code&gt;::     Matches all files</div><div class='del'>- *    &lt;code&gt;c*&lt;/code&gt;::    Matches all files beginning with &lt;code&gt;c&lt;/code&gt;</div><div class='del'>- *    &lt;code&gt;*c&lt;/code&gt;::    Matches all files ending with &lt;code&gt;c&lt;/code&gt;</div><div class='del'>- *    &lt;code&gt;\*c\*&lt;/code&gt;:: Match all files that have &lt;code&gt;c&lt;/code&gt; in them</div><div class='del'>- *                         (including at the beginning or end).</div><div class='del'>- *</div><div class='del'>- *    Note, this will not match Unix-like hidden files (dotfiles).  In order</div><div class='del'>- *    to include those in the match results, you must use the</div><div class='del'>- *    File::FNM_DOTMATCH flag or something like &lt;code&gt;"{*,.*}"&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;**&lt;/code&gt;::</div><div class='del'>- *    Matches directories recursively.</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;?&lt;/code&gt;::</div><div class='del'>- *    Matches any one character. Equivalent to &lt;code&gt;/.{1}/&lt;/code&gt; in regexp.</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;[set]&lt;/code&gt;::</div><div class='del'>- *    Matches any one character in +set+.  Behaves exactly like character sets</div><div class='del'>- *    in Regexp, including set negation (&lt;code&gt;[^a-z]&lt;/code&gt;).</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;{p,q}&lt;/code&gt;::</div><div class='del'>- *    Matches either literal &lt;code&gt;p&lt;/code&gt; or literal &lt;code&gt;q&lt;/code&gt;.</div><div class='del'>- *    Equivalent to pattern alternation in regexp.</div><div class='del'>- *</div><div class='del'>- *    Matching literals may be more than one character in length.  More than</div><div class='del'>- *    two literals may be specified.</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt; \\ &lt;/code&gt;::</div><div class='del'>- *    Escapes the next metacharacter.</div><div class='del'>- *</div><div class='del'>- *    Note that this means you cannot use backslash on windows as part of a</div><div class='del'>- *    glob, i.e.  &lt;code&gt;Dir["c:\\foo*"]&lt;/code&gt; will not work, use</div><div class='del'>- *    &lt;code&gt;Dir["c:/foo*"]&lt;/code&gt; instead.</div><div class='del'>- *</div><div class='del'>- *  Examples:</div><div class='del'>- *</div><div class='del'>- *     Dir["config.?"]                     #=&gt; ["config.h"]</div><div class='del'>- *     Dir.glob("config.?")                #=&gt; ["config.h"]</div><div class='del'>- *     Dir.glob("*.[a-z][a-z]")            #=&gt; ["main.rb"]</div><div class='del'>- *     Dir.glob("*.[^r]*")                 #=&gt; ["config.h"]</div><div class='del'>- *     Dir.glob("*.{rb,h}")                #=&gt; ["main.rb", "config.h"]</div><div class='del'>- *     Dir.glob("*")                       #=&gt; ["config.h", "main.rb"]</div><div class='del'>- *     Dir.glob("*", File::FNM_DOTMATCH)   #=&gt; [".", "..", "config.h", "main.rb"]</div><div class='del'>- *     Dir.glob(["*.rb", "*.h"])           #=&gt; ["main.rb", "config.h"]</div><div class='del'>- *</div><div class='del'>- *     rbfiles = File.join("**", "*.rb")</div><div class='del'>- *     Dir.glob(rbfiles)                   #=&gt; ["main.rb",</div><div class='del'>- *                                         #    "lib/song.rb",</div><div class='del'>- *                                         #    "lib/song/karaoke.rb"]</div><div class='del'>- *</div><div class='del'>- *     Dir.glob(rbfiles, base: "lib")      #=&gt; ["song.rb",</div><div class='del'>- *                                         #    "song/karaoke.rb"]</div><div class='del'>- *</div><div class='del'>- *     libdirs = File.join("**", "lib")</div><div class='del'>- *     Dir.glob(libdirs)                   #=&gt; ["lib"]</div><div class='del'>- *</div><div class='del'>- *     librbfiles = File.join("**", "lib", "**", "*.rb")</div><div class='del'>- *     Dir.glob(librbfiles)                #=&gt; ["lib/song.rb",</div><div class='del'>- *                                         #    "lib/song/karaoke.rb"]</div><div class='del'>- *</div><div class='del'>- *     librbfiles = File.join("**", "lib", "*.rb")</div><div class='del'>- *     Dir.glob(librbfiles)                #=&gt; ["lib/song.rb"]</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_glob(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+dir_s_glob(rb_execution_context_t *ec, VALUE obj, VALUE str, VALUE rflags, VALUE base, VALUE sort)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, rflags, ary, opts, base;</div><div class='del'>-    int flags;</div><div class='del'>-</div><div class='del'>-    argc = rb_scan_args(argc, argv, "11:", &amp;str, &amp;rflags, &amp;opts);</div><div class='del'>-    if (argc == 2)</div><div class='del'>-	flags = NUM2INT(rflags);</div><div class='del'>-    else</div><div class='del'>-	flags = 0;</div><div class='del'>-    dir_glob_options(opts, &amp;base, &amp;flags);</div><div class='del'>-</div><div class='del'>-    ary = rb_check_array_type(str);</div><div class='add'>+    VALUE ary = rb_check_array_type(str);</div><div class='add'>+    const int flags = (NUM2INT(rflags) | dir_glob_option_sort(sort)) &amp; ~FNM_CASEFOLD;</div><div class='add'>+    base = dir_glob_option_base(base);</div><div class='ctx'>     if (NIL_P(ary)) {</div><div class='del'>-	ary = rb_push_glob(str, base, flags);</div><div class='add'>+        ary = rb_push_glob(str, base, flags);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE v = ary;</div><div class='del'>-	ary = dir_globs(RARRAY_LEN(v), RARRAY_CONST_PTR(v), base, flags);</div><div class='del'>-	RB_GC_GUARD(v);</div><div class='add'>+        ary = dir_globs(ary, base, flags);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	rb_ary_each(ary);</div><div class='del'>-	return Qnil;</div><div class='add'>+        rb_ary_each(ary);</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -2886,7 +2985,7 @@ dir_s_glob(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> static VALUE</div><div class='ctx'> dir_open_dir(int argc, VALUE *argv)</div><div class='ctx'> {</div><div class='del'>-    VALUE dir = rb_funcallv(rb_cDir, rb_intern("open"), argc, argv);</div><div class='add'>+    VALUE dir = rb_funcallv_kw(rb_cDir, rb_intern("open"), argc, argv, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> </div><div class='ctx'>     rb_check_typeddata(dir, &amp;dir_data_type);</div><div class='ctx'>     return dir;</div><div class='hunk'>@@ -2940,8 +3039,8 @@ dir_collect(VALUE dir)</div><div class='ctx'>  *     Dir.entries( dirname, encoding: enc ) -&gt; array</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns an array containing all of the filenames in the given</div><div class='del'>- *  directory. Will raise a &lt;code&gt;SystemCallError&lt;/code&gt; if the named</div><div class='del'>- *  directory doesn't exist.</div><div class='add'>+ *  directory. Will raise a SystemCallError if the named directory</div><div class='add'>+ *  doesn't exist.</div><div class='ctx'>  *</div><div class='ctx'>  *  The optional &lt;i&gt;encoding&lt;/i&gt; keyword argument specifies the encoding of the</div><div class='ctx'>  *  directory. If not specified, the filesystem encoding is used.</div><div class='hunk'>@@ -2998,7 +3097,7 @@ dir_s_each_child(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     dir.each_child {| filename | block }  -&gt; nil</div><div class='add'>+ *     dir.each_child {| filename | block }  -&gt; dir</div><div class='ctx'>  *     dir.each_child                        -&gt; an_enumerator</div><div class='ctx'>  *</div><div class='ctx'>  *  Calls the block once for each entry except for "." and ".." in</div><div class='hunk'>@@ -3048,8 +3147,8 @@ dir_collect_children(VALUE dir)</div><div class='ctx'>  *     Dir.children( dirname, encoding: enc ) -&gt; array</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns an array containing all of the filenames except for "."</div><div class='del'>- *  and ".." in the given directory. Will raise a</div><div class='del'>- *  &lt;code&gt;SystemCallError&lt;/code&gt; if the named directory doesn't exist.</div><div class='add'>+ *  and ".." in the given directory. Will raise a SystemCallError if</div><div class='add'>+ *  the named directory doesn't exist.</div><div class='ctx'>  *</div><div class='ctx'>  *  The optional &lt;i&gt;encoding&lt;/i&gt; keyword argument specifies the encoding of the</div><div class='ctx'>  *  directory. If not specified, the filesystem encoding is used.</div><div class='hunk'>@@ -3075,116 +3174,24 @@ fnmatch_brace(const char *pattern, VALUE val, void *enc)</div><div class='ctx'>     rb_encoding *enc_path = rb_enc_get(path);</div><div class='ctx'> </div><div class='ctx'>     if (enc_pattern != enc_path) {</div><div class='del'>-	if (!rb_enc_asciicompat(enc_pattern))</div><div class='del'>-	    return FNM_NOMATCH;</div><div class='del'>-	if (!rb_enc_asciicompat(enc_path))</div><div class='del'>-	    return FNM_NOMATCH;</div><div class='del'>-	if (!rb_enc_str_asciionly_p(path)) {</div><div class='del'>-	    int cr = ENC_CODERANGE_7BIT;</div><div class='del'>-	    long len = strlen(pattern);</div><div class='del'>-	    if (rb_str_coderange_scan_restartable(pattern, pattern + len,</div><div class='del'>-						  enc_pattern, &amp;cr) != len)</div><div class='del'>-		return FNM_NOMATCH;</div><div class='del'>-	    if (cr != ENC_CODERANGE_7BIT)</div><div class='del'>-		return FNM_NOMATCH;</div><div class='del'>-	}</div><div class='add'>+        if (!rb_enc_asciicompat(enc_pattern))</div><div class='add'>+            return FNM_NOMATCH;</div><div class='add'>+        if (!rb_enc_asciicompat(enc_path))</div><div class='add'>+            return FNM_NOMATCH;</div><div class='add'>+        if (!rb_enc_str_asciionly_p(path)) {</div><div class='add'>+            int cr = ENC_CODERANGE_7BIT;</div><div class='add'>+            long len = strlen(pattern);</div><div class='add'>+            if (rb_str_coderange_scan_restartable(pattern, pattern + len,</div><div class='add'>+                                                  enc_pattern, &amp;cr) != len)</div><div class='add'>+                return FNM_NOMATCH;</div><div class='add'>+            if (cr != ENC_CODERANGE_7BIT)</div><div class='add'>+                return FNM_NOMATCH;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return (fnmatch(pattern, enc, RSTRING_PTR(path), arg-&gt;flags) == 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     File.fnmatch( pattern, path, [flags] ) -&gt; (true or false)</div><div class='del'>- *     File.fnmatch?( pattern, path, [flags] ) -&gt; (true or false)</div><div class='del'>- *</div><div class='del'>- *  Returns true if +path+ matches against +pattern+.  The pattern is not a</div><div class='del'>- *  regular expression; instead it follows rules similar to shell filename</div><div class='del'>- *  globbing.  It may contain the following metacharacters:</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;*&lt;/code&gt;::</div><div class='del'>- *    Matches any file. Can be restricted by other values in the glob.</div><div class='del'>- *    Equivalent to &lt;code&gt;/ .* /x&lt;/code&gt; in regexp.</div><div class='del'>- *</div><div class='del'>- *    &lt;code&gt;*&lt;/code&gt;::    Matches all files regular files</div><div class='del'>- *    &lt;code&gt;c*&lt;/code&gt;::   Matches all files beginning with &lt;code&gt;c&lt;/code&gt;</div><div class='del'>- *    &lt;code&gt;*c&lt;/code&gt;::   Matches all files ending with &lt;code&gt;c&lt;/code&gt;</div><div class='del'>- *    &lt;code&gt;\*c*&lt;/code&gt;:: Matches all files that have &lt;code&gt;c&lt;/code&gt; in them</div><div class='del'>- *                        (including at the beginning or end).</div><div class='del'>- *</div><div class='del'>- *    To match hidden files (that start with a &lt;code&gt;.&lt;/code&gt; set the</div><div class='del'>- *    File::FNM_DOTMATCH flag.</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;**&lt;/code&gt;::</div><div class='del'>- *    Matches directories recursively or files expansively.</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;?&lt;/code&gt;::</div><div class='del'>- *    Matches any one character. Equivalent to &lt;code&gt;/.{1}/&lt;/code&gt; in regexp.</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;[set]&lt;/code&gt;::</div><div class='del'>- *    Matches any one character in +set+.  Behaves exactly like character sets</div><div class='del'>- *    in Regexp, including set negation (&lt;code&gt;[^a-z]&lt;/code&gt;).</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt; \ &lt;/code&gt;::</div><div class='del'>- *    Escapes the next metacharacter.</div><div class='del'>- *</div><div class='del'>- *  &lt;code&gt;{a,b}&lt;/code&gt;::</div><div class='del'>- *    Matches pattern a and pattern b if File::FNM_EXTGLOB flag is enabled.</div><div class='del'>- *    Behaves like a Regexp union (&lt;code&gt;(?:a|b)&lt;/code&gt;).</div><div class='del'>- *</div><div class='del'>- *  +flags+ is a bitwise OR of the &lt;code&gt;FNM_XXX&lt;/code&gt; constants. The same</div><div class='del'>- *  glob pattern and flags are used by Dir::glob.</div><div class='del'>- *</div><div class='del'>- *  Examples:</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('cat',       'cat')        #=&gt; true  # match entire string</div><div class='del'>- *     File.fnmatch('cat',       'category')   #=&gt; false # only match partial string</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('c{at,ub}s', 'cats')                    #=&gt; false # { } isn't supported by default</div><div class='del'>- *     File.fnmatch('c{at,ub}s', 'cats', File::FNM_EXTGLOB) #=&gt; true  # { } is supported on FNM_EXTGLOB</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('c?t',     'cat')          #=&gt; true  # '?' match only 1 character</div><div class='del'>- *     File.fnmatch('c??t',    'cat')          #=&gt; false # ditto</div><div class='del'>- *     File.fnmatch('c*',      'cats')         #=&gt; true  # '*' match 0 or more characters</div><div class='del'>- *     File.fnmatch('c*t',     'c/a/b/t')      #=&gt; true  # ditto</div><div class='del'>- *     File.fnmatch('ca[a-z]', 'cat')          #=&gt; true  # inclusive bracket expression</div><div class='del'>- *     File.fnmatch('ca[^t]',  'cat')          #=&gt; false # exclusive bracket expression ('^' or '!')</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('cat', 'CAT')                     #=&gt; false # case sensitive</div><div class='del'>- *     File.fnmatch('cat', 'CAT', File::FNM_CASEFOLD) #=&gt; true  # case insensitive</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('?',   '/', File::FNM_PATHNAME)  #=&gt; false # wildcard doesn't match '/' on FNM_PATHNAME</div><div class='del'>- *     File.fnmatch('*',   '/', File::FNM_PATHNAME)  #=&gt; false # ditto</div><div class='del'>- *     File.fnmatch('[/]', '/', File::FNM_PATHNAME)  #=&gt; false # ditto</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('\?',   '?')                       #=&gt; true  # escaped wildcard becomes ordinary</div><div class='del'>- *     File.fnmatch('\a',   'a')                       #=&gt; true  # escaped ordinary remains ordinary</div><div class='del'>- *     File.fnmatch('\a',   '\a', File::FNM_NOESCAPE)  #=&gt; true  # FNM_NOESCAPE makes '\' ordinary</div><div class='del'>- *     File.fnmatch('[\?]', '?')                       #=&gt; true  # can escape inside bracket expression</div><div class='del'>- *</div><div class='del'>- *     File.fnmatch('*',   '.profile')                      #=&gt; false # wildcard doesn't match leading</div><div class='del'>- *     File.fnmatch('*',   '.profile', File::FNM_DOTMATCH)  #=&gt; true  # period by default.</div><div class='del'>- *     File.fnmatch('.*',  '.profile')                      #=&gt; true</div><div class='del'>- *</div><div class='del'>- *     rbfiles = '**' '/' '*.rb' # you don't have to do like this. just write in single string.</div><div class='del'>- *     File.fnmatch(rbfiles, 'main.rb')                    #=&gt; false</div><div class='del'>- *     File.fnmatch(rbfiles, './main.rb')                  #=&gt; false</div><div class='del'>- *     File.fnmatch(rbfiles, 'lib/song.rb')                #=&gt; true</div><div class='del'>- *     File.fnmatch('**.rb', 'main.rb')                    #=&gt; true</div><div class='del'>- *     File.fnmatch('**.rb', './main.rb')                  #=&gt; false</div><div class='del'>- *     File.fnmatch('**.rb', 'lib/song.rb')                #=&gt; true</div><div class='del'>- *     File.fnmatch('*',           'dave/.profile')                      #=&gt; true</div><div class='del'>- *</div><div class='del'>- *     pattern = '*' '/' '*'</div><div class='del'>- *     File.fnmatch(pattern, 'dave/.profile', File::FNM_PATHNAME)  #=&gt; false</div><div class='del'>- *     File.fnmatch(pattern, 'dave/.profile', File::FNM_PATHNAME | File::FNM_DOTMATCH) #=&gt; true</div><div class='del'>- *</div><div class='del'>- *     pattern = '**' '/' 'foo'</div><div class='del'>- *     File.fnmatch(pattern, 'a/b/c/foo', File::FNM_PATHNAME)     #=&gt; true</div><div class='del'>- *     File.fnmatch(pattern, '/a/b/c/foo', File::FNM_PATHNAME)    #=&gt; true</div><div class='del'>- *     File.fnmatch(pattern, 'c:/a/b/c/foo', File::FNM_PATHNAME)  #=&gt; true</div><div class='del'>- *     File.fnmatch(pattern, 'a/.b/c/foo', File::FNM_PATHNAME)    #=&gt; false</div><div class='del'>- *     File.fnmatch(pattern, 'a/.b/c/foo', File::FNM_PATHNAME | File::FNM_DOTMATCH) #=&gt; true</div><div class='del'>- */</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> file_s_fnmatch(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -3193,27 +3200,27 @@ file_s_fnmatch(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     int flags;</div><div class='ctx'> </div><div class='ctx'>     if (rb_scan_args(argc, argv, "21", &amp;pattern, &amp;path, &amp;rflags) == 3)</div><div class='del'>-	flags = NUM2INT(rflags);</div><div class='add'>+        flags = NUM2INT(rflags);</div><div class='ctx'>     else</div><div class='del'>-	flags = 0;</div><div class='add'>+        flags = 0;</div><div class='ctx'> </div><div class='del'>-    StringValue(pattern);</div><div class='add'>+    StringValueCStr(pattern);</div><div class='ctx'>     FilePathStringValue(path);</div><div class='ctx'> </div><div class='ctx'>     if (flags &amp; FNM_EXTGLOB) {</div><div class='del'>-	struct brace_args args;</div><div class='add'>+        struct brace_args args;</div><div class='ctx'> </div><div class='del'>-	args.value = path;</div><div class='del'>-	args.flags = flags;</div><div class='del'>-	if (ruby_brace_expand(RSTRING_PTR(pattern), flags, fnmatch_brace,</div><div class='del'>-			      (VALUE)&amp;args, rb_enc_get(pattern), pattern) &gt; 0)</div><div class='del'>-	    return Qtrue;</div><div class='add'>+        args.value = path;</div><div class='add'>+        args.flags = flags;</div><div class='add'>+        if (ruby_brace_expand(RSTRING_PTR(pattern), flags, fnmatch_brace,</div><div class='add'>+                              (VALUE)&amp;args, rb_enc_get(pattern), pattern) &gt; 0)</div><div class='add'>+            return Qtrue;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_encoding *enc = rb_enc_compatible(pattern, path);</div><div class='del'>-	if (!enc) return Qfalse;</div><div class='del'>-	if (fnmatch(RSTRING_PTR(pattern), enc, RSTRING_PTR(path), flags) == 0)</div><div class='del'>-	    return Qtrue;</div><div class='add'>+        rb_encoding *enc = rb_enc_compatible(pattern, path);</div><div class='add'>+        if (!enc) return Qfalse;</div><div class='add'>+        if (fnmatch(RSTRING_PTR(pattern), enc, RSTRING_PTR(path), flags) == 0)</div><div class='add'>+            return Qtrue;</div><div class='ctx'>     }</div><div class='ctx'>     RB_GC_GUARD(pattern);</div><div class='ctx'> </div><div class='hunk'>@@ -3237,12 +3244,12 @@ dir_s_home(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     rb_check_arity(argc, 0, 1);</div><div class='ctx'>     user = (argc &gt; 0) ? argv[0] : Qnil;</div><div class='ctx'>     if (!NIL_P(user)) {</div><div class='del'>-	SafeStringValue(user);</div><div class='del'>-	rb_must_asciicompat(user);</div><div class='del'>-	u = StringValueCStr(user);</div><div class='del'>-	if (*u) {</div><div class='del'>-	    return rb_home_dir_of(user, rb_str_new(0, 0));</div><div class='del'>-	}</div><div class='add'>+        SafeStringValue(user);</div><div class='add'>+        rb_must_asciicompat(user);</div><div class='add'>+        u = StringValueCStr(user);</div><div class='add'>+        if (*u) {</div><div class='add'>+            return rb_home_dir_of(user, rb_str_new(0, 0));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return rb_default_home_dir(rb_str_new(0, 0));</div><div class='ctx'> </div><div class='hunk'>@@ -3263,19 +3270,6 @@ rb_file_directory_p(void)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   Dir.exists?(file_name)  -&gt;  true or false</div><div class='del'>- *</div><div class='del'>- * Deprecated method. Don't use.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-rb_dir_exists_p(VALUE obj, VALUE fname)</div><div class='del'>-{</div><div class='del'>-    rb_warning("Dir.exists? is a deprecated name, use Dir.exist? instead");</div><div class='del'>-    return rb_file_directory_p(obj, fname);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static void *</div><div class='ctx'> nogvl_dir_empty_p(void *ptr)</div><div class='ctx'> {</div><div class='hunk'>@@ -3285,24 +3279,24 @@ nogvl_dir_empty_p(void *ptr)</div><div class='ctx'>     VALUE result = Qtrue;</div><div class='ctx'> </div><div class='ctx'>     if (!dir) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	switch (gc_for_fd_with_gvl(e)) {</div><div class='del'>-	  default:</div><div class='del'>-	    dir = opendir(path);</div><div class='del'>-	    if (dir) break;</div><div class='del'>-	    e = errno;</div><div class='del'>-	    /* fall through */</div><div class='del'>-	  case 0:</div><div class='del'>-	    if (e == ENOTDIR) return (void *)Qfalse;</div><div class='del'>-	    errno = e; /* for rb_sys_fail_path */</div><div class='del'>-	    return (void *)Qundef;</div><div class='del'>-	}</div><div class='add'>+        int e = errno;</div><div class='add'>+        switch (gc_for_fd_with_gvl(e)) {</div><div class='add'>+          default:</div><div class='add'>+            dir = opendir(path);</div><div class='add'>+            if (dir) break;</div><div class='add'>+            e = errno;</div><div class='add'>+            /* fall through */</div><div class='add'>+          case 0:</div><div class='add'>+            if (e == ENOTDIR) return (void *)Qfalse;</div><div class='add'>+            errno = e; /* for rb_sys_fail_path */</div><div class='add'>+            return (void *)Qundef;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     while ((dp = READDIR(dir, NULL)) != NULL) {</div><div class='del'>-	if (!to_be_skipped(dp)) {</div><div class='del'>-	    result = Qfalse;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        if (!to_be_skipped(dp)) {</div><div class='add'>+            result = Qfalse;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     closedir(dir);</div><div class='ctx'>     return (void *)result;</div><div class='hunk'>@@ -3330,42 +3324,31 @@ rb_dir_s_empty_p(VALUE obj, VALUE dirname)</div><div class='ctx'> </div><div class='ctx'> #if defined HAVE_GETATTRLIST &amp;&amp; defined ATTR_DIR_ENTRYCOUNT</div><div class='ctx'>     {</div><div class='del'>-	u_int32_t attrbuf[SIZEUP32(fsobj_tag_t)];</div><div class='del'>-	struct attrlist al = {ATTR_BIT_MAP_COUNT, 0, ATTR_CMN_OBJTAG,};</div><div class='del'>-	if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), 0) != 0)</div><div class='del'>-	    rb_sys_fail_path(orig);</div><div class='del'>-	if (*(const fsobj_tag_t *)(attrbuf+1) == VT_HFS) {</div><div class='del'>-	    al.commonattr = 0;</div><div class='del'>-	    al.dirattr = ATTR_DIR_ENTRYCOUNT;</div><div class='del'>-	    if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), 0) == 0) {</div><div class='del'>-		if (attrbuf[0] &gt;= 2 * sizeof(u_int32_t))</div><div class='del'>-		    return attrbuf[1] ? Qfalse : Qtrue;</div><div class='del'>-		if (false_on_notdir) return Qfalse;</div><div class='del'>-	    }</div><div class='del'>-	    rb_sys_fail_path(orig);</div><div class='del'>-	}</div><div class='add'>+        u_int32_t attrbuf[SIZEUP32(fsobj_tag_t)];</div><div class='add'>+        struct attrlist al = {ATTR_BIT_MAP_COUNT, 0, ATTR_CMN_OBJTAG,};</div><div class='add'>+        if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), 0) != 0)</div><div class='add'>+            rb_sys_fail_path(orig);</div><div class='add'>+        if (*(const fsobj_tag_t *)(attrbuf+1) == VT_HFS) {</div><div class='add'>+            al.commonattr = 0;</div><div class='add'>+            al.dirattr = ATTR_DIR_ENTRYCOUNT;</div><div class='add'>+            if (getattrlist(path, &amp;al, attrbuf, sizeof(attrbuf), 0) == 0) {</div><div class='add'>+                if (attrbuf[0] &gt;= 2 * sizeof(u_int32_t))</div><div class='add'>+                    return RBOOL(attrbuf[1] == 0);</div><div class='add'>+                if (false_on_notdir) return Qfalse;</div><div class='add'>+            }</div><div class='add'>+            rb_sys_fail_path(orig);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     result = (VALUE)rb_thread_call_without_gvl(nogvl_dir_empty_p, (void *)path,</div><div class='del'>-					    RUBY_UBF_IO, 0);</div><div class='del'>-    if (result == Qundef) {</div><div class='del'>-	rb_sys_fail_path(orig);</div><div class='add'>+                                            RUBY_UBF_IO, 0);</div><div class='add'>+    if (UNDEF_P(result)) {</div><div class='add'>+        rb_sys_fail_path(orig);</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  Objects of class &lt;code&gt;Dir&lt;/code&gt; are directory streams representing</div><div class='del'>- *  directories in the underlying file system. They provide a variety of</div><div class='del'>- *  ways to list directories and their contents. See also</div><div class='del'>- *  &lt;code&gt;File&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- *  The directory used in these examples contains the two regular files</div><div class='del'>- *  (&lt;code&gt;config.h&lt;/code&gt; and &lt;code&gt;main.rb&lt;/code&gt;), the parent</div><div class='del'>- *  directory (&lt;code&gt;..&lt;/code&gt;), and the directory itself</div><div class='del'>- *  (&lt;code&gt;.&lt;/code&gt;).</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> Init_Dir(void)</div><div class='ctx'> {</div><div class='hunk'>@@ -3374,13 +3357,11 @@ Init_Dir(void)</div><div class='ctx'>     rb_include_module(rb_cDir, rb_mEnumerable);</div><div class='ctx'> </div><div class='ctx'>     rb_define_alloc_func(rb_cDir, dir_s_alloc);</div><div class='del'>-    rb_define_singleton_method(rb_cDir, "open", dir_s_open, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cDir, "foreach", dir_foreach, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cDir, "entries", dir_entries, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cDir, "each_child", dir_s_each_child, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cDir, "children", dir_s_children, -1);</div><div class='ctx'> </div><div class='del'>-    rb_define_method(rb_cDir,"initialize", dir_initialize, -1);</div><div class='ctx'>     rb_define_method(rb_cDir,"fileno", dir_fileno, 0);</div><div class='ctx'>     rb_define_method(rb_cDir,"path", dir_path, 0);</div><div class='ctx'>     rb_define_method(rb_cDir,"to_path", dir_path, 0);</div><div class='hunk'>@@ -3406,10 +3387,7 @@ Init_Dir(void)</div><div class='ctx'>     rb_define_singleton_method(rb_cDir,"unlink", dir_s_rmdir, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cDir,"home", dir_s_home, -1);</div><div class='ctx'> </div><div class='del'>-    rb_define_singleton_method(rb_cDir,"glob", dir_s_glob, -1);</div><div class='del'>-    rb_define_singleton_method(rb_cDir,"[]", dir_s_aref, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cDir,"exist?", rb_file_directory_p, 1);</div><div class='del'>-    rb_define_singleton_method(rb_cDir,"exists?", rb_dir_exists_p, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cDir,"empty?", rb_dir_s_empty_p, 1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(rb_cFile,"fnmatch", file_s_fnmatch, -1);</div><div class='hunk'>@@ -3462,3 +3440,5 @@ Init_Dir(void)</div><div class='ctx'>      */</div><div class='ctx'>     rb_file_const("FNM_SHORTNAME", INT2FIX(FNM_SHORTNAME));</div><div class='ctx'> }</div><div class='add'>+</div><div class='add'>+#include "dir.rbinc"</div><div class='head'>diff --git a/dir.rb b/dir.rb<br/>new file mode 100644<br/>index 0000000000..2e426b0881<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/dir.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>dir.rb</a></div><div class='hunk'>@@ -0,0 +1,314 @@</div><div class='add'>+# Objects of class Dir are directory streams representing</div><div class='add'>+# directories in the underlying file system. They provide a variety</div><div class='add'>+# of ways to list directories and their contents. See also File.</div><div class='add'>+#</div><div class='add'>+# The directory used in these examples contains the two regular files</div><div class='add'>+# (&lt;code&gt;config.h&lt;/code&gt; and &lt;code&gt;main.rb&lt;/code&gt;), the parent</div><div class='add'>+# directory (&lt;code&gt;..&lt;/code&gt;), and the directory itself</div><div class='add'>+# (&lt;code&gt;.&lt;/code&gt;).</div><div class='add'>+#</div><div class='add'>+# == What's Here</div><div class='add'>+#</div><div class='add'>+# First, what's elsewhere. \Class \Dir:</div><div class='add'>+#</div><div class='add'>+# - Inherits from {class Object}[rdoc-ref:Object@What-27s+Here].</div><div class='add'>+# - Includes {module Enumerable}[rdoc-ref:Enumerable@What-27s+Here],</div><div class='add'>+#   which provides dozens of additional methods.</div><div class='add'>+#</div><div class='add'>+# Here, class \Dir provides methods that are useful for:</div><div class='add'>+#</div><div class='add'>+# - {Reading}[rdoc-ref:Dir@Reading]</div><div class='add'>+# - {Setting}[rdoc-ref:Dir@Setting]</div><div class='add'>+# - {Querying}[rdoc-ref:Dir@Querying]</div><div class='add'>+# - {Iterating}[rdoc-ref:Dir@Iterating]</div><div class='add'>+# - {Other}[rdoc-ref:Dir@Other]</div><div class='add'>+#</div><div class='add'>+# === Reading</div><div class='add'>+#</div><div class='add'>+# - #close: Closes the directory stream for +self+.</div><div class='add'>+# - #pos=: Sets the position in the directory stream for +self+.</div><div class='add'>+# - #read: Reads and returns the next entry in the directory stream for +self+.</div><div class='add'>+# - #rewind: Sets the position in the directory stream for +self+ to the first entry.</div><div class='add'>+# - #seek: Sets the position in the directory stream for +self+</div><div class='add'>+#   the entry at the given offset.</div><div class='add'>+#</div><div class='add'>+# === Setting</div><div class='add'>+#</div><div class='add'>+# - ::chdir: Changes the working directory of the current process</div><div class='add'>+#   to the given directory.</div><div class='add'>+# - ::chroot: Changes the file-system root for the current process</div><div class='add'>+#   to the given directory.</div><div class='add'>+#</div><div class='add'>+# === Querying</div><div class='add'>+#</div><div class='add'>+# - ::[]: Same as ::glob without the ability to pass flags.</div><div class='add'>+# - ::children: Returns an array of names of the children</div><div class='add'>+#   (both files and directories) of the given directory,</div><div class='add'>+#   but not including &lt;tt&gt;.&lt;/tt&gt; or &lt;tt&gt;..&lt;/tt&gt;.</div><div class='add'>+# - ::empty?: Returns whether the given path is an empty directory.</div><div class='add'>+# - ::entries: Returns an array of names of the children</div><div class='add'>+#   (both files and directories) of the given directory,</div><div class='add'>+#   including &lt;tt&gt;.&lt;/tt&gt; and &lt;tt&gt;..&lt;/tt&gt;.</div><div class='add'>+# - ::exist?: Returns whether the given path is a directory.</div><div class='add'>+# - ::getwd (aliased as #pwd): Returns the path to the current working directory.</div><div class='add'>+# - ::glob: Returns an array of file paths matching the given pattern and flags.</div><div class='add'>+# - ::home: Returns the home directory path for a given user or the current user.</div><div class='add'>+# - #children: Returns an array of names of the children</div><div class='add'>+#   (both files and directories) of +self+,</div><div class='add'>+#   but not including &lt;tt&gt;.&lt;/tt&gt; or &lt;tt&gt;..&lt;/tt&gt;.</div><div class='add'>+# - #fileno: Returns the integer file descriptor for +self+.</div><div class='add'>+# - #path (aliased as #to_path): Returns the path used to create +self+.</div><div class='add'>+# - #tell (aliased as #pos): Returns the integer position</div><div class='add'>+#   in the directory stream for +self+.</div><div class='add'>+#</div><div class='add'>+# === Iterating</div><div class='add'>+#</div><div class='add'>+# - ::each_child: Calls the given block with each entry in the given directory,</div><div class='add'>+#   but not including &lt;tt&gt;.&lt;/tt&gt; or &lt;tt&gt;..&lt;/tt&gt;.</div><div class='add'>+# - ::foreach: Calls the given block with each entry in the given directory,</div><div class='add'>+#   including &lt;tt&gt;.&lt;/tt&gt; and &lt;tt&gt;..&lt;/tt&gt;.</div><div class='add'>+# - #each: Calls the given block with each entry in +self+,</div><div class='add'>+#   including &lt;tt&gt;.&lt;/tt&gt; and &lt;tt&gt;..&lt;/tt&gt;.</div><div class='add'>+# - #each_child: Calls the given block with each entry in +self+,</div><div class='add'>+#   but not including &lt;tt&gt;.&lt;/tt&gt; or &lt;tt&gt;..&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# === Other</div><div class='add'>+#</div><div class='add'>+# - ::mkdir: Creates a directory at the given path, with optional permissions.</div><div class='add'>+# - ::new: Returns a new \Dir for the given path, with optional encoding.</div><div class='add'>+# - ::open: Same as ::new, but if a block is given, yields the \Dir to the block,</div><div class='add'>+#   closing it upon block exit.</div><div class='add'>+# - ::unlink (aliased as ::delete and ::rmdir): Removes the given directory.</div><div class='add'>+# - #inspect: Returns a string description of +self+.</div><div class='add'>+class Dir</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    Dir.open( string ) -&gt; aDir</div><div class='add'>+  #    Dir.open( string, encoding: enc ) -&gt; aDir</div><div class='add'>+  #    Dir.open( string ) {| aDir | block } -&gt; anObject</div><div class='add'>+  #    Dir.open( string, encoding: enc ) {| aDir | block } -&gt; anObject</div><div class='add'>+  #</div><div class='add'>+  # The optional &lt;i&gt;encoding&lt;/i&gt; keyword argument specifies the encoding of the directory.</div><div class='add'>+  # If not specified, the filesystem encoding is used.</div><div class='add'>+  #</div><div class='add'>+  # With no block, &lt;code&gt;open&lt;/code&gt; is a synonym for Dir::new. If a</div><div class='add'>+  # block is present, it is passed &lt;i&gt;aDir&lt;/i&gt; as a parameter. The</div><div class='add'>+  # directory is closed at the end of the block, and Dir::open returns</div><div class='add'>+  # the value of the block.</div><div class='add'>+  def self.open(name, encoding: nil, &amp;block)</div><div class='add'>+    dir = Primitive.dir_s_open(name, encoding)</div><div class='add'>+    if block</div><div class='add'>+      begin</div><div class='add'>+        yield dir</div><div class='add'>+      ensure</div><div class='add'>+        Primitive.dir_s_close(dir)</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      dir</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    Dir.new( string ) -&gt; aDir</div><div class='add'>+  #    Dir.new( string, encoding: enc ) -&gt; aDir</div><div class='add'>+  #</div><div class='add'>+  # Returns a new directory object for the named directory.</div><div class='add'>+  #</div><div class='add'>+  # The optional &lt;i&gt;encoding&lt;/i&gt; keyword argument specifies the encoding of the directory.</div><div class='add'>+  # If not specified, the filesystem encoding is used.</div><div class='add'>+  def initialize(name, encoding: nil)</div><div class='add'>+    Primitive.dir_initialize(name, encoding)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    Dir[ string [, string ...] [, base: path] [, sort: true] ] -&gt; array</div><div class='add'>+  #</div><div class='add'>+  # Equivalent to calling</div><div class='add'>+  # &lt;code&gt;Dir.glob([&lt;/code&gt;&lt;i&gt;string,...&lt;/i&gt;&lt;code&gt;], 0)&lt;/code&gt;.</div><div class='add'>+  def self.[](*args, base: nil, sort: true)</div><div class='add'>+    Primitive.dir_s_aref(args, base, sort)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    Dir.glob( pattern, [flags], [base: path] [, sort: true] )                       -&gt; array</div><div class='add'>+  #    Dir.glob( pattern, [flags], [base: path] [, sort: true] ) { |filename| block }  -&gt; nil</div><div class='add'>+  #</div><div class='add'>+  # Expands +pattern+, which is a pattern string or an Array of pattern</div><div class='add'>+  # strings, and returns an array containing the matching filenames.</div><div class='add'>+  # If a block is given, calls the block once for each matching filename,</div><div class='add'>+  # passing the filename as a parameter to the block.</div><div class='add'>+  #</div><div class='add'>+  # The optional +base+ keyword argument specifies the base directory for</div><div class='add'>+  # interpreting relative pathnames instead of the current working directory.</div><div class='add'>+  # As the results are not prefixed with the base directory name in this</div><div class='add'>+  # case, you will need to prepend the base directory name if you want real</div><div class='add'>+  # paths.</div><div class='add'>+  #</div><div class='add'>+  # The results which matched single wildcard or character set are sorted in</div><div class='add'>+  # binary ascending order, unless +false+ is given as the optional +sort+</div><div class='add'>+  # keyword argument.  The order of an Array of pattern strings and braces</div><div class='add'>+  # are preserved.</div><div class='add'>+  #</div><div class='add'>+  # Note that the pattern is not a regexp, it's closer to a shell glob.</div><div class='add'>+  # See File::fnmatch for the meaning of the +flags+ parameter.</div><div class='add'>+  # Case sensitivity depends on your system (+File::FNM_CASEFOLD+ is ignored).</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;*&lt;/code&gt;::</div><div class='add'>+  #   Matches any file. Can be restricted by other values in the glob.</div><div class='add'>+  #   Equivalent to &lt;code&gt;/.*/mx&lt;/code&gt; in regexp.</div><div class='add'>+  #</div><div class='add'>+  #   &lt;code&gt;*&lt;/code&gt;::     Matches all files</div><div class='add'>+  #   &lt;code&gt;c*&lt;/code&gt;::    Matches all files beginning with &lt;code&gt;c&lt;/code&gt;</div><div class='add'>+  #   &lt;code&gt;*c&lt;/code&gt;::    Matches all files ending with &lt;code&gt;c&lt;/code&gt;</div><div class='add'>+  #   &lt;code&gt;\*c\*&lt;/code&gt;:: Match all files that have &lt;code&gt;c&lt;/code&gt; in them</div><div class='add'>+  #                        (including at the beginning or end).</div><div class='add'>+  #</div><div class='add'>+  #   Note, this will not match Unix-like hidden files (dotfiles).  In order</div><div class='add'>+  #   to include those in the match results, you must use the</div><div class='add'>+  #   File::FNM_DOTMATCH flag or something like &lt;code&gt;"{*,.*}"&lt;/code&gt;.</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;**&lt;/code&gt;::</div><div class='add'>+  #   Matches directories recursively if followed by &lt;code&gt;/&lt;/code&gt;.  If</div><div class='add'>+  #   this path segment contains any other characters, it is the same as the</div><div class='add'>+  #   usual &lt;code&gt;*&lt;/code&gt;.</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;?&lt;/code&gt;::</div><div class='add'>+  #   Matches any one character. Equivalent to &lt;code&gt;/.{1}/&lt;/code&gt; in regexp.</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;[set]&lt;/code&gt;::</div><div class='add'>+  #   Matches any one character in +set+.  Behaves exactly like character sets</div><div class='add'>+  #   in Regexp, including set negation (&lt;code&gt;[^a-z]&lt;/code&gt;).</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;{p,q}&lt;/code&gt;::</div><div class='add'>+  #   Matches either literal &lt;code&gt;p&lt;/code&gt; or literal &lt;code&gt;q&lt;/code&gt;.</div><div class='add'>+  #   Equivalent to pattern alternation in regexp.</div><div class='add'>+  #</div><div class='add'>+  #   Matching literals may be more than one character in length.  More than</div><div class='add'>+  #   two literals may be specified.</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;\\&lt;/code&gt;::</div><div class='add'>+  #   Escapes the next metacharacter.</div><div class='add'>+  #</div><div class='add'>+  #   Note that this means you cannot use backslash on windows as part of a</div><div class='add'>+  #   glob, i.e.  &lt;code&gt;Dir["c:\\foo*"]&lt;/code&gt; will not work, use</div><div class='add'>+  #   &lt;code&gt;Dir["c:/foo*"]&lt;/code&gt; instead.</div><div class='add'>+  #</div><div class='add'>+  # Examples:</div><div class='add'>+  #</div><div class='add'>+  #    Dir["config.?"]                     #=&gt; ["config.h"]</div><div class='add'>+  #    Dir.glob("config.?")                #=&gt; ["config.h"]</div><div class='add'>+  #    Dir.glob("*.[a-z][a-z]")            #=&gt; ["main.rb"]</div><div class='add'>+  #    Dir.glob("*.[^r]*")                 #=&gt; ["config.h"]</div><div class='add'>+  #    Dir.glob("*.{rb,h}")                #=&gt; ["main.rb", "config.h"]</div><div class='add'>+  #    Dir.glob("*")                       #=&gt; ["config.h", "main.rb"]</div><div class='add'>+  #    Dir.glob("*", File::FNM_DOTMATCH)   #=&gt; [".", "config.h", "main.rb"]</div><div class='add'>+  #    Dir.glob(["*.rb", "*.h"])           #=&gt; ["main.rb", "config.h"]</div><div class='add'>+  #</div><div class='add'>+  #    Dir.glob("**/*.rb")                 #=&gt; ["main.rb",</div><div class='add'>+  #                                        #    "lib/song.rb",</div><div class='add'>+  #                                        #    "lib/song/karaoke.rb"]</div><div class='add'>+  #</div><div class='add'>+  #    Dir.glob("**/*.rb", base: "lib")    #=&gt; ["song.rb",</div><div class='add'>+  #                                        #    "song/karaoke.rb"]</div><div class='add'>+  #</div><div class='add'>+  #    Dir.glob("**/lib")                  #=&gt; ["lib"]</div><div class='add'>+  #</div><div class='add'>+  #    Dir.glob("**/lib/**/*.rb")          #=&gt; ["lib/song.rb",</div><div class='add'>+  #                                        #    "lib/song/karaoke.rb"]</div><div class='add'>+  #</div><div class='add'>+  #    Dir.glob("**/lib/*.rb")             #=&gt; ["lib/song.rb"]</div><div class='add'>+  def self.glob(pattern, _flags = 0, flags: _flags, base: nil, sort: true)</div><div class='add'>+    Primitive.dir_s_glob(pattern, flags, base, sort)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+class &lt;&lt; File</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    File.fnmatch( pattern, path, [flags] ) -&gt; (true or false)</div><div class='add'>+  #    File.fnmatch?( pattern, path, [flags] ) -&gt; (true or false)</div><div class='add'>+  #</div><div class='add'>+  # Returns true if +path+ matches against +pattern+.  The pattern is not a</div><div class='add'>+  # regular expression; instead it follows rules similar to shell filename</div><div class='add'>+  # globbing.  It may contain the following metacharacters:</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;*&lt;/code&gt;::</div><div class='add'>+  #   Matches any file. Can be restricted by other values in the glob.</div><div class='add'>+  #   Equivalent to &lt;code&gt;/.*/x&lt;/code&gt; in regexp.</div><div class='add'>+  #</div><div class='add'>+  #   &lt;code&gt;*&lt;/code&gt;::    Matches all regular files</div><div class='add'>+  #   &lt;code&gt;c*&lt;/code&gt;::   Matches all files beginning with &lt;code&gt;c&lt;/code&gt;</div><div class='add'>+  #   &lt;code&gt;*c&lt;/code&gt;::   Matches all files ending with &lt;code&gt;c&lt;/code&gt;</div><div class='add'>+  #   &lt;code&gt;\*c*&lt;/code&gt;:: Matches all files that have &lt;code&gt;c&lt;/code&gt; in them</div><div class='add'>+  #                       (including at the beginning or end).</div><div class='add'>+  #</div><div class='add'>+  #   To match hidden files (that start with a &lt;code&gt;.&lt;/code&gt;) set the</div><div class='add'>+  #   File::FNM_DOTMATCH flag.</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;**&lt;/code&gt;::</div><div class='add'>+  #   Matches directories recursively or files expansively.</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;?&lt;/code&gt;::</div><div class='add'>+  #   Matches any one character. Equivalent to &lt;code&gt;/.{1}/&lt;/code&gt; in regexp.</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;[set]&lt;/code&gt;::</div><div class='add'>+  #   Matches any one character in +set+.  Behaves exactly like character sets</div><div class='add'>+  #   in Regexp, including set negation (&lt;code&gt;[^a-z]&lt;/code&gt;).</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;\\&lt;/code&gt;::</div><div class='add'>+  #   Escapes the next metacharacter.</div><div class='add'>+  #</div><div class='add'>+  # &lt;code&gt;{a,b}&lt;/code&gt;::</div><div class='add'>+  #   Matches pattern a and pattern b if File::FNM_EXTGLOB flag is enabled.</div><div class='add'>+  #   Behaves like a Regexp union (&lt;code&gt;(?:a|b)&lt;/code&gt;).</div><div class='add'>+  #</div><div class='add'>+  # +flags+ is a bitwise OR of the &lt;code&gt;FNM_XXX&lt;/code&gt; constants. The same</div><div class='add'>+  # glob pattern and flags are used by Dir::glob.</div><div class='add'>+  #</div><div class='add'>+  # Examples:</div><div class='add'>+  #</div><div class='add'>+  #    File.fnmatch('cat',       'cat')        #=&gt; true  # match entire string</div><div class='add'>+  #    File.fnmatch('cat',       'category')   #=&gt; false # only match partial string</div><div class='add'>+  #</div><div class='add'>+  #    File.fnmatch('c{at,ub}s', 'cats')                    #=&gt; false # { } isn't supported by default</div><div class='add'>+  #    File.fnmatch('c{at,ub}s', 'cats', File::FNM_EXTGLOB) #=&gt; true  # { } is supported on FNM_EXTGLOB</div><div class='add'>+  #</div><div class='add'>+  #    File.fnmatch('c?t',     'cat')          #=&gt; true  # '?' match only 1 character</div><div class='add'>+  #    File.fnmatch('c??t',    'cat')          #=&gt; false # ditto</div><div class='add'>+  #    File.fnmatch('c*',      'cats')         #=&gt; true  # '*' match 0 or more characters</div><div class='add'>+  #    File.fnmatch('c*t',     'c/a/b/t')      #=&gt; true  # ditto</div><div class='add'>+  #    File.fnmatch('ca[a-z]', 'cat')          #=&gt; true  # inclusive bracket expression</div><div class='add'>+  #    File.fnmatch('ca[^t]',  'cat')          #=&gt; false # exclusive bracket expression ('^' or '!')</div><div class='add'>+  #</div><div class='add'>+  #    File.fnmatch('cat', 'CAT')                     #=&gt; false # case sensitive</div><div class='add'>+  #    File.fnmatch('cat', 'CAT', File::FNM_CASEFOLD) #=&gt; true  # case insensitive</div><div class='add'>+  #    File.fnmatch('cat', 'CAT', File::FNM_SYSCASE)  #=&gt; true or false # depends on the system default</div><div class='add'>+  #</div><div class='add'>+  #    File.fnmatch('?',   '/', File::FNM_PATHNAME)  #=&gt; false # wildcard doesn't match '/' on FNM_PATHNAME</div><div class='add'>+  #    File.fnmatch('*',   '/', File::FNM_PATHNAME)  #=&gt; false # ditto</div><div class='add'>+  #    File.fnmatch('[/]', '/', File::FNM_PATHNAME)  #=&gt; false # ditto</div><div class='add'>+  #</div><div class='add'>+  #    File.fnmatch('\?',   '?')                       #=&gt; true  # escaped wildcard becomes ordinary</div><div class='add'>+  #    File.fnmatch('\a',   'a')                       #=&gt; true  # escaped ordinary remains ordinary</div><div class='add'>+  #    File.fnmatch('\a',   '\a', File::FNM_NOESCAPE)  #=&gt; true  # FNM_NOESCAPE makes '\' ordinary</div><div class='add'>+  #    File.fnmatch('[\?]', '?')                       #=&gt; true  # can escape inside bracket expression</div><div class='add'>+  #</div><div class='add'>+  #    File.fnmatch('*',   '.profile')                      #=&gt; false # wildcard doesn't match leading</div><div class='add'>+  #    File.fnmatch('*',   '.profile', File::FNM_DOTMATCH)  #=&gt; true  # period by default.</div><div class='add'>+  #    File.fnmatch('.*',  '.profile')                      #=&gt; true</div><div class='add'>+  #</div><div class='add'>+  #    File.fnmatch('**/*.rb', 'main.rb')                  #=&gt; false</div><div class='add'>+  #    File.fnmatch('**/*.rb', './main.rb')                #=&gt; false</div><div class='add'>+  #    File.fnmatch('**/*.rb', 'lib/song.rb')              #=&gt; true</div><div class='add'>+  #    File.fnmatch('**.rb', 'main.rb')                    #=&gt; true</div><div class='add'>+  #    File.fnmatch('**.rb', './main.rb')                  #=&gt; false</div><div class='add'>+  #    File.fnmatch('**.rb', 'lib/song.rb')                #=&gt; true</div><div class='add'>+  #    File.fnmatch('*',     'dave/.profile')              #=&gt; true</div><div class='add'>+  #</div><div class='add'>+  #    File.fnmatch('**/foo', 'a/b/c/foo', File::FNM_PATHNAME)     #=&gt; true</div><div class='add'>+  #    File.fnmatch('**/foo', '/a/b/c/foo', File::FNM_PATHNAME)    #=&gt; true</div><div class='add'>+  #    File.fnmatch('**/foo', 'c:/a/b/c/foo', File::FNM_PATHNAME)  #=&gt; true</div><div class='add'>+  #    File.fnmatch('**/foo', 'a/.b/c/foo', File::FNM_PATHNAME)    #=&gt; false</div><div class='add'>+  #    File.fnmatch('**/foo', 'a/.b/c/foo', File::FNM_PATHNAME | File::FNM_DOTMATCH) #=&gt; true</div><div class='add'>+  def fnmatch(pattern, path, flags = 0)</div><div class='add'>+  end</div><div class='add'>+  alias fnmatch? fnmatch</div><div class='add'>+end if false</div><div class='head'>diff --git a/dln.c b/dln.c<br/>index 7acea5f888..0edd709bbe 100644<br/>--- a/<a href='/ruby.git/tree/dln.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>dln.c</a><br/>+++ b/<a href='/ruby.git/tree/dln.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>dln.c</a></div><div class='hunk'>@@ -15,23 +15,22 @@</div><div class='ctx'> #define dln_memerror rb_memerror</div><div class='ctx'> #define dln_exit rb_exit</div><div class='ctx'> #define dln_loaderror rb_loaderror</div><div class='add'>+#define dln_fatalerror rb_fatal</div><div class='ctx'> #else</div><div class='ctx'> #define dln_notimplement ---&gt;&gt;&gt; dln not implemented &lt;&lt;&lt;---</div><div class='ctx'> #define dln_memerror abort</div><div class='ctx'> #define dln_exit exit</div><div class='ctx'> static void dln_loaderror(const char *format, ...);</div><div class='add'>+#define dln_fatalerror dln_loaderror</div><div class='ctx'> #endif</div><div class='ctx'> #include "dln.h"</div><div class='ctx'> #include "internal.h"</div><div class='add'>+#include "internal/compilers.h"</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_STDLIB_H</div><div class='ctx'> # include &lt;stdlib.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef USE_DLN_A_OUT</div><div class='del'>-char *dln_argv0;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #if defined(HAVE_ALLOCA_H)</div><div class='ctx'> #include &lt;alloca.h&gt;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -42,6 +41,10 @@ char *dln_argv0;</div><div class='ctx'> # include &lt;strings.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#if defined __APPLE__</div><div class='add'>+# include &lt;AvailabilityMacros.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #ifndef xmalloc</div><div class='ctx'> void *xmalloc();</div><div class='ctx'> void *xcalloc();</div><div class='hunk'>@@ -59,7 +62,7 @@ void *xrealloc();</div><div class='ctx'> #include &lt;sys/stat.h&gt;</div><div class='ctx'> </div><div class='ctx'> #ifndef S_ISDIR</div><div class='del'>-#   define S_ISDIR(m) (((m) &amp; S_IFMT) == S_IFDIR)</div><div class='add'>+# define S_ISDIR(m) (((m) &amp; S_IFMT) == S_IFDIR)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_SYS_PARAM_H</div><div class='hunk'>@@ -73,19 +76,6 @@ void *xrealloc();</div><div class='ctx'> # include &lt;unistd.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef _WIN32</div><div class='del'>-char *getenv();</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef __APPLE__</div><div class='del'>-# if defined(HAVE_DLOPEN)</div><div class='del'>-   /* Mac OS X with dlopen (10.3 or later) */</div><div class='del'>-#  define MACOSX_DLOPEN</div><div class='del'>-# else</div><div class='del'>-#  define MACOSX_DYLD</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #ifndef dln_loaderror</div><div class='ctx'> static void</div><div class='ctx'> dln_loaderror(const char *format, ...)</div><div class='hunk'>@@ -98,12 +88,12 @@ dln_loaderror(const char *format, ...)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_DLOPEN) &amp;&amp; !defined(USE_DLN_A_OUT) &amp;&amp; !defined(_AIX) &amp;&amp; !defined(MACOSX_DYLD) &amp;&amp; !defined(_UNICOSMP)</div><div class='add'>+#if defined(HAVE_DLOPEN) &amp;&amp; !defined(_AIX) &amp;&amp; !defined(_UNICOSMP)</div><div class='ctx'> /* dynamic load with dlopen() */</div><div class='ctx'> # define USE_DLN_DLOPEN</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(__hp9000s300) || ((defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)) &amp;&amp; !defined(__ELF__)) || defined(NeXT) || defined(MACOSX_DYLD)</div><div class='add'>+#if defined(__hp9000s300) || ((defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)) &amp;&amp; !defined(__ELF__)) || defined(NeXT)</div><div class='ctx'> # define EXTERNAL_PREFIX "_"</div><div class='ctx'> #else</div><div class='ctx'> # define EXTERNAL_PREFIX ""</div><div class='hunk'>@@ -116,6 +106,7 @@ dln_loaderror(const char *format, ...)</div><div class='ctx'> #define isdirsep(x) ((x) == '/')</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#if defined(_WIN32) || defined(USE_DLN_DLOPEN)</div><div class='ctx'> static size_t</div><div class='ctx'> init_funcname_len(const char **file)</div><div class='ctx'> {</div><div class='hunk'>@@ -123,8 +114,8 @@ init_funcname_len(const char **file)</div><div class='ctx'> </div><div class='ctx'>     /* Load the file as an object one */</div><div class='ctx'>     for (base = p; *p; p++) { /* Find position of last '/' */</div><div class='del'>-	if (*p == '.' &amp;&amp; !dot) dot = p;</div><div class='del'>-	if (isdirsep(*p)) base = p+1, dot = NULL;</div><div class='add'>+        if (*p == '.' &amp;&amp; !dot) dot = p;</div><div class='add'>+        if (isdirsep(*p)) base = p+1, dot = NULL;</div><div class='ctx'>     }</div><div class='ctx'>     *file = base;</div><div class='ctx'>     /* Delete suffix if it exists */</div><div class='hunk'>@@ -139,960 +130,19 @@ static const char funcname_prefix[sizeof(FUNCNAME_PREFIX) - 1] = FUNCNAME_PREFIX</div><div class='ctx'>     const size_t plen = sizeof(funcname_prefix);\</div><div class='ctx'>     char *const tmp = ALLOCA_N(char, plen+flen+1);\</div><div class='ctx'>     if (!tmp) {\</div><div class='del'>-	dln_memerror();\</div><div class='add'>+        dln_memerror();\</div><div class='ctx'>     }\</div><div class='ctx'>     memcpy(tmp, funcname_prefix, plen);\</div><div class='ctx'>     memcpy(tmp+plen, base, flen);\</div><div class='ctx'>     tmp[plen+flen] = '\0';\</div><div class='ctx'>     *(buf) = tmp;\</div><div class='ctx'> } while (0)</div><div class='del'>-</div><div class='del'>-#ifdef USE_DLN_A_OUT</div><div class='del'>-</div><div class='del'>-#ifndef LIBC_NAME</div><div class='del'>-# define LIBC_NAME "libc.a"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef DLN_DEFAULT_LIB_PATH</div><div class='del'>-#  define DLN_DEFAULT_LIB_PATH "/lib:/usr/lib:/usr/local/lib:."</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include &lt;errno.h&gt;</div><div class='del'>-</div><div class='del'>-static int dln_errno;</div><div class='del'>-</div><div class='del'>-#define DLN_ENOEXEC	ENOEXEC	/* Exec format error */</div><div class='del'>-#define DLN_ECONFL	1201	/* Symbol name conflict */</div><div class='del'>-#define DLN_ENOINIT	1202	/* No initializer given */</div><div class='del'>-#define DLN_EUNDEF	1203	/* Undefine symbol remains */</div><div class='del'>-#define DLN_ENOTLIB	1204	/* Not a library file */</div><div class='del'>-#define DLN_EBADLIB	1205	/* Malformed library file */</div><div class='del'>-#define DLN_EINIT	1206	/* Not initialized */</div><div class='del'>-</div><div class='del'>-static int dln_init_p = 0;</div><div class='del'>-</div><div class='del'>-#include &lt;ar.h&gt;</div><div class='del'>-#include &lt;a.out.h&gt;</div><div class='del'>-#ifndef N_COMM</div><div class='del'>-# define N_COMM 0x12</div><div class='del'>-#endif</div><div class='del'>-#ifndef N_MAGIC</div><div class='del'>-# define N_MAGIC(x) (x).a_magic</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define INVALID_OBJECT(h) (N_MAGIC(h) != OMAGIC)</div><div class='del'>-</div><div class='del'>-#include "ruby/util.h"</div><div class='del'>-#include "ruby/st.h"</div><div class='del'>-</div><div class='del'>-static st_table *sym_tbl;</div><div class='del'>-static st_table *undef_tbl;</div><div class='del'>-</div><div class='del'>-static int load_lib();</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-load_header(int fd, struct exec *hdrp, long disp)</div><div class='del'>-{</div><div class='del'>-    int size;</div><div class='del'>-</div><div class='del'>-    lseek(fd, disp, 0);</div><div class='del'>-    size = read(fd, hdrp, sizeof(struct exec));</div><div class='del'>-    if (size == -1) {</div><div class='del'>-	dln_errno = errno;</div><div class='del'>-	return -1;</div><div class='del'>-    }</div><div class='del'>-    if (size != sizeof(struct exec) || N_BADMAG(*hdrp)) {</div><div class='del'>-	dln_errno = DLN_ENOEXEC;</div><div class='del'>-	return -1;</div><div class='del'>-    }</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if defined(sequent)</div><div class='del'>-#define RELOC_SYMBOL(r)			((r)-&gt;r_symbolnum)</div><div class='del'>-#define RELOC_MEMORY_SUB_P(r)		((r)-&gt;r_bsr)</div><div class='del'>-#define RELOC_PCREL_P(r)		((r)-&gt;r_pcrel || (r)-&gt;r_bsr)</div><div class='del'>-#define RELOC_TARGET_SIZE(r)		((r)-&gt;r_length)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* Default macros */</div><div class='del'>-#ifndef RELOC_ADDRESS</div><div class='del'>-#define RELOC_ADDRESS(r)		((r)-&gt;r_address)</div><div class='del'>-#define RELOC_EXTERN_P(r)		((r)-&gt;r_extern)</div><div class='del'>-#define RELOC_SYMBOL(r)			((r)-&gt;r_symbolnum)</div><div class='del'>-#define RELOC_MEMORY_SUB_P(r)		0</div><div class='del'>-#define RELOC_PCREL_P(r)		((r)-&gt;r_pcrel)</div><div class='del'>-#define RELOC_TARGET_SIZE(r)		((r)-&gt;r_length)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(__sun) &amp;&amp; defined(__sparc)</div><div class='del'>-/* Sparc (Sun 4) macros */</div><div class='del'>-#  undef relocation_info</div><div class='del'>-#  define relocation_info reloc_info_sparc</div><div class='del'>-#  define R_RIGHTSHIFT(r)	(reloc_r_rightshift[(r)-&gt;r_type])</div><div class='del'>-#  define R_BITSIZE(r) 		(reloc_r_bitsize[(r)-&gt;r_type])</div><div class='del'>-#  define R_LENGTH(r)		(reloc_r_length[(r)-&gt;r_type])</div><div class='del'>-static const int reloc_r_rightshift[] = {</div><div class='del'>-  0, 0, 0, 0, 0, 0, 2, 2, 10, 0, 0, 0, 0, 0, 0,</div><div class='del'>-};</div><div class='del'>-static const int reloc_r_bitsize[] = {</div><div class='del'>-  8, 16, 32, 8, 16, 32, 30, 22, 22, 22, 13, 10, 32, 32, 16,</div><div class='del'>-};</div><div class='del'>-static const int reloc_r_length[] = {</div><div class='del'>-  0, 1, 2, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='del'>-};</div><div class='del'>-#  define R_PCREL(r) \</div><div class='del'>-    ((r)-&gt;r_type &gt;= RELOC_DISP8 &amp;&amp; (r)-&gt;r_type &lt;= RELOC_WDISP22)</div><div class='del'>-#  define R_SYMBOL(r) ((r)-&gt;r_index)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(sequent)</div><div class='del'>-#define R_SYMBOL(r)		((r)-&gt;r_symbolnum)</div><div class='del'>-#define R_MEMORY_SUB(r)		((r)-&gt;r_bsr)</div><div class='del'>-#define R_PCREL(r)		((r)-&gt;r_pcrel || (r)-&gt;r_bsr)</div><div class='del'>-#define R_LENGTH(r)		((r)-&gt;r_length)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef R_SYMBOL</div><div class='del'>-#  define R_SYMBOL(r) 		((r)-&gt;r_symbolnum)</div><div class='del'>-#  define R_MEMORY_SUB(r)	0</div><div class='del'>-#  define R_PCREL(r)  		((r)-&gt;r_pcrel)</div><div class='del'>-#  define R_LENGTH(r) 		((r)-&gt;r_length)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static struct relocation_info *</div><div class='del'>-load_reloc(int fd, struct exec *hdrp, long disp)</div><div class='del'>-{</div><div class='del'>-    struct relocation_info *reloc;</div><div class='del'>-    int size;</div><div class='del'>-</div><div class='del'>-    lseek(fd, disp + N_TXTOFF(*hdrp) + hdrp-&gt;a_text + hdrp-&gt;a_data, 0);</div><div class='del'>-    size = hdrp-&gt;a_trsize + hdrp-&gt;a_drsize;</div><div class='del'>-    reloc = (struct relocation_info*)xmalloc(size);</div><div class='del'>-    if (reloc == NULL) {</div><div class='del'>-	dln_errno = errno;</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (read(fd, reloc, size) !=  size) {</div><div class='del'>-	dln_errno = errno;</div><div class='del'>-	free(reloc);</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return reloc;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static struct nlist *</div><div class='del'>-load_sym(int fd, struct exec *hdrp, long disp)</div><div class='del'>-{</div><div class='del'>-    struct nlist * buffer;</div><div class='del'>-    struct nlist * sym;</div><div class='del'>-    struct nlist * end;</div><div class='del'>-    long displ;</div><div class='del'>-    int size;</div><div class='del'>-</div><div class='del'>-    lseek(fd, N_SYMOFF(*hdrp) + hdrp-&gt;a_syms + disp, 0);</div><div class='del'>-    if (read(fd, &amp;size, sizeof(int)) != sizeof(int)) {</div><div class='del'>-	goto err_noexec;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    buffer = (struct nlist*)xmalloc(hdrp-&gt;a_syms + size);</div><div class='del'>-    if (buffer == NULL) {</div><div class='del'>-	dln_errno = errno;</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    lseek(fd, disp + N_SYMOFF(*hdrp), 0);</div><div class='del'>-    if (read(fd, buffer, hdrp-&gt;a_syms + size) != hdrp-&gt;a_syms + size) {</div><div class='del'>-	free(buffer);</div><div class='del'>-	goto err_noexec;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    sym = buffer;</div><div class='del'>-    end = sym + hdrp-&gt;a_syms / sizeof(struct nlist);</div><div class='del'>-    displ = (long)buffer + (long)(hdrp-&gt;a_syms);</div><div class='del'>-</div><div class='del'>-    while (sym &lt; end) {</div><div class='del'>-	sym-&gt;n_un.n_name = (char*)sym-&gt;n_un.n_strx + displ;</div><div class='del'>-	sym++;</div><div class='del'>-    }</div><div class='del'>-    return buffer;</div><div class='del'>-</div><div class='del'>-  err_noexec:</div><div class='del'>-    dln_errno = DLN_ENOEXEC;</div><div class='del'>-    return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static st_table *</div><div class='del'>-sym_hash(struct exec *hdrp, struct nlist *syms)</div><div class='del'>-{</div><div class='del'>-    st_table *tbl;</div><div class='del'>-    struct nlist *sym = syms;</div><div class='del'>-    struct nlist *end = syms + (hdrp-&gt;a_syms / sizeof(struct nlist));</div><div class='del'>-</div><div class='del'>-    tbl = st_init_strtable();</div><div class='del'>-    if (tbl == NULL) {</div><div class='del'>-	dln_errno = errno;</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    while (sym &lt; end) {</div><div class='del'>-	st_insert(tbl, sym-&gt;n_un.n_name, sym);</div><div class='del'>-	sym++;</div><div class='del'>-    }</div><div class='del'>-    return tbl;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-dln_init(const char *prog)</div><div class='del'>-{</div><div class='del'>-    char *file, fbuf[MAXPATHLEN];</div><div class='del'>-    int fd;</div><div class='del'>-    struct exec hdr;</div><div class='del'>-    struct nlist *syms;</div><div class='del'>-</div><div class='del'>-    if (dln_init_p == 1) return 0;</div><div class='del'>-</div><div class='del'>-    file = dln_find_exe_r(prog, NULL, fbuf, sizeof(fbuf));</div><div class='del'>-    if (file == NULL || (fd = open(file, O_RDONLY)) &lt; 0) {</div><div class='del'>-	dln_errno = errno;</div><div class='del'>-	return -1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (load_header(fd, &amp;hdr, 0) == -1) return -1;</div><div class='del'>-    syms = load_sym(fd, &amp;hdr, 0);</div><div class='del'>-    if (syms == NULL) {</div><div class='del'>-	close(fd);</div><div class='del'>-	return -1;</div><div class='del'>-    }</div><div class='del'>-    sym_tbl = sym_hash(&amp;hdr, syms);</div><div class='del'>-    if (sym_tbl == NULL) {	/* file may be start with #! */</div><div class='del'>-	char c = '\0';</div><div class='del'>-	char buf[MAXPATHLEN];</div><div class='del'>-	char *p;</div><div class='del'>-</div><div class='del'>-	free(syms);</div><div class='del'>-	lseek(fd, 0L, 0);</div><div class='del'>-	if (read(fd, &amp;c, 1) == -1) {</div><div class='del'>-	    dln_errno = errno;</div><div class='del'>-	    return -1;</div><div class='del'>-	}</div><div class='del'>-	if (c != '#') goto err_noexec;</div><div class='del'>-	if (read(fd, &amp;c, 1) == -1) {</div><div class='del'>-	    dln_errno = errno;</div><div class='del'>-	    return -1;</div><div class='del'>-	}</div><div class='del'>-	if (c != '!') goto err_noexec;</div><div class='del'>-</div><div class='del'>-	p = buf;</div><div class='del'>-	/* skip forwarding spaces */</div><div class='del'>-	while (read(fd, &amp;c, 1) == 1) {</div><div class='del'>-	    if (c == '\n') goto err_noexec;</div><div class='del'>-	    if (c != '\t' &amp;&amp; c != ' ') {</div><div class='del'>-		*p++ = c;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	/* read in command name */</div><div class='del'>-	while (read(fd, p, 1) == 1) {</div><div class='del'>-	    if (*p == '\n' || *p == '\t' || *p == ' ') break;</div><div class='del'>-	    p++;</div><div class='del'>-	    if (p-buf &gt;= MAXPATHLEN) {</div><div class='del'>-		dln_errno = ENAMETOOLONG;</div><div class='del'>-		return -1;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	*p = '\0';</div><div class='del'>-</div><div class='del'>-	return dln_init(buf);</div><div class='del'>-    }</div><div class='del'>-    dln_init_p = 1;</div><div class='del'>-    undef_tbl = st_init_strtable();</div><div class='del'>-    close(fd);</div><div class='del'>-    return 0;</div><div class='del'>-</div><div class='del'>-  err_noexec:</div><div class='del'>-    close(fd);</div><div class='del'>-    dln_errno = DLN_ENOEXEC;</div><div class='del'>-    return -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static long</div><div class='del'>-load_text_data(int fd, struct exec *hdrp, int bss, long disp)</div><div class='del'>-{</div><div class='del'>-    int size;</div><div class='del'>-    unsigned char* addr;</div><div class='del'>-</div><div class='del'>-    lseek(fd, disp + N_TXTOFF(*hdrp), 0);</div><div class='del'>-    size = hdrp-&gt;a_text + hdrp-&gt;a_data;</div><div class='del'>-</div><div class='del'>-    if (bss == -1) size += hdrp-&gt;a_bss;</div><div class='del'>-    else if (bss &gt; 1) size += bss;</div><div class='del'>-</div><div class='del'>-    addr = (unsigned char*)xmalloc(size);</div><div class='del'>-    if (addr == NULL) {</div><div class='del'>-	dln_errno = errno;</div><div class='del'>-	return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (read(fd, addr, size) !=  size) {</div><div class='del'>-	dln_errno = errno;</div><div class='del'>-	free(addr);</div><div class='del'>-	return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (bss == -1) {</div><div class='del'>-	memset(addr +  hdrp-&gt;a_text + hdrp-&gt;a_data, 0, hdrp-&gt;a_bss);</div><div class='del'>-    }</div><div class='del'>-    else if (bss &gt; 0) {</div><div class='del'>-	memset(addr +  hdrp-&gt;a_text + hdrp-&gt;a_data, 0, bss);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return (long)addr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-undef_print(char *key, char *value)</div><div class='del'>-{</div><div class='del'>-    fprintf(stderr, "  %s\n", key);</div><div class='del'>-    return ST_CONTINUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-dln_print_undef(void)</div><div class='del'>-{</div><div class='del'>-    fprintf(stderr, " Undefined symbols:\n");</div><div class='del'>-    st_foreach(undef_tbl, undef_print, NULL);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-dln_undefined(void)</div><div class='del'>-{</div><div class='del'>-    if (undef_tbl-&gt;num_entries &gt; 0) {</div><div class='del'>-	fprintf(stderr, "dln: Calling undefined function\n");</div><div class='del'>-	dln_print_undef();</div><div class='del'>-	dln_exit(1);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-struct undef {</div><div class='del'>-    char *name;</div><div class='del'>-    struct relocation_info reloc;</div><div class='del'>-    long base;</div><div class='del'>-    char *addr;</div><div class='del'>-    union {</div><div class='del'>-	char c;</div><div class='del'>-	short s;</div><div class='del'>-	long l;</div><div class='del'>-    } u;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static st_table *reloc_tbl = NULL;</div><div class='del'>-static void</div><div class='del'>-link_undef(const char *name, long base, struct relocation_info *reloc)</div><div class='del'>-{</div><div class='del'>-    static int u_no = 0;</div><div class='del'>-    struct undef *obj;</div><div class='del'>-    char *addr = (char*)(reloc-&gt;r_address + base);</div><div class='del'>-</div><div class='del'>-    obj = (struct undef*)xmalloc(sizeof(struct undef));</div><div class='del'>-    obj-&gt;name = strdup(name);</div><div class='del'>-    obj-&gt;reloc = *reloc;</div><div class='del'>-    obj-&gt;base = base;</div><div class='del'>-    switch (R_LENGTH(reloc)) {</div><div class='del'>-      case 0:		/* byte */</div><div class='del'>-	obj-&gt;u.c = *addr;</div><div class='del'>-	break;</div><div class='del'>-      case 1:		/* word */</div><div class='del'>-	obj-&gt;u.s = *(short*)addr;</div><div class='del'>-	break;</div><div class='del'>-      case 2:		/* long */</div><div class='del'>-	obj-&gt;u.l = *(long*)addr;</div><div class='del'>-	break;</div><div class='del'>-    }</div><div class='del'>-    if (reloc_tbl == NULL) {</div><div class='del'>-	reloc_tbl = st_init_numtable();</div><div class='del'>-    }</div><div class='del'>-    st_insert(reloc_tbl, u_no++, obj);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-struct reloc_arg {</div><div class='del'>-    const char *name;</div><div class='del'>-    long value;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-reloc_undef(int no, struct undef *undef, struct reloc_arg *arg)</div><div class='del'>-{</div><div class='del'>-    int datum;</div><div class='del'>-    char *address;</div><div class='del'>-#if defined(__sun) &amp;&amp; defined(__sparc)</div><div class='del'>-    unsigned int mask = 0;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    if (strcmp(arg-&gt;name, undef-&gt;name) != 0) return ST_CONTINUE;</div><div class='del'>-    address = (char*)(undef-&gt;base + undef-&gt;reloc.r_address);</div><div class='del'>-    datum = arg-&gt;value;</div><div class='del'>-</div><div class='del'>-    if (R_PCREL(&amp;(undef-&gt;reloc))) datum -= undef-&gt;base;</div><div class='del'>-#if defined(__sun) &amp;&amp; defined(__sparc)</div><div class='del'>-    datum += undef-&gt;reloc.r_addend;</div><div class='del'>-    datum &gt;&gt;= R_RIGHTSHIFT(&amp;(undef-&gt;reloc));</div><div class='del'>-    mask = (1 &lt;&lt; R_BITSIZE(&amp;(undef-&gt;reloc))) - 1;</div><div class='del'>-    mask |= mask -1;</div><div class='del'>-    datum &amp;= mask;</div><div class='del'>-    switch (R_LENGTH(&amp;(undef-&gt;reloc))) {</div><div class='del'>-      case 0:</div><div class='del'>-	*address = undef-&gt;u.c;</div><div class='del'>-	*address &amp;= ~mask;</div><div class='del'>-	*address |= datum;</div><div class='del'>-	break;</div><div class='del'>-      case 1:</div><div class='del'>-	*(short *)address = undef-&gt;u.s;</div><div class='del'>-	*(short *)address &amp;= ~mask;</div><div class='del'>-	*(short *)address |= datum;</div><div class='del'>-	break;</div><div class='del'>-      case 2:</div><div class='del'>-	*(long *)address = undef-&gt;u.l;</div><div class='del'>-	*(long *)address &amp;= ~mask;</div><div class='del'>-	*(long *)address |= datum;</div><div class='del'>-	break;</div><div class='del'>-    }</div><div class='del'>-#else</div><div class='del'>-    switch (R_LENGTH(&amp;(undef-&gt;reloc))) {</div><div class='del'>-      case 0:		/* byte */</div><div class='del'>-	if (R_MEMORY_SUB(&amp;(undef-&gt;reloc)))</div><div class='del'>-	    *address = datum - *address;</div><div class='del'>-	else *address = undef-&gt;u.c + datum;</div><div class='del'>-	break;</div><div class='del'>-      case 1:		/* word */</div><div class='del'>-	if (R_MEMORY_SUB(&amp;(undef-&gt;reloc)))</div><div class='del'>-	    *(short*)address = datum - *(short*)address;</div><div class='del'>-	else *(short*)address = undef-&gt;u.s + datum;</div><div class='del'>-	break;</div><div class='del'>-      case 2:		/* long */</div><div class='del'>-	if (R_MEMORY_SUB(&amp;(undef-&gt;reloc)))</div><div class='del'>-	    *(long*)address = datum - *(long*)address;</div><div class='del'>-	else *(long*)address = undef-&gt;u.l + datum;</div><div class='del'>-	break;</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-    free(undef-&gt;name);</div><div class='del'>-    free(undef);</div><div class='del'>-    return ST_DELETE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-unlink_undef(const char *name, long value)</div><div class='del'>-{</div><div class='del'>-    struct reloc_arg arg;</div><div class='del'>-</div><div class='del'>-    arg.name = name;</div><div class='del'>-    arg.value = value;</div><div class='del'>-    st_foreach(reloc_tbl, reloc_undef, &amp;arg);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#ifdef N_INDR</div><div class='del'>-struct indr_data {</div><div class='del'>-    char *name0, *name1;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-reloc_repl(int no, struct undef *undef, struct indr_data *data)</div><div class='del'>-{</div><div class='del'>-    if (strcmp(data-&gt;name0, undef-&gt;name) == 0) {</div><div class='del'>-	free(undef-&gt;name);</div><div class='del'>-	undef-&gt;name = strdup(data-&gt;name1);</div><div class='del'>-    }</div><div class='del'>-    return ST_CONTINUE;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-load_1(int fd, long disp, const char *need_init)</div><div class='del'>-{</div><div class='del'>-    static const char *libc = LIBC_NAME;</div><div class='del'>-    struct exec hdr;</div><div class='del'>-    struct relocation_info *reloc = NULL;</div><div class='del'>-    long block = 0;</div><div class='del'>-    long new_common = 0; /* Length of new common */</div><div class='del'>-    struct nlist *syms = NULL;</div><div class='del'>-    struct nlist *sym;</div><div class='del'>-    struct nlist *end;</div><div class='del'>-    int init_p = 0;</div><div class='del'>-</div><div class='del'>-    if (load_header(fd, &amp;hdr, disp) == -1) return -1;</div><div class='del'>-    if (INVALID_OBJECT(hdr)) {</div><div class='del'>-	dln_errno = DLN_ENOEXEC;</div><div class='del'>-	return -1;</div><div class='del'>-    }</div><div class='del'>-    reloc = load_reloc(fd, &amp;hdr, disp);</div><div class='del'>-    if (reloc == NULL) return -1;</div><div class='del'>-</div><div class='del'>-    syms = load_sym(fd, &amp;hdr, disp);</div><div class='del'>-    if (syms == NULL) {</div><div class='del'>-	free(reloc);</div><div class='del'>-	return -1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    sym = syms;</div><div class='del'>-    end = syms + (hdr.a_syms / sizeof(struct nlist));</div><div class='del'>-    while (sym &lt; end) {</div><div class='del'>-	struct nlist *old_sym;</div><div class='del'>-	int value = sym-&gt;n_value;</div><div class='del'>-</div><div class='del'>-#ifdef N_INDR</div><div class='del'>-	if (sym-&gt;n_type == (N_INDR | N_EXT)) {</div><div class='del'>-	    char *key = sym-&gt;n_un.n_name;</div><div class='del'>-</div><div class='del'>-	    if (st_lookup(sym_tbl, sym[1].n_un.n_name, &amp;old_sym)) {</div><div class='del'>-		if (st_delete(undef_tbl, (st_data_t*)&amp;key, NULL)) {</div><div class='del'>-		    unlink_undef(key, old_sym-&gt;n_value);</div><div class='del'>-		    free(key);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		struct indr_data data;</div><div class='del'>-</div><div class='del'>-		data.name0 = sym-&gt;n_un.n_name;</div><div class='del'>-		data.name1 = sym[1].n_un.n_name;</div><div class='del'>-		st_foreach(reloc_tbl, reloc_repl, &amp;data);</div><div class='del'>-</div><div class='del'>-		st_insert(undef_tbl, strdup(sym[1].n_un.n_name), NULL);</div><div class='del'>-		if (st_delete(undef_tbl, (st_data_t*)&amp;key, NULL)) {</div><div class='del'>-		    free(key);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    sym += 2;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-	if (sym-&gt;n_type == (N_UNDF | N_EXT)) {</div><div class='del'>-	    if (st_lookup(sym_tbl, sym-&gt;n_un.n_name, &amp;old_sym) == 0) {</div><div class='del'>-		old_sym = NULL;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (value) {</div><div class='del'>-		if (old_sym) {</div><div class='del'>-		    sym-&gt;n_type = N_EXT | N_COMM;</div><div class='del'>-		    sym-&gt;n_value = old_sym-&gt;n_value;</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    int rnd =</div><div class='del'>-			value &gt;= sizeof(double) ? sizeof(double) - 1</div><div class='del'>-			    : value &gt;= sizeof(long) ? sizeof(long) - 1</div><div class='del'>-				: sizeof(short) - 1;</div><div class='del'>-</div><div class='del'>-		    sym-&gt;n_type = N_COMM;</div><div class='del'>-		    new_common += rnd;</div><div class='del'>-		    new_common &amp;= ~(long)rnd;</div><div class='del'>-		    sym-&gt;n_value = new_common;</div><div class='del'>-		    new_common += value;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		if (old_sym) {</div><div class='del'>-		    sym-&gt;n_type = N_EXT | N_COMM;</div><div class='del'>-		    sym-&gt;n_value = old_sym-&gt;n_value;</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    sym-&gt;n_value = (long)dln_undefined;</div><div class='del'>-		    st_insert(undef_tbl, strdup(sym-&gt;n_un.n_name), NULL);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	sym++;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    block = load_text_data(fd, &amp;hdr, hdr.a_bss + new_common, disp);</div><div class='del'>-    if (block == 0) goto err_exit;</div><div class='del'>-</div><div class='del'>-    sym = syms;</div><div class='del'>-    while (sym &lt; end) {</div><div class='del'>-	struct nlist *new_sym;</div><div class='del'>-	char *key;</div><div class='del'>-</div><div class='del'>-	switch (sym-&gt;n_type) {</div><div class='del'>-	  case N_COMM:</div><div class='del'>-	    sym-&gt;n_value += hdr.a_text + hdr.a_data;</div><div class='del'>-	  case N_TEXT|N_EXT:</div><div class='del'>-	  case N_DATA|N_EXT:</div><div class='del'>-</div><div class='del'>-	    sym-&gt;n_value += block;</div><div class='del'>-</div><div class='del'>-	    if (st_lookup(sym_tbl, sym-&gt;n_un.n_name, &amp;new_sym) != 0</div><div class='del'>-		&amp;&amp; new_sym-&gt;n_value != (long)dln_undefined) {</div><div class='del'>-		dln_errno = DLN_ECONFL;</div><div class='del'>-		goto err_exit;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    key = sym-&gt;n_un.n_name;</div><div class='del'>-	    if (st_delete(undef_tbl, (st_data_t*)&amp;key, NULL) != 0) {</div><div class='del'>-		unlink_undef(key, sym-&gt;n_value);</div><div class='del'>-		free(key);</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    new_sym = (struct nlist*)xmalloc(sizeof(struct nlist));</div><div class='del'>-	    *new_sym = *sym;</div><div class='del'>-	    new_sym-&gt;n_un.n_name = strdup(sym-&gt;n_un.n_name);</div><div class='del'>-	    st_insert(sym_tbl, new_sym-&gt;n_un.n_name, new_sym);</div><div class='del'>-	    break;</div><div class='del'>-</div><div class='del'>-	  case N_TEXT:</div><div class='del'>-	  case N_DATA:</div><div class='del'>-	    sym-&gt;n_value += block;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	sym++;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * First comes the text-relocation</div><div class='del'>-     */</div><div class='del'>-    {</div><div class='del'>-	struct relocation_info * rel = reloc;</div><div class='del'>-	struct relocation_info * rel_beg = reloc +</div><div class='del'>-	    (hdr.a_trsize/sizeof(struct relocation_info));</div><div class='del'>-	struct relocation_info * rel_end = reloc +</div><div class='del'>-	    (hdr.a_trsize+hdr.a_drsize)/sizeof(struct relocation_info);</div><div class='del'>-</div><div class='del'>-	while (rel &lt; rel_end) {</div><div class='del'>-	    char *address = (char*)(rel-&gt;r_address + block);</div><div class='del'>-	    long datum = 0;</div><div class='del'>-#if defined(__sun) &amp;&amp; defined(__sparc)</div><div class='del'>-	    unsigned int mask = 0;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-	    if (rel &gt;= rel_beg)</div><div class='del'>-		address += hdr.a_text;</div><div class='del'>-</div><div class='del'>-	    if (rel-&gt;r_extern) { /* Look it up in symbol-table */</div><div class='del'>-		sym = &amp;(syms[R_SYMBOL(rel)]);</div><div class='del'>-		switch (sym-&gt;n_type) {</div><div class='del'>-		  case N_EXT|N_UNDF:</div><div class='del'>-		    link_undef(sym-&gt;n_un.n_name, block, rel);</div><div class='del'>-		  case N_EXT|N_COMM:</div><div class='del'>-		  case N_COMM:</div><div class='del'>-		    datum = sym-&gt;n_value;</div><div class='del'>-		    break;</div><div class='del'>-		  default:</div><div class='del'>-		    goto err_exit;</div><div class='del'>-		}</div><div class='del'>-	    } /* end.. look it up */</div><div class='del'>-	    else { /* is static */</div><div class='del'>-		switch (R_SYMBOL(rel)) {</div><div class='del'>-		  case N_TEXT:</div><div class='del'>-		  case N_DATA:</div><div class='del'>-		    datum = block;</div><div class='del'>-		    break;</div><div class='del'>-		  case N_BSS:</div><div class='del'>-		    datum = block +  new_common;</div><div class='del'>-		    break;</div><div class='del'>-		  case N_ABS:</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    } /* end .. is static */</div><div class='del'>-	    if (R_PCREL(rel)) datum -= block;</div><div class='del'>-</div><div class='del'>-#if defined(__sun) &amp;&amp; defined(__sparc)</div><div class='del'>-	    datum += rel-&gt;r_addend;</div><div class='del'>-	    datum &gt;&gt;= R_RIGHTSHIFT(rel);</div><div class='del'>-	    mask = (1 &lt;&lt; R_BITSIZE(rel)) - 1;</div><div class='del'>-	    mask |= mask -1;</div><div class='del'>-	    datum &amp;= mask;</div><div class='del'>-</div><div class='del'>-	    switch (R_LENGTH(rel)) {</div><div class='del'>-	      case 0:</div><div class='del'>-		*address &amp;= ~mask;</div><div class='del'>-		*address |= datum;</div><div class='del'>-		break;</div><div class='del'>-	      case 1:</div><div class='del'>-		*(short *)address &amp;= ~mask;</div><div class='del'>-		*(short *)address |= datum;</div><div class='del'>-		break;</div><div class='del'>-	      case 2:</div><div class='del'>-		*(long *)address &amp;= ~mask;</div><div class='del'>-		*(long *)address |= datum;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-#else</div><div class='del'>-	    switch (R_LENGTH(rel)) {</div><div class='del'>-	      case 0:		/* byte */</div><div class='del'>-		if (datum &lt; -128 || datum &gt; 127) goto err_exit;</div><div class='del'>-		*address += datum;</div><div class='del'>-		break;</div><div class='del'>-	      case 1:		/* word */</div><div class='del'>-		*(short *)address += datum;</div><div class='del'>-		break;</div><div class='del'>-	      case 2:		/* long */</div><div class='del'>-		*(long *)address += datum;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-#endif</div><div class='del'>-	    rel++;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (need_init) {</div><div class='del'>-	int len;</div><div class='del'>-	char **libs_to_be_linked = 0;</div><div class='del'>-	char *buf;</div><div class='del'>-</div><div class='del'>-	if (undef_tbl-&gt;num_entries &gt; 0) {</div><div class='del'>-	    if (load_lib(libc) == -1) goto err_exit;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	init_funcname(&amp;buf, need_init);</div><div class='del'>-	len = strlen(buf);</div><div class='del'>-</div><div class='del'>-	for (sym = syms; sym&lt;end; sym++) {</div><div class='del'>-	    char *name = sym-&gt;n_un.n_name;</div><div class='del'>-	    if (name[0] == '_' &amp;&amp; sym-&gt;n_value &gt;= block) {</div><div class='del'>-		if (strcmp(name+1, "dln_libs_to_be_linked") == 0) {</div><div class='del'>-		    libs_to_be_linked = (char**)sym-&gt;n_value;</div><div class='del'>-		}</div><div class='del'>-		else if (strcmp(name+1, buf) == 0) {</div><div class='del'>-		    init_p = 1;</div><div class='del'>-		    ((int (*)())sym-&gt;n_value)();</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (libs_to_be_linked &amp;&amp; undef_tbl-&gt;num_entries &gt; 0) {</div><div class='del'>-	    while (*libs_to_be_linked) {</div><div class='del'>-		load_lib(*libs_to_be_linked);</div><div class='del'>-		libs_to_be_linked++;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    free(reloc);</div><div class='del'>-    free(syms);</div><div class='del'>-    if (need_init) {</div><div class='del'>-	if (init_p == 0) {</div><div class='del'>-	    dln_errno = DLN_ENOINIT;</div><div class='del'>-	    return -1;</div><div class='del'>-	}</div><div class='del'>-	if (undef_tbl-&gt;num_entries &gt; 0) {</div><div class='del'>-	    if (load_lib(libc) == -1) goto err_exit;</div><div class='del'>-	    if (undef_tbl-&gt;num_entries &gt; 0) {</div><div class='del'>-		dln_errno = DLN_EUNDEF;</div><div class='del'>-		return -1;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    return 0;</div><div class='del'>-</div><div class='del'>-  err_exit:</div><div class='del'>-    if (syms) free(syms);</div><div class='del'>-    if (reloc) free(reloc);</div><div class='del'>-    if (block) free((char*)block);</div><div class='del'>-    return -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int target_offset;</div><div class='del'>-static int</div><div class='del'>-search_undef(const char *key, int value, st_table *lib_tbl)</div><div class='del'>-{</div><div class='del'>-    long offset;</div><div class='del'>-</div><div class='del'>-    if (st_lookup(lib_tbl, key, &amp;offset) == 0) return ST_CONTINUE;</div><div class='del'>-    target_offset = offset;</div><div class='del'>-    return ST_STOP;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-struct symdef {</div><div class='del'>-    int rb_str_index;</div><div class='del'>-    int lib_offset;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-const char *dln_librrb_ary_path = DLN_DEFAULT_LIB_PATH;</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-load_lib(const char *lib)</div><div class='del'>-{</div><div class='del'>-    char *path, *file, fbuf[MAXPATHLEN];</div><div class='del'>-    char *envpath = 0;</div><div class='del'>-    char armagic[SARMAG];</div><div class='del'>-    int fd, size;</div><div class='del'>-    struct ar_hdr ahdr;</div><div class='del'>-    st_table *lib_tbl = NULL;</div><div class='del'>-    int *data, nsym;</div><div class='del'>-    struct symdef *base;</div><div class='del'>-    char *name_base;</div><div class='del'>-</div><div class='del'>-    if (dln_init_p == 0) {</div><div class='del'>-	dln_errno = DLN_ENOINIT;</div><div class='del'>-	return -1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (undef_tbl-&gt;num_entries == 0) return 0;</div><div class='del'>-    dln_errno = DLN_EBADLIB;</div><div class='del'>-</div><div class='del'>-    if (lib[0] == '-' &amp;&amp; lib[1] == 'l') {</div><div class='del'>-	long len = strlen(lib) + 4;</div><div class='del'>-	char *p = alloca(len);</div><div class='del'>-	snprintf(p, len, "lib%s.a", lib+2);</div><div class='del'>-	lib = p;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* library search path: */</div><div class='del'>-    /* look for environment variable DLN_LIBRARY_PATH first. */</div><div class='del'>-    /* then variable dln_librrb_ary_path. */</div><div class='del'>-    /* if path is still NULL, use "." for path. */</div><div class='del'>-    path = getenv("DLN_LIBRARY_PATH");</div><div class='del'>-    if (path == NULL) path = dln_librrb_ary_path;</div><div class='del'>-    else path = envpath = strdup(path);</div><div class='del'>-</div><div class='del'>-    file = dln_find_file_r(lib, path, fbuf, sizeof(fbuf));</div><div class='del'>-    if (envpath) free(envpath);</div><div class='del'>-    fd = open(file, O_RDONLY);</div><div class='del'>-    if (fd == -1) goto syserr;</div><div class='del'>-    size = read(fd, armagic, SARMAG);</div><div class='del'>-    if (size == -1) goto syserr;</div><div class='del'>-</div><div class='del'>-    if (size != SARMAG) {</div><div class='del'>-	dln_errno = DLN_ENOTLIB;</div><div class='del'>-	goto badlib;</div><div class='del'>-    }</div><div class='del'>-    size = read(fd, &amp;ahdr, sizeof(ahdr));</div><div class='del'>-    if (size == -1) goto syserr;</div><div class='del'>-    if (size != sizeof(ahdr) || sscanf(ahdr.ar_size, "%d", &amp;size) != 1) {</div><div class='del'>-	goto badlib;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (strncmp(ahdr.ar_name, "__.SYMDEF", 9) == 0) {</div><div class='del'>-	/* make hash table from __.SYMDEF */</div><div class='del'>-</div><div class='del'>-	lib_tbl = st_init_strtable();</div><div class='del'>-	data = (int*)xmalloc(size);</div><div class='del'>-	if (data == NULL) goto syserr;</div><div class='del'>-	size = read(fd, data, size);</div><div class='del'>-	nsym = *data / sizeof(struct symdef);</div><div class='del'>-	base = (struct symdef*)(data + 1);</div><div class='del'>-	name_base = (char*)(base + nsym) + sizeof(int);</div><div class='del'>-	while (nsym &gt; 0) {</div><div class='del'>-	    char *name = name_base + base-&gt;rb_str_index;</div><div class='del'>-</div><div class='del'>-	    st_insert(lib_tbl, name, base-&gt;lib_offset + sizeof(ahdr));</div><div class='del'>-	    nsym--;</div><div class='del'>-	    base++;</div><div class='del'>-	}</div><div class='del'>-	for (;;) {</div><div class='del'>-	    target_offset = -1;</div><div class='del'>-	    st_foreach(undef_tbl, search_undef, lib_tbl);</div><div class='del'>-	    if (target_offset == -1) break;</div><div class='del'>-	    if (load_1(fd, target_offset, 0) == -1) {</div><div class='del'>-		st_free_table(lib_tbl);</div><div class='del'>-		free(data);</div><div class='del'>-		goto badlib;</div><div class='del'>-	    }</div><div class='del'>-	    if (undef_tbl-&gt;num_entries == 0) break;</div><div class='del'>-	}</div><div class='del'>-	free(data);</div><div class='del'>-	st_free_table(lib_tbl);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	/* linear library, need to scan (FUTURE) */</div><div class='del'>-</div><div class='del'>-	for (;;) {</div><div class='del'>-	    int offset = SARMAG;</div><div class='del'>-	    int found = 0;</div><div class='del'>-	    struct exec hdr;</div><div class='del'>-	    struct nlist *syms, *sym, *end;</div><div class='del'>-</div><div class='del'>-	    while (undef_tbl-&gt;num_entries &gt; 0) {</div><div class='del'>-		found = 0;</div><div class='del'>-		lseek(fd, offset, 0);</div><div class='del'>-		size = read(fd, &amp;ahdr, sizeof(ahdr));</div><div class='del'>-		if (size == -1) goto syserr;</div><div class='del'>-		if (size == 0) break;</div><div class='del'>-		if (size != sizeof(ahdr)</div><div class='del'>-		    || sscanf(ahdr.ar_size, "%d", &amp;size) != 1) {</div><div class='del'>-		    goto badlib;</div><div class='del'>-		}</div><div class='del'>-		offset += sizeof(ahdr);</div><div class='del'>-		if (load_header(fd, &amp;hdr, offset) == -1)</div><div class='del'>-		    goto badlib;</div><div class='del'>-		syms = load_sym(fd, &amp;hdr, offset);</div><div class='del'>-		if (syms == NULL) goto badlib;</div><div class='del'>-		sym = syms;</div><div class='del'>-		end = syms + (hdr.a_syms / sizeof(struct nlist));</div><div class='del'>-		while (sym &lt; end) {</div><div class='del'>-		    if (sym-&gt;n_type == N_EXT|N_TEXT</div><div class='del'>-			&amp;&amp; st_lookup(undef_tbl, sym-&gt;n_un.n_name, NULL)) {</div><div class='del'>-			break;</div><div class='del'>-		    }</div><div class='del'>-		    sym++;</div><div class='del'>-		}</div><div class='del'>-		if (sym &lt; end) {</div><div class='del'>-		    found++;</div><div class='del'>-		    free(syms);</div><div class='del'>-		    if (load_1(fd, offset, 0) == -1) {</div><div class='del'>-			goto badlib;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		offset += size;</div><div class='del'>-		if (offset &amp; 1) offset++;</div><div class='del'>-	    }</div><div class='del'>-	    if (found) break;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    close(fd);</div><div class='del'>-    return 0;</div><div class='del'>-</div><div class='del'>-  syserr:</div><div class='del'>-    dln_errno = errno;</div><div class='del'>-  badlib:</div><div class='del'>-    if (fd &gt;= 0) close(fd);</div><div class='del'>-    return -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-load(const char *file)</div><div class='del'>-{</div><div class='del'>-    int fd;</div><div class='del'>-    int result;</div><div class='del'>-</div><div class='del'>-    if (dln_init_p == 0) {</div><div class='del'>-	if (dln_init(dln_argv0) == -1) return -1;</div><div class='del'>-    }</div><div class='del'>-    result = strlen(file);</div><div class='del'>-    if (file[result-1] == 'a') {</div><div class='del'>-	return load_lib(file);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    fd = open(file, O_RDONLY);</div><div class='del'>-    if (fd == -1) {</div><div class='del'>-	dln_errno = errno;</div><div class='del'>-	return -1;</div><div class='del'>-    }</div><div class='del'>-    result = load_1(fd, 0, file);</div><div class='del'>-    close(fd);</div><div class='del'>-</div><div class='del'>-    return result;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void*</div><div class='del'>-dln_sym(const char *name)</div><div class='del'>-{</div><div class='del'>-    struct nlist *sym;</div><div class='del'>-</div><div class='del'>-    if (st_lookup(sym_tbl, name, &amp;sym))</div><div class='del'>-	return (void*)sym-&gt;n_value;</div><div class='del'>-    return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#endif /* USE_DLN_A_OUT */</div><div class='del'>-</div><div class='ctx'> #ifdef USE_DLN_DLOPEN</div><div class='ctx'> # include &lt;dlfcn.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef __hpux</div><div class='del'>-#include &lt;errno.h&gt;</div><div class='del'>-#include "dl.h"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #if defined(_AIX)</div><div class='ctx'> #include &lt;ctype.h&gt;	/* for isdigit()	*/</div><div class='ctx'> #include &lt;errno.h&gt;	/* for global errno	*/</div><div class='hunk'>@@ -1108,10 +158,6 @@ dln_sym(const char *name)</div><div class='ctx'> #define NSLINKMODULE_OPTION_BINDNOW 1</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='del'>-#else</div><div class='del'>-#ifdef MACOSX_DYLD</div><div class='del'>-#include &lt;mach-o/dyld.h&gt;</div><div class='del'>-#endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef _WIN32</div><div class='hunk'>@@ -1128,50 +174,27 @@ dln_strerror(char *message, size_t size)</div><div class='ctx'>     size_t len = snprintf(message, size, "%d: ", error);</div><div class='ctx'> </div><div class='ctx'> #define format_message(sublang) FormatMessage(\</div><div class='del'>-	FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,	\</div><div class='del'>-	NULL, error, MAKELANGID(LANG_NEUTRAL, (sublang)),		\</div><div class='del'>-	message + len, size - len, NULL)</div><div class='add'>+        FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,	\</div><div class='add'>+        NULL, error, MAKELANGID(LANG_NEUTRAL, (sublang)),		\</div><div class='add'>+        message + len, size - len, NULL)</div><div class='ctx'>     if (format_message(SUBLANG_ENGLISH_US) == 0)</div><div class='del'>-	format_message(SUBLANG_DEFAULT);</div><div class='add'>+        format_message(SUBLANG_DEFAULT);</div><div class='ctx'>     for (p = message + len; *p; p++) {</div><div class='del'>-	if (*p == '\n' || *p == '\r')</div><div class='del'>-	    *p = ' ';</div><div class='add'>+        if (*p == '\n' || *p == '\r')</div><div class='add'>+            *p = ' ';</div><div class='ctx'>     }</div><div class='ctx'>     return message;</div><div class='ctx'> }</div><div class='ctx'> #define dln_strerror() dln_strerror(message, sizeof message)</div><div class='del'>-#elif ! defined _AIX</div><div class='add'>+#elif defined USE_DLN_DLOPEN</div><div class='ctx'> static const char *</div><div class='ctx'> dln_strerror(void)</div><div class='ctx'> {</div><div class='del'>-#ifdef USE_DLN_A_OUT</div><div class='del'>-    char *strerror();</div><div class='del'>-</div><div class='del'>-    switch (dln_errno) {</div><div class='del'>-      case DLN_ECONFL:</div><div class='del'>-	return "Symbol name conflict";</div><div class='del'>-      case DLN_ENOINIT:</div><div class='del'>-	return "No initializer given";</div><div class='del'>-      case DLN_EUNDEF:</div><div class='del'>-	return "Unresolved symbols";</div><div class='del'>-      case DLN_ENOTLIB:</div><div class='del'>-	return "Not a library file";</div><div class='del'>-      case DLN_EBADLIB:</div><div class='del'>-	return "Malformed library file";</div><div class='del'>-      case DLN_EINIT:</div><div class='del'>-	return "Not initialized";</div><div class='del'>-      default:</div><div class='del'>-	return strerror(dln_errno);</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef USE_DLN_DLOPEN</div><div class='ctx'>     return (char*)dlerror();</div><div class='del'>-#endif</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(_AIX) &amp;&amp; ! defined(_IA64)</div><div class='add'>+#if defined(_AIX)</div><div class='ctx'> static void</div><div class='ctx'> aix_loaderror(const char *pathname)</div><div class='ctx'> {</div><div class='hunk'>@@ -1181,18 +204,18 @@ aix_loaderror(const char *pathname)</div><div class='ctx'>     snprintf(errbuf, sizeof(errbuf), "load failed - %s. ", pathname);</div><div class='ctx'> </div><div class='ctx'>     if (loadquery(L_GETMESSAGES, &amp;message[0], sizeof(message)) != -1) {</div><div class='del'>-	ERRBUF_APPEND("Please issue below command for detailed reasons:\n\t");</div><div class='del'>-	ERRBUF_APPEND("/usr/sbin/execerror ruby ");</div><div class='del'>-	for (i=0; message[i]; i++) {</div><div class='del'>-	    ERRBUF_APPEND("\"");</div><div class='del'>-	    ERRBUF_APPEND(message[i]);</div><div class='del'>-	    ERRBUF_APPEND("\" ");</div><div class='del'>-	}</div><div class='del'>-	ERRBUF_APPEND("\n");</div><div class='add'>+        ERRBUF_APPEND("Please issue below command for detailed reasons:\n\t");</div><div class='add'>+        ERRBUF_APPEND("/usr/sbin/execerror ruby ");</div><div class='add'>+        for (i=0; message[i]; i++) {</div><div class='add'>+            ERRBUF_APPEND("\"");</div><div class='add'>+            ERRBUF_APPEND(message[i]);</div><div class='add'>+            ERRBUF_APPEND("\" ");</div><div class='add'>+        }</div><div class='add'>+        ERRBUF_APPEND("\n");</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ERRBUF_APPEND(strerror(errno));</div><div class='del'>-	ERRBUF_APPEND("[loadquery failed]");</div><div class='add'>+        ERRBUF_APPEND(strerror(errno));</div><div class='add'>+        ERRBUF_APPEND("[loadquery failed]");</div><div class='ctx'>     }</div><div class='ctx'>     dln_loaderror("%s", errbuf);</div><div class='ctx'> }</div><div class='hunk'>@@ -1210,22 +233,22 @@ rb_w32_check_imported(HMODULE ext, HMODULE mine)</div><div class='ctx'>     desc = ImageDirectoryEntryToData(ext, TRUE, IMAGE_DIRECTORY_ENTRY_IMPORT, &amp;size);</div><div class='ctx'>     if (!desc) return 0;</div><div class='ctx'>     while (desc-&gt;Name) {</div><div class='del'>-	PIMAGE_THUNK_DATA pint = (PIMAGE_THUNK_DATA)((char *)ext + desc-&gt;Characteristics);</div><div class='del'>-	PIMAGE_THUNK_DATA piat = (PIMAGE_THUNK_DATA)((char *)ext + desc-&gt;FirstThunk);</div><div class='del'>-	for (; piat-&gt;u1.Function; piat++, pint++) {</div><div class='del'>-	    static const char prefix[] = "rb_";</div><div class='del'>-	    PIMAGE_IMPORT_BY_NAME pii;</div><div class='del'>-	    const char *name;</div><div class='del'>-</div><div class='del'>-	    if (IMAGE_SNAP_BY_ORDINAL(pint-&gt;u1.Ordinal)) continue;</div><div class='del'>-	    pii = (PIMAGE_IMPORT_BY_NAME)((char *)ext + (size_t)pint-&gt;u1.AddressOfData);</div><div class='del'>-	    name = (const char *)pii-&gt;Name;</div><div class='del'>-	    if (strncmp(name, prefix, sizeof(prefix) - 1) == 0) {</div><div class='del'>-		FARPROC addr = GetProcAddress(mine, name);</div><div class='del'>-		if (addr) return (FARPROC)piat-&gt;u1.Function == addr;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	desc++;</div><div class='add'>+        PIMAGE_THUNK_DATA pint = (PIMAGE_THUNK_DATA)((char *)ext + desc-&gt;Characteristics);</div><div class='add'>+        PIMAGE_THUNK_DATA piat = (PIMAGE_THUNK_DATA)((char *)ext + desc-&gt;FirstThunk);</div><div class='add'>+        for (; piat-&gt;u1.Function; piat++, pint++) {</div><div class='add'>+            static const char prefix[] = "rb_";</div><div class='add'>+            PIMAGE_IMPORT_BY_NAME pii;</div><div class='add'>+            const char *name;</div><div class='add'>+</div><div class='add'>+            if (IMAGE_SNAP_BY_ORDINAL(pint-&gt;u1.Ordinal)) continue;</div><div class='add'>+            pii = (PIMAGE_IMPORT_BY_NAME)((char *)ext + (size_t)pint-&gt;u1.AddressOfData);</div><div class='add'>+            name = (const char *)pii-&gt;Name;</div><div class='add'>+            if (strncmp(name, prefix, sizeof(prefix) - 1) == 0) {</div><div class='add'>+                FARPROC addr = GetProcAddress(mine, name);</div><div class='add'>+                if (addr) return (FARPROC)piat-&gt;u1.Function == addr;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        desc++;</div><div class='ctx'>     }</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='hunk'>@@ -1233,54 +256,92 @@ rb_w32_check_imported(HMODULE ext, HMODULE mine)</div><div class='ctx'> </div><div class='ctx'> #if defined(DLN_NEEDS_ALT_SEPARATOR) &amp;&amp; DLN_NEEDS_ALT_SEPARATOR</div><div class='ctx'> #define translit_separator(src) do { \</div><div class='del'>-	char *tmp = ALLOCA_N(char, strlen(src) + 1), *p = tmp, c; \</div><div class='del'>-	do { \</div><div class='del'>-	    *p++ = ((c = *file++) == '/') ? DLN_NEEDS_ALT_SEPARATOR : c; \</div><div class='del'>-	} while (c); \</div><div class='del'>-	(src) = tmp; \</div><div class='add'>+        char *tmp = ALLOCA_N(char, strlen(src) + 1), *p = tmp, c; \</div><div class='add'>+        do { \</div><div class='add'>+            *p++ = ((c = *file++) == '/') ? DLN_NEEDS_ALT_SEPARATOR : c; \</div><div class='add'>+        } while (c); \</div><div class='add'>+        (src) = tmp; \</div><div class='ctx'>     } while (0)</div><div class='ctx'> #else</div><div class='ctx'> #define translit_separator(str) (void)(str)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef USE_DLN_DLOPEN</div><div class='add'>+# include "ruby/internal/stdbool.h"</div><div class='add'>+# include "internal/warnings.h"</div><div class='add'>+static bool</div><div class='add'>+dln_incompatible_func(void *handle, const char *funcname, void *const fp, const char **libname)</div><div class='add'>+{</div><div class='add'>+    Dl_info dli;</div><div class='add'>+    void *ex = dlsym(handle, funcname);</div><div class='add'>+    if (!ex) return false;</div><div class='add'>+    if (ex == fp) return false;</div><div class='add'>+    if (dladdr(ex, &amp;dli)) {</div><div class='add'>+        *libname = dli.dli_fname;</div><div class='add'>+    }</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> COMPILER_WARNING_PUSH</div><div class='ctx'> #if defined(__clang__) || GCC_VERSION_SINCE(4, 2, 0)</div><div class='ctx'> COMPILER_WARNING_IGNORED(-Wpedantic)</div><div class='ctx'> #endif</div><div class='ctx'> static bool</div><div class='del'>-dln_incompatible_library_p(void *handle)</div><div class='add'>+dln_incompatible_library_p(void *handle, const char **libname)</div><div class='ctx'> {</div><div class='del'>-    void *ex = dlsym(handle, EXTERNAL_PREFIX"ruby_xmalloc");</div><div class='del'>-    return ex &amp;&amp; ex != ruby_xmalloc;</div><div class='add'>+#define check_func(func) \</div><div class='add'>+    if (dln_incompatible_func(handle, EXTERNAL_PREFIX #func, (void *)&amp;func, libname)) \</div><div class='add'>+        return true</div><div class='add'>+    check_func(ruby_xmalloc);</div><div class='add'>+    return false;</div><div class='ctx'> }</div><div class='ctx'> COMPILER_WARNING_POP</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-void*</div><div class='del'>-dln_load(const char *file)</div><div class='add'>+#if !defined(MAC_OS_X_VERSION_MIN_REQUIRED)</div><div class='add'>+/* assume others than old Mac OS X have no problem */</div><div class='add'>+# define dln_disable_dlclose() false</div><div class='add'>+</div><div class='add'>+#elif !defined(MAC_OS_X_VERSION_10_11) || \</div><div class='add'>+    (MAC_OS_X_VERSION_MAX_ALLOWED &lt; MAC_OS_X_VERSION_10_11)</div><div class='add'>+/* targeting older versions only */</div><div class='add'>+# define dln_disable_dlclose() true</div><div class='add'>+</div><div class='add'>+#elif MAC_OS_X_VERSION_MIN_REQUIRED &gt;= MAC_OS_X_VERSION_10_11</div><div class='add'>+/* targeting newer versions only */</div><div class='add'>+# define dln_disable_dlclose() false</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+/* support both versions, and check at runtime */</div><div class='add'>+# include &lt;sys/sysctl.h&gt;</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+dln_disable_dlclose(void)</div><div class='ctx'> {</div><div class='del'>-#if (defined _WIN32 || defined USE_DLN_DLOPEN) &amp;&amp; defined RUBY_EXPORT</div><div class='del'>-    static const char incompatible[] = "incompatible library version";</div><div class='del'>-#endif</div><div class='del'>-#if !defined(_AIX) &amp;&amp; !defined(NeXT)</div><div class='del'>-    const char *error = 0;</div><div class='add'>+    int mib[] = {CTL_KERN, KERN_OSREV};</div><div class='add'>+    int32_t rev;</div><div class='add'>+    size_t size = sizeof(rev);</div><div class='add'>+    if (sysctl(mib, numberof(mib), &amp;rev, &amp;size, NULL, 0)) return true;</div><div class='add'>+    if (rev &lt; MAC_OS_X_VERSION_10_11) return true;</div><div class='add'>+    return false;</div><div class='add'>+}</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined _WIN32</div><div class='del'>-    HINSTANCE handle;</div><div class='del'>-    WCHAR *winfile;</div><div class='del'>-    char message[1024];</div><div class='del'>-    void (*init_fct)();</div><div class='del'>-    char *buf;</div><div class='add'>+#if defined(_WIN32) || defined(USE_DLN_DLOPEN)</div><div class='add'>+static void *</div><div class='add'>+dln_open(const char *file)</div><div class='add'>+{</div><div class='add'>+    static const char incompatible[] = "incompatible library version";</div><div class='add'>+    const char *error = NULL;</div><div class='add'>+    void *handle;</div><div class='ctx'> </div><div class='del'>-    /* Load the file as an object one */</div><div class='del'>-    init_funcname(&amp;buf, file);</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+    char message[1024];</div><div class='ctx'> </div><div class='ctx'>     /* Convert the file path to wide char */</div><div class='del'>-    winfile = rb_w32_mbstr_to_wstr(CP_UTF8, file, -1, NULL);</div><div class='add'>+    WCHAR *winfile = rb_w32_mbstr_to_wstr(CP_UTF8, file, -1, NULL);</div><div class='ctx'>     if (!winfile) {</div><div class='del'>-	dln_memerror();</div><div class='add'>+        dln_memerror();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* Load file */</div><div class='hunk'>@@ -1288,184 +349,147 @@ dln_load(const char *file)</div><div class='ctx'>     free(winfile);</div><div class='ctx'> </div><div class='ctx'>     if (!handle) {</div><div class='del'>-	error = dln_strerror();</div><div class='del'>-	goto failed;</div><div class='add'>+        error = dln_strerror();</div><div class='add'>+        goto failed;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-#if defined _WIN32 &amp;&amp; defined RUBY_EXPORT</div><div class='add'>+# if defined(RUBY_EXPORT)</div><div class='ctx'>     if (!rb_w32_check_imported(handle, rb_libruby_handle())) {</div><div class='del'>-	FreeLibrary(handle);</div><div class='del'>-	error = incompatible;</div><div class='del'>-	goto failed;</div><div class='add'>+        FreeLibrary(handle);</div><div class='add'>+        error = incompatible;</div><div class='add'>+        goto failed;</div><div class='ctx'>     }</div><div class='del'>-#endif</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+#elif defined(USE_DLN_DLOPEN)</div><div class='add'>+</div><div class='add'>+# ifndef RTLD_LAZY</div><div class='add'>+#  define RTLD_LAZY 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef __INTERIX</div><div class='add'>+#  undef RTLD_GLOBAL</div><div class='add'>+# endif</div><div class='add'>+# ifndef RTLD_GLOBAL</div><div class='add'>+#  define RTLD_GLOBAL 0</div><div class='add'>+# endif</div><div class='ctx'> </div><div class='del'>-    if ((init_fct = (void(*)())GetProcAddress(handle, buf)) == NULL) {</div><div class='del'>-	dln_loaderror("%s - %s\n%s", dln_strerror(), buf, file);</div><div class='add'>+    /* Load file */</div><div class='add'>+    handle = dlopen(file, RTLD_LAZY|RTLD_GLOBAL);</div><div class='add'>+    if (handle == NULL) {</div><div class='add'>+        error = dln_strerror();</div><div class='add'>+        goto failed;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    /* Call the init code */</div><div class='del'>-    (*init_fct)();</div><div class='del'>-    return handle;</div><div class='del'>-#else</div><div class='del'>-#ifdef USE_DLN_A_OUT</div><div class='del'>-    if (load(file) == -1) {</div><div class='del'>-	error = dln_strerror();</div><div class='del'>-	goto failed;</div><div class='add'>+# if defined(RUBY_EXPORT)</div><div class='add'>+    {</div><div class='add'>+        const char *libruby_name = NULL;</div><div class='add'>+        if (dln_incompatible_library_p(handle, &amp;libruby_name)) {</div><div class='add'>+            if (dln_disable_dlclose()) {</div><div class='add'>+                /* dlclose() segfaults */</div><div class='add'>+                if (libruby_name) {</div><div class='add'>+                    dln_fatalerror("linked to incompatible %s - %s", libruby_name, file);</div><div class='add'>+                }</div><div class='add'>+                dln_fatalerror("%s - %s", incompatible, file);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                dlclose(handle);</div><div class='add'>+                if (libruby_name) {</div><div class='add'>+                    dln_loaderror("linked to incompatible %s - %s", libruby_name, file);</div><div class='add'>+                }</div><div class='add'>+                error = incompatible;</div><div class='add'>+                goto failed;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    return 0;</div><div class='del'>-#else</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    char *buf;</div><div class='del'>-    /* Load the file as an object one */</div><div class='del'>-    init_funcname(&amp;buf, file);</div><div class='del'>-    translit_separator(file);</div><div class='add'>+    return handle;</div><div class='ctx'> </div><div class='del'>-#ifdef USE_DLN_DLOPEN</div><div class='del'>-#define DLN_DEFINED</div><div class='del'>-    {</div><div class='del'>-	void *handle;</div><div class='del'>-	void (*init_fct)();</div><div class='add'>+  failed:</div><div class='add'>+    dln_loaderror("%s - %s", error, file);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-#ifndef RTLD_LAZY</div><div class='del'>-# define RTLD_LAZY 1</div><div class='del'>-#endif</div><div class='del'>-#ifdef __INTERIX</div><div class='del'>-# undef RTLD_GLOBAL</div><div class='del'>-#endif</div><div class='del'>-#ifndef RTLD_GLOBAL</div><div class='del'>-# define RTLD_GLOBAL 0</div><div class='del'>-#endif</div><div class='add'>+static void *</div><div class='add'>+dln_sym(void *handle, const char *symbol)</div><div class='add'>+{</div><div class='add'>+    void *func;</div><div class='add'>+    const char *error;</div><div class='ctx'> </div><div class='del'>-	/* Load file */</div><div class='del'>-	if ((handle = (void*)dlopen(file, RTLD_LAZY|RTLD_GLOBAL)) == NULL) {</div><div class='del'>-	    error = dln_strerror();</div><div class='del'>-	    goto failed;</div><div class='del'>-	}</div><div class='del'>-# if defined RUBY_EXPORT</div><div class='del'>-	{</div><div class='del'>-	    if (dln_incompatible_library_p(handle)) {</div><div class='del'>-</div><div class='del'>-#   if defined __APPLE__ &amp;&amp; \</div><div class='del'>-    defined(MAC_OS_X_VERSION_MIN_REQUIRED) &amp;&amp; \</div><div class='del'>-    (MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_10_11)</div><div class='del'>-		/* dlclose() segfaults */</div><div class='del'>-		rb_fatal("%s - %s", incompatible, file);</div><div class='del'>-#   else</div><div class='del'>-		dlclose(handle);</div><div class='del'>-		error = incompatible;</div><div class='del'>-		goto failed;</div><div class='del'>-#   endif</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-# endif</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+    char message[1024];</div><div class='ctx'> </div><div class='del'>-	init_fct = (void(*)())(VALUE)dlsym(handle, buf);</div><div class='del'>-	if (init_fct == NULL) {</div><div class='del'>-	    const size_t errlen = strlen(error = dln_strerror()) + 1;</div><div class='del'>-	    error = memcpy(ALLOCA_N(char, errlen), error, errlen);</div><div class='del'>-	    dlclose(handle);</div><div class='del'>-	    goto failed;</div><div class='del'>-	}</div><div class='del'>-	/* Call the init code */</div><div class='del'>-	(*init_fct)();</div><div class='del'>-</div><div class='del'>-	return handle;</div><div class='add'>+    func = GetProcAddress(handle, symbol);</div><div class='add'>+    if (func == NULL) {</div><div class='add'>+        error = dln_strerror();</div><div class='add'>+        goto failed;</div><div class='ctx'>     }</div><div class='del'>-#endif /* USE_DLN_DLOPEN */</div><div class='ctx'> </div><div class='del'>-#ifdef __hpux</div><div class='del'>-#define DLN_DEFINED</div><div class='del'>-    {</div><div class='del'>-	shl_t lib = NULL;</div><div class='del'>-	int flags;</div><div class='del'>-	void (*init_fct)();</div><div class='del'>-</div><div class='del'>-	flags = BIND_DEFERRED;</div><div class='del'>-	lib = shl_load(file, flags, 0);</div><div class='del'>-	if (lib == NULL) {</div><div class='del'>-	    extern int errno;</div><div class='del'>-	    dln_loaderror("%s - %s", strerror(errno), file);</div><div class='del'>-	}</div><div class='del'>-	shl_findsym(&amp;lib, buf, TYPE_PROCEDURE, (void*)&amp;init_fct);</div><div class='del'>-	if (init_fct == NULL) {</div><div class='del'>-	    shl_findsym(&amp;lib, buf, TYPE_UNDEFINED, (void*)&amp;init_fct);</div><div class='del'>-	    if (init_fct == NULL) {</div><div class='del'>-		errno = ENOSYM;</div><div class='del'>-		dln_loaderror("%s - %s", strerror(ENOSYM), file);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	(*init_fct)();</div><div class='del'>-	return (void*)lib;</div><div class='add'>+#elif defined(USE_DLN_DLOPEN)</div><div class='add'>+    func = dlsym(handle, symbol);</div><div class='add'>+    if (func == NULL) {</div><div class='add'>+        const size_t errlen = strlen(error = dln_strerror()) + 1;</div><div class='add'>+        error = memcpy(ALLOCA_N(char, errlen), error, errlen);</div><div class='add'>+        goto failed;</div><div class='ctx'>     }</div><div class='del'>-#endif /* hpux */</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-#if defined(_AIX) &amp;&amp; ! defined(_IA64)</div><div class='del'>-#define DLN_DEFINED</div><div class='del'>-    {</div><div class='del'>-	void (*init_fct)();</div><div class='del'>-</div><div class='del'>-	init_fct = (void(*)())load((char*)file, 1, 0);</div><div class='del'>-	if (init_fct == NULL) {</div><div class='del'>-	    aix_loaderror(file);</div><div class='del'>-	}</div><div class='del'>-	if (loadbind(0, (void*)dln_load, (void*)init_fct) == -1) {</div><div class='del'>-	    aix_loaderror(file);</div><div class='del'>-	}</div><div class='del'>-	(*init_fct)();</div><div class='del'>-	return (void*)init_fct;</div><div class='del'>-    }</div><div class='del'>-#endif /* _AIX */</div><div class='del'>-</div><div class='del'>-#if defined(MACOSX_DYLD)</div><div class='del'>-#define DLN_DEFINED</div><div class='del'>-/*----------------------------------------------------</div><div class='del'>-   By SHIROYAMA Takayuki Psi@fortune.nest.or.jp</div><div class='del'>-</div><div class='del'>-   Special Thanks...</div><div class='del'>-    Yu tomoak-i@is.aist-nara.ac.jp,</div><div class='del'>-    Mi hisho@tasihara.nest.or.jp,</div><div class='del'>-    sunshine@sunshineco.com,</div><div class='del'>-    and... Miss ARAI Akino(^^;)</div><div class='del'>- ----------------------------------------------------*/</div><div class='del'>-    {</div><div class='del'>-	int dyld_result;</div><div class='del'>-	NSObjectFileImage obj_file; /* handle, but not use it */</div><div class='del'>-	/* "file" is module file name .</div><div class='del'>-	   "buf" is pointer to initial function name with "_" . */</div><div class='add'>+    return func;</div><div class='ctx'> </div><div class='del'>-	void (*init_fct)();</div><div class='add'>+  failed:</div><div class='add'>+    dln_loaderror("%s - %s", error, symbol);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='add'>+#if defined(RUBY_DLN_CHECK_ABI) &amp;&amp; defined(USE_DLN_DLOPEN)</div><div class='add'>+static bool</div><div class='add'>+abi_check_enabled_p(void)</div><div class='add'>+{</div><div class='add'>+    const char *val = getenv("RUBY_ABI_CHECK");</div><div class='add'>+    return val == NULL || !(val[0] == '0' &amp;&amp; val[1] == '\0');</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-	dyld_result = NSCreateObjectFileImageFromFile(file, &amp;obj_file);</div><div class='add'>+void *</div><div class='add'>+dln_load(const char *file)</div><div class='add'>+{</div><div class='add'>+#if defined(_WIN32) || defined(USE_DLN_DLOPEN)</div><div class='add'>+    void *handle = dln_open(file);</div><div class='ctx'> </div><div class='del'>-	if (dyld_result != NSObjectFileImageSuccess) {</div><div class='del'>-	    dln_loaderror("Failed to load %.200s", file);</div><div class='del'>-	}</div><div class='add'>+#ifdef RUBY_DLN_CHECK_ABI</div><div class='add'>+    unsigned long long (*abi_version_fct)(void) = (unsigned long long(*)(void))dln_sym(handle, "ruby_abi_version");</div><div class='add'>+    unsigned long long binary_abi_version = (*abi_version_fct)();</div><div class='add'>+    if (binary_abi_version != ruby_abi_version() &amp;&amp; abi_check_enabled_p()) {</div><div class='add'>+        dln_loaderror("incompatible ABI version of binary - %s", file);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-	NSLinkModule(obj_file, file, NSLINKMODULE_OPTION_BINDNOW);</div><div class='add'>+    char *init_fct_name;</div><div class='add'>+    init_funcname(&amp;init_fct_name, file);</div><div class='add'>+    void (*init_fct)(void) = (void(*)(void))dln_sym(handle, init_fct_name);</div><div class='ctx'> </div><div class='del'>-	/* lookup the initial function */</div><div class='del'>-	if (!NSIsSymbolNameDefined(buf)) {</div><div class='del'>-	    dln_loaderror("Failed to lookup Init function %.200s",file);</div><div class='del'>-	}</div><div class='del'>-	init_fct = NSAddressOfSymbol(NSLookupAndBindSymbol(buf));</div><div class='del'>-	(*init_fct)();</div><div class='add'>+    /* Call the init code */</div><div class='add'>+    (*init_fct)();</div><div class='ctx'> </div><div class='del'>-	return (void*)init_fct;</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='add'>+    return handle;</div><div class='ctx'> </div><div class='del'>-#ifndef DLN_DEFINED</div><div class='add'>+#elif defined(_AIX)</div><div class='add'>+    {</div><div class='add'>+        void (*init_fct)(void);</div><div class='add'>+</div><div class='add'>+        init_fct = (void(*)(void))load((char*)file, 1, 0);</div><div class='add'>+        if (init_fct == NULL) {</div><div class='add'>+            aix_loaderror(file);</div><div class='add'>+        }</div><div class='add'>+        if (loadbind(0, (void*)dln_load, (void*)init_fct) == -1) {</div><div class='add'>+            aix_loaderror(file);</div><div class='add'>+        }</div><div class='add'>+        (*init_fct)();</div><div class='add'>+        return (void*)init_fct;</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='ctx'>     dln_notimplement();</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#endif /* USE_DLN_A_OUT */</div><div class='del'>-#endif</div><div class='del'>-#if !defined(_AIX) &amp;&amp; !defined(NeXT)</div><div class='del'>-  failed:</div><div class='del'>-    dln_loaderror("%s - %s", error, file);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'>     return 0;			/* dummy return */</div><div class='ctx'> }</div><div class='head'>diff --git a/dln.h b/dln.h<br/>index d98b2607e2..902f753450 100644<br/>--- a/<a href='/ruby.git/tree/dln.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>dln.h</a><br/>+++ b/<a href='/ruby.git/tree/dln.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>dln.h</a></div><div class='hunk'>@@ -1,3 +1,5 @@</div><div class='add'>+#ifndef DLN_H</div><div class='add'>+#define DLN_H</div><div class='ctx'> /**********************************************************************</div><div class='ctx'> </div><div class='ctx'>   dln.h -</div><div class='hunk'>@@ -9,24 +11,7 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#ifndef DLN_H</div><div class='del'>-#define DLN_H</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-# ifndef  HAVE_PROTOTYPES</div><div class='del'>-#  define HAVE_PROTOTYPES 1</div><div class='del'>-# endif</div><div class='del'>-# ifndef  HAVE_STDARG_PROTOTYPES</div><div class='del'>-#  define HAVE_STDARG_PROTOTYPES 1</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#undef _</div><div class='del'>-#ifdef HAVE_PROTOTYPES</div><div class='del'>-# define _(args) args</div><div class='del'>-#else</div><div class='del'>-# define _(args) ()</div><div class='del'>-#endif</div><div class='add'>+#include "ruby/defines.h"       /* for RUBY_SYMBOL_EXPORT_BEGIN */</div><div class='ctx'> </div><div class='ctx'> RUBY_SYMBOL_EXPORT_BEGIN</div><div class='ctx'> </div><div class='hunk'>@@ -39,11 +24,6 @@ RUBY_SYMBOL_EXPORT_BEGIN</div><div class='ctx'> </div><div class='ctx'> char *dln_find_exe_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);</div><div class='ctx'> char *dln_find_file_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);</div><div class='del'>-</div><div class='del'>-#ifdef USE_DLN_A_OUT</div><div class='del'>-extern char *dln_argv0;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> void *dln_load(const char*);</div><div class='ctx'> </div><div class='ctx'> RUBY_SYMBOL_EXPORT_END</div><div class='head'>diff --git a/dln_find.c b/dln_find.c<br/>index b08612764e..5d380f5d39 100644<br/>--- a/<a href='/ruby.git/tree/dln_find.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>dln_find.c</a><br/>+++ b/<a href='/ruby.git/tree/dln_find.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>dln_find.c</a></div><div class='hunk'>@@ -23,10 +23,6 @@</div><div class='ctx'> # include &lt;stdlib.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef USE_DLN_A_OUT</div><div class='del'>-char *dln_argv0;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #if defined(HAVE_ALLOCA_H)</div><div class='ctx'> #include &lt;alloca.h&gt;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -57,26 +53,26 @@ char *getenv();</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static char *dln_find_1(const char *fname, const char *path, char *buf, size_t size, int exe_flag</div><div class='del'>-			DLN_FIND_EXTRA_ARG_DECL);</div><div class='add'>+                        DLN_FIND_EXTRA_ARG_DECL);</div><div class='ctx'> </div><div class='ctx'> char *</div><div class='ctx'> dln_find_exe_r(const char *fname, const char *path, char *buf, size_t size</div><div class='del'>-	       DLN_FIND_EXTRA_ARG_DECL)</div><div class='add'>+               DLN_FIND_EXTRA_ARG_DECL)</div><div class='ctx'> {</div><div class='ctx'>     char *envpath = 0;</div><div class='ctx'> </div><div class='ctx'>     if (!path) {</div><div class='del'>-	path = getenv(PATH_ENV);</div><div class='del'>-	if (path) path = envpath = strdup(path);</div><div class='add'>+        path = getenv(PATH_ENV);</div><div class='add'>+        if (path) path = envpath = strdup(path);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!path) {</div><div class='del'>-	path =</div><div class='del'>-	    "/usr/local/bin" PATH_SEP</div><div class='del'>-	    "/usr/ucb" PATH_SEP</div><div class='del'>-	    "/usr/bin" PATH_SEP</div><div class='del'>-	    "/bin" PATH_SEP</div><div class='del'>-	    ".";</div><div class='add'>+        path =</div><div class='add'>+            "/usr/local/bin" PATH_SEP</div><div class='add'>+            "/usr/ucb" PATH_SEP</div><div class='add'>+            "/usr/bin" PATH_SEP</div><div class='add'>+            "/bin" PATH_SEP</div><div class='add'>+            ".";</div><div class='ctx'>     }</div><div class='ctx'>     buf = dln_find_1(fname, path, buf, size, 1 DLN_FIND_EXTRA_ARG);</div><div class='ctx'>     if (envpath) free(envpath);</div><div class='hunk'>@@ -85,7 +81,7 @@ dln_find_exe_r(const char *fname, const char *path, char *buf, size_t size</div><div class='ctx'> </div><div class='ctx'> char *</div><div class='ctx'> dln_find_file_r(const char *fname, const char *path, char *buf, size_t size</div><div class='del'>-		DLN_FIND_EXTRA_ARG_DECL)</div><div class='add'>+                DLN_FIND_EXTRA_ARG_DECL)</div><div class='ctx'> {</div><div class='ctx'>     if (!path) path = ".";</div><div class='ctx'>     return dln_find_1(fname, path, buf, size, 0 DLN_FIND_EXTRA_ARG);</div><div class='hunk'>@@ -93,8 +89,8 @@ dln_find_file_r(const char *fname, const char *path, char *buf, size_t size</div><div class='ctx'> </div><div class='ctx'> static char *</div><div class='ctx'> dln_find_1(const char *fname, const char *path, char *fbuf, size_t size,</div><div class='del'>-	   int exe_flag /* non 0 if looking for executable. */</div><div class='del'>-	   DLN_FIND_EXTRA_ARG_DECL)</div><div class='add'>+           int exe_flag /* non 0 if looking for executable. */</div><div class='add'>+           DLN_FIND_EXTRA_ARG_DECL)</div><div class='ctx'> {</div><div class='ctx'>     register const char *dp;</div><div class='ctx'>     register const char *ep;</div><div class='hunk'>@@ -103,7 +99,7 @@ dln_find_1(const char *fname, const char *path, char *fbuf, size_t size,</div><div class='ctx'>     size_t i, fnlen, fspace;</div><div class='ctx'> #ifdef DOSISH</div><div class='ctx'>     static const char extension[][5] = {</div><div class='del'>-	EXECUTABLE_EXTS,</div><div class='add'>+        EXECUTABLE_EXTS,</div><div class='ctx'>     };</div><div class='ctx'>     size_t j;</div><div class='ctx'>     int is_abs = 0, has_path = 0;</div><div class='hunk'>@@ -114,21 +110,21 @@ dln_find_1(const char *fname, const char *path, char *fbuf, size_t size,</div><div class='ctx'>     static const char pathname_too_long[] = "openpath: pathname too long (ignored)\n\</div><div class='ctx'> \tDirectory \"%.*s\"%s\n\tFile \"%.*s\"%s\n";</div><div class='ctx'> #define PATHNAME_TOO_LONG() dln_warning(dln_warning_arg pathname_too_long, \</div><div class='del'>-					((bp - fbuf) &gt; 100 ? 100 : (int)(bp - fbuf)), fbuf, \</div><div class='del'>-					((bp - fbuf) &gt; 100 ? "..." : ""), \</div><div class='del'>-					(fnlen &gt; 100 ? 100 : (int)fnlen), fname, \</div><div class='del'>-					(fnlen &gt; 100 ? "..." : ""))</div><div class='add'>+                                        ((bp - fbuf) &gt; 100 ? 100 : (int)(bp - fbuf)), fbuf, \</div><div class='add'>+                                        ((bp - fbuf) &gt; 100 ? "..." : ""), \</div><div class='add'>+                                        (fnlen &gt; 100 ? 100 : (int)fnlen), fname, \</div><div class='add'>+                                        (fnlen &gt; 100 ? "..." : ""))</div><div class='ctx'> </div><div class='ctx'> #define RETURN_IF(expr) if (expr) return (char *)fname;</div><div class='ctx'> </div><div class='ctx'>     RETURN_IF(!fname);</div><div class='ctx'>     fnlen = strlen(fname);</div><div class='ctx'>     if (fnlen &gt;= size) {</div><div class='del'>-	dln_warning(dln_warning_arg</div><div class='del'>-		    "openpath: pathname too long (ignored)\n\tFile \"%.*s\"%s\n",</div><div class='del'>-		    (fnlen &gt; 100 ? 100 : (int)fnlen), fname,</div><div class='del'>-		    (fnlen &gt; 100 ? "..." : ""));</div><div class='del'>-	return NULL;</div><div class='add'>+        dln_warning(dln_warning_arg</div><div class='add'>+                    "openpath: pathname too long (ignored)\n\tFile \"%.*s\"%s\n",</div><div class='add'>+                    (fnlen &gt; 100 ? 100 : (int)fnlen), fname,</div><div class='add'>+                    (fnlen &gt; 100 ? "..." : ""));</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'> #ifdef DOSISH</div><div class='ctx'> # ifndef CharNext</div><div class='hunk'>@@ -136,52 +132,52 @@ dln_find_1(const char *fname, const char *path, char *fbuf, size_t size,</div><div class='ctx'> # endif</div><div class='ctx'> # ifdef DOSISH_DRIVE_LETTER</div><div class='ctx'>     if (((p[0] | 0x20) - 'a') &lt; 26  &amp;&amp; p[1] == ':') {</div><div class='del'>-	p += 2;</div><div class='del'>-	is_abs = 1;</div><div class='add'>+        p += 2;</div><div class='add'>+        is_abs = 1;</div><div class='ctx'>     }</div><div class='ctx'> # endif</div><div class='ctx'>     switch (*p) {</div><div class='ctx'>       case '/': case '\\':</div><div class='del'>-	is_abs = 1;</div><div class='del'>-	p++;</div><div class='add'>+        is_abs = 1;</div><div class='add'>+        p++;</div><div class='ctx'>     }</div><div class='ctx'>     has_path = is_abs;</div><div class='ctx'>     while (*p) {</div><div class='del'>-	switch (*p) {</div><div class='del'>-	  case '/': case '\\':</div><div class='del'>-	    has_path = 1;</div><div class='del'>-	    ext = 0;</div><div class='del'>-	    p++;</div><div class='del'>-	    break;</div><div class='del'>-	  case '.':</div><div class='del'>-	    ext = p;</div><div class='del'>-	    p++;</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    p = CharNext(p);</div><div class='del'>-	}</div><div class='add'>+        switch (*p) {</div><div class='add'>+          case '/': case '\\':</div><div class='add'>+            has_path = 1;</div><div class='add'>+            ext = 0;</div><div class='add'>+            p++;</div><div class='add'>+            break;</div><div class='add'>+          case '.':</div><div class='add'>+            ext = p;</div><div class='add'>+            p++;</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            p = CharNext(p);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (ext) {</div><div class='del'>-	for (j = 0; STRCASECMP(ext, extension[j]); ) {</div><div class='del'>-	    if (++j == sizeof(extension) / sizeof(extension[0])) {</div><div class='del'>-		ext = 0;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        for (j = 0; STRCASECMP(ext, extension[j]); ) {</div><div class='add'>+            if (++j == sizeof(extension) / sizeof(extension[0])) {</div><div class='add'>+                ext = 0;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     ep = bp = 0;</div><div class='ctx'>     if (!exe_flag) {</div><div class='del'>-	RETURN_IF(is_abs);</div><div class='add'>+        RETURN_IF(is_abs);</div><div class='ctx'>     }</div><div class='ctx'>     else if (has_path) {</div><div class='del'>-	RETURN_IF(ext);</div><div class='del'>-	i = p - fname;</div><div class='del'>-	if (i + 1 &gt; size) goto toolong;</div><div class='del'>-	fspace = size - i - 1;</div><div class='del'>-	bp = fbuf;</div><div class='del'>-	ep = p;</div><div class='del'>-	memcpy(fbuf, fname, i + 1);</div><div class='del'>-	goto needs_extension;</div><div class='add'>+        RETURN_IF(ext);</div><div class='add'>+        i = p - fname;</div><div class='add'>+        if (i + 1 &gt; size) goto toolong;</div><div class='add'>+        fspace = size - i - 1;</div><div class='add'>+        bp = fbuf;</div><div class='add'>+        ep = p;</div><div class='add'>+        memcpy(fbuf, fname, i + 1);</div><div class='add'>+        goto needs_extension;</div><div class='ctx'>     }</div><div class='ctx'>     p = fname;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -193,98 +189,104 @@ dln_find_1(const char *fname, const char *path, char *fbuf, size_t size,</div><div class='ctx'> #undef RETURN_IF</div><div class='ctx'> </div><div class='ctx'>     for (dp = path;; dp = ++ep) {</div><div class='del'>-	register size_t l;</div><div class='del'>-</div><div class='del'>-	/* extract a component */</div><div class='del'>-	ep = strchr(dp, PATH_SEP[0]);</div><div class='del'>-	if (ep == NULL)</div><div class='del'>-	    ep = dp+strlen(dp);</div><div class='del'>-</div><div class='del'>-	/* find the length of that component */</div><div class='del'>-	l = ep - dp;</div><div class='del'>-	bp = fbuf;</div><div class='del'>-	fspace = size - 2;</div><div class='del'>-	if (l &gt; 0) {</div><div class='del'>-	    /*</div><div class='del'>-	    **	If the length of the component is zero length,</div><div class='del'>-	    **	start from the current directory.  If the</div><div class='del'>-	    **	component begins with "~", start from the</div><div class='del'>-	    **	user's $HOME environment variable.  Otherwise</div><div class='del'>-	    **	take the path literally.</div><div class='del'>-	    */</div><div class='del'>-</div><div class='del'>-	    if (*dp == '~' &amp;&amp; (l == 1 ||</div><div class='add'>+        register size_t l;</div><div class='add'>+</div><div class='add'>+        /* extract a component */</div><div class='add'>+        ep = strchr(dp, PATH_SEP[0]);</div><div class='add'>+        if (ep == NULL)</div><div class='add'>+            ep = dp+strlen(dp);</div><div class='add'>+</div><div class='add'>+        /* find the length of that component */</div><div class='add'>+        l = ep - dp;</div><div class='add'>+        bp = fbuf;</div><div class='add'>+        fspace = size - 2;</div><div class='add'>+        if (l &gt; 0) {</div><div class='add'>+            /*</div><div class='add'>+            **	If the length of the component is zero length,</div><div class='add'>+            **	start from the current directory.  If the</div><div class='add'>+            **	component begins with "~", start from the</div><div class='add'>+            **	user's $HOME environment variable.  Otherwise</div><div class='add'>+            **	take the path literally.</div><div class='add'>+            */</div><div class='add'>+</div><div class='add'>+            if (*dp == '~' &amp;&amp; (l == 1 ||</div><div class='ctx'> #if defined(DOSISH)</div><div class='del'>-			       dp[1] == '\\' ||</div><div class='add'>+                               dp[1] == '\\' ||</div><div class='ctx'> #endif</div><div class='del'>-			       dp[1] == '/')) {</div><div class='del'>-		char *home;</div><div class='del'>-</div><div class='del'>-		home = getenv("HOME");</div><div class='del'>-		if (home != NULL) {</div><div class='del'>-		    i = strlen(home);</div><div class='del'>-		    if (fspace &lt; i)</div><div class='del'>-			goto toolong;</div><div class='del'>-		    fspace -= i;</div><div class='del'>-		    memcpy(bp, home, i);</div><div class='del'>-		    bp += i;</div><div class='del'>-		}</div><div class='del'>-		dp++;</div><div class='del'>-		l--;</div><div class='del'>-	    }</div><div class='del'>-	    if (l &gt; 0) {</div><div class='del'>-		if (fspace &lt; l)</div><div class='del'>-		    goto toolong;</div><div class='del'>-		fspace -= l;</div><div class='del'>-		memcpy(bp, dp, l);</div><div class='del'>-		bp += l;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    /* add a "/" between directory and filename */</div><div class='del'>-	    if (ep[-1] != '/')</div><div class='del'>-		*bp++ = '/';</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* now append the file name */</div><div class='del'>-	i = fnlen;</div><div class='del'>-	if (fspace &lt; i) {</div><div class='del'>-	  toolong:</div><div class='del'>-	    PATHNAME_TOO_LONG();</div><div class='del'>-	    goto next;</div><div class='del'>-	}</div><div class='del'>-	fspace -= i;</div><div class='del'>-	memcpy(bp, fname, i + 1);</div><div class='add'>+                               dp[1] == '/')) {</div><div class='add'>+                const char *home;</div><div class='add'>+</div><div class='add'>+                home = getenv("HOME");</div><div class='add'>+                if (home != NULL) {</div><div class='add'>+                    i = strlen(home);</div><div class='add'>+                    if (fspace &lt; i)</div><div class='add'>+                        goto toolong;</div><div class='add'>+                    fspace -= i;</div><div class='add'>+                    memcpy(bp, home, i);</div><div class='add'>+                    bp += i;</div><div class='add'>+                }</div><div class='add'>+                dp++;</div><div class='add'>+                l--;</div><div class='add'>+            }</div><div class='add'>+            if (l &gt; 0) {</div><div class='add'>+                if (fspace &lt; l)</div><div class='add'>+                    goto toolong;</div><div class='add'>+                fspace -= l;</div><div class='add'>+                memcpy(bp, dp, l);</div><div class='add'>+                bp += l;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            /* add a "/" between directory and filename */</div><div class='add'>+            if (ep[-1] != '/')</div><div class='add'>+                *bp++ = '/';</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* now append the file name */</div><div class='add'>+        i = fnlen;</div><div class='add'>+        if (fspace &lt; i) {</div><div class='add'>+            goto toolong;</div><div class='add'>+        }</div><div class='add'>+        fspace -= i;</div><div class='add'>+        memcpy(bp, fname, i + 1);</div><div class='ctx'> </div><div class='ctx'> #if defined(DOSISH)</div><div class='del'>-	if (exe_flag &amp;&amp; !ext) {</div><div class='del'>-	  needs_extension:</div><div class='del'>-	    for (j = 0; j &lt; sizeof(extension) / sizeof(extension[0]); j++) {</div><div class='del'>-		if (fspace &lt; strlen(extension[j])) {</div><div class='del'>-		    PATHNAME_TOO_LONG();</div><div class='del'>-		    continue;</div><div class='del'>-		}</div><div class='del'>-		strlcpy(bp + i, extension[j], fspace);</div><div class='del'>-		if (stat(fbuf, &amp;st) == 0)</div><div class='del'>-		    return fbuf;</div><div class='del'>-	    }</div><div class='del'>-	    goto next;</div><div class='del'>-	}</div><div class='add'>+        if (exe_flag &amp;&amp; !ext) {</div><div class='add'>+            goto needs_extension;</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifndef S_ISREG</div><div class='ctx'> # define S_ISREG(m) (((m) &amp; S_IFMT) == S_IFREG)</div><div class='ctx'> #endif</div><div class='del'>-	if (stat(fbuf, &amp;st) == 0 &amp;&amp; S_ISREG(st.st_mode)) {</div><div class='del'>-	    if (exe_flag == 0) return fbuf;</div><div class='del'>-	    /* looking for executable */</div><div class='del'>-	    if (eaccess(fbuf, X_OK) == 0) return fbuf;</div><div class='del'>-	}</div><div class='add'>+        if (stat(fbuf, &amp;st) == 0 &amp;&amp; S_ISREG(st.st_mode)) {</div><div class='add'>+            if (exe_flag == 0) return fbuf;</div><div class='add'>+            /* looking for executable */</div><div class='add'>+            if (eaccess(fbuf, X_OK) == 0) return fbuf;</div><div class='add'>+        }</div><div class='ctx'>       next:</div><div class='del'>-	/* if not, and no other alternatives, life is bleak */</div><div class='del'>-	if (*ep == '\0') {</div><div class='del'>-	    return NULL;</div><div class='del'>-	}</div><div class='add'>+        /* if not, and no other alternatives, life is bleak */</div><div class='add'>+        if (*ep == '\0') {</div><div class='add'>+            return NULL;</div><div class='add'>+        }</div><div class='add'>+        continue;</div><div class='add'>+</div><div class='add'>+      toolong:</div><div class='add'>+        PATHNAME_TOO_LONG();</div><div class='add'>+        goto next;</div><div class='ctx'> </div><div class='del'>-	/* otherwise try the next component in the search path */</div><div class='add'>+#if defined(DOSISH)</div><div class='add'>+      needs_extension:</div><div class='add'>+        for (j = 0; j &lt; sizeof(extension) / sizeof(extension[0]); j++) {</div><div class='add'>+            if (fspace &lt; strlen(extension[j])) {</div><div class='add'>+                PATHNAME_TOO_LONG();</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            strlcpy(bp + i, extension[j], fspace);</div><div class='add'>+            if (stat(fbuf, &amp;st) == 0)</div><div class='add'>+                return fbuf;</div><div class='add'>+        }</div><div class='add'>+        goto next;</div><div class='add'>+#endif</div><div class='add'>+        /* otherwise try the next component in the search path */</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='head'>diff --git a/dmyenc.c b/dmyenc.c<br/>index 7e006e826c..75b8a2da43 100644<br/>--- a/<a href='/ruby.git/tree/dmyenc.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>dmyenc.c</a><br/>+++ b/<a href='/ruby.git/tree/dmyenc.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>dmyenc.c</a></div><div class='hunk'>@@ -5,6 +5,6 @@ void</div><div class='ctx'> Init_enc(void)</div><div class='ctx'> {</div><div class='ctx'>     if (require("enc/encdb.so") == 1) {</div><div class='del'>-	require("enc/trans/transdb.so");</div><div class='add'>+        require("enc/trans/transdb.so");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='head'>diff --git a/doc/.document b/doc/.document<br/>index d739c9f6bc..f589dda07c 100644<br/>--- a/<a href='/ruby.git/tree/doc/.document?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/.document</a><br/>+++ b/<a href='/ruby.git/tree/doc/.document?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/.document</a></div><div class='hunk'>@@ -1,3 +1,9 @@</div><div class='add'>+*.md</div><div class='add'>+*.rb</div><div class='ctx'> *.rdoc</div><div class='del'>-NEWS-*</div><div class='add'>+contributing</div><div class='add'>+NEWS</div><div class='ctx'> syntax</div><div class='add'>+optparse</div><div class='add'>+rdoc</div><div class='add'>+yjit</div><div class='head'>diff --git a/doc/ChangeLog-0.60_to_1.1 b/doc/ChangeLog-0.60_to_1.1<br/>index 33b0326892..59d195e780 100644<br/>--- a/<a href='/ruby.git/tree/doc/ChangeLog-0.60_to_1.1?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-0.60_to_1.1</a><br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-0.60_to_1.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/ChangeLog-0.60_to_1.1</a></div><div class='hunk'>@@ -28,7 +28,7 @@ Fri Aug  8 11:16:50 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='ctx'> </div><div class='ctx'> Thu Aug  7 11:40:01 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* variable.c (mod_constants): lists constants defiend in the</div><div class='add'>+	* variable.c (mod_constants): lists constants defined in the</div><div class='ctx'> 	  modules/classes.</div><div class='ctx'> </div><div class='ctx'> 	* variable.c (rb_const_set): no longer warns about constant</div><div class='hunk'>@@ -49,7 +49,7 @@ Mon Aug  4 11:50:28 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='ctx'> 	  classes (or modules) dynamically.</div><div class='ctx'> </div><div class='ctx'> 	* variable.c (rb_class_path): scan class constants for anonymous</div><div class='del'>-	  classes/modules to make up pathes.</div><div class='add'>+	  classes/modules to make up paths.</div><div class='ctx'> </div><div class='ctx'> Wed Jul 30 08:45:12 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -76,7 +76,7 @@ Wed Jul 23 09:56:55 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='ctx'> 	  specified object.</div><div class='ctx'> </div><div class='ctx'> 	* class.c (mod_instance_methods): returns list of method names of</div><div class='del'>-	  the class instnace.</div><div class='add'>+	  the class instance.</div><div class='ctx'> </div><div class='ctx'> Fri Jul 11 22:38:55 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -538,7 +538,7 @@ Wed Mar 12 10:20:30 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='ctx'> Mon Mar 10 20:44:22 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* re.c (reg_regsub): \&amp; for substitution.  \`, \', and \+ are</div><div class='del'>-	  avaiable also.</div><div class='add'>+	  available also.</div><div class='ctx'> </div><div class='ctx'> Thu Mar  6 01:47:03 1997  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -3166,7 +3166,7 @@ Fri Aug 11 14:37:03 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* io.c: ãƒžã‚¯ãƒ­READ_DATA_PENDINGã®å®šç¾©ã‚’å¤‰æ›´(Linuxå¯¾å¿œ)</div><div class='ctx'> </div><div class='del'>-	* io.c (io_fptr_finalize): fptrã®é–‹æ”¾æ™‚ã®å‡¦ç†ã‚’æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='add'>+	* io.c (io_fptr_finalize): fptrã®è§£æ”¾æ™‚ã®å‡¦ç†ã‚’æŒ‡å®šã§ãã‚‹ã‚ˆã†ã«ï¼Ž</div><div class='ctx'> </div><div class='ctx'> Wed Aug  9 16:52:41 1995  Yukihiro Matsumoto  &lt;matz@caelum.co.jp&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -3448,7 +3448,7 @@ Thu May 18 12:27:23 1995  Yukihiro Matsumoto  &lt;matz@ix-02&gt;</div><div class='ctx'> 	  ç„¡ããªã£ãŸ(ã¨æ€ã†)ï¼Ž</div><div class='ctx'> </div><div class='ctx'> 	* gc.c (gc): the_scopeã‚’ãƒžãƒ¼ã‚¯ã—ã¦ã„ãªã‹ã£ãŸã®ã§ï¼Œãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã®æŒ‡</div><div class='del'>-	  ã—ã¦ã„ã‚‹ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒé–“é•ã£ã¦é–‹æ”¾ã•ã‚Œã‚‹å ´åˆãŒã‚ã£ãŸï¼Ž</div><div class='add'>+	  ã—ã¦ã„ã‚‹ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆãŒé–“é•ã£ã¦è§£æ”¾ã•ã‚Œã‚‹å ´åˆãŒã‚ã£ãŸï¼Ž</div><div class='ctx'> </div><div class='ctx'> 	* gc.c (mark_locations_array): è‹¥å¹²ã®é«˜é€ŸåŒ–ï¼Ž</div><div class='ctx'> </div><div class='hunk'>@@ -3573,7 +3573,7 @@ Fri Mar 17 15:56:44 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='ctx'> 	* dln.c: dlopenã®ã‚ã‚‹ãƒžã‚·ãƒ³ã§ã¯ãã¡ã‚‰ã‚’ä½¿ã†ã‚ˆã†ã«ï¼ŽãŸã ã—ï¼Œã¡ã‚ƒã‚“</div><div class='ctx'> 	  ã¨å‹•ã„ã¦ã„ã‚‹ã‹ã©ã†ã‹ã¯è‡ªä¿¡ãŒãªã„ï¼Ž</div><div class='ctx'> </div><div class='del'>-	* regex.c: virtual concatinationã‚’ã‚„ã‚ãŸï¼Ž</div><div class='add'>+	* regex.c: virtual concatenationã‚’ã‚„ã‚ãŸï¼Ž</div><div class='ctx'> </div><div class='ctx'> Thu Mar 16 11:32:57 1995  Yukihiro Matsumoto  (matz@ix-02)</div><div class='ctx'> </div><div class='head'>diff --git a/doc/ChangeLog-1.8.0 b/doc/ChangeLog-1.8.0<br/>index 3f7d6bfb3c..6d9453d011 100644<br/>--- a/<a href='/ruby.git/tree/doc/ChangeLog-1.8.0?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-1.8.0</a><br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-1.8.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/ChangeLog-1.8.0</a></div><div class='hunk'>@@ -13020,7 +13020,7 @@ Tue Jun 12 00:41:18 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Mon Jun 11 14:29:41 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* confgure.in: add RUBY_CANONICAL_BUILD.</div><div class='add'>+	* configure.in: add RUBY_CANONICAL_BUILD.</div><div class='ctx'> </div><div class='ctx'> Sun Jun 10 17:31:47 2001  Guy Decoux  &lt;decoux@moulon.inra.fr&gt;</div><div class='ctx'> </div><div class='head'>diff --git a/doc/ChangeLog-1.9.3 b/doc/ChangeLog-1.9.3<br/>index eecfc44325..0f80eed2d5 100644<br/>--- a/<a href='/ruby.git/tree/doc/ChangeLog-1.9.3?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-1.9.3</a><br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-1.9.3?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/ChangeLog-1.9.3</a></div><div class='hunk'>@@ -5746,7 +5746,7 @@ Wed Mar  2 14:06:01 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> Wed Mar  2 14:02:29 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* test/testunit/test_parallel.rb(TestParallel#spawn_runner):</div><div class='del'>-	  Fix outputing empty line in running test.</div><div class='add'>+	  Fix outputting empty line in running test.</div><div class='ctx'> </div><div class='ctx'> 	* test/testunit/tests_for_parallel/test_third.rb: Remove `sleep`</div><div class='ctx'> </div><div class='hunk'>@@ -5765,7 +5765,7 @@ Tue Mar  1 21:48:22 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='ctx'> 	* test/testunit/test_parallel.rb(TestParallelWorker#test_quit_in_test):</div><div class='ctx'> 	  Fix for above specification change.</div><div class='ctx'> 	* test/testunit/test_parallel.rb(TestParallel#spawn_runner):</div><div class='del'>-	  Fix outputing empty line in running test.</div><div class='add'>+	  Fix outputting empty line in running test.</div><div class='ctx'> </div><div class='ctx'> Tue Mar  1 20:51:57 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -7541,7 +7541,7 @@ Tue Jan 11 20:32:59 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='ctx'> Tue Jan 11 13:06:38 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (rb_ary_resize): should care of embeded array when extending</div><div class='add'>+	* array.c (rb_ary_resize): should care of embedded array when extending</div><div class='ctx'> 	  the array.</div><div class='ctx'> </div><div class='ctx'> 	* array.c (rb_ary_resize): need to set capa when changing the real</div><div class='hunk'>@@ -9563,7 +9563,7 @@ Wed Nov 17 16:09:52 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='ctx'> </div><div class='ctx'> Wed Nov 17 16:04:23 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* test/ruby/envutil.rb (Test::Unit::Assersions#assert_warn):</div><div class='add'>+	* test/ruby/envutil.rb (Test::Unit::Assertions#assert_warn):</div><div class='ctx'> 	  new assertion to assert that a particular warning message is</div><div class='ctx'> 	  displayed.</div><div class='ctx'> 	  forward port from branches/ruby_1_9_2@29795.</div><div class='hunk'>@@ -9781,7 +9781,7 @@ Wed Nov 10 07:20:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> Tue Nov  9 21:57:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* dln.c (init_funcname): allocate and build initialization</div><div class='del'>-	  funciton name at once.</div><div class='add'>+	  function name at once.</div><div class='ctx'> </div><div class='ctx'> Tue Nov  9 21:14:54 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -23228,7 +23228,7 @@ Fri Sep 11 10:38:33 2009  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* lib/net/http.rb (Net::HTTPHeader::encode_kvpair): also call to_s</div><div class='ctx'> 	  to k.  A patch from swdyh &lt;youhei@gmail.com&gt;</div><div class='del'>-	  http://github.com/swdyh/ruby/tree/c847f43c2ccb679b9ff728f8b1b16c6ceeb57f39</div><div class='add'>+	  https://github.com/swdyh/ruby/tree/c847f43c2ccb679b9ff728f8b1b16c6ceeb57f39</div><div class='ctx'> </div><div class='ctx'> Fri Sep 11 09:45:11 2009  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -62969,7 +62969,7 @@ Thu Jul 12 12:24:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Thu Jul 12 10:30:46 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* thread.c (thread_start_func_2): moved prototye from thread_*.ci.</div><div class='add'>+	* thread.c (thread_start_func_2): moved prototype from thread_*.ci.</div><div class='ctx'> </div><div class='ctx'> 	* thread_pthread.ci (thread_start_func_2): not use a directive</div><div class='ctx'> 	  inside a macro argument.  [ruby-talk:258763]</div><div class='hunk'>@@ -73273,7 +73273,7 @@ Fri Nov 18 17:35:09 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/multi-tk.rb: add restriction to access the entried</div><div class='ctx'> 	  command table and manipulate other IPs (for reason of security).</div><div class='del'>-	  Now, a IP object can be controlled by only its master IP or the</div><div class='add'>+	  Now, an IP object can be controlled by only its master IP or the</div><div class='ctx'> 	  default IP.</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/remote-tk.rb: add restriction to manipulate.</div><div class='hunk'>@@ -76346,7 +76346,7 @@ Tue Jul  5 14:52:56 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/tk/validation.rb: ditto.</div><div class='ctx'> </div><div class='del'>-	* ext/tk/lib/tk/namespace.rb: arguemnts for TclTkIp#_merge_tklist</div><div class='add'>+	* ext/tk/lib/tk/namespace.rb: arguments for TclTkIp#_merge_tklist</div><div class='ctx'> 	  should be UTF-8 strings.</div><div class='ctx'> </div><div class='ctx'> Mon Jul  4 19:29:32 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='hunk'>@@ -77285,7 +77285,7 @@ Sun May 15 09:57:30 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> Sat May 14 23:59:11 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* error.c (exc_exception, {exit,name_err,syserr}_initialize): call</div><div class='del'>-	  Execption#initialize.  fixed: [ruby-talk:142593]</div><div class='add'>+	  Exception#initialize.  fixed: [ruby-talk:142593]</div><div class='ctx'> </div><div class='ctx'> Sat May 14 23:56:41 2005  Erik Huelsmann  &lt;ehuels@gmail.com&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -77435,7 +77435,7 @@ Sat Apr 30 06:57:39 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='ctx'> 	  (suggested by Tatsuki Sugiura)</div><div class='ctx'> </div><div class='ctx'> 	* lib/webrick/cgi.rb</div><div class='del'>-	  (WEBrick::CGI#initalize): set a dummy to @config[:ServerSoftware]</div><div class='add'>+	  (WEBrick::CGI#initialize): set a dummy to @config[:ServerSoftware]</div><div class='ctx'> 	  if SERVER_SOFTWARE environment variable is not given.</div><div class='ctx'> 	  (WEBrick::CGI#start): req.path_info must be a String.</div><div class='ctx'> 	  (WEBrick::CGI::Socket#request_line): treat REQUEST_METHOD, PATH_INFO</div><div class='hunk'>@@ -82696,7 +82696,7 @@ Tue Sep 14 20:24:49 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='ctx'> 	* ext/ripper/depend: Borland make does not accept pipes in</div><div class='ctx'> 	  Makefile rules. [ruby-dev:24589]</div><div class='ctx'> </div><div class='del'>-	* ext/ripper/depend: separate rules for developpers.</div><div class='add'>+	* ext/ripper/depend: separate rules for developers.</div><div class='ctx'> </div><div class='ctx'> 	* ext/ripper/Makefile.dev: new file.</div><div class='ctx'> </div><div class='hunk'>@@ -82931,7 +82931,7 @@ Wed Sep  8 18:44:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Wed Sep  8 15:19:49 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_init): cannot create a IP at level 4</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_init): cannot create an IP at level 4</div><div class='ctx'> </div><div class='ctx'> 	* ext/tk/lib/multi-tk.rb: improve 'exit' operation, security check,</div><div class='ctx'> 	  and error treatment</div><div class='hunk'>@@ -88452,7 +88452,7 @@ Tue Dec 16 03:17:29 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Tue Dec 16 01:14:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (catch_timer): check rb_thread_crtical in main native</div><div class='add'>+	* eval.c (catch_timer): check rb_thread_critical in main native</div><div class='ctx'> 	  thread.</div><div class='ctx'> </div><div class='ctx'> 	* eval.c (thread_timer): just sends signals periodically, to</div><div class='hunk'>@@ -92076,7 +92076,7 @@ Mon Sep  1 16:59:10 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* eval.c (rb_thread_start_0): should not error_print() within</div><div class='ctx'> 	  terminated thread, because $stderr used by it might be</div><div class='del'>-	  overriden now.  [ruby-dev:21280]</div><div class='add'>+	  overridden now.  [ruby-dev:21280]</div><div class='ctx'> </div><div class='ctx'> Sun Aug 31 22:46:55 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -92616,7 +92616,7 @@ Fri Aug  8 03:22:28 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='ctx'> </div><div class='ctx'> Thu Aug  7 14:40:37 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* cygwin/GNUmakefile: better --disbale-shared option support.</div><div class='add'>+	* cygwin/GNUmakefile: better --disable-shared option support.</div><div class='ctx'> </div><div class='ctx'> 	* cygwin/GNUmakefile: add forwarding DLL target for cygwin.</div><div class='ctx'> </div><div class='head'>diff --git a/doc/ChangeLog-2.0.0 b/doc/ChangeLog-2.0.0<br/>index a1a79b8dca..9e654db189 100644<br/>--- a/<a href='/ruby.git/tree/doc/ChangeLog-2.0.0?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-2.0.0</a><br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-2.0.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/ChangeLog-2.0.0</a></div><div class='hunk'>@@ -9758,7 +9758,7 @@ Thu Aug 23 16:20:04 2012  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 	  are b10.</div><div class='ctx'> 	  If flonum is activated, then USE_FLONUM macro is 1.</div><div class='ctx'> 	  I'll write detailed in this technique on</div><div class='del'>-	  https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/Flonum_tech</div><div class='add'>+	  https://bugs.ruby-lang.org/projects/ruby-master/wiki/Flonum_tech</div><div class='ctx'> </div><div class='ctx'> 	* benchmark/bmx_temp.rb: add an benchmark for simple</div><div class='ctx'> 	  Float calculation.</div><div class='hunk'>@@ -13008,7 +13008,7 @@ Thu Jun  7 15:53:03 2012  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* .gdbinit: add function `trace_machine_instructions' to trace</div><div class='ctx'> 	  in native machine assemble.</div><div class='del'>-	  See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/MachineInstructionsTraceWithGDB</div><div class='add'>+	  See https://bugs.ruby-lang.org/projects/ruby-master/wiki/MachineInstructionsTraceWithGDB</div><div class='ctx'> 	  for more details.</div><div class='ctx'> </div><div class='ctx'> Wed Jun  6 21:31:21 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='hunk'>@@ -14711,7 +14711,7 @@ Fri Apr 27 01:45:05 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> 	  (22) main thread waits at gvl_yield:112 (native_cond_wait)</div><div class='ctx'> 	  As described above, the main thread can't escape from</div><div class='ctx'> 	  rb_threadptr_execute_interrupts_common.</div><div class='del'>-	  See extended memo: http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/R35480_ExtendedMemo</div><div class='add'>+	  See extended memo: http://bugs.ruby-lang.org/projects/ruby-master/wiki/R35480_ExtendedMemo</div><div class='ctx'> </div><div class='ctx'> Fri Apr 27 07:15:07 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -16451,7 +16451,7 @@ Mon Mar  5 17:11:44 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> 	  Exception#initialize doesn't use visible instance variable for</div><div class='ctx'> 	  the exception message, so call the method with the message.</div><div class='ctx'> 	  patched by Jingwen Owen Ou &lt;jingweno AT gmail.com&gt;.</div><div class='del'>-	  http://github.com/ruby/ruby/pull/41</div><div class='add'>+	  https://github.com/ruby/ruby/pull/41</div><div class='ctx'> </div><div class='ctx'> Mon Mar  5 16:50:22 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -16858,13 +16858,13 @@ Fri Feb 24 13:54:33 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> Fri Feb 24 12:07:34 2012  Ayumu AIZAWA  &lt;ayumu.aizawa@gmail.com&gt;</div><div class='ctx'> </div><div class='ctx'> 	* lib/net/http.rb: Fix documentation. Patched from Florian Mhun</div><div class='del'>-	  via http://github.com/ruby/ruby/pull/96</div><div class='add'>+	  via https://github.com/ruby/ruby/pull/96</div><div class='ctx'> </div><div class='ctx'> Fri Feb 24 11:48:07 2012  Ayumu AIZAWA  &lt;ayumu.aizawa@gmail.com&gt;</div><div class='ctx'> </div><div class='ctx'> 	* string.c (rb_str_prepend): Fix documentation for String#prepend.</div><div class='del'>-	  Patched from Franck Verrot via http://github.com/ruby/ruby/pull/98</div><div class='del'>-	  and Andrew Horsman via http://github.com/ruby/ruby/pull/55</div><div class='add'>+	  Patched from Franck Verrot via https://github.com/ruby/ruby/pull/98</div><div class='add'>+	  and Andrew Horsman via https://github.com/ruby/ruby/pull/55</div><div class='ctx'> </div><div class='ctx'> Fri Feb 24 10:08:33 2012  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='head'>diff --git a/doc/ChangeLog-2.1.0 b/doc/ChangeLog-2.1.0<br/>index 76edfd3ce7..5b670b31c9 100644<br/>--- a/<a href='/ruby.git/tree/doc/ChangeLog-2.1.0?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-2.1.0</a><br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-2.1.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/ChangeLog-2.1.0</a></div><div class='hunk'>@@ -3596,7 +3596,7 @@ Tue Oct 22 19:19:05 2013  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 	    maintains all pages.</div><div class='ctx'> 	    For example, pages are allocated from the heap_pages.</div><div class='ctx'> </div><div class='del'>-	  See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design</div><div class='add'>+	  See https://bugs.ruby-lang.org/projects/ruby-master/wiki/GC_design</div><div class='ctx'> 	  and https://bugs.ruby-lang.org/attachments/4015/data-heap_structure_with_multiple_heaps.png</div><div class='ctx'> 	  for more details.</div><div class='ctx'> </div><div class='hunk'>@@ -8612,7 +8612,7 @@ Wed Jul 17 14:31:13 2013  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 	  (4) heap::sorted is an array of "slots", sorted by an address of</div><div class='ctx'> 	      slot::body.</div><div class='ctx'> </div><div class='del'>-	  See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design</div><div class='add'>+	  See https://bugs.ruby-lang.org/projects/ruby-master/wiki/GC_design</div><div class='ctx'> 	  for more details (figure).</div><div class='ctx'> </div><div class='ctx'> 	* gc.c: Avoid "heaps" terminology. It is ambiguous.</div><div class='head'>diff --git a/doc/ChangeLog-2.3.0 b/doc/ChangeLog-2.3.0<br/>index 7f3c4e672a..94996cffd0 100644<br/>--- a/<a href='/ruby.git/tree/doc/ChangeLog-2.3.0?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-2.3.0</a><br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-2.3.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/ChangeLog-2.3.0</a></div><div class='hunk'>@@ -170,7 +170,7 @@ Tue Dec 22 14:31:28 2015  Toru Iwase  &lt;tietew@tietew.net&gt;</div><div class='ctx'> 	  should return unfrozen new string.</div><div class='ctx'> 	  [ruby-core:72426] [Bug #11858]</div><div class='ctx'> </div><div class='del'>-Tue Dec 22 05:39:58 2015  Takashi Kokubun  &lt;takashikkbn@gmail.com&gt;</div><div class='add'>+Tue Dec 22 05:39:58 2015  Takashi Kokubun  &lt;k0kubun@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/cgi/escape/escape.c (preserve_original_state): Preserve</div><div class='ctx'> 	  original state for tainted and frozen.  [Fix GH-1166]</div><div class='hunk'>@@ -208,7 +208,7 @@ Mon Dec 21 09:33:17 2015  Karol Bucek  &lt;kares@users.noreply.github.com&gt;</div><div class='ctx'> 	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLSocket): fix</div><div class='ctx'> 	  NotImplementedError typo.  [Fix GH-1165]</div><div class='ctx'> </div><div class='del'>-Sun Dec 20 20:54:51 2015  Takashi Kokubun  &lt;takashikkbn@gmail.com&gt;</div><div class='add'>+Sun Dec 20 20:54:51 2015  Takashi Kokubun  &lt;k0kubun@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* cgi/escape/escape.c: Optimize CGI.escapeHTML for</div><div class='ctx'> 	  ASCII-compatible encodings.  [Fix GH-1164]</div><div class='hunk'>@@ -476,7 +476,7 @@ Tue Dec 15 17:57:57 2015  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='ctx'> 	  to the correct one in the IANA registry (IBM037)</div><div class='ctx'> 	  and added an alias (ebcdic-cp-us)</div><div class='ctx'> </div><div class='del'>-Tue Dec 15 16:19:26 2015  Takashi Kokubun  &lt;takashikkbn@gmail.com&gt;</div><div class='add'>+Tue Dec 15 16:19:26 2015  Takashi Kokubun  &lt;k0kubun@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* lib/erb.rb: Render erb with array buffer for function call optimization.</div><div class='ctx'> 	  [fix GH-1143]</div><div class='hunk'>@@ -488,7 +488,7 @@ Tue Dec 15 13:50:05 2015  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> 	* string.c (rb_str_oct): [DOC] mention radix indicators.</div><div class='ctx'> 	  [ruby-core:71310] [Bug #11648]</div><div class='ctx'> </div><div class='del'>-Tue Dec 15 12:20:30 2015  Takashi Kokubun  &lt;takashikkbn@gmail.com&gt;</div><div class='add'>+Tue Dec 15 12:20:30 2015  Takashi Kokubun  &lt;k0kubun@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* lib/erb.rb: Simplify regexp to optimize erb scanner.</div><div class='ctx'> 	  [fix GH-1144]</div><div class='hunk'>@@ -2670,7 +2670,7 @@ Sat Nov  7 09:51:38 2015  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 	* vm_trace.c (rb_threadptr_exec_event_hooks_orig):</div><div class='ctx'> 	  maintain trace_running counter on internal events.</div><div class='ctx'> </div><div class='del'>-	  This patch is made by Takashi Kokubun &lt;takashikkbn@gmail.com&gt;.</div><div class='add'>+	  This patch is made by Takashi Kokubun &lt;k0kubun@ruby-lang.org&gt;.</div><div class='ctx'> 	  [Bug #11603] https://github.com/ruby/ruby/pull/1059</div><div class='ctx'> </div><div class='ctx'> Sat Nov  7 03:32:27 2015  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='hunk'>@@ -5283,7 +5283,7 @@ Sat Aug  1 06:54:36 2015  Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* ext/openssl/ossl_ssl.c (Init_ossl_ssl): OpenSSL declares these</div><div class='ctx'> 	  constants as longs, so we should follow that and use LONG2NUM.</div><div class='del'>-	  http://git.io/vOqxD</div><div class='add'>+	  https://github.com/openssl/openssl/blob/34750dc25d74e3db4c1ba43cd219d3f4825e4c65/include/openssl/ssl.h#L391</div><div class='ctx'> </div><div class='ctx'> Sat Aug  1 04:06:29 2015  Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -6754,7 +6754,8 @@ Thu Jul  2 09:51:44 2015  SHIBATA Hiroshi  &lt;hsbt@ruby-lang.org&gt;</div><div class='ctx'> Thu Jul  2 06:49:44 2015  SHIBATA Hiroshi  &lt;hsbt@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> 	* lib/rubygems: Update to RubyGems HEAD(c202db2).</div><div class='del'>-	  this version contains many enhancements see http://git.io/vtNwF</div><div class='add'>+	  this version contains many enhancements see</div><div class='add'>+	  https://github.com/rubygems/rubygems/blob/c202db2d681eb3c3a02f187d346fbb2e8d733b26/History.txt#L3</div><div class='ctx'> 	* test/rubygems: ditto.</div><div class='ctx'> </div><div class='ctx'> Wed Jul  1 23:50:34 2015  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='head'>diff --git a/doc/ChangeLog-2.4.0 b/doc/ChangeLog-2.4.0<br/>index 96b5ecb077..a297a579d1 100644<br/>--- a/<a href='/ruby.git/tree/doc/ChangeLog-2.4.0?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-2.4.0</a><br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-2.4.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/ChangeLog-2.4.0</a></div><div class='hunk'>@@ -792,7 +792,7 @@ Wed Oct  5 12:57:21 2016  Richard Schneeman  &lt;richard.schneeman+foo@gmail.com&gt;</div><div class='ctx'> </div><div class='ctx'> Wed Oct  5 11:47:19 2016  SHIBATA Hiroshi  &lt;hsbt@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c: Fixed equivalent ruby code with core implemention.</div><div class='add'>+	* io.c: Fixed equivalent ruby code with core implementation.</div><div class='ctx'> 	  [fix GH-1429][ci skip] Patch by @sos4nt</div><div class='ctx'> </div><div class='ctx'> Wed Oct  5 11:36:21 2016  SHIBATA Hiroshi  &lt;hsbt@ruby-lang.org&gt;</div><div class='hunk'>@@ -888,7 +888,7 @@ Sun Oct  2 02:03:06 2016  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='ctx'> Sat Oct  1 23:08:47 2016  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/date/date_parse.c (date_zone_to_diff): it's nonsence and really</div><div class='add'>+	* ext/date/date_parse.c (date_zone_to_diff): it's nonsense and really</div><div class='ctx'> 	  harm that to use unary minus operator with unsigned value.</div><div class='ctx'> 	  get rid of test failures introduced at r56312.</div><div class='ctx'> </div><div class='head'>diff --git a/doc/ChangeLog-2016 b/doc/ChangeLog-2016<br/>deleted file mode 100644<br/>index c708428a93..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/ChangeLog-2016?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-2016</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,5 +0,0 @@</div><div class='del'>-------------------------------------------------------------------------</div><div class='del'>-r56645 | naruse | 2016-11-07 00:56:27 +0900 (Mon, 07 Nov 2016) | 1 line</div><div class='del'>-</div><div class='del'>-Obsolete ChangeLog [Feature #12283]</div><div class='del'>-------------------------------------------------------------------------</div><div class='head'>diff --git a/doc/ChangeLog-YARV b/doc/ChangeLog-YARV<br/>index a8b999dff2..83df05c52c 100644<br/>--- a/<a href='/ruby.git/tree/doc/ChangeLog-YARV?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/ChangeLog-YARV</a><br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-YARV?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/ChangeLog-YARV</a></div><div class='hunk'>@@ -493,7 +493,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* thread.c : remove some line break</div><div class='ctx'> </div><div class='del'>-	* yarvcore.c : reoder initialize sequence to mark main thread</div><div class='add'>+	* yarvcore.c : reorder initialize sequence to mark main thread</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> 2006-08-18(Fri) 16:51:34 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='hunk'>@@ -1481,7 +1481,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* yarvcore.c : ditto</div><div class='ctx'> </div><div class='del'>-	* yarvtest/test_thread.rb : separete assersions to tests</div><div class='add'>+	* yarvtest/test_thread.rb : separate assertions to tests</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> 2006-02-21(Tue) 02:13:33 +900  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='hunk'>@@ -1503,7 +1503,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* yarvcore.c : support Proc#dup/clone, Binding#dup/clone</div><div class='ctx'> </div><div class='del'>-	* sample/test.rb : remove unsupport features (Proc as Binding)</div><div class='add'>+	* sample/test.rb : remove unsupported features (Proc as Binding)</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> 2006-02-20(Mon) 16:28:59 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='hunk'>@@ -1560,7 +1560,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 	* yarvtest/test_thread.rb : add a test for above</div><div class='ctx'> </div><div class='ctx'> 	* vm.h, vm.c, vm_dump.c, insns.def : add FRAME_MAGIC_LAMBDA and</div><div class='del'>-	support return from lambda (especially retrun from method defined</div><div class='add'>+	support return from lambda (especially return from method defined</div><div class='ctx'> 	by "define_method")</div><div class='ctx'> </div><div class='ctx'> 	* yarvtest/test_method.rb : add a test for above</div><div class='hunk'>@@ -1606,7 +1606,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* vm.c : "return" from lambda{} break block</div><div class='ctx'> </div><div class='del'>-	* eval.c : Unsupport Proc as Binding</div><div class='add'>+	* eval.c : Unsupported Proc as Binding</div><div class='ctx'> </div><div class='ctx'> 	* test/ruby/test_eval.rb : apply above changes</div><div class='ctx'> </div><div class='hunk'>@@ -3816,7 +3816,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 2005-12-29(Thu) 12:27:12 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* compile.c, yarvcore.h :</div><div class='del'>-	remvoe needless yarv_iseq_t#rewind_frame_size</div><div class='add'>+	remove needless yarv_iseq_t#rewind_frame_size</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> 2005-12-29(Thu) 11:17:58 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='hunk'>@@ -4530,7 +4530,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* vm.c : fix return process</div><div class='ctx'> </div><div class='del'>-	* vm_macro.def : fix option prameters</div><div class='add'>+	* vm_macro.def : fix option parameters</div><div class='ctx'> </div><div class='ctx'> 	* yarvtest/test_method.rb : add tests for above</div><div class='ctx'> </div><div class='hunk'>@@ -4555,7 +4555,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* eval_intern.h : fix PASS_PASSED_BLOCK()</div><div class='ctx'> </div><div class='del'>-	* eval_load.c : fix re-enter require (temporalily)</div><div class='add'>+	* eval_load.c : fix re-enter require (temporarily)</div><div class='ctx'> </div><div class='ctx'> 	* insns.def : permit re-open class when superclass is same</div><div class='ctx'> </div><div class='hunk'>@@ -4729,7 +4729,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 	* eval.c, eval_intern.h, vm.c, eval_jump.h, yarvcore.h :</div><div class='ctx'> 	re-define PUSH/POP/EXEC/JUMP_TAG to use thread local tag</div><div class='ctx'> </div><div class='del'>-	* inits.c, yarvcore.c : fix boostrap</div><div class='add'>+	* inits.c, yarvcore.c : fix bootstrap</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> 2005-10-03(Mon) 22:28:24 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='hunk'>@@ -4909,7 +4909,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 2005-09-14(Wed) 06:11:43 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* yarvcore.h, vm_evalbody.h, vm.h, vm_dump.c,</div><div class='del'>-	compile.c, yarvcore.c : use #ifdef insted of #if for recognize</div><div class='add'>+	compile.c, yarvcore.c : use #ifdef instead of #if for recognize</div><div class='ctx'> 	vm options</div><div class='ctx'> </div><div class='ctx'> 	* vm_opts.h : fix default options</div><div class='hunk'>@@ -4973,13 +4973,13 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* common.mk : rule test -&gt; test2, test1 -&gt; test</div><div class='ctx'> </div><div class='del'>-	* compile.c : fix when clause bug and splat arugment</div><div class='add'>+	* compile.c : fix when clause bug and splat argument</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> 2005-08-17(Wed) 05:22:31 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* compile.c : fix block local parameter setting routine and support</div><div class='del'>-	massign in block parameter initialze</div><div class='add'>+	massign in block parameter initialize</div><div class='ctx'> </div><div class='ctx'> 	* yarvtest/test_yield.rb : add tests for above</div><div class='ctx'> </div><div class='hunk'>@@ -5394,7 +5394,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* tmpl/vmtc.inc.tmpl : add const prefix</div><div class='ctx'> </div><div class='del'>-	* /rb/asm_parse.rb, extconf.rb : added and make assembler analised output</div><div class='add'>+	* /rb/asm_parse.rb, extconf.rb : added and make assembler analysed output</div><div class='ctx'> </div><div class='ctx'> 	* opt_operand.def : add send operands unification</div><div class='ctx'> </div><div class='hunk'>@@ -5654,7 +5654,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 2005-03-01(Tue) 13:50:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* yarvcore.c (yarvcore_eval_parsed) : added</div><div class='del'>-	(separeted from yarvcore_eval)</div><div class='add'>+	(separated from yarvcore_eval)</div><div class='ctx'> </div><div class='ctx'> 	* yarvcore.c, compile.c : iseq_translate_direct_threaded_code</div><div class='ctx'> 	is moved to compile.c</div><div class='hunk'>@@ -5806,7 +5806,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* compiled.c : add constant pool</div><div class='ctx'> </div><div class='del'>-	* vm_evalbody.inc, call_cfunc.inc, vm.c : separeted from vm.c</div><div class='add'>+	* vm_evalbody.inc, call_cfunc.inc, vm.c : separated from vm.c</div><div class='ctx'> </div><div class='ctx'> 	* insns.def : fix return val</div><div class='ctx'> </div><div class='hunk'>@@ -5840,7 +5840,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* depend : fixed for above</div><div class='ctx'> </div><div class='del'>-	* extconf.rb : add option --(enable|disalbe)-opt-insns-unification</div><div class='add'>+	* extconf.rb : add option --(enable|disable)-opt-insns-unification</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> 2005-02-11(Fri) 12:14:39 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='hunk'>@@ -5957,7 +5957,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* evalc.patch : fix for above</div><div class='ctx'> </div><div class='del'>-	* benchmark/bm_lists.rb : fix (unsupport block passing)</div><div class='add'>+	* benchmark/bm_lists.rb : fix (unsupported block passing)</div><div class='ctx'> </div><div class='ctx'> 	* benchmark/run.rb : use full path to ruby</div><div class='ctx'> </div><div class='hunk'>@@ -6014,7 +6014,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* test/test_block.rb (test_ifunc) : test for above</div><div class='ctx'> </div><div class='del'>-	* vm.c (get_block_objec, thread_make_env_object) : fixed bugs</div><div class='add'>+	* vm.c (get_block_object, thread_make_env_object) : fixed bugs</div><div class='ctx'> </div><div class='ctx'> 	* test/test_bin.rb (test_xstr) : remove `ls` test</div><div class='ctx'> </div><div class='hunk'>@@ -6067,7 +6067,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 2005-01-04(Tue) 06:25:45 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='del'>-	* compile.h : COMPILE_ERROR break contol (instead of return)</div><div class='add'>+	* compile.h : COMPILE_ERROR break control (instead of return)</div><div class='ctx'> </div><div class='ctx'> 	* compile.c : support NODE_MASGN</div><div class='ctx'> </div><div class='hunk'>@@ -6108,7 +6108,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 	* insns.def : support super, zsuper (currently, super can't</div><div class='ctx'> 	handle with block)</div><div class='ctx'> </div><div class='del'>-	* test/test_bin.rb : add test for op_asgin2, op_assgin_and/or</div><div class='add'>+	* test/test_bin.rb : add test for op_assign2, op_assign_and/or</div><div class='ctx'> </div><div class='ctx'> 	* test/test_class.rb : add test for super, zsuper</div><div class='ctx'> </div><div class='hunk'>@@ -6272,7 +6272,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 	* opt_operand.def : add unification insn send</div><div class='ctx'> </div><div class='ctx'> 	* rb/insns2vm.rb : define symbol instead of declare const</div><div class='del'>-	variable (for more optmize on VC)</div><div class='add'>+	variable (for more optimize on VC)</div><div class='ctx'> </div><div class='ctx'> 	* insns.def : move enter point in send</div><div class='ctx'> </div><div class='hunk'>@@ -6322,7 +6322,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 2004-12-02(Thu) 13:20:41 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* yarvcore.c, vm.h, vm.c, insns.def, insnhelper.h, yarvutil.rb :</div><div class='del'>-	add usage analisys framework</div><div class='add'>+	add usage analysis framework</div><div class='ctx'> </div><div class='ctx'> 	* disasm.c : insn_operand_intern to separate function</div><div class='ctx'> </div><div class='hunk'>@@ -6489,7 +6489,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> 2004-11-01(Mon) 04:45:54 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* yarvcore.h, compile.c, debug.c, version.h :</div><div class='del'>-	redesgin gc debug scheme (GC_CHECK())</div><div class='add'>+	redesign gc debug scheme (GC_CHECK())</div><div class='ctx'> </div><div class='ctx'> 	* yarvcore.c : mark iseqobj-&gt;current_block on GC</div><div class='ctx'> </div><div class='hunk'>@@ -6820,7 +6820,7 @@ Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='ctx'> </div><div class='ctx'> 	* depend : add tbench rule</div><div class='ctx'> </div><div class='del'>-	* yarvcore.h : add 'exten ID idBackquote'</div><div class='add'>+	* yarvcore.h : add 'extern ID idBackquote'</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> 2004-05-18(Tue) 00:09:48 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='head'>diff --git a/doc/NEWS-1.9.2 b/doc/NEWS-1.9.2<br/>deleted file mode 100644<br/>index fedb1f6633..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/NEWS-1.9.2?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-1.9.2</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,509 +0,0 @@</div><div class='del'>-# -*- rdoc -*-</div><div class='del'>-= NEWS for Ruby 1.9.2</div><div class='del'>-</div><div class='del'>-This document is a list of user visible feature changes made between</div><div class='del'>-releases except for bug fixes.</div><div class='del'>-</div><div class='del'>-Note that each entry is kept so brief that no reason behind or</div><div class='del'>-reference information is supplied with.  For a full list of changes</div><div class='del'>-with all sufficient information, see the ChangeLog file.</div><div class='del'>-</div><div class='del'>-== Changes since the 1.9.1 release</div><div class='del'>-=== Library updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* builtin classes</div><div class='del'>-</div><div class='del'>-  * Array</div><div class='del'>-    * new methods:</div><div class='del'>-      * Array#keep_if</div><div class='del'>-      * Array#repeated_combination</div><div class='del'>-      * Array#repeated_permutation</div><div class='del'>-      * Array#rotate</div><div class='del'>-      * Array#rotate!</div><div class='del'>-      * Array#select!</div><div class='del'>-      * Array#sort_by!</div><div class='del'>-</div><div class='del'>-    * extended method:</div><div class='del'>-      * Array#{uniq,uniq!,product} can take a block.</div><div class='del'>-</div><div class='del'>-  * Complex</div><div class='del'>-    * new method:</div><div class='del'>-      * Complex#rationalize</div><div class='del'>-</div><div class='del'>-  * Dir</div><div class='del'>-    * new method:</div><div class='del'>-      * Dir.home</div><div class='del'>-</div><div class='del'>-  * Encoding</div><div class='del'>-    * new encodings:</div><div class='del'>-      * Big5</div><div class='del'>-      * Big5-UAO</div><div class='del'>-      * ISO-2022-JP-KDDI</div><div class='del'>-      * SJIS-DoCoMo</div><div class='del'>-      * SJIS-KDDI</div><div class='del'>-      * SJIS-SoftBank</div><div class='del'>-      * UTF8-DoCoMo</div><div class='del'>-      * UTF8-KDDI</div><div class='del'>-      * UTF8-SoftBank</div><div class='del'>-</div><div class='del'>-    * new method:</div><div class='del'>-      * ascii_compatible?</div><div class='del'>-</div><div class='del'>-  * Enumerable</div><div class='del'>-    * new methods:</div><div class='del'>-      * Enumerable#chunk</div><div class='del'>-      * Enumerable#collect_concat</div><div class='del'>-      * Enumerable#each_entry</div><div class='del'>-      * Enumerable#flat_map</div><div class='del'>-      * Enumerable#slice_before</div><div class='del'>-</div><div class='del'>-  * Enumerator</div><div class='del'>-    * new methods:</div><div class='del'>-      * Enumerator#peek</div><div class='del'>-      * Enumerator#next_values</div><div class='del'>-      * Enumerator#peek_values</div><div class='del'>-      * Enumerator#feed</div><div class='del'>-      * StopIteration#result</div><div class='del'>-</div><div class='del'>-    * extended method:</div><div class='del'>-      * #with_index accepts an optional argument that specifies the</div><div class='del'>-        index number to start with, defaulted to 0.</div><div class='del'>-</div><div class='del'>-    * incompatible changes:</div><div class='del'>-      * #rewind now calls the "rewind" method of the enclosed object</div><div class='del'>-        if defined.</div><div class='del'>-      * #next doesn't clear the position at end.</div><div class='del'>-</div><div class='del'>-  * ENV</div><div class='del'>-    * Uses locale's encoding</div><div class='del'>-    * ENV.[]= raises Errno::{EINVAL,ENOMEM} etc. on failure.</div><div class='del'>-    * new methods:</div><div class='del'>-      * ENV.keep_if</div><div class='del'>-      * ENV.select!</div><div class='del'>-</div><div class='del'>-  * Float</div><div class='del'>-    * new constants:</div><div class='del'>-      * Float::INFINITY</div><div class='del'>-      * Float::NAN</div><div class='del'>-    * new method:</div><div class='del'>-      * Float#rationalize</div><div class='del'>-</div><div class='del'>-  * File</div><div class='del'>-    * new methods:</div><div class='del'>-      * File.realpath</div><div class='del'>-      * File.realdirpath</div><div class='del'>-</div><div class='del'>-  * GC::Profiler</div><div class='del'>-    * new method:</div><div class='del'>-      * GC::Profiler.total_time</div><div class='del'>-</div><div class='del'>-  * Hash</div><div class='del'>-    * new methods:</div><div class='del'>-      * Hash#keep_if</div><div class='del'>-      * Hash#select!</div><div class='del'>-</div><div class='del'>-  * IO</div><div class='del'>-    * new methods:</div><div class='del'>-      * IO#autoclose=</div><div class='del'>-      * IO#autoclose?</div><div class='del'>-      * IO#fdatasync</div><div class='del'>-      * IO#codepoints</div><div class='del'>-      * IO#each_codepoint</div><div class='del'>-</div><div class='del'>-    * extended method:</div><div class='del'>-      * IO.pipe can take a block.</div><div class='del'>-</div><div class='del'>-    * new modules:</div><div class='del'>-      * IO::WaitReadable</div><div class='del'>-      * IO::WaitWritable</div><div class='del'>-        They are used to extend non-blocking exceptions.</div><div class='del'>-</div><div class='del'>-  * Integer</div><div class='del'>-    * new method:</div><div class='del'>-      * Integer#rationalize</div><div class='del'>-</div><div class='del'>-  * Kernel</div><div class='del'>-    * new methods:</div><div class='del'>-      * Kernel#respond_to_missing?</div><div class='del'>-      * Kernel#singleton_class</div><div class='del'>-      * Kernel#require_relative</div><div class='del'>-</div><div class='del'>-    * extended method:</div><div class='del'>-      * Kernel#respond_to? can be used to detect methods not implemented.</div><div class='del'>-        For example, Process.respond_to?(:fork) returns false on Windows.</div><div class='del'>-</div><div class='del'>-    * incompatible changes:</div><div class='del'>-      * Kernel#instance_eval yields the receiver.</div><div class='del'>-</div><div class='del'>-      * Kernel#exec</div><div class='del'>-      * Kernel#spawn</div><div class='del'>-      * Kernel#system</div><div class='del'>-      * Kernel#` (`...`)</div><div class='del'>-        ..etc.</div><div class='del'>-</div><div class='del'>-        On Windows, the current directory is no longer implicitly</div><div class='del'>-        prepended to the default command search path, just like other</div><div class='del'>-        platforms.</div><div class='del'>-</div><div class='del'>-  * MatchData</div><div class='del'>-    * new method:</div><div class='del'>-      * MatchData#==</div><div class='del'>-</div><div class='del'>-  * Method</div><div class='del'>-    * new method:</div><div class='del'>-      * Method#parameters</div><div class='del'>-</div><div class='del'>-  * NilClass</div><div class='del'>-    * new method:</div><div class='del'>-      * NilClass#rationalize</div><div class='del'>-</div><div class='del'>-  * Object</div><div class='del'>-    * extended methods:</div><div class='del'>-      * Float() supports hexadecimal floating point format.</div><div class='del'>-      * printf() supports %a/%A format.</div><div class='del'>-</div><div class='del'>-  * Proc</div><div class='del'>-    * new method:</div><div class='del'>-      * Proc#parameters</div><div class='del'>-    * extended method:</div><div class='del'>-      * Proc#source_location returns location even if receiver is a method</div><div class='del'>-        defined by attr_reader / attr_writer / attr_accessor.</div><div class='del'>-</div><div class='del'>-  * Process</div><div class='del'>-    * extended method:</div><div class='del'>-      * Process.spawn accepts [:child, FD] for a redirect target.</div><div class='del'>-</div><div class='del'>-  * Random (new class to generate pseudo-random numbers)</div><div class='del'>-</div><div class='del'>-  * Rational</div><div class='del'>-    * new method:</div><div class='del'>-      * Rational#rationalize</div><div class='del'>-</div><div class='del'>-  * String</div><div class='del'>-    * extended methods:</div><div class='del'>-      * string[regexp, name] is supported for named capture.</div><div class='del'>-</div><div class='del'>-  * Thread</div><div class='del'>-    * new methods:</div><div class='del'>-      * Thread#add_trace_func</div><div class='del'>-      * Thread#set_trace_func</div><div class='del'>-</div><div class='del'>-  * Time</div><div class='del'>-    * extended features:</div><div class='del'>-      * time_t restriction is removed to represent before 1901 and after 2038.</div><div class='del'>-        Proleptic Gregorian calendar is used for old dates.</div><div class='del'>-      * Time.new have optional arguments to specify date with time offset.</div><div class='del'>-      * Time#getlocal, Time#localtime have optional time offset argument.</div><div class='del'>-</div><div class='del'>-    * new methods:</div><div class='del'>-      * Time#to_r</div><div class='del'>-      * Time#subsec</div><div class='del'>-      * Time#round</div><div class='del'>-</div><div class='del'>-    * incompatible change:</div><div class='del'>-      * The year argument of Time.{utc,gm,local,mktime} is now interpreted as</div><div class='del'>-        the value itself.  For example, Time.utc(99) means the year 99 AD,</div><div class='del'>-        not 1999 AD.</div><div class='del'>-</div><div class='del'>-  * UnboundMethod</div><div class='del'>-    * new method:</div><div class='del'>-      * UnboundMethod#parameters</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* digest</div><div class='del'>-  * new methods:</div><div class='del'>-    * Digest::Class.base64digest</div><div class='del'>-    * Digest::Instance#base64digest</div><div class='del'>-    * Digest::Instance#base64digest!</div><div class='del'>-</div><div class='del'>-  * Digest::HMAC (digest/hmac) has been marked as deprecated because</div><div class='del'>-    it was unintentional for the experimental library to be included</div><div class='del'>-    in the final release of 1.9.1.  Please use OpenSSL::HMAC instead.</div><div class='del'>-</div><div class='del'>-* rss</div><div class='del'>-</div><div class='del'>-  * 0.2.4 -&gt; 0.2.7.</div><div class='del'>-</div><div class='del'>-  * RSS::Maker.make</div><div class='del'>-    * raise an exception not returns nil for invalid feed making.</div><div class='del'>-    * requires block.</div><div class='del'>-</div><div class='del'>-  * RSS::Maker.[]</div><div class='del'>-    * new method to return maker class.</div><div class='del'>-</div><div class='del'>-  * RSS::Maker.supported?(version)</div><div class='del'>-    * new method to check whether given version is supported.</div><div class='del'>-</div><div class='del'>-  * RSS::Maker: item.guid.permanent_link?</div><div class='del'>-    * new alias of item.guid.isPermaLink</div><div class='del'>-  * RSS::Maker: item.guid.permanent_link=</div><div class='del'>-    * new alias of item.guid.isPermaLink=</div><div class='del'>-</div><div class='del'>-* DL</div><div class='del'>-  * Now uses libffi as a backend if avaiable.</div><div class='del'>-    It means DL works fine on more platforms.</div><div class='del'>-</div><div class='del'>-* Fiddle</div><div class='del'>-  * A lightweight wrapper for libffi.</div><div class='del'>-</div><div class='del'>-* YAML</div><div class='del'>-  * Now uses libyaml as a backend if available.</div><div class='del'>-    It means YAML library supports new standards for YAML.</div><div class='del'>-</div><div class='del'>-* Psych</div><div class='del'>-  * A wrapper for libyaml.</div><div class='del'>-</div><div class='del'>-* JSON</div><div class='del'>-  * Update to JSON 1.1.9</div><div class='del'>-</div><div class='del'>-* REXML</div><div class='del'>-</div><div class='del'>-  * REXML::Document.entity_expansion_limit=</div><div class='del'>-</div><div class='del'>-    New method to set the entity expansion limit. By default the limit is</div><div class='del'>-    set to 10000.  See the following URL for details.</div><div class='del'>-</div><div class='del'>-    https://www.ruby-lang.org/en/news/2008/08/23/dos-vulnerability-in-rexml/</div><div class='del'>-</div><div class='del'>-* RDoc</div><div class='del'>-</div><div class='del'>-  * Updated to RDoc 2.5.8</div><div class='del'>-</div><div class='del'>-* RubyGems</div><div class='del'>-</div><div class='del'>-  * Updated to RubyGems 1.3.7</div><div class='del'>-</div><div class='del'>-* logger</div><div class='del'>-</div><div class='del'>-  * imported upstream version (logger/1.2.7)</div><div class='del'>-    * do not raise an exception even if log writing failed.</div><div class='del'>-    * do not raise ShiftingError if an aged file already exists.</div><div class='del'>-      (no ShiftingError will be raised from 1.2.7, just warn() instead)</div><div class='del'>-</div><div class='del'>-* matrix</div><div class='del'>-  * API change to adhere strictly to mathematical definitions:</div><div class='del'>-    * Matrices must now be rectangular.</div><div class='del'>-    * trace, regular?, singular? are defined only for square matrices</div><div class='del'>-    * support for empty matrices</div><div class='del'>-    * all integer matrices now have the right determinant (also an integer)</div><div class='del'>-</div><div class='del'>-  * Matrix and Vector include Enumerable.</div><div class='del'>-</div><div class='del'>-  * new methods:</div><div class='del'>-    * Matrix.build</div><div class='del'>-    * Matrix.empty</div><div class='del'>-    * Matrix#conj</div><div class='del'>-    * Matrix#conjugate</div><div class='del'>-    * Matrix#each</div><div class='del'>-    * Matrix#each_with_index</div><div class='del'>-    * Matrix#empty?</div><div class='del'>-    * Matrix#imag</div><div class='del'>-    * Matrix#imaginary</div><div class='del'>-    * Matrix#real</div><div class='del'>-    * Matrix#real?</div><div class='del'>-    * Matrix#rect</div><div class='del'>-    * Matrix#rectangular</div><div class='del'>-</div><div class='del'>-* net/http</div><div class='del'>-  * merged net/https.</div><div class='del'>-</div><div class='del'>-* open3</div><div class='del'>-  * new methods:</div><div class='del'>-    * Open3.popen2</div><div class='del'>-    * Open3.popen2e</div><div class='del'>-    * Open3.capture3</div><div class='del'>-    * Open3.capture2</div><div class='del'>-    * Open3.capture2e</div><div class='del'>-    * Open3.pipeline_rw</div><div class='del'>-    * Open3.pipeline_r</div><div class='del'>-    * Open3.pipeline_w</div><div class='del'>-    * Open3.pipeline_start</div><div class='del'>-    * Open3.pipeline</div><div class='del'>-</div><div class='del'>-* pty</div><div class='del'>-  * new methods:</div><div class='del'>-    * PTY.open</div><div class='del'>-    * PTY.check</div><div class='del'>-  * deprecated methods:</div><div class='del'>-    * protect_signal</div><div class='del'>-    * reset_signal</div><div class='del'>-</div><div class='del'>-* openssl</div><div class='del'>-  * new methods:</div><div class='del'>-    * OpenSSL::Buffering#read_nonblock</div><div class='del'>-    * OpenSSL::Buffering#write_nonblock</div><div class='del'>-    * OpenSSL::SSL::SSLSocket#connect_nonblock</div><div class='del'>-    * OpenSSL::SSL::SSLSocket#accept_nonblock</div><div class='del'>-</div><div class='del'>-* scanf</div><div class='del'>-  * support %a/%A format.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-* socket</div><div class='del'>-</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Socket#{recvfrom,recvfrom_nonblock,accept,accept_nonblock,sysaccept}</div><div class='del'>-      returns a sender address as Addrinfo object instead of a binary sockaddr string.</div><div class='del'>-      Addrinfo#to_s returns the old binary sockaddr string.</div><div class='del'>-    * BasicSocket#getsockopt returns Socket::Option object instead of a binary string.</div><div class='del'>-      Socket::Option#to_s returns the old binary string.</div><div class='del'>-    * Socket.do_not_reverse_lookup is turned on by default now.</div><div class='del'>-</div><div class='del'>-  * new class:</div><div class='del'>-    * Addrinfo</div><div class='del'>-    * Socket::Option</div><div class='del'>-    * Socket::AncillaryData</div><div class='del'>-</div><div class='del'>-  * new methods:</div><div class='del'>-    * Socket.ip_address_list</div><div class='del'>-    * Socket.tcp</div><div class='del'>-    * Socket.tcp_server_loop</div><div class='del'>-    * Socket.tcp_server_sockets</div><div class='del'>-    * Socket.udp_server_sockets</div><div class='del'>-    * Socket.udp_server_loop_on</div><div class='del'>-    * Socket.udp_server_loop</div><div class='del'>-    * Socket.unix</div><div class='del'>-    * Socket.unix_server_loop</div><div class='del'>-    * Socket.unix_server_socket</div><div class='del'>-    * Socket.accept_loop</div><div class='del'>-    * Socket#ipv6only!</div><div class='del'>-    * BasicSocket#local_address</div><div class='del'>-    * BasicSocket#remote_address</div><div class='del'>-    * BasicSocket#connect_address</div><div class='del'>-    * BasicSocket#sendmsg</div><div class='del'>-    * BasicSocket#sendmsg_nonblock</div><div class='del'>-    * BasicSocket#recvmsg</div><div class='del'>-    * BasicSocket#recvmsg_nonblock</div><div class='del'>-    * BasicSocket#getpeereid</div><div class='del'>-</div><div class='del'>-  * extended methods:</div><div class='del'>-    * Socket.new's 3rd argument is optional now.</div><div class='del'>-    * Socket.pair's 3rd argument is optional now.</div><div class='del'>-    * Socket.pair and UNIXSocket.pair can take a block.</div><div class='del'>-    * BasicSocket#send, UDPSocket#send, Socket.getnameinfo, Socket#bind, and</div><div class='del'>-      Socket#{connect,connect_nonblock} accepts an Addrinfo object as sockaddr.</div><div class='del'>-    * BasicSocket#getsockopt accepts a Socket::Option object.</div><div class='del'>-    * Socket.getaddrinfo and IPSocket#{addr,peeraddr} accept an optional</div><div class='del'>-      argument to turn reverse lookup on/off.</div><div class='del'>-</div><div class='del'>-    * constant names can be accepted as well as constant values.</div><div class='del'>-      i.e. Socket.new(:PF_INET, :SOCK_STREAM, 0)</div><div class='del'>-      The constant names can be specified without the prefix.</div><div class='del'>-      i.e. Socket.new(:INET, :STREAM, 0)</div><div class='del'>-      * protocol/address family</div><div class='del'>-      * socket type</div><div class='del'>-      * socket option protocol level</div><div class='del'>-      * socket option name</div><div class='del'>-      * shutdown's argument</div><div class='del'>-</div><div class='del'>-* stringio</div><div class='del'>-  * new methods:</div><div class='del'>-    * StringIO#read_nonblock</div><div class='del'>-    * StringIO#write_nonblock</div><div class='del'>-* pathname</div><div class='del'>-  * new methods:</div><div class='del'>-    * Pathname#binread</div><div class='del'>-    * Pathname#realdirpath</div><div class='del'>-    * Pathname#each_child</div><div class='del'>-</div><div class='del'>-  * extended methods:</div><div class='del'>-    * Pathname#realpath and Pathname#realdirpath takes optional basedir</div><div class='del'>-      argument.</div><div class='del'>-</div><div class='del'>-* Readline</div><div class='del'>-  * new methods:</div><div class='del'>-    * Readline.set_screen_size</div><div class='del'>-    * Readline.get_screen_size</div><div class='del'>-</div><div class='del'>-  * extended methods:</div><div class='del'>-    * Readline.completion_proc= accepts nil.</div><div class='del'>-      nil means to use default completion proc.</div><div class='del'>-</div><div class='del'>-* set</div><div class='del'>-  * new methods:</div><div class='del'>-    * Set#keep_if</div><div class='del'>-    * Set#select!</div><div class='del'>-</div><div class='del'>-* time</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Time.parse raises ArgumentError when no date information.</div><div class='del'>-</div><div class='del'>-* thread</div><div class='del'>-  * extended method:</div><div class='del'>-    * ConditionVariable#wait takes timeout argument.</div><div class='del'>-</div><div class='del'>-* securerandom</div><div class='del'>-  * new methods:</div><div class='del'>-    * SecureRandom.urlsafe_base64</div><div class='del'>-</div><div class='del'>-* URI</div><div class='del'>-  * new methods:</div><div class='del'>-    * URI.encode_www_form</div><div class='del'>-    * URI.decode_www_form</div><div class='del'>-    * URI.encode_www_form_component</div><div class='del'>-    * URI.decode_www_form_component</div><div class='del'>-  * Obsoleted methods:</div><div class='del'>-    * URI.decode</div><div class='del'>-    * URI.encode</div><div class='del'>-    * URI.escape</div><div class='del'>-    * URI.unescape</div><div class='del'>-</div><div class='del'>-* etc</div><div class='del'>-  * new methods:</div><div class='del'>-    * Etc::Passwd.each</div><div class='del'>-    * Etc::Group.each</div><div class='del'>-</div><div class='del'>-* zlib</div><div class='del'>-  * new methods:</div><div class='del'>-    * Zlib::GzipFile#path</div><div class='del'>-    * Zlib.#adler32_combine</div><div class='del'>-    * Zlib.#crc32_combine</div><div class='del'>-</div><div class='del'>-* rbconfig</div><div class='del'>-  * new methods:</div><div class='del'>-    * RbConfig.ruby</div><div class='del'>-</div><div class='del'>-=== Language changes</div><div class='del'>-</div><div class='del'>-* Regexp properties (\p{}) names now ignore underscores, spaces, and case, so</div><div class='del'>-  \p{ol chiki} is the same as \p{Ol_Chiki}</div><div class='del'>-* Regexps now support Unicode 5.2 (new characters and scripts)</div><div class='del'>-* \d, \s, and \w are now ASCII only; use POSIX bracket classes and \p{} for</div><div class='del'>-  Unicode semantics</div><div class='del'>-* $: no longer includes the current directory, use require_relative</div><div class='del'>-* Symbol with an invalid encoding is forbidden to exist.</div><div class='del'>-</div><div class='del'>-=== Compilation options</div><div class='del'>-</div><div class='del'>-* --program-prefix and --program-suffix no longer act on the shared object</div><div class='del'>-  names nor paths to libraries.</div><div class='del'>-</div><div class='del'>-  use --with-rubylibprefix='${libruby}/${RUBY_INSTALL_NAME}' and</div><div class='del'>-  --with-soname='${RUBY_INSTALL_NAME}' for the same result as Ruby 1.9.1.</div><div class='del'>-</div><div class='del'>-* --with-arch is added for universal binary, instead of</div><div class='del'>-  --enable-fat-binary option.</div><div class='del'>-</div><div class='del'>-=== Compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-  * Enumerator#rewind</div><div class='del'>-  * Socket#recvfrom</div><div class='del'>-  * Socket#recvfrom_nonblock</div><div class='del'>-  * Socket#accept</div><div class='del'>-  * Socket#accept_nonblock</div><div class='del'>-  * Socket#sysaccept</div><div class='del'>-  * BasicSocket#getsockopt</div><div class='del'>-  * Time.utc</div><div class='del'>-  * Time.gm</div><div class='del'>-  * Time.local</div><div class='del'>-  * Time.mktime</div><div class='del'>-  * Time.parse</div><div class='del'>-  * --program-prefix and --program-suffix</div><div class='del'>-  * --enable-fat-binary</div><div class='del'>-  * $:</div><div class='del'>-</div><div class='del'>-    See above.</div><div class='del'>-</div><div class='del'>-  * Digest::HMAC</div><div class='del'>-</div><div class='del'>-    Deprecated.  See above.</div><div class='head'>diff --git a/doc/NEWS-2.0.0 b/doc/NEWS-2.0.0<br/>deleted file mode 100644<br/>index 414789dcd1..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/NEWS-2.0.0?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.0.0</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,530 +0,0 @@</div><div class='del'>-# -*- rdoc -*-</div><div class='del'>-</div><div class='del'>-= NEWS for Ruby 2.0.0</div><div class='del'>-</div><div class='del'>-This document is a list of user visible feature changes made between</div><div class='del'>-releases except for bug fixes.</div><div class='del'>-</div><div class='del'>-Note that each entry is kept so brief that no reason behind or</div><div class='del'>-reference information is supplied with.  For a full list of changes</div><div class='del'>-with all sufficient information, see the ChangeLog file.</div><div class='del'>-</div><div class='del'>-== Changes since the 1.9.3 release</div><div class='del'>-</div><div class='del'>-=== Language changes</div><div class='del'>-</div><div class='del'>-* Added keyword arguments.</div><div class='del'>-</div><div class='del'>-* Added %i and %I for symbol list creation (similar to %w and %W).</div><div class='del'>-</div><div class='del'>-* Default source encoding is changed to UTF-8. (was US-ASCII)</div><div class='del'>-</div><div class='del'>-* No warning for unused variables starting with '_'</div><div class='del'>-</div><div class='del'>-=== Core classes updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* ARGF</div><div class='del'>-  * added method:</div><div class='del'>-    * added ARGF#codepoints and ARGF#each_codepoint, like the corresponding</div><div class='del'>-      methods for IO.</div><div class='del'>-</div><div class='del'>-* Array</div><div class='del'>-  * added method:</div><div class='del'>-    * added Array#bsearch for binary search.</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * random parameter of Array#shuffle! and Array#sample now</div><div class='del'>-      will be called with one argument, maximum value.</div><div class='del'>-    * when given Range arguments, Array#values_at now returns nil for each</div><div class='del'>-      value that is out-of-range.</div><div class='del'>-</div><div class='del'>-* Enumerable</div><div class='del'>-  * added method:</div><div class='del'>-    * added Enumerable#lazy method for lazy enumeration.</div><div class='del'>-</div><div class='del'>-* Enumerator</div><div class='del'>-  * added method:</div><div class='del'>-    * added Enumerator#size for lazy size evaluation.</div><div class='del'>-  * extended method:</div><div class='del'>-    * Enumerator.new accept an argument for lazy size evaluation.</div><div class='del'>-  * new class Enumerator::Lazy for lazy enumeration</div><div class='del'>-</div><div class='del'>-* ENV</div><div class='del'>-  * aliased method:</div><div class='del'>-    * ENV.to_h is a new alias for ENV.to_hash</div><div class='del'>-</div><div class='del'>-* Fiber</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Fiber#resume cannot resume a fiber which invokes "Fiber#transfer".</div><div class='del'>-</div><div class='del'>-* File</div><div class='del'>-  * extended method:</div><div class='del'>-    * File.fnmatch? now expands braces in the pattern if</div><div class='del'>-      File::FNM_EXTGLOB option is given.</div><div class='del'>-</div><div class='del'>-* GC</div><div class='del'>-  * improvements:</div><div class='del'>-    * introduced the bitmap marking which suppresses to copy a memory page</div><div class='del'>-      with Copy-on-Write.</div><div class='del'>-    * introduced the non-recursive marking which avoids unexpected stack overflow.</div><div class='del'>-</div><div class='del'>-* GC::Profiler</div><div class='del'>-  * added method:</div><div class='del'>-    * added GC::Profiler.raw_data which returns raw profile data for GC.</div><div class='del'>-</div><div class='del'>-* Hash</div><div class='del'>-  * added method:</div><div class='del'>-    * added Hash#to_h as explicit conversion method, like Array#to_a.</div><div class='del'>-  * extended method:</div><div class='del'>-    * Hash#default_proc= can be passed nil to clear the default proc.</div><div class='del'>-</div><div class='del'>-* IO</div><div class='del'>-  * deprecated methods:</div><div class='del'>-    * IO#lines, #bytes, #chars and #codepoints are deprecated.</div><div class='del'>-</div><div class='del'>-* Kernel</div><div class='del'>-  * added method:</div><div class='del'>-    * added Kernel#Hash conversion method like Array() or Float().</div><div class='del'>-    * added Kernel#__dir__ which returns the absolute path of the</div><div class='del'>-      directory of the file from which this method is called.</div><div class='del'>-    * added Kernel#caller_locations which returns an array of</div><div class='del'>-      frame information objects.</div><div class='del'>-  * extended method:</div><div class='del'>-    * Kernel#warn accepts multiple args in like puts.</div><div class='del'>-    * Kernel#caller accepts second optional argument `n' which specify</div><div class='del'>-      required caller size.</div><div class='del'>-    * Kernel#to_enum and enum_for accept a block for lazy size evaluation.</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * system() and exec() close non-standard file descriptors</div><div class='del'>-      (The default of :close_others option is changed to true by default.)</div><div class='del'>-    * respond_to? against a protected method now returns false unless</div><div class='del'>-      the second argument is true.</div><div class='del'>-    * __callee__ has returned to the original behavior, and now</div><div class='del'>-      returns the called name but not the original name in an</div><div class='del'>-      aliased method.</div><div class='del'>-    * Kernel#inspect does not call #to_s anymore</div><div class='del'>-      (it used to call redefined #to_s).</div><div class='del'>-</div><div class='del'>-* LoadError</div><div class='del'>-  * added method:</div><div class='del'>-    * added LoadError#path method to return the file name that could not be</div><div class='del'>-      loaded.</div><div class='del'>-</div><div class='del'>-* Module</div><div class='del'>-  * added method:</div><div class='del'>-    * added Module#prepend which is similar to Module#include,</div><div class='del'>-      however a method in the prepended module overrides the</div><div class='del'>-      corresponding method in the prepending module.</div><div class='del'>-    * added Module.prepended and Module.prepend_features, similar</div><div class='del'>-      to included and append_features.</div><div class='del'>-    * added Module#refine, which extends a class or module locally.</div><div class='del'>-      [experimental]</div><div class='del'>-  * extended method:</div><div class='del'>-    * Module#define_method accepts a UnboundMethod from a Module.</div><div class='del'>-    * Module#const_get accepts a qualified constant string, e.g.</div><div class='del'>-      Object.const_get("Foo::Bar::Baz")</div><div class='del'>-</div><div class='del'>-* Mutex</div><div class='del'>-  * added method:</div><div class='del'>-    * added Mutex#owned? which returns the mutex is held by current</div><div class='del'>-      thread or not. [experimental]</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Mutex#lock, Mutex#unlock, Mutex#try_lock, Mutex#synchronize</div><div class='del'>-      and Mutex#sleep are no longer allowed to be used from trap handler</div><div class='del'>-      and raise a ThreadError in such case.</div><div class='del'>-    * Mutex#sleep may spurious wakeup. Check after wakeup.</div><div class='del'>-</div><div class='del'>-* NilClass</div><div class='del'>-  * added method:</div><div class='del'>-    * added nil.to_h which returns {}</div><div class='del'>-</div><div class='del'>-* ObjectSpace::WeakMap</div><div class='del'>-  * new low level class to hold weak references to objects.</div><div class='del'>-</div><div class='del'>-* Proc</div><div class='del'>-  * incompatible change:</div><div class='del'>-    * removed Proc#== and #eql? so two procs are == only when they are</div><div class='del'>-      the same object.</div><div class='del'>-</div><div class='del'>-* Process</div><div class='del'>-  * added method:</div><div class='del'>-    * added getsid for getting session id (unix only).</div><div class='del'>-</div><div class='del'>-* Range</div><div class='del'>-  * added method:</div><div class='del'>-    * added Range#size for lazy size evaluation.</div><div class='del'>-    * added Range#bsearch for binary search.</div><div class='del'>-</div><div class='del'>-* RubyVM (MRI specific)</div><div class='del'>-  * added RubyVM::InstructionSequence.of to get the instruction sequence</div><div class='del'>-    from a method or a block.</div><div class='del'>-  * added RubyVM::InstructionSequence#path, #absolute_path, #label,</div><div class='del'>-    #base_label and #first_lineno to retrieve information from where</div><div class='del'>-    the instruction sequence was defined.</div><div class='del'>-  * added Environment variables to specify stack usage:</div><div class='del'>-    * RUBY_THREAD_VM_STACK_SIZE: vm stack size used at thread creation.</div><div class='del'>-      default: 128KB (32bit CPU) or 256KB (64bit CPU).</div><div class='del'>-    * RUBY_THREAD_MACHINE_STACK_SIZE: machine stack size used at thread</div><div class='del'>-      creation. default: 512KB or 1024KB.</div><div class='del'>-    * RUBY_FIBER_VM_STACK_SIZE: vm stack size used at fiber creation.</div><div class='del'>-      default: 64KB or 128KB.</div><div class='del'>-    * RUBY_FIBER_MACHINE_STACK_SIZE: machine stack size used at fiber</div><div class='del'>-      creation. default: 256KB or 512KB.</div><div class='del'>-    These variables are checked only at launched time.</div><div class='del'>-  * added constant DEFAULT_PARAMS to get above default parameters.</div><div class='del'>-</div><div class='del'>-* Signal</div><div class='del'>-  * added method:</div><div class='del'>-    * added Signal.signame which returns signal name</div><div class='del'>-</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Signal.trap raises ArgumentError when :SEGV, :BUS, :ILL, :FPE, :VTALRM</div><div class='del'>-      are specified.</div><div class='del'>-</div><div class='del'>-* String</div><div class='del'>-  * added method:</div><div class='del'>-    * added String#b returning a copied string whose encoding is ASCII-8BIT.</div><div class='del'>-  * change return value:</div><div class='del'>-    * String#lines now returns an array instead of an enumerator.</div><div class='del'>-    * String#chars now returns an array instead of an enumerator.</div><div class='del'>-    * String#codepoints now returns an array instead of an enumerator.</div><div class='del'>-    * String#bytes now returns an array instead of an enumerator.</div><div class='del'>-</div><div class='del'>-* Struct</div><div class='del'>-  * added method:</div><div class='del'>-    * added Struct#to_h returning values with keys corresponding to the</div><div class='del'>-      instance variable names.</div><div class='del'>-</div><div class='del'>-* Thread</div><div class='del'>-  * added method:</div><div class='del'>-    * added Thread#thread_variable_get for getting thread local variables</div><div class='del'>-      (these are different than Fiber local variables).</div><div class='del'>-    * added Thread#thread_variable_set for setting thread local variables.</div><div class='del'>-    * added Thread#thread_variables for getting a list of the thread local</div><div class='del'>-      variable keys.</div><div class='del'>-    * added Thread#thread_variable? for testing to see if a particular thread</div><div class='del'>-      variable has been set.</div><div class='del'>-    * added Thread.handle_interrupt as well as instance and singleton methods</div><div class='del'>-      pending_interrupt? for asynchronous handling of exceptions</div><div class='del'>-    * added Thread#backtrace_locations which returns similar information of</div><div class='del'>-      Kernel#caller_locations.</div><div class='del'>-  * new class Thread::Backtrace::Location to hold backtrace location</div><div class='del'>-    information. These are returned by Thread#backtrace_locations and</div><div class='del'>-    Kernel#caller_locations.</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Thread#join and Thread#value now raises a ThreadError if target thread</div><div class='del'>-      is the current or main thread.</div><div class='del'>-</div><div class='del'>-* Time</div><div class='del'>-  * change return value:</div><div class='del'>-    * Time#to_s now returns US-ASCII encoding instead of BINARY.</div><div class='del'>-</div><div class='del'>-* TracePoint</div><div class='del'>-  * new class. This class is replacement of set_trace_func.</div><div class='del'>-    Easy to use and efficient implementation.</div><div class='del'>-</div><div class='del'>-* toplevel</div><div class='del'>-  * added method:</div><div class='del'>-    * added main.define_method which defines a global function.</div><div class='del'>-    * added main.using, which imports refinements into the current file or</div><div class='del'>-      eval string. [experimental]</div><div class='del'>-</div><div class='del'>-=== Core classes compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* Array#values_at</div><div class='del'>-</div><div class='del'>-  See above.</div><div class='del'>-</div><div class='del'>-* String#lines</div><div class='del'>-* String#chars</div><div class='del'>-* String#codepoints</div><div class='del'>-* String#bytes</div><div class='del'>-</div><div class='del'>-  These methods no longer return an Enumerator, although passing a</div><div class='del'>-  block is still supported for backwards compatibility.</div><div class='del'>-</div><div class='del'>-  Code like str.lines.with_index(1) { |line, lineno| ... } no longer</div><div class='del'>-  works because str.lines returns an array.  Replace lines with</div><div class='del'>-  each_line in such cases.</div><div class='del'>-</div><div class='del'>-* IO#lines</div><div class='del'>-* IO#chars</div><div class='del'>-* IO#codepoints</div><div class='del'>-* IO#bytes</div><div class='del'>-* ARGF#lines</div><div class='del'>-* ARGF#chars</div><div class='del'>-* ARGF#bytes</div><div class='del'>-* StringIO#lines</div><div class='del'>-* StringIO#chars</div><div class='del'>-* StringIO#codepoints</div><div class='del'>-* StringIO#bytes</div><div class='del'>-* Zlib::GzipReader#lines</div><div class='del'>-* Zlib::GzipReader#bytes</div><div class='del'>-</div><div class='del'>-  These methods are deprecated in favor of each_line, each_byte,</div><div class='del'>-  each_char and each_codepoint.</div><div class='del'>-</div><div class='del'>-* Proc#==</div><div class='del'>-* Proc#eql?</div><div class='del'>-</div><div class='del'>-  These methods were removed. Two procs are == only when they are</div><div class='del'>-  the same object.</div><div class='del'>-</div><div class='del'>-* Fixnum</div><div class='del'>-* Bignum</div><div class='del'>-* Float</div><div class='del'>-</div><div class='del'>-  Fixnums, Bignums and Floats are frozen.</div><div class='del'>-</div><div class='del'>-* Signal.trap</div><div class='del'>-</div><div class='del'>-  See above.</div><div class='del'>-</div><div class='del'>-* Merge Onigmo.</div><div class='del'>-  https://github.com/k-takata/Onigmo</div><div class='del'>-</div><div class='del'>-* The :close_others option is true by default for system() and exec().</div><div class='del'>-  Also, the close-on-exec flag is set by default for all new file descriptors.</div><div class='del'>-  This means file descriptors doesn't inherit to spawned process unless</div><div class='del'>-  explicitly requested such as system(..., fd=&gt;fd).</div><div class='del'>-</div><div class='del'>-* Kernel#respond_to? against a protected method now returns false</div><div class='del'>-  unless the second argument is true.</div><div class='del'>-</div><div class='del'>-* Kernel#respond_to_missing?</div><div class='del'>-* Kernel#initialize_clone</div><div class='del'>-* Kernel#initialize_dup</div><div class='del'>-</div><div class='del'>-  These methods are now private.</div><div class='del'>-</div><div class='del'>-* Thread#join, Thread#value</div><div class='del'>-</div><div class='del'>-  See above.</div><div class='del'>-</div><div class='del'>-* Mutex#lock, Mutex#unlock, Mutex#try_lock, Mutex#synchronize and Mutex#sleep</div><div class='del'>-</div><div class='del'>-  See above.</div><div class='del'>-</div><div class='del'>-=== Stdlib updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* cgi</div><div class='del'>-  * Add HTML5 tag maker.</div><div class='del'>-  * CGI#header has been renamed to CGI#http_header and</div><div class='del'>-    aliased to CGI#header.</div><div class='del'>-  * When HTML5 tagmaker called, overwrite CGI#header,</div><div class='del'>-    CGI#header function is to create a &lt;header&gt; element.</div><div class='del'>-</div><div class='del'>-* CSV</div><div class='del'>-  * Removed CSV::dump and CSV::load to protect users from dangerous</div><div class='del'>-    serialization vulnerability</div><div class='del'>-</div><div class='del'>-* iconv</div><div class='del'>-  * Iconv has been removed. Use String#encode instead.</div><div class='del'>-</div><div class='del'>-* io/console</div><div class='del'>-  * new methods:</div><div class='del'>-    * added IO#cooked which sets the terminal to cooked mode within the given block.</div><div class='del'>-    * added IO#cooked! which sets the terminal to cooked.</div><div class='del'>-  * extended method:</div><div class='del'>-    * IO#raw, IO#raw!, and IO#getch accept keyword arguments, :min and :time.</div><div class='del'>-</div><div class='del'>-* io/wait</div><div class='del'>-  * new features:</div><div class='del'>-    * added IO#wait_writable method.</div><div class='del'>-    * added IO#wait_readable method as alias of IO#wait.</div><div class='del'>-</div><div class='del'>-* json</div><div class='del'>-  * updated to 1.7.7.</div><div class='del'>-</div><div class='del'>-* net/http</div><div class='del'>-  * new features:</div><div class='del'>-    * Proxies are now automatically detected from the http_proxy environment</div><div class='del'>-      variable.  See Net::HTTP::new for details.</div><div class='del'>-    * gzip and deflate compression are now requested for all requests by</div><div class='del'>-      default.  See Net::HTTP for details.</div><div class='del'>-    * SSL sessions are now reused across connections for a single instance.</div><div class='del'>-      This speeds up connection by using a previously negotiated session.</div><div class='del'>-    * Requests may be created from a URI which sets the request_uri and host</div><div class='del'>-      header of the request (but does not change the host connected to).</div><div class='del'>-    * Responses contain the URI requested which allows easier implementation of</div><div class='del'>-      redirect following.</div><div class='del'>-  * new methods:</div><div class='del'>-    * Net::HTTP#local_host</div><div class='del'>-    * Net::HTTP#local_host=</div><div class='del'>-    * Net::HTTP#local_port</div><div class='del'>-    * Net::HTTP#local_port=</div><div class='del'>-  * extended method:</div><div class='del'>-    * Net::HTTP#connect uses local_host and local_port if specified.</div><div class='del'>-</div><div class='del'>-* net/imap</div><div class='del'>-  * new methods:</div><div class='del'>-    * Net::IMAP.default_port</div><div class='del'>-    * Net::IMAP.default_imap_port</div><div class='del'>-    * Net::IMAP.default_tls_port</div><div class='del'>-    * Net::IMAP.default_ssl_port</div><div class='del'>-    * Net::IMAP.default_imaps_port</div><div class='del'>-</div><div class='del'>-* objspace</div><div class='del'>-  * new method:</div><div class='del'>-    * ObjectSpace.reachable_objects_from(obj)</div><div class='del'>-</div><div class='del'>-* openssl</div><div class='del'>-  * Consistently raise an error when trying to encode nil values. All instances</div><div class='del'>-    of OpenSSL::ASN1::Primitive now raise TypeError when calling to_der on an</div><div class='del'>-    instance whose value is nil. All instances of OpenSSL::ASN1::Constructive</div><div class='del'>-    raise NoMethodError in the same case. Constructing such values is still</div><div class='del'>-    permitted.</div><div class='del'>-  * TLS 1.1 &amp; 1.2 support by setting OpenSSL::SSL::SSLContext#ssl_version to</div><div class='del'>-    :TLSv1_2, :TLSv1_2_server, :TLSv1_2_client or :TLSv1_1, :TLSv1_1_server</div><div class='del'>-    :TLSv1_1_client. The version being effectively used can be queried</div><div class='del'>-    with OpenSSL::SSL#ssl_version. Furthermore, it is also possible to</div><div class='del'>-    blacklist the new TLS versions with OpenSSL::SSL:OP_NO_TLSv1_1 and</div><div class='del'>-    OpenSSL::SSL::OP_NO_TLSv1_2.</div><div class='del'>-  * Added OpenSSL::SSL::SSLContext#renegotiation_cb. A user-defined callback</div><div class='del'>-    may be set which gets called whenever a new handshake is negotiated. This</div><div class='del'>-    also allows to programmatically decline (client) renegotiation attempts.</div><div class='del'>-  * Support for "0/n" splitting of records as BEAST mitigation via</div><div class='del'>-    OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS.</div><div class='del'>-  * The default options for OpenSSL::SSL::SSLContext have changed to</div><div class='del'>-    OpenSSL::SSL::OP_ALL &amp; ~OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS</div><div class='del'>-    instead of OpenSSL::SSL::OP_ALL only. This enables the countermeasure for</div><div class='del'>-    the BEAST attack by default.</div><div class='del'>-  * OpenSSL requires passwords for decrypting PEM-encoded files to be at least</div><div class='del'>-    four characters long. This led to awkward situations where an export with</div><div class='del'>-    a password with fewer than four characters was possible, but accessing the</div><div class='del'>-    file afterwards failed. OpenSSL::PKey::RSA, OpenSSL::PKey::DSA and</div><div class='del'>-    OpenSSL::PKey::EC therefore now enforce the same check when exporting a</div><div class='del'>-    private key to PEM with a password - it has to be at least four characters</div><div class='del'>-    long.</div><div class='del'>-  * SSL/TLS support for the Next Protocol Negotiation extension. Supported</div><div class='del'>-    with OpenSSL 1.0.1 and higher.</div><div class='del'>-  * OpenSSL::OPENSSL_FIPS allows client applications to detect whether OpenSSL</div><div class='del'>-    is FIPS-enabled. OpenSSL.fips_mode= allows turning on and off FIPS mode</div><div class='del'>-    manually in order to adapt to situations where FIPS mode would be an</div><div class='del'>-    explicit requirement.</div><div class='del'>-  * Authenticated Encryption with Associated Data (AEAD) is supported via</div><div class='del'>-    Cipher#auth_data= and Cipher#auth_tag/Cipher#auth_tag=.</div><div class='del'>-    Currently (OpenSSL 1.0.1c), only GCM mode is supported.</div><div class='del'>-</div><div class='del'>-* ostruct</div><div class='del'>-  * new methods:</div><div class='del'>-    * OpenStruct#[], []=</div><div class='del'>-    * OpenStruct#each_pair</div><div class='del'>-    * OpenStruct#eql?</div><div class='del'>-    * OpenStruct#hash</div><div class='del'>-    * OpenStruct#to_h converts the struct to a hash.</div><div class='del'>-  * extended method:</div><div class='del'>-    * OpenStruct.new also accepts an OpenStruct / Struct.</div><div class='del'>-</div><div class='del'>-* pathname</div><div class='del'>-  * extended method:</div><div class='del'>-    * Pathname#find returns an enumerator if no block is given.</div><div class='del'>-</div><div class='del'>-* rake</div><div class='del'>-  * rake has been updated to version 0.9.5.</div><div class='del'>-</div><div class='del'>-    This version is backwards-compatible with previous rake versions and</div><div class='del'>-    contains many bug fixes.</div><div class='del'>-</div><div class='del'>-    See</div><div class='del'>-    http://rake.rubyforge.org/doc/release_notes/rake-0_9_5_rdoc.html for a list</div><div class='del'>-    of changes in rake 0.9.3, 0.9.4 and 0.9.5.</div><div class='del'>-</div><div class='del'>-* RDoc</div><div class='del'>-  * RDoc has been updated to version 4.0</div><div class='del'>-</div><div class='del'>-    This version is largely backwards-compatible with previous rdoc versions.</div><div class='del'>-    The most notable change is an update to the ri data format (ri data must</div><div class='del'>-    be regenerated for gems shared across rdoc versions).  Further API changes</div><div class='del'>-    are internal and won't affect most users.</div><div class='del'>-</div><div class='del'>-    Notable changes include:</div><div class='del'>-</div><div class='del'>-    * Page support for ri.  Try `ri ruby:` for a list of pages in ruby or</div><div class='del'>-      `ri ruby:syntax/literals` for the syntax documentation for literals.</div><div class='del'>-</div><div class='del'>-      This also works for gems such as `ri rspec:README` for the rspec gem's</div><div class='del'>-      README file.</div><div class='del'>-    * Markdown support.  See ri RDoc::Markdown for details.</div><div class='del'>-</div><div class='del'>-    See https://github.com/rdoc/rdoc/blob/master/History.rdoc for a full list</div><div class='del'>-    of changes in rdoc 4.0.</div><div class='del'>-</div><div class='del'>-* resolv</div><div class='del'>-  * new methods:</div><div class='del'>-    * Resolv::DNS#timeouts=</div><div class='del'>-    * Resolv::DNS::Config#timeouts=</div><div class='del'>-</div><div class='del'>-* rexml</div><div class='del'>-  * REXML::Document#write supports Hash arguments.</div><div class='del'>-  * REXML::Document#write supports new :encoding option. It changes</div><div class='del'>-    XML document encoding. Without :encoding option, encoding in</div><div class='del'>-    XML declaration is used for XML document encoding.</div><div class='del'>-</div><div class='del'>-* RubyGems</div><div class='del'>-  * Updated to 2.0.0</div><div class='del'>-</div><div class='del'>-    RubyGems 2.0.0 features the following improvements:</div><div class='del'>-</div><div class='del'>-    * Improved support for default gems shipping with ruby 2.0.0+</div><div class='del'>-    * A gem can have arbitrary metadata through Gem::Specification#metadata</div><div class='del'>-    * `gem search` now defaults to --remote and is anchored like gem list.</div><div class='del'>-    * Added --document to replace --rdoc and --ri.  Use --no-document to</div><div class='del'>-      disable documentation, --document=rdoc to only generate rdoc.</div><div class='del'>-    * Only ri-format documentation is generated by default.</div><div class='del'>-    * `gem server` uses RDoc::Servlet from RDoc 4.0 to generate HTML</div><div class='del'>-      documentation.</div><div class='del'>-</div><div class='del'>-    For an expanded list of updates and bug fixes see:</div><div class='del'>-    https://github.com/rubygems/rubygems/blob/master/History.txt</div><div class='del'>-</div><div class='del'>-* shellwords</div><div class='del'>-  * Shellwords#shellescape now stringifies the given object using to_s.</div><div class='del'>-  * Shellwords#shelljoin accepts non-string objects in the given</div><div class='del'>-    array, each of which is stringified using to_s.</div><div class='del'>-</div><div class='del'>-* stringio</div><div class='del'>-  * deprecated methods:</div><div class='del'>-    * StringIO#lines, #bytes, #chars and #codepoints are deprecated.</div><div class='del'>-</div><div class='del'>-* syslog</div><div class='del'>-  * Added Syslog::Logger which provides a Logger API atop Syslog.</div><div class='del'>-  * Syslog::Priority, Syslog::Level, Syslog::Option and Syslog::Macros</div><div class='del'>-    are introduced for easy detection of available constants on a</div><div class='del'>-    running system.</div><div class='del'>-</div><div class='del'>-* tmpdir</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Dir.mktmpdir uses FileUtils.remove_entry instead of</div><div class='del'>-      FileUtils.remove_entry_secure.  This means that applications should not</div><div class='del'>-      change the permission of the created temporary directory to make</div><div class='del'>-      writable from other users.</div><div class='del'>-</div><div class='del'>-* yaml</div><div class='del'>-  * Syck has been removed.  YAML now completely depends on libyaml being</div><div class='del'>-    installed.</div><div class='del'>-  * libyaml is now bundled with ruby, for cases where the library is not</div><div class='del'>-    installed locally.</div><div class='del'>-</div><div class='del'>-* zlib</div><div class='del'>-  * Added streaming support for Zlib::Inflate and Zlib::Deflate.  This allows</div><div class='del'>-    processing of a stream without the use of large amounts of memory.</div><div class='del'>-  * Added support for the new deflate strategies Zlib::RLE and Zlib::FIXED.</div><div class='del'>-  * Zlib streams are now processed without the GVL.  This allows gzip, zlib and</div><div class='del'>-    deflate streams to be processed in parallel.</div><div class='del'>-  * deprecated methods:</div><div class='del'>-    * Zlib::GzipReader#lines and #bytes are deprecated.</div><div class='del'>-</div><div class='del'>-=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* OpenStruct new methods can conflict with custom attributes named</div><div class='del'>-  "each_pair", "eql?", "hash" or "to_h".</div><div class='del'>-</div><div class='del'>-* Dir.mktmpdir in lib/tmpdir.rb</div><div class='del'>-</div><div class='del'>-  See above.</div><div class='del'>-</div><div class='del'>-=== C API updates</div><div class='del'>-</div><div class='del'>-* NUM2SHORT() and NUM2USHORT() added. They are similar to NUM2INT, but short.</div><div class='del'>-</div><div class='del'>-* rb_newobj_of() and NEWOBJ_OF() added. They create a new object of a given class.</div><div class='head'>diff --git a/doc/NEWS-2.1.0 b/doc/NEWS-2.1.0<br/>deleted file mode 100644<br/>index 5d4152b8dc..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/NEWS-2.1.0?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.1.0</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,376 +0,0 @@</div><div class='del'>-# -*- rdoc -*-</div><div class='del'>-</div><div class='del'>-= NEWS for Ruby 2.1.0</div><div class='del'>-</div><div class='del'>-This document is a list of user visible feature changes made between</div><div class='del'>-releases except for bug fixes.</div><div class='del'>-</div><div class='del'>-Note that each entry is kept so brief that no reason behind or</div><div class='del'>-reference information is supplied with.  For a full list of changes</div><div class='del'>-with all sufficient information, see the ChangeLog file.</div><div class='del'>-</div><div class='del'>-== Changes since the 2.0.0 release</div><div class='del'>-</div><div class='del'>-=== Language changes</div><div class='del'>-</div><div class='del'>-* Now the default values of keyword arguments can be omitted.  Those</div><div class='del'>-  "required keyword arguments" need giving explicitly at the call time.</div><div class='del'>-</div><div class='del'>-* Added suffixes for integer and float literals: 'r', 'i', and 'ri'.</div><div class='del'>-  * "42r" and "3.14r" are evaluated as Rational(42, 1) and 3.14.rationalize,</div><div class='del'>-    respectively.  But exponential form with 'r' suffix like "6.022e+23r" is</div><div class='del'>-    not accepted because it is misleading.</div><div class='del'>-  * "42i" and "3.14i" are evaluated as Complex(0, 42) and Complex(0, 3.14),</div><div class='del'>-    respectively.</div><div class='del'>-  * "42ri" and "3.14ri" are evaluated as Complex(0, 42r) and Complex(0, 3.14r),</div><div class='del'>-    respectively.</div><div class='del'>-</div><div class='del'>-* def-expr now returns the symbol of its name instead of nil.</div><div class='del'>-</div><div class='del'>-=== Core classes updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* Array</div><div class='del'>-  * New methods</div><div class='del'>-    * Array#to_h converts an array of key-value pairs into a Hash.</div><div class='del'>-</div><div class='del'>-* Binding</div><div class='del'>-  * New methods</div><div class='del'>-    * Binding#local_variable_get(symbol)</div><div class='del'>-    * Binding#local_variable_set(symbol, obj)</div><div class='del'>-    * Binding#local_variable_defined?(symbol)</div><div class='del'>-</div><div class='del'>-* Enumerable</div><div class='del'>-  * New methods</div><div class='del'>-    * Enumerable#to_h converts a list of key-value pairs into a Hash.</div><div class='del'>-</div><div class='del'>-* Exception</div><div class='del'>-  * New methods</div><div class='del'>-    * Exception#cause provides the previous exception which has been caught</div><div class='del'>-      at where raising the new exception.</div><div class='del'>-</div><div class='del'>-* GC</div><div class='del'>-  * improvements:</div><div class='del'>-    * introduced the generational GC a.k.a RGenGC.</div><div class='del'>-  * added environment variables:</div><div class='del'>-    * RUBY_GC_HEAP_INIT_SLOTS</div><div class='del'>-    * RUBY_GC_HEAP_FREE_SLOTS</div><div class='del'>-    * RUBY_GC_HEAP_GROWTH_FACTOR</div><div class='del'>-    * RUBY_GC_HEAP_GROWTH_MAX_SLOTS</div><div class='del'>-    * RUBY_GC_MALLOC_LIMIT_MAX</div><div class='del'>-    * RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR</div><div class='del'>-    * RUBY_GC_OLDMALLOC_LIMIT</div><div class='del'>-    * RUBY_GC_OLDMALLOC_LIMIT_MAX</div><div class='del'>-    * RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR</div><div class='del'>-  * obsoleted environment variables:</div><div class='del'>-    * RUBY_FREE_MIN (Use RUBY_GC_HEAP_FREE_SLOTS instead)</div><div class='del'>-    * RUBY_HEAP_MIN_SLOTS (Use RUBY_GC_HEAP_INIT_SLOTS instead)</div><div class='del'>-</div><div class='del'>-* Integer</div><div class='del'>-  * New methods</div><div class='del'>-    * Fixnum#bit_length</div><div class='del'>-    * Bignum#bit_length</div><div class='del'>-  * Bignum performance improvement</div><div class='del'>-    * Use GMP if available.</div><div class='del'>-      GMP is used only for several operations:</div><div class='del'>-      multiplication, division, radix conversion, GCD</div><div class='del'>-</div><div class='del'>-* IO</div><div class='del'>-  * extended methods:</div><div class='del'>-    * IO#seek supports SEEK_DATA and SEEK_HOLE as whence.</div><div class='del'>-    * IO#seek accepts symbols (:CUR, :END, :SET, :DATA, :HOLE) for 2nd argument.</div><div class='del'>-    * IO#read_nonblock accepts optional `exception: false` to return symbols</div><div class='del'>-    * IO#write_nonblock accepts optional `exception: false` to return symbols</div><div class='del'>-</div><div class='del'>-* Kernel</div><div class='del'>-  * New methods:</div><div class='del'>-    * Kernel#singleton_method</div><div class='del'>-</div><div class='del'>-* Module</div><div class='del'>-  * New methods:</div><div class='del'>-    * Module#using, which activates refinements of the specified module only</div><div class='del'>-      in the current class or module definition.</div><div class='del'>-    * Module#singleton_class? returns true if the receiver is a singleton class</div><div class='del'>-      or false if it is an ordinary class or module.</div><div class='del'>-  * extended methods:</div><div class='del'>-    * Module#refine is no longer experimental.</div><div class='del'>-    * Module#include and Module#prepend are now public methods.</div><div class='del'>-</div><div class='del'>-* Mutex</div><div class='del'>-  * misc</div><div class='del'>-    * Mutex#owned? is no longer experimental.</div><div class='del'>-</div><div class='del'>-* Numeric</div><div class='del'>-  * extended methods:</div><div class='del'>-    * Numeric#step allows the limit argument to be omitted, in which</div><div class='del'>-      case an infinite sequence of numbers is generated.  Keyword</div><div class='del'>-      arguments `to` and `by` are introduced for ease of use.</div><div class='del'>-      `by` can be 0, in which case the same value will be generated</div><div class='del'>-      indefinitely.</div><div class='del'>-</div><div class='del'>-* Process</div><div class='del'>-  * New methods:</div><div class='del'>-    * alternative methods to $0/$0=:</div><div class='del'>-      * Process.argv0() returns the original value of $0.</div><div class='del'>-      * Process.setproctitle() sets the process title without affecting $0.</div><div class='del'>-    * Process.clock_gettime</div><div class='del'>-    * Process.clock_getres</div><div class='del'>-</div><div class='del'>-* String</div><div class='del'>-  * "literal".freeze is now optimized to return the same object</div><div class='del'>-  * New methods:</div><div class='del'>-    * String#scrub and String#scrub! verify and fix invalid byte sequence.</div><div class='del'>-      If you want to use this function with older Ruby,</div><div class='del'>-      consider to use string-scrub.gem.</div><div class='del'>-</div><div class='del'>-* Symbol</div><div class='del'>-  * All symbols are now frozen.</div><div class='del'>-</div><div class='del'>-* pack/unpack (Array/String)</div><div class='del'>-  * Q! and q! directives for long long type if platform has the type.</div><div class='del'>-</div><div class='del'>-* toplevel</div><div class='del'>-  * extended methods:</div><div class='del'>-    * main.using is no longer experimental. The method activates refinements</div><div class='del'>-      in the ancestors of the argument module to support refinement</div><div class='del'>-      inheritance by Module#include.</div><div class='del'>-</div><div class='del'>-=== Core classes compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* Hash</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Hash#reject will return plain Hash object in the future versions, that</div><div class='del'>-      is the original object's subclass, instance variables, default value,</div><div class='del'>-      and taintedness will be no longer copied, so now warnings are emitted</div><div class='del'>-      when called with such Hash.</div><div class='del'>-</div><div class='del'>-* IO</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * open ignore internal encoding if external encoding is ASCII-8BIT.</div><div class='del'>-</div><div class='del'>-* Kernel#eval, Kernel#instance_eval, and Module#module_eval.</div><div class='del'>-  * Copies the scope information of the original environment, which means</div><div class='del'>-    that private, protected, public, and module_function without arguments</div><div class='del'>-    do not affect the environment outside the eval string.</div><div class='del'>-    For example, `class Foo; eval "private"; def foo; end; end' doesn't make</div><div class='del'>-    Foo#foo private.</div><div class='del'>-</div><div class='del'>-* Kernel#untrusted?, untrust, and trust</div><div class='del'>-  * These methods are deprecated and their behavior is same as tainted?,</div><div class='del'>-    taint, and untaint, respectively.  If $VERBOSE is true, they show warnings.</div><div class='del'>-</div><div class='del'>-* Module#ancestors</div><div class='del'>-  * The ancestors of a singleton class now include singleton classes,</div><div class='del'>-    in particular itself.</div><div class='del'>-</div><div class='del'>-* Module#define_method and Object#define_singleton_method</div><div class='del'>-  * Now they return the symbols of the defined methods, not the methods/procs</div><div class='del'>-    themselves.</div><div class='del'>-</div><div class='del'>-* Numeric#quo</div><div class='del'>-  * Raises TypeError instead of ArgumentError if the receiver doesn't have</div><div class='del'>-    to_r method.</div><div class='del'>-</div><div class='del'>-* Proc</div><div class='del'>-  * Returning from lambda proc now always exits from the Proc, not from the</div><div class='del'>-    method where the lambda is created.  Returning from non-lambda proc exits</div><div class='del'>-    from the method, same as the former behavior.</div><div class='del'>-</div><div class='del'>-String</div><div class='del'>-  * If invalid: :replace is specified for String#encode, replace</div><div class='del'>-    invalid byte sequence even if the destination encoding equals to</div><div class='del'>-    the source encoding.</div><div class='del'>-</div><div class='del'>-=== Stdlib updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* CGI::Util</div><div class='del'>-  * All class methods modulized.</div><div class='del'>-</div><div class='del'>-* Digest</div><div class='del'>-  * extended methods:</div><div class='del'>-    * Digest::Class.file takes optional arguments for its constructor</div><div class='del'>-</div><div class='del'>-* Matrix</div><div class='del'>-  * Added Vector#cross_product.</div><div class='del'>-</div><div class='del'>-* Net::SMTP</div><div class='del'>-  * Added Net::SMTP#rset to implement the RSET command</div><div class='del'>-</div><div class='del'>-* objspace</div><div class='del'>-  * new method:</div><div class='del'>-    * ObjectSpace.trace_object_allocations</div><div class='del'>-    * ObjectSpace.trace_object_allocations_start</div><div class='del'>-    * ObjectSpace.trace_object_allocations_stop</div><div class='del'>-    * ObjectSpace.trace_object_allocations_clear</div><div class='del'>-    * ObjectSpace.allocation_sourcefile</div><div class='del'>-    * ObjectSpace.allocation_sourceline</div><div class='del'>-    * ObjectSpace.allocation_class_path</div><div class='del'>-    * ObjectSpace.allocation_method_id</div><div class='del'>-    * ObjectSpace.allocation_generation</div><div class='del'>-    * ObjectSpace.reachable_objects_from_root</div><div class='del'>-    * ObjectSpace.dump</div><div class='del'>-    * ObjectSpace.dump_all</div><div class='del'>-</div><div class='del'>-* OpenSSL::BN</div><div class='del'>-  * extended methods:</div><div class='del'>-    * OpenSSL::BN.new allows Fixnum/Bignum argument.</div><div class='del'>-</div><div class='del'>-* open-uri</div><div class='del'>-  * Support multiple fields with same field name (like Set-Cookie).</div><div class='del'>-</div><div class='del'>-* Pathname</div><div class='del'>-  * New methods:</div><div class='del'>-    * Pathname#write</div><div class='del'>-    * Pathname#binwrite</div><div class='del'>-</div><div class='del'>-* rake</div><div class='del'>-  * Updated to 10.1.0.  Major changes include removal of the class namespace,</div><div class='del'>-    Rake::DSL to hold the rake DSL methods and removal of support for legacy</div><div class='del'>-    rake features.</div><div class='del'>-</div><div class='del'>-    For a complete list of changes since rake 0.9.6 see:</div><div class='del'>-</div><div class='del'>-    http://rake.rubyforge.org/doc/release_notes/rake-10_1_0_rdoc.html</div><div class='del'>-</div><div class='del'>-    http://rake.rubyforge.org/doc/release_notes/rake-10_0_3_rdoc.html</div><div class='del'>-</div><div class='del'>-* RbConfig</div><div class='del'>-  * New constants:</div><div class='del'>-    * RbConfig::SIZEOF is added to provide the size of C types.</div><div class='del'>-</div><div class='del'>-* RDoc</div><div class='del'>-  * Updated to 4.1.0.  Major enhancements include a modified default template</div><div class='del'>-  * and accessibility enhancements.</div><div class='del'>-</div><div class='del'>-    For a list of minor enhancements and bug fixes see:</div><div class='del'>-    https://github.com/rdoc/rdoc/blob/v4.1.0.preview.1/History.rdoc</div><div class='del'>-</div><div class='del'>-* Resolv</div><div class='del'>-  * New methods:</div><div class='del'>-    * Resolv::DNS.fetch_resource</div><div class='del'>-  * One-shot multicast DNS support</div><div class='del'>-  * Support LOC resources</div><div class='del'>-</div><div class='del'>-* REXML::Parsers::SAX2Parser</div><div class='del'>-  * Fixes wrong number of arguments of entitydecl event. Document of the event</div><div class='del'>-    says "an array of the entity declaration" but implementation passes two</div><div class='del'>-    or more arguments. It is an implementation bug but it breaks backward</div><div class='del'>-    compatibility.</div><div class='del'>-</div><div class='del'>-* REXML::Parsers::StreamParser</div><div class='del'>-  * Supports "entity" event.</div><div class='del'>-</div><div class='del'>-* REXML::Text</div><div class='del'>-  * REXML::Text#&lt;&lt; supports method chain like 'text &lt;&lt; "XXX" &lt;&lt; "YYY"'.</div><div class='del'>-  * REXML::Text#&lt;&lt; supports not "raw" mode.</div><div class='del'>-</div><div class='del'>-* Rinda::RingServer, Rinda::RingFinger</div><div class='del'>-  * Rinda now supports multicast sockets.  See Rinda::RingServer and</div><div class='del'>-    Rinda::RingFinger for details.</div><div class='del'>-</div><div class='del'>-* RubyGems</div><div class='del'>-  * Updated to 2.2.0.  Notable new features include:</div><div class='del'>-</div><div class='del'>-    * Gemfile or gem.deps.rb support including Gem.file.lock (experimental)</div><div class='del'>-    * Improved, iterative resolver (compared to RubyGems 2.1 and earlier)</div><div class='del'>-    * Support for a sharing a GEM_HOME across ruby platforms and versions</div><div class='del'>-</div><div class='del'>-    For a complete list of enhancements and bug fixes see:</div><div class='del'>-    https://github.com/rubygems/rubygems/tree/master/History.txt</div><div class='del'>-</div><div class='del'>-* Set</div><div class='del'>-  * New methods:</div><div class='del'>-    * Set#intersect?</div><div class='del'>-    * Set#disjoint?</div><div class='del'>-</div><div class='del'>-* Socket</div><div class='del'>-  * New methods:</div><div class='del'>-    * Socket.getifaddrs</div><div class='del'>-</div><div class='del'>-* StringScanner</div><div class='del'>-  * extended methods:</div><div class='del'>-    * StringScanner#[] supports named captures.</div><div class='del'>-</div><div class='del'>-* Syslog::Logger</div><div class='del'>-  * Added facility.</div><div class='del'>-</div><div class='del'>-* Tempfile</div><div class='del'>-  * New methods:</div><div class='del'>-    * Tempfile.create</div><div class='del'>-</div><div class='del'>-* Timeout</div><div class='del'>-  * The exception to terminate the given block can no longer be rescued</div><div class='del'>-    inside the block, by default, unless the exception class is given</div><div class='del'>-    explicitly.</div><div class='del'>-</div><div class='del'>-* TSort</div><div class='del'>-  * New methods:</div><div class='del'>-    * TSort.tsort</div><div class='del'>-    * TSort.tsort_each</div><div class='del'>-    * TSort.strongly_connected_components</div><div class='del'>-    * TSort.each_strongly_connected_component</div><div class='del'>-    * TSort.each_strongly_connected_component_from</div><div class='del'>-</div><div class='del'>-* WEBrick</div><div class='del'>-  * The body of a response may now be a StringIO or other IO-like that responds</div><div class='del'>-    to #readpartial and #read.</div><div class='del'>-</div><div class='del'>-* XMLRPC::Client</div><div class='del'>-  * New methods:</div><div class='del'>-    * XMLRPC::Client#http. It returns Net::HTTP for the client. Normally,</div><div class='del'>-      it is not needed. It is useful when you want to change minor HTTP client</div><div class='del'>-      options. You can change major HTTP client options by XMLRPC::Client</div><div class='del'>-      methods. You should use XMLRPC::Client methods for changing major</div><div class='del'>-      HTTP client options instead of XMLRPC::Client#http.</div><div class='del'>-</div><div class='del'>-=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* Set</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Set#to_set now returns self instead of generating a copy.</div><div class='del'>-</div><div class='del'>-* URI</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * URI.decode_www_form follows current WHATWG URL Standard.</div><div class='del'>-      It gets encoding argument to specify the character encoding.</div><div class='del'>-      It now allows loose percent encoded strings, but denies ;-separator.</div><div class='del'>-    * URI.encode_www_form follows current WHATWG URL Standard.</div><div class='del'>-      It gets encoding argument to convert before percent encode.</div><div class='del'>-      UTF-16 strings aren't converted to UTF-8 before percent encode by default.</div><div class='del'>-</div><div class='del'>-* curses</div><div class='del'>-  * Removed.</div><div class='del'>-    curses is now available as a gem.</div><div class='del'>-    See https://rubygems.org/gems/curses for details.</div><div class='del'>-</div><div class='del'>-=== Built-in global variables compatibility issues</div><div class='del'>-</div><div class='del'>-* $SAFE</div><div class='del'>-  * $SAFE=4 is obsolete.  If $SAFE is set to 4 or larger, an ArgumentError</div><div class='del'>-    is raised.</div><div class='del'>-</div><div class='del'>-=== C API updates</div><div class='del'>-</div><div class='del'>-* rb_gc_set_params() is deprecated. This is only used in Ruby internal.</div><div class='del'>-</div><div class='del'>-* rb_gc_count() added. This returns the number of times GC occurred.</div><div class='del'>-</div><div class='del'>-* rb_gc_stat() added. This allows access to specific GC.stat() values from C</div><div class='del'>-  without any allocation overhead.</div><div class='del'>-</div><div class='del'>-* rb_gc_latest_gc_info() added. This allows access to GC.latest_gc_info().</div><div class='del'>-</div><div class='del'>-* rb_postponed_job_register() added. Takes a function callback which is invoked</div><div class='del'>-  when the VM is in a consistent state, i.e. to perform work from a C signal</div><div class='del'>-  handler.</div><div class='del'>-</div><div class='del'>-* rb_profile_frames() added. Provides low-cost access to the current ruby stack</div><div class='del'>-  for callstack profiling.</div><div class='del'>-</div><div class='del'>-* rb_tracepoint_new() supports new internal events accessible only from C:</div><div class='del'>-  * RUBY_INTERNAL_EVENT_NEWOBJ</div><div class='del'>-  * RUBY_INTERNAL_EVENT_FREEOBJ</div><div class='del'>-  * RUBY_INTERNAL_EVENT_GC_START</div><div class='del'>-  * RUBY_INTERNAL_EVENT_GC_END_MARK</div><div class='del'>-  * RUBY_INTERNAL_EVENT_GC_END_SWEEP</div><div class='del'>-  * Note that you *can not* specify "internal events" with normal events</div><div class='del'>-    (such as RUBY_EVENT_CALL, RUBY_EVENT_RETURN) simultaneously.</div><div class='head'>diff --git a/doc/NEWS-2.2.0 b/doc/NEWS-2.2.0<br/>deleted file mode 100644<br/>index 5564c606ae..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/NEWS-2.2.0?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.2.0</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,361 +0,0 @@</div><div class='del'>-# -*- rdoc -*-</div><div class='del'>-</div><div class='del'>-= NEWS for Ruby 2.2.0</div><div class='del'>-</div><div class='del'>-This document is a list of user visible feature changes made between</div><div class='del'>-releases except for bug fixes.</div><div class='del'>-</div><div class='del'>-Note that each entry is kept so brief that no reason behind or</div><div class='del'>-reference information is supplied with.  For a full list of changes</div><div class='del'>-with all sufficient information, see the ChangeLog file.</div><div class='del'>-</div><div class='del'>-== Changes since the 2.1.0 release</div><div class='del'>-</div><div class='del'>-=== Language changes</div><div class='del'>-</div><div class='del'>-* nil/true/false</div><div class='del'>-  * nil/true/false objects are frozen. [Feature #8923]</div><div class='del'>-</div><div class='del'>-* Hash literal</div><div class='del'>-  * Symbol key followed by a colon can be quoted. [Feature #4276]</div><div class='del'>-</div><div class='del'>-* default argument</div><div class='del'>-  fixed a very longstanding bug that an optional argument was not</div><div class='del'>-  accessible in its default value expression.  [Bug #9593]</div><div class='del'>-</div><div class='del'>-=== Core classes updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* Binding</div><div class='del'>-  * New methods:</div><div class='del'>-    * Binding#local_variables</div><div class='del'>-    * Binding#receiver</div><div class='del'>-</div><div class='del'>-* Dir</div><div class='del'>-  * New methods:</div><div class='del'>-    * Dir#fileno</div><div class='del'>-</div><div class='del'>-* Enumerable</div><div class='del'>-  * New methods:</div><div class='del'>-    * Enumerable#slice_after</div><div class='del'>-    * Enumerable#slice_when</div><div class='del'>-  * Extended methods:</div><div class='del'>-    * min, min_by, max and max_by supports optional argument to return</div><div class='del'>-      multiple elements.</div><div class='del'>-</div><div class='del'>-* Float</div><div class='del'>-  * New methods:</div><div class='del'>-    * Float#next_float</div><div class='del'>-    * Float#prev_float</div><div class='del'>-</div><div class='del'>-* File</div><div class='del'>-  * New methods:</div><div class='del'>-    * File.birthtime</div><div class='del'>-    * File#birthtime</div><div class='del'>-</div><div class='del'>-* File::Stat</div><div class='del'>-  * New methods:</div><div class='del'>-    * File::Stat#birthtime</div><div class='del'>-</div><div class='del'>-* GC</div><div class='del'>-  * GC.latest_gc_info returns :state to represent current GC status.</div><div class='del'>-  * Improvements</div><div class='del'>-    * Introduce incremental marking for major GC. [Feature #10137]</div><div class='del'>-</div><div class='del'>-* IO</div><div class='del'>-  * Improvements</div><div class='del'>-    * IO#read_nonblock and IO#write_nonblock for pipes on Windows are supported.</div><div class='del'>-</div><div class='del'>-* Kernel</div><div class='del'>-  * New methods:</div><div class='del'>-    * Kernel#itself</div><div class='del'>-  * Improvements</div><div class='del'>-    * Kernel#throw raises UncaughtThrowError, subclass of ArgumentError when</div><div class='del'>-      there is no corresponding catch block, instead of ArgumentError.</div><div class='del'>-</div><div class='del'>-* Process</div><div class='del'>-  * Extended method:</div><div class='del'>-    * Process execution methods such as Process.spawn opens the file in write</div><div class='del'>-      mode for redirect from [:out, :err].</div><div class='del'>-</div><div class='del'>-* String</div><div class='del'>-  * New methods:</div><div class='del'>-    * String#unicode_normalize</div><div class='del'>-    * String#unicode_normalize!</div><div class='del'>-    * String#unicode_normalized?</div><div class='del'>-</div><div class='del'>-* Symbol</div><div class='del'>-  * Improvements</div><div class='del'>-    * Most symbols which are returned by String#to_sym and</div><div class='del'>-      String#intern are GC-able.</div><div class='del'>-</div><div class='del'>-* Method</div><div class='del'>-  * New methods:</div><div class='del'>-    * Method#curry([arity]) returns a curried Proc.</div><div class='del'>-    * Method#super_method returns a Method of superclass, which would be called</div><div class='del'>-      when super is used.</div><div class='del'>-</div><div class='del'>-=== Core classes compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* Enumerable</div><div class='del'>-  * Enumerable#slice_before's state management deprecated.</div><div class='del'>-  * Enumerable#chunk's state management deprecated.</div><div class='del'>-</div><div class='del'>-* GC</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Rename GC.stat entries. [Feature #9924]</div><div class='del'>-      See https://docs.google.com/spreadsheets/d/11Ua4uBr6o0k-nORrZLEIIUkHJ9JRzRR0NyZfrhEEnc8/edit?usp=sharing</div><div class='del'>-</div><div class='del'>-* Hash</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Change overriding policy for duplicated key. [Bug #10315]</div><div class='del'>-      { **hash1, **hash2 } contains values of hash2 for duplicated keys.</div><div class='del'>-</div><div class='del'>-* IO</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * When flushing file IO with IO#flush, you cannot assume that the metadata</div><div class='del'>-      of the file is updated immediately.  On some platforms (especially</div><div class='del'>-      Windows), it is delayed until the filesystem load is decreased.</div><div class='del'>-      Use IO#fsync if you want to guarantee updating metadata.</div><div class='del'>-</div><div class='del'>-* Math</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Math.log now raises Math::DomainError instead of returning NaN if the</div><div class='del'>-      base is less than 0, and returns NaN instead of -infinity if both of</div><div class='del'>-      two arguments are 0.</div><div class='del'>-    * Math.atan2 now returns values like as expected by C99 if both two</div><div class='del'>-      arguments are infinity.</div><div class='del'>-</div><div class='del'>-* Proc</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * ArgumentError is no longer raised when lambda Proc is passed as a</div><div class='del'>-      block, and the number of yielded arguments does not match the formal</div><div class='del'>-      arguments of the lambda, if just an array is yielded and its length</div><div class='del'>-      matches.</div><div class='del'>-</div><div class='del'>-* Process</div><div class='del'>-  * Process execution methods such as Process.spawn opens the file in write</div><div class='del'>-    mode for redirect from [:out, :err].</div><div class='del'>-    Before Ruby 2.2, it was opened in read mode.</div><div class='del'>-</div><div class='del'>-=== Stdlib updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* Continuation</div><div class='del'>-  * callcc is obsolete. use Fiber instead.</div><div class='del'>-</div><div class='del'>-* Digest</div><div class='del'>-</div><div class='del'>-  * Digest() should now be thread-safe.  If you have a problem with</div><div class='del'>-    regard to on-demand loading under a multi-threaded environment,</div><div class='del'>-    preload "digest/*" modules on boot or use this method instead of</div><div class='del'>-    directly referencing Digest::*.</div><div class='del'>-  * Digest::HMAC has been removed just as previously noticed.</div><div class='del'>-</div><div class='del'>-* DL</div><div class='del'>-  * DL has been removed from stdlib. Please use Fiddle instead!</div><div class='del'>-</div><div class='del'>-* Etc</div><div class='del'>-  * New methods:</div><div class='del'>-    * Etc.uname</div><div class='del'>-    * Etc.sysconf</div><div class='del'>-    * Etc.confstr</div><div class='del'>-    * IO#pathconf</div><div class='del'>-    * Etc.nprocessors</div><div class='del'>-</div><div class='del'>-* Find, Pathname</div><div class='del'>-  * Extended methods:</div><div class='del'>-    * find method accepts "ignore_error" keyword argument.</div><div class='del'>-</div><div class='del'>-* Matrix</div><div class='del'>-  * New methods:</div><div class='del'>-    * Matrix#first_minor(row, column) returns the submatrix obtained</div><div class='del'>-      by deleting the specified row and column.</div><div class='del'>-    * Matrix#cofactor(row, column) returns the (row, column) cofactor</div><div class='del'>-      which is obtained by multiplying the first minor by (-1)**(row + column).</div><div class='del'>-    * Matrix#adjugate returns the adjugate of the matrix.</div><div class='del'>-    * hstack and vstack are new instance and class methods to stack matrices</div><div class='del'>-      horizontally and vertically.</div><div class='del'>-    * Matrix#laplace_expansion(row_or_column: num) returns the laplace_expansion</div><div class='del'>-      along the +num+ -th row or column.</div><div class='del'>-    * Vector.basis(size:, index:) returns the specified basis vector.</div><div class='del'>-    * Unary - and + added for Vector and Matrix.</div><div class='del'>-    * Vector#cross_product generalized to arbitrary dimensions.</div><div class='del'>-    * Vector#dot and #cross are aliases for #inner_product and #cross_product.</div><div class='del'>-    * Vector#angle_with returns the angle with its argument</div><div class='del'>-    * New instance and class method independent? to test linear independence.</div><div class='del'>-</div><div class='del'>-* Pathname</div><div class='del'>-  * Pathname#/ is aliased to Pathname#+.</div><div class='del'>-  * New methods:</div><div class='del'>-    * Pathname#birthtime</div><div class='del'>-</div><div class='del'>-* Rake</div><div class='del'>-  * Updated to Rake 10.4.0.  For full release notes see:</div><div class='del'>-</div><div class='del'>-    http://docs.seattlerb.org/rake/History_rdoc.html#label-10.4.0</div><div class='del'>-</div><div class='del'>-* RubyGems</div><div class='del'>-  * Updated to RubyGems 2.4.2.  For full release notes see:</div><div class='del'>-</div><div class='del'>-    http://docs.seattlerb.org/rubygems/History_txt.html#label-2.4.2+%2F+2014-10-01</div><div class='del'>-</div><div class='del'>-* TSort</div><div class='del'>-  * TSort.tsort_each, TSort.each_strongly_connected_component and</div><div class='del'>-    TSort.each_strongly_connected_component_from returns an enumerator if</div><div class='del'>-    no block given.</div><div class='del'>-</div><div class='del'>-* XMLRPC</div><div class='del'>-  * Added new parser class named LibXMLStreamParser.</div><div class='del'>-</div><div class='del'>-=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* lib/mathn.rb</div><div class='del'>-  * Show deprecated warning [Feature #10169]</div><div class='del'>-</div><div class='del'>-* ext/date/lib/date/format.rb</div><div class='del'>-  * Removed because it's empty file.</div><div class='del'>-</div><div class='del'>-* Digest</div><div class='del'>-  * Digest::HMAC has finally ceased to exist.  Use OpenSSL::HMAC or an external gem instead.</div><div class='del'>-</div><div class='del'>-* time.rb</div><div class='del'>-  * Time.parse, Time.strptime, Time.rfc2822, Time.xmlschema may produce</div><div class='del'>-    fixed-offset Time objects.</div><div class='del'>-    It is happen when usual localtime doesn't preserve the offset from UTC.</div><div class='del'>-  * Time.httpdate produces always UTC Time object.</div><div class='del'>-  * Time.strptime raises ArgumentError when no date information.</div><div class='del'>-</div><div class='del'>-* lib/rational.rb</div><div class='del'>-  * Removed because it is deprecated from 2009.</div><div class='del'>-</div><div class='del'>-* lib/complex.rb</div><div class='del'>-  * Removed because it is deprecated from 2009.</div><div class='del'>-</div><div class='del'>-* lib/prettyprint.rb</div><div class='del'>-  * Removed PrettyPrint#first?</div><div class='del'>-</div><div class='del'>-* lib/minitest/*.rb</div><div class='del'>-  * Removed because it conflicts to minitest 5. [Feature #9711]</div><div class='del'>-</div><div class='del'>-* lib/test/**/*.rb</div><div class='del'>-  * Removed because it conflicts to minitest 5, and it was just an wrapper</div><div class='del'>-    of minitest 4. [Feature #9711]</div><div class='del'>-</div><div class='del'>-* lib/uri</div><div class='del'>-  * support RFC 3986. [Feature #2542]</div><div class='del'>-</div><div class='del'>-* GServer</div><div class='del'>-  * GServer is extracted to gserver gem. It's unmaintain code.</div><div class='del'>-</div><div class='del'>-* Logger</div><div class='del'>-  * Logger::Application is extracted to logger-application gem. It's unmaintain code.</div><div class='del'>-</div><div class='del'>-* ObjectSpace (after requiring "objspace")</div><div class='del'>-  * ObjectSpace.memsize_of(obj) returns a size includes sizeof(RVALUE).</div><div class='del'>-    [Bug #8984]</div><div class='del'>-</div><div class='del'>-* Prime</div><div class='del'>-  * incompatible changes:</div><div class='del'>-    * Prime.prime? now returns false for negative numbers. This method</div><div class='del'>-      should not be used to know the number is composite or not. [Bug #7395]</div><div class='del'>-</div><div class='del'>-* Psych</div><div class='del'>-  * Removed Psych::EngineManager [Bug #8344]</div><div class='del'>-</div><div class='del'>-=== Built-in global variables compatibility issues</div><div class='del'>-</div><div class='del'>-=== C API updates</div><div class='del'>-</div><div class='del'>-* Deprecated APIs removed.  [Feature #9502]</div><div class='del'>-</div><div class='del'>-  Check_SafeStr -&gt; SafeStringValue</div><div class='del'>-  rb_check_safe_str -&gt; SafeStringValue</div><div class='del'>-  rb_quad_pack -&gt; rb_integer_pack</div><div class='del'>-  rb_quad_unpack -&gt; rb_integer_unpack</div><div class='del'>-  rb_read_check : access struct FILE internal. no replacement.</div><div class='del'>-  rb_struct_iv_get : internal function. no replacement.</div><div class='del'>-  struct rb_blocking_region_buffer : internal type. no replacement.</div><div class='del'>-  rb_thread_blocking_region_begin -&gt; rb_thread_call_without_gvl family</div><div class='del'>-  rb_thread_blocking_region_end -&gt; rb_thread_call_without_gvl family</div><div class='del'>-  TRAP_BEG -&gt; rb_thread_call_without_gvl family</div><div class='del'>-  TRAP_END -&gt; rb_thread_call_without_gvl family</div><div class='del'>-  rb_thread_select -&gt; rb_thread_fd_select</div><div class='del'>-  struct rb_exec_arg : internal type. no replacement.</div><div class='del'>-  rb_exec : internal function. no replacement.</div><div class='del'>-  rb_exec_arg_addopt : internal function. no replacement.</div><div class='del'>-  rb_exec_arg_fixup : internal function. no replacement.</div><div class='del'>-  rb_exec_arg_init : internal function. no replacement.</div><div class='del'>-  rb_exec_err : internal function. no replacement.</div><div class='del'>-  rb_fork : internal function. no replacement.</div><div class='del'>-  rb_fork_err : internal function. no replacement.</div><div class='del'>-  rb_proc_exec_n : internal function. no replacement.</div><div class='del'>-  rb_run_exec_options : internal function. no replacement.</div><div class='del'>-  rb_run_exec_options_err : internal function. no replacement.</div><div class='del'>-  rb_thread_blocking_region -&gt; rb_thread_call_without_gvl family</div><div class='del'>-  rb_thread_polling -&gt; rb_thread_wait_for</div><div class='del'>-  rb_big2str0 : internal function. no replacement.</div><div class='del'>-  rb_big2ulong_pack -&gt; rb_integer_pack</div><div class='del'>-  rb_gc_set_params : internal function. no replacement.</div><div class='del'>-  rb_io_mode_flags -&gt; rb_io_modestr_fmode</div><div class='del'>-  rb_io_modenum_flags -&gt; rb_io_oflags_fmode</div><div class='del'>-</div><div class='del'>-* struct RBignum is hidden.  [Feature #6083]</div><div class='del'>-  Use rb_integer_pack and rb_integer_unpack instead.</div><div class='del'>-</div><div class='del'>-* struct RRational is hidden.  [Feature #9513]</div><div class='del'>-  Use rb_rational_num and rb_rational_den instead.</div><div class='del'>-</div><div class='del'>-* rb_big_new and rb_big_resize takes a size_t instead of long.</div><div class='del'>-</div><div class='del'>-* rb_num2long returns a long instead of SIGNED_VALUE.</div><div class='del'>-</div><div class='del'>-* rb_num2ulong returns an unsigned long instead of VALUE.</div><div class='del'>-</div><div class='del'>-* st hash table uses power-of-two sizes for speed [Feature #9425].</div><div class='del'>-  Lookups are 10-25% faster if using appropriate hash functions.</div><div class='del'>-  However, weaknesses in hash distribution can no longer be masked</div><div class='del'>-  by prime number-sized tables, so extensions may need to tweak</div><div class='del'>-  hash functions to ensure good distribution.</div><div class='del'>-</div><div class='del'>-* rb_sym2str() added. This is almost same as `rb_id2str(SYM2ID(sym))`</div><div class='del'>-  but not pinning a dynamic symbol.</div><div class='del'>-</div><div class='del'>-* rb_str_cat_cstr() added. This is same as `rb_str_cat2()`.</div><div class='del'>-</div><div class='del'>-* `rb_str_substr()` and `rb_str_subseq()` will share middle of a string,</div><div class='del'>-  but not only the end of a string, in the future.  Therefore, result</div><div class='del'>-  strings may not be NUL-terminated, `StringValueCStr()` is needed</div><div class='del'>-  calling to obtain a NUL-terminated C string.</div><div class='del'>-</div><div class='del'>-* rb_tracepoint_new() supports new internal events accessible only from C:</div><div class='del'>-  * RUBY_INTERNAL_EVENT_GC_ENTER</div><div class='del'>-  * RUBY_INTERNAL_EVENT_GC_EXIT</div><div class='del'>-    r47528</div><div class='del'>-</div><div class='del'>-* rb_hash_delete() now does not call the block given to the current method.</div><div class='del'>-</div><div class='del'>-* rb_extract_keywords() and rb_get_kwargs() exported.  See README.EXT</div><div class='del'>-  for details.</div><div class='del'>-</div><div class='del'>-=== Build system updates</div><div class='del'>-</div><div class='del'>-* jemalloc is optionally supported via `./configure --with-jemalloc`</div><div class='del'>-  jemalloc may be suitable when system malloc is slow or prone</div><div class='del'>-  to fragmentation.  [Feature #9113]</div><div class='del'>-</div><div class='del'>-=== Implementation changes</div><div class='del'>-</div><div class='del'>-* GC</div><div class='del'>-    * Most symbols which are returned by String#to_sym and</div><div class='del'>-      String#intern are GC-able [Feature #9634]</div><div class='del'>-    * Introduce incremental marking for major GC. [Feature #10137]</div><div class='del'>-    * Enable lazy sweep on GC caused by malloc().</div><div class='del'>-</div><div class='del'>-* VM</div><div class='del'>-    * Use frozen string literals for Hash#[] and Hash#[]=</div><div class='del'>-    * Fast keyword arguments passing [Feature #10440]</div><div class='del'>-    * Allow to receive huge splatted array by a rest argument</div><div class='del'>-      [Feature #10440]</div><div class='del'>-</div><div class='del'>-* Process</div><div class='del'>-    * Process creation methods, such as spawn(), uses vfork() system call.</div><div class='del'>-      vfork() is faster than fork() when the parent process uses huge memory.</div><div class='head'>diff --git a/doc/NEWS-2.3.0 b/doc/NEWS-2.3.0<br/>deleted file mode 100644<br/>index 489aba4a89..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/NEWS-2.3.0?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.3.0</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,404 +0,0 @@</div><div class='del'>-# -*- rdoc -*-</div><div class='del'>-</div><div class='del'>-= NEWS for Ruby 2.3.0</div><div class='del'>-</div><div class='del'>-This document is a list of user visible feature changes made between</div><div class='del'>-releases except for bug fixes.</div><div class='del'>-</div><div class='del'>-Note that each entry is kept so brief that no reason behind or</div><div class='del'>-reference information is supplied with.  For a full list of changes</div><div class='del'>-with all sufficient information, see the ChangeLog file or Redmine</div><div class='del'>-(e.g. &lt;tt&gt;https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER&lt;/tt&gt;)</div><div class='del'>-</div><div class='del'>-== Changes since the 2.2.0 release</div><div class='del'>-</div><div class='del'>-=== Language changes</div><div class='del'>-</div><div class='del'>-* frozen-string-literal pragma:</div><div class='del'>-</div><div class='del'>-  * new pragma, frozen-string-literal has been experimentally introduced.</div><div class='del'>-    [Feature #8976]</div><div class='del'>-  * besides, --enable/--disable=frozen-string-literal options also have</div><div class='del'>-    been introduced. [Feature #8976]</div><div class='del'>-  * command line options --debug or --debug=frozen-string-literal enable</div><div class='del'>-    additional debugging mode which shows created location with at frozen</div><div class='del'>-    object error (RuntimeError).</div><div class='del'>-    [Feature #11725]</div><div class='del'>-</div><div class='del'>-* safe navigation operator:</div><div class='del'>-</div><div class='del'>-  * new method call syntax, `object&amp;.foo', method #foo is called on</div><div class='del'>-    `object' if it is not nil.</div><div class='del'>-    this is similar to `try!' in Active Support, except:</div><div class='del'>-    * method name is syntactically required</div><div class='del'>-          obj.try! {} # valid</div><div class='del'>-          obj&amp;. {}    # syntax error</div><div class='del'>-    * arguments are evaluated only if a call is made:</div><div class='del'>-          obj.try!(:foo, bar())  # bar() is always evaluated</div><div class='del'>-          obj&amp;.foo(bar())        # bar() is conditionally evaluated</div><div class='del'>-    * attribute assignment is valid</div><div class='del'>-          obj&amp;.attr += 1</div><div class='del'>-    [Feature #11537]</div><div class='del'>-</div><div class='del'>-* the did_you_mean gem:</div><div class='del'>-</div><div class='del'>-  * When a NameError or NoMethodError occurs because of a typo in the name,</div><div class='del'>-    the did_you_mean gem automatically suggests other names similar to the</div><div class='del'>-    method name.</div><div class='del'>-</div><div class='del'>-      "Yuki".starts_with?("Y")</div><div class='del'>-      # =&gt; NoMethodError: undefined method `starts_with?' for "Yuki":String</div><div class='del'>-      #    Did you mean?  start_with?</div><div class='del'>-</div><div class='del'>-* indented here document:</div><div class='del'>-</div><div class='del'>-  * new string literal, here document starts with `&lt;&lt;~`.</div><div class='del'>-    refer doc/syntax/literals.rdoc for more details.</div><div class='del'>-    [Feature #9098]</div><div class='del'>-</div><div class='del'>-=== Core classes updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* ARGF</div><div class='del'>-</div><div class='del'>-  * ARGF.read_nonblock supports `exception: false' like IO#read_nonblock.</div><div class='del'>-    [Feature #11358]</div><div class='del'>-</div><div class='del'>-* Array</div><div class='del'>-</div><div class='del'>-  * Array#bsearch_index [Feature #10730]</div><div class='del'>-  * Array#dig [Feature #11643]</div><div class='del'>-</div><div class='del'>-* Comparable</div><div class='del'>-</div><div class='del'>-  * Comparable#== no longer rescues exceptions [Feature #7688]</div><div class='del'>-</div><div class='del'>-* Encoding</div><div class='del'>-</div><div class='del'>-  * new Encoding::IBM037 (alias ebcdic-cp-us; dummy)</div><div class='del'>-</div><div class='del'>-* Enumerable</div><div class='del'>-</div><div class='del'>-  * Enumerable#grep_v is added as inverse version of Enumerable#grep.</div><div class='del'>-    [Feature #11049]</div><div class='del'>-  * Enumerable#chunk_while [Feature #10769]</div><div class='del'>-</div><div class='del'>-* Enumerator::Lazy</div><div class='del'>-</div><div class='del'>-  * Enumerator::Lazy#grep_v [Feature #11773]</div><div class='del'>-</div><div class='del'>-* File</div><div class='del'>-</div><div class='del'>-  * File.mkfifo [Feature #11536]</div><div class='del'>-  * Add File::TMPFILE corresponding to O_TMPFILE</div><div class='del'>-</div><div class='del'>-* Hash</div><div class='del'>-</div><div class='del'>-  * Hash#fetch_values [Feature #10017]</div><div class='del'>-  * Hash#dig [Feature #11643]</div><div class='del'>-  * Hash#&lt;=, Hash#&lt;, Hash#&gt;=, Hash#&gt; [Feature #10984]</div><div class='del'>-  * Hash#to_proc [Feature #11653]</div><div class='del'>-</div><div class='del'>-* IO</div><div class='del'>-</div><div class='del'>-  * new mode flag File::SHARE_DELETE is available.</div><div class='del'>-    this flag means to permit deleting opened file on Windows, but currently</div><div class='del'>-    this affect only files opened as binary.  [Feature #11218]</div><div class='del'>-</div><div class='del'>-  * new option parameter `flags' is added.</div><div class='del'>-    this parameter is bitwise-ORed to oflags generated by normal mode argument.</div><div class='del'>-    [Feature #11253]</div><div class='del'>-</div><div class='del'>-  * IO#advise no longer raises Errno::ENOSYS in cases where it was</div><div class='del'>-    detected at build time but not available at runtime.  [Feature #11806]</div><div class='del'>-</div><div class='del'>-* Kernel</div><div class='del'>-</div><div class='del'>-  * Kernel#loop, when stopped by a StopIteration exception, returns</div><div class='del'>-    what the enumerator has returned instead of nil. [Feature #11498]</div><div class='del'>-</div><div class='del'>-* Module</div><div class='del'>-  * Module#deprecate_constant [Feature #11398]</div><div class='del'>-</div><div class='del'>-* NameError</div><div class='del'>-  * NameError#receiver is added to take the receiver object. [Feature #10881]</div><div class='del'>-</div><div class='del'>-* Numeric</div><div class='del'>-</div><div class='del'>-  * Numeric#positive? and Numeric#negative? are added, which return</div><div class='del'>-    true when the receiver is positive and negative respectively.</div><div class='del'>-    [Feature #11151]</div><div class='del'>-</div><div class='del'>-* Proc</div><div class='del'>-</div><div class='del'>-  * Proc#call (and also #[], #===, #yield) are optimized.</div><div class='del'>-    Backtrace doesn't show each method (show block lines directly).</div><div class='del'>-    TracePoint also ignores these calls. [Feature #11569]</div><div class='del'>-</div><div class='del'>-* Queue (Thread::Queue)</div><div class='del'>-</div><div class='del'>-  * Queue#close is added to notice a termination. [Feature #10600]</div><div class='del'>-</div><div class='del'>-* Regexp/String: Updated Unicode version from 7.0.0 to 8.0.0</div><div class='del'>-</div><div class='del'>-* RubyVM::InstructionSequence</div><div class='del'>-  * add the following methods as a primitive tool of iseq loader.</div><div class='del'>-    See sample/iseq_loader.rb for usage.</div><div class='del'>-    Note that loader does not have verifier so it is easy to cause</div><div class='del'>-    critical problem by loading modified/broken binary data.</div><div class='del'>-    See [Feature #11788] for more details. (experimental feature)</div><div class='del'>-    * RubyVM::InstructionSequence#to_binary(extra_data = nil)</div><div class='del'>-    * RubyVM::InstructionSequence.load_from_binary(binary)</div><div class='del'>-    * RubyVM::InstructionSequence.load_from_binary_extra_data(binary)</div><div class='del'>-</div><div class='del'>-* String</div><div class='del'>-</div><div class='del'>-  * String#+@ and String#-@ are added to get mutable/frozen strings.</div><div class='del'>-    [Feature #11782]</div><div class='del'>-</div><div class='del'>-  * String.new now accepts new option parameter `encoding'.</div><div class='del'>-    [Feature #11785]</div><div class='del'>-</div><div class='del'>-* Struct</div><div class='del'>-  * Struct#dig [Feature #11688]</div><div class='del'>-</div><div class='del'>-* Thread</div><div class='del'>-  * Thread#name, Thread#name= are added to handle thread names [Feature #11251]</div><div class='del'>-</div><div class='del'>-=== Core classes compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* Array</div><div class='del'>-  * Array#select!, Array#keep_if, Array#reject!, and Array#delete_if</div><div class='del'>-    no longer changes the receiver array instantly every time the</div><div class='del'>-    block is called.  [Feature #10714]</div><div class='del'>-</div><div class='del'>-  * Array#flatten and Array#flatten! no longer try to call #to_ary</div><div class='del'>-    method on elements beyond the given level.  [Bug #10748]</div><div class='del'>-</div><div class='del'>-  * Array#inspect doesn't raise error even if its content returns</div><div class='del'>-    a string which is not compatible with Encoding.default_external</div><div class='del'>-    as inspected result. [Feature #11801]</div><div class='del'>-</div><div class='del'>-* Enumerable</div><div class='del'>-  * Enumerable#chunk and Enumerable#slice_before no longer takes the</div><div class='del'>-    initial_state argument.  [Feature #10958]</div><div class='del'>-    Use a local variable instead to maintain a state.</div><div class='del'>-</div><div class='del'>-* File::Stat</div><div class='del'>-  * On Windows File::Stat#ino always returned 0, but now returns</div><div class='del'>-    BY_HANDLE_FILE_INFORMATION.nFileIndexHigh/Low.  [Feature #11216]</div><div class='del'>-</div><div class='del'>-* Hash</div><div class='del'>-  * Hash#inspect doesn't raise error even if its content returns</div><div class='del'>-    a string which is not compatible with Encoding.default_external</div><div class='del'>-    as inspected result. [Feature #11801]</div><div class='del'>-</div><div class='del'>-* IO</div><div class='del'>-  * IO#close doesn't raise when the IO object is closed.  [Feature #10718]</div><div class='del'>-  * IO#each_codepoint raises an exception at incomplete character</div><div class='del'>-    before EOF when conversion takes place.  [Bug #11444]</div><div class='del'>-</div><div class='del'>-* Module</div><div class='del'>-  * Module#define_method and Object.define_singleton_method now</div><div class='del'>-    require method body, Proc, Method, or a block, and raise</div><div class='del'>-    ArgumentError if no block is given directly.  [Bug #11283]</div><div class='del'>-</div><div class='del'>-* pack/unpack (Array/String)</div><div class='del'>-  * j and J directives for pointer width integer type.  [Feature #11215]</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-=== Stdlib updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* Logger</div><div class='del'>-</div><div class='del'>-  * Logger#level= now supports symbol and string levels such as :debug, :info,</div><div class='del'>-    :warn, :error, :fatal (case insensitive) [Feature #11695]</div><div class='del'>-  * Logger#reopen is added to reopen a log device. [Feature #11696]</div><div class='del'>-</div><div class='del'>-* io/wait</div><div class='del'>-  * IO#wait_readable no longer checks FIONREAD, it may be used for</div><div class='del'>-    non-bytestream IO such as listen sockets.</div><div class='del'>-</div><div class='del'>-* Net::FTP</div><div class='del'>-  * Net::FTP#mlst is added.</div><div class='del'>-  * Net::FTP#mlsd is added.</div><div class='del'>-</div><div class='del'>-* nkf</div><div class='del'>-  * Merge nkf 2.1.4.</div><div class='del'>-</div><div class='del'>-* ObjectSpace (objspace)</div><div class='del'>-  * ObjectSpace.count_symbols is added.</div><div class='del'>-  * ObjectSpace.count_imemo_objects is added.</div><div class='del'>-  * ObjectSpace.internal_class_of is added.</div><div class='del'>-  * ObjectSpace.internal_super_of is added.</div><div class='del'>-</div><div class='del'>-* OpenSSL</div><div class='del'>-  * OpenSSL::SSL::SSLSocket#accept_nonblock and</div><div class='del'>-    OpenSSL::SSL::SSLSocket#connect_nonblock supports `exception: false`.</div><div class='del'>-    [Feature #10532]</div><div class='del'>-</div><div class='del'>-* Pathname</div><div class='del'>-  * Pathname#descend and Pathname#ascend supported blockless form.</div><div class='del'>-    [Feature #11052]</div><div class='del'>-</div><div class='del'>-* Socket</div><div class='del'>-  * Socket#connect_nonblock, Socket#accept_nonblock,</div><div class='del'>-    TCPServer#accept_nonblock, UNIXServer#accept_nonblock,</div><div class='del'>-    BasicSocket#recv_nonblock, BasicSocket#recvmsg_nonblock,</div><div class='del'>-    BasicSocket#sendmsg_nonblock all support `exception: false` to return</div><div class='del'>-    :wait_readable or :wait_writable symbols instead of raising</div><div class='del'>-    IO::WaitReadable or IO::WaitWritable exceptions</div><div class='del'>-    [Feature #10532] [Feature #11229]</div><div class='del'>-  * BasicSocket#recv and BasicSocket#recv_nonblock allow an output</div><div class='del'>-    String buffer argument like IO#read and IO#read_nonblock to reduce</div><div class='del'>-    GC overhead [Feature #11242]</div><div class='del'>-</div><div class='del'>-* StringIO</div><div class='del'>-  * In read-only mode, StringIO#set_encoding no longer sets the encoding</div><div class='del'>-    of its buffer string.  Setting the encoding of the string directly</div><div class='del'>-    without StringIO#set_encoding may cause unpredictable behavior now.</div><div class='del'>-    [Bug #11827]</div><div class='del'>-</div><div class='del'>-* timeout</div><div class='del'>-  * Object#timeout is now warned as deprecated when called.</div><div class='del'>-</div><div class='del'>-=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* ext/coverage/coverage.c</div><div class='del'>-  * Coverage.peek_result: new method to allow coverage to be captured without</div><div class='del'>-    stopping the coverage tool.  [Feature #10816]</div><div class='del'>-</div><div class='del'>-* Fiddle</div><div class='del'>-  * Fiddle::Function#call releases the GVL.  [Feature #11607]</div><div class='del'>-</div><div class='del'>-* io-console</div><div class='del'>-  * Update to io-console 0.4.5, and change the license to BSD 2-clause</div><div class='del'>-    "Simplified" License.</div><div class='del'>-</div><div class='del'>-* lib/base64.rb</div><div class='del'>-  * Base64.urlsafe_encode64: added a "padding" option to suppress</div><div class='del'>-    the padding character ("=").  [Feature #10740]</div><div class='del'>-  * Base64.urlsafe_decode64: now it accepts not only correctly-padded</div><div class='del'>-    input but also unpadded input.  [Feature #10740]</div><div class='del'>-</div><div class='del'>-* lib/drb/drb.rb</div><div class='del'>-  * removed unused argument. https://github.com/ruby/ruby/pull/515</div><div class='del'>-</div><div class='del'>-* lib/matrix.rb</div><div class='del'>-  * Add Vector#round. https://github.com/ruby/ruby/pull/802</div><div class='del'>-</div><div class='del'>-* lib/webrick/utils.rb</div><div class='del'>-  * removed unused argument. https://github.com/ruby/ruby/pull/356</div><div class='del'>-</div><div class='del'>-* Net::FTP</div><div class='del'>-  * Connections are in passive mode per default now.  The default mode can</div><div class='del'>-    be changed by Net::FTP.default_passive=.  [Feature #11612]</div><div class='del'>-</div><div class='del'>-* Net::HTTP</div><div class='del'>-  * default value of Net::HTTP#open_timeout is now 60 (was nil).</div><div class='del'>-</div><div class='del'>-* Net::Telnet</div><div class='del'>-  * Net::Telnet is extracted to net-telnet gem. It's unmaintain code.</div><div class='del'>-    [Feature #11083]</div><div class='del'>-</div><div class='del'>-* Psych</div><div class='del'>-  * Updated to Psych 2.0.17</div><div class='del'>-</div><div class='del'>-* Rake</div><div class='del'>-  * Rake is removed from stdlib.  [Feature #11025]</div><div class='del'>-</div><div class='del'>-* RDoc</div><div class='del'>-  * Updated to RDoc 4.2.1.  For full release notes see:</div><div class='del'>-</div><div class='del'>-    https://github.com/rdoc/rdoc/blob/master/History.rdoc#421--2015-12-22</div><div class='del'>-</div><div class='del'>-* RubyGems</div><div class='del'>-  * Updated to RubyGems 2.5.1.  For full release notes see:</div><div class='del'>-</div><div class='del'>-    http://docs.seattlerb.org/rubygems/History_txt.html#label-2.5.0+-2F+2015-11-03</div><div class='del'>-    and</div><div class='del'>-    http://docs.seattlerb.org/rubygems/History_txt.html#label-2.5.1+-2F+2015-12-10</div><div class='del'>-</div><div class='del'>-=== Built-in global variables compatibility issues</div><div class='del'>-</div><div class='del'>-* $SAFE</div><div class='del'>-  * $SAFE=2 and $SAFE=3 are obsolete.  If $SAFE is set to 2 or larger,</div><div class='del'>-    an ArgumentError is raised.  [Feature #5455]</div><div class='del'>-</div><div class='del'>-=== C API updates</div><div class='del'>-</div><div class='del'>-* rb_define_class_id_under() now raises a TypeError exception when the</div><div class='del'>-  class is already defined but its superclass does not match the given</div><div class='del'>-  superclass, as well as definitions in ruby level.</div><div class='del'>-</div><div class='del'>-* rb_timespec_now() is added to fetch current datetime as struct timespec.</div><div class='del'>-  [Feature #11558]</div><div class='del'>-</div><div class='del'>-* rb_time_timespec_new() is added to create a time object with epoch,</div><div class='del'>-  nanosecond, and UTC/localtime/time offset arguments.  [Feature #11558]</div><div class='del'>-</div><div class='del'>-* rb_autoload() deprecated, use rb_funcall() instead.  [Feature #11664]</div><div class='del'>-</div><div class='del'>-* rb_compile_error_with_enc(), rb_compile_error(), and rb_compile_bug()</div><div class='del'>-  deprecated.  these functions are exposed but only for internal use.</div><div class='del'>-  external libraries should not use them.</div><div class='del'>-</div><div class='del'>-=== Supported platform changes</div><div class='del'>-</div><div class='del'>-* OS/2 is no longer supported</div><div class='del'>-</div><div class='del'>-* BeOS is no longer supported</div><div class='del'>-</div><div class='del'>-* Borland-C is no longer supported</div><div class='del'>-</div><div class='del'>-* Haiku now stable and best effort</div><div class='del'>-</div><div class='del'>-=== Implementation improvements</div><div class='del'>-</div><div class='del'>-* Optimize Proc#call to eliminate method frame construction.</div><div class='del'>-  [Feature #11569]</div><div class='del'>-</div><div class='del'>-* Reconsidering method entry data structure.</div><div class='del'>-  [Bug #11278]</div><div class='del'>-</div><div class='del'>-* Introducing new table data structure for ID keys tables used by</div><div class='del'>-  method table and so on. New table structure is simple and fast</div><div class='del'>-  than st_table. [Feature #11420]</div><div class='del'>-</div><div class='del'>-* Machine code level tuning for object allocation and method calling</div><div class='del'>-  code. r52099, r52254</div><div class='del'>-</div><div class='del'>-* RubyVM::InstructionSequence is extended for future improvement.</div><div class='del'>-  [Feature #11788]</div><div class='del'>-</div><div class='del'>-* Case dispatch is now optimized for all special constant literals</div><div class='del'>-  including nil, true, and false.  Previously, only literal strings,</div><div class='del'>-  symbols, integers and floats compiled to optimized case dispatch.</div><div class='del'>-  [Feature #11769]</div><div class='del'>-</div><div class='del'>-* Instance variables on non-pure Ruby classes (T_DATA, T_FILE,</div><div class='del'>-  etc..) is less expensive to store than before. [Feature #11170]</div><div class='del'>-</div><div class='del'>-* All accesses to members of big Struct objects are performed in</div><div class='del'>-  constant-time.  Previously, Struct elements beyond the first 10</div><div class='del'>-  elements used a linear scan. [Feature #10585]</div><div class='del'>-</div><div class='del'>-* The Set class got several speed up.</div><div class='del'>-  [Misc #10754], [r52591]</div><div class='del'>-</div><div class='del'>-* Socket and I/O-related improvements</div><div class='del'>-</div><div class='del'>-  * Calling overhead of most of new keyword-using I/O methods in</div><div class='del'>-    [Feature #11229] is reduced by avoiding the inefficient C API</div><div class='del'>-    to parse keywords.  [Feature #11339]</div><div class='del'>-</div><div class='del'>-  * The standard library is updated to use the improved</div><div class='del'>-    exception-free non-blocking I/O from [Feature #11229].</div><div class='del'>-    This has the additional benefit of quieter $DEBUG output in</div><div class='del'>-    addition to reducing expensive exceptions. [Feature #11044]</div><div class='del'>-</div><div class='del'>-  * (Linux-only) waiting on a single FD anywhere in the stdlib no longer</div><div class='del'>-    uses select(2), making it immune to slowdowns with high-numbered FDs.</div><div class='del'>-    [Feature #11081] [Feature #11377]</div><div class='del'>-</div><div class='del'>-* CGI.escapeHTML is optimized with C extension.</div><div class='del'>-  https://github.com/ruby/ruby/pull/1164</div><div class='head'>diff --git a/doc/NEWS-2.4.0 b/doc/NEWS-2.4.0<br/>deleted file mode 100644<br/>index 28e855cde1..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/NEWS-2.4.0?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.4.0</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,397 +0,0 @@</div><div class='del'>-# -*- rdoc -*-</div><div class='del'>-</div><div class='del'>-= NEWS for Ruby 2.4.0</div><div class='del'>-</div><div class='del'>-This document is a list of user visible feature changes made between</div><div class='del'>-releases except for bug fixes.</div><div class='del'>-</div><div class='del'>-Note that each entry is kept so brief that no reason behind or</div><div class='del'>-reference information is supplied with.  For a full list of changes</div><div class='del'>-with all sufficient information, see the ChangeLog file or Redmine</div><div class='del'>-(e.g. &lt;tt&gt;https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER&lt;/tt&gt;)</div><div class='del'>-</div><div class='del'>-== Changes since the 2.3.0 release</div><div class='del'>-</div><div class='del'>-=== Language changes</div><div class='del'>-</div><div class='del'>-* Multiple assignment in conditional expression is now allowed.</div><div class='del'>-  [Feature #10617]</div><div class='del'>-</div><div class='del'>-* Refinements is enabled at method by Symbol#to_proc.  [Feature #9451]</div><div class='del'>-</div><div class='del'>-* Refinements is enabled with Kernel#send and BasicObject#__send__.</div><div class='del'>-  [Feature #11476]</div><div class='del'>-</div><div class='del'>-* Rescue modifier now applicable to method arguments.</div><div class='del'>-  [Feature #12686]</div><div class='del'>-</div><div class='del'>-* Toplevel return is now allowed.  [Feature #4840]</div><div class='del'>-</div><div class='del'>-=== Core classes updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* Array</div><div class='del'>-</div><div class='del'>-  * Array#concat [Feature #12333]</div><div class='del'>-    Now takes multiple arguments.</div><div class='del'>-</div><div class='del'>-  * Array#max and Array#min.  [Feature #12172]</div><div class='del'>-    This may cause a tiny incompatibility: if you redefine</div><div class='del'>-    Enumerable#max and call max to an Array, your redefinition will be</div><div class='del'>-    now ignored.  You should also redefine Array#max.</div><div class='del'>-</div><div class='del'>-  * Array#pack [Feature #12754]</div><div class='del'>-    Now takes optional argument `buffer:' to reuse already allocated buffer.</div><div class='del'>-</div><div class='del'>-  * Array#sum  [Feature #12217]</div><div class='del'>-    This is different from Enumerable#sum in that Array#sum doesn't depend on</div><div class='del'>-    the definition of each method.</div><div class='del'>-</div><div class='del'>-* Comparable</div><div class='del'>-</div><div class='del'>-  * Comparable#clamp.  [Feature #10594]</div><div class='del'>-</div><div class='del'>-* Dir</div><div class='del'>-</div><div class='del'>-  * Dir.empty?.  [Feature #10121]</div><div class='del'>-</div><div class='del'>-* Enumerable</div><div class='del'>-</div><div class='del'>-  * Enumerable#chunk called without a block now return an Enumerator</div><div class='del'>-    [Feature #2172]</div><div class='del'>-  * Enumerable#sum  [Feature #12217]</div><div class='del'>-  * Enumerable#uniq  [Feature #11090]</div><div class='del'>-</div><div class='del'>-* Enumerator::Lazy</div><div class='del'>-</div><div class='del'>-  * Enumerator::Lazy#chunk_while  [GH-1186]</div><div class='del'>-  * Enumerator::Lazy#uniq  [Feature #11090]</div><div class='del'>-</div><div class='del'>-* File</div><div class='del'>-</div><div class='del'>-  * File.empty?.  [Feature #9969]</div><div class='del'>-</div><div class='del'>-* Float</div><div class='del'>-</div><div class='del'>-  * Float#ceil, Float#floor, and Float#truncate now take an optional</div><div class='del'>-    digits, as well as Float#round.  [Feature #12245]</div><div class='del'>-</div><div class='del'>-  * Float#round now takes an optional keyword argument, half option, and</div><div class='del'>-    the default behavior is round-up.  [Bug #12548] [Bug #12958]</div><div class='del'>-    half option can be one of :even, :up, and :down.  [Feature #12953]</div><div class='del'>-</div><div class='del'>-* Hash</div><div class='del'>-</div><div class='del'>-  * Hash#compact and Hash#compact!  [Feature #11818]</div><div class='del'>-  * Hash#transform_values and Hash#transform_values!  [Feature #12512]</div><div class='del'>-</div><div class='del'>-* Integer</div><div class='del'>-</div><div class='del'>-  * Fixnum and Bignum are unified into Integer  [Feature #12005]</div><div class='del'>-</div><div class='del'>-  * Integer#ceil, Integer#floor, and Integer#truncate now take an optional</div><div class='del'>-    digits, as well as Integer#round.  [Feature #12245]</div><div class='del'>-</div><div class='del'>-  * Integer#digits for extracting columns of place-value notation [Feature #12447]</div><div class='del'>-</div><div class='del'>-  * Integer#round now takes an optional keyword argument, half option, and the</div><div class='del'>-    default behavior is round-up now.  [Bug #12548] [Bug #12958]</div><div class='del'>-    half option can be one of :even, :up, and :down.  [Feature #12953]</div><div class='del'>-</div><div class='del'>-* IO</div><div class='del'>-</div><div class='del'>-  * IO#gets, IO#readline, IO#each_line, IO#readlines, IO.foreach now takes</div><div class='del'>-    an optional keyword argument, chomp flag.  [Feature #12553]</div><div class='del'>-</div><div class='del'>-* Kernel</div><div class='del'>-</div><div class='del'>-  * Kernel#clone now takes an optional keyword argument, freeze flag.</div><div class='del'>-    [Feature #12300]</div><div class='del'>-</div><div class='del'>-* MatchData</div><div class='del'>-</div><div class='del'>-  * MatchData#named_captures [Feature #11999]</div><div class='del'>-  * MatchData#values_at supports named captures [Feature #9179]</div><div class='del'>-</div><div class='del'>-* Module</div><div class='del'>-</div><div class='del'>-  * Module#refine accepts a module as the argument now. [Feature #12534]</div><div class='del'>-  * Module.used_modules [Feature #7418]</div><div class='del'>-</div><div class='del'>-* Numeric</div><div class='del'>-</div><div class='del'>-  * Numeric#finite?, Numeric#infinite? [Feature #12039]</div><div class='del'>-</div><div class='del'>-* Process</div><div class='del'>-</div><div class='del'>-  * Support CLOCK_MONOTONIC_RAW_APPROX, CLOCK_UPTIME_RAW, and</div><div class='del'>-    CLOCK_UPTIME_RAW_APPROX which are introduced by macOS 10.12.</div><div class='del'>-</div><div class='del'>-* Rational</div><div class='del'>-</div><div class='del'>-  * Rational#round now takes an optional keyword argument, half option, and</div><div class='del'>-    the default behavior is round-up now.  [Bug #12548] [Bug #12958]</div><div class='del'>-    half option can be one of :even, :up, and :down.  [Feature #12953]</div><div class='del'>-</div><div class='del'>-* Regexp</div><div class='del'>-</div><div class='del'>-  * meta character \X matches Unicode 9.0 characters with some workarounds</div><div class='del'>-    for UTR #51 Unicode Emoji, Version 4.0 emoji zwj sequences.</div><div class='del'>-</div><div class='del'>-  * Regexp#match? [Feature #8110]</div><div class='del'>-    This returns bool and doesn't save backref.</div><div class='del'>-</div><div class='del'>-  * Update to Onigmo 6.0.0.</div><div class='del'>-</div><div class='del'>-* Regexp/String: Update Unicode version from 8.0.0 to 9.0.0 [Feature #12513]</div><div class='del'>-</div><div class='del'>-* RubyVM::Env</div><div class='del'>-</div><div class='del'>-  * RubyVM::Env was removed.</div><div class='del'>-</div><div class='del'>-* String</div><div class='del'>-</div><div class='del'>-  * String#casecmp? [Feature #12786]</div><div class='del'>-</div><div class='del'>-  * String#concat, String#prepend [Feature #12333]</div><div class='del'>-    Now takes multiple arguments.</div><div class='del'>-</div><div class='del'>-  * String#each_line, String#lines now takes an optional keyword argument,</div><div class='del'>-    chomp flag.  [Feature #12553]</div><div class='del'>-</div><div class='del'>-  * String#match? [Feature #12898]</div><div class='del'>-</div><div class='del'>-  * String#unpack1 [Feature #12752]</div><div class='del'>-</div><div class='del'>-  * String#upcase, String#downcase, String#capitalize, String#swapcase and</div><div class='del'>-    their bang variants work for all of Unicode, and are no longer limited</div><div class='del'>-    to ASCII. Supported encodings are UTF-8, UTF-16BE/LE, UTF-32BE/LE, and</div><div class='del'>-    ISO-8859-1~16. Variations are available with options. See the documentation</div><div class='del'>-    of String#downcase for details. [Feature #10085]</div><div class='del'>-</div><div class='del'>-  * String.new(capacity: size) [Feature #12024]</div><div class='del'>-</div><div class='del'>-* StringIO</div><div class='del'>-</div><div class='del'>-  * StringIO#gets, StringIO#readline, StringIO#each_line, StringIO#readlines now takes</div><div class='del'>-    an optional keyword argument, chomp flag.  [Feature #12553]</div><div class='del'>-</div><div class='del'>-* Symbol</div><div class='del'>-</div><div class='del'>-  * Symbol#casecmp? [Feature #12786]</div><div class='del'>-</div><div class='del'>-  * Symbol#match now returns MatchData.  [Bug #11991]</div><div class='del'>-</div><div class='del'>-  * Symbol#match? [Feature #12898]</div><div class='del'>-</div><div class='del'>-  * Symbol#upcase, Symbol#downcase, Symbol#capitalize, and Symbol#swapcase now</div><div class='del'>-    work for all of Unicode. See the documentation of String#downcase</div><div class='del'>-    for details. [Feature #10085]</div><div class='del'>-</div><div class='del'>-* Thread</div><div class='del'>-</div><div class='del'>-  * Thread#report_on_exception and Thread.report_on_exception</div><div class='del'>-    [Feature #6647]</div><div class='del'>-</div><div class='del'>-* TracePoint</div><div class='del'>-</div><div class='del'>-  * TracePoint#callee_id [Feature #12747]</div><div class='del'>-</div><div class='del'>-* Warning</div><div class='del'>-</div><div class='del'>-  * New module named Warning is introduced.  By default it has only</div><div class='del'>-    one singleton method, named warn.  This makes it possible for</div><div class='del'>-    3rd-party libraries to control the way warnings are handled.</div><div class='del'>-    [Feature #12299]</div><div class='del'>-</div><div class='del'>-=== Stdlib updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* CGI</div><div class='del'>-</div><div class='del'>-  * Don't allow , as a separator [Bug #12791]</div><div class='del'>-</div><div class='del'>-* CSV</div><div class='del'>-</div><div class='del'>-  * Add a liberal_parsing option. [Feature #11839]</div><div class='del'>-</div><div class='del'>-* IPAddr</div><div class='del'>-</div><div class='del'>-  * IPAddr#== and IPAddr#&lt;=&gt; no longer raise an exception if coercion fails.</div><div class='del'>-    [Bug #12799]</div><div class='del'>-</div><div class='del'>-* IRB</div><div class='del'>-</div><div class='del'>-  * Binding#irb: Start a REPL session like `binding.pry` at r56624.</div><div class='del'>-</div><div class='del'>-* Logger</div><div class='del'>-</div><div class='del'>-  * Allow specifying logger parameters in constructor such</div><div class='del'>-    as level, progname, datetime_format, formatter. [Feature #12224]</div><div class='del'>-  * Add shift_period_suffix option. [Feature #10772]</div><div class='del'>-</div><div class='del'>-* Net::HTTP</div><div class='del'>-</div><div class='del'>-  * New method: Net::HTTP.post [Feature #12375]</div><div class='del'>-</div><div class='del'>-* Net::FTP</div><div class='del'>-</div><div class='del'>-  * Support TLS (RFC 4217).</div><div class='del'>-  * Support hash style options for Net::FTP.new.</div><div class='del'>-  * Add a new optional argument pathname to Net::FTP#status.</div><div class='del'>-    Contributed by soleboxy. [GH-1478] [Feature #12965]</div><div class='del'>-</div><div class='del'>-* OpenSSL</div><div class='del'>-</div><div class='del'>-  * Includes Ruby/OpenSSL 2.0. OpenSSL has been extracted as a Gem and is</div><div class='del'>-    maintained at a separate repository now: https://github.com/ruby/openssl.</div><div class='del'>-    It still remains as a 'default gem'.  [Feature #9612]</div><div class='del'>-    Refer to ext/openssl/History.md for the full release note.</div><div class='del'>-</div><div class='del'>-* optparse</div><div class='del'>-</div><div class='del'>-  * Add an into option. [Feature #11191]</div><div class='del'>-</div><div class='del'>-* pathname</div><div class='del'>-</div><div class='del'>-  * New method: Pathname#empty? [Feature #12596]</div><div class='del'>-</div><div class='del'>-* Readline</div><div class='del'>-</div><div class='del'>-  * Readline.quoting_detection_proc and Readline.quoting_detection_proc=</div><div class='del'>-    [Feature #12659]</div><div class='del'>-</div><div class='del'>-* REXML</div><div class='del'>-</div><div class='del'>-  * REXML::Element#[]: If String or Symbol is specified, attribute</div><div class='del'>-    value is returned. Otherwise, Nth child is returned. This is</div><div class='del'>-    backward compatible change.</div><div class='del'>-</div><div class='del'>-* set</div><div class='del'>-</div><div class='del'>-  * New methods: Set#compare_by_identity and Set#compare_by_identity?.</div><div class='del'>-    [Feature #12210]</div><div class='del'>-</div><div class='del'>-* WEBrick</div><div class='del'>-</div><div class='del'>-  * Don't allow , as a separator [Bug #12791]</div><div class='del'>-</div><div class='del'>-=== Compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* Array#sum and Enumerable#sum are implemented.  [Feature #12217]</div><div class='del'>-  Ruby itself has no compatibility problem because Ruby didn't have sum method</div><div class='del'>-  for arrays before Ruby 2.4.</div><div class='del'>-  However many third party gems, activesupport, facets, simple_stats, etc,</div><div class='del'>-  defines sum method.  These implementations are mostly compatible but</div><div class='del'>-  there are subtle differences.</div><div class='del'>-  Ruby's sum method should be mostly compatible but it is impossible to</div><div class='del'>-  be perfectly compatible with all of them.</div><div class='del'>-</div><div class='del'>-* Fixnum and Bignum are unified into Integer  [Feature #12005]</div><div class='del'>-  Fixnum class and Bignum class is removed.</div><div class='del'>-  Integer class is changed from abstract class to concrete class.</div><div class='del'>-  For example, 0 is an instance of Integer: 0.class returns Integer.</div><div class='del'>-  The constants Fixnum and Bignum is bound to Integer.</div><div class='del'>-  So obj.kind_of?(Fixnum) works as obj.kind_of?(Integer).</div><div class='del'>-  At C-level, Fixnum object and Bignum object should be distinguished by</div><div class='del'>-  FIXNUM_P(obj) and RB_TYPE_P(obj, T_BIGNUM).</div><div class='del'>-  RUBY_INTEGER_UNIFICATION can be used to detect this feature at C-level.</div><div class='del'>-  0.class == Integer can be used to detect this feature at Ruby-level.</div><div class='del'>-  The C-level constants, rb_cFixnum and rb_cBignum, are removed.</div><div class='del'>-  They can cause compilation failure.</div><div class='del'>-</div><div class='del'>-* String/Symbol#upcase/downcase/swapcase/capitalize(!) now work for all of</div><div class='del'>-  Unicode, not only for ASCII. [Feature #10085]</div><div class='del'>-  No change is needed if the data is in ASCII anyway or if the limitation</div><div class='del'>-  to ASCII was only tolerated while waiting for a more extensive implementation.</div><div class='del'>-  A change (using the :ascii option) is needed in cases where Unicode data</div><div class='del'>-  is processed, but the operation has to be limited to ASCII only.</div><div class='del'>-  A good example of this are internationalized domain names.</div><div class='del'>-</div><div class='del'>-* TRUE / FALSE / NIL</div><div class='del'>-  These constants are now obsoleted. [Feature #12574]</div><div class='del'>-  Use true / false / nil resp. instead.</div><div class='del'>-</div><div class='del'>-=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* DateTime</div><div class='del'>-</div><div class='del'>-  * DateTime#to_time now preserves timezone.  [Bug #12189]</div><div class='del'>-</div><div class='del'>-* Psych</div><div class='del'>-</div><div class='del'>-  * Update to Psych 2.2.2</div><div class='del'>-</div><div class='del'>-* RDoc</div><div class='del'>-</div><div class='del'>-  * Update to RDoc 5.0.0</div><div class='del'>-</div><div class='del'>-* RubyGems</div><div class='del'>-</div><div class='del'>-  * Update to RubyGems 2.6.8</div><div class='del'>-</div><div class='del'>-* shellwords</div><div class='del'>-</div><div class='del'>-  * Shellwords.shellwords (shellsplit) treats the backslash as escape</div><div class='del'>-    character only when followed by one of the following characters:</div><div class='del'>-    $ ` " \ &lt;newline&gt;</div><div class='del'>-    [Bug #10055]</div><div class='del'>-</div><div class='del'>-* Time</div><div class='del'>-</div><div class='del'>-  * Time#to_time now preserves timezone.  [Bug #12271]</div><div class='del'>-</div><div class='del'>-* thread</div><div class='del'>-</div><div class='del'>-  * the extension library is removed.  Till 2.0 it was a pure ruby script</div><div class='del'>-    "thread.rb", which has precedence over "thread.so", and has been provided</div><div class='del'>-    in $LOADED_FEATURES since 2.1.</div><div class='del'>-</div><div class='del'>-* Tk</div><div class='del'>-</div><div class='del'>-  * Tk is removed from stdlib.  [Feature #8539]</div><div class='del'>-    https://github.com/ruby/tk is the new upstream.</div><div class='del'>-</div><div class='del'>-* XMLRPC</div><div class='del'>-</div><div class='del'>-  * XMLRPC is removed from stdlib, and bundled as gem. [Feature #12160][ruby-core:74239]</div><div class='del'>-    https://github.com/ruby/xmlrpc is the new upstream.</div><div class='del'>-</div><div class='del'>-* Zlib</div><div class='del'>-</div><div class='del'>-  * Zlib.gzip and Zlib.gunzip [Feature #13020]</div><div class='del'>-</div><div class='del'>-=== C API updates</div><div class='del'>-</div><div class='del'>-* ruby_show_version() will no longer exits the process, if</div><div class='del'>-  RUBY_SHOW_COPYRIGHT_TO_DIE is set to 0.  This will be the default in</div><div class='del'>-  the future.</div><div class='del'>-</div><div class='del'>-* rb_gc_adjust_memory_usage() [Feature #12690]</div><div class='del'>-</div><div class='del'>-=== Supported platform changes</div><div class='del'>-</div><div class='del'>-* FreeBSD &lt; 4 is no longer supported</div><div class='del'>-</div><div class='del'>-=== Implementation improvements</div><div class='del'>-</div><div class='del'>-* In some condition, `[x, y].max` and `[x, y].min` are optimized</div><div class='del'>-  so that a temporal array is not created.  The concrete condition is</div><div class='del'>-  an implementation detail: currently, the array literal must have no</div><div class='del'>-  splat, must have at least one expression but literal, the length must</div><div class='del'>-  be &lt;= 0x100, and Array#max and min must not be redefined.  It will work</div><div class='del'>-  in most casual and real-life use case where it is written with intent</div><div class='del'>-  to `Math.max(x, y)`.</div><div class='del'>-</div><div class='del'>-* Thread deadlock detection now shows their backtrace and dependency. [Feature #8214]</div><div class='del'>-</div><div class='del'>-* st_table (st.c) internal data structure is improved. [Feature #12142]</div><div class='del'>-</div><div class='del'>-* Rational is extensively optimized. [Feature #12484]</div><div class='del'>-</div><div class='del'>-=== Miscellaneous changes</div><div class='del'>-</div><div class='del'>-* ChangeLog is removed from the repository.</div><div class='del'>-  It is generated from commit messages in Subversion by `make dist`.</div><div class='del'>-  Also note that now people should follow Git style commit message.</div><div class='del'>-  The template is written at</div><div class='del'>-  [Short (50 chars or less) summary of changes](https://git-scm.com/book/ch5-2.html).</div><div class='del'>-  [Feature #12283]</div><div class='head'>diff --git a/doc/NEWS-2.5.0 b/doc/NEWS-2.5.0<br/>deleted file mode 100644<br/>index e7613d5caa..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/NEWS-2.5.0?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-2.5.0</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,567 +0,0 @@</div><div class='del'>-# -*- rdoc -*-</div><div class='del'>-</div><div class='del'>-= NEWS for Ruby 2.5.0</div><div class='del'>-</div><div class='del'>-This document is a list of user visible feature changes made between</div><div class='del'>-releases except for bug fixes.</div><div class='del'>-</div><div class='del'>-Note that each entry is kept so brief that no reason behind or</div><div class='del'>-reference information is supplied with.  For a full list of changes</div><div class='del'>-with all sufficient information, see the ChangeLog file or Redmine</div><div class='del'>-(e.g. &lt;tt&gt;https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER&lt;/tt&gt;)</div><div class='del'>-</div><div class='del'>-== Changes since the 2.4.0 release</div><div class='del'>-</div><div class='del'>-=== Language changes</div><div class='del'>-</div><div class='del'>-* Top-level constant look-up is removed.  [Feature #11547]</div><div class='del'>-</div><div class='del'>-* rescue/else/ensure are allowed inside do/end blocks.  [Feature #12906]</div><div class='del'>-</div><div class='del'>-* refinements take place in string interpolations.  [Feature #13812]</div><div class='del'>-</div><div class='del'>-=== Core classes updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* Array</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * Array#append  [Feature #12746]</div><div class='del'>-    * Array#prepend  [Feature #12746]</div><div class='del'>-</div><div class='del'>-* Data</div><div class='del'>-</div><div class='del'>-  * Is deprecated. It was a base class for C extensions, and it's not</div><div class='del'>-    necessary to expose in Ruby level. [Feature #3072]</div><div class='del'>-</div><div class='del'>-* Exception</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * Exception#full_message to retrieve a String expression of an exception,</div><div class='del'>-      formatted in the same way in which Ruby prints out an uncaught</div><div class='del'>-      exception.  [Feature #14141] [experimental]</div><div class='del'>-</div><div class='del'>-* Dir</div><div class='del'>-</div><div class='del'>-  * Dir.glob provides new optional keyword argument, +:base+ .  [Feature #13056]</div><div class='del'>-  * Dir.chdir (without block arg), Dir.open, Dir.new, Dir.mkdir, Dir.rmdir,</div><div class='del'>-    Dir.empty? releases GVL</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * Dir.children  [Feature #11302]</div><div class='del'>-    * Dir.each_child  [Feature #11302]</div><div class='del'>-</div><div class='del'>-* Enumerable</div><div class='del'>-</div><div class='del'>-  * Enumerable#any?, Enumerable#all?, Enumerable#none? and Enumerable#one?</div><div class='del'>-    accept a pattern argument. [Feature #11286]</div><div class='del'>-</div><div class='del'>-* File</div><div class='del'>-</div><div class='del'>-  * File.open accepts +:newline+ option to imply text mode. [Bug #13350]</div><div class='del'>-  * File#path raises an IOError for files opened with</div><div class='del'>-    File::Constants::TMPFILE option. [Feature #13568]</div><div class='del'>-  * File.stat, File.exist? and other &lt;code&gt;rb_stat()&lt;/code&gt;-using methods</div><div class='del'>-    release GVL. [Bug #13941]</div><div class='del'>-  * File.rename releases GVL. [Feature #13951]</div><div class='del'>-  * File::Stat#atime, File::Stat#mtime and File::Stat#ctime support fractional</div><div class='del'>-    second timestamps on Windows 8 and later.  [Feature #13726]</div><div class='del'>-  * File::Stat#ino and File.indentical? support ReFS 128bit ino on Windows 8.1</div><div class='del'>-    and later.  [Feature #13731]</div><div class='del'>-  * File.readable?, File.readable_real?, File.writable?, File.writable_real?,</div><div class='del'>-    File.executable?, File.executable_real?, File.mkfifo, File.readlink,</div><div class='del'>-    File.truncate, File#truncate, File.chmod, File.lchmod, File.chown,</div><div class='del'>-    File.lchown, File.unlink, File.utime, File.lstat release GVL</div><div class='del'>-</div><div class='del'>-  * New method:</div><div class='del'>-</div><div class='del'>-    * File.lutime  [Feature #4052]</div><div class='del'>-</div><div class='del'>-* Hash</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * Hash#transform_keys  [Feature #13583]</div><div class='del'>-    * Hash#transform_keys!  [Feature #13583]</div><div class='del'>-    * Hash#slice  [Feature #8499]</div><div class='del'>-</div><div class='del'>-* IO</div><div class='del'>-</div><div class='del'>-  * IO.copy_stream tries copy offload with copy_file_range(2) [Feature #13867]</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * IO#pread  [Feature #4532]</div><div class='del'>-    * IO#pwrite  [Feature #4532]</div><div class='del'>-    * IO#write accepts multiple arguments  [Feature #9323]</div><div class='del'>-</div><div class='del'>-* IOError</div><div class='del'>-</div><div class='del'>-  * IO#close might raise an error with message "stream closed",</div><div class='del'>-    but it is refined to "stream closed in another thread". The new message</div><div class='del'>-    is more clear for user. [Bug #13405]</div><div class='del'>-</div><div class='del'>-* Integer</div><div class='del'>-</div><div class='del'>-  * Integer#round, Integer#floor, Integer#ceil and Integer#truncate always</div><div class='del'>-    return an Integer. [Bug #13420]</div><div class='del'>-  * Integer#pow accepts modulo argument for calculating modular</div><div class='del'>-    exponentiation.  [Feature #12508] [Feature #11003]</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * Integer#allbits?, Integer#anybits?, Integer#nobits? [Feature #12753]</div><div class='del'>-    * Integer.sqrt  [Feature #13219]</div><div class='del'>-</div><div class='del'>-* Kernel</div><div class='del'>-</div><div class='del'>-  * Kernel#yield_self   [Feature #6721]</div><div class='del'>-  * Kernel#pp  [Feature #14123]</div><div class='del'>-  * Kernel#warn(..., uplevel:n)  [Feature #12882]</div><div class='del'>-</div><div class='del'>-* Method</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * Method#=== that invokes Method#call, as same as Proc#=== [Feature #14142]</div><div class='del'>-</div><div class='del'>-* Module</div><div class='del'>-</div><div class='del'>-  * Module#attr, Module#attr_accessor, Module#attr_reader and Module#attr_writer</div><div class='del'>-    become public. [Feature #14132]</div><div class='del'>-  * Module#define_method, Module#alias_method, Module#undef_method and</div><div class='del'>-    Module#remove_method become public. [Feature #14133]</div><div class='del'>-</div><div class='del'>-* Numeric</div><div class='del'>-</div><div class='del'>-  * Numeric#step no longer hides errors from coerce method when</div><div class='del'>-    given a step value which cannot be compared with #&gt; to 0. [Feature #7688]</div><div class='del'>-  * Numerical comparison operators (&lt;,&lt;=,&gt;=,&gt;) no longer hide exceptions</div><div class='del'>-    from #coerce method internally. Return nil in #coerce if the coercion is</div><div class='del'>-    impossible.  [Feature #7688]</div><div class='del'>-</div><div class='del'>-* Process</div><div class='del'>-</div><div class='del'>-  * Precision of Process.times is improved if getrusage(2) exists. [Feature #11952]</div><div class='del'>-</div><div class='del'>-  * New method:</div><div class='del'>-</div><div class='del'>-    * Process.last_status as an alias of $? [Feature #14043]</div><div class='del'>-</div><div class='del'>-* Range</div><div class='del'>-  * Range#initialize no longer hides exceptions when comparing begin and</div><div class='del'>-    end with #&lt;=&gt; and raise a "bad value for range" ArgumentError</div><div class='del'>-    but instead lets the exception from the #&lt;=&gt; call go through. [Feature #7688]</div><div class='del'>-</div><div class='del'>-* Regexp</div><div class='del'>-</div><div class='del'>-  * Update to Onigmo 6.1.3-669ac9997619954c298da971fcfacccf36909d05.</div><div class='del'>-</div><div class='del'>-    * Support absence operator https://github.com/k-takata/Onigmo/issues/82</div><div class='del'>-</div><div class='del'>-  * Support new 5 emoji-related Unicode character properties</div><div class='del'>-</div><div class='del'>-* RubyVM::InstructionSequence</div><div class='del'>-</div><div class='del'>-  * New method:</div><div class='del'>-</div><div class='del'>-    * RubyVM::InstructionSequence#each_child</div><div class='del'>-    * RubyVM::InstructionSequence#trace_points</div><div class='del'>-</div><div class='del'>-* String</div><div class='del'>-</div><div class='del'>-  * &lt;code&gt;String#-@&lt;/code&gt; deduplicates unfrozen strings.  Already-frozen</div><div class='del'>-    strings remain unchanged for compatibility.  [Feature #13077]</div><div class='del'>-  * &lt;code&gt;-"literal"&lt;/code&gt; (&lt;code&gt;String#-@&lt;/code&gt;) optimized to return the same object</div><div class='del'>-    (same as &lt;code&gt;"literal".freeze&lt;/code&gt; in Ruby 2.1+) [Feature #13295]</div><div class='del'>-  * String#casecmp and String#casecmp? return nil for non-string arguments</div><div class='del'>-    instead of raising a TypeError. [Bug #13312]</div><div class='del'>-  * String#start_with? accepts a regexp [Feature #13712]</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * String#delete_prefix, String#delete_prefix! [Feature #12694]</div><div class='del'>-    * String#delete_suffix, String#delete_suffix! [Feature #13665]</div><div class='del'>-    * String#each_grapheme_cluster and String#grapheme_clusters to</div><div class='del'>-      enumerate grapheme clusters [Feature #13780]</div><div class='del'>-    * String#undump to unescape String#dump'ed string [Feature #12275]</div><div class='del'>-</div><div class='del'>-* Struct</div><div class='del'>-</div><div class='del'>-  * Struct.new takes `keyword_init: true` option to initialize members</div><div class='del'>-    with keyword arguments. [Feature #11925]</div><div class='del'>-</div><div class='del'>-* Regexp/String: Update Unicode version from 9.0.0 to 10.0.0 [Feature #13685]</div><div class='del'>-</div><div class='del'>-* Thread</div><div class='del'>-</div><div class='del'>-  * Description set by Thread#name= is now visible on Windows 10.</div><div class='del'>-</div><div class='del'>-  * New method:</div><div class='del'>-    * Thread#fetch  [Feature #13009]</div><div class='del'>-</div><div class='del'>-  * The default of Thread.report_on_exception is now true,</div><div class='del'>-    showing unhandled exceptions terminating threads on $stderr. [Feature #14143]</div><div class='del'>-</div><div class='del'>-* Time</div><div class='del'>-</div><div class='del'>-  * Time.at receives 3rd argument which specifies the unit of 2nd argument. [Feature #13919]</div><div class='del'>-</div><div class='del'>-* KeyError</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * KeyError#receiver [Feature #12063]</div><div class='del'>-    * KeyError#key      [Feature #12063]</div><div class='del'>-</div><div class='del'>-* FrozenError</div><div class='del'>-</div><div class='del'>-  * New exception class. [Feature #13224]</div><div class='del'>-</div><div class='del'>-=== Stdlib updates (outstanding ones only)</div><div class='del'>-</div><div class='del'>-* BigDecimal</div><div class='del'>-</div><div class='del'>-  * Update to BigDecimal 1.3.4</div><div class='del'>-</div><div class='del'>-  * The following features are added:</div><div class='del'>-</div><div class='del'>-    * BigDecimal::VERSION</div><div class='del'>-</div><div class='del'>-  * The following features have been deprecated,</div><div class='del'>-    and are planned to be removed in the version 1.4.0:</div><div class='del'>-</div><div class='del'>-    * BigDecimal.new</div><div class='del'>-</div><div class='del'>-    * BigDecimal.ver</div><div class='del'>-</div><div class='del'>-  * BigDecimal#clone and #dup now do not make a new instance,</div><div class='del'>-    but returns the receiver itself.</div><div class='del'>-</div><div class='del'>-* Coverage</div><div class='del'>-</div><div class='del'>-  * Support branch coverage and method coverage measurement. [Feature #13901]</div><div class='del'>-    Branch coverage tells you which branches are executed, and which not.</div><div class='del'>-    Method coverage tells you which methods are invoked, and which not.</div><div class='del'>-    By running a test suite with this new feature, you can know which branches</div><div class='del'>-    and methods are executed by a test, and evaluate total coverage of a test</div><div class='del'>-    suite more strictly.</div><div class='del'>-</div><div class='del'>-    You can specify the measuring target by an option to `Coverage.start`:</div><div class='del'>-</div><div class='del'>-        Coverage.start(lines: true, branches: true, methods: true)</div><div class='del'>-</div><div class='del'>-    After some Ruby files are loaded, you can use `Coverage.result` to get</div><div class='del'>-    the coverage result:</div><div class='del'>-</div><div class='del'>-        Coverage.result</div><div class='del'>-        #=&gt; { "/path/to/file.rb"=&gt;</div><div class='del'>-        #     { :lines =&gt; [1, 2, 0, nil, ...],</div><div class='del'>-        #       :branches =&gt;</div><div class='del'>-        #         { [:if, 0, 2, 1, 6, 4] =&gt;</div><div class='del'>-        #             { [:then, 1, 3, 2, 3, 8] =&gt; 0,</div><div class='del'>-        #               [:else, 2, 5, 2, 5, 8] =&gt; 2</div><div class='del'>-        #             }</div><div class='del'>-        #         },</div><div class='del'>-        #       :methods =&gt; {</div><div class='del'>-        #          [Object, :foo, 1, 0, 7, 3] =&gt; 2</div><div class='del'>-        #       }</div><div class='del'>-        #     }</div><div class='del'>-        #   }</div><div class='del'>-</div><div class='del'>-    The result type of line coverage is not changed; it is just an array that</div><div class='del'>-    contains numbers, which means the count that each line was executed,</div><div class='del'>-    or `nil`s, which means that the line is not relevant.</div><div class='del'>-</div><div class='del'>-    The result type of branch coverage is:</div><div class='del'>-</div><div class='del'>-        { (jump base) =&gt; { (jump target) =&gt; (counter) } }</div><div class='del'>-</div><div class='del'>-    where jump base and targets have the format</div><div class='del'>-</div><div class='del'>-        [type, unique-id, start lineno, start column, end lineno, end column]</div><div class='del'>-</div><div class='del'>-    For example, `[:if, 0, 2, 1, 6, 4]` reads an `if` statement that ranges from</div><div class='del'>-    line 2 and column 1, to line 6 and column 4.  `[:then, 1, 3, 2, 3, 8]` reads</div><div class='del'>-    a `then` clause that ranges from line 3 and column 2, to line 3 and column 8.</div><div class='del'>-    Note that lineno starts from 1, and that columnno starts from 0.  So, the</div><div class='del'>-    above example shows a branch from the `if` to the `then` was never executed,</div><div class='del'>-    and a branch from the `if` to the `else` was executed twice.</div><div class='del'>-</div><div class='del'>-    The result type of method coverage is:</div><div class='del'>-</div><div class='del'>-        { (method key) =&gt; (counter) }</div><div class='del'>-</div><div class='del'>-    where method key has the format</div><div class='del'>-</div><div class='del'>-        [class, method-name, start lineno, start column, end lineno, end column]</div><div class='del'>-</div><div class='del'>-    For example, `[Object, :foo, 1, 0, 7, 3]` reads `Object#foo` that ranges from</div><div class='del'>-    line 1 and column 0, to line 7 and column 3.  The above example shows this</div><div class='del'>-    `Object#foo` was invoked twice.</div><div class='del'>-</div><div class='del'>-    Note: To keep compatibility, passing no option to `Coverage.start` will measure</div><div class='del'>-    only line coverage, and `Coverage.result` will return the old format:</div><div class='del'>-</div><div class='del'>-        Coverage.result</div><div class='del'>-        #=&gt; { "/path/to/file.rb"=&gt; [1, 2, 0, nil, ...] }</div><div class='del'>-</div><div class='del'>-* DRb</div><div class='del'>-</div><div class='del'>-  * ACL::ACLEntry.new no longer suppresses IPAddr::InvalidPrefixError.</div><div class='del'>-</div><div class='del'>-* ERB</div><div class='del'>-</div><div class='del'>-  * Add ERB#result_with_hash to render a template with local variables passed</div><div class='del'>-    with a Hash object. [Feature #8631]</div><div class='del'>-</div><div class='del'>-  * Default template file encoding is changed from ASCII-8BIT to UTF-8 in erb</div><div class='del'>-    command. [Bug #14095]</div><div class='del'>-</div><div class='del'>-  * Carriage returns are changed to be trimmed properly if trim_mode is specified</div><div class='del'>-    and used. Duplicated newlines will be removed on Windows. [Bug #5339] [Bug #11464]</div><div class='del'>-</div><div class='del'>-* IPAddr</div><div class='del'>-</div><div class='del'>-  * IPAddr no longer accepts invalid address mask. [Bug #13399]</div><div class='del'>-  * IPAddr#ipv4_compat and IPAddr#ipv4_compat? are marked for deprecation. [Bug #13769]</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * IPAddr#prefix</div><div class='del'>-    * IPAddr#loopback?</div><div class='del'>-    * IPAddr#private? [Feature #11666]</div><div class='del'>-    * IPAddr#link_local? [Feature #10912]</div><div class='del'>-</div><div class='del'>-* IRB</div><div class='del'>-</div><div class='del'>-  * Print backtrace and error message in reverse order [Feature #8661] [experimental]</div><div class='del'>-  * `binding.irb` automatically requires irb and runs [Bug #13099] [experimental]</div><div class='del'>-  * `binding.irb` on its start shows source around the line where it was called [Feature #14124]</div><div class='del'>-</div><div class='del'>-* Matrix</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * Matrix.combine and Matrix#combine [Feature #10903]</div><div class='del'>-    * Matrix#hadamard_product and Matrix#entrywise_product</div><div class='del'>-</div><div class='del'>-* Net::HTTP</div><div class='del'>-</div><div class='del'>-  * Net::HTTP.new supports no_proxy parameter [Feature #11195]</div><div class='del'>-  * Net::HTTP#min_version and Net::HTTP#max_version [Feature #9450]</div><div class='del'>-  * Add more HTTP status classes</div><div class='del'>-  * Net::HTTP::STATUS_CODES is added as HTTP Status Code Repository [Misc #12935]</div><div class='del'>-  * Net::HTTP#proxy_user and Net::HTTP#proxy_pass reflect http_proxy environment</div><div class='del'>-    variable if the system's environment variable is multiuser safe. [Bug #12921]</div><div class='del'>-</div><div class='del'>-* open-uri</div><div class='del'>-  * URI.open method defined as an alias to open-uri's Kernel.open.</div><div class='del'>-    open-uri's Kernel.open will be deprecated in future.</div><div class='del'>-</div><div class='del'>-* OpenSSL</div><div class='del'>-</div><div class='del'>-  * Updated Ruby/OpenSSL from version 2.0 to 2.1. Changes are noted in</div><div class='del'>-    "Version 2.1.0" section in ext/openssl/History.md.</div><div class='del'>-</div><div class='del'>-* Pathname</div><div class='del'>-</div><div class='del'>-  * New method:</div><div class='del'>-</div><div class='del'>-    * Pathname#glob [Feature #7360]</div><div class='del'>-</div><div class='del'>-* Psych</div><div class='del'>-</div><div class='del'>-  * Update to Psych 3.0.2.</div><div class='del'>-</div><div class='del'>-    * Convert fallback option to a keyword argument</div><div class='del'>-      https://github.com/ruby/psych/pull/342</div><div class='del'>-    * Add :symbolize_names option to Psych.load, Psych.safe_load like JSON.parse</div><div class='del'>-      https://github.com/ruby/psych/pull/333, https://github.com/ruby/psych/pull/337</div><div class='del'>-    * Add Psych::Handler#event_location</div><div class='del'>-      https://github.com/ruby/psych/pull/326</div><div class='del'>-    * Make frozen string literal = true</div><div class='del'>-      https://github.com/ruby/psych/pull/320</div><div class='del'>-    * Preserve time zone offset when deserializing times</div><div class='del'>-      https://github.com/ruby/psych/pull/316</div><div class='del'>-    * Remove deprecated method aliases for syck gem</div><div class='del'>-      https://github.com/ruby/psych/pull/312</div><div class='del'>-</div><div class='del'>-* RbConfig</div><div class='del'>-</div><div class='del'>-  * RbConfig::LIMITS is added to provide the limits of C types.</div><div class='del'>-    This is available when rbconfig/sizeof is loaded.</div><div class='del'>-</div><div class='del'>-* Ripper</div><div class='del'>-</div><div class='del'>-  * Ripper::EXPR_BEG and so on for Ripper#state.</div><div class='del'>-</div><div class='del'>-  * New method:</div><div class='del'>-</div><div class='del'>-    * Ripper#state to tell the state of scanner. [Feature #13686]</div><div class='del'>-</div><div class='del'>-* RDoc</div><div class='del'>-</div><div class='del'>-  * Update to RDoc 6.0.1.</div><div class='del'>-</div><div class='del'>-    * Replace IRB based lexer with Ripper.</div><div class='del'>-      * https://github.com/ruby/rdoc/pull/512</div><div class='del'>-      * This much improves the speed of generating documents.</div><div class='del'>-      * It also facilitates supporting new syntax in the future.</div><div class='del'>-    * Support many new syntaxes of Ruby from the past few years.</div><div class='del'>-    * Use "frozen_string_literal: true".</div><div class='del'>-      Performance survey: https://gist.github.com/aycabta/abdfaa75ea8a6877eeb734e942e73800</div><div class='del'>-    * Support did_you_mean.</div><div class='del'>-</div><div class='del'>-* Rubygems</div><div class='del'>-</div><div class='del'>-  * Update to Rubygems 2.7.3.</div><div class='del'>-    * http://blog.rubygems.org/2017/11/28/2.7.3-released.html</div><div class='del'>-    * http://blog.rubygems.org/2017/11/08/2.7.2-released.html</div><div class='del'>-    * http://blog.rubygems.org/2017/11/03/2.7.1-released.html</div><div class='del'>-    * http://blog.rubygems.org/2017/11/01/2.7.0-released.html</div><div class='del'>-    * http://blog.rubygems.org/2017/10/09/2.6.14-released.html</div><div class='del'>-    * http://blog.rubygems.org/2017/08/27/2.6.13-released.html</div><div class='del'>-</div><div class='del'>-* SecureRandom</div><div class='del'>-</div><div class='del'>-  * New method:</div><div class='del'>-</div><div class='del'>-    * SecureRandom.alphanumeric</div><div class='del'>-</div><div class='del'>-* Set</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * Set#to_s as alias to #inspect [Feature #13676]</div><div class='del'>-    * Set#=== as alias to #include? [Feature #13801]</div><div class='del'>-    * Set#reset [Feature #6589]</div><div class='del'>-</div><div class='del'>-* StringIO</div><div class='del'>-</div><div class='del'>-  * StringIO#write accepts multiple arguments</div><div class='del'>-</div><div class='del'>-* StringScanner</div><div class='del'>-</div><div class='del'>-  * New methods:</div><div class='del'>-</div><div class='del'>-    * StringScanner#size, StringScanner#captures, StringScanner#values_at  [Feature #836]</div><div class='del'>-</div><div class='del'>-* URI</div><div class='del'>-</div><div class='del'>-  * Relative path operations no longer collapse consecutive slashes to a single slash. [Bug #8352]</div><div class='del'>-</div><div class='del'>-* WEBrick</div><div class='del'>-</div><div class='del'>-  * Add Server Name Indication (SNI) support [Feature #13729]</div><div class='del'>-  * support Proc objects as body responses [Feature #855]</div><div class='del'>-  * released as a RubyGem [Feature #13173]</div><div class='del'>-  * avoid unintended behavior from Kernel#open [Misc #14216]</div><div class='del'>-</div><div class='del'>-* Zlib</div><div class='del'>-</div><div class='del'>-  * Zlib::GzipWriter#write accepts multiple arguments</div><div class='del'>-</div><div class='del'>-=== Compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* Socket</div><div class='del'>-</div><div class='del'>-  * BasicSocket#read_nonblock and BasicSocket#write_nonblock no</div><div class='del'>-    longer set the O_NONBLOCK file description flag as side effect</div><div class='del'>-    (on Linux only) [Feature #13362]</div><div class='del'>-</div><div class='del'>-* Random</div><div class='del'>-</div><div class='del'>-  * Random.raw_seed renamed to become Random.urandom.  It is now</div><div class='del'>-    applicable to non-seeding purposes due to [Bug #9569].</div><div class='del'>-</div><div class='del'>-* Socket</div><div class='del'>-</div><div class='del'>-  * Socket::Ifaddr#vhid is added [Feature #13803]</div><div class='del'>-</div><div class='del'>-* ConditionVariable, Queue and SizedQueue reimplemented for speed.</div><div class='del'>-  They no longer subclass Struct. [Feature #13552]</div><div class='del'>-</div><div class='del'>-=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='del'>-</div><div class='del'>-* Gemification</div><div class='del'>-</div><div class='del'>-  * Promote following standard libraries to default gems.</div><div class='del'>-    * cmath</div><div class='del'>-    * csv</div><div class='del'>-    * date</div><div class='del'>-    * dbm</div><div class='del'>-    * etc</div><div class='del'>-    * fcntl</div><div class='del'>-    * fiddle</div><div class='del'>-    * fileutils</div><div class='del'>-    * gdbm</div><div class='del'>-    * ipaddr</div><div class='del'>-    * scanf</div><div class='del'>-    * sdbm</div><div class='del'>-    * stringio</div><div class='del'>-    * strscan</div><div class='del'>-    * webrick</div><div class='del'>-    * zlib</div><div class='del'>-</div><div class='del'>-* Logger</div><div class='del'>-</div><div class='del'>-  * Logger.new("| command") had been working to open a command</div><div class='del'>-    unintentionally. It was prohibited, and now Logger#initialize</div><div class='del'>-    treats a String argument only as a filename, as its specification. [Bug #14212]</div><div class='del'>-</div><div class='del'>-* Net::HTTP</div><div class='del'>-</div><div class='del'>-  * Net::HTTP#start now passes :ENV to p_addr by default. [Bug #13351]</div><div class='del'>-    To avoid this, pass nil explicitly.</div><div class='del'>-</div><div class='del'>-* mathn.rb</div><div class='del'>-</div><div class='del'>-  * Removed from stdlib. [Feature #10169]</div><div class='del'>-</div><div class='del'>-* Rubygems</div><div class='del'>-</div><div class='del'>-  * Removed "ubygems.rb" file from stdlib. It's needless since Ruby 1.9.</div><div class='del'>-</div><div class='del'>-=== C API updates</div><div class='del'>-</div><div class='del'>-=== Supported platform changes</div><div class='del'>-</div><div class='del'>-* Drop support of NaCl platform</div><div class='del'>-</div><div class='del'>-  * https://bugs.chromium.org/p/chromium/issues/detail?id=239656#c160</div><div class='del'>-</div><div class='del'>-=== Implementation improvements</div><div class='del'>-</div><div class='del'>-* (This might not be a "user visible feature change" but) Hash class's</div><div class='del'>-  hash function is now SipHash13. [Feature #13017]</div><div class='del'>-</div><div class='del'>-* SecureRandom now prefers OS-provided sources than OpenSSL. [Bug #9569]</div><div class='del'>-</div><div class='del'>-* Mutex rewritten to be smaller and faster [Feature #13517]</div><div class='del'>-</div><div class='del'>-* Performance of block passing using block parameters is improved by</div><div class='del'>-  lazy Proc allocation [Feature #14045]</div><div class='del'>-</div><div class='del'>-* Dynamic instrumentation for TracePoint hooks instead of using "trace"</div><div class='del'>-  instruction to avoid overhead [Feature #14104]</div><div class='del'>-</div><div class='del'>-* ERB now generates code from a template twice as fast as Ruby 2.4</div><div class='del'>-</div><div class='del'>-=== Miscellaneous changes</div><div class='del'>-</div><div class='del'>-* Print backtrace and error message in reverse order if $stderr is unchanged</div><div class='del'>-  and a tty. [Feature #8661] [experimental]</div><div class='del'>-</div><div class='del'>-* Print error message in bold/underlined text if $stderr is unchanged and a</div><div class='del'>-  tty. [Feature #14140] [experimental]</div><div class='del'>-</div><div class='del'>-* configure option --with-ext now mandates its arguments.  So for</div><div class='del'>-  instance if you run ./configure --with-ext=openssl,+ then the</div><div class='del'>-  openssl library is guaranteed compiled, otherwise the build fails</div><div class='del'>-  abnormally.</div><div class='del'>-</div><div class='del'>-  Note however to always add the ",+" at the end of the argument.</div><div class='del'>-  Otherwise nothing but openssl are built.  [Feature #13302]</div><div class='head'>diff --git a/doc/NEWS-1.8.7 b/doc/NEWS/NEWS-1.8.7<br/>index 5da39ff265..5da39ff265 100644<br/>--- a/<a href='/ruby.git/tree/doc/NEWS-1.8.7?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-1.8.7</a><br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-1.8.7?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-1.8.7</a></div><div class='head'>diff --git a/doc/NEWS-1.9.1 b/doc/NEWS/NEWS-1.9.1<br/>index fb11026d60..fb11026d60 100644<br/>--- a/<a href='/ruby.git/tree/doc/NEWS-1.9.1?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-1.9.1</a><br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-1.9.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-1.9.1</a></div><div class='head'>diff --git a/doc/NEWS/NEWS-1.9.2 b/doc/NEWS/NEWS-1.9.2<br/>new file mode 100644<br/>index 0000000000..430c6cc4f5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-1.9.2?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-1.9.2</a></div><div class='hunk'>@@ -0,0 +1,509 @@</div><div class='add'>+# -*- rdoc -*-</div><div class='add'>+= NEWS for Ruby 1.9.2</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or</div><div class='add'>+reference information is supplied with.  For a full list of changes</div><div class='add'>+with all sufficient information, see the ChangeLog file.</div><div class='add'>+</div><div class='add'>+== Changes since the 1.9.1 release</div><div class='add'>+=== Library updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* builtin classes</div><div class='add'>+</div><div class='add'>+  * Array</div><div class='add'>+    * new methods:</div><div class='add'>+      * Array#keep_if</div><div class='add'>+      * Array#repeated_combination</div><div class='add'>+      * Array#repeated_permutation</div><div class='add'>+      * Array#rotate</div><div class='add'>+      * Array#rotate!</div><div class='add'>+      * Array#select!</div><div class='add'>+      * Array#sort_by!</div><div class='add'>+</div><div class='add'>+    * extended method:</div><div class='add'>+      * Array#{uniq,uniq!,product} can take a block.</div><div class='add'>+</div><div class='add'>+  * Complex</div><div class='add'>+    * new method:</div><div class='add'>+      * Complex#rationalize</div><div class='add'>+</div><div class='add'>+  * Dir</div><div class='add'>+    * new method:</div><div class='add'>+      * Dir.home</div><div class='add'>+</div><div class='add'>+  * Encoding</div><div class='add'>+    * new encodings:</div><div class='add'>+      * Big5</div><div class='add'>+      * Big5-UAO</div><div class='add'>+      * ISO-2022-JP-KDDI</div><div class='add'>+      * SJIS-DoCoMo</div><div class='add'>+      * SJIS-KDDI</div><div class='add'>+      * SJIS-SoftBank</div><div class='add'>+      * UTF8-DoCoMo</div><div class='add'>+      * UTF8-KDDI</div><div class='add'>+      * UTF8-SoftBank</div><div class='add'>+</div><div class='add'>+    * new method:</div><div class='add'>+      * ascii_compatible?</div><div class='add'>+</div><div class='add'>+  * Enumerable</div><div class='add'>+    * new methods:</div><div class='add'>+      * Enumerable#chunk</div><div class='add'>+      * Enumerable#collect_concat</div><div class='add'>+      * Enumerable#each_entry</div><div class='add'>+      * Enumerable#flat_map</div><div class='add'>+      * Enumerable#slice_before</div><div class='add'>+</div><div class='add'>+  * Enumerator</div><div class='add'>+    * new methods:</div><div class='add'>+      * Enumerator#peek</div><div class='add'>+      * Enumerator#next_values</div><div class='add'>+      * Enumerator#peek_values</div><div class='add'>+      * Enumerator#feed</div><div class='add'>+      * StopIteration#result</div><div class='add'>+</div><div class='add'>+    * extended method:</div><div class='add'>+      * #with_index accepts an optional argument that specifies the</div><div class='add'>+        index number to start with, defaulted to 0.</div><div class='add'>+</div><div class='add'>+    * incompatible changes:</div><div class='add'>+      * #rewind now calls the "rewind" method of the enclosed object</div><div class='add'>+        if defined.</div><div class='add'>+      * #next doesn't clear the position at end.</div><div class='add'>+</div><div class='add'>+  * ENV</div><div class='add'>+    * Uses locale's encoding</div><div class='add'>+    * ENV.[]= raises Errno::{EINVAL,ENOMEM} etc. on failure.</div><div class='add'>+    * new methods:</div><div class='add'>+      * ENV.keep_if</div><div class='add'>+      * ENV.select!</div><div class='add'>+</div><div class='add'>+  * Float</div><div class='add'>+    * new constants:</div><div class='add'>+      * Float::INFINITY</div><div class='add'>+      * Float::NAN</div><div class='add'>+    * new method:</div><div class='add'>+      * Float#rationalize</div><div class='add'>+</div><div class='add'>+  * File</div><div class='add'>+    * new methods:</div><div class='add'>+      * File.realpath</div><div class='add'>+      * File.realdirpath</div><div class='add'>+</div><div class='add'>+  * GC::Profiler</div><div class='add'>+    * new method:</div><div class='add'>+      * GC::Profiler.total_time</div><div class='add'>+</div><div class='add'>+  * Hash</div><div class='add'>+    * new methods:</div><div class='add'>+      * Hash#keep_if</div><div class='add'>+      * Hash#select!</div><div class='add'>+</div><div class='add'>+  * IO</div><div class='add'>+    * new methods:</div><div class='add'>+      * IO#autoclose=</div><div class='add'>+      * IO#autoclose?</div><div class='add'>+      * IO#fdatasync</div><div class='add'>+      * IO#codepoints</div><div class='add'>+      * IO#each_codepoint</div><div class='add'>+</div><div class='add'>+    * extended method:</div><div class='add'>+      * IO.pipe can take a block.</div><div class='add'>+</div><div class='add'>+    * new modules:</div><div class='add'>+      * IO::WaitReadable</div><div class='add'>+      * IO::WaitWritable</div><div class='add'>+        They are used to extend non-blocking exceptions.</div><div class='add'>+</div><div class='add'>+  * Integer</div><div class='add'>+    * new method:</div><div class='add'>+      * Integer#rationalize</div><div class='add'>+</div><div class='add'>+  * Kernel</div><div class='add'>+    * new methods:</div><div class='add'>+      * Kernel#respond_to_missing?</div><div class='add'>+      * Kernel#singleton_class</div><div class='add'>+      * Kernel#require_relative</div><div class='add'>+</div><div class='add'>+    * extended method:</div><div class='add'>+      * Kernel#respond_to? can be used to detect methods not implemented.</div><div class='add'>+        For example, Process.respond_to?(:fork) returns false on Windows.</div><div class='add'>+</div><div class='add'>+    * incompatible changes:</div><div class='add'>+      * Kernel#instance_eval yields the receiver.</div><div class='add'>+</div><div class='add'>+      * Kernel#exec</div><div class='add'>+      * Kernel#spawn</div><div class='add'>+      * Kernel#system</div><div class='add'>+      * Kernel#` (`...`)</div><div class='add'>+        ..etc.</div><div class='add'>+</div><div class='add'>+        On Windows, the current directory is no longer implicitly</div><div class='add'>+        prepended to the default command search path, just like other</div><div class='add'>+        platforms.</div><div class='add'>+</div><div class='add'>+  * MatchData</div><div class='add'>+    * new method:</div><div class='add'>+      * MatchData#==</div><div class='add'>+</div><div class='add'>+  * Method</div><div class='add'>+    * new method:</div><div class='add'>+      * Method#parameters</div><div class='add'>+</div><div class='add'>+  * NilClass</div><div class='add'>+    * new method:</div><div class='add'>+      * NilClass#rationalize</div><div class='add'>+</div><div class='add'>+  * Object</div><div class='add'>+    * extended methods:</div><div class='add'>+      * Float() supports hexadecimal floating point format.</div><div class='add'>+      * printf() supports %a/%A format.</div><div class='add'>+</div><div class='add'>+  * Proc</div><div class='add'>+    * new method:</div><div class='add'>+      * Proc#parameters</div><div class='add'>+    * extended method:</div><div class='add'>+      * Proc#source_location returns location even if receiver is a method</div><div class='add'>+        defined by attr_reader / attr_writer / attr_accessor.</div><div class='add'>+</div><div class='add'>+  * Process</div><div class='add'>+    * extended method:</div><div class='add'>+      * Process.spawn accepts [:child, FD] for a redirect target.</div><div class='add'>+</div><div class='add'>+  * Random (new class to generate pseudo-random numbers)</div><div class='add'>+</div><div class='add'>+  * Rational</div><div class='add'>+    * new method:</div><div class='add'>+      * Rational#rationalize</div><div class='add'>+</div><div class='add'>+  * String</div><div class='add'>+    * extended methods:</div><div class='add'>+      * string[regexp, name] is supported for named capture.</div><div class='add'>+</div><div class='add'>+  * Thread</div><div class='add'>+    * new methods:</div><div class='add'>+      * Thread#add_trace_func</div><div class='add'>+      * Thread#set_trace_func</div><div class='add'>+</div><div class='add'>+  * Time</div><div class='add'>+    * extended features:</div><div class='add'>+      * time_t restriction is removed to represent before 1901 and after 2038.</div><div class='add'>+        Proleptic Gregorian calendar is used for old dates.</div><div class='add'>+      * Time.new have optional arguments to specify date with time offset.</div><div class='add'>+      * Time#getlocal, Time#localtime have optional time offset argument.</div><div class='add'>+</div><div class='add'>+    * new methods:</div><div class='add'>+      * Time#to_r</div><div class='add'>+      * Time#subsec</div><div class='add'>+      * Time#round</div><div class='add'>+</div><div class='add'>+    * incompatible change:</div><div class='add'>+      * The year argument of Time.{utc,gm,local,mktime} is now interpreted as</div><div class='add'>+        the value itself.  For example, Time.utc(99) means the year 99 AD,</div><div class='add'>+        not 1999 AD.</div><div class='add'>+</div><div class='add'>+  * UnboundMethod</div><div class='add'>+    * new method:</div><div class='add'>+      * UnboundMethod#parameters</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+* digest</div><div class='add'>+  * new methods:</div><div class='add'>+    * Digest::Class.base64digest</div><div class='add'>+    * Digest::Instance#base64digest</div><div class='add'>+    * Digest::Instance#base64digest!</div><div class='add'>+</div><div class='add'>+  * Digest::HMAC (digest/hmac) has been marked as deprecated because</div><div class='add'>+    it was unintentional for the experimental library to be included</div><div class='add'>+    in the final release of 1.9.1.  Please use OpenSSL::HMAC instead.</div><div class='add'>+</div><div class='add'>+* rss</div><div class='add'>+</div><div class='add'>+  * 0.2.4 -&gt; 0.2.7.</div><div class='add'>+</div><div class='add'>+  * RSS::Maker.make</div><div class='add'>+    * raise an exception not returns nil for invalid feed making.</div><div class='add'>+    * requires block.</div><div class='add'>+</div><div class='add'>+  * RSS::Maker.[]</div><div class='add'>+    * new method to return maker class.</div><div class='add'>+</div><div class='add'>+  * RSS::Maker.supported?(version)</div><div class='add'>+    * new method to check whether given version is supported.</div><div class='add'>+</div><div class='add'>+  * RSS::Maker: item.guid.permanent_link?</div><div class='add'>+    * new alias of item.guid.isPermaLink</div><div class='add'>+  * RSS::Maker: item.guid.permanent_link=</div><div class='add'>+    * new alias of item.guid.isPermaLink=</div><div class='add'>+</div><div class='add'>+* DL</div><div class='add'>+  * Now uses libffi as a backend if available.</div><div class='add'>+    It means DL works fine on more platforms.</div><div class='add'>+</div><div class='add'>+* Fiddle</div><div class='add'>+  * A lightweight wrapper for libffi.</div><div class='add'>+</div><div class='add'>+* YAML</div><div class='add'>+  * Now uses libyaml as a backend if available.</div><div class='add'>+    It means YAML library supports new standards for YAML.</div><div class='add'>+</div><div class='add'>+* Psych</div><div class='add'>+  * A wrapper for libyaml.</div><div class='add'>+</div><div class='add'>+* JSON</div><div class='add'>+  * Update to JSON 1.1.9</div><div class='add'>+</div><div class='add'>+* REXML</div><div class='add'>+</div><div class='add'>+  * REXML::Document.entity_expansion_limit=</div><div class='add'>+</div><div class='add'>+    New method to set the entity expansion limit. By default the limit is</div><div class='add'>+    set to 10000.  See the following URL for details.</div><div class='add'>+</div><div class='add'>+    https://www.ruby-lang.org/en/news/2008/08/23/dos-vulnerability-in-rexml/</div><div class='add'>+</div><div class='add'>+* RDoc</div><div class='add'>+</div><div class='add'>+  * Updated to RDoc 2.5.8</div><div class='add'>+</div><div class='add'>+* RubyGems</div><div class='add'>+</div><div class='add'>+  * Updated to RubyGems 1.3.7</div><div class='add'>+</div><div class='add'>+* logger</div><div class='add'>+</div><div class='add'>+  * imported upstream version (logger/1.2.7)</div><div class='add'>+    * do not raise an exception even if log writing failed.</div><div class='add'>+    * do not raise ShiftingError if an aged file already exists.</div><div class='add'>+      (no ShiftingError will be raised from 1.2.7, just warn() instead)</div><div class='add'>+</div><div class='add'>+* matrix</div><div class='add'>+  * API change to adhere strictly to mathematical definitions:</div><div class='add'>+    * Matrices must now be rectangular.</div><div class='add'>+    * trace, regular?, singular? are defined only for square matrices</div><div class='add'>+    * support for empty matrices</div><div class='add'>+    * all integer matrices now have the right determinant (also an integer)</div><div class='add'>+</div><div class='add'>+  * Matrix and Vector include Enumerable.</div><div class='add'>+</div><div class='add'>+  * new methods:</div><div class='add'>+    * Matrix.build</div><div class='add'>+    * Matrix.empty</div><div class='add'>+    * Matrix#conj</div><div class='add'>+    * Matrix#conjugate</div><div class='add'>+    * Matrix#each</div><div class='add'>+    * Matrix#each_with_index</div><div class='add'>+    * Matrix#empty?</div><div class='add'>+    * Matrix#imag</div><div class='add'>+    * Matrix#imaginary</div><div class='add'>+    * Matrix#real</div><div class='add'>+    * Matrix#real?</div><div class='add'>+    * Matrix#rect</div><div class='add'>+    * Matrix#rectangular</div><div class='add'>+</div><div class='add'>+* net/http</div><div class='add'>+  * merged net/https.</div><div class='add'>+</div><div class='add'>+* open3</div><div class='add'>+  * new methods:</div><div class='add'>+    * Open3.popen2</div><div class='add'>+    * Open3.popen2e</div><div class='add'>+    * Open3.capture3</div><div class='add'>+    * Open3.capture2</div><div class='add'>+    * Open3.capture2e</div><div class='add'>+    * Open3.pipeline_rw</div><div class='add'>+    * Open3.pipeline_r</div><div class='add'>+    * Open3.pipeline_w</div><div class='add'>+    * Open3.pipeline_start</div><div class='add'>+    * Open3.pipeline</div><div class='add'>+</div><div class='add'>+* pty</div><div class='add'>+  * new methods:</div><div class='add'>+    * PTY.open</div><div class='add'>+    * PTY.check</div><div class='add'>+  * deprecated methods:</div><div class='add'>+    * protect_signal</div><div class='add'>+    * reset_signal</div><div class='add'>+</div><div class='add'>+* openssl</div><div class='add'>+  * new methods:</div><div class='add'>+    * OpenSSL::Buffering#read_nonblock</div><div class='add'>+    * OpenSSL::Buffering#write_nonblock</div><div class='add'>+    * OpenSSL::SSL::SSLSocket#connect_nonblock</div><div class='add'>+    * OpenSSL::SSL::SSLSocket#accept_nonblock</div><div class='add'>+</div><div class='add'>+* scanf</div><div class='add'>+  * support %a/%A format.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+* socket</div><div class='add'>+</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Socket#{recvfrom,recvfrom_nonblock,accept,accept_nonblock,sysaccept}</div><div class='add'>+      returns a sender address as Addrinfo object instead of a binary sockaddr string.</div><div class='add'>+      Addrinfo#to_s returns the old binary sockaddr string.</div><div class='add'>+    * BasicSocket#getsockopt returns Socket::Option object instead of a binary string.</div><div class='add'>+      Socket::Option#to_s returns the old binary string.</div><div class='add'>+    * Socket.do_not_reverse_lookup is turned on by default now.</div><div class='add'>+</div><div class='add'>+  * new class:</div><div class='add'>+    * Addrinfo</div><div class='add'>+    * Socket::Option</div><div class='add'>+    * Socket::AncillaryData</div><div class='add'>+</div><div class='add'>+  * new methods:</div><div class='add'>+    * Socket.ip_address_list</div><div class='add'>+    * Socket.tcp</div><div class='add'>+    * Socket.tcp_server_loop</div><div class='add'>+    * Socket.tcp_server_sockets</div><div class='add'>+    * Socket.udp_server_sockets</div><div class='add'>+    * Socket.udp_server_loop_on</div><div class='add'>+    * Socket.udp_server_loop</div><div class='add'>+    * Socket.unix</div><div class='add'>+    * Socket.unix_server_loop</div><div class='add'>+    * Socket.unix_server_socket</div><div class='add'>+    * Socket.accept_loop</div><div class='add'>+    * Socket#ipv6only!</div><div class='add'>+    * BasicSocket#local_address</div><div class='add'>+    * BasicSocket#remote_address</div><div class='add'>+    * BasicSocket#connect_address</div><div class='add'>+    * BasicSocket#sendmsg</div><div class='add'>+    * BasicSocket#sendmsg_nonblock</div><div class='add'>+    * BasicSocket#recvmsg</div><div class='add'>+    * BasicSocket#recvmsg_nonblock</div><div class='add'>+    * BasicSocket#getpeereid</div><div class='add'>+</div><div class='add'>+  * extended methods:</div><div class='add'>+    * Socket.new's 3rd argument is optional now.</div><div class='add'>+    * Socket.pair's 3rd argument is optional now.</div><div class='add'>+    * Socket.pair and UNIXSocket.pair can take a block.</div><div class='add'>+    * BasicSocket#send, UDPSocket#send, Socket.getnameinfo, Socket#bind, and</div><div class='add'>+      Socket#{connect,connect_nonblock} accepts an Addrinfo object as sockaddr.</div><div class='add'>+    * BasicSocket#getsockopt accepts a Socket::Option object.</div><div class='add'>+    * Socket.getaddrinfo and IPSocket#{addr,peeraddr} accept an optional</div><div class='add'>+      argument to turn reverse lookup on/off.</div><div class='add'>+</div><div class='add'>+    * constant names can be accepted as well as constant values.</div><div class='add'>+      i.e. Socket.new(:PF_INET, :SOCK_STREAM, 0)</div><div class='add'>+      The constant names can be specified without the prefix.</div><div class='add'>+      i.e. Socket.new(:INET, :STREAM, 0)</div><div class='add'>+      * protocol/address family</div><div class='add'>+      * socket type</div><div class='add'>+      * socket option protocol level</div><div class='add'>+      * socket option name</div><div class='add'>+      * shutdown's argument</div><div class='add'>+</div><div class='add'>+* stringio</div><div class='add'>+  * new methods:</div><div class='add'>+    * StringIO#read_nonblock</div><div class='add'>+    * StringIO#write_nonblock</div><div class='add'>+* pathname</div><div class='add'>+  * new methods:</div><div class='add'>+    * Pathname#binread</div><div class='add'>+    * Pathname#realdirpath</div><div class='add'>+    * Pathname#each_child</div><div class='add'>+</div><div class='add'>+  * extended methods:</div><div class='add'>+    * Pathname#realpath and Pathname#realdirpath takes optional basedir</div><div class='add'>+      argument.</div><div class='add'>+</div><div class='add'>+* Readline</div><div class='add'>+  * new methods:</div><div class='add'>+    * Readline.set_screen_size</div><div class='add'>+    * Readline.get_screen_size</div><div class='add'>+</div><div class='add'>+  * extended methods:</div><div class='add'>+    * Readline.completion_proc= accepts nil.</div><div class='add'>+      nil means to use default completion proc.</div><div class='add'>+</div><div class='add'>+* set</div><div class='add'>+  * new methods:</div><div class='add'>+    * Set#keep_if</div><div class='add'>+    * Set#select!</div><div class='add'>+</div><div class='add'>+* time</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Time.parse raises ArgumentError when no date information.</div><div class='add'>+</div><div class='add'>+* thread</div><div class='add'>+  * extended method:</div><div class='add'>+    * ConditionVariable#wait takes timeout argument.</div><div class='add'>+</div><div class='add'>+* securerandom</div><div class='add'>+  * new methods:</div><div class='add'>+    * SecureRandom.urlsafe_base64</div><div class='add'>+</div><div class='add'>+* URI</div><div class='add'>+  * new methods:</div><div class='add'>+    * URI.encode_www_form</div><div class='add'>+    * URI.decode_www_form</div><div class='add'>+    * URI.encode_www_form_component</div><div class='add'>+    * URI.decode_www_form_component</div><div class='add'>+  * Obsoleted methods:</div><div class='add'>+    * URI.decode</div><div class='add'>+    * URI.encode</div><div class='add'>+    * URI.escape</div><div class='add'>+    * URI.unescape</div><div class='add'>+</div><div class='add'>+* etc</div><div class='add'>+  * new methods:</div><div class='add'>+    * Etc::Passwd.each</div><div class='add'>+    * Etc::Group.each</div><div class='add'>+</div><div class='add'>+* zlib</div><div class='add'>+  * new methods:</div><div class='add'>+    * Zlib::GzipFile#path</div><div class='add'>+    * Zlib.#adler32_combine</div><div class='add'>+    * Zlib.#crc32_combine</div><div class='add'>+</div><div class='add'>+* rbconfig</div><div class='add'>+  * new methods:</div><div class='add'>+    * RbConfig.ruby</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+* Regexp properties (\p{}) names now ignore underscores, spaces, and case, so</div><div class='add'>+  \p{ol chiki} is the same as \p{Ol_Chiki}</div><div class='add'>+* Regexps now support Unicode 5.2 (new characters and scripts)</div><div class='add'>+* \d, \s, and \w are now ASCII only; use POSIX bracket classes and \p{} for</div><div class='add'>+  Unicode semantics</div><div class='add'>+* $: no longer includes the current directory, use require_relative</div><div class='add'>+* Symbol with an invalid encoding is forbidden to exist.</div><div class='add'>+</div><div class='add'>+=== Compilation options</div><div class='add'>+</div><div class='add'>+* --program-prefix and --program-suffix no longer act on the shared object</div><div class='add'>+  names nor paths to libraries.</div><div class='add'>+</div><div class='add'>+  use --with-rubylibprefix='${libruby}/${RUBY_INSTALL_NAME}' and</div><div class='add'>+  --with-soname='${RUBY_INSTALL_NAME}' for the same result as Ruby 1.9.1.</div><div class='add'>+</div><div class='add'>+* --with-arch is added for universal binary, instead of</div><div class='add'>+  --enable-fat-binary option.</div><div class='add'>+</div><div class='add'>+=== Compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+  * Enumerator#rewind</div><div class='add'>+  * Socket#recvfrom</div><div class='add'>+  * Socket#recvfrom_nonblock</div><div class='add'>+  * Socket#accept</div><div class='add'>+  * Socket#accept_nonblock</div><div class='add'>+  * Socket#sysaccept</div><div class='add'>+  * BasicSocket#getsockopt</div><div class='add'>+  * Time.utc</div><div class='add'>+  * Time.gm</div><div class='add'>+  * Time.local</div><div class='add'>+  * Time.mktime</div><div class='add'>+  * Time.parse</div><div class='add'>+  * --program-prefix and --program-suffix</div><div class='add'>+  * --enable-fat-binary</div><div class='add'>+  * $:</div><div class='add'>+</div><div class='add'>+    See above.</div><div class='add'>+</div><div class='add'>+  * Digest::HMAC</div><div class='add'>+</div><div class='add'>+    Deprecated.  See above.</div><div class='head'>diff --git a/doc/NEWS-1.9.3 b/doc/NEWS/NEWS-1.9.3<br/>index 484660f420..484660f420 100644<br/>--- a/<a href='/ruby.git/tree/doc/NEWS-1.9.3?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/NEWS-1.9.3</a><br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-1.9.3?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-1.9.3</a></div><div class='head'>diff --git a/doc/NEWS/NEWS-2.0.0 b/doc/NEWS/NEWS-2.0.0<br/>new file mode 100644<br/>index 0000000000..e070b19976<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-2.0.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-2.0.0</a></div><div class='hunk'>@@ -0,0 +1,529 @@</div><div class='add'>+# -*- rdoc -*-</div><div class='add'>+</div><div class='add'>+= NEWS for Ruby 2.0.0</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or</div><div class='add'>+reference information is supplied with.  For a full list of changes</div><div class='add'>+with all sufficient information, see the ChangeLog file.</div><div class='add'>+</div><div class='add'>+== Changes since the 1.9.3 release</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+* Added keyword arguments.</div><div class='add'>+</div><div class='add'>+* Added %i and %I for symbol list creation (similar to %w and %W).</div><div class='add'>+</div><div class='add'>+* Default source encoding is changed to UTF-8. (was US-ASCII)</div><div class='add'>+</div><div class='add'>+* No warning for unused variables starting with '_'</div><div class='add'>+</div><div class='add'>+=== Core classes updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* ARGF</div><div class='add'>+  * added method:</div><div class='add'>+    * added ARGF#codepoints and ARGF#each_codepoint, like the corresponding</div><div class='add'>+      methods for IO.</div><div class='add'>+</div><div class='add'>+* Array</div><div class='add'>+  * added method:</div><div class='add'>+    * added Array#bsearch for binary search.</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * random parameter of Array#shuffle! and Array#sample now</div><div class='add'>+      will be called with one argument, maximum value.</div><div class='add'>+    * when given Range arguments, Array#values_at now returns nil for each</div><div class='add'>+      value that is out-of-range.</div><div class='add'>+</div><div class='add'>+* Enumerable</div><div class='add'>+  * added method:</div><div class='add'>+    * added Enumerable#lazy method for lazy enumeration.</div><div class='add'>+</div><div class='add'>+* Enumerator</div><div class='add'>+  * added method:</div><div class='add'>+    * added Enumerator#size for lazy size evaluation.</div><div class='add'>+  * extended method:</div><div class='add'>+    * Enumerator.new accept an argument for lazy size evaluation.</div><div class='add'>+  * new class Enumerator::Lazy for lazy enumeration</div><div class='add'>+</div><div class='add'>+* ENV</div><div class='add'>+  * aliased method:</div><div class='add'>+    * ENV.to_h is a new alias for ENV.to_hash</div><div class='add'>+</div><div class='add'>+* Fiber</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Fiber#resume cannot resume a fiber which invokes "Fiber#transfer".</div><div class='add'>+</div><div class='add'>+* File</div><div class='add'>+  * extended method:</div><div class='add'>+    * File.fnmatch? now expands braces in the pattern if</div><div class='add'>+      File::FNM_EXTGLOB option is given.</div><div class='add'>+</div><div class='add'>+* GC</div><div class='add'>+  * improvements:</div><div class='add'>+    * introduced the bitmap marking which suppresses to copy a memory page</div><div class='add'>+      with Copy-on-Write.</div><div class='add'>+    * introduced the non-recursive marking which avoids unexpected stack overflow.</div><div class='add'>+</div><div class='add'>+* GC::Profiler</div><div class='add'>+  * added method:</div><div class='add'>+    * added GC::Profiler.raw_data which returns raw profile data for GC.</div><div class='add'>+</div><div class='add'>+* Hash</div><div class='add'>+  * added method:</div><div class='add'>+    * added Hash#to_h as explicit conversion method, like Array#to_a.</div><div class='add'>+  * extended method:</div><div class='add'>+    * Hash#default_proc= can be passed nil to clear the default proc.</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+  * deprecated methods:</div><div class='add'>+    * IO#lines, #bytes, #chars and #codepoints are deprecated.</div><div class='add'>+</div><div class='add'>+* Kernel</div><div class='add'>+  * added method:</div><div class='add'>+    * added Kernel#Hash conversion method like Array() or Float().</div><div class='add'>+    * added Kernel#__dir__ which returns the absolute path of the</div><div class='add'>+      directory of the file from which this method is called.</div><div class='add'>+    * added Kernel#caller_locations which returns an array of</div><div class='add'>+      frame information objects.</div><div class='add'>+  * extended method:</div><div class='add'>+    * Kernel#warn accepts multiple args in like puts.</div><div class='add'>+    * Kernel#caller accepts second optional argument `n' which specify</div><div class='add'>+      required caller size.</div><div class='add'>+    * Kernel#to_enum and enum_for accept a block for lazy size evaluation.</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * system() and exec() close non-standard file descriptors</div><div class='add'>+      (The default of :close_others option is changed to true by default.)</div><div class='add'>+    * respond_to? against a protected method now returns false unless</div><div class='add'>+      the second argument is true.</div><div class='add'>+    * __callee__ has returned to the original behavior, and now</div><div class='add'>+      returns the called name but not the original name in an</div><div class='add'>+      aliased method.</div><div class='add'>+    * Kernel#inspect does not call #to_s anymore</div><div class='add'>+      (it used to call redefined #to_s).</div><div class='add'>+</div><div class='add'>+* LoadError</div><div class='add'>+  * added method:</div><div class='add'>+    * added LoadError#path method to return the file name that could not be</div><div class='add'>+      loaded.</div><div class='add'>+</div><div class='add'>+* Module</div><div class='add'>+  * added method:</div><div class='add'>+    * added Module#prepend which is similar to Module#include,</div><div class='add'>+      however a method in the prepended module overrides the</div><div class='add'>+      corresponding method in the prepending module.</div><div class='add'>+    * added Module.prepended and Module.prepend_features, similar</div><div class='add'>+      to included and append_features.</div><div class='add'>+    * added Module#refine, which extends a class or module locally. [experimental]</div><div class='add'>+  * extended method:</div><div class='add'>+    * Module#define_method accepts a UnboundMethod from a Module.</div><div class='add'>+    * Module#const_get accepts a qualified constant string, e.g.</div><div class='add'>+      Object.const_get("Foo::Bar::Baz")</div><div class='add'>+</div><div class='add'>+* Mutex</div><div class='add'>+  * added method:</div><div class='add'>+    * added Mutex#owned? which returns the mutex is held by current</div><div class='add'>+      thread or not. [experimental]</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Mutex#lock, Mutex#unlock, Mutex#try_lock, Mutex#synchronize</div><div class='add'>+      and Mutex#sleep are no longer allowed to be used from trap handler</div><div class='add'>+      and raise a ThreadError in such case.</div><div class='add'>+    * Mutex#sleep may spurious wakeup. Check after wakeup.</div><div class='add'>+</div><div class='add'>+* NilClass</div><div class='add'>+  * added method:</div><div class='add'>+    * added nil.to_h which returns {}</div><div class='add'>+</div><div class='add'>+* ObjectSpace::WeakMap</div><div class='add'>+  * new low level class to hold weak references to objects.</div><div class='add'>+</div><div class='add'>+* Proc</div><div class='add'>+  * incompatible change:</div><div class='add'>+    * removed Proc#== and #eql? so two procs are == only when they are</div><div class='add'>+      the same object.</div><div class='add'>+</div><div class='add'>+* Process</div><div class='add'>+  * added method:</div><div class='add'>+    * added getsid for getting session id (unix only).</div><div class='add'>+</div><div class='add'>+* Range</div><div class='add'>+  * added method:</div><div class='add'>+    * added Range#size for lazy size evaluation.</div><div class='add'>+    * added Range#bsearch for binary search.</div><div class='add'>+</div><div class='add'>+* RubyVM (MRI specific)</div><div class='add'>+  * added RubyVM::InstructionSequence.of to get the instruction sequence</div><div class='add'>+    from a method or a block.</div><div class='add'>+  * added RubyVM::InstructionSequence#path, #absolute_path, #label,</div><div class='add'>+    #base_label and #first_lineno to retrieve information from where</div><div class='add'>+    the instruction sequence was defined.</div><div class='add'>+  * added Environment variables to specify stack usage:</div><div class='add'>+    * RUBY_THREAD_VM_STACK_SIZE: vm stack size used at thread creation.</div><div class='add'>+      default: 128KB (32bit CPU) or 256KB (64bit CPU).</div><div class='add'>+    * RUBY_THREAD_MACHINE_STACK_SIZE: machine stack size used at thread</div><div class='add'>+      creation. default: 512KB or 1024KB.</div><div class='add'>+    * RUBY_FIBER_VM_STACK_SIZE: vm stack size used at fiber creation.</div><div class='add'>+      default: 64KB or 128KB.</div><div class='add'>+    * RUBY_FIBER_MACHINE_STACK_SIZE: machine stack size used at fiber</div><div class='add'>+      creation. default: 256KB or 512KB.</div><div class='add'>+    These variables are checked only at launched time.</div><div class='add'>+  * added constant DEFAULT_PARAMS to get above default parameters.</div><div class='add'>+</div><div class='add'>+* Signal</div><div class='add'>+  * added method:</div><div class='add'>+    * added Signal.signame which returns signal name</div><div class='add'>+</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Signal.trap raises ArgumentError when :SEGV, :BUS, :ILL, :FPE, :VTALRM</div><div class='add'>+      are specified.</div><div class='add'>+</div><div class='add'>+* String</div><div class='add'>+  * added method:</div><div class='add'>+    * added String#b returning a copied string whose encoding is ASCII-8BIT.</div><div class='add'>+  * change return value:</div><div class='add'>+    * String#lines now returns an array instead of an enumerator.</div><div class='add'>+    * String#chars now returns an array instead of an enumerator.</div><div class='add'>+    * String#codepoints now returns an array instead of an enumerator.</div><div class='add'>+    * String#bytes now returns an array instead of an enumerator.</div><div class='add'>+</div><div class='add'>+* Struct</div><div class='add'>+  * added method:</div><div class='add'>+    * added Struct#to_h returning values with keys corresponding to the</div><div class='add'>+      instance variable names.</div><div class='add'>+</div><div class='add'>+* Thread</div><div class='add'>+  * added method:</div><div class='add'>+    * added Thread#thread_variable_get for getting thread local variables</div><div class='add'>+      (these are different than Fiber local variables).</div><div class='add'>+    * added Thread#thread_variable_set for setting thread local variables.</div><div class='add'>+    * added Thread#thread_variables for getting a list of the thread local</div><div class='add'>+      variable keys.</div><div class='add'>+    * added Thread#thread_variable? for testing to see if a particular thread</div><div class='add'>+      variable has been set.</div><div class='add'>+    * added Thread.handle_interrupt as well as instance and singleton methods</div><div class='add'>+      pending_interrupt? for asynchronous handling of exceptions</div><div class='add'>+    * added Thread#backtrace_locations which returns similar information of</div><div class='add'>+      Kernel#caller_locations.</div><div class='add'>+  * new class Thread::Backtrace::Location to hold backtrace location</div><div class='add'>+    information. These are returned by Thread#backtrace_locations and</div><div class='add'>+    Kernel#caller_locations.</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Thread#join and Thread#value now raises a ThreadError if target thread</div><div class='add'>+      is the current or main thread.</div><div class='add'>+</div><div class='add'>+* Time</div><div class='add'>+  * change return value:</div><div class='add'>+    * Time#to_s now returns US-ASCII encoding instead of BINARY.</div><div class='add'>+</div><div class='add'>+* TracePoint</div><div class='add'>+  * new class. This class is replacement of set_trace_func.</div><div class='add'>+    Easy to use and efficient implementation.</div><div class='add'>+</div><div class='add'>+* toplevel</div><div class='add'>+  * added method:</div><div class='add'>+    * added main.define_method which defines a global function.</div><div class='add'>+    * added main.using, which imports refinements into the current file or</div><div class='add'>+      eval string. [experimental]</div><div class='add'>+</div><div class='add'>+=== Core classes compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* Array#values_at</div><div class='add'>+</div><div class='add'>+  See above.</div><div class='add'>+</div><div class='add'>+* String#lines</div><div class='add'>+* String#chars</div><div class='add'>+* String#codepoints</div><div class='add'>+* String#bytes</div><div class='add'>+</div><div class='add'>+  These methods no longer return an Enumerator, although passing a</div><div class='add'>+  block is still supported for backwards compatibility.</div><div class='add'>+</div><div class='add'>+  Code like str.lines.with_index(1) { |line, lineno| ... } no longer</div><div class='add'>+  works because str.lines returns an array.  Replace lines with</div><div class='add'>+  each_line in such cases.</div><div class='add'>+</div><div class='add'>+* IO#lines</div><div class='add'>+* IO#chars</div><div class='add'>+* IO#codepoints</div><div class='add'>+* IO#bytes</div><div class='add'>+* ARGF#lines</div><div class='add'>+* ARGF#chars</div><div class='add'>+* ARGF#bytes</div><div class='add'>+* StringIO#lines</div><div class='add'>+* StringIO#chars</div><div class='add'>+* StringIO#codepoints</div><div class='add'>+* StringIO#bytes</div><div class='add'>+* Zlib::GzipReader#lines</div><div class='add'>+* Zlib::GzipReader#bytes</div><div class='add'>+</div><div class='add'>+  These methods are deprecated in favor of each_line, each_byte,</div><div class='add'>+  each_char and each_codepoint.</div><div class='add'>+</div><div class='add'>+* Proc#==</div><div class='add'>+* Proc#eql?</div><div class='add'>+</div><div class='add'>+  These methods were removed. Two procs are == only when they are</div><div class='add'>+  the same object.</div><div class='add'>+</div><div class='add'>+* Fixnum</div><div class='add'>+* Bignum</div><div class='add'>+* Float</div><div class='add'>+</div><div class='add'>+  Fixnums, Bignums and Floats are frozen.</div><div class='add'>+</div><div class='add'>+* Signal.trap</div><div class='add'>+</div><div class='add'>+  See above.</div><div class='add'>+</div><div class='add'>+* Merge Onigmo.</div><div class='add'>+  https://github.com/k-takata/Onigmo</div><div class='add'>+</div><div class='add'>+* The :close_others option is true by default for system() and exec().</div><div class='add'>+  Also, the close-on-exec flag is set by default for all new file descriptors.</div><div class='add'>+  This means file descriptors doesn't inherit to spawned process unless</div><div class='add'>+  explicitly requested such as system(..., fd=&gt;fd).</div><div class='add'>+</div><div class='add'>+* Kernel#respond_to? against a protected method now returns false</div><div class='add'>+  unless the second argument is true.</div><div class='add'>+</div><div class='add'>+* Kernel#respond_to_missing?</div><div class='add'>+* Kernel#initialize_clone</div><div class='add'>+* Kernel#initialize_dup</div><div class='add'>+</div><div class='add'>+  These methods are now private.</div><div class='add'>+</div><div class='add'>+* Thread#join, Thread#value</div><div class='add'>+</div><div class='add'>+  See above.</div><div class='add'>+</div><div class='add'>+* Mutex#lock, Mutex#unlock, Mutex#try_lock, Mutex#synchronize and Mutex#sleep</div><div class='add'>+</div><div class='add'>+  See above.</div><div class='add'>+</div><div class='add'>+=== Stdlib updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* cgi</div><div class='add'>+  * Add HTML5 tag maker.</div><div class='add'>+  * CGI#header has been renamed to CGI#http_header and</div><div class='add'>+    aliased to CGI#header.</div><div class='add'>+  * When HTML5 tagmaker called, overwrite CGI#header,</div><div class='add'>+    CGI#header function is to create a &lt;header&gt; element.</div><div class='add'>+</div><div class='add'>+* CSV</div><div class='add'>+  * Removed CSV::dump and CSV::load to protect users from dangerous</div><div class='add'>+    serialization vulnerability</div><div class='add'>+</div><div class='add'>+* iconv</div><div class='add'>+  * Iconv has been removed. Use String#encode instead.</div><div class='add'>+</div><div class='add'>+* io/console</div><div class='add'>+  * new methods:</div><div class='add'>+    * added IO#cooked which sets the terminal to cooked mode within the given block.</div><div class='add'>+    * added IO#cooked! which sets the terminal to cooked.</div><div class='add'>+  * extended method:</div><div class='add'>+    * IO#raw, IO#raw!, and IO#getch accept keyword arguments, :min and :time.</div><div class='add'>+</div><div class='add'>+* io/wait</div><div class='add'>+  * new features:</div><div class='add'>+    * added IO#wait_writable method.</div><div class='add'>+    * added IO#wait_readable method as alias of IO#wait.</div><div class='add'>+</div><div class='add'>+* json</div><div class='add'>+  * updated to 1.7.7.</div><div class='add'>+</div><div class='add'>+* net/http</div><div class='add'>+  * new features:</div><div class='add'>+    * Proxies are now automatically detected from the http_proxy environment</div><div class='add'>+      variable.  See Net::HTTP::new for details.</div><div class='add'>+    * gzip and deflate compression are now requested for all requests by</div><div class='add'>+      default.  See Net::HTTP for details.</div><div class='add'>+    * SSL sessions are now reused across connections for a single instance.</div><div class='add'>+      This speeds up connection by using a previously negotiated session.</div><div class='add'>+    * Requests may be created from a URI which sets the request_uri and host</div><div class='add'>+      header of the request (but does not change the host connected to).</div><div class='add'>+    * Responses contain the URI requested which allows easier implementation of</div><div class='add'>+      redirect following.</div><div class='add'>+  * new methods:</div><div class='add'>+    * Net::HTTP#local_host</div><div class='add'>+    * Net::HTTP#local_host=</div><div class='add'>+    * Net::HTTP#local_port</div><div class='add'>+    * Net::HTTP#local_port=</div><div class='add'>+  * extended method:</div><div class='add'>+    * Net::HTTP#connect uses local_host and local_port if specified.</div><div class='add'>+</div><div class='add'>+* net/imap</div><div class='add'>+  * new methods:</div><div class='add'>+    * Net::IMAP.default_port</div><div class='add'>+    * Net::IMAP.default_imap_port</div><div class='add'>+    * Net::IMAP.default_tls_port</div><div class='add'>+    * Net::IMAP.default_ssl_port</div><div class='add'>+    * Net::IMAP.default_imaps_port</div><div class='add'>+</div><div class='add'>+* objspace</div><div class='add'>+  * new method:</div><div class='add'>+    * ObjectSpace.reachable_objects_from(obj)</div><div class='add'>+</div><div class='add'>+* openssl</div><div class='add'>+  * Consistently raise an error when trying to encode nil values. All instances</div><div class='add'>+    of OpenSSL::ASN1::Primitive now raise TypeError when calling to_der on an</div><div class='add'>+    instance whose value is nil. All instances of OpenSSL::ASN1::Constructive</div><div class='add'>+    raise NoMethodError in the same case. Constructing such values is still</div><div class='add'>+    permitted.</div><div class='add'>+  * TLS 1.1 &amp; 1.2 support by setting OpenSSL::SSL::SSLContext#ssl_version to</div><div class='add'>+    :TLSv1_2, :TLSv1_2_server, :TLSv1_2_client or :TLSv1_1, :TLSv1_1_server</div><div class='add'>+    :TLSv1_1_client. The version being effectively used can be queried</div><div class='add'>+    with OpenSSL::SSL#ssl_version. Furthermore, it is also possible to</div><div class='add'>+    blacklist the new TLS versions with OpenSSL::SSL::OP_NO_TLSv1_1 and</div><div class='add'>+    OpenSSL::SSL::OP_NO_TLSv1_2.</div><div class='add'>+  * Added OpenSSL::SSL::SSLContext#renegotiation_cb. A user-defined callback</div><div class='add'>+    may be set which gets called whenever a new handshake is negotiated. This</div><div class='add'>+    also allows to programmatically decline (client) renegotiation attempts.</div><div class='add'>+  * Support for "0/n" splitting of records as BEAST mitigation via</div><div class='add'>+    OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS.</div><div class='add'>+  * The default options for OpenSSL::SSL::SSLContext have changed to</div><div class='add'>+    OpenSSL::SSL::OP_ALL &amp; ~OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS</div><div class='add'>+    instead of OpenSSL::SSL::OP_ALL only. This enables the countermeasure for</div><div class='add'>+    the BEAST attack by default.</div><div class='add'>+  * OpenSSL requires passwords for decrypting PEM-encoded files to be at least</div><div class='add'>+    four characters long. This led to awkward situations where an export with</div><div class='add'>+    a password with fewer than four characters was possible, but accessing the</div><div class='add'>+    file afterwards failed. OpenSSL::PKey::RSA, OpenSSL::PKey::DSA and</div><div class='add'>+    OpenSSL::PKey::EC therefore now enforce the same check when exporting a</div><div class='add'>+    private key to PEM with a password - it has to be at least four characters</div><div class='add'>+    long.</div><div class='add'>+  * SSL/TLS support for the Next Protocol Negotiation extension. Supported</div><div class='add'>+    with OpenSSL 1.0.1 and higher.</div><div class='add'>+  * OpenSSL::OPENSSL_FIPS allows client applications to detect whether OpenSSL</div><div class='add'>+    is FIPS-enabled. OpenSSL.fips_mode= allows turning on and off FIPS mode</div><div class='add'>+    manually in order to adapt to situations where FIPS mode would be an</div><div class='add'>+    explicit requirement.</div><div class='add'>+  * Authenticated Encryption with Associated Data (AEAD) is supported via</div><div class='add'>+    Cipher#auth_data= and Cipher#auth_tag/Cipher#auth_tag=.</div><div class='add'>+    Currently (OpenSSL 1.0.1c), only GCM mode is supported.</div><div class='add'>+</div><div class='add'>+* ostruct</div><div class='add'>+  * new methods:</div><div class='add'>+    * OpenStruct#[], []=</div><div class='add'>+    * OpenStruct#each_pair</div><div class='add'>+    * OpenStruct#eql?</div><div class='add'>+    * OpenStruct#hash</div><div class='add'>+    * OpenStruct#to_h converts the struct to a hash.</div><div class='add'>+  * extended method:</div><div class='add'>+    * OpenStruct.new also accepts an OpenStruct / Struct.</div><div class='add'>+</div><div class='add'>+* pathname</div><div class='add'>+  * extended method:</div><div class='add'>+    * Pathname#find returns an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+* rake</div><div class='add'>+  * rake has been updated to version 0.9.5.</div><div class='add'>+</div><div class='add'>+    This version is backwards-compatible with previous rake versions and</div><div class='add'>+    contains many bug fixes.</div><div class='add'>+</div><div class='add'>+    See</div><div class='add'>+    http://rake.rubyforge.org/doc/release_notes/rake-0_9_5_rdoc.html for a list</div><div class='add'>+    of changes in rake 0.9.3, 0.9.4 and 0.9.5.</div><div class='add'>+</div><div class='add'>+* RDoc</div><div class='add'>+  * RDoc has been updated to version 4.0</div><div class='add'>+</div><div class='add'>+    This version is largely backwards-compatible with previous rdoc versions.</div><div class='add'>+    The most notable change is an update to the ri data format (ri data must</div><div class='add'>+    be regenerated for gems shared across rdoc versions).  Further API changes</div><div class='add'>+    are internal and won't affect most users.</div><div class='add'>+</div><div class='add'>+    Notable changes include:</div><div class='add'>+</div><div class='add'>+    * Page support for ri.  Try `ri ruby:` for a list of pages in ruby or</div><div class='add'>+      `ri ruby:syntax/literals` for the syntax documentation for literals.</div><div class='add'>+</div><div class='add'>+      This also works for gems such as `ri rspec:README` for the rspec gem's</div><div class='add'>+      README file.</div><div class='add'>+    * Markdown support.  See ri RDoc::Markdown for details.</div><div class='add'>+</div><div class='add'>+    See https://github.com/rdoc/rdoc/blob/master/History.rdoc for a full list</div><div class='add'>+    of changes in rdoc 4.0.</div><div class='add'>+</div><div class='add'>+* resolv</div><div class='add'>+  * new methods:</div><div class='add'>+    * Resolv::DNS#timeouts=</div><div class='add'>+    * Resolv::DNS::Config#timeouts=</div><div class='add'>+</div><div class='add'>+* rexml</div><div class='add'>+  * REXML::Document#write supports Hash arguments.</div><div class='add'>+  * REXML::Document#write supports new :encoding option. It changes</div><div class='add'>+    XML document encoding. Without :encoding option, encoding in</div><div class='add'>+    XML declaration is used for XML document encoding.</div><div class='add'>+</div><div class='add'>+* RubyGems</div><div class='add'>+  * Updated to 2.0.0</div><div class='add'>+</div><div class='add'>+    RubyGems 2.0.0 features the following improvements:</div><div class='add'>+</div><div class='add'>+    * Improved support for default gems shipping with ruby 2.0.0+</div><div class='add'>+    * A gem can have arbitrary metadata through Gem::Specification#metadata</div><div class='add'>+    * `gem search` now defaults to --remote and is anchored like gem list.</div><div class='add'>+    * Added --document to replace --rdoc and --ri.  Use --no-document to</div><div class='add'>+      disable documentation, --document=rdoc to only generate rdoc.</div><div class='add'>+    * Only ri-format documentation is generated by default.</div><div class='add'>+    * `gem server` uses RDoc::Servlet from RDoc 4.0 to generate HTML</div><div class='add'>+      documentation.</div><div class='add'>+</div><div class='add'>+    For an expanded list of updates and bug fixes see:</div><div class='add'>+    https://github.com/rubygems/rubygems/blob/master/History.txt</div><div class='add'>+</div><div class='add'>+* shellwords</div><div class='add'>+  * Shellwords#shellescape now stringifies the given object using to_s.</div><div class='add'>+  * Shellwords#shelljoin accepts non-string objects in the given</div><div class='add'>+    array, each of which is stringified using to_s.</div><div class='add'>+</div><div class='add'>+* stringio</div><div class='add'>+  * deprecated methods:</div><div class='add'>+    * StringIO#lines, #bytes, #chars and #codepoints are deprecated.</div><div class='add'>+</div><div class='add'>+* syslog</div><div class='add'>+  * Added Syslog::Logger which provides a Logger API atop Syslog.</div><div class='add'>+  * Syslog::Priority, Syslog::Level, Syslog::Option and Syslog::Macros</div><div class='add'>+    are introduced for easy detection of available constants on a</div><div class='add'>+    running system.</div><div class='add'>+</div><div class='add'>+* tmpdir</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Dir.mktmpdir uses FileUtils.remove_entry instead of</div><div class='add'>+      FileUtils.remove_entry_secure.  This means that applications should not</div><div class='add'>+      change the permission of the created temporary directory to make</div><div class='add'>+      writable from other users.</div><div class='add'>+</div><div class='add'>+* yaml</div><div class='add'>+  * Syck has been removed.  YAML now completely depends on libyaml being</div><div class='add'>+    installed.</div><div class='add'>+  * libyaml is now bundled with ruby, for cases where the library is not</div><div class='add'>+    installed locally.</div><div class='add'>+</div><div class='add'>+* zlib</div><div class='add'>+  * Added streaming support for Zlib::Inflate and Zlib::Deflate.  This allows</div><div class='add'>+    processing of a stream without the use of large amounts of memory.</div><div class='add'>+  * Added support for the new deflate strategies Zlib::RLE and Zlib::FIXED.</div><div class='add'>+  * Zlib streams are now processed without the GVL.  This allows gzip, zlib and</div><div class='add'>+    deflate streams to be processed in parallel.</div><div class='add'>+  * deprecated methods:</div><div class='add'>+    * Zlib::GzipReader#lines and #bytes are deprecated.</div><div class='add'>+</div><div class='add'>+=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* OpenStruct new methods can conflict with custom attributes named</div><div class='add'>+  "each_pair", "eql?", "hash" or "to_h".</div><div class='add'>+</div><div class='add'>+* Dir.mktmpdir in lib/tmpdir.rb</div><div class='add'>+</div><div class='add'>+  See above.</div><div class='add'>+</div><div class='add'>+=== C API updates</div><div class='add'>+</div><div class='add'>+* NUM2SHORT() and NUM2USHORT() added. They are similar to NUM2INT, but short.</div><div class='add'>+</div><div class='add'>+* rb_newobj_of() and NEWOBJ_OF() added. They create a new object of a given class.</div><div class='head'>diff --git a/doc/NEWS/NEWS-2.1.0 b/doc/NEWS/NEWS-2.1.0<br/>new file mode 100644<br/>index 0000000000..26f2374e94<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-2.1.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-2.1.0</a></div><div class='hunk'>@@ -0,0 +1,376 @@</div><div class='add'>+# -*- rdoc -*-</div><div class='add'>+</div><div class='add'>+= NEWS for Ruby 2.1.0</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or</div><div class='add'>+reference information is supplied with.  For a full list of changes</div><div class='add'>+with all sufficient information, see the ChangeLog file.</div><div class='add'>+</div><div class='add'>+== Changes since the 2.0.0 release</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+* Now the default values of keyword arguments can be omitted.  Those</div><div class='add'>+  "required keyword arguments" need giving explicitly at the call time.</div><div class='add'>+</div><div class='add'>+* Added suffixes for integer and float literals: 'r', 'i', and 'ri'.</div><div class='add'>+  * "42r" and "3.14r" are evaluated as Rational(42, 1) and 3.14.rationalize,</div><div class='add'>+    respectively.  But exponential form with 'r' suffix like "6.022e+23r" is</div><div class='add'>+    not accepted because it is misleading.</div><div class='add'>+  * "42i" and "3.14i" are evaluated as Complex(0, 42) and Complex(0, 3.14),</div><div class='add'>+    respectively.</div><div class='add'>+  * "42ri" and "3.14ri" are evaluated as Complex(0, 42r) and Complex(0, 3.14r),</div><div class='add'>+    respectively.</div><div class='add'>+</div><div class='add'>+* def-expr now returns the symbol of its name instead of nil.</div><div class='add'>+</div><div class='add'>+=== Core classes updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* Array</div><div class='add'>+  * New methods</div><div class='add'>+    * Array#to_h converts an array of key-value pairs into a Hash.</div><div class='add'>+</div><div class='add'>+* Binding</div><div class='add'>+  * New methods</div><div class='add'>+    * Binding#local_variable_get(symbol)</div><div class='add'>+    * Binding#local_variable_set(symbol, obj)</div><div class='add'>+    * Binding#local_variable_defined?(symbol)</div><div class='add'>+</div><div class='add'>+* Enumerable</div><div class='add'>+  * New methods</div><div class='add'>+    * Enumerable#to_h converts a list of key-value pairs into a Hash.</div><div class='add'>+</div><div class='add'>+* Exception</div><div class='add'>+  * New methods</div><div class='add'>+    * Exception#cause provides the previous exception which has been caught</div><div class='add'>+      at where raising the new exception.</div><div class='add'>+</div><div class='add'>+* GC</div><div class='add'>+  * improvements:</div><div class='add'>+    * introduced the generational GC a.k.a RGenGC.</div><div class='add'>+  * added environment variables:</div><div class='add'>+    * RUBY_GC_HEAP_INIT_SLOTS</div><div class='add'>+    * RUBY_GC_HEAP_FREE_SLOTS</div><div class='add'>+    * RUBY_GC_HEAP_GROWTH_FACTOR</div><div class='add'>+    * RUBY_GC_HEAP_GROWTH_MAX_SLOTS</div><div class='add'>+    * RUBY_GC_MALLOC_LIMIT_MAX</div><div class='add'>+    * RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR</div><div class='add'>+    * RUBY_GC_OLDMALLOC_LIMIT</div><div class='add'>+    * RUBY_GC_OLDMALLOC_LIMIT_MAX</div><div class='add'>+    * RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR</div><div class='add'>+  * obsoleted environment variables:</div><div class='add'>+    * RUBY_FREE_MIN (Use RUBY_GC_HEAP_FREE_SLOTS instead)</div><div class='add'>+    * RUBY_HEAP_MIN_SLOTS (Use RUBY_GC_HEAP_INIT_SLOTS instead)</div><div class='add'>+</div><div class='add'>+* Integer</div><div class='add'>+  * New methods</div><div class='add'>+    * Fixnum#bit_length</div><div class='add'>+    * Bignum#bit_length</div><div class='add'>+  * Bignum performance improvement</div><div class='add'>+    * Use GMP if available.</div><div class='add'>+      GMP is used only for several operations:</div><div class='add'>+      multiplication, division, radix conversion, GCD</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+  * extended methods:</div><div class='add'>+    * IO#seek supports SEEK_DATA and SEEK_HOLE as whence.</div><div class='add'>+    * IO#seek accepts symbols (:CUR, :END, :SET, :DATA, :HOLE) for 2nd argument.</div><div class='add'>+    * IO#read_nonblock accepts optional `exception: false` to return symbols</div><div class='add'>+    * IO#write_nonblock accepts optional `exception: false` to return symbols</div><div class='add'>+</div><div class='add'>+* Kernel</div><div class='add'>+  * New methods:</div><div class='add'>+    * Kernel#singleton_method</div><div class='add'>+</div><div class='add'>+* Module</div><div class='add'>+  * New methods:</div><div class='add'>+    * Module#using, which activates refinements of the specified module only</div><div class='add'>+      in the current class or module definition.</div><div class='add'>+    * Module#singleton_class? returns true if the receiver is a singleton class</div><div class='add'>+      or false if it is an ordinary class or module.</div><div class='add'>+  * extended methods:</div><div class='add'>+    * Module#refine is no longer experimental.</div><div class='add'>+    * Module#include and Module#prepend are now public methods.</div><div class='add'>+</div><div class='add'>+* Mutex</div><div class='add'>+  * misc</div><div class='add'>+    * Mutex#owned? is no longer experimental.</div><div class='add'>+</div><div class='add'>+* Numeric</div><div class='add'>+  * extended methods:</div><div class='add'>+    * Numeric#step allows the limit argument to be omitted, in which</div><div class='add'>+      case an infinite sequence of numbers is generated.  Keyword</div><div class='add'>+      arguments `to` and `by` are introduced for ease of use.</div><div class='add'>+      `by` can be 0, in which case the same value will be generated</div><div class='add'>+      indefinitely.</div><div class='add'>+</div><div class='add'>+* Process</div><div class='add'>+  * New methods:</div><div class='add'>+    * alternative methods to $0/$0=:</div><div class='add'>+      * Process.argv0() returns the original value of $0.</div><div class='add'>+      * Process.setproctitle() sets the process title without affecting $0.</div><div class='add'>+    * Process.clock_gettime</div><div class='add'>+    * Process.clock_getres</div><div class='add'>+</div><div class='add'>+* String</div><div class='add'>+  * "literal".freeze is now optimized to return the same object</div><div class='add'>+  * New methods:</div><div class='add'>+    * String#scrub and String#scrub! verify and fix invalid byte sequence.</div><div class='add'>+      If you want to use this function with older Ruby,</div><div class='add'>+      consider to use string-scrub.gem.</div><div class='add'>+</div><div class='add'>+* Symbol</div><div class='add'>+  * All symbols are now frozen.</div><div class='add'>+</div><div class='add'>+* pack/unpack (Array/String)</div><div class='add'>+  * Q! and q! directives for long long type if platform has the type.</div><div class='add'>+</div><div class='add'>+* toplevel</div><div class='add'>+  * extended methods:</div><div class='add'>+    * main.using is no longer experimental. The method activates refinements</div><div class='add'>+      in the ancestors of the argument module to support refinement</div><div class='add'>+      inheritance by Module#include.</div><div class='add'>+</div><div class='add'>+=== Core classes compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* Hash</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Hash#reject will return plain Hash object in the future versions, that</div><div class='add'>+      is the original object's subclass, instance variables, default value,</div><div class='add'>+      and taintedness will be no longer copied, so now warnings are emitted</div><div class='add'>+      when called with such Hash.</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * open ignore internal encoding if external encoding is ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+* Kernel#eval, Kernel#instance_eval, and Module#module_eval.</div><div class='add'>+  * Copies the scope information of the original environment, which means</div><div class='add'>+    that private, protected, public, and module_function without arguments</div><div class='add'>+    do not affect the environment outside the eval string.</div><div class='add'>+    For example, `class Foo; eval "private"; def foo; end; end' doesn't make</div><div class='add'>+    Foo#foo private.</div><div class='add'>+</div><div class='add'>+* Kernel#untrusted?, untrust, and trust</div><div class='add'>+  * These methods are deprecated and their behavior is the same as tainted?,</div><div class='add'>+    taint, and untaint, respectively.  If $VERBOSE is true, they show warnings.</div><div class='add'>+</div><div class='add'>+* Module#ancestors</div><div class='add'>+  * The ancestors of a singleton class now include singleton classes,</div><div class='add'>+    in particular itself.</div><div class='add'>+</div><div class='add'>+* Module#define_method and Object#define_singleton_method</div><div class='add'>+  * Now they return the symbols of the defined methods, not the methods/procs</div><div class='add'>+    themselves.</div><div class='add'>+</div><div class='add'>+* Numeric#quo</div><div class='add'>+  * Raises TypeError instead of ArgumentError if the receiver doesn't have</div><div class='add'>+    to_r method.</div><div class='add'>+</div><div class='add'>+* Proc</div><div class='add'>+  * Returning from lambda proc now always exits from the Proc, not from the</div><div class='add'>+    method where the lambda is created.  Returning from non-lambda proc exits</div><div class='add'>+    from the method, same as the former behavior.</div><div class='add'>+</div><div class='add'>+String</div><div class='add'>+  * If invalid: :replace is specified for String#encode, replace</div><div class='add'>+    invalid byte sequence even if the destination encoding equals to</div><div class='add'>+    the source encoding.</div><div class='add'>+</div><div class='add'>+=== Stdlib updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* CGI::Util</div><div class='add'>+  * All class methods modulized.</div><div class='add'>+</div><div class='add'>+* Digest</div><div class='add'>+  * extended methods:</div><div class='add'>+    * Digest::Class.file takes optional arguments for its constructor</div><div class='add'>+</div><div class='add'>+* Matrix</div><div class='add'>+  * Added Vector#cross_product.</div><div class='add'>+</div><div class='add'>+* Net::SMTP</div><div class='add'>+  * Added Net::SMTP#rset to implement the RSET command</div><div class='add'>+</div><div class='add'>+* objspace</div><div class='add'>+  * new method:</div><div class='add'>+    * ObjectSpace.trace_object_allocations</div><div class='add'>+    * ObjectSpace.trace_object_allocations_start</div><div class='add'>+    * ObjectSpace.trace_object_allocations_stop</div><div class='add'>+    * ObjectSpace.trace_object_allocations_clear</div><div class='add'>+    * ObjectSpace.allocation_sourcefile</div><div class='add'>+    * ObjectSpace.allocation_sourceline</div><div class='add'>+    * ObjectSpace.allocation_class_path</div><div class='add'>+    * ObjectSpace.allocation_method_id</div><div class='add'>+    * ObjectSpace.allocation_generation</div><div class='add'>+    * ObjectSpace.reachable_objects_from_root</div><div class='add'>+    * ObjectSpace.dump</div><div class='add'>+    * ObjectSpace.dump_all</div><div class='add'>+</div><div class='add'>+* OpenSSL::BN</div><div class='add'>+  * extended methods:</div><div class='add'>+    * OpenSSL::BN.new allows Fixnum/Bignum argument.</div><div class='add'>+</div><div class='add'>+* open-uri</div><div class='add'>+  * Support multiple fields with same field name (like Set-Cookie).</div><div class='add'>+</div><div class='add'>+* Pathname</div><div class='add'>+  * New methods:</div><div class='add'>+    * Pathname#write</div><div class='add'>+    * Pathname#binwrite</div><div class='add'>+</div><div class='add'>+* rake</div><div class='add'>+  * Updated to 10.1.0.  Major changes include removal of the class namespace,</div><div class='add'>+    Rake::DSL to hold the rake DSL methods and removal of support for legacy</div><div class='add'>+    rake features.</div><div class='add'>+</div><div class='add'>+    For a complete list of changes since rake 0.9.6 see:</div><div class='add'>+</div><div class='add'>+    http://rake.rubyforge.org/doc/release_notes/rake-10_1_0_rdoc.html</div><div class='add'>+</div><div class='add'>+    http://rake.rubyforge.org/doc/release_notes/rake-10_0_3_rdoc.html</div><div class='add'>+</div><div class='add'>+* RbConfig</div><div class='add'>+  * New constants:</div><div class='add'>+    * RbConfig::SIZEOF is added to provide the size of C types.</div><div class='add'>+</div><div class='add'>+* RDoc</div><div class='add'>+  * Updated to 4.1.0.  Major enhancements include a modified default template</div><div class='add'>+  * and accessibility enhancements.</div><div class='add'>+</div><div class='add'>+    For a list of minor enhancements and bug fixes see:</div><div class='add'>+    https://github.com/rdoc/rdoc/blob/v4.1.0.preview.1/History.rdoc</div><div class='add'>+</div><div class='add'>+* Resolv</div><div class='add'>+  * New methods:</div><div class='add'>+    * Resolv::DNS.fetch_resource</div><div class='add'>+  * One-shot multicast DNS support</div><div class='add'>+  * Support LOC resources</div><div class='add'>+</div><div class='add'>+* REXML::Parsers::SAX2Parser</div><div class='add'>+  * Fixes wrong number of arguments of entitydecl event. Document of the event</div><div class='add'>+    says "an array of the entity declaration" but implementation passes two</div><div class='add'>+    or more arguments. It is an implementation bug but it breaks backward</div><div class='add'>+    compatibility.</div><div class='add'>+</div><div class='add'>+* REXML::Parsers::StreamParser</div><div class='add'>+  * Supports "entity" event.</div><div class='add'>+</div><div class='add'>+* REXML::Text</div><div class='add'>+  * REXML::Text#&lt;&lt; supports method chain like 'text &lt;&lt; "XXX" &lt;&lt; "YYY"'.</div><div class='add'>+  * REXML::Text#&lt;&lt; supports not "raw" mode.</div><div class='add'>+</div><div class='add'>+* Rinda::RingServer, Rinda::RingFinger</div><div class='add'>+  * Rinda now supports multicast sockets.  See Rinda::RingServer and</div><div class='add'>+    Rinda::RingFinger for details.</div><div class='add'>+</div><div class='add'>+* RubyGems</div><div class='add'>+  * Updated to 2.2.0.  Notable new features include:</div><div class='add'>+</div><div class='add'>+    * Gemfile or gem.deps.rb support including Gem.file.lock (experimental)</div><div class='add'>+    * Improved, iterative resolver (compared to RubyGems 2.1 and earlier)</div><div class='add'>+    * Support for a sharing a GEM_HOME across ruby platforms and versions</div><div class='add'>+</div><div class='add'>+    For a complete list of enhancements and bug fixes see:</div><div class='add'>+    https://github.com/rubygems/rubygems/tree/master/History.txt</div><div class='add'>+</div><div class='add'>+* Set</div><div class='add'>+  * New methods:</div><div class='add'>+    * Set#intersect?</div><div class='add'>+    * Set#disjoint?</div><div class='add'>+</div><div class='add'>+* Socket</div><div class='add'>+  * New methods:</div><div class='add'>+    * Socket.getifaddrs</div><div class='add'>+</div><div class='add'>+* StringScanner</div><div class='add'>+  * extended methods:</div><div class='add'>+    * StringScanner#[] supports named captures.</div><div class='add'>+</div><div class='add'>+* Syslog::Logger</div><div class='add'>+  * Added facility.</div><div class='add'>+</div><div class='add'>+* Tempfile</div><div class='add'>+  * New methods:</div><div class='add'>+    * Tempfile.create</div><div class='add'>+</div><div class='add'>+* Timeout</div><div class='add'>+  * The exception to terminate the given block can no longer be rescued</div><div class='add'>+    inside the block, by default, unless the exception class is given</div><div class='add'>+    explicitly.</div><div class='add'>+</div><div class='add'>+* TSort</div><div class='add'>+  * New methods:</div><div class='add'>+    * TSort.tsort</div><div class='add'>+    * TSort.tsort_each</div><div class='add'>+    * TSort.strongly_connected_components</div><div class='add'>+    * TSort.each_strongly_connected_component</div><div class='add'>+    * TSort.each_strongly_connected_component_from</div><div class='add'>+</div><div class='add'>+* WEBrick</div><div class='add'>+  * The body of a response may now be a StringIO or other IO-like that responds</div><div class='add'>+    to #readpartial and #read.</div><div class='add'>+</div><div class='add'>+* XMLRPC::Client</div><div class='add'>+  * New methods:</div><div class='add'>+    * XMLRPC::Client#http. It returns Net::HTTP for the client. Normally,</div><div class='add'>+      it is not needed. It is useful when you want to change minor HTTP client</div><div class='add'>+      options. You can change major HTTP client options by XMLRPC::Client</div><div class='add'>+      methods. You should use XMLRPC::Client methods for changing major</div><div class='add'>+      HTTP client options instead of XMLRPC::Client#http.</div><div class='add'>+</div><div class='add'>+=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* Set</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Set#to_set now returns self instead of generating a copy.</div><div class='add'>+</div><div class='add'>+* URI</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * URI.decode_www_form follows current WHATWG URL Standard.</div><div class='add'>+      It gets encoding argument to specify the character encoding.</div><div class='add'>+      It now allows loose percent encoded strings, but denies ;-separator.</div><div class='add'>+    * URI.encode_www_form follows current WHATWG URL Standard.</div><div class='add'>+      It gets encoding argument to convert before percent encode.</div><div class='add'>+      UTF-16 strings aren't converted to UTF-8 before percent encode by default.</div><div class='add'>+</div><div class='add'>+* curses</div><div class='add'>+  * Removed.</div><div class='add'>+    curses is now available as a gem.</div><div class='add'>+    See https://rubygems.org/gems/curses for details.</div><div class='add'>+</div><div class='add'>+=== Built-in global variables compatibility issues</div><div class='add'>+</div><div class='add'>+* $SAFE</div><div class='add'>+  * $SAFE=4 is obsolete.  If $SAFE is set to 4 or larger, an ArgumentError</div><div class='add'>+    is raised.</div><div class='add'>+</div><div class='add'>+=== C API updates</div><div class='add'>+</div><div class='add'>+* rb_gc_set_params() is deprecated. This is only used in Ruby internal.</div><div class='add'>+</div><div class='add'>+* rb_gc_count() added. This returns the number of times GC occurred.</div><div class='add'>+</div><div class='add'>+* rb_gc_stat() added. This allows access to specific GC.stat() values from C</div><div class='add'>+  without any allocation overhead.</div><div class='add'>+</div><div class='add'>+* rb_gc_latest_gc_info() added. This allows access to GC.latest_gc_info().</div><div class='add'>+</div><div class='add'>+* rb_postponed_job_register() added. Takes a function callback which is invoked</div><div class='add'>+  when the VM is in a consistent state, i.e. to perform work from a C signal</div><div class='add'>+  handler.</div><div class='add'>+</div><div class='add'>+* rb_profile_frames() added. Provides low-cost access to the current ruby stack</div><div class='add'>+  for callstack profiling.</div><div class='add'>+</div><div class='add'>+* rb_tracepoint_new() supports new internal events accessible only from C:</div><div class='add'>+  * RUBY_INTERNAL_EVENT_NEWOBJ</div><div class='add'>+  * RUBY_INTERNAL_EVENT_FREEOBJ</div><div class='add'>+  * RUBY_INTERNAL_EVENT_GC_START</div><div class='add'>+  * RUBY_INTERNAL_EVENT_GC_END_MARK</div><div class='add'>+  * RUBY_INTERNAL_EVENT_GC_END_SWEEP</div><div class='add'>+  * Note that you *can not* specify "internal events" with normal events</div><div class='add'>+    (such as RUBY_EVENT_CALL, RUBY_EVENT_RETURN) simultaneously.</div><div class='head'>diff --git a/doc/NEWS/NEWS-2.2.0 b/doc/NEWS/NEWS-2.2.0<br/>new file mode 100644<br/>index 0000000000..8b2bd0ba0a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-2.2.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-2.2.0</a></div><div class='hunk'>@@ -0,0 +1,359 @@</div><div class='add'>+# -*- rdoc -*-</div><div class='add'>+</div><div class='add'>+= NEWS for Ruby 2.2.0</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or</div><div class='add'>+reference information is supplied with.  For a full list of changes</div><div class='add'>+with all sufficient information, see the ChangeLog file.</div><div class='add'>+</div><div class='add'>+== Changes since the 2.1.0 release</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+* nil/true/false</div><div class='add'>+  * nil/true/false objects are frozen. [Feature #8923]</div><div class='add'>+</div><div class='add'>+* Hash literal</div><div class='add'>+  * Symbol key followed by a colon can be quoted. [Feature #4276]</div><div class='add'>+</div><div class='add'>+* default argument</div><div class='add'>+  fixed a very longstanding bug that an optional argument was not</div><div class='add'>+  accessible in its default value expression.  [Bug #9593]</div><div class='add'>+</div><div class='add'>+=== Core classes updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* Binding</div><div class='add'>+  * New methods:</div><div class='add'>+    * Binding#local_variables</div><div class='add'>+    * Binding#receiver</div><div class='add'>+</div><div class='add'>+* Dir</div><div class='add'>+  * New methods:</div><div class='add'>+    * Dir#fileno</div><div class='add'>+</div><div class='add'>+* Enumerable</div><div class='add'>+  * New methods:</div><div class='add'>+    * Enumerable#slice_after</div><div class='add'>+    * Enumerable#slice_when</div><div class='add'>+  * Extended methods:</div><div class='add'>+    * min, min_by, max and max_by supports optional argument to return</div><div class='add'>+      multiple elements.</div><div class='add'>+</div><div class='add'>+* Float</div><div class='add'>+  * New methods:</div><div class='add'>+    * Float#next_float</div><div class='add'>+    * Float#prev_float</div><div class='add'>+</div><div class='add'>+* File</div><div class='add'>+  * New methods:</div><div class='add'>+    * File.birthtime</div><div class='add'>+    * File#birthtime</div><div class='add'>+</div><div class='add'>+* File::Stat</div><div class='add'>+  * New methods:</div><div class='add'>+    * File::Stat#birthtime</div><div class='add'>+</div><div class='add'>+* GC</div><div class='add'>+  * GC.latest_gc_info returns :state to represent current GC status.</div><div class='add'>+  * Improvements</div><div class='add'>+    * Introduce incremental marking for major GC. [Feature #10137]</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+  * Improvements</div><div class='add'>+    * IO#read_nonblock and IO#write_nonblock for pipes on Windows are supported.</div><div class='add'>+</div><div class='add'>+* Kernel</div><div class='add'>+  * New methods:</div><div class='add'>+    * Kernel#itself</div><div class='add'>+  * Improvements</div><div class='add'>+    * Kernel#throw raises UncaughtThrowError, subclass of ArgumentError when</div><div class='add'>+      there is no corresponding catch block, instead of ArgumentError.</div><div class='add'>+</div><div class='add'>+* Process</div><div class='add'>+  * Extended method:</div><div class='add'>+    * Process execution methods such as Process.spawn opens the file in write</div><div class='add'>+      mode for redirect from [:out, :err].</div><div class='add'>+</div><div class='add'>+* String</div><div class='add'>+  * New methods:</div><div class='add'>+    * String#unicode_normalize</div><div class='add'>+    * String#unicode_normalize!</div><div class='add'>+    * String#unicode_normalized?</div><div class='add'>+</div><div class='add'>+* Symbol</div><div class='add'>+  * Improvements</div><div class='add'>+    * Most symbols which are returned by String#to_sym and</div><div class='add'>+      String#intern are GC-able.</div><div class='add'>+</div><div class='add'>+* Method</div><div class='add'>+  * New methods:</div><div class='add'>+    * Method#curry([ arity ]) returns a curried Proc.</div><div class='add'>+    * Method#super_method returns a Method of superclass, which would be called</div><div class='add'>+      when super is used.</div><div class='add'>+</div><div class='add'>+=== Core classes compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* Enumerable</div><div class='add'>+  * Enumerable#slice_before's state management deprecated.</div><div class='add'>+  * Enumerable#chunk's state management deprecated.</div><div class='add'>+</div><div class='add'>+* GC</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Rename GC.stat entries. [Feature #9924]</div><div class='add'>+      See https://docs.google.com/spreadsheets/d/11Ua4uBr6o0k-nORrZLEIIUkHJ9JRzRR0NyZfrhEEnc8/edit?usp=sharing</div><div class='add'>+</div><div class='add'>+* Hash</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Change overriding policy for duplicated key. [Bug #10315]</div><div class='add'>+      { **hash1, **hash2 } contains values of hash2 for duplicated keys.</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * When flushing file IO with IO#flush, you cannot assume that the metadata</div><div class='add'>+      of the file is updated immediately.  On some platforms (especially</div><div class='add'>+      Windows), it is delayed until the filesystem load is decreased.</div><div class='add'>+      Use IO#fsync if you want to guarantee updating metadata.</div><div class='add'>+</div><div class='add'>+* Math</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Math.log now raises Math::DomainError instead of returning NaN if the</div><div class='add'>+      base is less than 0, and returns NaN instead of -infinity if both of</div><div class='add'>+      two arguments are 0.</div><div class='add'>+    * Math.atan2 now returns values like as expected by C99 if both two</div><div class='add'>+      arguments are infinity.</div><div class='add'>+</div><div class='add'>+* Proc</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * ArgumentError is no longer raised when lambda Proc is passed as a</div><div class='add'>+      block, and the number of yielded arguments does not match the formal</div><div class='add'>+      arguments of the lambda, if just an array is yielded and its length</div><div class='add'>+      matches.</div><div class='add'>+</div><div class='add'>+* Process</div><div class='add'>+  * Process execution methods such as Process.spawn opens the file in write</div><div class='add'>+    mode for redirect from [:out, :err].</div><div class='add'>+    Before Ruby 2.2, it was opened in read mode.</div><div class='add'>+</div><div class='add'>+=== Stdlib updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* Continuation</div><div class='add'>+  * callcc is obsolete. use Fiber instead.</div><div class='add'>+</div><div class='add'>+* Digest</div><div class='add'>+</div><div class='add'>+  * Digest() should now be thread-safe.  If you have a problem with</div><div class='add'>+    regard to on-demand loading under a multi-threaded environment,</div><div class='add'>+    preload "digest/*" modules on boot or use this method instead of</div><div class='add'>+    directly referencing Digest::*.</div><div class='add'>+  * Digest::HMAC has been removed just as previously noticed.</div><div class='add'>+</div><div class='add'>+* DL</div><div class='add'>+  * DL has been removed from stdlib. Please use Fiddle instead!</div><div class='add'>+</div><div class='add'>+* Etc</div><div class='add'>+  * New methods:</div><div class='add'>+    * Etc.uname</div><div class='add'>+    * Etc.sysconf</div><div class='add'>+    * Etc.confstr</div><div class='add'>+    * IO#pathconf</div><div class='add'>+    * Etc.nprocessors</div><div class='add'>+</div><div class='add'>+* Find, Pathname</div><div class='add'>+  * Extended methods:</div><div class='add'>+    * find method accepts "ignore_error" keyword argument.</div><div class='add'>+</div><div class='add'>+* Matrix</div><div class='add'>+  * New methods:</div><div class='add'>+    * Matrix#first_minor(row, column) returns the submatrix obtained</div><div class='add'>+      by deleting the specified row and column.</div><div class='add'>+    * Matrix#cofactor(row, column) returns the (row, column) cofactor</div><div class='add'>+      which is obtained by multiplying the first minor by (-1)**(row + column).</div><div class='add'>+    * Matrix#adjugate returns the adjugate of the matrix.</div><div class='add'>+    * hstack and vstack are new instance and class methods to stack matrices</div><div class='add'>+      horizontally and vertically.</div><div class='add'>+    * Matrix#laplace_expansion(row_or_column: num) returns the laplace_expansion</div><div class='add'>+      along the +num+ -th row or column.</div><div class='add'>+    * Vector.basis(size:, index:) returns the specified basis vector.</div><div class='add'>+    * Unary - and + added for Vector and Matrix.</div><div class='add'>+    * Vector#cross_product generalized to arbitrary dimensions.</div><div class='add'>+    * Vector#dot and #cross are aliases for #inner_product and #cross_product.</div><div class='add'>+    * Vector#angle_with returns the angle with its argument</div><div class='add'>+    * New instance and class method independent? to test linear independence.</div><div class='add'>+</div><div class='add'>+* Pathname</div><div class='add'>+  * Pathname#/ is aliased to Pathname#+.</div><div class='add'>+  * New methods:</div><div class='add'>+    * Pathname#birthtime</div><div class='add'>+</div><div class='add'>+* Rake</div><div class='add'>+  * Updated to Rake 10.4.0.  For full release notes see:</div><div class='add'>+</div><div class='add'>+    http://docs.seattlerb.org/rake/History_rdoc.html#label-10.4.0</div><div class='add'>+</div><div class='add'>+* RubyGems</div><div class='add'>+  * Updated to RubyGems 2.4.2.  For full release notes see:</div><div class='add'>+</div><div class='add'>+    http://docs.seattlerb.org/rubygems/History_txt.html#label-2.4.2+%2F+2014-10-01</div><div class='add'>+</div><div class='add'>+* TSort</div><div class='add'>+  * TSort.tsort_each, TSort.each_strongly_connected_component and</div><div class='add'>+    TSort.each_strongly_connected_component_from returns an enumerator if</div><div class='add'>+    no block given.</div><div class='add'>+</div><div class='add'>+* XMLRPC</div><div class='add'>+  * Added new parser class named LibXMLStreamParser.</div><div class='add'>+</div><div class='add'>+=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* lib/mathn.rb</div><div class='add'>+  * Show deprecated warning [Feature #10169]</div><div class='add'>+</div><div class='add'>+* ext/date/lib/date/format.rb</div><div class='add'>+  * Removed because it's empty file.</div><div class='add'>+</div><div class='add'>+* Digest</div><div class='add'>+  * Digest::HMAC has finally ceased to exist.  Use OpenSSL::HMAC or an external gem instead.</div><div class='add'>+</div><div class='add'>+* time.rb</div><div class='add'>+  * Time.parse, Time.strptime, Time.rfc2822, Time.xmlschema may produce</div><div class='add'>+    fixed-offset Time objects.</div><div class='add'>+    It is happen when usual localtime doesn't preserve the offset from UTC.</div><div class='add'>+  * Time.httpdate produces always UTC Time object.</div><div class='add'>+  * Time.strptime raises ArgumentError when no date information.</div><div class='add'>+</div><div class='add'>+* lib/rational.rb</div><div class='add'>+  * Removed because it is deprecated from 2009.</div><div class='add'>+</div><div class='add'>+* lib/complex.rb</div><div class='add'>+  * Removed because it is deprecated from 2009.</div><div class='add'>+</div><div class='add'>+* lib/prettyprint.rb</div><div class='add'>+  * Removed PrettyPrint#first?</div><div class='add'>+</div><div class='add'>+* lib/minitest/*.rb</div><div class='add'>+  * Removed because it conflicts to minitest 5. [Feature #9711]</div><div class='add'>+</div><div class='add'>+* lib/test/**/*.rb</div><div class='add'>+  * Removed because it conflicts to minitest 5, and it was just an wrapper</div><div class='add'>+    of minitest 4. [Feature #9711]</div><div class='add'>+</div><div class='add'>+* lib/uri</div><div class='add'>+  * support RFC 3986. [Feature #2542]</div><div class='add'>+</div><div class='add'>+* GServer</div><div class='add'>+  * GServer is extracted to gserver gem. It's unmaintain code.</div><div class='add'>+</div><div class='add'>+* Logger</div><div class='add'>+  * Logger::Application is extracted to logger-application gem. It's unmaintain code.</div><div class='add'>+</div><div class='add'>+* ObjectSpace (after requiring "objspace")</div><div class='add'>+  * ObjectSpace.memsize_of(obj) returns a size includes sizeof(RVALUE). [Bug #8984]</div><div class='add'>+</div><div class='add'>+* Prime</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Prime.prime? now returns false for negative numbers. This method</div><div class='add'>+      should not be used to know the number is composite or not. [Bug #7395]</div><div class='add'>+</div><div class='add'>+* Psych</div><div class='add'>+  * Removed Psych::EngineManager [Bug #8344]</div><div class='add'>+</div><div class='add'>+=== Built-in global variables compatibility issues</div><div class='add'>+</div><div class='add'>+=== C API updates</div><div class='add'>+</div><div class='add'>+* Deprecated APIs removed.  [Feature #9502]</div><div class='add'>+</div><div class='add'>+  Check_SafeStr -&gt; SafeStringValue</div><div class='add'>+  rb_check_safe_str -&gt; SafeStringValue</div><div class='add'>+  rb_quad_pack -&gt; rb_integer_pack</div><div class='add'>+  rb_quad_unpack -&gt; rb_integer_unpack</div><div class='add'>+  rb_read_check : access struct FILE internal. no replacement.</div><div class='add'>+  rb_struct_iv_get : internal function. no replacement.</div><div class='add'>+  struct rb_blocking_region_buffer : internal type. no replacement.</div><div class='add'>+  rb_thread_blocking_region_begin -&gt; rb_thread_call_without_gvl family</div><div class='add'>+  rb_thread_blocking_region_end -&gt; rb_thread_call_without_gvl family</div><div class='add'>+  TRAP_BEG -&gt; rb_thread_call_without_gvl family</div><div class='add'>+  TRAP_END -&gt; rb_thread_call_without_gvl family</div><div class='add'>+  rb_thread_select -&gt; rb_thread_fd_select</div><div class='add'>+  struct rb_exec_arg : internal type. no replacement.</div><div class='add'>+  rb_exec : internal function. no replacement.</div><div class='add'>+  rb_exec_arg_addopt : internal function. no replacement.</div><div class='add'>+  rb_exec_arg_fixup : internal function. no replacement.</div><div class='add'>+  rb_exec_arg_init : internal function. no replacement.</div><div class='add'>+  rb_exec_err : internal function. no replacement.</div><div class='add'>+  rb_fork : internal function. no replacement.</div><div class='add'>+  rb_fork_err : internal function. no replacement.</div><div class='add'>+  rb_proc_exec_n : internal function. no replacement.</div><div class='add'>+  rb_run_exec_options : internal function. no replacement.</div><div class='add'>+  rb_run_exec_options_err : internal function. no replacement.</div><div class='add'>+  rb_thread_blocking_region -&gt; rb_thread_call_without_gvl family</div><div class='add'>+  rb_thread_polling -&gt; rb_thread_wait_for</div><div class='add'>+  rb_big2str0 : internal function. no replacement.</div><div class='add'>+  rb_big2ulong_pack -&gt; rb_integer_pack</div><div class='add'>+  rb_gc_set_params : internal function. no replacement.</div><div class='add'>+  rb_io_mode_flags -&gt; rb_io_modestr_fmode</div><div class='add'>+  rb_io_modenum_flags -&gt; rb_io_oflags_fmode</div><div class='add'>+</div><div class='add'>+* struct RBignum is hidden.  [Feature #6083]</div><div class='add'>+  Use rb_integer_pack and rb_integer_unpack instead.</div><div class='add'>+</div><div class='add'>+* struct RRational is hidden.  [Feature #9513]</div><div class='add'>+  Use rb_rational_num and rb_rational_den instead.</div><div class='add'>+</div><div class='add'>+* rb_big_new and rb_big_resize takes a size_t instead of long.</div><div class='add'>+</div><div class='add'>+* rb_num2long returns a long instead of SIGNED_VALUE.</div><div class='add'>+</div><div class='add'>+* rb_num2ulong returns an unsigned long instead of VALUE.</div><div class='add'>+</div><div class='add'>+* st hash table uses power-of-two sizes for speed [Feature #9425].</div><div class='add'>+  Lookups are 10-25% faster if using appropriate hash functions.</div><div class='add'>+  However, weaknesses in hash distribution can no longer be masked</div><div class='add'>+  by prime number-sized tables, so extensions may need to tweak</div><div class='add'>+  hash functions to ensure good distribution.</div><div class='add'>+</div><div class='add'>+* rb_sym2str() added. This is almost same as `rb_id2str(SYM2ID(sym))`</div><div class='add'>+  but not pinning a dynamic symbol.</div><div class='add'>+</div><div class='add'>+* rb_str_cat_cstr() added. This is the same as `rb_str_cat2()`.</div><div class='add'>+</div><div class='add'>+* `rb_str_substr()` and `rb_str_subseq()` will share middle of a string,</div><div class='add'>+  but not only the end of a string, in the future.  Therefore, result</div><div class='add'>+  strings may not be NUL-terminated, `StringValueCStr()` is needed</div><div class='add'>+  calling to obtain a NUL-terminated C string.</div><div class='add'>+</div><div class='add'>+* rb_tracepoint_new() supports new internal events accessible only from C:</div><div class='add'>+  * RUBY_INTERNAL_EVENT_GC_ENTER</div><div class='add'>+  * RUBY_INTERNAL_EVENT_GC_EXIT</div><div class='add'>+    r47528</div><div class='add'>+</div><div class='add'>+* rb_hash_delete() now does not call the block given to the current method.</div><div class='add'>+</div><div class='add'>+* rb_extract_keywords() and rb_get_kwargs() exported.  See README.EXT</div><div class='add'>+  for details.</div><div class='add'>+</div><div class='add'>+=== Build system updates</div><div class='add'>+</div><div class='add'>+* jemalloc is optionally supported via `./configure --with-jemalloc`</div><div class='add'>+  jemalloc may be suitable when system malloc is slow or prone</div><div class='add'>+  to fragmentation.  [Feature #9113]</div><div class='add'>+</div><div class='add'>+=== Implementation changes</div><div class='add'>+</div><div class='add'>+* GC</div><div class='add'>+    * Most symbols which are returned by String#to_sym and</div><div class='add'>+      String#intern are GC-able [Feature #9634]</div><div class='add'>+    * Introduce incremental marking for major GC. [Feature #10137]</div><div class='add'>+    * Enable lazy sweep on GC caused by malloc().</div><div class='add'>+</div><div class='add'>+* VM</div><div class='add'>+    * Use frozen string literals for Hash#[] and Hash#[]=</div><div class='add'>+    * Fast keyword arguments passing [Feature #10440]</div><div class='add'>+    * Allow to receive huge splatted array by a rest argument [Feature #10440]</div><div class='add'>+</div><div class='add'>+* Process</div><div class='add'>+    * Process creation methods, such as spawn(), uses vfork() system call.</div><div class='add'>+      vfork() is faster than fork() when the parent process uses huge memory.</div><div class='head'>diff --git a/doc/NEWS/NEWS-2.3.0 b/doc/NEWS/NEWS-2.3.0<br/>new file mode 100644<br/>index 0000000000..065515257e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-2.3.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-2.3.0</a></div><div class='hunk'>@@ -0,0 +1,384 @@</div><div class='add'>+# -*- rdoc -*-</div><div class='add'>+</div><div class='add'>+= NEWS for Ruby 2.3.0</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or</div><div class='add'>+reference information is supplied with.  For a full list of changes</div><div class='add'>+with all sufficient information, see the ChangeLog file or Redmine</div><div class='add'>+(e.g. &lt;tt&gt;https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER&lt;/tt&gt;)</div><div class='add'>+</div><div class='add'>+== Changes since the 2.2.0 release</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+* frozen-string-literal pragma:</div><div class='add'>+</div><div class='add'>+  * new pragma, frozen-string-literal has been experimentally introduced. [Feature #8976]</div><div class='add'>+  * besides, --enable/--disable=frozen-string-literal options also have</div><div class='add'>+    been introduced. [Feature #8976]</div><div class='add'>+  * command line options --debug or --debug=frozen-string-literal enable</div><div class='add'>+    additional debugging mode which shows created location with at frozen</div><div class='add'>+    object error (RuntimeError). [Feature #11725]</div><div class='add'>+</div><div class='add'>+* safe navigation operator:</div><div class='add'>+</div><div class='add'>+  * new method call syntax, `object&amp;.foo', method #foo is called on</div><div class='add'>+    `object' if it is not nil. [Feature #11537]</div><div class='add'>+</div><div class='add'>+    This is similar to `try!' in Active Support, except:</div><div class='add'>+    * method name is syntactically required</div><div class='add'>+          obj.try! {} # valid</div><div class='add'>+          obj&amp;. {}    # syntax error</div><div class='add'>+    * arguments are evaluated only if a call is made:</div><div class='add'>+          obj.try!(:foo, bar())  # bar() is always evaluated</div><div class='add'>+          obj&amp;.foo(bar())        # bar() is conditionally evaluated</div><div class='add'>+    * attribute assignment is valid</div><div class='add'>+          obj&amp;.attr += 1</div><div class='add'>+</div><div class='add'>+* the did_you_mean gem:</div><div class='add'>+</div><div class='add'>+  * When a NameError or NoMethodError occurs because of a typo in the name,</div><div class='add'>+    the did_you_mean gem automatically suggests other names similar to the</div><div class='add'>+    method name.</div><div class='add'>+</div><div class='add'>+      "Yuki".starts_with?("Y")</div><div class='add'>+      # =&gt; NoMethodError: undefined method `starts_with?' for "Yuki":String</div><div class='add'>+      #    Did you mean?  start_with?</div><div class='add'>+</div><div class='add'>+* indented here document:</div><div class='add'>+</div><div class='add'>+  * new string literal, here document starts with `&lt;&lt;~`.</div><div class='add'>+    refer doc/syntax/literals.rdoc for more details. [Feature #9098]</div><div class='add'>+</div><div class='add'>+=== Core classes updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* ARGF</div><div class='add'>+</div><div class='add'>+  * ARGF.read_nonblock supports `exception: false' like IO#read_nonblock. [Feature #11358]</div><div class='add'>+</div><div class='add'>+* Array</div><div class='add'>+</div><div class='add'>+  * Array#bsearch_index [Feature #10730]</div><div class='add'>+  * Array#dig [Feature #11643]</div><div class='add'>+</div><div class='add'>+* Comparable</div><div class='add'>+</div><div class='add'>+  * Comparable#== no longer rescues exceptions [Feature #7688]</div><div class='add'>+</div><div class='add'>+* Encoding</div><div class='add'>+</div><div class='add'>+  * new Encoding::IBM037 (alias ebcdic-cp-us; dummy)</div><div class='add'>+</div><div class='add'>+* Enumerable</div><div class='add'>+</div><div class='add'>+  * Enumerable#grep_v is added as inverse version of Enumerable#grep. [Feature #11049]</div><div class='add'>+  * Enumerable#chunk_while [Feature #10769]</div><div class='add'>+</div><div class='add'>+* Enumerator::Lazy</div><div class='add'>+</div><div class='add'>+  * Enumerator::Lazy#grep_v [Feature #11773]</div><div class='add'>+</div><div class='add'>+* File</div><div class='add'>+</div><div class='add'>+  * File.mkfifo [Feature #11536]</div><div class='add'>+  * Add File::TMPFILE corresponding to O_TMPFILE</div><div class='add'>+</div><div class='add'>+* Hash</div><div class='add'>+</div><div class='add'>+  * Hash#fetch_values [Feature #10017]</div><div class='add'>+  * Hash#dig [Feature #11643]</div><div class='add'>+  * Hash#&lt;=, Hash#&lt;, Hash#&gt;=, Hash#&gt; [Feature #10984]</div><div class='add'>+  * Hash#to_proc [Feature #11653]</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+</div><div class='add'>+  * new mode flag File::SHARE_DELETE is available.</div><div class='add'>+    this flag means to permit deleting opened file on Windows, but currently</div><div class='add'>+    this affect only files opened as binary.  [Feature #11218]</div><div class='add'>+</div><div class='add'>+  * new option parameter `flags' is added.</div><div class='add'>+    this parameter is bitwise-ORed to oflags generated by normal mode argument. [Feature #11253]</div><div class='add'>+</div><div class='add'>+  * IO#advise no longer raises Errno::ENOSYS in cases where it was</div><div class='add'>+    detected at build time but not available at runtime.  [Feature #11806]</div><div class='add'>+</div><div class='add'>+* Kernel</div><div class='add'>+</div><div class='add'>+  * Kernel#loop, when stopped by a StopIteration exception, returns</div><div class='add'>+    what the enumerator has returned instead of nil. [Feature #11498]</div><div class='add'>+</div><div class='add'>+* Module</div><div class='add'>+  * Module#deprecate_constant [Feature #11398]</div><div class='add'>+</div><div class='add'>+* NameError</div><div class='add'>+  * NameError#receiver is added to take the receiver object. [Feature #10881]</div><div class='add'>+</div><div class='add'>+* Numeric</div><div class='add'>+</div><div class='add'>+  * Numeric#positive? and Numeric#negative? are added, which return</div><div class='add'>+    true when the receiver is positive and negative respectively. [Feature #11151]</div><div class='add'>+</div><div class='add'>+* Proc</div><div class='add'>+</div><div class='add'>+  * Proc#call (and also #[], #===, #yield) are optimized.</div><div class='add'>+    Backtrace doesn't show each method (show block lines directly).</div><div class='add'>+    TracePoint also ignores these calls. [Feature #11569]</div><div class='add'>+</div><div class='add'>+* Queue (Thread::Queue)</div><div class='add'>+</div><div class='add'>+  * Queue#close is added to notice a termination. [Feature #10600]</div><div class='add'>+</div><div class='add'>+* Regexp/String: Updated Unicode version from 7.0.0 to 8.0.0</div><div class='add'>+</div><div class='add'>+* RubyVM::InstructionSequence</div><div class='add'>+  * add the following methods as a primitive tool of iseq loader.</div><div class='add'>+    See sample/iseq_loader.rb for usage.</div><div class='add'>+    Note that loader does not have verifier so it is easy to cause</div><div class='add'>+    critical problem by loading modified/broken binary data.</div><div class='add'>+    See [Feature #11788] for more details. (experimental feature)</div><div class='add'>+    * RubyVM::InstructionSequence#to_binary(extra_data = nil)</div><div class='add'>+    * RubyVM::InstructionSequence.load_from_binary(binary)</div><div class='add'>+    * RubyVM::InstructionSequence.load_from_binary_extra_data(binary)</div><div class='add'>+</div><div class='add'>+* String</div><div class='add'>+</div><div class='add'>+  * String#+@ and String#-@ are added to get mutable/frozen strings. [Feature #11782]</div><div class='add'>+</div><div class='add'>+  * String.new now accepts new option parameter `encoding'. [Feature #11785]</div><div class='add'>+</div><div class='add'>+* Struct</div><div class='add'>+  * Struct#dig [Feature #11688]</div><div class='add'>+</div><div class='add'>+* Thread</div><div class='add'>+  * Thread#name, Thread#name= are added to handle thread names [Feature #11251]</div><div class='add'>+</div><div class='add'>+=== Core classes compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* Array</div><div class='add'>+  * Array#select!, Array#keep_if, Array#reject!, and Array#delete_if</div><div class='add'>+    no longer changes the receiver array instantly every time the</div><div class='add'>+    block is called.  [Feature #10714]</div><div class='add'>+</div><div class='add'>+  * Array#flatten and Array#flatten! no longer try to call #to_ary</div><div class='add'>+    method on elements beyond the given level.  [Bug #10748]</div><div class='add'>+</div><div class='add'>+  * Array#inspect doesn't raise error even if its content returns</div><div class='add'>+    a string which is not compatible with Encoding.default_external</div><div class='add'>+    as inspected result. [Feature #11801]</div><div class='add'>+</div><div class='add'>+* Enumerable</div><div class='add'>+  * Enumerable#chunk and Enumerable#slice_before no longer takes the</div><div class='add'>+    initial_state argument.  [Feature #10958]</div><div class='add'>+    Use a local variable instead to maintain a state.</div><div class='add'>+</div><div class='add'>+* File::Stat</div><div class='add'>+  * On Windows File::Stat#ino always returned 0, but now returns</div><div class='add'>+    BY_HANDLE_FILE_INFORMATION.nFileIndexHigh/Low.  [Feature #11216]</div><div class='add'>+</div><div class='add'>+* Hash</div><div class='add'>+  * Hash#inspect doesn't raise error even if its content returns</div><div class='add'>+    a string which is not compatible with Encoding.default_external</div><div class='add'>+    as inspected result. [Feature #11801]</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+  * IO#close doesn't raise when the IO object is closed.  [Feature #10718]</div><div class='add'>+  * IO#each_codepoint raises an exception at incomplete character</div><div class='add'>+    before EOF when conversion takes place.  [Bug #11444]</div><div class='add'>+</div><div class='add'>+* Module</div><div class='add'>+  * Module#define_method and Object.define_singleton_method now</div><div class='add'>+    require method body, Proc, Method, or a block, and raise</div><div class='add'>+    ArgumentError if no block is given directly.  [Bug #11283]</div><div class='add'>+</div><div class='add'>+* pack/unpack (Array/String)</div><div class='add'>+  * j and J directives for pointer width integer type.  [Feature #11215]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+=== Stdlib updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* Logger</div><div class='add'>+</div><div class='add'>+  * Logger#level= now supports symbol and string levels such as :debug, :info,</div><div class='add'>+    :warn, :error, :fatal (case insensitive) [Feature #11695]</div><div class='add'>+  * Logger#reopen is added to reopen a log device. [Feature #11696]</div><div class='add'>+</div><div class='add'>+* io/wait</div><div class='add'>+  * IO#wait_readable no longer checks FIONREAD, it may be used for</div><div class='add'>+    non-bytestream IO such as listen sockets.</div><div class='add'>+</div><div class='add'>+* Net::FTP</div><div class='add'>+  * Net::FTP#mlst is added.</div><div class='add'>+  * Net::FTP#mlsd is added.</div><div class='add'>+</div><div class='add'>+* nkf</div><div class='add'>+  * Merge nkf 2.1.4.</div><div class='add'>+</div><div class='add'>+* ObjectSpace (objspace)</div><div class='add'>+  * ObjectSpace.count_symbols is added.</div><div class='add'>+  * ObjectSpace.count_imemo_objects is added.</div><div class='add'>+  * ObjectSpace.internal_class_of is added.</div><div class='add'>+  * ObjectSpace.internal_super_of is added.</div><div class='add'>+</div><div class='add'>+* OpenSSL</div><div class='add'>+  * OpenSSL::SSL::SSLSocket#accept_nonblock and</div><div class='add'>+    OpenSSL::SSL::SSLSocket#connect_nonblock supports `exception: false`. [Feature #10532]</div><div class='add'>+</div><div class='add'>+* Pathname</div><div class='add'>+  * Pathname#descend and Pathname#ascend supported blockless form. [Feature #11052]</div><div class='add'>+</div><div class='add'>+* Socket</div><div class='add'>+  * Socket#connect_nonblock, Socket#accept_nonblock,</div><div class='add'>+    TCPServer#accept_nonblock, UNIXServer#accept_nonblock,</div><div class='add'>+    BasicSocket#recv_nonblock, BasicSocket#recvmsg_nonblock,</div><div class='add'>+    BasicSocket#sendmsg_nonblock all support `exception: false` to return</div><div class='add'>+    :wait_readable or :wait_writable symbols instead of raising</div><div class='add'>+    IO::WaitReadable or IO::WaitWritable exceptions [Feature #10532] [Feature #11229]</div><div class='add'>+  * BasicSocket#recv and BasicSocket#recv_nonblock allow an output</div><div class='add'>+    String buffer argument like IO#read and IO#read_nonblock to reduce</div><div class='add'>+    GC overhead [Feature #11242]</div><div class='add'>+</div><div class='add'>+* StringIO</div><div class='add'>+  * In read-only mode, StringIO#set_encoding no longer sets the encoding</div><div class='add'>+    of its buffer string.  Setting the encoding of the string directly</div><div class='add'>+    without StringIO#set_encoding may cause unpredictable behavior now. [Bug #11827]</div><div class='add'>+</div><div class='add'>+* timeout</div><div class='add'>+  * Object#timeout is now warned as deprecated when called.</div><div class='add'>+</div><div class='add'>+=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* ext/coverage/coverage.c</div><div class='add'>+  * Coverage.peek_result: new method to allow coverage to be captured without</div><div class='add'>+    stopping the coverage tool.  [Feature #10816]</div><div class='add'>+</div><div class='add'>+* Fiddle</div><div class='add'>+  * Fiddle::Function#call releases the GVL.  [Feature #11607]</div><div class='add'>+</div><div class='add'>+* io-console</div><div class='add'>+  * Update to io-console 0.4.5, and change the license to BSD 2-clause</div><div class='add'>+    "Simplified" License.</div><div class='add'>+</div><div class='add'>+* lib/base64.rb</div><div class='add'>+  * Base64.urlsafe_encode64: added a "padding" option to suppress</div><div class='add'>+    the padding character ("=").  [Feature #10740]</div><div class='add'>+  * Base64.urlsafe_decode64: now it accepts not only correctly-padded</div><div class='add'>+    input but also unpadded input.  [Feature #10740]</div><div class='add'>+</div><div class='add'>+* lib/drb/drb.rb</div><div class='add'>+  * removed unused argument. https://github.com/ruby/ruby/pull/515</div><div class='add'>+</div><div class='add'>+* lib/matrix.rb</div><div class='add'>+  * Add Vector#round. https://github.com/ruby/ruby/pull/802</div><div class='add'>+</div><div class='add'>+* lib/webrick/utils.rb</div><div class='add'>+  * removed unused argument. https://github.com/ruby/ruby/pull/356</div><div class='add'>+</div><div class='add'>+* Net::FTP</div><div class='add'>+  * Connections are in passive mode per default now.  The default mode can</div><div class='add'>+    be changed by Net::FTP.default_passive=.  [Feature #11612]</div><div class='add'>+</div><div class='add'>+* Net::HTTP</div><div class='add'>+  * default value of Net::HTTP#open_timeout is now 60 (was nil).</div><div class='add'>+</div><div class='add'>+* Net::Telnet</div><div class='add'>+  * Net::Telnet is extracted to net-telnet gem. It's unmaintain code. [Feature #11083]</div><div class='add'>+</div><div class='add'>+* Psych</div><div class='add'>+  * Updated to Psych 2.0.17</div><div class='add'>+</div><div class='add'>+* Rake</div><div class='add'>+  * Rake is removed from stdlib.  [Feature #11025]</div><div class='add'>+</div><div class='add'>+* RDoc</div><div class='add'>+  * Updated to RDoc 4.2.1.  For full release notes see:</div><div class='add'>+</div><div class='add'>+    https://github.com/rdoc/rdoc/blob/master/History.rdoc#421--2015-12-22</div><div class='add'>+</div><div class='add'>+* RubyGems</div><div class='add'>+  * Updated to RubyGems 2.5.1.  For full release notes see:</div><div class='add'>+</div><div class='add'>+    http://docs.seattlerb.org/rubygems/History_txt.html#label-2.5.0+-2F+2015-11-03</div><div class='add'>+    and</div><div class='add'>+    http://docs.seattlerb.org/rubygems/History_txt.html#label-2.5.1+-2F+2015-12-10</div><div class='add'>+</div><div class='add'>+=== Built-in global variables compatibility issues</div><div class='add'>+</div><div class='add'>+* $SAFE</div><div class='add'>+  * $SAFE=2 and $SAFE=3 are obsolete.  If $SAFE is set to 2 or larger,</div><div class='add'>+    an ArgumentError is raised.  [Feature #5455]</div><div class='add'>+</div><div class='add'>+=== C API updates</div><div class='add'>+</div><div class='add'>+* rb_define_class_id_under() now raises a TypeError exception when the</div><div class='add'>+  class is already defined but its superclass does not match the given</div><div class='add'>+  superclass, as well as definitions in ruby level.</div><div class='add'>+</div><div class='add'>+* rb_timespec_now() is added to fetch current datetime as struct timespec. [Feature #11558]</div><div class='add'>+</div><div class='add'>+* rb_time_timespec_new() is added to create a time object with epoch,</div><div class='add'>+  nanosecond, and UTC/localtime/time offset arguments.  [Feature #11558]</div><div class='add'>+</div><div class='add'>+* rb_autoload() deprecated, use rb_funcall() instead.  [Feature #11664]</div><div class='add'>+</div><div class='add'>+* rb_compile_error_with_enc(), rb_compile_error(), and rb_compile_bug()</div><div class='add'>+  deprecated.  these functions are exposed but only for internal use.</div><div class='add'>+  external libraries should not use them.</div><div class='add'>+</div><div class='add'>+=== Supported platform changes</div><div class='add'>+</div><div class='add'>+* OS/2 is no longer supported</div><div class='add'>+</div><div class='add'>+* BeOS is no longer supported</div><div class='add'>+</div><div class='add'>+* Borland-C is no longer supported</div><div class='add'>+</div><div class='add'>+* Haiku now stable and best effort</div><div class='add'>+</div><div class='add'>+=== Implementation improvements</div><div class='add'>+</div><div class='add'>+* Optimize Proc#call to eliminate method frame construction. [Feature #11569]</div><div class='add'>+</div><div class='add'>+* Reconsidering method entry data structure. [Bug #11278]</div><div class='add'>+</div><div class='add'>+* Introducing new table data structure for ID keys tables used by</div><div class='add'>+  method table and so on. New table structure is simple and fast</div><div class='add'>+  than st_table. [Feature #11420]</div><div class='add'>+</div><div class='add'>+* Machine code level tuning for object allocation and method calling</div><div class='add'>+  code. r52099, r52254</div><div class='add'>+</div><div class='add'>+* RubyVM::InstructionSequence is extended for future improvement. [Feature #11788]</div><div class='add'>+</div><div class='add'>+* Case dispatch is now optimized for all special constant literals</div><div class='add'>+  including nil, true, and false.  Previously, only literal strings,</div><div class='add'>+  symbols, integers and floats compiled to optimized case dispatch. [Feature #11769]</div><div class='add'>+</div><div class='add'>+* Instance variables on non-pure Ruby classes (T_DATA, T_FILE,</div><div class='add'>+  etc..) is less expensive to store than before. [Feature #11170]</div><div class='add'>+</div><div class='add'>+* All accesses to members of big Struct objects are performed in</div><div class='add'>+  constant-time.  Previously, Struct elements beyond the first 10</div><div class='add'>+  elements used a linear scan. [Feature #10585]</div><div class='add'>+</div><div class='add'>+* The Set class got several speed up. [Misc #10754], [r52591]</div><div class='add'>+</div><div class='add'>+* Socket and I/O-related improvements</div><div class='add'>+</div><div class='add'>+  * Calling overhead of most of new keyword-using I/O methods in</div><div class='add'>+    [Feature #11229] is reduced by avoiding the inefficient C API</div><div class='add'>+    to parse keywords.  [Feature #11339]</div><div class='add'>+</div><div class='add'>+  * The standard library is updated to use the improved</div><div class='add'>+    exception-free non-blocking I/O from [Feature #11229].</div><div class='add'>+    This has the additional benefit of quieter $DEBUG output in</div><div class='add'>+    addition to reducing expensive exceptions. [Feature #11044]</div><div class='add'>+</div><div class='add'>+  * (Linux-only) waiting on a single FD anywhere in the stdlib no longer</div><div class='add'>+    uses select(2), making it immune to slowdowns with high-numbered</div><div class='add'>+    FDs. [Feature #11081] [Feature #11377]</div><div class='add'>+</div><div class='add'>+* CGI.escapeHTML is optimized with C extension.</div><div class='add'>+  https://github.com/ruby/ruby/pull/1164</div><div class='head'>diff --git a/doc/NEWS/NEWS-2.4.0 b/doc/NEWS/NEWS-2.4.0<br/>new file mode 100644<br/>index 0000000000..8a02f03809<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-2.4.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-2.4.0</a></div><div class='hunk'>@@ -0,0 +1,399 @@</div><div class='add'>+# -*- rdoc -*-</div><div class='add'>+</div><div class='add'>+= NEWS for Ruby 2.4.0</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or</div><div class='add'>+reference information is supplied with.  For a full list of changes</div><div class='add'>+with all sufficient information, see the ChangeLog file or Redmine</div><div class='add'>+(e.g. &lt;tt&gt;https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER&lt;/tt&gt;)</div><div class='add'>+</div><div class='add'>+== Changes since the 2.3.0 release</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+* Multiple assignment in conditional expression is now allowed.  [Feature #10617]</div><div class='add'>+</div><div class='add'>+* Refinements is enabled at method by Symbol#to_proc.  [Feature #9451]</div><div class='add'>+</div><div class='add'>+* Refinements is enabled with Kernel#send and BasicObject#__send__.  [Feature #11476]</div><div class='add'>+</div><div class='add'>+* Rescue modifier now applicable to method arguments.  [Feature #12686]</div><div class='add'>+</div><div class='add'>+* Toplevel return is now allowed.  [Feature #4840]</div><div class='add'>+</div><div class='add'>+=== Core classes updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* Array</div><div class='add'>+</div><div class='add'>+  * Array#concat [Feature #12333]</div><div class='add'>+</div><div class='add'>+    Now takes multiple arguments.</div><div class='add'>+</div><div class='add'>+  * Array#max and Array#min.  [Feature #12172]</div><div class='add'>+</div><div class='add'>+    This may cause a tiny incompatibility: if you redefine</div><div class='add'>+    Enumerable#max and call max to an Array, your redefinition will be</div><div class='add'>+    now ignored.  You should also redefine Array#max.</div><div class='add'>+</div><div class='add'>+  * Array#pack [Feature #12754]</div><div class='add'>+</div><div class='add'>+    Now takes optional argument `buffer:' to reuse already allocated buffer.</div><div class='add'>+</div><div class='add'>+  * Array#sum  [Feature #12217]</div><div class='add'>+</div><div class='add'>+    This is different from Enumerable#sum in that Array#sum doesn't depend on</div><div class='add'>+    the definition of each method.</div><div class='add'>+</div><div class='add'>+* Comparable</div><div class='add'>+</div><div class='add'>+  * Comparable#clamp.  [Feature #10594]</div><div class='add'>+</div><div class='add'>+* Dir</div><div class='add'>+</div><div class='add'>+  * Dir.empty?.  [Feature #10121]</div><div class='add'>+</div><div class='add'>+* Enumerable</div><div class='add'>+</div><div class='add'>+  * Enumerable#chunk called without a block now return an Enumerator  [Feature #2172]</div><div class='add'>+  * Enumerable#sum  [Feature #12217]</div><div class='add'>+  * Enumerable#uniq  [Feature #11090]</div><div class='add'>+</div><div class='add'>+* Enumerator::Lazy</div><div class='add'>+</div><div class='add'>+  * Enumerator::Lazy#chunk_while  [GH-1186]</div><div class='add'>+  * Enumerator::Lazy#uniq  [Feature #11090]</div><div class='add'>+</div><div class='add'>+* File</div><div class='add'>+</div><div class='add'>+  * File.empty?.  [Feature #9969]</div><div class='add'>+</div><div class='add'>+* Float</div><div class='add'>+</div><div class='add'>+  * Float#ceil, Float#floor, and Float#truncate now take an optional</div><div class='add'>+    digits, as well as Float#round.  [Feature #12245]</div><div class='add'>+</div><div class='add'>+  * Float#round now takes an optional keyword argument, half option, and</div><div class='add'>+    the default behavior is round-up.  [Bug #12548] [Bug #12958]</div><div class='add'>+    half option can be one of :even, :up, and :down.  [Feature #12953]</div><div class='add'>+</div><div class='add'>+* Hash</div><div class='add'>+</div><div class='add'>+  * Hash#compact and Hash#compact!  [Feature #11818]</div><div class='add'>+  * Hash#transform_values and Hash#transform_values!  [Feature #12512]</div><div class='add'>+</div><div class='add'>+* Integer</div><div class='add'>+</div><div class='add'>+  * Fixnum and Bignum are unified into Integer  [Feature #12005]</div><div class='add'>+</div><div class='add'>+  * Integer#ceil, Integer#floor, and Integer#truncate now take an optional</div><div class='add'>+    digits, as well as Integer#round.  [Feature #12245]</div><div class='add'>+</div><div class='add'>+  * Integer#digits for extracting columns of place-value notation [Feature #12447]</div><div class='add'>+</div><div class='add'>+  * Integer#round now takes an optional keyword argument, half option, and the</div><div class='add'>+    default behavior is round-up now.  [Bug #12548] [Bug #12958]</div><div class='add'>+</div><div class='add'>+    half option can be one of :even, :up, and :down.  [Feature #12953]</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+</div><div class='add'>+  * IO#gets, IO#readline, IO#each_line, IO#readlines, IO.foreach now takes</div><div class='add'>+    an optional keyword argument, chomp flag.  [Feature #12553]</div><div class='add'>+</div><div class='add'>+* Kernel</div><div class='add'>+</div><div class='add'>+  * Kernel#clone now takes an optional keyword argument, freeze flag.  [Feature #12300]</div><div class='add'>+</div><div class='add'>+* MatchData</div><div class='add'>+</div><div class='add'>+  * MatchData#named_captures [Feature #11999]</div><div class='add'>+  * MatchData#values_at supports named captures [Feature #9179]</div><div class='add'>+</div><div class='add'>+* Module</div><div class='add'>+</div><div class='add'>+  * Module#refine accepts a module as the argument now. [Feature #12534]</div><div class='add'>+  * Module.used_modules [Feature #7418]</div><div class='add'>+</div><div class='add'>+* Numeric</div><div class='add'>+</div><div class='add'>+  * Numeric#finite?, Numeric#infinite? [Feature #12039]</div><div class='add'>+</div><div class='add'>+* Process</div><div class='add'>+</div><div class='add'>+  * Support CLOCK_MONOTONIC_RAW_APPROX, CLOCK_UPTIME_RAW, and</div><div class='add'>+    CLOCK_UPTIME_RAW_APPROX which are introduced by macOS 10.12.</div><div class='add'>+</div><div class='add'>+* Rational</div><div class='add'>+</div><div class='add'>+  * Rational#round now takes an optional keyword argument, half option, and</div><div class='add'>+    the default behavior is round-up now.  [Bug #12548] [Bug #12958]</div><div class='add'>+    half option can be one of :even, :up, and :down.  [Feature #12953]</div><div class='add'>+</div><div class='add'>+* Regexp</div><div class='add'>+</div><div class='add'>+  * meta character \X matches Unicode 9.0 characters with some workarounds</div><div class='add'>+    for UTR #51 Unicode Emoji, Version 4.0 emoji zwj sequences.</div><div class='add'>+</div><div class='add'>+  * Regexp#match? [Feature #8110]</div><div class='add'>+</div><div class='add'>+    This returns bool and doesn't save backref.</div><div class='add'>+</div><div class='add'>+  * Update to Onigmo 6.0.0.</div><div class='add'>+</div><div class='add'>+* Regexp/String: Update Unicode version from 8.0.0 to 9.0.0 [Feature #12513]</div><div class='add'>+</div><div class='add'>+* RubyVM::Env</div><div class='add'>+</div><div class='add'>+  * RubyVM::Env was removed.</div><div class='add'>+</div><div class='add'>+* String</div><div class='add'>+</div><div class='add'>+  * String#casecmp? [Feature #12786]</div><div class='add'>+</div><div class='add'>+  * String#concat, String#prepend [Feature #12333]</div><div class='add'>+</div><div class='add'>+    Now takes multiple arguments.</div><div class='add'>+</div><div class='add'>+  * String#each_line, String#lines now takes an optional keyword argument,</div><div class='add'>+    chomp flag.  [Feature #12553]</div><div class='add'>+</div><div class='add'>+  * String#match? [Feature #12898]</div><div class='add'>+</div><div class='add'>+  * String#unpack1 [Feature #12752]</div><div class='add'>+</div><div class='add'>+  * String#upcase, String#downcase, String#capitalize, String#swapcase and</div><div class='add'>+    their bang variants work for all of Unicode, and are no longer limited</div><div class='add'>+    to ASCII. Supported encodings are UTF-8, UTF-16BE/LE, UTF-32BE/LE, and</div><div class='add'>+    ISO-8859-1~16. Variations are available with options. See the documentation</div><div class='add'>+    of String#downcase for details. [Feature #10085]</div><div class='add'>+</div><div class='add'>+  * String.new(capacity: size) [Feature #12024]</div><div class='add'>+</div><div class='add'>+* StringIO</div><div class='add'>+</div><div class='add'>+  * StringIO#gets, StringIO#readline, StringIO#each_line, StringIO#readlines now takes</div><div class='add'>+    an optional keyword argument, chomp flag.  [Feature #12553]</div><div class='add'>+</div><div class='add'>+* Symbol</div><div class='add'>+</div><div class='add'>+  * Symbol#casecmp? [Feature #12786]</div><div class='add'>+</div><div class='add'>+  * Symbol#match now returns MatchData.  [Bug #11991]</div><div class='add'>+</div><div class='add'>+  * Symbol#match? [Feature #12898]</div><div class='add'>+</div><div class='add'>+  * Symbol#upcase, Symbol#downcase, Symbol#capitalize, and Symbol#swapcase now</div><div class='add'>+    work for all of Unicode. See the documentation of String#downcase</div><div class='add'>+    for details. [Feature #10085]</div><div class='add'>+</div><div class='add'>+* Thread</div><div class='add'>+</div><div class='add'>+  * Thread#report_on_exception and Thread.report_on_exception [Feature #6647]</div><div class='add'>+</div><div class='add'>+* TracePoint</div><div class='add'>+</div><div class='add'>+  * TracePoint#callee_id [Feature #12747]</div><div class='add'>+</div><div class='add'>+* Warning</div><div class='add'>+</div><div class='add'>+  * New module named Warning is introduced.  By default it has only</div><div class='add'>+    one singleton method, named warn.  This makes it possible for</div><div class='add'>+    3rd-party libraries to control the way warnings are handled. [Feature #12299]</div><div class='add'>+</div><div class='add'>+=== Stdlib updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* CGI</div><div class='add'>+</div><div class='add'>+  * Don't allow , as a separator [Bug #12791]</div><div class='add'>+</div><div class='add'>+* CSV</div><div class='add'>+</div><div class='add'>+  * Add a liberal_parsing option. [Feature #11839]</div><div class='add'>+</div><div class='add'>+* IPAddr</div><div class='add'>+</div><div class='add'>+  * IPAddr#== and IPAddr#&lt;=&gt; no longer raise an exception if coercion fails. [Bug #12799]</div><div class='add'>+</div><div class='add'>+* IRB</div><div class='add'>+</div><div class='add'>+  * Binding#irb: Start a REPL session like `binding.pry` at r56624.</div><div class='add'>+</div><div class='add'>+* Logger</div><div class='add'>+</div><div class='add'>+  * Allow specifying logger parameters in constructor such</div><div class='add'>+    as level, progname, datetime_format, formatter. [Feature #12224]</div><div class='add'>+  * Add shift_period_suffix option. [Feature #10772]</div><div class='add'>+</div><div class='add'>+* Net::HTTP</div><div class='add'>+</div><div class='add'>+  * New method: Net::HTTP.post [Feature #12375]</div><div class='add'>+</div><div class='add'>+* Net::FTP</div><div class='add'>+</div><div class='add'>+  * Support TLS (RFC 4217).</div><div class='add'>+  * Support hash style options for Net::FTP.new.</div><div class='add'>+  * Add a new optional argument pathname to Net::FTP#status.</div><div class='add'>+    Contributed by soleboxy. [GH-1478] [Feature #12965]</div><div class='add'>+</div><div class='add'>+* OpenSSL</div><div class='add'>+</div><div class='add'>+  * Includes Ruby/OpenSSL 2.0. OpenSSL has been extracted as a Gem and is</div><div class='add'>+    maintained at a separate repository now: https://github.com/ruby/openssl.</div><div class='add'>+    It still remains as a 'default gem'.  [Feature #9612]</div><div class='add'>+    Refer to ext/openssl/History.md for the full release note.</div><div class='add'>+</div><div class='add'>+* optparse</div><div class='add'>+</div><div class='add'>+  * Add an into option. [Feature #11191]</div><div class='add'>+</div><div class='add'>+* pathname</div><div class='add'>+</div><div class='add'>+  * New method: Pathname#empty? [Feature #12596]</div><div class='add'>+</div><div class='add'>+* Readline</div><div class='add'>+</div><div class='add'>+  * Readline.quoting_detection_proc and Readline.quoting_detection_proc= [Feature #12659]</div><div class='add'>+</div><div class='add'>+* REXML</div><div class='add'>+</div><div class='add'>+  * REXML::Element#[]: If String or Symbol is specified, attribute</div><div class='add'>+    value is returned. Otherwise, Nth child is returned. This is</div><div class='add'>+    backward compatible change.</div><div class='add'>+</div><div class='add'>+* set</div><div class='add'>+</div><div class='add'>+  * New methods: Set#compare_by_identity and Set#compare_by_identity?. [Feature #12210]</div><div class='add'>+</div><div class='add'>+* WEBrick</div><div class='add'>+</div><div class='add'>+  * Don't allow , as a separator [Bug #12791]</div><div class='add'>+</div><div class='add'>+=== Compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* Array#sum and Enumerable#sum are implemented.  [Feature #12217]</div><div class='add'>+</div><div class='add'>+  Ruby itself has no compatibility problem because Ruby didn't have sum method</div><div class='add'>+  for arrays before Ruby 2.4.</div><div class='add'>+  However many third party gems, activesupport, facets, simple_stats, etc,</div><div class='add'>+  defines sum method.  These implementations are mostly compatible but</div><div class='add'>+  there are subtle differences.</div><div class='add'>+  Ruby's sum method should be mostly compatible but it is impossible to</div><div class='add'>+  be perfectly compatible with all of them.</div><div class='add'>+</div><div class='add'>+* Fixnum and Bignum are unified into Integer  [Feature #12005]</div><div class='add'>+</div><div class='add'>+  Fixnum class and Bignum class is removed.</div><div class='add'>+  Integer class is changed from abstract class to concrete class.</div><div class='add'>+  For example, 0 is an instance of Integer: 0.class returns Integer.</div><div class='add'>+  The constants Fixnum and Bignum is bound to Integer.</div><div class='add'>+  So obj.kind_of?(Fixnum) works as obj.kind_of?(Integer).</div><div class='add'>+  At C-level, Fixnum object and Bignum object should be distinguished by</div><div class='add'>+  FIXNUM_P(obj) and RB_TYPE_P(obj, T_BIGNUM).</div><div class='add'>+  RUBY_INTEGER_UNIFICATION can be used to detect this feature at C-level.</div><div class='add'>+  0.class == Integer can be used to detect this feature at Ruby-level.</div><div class='add'>+  The C-level constants, rb_cFixnum and rb_cBignum, are removed.</div><div class='add'>+  They can cause compilation failure.</div><div class='add'>+</div><div class='add'>+* String/Symbol#upcase/downcase/swapcase/capitalize(!) now work for all of</div><div class='add'>+  Unicode, not only for ASCII. [Feature #10085]</div><div class='add'>+</div><div class='add'>+  No change is needed if the data is in ASCII anyway or if the limitation</div><div class='add'>+  to ASCII was only tolerated while waiting for a more extensive implementation.</div><div class='add'>+  A change (using the :ascii option) is needed in cases where Unicode data</div><div class='add'>+  is processed, but the operation has to be limited to ASCII only.</div><div class='add'>+  A good example of this are internationalized domain names.</div><div class='add'>+</div><div class='add'>+* TRUE / FALSE / NIL</div><div class='add'>+</div><div class='add'>+  These constants are now obsoleted. [Feature #12574]</div><div class='add'>+  Use true / false / nil resp. instead.</div><div class='add'>+</div><div class='add'>+=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* DateTime</div><div class='add'>+</div><div class='add'>+  * DateTime#to_time now preserves timezone.  [Bug #12189]</div><div class='add'>+</div><div class='add'>+* Psych</div><div class='add'>+</div><div class='add'>+  * Update to Psych 2.2.2</div><div class='add'>+</div><div class='add'>+* RDoc</div><div class='add'>+</div><div class='add'>+  * Update to RDoc 5.0.0</div><div class='add'>+</div><div class='add'>+* RubyGems</div><div class='add'>+</div><div class='add'>+  * Update to RubyGems 2.6.8</div><div class='add'>+</div><div class='add'>+* shellwords</div><div class='add'>+</div><div class='add'>+  * Shellwords.shellwords (shellsplit) treats the backslash as escape</div><div class='add'>+    character only when followed by one of the following characters:</div><div class='add'>+    $ ` " \ &lt;newline&gt; [Bug #10055]</div><div class='add'>+</div><div class='add'>+* Time</div><div class='add'>+</div><div class='add'>+  * Time#to_time now preserves timezone.  [Bug #12271]</div><div class='add'>+</div><div class='add'>+* thread</div><div class='add'>+</div><div class='add'>+  * the extension library is removed.  Till 2.0 it was a pure ruby script</div><div class='add'>+    "thread.rb", which has precedence over "thread.so", and has been provided</div><div class='add'>+    in $LOADED_FEATURES since 2.1.</div><div class='add'>+</div><div class='add'>+* Tk</div><div class='add'>+</div><div class='add'>+  * Tk is removed from stdlib.  [Feature #8539]</div><div class='add'>+</div><div class='add'>+    https://github.com/ruby/tk is the new upstream.</div><div class='add'>+</div><div class='add'>+* XMLRPC</div><div class='add'>+</div><div class='add'>+  * XMLRPC is removed from stdlib, and bundled as gem. [Feature #12160][ruby-core:74239]</div><div class='add'>+</div><div class='add'>+    https://github.com/ruby/xmlrpc is the new upstream.</div><div class='add'>+</div><div class='add'>+* Zlib</div><div class='add'>+</div><div class='add'>+  * Zlib.gzip and Zlib.gunzip [Feature #13020]</div><div class='add'>+</div><div class='add'>+=== C API updates</div><div class='add'>+</div><div class='add'>+* ruby_show_version() will no longer exits the process, if</div><div class='add'>+  RUBY_SHOW_COPYRIGHT_TO_DIE is set to 0.  This will be the default in</div><div class='add'>+  the future.</div><div class='add'>+</div><div class='add'>+* rb_gc_adjust_memory_usage() [Feature #12690]</div><div class='add'>+</div><div class='add'>+=== Supported platform changes</div><div class='add'>+</div><div class='add'>+* FreeBSD &lt; 4 is no longer supported</div><div class='add'>+</div><div class='add'>+=== Implementation improvements</div><div class='add'>+</div><div class='add'>+* In some condition, `[x, y].max` and `[x, y].min` are optimized</div><div class='add'>+  so that a temporal array is not created.  The concrete condition is</div><div class='add'>+  an implementation detail: currently, the array literal must have no</div><div class='add'>+  splat, must have at least one expression but literal, the length must</div><div class='add'>+  be &lt;= 0x100, and Array#max and min must not be redefined.  It will work</div><div class='add'>+  in most casual and real-life use case where it is written with intent</div><div class='add'>+  to `Math.max(x, y)`.</div><div class='add'>+</div><div class='add'>+* Thread deadlock detection now shows their backtrace and dependency. [Feature #8214]</div><div class='add'>+</div><div class='add'>+* st_table (st.c) internal data structure is improved. [Feature #12142]</div><div class='add'>+</div><div class='add'>+* Rational is extensively optimized. [Feature #12484]</div><div class='add'>+</div><div class='add'>+=== Miscellaneous changes</div><div class='add'>+</div><div class='add'>+* ChangeLog is removed from the repository.</div><div class='add'>+</div><div class='add'>+  It is generated from commit messages in Subversion by `make dist`.</div><div class='add'>+  Also note that now people should follow Git style commit message.</div><div class='add'>+  The template is written at {Short (50 chars or less) summary of</div><div class='add'>+  changes}[https://git-scm.com/book/ch5-2.html].  [Feature #12283]</div><div class='head'>diff --git a/doc/NEWS/NEWS-2.5.0 b/doc/NEWS/NEWS-2.5.0<br/>new file mode 100644<br/>index 0000000000..af7f3ada01<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-2.5.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-2.5.0</a></div><div class='hunk'>@@ -0,0 +1,565 @@</div><div class='add'>+# -*- rdoc -*-</div><div class='add'>+</div><div class='add'>+= NEWS for Ruby 2.5.0</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or</div><div class='add'>+reference information is supplied with.  For a full list of changes</div><div class='add'>+with all sufficient information, see the ChangeLog file or Redmine</div><div class='add'>+(e.g. &lt;tt&gt;https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER&lt;/tt&gt;)</div><div class='add'>+</div><div class='add'>+== Changes since the 2.4.0 release</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+* Top-level constant look-up is removed.  [Feature #11547]</div><div class='add'>+</div><div class='add'>+* rescue/else/ensure are allowed inside do/end blocks.  [Feature #12906]</div><div class='add'>+</div><div class='add'>+* refinements take place in string interpolations.  [Feature #13812]</div><div class='add'>+</div><div class='add'>+=== Core classes updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* Array</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Array#append  [Feature #12746]</div><div class='add'>+    * Array#prepend  [Feature #12746]</div><div class='add'>+</div><div class='add'>+* Data</div><div class='add'>+</div><div class='add'>+  * Is deprecated. It was a base class for C extensions, and it's not</div><div class='add'>+    necessary to expose in Ruby level. [Feature #3072]</div><div class='add'>+</div><div class='add'>+* Exception</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Exception#full_message to retrieve a String expression of an exception,</div><div class='add'>+      formatted in the same way in which Ruby prints out an uncaught</div><div class='add'>+      exception.  [Feature #14141] [experimental]</div><div class='add'>+</div><div class='add'>+* Dir</div><div class='add'>+</div><div class='add'>+  * Dir.glob provides new optional keyword argument, +:base+ .  [Feature #13056]</div><div class='add'>+  * Dir.chdir (without block arg), Dir.open, Dir.new, Dir.mkdir, Dir.rmdir,</div><div class='add'>+    Dir.empty? releases GVL</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Dir.children  [Feature #11302]</div><div class='add'>+    * Dir.each_child  [Feature #11302]</div><div class='add'>+</div><div class='add'>+* Enumerable</div><div class='add'>+</div><div class='add'>+  * Enumerable#any?, Enumerable#all?, Enumerable#none? and Enumerable#one?</div><div class='add'>+    accept a pattern argument. [Feature #11286]</div><div class='add'>+</div><div class='add'>+* File</div><div class='add'>+</div><div class='add'>+  * File.open accepts +:newline+ option to imply text mode. [Bug #13350]</div><div class='add'>+  * File#path raises an IOError for files opened with</div><div class='add'>+    File::Constants::TMPFILE option. [Feature #13568]</div><div class='add'>+  * File.stat, File.exist? and other &lt;code&gt;rb_stat()&lt;/code&gt;-using methods</div><div class='add'>+    release GVL. [Bug #13941]</div><div class='add'>+  * File.rename releases GVL. [Feature #13951]</div><div class='add'>+  * File::Stat#atime, File::Stat#mtime and File::Stat#ctime support fractional</div><div class='add'>+    second timestamps on Windows 8 and later.  [Feature #13726]</div><div class='add'>+  * File::Stat#ino and File.identical? support ReFS 128bit ino on Windows 8.1</div><div class='add'>+    and later.  [Feature #13731]</div><div class='add'>+  * File.readable?, File.readable_real?, File.writable?, File.writable_real?,</div><div class='add'>+    File.executable?, File.executable_real?, File.mkfifo, File.readlink,</div><div class='add'>+    File.truncate, File#truncate, File.chmod, File.lchmod, File.chown,</div><div class='add'>+    File.lchown, File.unlink, File.utime, File.lstat release GVL</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * File.lutime  [Feature #4052]</div><div class='add'>+</div><div class='add'>+* Hash</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Hash#transform_keys  [Feature #13583]</div><div class='add'>+    * Hash#transform_keys!  [Feature #13583]</div><div class='add'>+    * Hash#slice  [Feature #8499]</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+</div><div class='add'>+  * IO.copy_stream tries copy offload with copy_file_range(2) [Feature #13867]</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * IO#pread  [Feature #4532]</div><div class='add'>+    * IO#pwrite  [Feature #4532]</div><div class='add'>+    * IO#write accepts multiple arguments  [Feature #9323]</div><div class='add'>+</div><div class='add'>+* IOError</div><div class='add'>+</div><div class='add'>+  * IO#close might raise an error with message "stream closed",</div><div class='add'>+    but it is refined to "stream closed in another thread". The new message</div><div class='add'>+    is more clear for user. [Bug #13405]</div><div class='add'>+</div><div class='add'>+* Integer</div><div class='add'>+</div><div class='add'>+  * Integer#round, Integer#floor, Integer#ceil and Integer#truncate always</div><div class='add'>+    return an Integer. [Bug #13420]</div><div class='add'>+  * Integer#pow accepts modulo argument for calculating modular</div><div class='add'>+    exponentiation.  [Feature #12508] [Feature #11003]</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Integer#allbits?, Integer#anybits?, Integer#nobits? [Feature #12753]</div><div class='add'>+    * Integer.sqrt  [Feature #13219]</div><div class='add'>+</div><div class='add'>+* Kernel</div><div class='add'>+</div><div class='add'>+  * Kernel#yield_self   [Feature #6721]</div><div class='add'>+  * Kernel#pp  [Feature #14123]</div><div class='add'>+  * Kernel#warn(..., uplevel:n)  [Feature #12882]</div><div class='add'>+</div><div class='add'>+* Method</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Method#=== that invokes Method#call, as same as Proc#=== [Feature #14142]</div><div class='add'>+</div><div class='add'>+* Module</div><div class='add'>+</div><div class='add'>+  * Module#attr, Module#attr_accessor, Module#attr_reader and Module#attr_writer</div><div class='add'>+    become public. [Feature #14132]</div><div class='add'>+  * Module#define_method, Module#alias_method, Module#undef_method and</div><div class='add'>+    Module#remove_method become public. [Feature #14133]</div><div class='add'>+</div><div class='add'>+* Numeric</div><div class='add'>+</div><div class='add'>+  * Numeric#step no longer hides errors from coerce method when</div><div class='add'>+    given a step value which cannot be compared with #&gt; to 0. [Feature #7688]</div><div class='add'>+  * Numerical comparison operators (&lt;,&lt;=,&gt;=,&gt;) no longer hide exceptions</div><div class='add'>+    from #coerce method internally. Return nil in #coerce if the coercion is</div><div class='add'>+    impossible.  [Feature #7688]</div><div class='add'>+</div><div class='add'>+* Process</div><div class='add'>+</div><div class='add'>+  * Precision of Process.times is improved if getrusage(2) exists. [Feature #11952]</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * Process.last_status as an alias of $? [Feature #14043]</div><div class='add'>+</div><div class='add'>+* Range</div><div class='add'>+  * Range#initialize no longer hides exceptions when comparing begin and</div><div class='add'>+    end with #&lt;=&gt; and raise a "bad value for range" ArgumentError</div><div class='add'>+    but instead lets the exception from the #&lt;=&gt; call go through. [Feature #7688]</div><div class='add'>+</div><div class='add'>+* Regexp</div><div class='add'>+</div><div class='add'>+  * Update to Onigmo 6.1.3-669ac9997619954c298da971fcfacccf36909d05.</div><div class='add'>+</div><div class='add'>+    * Support absence operator https://github.com/k-takata/Onigmo/issues/82</div><div class='add'>+</div><div class='add'>+  * Support new 5 emoji-related Unicode character properties</div><div class='add'>+</div><div class='add'>+* RubyVM::InstructionSequence</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * RubyVM::InstructionSequence#each_child</div><div class='add'>+    * RubyVM::InstructionSequence#trace_points</div><div class='add'>+</div><div class='add'>+* String</div><div class='add'>+</div><div class='add'>+  * &lt;code&gt;String#-@&lt;/code&gt; deduplicates unfrozen strings.  Already-frozen</div><div class='add'>+    strings remain unchanged for compatibility.  [Feature #13077]</div><div class='add'>+  * &lt;code&gt;-"literal"&lt;/code&gt; (&lt;code&gt;String#-@&lt;/code&gt;) optimized to return the same object</div><div class='add'>+    (same as &lt;code&gt;"literal".freeze&lt;/code&gt; in Ruby 2.1+) [Feature #13295]</div><div class='add'>+  * String#casecmp and String#casecmp? return nil for non-string arguments</div><div class='add'>+    instead of raising a TypeError. [Bug #13312]</div><div class='add'>+  * String#start_with? accepts a regexp [Feature #13712]</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * String#delete_prefix, String#delete_prefix! [Feature #12694]</div><div class='add'>+    * String#delete_suffix, String#delete_suffix! [Feature #13665]</div><div class='add'>+    * String#each_grapheme_cluster and String#grapheme_clusters to</div><div class='add'>+      enumerate grapheme clusters [Feature #13780]</div><div class='add'>+    * String#undump to unescape String#dump'ed string [Feature #12275]</div><div class='add'>+</div><div class='add'>+* Struct</div><div class='add'>+</div><div class='add'>+  * Struct.new takes `keyword_init: true` option to initialize members</div><div class='add'>+    with keyword arguments. [Feature #11925]</div><div class='add'>+</div><div class='add'>+* Regexp/String: Update Unicode version from 9.0.0 to 10.0.0 [Feature #13685]</div><div class='add'>+</div><div class='add'>+* Thread</div><div class='add'>+</div><div class='add'>+  * Description set by Thread#name= is now visible on Windows 10.</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+    * Thread#fetch  [Feature #13009]</div><div class='add'>+</div><div class='add'>+  * The default of Thread.report_on_exception is now true,</div><div class='add'>+    showing unhandled exceptions terminating threads on $stderr. [Feature #14143]</div><div class='add'>+</div><div class='add'>+* Time</div><div class='add'>+</div><div class='add'>+  * Time.at receives 3rd argument which specifies the unit of 2nd argument. [Feature #13919]</div><div class='add'>+</div><div class='add'>+* KeyError</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * KeyError#receiver [Feature #12063]</div><div class='add'>+    * KeyError#key      [Feature #12063]</div><div class='add'>+</div><div class='add'>+* FrozenError</div><div class='add'>+</div><div class='add'>+  * New exception class. [Feature #13224]</div><div class='add'>+</div><div class='add'>+=== Stdlib updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* BigDecimal</div><div class='add'>+</div><div class='add'>+  * Update to BigDecimal 1.3.4</div><div class='add'>+</div><div class='add'>+  * The following features are added:</div><div class='add'>+</div><div class='add'>+    * BigDecimal::VERSION</div><div class='add'>+</div><div class='add'>+  * The following features have been deprecated,</div><div class='add'>+    and are planned to be removed in the version 1.4.0:</div><div class='add'>+</div><div class='add'>+    * BigDecimal.new</div><div class='add'>+</div><div class='add'>+    * BigDecimal.ver</div><div class='add'>+</div><div class='add'>+  * BigDecimal#clone and #dup now do not make a new instance,</div><div class='add'>+    but returns the receiver itself.</div><div class='add'>+</div><div class='add'>+* Coverage</div><div class='add'>+</div><div class='add'>+  * Support branch coverage and method coverage measurement. [Feature #13901]</div><div class='add'>+    Branch coverage tells you which branches are executed, and which not.</div><div class='add'>+    Method coverage tells you which methods are invoked, and which not.</div><div class='add'>+    By running a test suite with this new feature, you can know which branches</div><div class='add'>+    and methods are executed by a test, and evaluate total coverage of a test</div><div class='add'>+    suite more strictly.</div><div class='add'>+</div><div class='add'>+    You can specify the measuring target by an option to `Coverage.start`:</div><div class='add'>+</div><div class='add'>+        Coverage.start(lines: true, branches: true, methods: true)</div><div class='add'>+</div><div class='add'>+    After some Ruby files are loaded, you can use `Coverage.result` to get</div><div class='add'>+    the coverage result:</div><div class='add'>+</div><div class='add'>+        Coverage.result</div><div class='add'>+        #=&gt; { "/path/to/file.rb"=&gt;</div><div class='add'>+        #     { :lines =&gt; [1, 2, 0, nil, ...],</div><div class='add'>+        #       :branches =&gt;</div><div class='add'>+        #         { [:if, 0, 2, 1, 6, 4] =&gt;</div><div class='add'>+        #             { [:then, 1, 3, 2, 3, 8] =&gt; 0,</div><div class='add'>+        #               [:else, 2, 5, 2, 5, 8] =&gt; 2</div><div class='add'>+        #             }</div><div class='add'>+        #         },</div><div class='add'>+        #       :methods =&gt; {</div><div class='add'>+        #          [Object, :foo, 1, 0, 7, 3] =&gt; 2</div><div class='add'>+        #       }</div><div class='add'>+        #     }</div><div class='add'>+        #   }</div><div class='add'>+</div><div class='add'>+    The result type of line coverage is not changed; it is just an array that</div><div class='add'>+    contains numbers, which means the count that each line was executed,</div><div class='add'>+    or `nil`s, which means that the line is not relevant.</div><div class='add'>+</div><div class='add'>+    The result type of branch coverage is:</div><div class='add'>+</div><div class='add'>+        { (jump base) =&gt; { (jump target) =&gt; (counter) } }</div><div class='add'>+</div><div class='add'>+    where jump base and targets have the format</div><div class='add'>+</div><div class='add'>+        [type, unique-id, start lineno, start column, end lineno, end column]</div><div class='add'>+</div><div class='add'>+    For example, `[:if, 0, 2, 1, 6, 4]` reads an `if` statement that ranges from</div><div class='add'>+    line 2 and column 1, to line 6 and column 4.  `[:then, 1, 3, 2, 3, 8]` reads</div><div class='add'>+    a `then` clause that ranges from line 3 and column 2, to line 3 and column 8.</div><div class='add'>+    Note that lineno starts from 1, and that columnno starts from 0.  So, the</div><div class='add'>+    above example shows a branch from the `if` to the `then` was never executed,</div><div class='add'>+    and a branch from the `if` to the `else` was executed twice.</div><div class='add'>+</div><div class='add'>+    The result type of method coverage is:</div><div class='add'>+</div><div class='add'>+        { (method key) =&gt; (counter) }</div><div class='add'>+</div><div class='add'>+    where method key has the format</div><div class='add'>+</div><div class='add'>+        [class, method-name, start lineno, start column, end lineno, end column]</div><div class='add'>+</div><div class='add'>+    For example, `[Object, :foo, 1, 0, 7, 3]` reads `Object#foo` that ranges from</div><div class='add'>+    line 1 and column 0, to line 7 and column 3.  The above example shows this</div><div class='add'>+    `Object#foo` was invoked twice.</div><div class='add'>+</div><div class='add'>+    Note: To keep compatibility, passing no option to `Coverage.start` will measure</div><div class='add'>+    only line coverage, and `Coverage.result` will return the old format:</div><div class='add'>+</div><div class='add'>+        Coverage.result</div><div class='add'>+        #=&gt; { "/path/to/file.rb"=&gt; [1, 2, 0, nil, ...] }</div><div class='add'>+</div><div class='add'>+* DRb</div><div class='add'>+</div><div class='add'>+  * ACL::ACLEntry.new no longer suppresses IPAddr::InvalidPrefixError.</div><div class='add'>+</div><div class='add'>+* ERB</div><div class='add'>+</div><div class='add'>+  * Add ERB#result_with_hash to render a template with local variables passed</div><div class='add'>+    with a Hash object. [Feature #8631]</div><div class='add'>+</div><div class='add'>+  * Default template file encoding is changed from ASCII-8BIT to UTF-8 in erb</div><div class='add'>+    command. [Bug #14095]</div><div class='add'>+</div><div class='add'>+  * Carriage returns are changed to be trimmed properly if trim_mode is specified</div><div class='add'>+    and used. Duplicated newlines will be removed on Windows. [Bug #5339] [Bug #11464]</div><div class='add'>+</div><div class='add'>+* IPAddr</div><div class='add'>+</div><div class='add'>+  * IPAddr no longer accepts invalid address mask. [Bug #13399]</div><div class='add'>+  * IPAddr#ipv4_compat and IPAddr#ipv4_compat? are marked for deprecation. [Bug #13769]</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * IPAddr#prefix</div><div class='add'>+    * IPAddr#loopback?</div><div class='add'>+    * IPAddr#private? [Feature #11666]</div><div class='add'>+    * IPAddr#link_local? [Feature #10912]</div><div class='add'>+</div><div class='add'>+* IRB</div><div class='add'>+</div><div class='add'>+  * Print backtrace and error message in reverse order [Feature #8661] [experimental]</div><div class='add'>+  * `binding.irb` automatically requires irb and runs [Bug #13099] [experimental]</div><div class='add'>+  * `binding.irb` on its start shows source around the line where it was called [Feature #14124]</div><div class='add'>+</div><div class='add'>+* Matrix</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Matrix.combine and Matrix#combine [Feature #10903]</div><div class='add'>+    * Matrix#hadamard_product and Matrix#entrywise_product</div><div class='add'>+</div><div class='add'>+* Net::HTTP</div><div class='add'>+</div><div class='add'>+  * Net::HTTP.new supports no_proxy parameter [Feature #11195]</div><div class='add'>+  * Net::HTTP#min_version and Net::HTTP#max_version [Feature #9450]</div><div class='add'>+  * Add more HTTP status classes</div><div class='add'>+  * Net::HTTP::STATUS_CODES is added as HTTP Status Code Repository [Misc #12935]</div><div class='add'>+  * Net::HTTP#proxy_user and Net::HTTP#proxy_pass reflect http_proxy environment</div><div class='add'>+    variable if the system's environment variable is multiuser safe. [Bug #12921]</div><div class='add'>+</div><div class='add'>+* open-uri</div><div class='add'>+  * URI.open method defined as an alias to open-uri's Kernel.open.</div><div class='add'>+    open-uri's Kernel.open will be deprecated in future.</div><div class='add'>+</div><div class='add'>+* OpenSSL</div><div class='add'>+</div><div class='add'>+  * Updated Ruby/OpenSSL from version 2.0 to 2.1. Changes are noted in</div><div class='add'>+    "Version 2.1.0" section in ext/openssl/History.md.</div><div class='add'>+</div><div class='add'>+* Pathname</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * Pathname#glob [Feature #7360]</div><div class='add'>+</div><div class='add'>+* Psych</div><div class='add'>+</div><div class='add'>+  * Update to Psych 3.0.2.</div><div class='add'>+</div><div class='add'>+    * Convert fallback option to a keyword argument</div><div class='add'>+      https://github.com/ruby/psych/pull/342</div><div class='add'>+    * Add :symbolize_names option to Psych.load, Psych.safe_load like JSON.parse</div><div class='add'>+      https://github.com/ruby/psych/pull/333, https://github.com/ruby/psych/pull/337</div><div class='add'>+    * Add Psych::Handler#event_location</div><div class='add'>+      https://github.com/ruby/psych/pull/326</div><div class='add'>+    * Make frozen string literal = true</div><div class='add'>+      https://github.com/ruby/psych/pull/320</div><div class='add'>+    * Preserve time zone offset when deserializing times</div><div class='add'>+      https://github.com/ruby/psych/pull/316</div><div class='add'>+    * Remove deprecated method aliases for syck gem</div><div class='add'>+      https://github.com/ruby/psych/pull/312</div><div class='add'>+</div><div class='add'>+* RbConfig</div><div class='add'>+</div><div class='add'>+  * RbConfig::LIMITS is added to provide the limits of C types.</div><div class='add'>+    This is available when rbconfig/sizeof is loaded.</div><div class='add'>+</div><div class='add'>+* Ripper</div><div class='add'>+</div><div class='add'>+  * Ripper::EXPR_BEG and so on for Ripper#state.</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * Ripper#state to tell the state of scanner. [Feature #13686]</div><div class='add'>+</div><div class='add'>+* RDoc</div><div class='add'>+</div><div class='add'>+  * Update to RDoc 6.0.1.</div><div class='add'>+</div><div class='add'>+    * Replace IRB based lexer with Ripper.</div><div class='add'>+      * https://github.com/ruby/rdoc/pull/512</div><div class='add'>+      * This much improves the speed of generating documents.</div><div class='add'>+      * It also facilitates supporting new syntax in the future.</div><div class='add'>+    * Support many new syntaxes of Ruby from the past few years.</div><div class='add'>+    * Use "frozen_string_literal: true".</div><div class='add'>+      Performance survey: https://gist.github.com/aycabta/abdfaa75ea8a6877eeb734e942e73800</div><div class='add'>+    * Support did_you_mean.</div><div class='add'>+</div><div class='add'>+* Rubygems</div><div class='add'>+</div><div class='add'>+  * Update to Rubygems 2.7.3.</div><div class='add'>+    * http://blog.rubygems.org/2017/11/28/2.7.3-released.html</div><div class='add'>+    * http://blog.rubygems.org/2017/11/08/2.7.2-released.html</div><div class='add'>+    * http://blog.rubygems.org/2017/11/03/2.7.1-released.html</div><div class='add'>+    * http://blog.rubygems.org/2017/11/01/2.7.0-released.html</div><div class='add'>+    * http://blog.rubygems.org/2017/10/09/2.6.14-released.html</div><div class='add'>+    * http://blog.rubygems.org/2017/08/27/2.6.13-released.html</div><div class='add'>+</div><div class='add'>+* SecureRandom</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * SecureRandom.alphanumeric</div><div class='add'>+</div><div class='add'>+* Set</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * Set#to_s as alias to #inspect [Feature #13676]</div><div class='add'>+    * Set#=== as alias to #include? [Feature #13801]</div><div class='add'>+    * Set#reset [Feature #6589]</div><div class='add'>+</div><div class='add'>+* StringIO</div><div class='add'>+</div><div class='add'>+  * StringIO#write accepts multiple arguments</div><div class='add'>+</div><div class='add'>+* StringScanner</div><div class='add'>+</div><div class='add'>+  * New methods:</div><div class='add'>+</div><div class='add'>+    * StringScanner#size, StringScanner#captures, StringScanner#values_at  [Feature #836]</div><div class='add'>+</div><div class='add'>+* URI</div><div class='add'>+</div><div class='add'>+  * Relative path operations no longer collapse consecutive slashes to a single slash. [Bug #8352]</div><div class='add'>+</div><div class='add'>+* WEBrick</div><div class='add'>+</div><div class='add'>+  * Add Server Name Indication (SNI) support [Feature #13729]</div><div class='add'>+  * support Proc objects as body responses [Feature #855]</div><div class='add'>+  * released as a RubyGem [Feature #13173]</div><div class='add'>+  * avoid unintended behavior from Kernel#open [Misc #14216]</div><div class='add'>+</div><div class='add'>+* Zlib</div><div class='add'>+</div><div class='add'>+  * Zlib::GzipWriter#write accepts multiple arguments</div><div class='add'>+</div><div class='add'>+=== Compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* BasicSocket</div><div class='add'>+</div><div class='add'>+  * BasicSocket#read_nonblock and BasicSocket#write_nonblock no</div><div class='add'>+    longer set the O_NONBLOCK file description flag as side effect</div><div class='add'>+    (on Linux only) [Feature #13362]</div><div class='add'>+</div><div class='add'>+* Random</div><div class='add'>+</div><div class='add'>+  * Random.raw_seed renamed to become Random.urandom.  It is now</div><div class='add'>+    applicable to non-seeding purposes due to [Bug #9569].</div><div class='add'>+</div><div class='add'>+* Socket</div><div class='add'>+</div><div class='add'>+  * Socket::Ifaddr#vhid is added [Feature #13803]</div><div class='add'>+</div><div class='add'>+* ConditionVariable, Queue and SizedQueue reimplemented for speed.</div><div class='add'>+  They no longer subclass Struct. [Feature #13552]</div><div class='add'>+</div><div class='add'>+=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* Gemification</div><div class='add'>+</div><div class='add'>+  * Promote following standard libraries to default gems.</div><div class='add'>+    * cmath</div><div class='add'>+    * csv</div><div class='add'>+    * date</div><div class='add'>+    * dbm</div><div class='add'>+    * etc</div><div class='add'>+    * fcntl</div><div class='add'>+    * fiddle</div><div class='add'>+    * fileutils</div><div class='add'>+    * gdbm</div><div class='add'>+    * ipaddr</div><div class='add'>+    * scanf</div><div class='add'>+    * sdbm</div><div class='add'>+    * stringio</div><div class='add'>+    * strscan</div><div class='add'>+    * webrick</div><div class='add'>+    * zlib</div><div class='add'>+</div><div class='add'>+* Logger</div><div class='add'>+</div><div class='add'>+  * Logger.new("| command") had been working to open a command</div><div class='add'>+    unintentionally. It was prohibited, and now Logger#initialize</div><div class='add'>+    treats a String argument only as a filename, as its specification. [Bug #14212]</div><div class='add'>+</div><div class='add'>+* Net::HTTP</div><div class='add'>+</div><div class='add'>+  * Net::HTTP#start now passes :ENV to p_addr by default. [Bug #13351]</div><div class='add'>+    To avoid this, pass nil explicitly.</div><div class='add'>+</div><div class='add'>+* mathn.rb</div><div class='add'>+</div><div class='add'>+  * Removed from stdlib. [Feature #10169]</div><div class='add'>+</div><div class='add'>+* Rubygems</div><div class='add'>+</div><div class='add'>+  * Removed "ubygems.rb" file from stdlib. It's needless since Ruby 1.9.</div><div class='add'>+</div><div class='add'>+=== Supported platform changes</div><div class='add'>+</div><div class='add'>+* Drop support of NaCl platform</div><div class='add'>+</div><div class='add'>+  * https://bugs.chromium.org/p/chromium/issues/detail?id=239656#c160</div><div class='add'>+</div><div class='add'>+=== Implementation improvements</div><div class='add'>+</div><div class='add'>+* (This might not be a "user visible feature change" but) Hash class's</div><div class='add'>+  hash function is now SipHash13. [Feature #13017]</div><div class='add'>+</div><div class='add'>+* SecureRandom now prefers OS-provided sources than OpenSSL. [Bug #9569]</div><div class='add'>+</div><div class='add'>+* Mutex rewritten to be smaller and faster [Feature #13517]</div><div class='add'>+</div><div class='add'>+* Performance of block passing using block parameters is improved by</div><div class='add'>+  lazy Proc allocation [Feature #14045]</div><div class='add'>+</div><div class='add'>+* Dynamic instrumentation for TracePoint hooks instead of using "trace"</div><div class='add'>+  instruction to avoid overhead [Feature #14104]</div><div class='add'>+</div><div class='add'>+* ERB now generates code from a template twice as fast as Ruby 2.4</div><div class='add'>+</div><div class='add'>+=== Miscellaneous changes</div><div class='add'>+</div><div class='add'>+* Print backtrace and error message in reverse order if $stderr is unchanged</div><div class='add'>+  and a tty. [Feature #8661] [experimental]</div><div class='add'>+</div><div class='add'>+* Print error message in bold/underlined text if $stderr is unchanged and a</div><div class='add'>+  tty. [Feature #14140] [experimental]</div><div class='add'>+</div><div class='add'>+* configure option --with-ext now mandates its arguments.  So for</div><div class='add'>+  instance if you run ./configure --with-ext=openssl,+ then the</div><div class='add'>+  openssl library is guaranteed compiled, otherwise the build fails</div><div class='add'>+  abnormally.</div><div class='add'>+</div><div class='add'>+  Note however to always add the ",+" at the end of the argument.</div><div class='add'>+  Otherwise nothing but openssl are built.  [Feature #13302]</div><div class='head'>diff --git a/doc/NEWS/NEWS-2.6.0 b/doc/NEWS/NEWS-2.6.0<br/>new file mode 100644<br/>index 0000000000..6e70696de2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-2.6.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-2.6.0</a></div><div class='hunk'>@@ -0,0 +1,662 @@</div><div class='add'>+# -*- rdoc -*-</div><div class='add'>+</div><div class='add'>+= NEWS for Ruby 2.6.0</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or reference</div><div class='add'>+information is supplied with.  For a full list of changes with all</div><div class='add'>+sufficient information, see the ChangeLog file or Redmine</div><div class='add'>+(e.g. &lt;tt&gt;https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER&lt;/tt&gt;)</div><div class='add'>+</div><div class='add'>+== Changes since the 2.5.0 release</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+* &lt;code&gt;$SAFE&lt;/code&gt; now is a process global state and can be set to 0 again. [Feature #14250]</div><div class='add'>+</div><div class='add'>+* Refinements take place at block passing.  [Feature #14223]</div><div class='add'>+</div><div class='add'>+* Refinements take place at Kernel#public_send.  [Feature #15326]</div><div class='add'>+</div><div class='add'>+* Refinements take place at Kernel#respond_to?.  [Feature #15327]</div><div class='add'>+</div><div class='add'>+* +else+ without +rescue+ now causes a syntax error.  [EXPERIMENTAL] [Feature #14606]</div><div class='add'>+</div><div class='add'>+* Constant names may start with a non-ASCII capital letter. [Feature #13770]</div><div class='add'>+</div><div class='add'>+* Endless ranges are introduced.  You can use a Range that has no end,</div><div class='add'>+  like &lt;code&gt;(0..)&lt;/code&gt; (or similarly &lt;code&gt;(0...)&lt;/code&gt;).  [Feature #12912]</div><div class='add'>+</div><div class='add'>+  The following shows typical use cases:</div><div class='add'>+</div><div class='add'>+    ary[1..]                              # identical to ary[1..-1]</div><div class='add'>+    (1...).each {|index| block }          # infinite loop from index 1</div><div class='add'>+    ary.zip(1..) {|elem, index| block }   # ary.each.with_index(1) { }</div><div class='add'>+</div><div class='add'>+* Non-Symbol keys in a keyword arguments hash cause an exception.</div><div class='add'>+</div><div class='add'>+* The "shadowing outer local variable" warning is removed.  [Feature #12490]</div><div class='add'>+</div><div class='add'>+  You can now write the following without warning:</div><div class='add'>+</div><div class='add'>+    user = users.find {|user| cond(user) }</div><div class='add'>+</div><div class='add'>+* Print +cause+ of the exception if the exception is not caught and printed</div><div class='add'>+  its backtraces and error message. [Feature #8257]</div><div class='add'>+</div><div class='add'>+* The flip-flop syntax is deprecated. [Feature #5400]</div><div class='add'>+</div><div class='add'>+=== Core classes updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+[Array]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Added Array#union and Array#difference instance methods.  [Feature #14097]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * Array#to_h now accepts a block that maps elements to new key/value pairs.  [Feature #15143]</div><div class='add'>+</div><div class='add'>+  [Aliased methods]</div><div class='add'>+</div><div class='add'>+    * Array#filter is a new alias for Array#select. [Feature #13784]</div><div class='add'>+    * Array#filter! is a new alias for Array#select!. [Feature #13784]</div><div class='add'>+</div><div class='add'>+[Binding]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added Binding#source_location.  [Feature #14230]</div><div class='add'>+</div><div class='add'>+      This method returns the source location of the binding, a 2-element</div><div class='add'>+      array of &lt;code&gt;__FILE__&lt;/code&gt; and &lt;code&gt;__LINE__&lt;/code&gt;.</div><div class='add'>+      Traditionally, the same information could be retrieved by</div><div class='add'>+      &lt;code&gt;eval("[__FILE__, __LINE__]", binding)&lt;/code&gt;, but we are</div><div class='add'>+      planning to change this behavior so that Kernel#eval ignores</div><div class='add'>+      binding's source location [Bug #4352].  So, users should use this</div><div class='add'>+      newly-introduced method instead of Kernel#eval.</div><div class='add'>+</div><div class='add'>+[Dir]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Added Dir#each_child and Dir#children instance methods. [Feature #13969]</div><div class='add'>+</div><div class='add'>+[Enumerable]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Enumerable#chain returns an enumerator object that iterates over the</div><div class='add'>+      elements of the receiver and then those of each argument</div><div class='add'>+      in sequence.  [Feature #15144]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * Enumerable#to_h now accepts a block that maps elements to new key/value pairs.  [Feature #15143]</div><div class='add'>+</div><div class='add'>+  [Aliased method]</div><div class='add'>+</div><div class='add'>+    * Enumerable#filter is a new alias for Enumerable#select. [Feature #13784]</div><div class='add'>+</div><div class='add'>+[Enumerator::ArithmeticSequence]</div><div class='add'>+</div><div class='add'>+  * This is a new class to represent a generator of an arithmetic sequence,</div><div class='add'>+    that is a number sequence defined by a common difference. It can be used</div><div class='add'>+    for representing what is similar to Python's slice. You can get an</div><div class='add'>+    instance of this class from Numeric#step and Range#step.</div><div class='add'>+</div><div class='add'>+[Enumerator::Chain]</div><div class='add'>+</div><div class='add'>+  * This is a new class to represent a chain of enumerables that works as a</div><div class='add'>+    single enumerator, generated by such methods as Enumerable#chain and</div><div class='add'>+    Enumerator#+.</div><div class='add'>+</div><div class='add'>+[Enumerator::Lazy]</div><div class='add'>+</div><div class='add'>+  [Aliased method]</div><div class='add'>+</div><div class='add'>+    * Enumerator::Lazy#filter is a new alias for</div><div class='add'>+      Enumerator::Lazy#select.  [Feature #13784]</div><div class='add'>+</div><div class='add'>+[Enumerator]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Enumerator#+ returns an enumerator object that iterates over the</div><div class='add'>+      elements of the receiver and then those of the other operand.  [Feature #15144]</div><div class='add'>+</div><div class='add'>+[ENV]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * ENV.to_h now accepts a block that maps names and values to new keys and values.  [Feature #15143]</div><div class='add'>+</div><div class='add'>+[Exception]</div><div class='add'>+</div><div class='add'>+  [New options]</div><div class='add'>+</div><div class='add'>+    * Exception#full_message takes +:highlight+ and +:order+</div><div class='add'>+      options. [Bug #14324]</div><div class='add'>+</div><div class='add'>+[Hash]</div><div class='add'>+</div><div class='add'>+  [Modified methods]</div><div class='add'>+</div><div class='add'>+    * Hash#merge, Hash#merge!, and Hash#update now accept multiple</div><div class='add'>+      arguments.  [Feature #15111]</div><div class='add'>+</div><div class='add'>+    * Hash#to_h now accepts a block that maps keys and values to new keys and values.  [Feature #15143]</div><div class='add'>+</div><div class='add'>+  [Aliased methods]</div><div class='add'>+</div><div class='add'>+    * Hash#filter is a new alias for Hash#select.  [Feature #13784]</div><div class='add'>+</div><div class='add'>+    * Hash#filter! is a new alias for Hash#select!. [Feature #13784]</div><div class='add'>+</div><div class='add'>+[IO]</div><div class='add'>+</div><div class='add'>+  [New option]</div><div class='add'>+</div><div class='add'>+    * Added new mode character &lt;code&gt;'x'&lt;/code&gt; to open files for exclusive</div><div class='add'>+      access. [Feature #11258]</div><div class='add'>+</div><div class='add'>+[Kernel]</div><div class='add'>+</div><div class='add'>+  [Aliased method]</div><div class='add'>+</div><div class='add'>+    * Kernel#then is a new alias for Kernel#yield_self. [Feature #14594]</div><div class='add'>+</div><div class='add'>+  [New options]</div><div class='add'>+</div><div class='add'>+    * Kernel#Complex, Kernel#Float, Kernel#Integer, and</div><div class='add'>+      Kernel#Rational take an +:exception+ option to specify the way of</div><div class='add'>+      error handling.  [Feature #12732]</div><div class='add'>+</div><div class='add'>+    * Kernel#system takes an +:exception+ option to raise an exception</div><div class='add'>+      on failure.  [Feature #14386]</div><div class='add'>+</div><div class='add'>+  [Incompatible changes]</div><div class='add'>+</div><div class='add'>+    * Kernel#system and Kernel#exec do not close non-standard file descriptors</div><div class='add'>+      (the default of the +:close_others+ option is changed to +false+,</div><div class='add'>+      but we still set the +FD_CLOEXEC+ flag on descriptors we</div><div class='add'>+      create).  [Misc #14907]</div><div class='add'>+</div><div class='add'>+[KeyError]</div><div class='add'>+</div><div class='add'>+  [New options]</div><div class='add'>+</div><div class='add'>+    * KeyError.new accepts +:receiver+ and +:key+ options to set receiver and</div><div class='add'>+      key in Ruby code.  [Feature #14313]</div><div class='add'>+</div><div class='add'>+[Method]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Added Method#&lt;&lt; and Method#&gt;&gt; for Proc composition.  [Feature #6284]</div><div class='add'>+</div><div class='add'>+[Module]</div><div class='add'>+</div><div class='add'>+  [Modified methods]</div><div class='add'>+</div><div class='add'>+    * Module#method_defined?, Module#private_method_defined?, and</div><div class='add'>+      Module#protected_method_defined? now accept the second</div><div class='add'>+      parameter as optional. If it is +true+ (the default value), it checks</div><div class='add'>+      ancestor modules/classes, or checks only the class itself. [Feature #14944]</div><div class='add'>+</div><div class='add'>+[NameError]</div><div class='add'>+</div><div class='add'>+  [New option]</div><div class='add'>+</div><div class='add'>+    * NameError.new accepts a +:receiver+ option to set receiver in Ruby</div><div class='add'>+      code.  [Feature #14313]</div><div class='add'>+</div><div class='add'>+[NilClass]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * NilClass#=~ is added for compatibility.  [Feature #15231]</div><div class='add'>+</div><div class='add'>+[NoMethodError]</div><div class='add'>+</div><div class='add'>+  [New option]</div><div class='add'>+</div><div class='add'>+    * NoMethodError.new accepts a +:receiver+ option to set receiver in Ruby</div><div class='add'>+      code.  [Feature #14313]</div><div class='add'>+</div><div class='add'>+[Numeric]</div><div class='add'>+</div><div class='add'>+  [Incompatible changes]</div><div class='add'>+</div><div class='add'>+    * Numeric#step now returns an instance of the Enumerator::ArithmeticSequence</div><div class='add'>+      class rather than one of the Enumerator class.</div><div class='add'>+</div><div class='add'>+[OpenStruct]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * OpenStruct#to_h now accepts a block that maps keys and values to new keys and values.  [Feature #15143]</div><div class='add'>+</div><div class='add'>+[Proc]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Added Proc#&lt;&lt; and Proc#&gt;&gt; for Proc composition.  [Feature #6284]</div><div class='add'>+</div><div class='add'>+  [Incompatible changes]</div><div class='add'>+</div><div class='add'>+    * Proc#call doesn't change &lt;code&gt;$SAFE&lt;/code&gt; any more.  [Feature #14250]</div><div class='add'>+</div><div class='add'>+[Random]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added Random.bytes.  [Feature #4938]</div><div class='add'>+</div><div class='add'>+[Range]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added Range#% instance method.  [Feature #14697]</div><div class='add'>+</div><div class='add'>+  [Incompatible changes]</div><div class='add'>+</div><div class='add'>+    * Range#=== now uses the +#cover?+ instead of the +#include?+ method. [Feature #14575]</div><div class='add'>+    * Range#cover? now accepts a Range object. [Feature #14473]</div><div class='add'>+    * Range#step now returns an instance of the Enumerator::ArithmeticSequence</div><div class='add'>+      class rather than one of the Enumerator class.</div><div class='add'>+</div><div class='add'>+[Regexp/String]</div><div class='add'>+</div><div class='add'>+    * Update Unicode version from 10.0.0 to 11.0.0. [Feature #14802]</div><div class='add'>+</div><div class='add'>+      This includes a rewrite of the grapheme cluster (/\X/) algorithm</div><div class='add'>+      and special-casing for Georgian MTAVRULI on String#downcase.</div><div class='add'>+</div><div class='add'>+    * Update Emoji version from 5.0 to 11.0.0 [Feature #14802]</div><div class='add'>+</div><div class='add'>+[RubyVM::AbstractSyntaxTree]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * RubyVM::AbstractSyntaxTree.parse parses a given string and returns AST</div><div class='add'>+      nodes. [experimental]</div><div class='add'>+</div><div class='add'>+    * RubyVM::AbstractSyntaxTree.parse_file parses a given file and returns AST</div><div class='add'>+      nodes.  [experimental]</div><div class='add'>+</div><div class='add'>+    * RubyVM::AbstractSyntaxTree.of returns AST nodes of the given proc or</div><div class='add'>+      method.  [experimental]</div><div class='add'>+</div><div class='add'>+[RubyVM]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * RubyVM.resolve_feature_path identifies the file that will be loaded by</div><div class='add'>+      "require(feature)". [experimental] [Feature #15230]</div><div class='add'>+</div><div class='add'>+[String]</div><div class='add'>+</div><div class='add'>+  * String#crypt is now deprecated. [Feature #14915]</div><div class='add'>+</div><div class='add'>+  [New features]</div><div class='add'>+</div><div class='add'>+    * String#split yields each substring to the block if given. [Feature #4780]</div><div class='add'>+</div><div class='add'>+[Struct]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * Struct#to_h now accepts a block that maps keys and values to new keys and values.  [Feature #15143]</div><div class='add'>+</div><div class='add'>+  [Aliased method]</div><div class='add'>+</div><div class='add'>+    * Struct#filter is a new alias for Struct#select. [Feature #13784]</div><div class='add'>+</div><div class='add'>+[Time]</div><div class='add'>+</div><div class='add'>+  [New features]</div><div class='add'>+</div><div class='add'>+    * Time.new and Time#getlocal accept a timezone object as well as</div><div class='add'>+      a UTC offset string. Time#+, Time#-, and Time#succ also preserve</div><div class='add'>+      the timezone.  [Feature #14850]</div><div class='add'>+</div><div class='add'>+[TracePoint]</div><div class='add'>+</div><div class='add'>+  [New features]</div><div class='add'>+</div><div class='add'>+    * "script_compiled" event is supported. [Feature #15287]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * TracePoint#parameters [Feature #14694]</div><div class='add'>+</div><div class='add'>+    * TracePoint#instruction_sequence [Feature #15287]</div><div class='add'>+</div><div class='add'>+    * TracePoint#eval_script [Feature #15287]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * TracePoint#enable accepts new keywords "target:" and</div><div class='add'>+      "target_line:".  [Feature #15289]</div><div class='add'>+</div><div class='add'>+=== Stdlib updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+[BigDecimal]</div><div class='add'>+</div><div class='add'>+  Update to version 1.4.0.  This version includes several compatibility</div><div class='add'>+  issues, see Compatibility issues section below for details.</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * BigDecimal() accepts the new keyword "exception:" similar to Float().</div><div class='add'>+</div><div class='add'>+  [Note for the differences among recent versions]</div><div class='add'>+</div><div class='add'>+    You should want to know the differences among recent versions of bigdecimal.</div><div class='add'>+    Please select the suitable version of bigdecimal according to the following</div><div class='add'>+    information.</div><div class='add'>+</div><div class='add'>+    * 1.3.5 has BigDecimal.new without "exception:" keyword.  You can see the</div><div class='add'>+      deprecation warning of BigDecimal.new when you specify "-w" option.</div><div class='add'>+      BigDecimal(), BigDecimal.new, and Object#to_d methods are the same.</div><div class='add'>+</div><div class='add'>+    * 1.4.0 has BigDecimal.new with "exception:" keyword.  You always see the</div><div class='add'>+      deprecation warning of BigDecimal.new.  Object#to_d method is different</div><div class='add'>+      from BigDecimal() and BigDecimal.new.</div><div class='add'>+</div><div class='add'>+    * 2.0.0 will be released soon after releasing Ruby 2.6.0.  This version</div><div class='add'>+      will not have the BigDecimal.new method.</div><div class='add'>+</div><div class='add'>+[Bundler]</div><div class='add'>+</div><div class='add'>+  * Add Bundler to Standard Library. [Feature #12733]</div><div class='add'>+</div><div class='add'>+  * Use 1.17.2, the latest stable version.</div><div class='add'>+</div><div class='add'>+[Coverage]</div><div class='add'>+</div><div class='add'>+  A oneshot_lines mode is added.  [Feature #15022]</div><div class='add'>+</div><div class='add'>+  This mode checks "whether each line was executed at least once or not",</div><div class='add'>+  instead of "how many times each line was executed".</div><div class='add'>+  A hook for each line is fired at most once, and after it is fired</div><div class='add'>+  the hook flag is removed, i.e., it runs with zero overhead.</div><div class='add'>+</div><div class='add'>+  [New options]</div><div class='add'>+</div><div class='add'>+    * Add +:oneshot_lines+ keyword argument to Coverage.start.</div><div class='add'>+</div><div class='add'>+    * Add +:stop+ and +:clear+ keyword arguments to Coverage.result.</div><div class='add'>+      If +clear+ is true, it clears the counters to zero.</div><div class='add'>+      If +stop+ is true, it disables coverage measurement.</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Coverage.line_stub, which is a simple helper function that</div><div class='add'>+      creates the "stub" of line coverage from a given source code.</div><div class='add'>+</div><div class='add'>+[CSV]</div><div class='add'>+</div><div class='add'>+  * Upgrade to 3.0.2. This includes performance improvements especially</div><div class='add'>+    for writing. Writing is about 2 times faster.</div><div class='add'>+    See https://github.com/ruby/csv/blob/master/NEWS.md.</div><div class='add'>+</div><div class='add'>+[ERB]</div><div class='add'>+</div><div class='add'>+  [New options]</div><div class='add'>+</div><div class='add'>+    * Add +:trim_mode+ and +:eoutvar+ keyword arguments to ERB.new.</div><div class='add'>+      Now non-keyword arguments other than the first one are softly deprecated</div><div class='add'>+      and will be removed when Ruby 2.5 becomes EOL. [Feature #14256]</div><div class='add'>+</div><div class='add'>+    * erb command's &lt;tt&gt;-S&lt;/tt&gt; option is deprecated, and will be removed</div><div class='add'>+      in the next version.</div><div class='add'>+</div><div class='add'>+[FileUtils]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * FileUtils#cp_lr.  [Feature #4189]</div><div class='add'>+</div><div class='add'>+[Matrix]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Matrix#antisymmetric?, Matrix#skew_symmetric?</div><div class='add'>+</div><div class='add'>+    * Matrix#map!, Matrix#collect! [Feature #14151]</div><div class='add'>+</div><div class='add'>+    * Matrix#[]=</div><div class='add'>+</div><div class='add'>+    * Vector#map!, Vector#collect!</div><div class='add'>+</div><div class='add'>+    * Vector#[]=</div><div class='add'>+</div><div class='add'>+[Net]</div><div class='add'>+</div><div class='add'>+  [New options]</div><div class='add'>+</div><div class='add'>+    * Add +:write_timeout+ keyword argument to Net::HTTP.new. [Feature #13396]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Add Net::HTTP#write_timeout and Net::HTTP#write_timeout=.  [Feature #13396]</div><div class='add'>+</div><div class='add'>+  [New constant]</div><div class='add'>+</div><div class='add'>+    * Add Net::HTTPClientException to deprecate Net::HTTPServerException,</div><div class='add'>+      whose name is misleading.  [Bug #14688]</div><div class='add'>+</div><div class='add'>+[NKF]</div><div class='add'>+</div><div class='add'>+  * Upgrade to nkf v2.1.5</div><div class='add'>+</div><div class='add'>+[Psych]</div><div class='add'>+</div><div class='add'>+  * Upgrade to Psych 3.1.0</div><div class='add'>+</div><div class='add'>+[RDoc]</div><div class='add'>+</div><div class='add'>+  * Become about 2 times faster.</div><div class='add'>+</div><div class='add'>+  * Use SOURCE_DATE_EPOCH to generate files.</div><div class='add'>+</div><div class='add'>+  * Fix method line number that slipped off.</div><div class='add'>+</div><div class='add'>+  * Enable &lt;code&gt;--width&lt;/code&gt;, &lt;code&gt;--exclude&lt;/code&gt;,</div><div class='add'>+    and &lt;code&gt;--line-numbers&lt;/code&gt; that were ignored.</div><div class='add'>+</div><div class='add'>+  * Add support for blockquote by "&gt;&gt;&gt;" in default markup notation.</div><div class='add'>+</div><div class='add'>+  * Add support for "Raises" lines in TomDoc notation.</div><div class='add'>+</div><div class='add'>+  * Fix syntax error output.</div><div class='add'>+</div><div class='add'>+  * Fix many parsing bugs.</div><div class='add'>+</div><div class='add'>+[REXML]</div><div class='add'>+</div><div class='add'>+  * Upgrade to REXML 3.1.9.</div><div class='add'>+    See https://github.com/ruby/rexml/blob/master/NEWS.md.</div><div class='add'>+</div><div class='add'>+  [Improved some XPath implementations]</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;concat()&lt;/code&gt; function: Stringify all arguments before concatenating.</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;string()&lt;/code&gt; function: Support context node.</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;string()&lt;/code&gt; function: Support processing instruction node.</div><div class='add'>+</div><div class='add'>+    * Support &lt;code&gt;"*:#{ELEMENT_NAME}"&lt;/code&gt; syntax in XPath 2.0.</div><div class='add'>+</div><div class='add'>+  [Fixed some XPath implementations]</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;"//#{ELEMENT_NAME}[#{POSITION}]"&lt;/code&gt; case</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;string()&lt;/code&gt; function: Fix &lt;code&gt;function(document)&lt;/code&gt;</div><div class='add'>+      returns nodes that are out of root elements.</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;"/ #{ELEMENT_NAME} "&lt;/code&gt; case</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;"/ #{ELEMENT_NAME} [ #{PREDICATE} ]"&lt;/code&gt; case</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;"/ #{AXIS}::#{ELEMENT_NAME}"&lt;/code&gt; case</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;"#{N}-#{M}"&lt;/code&gt; case: One or more white spaces were required</div><div class='add'>+      before &lt;code&gt;"-"&lt;/code&gt;</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;"/child::node()"&lt;/code&gt; case</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;"#{FUNCTION}()/#{PATH}"&lt;/code&gt; case</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;"@#{ATTRIBUTE}/parent::"&lt;/code&gt; case</div><div class='add'>+</div><div class='add'>+    * &lt;code&gt;"name(#{NODE_SET})"&lt;/code&gt; case</div><div class='add'>+</div><div class='add'>+[RSS]</div><div class='add'>+</div><div class='add'>+  [New options]</div><div class='add'>+</div><div class='add'>+    * RSS::Parser.parse now accepts options as Hash. +:validate+ ,</div><div class='add'>+      +:ignore_unknown_element+ , +:parser_class+ options are available.</div><div class='add'>+</div><div class='add'>+[RubyGems]</div><div class='add'>+</div><div class='add'>+  * Upgrade to RubyGems 3.0.1</div><div class='add'>+</div><div class='add'>+  * https://blog.rubygems.org/2018/12/19/3.0.0-released.html</div><div class='add'>+</div><div class='add'>+  * https://blog.rubygems.org/2018/12/23/3.0.1-released.html</div><div class='add'>+</div><div class='add'>+[Set]</div><div class='add'>+</div><div class='add'>+  [Aliased method]</div><div class='add'>+</div><div class='add'>+    * Set#filter! is a new alias for Set#select!.  [Feature #13784]</div><div class='add'>+</div><div class='add'>+[URI]</div><div class='add'>+</div><div class='add'>+  [New constant]</div><div class='add'>+</div><div class='add'>+    * Add URI::File to handle the file URI scheme.  [Feature #14035]</div><div class='add'>+</div><div class='add'>+=== Compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+[Dir]</div><div class='add'>+</div><div class='add'>+  * Dir.glob with &lt;code&gt;'\0'&lt;/code&gt;-separated pattern list will be deprecated,</div><div class='add'>+    and is now warned.  [Feature #14643]</div><div class='add'>+</div><div class='add'>+[File]</div><div class='add'>+</div><div class='add'>+  * File.read, File.binread, File.write, File.binwrite, File.foreach, and</div><div class='add'>+    File.readlines do not invoke external commands even if the path starts</div><div class='add'>+    with the pipe character &lt;code&gt;'|'&lt;/code&gt;. [Feature #14245]</div><div class='add'>+</div><div class='add'>+[Object]</div><div class='add'>+</div><div class='add'>+  * Object#=~ is deprecated.  [Feature #15231]</div><div class='add'>+</div><div class='add'>+=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* These standard libraries have been promoted to default gems.</div><div class='add'>+</div><div class='add'>+  * e2mmap</div><div class='add'>+  * forwardable</div><div class='add'>+  * irb</div><div class='add'>+  * logger</div><div class='add'>+  * matrix</div><div class='add'>+  * mutex_m</div><div class='add'>+  * ostruct</div><div class='add'>+  * prime</div><div class='add'>+  * rexml</div><div class='add'>+  * rss</div><div class='add'>+  * shell</div><div class='add'>+  * sync</div><div class='add'>+  * thwait</div><div class='add'>+  * tracer</div><div class='add'>+</div><div class='add'>+[BigDecimal]</div><div class='add'>+</div><div class='add'>+  * The following methods are removed.</div><div class='add'>+</div><div class='add'>+    * BigDecimal.allocate</div><div class='add'>+    * BigDecimal.ver</div><div class='add'>+</div><div class='add'>+  * Every BigDecimal object is frozen. [Feature #13984]</div><div class='add'>+</div><div class='add'>+  * BigDecimal() parses the given string similar to Float().</div><div class='add'>+</div><div class='add'>+  * String#to_d parses the receiver string similar to String#to_f.</div><div class='add'>+</div><div class='add'>+  * BigDecimal.new will be removed in version 2.0.</div><div class='add'>+</div><div class='add'>+[Pathname]</div><div class='add'>+</div><div class='add'>+  * Pathname#read, Pathname#binread, Pathname#write, Pathname#binwrite,</div><div class='add'>+    Pathname#each_line and Pathname#readlines do not invoke external</div><div class='add'>+    commands even if the path starts with the pipe character &lt;code&gt;'|'&lt;/code&gt;.</div><div class='add'>+    This follows [Feature #14245].</div><div class='add'>+</div><div class='add'>+=== Implementation improvements</div><div class='add'>+</div><div class='add'>+* Speedup Proc#call because we don't need to care about &lt;code&gt;$SAFE&lt;/code&gt;</div><div class='add'>+  any more. [Feature #14318]</div><div class='add'>+</div><div class='add'>+  With +lc_fizzbuzz+ benchmark which uses Proc#call many times we can</div><div class='add'>+  measure x1.4 improvements.  [Bug #10212]</div><div class='add'>+</div><div class='add'>+* Speedup block.call where +block+ is passed block parameter. [Feature #14330]</div><div class='add'>+</div><div class='add'>+  Ruby 2.5 improves block passing performance. [Feature #14045]</div><div class='add'>+</div><div class='add'>+  Additionally, Ruby 2.6 improves the performance of passed block calling.</div><div class='add'>+</div><div class='add'>+* Introduce an initial implementation of a JIT (Just-in-time) compiler. [Feature #14235] [experimental]</div><div class='add'>+</div><div class='add'>+  * &lt;tt&gt;--jit&lt;/tt&gt; command line option is added to enable JIT. &lt;tt&gt;--jit-verbose=1&lt;/tt&gt;</div><div class='add'>+    is good for inspection.  See &lt;tt&gt;ruby --help&lt;/tt&gt; for others.</div><div class='add'>+  * To generate machine code, this JIT compiler uses the C compiler used for building</div><div class='add'>+    the interpreter. Currently GCC, Clang, and Microsoft Visual C++ are supported for it.</div><div class='add'>+  * &lt;tt&gt;--disable-mjit-support&lt;/tt&gt; option is added to configure. This is added for JIT debugging,</div><div class='add'>+    but if you get an error on building a header file for JIT, you can use this option to skip</div><div class='add'>+    building it as a workaround.</div><div class='add'>+  * rb_waitpid reimplemented on Unix-like platforms to maintain</div><div class='add'>+    compatibility with processes created for JIT [Bug #14867]</div><div class='add'>+</div><div class='add'>+* VM generator script renewal; makes the generated VM more optimized. [GH-1779]</div><div class='add'>+</div><div class='add'>+* Thread cache enabled for pthreads platforms (for Thread.new and</div><div class='add'>+  Thread.start).  [Feature #14757]</div><div class='add'>+</div><div class='add'>+* timer thread is eliminated for platforms with POSIX timers. [Misc #14937]</div><div class='add'>+</div><div class='add'>+* Transient Heap (theap) is supported. [Bug #14858] [Feature #14989]</div><div class='add'>+</div><div class='add'>+  theap is a managed heap for short-living memory objects. For example,</div><div class='add'>+  making a small and short-living Hash object is x2 faster. With rdoc benchmark,</div><div class='add'>+  we measured 6-7% performance improvement.</div><div class='add'>+</div><div class='add'>+* Native implementations (arm32, arm64, ppc64le, win32, win64, x86, amd64) of</div><div class='add'>+  coroutines to improve performance of Fiber significantly. [Feature #14739]</div><div class='add'>+</div><div class='add'>+=== Miscellaneous changes</div><div class='add'>+</div><div class='add'>+* On macOS, shared libraries no longer include a full version number of Ruby</div><div class='add'>+  in their names.  This eliminates the burden of each teeny upgrade on the</div><div class='add'>+  platform that users need to rebuild every extension library.</div><div class='add'>+</div><div class='add'>+  [Before]</div><div class='add'>+    * libruby.2.6.0.dylib</div><div class='add'>+    * libruby.2.6.dylib -&gt; libruby.2.6.0.dylib</div><div class='add'>+    * libruby.dylib -&gt; libruby.2.6.0.dylib</div><div class='add'>+</div><div class='add'>+  [After]</div><div class='add'>+    * libruby.2.6.dylib</div><div class='add'>+    * libruby.dylib -&gt; libruby.2.6.dylib</div><div class='add'>+</div><div class='add'>+* Extracted misc/*.el files to https://github.com/ruby/elisp</div><div class='head'>diff --git a/doc/NEWS/NEWS-2.7.0 b/doc/NEWS/NEWS-2.7.0<br/>new file mode 100644<br/>index 0000000000..7607a473de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-2.7.0?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-2.7.0</a></div><div class='hunk'>@@ -0,0 +1,845 @@</div><div class='add'>+# -*- rdoc -*-</div><div class='add'>+</div><div class='add'>+= NEWS for Ruby 2.7.0</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or reference</div><div class='add'>+information is supplied with.  For a full list of changes with all</div><div class='add'>+sufficient information, see the ChangeLog file or Redmine</div><div class='add'>+(e.g. &lt;tt&gt;https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER&lt;/tt&gt;).</div><div class='add'>+</div><div class='add'>+== Changes since the 2.6.0 release</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+==== Pattern matching</div><div class='add'>+</div><div class='add'>+* Pattern matching is introduced as an experimental feature. [Feature #14912]</div><div class='add'>+</div><div class='add'>+    case [0, [1, 2, 3]]</div><div class='add'>+    in [a, [b, *c]]</div><div class='add'>+      p a #=&gt; 0</div><div class='add'>+      p b #=&gt; 1</div><div class='add'>+      p c #=&gt; [2, 3]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    case {a: 0, b: 1}</div><div class='add'>+    in {a: 0, x: 1}</div><div class='add'>+      :unreachable</div><div class='add'>+    in {a: 0, b: var}</div><div class='add'>+      p var #=&gt; 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    case -1</div><div class='add'>+    in 0 then :unreachable</div><div class='add'>+    in 1 then :unreachable</div><div class='add'>+    end #=&gt; NoMatchingPatternError</div><div class='add'>+</div><div class='add'>+    json = &lt;&lt;END</div><div class='add'>+    {</div><div class='add'>+      "name": "Alice",</div><div class='add'>+      "age": 30,</div><div class='add'>+      "children": [{ "name": "Bob", "age": 2 }]</div><div class='add'>+    }</div><div class='add'>+    END</div><div class='add'>+</div><div class='add'>+    JSON.parse(json, symbolize_names: true) in {name: "Alice", children: [{name: name, age: age}]}</div><div class='add'>+</div><div class='add'>+    p name #=&gt; "Bob"</div><div class='add'>+    p age  #=&gt; 2</div><div class='add'>+</div><div class='add'>+    JSON.parse(json, symbolize_names: true) in {name: "Alice", children: [{name: "Charlie", age: age}]}</div><div class='add'>+    #=&gt; NoMatchingPatternError</div><div class='add'>+</div><div class='add'>+* See the following slides for more details:</div><div class='add'>+  * https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7</div><div class='add'>+  * Note that the slides are slightly obsolete.</div><div class='add'>+</div><div class='add'>+* The warning against pattern matching can be suppressed with</div><div class='add'>+  {-W:no-experimental option}[#label-Warning+option].</div><div class='add'>+</div><div class='add'>+==== The spec of keyword arguments is changed towards 3.0</div><div class='add'>+</div><div class='add'>+* Automatic conversion of keyword arguments and positional arguments is</div><div class='add'>+  deprecated, and conversion will be removed in Ruby 3.  [Feature #14183]</div><div class='add'>+</div><div class='add'>+  * When a method call passes a Hash at the last argument, and when it</div><div class='add'>+    passes no keywords, and when the called method accepts keywords,</div><div class='add'>+    a warning is emitted.  To continue treating the hash as keywords,</div><div class='add'>+    add a double splat operator to avoid the warning and ensure</div><div class='add'>+    correct behavior in Ruby 3.</div><div class='add'>+</div><div class='add'>+      def foo(key: 42); end; foo({key: 42})   # warned</div><div class='add'>+      def foo(**kw);    end; foo({key: 42})   # warned</div><div class='add'>+      def foo(key: 42); end; foo(**{key: 42}) # OK</div><div class='add'>+      def foo(**kw);    end; foo(**{key: 42}) # OK</div><div class='add'>+</div><div class='add'>+  * When a method call passes keywords to a method that accepts keywords,</div><div class='add'>+    but it does not pass enough required positional arguments, the</div><div class='add'>+    keywords are treated as a final required positional argument, and a</div><div class='add'>+    warning is emitted.  Pass the argument as a hash instead of keywords</div><div class='add'>+    to avoid the warning and ensure correct behavior in Ruby 3.</div><div class='add'>+</div><div class='add'>+      def foo(h, **kw); end; foo(key: 42)      # warned</div><div class='add'>+      def foo(h, key: 42); end; foo(key: 42)   # warned</div><div class='add'>+      def foo(h, **kw); end; foo({key: 42})    # OK</div><div class='add'>+      def foo(h, key: 42); end; foo({key: 42}) # OK</div><div class='add'>+</div><div class='add'>+  * When a method accepts specific keywords but not a keyword splat, and</div><div class='add'>+    a hash or keywords splat is passed to the method that includes both</div><div class='add'>+    Symbol and non-Symbol keys, the hash will continue to be split, and</div><div class='add'>+    a warning will be emitted.  You will need to update the calling code</div><div class='add'>+    to pass separate hashes to ensure correct behavior in Ruby 3.</div><div class='add'>+</div><div class='add'>+      def foo(h={}, key: 42); end; foo("key" =&gt; 43, key: 42)   # warned</div><div class='add'>+      def foo(h={}, key: 42); end; foo({"key" =&gt; 43, key: 42}) # warned</div><div class='add'>+      def foo(h={}, key: 42); end; foo({"key" =&gt; 43}, key: 42) # OK</div><div class='add'>+</div><div class='add'>+  * If a method does not accept keywords, and is called with keywords,</div><div class='add'>+    the keywords are still treated as a positional hash, with no warning.</div><div class='add'>+    This behavior will continue to work in Ruby 3.</div><div class='add'>+</div><div class='add'>+      def foo(opt={});  end; foo( key: 42 )   # OK</div><div class='add'>+</div><div class='add'>+* Non-symbols are allowed as keyword argument keys if the method accepts</div><div class='add'>+  arbitrary keywords. [Feature #14183]</div><div class='add'>+</div><div class='add'>+  * Non-Symbol keys in a keyword arguments hash were prohibited in 2.6.0,</div><div class='add'>+    but are now allowed again.  [Bug #15658]</div><div class='add'>+</div><div class='add'>+      def foo(**kw); p kw; end; foo("str" =&gt; 1) #=&gt; {"str"=&gt;1}</div><div class='add'>+</div><div class='add'>+* &lt;code&gt;**nil&lt;/code&gt; is allowed in method definitions to explicitly mark</div><div class='add'>+  that the method accepts no keywords. Calling such a method with keywords</div><div class='add'>+  will result in an ArgumentError. [Feature #14183]</div><div class='add'>+</div><div class='add'>+    def foo(h, **nil); end; foo(key: 1)       # ArgumentError</div><div class='add'>+    def foo(h, **nil); end; foo(**{key: 1})   # ArgumentError</div><div class='add'>+    def foo(h, **nil); end; foo("str" =&gt; 1)   # ArgumentError</div><div class='add'>+    def foo(h, **nil); end; foo({key: 1})     # OK</div><div class='add'>+    def foo(h, **nil); end; foo({"str" =&gt; 1}) # OK</div><div class='add'>+</div><div class='add'>+* Passing an empty keyword splat to a method that does not accept keywords</div><div class='add'>+  no longer passes an empty hash, unless the empty hash is necessary for</div><div class='add'>+  a required parameter, in which case a warning will be emitted.  Remove</div><div class='add'>+  the double splat to continue passing a positional hash.  [Feature #14183]</div><div class='add'>+</div><div class='add'>+    h = {}; def foo(*a) a end; foo(**h) # []</div><div class='add'>+    h = {}; def foo(a) a end; foo(**h)  # {} and warning</div><div class='add'>+    h = {}; def foo(*a) a end; foo(h)   # [{}]</div><div class='add'>+    h = {}; def foo(a) a end; foo(h)    # {}</div><div class='add'>+</div><div class='add'>+* Above warnings can be suppressed also with {-W:no-deprecated option}[#label-Warning+option].</div><div class='add'>+</div><div class='add'>+==== Numbered parameters</div><div class='add'>+</div><div class='add'>+* Numbered parameters as default block parameters are introduced. [Feature #4475]</div><div class='add'>+</div><div class='add'>+    [1, 2, 10].map { _1.to_s(16) }    #=&gt; ["1", "2", "a"]</div><div class='add'>+    [[1, 2], [3, 4]].map { _1 + _2 }  #=&gt; [3, 7]</div><div class='add'>+</div><div class='add'>+  You can still define a local variable named +_1+ and so on,</div><div class='add'>+  and that is honored when present, but renders a warning.</div><div class='add'>+</div><div class='add'>+    _1 = 0            #=&gt; warning: `_1' is reserved for numbered parameter; consider another name</div><div class='add'>+    [1].each { p _1 } # prints 0 instead of 1</div><div class='add'>+</div><div class='add'>+==== proc/lambda without block is deprecated</div><div class='add'>+</div><div class='add'>+* Proc.new and Kernel#proc with no block in a method called with a block will</div><div class='add'>+  now display a warning.</div><div class='add'>+</div><div class='add'>+    def foo</div><div class='add'>+      proc</div><div class='add'>+    end</div><div class='add'>+    foo { puts "Hello" } #=&gt; warning: Capturing the given block using Kernel#proc is deprecated; use `&amp;block` instead</div><div class='add'>+</div><div class='add'>+  This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].</div><div class='add'>+</div><div class='add'>+* Kernel#lambda with no block in a method called with a block raises an exception.</div><div class='add'>+</div><div class='add'>+    def bar</div><div class='add'>+      lambda</div><div class='add'>+    end</div><div class='add'>+    bar { puts "Hello" } #=&gt; tried to create Proc object without a block (ArgumentError)</div><div class='add'>+</div><div class='add'>+==== Other miscellaneous changes</div><div class='add'>+</div><div class='add'>+* A beginless range is experimentally introduced.  It might be useful</div><div class='add'>+  in +case+, new call-sequence of the &lt;code&gt;Comparable#clamp&lt;/code&gt;,</div><div class='add'>+  constants and DSLs.  [Feature #14799]</div><div class='add'>+</div><div class='add'>+     ary[..3]  # identical to ary[0..3]</div><div class='add'>+</div><div class='add'>+     case RUBY_VERSION</div><div class='add'>+     when ..."2.4" then puts "EOL"</div><div class='add'>+     # ...</div><div class='add'>+     end</div><div class='add'>+</div><div class='add'>+     age.clamp(..100)</div><div class='add'>+</div><div class='add'>+     where(sales: ..100)</div><div class='add'>+</div><div class='add'>+* Setting &lt;code&gt;$;&lt;/code&gt; to a non-nil value will now display a warning. [Feature #14240]</div><div class='add'>+  This includes the usage in String#split.</div><div class='add'>+  This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].</div><div class='add'>+</div><div class='add'>+* Setting &lt;code&gt;$,&lt;/code&gt; to a non-nil value will now display a warning. [Feature #14240]</div><div class='add'>+  This includes the usage in Array#join.</div><div class='add'>+  This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].</div><div class='add'>+</div><div class='add'>+* Quoted here-document identifiers must end within the same line.</div><div class='add'>+</div><div class='add'>+     &lt;&lt;"EOS</div><div class='add'>+     " # This had been warned since 2.4; Now it raises a SyntaxError</div><div class='add'>+     EOS</div><div class='add'>+</div><div class='add'>+* The flip-flop syntax deprecation is reverted. [Feature #5400]</div><div class='add'>+</div><div class='add'>+* Comment lines can be placed between fluent dot now.</div><div class='add'>+</div><div class='add'>+    foo</div><div class='add'>+      # .bar</div><div class='add'>+      .baz # =&gt; foo.baz</div><div class='add'>+</div><div class='add'>+* Calling a private method with a literal +self+ as the receiver</div><div class='add'>+  is now allowed. [Feature #11297] [Feature #16123]</div><div class='add'>+</div><div class='add'>+* Modifier rescue now operates the same for multiple assignment as single</div><div class='add'>+  assignment. [Bug #8279]</div><div class='add'>+</div><div class='add'>+    a, b = raise rescue [1, 2]</div><div class='add'>+    # Previously parsed as: (a, b = raise) rescue [1, 2]</div><div class='add'>+    # Now parsed as:         a, b = (raise rescue [1, 2])</div><div class='add'>+</div><div class='add'>+* +yield+ in singleton class syntax will now display a warning. This behavior</div><div class='add'>+  will soon be deprecated. [Feature #15575].</div><div class='add'>+</div><div class='add'>+   def foo</div><div class='add'>+     class &lt;&lt; Object.new</div><div class='add'>+       yield #=&gt; warning: `yield' in class syntax will not be supported from Ruby 3.0. [Feature #15575]</div><div class='add'>+     end</div><div class='add'>+   end</div><div class='add'>+   foo { p :ok }</div><div class='add'>+</div><div class='add'>+  This warning can be suppressed with {-W:no-deprecated option}[#label-Warning+option].</div><div class='add'>+</div><div class='add'>+* Argument forwarding by &lt;code&gt;(...)&lt;/code&gt; is introduced. [Feature #16253]</div><div class='add'>+</div><div class='add'>+    def foo(...)</div><div class='add'>+      bar(...)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+  All arguments to +foo+ are forwarded to +bar+, including keyword and</div><div class='add'>+  block arguments.</div><div class='add'>+  Note that the parentheses are mandatory.  &lt;code&gt;bar ...&lt;/code&gt; is parsed</div><div class='add'>+  as an endless range.</div><div class='add'>+</div><div class='add'>+* Access and setting of &lt;code&gt;$SAFE&lt;/code&gt; will now always display a warning.</div><div class='add'>+  &lt;code&gt;$SAFE&lt;/code&gt; will become a normal global variable in Ruby 3.0.  [Feature #16131]</div><div class='add'>+</div><div class='add'>+* &lt;code&gt;Object#{taint,untaint,trust,untrust}&lt;/code&gt; and related functions in the C-API</div><div class='add'>+  no longer have an effect (all objects are always considered untainted), and will now</div><div class='add'>+  display a warning in verbose mode. This warning will be disabled even in non-verbose mode in</div><div class='add'>+  Ruby 3.0, and the methods and C functions will be removed in Ruby 3.2. [Feature #16131]</div><div class='add'>+</div><div class='add'>+* Refinements take place at Object#method and Module#instance_method. [Feature #15373]</div><div class='add'>+</div><div class='add'>+=== Command line options</div><div class='add'>+</div><div class='add'>+==== Warning option</div><div class='add'>+</div><div class='add'>+The +-W+ option has been extended with a following +:+, to manage categorized</div><div class='add'>+warnings.  [Feature #16345] [Feature #16420]</div><div class='add'>+</div><div class='add'>+* To suppress deprecation warnings:</div><div class='add'>+</div><div class='add'>+    $ ruby -e '$; = ""'</div><div class='add'>+    -e:1: warning: `$;' is deprecated</div><div class='add'>+</div><div class='add'>+    $ ruby -W:no-deprecated -e '$; = //'</div><div class='add'>+</div><div class='add'>+* It works with the +RUBYOPT+ environment variable:</div><div class='add'>+</div><div class='add'>+    $ RUBYOPT=-W:no-deprecated ruby -e '$; = //'</div><div class='add'>+</div><div class='add'>+* To suppress experimental feature warnings:</div><div class='add'>+</div><div class='add'>+    $ ruby -e '0 in a'</div><div class='add'>+    -e:1: warning: Pattern matching is experimental, and the behavior may change in future versions of Ruby!</div><div class='add'>+</div><div class='add'>+    $ ruby -W:no-experimental -e '0 in a'</div><div class='add'>+</div><div class='add'>+* To suppress both by using +RUBYOPT+, set space separated values:</div><div class='add'>+</div><div class='add'>+    $ RUBYOPT='-W:no-deprecated -W:no-experimental' ruby -e '($; = "") in a'</div><div class='add'>+</div><div class='add'>+See also Warning in {Core classes updates}[#label-Core+classes+updates+-28outstanding+ones+only-29].</div><div class='add'>+</div><div class='add'>+=== Core classes updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+[Array]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Added Array#intersection. [Feature #16155]</div><div class='add'>+</div><div class='add'>+    * Added Array#minmax, with a faster implementation than Enumerable#minmax. [Bug #15929]</div><div class='add'>+</div><div class='add'>+[Comparable]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * Comparable#clamp now accepts a Range argument. [Feature #14784]</div><div class='add'>+</div><div class='add'>+        -1.clamp(0..2) #=&gt; 0</div><div class='add'>+         1.clamp(0..2) #=&gt; 1</div><div class='add'>+         3.clamp(0..2) #=&gt; 2</div><div class='add'>+        # With beginless and endless ranges:</div><div class='add'>+        -1.clamp(0..)  #=&gt; 0</div><div class='add'>+         3.clamp(..2)  #=&gt; 2</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+[Complex]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added Complex#&lt;=&gt;.</div><div class='add'>+      So &lt;code&gt;0 &lt;=&gt; 0i&lt;/code&gt; will not raise NoMethodError. [Bug #15857]</div><div class='add'>+</div><div class='add'>+[Dir]</div><div class='add'>+</div><div class='add'>+  [Modified methods]</div><div class='add'>+</div><div class='add'>+    * Dir.glob and Dir.[] no longer allow NUL-separated glob pattern.</div><div class='add'>+      Use Array instead.  [Feature #14643]</div><div class='add'>+</div><div class='add'>+[Encoding]</div><div class='add'>+</div><div class='add'>+  [New encoding]</div><div class='add'>+</div><div class='add'>+    * Added new encoding CESU-8. [Feature #15931]</div><div class='add'>+</div><div class='add'>+[Enumerable]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Added Enumerable#filter_map.  [Feature #15323]</div><div class='add'>+</div><div class='add'>+        [1, 2, 3].filter_map {|x| x.odd? ? x.to_s : nil } #=&gt; ["1", "3"]</div><div class='add'>+</div><div class='add'>+    * Added Enumerable#tally.  [Feature #11076]</div><div class='add'>+</div><div class='add'>+        ["A", "B", "C", "B", "A"].tally #=&gt; {"A"=&gt;2, "B"=&gt;2, "C"=&gt;1}</div><div class='add'>+</div><div class='add'>+[Enumerator]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Added Enumerator.produce to generate an Enumerator from any custom</div><div class='add'>+      data transformation.  [Feature #14781]</div><div class='add'>+</div><div class='add'>+        require "date"</div><div class='add'>+        dates = Enumerator.produce(Date.today, &amp;:succ) #=&gt; infinite sequence of dates</div><div class='add'>+        dates.detect(&amp;:tuesday?) #=&gt; next Tuesday</div><div class='add'>+</div><div class='add'>+    * Added Enumerator::Lazy#eager that generates a non-lazy enumerator</div><div class='add'>+      from a lazy enumerator.  [Feature #15901]</div><div class='add'>+</div><div class='add'>+        a = %w(foo bar baz)</div><div class='add'>+        e = a.lazy.map {|x| x.upcase }.map {|x| x + "!" }.eager</div><div class='add'>+        p e.class               #=&gt; Enumerator</div><div class='add'>+        p e.map {|x| x + "?" }  #=&gt; ["FOO!?", "BAR!?", "BAZ!?"]</div><div class='add'>+</div><div class='add'>+    * Added Enumerator::Yielder#to_proc so that a Yielder object</div><div class='add'>+      can be directly passed to another method as a block</div><div class='add'>+      argument.  [Feature #15618]</div><div class='add'>+</div><div class='add'>+    * Added Enumerator::Lazy#with_index be lazy</div><div class='add'>+      Previously, Enumerator::Lazy#with_index was not defined, so it</div><div class='add'>+      picked up the default implementation from Enumerator, which was</div><div class='add'>+      not lazy.  [Bug #7877]</div><div class='add'>+</div><div class='add'>+        ("a"..).lazy.with_index(1) { |it, index| puts "#{index}:#{it}" }.take(3).force</div><div class='add'>+        # =&gt; 1:a</div><div class='add'>+        #    2:b</div><div class='add'>+        #    3:c</div><div class='add'>+</div><div class='add'>+[Fiber]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added Fiber#raise that behaves like Fiber#resume but raises an</div><div class='add'>+      exception on the resumed fiber.  [Feature #10344]</div><div class='add'>+</div><div class='add'>+[File]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added File.absolute_path? to check whether a path is absolute or</div><div class='add'>+      not in a portable way. [Feature #15868]</div><div class='add'>+</div><div class='add'>+        File.absolute_path?("/foo")   # =&gt; true (on *nix)</div><div class='add'>+        File.absolute_path?("C:/foo") # =&gt; true (on Windows)</div><div class='add'>+        File.absolute_path?("foo")    # =&gt; false</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * File.extname now returns a dot string for names ending with a dot on</div><div class='add'>+      non-Windows platforms.  [Bug #15267]</div><div class='add'>+</div><div class='add'>+          File.extname("foo.") #=&gt; "."</div><div class='add'>+</div><div class='add'>+[FrozenError]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added FrozenError#receiver to return the frozen object on which</div><div class='add'>+      modification was attempted.  To set this object when raising</div><div class='add'>+      FrozenError in Ruby code, FrozenError.new accepts a +:receiver+</div><div class='add'>+      option.  [Feature #15751]</div><div class='add'>+</div><div class='add'>+[GC]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added GC.compact method for compacting the heap.</div><div class='add'>+      This function compacts live objects in the heap so that fewer pages may</div><div class='add'>+      be used, and the heap may be more CoW (copy-on-write) friendly. [Feature #15626]</div><div class='add'>+</div><div class='add'>+      Details on the algorithm and caveats can be found here:</div><div class='add'>+      https://bugs.ruby-lang.org/issues/15626</div><div class='add'>+</div><div class='add'>+[IO]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added IO#set_encoding_by_bom to check the BOM and set the external</div><div class='add'>+      encoding.  [Bug #15210]</div><div class='add'>+</div><div class='add'>+[Integer]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * Integer#[] now supports range operations.  [Feature #8842]</div><div class='add'>+</div><div class='add'>+         0b01001101[2, 4]  #=&gt; 0b0011</div><div class='add'>+         0b01001100[2..5]  #=&gt; 0b0011</div><div class='add'>+         0b01001100[2...6] #=&gt; 0b0011</div><div class='add'>+         #   ^^^^</div><div class='add'>+</div><div class='add'>+[Method]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * Method#inspect shows more information. [Feature #14145]</div><div class='add'>+</div><div class='add'>+[Module]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Added Module#const_source_location to retrieve the location where a</div><div class='add'>+      constant is defined.  [Feature #10771]</div><div class='add'>+</div><div class='add'>+    * Added Module#ruby2_keywords for marking a method as passing keyword</div><div class='add'>+      arguments through a regular argument splat, useful when delegating</div><div class='add'>+      all arguments to another method in a way that can be backwards</div><div class='add'>+      compatible with older Ruby versions.  [Bug #16154]</div><div class='add'>+</div><div class='add'>+  [Modified methods]</div><div class='add'>+</div><div class='add'>+    * Module#autoload? now takes an +inherit+ optional argument, like</div><div class='add'>+      Module#const_defined?.  [Feature #15777]</div><div class='add'>+</div><div class='add'>+    * Module#name now always returns a frozen String. The returned String is</div><div class='add'>+      always the same for a given Module. This change is</div><div class='add'>+      experimental. [Feature #16150]</div><div class='add'>+</div><div class='add'>+[NilClass / TrueClass / FalseClass]</div><div class='add'>+</div><div class='add'>+  [Modified methods]</div><div class='add'>+</div><div class='add'>+    * NilClass#to_s, TrueClass#to_s, and FalseClass#to_s now always return a</div><div class='add'>+      frozen String. The returned String is always the same for each of these</div><div class='add'>+      values. This change is experimental. [Feature #16150]</div><div class='add'>+</div><div class='add'>+[ObjectSpace::WeakMap]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * ObjectSpace::WeakMap#[]= now accepts special objects as either key or</div><div class='add'>+      values.  [Feature #16035]</div><div class='add'>+</div><div class='add'>+[Proc]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added Proc#ruby2_keywords for marking the proc as passing keyword</div><div class='add'>+      arguments through a regular argument splat, useful when delegating</div><div class='add'>+      all arguments to another method or proc in a way that can be backwards</div><div class='add'>+      compatible with older Ruby versions.  [Feature #16404]</div><div class='add'>+</div><div class='add'>+[Range]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added Range#minmax, with a faster implementation than Enumerable#minmax.</div><div class='add'>+      It returns a maximum that now corresponds to Range#max. [Bug #15807]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * Range#=== now uses Range#cover? for String arguments, too (in Ruby 2.6, it was</div><div class='add'>+      changed from Range#include? for all types except strings). [Bug #15449]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+[RubyVM]</div><div class='add'>+</div><div class='add'>+  [Removed method]</div><div class='add'>+</div><div class='add'>+    * +RubyVM.resolve_feature_path+ moved to</div><div class='add'>+      &lt;code&gt;$LOAD_PATH.resolve_feature_path&lt;/code&gt;.  [Feature #15903] [Feature #15230]</div><div class='add'>+</div><div class='add'>+[String]</div><div class='add'>+</div><div class='add'>+  [Unicode]</div><div class='add'>+</div><div class='add'>+    * Update Unicode version and Emoji version from 11.0.0 to</div><div class='add'>+      12.0.0.  [Feature #15321]</div><div class='add'>+</div><div class='add'>+    * Update Unicode version to 12.1.0, adding support for</div><div class='add'>+      U+32FF SQUARE ERA NAME REIWA.  [Feature #15195]</div><div class='add'>+</div><div class='add'>+    * Update Unicode Emoji version to 12.1. [Feature #16272]</div><div class='add'>+</div><div class='add'>+[Symbol]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Added Symbol#start_with? and Symbol#end_with? methods.  [Feature #16348]</div><div class='add'>+</div><div class='add'>+[Time]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Added Time#ceil method.  [Feature #15772]</div><div class='add'>+</div><div class='add'>+    * Added Time#floor method.  [Feature #15653]</div><div class='add'>+</div><div class='add'>+  [Modified method]</div><div class='add'>+</div><div class='add'>+    * Time#inspect is separated from Time#to_s and it shows</div><div class='add'>+      the time's sub second.  [Feature #15958]</div><div class='add'>+</div><div class='add'>+[UnboundMethod]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added UnboundMethod#bind_call method.  [Feature #15955]</div><div class='add'>+</div><div class='add'>+      &lt;code&gt;umethod.bind_call(obj, ...)&lt;/code&gt; is semantically equivalent</div><div class='add'>+      to &lt;code&gt;umethod.bind(obj).call(...)&lt;/code&gt;.  This idiom is used in</div><div class='add'>+      some libraries to call a method that is overridden.  The added</div><div class='add'>+      method does the same without allocation of an intermediate Method</div><div class='add'>+      object.</div><div class='add'>+</div><div class='add'>+          class Foo</div><div class='add'>+            def add_1(x)</div><div class='add'>+              x + 1</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+          class Bar &lt; Foo</div><div class='add'>+            def add_1(x) # override</div><div class='add'>+              x + 2</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          obj = Bar.new</div><div class='add'>+          p obj.add_1(1) #=&gt; 3</div><div class='add'>+          p Foo.instance_method(:add_1).bind(obj).call(1) #=&gt; 2</div><div class='add'>+          p Foo.instance_method(:add_1).bind_call(obj, 1) #=&gt; 2</div><div class='add'>+</div><div class='add'>+[Warning]</div><div class='add'>+</div><div class='add'>+  [New methods]</div><div class='add'>+</div><div class='add'>+    * Added Warning.[] and Warning.[]= to manage emitting/suppressing</div><div class='add'>+      some categories of warnings.  [Feature #16345] [Feature #16420]</div><div class='add'>+</div><div class='add'>+[$LOAD_PATH]</div><div class='add'>+</div><div class='add'>+  [New method]</div><div class='add'>+</div><div class='add'>+    * Added &lt;code&gt;$LOAD_PATH.resolve_feature_path&lt;/code&gt;.  [Feature #15903] [Feature #15230]</div><div class='add'>+</div><div class='add'>+=== Stdlib updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+[Bundler]</div><div class='add'>+</div><div class='add'>+  * Upgrade to Bundler 2.1.2.</div><div class='add'>+    See https://github.com/bundler/bundler/releases/tag/v2.1.2</div><div class='add'>+</div><div class='add'>+[CGI]</div><div class='add'>+</div><div class='add'>+  * CGI.escapeHTML becomes 2~5x faster when there is at least one escaped character.</div><div class='add'>+    See https://github.com/ruby/ruby/pull/2226</div><div class='add'>+</div><div class='add'>+[CSV]</div><div class='add'>+</div><div class='add'>+  * Upgrade to 3.1.2.</div><div class='add'>+    See https://github.com/ruby/csv/blob/master/NEWS.md.</div><div class='add'>+</div><div class='add'>+[Date]</div><div class='add'>+</div><div class='add'>+  * Date.jisx0301, Date#jisx0301, and Date.parse support the new Japanese</div><div class='add'>+    era.  [Feature #15742]</div><div class='add'>+</div><div class='add'>+[Delegator]</div><div class='add'>+</div><div class='add'>+  * Object#DelegateClass accepts a block and module_evals it in the context</div><div class='add'>+    of the returned class, similar to Class.new and Struct.new.</div><div class='add'>+</div><div class='add'>+[ERB]</div><div class='add'>+</div><div class='add'>+  * Prohibit marshaling ERB instance.</div><div class='add'>+</div><div class='add'>+[IRB]</div><div class='add'>+</div><div class='add'>+  * Introduce syntax highlighting inspired by the Pry gem to Binding#irb</div><div class='add'>+    source lines, REPL input, and inspect output of some core-class objects.</div><div class='add'>+</div><div class='add'>+  * Introduce multiline editing mode provided by Reline.</div><div class='add'>+</div><div class='add'>+  * Show documentation when completion.</div><div class='add'>+</div><div class='add'>+  * Enable auto indent and save/load history by default.</div><div class='add'>+</div><div class='add'>+[JSON]</div><div class='add'>+</div><div class='add'>+  * Upgrade to 2.3.0.</div><div class='add'>+</div><div class='add'>+[Net::FTP]</div><div class='add'>+</div><div class='add'>+  * Add Net::FTP#features to check available features, and Net::FTP#option to</div><div class='add'>+    enable/disable each of them.  [Feature #15964]</div><div class='add'>+</div><div class='add'>+[Net::HTTP]</div><div class='add'>+</div><div class='add'>+  * Add +ipaddr+ optional parameter to Net::HTTP#start to replace the address for</div><div class='add'>+    the TCP/IP connection. [Feature #5180]</div><div class='add'>+</div><div class='add'>+[Net::IMAP]</div><div class='add'>+</div><div class='add'>+  * Add Server Name Indication (SNI) support.  [Feature #15594]</div><div class='add'>+</div><div class='add'>+[open-uri]</div><div class='add'>+</div><div class='add'>+  * Warn open-uri's "open" method at Kernel.</div><div class='add'>+    Use URI.open instead.  [Misc #15893]</div><div class='add'>+</div><div class='add'>+  * The default charset of "text/*" media type is UTF-8 instead of</div><div class='add'>+    ISO-8859-1.  [Bug #15933]</div><div class='add'>+</div><div class='add'>+[OptionParser]</div><div class='add'>+</div><div class='add'>+  * Now show "Did you mean?" for unknown options.  [Feature #16256]</div><div class='add'>+</div><div class='add'>+    test.rb:</div><div class='add'>+</div><div class='add'>+      require "optparse"</div><div class='add'>+      OptionParser.new do |opts|</div><div class='add'>+        opts.on("-f", "--foo", "foo") {|v| }</div><div class='add'>+        opts.on("-b", "--bar", "bar") {|v| }</div><div class='add'>+        opts.on("-c", "--baz", "baz") {|v| }</div><div class='add'>+      end.parse!</div><div class='add'>+</div><div class='add'>+    example:</div><div class='add'>+</div><div class='add'>+      $ ruby test.rb --baa</div><div class='add'>+      Traceback (most recent call last):</div><div class='add'>+      test.rb:7:in `&lt;main&gt;': invalid option: --baa (OptionParser::InvalidOption)</div><div class='add'>+      Did you mean?  baz</div><div class='add'>+                     bar</div><div class='add'>+</div><div class='add'>+[Pathname]</div><div class='add'>+</div><div class='add'>+  * Pathname.glob now delegates 3 arguments to Dir.glob</div><div class='add'>+    to accept +base+ keyword. [Feature #14405]</div><div class='add'>+</div><div class='add'>+[Racc]</div><div class='add'>+</div><div class='add'>+  * Merge 1.4.15 from upstream repository and added cli of racc.</div><div class='add'>+</div><div class='add'>+[Reline]</div><div class='add'>+</div><div class='add'>+  * New stdlib that is compatible with the readline stdlib but is</div><div class='add'>+    implemented in pure Ruby. It also provides a multiline editing mode.</div><div class='add'>+</div><div class='add'>+[REXML]</div><div class='add'>+</div><div class='add'>+  * Upgrade to 3.2.3.</div><div class='add'>+    See https://github.com/ruby/rexml/blob/master/NEWS.md.</div><div class='add'>+</div><div class='add'>+[RSS]</div><div class='add'>+</div><div class='add'>+  * Upgrade to RSS 0.2.8.</div><div class='add'>+    See https://github.com/ruby/rss/blob/master/NEWS.md.</div><div class='add'>+</div><div class='add'>+[RubyGems]</div><div class='add'>+</div><div class='add'>+  * Upgrade to RubyGems 3.1.2.</div><div class='add'>+    * https://github.com/rubygems/rubygems/releases/tag/v3.1.0</div><div class='add'>+    * https://github.com/rubygems/rubygems/releases/tag/v3.1.1</div><div class='add'>+    * https://github.com/rubygems/rubygems/releases/tag/v3.1.2</div><div class='add'>+</div><div class='add'>+[StringScanner]</div><div class='add'>+</div><div class='add'>+  * Upgrade to 1.0.3.</div><div class='add'>+    See https://github.com/ruby/strscan/blob/master/NEWS.md.</div><div class='add'>+</div><div class='add'>+=== Compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* The following libraries are no longer bundled gems.</div><div class='add'>+  Install corresponding gems to use these features.</div><div class='add'>+  * CMath (cmath gem)</div><div class='add'>+  * Scanf (scanf gem)</div><div class='add'>+  * Shell (shell gem)</div><div class='add'>+  * Synchronizer (sync gem)</div><div class='add'>+  * ThreadsWait (thwait gem)</div><div class='add'>+  * E2MM (e2mmap gem)</div><div class='add'>+</div><div class='add'>+[Proc]</div><div class='add'>+  * The Proc#to_s format was changed. [Feature #16101]</div><div class='add'>+</div><div class='add'>+[Range]</div><div class='add'>+  * Range#minmax used to iterate on the range to determine the maximum.</div><div class='add'>+    It now uses the same algorithm as Range#max. In rare cases (e.g.</div><div class='add'>+    ranges of Floats or Strings), this may yield different results. [Bug #15807]</div><div class='add'>+</div><div class='add'>+=== Stdlib compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* Promote stdlib to default gems</div><div class='add'>+  * The following default gems were published on rubygems.org</div><div class='add'>+    * benchmark</div><div class='add'>+    * cgi</div><div class='add'>+    * delegate</div><div class='add'>+    * getoptlong</div><div class='add'>+    * net-pop</div><div class='add'>+    * net-smtp</div><div class='add'>+    * open3</div><div class='add'>+    * pstore</div><div class='add'>+    * readline</div><div class='add'>+    * readline-ext</div><div class='add'>+    * singleton</div><div class='add'>+  * The following default gems were only promoted at ruby-core,</div><div class='add'>+    but not yet published on rubygems.org.</div><div class='add'>+    * monitor</div><div class='add'>+    * observer</div><div class='add'>+    * timeout</div><div class='add'>+    * tracer</div><div class='add'>+    * uri</div><div class='add'>+    * yaml</div><div class='add'>+* The &lt;tt&gt;did_you_mean&lt;/tt&gt; gem has been promoted up to a default gem from a bundled gem</div><div class='add'>+</div><div class='add'>+[pathname]</div><div class='add'>+</div><div class='add'>+  * Kernel#Pathname when called with a Pathname argument now returns</div><div class='add'>+    the argument instead of creating a new Pathname. This is more</div><div class='add'>+    similar to other Kernel methods, but can break code that modifies</div><div class='add'>+    the return value and expects the argument not to be modified.</div><div class='add'>+</div><div class='add'>+[profile.rb, Profiler__]</div><div class='add'>+</div><div class='add'>+  * Removed from standard library. It was unmaintained since Ruby 2.0.0.</div><div class='add'>+</div><div class='add'>+=== C API updates</div><div class='add'>+</div><div class='add'>+* Many &lt;code&gt;*_kw&lt;/code&gt; functions have been added for setting whether</div><div class='add'>+  the final argument being passed should be treated as keywords. You</div><div class='add'>+  may need to switch to these functions to avoid keyword argument</div><div class='add'>+  separation warnings, and to ensure correct behavior in Ruby 3.</div><div class='add'>+</div><div class='add'>+* The &lt;code&gt;:&lt;/code&gt; character in rb_scan_args format string is now</div><div class='add'>+  treated as keyword arguments. Passing a positional hash instead of</div><div class='add'>+  keyword arguments will emit a deprecation warning.</div><div class='add'>+</div><div class='add'>+* C API declarations with +ANYARGS+ are changed not to use +ANYARGS+.</div><div class='add'>+  See https://github.com/ruby/ruby/pull/2404</div><div class='add'>+</div><div class='add'>+=== Implementation improvements</div><div class='add'>+</div><div class='add'>+[Fiber]</div><div class='add'>+</div><div class='add'>+  * Allow selecting different coroutine implementations by using</div><div class='add'>+    +--with-coroutine=+, e.g.</div><div class='add'>+</div><div class='add'>+         $ ./configure --with-coroutine=ucontext</div><div class='add'>+         $ ./configure --with-coroutine=copy</div><div class='add'>+</div><div class='add'>+  * Replace previous stack cache with fiber pool cache. The fiber pool</div><div class='add'>+    allocates many stacks in a single memory region. Stack allocation</div><div class='add'>+    becomes O(log N) and fiber creation is amortized O(1). Around 10x</div><div class='add'>+    performance improvement was measured in micro-benchmarks.</div><div class='add'>+    https://github.com/ruby/ruby/pull/2224</div><div class='add'>+</div><div class='add'>+[File]</div><div class='add'>+  * File.realpath now uses realpath(3) on many platforms, which can</div><div class='add'>+    significantly improve performance. [Feature #15797]</div><div class='add'>+</div><div class='add'>+[Hash]</div><div class='add'>+  * Change data structure of small Hash objects. [Feature #15602]</div><div class='add'>+</div><div class='add'>+[Monitor]</div><div class='add'>+  * Monitor class is written in C-extension. [Feature #16255]</div><div class='add'>+</div><div class='add'>+[Thread]</div><div class='add'>+</div><div class='add'>+  * VM stack memory allocation is now combined with native thread stack,</div><div class='add'>+    improving thread allocation performance and reducing allocation related</div><div class='add'>+    failures. Around 10x performance improvement was measured in micro-benchmarks.</div><div class='add'>+</div><div class='add'>+[JIT]</div><div class='add'>+</div><div class='add'>+  * JIT-ed code is recompiled to less-optimized code when an optimization assumption is invalidated.</div><div class='add'>+</div><div class='add'>+  * Method inlining is performed when a method is considered as pure.</div><div class='add'>+    This optimization is still experimental and many methods are NOT considered as pure yet.</div><div class='add'>+</div><div class='add'>+  * The default value of +--jit-max-cache+ is changed from 1,000 to 100.</div><div class='add'>+</div><div class='add'>+  * The default value of +--jit-min-calls+ is changed from 5 to 10,000.</div><div class='add'>+</div><div class='add'>+[RubyVM]</div><div class='add'>+</div><div class='add'>+  * Per-call-site method cache, which has been there since around 1.9, was</div><div class='add'>+    improved: cache hit rate raised from 89% to 94%.</div><div class='add'>+    See https://github.com/ruby/ruby/pull/2583</div><div class='add'>+</div><div class='add'>+[RubyVM::InstructionSequence]</div><div class='add'>+</div><div class='add'>+  * RubyVM::InstructionSequence#to_binary method generates compiled binary.</div><div class='add'>+    The binary size is reduced. [Feature #16163]</div><div class='add'>+</div><div class='add'>+=== Miscellaneous changes</div><div class='add'>+</div><div class='add'>+* Support for IA64 architecture has been removed. Hardware for testing was</div><div class='add'>+  difficult to find, native fiber code is difficult to implement, and it added</div><div class='add'>+  non-trivial complexity to the interpreter. [Feature #15894]</div><div class='add'>+</div><div class='add'>+* Require compilers to support C99. [Misc #15347]</div><div class='add'>+</div><div class='add'>+  * Details of our dialect: https://bugs.ruby-lang.org/projects/ruby-master/wiki/C99</div><div class='add'>+</div><div class='add'>+* Ruby's upstream repository is changed from Subversion to Git.</div><div class='add'>+</div><div class='add'>+  * https://git.ruby-lang.org/ruby.git</div><div class='add'>+</div><div class='add'>+  * RUBY_REVISION class is changed from Integer to String.</div><div class='add'>+</div><div class='add'>+  * RUBY_DESCRIPTION includes Git revision instead of Subversion's one.</div><div class='add'>+</div><div class='add'>+* Support built-in methods in Ruby with the &lt;code&gt;_\_builtin_&lt;/code&gt; syntax. [Feature #16254]</div><div class='add'>+</div><div class='add'>+  Some methods are defined in *.rb (such as trace_point.rb).</div><div class='add'>+  For example, it is easy to define a method which accepts keyword arguments.</div><div class='head'>diff --git a/doc/NEWS/NEWS-3.0.0.md b/doc/NEWS/NEWS-3.0.0.md<br/>new file mode 100644<br/>index 0000000000..bdbd47327b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-3.0.0.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-3.0.0.md</a></div><div class='hunk'>@@ -0,0 +1,829 @@</div><div class='add'>+# NEWS for Ruby 3.0.0</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes</div><div class='add'>+since the **2.7.0** release, except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept to a minimum, see links for details.</div><div class='add'>+</div><div class='add'>+## Language changes</div><div class='add'>+</div><div class='add'>+* Keyword arguments are now separated from positional arguments.</div><div class='add'>+  Code that resulted in deprecation warnings in Ruby 2.7 will now</div><div class='add'>+  result in ArgumentError or different behavior. [[Feature #14183]]</div><div class='add'>+</div><div class='add'>+* Procs accepting a single rest argument and keywords are no longer</div><div class='add'>+  subject to autosplatting.  This now matches the behavior of Procs</div><div class='add'>+  accepting a single rest argument and no keywords.</div><div class='add'>+  [[Feature #16166]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    pr = proc{|*a, **kw| [a, kw]}</div><div class='add'>+</div><div class='add'>+    pr.call([1])</div><div class='add'>+    # 2.7 =&gt; [[1], {}]</div><div class='add'>+    # 3.0 =&gt; [[[1]], {}]</div><div class='add'>+</div><div class='add'>+    pr.call([1, {a: 1}])</div><div class='add'>+    # 2.7 =&gt; [[1], {:a=&gt;1}] # and deprecation warning</div><div class='add'>+    # 3.0 =&gt; [[[1, {:a=&gt;1}]], {}]</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+* Arguments forwarding (`...`) now supports leading arguments.</div><div class='add'>+  [[Feature #16378]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    def method_missing(meth, ...)</div><div class='add'>+      send(:"do_#{meth}", ...)</div><div class='add'>+    end</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+* Pattern matching (`case/in`) is no longer experimental. [[Feature #17260]]</div><div class='add'>+</div><div class='add'>+* One-line pattern matching is redesigned.  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+    * `=&gt;` is added. It can be used like a rightward assignment.</div><div class='add'>+      [[Feature #17260]]</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        0 =&gt; a</div><div class='add'>+        p a #=&gt; 0</div><div class='add'>+</div><div class='add'>+        {b: 0, c: 1} =&gt; {b:}</div><div class='add'>+        p b #=&gt; 0</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+    * `in` is changed to return `true` or `false`. [[Feature #17371]]</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        # version 3.0</div><div class='add'>+        0 in 1 #=&gt; false</div><div class='add'>+</div><div class='add'>+        # version 2.7</div><div class='add'>+        0 in 1 #=&gt; raise NoMatchingPatternError</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+* Find-pattern is added.  [EXPERIMENTAL]</div><div class='add'>+  [[Feature #16828]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    case ["a", 1, "b", "c", 2, "d", "e", "f", 3]</div><div class='add'>+    in [*pre, String =&gt; x, String =&gt; y, *post]</div><div class='add'>+      p pre  #=&gt; ["a", 1]</div><div class='add'>+      p x    #=&gt; "b"</div><div class='add'>+      p y    #=&gt; "c"</div><div class='add'>+      p post #=&gt; [2, "d", "e", "f", 3]</div><div class='add'>+    end</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+* Endless method definition is added.  [EXPERIMENTAL]</div><div class='add'>+  [[Feature #16746]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    def square(x) = x * x</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+* Interpolated String literals are no longer frozen when</div><div class='add'>+  `# frozen-string-literal: true` is used. [[Feature #17104]]</div><div class='add'>+</div><div class='add'>+* Magic comment `shareable_constant_value` added to freeze constants.</div><div class='add'>+  See {Magic Comments}[rdoc-ref:syntax/comments.rdoc@Magic+Comments] for more details.</div><div class='add'>+  [[Feature #17273]]</div><div class='add'>+</div><div class='add'>+* A {static analysis}[rdoc-label:label-Static+analysis] foundation is</div><div class='add'>+  introduced.</div><div class='add'>+    * {RBS}[rdoc-label:label-RBS] is introduced. It is a type definition</div><div class='add'>+      language for Ruby programs.</div><div class='add'>+    * {TypeProf}[rdoc-label:label-TypeProf] is experimentally bundled. It is a</div><div class='add'>+      type analysis tool for Ruby programs.</div><div class='add'>+</div><div class='add'>+* Deprecation warnings are no longer shown by default (since Ruby 2.7.2).</div><div class='add'>+  Turn them on with `-W:deprecated` (or with `-w` to show other warnings too).</div><div class='add'>+  [[Feature #16345]]</div><div class='add'>+</div><div class='add'>+* `$SAFE` and `$KCODE` are now normal global variables with no special behavior.</div><div class='add'>+  C-API methods related to `$SAFE` have been removed.</div><div class='add'>+  [[Feature #16131]] [[Feature #17136]]</div><div class='add'>+</div><div class='add'>+* yield in singleton class definitions in methods is now a SyntaxError</div><div class='add'>+  instead of a warning. yield in a class definition outside of a method</div><div class='add'>+  is now a SyntaxError instead of a LocalJumpError.  [[Feature #15575]]</div><div class='add'>+</div><div class='add'>+* When a class variable is overtaken by the same definition in an</div><div class='add'>+  ancestor class/module, a RuntimeError is now raised (previously,</div><div class='add'>+  it only issued a warning in verbose mode).  Additionally, accessing a</div><div class='add'>+  class variable from the toplevel scope is now a RuntimeError.</div><div class='add'>+  [[Bug #14541]]</div><div class='add'>+</div><div class='add'>+* Assigning to a numbered parameter is now a SyntaxError instead of</div><div class='add'>+  a warning.</div><div class='add'>+</div><div class='add'>+## Command line options</div><div class='add'>+</div><div class='add'>+### `--help` option</div><div class='add'>+</div><div class='add'>+When the environment variable `RUBY_PAGER` or `PAGER` is present and has</div><div class='add'>+a non-empty value, and the standard input and output are tty, the `--help`</div><div class='add'>+option shows the help message via the pager designated by the value.</div><div class='add'>+[[Feature #16754]]</div><div class='add'>+</div><div class='add'>+### `--backtrace-limit` option</div><div class='add'>+</div><div class='add'>+The `--backtrace-limit` option limits the maximum length of a backtrace.</div><div class='add'>+[[Feature #8661]]</div><div class='add'>+</div><div class='add'>+## Core classes updates</div><div class='add'>+</div><div class='add'>+Outstanding ones only.</div><div class='add'>+</div><div class='add'>+* Array</div><div class='add'>+</div><div class='add'>+    * The following methods now return Array instances instead of</div><div class='add'>+      subclass instances when called on subclass instances:</div><div class='add'>+      [[Bug #6087]]</div><div class='add'>+</div><div class='add'>+        * Array#drop</div><div class='add'>+        * Array#drop_while</div><div class='add'>+        * Array#flatten</div><div class='add'>+        * Array#slice!</div><div class='add'>+        * Array#slice / Array#[]</div><div class='add'>+        * Array#take</div><div class='add'>+        * Array#take_while</div><div class='add'>+        * Array#uniq</div><div class='add'>+        * Array#*</div><div class='add'>+</div><div class='add'>+    * Can be sliced with Enumerator::ArithmeticSequence</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        dirty_data = ['--', 'data1', '--', 'data2', '--', 'data3']</div><div class='add'>+        dirty_data[(1..).step(2)] # take each second element</div><div class='add'>+        # =&gt; ["data1", "data2", "data3"]</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+* Binding</div><div class='add'>+</div><div class='add'>+    * Binding#eval when called with one argument will use `"(eval)"`</div><div class='add'>+      for `__FILE__` and `1` for `__LINE__` in the evaluated code.</div><div class='add'>+      [[Bug #4352]] [[Bug #17419]]</div><div class='add'>+</div><div class='add'>+* ConditionVariable</div><div class='add'>+</div><div class='add'>+    * ConditionVariable#wait may now invoke the `block`/`unblock` scheduler</div><div class='add'>+      hooks in a non-blocking context. [[Feature #16786]]</div><div class='add'>+</div><div class='add'>+* Dir</div><div class='add'>+</div><div class='add'>+    * Dir.glob and Dir.[] now sort the results by default, and</div><div class='add'>+      accept the `sort:` keyword option.  [[Feature #8709]]</div><div class='add'>+</div><div class='add'>+* ENV</div><div class='add'>+</div><div class='add'>+    * ENV.except has been added, which returns a hash excluding the</div><div class='add'>+      given keys and their values.  [[Feature #15822]]</div><div class='add'>+</div><div class='add'>+    * Windows: Read ENV names and values as UTF-8 encoded Strings</div><div class='add'>+      [[Feature #12650]]</div><div class='add'>+</div><div class='add'>+* Encoding</div><div class='add'>+</div><div class='add'>+    * Added new encoding IBM720.  [[Feature #16233]]</div><div class='add'>+</div><div class='add'>+    * Changed default for Encoding.default_external to UTF-8 on Windows</div><div class='add'>+      [[Feature #16604]]</div><div class='add'>+</div><div class='add'>+* Fiber</div><div class='add'>+</div><div class='add'>+    * Fiber.new(blocking: true/false) allows you to create non-blocking</div><div class='add'>+      execution contexts. [[Feature #16786]]</div><div class='add'>+</div><div class='add'>+    * Fiber#blocking? tells whether the fiber is non-blocking. [[Feature #16786]]</div><div class='add'>+</div><div class='add'>+    * Fiber#backtrace and Fiber#backtrace_locations provide per-fiber backtrace.</div><div class='add'>+      [[Feature #16815]]</div><div class='add'>+</div><div class='add'>+    * The limitation of Fiber#transfer is relaxed. [[Bug #17221]]</div><div class='add'>+</div><div class='add'>+* GC</div><div class='add'>+</div><div class='add'>+    * GC.auto_compact= and GC.auto_compact have been added to control</div><div class='add'>+      when compaction runs.  Setting `auto_compact=` to `true` will cause</div><div class='add'>+      compaction to occur during major collections.  At the moment,</div><div class='add'>+      compaction adds significant overhead to major collections, so please</div><div class='add'>+      test first!  [[Feature #17176]]</div><div class='add'>+</div><div class='add'>+* Hash</div><div class='add'>+</div><div class='add'>+    * Hash#transform_keys and Hash#transform_keys! now accept a hash that maps</div><div class='add'>+      keys to new keys.  [[Feature #16274]]</div><div class='add'>+</div><div class='add'>+    * Hash#except has been added, which returns a hash excluding the</div><div class='add'>+      given keys and their values.  [[Feature #15822]]</div><div class='add'>+</div><div class='add'>+* IO</div><div class='add'>+</div><div class='add'>+    * IO#nonblock? now defaults to `true`. [[Feature #16786]]</div><div class='add'>+</div><div class='add'>+    * IO#wait_readable, IO#wait_writable, IO#read, IO#write and other</div><div class='add'>+      related methods (e.g. IO#puts, IO#gets) may invoke the scheduler hook</div><div class='add'>+      `#io_wait(io, events, timeout)` in a non-blocking execution context.</div><div class='add'>+      [[Feature #16786]]</div><div class='add'>+</div><div class='add'>+* Kernel</div><div class='add'>+</div><div class='add'>+    * Kernel#clone when called with the `freeze: false` keyword will call</div><div class='add'>+      `#initialize_clone` with the `freeze: false` keyword.</div><div class='add'>+      [[Bug #14266]]</div><div class='add'>+</div><div class='add'>+    * Kernel#clone when called with the `freeze: true` keyword will call</div><div class='add'>+      `#initialize_clone` with the `freeze: true` keyword, and will</div><div class='add'>+      return a frozen copy even if the receiver is unfrozen.</div><div class='add'>+      [[Feature #16175]]</div><div class='add'>+</div><div class='add'>+    * Kernel#eval when called with two arguments will use `"(eval)"`</div><div class='add'>+      for `__FILE__` and `1` for `__LINE__` in the evaluated code.</div><div class='add'>+      [[Bug #4352]]</div><div class='add'>+</div><div class='add'>+    * Kernel#lambda now warns if called without a literal block.</div><div class='add'>+      [[Feature #15973]]</div><div class='add'>+</div><div class='add'>+    * Kernel.sleep invokes the scheduler hook `#kernel_sleep(...)` in a</div><div class='add'>+      non-blocking execution context. [[Feature #16786]]</div><div class='add'>+</div><div class='add'>+* Module</div><div class='add'>+</div><div class='add'>+    * Module#include and Module#prepend now affect classes and modules</div><div class='add'>+      that have already included or prepended the receiver, mirroring the</div><div class='add'>+      behavior if the arguments were included in the receiver before</div><div class='add'>+      the other modules and classes included or prepended the receiver.</div><div class='add'>+      [[Feature #9573]]</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        class C; end</div><div class='add'>+        module M1; end</div><div class='add'>+        module M2; end</div><div class='add'>+        C.include M1</div><div class='add'>+        M1.include M2</div><div class='add'>+        p C.ancestors #=&gt; [C, M1, M2, Object, Kernel, BasicObject]</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+    * Module#public, Module#protected, Module#private, Module#public_class_method,</div><div class='add'>+      Module#private_class_method, toplevel "private" and "public" methods</div><div class='add'>+      now accept single array argument with a list of method names. [[Feature #17314]]</div><div class='add'>+</div><div class='add'>+    * Module#attr_accessor, Module#attr_reader, Module#attr_writer and Module#attr</div><div class='add'>+      methods now return an array of defined method names as symbols.</div><div class='add'>+      [[Feature #17314]]</div><div class='add'>+</div><div class='add'>+    * Module#alias_method now returns the defined alias as a symbol.</div><div class='add'>+      [[Feature #17314]]</div><div class='add'>+</div><div class='add'>+* Mutex</div><div class='add'>+</div><div class='add'>+    * `Mutex` is now acquired per-`Fiber` instead of per-`Thread`. This change</div><div class='add'>+      should be compatible for essentially all usages and avoids blocking when</div><div class='add'>+      using a scheduler. [[Feature #16792]]</div><div class='add'>+</div><div class='add'>+* Proc</div><div class='add'>+</div><div class='add'>+    * Proc#== and Proc#eql? are now defined and will return true for</div><div class='add'>+      separate Proc instances if the procs were created from the same block.</div><div class='add'>+      [[Feature #14267]]</div><div class='add'>+</div><div class='add'>+* Queue / SizedQueue</div><div class='add'>+</div><div class='add'>+    * Queue#pop, SizedQueue#push and related methods may now invoke the</div><div class='add'>+      `block`/`unblock` scheduler hooks in a non-blocking context.</div><div class='add'>+      [[Feature #16786]]</div><div class='add'>+</div><div class='add'>+* Ractor</div><div class='add'>+</div><div class='add'>+    * New class added to enable parallel execution. See rdoc-ref:ractor.md for</div><div class='add'>+      more details.</div><div class='add'>+</div><div class='add'>+* Random</div><div class='add'>+</div><div class='add'>+    * `Random::DEFAULT` now refers to the `Random` class instead of being a `Random` instance,</div><div class='add'>+      so it can work with `Ractor`.</div><div class='add'>+      [[Feature #17322]]</div><div class='add'>+</div><div class='add'>+    * `Random::DEFAULT` is deprecated since its value is now confusing and it is no longer global,</div><div class='add'>+      use `Kernel.rand`/`Random.rand` directly, or create a `Random` instance with `Random.new` instead.</div><div class='add'>+      [[Feature #17351]]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+* String</div><div class='add'>+</div><div class='add'>+    * The following methods now return or yield String instances</div><div class='add'>+      instead of subclass instances when called on subclass instances:</div><div class='add'>+      [[Bug #10845]]</div><div class='add'>+</div><div class='add'>+        * String#*</div><div class='add'>+        * String#capitalize</div><div class='add'>+        * String#center</div><div class='add'>+        * String#chomp</div><div class='add'>+        * String#chop</div><div class='add'>+        * String#delete</div><div class='add'>+        * String#delete_prefix</div><div class='add'>+        * String#delete_suffix</div><div class='add'>+        * String#downcase</div><div class='add'>+        * String#dump</div><div class='add'>+        * String#each_char</div><div class='add'>+        * String#each_grapheme_cluster</div><div class='add'>+        * String#each_line</div><div class='add'>+        * String#gsub</div><div class='add'>+        * String#ljust</div><div class='add'>+        * String#lstrip</div><div class='add'>+        * String#partition</div><div class='add'>+        * String#reverse</div><div class='add'>+        * String#rjust</div><div class='add'>+        * String#rpartition</div><div class='add'>+        * String#rstrip</div><div class='add'>+        * String#scrub</div><div class='add'>+        * String#slice!</div><div class='add'>+        * String#slice / String#[]</div><div class='add'>+        * String#split</div><div class='add'>+        * String#squeeze</div><div class='add'>+        * String#strip</div><div class='add'>+        * String#sub</div><div class='add'>+        * String#succ / String#next</div><div class='add'>+        * String#swapcase</div><div class='add'>+        * String#tr</div><div class='add'>+        * String#tr_s</div><div class='add'>+        * String#upcase</div><div class='add'>+</div><div class='add'>+* Symbol</div><div class='add'>+</div><div class='add'>+    * Symbol#to_proc now returns a lambda Proc.  [[Feature #16260]]</div><div class='add'>+</div><div class='add'>+    * Symbol#name has been added, which returns the name of the symbol</div><div class='add'>+      if it is named.  The returned string is frozen.  [[Feature #16150]]</div><div class='add'>+</div><div class='add'>+* Fiber</div><div class='add'>+</div><div class='add'>+    * Introduce Fiber.set_scheduler for intercepting blocking operations and</div><div class='add'>+      Fiber.scheduler for accessing the current scheduler. See</div><div class='add'>+      rdoc-ref:fiber.md for more details about what operations are supported and</div><div class='add'>+      how to implement the scheduler hooks. [[Feature #16786]]</div><div class='add'>+</div><div class='add'>+    * Fiber.blocking? tells whether the current execution context is</div><div class='add'>+      blocking. [[Feature #16786]]</div><div class='add'>+</div><div class='add'>+    * Thread#join invokes the scheduler hooks `block`/`unblock` in a</div><div class='add'>+      non-blocking execution context. [[Feature #16786]]</div><div class='add'>+</div><div class='add'>+* Thread</div><div class='add'>+</div><div class='add'>+    * Thread.ignore_deadlock accessor has been added for disabling the</div><div class='add'>+      default deadlock detection, allowing the use of signal handlers to</div><div class='add'>+      break deadlock. [[Bug #13768]]</div><div class='add'>+</div><div class='add'>+* Warning</div><div class='add'>+</div><div class='add'>+    * Warning#warn now supports a category keyword argument.</div><div class='add'>+      [[Feature #17122]]</div><div class='add'>+</div><div class='add'>+## Stdlib updates</div><div class='add'>+</div><div class='add'>+Outstanding ones only.</div><div class='add'>+</div><div class='add'>+* BigDecimal</div><div class='add'>+</div><div class='add'>+    * Update to BigDecimal 3.0.0</div><div class='add'>+</div><div class='add'>+    * This version is Ractor compatible.</div><div class='add'>+</div><div class='add'>+* Bundler</div><div class='add'>+</div><div class='add'>+    * Update to Bundler 2.2.3</div><div class='add'>+</div><div class='add'>+* CGI</div><div class='add'>+</div><div class='add'>+    * Update to 0.2.0</div><div class='add'>+</div><div class='add'>+    * This version is Ractor compatible.</div><div class='add'>+</div><div class='add'>+* CSV</div><div class='add'>+</div><div class='add'>+    * Update to CSV 3.1.9</div><div class='add'>+</div><div class='add'>+* Date</div><div class='add'>+</div><div class='add'>+    * Update to Date 3.1.1</div><div class='add'>+</div><div class='add'>+    * This version is Ractor compatible.</div><div class='add'>+</div><div class='add'>+* Digest</div><div class='add'>+</div><div class='add'>+    * Update to Digest 3.0.0</div><div class='add'>+</div><div class='add'>+    * This version is Ractor compatible.</div><div class='add'>+</div><div class='add'>+* Etc</div><div class='add'>+</div><div class='add'>+    * Update to Etc 1.2.0</div><div class='add'>+</div><div class='add'>+    * This version is Ractor compatible.</div><div class='add'>+</div><div class='add'>+* Fiddle</div><div class='add'>+</div><div class='add'>+    * Update to Fiddle 1.0.5</div><div class='add'>+</div><div class='add'>+* IRB</div><div class='add'>+</div><div class='add'>+    * Update to IRB 1.2.6</div><div class='add'>+</div><div class='add'>+* JSON</div><div class='add'>+</div><div class='add'>+    * Update to JSON 2.5.0</div><div class='add'>+</div><div class='add'>+    * This version is Ractor compatible.</div><div class='add'>+</div><div class='add'>+* Set</div><div class='add'>+</div><div class='add'>+    * Update to set 1.0.0</div><div class='add'>+</div><div class='add'>+    * SortedSet has been removed for dependency and performance reasons.</div><div class='add'>+</div><div class='add'>+    * Set#join is added as a shorthand for `.to_a.join`.</div><div class='add'>+</div><div class='add'>+    * Set#&lt;=&gt; is added.</div><div class='add'>+</div><div class='add'>+* Socket</div><div class='add'>+</div><div class='add'>+    * Add :connect_timeout to TCPSocket.new [[Feature #17187]]</div><div class='add'>+</div><div class='add'>+* Net::HTTP</div><div class='add'>+</div><div class='add'>+    * Net::HTTP#verify_hostname= and Net::HTTP#verify_hostname have been</div><div class='add'>+      added to skip hostname verification.  [[Feature #16555]]</div><div class='add'>+</div><div class='add'>+    * Net::HTTP.get, Net::HTTP.get_response, and Net::HTTP.get_print</div><div class='add'>+      can take the request headers as a Hash in the second argument when the</div><div class='add'>+      first argument is a URI.  [[Feature #16686]]</div><div class='add'>+</div><div class='add'>+* Net::SMTP</div><div class='add'>+</div><div class='add'>+    * Add SNI support.</div><div class='add'>+</div><div class='add'>+    * Net::SMTP.start arguments are keyword arguments.</div><div class='add'>+</div><div class='add'>+    * TLS should not check the host name by default.</div><div class='add'>+</div><div class='add'>+* OpenStruct</div><div class='add'>+</div><div class='add'>+    * Initialization is no longer lazy. [[Bug #12136]]</div><div class='add'>+</div><div class='add'>+    * Builtin methods can now be overridden safely. [[Bug #15409]]</div><div class='add'>+</div><div class='add'>+    * Implementation uses only methods ending with `!`.</div><div class='add'>+</div><div class='add'>+    * Ractor compatible.</div><div class='add'>+</div><div class='add'>+    * Improved support for YAML. [[Bug #8382]]</div><div class='add'>+</div><div class='add'>+    * Use officially discouraged. Read OpenStruct@Caveats section.</div><div class='add'>+</div><div class='add'>+* Pathname</div><div class='add'>+</div><div class='add'>+    * Ractor compatible.</div><div class='add'>+</div><div class='add'>+* Psych</div><div class='add'>+</div><div class='add'>+    * Update to Psych 3.3.0</div><div class='add'>+</div><div class='add'>+    * This version is Ractor compatible.</div><div class='add'>+</div><div class='add'>+* Reline</div><div class='add'>+</div><div class='add'>+    * Update to Reline 0.1.5</div><div class='add'>+</div><div class='add'>+* RubyGems</div><div class='add'>+</div><div class='add'>+    * Update to RubyGems 3.2.3</div><div class='add'>+</div><div class='add'>+* StringIO</div><div class='add'>+</div><div class='add'>+    * Update to StringIO 3.0.0</div><div class='add'>+</div><div class='add'>+    * This version is Ractor compatible.</div><div class='add'>+</div><div class='add'>+* StringScanner</div><div class='add'>+</div><div class='add'>+    * Update to StringScanner 3.0.0</div><div class='add'>+</div><div class='add'>+    * This version is Ractor compatible.</div><div class='add'>+</div><div class='add'>+* URI</div><div class='add'>+</div><div class='add'>+    * URI.escape and URI.unescape have been removed.</div><div class='add'>+      Instead, use the following methods depending on your specific use case.</div><div class='add'>+</div><div class='add'>+        * CGI.escape</div><div class='add'>+        * URI.encode_www_form</div><div class='add'>+        * URI.encode_www_form_component</div><div class='add'>+        * CGI.unescape</div><div class='add'>+        * URI.decode_www_form</div><div class='add'>+        * URI.decode_www_form_component</div><div class='add'>+</div><div class='add'>+## Compatibility issues</div><div class='add'>+</div><div class='add'>+Excluding feature bug fixes.</div><div class='add'>+</div><div class='add'>+* Regexp literals and all Range objects are frozen. [[Feature #8948]] [[Feature #16377]] [[Feature #15504]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    /foo/.frozen? #=&gt; true</div><div class='add'>+    (42...).frozen? # =&gt; true</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+* EXPERIMENTAL: Hash#each consistently yields a 2-element array. [[Bug #12706]]</div><div class='add'>+</div><div class='add'>+    * Now `{ a: 1 }.each(&amp;-&gt;(k, v) { })` raises an ArgumentError</div><div class='add'>+      due to lambda's arity check.</div><div class='add'>+</div><div class='add'>+* When writing to STDOUT redirected to a closed pipe, no broken pipe</div><div class='add'>+  error message will be shown now.  [[Feature #14413]]</div><div class='add'>+</div><div class='add'>+* `TRUE`/`FALSE`/`NIL` constants are no longer defined.</div><div class='add'>+</div><div class='add'>+* Integer#zero? overrides Numeric#zero? for optimization.  [[Misc #16961]]</div><div class='add'>+</div><div class='add'>+* Enumerable#grep and Enumerable#grep_v when passed a Regexp and no block no longer modify</div><div class='add'>+  Regexp.last_match. [[Bug #17030]]</div><div class='add'>+</div><div class='add'>+* Requiring 'open-uri' no longer redefines `Kernel#open`.</div><div class='add'>+  Call `URI.open` directly or `use URI#open` instead. [[Misc #15893]]</div><div class='add'>+</div><div class='add'>+* SortedSet has been removed for dependency and performance reasons.</div><div class='add'>+</div><div class='add'>+## Stdlib compatibility issues</div><div class='add'>+</div><div class='add'>+* Default gems</div><div class='add'>+</div><div class='add'>+    * The following libraries are promoted to default gems from stdlib.</div><div class='add'>+</div><div class='add'>+        * English</div><div class='add'>+        * abbrev</div><div class='add'>+        * base64</div><div class='add'>+        * drb</div><div class='add'>+        * debug</div><div class='add'>+        * erb</div><div class='add'>+        * find</div><div class='add'>+        * net-ftp</div><div class='add'>+        * net-http</div><div class='add'>+        * net-imap</div><div class='add'>+        * net-protocol</div><div class='add'>+        * open-uri</div><div class='add'>+        * optparse</div><div class='add'>+        * pp</div><div class='add'>+        * prettyprint</div><div class='add'>+        * resolv-replace</div><div class='add'>+        * resolv</div><div class='add'>+        * rinda</div><div class='add'>+        * set</div><div class='add'>+        * securerandom</div><div class='add'>+        * shellwords</div><div class='add'>+        * tempfile</div><div class='add'>+        * tmpdir</div><div class='add'>+        * time</div><div class='add'>+        * tsort</div><div class='add'>+        * un</div><div class='add'>+        * weakref</div><div class='add'>+</div><div class='add'>+    * The following extensions are promoted to default gems from stdlib.</div><div class='add'>+</div><div class='add'>+        * digest</div><div class='add'>+        * io-nonblock</div><div class='add'>+        * io-wait</div><div class='add'>+        * nkf</div><div class='add'>+        * pathname</div><div class='add'>+        * syslog</div><div class='add'>+        * win32ole</div><div class='add'>+</div><div class='add'>+* Bundled gems</div><div class='add'>+</div><div class='add'>+    * net-telnet and xmlrpc have been removed from the bundled gems.</div><div class='add'>+      If you are interested in maintaining them, please comment on</div><div class='add'>+      your plan to https://github.com/ruby/xmlrpc</div><div class='add'>+      or https://github.com/ruby/net-telnet.</div><div class='add'>+</div><div class='add'>+* SDBM has been removed from the Ruby standard library. [[Bug #8446]]</div><div class='add'>+</div><div class='add'>+    * The issues of sdbm will be handled at https://github.com/ruby/sdbm</div><div class='add'>+</div><div class='add'>+* WEBrick has been removed from the Ruby standard library. [[Feature #17303]]</div><div class='add'>+</div><div class='add'>+    * The issues of WEBrick will be handled at https://github.com/ruby/webrick</div><div class='add'>+</div><div class='add'>+## C API updates</div><div class='add'>+</div><div class='add'>+* C API functions related to `$SAFE` have been removed.</div><div class='add'>+  [[Feature #16131]]</div><div class='add'>+</div><div class='add'>+* C API header file `ruby/ruby.h` was split. [[GH-2991]]</div><div class='add'>+</div><div class='add'>+    This should have no impact on extension libraries,</div><div class='add'>+    but users might experience slow compilations.</div><div class='add'>+</div><div class='add'>+* Memory view interface [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+    * The memory view interface is a C-API set to exchange a raw memory area,</div><div class='add'>+      such as a numeric array or a bitmap image, between extension libraries.</div><div class='add'>+      The extension libraries can share also the metadata of the memory area</div><div class='add'>+      that consists of the shape, the element format, and so on.</div><div class='add'>+      Using these kinds of metadata, the extension libraries can share even</div><div class='add'>+      a multidimensional array appropriately.</div><div class='add'>+      This feature is designed by referring to Python's buffer protocol.</div><div class='add'>+      [[Feature #13767]] [[Feature #14722]]</div><div class='add'>+</div><div class='add'>+* Ractor related C APIs are introduced (experimental) in "include/ruby/ractor.h".</div><div class='add'>+</div><div class='add'>+## Implementation improvements</div><div class='add'>+</div><div class='add'>+* New method cache mechanism for Ractor. [[Feature #16614]]</div><div class='add'>+</div><div class='add'>+    * Inline method caches pointed from ISeq can be accessed by multiple Ractors</div><div class='add'>+      in parallel and synchronization is needed even for method caches. However,</div><div class='add'>+      such synchronization can be overhead so introducing new inline method cache</div><div class='add'>+      mechanisms, (1) Disposable inline method cache (2) per-Class method cache</div><div class='add'>+      and (3) new invalidation mechanism. (1) can avoid per-method call</div><div class='add'>+      synchronization because it only uses atomic operations.</div><div class='add'>+      See the ticket for more details.</div><div class='add'>+</div><div class='add'>+* The number of hashes allocated when using a keyword splat in</div><div class='add'>+  a method call has been reduced to a maximum of 1, and passing</div><div class='add'>+  a keyword splat to a method that accepts specific keywords</div><div class='add'>+  does not allocate a hash.</div><div class='add'>+</div><div class='add'>+* `super` is optimized when the same type of method is called in the previous call</div><div class='add'>+  if it's not refinements or an attr reader or writer.</div><div class='add'>+</div><div class='add'>+### JIT</div><div class='add'>+</div><div class='add'>+* Performance improvements of JIT-ed code</div><div class='add'>+</div><div class='add'>+    * Microarchitectural optimizations</div><div class='add'>+</div><div class='add'>+        * Native functions shared by multiple methods are deduplicated on JIT compaction.</div><div class='add'>+</div><div class='add'>+        * Decrease code size of hot paths by some optimizations and partitioning cold paths.</div><div class='add'>+</div><div class='add'>+    * Instance variables</div><div class='add'>+</div><div class='add'>+        * Eliminate some redundant checks.</div><div class='add'>+</div><div class='add'>+        * Skip checking a class and a object multiple times in a method when possible.</div><div class='add'>+</div><div class='add'>+        * Optimize accesses in some core classes like Hash and their subclasses.</div><div class='add'>+</div><div class='add'>+    * Method inlining support for some C methods</div><div class='add'>+</div><div class='add'>+        * `Kernel`: `#class`, `#frozen?`</div><div class='add'>+</div><div class='add'>+        * `Integer`: `#-@`, `#~`, `#abs`, `#bit_length`, `#even?`, `#integer?`, `#magnitude`,</div><div class='add'>+          `#odd?`, `#ord`, `#to_i`, `#to_int`, `#zero?`</div><div class='add'>+</div><div class='add'>+        * `Struct`: reader methods for 10th or later members</div><div class='add'>+</div><div class='add'>+    * Constant references are inlined.</div><div class='add'>+</div><div class='add'>+    * Always generate appropriate code for `==`, `nil?`, and `!` calls depending on</div><div class='add'>+      a receiver class.</div><div class='add'>+</div><div class='add'>+    * Reduce the number of PC accesses on branches and method returns.</div><div class='add'>+</div><div class='add'>+    * Optimize C method calls a little.</div><div class='add'>+</div><div class='add'>+* Compilation process improvements</div><div class='add'>+</div><div class='add'>+    * It does not keep temporary files in /tmp anymore.</div><div class='add'>+</div><div class='add'>+    * Throttle GC and compaction of JIT-ed code.</div><div class='add'>+</div><div class='add'>+    * Avoid GC-ing JIT-ed code when not necessary.</div><div class='add'>+</div><div class='add'>+    * GC-ing JIT-ed code is executed in a background thread.</div><div class='add'>+</div><div class='add'>+    * Reduce the number of locks between Ruby and JIT threads.</div><div class='add'>+</div><div class='add'>+## Static analysis</div><div class='add'>+</div><div class='add'>+### RBS</div><div class='add'>+</div><div class='add'>+* RBS is a new language for type definition of Ruby programs.</div><div class='add'>+  It allows writing types of classes and modules with advanced</div><div class='add'>+  types including union types, overloading, generics, and</div><div class='add'>+  _interface types_ for duck typing.</div><div class='add'>+</div><div class='add'>+* Ruby ships with type definitions for core/stdlib classes.</div><div class='add'>+</div><div class='add'>+* `rbs` gem is bundled to load and process RBS files.</div><div class='add'>+</div><div class='add'>+### TypeProf</div><div class='add'>+</div><div class='add'>+* TypeProf is a type analysis tool for Ruby code based on abstract interpretation.</div><div class='add'>+</div><div class='add'>+    * It reads non-annotated Ruby code, tries inferring its type signature, and prints</div><div class='add'>+      the analysis result in RBS format.</div><div class='add'>+</div><div class='add'>+    * Though it supports only a subset of the Ruby language yet, we will continuously</div><div class='add'>+      improve the coverage of language features, analysis performance, and usability.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# test.rb</div><div class='add'>+def foo(x)</div><div class='add'>+  if x &gt; 10</div><div class='add'>+    x.to_s</div><div class='add'>+  else</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+foo(42)</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+$ typeprof test.rb</div><div class='add'>+# Classes</div><div class='add'>+class Object</div><div class='add'>+  def foo : (Integer) -&gt; String?</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+## Miscellaneous changes</div><div class='add'>+</div><div class='add'>+* Methods using `ruby2_keywords` will no longer keep empty keyword</div><div class='add'>+  splats, those are now removed just as they are for methods not</div><div class='add'>+  using `ruby2_keywords`.</div><div class='add'>+</div><div class='add'>+* When an exception is caught in the default handler, the error</div><div class='add'>+  message and backtrace are printed in order from the innermost.</div><div class='add'>+  [[Feature #8661]]</div><div class='add'>+</div><div class='add'>+* Accessing an uninitialized instance variable no longer emits a</div><div class='add'>+  warning in verbose mode. [[Feature #17055]]</div><div class='add'>+</div><div class='add'>+[Bug #4352]:      https://bugs.ruby-lang.org/issues/4352</div><div class='add'>+[Bug #6087]:      https://bugs.ruby-lang.org/issues/6087</div><div class='add'>+[Bug #8382]:      https://bugs.ruby-lang.org/issues/8382</div><div class='add'>+[Bug #8446]:      https://bugs.ruby-lang.org/issues/8446</div><div class='add'>+[Feature #8661]:  https://bugs.ruby-lang.org/issues/8661</div><div class='add'>+[Feature #8709]:  https://bugs.ruby-lang.org/issues/8709</div><div class='add'>+[Feature #8948]:  https://bugs.ruby-lang.org/issues/8948</div><div class='add'>+[Feature #9573]:  https://bugs.ruby-lang.org/issues/9573</div><div class='add'>+[Bug #10845]:     https://bugs.ruby-lang.org/issues/10845</div><div class='add'>+[Bug #12136]:     https://bugs.ruby-lang.org/issues/12136</div><div class='add'>+[Feature #12650]: https://bugs.ruby-lang.org/issues/12650</div><div class='add'>+[Bug #12706]:     https://bugs.ruby-lang.org/issues/12706</div><div class='add'>+[Feature #13767]: https://bugs.ruby-lang.org/issues/13767</div><div class='add'>+[Bug #13768]:     https://bugs.ruby-lang.org/issues/13768</div><div class='add'>+[Feature #14183]: https://bugs.ruby-lang.org/issues/14183</div><div class='add'>+[Bug #14266]:     https://bugs.ruby-lang.org/issues/14266</div><div class='add'>+[Feature #14267]: https://bugs.ruby-lang.org/issues/14267</div><div class='add'>+[Feature #14413]: https://bugs.ruby-lang.org/issues/14413</div><div class='add'>+[Bug #14541]:     https://bugs.ruby-lang.org/issues/14541</div><div class='add'>+[Feature #14722]: https://bugs.ruby-lang.org/issues/14722</div><div class='add'>+[Bug #15409]:     https://bugs.ruby-lang.org/issues/15409</div><div class='add'>+[Feature #15504]: https://bugs.ruby-lang.org/issues/15504</div><div class='add'>+[Feature #15575]: https://bugs.ruby-lang.org/issues/15575</div><div class='add'>+[Feature #15822]: https://bugs.ruby-lang.org/issues/15822</div><div class='add'>+[Misc #15893]:    https://bugs.ruby-lang.org/issues/15893</div><div class='add'>+[Feature #15921]: https://bugs.ruby-lang.org/issues/15921</div><div class='add'>+[Feature #15973]: https://bugs.ruby-lang.org/issues/15973</div><div class='add'>+[Feature #16131]: https://bugs.ruby-lang.org/issues/16131</div><div class='add'>+[Feature #16150]: https://bugs.ruby-lang.org/issues/16150</div><div class='add'>+[Feature #16166]: https://bugs.ruby-lang.org/issues/16166</div><div class='add'>+[Feature #16175]: https://bugs.ruby-lang.org/issues/16175</div><div class='add'>+[Feature #16233]: https://bugs.ruby-lang.org/issues/16233</div><div class='add'>+[Feature #16260]: https://bugs.ruby-lang.org/issues/16260</div><div class='add'>+[Feature #16274]: https://bugs.ruby-lang.org/issues/16274</div><div class='add'>+[Feature #16345]: https://bugs.ruby-lang.org/issues/16345</div><div class='add'>+[Feature #16377]: https://bugs.ruby-lang.org/issues/16377</div><div class='add'>+[Feature #16378]: https://bugs.ruby-lang.org/issues/16378</div><div class='add'>+[Feature #16555]: https://bugs.ruby-lang.org/issues/16555</div><div class='add'>+[Feature #16604]: https://bugs.ruby-lang.org/issues/16604</div><div class='add'>+[Feature #16614]: https://bugs.ruby-lang.org/issues/16614</div><div class='add'>+[Feature #16686]: https://bugs.ruby-lang.org/issues/16686</div><div class='add'>+[Feature #16746]: https://bugs.ruby-lang.org/issues/16746</div><div class='add'>+[Feature #16754]: https://bugs.ruby-lang.org/issues/16754</div><div class='add'>+[Feature #16786]: https://bugs.ruby-lang.org/issues/16786</div><div class='add'>+[Feature #16792]: https://bugs.ruby-lang.org/issues/16792</div><div class='add'>+[Feature #16815]: https://bugs.ruby-lang.org/issues/16815</div><div class='add'>+[Feature #16828]: https://bugs.ruby-lang.org/issues/16828</div><div class='add'>+[Misc #16961]:    https://bugs.ruby-lang.org/issues/16961</div><div class='add'>+[Bug #17030]:     https://bugs.ruby-lang.org/issues/17030</div><div class='add'>+[Feature #17055]: https://bugs.ruby-lang.org/issues/17055</div><div class='add'>+[Feature #17104]: https://bugs.ruby-lang.org/issues/17104</div><div class='add'>+[Feature #17122]: https://bugs.ruby-lang.org/issues/17122</div><div class='add'>+[Feature #17136]: https://bugs.ruby-lang.org/issues/17136</div><div class='add'>+[Feature #17176]: https://bugs.ruby-lang.org/issues/17176</div><div class='add'>+[Feature #17187]: https://bugs.ruby-lang.org/issues/17187</div><div class='add'>+[Bug #17221]:     https://bugs.ruby-lang.org/issues/17221</div><div class='add'>+[Feature #17260]: https://bugs.ruby-lang.org/issues/17260</div><div class='add'>+[Feature #17273]: https://bugs.ruby-lang.org/issues/17273</div><div class='add'>+[Feature #17303]: https://bugs.ruby-lang.org/issues/17303</div><div class='add'>+[Feature #17314]: https://bugs.ruby-lang.org/issues/17314</div><div class='add'>+[Feature #17322]: https://bugs.ruby-lang.org/issues/17322</div><div class='add'>+[Feature #17351]: https://bugs.ruby-lang.org/issues/17351</div><div class='add'>+[Feature #17371]: https://bugs.ruby-lang.org/issues/17371</div><div class='add'>+[Bug #17419]:     https://bugs.ruby-lang.org/issues/17419</div><div class='add'>+[GH-2991]:        https://github.com/ruby/ruby/pull/2991</div><div class='head'>diff --git a/doc/NEWS/NEWS-3.1.0.md b/doc/NEWS/NEWS-3.1.0.md<br/>new file mode 100644<br/>index 0000000000..fe292fc414<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS/NEWS-3.1.0.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/NEWS/NEWS-3.1.0.md</a></div><div class='hunk'>@@ -0,0 +1,660 @@</div><div class='add'>+# NEWS for Ruby 3.1.0</div><div class='add'>+</div><div class='add'>+This document is a list of user-visible feature changes</div><div class='add'>+since the **3.0.0** release, except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept to a minimum, see links for details.</div><div class='add'>+</div><div class='add'>+## Language changes</div><div class='add'>+</div><div class='add'>+*   The block argument can now be anonymous if the block will</div><div class='add'>+    only be passed to another method. [[Feature #11256]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    def foo(&amp;)</div><div class='add'>+      bar(&amp;)</div><div class='add'>+    end</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+*   Pin operator now takes an expression. [[Feature #17411]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a</div><div class='add'>+    #=&gt; [[3, 5], [5, 7], [11, 13]]</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+*   Pin operator now supports instance, class, and global variables.</div><div class='add'>+    [[Feature #17724]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    @n = 5</div><div class='add'>+    Prime.each_cons(2).lazy.find{_1 in [n, ^@n]}</div><div class='add'>+    #=&gt; [3, 5]</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+*   One-line pattern matching is no longer experimental.</div><div class='add'>+</div><div class='add'>+*   Parentheses can be omitted in one-line pattern matching.</div><div class='add'>+    [[Feature #16182]]</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    [0, 1] =&gt; _, x</div><div class='add'>+    {y: 2} =&gt; y:</div><div class='add'>+    x #=&gt; 1</div><div class='add'>+    y #=&gt; 2</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+*   Multiple assignment evaluation order has been made consistent with</div><div class='add'>+    single assignment evaluation order.  With single assignment, Ruby</div><div class='add'>+    uses a left-to-right evaluation order.  With this code:</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    foo[0] = bar</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    The following evaluation order is used:</div><div class='add'>+</div><div class='add'>+    1. `foo`</div><div class='add'>+    2. `bar`</div><div class='add'>+    3. `[]=` called on the result of `foo`</div><div class='add'>+</div><div class='add'>+    In Ruby before 3.1.0, multiple assignment did not follow this</div><div class='add'>+    evaluation order.  With this code:</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    foo[0], bar.baz = a, b</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    Versions of Ruby before 3.1.0 would evaluate in the following</div><div class='add'>+    order</div><div class='add'>+</div><div class='add'>+    1. `a`</div><div class='add'>+    2. `b`</div><div class='add'>+    3. `foo`</div><div class='add'>+    4. `[]=` called on the result of `foo`</div><div class='add'>+    5. `bar`</div><div class='add'>+    6. `baz=` called on the result of `bar`</div><div class='add'>+</div><div class='add'>+    Starting in Ruby 3.1.0, the evaluation order is now consistent with</div><div class='add'>+    single assignment, with the left-hand side being evaluated before</div><div class='add'>+    the right-hand side:</div><div class='add'>+</div><div class='add'>+    1. `foo`</div><div class='add'>+    2. `bar`</div><div class='add'>+    3. `a`</div><div class='add'>+    4. `b`</div><div class='add'>+    5. `[]=` called on the result of `foo`</div><div class='add'>+    6. `baz=` called on the result of `bar`</div><div class='add'>+</div><div class='add'>+    [[Bug #4443]]</div><div class='add'>+</div><div class='add'>+*   Values in Hash literals and keyword arguments can be omitted.</div><div class='add'>+    [[Feature #14579]]</div><div class='add'>+</div><div class='add'>+    For example,</div><div class='add'>+</div><div class='add'>+    * `{x:, y:}` is a syntax sugar of `{x: x, y: y}`.</div><div class='add'>+    * `foo(x:, y:)` is a syntax sugar of `foo(x: x, y: y)`.</div><div class='add'>+</div><div class='add'>+    Constant names, local variable names, and method names are allowed as</div><div class='add'>+    key names.  Note that a reserved word is considered as a local</div><div class='add'>+    variable or method name even if it's a pseudo variable name such as</div><div class='add'>+    `self`.</div><div class='add'>+</div><div class='add'>+*   Non main-Ractors can get instance variables (ivars) of classes/modules</div><div class='add'>+    if ivars refer to shareable objects.</div><div class='add'>+    [[Feature #17592]]</div><div class='add'>+</div><div class='add'>+*   A command syntax is allowed in endless method definitions, i.e.,</div><div class='add'>+    you can now write `def foo = puts "Hello"`.</div><div class='add'>+    Note that `private def foo = puts "Hello"` does not parse.</div><div class='add'>+    [[Feature #17398]]</div><div class='add'>+</div><div class='add'>+## Command line options</div><div class='add'>+</div><div class='add'>+* `--disable-gems` is now explicitly declared as "just for debugging".</div><div class='add'>+  Never use it in any real-world codebase.</div><div class='add'>+  [[Feature #17684]]</div><div class='add'>+</div><div class='add'>+## Core classes updates</div><div class='add'>+</div><div class='add'>+Note: We're only listing outstanding class updates.</div><div class='add'>+</div><div class='add'>+* Array</div><div class='add'>+</div><div class='add'>+    * Array#intersect? is added. [[Feature #15198]]</div><div class='add'>+</div><div class='add'>+* Class</div><div class='add'>+</div><div class='add'>+    *   Class#subclasses, which returns an array of classes</div><div class='add'>+        directly inheriting from the receiver, not</div><div class='add'>+        including singleton classes.</div><div class='add'>+        [[Feature #18273]]</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        class A; end</div><div class='add'>+        class B &lt; A; end</div><div class='add'>+        class C &lt; B; end</div><div class='add'>+        class D &lt; A; end</div><div class='add'>+        A.subclasses    #=&gt; [D, B]</div><div class='add'>+        B.subclasses    #=&gt; [C]</div><div class='add'>+        C.subclasses    #=&gt; []</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+* Enumerable</div><div class='add'>+</div><div class='add'>+    *   Enumerable#compact is added. [[Feature #17312]]</div><div class='add'>+</div><div class='add'>+    *   Enumerable#tally now accepts an optional hash to count. [[Feature #17744]]</div><div class='add'>+</div><div class='add'>+    *   Enumerable#each_cons and each_slice to return a receiver. [[GH-1509]]</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        [1, 2, 3].each_cons(2){}</div><div class='add'>+        # 3.0 =&gt; nil</div><div class='add'>+        # 3.1 =&gt; [1, 2, 3]</div><div class='add'>+</div><div class='add'>+        [1, 2, 3].each_slice(2){}</div><div class='add'>+        # 3.0 =&gt; nil</div><div class='add'>+        # 3.1 =&gt; [1, 2, 3]</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+* Enumerator::Lazy</div><div class='add'>+</div><div class='add'>+    *   Enumerator::Lazy#compact is added. [[Feature #17312]]</div><div class='add'>+</div><div class='add'>+* File</div><div class='add'>+</div><div class='add'>+    *   File.dirname now accepts an optional argument for the level to</div><div class='add'>+        strip path components. [[Feature #12194]]</div><div class='add'>+</div><div class='add'>+* GC</div><div class='add'>+</div><div class='add'>+    *   "GC.measure_total_time = true" enables the measurement of GC.</div><div class='add'>+        Measurement can introduce overhead. It is enabled by default.</div><div class='add'>+        GC.measure_total_time returns the current setting.</div><div class='add'>+        GC.stat[:time] or GC.stat(:time) returns measured time</div><div class='add'>+        in milli-seconds. [[[Feature #10917]]]</div><div class='add'>+</div><div class='add'>+    *   GC.total_time returns measured time in nano-seconds. [[[Feature #10917]]]</div><div class='add'>+</div><div class='add'>+* Integer</div><div class='add'>+</div><div class='add'>+    *   Integer.try_convert is added. [[Feature #15211]]</div><div class='add'>+</div><div class='add'>+* Kernel</div><div class='add'>+</div><div class='add'>+    *   Kernel#load now accepts a module as the second argument,</div><div class='add'>+        and will load the file using the given module as the</div><div class='add'>+        top-level module. [[Feature #6210]]</div><div class='add'>+</div><div class='add'>+* Marshal</div><div class='add'>+</div><div class='add'>+    *   Marshal.load now accepts a `freeze: true` option.</div><div class='add'>+        All returned objects are frozen except for `Class` and</div><div class='add'>+        `Module` instances. Strings are deduplicated. [[Feature #18148]]</div><div class='add'>+</div><div class='add'>+* MatchData</div><div class='add'>+</div><div class='add'>+    *   MatchData#match is added [[Feature #18172]]</div><div class='add'>+</div><div class='add'>+    *   MatchData#match_length is added [[Feature #18172]]</div><div class='add'>+</div><div class='add'>+* Method / UnboundMethod</div><div class='add'>+</div><div class='add'>+    *   Method#public?, Method#private?, Method#protected?,</div><div class='add'>+        UnboundMethod#public?, UnboundMethod#private?,</div><div class='add'>+        UnboundMethod#protected? have been added. [[Feature #11689]]</div><div class='add'>+</div><div class='add'>+* Module</div><div class='add'>+</div><div class='add'>+    *   Module#prepend now modifies the ancestor chain if the receiver</div><div class='add'>+        already includes the argument. Module#prepend still does not</div><div class='add'>+        modify the ancestor chain if the receiver has already prepended</div><div class='add'>+        the argument. [[Bug #17423]]</div><div class='add'>+</div><div class='add'>+    *   Module#private, #public, #protected, and #module_function will</div><div class='add'>+        now return their arguments.  If a single argument is given, it</div><div class='add'>+        is returned. If no arguments are given, nil is returned.  If</div><div class='add'>+        multiple arguments are given, they are returned as an array.</div><div class='add'>+        [[Feature #12495]]</div><div class='add'>+</div><div class='add'>+* Process</div><div class='add'>+</div><div class='add'>+    *   Process.\_fork is added. This is a core method for fork(2).</div><div class='add'>+        Do not call this method directly; it is called by existing</div><div class='add'>+        fork methods: Kernel.#fork, Process.fork, and IO.popen("-").</div><div class='add'>+        Application monitoring libraries can overwrite this method to</div><div class='add'>+        hook fork events. [[Feature #17795]]</div><div class='add'>+</div><div class='add'>+* Struct</div><div class='add'>+</div><div class='add'>+    *   Passing only keyword arguments to Struct#initialize is warned.</div><div class='add'>+        You need to use a Hash literal to set a Hash to a first member.</div><div class='add'>+        [[Feature #16806]]</div><div class='add'>+</div><div class='add'>+    *   StructClass#keyword_init? is added [[Feature #18008]]</div><div class='add'>+</div><div class='add'>+* String</div><div class='add'>+</div><div class='add'>+    *   Update Unicode version to 13.0.0 [[Feature #17750]]</div><div class='add'>+        and Emoji version to 13.0 [[Feature #18029]]</div><div class='add'>+</div><div class='add'>+    *   String#unpack and String#unpack1 now accept an `offset:` keyword</div><div class='add'>+        argument to start the unpacking after an arbitrary number of bytes</div><div class='add'>+        have been skipped. If `offset` is outside of the string bounds</div><div class='add'>+        `ArgumentError` is raised. [[Feature #18254]]</div><div class='add'>+</div><div class='add'>+* Thread</div><div class='add'>+</div><div class='add'>+    *   Thread#native_thread_id is added. [[Feature #17853]]</div><div class='add'>+</div><div class='add'>+* Thread::Backtrace</div><div class='add'>+</div><div class='add'>+    *   Thread::Backtrace.limit, which returns the value to limit backtrace</div><div class='add'>+        length set by `--backtrace-limit` command line option, is added.</div><div class='add'>+        [[Feature #17479]]</div><div class='add'>+</div><div class='add'>+* Thread::Queue</div><div class='add'>+</div><div class='add'>+    *   Thread::Queue.new now accepts an Enumerable of initial values.</div><div class='add'>+        [[Feature #17327]]</div><div class='add'>+</div><div class='add'>+* Time</div><div class='add'>+</div><div class='add'>+    *   Time.new now accepts optional `in:` keyword argument for the</div><div class='add'>+        timezone, as well as `Time.at` and `Time.now`, so that is now</div><div class='add'>+        you can omit minor arguments to `Time.new`. [[Feature #17485]]</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        Time.new(2021, 12, 25, in: "+07:00")</div><div class='add'>+        #=&gt; 2021-12-25 00:00:00 +0700</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+        At the same time, time component strings are converted to</div><div class='add'>+        integers more strictly now.</div><div class='add'>+</div><div class='add'>+        ```ruby</div><div class='add'>+        Time.new(2021, 12, 25, "+07:30")</div><div class='add'>+        #=&gt; invalid value for Integer(): "+07:30" (ArgumentError)</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+        Ruby 3.0 or earlier returned probably unexpected result</div><div class='add'>+        `2021-12-25 07:00:00`, not `2021-12-25 07:30:00` nor</div><div class='add'>+        `2021-12-25 00:00:00 +07:30`.</div><div class='add'>+</div><div class='add'>+    *   Time#strftime supports RFC 3339 UTC for unknown offset local</div><div class='add'>+        time, `-0000`, as `%-z`. [[Feature #17544]]</div><div class='add'>+</div><div class='add'>+* TracePoint</div><div class='add'>+</div><div class='add'>+    *   TracePoint.allow_reentry is added to allow reenter while TracePoint</div><div class='add'>+        callback.</div><div class='add'>+        [[Feature #15912]]</div><div class='add'>+</div><div class='add'>+* $LOAD_PATH</div><div class='add'>+</div><div class='add'>+    *   $LOAD_PATH.resolve_feature_path does not raise. [[Feature #16043]]</div><div class='add'>+</div><div class='add'>+* Fiber Scheduler</div><div class='add'>+</div><div class='add'>+    *   Add support for `Addrinfo.getaddrinfo` using `address_resolve` hook.</div><div class='add'>+        [[Feature #17370]]</div><div class='add'>+</div><div class='add'>+    *   Introduce non-blocking `Timeout.timeout` using `timeout_after` hook.</div><div class='add'>+        [[Feature #17470]]</div><div class='add'>+</div><div class='add'>+    *   Introduce new scheduler hooks `io_read` and `io_write` along with a</div><div class='add'>+        low level `IO::Buffer` for zero-copy read/write. [[Feature #18020]]</div><div class='add'>+</div><div class='add'>+    *   IO hooks `io_wait`, `io_read`, `io_write`, receive the original IO object</div><div class='add'>+        where possible. [[Bug #18003]]</div><div class='add'>+</div><div class='add'>+    *   Make `Monitor` fiber-safe. [[Bug #17827]]</div><div class='add'>+</div><div class='add'>+    *   Replace copy coroutine with pthread implementation. [[Feature #18015]]</div><div class='add'>+</div><div class='add'>+* Refinement</div><div class='add'>+</div><div class='add'>+    *   New class which represents a module created by Module#refine.</div><div class='add'>+        `include` and `prepend` are deprecated, and `import_methods` is added</div><div class='add'>+        instead. [[Bug #17429]]</div><div class='add'>+</div><div class='add'>+## Stdlib updates</div><div class='add'>+</div><div class='add'>+*   The following default gem are updated.</div><div class='add'>+    * RubyGems 3.3.3</div><div class='add'>+    * base64 0.1.1</div><div class='add'>+    * benchmark 0.2.0</div><div class='add'>+    * bigdecimal 3.1.1</div><div class='add'>+    * bundler 2.3.3</div><div class='add'>+    * cgi 0.3.1</div><div class='add'>+    * csv 3.2.2</div><div class='add'>+    * date 3.2.2</div><div class='add'>+    * did_you_mean 1.6.1</div><div class='add'>+    * digest 3.1.0</div><div class='add'>+    * drb 2.1.0</div><div class='add'>+    * erb 2.2.3</div><div class='add'>+    * error_highlight 0.3.0</div><div class='add'>+    * etc 1.3.0</div><div class='add'>+    * fcntl 1.0.1</div><div class='add'>+    * fiddle 1.1.0</div><div class='add'>+    * fileutils 1.6.0</div><div class='add'>+    * find 0.1.1</div><div class='add'>+    * io-console 0.5.10</div><div class='add'>+    * io-wait 0.2.1</div><div class='add'>+    * ipaddr 1.2.3</div><div class='add'>+    * irb 1.4.1</div><div class='add'>+    * json 2.6.1</div><div class='add'>+    * logger 1.5.0</div><div class='add'>+    * net-http 0.2.0</div><div class='add'>+    * net-protocol 0.1.2</div><div class='add'>+    * nkf 0.1.1</div><div class='add'>+    * open-uri 0.2.0</div><div class='add'>+    * openssl 3.0.0</div><div class='add'>+    * optparse 0.2.0</div><div class='add'>+    * ostruct 0.5.2</div><div class='add'>+    * pathname 0.2.0</div><div class='add'>+    * pp 0.3.0</div><div class='add'>+    * prettyprint 0.1.1</div><div class='add'>+    * psych 4.0.3</div><div class='add'>+    * racc 1.6.0</div><div class='add'>+    * rdoc 6.4.0</div><div class='add'>+    * readline 0.0.3</div><div class='add'>+    * readline-ext 0.1.4</div><div class='add'>+    * reline 0.3.0</div><div class='add'>+    * resolv 0.2.1</div><div class='add'>+    * rinda 0.1.1</div><div class='add'>+    * ruby2_keywords 0.0.5</div><div class='add'>+    * securerandom 0.1.1</div><div class='add'>+    * set 1.0.2</div><div class='add'>+    * stringio 3.0.1</div><div class='add'>+    * strscan 3.0.1</div><div class='add'>+    * tempfile 0.1.2</div><div class='add'>+    * time 0.2.0</div><div class='add'>+    * timeout 0.2.0</div><div class='add'>+    * tmpdir 0.1.2</div><div class='add'>+    * un 0.2.0</div><div class='add'>+    * uri 0.11.0</div><div class='add'>+    * yaml 0.2.0</div><div class='add'>+    * zlib 2.1.1</div><div class='add'>+*   The following bundled gems are updated.</div><div class='add'>+    * minitest 5.15.0</div><div class='add'>+    * power_assert 2.0.1</div><div class='add'>+    * rake 13.0.6</div><div class='add'>+    * test-unit 3.5.3</div><div class='add'>+    * rexml 3.2.5</div><div class='add'>+    * rbs 2.0.0</div><div class='add'>+    * typeprof 0.21.1</div><div class='add'>+*   The following default gems are now bundled gems.</div><div class='add'>+    * net-ftp 0.1.3</div><div class='add'>+    * net-imap 0.2.2</div><div class='add'>+    * net-pop 0.1.1</div><div class='add'>+    * net-smtp 0.3.1</div><div class='add'>+    * matrix 0.4.2</div><div class='add'>+    * prime 0.1.2</div><div class='add'>+    * debug 1.4.0</div><div class='add'>+*   The following gems has been removed from the Ruby standard library.</div><div class='add'>+    * dbm</div><div class='add'>+    * gdbm</div><div class='add'>+    * tracer</div><div class='add'>+</div><div class='add'>+* Coverage measurement now supports suspension. You can use `Coverage.suspend`</div><div class='add'>+  to stop the measurement temporarily, and `Coverage.resume` to restart it.</div><div class='add'>+  See [[Feature #18176]] in detail.</div><div class='add'>+</div><div class='add'>+* Random::Formatter is moved to random/formatter.rb, so that you can</div><div class='add'>+  use `Random#hex`, `Random#base64`, and so on without SecureRandom.</div><div class='add'>+  [[Feature #18190]]</div><div class='add'>+</div><div class='add'>+## Compatibility issues</div><div class='add'>+</div><div class='add'>+Note: Excluding feature bug fixes.</div><div class='add'>+</div><div class='add'>+* `rb_io_wait_readable`, `rb_io_wait_writable` and `rb_wait_for_single_fd` are</div><div class='add'>+  deprecated in favour of `rb_io_maybe_wait_readable`,</div><div class='add'>+  `rb_io_maybe_wait_writable` and `rb_io_maybe_wait` respectively.</div><div class='add'>+  `rb_thread_wait_fd` and `rb_thread_fd_writable` are deprecated. [[Bug #18003]]</div><div class='add'>+</div><div class='add'>+## Stdlib compatibility issues</div><div class='add'>+</div><div class='add'>+* `ERB#initialize` warns `safe_level` and later arguments even without -w.</div><div class='add'>+  [[Feature #14256]]</div><div class='add'>+</div><div class='add'>+* `lib/debug.rb` is replaced with `debug.gem`</div><div class='add'>+</div><div class='add'>+* `Kernel#pp` in `lib/pp.rb` uses the width of `IO#winsize` by default.</div><div class='add'>+  This means that the output width is automatically changed depending on</div><div class='add'>+  your terminal size. [[Feature #12913]]</div><div class='add'>+</div><div class='add'>+* Psych 4.0 changes `Psych.load` as `safe_load` by the default.</div><div class='add'>+  You may need to use Psych 3.3.2 for migrating to this behavior.</div><div class='add'>+  [[Bug #17866]]</div><div class='add'>+</div><div class='add'>+## C API updates</div><div class='add'>+</div><div class='add'>+* Documented. [[GH-4815]]</div><div class='add'>+</div><div class='add'>+* `rb_gc_force_recycle` is deprecated and has been changed to a no-op.</div><div class='add'>+  [[Feature #18290]]</div><div class='add'>+</div><div class='add'>+## Implementation improvements</div><div class='add'>+</div><div class='add'>+* Inline cache mechanism is introduced for reading class variables.</div><div class='add'>+  [[Feature #17763]]</div><div class='add'>+</div><div class='add'>+* `instance_eval` and `instance_exec` now only allocate a singleton class when</div><div class='add'>+  required, avoiding extra objects and improving performance. [[GH-5146]]</div><div class='add'>+</div><div class='add'>+* The performance of `Struct` accessors is improved. [[GH-5131]]</div><div class='add'>+</div><div class='add'>+* `mandatory_only?` builtin special form to improve performance on</div><div class='add'>+  builtin methods. [[GH-5112]]</div><div class='add'>+</div><div class='add'>+* Experimental feature Variable Width Allocation in the garbage collector.</div><div class='add'>+  This feature is turned off by default and can be enabled by compiling Ruby</div><div class='add'>+  with flag `USE_RVARGC=1` set. [[Feature #18045]] [[Feature #18239]]</div><div class='add'>+</div><div class='add'>+## JIT</div><div class='add'>+</div><div class='add'>+* Rename Ruby 3.0's `--jit` to `--mjit`, and alias `--jit` to `--yjit`</div><div class='add'>+  on non-Windows x86-64 platforms and to `--mjit` on others.</div><div class='add'>+</div><div class='add'>+### MJIT</div><div class='add'>+</div><div class='add'>+* The default `--mjit-max-cache` is changed from 100 to 10000.</div><div class='add'>+</div><div class='add'>+* JIT-ed code is no longer cancelled when a TracePoint for class events</div><div class='add'>+  is enabled.</div><div class='add'>+</div><div class='add'>+* The JIT compiler no longer skips compilation of methods longer than</div><div class='add'>+  1000 instructions.</div><div class='add'>+</div><div class='add'>+* `--mjit-verbose` and `--mjit-warning` output "JIT cancel" when JIT-ed</div><div class='add'>+  code is disabled because TracePoint or GC.compact is used.</div><div class='add'>+</div><div class='add'>+### YJIT: New experimental in-process JIT compiler</div><div class='add'>+</div><div class='add'>+New JIT compiler available as an experimental feature. [[Feature #18229]]</div><div class='add'>+</div><div class='add'>+See [this blog post](https://shopify.engineering/yjit-just-in-time-compiler-cruby</div><div class='add'>+) introducing the project.</div><div class='add'>+</div><div class='add'>+* Disabled by default, use `--yjit` command-line option to enable YJIT.</div><div class='add'>+</div><div class='add'>+* Performance improvements on benchmarks based on real-world software,</div><div class='add'>+  up to 22% on railsbench, 39% on liquid-render.</div><div class='add'>+</div><div class='add'>+* Fast warm-up times.</div><div class='add'>+</div><div class='add'>+* Limited to Unix-like x86-64 platforms for now.</div><div class='add'>+</div><div class='add'>+## Static analysis</div><div class='add'>+</div><div class='add'>+### RBS</div><div class='add'>+</div><div class='add'>+*   Generics type parameters can be bounded ([PR](https://github.com/ruby/rbs/pull/844)).</div><div class='add'>+</div><div class='add'>+    ```rbs</div><div class='add'>+    # `T` must be compatible with the `_Output` interface.</div><div class='add'>+    # `PrettyPrint[String]` is ok, but `PrettyPrint[Integer]` is a type error.</div><div class='add'>+    class PrettyPrint[T &lt; _Output]</div><div class='add'>+      interface _Output</div><div class='add'>+        def &lt;&lt;: (String) -&gt; void</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      attr_reader output: T</div><div class='add'>+</div><div class='add'>+      def initialize: (T output) -&gt; void</div><div class='add'>+    end</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+*   Type aliases can be generic. ([PR](https://github.com/ruby/rbs/pull/823))</div><div class='add'>+</div><div class='add'>+    ```rbs</div><div class='add'>+    # Defines a generic type `list`.</div><div class='add'>+    type list[T] = [ T, list[T] ]</div><div class='add'>+                 | nil</div><div class='add'>+</div><div class='add'>+    type str_list = list[String]</div><div class='add'>+    type int_list = list[Integer]</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+* [rbs collection](https://github.com/ruby/rbs/blob/cdd6a3a896001e25bd1feda3eab7f470bae935c1/docs/collection.md) has been introduced to manage gemsâ€™ RBSs.</div><div class='add'>+</div><div class='add'>+* Many signatures for built-in and standard libraries have been added/updated.</div><div class='add'>+</div><div class='add'>+* It includes many bug fixes and performance improvements too.</div><div class='add'>+</div><div class='add'>+See the [CHANGELOG.md](https://github.com/ruby/rbs/blob/cdd6a3a896001e25bd1feda3eab7f470bae935c1/CHANGELOG.md) for more information.</div><div class='add'>+</div><div class='add'>+### TypeProf</div><div class='add'>+</div><div class='add'>+* [Experimental IDE support](https://github.com/ruby/typeprof/blob/ca15c5dae9bd62668463165f8409bd66ce7de223/doc/ide.md) has been implemented.</div><div class='add'>+* Many bug fixes and performance improvements since Ruby 3.0.0.</div><div class='add'>+</div><div class='add'>+## Debugger</div><div class='add'>+</div><div class='add'>+* A new debugger [debug.gem](https://github.com/ruby/debug) is bundled.</div><div class='add'>+  debug.gem is a fast debugger implementation, and it provides many features</div><div class='add'>+  like remote debugging, colorful REPL, IDE (VSCode) integration, and more.</div><div class='add'>+  It replaces `lib/debug.rb` standard library.</div><div class='add'>+</div><div class='add'>+* `rdbg` command is also installed into `bin/` directory to start and control</div><div class='add'>+  debugging execution.</div><div class='add'>+</div><div class='add'>+## error_highlight</div><div class='add'>+</div><div class='add'>+A built-in gem called error_highlight has been introduced.</div><div class='add'>+It shows fine-grained error locations in the backtrace.</div><div class='add'>+</div><div class='add'>+Example: `title = json[:article][:title]`</div><div class='add'>+</div><div class='add'>+If `json` is nil, it shows:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+$ ruby test.rb</div><div class='add'>+test.rb:2:in `&lt;main&gt;': undefined method `[]' for nil:NilClass (NoMethodError)</div><div class='add'>+</div><div class='add'>+title = json[:article][:title]</div><div class='add'>+            ^^^^^^^^^^</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+If `json[:article]` returns nil, it shows:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+$ ruby test.rb</div><div class='add'>+test.rb:2:in `&lt;main&gt;': undefined method `[]' for nil:NilClass (NoMethodError)</div><div class='add'>+</div><div class='add'>+title = json[:article][:title]</div><div class='add'>+                      ^^^^^^^^</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+This feature is enabled by default.</div><div class='add'>+You can disable it by using a command-line option `--disable-error_highlight`.</div><div class='add'>+See [the repository](https://github.com/ruby/error_highlight) in detail.</div><div class='add'>+</div><div class='add'>+## IRB Autocomplete and Document Display</div><div class='add'>+</div><div class='add'>+The IRB now has an autocomplete feature, where you can just type in the code, and the completion candidates dialog will appear. You can use Tab and Shift+Tab to move up and down.</div><div class='add'>+</div><div class='add'>+If documents are installed when you select a completion candidate, the documentation dialog will appear next to the completion candidates dialog, showing part of the content. You can read the full document by pressing Alt+d.</div><div class='add'>+</div><div class='add'>+## Miscellaneous changes</div><div class='add'>+</div><div class='add'>+* lib/objspace/trace.rb is added, which is a tool for tracing the object</div><div class='add'>+  allocation. Just by requiring this file, tracing is started *immediately*.</div><div class='add'>+  Just by `Kernel#p`, you can investigate where an object was created.</div><div class='add'>+  Note that just requiring this file brings a large performance overhead.</div><div class='add'>+  This is only for debugging purposes. Do not use this in production.</div><div class='add'>+  [[Feature #17762]]</div><div class='add'>+</div><div class='add'>+* Now exceptions raised in finalizers will be printed to `STDERR`, unless</div><div class='add'>+  `$VERBOSE` is `nil`.  [[Feature #17798]]</div><div class='add'>+</div><div class='add'>+* `ruby -run -e httpd` displays URLs to access.  [[Feature #17847]]</div><div class='add'>+</div><div class='add'>+* Add `ruby -run -e colorize` to colorize Ruby code using</div><div class='add'>+  `IRB::Color.colorize_code`.</div><div class='add'>+</div><div class='add'>+[Bug #4443]:      https://bugs.ruby-lang.org/issues/4443</div><div class='add'>+[Feature #6210]:  https://bugs.ruby-lang.org/issues/6210</div><div class='add'>+[Feature #10917]: https://bugs.ruby-lang.org/issues/10917</div><div class='add'>+[Feature #11256]: https://bugs.ruby-lang.org/issues/11256</div><div class='add'>+[Feature #11689]: https://bugs.ruby-lang.org/issues/11689</div><div class='add'>+[Feature #12194]: https://bugs.ruby-lang.org/issues/12194</div><div class='add'>+[Feature #12495]: https://bugs.ruby-lang.org/issues/12495</div><div class='add'>+[Feature #12913]: https://bugs.ruby-lang.org/issues/12913</div><div class='add'>+[Feature #14256]: https://bugs.ruby-lang.org/issues/14256</div><div class='add'>+[Feature #14579]: https://bugs.ruby-lang.org/issues/14579</div><div class='add'>+[Feature #15198]: https://bugs.ruby-lang.org/issues/15198</div><div class='add'>+[Feature #15211]: https://bugs.ruby-lang.org/issues/15211</div><div class='add'>+[Feature #15912]: https://bugs.ruby-lang.org/issues/15912</div><div class='add'>+[Feature #16043]: https://bugs.ruby-lang.org/issues/16043</div><div class='add'>+[Feature #16182]: https://bugs.ruby-lang.org/issues/16182</div><div class='add'>+[Feature #16806]: https://bugs.ruby-lang.org/issues/16806</div><div class='add'>+[Feature #17312]: https://bugs.ruby-lang.org/issues/17312</div><div class='add'>+[Feature #17327]: https://bugs.ruby-lang.org/issues/17327</div><div class='add'>+[Feature #17370]: https://bugs.ruby-lang.org/issues/17370</div><div class='add'>+[Feature #17398]: https://bugs.ruby-lang.org/issues/17398</div><div class='add'>+[Feature #17411]: https://bugs.ruby-lang.org/issues/17411</div><div class='add'>+[Bug #17423]:     https://bugs.ruby-lang.org/issues/17423</div><div class='add'>+[Bug #17429]:     https://bugs.ruby-lang.org/issues/17429</div><div class='add'>+[Feature #17470]: https://bugs.ruby-lang.org/issues/17470</div><div class='add'>+[Feature #17479]: https://bugs.ruby-lang.org/issues/17479</div><div class='add'>+[Feature #17485]: https://bugs.ruby-lang.org/issues/17485</div><div class='add'>+[Feature #17544]: https://bugs.ruby-lang.org/issues/17544</div><div class='add'>+[Feature #17592]: https://bugs.ruby-lang.org/issues/17592</div><div class='add'>+[Feature #17684]: https://bugs.ruby-lang.org/issues/17684</div><div class='add'>+[Feature #17724]: https://bugs.ruby-lang.org/issues/17724</div><div class='add'>+[Feature #17744]: https://bugs.ruby-lang.org/issues/17744</div><div class='add'>+[Feature #17750]: https://bugs.ruby-lang.org/issues/17750</div><div class='add'>+[Feature #17762]: https://bugs.ruby-lang.org/issues/17762</div><div class='add'>+[Feature #17763]: https://bugs.ruby-lang.org/issues/17763</div><div class='add'>+[Feature #17795]: https://bugs.ruby-lang.org/issues/17795</div><div class='add'>+[Feature #17798]: https://bugs.ruby-lang.org/issues/17798</div><div class='add'>+[Bug #17827]:     https://bugs.ruby-lang.org/issues/17827</div><div class='add'>+[Feature #17847]: https://bugs.ruby-lang.org/issues/17847</div><div class='add'>+[Feature #17853]: https://bugs.ruby-lang.org/issues/17853</div><div class='add'>+[Bug #17866]:     https://bugs.ruby-lang.org/issues/17866</div><div class='add'>+[Bug #18003]:     https://bugs.ruby-lang.org/issues/18003</div><div class='add'>+[Feature #18008]: https://bugs.ruby-lang.org/issues/18008</div><div class='add'>+[Feature #18015]: https://bugs.ruby-lang.org/issues/18015</div><div class='add'>+[Feature #18020]: https://bugs.ruby-lang.org/issues/18020</div><div class='add'>+[Feature #18029]: https://bugs.ruby-lang.org/issues/18029</div><div class='add'>+[Feature #18045]: https://bugs.ruby-lang.org/issues/18045</div><div class='add'>+[Feature #18148]: https://bugs.ruby-lang.org/issues/18148</div><div class='add'>+[Feature #18172]: https://bugs.ruby-lang.org/issues/18172</div><div class='add'>+[Feature #18176]: https://bugs.ruby-lang.org/issues/18176</div><div class='add'>+[Feature #18190]: https://bugs.ruby-lang.org/issues/18190</div><div class='add'>+[Feature #18229]: https://bugs.ruby-lang.org/issues/18229</div><div class='add'>+[Feature #18239]: https://bugs.ruby-lang.org/issues/18239</div><div class='add'>+[Feature #18254]: https://bugs.ruby-lang.org/issues/18254</div><div class='add'>+[Feature #18273]: https://bugs.ruby-lang.org/issues/18273</div><div class='add'>+[Feature #18290]: https://bugs.ruby-lang.org/issues/18290</div><div class='add'>+</div><div class='add'>+[GH-1509]: https://github.com/ruby/ruby/pull/1509</div><div class='add'>+[GH-4815]: https://github.com/ruby/ruby/pull/4815</div><div class='add'>+[GH-5112]: https://github.com/ruby/ruby/pull/5112</div><div class='add'>+[GH-5131]: https://github.com/ruby/ruby/pull/5131</div><div class='add'>+[GH-5146]: https://github.com/ruby/ruby/pull/5146</div><div class='head'>diff --git a/doc/bsearch.rdoc b/doc/bsearch.rdoc<br/>new file mode 100644<br/>index 0000000000..ca8091fc0d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/bsearch.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/bsearch.rdoc</a></div><div class='hunk'>@@ -0,0 +1,120 @@</div><div class='add'>+== Binary Searching</div><div class='add'>+</div><div class='add'>+A few Ruby methods support binary searching in a collection:</div><div class='add'>+</div><div class='add'>+Array#bsearch:: Returns an element selected via a binary search</div><div class='add'>+                as determined by a given block.</div><div class='add'>+Array#bsearch_index:: Returns the index of an element selected via a binary search</div><div class='add'>+                      as determined by a given block.</div><div class='add'>+Range#bsearch:: Returns an element selected via a binary search</div><div class='add'>+                as determined by a given block.</div><div class='add'>+</div><div class='add'>+Each of these methods returns an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+Given a block, each of these methods returns an element (or element index) from +self+</div><div class='add'>+as determined by a binary search.</div><div class='add'>+The search finds an element of +self+ which meets</div><div class='add'>+the given condition in &lt;tt&gt;O(log n)&lt;/tt&gt; operations, where +n+ is the count of elements.</div><div class='add'>++self+ should be sorted, but this is not checked.</div><div class='add'>+</div><div class='add'>+There are two search modes:</div><div class='add'>+</div><div class='add'>+Find-minimum mode:: method +bsearch+ returns the first element for which</div><div class='add'>+                    the block returns +true+;</div><div class='add'>+                    the block must return +true+ or +false+.</div><div class='add'>+Find-any mode:: method +bsearch+ some element, if any, for which</div><div class='add'>+                the block returns zero.</div><div class='add'>+                the block must return a numeric value.</div><div class='add'>+</div><div class='add'>+The block should not mix the modes by sometimes returning +true+ or +false+</div><div class='add'>+and other times returning a numeric value, but this is not checked.</div><div class='add'>+</div><div class='add'>+&lt;b&gt;Find-Minimum Mode&lt;/b&gt;</div><div class='add'>+</div><div class='add'>+In find-minimum mode, the block must return +true+ or +false+.</div><div class='add'>+The further requirement (though not checked) is that</div><div class='add'>+there are no indexes +i+ and +j+ such that:</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;0 &lt;= i &lt; j &lt;= self.size&lt;/tt&gt;.</div><div class='add'>+- The block returns +true+ for &lt;tt&gt;self[i]&lt;/tt&gt; and +false+ for &lt;tt&gt;self[j]&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+Less formally: the block is such that all +false+-evaluating elements</div><div class='add'>+precede all +true+-evaluating elements.</div><div class='add'>+</div><div class='add'>+In find-minimum mode, method +bsearch+ returns the first element</div><div class='add'>+for which the block returns +true+.</div><div class='add'>+</div><div class='add'>+Examples:</div><div class='add'>+</div><div class='add'>+  a = [0, 4, 7, 10, 12]</div><div class='add'>+  a.bsearch {|x| x &gt;= 4 } # =&gt; 4</div><div class='add'>+  a.bsearch {|x| x &gt;= 6 } # =&gt; 7</div><div class='add'>+  a.bsearch {|x| x &gt;= -1 } # =&gt; 0</div><div class='add'>+  a.bsearch {|x| x &gt;= 100 } # =&gt; nil</div><div class='add'>+</div><div class='add'>+  r = (0...a.size)</div><div class='add'>+  r.bsearch {|i| a[i] &gt;= 4 } #=&gt; 1</div><div class='add'>+  r.bsearch {|i| a[i] &gt;= 6 } #=&gt; 2</div><div class='add'>+  r.bsearch {|i| a[i] &gt;= 8 } #=&gt; 3</div><div class='add'>+  r.bsearch {|i| a[i] &gt;= 100 } #=&gt; nil</div><div class='add'>+  r = (0.0...Float::INFINITY)</div><div class='add'>+  r.bsearch {|x| Math.log(x) &gt;= 0 } #=&gt; 1.0</div><div class='add'>+</div><div class='add'>+These blocks make sense in find-minimum mode:</div><div class='add'>+</div><div class='add'>+  a = [0, 4, 7, 10, 12]</div><div class='add'>+  a.map {|x| x &gt;= 4 } # =&gt; [false, true, true, true, true]</div><div class='add'>+  a.map {|x| x &gt;= 6 } # =&gt; [false, false, true, true, true]</div><div class='add'>+  a.map {|x| x &gt;= -1 } # =&gt; [true, true, true, true, true]</div><div class='add'>+  a.map {|x| x &gt;= 100 } # =&gt; [false, false, false, false, false]</div><div class='add'>+</div><div class='add'>+This would not make sense:</div><div class='add'>+</div><div class='add'>+  a.map {|x| x == 7 } # =&gt; [false, false, true, false, false]</div><div class='add'>+</div><div class='add'>+&lt;b&gt;Find-Any Mode&lt;/b&gt;</div><div class='add'>+</div><div class='add'>+In find-any mode, the block must return a numeric value.</div><div class='add'>+The further requirement (though not checked) is that</div><div class='add'>+there are no indexes +i+ and +j+ such that:</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;0 &lt;= i &lt; j &lt;= self.size&lt;/tt&gt;.</div><div class='add'>+- The block returns a negative value for &lt;tt&gt;self[i]&lt;/tt&gt;</div><div class='add'>+  and a positive value for &lt;tt&gt;self[j]&lt;/tt&gt;.</div><div class='add'>+- The block returns a negative value for &lt;tt&gt;self[i]&lt;/tt&gt; and zero &lt;tt&gt;self[j]&lt;/tt&gt;.</div><div class='add'>+- The block returns zero for &lt;tt&gt;self[i]&lt;/tt&gt; and a positive value for &lt;tt&gt;self[j]&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+Less formally: the block is such that:</div><div class='add'>+</div><div class='add'>+- All positive-evaluating elements precede all zero-evaluating elements.</div><div class='add'>+- All positive-evaluating elements precede all negative-evaluating elements.</div><div class='add'>+- All zero-evaluating elements precede all negative-evaluating elements.</div><div class='add'>+</div><div class='add'>+In find-any mode, method +bsearch+ returns some element</div><div class='add'>+for which the block returns zero, or +nil+ if no such element is found.</div><div class='add'>+</div><div class='add'>+Examples:</div><div class='add'>+</div><div class='add'>+  a = [0, 4, 7, 10, 12]</div><div class='add'>+  a.bsearch {|element| 7 &lt;=&gt; element } # =&gt; 7</div><div class='add'>+  a.bsearch {|element| -1 &lt;=&gt; element } # =&gt; nil</div><div class='add'>+  a.bsearch {|element| 5 &lt;=&gt; element } # =&gt; nil</div><div class='add'>+  a.bsearch {|element| 15 &lt;=&gt; element } # =&gt; nil</div><div class='add'>+</div><div class='add'>+  a = [0, 100, 100, 100, 200]</div><div class='add'>+  r = (0..4)</div><div class='add'>+  r.bsearch {|i| 100 - a[i] } #=&gt; 1, 2 or 3</div><div class='add'>+  r.bsearch {|i| 300 - a[i] } #=&gt; nil</div><div class='add'>+  r.bsearch {|i|  50 - a[i] } #=&gt; nil</div><div class='add'>+</div><div class='add'>+These blocks make sense in find-any mode:</div><div class='add'>+</div><div class='add'>+  a = [0, 4, 7, 10, 12]</div><div class='add'>+  a.map {|element| 7 &lt;=&gt; element } # =&gt; [1, 1, 0, -1, -1]</div><div class='add'>+  a.map {|element| -1 &lt;=&gt; element } # =&gt; [-1, -1, -1, -1, -1]</div><div class='add'>+  a.map {|element| 5 &lt;=&gt; element } # =&gt; [1, 1, -1, -1, -1]</div><div class='add'>+  a.map {|element| 15 &lt;=&gt; element } # =&gt; [1, 1, 1, 1, 1]</div><div class='add'>+</div><div class='add'>+This would not make sense:</div><div class='add'>+</div><div class='add'>+  a.map {|element| element &lt;=&gt; 7 } # =&gt; [-1, -1, 0, 1, 1]</div><div class='head'>diff --git a/doc/bug_triaging.rdoc b/doc/bug_triaging.rdoc<br/>new file mode 100644<br/>index 0000000000..83fe88cabe<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/bug_triaging.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/bug_triaging.rdoc</a></div><div class='hunk'>@@ -0,0 +1,79 @@</div><div class='add'>+= Bug Triaging Guide</div><div class='add'>+</div><div class='add'>+This guide discusses recommendations for triaging bugs in Ruby's bug tracker.</div><div class='add'>+</div><div class='add'>+== Bugs with Reproducible Examples</div><div class='add'>+</div><div class='add'>+These are the best bug reports.  First, consider whether the bug reported is</div><div class='add'>+actually an issue or if it is expected Ruby behavior.  If it is expected Ruby</div><div class='add'>+behavior, update the issue with why the behavior is expected, and set the</div><div class='add'>+status to Rejected.</div><div class='add'>+</div><div class='add'>+If the bug reported appears to be an actual bug, try reproducing the bug with</div><div class='add'>+the master branch.  If you are not able to reproduce the issue on the master</div><div class='add'>+branch, try reproducing it on the latest version for the branch the bug was</div><div class='add'>+reported on.  If you cannot reproduce the issue in either case, update</div><div class='add'>+the issue stating you cannot reproduce the issue, ask the reporter if they</div><div class='add'>+can reproduce the issue with either the master branch or a later release,</div><div class='add'>+and set the status to Feedback.</div><div class='add'>+</div><div class='add'>+If you can reproduce the example with the master branch, try to figure out</div><div class='add'>+what is causing the issue.  If you feel comfortable, try working on a</div><div class='add'>+patch for the issue, update the issue, and attach the patch.  Try to figure</div><div class='add'>+out which committer should be assigned to the issue, and set them as the</div><div class='add'>+assignee, and set the status to Assigned.</div><div class='add'>+</div><div class='add'>+If you cannot reproduce the example with the master branch, but can reproduce</div><div class='add'>+the issue on the latest version for the branch, then it is likely the bug has</div><div class='add'>+already been fixed, but it has not been backported yet.  Try to determine</div><div class='add'>+which commit fixed it, and update the issue noting that the issue has been</div><div class='add'>+fixed but not yet backported.  If the Ruby version is in the security</div><div class='add'>+maintenance phase or no longer supported, change the status to Closed. This</div><div class='add'>+change can be made without adding a note to avoid spamming the mailing list.</div><div class='add'>+</div><div class='add'>+For issues that may require backwards incompatible changes or may benefit from</div><div class='add'>+general committer attention or discussion, consider adding them as agenda</div><div class='add'>+items for the next committer meeting (https://bugs.ruby-lang.org/issues/14770).</div><div class='add'>+</div><div class='add'>+== Crash Bugs Without Reproducers</div><div class='add'>+</div><div class='add'>+Many bugs reported have little more than a crash report, often with no way to</div><div class='add'>+reproduce the issue.  These bugs are difficult to triage as they often do not</div><div class='add'>+contain enough information.</div><div class='add'>+</div><div class='add'>+For these bugs, if the Ruby version is the master branch or is the latest</div><div class='add'>+release for the branch and the branch is in normal maintenance phase, look at</div><div class='add'>+the backtrace and see if you can determine what could be causing the issue.</div><div class='add'>+If you can guess what could be causing the issue, see if you can put together</div><div class='add'>+a reproducible example (this is in general quite difficult).  If you cannot</div><div class='add'>+guess what could be causing the issue, or cannot put together a reproducible</div><div class='add'>+example yourself, please ask the reporter to provide a reproducible example,</div><div class='add'>+and change the status to Feedback.</div><div class='add'>+</div><div class='add'>+If the Ruby version is no longer current (e.g. 2.5.0 when the latest version</div><div class='add'>+on the Ruby 2.5 branch is 2.5.5), add a note to the issue asking the reporter</div><div class='add'>+to try the latest Ruby version for the branch and report back, and change the</div><div class='add'>+status to Feedback.  If the Ruby version is in the security maintenance phase</div><div class='add'>+or no longer supported, change the status to Closed. This change can be made</div><div class='add'>+without adding a note.</div><div class='add'>+</div><div class='add'>+== Crash Bugs With 3rd Party C Extensions</div><div class='add'>+</div><div class='add'>+If the crash happens inside a 3rd party C extension, try to figure out inside</div><div class='add'>+which C extension it happens, and add a note to the issue to report the</div><div class='add'>+issue to that C extension, and set the status to Third Party's Issue.</div><div class='add'>+</div><div class='add'>+== Non-Bug reports</div><div class='add'>+</div><div class='add'>+Any issues in the bug tracker that are not reports of problems should have</div><div class='add'>+the tracker changed from Bug to either Feature (new features or performance</div><div class='add'>+improvements) or Misc. This change can be made without adding a note.</div><div class='add'>+</div><div class='add'>+== Stale Issues</div><div class='add'>+</div><div class='add'>+There are many issues that are stale, with no updates in months or even years.</div><div class='add'>+For stale issues in Feedback state, where the feedback has not been received,</div><div class='add'>+you can change the status to Closed without adding a note.  For stale issues</div><div class='add'>+in Assigned state, you can reach out to the assignee and see if they can update</div><div class='add'>+the issue.  If the assignee is no longer an active committer, remove them</div><div class='add'>+as the assignee and change the status to Open.</div><div class='head'>diff --git a/doc/case_mapping.rdoc b/doc/case_mapping.rdoc<br/>new file mode 100644<br/>index 0000000000..3c42154973<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/case_mapping.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/case_mapping.rdoc</a></div><div class='hunk'>@@ -0,0 +1,116 @@</div><div class='add'>+== Case Mapping</div><div class='add'>+</div><div class='add'>+Some string-oriented methods use case mapping.</div><div class='add'>+</div><div class='add'>+In String:</div><div class='add'>+</div><div class='add'>+- String#capitalize</div><div class='add'>+- String#capitalize!</div><div class='add'>+- String#casecmp</div><div class='add'>+- String#casecmp?</div><div class='add'>+- String#downcase</div><div class='add'>+- String#downcase!</div><div class='add'>+- String#swapcase</div><div class='add'>+- String#swapcase!</div><div class='add'>+- String#upcase</div><div class='add'>+- String#upcase!</div><div class='add'>+</div><div class='add'>+In Symbol:</div><div class='add'>+</div><div class='add'>+- Symbol#capitalize</div><div class='add'>+- Symbol#casecmp</div><div class='add'>+- Symbol#casecmp?</div><div class='add'>+- Symbol#downcase</div><div class='add'>+- Symbol#swapcase</div><div class='add'>+- Symbol#upcase</div><div class='add'>+</div><div class='add'>+=== Default Case Mapping</div><div class='add'>+</div><div class='add'>+By default, all of these methods use full Unicode case mapping,</div><div class='add'>+which is suitable for most languages.</div><div class='add'>+See {Section 3.13 (Default Case Algorithms) of the Unicode standard}[https://www.unicode.org/versions/latest/ch03.pdf].</div><div class='add'>+</div><div class='add'>+Non-ASCII case mapping and folding are supported for UTF-8,</div><div class='add'>+UTF-16BE/LE, UTF-32BE/LE, and ISO-8859-1~16 Strings/Symbols.</div><div class='add'>+</div><div class='add'>+Context-dependent case mapping as described in</div><div class='add'>+{Table 3-17 (Context Specification for Casing) of the Unicode standard}[https://www.unicode.org/versions/latest/ch03.pdf]</div><div class='add'>+is currently not supported.</div><div class='add'>+</div><div class='add'>+In most cases, case conversions of a string have the same number of characters.</div><div class='add'>+There are exceptions (see also +:fold+ below):</div><div class='add'>+</div><div class='add'>+  s = "\u00DF" # =&gt; "ÃŸ"</div><div class='add'>+  s.upcase     # =&gt; "SS"</div><div class='add'>+  s = "\u0149" # =&gt; "Å‰"</div><div class='add'>+  s.upcase     # =&gt; "Ê¼N"</div><div class='add'>+</div><div class='add'>+Case mapping may also depend on locale (see also +:turkic+ below):</div><div class='add'>+</div><div class='add'>+  s = "\u0049"        # =&gt; "I"</div><div class='add'>+  s.downcase          # =&gt; "i" # Dot above.</div><div class='add'>+  s.downcase(:turkic) # =&gt; "Ä±" # No dot above.</div><div class='add'>+</div><div class='add'>+Case changes may not be reversible:</div><div class='add'>+</div><div class='add'>+  s = 'Hello World!' # =&gt; "Hello World!"</div><div class='add'>+  s.downcase         # =&gt; "hello world!"</div><div class='add'>+  s.downcase.upcase  # =&gt; "HELLO WORLD!" # Different from original s.</div><div class='add'>+</div><div class='add'>+Case changing methods may not maintain Unicode normalization.</div><div class='add'>+See String#unicode_normalize).</div><div class='add'>+</div><div class='add'>+=== Options for Case Mapping</div><div class='add'>+</div><div class='add'>+Except for +casecmp+ and +casecmp?+,</div><div class='add'>+each of the case-mapping methods listed above</div><div class='add'>+accepts optional arguments, &lt;tt&gt;*options&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+The arguments may be:</div><div class='add'>+</div><div class='add'>+- +:ascii+ only.</div><div class='add'>+- +:fold+ only.</div><div class='add'>+- +:turkic+ or +:lithuanian+ or both.</div><div class='add'>+</div><div class='add'>+The options:</div><div class='add'>+</div><div class='add'>+- +:ascii+:</div><div class='add'>+  ASCII-only mapping:</div><div class='add'>+  uppercase letters ('A'..'Z') are mapped to lowercase letters ('a'..'z);</div><div class='add'>+  other characters are not changed</div><div class='add'>+</div><div class='add'>+    s = "Foo \u00D8 \u00F8 Bar" # =&gt; "Foo Ã˜ Ã¸ Bar"</div><div class='add'>+    s.upcase                    # =&gt; "FOO Ã˜ Ã˜ BAR"</div><div class='add'>+    s.downcase                  # =&gt; "foo Ã¸ Ã¸ bar"</div><div class='add'>+    s.upcase(:ascii)            # =&gt; "FOO Ã˜ Ã¸ BAR"</div><div class='add'>+    s.downcase(:ascii)          # =&gt; "foo Ã˜ Ã¸ bar"</div><div class='add'>+</div><div class='add'>+- +:turkic+:</div><div class='add'>+  Full Unicode case mapping, adapted for the Turkic languages</div><div class='add'>+  that distinguish dotted and dotless I, for example Turkish and Azeri.</div><div class='add'>+</div><div class='add'>+    s = 'TÃ¼rkiye'       # =&gt; "TÃ¼rkiye"</div><div class='add'>+    s.upcase            # =&gt; "TÃœRKIYE"</div><div class='add'>+    s.upcase(:turkic)   # =&gt; "TÃœRKÄ°YE" # Dot above.</div><div class='add'>+</div><div class='add'>+    s = 'TÃœRKIYE'       # =&gt; "TÃœRKIYE"</div><div class='add'>+    s.downcase          # =&gt; "tÃ¼rkiye"</div><div class='add'>+    s.downcase(:turkic) # =&gt; "tÃ¼rkÄ±ye" # No dot above.</div><div class='add'>+</div><div class='add'>+- +:lithuanian+:</div><div class='add'>+  Not yet implemented.</div><div class='add'>+</div><div class='add'>+- +:fold+ (available only for String#downcase, String#downcase!,</div><div class='add'>+  and Symbol#downcase):</div><div class='add'>+  Unicode case folding,</div><div class='add'>+  which is more far-reaching than Unicode case mapping.</div><div class='add'>+</div><div class='add'>+    s = "\u00DF"      # =&gt; "ÃŸ"</div><div class='add'>+    s.downcase        # =&gt; "ÃŸ"</div><div class='add'>+    s.downcase(:fold) # =&gt; "ss"</div><div class='add'>+    s.upcase          # =&gt; "SS"</div><div class='add'>+</div><div class='add'>+    s = "\uFB04"      # =&gt; "ï¬„"</div><div class='add'>+    s.downcase        # =&gt; "ï¬„"</div><div class='add'>+    s.upcase          # =&gt; "FFL"</div><div class='add'>+    s.downcase(:fold) # =&gt; "ffl"</div><div class='head'>diff --git a/doc/character_selectors.rdoc b/doc/character_selectors.rdoc<br/>new file mode 100644<br/>index 0000000000..e01b0e6a25<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/character_selectors.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/character_selectors.rdoc</a></div><div class='hunk'>@@ -0,0 +1,97 @@</div><div class='add'>+== Character Selectors</div><div class='add'>+</div><div class='add'>+=== Character Selector</div><div class='add'>+</div><div class='add'>+A _character_ _selector_ is a string argument accepted by certain Ruby methods.</div><div class='add'>+Each of these instance methods accepts one or more character selectors:</div><div class='add'>+</div><div class='add'>+- String#tr(selector, replacements): returns a new string.</div><div class='add'>+- String#tr!(selector, replacements): returns +self+ or +nil+.</div><div class='add'>+- String#tr_s(selector, replacements): returns a new string.</div><div class='add'>+- String#tr_s!(selector, replacements): returns +self+ or +nil+.</div><div class='add'>+- String#count(*selectors): returns the count of the specified characters.</div><div class='add'>+- String#delete(*selectors): returns a new string.</div><div class='add'>+- String#delete!(*selectors): returns +self+ or +nil+.</div><div class='add'>+- String#squeeze(*selectors): returns a new string.</div><div class='add'>+- String#squeeze!(*selectors): returns +self+ or +nil+.</div><div class='add'>+</div><div class='add'>+A character selector identifies zero or more characters in +self+</div><div class='add'>+that are to be operands for the method.</div><div class='add'>+</div><div class='add'>+In this section, we illustrate using method String#delete(selector),</div><div class='add'>+which deletes the selected characters.</div><div class='add'>+</div><div class='add'>+In the simplest case, the characters selected are exactly those</div><div class='add'>+contained in the selector itself:</div><div class='add'>+</div><div class='add'>+  'abracadabra'.delete('a')   # =&gt; "brcdbr"</div><div class='add'>+  'abracadabra'.delete('ab')  # =&gt; "rcdr"</div><div class='add'>+  'abracadabra'.delete('abc') # =&gt; "rdr"</div><div class='add'>+  '0123456789'.delete('258')  # =&gt; "0134679"</div><div class='add'>+  '!@#$%&amp;*()_+'.delete('+&amp;#') # =&gt; "!@$%*()_"</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.delete('Ñ‚')          # =&gt; "ÐµÑ"</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.delete('ã«')     # =&gt; "ã“ã‚“ã¡ã¯"</div><div class='add'>+</div><div class='add'>+Note that order and repetitions do not matter:</div><div class='add'>+</div><div class='add'>+  'abracadabra'.delete('dcab') # =&gt; "rr"</div><div class='add'>+  'abracadabra'.delete('aaaa') # =&gt; "brcdbr"</div><div class='add'>+</div><div class='add'>+In a character selector, these three characters get special treatment:</div><div class='add'>+</div><div class='add'>+- A leading caret (&lt;tt&gt;'^'&lt;/tt&gt;) functions as a "not" operator</div><div class='add'>+  for the characters to its right:</div><div class='add'>+</div><div class='add'>+    'abracadabra'.delete('^bc') # =&gt; "bcb"</div><div class='add'>+    '0123456789'.delete('^852') # =&gt; "258"</div><div class='add'>+</div><div class='add'>+- A hyphen (&lt;tt&gt;'-'&lt;/tt&gt;) between two other characters</div><div class='add'>+  defines a range of characters instead of a plain string of characters:</div><div class='add'>+</div><div class='add'>+    'abracadabra'.delete('a-d') # =&gt; "rr"</div><div class='add'>+    '0123456789'.delete('4-7')  # =&gt; "012389"</div><div class='add'>+    '!@#$%&amp;*()_+'.delete(' -/') # =&gt; "@^_"</div><div class='add'>+</div><div class='add'>+    # May contain more than one range.</div><div class='add'>+    'abracadabra'.delete('a-cq-t') # =&gt; "d"</div><div class='add'>+</div><div class='add'>+    # Ranges may be mixed with plain characters.</div><div class='add'>+    '0123456789'.delete('67-950-23') # =&gt; "4"</div><div class='add'>+</div><div class='add'>+    # Ranges may be mixed with negations.</div><div class='add'>+    'abracadabra'.delete('^a-c') # =&gt; "abacaaba"</div><div class='add'>+</div><div class='add'>+- A backslash (&lt;tt&gt;'\'&lt;/tt&gt;) acts as an escape for a caret, a hyphen,</div><div class='add'>+  or another backslash:</div><div class='add'>+</div><div class='add'>+    'abracadabra^'.delete('\^bc')   # =&gt; "araadara"</div><div class='add'>+    'abracadabra-'.delete('a\-d')   # =&gt; "brcbr"</div><div class='add'>+    "hello\r\nworld".delete("\r")   # =&gt; "hello\nworld"</div><div class='add'>+    "hello\r\nworld".delete("\\r")  # =&gt; "hello\r\nwold"</div><div class='add'>+    "hello\r\nworld".delete("\\\r") # =&gt; "hello\nworld"</div><div class='add'>+</div><div class='add'>+=== Multiple Character Selectors</div><div class='add'>+</div><div class='add'>+These instance methods accept multiple character selectors:</div><div class='add'>+</div><div class='add'>+- String#count(*selectors): returns the count of the specified characters.</div><div class='add'>+- String#delete(*selectors): returns a new string.</div><div class='add'>+- String#delete!(*selectors): returns +self+ or +nil+.</div><div class='add'>+- String#squeeze(*selectors): returns a new string.</div><div class='add'>+- String#squeeze!(*selectors): returns +self+ or +nil+.</div><div class='add'>+</div><div class='add'>+In effect, the given selectors are formed into a single selector</div><div class='add'>+consisting of only those characters common to _all_ of the given selectors.</div><div class='add'>+</div><div class='add'>+All forms of selectors may be used, including negations, ranges, and escapes.</div><div class='add'>+</div><div class='add'>+Each of these pairs of method calls is equivalent:</div><div class='add'>+</div><div class='add'>+  s.delete('abcde', 'dcbfg')</div><div class='add'>+  s.delete('bcd')</div><div class='add'>+</div><div class='add'>+  s.delete('^abc', '^def')</div><div class='add'>+  s.delete('^abcdef')</div><div class='add'>+</div><div class='add'>+  s.delete('a-e', 'c-g')</div><div class='add'>+  s.delete('cde')</div><div class='head'>diff --git a/doc/command_injection.rdoc b/doc/command_injection.rdoc<br/>new file mode 100644<br/>index 0000000000..af09be23f0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/command_injection.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/command_injection.rdoc</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+== Command Injection</div><div class='add'>+</div><div class='add'>+Some Ruby core methods accept string data</div><div class='add'>+that includes text to be executed as a system command.</div><div class='add'>+</div><div class='add'>+They should not be called with unknown or unsanitized commands.</div><div class='add'>+</div><div class='add'>+These methods include:</div><div class='add'>+</div><div class='add'>+- Kernel.system</div><div class='add'>+- {\`command` (backtick method)}[rdoc-ref:Kernel#`]</div><div class='add'>+  (also called by the expression &lt;tt&gt;%x[command]&lt;/tt&gt;).</div><div class='add'>+- IO.popen(command).</div><div class='add'>+- IO.read(command).</div><div class='add'>+- IO.write(command).</div><div class='add'>+- IO.binread(command).</div><div class='add'>+- IO.binwrite(command).</div><div class='add'>+- IO.readlines(command).</div><div class='add'>+- IO.foreach(command).</div><div class='add'>+</div><div class='add'>+Note that some of these methods do not execute commands when called</div><div class='add'>+from subclass \File:</div><div class='add'>+</div><div class='add'>+- File.read(path).</div><div class='add'>+- File.write(path).</div><div class='add'>+- File.binread(path).</div><div class='add'>+- File.binwrite(path).</div><div class='add'>+- File.readlines(path).</div><div class='add'>+- File.foreach(path).</div><div class='head'>diff --git a/doc/contributing.md b/doc/contributing.md<br/>new file mode 100644<br/>index 0000000000..a6c63de9b2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/contributing.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/contributing.md</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+# Contributing to Ruby</div><div class='add'>+</div><div class='add'>+This guide outlines ways to get started with contributing to Ruby:</div><div class='add'>+</div><div class='add'>+* [Reporting issues](contributing/reporting_issues.md): How to report issues, how to request features, and how backporting works</div><div class='add'>+* [Building Ruby](contributing/building_ruby.md): How to build Ruby on your local machine for development</div><div class='add'>+* [Testing Ruby](contributing/testing_ruby.md): How to test Ruby on your local machine once you've built it</div><div class='add'>+* [Making changes to Ruby](contributing/making_changes_to_ruby.md): How to submit pull requests</div><div class='add'>+  to change Ruby's documentation, code, test suite, or standard libraries</div><div class='add'>+* [Making changes to Ruby standard libraries](contributing/making_changes_to_stdlibs.md): How to build, test, and contribute to Ruby standard libraries</div><div class='add'>+* [Making changes to Ruby documentation](contributing/documentation_guide.md): How to make changes to Ruby documentation</div><div class='add'>+* [Benchmarking Ruby](https://github.com/ruby/ruby/tree/master/benchmark#make-benchmark): How to benchmark Ruby</div><div class='head'>diff --git a/doc/contributing.rdoc b/doc/contributing.rdoc<br/>deleted file mode 100644<br/>index b92dc7427e..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/contributing.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/contributing.rdoc</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,459 +0,0 @@</div><div class='del'>-= Contributing to Ruby</div><div class='del'>-</div><div class='del'>-Ruby has a vast and friendly community with hundreds of people contributing to</div><div class='del'>-a thriving open-source ecosystem. This guide is designed to cover ways for</div><div class='del'>-participating in the development of CRuby.</div><div class='del'>-</div><div class='del'>-There are plenty of ways for you to help even if you're not ready to write</div><div class='del'>-code or documentation.  You can help by reporting issues, testing patches, and</div><div class='del'>-trying out beta releases with your applications.</div><div class='del'>-</div><div class='del'>-== How To Report</div><div class='del'>-</div><div class='del'>-If you've encountered a bug in Ruby please report it to the redmine issue</div><div class='del'>-tracker available at {bugs.ruby-lang.org}[https://bugs.ruby-lang.org/].  Do not</div><div class='del'>-report security vulnerabilities here, there is a {separate</div><div class='del'>-channel}[rdoc-label:label-Reporting+Security+Issues] for them.</div><div class='del'>-</div><div class='del'>-There are a few simple steps you should follow in order to receive feedback</div><div class='del'>-on your ticket.</div><div class='del'>-</div><div class='del'>-* If you haven't already,</div><div class='del'>-  {sign up for an account}[https://bugs.ruby-lang.org/account/register] on the</div><div class='del'>-  bug tracker.</div><div class='del'>-* Try the latest version.</div><div class='del'>-</div><div class='del'>-  If you aren't already using the latest version, try installing a newer</div><div class='del'>-  stable release. See</div><div class='del'>-  {Downloading Ruby}[https://www.ruby-lang.org/en/downloads/].</div><div class='del'>-* Look to see if anyone already reported your issue, try</div><div class='del'>-  {searching on redmine}[https://bugs.ruby-lang.org/projects/ruby-trunk/issues]</div><div class='del'>-  for your problem.</div><div class='del'>-* If you can't find a ticket addressing your issue,</div><div class='del'>-  {create a new one}[https://bugs.ruby-lang.org/projects/ruby-trunk/issues/new].</div><div class='del'>-* Choose the target version, usually current. Bugs will be first fixed in the</div><div class='del'>-  current release and then {backported}[rdoc-label:label-Backport+Requests].</div><div class='del'>-* Fill in the Ruby version you're using when experiencing this issue</div><div class='del'>-  (&lt;code&gt;ruby -v&lt;/code&gt;).</div><div class='del'>-* Attach any logs or reproducible programs to provide additional information.</div><div class='del'>-  Reproducible scripts should be as small as possible.</div><div class='del'>-* Briefly describe your problem.  A 2-3 sentence description will help give a</div><div class='del'>-  quick response.</div><div class='del'>-* Pick a category, such as core for common problems, or lib for a standard</div><div class='del'>-  library.</div><div class='del'>-* Check the {Maintainers</div><div class='del'>-  list}[https://bugs.ruby-lang.org/projects/ruby/wiki/Maintainers] and assign</div><div class='del'>-  the ticket if there is an active maintainer for the library or feature.</div><div class='del'>-* If the ticket doesn't have any replies after 10 days, you can send a</div><div class='del'>-  reminder.</div><div class='del'>-* Please reply to feedback requests. If a bug report doesn't get any feedback,</div><div class='del'>-  it'll eventually get rejected.</div><div class='del'>-</div><div class='del'>-=== Reporting to downstream distributions</div><div class='del'>-</div><div class='del'>-You can report downstream issues for the following distributions via their bug tracker:</div><div class='del'>-</div><div class='del'>-* {debian}[https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=ruby-defaults]</div><div class='del'>-* {freebsd}[http://www.freebsd.org/cgi/query-pr-summary.cgi?text=ruby]</div><div class='del'>-* {redhat}[https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=MODIFIED]</div><div class='del'>-* {macports}[https://trac.macports.org/query?status=assigned&amp;status=new&amp;status=reopened&amp;port=~ruby]</div><div class='del'>-* etc (add your distribution bug tracker here)</div><div class='del'>-</div><div class='del'>-=== Platform Maintainers</div><div class='del'>-</div><div class='del'>-For platform specific bugs in Ruby, you can assign your ticket to the current</div><div class='del'>-maintainer for a specific platform.</div><div class='del'>-</div><div class='del'>-The current active platform maintainers are as follows:</div><div class='del'>-</div><div class='del'>-[mswin64 (Microsoft Windows)]</div><div class='del'>-  NAKAMURA Usaku (usa)</div><div class='del'>-[mingw32 (Minimalist GNU for Windows)]</div><div class='del'>-  Nobuyoshi Nakada (nobu)</div><div class='del'>-[AIX]</div><div class='del'>-  Yutaka Kanemoto (kanemoto)</div><div class='del'>-[FreeBSD]</div><div class='del'>-  Akinori MUSHA (knu)</div><div class='del'>-[Solaris]</div><div class='del'>-  Naohisa Goto (ngoto)</div><div class='del'>-[RHEL, CentOS]</div><div class='del'>-  KOSAKI Motohiro (kosaki)</div><div class='del'>-[macOS]</div><div class='del'>-  Kenta Murata (mrkn)</div><div class='del'>-[cygwin, bcc32, djgpp, wince, ...]</div><div class='del'>-  none. (Maintainer WANTED)</div><div class='del'>-</div><div class='del'>-== Reporting Security Issues</div><div class='del'>-</div><div class='del'>-Security vulnerabilities receive special treatment since they may negatively</div><div class='del'>-affect many users. There is a private mailing list that all security issues</div><div class='del'>-should be reported to and will be handled discretely. Email the</div><div class='del'>-mailto:security@ruby-lang.org list and the problem will be published after</div><div class='del'>-fixes have been released. You can also encrypt the issue using {the PGP public</div><div class='del'>-key}[https://www.ruby-lang.org/security.asc] for the list.</div><div class='del'>-</div><div class='del'>-== Reporting Other Issues</div><div class='del'>-</div><div class='del'>-If you're having an issue with the website, or maybe the mailing list, you can</div><div class='del'>-contact the webmaster to help resolve the problem.</div><div class='del'>-</div><div class='del'>-The current webmaster is:</div><div class='del'>-</div><div class='del'>-* Hiroshi SHIBATA (hsbt)</div><div class='del'>-</div><div class='del'>-You can also report issues with the ruby-lang.org website on the issue tracker:</div><div class='del'>-</div><div class='del'>-* {issue tracker}[https://github.com/ruby/www.ruby-lang.org/issues]</div><div class='del'>-</div><div class='del'>-== Resolve Existing Issues</div><div class='del'>-</div><div class='del'>-As a next step beyond reporting issues you can help the core team resolve</div><div class='del'>-existing issues. If you check the Everyone's Issues list in GitHub Issues,</div><div class='del'>-you will find a lot of issues already requiring attention. What can you do for</div><div class='del'>-these? Quite a bit, actually:</div><div class='del'>-</div><div class='del'>-When a bug report goes for a while without any feedback, it goes to the bug</div><div class='del'>-graveyard which is unfortunate. If you check the {issues</div><div class='del'>-list}[https://bugs.ruby-lang.org/projects/ruby-trunk/issues] you will find lots</div><div class='del'>-of delinquent bugs that require attention.</div><div class='del'>-</div><div class='del'>-You can help by verifying the existing tickets, try to reproduce the reported</div><div class='del'>-issue on your own and comment if you still experience the bug. Some issues</div><div class='del'>-lack attention because of too much ambiguity, to help you can narrow down the</div><div class='del'>-problem and provide more specific details or instructions to reproduce the</div><div class='del'>-bug. You might also try contributing a failing test in the form of a patch,</div><div class='del'>-which we will cover later in this guide.</div><div class='del'>-</div><div class='del'>-It may also help to try out patches other contributors have submitted to</div><div class='del'>-redmine, if gone without notice. In this case the +patch+ command is your</div><div class='del'>-friend, see &lt;code&gt;man patch&lt;/code&gt; for more information. Basically this would</div><div class='del'>-go something like this:</div><div class='del'>-</div><div class='del'>-  cd path/to/ruby/trunk</div><div class='del'>-  patch -p0 &lt; path/to/patch</div><div class='del'>-</div><div class='del'>-You will then be prompted to apply the patch with the associated files. After</div><div class='del'>-building ruby again, you should try to run the tests and verify if the change</div><div class='del'>-actually worked or fixed the bug. It's important to provide valuable feedback</div><div class='del'>-on the patch that can help reach the overall goal, try to answer some of these</div><div class='del'>-questions:</div><div class='del'>-</div><div class='del'>-* What do you like about this change?</div><div class='del'>-* What would you do differently?</div><div class='del'>-* Are there any other edge cases not tested?</div><div class='del'>-* Is there any documentation that would be affected by this change?</div><div class='del'>-</div><div class='del'>-If you can answer some or all of these questions, you're on the right track.</div><div class='del'>-If your comment simply says "+1", then odds are that other reviewers aren't</div><div class='del'>-going to take it too seriously. Show that you took the time to review the</div><div class='del'>-patch.</div><div class='del'>-</div><div class='del'>-== How To Request Features</div><div class='del'>-</div><div class='del'>-If there's a new feature that you want to see added to Ruby, you will need to</div><div class='del'>-write a convincing proposal and patch to implement the feature.</div><div class='del'>-</div><div class='del'>-For new features in CRuby, use the {'Feature'</div><div class='del'>-tracker}[https://bugs.ruby-lang.org/projects/ruby-trunk/issues?set_filter=1&amp;tracker_id=2]</div><div class='del'>-on ruby-trunk. For non-CRuby dependent features, features that would apply to</div><div class='del'>-alternate Ruby implementations such as JRuby and Rubinius, use the {CommonRuby</div><div class='del'>-tracker}[https://bugs.ruby-lang.org/projects/common-ruby].</div><div class='del'>-</div><div class='del'>-When writing a proposal be sure to check for previous discussions on the</div><div class='del'>-topic and have a solid use case. You will need to be persuasive and convince</div><div class='del'>-Matz on your new feature. You should also consider the potential compatibility</div><div class='del'>-issues that this new feature might raise.</div><div class='del'>-</div><div class='del'>-Consider making your feature into a gem, and if there are enough people who</div><div class='del'>-benefit from your feature it could help persuade ruby-core. Although feature</div><div class='del'>-requests can seem like an alluring way to contribute to Ruby, often these</div><div class='del'>-discussions can lead nowhere and exhaust time and energy that could be better</div><div class='del'>-spent fixing bugs. Choose your battles.</div><div class='del'>-</div><div class='del'>-A good template for a feature proposal should look something like this:</div><div class='del'>-</div><div class='del'>-[Abstract]</div><div class='del'>-  Summary of your feature</div><div class='del'>-[Background]</div><div class='del'>-  Describe current behavior and why it is problem. Related work, such as</div><div class='del'>-  solutions in other language helps us to understand the problem.</div><div class='del'>-[Proposal]</div><div class='del'>-  Describe your proposal in details</div><div class='del'>-[Details]</div><div class='del'>-  If it has complicated feature, describe it</div><div class='del'>-[Usecase]</div><div class='del'>-  How would your feature be used? Who will benefit from it?</div><div class='del'>-[Discussion]</div><div class='del'>-  Discuss about this proposal. A list of pros and cons will help start</div><div class='del'>-  discussion.</div><div class='del'>-[Limitation]</div><div class='del'>-  Limitation of your proposal</div><div class='del'>-[Another alternative proposal]</div><div class='del'>-  If there are alternative proposals, show them.</div><div class='del'>-[See also]</div><div class='del'>-  Links to the other related resources</div><div class='del'>-</div><div class='del'>-=== Slideshow</div><div class='del'>-</div><div class='del'>-At the Ruby Developer Meeting in Japan, committers discuss Feature Proposals together in Tokyo. We will judge proposals and then accept, reject, or give feedback for them.</div><div class='del'>-If you have a stalled proposal, making a slide to submit is good way to get feedback.</div><div class='del'>-</div><div class='del'>-Slides should be:</div><div class='del'>-</div><div class='del'>-* One-page slide</div><div class='del'>-* Include a corresponding ticket number</div><div class='del'>-* MUST include a figure and/or short example code</div><div class='del'>-* SHOULD have less sentence in natural language (try to write less than 140 characters)</div><div class='del'>-* It is RECOMMENDED to itemize: motivation/use case, proposal, pros/cons, corner case</div><div class='del'>-* PDF or Image (Web browsers can show it)</div><div class='del'>-</div><div class='del'>-Please note:</div><div class='del'>-</div><div class='del'>-* Even if the proposal is generally acceptable, it won't be accepted without writing corner cases in the ticket</div><div class='del'>-* Slide's example: DevelopersMeeting20130727Japan</div><div class='del'>-</div><div class='del'>-== Backport Requests</div><div class='del'>-</div><div class='del'>-When a new version of Ruby is released, it starts at patch level 0 (p0), and</div><div class='del'>-bugs will be fixed first on the trunk branch. If it's determined that a bug</div><div class='del'>-exists in a previous version of Ruby that is still in the bug fix stage of</div><div class='del'>-maintenance, then a patch will be backported. After the maintenance stage of a</div><div class='del'>-particular Ruby version ends, it goes into "security fix only" mode which</div><div class='del'>-means only security related vulnerabilities will be backported. Versions in</div><div class='del'>-End-of-life (EOL) will not receive any updates and it is recommended you</div><div class='del'>-upgrade as soon as possible.</div><div class='del'>-</div><div class='del'>-If a major security issue is found or after a certain amount of time since the</div><div class='del'>-last patch level release, a new patch-level release will be made.</div><div class='del'>-</div><div class='del'>-When submitting a backport request please confirm the bug has been fixed in</div><div class='del'>-newer versions and exists in maintenance mode versions. There is a backport</div><div class='del'>-tracker for each major version still in maintenance where you can request a</div><div class='del'>-particular revision merged in the affected version of Ruby.</div><div class='del'>-</div><div class='del'>-Each major version of Ruby has a release manager that should be assigned to</div><div class='del'>-handle backport requests. You can find the list of release managers on the</div><div class='del'>-{wiki}[https://bugs.ruby-lang.org/projects/ruby/wiki/ReleaseEngineering].</div><div class='del'>-</div><div class='del'>-=== Branches</div><div class='del'>-</div><div class='del'>-Status and maintainers of branches are listed on the</div><div class='del'>-{wiki}[https://bugs.ruby-lang.org/projects/ruby/wiki/ReleaseEngineering].</div><div class='del'>-</div><div class='del'>-== Running tests</div><div class='del'>-</div><div class='del'>-In order to help resolve existing issues and contributing patches to Ruby you</div><div class='del'>-need to be able to run the test suite.</div><div class='del'>-</div><div class='del'>-CRuby uses subversion for source control, you can find installation</div><div class='del'>-instructions and lots of great info to learn subversion on the</div><div class='del'>-{svnbook.red-bean.com}[http://svnbook.red-bean.com/]. For other resources see</div><div class='del'>-the {ruby-core documentation on</div><div class='del'>-ruby-lang.org}[https://www.ruby-lang.org/en/community/ruby-core/].</div><div class='del'>-</div><div class='del'>-This guide will use git for contributing.  The {git</div><div class='del'>-homepage}[https://git-scm.com/] has installation instructions with links to</div><div class='del'>-documentation for learning more about git. There is a mirror of the subversion</div><div class='del'>-repository on {github}[https://github.com/ruby/ruby].</div><div class='del'>-</div><div class='del'>-Install the prerequisite dependencies for building the CRuby interpreter to</div><div class='del'>-run tests.</div><div class='del'>-</div><div class='del'>-* C compiler</div><div class='del'>-* autoconf</div><div class='del'>-* bison</div><div class='del'>-* gperf</div><div class='del'>-* ruby - Ruby itself is prerequisite in order to build Ruby from source. It</div><div class='del'>-  can be 1.8.</div><div class='del'>-</div><div class='del'>-You should also have access to development headers for the following</div><div class='del'>-libraries, but these are not required:</div><div class='del'>-</div><div class='del'>-* Tcl/Tk</div><div class='del'>-* NDBM/QDBM</div><div class='del'>-* GDBM</div><div class='del'>-* OpenSSL</div><div class='del'>-* readline/editline(libedit)</div><div class='del'>-* zlib</div><div class='del'>-* libffi</div><div class='del'>-* libyaml</div><div class='del'>-* libexecinfo (FreeBSD)</div><div class='del'>-</div><div class='del'>-Now let's build CRuby:</div><div class='del'>-</div><div class='del'>-* Checkout the CRuby source code:</div><div class='del'>-</div><div class='del'>-    git clone https://github.com/ruby/ruby.git ruby-trunk</div><div class='del'>-</div><div class='del'>-* Generate the configuration files and build:</div><div class='del'>-</div><div class='del'>-    cd ruby-trunk</div><div class='del'>-    autoconf</div><div class='del'>-    mkdir build &amp;&amp; cd build # its good practice to build outside of source dir</div><div class='del'>-    mkdir ~/.rubies # we will install to .rubies/ruby-trunk in our home dir</div><div class='del'>-    ../configure --prefix="${HOME}/.rubies/ruby-trunk"</div><div class='del'>-    make up &amp;&amp; make install</div><div class='del'>-</div><div class='del'>-After adding Ruby to your PATH, you should be ready to run the test suite:</div><div class='del'>-</div><div class='del'>-    make test</div><div class='del'>-</div><div class='del'>-You can also use +test-all+ to run all of the tests with the RUNRUBY</div><div class='del'>-interpreter just built. Use TESTS or RUNRUBYOPT to pass parameters, such as:</div><div class='del'>-</div><div class='del'>-    make test-all TESTS=-v</div><div class='del'>-</div><div class='del'>-This is also how you can run a specific test from our build dir:</div><div class='del'>-</div><div class='del'>-    make test-all TESTS=drb/test_drb.rb</div><div class='del'>-</div><div class='del'>-You can run +test+ and +test-all+ at once by +check+ .</div><div class='del'>-</div><div class='del'>-    make check</div><div class='del'>-</div><div class='del'>-For older versions of Ruby you will need to run the build setup again after</div><div class='del'>-checking out the associated branch in git, for example if you wanted to</div><div class='del'>-checkout 1.9.3:</div><div class='del'>-</div><div class='del'>-    git clone https://github.com/ruby/ruby.git --branch ruby_1_9_3</div><div class='del'>-</div><div class='del'>-Once you checked out the source code, you can update the local copy by:</div><div class='del'>-</div><div class='del'>-    make up</div><div class='del'>-</div><div class='del'>-Or, update, build, install and check, by just:</div><div class='del'>-</div><div class='del'>-    make love</div><div class='del'>-</div><div class='del'>-== Contributing Documentation</div><div class='del'>-</div><div class='del'>-If you're interested in contributing documentation directly to CRuby there is</div><div class='del'>-some information available at</div><div class='del'>-{Contributing}[https://github.com/ruby/ruby#contributing].</div><div class='del'>-</div><div class='del'>-There is also the {Ruby Reference</div><div class='del'>-Manual}[https://github.com/rurema/doctree/wiki] in Japanese.</div><div class='del'>-</div><div class='del'>-== Contributing A Patch</div><div class='del'>-</div><div class='del'>-=== Deciding what to patch</div><div class='del'>-</div><div class='del'>-Before you submit a patch, there are a few things you should know:</div><div class='del'>-</div><div class='del'>-* Pay attention to the maintenance policy for stable and maintained versions of Ruby.</div><div class='del'>-* Released versions in security mode will not merge feature changes.</div><div class='del'>-* Search for previous discussions on ruby-core to verify the maintenance policy</div><div class='del'>-* Patches must be distributed under Ruby's license.</div><div class='del'>-* This license may change in the future, you must join the discussion if you don't agree to the change</div><div class='del'>-</div><div class='del'>-To improve the chance your patch will be accepted please follow these simple rules:</div><div class='del'>-</div><div class='del'>-* Bug fixes should be committed on trunk first</div><div class='del'>-* Format of the patch file must be a unified diff (ie: diff -pu, svn diff, or git diff)</div><div class='del'>-* Don't introduce cosmetic changes</div><div class='del'>-* Follow the original coding style of the code</div><div class='del'>-* Don't mix different changes in one commit</div><div class='del'>-</div><div class='del'>-First thing you should do is check out the code if you haven't already:</div><div class='del'>-</div><div class='del'>-  git clone https://github.com/ruby/ruby.git ruby-trunk</div><div class='del'>-</div><div class='del'>-Now create a dedicated branch:</div><div class='del'>-</div><div class='del'>-  cd ruby-trunk</div><div class='del'>-  git checkout -b my_new_branch</div><div class='del'>-</div><div class='del'>-The name of your branch doesn't really matter because it will only exist on</div><div class='del'>-your local computer and won't be part of the official Ruby repository. It will</div><div class='del'>-be used to create patches based on the differences between your branch and</div><div class='del'>-trunk, or edge Ruby.</div><div class='del'>-</div><div class='del'>-=== Coding style</div><div class='del'>-</div><div class='del'>-Here are some general rules to follow when writing Ruby and C code for CRuby:</div><div class='del'>-</div><div class='del'>-* Indent 4 spaces for C without tabs (old codes might use tabs for eight-space indentation,</div><div class='del'>-  but newer codes recommend to use spaces only)</div><div class='del'>-* Indent 2 space tabs for Ruby</div><div class='del'>-* Do not use TABs in ruby codes</div><div class='del'>-* ANSI C style for 1.9+ for function declarations</div><div class='del'>-* Follow C90 (not C99) Standard</div><div class='del'>-* PascalStyle for class/module names.</div><div class='del'>-* UNDERSCORE_SEPARATED_UPPER_CASE for other constants.</div><div class='del'>-* Capitalize words.</div><div class='del'>-* ABBRs should be all upper case.</div><div class='del'>-* Do as others do</div><div class='del'>-</div><div class='del'>-=== ChangeLog</div><div class='del'>-</div><div class='del'>-Although not required, if you wish to add a ChangeLog entry for your change</div><div class='del'>-please note:</div><div class='del'>-</div><div class='del'>-You can use the following template for the ChangeLog entry on your commit:</div><div class='del'>-</div><div class='del'>-  Thu Jan  1 00:00:00 2004  Your Name  &lt;yourmail@example.com&gt;</div><div class='del'>-</div><div class='del'>-  	* filename (function): short description of this commit.</div><div class='del'>-  	  This should include your intention of this change.</div><div class='del'>-  	  [bug:#number] [mailinglist:number]</div><div class='del'>-</div><div class='del'>-  	* filename2 (function2): additional description for this file/function.</div><div class='del'>-</div><div class='del'>-This follows {GNU Coding Standards for Change</div><div class='del'>-Logs}[http://www.gnu.org/prep/standards/html_node/Change-Logs.html#Change-Logs],</div><div class='del'>-some other requirements and tips:</div><div class='del'>-</div><div class='del'>-* Timestamps must be in JST (+09:00) in the style as above.</div><div class='del'>-* Two spaces between the timestamp and your name. Two spaces between</div><div class='del'>-  your name and your mail address.</div><div class='del'>-* One blank line between the timestamp and the description.</div><div class='del'>-* Indent the description with TAB. 2nd line should begin with TAB+2SP.</div><div class='del'>-* Write a entry (*) for each change.</div><div class='del'>-* Refer to redmine issue or discussion on the mailing list.</div><div class='del'>-* For GitHub issues, use [GH-#] (such as [Fixes GH-234]</div><div class='del'>-* One blank line between entries.</div><div class='del'>-* Do as other committers do.</div><div class='del'>-</div><div class='del'>-You can generate the ChangeLog entry by running &lt;code&gt;make change&lt;/code&gt;</div><div class='del'>-</div><div class='del'>-When you're ready to commit, copy your ChangeLog entry into the commit message,</div><div class='del'>-keeping the same formatting and select your files:</div><div class='del'>-</div><div class='del'>-    git commit ChangeLog path/to/files</div><div class='del'>-</div><div class='del'>-In the likely event that your branch becomes outdated, you will have to update</div><div class='del'>-your working branch:</div><div class='del'>-</div><div class='del'>-    git fetch origin</div><div class='del'>-    git rebase remotes/origin/master</div><div class='del'>-</div><div class='del'>-Now that you've got some code you want to contribute, let's get set up to</div><div class='del'>-generate a patch. Start by forking the github mirror, check the {github docs on</div><div class='del'>-forking}[https://help.github.com/articles/fork-a-repo] if you get stuck here.</div><div class='del'>-You will only need a github account if you intend to host your repository</div><div class='del'>-on github.</div><div class='del'>-</div><div class='del'>-Next copy the writable url for your fork and add it as a git remote, replace</div><div class='del'>-"my_username" with your github account name:</div><div class='del'>-</div><div class='del'>-    git remote add my_fork git@github.com:my_username/ruby.git</div><div class='del'>-    # Now we can push our branch to our fork</div><div class='del'>-    git push my_fork my_new_branch</div><div class='del'>-</div><div class='del'>-In order to generate a patch that you can upload to the bug tracker, we can use</div><div class='del'>-the github interface to review our changes just visit</div><div class='del'>-https://github.com/my_username/ruby/compare/trunk...my_new_branch</div><div class='del'>-</div><div class='del'>-Next, you can simply add '.patch' to the end of this URL and it will generate</div><div class='del'>-the patch for you, save the file to your computer and upload it to the bug</div><div class='del'>-tracker. Alternatively you can submit a pull request, but for the best chances</div><div class='del'>-to receive feedback add it is recommended you add it to redmine.</div><div class='del'>-</div><div class='del'>-Since git is a distributed system, you are welcome to host your git repository</div><div class='del'>-on any {publicly accessible hosting</div><div class='del'>-site}[https://git.wiki.kernel.org/index.php/GitHosting], including {hosting your</div><div class='del'>-own}[https://www.kernel.org/pub/software/scm/git/docs/user-manual.html#public-repositories]</div><div class='del'>-You may use the {'git format-patch'}[https://git-scm.com/docs/git-format-patch]</div><div class='del'>-command to generate patch files to upload to redmine.  You may also use</div><div class='del'>-the {'git request-pull'}[https://git-scm.com/docs/git-request-pull] command for</div><div class='del'>-formatting pull request messages to redmine.</div><div class='head'>diff --git a/doc/contributing/building_ruby.md b/doc/contributing/building_ruby.md<br/>new file mode 100644<br/>index 0000000000..469c9d8361<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/contributing/building_ruby.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/contributing/building_ruby.md</a></div><div class='hunk'>@@ -0,0 +1,172 @@</div><div class='add'>+# Building Ruby</div><div class='add'>+</div><div class='add'>+## Quick start guide</div><div class='add'>+</div><div class='add'>+1. Install the prerequisite dependencies for building the CRuby interpreter:</div><div class='add'>+</div><div class='add'>+    * C compiler</div><div class='add'>+    * autoconf - 2.67 or later</div><div class='add'>+    * bison - 3.0 or later</div><div class='add'>+    * gperf - 3.0.3 or later</div><div class='add'>+    * ruby - 2.7 or later</div><div class='add'>+</div><div class='add'>+2. Install optional, recommended dependencies:</div><div class='add'>+</div><div class='add'>+    * OpenSSL/LibreSSL</div><div class='add'>+    * readline/editline (libedit)</div><div class='add'>+    * zlib</div><div class='add'>+    * libffi</div><div class='add'>+    * libyaml</div><div class='add'>+    * libexecinfo (FreeBSD)</div><div class='add'>+    * rustc - 1.58.0 or later (if you wish to build [YJIT](/doc/yjit/yjit.md))</div><div class='add'>+</div><div class='add'>+3. Checkout the CRuby source code:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    git clone https://github.com/ruby/ruby.git</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+4. Generate the configure file:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    ./autogen.sh</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+5. Create a `build` directory outside of the source directory:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    mkdir build &amp;&amp; cd build</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    While it's not necessary to build in a separate directory, it's good practice to do so.</div><div class='add'>+</div><div class='add'>+6. We'll install Ruby in `~/.rubies/ruby-master`, so create the directory:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    mkdir ~/.rubies</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+7. Run configure:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    ../configure --prefix="${HOME}/.rubies/ruby-master"</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    - If you are frequently building Ruby, add the `--disable-install-doc` flag to not build documentation which will speed up the build process.</div><div class='add'>+</div><div class='add'>+8. Build Ruby:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make install</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    - If you're on macOS and installed \OpenSSL through Homebrew, you may encounter failure to build \OpenSSL that look like this:</div><div class='add'>+</div><div class='add'>+        ```</div><div class='add'>+        openssl:</div><div class='add'>+            Could not be configured. It will not be installed.</div><div class='add'>+            ruby/ext/openssl/extconf.rb: OpenSSL library could not be found. You might want to use --with-openssl-dir=&lt;dir&gt; option to specify the prefix where OpenSSL is installed.</div><div class='add'>+            Check ext/openssl/mkmf.log for more details.</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+        Adding `--with-openssl-dir=$(brew --prefix openssl)` to the list of options passed to configure may solve the issue.</div><div class='add'>+</div><div class='add'>+        Remember to delete your `build` directory and start again from the configure step.</div><div class='add'>+</div><div class='add'>+9. [Run tests](testing_ruby.md) to confirm your build succeeded.</div><div class='add'>+</div><div class='add'>+### Unexplainable Build Errors</div><div class='add'>+</div><div class='add'>+If you are having unexplainable build errors, after saving all your work, try running `git clean -xfd` in the source root to remove all git ignored local files. If you are working from a source directory that's been updated several times, you may have temporary build artifacts from previous releases which can cause build failures.</div><div class='add'>+</div><div class='add'>+## More details</div><div class='add'>+</div><div class='add'>+If you're interested in continuing development on Ruby, here are more details</div><div class='add'>+about Ruby's build to help out.</div><div class='add'>+</div><div class='add'>+### Running make scripts in parallel</div><div class='add'>+</div><div class='add'>+In GNU make and BSD make implementations, to run a specific make script in parallel, pass the flag `-j&lt;number of processes&gt;`. For instance,</div><div class='add'>+to run tests on 8 processes, use:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+make test-all -j8</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+We can also set `MAKEFLAGS` to run _all_ `make` commands in parallel.</div><div class='add'>+</div><div class='add'>+Having the right `--jobs` flag will ensure all processors are utilized when building software projects. To do this effectively, you can set `MAKEFLAGS` in your shell configuration/profile:</div><div class='add'>+</div><div class='add'>+``` shell</div><div class='add'>+# On macOS with Fish shell:</div><div class='add'>+export MAKEFLAGS="--jobs "(sysctl -n hw.ncpu)</div><div class='add'>+</div><div class='add'>+# On macOS with Bash/ZSH shell:</div><div class='add'>+export MAKEFLAGS="--jobs $(sysctl -n hw.ncpu)"</div><div class='add'>+</div><div class='add'>+# On Linux with Fish shell:</div><div class='add'>+export MAKEFLAGS="--jobs "(nproc)</div><div class='add'>+</div><div class='add'>+# On Linux with Bash/ZSH shell:</div><div class='add'>+export MAKEFLAGS="--jobs $(nproc)"</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Miniruby vs Ruby</div><div class='add'>+</div><div class='add'>+Miniruby is a version of Ruby which has no external dependencies and lacks certain features.</div><div class='add'>+It can be useful in Ruby development because it allows for faster build times. Miniruby is</div><div class='add'>+built before Ruby. A functional Miniruby is required to build Ruby. To build Miniruby:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+make miniruby</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+## Debugging</div><div class='add'>+</div><div class='add'>+You can use either lldb or gdb for debugging. Before debugging, you need to create a `test.rb`</div><div class='add'>+with the Ruby script you'd like to run. You can use the following make targets:</div><div class='add'>+</div><div class='add'>+* `make run`: Runs `test.rb` using Miniruby</div><div class='add'>+* `make lldb`: Runs `test.rb` using Miniruby in lldb</div><div class='add'>+* `make gdb`: Runs `test.rb` using Miniruby in gdb</div><div class='add'>+* `make runruby`: Runs `test.rb` using Ruby</div><div class='add'>+* `make lldb-ruby`: Runs `test.rb` using Ruby in lldb</div><div class='add'>+* `make gdb-ruby`: Runs `test.rb` using Ruby in gdb</div><div class='add'>+</div><div class='add'>+### Building with Address Sanitizer</div><div class='add'>+</div><div class='add'>+Using the address sanitizer is a great way to detect memory issues.</div><div class='add'>+</div><div class='add'>+``` shell</div><div class='add'>+./autogen.sh</div><div class='add'>+mkdir build &amp;&amp; cd build</div><div class='add'>+export ASAN_OPTIONS="halt_on_error=0:use_sigaltstack=0:detect_leaks=0"</div><div class='add'>+../configure cppflags="-fsanitize=address -fno-omit-frame-pointer" optflags=-O0 LDFLAGS="-fsanitize=address -fno-omit-frame-pointer"</div><div class='add'>+make</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+On Linux it is important to specify `-O0` when debugging. This is especially true for ASAN which sometimes works incorrectly at higher optimisation levels.</div><div class='add'>+</div><div class='add'>+## How to measure coverage of C and Ruby code</div><div class='add'>+</div><div class='add'>+You need to be able to use gcc (gcov) and lcov visualizer.</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+./autogen.sh</div><div class='add'>+./configure --enable-gcov</div><div class='add'>+make</div><div class='add'>+make update-coverage</div><div class='add'>+rm -f test-coverage.dat</div><div class='add'>+make test-all COVERAGE=true</div><div class='add'>+make lcov</div><div class='add'>+open lcov-out/index.html</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+If you need only C code coverage, you can remove `COVERAGE=true` from the above process.</div><div class='add'>+You can also use `gcov` command directly to get per-file coverage.</div><div class='add'>+</div><div class='add'>+If you need only Ruby code coverage, you can remove `--enable-gcov`.</div><div class='add'>+Note that `test-coverage.dat` accumulates all runs of `make test-all`.</div><div class='add'>+Make sure that you remove the file if you want to measure one test run.</div><div class='add'>+</div><div class='add'>+You can see the coverage result of CI: https://rubyci.org/coverage</div><div class='head'>diff --git a/doc/contributing/documentation_guide.md b/doc/contributing/documentation_guide.md<br/>new file mode 100644<br/>index 0000000000..9cfd59d629<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/contributing/documentation_guide.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/contributing/documentation_guide.md</a></div><div class='hunk'>@@ -0,0 +1,435 @@</div><div class='add'>+# Documentation Guide</div><div class='add'>+</div><div class='add'>+This guide discusses recommendations for documenting</div><div class='add'>+classes, modules, and methods</div><div class='add'>+in the Ruby core and in the Ruby standard library.</div><div class='add'>+</div><div class='add'>+## Generating documentation</div><div class='add'>+</div><div class='add'>+Most Ruby documentation lives in the source files and is written in</div><div class='add'>+[RDoc format](rdoc-ref:RDoc::Markup).</div><div class='add'>+</div><div class='add'>+Some pages live under the `doc` folder and can be written in either</div><div class='add'>+`.rdoc` or `.md` format, determined by the file extension.</div><div class='add'>+</div><div class='add'>+To generate the output of documentation changes in HTML in the</div><div class='add'>+`{build folder}/.ext/html` directory, run the following inside your</div><div class='add'>+build directory:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+make html</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Then you can preview your changes by opening</div><div class='add'>+`{build folder}/.ext/html/index.html` file in your browser.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+## Goal</div><div class='add'>+</div><div class='add'>+The goal of Ruby documentation is to impart the most important</div><div class='add'>+and relevant in the shortest time.</div><div class='add'>+The reader should be able to quickly understand the usefulness</div><div class='add'>+of the subject code and how to use it.</div><div class='add'>+</div><div class='add'>+Providing too little information is bad, but providing unimportant</div><div class='add'>+information or unnecessary examples is not good either.</div><div class='add'>+Use your judgment about what the user needs to know.</div><div class='add'>+</div><div class='add'>+## General Guidelines</div><div class='add'>+</div><div class='add'>+- Keep in mind that the reader may not be fluent in \English.</div><div class='add'>+- Write short declarative or imperative sentences.</div><div class='add'>+- Group sentences into (ideally short) paragraphs,</div><div class='add'>+  each covering a single topic.</div><div class='add'>+- Organize material with [headers](rdoc-ref:RDoc::Markup@Headers).</div><div class='add'>+- Refer to authoritative and relevant sources using</div><div class='add'>+  [links](rdoc-ref:RDoc::Markup@Links).</div><div class='add'>+- Use simple verb tenses: simple present, simple past, simple future.</div><div class='add'>+- Use simple sentence structure, not compound or complex structure.</div><div class='add'>+- Avoid:</div><div class='add'>+    - Excessive comma-separated phrases;</div><div class='add'>+      consider a [list](rdoc-ref:RDoc::Markup@Simple+Lists).</div><div class='add'>+    - Idioms and culture-specific references.</div><div class='add'>+    - Overuse of headers.</div><div class='add'>+    - Using US-ASCII-incompatible characters in C source files;</div><div class='add'>+      see [Characters](#label-Characters) below.</div><div class='add'>+</div><div class='add'>+### Characters</div><div class='add'>+</div><div class='add'>+Use only US-ASCII-compatible characters in a C source file.</div><div class='add'>+(If you use other characters, the Ruby CI will gently let you know.)</div><div class='add'>+</div><div class='add'>+If want to put ASCII-incompatible characters into the documentation</div><div class='add'>+for a C-coded class, module, or method, there are workarounds</div><div class='add'>+involving new files `doc/*.rdoc`:</div><div class='add'>+</div><div class='add'>+- For class `Foo` (defined in file `foo.c`),</div><div class='add'>+  create file `doc/foo.rdoc`, declare `class Foo; end`,</div><div class='add'>+  and place the class documentation above that declaration:</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    # Documentation for class Foo goes here.</div><div class='add'>+    class Foo; end</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+- Similarly, for module `Bar` (defined in file `bar.c`,</div><div class='add'>+  create file `doc/bar.rdoc`, declare `module Bar; end`,</div><div class='add'>+  and place the module documentation above that declaration:</div><div class='add'>+</div><div class='add'>+    ```ruby</div><div class='add'>+    # Documentation for module Bar goes here.</div><div class='add'>+    module Bar; end</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+- For a method, things are different.</div><div class='add'>+  Documenting a method as above disables the "click to toggle source" feature</div><div class='add'>+  in the rendered documentation.</div><div class='add'>+</div><div class='add'>+    Therefore it's best to use file inclusion:</div><div class='add'>+</div><div class='add'>+    - Retain the `call-seq` in the C code.</div><div class='add'>+    - Use file inclusion (`:include:`) to include text from an .rdoc file.</div><div class='add'>+</div><div class='add'>+    Example:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    /*</div><div class='add'>+     *  call-seq:</div><div class='add'>+     *    each_byte {|byte| ... } -&gt; self</div><div class='add'>+     *    each_byte               -&gt; enumerator</div><div class='add'>+     *</div><div class='add'>+     *  :include: doc/string/each_byte.rdoc</div><div class='add'>+     *</div><div class='add'>+     */</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+### \RDoc</div><div class='add'>+</div><div class='add'>+Ruby is documented using RDoc.</div><div class='add'>+For information on \RDoc syntax and features, see the</div><div class='add'>+[RDoc Markup Reference](rdoc-ref:RDoc::Markup@RDoc+Markup+Reference).</div><div class='add'>+</div><div class='add'>+### Output from `irb`</div><div class='add'>+</div><div class='add'>+For code examples, consider using interactive Ruby,</div><div class='add'>+[irb](https://ruby-doc.org/stdlib/libdoc/irb/rdoc/IRB.html).</div><div class='add'>+</div><div class='add'>+For a code example that includes `irb` output,</div><div class='add'>+consider aligning `# =&gt; ...` in successive lines.</div><div class='add'>+Alignment may sometimes aid readability:</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+a = [1, 2, 3] #=&gt; [1, 2, 3]</div><div class='add'>+a.shuffle!    #=&gt; [2, 3, 1]</div><div class='add'>+a             #=&gt; [2, 3, 1]</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Headers</div><div class='add'>+</div><div class='add'>+Organize a long discussion with [headers](rdoc-ref:RDoc::Markup@Headers).</div><div class='add'>+</div><div class='add'>+### Blank Lines</div><div class='add'>+</div><div class='add'>+A blank line begins a new paragraph.</div><div class='add'>+</div><div class='add'>+A [code block](rdoc-ref:RDoc::Markup@Paragraphs+and+Verbatim)</div><div class='add'>+or [list](rdoc-ref:RDoc::Markup@Simple+Lists)</div><div class='add'>+should be preceded by and followed by a blank line.</div><div class='add'>+This is unnecessary for the HTML output, but helps in the `ri` output.</div><div class='add'>+</div><div class='add'>+### \Method Names</div><div class='add'>+</div><div class='add'>+For a method name in text:</div><div class='add'>+</div><div class='add'>+- For a method in the current class or module,</div><div class='add'>+  use a double-colon for a singleton method,</div><div class='add'>+  or a hash mark for an instance method:</div><div class='add'>+  &lt;tt&gt;::bar&lt;/tt&gt;, &lt;tt&gt;#baz&lt;/tt&gt;.</div><div class='add'>+- Otherwise, include the class or module name</div><div class='add'>+  and use a dot for a singleton method,</div><div class='add'>+  or a hash mark for an instance method:</div><div class='add'>+  &lt;tt&gt;Foo.bar&lt;/tt&gt;, &lt;tt&gt;Foo#baz&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+### Auto-Linking</div><div class='add'>+</div><div class='add'>+In general, \RDoc's auto-linking should not be suppressed.</div><div class='add'>+For example, we should write `Array`, not `\Array`.</div><div class='add'>+</div><div class='add'>+We might consider whether to suppress when:</div><div class='add'>+</div><div class='add'>+- The word in question does not refer to a Ruby entity</div><div class='add'>+  (e.g., some uses of _Class_ or _English_).</div><div class='add'>+- The reference is to the current class document</div><div class='add'>+  (e.g., _Array_ in the documentation for class `Array`).</div><div class='add'>+- The same reference is repeated many times</div><div class='add'>+  (e.g., _RDoc_ on this page).</div><div class='add'>+</div><div class='add'>+### HTML Tags</div><div class='add'>+</div><div class='add'>+In general, avoid using HTML tags (even in formats where it's allowed)</div><div class='add'>+because `ri` (the Ruby Interactive reference tool)</div><div class='add'>+may not render them properly.</div><div class='add'>+</div><div class='add'>+### Tables</div><div class='add'>+</div><div class='add'>+In particular, avoid building tables with HTML tags</div><div class='add'>+(&lt;tt&gt;&lt;table&gt;&lt;/tt&gt;, etc.).</div><div class='add'>+</div><div class='add'>+Alternatives are:</div><div class='add'>+</div><div class='add'>+- The GFM (GitHub Flavored Markdown) table extension,</div><div class='add'>+  which is enabled by default. See</div><div class='add'>+  {GFM tables extension}[https://github.github.com/gfm/#tables-extension-].</div><div class='add'>+</div><div class='add'>+- A {verbatim text block}[rdoc-ref:RDoc::MarkupReference@Verbatim+Text+Blocks],</div><div class='add'>+  using spaces and punctuation to format the text.</div><div class='add'>+  Note that {text markup}[rdoc-ref:RDoc::MarkupReference@Text+Markup]</div><div class='add'>+  will not be honored.</div><div class='add'>+</div><div class='add'>+## Documenting Classes and Modules</div><div class='add'>+</div><div class='add'>+The general structure of the class or module documentation should be:</div><div class='add'>+</div><div class='add'>+- Synopsis</div><div class='add'>+- Common uses, with examples</div><div class='add'>+- "What's Here" summary (optional)</div><div class='add'>+</div><div class='add'>+### Synopsis</div><div class='add'>+</div><div class='add'>+The synopsis is a short description of what the class or module does</div><div class='add'>+and why the reader might want to use it.</div><div class='add'>+Avoid details in the synopsis.</div><div class='add'>+</div><div class='add'>+### Common Uses</div><div class='add'>+</div><div class='add'>+Show common uses of the class or module.</div><div class='add'>+Depending on the class or module, this section may vary greatly</div><div class='add'>+in both length and complexity.</div><div class='add'>+</div><div class='add'>+### What's Here Summary</div><div class='add'>+</div><div class='add'>+The documentation for a class or module may include a "What's Here" section.</div><div class='add'>+</div><div class='add'>+Guidelines:</div><div class='add'>+</div><div class='add'>+- The section title is `What's Here`.</div><div class='add'>+- Consider listing the parent class and any included modules; consider</div><div class='add'>+  [links](rdoc-ref:RDoc::Markup@Links)</div><div class='add'>+  to their "What's Here" sections if those exist.</div><div class='add'>+- List methods as a bullet list:</div><div class='add'>+</div><div class='add'>+    - Begin each item with the method name, followed by a colon</div><div class='add'>+      and a short description.</div><div class='add'>+    - If the method has aliases, mention them in parentheses before the colon</div><div class='add'>+      (and do not list the aliases separately).</div><div class='add'>+    - Check the rendered documentation to determine whether \RDoc has recognized</div><div class='add'>+      the method and linked to it;  if not, manually insert a</div><div class='add'>+      [link](rdoc-ref:RDoc::Markup@Links).</div><div class='add'>+</div><div class='add'>+- If there are numerous entries, consider grouping them into subsections with headers.</div><div class='add'>+- If there are more than a few such subsections,</div><div class='add'>+  consider adding a table of contents just below the main section title.</div><div class='add'>+</div><div class='add'>+## Documenting Methods</div><div class='add'>+</div><div class='add'>+### General Structure</div><div class='add'>+</div><div class='add'>+The general structure of the method documentation should be:</div><div class='add'>+</div><div class='add'>+- Calling sequence (for methods written in C).</div><div class='add'>+- Synopsis (short description).</div><div class='add'>+- Details and examples.</div><div class='add'>+- Argument description (if necessary).</div><div class='add'>+- Corner cases and exceptions.</div><div class='add'>+- Aliases.</div><div class='add'>+- Related methods (optional).</div><div class='add'>+</div><div class='add'>+### Calling Sequence (for methods written in C)</div><div class='add'>+</div><div class='add'>+For methods written in Ruby, \RDoc documents the calling sequence automatically.</div><div class='add'>+</div><div class='add'>+For methods written in C, \RDoc cannot determine what arguments</div><div class='add'>+the method accepts, so those need to be documented using \RDoc directive</div><div class='add'>+[`call-seq:`](rdoc-ref:RDoc::Markup@Method+arguments).</div><div class='add'>+</div><div class='add'>+For a singleton method, use the form:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+class_name.method_name(method_args) {|block_args| ... } -&gt; return_type</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Example:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+*  call-seq:</div><div class='add'>+*    Hash.new(default_value = nil) -&gt; new_hash</div><div class='add'>+*    Hash.new {|hash, key| ... } -&gt; new_hash</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+For an instance method, use the form</div><div class='add'>+(omitting any prefix, just as RDoc does for a Ruby-coded method):</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+method_name(method_args) {|block_args| ... } -&gt; return_type</div><div class='add'>+```</div><div class='add'>+For example, in Array, use:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+*  call-seq:</div><div class='add'>+*    count -&gt; integer</div><div class='add'>+*    count(obj) -&gt; integer</div><div class='add'>+*    count {|element| ... } -&gt; integer</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+* call-seq:</div><div class='add'>+*    &lt;=&gt; other -&gt; -1, 0, 1, or nil</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Arguments:</div><div class='add'>+</div><div class='add'>+- If the method does not accept arguments, omit the parentheses.</div><div class='add'>+- If the method accepts optional arguments:</div><div class='add'>+</div><div class='add'>+    - Separate each argument name and its default value with ` = `</div><div class='add'>+      (equal-sign with surrounding spaces).</div><div class='add'>+    - If the method has the same behavior with either an omitted</div><div class='add'>+      or an explicit argument, use a `call-seq` with optional arguments.</div><div class='add'>+      For example, use:</div><div class='add'>+</div><div class='add'>+        ```</div><div class='add'>+        respond_to?(symbol, include_all = false) -&gt; true or false</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+    - If the behavior is different with an omitted or an explicit argument,</div><div class='add'>+      use a `call-seq` with separate lines.</div><div class='add'>+      For example, in Enumerable, use:</div><div class='add'>+</div><div class='add'>+        ```</div><div class='add'>+        *    max    -&gt; element</div><div class='add'>+        *    max(n) -&gt; array</div><div class='add'>+        ```</div><div class='add'>+</div><div class='add'>+Block:</div><div class='add'>+</div><div class='add'>+- If the method does not accept a block, omit the block.</div><div class='add'>+- If the method accepts a block, the `call-seq` should have `{|args| ... }`,</div><div class='add'>+  not `{|args| block }` or `{|args| code }`.</div><div class='add'>+</div><div class='add'>+Return types:</div><div class='add'>+</div><div class='add'>+- If the method can return multiple different types,</div><div class='add'>+  separate the types with "or" and, if necessary, commas.</div><div class='add'>+- If the method can return multiple types, use +object+.</div><div class='add'>+- If the method returns the receiver, use +self+.</div><div class='add'>+- If the method returns an object of the same class,</div><div class='add'>+  prefix `new_` if an only if the object is not  +self+;</div><div class='add'>+  example: `new_array`.</div><div class='add'>+</div><div class='add'>+Aliases:</div><div class='add'>+</div><div class='add'>+- Omit aliases from the `call-seq`, but mention them near the end (see below).</div><div class='add'>+</div><div class='add'>+### Synopsis</div><div class='add'>+</div><div class='add'>+The synopsis comes next, and is a short description of what the</div><div class='add'>+method does and why you would want to use it.  Ideally, this</div><div class='add'>+is a single sentence, but for more complex methods it may require</div><div class='add'>+an entire paragraph.</div><div class='add'>+</div><div class='add'>+For `Array#count`, the synopsis is:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+Returns a count of specified elements.</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+This is great as it is short and descriptive.  Avoid documenting</div><div class='add'>+too much in the synopsis, stick to the most important information</div><div class='add'>+for the benefit of the reader.</div><div class='add'>+</div><div class='add'>+### Details and Examples</div><div class='add'>+</div><div class='add'>+Most non-trivial methods benefit from examples, as well as details</div><div class='add'>+beyond what is given in the synopsis.  In the details and examples</div><div class='add'>+section, you can document how the method handles different types</div><div class='add'>+of arguments, and provides examples on proper usage.  In this</div><div class='add'>+section, focus on how to use the method properly, not on how the</div><div class='add'>+method handles improper arguments or corner cases.</div><div class='add'>+</div><div class='add'>+Not every behavior of a method requires an example.  If the method</div><div class='add'>+is documented to return `self`, you don't need to provide an example</div><div class='add'>+showing the return value is the same as the receiver.  If the method</div><div class='add'>+is documented to return `nil`, you don't need to provide an example</div><div class='add'>+showing that it returns `nil`.  If the details mention that for a</div><div class='add'>+certain argument type, an empty array is returned, you don't need</div><div class='add'>+to provide an example for that.</div><div class='add'>+</div><div class='add'>+Only add an example if it provides the user additional information,</div><div class='add'>+do not add an example if it provides the same information given</div><div class='add'>+in the synopsis or details.  The purpose of examples is not to prove</div><div class='add'>+what the details are stating.</div><div class='add'>+</div><div class='add'>+### Argument Description (if necessary)</div><div class='add'>+</div><div class='add'>+For methods that require arguments, if not obvious and not explicitly</div><div class='add'>+mentioned in the details or implicitly shown in the examples, you can</div><div class='add'>+provide details about the types of arguments supported.  When discussing</div><div class='add'>+the types of arguments, use simple language even if less-precise, such</div><div class='add'>+as "level must be an integer", not "level must be an Integer-convertible</div><div class='add'>+object".  The vast majority of use will be with the expected type, not an</div><div class='add'>+argument that is explicitly convertible to the expected type, and</div><div class='add'>+documenting the difference is not important.</div><div class='add'>+</div><div class='add'>+For methods that take blocks, it can be useful to document the type of</div><div class='add'>+argument passed if it is not obvious, not explicitly mentioned in the</div><div class='add'>+details, and not implicitly shown in the examples.</div><div class='add'>+</div><div class='add'>+If there is more than one argument or block argument, use a</div><div class='add'>+[labeled list](rdoc-ref:RDoc::Markup@Labeled+Lists).</div><div class='add'>+</div><div class='add'>+### Corner Cases and Exceptions</div><div class='add'>+</div><div class='add'>+For corner cases of methods, such as atypical usage, briefly mention</div><div class='add'>+the behavior, but do not provide any examples.</div><div class='add'>+</div><div class='add'>+Only document exceptions raised if they are not obvious.  For example,</div><div class='add'>+if you have stated earlier than an argument type must be an integer,</div><div class='add'>+you do not need to document that a `TypeError` is raised if a non-integer</div><div class='add'>+is passed.  Do not provide examples of exceptions being raised unless</div><div class='add'>+that is a common case, such as `Hash#fetch` raising a `KeyError`.</div><div class='add'>+</div><div class='add'>+### Aliases</div><div class='add'>+</div><div class='add'>+Mention aliases in the form</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+// Array#find_index is an alias for Array#index.</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Related Methods (optional)</div><div class='add'>+</div><div class='add'>+In some cases, it is useful to document which methods are related to</div><div class='add'>+the current method.  For example, documentation for `Hash#[]` might</div><div class='add'>+mention `Hash#fetch` as a related method, and `Hash#merge` might mention</div><div class='add'>+`Hash#merge!` as a related method.</div><div class='add'>+</div><div class='add'>+- Consider which methods may be related</div><div class='add'>+  to the current method, and if you think the reader would benefit it,</div><div class='add'>+  at the end of the method documentation, add a line starting with</div><div class='add'>+  "Related: " (e.g. "Related: #fetch.").</div><div class='add'>+- Don't list more than three related methods.</div><div class='add'>+  If you think more than three methods are related,</div><div class='add'>+  list the three you think are most important.</div><div class='add'>+- Consider adding:</div><div class='add'>+</div><div class='add'>+    - A phrase suggesting how the related method is similar to,</div><div class='add'>+      or different from,the current method.</div><div class='add'>+      See an example at Time#getutc.</div><div class='add'>+    - Example code that illustrates the similarities and differences.</div><div class='add'>+      See examples at Time#ctime, Time#inspect, Time#to_s.</div><div class='add'>+</div><div class='add'>+### Methods Accepting Multiple Argument Types</div><div class='add'>+</div><div class='add'>+For methods that accept multiple argument types, in some cases it can</div><div class='add'>+be useful to document the different argument types separately.  It's</div><div class='add'>+best to use a separate paragraph for each case you are discussing.</div><div class='head'>diff --git a/doc/contributing/making_changes_to_ruby.md b/doc/contributing/making_changes_to_ruby.md<br/>new file mode 100644<br/>index 0000000000..260fadb7e3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/contributing/making_changes_to_ruby.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/contributing/making_changes_to_ruby.md</a></div><div class='hunk'>@@ -0,0 +1,28 @@</div><div class='add'>+# Contributing a pull request</div><div class='add'>+</div><div class='add'>+## Code style</div><div class='add'>+</div><div class='add'>+Here are some general rules to follow when writing Ruby and C code for CRuby:</div><div class='add'>+</div><div class='add'>+* Do not change code unrelated to your pull request (including style fixes)</div><div class='add'>+* Indent 4 spaces for C without tabs (tabs are two levels of indentation, equivalent to 8 spaces)</div><div class='add'>+* Indent 2 spaces for Ruby without tabs</div><div class='add'>+* ANSI C style for function declarations</div><div class='add'>+* Follow C99 Standard</div><div class='add'>+* PascalStyle for class/module names</div><div class='add'>+* UNDERSCORE_SEPARATED_UPPER_CASE for other constants</div><div class='add'>+* Abbreviations should be all upper case</div><div class='add'>+</div><div class='add'>+## Commit messages</div><div class='add'>+</div><div class='add'>+Use the following style for commit messages:</div><div class='add'>+</div><div class='add'>+* Use a succinct subject line</div><div class='add'>+* Include reasoning behind the change in the commit message, focusing on why the change is being made</div><div class='add'>+* Refer to  issue (such as `Fixes [Bug #1234]` or `Implements [Feature #3456]`), or discussion on the mailing list (such as [ruby-core:12345])</div><div class='add'>+</div><div class='add'>+## CI</div><div class='add'>+</div><div class='add'>+GitHub actions will run on each pull request.</div><div class='add'>+</div><div class='add'>+There is [a CI that runs on master](https://rubyci.org/). It has broad coverage of different systems and architectures, such as Solaris SPARC and macOS.</div><div class='head'>diff --git a/doc/contributing/making_changes_to_stdlibs.md b/doc/contributing/making_changes_to_stdlibs.md<br/>new file mode 100644<br/>index 0000000000..ef3811ea12<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/contributing/making_changes_to_stdlibs.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/contributing/making_changes_to_stdlibs.md</a></div><div class='hunk'>@@ -0,0 +1,49 @@</div><div class='add'>+# Making Changes To Standard Libraries</div><div class='add'>+</div><div class='add'>+Everything in the [lib](https://github.com/ruby/ruby/tree/master/lib) directory is mirrored from a standalone repository into the Ruby repository.</div><div class='add'>+If you'd like to make contributions to standard libraries, do so in the standalone repositories, and the</div><div class='add'>+changes will be automatically mirrored into the Ruby repository.</div><div class='add'>+</div><div class='add'>+For example, CSV lives in [a separate repository](https://github.com/ruby/csv) and is mirrored into [Ruby](https://github.com/ruby/ruby/tree/master/lib/csv).</div><div class='add'>+</div><div class='add'>+## Maintainers</div><div class='add'>+</div><div class='add'>+You can find the list of maintainers [here](https://docs.ruby-lang.org/en/master/maintainers_rdoc.html#label-Maintainers).</div><div class='add'>+</div><div class='add'>+## Build</div><div class='add'>+</div><div class='add'>+First, install its dependencies using:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+bundle install</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Libraries with C-extension</div><div class='add'>+</div><div class='add'>+If the library has a `/ext` directory, it has C files that you need to compile with:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+bundle exec rake compile</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+## Running tests</div><div class='add'>+</div><div class='add'>+All standard libraries use [test-unit](https://github.com/test-unit/test-unit) as the test framework.</div><div class='add'>+</div><div class='add'>+To run all tests:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+bundle exec rake test</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+To run a single test file:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+bundle exec rake test TEST="test/test_foo.rb"</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+To run a single test case:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+bundle exec rake test TEST="test/test_foo.rb" TESTOPS="--name=/test_mytest/"</div><div class='add'>+```</div><div class='head'>diff --git a/doc/contributing/reporting_issues.md b/doc/contributing/reporting_issues.md<br/>new file mode 100644<br/>index 0000000000..25516ffc6b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/contributing/reporting_issues.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/contributing/reporting_issues.md</a></div><div class='hunk'>@@ -0,0 +1,91 @@</div><div class='add'>+# Reporting Issues</div><div class='add'>+## Reporting security issues</div><div class='add'>+</div><div class='add'>+If you've found a security vulnerability, please follow</div><div class='add'>+[these instructions](https://www.ruby-lang.org/en/security/).</div><div class='add'>+</div><div class='add'>+## Reporting bugs</div><div class='add'>+</div><div class='add'>+If you've encountered a bug in Ruby, please report it to the Redmine issue</div><div class='add'>+tracker available at [bugs.ruby-lang.org](https://bugs.ruby-lang.org/), by</div><div class='add'>+following these steps:</div><div class='add'>+</div><div class='add'>+* Check if anyone has already reported your issue by</div><div class='add'>+  searching [the Redmine issue tracker](https://bugs.ruby-lang.org/projects/ruby-master/issues).</div><div class='add'>+* If you haven't already,</div><div class='add'>+  [sign up for an account](https://bugs.ruby-lang.org/account/register) on the</div><div class='add'>+  Redmine issue tracker.</div><div class='add'>+* If you can't find a ticket addressing your issue, please [create a new issue](https://bugs.ruby-lang.org/projects/ruby-master/issues/new). You will need to fill in the subject, description and Ruby version.</div><div class='add'>+</div><div class='add'>+    * Ensure the issue exists on Ruby master by trying to replicate your bug on</div><div class='add'>+      the head of master (see ["making changes to Ruby"](making_changes_to_ruby.md)).</div><div class='add'>+    * Write a concise subject and briefly describe your problem in the description section. If</div><div class='add'>+      your issue affects [a released version of Ruby](#label-Backport+requests), please say so.</div><div class='add'>+    * Fill in the Ruby version you're using when experiencing this issue</div><div class='add'>+      (the output of running `ruby -v`).</div><div class='add'>+    * Attach any logs or reproducible programs to provide additional information.</div><div class='add'>+      Any scripts should be as small as possible.</div><div class='add'>+* If the ticket doesn't have any replies after 10 days, you can send a</div><div class='add'>+  reminder.</div><div class='add'>+* Please reply to feedback requests. If a bug report doesn't get any feedback,</div><div class='add'>+  it'll eventually get rejected.</div><div class='add'>+</div><div class='add'>+### Reporting website issues</div><div class='add'>+</div><div class='add'>+If you're having an issue with the bug tracker or the mailing list, you can</div><div class='add'>+contact the webmaster, Hiroshi SHIBATA (hsbt@ruby-lang.org).</div><div class='add'>+</div><div class='add'>+You can report issues with ruby-lang.org on the</div><div class='add'>+[repo's issue tracker](https://github.com/ruby/www.ruby-lang.org/issues).</div><div class='add'>+</div><div class='add'>+## Requesting features</div><div class='add'>+</div><div class='add'>+If there's a new feature that you want to see added to Ruby, you will need to</div><div class='add'>+write a proposal on [the Redmine issue tracker](https://bugs.ruby-lang.org/projects/ruby-master/issues/new).</div><div class='add'>+When you open the issue, select `Feature` in the Tracker dropdown.</div><div class='add'>+</div><div class='add'>+When writing a proposal, be sure to check for previous discussions on the</div><div class='add'>+topic and have a solid use case. You should also consider the potential</div><div class='add'>+compatibility issues that this new feature might raise. Consider making</div><div class='add'>+your feature into a gem, and if there are enough people who benefit from</div><div class='add'>+your feature it could help persuade Ruby core.</div><div class='add'>+</div><div class='add'>+Here is a template you can use for a feature proposal:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+[Abstract]</div><div class='add'>+  Briefly summarize your feature</div><div class='add'>+[Background]</div><div class='add'>+  Describe current behavior</div><div class='add'>+[Proposal]</div><div class='add'>+  Describe your feature in detail</div><div class='add'>+[Use cases]</div><div class='add'>+  Give specific example uses of your feature</div><div class='add'>+[Discussion]</div><div class='add'>+  Describe why this feature is necessary and better than using existing features</div><div class='add'>+[See also]</div><div class='add'>+  Link to other related resources (such as implementations in other languages)</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+## Backport requests</div><div class='add'>+</div><div class='add'>+If a bug exists in a released version of Ruby, please report this in the issue.</div><div class='add'>+Once this bug is fixed, the fix can be backported if deemed necessary. Only Ruby</div><div class='add'>+committers can request backporting, and backporting is done by the backport manager.</div><div class='add'>+New patch versions are released at the discretion of the backport manager.</div><div class='add'>+</div><div class='add'>+[Ruby versions](https://www.ruby-lang.org/en/downloads/) can be in one of three maintenance states:</div><div class='add'>+</div><div class='add'>+* Stable releases: backport any bug fixes</div><div class='add'>+* Security maintenance: only backport security fixes</div><div class='add'>+* End of life: no backports, please upgrade your Ruby version</div><div class='add'>+</div><div class='add'>+## Add context to existing issues</div><div class='add'>+</div><div class='add'>+There are several ways you can help with a bug that aren't directly</div><div class='add'>+resolving it. These include:</div><div class='add'>+</div><div class='add'>+* Verifying or reproducing the existing issue and reporting it</div><div class='add'>+* Adding more specific reproduction instructions</div><div class='add'>+* Contributing a failing test as a patch (see ["making changes to Ruby"](making_changes_to_ruby.md))</div><div class='add'>+* Testing patches that others have submitted (see ["making changes to Ruby"](making_changes_to_ruby.md))</div><div class='head'>diff --git a/doc/contributing/testing_ruby.md b/doc/contributing/testing_ruby.md<br/>new file mode 100644<br/>index 0000000000..6247686efc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/contributing/testing_ruby.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/contributing/testing_ruby.md</a></div><div class='hunk'>@@ -0,0 +1,138 @@</div><div class='add'>+# Testing Ruby</div><div class='add'>+</div><div class='add'>+## Test suites</div><div class='add'>+</div><div class='add'>+There are several test suites in the Ruby codebase:</div><div class='add'>+</div><div class='add'>+We can run any of the make scripts [in parallel](building_ruby.md#label-Running+make+scripts+in+parallel) to speed them up.</div><div class='add'>+</div><div class='add'>+1. [bootstraptest/](https://github.com/ruby/ruby/tree/master/bootstraptest)</div><div class='add'>+</div><div class='add'>+    This is a small test suite that runs on Miniruby (see [building Ruby](building_ruby.md#label-Miniruby+vs+Ruby)). We can run it with:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make btest</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    To run it with logs, we can use:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make btest OPTS=-v</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    To run individual bootstrap tests, we can either specify a list of filenames or use the `--sets` flag in the variable `BTESTS`:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make btest BTESTS="bootstraptest/test_fork.rb bootstraptest/tes_gc.rb"</div><div class='add'>+    make btest BTESTS="--sets=fork,gc"</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    If we want to run the bootstrap test suite on Ruby (not Miniruby), we can use:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    To run it with logs, we can use:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test OPTS=-v</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    To run a file or directory with GNU make, we can use:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test/ruby/test_foo.rb</div><div class='add'>+    make test/ruby/test_foo.rb TESTOPTS="-n /test_bar/"</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+2. [test/](https://github.com/ruby/ruby/tree/master/test)</div><div class='add'>+</div><div class='add'>+    This is a more comprehensive test suite that runs on Ruby. We can run it with:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test-all</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    We can run a specific test directory in this suite using the `TESTS` option, for example:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test-all TESTS=test/rubygems</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    We can run a specific test file in this suite by also using the `TESTS` option, for example:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test-all TESTS=test/ruby/test_array.rb</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    We can run a specific test in this suite using the `TESTS` option, specifying</div><div class='add'>+    first the file name, and then the test name, prefixed with `--name`. For example:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test-all TESTS="../test/ruby/test_alias.rb --name=/test_alias_with_zsuper_method/"</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    To run these specs with logs, we can use:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test-all TESTS=-v</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    If we would like to run both the `test/` and `bootstraptest/` test suites, we can run</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make check</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+3. [spec/ruby](https://github.com/ruby/ruby/tree/master/spec/ruby)</div><div class='add'>+</div><div class='add'>+    This is a test suite that exists in [the Ruby spec repository](https://github.com/ruby/spec) and is mirrored into the `spec/ruby` directory in the Ruby repository. It tests the behavior of the Ruby programming language. We can run this using:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test-spec</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    To run a specific directory, we can use `MSPECOPT` to specify the directory:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test-spec MSPECOPT=spec/ruby/core/array</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    To run a specific file, we can also use `MSPECOPT` to specify the file:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test-spec MSPECOPT=spec/ruby/core/array/any_spec.rb</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    To run a specific test, we can use the `--example` flag to match against the test name:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test-spec MSPECOPT="../spec/ruby/core/array/any_spec.rb --example='is false if the array is empty'"</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    To run these specs with logs, we can use:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test-spec MSPECOPT=-Vfs</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    To run a ruby-spec file or directory with GNU make, we can use</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make spec/ruby/core/foo/bar_spec.rb</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+4. [spec/bundler](https://github.com/ruby/ruby/tree/master/spec/bundler)</div><div class='add'>+</div><div class='add'>+    The bundler test suite exists in [the RubyGems repository](https://github.com/rubygems/rubygems/tree/master/bundler/spec) and is mirrored into the `spec/bundler` directory in the Ruby repository. We can run this using:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    make test-bundler</div><div class='add'>+    ```</div><div class='add'>+</div><div class='add'>+    To run a specific bundler spec file, we can use `BUNDLER_SPECS` as follows:</div><div class='add'>+</div><div class='add'>+    ```</div><div class='add'>+    $ make test-bundler BUNDLER_SPECS=commands/exec_spec.rb</div><div class='add'>+    ```</div><div class='head'>diff --git a/doc/contributors.rdoc b/doc/contributors.rdoc<br/>deleted file mode 100644<br/>index 7c3722032b..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/contributors.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/contributors.rdoc</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,793 +0,0 @@</div><div class='del'>-= Contributors to Ruby</div><div class='del'>-</div><div class='del'>-The following list might be incomplete. Feel free to add your name if your</div><div class='del'>-patch was accepted into Ruby.</div><div class='del'>-</div><div class='del'>-== A</div><div class='del'>-</div><div class='del'>-Ayumu AIZAWA (ayumin)</div><div class='del'>-* committer</div><div class='del'>-</div><div class='del'>-AKIYOSHI, Masamichi (akiyoshi)</div><div class='del'>-* committer</div><div class='del'>-* He had maintained the VMS support on 2003-2004.</div><div class='del'>-</div><div class='del'>-Muhammad Ali</div><div class='del'>-* wrote rdoc for Fiber</div><div class='del'>-</div><div class='del'>-Minero Aoki (aamine)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of:</div><div class='del'>-  * fileutils</div><div class='del'>-  * net/http, net/https</div><div class='del'>-  * net/pop</div><div class='del'>-  * net/smtp</div><div class='del'>-  * racc</div><div class='del'>-  * ripper</div><div class='del'>-  * strscan</div><div class='del'>-</div><div class='del'>-Wakou Aoyama (wakou)</div><div class='del'>-* committer</div><div class='del'>-* He was the maintainer of some standard libraries.</div><div class='del'>-</div><div class='del'>-Koji Arai</div><div class='del'>-* committer</div><div class='del'>-</div><div class='del'>-arton</div><div class='del'>-* He is the distributor of ActiveScriptRuby and experimental 1.9.0-x installers for win32.</div><div class='del'>-* Wrote patches for win32ole, gc.c, tmpdir.rb</div><div class='del'>-</div><div class='del'>-Sergey Avseyev</div><div class='del'>-* Added IO#pread and IO#pwrite.</div><div class='del'>-</div><div class='del'>-== B</div><div class='del'>-</div><div class='del'>-Daniel Berger</div><div class='del'>-* a patch for irb</div><div class='del'>-* documentation</div><div class='del'>-* He wrote forwardable.rb</div><div class='del'>-</div><div class='del'>-David Black (dblack)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of scanf</div><div class='del'>-</div><div class='del'>-Ken Bloom</div><div class='del'>-* a patch for REXML.</div><div class='del'>-</div><div class='del'>-Oliver M. Bolzer</div><div class='del'>-* a patch for soap</div><div class='del'>-</div><div class='del'>-Alexey Borzenkov</div><div class='del'>-* a patch for mkmf.rb</div><div class='del'>-</div><div class='del'>-Evan Brodie</div><div class='del'>-* a patch for documentation of Float#round</div><div class='del'>-</div><div class='del'>-Richard Brown</div><div class='del'>-* a patch for configure.in</div><div class='del'>-</div><div class='del'>-Dirkjan Bussink</div><div class='del'>-* a patch for date.rb</div><div class='del'>-</div><div class='del'>-Daniel Bovensiepen</div><div class='del'>-* documentation</div><div class='del'>-* a patch for irb</div><div class='del'>-</div><div class='del'>-== C</div><div class='del'>-</div><div class='del'>-Brian Candler</div><div class='del'>-* a patch for configure.in, net/telnet</div><div class='del'>-</div><div class='del'>-keith cascio</div><div class='del'>-* a patch for optparse.rb</div><div class='del'>-</div><div class='del'>-Frederick Cheung</div><div class='del'>-* a patch for test/ruby/test_symbol.rb</div><div class='del'>-</div><div class='del'>-Christoph</div><div class='del'>-* patches for set.rb</div><div class='del'>-</div><div class='del'>-Sean Chittenden</div><div class='del'>-* patches for net/http, cgi</div><div class='del'>-</div><div class='del'>-William D. Clinger</div><div class='del'>-* ruby_strtod is based on his paper.</div><div class='del'>-</div><div class='del'>-== D</div><div class='del'>-</div><div class='del'>-Ryan Davis (ryan)</div><div class='del'>-* committer</div><div class='del'>-* He wrote and is the maintainer of miniunit</div><div class='del'>-</div><div class='del'>-Guy Decoux (ts)</div><div class='del'>-* committer</div><div class='del'>-</div><div class='del'>-Zach Dennis</div><div class='del'>-</div><div class='del'>-Martin Duerst (duerst)</div><div class='del'>-* committer</div><div class='del'>-* M17N</div><div class='del'>-</div><div class='del'>-Paul Duncan</div><div class='del'>-* patches for rdoc</div><div class='del'>-</div><div class='del'>-Alexander Dymo</div><div class='del'>-* a patch for lib/benchmark.rb</div><div class='del'>-</div><div class='del'>-== E</div><div class='del'>-</div><div class='del'>-Yusuke Endoh (mame)</div><div class='del'>-* committer</div><div class='del'>-* He wrote and is the maintainer of base64 library (1.9)</div><div class='del'>-* did much upon YARV compiler.</div><div class='del'>-</div><div class='del'>-erlercw</div><div class='del'>-* wrote Integer::gcd2</div><div class='del'>-</div><div class='del'>-== F</div><div class='del'>-</div><div class='del'>-Frank S.Fejes</div><div class='del'>-* a patch for net/pop</div><div class='del'>-</div><div class='del'>-Fundakowski Feldman</div><div class='del'>-* a patch for process.c</div><div class='del'>-</div><div class='del'>-Mauricio Fernandez</div><div class='del'>-* patches for parse.y</div><div class='del'>-</div><div class='del'>-David Flanagan (davidflanagan)</div><div class='del'>-* committer</div><div class='del'>-* M17N</div><div class='del'>-</div><div class='del'>-Takeyuki Fujioka (xibbar)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of cgi/*</div><div class='del'>-</div><div class='del'>-FUKUMOTO, Atsushi</div><div class='del'>-* a patch for tracer.rb</div><div class='del'>-</div><div class='del'>-Shota Fukumori (sorah)</div><div class='del'>-* committer</div><div class='del'>-* #4415 parallel unit/test</div><div class='del'>-</div><div class='del'>-Tadayoshi Funaba (tadf)</div><div class='del'>-* committer</div><div class='del'>-* He wrote and is the maintainer of</div><div class='del'>-  * date</div><div class='del'>-  * parsedate (1.8)</div><div class='del'>-* He ported rational.rb and complex.rb, which 1.8 contains, into rational.c and complex.c of 1.9.</div><div class='del'>-</div><div class='del'>-== G</div><div class='del'>-</div><div class='del'>-David M. Gay</div><div class='del'>-* ruby_strtod</div><div class='del'>-</div><div class='del'>-Florian Gilcher</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-GOTOU, Kentaro (gotoken)</div><div class='del'>-* committer</div><div class='del'>-* He wrote benchmark.rb</div><div class='del'>-* He is the maintainer of:</div><div class='del'>-  * benchmark.rb</div><div class='del'>-  * open3</div><div class='del'>-</div><div class='del'>-GOTOU, Yuuzou (gotoyuzo)</div><div class='del'>-* committer</div><div class='del'>-</div><div class='del'>-James Edward Gray II (jeg2)</div><div class='del'>-* committer</div><div class='del'>-* He wrote the faster implementation of CSV and is the maintainer of csv.</div><div class='del'>-* Wrote documentation for rdoc</div><div class='del'>-</div><div class='del'>-== H</div><div class='del'>-</div><div class='del'>-Phil Hagelberg</div><div class='del'>-* patch for ruby-mode.el's documentation.</div><div class='del'>-</div><div class='del'>-Kirk Haines (wyhaines)</div><div class='del'>-* committer</div><div class='del'>-* the maintainer of ruby_1_8_6 branch</div><div class='del'>-</div><div class='del'>-Shinichiro Hamaji</div><div class='del'>-* fixed memory leaks (marshal.c, string.c)</div><div class='del'>-</div><div class='del'>-Shin-ichiro HARA</div><div class='del'>-* the developer and the sysop of ruby-{dev,list,core,talk} archive.</div><div class='del'>-* a patch for numeric.c</div><div class='del'>-</div><div class='del'>-Chris Heath (traumdeutung)</div><div class='del'>-* a patch for proc.c</div><div class='del'>-</div><div class='del'>-HIROKAWA Hisashi</div><div class='del'>-* fixed socket/socket.c</div><div class='del'>-</div><div class='del'>-Daniel Hob</div><div class='del'>-* He wrote:</div><div class='del'>-  * SMTP-TLS support for net/smtp.</div><div class='del'>-  * POP3S support</div><div class='del'>-</div><div class='del'>-Eric Hodel (drbrain)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of:</div><div class='del'>-  * rdoc</div><div class='del'>-  * ri</div><div class='del'>-  * rubygems</div><div class='del'>-</div><div class='del'>-Erik Hollensbe</div><div class='del'>-* a patch for delegate.rb</div><div class='del'>-</div><div class='del'>-Johan Holmberg</div><div class='del'>-* a patch for dir.c</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-Erik Huelsmann</div><div class='del'>-</div><div class='del'>-Dae San Hwang</div><div class='del'>-* built a continuous integration environment on OpenSolaris.</div><div class='del'>-</div><div class='del'>-== I</div><div class='del'>-</div><div class='del'>-Nobuhiro IMAI</div><div class='del'>-* a patch for logger.rb</div><div class='del'>-</div><div class='del'>-"incorporate"</div><div class='del'>-* a patch for sprintf.c</div><div class='del'>-</div><div class='del'>-Keiju Ishitsuka (keiju)</div><div class='del'>-* committer</div><div class='del'>-* He wrote and is the maintainer of:</div><div class='del'>-  * cmath.rb (1.9)</div><div class='del'>-  * complex.rb (1.8)</div><div class='del'>-  * e2mmap.rb</div><div class='del'>-  * forwardable.rb</div><div class='del'>-  * irb</div><div class='del'>-  * mathn</div><div class='del'>-  * matrix.rb</div><div class='del'>-  * mutex_m.rb</div><div class='del'>-  * rational.rb (1.8)</div><div class='del'>-  * sync.rb</div><div class='del'>-  * shell/*</div><div class='del'>-  * thwait.rb</div><div class='del'>-  * tracer.rb</div><div class='del'>-</div><div class='del'>-== J</div><div class='del'>-</div><div class='del'>-Curtis Jackson</div><div class='del'>-* missing/dup2.c</div><div class='del'>-</div><div class='del'>-Alan Johnson</div><div class='del'>-* a patch for net/ftp</div><div class='del'>-</div><div class='del'>-Lyle Johnson</div><div class='del'>-* patches for nkf, bigdecimal, numeric.c</div><div class='del'>-</div><div class='del'>-== K</div><div class='del'>-</div><div class='del'>-Yoshihiro Kambayashi</div><div class='del'>-* a patch for enc/trans/single_byte.trans.</div><div class='del'>-* He wrote supports for some encodings.</div><div class='del'>-</div><div class='del'>-Yutaka Kanemoto</div><div class='del'>-* patches for common.mk, AIX AF_INET6 support</div><div class='del'>-</div><div class='del'>-Motoyuki Kasahara</div><div class='del'>-* He wrote getoptlong.rb</div><div class='del'>-</div><div class='del'>-Masahiro Kawato</div><div class='del'>-* a patch for shellwords.rb</div><div class='del'>-</div><div class='del'>-Wataru Kimura</div><div class='del'>-* a patch for configure.in</div><div class='del'>-</div><div class='del'>-Michael Klishin</div><div class='del'>-* patch for make help.</div><div class='del'>-</div><div class='del'>-Noritada Kobayashi</div><div class='del'>-* a patch for optparse.rb</div><div class='del'>-</div><div class='del'>-Shigeo Kobayashi (shigek)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of bigdecimal</div><div class='del'>-</div><div class='del'>-KONISHI, Hiromasa (H_Konishi)</div><div class='del'>-* committer</div><div class='del'>-* He had maintained the bcc32 support in 2004.</div><div class='del'>-</div><div class='del'>-Kornelius "murphy" Kalnbach</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-K.Kosako (kosako)</div><div class='del'>-* committer</div><div class='del'>-* He wrote Oniguruma.</div><div class='del'>-</div><div class='del'>-Takehiro Kubo</div><div class='del'>-* patches for dl 64bit support.</div><div class='del'>-</div><div class='del'>-== L</div><div class='del'>-</div><div class='del'>-Marc-Andre Lafortune (marcandre)</div><div class='del'>-* committer</div><div class='del'>-* patches for hash.c, array.c, thread.c, enumc, string.c, range.c and rdoc documentation.</div><div class='del'>-</div><div class='del'>-Hongli Lai</div><div class='del'>-* improved pstore.rb</div><div class='del'>-* patch for tool/file2lastrev.rb.</div><div class='del'>-</div><div class='del'>-raspberry lemon</div><div class='del'>-* a patch for webrick/httpproxy.rb.</div><div class='del'>-</div><div class='del'>-Christian Loew</div><div class='del'>-* a patch for fileutils.rb</div><div class='del'>-</div><div class='del'>-== M</div><div class='del'>-</div><div class='del'>-Shugo Maeda (shugo)</div><div class='del'>-* committer</div><div class='del'>-* A system administrator of ruby-lang.org servers.</div><div class='del'>-* He wrote and is the maintainer of:</div><div class='del'>-  * monitor.rb</div><div class='del'>-  * net/ftp</div><div class='del'>-  * net/imap</div><div class='del'>-</div><div class='del'>-Stephan Maka (mathew)</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-Yukihiro Matsumoto (matz)</div><div class='del'>-* Matz -- the founder, language designer of Ruby.</div><div class='del'>-* committer</div><div class='del'>-* Ruby itself, most of Ruby.</div><div class='del'>-* He is the maintainer of:</div><div class='del'>-  * singleton</div><div class='del'>-  * timeout</div><div class='del'>-  * gdbm</div><div class='del'>-  * sdbm</div><div class='del'>-</div><div class='del'>-Konrad Meyer</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-Mib Software</div><div class='del'>-* missing/vsnprintf.c</div><div class='del'>-</div><div class='del'>-Todd C. Miller</div><div class='del'>-* missing/strlcat.c</div><div class='del'>-* missing/strlcpy.c</div><div class='del'>-</div><div class='del'>-MIYASAKA, Masaru</div><div class='del'>-* a patch for cgi.rb</div><div class='del'>-</div><div class='del'>-Stefan Monnier</div><div class='del'>-* regex.c was fixed with based on his Emacs21 patch.</div><div class='del'>-</div><div class='del'>-Marcel Moolenaar</div><div class='del'>-* patches for eval.c and gc.c.</div><div class='del'>-</div><div class='del'>-moonwolf</div><div class='del'>-* a patch for REXML, xmlrpc</div><div class='del'>-</div><div class='del'>-Hiroshi Moriyama</div><div class='del'>-* a patch for yaml.</div><div class='del'>-</div><div class='del'>-Kyosuke Morohashi</div><div class='del'>-* a patch for gem_prelude.rb</div><div class='del'>-</div><div class='del'>-Kenta Murata</div><div class='del'>-* patches for json, bignum.c</div><div class='del'>-</div><div class='del'>-Akinori MUSHA (knu)</div><div class='del'>-* committer</div><div class='del'>-* He wrote and is the maintainer of:</div><div class='del'>-  * abbrev.rb</div><div class='del'>-  * generator (1.8)</div><div class='del'>-  * enumerator (1.8)</div><div class='del'>-  * set</div><div class='del'>-  * ipaddr.rb</div><div class='del'>-  * digest/*</div><div class='del'>-  * syslog</div><div class='del'>-* He is the branch maintainer of ruby_1_8, the release manager of 1.8 series.</div><div class='del'>-</div><div class='del'>-== N</div><div class='del'>-</div><div class='del'>-Hidetoshi NAGAI (nagai)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of tk/*</div><div class='del'>-</div><div class='del'>-Nobuyoshi Nakada (nobu)</div><div class='del'>-* committer</div><div class='del'>-* a.k.a. the "patch monster"</div><div class='del'>-* He wrote and is the maintainer of:</div><div class='del'>-  * optparse</div><div class='del'>-  * stringio</div><div class='del'>-  * io/wait</div><div class='del'>-  * iconv</div><div class='del'>-</div><div class='del'>-Satoshi Nakagawa</div><div class='del'>-* patches for util.c</div><div class='del'>-</div><div class='del'>-Narihiro Nakamura (nari)</div><div class='del'>-* committer</div><div class='del'>-* a.k.a. authorNari</div><div class='del'>-* working at GC</div><div class='del'>-</div><div class='del'>-NAKAMURA, Hiroshi (nahi)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of:</div><div class='del'>-  * csv.rb (1.8)</div><div class='del'>-  * logger.rb</div><div class='del'>-  * soap/* (1.8)</div><div class='del'>-  * wsdl/* (1.8)</div><div class='del'>-  * xsd/* (1.8)</div><div class='del'>-</div><div class='del'>-NAKAMURA, Usaku (usa)</div><div class='del'>-* committer</div><div class='del'>-* a.k.a. unak</div><div class='del'>-* He is the maintainer of mswin32 and mswin64 support.</div><div class='del'>-</div><div class='del'>-NARUSE, Yui (naruse)</div><div class='del'>-* committer</div><div class='del'>-* a.k.a. "nurse"</div><div class='del'>-* Did much upon m17n.</div><div class='del'>-* He is the maintainer of:</div><div class='del'>-  * json</div><div class='del'>-  * nkf</div><div class='del'>-</div><div class='del'>-Christian Neukirchen</div><div class='del'>-* a patch for webrick/httputils</div><div class='del'>-</div><div class='del'>-Michael Neumann (mneumann)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of</div><div class='del'>-  * xmlrpc (1.8)</div><div class='del'>-  * gserver (1.8)</div><div class='del'>-</div><div class='del'>-NISHIO Hirokazu</div><div class='del'>-* wrote a patch for CVE-2010-0541</div><div class='del'>-</div><div class='del'>-Kazuhiro NISHIYAMA (kazu)</div><div class='del'>-* committer</div><div class='del'>-* a.k.a. znz</div><div class='del'>-</div><div class='del'>-Go Noguchi</div><div class='del'>-</div><div class='del'>-Martin Nordholts</div><div class='del'>-* misc/rdebug.el</div><div class='del'>-</div><div class='del'>-nmu</div><div class='del'>-* a patch for socket</div><div class='del'>-</div><div class='del'>-== O</div><div class='del'>-</div><div class='del'>-okkez</div><div class='del'>-* He is a sysop of the Ruby Reference Manual Renewal Project.</div><div class='del'>-* fixed ipaddr.rb, ext/etc</div><div class='del'>-</div><div class='del'>-Haruhiko Okumura</div><div class='del'>-* some of missing/* is based on his book:</div><div class='del'>-  * missing/erf.c</div><div class='del'>-  * missing/lgamma_r.c</div><div class='del'>-  * missing/tgamma.c</div><div class='del'>-</div><div class='del'>-OMAE, jun</div><div class='del'>-* a patch for debug.rb</div><div class='del'>-</div><div class='del'>-Eugene Ossintsev</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-== P</div><div class='del'>-</div><div class='del'>-Heesob Park</div><div class='del'>-* a patch for win32/win32.c.</div><div class='del'>-</div><div class='del'>-pegacorn</div><div class='del'>-* a patch for instruby.rb</div><div class='del'>-</div><div class='del'>-== Q</div><div class='del'>-</div><div class='del'>-== R</div><div class='del'>-</div><div class='del'>-Gaston Ramos</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-The Regents of the University of California</div><div class='del'>-* missing/crypt.c</div><div class='del'>-* missing/vsnprintf.c</div><div class='del'>-</div><div class='del'>-Sam Roberts</div><div class='del'>-* patch for socket</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-Michal Rokos (michal)</div><div class='del'>-* committer</div><div class='del'>-* He was the maintainer of DJGPP support.</div><div class='del'>-</div><div class='del'>-rubikitch</div><div class='del'>-* a patch for io.c</div><div class='del'>-</div><div class='del'>-Marcus Rueckert</div><div class='del'>-* a patch for mkconfig.rb.</div><div class='del'>-</div><div class='del'>-Run Paint Run Run</div><div class='del'>-* patch for enc/unicode.c</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-Sean Russell (ser)</div><div class='del'>-* committer</div><div class='del'>-* He wrote and is the maintainer of REXML.</div><div class='del'>-</div><div class='del'>-== S</div><div class='del'>-</div><div class='del'>-Kazuo Saito (ksaito)</div><div class='del'>-* committer</div><div class='del'>-* M17N</div><div class='del'>-</div><div class='del'>-Tadashi Saito</div><div class='del'>-* patches for test/ruby/test_math.rb, thread_*.c, bignum.c</div><div class='del'>-* working upon BigDecimal.</div><div class='del'>-* did much upon documentation</div><div class='del'>-</div><div class='del'>-Masahiro Sakai</div><div class='del'>-* a patch for io.c</div><div class='del'>-</div><div class='del'>-Laurent Sansonetti</div><div class='del'>-* a patch for tool/ytab.sed</div><div class='del'>-</div><div class='del'>-Jeff Saracco</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-Koichi Sasada (ko1)</div><div class='del'>-* committer</div><div class='del'>-* He wrote YARV.</div><div class='del'>-</div><div class='del'>-Hugh Sasse</div><div class='del'>-* a patch for net/http</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-Charlie Savage</div><div class='del'>-* a patch for win32/Makefile.sub</div><div class='del'>-</div><div class='del'>-Michael Scholz</div><div class='del'>-* a patch for ruby-mode.el</div><div class='del'>-</div><div class='del'>-Arthur Schreiber</div><div class='del'>-* patch for net/http and rdoc.</div><div class='del'>-</div><div class='del'>-Masatoshi SEKI (seki)</div><div class='del'>-* committer</div><div class='del'>-* He wrote and is the maintainer of:</div><div class='del'>-  * drb/*</div><div class='del'>-  * erb</div><div class='del'>-  * rinda</div><div class='del'>-</div><div class='del'>-Roman Shterenzon</div><div class='del'>-* a patch for open-uri.</div><div class='del'>-</div><div class='del'>-Kent Sibilev</div><div class='del'>-</div><div class='del'>-Gavin Sinclair (gsinclair)</div><div class='del'>-* committer</div><div class='del'>-</div><div class='del'>-John W. Small</div><div class='del'>-* He wrote gserver.rb</div><div class='del'>-</div><div class='del'>-Yuki Sonoda (yugui)</div><div class='del'>-* committer</div><div class='del'>-* She is the maintainer of man/* manual pages and is the release manager of 1.9 series.</div><div class='del'>-* She wrote prime.rb.</div><div class='del'>-* A developer and a sysop of redmine.ruby-lang.org.</div><div class='del'>-</div><div class='del'>-SOUMA, Yutaka</div><div class='del'>-* a patch for pack.c.</div><div class='del'>-</div><div class='del'>-Tatsuki Sugiura</div><div class='del'>-* WebDAV support for net/http</div><div class='del'>-</div><div class='del'>-Masaki Suketa (suke)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of win32ole</div><div class='del'>-</div><div class='del'>-sheepman</div><div class='del'>-* patches for ruby.c, thread.c, stringio, enum.c, webrick, net/http</div><div class='del'>-</div><div class='del'>-Siena. (siena)</div><div class='del'>-* committer</div><div class='del'>-</div><div class='del'>-Kirill A. Shutemov</div><div class='del'>-* a patch for parse.y</div><div class='del'>-</div><div class='del'>-Darren Smith</div><div class='del'>-* a patch for golf_prelude.rb</div><div class='del'>-</div><div class='del'>-Richard M. Stallman</div><div class='del'>-* missing/alloca.c</div><div class='del'>-</div><div class='del'>-Robin Stocker</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-Joshua Stowers</div><div class='del'>-* a patch for array.c</div><div class='del'>-</div><div class='del'>-Marcus Stollsteimer (stomar)</div><div class='del'>-* committer</div><div class='del'>-* a maintainer of www.ruby-lang.org</div><div class='del'>-* patches for cgi (HTML5 tag maker), numeric.c, bigdecimal, ostruct.rb, prime.rb, and others</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-Adam Strzelecki</div><div class='del'>-* a patch for compile.c</div><div class='del'>-</div><div class='del'>-Masashi Sumi</div><div class='del'>-* improved net/pop.rb</div><div class='del'>-</div><div class='del'>-Eric Sunshine</div><div class='del'>-* NeXT OpenStep, Rhapsody support</div><div class='del'>-</div><div class='del'>-Kouhei Sutou (kou)</div><div class='del'>-* committer</div><div class='del'>-* He wrote and is the maintainer of rss/*</div><div class='del'>-</div><div class='del'>-David Symonds</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-== T</div><div class='del'>-</div><div class='del'>-TAKANO Mitsuhiro (takano32)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of IA-64 support.</div><div class='del'>-* BigDecimal</div><div class='del'>-</div><div class='del'>-TAKAO, Kouji (kouji)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of readline.</div><div class='del'>-</div><div class='del'>-Nathaniel Talbott (ntalbott)</div><div class='del'>-* committer</div><div class='del'>-* He was the maintainer of test/unit, runit, rubyunit.</div><div class='del'>-</div><div class='del'>-TANAKA, Akira (akr)</div><div class='del'>-* committer</div><div class='del'>-* Did much upon m17n.</div><div class='del'>-* And he is the maintainer of:</div><div class='del'>-  * open-uri</div><div class='del'>-  * pathname</div><div class='del'>-  * pp</div><div class='del'>-  * resolv-replace</div><div class='del'>-  * resolv</div><div class='del'>-  * time</div><div class='del'>-  * tsort</div><div class='del'>-</div><div class='del'>-Takaaki Tateishi (ttate)</div><div class='del'>-* committer</div><div class='del'>-* He was the maintainer of dl</div><div class='del'>-</div><div class='del'>-Technorama Ltd. (technoroma)</div><div class='del'>-* committer</div><div class='del'>-* openssl</div><div class='del'>-</div><div class='del'>-Andrew Thompson</div><div class='del'>-* a patch for socket.c IRIX support.</div><div class='del'>-</div><div class='del'>-Dave Thomas (dave)</div><div class='del'>-* committer</div><div class='del'>-* a.k.a. the Pragmatic Programmer.</div><div class='del'>-* He wrote rdoc.</div><div class='del'>-</div><div class='del'>-Tietew</div><div class='del'>-* patches for win32 support</div><div class='del'>-</div><div class='del'>-Masahiro Tomita</div><div class='del'>-* a patch for cgi.rb</div><div class='del'>-</div><div class='del'>-Jakub Travnik</div><div class='del'>-* a patch for eval.c</div><div class='del'>-</div><div class='del'>-Tom Truscott</div><div class='del'>-* missing/crypt.c</div><div class='del'>-</div><div class='del'>-== U</div><div class='del'>-</div><div class='del'>-UEDA, Satoshi</div><div class='del'>-* a patch for uri</div><div class='del'>-</div><div class='del'>-Takaaki Uematsu (uema2)</div><div class='del'>-* committer</div><div class='del'>-* He was the maintainer of WinCE support.</div><div class='del'>-</div><div class='del'>-UENO, Katsuhiro (katsu)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of zlib</div><div class='del'>-</div><div class='del'>-Hajimu UMEMOTO</div><div class='del'>-* He wrote ipaddr.rb</div><div class='del'>-</div><div class='del'>-URABE, Shyouhei (shyouhei)</div><div class='del'>-* committer</div><div class='del'>-* a.k.a. mput.</div><div class='del'>-* He is the branch maintainer of ruby_1_8_6 and ruby_1_8_7</div><div class='del'>-* and is the release manager of 1.8.x-pXXX.</div><div class='del'>-</div><div class='del'>-== V</div><div class='del'>-</div><div class='del'>-Joel VanderWerf</div><div class='del'>-* a patch for numeric.c</div><div class='del'>-</div><div class='del'>-Peter Vanbroekhoven</div><div class='del'>-</div><div class='del'>-Corinna Vinschen</div><div class='del'>-</div><div class='del'>-== W</div><div class='del'>-</div><div class='del'>-wanabe (wanabe)</div><div class='del'>-* committer</div><div class='del'>-* fixed YARV and Oniguruma.</div><div class='del'>-</div><div class='del'>-Chun Wang</div><div class='del'>-* a patch for time.rb</div><div class='del'>-</div><div class='del'>-WATANABE, Hirofumi (eban)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of</div><div class='del'>-  * ftools (1.8)</div><div class='del'>-  * tmpdir</div><div class='del'>-  * un</div><div class='del'>-  * Win32API</div><div class='del'>-</div><div class='del'>-WATANABE, Tetsuya</div><div class='del'>-* a patch for ruby.c</div><div class='del'>-</div><div class='del'>-William Webber (wew)</div><div class='del'>-* committer</div><div class='del'>-</div><div class='del'>-Jim Weirich (jim)</div><div class='del'>-* committer</div><div class='del'>-* He wrote Rake.</div><div class='del'>-</div><div class='del'>-Nathan Weizenbaum</div><div class='del'>-* fixed misc/ruby-mode.el.</div><div class='del'>-</div><div class='del'>-why the lukky stiff (why)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of syck</div><div class='del'>-</div><div class='del'>-Caley Woods</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-Gary Wright</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-== X</div><div class='del'>-</div><div class='del'>-== Y</div><div class='del'>-</div><div class='del'>-Akira Yamada (akira)</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer of ruby related packages at Debian project.</div><div class='del'>-</div><div class='del'>-Keita Yamaguchi</div><div class='del'>-* patches for enum.c, parse.y</div><div class='del'>-* documentation</div><div class='del'>-</div><div class='del'>-Hirokazu Yamamoto (ocean)</div><div class='del'>-* committer</div><div class='del'>-</div><div class='del'>-Hirotaka Yoshioka</div><div class='del'>-* a patch for improving SEGV handling</div><div class='del'>-</div><div class='del'>-== Z</div><div class='del'>-</div><div class='del'>-Aristarkh A Zagorodnikov</div><div class='del'>-* a patch for io.c</div><div class='del'>-</div><div class='del'>-Alexander Zavorine</div><div class='del'>-* committer</div><div class='del'>-* He is the maintainer for Symbian OS.</div><div class='del'>-</div><div class='del'>-Chiyuan Zhang</div><div class='del'>-* a patch for misc/ruby-mode.el.</div><div class='del'>-</div><div class='del'>-Dee Zsombor (zunda)</div><div class='del'>-* a patch for thread_pthread.c</div><div class='del'>-</div><div class='del'>-Dan Zwell</div><div class='del'>-* a patch for net/pop</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/doc/csv/arguments/io.rdoc b/doc/csv/arguments/io.rdoc<br/>new file mode 100644<br/>index 0000000000..f5fe1d1975<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/arguments/io.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/arguments/io.rdoc</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+* Argument +io+ should be an IO object that is:</div><div class='add'>+  * Open for reading; on return, the IO object will be closed.</div><div class='add'>+  * Positioned at the beginning.</div><div class='add'>+    To position at the end, for appending, use method CSV.generate.</div><div class='add'>+    For any other positioning, pass a preset \StringIO object instead.</div><div class='head'>diff --git a/doc/csv/options/common/col_sep.rdoc b/doc/csv/options/common/col_sep.rdoc<br/>new file mode 100644<br/>index 0000000000..05769b5773<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/common/col_sep.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/common/col_sep.rdoc</a></div><div class='hunk'>@@ -0,0 +1,63 @@</div><div class='add'>+====== Option +col_sep+</div><div class='add'>+</div><div class='add'>+Specifies the \String field separator to be used</div><div class='add'>+for both parsing and generating.</div><div class='add'>+The \String will be transcoded into the data's \Encoding before use.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:col_sep) # =&gt; "," (comma)</div><div class='add'>+</div><div class='add'>+Using the default (comma):</div><div class='add'>+  str = CSV.generate do |csv|</div><div class='add'>+    csv &lt;&lt; [:foo, 0]</div><div class='add'>+    csv &lt;&lt; [:bar, 1]</div><div class='add'>+    csv &lt;&lt; [:baz, 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  ary = CSV.parse(str)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+Using +:+ (colon):</div><div class='add'>+  col_sep = ':'</div><div class='add'>+  str = CSV.generate(col_sep: col_sep) do |csv|</div><div class='add'>+    csv &lt;&lt; [:foo, 0]</div><div class='add'>+    csv &lt;&lt; [:bar, 1]</div><div class='add'>+    csv &lt;&lt; [:baz, 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo:0\nbar:1\nbaz:2\n"</div><div class='add'>+  ary = CSV.parse(str, col_sep: col_sep)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+Using +::+ (two colons):</div><div class='add'>+  col_sep = '::'</div><div class='add'>+  str = CSV.generate(col_sep: col_sep) do |csv|</div><div class='add'>+    csv &lt;&lt; [:foo, 0]</div><div class='add'>+    csv &lt;&lt; [:bar, 1]</div><div class='add'>+    csv &lt;&lt; [:baz, 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo::0\nbar::1\nbaz::2\n"</div><div class='add'>+  ary = CSV.parse(str, col_sep: col_sep)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+Using &lt;tt&gt;''&lt;/tt&gt; (empty string):</div><div class='add'>+  col_sep = ''</div><div class='add'>+  str = CSV.generate(col_sep: col_sep) do |csv|</div><div class='add'>+    csv &lt;&lt; [:foo, 0]</div><div class='add'>+    csv &lt;&lt; [:bar, 1]</div><div class='add'>+    csv &lt;&lt; [:baz, 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo0\nbar1\nbaz2\n"</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+Raises an exception if parsing with the empty \String:</div><div class='add'>+  col_sep = ''</div><div class='add'>+  # Raises ArgumentError (:col_sep must be 1 or more characters: "")</div><div class='add'>+  CSV.parse("foo0\nbar1\nbaz2\n", col_sep: col_sep)</div><div class='add'>+</div><div class='add'>+Raises an exception if the given value is not String-convertible:</div><div class='add'>+  col_sep = BasicObject.new</div><div class='add'>+  # Raises NoMethodError (undefined method `to_s' for #&lt;BasicObject:&gt;)</div><div class='add'>+  CSV.generate(line, col_sep: col_sep)</div><div class='add'>+  # Raises NoMethodError (undefined method `to_s' for #&lt;BasicObject:&gt;)</div><div class='add'>+  CSV.parse(str, col_sep: col_sep)</div><div class='head'>diff --git a/doc/csv/options/common/quote_char.rdoc b/doc/csv/options/common/quote_char.rdoc<br/>new file mode 100644<br/>index 0000000000..67fd3af68b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/common/quote_char.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/common/quote_char.rdoc</a></div><div class='hunk'>@@ -0,0 +1,42 @@</div><div class='add'>+====== Option +quote_char+</div><div class='add'>+</div><div class='add'>+Specifies the character (\String of length 1) used used to quote fields</div><div class='add'>+in both parsing and generating.</div><div class='add'>+This String will be transcoded into the data's \Encoding before use.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:quote_char) # =&gt; "\"" (double quote)</div><div class='add'>+</div><div class='add'>+This is useful for an application that incorrectly uses &lt;tt&gt;'&lt;/tt&gt; (single-quote)</div><div class='add'>+to quote fields, instead of the correct &lt;tt&gt;"&lt;/tt&gt; (double-quote).</div><div class='add'>+</div><div class='add'>+Using the default (double quote):</div><div class='add'>+  str = CSV.generate do |csv|</div><div class='add'>+    csv &lt;&lt; ['foo', 0]</div><div class='add'>+    csv &lt;&lt; ["'bar'", 1]</div><div class='add'>+    csv &lt;&lt; ['"baz"', 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo,0\n'bar',1\n\"\"\"baz\"\"\",2\n"</div><div class='add'>+  ary = CSV.parse(str)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["'bar'", "1"], ["\"baz\"", "2"]]</div><div class='add'>+</div><div class='add'>+Using &lt;tt&gt;'&lt;/tt&gt; (single-quote):</div><div class='add'>+  quote_char = "'"</div><div class='add'>+  str = CSV.generate(quote_char: quote_char) do |csv|</div><div class='add'>+    csv &lt;&lt; ['foo', 0]</div><div class='add'>+    csv &lt;&lt; ["'bar'", 1]</div><div class='add'>+    csv &lt;&lt; ['"baz"', 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo,0\n'''bar''',1\n\"baz\",2\n"</div><div class='add'>+  ary = CSV.parse(str, quote_char: quote_char)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["'bar'", "1"], ["\"baz\"", "2"]]</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+Raises an exception if the \String length is greater than 1:</div><div class='add'>+  # Raises ArgumentError (:quote_char has to be nil or a single character String)</div><div class='add'>+  CSV.new('', quote_char: 'xx')</div><div class='add'>+</div><div class='add'>+Raises an exception if the value is not a \String:</div><div class='add'>+  # Raises ArgumentError (:quote_char has to be nil or a single character String)</div><div class='add'>+  CSV.new('', quote_char: :foo)</div><div class='head'>diff --git a/doc/csv/options/common/row_sep.rdoc b/doc/csv/options/common/row_sep.rdoc<br/>new file mode 100644<br/>index 0000000000..872d9d1f3f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/common/row_sep.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/common/row_sep.rdoc</a></div><div class='hunk'>@@ -0,0 +1,100 @@</div><div class='add'>+====== Option +row_sep+</div><div class='add'>+</div><div class='add'>+Specifies the row separator, a \String or the \Symbol &lt;tt&gt;:auto&lt;/tt&gt; (see below),</div><div class='add'>+to be used for both parsing and generating.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:row_sep) # =&gt; :auto</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+When +row_sep+ is a \String, that \String becomes the row separator.</div><div class='add'>+The String will be transcoded into the data's Encoding before use.</div><div class='add'>+</div><div class='add'>+Using &lt;tt&gt;"\n"&lt;/tt&gt;:</div><div class='add'>+  row_sep = "\n"</div><div class='add'>+  str = CSV.generate(row_sep: row_sep) do |csv|</div><div class='add'>+    csv &lt;&lt; [:foo, 0]</div><div class='add'>+    csv &lt;&lt; [:bar, 1]</div><div class='add'>+    csv &lt;&lt; [:baz, 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  ary = CSV.parse(str)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+Using &lt;tt&gt;|&lt;/tt&gt; (pipe):</div><div class='add'>+  row_sep = '|'</div><div class='add'>+  str = CSV.generate(row_sep: row_sep) do |csv|</div><div class='add'>+    csv &lt;&lt; [:foo, 0]</div><div class='add'>+    csv &lt;&lt; [:bar, 1]</div><div class='add'>+    csv &lt;&lt; [:baz, 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo,0|bar,1|baz,2|"</div><div class='add'>+  ary = CSV.parse(str, row_sep: row_sep)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+Using &lt;tt&gt;--&lt;/tt&gt; (two hyphens):</div><div class='add'>+  row_sep = '--'</div><div class='add'>+  str = CSV.generate(row_sep: row_sep) do |csv|</div><div class='add'>+    csv &lt;&lt; [:foo, 0]</div><div class='add'>+    csv &lt;&lt; [:bar, 1]</div><div class='add'>+    csv &lt;&lt; [:baz, 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo,0--bar,1--baz,2--"</div><div class='add'>+  ary = CSV.parse(str, row_sep: row_sep)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+Using &lt;tt&gt;''&lt;/tt&gt; (empty string):</div><div class='add'>+  row_sep = ''</div><div class='add'>+  str = CSV.generate(row_sep: row_sep) do |csv|</div><div class='add'>+    csv &lt;&lt; [:foo, 0]</div><div class='add'>+    csv &lt;&lt; [:bar, 1]</div><div class='add'>+    csv &lt;&lt; [:baz, 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo,0bar,1baz,2"</div><div class='add'>+  ary = CSV.parse(str, row_sep: row_sep)</div><div class='add'>+  ary # =&gt; [["foo", "0bar", "1baz", "2"]]</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+When +row_sep+ is the \Symbol +:auto+ (the default),</div><div class='add'>+generating uses &lt;tt&gt;"\n"&lt;/tt&gt; as the row separator:</div><div class='add'>+  str = CSV.generate do |csv|</div><div class='add'>+    csv &lt;&lt; [:foo, 0]</div><div class='add'>+    csv &lt;&lt; [:bar, 1]</div><div class='add'>+    csv &lt;&lt; [:baz, 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+</div><div class='add'>+Parsing, on the other hand, invokes auto-discovery of the row separator.</div><div class='add'>+</div><div class='add'>+Auto-discovery reads ahead in the data looking for the next &lt;tt&gt;\r\n&lt;/tt&gt;, +\n+, or +\r+ sequence.</div><div class='add'>+The sequence will be selected even if it occurs in a quoted field,</div><div class='add'>+assuming that you would have the same line endings there.</div><div class='add'>+</div><div class='add'>+Example:</div><div class='add'>+  str = CSV.generate do |csv|</div><div class='add'>+    csv &lt;&lt; [:foo, 0]</div><div class='add'>+    csv &lt;&lt; [:bar, 1]</div><div class='add'>+    csv &lt;&lt; [:baz, 2]</div><div class='add'>+  end</div><div class='add'>+  str # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  ary = CSV.parse(str)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+The default &lt;tt&gt;$INPUT_RECORD_SEPARATOR&lt;/tt&gt; (&lt;tt&gt;$/&lt;/tt&gt;) is used</div><div class='add'>+if any of the following is true:</div><div class='add'>+* None of those sequences is found.</div><div class='add'>+* Data is +ARGF+, +STDIN+, +STDOUT+, or +STDERR+.</div><div class='add'>+* The stream is only available for output.</div><div class='add'>+</div><div class='add'>+Obviously, discovery takes a little time. Set manually if speed is important. Also note that IO objects should be opened in binary mode on Windows if this feature will be used as the line-ending translation can cause problems with resetting the document position to where it was before the read ahead.</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+Raises an exception if the given value is not String-convertible:</div><div class='add'>+  row_sep = BasicObject.new</div><div class='add'>+  # Raises NoMethodError (undefined method `to_s' for #&lt;BasicObject:&gt;)</div><div class='add'>+  CSV.generate(ary, row_sep: row_sep)</div><div class='add'>+  # Raises NoMethodError (undefined method `to_s' for #&lt;BasicObject:&gt;)</div><div class='add'>+  CSV.parse(str, row_sep: row_sep)</div><div class='head'>diff --git a/doc/csv/options/generating/force_quotes.rdoc b/doc/csv/options/generating/force_quotes.rdoc<br/>new file mode 100644<br/>index 0000000000..11afd1a16c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/generating/force_quotes.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/generating/force_quotes.rdoc</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+====== Option +force_quotes+</div><div class='add'>+</div><div class='add'>+Specifies the boolean that determines whether each output field is to be double-quoted.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:force_quotes) # =&gt; false</div><div class='add'>+</div><div class='add'>+For examples in this section:</div><div class='add'>+  ary = ['foo', 0, nil]</div><div class='add'>+</div><div class='add'>+Using the default, +false+:</div><div class='add'>+  str = CSV.generate_line(ary)</div><div class='add'>+  str # =&gt; "foo,0,\n"</div><div class='add'>+</div><div class='add'>+Using +true+:</div><div class='add'>+  str = CSV.generate_line(ary, force_quotes: true)</div><div class='add'>+  str # =&gt; "\"foo\",\"0\",\"\"\n"</div><div class='head'>diff --git a/doc/csv/options/generating/quote_empty.rdoc b/doc/csv/options/generating/quote_empty.rdoc<br/>new file mode 100644<br/>index 0000000000..4c5645c662<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/generating/quote_empty.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/generating/quote_empty.rdoc</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+====== Option +quote_empty+</div><div class='add'>+</div><div class='add'>+Specifies the boolean that determines whether an empty value is to be double-quoted.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:quote_empty) # =&gt; true</div><div class='add'>+</div><div class='add'>+With the default +true+:</div><div class='add'>+  CSV.generate_line(['"', ""]) # =&gt; "\"\"\"\",\"\"\n"</div><div class='add'>+</div><div class='add'>+With +false+:</div><div class='add'>+    CSV.generate_line(['"', ""], quote_empty: false) # =&gt; "\"\"\"\",\n"</div><div class='head'>diff --git a/doc/csv/options/generating/write_converters.rdoc b/doc/csv/options/generating/write_converters.rdoc<br/>new file mode 100644<br/>index 0000000000..6e5fae5fda<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/generating/write_converters.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/generating/write_converters.rdoc</a></div><div class='hunk'>@@ -0,0 +1,33 @@</div><div class='add'>+====== Option +write_converters+</div><div class='add'>+</div><div class='add'>+Specifies converters to be used in generating fields.</div><div class='add'>+See {Write Converters}[#class-CSV-label-Write+Converters]</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:write_converters) # =&gt; nil</div><div class='add'>+</div><div class='add'>+With no write converter:</div><div class='add'>+  str = CSV.generate_line(["\na\n", "\tb\t", " c "])</div><div class='add'>+  str # =&gt; "\"\na\n\",\tb\t, c \n"</div><div class='add'>+</div><div class='add'>+With a write converter:</div><div class='add'>+  strip_converter = proc {|field| field.strip }</div><div class='add'>+  str = CSV.generate_line(["\na\n", "\tb\t", " c "], write_converters: strip_converter)</div><div class='add'>+  str # =&gt; "a,b,c\n"</div><div class='add'>+</div><div class='add'>+With two write converters (called in order):</div><div class='add'>+  upcase_converter = proc {|field| field.upcase }</div><div class='add'>+  downcase_converter = proc {|field| field.downcase }</div><div class='add'>+  write_converters = [upcase_converter, downcase_converter]</div><div class='add'>+  str = CSV.generate_line(['a', 'b', 'c'], write_converters: write_converters)</div><div class='add'>+  str # =&gt; "a,b,c\n"</div><div class='add'>+</div><div class='add'>+See also {Write Converters}[#class-CSV-label-Write+Converters]</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+Raises an exception if the converter returns a value that is neither +nil+</div><div class='add'>+nor \String-convertible:</div><div class='add'>+  bad_converter = proc {|field| BasicObject.new }</div><div class='add'>+  # Raises NoMethodError (undefined method `is_a?' for #&lt;BasicObject:&gt;)</div><div class='add'>+  CSV.generate_line(['a', 'b', 'c'], write_converters: bad_converter)
\ No newline at end of file</div><div class='head'>diff --git a/doc/csv/options/generating/write_empty_value.rdoc b/doc/csv/options/generating/write_empty_value.rdoc<br/>new file mode 100644<br/>index 0000000000..67be5662cb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/generating/write_empty_value.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/generating/write_empty_value.rdoc</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+====== Option +write_empty_value+</div><div class='add'>+</div><div class='add'>+Specifies the object that is to be substituted for each field</div><div class='add'>+that has an empty \String.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:write_empty_value) # =&gt; ""</div><div class='add'>+</div><div class='add'>+Without the option:</div><div class='add'>+  str = CSV.generate_line(['a', '', 'c', ''])</div><div class='add'>+  str # =&gt; "a,\"\",c,\"\"\n"</div><div class='add'>+</div><div class='add'>+With the option:</div><div class='add'>+  str = CSV.generate_line(['a', '', 'c', ''], write_empty_value: "x")</div><div class='add'>+  str # =&gt; "a,x,c,x\n"</div><div class='head'>diff --git a/doc/csv/options/generating/write_headers.rdoc b/doc/csv/options/generating/write_headers.rdoc<br/>new file mode 100644<br/>index 0000000000..f9faa9d438<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/generating/write_headers.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/generating/write_headers.rdoc</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+====== Option +write_headers+</div><div class='add'>+</div><div class='add'>+Specifies the boolean that determines whether a header row is included in the output;</div><div class='add'>+ignored if there are no headers.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:write_headers) # =&gt; nil</div><div class='add'>+</div><div class='add'>+Without +write_headers+:</div><div class='add'>+  file_path = 't.csv'</div><div class='add'>+  CSV.open(file_path,'w',</div><div class='add'>+      :headers =&gt; ['Name','Value']</div><div class='add'>+    ) do |csv|</div><div class='add'>+      csv &lt;&lt; ['foo', '0']</div><div class='add'>+  end</div><div class='add'>+  CSV.open(file_path) do |csv|</div><div class='add'>+    csv.shift</div><div class='add'>+  end # =&gt; ["foo", "0"]</div><div class='add'>+</div><div class='add'>+With +write_headers+":</div><div class='add'>+  CSV.open(file_path,'w',</div><div class='add'>+      :write_headers=&gt; true,</div><div class='add'>+      :headers =&gt; ['Name','Value']</div><div class='add'>+    ) do |csv|</div><div class='add'>+      csv &lt;&lt; ['foo', '0']</div><div class='add'>+  end</div><div class='add'>+  CSV.open(file_path) do |csv|</div><div class='add'>+    csv.shift</div><div class='add'>+  end # =&gt; ["Name", "Value"]</div><div class='head'>diff --git a/doc/csv/options/generating/write_nil_value.rdoc b/doc/csv/options/generating/write_nil_value.rdoc<br/>new file mode 100644<br/>index 0000000000..65d33ff54e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/generating/write_nil_value.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/generating/write_nil_value.rdoc</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+====== Option +write_nil_value+</div><div class='add'>+</div><div class='add'>+Specifies the object that is to be substituted for each +nil+-valued field.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:write_nil_value) # =&gt; nil</div><div class='add'>+</div><div class='add'>+Without the option:</div><div class='add'>+  str = CSV.generate_line(['a', nil, 'c', nil])</div><div class='add'>+  str # =&gt; "a,,c,\n"</div><div class='add'>+</div><div class='add'>+With the option:</div><div class='add'>+  str = CSV.generate_line(['a', nil, 'c', nil], write_nil_value: "x")</div><div class='add'>+  str # =&gt; "a,x,c,x\n"</div><div class='head'>diff --git a/doc/csv/options/parsing/converters.rdoc b/doc/csv/options/parsing/converters.rdoc<br/>new file mode 100644<br/>index 0000000000..211fa48de6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/converters.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/converters.rdoc</a></div><div class='hunk'>@@ -0,0 +1,46 @@</div><div class='add'>+====== Option +converters+</div><div class='add'>+</div><div class='add'>+Specifies converters to be used in parsing fields.</div><div class='add'>+See {Field Converters}[#class-CSV-label-Field+Converters]</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:converters) # =&gt; nil</div><div class='add'>+</div><div class='add'>+The value may be a field converter name</div><div class='add'>+(see {Stored Converters}[#class-CSV-label-Stored+Converters]):</div><div class='add'>+  str = '1,2,3'</div><div class='add'>+  # Without a converter</div><div class='add'>+  array = CSV.parse_line(str)</div><div class='add'>+  array # =&gt; ["1", "2", "3"]</div><div class='add'>+  # With built-in converter :integer</div><div class='add'>+  array = CSV.parse_line(str, converters: :integer)</div><div class='add'>+  array # =&gt; [1, 2, 3]</div><div class='add'>+</div><div class='add'>+The value may be a converter list</div><div class='add'>+(see {Converter Lists}[#class-CSV-label-Converter+Lists]):</div><div class='add'>+  str = '1,3.14159'</div><div class='add'>+  # Without converters</div><div class='add'>+  array = CSV.parse_line(str)</div><div class='add'>+  array # =&gt; ["1", "3.14159"]</div><div class='add'>+  # With built-in converters</div><div class='add'>+  array = CSV.parse_line(str, converters: [:integer, :float])</div><div class='add'>+  array # =&gt; [1, 3.14159]</div><div class='add'>+</div><div class='add'>+The value may be a \Proc custom converter:</div><div class='add'>+(see {Custom Field Converters}[#class-CSV-label-Custom+Field+Converters]):</div><div class='add'>+  str = ' foo  ,  bar  ,  baz  '</div><div class='add'>+  # Without a converter</div><div class='add'>+  array = CSV.parse_line(str)</div><div class='add'>+  array # =&gt; [" foo  ", "  bar  ", "  baz  "]</div><div class='add'>+  # With a custom converter</div><div class='add'>+  array = CSV.parse_line(str, converters: proc {|field| field.strip })</div><div class='add'>+  array # =&gt; ["foo", "bar", "baz"]</div><div class='add'>+</div><div class='add'>+See also {Custom Field Converters}[#class-CSV-label-Custom+Field+Converters]</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+Raises an exception if the converter is not a converter name or a \Proc:</div><div class='add'>+  str = 'foo,0'</div><div class='add'>+  # Raises NoMethodError (undefined method `arity' for nil:NilClass)</div><div class='add'>+  CSV.parse(str, converters: :foo)</div><div class='head'>diff --git a/doc/csv/options/parsing/empty_value.rdoc b/doc/csv/options/parsing/empty_value.rdoc<br/>new file mode 100644<br/>index 0000000000..7d3bcc078c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/empty_value.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/empty_value.rdoc</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+====== Option +empty_value+</div><div class='add'>+</div><div class='add'>+Specifies the object that is to be substituted</div><div class='add'>+for each field that has an empty \String.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:empty_value) # =&gt; "" (empty string)</div><div class='add'>+</div><div class='add'>+With the default, &lt;tt&gt;""&lt;/tt&gt;:</div><div class='add'>+  CSV.parse_line('a,"",b,"",c') # =&gt; ["a", "", "b", "", "c"]</div><div class='add'>+</div><div class='add'>+With a different object:</div><div class='add'>+  CSV.parse_line('a,"",b,"",c', empty_value: 'x') # =&gt; ["a", "x", "b", "x", "c"]</div><div class='head'>diff --git a/doc/csv/options/parsing/field_size_limit.rdoc b/doc/csv/options/parsing/field_size_limit.rdoc<br/>new file mode 100644<br/>index 0000000000..797c5776fc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/field_size_limit.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/field_size_limit.rdoc</a></div><div class='hunk'>@@ -0,0 +1,39 @@</div><div class='add'>+====== Option +field_size_limit+</div><div class='add'>+</div><div class='add'>+Specifies the \Integer field size limit.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:field_size_limit) # =&gt; nil</div><div class='add'>+</div><div class='add'>+This is a maximum size CSV will read ahead looking for the closing quote for a field.</div><div class='add'>+(In truth, it reads to the first line ending beyond this size.)</div><div class='add'>+If a quote cannot be found within the limit CSV will raise a MalformedCSVError,</div><div class='add'>+assuming the data is faulty.</div><div class='add'>+You can use this limit to prevent what are effectively DoS attacks on the parser.</div><div class='add'>+However, this limit can cause a legitimate parse to fail;</div><div class='add'>+therefore the default value is +nil+ (no limit).</div><div class='add'>+</div><div class='add'>+For the examples in this section:</div><div class='add'>+  str = &lt;&lt;~EOT</div><div class='add'>+    "a","b"</div><div class='add'>+    "</div><div class='add'>+    2345</div><div class='add'>+    ",""</div><div class='add'>+  EOT</div><div class='add'>+  str # =&gt; "\"a\",\"b\"\n\"\n2345\n\",\"\"\n"</div><div class='add'>+</div><div class='add'>+Using the default +nil+:</div><div class='add'>+  ary = CSV.parse(str)</div><div class='add'>+  ary # =&gt; [["a", "b"], ["\n2345\n", ""]]</div><div class='add'>+</div><div class='add'>+Using &lt;tt&gt;50&lt;/tt&gt;:</div><div class='add'>+  field_size_limit = 50</div><div class='add'>+  ary = CSV.parse(str, field_size_limit: field_size_limit)</div><div class='add'>+  ary # =&gt; [["a", "b"], ["\n2345\n", ""]]</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+Raises an exception if a field is too long:</div><div class='add'>+  big_str = "123456789\n" * 1024</div><div class='add'>+  # Raises CSV::MalformedCSVError (Field size exceeded in line 1.)</div><div class='add'>+  CSV.parse('valid,fields,"' + big_str + '"', field_size_limit: 2048)</div><div class='head'>diff --git a/doc/csv/options/parsing/header_converters.rdoc b/doc/csv/options/parsing/header_converters.rdoc<br/>new file mode 100644<br/>index 0000000000..309180805f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/header_converters.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/header_converters.rdoc</a></div><div class='hunk'>@@ -0,0 +1,43 @@</div><div class='add'>+====== Option +header_converters+</div><div class='add'>+</div><div class='add'>+Specifies converters to be used in parsing headers.</div><div class='add'>+See {Header Converters}[#class-CSV-label-Header+Converters]</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:header_converters) # =&gt; nil</div><div class='add'>+</div><div class='add'>+Identical in functionality to option {converters}[#class-CSV-label-Option+converters]</div><div class='add'>+except that:</div><div class='add'>+- The converters apply only to the header row.</div><div class='add'>+- The built-in header converters are +:downcase+ and +:symbol+.</div><div class='add'>+</div><div class='add'>+This section assumes prior execution of:</div><div class='add'>+  str = &lt;&lt;-EOT</div><div class='add'>+  Name,Value</div><div class='add'>+  foo,0</div><div class='add'>+  bar,1</div><div class='add'>+  baz,2</div><div class='add'>+  EOT</div><div class='add'>+  # With no header converter</div><div class='add'>+  table = CSV.parse(str, headers: true)</div><div class='add'>+  table.headers # =&gt; ["Name", "Value"]</div><div class='add'>+</div><div class='add'>+The value may be a header converter name</div><div class='add'>+(see {Stored Converters}[#class-CSV-label-Stored+Converters]):</div><div class='add'>+  table = CSV.parse(str, headers: true, header_converters: :downcase)</div><div class='add'>+  table.headers # =&gt; ["name", "value"]</div><div class='add'>+</div><div class='add'>+The value may be a converter list</div><div class='add'>+(see {Converter Lists}[#class-CSV-label-Converter+Lists]):</div><div class='add'>+  header_converters = [:downcase, :symbol]</div><div class='add'>+  table = CSV.parse(str, headers: true, header_converters: header_converters)</div><div class='add'>+  table.headers # =&gt; [:name, :value]</div><div class='add'>+</div><div class='add'>+The value may be a \Proc custom converter</div><div class='add'>+(see {Custom Header Converters}[#class-CSV-label-Custom+Header+Converters]):</div><div class='add'>+  upcase_converter = proc {|field| field.upcase }</div><div class='add'>+  table = CSV.parse(str, headers: true, header_converters: upcase_converter)</div><div class='add'>+  table.headers # =&gt; ["NAME", "VALUE"]</div><div class='add'>+</div><div class='add'>+See also {Custom Header Converters}[#class-CSV-label-Custom+Header+Converters]</div><div class='add'>+</div><div class='head'>diff --git a/doc/csv/options/parsing/headers.rdoc b/doc/csv/options/parsing/headers.rdoc<br/>new file mode 100644<br/>index 0000000000..0ea151f24b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/headers.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/headers.rdoc</a></div><div class='hunk'>@@ -0,0 +1,63 @@</div><div class='add'>+====== Option +headers+</div><div class='add'>+</div><div class='add'>+Specifies a boolean, \Symbol, \Array, or \String to be used</div><div class='add'>+to define column headers.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:headers) # =&gt; false</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+Without +headers+:</div><div class='add'>+  str = &lt;&lt;-EOT</div><div class='add'>+  Name,Count</div><div class='add'>+  foo,0</div><div class='add'>+  bar,1</div><div class='add'>+  bax,2</div><div class='add'>+  EOT</div><div class='add'>+  csv = CSV.new(str)</div><div class='add'>+  csv # =&gt; #&lt;CSV io_type:StringIO encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\""&gt;</div><div class='add'>+  csv.headers # =&gt; nil</div><div class='add'>+  csv.shift # =&gt; ["Name", "Count"]</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+If set to +true+ or the \Symbol +:first_row+,</div><div class='add'>+the first row of the data is treated as a row of headers:</div><div class='add'>+  str = &lt;&lt;-EOT</div><div class='add'>+  Name,Count</div><div class='add'>+  foo,0</div><div class='add'>+  bar,1</div><div class='add'>+  bax,2</div><div class='add'>+  EOT</div><div class='add'>+  csv = CSV.new(str, headers: true)</div><div class='add'>+  csv # =&gt; #&lt;CSV io_type:StringIO encoding:UTF-8 lineno:2 col_sep:"," row_sep:"\n" quote_char:"\"" headers:["Name", "Count"]&gt;</div><div class='add'>+  csv.headers # =&gt; ["Name", "Count"]</div><div class='add'>+  csv.shift # =&gt; #&lt;CSV::Row "Name":"bar" "Count":"1"&gt;</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+If set to an \Array, the \Array elements are treated as headers:</div><div class='add'>+  str = &lt;&lt;-EOT</div><div class='add'>+  foo,0</div><div class='add'>+  bar,1</div><div class='add'>+  bax,2</div><div class='add'>+  EOT</div><div class='add'>+  csv = CSV.new(str, headers: ['Name', 'Count'])</div><div class='add'>+  csv</div><div class='add'>+  csv.headers # =&gt; ["Name", "Count"]</div><div class='add'>+  csv.shift # =&gt; #&lt;CSV::Row "Name":"bar" "Count":"1"&gt;</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+If set to a \String +str+, method &lt;tt&gt;CSV::parse_line(str, options)&lt;/tt&gt; is called</div><div class='add'>+with the current +options+, and the returned \Array is treated as headers:</div><div class='add'>+  str = &lt;&lt;-EOT</div><div class='add'>+  foo,0</div><div class='add'>+  bar,1</div><div class='add'>+  bax,2</div><div class='add'>+  EOT</div><div class='add'>+  csv = CSV.new(str, headers: 'Name,Count')</div><div class='add'>+  csv</div><div class='add'>+  csv.headers # =&gt; ["Name", "Count"]</div><div class='add'>+  csv.shift # =&gt; #&lt;CSV::Row "Name":"bar" "Count":"1"&gt;</div><div class='head'>diff --git a/doc/csv/options/parsing/liberal_parsing.rdoc b/doc/csv/options/parsing/liberal_parsing.rdoc<br/>new file mode 100644<br/>index 0000000000..b8b9b00c98<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/liberal_parsing.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/liberal_parsing.rdoc</a></div><div class='hunk'>@@ -0,0 +1,19 @@</div><div class='add'>+====== Option +liberal_parsing+</div><div class='add'>+</div><div class='add'>+Specifies the boolean value that determines whether</div><div class='add'>+CSV will attempt to parse input not conformant with RFC 4180,</div><div class='add'>+such as double quotes in unquoted fields.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:liberal_parsing) # =&gt; false</div><div class='add'>+</div><div class='add'>+For examples in this section:</div><div class='add'>+  str = 'is,this "three, or four",fields'</div><div class='add'>+</div><div class='add'>+Without +liberal_parsing+:</div><div class='add'>+  # Raises CSV::MalformedCSVError (Illegal quoting in str 1.)</div><div class='add'>+  CSV.parse_line(str)</div><div class='add'>+</div><div class='add'>+With +liberal_parsing+:</div><div class='add'>+  ary = CSV.parse_line(str, liberal_parsing: true)</div><div class='add'>+  ary # =&gt; ["is", "this \"three", " or four\"", "fields"]</div><div class='head'>diff --git a/doc/csv/options/parsing/nil_value.rdoc b/doc/csv/options/parsing/nil_value.rdoc<br/>new file mode 100644<br/>index 0000000000..412e8795e8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/nil_value.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/nil_value.rdoc</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+====== Option +nil_value+</div><div class='add'>+</div><div class='add'>+Specifies the object that is to be substituted for each null (no-text) field.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:nil_value) # =&gt; nil</div><div class='add'>+</div><div class='add'>+With the default, +nil+:</div><div class='add'>+  CSV.parse_line('a,,b,,c') # =&gt; ["a", nil, "b", nil, "c"]</div><div class='add'>+</div><div class='add'>+With a different object:</div><div class='add'>+  CSV.parse_line('a,,b,,c', nil_value: 0) # =&gt; ["a", 0, "b", 0, "c"]</div><div class='head'>diff --git a/doc/csv/options/parsing/return_headers.rdoc b/doc/csv/options/parsing/return_headers.rdoc<br/>new file mode 100644<br/>index 0000000000..45d2e3f3de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/return_headers.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/return_headers.rdoc</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+====== Option +return_headers+</div><div class='add'>+</div><div class='add'>+Specifies the boolean that determines whether method #shift</div><div class='add'>+returns or ignores the header row.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:return_headers) # =&gt; false</div><div class='add'>+</div><div class='add'>+Examples:</div><div class='add'>+  str = &lt;&lt;-EOT</div><div class='add'>+  Name,Count</div><div class='add'>+  foo,0</div><div class='add'>+  bar,1</div><div class='add'>+  bax,2</div><div class='add'>+  EOT</div><div class='add'>+  # Without return_headers first row is str.</div><div class='add'>+  csv = CSV.new(str, headers: true)</div><div class='add'>+  csv.shift # =&gt; #&lt;CSV::Row "Name":"foo" "Count":"0"&gt;</div><div class='add'>+  # With return_headers first row is headers.</div><div class='add'>+  csv = CSV.new(str, headers: true, return_headers: true)</div><div class='add'>+  csv.shift # =&gt; #&lt;CSV::Row "Name":"Name" "Count":"Count"&gt;</div><div class='add'>+</div><div class='head'>diff --git a/doc/csv/options/parsing/skip_blanks.rdoc b/doc/csv/options/parsing/skip_blanks.rdoc<br/>new file mode 100644<br/>index 0000000000..2c8f7b7bb8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/skip_blanks.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/skip_blanks.rdoc</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+====== Option +skip_blanks+</div><div class='add'>+</div><div class='add'>+Specifies a boolean that determines whether blank lines in the input will be ignored;</div><div class='add'>+a line that contains a column separator is not considered to be blank.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:skip_blanks) # =&gt; false</div><div class='add'>+</div><div class='add'>+See also option {skiplines}[#class-CSV-label-Option+skip_lines].</div><div class='add'>+</div><div class='add'>+For examples in this section:</div><div class='add'>+  str = &lt;&lt;-EOT</div><div class='add'>+  foo,0</div><div class='add'>+</div><div class='add'>+  bar,1</div><div class='add'>+  baz,2</div><div class='add'>+</div><div class='add'>+  ,</div><div class='add'>+  EOT</div><div class='add'>+</div><div class='add'>+Using the default, +false+:</div><div class='add'>+  ary = CSV.parse(str)</div><div class='add'>+  ary # =&gt; [["foo", "0"], [], ["bar", "1"], ["baz", "2"], [], [nil, nil]]</div><div class='add'>+</div><div class='add'>+Using +true+:</div><div class='add'>+  ary = CSV.parse(str, skip_blanks: true)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"], [nil, nil]]</div><div class='add'>+</div><div class='add'>+Using a truthy value:</div><div class='add'>+  ary = CSV.parse(str, skip_blanks: :foo)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"], [nil, nil]]</div><div class='head'>diff --git a/doc/csv/options/parsing/skip_lines.rdoc b/doc/csv/options/parsing/skip_lines.rdoc<br/>new file mode 100644<br/>index 0000000000..1481c40a5f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/skip_lines.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/skip_lines.rdoc</a></div><div class='hunk'>@@ -0,0 +1,37 @@</div><div class='add'>+====== Option +skip_lines+</div><div class='add'>+</div><div class='add'>+Specifies an object to use in identifying comment lines in the input that are to be ignored:</div><div class='add'>+* If a \Regexp, ignores lines that match it.</div><div class='add'>+* If a \String, converts it to a \Regexp, ignores lines that match it.</div><div class='add'>+* If +nil+, no lines are considered to be comments.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:skip_lines) # =&gt; nil</div><div class='add'>+</div><div class='add'>+For examples in this section:</div><div class='add'>+  str = &lt;&lt;-EOT</div><div class='add'>+  # Comment</div><div class='add'>+  foo,0</div><div class='add'>+  bar,1</div><div class='add'>+  baz,2</div><div class='add'>+  # Another comment</div><div class='add'>+  EOT</div><div class='add'>+  str # =&gt; "# Comment\nfoo,0\nbar,1\nbaz,2\n# Another comment\n"</div><div class='add'>+</div><div class='add'>+Using the default, +nil+:</div><div class='add'>+  ary = CSV.parse(str)</div><div class='add'>+  ary # =&gt; [["# Comment"], ["foo", "0"], ["bar", "1"], ["baz", "2"], ["# Another comment"]]</div><div class='add'>+</div><div class='add'>+Using a \Regexp:</div><div class='add'>+  ary = CSV.parse(str, skip_lines: /^#/)</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+Using a \String:</div><div class='add'>+  ary = CSV.parse(str, skip_lines: '#')</div><div class='add'>+  ary # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+Raises an exception if given an object that is not a \Regexp, a \String, or +nil+:</div><div class='add'>+  # Raises ArgumentError (:skip_lines has to respond to #match: 0)</div><div class='add'>+  CSV.parse(str, skip_lines: 0)</div><div class='head'>diff --git a/doc/csv/options/parsing/strip.rdoc b/doc/csv/options/parsing/strip.rdoc<br/>new file mode 100644<br/>index 0000000000..56ae4310c3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/strip.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/strip.rdoc</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+====== Option +strip+</div><div class='add'>+</div><div class='add'>+Specifies the boolean value that determines whether</div><div class='add'>+whitespace is stripped from each input field.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:strip) # =&gt; false</div><div class='add'>+</div><div class='add'>+With default value +false+:</div><div class='add'>+  ary = CSV.parse_line(' a , b ')</div><div class='add'>+  ary # =&gt; [" a ", " b "]</div><div class='add'>+</div><div class='add'>+With value +true+:</div><div class='add'>+  ary = CSV.parse_line(' a , b ', strip: true)</div><div class='add'>+  ary # =&gt; ["a", "b"]</div><div class='head'>diff --git a/doc/csv/options/parsing/unconverted_fields.rdoc b/doc/csv/options/parsing/unconverted_fields.rdoc<br/>new file mode 100644<br/>index 0000000000..3e7f839d49<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/options/parsing/unconverted_fields.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/options/parsing/unconverted_fields.rdoc</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+====== Option +unconverted_fields+</div><div class='add'>+</div><div class='add'>+Specifies the boolean that determines whether unconverted field values are to be available.</div><div class='add'>+</div><div class='add'>+Default value:</div><div class='add'>+  CSV::DEFAULT_OPTIONS.fetch(:unconverted_fields) # =&gt; nil</div><div class='add'>+</div><div class='add'>+The unconverted field values are those found in the source data,</div><div class='add'>+prior to any conversions performed via option +converters+.</div><div class='add'>+</div><div class='add'>+When option +unconverted_fields+ is +true+,</div><div class='add'>+each returned row (\Array or \CSV::Row) has an added method,</div><div class='add'>++unconverted_fields+, that returns the unconverted field values:</div><div class='add'>+  str = &lt;&lt;-EOT</div><div class='add'>+  foo,0</div><div class='add'>+  bar,1</div><div class='add'>+  baz,2</div><div class='add'>+  EOT</div><div class='add'>+  # Without unconverted_fields</div><div class='add'>+  csv = CSV.parse(str, converters: :integer)</div><div class='add'>+  csv # =&gt; [["foo", 0], ["bar", 1], ["baz", 2]]</div><div class='add'>+  csv.first.respond_to?(:unconverted_fields) # =&gt; false</div><div class='add'>+  # With unconverted_fields</div><div class='add'>+  csv = CSV.parse(str, converters: :integer, unconverted_fields: true)</div><div class='add'>+  csv # =&gt; [["foo", 0], ["bar", 1], ["baz", 2]]</div><div class='add'>+  csv.first.respond_to?(:unconverted_fields) # =&gt; true</div><div class='add'>+  csv.first.unconverted_fields # =&gt; ["foo", "0"]</div><div class='head'>diff --git a/doc/csv/recipes/filtering.rdoc b/doc/csv/recipes/filtering.rdoc<br/>new file mode 100644<br/>index 0000000000..470649d09a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/recipes/filtering.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/recipes/filtering.rdoc</a></div><div class='hunk'>@@ -0,0 +1,156 @@</div><div class='add'>+== Recipes for Filtering \CSV</div><div class='add'>+</div><div class='add'>+For other recipes, see {Recipes for CSV}[./recipes_rdoc.html].</div><div class='add'>+</div><div class='add'>+All code snippets on this page assume that the following has been executed:</div><div class='add'>+  require 'csv'</div><div class='add'>+</div><div class='add'>+=== Contents</div><div class='add'>+</div><div class='add'>+- {Source and Output Formats}[#label-Source+and+Output+Formats]</div><div class='add'>+  - {Filtering String to String}[#label-Filtering+String+to+String]</div><div class='add'>+    - {Recipe: Filter String to String with Headers}[#label-Recipe-3A+Filter+String+to+String+with+Headers]</div><div class='add'>+    - {Recipe: Filter String to String Without Headers}[#label-Recipe-3A+Filter+String+to+String+Without+Headers]</div><div class='add'>+  - {Filtering String to IO Stream}[#label-Filtering+String+to+IO+Stream]</div><div class='add'>+    - {Recipe: Filter String to IO Stream with Headers}[#label-Recipe-3A+Filter+String+to+IO+Stream+with+Headers]</div><div class='add'>+    - {Recipe: Filter String to IO Stream Without Headers}[#label-Recipe-3A+Filter+String+to+IO+Stream+Without+Headers]</div><div class='add'>+  - {Filtering IO Stream to String}[#label-Filtering+IO+Stream+to+String]</div><div class='add'>+    - {Recipe: Filter IO Stream to String with Headers}[#label-Recipe-3A+Filter+IO+Stream+to+String+with+Headers]</div><div class='add'>+    - {Recipe: Filter IO Stream to String Without Headers}[#label-Recipe-3A+Filter+IO+Stream+to+String+Without+Headers]</div><div class='add'>+  - {Filtering IO Stream to IO Stream}[#label-Filtering+IO+Stream+to+IO+Stream]</div><div class='add'>+    - {Recipe: Filter IO Stream to IO Stream with Headers}[#label-Recipe-3A+Filter+IO+Stream+to+IO+Stream+with+Headers]</div><div class='add'>+    - {Recipe: Filter IO Stream to IO Stream Without Headers}[#label-Recipe-3A+Filter+IO+Stream+to+IO+Stream+Without+Headers]</div><div class='add'>+</div><div class='add'>+=== Source and Output Formats</div><div class='add'>+</div><div class='add'>+You can use a Unix-style "filter" for \CSV data.</div><div class='add'>+The filter reads source \CSV data and writes output \CSV data as modified by the filter.</div><div class='add'>+The input and output \CSV data may be any mixture of \Strings and \IO streams.</div><div class='add'>+</div><div class='add'>+==== Filtering \String to \String</div><div class='add'>+</div><div class='add'>+You can filter one \String to another, with or without headers.</div><div class='add'>+</div><div class='add'>+===== Recipe: Filter \String to \String with Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.filter with option +headers+ to filter a \String to another \String:</div><div class='add'>+  in_string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  out_string = ''</div><div class='add'>+  CSV.filter(in_string, out_string, headers: true) do |row|</div><div class='add'>+    row[0] = row[0].upcase</div><div class='add'>+    row[1] *= 4</div><div class='add'>+  end</div><div class='add'>+  out_string # =&gt; "Name,Value\nFOO,0000\nBAR,1111\nBAZ,2222\n"</div><div class='add'>+</div><div class='add'>+===== Recipe: Filter \String to \String Without Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.filter without option +headers+ to filter a \String to another \String:</div><div class='add'>+  in_string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  out_string = ''</div><div class='add'>+  CSV.filter(in_string, out_string) do |row|</div><div class='add'>+    row[0] = row[0].upcase</div><div class='add'>+    row[1] *= 4</div><div class='add'>+  end</div><div class='add'>+  out_string # =&gt; "FOO,0000\nBAR,1111\nBAZ,2222\n"</div><div class='add'>+</div><div class='add'>+==== Filtering \String to \IO Stream</div><div class='add'>+</div><div class='add'>+You can filter a \String to an \IO stream, with or without headers.</div><div class='add'>+</div><div class='add'>+===== Recipe: Filter \String to \IO Stream with Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.filter with option +headers+ to filter a \String to an \IO stream:</div><div class='add'>+  in_string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  File.open(path, 'w') do |out_io|</div><div class='add'>+    CSV.filter(in_string, out_io, headers: true) do |row|</div><div class='add'>+      row[0] = row[0].upcase</div><div class='add'>+      row[1] *= 4</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  p File.read(path) # =&gt; "Name,Value\nFOO,0000\nBAR,1111\nBAZ,2222\n"</div><div class='add'>+</div><div class='add'>+===== Recipe: Filter \String to \IO Stream Without Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.filter without option +headers+ to filter a \String to an \IO stream:</div><div class='add'>+  in_string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  File.open(path, 'w') do |out_io|</div><div class='add'>+    CSV.filter(in_string, out_io) do |row|</div><div class='add'>+      row[0] = row[0].upcase</div><div class='add'>+      row[1] *= 4</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  p File.read(path) # =&gt; "FOO,0000\nBAR,1111\nBAZ,2222\n"</div><div class='add'>+</div><div class='add'>+==== Filtering \IO Stream to \String</div><div class='add'>+</div><div class='add'>+You can filter an \IO stream to a \String, with or without headers.</div><div class='add'>+</div><div class='add'>+===== Recipe: Filter \IO Stream to \String with Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.filter with option +headers+ to filter an \IO stream to a \String:</div><div class='add'>+  in_string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  File.write(path, in_string)</div><div class='add'>+  out_string = ''</div><div class='add'>+  File.open(path, headers: true) do |in_io|</div><div class='add'>+    CSV.filter(in_io, out_string, headers: true) do |row|</div><div class='add'>+      row[0] = row[0].upcase</div><div class='add'>+      row[1] *= 4</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  out_string # =&gt; "Name,Value\nFOO,0000\nBAR,1111\nBAZ,2222\n"</div><div class='add'>+</div><div class='add'>+===== Recipe: Filter \IO Stream to \String Without Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.filter without option +headers+ to filter an \IO stream to a \String:</div><div class='add'>+  in_string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  File.write(path, in_string)</div><div class='add'>+  out_string = ''</div><div class='add'>+  File.open(path) do |in_io|</div><div class='add'>+    CSV.filter(in_io, out_string) do |row|</div><div class='add'>+      row[0] = row[0].upcase</div><div class='add'>+      row[1] *= 4</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  out_string # =&gt; "FOO,0000\nBAR,1111\nBAZ,2222\n"</div><div class='add'>+</div><div class='add'>+==== Filtering \IO Stream to \IO Stream</div><div class='add'>+</div><div class='add'>+You can filter an \IO stream to another \IO stream, with or without headers.</div><div class='add'>+</div><div class='add'>+===== Recipe: Filter \IO Stream to \IO Stream with Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.filter with option +headers+ to filter an \IO stream to another \IO stream:</div><div class='add'>+  in_path = 't.csv'</div><div class='add'>+  in_string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  File.write(in_path, in_string)</div><div class='add'>+  out_path = 'u.csv'</div><div class='add'>+  File.open(in_path) do |in_io|</div><div class='add'>+    File.open(out_path, 'w') do |out_io|</div><div class='add'>+      CSV.filter(in_io, out_io, headers: true) do |row|</div><div class='add'>+        row[0] = row[0].upcase</div><div class='add'>+        row[1] *= 4</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  p File.read(out_path) # =&gt; "Name,Value\nFOO,0000\nBAR,1111\nBAZ,2222\n"</div><div class='add'>+</div><div class='add'>+===== Recipe: Filter \IO Stream to \IO Stream Without Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.filter without option +headers+ to filter an \IO stream to another \IO stream:</div><div class='add'>+  in_path = 't.csv'</div><div class='add'>+  in_string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  File.write(in_path, in_string)</div><div class='add'>+  out_path = 'u.csv'</div><div class='add'>+  File.open(in_path) do |in_io|</div><div class='add'>+    File.open(out_path, 'w') do |out_io|</div><div class='add'>+      CSV.filter(in_io, out_io) do |row|</div><div class='add'>+        row[0] = row[0].upcase</div><div class='add'>+        row[1] *= 4</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  p File.read(out_path) # =&gt; "FOO,0000\nBAR,1111\nBAZ,2222\n"</div><div class='head'>diff --git a/doc/csv/recipes/generating.rdoc b/doc/csv/recipes/generating.rdoc<br/>new file mode 100644<br/>index 0000000000..3ef6df99b4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/recipes/generating.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/recipes/generating.rdoc</a></div><div class='hunk'>@@ -0,0 +1,244 @@</div><div class='add'>+== Recipes for Generating \CSV</div><div class='add'>+</div><div class='add'>+For other recipes, see {Recipes for CSV}[./recipes_rdoc.html].</div><div class='add'>+</div><div class='add'>+All code snippets on this page assume that the following has been executed:</div><div class='add'>+  require 'csv'</div><div class='add'>+</div><div class='add'>+=== Contents</div><div class='add'>+</div><div class='add'>+- {Output Formats}[#label-Output+Formats]</div><div class='add'>+  - {Generating to a String}[#label-Generating+to+a+String]</div><div class='add'>+    - {Recipe: Generate to String with Headers}[#label-Recipe-3A+Generate+to+String+with+Headers]</div><div class='add'>+    - {Recipe: Generate to String Without Headers}[#label-Recipe-3A+Generate+to+String+Without+Headers]</div><div class='add'>+  - {Generating to a File}[#label-Generating+to+a+File]</div><div class='add'>+    - {Recipe: Generate to File with Headers}[#label-Recipe-3A+Generate+to+File+with+Headers]</div><div class='add'>+    - {Recipe: Generate to File Without Headers}[#label-Recipe-3A+Generate+to+File+Without+Headers]</div><div class='add'>+  - {Generating to IO an Stream}[#label-Generating+to+an+IO+Stream]</div><div class='add'>+    - {Recipe: Generate to IO Stream with Headers}[#label-Recipe-3A+Generate+to+IO+Stream+with+Headers]</div><div class='add'>+    - {Recipe: Generate to IO Stream Without Headers}[#label-Recipe-3A+Generate+to+IO+Stream+Without+Headers]</div><div class='add'>+- {Converting Fields}[#label-Converting+Fields]</div><div class='add'>+  - {Recipe: Filter Generated Field Strings}[#label-Recipe-3A+Filter+Generated+Field+Strings]</div><div class='add'>+  - {Recipe: Specify Multiple Write Converters}[#label-Recipe-3A+Specify+Multiple+Write+Converters]</div><div class='add'>+- {RFC 4180 Compliance}[#label-RFC+4180+Compliance]</div><div class='add'>+  - {Row Separator}[#label-Row+Separator]</div><div class='add'>+    - {Recipe: Generate Compliant Row Separator}[#label-Recipe-3A+Generate+Compliant+Row+Separator]</div><div class='add'>+    - {Recipe: Generate Non-Compliant Row Separator}[#label-Recipe-3A+Generate+Non-Compliant+Row+Separator]</div><div class='add'>+  - {Column Separator}[#label-Column+Separator]</div><div class='add'>+    - {Recipe: Generate Compliant Column Separator}[#label-Recipe-3A+Generate+Compliant+Column+Separator]</div><div class='add'>+    - {Recipe: Generate Non-Compliant Column Separator}[#label-Recipe-3A+Generate+Non-Compliant+Column+Separator]</div><div class='add'>+  - {Quote Character}[#label-Quote+Character]</div><div class='add'>+    - {Recipe: Generate Compliant Quote Character}[#label-Recipe-3A+Generate+Compliant+Quote+Character]</div><div class='add'>+    - {Recipe: Generate Non-Compliant Quote Character}[#label-Recipe-3A+Generate+Non-Compliant+Quote+Character]</div><div class='add'>+</div><div class='add'>+=== Output Formats</div><div class='add'>+</div><div class='add'>+You can generate \CSV output to a \String, to a \File (via its path), or to an \IO stream.</div><div class='add'>+</div><div class='add'>+==== Generating to a \String</div><div class='add'>+</div><div class='add'>+You can generate \CSV output to a \String, with or without headers.</div><div class='add'>+</div><div class='add'>+===== Recipe: Generate to \String with Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.generate with option +headers+ to generate to a \String.</div><div class='add'>+</div><div class='add'>+This example uses method CSV#&lt;&lt; to append the rows</div><div class='add'>+that are to be generated:</div><div class='add'>+  output_string = CSV.generate('', headers: ['Name', 'Value'], write_headers: true) do |csv|</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  output_string # =&gt; "Name,Value\nFoo,0\nBar,1\nBaz,2\n"</div><div class='add'>+</div><div class='add'>+===== Recipe: Generate to \String Without Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.generate without option +headers+ to generate to a \String.</div><div class='add'>+</div><div class='add'>+This example uses method CSV#&lt;&lt; to append the rows</div><div class='add'>+that are to be generated:</div><div class='add'>+  output_string = CSV.generate do |csv|</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  output_string # =&gt; "Foo,0\nBar,1\nBaz,2\n"</div><div class='add'>+</div><div class='add'>+==== Generating to a \File</div><div class='add'>+</div><div class='add'>+You can generate /CSV data to a \File, with or without headers.</div><div class='add'>+</div><div class='add'>+===== Recipe: Generate to \File with Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.open with option +headers+ generate to a \File.</div><div class='add'>+</div><div class='add'>+This example uses method CSV#&lt;&lt; to append the rows</div><div class='add'>+that are to be generated:</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  CSV.open(path, 'w', headers: ['Name', 'Value'], write_headers: true) do |csv|</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  p File.read(path) # =&gt; "Name,Value\nFoo,0\nBar,1\nBaz,2\n"</div><div class='add'>+</div><div class='add'>+===== Recipe: Generate to \File Without Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.open without option +headers+ to generate to a \File.</div><div class='add'>+</div><div class='add'>+This example uses method CSV#&lt;&lt; to append the rows</div><div class='add'>+that are to be generated:</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  CSV.open(path, 'w') do |csv|</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  p File.read(path) # =&gt; "Foo,0\nBar,1\nBaz,2\n"</div><div class='add'>+</div><div class='add'>+==== Generating to an \IO Stream</div><div class='add'>+</div><div class='add'>+You can generate \CSV data to an \IO stream, with or without headers.</div><div class='add'>+</div><div class='add'>+==== Recipe: Generate to \IO Stream with Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.new with option +headers+ to generate \CSV data to an \IO stream:</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  File.open(path, 'w') do |file|</div><div class='add'>+    csv = CSV.new(file, headers: ['Name', 'Value'], write_headers: true)</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  p File.read(path) # =&gt; "Name,Value\nFoo,0\nBar,1\nBaz,2\n"</div><div class='add'>+</div><div class='add'>+===== Recipe: Generate to \IO Stream Without Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.new without option +headers+ to generate \CSV data to an \IO stream:</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  File.open(path, 'w') do |file|</div><div class='add'>+    csv = CSV.new(file)</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  p File.read(path) # =&gt; "Foo,0\nBar,1\nBaz,2\n"</div><div class='add'>+</div><div class='add'>+=== Converting Fields</div><div class='add'>+</div><div class='add'>+You can use _write_ _converters_ to convert fields when generating \CSV.</div><div class='add'>+</div><div class='add'>+==== Recipe: Filter Generated Field Strings</div><div class='add'>+</div><div class='add'>+Use option &lt;tt&gt;:write_converters&lt;/tt&gt; and a custom converter to convert field values when generating \CSV.</div><div class='add'>+</div><div class='add'>+This example defines and uses a custom write converter to strip whitespace from generated fields:</div><div class='add'>+  strip_converter = proc {|field| field.respond_to?(:strip) ? field.strip : field }</div><div class='add'>+  output_string = CSV.generate(write_converters: strip_converter) do |csv|</div><div class='add'>+    csv &lt;&lt; [' foo ', 0]</div><div class='add'>+    csv &lt;&lt; [' bar ', 1]</div><div class='add'>+    csv &lt;&lt; [' baz ', 2]</div><div class='add'>+  end</div><div class='add'>+  output_string # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+</div><div class='add'>+==== Recipe: Specify Multiple Write Converters</div><div class='add'>+</div><div class='add'>+Use option &lt;tt&gt;:write_converters&lt;/tt&gt; and multiple custom coverters</div><div class='add'>+to convert field values when generating \CSV.</div><div class='add'>+</div><div class='add'>+This example defines and uses two custom write converters to strip and upcase generated fields:</div><div class='add'>+  strip_converter = proc {|field| field.respond_to?(:strip) ? field.strip : field }</div><div class='add'>+  upcase_converter = proc {|field| field.respond_to?(:upcase) ? field.upcase : field }</div><div class='add'>+  converters = [strip_converter, upcase_converter]</div><div class='add'>+  output_string = CSV.generate(write_converters: converters) do |csv|</div><div class='add'>+    csv &lt;&lt; [' foo ', 0]</div><div class='add'>+    csv &lt;&lt; [' bar ', 1]</div><div class='add'>+    csv &lt;&lt; [' baz ', 2]</div><div class='add'>+  end</div><div class='add'>+  output_string # =&gt; "FOO,0\nBAR,1\nBAZ,2\n"</div><div class='add'>+</div><div class='add'>+=== RFC 4180 Compliance</div><div class='add'>+</div><div class='add'>+By default, \CSV generates data that is compliant with</div><div class='add'>+{RFC 4180}[https://tools.ietf.org/html/rfc4180]</div><div class='add'>+with respect to:</div><div class='add'>+- Column separator.</div><div class='add'>+- Quote character.</div><div class='add'>+</div><div class='add'>+==== Row Separator</div><div class='add'>+</div><div class='add'>+RFC 4180 specifies the row separator CRLF (Ruby &lt;tt&gt;"\r\n"&lt;/tt&gt;).</div><div class='add'>+</div><div class='add'>+===== Recipe: Generate Compliant Row Separator</div><div class='add'>+</div><div class='add'>+For strict compliance, use option +:row_sep+ to specify row separator &lt;tt&gt;"\r\n"&lt;/tt&gt;:</div><div class='add'>+  output_string = CSV.generate('', row_sep: "\r\n") do |csv|</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  output_string # =&gt; "Foo,0\r\nBar,1\r\nBaz,2\r\n"</div><div class='add'>+</div><div class='add'>+===== Recipe: Generate Non-Compliant Row Separator</div><div class='add'>+</div><div class='add'>+For data with non-compliant row separators, use option +:row_sep+ with a different value:</div><div class='add'>+This example source uses semicolon (&lt;tt&gt;";'&lt;/tt&gt;) as its row separator:</div><div class='add'>+  output_string = CSV.generate('', row_sep: ";") do |csv|</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  output_string # =&gt; "Foo,0;Bar,1;Baz,2;"</div><div class='add'>+</div><div class='add'>+==== Column Separator</div><div class='add'>+</div><div class='add'>+RFC 4180 specifies column separator COMMA (Ruby &lt;tt&gt;","&lt;/tt&gt;).</div><div class='add'>+</div><div class='add'>+===== Recipe: Generate Compliant Column Separator</div><div class='add'>+</div><div class='add'>+Because the \CSV default comma separator is &lt;tt&gt;","&lt;/tt&gt;,</div><div class='add'>+you need not specify option +:col_sep+ for compliant data:</div><div class='add'>+  output_string = CSV.generate('') do |csv|</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  output_string # =&gt; "Foo,0\nBar,1\nBaz,2\n"</div><div class='add'>+</div><div class='add'>+===== Recipe: Generate Non-Compliant Column Separator</div><div class='add'>+</div><div class='add'>+For data with non-compliant column separators, use option +:col_sep+.</div><div class='add'>+This example source uses TAB (&lt;tt&gt;"\t"&lt;/tt&gt;) as its column separator:</div><div class='add'>+  output_string = CSV.generate('', col_sep: "\t") do |csv|</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  output_string # =&gt; "Foo\t0\nBar\t1\nBaz\t2\n"</div><div class='add'>+</div><div class='add'>+==== Quote Character</div><div class='add'>+</div><div class='add'>+RFC 4180 specifies quote character DQUOTE (Ruby &lt;tt&gt;"\""&lt;/tt&gt;).</div><div class='add'>+</div><div class='add'>+===== Recipe: Generate Compliant Quote Character</div><div class='add'>+</div><div class='add'>+Because the \CSV default quote character is &lt;tt&gt;"\""&lt;/tt&gt;,</div><div class='add'>+you need not specify option +:quote_char+ for compliant data:</div><div class='add'>+  output_string = CSV.generate('', force_quotes: true) do |csv|</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  output_string # =&gt; "\"Foo\",\"0\"\n\"Bar\",\"1\"\n\"Baz\",\"2\"\n"</div><div class='add'>+</div><div class='add'>+===== Recipe: Generate Non-Compliant Quote Character</div><div class='add'>+</div><div class='add'>+For data with non-compliant quote characters, use option +:quote_char+.</div><div class='add'>+This example source uses SQUOTE (&lt;tt&gt;"'"&lt;/tt&gt;) as its quote character:</div><div class='add'>+  output_string = CSV.generate('', quote_char: "'", force_quotes: true) do |csv|</div><div class='add'>+    csv &lt;&lt; ['Foo', 0]</div><div class='add'>+    csv &lt;&lt; ['Bar', 1]</div><div class='add'>+    csv &lt;&lt; ['Baz', 2]</div><div class='add'>+  end</div><div class='add'>+  output_string # =&gt; "'Foo','0'\n'Bar','1'\n'Baz','2'\n"</div><div class='head'>diff --git a/doc/csv/recipes/parsing.rdoc b/doc/csv/recipes/parsing.rdoc<br/>new file mode 100644<br/>index 0000000000..7ac96a934b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/recipes/parsing.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/recipes/parsing.rdoc</a></div><div class='hunk'>@@ -0,0 +1,543 @@</div><div class='add'>+== Recipes for Parsing \CSV</div><div class='add'>+</div><div class='add'>+For other recipes, see {Recipes for CSV}[./recipes_rdoc.html].</div><div class='add'>+</div><div class='add'>+All code snippets on this page assume that the following has been executed:</div><div class='add'>+  require 'csv'</div><div class='add'>+</div><div class='add'>+=== Contents</div><div class='add'>+</div><div class='add'>+- {Source Formats}[#label-Source+Formats]</div><div class='add'>+  - {Parsing from a String}[#label-Parsing+from+a+String]</div><div class='add'>+    - {Recipe: Parse from String with Headers}[#label-Recipe-3A+Parse+from+String+with+Headers]</div><div class='add'>+    - {Recipe: Parse from String Without Headers}[#label-Recipe-3A+Parse+from+String+Without+Headers]</div><div class='add'>+  - {Parsing from a File}[#label-Parsing+from+a+File]</div><div class='add'>+    - {Recipe: Parse from File with Headers}[#label-Recipe-3A+Parse+from+File+with+Headers]</div><div class='add'>+    - {Recipe: Parse from File Without Headers}[#label-Recipe-3A+Parse+from+File+Without+Headers]</div><div class='add'>+  - {Parsing from an IO Stream}[#label-Parsing+from+an+IO+Stream]</div><div class='add'>+    - {Recipe: Parse from IO Stream with Headers}[#label-Recipe-3A+Parse+from+IO+Stream+with+Headers]</div><div class='add'>+    - {Recipe: Parse from IO Stream Without Headers}[#label-Recipe-3A+Parse+from+IO+Stream+Without+Headers]</div><div class='add'>+- {RFC 4180 Compliance}[#label-RFC+4180+Compliance]</div><div class='add'>+  - {Row Separator}[#label-Row+Separator]</div><div class='add'>+    - {Recipe: Handle Compliant Row Separator}[#label-Recipe-3A+Handle+Compliant+Row+Separator]</div><div class='add'>+    - {Recipe: Handle Non-Compliant Row Separator}[#label-Recipe-3A+Handle+Non-Compliant+Row+Separator]</div><div class='add'>+  - {Column Separator}[#label-Column+Separator]</div><div class='add'>+    - {Recipe: Handle Compliant Column Separator}[#label-Recipe-3A+Handle+Compliant+Column+Separator]</div><div class='add'>+    - {Recipe: Handle Non-Compliant Column Separator}[#label-Recipe-3A+Handle+Non-Compliant+Column+Separator]</div><div class='add'>+  - {Quote Character}[#label-Quote+Character]</div><div class='add'>+    - {Recipe: Handle Compliant Quote Character}[#label-Recipe-3A+Handle+Compliant+Quote+Character]</div><div class='add'>+    - {Recipe: Handle Non-Compliant Quote Character}[#label-Recipe-3A+Handle+Non-Compliant+Quote+Character]</div><div class='add'>+  - {Recipe: Allow Liberal Parsing}[#label-Recipe-3A+Allow+Liberal+Parsing]</div><div class='add'>+- {Special Handling}[#label-Special+Handling]</div><div class='add'>+  - {Special Line Handling}[#label-Special+Line+Handling]</div><div class='add'>+    - {Recipe: Ignore Blank Lines}[#label-Recipe-3A+Ignore+Blank+Lines]</div><div class='add'>+    - {Recipe: Ignore Selected Lines}[#label-Recipe-3A+Ignore+Selected+Lines]</div><div class='add'>+  - {Special Field Handling}[#label-Special+Field+Handling]</div><div class='add'>+    - {Recipe: Strip Fields}[#label-Recipe-3A+Strip+Fields]</div><div class='add'>+    - {Recipe: Handle Null Fields}[#label-Recipe-3A+Handle+Null+Fields]</div><div class='add'>+    - {Recipe: Handle Empty Fields}[#label-Recipe-3A+Handle+Empty+Fields]</div><div class='add'>+- {Converting Fields}[#label-Converting+Fields]</div><div class='add'>+  - {Converting Fields to Objects}[#label-Converting+Fields+to+Objects]</div><div class='add'>+    - {Recipe: Convert Fields to Integers}[#label-Recipe-3A+Convert+Fields+to+Integers]</div><div class='add'>+    - {Recipe: Convert Fields to Floats}[#label-Recipe-3A+Convert+Fields+to+Floats]</div><div class='add'>+    - {Recipe: Convert Fields to Numerics}[#label-Recipe-3A+Convert+Fields+to+Numerics]</div><div class='add'>+    - {Recipe: Convert Fields to Dates}[#label-Recipe-3A+Convert+Fields+to+Dates]</div><div class='add'>+    - {Recipe: Convert Fields to DateTimes}[#label-Recipe-3A+Convert+Fields+to+DateTimes]</div><div class='add'>+    - {Recipe: Convert Assorted Fields to Objects}[#label-Recipe-3A+Convert+Assorted+Fields+to+Objects]</div><div class='add'>+    - {Recipe: Convert Fields to Other Objects}[#label-Recipe-3A+Convert+Fields+to+Other+Objects]</div><div class='add'>+  - {Recipe: Filter Field Strings}[#label-Recipe-3A+Filter+Field+Strings]</div><div class='add'>+  - {Recipe: Register Field Converters}[#label-Recipe-3A+Register+Field+Converters]</div><div class='add'>+  - {Using Multiple Field Converters}[#label-Using+Multiple+Field+Converters]</div><div class='add'>+    - {Recipe: Specify Multiple Field Converters in Option :converters}[#label-Recipe-3A+Specify+Multiple+Field+Converters+in+Option+-3Aconverters]</div><div class='add'>+    - {Recipe: Specify Multiple Field Converters in a Custom Converter List}[#label-Recipe-3A+Specify+Multiple+Field+Converters+in+a+Custom+Converter+List]</div><div class='add'>+- {Converting Headers}[#label-Converting+Headers]</div><div class='add'>+  - {Recipe: Convert Headers to Lowercase}[#label-Recipe-3A+Convert+Headers+to+Lowercase]</div><div class='add'>+  - {Recipe: Convert Headers to Symbols}[#label-Recipe-3A+Convert+Headers+to+Symbols]</div><div class='add'>+  - {Recipe: Filter Header Strings}[#label-Recipe-3A+Filter+Header+Strings]</div><div class='add'>+  - {Recipe: Register Header Converters}[#label-Recipe-3A+Register+Header+Converters]</div><div class='add'>+  - {Using Multiple Header Converters}[#label-Using+Multiple+Header+Converters]</div><div class='add'>+    - {Recipe: Specify Multiple Header Converters in Option :header_converters}[#label-Recipe-3A+Specify+Multiple+Header+Converters+in+Option+-3Aheader_converters]</div><div class='add'>+    - {Recipe: Specify Multiple Header Converters in a Custom Header Converter List}[#label-Recipe-3A+Specify+Multiple+Header+Converters+in+a+Custom+Header+Converter+List]</div><div class='add'>+- {Diagnostics}[#label-Diagnostics]</div><div class='add'>+  - {Recipe: Capture Unconverted Fields}[#label-Recipe-3A+Capture+Unconverted+Fields]</div><div class='add'>+  - {Recipe: Capture Field Info}[#label-Recipe-3A+Capture+Field+Info]</div><div class='add'>+</div><div class='add'>+=== Source Formats</div><div class='add'>+</div><div class='add'>+You can parse \CSV data from a \String, from a \File (via its path), or from an \IO stream.</div><div class='add'>+</div><div class='add'>+==== Parsing from a \String</div><div class='add'>+</div><div class='add'>+You can parse \CSV data from a \String, with or without headers.</div><div class='add'>+</div><div class='add'>+===== Recipe: Parse from \String with Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.parse with option +headers+ to read a source \String all at once</div><div class='add'>+(may have memory resource implications):</div><div class='add'>+  string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  CSV.parse(string, headers: true) # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+</div><div class='add'>+Use instance method CSV#each with option +headers+ to read a source \String one row at a time:</div><div class='add'>+  CSV.new(string, headers: true).each do |row|</div><div class='add'>+    p row</div><div class='add'>+  end</div><div class='add'>+Output:</div><div class='add'>+  #&lt;CSV::Row "Name":"foo" "Value":"0"&gt;</div><div class='add'>+  #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+  #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;</div><div class='add'>+</div><div class='add'>+===== Recipe: Parse from \String Without Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.parse without option +headers+ to read a source \String all at once</div><div class='add'>+(may have memory resource implications):</div><div class='add'>+  string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  CSV.parse(string) # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+Use instance method CSV#each without option +headers+ to read a source \String one row at a time:</div><div class='add'>+  CSV.new(string).each do |row|</div><div class='add'>+    p row</div><div class='add'>+  end</div><div class='add'>+Output:</div><div class='add'>+  ["foo", "0"]</div><div class='add'>+  ["bar", "1"]</div><div class='add'>+  ["baz", "2"]</div><div class='add'>+</div><div class='add'>+==== Parsing from a \File</div><div class='add'>+</div><div class='add'>+You can parse \CSV data from a \File, with or without headers.</div><div class='add'>+</div><div class='add'>+===== Recipe: Parse from \File with Headers</div><div class='add'>+</div><div class='add'>+Use instance method CSV#read with option +headers+ to read a file all at once:</div><div class='add'>+  string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  File.write(path, string)</div><div class='add'>+  CSV.read(path, headers: true) # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+</div><div class='add'>+Use class method CSV.foreach with option +headers+ to read one row at a time:</div><div class='add'>+  CSV.foreach(path, headers: true) do |row|</div><div class='add'>+    p row</div><div class='add'>+  end</div><div class='add'>+Output:</div><div class='add'>+  #&lt;CSV::Row "Name":"foo" "Value":"0"&gt;</div><div class='add'>+  #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+  #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;</div><div class='add'>+</div><div class='add'>+===== Recipe: Parse from \File Without Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.read without option +headers+ to read a file all at once:</div><div class='add'>+  string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  File.write(path, string)</div><div class='add'>+  CSV.read(path) # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+Use class method CSV.foreach without option +headers+ to read one row at a time:</div><div class='add'>+  CSV.foreach(path) do |row|</div><div class='add'>+    p row</div><div class='add'>+  end</div><div class='add'>+Output:</div><div class='add'>+  ["foo", "0"]</div><div class='add'>+  ["bar", "1"]</div><div class='add'>+  ["baz", "2"]</div><div class='add'>+</div><div class='add'>+==== Parsing from an \IO Stream</div><div class='add'>+</div><div class='add'>+You can parse \CSV data from an \IO stream, with or without headers.</div><div class='add'>+</div><div class='add'>+===== Recipe: Parse from \IO Stream with Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.parse with option +headers+ to read an \IO stream all at once:</div><div class='add'>+  string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  File.write(path, string)</div><div class='add'>+  File.open(path) do |file|</div><div class='add'>+    CSV.parse(file, headers: true)</div><div class='add'>+  end # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+</div><div class='add'>+Use class method CSV.foreach with option +headers+ to read one row at a time:</div><div class='add'>+  File.open(path) do |file|</div><div class='add'>+    CSV.foreach(file, headers: true) do |row|</div><div class='add'>+      p row</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+Output:</div><div class='add'>+  #&lt;CSV::Row "Name":"foo" "Value":"0"&gt;</div><div class='add'>+  #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+  #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;</div><div class='add'>+</div><div class='add'>+===== Recipe: Parse from \IO Stream Without Headers</div><div class='add'>+</div><div class='add'>+Use class method CSV.parse without option +headers+ to read an \IO stream all at once:</div><div class='add'>+  string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  path = 't.csv'</div><div class='add'>+  File.write(path, string)</div><div class='add'>+  File.open(path) do |file|</div><div class='add'>+    CSV.parse(file)</div><div class='add'>+  end # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+Use class method CSV.foreach without option +headers+ to read one row at a time:</div><div class='add'>+  File.open(path) do |file|</div><div class='add'>+    CSV.foreach(file) do |row|</div><div class='add'>+      p row</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+Output:</div><div class='add'>+  ["foo", "0"]</div><div class='add'>+  ["bar", "1"]</div><div class='add'>+  ["baz", "2"]</div><div class='add'>+</div><div class='add'>+=== RFC 4180 Compliance</div><div class='add'>+</div><div class='add'>+By default, \CSV parses data that is compliant with</div><div class='add'>+{RFC 4180}[https://tools.ietf.org/html/rfc4180]</div><div class='add'>+with respect to:</div><div class='add'>+- Row separator.</div><div class='add'>+- Column separator.</div><div class='add'>+- Quote character.</div><div class='add'>+</div><div class='add'>+==== Row Separator</div><div class='add'>+</div><div class='add'>+RFC 4180 specifies the row separator CRLF (Ruby &lt;tt&gt;"\r\n"&lt;/tt&gt;).</div><div class='add'>+</div><div class='add'>+Although the \CSV default row separator is &lt;tt&gt;"\n"&lt;/tt&gt;,</div><div class='add'>+the parser also by default handles row separator &lt;tt&gt;"\r"&lt;/tt&gt; and the RFC-compliant &lt;tt&gt;"\r\n"&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+===== Recipe: Handle Compliant Row Separator</div><div class='add'>+</div><div class='add'>+For strict compliance, use option +:row_sep+ to specify row separator &lt;tt&gt;"\r\n"&lt;/tt&gt;,</div><div class='add'>+which allows the compliant row separator:</div><div class='add'>+  source = "foo,1\r\nbar,1\r\nbaz,2\r\n"</div><div class='add'>+  CSV.parse(source, row_sep: "\r\n") # =&gt; [["foo", "1"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+But rejects other row separators:</div><div class='add'>+  source = "foo,1\nbar,1\nbaz,2\n"</div><div class='add'>+  CSV.parse(source, row_sep: "\r\n") # Raised MalformedCSVError</div><div class='add'>+  source = "foo,1\rbar,1\rbaz,2\r"</div><div class='add'>+  CSV.parse(source, row_sep: "\r\n") # Raised MalformedCSVError</div><div class='add'>+  source = "foo,1\n\rbar,1\n\rbaz,2\n\r"</div><div class='add'>+  CSV.parse(source, row_sep: "\r\n") # Raised MalformedCSVError</div><div class='add'>+</div><div class='add'>+===== Recipe: Handle Non-Compliant Row Separator</div><div class='add'>+</div><div class='add'>+For data with non-compliant row separators, use option +:row_sep+.</div><div class='add'>+This example source uses semicolon (&lt;tt&gt;";"&lt;/tt&gt;) as its row separator:</div><div class='add'>+  source = "foo,1;bar,1;baz,2;"</div><div class='add'>+  CSV.parse(source, row_sep: ';') # =&gt; [["foo", "1"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+==== Column Separator</div><div class='add'>+</div><div class='add'>+RFC 4180 specifies column separator COMMA (Ruby &lt;tt&gt;","&lt;/tt&gt;).</div><div class='add'>+</div><div class='add'>+===== Recipe: Handle Compliant Column Separator</div><div class='add'>+</div><div class='add'>+Because the \CSV default comma separator is ',',</div><div class='add'>+you need not specify option +:col_sep+ for compliant data:</div><div class='add'>+  source = "foo,1\nbar,1\nbaz,2\n"</div><div class='add'>+  CSV.parse(source) # =&gt; [["foo", "1"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+===== Recipe: Handle Non-Compliant Column Separator</div><div class='add'>+</div><div class='add'>+For data with non-compliant column separators, use option +:col_sep+.</div><div class='add'>+This example source uses TAB (&lt;tt&gt;"\t"&lt;/tt&gt;) as its column separator:</div><div class='add'>+  source = "foo,1\tbar,1\tbaz,2"</div><div class='add'>+  CSV.parse(source, col_sep: "\t") # =&gt; [["foo", "1"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+==== Quote Character</div><div class='add'>+</div><div class='add'>+RFC 4180 specifies quote character DQUOTE (Ruby &lt;tt&gt;"\""&lt;/tt&gt;).</div><div class='add'>+</div><div class='add'>+===== Recipe: Handle Compliant Quote Character</div><div class='add'>+</div><div class='add'>+Because the \CSV default quote character is &lt;tt&gt;"\""&lt;/tt&gt;,</div><div class='add'>+you need not specify option +:quote_char+ for compliant data:</div><div class='add'>+  source = "\"foo\",\"1\"\n\"bar\",\"1\"\n\"baz\",\"2\"\n"</div><div class='add'>+  CSV.parse(source) # =&gt; [["foo", "1"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+===== Recipe: Handle Non-Compliant Quote Character</div><div class='add'>+</div><div class='add'>+For data with non-compliant quote characters, use option +:quote_char+.</div><div class='add'>+This example source uses SQUOTE (&lt;tt&gt;"'"&lt;/tt&gt;) as its quote character:</div><div class='add'>+  source = "'foo','1'\n'bar','1'\n'baz','2'\n"</div><div class='add'>+  CSV.parse(source, quote_char: "'") # =&gt; [["foo", "1"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+==== Recipe: Allow Liberal Parsing</div><div class='add'>+</div><div class='add'>+Use option +:liberal_parsing+ to specify that \CSV should</div><div class='add'>+attempt to parse input not conformant with RFC 4180, such as double quotes in unquoted fields:</div><div class='add'>+  source = 'is,this "three, or four",fields'</div><div class='add'>+  CSV.parse(source) # Raises MalformedCSVError</div><div class='add'>+  CSV.parse(source, liberal_parsing: true) # =&gt; [["is", "this \"three", " or four\"", "fields"]]</div><div class='add'>+</div><div class='add'>+=== Special Handling</div><div class='add'>+</div><div class='add'>+You can use parsing options to specify special handling for certain lines and fields.</div><div class='add'>+</div><div class='add'>+==== Special Line Handling</div><div class='add'>+</div><div class='add'>+Use parsing options to specify special handling for blank lines, or for other selected lines.</div><div class='add'>+</div><div class='add'>+===== Recipe: Ignore Blank Lines</div><div class='add'>+</div><div class='add'>+Use option +:skip_blanks+ to ignore blank lines:</div><div class='add'>+  source = &lt;&lt;-EOT</div><div class='add'>+  foo,0</div><div class='add'>+</div><div class='add'>+  bar,1</div><div class='add'>+  baz,2</div><div class='add'>+</div><div class='add'>+  ,</div><div class='add'>+  EOT</div><div class='add'>+  parsed = CSV.parse(source, skip_blanks: true)</div><div class='add'>+  parsed # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"], [nil, nil]]</div><div class='add'>+</div><div class='add'>+===== Recipe: Ignore Selected Lines</div><div class='add'>+</div><div class='add'>+Use option +:skip_lines+ to ignore selected lines.</div><div class='add'>+  source = &lt;&lt;-EOT</div><div class='add'>+  # Comment</div><div class='add'>+  foo,0</div><div class='add'>+  bar,1</div><div class='add'>+  baz,2</div><div class='add'>+  # Another comment</div><div class='add'>+  EOT</div><div class='add'>+  parsed = CSV.parse(source, skip_lines: /^#/)</div><div class='add'>+  parsed # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+</div><div class='add'>+==== Special Field Handling</div><div class='add'>+</div><div class='add'>+Use parsing options to specify special handling for certain field values.</div><div class='add'>+</div><div class='add'>+===== Recipe: Strip Fields</div><div class='add'>+</div><div class='add'>+Use option +:strip+ to strip parsed field values:</div><div class='add'>+  CSV.parse_line(' a , b ', strip: true) # =&gt; ["a", "b"]</div><div class='add'>+</div><div class='add'>+===== Recipe: Handle Null Fields</div><div class='add'>+</div><div class='add'>+Use option +:nil_value+ to specify a value that will replace each field</div><div class='add'>+that is null (no text):</div><div class='add'>+  CSV.parse_line('a,,b,,c', nil_value: 0) # =&gt; ["a", 0, "b", 0, "c"]</div><div class='add'>+</div><div class='add'>+===== Recipe: Handle Empty Fields</div><div class='add'>+</div><div class='add'>+Use option +:empty_value+ to specify a value that will replace each field</div><div class='add'>+that is empty (\String of length 0);</div><div class='add'>+  CSV.parse_line('a,"",b,"",c', empty_value: 'x') # =&gt; ["a", "x", "b", "x", "c"]</div><div class='add'>+</div><div class='add'>+=== Converting Fields</div><div class='add'>+</div><div class='add'>+You can use field converters to change parsed \String fields into other objects,</div><div class='add'>+or to otherwise modify the \String fields.</div><div class='add'>+</div><div class='add'>+==== Converting Fields to Objects</div><div class='add'>+</div><div class='add'>+Use field converters to change parsed \String objects into other, more specific, objects.</div><div class='add'>+</div><div class='add'>+There are built-in field converters for converting to objects of certain classes:</div><div class='add'>+- \Float</div><div class='add'>+- \Integer</div><div class='add'>+- \Date</div><div class='add'>+- \DateTime</div><div class='add'>+</div><div class='add'>+Other built-in field converters include:</div><div class='add'>+- +:numeric+: converts to \Integer and \Float.</div><div class='add'>+- +:all+: converts to \DateTime, \Integer, \Float.</div><div class='add'>+</div><div class='add'>+You can also define field converters to convert to objects of other classes.</div><div class='add'>+</div><div class='add'>+===== Recipe: Convert Fields to Integers</div><div class='add'>+</div><div class='add'>+Convert fields to \Integer objects using built-in converter +:integer+:</div><div class='add'>+  source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, converters: :integer)</div><div class='add'>+  parsed.map {|row| row['Value'].class} # =&gt; [Integer, Integer, Integer]</div><div class='add'>+</div><div class='add'>+===== Recipe: Convert Fields to Floats</div><div class='add'>+</div><div class='add'>+Convert fields to \Float objects using built-in converter +:float+:</div><div class='add'>+  source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, converters: :float)</div><div class='add'>+  parsed.map {|row| row['Value'].class} # =&gt; [Float, Float, Float]</div><div class='add'>+</div><div class='add'>+===== Recipe: Convert Fields to Numerics</div><div class='add'>+</div><div class='add'>+Convert fields to \Integer and \Float objects using built-in converter +:numeric+:</div><div class='add'>+  source = "Name,Value\nfoo,0\nbar,1.1\nbaz,2.2\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, converters: :numeric)</div><div class='add'>+  parsed.map {|row| row['Value'].class} # =&gt; [Integer, Float, Float]</div><div class='add'>+</div><div class='add'>+===== Recipe: Convert Fields to Dates</div><div class='add'>+</div><div class='add'>+Convert fields to \Date objects using built-in converter +:date+:</div><div class='add'>+  source = "Name,Date\nfoo,2001-02-03\nbar,2001-02-04\nbaz,2001-02-03\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, converters: :date)</div><div class='add'>+  parsed.map {|row| row['Date'].class} # =&gt; [Date, Date, Date]</div><div class='add'>+</div><div class='add'>+===== Recipe: Convert Fields to DateTimes</div><div class='add'>+</div><div class='add'>+Convert fields to \DateTime objects using built-in converter +:date_time+:</div><div class='add'>+  source = "Name,DateTime\nfoo,2001-02-03\nbar,2001-02-04\nbaz,2020-05-07T14:59:00-05:00\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, converters: :date_time)</div><div class='add'>+  parsed.map {|row| row['DateTime'].class} # =&gt; [DateTime, DateTime, DateTime]</div><div class='add'>+</div><div class='add'>+===== Recipe: Convert Assorted Fields to Objects</div><div class='add'>+</div><div class='add'>+Convert assorted fields to objects using built-in converter +:all+:</div><div class='add'>+  source = "Type,Value\nInteger,0\nFloat,1.0\nDateTime,2001-02-04\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, converters: :all)</div><div class='add'>+  parsed.map {|row| row['Value'].class} # =&gt; [Integer, Float, DateTime]</div><div class='add'>+</div><div class='add'>+===== Recipe: Convert Fields to Other Objects</div><div class='add'>+</div><div class='add'>+Define a custom field converter to convert \String fields into other objects.</div><div class='add'>+This example defines and uses a custom field converter</div><div class='add'>+that converts each column-1 value to a \Rational object:</div><div class='add'>+  rational_converter = proc do |field, field_context|</div><div class='add'>+    field_context.index == 1 ? field.to_r : field</div><div class='add'>+  end</div><div class='add'>+  source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, converters: rational_converter)</div><div class='add'>+  parsed.map {|row| row['Value'].class} # =&gt; [Rational, Rational, Rational]</div><div class='add'>+</div><div class='add'>+==== Recipe: Filter Field Strings</div><div class='add'>+</div><div class='add'>+Define a custom field converter to modify \String fields.</div><div class='add'>+This example defines and uses a custom field converter</div><div class='add'>+that strips whitespace from each field value:</div><div class='add'>+  strip_converter = proc {|field| field.strip }</div><div class='add'>+  source = "Name,Value\n foo , 0 \n bar , 1 \n baz , 2 \n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, converters: strip_converter)</div><div class='add'>+  parsed['Name'] # =&gt; ["foo", "bar", "baz"]</div><div class='add'>+  parsed['Value'] # =&gt; ["0", "1", "2"]</div><div class='add'>+</div><div class='add'>+==== Recipe: Register Field Converters</div><div class='add'>+</div><div class='add'>+Register a custom field converter, assigning it a name;</div><div class='add'>+then refer to the converter by its name:</div><div class='add'>+  rational_converter = proc do |field, field_context|</div><div class='add'>+    field_context.index == 1 ? field.to_r : field</div><div class='add'>+  end</div><div class='add'>+  CSV::Converters[:rational] = rational_converter</div><div class='add'>+  source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, converters: :rational)</div><div class='add'>+  parsed['Value'] # =&gt; [(0/1), (1/1), (2/1)]</div><div class='add'>+</div><div class='add'>+==== Using Multiple Field Converters</div><div class='add'>+</div><div class='add'>+You can use multiple field converters in either of these ways:</div><div class='add'>+- Specify converters in option +:converters+.</div><div class='add'>+- Specify converters in a custom converter list.</div><div class='add'>+</div><div class='add'>+===== Recipe: Specify Multiple Field Converters in Option +:converters+</div><div class='add'>+</div><div class='add'>+Apply multiple field converters by specifying them in option +:converters+:</div><div class='add'>+  source = "Name,Value\nfoo,0\nbar,1.0\nbaz,2.0\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, converters: [:integer, :float])</div><div class='add'>+  parsed['Value'] # =&gt; [0, 1.0, 2.0]</div><div class='add'>+</div><div class='add'>+===== Recipe: Specify Multiple Field Converters in a Custom Converter List</div><div class='add'>+</div><div class='add'>+Apply multiple field converters by defining and registering a custom converter list:</div><div class='add'>+  strip_converter = proc {|field| field.strip }</div><div class='add'>+  CSV::Converters[:strip] = strip_converter</div><div class='add'>+  CSV::Converters[:my_converters] = [:integer, :float, :strip]</div><div class='add'>+  source = "Name,Value\n foo , 0 \n bar , 1.0 \n baz , 2.0 \n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, converters: :my_converters)</div><div class='add'>+  parsed['Name'] # =&gt; ["foo", "bar", "baz"]</div><div class='add'>+  parsed['Value'] # =&gt; [0, 1.0, 2.0]</div><div class='add'>+</div><div class='add'>+=== Converting Headers</div><div class='add'>+</div><div class='add'>+You can use header converters to modify parsed \String headers.</div><div class='add'>+</div><div class='add'>+Built-in header converters include:</div><div class='add'>+- +:symbol+: converts \String header to \Symbol.</div><div class='add'>+- +:downcase+: converts \String header to lowercase.</div><div class='add'>+</div><div class='add'>+You can also define header converters to otherwise modify header \Strings.</div><div class='add'>+</div><div class='add'>+==== Recipe: Convert Headers to Lowercase</div><div class='add'>+</div><div class='add'>+Convert headers to lowercase using built-in converter +:downcase+:</div><div class='add'>+  source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, header_converters: :downcase)</div><div class='add'>+  parsed.headers # =&gt; ["name", "value"]</div><div class='add'>+</div><div class='add'>+==== Recipe: Convert Headers to Symbols</div><div class='add'>+</div><div class='add'>+Convert headers to downcased Symbols using built-in converter +:symbol+:</div><div class='add'>+  source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, header_converters: :symbol)</div><div class='add'>+  parsed.headers # =&gt; [:name, :value]</div><div class='add'>+  parsed.headers.map {|header| header.class} # =&gt; [Symbol, Symbol]</div><div class='add'>+</div><div class='add'>+==== Recipe: Filter Header Strings</div><div class='add'>+</div><div class='add'>+Define a custom header converter to modify \String fields.</div><div class='add'>+This example defines and uses a custom header converter</div><div class='add'>+that capitalizes each header \String:</div><div class='add'>+  capitalize_converter = proc {|header| header.capitalize }</div><div class='add'>+  source = "NAME,VALUE\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, header_converters: capitalize_converter)</div><div class='add'>+  parsed.headers # =&gt; ["Name", "Value"]</div><div class='add'>+</div><div class='add'>+==== Recipe: Register Header Converters</div><div class='add'>+</div><div class='add'>+Register a custom header converter, assigning it a name;</div><div class='add'>+then refer to the converter by its name:</div><div class='add'>+  capitalize_converter = proc {|header| header.capitalize }</div><div class='add'>+  CSV::HeaderConverters[:capitalize] = capitalize_converter</div><div class='add'>+  source = "NAME,VALUE\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, header_converters: :capitalize)</div><div class='add'>+  parsed.headers # =&gt; ["Name", "Value"]</div><div class='add'>+</div><div class='add'>+==== Using Multiple Header Converters</div><div class='add'>+</div><div class='add'>+You can use multiple header converters in either of these ways:</div><div class='add'>+- Specify header converters in option +:header_converters+.</div><div class='add'>+- Specify header converters in a custom header converter list.</div><div class='add'>+</div><div class='add'>+===== Recipe: Specify Multiple Header Converters in Option :header_converters</div><div class='add'>+</div><div class='add'>+Apply multiple header converters by specifying them in option +:header_converters+:</div><div class='add'>+  source = "Name,Value\nfoo,0\nbar,1.0\nbaz,2.0\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, header_converters: [:downcase, :symbol])</div><div class='add'>+  parsed.headers # =&gt; [:name, :value]</div><div class='add'>+</div><div class='add'>+===== Recipe: Specify Multiple Header Converters in a Custom Header Converter List</div><div class='add'>+</div><div class='add'>+Apply multiple header converters by defining and registering a custom header converter list:</div><div class='add'>+  CSV::HeaderConverters[:my_header_converters] = [:symbol, :downcase]</div><div class='add'>+  source = "NAME,VALUE\nfoo,0\nbar,1.0\nbaz,2.0\n"</div><div class='add'>+  parsed = CSV.parse(source, headers: true, header_converters: :my_header_converters)</div><div class='add'>+  parsed.headers # =&gt; [:name, :value]</div><div class='add'>+</div><div class='add'>+=== Diagnostics</div><div class='add'>+</div><div class='add'>+==== Recipe: Capture Unconverted Fields</div><div class='add'>+</div><div class='add'>+To capture unconverted field values, use option +:unconverted_fields+:</div><div class='add'>+  source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  parsed = CSV.parse(source, converters: :integer, unconverted_fields: true)</div><div class='add'>+  parsed # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+  parsed.each {|row| p row.unconverted_fields }</div><div class='add'>+Output:</div><div class='add'>+  ["Name", "Value"]</div><div class='add'>+  ["foo", "0"]</div><div class='add'>+  ["bar", "1"]</div><div class='add'>+  ["baz", "2"]</div><div class='add'>+</div><div class='add'>+==== Recipe: Capture Field Info</div><div class='add'>+</div><div class='add'>+To capture field info in a custom converter, accept two block arguments.</div><div class='add'>+The first is the field value; the second is a +CSV::FieldInfo+ object:</div><div class='add'>+  strip_converter = proc {|field, field_info| p field_info; field.strip }</div><div class='add'>+  source = " foo , 0 \n bar , 1 \n baz , 2 \n"</div><div class='add'>+  parsed = CSV.parse(source, converters: strip_converter)</div><div class='add'>+  parsed # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+Output:</div><div class='add'>+  #&lt;struct CSV::FieldInfo index=0, line=1, header=nil&gt;</div><div class='add'>+  #&lt;struct CSV::FieldInfo index=1, line=1, header=nil&gt;</div><div class='add'>+  #&lt;struct CSV::FieldInfo index=0, line=2, header=nil&gt;</div><div class='add'>+  #&lt;struct CSV::FieldInfo index=1, line=2, header=nil&gt;</div><div class='add'>+  #&lt;struct CSV::FieldInfo index=0, line=3, header=nil&gt;</div><div class='add'>+  #&lt;struct CSV::FieldInfo index=1, line=3, header=nil&gt;</div><div class='head'>diff --git a/doc/csv/recipes/recipes.rdoc b/doc/csv/recipes/recipes.rdoc<br/>new file mode 100644<br/>index 0000000000..9e4eaa1da4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/csv/recipes/recipes.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/csv/recipes/recipes.rdoc</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+== Recipes for \CSV</div><div class='add'>+</div><div class='add'>+See:</div><div class='add'>+- {Recipes for Parsing CSV}[./parsing_rdoc.html]</div><div class='add'>+- {Recipes for Generating CSV}[./generating_rdoc.html]</div><div class='add'>+- {Recipes for Filtering CSV}[./filtering_rdoc.html]</div><div class='head'>diff --git a/doc/date/calendars.rdoc b/doc/date/calendars.rdoc<br/>new file mode 100644<br/>index 0000000000..b8690841b1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/date/calendars.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/date/calendars.rdoc</a></div><div class='hunk'>@@ -0,0 +1,62 @@</div><div class='add'>+== Julian and Gregorian Calendars</div><div class='add'>+</div><div class='add'>+The difference between the</div><div class='add'>+{Julian calendar}[https://en.wikipedia.org/wiki/Julian_calendar]</div><div class='add'>+and the</div><div class='add'>+{Gregorian calendar}[https://en.wikipedia.org/wiki/Gregorian_calendar]</div><div class='add'>+may matter to your program if it uses dates before the switchovers.</div><div class='add'>+</div><div class='add'>+- October 15, 1582.</div><div class='add'>+- September 14, 1752.</div><div class='add'>+</div><div class='add'>+A date will be different in the two calendars, in general.</div><div class='add'>+</div><div class='add'>+=== Different switchover dates</div><div class='add'>+</div><div class='add'>+The reasons for the difference are religious/political histories.</div><div class='add'>+</div><div class='add'>+- On October 15, 1582, several countries changed</div><div class='add'>+  from the Julian calendar to the Gregorian calendar;</div><div class='add'>+  these included Italy, Poland, Portugal, and Spain.</div><div class='add'>+  Other contries in the Western world retained the Julian calendar.</div><div class='add'>+- On September 14, 1752, most of the British empire</div><div class='add'>+  changed from the Julian calendar to the Gregorian calendar.</div><div class='add'>+</div><div class='add'>+When your code uses a date before these switchover dates,</div><div class='add'>+it will matter whether it considers the switchover date</div><div class='add'>+to be the earlier date or the later date (or neither).</div><div class='add'>+</div><div class='add'>+See also {a concrete example here}[rdoc-ref:DateTime@When+should+you+use+DateTime+and+when+should+you+use+Time-3F].</div><div class='add'>+</div><div class='add'>+=== Argument +start+</div><div class='add'>+</div><div class='add'>+Certain methods in class \Date handle differences in the</div><div class='add'>+{Julian and Gregorian calendars}[rdoc-ref:calendars.rdoc@Julian+and+Gregorian+Calendars]</div><div class='add'>+by accepting an optional argument +start+, whose value may be:</div><div class='add'>+</div><div class='add'>+- Date::ITALY (the default): the created date is Julian</div><div class='add'>+  if before October 15, 1582, Gregorian otherwise:</div><div class='add'>+</div><div class='add'>+      d = Date.new(1582, 10, 15)</div><div class='add'>+      d.prev_day.julian? # =&gt; true</div><div class='add'>+      d.julian?          # =&gt; false</div><div class='add'>+      d.gregorian?       # =&gt; true</div><div class='add'>+</div><div class='add'>+- Date::ENGLAND: the created date is Julian if before September 14, 1752,</div><div class='add'>+  Gregorian otherwise:</div><div class='add'>+</div><div class='add'>+    d = Date.new(1752, 9, 14, Date::ENGLAND)</div><div class='add'>+    d.prev_day.julian? # =&gt; true</div><div class='add'>+    d.julian?          # =&gt; false</div><div class='add'>+    d.gregorian?       # =&gt; true</div><div class='add'>+</div><div class='add'>+- Date::JULIAN: the created date is Julian regardless of its value:</div><div class='add'>+</div><div class='add'>+    d = Date.new(1582, 10, 15, Date::JULIAN)</div><div class='add'>+    d.julian? # =&gt; true</div><div class='add'>+</div><div class='add'>+- Date::GREGORIAN: the created date is Gregorian regardless of its value:</div><div class='add'>+</div><div class='add'>+    d = Date.new(1752, 9, 14, Date::GREGORIAN)</div><div class='add'>+    d.prev_day.gregorian? # =&gt; true</div><div class='add'>+</div><div class='head'>diff --git a/doc/dig_methods.rdoc b/doc/dig_methods.rdoc<br/>new file mode 100644<br/>index 0000000000..366275d451<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/dig_methods.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/dig_methods.rdoc</a></div><div class='hunk'>@@ -0,0 +1,82 @@</div><div class='add'>+= Dig Methods</div><div class='add'>+</div><div class='add'>+Ruby's +dig+ methods are useful for accessing nested data structures.</div><div class='add'>+</div><div class='add'>+Consider this data:</div><div class='add'>+    item = {</div><div class='add'>+      id: "0001",</div><div class='add'>+      type: "donut",</div><div class='add'>+      name: "Cake",</div><div class='add'>+      ppu: 0.55,</div><div class='add'>+      batters: {</div><div class='add'>+        batter: [</div><div class='add'>+          {id: "1001", type: "Regular"},</div><div class='add'>+          {id: "1002", type: "Chocolate"},</div><div class='add'>+          {id: "1003", type: "Blueberry"},</div><div class='add'>+          {id: "1004", type: "Devil's Food"}</div><div class='add'>+        ]</div><div class='add'>+      },</div><div class='add'>+      topping: [</div><div class='add'>+        {id: "5001", type: "None"},</div><div class='add'>+        {id: "5002", type: "Glazed"},</div><div class='add'>+        {id: "5005", type: "Sugar"},</div><div class='add'>+        {id: "5007", type: "Powdered Sugar"},</div><div class='add'>+        {id: "5006", type: "Chocolate with Sprinkles"},</div><div class='add'>+        {id: "5003", type: "Chocolate"},</div><div class='add'>+        {id: "5004", type: "Maple"}</div><div class='add'>+      ]</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+Without a +dig+ method, you can write:</div><div class='add'>+    item[:batters][:batter][1][:type] # =&gt; "Chocolate"</div><div class='add'>+</div><div class='add'>+With a +dig+ method, you can write:</div><div class='add'>+    item.dig(:batters, :batter, 1, :type) # =&gt; "Chocolate"</div><div class='add'>+</div><div class='add'>+Without a +dig+ method, you can write, erroneously</div><div class='add'>+(raises &lt;tt&gt;NoMethodError (undefined method `[]' for nil:NilClass)&lt;/tt&gt;):</div><div class='add'>+    item[:batters][:BATTER][1][:type]</div><div class='add'>+</div><div class='add'>+With a +dig+ method, you can write (still erroneously, but avoiding the exception):</div><div class='add'>+    item.dig(:batters, :BATTER, 1, :type) # =&gt; nil</div><div class='add'>+</div><div class='add'>+== Why Is +dig+ Better?</div><div class='add'>+</div><div class='add'>+- It has fewer syntactical elements (to get wrong).</div><div class='add'>+- It reads better.</div><div class='add'>+- It does not raise an exception if an item is not found.</div><div class='add'>+</div><div class='add'>+== How Does +dig+ Work?</div><div class='add'>+</div><div class='add'>+The call sequence is:</div><div class='add'>+  obj.dig(*identifiers)</div><div class='add'>+</div><div class='add'>+The +identifiers+ define a "path" into the nested data structures:</div><div class='add'>+- For each identifier in +identifiers+, calls method \#dig on a receiver</div><div class='add'>+  with that identifier.</div><div class='add'>+- The first receiver is +self+.</div><div class='add'>+- Each successive receiver is the value returned by the previous call to +dig+.</div><div class='add'>+- The value finally returned is the value returned by the last call to +dig+.</div><div class='add'>+</div><div class='add'>+A +dig+ method raises an exception if any receiver does not respond to \#dig:</div><div class='add'>+  h = { foo: 1 }</div><div class='add'>+  # Raises TypeError (Integer does not have #dig method):</div><div class='add'>+  h.dig(:foo, :bar)</div><div class='add'>+</div><div class='add'>+== What Else?</div><div class='add'>+</div><div class='add'>+The structure above has \Hash objects and \Array objects,</div><div class='add'>+both of which have instance method +dig+.</div><div class='add'>+</div><div class='add'>+Altogether there are six built-in Ruby classes that have method +dig+,</div><div class='add'>+three in the core classes and three in the standard library.</div><div class='add'>+</div><div class='add'>+In the core:</div><div class='add'>+- Array#dig: the first argument is an \Integer index.</div><div class='add'>+- Hash#dig: the first argument is a key.</div><div class='add'>+- Struct#dig: the first argument is a key.</div><div class='add'>+</div><div class='add'>+In the standard library:</div><div class='add'>+- OpenStruct#dig: the first argument is a \String name.</div><div class='add'>+- CSV::Table#dig: the first argument is an \Integer index or a \String header.</div><div class='add'>+- CSV::Row#dig: the first argument is an \Integer index or a \String header.</div><div class='head'>diff --git a/doc/dtrace_probes.rdoc b/doc/dtrace_probes.rdoc<br/>index d2cdd56902..1b20597ab4 100644<br/>--- a/<a href='/ruby.git/tree/doc/dtrace_probes.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/dtrace_probes.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/dtrace_probes.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/dtrace_probes.rdoc</a></div><div class='hunk'>@@ -52,15 +52,21 @@ with when they are fired and the arguments they take:</div><div class='ctx'> [ruby:::method-entry(classname, methodname, filename, lineno);]</div><div class='ctx'>   This probe is fired just before a method is entered.</div><div class='ctx'> </div><div class='del'>-    classname name of the class (a string)</div><div class='del'>-    methodname name of the method about to be executed (a string)</div><div class='del'>-    filename the file name where the method is _being called_ (a string)</div><div class='del'>-    lineno the line number where the method is _being called_ (an int)</div><div class='add'>+  classname::    name of the class (a string)</div><div class='add'>+  methodname::   name of the method about to be executed (a string)</div><div class='add'>+  filename::     the file name where the method is _being called_ (a string)</div><div class='add'>+  lineno::       the line number where the method is _being called_ (an int)</div><div class='add'>+</div><div class='add'>+  *NOTE*: will only be fired if tracing is enabled, e.g. with: &lt;code&gt;TracePoint.new{}.enable&lt;/code&gt;.</div><div class='add'>+  See Feature#14104[https://bugs.ruby-lang.org/issues/14104] for more details.</div><div class='ctx'> </div><div class='ctx'> [ruby:::method-return(classname, methodname, filename, lineno);]</div><div class='ctx'>   This probe is fired just after a method has returned. The arguments are the</div><div class='ctx'>   same as "ruby:::method-entry".</div><div class='ctx'> </div><div class='add'>+  *NOTE*: will only be fired if tracing is enabled, e.g. with: &lt;code&gt;TracePoint.new{}.enable&lt;/code&gt;.</div><div class='add'>+  See Feature#14104[https://bugs.ruby-lang.org/issues/14104] for more details.</div><div class='add'>+</div><div class='ctx'> [ruby:::cmethod-entry(classname, methodname, filename, lineno);]</div><div class='ctx'>   This probe is fired just before a C method is entered. The arguments are the</div><div class='ctx'>   same as "ruby:::method-entry".</div><div class='hunk'>@@ -72,9 +78,9 @@ with when they are fired and the arguments they take:</div><div class='ctx'> [ruby:::require-entry(requiredfile, filename, lineno);]</div><div class='ctx'>   This probe is fired on calls to rb_require_safe (when a file is required).</div><div class='ctx'> </div><div class='del'>-    requiredfile is the name of the file to be required (string).</div><div class='del'>-    filename is the file that called "require" (string).</div><div class='del'>-    lineno is the line number where the call to require was made (int).</div><div class='add'>+  requiredfile:: the name of the file to be required (string).</div><div class='add'>+  filename::     the file that called "+require+" (string).</div><div class='add'>+  lineno::       the line number where the call to require was made (int).</div><div class='ctx'> </div><div class='ctx'> [ruby:::require-return(requiredfile, filename, lineno);]</div><div class='ctx'>   This probe is fired just before rb_require_safe (when a file is required)</div><div class='hunk'>@@ -84,11 +90,11 @@ with when they are fired and the arguments they take:</div><div class='ctx'> [ruby:::find-require-entry(requiredfile, filename, lineno);]</div><div class='ctx'>   This probe is fired right before search_required is called. search_required</div><div class='ctx'>   determines whether the file has already been required by searching loaded</div><div class='del'>-  features ($"), and if not, figures out which file must be loaded.</div><div class='add'>+  features (&lt;code&gt;$"&lt;/code&gt;), and if not, figures out which file must be loaded.</div><div class='ctx'> </div><div class='del'>-    requiredfile is the file to be required (string).</div><div class='del'>-    filename is the file that called "require" (string).</div><div class='del'>-    lineno is the line number where the call to require was made (int).</div><div class='add'>+  requiredfile:: the file to be required (string).</div><div class='add'>+  filename::     the file that called "require" (string).</div><div class='add'>+  lineno::       the line number where the call to require was made (int).</div><div class='ctx'> </div><div class='ctx'> [ruby:::find-require-return(requiredfile, filename, lineno);]</div><div class='ctx'>   This probe is fired right after search_required returns. See the</div><div class='hunk'>@@ -106,56 +112,56 @@ with when they are fired and the arguments they take:</div><div class='ctx'> [ruby:::raise(classname, filename, lineno);]</div><div class='ctx'>   This probe is fired when an exception is raised.</div><div class='ctx'> </div><div class='del'>-    classname is the class name of the raised exception (string)</div><div class='del'>-    filename the name of the file where the exception was raised (string)</div><div class='del'>-    lineno the line number in the file where the exception was raised (int)</div><div class='add'>+  classname::    the class name of the raised exception (string)</div><div class='add'>+  filename::     the name of the file where the exception was raised (string)</div><div class='add'>+  lineno::       the line number in the file where the exception was raised (int)</div><div class='ctx'> </div><div class='ctx'> [ruby:::object-create(classname, filename, lineno);]</div><div class='ctx'>   This probe is fired when an object is about to be allocated.</div><div class='ctx'> </div><div class='del'>-    classname the class of the allocated object (string)</div><div class='del'>-    filename the name of the file where the object is allocated (string)</div><div class='del'>-    lineno the line number in the file where the object is allocated (int)</div><div class='add'>+  classname::    the class of the allocated object (string)</div><div class='add'>+  filename::     the name of the file where the object is allocated (string)</div><div class='add'>+  lineno::       the line number in the file where the object is allocated (int)</div><div class='ctx'> </div><div class='ctx'> [ruby:::array-create(length, filename, lineno);]</div><div class='ctx'>   This probe is fired when an Array is about to be allocated.</div><div class='ctx'> </div><div class='del'>-    length the size of the array (long)</div><div class='del'>-    filename the name of the file where the array is allocated (string)</div><div class='del'>-    lineno the line number in the file where the array is allocated (int)</div><div class='add'>+  length::       the size of the array (long)</div><div class='add'>+  filename::     the name of the file where the array is allocated (string)</div><div class='add'>+  lineno::       the line number in the file where the array is allocated (int)</div><div class='ctx'> </div><div class='ctx'> [ruby:::hash-create(length, filename, lineno);]</div><div class='ctx'>   This probe is fired when a Hash is about to be allocated.</div><div class='ctx'> </div><div class='del'>-    length the size of the hash (long)</div><div class='del'>-    filename the name of the file where the hash is allocated (string)</div><div class='del'>-    lineno the line number in the file where the hash is allocated (int)</div><div class='add'>+  length::       the size of the hash (long)</div><div class='add'>+  filename::     the name of the file where the hash is allocated (string)</div><div class='add'>+  lineno::       the line number in the file where the hash is allocated (int)</div><div class='ctx'> </div><div class='ctx'> [ruby:::string-create(length, filename, lineno);]</div><div class='ctx'>   This probe is fired when a String is about to be allocated.</div><div class='ctx'> </div><div class='del'>-    length the size of the string (long)</div><div class='del'>-    filename the name of the file where the string is allocated (string)</div><div class='del'>-    lineno the line number in the file where the string is allocated (int)</div><div class='add'>+  length::       the size of the string (long)</div><div class='add'>+  filename::     the name of the file where the string is allocated (string)</div><div class='add'>+  lineno::       the line number in the file where the string is allocated (int)</div><div class='ctx'> </div><div class='ctx'> [ruby:::symbol-create(str, filename, lineno);]</div><div class='ctx'>   This probe is fired when a Symbol is about to be allocated.</div><div class='ctx'> </div><div class='del'>-    str the contents of the symbol (string)</div><div class='del'>-    filename the name of the file where the string is allocated (string)</div><div class='del'>-    lineno the line number in the file where the string is allocated (int)</div><div class='add'>+  str::          the contents of the symbol (string)</div><div class='add'>+  filename::     the name of the file where the string is allocated (string)</div><div class='add'>+  lineno::       the line number in the file where the string is allocated (int)</div><div class='ctx'> </div><div class='ctx'> [ruby:::parse-begin(sourcefile, lineno);]</div><div class='ctx'>   Fired just before parsing and compiling a source file.</div><div class='ctx'> </div><div class='del'>-    sourcefile the file being parsed (string)</div><div class='del'>-    lineno the line number where the source starts (int)</div><div class='add'>+  sourcefile::   the file being parsed (string)</div><div class='add'>+  lineno::       the line number where the source starts (int)</div><div class='ctx'> </div><div class='ctx'> [ruby:::parse-end(sourcefile, lineno);]</div><div class='ctx'>   Fired just after parsing and compiling a source file.</div><div class='ctx'> </div><div class='del'>-    sourcefile the file being parsed (string)</div><div class='del'>-    lineno the line number where the source ended (int)</div><div class='add'>+  sourcefile::   the file being parsed (string)</div><div class='add'>+  lineno::       the line number where the source ended (int)</div><div class='ctx'> </div><div class='ctx'> [ruby:::gc-mark-begin();]</div><div class='ctx'>   Fired at the beginning of a mark phase.</div><div class='hunk'>@@ -172,7 +178,7 @@ with when they are fired and the arguments they take:</div><div class='ctx'> [ruby:::method-cache-clear(class, sourcefile, lineno);]</div><div class='ctx'>   Fired when the method cache is cleared.</div><div class='ctx'> </div><div class='del'>-    class is the classname being cleared, or "global" (string)</div><div class='del'>-    sourcefile the file being parsed (string)</div><div class='del'>-    lineno the line number where the source ended (int)</div><div class='add'>+  class::        the classname being cleared, or "global" (string)</div><div class='add'>+  sourcefile::   the file being parsed (string)</div><div class='add'>+  lineno::       the line number where the source ended (int)</div><div class='ctx'> </div><div class='head'>diff --git a/doc/encodings.rdoc b/doc/encodings.rdoc<br/>new file mode 100644<br/>index 0000000000..1f3c54d740<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/encodings.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/encodings.rdoc</a></div><div class='hunk'>@@ -0,0 +1,479 @@</div><div class='add'>+== Encodings</div><div class='add'>+</div><div class='add'>+=== The Basics</div><div class='add'>+</div><div class='add'>+A {character encoding}[https://en.wikipedia.org/wiki/Character_encoding],</div><div class='add'>+often shortened to _encoding_, is a mapping between:</div><div class='add'>+</div><div class='add'>+- A sequence of 8-bit bytes (each byte in the range &lt;tt&gt;0..255&lt;/tt&gt;).</div><div class='add'>+- Characters in a specific character set.</div><div class='add'>+</div><div class='add'>+Some character sets contain only 1-byte characters;</div><div class='add'>+{US-ASCII}[https://en.wikipedia.org/wiki/ASCII], for example, has 256 1-byte characters.</div><div class='add'>+This string, encoded in US-ASCII, has six characters that are stored as six bytes:</div><div class='add'>+</div><div class='add'>+  s = 'Hello!'.encode('US-ASCII')  # =&gt; "Hello!"</div><div class='add'>+  s.encoding                       # =&gt; #&lt;Encoding:US-ASCII&gt;</div><div class='add'>+  s.bytes                          # =&gt; [72, 101, 108, 108, 111, 33]</div><div class='add'>+</div><div class='add'>+Other encodings may involve multi-byte characters.</div><div class='add'>+{UTF-8}[https://en.wikipedia.org/wiki/UTF-8], for example,</div><div class='add'>+encodes more than one million characters, encoding each in one to four bytes.</div><div class='add'>+The lowest-valued of these characters correspond to ASCII characters,</div><div class='add'>+and so are 1-byte characters:</div><div class='add'>+</div><div class='add'>+  s = 'Hello!' # =&gt; "Hello!"</div><div class='add'>+  s.bytes      # =&gt; [72, 101, 108, 108, 111, 33]</div><div class='add'>+</div><div class='add'>+Other characters, such as the Euro symbol, are multi-byte:</div><div class='add'>+</div><div class='add'>+  s = "\u20ac" # =&gt; "â‚¬"</div><div class='add'>+  s.bytes      # =&gt; [226, 130, 172]</div><div class='add'>+</div><div class='add'>+=== The \Encoding \Class</div><div class='add'>+</div><div class='add'>+==== \Encoding Objects</div><div class='add'>+</div><div class='add'>+Ruby encodings are defined by constants in class \Encoding.</div><div class='add'>+There can be only one instance of \Encoding for each of these constants.</div><div class='add'>+\Method Encoding.list returns an array of \Encoding objects (one for each constant):</div><div class='add'>+</div><div class='add'>+  Encoding.list.size        # =&gt; 103</div><div class='add'>+  Encoding.list.first.class # =&gt; Encoding</div><div class='add'>+  Encoding.list.take(3)</div><div class='add'>+  # =&gt; [#&lt;Encoding:ASCII-8BIT&gt;, #&lt;Encoding:UTF-8&gt;, #&lt;Encoding:US-ASCII&gt;]</div><div class='add'>+</div><div class='add'>+==== Names and Aliases</div><div class='add'>+</div><div class='add'>+\Method Encoding#name returns the name of an \Encoding:</div><div class='add'>+</div><div class='add'>+  Encoding::ASCII_8BIT.name  # =&gt; "ASCII-8BIT"</div><div class='add'>+  Encoding::WINDOWS_31J.name # =&gt; "Windows-31J"</div><div class='add'>+</div><div class='add'>+An \Encoding object has zero or more aliases;</div><div class='add'>+method Encoding#names returns an array containing the name and all aliases:</div><div class='add'>+</div><div class='add'>+  Encoding::ASCII_8BIT.names</div><div class='add'>+  # =&gt; ["ASCII-8BIT", "BINARY"]</div><div class='add'>+  Encoding::WINDOWS_31J.names</div><div class='add'>+  #=&gt; ["Windows-31J", "CP932", "csWindows31J", "SJIS", "PCK"]</div><div class='add'>+</div><div class='add'>+\Method Encoding.aliases returns a hash of all alias/name pairs:</div><div class='add'>+</div><div class='add'>+  Encoding.aliases.size # =&gt; 71</div><div class='add'>+  Encoding.aliases.take(3)</div><div class='add'>+  # =&gt; [["BINARY", "ASCII-8BIT"], ["CP437", "IBM437"], ["CP720", "IBM720"]]</div><div class='add'>+</div><div class='add'>+\Method Encoding.name_list returns an array of all the encoding names and aliases:</div><div class='add'>+</div><div class='add'>+  Encoding.name_list.size # =&gt; 175</div><div class='add'>+  Encoding.name_list.take(3)</div><div class='add'>+  # =&gt; ["ASCII-8BIT", "UTF-8", "US-ASCII"]</div><div class='add'>+</div><div class='add'>+\Method +name_list+ returns more entries than method +list+</div><div class='add'>+because it includes both the names and their aliases.</div><div class='add'>+</div><div class='add'>+\Method Encoding.find returns the \Encoding for a given name or alias, if it exists:</div><div class='add'>+</div><div class='add'>+  Encoding.find("US-ASCII")       # =&gt; #&lt;Encoding:US-ASCII&gt;</div><div class='add'>+  Encoding.find("US-ASCII").class # =&gt; Encoding</div><div class='add'>+</div><div class='add'>+==== Default Encodings</div><div class='add'>+</div><div class='add'>+\Method Encoding.find, above, also returns a default \Encoding</div><div class='add'>+for each of these special names:</div><div class='add'>+</div><div class='add'>+- +external+: the default external \Encoding:</div><div class='add'>+</div><div class='add'>+    Encoding.find("external") # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+</div><div class='add'>+- +internal+: the default internal \Encoding (may be +nil+):</div><div class='add'>+</div><div class='add'>+    Encoding.find("internal") # =&gt; nil</div><div class='add'>+</div><div class='add'>+- +locale+: the default \Encoding for a string from the environment:</div><div class='add'>+</div><div class='add'>+    Encoding.find("locale") # =&gt; #&lt;Encoding:UTF-8&gt;  # Linux</div><div class='add'>+    Encoding.find("locale") # =&gt; #&lt;Encoding:IBM437&gt; # Windows</div><div class='add'>+</div><div class='add'>+- +filesystem+: the default \Encoding for a string from the filesystem:</div><div class='add'>+</div><div class='add'>+    Encoding.find("filesystem") # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+</div><div class='add'>+\Method Encoding.default_external returns the default external \Encoding:</div><div class='add'>+</div><div class='add'>+  Encoding.default_external # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+</div><div class='add'>+\Method Encoding.default_external= sets that value:</div><div class='add'>+</div><div class='add'>+  Encoding.default_external = 'US-ASCII' # =&gt; "US-ASCII"</div><div class='add'>+  Encoding.default_external              # =&gt; #&lt;Encoding:US-ASCII&gt;</div><div class='add'>+</div><div class='add'>+\Method Encoding.default_internal returns the default internal \Encoding:</div><div class='add'>+</div><div class='add'>+  Encoding.default_internal # =&gt; nil</div><div class='add'>+</div><div class='add'>+\Method Encoding.default_internal= sets the default internal \Encoding:</div><div class='add'>+</div><div class='add'>+  Encoding.default_internal = 'US-ASCII' # =&gt; "US-ASCII"</div><div class='add'>+  Encoding.default_internal              # =&gt; #&lt;Encoding:US-ASCII&gt;</div><div class='add'>+</div><div class='add'>+==== Compatible Encodings</div><div class='add'>+</div><div class='add'>+\Method Encoding.compatible? returns whether two given objects are encoding-compatible</div><div class='add'>+(that is, whether they can be concatenated);</div><div class='add'>+returns the \Encoding of the concatenated string, or +nil+ if incompatible:</div><div class='add'>+</div><div class='add'>+  rus = "\u{442 435 441 442}"</div><div class='add'>+  eng = 'text'</div><div class='add'>+  Encoding.compatible?(rus, eng) # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+</div><div class='add'>+  s0 = "\xa1\xa1".force_encoding('iso-8859-1') # =&gt; "\xA1\xA1"</div><div class='add'>+  s1 = "\xa1\xa1".force_encoding('euc-jp')     # =&gt; "\x{A1A1}"</div><div class='add'>+  Encoding.compatible?(s0, s1)                 # =&gt; nil</div><div class='add'>+</div><div class='add'>+=== \String \Encoding</div><div class='add'>+</div><div class='add'>+A Ruby String object has an encoding that is an instance of class \Encoding.</div><div class='add'>+The encoding may be retrieved by method String#encoding.</div><div class='add'>+</div><div class='add'>+The default encoding for a string literal is the script encoding</div><div class='add'>+(see Encoding@Script+encoding):</div><div class='add'>+</div><div class='add'>+  's'.encoding # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+</div><div class='add'>+The default encoding for a string created with method String.new is:</div><div class='add'>+</div><div class='add'>+- For a \String object argument, the encoding of that string.</div><div class='add'>+- For a string literal, the script encoding (see Encoding@Script+encoding).</div><div class='add'>+</div><div class='add'>+In either case, any encoding may be specified:</div><div class='add'>+</div><div class='add'>+  s = String.new(encoding: 'UTF-8')             # =&gt; ""</div><div class='add'>+  s.encoding                                    # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+  s = String.new('foo', encoding: 'ASCII-8BIT') # =&gt; "foo"</div><div class='add'>+  s.encoding                                    # =&gt; #&lt;Encoding:ASCII-8BIT&gt;</div><div class='add'>+</div><div class='add'>+The encoding for a string may be changed:</div><div class='add'>+</div><div class='add'>+  s = "R\xC3\xA9sum\xC3\xA9"     # =&gt; "RÃ©sumÃ©"</div><div class='add'>+  s.encoding                     # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+  s.force_encoding('ISO-8859-1') # =&gt; "R\xC3\xA9sum\xC3\xA9"</div><div class='add'>+  s.encoding                     # =&gt; #&lt;Encoding:ISO-8859-1&gt;</div><div class='add'>+</div><div class='add'>+Changing the assigned encoding does not alter the content of the string;</div><div class='add'>+it changes only the way the content is to be interpreted:</div><div class='add'>+</div><div class='add'>+  s                         # =&gt; "R\xC3\xA9sum\xC3\xA9"</div><div class='add'>+  s.force_encoding('UTF-8') # =&gt; "RÃ©sumÃ©"</div><div class='add'>+</div><div class='add'>+The actual content of a string may also be altered;</div><div class='add'>+see {Transcoding a String}[#label-Transcoding+a+String].</div><div class='add'>+</div><div class='add'>+Here are a couple of useful query methods:</div><div class='add'>+</div><div class='add'>+  s = "abc".force_encoding("UTF-8")         # =&gt; "abc"</div><div class='add'>+  s.ascii_only?                             # =&gt; true</div><div class='add'>+  s = "abc\u{6666}".force_encoding("UTF-8") # =&gt; "abcæ™¦"</div><div class='add'>+  s.ascii_only?                             # =&gt; false</div><div class='add'>+</div><div class='add'>+  s = "\xc2\xa1".force_encoding("UTF-8") # =&gt; "Â¡"</div><div class='add'>+  s.valid_encoding?                      # =&gt; true</div><div class='add'>+  s = "\xc2".force_encoding("UTF-8")     # =&gt; "\xC2"</div><div class='add'>+  s.valid_encoding?                      # =&gt; false</div><div class='add'>+</div><div class='add'>+=== \Symbol and \Regexp Encodings</div><div class='add'>+</div><div class='add'>+The string stored in a Symbol or Regexp object also has an encoding;</div><div class='add'>+the encoding may be retrieved by method Symbol#encoding or Regexp#encoding.</div><div class='add'>+</div><div class='add'>+The default encoding for these, however, is:</div><div class='add'>+</div><div class='add'>+- US-ASCII, if all characters are US-ASCII.</div><div class='add'>+- The script encoding, otherwise (see Encoding@Script+encoding).</div><div class='add'>+</div><div class='add'>+=== Filesystem \Encoding</div><div class='add'>+</div><div class='add'>+The filesystem encoding is the default \Encoding for a string from the filesystem:</div><div class='add'>+</div><div class='add'>+    Encoding.find("filesystem") # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+</div><div class='add'>+=== Locale \Encoding</div><div class='add'>+</div><div class='add'>+The locale encoding is the default encoding for a string from the environment,</div><div class='add'>+other than from the filesystem:</div><div class='add'>+</div><div class='add'>+  Encoding.find('locale') # =&gt; #&lt;Encoding:IBM437&gt;</div><div class='add'>+</div><div class='add'>+=== Stream Encodings</div><div class='add'>+</div><div class='add'>+Certain stream objects can have two encodings; these objects include instances of:</div><div class='add'>+</div><div class='add'>+- IO.</div><div class='add'>+- File.</div><div class='add'>+- ARGF.</div><div class='add'>+- StringIO.</div><div class='add'>+</div><div class='add'>+The two encodings are:</div><div class='add'>+</div><div class='add'>+- An _external_ _encoding_, which identifies the encoding of the stream.</div><div class='add'>+- An _internal_ _encoding_, which (if not +nil+) specifies the encoding</div><div class='add'>+  to be used for the string constructed from the stream.</div><div class='add'>+</div><div class='add'>+==== External \Encoding</div><div class='add'>+</div><div class='add'>+The external encoding, which is an \Encoding object, specifies how bytes read</div><div class='add'>+from the stream are to be interpreted as characters.</div><div class='add'>+</div><div class='add'>+The default external encoding is:</div><div class='add'>+</div><div class='add'>+- UTF-8 for a text stream.</div><div class='add'>+- ASCII-8BIT for a binary stream.</div><div class='add'>+</div><div class='add'>+The default external encoding is returned by method Encoding.default_external,</div><div class='add'>+and may be set by:</div><div class='add'>+</div><div class='add'>+- Ruby command-line options &lt;tt&gt;--external_encoding&lt;/tt&gt; or &lt;tt&gt;-E&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+You can also set the default external encoding using method Encoding.default_external=,</div><div class='add'>+but doing so may cause problems; strings created before and after the change</div><div class='add'>+may have a different encodings.</div><div class='add'>+</div><div class='add'>+For an \IO or \File object, the external encoding may be set by:</div><div class='add'>+</div><div class='add'>+- Open options +external_encoding+ or +encoding+, when the object is created;</div><div class='add'>+  see {Open Options}[rdoc-ref:IO@Open+Options].</div><div class='add'>+</div><div class='add'>+For an \IO, \File, \ARGF, or \StringIO object, the external encoding may be set by:</div><div class='add'>+</div><div class='add'>+- \Methods +set_encoding+ or (except for \ARGF) +set_encoding_by_bom+.</div><div class='add'>+</div><div class='add'>+==== Internal \Encoding</div><div class='add'>+</div><div class='add'>+The internal encoding, which is an \Encoding object or +nil+,</div><div class='add'>+specifies how characters read from the stream</div><div class='add'>+are to be converted to characters in the internal encoding;</div><div class='add'>+those characters become a string whose encoding is set to the internal encoding.</div><div class='add'>+</div><div class='add'>+The default internal encoding is +nil+ (no conversion).</div><div class='add'>+It is returned by method Encoding.default_internal,</div><div class='add'>+and may be set by:</div><div class='add'>+</div><div class='add'>+- Ruby command-line options &lt;tt&gt;--internal_encoding&lt;/tt&gt; or &lt;tt&gt;-E&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+You can also set the default internal encoding using method Encoding.default_internal=,</div><div class='add'>+but doing so may cause problems; strings created before and after the change</div><div class='add'>+may have a different encodings.</div><div class='add'>+</div><div class='add'>+For an \IO or \File object, the internal encoding may be set by:</div><div class='add'>+</div><div class='add'>+- Open options +internal_encoding+ or +encoding+, when the object is created;</div><div class='add'>+  see {Open Options}[rdoc-ref:IO@Open+Options].</div><div class='add'>+</div><div class='add'>+For an \IO, \File, \ARGF, or \StringIO object, the internal encoding may be set by:</div><div class='add'>+</div><div class='add'>+- \Method +set_encoding+.</div><div class='add'>+</div><div class='add'>+=== Script \Encoding</div><div class='add'>+</div><div class='add'>+A Ruby script has a script encoding, which may be retrieved by:</div><div class='add'>+</div><div class='add'>+  __ENCODING__ # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+</div><div class='add'>+The default script encoding is UTF-8;</div><div class='add'>+a Ruby source file may set its script encoding with a magic comment</div><div class='add'>+on the first line of the file (or second line, if there is a shebang on the first).</div><div class='add'>+The comment must contain the word +coding+ or +encoding+,</div><div class='add'>+followed by a colon, space and the Encoding name or alias:</div><div class='add'>+</div><div class='add'>+  # encoding: ISO-8859-1</div><div class='add'>+  __ENCODING__ #=&gt; #&lt;Encoding:ISO-8859-1&gt;</div><div class='add'>+</div><div class='add'>+=== Transcoding</div><div class='add'>+</div><div class='add'>+_Transcoding_ is the process of changing a sequence of characters</div><div class='add'>+from one encoding to another.</div><div class='add'>+</div><div class='add'>+As far as possible, the characters remain the same,</div><div class='add'>+but the bytes that represent them may change.</div><div class='add'>+</div><div class='add'>+The handling for characters that cannot be represented in the destination encoding</div><div class='add'>+may be specified by @Encoding+Options.</div><div class='add'>+</div><div class='add'>+==== Transcoding a \String</div><div class='add'>+</div><div class='add'>+Each of these methods transcodes a string:</div><div class='add'>+</div><div class='add'>+- String#encode: Transcodes +self+ into a new string</div><div class='add'>+  according to given encodings and options.</div><div class='add'>+- String#encode!: Like String#encode, but transcodes +self+ in place.</div><div class='add'>+- String#scrub: Transcodes +self+ into a new string</div><div class='add'>+  by replacing invalid byte sequences with a given or default replacement string.</div><div class='add'>+- String#scrub!: Like String#scrub, but transcodes +self+ in place.</div><div class='add'>+- String#unicode_normalize: Transcodes +self+ into a new string</div><div class='add'>+  according to Unicode normalization.</div><div class='add'>+- String#unicode_normalize!: Like String#unicode_normalize,</div><div class='add'>+  but transcodes +self+ in place.</div><div class='add'>+</div><div class='add'>+=== Transcoding a Stream</div><div class='add'>+</div><div class='add'>+Each of these methods may transcode a stream;</div><div class='add'>+whether it does so depends on the external and internal encodings:</div><div class='add'>+</div><div class='add'>+- IO.foreach: Yields each line of given stream to the block.</div><div class='add'>+- IO.new: Creates and returns a new \IO object for the given integer file descriptor.</div><div class='add'>+- IO.open: Creates a new \IO object.</div><div class='add'>+- IO.pipe: Creates a connected pair of reader and writer \IO objects.</div><div class='add'>+- IO.popen: Creates an \IO object to interact with a subprocess.</div><div class='add'>+- IO.read: Returns a string with all or a subset of bytes from the given stream.</div><div class='add'>+- IO.readlines: Returns an array of strings, which are the lines from the given stream.</div><div class='add'>+- IO.write: Writes a given string to the given stream.</div><div class='add'>+</div><div class='add'>+This example writes a string to a file, encoding it as ISO-8859-1,</div><div class='add'>+then reads the file into a new string, encoding it as UTF-8:</div><div class='add'>+</div><div class='add'>+  s = "R\u00E9sum\u00E9"</div><div class='add'>+  path = 't.tmp'</div><div class='add'>+  ext_enc = 'ISO-8859-1'</div><div class='add'>+  int_enc = 'UTF-8'</div><div class='add'>+</div><div class='add'>+  File.write(path, s, external_encoding: ext_enc)</div><div class='add'>+  raw_text = File.binread(path)</div><div class='add'>+</div><div class='add'>+  transcoded_text = File.read(path, external_encoding: ext_enc, internal_encoding: int_enc)</div><div class='add'>+</div><div class='add'>+  p raw_text</div><div class='add'>+  p transcoded_text</div><div class='add'>+</div><div class='add'>+Output:</div><div class='add'>+</div><div class='add'>+  "R\xE9sum\xE9"</div><div class='add'>+  "RÃ©sumÃ©"</div><div class='add'>+</div><div class='add'>+=== \Encoding Options</div><div class='add'>+</div><div class='add'>+A number of methods in the Ruby core accept keyword arguments as encoding options.</div><div class='add'>+</div><div class='add'>+Some of the options specify or utilize a _replacement_ _string_, to be used</div><div class='add'>+in certain transcoding operations.</div><div class='add'>+A replacement string may be in any encoding that can be converted</div><div class='add'>+to the encoding of the destination string.</div><div class='add'>+</div><div class='add'>+These keyword-value pairs specify encoding options:</div><div class='add'>+</div><div class='add'>+- For an invalid byte sequence:</div><div class='add'>+</div><div class='add'>+  - &lt;tt&gt;:invalid: nil&lt;/tt&gt; (default): Raise exception.</div><div class='add'>+  - &lt;tt&gt;:invalid: :replace&lt;/tt&gt;: Replace each invalid byte sequence</div><div class='add'>+    with the replacement string.</div><div class='add'>+</div><div class='add'>+  Examples:</div><div class='add'>+</div><div class='add'>+    s = "\x80foo\x80"</div><div class='add'>+    s.encode('ISO-8859-3') # Raises Encoding::InvalidByteSequenceError.</div><div class='add'>+    s.encode('ISO-8859-3', invalid: :replace) # =&gt; "?foo?"</div><div class='add'>+</div><div class='add'>+- For an undefined character:</div><div class='add'>+</div><div class='add'>+  - &lt;tt&gt;:undef: nil&lt;/tt&gt; (default): Raise exception.</div><div class='add'>+  - &lt;tt&gt;:undef: :replace&lt;/tt&gt;: Replace each undefined character</div><div class='add'>+    with the replacement string.</div><div class='add'>+</div><div class='add'>+  Examples:</div><div class='add'>+</div><div class='add'>+    s = "\x80foo\x80"</div><div class='add'>+    "\x80".encode('UTF-8', 'ASCII-8BIT') # Raises Encoding::UndefinedConversionError.</div><div class='add'>+    s.encode('UTF-8', 'ASCII-8BIT', undef: :replace) # =&gt; "ï¿½fooï¿½"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+- Replacement string:</div><div class='add'>+</div><div class='add'>+  - &lt;tt&gt;:replace: nil&lt;/tt&gt; (default): Set replacement string to default value:</div><div class='add'>+    &lt;tt&gt;"\uFFFD"&lt;/tt&gt; ("ï¿½") for a Unicode encoding, &lt;tt&gt;'?'&lt;/tt&gt; otherwise.</div><div class='add'>+  - &lt;tt&gt;:replace: _some_string_&lt;/tt&gt;: Set replacement string to the given +some_string+;</div><div class='add'>+    overrides +:fallback+.</div><div class='add'>+</div><div class='add'>+  Examples:</div><div class='add'>+</div><div class='add'>+    s = "\xA5foo\xA5"</div><div class='add'>+    options = {:undef =&gt; :replace, :replace =&gt; 'xyzzy'}</div><div class='add'>+    s.encode('UTF-8', 'ISO-8859-3', **options) # =&gt; "xyzzyfooxyzzy"</div><div class='add'>+</div><div class='add'>+- Replacement fallback:</div><div class='add'>+</div><div class='add'>+  One of these may be specified:</div><div class='add'>+</div><div class='add'>+  - &lt;tt&gt;:fallback: nil&lt;/tt&gt; (default): No replacement fallback.</div><div class='add'>+  - &lt;tt&gt;:fallback: _hash_like_object_&lt;/tt&gt;: Set replacement fallback to the given</div><div class='add'>+    +hash_like_object+; the replacement string is &lt;tt&gt;_hash_like_object_[X]&lt;/tt&gt;.</div><div class='add'>+  - &lt;tt&gt;:fallback: _method_&lt;/tt&gt;: Set replacement fallback to the given</div><div class='add'>+    +method+; the replacement string is &lt;tt&gt;_method_(X)&lt;/tt&gt;.</div><div class='add'>+  - &lt;tt&gt;:fallback: _proc_&lt;/tt&gt;: Set replacement fallback to the given</div><div class='add'>+    +proc+; the replacement string is &lt;tt&gt;_proc_[X]&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+  Examples:</div><div class='add'>+</div><div class='add'>+    s = "\u3042foo\u3043"</div><div class='add'>+</div><div class='add'>+    hash = {"\u3042" =&gt; 'xyzzy'}</div><div class='add'>+    hash.default = 'XYZZY'</div><div class='add'>+    s.encode('ASCII', fallback: h) # =&gt; "xyzzyfooXYZZY"</div><div class='add'>+</div><div class='add'>+    def (fallback = "U+%.4X").escape(x)</div><div class='add'>+      self % x.unpack("U")</div><div class='add'>+    end</div><div class='add'>+    "\u{3042}".encode("US-ASCII", fallback: fallback.method(:escape)) # =&gt; "U+3042"</div><div class='add'>+</div><div class='add'>+    proc = Proc.new {|x| x == "\u3042" ? 'xyzzy' : 'XYZZY' }</div><div class='add'>+    s.encode('ASCII', fallback: proc) # =&gt; "XYZZYfooXYZZY"</div><div class='add'>+</div><div class='add'>+- XML entities:</div><div class='add'>+</div><div class='add'>+  One of these may be specified:</div><div class='add'>+</div><div class='add'>+  - &lt;tt&gt;:xml: nil&lt;/tt&gt; (default): No handling for XML entities.</div><div class='add'>+  - &lt;tt&gt;:xml: :text&lt;/tt&gt;: Treat source text as XML;</div><div class='add'>+    replace each undefined character</div><div class='add'>+    with its upper-case hexdecimal numeric character reference,</div><div class='add'>+    except that:</div><div class='add'>+</div><div class='add'>+    - &lt;tt&gt;&amp;&lt;/tt&gt; is replaced with &lt;tt&gt;&amp;amp;&lt;/tt&gt;.</div><div class='add'>+    - &lt;tt&gt;&lt;&lt;/tt&gt; is replaced with &lt;tt&gt;&amp;lt;&lt;/tt&gt;.</div><div class='add'>+    - &lt;tt&gt;&gt;&lt;/tt&gt; is replaced with &lt;tt&gt;&amp;gt;&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+  - &lt;tt&gt;:xml: :attr&lt;/tt&gt;: Treat source text as XML attribute value;</div><div class='add'>+    replace each undefined character</div><div class='add'>+    with its upper-case hexdecimal numeric character reference,</div><div class='add'>+    except that:</div><div class='add'>+</div><div class='add'>+    - The replacement string &lt;tt&gt;r&lt;/tt&gt; is double-quoted (&lt;tt&gt;"r"&lt;/tt&gt;).</div><div class='add'>+    - Each embedded double-quote is replaced with &lt;tt&gt;&amp;quot;&lt;/tt&gt;.</div><div class='add'>+    - &lt;tt&gt;&amp;&lt;/tt&gt; is replaced with &lt;tt&gt;&amp;amp;&lt;/tt&gt;.</div><div class='add'>+    - &lt;tt&gt;&lt;&lt;/tt&gt; is replaced with &lt;tt&gt;&amp;lt;&lt;/tt&gt;.</div><div class='add'>+    - &lt;tt&gt;&gt;&lt;/tt&gt; is replaced with &lt;tt&gt;&amp;gt;&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+  Examples:</div><div class='add'>+</div><div class='add'>+    s = 'foo"&lt;&amp;&gt;"bar' + "\u3042"</div><div class='add'>+    s.encode('ASCII', xml: :text) # =&gt; "foo\"&amp;lt;&amp;amp;&amp;gt;\"bar&amp;#x3042;"</div><div class='add'>+    s.encode('ASCII', xml: :attr) # =&gt; "\"foo&amp;quot;&amp;lt;&amp;amp;&amp;gt;&amp;quot;bar&amp;#x3042;\""</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+- Newlines:</div><div class='add'>+</div><div class='add'>+  One of these may be specified:</div><div class='add'>+</div><div class='add'>+  - &lt;tt&gt;:cr_newline: true&lt;/tt&gt;: Replace each line-feed character (&lt;tt&gt;"\n"&lt;/tt&gt;)</div><div class='add'>+    with a carriage-return character (&lt;tt&gt;"\r"&lt;/tt&gt;).</div><div class='add'>+  - &lt;tt&gt;:crlf_newline: true&lt;/tt&gt;: Replace each line-feed character (&lt;tt&gt;"\n"&lt;/tt&gt;)</div><div class='add'>+    with a carriage-return/line-feed string (&lt;tt&gt;"\r\n"&lt;/tt&gt;).</div><div class='add'>+  - &lt;tt&gt;:universal_newline: true&lt;/tt&gt;: Replace each carriage-return</div><div class='add'>+    character (&lt;tt&gt;"\r"&lt;/tt&gt;) and each carriage-return/line-feed string</div><div class='add'>+    (&lt;tt&gt;"\r\n"&lt;/tt&gt;) with a line-feed character (&lt;tt&gt;"\n"&lt;/tt&gt;).</div><div class='add'>+</div><div class='add'>+  Examples:</div><div class='add'>+</div><div class='add'>+    s = "\n \r \r\n"                           # =&gt; "\n \r \r\n"</div><div class='add'>+    s.encode('ASCII', cr_newline: true)        # =&gt; "\r \r \r\r"</div><div class='add'>+    s.encode('ASCII', crlf_newline: true)      # =&gt; "\r\n \r \r\r\n"</div><div class='add'>+    s.encode('ASCII', universal_newline: true) # =&gt; "\n \n \n"</div><div class='head'>diff --git a/doc/etc.rd.ja b/doc/etc.rd.ja<br/>deleted file mode 100644<br/>index b4ff6ed04e..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/etc.rd.ja?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/etc.rd.ja</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,75 +0,0 @@</div><div class='del'>-# etc.rd.ja -  -*- mode: rd; coding: utf-8; -*- created at: Fri Jul 14 00:47:15 JST 1995</div><div class='del'>-=begin</div><div class='del'>-</div><div class='del'>-= Etc(ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«)</div><div class='del'>-</div><div class='del'>-å®Ÿè¡Œã—ã¦ã„ã‚‹OSã‹ã‚‰ã®æƒ…å ±ã‚’å¾—ã‚‹ãŸã‚ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ï¼Žã‚¯ãƒ©ã‚¹ã«ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰</div><div class='del'>-ã—ã¦ä½¿ã†ã“ã¨ã‚‚ã§ãã‚‹ï¼Ž</div><div class='del'>-</div><div class='del'>-== Module Function</div><div class='del'>-</div><div class='del'>---- getlogin</div><div class='del'>-</div><div class='del'>-	è‡ªåˆ†ã®loginåã‚’è¿”ã™ï¼Žã“ã‚ŒãŒå¤±æ•—ã—ãŸå ´åˆã¯getpwuid()ã‚’ç”¨ã„ã‚‹ã¨</div><div class='del'>-	è‰¯ã„ï¼Ž</div><div class='del'>-</div><div class='del'>---- getpwnam(name)</div><div class='del'>-</div><div class='del'>-	/etc/passwdãƒ•ã‚¡ã‚¤ãƒ«(ã‚ã‚‹ã„ã¯DBMãƒ•ã‚¡ã‚¤ãƒ«ã‚„NISãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹)ã‚’æ¤œ</div><div class='del'>-	ç´¢ã—ï¼Œnameã®åå‰ã‚’æŒã¤passwdã‚¨ãƒ³ãƒˆãƒªã‚’è¿”ã™ï¼Žæˆ»ã‚Šå€¤ã¯passwdæ§‹é€ </div><div class='del'>-	ä½“ã§ä»¥ä¸‹ã®ãƒ¡ãƒ³ãƒã‚’æŒã¤ï¼Ž</div><div class='del'>-</div><div class='del'>-	  struct passwd</div><div class='del'>-	    name 	# ãƒ¦ãƒ¼ã‚¶å(æ–‡å­—åˆ—)</div><div class='del'>-	    passwd	# ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰(æ–‡å­—åˆ—)</div><div class='del'>-	    uid		# ãƒ¦ãƒ¼ã‚¶ID(æ•´æ•°)</div><div class='del'>-	    gid		# ã‚°ãƒ«ãƒ¼ãƒ—ID(æ•´æ•°)</div><div class='del'>-	    gecos	# gecosãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰(æ–‡å­—åˆ—)</div><div class='del'>-	    dir		# ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª(æ–‡å­—åˆ—)</div><div class='del'>-	    shell	# ãƒ­ã‚°ã‚¤ãƒ³ã‚·ã‚§ãƒ«(æ–‡å­—åˆ—)</div><div class='del'>-	    # ä»¥é™ã®ãƒ¡ãƒ³ãƒã¯ã‚·ã‚¹ãƒ†ãƒ ã«ã‚ˆã£ã¦ã¯æä¾›ã•ã‚Œãªã„ï¼Ž</div><div class='del'>-	    change	# ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰å¤‰æ›´æ™‚é–“(æ•´æ•°)</div><div class='del'>-	    quota	# ã‚¯ã‚©ãƒ¼ã‚¿(æ•´æ•°)</div><div class='del'>-	    age		# ã‚¨ãƒ¼ã‚¸(æ•´æ•°)</div><div class='del'>-	    class	# ãƒ¦ãƒ¼ã‚¶ã‚¢ã‚¯ã‚»ã‚¹ã‚¯ãƒ©ã‚¹(æ–‡å­—åˆ—)</div><div class='del'>-	    comment	# ã‚³ãƒ¡ãƒ³ãƒˆ(æ–‡å­—åˆ—)</div><div class='del'>-	    expire	# ã‚¢ã‚«ã‚¦ãƒ³ãƒˆæœ‰åŠ¹æœŸé™(æ•´æ•°)</div><div class='del'>-	  end</div><div class='del'>-</div><div class='del'>-	è©³ç´°ã¯getpwnam(3)ã‚’å‚ç…§ã®ã“ã¨ï¼Ž</div><div class='del'>-</div><div class='del'>---- getpwuid([uid])</div><div class='del'>-</div><div class='del'>-	uidã‚’ãƒ¦ãƒ¼ã‚¶IDã¨ã™ã‚‹passwdã‚¨ãƒ³ãƒˆãƒªã‚’è¿”ã™ï¼Žæˆ»ã‚Šå€¤ã¯getpwnam()ã¨</div><div class='del'>-	åŒæ§˜ã§ã‚ã‚‹ï¼Žå¼•æ•°ã‚’çœç•¥ã—ãŸå ´åˆã«ã¯getuid()ã®å€¤ã‚’ç”¨ã„ã‚‹ï¼Žè©³ç´°ã¯</div><div class='del'>-	getpwuid(3)ã‚’å‚ç…§ã®ã“ã¨ï¼Ž</div><div class='del'>-</div><div class='del'>---- getgrgid(gid)</div><div class='del'>-</div><div class='del'>-	/etc/groupãƒ•ã‚¡ã‚¤ãƒ«(ã‚ã‚‹ã„ã¯â€¦getpwnamå‚ç…§)ã‚’æ¤œç´¢ã—ï¼Œgidã‚’ã‚°ãƒ«ãƒ¼</div><div class='del'>-	ãƒ—IDã¨ã™ã‚‹ã‚°ãƒ«ãƒ¼ãƒ—ã‚¨ãƒ³ãƒˆãƒªã‚’è¿”ã™ï¼Žæˆ»ã‚Šå€¤ã¯groupæ§‹é€ ä½“ã§ä»¥ä¸‹ã®</div><div class='del'>-	ãƒ¡ãƒ³ãƒã‚’æŒã¤ï¼Ž</div><div class='del'>-</div><div class='del'>-	  struct group</div><div class='del'>-	    name 	# ã‚°ãƒ«ãƒ¼ãƒ—å(æ–‡å­—åˆ—)</div><div class='del'>-	    passwd	# ã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰(æ–‡å­—åˆ—)</div><div class='del'>-	    gid		# ã‚°ãƒ«ãƒ¼ãƒ—ID(æ•´æ•°)</div><div class='del'>-	    mem		# ã‚°ãƒ«ãƒ¼ãƒ—ãƒ¡ãƒ³ãƒåã®é…åˆ—</div><div class='del'>-	  end</div><div class='del'>-</div><div class='del'>-	è©³ç´°ã¯getgrgid(3)ã‚’å‚ç…§ã®ã“ã¨ï¼Ž</div><div class='del'>-</div><div class='del'>---- getgrnam(name)</div><div class='del'>-</div><div class='del'>-	nameã¨ã„ã†åå‰ã®ã‚°ãƒ«ãƒ¼ãƒ—ã‚¨ãƒ³ãƒˆãƒªã‚’è¿”ã™ï¼Žæˆ»ã‚Šå€¤ã¯getgrgid()ã¨åŒ</div><div class='del'>-	æ§˜ã§ã‚ã‚‹ï¼Žè©³ç´°ã¯getgrnam(3)ã‚’å‚ç…§ï¼Ž</div><div class='del'>-</div><div class='del'>---- group</div><div class='del'>-</div><div class='del'>-	å…¨ã¦ã®ã‚°ãƒ«ãƒ¼ãƒ—ã‚¨ãƒ³ãƒˆãƒªã‚’é †ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ï¼Ž</div><div class='del'>-</div><div class='del'>---- passwd</div><div class='del'>-</div><div class='del'>-	å…¨ã¦ã®passwdã‚¨ãƒ³ãƒˆãƒªã‚’é †ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ï¼Ž</div><div class='del'>-</div><div class='del'>-=end</div><div class='head'>diff --git a/doc/examples/files.rdoc b/doc/examples/files.rdoc<br/>new file mode 100644<br/>index 0000000000..f736132770<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/examples/files.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/examples/files.rdoc</a></div><div class='hunk'>@@ -0,0 +1,26 @@</div><div class='add'>+# English text with newlines.</div><div class='add'>+text = &lt;&lt;~EOT</div><div class='add'>+  First line</div><div class='add'>+  Second line</div><div class='add'>+</div><div class='add'>+  Fourth line</div><div class='add'>+  Fifth line</div><div class='add'>+EOT</div><div class='add'>+</div><div class='add'>+# Russian text.</div><div class='add'>+russian = "\u{442 435 441 442}" # =&gt; "Ñ‚ÐµÑÑ‚"</div><div class='add'>+</div><div class='add'>+# Binary data.</div><div class='add'>+data = "\u9990\u9991\u9992\u9993\u9994"</div><div class='add'>+</div><div class='add'>+# Text file.</div><div class='add'>+File.write('t.txt', text)</div><div class='add'>+</div><div class='add'>+# File with Russian text.</div><div class='add'>+File.write('t.rus', russian)</div><div class='add'>+</div><div class='add'>+# File with binary data.</div><div class='add'>+f = File.new('t.dat', 'wb:UTF-16')</div><div class='add'>+f.write(data)</div><div class='add'>+f.close</div><div class='add'>+</div><div class='head'>diff --git a/doc/extension.ja.rdoc b/doc/extension.ja.rdoc<br/>index 88f300a562..93f5753cd1 100644<br/>--- a/<a href='/ruby.git/tree/doc/extension.ja.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/extension.ja.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/extension.ja.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/extension.ja.rdoc</a></div><div class='hunk'>@@ -215,17 +215,6 @@ rb_str_new_literal(const char *ptr) ::</div><div class='ctx'> </div><div class='ctx'>   Cã®ãƒªãƒ†ãƒ©ãƒ«æ–‡å­—åˆ—ã‹ã‚‰Rubyã®æ–‡å­—åˆ—ã‚’ç”Ÿæˆã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='del'>-rb_tainted_str_new(const char *ptr, long len) ::</div><div class='del'>-</div><div class='del'>-  æ±šæŸ“ãƒžãƒ¼ã‚¯ãŒä»˜åŠ ã•ã‚ŒãŸæ–°ã—ã„Rubyã®æ–‡å­—åˆ—ã‚’ç”Ÿæˆã™ã‚‹ï¼Žå¤–éƒ¨</div><div class='del'>-  ã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿ã«åŸºã¥ãæ–‡å­—åˆ—ã«ã¯æ±šæŸ“ãƒžãƒ¼ã‚¯ãŒä»˜åŠ ã•ã‚Œã‚‹ã¹ã</div><div class='del'>-  ã§ã‚ã‚‹ï¼Ž</div><div class='del'>-</div><div class='del'>-rb_tainted_str_new2(const char *ptr) ::</div><div class='del'>-rb_tainted_str_new_cstr(const char *ptr) ::</div><div class='del'>-</div><div class='del'>-  Cã®æ–‡å­—åˆ—ã‹ã‚‰æ±šæŸ“ãƒžãƒ¼ã‚¯ãŒä»˜åŠ ã•ã‚ŒãŸRubyã®æ–‡å­—åˆ—ã‚’ç”Ÿæˆã™ã‚‹ï¼Ž</div><div class='del'>-</div><div class='ctx'> rb_str_append(VALUE str1, VALUE str2) ::</div><div class='ctx'> </div><div class='ctx'>   Rubyã®æ–‡å­—åˆ—str1ã«Rubyã®æ–‡å­—åˆ—str2ã‚’è¿½åŠ ã™ã‚‹ï¼Ž</div><div class='hunk'>@@ -301,6 +290,14 @@ rb_str_set_len(VALUE str, long len) ::</div><div class='ctx'>   lenãƒã‚¤ãƒˆã¾ã§ã®å†…å®¹ã¯ä¿å­˜ã•ã‚Œã‚‹ï¼Žlenã¯strã®å®¹é‡ã‚’è¶Šãˆã¦ã„</div><div class='ctx'>   ã¦ã¯ãªã‚‰ãªã„ï¼Ž</div><div class='ctx'> </div><div class='add'>+rb_str_modify(VALUE str) ::</div><div class='add'>+</div><div class='add'>+  Rubyã®æ–‡å­—åˆ—ã®å¤‰æ›´ã™ã‚‹æº–å‚™ã‚’ã™ã‚‹ï¼ŽstrãŒå¤‰æ›´å¯èƒ½ã§ãªã‘ã‚Œã°ä¾‹</div><div class='add'>+  å¤–ãŒç™ºç”Ÿã™ã‚‹ï¼Žstrã®ãƒãƒƒãƒ•ã‚¡ãŒå…±æœ‰ã•ã‚Œã¦ã„ã‚‹å ´åˆã¯ï¼Œæ–°ã—ã„ãƒãƒƒ</div><div class='add'>+  ãƒ•ã‚¡ã‚’å‰²ã‚Šå½“ã¦ã¦å…±æœ‰ã•ã‚Œã¦ã„ãªã„çŠ¶æ…‹ã«ã™ã‚‹ï¼ŽRSTRING_PTRã‚’ä½¿ã£</div><div class='add'>+  ã¦ä¸­èº«ã‚’å¤‰æ›´ã—ãŸã‚Šï¼Œrb_str_set_lenã‚’å‘¼ã‚“ã ã‚Šã™ã‚‹å‰ã«ã¯ï¼Œ</div><div class='add'>+  å¿…ãšã“ã®é–¢æ•°ã‚’å‘¼ã°ãªã‘ã‚Œãªã‚‰ãªã„ï¼Ž</div><div class='add'>+</div><div class='ctx'> ==== é…åˆ—ã«å¯¾ã™ã‚‹é–¢æ•°</div><div class='ctx'> </div><div class='ctx'> rb_ary_new() ::</div><div class='hunk'>@@ -620,12 +617,14 @@ Cè¨€èªžã¨Rubyã®é–“ã§æƒ…å ±ã‚’å…±æœ‰ã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦è§£èª¬ã—ã¾ã™ï¼Ž</div><div class='ctx'> Qtrue ::</div><div class='ctx'> Qfalse ::</div><div class='ctx'> </div><div class='del'>-  çœŸå½å€¤ï¼ŽQfalseã¯Cè¨€èªžã§ã‚‚å½ã¨ã¿ãªã•ã‚Œã¾ã™(ã¤ã¾ã‚Š0)ï¼Ž</div><div class='add'>+  çœŸå½å€¤ï¼ŽCè¨€èªžã‹ã‚‰è¦‹ãŸã€Œtrueã€ã¨ã€Œfalseã€ï¼Ž</div><div class='ctx'> </div><div class='ctx'> Qnil ::</div><div class='ctx'> </div><div class='ctx'>   Cè¨€èªžã‹ã‚‰è¦‹ãŸã€Œnilã€ï¼Ž</div><div class='ctx'> </div><div class='add'>+RTEST(obj)ã¨ã„ã†ãƒžã‚¯ãƒ­ã¯objãŒQfalseã‹Qnilã®ã¨ã0ã‚’è¿”ã—ã¾ã™ï¼Ž</div><div class='add'>+</div><div class='ctx'> === Cã¨Rubyã§å…±æœ‰ã•ã‚Œã‚‹å¤§åŸŸå¤‰æ•°</div><div class='ctx'> </div><div class='ctx'> Cã¨Rubyã§å¤§åŸŸå¤‰æ•°ã‚’ä½¿ã£ã¦æƒ…å ±ã‚’å…±æœ‰ã§ãã¾ã™ï¼Žå…±æœ‰ã§ãã‚‹å¤§åŸŸ</div><div class='hunk'>@@ -700,30 +699,28 @@ Cã®ä¸–ç•Œã§å®šç¾©ã•ã‚ŒãŸãƒ‡ãƒ¼ã‚¿(æ§‹é€ ä½“)ã‚’Rubyã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã¨ã</div><div class='ctx'> </div><div class='ctx'> ã“ã®ãƒžã‚¯ãƒ­ã®æˆ»ã‚Šå€¤ã¯ç”Ÿæˆã•ã‚ŒãŸã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’è¡¨ã™VALUEå€¤ã§ã™ï¼Ž</div><div class='ctx'> </div><div class='del'>-klassã¯ã“ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®ã‚¯ãƒ©ã‚¹ã§ã™ï¼Ždata_typeã¯ã“ã®æ§‹é€ ä½“ã‚’</div><div class='del'>-RubyãŒç®¡ç†ã™ã‚‹ãŸã‚ã®æƒ…å ±ã‚’è¨˜è¿°ã—ãŸconst rb_data_type_tåž‹ã¸ã®</div><div class='del'>-ãƒã‚¤ãƒ³ã‚¿ã§ã™ï¼Ž</div><div class='add'>+klassã¯ã“ã®ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®ã‚¯ãƒ©ã‚¹ã§ã™ï¼Žklassã¯, Objectã‚¯ãƒ©ã‚¹ã‹</div><div class='add'>+ã‚‰æ´¾ç”Ÿã—, å¿…ãšrb_define_alloc_funcã‹rb_undef_alloc_funcã‚’å‘¼</div><div class='add'>+ã³å‡ºã—ã¦allocatorã‚’è¨­å®šã—ã¦ãã ã•ã„ï¼Ž</div><div class='ctx'> </div><div class='del'>-ãªãŠ, klassã¯, Objectã‚„ä»–ã®ã‚¯ãƒ©ã‚¹ã§ã¯ãªãData (rb_cData)ã¨ã„</div><div class='del'>-ã†ç‰¹åˆ¥ãªã‚¯ãƒ©ã‚¹ã‹ã‚‰æ´¾ç”Ÿã™ã‚‹ã“ã¨ãŒæŽ¨å¥¨ã•ã‚Œã¾ã™ï¼Ž</div><div class='del'>-Dataã‹ã‚‰æ´¾ç”Ÿã—ãªã„å ´åˆã«ã¯, å¿…ãšrb_undef_alloc_func(klass)</div><div class='del'>-ã‚’å‘¼ã³å‡ºã—ã¦ãã ã•ã„ï¼Ž</div><div class='add'>+data_typeã¯ã“ã®æ§‹é€ ä½“ã‚’RubyãŒç®¡ç†ã™ã‚‹ãŸã‚ã®æƒ…å ±ã‚’è¨˜è¿°ã—ãŸ</div><div class='add'>+const rb_data_type_tåž‹ã¸ã®ãƒã‚¤ãƒ³ã‚¿ã§ã™ï¼Ž</div><div class='ctx'> </div><div class='ctx'> rb_data_type_tã¯æ¬¡ã®ã‚ˆã†ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='ctx'>   typedef struct rb_data_type_struct rb_data_type_t;</div><div class='ctx'> </div><div class='ctx'>   struct rb_data_type_struct {</div><div class='del'>-          const char *wrap_struct_name;</div><div class='del'>-          struct {</div><div class='del'>-                  void (*dmark)(void*);</div><div class='del'>-                  void (*dfree)(void*);</div><div class='del'>-                  size_t (*dsize)(const void *);</div><div class='del'>-                  void *reserved[2];</div><div class='del'>-          } function;</div><div class='del'>-          const rb_data_type_t *parent;</div><div class='del'>-          void *data;</div><div class='del'>-          VALUE flags;</div><div class='add'>+      const char *wrap_struct_name;</div><div class='add'>+      struct {</div><div class='add'>+          void (*dmark)(void*);</div><div class='add'>+          void (*dfree)(void*);</div><div class='add'>+          size_t (*dsize)(const void *);</div><div class='add'>+          void *reserved[2];</div><div class='add'>+      } function;</div><div class='add'>+      const rb_data_type_t *parent;</div><div class='add'>+      void *data;</div><div class='add'>+      VALUE flags;</div><div class='ctx'>   };</div><div class='ctx'> </div><div class='ctx'> wrap_struct_nameã¯ã“ã®æ§‹é€ ä½“ã‚’è­˜åˆ¥ã™ã‚‹åå‰ã§ã™ï¼Žä¸»ã«çµ±è¨ˆæƒ…å ±</div><div class='hunk'>@@ -746,8 +743,8 @@ dmarkã¯ã‚¬ãƒ¼ãƒ™ãƒ¼ã‚¸ã‚³ãƒ¬ã‚¯ã‚¿ãŒã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã¸ã®å‚ç…§ã‚’ãƒžãƒ¼ã‚¯</div><div class='ctx'> ++</div><div class='ctx'> </div><div class='ctx'> dfreeã¯ã“ã®æ§‹é€ ä½“ãŒã‚‚ã†ä¸è¦ã«ãªã£ãŸæ™‚ã«å‘¼ã°ã‚Œã‚‹é–¢æ•°ã§ã™ï¼Žã“</div><div class='del'>-ã®é–¢æ•°ãŒã‚¬ãƒ¼ãƒ™ãƒ¼ã‚¸ã‚³ãƒ¬ã‚¯ã‚¿ã‹ã‚‰å‘¼ã°ã‚Œã¾ã™ï¼Žã“ã‚ŒãŒ-1ã®å ´åˆã¯ï¼Œ</div><div class='del'>-å˜ç´”ã«æ§‹é€ ä½“ãŒè§£æ”¾ã•ã‚Œã¾ã™ï¼Ž</div><div class='add'>+ã®é–¢æ•°ãŒã‚¬ãƒ¼ãƒ™ãƒ¼ã‚¸ã‚³ãƒ¬ã‚¯ã‚¿ã‹ã‚‰å‘¼ã°ã‚Œã¾ã™ï¼Žã“ã‚ŒãŒ</div><div class='add'>+RUBY_DEFAULT_FREEã®å ´åˆã¯ï¼Œå˜ç´”ã«æ§‹é€ ä½“ãŒè§£æ”¾ã•ã‚Œã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='ctx'> dsizeã¯æ§‹é€ ä½“ãŒæ¶ˆè²»ã—ã¦ã„ã‚‹ãƒ¡ãƒ¢ãƒªã®ãƒã‚¤ãƒˆæ•°ã‚’è¿”ã™é–¢æ•°ã§ã™ï¼Ž</div><div class='ctx'> å¼•æ•°ã¨ã—ã¦æ§‹é€ ä½“ã¸ã®ãƒã‚¤ãƒ³ã‚¿ãŒæ¸¡ã•ã‚Œã¾ã™ï¼Žå®Ÿè£…å›°é›£ã§ã‚ã‚Œã°0</div><div class='hunk'>@@ -1069,6 +1066,20 @@ Rubyã®ã‚½ãƒ¼ã‚¹ã¯ã„ãã¤ã‹ã«åˆ†é¡žã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ï¼Žã“ã®ã†ã</div><div class='ctx'> ã¦ã„ã¾ã™ï¼Žã“ã‚Œã‚‰ã®ã‚½ãƒ¼ã‚¹ã¯ä»Šã¾ã§ã®èª¬æ˜Žã§ã»ã¨ã‚“ã©ç†è§£ã§ãã‚‹ã¨</div><div class='ctx'> æ€ã„ã¾ã™ï¼Ž</div><div class='ctx'> </div><div class='add'>+=== Rubyã®ãƒ˜ãƒƒãƒ€ãƒ•ã‚¡ã‚¤ãƒ«</div><div class='add'>+</div><div class='add'>+&lt;tt&gt;$repo_root/include/ruby&lt;/tt&gt;ä»¥ä¸‹ã¯ã™ã¹ã¦&lt;tt&gt;make</div><div class='add'>+install&lt;/tt&gt;ã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¾ã™ï¼Žæ‹¡å¼µãƒ©ã‚¤ãƒ–ãƒ©ãƒªã‹ã‚‰ã¯ï¼Œ</div><div class='add'>+&lt;tt&gt;#include &lt;ruby.h&gt;&lt;/tt&gt;ã§ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ï¼Ž</div><div class='add'>++rbimpl_+ï¼Œ+RBIMPL_+ã®ãƒ—ãƒ¬ãƒ•ã‚£ãƒƒã‚¯ã‚¹ãŒä»˜ã„ãŸå®Ÿè£…ã®è©³ç´°ã®ãŸã‚</div><div class='add'>+ã®ã‚·ãƒ³ãƒœãƒ«ã‚’é™¤ãï¼Œã™ã¹ã¦ã®ã‚·ãƒ³ãƒœãƒ«ã¯å…¬é–‹APIã§ã™ï¼Ž</div><div class='add'>+</div><div class='add'>+æ‹¡å¼µãƒ©ã‚¤ãƒ–ãƒ©ãƒªã§ç›´æŽ¥ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã§ãã‚‹ã®ã¯ï¼Œ</div><div class='add'>+&lt;tt&gt;$repo_root/include/ruby/*.h&lt;/tt&gt;ã®ã†ã¡ï¼Œå¯¾å¿œã™ã‚‹</div><div class='add'>+&lt;tt&gt;HAVE_RUBY_*_H&lt;/tt&gt;ãƒžã‚¯ãƒ­ãŒ</div><div class='add'>+&lt;tt&gt;$repo_root/include/ruby.h&lt;/tt&gt;ãƒ˜ãƒƒãƒ€ãƒ¼ã§å®šç¾©ã•ã‚Œã¦ã„ã‚‹ã‚‚</div><div class='add'>+ã®ã§ã™ï¼Ž</div><div class='add'>+</div><div class='ctx'> === Rubyè¨€èªžã®ã‚³ã‚¢</div><div class='ctx'> </div><div class='ctx'> class.c    :: ã‚¯ãƒ©ã‚¹ã¨ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«</div><div class='hunk'>@@ -1111,9 +1122,8 @@ lex.c         :: è‡ªå‹•ç”Ÿæˆ</div><div class='ctx'>     -&gt; opt*.inc            : è‡ªå‹•ç”Ÿæˆ</div><div class='ctx'>     -&gt; vm.inc              : è‡ªå‹•ç”Ÿæˆ</div><div class='ctx'> </div><div class='del'>-=== æ­£è¦è¡¨ç¾ã‚¨ãƒ³ã‚¸ãƒ³ (é¬¼è»Š)</div><div class='add'>+=== æ­£è¦è¡¨ç¾ã‚¨ãƒ³ã‚¸ãƒ³ (é¬¼é›²)</div><div class='ctx'> </div><div class='del'>-  regex.c</div><div class='ctx'>   regcomp.c</div><div class='ctx'>   regenc.c</div><div class='ctx'>   regerror.c</div><div class='hunk'>@@ -1243,7 +1253,6 @@ Data_Get_Struct(data, type, sval) ::</div><div class='ctx'>   RB_INTEGER_TYPE_P(value)</div><div class='ctx'>   RB_FLOAT_TYPE_P(value)</div><div class='ctx'>   void Check_Type(VALUE value, int type)</div><div class='del'>-  SafeStringValue(value)</div><div class='ctx'> </div><div class='ctx'> === åž‹å¤‰æ›</div><div class='ctx'> </div><div class='hunk'>@@ -1325,8 +1334,13 @@ void rb_define_hooked_variable(const char *name, VALUE *var, VALUE (*getter)(),</div><div class='ctx'> </div><div class='ctx'> void rb_global_variable(VALUE *var) ::</div><div class='ctx'> </div><div class='del'>-  GCã®ãŸã‚ï¼ŒRubyãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‹ã‚‰ã¯ã‚¢ã‚¯ã‚»ã‚¹ã•ã‚Œãªã„ãŒ, Rubyã‚ªãƒ–</div><div class='del'>-  ã‚¸ã‚§ã‚¯ãƒˆã‚’å«ã‚€å¤§åŸŸå¤‰æ•°ã‚’ãƒžãƒ¼ã‚¯ã™ã‚‹ï¼Ž</div><div class='add'>+  ãƒžãƒ¼ã‚¯ã™ã‚‹å¿…è¦ã®ã‚ã‚‹Rubyã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’å«ã‚€å¤§åŸŸå¤‰æ•°ã‚’ï¼ŒGC</div><div class='add'>+  ã«ã‚ˆã£ã¦è§£æ”¾ã•ã‚Œãªã„ã‚ˆã†ã«ä¿è­·ã™ã‚‹ï¼Ž</div><div class='add'>+</div><div class='add'>+void rb_gc_register_mark_object(VALUE object) ::</div><div class='add'>+</div><div class='add'>+  ãƒžãƒ¼ã‚¯ã™ã‚‹å¿…è¦ã®ã‚ã‚‹Rubyã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’ï¼ŒGCã«ã‚ˆã£ã¦è§£æ”¾ã•</div><div class='add'>+  ã‚Œãªã„ã‚ˆã†ã«ç™»éŒ²ã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='ctx'> === å®šæ•°</div><div class='ctx'> </div><div class='hunk'>@@ -1681,6 +1695,9 @@ HAVE_RUBY_*_H ::</div><div class='ctx'>   ã‚’æ„å‘³ã™ã‚‹ï¼ŽãŸã¨ãˆã°ï¼ŒHAVE_RUBY_ST_H ãŒå®šç¾©ã•ã‚Œã¦ã„ã‚‹å ´åˆã¯</div><div class='ctx'>   å˜ãªã‚‹ st.h ã§ã¯ãªã ruby/st.h ã‚’ä½¿ç”¨ã™ã‚‹ï¼Ž</div><div class='ctx'> </div><div class='add'>+  ã“ã‚Œã‚‰ã®ãƒžã‚¯ãƒ­ã«å¯¾å¿œã™ã‚‹ãƒ˜ãƒƒãƒ€ãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«ã¯ï¼Œæ‹¡å¼µãƒ©ã‚¤ãƒ–ãƒ©ãƒª</div><div class='add'>+  ã‹ã‚‰ç›´æŽ¥ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã—ã¦ã‚‚ã‚ˆã„ï¼Ž</div><div class='add'>+</div><div class='ctx'> RB_EVENT_HOOKS_HAVE_CALLBACK_DATA ::</div><div class='ctx'> </div><div class='ctx'>   rb_add_event_hook() ãŒãƒ•ãƒƒã‚¯é–¢æ•°ã«æ¸¡ã™ data ã‚’ç¬¬3å¼•æ•°ã¨ã—ã¦</div><div class='hunk'>@@ -1757,6 +1774,14 @@ check_sizeof(type, header) ::</div><div class='ctx'>   `SIZEOF_{TYPE}` ã‚’å®šç¾©ã—ï¼Œãã®ã‚µã‚¤ã‚ºã‚’è¿”ã™ï¼Žå®šç¾©ã•ã‚Œã¦ã„ãª</div><div class='ctx'>   ã„ã¨ãã¯nilã‚’è¿”ã™ï¼Ž</div><div class='ctx'> </div><div class='add'>+append_cppflags(array-of-flags[, opt])</div><div class='add'>+append_cflags(array-of-flags[, opt])</div><div class='add'>+append_ldflags(array-of-flags[, opt])</div><div class='add'>+</div><div class='add'>+  å„flagãŒä½¿ç”¨å¯èƒ½ã§ã‚ã‚Œã°ï¼Œãã‚Œãžã‚Œ$CPPFLAGS, $CFLAGS,</div><div class='add'>+  $LDFLAGSã«è¿½åŠ ã™ã‚‹ï¼Žã‚³ãƒ³ãƒ‘ã‚¤ãƒ©ã®ãƒ•ãƒ©ã‚°ã«ã¯ç§»æ¤æ€§ãŒãªã„ã®ã§ï¼Œ</div><div class='add'>+  å¤‰æ•°ã«ç›´æŽ¥è¿½åŠ ã›ãšã“ã‚Œã‚‰ã‚’ä½¿ã†ã“ã¨ãŒæœ›ã¾ã—ã„ï¼Ž</div><div class='add'>+</div><div class='ctx'> create_makefile(target[, target_prefix]) ::</div><div class='ctx'> </div><div class='ctx'>   æ‹¡å¼µãƒ©ã‚¤ãƒ–ãƒ©ãƒªç”¨ã®Makefileã‚’ç”Ÿæˆã™ã‚‹ï¼Žã“ã®é–¢æ•°ã‚’å‘¼ã°ãªã‘ã‚Œ</div><div class='hunk'>@@ -1828,6 +1853,17 @@ rb_ary_store() ãªã©ã®ï¼Œé©åˆ‡ãª API é–¢æ•°ã‚’åˆ©ç”¨ã™ã‚‹ã‚ˆã†ã«ã—ã¦ä¸‹</div><div class='ctx'> ãã®ã»ã‹ï¼Œå¯¾å¿œã«ã¤ã„ã¦ã®è©³ç´°ã¯ extension.rdoc ã®ã€ŒAppendix D. Generational</div><div class='ctx'> GCã€ã‚’å‚ç…§ã—ã¦ä¸‹ã•ã„ï¼Ž</div><div class='ctx'> </div><div class='add'>+== Appendix E. Ractor ã‚µãƒãƒ¼ãƒˆ</div><div class='add'>+</div><div class='add'>+Ruby 3.0 ã‹ã‚‰ã€Ruby ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’ä¸¦åˆ—ã«å®Ÿè¡Œã™ã‚‹ãŸã‚ã®ä»•çµ„ã¿ã§ã‚ã‚‹ Ractor</div><div class='add'>+ãŒå°Žå…¥ã•ã‚Œã¾ã—ãŸã€‚é©åˆ‡ã«ä¸¦åˆ—ã«å®Ÿè¡Œã™ã‚‹ãŸã‚ã«ã¯ã€Ractor ã‚µãƒãƒ¼ãƒˆãŒå¿…è¦ã«</div><div class='add'>+ãªã‚Šã¾ã™ã€‚ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ãªã„ãƒ©ã‚¤ãƒ–ãƒ©ãƒªã¯ã€ãƒ¡ã‚¤ãƒ³ Ractor ä»¥å¤–ã§å®Ÿè¡Œã™ã‚‹ã¨</div><div class='add'>+ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ï¼ˆRactor::UnsafeErrorï¼‰ã€‚</div><div class='add'>+</div><div class='add'>+Ractor ã‚’ã‚µãƒãƒ¼ãƒˆã™ã‚‹ãŸã‚ã®è©³ç´°ã¯ã€extension.rdoc ã®ã€ŒAppendix F. Ractor</div><div class='add'>+supportã€ã‚’å‚ç…§ã—ã¦ãã ã•ã„ã€‚</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'> :enddoc: Local variables:</div><div class='ctx'> :enddoc: fill-column: 60</div><div class='ctx'> :enddoc: end:</div><div class='head'>diff --git a/doc/extension.rdoc b/doc/extension.rdoc<br/>index 691631ea17..ad9ae641d2 100644<br/>--- a/<a href='/ruby.git/tree/doc/extension.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/extension.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/extension.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/extension.rdoc</a></div><div class='hunk'>@@ -93,7 +93,9 @@ There are also faster check macros for fixnums and nil.</div><div class='ctx'> The data for type T_NIL, T_FALSE, T_TRUE are nil, false, true</div><div class='ctx'> respectively.  They are singletons for the data type.</div><div class='ctx'> The equivalent C constants are: Qnil, Qfalse, Qtrue.</div><div class='del'>-Note that Qfalse is false in C also (i.e. 0), but not Qnil.</div><div class='add'>+RTEST() will return true if a VALUE is neither Qfalse nor Qnil.</div><div class='add'>+If you need to differentiate Qfalse from Qnil,</div><div class='add'>+specifically test against Qfalse.</div><div class='ctx'> </div><div class='ctx'> The T_FIXNUM data is a 31bit or 63bit length fixed integer.</div><div class='ctx'> This size depends on the size of long: if long is 32bit then</div><div class='hunk'>@@ -190,16 +192,6 @@ rb_str_new_literal(const char *ptr) ::</div><div class='ctx'> </div><div class='ctx'>   Creates a new Ruby string from a C string literal.</div><div class='ctx'> </div><div class='del'>-rb_tainted_str_new(const char *ptr, long len) ::</div><div class='del'>-</div><div class='del'>-  Creates a new tainted Ruby string.  Strings from external data</div><div class='del'>-  sources should be tainted.</div><div class='del'>-</div><div class='del'>-rb_tainted_str_new2(const char *ptr) ::</div><div class='del'>-rb_tainted_str_new_cstr(const char *ptr) ::</div><div class='del'>-</div><div class='del'>-  Creates a new tainted Ruby string from a C string.</div><div class='del'>-</div><div class='ctx'> rb_sprintf(const char *format, ...) ::</div><div class='ctx'> rb_vsprintf(const char *format, va_list ap) ::</div><div class='ctx'> </div><div class='hunk'>@@ -279,6 +271,14 @@ rb_str_set_len(VALUE str, long len) ::</div><div class='ctx'>   up to len bytes, regardless RSTRING_LEN(str).  len must not exceed</div><div class='ctx'>   the capacity of str.</div><div class='ctx'> </div><div class='add'>+rb_str_modify(VALUE str) ::</div><div class='add'>+</div><div class='add'>+  Prepares a Ruby string to modify.  If str is not modifiable, this</div><div class='add'>+  function raises an exception, or if the buffer of str is shared,</div><div class='add'>+  this function allocates new buffer to make it unshared.  Always</div><div class='add'>+  you MUST call this function before modifying the contents using</div><div class='add'>+  RSTRING_PTR and/or rb_str_set_len.</div><div class='add'>+</div><div class='ctx'> ==== Array Functions</div><div class='ctx'> </div><div class='ctx'> rb_ary_new() ::</div><div class='hunk'>@@ -450,6 +450,18 @@ you may rely on:</div><div class='ctx'> </div><div class='ctx'>   VALUE rb_call_super(int argc, const VALUE *argv)</div><div class='ctx'> </div><div class='add'>+To specify whether keyword arguments are passed when calling super:</div><div class='add'>+</div><div class='add'>+  VALUE rb_call_super_kw(int argc, const VALUE *argv, int kw_splat)</div><div class='add'>+</div><div class='add'>++kw_splat+ can have these possible values (used by all methods that accept</div><div class='add'>++kw_splat+ argument):</div><div class='add'>+</div><div class='add'>+RB_NO_KEYWORDS :: Do not pass keywords</div><div class='add'>+RB_PASS_KEYWORDS :: Pass keywords, final argument should be a hash of keywords</div><div class='add'>+RB_PASS_CALLED_KEYWORDS :: Pass keywords if current method was called with</div><div class='add'>+                           keywords, useful for argument delegation</div><div class='add'>+</div><div class='ctx'> To achieve the receiver of the current scope (if no other way is</div><div class='ctx'> available), you can use:</div><div class='ctx'> </div><div class='hunk'>@@ -647,30 +659,30 @@ with the next macro.</div><div class='ctx'> </div><div class='ctx'> TypedData_Wrap_Struct() returns a created Ruby object as a VALUE.</div><div class='ctx'> </div><div class='del'>-The klass argument is the class for the object.</div><div class='add'>+The klass argument is the class for the object.  The klass should</div><div class='add'>+derive from rb_cObject, and the allocator must be set by calling</div><div class='add'>+rb_define_alloc_func or rb_undef_alloc_func.</div><div class='add'>+</div><div class='ctx'> data_type is a pointer to a const rb_data_type_t which describes</div><div class='ctx'> how Ruby should manage the struct.</div><div class='ctx'> </div><div class='del'>-It is recommended that klass derives from a special class called</div><div class='del'>-Data (rb_cData) but not from Object or other ordinal classes.</div><div class='del'>-If it doesn't, you have to call rb_undef_alloc_func(klass).</div><div class='del'>-</div><div class='ctx'> rb_data_type_t is defined like this.  Let's take a look at each</div><div class='ctx'> member of the struct.</div><div class='ctx'> </div><div class='ctx'>   typedef struct rb_data_type_struct rb_data_type_t;</div><div class='ctx'> </div><div class='ctx'>   struct rb_data_type_struct {</div><div class='del'>-          const char *wrap_struct_name;</div><div class='del'>-          struct {</div><div class='del'>-                  void (*dmark)(void*);</div><div class='del'>-                  void (*dfree)(void*);</div><div class='del'>-                  size_t (*dsize)(const void *);</div><div class='del'>-                  void *reserved[2];</div><div class='del'>-          } function;</div><div class='del'>-          const rb_data_type_t *parent;</div><div class='del'>-          void *data;</div><div class='del'>-          VALUE flags;</div><div class='add'>+      const char *wrap_struct_name;</div><div class='add'>+      struct {</div><div class='add'>+          void (*dmark)(void*);</div><div class='add'>+          void (*dfree)(void*);</div><div class='add'>+          size_t (*dsize)(const void *);</div><div class='add'>+          void (*dcompact)(void*);</div><div class='add'>+          void *reserved[1];</div><div class='add'>+      } function;</div><div class='add'>+      const rb_data_type_t *parent;</div><div class='add'>+      void *data;</div><div class='add'>+      VALUE flags;</div><div class='ctx'>   };</div><div class='ctx'> </div><div class='ctx'> wrap_struct_name is an identifier of this instance of the struct.</div><div class='hunk'>@@ -691,14 +703,22 @@ Note that it is recommended to avoid such a reference.</div><div class='ctx'> ++</div><div class='ctx'> </div><div class='ctx'> dfree is a function to free the pointer allocation.</div><div class='del'>-If this is -1, the pointer will be just freed.</div><div class='add'>+If this is RUBY_DEFAULT_FREE, the pointer will be just freed.</div><div class='ctx'> </div><div class='ctx'> dsize calculates memory consumption in bytes by the struct.</div><div class='ctx'> Its parameter is a pointer to your struct.</div><div class='ctx'> You can pass 0 as dsize if it is hard to implement such a function.</div><div class='ctx'> But it is still recommended to avoid 0.</div><div class='ctx'> </div><div class='del'>-You have to fill reserved and parent with 0.</div><div class='add'>+dcompact is invoked when memory compaction took place.</div><div class='add'>+Referred Ruby objects that were marked by rb_gc_mark_movable()</div><div class='add'>+can here be updated per rb_gc_location().</div><div class='add'>+</div><div class='add'>+You have to fill reserved with 0.</div><div class='add'>+</div><div class='add'>+parent can point to another C type definition that the Ruby object</div><div class='add'>+is inherited from. Then TypedData_Get_Struct() does also accept</div><div class='add'>+derived objects.</div><div class='ctx'> </div><div class='ctx'> You can fill "data" with an arbitrary value for your use.</div><div class='ctx'> Ruby does nothing with the member.</div><div class='hunk'>@@ -714,7 +734,7 @@ RUBY_TYPED_FREE_IMMEDIATELY ::</div><div class='ctx'>   You can specify this flag if the dfree never unlocks Ruby's</div><div class='ctx'>   internal lock (GVL).</div><div class='ctx'> </div><div class='del'>-  If this flag is not set, Ruby defers invokation of dfree()</div><div class='add'>+  If this flag is not set, Ruby defers invocation of dfree()</div><div class='ctx'>   and invokes dfree() at the same time as finalizers.</div><div class='ctx'> </div><div class='ctx'> RUBY_TYPED_WB_PROTECTED ::</div><div class='hunk'>@@ -730,6 +750,14 @@ RUBY_TYPED_WB_PROTECTED ::</div><div class='ctx'>   More about write barriers can be found in "Generational GC" in</div><div class='ctx'>   Appendix D.</div><div class='ctx'> </div><div class='add'>+RUBY_TYPED_FROZEN_SHAREABLE ::</div><div class='add'>+</div><div class='add'>+  This flag indicates that the object is shareable object</div><div class='add'>+  if the object is frozen. See Appendix F more details.</div><div class='add'>+</div><div class='add'>+  If this flag is not set, the object can not become a shareable</div><div class='add'>+  object by Ractor.make_shareable() method.</div><div class='add'>+</div><div class='ctx'> You can allocate and wrap the structure in one step.</div><div class='ctx'> </div><div class='ctx'>   TypedData_Make_Struct(klass, type, data_type, sval)</div><div class='hunk'>@@ -787,11 +815,14 @@ the library.</div><div class='ctx'> </div><div class='ctx'> Here's the example of an initializing function.</div><div class='ctx'> </div><div class='add'>+  #include &lt;ruby.h&gt;</div><div class='ctx'>   void</div><div class='ctx'>   Init_dbm(void)</div><div class='ctx'>   {</div><div class='ctx'>       /* define DBM class */</div><div class='ctx'>       VALUE cDBM = rb_define_class("DBM", rb_cObject);</div><div class='add'>+      /* Redefine DBM.allocate</div><div class='add'>+      rb_define_alloc_func(cDBM, fdbm_alloc);</div><div class='ctx'>       /* DBM includes Enumerable module */</div><div class='ctx'>       rb_include_module(cDBM, rb_mEnumerable);</div><div class='ctx'> </div><div class='hunk'>@@ -801,7 +832,7 @@ Here's the example of an initializing function.</div><div class='ctx'>       /* DBM instance method close(): no args */</div><div class='ctx'>       rb_define_method(cDBM, "close", fdbm_close, 0);</div><div class='ctx'>       /* DBM instance method []: 1 argument */</div><div class='del'>-      rb_define_method(cDBM, "[]", fdbm_fetch, 1);</div><div class='add'>+      rb_define_method(cDBM, "[]", fdbm_aref, 1);</div><div class='ctx'> </div><div class='ctx'>       /* ... */</div><div class='ctx'> </div><div class='hunk'>@@ -824,10 +855,19 @@ TypedData_Make_Struct.</div><div class='ctx'>       RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='ctx'>   };</div><div class='ctx'> </div><div class='del'>-  obj = TypedData_Make_Struct(klass, struct dbmdata, &amp;dbm_type, dbmp);</div><div class='add'>+  static VALUE</div><div class='add'>+  fdbm_alloc(VALUE klass)</div><div class='add'>+  {</div><div class='add'>+      struct dbmdata *dbmp;</div><div class='add'>+      /* Allocate T_DATA object and C struct and fill struct with zero bytes */</div><div class='add'>+      return TypedData_Make_Struct(klass, struct dbmdata, &amp;dbm_type, dbmp);</div><div class='add'>+  }</div><div class='ctx'> </div><div class='ctx'> This code wraps the dbmdata structure into a Ruby object.  We avoid</div><div class='ctx'> wrapping DBM* directly, because we want to cache size information.</div><div class='add'>+Since Object.allocate allocates an ordinary T_OBJECT type (instead</div><div class='add'>+of T_DATA), it's important to either use rb_define_alloc_func() to</div><div class='add'>+overwrite it or rb_undef_alloc_func() to delete it.</div><div class='ctx'> </div><div class='ctx'> To retrieve the dbmdata structure from a Ruby object, we define the</div><div class='ctx'> following macro:</div><div class='hunk'>@@ -845,9 +885,13 @@ There are three kinds of way to receive method arguments.  First,</div><div class='ctx'> methods with a fixed number of arguments receive arguments like this:</div><div class='ctx'> </div><div class='ctx'>   static VALUE</div><div class='del'>-  fdbm_delete(VALUE obj, VALUE keystr)</div><div class='add'>+  fdbm_aref(VALUE obj, VALUE keystr)</div><div class='ctx'>   {</div><div class='del'>-        /* ... */</div><div class='add'>+      struct dbmdata *dbmp;</div><div class='add'>+      GetDBM(obj, dbmp);</div><div class='add'>+      /* Use dbmp to access the key */</div><div class='add'>+      dbm_fetch(dbmp-&gt;di_dbm, StringValueCStr(keystr));</div><div class='add'>+      /* ... */</div><div class='ctx'>   }</div><div class='ctx'> </div><div class='ctx'> The first argument of the C function is the self, the rest are the</div><div class='hunk'>@@ -895,6 +939,10 @@ but are not exported to the Ruby world.  You need to protect them by</div><div class='ctx'> </div><div class='ctx'>   void rb_global_variable(VALUE *var)</div><div class='ctx'> </div><div class='add'>+or the objects themselves by</div><div class='add'>+</div><div class='add'>+  void rb_gc_register_mark_object(VALUE object)</div><div class='add'>+</div><div class='ctx'> === Prepare extconf.rb</div><div class='ctx'> </div><div class='ctx'> If the file named extconf.rb exists, it will be executed to generate</div><div class='hunk'>@@ -908,6 +956,9 @@ need to put</div><div class='ctx'> at the top of the file.  You can use the functions below to check</div><div class='ctx'> various conditions.</div><div class='ctx'> </div><div class='add'>+  append_cppflags(array-of-flags[, opt]): append each flag to $CPPFLAGS if usable</div><div class='add'>+  append_cflags(array-of-flags[, opt]): append each flag to $CFLAGS if usable</div><div class='add'>+  append_ldflags(array-of-flags[, opt]): append each flag to $LDFLAGS if usable</div><div class='ctx'>   have_macro(macro[, headers[, opt]]): check whether macro is defined</div><div class='ctx'>   have_library(lib[, func[, headers[, opt]]]): check whether library containing function exists</div><div class='ctx'>   find_library(lib[, func, *paths]): find library from paths</div><div class='hunk'>@@ -936,6 +987,10 @@ The value of the variables below will affect the Makefile.</div><div class='ctx'>   $LDFLAGS: included in LDFLAGS make variable (such as -L)</div><div class='ctx'>   $objs: list of object file names</div><div class='ctx'> </div><div class='add'>+Compiler/linker flags are not portable usually, you should use</div><div class='add'>++append_cppflags+, +append_cpflags+ and +append_ldflags+ respectively</div><div class='add'>+instead of appending the above variables directly.</div><div class='add'>+</div><div class='ctx'> Normally, the object files list is automatically generated by searching</div><div class='ctx'> source files, but you must define them explicitly if any sources will</div><div class='ctx'> be generated while building.</div><div class='hunk'>@@ -989,7 +1044,24 @@ You can do anything you want with your library.  The author of Ruby</div><div class='ctx'> will not claim any restrictions on your code depending on the Ruby API.</div><div class='ctx'> Feel free to use, modify, distribute or sell your program.</div><div class='ctx'> </div><div class='del'>-== Appendix A. Ruby Source Files Overview</div><div class='add'>+== Appendix A. Ruby Header and Source Files Overview</div><div class='add'>+</div><div class='add'>+=== Ruby Header Files</div><div class='add'>+</div><div class='add'>+Everything under &lt;tt&gt;$repo_root/include/ruby&lt;/tt&gt; is installed with</div><div class='add'>+&lt;tt&gt;make install&lt;/tt&gt;.</div><div class='add'>+It should be included per &lt;tt&gt;#include &lt;ruby.h&gt;&lt;/tt&gt; from C extensions.</div><div class='add'>+All symbols are public API with the exception of symbols prefixed with</div><div class='add'>++rbimpl_+ or +RBIMPL_+. They are implementation details and shouldn't</div><div class='add'>+be used by C extensions.</div><div class='add'>+</div><div class='add'>+Only &lt;tt&gt;$repo_root/include/ruby/*.h&lt;/tt&gt; whose corresponding macros</div><div class='add'>+are defined in the &lt;tt&gt;$repo_root/include/ruby.h&lt;/tt&gt; header are</div><div class='add'>+allowed to be &lt;tt&gt;#include&lt;/tt&gt;-d by C extensions.</div><div class='add'>+</div><div class='add'>+Header files under &lt;tt&gt;$repo_root/internal/&lt;/tt&gt; or directly under the</div><div class='add'>+root &lt;tt&gt;$repo_root/*.h&lt;/tt&gt; are not make-installed.</div><div class='add'>+They are internal headers with only internal APIs.</div><div class='ctx'> </div><div class='ctx'> === Ruby Language Core</div><div class='ctx'> </div><div class='hunk'>@@ -1033,9 +1105,8 @@ lex.c         :: automatically generated from keywords</div><div class='ctx'>     -&gt; opt*.inc            : automatically generated</div><div class='ctx'>     -&gt; vm.inc              : automatically generated</div><div class='ctx'> </div><div class='del'>-=== Regular Expression Engine (Oniguruma)</div><div class='add'>+=== Regular Expression Engine (Onigumo)</div><div class='ctx'> </div><div class='del'>-  regex.c</div><div class='ctx'>   regcomp.c</div><div class='ctx'>   regenc.c</div><div class='ctx'>   regerror.c</div><div class='hunk'>@@ -1184,10 +1255,6 @@ void Check_Type(VALUE value, int type) ::</div><div class='ctx'> </div><div class='ctx'>   Ensures +value+ is of the given internal +type+ or raises a TypeError</div><div class='ctx'> </div><div class='del'>-SafeStringValue(value) ::</div><div class='del'>-</div><div class='del'>-  Checks that +value+ is a String and is not tainted</div><div class='del'>-</div><div class='ctx'> === Data Type Conversion</div><div class='ctx'> </div><div class='ctx'> FIX2INT(value), INT2FIX(i) ::</div><div class='hunk'>@@ -1337,8 +1404,11 @@ void rb_define_hooked_variable(const char *name, VALUE *var, VALUE (*getter)(),</div><div class='ctx'> </div><div class='ctx'> void rb_global_variable(VALUE *var) ::</div><div class='ctx'> </div><div class='del'>-  GC requires C global variables which hold Ruby values to be marked.</div><div class='del'>-  rb_global_variable tells GC to protect these variables.</div><div class='add'>+  Tells GC to protect C global variable, which holds Ruby value to be marked.</div><div class='add'>+</div><div class='add'>+void rb_gc_register_mark_object(VALUE object) ::</div><div class='add'>+</div><div class='add'>+  Tells GC to protect the +object+, which may not be referenced anywhere.</div><div class='ctx'> </div><div class='ctx'> === Constant Definition</div><div class='ctx'> </div><div class='hunk'>@@ -1383,7 +1453,7 @@ rb_scan_args(int argc, VALUE *argv, const char *fmt, ...) ::</div><div class='ctx'>   according to the format string.  The format can be described in ABNF</div><div class='ctx'>   as follows:</div><div class='ctx'> </div><div class='del'>-    scan-arg-spec  := param-arg-spec [option-hash-arg-spec] [block-arg-spec]</div><div class='add'>+    scan-arg-spec  := param-arg-spec [keyword-arg-spec] [block-arg-spec]</div><div class='ctx'> </div><div class='ctx'>     param-arg-spec := pre-arg-spec [post-arg-spec] / post-arg-spec /</div><div class='ctx'>                       pre-opt-post-arg-spec</div><div class='hunk'>@@ -1392,7 +1462,7 @@ rb_scan_args(int argc, VALUE *argv, const char *fmt, ...) ::</div><div class='ctx'>                       [num-of-trailing-mandatory-args]</div><div class='ctx'>     pre-opt-post-arg-spec := num-of-leading-mandatory-args num-of-optional-args</div><div class='ctx'>                              num-of-trailing-mandatory-args</div><div class='del'>-    option-hash-arg-spec := sym-for-option-hash-arg</div><div class='add'>+    keyword-arg-spec := sym-for-keyword-arg</div><div class='ctx'>     block-arg-spec := sym-for-block-arg</div><div class='ctx'> </div><div class='ctx'>     num-of-leading-mandatory-args  := DIGIT ; The number of leading</div><div class='hunk'>@@ -1404,18 +1474,10 @@ rb_scan_args(int argc, VALUE *argv, const char *fmt, ...) ::</div><div class='ctx'>                                             ; captured as a ruby array</div><div class='ctx'>     num-of-trailing-mandatory-args := DIGIT ; The number of trailing</div><div class='ctx'>                                             ; mandatory arguments</div><div class='del'>-    sym-for-option-hash-arg        := ":"   ; Indicates that an option</div><div class='del'>-                                            ; hash is captured if the last</div><div class='del'>-                                            ; argument is a hash or can be</div><div class='del'>-                                            ; converted to a hash with</div><div class='del'>-                                            ; #to_hash.  When the last</div><div class='del'>-                                            ; argument is nil, it is</div><div class='del'>-                                            ; captured if it is not</div><div class='del'>-                                            ; ambiguous to take it as</div><div class='del'>-                                            ; empty option hash; i.e. '*'</div><div class='del'>-                                            ; is not specified and</div><div class='del'>-                                            ; arguments are given more</div><div class='del'>-                                            ; than sufficient.</div><div class='add'>+    sym-for-keyword-arg            := ":"   ; Indicates that keyword</div><div class='add'>+                                            ; argument captured as a hash.</div><div class='add'>+                                            ; If keyword arguments are not</div><div class='add'>+                                            ; provided, returns nil.</div><div class='ctx'>     sym-for-block-arg              := "&amp;"   ; Indicates that an iterator</div><div class='ctx'>                                             ; block should be captured if</div><div class='ctx'>                                             ; given</div><div class='hunk'>@@ -1430,6 +1492,19 @@ rb_scan_args(int argc, VALUE *argv, const char *fmt, ...) ::</div><div class='ctx'>   The number of given arguments, excluding an option hash or iterator</div><div class='ctx'>   block, is returned.</div><div class='ctx'> </div><div class='add'>+rb_scan_args_kw(int kw_splat, int argc, VALUE *argv, const char *fmt, ...) ::</div><div class='add'>+</div><div class='add'>+  The same as +rb_scan_args+, except the +kw_splat+ argument specifies whether</div><div class='add'>+  keyword arguments are provided (instead of being determined by the call</div><div class='add'>+  from Ruby to the C function). +kw_splat+ should be one of the following</div><div class='add'>+  values:</div><div class='add'>+</div><div class='add'>+  RB_SCAN_ARGS_PASS_CALLED_KEYWORDS :: Same behavior as +rb_scan_args+.</div><div class='add'>+  RB_SCAN_ARGS_KEYWORDS :: The final argument should be a hash treated as</div><div class='add'>+                           keywords.</div><div class='add'>+  RB_SCAN_ARGS_LAST_HASH_KEYWORDS :: Treat a final argument as keywords if it</div><div class='add'>+                                     is a hash, and not as keywords otherwise.</div><div class='add'>+</div><div class='ctx'> int rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *values) ::</div><div class='ctx'> </div><div class='ctx'>   Retrieves argument VALUEs bound to keywords, which directed by +table+</div><div class='hunk'>@@ -1468,11 +1543,41 @@ VALUE rb_funcallv(VALUE recv, ID mid, int argc, VALUE *argv) ::</div><div class='ctx'>   Invokes a method, passing arguments as an array of values.</div><div class='ctx'>   Able to call even private/protected methods.</div><div class='ctx'> </div><div class='add'>+VALUE rb_funcallv_kw(VALUE recv, ID mid, int argc, VALUE *argv, int kw_splat) ::</div><div class='add'>+</div><div class='add'>+  Same as rb_funcallv, using +kw_splat+ to determine whether keyword</div><div class='add'>+  arguments are passed.</div><div class='add'>+</div><div class='ctx'> VALUE rb_funcallv_public(VALUE recv, ID mid, int argc, VALUE *argv) ::</div><div class='ctx'> </div><div class='ctx'>   Invokes a method, passing arguments as an array of values.</div><div class='ctx'>   Able to call only public methods.</div><div class='ctx'> </div><div class='add'>+VALUE rb_funcallv_public_kw(VALUE recv, ID mid, int argc, VALUE *argv, int kw_splat) ::</div><div class='add'>+</div><div class='add'>+  Same as rb_funcallv_public, using +kw_splat+ to determine whether keyword</div><div class='add'>+  arguments are passed.</div><div class='add'>+</div><div class='add'>+VALUE rb_funcall_passing_block(VALUE recv, ID mid, int argc, const VALUE* argv) ::</div><div class='add'>+</div><div class='add'>+  Same as rb_funcallv_public, except is passes the currently active block as</div><div class='add'>+  the block when calling the method.</div><div class='add'>+</div><div class='add'>+VALUE rb_funcall_passing_block_kw(VALUE recv, ID mid, int argc, const VALUE* argv, int kw_splat) ::</div><div class='add'>+</div><div class='add'>+  Same as rb_funcall_passing_block, using +kw_splat+ to determine whether</div><div class='add'>+  keyword arguments are passed.</div><div class='add'>+</div><div class='add'>+VALUE rb_funcall_with_block(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE passed_procval) ::</div><div class='add'>+</div><div class='add'>+  Same as rb_funcallv_public, except +passed_procval+ specifies the block to</div><div class='add'>+  pass to the method.</div><div class='add'>+</div><div class='add'>+VALUE rb_funcall_with_block_kw(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE passed_procval, int kw_splat) ::</div><div class='add'>+</div><div class='add'>+  Same as rb_funcall_with_block, using +kw_splat+ to determine whether</div><div class='add'>+  keyword arguments are passed.</div><div class='add'>+</div><div class='ctx'> VALUE rb_eval_string(const char *str) ::</div><div class='ctx'> </div><div class='ctx'>   Compiles and executes the string as a Ruby program.</div><div class='hunk'>@@ -1517,6 +1622,11 @@ VALUE rb_block_call(VALUE recv, ID mid, int argc, VALUE * argv, VALUE (*func) (A</div><div class='ctx'>   whereas yielded values can be gotten via argc/argv of the third/fourth</div><div class='ctx'>   arguments.</div><div class='ctx'> </div><div class='add'>+VALUE rb_block_call_kw(VALUE recv, ID mid, int argc, VALUE * argv, VALUE (*func) (ANYARGS), VALUE data2, int kw_splat) ::</div><div class='add'>+</div><div class='add'>+  Same as rb_funcall_with_block, using +kw_splat+ to determine whether</div><div class='add'>+  keyword arguments are passed.</div><div class='add'>+</div><div class='ctx'> \[OBSOLETE] VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2) ::</div><div class='ctx'> </div><div class='ctx'>   Calls the function func1, supplying func2 as the block.  func1 will be</div><div class='hunk'>@@ -1528,7 +1638,32 @@ VALUE rb_block_call(VALUE recv, ID mid, int argc, VALUE * argv, VALUE (*func) (A</div><div class='ctx'> </div><div class='ctx'> VALUE rb_yield(VALUE val) ::</div><div class='ctx'> </div><div class='del'>-  Evaluates the block with value val.</div><div class='add'>+  Yields val as a single argument to the block.</div><div class='add'>+</div><div class='add'>+VALUE rb_yield_values(int n, ...) ::</div><div class='add'>+</div><div class='add'>+  Yields +n+ number of arguments to the block, using one C argument per Ruby</div><div class='add'>+  argument.</div><div class='add'>+</div><div class='add'>+VALUE rb_yield_values2(int n, VALUE *argv) ::</div><div class='add'>+</div><div class='add'>+  Yields +n+ number of arguments to the block, with all Ruby arguments in the</div><div class='add'>+  C argv array.</div><div class='add'>+</div><div class='add'>+VALUE rb_yield_values_kw(int n, VALUE *argv, int kw_splat) ::</div><div class='add'>+</div><div class='add'>+  Same as rb_yield_values2, using +kw_splat+ to determine whether</div><div class='add'>+  keyword arguments are passed.</div><div class='add'>+</div><div class='add'>+VALUE rb_yield_splat(VALUE args) ::</div><div class='add'>+</div><div class='add'>+  Same as rb_yield_values2, except arguments are specified by the Ruby</div><div class='add'>+  array +args+.</div><div class='add'>+</div><div class='add'>+VALUE rb_yield_splat_kw(VALUE args, int kw_splat) ::</div><div class='add'>+</div><div class='add'>+  Same as rb_yield_splat, using +kw_splat+ to determine whether</div><div class='add'>+  keyword arguments are passed.</div><div class='ctx'> </div><div class='ctx'> VALUE rb_rescue(VALUE (*func1)(ANYARGS), VALUE arg1, VALUE (*func2)(ANYARGS), VALUE arg2) ::</div><div class='ctx'> </div><div class='hunk'>@@ -1773,13 +1908,13 @@ NORETURN_STYLE_NEW ::</div><div class='ctx'> HAVE_RB_DEFINE_ALLOC_FUNC ::</div><div class='ctx'> </div><div class='ctx'>   Means that function rb_define_alloc_func() is provided, that means the</div><div class='del'>-  allocation framework is used.  This is same as the result of</div><div class='add'>+  allocation framework is used.  This is the same as the result of</div><div class='ctx'>   have_func("rb_define_alloc_func", "ruby.h").</div><div class='ctx'> </div><div class='ctx'> HAVE_RB_REG_NEW_STR ::</div><div class='ctx'> </div><div class='ctx'>   Means that function rb_reg_new_str() is provided, that creates Regexp</div><div class='del'>-  object from String object.  This is same as the result of</div><div class='add'>+  object from String object.  This is the same as the result of</div><div class='ctx'>   have_func("rb_reg_new_str", "ruby.h").</div><div class='ctx'> </div><div class='ctx'> HAVE_RB_IO_T ::</div><div class='hunk'>@@ -1797,11 +1932,57 @@ HAVE_RUBY_*_H ::</div><div class='ctx'>   instance, when HAVE_RUBY_ST_H is defined you should use ruby/st.h not</div><div class='ctx'>   mere st.h.</div><div class='ctx'> </div><div class='add'>+  Header files corresponding to these macros may be &lt;tt&gt;#include&lt;/tt&gt;</div><div class='add'>+  directly from extension libraries.</div><div class='add'>+</div><div class='ctx'> RB_EVENT_HOOKS_HAVE_CALLBACK_DATA ::</div><div class='ctx'> </div><div class='ctx'>   Means that rb_add_event_hook() takes the third argument `data', to be</div><div class='ctx'>   passed to the given event hook function.</div><div class='ctx'> </div><div class='add'>+=== Defining backward compatible macros for keyword argument functions</div><div class='add'>+</div><div class='add'>+Most ruby C extensions are designed to support multiple Ruby versions.</div><div class='add'>+In order to correctly support Ruby 2.7+ in regards to keyword</div><div class='add'>+argument separation, C extensions need to use &lt;code&gt;*_kw&lt;/code&gt;</div><div class='add'>+functions.  However, these functions do not exist in Ruby 2.6 and</div><div class='add'>+below, so in those cases macros should be defined to allow you to use</div><div class='add'>+the same code on multiple Ruby versions.  Here are example macros</div><div class='add'>+you can use in extensions that support Ruby 2.6 (or below) when using</div><div class='add'>+the &lt;code&gt;*_kw&lt;/code&gt; functions introduced in Ruby 2.7.</div><div class='add'>+</div><div class='add'>+  #ifndef RB_PASS_KEYWORDS</div><div class='add'>+  /* Only define macros on Ruby &lt;2.7 */</div><div class='add'>+  #define rb_funcallv_kw(o, m, c, v, kw) rb_funcallv(o, m, c, v)</div><div class='add'>+  #define rb_funcallv_public_kw(o, m, c, v, kw) rb_funcallv_public(o, m, c, v)</div><div class='add'>+  #define rb_funcall_passing_block_kw(o, m, c, v, kw) rb_funcall_passing_block(o, m, c, v)</div><div class='add'>+  #define rb_funcall_with_block_kw(o, m, c, v, b, kw) rb_funcall_with_block(o, m, c, v, b)</div><div class='add'>+  #define rb_scan_args_kw(kw, c, v, s, ...) rb_scan_args(c, v, s, __VA_ARGS__)</div><div class='add'>+  #define rb_call_super_kw(c, v, kw) rb_call_super(c, v)</div><div class='add'>+  #define rb_yield_values_kw(c, v, kw) rb_yield_values2(c, v)</div><div class='add'>+  #define rb_yield_splat_kw(a, kw) rb_yield_splat(a)</div><div class='add'>+  #define rb_block_call_kw(o, m, c, v, f, p, kw) rb_block_call(o, m, c, v, f, p)</div><div class='add'>+  #define rb_fiber_resume_kw(o, c, v, kw) rb_fiber_resume(o, c, v)</div><div class='add'>+  #define rb_fiber_yield_kw(c, v, kw) rb_fiber_yield(c, v)</div><div class='add'>+  #define rb_enumeratorize_with_size_kw(o, m, c, v, f, kw) rb_enumeratorize_with_size(o, m, c, v, f)</div><div class='add'>+  #define SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat) \</div><div class='add'>+      rb_enumeratorize_with_size((obj), ID2SYM(rb_frame_this_func()), \</div><div class='add'>+                                 (argc), (argv), (size_fn))</div><div class='add'>+  #define RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat) do { \</div><div class='add'>+          if (!rb_block_given_p())                                            \</div><div class='add'>+              return SIZED_ENUMERATOR(obj, argc, argv, size_fn);              \</div><div class='add'>+      } while (0)</div><div class='add'>+  #define RETURN_ENUMERATOR_KW(obj, argc, argv, kw_splat) RETURN_SIZED_ENUMERATOR(obj, argc, argv, 0)</div><div class='add'>+  #define rb_check_funcall_kw(o, m, c, v, kw) rb_check_funcall(o, m, c, v)</div><div class='add'>+  #define rb_obj_call_init_kw(o, c, v, kw) rb_obj_call_init(o, c, v)</div><div class='add'>+  #define rb_class_new_instance_kw(c, v, k, kw) rb_class_new_instance(c, v, k)</div><div class='add'>+  #define rb_proc_call_kw(p, a, kw) rb_proc_call(p, a)</div><div class='add'>+  #define rb_proc_call_with_block_kw(p, c, v, b, kw) rb_proc_call_with_block(p, c, v, b)</div><div class='add'>+  #define rb_method_call_kw(c, v, m, kw) rb_method_call(c, v, m)</div><div class='add'>+  #define rb_method_call_with_block_kw(c, v, m, b, kw) rb_method_call_with_block(c, v, m, b)</div><div class='add'>+  #define rb_eval_cmd_kwd(c, a, kw) rb_eval_cmd(c, a, 0)</div><div class='add'>+  #endif</div><div class='add'>+</div><div class='ctx'> == Appendix C. Functions available for use in extconf.rb</div><div class='ctx'> </div><div class='ctx'> See documentation for {mkmf}[rdoc-ref:MakeMakefile].</div><div class='hunk'>@@ -1903,7 +2084,7 @@ Before inserting write barriers, you need to know about RGenGC algorithm</div><div class='ctx'> available in include/ruby/ruby.h. An example is available in iseq.c.</div><div class='ctx'> </div><div class='ctx'> For a complete guide for RGenGC and write barriers, please refer to</div><div class='del'>-&lt;https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/RGenGC&gt;.</div><div class='add'>+&lt;https://bugs.ruby-lang.org/projects/ruby-master/wiki/RGenGC&gt;.</div><div class='ctx'> </div><div class='ctx'> == Appendix E. RB_GC_GUARD to protect from premature GC</div><div class='ctx'> </div><div class='hunk'>@@ -1954,6 +2135,87 @@ keyword in C.  RB_GC_GUARD has the following advantages:</div><div class='ctx'>    compilers and architectures. RB_GC_GUARD is customizable for broken</div><div class='ctx'>    systems/compilers without negatively affecting other systems.</div><div class='ctx'> </div><div class='add'>+== Appendix F. Ractor support</div><div class='add'>+</div><div class='add'>+Ractor(s) are the parallel execution mechanism introduced in Ruby 3.0. All</div><div class='add'>+ractors can run in parallel on a different OS thread (using an underlying system</div><div class='add'>+provided thread), so the C extension should be thread-safe. A C extension that</div><div class='add'>+can run in multiple ractors is called "Ractor-safe".</div><div class='add'>+</div><div class='add'>+Ractor safety around C extensions has the following properties:</div><div class='add'>+1. By default, all C extensions are recognized as Ractor-unsafe.</div><div class='add'>+2. Ractor-unsafe C-methods may only be called from the main Ractor.  If invoked</div><div class='add'>+   by a non-main Ractor, then a Ractor::UnsafeError is raised.</div><div class='add'>+3. If an extension desires to be marked as Ractor-safe the extension should</div><div class='add'>+   call rb_ext_ractor_safe(true) at the Init_ function for the extension, and</div><div class='add'>+   all defined methods will be marked as Ractor-safe.</div><div class='add'>+</div><div class='add'>+To make a "Ractor-safe" C extension, we need to check the following points:</div><div class='add'>+</div><div class='add'>+(1) Do not share unshareable objects between ractors</div><div class='add'>+</div><div class='add'>+For example, C's global variable can lead sharing an unshareable objects</div><div class='add'>+between ractors.</div><div class='add'>+</div><div class='add'>+  VALUE g_var;</div><div class='add'>+  VALUE set(VALUE self, VALUE v){ return g_var = v; }</div><div class='add'>+  VALUE get(VALUE self){ return g_var; }</div><div class='add'>+</div><div class='add'>+set() and get() pair can share an unshareable objects using g_var, and</div><div class='add'>+it is Ractor-unsafe.</div><div class='add'>+</div><div class='add'>+Not only using global variables directly, some indirect data structure</div><div class='add'>+such as global st_table can share the objects, so please take care.</div><div class='add'>+</div><div class='add'>+Note that class and module objects are shareable objects, so you can</div><div class='add'>+keep the code "cFoo = rb_define_class(...)" with C's global variables.</div><div class='add'>+</div><div class='add'>+(2) Check the thread-safety of the extension</div><div class='add'>+</div><div class='add'>+An extension should be thread-safe. For example, the following code is</div><div class='add'>+not thread-safe:</div><div class='add'>+</div><div class='add'>+  bool g_called = false;</div><div class='add'>+  VALUE call(VALUE self) {</div><div class='add'>+    if (g_called) rb_raise("recursive call is not allowed.");</div><div class='add'>+    g_called = true;</div><div class='add'>+    VALUE ret = do_something();</div><div class='add'>+    g_called = false;</div><div class='add'>+    return ret;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+because g_called global variable should be synchronized by other</div><div class='add'>+ractor's threads. To avoid such data-race, some synchronization should</div><div class='add'>+be used. Check include/ruby/thread_native.h and include/ruby/atomic.h.</div><div class='add'>+</div><div class='add'>+With Ractors, all objects given as method parameters and the receiver (self)</div><div class='add'>+are guaranteed to be from the current Ractor or to be shareable. As a</div><div class='add'>+consequence, it is easier to make code ractor-safe than to make code generally</div><div class='add'>+thread-safe. For example, we don't need to lock an array object to access the</div><div class='add'>+element of it.</div><div class='add'>+</div><div class='add'>+(3) Check the thread-safety of any used library</div><div class='add'>+</div><div class='add'>+If the extension relies on an external library, such as a function foo() from</div><div class='add'>+a library libfoo, the function libfoo foo() should be thread safe.</div><div class='add'>+</div><div class='add'>+(4) Make an object shareable</div><div class='add'>+</div><div class='add'>+This is not required to make an extension Ractor-safe.</div><div class='add'>+</div><div class='add'>+If an extension provides special objects defined by rb_data_type_t,</div><div class='add'>+consider these objects can become shareable or not.</div><div class='add'>+</div><div class='add'>+RUBY_TYPED_FROZEN_SHAREABLE flag indicates that these objects can be</div><div class='add'>+shareable objects if the object is frozen. This means that if the object</div><div class='add'>+is frozen, the mutation of wrapped data is not allowed.</div><div class='add'>+</div><div class='add'>+(5) Others</div><div class='add'>+</div><div class='add'>+There are possibly other points or requirements which must be considered in the</div><div class='add'>+making of a Ractor-safe extension.  This document will be extended as they are</div><div class='add'>+discovered.</div><div class='add'>+</div><div class='ctx'> :enddoc: Local variables:</div><div class='ctx'> :enddoc: fill-column: 70</div><div class='ctx'> :enddoc: end:</div><div class='head'>diff --git a/doc/fiber.md b/doc/fiber.md<br/>new file mode 100644<br/>index 0000000000..a334faf739<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/fiber.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/fiber.md</a></div><div class='hunk'>@@ -0,0 +1,232 @@</div><div class='add'>+# Fiber</div><div class='add'>+</div><div class='add'>+Fibers provide a mechanism for cooperative concurrency.</div><div class='add'>+</div><div class='add'>+## Context Switching</div><div class='add'>+</div><div class='add'>+Fibers execute a user-provided block. During the execution, the block may call `Fiber.yield` or `Fiber.transfer` to switch to another fiber. `Fiber#resume` is used to continue execution from the point where `Fiber.yield` was called.</div><div class='add'>+</div><div class='add'>+``` ruby</div><div class='add'>+#!/usr/bin/env ruby</div><div class='add'>+</div><div class='add'>+puts "1: Start program."</div><div class='add'>+</div><div class='add'>+f = Fiber.new do</div><div class='add'>+  puts "3: Entered fiber."</div><div class='add'>+  Fiber.yield</div><div class='add'>+  puts "5: Resumed fiber."</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+puts "2: Resume fiber first time."</div><div class='add'>+f.resume</div><div class='add'>+</div><div class='add'>+puts "4: Resume fiber second time."</div><div class='add'>+f.resume</div><div class='add'>+</div><div class='add'>+puts "6: Finished."</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+This program demonstrates the flow control of fibers.</div><div class='add'>+</div><div class='add'>+## Scheduler</div><div class='add'>+</div><div class='add'>+The scheduler interface is used to intercept blocking operations. A typical</div><div class='add'>+implementation would be a wrapper for a gem like `EventMachine` or `Async`. This</div><div class='add'>+design provides separation of concerns between the event loop implementation</div><div class='add'>+and application code. It also allows for layered schedulers which can perform</div><div class='add'>+instrumentation.</div><div class='add'>+</div><div class='add'>+To set the scheduler for the current thread:</div><div class='add'>+</div><div class='add'>+``` ruby</div><div class='add'>+Fiber.set_scheduler(MyScheduler.new)</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+When the thread exits, there is an implicit call to `set_scheduler`:</div><div class='add'>+</div><div class='add'>+``` ruby</div><div class='add'>+Fiber.set_scheduler(nil)</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Design</div><div class='add'>+</div><div class='add'>+The scheduler interface is designed to be a un-opinionated light-weight layer</div><div class='add'>+between user code and blocking operations. The scheduler hooks should avoid</div><div class='add'>+translating or converting arguments or return values. Ideally, the exact same</div><div class='add'>+arguments from the user code are provided directly to the scheduler hook with</div><div class='add'>+no changes.</div><div class='add'>+</div><div class='add'>+### Interface</div><div class='add'>+</div><div class='add'>+This is the interface you need to implement.</div><div class='add'>+</div><div class='add'>+``` ruby</div><div class='add'>+class Scheduler</div><div class='add'>+  # Wait for the specified process ID to exit.</div><div class='add'>+  # This hook is optional.</div><div class='add'>+  # @parameter pid [Integer] The process ID to wait for.</div><div class='add'>+  # @parameter flags [Integer] A bit-mask of flags suitable for `Process::Status.wait`.</div><div class='add'>+  # @returns [Process::Status] A process status instance.</div><div class='add'>+  def process_wait(pid, flags)</div><div class='add'>+    Thread.new do</div><div class='add'>+      Process::Status.wait(pid, flags)</div><div class='add'>+    end.value</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Wait for the given io readiness to match the specified events within</div><div class='add'>+  # the specified timeout.</div><div class='add'>+  # @parameter event [Integer] A bit mask of `IO::READABLE`,</div><div class='add'>+  #   `IO::WRITABLE` and `IO::PRIORITY`.</div><div class='add'>+  # @parameter timeout [Numeric] The amount of time to wait for the event in seconds.</div><div class='add'>+  # @returns [Integer] The subset of events that are ready.</div><div class='add'>+  def io_wait(io, events, timeout)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Read from the given io into the specified buffer.</div><div class='add'>+  # WARNING: Experimental hook! Do not use in production code!</div><div class='add'>+  # @parameter io [IO] The io to read from.</div><div class='add'>+  # @parameter buffer [IO::Buffer] The buffer to read into.</div><div class='add'>+  # @parameter length [Integer] The minimum amount to read.</div><div class='add'>+  def io_read(io, buffer, length)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Write from the given buffer into the specified IO.</div><div class='add'>+  # WARNING: Experimental hook! Do not use in production code!</div><div class='add'>+  # @parameter io [IO] The io to write to.</div><div class='add'>+  # @parameter buffer [IO::Buffer] The buffer to write from.</div><div class='add'>+  # @parameter length [Integer] The minimum amount to write.</div><div class='add'>+  def io_write(io, buffer, length)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Sleep the current task for the specified duration, or forever if not</div><div class='add'>+  # specified.</div><div class='add'>+  # @parameter duration [Numeric] The amount of time to sleep in seconds.</div><div class='add'>+  def kernel_sleep(duration = nil)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Execute the given block. If the block execution exceeds the given timeout,</div><div class='add'>+  # the specified exception `klass` will be raised. Typically, only non-blocking</div><div class='add'>+  # methods which enter the scheduler will raise such exceptions.</div><div class='add'>+  # @parameter duration [Integer] The amount of time to wait, after which an exception will be raised.</div><div class='add'>+  # @parameter klass [Class] The exception class to raise.</div><div class='add'>+  # @parameter *arguments [Array] The arguments to send to the constructor of the exception.</div><div class='add'>+  # @yields {...} The user code to execute.</div><div class='add'>+  def timeout_after(duration, klass, *arguments, &amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Resolve hostname to an array of IP addresses.</div><div class='add'>+  # This hook is optional.</div><div class='add'>+  # @parameter hostname [String] Example: "www.ruby-lang.org".</div><div class='add'>+  # @returns [Array] An array of IPv4 and/or IPv6 address strings that the hostname resolves to.</div><div class='add'>+  def address_resolve(hostname)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Block the calling fiber.</div><div class='add'>+  # @parameter blocker [Object] What we are waiting on, informational only.</div><div class='add'>+  # @parameter timeout [Numeric | Nil] The amount of time to wait for in seconds.</div><div class='add'>+  # @returns [Boolean] Whether the blocking operation was successful or not.</div><div class='add'>+  def block(blocker, timeout = nil)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Unblock the specified fiber.</div><div class='add'>+  # @parameter blocker [Object] What we are waiting on, informational only.</div><div class='add'>+  # @parameter fiber [Fiber] The fiber to unblock.</div><div class='add'>+  # @reentrant Thread safe.</div><div class='add'>+  def unblock(blocker, fiber)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Intercept the creation of a non-blocking fiber.</div><div class='add'>+  # @returns [Fiber]</div><div class='add'>+  def fiber(&amp;block)</div><div class='add'>+    Fiber.new(blocking: false, &amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Invoked when the thread exits.</div><div class='add'>+  def close</div><div class='add'>+    self.run</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def run</div><div class='add'>+    # Implement event loop here.</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Additional hooks may be introduced in the future, we will use feature detection</div><div class='add'>+in order to enable these hooks.</div><div class='add'>+</div><div class='add'>+### Non-blocking Execution</div><div class='add'>+</div><div class='add'>+The scheduler hooks will only be used in special non-blocking execution</div><div class='add'>+contexts. Non-blocking execution contexts introduce non-determinism because the</div><div class='add'>+execution of scheduler hooks may introduce context switching points into your</div><div class='add'>+program.</div><div class='add'>+</div><div class='add'>+#### Fibers</div><div class='add'>+</div><div class='add'>+Fibers can be used to create non-blocking execution contexts.</div><div class='add'>+</div><div class='add'>+``` ruby</div><div class='add'>+Fiber.new do</div><div class='add'>+  puts Fiber.current.blocking? # false</div><div class='add'>+</div><div class='add'>+  # May invoke `Fiber.scheduler&amp;.io_wait`.</div><div class='add'>+  io.read(...)</div><div class='add'>+</div><div class='add'>+  # May invoke `Fiber.scheduler&amp;.io_wait`.</div><div class='add'>+  io.write(...)</div><div class='add'>+</div><div class='add'>+  # Will invoke `Fiber.scheduler&amp;.kernel_sleep`.</div><div class='add'>+  sleep(n)</div><div class='add'>+end.resume</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+We also introduce a new method which simplifies the creation of these</div><div class='add'>+non-blocking fibers:</div><div class='add'>+</div><div class='add'>+``` ruby</div><div class='add'>+Fiber.schedule do</div><div class='add'>+  puts Fiber.current.blocking? # false</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+The purpose of this method is to allow the scheduler to internally decide the</div><div class='add'>+policy for when to start the fiber, and whether to use symmetric or asymmetric</div><div class='add'>+fibers.</div><div class='add'>+</div><div class='add'>+You can also create blocking execution contexts:</div><div class='add'>+</div><div class='add'>+``` ruby</div><div class='add'>+Fiber.new(blocking: true) do</div><div class='add'>+  # Won't use the scheduler:</div><div class='add'>+  sleep(n)</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+However you should generally avoid this unless you are implementing a scheduler.</div><div class='add'>+</div><div class='add'>+#### IO</div><div class='add'>+</div><div class='add'>+By default, I/O is non-blocking. Not all operating systems support non-blocking</div><div class='add'>+I/O. Windows is a notable example where socket I/O can be non-blocking but pipe</div><div class='add'>+I/O is blocking. Provided that there *is* a scheduler and the current thread *is</div><div class='add'>+non-blocking*, the operation will invoke the scheduler.</div><div class='add'>+</div><div class='add'>+#### Mutex</div><div class='add'>+</div><div class='add'>+The `Mutex` class can be used in a non-blocking context and is fiber specific.</div><div class='add'>+</div><div class='add'>+#### ConditionVariable</div><div class='add'>+</div><div class='add'>+The `ConditionVariable` class can be used in a non-blocking context and is</div><div class='add'>+fiber-specific.</div><div class='add'>+</div><div class='add'>+#### Queue / SizedQueue</div><div class='add'>+</div><div class='add'>+The `Queue` and `SizedQueue` classes can be used in a non-blocking context and</div><div class='add'>+are fiber-specific.</div><div class='add'>+</div><div class='add'>+#### Thread</div><div class='add'>+</div><div class='add'>+The `Thread#join` operation can be used in a non-blocking context and is</div><div class='add'>+fiber-specific.</div><div class='head'>diff --git a/doc/format_specifications.rdoc b/doc/format_specifications.rdoc<br/>new file mode 100644<br/>index 0000000000..e589524f27<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/format_specifications.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/format_specifications.rdoc</a></div><div class='hunk'>@@ -0,0 +1,348 @@</div><div class='add'>+== Format Specifications</div><div class='add'>+</div><div class='add'>+Several Ruby core classes have instance method +printf+ or +sprintf+:</div><div class='add'>+</div><div class='add'>+- ARGF#printf</div><div class='add'>+- IO#printf</div><div class='add'>+- Kernel#printf</div><div class='add'>+- Kernel#sprintf</div><div class='add'>+</div><div class='add'>+Each of these methods takes:</div><div class='add'>+</div><div class='add'>+- Argument +format_string+, which has zero or more</div><div class='add'>+  embedded _format_ _specifications_ (see below).</div><div class='add'>+- Arguments &lt;tt&gt;*arguments&lt;/tt&gt;, which are zero or more objects to be formatted.</div><div class='add'>+</div><div class='add'>+Each of these methods prints or returns the string</div><div class='add'>+resulting from replacing each</div><div class='add'>+format specification embedded in +format_string+ with a string form</div><div class='add'>+of the corresponding argument among +arguments+.</div><div class='add'>+</div><div class='add'>+A simple example:</div><div class='add'>+</div><div class='add'>+  sprintf('Name: %s; value: %d', 'Foo', 0) # =&gt; "Name: Foo; value: 0"</div><div class='add'>+</div><div class='add'>+A format specification has the form:</div><div class='add'>+</div><div class='add'>+  %[flags][width][.precision]type</div><div class='add'>+</div><div class='add'>+It consists of:</div><div class='add'>+</div><div class='add'>+- A leading percent character.</div><div class='add'>+- Zero or more _flags_ (each is a character).</div><div class='add'>+- An optional _width_ _specifier_ (an integer).</div><div class='add'>+- An optional _precision_ _specifier_ (a period followed by a non-negative integer).</div><div class='add'>+- A _type_ _specifier_ (a character).</div><div class='add'>+</div><div class='add'>+Except for the leading percent character,</div><div class='add'>+the only required part is the type specifier, so we begin with that.</div><div class='add'>+</div><div class='add'>+=== Type Specifiers</div><div class='add'>+</div><div class='add'>+This section provides a brief explanation of each type specifier.</div><div class='add'>+The links lead to the details and examples.</div><div class='add'>+</div><div class='add'>+==== \Integer Type Specifiers</div><div class='add'>+</div><div class='add'>+- +b+ or +B+: Format +argument+ as a binary integer.</div><div class='add'>+  See {Specifiers b and B}[rdoc-ref:format_specifications.rdoc@Specifiers+b+and+B].</div><div class='add'>+- +d+, +i+, or +u+ (all are identical):</div><div class='add'>+  Format +argument+ as a decimal integer.</div><div class='add'>+  See {Specifier d}[rdoc-ref:format_specifications.rdoc@Specifier+d].</div><div class='add'>+- +o+: Format +argument+ as an octal integer.</div><div class='add'>+  See {Specifier o}[rdoc-ref:format_specifications.rdoc@Specifier+o].</div><div class='add'>+- +x+ or +X+: Format +argument+ as a hexadecimal integer.</div><div class='add'>+  See {Specifiers x and X}[rdoc-ref:format_specifications.rdoc@Specifiers+x+and+X].</div><div class='add'>+</div><div class='add'>+==== Floating-Point Type Specifiers</div><div class='add'>+</div><div class='add'>+- +a+ or +A+: Format +argument+ as hexadecimal floating-point number.</div><div class='add'>+  See {Specifiers a and A}[rdoc-ref:format_specifications.rdoc@Specifiers+a+and+A].</div><div class='add'>+- +e+ or +E+: Format +argument+ in scientific notation.</div><div class='add'>+  See {Specifiers e and E}[rdoc-ref:format_specifications.rdoc@Specifiers+e+and+E].</div><div class='add'>+- +f+: Format +argument+ as a decimal floating-point number.</div><div class='add'>+  See {Specifier f}[rdoc-ref:format_specifications.rdoc@Specifier+f].</div><div class='add'>+- +g+ or +G+: Format +argument+ in a "general" format.</div><div class='add'>+  See {Specifiers g and G}[rdoc-ref:format_specifications.rdoc@Specifiers+g+and+G].</div><div class='add'>+</div><div class='add'>+==== Other Type Specifiers</div><div class='add'>+</div><div class='add'>+- +c+: Format +argument+ as a character.</div><div class='add'>+  See {Specifier c}[rdoc-ref:format_specifications.rdoc@Specifier+c].</div><div class='add'>+- +p+: Format +argument+ as a string via &lt;tt&gt;argument.inspect&lt;/tt&gt;.</div><div class='add'>+  See {Specifier p}[rdoc-ref:format_specifications.rdoc@Specifier+p].</div><div class='add'>+- +s+: Format +argument+ as a string via &lt;tt&gt;argument.to_s&lt;/tt&gt;.</div><div class='add'>+  See {Specifier s}[rdoc-ref:format_specifications.rdoc@Specifier+s].</div><div class='add'>+- &lt;tt&gt;%&lt;/tt&gt;: Format +argument+ (&lt;tt&gt;'%'&lt;/tt&gt;) as a single percent character.</div><div class='add'>+  See {Specifier %}[rdoc-ref:format_specifications.rdoc@Specifier+-25].</div><div class='add'>+</div><div class='add'>+=== Flags</div><div class='add'>+</div><div class='add'>+The effect of a flag may vary greatly among type specifiers.</div><div class='add'>+These remarks are general in nature.</div><div class='add'>+See {type-specific details}[rdoc-ref:format_specifications.rdoc@Type+Specifier+Details+and+Examples].</div><div class='add'>+</div><div class='add'>+Multiple flags may be given with single type specifier;</div><div class='add'>+order does not matter.</div><div class='add'>+</div><div class='add'>+==== &lt;tt&gt;' '&lt;/tt&gt; Flag</div><div class='add'>+</div><div class='add'>+Insert a space before a non-negative number:</div><div class='add'>+</div><div class='add'>+  sprintf('%d', 10)  # =&gt; "10"</div><div class='add'>+  sprintf('% d', 10) # =&gt; " 10"</div><div class='add'>+</div><div class='add'>+Insert a minus sign for negative value:</div><div class='add'>+</div><div class='add'>+  sprintf('%d', -10)  # =&gt; "-10"</div><div class='add'>+  sprintf('% d', -10) # =&gt; "-10"</div><div class='add'>+</div><div class='add'>+==== &lt;tt&gt;'#'&lt;/tt&gt; Flag</div><div class='add'>+</div><div class='add'>+Use an alternate format; varies among types:</div><div class='add'>+</div><div class='add'>+  sprintf('%x', 100)  # =&gt; "64"</div><div class='add'>+  sprintf('%#x', 100) # =&gt; "0x64"</div><div class='add'>+</div><div class='add'>+==== &lt;tt&gt;'+'&lt;/tt&gt; Flag</div><div class='add'>+</div><div class='add'>+Add a leading plus sign for a non-negative number:</div><div class='add'>+</div><div class='add'>+  sprintf('%x', 100)  # =&gt; "64"</div><div class='add'>+  sprintf('%+x', 100) # =&gt; "+64"</div><div class='add'>+</div><div class='add'>+==== &lt;tt&gt;'-'&lt;/tt&gt; Flag</div><div class='add'>+</div><div class='add'>+Left justify the value in its field:</div><div class='add'>+</div><div class='add'>+  sprintf('%6d', 100)  # =&gt; "   100"</div><div class='add'>+  sprintf('%-6d', 100) # =&gt; "100   "</div><div class='add'>+</div><div class='add'>+==== &lt;tt&gt;'0'&lt;/tt&gt; Flag</div><div class='add'>+</div><div class='add'>+Left-pad with zeros instead of spaces:</div><div class='add'>+</div><div class='add'>+  sprintf('%6d', 100)  # =&gt; "   100"</div><div class='add'>+  sprintf('%06d', 100) # =&gt; "000100"</div><div class='add'>+</div><div class='add'>+==== &lt;tt&gt;'*'&lt;/tt&gt; Flag</div><div class='add'>+</div><div class='add'>+Use the next argument as the field width:</div><div class='add'>+</div><div class='add'>+  sprintf('%d', 20, 14)  # =&gt; "20"</div><div class='add'>+  sprintf('%*d', 20, 14) # =&gt; "                  14"</div><div class='add'>+</div><div class='add'>+==== &lt;tt&gt;'n$'&lt;/tt&gt; Flag</div><div class='add'>+</div><div class='add'>+Format the (1-based) &lt;tt&gt;n&lt;/tt&gt;th argument into this field:</div><div class='add'>+</div><div class='add'>+    sprintf("%s %s", 'world', 'hello')     # =&gt; "world hello"</div><div class='add'>+    sprintf("%2$s %1$s", 'world', 'hello') # =&gt; "hello world"</div><div class='add'>+</div><div class='add'>+=== Width Specifier</div><div class='add'>+</div><div class='add'>+In general, a width specifier determines the minimum width (in characters)</div><div class='add'>+of the formatted field:</div><div class='add'>+</div><div class='add'>+  sprintf('%10d', 100)  # =&gt; "       100"</div><div class='add'>+</div><div class='add'>+  # Left-justify if negative.</div><div class='add'>+  sprintf('%-10d', 100) # =&gt; "100       "</div><div class='add'>+</div><div class='add'>+  # Ignore if too small.</div><div class='add'>+  sprintf('%1d', 100)   # =&gt; "100"</div><div class='add'>+</div><div class='add'>+=== Precision Specifier</div><div class='add'>+</div><div class='add'>+A precision specifier is a decimal point followed by zero or more</div><div class='add'>+decimal digits.</div><div class='add'>+</div><div class='add'>+For integer type specifiers, the precision specifies the minimum number of</div><div class='add'>+digits to be written. If the precision is shorter than the integer, the result is</div><div class='add'>+padded with leading zeros. There is no modification or truncation of the result</div><div class='add'>+if the integer is longer than the precision:</div><div class='add'>+</div><div class='add'>+  sprintf('%.3d', 1)    # =&gt; "001"</div><div class='add'>+  sprintf('%.3d', 1000) # =&gt; "1000"</div><div class='add'>+</div><div class='add'>+  # If the precision is 0 and the value is 0, nothing is written</div><div class='add'>+  sprintf('%.d', 0)  # =&gt; ""</div><div class='add'>+  sprintf('%.0d', 0) # =&gt; ""</div><div class='add'>+</div><div class='add'>+For the +a+/+A+, +e+/+E+, +f+/+F+ specifiers, the precision specifies</div><div class='add'>+the number of digits after the decimal point to be written:</div><div class='add'>+</div><div class='add'>+  sprintf('%.2f', 3.14159)  # =&gt; "3.14"</div><div class='add'>+  sprintf('%.10f', 3.14159) # =&gt; "3.1415900000"</div><div class='add'>+</div><div class='add'>+  # With no precision specifier, defaults to 6-digit precision.</div><div class='add'>+  sprintf('%f', 3.14159)    # =&gt; "3.141590"</div><div class='add'>+</div><div class='add'>+For the +g+/+G+ specifiers, the precision specifies</div><div class='add'>+the number of significant digits to be written:</div><div class='add'>+</div><div class='add'>+  sprintf('%.2g', 123.45)  # =&gt; "1.2e+02"</div><div class='add'>+  sprintf('%.3g', 123.45)  # =&gt; "123"</div><div class='add'>+  sprintf('%.10g', 123.45) # =&gt;  "123.45"</div><div class='add'>+</div><div class='add'>+  # With no precision specifier, defaults to 6 significant digits.</div><div class='add'>+  sprintf('%g', 123.456789) # =&gt; "123.457"</div><div class='add'>+</div><div class='add'>+For the +s+, +p+ specifiers, the precision specifies</div><div class='add'>+the number of characters to write:</div><div class='add'>+</div><div class='add'>+  sprintf('%s', Time.now)    # =&gt; "2022-05-04 11:59:16 -0400"</div><div class='add'>+  sprintf('%.10s', Time.now) # =&gt; "2022-05-04"</div><div class='add'>+</div><div class='add'>+=== Type Specifier Details and Examples</div><div class='add'>+</div><div class='add'>+==== Specifiers +a+ and +A+</div><div class='add'>+</div><div class='add'>+Format +argument+ as hexadecimal floating-point number:</div><div class='add'>+</div><div class='add'>+  sprintf('%a', 3.14159)   # =&gt; "0x1.921f9f01b866ep+1"</div><div class='add'>+  sprintf('%a', -3.14159)  # =&gt; "-0x1.921f9f01b866ep+1"</div><div class='add'>+  sprintf('%a', 4096)      # =&gt; "0x1p+12"</div><div class='add'>+  sprintf('%a', -4096)     # =&gt; "-0x1p+12"</div><div class='add'>+</div><div class='add'>+  # Capital 'A' means that alphabetical characters are printed in upper case.</div><div class='add'>+  sprintf('%A', 4096)      # =&gt; "0X1P+12"</div><div class='add'>+  sprintf('%A', -4096)     # =&gt; "-0X1P+12"</div><div class='add'>+</div><div class='add'>+==== Specifiers +b+ and +B+</div><div class='add'>+</div><div class='add'>+The two specifiers +b+ and +B+ behave identically</div><div class='add'>+except when flag &lt;tt&gt;'#'&lt;/tt&gt;+ is used.</div><div class='add'>+</div><div class='add'>+Format +argument+ as a binary integer:</div><div class='add'>+</div><div class='add'>+  sprintf('%b', 1)  # =&gt; "1"</div><div class='add'>+  sprintf('%b', 4)  # =&gt; "100"</div><div class='add'>+</div><div class='add'>+  # Prefix '..' for negative value.</div><div class='add'>+  sprintf('%b', -4) # =&gt; "..100"</div><div class='add'>+</div><div class='add'>+  # Alternate format.</div><div class='add'>+  sprintf('%#b', 4)  # =&gt; "0b100"</div><div class='add'>+  sprintf('%#B', 4)  # =&gt; "0B100"</div><div class='add'>+</div><div class='add'>+==== Specifier +c+</div><div class='add'>+</div><div class='add'>+Format +argument+ as a single character:</div><div class='add'>+</div><div class='add'>+  sprintf('%c', 'A') # =&gt; "A"</div><div class='add'>+  sprintf('%c', 65)  # =&gt; "A"</div><div class='add'>+</div><div class='add'>+==== Specifier +d+</div><div class='add'>+</div><div class='add'>+Format +argument+ as a decimal integer:</div><div class='add'>+</div><div class='add'>+  sprintf('%d', 100)  # =&gt; "100"</div><div class='add'>+  sprintf('%d', -100) # =&gt; "-100"</div><div class='add'>+</div><div class='add'>+Flag &lt;tt&gt;'#'&lt;/tt&gt; does not apply.</div><div class='add'>+</div><div class='add'>+==== Specifiers +e+ and +E+</div><div class='add'>+</div><div class='add'>+Format +argument+ in</div><div class='add'>+{scientific notation}[https://en.wikipedia.org/wiki/Scientific_notation]:</div><div class='add'>+</div><div class='add'>+  sprintf('%e', 3.14159)  # =&gt; "3.141590e+00"</div><div class='add'>+  sprintf('%E', -3.14159) # =&gt; "-3.141590E+00"</div><div class='add'>+</div><div class='add'>+==== Specifier +f+</div><div class='add'>+</div><div class='add'>+Format +argument+ as a floating-point number:</div><div class='add'>+</div><div class='add'>+  sprintf('%f', 3.14159)  # =&gt; "3.141590"</div><div class='add'>+  sprintf('%f', -3.14159) # =&gt; "-3.141590"</div><div class='add'>+</div><div class='add'>+Flag &lt;tt&gt;'#'&lt;/tt&gt; does not apply.</div><div class='add'>+</div><div class='add'>+==== Specifiers +g+ and +G+</div><div class='add'>+</div><div class='add'>+Format +argument+ using exponential form (+e+/+E+ specifier)</div><div class='add'>+if the exponent is less than -4 or greater than or equal to the precision.</div><div class='add'>+Otherwise format +argument+ using floating-point form (+f+ specifier):</div><div class='add'>+</div><div class='add'>+  sprintf('%g', 100)  # =&gt; "100"</div><div class='add'>+  sprintf('%g', 100.0)  # =&gt; "100"</div><div class='add'>+  sprintf('%g', 3.14159)  # =&gt; "3.14159"</div><div class='add'>+  sprintf('%g', 100000000000)  # =&gt; "1e+11"</div><div class='add'>+  sprintf('%g', 0.000000000001)  # =&gt; "1e-12"</div><div class='add'>+</div><div class='add'>+  # Capital 'G' means use capital 'E'.</div><div class='add'>+  sprintf('%G', 100000000000)  # =&gt; "1E+11"</div><div class='add'>+  sprintf('%G', 0.000000000001)  # =&gt; "1E-12"</div><div class='add'>+</div><div class='add'>+  # Alternate format.</div><div class='add'>+  sprintf('%#g', 100000000000)  # =&gt; "1.00000e+11"</div><div class='add'>+  sprintf('%#g', 0.000000000001)  # =&gt; "1.00000e-12"</div><div class='add'>+  sprintf('%#G', 100000000000)  # =&gt; "1.00000E+11"</div><div class='add'>+  sprintf('%#G', 0.000000000001)  # =&gt; "1.00000E-12"</div><div class='add'>+</div><div class='add'>+==== Specifier +o+</div><div class='add'>+</div><div class='add'>+Format +argument+ as an octal integer.</div><div class='add'>+If +argument+ is negative, it will be formatted as a two's complement</div><div class='add'>+prefixed with +..7+:</div><div class='add'>+</div><div class='add'>+  sprintf('%o', 16)   # =&gt; "20"</div><div class='add'>+</div><div class='add'>+  # Prefix '..7' for negative value.</div><div class='add'>+  sprintf('%o', -16)  # =&gt; "..760"</div><div class='add'>+</div><div class='add'>+  # Prefix zero for alternate format if positive.</div><div class='add'>+  sprintf('%#o', 16)  # =&gt; "020"</div><div class='add'>+  sprintf('%#o', -16) # =&gt; "..760"</div><div class='add'>+</div><div class='add'>+==== Specifier +p+</div><div class='add'>+</div><div class='add'>+Format +argument+ as a string via &lt;tt&gt;argument.inspect&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+  t = Time.now</div><div class='add'>+  sprintf('%p', t)   # =&gt; "2022-05-01 13:42:07.1645683 -0500"</div><div class='add'>+</div><div class='add'>+==== Specifier +s+</div><div class='add'>+</div><div class='add'>+Format +argument+ as a string via &lt;tt&gt;argument.to_s&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+  t = Time.now</div><div class='add'>+  sprintf('%s', t) # =&gt; "2022-05-01 13:42:07 -0500"</div><div class='add'>+</div><div class='add'>+Flag &lt;tt&gt;'#'&lt;/tt&gt; does not apply.</div><div class='add'>+</div><div class='add'>+==== Specifiers +x+ and +X+</div><div class='add'>+</div><div class='add'>+Format +argument+ as a hexadecimal integer.</div><div class='add'>+If +argument+ is negative, it will be formatted as a two's complement</div><div class='add'>+prefixed with +..f+:</div><div class='add'>+</div><div class='add'>+  sprintf('%x', 100)   # =&gt; "64"</div><div class='add'>+</div><div class='add'>+  # Prefix '..f' for negative value.</div><div class='add'>+  sprintf('%x', -100)  # =&gt; "..f9c"</div><div class='add'>+</div><div class='add'>+  # Use alternate format.</div><div class='add'>+  sprintf('%#x', 100)  # =&gt; "0x64"</div><div class='add'>+</div><div class='add'>+  # Alternate format for negative value.</div><div class='add'>+  sprintf('%#x', -100) # =&gt; "0x..f9c"</div><div class='add'>+</div><div class='add'>+==== Specifier &lt;tt&gt;%&lt;/tt&gt;</div><div class='add'>+</div><div class='add'>+Format +argument+ (&lt;tt&gt;'%'&lt;/tt&gt;) as a single percent character:</div><div class='add'>+</div><div class='add'>+  sprintf('%d %%', 100) # =&gt; "100 %"</div><div class='add'>+</div><div class='add'>+Flags do not apply.</div><div class='add'>+</div><div class='add'>+=== Reference by Name</div><div class='add'>+</div><div class='add'>+For more complex formatting, Ruby supports a reference by name.</div><div class='add'>+%&lt;name&gt;s style uses format style, but %{name} style doesn't.</div><div class='add'>+</div><div class='add'>+Examples:</div><div class='add'>+</div><div class='add'>+  sprintf("%&lt;foo&gt;d : %&lt;bar&gt;f", { :foo =&gt; 1, :bar =&gt; 2 }) # =&gt; 1 : 2.000000</div><div class='add'>+  sprintf("%{foo}f", { :foo =&gt; 1 })                      # =&gt; "1f"</div><div class='head'>diff --git a/doc/globals.rdoc b/doc/globals.rdoc<br/>index 1e70555988..1d7cda69f9 100644<br/>--- a/<a href='/ruby.git/tree/doc/globals.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/globals.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/globals.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/globals.rdoc</a></div><div class='hunk'>@@ -1,70 +1,69 @@</div><div class='ctx'> # -*- mode: rdoc; coding: utf-8; fill-column: 74; -*-</div><div class='ctx'> </div><div class='del'>-== Pre-defined variables</div><div class='add'>+== Pre-defined global variables</div><div class='ctx'> </div><div class='del'>-$!::   The exception information message set by 'raise'.</div><div class='del'>-$@::   Array of backtrace of the last exception thrown.</div><div class='add'>+$!::   The Exception object set by Kernel#raise.</div><div class='add'>+$@::   The same as &lt;code&gt;$!.backtrace&lt;/code&gt;.</div><div class='add'>+$~::   The information about the last match in the current scope (thread-local and frame-local).</div><div class='ctx'> $&amp;::   The string matched by the last successful match.</div><div class='ctx'> $`::   The string to the left  of the last successful match.</div><div class='ctx'> $'::   The string to the right of the last successful match.</div><div class='ctx'> $+::   The highest group matched by the last successful match.</div><div class='ctx'> $1::   The Nth group of the last successful match. May be &gt; 1.</div><div class='del'>-$~::   The information about the last match in the current scope.</div><div class='ctx'> $=::   This variable is no longer effective. Deprecated.</div><div class='del'>-$/::   The input record separator, newline by default.</div><div class='del'>-$\::   The output record separator for the print and IO#write. Default is nil.</div><div class='del'>-$,::   The output field separator for the print and Array#join.</div><div class='del'>-$;::   The default separator for String#split.</div><div class='add'>+$/::   The input record separator, newline by default. Aliased to $-0.</div><div class='add'>+$\::   The output record separator for Kernel#print and IO#write. Default is +nil+.</div><div class='add'>+$,::   The output field separator for Kernel#print and Array#join. Non-nil $, will be deprecated.</div><div class='add'>+$;::   The default separator for String#split. Non-nil $; will be deprecated. Aliased to $-F.</div><div class='ctx'> $.::   The current input line number of the last file that was read.</div><div class='del'>-$&lt;::   The virtual concatenation file of the files given on command line (or from $stdin if no files were given).</div><div class='del'>-$&gt;::   The default output for print, printf. $stdout by default.</div><div class='add'>+$&lt;::   The same as ARGF.</div><div class='add'>+$&gt;::   The default output stream for Kernel#print and Kernel#printf. $stdout by default.</div><div class='ctx'> $_::   The last input line of string by gets or readline.</div><div class='ctx'> $0::   Contains the name of the script being executed. May be assignable.</div><div class='del'>-$*::   Command line arguments given for the script sans args.</div><div class='del'>-$$::   The process number of the Ruby running this script.</div><div class='del'>-$?::   The status of the last executed child process.  This value is</div><div class='del'>-       thread-local.</div><div class='del'>-$:::   Load path for scripts and binary modules by load or require.</div><div class='del'>-$"::   The array contains the module names loaded by require.</div><div class='del'>-$DEBUG::     The debug flag, which is set by the -d switch.  Enabling debug</div><div class='add'>+$*::   The same as ARGV.</div><div class='add'>+$$::   The process number of the Ruby running this script. Same as Process.pid.</div><div class='add'>+$?::   The status of the last executed child process (thread-local).</div><div class='add'>+$LOAD_PATH::   Load path for searching Ruby scripts and extension libraries used</div><div class='add'>+               by Kernel#load and Kernel#require. Aliased to $: and $-I.</div><div class='add'>+               Has a singleton method &lt;code&gt;$LOAD_PATH.resolve_feature_path(feature)&lt;/code&gt;</div><div class='add'>+               that returns [+:rb+ or +:so+, path], which resolves the feature to</div><div class='add'>+               the path the original Kernel#require method would load.</div><div class='add'>+$LOADED_FEATURES::   The array contains the module names loaded by require.</div><div class='add'>+                     Aliased to $".</div><div class='add'>+$DEBUG::     The debug flag, which is set by the &lt;tt&gt;-d&lt;/tt&gt; switch.  Enabling debug</div><div class='ctx'>              output prints each exception raised to $stderr (but not its</div><div class='ctx'>              backtrace).  Setting this to a true value enables debug output as</div><div class='del'>-             if -d were given on the command line.  Setting this to a false</div><div class='del'>-             value disables debug output.</div><div class='del'>-$LOADED_FEATURES:: The alias to the $".</div><div class='del'>-$FILENAME::  Current input file from $&lt;. Same as $&lt;.filename.</div><div class='del'>-$LOAD_PATH:: The alias to the $:.</div><div class='add'>+             if &lt;tt&gt;-d&lt;/tt&gt; were given on the command line.  Setting this to a false</div><div class='add'>+             value disables debug output. Aliased to $-d.</div><div class='add'>+$FILENAME::  Current input filename from ARGF. Same as ARGF.filename.</div><div class='ctx'> $stderr::    The current standard error output.</div><div class='ctx'> $stdin::     The current standard input.</div><div class='ctx'> $stdout::    The current standard output.</div><div class='del'>-$VERBOSE::   The verbose flag, which is set by the -w or -v switch.  Setting</div><div class='del'>-             this to a true value enables warnings as if -w or -v were given</div><div class='del'>-             on the command line.  Setting this to nil disables warnings,</div><div class='del'>-             including from Kernel#warn.</div><div class='del'>-$-0::  The alias to $/.</div><div class='del'>-$-a::  True if option -a is set. Read-only variable.</div><div class='del'>-$-d::  The alias of $DEBUG.  See $DEBUG above for further discussion.</div><div class='del'>-$-F::  The alias to $;.</div><div class='del'>-$-i::  In in-place-edit mode, this variable holds the extension, otherwise nil.</div><div class='del'>-$-I::  The alias to $:.</div><div class='del'>-$-l::  True if option -l is set. Read-only variable.</div><div class='del'>-$-p::  True if option -p is set. Read-only variable.</div><div class='del'>-$-v::  An alias of $VERBOSE.  See $VERBOSE above for further discussion.</div><div class='del'>-$-w::  An alias of $VERBOSE.  See $VERBOSE above for further discussion.</div><div class='add'>+$VERBOSE::   The verbose flag, which is set by the &lt;tt&gt;-w&lt;/tt&gt; or &lt;tt&gt;-v&lt;/tt&gt; switch.</div><div class='add'>+             Setting this to a true value enables warnings as if &lt;tt&gt;-w&lt;/tt&gt; or &lt;tt&gt;-v&lt;/tt&gt; were given</div><div class='add'>+             on the command line.  Setting this to +nil+ disables warnings,</div><div class='add'>+             including from Kernel#warn. Aliased to $-v and $-w.</div><div class='add'>+$-a::  True if option &lt;tt&gt;-a&lt;/tt&gt; is set. Read-only variable.</div><div class='add'>+$-i::  In in-place-edit mode, this variable holds the extension, otherwise +nil+.</div><div class='add'>+$-l::  True if option &lt;tt&gt;-l&lt;/tt&gt; is set. Read-only variable.</div><div class='add'>+$-p::  True if option &lt;tt&gt;-p&lt;/tt&gt; is set. Read-only variable.</div><div class='ctx'> </div><div class='ctx'> == Pre-defined global constants</div><div class='ctx'> </div><div class='del'>-TRUE::              The typical true value.</div><div class='del'>-FALSE::             The false itself.</div><div class='del'>-NIL::               The nil itself.</div><div class='ctx'> STDIN::             The standard input. The default value for $stdin.</div><div class='ctx'> STDOUT::            The standard output. The default value for $stdout.</div><div class='ctx'> STDERR::            The standard error output. The default value for $stderr.</div><div class='ctx'> ENV::               The hash contains current environment variables.</div><div class='del'>-ARGF::              The alias to the $&lt;.</div><div class='del'>-ARGV::              The alias to the $*.</div><div class='del'>-DATA::              The file object of the script, pointing just after __END__.</div><div class='del'>-RUBY_VERSION::      The ruby version string (VERSION was deprecated).</div><div class='add'>+ARGF::              The virtual concatenation of the files given on command line (or from $stdin if no files were given).</div><div class='add'>+ARGV::              An Array of command line arguments given for the script.</div><div class='add'>+DATA::              The file object of the script, pointing just after &lt;code&gt;__END__&lt;/code&gt;.</div><div class='add'>+TOPLEVEL_BINDING::  The Binding of the top level scope.</div><div class='add'>+RUBY_VERSION::      The Ruby language version.</div><div class='ctx'> RUBY_RELEASE_DATE:: The release date string.</div><div class='ctx'> RUBY_PLATFORM::     The platform identifier.</div><div class='del'>-</div><div class='add'>+RUBY_PATCHLEVEL::   The patchlevel for this Ruby.  If this is a development build of Ruby the patchlevel will be -1.</div><div class='add'>+RUBY_REVISION::     The GIT commit hash for this Ruby.</div><div class='add'>+RUBY_COPYRIGHT::    The copyright string for Ruby.</div><div class='add'>+RUBY_ENGINE::       The name of the Ruby implementation.</div><div class='add'>+RUBY_ENGINE_VERSION:: The version of the Ruby implementation.</div><div class='add'>+RUBY_DESCRIPTION::  The same as &lt;tt&gt;ruby --version&lt;/tt&gt;, a String describing various aspects of the Ruby implementation.</div><div class='head'>diff --git a/doc/implicit_conversion.rdoc b/doc/implicit_conversion.rdoc<br/>new file mode 100644<br/>index 0000000000..ba15fa4bf4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/implicit_conversion.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/implicit_conversion.rdoc</a></div><div class='hunk'>@@ -0,0 +1,221 @@</div><div class='add'>+== Implicit Conversions</div><div class='add'>+</div><div class='add'>+Some Ruby methods accept one or more objects</div><div class='add'>+that can be either:</div><div class='add'>+</div><div class='add'>+* &lt;i&gt;Of a given class&lt;/i&gt;, and so accepted as is.</div><div class='add'>+* &lt;i&gt;Implicitly convertible to that class&lt;/i&gt;, in which case</div><div class='add'>+  the called method converts the object.</div><div class='add'>+</div><div class='add'>+For each of the relevant classes, the conversion is done by calling</div><div class='add'>+a specific conversion method:</div><div class='add'>+</div><div class='add'>+* Array: +to_ary+</div><div class='add'>+* Hash: +to_hash+</div><div class='add'>+* Integer: +to_int+</div><div class='add'>+* String: +to_str+</div><div class='add'>+</div><div class='add'>+=== Array-Convertible Objects</div><div class='add'>+</div><div class='add'>+An &lt;i&gt;Array-convertible object&lt;/i&gt; is an object that:</div><div class='add'>+</div><div class='add'>+* Has instance method +to_ary+.</div><div class='add'>+* The method accepts no arguments.</div><div class='add'>+* The method returns an object +obj+ for which &lt;tt&gt;obj.kind_of?(Array)&lt;/tt&gt; returns +true+.</div><div class='add'>+</div><div class='add'>+The Ruby core class that satisfies these requirements is:</div><div class='add'>+</div><div class='add'>+* Array</div><div class='add'>+</div><div class='add'>+The examples in this section use method &lt;tt&gt;Array#replace&lt;/tt&gt;,</div><div class='add'>+which accepts an Array-convertible argument.</div><div class='add'>+</div><div class='add'>+This class is Array-convertible:</div><div class='add'>+</div><div class='add'>+    class ArrayConvertible</div><div class='add'>+      def to_ary</div><div class='add'>+        [:foo, 'bar', 2]</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    a = []</div><div class='add'>+    a.replace(ArrayConvertible.new) # =&gt; [:foo, "bar", 2]</div><div class='add'>+</div><div class='add'>+This class is not Array-convertible (no +to_ary+ method):</div><div class='add'>+</div><div class='add'>+    class NotArrayConvertible; end</div><div class='add'>+    a = []</div><div class='add'>+    # Raises TypeError (no implicit conversion of NotArrayConvertible into Array)</div><div class='add'>+    a.replace(NotArrayConvertible.new)</div><div class='add'>+</div><div class='add'>+This class is not Array-convertible (method +to_ary+ takes arguments):</div><div class='add'>+</div><div class='add'>+    class NotArrayConvertible</div><div class='add'>+      def to_ary(x)</div><div class='add'>+        [:foo, 'bar', 2]</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    a = []</div><div class='add'>+    # Raises ArgumentError (wrong number of arguments (given 0, expected 1))</div><div class='add'>+    a.replace(NotArrayConvertible.new)</div><div class='add'>+</div><div class='add'>+This class is not Array-convertible (method +to_ary+ returns non-Array):</div><div class='add'>+</div><div class='add'>+    class NotArrayConvertible</div><div class='add'>+      def to_ary</div><div class='add'>+        :foo</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    a = []</div><div class='add'>+    # Raises TypeError (can't convert NotArrayConvertible to Array (NotArrayConvertible#to_ary gives Symbol))</div><div class='add'>+    a.replace(NotArrayConvertible.new)</div><div class='add'>+</div><div class='add'>+=== Hash-Convertible Objects</div><div class='add'>+</div><div class='add'>+A &lt;i&gt;Hash-convertible object&lt;/i&gt; is an object that:</div><div class='add'>+</div><div class='add'>+* Has instance method +to_hash+.</div><div class='add'>+* The method accepts no arguments.</div><div class='add'>+* The method returns an object +obj+ for which &lt;tt&gt;obj.kind_of?(Hash)&lt;/tt&gt; returns +true+.</div><div class='add'>+</div><div class='add'>+The Ruby core class that satisfies these requirements is:</div><div class='add'>+</div><div class='add'>+* Hash</div><div class='add'>+</div><div class='add'>+The examples in this section use method &lt;tt&gt;Hash#merge&lt;/tt&gt;,</div><div class='add'>+which accepts a Hash-convertible argument.</div><div class='add'>+</div><div class='add'>+This class is Hash-convertible:</div><div class='add'>+</div><div class='add'>+    class HashConvertible</div><div class='add'>+      def to_hash</div><div class='add'>+        {foo: 0, bar: 1, baz: 2}</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    h = {}</div><div class='add'>+    h.merge(HashConvertible.new) # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+</div><div class='add'>+This class is not Hash-convertible (no +to_hash+ method):</div><div class='add'>+</div><div class='add'>+    class NotHashConvertible; end</div><div class='add'>+    h = {}</div><div class='add'>+    # Raises TypeError (no implicit conversion of NotHashConvertible into Hash)</div><div class='add'>+    h.merge(NotHashConvertible.new)</div><div class='add'>+</div><div class='add'>+This class is not Hash-convertible (method +to_hash+ takes arguments):</div><div class='add'>+</div><div class='add'>+    class NotHashConvertible</div><div class='add'>+      def to_hash(x)</div><div class='add'>+        {foo: 0, bar: 1, baz: 2}</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    h = {}</div><div class='add'>+    # Raises ArgumentError (wrong number of arguments (given 0, expected 1))</div><div class='add'>+    h.merge(NotHashConvertible.new)</div><div class='add'>+</div><div class='add'>+This class is not Hash-convertible (method +to_hash+ returns non-Hash):</div><div class='add'>+</div><div class='add'>+    class NotHashConvertible</div><div class='add'>+      def to_hash</div><div class='add'>+        :foo</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    h = {}</div><div class='add'>+    # Raises TypeError (can't convert NotHashConvertible to Hash (ToHashReturnsNonHash#to_hash gives Symbol))</div><div class='add'>+    h.merge(NotHashConvertible.new)</div><div class='add'>+</div><div class='add'>+=== Integer-Convertible Objects</div><div class='add'>+</div><div class='add'>+An &lt;i&gt;Integer-convertible object&lt;/i&gt; is an object that:</div><div class='add'>+</div><div class='add'>+* Has instance method +to_int+.</div><div class='add'>+* The method accepts no arguments.</div><div class='add'>+* The method returns an object +obj+ for which &lt;tt&gt;obj.kind_of?(Integer)&lt;/tt&gt; returns +true+.</div><div class='add'>+</div><div class='add'>+The Ruby core classes that satisfy these requirements are:</div><div class='add'>+</div><div class='add'>+* Integer</div><div class='add'>+* Float</div><div class='add'>+* Complex</div><div class='add'>+* Rational</div><div class='add'>+</div><div class='add'>+The examples in this section use method &lt;tt&gt;Array.new&lt;/tt&gt;,</div><div class='add'>+which accepts an Integer-convertible argument.</div><div class='add'>+</div><div class='add'>+This user-defined class is Integer-convertible:</div><div class='add'>+</div><div class='add'>+    class IntegerConvertible</div><div class='add'>+      def to_int</div><div class='add'>+        3</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    a = Array.new(IntegerConvertible.new).size</div><div class='add'>+    a # =&gt; 3</div><div class='add'>+</div><div class='add'>+This class is not Integer-convertible (method +to_int+ takes arguments):</div><div class='add'>+</div><div class='add'>+    class NotIntegerConvertible</div><div class='add'>+      def to_int(x)</div><div class='add'>+        3</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    # Raises ArgumentError (wrong number of arguments (given 0, expected 1))</div><div class='add'>+    Array.new(NotIntegerConvertible.new)</div><div class='add'>+</div><div class='add'>+This class is not Integer-convertible (method +to_int+ returns non-Integer):</div><div class='add'>+</div><div class='add'>+    class NotIntegerConvertible</div><div class='add'>+      def to_int</div><div class='add'>+        :foo</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    # Raises TypeError (can't convert NotIntegerConvertible to Integer (NotIntegerConvertible#to_int gives Symbol))</div><div class='add'>+    Array.new(NotIntegerConvertible.new)</div><div class='add'>+</div><div class='add'>+=== String-Convertible Objects</div><div class='add'>+</div><div class='add'>+A &lt;i&gt;String-convertible object&lt;/i&gt; is an object that:</div><div class='add'>+* Has instance method +to_str+.</div><div class='add'>+* The method accepts no arguments.</div><div class='add'>+* The method returns an object +obj+ for which &lt;tt&gt;obj.kind_of?(String)&lt;/tt&gt; returns +true+.</div><div class='add'>+</div><div class='add'>+The Ruby core class that satisfies these requirements is:</div><div class='add'>+</div><div class='add'>+* String</div><div class='add'>+</div><div class='add'>+The examples in this section use method &lt;tt&gt;String::new&lt;/tt&gt;,</div><div class='add'>+which accepts a String-convertible argument.</div><div class='add'>+</div><div class='add'>+This class is String-convertible:</div><div class='add'>+</div><div class='add'>+    class StringConvertible</div><div class='add'>+      def to_str</div><div class='add'>+        'foo'</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    String.new(StringConvertible.new) # =&gt; "foo"</div><div class='add'>+</div><div class='add'>+This class is not String-convertible (no +to_str+ method):</div><div class='add'>+</div><div class='add'>+    class NotStringConvertible; end</div><div class='add'>+    # Raises TypeError (no implicit conversion of NotStringConvertible into String)</div><div class='add'>+    String.new(NotStringConvertible.new)</div><div class='add'>+</div><div class='add'>+This class is not String-convertible (method +to_str+ takes arguments):</div><div class='add'>+</div><div class='add'>+    class NotStringConvertible</div><div class='add'>+      def to_str(x)</div><div class='add'>+        'foo'</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    # Raises ArgumentError (wrong number of arguments (given 0, expected 1))</div><div class='add'>+    String.new(NotStringConvertible.new)</div><div class='add'>+</div><div class='add'>+This class is not String-convertible (method +to_str+ returns non-String):</div><div class='add'>+</div><div class='add'>+    class NotStringConvertible</div><div class='add'>+      def to_str</div><div class='add'>+        :foo</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    # Raises TypeError (can't convert NotStringConvertible to String (NotStringConvertible#to_str gives Symbol))</div><div class='add'>+    String.new(NotStringConvertible.new)</div><div class='head'>diff --git a/doc/irb/irb.rd.ja b/doc/irb/irb.rd.ja<br/>index 85b6536ee4..633c08cbd4 100644<br/>--- a/<a href='/ruby.git/tree/doc/irb/irb.rd.ja?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/irb/irb.rd.ja</a><br/>+++ b/<a href='/ruby.git/tree/doc/irb/irb.rd.ja?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/irb/irb.rd.ja</a></div><div class='hunk'>@@ -40,39 +40,55 @@ irbã®ä½¿ã„æ–¹ã¯, Rubyã•ãˆçŸ¥ã£ã¦ã„ã‚Œã°ã„ãŸã£ã¦ç°¡å˜ã§ã™. åŸºæœ¬</div><div class='ctx'>   irb.rb [options] file_name opts</div><div class='ctx'>   options:</div><div class='ctx'>   -f		    ~/.irbrc ã‚’èª­ã¿è¾¼ã¾ãªã„.</div><div class='del'>-  -m		    bcãƒ¢ãƒ¼ãƒ‰(åˆ†æ•°, è¡Œåˆ—ã®è¨ˆç®—ãŒã§ãã‚‹)</div><div class='ctx'>   -d                $DEBUG ã‚’trueã«ã™ã‚‹(ruby -d ã¨åŒã˜)</div><div class='del'>-  -Kc		    ruby -Kcã¨åŒã˜</div><div class='ctx'>   -r load-module    ruby -r ã¨åŒã˜.</div><div class='del'>-  --verbose	    ã“ã‚Œã‹ã‚‰å®Ÿè¡Œã™ã‚‹è¡Œã‚’è¡¨ç¤ºã™ã‚‹(ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ)</div><div class='del'>-  --noverbose	    ã“ã‚Œã‹ã‚‰å®Ÿè¡Œã™ã‚‹è¡Œã‚’è¡¨ç¤ºã—ãªã„</div><div class='del'>-  --echo	    å®Ÿè¡Œçµæžœã‚’è¡¨ç¤ºã™ã‚‹(ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ)</div><div class='del'>-  --noecho	    å®Ÿè¡Œçµæžœã‚’è¡¨ç¤ºã—ãªã„</div><div class='del'>-  --inspect	    çµæžœå‡ºåŠ›ã«inspectã‚’ç”¨ã„ã‚‹(bcãƒ¢ãƒ¼ãƒ‰ä»¥å¤–ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ).</div><div class='add'>+  -I path           $LOAD_PATH ã« path ã‚’è¿½åŠ ã™ã‚‹.</div><div class='add'>+  -U                ruby -U ã¨åŒã˜.</div><div class='add'>+  -E enc            ruby -E ã¨åŒã˜.</div><div class='add'>+  -w                ruby -w ã¨åŒã˜.</div><div class='add'>+  -W[level=2]       ruby -W ã¨åŒã˜.</div><div class='add'>+  --context-mode n  æ–°ã—ã„ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’ä½œæˆã—ãŸæ™‚ã«é–¢é€£ã™ã‚‹ Binding</div><div class='add'>+		    ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®ä½œæˆæ–¹æ³•ã‚’ 0 ã‹ã‚‰ 3 ã®ã„ãšã‚Œã‹ã«è¨­å®šã™ã‚‹.</div><div class='add'>+  --echo	    å®Ÿè¡Œçµæžœã‚’è¡¨ç¤ºã™ã‚‹(ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ).</div><div class='add'>+  --noecho	    å®Ÿè¡Œçµæžœã‚’è¡¨ç¤ºã—ãªã„.</div><div class='add'>+  --echo-on-assignment</div><div class='add'>+                    ä»£å…¥æ™‚ã«å®Ÿè¡Œçµæžœã‚’è¡¨ç¤ºã™ã‚‹.</div><div class='add'>+  --noecho-on-assignment</div><div class='add'>+                    ä»£å…¥æ™‚ã«å®Ÿè¡Œçµæžœã‚’è¡¨ç¤ºã—ãªã„.</div><div class='add'>+  --truncate-echo-on-assignment</div><div class='add'>+                    ä»£å…¥æ™‚ã«çœç•¥ã•ã‚ŒãŸå®Ÿè¡Œçµæžœã‚’è¡¨ç¤ºã™ã‚‹(ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ).</div><div class='add'>+  --inspect	    çµæžœå‡ºåŠ›ã«inspectã‚’ç”¨ã„ã‚‹.</div><div class='ctx'>   --noinspect	    çµæžœå‡ºåŠ›ã«inspectã‚’ç”¨ã„ãªã„.</div><div class='del'>-  --readline	    readlineãƒ©ã‚¤ãƒ–ãƒ©ãƒªã‚’åˆ©ç”¨ã™ã‚‹.</div><div class='del'>-  --noreadline	    readlineãƒ©ã‚¤ãƒ–ãƒ©ãƒªã‚’åˆ©ç”¨ã—ãªã„. ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®å‹•ä½œã¯,</div><div class='del'>-		    inf-ruby-modeä»¥å¤–ã§readlineãƒ©ã‚¤ãƒ–ãƒ©ãƒªã‚’åˆ©ç”¨ã—ã‚ˆã†</div><div class='del'>-		    ã¨ã™ã‚‹.</div><div class='add'>+  --singleline      ã‚·ãƒ³ã‚°ãƒ«ãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’åˆ©ç”¨ã™ã‚‹.</div><div class='add'>+  --nosingleline    ã‚·ãƒ³ã‚°ãƒ«ãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’åˆ©ç”¨ã—ãªã„. ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®å‹•</div><div class='add'>+                    ä½œã¯, inf-ruby-modeä»¥å¤–ã§ã‚·ãƒ³ã‚°ãƒ«ãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’åˆ©</div><div class='add'>+                    ç”¨ã—ã‚ˆã†ã¨ã™ã‚‹.</div><div class='add'>+  --colorize	    è‰²ä»˜ã‘ã‚’åˆ©ç”¨ã™ã‚‹.</div><div class='add'>+  --nocolorize	    è‰²ä»˜ã‘ã‚’åˆ©ç”¨ã—ãªã„.</div><div class='add'>+  --autocomplete    ã‚ªãƒ¼ãƒˆã‚³ãƒ³ãƒ—ãƒªãƒ¼ãƒˆã‚’åˆ©ç”¨ã™ã‚‹.</div><div class='add'>+  --noautocomplete  ã‚ªãƒ¼ãƒˆã‚³ãƒ³ãƒ—ãƒªãƒ¼ãƒˆã‚’åˆ©ç”¨ã—ãªã„.</div><div class='ctx'>   --prompt prompt-mode</div><div class='ctx'>   --prompt-mode prompt-mode</div><div class='ctx'> 		    ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆãƒ¢ãƒ¼ãƒ‰ã‚’åˆ‡æ›¿ãˆã¾ã™. ç¾åœ¨å®šç¾©ã•ã‚Œã¦ã„ã‚‹ãƒ—</div><div class='ctx'> 		    ãƒ­ãƒ³ãƒ—ãƒˆãƒ¢ãƒ¼ãƒ‰ã¯, default, simple, xmp, inf-rubyãŒ</div><div class='del'>-		    ç”¨æ„ã•ã‚Œã¦ã„ã¾ã™. ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯defaultãƒ—ãƒ­ãƒ³ãƒ—ãƒˆãƒ¢ãƒ¼</div><div class='del'>-		    ãƒ‰ã«ãªã£ã¦ã„ã¾ã™.</div><div class='del'>-</div><div class='add'>+		    ç”¨æ„ã•ã‚Œã¦ã„ã¾ã™.</div><div class='ctx'>   --inf-ruby-mode   emacsã®inf-ruby-modeç”¨ã®ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆè¡¨ç¤ºã‚’è¡Œãªã†. ç‰¹</div><div class='del'>-		    ã«æŒ‡å®šãŒãªã„é™ã‚Š, readlineãƒ©ã‚¤ãƒ–ãƒ©ãƒªã¯ä½¿ã‚ãªããªã‚‹.</div><div class='add'>+		    ã«æŒ‡å®šãŒãªã„é™ã‚Š, ãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã¯ä½¿ã‚ãªããªã‚‹.</div><div class='ctx'>   --simple-prompt</div><div class='ctx'> 		    éžå¸¸ã«ã‚·ãƒ³ãƒ—ãƒ«ãªãƒ—ãƒ­ãƒ³ãƒ—ãƒˆã‚’ç”¨ã„ã‚‹ãƒ¢ãƒ¼ãƒ‰ã§ã™.</div><div class='ctx'>   --noprompt	    ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆè¡¨ç¤ºã‚’è¡Œãªã‚ãªã„.</div><div class='add'>+  --single-irb	    irb ä¸­ã§ self ã‚’å®Ÿè¡Œã—ã¦å¾—ã‚‰ã‚Œã‚‹ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’ã‚µ</div><div class='add'>+		    ãƒ– irb ã¨å…±æœ‰ã™ã‚‹.</div><div class='ctx'>   --tracer	    ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œæ™‚ã«ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’è¡Œãªã†.</div><div class='ctx'>   --back-trace-limit n</div><div class='ctx'> 		    ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹è¡¨ç¤ºã‚’ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã®é ­ã‹ã‚‰ n, å¾Œã‚</div><div class='ctx'> 		    ã‹ã‚‰nã ã‘è¡Œãªã†. ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯16</div><div class='del'>-  --irb_debug n	    irbã®ãƒ‡ãƒãƒƒã‚°ãƒ‡ãƒãƒƒã‚°ãƒ¬ãƒ™ãƒ«ã‚’nã«è¨­å®šã™ã‚‹(åˆ©ç”¨ã—ãª</div><div class='del'>-		    ã„æ–¹ãŒç„¡é›£ã§ã—ã‚‡ã†).</div><div class='del'>-  -v, --version	    irbã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’è¡¨ç¤ºã™ã‚‹</div><div class='add'>+</div><div class='add'>+  --verbose	    è©³ç´°ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å‡ºåŠ›ã™ã‚‹.</div><div class='add'>+  --noverbose	    è©³ç´°ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å‡ºåŠ›ã—ãªã„(ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ).</div><div class='add'>+  -v, --version	    irbã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’è¡¨ç¤ºã™ã‚‹.</div><div class='add'>+  -h, --help	    irb ã®ãƒ˜ãƒ«ãƒ—ã‚’è¡¨ç¤ºã™ã‚‹.</div><div class='add'>+  --		    ä»¥é™ã®ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³å¼•æ•°ã‚’ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã¨ã—ã¦æ‰±ã‚ãªã„.</div><div class='ctx'> </div><div class='ctx'> = ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³</div><div class='ctx'> </div><div class='hunk'>@@ -91,13 +107,12 @@ irbèµ·å‹•æ™‚ã«``~/.irbrc''ã‚’èª­ã¿è¾¼ã¿ã¾ã™. ã‚‚ã—å­˜åœ¨ã—ãªã„å ´åˆã¯</div><div class='ctx'>   IRB.conf[:IRB_RC] = nil</div><div class='ctx'>   IRB.conf[:BACK_TRACE_LIMIT]=16</div><div class='ctx'>   IRB.conf[:USE_LOADER] = false</div><div class='del'>-  IRB.conf[:USE_READLINE] = nil</div><div class='add'>+  IRB.conf[:USE_SINGLELINE] = nil</div><div class='ctx'>   IRB.conf[:USE_TRACER] = false</div><div class='ctx'>   IRB.conf[:IGNORE_SIGINT] = true</div><div class='ctx'>   IRB.conf[:IGNORE_EOF] = false</div><div class='ctx'>   IRB.conf[:PROMPT_MODE] = :DEFAULT</div><div class='ctx'>   IRB.conf[:PROMPT] = {...}</div><div class='del'>-  IRB.conf[:DEBUG_LEVEL]=0</div><div class='ctx'>   IRB.conf[:VERBOSE]=true</div><div class='ctx'> </div><div class='ctx'> == ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆã®è¨­å®š</div><div class='hunk'>@@ -138,12 +153,12 @@ PROMPT_I, PROMPT_N, PROMPT_S, PROMPT_Cã¯, ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã‚’æŒ‡å®šã—ã¾ã™.</div><div class='ctx'> </div><div class='ctx'> ä¾‹ãˆã°, ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆãƒ¢ãƒ¼ãƒ‰ã¯:</div><div class='ctx'> </div><div class='del'>-  IRB.conf[:PROMPT_MODE][:DEFAULT] = {</div><div class='add'>+  IRB.conf[:PROMPT][:DEFAULT] = {</div><div class='ctx'>       :PROMPT_I =&gt; "%N(%m):%03n:%i&gt; ",</div><div class='ctx'>       :PROMPT_N =&gt; "%N(%m):%03n:%i&gt; ",</div><div class='ctx'>       :PROMPT_S =&gt; "%N(%m):%03n:%i%l ",</div><div class='ctx'>       :PROMPT_C =&gt; "%N(%m):%03n:%i* ",</div><div class='del'>-      :RETURN =&gt; "%s\n"</div><div class='add'>+      :RETURN =&gt; "=&gt; %s\n"</div><div class='ctx'>   }</div><div class='ctx'> </div><div class='ctx'> ã¨ãªã£ã¦ã„ã¾ã™.</div><div class='hunk'>@@ -183,9 +198,6 @@ irbæ‹¡å¼µã‚³ãƒžãƒ³ãƒ‰ã¯, ç°¡å˜ãªåå‰ã¨é ­ã«`irb_'ã‚’ã¤ã‘ãŸåå‰ã¨ä¸¡</div><div class='ctx'>     ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹è¡¨ç¤ºã‚’ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã®é ­ã‹ã‚‰n, å¾Œã‚ã‹ã‚‰nã ã‘è¡Œãªã†.</div><div class='ctx'>     ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯16</div><div class='ctx'> </div><div class='del'>---- conf.debug_level = N</div><div class='del'>-    irbç”¨ã®ãƒ‡ãƒãƒƒã‚°ãƒ¬ãƒ™ãƒ«ã®è¨­å®š</div><div class='del'>-</div><div class='ctx'> --- conf.ignore_eof = true/false</div><div class='ctx'>     ^DãŒå…¥åŠ›ã•ã‚ŒãŸæ™‚ã®å‹•ä½œã‚’è¨­å®šã™ã‚‹. trueã®æ™‚ã¯^Dã‚’ç„¡è¦–ã™ã‚‹, falseã®</div><div class='ctx'>     æ™‚ã¯irbã‚’çµ‚äº†ã™ã‚‹.</div><div class='hunk'>@@ -197,7 +209,8 @@ irbæ‹¡å¼µã‚³ãƒžãƒ³ãƒ‰ã¯, ç°¡å˜ãªåå‰ã¨é ­ã«`irb_'ã‚’ã¤ã‘ãŸåå‰ã¨ä¸¡</div><div class='ctx'>       å®Ÿè¡Œä¸­: å®Ÿè¡Œã‚’ä¸­æ­¢ã™ã‚‹.</div><div class='ctx'> </div><div class='ctx'> --- conf.inf_ruby_mode = true/false</div><div class='del'>-    inf-ruby-modeç”¨ã®ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆè¡¨ç¤ºã‚’è¡Œãªã†. ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯false.</div><div class='add'>+    inf-ruby-modeç”¨ã®ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆè¡¨ç¤ºã‚’è¡Œãªã†. ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯false. ç‰¹ã«æŒ‡å®š</div><div class='add'>+    ãŒãªã„é™ã‚Š, ãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã¯ä½¿ã‚ãªããªã‚‹.</div><div class='ctx'> </div><div class='ctx'> --- conf.inspect_mode = true/false/nil</div><div class='ctx'>     ã‚¤ãƒ³ã‚¹ãƒšã‚¯ãƒˆãƒ¢ãƒ¼ãƒ‰ã‚’è¨­å®šã™ã‚‹.</div><div class='hunk'>@@ -225,12 +238,19 @@ irbæ‹¡å¼µã‚³ãƒžãƒ³ãƒ‰ã¯, ç°¡å˜ãªåå‰ã¨é ­ã«`irb_'ã‚’ã¤ã‘ãŸåå‰ã¨ä¸¡</div><div class='ctx'> --- conf.use_prompt = true/false</div><div class='ctx'>     ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆè¡¨ç¤ºã™ã‚‹ã‹ã©ã†ã‹? ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã¯ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆã‚’è¡¨ç¤ºã™ã‚‹.</div><div class='ctx'> </div><div class='del'>---- conf.use_readline = true/false/nil</div><div class='del'>-    readlineã‚’ä½¿ã†ã‹ã©ã†ã‹?</div><div class='del'>-    true: readlineã‚’ä½¿ã†.</div><div class='del'>-    false: readlineã‚’ä½¿ã‚ãªã„.</div><div class='del'>-    nil: (ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ)inf-ruby-modeä»¥å¤–ã§readlineãƒ©ã‚¤ãƒ–ãƒ©ãƒªã‚’åˆ©ç”¨ã—ã‚ˆ</div><div class='del'>-         ã†ã¨ã™ã‚‹.</div><div class='add'>+--- conf.use_multiline = true/false/nil</div><div class='add'>+    ãƒžãƒ«ãƒãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’ä½¿ã†ã‹ã©ã†ã‹?</div><div class='add'>+    true: ãƒžãƒ«ãƒãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’ä½¿ã†.</div><div class='add'>+    false: ãƒžãƒ«ãƒãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’ä½¿ã‚ãªã„.</div><div class='add'>+    nil: (ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ)inf-ruby-modeä»¥å¤–ã§ãƒžãƒ«ãƒãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’åˆ©ç”¨ã—ã‚ˆã†</div><div class='add'>+    ã¨ã™ã‚‹.</div><div class='add'>+</div><div class='add'>+--- conf.use_singleline = true/false/nil</div><div class='add'>+    ã‚·ãƒ³ã‚°ãƒ«ãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’ä½¿ã†ã‹ã©ã†ã‹?</div><div class='add'>+    true: ã‚·ãƒ³ã‚°ãƒ«ãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’ä½¿ã†.</div><div class='add'>+    false: ã‚·ãƒ³ã‚°ãƒ«ãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’ä½¿ã‚ãªã„.</div><div class='add'>+    nil: (ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ)inf-ruby-modeã¨ãƒžãƒ«ãƒãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ä»¥å¤–ã§ã‚·ãƒ³ã‚°ãƒ«ãƒ©</div><div class='add'>+         ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’åˆ©ç”¨ã—ã‚ˆã†ã¨ã™ã‚‹.</div><div class='ctx'> #</div><div class='ctx'> #--- conf.verbose=T/F</div><div class='ctx'> #    irbã‹ã‚‰ã„ã‚ã„ã‚ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å‡ºåŠ›ã™ã‚‹ã‹?</div><div class='hunk'>@@ -370,7 +390,7 @@ rubyã§ã¯, ä»¥ä¸‹ã®ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã¯ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™.</div><div class='ctx'> ãƒ‘ã‚¤ãƒ«ã—ã¦ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã‚’æ±ºå®šã™ã‚‹ã‹ã‚‰ã§ã™. ãã‚Œã«å¯¾ã—, irbã¯å®Ÿè¡Œå¯èƒ½ã«</div><div class='ctx'> ãªã‚‹(å¼ãŒé–‰ã˜ã‚‹)ã¨è‡ªå‹•çš„ã«è©•ä¾¡ã—ã¦ã„ã‚‹ã‹ã‚‰ã§ã™. ä¸Šè¨˜ã®ä¾‹ã§ã¯,</div><div class='ctx'> </div><div class='del'>-  evel "foo = 0"</div><div class='add'>+  eval "foo = 0"</div><div class='ctx'> </div><div class='ctx'> ã‚’è¡Œãªã£ãŸæ™‚ç‚¹ã§è©•ä¾¡ã‚’è¡Œãªã„, ãã®æ™‚ç‚¹ã§å¤‰æ•°ãŒå®šç¾©ã•ã‚Œã‚‹ãŸã‚, æ¬¡å¼ã§</div><div class='ctx'> å¤‰æ•°fooã¯å®šç¾©ã•ã‚Œã¦ã„ã‚‹ã‹ã‚‰ã§ã™.</div><div class='head'>diff --git a/doc/keywords.rdoc b/doc/keywords.rdoc<br/>index 98bbd5e864..cb1cff33f0 100644<br/>--- a/<a href='/ruby.git/tree/doc/keywords.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/keywords.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/keywords.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/keywords.rdoc</a></div><div class='hunk'>@@ -76,12 +76,14 @@ for::</div><div class='ctx'>   expressions}[rdoc-ref:syntax/control_expressions.rdoc]</div><div class='ctx'> </div><div class='ctx'> if::</div><div class='del'>-  Used for +if+ and modifier +if+ expressions.  See {control</div><div class='add'>+  Used for +if+ and modifier +if+ statements.  See {control</div><div class='ctx'>   expressions}[rdoc-ref:syntax/control_expressions.rdoc]</div><div class='ctx'> </div><div class='ctx'> in::</div><div class='ctx'>   Used to separate the iterable object and iterator variable in a +for+ loop.</div><div class='ctx'>   See {control expressions}[rdoc-ref:syntax/control_expressions.rdoc]</div><div class='add'>+  It also serves as a pattern in a +case+ expression.</div><div class='add'>+  See {pattern matching}[rdoc-ref:syntax/pattern_matching.rdoc]</div><div class='ctx'> </div><div class='ctx'> module::</div><div class='ctx'>   Creates or opens a module.  See {modules and classes</div><div class='hunk'>@@ -115,7 +117,9 @@ retry::</div><div class='ctx'>   handling}[rdoc-ref:syntax/exceptions.rdoc]</div><div class='ctx'> </div><div class='ctx'> return::</div><div class='del'>-  Exits a method.  See {methods}[rdoc-ref:syntax/methods.rdoc]</div><div class='add'>+  Exits a method.  See {methods}[rdoc-ref:syntax/methods.rdoc].</div><div class='add'>+  If met in top-level scope, immediately stops interpretation of</div><div class='add'>+  the current file.</div><div class='ctx'> </div><div class='ctx'> self::</div><div class='ctx'>   The object the current method is attached to.  See</div><div class='hunk'>@@ -137,7 +141,7 @@ undef::</div><div class='ctx'>   See {modules and classes}[rdoc-ref:syntax/modules_and_classes.rdoc]</div><div class='ctx'> </div><div class='ctx'> unless::</div><div class='del'>-  Used for +unless+ and modifier +unless+ expressions.  See {control</div><div class='add'>+  Used for +unless+ and modifier +unless+ statements.  See {control</div><div class='ctx'>   expressions}[rdoc-ref:syntax/control_expressions.rdoc]</div><div class='ctx'> </div><div class='ctx'> until::</div><div class='head'>diff --git a/doc/maintainers.rdoc b/doc/maintainers.rdoc<br/>index e7baf933c6..7e0c35194f 100644<br/>--- a/<a href='/ruby.git/tree/doc/maintainers.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/maintainers.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/maintainers.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/maintainers.rdoc</a></div><div class='hunk'>@@ -13,7 +13,7 @@ A module maintainer is responsible for a certain part of Ruby.</div><div class='ctx'> * They have "developer" role on the Redmine to modify issues.</div><div class='ctx'> * They have authority to decide the feature of their part. But they should always respect discussions on ruby-core/ruby-dev.</div><div class='ctx'> </div><div class='del'>-A submaintainer of a module is like a maintainer. But The submaintainer does</div><div class='add'>+A submaintainer of a module is like a maintainer. But the submaintainer does</div><div class='ctx'> not have authority to change/add a feature on his/her part. They need consensus</div><div class='ctx'> on ruby-core/ruby-dev before changing/adding. Some of submaintainers have</div><div class='ctx'> commit right, others don't.</div><div class='hunk'>@@ -30,267 +30,395 @@ Koichi Sasada (ko1)</div><div class='ctx'> </div><div class='ctx'> Yukihiro Matsumoto (matz)</div><div class='ctx'> </div><div class='del'>-=== Documentation</div><div class='del'>-</div><div class='del'>-Zachary Scott (zzak)</div><div class='del'>-</div><div class='ctx'> == Standard Library Maintainers</div><div class='ctx'> </div><div class='ctx'> === Libraries</div><div class='ctx'> </div><div class='del'>-[lib/English.rb]</div><div class='add'>+[lib/mkmf.rb]</div><div class='add'>+  _unmaintained_</div><div class='add'>+[lib/rubygems.rb, lib/rubygems/*]</div><div class='add'>+  Eric Hodel (drbrain), Hiroshi SHIBATA (hsbt)</div><div class='add'>+  https://github.com/rubygems/rubygems</div><div class='add'>+[lib/unicode_normalize.rb, lib/unicode_normalize/*]</div><div class='add'>+  Martin J. DÃ¼rst</div><div class='add'>+</div><div class='add'>+=== Extensions</div><div class='add'>+</div><div class='add'>+[ext/continuation]</div><div class='add'>+  Koichi Sasada (ko1)</div><div class='add'>+[ext/coverage]</div><div class='add'>+  Yusuke Endoh (mame)</div><div class='add'>+[ext/fiber]</div><div class='add'>+  Koichi Sasada (ko1)</div><div class='add'>+[ext/monitor]</div><div class='add'>+  Koichi Sasada (ko1)</div><div class='add'>+[ext/objspace]</div><div class='ctx'>   _unmaintained_</div><div class='add'>+[ext/pty]</div><div class='add'>+  _unmaintained_</div><div class='add'>+[ext/ripper]</div><div class='add'>+  _unmaintained_</div><div class='add'>+[ext/socket]</div><div class='add'>+  * Tanaka Akira (akr)</div><div class='add'>+  * API change needs matz's approval</div><div class='add'>+[ext/win32]</div><div class='add'>+  NAKAMURA Usaku (usa)</div><div class='add'>+</div><div class='add'>+== Default gems Maintainers</div><div class='add'>+</div><div class='add'>+=== Libraries</div><div class='add'>+</div><div class='ctx'> [lib/abbrev.rb]</div><div class='ctx'>   Akinori MUSHA (knu)</div><div class='add'>+  https://github.com/ruby/abbrev</div><div class='add'>+  https://rubygems.org/gems/abbrev</div><div class='ctx'> [lib/base64.rb]</div><div class='ctx'>   Yusuke Endoh (mame)</div><div class='add'>+  https://github.com/ruby/base64</div><div class='add'>+  https://rubygems.org/gems/base64</div><div class='ctx'> [lib/benchmark.rb]</div><div class='ctx'>   _unmaintained_</div><div class='add'>+  https://github.com/ruby/benchmark</div><div class='add'>+  https://rubygems.org/gems/benchmark</div><div class='add'>+[lib/bundler.rb, lib/bundler/*]</div><div class='add'>+  Hiroshi SHIBATA (hsbt)</div><div class='add'>+  https://github.com/rubygems/rubygems</div><div class='add'>+  https://rubygems.org/gems/bundler</div><div class='ctx'> [lib/cgi.rb, lib/cgi/*]</div><div class='del'>-  Takeyuki Fujioka (xibbar)</div><div class='del'>-[lib/drb.rb, lib/drb/*]</div><div class='del'>-  Masatoshi SEKI (seki)</div><div class='add'>+  _unmaintained_</div><div class='add'>+  https://github.com/ruby/cgi</div><div class='add'>+  https://rubygems.org/gems/cgi</div><div class='add'>+[lib/csv.rb]</div><div class='add'>+  Kenta Murata (mrkn), Kouhei Sutou (kou)</div><div class='add'>+  https://github.com/ruby/csv</div><div class='add'>+  https://rubygems.org/gems/csv</div><div class='add'>+[lib/English.rb]</div><div class='add'>+  _unmaintained_</div><div class='add'>+  https://github.com/ruby/English</div><div class='add'>+  https://rubygems.org/gems/English</div><div class='ctx'> [lib/debug.rb]</div><div class='ctx'>   _unmaintained_</div><div class='add'>+  https://github.com/ruby/debug</div><div class='ctx'> [lib/delegate.rb]</div><div class='ctx'>   _unmaintained_</div><div class='add'>+  https://github.com/ruby/delegate</div><div class='add'>+  https://rubygems.org/gems/delegate</div><div class='add'>+[lib/did_you_mean.rb]</div><div class='add'>+  Yuki Nishijima (yuki24)</div><div class='add'>+  https://github.com/ruby/did_you_mean</div><div class='add'>+  https://rubygems.org/gems/did_you_mean</div><div class='add'>+[ext/digest, ext/digest/*]</div><div class='add'>+  Akinori MUSHA (knu)</div><div class='add'>+  https://github.com/ruby/digest</div><div class='add'>+  https://rubygems.org/gems/digest</div><div class='add'>+[lib/drb.rb, lib/drb/*]</div><div class='add'>+  Masatoshi SEKI (seki)</div><div class='add'>+  https://github.com/ruby/drb</div><div class='add'>+  https://rubygems.org/gems/drb</div><div class='ctx'> [lib/erb.rb]</div><div class='ctx'>   Masatoshi SEKI (seki), Takashi Kokubun (k0kubun)</div><div class='add'>+  https://github.com/ruby/erb</div><div class='add'>+  https://rubygems.org/gems/erb</div><div class='add'>+[lib/error_highlight.rb, lib/error_highlight/*]</div><div class='add'>+  Yusuke Endoh (mame)</div><div class='add'>+  https://github.com/ruby/error_highlight</div><div class='add'>+  https://rubygems.org/gems/error_highlight</div><div class='add'>+[lib/fileutils.rb]</div><div class='add'>+  _unmaintained_</div><div class='add'>+  https://github.com/ruby/fileutils</div><div class='add'>+  https://rubygems.org/gems/fileutils</div><div class='ctx'> [lib/find.rb]</div><div class='ctx'>   Kazuki Tsujimoto (ktsj)</div><div class='add'>+  https://github.com/ruby/find</div><div class='add'>+  https://rubygems.org/gems/find</div><div class='add'>+[lib/forwardable.rb]</div><div class='add'>+  Keiju ISHITSUKA (keiju)</div><div class='add'>+  https://github.com/ruby/forwardable</div><div class='add'>+  https://rubygems.org/gems/forwardable</div><div class='ctx'> [lib/getoptlong.rb]</div><div class='ctx'>   _unmaintained_</div><div class='del'>-[lib/mkmf.rb]</div><div class='del'>-  _unmaintained_</div><div class='del'>-[lib/monitor.rb]</div><div class='del'>-  Shugo Maeda (shugo)</div><div class='del'>-[lib/net/ftp.rb]</div><div class='del'>-  Shugo Maeda (shugo)</div><div class='del'>-[lib/net/imap.rb]</div><div class='del'>-  Shugo Maeda (shugo)</div><div class='add'>+  https://github.com/ruby/getoptlong</div><div class='add'>+  https://rubygems.org/gems/getoptlong</div><div class='add'>+[lib/ipaddr.rb]</div><div class='add'>+  Akinori MUSHA (knu)</div><div class='add'>+  https://github.com/ruby/ipaddr</div><div class='add'>+  https://rubygems.org/gems/ipaddr</div><div class='add'>+[lib/irb.rb, lib/irb/*]</div><div class='add'>+  aycabta</div><div class='add'>+  https://github.com/ruby/irb</div><div class='add'>+  https://rubygems.org/gems/irb</div><div class='add'>+[lib/optparse.rb, lib/optparse/*]</div><div class='add'>+  Nobuyuki Nakada (nobu)</div><div class='add'>+  https://github.com/ruby/optparse</div><div class='add'>+[lib/logger.rb]</div><div class='add'>+  Naotoshi Seo (sonots)</div><div class='add'>+  https://github.com/ruby/logger</div><div class='add'>+  https://rubygems.org/gems/logger</div><div class='add'>+[lib/mutex_m.rb]</div><div class='add'>+  Keiju ISHITSUKA (keiju)</div><div class='add'>+  https://github.com/ruby/mutex_m</div><div class='add'>+  https://rubygems.org/gems/mutex_m</div><div class='ctx'> [lib/net/http.rb, lib/net/https.rb]</div><div class='ctx'>   NARUSE, Yui (naruse)</div><div class='del'>-[lib/net/pop.rb]</div><div class='del'>-  _unmaintained_</div><div class='add'>+  https://github.com/ruby/net-http</div><div class='add'>+  https://rubygems.org/gems/net-http</div><div class='ctx'> [lib/net/protocol.rb]</div><div class='ctx'>   _unmaintained_</div><div class='del'>-[lib/net/smtp.rb]</div><div class='del'>-  _unmaintained_</div><div class='add'>+  https://github.com/ruby/net-protocol</div><div class='add'>+  https://rubygems.org/gems/net-protocol</div><div class='ctx'> [lib/observer.rb]</div><div class='ctx'>   _unmaintained_</div><div class='del'>-[lib/open-uri.rb]</div><div class='del'>-  Tanaka Akira (akr)</div><div class='add'>+  https://github.com/ruby/observer</div><div class='add'>+  https://rubygems.org/gems/observer</div><div class='ctx'> [lib/open3.rb]</div><div class='ctx'>   _unmaintained_</div><div class='del'>-[lib/optparse.rb, lib/optparse/*]</div><div class='del'>-  Nobuyuki Nakada (nobu)</div><div class='add'>+  https://github.com/ruby/open3</div><div class='add'>+  https://rubygems.org/gems/open3</div><div class='add'>+[lib/open-uri.rb]</div><div class='add'>+  Tanaka Akira (akr)</div><div class='add'>+  https://github.com/ruby/open-uri</div><div class='add'>+[lib/ostruct.rb]</div><div class='add'>+  Marc-AndrÃ© Lafortune (marcandre)</div><div class='add'>+  https://github.com/ruby/ostruct</div><div class='add'>+  https://rubygems.org/gems/ostruct</div><div class='ctx'> [lib/pp.rb]</div><div class='ctx'>   Tanaka Akira (akr)</div><div class='add'>+  https://github.com/ruby/pp</div><div class='add'>+  https://rubygems.org/gems/pp</div><div class='ctx'> [lib/prettyprint.rb]</div><div class='ctx'>   Tanaka Akira (akr)</div><div class='del'>-[lib/profile.rb]</div><div class='del'>-  _unmaintained_</div><div class='del'>-[lib/profiler.rb]</div><div class='del'>-  _unmaintained_</div><div class='add'>+  https://github.com/ruby/prettyprint</div><div class='add'>+  https://rubygems.org/gems/prettyprint</div><div class='ctx'> [lib/pstore.rb]</div><div class='ctx'>   _unmaintained_</div><div class='del'>-[lib/racc/*]</div><div class='del'>-  Aaron Patterson (tenderlove)</div><div class='del'>-[lib/resolv-replace.rb]</div><div class='del'>-  Tanaka Akira (akr)</div><div class='add'>+  https://github.com/ruby/pstore</div><div class='add'>+  https://rubygems.org/gems/pstore</div><div class='add'>+[lib/racc.rb, lib/racc/*]</div><div class='add'>+  Aaron Patterson (tenderlove), Hiroshi SHIBATA (hsbt)</div><div class='add'>+  https://github.com/ruby/racc</div><div class='add'>+  https://rubygems.org/gems/racc</div><div class='add'>+[lib/readline.rb]</div><div class='add'>+  aycabta</div><div class='add'>+  https://github.com/ruby/readline</div><div class='add'>+  https://rubygems.org/gems/readline</div><div class='ctx'> [lib/resolv.rb]</div><div class='ctx'>   Tanaka Akira (akr)</div><div class='add'>+  https://github.com/ruby/resolv</div><div class='add'>+  https://rubygems.org/gems/resolv</div><div class='add'>+[lib/resolv-replace.rb]</div><div class='add'>+  Tanaka Akira (akr)</div><div class='add'>+  https://github.com/ruby/resolv-replace</div><div class='add'>+  https://rubygems.org/gems/resolv-replace</div><div class='add'>+[lib/rdoc.rb, lib/rdoc/*]</div><div class='add'>+  Eric Hodel (drbrain), Hiroshi SHIBATA (hsbt)</div><div class='add'>+  https://github.com/ruby/rdoc</div><div class='add'>+  https://rubygems.org/gems/rdoc</div><div class='add'>+[lib/readline.rb]</div><div class='add'>+  aycabta</div><div class='add'>+  https://github.com/ruby/readline</div><div class='add'>+  https://rubygems.org/gems/readline</div><div class='add'>+[lib/reline.rb, lib/reline/*]</div><div class='add'>+  aycabta</div><div class='add'>+  https://github.com/ruby/reline</div><div class='add'>+  https://rubygems.org/gems/reline</div><div class='ctx'> [lib/rinda/*]</div><div class='ctx'>   Masatoshi SEKI (seki)</div><div class='del'>-[lib/rubygems.rb, lib/ubygems.rb, lib/rubygems/*]</div><div class='del'>-  Eric Hodel (drbrain), Hiroshi SHIBATA (hsbt)</div><div class='del'>-  https://github.com/rubygems/rubygems</div><div class='del'>-[lib/set.rb]</div><div class='del'>-  Akinori MUSHA (knu)</div><div class='add'>+  https://github.com/ruby/rinda</div><div class='add'>+  https://rubygems.org/gems/rinda</div><div class='ctx'> [lib/securerandom.rb]</div><div class='ctx'>   Tanaka Akira (akr)</div><div class='add'>+  https://github.com/ruby/securerandom</div><div class='add'>+  https://rubygems.org/gems/securerandom</div><div class='add'>+[lib/set.rb]</div><div class='add'>+  Akinori MUSHA (knu)</div><div class='add'>+  https://github.com/ruby/set</div><div class='add'>+  https://rubygems.org/gems/set</div><div class='ctx'> [lib/shellwords.rb]</div><div class='ctx'>   Akinori MUSHA (knu)</div><div class='add'>+  https://github.com/ruby/shellwords</div><div class='add'>+  https://rubygems.org/gems/shellwords</div><div class='ctx'> [lib/singleton.rb]</div><div class='ctx'>   Yukihiro Matsumoto (matz)</div><div class='add'>+  https://github.com/ruby/singleton</div><div class='add'>+  https://rubygems.org/gems/singleton</div><div class='ctx'> [lib/tempfile.rb]</div><div class='ctx'>   _unmaintained_</div><div class='del'>-[lib/tmpdir.rb]</div><div class='del'>-  _unmaintained_</div><div class='add'>+  https://github.com/ruby/tempfile</div><div class='add'>+  https://rubygems.org/gems/tempfile</div><div class='ctx'> [lib/time.rb]</div><div class='ctx'>   Tanaka Akira (akr)</div><div class='add'>+  https://github.com/ruby/time</div><div class='add'>+  https://rubygems.org/gems/time</div><div class='ctx'> [lib/timeout.rb]</div><div class='ctx'>   Yukihiro Matsumoto (matz)</div><div class='add'>+  https://github.com/ruby/timeout</div><div class='add'>+  https://rubygems.org/gems/timeout</div><div class='add'>+[lib/thwait.rb]</div><div class='add'>+  Keiju ISHITSUKA (keiju)</div><div class='add'>+  https://github.com/ruby/thwait</div><div class='add'>+  https://rubygems.org/gems/thwait</div><div class='add'>+[lib/tmpdir.rb]</div><div class='add'>+  _unmaintained_</div><div class='add'>+  https://github.com/ruby/tmpdir</div><div class='add'>+  https://rubygems.org/gems/tmpdir</div><div class='ctx'> [lib/tsort.rb]</div><div class='ctx'>   Tanaka Akira (akr)</div><div class='add'>+  https://github.com/ruby/tsort</div><div class='add'>+  https://rubygems.org/gems/tsort</div><div class='ctx'> [lib/un.rb]</div><div class='ctx'>   WATANABE Hirofumi (eban)</div><div class='del'>-[lib/unicode_normalize.rb, lib/unicode_normalize/*]</div><div class='del'>-  Martin J. DÃ¼rst</div><div class='add'>+  https://github.com/ruby/un</div><div class='add'>+  https://rubygems.org/gems/un</div><div class='ctx'> [lib/uri.rb, lib/uri/*]</div><div class='ctx'>   YAMADA, Akira (akira)</div><div class='del'>-[lib/weakref.rb]</div><div class='del'>-  _unmaintained_</div><div class='add'>+  https://github.com/ruby/uri</div><div class='add'>+  https://rubygems.org/gems/uri</div><div class='ctx'> [lib/yaml.rb, lib/yaml/*]</div><div class='ctx'>   Aaron Patterson (tenderlove), Hiroshi SHIBATA (hsbt)</div><div class='del'>-</div><div class='del'>-=== Extensions</div><div class='del'>-</div><div class='del'>-[ext/cgi]</div><div class='del'>-  Nobuyoshi Nakada (nobu)</div><div class='del'>-[ext/continuation]</div><div class='del'>-  Koichi Sasada (ko1)</div><div class='del'>-[ext/coverage]</div><div class='del'>-  Yusuke Endoh (mame)</div><div class='del'>-[ext/digest, ext/digest/*]</div><div class='del'>-  Akinori MUSHA (knu)</div><div class='del'>-[ext/fiber]</div><div class='del'>-  Koichi Sasada (ko1)</div><div class='del'>-[ext/io/nonblock]</div><div class='del'>-  Nobuyuki Nakada (nobu)</div><div class='del'>-[ext/io/wait]</div><div class='del'>-  Nobuyuki Nakada (nobu)</div><div class='del'>-[ext/nkf]</div><div class='del'>-  NARUSE, Yui (narse)</div><div class='del'>-[ext/objspace]</div><div class='del'>-  _unmaintained_</div><div class='del'>-[ext/pathname]</div><div class='del'>-  Tanaka Akira (akr)</div><div class='del'>-[ext/pty]</div><div class='del'>-  _unmaintained_</div><div class='del'>-[ext/racc]</div><div class='del'>-  Aaron Patterson (tenderlove)</div><div class='del'>-[ext/readline]</div><div class='del'>-  TAKAO Kouji (kouji)</div><div class='del'>-[ext/ripper]</div><div class='add'>+  https://github.com/ruby/yaml</div><div class='add'>+  https://rubygems.org/gems/yaml</div><div class='add'>+[lib/weakref.rb]</div><div class='ctx'>   _unmaintained_</div><div class='del'>-[ext/socket]</div><div class='del'>-  * Tanaka Akira (akr)</div><div class='del'>-  * API change needs matz's approval</div><div class='del'>-[ext/syslog]</div><div class='del'>-  Akinori MUSHA (knu)</div><div class='del'>-[ext/win32]</div><div class='del'>-  NAKAMURA Usaku (usa)</div><div class='del'>-[ext/win32ole]</div><div class='del'>-  Masaki Suketa (suke)</div><div class='del'>-</div><div class='del'>-== Default gems Maintainers</div><div class='del'>-</div><div class='del'>-=== Libraries</div><div class='del'>-</div><div class='del'>-[lib/bundler.rb, lib/bundler/*]</div><div class='del'>-  Hiroshi SHIBATA (hsbt)</div><div class='del'>-  https://github.com/bundler/bundler</div><div class='del'>-[lib/cmath.rb]</div><div class='del'>-  _unmaintained_</div><div class='del'>-  https://github.com/ruby/cmath</div><div class='del'>-[lib/csv.rb]</div><div class='del'>-  Kenta Murata (mrkn), Kouhei Sutou (kou)</div><div class='del'>-  https://github.com/ruby/csv</div><div class='del'>-[lib/e2mmap.rb]</div><div class='del'>-  Keiju ISHITSUKA (keiju)</div><div class='del'>-[lib/fileutils.rb]</div><div class='del'>-  _unmaintained_</div><div class='del'>-  https://github.com/ruby/fileutils</div><div class='del'>-[lib/forwardable.rb]</div><div class='del'>-  Keiju ISHITSUKA (keiju)</div><div class='del'>-[lib/ipaddr.rb]</div><div class='del'>-  Akinori MUSHA (knu)</div><div class='del'>-[lib/irb.rb, lib/irb/*]</div><div class='del'>-  Keiju ISHITSUKA (keiju)</div><div class='del'>-[lib/logger.rb]</div><div class='del'>-  Naotoshi Seo (sonots)</div><div class='del'>-[lib/matrix.rb]</div><div class='del'>-  Marc-Andre Lafortune (marcandre)</div><div class='del'>-[lib/mutex_m.rb]</div><div class='del'>-  Keiju ISHITSUKA (keiju)</div><div class='del'>-[lib/ostruct.rb]</div><div class='del'>-  Marc-Andre Lafortune (marcandre)</div><div class='del'>-[lib/prime.rb]</div><div class='del'>-  Yuki Sonoda (yugui)</div><div class='del'>-[lib/rdoc.rb, lib/rdoc/*]</div><div class='del'>-  Eric Hodel (drbrain), Hiroshi SHIBATA (hsbt)</div><div class='del'>-  https://github.com/ruby/rdoc</div><div class='del'>-[lib/rexml/*]</div><div class='del'>-  Kouhei Sutou (kou)</div><div class='del'>-[lib/rss.rb, lib/rss/*]</div><div class='del'>-  Kouhei Sutou (kou)</div><div class='del'>-[lib/scanf.rb]</div><div class='del'>-  David A. Black (dblack)</div><div class='del'>-  https://github.com/ruby/scanf</div><div class='del'>-[lib/shell.rb, lib/shell/*]</div><div class='del'>-  Keiju ISHITSUKA (keiju)</div><div class='del'>-[lib/sync.rb]</div><div class='del'>-  Keiju ISHITSUKA (keiju)</div><div class='del'>-[lib/thwait.rb]</div><div class='del'>-  Keiju ISHITSUKA (keiju)</div><div class='del'>-[lib/tracer.rb]</div><div class='del'>-  Keiju ISHITSUKA (keiju)</div><div class='del'>-[lib/webrick.rb, lib/webrick/*]</div><div class='del'>-  Eric Wong (normalperson)</div><div class='del'>-  https://bugs.ruby-lang.org/</div><div class='add'>+  https://github.com/ruby/weakref</div><div class='add'>+  https://rubygems.org/gems/weakref</div><div class='ctx'> </div><div class='ctx'> === Extensions</div><div class='ctx'> </div><div class='ctx'> [ext/bigdecimal]</div><div class='ctx'>   Kenta Murata (mrkn)</div><div class='ctx'>   https://github.com/ruby/bigdecimal</div><div class='add'>+  https://rubygems.org/gems/bigdecimal</div><div class='add'>+[ext/cgi]</div><div class='add'>+  Nobuyoshi Nakada (nobu)</div><div class='add'>+  https://github.com/ruby/cgi</div><div class='add'>+  https://rubygems.org/gems/cgi</div><div class='ctx'> [ext/date]</div><div class='ctx'>   _unmaintained_</div><div class='ctx'>   https://github.com/ruby/date</div><div class='del'>-[ext/dbm]</div><div class='del'>-  _unmaintained_</div><div class='del'>-  https://github.com/ruby/dbm</div><div class='add'>+  https://rubygems.org/gems/date</div><div class='ctx'> [ext/etc]</div><div class='ctx'>   Ruby core team</div><div class='ctx'>   https://github.com/ruby/etc</div><div class='add'>+  https://rubygems.org/gems/etc</div><div class='ctx'> [ext/fcntl]</div><div class='ctx'>   Ruby core team</div><div class='ctx'>   https://github.com/ruby/fcntl</div><div class='add'>+  https://rubygems.org/gems/fcntl</div><div class='ctx'> [ext/fiddle]</div><div class='ctx'>   Aaron Patterson (tenderlove)</div><div class='ctx'>   https://github.com/ruby/fiddle</div><div class='del'>-[ext/gdbm]</div><div class='del'>-  Yukihiro Matsumoto (matz)</div><div class='del'>-  https://github.com/ruby/gdbm</div><div class='add'>+  https://rubygems.org/gems/fiddle</div><div class='ctx'> [ext/io/console]</div><div class='ctx'>   Nobuyuki Nakada (nobu)</div><div class='ctx'>   https://github.com/ruby/io-console</div><div class='add'>+  https://rubygems.org/gems/io-console</div><div class='add'>+[ext/io/nonblock]</div><div class='add'>+  Nobuyuki Nakada (nobu)</div><div class='add'>+  https://github.com/ruby/io-nonblock</div><div class='add'>+  https://rubygems.org/gems/io-nonblock</div><div class='add'>+[ext/io/wait]</div><div class='add'>+  Nobuyuki Nakada (nobu)</div><div class='add'>+  https://github.com/ruby/io-wait</div><div class='add'>+  https://rubygems.org/gems/io-wait</div><div class='ctx'> [ext/json]</div><div class='ctx'>   NARUSE, Yui (naruse), Hiroshi SHIBATA (hsbt)</div><div class='ctx'>   https://github.com/flori/json</div><div class='add'>+  https://rubygems.org/gems/json</div><div class='add'>+[ext/nkf]</div><div class='add'>+  NARUSE, Yui (naruse)</div><div class='add'>+  https://github.com/ruby/nkf</div><div class='add'>+  https://rubygems.org/gems/nkf</div><div class='ctx'> [ext/openssl]</div><div class='ctx'>   Kazuki Yamaguchi (rhe)</div><div class='ctx'>   https://github.com/ruby/openssl</div><div class='add'>+  https://rubygems.org/gems/openssl</div><div class='add'>+[ext/pathname]</div><div class='add'>+  Tanaka Akira (akr)</div><div class='add'>+  https://github.com/ruby/pathname</div><div class='add'>+  https://rubygems.org/gems/pathname</div><div class='ctx'> [ext/psych]</div><div class='del'>-  Aaron Patterson (tenderlove), Hiroshi SHIBATA(hsbt)</div><div class='add'>+  Aaron Patterson (tenderlove), Hiroshi SHIBATA (hsbt)</div><div class='ctx'>   https://github.com/ruby/psych</div><div class='del'>-[ext/sdbm]</div><div class='del'>-  Yukihiro Matsumoto (matz)</div><div class='del'>-  https://github.com/ruby/sdbm</div><div class='add'>+  https://rubygems.org/gems/psych</div><div class='add'>+[ext/racc]</div><div class='add'>+  Aaron Patterson (tenderlove), Hiroshi SHIBATA (hsbt)</div><div class='add'>+  https://github.com/ruby/racc</div><div class='add'>+  https://rubygems.org/gems/racc</div><div class='add'>+[ext/readline]</div><div class='add'>+  TAKAO Kouji (kouji)</div><div class='add'>+  https://github.com/ruby/readline-ext</div><div class='add'>+  https://rubygems.org/gems/readline-ext</div><div class='ctx'> [ext/stringio]</div><div class='ctx'>   Nobuyuki Nakada (nobu)</div><div class='ctx'>   https://github.com/ruby/stringio</div><div class='add'>+  https://rubygems.org/gems/stringio</div><div class='ctx'> [ext/strscan]</div><div class='del'>-  _unmaintained_</div><div class='add'>+  Kouhei Sutou (kou)</div><div class='ctx'>   https://github.com/ruby/strscan</div><div class='add'>+  https://rubygems.org/gems/strscan</div><div class='add'>+[ext/syslog]</div><div class='add'>+  Akinori MUSHA (knu)</div><div class='add'>+  https://github.com/ruby/syslog</div><div class='add'>+  https://rubygems.org/gems/syslog</div><div class='add'>+[ext/win32ole]</div><div class='add'>+  Masaki Suketa (suke)</div><div class='add'>+  https://github.com/ruby/win32ole</div><div class='add'>+  https://rubygems.org/gems/win32ole</div><div class='ctx'> [ext/zlib]</div><div class='ctx'>   NARUSE, Yui (naruse)</div><div class='ctx'>   https://github.com/ruby/zlib</div><div class='add'>+  https://rubygems.org/gems/zlib</div><div class='ctx'> </div><div class='ctx'> == Bundled gems upstream repositories</div><div class='ctx'> </div><div class='del'>-[did_you_mean]</div><div class='del'>-  https://github.com/yuki24/did_you_mean</div><div class='ctx'> [minitest]</div><div class='ctx'>   https://github.com/seattlerb/minitest</div><div class='del'>-[net-telnet]</div><div class='del'>-  https://github.com/ruby/net-telnet</div><div class='ctx'> [power_assert]</div><div class='del'>-  https://github.com/k-tsj/power_assert</div><div class='add'>+  https://github.com/ruby/power_assert</div><div class='ctx'> [rake]</div><div class='ctx'>   https://github.com/ruby/rake</div><div class='ctx'> [test-unit]</div><div class='ctx'>   https://github.com/test-unit/test-unit</div><div class='del'>-[xmlrpc]</div><div class='del'>-  https://github.com/ruby/xmlrpc</div><div class='add'>+[rexml]</div><div class='add'>+  https://github.com/ruby/rexml</div><div class='add'>+[rss]</div><div class='add'>+  https://github.com/ruby/rss</div><div class='add'>+[net-ftp]</div><div class='add'>+  https://github.com/ruby/net-ftp</div><div class='add'>+[net-imap]</div><div class='add'>+  https://github.com/ruby/net-imap</div><div class='add'>+[net-pop]</div><div class='add'>+  https://github.com/ruby/net-pop</div><div class='add'>+[net-smtp]</div><div class='add'>+  https://github.com/ruby/net-smtp</div><div class='add'>+[matrix]</div><div class='add'>+  https://github.com/ruby/matrix</div><div class='add'>+[prime]</div><div class='add'>+  https://github.com/ruby/prime</div><div class='add'>+[rbs]</div><div class='add'>+  https://github.com/ruby/rbs</div><div class='add'>+[typeprof]</div><div class='add'>+  https://github.com/ruby/typeprof</div><div class='add'>+</div><div class='add'>+=== Platform Maintainers</div><div class='add'>+</div><div class='add'>+[mswin64 (Microsoft Windows)]</div><div class='add'>+  NAKAMURA Usaku (usa)</div><div class='add'>+[mingw32 (Minimalist GNU for Windows)]</div><div class='add'>+  Nobuyoshi Nakada (nobu)</div><div class='add'>+[AIX]</div><div class='add'>+  Yutaka Kanemoto (kanemoto)</div><div class='add'>+[FreeBSD]</div><div class='add'>+  Akinori MUSHA (knu)</div><div class='add'>+[Solaris]</div><div class='add'>+  Naohisa Goto (ngoto)</div><div class='add'>+[RHEL, CentOS]</div><div class='add'>+  KOSAKI Motohiro (kosaki)</div><div class='add'>+[macOS]</div><div class='add'>+  Kenta Murata (mrkn)</div><div class='add'>+[OpenBSD]</div><div class='add'>+  Jeremy Evans (jeremyevans0)</div><div class='add'>+[cygwin, ...]</div><div class='add'>+  none. (Maintainer WANTED)</div><div class='add'>+[WebAssembly/WASI]</div><div class='add'>+  Yuta Saito (katei)</div><div class='head'>diff --git a/doc/marshal.rdoc b/doc/marshal.rdoc<br/>index a51f1bf873..abf9467262 100644<br/>--- a/<a href='/ruby.git/tree/doc/marshal.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/marshal.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/marshal.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/marshal.rdoc</a></div><div class='hunk'>@@ -73,7 +73,7 @@ The first byte has the following special values:</div><div class='ctx'>   a positive little-endian integer.</div><div class='ctx'> </div><div class='ctx'> "\xfd"::</div><div class='del'>-  The total size of the integer is two bytes.  The following three bytes are a</div><div class='add'>+  The total size of the integer is four bytes.  The following three bytes are a</div><div class='ctx'>   negative little-endian integer.</div><div class='ctx'> </div><div class='ctx'> "\x04"::</div><div class='hunk'>@@ -83,7 +83,7 @@ The first byte has the following special values:</div><div class='ctx'>   of stream objects full precision may be used.</div><div class='ctx'> </div><div class='ctx'> "\xfc"::</div><div class='del'>-  The total size of the integer is two bytes.  The following four bytes are a</div><div class='add'>+  The total size of the integer is five bytes.  The following four bytes are a</div><div class='ctx'>   negative little-endian integer.  For compatibility with 32 bit ruby,</div><div class='ctx'>   only Fixnums greater than -10737341824 should be represented this way.  For</div><div class='ctx'>   sizes of stream objects full precision may be used.</div><div class='head'>diff --git a/doc/matchdata/begin.rdoc b/doc/matchdata/begin.rdoc<br/>new file mode 100644<br/>index 0000000000..8046dd9d55<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/matchdata/begin.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/matchdata/begin.rdoc</a></div><div class='hunk'>@@ -0,0 +1,30 @@</div><div class='add'>+Returns the offset (in characters) of the beginning of the specified match.</div><div class='add'>+</div><div class='add'>+When non-negative integer argument +n+ is given,</div><div class='add'>+returns the offset of the beginning of the &lt;tt&gt;n&lt;/tt&gt;th match:</div><div class='add'>+</div><div class='add'>+  m = /(.)(.)(\d+)(\d)/.match("THX1138.")</div><div class='add'>+  # =&gt; #&lt;MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8"&gt;</div><div class='add'>+  m[0]       # =&gt; "HX1138"</div><div class='add'>+  m.begin(0) # =&gt; 1</div><div class='add'>+  m[3]       # =&gt; "113"</div><div class='add'>+  m.begin(3) # =&gt; 3</div><div class='add'>+</div><div class='add'>+  m = /(Ñ‚)(Ðµ)(Ñ)/.match('Ñ‚ÐµÑÑ‚')</div><div class='add'>+  # =&gt; #&lt;MatchData "Ñ‚ÐµÑ" 1:"Ñ‚" 2:"Ðµ" 3:"Ñ"&gt;</div><div class='add'>+  m[0]       # =&gt; "Ñ‚ÐµÑ"</div><div class='add'>+  m.begin(0) # =&gt; 0</div><div class='add'>+  m[3]       # =&gt; "Ñ"</div><div class='add'>+  m.begin(3) # =&gt; 2</div><div class='add'>+</div><div class='add'>+When string or symbol argument +name+ is given,</div><div class='add'>+returns the offset of the beginning for the named match:</div><div class='add'>+</div><div class='add'>+  m = /(?&lt;foo&gt;.)(.)(?&lt;bar&gt;.)/.match("hoge")</div><div class='add'>+  # =&gt; #&lt;MatchData "hog" foo:"h" bar:"g"&gt;</div><div class='add'>+  m[:foo]        # =&gt; "h"</div><div class='add'>+  m.begin('foo') # =&gt; 0</div><div class='add'>+  m[:bar]        # =&gt; "g"</div><div class='add'>+  m.begin(:bar)  # =&gt; 2</div><div class='add'>+</div><div class='add'>+Related: MatchData#end, MatchData#offset, MatchData#byteoffset.</div><div class='head'>diff --git a/doc/matchdata/end.rdoc b/doc/matchdata/end.rdoc<br/>new file mode 100644<br/>index 0000000000..0209b2d2fc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/matchdata/end.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/matchdata/end.rdoc</a></div><div class='hunk'>@@ -0,0 +1,30 @@</div><div class='add'>+Returns the offset (in characters) of the end of the specified match.</div><div class='add'>+</div><div class='add'>+When non-negative integer argument +n+ is given,</div><div class='add'>+returns the offset of the end of the &lt;tt&gt;n&lt;/tt&gt;th match:</div><div class='add'>+</div><div class='add'>+  m = /(.)(.)(\d+)(\d)/.match("THX1138.")</div><div class='add'>+  # =&gt; #&lt;MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8"&gt;</div><div class='add'>+  m[0]     # =&gt; "HX1138"</div><div class='add'>+  m.end(0) # =&gt; 7</div><div class='add'>+  m[3]     # =&gt; "113"</div><div class='add'>+  m.end(3) # =&gt; 6</div><div class='add'>+</div><div class='add'>+  m = /(Ñ‚)(Ðµ)(Ñ)/.match('Ñ‚ÐµÑÑ‚')</div><div class='add'>+  # =&gt; #&lt;MatchData "Ñ‚ÐµÑ" 1:"Ñ‚" 2:"Ðµ" 3:"Ñ"&gt;</div><div class='add'>+  m[0]     # =&gt; "Ñ‚ÐµÑ"</div><div class='add'>+  m.end(0) # =&gt; 3</div><div class='add'>+  m[3]     # =&gt; "Ñ"</div><div class='add'>+  m.end(3) # =&gt; 3</div><div class='add'>+</div><div class='add'>+When string or symbol argument +name+ is given,</div><div class='add'>+returns the offset of the end for the named match:</div><div class='add'>+</div><div class='add'>+  m = /(?&lt;foo&gt;.)(.)(?&lt;bar&gt;.)/.match("hoge")</div><div class='add'>+  # =&gt; #&lt;MatchData "hog" foo:"h" bar:"g"&gt;</div><div class='add'>+  m[:foo]      # =&gt; "h"</div><div class='add'>+  m.end('foo') # =&gt; 1</div><div class='add'>+  m[:bar]      # =&gt; "g"</div><div class='add'>+  m.end(:bar)  # =&gt; 3</div><div class='add'>+</div><div class='add'>+Related: MatchData#begin, MatchData#offset, MatchData#byteoffset.</div><div class='head'>diff --git a/doc/matchdata/offset.rdoc b/doc/matchdata/offset.rdoc<br/>new file mode 100644<br/>index 0000000000..0985316d76<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/matchdata/offset.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/matchdata/offset.rdoc</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+Returns a 2-element array containing the beginning and ending</div><div class='add'>+offsets (in characters) of the specified match.</div><div class='add'>+</div><div class='add'>+When non-negative integer argument +n+ is given,</div><div class='add'>+returns the starting and ending offsets of the &lt;tt&gt;n&lt;/tt&gt;th match:</div><div class='add'>+</div><div class='add'>+  m = /(.)(.)(\d+)(\d)/.match("THX1138.")</div><div class='add'>+  # =&gt; #&lt;MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8"&gt;</div><div class='add'>+  m[0]        # =&gt; "HX1138"</div><div class='add'>+  m.offset(0) # =&gt; [1, 7]</div><div class='add'>+  m[3]        # =&gt; "113"</div><div class='add'>+  m.offset(3) # =&gt; [3, 6]</div><div class='add'>+</div><div class='add'>+  m = /(Ñ‚)(Ðµ)(Ñ)/.match('Ñ‚ÐµÑÑ‚')</div><div class='add'>+  # =&gt; #&lt;MatchData "Ñ‚ÐµÑ" 1:"Ñ‚" 2:"Ðµ" 3:"Ñ"&gt;</div><div class='add'>+  m[0]        # =&gt; "Ñ‚ÐµÑ"</div><div class='add'>+  m.offset(0) # =&gt; [0, 3]</div><div class='add'>+  m[3]        # =&gt; "Ñ"</div><div class='add'>+  m.offset(3) # =&gt; [2, 3]</div><div class='add'>+</div><div class='add'>+When string or symbol argument +name+ is given,</div><div class='add'>+returns the starting and ending offsets for the named match:</div><div class='add'>+</div><div class='add'>+  m = /(?&lt;foo&gt;.)(.)(?&lt;bar&gt;.)/.match("hoge")</div><div class='add'>+  # =&gt; #&lt;MatchData "hog" foo:"h" bar:"g"&gt;</div><div class='add'>+  m[:foo]         # =&gt; "h"</div><div class='add'>+  m.offset('foo') # =&gt; [0, 1]</div><div class='add'>+  m[:bar]         # =&gt; "g"</div><div class='add'>+  m.offset(:bar)  # =&gt; [2, 3]</div><div class='add'>+</div><div class='add'>+Related: MatchData#byteoffset, MatchData#begin, MatchData#end.</div><div class='head'>diff --git a/doc/math/math.rdoc b/doc/math/math.rdoc<br/>new file mode 100644<br/>index 0000000000..7a89df951c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/math/math.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/math/math.rdoc</a></div><div class='hunk'>@@ -0,0 +1,117 @@</div><div class='add'>+\Module \Math provides methods for basic trigonometric,</div><div class='add'>+logarithmic, and transcendental functions, and for extracting roots.</div><div class='add'>+</div><div class='add'>+You can write its constants and method calls thus:</div><div class='add'>+</div><div class='add'>+  Math::PI      # =&gt; 3.141592653589793</div><div class='add'>+  Math::E       # =&gt; 2.718281828459045</div><div class='add'>+  Math.sin(0.0) # =&gt; 0.0</div><div class='add'>+  Math.cos(0.0) # =&gt; 1.0</div><div class='add'>+</div><div class='add'>+If you include module \Math, you can write simpler forms:</div><div class='add'>+</div><div class='add'>+  include Math</div><div class='add'>+  PI       # =&gt; 3.141592653589793</div><div class='add'>+  E        # =&gt; 2.718281828459045</div><div class='add'>+  sin(0.0) # =&gt; 0.0</div><div class='add'>+  cos(0.0) # =&gt; 1.0</div><div class='add'>+</div><div class='add'>+For simplicity, the examples here assume:</div><div class='add'>+</div><div class='add'>+  include Math</div><div class='add'>+  INFINITY = Float::INFINITY</div><div class='add'>+</div><div class='add'>+The domains and ranges for the methods</div><div class='add'>+are denoted by open or closed intervals,</div><div class='add'>+using, respectively, parentheses or square brackets:</div><div class='add'>+</div><div class='add'>+- An open interval does not include the endpoints:</div><div class='add'>+</div><div class='add'>+    (-INFINITY, INFINITY)</div><div class='add'>+</div><div class='add'>+- A closed interval includes the endpoints:</div><div class='add'>+</div><div class='add'>+    [-1.0, 1.0]</div><div class='add'>+</div><div class='add'>+- A half-open interval includes one endpoint, but not the other:</div><div class='add'>+</div><div class='add'>+   [1.0, INFINITY)</div><div class='add'>+</div><div class='add'>+Many values returned by \Math methods are numerical approximations.</div><div class='add'>+This is because many such values are, in mathematics,</div><div class='add'>+of infinite precision, while in numerical computation</div><div class='add'>+the precision is finite.</div><div class='add'>+</div><div class='add'>+Thus, in mathematics, &lt;i&gt;cos(Ï€/2)&lt;/i&gt; is exactly zero,</div><div class='add'>+but in our computation &lt;tt&gt;cos(PI/2)&lt;/tt&gt; is a number very close to zero:</div><div class='add'>+</div><div class='add'>+  cos(PI/2) # =&gt; 6.123031769111886e-17</div><div class='add'>+</div><div class='add'>+For very large and very small returned values,</div><div class='add'>+we have added formatted numbers for clarity:</div><div class='add'>+</div><div class='add'>+  tan(PI/2)  # =&gt; 1.633123935319537e+16   # 16331239353195370.0</div><div class='add'>+  tan(PI)    # =&gt; -1.2246467991473532e-16 # -0.0000000000000001</div><div class='add'>+</div><div class='add'>+See class Float for the constants</div><div class='add'>+that affect Ruby's floating-point arithmetic.</div><div class='add'>+</div><div class='add'>+=== What's Here</div><div class='add'>+</div><div class='add'>+==== Trigonometric Functions</div><div class='add'>+</div><div class='add'>+- ::cos: Returns the cosine of the given argument.</div><div class='add'>+- ::sin: Returns the sine of the given argument.</div><div class='add'>+- ::tan: Returns the tangent of the given argument.</div><div class='add'>+</div><div class='add'>+==== Inverse Trigonometric Functions</div><div class='add'>+</div><div class='add'>+- ::acos: Returns the arc cosine of the given argument.</div><div class='add'>+- ::asin: Returns the arc sine of the given argument.</div><div class='add'>+- ::atan: Returns the arc tangent of the given argument.</div><div class='add'>+- ::atan2: Returns the arg tangent of two given arguments.</div><div class='add'>+</div><div class='add'>+==== Hyperbolic Trigonometric Functions</div><div class='add'>+</div><div class='add'>+- ::cosh: Returns the hyperbolic cosine of the given argument.</div><div class='add'>+- ::sinh: Returns the hyperbolic sine of the given argument.</div><div class='add'>+- ::tanh: Returns the hyperbolic tangent of the given argument.</div><div class='add'>+</div><div class='add'>+==== Inverse Hyperbolic Trigonometric Functions</div><div class='add'>+</div><div class='add'>+- ::acosh: Returns the inverse hyperbolic cosine of the given argument.</div><div class='add'>+- ::asinh: Returns the inverse hyperbolic sine of the given argument.</div><div class='add'>+- ::atanh: Returns the inverse hyperbolic tangent of the given argument.</div><div class='add'>+</div><div class='add'>+==== Exponentiation and Logarithmic Functions</div><div class='add'>+</div><div class='add'>+- ::exp: Returns the value of a given value raised to a given power.</div><div class='add'>+- ::log: Returns the logarithm of a given value in a given base.</div><div class='add'>+- ::log10: Returns the base 10 logarithm of the given argument.</div><div class='add'>+- ::log2: Returns the base 2 logarithm of the given argument.</div><div class='add'>+</div><div class='add'>+==== Fraction and Exponent Functions</div><div class='add'>+</div><div class='add'>+- ::frexp: Returns the fraction and exponent of the given argument.</div><div class='add'>+- ::ldexp: Returns the value for a given fraction and exponent.</div><div class='add'>+</div><div class='add'>+==== Root Functions</div><div class='add'>+</div><div class='add'>+- ::cbrt: Returns the cube root of the given argument.</div><div class='add'>+- ::sqrt: Returns the square root of the given argument.</div><div class='add'>+</div><div class='add'>+==== Error Functions</div><div class='add'>+</div><div class='add'>+- ::erf: Returns the value of the Gauss error function for the given argument.</div><div class='add'>+- ::erfc: Returns the value of the complementary error function</div><div class='add'>+  for the given argument.</div><div class='add'>+</div><div class='add'>+==== Gamma Functions</div><div class='add'>+</div><div class='add'>+- ::gamma: Returns the value of the gamma function for the given argument.</div><div class='add'>+- ::lgamma: Returns the value of the logarithmic gamma function</div><div class='add'>+  for the given argument.</div><div class='add'>+</div><div class='add'>+==== Hypotenuse Function</div><div class='add'>+</div><div class='add'>+- ::hypot: Returns &lt;tt&gt;sqrt(a**2 + b**2)&lt;/tt&gt; for the given +a+ and +b+.</div><div class='head'>diff --git a/doc/memory_view.md b/doc/memory_view.md<br/>new file mode 100644<br/>index 0000000000..0b1369163d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/memory_view.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/memory_view.md</a></div><div class='hunk'>@@ -0,0 +1,167 @@</div><div class='add'>+# MemoryView</div><div class='add'>+</div><div class='add'>+MemoryView provides the features to share multidimensional homogeneous arrays of</div><div class='add'>+fixed-size element on memory among extension libraries.</div><div class='add'>+</div><div class='add'>+## Disclaimer</div><div class='add'>+</div><div class='add'>+* This feature is still experimental.  The specification described here can be changed in the future.</div><div class='add'>+</div><div class='add'>+* This document is under construction.  Please refer the master branch of ruby for the latest version of this document.</div><div class='add'>+</div><div class='add'>+## Overview</div><div class='add'>+</div><div class='add'>+We sometimes deal with certain kinds of objects that have arrays of the same typed fixed-size elements on a contiguous memory area as its internal representation.</div><div class='add'>+Numo::NArray in numo-narray and Magick::Image in rmagick are typical examples of such objects.</div><div class='add'>+MemoryView plays the role of the hub to share the internal data of such objects without copy among such libraries.</div><div class='add'>+</div><div class='add'>+Copy-less sharing of data is very important in some field such as data analysis, machine learning, and image processing.  In these field, people need to handle large amount of on-memory data with several libraries.  If we are forced to copy to exchange large data among libraries, a large amount of the data processing time must be occupied by copying data.  You can avoid such wasting time by using MemoryView.</div><div class='add'>+</div><div class='add'>+MemoryView has two categories of APIs:</div><div class='add'>+</div><div class='add'>+1. Producer API</div><div class='add'>+</div><div class='add'>+    Classes can register own MemoryView entry which allows objects of that classes to expose their MemoryView</div><div class='add'>+</div><div class='add'>+2. Consumer API</div><div class='add'>+</div><div class='add'>+    Consumer API allows us to obtain and manage the MemoryView of an object</div><div class='add'>+</div><div class='add'>+## MemoryView structure</div><div class='add'>+</div><div class='add'>+A MemoryView structure, `rb_memory_view_t`, is used for exporting objects' MemoryView.</div><div class='add'>+This structure contains the reference of the object, which is the owner of the MemoryView, the pointer to the head of exported memory, and the metadata that describes the structure of the memory.  The metadata can describe multidimensional arrays with strides.</div><div class='add'>+</div><div class='add'>+### The member of MemoryView structure</div><div class='add'>+</div><div class='add'>+The MemoryView structure consists of the following members.</div><div class='add'>+</div><div class='add'>+- `VALUE obj`</div><div class='add'>+</div><div class='add'>+    The reference to the original object that has the memory exported via the MemoryView.</div><div class='add'>+</div><div class='add'>+    RubyVM manages the reference count of the MemoryView-exported objects to guard them from the garbage collection.  The consumers do not have to struggle to guard this object from GC.</div><div class='add'>+</div><div class='add'>+- `void *data`</div><div class='add'>+</div><div class='add'>+    The pointer to the head of the exported memory.</div><div class='add'>+</div><div class='add'>+- `ssize_t byte_size`</div><div class='add'>+</div><div class='add'>+    The number of bytes in the memory pointed by `data`.</div><div class='add'>+</div><div class='add'>+- `bool readonly`</div><div class='add'>+</div><div class='add'>+    `true` for readonly memory, `false` for writable memory.</div><div class='add'>+</div><div class='add'>+- `const char *format`</div><div class='add'>+</div><div class='add'>+    A string to describe the format of an element, or NULL for unsigned byte.</div><div class='add'>+</div><div class='add'>+- `ssize_t item_size`</div><div class='add'>+</div><div class='add'>+    The number of bytes in each element.</div><div class='add'>+</div><div class='add'>+- `const rb_memory_view_item_component_t *item_desc.components`</div><div class='add'>+</div><div class='add'>+    The array of the metadata of the component in an element.</div><div class='add'>+</div><div class='add'>+- `size_t item_desc.length`</div><div class='add'>+</div><div class='add'>+    The number of items in `item_desc.components`.</div><div class='add'>+</div><div class='add'>+- `ssize_t ndim`</div><div class='add'>+</div><div class='add'>+    The number of dimensions.</div><div class='add'>+</div><div class='add'>+- `const ssize_t *shape`</div><div class='add'>+</div><div class='add'>+    A `ndim` size array indicating the number of elements in each dimension.</div><div class='add'>+    This can be `NULL` when `ndim` is 1.</div><div class='add'>+</div><div class='add'>+- `const ssize_t *strides`</div><div class='add'>+</div><div class='add'>+    A `ndim` size array indicating the number of bytes to skip to go to the next element in each dimension.</div><div class='add'>+    This can be `NULL` when `ndim` is 1.</div><div class='add'>+</div><div class='add'>+- `const ssize_t *sub_offsets`</div><div class='add'>+</div><div class='add'>+    A `ndim` size array consisting of the offsets in each dimension when the MemoryView exposes a nested array.</div><div class='add'>+    This can be `NULL` when the MemoryView exposes a flat array.</div><div class='add'>+</div><div class='add'>+- `void *private_data`</div><div class='add'>+</div><div class='add'>+    The private data that MemoryView provider uses internally.</div><div class='add'>+    This can be `NULL` when any private data is unnecessary.</div><div class='add'>+</div><div class='add'>+## MemoryView APIs</div><div class='add'>+</div><div class='add'>+### For consumers</div><div class='add'>+</div><div class='add'>+- `bool rb_memory_view_available_p(VALUE obj)`</div><div class='add'>+</div><div class='add'>+    Return `true` if `obj` supports to export a MemoryView.  Return `false` otherwise.</div><div class='add'>+</div><div class='add'>+    If this function returns `true`, it doesn't mean the function `rb_memory_view_get` will succeed.</div><div class='add'>+</div><div class='add'>+- `bool rb_memory_view_get(VALUE obj, rb_memory_view_t *view, int flags)`</div><div class='add'>+</div><div class='add'>+    If the given `obj` supports to export a MemoryView that conforms the given `flags`, this function fills `view` by the information of the MemoryView and returns `true`.  In this case, the reference count of `obj` is increased.</div><div class='add'>+</div><div class='add'>+    If the given combination of `obj` and `flags` cannot export a MemoryView, this function returns `false`. The content of `view` is not touched in this case.</div><div class='add'>+</div><div class='add'>+    The exported MemoryView must be released by `rb_memory_view_release` when the MemoryView is no longer needed.</div><div class='add'>+</div><div class='add'>+- `bool rb_memory_view_release(rb_memory_view_t *view)`</div><div class='add'>+</div><div class='add'>+    Release the given MemoryView `view` and decrement the reference count of `view-&gt;obj`.</div><div class='add'>+</div><div class='add'>+    Consumers must call this function when the MemoryView is no longer needed.  Missing to call this function leads memory leak.</div><div class='add'>+</div><div class='add'>+- `ssize_t rb_memory_view_item_size_from_format(const char *format, const char **err)`</div><div class='add'>+</div><div class='add'>+    Calculate the number of bytes occupied by an element.</div><div class='add'>+</div><div class='add'>+    When the calculation fails, the failed location in `format` is stored into `err`, and returns `-1`.</div><div class='add'>+</div><div class='add'>+- `void *rb_memory_view_get_item_pointer(rb_memory_view_t *view, const ssize_t *indices)`</div><div class='add'>+</div><div class='add'>+    Calculate the location of the item indicated by the given `indices`.</div><div class='add'>+    The length of `indices` must equal to `view-&gt;ndim`.</div><div class='add'>+    This function initializes `view-&gt;item_desc` if needed.</div><div class='add'>+</div><div class='add'>+- `VALUE rb_memory_view_get_item(rb_memory_view_t *view, const ssize_t *indices)`</div><div class='add'>+</div><div class='add'>+    Return the Ruby object representation of the item indicated by the given `indices`.</div><div class='add'>+    The length of `indices` must equal to `view-&gt;ndim`.</div><div class='add'>+    This function uses `rb_memory_view_get_item_pointer`.</div><div class='add'>+</div><div class='add'>+- `rb_memory_view_init_as_byte_array(rb_memory_view_t *view, VALUE obj, void *data, const ssize_t len, const bool readonly)`</div><div class='add'>+</div><div class='add'>+  Fill the members of `view` as an 1-dimensional byte array.</div><div class='add'>+</div><div class='add'>+- `void rb_memory_view_fill_contiguous_strides(const ssize_t ndim, const ssize_t item_size, const ssize_t *const shape, const bool row_major_p, ssize_t *const strides)`</div><div class='add'>+</div><div class='add'>+  Fill the `strides` array with byte-Strides of a contiguous array of the given shape with the given element size.</div><div class='add'>+</div><div class='add'>+- `void rb_memory_view_prepare_item_desc(rb_memory_view_t *view)`</div><div class='add'>+</div><div class='add'>+  Fill the `item_desc` member of `view`.</div><div class='add'>+</div><div class='add'>+- `bool rb_memory_view_is_contiguous(const rb_memory_view_t *view)`</div><div class='add'>+</div><div class='add'>+  Return `true` if the data in the MemoryView `view` is row-major or column-major contiguous.</div><div class='add'>+</div><div class='add'>+  Return `false` otherwise.</div><div class='add'>+</div><div class='add'>+- `bool rb_memory_view_is_row_major_contiguous(const rb_memory_view_t *view)`</div><div class='add'>+</div><div class='add'>+  Return `true` if the data in the MemoryView `view` is row-major contiguous.</div><div class='add'>+</div><div class='add'>+  Return `false` otherwise.</div><div class='add'>+</div><div class='add'>+- `bool rb_memory_view_is_column_major_contiguous(const rb_memory_view_t *view)`</div><div class='add'>+</div><div class='add'>+  Return `true` if the data in the MemoryView `view` is column-major contiguous.</div><div class='add'>+</div><div class='add'>+  Return `false` otherwise.</div><div class='head'>diff --git a/doc/mjit/mjit.md b/doc/mjit/mjit.md<br/>new file mode 100644<br/>index 0000000000..6f19ab3ea7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/mjit/mjit.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/mjit/mjit.md</a></div><div class='hunk'>@@ -0,0 +1,39 @@</div><div class='add'>+# MJIT</div><div class='add'>+</div><div class='add'>+This document has some tips that might be useful when you work on MJIT.</div><div class='add'>+</div><div class='add'>+## Supported platforms</div><div class='add'>+</div><div class='add'>+The following platforms are either tested on CI or assumed to work.</div><div class='add'>+</div><div class='add'>+* OS: Linux, macOS</div><div class='add'>+* Arch: x86\_64, aarch64, arm64, i686, i386</div><div class='add'>+</div><div class='add'>+### Not supported</div><div class='add'>+</div><div class='add'>+The MJIT support for the following platforms is no longer maintained.</div><div class='add'>+</div><div class='add'>+* OS: Windows (mswin, MinGW), Solaris</div><div class='add'>+* Arch: SPARC, s390x</div><div class='add'>+</div><div class='add'>+## Developing MJIT</div><div class='add'>+</div><div class='add'>+### Bindgen</div><div class='add'>+</div><div class='add'>+If you see an "MJIT bindgen" GitHub Actions failure, please commit the `git diff` shown on the failed job.</div><div class='add'>+</div><div class='add'>+For doing the same thing locally, run `make mjit-bindgen` after installing libclang.</div><div class='add'>+macOS seems to have libclang by default. On Ubuntu, you can install it with `apt install libclang1`.</div><div class='add'>+</div><div class='add'>+### Always run make install</div><div class='add'>+</div><div class='add'>+Always run `make install` before running MJIT. It could easily cause a SEGV if you don't.</div><div class='add'>+MJIT looks for the installed header for security reasons.</div><div class='add'>+</div><div class='add'>+### --mjit-debug vs --mjit-debug=-ggdb3</div><div class='add'>+</div><div class='add'>+`--mjit-debug=[flags]` allows you to specify arbitrary flags while keeping other compiler flags like `-O3`,</div><div class='add'>+which is useful for profiling benchmarks.</div><div class='add'>+</div><div class='add'>+`--mjit-debug` alone, on the other hand, disables `-O3` and adds debug flags.</div><div class='add'>+If you're debugging MJIT, what you need to use is not `--mjit-debug=-ggdb3` but `--mjit-debug`.</div><div class='head'>diff --git a/doc/net-http/examples.rdoc b/doc/net-http/examples.rdoc<br/>new file mode 100644<br/>index 0000000000..c1366e7ad1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/net-http/examples.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/net-http/examples.rdoc</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+Examples here assume that &lt;tt&gt;net/http&lt;/tt&gt; has been required</div><div class='add'>+(which also requires +uri+):</div><div class='add'>+</div><div class='add'>+  require 'net/http'</div><div class='add'>+</div><div class='add'>+Many code examples here use these example websites:</div><div class='add'>+</div><div class='add'>+- https://jsonplaceholder.typicode.com.</div><div class='add'>+- http://example.com.</div><div class='add'>+</div><div class='add'>+Some examples also assume these variables:</div><div class='add'>+</div><div class='add'>+  uri = URI('https://jsonplaceholder.typicode.com/')</div><div class='add'>+  uri.freeze # Examples may not modify.</div><div class='add'>+  hostname = uri.hostname # =&gt; "jsonplaceholder.typicode.com"</div><div class='add'>+  path = uri.path         # =&gt; "/"</div><div class='add'>+  port = uri.port         # =&gt; 443</div><div class='add'>+</div><div class='add'>+So that example requests may be written as:</div><div class='add'>+</div><div class='add'>+  Net::HTTP.get(uri)</div><div class='add'>+  Net::HTTP.get(hostname, '/index.html')</div><div class='add'>+  Net::HTTP.start(hostname) do |http|</div><div class='add'>+    http.get('/todos/1')</div><div class='add'>+    http.get('/todos/2')</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+An example that needs a modified URI first duplicates +uri+, then modifies the duplicate:</div><div class='add'>+</div><div class='add'>+  _uri = uri.dup</div><div class='add'>+  _uri.path = '/todos/1'</div><div class='head'>diff --git a/doc/net-http/included_getters.rdoc b/doc/net-http/included_getters.rdoc<br/>new file mode 100644<br/>index 0000000000..7ac327f4b4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/net-http/included_getters.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/net-http/included_getters.rdoc</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+This class also includes (indirectly) module Net::HTTPHeader,</div><div class='add'>+which gives access to its</div><div class='add'>+{methods for getting headers}[rdoc-ref:Net::HTTPHeader@Getters].</div><div class='head'>diff --git a/doc/optparse/.document b/doc/optparse/.document<br/>new file mode 100644<br/>index 0000000000..96dfc7779f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/.document?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/.document</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+*.rdoc</div><div class='head'>diff --git a/doc/optparse/argument_converters.rdoc b/doc/optparse/argument_converters.rdoc<br/>new file mode 100644<br/>index 0000000000..ac659da8c5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/argument_converters.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/argument_converters.rdoc</a></div><div class='hunk'>@@ -0,0 +1,380 @@</div><div class='add'>+== Argument Converters</div><div class='add'>+</div><div class='add'>+An option can specify that its argument is to be converted</div><div class='add'>+from the default \String to an instance of another class.</div><div class='add'>+</div><div class='add'>+=== Contents</div><div class='add'>+</div><div class='add'>+- {Built-In Argument Converters}[#label-Built-In+Argument+Converters]</div><div class='add'>+  - {Date}[#label-Date]</div><div class='add'>+  - {DateTime}[#label-DateTime]</div><div class='add'>+  - {Time}[#label-Time]</div><div class='add'>+  - {URI}[#label-URI]</div><div class='add'>+  - {Shellwords}[#label-Shellwords]</div><div class='add'>+  - {Integer}[#label-Integer]</div><div class='add'>+  - {Float}[#label-Float]</div><div class='add'>+  - {Numeric}[#label-Numeric]</div><div class='add'>+  - {DecimalInteger}[#label-DecimalInteger]</div><div class='add'>+  - {OctalInteger}[#label-OctalInteger]</div><div class='add'>+  - {DecimalNumeric}[#label-DecimalNumeric]</div><div class='add'>+  - {TrueClass}[#label-TrueClass]</div><div class='add'>+  - {FalseClass}[#label-FalseClass]</div><div class='add'>+  - {Object}[#label-Object]</div><div class='add'>+  - {String}[#label-String]</div><div class='add'>+  - {Array}[#label-Array]</div><div class='add'>+  - {Regexp}[#label-Regexp]</div><div class='add'>+- {Custom Argument Converters}[#label-Custom+Argument+Converters]</div><div class='add'>+</div><div class='add'>+=== Built-In Argument Converters</div><div class='add'>+</div><div class='add'>+\OptionParser has a number of built-in argument converters,</div><div class='add'>+which are demonstrated below.</div><div class='add'>+</div><div class='add'>+==== \Date</div><div class='add'>+</div><div class='add'>+File +date.rb+</div><div class='add'>+defines an option whose argument is to be converted to a \Date object.</div><div class='add'>+The argument is converted by method Date#parse.</div><div class='add'>+</div><div class='add'>+  :include: ruby/date.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby date.rb --date 2001-02-03</div><div class='add'>+  [#&lt;Date: 2001-02-03 ((2451944j,0s,0n),+0s,2299161j)&gt;, Date]</div><div class='add'>+  $ ruby date.rb --date 20010203</div><div class='add'>+  [#&lt;Date: 2001-02-03 ((2451944j,0s,0n),+0s,2299161j)&gt;, Date]</div><div class='add'>+  $ ruby date.rb --date "3rd Feb 2001"</div><div class='add'>+  [#&lt;Date: 2001-02-03 ((2451944j,0s,0n),+0s,2299161j)&gt;, Date]</div><div class='add'>+</div><div class='add'>+==== \DateTime</div><div class='add'>+</div><div class='add'>+File +datetime.rb+</div><div class='add'>+defines an option whose argument is to be converted to a \DateTime object.</div><div class='add'>+The argument is converted by method DateTime#parse.</div><div class='add'>+</div><div class='add'>+  :include: ruby/datetime.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby datetime.rb --datetime 2001-02-03T04:05:06+07:00</div><div class='add'>+  [#&lt;DateTime: 2001-02-03T04:05:06+07:00 ((2451943j,75906s,0n),+25200s,2299161j)&gt;, DateTime]</div><div class='add'>+  $ ruby datetime.rb --datetime 20010203T040506+0700</div><div class='add'>+  [#&lt;DateTime: 2001-02-03T04:05:06+07:00 ((2451943j,75906s,0n),+25200s,2299161j)&gt;, DateTime]</div><div class='add'>+  $ ruby datetime.rb --datetime "3rd Feb 2001 04:05:06 PM"</div><div class='add'>+  [#&lt;DateTime: 2001-02-03T16:05:06+00:00 ((2451944j,57906s,0n),+0s,2299161j)&gt;, DateTime]</div><div class='add'>+</div><div class='add'>+==== \Time</div><div class='add'>+</div><div class='add'>+File +time.rb+</div><div class='add'>+defines an option whose argument is to be converted to a \Time object.</div><div class='add'>+The argument is converted by method Time#httpdate or Time#parse.</div><div class='add'>+</div><div class='add'>+  :include: ruby/time.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby time.rb --time "Thu, 06 Oct 2011 02:26:12 GMT"</div><div class='add'>+  [2011-10-06 02:26:12 UTC, Time]</div><div class='add'>+  $ ruby time.rb --time 2010-10-31</div><div class='add'>+  [2010-10-31 00:00:00 -0500, Time]</div><div class='add'>+</div><div class='add'>+==== \URI</div><div class='add'>+</div><div class='add'>+File +uri.rb+</div><div class='add'>+defines an option whose argument is to be converted to a \URI object.</div><div class='add'>+The argument is converted by method URI#parse.</div><div class='add'>+</div><div class='add'>+  :include: ruby/uri.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby uri.rb --uri https://github.com</div><div class='add'>+  [#&lt;URI::HTTPS https://github.com&gt;, URI::HTTPS]</div><div class='add'>+  $ ruby uri.rb --uri http://github.com</div><div class='add'>+  [#&lt;URI::HTTP http://github.com&gt;, URI::HTTP]</div><div class='add'>+  $ ruby uri.rb --uri file://~/var</div><div class='add'>+  [#&lt;URI::File file://~/var&gt;, URI::File]</div><div class='add'>+</div><div class='add'>+==== \Shellwords</div><div class='add'>+</div><div class='add'>+File +shellwords.rb+</div><div class='add'>+defines an option whose argument is to be converted to an \Array object by method</div><div class='add'>+Shellwords#shellwords.</div><div class='add'>+</div><div class='add'>+  :include: ruby/shellwords.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby shellwords.rb --shellwords "ruby my_prog.rb | less"</div><div class='add'>+  [["ruby", "my_prog.rb", "|", "less"], Array]</div><div class='add'>+  $ ruby shellwords.rb --shellwords "here are 'two words'"</div><div class='add'>+  [["here", "are", "two words"], Array]</div><div class='add'>+</div><div class='add'>+==== \Integer</div><div class='add'>+</div><div class='add'>+File +integer.rb+</div><div class='add'>+defines an option whose argument is to be converted to an \Integer object.</div><div class='add'>+The argument is converted by method Kernel#Integer.</div><div class='add'>+</div><div class='add'>+  :include: ruby/integer.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby integer.rb --integer 100</div><div class='add'>+  [100, Integer]</div><div class='add'>+  $ ruby integer.rb --integer -100</div><div class='add'>+  [-100, Integer]</div><div class='add'>+  $ ruby integer.rb --integer 0100</div><div class='add'>+  [64, Integer]</div><div class='add'>+  $ ruby integer.rb --integer 0x100</div><div class='add'>+  [256, Integer]</div><div class='add'>+  $ ruby integer.rb --integer 0b100</div><div class='add'>+  [4, Integer]</div><div class='add'>+</div><div class='add'>+==== \Float</div><div class='add'>+</div><div class='add'>+File +float.rb+</div><div class='add'>+defines an option whose argument is to be converted to a \Float object.</div><div class='add'>+The argument is converted by method Kernel#Float.</div><div class='add'>+</div><div class='add'>+  :include: ruby/float.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby float.rb --float 1</div><div class='add'>+  [1.0, Float]</div><div class='add'>+  $ ruby float.rb --float 3.14159</div><div class='add'>+  [3.14159, Float]</div><div class='add'>+  $ ruby float.rb --float 1.234E2</div><div class='add'>+  [123.4, Float]</div><div class='add'>+  $ ruby float.rb --float 1.234E-2</div><div class='add'>+  [0.01234, Float]</div><div class='add'>+</div><div class='add'>+==== \Numeric</div><div class='add'>+</div><div class='add'>+File +numeric.rb+</div><div class='add'>+defines an option whose argument is to be converted to an instance</div><div class='add'>+of \Rational, \Float, or \Integer.</div><div class='add'>+The argument is converted by method Kernel#Rational,</div><div class='add'>+Kernel#Float, or Kernel#Integer.</div><div class='add'>+</div><div class='add'>+  :include: ruby/numeric.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby numeric.rb --numeric 1/3</div><div class='add'>+  [(1/3), Rational]</div><div class='add'>+  $ ruby numeric.rb --numeric 3.333E-1</div><div class='add'>+  [0.3333, Float]</div><div class='add'>+  $ ruby numeric.rb --numeric 3</div><div class='add'>+  [3, Integer]</div><div class='add'>+</div><div class='add'>+==== \DecimalInteger</div><div class='add'>+</div><div class='add'>+File +decimal_integer.rb+</div><div class='add'>+defines an option whose argument is to be converted to an \Integer object.</div><div class='add'>+The argument is converted by method Kernel#Integer.</div><div class='add'>+</div><div class='add'>+  :include: ruby/decimal_integer.rb</div><div class='add'>+</div><div class='add'>+The argument may not be in a binary or hexadecimal format;</div><div class='add'>+a leading zero is ignored (not parsed as octal).</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby decimal_integer.rb --decimal_integer 100</div><div class='add'>+  [100, Integer]</div><div class='add'>+  $ ruby decimal_integer.rb --decimal_integer -100</div><div class='add'>+  [-100, Integer]</div><div class='add'>+  $ ruby decimal_integer.rb --decimal_integer 0100</div><div class='add'>+  [100, Integer]</div><div class='add'>+  $ ruby decimal_integer.rb --decimal_integer -0100</div><div class='add'>+  [-100, Integer]</div><div class='add'>+</div><div class='add'>+==== \OctalInteger</div><div class='add'>+</div><div class='add'>+File +octal_integer.rb+</div><div class='add'>+defines an option whose argument is to be converted to an \Integer object.</div><div class='add'>+The argument is converted by method Kernel#Integer.</div><div class='add'>+</div><div class='add'>+  :include: ruby/octal_integer.rb</div><div class='add'>+</div><div class='add'>+The argument may not be in a binary or hexadecimal format;</div><div class='add'>+it is parsed as octal, regardless of whether it has a leading zero.</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby octal_integer.rb --octal_integer 100</div><div class='add'>+  [64, Integer]</div><div class='add'>+  $ ruby octal_integer.rb --octal_integer -100</div><div class='add'>+  [-64, Integer]</div><div class='add'>+  $ ruby octal_integer.rb --octal_integer 0100</div><div class='add'>+  [64, Integer]</div><div class='add'>+</div><div class='add'>+==== \DecimalNumeric</div><div class='add'>+</div><div class='add'>+File +decimal_numeric.rb+</div><div class='add'>+defines an option whose argument is to be converted to an \Integer object.</div><div class='add'>+The argument is converted by method Kernel#Integer</div><div class='add'>+</div><div class='add'>+  :include: ruby/decimal_numeric.rb</div><div class='add'>+</div><div class='add'>+The argument may not be in a binary or hexadecimal format;</div><div class='add'>+a leading zero causes the argument to be parsed as octal.</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby decimal_numeric.rb --decimal_numeric 100</div><div class='add'>+  [100, Integer]</div><div class='add'>+  $ ruby decimal_numeric.rb --decimal_numeric -100</div><div class='add'>+  [-100, Integer]</div><div class='add'>+  $ ruby decimal_numeric.rb --decimal_numeric 0100</div><div class='add'>+  [64, Integer]</div><div class='add'>+</div><div class='add'>+==== \TrueClass</div><div class='add'>+</div><div class='add'>+File +true_class.rb+</div><div class='add'>+defines an option whose argument is to be converted to +true+ or +false+.</div><div class='add'>+The argument is evaluated by method Object#nil?.</div><div class='add'>+</div><div class='add'>+  :include: ruby/true_class.rb</div><div class='add'>+</div><div class='add'>+The argument may be any of those shown in the examples below.</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby true_class.rb --true_class true</div><div class='add'>+  [true, TrueClass]</div><div class='add'>+  $ ruby true_class.rb --true_class yes</div><div class='add'>+  [true, TrueClass]</div><div class='add'>+  $ ruby true_class.rb --true_class +</div><div class='add'>+  [true, TrueClass]</div><div class='add'>+  $ ruby true_class.rb --true_class false</div><div class='add'>+  [false, FalseClass]</div><div class='add'>+  $ ruby true_class.rb --true_class no</div><div class='add'>+  [false, FalseClass]</div><div class='add'>+  $ ruby true_class.rb --true_class -</div><div class='add'>+  [false, FalseClass]</div><div class='add'>+  $ ruby true_class.rb --true_class nil</div><div class='add'>+  [false, FalseClass]</div><div class='add'>+</div><div class='add'>+==== \FalseClass</div><div class='add'>+</div><div class='add'>+File +false_class.rb+</div><div class='add'>+defines an option whose argument is to be converted to +true+ or +false+.</div><div class='add'>+The argument is evaluated by method Object#nil?.</div><div class='add'>+</div><div class='add'>+  :include: ruby/false_class.rb</div><div class='add'>+</div><div class='add'>+The argument may be any of those shown in the examples below.</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby false_class.rb --false_class false</div><div class='add'>+  [false, FalseClass]</div><div class='add'>+  $ ruby false_class.rb --false_class no</div><div class='add'>+  [false, FalseClass]</div><div class='add'>+  $ ruby false_class.rb --false_class -</div><div class='add'>+  [false, FalseClass]</div><div class='add'>+  $ ruby false_class.rb --false_class nil</div><div class='add'>+  [false, FalseClass]</div><div class='add'>+  $ ruby false_class.rb --false_class true</div><div class='add'>+  [true, TrueClass]</div><div class='add'>+  $ ruby false_class.rb --false_class yes</div><div class='add'>+  [true, TrueClass]</div><div class='add'>+  $ ruby false_class.rb --false_class +</div><div class='add'>+  [true, TrueClass]</div><div class='add'>+</div><div class='add'>+==== \Object</div><div class='add'>+</div><div class='add'>+File +object.rb+</div><div class='add'>+defines an option whose argument is not to be converted from \String.</div><div class='add'>+</div><div class='add'>+  :include: ruby/object.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby object.rb --object foo</div><div class='add'>+  ["foo", String]</div><div class='add'>+  $ ruby object.rb --object nil</div><div class='add'>+  ["nil", String]</div><div class='add'>+</div><div class='add'>+==== \String</div><div class='add'>+</div><div class='add'>+File +string.rb+</div><div class='add'>+defines an option whose argument is not to be converted from \String.</div><div class='add'>+</div><div class='add'>+  :include: ruby/string.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby string.rb --string foo</div><div class='add'>+  ["foo", String]</div><div class='add'>+  $ ruby string.rb --string nil</div><div class='add'>+  ["nil", String]</div><div class='add'>+</div><div class='add'>+==== \Array</div><div class='add'>+</div><div class='add'>+File +array.rb+</div><div class='add'>+defines an option whose argument is to be converted from \String</div><div class='add'>+to an array of strings, based on comma-separated substrings.</div><div class='add'>+</div><div class='add'>+  :include: ruby/array.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby array.rb --array ""</div><div class='add'>+  [[], Array]</div><div class='add'>+  $ ruby array.rb --array foo,bar,baz</div><div class='add'>+  [["foo", "bar", "baz"], Array]</div><div class='add'>+  $ ruby array.rb --array "foo, bar, baz"</div><div class='add'>+  [["foo", " bar", " baz"], Array]</div><div class='add'>+</div><div class='add'>+==== \Regexp</div><div class='add'>+</div><div class='add'>+File +regexp.rb+</div><div class='add'>+defines an option whose argument is to be converted to a \Regexp object.</div><div class='add'>+</div><div class='add'>+  :include: ruby/regexp.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby regexp.rb --regexp foo</div><div class='add'>+</div><div class='add'>+=== Custom Argument Converters</div><div class='add'>+</div><div class='add'>+You can create custom argument converters.</div><div class='add'>+To create a custom converter, call OptionParser#accept with:</div><div class='add'>+</div><div class='add'>+- An identifier, which may be any object.</div><div class='add'>+- An optional match pattern, which defaults to &lt;tt&gt;/.*/m&lt;/tt&gt;.</div><div class='add'>+- A block that accepts the argument and returns the converted value.</div><div class='add'>+</div><div class='add'>+This custom converter accepts any argument and converts it,</div><div class='add'>+if possible, to a \Complex object.</div><div class='add'>+</div><div class='add'>+  :include: ruby/custom_converter.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby custom_converter.rb --complex 0</div><div class='add'>+  [(0+0i), Complex]</div><div class='add'>+  $ ruby custom_converter.rb --complex 1</div><div class='add'>+  [(1+0i), Complex]</div><div class='add'>+  $ ruby custom_converter.rb --complex 1+2i</div><div class='add'>+  [(1+2i), Complex]</div><div class='add'>+  $ ruby custom_converter.rb --complex 0.3-0.5i</div><div class='add'>+  [(0.3-0.5i), Complex]</div><div class='add'>+</div><div class='add'>+This custom converter accepts any 1-word argument</div><div class='add'>+and capitalizes it, if possible.</div><div class='add'>+</div><div class='add'>+  :include: ruby/match_converter.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby match_converter.rb --capitalize foo</div><div class='add'>+  ["Foo", String]</div><div class='add'>+  $ ruby match_converter.rb --capitalize "foo bar"</div><div class='add'>+  match_converter.rb:9:in `&lt;main&gt;': invalid argument: --capitalize foo bar (OptionParser::InvalidArgument)</div><div class='head'>diff --git a/doc/optparse/creates_option.rdoc b/doc/optparse/creates_option.rdoc<br/>new file mode 100644<br/>index 0000000000..ab672d5124<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/creates_option.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/creates_option.rdoc</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+Creates an option from the given parameters +params+.</div><div class='add'>+See {Parameters for New Options}[optparse/option_params.rdoc].</div><div class='add'>+</div><div class='add'>+The block, if given, is the handler for the created option.</div><div class='add'>+When the option is encountered during command-line parsing,</div><div class='add'>+the block is called with the argument given for the option, if any.</div><div class='add'>+See {Option Handlers}[optparse/option_params.rdoc#label-Option+Handlers].</div><div class='head'>diff --git a/doc/optparse/option_params.rdoc b/doc/optparse/option_params.rdoc<br/>new file mode 100644<br/>index 0000000000..ace2c4283f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/option_params.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/option_params.rdoc</a></div><div class='hunk'>@@ -0,0 +1,509 @@</div><div class='add'>+== Parameters for New Options</div><div class='add'>+</div><div class='add'>+Option-creating methods in \OptionParser</div><div class='add'>+accept arguments that determine the behavior of a new option:</div><div class='add'>+</div><div class='add'>+- OptionParser#on</div><div class='add'>+- OptionParser#on_head</div><div class='add'>+- OptionParser#on_tail</div><div class='add'>+- OptionParser#define</div><div class='add'>+- OptionParser#define_head</div><div class='add'>+- OptionParser#define_tail</div><div class='add'>+- OptionParser#make_switch</div><div class='add'>+</div><div class='add'>+The code examples on this page use:</div><div class='add'>+</div><div class='add'>+- OptionParser#on, to define options.</div><div class='add'>+- OptionParser#parse!, to parse the command line.</div><div class='add'>+- Built-in option &lt;tt&gt;--help&lt;/tt&gt;, to display defined options.</div><div class='add'>+</div><div class='add'>+Contents:</div><div class='add'>+</div><div class='add'>+- {Option Names}[#label-Option+Names]</div><div class='add'>+  - {Short Names}[#label-Short+Names]</div><div class='add'>+    - {Simple Short Names}[#label-Simple+Short+Names]</div><div class='add'>+    - {Short Names with Required Arguments}[#label-Short+Names+with+Required+Arguments]</div><div class='add'>+    - {Short Names with Optional Arguments}[#label-Short+Names+with+Optional+Arguments]</div><div class='add'>+    - {Short Names from Range}[#label-Short+Names+from+Range]</div><div class='add'>+  - {Long Names}[#label-Long+Names]</div><div class='add'>+    - {Simple Long Names}[#label-Simple+Long+Names]</div><div class='add'>+    - {Long Names with Required Arguments}[#label-Long+Names+with+Required+Arguments]</div><div class='add'>+    - {Long Names with Optional Arguments}[#label-Long+Names+with+Optional+Arguments]</div><div class='add'>+    - {Long Names with Negation}[#label-Long+Names+with+Negation]</div><div class='add'>+  - {Mixed Names}[#label-Mixed+Names]</div><div class='add'>+- {Argument Styles}[#label-Argument+Styles]</div><div class='add'>+- {Argument Values}[#label-Argument+Values]</div><div class='add'>+  - {Explicit Argument Values}[#label-Explicit+Argument+Values]</div><div class='add'>+    - {Explicit Values in Array}[#label-Explicit+Values+in+Array]</div><div class='add'>+    - {Explicit Values in Hash}[#label-Explicit+Values+in+Hash]</div><div class='add'>+  - {Argument Value Patterns}[#label-Argument+Value+Patterns]</div><div class='add'>+- {Argument Converters}[#label-Argument+Converters]</div><div class='add'>+- {Descriptions}[#label-Descriptions]</div><div class='add'>+- {Option Handlers}[#label-Option+Handlers]</div><div class='add'>+  - {Handler Blocks}[#label-Handler+Blocks]</div><div class='add'>+  - {Handler Procs}[#label-Handler+Procs]</div><div class='add'>+  - {Handler Methods}[#label-Handler+Methods]</div><div class='add'>+</div><div class='add'>+=== Option Names</div><div class='add'>+</div><div class='add'>+There are two kinds of option names:</div><div class='add'>+</div><div class='add'>+- Short option name, consisting of a single hyphen and a single character.</div><div class='add'>+- Long option name, consisting of two hyphens and one or more characters.</div><div class='add'>+</div><div class='add'>+==== Short Names</div><div class='add'>+</div><div class='add'>+===== Simple Short Names</div><div class='add'>+</div><div class='add'>+File +short_simple.rb+ defines two options:</div><div class='add'>+</div><div class='add'>+- One with short name &lt;tt&gt;-x&lt;/tt&gt;.</div><div class='add'>+- The other with two short names, in effect, aliases, &lt;tt&gt;-1&lt;/tt&gt; and &lt;tt&gt;-%&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+ :include: ruby/short_simple.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby short_simple.rb --help</div><div class='add'>+  Usage: short_simple [options]</div><div class='add'>+      -x                               One short name</div><div class='add'>+      -1, -%                           Two short names (aliases)</div><div class='add'>+  $ ruby short_simple.rb -x</div><div class='add'>+  ["-x", true]</div><div class='add'>+  $ ruby short_simple.rb -1 -x -%</div><div class='add'>+  ["-1 or -%", true]</div><div class='add'>+  ["-x", true]</div><div class='add'>+  ["-1 or -%", true]</div><div class='add'>+</div><div class='add'>+===== Short Names with Required Arguments</div><div class='add'>+</div><div class='add'>+A short name followed (no whitespace) by a dummy word</div><div class='add'>+defines an option that requires an argument.</div><div class='add'>+</div><div class='add'>+File +short_required.rb+ defines an option &lt;tt&gt;-x&lt;/tt&gt;</div><div class='add'>+that requires an argument.</div><div class='add'>+</div><div class='add'>+  :include: ruby/short_required.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby short_required.rb --help</div><div class='add'>+  Usage: short_required [options]</div><div class='add'>+      -xXXX                            Short name with required argument</div><div class='add'>+  $ ruby short_required.rb -x</div><div class='add'>+  short_required.rb:6:in `&lt;main&gt;': missing argument: -x (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby short_required.rb -x FOO</div><div class='add'>+  ["-x", "FOO"]</div><div class='add'>+</div><div class='add'>+===== Short Names with Optional Arguments</div><div class='add'>+</div><div class='add'>+A short name followed (with whitespace) by a dummy word in square brackets</div><div class='add'>+defines an option that allows an optional argument.</div><div class='add'>+</div><div class='add'>+File +short_optional.rb+ defines an option &lt;tt&gt;-x&lt;/tt&gt;</div><div class='add'>+that allows an optional argument.</div><div class='add'>+</div><div class='add'>+  :include: ruby/short_optional.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby short_optional.rb --help</div><div class='add'>+  Usage: short_optional [options]</div><div class='add'>+      -x [XXX]                         Short name with optional argument</div><div class='add'>+  $ ruby short_optional.rb -x</div><div class='add'>+  ["-x", nil]</div><div class='add'>+  $ ruby short_optional.rb -x FOO</div><div class='add'>+  ["-x", "FOO"]</div><div class='add'>+</div><div class='add'>+===== Short Names from Range</div><div class='add'>+</div><div class='add'>+You can define an option with multiple short names</div><div class='add'>+taken from a range of characters.</div><div class='add'>+The parser yields both the actual character cited and the value.</div><div class='add'>+</div><div class='add'>+File +short_range.rb+ defines an option with short names</div><div class='add'>+for all printable characters from &lt;tt&gt;!&lt;/tt&gt; to &lt;tt&gt;~&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+  :include: ruby/short_range.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby short_range.rb --help</div><div class='add'>+  Usage: short_range [options]</div><div class='add'>+      -[!-~]                           Short names in (very large) range</div><div class='add'>+  $ ruby short_range.rb -!</div><div class='add'>+  ["!-~", "!", nil]</div><div class='add'>+  $ ruby short_range.rb -!</div><div class='add'>+  ["!-~", "!", nil]</div><div class='add'>+  $ ruby short_range.rb -A</div><div class='add'>+  ["!-~", "A", nil]</div><div class='add'>+  $ ruby short_range.rb -z</div><div class='add'>+  ["!-~", "z", nil]</div><div class='add'>+</div><div class='add'>+==== Long Names</div><div class='add'>+</div><div class='add'>+===== Simple Long Names</div><div class='add'>+</div><div class='add'>+File +long_simple.rb+ defines two options:</div><div class='add'>+</div><div class='add'>+- One with long name &lt;tt&gt;-xxx&lt;/tt&gt;.</div><div class='add'>+- The other with two long names, in effect, aliases,</div><div class='add'>+  &lt;tt&gt;--y1%&lt;/tt&gt; and &lt;tt&gt;--z2#&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+  :include: ruby/long_simple.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby long_simple.rb --help</div><div class='add'>+  Usage: long_simple [options]</div><div class='add'>+          --xxx                        One long name</div><div class='add'>+          --y1%, --z2#                 Two long names (aliases)</div><div class='add'>+  $ ruby long_simple.rb --xxx</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  $ ruby long_simple.rb --y1% --xxx --z2#</div><div class='add'>+  ["--y1% or --z2#", true]</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  ["--y1% or --z2#", true]</div><div class='add'>+</div><div class='add'>+===== Long Names with Required Arguments</div><div class='add'>+</div><div class='add'>+A long name followed (with whitespace) by a dummy word</div><div class='add'>+defines an option that requires an argument.</div><div class='add'>+</div><div class='add'>+File +long_required.rb+ defines an option &lt;tt&gt;--xxx&lt;/tt&gt;</div><div class='add'>+that requires an argument.</div><div class='add'>+</div><div class='add'>+  :include: ruby/long_required.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby long_required.rb --help</div><div class='add'>+  Usage: long_required [options]</div><div class='add'>+          --xxx XXX                    Long name with required argument</div><div class='add'>+  $ ruby long_required.rb --xxx</div><div class='add'>+  long_required.rb:6:in `&lt;main&gt;': missing argument: --xxx (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby long_required.rb --xxx FOO</div><div class='add'>+  ["--xxx", "FOO"]</div><div class='add'>+</div><div class='add'>+===== Long Names with Optional Arguments</div><div class='add'>+</div><div class='add'>+A long name followed (with whitespace) by a dummy word in square brackets</div><div class='add'>+defines an option that allows an optional argument.</div><div class='add'>+</div><div class='add'>+File +long_optional.rb+ defines an option &lt;tt&gt;--xxx&lt;/tt&gt;</div><div class='add'>+that allows an optional argument.</div><div class='add'>+</div><div class='add'>+  :include: ruby/long_optional.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby long_optional.rb --help</div><div class='add'>+  Usage: long_optional [options]</div><div class='add'>+          --xxx [XXX]                  Long name with optional argument</div><div class='add'>+  $ ruby long_optional.rb --xxx</div><div class='add'>+  ["--xxx", nil]</div><div class='add'>+  $ ruby long_optional.rb --xxx FOO</div><div class='add'>+  ["--xxx", "FOO"]</div><div class='add'>+</div><div class='add'>+===== Long Names with Negation</div><div class='add'>+</div><div class='add'>+A long name may be defined with both positive and negative senses.</div><div class='add'>+</div><div class='add'>+File +long_with_negation.rb+ defines an option that has both senses.</div><div class='add'>+</div><div class='add'>+  :include: ruby/long_with_negation.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby long_with_negation.rb --help</div><div class='add'>+  Usage: long_with_negation [options]</div><div class='add'>+          --[no-]binary                Long name with negation</div><div class='add'>+  $ ruby long_with_negation.rb --binary</div><div class='add'>+  [true, TrueClass]</div><div class='add'>+  $ ruby long_with_negation.rb --no-binary</div><div class='add'>+  [false, FalseClass]</div><div class='add'>+</div><div class='add'>+==== Mixed Names</div><div class='add'>+</div><div class='add'>+An option may have both short and long names.</div><div class='add'>+</div><div class='add'>+File +mixed_names.rb+ defines a mixture of short and long names.</div><div class='add'>+</div><div class='add'>+  :include: ruby/mixed_names.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby mixed_names.rb --help</div><div class='add'>+Usage: mixed_names [options]</div><div class='add'>+    -x, --xxx                        Short and long, no argument</div><div class='add'>+    -y, --yyyYYY                     Short and long, required argument</div><div class='add'>+    -z, --zzz [ZZZ]                  Short and long, optional argument</div><div class='add'>+  $ ruby mixed_names.rb -x</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  $ ruby mixed_names.rb --xxx</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  $ ruby mixed_names.rb -y</div><div class='add'>+  mixed_names.rb:12:in `&lt;main&gt;': missing argument: -y (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby mixed_names.rb -y FOO</div><div class='add'>+  ["--yyy", "FOO"]</div><div class='add'>+  $ ruby mixed_names.rb --yyy</div><div class='add'>+  mixed_names.rb:12:in `&lt;main&gt;': missing argument: --yyy (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby mixed_names.rb --yyy BAR</div><div class='add'>+  ["--yyy", "BAR"]</div><div class='add'>+  $ ruby mixed_names.rb -z</div><div class='add'>+  ["--zzz", nil]</div><div class='add'>+  $ ruby mixed_names.rb -z BAZ</div><div class='add'>+  ["--zzz", "BAZ"]</div><div class='add'>+  $ ruby mixed_names.rb --zzz</div><div class='add'>+  ["--zzz", nil]</div><div class='add'>+  $ ruby mixed_names.rb --zzz BAT</div><div class='add'>+  ["--zzz", "BAT"]</div><div class='add'>+</div><div class='add'>+=== Argument Keywords</div><div class='add'>+</div><div class='add'>+As seen above, a given option name string may itself</div><div class='add'>+indicate whether the option has no argument, a required argument,</div><div class='add'>+or an optional argument.</div><div class='add'>+</div><div class='add'>+An alternative is to use a separate symbol keyword,</div><div class='add'>+which is one of &lt;tt&gt;:NONE&lt;/tt&gt; (the default),</div><div class='add'>+&lt;tt&gt;:REQUIRED&lt;/tt&gt;, &lt;tt&gt;:OPTIONAL&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+File +argument_keywords.rb+ defines an option with a required argument.</div><div class='add'>+</div><div class='add'>+  :include: ruby/argument_keywords.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby argument_keywords.rb --help</div><div class='add'>+  Usage: argument_keywords [options]</div><div class='add'>+      -x, --xxx                        Required argument</div><div class='add'>+  $ ruby argument_styles.rb --xxx</div><div class='add'>+  argument_styles.rb:6:in `&lt;main&gt;': missing argument: --xxx (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby argument_styles.rb --xxx FOO</div><div class='add'>+  ["--xxx", "FOO"]</div><div class='add'>+</div><div class='add'>+=== Argument Strings</div><div class='add'>+</div><div class='add'>+Still another way to specify a required argument</div><div class='add'>+is to define it in a string separate from the name string.</div><div class='add'>+</div><div class='add'>+File +argument_strings.rb+ defines an option with a required argument.</div><div class='add'>+</div><div class='add'>+  :include: ruby/argument_strings.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby argument_strings.rb --help</div><div class='add'>+  Usage: argument_strings [options]</div><div class='add'>+      -x, --xxx=XXX                    Required argument</div><div class='add'>+  $ ruby argument_strings.rb --xxx</div><div class='add'>+  argument_strings.rb:9:in `&lt;main&gt;': missing argument: --xxx (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby argument_strings.rb --xxx FOO</div><div class='add'>+  ["--xxx", "FOO"]</div><div class='add'>+</div><div class='add'>+=== Argument Values</div><div class='add'>+</div><div class='add'>+Permissible argument values may be restricted</div><div class='add'>+either by specifying explicit values</div><div class='add'>+or by providing a pattern that the given value must match.</div><div class='add'>+</div><div class='add'>+==== Explicit Argument Values</div><div class='add'>+</div><div class='add'>+You can specify argument values in either of two ways:</div><div class='add'>+</div><div class='add'>+- Specify values an array of strings.</div><div class='add'>+- Specify values a hash.</div><div class='add'>+</div><div class='add'>+===== Explicit Values in Array</div><div class='add'>+</div><div class='add'>+You can specify explicit argument values in an array of strings.</div><div class='add'>+The argument value must be one of those strings, or an unambiguous abbreviation.</div><div class='add'>+</div><div class='add'>+File +explicit_array_values.rb+ defines options with explicit argument values.</div><div class='add'>+</div><div class='add'>+  :include: ruby/explicit_array_values.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby explicit_array_values.rb --help</div><div class='add'>+  Usage: explicit_array_values [options]</div><div class='add'>+      -xXXX                            Values for required argument</div><div class='add'>+      -y [YYY]                         Values for optional argument</div><div class='add'>+  $ ruby explicit_array_values.rb -x</div><div class='add'>+  explicit_array_values.rb:9:in `&lt;main&gt;': missing argument: -x (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby explicit_array_values.rb -x foo</div><div class='add'>+  ["-x", "foo"]</div><div class='add'>+  $ ruby explicit_array_values.rb -x f</div><div class='add'>+  ["-x", "foo"]</div><div class='add'>+  $ ruby explicit_array_values.rb -x bar</div><div class='add'>+  ["-x", "bar"]</div><div class='add'>+  $ ruby explicit_array_values.rb -y ba</div><div class='add'>+  explicit_array_values.rb:9:in `&lt;main&gt;': ambiguous argument: -y ba (OptionParser::AmbiguousArgument)</div><div class='add'>+  $ ruby explicit_array_values.rb -x baz</div><div class='add'>+  explicit_array_values.rb:9:in `&lt;main&gt;': invalid argument: -x baz (OptionParser::InvalidArgument)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+===== Explicit Values in Hash</div><div class='add'>+</div><div class='add'>+You can specify explicit argument values in a hash with string keys.</div><div class='add'>+The value passed must be one of those keys, or an unambiguous abbreviation;</div><div class='add'>+the value yielded will be the value for that key.</div><div class='add'>+</div><div class='add'>+File +explicit_hash_values.rb+ defines options with explicit argument values.</div><div class='add'>+</div><div class='add'>+  :include: ruby/explicit_hash_values.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby explicit_hash_values.rb --help</div><div class='add'>+  Usage: explicit_hash_values [options]</div><div class='add'>+      -xXXX                            Values for required argument</div><div class='add'>+      -y [YYY]                         Values for optional argument</div><div class='add'>+  $ ruby explicit_hash_values.rb -x</div><div class='add'>+  explicit_hash_values.rb:9:in `&lt;main&gt;': missing argument: -x (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby explicit_hash_values.rb -x foo</div><div class='add'>+  ["-x", 0]</div><div class='add'>+  $ ruby explicit_hash_values.rb -x f</div><div class='add'>+  ["-x", 0]</div><div class='add'>+  $ ruby explicit_hash_values.rb -x bar</div><div class='add'>+  ["-x", 1]</div><div class='add'>+  $ ruby explicit_hash_values.rb -x baz</div><div class='add'>+  explicit_hash_values.rb:9:in `&lt;main&gt;': invalid argument: -x baz (OptionParser::InvalidArgument)</div><div class='add'>+  $ ruby explicit_hash_values.rb -y</div><div class='add'>+  ["-y", nil]</div><div class='add'>+  $ ruby explicit_hash_values.rb -y baz</div><div class='add'>+  ["-y", 2]</div><div class='add'>+  $ ruby explicit_hash_values.rb -y bat</div><div class='add'>+  ["-y", 3]</div><div class='add'>+  $ ruby explicit_hash_values.rb -y ba</div><div class='add'>+  explicit_hash_values.rb:9:in `&lt;main&gt;': ambiguous argument: -y ba (OptionParser::AmbiguousArgument)</div><div class='add'>+  $ ruby explicit_hash_values.rb -y bam</div><div class='add'>+  ["-y", nil]</div><div class='add'>+</div><div class='add'>+==== Argument Value Patterns</div><div class='add'>+</div><div class='add'>+You can restrict permissible argument values</div><div class='add'>+by specifying a Regexp that the given argument must match.</div><div class='add'>+</div><div class='add'>+File +matched_values.rb+ defines options with matched argument values.</div><div class='add'>+</div><div class='add'>+  :include: ruby/matched_values.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby matched_values.rb --help</div><div class='add'>+  Usage: matched_values [options]</div><div class='add'>+          --xxx XXX                    Matched values</div><div class='add'>+  $ ruby matched_values.rb --xxx foo</div><div class='add'>+  ["--xxx", "foo"]</div><div class='add'>+  $ ruby matched_values.rb --xxx FOO</div><div class='add'>+  ["--xxx", "FOO"]</div><div class='add'>+  $ ruby matched_values.rb --xxx bar</div><div class='add'>+  matched_values.rb:6:in `&lt;main&gt;': invalid argument: --xxx bar (OptionParser::InvalidArgument)</div><div class='add'>+</div><div class='add'>+=== Argument Converters</div><div class='add'>+</div><div class='add'>+An option can specify that its argument is to be converted</div><div class='add'>+from the default \String to an instance of another class.</div><div class='add'>+</div><div class='add'>+There are a number of built-in converters.</div><div class='add'>+You can also define custom converters.</div><div class='add'>+</div><div class='add'>+See {Argument Converters}[./argument_converters.rdoc].</div><div class='add'>+</div><div class='add'>+=== Descriptions</div><div class='add'>+</div><div class='add'>+A description parameter is any string parameter</div><div class='add'>+that is not recognized as an</div><div class='add'>+{option name}[#label-Option+Names] or a</div><div class='add'>+{terminator}[#label-Terminators];</div><div class='add'>+in other words, it does not begin with a hyphen.</div><div class='add'>+</div><div class='add'>+You may give any number of description parameters;</div><div class='add'>+each becomes a line in the text generated by option &lt;tt&gt;--help&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+File +descriptions.rb+ has six strings in its array +descriptions+.</div><div class='add'>+These are all passed as parameters to OptionParser#on, so that they</div><div class='add'>+all, line for line, become the option's description.</div><div class='add'>+</div><div class='add'>+  :include: ruby/descriptions.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby descriptions.rb --help</div><div class='add'>+  Usage: descriptions [options]</div><div class='add'>+          --xxx                        Lorem ipsum dolor sit amet, consectetuer</div><div class='add'>+                                       adipiscing elit. Aenean commodo ligula eget.</div><div class='add'>+                                       Aenean massa. Cum sociis natoque penatibus</div><div class='add'>+                                       et magnis dis parturient montes, nascetur</div><div class='add'>+                                       ridiculus mus. Donec quam felis, ultricies</div><div class='add'>+                                       nec, pellentesque eu, pretium quis, sem.</div><div class='add'>+  $ ruby descriptions.rb --xxx</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+</div><div class='add'>+=== Option Handlers</div><div class='add'>+</div><div class='add'>+The handler for an option is an executable that will be called</div><div class='add'>+when the option is encountered.  The handler may be:</div><div class='add'>+</div><div class='add'>+- A block (this is most often seen).</div><div class='add'>+- A proc.</div><div class='add'>+- A method.</div><div class='add'>+</div><div class='add'>+==== Handler Blocks</div><div class='add'>+</div><div class='add'>+An option handler may be a block.</div><div class='add'>+</div><div class='add'>+File +block.rb+ defines an option that has a handler block.</div><div class='add'>+</div><div class='add'>+  :include: ruby/block.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby block.rb --help</div><div class='add'>+  Usage: block [options]</div><div class='add'>+          --xxx                        Option with no argument</div><div class='add'>+          --yyy YYY                    Option with required argument</div><div class='add'>+  $ ruby block.rb --xxx</div><div class='add'>+  ["Handler block for -xxx called with value:", true]</div><div class='add'>+  $ ruby block.rb --yyy FOO</div><div class='add'>+  ["Handler block for -yyy called with value:", "FOO"]</div><div class='add'>+</div><div class='add'>+==== Handler Procs</div><div class='add'>+</div><div class='add'>+An option handler may be a Proc.</div><div class='add'>+</div><div class='add'>+File +proc.rb+ defines an option that has a handler proc.</div><div class='add'>+</div><div class='add'>+  :include: ruby/proc.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby proc.rb --help</div><div class='add'>+  Usage: proc [options]</div><div class='add'>+          --xxx                        Option with no argument</div><div class='add'>+          --yyy YYY                    Option with required argument</div><div class='add'>+  $ ruby proc.rb --xxx</div><div class='add'>+  ["Handler proc for -xxx called with value:", true]</div><div class='add'>+  $ ruby proc.rb --yyy FOO</div><div class='add'>+  ["Handler proc for -yyy called with value:", "FOO"]</div><div class='add'>+</div><div class='add'>+==== Handler Methods</div><div class='add'>+</div><div class='add'>+An option handler may be a Method.</div><div class='add'>+</div><div class='add'>+File +proc.rb+ defines an option that has a handler method.</div><div class='add'>+</div><div class='add'>+  :include: ruby/method.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby method.rb --help</div><div class='add'>+  Usage: method [options]</div><div class='add'>+          --xxx                        Option with no argument</div><div class='add'>+          --yyy YYY                    Option with required argument</div><div class='add'>+  $ ruby method.rb --xxx</div><div class='add'>+  ["Handler method for -xxx called with value:", true]</div><div class='add'>+  $ ruby method.rb --yyy FOO</div><div class='add'>+  ["Handler method for -yyy called with value:", "FOO"]</div><div class='head'>diff --git a/doc/optparse/ruby/argument_keywords.rb b/doc/optparse/ruby/argument_keywords.rb<br/>new file mode 100644<br/>index 0000000000..8533257c67<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/argument_keywords.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/argument_keywords.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-x', '--xxx', :REQUIRED, 'Required argument') do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/argument_strings.rb b/doc/optparse/ruby/argument_strings.rb<br/>new file mode 100644<br/>index 0000000000..77861dda30<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/argument_strings.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/argument_strings.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-x', '--xxx', '=XXX', 'Required argument') do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/argv.rb b/doc/optparse/ruby/argv.rb<br/>new file mode 100644<br/>index 0000000000..12495cfa1f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/argv.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/argv.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+p ARGV</div><div class='add'>+</div><div class='head'>diff --git a/doc/optparse/ruby/array.rb b/doc/optparse/ruby/array.rb<br/>new file mode 100644<br/>index 0000000000..7c6c14fad4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/array.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/array.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--array=ARRAY', Array) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/basic.rb b/doc/optparse/ruby/basic.rb<br/>new file mode 100644<br/>index 0000000000..91d37627c0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/basic.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/basic.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+# Require the OptionParser code.</div><div class='add'>+require 'optparse'</div><div class='add'>+# Create an OptionParser object.</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+# Define one or more options.</div><div class='add'>+parser.on('-x', 'Whether to X') do |value|</div><div class='add'>+  p ['x', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-y', 'Whether to Y') do |value|</div><div class='add'>+  p ['y', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-z', 'Whether to Z') do |value|</div><div class='add'>+  p ['z', value]</div><div class='add'>+end</div><div class='add'>+# Parse the command line and return pared-down ARGV.</div><div class='add'>+p parser.parse!</div><div class='add'>+</div><div class='head'>diff --git a/doc/optparse/ruby/block.rb b/doc/optparse/ruby/block.rb<br/>new file mode 100644<br/>index 0000000000..c4dfdeb31e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/block.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/block.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--xxx', 'Option with no argument') do |value|</div><div class='add'>+  p ['Handler block for -xxx called with value:', value]</div><div class='add'>+end</div><div class='add'>+parser.on('--yyy YYY', 'Option with required argument') do |value|</div><div class='add'>+  p ['Handler block for -yyy called with value:', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/collected_options.rb b/doc/optparse/ruby/collected_options.rb<br/>new file mode 100644<br/>index 0000000000..2115e03a9a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/collected_options.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/collected_options.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-x', '--xxx', 'Short and long, no argument')</div><div class='add'>+parser.on('-yYYY', '--yyy', 'Short and long, required argument')</div><div class='add'>+parser.on('-z [ZZZ]', '--zzz', 'Short and long, optional argument')</div><div class='add'>+options = {}</div><div class='add'>+parser.parse!(into: options)</div><div class='add'>+p options</div><div class='head'>diff --git a/doc/optparse/ruby/custom_converter.rb b/doc/optparse/ruby/custom_converter.rb<br/>new file mode 100644<br/>index 0000000000..029da08c46<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/custom_converter.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/custom_converter.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse/date'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.accept(Complex) do |value|</div><div class='add'>+  value.to_c</div><div class='add'>+end</div><div class='add'>+parser.on('--complex COMPLEX', Complex) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/date.rb b/doc/optparse/ruby/date.rb<br/>new file mode 100644<br/>index 0000000000..5994ad6a85<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/date.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/date.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse/date'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--date=DATE', Date) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/datetime.rb b/doc/optparse/ruby/datetime.rb<br/>new file mode 100644<br/>index 0000000000..b9b591d5f6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/datetime.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/datetime.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse/date'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--datetime=DATETIME', DateTime) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/decimal_integer.rb b/doc/optparse/ruby/decimal_integer.rb<br/>new file mode 100644<br/>index 0000000000..360bd284f8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/decimal_integer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/decimal_integer.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+include OptionParser::Acceptables</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--decimal_integer=DECIMAL_INTEGER', DecimalInteger) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/decimal_numeric.rb b/doc/optparse/ruby/decimal_numeric.rb<br/>new file mode 100644<br/>index 0000000000..954da13561<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/decimal_numeric.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/decimal_numeric.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+include OptionParser::Acceptables</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--decimal_numeric=DECIMAL_NUMERIC', DecimalNumeric) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/default_values.rb b/doc/optparse/ruby/default_values.rb<br/>new file mode 100644<br/>index 0000000000..24c26faea2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/default_values.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/default_values.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-x', '--xxx', 'Short and long, no argument')</div><div class='add'>+parser.on('-yYYY', '--yyy', 'Short and long, required argument')</div><div class='add'>+parser.on('-z [ZZZ]', '--zzz', 'Short and long, optional argument')</div><div class='add'>+options = {yyy: 'AAA', zzz: 'BBB'}</div><div class='add'>+parser.parse!(into: options)</div><div class='add'>+p options</div><div class='head'>diff --git a/doc/optparse/ruby/descriptions.rb b/doc/optparse/ruby/descriptions.rb<br/>new file mode 100644<br/>index 0000000000..9aec80aae2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/descriptions.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/descriptions.rb</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+description = &lt;&lt;-EOT</div><div class='add'>+Lorem ipsum dolor sit amet, consectetuer</div><div class='add'>+adipiscing elit. Aenean commodo ligula eget.</div><div class='add'>+Aenean massa. Cum sociis natoque penatibus</div><div class='add'>+et magnis dis parturient montes, nascetur</div><div class='add'>+ridiculus mus. Donec quam felis, ultricies</div><div class='add'>+nec, pellentesque eu, pretium quis, sem.</div><div class='add'>+EOT</div><div class='add'>+descriptions = description.split($/)</div><div class='add'>+parser.on('--xxx', *descriptions) do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/explicit_array_values.rb b/doc/optparse/ruby/explicit_array_values.rb<br/>new file mode 100644<br/>index 0000000000..64f930a4bc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/explicit_array_values.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/explicit_array_values.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-xXXX', ['foo', 'bar'], 'Values for required argument' ) do |value|</div><div class='add'>+  p ['-x', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-y [YYY]', ['baz', 'bat'], 'Values for optional argument') do |value|</div><div class='add'>+  p ['-y', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/explicit_hash_values.rb b/doc/optparse/ruby/explicit_hash_values.rb<br/>new file mode 100644<br/>index 0000000000..9c9e6a48ed<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/explicit_hash_values.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/explicit_hash_values.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-xXXX', {foo: 0, bar: 1}, 'Values for required argument' ) do |value|</div><div class='add'>+  p ['-x', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-y [YYY]', {baz: 2, bat: 3}, 'Values for optional argument') do |value|</div><div class='add'>+  p ['-y', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/false_class.rb b/doc/optparse/ruby/false_class.rb<br/>new file mode 100644<br/>index 0000000000..04fe335ede<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/false_class.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/false_class.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--false_class=FALSE_CLASS', FalseClass) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/float.rb b/doc/optparse/ruby/float.rb<br/>new file mode 100644<br/>index 0000000000..390df7f7bd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/float.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/float.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--float=FLOAT', Float) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/help.rb b/doc/optparse/ruby/help.rb<br/>new file mode 100644<br/>index 0000000000..95bcde1d77<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/help.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/help.rb</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on(</div><div class='add'>+  '-x', '--xxx',</div><div class='add'>+  'Adipiscing elit. Aenean commodo ligula eget.',</div><div class='add'>+  'Aenean massa. Cum sociis natoque penatibus',</div><div class='add'>+  )</div><div class='add'>+parser.on(</div><div class='add'>+  '-y', '--yyy YYY',</div><div class='add'>+  'Lorem ipsum dolor sit amet, consectetuer.'</div><div class='add'>+)</div><div class='add'>+parser.on(</div><div class='add'>+  '-z', '--zzz [ZZZ]',</div><div class='add'>+  'Et magnis dis parturient montes, nascetur',</div><div class='add'>+  'ridiculus mus. Donec quam felis, ultricies',</div><div class='add'>+  'nec, pellentesque eu, pretium quis, sem.',</div><div class='add'>+  )</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/help_banner.rb b/doc/optparse/ruby/help_banner.rb<br/>new file mode 100644<br/>index 0000000000..0943a3e029<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/help_banner.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/help_banner.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.banner = "Usage: ruby help_banner.rb"</div><div class='add'>+parser.parse!</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/doc/optparse/ruby/help_format.rb b/doc/optparse/ruby/help_format.rb<br/>new file mode 100644<br/>index 0000000000..a2f1e85b00<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/help_format.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/help_format.rb</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new(</div><div class='add'>+  'ruby help_format.rb [options]', # Banner</div><div class='add'>+  20,                               # Width of options field</div><div class='add'>+  ' ' * 2                               # Indentation</div><div class='add'>+)</div><div class='add'>+parser.on(</div><div class='add'>+  '-x', '--xxx',</div><div class='add'>+  'Adipiscing elit. Aenean commodo ligula eget.',</div><div class='add'>+  'Aenean massa. Cum sociis natoque penatibus',</div><div class='add'>+  )</div><div class='add'>+parser.on(</div><div class='add'>+  '-y', '--yyy YYY',</div><div class='add'>+  'Lorem ipsum dolor sit amet, consectetuer.'</div><div class='add'>+)</div><div class='add'>+parser.on(</div><div class='add'>+  '-z', '--zzz [ZZZ]',</div><div class='add'>+  'Et magnis dis parturient montes, nascetur',</div><div class='add'>+  'ridiculus mus. Donec quam felis, ultricies',</div><div class='add'>+  'nec, pellentesque eu, pretium quis, sem.',</div><div class='add'>+  )</div><div class='add'>+parser.parse!</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/doc/optparse/ruby/help_program_name.rb b/doc/optparse/ruby/help_program_name.rb<br/>new file mode 100644<br/>index 0000000000..7b3fbff067<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/help_program_name.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/help_program_name.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.program_name = 'help_program_name.rb'</div><div class='add'>+parser.parse!</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/doc/optparse/ruby/integer.rb b/doc/optparse/ruby/integer.rb<br/>new file mode 100644<br/>index 0000000000..f10656ff1a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/integer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/integer.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--integer=INTEGER', Integer) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/long_names.rb b/doc/optparse/ruby/long_names.rb<br/>new file mode 100644<br/>index 0000000000..a49dbda69f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/long_names.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/long_names.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--xxx', 'Long name') do |value|</div><div class='add'>+  p ['-xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.on('--y1%', '--z2#', "Two long names") do |value|</div><div class='add'>+  p ['--y1% or --z2#', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/long_optional.rb b/doc/optparse/ruby/long_optional.rb<br/>new file mode 100644<br/>index 0000000000..38dd82166b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/long_optional.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/long_optional.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--xxx [XXX]', 'Long name with optional argument') do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/long_required.rb b/doc/optparse/ruby/long_required.rb<br/>new file mode 100644<br/>index 0000000000..b76c997339<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/long_required.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/long_required.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--xxx XXX', 'Long name with required argument') do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/long_simple.rb b/doc/optparse/ruby/long_simple.rb<br/>new file mode 100644<br/>index 0000000000..4e489c43ed<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/long_simple.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/long_simple.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--xxx', 'One long name') do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.on('--y1%', '--z2#', 'Two long names (aliases)') do |value|</div><div class='add'>+  p ['--y1% or --z2#', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/long_with_negation.rb b/doc/optparse/ruby/long_with_negation.rb<br/>new file mode 100644<br/>index 0000000000..3f2913c361<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/long_with_negation.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/long_with_negation.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--[no-]binary', 'Long name with negation') do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/match_converter.rb b/doc/optparse/ruby/match_converter.rb<br/>new file mode 100644<br/>index 0000000000..13dc5fcb51<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/match_converter.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/match_converter.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse/date'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.accept(:capitalize, /\w*/) do |value|</div><div class='add'>+  value.capitalize</div><div class='add'>+end</div><div class='add'>+parser.on('--capitalize XXX', :capitalize) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/matched_values.rb b/doc/optparse/ruby/matched_values.rb<br/>new file mode 100644<br/>index 0000000000..f184ca8474<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/matched_values.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/matched_values.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--xxx XXX', /foo/i, 'Matched values') do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/method.rb b/doc/optparse/ruby/method.rb<br/>new file mode 100644<br/>index 0000000000..3f02ff5798<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/method.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/method.rb</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+def xxx_handler(value)</div><div class='add'>+  p ['Handler method for -xxx called with value:', value]</div><div class='add'>+end</div><div class='add'>+parser.on('--xxx', 'Option with no argument', method(:xxx_handler))</div><div class='add'>+def yyy_handler(value)</div><div class='add'>+  p ['Handler method for -yyy called with value:', value]</div><div class='add'>+end</div><div class='add'>+parser.on('--yyy YYY', 'Option with required argument', method(:yyy_handler))</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/missing_options.rb b/doc/optparse/ruby/missing_options.rb<br/>new file mode 100644<br/>index 0000000000..9428463cfd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/missing_options.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/missing_options.rb</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-x', '--xxx', 'Short and long, no argument')</div><div class='add'>+parser.on('-yYYY', '--yyy', 'Short and long, required argument')</div><div class='add'>+parser.on('-z [ZZZ]', '--zzz', 'Short and long, optional argument')</div><div class='add'>+options = {}</div><div class='add'>+parser.parse!(into: options)</div><div class='add'>+required_options = [:xxx, :zzz]</div><div class='add'>+missing_options = required_options - options.keys</div><div class='add'>+unless missing_options.empty?</div><div class='add'>+  fail "Missing required options: #{missing_options}"</div><div class='add'>+end</div><div class='head'>diff --git a/doc/optparse/ruby/mixed_names.rb b/doc/optparse/ruby/mixed_names.rb<br/>new file mode 100644<br/>index 0000000000..67f81e7e8d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/mixed_names.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/mixed_names.rb</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-x', '--xxx', 'Short and long, no argument') do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-yYYY', '--yyy', 'Short and long, required argument') do |value|</div><div class='add'>+  p ['--yyy', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-z [ZZZ]', '--zzz', 'Short and long, optional argument') do |value|</div><div class='add'>+  p ['--zzz', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/name_abbrev.rb b/doc/optparse/ruby/name_abbrev.rb<br/>new file mode 100644<br/>index 0000000000..b438c1b3dd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/name_abbrev.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/name_abbrev.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-n', '--dry-run',) do |value|</div><div class='add'>+  p ['--dry-run', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-d', '--draft',) do |value|</div><div class='add'>+  p ['--draft', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/no_abbreviation.rb b/doc/optparse/ruby/no_abbreviation.rb<br/>new file mode 100644<br/>index 0000000000..5464492705<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/no_abbreviation.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/no_abbreviation.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-n', '--dry-run',) do |value|</div><div class='add'>+  p ['--dry-run', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-d', '--draft',) do |value|</div><div class='add'>+  p ['--draft', value]</div><div class='add'>+end</div><div class='add'>+parser.require_exact = true</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/numeric.rb b/doc/optparse/ruby/numeric.rb<br/>new file mode 100644<br/>index 0000000000..d7021f154a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/numeric.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/numeric.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--numeric=NUMERIC', Numeric) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/object.rb b/doc/optparse/ruby/object.rb<br/>new file mode 100644<br/>index 0000000000..0f5ae8b922<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/object.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/object.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--object=OBJECT', Object) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/octal_integer.rb b/doc/optparse/ruby/octal_integer.rb<br/>new file mode 100644<br/>index 0000000000..b9644a076b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/octal_integer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/octal_integer.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+include OptionParser::Acceptables</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--octal_integer=OCTAL_INTEGER', OctalInteger) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/optional_argument.rb b/doc/optparse/ruby/optional_argument.rb<br/>new file mode 100644<br/>index 0000000000..456368a8ba<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/optional_argument.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/optional_argument.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-x [XXX]', '--xxx', 'Optional argument via short  name') do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-y', '--yyy [YYY]', 'Optional argument via long name') do |value|</div><div class='add'>+  p ['--yyy', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/parse.rb b/doc/optparse/ruby/parse.rb<br/>new file mode 100644<br/>index 0000000000..a5d4329484<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/parse.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/parse.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--xxx') do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.on('--yyy YYY') do |value|</div><div class='add'>+  p ['--yyy', value]</div><div class='add'>+end</div><div class='add'>+parser.on('--zzz [ZZZ]') do |value|</div><div class='add'>+  p ['--zzz', value]</div><div class='add'>+end</div><div class='add'>+ret = parser.parse(ARGV)</div><div class='add'>+puts "Returned: #{ret} (#{ret.class})"</div><div class='head'>diff --git a/doc/optparse/ruby/parse_bang.rb b/doc/optparse/ruby/parse_bang.rb<br/>new file mode 100644<br/>index 0000000000..567bc733cf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/parse_bang.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/parse_bang.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--xxx') do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.on('--yyy YYY') do |value|</div><div class='add'>+  p ['--yyy', value]</div><div class='add'>+end</div><div class='add'>+parser.on('--zzz [ZZZ]') do |value|</div><div class='add'>+  p ['--zzz', value]</div><div class='add'>+end</div><div class='add'>+ret = parser.parse!</div><div class='add'>+puts "Returned: #{ret} (#{ret.class})"</div><div class='head'>diff --git a/doc/optparse/ruby/proc.rb b/doc/optparse/ruby/proc.rb<br/>new file mode 100644<br/>index 0000000000..9c669fdc92<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/proc.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/proc.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on(</div><div class='add'>+  '--xxx',</div><div class='add'>+  'Option with no argument',</div><div class='add'>+  -&gt;(value) {p ['Handler proc for -xxx called with value:', value]}</div><div class='add'>+)</div><div class='add'>+parser.on(</div><div class='add'>+  '--yyy YYY',</div><div class='add'>+  'Option with required argument',</div><div class='add'>+  -&gt;(value) {p ['Handler proc for -yyy called with value:', value]}</div><div class='add'>+)</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/regexp.rb b/doc/optparse/ruby/regexp.rb<br/>new file mode 100644<br/>index 0000000000..6aba45ce76<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/regexp.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/regexp.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--regexp=REGEXP', Regexp) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/required_argument.rb b/doc/optparse/ruby/required_argument.rb<br/>new file mode 100644<br/>index 0000000000..228a492c3c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/required_argument.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/required_argument.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-x XXX', '--xxx', 'Required argument via short name') do |value|</div><div class='add'>+  p ['--xxx', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-y', '--y YYY', 'Required argument via long name') do |value|</div><div class='add'>+  p ['--yyy', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/shellwords.rb b/doc/optparse/ruby/shellwords.rb<br/>new file mode 100644<br/>index 0000000000..d181d4a4f6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/shellwords.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/shellwords.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse/shellwords'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--shellwords=SHELLWORDS', Shellwords) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/short_names.rb b/doc/optparse/ruby/short_names.rb<br/>new file mode 100644<br/>index 0000000000..4a756518fa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/short_names.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/short_names.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-x', 'Short name') do |value|</div><div class='add'>+  p ['x', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-1', '-%', 'Two short names') do |value|</div><div class='add'>+  p ['-1 or -%', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/short_optional.rb b/doc/optparse/ruby/short_optional.rb<br/>new file mode 100644<br/>index 0000000000..6eebf01c5f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/short_optional.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/short_optional.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-x [XXX]', 'Short name with optional argument') do |value|</div><div class='add'>+  p ['-x', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/short_range.rb b/doc/optparse/ruby/short_range.rb<br/>new file mode 100644<br/>index 0000000000..f5b870a4bd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/short_range.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/short_range.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-[!-~]', 'Short names in (very large) range') do |name, value|</div><div class='add'>+  p ['!-~', name, value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/short_required.rb b/doc/optparse/ruby/short_required.rb<br/>new file mode 100644<br/>index 0000000000..867c02c9f5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/short_required.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/short_required.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-xXXX', 'Short name with required argument') do |value|</div><div class='add'>+  p ['-x', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/short_simple.rb b/doc/optparse/ruby/short_simple.rb<br/>new file mode 100644<br/>index 0000000000..d3d489e2dc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/short_simple.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/short_simple.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('-x', 'One short name') do |value|</div><div class='add'>+  p ['-x', value]</div><div class='add'>+end</div><div class='add'>+parser.on('-1', '-%', 'Two short names (aliases)') do |value|</div><div class='add'>+  p ['-1 or -%', value]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/string.rb b/doc/optparse/ruby/string.rb<br/>new file mode 100644<br/>index 0000000000..fee84a17ea<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/string.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/string.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--string=STRING', String) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/terminator.rb b/doc/optparse/ruby/terminator.rb<br/>new file mode 100644<br/>index 0000000000..c718ac1a97<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/terminator.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/terminator.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--my_option XXX') do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/time.rb b/doc/optparse/ruby/time.rb<br/>new file mode 100644<br/>index 0000000000..aa8b0cfa16<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/time.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/time.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse/time'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--time=TIME', Time) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/true_class.rb b/doc/optparse/ruby/true_class.rb<br/>new file mode 100644<br/>index 0000000000..40db9d07c5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/true_class.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/true_class.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--true_class=TRUE_CLASS', TrueClass) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/ruby/uri.rb b/doc/optparse/ruby/uri.rb<br/>new file mode 100644<br/>index 0000000000..b492835b4f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/ruby/uri.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/ruby/uri.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+require 'optparse/uri'</div><div class='add'>+parser = OptionParser.new</div><div class='add'>+parser.on('--uri=URI', URI) do |value|</div><div class='add'>+  p [value, value.class]</div><div class='add'>+end</div><div class='add'>+parser.parse!</div><div class='head'>diff --git a/doc/optparse/tutorial.rdoc b/doc/optparse/tutorial.rdoc<br/>new file mode 100644<br/>index 0000000000..b95089826d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/optparse/tutorial.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/optparse/tutorial.rdoc</a></div><div class='hunk'>@@ -0,0 +1,835 @@</div><div class='add'>+== Tutorial</div><div class='add'>+</div><div class='add'>+=== Why \OptionParser?</div><div class='add'>+</div><div class='add'>+When a Ruby program executes, it captures its command-line arguments</div><div class='add'>+and options into variable ARGV.</div><div class='add'>+This simple program just prints its \ARGV:</div><div class='add'>+</div><div class='add'>+  :include: ruby/argv.rb</div><div class='add'>+</div><div class='add'>+Execution, with arguments and options:</div><div class='add'>+</div><div class='add'>+  $ ruby argv.rb foo --bar --baz bat bam</div><div class='add'>+  ["foo", "--bar", "--baz", "bat", "bam"]</div><div class='add'>+</div><div class='add'>+The executing program is responsible for parsing and handling</div><div class='add'>+the command-line options.</div><div class='add'>+</div><div class='add'>+OptionParser offers methods for parsing and handling those options.</div><div class='add'>+</div><div class='add'>+With \OptionParser, you can define options so that for each option:</div><div class='add'>+</div><div class='add'>+- The code that defines the option and code that handles that option</div><div class='add'>+  are in the same place.</div><div class='add'>+- The option may take no argument, a required argument, or an optional argument.</div><div class='add'>+- The argument may be automatically converted to a specified class.</div><div class='add'>+- The argument may be restricted to specified _forms_.</div><div class='add'>+- The argument may be restricted to specified _values_.</div><div class='add'>+</div><div class='add'>+The class also has method #help, which displays automatically-generated help text.</div><div class='add'>+</div><div class='add'>+=== Contents</div><div class='add'>+</div><div class='add'>+- {To Begin With}[#label-To+Begin+With]</div><div class='add'>+- {Defining Options}[#label-Defining+Options]</div><div class='add'>+- {Option Names}[#label-Option+Names]</div><div class='add'>+  - {Short Option Names}[#label-Short+Option+Names]</div><div class='add'>+  - {Long Option Names}[#label-Long+Option+Names]</div><div class='add'>+  - {Mixing Option Names}[#label-Mixing+Option+Names]</div><div class='add'>+  - {Option Name Abbreviations}[#label-Option+Name+Abbreviations]</div><div class='add'>+- {Option Arguments}[#label-Option+Arguments]</div><div class='add'>+  - {Option with No Argument}[#label-Option+with+No+Argument]</div><div class='add'>+  - {Option with Required Argument}[#label-Option+with+Required+Argument]</div><div class='add'>+  - {Option with Optional Argument}[#label-Option+with+Optional+Argument]</div><div class='add'>+  - {Argument Abbreviations}[#label-Argument+Abbreviations]</div><div class='add'>+- {Argument Values}[#label-Argument+Values]</div><div class='add'>+  - {Explicit Argument Values}[#label-Explicit+Argument+Values]</div><div class='add'>+    - {Explicit Values in Array}[#label-Explicit+Values+in+Array]</div><div class='add'>+    - {Explicit Values in Hash}[#label-Explicit+Values+in+Hash]</div><div class='add'>+  - {Argument Value Patterns}[#label-Argument+Value+Patterns]</div><div class='add'>+- {Keyword Argument into}[#label-Keyword+Argument+into]</div><div class='add'>+  - {Collecting Options}[#label-Collecting+Options]</div><div class='add'>+  - {Checking for Missing Options}[#label-Checking+for+Missing+Options]</div><div class='add'>+  - {Default Values for Options}[#label-Default+Values+for+Options]</div><div class='add'>+- {Argument Converters}[#label-Argument+Converters]</div><div class='add'>+- {Help}[#label-Help]</div><div class='add'>+- {Top List and Base List}[#label-Top+List+and+Base+List]</div><div class='add'>+- {Defining Options}[#label-Defining+Options]</div><div class='add'>+- {Parsing}[#label-Parsing]</div><div class='add'>+  - {Method parse!}[#label-Method+parse-21]</div><div class='add'>+  - {Method parse}[#label-Method+parse]</div><div class='add'>+  - {Method order!}[#label-Method+order-21]</div><div class='add'>+  - {Method order}[#label-Method+order]</div><div class='add'>+  - {Method permute!}[#label-Method+permute-21]</div><div class='add'>+  - {Method permute}[#label-Method+permute]</div><div class='add'>+</div><div class='add'>+=== To Begin With</div><div class='add'>+</div><div class='add'>+To use \OptionParser:</div><div class='add'>+</div><div class='add'>+1. Require the \OptionParser code.</div><div class='add'>+2. Create an \OptionParser object.</div><div class='add'>+3. Define one or more options.</div><div class='add'>+4. Parse the command line.</div><div class='add'>+</div><div class='add'>+File +basic.rb+ defines three options, &lt;tt&gt;-x&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;-y&lt;/tt&gt;, and &lt;tt&gt;-z&lt;/tt&gt;, each with a descriptive string,</div><div class='add'>+and each with a block.</div><div class='add'>+</div><div class='add'>+  :include: ruby/basic.rb</div><div class='add'>+</div><div class='add'>+From these defined options, the parser automatically builds help text:</div><div class='add'>+</div><div class='add'>+  $ ruby basic.rb --help</div><div class='add'>+  Usage: basic [options]</div><div class='add'>+      -x                               Whether to X</div><div class='add'>+      -y                               Whether to Y</div><div class='add'>+      -z                               Whether to Z</div><div class='add'>+</div><div class='add'>+When an option is found during parsing,</div><div class='add'>+the block defined for the option is called with the argument value.</div><div class='add'>+An invalid option raises an exception.</div><div class='add'>+</div><div class='add'>+Method #parse!, which is used most often in this tutorial,</div><div class='add'>+removes from \ARGV the options and arguments it finds,</div><div class='add'>+leaving other non-option arguments for the program to handle on its own.</div><div class='add'>+The method returns the possibly-reduced \ARGV array.</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby basic.rb -x -z</div><div class='add'>+  ["x", true]</div><div class='add'>+  ["z", true]</div><div class='add'>+  []</div><div class='add'>+  $ ruby basic.rb -z -y -x</div><div class='add'>+  ["z", true]</div><div class='add'>+  ["y", true]</div><div class='add'>+  ["x", true]</div><div class='add'>+  []</div><div class='add'>+  $ ruby basic.rb -x input_file.txt output_file.txt</div><div class='add'>+  ["x", true]</div><div class='add'>+  ["input_file.txt", "output_file.txt"]</div><div class='add'>+  $ ruby basic.rb -a</div><div class='add'>+  basic.rb:16:in `&lt;main&gt;': invalid option: -a (OptionParser::InvalidOption)</div><div class='add'>+</div><div class='add'>+=== Defining Options</div><div class='add'>+</div><div class='add'>+A common way to define an option in \OptionParser</div><div class='add'>+is with instance method OptionParser#on.</div><div class='add'>+</div><div class='add'>+The method may be called with any number of arguments</div><div class='add'>+(whose order does not matter),</div><div class='add'>+and may also have a trailing optional keyword argument +into+.</div><div class='add'>+</div><div class='add'>+The given arguments determine the characteristics of the new option.</div><div class='add'>+These may include:</div><div class='add'>+</div><div class='add'>+- One or more short option names.</div><div class='add'>+- One or more long option names.</div><div class='add'>+- Whether the option takes no argument, an optional argument, or a required argument.</div><div class='add'>+- Acceptable _forms_ for the argument.</div><div class='add'>+- Acceptable _values_ for the argument.</div><div class='add'>+- A proc or method to be called when the parser encounters the option.</div><div class='add'>+- String descriptions for the option.</div><div class='add'>+</div><div class='add'>+=== Option Names</div><div class='add'>+</div><div class='add'>+You can give an option one or more names of two types:</div><div class='add'>+</div><div class='add'>+- Short (1-character) name, beginning with one hyphen (&lt;tt&gt;-&lt;/tt&gt;).</div><div class='add'>+- Long (multi-character) name, beginning with two hyphens (&lt;tt&gt;--&lt;/tt&gt;).</div><div class='add'>+</div><div class='add'>+==== Short Option Names</div><div class='add'>+</div><div class='add'>+A short option name consists of a hyphen and a single character.</div><div class='add'>+</div><div class='add'>+File +short_names.rb+</div><div class='add'>+defines an option with a short name, &lt;tt&gt;-x&lt;/tt&gt;,</div><div class='add'>+and an option with two short names (aliases, in effect) &lt;tt&gt;-y&lt;/tt&gt; and &lt;tt&gt;-z&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+  :include: ruby/short_names.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby short_names.rb --help</div><div class='add'>+  Usage: short_names [options]</div><div class='add'>+      -x                               Short name</div><div class='add'>+      -1, -%                           Two short names</div><div class='add'>+  $ ruby short_names.rb -x</div><div class='add'>+  ["x", true]</div><div class='add'>+  $ ruby short_names.rb -1</div><div class='add'>+  ["-1 or -%", true]</div><div class='add'>+  $ ruby short_names.rb -%</div><div class='add'>+  ["-1 or -%", true]</div><div class='add'>+</div><div class='add'>+Multiple short names can "share" a hyphen:</div><div class='add'>+</div><div class='add'>+  $ ruby short_names.rb -x1%</div><div class='add'>+  ["x", true]</div><div class='add'>+  ["-1 or -%", true]</div><div class='add'>+  ["-1 or -%", true]</div><div class='add'>+</div><div class='add'>+==== Long Option Names</div><div class='add'>+</div><div class='add'>+A long option name consists of two hyphens and a one or more characters</div><div class='add'>+(usually two or more characters).</div><div class='add'>+</div><div class='add'>+File +long_names.rb+</div><div class='add'>+defines an option with a long name, &lt;tt&gt;--xxx&lt;/tt&gt;,</div><div class='add'>+and an option with two long names (aliases, in effect) &lt;tt&gt;--y1%&lt;/tt&gt; and &lt;tt&gt;--z2#&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+  :include: ruby/long_names.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby long_names.rb --help</div><div class='add'>+  Usage: long_names [options]</div><div class='add'>+          --xxx                        Long name</div><div class='add'>+          --y1%, --z2#                 Two long names</div><div class='add'>+  $ ruby long_names.rb --xxx</div><div class='add'>+  ["-xxx", true]</div><div class='add'>+  $ ruby long_names.rb --y1%</div><div class='add'>+  ["--y1% or --z2#", true]</div><div class='add'>+  $ ruby long_names.rb --z2#</div><div class='add'>+  ["--y1% or --z2#", true]</div><div class='add'>+</div><div class='add'>+A long name may be defined with both positive and negative senses.</div><div class='add'>+</div><div class='add'>+File +long_with_negation.rb+ defines an option that has both senses.</div><div class='add'>+</div><div class='add'>+  :include: ruby/long_with_negation.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby long_with_negation.rb --help</div><div class='add'>+  Usage: long_with_negation [options]</div><div class='add'>+          --[no-]binary                Long name with negation</div><div class='add'>+  $ ruby long_with_negation.rb --binary</div><div class='add'>+  [true, TrueClass]</div><div class='add'>+  $ ruby long_with_negation.rb --no-binary</div><div class='add'>+  [false, FalseClass]</div><div class='add'>+</div><div class='add'>+==== Mixing Option Names</div><div class='add'>+</div><div class='add'>+Many developers like to mix short and long option names,</div><div class='add'>+so that a short name is in effect an abbreviation of a long name.</div><div class='add'>+</div><div class='add'>+File +mixed_names.rb+</div><div class='add'>+defines options that each have both a short and a long name.</div><div class='add'>+</div><div class='add'>+  :include: ruby/mixed_names.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby mixed_names.rb --help</div><div class='add'>+  Usage: mixed_names [options]</div><div class='add'>+      -x, --xxx                        Short and long, no argument</div><div class='add'>+      -y, --yyyYYY                     Short and long, required argument</div><div class='add'>+      -z, --zzz [ZZZ]                  Short and long, optional argument</div><div class='add'>+  $ ruby mixed_names.rb -x</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  $ ruby mixed_names.rb --xxx</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  $ ruby mixed_names.rb -y</div><div class='add'>+  mixed_names.rb:12:in `&lt;main&gt;': missing argument: -y (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby mixed_names.rb -y FOO</div><div class='add'>+  ["--yyy", "FOO"]</div><div class='add'>+  $ ruby mixed_names.rb --yyy</div><div class='add'>+  mixed_names.rb:12:in `&lt;main&gt;': missing argument: --yyy (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby mixed_names.rb --yyy BAR</div><div class='add'>+  ["--yyy", "BAR"]</div><div class='add'>+  $ ruby mixed_names.rb -z</div><div class='add'>+  ["--zzz", nil]</div><div class='add'>+  $ ruby mixed_names.rb -z BAZ</div><div class='add'>+  ["--zzz", "BAZ"]</div><div class='add'>+  $ ruby mixed_names.rb --zzz</div><div class='add'>+  ["--zzz", nil]</div><div class='add'>+  $ ruby mixed_names.rb --zzz BAT</div><div class='add'>+  ["--zzz", "BAT"]</div><div class='add'>+</div><div class='add'>+==== Option Name Abbreviations</div><div class='add'>+</div><div class='add'>+By default, abbreviated option names on the command-line are allowed.</div><div class='add'>+An abbreviated name is valid if it is unique among abbreviated option names.</div><div class='add'>+</div><div class='add'>+  :include: ruby/name_abbrev.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby name_abbrev.rb --help</div><div class='add'>+  Usage: name_abbrev [options]</div><div class='add'>+      -n, --dry-run</div><div class='add'>+      -d, --draft</div><div class='add'>+  $ ruby name_abbrev.rb -n</div><div class='add'>+  ["--dry-run", true]</div><div class='add'>+  $ ruby name_abbrev.rb --dry-run</div><div class='add'>+  ["--dry-run", true]</div><div class='add'>+  $ ruby name_abbrev.rb -d</div><div class='add'>+  ["--draft", true]</div><div class='add'>+  $ ruby name_abbrev.rb --draft</div><div class='add'>+  ["--draft", true]</div><div class='add'>+  $ ruby name_abbrev.rb --d</div><div class='add'>+  name_abbrev.rb:9:in `&lt;main&gt;': ambiguous option: --d (OptionParser::AmbiguousOption)</div><div class='add'>+  $ ruby name_abbrev.rb --dr</div><div class='add'>+  name_abbrev.rb:9:in `&lt;main&gt;': ambiguous option: --dr (OptionParser::AmbiguousOption)</div><div class='add'>+  $ ruby name_abbrev.rb --dry</div><div class='add'>+  ["--dry-run", true]</div><div class='add'>+  $ ruby name_abbrev.rb --dra</div><div class='add'>+  ["--draft", true]</div><div class='add'>+</div><div class='add'>+You can disable abbreviation using method +require_exact+.</div><div class='add'>+</div><div class='add'>+  :include: ruby/no_abbreviation.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby no_abbreviation.rb --dry-ru</div><div class='add'>+  no_abbreviation.rb:10:in `&lt;main&gt;': invalid option: --dry-ru (OptionParser::InvalidOption)</div><div class='add'>+  $ ruby no_abbreviation.rb --dry-run</div><div class='add'>+  ["--dry-run", true]</div><div class='add'>+</div><div class='add'>+=== Option Arguments</div><div class='add'>+</div><div class='add'>+An option may take no argument, a required argument, or an optional argument.</div><div class='add'>+</div><div class='add'>+==== Option with No Argument</div><div class='add'>+</div><div class='add'>+All the examples above define options with no argument.</div><div class='add'>+</div><div class='add'>+==== Option with Required Argument</div><div class='add'>+</div><div class='add'>+Specify a required argument for an option by adding a dummy word</div><div class='add'>+to its name definition.</div><div class='add'>+</div><div class='add'>+File +required_argument.rb+ defines two options;</div><div class='add'>+each has a required argument because the name definition has a following dummy word.</div><div class='add'>+</div><div class='add'>+  :include: ruby/required_argument.rb</div><div class='add'>+</div><div class='add'>+When an option is found, the given argument is yielded.</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby required_argument.rb --help</div><div class='add'>+  Usage: required_argument [options]</div><div class='add'>+      -x, --xxx XXX                    Required argument via short name</div><div class='add'>+      -y, --y YYY                      Required argument via long name</div><div class='add'>+  $ ruby required_argument.rb -x AAA</div><div class='add'>+  ["--xxx", "AAA"]</div><div class='add'>+  $ ruby required_argument.rb -y BBB</div><div class='add'>+  ["--yyy", "BBB"]</div><div class='add'>+</div><div class='add'>+Omitting a required argument raises an error:</div><div class='add'>+</div><div class='add'>+  $ ruby required_argument.rb -x</div><div class='add'>+  required_argument.rb:9:in `&lt;main&gt;': missing argument: -x (OptionParser::MissingArgument)</div><div class='add'>+</div><div class='add'>+==== Option with Optional Argument</div><div class='add'>+</div><div class='add'>+Specify an optional argument for an option by adding a dummy word</div><div class='add'>+enclosed in square brackets to its name definition.</div><div class='add'>+</div><div class='add'>+File +optional_argument.rb+ defines two options;</div><div class='add'>+each has an optional argument because the name definition has a following dummy word</div><div class='add'>+in square brackets.</div><div class='add'>+</div><div class='add'>+  :include: ruby/optional_argument.rb</div><div class='add'>+</div><div class='add'>+When an option with an argument is found, the given argument yielded.</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby optional_argument.rb --help</div><div class='add'>+  Usage: optional_argument [options]</div><div class='add'>+      -x, --xxx [XXX]                  Optional argument via short  name</div><div class='add'>+      -y, --yyy [YYY]                  Optional argument via long name</div><div class='add'>+  $ ruby optional_argument.rb -x AAA</div><div class='add'>+  ["--xxx", "AAA"]</div><div class='add'>+  $ ruby optional_argument.rb -y BBB</div><div class='add'>+  ["--yyy", "BBB"]</div><div class='add'>+</div><div class='add'>+Omitting an optional argument does not raise an error.</div><div class='add'>+</div><div class='add'>+=== Argument Values</div><div class='add'>+</div><div class='add'>+Permissible argument values may be restricted</div><div class='add'>+either by specifying explicit values</div><div class='add'>+or by providing a pattern that the given value must match.</div><div class='add'>+</div><div class='add'>+==== Explicit Argument Values</div><div class='add'>+</div><div class='add'>+You can specify argument values in either of two ways:</div><div class='add'>+</div><div class='add'>+- Specify values an array of strings.</div><div class='add'>+- Specify values a hash.</div><div class='add'>+</div><div class='add'>+===== Explicit Values in Array</div><div class='add'>+</div><div class='add'>+You can specify explicit argument values in an array of strings.</div><div class='add'>+The argument value must be one of those strings, or an unambiguous abbreviation.</div><div class='add'>+</div><div class='add'>+File +explicit_array_values.rb+ defines options with explicit argument values.</div><div class='add'>+</div><div class='add'>+  :include: ruby/explicit_array_values.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby explicit_array_values.rb --help</div><div class='add'>+  Usage: explicit_array_values [options]</div><div class='add'>+      -xXXX                            Values for required argument</div><div class='add'>+      -y [YYY]                         Values for optional argument</div><div class='add'>+  $ ruby explicit_array_values.rb -x</div><div class='add'>+  explicit_array_values.rb:9:in `&lt;main&gt;': missing argument: -x (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby explicit_array_values.rb -x foo</div><div class='add'>+  ["-x", "foo"]</div><div class='add'>+  $ ruby explicit_array_values.rb -x f</div><div class='add'>+  ["-x", "foo"]</div><div class='add'>+  $ ruby explicit_array_values.rb -x bar</div><div class='add'>+  ["-x", "bar"]</div><div class='add'>+  $ ruby explicit_array_values.rb -y ba</div><div class='add'>+  explicit_array_values.rb:9:in `&lt;main&gt;': ambiguous argument: -y ba (OptionParser::AmbiguousArgument)</div><div class='add'>+  $ ruby explicit_array_values.rb -x baz</div><div class='add'>+  explicit_array_values.rb:9:in `&lt;main&gt;': invalid argument: -x baz (OptionParser::InvalidArgument)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+===== Explicit Values in Hash</div><div class='add'>+</div><div class='add'>+You can specify explicit argument values in a hash with string keys.</div><div class='add'>+The value passed must be one of those keys, or an unambiguous abbreviation;</div><div class='add'>+the value yielded will be the value for that key.</div><div class='add'>+</div><div class='add'>+File +explicit_hash_values.rb+ defines options with explicit argument values.</div><div class='add'>+</div><div class='add'>+  :include: ruby/explicit_hash_values.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby explicit_hash_values.rb --help</div><div class='add'>+  Usage: explicit_hash_values [options]</div><div class='add'>+      -xXXX                            Values for required argument</div><div class='add'>+      -y [YYY]                         Values for optional argument</div><div class='add'>+  $ ruby explicit_hash_values.rb -x</div><div class='add'>+  explicit_hash_values.rb:9:in `&lt;main&gt;': missing argument: -x (OptionParser::MissingArgument)</div><div class='add'>+  $ ruby explicit_hash_values.rb -x foo</div><div class='add'>+  ["-x", 0]</div><div class='add'>+  $ ruby explicit_hash_values.rb -x f</div><div class='add'>+  ["-x", 0]</div><div class='add'>+  $ ruby explicit_hash_values.rb -x bar</div><div class='add'>+  ["-x", 1]</div><div class='add'>+  $ ruby explicit_hash_values.rb -x baz</div><div class='add'>+  explicit_hash_values.rb:9:in `&lt;main&gt;': invalid argument: -x baz (OptionParser::InvalidArgument)</div><div class='add'>+  $ ruby explicit_hash_values.rb -y</div><div class='add'>+  ["-y", nil]</div><div class='add'>+  $ ruby explicit_hash_values.rb -y baz</div><div class='add'>+  ["-y", 2]</div><div class='add'>+  $ ruby explicit_hash_values.rb -y bat</div><div class='add'>+  ["-y", 3]</div><div class='add'>+  $ ruby explicit_hash_values.rb -y ba</div><div class='add'>+  explicit_hash_values.rb:9:in `&lt;main&gt;': ambiguous argument: -y ba (OptionParser::AmbiguousArgument)</div><div class='add'>+  $ ruby explicit_hash_values.rb -y bam</div><div class='add'>+  ["-y", nil]</div><div class='add'>+</div><div class='add'>+==== Argument Value Patterns</div><div class='add'>+</div><div class='add'>+You can restrict permissible argument values</div><div class='add'>+by specifying a Regexp that the given argument must match.</div><div class='add'>+</div><div class='add'>+File +matched_values.rb+ defines options with matched argument values.</div><div class='add'>+</div><div class='add'>+  :include: ruby/matched_values.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby matched_values.rb --help</div><div class='add'>+  Usage: matched_values [options]</div><div class='add'>+          --xxx XXX                    Matched values</div><div class='add'>+  $ ruby matched_values.rb --xxx foo</div><div class='add'>+  ["--xxx", "foo"]</div><div class='add'>+  $ ruby matched_values.rb --xxx FOO</div><div class='add'>+  ["--xxx", "FOO"]</div><div class='add'>+  $ ruby matched_values.rb --xxx bar</div><div class='add'>+  matched_values.rb:6:in `&lt;main&gt;': invalid argument: --xxx bar (OptionParser::InvalidArgument)</div><div class='add'>+</div><div class='add'>+=== Keyword Argument +into+</div><div class='add'>+</div><div class='add'>+In parsing options, you can add keyword option +into+ with a hash-like argument;</div><div class='add'>+each parsed option will be added as a name/value pair.</div><div class='add'>+</div><div class='add'>+This is useful for:</div><div class='add'>+</div><div class='add'>+- Collecting options.</div><div class='add'>+- Checking for missing options.</div><div class='add'>+- Providing default values for options.</div><div class='add'>+</div><div class='add'>+==== Collecting Options</div><div class='add'>+</div><div class='add'>+Use keyword argument +into+ to collect options.</div><div class='add'>+</div><div class='add'>+  :include: ruby/collected_options.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby collected_options.rb --help</div><div class='add'>+  Usage: into [options]</div><div class='add'>+      -x, --xxx                        Short and long, no argument</div><div class='add'>+      -y, --yyyYYY                     Short and long, required argument</div><div class='add'>+      -z, --zzz [ZZZ]                  Short and long, optional argument</div><div class='add'>+  $ ruby collected_options.rb --xxx</div><div class='add'>+  {:xxx=&gt;true}</div><div class='add'>+  $ ruby collected_options.rb --xxx --yyy FOO</div><div class='add'>+  {:xxx=&gt;true, :yyy=&gt;"FOO"}</div><div class='add'>+  $ ruby collected_options.rb --xxx --yyy FOO --zzz Bar</div><div class='add'>+  {:xxx=&gt;true, :yyy=&gt;"FOO", :zzz=&gt;"Bar"}</div><div class='add'>+  $ ruby collected_options.rb --xxx --yyy FOO --yyy BAR</div><div class='add'>+  {:xxx=&gt;true, :yyy=&gt;"BAR"}</div><div class='add'>+</div><div class='add'>+Note in the last execution that the argument value for option &lt;tt&gt;--yyy&lt;/tt&gt;</div><div class='add'>+was overwritten.</div><div class='add'>+</div><div class='add'>+==== Checking for Missing Options</div><div class='add'>+</div><div class='add'>+Use the collected options to check for missing options.</div><div class='add'>+</div><div class='add'>+  :include: ruby/missing_options.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby missing_options.rb --help</div><div class='add'>+  Usage: missing_options [options]</div><div class='add'>+      -x, --xxx                        Short and long, no argument</div><div class='add'>+      -y, --yyyYYY                     Short and long, required argument</div><div class='add'>+      -z, --zzz [ZZZ]                  Short and long, optional argument</div><div class='add'>+  $ ruby missing_options.rb --yyy FOO</div><div class='add'>+  missing_options.rb:11:in `&lt;main&gt;': Missing required options: [:xxx, :zzz] (RuntimeError)</div><div class='add'>+</div><div class='add'>+==== Default Values for Options</div><div class='add'>+</div><div class='add'>+Initialize the +into+ argument to define default values for options.</div><div class='add'>+</div><div class='add'>+  :include: ruby/default_values.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby default_values.rb --help</div><div class='add'>+  Usage: default_values [options]</div><div class='add'>+      -x, --xxx                        Short and long, no argument</div><div class='add'>+      -y, --yyyYYY                     Short and long, required argument</div><div class='add'>+      -z, --zzz [ZZZ]                  Short and long, optional argument</div><div class='add'>+  $ ruby default_values.rb --yyy FOO</div><div class='add'>+  {:yyy=&gt;"FOO", :zzz=&gt;"BBB"}</div><div class='add'>+</div><div class='add'>+=== Argument Converters</div><div class='add'>+</div><div class='add'>+An option can specify that its argument is to be converted</div><div class='add'>+from the default \String to an instance of another class.</div><div class='add'>+There are a number of built-in converters.</div><div class='add'>+</div><div class='add'>+Example: File +date.rb+</div><div class='add'>+defines an option whose argument is to be converted to a \Date object.</div><div class='add'>+The argument is converted by method Date#parse.</div><div class='add'>+</div><div class='add'>+  :include: ruby/date.rb</div><div class='add'>+</div><div class='add'>+Executions:</div><div class='add'>+</div><div class='add'>+  $ ruby date.rb --date 2001-02-03</div><div class='add'>+  [#&lt;Date: 2001-02-03 ((2451944j,0s,0n),+0s,2299161j)&gt;, Date]</div><div class='add'>+  $ ruby date.rb --date 20010203</div><div class='add'>+  [#&lt;Date: 2001-02-03 ((2451944j,0s,0n),+0s,2299161j)&gt;, Date]</div><div class='add'>+  $ ruby date.rb --date "3rd Feb 2001"</div><div class='add'>+  [#&lt;Date: 2001-02-03 ((2451944j,0s,0n),+0s,2299161j)&gt;, Date]</div><div class='add'>+</div><div class='add'>+You can also define custom converters.</div><div class='add'>+See {Argument Converters}[./argument_converters.rdoc]</div><div class='add'>+for both built-in and custom converters.</div><div class='add'>+</div><div class='add'>+=== Help</div><div class='add'>+</div><div class='add'>+\OptionParser makes automatically generated help text available.</div><div class='add'>+</div><div class='add'>+The help text consists of:</div><div class='add'>+</div><div class='add'>+- A banner, showing the usage.</div><div class='add'>+- Option short and long names.</div><div class='add'>+- Option dummy argument names.</div><div class='add'>+- Option descriptions.</div><div class='add'>+</div><div class='add'>+Example code:</div><div class='add'>+</div><div class='add'>+  :include: ruby/help.rb</div><div class='add'>+</div><div class='add'>+The option names and dummy argument names are defined as described above.</div><div class='add'>+</div><div class='add'>+The option description consists of the strings that are not themselves option names;</div><div class='add'>+An option can have more than one description string.</div><div class='add'>+Execution:</div><div class='add'>+</div><div class='add'>+  Usage: help [options]</div><div class='add'>+      -x, --xxx                        Adipiscing elit. Aenean commodo ligula eget.</div><div class='add'>+                                       Aenean massa. Cum sociis natoque penatibus</div><div class='add'>+      -y, --yyy YYY                    Lorem ipsum dolor sit amet, consectetuer.</div><div class='add'>+      -z, --zzz [ZZZ]                  Et magnis dis parturient montes, nascetur</div><div class='add'>+                                       ridiculus mus. Donec quam felis, ultricies</div><div class='add'>+                                       nec, pellentesque eu, pretium quis, sem.</div><div class='add'>+</div><div class='add'>+The program name is included in the default banner:</div><div class='add'>+&lt;tt&gt;Usage: #{program_name} [options]&lt;/tt&gt;;</div><div class='add'>+you can change the program name.</div><div class='add'>+</div><div class='add'>+  :include: ruby/help_program_name.rb</div><div class='add'>+</div><div class='add'>+Execution:</div><div class='add'>+</div><div class='add'>+  $ ruby help_program_name.rb --help</div><div class='add'>+  Usage: help_program_name.rb [options]</div><div class='add'>+</div><div class='add'>+You can also change the entire banner.</div><div class='add'>+</div><div class='add'>+  :include: ruby/help_banner.rb</div><div class='add'>+</div><div class='add'>+Execution:</div><div class='add'>+</div><div class='add'>+  $ ruby help_banner.rb --help</div><div class='add'>+  Usage: ruby help_banner.rb</div><div class='add'>+</div><div class='add'>+By default, the option names are indented 4 spaces</div><div class='add'>+and the width of the option-names field is 32 spaces.</div><div class='add'>+</div><div class='add'>+You can change these values, along with the banner,</div><div class='add'>+by passing parameters to OptionParser.new.</div><div class='add'>+</div><div class='add'>+  :include: ruby/help_format.rb</div><div class='add'>+</div><div class='add'>+Execution:</div><div class='add'>+</div><div class='add'>+  $ ruby help_format.rb --help</div><div class='add'>+  ruby help_format.rb [options]</div><div class='add'>+    -x, --xxx            Adipiscing elit. Aenean commodo ligula eget.</div><div class='add'>+                         Aenean massa. Cum sociis natoque penatibus</div><div class='add'>+    -y, --yyy YYY        Lorem ipsum dolor sit amet, consectetuer.</div><div class='add'>+    -z, --zzz [ZZZ]      Et magnis dis parturient montes, nascetur</div><div class='add'>+                         ridiculus mus. Donec quam felis, ultricies</div><div class='add'>+                         nec, pellentesque eu, pretium quis, sem.</div><div class='add'>+</div><div class='add'>+=== Top List and Base List</div><div class='add'>+</div><div class='add'>+An \OptionParser object maintains a stack of \OptionParser::List objects,</div><div class='add'>+each of which has a collection of zero or more options.</div><div class='add'>+It is unlikely that you'll need to add or take away from that stack.</div><div class='add'>+</div><div class='add'>+The stack includes:</div><div class='add'>+</div><div class='add'>+- The &lt;em&gt;top list&lt;/em&gt;, given by \OptionParser#top.</div><div class='add'>+- The &lt;em&gt;base list&lt;/em&gt;, given by \OptionParser#base.</div><div class='add'>+</div><div class='add'>+When \OptionParser builds its help text, the options in the top list</div><div class='add'>+precede those in the base list.</div><div class='add'>+</div><div class='add'>+=== Defining Options</div><div class='add'>+</div><div class='add'>+Option-defining methods allow you to create an option, and also append/prepend it</div><div class='add'>+to the top list or append it to the base list.</div><div class='add'>+</div><div class='add'>+Each of these next three methods accepts a sequence of parameter arguments and a block,</div><div class='add'>+creates an option object using method \Option#make_switch (see below),</div><div class='add'>+and returns the created option:</div><div class='add'>+</div><div class='add'>+- \Method \OptionParser#define appends the created option to the top list.</div><div class='add'>+</div><div class='add'>+- \Method \OptionParser#define_head prepends the created option to the top list.</div><div class='add'>+</div><div class='add'>+- \Method \OptionParser#define_tail appends the created option to the base list.</div><div class='add'>+</div><div class='add'>+These next three methods are identical to the three above,</div><div class='add'>+except for their return values:</div><div class='add'>+</div><div class='add'>+- \Method \OptionParser#on is identical to method \OptionParser#define,</div><div class='add'>+  except that it returns the parser object +self+.</div><div class='add'>+</div><div class='add'>+- \Method \OptionParser#on_head is identical to method \OptionParser#define_head,</div><div class='add'>+  except that it returns the parser object +self+.</div><div class='add'>+</div><div class='add'>+- \Method \OptionParser#on_tail is identical to method \OptionParser#define_tail,</div><div class='add'>+  except that it returns the parser object +self+.</div><div class='add'>+</div><div class='add'>+Though you may never need to call it directly,</div><div class='add'>+here's the core method for defining an option:</div><div class='add'>+</div><div class='add'>+- \Method \OptionParser#make_switch accepts an array of parameters and a block.</div><div class='add'>+  See {Parameters for New Options}[optparse/option_params.rdoc].</div><div class='add'>+  This method is unlike others here in that it:</div><div class='add'>+  - Accepts an &lt;em&gt;array of parameters&lt;/em&gt;;</div><div class='add'>+    others accept a &lt;em&gt;sequence of parameter arguments&lt;/em&gt;.</div><div class='add'>+  - Returns an array containing the created option object,</div><div class='add'>+    option names, and other values;</div><div class='add'>+    others return either the created option object</div><div class='add'>+    or the parser object +self+.</div><div class='add'>+</div><div class='add'>+=== Parsing</div><div class='add'>+</div><div class='add'>+\OptionParser has six instance methods for parsing.</div><div class='add'>+</div><div class='add'>+Three have names ending with a "bang" (&lt;tt&gt;!&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+- parse!</div><div class='add'>+- order!</div><div class='add'>+- permute!</div><div class='add'>+</div><div class='add'>+Each of these methods:</div><div class='add'>+</div><div class='add'>+- Accepts an optional array of string arguments +argv+;</div><div class='add'>+  if not given, +argv+ defaults to the value of OptionParser#default_argv,</div><div class='add'>+  whose initial value is ARGV.</div><div class='add'>+- Accepts an optional keyword argument +into+</div><div class='add'>+  (see {Keyword Argument into}[#label-Keyword+Argument+into]).</div><div class='add'>+- Returns +argv+, possibly with some elements removed.</div><div class='add'>+</div><div class='add'>+The three other methods have names _not_ ending with a "bang":</div><div class='add'>+</div><div class='add'>+- parse</div><div class='add'>+- order</div><div class='add'>+- permute</div><div class='add'>+</div><div class='add'>+Each of these methods:</div><div class='add'>+</div><div class='add'>+- Accepts an array of string arguments</div><div class='add'>+  _or_ zero or more string arguments.</div><div class='add'>+- Accepts an optional keyword argument +into+ and its value _into_.</div><div class='add'>+  (see {Keyword Argument into}[#label-Keyword+Argument+into]).</div><div class='add'>+- Returns +argv+, possibly with some elements removed.</div><div class='add'>+</div><div class='add'>+==== \Method parse!</div><div class='add'>+</div><div class='add'>+\Method parse!:</div><div class='add'>+</div><div class='add'>+- Accepts an optional array of string arguments +argv+;</div><div class='add'>+  if not given, +argv+ defaults to the value of OptionParser#default_argv,</div><div class='add'>+  whose initial value is ARGV.</div><div class='add'>+- Accepts an optional keyword argument +into+</div><div class='add'>+  (see {Keyword Argument into}[#label-Keyword+Argument+into]).</div><div class='add'>+- Returns +argv+, possibly with some elements removed.</div><div class='add'>+</div><div class='add'>+The method processes the elements in +argv+ beginning at &lt;tt&gt;argv[0]&lt;/tt&gt;,</div><div class='add'>+and ending, by default, at the end.</div><div class='add'>+</div><div class='add'>+Otherwise processing ends and the method returns when:</div><div class='add'>+</div><div class='add'>+- The terminator argument &lt;tt&gt;--&lt;/tt&gt; is found;</div><div class='add'>+  the terminator argument is removed before the return.</div><div class='add'>+- Environment variable +POSIXLY_CORRECT+ is defined</div><div class='add'>+  and a non-option argument is found;</div><div class='add'>+  the non-option argument is not removed.</div><div class='add'>+  Note that the _value_ of that variable does not matter,</div><div class='add'>+  as only its existence is checked.</div><div class='add'>+</div><div class='add'>+File +parse_bang.rb+:</div><div class='add'>+</div><div class='add'>+  :include: ruby/parse_bang.rb</div><div class='add'>+</div><div class='add'>+Help:</div><div class='add'>+</div><div class='add'>+  $ ruby parse_bang.rb --help</div><div class='add'>+  Usage: parse_bang [options]</div><div class='add'>+          --xxx</div><div class='add'>+          --yyy YYY</div><div class='add'>+          --zzz [ZZZ]</div><div class='add'>+</div><div class='add'>+Default behavior:</div><div class='add'>+</div><div class='add'>+  $ ruby parse_bang.rb input_file.txt output_file.txt --xxx --yyy FOO --zzz BAR</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  ["--yyy", "FOO"]</div><div class='add'>+  ["--zzz", "BAR"]</div><div class='add'>+  Returned: ["input_file.txt", "output_file.txt"] (Array)</div><div class='add'>+</div><div class='add'>+Processing ended by terminator argument:</div><div class='add'>+</div><div class='add'>+  $ ruby parse_bang.rb input_file.txt output_file.txt --xxx --yyy FOO -- --zzz BAR</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  ["--yyy", "FOO"]</div><div class='add'>+  Returned: ["input_file.txt", "output_file.txt", "--zzz", "BAR"] (Array)</div><div class='add'>+</div><div class='add'>+Processing ended by non-option found when +POSIXLY_CORRECT+ is defined:</div><div class='add'>+</div><div class='add'>+  $ POSIXLY_CORRECT=true ruby parse_bang.rb --xxx input_file.txt output_file.txt -yyy FOO</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  Returned: ["input_file.txt", "output_file.txt", "-yyy", "FOO"] (Array)</div><div class='add'>+</div><div class='add'>+==== \Method parse</div><div class='add'>+</div><div class='add'>+\Method parse:</div><div class='add'>+</div><div class='add'>+- Accepts an array of string arguments</div><div class='add'>+  _or_ zero or more string arguments.</div><div class='add'>+- Accepts an optional keyword argument +into+ and its value _into_.</div><div class='add'>+  (see {Keyword Argument into}[#label-Keyword+Argument+into]).</div><div class='add'>+- Returns +argv+, possibly with some elements removed.</div><div class='add'>+</div><div class='add'>+If given an array +ary+, the method forms array +argv+ as &lt;tt&gt;ary.dup&lt;/tt&gt;.</div><div class='add'>+If given zero or more string arguments, those arguments are formed</div><div class='add'>+into array +argv+.</div><div class='add'>+</div><div class='add'>+The method calls</div><div class='add'>+</div><div class='add'>+  parse!(argv, into: into)</div><div class='add'>+</div><div class='add'>+Note that environment variable +POSIXLY_CORRECT+</div><div class='add'>+and the terminator argument &lt;tt&gt;--&lt;/tt&gt; are honored.</div><div class='add'>+</div><div class='add'>+File +parse.rb+:</div><div class='add'>+</div><div class='add'>+  :include: ruby/parse.rb</div><div class='add'>+</div><div class='add'>+Help:</div><div class='add'>+</div><div class='add'>+  $ ruby parse.rb --help</div><div class='add'>+  Usage: parse [options]</div><div class='add'>+          --xxx</div><div class='add'>+          --yyy YYY</div><div class='add'>+          --zzz [ZZZ]</div><div class='add'>+</div><div class='add'>+Default behavior:</div><div class='add'>+</div><div class='add'>+  $ ruby parse.rb input_file.txt output_file.txt --xxx --yyy FOO --zzz BAR</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  ["--yyy", "FOO"]</div><div class='add'>+  ["--zzz", "BAR"]</div><div class='add'>+  Returned: ["input_file.txt", "output_file.txt"] (Array)</div><div class='add'>+</div><div class='add'>+Processing ended by terminator argument:</div><div class='add'>+</div><div class='add'>+  $ ruby parse.rb input_file.txt output_file.txt --xxx --yyy FOO -- --zzz BAR</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  ["--yyy", "FOO"]</div><div class='add'>+  Returned: ["input_file.txt", "output_file.txt", "--zzz", "BAR"] (Array)</div><div class='add'>+</div><div class='add'>+Processing ended by non-option found when +POSIXLY_CORRECT+ is defined:</div><div class='add'>+</div><div class='add'>+  $ POSIXLY_CORRECT=true ruby parse.rb --xxx input_file.txt output_file.txt -yyy FOO</div><div class='add'>+  ["--xxx", true]</div><div class='add'>+  Returned: ["input_file.txt", "output_file.txt", "-yyy", "FOO"] (Array)</div><div class='add'>+</div><div class='add'>+==== \Method order!</div><div class='add'>+</div><div class='add'>+Calling method OptionParser#order! gives exactly the same result as</div><div class='add'>+calling method OptionParser#parse! with environment variable</div><div class='add'>++POSIXLY_CORRECT+ defined.</div><div class='add'>+</div><div class='add'>+==== \Method order</div><div class='add'>+</div><div class='add'>+Calling method OptionParser#order gives exactly the same result as</div><div class='add'>+calling method OptionParser#parse with environment variable</div><div class='add'>++POSIXLY_CORRECT+ defined.</div><div class='add'>+</div><div class='add'>+==== \Method permute!</div><div class='add'>+</div><div class='add'>+Calling method OptionParser#permute! gives exactly the same result as</div><div class='add'>+calling method OptionParser#parse! with environment variable</div><div class='add'>++POSIXLY_CORRECT+ _not_ defined.</div><div class='add'>+</div><div class='add'>+==== \Method permute</div><div class='add'>+</div><div class='add'>+Calling method OptionParser#permute gives exactly the same result as</div><div class='add'>+calling method OptionParser#parse with environment variable</div><div class='add'>++POSIXLY_CORRECT+ _not_ defined.</div><div class='head'>diff --git a/doc/packed_data.rdoc b/doc/packed_data.rdoc<br/>new file mode 100644<br/>index 0000000000..ec13b24c69<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/packed_data.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/packed_data.rdoc</a></div><div class='hunk'>@@ -0,0 +1,590 @@</div><div class='add'>+== Packed \Data</div><div class='add'>+</div><div class='add'>+Certain Ruby core methods deal with packing and unpacking data:</div><div class='add'>+</div><div class='add'>+- \Method Array#pack:</div><div class='add'>+  Formats each element in array +self+ into a binary string;</div><div class='add'>+  returns that string.</div><div class='add'>+- \Method String#unpack:</div><div class='add'>+  Extracts data from string +self+,</div><div class='add'>+  forming objects that become the elements of a new array;</div><div class='add'>+  returns that array.</div><div class='add'>+- \Method String#unpack1:</div><div class='add'>+  Does the same, but unpacks and returns only the first extracted object.</div><div class='add'>+</div><div class='add'>+Each of these methods accepts a string +template+,</div><div class='add'>+consisting of zero or more _directive_ characters,</div><div class='add'>+each followed by zero or more _modifier_ characters.</div><div class='add'>+</div><div class='add'>+Examples (directive &lt;tt&gt;'C'&lt;/tt&gt; specifies 'unsigned character'):</div><div class='add'>+</div><div class='add'>+  [65].pack('C')      # =&gt; "A"  # One element, one directive.</div><div class='add'>+  [65, 66].pack('CC') # =&gt; "AB" # Two elements, two directives.</div><div class='add'>+  [65, 66].pack('C')  # =&gt; "A"  # Extra element is ignored.</div><div class='add'>+  [65].pack('')       # =&gt; ""   # No directives.</div><div class='add'>+  [65].pack('CC')               # Extra directive raises ArgumentError.</div><div class='add'>+</div><div class='add'>+  'A'.unpack('C')   # =&gt; [65]      # One character, one directive.</div><div class='add'>+  'AB'.unpack('CC') # =&gt; [65, 66]  # Two characters, two directives.</div><div class='add'>+  'AB'.unpack('C')  # =&gt; [65]      # Extra character is ignored.</div><div class='add'>+  'A'.unpack('CC')  # =&gt; [65, nil] # Extra directive generates nil.</div><div class='add'>+  'AB'.unpack('')   # =&gt; []        # No directives.</div><div class='add'>+</div><div class='add'>+The string +template+ may contain any mixture of valid directives</div><div class='add'>+(directive &lt;tt&gt;'c'&lt;/tt&gt; specifies 'signed character'):</div><div class='add'>+</div><div class='add'>+  [65, -1].pack('cC')  # =&gt; "A\xFF"</div><div class='add'>+  "A\xFF".unpack('cC') # =&gt; [65, 255]</div><div class='add'>+</div><div class='add'>+The string +template+ may contain whitespace (which is ignored)</div><div class='add'>+and comments, each of which begins with character &lt;tt&gt;'#'&lt;/tt&gt;</div><div class='add'>+and continues up to and including the next following newline:</div><div class='add'>+</div><div class='add'>+  [0,1].pack("  C  #foo \n  C  ")    # =&gt; "\x00\x01"</div><div class='add'>+  "\0\1".unpack("  C  #foo \n  C  ") # =&gt; [0, 1]</div><div class='add'>+</div><div class='add'>+Any directive may be followed by either of these modifiers:</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'*'&lt;/tt&gt; - The directive is to be applied as many times as needed:</div><div class='add'>+</div><div class='add'>+    [65, 66].pack('C*') # =&gt; "AB"</div><div class='add'>+    'AB'.unpack('C*')   # =&gt; [65, 66]</div><div class='add'>+</div><div class='add'>+- Integer +count+ - The directive is to be applied +count+ times:</div><div class='add'>+</div><div class='add'>+    [65, 66].pack('C2') # =&gt; "AB"</div><div class='add'>+    [65, 66].pack('C3') # Raises ArgumentError.</div><div class='add'>+    'AB'.unpack('C2')   # =&gt; [65, 66]</div><div class='add'>+    'AB'.unpack('C3')   # =&gt; [65, 66, nil]</div><div class='add'>+</div><div class='add'>+  Note: Directives in &lt;tt&gt;%w[A a Z m]&lt;/tt&gt; use +count+ differently;</div><div class='add'>+  see {String Directives}[rdoc-ref:packed_data.rdoc@String+Directives].</div><div class='add'>+</div><div class='add'>+If elements don't fit the provided directive, only least significant bits are encoded:</div><div class='add'>+</div><div class='add'>+    [257].pack("C").unpack("C") # =&gt; [1]</div><div class='add'>+</div><div class='add'>+=== Packing \Method</div><div class='add'>+</div><div class='add'>+\Method Array#pack accepts optional keyword argument</div><div class='add'>++buffer+ that specifies the target string (instead of a new string):</div><div class='add'>+</div><div class='add'>+  [65, 66].pack('C*', buffer: 'foo') # =&gt; "fooAB"</div><div class='add'>+</div><div class='add'>+The method can accept a block:</div><div class='add'>+</div><div class='add'>+  # Packed string is passed to the block.</div><div class='add'>+  [65, 66].pack('C*') {|s| p s }    # =&gt; "AB"</div><div class='add'>+</div><div class='add'>+=== Unpacking Methods</div><div class='add'>+</div><div class='add'>+Methods String#unpack and String#unpack1 each accept</div><div class='add'>+an optional keyword argument +offset+ that specifies an offset</div><div class='add'>+into the string:</div><div class='add'>+</div><div class='add'>+  'ABC'.unpack('C*', offset: 1)  # =&gt; [66, 67]</div><div class='add'>+  'ABC'.unpack1('C*', offset: 1) # =&gt; 66</div><div class='add'>+</div><div class='add'>+Both methods can accept a block:</div><div class='add'>+</div><div class='add'>+  # Each unpacked object is passed to the block.</div><div class='add'>+  ret = []</div><div class='add'>+  "ABCD".unpack("C*") {|c| ret &lt;&lt; c }</div><div class='add'>+  ret # =&gt; [65, 66, 67, 68]</div><div class='add'>+</div><div class='add'>+  # The single unpacked object is passed to the block.</div><div class='add'>+  'AB'.unpack1('C*') {|ele| p ele } # =&gt; 65</div><div class='add'>+</div><div class='add'>+=== \Integer Directives</div><div class='add'>+</div><div class='add'>+Each integer directive specifies the packing or unpacking</div><div class='add'>+for one element in the input or output array.</div><div class='add'>+</div><div class='add'>+==== 8-Bit \Integer Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'c'&lt;/tt&gt; - 8-bit signed integer</div><div class='add'>+  (like C &lt;tt&gt;signed char&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    [0, 1, 255].pack('c*')  # =&gt; "\x00\x01\xFF"</div><div class='add'>+    s = [0, 1, -1].pack('c*') # =&gt; "\x00\x01\xFF"</div><div class='add'>+    s.unpack('c*') # =&gt; [0, 1, -1]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'C'&lt;/tt&gt; - 8-bit signed integer</div><div class='add'>+  (like C &lt;tt&gt;unsigned char&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    [0, 1, 255].pack('C*')    # =&gt; "\x00\x01\xFF"</div><div class='add'>+    s = [0, 1, -1].pack('C*') # =&gt; "\x00\x01\xFF"</div><div class='add'>+    s.unpack('C*')            # =&gt; [0, 1, 255]</div><div class='add'>+</div><div class='add'>+==== 16-Bit \Integer Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'s'&lt;/tt&gt; - 16-bit signed integer, native-endian</div><div class='add'>+  (like C &lt;tt&gt;int16_t&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    [513, -514].pack('s*')      # =&gt; "\x01\x02\xFE\xFD"</div><div class='add'>+    s = [513, 65022].pack('s*') # =&gt; "\x01\x02\xFE\xFD"</div><div class='add'>+    s.unpack('s*')              # =&gt; [513, -514]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'S'&lt;/tt&gt; - 16-bit unsigned integer, native-endian</div><div class='add'>+  (like C &lt;tt&gt;uint16_t&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    [513, -514].pack('S*')      # =&gt; "\x01\x02\xFE\xFD"</div><div class='add'>+    s = [513, 65022].pack('S*') # =&gt; "\x01\x02\xFE\xFD"</div><div class='add'>+    s.unpack('S*')              # =&gt; [513, 65022]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'n'&lt;/tt&gt; - 16-bit network integer, big-endian:</div><div class='add'>+</div><div class='add'>+    s = [0, 1, -1, 32767, -32768, 65535].pack('n*')</div><div class='add'>+    # =&gt; "\x00\x00\x00\x01\xFF\xFF\x7F\xFF\x80\x00\xFF\xFF"</div><div class='add'>+    s.unpack('n*')</div><div class='add'>+    # =&gt; [0, 1, 65535, 32767, 32768, 65535]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'v'&lt;/tt&gt; - 16-bit VAX integer, little-endian:</div><div class='add'>+</div><div class='add'>+    s = [0, 1, -1, 32767, -32768, 65535].pack('v*')</div><div class='add'>+    # =&gt; "\x00\x00\x01\x00\xFF\xFF\xFF\x7F\x00\x80\xFF\xFF"</div><div class='add'>+    s.unpack('v*')</div><div class='add'>+    # =&gt; [0, 1, 65535, 32767, 32768, 65535]</div><div class='add'>+</div><div class='add'>+==== 32-Bit \Integer Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'l'&lt;/tt&gt; - 32-bit signed integer, native-endian</div><div class='add'>+  (like C &lt;tt&gt;int32_t&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    s = [67305985, -50462977].pack('l*')</div><div class='add'>+    # =&gt; "\x01\x02\x03\x04\xFF\xFE\xFD\xFC"</div><div class='add'>+    s.unpack('l*')</div><div class='add'>+    # =&gt; [67305985, -50462977]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'L'&lt;/tt&gt; - 32-bit unsigned integer, native-endian</div><div class='add'>+  (like C &lt;tt&gt;uint32_t&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    s = [67305985, 4244504319].pack('L*')</div><div class='add'>+    # =&gt; "\x01\x02\x03\x04\xFF\xFE\xFD\xFC"</div><div class='add'>+    s.unpack('L*')</div><div class='add'>+    # =&gt; [67305985, 4244504319]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'N'&lt;/tt&gt; - 32-bit network integer, big-endian:</div><div class='add'>+</div><div class='add'>+    s = [0,1,-1].pack('N*')</div><div class='add'>+    # =&gt; "\x00\x00\x00\x00\x00\x00\x00\x01\xFF\xFF\xFF\xFF"</div><div class='add'>+    s.unpack('N*')</div><div class='add'>+    # =&gt; [0, 1, 4294967295]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'V'&lt;/tt&gt; - 32-bit VAX integer, little-endian:</div><div class='add'>+</div><div class='add'>+    s = [0,1,-1].pack('V*')</div><div class='add'>+    # =&gt; "\x00\x00\x00\x00\x01\x00\x00\x00\xFF\xFF\xFF\xFF"</div><div class='add'>+    s.unpack('v*')</div><div class='add'>+    # =&gt; [0, 0, 1, 0, 65535, 65535]</div><div class='add'>+</div><div class='add'>+==== 64-Bit \Integer Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'q'&lt;/tt&gt; - 64-bit signed integer, native-endian</div><div class='add'>+  (like C &lt;tt&gt;int64_t&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    s = [578437695752307201, -506097522914230529].pack('q*')</div><div class='add'>+    # =&gt; "\x01\x02\x03\x04\x05\x06\a\b\xFF\xFE\xFD\xFC\xFB\xFA\xF9\xF8"</div><div class='add'>+    s.unpack('q*')</div><div class='add'>+    # =&gt; [578437695752307201, -506097522914230529]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'Q'&lt;/tt&gt; - 64-bit unsigned integer, native-endian</div><div class='add'>+  (like C &lt;tt&gt;uint64_t&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    s = [578437695752307201, 17940646550795321087].pack('Q*')</div><div class='add'>+    # =&gt; "\x01\x02\x03\x04\x05\x06\a\b\xFF\xFE\xFD\xFC\xFB\xFA\xF9\xF8"</div><div class='add'>+    s.unpack('Q*')</div><div class='add'>+    # =&gt; [578437695752307201, 17940646550795321087]</div><div class='add'>+</div><div class='add'>+==== Platform-Dependent \Integer Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'i'&lt;/tt&gt; - Platform-dependent width signed integer,</div><div class='add'>+  native-endian (like C &lt;tt&gt;int&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    s = [67305985, -50462977].pack('i*')</div><div class='add'>+    # =&gt; "\x01\x02\x03\x04\xFF\xFE\xFD\xFC"</div><div class='add'>+    s.unpack('i*')</div><div class='add'>+    # =&gt; [67305985, -50462977]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'I'&lt;/tt&gt; - Platform-dependent width unsigned integer,</div><div class='add'>+  native-endian (like C &lt;tt&gt;unsigned int&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    s = [67305985, -50462977].pack('I*')</div><div class='add'>+    # =&gt; "\x01\x02\x03\x04\xFF\xFE\xFD\xFC"</div><div class='add'>+    s.unpack('I*')</div><div class='add'>+    # =&gt; [67305985, 4244504319]</div><div class='add'>+</div><div class='add'>+==== Pointer Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'j'&lt;/tt&gt; - 64-bit pointer-width signed integer,</div><div class='add'>+  native-endian (like C &lt;tt&gt;intptr_t&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    s = [67305985, -50462977].pack('j*')</div><div class='add'>+    # =&gt; "\x01\x02\x03\x04\x00\x00\x00\x00\xFF\xFE\xFD\xFC\xFF\xFF\xFF\xFF"</div><div class='add'>+    s.unpack('j*')</div><div class='add'>+    # =&gt; [67305985, -50462977]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'j'&lt;/tt&gt; - 64-bit pointer-width unsigned integer,</div><div class='add'>+  native-endian (like C &lt;tt&gt;uintptr_t&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+    s = [67305985, 4244504319].pack('J*')</div><div class='add'>+    # =&gt; "\x01\x02\x03\x04\x00\x00\x00\x00\xFF\xFE\xFD\xFC\x00\x00\x00\x00"</div><div class='add'>+    s.unpack('J*')</div><div class='add'>+    # =&gt; [67305985, 4244504319]</div><div class='add'>+</div><div class='add'>+==== Other \Integer Directives</div><div class='add'>+:</div><div class='add'>+- &lt;tt&gt;'U'&lt;/tt&gt; - UTF-8 character:</div><div class='add'>+</div><div class='add'>+    s = [4194304].pack('U*')</div><div class='add'>+    # =&gt; "\xF8\x90\x80\x80\x80"</div><div class='add'>+    s.unpack('U*')</div><div class='add'>+    # =&gt; [4194304]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'w'&lt;/tt&gt; - BER-encoded integer</div><div class='add'>+  (see {BER enocding}[https://en.wikipedia.org/wiki/X.690#BER_encoding]):</div><div class='add'>+</div><div class='add'>+    s = [1073741823].pack('w*')</div><div class='add'>+    # =&gt; "\x83\xFF\xFF\xFF\x7F"</div><div class='add'>+    s.unpack('w*')</div><div class='add'>+    # =&gt; [1073741823]</div><div class='add'>+</div><div class='add'>+==== Modifiers for \Integer Directives</div><div class='add'>+</div><div class='add'>+For directives in</div><div class='add'>+&lt;tt&gt;'i'&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;'I'&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;'s'&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;'S'&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;'l'&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;'L'&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;'q'&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;'Q'&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;'j'&lt;/tt&gt;, and</div><div class='add'>+&lt;tt&gt;'J'&lt;/tt&gt;,</div><div class='add'>+these modifiers may be suffixed:</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'!'&lt;/tt&gt; or &lt;tt&gt;'_'&lt;/tt&gt; - Underlying platformâ€™s native size.</div><div class='add'>+- &lt;tt&gt;'&gt;'&lt;/tt&gt; - Big-endian.</div><div class='add'>+- &lt;tt&gt;'&lt;'&lt;/tt&gt; - Little-endian.</div><div class='add'>+</div><div class='add'>+=== \Float Directives</div><div class='add'>+</div><div class='add'>+Each float directive specifies the packing or unpacking</div><div class='add'>+for one element in the input or output array.</div><div class='add'>+</div><div class='add'>+==== Single-Precision \Float Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'F'&lt;/tt&gt; or &lt;tt&gt;'f'&lt;/tt&gt; - Native format:</div><div class='add'>+</div><div class='add'>+    s = [3.0].pack('F') # =&gt; "\x00\x00@@"</div><div class='add'>+    s.unpack('F')       # =&gt; [3.0]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'e'&lt;/tt&gt; - Little-endian:</div><div class='add'>+</div><div class='add'>+    s = [3.0].pack('e') # =&gt; "\x00\x00@@"</div><div class='add'>+    s.unpack('e')       # =&gt; [3.0]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'g'&lt;/tt&gt; - Big-endian:</div><div class='add'>+</div><div class='add'>+    s = [3.0].pack('g') # =&gt; "@@\x00\x00"</div><div class='add'>+    s.unpack('g')       # =&gt; [3.0]</div><div class='add'>+</div><div class='add'>+==== Double-Precision \Float Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'D'&lt;/tt&gt; or &lt;tt&gt;'d'&lt;/tt&gt; - Native format:</div><div class='add'>+</div><div class='add'>+    s = [3.0].pack('D') # =&gt; "\x00\x00\x00\x00\x00\x00\b@"</div><div class='add'>+    s.unpack('D')       # =&gt; [3.0]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'E'&lt;/tt&gt; - Little-endian:</div><div class='add'>+</div><div class='add'>+    s = [3.0].pack('E') # =&gt; "\x00\x00\x00\x00\x00\x00\b@"</div><div class='add'>+    s.unpack('E')       # =&gt; [3.0]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'G'&lt;/tt&gt; - Big-endian:</div><div class='add'>+</div><div class='add'>+    s = [3.0].pack('G') # =&gt; "@\b\x00\x00\x00\x00\x00\x00"</div><div class='add'>+    s.unpack('G')       # =&gt; [3.0]</div><div class='add'>+</div><div class='add'>+A float directive may be infinity or not-a-number:</div><div class='add'>+</div><div class='add'>+  inf = 1.0/0.0                  # =&gt; Infinity</div><div class='add'>+  [inf].pack('f')                # =&gt; "\x00\x00\x80\x7F"</div><div class='add'>+  "\x00\x00\x80\x7F".unpack('f') # =&gt; [Infinity]</div><div class='add'>+</div><div class='add'>+  nan = inf/inf                  # =&gt; NaN</div><div class='add'>+  [nan].pack('f')                # =&gt; "\x00\x00\xC0\x7F"</div><div class='add'>+  "\x00\x00\xC0\x7F".unpack('f') # =&gt; [NaN]</div><div class='add'>+</div><div class='add'>+=== \String Directives</div><div class='add'>+</div><div class='add'>+Each string directive specifies the packing or unpacking</div><div class='add'>+for one byte in the input or output string.</div><div class='add'>+</div><div class='add'>+==== Binary \String Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'A'&lt;/tt&gt; - Arbitrary binary string (space padded; count is width);</div><div class='add'>+  +nil+ is treated as the empty string:</div><div class='add'>+</div><div class='add'>+    ['foo'].pack('A')    # =&gt; "f"</div><div class='add'>+    ['foo'].pack('A*')   # =&gt; "foo"</div><div class='add'>+    ['foo'].pack('A2')   # =&gt; "fo"</div><div class='add'>+    ['foo'].pack('A4')   # =&gt; "foo "</div><div class='add'>+    [nil].pack('A')      # =&gt; " "</div><div class='add'>+    [nil].pack('A*')     # =&gt; ""</div><div class='add'>+    [nil].pack('A2')     # =&gt; "  "</div><div class='add'>+    [nil].pack('A4')     # =&gt; "    "</div><div class='add'>+</div><div class='add'>+    "foo\0".unpack('A')      # =&gt; ["f"]</div><div class='add'>+    "foo\0".unpack('A4')     # =&gt; ["foo"]</div><div class='add'>+    "foo\0bar".unpack('A10') # =&gt; ["foo\x00bar"] # Reads past "\0".</div><div class='add'>+    "foo ".unpack('A')       # =&gt; ["f"]</div><div class='add'>+    "foo ".unpack('A4')      # =&gt; ["foo"]</div><div class='add'>+    "foo".unpack('A4')       # =&gt; ["foo"]</div><div class='add'>+</div><div class='add'>+    russian = "\u{442 435 441 442}" # =&gt; "Ñ‚ÐµÑÑ‚"</div><div class='add'>+    russian.size         # =&gt; 4</div><div class='add'>+    russian.bytesize     # =&gt; 8</div><div class='add'>+    [russian].pack('A')  # =&gt; "\xD1"</div><div class='add'>+    [russian].pack('A*') # =&gt; "\xD1\x82\xD0\xB5\xD1\x81\xD1\x82"</div><div class='add'>+    russian.unpack('A')  # =&gt; ["\xD1"]</div><div class='add'>+    russian.unpack('A2') # =&gt; ["\xD1\x82"]</div><div class='add'>+    russian.unpack('A4') # =&gt; ["\xD1\x82\xD0\xB5"]</div><div class='add'>+    russian.unpack('A*') # =&gt; ["\xD1\x82\xD0\xB5\xD1\x81\xD1\x82"]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'a'&lt;/tt&gt; - Arbitrary binary string (null padded; count is width):</div><div class='add'>+</div><div class='add'>+    ["foo"].pack('a')    # =&gt; "f"</div><div class='add'>+    ["foo"].pack('a*')   # =&gt; "foo"</div><div class='add'>+    ["foo"].pack('a2')   # =&gt; "fo"</div><div class='add'>+    ["foo\0"].pack('a4') # =&gt; "foo\x00"</div><div class='add'>+    [nil].pack('a')      # =&gt; "\x00"</div><div class='add'>+    [nil].pack('a*')     # =&gt; ""</div><div class='add'>+    [nil].pack('a2')     # =&gt; "\x00\x00"</div><div class='add'>+    [nil].pack('a4')     # =&gt; "\x00\x00\x00\x00"</div><div class='add'>+</div><div class='add'>+    "foo\0".unpack('a')     # =&gt; ["f"]</div><div class='add'>+    "foo\0".unpack('a4')    # =&gt; ["foo\x00"]</div><div class='add'>+    "foo ".unpack('a4')     # =&gt; ["foo "]</div><div class='add'>+    "foo".unpack('a4')      # =&gt; ["foo"]</div><div class='add'>+    "foo\0bar".unpack('a4') # =&gt; ["foo\x00"] # Reads past "\0".</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'Z'&lt;/tt&gt; - Same as &lt;tt&gt;'a'&lt;/tt&gt;,</div><div class='add'>+  except that null is added or ignored with &lt;tt&gt;'*'&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+    ["foo"].pack('Z*')   # =&gt; "foo\x00"</div><div class='add'>+    [nil].pack('Z*')     # =&gt; "\x00"</div><div class='add'>+</div><div class='add'>+    "foo\0".unpack('Z*')    # =&gt; ["foo"]</div><div class='add'>+    "foo".unpack('Z*')      # =&gt; ["foo"]</div><div class='add'>+    "foo\0bar".unpack('Z*') # =&gt; ["foo"] # Does not read past "\0".</div><div class='add'>+</div><div class='add'>+==== Bit \String Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'B'&lt;/tt&gt; - Bit string (high byte first):</div><div class='add'>+</div><div class='add'>+    ['11111111' + '00000000'].pack('B*') # =&gt; "\xFF\x00"</div><div class='add'>+    ['10000000' + '01000000'].pack('B*') # =&gt; "\x80@"</div><div class='add'>+</div><div class='add'>+    ['1'].pack('B0') # =&gt; ""</div><div class='add'>+    ['1'].pack('B1') # =&gt; "\x80"</div><div class='add'>+    ['1'].pack('B2') # =&gt; "\x80\x00"</div><div class='add'>+    ['1'].pack('B3') # =&gt; "\x80\x00"</div><div class='add'>+    ['1'].pack('B4') # =&gt; "\x80\x00\x00"</div><div class='add'>+    ['1'].pack('B5') # =&gt; "\x80\x00\x00"</div><div class='add'>+    ['1'].pack('B6') # =&gt; "\x80\x00\x00\x00"</div><div class='add'>+</div><div class='add'>+    "\xff\x00".unpack("B*") # =&gt; ["1111111100000000"]</div><div class='add'>+    "\x01\x02".unpack("B*") # =&gt; ["0000000100000010"]</div><div class='add'>+</div><div class='add'>+    "".unpack("B0")     # =&gt; [""]</div><div class='add'>+    "\x80".unpack("B1") # =&gt; ["1"]</div><div class='add'>+    "\x80".unpack("B2") # =&gt; ["10"]</div><div class='add'>+    "\x80".unpack("B3") # =&gt; ["100"]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'b'&lt;/tt&gt; - Bit string (low byte first):</div><div class='add'>+</div><div class='add'>+    ['11111111' + '00000000'].pack('b*') # =&gt; "\xFF\x00"</div><div class='add'>+    ['10000000' + '01000000'].pack('b*') # =&gt; "\x01\x02"</div><div class='add'>+</div><div class='add'>+    ['1'].pack('b0') # =&gt; ""</div><div class='add'>+    ['1'].pack('b1') # =&gt; "\x01"</div><div class='add'>+    ['1'].pack('b2') # =&gt; "\x01\x00"</div><div class='add'>+    ['1'].pack('b3') # =&gt; "\x01\x00"</div><div class='add'>+    ['1'].pack('b4') # =&gt; "\x01\x00\x00"</div><div class='add'>+    ['1'].pack('b5') # =&gt; "\x01\x00\x00"</div><div class='add'>+    ['1'].pack('b6') # =&gt; "\x01\x00\x00\x00"</div><div class='add'>+</div><div class='add'>+    "\xff\x00".unpack("b*") # =&gt; ["1111111100000000"]</div><div class='add'>+    "\x01\x02".unpack("b*") # =&gt; ["1000000001000000"]</div><div class='add'>+</div><div class='add'>+    "".unpack("b0")     # =&gt; [""]</div><div class='add'>+    "\x01".unpack("b1") # =&gt; ["1"]</div><div class='add'>+    "\x01".unpack("b2") # =&gt; ["10"]</div><div class='add'>+    "\x01".unpack("b3") # =&gt; ["100"]</div><div class='add'>+</div><div class='add'>+==== Hex \String Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'H'&lt;/tt&gt; - Hex string (high nibble first):</div><div class='add'>+</div><div class='add'>+    ['10ef'].pack('H*')    # =&gt; "\x10\xEF"</div><div class='add'>+    ['10ef'].pack('H0')    # =&gt; ""</div><div class='add'>+    ['10ef'].pack('H3')    # =&gt; "\x10\xE0"</div><div class='add'>+    ['10ef'].pack('H5')    # =&gt; "\x10\xEF\x00"</div><div class='add'>+</div><div class='add'>+    ['fff'].pack('H3')    # =&gt; "\xFF\xF0"</div><div class='add'>+    ['fff'].pack('H4')    # =&gt; "\xFF\xF0"</div><div class='add'>+    ['fff'].pack('H5')    # =&gt; "\xFF\xF0\x00"</div><div class='add'>+    ['fff'].pack('H6')    # =&gt; "\xFF\xF0\x00"</div><div class='add'>+    ['fff'].pack('H7')    # =&gt; "\xFF\xF0\x00\x00"</div><div class='add'>+    ['fff'].pack('H8')    # =&gt; "\xFF\xF0\x00\x00"</div><div class='add'>+</div><div class='add'>+    "\x10\xef".unpack('H*')    # =&gt; ["10ef"]</div><div class='add'>+    "\x10\xef".unpack('H0')    # =&gt; [""]</div><div class='add'>+    "\x10\xef".unpack('H1')    # =&gt; ["1"]</div><div class='add'>+    "\x10\xef".unpack('H2')    # =&gt; ["10"]</div><div class='add'>+    "\x10\xef".unpack('H3')    # =&gt; ["10e"]</div><div class='add'>+    "\x10\xef".unpack('H4')    # =&gt; ["10ef"]</div><div class='add'>+    "\x10\xef".unpack('H5')    # =&gt; ["10ef"]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'h'&lt;/tt&gt; - Hex string (low nibble first):</div><div class='add'>+</div><div class='add'>+    ['10ef'].pack('h*') # =&gt; "\x01\xFE"</div><div class='add'>+    ['10ef'].pack('h0') # =&gt; ""</div><div class='add'>+    ['10ef'].pack('h3') # =&gt; "\x01\x0E"</div><div class='add'>+    ['10ef'].pack('h5') # =&gt; "\x01\xFE\x00"</div><div class='add'>+</div><div class='add'>+    ['fff'].pack('h3') # =&gt; "\xFF\x0F"</div><div class='add'>+    ['fff'].pack('h4') # =&gt; "\xFF\x0F"</div><div class='add'>+    ['fff'].pack('h5') # =&gt; "\xFF\x0F\x00"</div><div class='add'>+    ['fff'].pack('h6') # =&gt; "\xFF\x0F\x00"</div><div class='add'>+    ['fff'].pack('h7') # =&gt; "\xFF\x0F\x00\x00"</div><div class='add'>+    ['fff'].pack('h8') # =&gt; "\xFF\x0F\x00\x00"</div><div class='add'>+</div><div class='add'>+    "\x01\xfe".unpack('h*') # =&gt; ["10ef"]</div><div class='add'>+    "\x01\xfe".unpack('h0') # =&gt; [""]</div><div class='add'>+    "\x01\xfe".unpack('h1') # =&gt; ["1"]</div><div class='add'>+    "\x01\xfe".unpack('h2') # =&gt; ["10"]</div><div class='add'>+    "\x01\xfe".unpack('h3') # =&gt; ["10e"]</div><div class='add'>+    "\x01\xfe".unpack('h4') # =&gt; ["10ef"]</div><div class='add'>+    "\x01\xfe".unpack('h5') # =&gt; ["10ef"]</div><div class='add'>+</div><div class='add'>+==== Pointer \String Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'P'&lt;/tt&gt; - Pointer to a structure (fixed-length string):</div><div class='add'>+</div><div class='add'>+    s = ['abc'].pack('P')  # =&gt; "\xE0O\x7F\xE5\xA1\x01\x00\x00"</div><div class='add'>+    s.unpack('P*')         # =&gt; ["abc"]</div><div class='add'>+    ".".unpack("P")        # =&gt; []</div><div class='add'>+    ("\0" * 8).unpack("P") # =&gt; [nil]</div><div class='add'>+    [nil].pack("P")        # =&gt; "\x00\x00\x00\x00\x00\x00\x00\x00"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'p'&lt;/tt&gt; - Pointer to a null-terminated string:</div><div class='add'>+</div><div class='add'>+    s = ['abc'].pack('p')  # =&gt; "(\xE4u\xE5\xA1\x01\x00\x00"</div><div class='add'>+    s.unpack('p*')         # =&gt; ["abc"]</div><div class='add'>+    ".".unpack("p")        # =&gt; []</div><div class='add'>+    ("\0" * 8).unpack("p") # =&gt; [nil]</div><div class='add'>+    [nil].pack("p")        # =&gt; "\x00\x00\x00\x00\x00\x00\x00\x00"</div><div class='add'>+</div><div class='add'>+==== Other \String Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'M'&lt;/tt&gt; - Quoted printable, MIME encoding;</div><div class='add'>+  text mode, but input must use LF and output LF;</div><div class='add'>+  (see {RFC 2045}[https://www.ietf.org/rfc/rfc2045.txt]):</div><div class='add'>+</div><div class='add'>+    ["a b c\td \ne"].pack('M') # =&gt; "a b c\td =\n\ne=\n"</div><div class='add'>+    ["\0"].pack('M')           # =&gt; "=00=\n"</div><div class='add'>+</div><div class='add'>+    ["a"*1023].pack('M') == ("a"*73+"=\n")*14+"a=\n"     # =&gt; true</div><div class='add'>+    ("a"*73+"=\na=\n").unpack('M') == ["a"*74]           # =&gt; true</div><div class='add'>+    (("a"*73+"=\n")*14+"a=\n").unpack('M') == ["a"*1023] # =&gt; true</div><div class='add'>+</div><div class='add'>+    "a b c\td =\n\ne=\n".unpack('M')    # =&gt; ["a b c\td \ne"]</div><div class='add'>+    "=00=\n".unpack('M')    # =&gt; ["\x00"]</div><div class='add'>+</div><div class='add'>+    "pre=31=32=33after".unpack('M') # =&gt; ["pre123after"]</div><div class='add'>+    "pre=\nafter".unpack('M')       # =&gt; ["preafter"]</div><div class='add'>+    "pre=\r\nafter".unpack('M')     # =&gt; ["preafter"]</div><div class='add'>+    "pre=".unpack('M')              # =&gt; ["pre="]</div><div class='add'>+    "pre=\r".unpack('M')            # =&gt; ["pre=\r"]</div><div class='add'>+    "pre=hoge".unpack('M')          # =&gt; ["pre=hoge"]</div><div class='add'>+    "pre==31after".unpack('M')      # =&gt; ["pre==31after"]</div><div class='add'>+    "pre===31after".unpack('M')     # =&gt; ["pre===31after"]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'m'&lt;/tt&gt; - Base64 encoded string;</div><div class='add'>+  count specifies input bytes between each newline,</div><div class='add'>+  rounded down to nearest multiple of 3;</div><div class='add'>+  if count is zero, no newlines are added;</div><div class='add'>+  (see {RFC 4648}[https://www.ietf.org/rfc/rfc4648.txt]):</div><div class='add'>+</div><div class='add'>+    [""].pack('m')             # =&gt; ""</div><div class='add'>+    ["\0"].pack('m')           # =&gt; "AA==\n"</div><div class='add'>+    ["\0\0"].pack('m')         # =&gt; "AAA=\n"</div><div class='add'>+    ["\0\0\0"].pack('m')       # =&gt; "AAAA\n"</div><div class='add'>+    ["\377"].pack('m')         # =&gt; "/w==\n"</div><div class='add'>+    ["\377\377"].pack('m')     # =&gt; "//8=\n"</div><div class='add'>+    ["\377\377\377"].pack('m') # =&gt; "////\n"</div><div class='add'>+</div><div class='add'>+    "".unpack('m')       # =&gt; [""]</div><div class='add'>+    "AA==\n".unpack('m') # =&gt; ["\x00"]</div><div class='add'>+    "AAA=\n".unpack('m') # =&gt; ["\x00\x00"]</div><div class='add'>+    "AAAA\n".unpack('m') # =&gt; ["\x00\x00\x00"]</div><div class='add'>+    "/w==\n".unpack('m') # =&gt; ["\xFF"]</div><div class='add'>+    "//8=\n".unpack('m') # =&gt; ["\xFF\xFF"]</div><div class='add'>+    "////\n".unpack('m') # =&gt; ["\xFF\xFF\xFF"]</div><div class='add'>+    "A\n".unpack('m')    # =&gt; [""]</div><div class='add'>+    "AA\n".unpack('m')   # =&gt; ["\x00"]</div><div class='add'>+    "AA=\n".unpack('m')  # =&gt; ["\x00"]</div><div class='add'>+    "AAA\n".unpack('m')  # =&gt; ["\x00\x00"]</div><div class='add'>+</div><div class='add'>+    [""].pack('m0')             # =&gt; ""</div><div class='add'>+    ["\0"].pack('m0')           # =&gt; "AA=="</div><div class='add'>+    ["\0\0"].pack('m0')         # =&gt; "AAA="</div><div class='add'>+    ["\0\0\0"].pack('m0')       # =&gt; "AAAA"</div><div class='add'>+    ["\377"].pack('m0')         # =&gt; "/w=="</div><div class='add'>+    ["\377\377"].pack('m0')     # =&gt; "//8="</div><div class='add'>+    ["\377\377\377"].pack('m0') # =&gt; "////"</div><div class='add'>+</div><div class='add'>+    "".unpack('m0')     # =&gt; [""]</div><div class='add'>+    "AA==".unpack('m0') # =&gt; ["\x00"]</div><div class='add'>+    "AAA=".unpack('m0') # =&gt; ["\x00\x00"]</div><div class='add'>+    "AAAA".unpack('m0') # =&gt; ["\x00\x00\x00"]</div><div class='add'>+    "/w==".unpack('m0') # =&gt; ["\xFF"]</div><div class='add'>+    "//8=".unpack('m0') # =&gt; ["\xFF\xFF"]</div><div class='add'>+    "////".unpack('m0') # =&gt; ["\xFF\xFF\xFF"]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'u'&lt;/tt&gt; - UU-encoded string:</div><div class='add'>+</div><div class='add'>+    [0].pack("U")          # =&gt; "\u0000"</div><div class='add'>+    [0x3fffffff].pack("U") # =&gt; "\xFC\xBF\xBF\xBF\xBF\xBF"</div><div class='add'>+    [0x40000000].pack("U") # =&gt; "\xFD\x80\x80\x80\x80\x80"</div><div class='add'>+    [0x7fffffff].pack("U") # =&gt; "\xFD\xBF\xBF\xBF\xBF\xBF"</div><div class='add'>+</div><div class='add'>+=== Offset Directives</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'@'&lt;/tt&gt; - Begin packing at the given byte offset;</div><div class='add'>+  for packing, null fill if necessary:</div><div class='add'>+</div><div class='add'>+    [1, 2].pack("C@0C") # =&gt; "\x02"</div><div class='add'>+    [1, 2].pack("C@1C") # =&gt; "\x01\x02"</div><div class='add'>+    [1, 2].pack("C@5C") # =&gt; "\x01\x00\x00\x00\x00\x02"</div><div class='add'>+</div><div class='add'>+    "\x01\x00\x00\x02".unpack("C@3C") # =&gt; [1, 2]</div><div class='add'>+    "\x00".unpack("@1C")              # =&gt; [nil]</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'X'&lt;/tt&gt; - Back up a byte:</div><div class='add'>+</div><div class='add'>+    [0, 1, 2].pack("CCXC")    # =&gt; "\x00\x02"</div><div class='add'>+    [0, 1, 2].pack("CCX2C")   # =&gt; "\x02"</div><div class='add'>+    "\x00\x02".unpack("CCXC") # =&gt; [0, 2, 2]</div><div class='add'>+</div><div class='add'>+=== Null Byte Direcive</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;'x'&lt;/tt&gt; - Null byte:</div><div class='add'>+</div><div class='add'>+    [].pack("x0")                # =&gt; ""</div><div class='add'>+    [].pack("x")                 # =&gt; "\x00"</div><div class='add'>+    [].pack("x8")                # =&gt; "\x00\x00\x00\x00\x00\x00\x00\x00"</div><div class='add'>+    "\x00\x00\x02".unpack("CxC") # =&gt; [0, 2]</div><div class='head'>diff --git a/doc/ractor.md b/doc/ractor.md<br/>new file mode 100644<br/>index 0000000000..843754c263<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/ractor.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/ractor.md</a></div><div class='hunk'>@@ -0,0 +1,952 @@</div><div class='add'>+# Ractor - Ruby's Actor-like concurrent abstraction</div><div class='add'>+</div><div class='add'>+Ractor is designed to provide a parallel execution feature of Ruby without thread-safety concerns.</div><div class='add'>+</div><div class='add'>+## Summary</div><div class='add'>+</div><div class='add'>+### Multiple Ractors in an interpreter process</div><div class='add'>+</div><div class='add'>+You can make multiple Ractors and they run in parallel.</div><div class='add'>+</div><div class='add'>+* `Ractor.new{ expr }` creates a new Ractor and `expr` is run in parallel on a parallel computer.</div><div class='add'>+* Interpreter invokes with the first Ractor (called *main Ractor*).</div><div class='add'>+* If main Ractor terminated, all Ractors receive terminate request like Threads (if main thread (first invoked Thread), Ruby interpreter sends all running threads to terminate execution).</div><div class='add'>+* Each Ractor has 1 or more Threads.</div><div class='add'>+  * Threads in a Ractor shares a Ractor-wide global lock like GIL (GVL in MRI terminology), so they can't run in parallel (without releasing GVL explicitly in C-level). Threads in different ractors run in parallel.</div><div class='add'>+  * The overhead of creating a Ractor is similar to overhead of one Thread creation.</div><div class='add'>+</div><div class='add'>+### Limited sharing between multiple ractors</div><div class='add'>+</div><div class='add'>+Ractors don't share everything, unlike threads.</div><div class='add'>+</div><div class='add'>+* Most objects are *Unshareable objects*, so you don't need to care about thread-safety problems which are caused by sharing.</div><div class='add'>+* Some objects are *Shareable objects*.</div><div class='add'>+  * Immutable objects: frozen objects which don't refer to unshareable-objects.</div><div class='add'>+    * `i = 123`: `i` is an immutable object.</div><div class='add'>+    * `s = "str".freeze`: `s` is an immutable object.</div><div class='add'>+    * `a = [1, [2], 3].freeze`: `a` is not an immutable object because `a` refers unshareable-object `[2]` (which is not frozen).</div><div class='add'>+    * `h = {c: Object}.freeze`: `h` is an immutable object because `h` refers Symbol `:c` and shareable `Object` class object which is not frozen.</div><div class='add'>+  * Class/Module objects</div><div class='add'>+  * Special shareable objects</div><div class='add'>+    * Ractor object itself.</div><div class='add'>+    * And more...</div><div class='add'>+</div><div class='add'>+### Two-types communication between Ractors</div><div class='add'>+</div><div class='add'>+Ractors communicate with each other and synchronize the execution by message exchanging between Ractors. There are two message exchange protocols: push type (message passing) and pull type.</div><div class='add'>+</div><div class='add'>+* Push type message passing: `Ractor#send(obj)` and `Ractor.receive()` pair.</div><div class='add'>+  * Sender ractor passes the `obj` to the ractor `r` by `r.send(obj)` and receiver ractor receives the message with `Ractor.receive`.</div><div class='add'>+  * Sender knows the destination Ractor `r` and the receiver does not know the sender (accept all messages from any ractors).</div><div class='add'>+  * Receiver has infinite queue and sender enqueues the message. Sender doesn't block to put message into this queue.</div><div class='add'>+  * This type of message exchanging is employed by many other Actor-based languages.</div><div class='add'>+  * `Ractor.receive_if{ filter_expr }` is a variant of `Ractor.receive` to select a message.</div><div class='add'>+* Pull type communication: `Ractor.yield(obj)` and `Ractor#take()` pair.</div><div class='add'>+  * Sender ractor declare to yield the `obj` by `Ractor.yield(obj)` and receiver Ractor take it with `r.take`.</div><div class='add'>+  * Sender doesn't know a destination Ractor and receiver knows the sender Ractor `r`.</div><div class='add'>+  * Sender or receiver will block if there is no other side.</div><div class='add'>+</div><div class='add'>+### Copy &amp; Move semantics to send messages</div><div class='add'>+</div><div class='add'>+To send unshareable objects as messages, objects are copied or moved.</div><div class='add'>+</div><div class='add'>+* Copy: use deep-copy.</div><div class='add'>+* Move: move membership.</div><div class='add'>+  * Sender can not access the moved object after moving the object.</div><div class='add'>+  * Guarantee that at least only 1 Ractor can access the object.</div><div class='add'>+</div><div class='add'>+### Thread-safety</div><div class='add'>+</div><div class='add'>+Ractor helps to write a thread-safe concurrent program, but we can make thread-unsafe programs with Ractors.</div><div class='add'>+</div><div class='add'>+* GOOD: Sharing limitation</div><div class='add'>+  * Most objects are unshareable, so we can't make data-racy and race-conditional programs.</div><div class='add'>+  * Shareable objects are protected by an interpreter or locking mechanism.</div><div class='add'>+* BAD: Class/Module can violate this assumption</div><div class='add'>+  * To make it compatible with old behavior, classes and modules can introduce data-race and so on.</div><div class='add'>+  * Ruby programmers should take care if they modify class/module objects on multi Ractor programs.</div><div class='add'>+* BAD: Ractor can't solve all thread-safety problems</div><div class='add'>+  * There are several blocking operations (waiting send, waiting yield and waiting take) so you can make a program which has dead-lock and live-lock issues.</div><div class='add'>+  * Some kind of shareable objects can introduce transactions (STM, for example). However, misusing transactions will generate inconsistent state.</div><div class='add'>+</div><div class='add'>+Without Ractor, we need to trace all state-mutations to debug thread-safety issues.</div><div class='add'>+With Ractor, you can concentrate on suspicious code which are shared with Ractors.</div><div class='add'>+</div><div class='add'>+## Creation and termination</div><div class='add'>+</div><div class='add'>+### `Ractor.new`</div><div class='add'>+</div><div class='add'>+* `Ractor.new{ expr }` generates another Ractor.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# Ractor.new with a block creates new Ractor</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  # This block will be run in parallel with other ractors</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# You can name a Ractor with `name:` argument.</div><div class='add'>+r = Ractor.new name: 'test-name' do</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# and Ractor#name returns its name.</div><div class='add'>+r.name #=&gt; 'test-name'</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Given block isolation</div><div class='add'>+</div><div class='add'>+The Ractor executes given `expr` in a given block.</div><div class='add'>+Given block will be isolated from outer scope by the `Proc#isolate` method (not exposed yet for Ruby users). To prevent sharing unshareable objects between ractors, block outer-variables, `self` and other information are isolated.</div><div class='add'>+</div><div class='add'>+`Proc#isolate` is called at Ractor creation time (when `Ractor.new` is called). If given Proc object is not able to isolate because of outer variables and so on, an error will be raised.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+begin</div><div class='add'>+  a = true</div><div class='add'>+  r = Ractor.new do</div><div class='add'>+    a #=&gt; ArgumentError because this block accesses `a`.</div><div class='add'>+  end</div><div class='add'>+  r.take # see later</div><div class='add'>+rescue ArgumentError</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+* The `self` of the given block is the `Ractor` object itself.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  p self.class #=&gt; Ractor</div><div class='add'>+  self.object_id</div><div class='add'>+end</div><div class='add'>+r.take == self.object_id #=&gt; false</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Passed arguments to `Ractor.new()` becomes block parameters for the given block. However, an interpreter does not pass the parameter object references, but send them as messages (see below for details).</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+r = Ractor.new 'ok' do |msg|</div><div class='add'>+  msg #=&gt; 'ok'</div><div class='add'>+end</div><div class='add'>+r.take #=&gt; 'ok'</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# almost similar to the last example</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  msg = Ractor.receive</div><div class='add'>+  msg</div><div class='add'>+end</div><div class='add'>+r.send 'ok'</div><div class='add'>+r.take #=&gt; 'ok'</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### An execution result of given block</div><div class='add'>+</div><div class='add'>+Return value of the given block becomes an outgoing message (see below for details).</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  'ok'</div><div class='add'>+end</div><div class='add'>+r.take #=&gt; `ok`</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# almost similar to the last example</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  Ractor.yield 'ok'</div><div class='add'>+end</div><div class='add'>+r.take #=&gt; 'ok'</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Error in the given block will be propagated to the receiver of an outgoing message.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  raise 'ok' # exception will be transferred to the receiver</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  r.take</div><div class='add'>+rescue Ractor::RemoteError =&gt; e</div><div class='add'>+  e.cause.class   #=&gt; RuntimeError</div><div class='add'>+  e.cause.message #=&gt; 'ok'</div><div class='add'>+  e.ractor        #=&gt; r</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+## Communication between Ractors</div><div class='add'>+</div><div class='add'>+Communication between Ractors is achieved by sending and receiving messages. There are two ways to communicate with each other.</div><div class='add'>+</div><div class='add'>+* (1) Message sending/receiving</div><div class='add'>+  * (1-1) push type send/receive (sender knows receiver). Similar to the Actor model.</div><div class='add'>+  * (1-2) pull type yield/take (receiver knows sender).</div><div class='add'>+* (2) Using shareable container objects</div><div class='add'>+  * Ractor::TVar gem ([ko1/ractor-tvar](https://github.com/ko1/ractor-tvar))</div><div class='add'>+  * more?</div><div class='add'>+</div><div class='add'>+Users can control program execution timing with (1), but should not control with (2) (only manage as critical section).</div><div class='add'>+</div><div class='add'>+For message sending and receiving, there are two types of APIs: push type and pull type.</div><div class='add'>+</div><div class='add'>+* (1-1) send/receive (push type)</div><div class='add'>+  * `Ractor#send(obj)` (`Ractor#&lt;&lt;(obj)` is an alias) send a message to the Ractor's incoming port. Incoming port is connected to the infinite size incoming queue so `Ractor#send` will never block.</div><div class='add'>+  * `Ractor.receive` dequeue a message from its own incoming queue. If the incoming queue is empty, `Ractor.receive` calling will block.</div><div class='add'>+  * `Ractor.receive_if{|msg| filter_expr }` is variant of `Ractor.receive`. `receive_if` only receives a message which `filter_expr` is true (So `Ractor.receive` is the same as `Ractor.receive_if{ true }`.</div><div class='add'>+* (1-2) yield/take (pull type)</div><div class='add'>+  * `Ractor.yield(obj)` send an message to a Ractor which are calling `Ractor#take` via outgoing port . If no Ractors are waiting for it, the `Ractor.yield(obj)` will block. If multiple Ractors are waiting for `Ractor.yield(obj)`, only one Ractor can receive the message.</div><div class='add'>+  * `Ractor#take` receives a message which is waiting by `Ractor.yield(obj)` method from the specified Ractor. If the Ractor does not call `Ractor.yield` yet, the `Ractor#take` call will block.</div><div class='add'>+* `Ractor.select()` can wait for the success of `take`, `yield` and `receive`.</div><div class='add'>+* You can close the incoming port or outgoing port.</div><div class='add'>+  * You can close then with `Ractor#close_incoming` and `Ractor#close_outgoing`.</div><div class='add'>+  * If the incoming port is closed for a Ractor, you can't `send` to the Ractor. If `Ractor.receive` is blocked for the closed incoming port, then it will raise an exception.</div><div class='add'>+  * If the outgoing port is closed for a Ractor, you can't call `Ractor#take` and `Ractor.yield` on the Ractor. If ractors are blocking by `Ractor#take` or `Ractor.yield`, closing outgoing port will raise an exception on these blocking ractors.</div><div class='add'>+  * When a Ractor is terminated, the Ractor's ports are closed.</div><div class='add'>+* There are 3 ways to send an object as a message</div><div class='add'>+  * (1) Send a reference: Sending a shareable object, send only a reference to the object (fast)</div><div class='add'>+  * (2) Copy an object: Sending an unshareable object by copying an object deeply (slow). Note that you can not send an object which does not support deep copy. Some `T_DATA` objects are not supported.</div><div class='add'>+  * (3) Move an object: Sending an unshareable object reference with a membership. Sender Ractor can not access moved objects anymore (raise an exception) after moving it. Current implementation makes new object as a moved object for receiver Ractor and copies references of sending object to moved object.</div><div class='add'>+  * You can choose "Copy" and "Move" by the `move:` keyword, `Ractor#send(obj, move: true/false)` and `Ractor.yield(obj, move: true/false)` (default is `false` (COPY)).</div><div class='add'>+</div><div class='add'>+### Sending/Receiving ports</div><div class='add'>+</div><div class='add'>+Each Ractor has _incoming-port_ and _outgoing-port_. Incoming-port is connected to the infinite sized incoming queue.</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+                  Ractor r</div><div class='add'>+                 +-------------------------------------------+</div><div class='add'>+                 | incoming                         outgoing |</div><div class='add'>+                 | port                                 port |</div><div class='add'>+   r.send(obj) -&gt;*-&gt;[incoming queue]     Ractor.yield(obj) -&gt;*-&gt; r.take</div><div class='add'>+                 |                |                          |</div><div class='add'>+                 |                v                          |</div><div class='add'>+                 |           Ractor.receive                  |</div><div class='add'>+                 +-------------------------------------------+</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Connection example: r2.send obj on r1ã€Ractor.receive on r2</div><div class='add'>+  +----+     +----+</div><div class='add'>+  * r1 |----&gt;* r2 *</div><div class='add'>+  +----+     +----+</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Connection example: Ractor.yield(obj) on r1, r1.take on r2</div><div class='add'>+  +----+     +----+</div><div class='add'>+  * r1 *----&gt;- r2 *</div><div class='add'>+  +----+     +----+</div><div class='add'>+</div><div class='add'>+Connection example: Ractor.yield(obj) on r1 and r2,</div><div class='add'>+                    and waiting for both simultaneously by Ractor.select(r1, r2)</div><div class='add'>+</div><div class='add'>+  +----+</div><div class='add'>+  * r1 *------+</div><div class='add'>+  +----+      |</div><div class='add'>+              +----&gt; Ractor.select(r1, r2)</div><div class='add'>+  +----+      |</div><div class='add'>+  * r2 *------|</div><div class='add'>+  +----+</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  msg = Ractor.receive # Receive from r's incoming queue</div><div class='add'>+  msg # send back msg as block return value</div><div class='add'>+end</div><div class='add'>+r.send 'ok' # Send 'ok' to r's incoming port -&gt; incoming queue</div><div class='add'>+r.take      # Receive from r's outgoing port</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+The last example shows the following ractor network.</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+  +------+        +---+</div><div class='add'>+  * main |------&gt; * r *---+</div><div class='add'>+  +------+        +---+   |</div><div class='add'>+      ^                   |</div><div class='add'>+      +-------------------+</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+And this code can be simplified by using an argument for `Ractor.new`.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# Actual argument 'ok' for `Ractor.new()` will be sent to created Ractor.</div><div class='add'>+r = Ractor.new 'ok' do |msg|</div><div class='add'>+  # Values for formal parameters will be received from incoming queue.</div><div class='add'>+  # Similar to: msg = Ractor.receive</div><div class='add'>+</div><div class='add'>+  msg # Return value of the given block will be sent via outgoing port</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# receive from the r's outgoing port.</div><div class='add'>+r.take #=&gt; `ok`</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Return value of a block for `Ractor.new`</div><div class='add'>+</div><div class='add'>+As already explained, the return value of `Ractor.new` (an evaluated value of `expr` in `Ractor.new{ expr }`) can be taken by `Ractor#take`.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+Ractor.new{ 42 }.take #=&gt; 42</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+When the block return value is available, the Ractor is dead so that no ractors except taken Ractor can touch the return value, so any values can be sent with this communication path without any modification.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  a = "hello"</div><div class='add'>+  binding</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+r.take.eval("p a") #=&gt; "hello" (other communication path can not send a Binding object directly)</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Wait for multiple Ractors with `Ractor.select`</div><div class='add'>+</div><div class='add'>+You can wait multiple Ractor's `yield` with `Ractor.select(*ractors)`.</div><div class='add'>+The return value of `Ractor.select()` is `[r, msg]` where `r` is yielding Ractor and `msg` is yielded message.</div><div class='add'>+</div><div class='add'>+Wait for a single ractor (same as `Ractor.take`):</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+r1 = Ractor.new{'r1'}</div><div class='add'>+</div><div class='add'>+r, obj = Ractor.select(r1)</div><div class='add'>+r == r1 and obj == 'r1' #=&gt; true</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Wait for two ractors:</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+r1 = Ractor.new{'r1'}</div><div class='add'>+r2 = Ractor.new{'r2'}</div><div class='add'>+rs = [r1, r2]</div><div class='add'>+as = []</div><div class='add'>+</div><div class='add'>+# Wait for r1 or r2's Ractor.yield</div><div class='add'>+r, obj = Ractor.select(*rs)</div><div class='add'>+rs.delete(r)</div><div class='add'>+as &lt;&lt; obj</div><div class='add'>+</div><div class='add'>+# Second try (rs only contain not-closed ractors)</div><div class='add'>+r, obj = Ractor.select(*rs)</div><div class='add'>+rs.delete(r)</div><div class='add'>+as &lt;&lt; obj</div><div class='add'>+as.sort == ['r1', 'r2'] #=&gt; true</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Complex example:</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+pipe = Ractor.new do</div><div class='add'>+  loop do</div><div class='add'>+    Ractor.yield Ractor.receive</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+RN = 10</div><div class='add'>+rs = RN.times.map{|i|</div><div class='add'>+  Ractor.new pipe, i do |pipe, i|</div><div class='add'>+    msg = pipe.take</div><div class='add'>+    msg # ping-pong</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+RN.times{|i|</div><div class='add'>+  pipe &lt;&lt; i</div><div class='add'>+}</div><div class='add'>+RN.times.map{</div><div class='add'>+  r, n = Ractor.select(*rs)</div><div class='add'>+  rs.delete r</div><div class='add'>+  n</div><div class='add'>+}.sort #=&gt; [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Multiple Ractors can send to one Ractor.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# Create 10 ractors and they send objects to pipe ractor.</div><div class='add'>+# pipe ractor yield received objects</div><div class='add'>+</div><div class='add'>+pipe = Ractor.new do</div><div class='add'>+  loop do</div><div class='add'>+    Ractor.yield Ractor.receive</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+RN = 10</div><div class='add'>+rs = RN.times.map{|i|</div><div class='add'>+  Ractor.new pipe, i do |pipe, i|</div><div class='add'>+    pipe &lt;&lt; i</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RN.times.map{</div><div class='add'>+  pipe.take</div><div class='add'>+}.sort #=&gt; [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+TODO: Current `Ractor.select()` has the same issue of `select(2)`, so this interface should be refined.</div><div class='add'>+</div><div class='add'>+TODO: `select` syntax of go-language uses round-robin technique to make fair scheduling. Now `Ractor.select()` doesn't use it.</div><div class='add'>+</div><div class='add'>+### Closing Ractor's ports</div><div class='add'>+</div><div class='add'>+* `Ractor#close_incoming/outgoing` close incoming/outgoing ports (similar to `Queue#close`).</div><div class='add'>+* `Ractor#close_incoming`</div><div class='add'>+  * `r.send(obj) ` where `r`'s incoming port is closed, will raise an exception.</div><div class='add'>+  * When the incoming queue is empty and incoming port is closed, `Ractor.receive` raises an exception. If the incoming queue is not empty, it dequeues an object without exceptions.</div><div class='add'>+* `Ractor#close_outgoing`</div><div class='add'>+  * `Ractor.yield` on a Ractor which closed the outgoing port, it will raise an exception.</div><div class='add'>+  * `Ractor#take` for a Ractor which closed the outgoing port, it will raise an exception. If `Ractor#take` is blocking, it will raise an exception.</div><div class='add'>+* When a Ractor terminates, the ports are closed automatically.</div><div class='add'>+  * Return value of the Ractor's block will be yielded as `Ractor.yield(ret_val)`, even if the implementation terminates the based native thread.</div><div class='add'>+</div><div class='add'>+Example (try to take from closed Ractor):</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  'finish'</div><div class='add'>+end</div><div class='add'>+r.take # success (will return 'finish')</div><div class='add'>+begin</div><div class='add'>+  o = r.take # try to take from closed Ractor</div><div class='add'>+rescue Ractor::ClosedError</div><div class='add'>+  'ok'</div><div class='add'>+else</div><div class='add'>+  "ng: #{o}"</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Example (try to send to closed (terminated) Ractor):</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+r = Ractor.new do</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+r.take # wait terminate</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  r.send(1)</div><div class='add'>+rescue Ractor::ClosedError</div><div class='add'>+  'ok'</div><div class='add'>+else</div><div class='add'>+  'ng'</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+When multiple Ractors are waiting for `Ractor.yield()`, `Ractor#close_outgoing` will cancel all blocking by raising an exception (`ClosedError`).</div><div class='add'>+</div><div class='add'>+### Send a message by copying</div><div class='add'>+</div><div class='add'>+`Ractor#send(obj)` or `Ractor.yield(obj)` copy `obj` deeply if `obj` is an unshareable object.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+obj = 'str'.dup</div><div class='add'>+r = Ractor.new obj do |msg|</div><div class='add'>+  # return received msg's object_id</div><div class='add'>+  msg.object_id</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+obj.object_id == r.take #=&gt; false</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Some objects are not supported to copy the value, and raise an exception.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+obj = Thread.new{}</div><div class='add'>+begin</div><div class='add'>+  Ractor.new obj do |msg|</div><div class='add'>+    msg</div><div class='add'>+  end</div><div class='add'>+rescue TypeError =&gt; e</div><div class='add'>+  e.message #=&gt; #&lt;TypeError: allocator undefined for Thread&gt;</div><div class='add'>+else</div><div class='add'>+  'ng' # unreachable here</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Send a message by moving</div><div class='add'>+</div><div class='add'>+`Ractor#send(obj, move: true)` or `Ractor.yield(obj, move: true)` move `obj` to the destination Ractor.</div><div class='add'>+If the source Ractor touches the moved object (for example, call the method like `obj.foo()`), it will be an error.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# move with Ractor#send</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  obj = Ractor.receive</div><div class='add'>+  obj &lt;&lt; ' world'</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+str = 'hello'</div><div class='add'>+r.send str, move: true</div><div class='add'>+modified = r.take #=&gt; 'hello world'</div><div class='add'>+</div><div class='add'>+# str is moved, and accessing str from this Ractor is prohibited</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  # Error because it touches moved str.</div><div class='add'>+  str &lt;&lt; ' exception' # raise Ractor::MovedError</div><div class='add'>+rescue Ractor::MovedError</div><div class='add'>+  modified #=&gt; 'hello world'</div><div class='add'>+else</div><div class='add'>+  raise 'unreachable'</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# move with Ractor.yield</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  obj = 'hello'</div><div class='add'>+  Ractor.yield obj, move: true</div><div class='add'>+  obj &lt;&lt; 'world'  # raise Ractor::MovedError</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+str = r.take</div><div class='add'>+begin</div><div class='add'>+  r.take</div><div class='add'>+rescue Ractor::RemoteError</div><div class='add'>+  p str #=&gt; "hello"</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Some objects are not supported to move, and an exception will be raised.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  Ractor.receive</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+r.send(Thread.new{}, move: true) #=&gt; allocator undefined for Thread (TypeError)</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+To achieve the access prohibition for moved objects, _class replacement_ technique is used to implement it.</div><div class='add'>+</div><div class='add'>+### Shareable objects</div><div class='add'>+</div><div class='add'>+The following objects are shareable.</div><div class='add'>+</div><div class='add'>+* Immutable objects</div><div class='add'>+  * Small integers, some symbols, `true`, `false`, `nil` (a.k.a. `SPECIAL_CONST_P()` objects in internal)</div><div class='add'>+  * Frozen native objects</div><div class='add'>+    * Numeric objects: `Float`, `Complex`, `Rational`, big integers (`T_BIGNUM` in internal)</div><div class='add'>+    * All Symbols.</div><div class='add'>+  * Frozen `String` and `Regexp` objects (their instance variables should refer only shareable objects)</div><div class='add'>+* Class, Module objects (`T_CLASS`, `T_MODULE` and `T_ICLASS` in internal)</div><div class='add'>+* `Ractor` and other special objects which care about synchronization.</div><div class='add'>+</div><div class='add'>+Implementation: Now shareable objects (`RVALUE`) have `FL_SHAREABLE` flag. This flag can be added lazily.</div><div class='add'>+</div><div class='add'>+To make shareable objects, `Ractor.make_shareable(obj)` method is provided. In this case, try to make sharaeble by freezing `obj` and recursively travasible objects. This method accepts `copy:` keyword (default value is false).`Ractor.make_shareable(obj, copy: true)` tries to make a deep copy of `obj` and make the copied object shareable.</div><div class='add'>+</div><div class='add'>+## Language changes to isolate unshareable objects between Ractors</div><div class='add'>+</div><div class='add'>+To isolate unshareable objects between Ractors, we introduced additional language semantics on multi-Ractor Ruby programs.</div><div class='add'>+</div><div class='add'>+Note that without using Ractors, these additional semantics is not needed (100% compatible with Ruby 2).</div><div class='add'>+</div><div class='add'>+### Global variables</div><div class='add'>+</div><div class='add'>+Only the main Ractor (a Ractor created at starting of interpreter) can access global variables.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+$gv = 1</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  $gv</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  r.take</div><div class='add'>+rescue Ractor::RemoteError =&gt; e</div><div class='add'>+  e.cause.message #=&gt; 'can not access global variables from non-main Ractors'</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Note that some special global variables are ractor-local, like `$stdin`, `$stdout`, `$stderr`. See [[Bug #17268]](https://bugs.ruby-lang.org/issues/17268) for more details.</div><div class='add'>+</div><div class='add'>+### Instance variables of shareable objects</div><div class='add'>+</div><div class='add'>+Instance variables of classes/modules can be get from non-main Ractors if the referring values are shareable objects.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+class C</div><div class='add'>+  @iv = 1</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+p Ractor.new do</div><div class='add'>+  class C</div><div class='add'>+     @iv</div><div class='add'>+  end</div><div class='add'>+end.take #=&gt; 1</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Otherwise, only the main Ractor can access instance variables of shareable objects.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+class C</div><div class='add'>+  @iv = [] # unshareable object</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Ractor.new do</div><div class='add'>+  class C</div><div class='add'>+    begin</div><div class='add'>+      p @iv</div><div class='add'>+    rescue Ractor::IsolationError</div><div class='add'>+      p $!.message</div><div class='add'>+      #=&gt; "can not get unshareable values from instance variables of classes/modules from non-main Ractors"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    begin</div><div class='add'>+      @iv = 42</div><div class='add'>+    rescue Ractor::IsolationError</div><div class='add'>+      p $!.message</div><div class='add'>+      #=&gt; "can not set instance variables of classes/modules by non-main Ractors"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end.take</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+shared = Ractor.new{}</div><div class='add'>+shared.instance_variable_set(:@iv, 'str')</div><div class='add'>+</div><div class='add'>+r = Ractor.new shared do |shared|</div><div class='add'>+  p shared.instance_variable_get(:@iv)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  r.take</div><div class='add'>+rescue Ractor::RemoteError =&gt; e</div><div class='add'>+  e.cause.message #=&gt; can not access instance variables of shareable objects from non-main Ractors (Ractor::IsolationError)</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Note that instance variables for class/module objects are also prohibited on Ractors.</div><div class='add'>+</div><div class='add'>+### Class variables</div><div class='add'>+</div><div class='add'>+Only the main Ractor can access class variables.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+class C</div><div class='add'>+  @@cv = 'str'</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  class C</div><div class='add'>+    p @@cv</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  r.take</div><div class='add'>+rescue =&gt; e</div><div class='add'>+  e.class #=&gt; Ractor::IsolationError</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Constants</div><div class='add'>+</div><div class='add'>+Only the main Ractor can read constants which refer to the unshareable object.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+class C</div><div class='add'>+  CONST = 'str'</div><div class='add'>+end</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  C::CONST</div><div class='add'>+end</div><div class='add'>+begin</div><div class='add'>+  r.take</div><div class='add'>+rescue =&gt; e</div><div class='add'>+  e.class #=&gt; Ractor::IsolationError</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Only the main Ractor can define constants which refer to the unshareable object.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+class C</div><div class='add'>+end</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  C::CONST = 'str'</div><div class='add'>+end</div><div class='add'>+begin</div><div class='add'>+  r.take</div><div class='add'>+rescue =&gt; e</div><div class='add'>+  e.class #=&gt; Ractor::IsolationError</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+To make multi-ractor supported library, the constants should only refer shareable objects.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+TABLE = {a: 'ko1', b: 'ko2', c: 'ko3'}</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+In this case, `TABLE` references an unshareable Hash object. So that other ractors can not refer `TABLE` constant. To make it shareable, we can use `Ractor.make_shareable()` like that.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+TABLE = Ractor.make_shareable( {a: 'ko1', b: 'ko2', c: 'ko3'} )</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+To make it easy, Ruby 3.0 introduced new `shareable_constant_value` Directive.</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# shareable_constant_value: literal</div><div class='add'>+</div><div class='add'>+TABLE = {a: 'ko1', b: 'ko2', c: 'ko3'}</div><div class='add'>+#=&gt; Same as: TABLE = Ractor.make_shareable( {a: 'ko1', b: 'ko2', c: 'ko3'} )</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+`shareable_constant_value` directive accepts the following modes (descriptions use the example: `CONST = expr`):</div><div class='add'>+</div><div class='add'>+* none: Do nothing. Same as: `CONST = expr`</div><div class='add'>+* literal:</div><div class='add'>+  * if `expr` is consites of literals, replaced to `CONST = Ractor.make_shareable(expr)`.</div><div class='add'>+  * otherwise: replaced to `CONST = expr.tap{|o| raise unless Ractor.shareable?}`.</div><div class='add'>+* experimental_everything: replaced to `CONST = Ractor.make_shareable(expr)`.</div><div class='add'>+* experimental_copy: replaced to `CONST = Ractor.make_shareable(expr, copy: true)`.</div><div class='add'>+</div><div class='add'>+Except the `none` mode (default), it is guaranteed that the assigned constants refer to only shareable objects.</div><div class='add'>+</div><div class='add'>+See [doc/syntax/comments.rdoc](syntax/comments.rdoc) for more details.</div><div class='add'>+</div><div class='add'>+## Implementation note</div><div class='add'>+</div><div class='add'>+* Each Ractor has its own thread, it means each Ractor has at least 1 native thread.</div><div class='add'>+* Each Ractor has its own ID (`rb_ractor_t::pub::id`).</div><div class='add'>+  * On debug mode, all unshareable objects are labeled with current Ractor's id, and it is checked to detect unshareable object leak (access an object from different Ractor) in VM.</div><div class='add'>+</div><div class='add'>+## Examples</div><div class='add'>+</div><div class='add'>+### Traditional Ring example in Actor-model</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+RN = 1_000</div><div class='add'>+CR = Ractor.current</div><div class='add'>+</div><div class='add'>+r = Ractor.new do</div><div class='add'>+  p Ractor.receive</div><div class='add'>+  CR &lt;&lt; :fin</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+RN.times{</div><div class='add'>+  r = Ractor.new r do |next_r|</div><div class='add'>+    next_r &lt;&lt; Ractor.receive</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+p :setup_ok</div><div class='add'>+r &lt;&lt; 1</div><div class='add'>+p Ractor.receive</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Fork-join</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+def fib n</div><div class='add'>+  if n &lt; 2</div><div class='add'>+    1</div><div class='add'>+  else</div><div class='add'>+    fib(n-2) + fib(n-1)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+RN = 10</div><div class='add'>+rs = (1..RN).map do |i|</div><div class='add'>+  Ractor.new i do |i|</div><div class='add'>+    [i, fib(i)]</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+until rs.empty?</div><div class='add'>+  r, v = Ractor.select(*rs)</div><div class='add'>+  rs.delete r</div><div class='add'>+  p answer: v</div><div class='add'>+end</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Worker pool</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+require 'prime'</div><div class='add'>+</div><div class='add'>+pipe = Ractor.new do</div><div class='add'>+  loop do</div><div class='add'>+    Ractor.yield Ractor.receive</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+N = 1000</div><div class='add'>+RN = 10</div><div class='add'>+workers = (1..RN).map do</div><div class='add'>+  Ractor.new pipe do |pipe|</div><div class='add'>+    while n = pipe.take</div><div class='add'>+      Ractor.yield [n, n.prime?]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+(1..N).each{|i|</div><div class='add'>+  pipe &lt;&lt; i</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+pp (1..N).map{</div><div class='add'>+  _r, (n, b) = Ractor.select(*workers)</div><div class='add'>+  [n, b]</div><div class='add'>+}.sort_by{|(n, b)| n}</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Pipeline</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# pipeline with yield/take</div><div class='add'>+r1 = Ractor.new do</div><div class='add'>+  'r1'</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+r2 = Ractor.new r1 do |r1|</div><div class='add'>+  r1.take + 'r2'</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+r3 = Ractor.new r2 do |r2|</div><div class='add'>+  r2.take + 'r3'</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+p r3.take #=&gt; 'r1r2r3'</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# pipeline with send/receive</div><div class='add'>+</div><div class='add'>+r3 = Ractor.new Ractor.current do |cr|</div><div class='add'>+  cr.send Ractor.receive + 'r3'</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+r2 = Ractor.new r3 do |r3|</div><div class='add'>+  r3.send Ractor.receive + 'r2'</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+r1 = Ractor.new r2 do |r2|</div><div class='add'>+  r2.send Ractor.receive + 'r1'</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+r1 &lt;&lt; 'r0'</div><div class='add'>+p Ractor.receive #=&gt; "r0r1r2r3"</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+### Supervise</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# ring example again</div><div class='add'>+</div><div class='add'>+r = Ractor.current</div><div class='add'>+(1..10).map{|i|</div><div class='add'>+  r = Ractor.new r, i do |r, i|</div><div class='add'>+    r.send Ractor.receive + "r#{i}"</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+r.send "r0"</div><div class='add'>+p Ractor.receive #=&gt; "r0r10r9r8r7r6r5r4r3r2r1"</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# ring example with an error</div><div class='add'>+</div><div class='add'>+r = Ractor.current</div><div class='add'>+rs = (1..10).map{|i|</div><div class='add'>+  r = Ractor.new r, i do |r, i|</div><div class='add'>+    loop do</div><div class='add'>+      msg = Ractor.receive</div><div class='add'>+      raise if /e/ =~ msg</div><div class='add'>+      r.send msg + "r#{i}"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+r.send "r0"</div><div class='add'>+p Ractor.receive #=&gt; "r0r10r9r8r7r6r5r4r3r2r1"</div><div class='add'>+r.send "r0"</div><div class='add'>+p Ractor.select(*rs, Ractor.current) #=&gt; [:receive, "r0r10r9r8r7r6r5r4r3r2r1"]</div><div class='add'>+r.send "e0"</div><div class='add'>+p Ractor.select(*rs, Ractor.current)</div><div class='add'>+#=&gt;</div><div class='add'>+#&lt;Thread:0x000056262de28bd8 run&gt; terminated with exception (report_on_exception is true):</div><div class='add'>+Traceback (most recent call last):</div><div class='add'>+        2: from /home/ko1/src/ruby/trunk/test.rb:7:in `block (2 levels) in &lt;main&gt;'</div><div class='add'>+        1: from /home/ko1/src/ruby/trunk/test.rb:7:in `loop'</div><div class='add'>+/home/ko1/src/ruby/trunk/test.rb:9:in `block (3 levels) in &lt;main&gt;': unhandled exception</div><div class='add'>+Traceback (most recent call last):</div><div class='add'>+        2: from /home/ko1/src/ruby/trunk/test.rb:7:in `block (2 levels) in &lt;main&gt;'</div><div class='add'>+        1: from /home/ko1/src/ruby/trunk/test.rb:7:in `loop'</div><div class='add'>+/home/ko1/src/ruby/trunk/test.rb:9:in `block (3 levels) in &lt;main&gt;': unhandled exception</div><div class='add'>+        1: from /home/ko1/src/ruby/trunk/test.rb:21:in `&lt;main&gt;'</div><div class='add'>+&lt;internal:ractor&gt;:69:in `select': thrown by remote Ractor. (Ractor::RemoteError)</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# resend non-error message</div><div class='add'>+</div><div class='add'>+r = Ractor.current</div><div class='add'>+rs = (1..10).map{|i|</div><div class='add'>+  r = Ractor.new r, i do |r, i|</div><div class='add'>+    loop do</div><div class='add'>+      msg = Ractor.receive</div><div class='add'>+      raise if /e/ =~ msg</div><div class='add'>+      r.send msg + "r#{i}"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+r.send "r0"</div><div class='add'>+p Ractor.receive #=&gt; "r0r10r9r8r7r6r5r4r3r2r1"</div><div class='add'>+r.send "r0"</div><div class='add'>+p Ractor.select(*rs, Ractor.current)</div><div class='add'>+[:receive, "r0r10r9r8r7r6r5r4r3r2r1"]</div><div class='add'>+msg = 'e0'</div><div class='add'>+begin</div><div class='add'>+  r.send msg</div><div class='add'>+  p Ractor.select(*rs, Ractor.current)</div><div class='add'>+rescue Ractor::RemoteError</div><div class='add'>+  msg = 'r0'</div><div class='add'>+  retry</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+#=&gt; &lt;internal:ractor&gt;:100:in `send': The incoming-port is already closed (Ractor::ClosedError)</div><div class='add'>+# because r == r[-1] is terminated.</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+```ruby</div><div class='add'>+# ring example with supervisor and re-start</div><div class='add'>+</div><div class='add'>+def make_ractor r, i</div><div class='add'>+  Ractor.new r, i do |r, i|</div><div class='add'>+    loop do</div><div class='add'>+      msg = Ractor.receive</div><div class='add'>+      raise if /e/ =~ msg</div><div class='add'>+      r.send msg + "r#{i}"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+r = Ractor.current</div><div class='add'>+rs = (1..10).map{|i|</div><div class='add'>+  r = make_ractor(r, i)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+msg = 'e0' # error causing message</div><div class='add'>+begin</div><div class='add'>+  r.send msg</div><div class='add'>+  p Ractor.select(*rs, Ractor.current)</div><div class='add'>+rescue Ractor::RemoteError</div><div class='add'>+  r = rs[-1] = make_ractor(rs[-2], rs.size-1)</div><div class='add'>+  msg = 'x0'</div><div class='add'>+  retry</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+#=&gt; [:receive, "x0r9r9r8r7r6r5r4r3r2r1"]</div><div class='add'>+```</div><div class='head'>diff --git a/doc/rdoc/markup_reference.rb b/doc/rdoc/markup_reference.rb<br/>new file mode 100644<br/>index 0000000000..66ec6786c0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rdoc/markup_reference.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/rdoc/markup_reference.rb</a></div><div class='hunk'>@@ -0,0 +1,1257 @@</div><div class='add'>+require 'rdoc'</div><div class='add'>+</div><div class='add'>+# \Class \RDoc::MarkupReference exists only to provide a suitable home</div><div class='add'>+# for a reference document for \RDoc markup.</div><div class='add'>+#</div><div class='add'>+# All objects defined in this class -- classes, modules, methods, aliases,</div><div class='add'>+# attributes, and constants -- are solely for illustrating \RDoc markup,</div><div class='add'>+# and have no other legitimate use.</div><div class='add'>+#</div><div class='add'>+# = \RDoc Markup Reference</div><div class='add'>+#</div><div class='add'>+# Notes:</div><div class='add'>+#</div><div class='add'>+# - Examples in this reference are Ruby code and comments;</div><div class='add'>+#   certain differences from other sources</div><div class='add'>+#   (such as C code and comments) are noted.</div><div class='add'>+# - An example that shows rendered HTML output</div><div class='add'>+#   displays that output in a blockquote:</div><div class='add'>+#</div><div class='add'>+#   Rendered HTML:</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     Some stuff</div><div class='add'>+#</div><div class='add'>+# \RDoc-generated documentation is derived from and controlled by:</div><div class='add'>+#</div><div class='add'>+# - Single-line or multi-line comments that precede certain definitions;</div><div class='add'>+#   see {Markup in Comments}[rdoc-ref:RDoc::MarkupReference@Markup+in+Comments].</div><div class='add'>+# - \RDoc directives in trailing comments (on the same line as code);</div><div class='add'>+#   see &lt;tt&gt;:nodoc:&lt;/tt&gt;, &lt;tt&gt;:doc:&lt;/tt&gt;, and &lt;tt&gt;:notnew&lt;/tt&gt;.</div><div class='add'>+# - \RDoc directives in single-line comments;</div><div class='add'>+#   see other {Directives}[rdoc-ref:RDoc::MarkupReference@Directives].</div><div class='add'>+# - The Ruby code itself (but not from C code);</div><div class='add'>+#   see {Documentation Derived from Ruby Code}[rdoc-ref:RDoc::MarkupReference@Documentation+Derived+from+Ruby+Code].</div><div class='add'>+#</div><div class='add'>+# == Markup in Comments</div><div class='add'>+#</div><div class='add'>+# The treatment of markup in comments varies according to the type of file:</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;.rb&lt;/tt&gt; (Ruby code file): markup is parsed from Ruby comments.</div><div class='add'>+# - &lt;tt&gt;.c&lt;/tt&gt; (C code file): markup is parsed from C comments.</div><div class='add'>+# - &lt;tt&gt;.rdoc&lt;/tt&gt; (RDoc text file): markup is parsed from the entire file.</div><div class='add'>+#</div><div class='add'>+# The comment associated with</div><div class='add'>+# a Ruby class, module, method, alias, constant, or attribute</div><div class='add'>+# becomes the documentation for that defined object:</div><div class='add'>+#</div><div class='add'>+# - In a Ruby file, that comment immediately precedes</div><div class='add'>+#   the definition of the object.</div><div class='add'>+# - In a C file, that comment immediately precedes</div><div class='add'>+#   the function that implements a method,</div><div class='add'>+#   or otherwise immediately precedes the definition of the object.</div><div class='add'>+#</div><div class='add'>+# In either a Ruby or a C file,</div><div class='add'>+# \RDoc ignores comments that do not precede object definitions.</div><div class='add'>+#</div><div class='add'>+# In an \RDoc file, the text is not associated with any code object,</div><div class='add'>+# but may (depending on how the documentation is built),</div><div class='add'>+# become a separate page.</div><div class='add'>+#</div><div class='add'>+# Almost all examples on this page are all RDoc-like;</div><div class='add'>+# that is, they have no comment markers like Ruby &lt;tt&gt;#&lt;/tt&gt;</div><div class='add'>+# or C &lt;tt&gt;/* ... */&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# === Margins</div><div class='add'>+#</div><div class='add'>+# In a multi-line comment,</div><div class='add'>+# \RDoc looks for the comment's natural left margin,</div><div class='add'>+# which becomes the &lt;em&gt;base margin&lt;/em&gt; for the comment</div><div class='add'>+# and is the initial &lt;em&gt;current margin&lt;/em&gt; for for the comment.</div><div class='add'>+#</div><div class='add'>+# The current margin can change, and does so, for example in a list.</div><div class='add'>+#</div><div class='add'>+# === Blocks</div><div class='add'>+#</div><div class='add'>+# It's convenient to think of \RDoc markup input as a sequence of _blocks_</div><div class='add'>+# of various types (details at the links):</div><div class='add'>+#</div><div class='add'>+# - {Paragraph}[rdoc-ref:RDoc::MarkupReference@Paragraphs]:</div><div class='add'>+#   an ordinary paragraph.</div><div class='add'>+# - {Verbatim text block}[rdoc-ref:RDoc::MarkupReference@Verbatim+Text+Blocks]:</div><div class='add'>+#   a block of text to be rendered literally.</div><div class='add'>+# - {Code block}[rdoc-ref:RDoc::MarkupReference@Code+Blocks]:</div><div class='add'>+#   a verbatim text block containing Ruby code,</div><div class='add'>+#   to be rendered with code highlighting.</div><div class='add'>+# - {Block quote}[rdoc-ref:RDoc::MarkupReference@Block+Quotes]:</div><div class='add'>+#   a longish quoted passage, to be rendered with indentation</div><div class='add'>+#   instead of quote marks.</div><div class='add'>+# - {List}[rdoc-ref:RDoc::MarkupReference@Lists]: items for</div><div class='add'>+#   a bullet list, numbered list, lettered list, or labeled list.</div><div class='add'>+# - {Heading}[rdoc-ref:RDoc::MarkupReference@Headings]:</div><div class='add'>+#   a section heading.</div><div class='add'>+# - {Horizontal rule}[rdoc-ref:RDoc::MarkupReference@Horizontal+Rules]:</div><div class='add'>+#   a line across the rendered page.</div><div class='add'>+# - {Directive}[rdoc-ref:RDoc::MarkupReference@Directives]:</div><div class='add'>+#   various special directions for the rendering.</div><div class='add'>+# - {Text Markup}[rdoc-ref:RDoc:MarkupReference@Text+Markup]:</div><div class='add'>+#   text to be rendered in a special way.</div><div class='add'>+#</div><div class='add'>+# About the blocks:</div><div class='add'>+#</div><div class='add'>+# - Except for a paragraph, a block is distinguished by its indentation,</div><div class='add'>+#   or by unusual initial or embedded characters.</div><div class='add'>+# - Any block may appear independently</div><div class='add'>+#   (that is, not nested in another block);</div><div class='add'>+#   some blocks may be nested, as detailed below.</div><div class='add'>+#</div><div class='add'>+# ==== Paragraphs</div><div class='add'>+#</div><div class='add'>+# A paragraph consists of one or more non-empty lines of ordinary text,</div><div class='add'>+# each beginning at the current margin.</div><div class='add'>+#</div><div class='add'>+# Note: Here, &lt;em&gt;ordinary text&lt;/em&gt; means text that is &lt;em&gt;not identified&lt;/em&gt;</div><div class='add'>+# by indentation, or by unusual initial or embedded characters.</div><div class='add'>+# See below.</div><div class='add'>+#</div><div class='add'>+# Paragraphs are separated by one or more empty lines.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   \RDoc produces HTML and command-line documentation for Ruby projects.</div><div class='add'>+#   \RDoc includes the rdoc and ri tools for generating and displaying</div><div class='add'>+#   documentation from the command-line.</div><div class='add'>+#</div><div class='add'>+#   You'll love it.</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   \RDoc produces HTML and command-line documentation for Ruby projects.</div><div class='add'>+#   \RDoc includes the rdoc and ri tools for generating and displaying</div><div class='add'>+#   documentation from the command-line.</div><div class='add'>+#</div><div class='add'>+#   You'll love it.</div><div class='add'>+#</div><div class='add'>+# A paragraph may contain nested blocks, including:</div><div class='add'>+#</div><div class='add'>+# - {Verbatim text blocks}[rdoc-ref:RDoc::MarkupReference@Verbatim+Text+Blocks].</div><div class='add'>+# - {Code blocks}[rdoc-ref:RDoc::MarkupReference@Code+Blocks].</div><div class='add'>+# - {Block quotes}[rdoc-ref:RDoc::MarkupReference@Block+Quotes].</div><div class='add'>+# - {Lists}[rdoc-ref:RDoc::MarkupReference@Lists].</div><div class='add'>+# - {Headings}[rdoc-ref:RDoc::MarkupReference@Headings].</div><div class='add'>+# - {Horizontal rules}[rdoc-ref:RDoc::MarkupReference@Horizontal+Rules].</div><div class='add'>+# - {Text Markup}[rdoc-ref:RDoc:MarkupReference@Text+Markup].</div><div class='add'>+#</div><div class='add'>+# ==== Verbatim Text Blocks</div><div class='add'>+#</div><div class='add'>+# Text indented farther than the current margin becomes a &lt;em&gt;verbatim text block&lt;/em&gt;</div><div class='add'>+# (or a code block, described next).</div><div class='add'>+# In the rendered HTML, such text:</div><div class='add'>+#</div><div class='add'>+# - Is indented.</div><div class='add'>+# - Has a contrasting background color.</div><div class='add'>+#</div><div class='add'>+# The verbatim text block ends at the first line beginning at the current margin.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   This is not verbatim text.</div><div class='add'>+#</div><div class='add'>+#     This is verbatim text.</div><div class='add'>+#       Whitespace is honored.     # See?</div><div class='add'>+#         Whitespace is honored.     # See?</div><div class='add'>+#</div><div class='add'>+#     This is still the same verbatim text block.</div><div class='add'>+#</div><div class='add'>+#   This is not verbatim text.</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   This is not verbatim text.</div><div class='add'>+#</div><div class='add'>+#     This is verbatim text.</div><div class='add'>+#       Whitespace is honored.     # See?</div><div class='add'>+#         Whitespace is honored.     # See?</div><div class='add'>+#</div><div class='add'>+#     This is still the same verbatim text block.</div><div class='add'>+#</div><div class='add'>+#   This is not verbatim text.</div><div class='add'>+#</div><div class='add'>+# A verbatim text block may not contain nested blocks of any kind</div><div class='add'>+# -- it's verbatim.</div><div class='add'>+#</div><div class='add'>+# ==== Code Blocks</div><div class='add'>+#</div><div class='add'>+# A special case of verbatim text is the &lt;em&gt;code block&lt;/em&gt;,</div><div class='add'>+# which is merely verbatim text that \RDoc recognizes as Ruby code:</div><div class='add'>+#</div><div class='add'>+# In the rendered HTML, the code block:</div><div class='add'>+#</div><div class='add'>+# - Is indented.</div><div class='add'>+# - Has a contrasting background color.</div><div class='add'>+# - Has syntax highlighting.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   Consider this method:</div><div class='add'>+#</div><div class='add'>+#     def foo(name = '', value = 0)</div><div class='add'>+#       @name = name      # Whitespace is still honored.</div><div class='add'>+#       @value = value</div><div class='add'>+#     end</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   Consider this method:</div><div class='add'>+#</div><div class='add'>+#     def foo(name = '', value = 0)</div><div class='add'>+#       @name = name      # Whitespace is still honored.</div><div class='add'>+#       @value = value</div><div class='add'>+#     end</div><div class='add'>+#</div><div class='add'>+# Pro tip:  If your indented Ruby code does not get highlighted,</div><div class='add'>+# it may contain a syntax error.</div><div class='add'>+#</div><div class='add'>+# A code block may not contain nested blocks of any kind</div><div class='add'>+# -- it's verbatim.</div><div class='add'>+#</div><div class='add'>+# ==== Block Quotes</div><div class='add'>+#</div><div class='add'>+# You can use the characters &lt;tt&gt;&gt;&gt;&gt;&lt;/tt&gt; (unindented),</div><div class='add'>+# followed by indented text, to treat the text</div><div class='add'>+# as a {block quote}[https://en.wikipedia.org/wiki/Block_quotation]:</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   Here's a block quote:</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer</div><div class='add'>+#     commodo quam iaculis massa posuere, dictum fringilla justo pulvinar.</div><div class='add'>+#     Quisque turpis erat, pharetra eu dui at, sollicitudin accumsan nulla.</div><div class='add'>+#</div><div class='add'>+#     Aenean congue ligula eu ligula molestie, eu pellentesque purus</div><div class='add'>+#     faucibus. In id leo non ligula condimentum lobortis. Duis vestibulum,</div><div class='add'>+#     diam in pellentesque aliquet, mi tellus placerat sapien, id euismod</div><div class='add'>+#     purus magna ut tortor.</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+#</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   Here's a block quote:</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer</div><div class='add'>+#     commodo quam iaculis massa posuere, dictum fringilla justo pulvinar.</div><div class='add'>+#     Quisque turpis erat, pharetra eu dui at, sollicitudin accumsan nulla.</div><div class='add'>+#</div><div class='add'>+#     Aenean congue ligula eu ligula molestie, eu pellentesque purus</div><div class='add'>+#     faucibus. In id leo non ligula condimentum lobortis. Duis vestibulum,</div><div class='add'>+#     diam in pellentesque aliquet, mi tellus placerat sapien, id euismod</div><div class='add'>+#     purus magna ut tortor.</div><div class='add'>+#</div><div class='add'>+# Note that, unlike verbatim text, single newlines are not honored,</div><div class='add'>+# but that a double newline begins a new paragraph in the block quote.</div><div class='add'>+#</div><div class='add'>+# A block quote may contain nested blocks, including:</div><div class='add'>+#</div><div class='add'>+# - Other block quotes.</div><div class='add'>+# - {Paragraphs}[rdoc-ref:RDoc::MarkupReference@Paragraphs].</div><div class='add'>+# - {Verbatim text blocks}[rdoc-ref:RDoc::MarkupReference@Verbatim+Text+Blocks].</div><div class='add'>+# - {Code blocks}[rdoc-ref:RDoc::MarkupReference@Code+Blocks].</div><div class='add'>+# - {Lists}[rdoc-ref:RDoc::MarkupReference@Lists].</div><div class='add'>+# - {Headings}[rdoc-ref:RDoc::MarkupReference@Headings].</div><div class='add'>+# - {Horizontal rules}[rdoc-ref:RDoc::MarkupReference@Horizontal+Rules].</div><div class='add'>+# - {Text Markup}[rdoc-ref:RDoc:MarkupReference@Text+Markup].</div><div class='add'>+#</div><div class='add'>+# ==== Lists</div><div class='add'>+#</div><div class='add'>+# Each type of list item is marked by a special beginning:</div><div class='add'>+#</div><div class='add'>+# - Bullet list item: Begins with a hyphen or asterisk.</div><div class='add'>+# - Numbered list item: Begins with digits and a period.</div><div class='add'>+# - Lettered list item: Begins with an alphabetic character and a period.</div><div class='add'>+# - Labeled list item: Begins with one of:</div><div class='add'>+#   - Square-bracketed text.</div><div class='add'>+#   - A word followed by two colons.</div><div class='add'>+#</div><div class='add'>+# A list begins with a list item and continues, even across blank lines,</div><div class='add'>+# as long as list items of the same type are found at the same indentation level.</div><div class='add'>+#</div><div class='add'>+# A new list resets the current margin inward.</div><div class='add'>+# Additional lines of text aligned at that margin</div><div class='add'>+# are part of the continuing list item.</div><div class='add'>+#</div><div class='add'>+# A list item may be continued on additional lines that are aligned</div><div class='add'>+# with the first line.  See examples below.</div><div class='add'>+#</div><div class='add'>+# A list item may contain nested blocks, including:</div><div class='add'>+#</div><div class='add'>+# - Other lists of any type.</div><div class='add'>+# - {Paragraphs}[rdoc-ref:RDoc::MarkupReference@Paragraphs].</div><div class='add'>+# - {Verbatim text blocks}[rdoc-ref:RDoc::MarkupReference@Verbatim+Text+Blocks].</div><div class='add'>+# - {Code blocks}[rdoc-ref:RDoc::MarkupReference@Code+Blocks].</div><div class='add'>+# - {Block quotes}[rdoc-ref:RDoc::MarkupReference@Block+Quotes].</div><div class='add'>+# - {Headings}[rdoc-ref:RDoc::MarkupReference@Headings].</div><div class='add'>+# - {Horizontal rules}[rdoc-ref:RDoc::MarkupReference@Horizontal+Rules].</div><div class='add'>+# - {Text Markup}[rdoc-ref:RDoc:MarkupReference@Text+Markup].</div><div class='add'>+#</div><div class='add'>+# ===== Bullet Lists</div><div class='add'>+#</div><div class='add'>+# A bullet list item begins with a hyphen or asterisk.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   - An item.</div><div class='add'>+#   - Another.</div><div class='add'>+#   - An item spanning</div><div class='add'>+#     multiple lines.</div><div class='add'>+#</div><div class='add'>+#   * Yet another.</div><div class='add'>+#   - Last one.</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   - An item.</div><div class='add'>+#   - Another.</div><div class='add'>+#   - An item spanning</div><div class='add'>+#     multiple lines.</div><div class='add'>+#</div><div class='add'>+#   * Yet another.</div><div class='add'>+#   - Last one.</div><div class='add'>+#</div><div class='add'>+# ===== Numbered Lists</div><div class='add'>+#</div><div class='add'>+# A numbered list item begins with digits and a period.</div><div class='add'>+#</div><div class='add'>+# The items are automatically re-numbered.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   100. An item.</div><div class='add'>+#   10. Another.</div><div class='add'>+#   1. An item spanning</div><div class='add'>+#      multiple lines.</div><div class='add'>+#</div><div class='add'>+#   1. Yet another.</div><div class='add'>+#   1000. Last one.</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   100. An item.</div><div class='add'>+#   10. Another.</div><div class='add'>+#   1. An item spanning</div><div class='add'>+#      multiple lines.</div><div class='add'>+#</div><div class='add'>+#   1. Yet another.</div><div class='add'>+#   1000. Last one.</div><div class='add'>+#</div><div class='add'>+# ===== Lettered Lists</div><div class='add'>+#</div><div class='add'>+# A numbered list item begins with a letters and a period.</div><div class='add'>+#</div><div class='add'>+# The items are automatically "re-lettered."</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   z. An item.</div><div class='add'>+#   y. Another.</div><div class='add'>+#   x. An item spanning</div><div class='add'>+#      multiple lines.</div><div class='add'>+#</div><div class='add'>+#   x. Yet another.</div><div class='add'>+#   a. Last one.</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   z. An item.</div><div class='add'>+#   y. Another.</div><div class='add'>+#</div><div class='add'>+#   x. Yet another.</div><div class='add'>+#   a. Last one.</div><div class='add'>+#</div><div class='add'>+# ===== Labeled Lists</div><div class='add'>+#</div><div class='add'>+# A labeled list item begins with one of:</div><div class='add'>+#</div><div class='add'>+# - Square-bracketed text: the label and text are on two lines.</div><div class='add'>+# - A word followed by two colons: the label and text are on the same line.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   [foo] An item.</div><div class='add'>+#   bat:: Another.</div><div class='add'>+#   [bag] An item spanning</div><div class='add'>+#         multiple lines.</div><div class='add'>+#</div><div class='add'>+#   [bar baz] Yet another.</div><div class='add'>+#   bam:: Last one.</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   [foo] An item.</div><div class='add'>+#   bat:: Another.</div><div class='add'>+#   [bag] An item spanning</div><div class='add'>+#         multiple lines.</div><div class='add'>+#</div><div class='add'>+#   [bar baz] Yet another.</div><div class='add'>+#   bam:: Last one.</div><div class='add'>+#</div><div class='add'>+# ==== Headings</div><div class='add'>+#</div><div class='add'>+# A heading begins with up to six equal-signs, followed by heading text.</div><div class='add'>+# Whitespace between those and the heading text is optional.</div><div class='add'>+#</div><div class='add'>+# Examples:</div><div class='add'>+#</div><div class='add'>+#   = Section 1</div><div class='add'>+#   == Section 1.1</div><div class='add'>+#   === Section 1.1.1</div><div class='add'>+#   === Section 1.1.2</div><div class='add'>+#   == Section 1.2</div><div class='add'>+#   = Section 2</div><div class='add'>+#   = Foo</div><div class='add'>+#   == Bar</div><div class='add'>+#   === Baz</div><div class='add'>+#   ==== Bam</div><div class='add'>+#   ===== Bat</div><div class='add'>+#   ====== Bad</div><div class='add'>+#   ============Still a Heading (Level 6)</div><div class='add'>+#   \== Not a Heading</div><div class='add'>+#</div><div class='add'>+# A heading may contain only one type of nested block:</div><div class='add'>+#</div><div class='add'>+# - {Text Markup}[rdoc-ref:RDoc:MarkupReference@Text+Markup].</div><div class='add'>+#</div><div class='add'>+# ==== Horizontal Rules</div><div class='add'>+#</div><div class='add'>+# A horizontal rule consists of a line with three or more hyphens</div><div class='add'>+# and nothing more.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   ---</div><div class='add'>+#   --- Not a horizontal rule.</div><div class='add'>+#</div><div class='add'>+#   -- Also not a horizontal rule.</div><div class='add'>+#   ---</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   ---</div><div class='add'>+#   --- Not a horizontal rule.</div><div class='add'>+#</div><div class='add'>+#   -- Also not a horizontal rule.</div><div class='add'>+#   ---</div><div class='add'>+#</div><div class='add'>+# ==== Directives</div><div class='add'>+#</div><div class='add'>+# ===== Directives for Allowing or Suppressing Documentation</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :stopdoc:&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies that \RDoc should ignore markup</div><div class='add'>+#     until next &lt;tt&gt;:startdoc:&lt;/tt&gt; directive or end-of-file.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :startdoc:&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies that \RDoc should resume parsing markup.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :enddoc:&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies that \RDoc should ignore markup to end-of-file</div><div class='add'>+#     regardless of other directives.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :nodoc:&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appended to a line of code</div><div class='add'>+#     that defines a class, module, method, alias, constant, or attribute.</div><div class='add'>+#   - Specifies that the defined object should not be documented.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :nodoc: all&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appended to a line of code</div><div class='add'>+#     that defines a class or module.</div><div class='add'>+#   - Specifies that the class or module should not be documented.</div><div class='add'>+#     By default, however, a nested class or module _will_ be documented.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :doc:&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appended to a line of code</div><div class='add'>+#     that defines a class, module, method, alias, constant, or attribute.</div><div class='add'>+#   - Specifies the defined object should be documented, even if otherwise</div><div class='add'>+#     would not be documented.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :notnew:&lt;/tt&gt; (aliased as &lt;tt&gt;:not_new:&lt;/tt&gt; and &lt;tt&gt;:not-new:&lt;/tt&gt;):</div><div class='add'>+#</div><div class='add'>+#   - Appended to a line of code</div><div class='add'>+#     that defines instance method +initialize+.</div><div class='add'>+#   - Specifies that singleton method +new+ should not be documented.</div><div class='add'>+#     By default, Ruby fakes a corresponding singleton method +new+,</div><div class='add'>+#     which \RDoc includes in the documentation.</div><div class='add'>+#     Note that instance method +initialize+ is private, and so by default</div><div class='add'>+#     is not documented.</div><div class='add'>+#</div><div class='add'>+# For Ruby code, but not for other \RDoc sources,</div><div class='add'>+# there is a shorthand for &lt;tt&gt;:stopdoc:&lt;/tt&gt; and &lt;tt&gt;:startdoc:&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   # Documented.</div><div class='add'>+#   #--</div><div class='add'>+#   # Not documented.</div><div class='add'>+#   #++</div><div class='add'>+#   # Documented.</div><div class='add'>+#</div><div class='add'>+# For C code, any of directives &lt;tt&gt;:startdoc:&lt;/tt&gt;, &lt;tt&gt;:enddoc:&lt;/tt&gt;,</div><div class='add'>+# and &lt;tt&gt;:nodoc:&lt;/tt&gt; may appear in a stand-alone comment:</div><div class='add'>+#</div><div class='add'>+#   /* :startdoc: */</div><div class='add'>+#   /* :stopdoc: */</div><div class='add'>+#   /* :enddoc: */</div><div class='add'>+#</div><div class='add'>+# ===== Directive for Specifying \RDoc Source Format</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :markup: _type_&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies the format for the \RDoc input;</div><div class='add'>+#     parameter +type+ is one of +markdown+, +rd+, +rdoc+, +tomdoc+.</div><div class='add'>+#</div><div class='add'>+# ===== Directives for HTML Output</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :title: _text_&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies the title for the HTML output.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :main: _filename_&lt;/tt&gt;:</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies the HTML file to be displayed first.</div><div class='add'>+#</div><div class='add'>+# ===== Directives for Method Documentation</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :call-seq:&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies the calling sequence to be reported in the HTML,</div><div class='add'>+#     overriding the actual calling sequence in the code.</div><div class='add'>+#     See method #call_seq_directive.</div><div class='add'>+#</div><div class='add'>+#   Note that \RDoc can build the calling sequence for a Ruby-coded method,</div><div class='add'>+#   but not for other languages.</div><div class='add'>+#   You may want to override that by explicitly giving a &lt;tt&gt;:call-seq:&lt;/tt&gt;</div><div class='add'>+#   directive if you want to include:</div><div class='add'>+#</div><div class='add'>+#   - A return type, which is not automatically inferred.</div><div class='add'>+#   - Multiple calling sequences.</div><div class='add'>+#</div><div class='add'>+#   For C code, the directive may appear in a stand-alone comment.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :args: _arg_names_&lt;/tt&gt; (aliased as &lt;tt&gt;:arg:&lt;/tt&gt;):</div><div class='add'>+#</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies the arguments to be reported in the HTML,</div><div class='add'>+#     overriding the actual arguments in the code.</div><div class='add'>+#     See method #args_directive.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :yields: _arg_names_&lt;/tt&gt; (aliased as &lt;tt&gt;:yield:&lt;/tt&gt;):</div><div class='add'>+#</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies the yield arguments to be reported in the HTML,</div><div class='add'>+#     overriding the actual yield in the code.</div><div class='add'>+#     See method #yields_directive.</div><div class='add'>+#</div><div class='add'>+# ===== Directives for Organizing Documentation</div><div class='add'>+#</div><div class='add'>+# By default, \RDoc groups:</div><div class='add'>+#</div><div class='add'>+# - Singleton methods together in alphabetical order.</div><div class='add'>+# - Instance methods and their aliases together in alphabetical order.</div><div class='add'>+# - Attributes and their aliases together in alphabetical order.</div><div class='add'>+#</div><div class='add'>+# You can use directives to modify those behaviors.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :section: _section_title_&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies that following methods are to be grouped into the section</div><div class='add'>+#     with the given &lt;em&gt;section_title&lt;/em&gt;,</div><div class='add'>+#     or into the default section if no title is given.</div><div class='add'>+#     The directive remains in effect until another such directive is given,</div><div class='add'>+#     but may be temporarily overridden by directive &lt;tt&gt;:category:&lt;/tt&gt;.</div><div class='add'>+#     See below.</div><div class='add'>+#</div><div class='add'>+#   The comment block containing this directive:</div><div class='add'>+#</div><div class='add'>+#   - Must be separated by a blank line from the documentation for the next item.</div><div class='add'>+#   - May have one or more lines preceding the directive.</div><div class='add'>+#     These will be removed, along with any trailing lines that match them.</div><div class='add'>+#     Such lines may be visually helpful.</div><div class='add'>+#   - Lines of text that are not so removed become the descriptive text</div><div class='add'>+#     for the section.</div><div class='add'>+#</div><div class='add'>+#   Example:</div><div class='add'>+#</div><div class='add'>+#     # ----------------------------------------</div><div class='add'>+#     # :section: My Section</div><div class='add'>+#     # This is the section that I wrote.</div><div class='add'>+#     # See it glisten in the noon-day sun.</div><div class='add'>+#     # ----------------------------------------</div><div class='add'>+#</div><div class='add'>+#     ##</div><div class='add'>+#     # Comment for some_method</div><div class='add'>+#     def some_method</div><div class='add'>+#       # ...</div><div class='add'>+#     end</div><div class='add'>+#</div><div class='add'>+#   You can use directive &lt;tt&gt;:category:&lt;/tt&gt; to temporarily</div><div class='add'>+#   override the current section.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :category: _section_title_&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies that just one following method is to be included</div><div class='add'>+#     in the given section, or in the default section if no title is given.</div><div class='add'>+#     Subsequent methods are to be grouped into the current section.</div><div class='add'>+#</div><div class='add'>+# ===== Directive for Including a File</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;# :include: _filepath_&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   - Appears on a line by itself.</div><div class='add'>+#   - Specifies that the contents of the given file</div><div class='add'>+#     are to be included at this point.</div><div class='add'>+#     The file content is shifted to have the same indentation as the colon</div><div class='add'>+#     at the start of the directive.</div><div class='add'>+#</div><div class='add'>+#     The file is searched for in the directories</div><div class='add'>+#     given with the &lt;tt&gt;--include&lt;/tt&gt; command-line option,</div><div class='add'>+#     or by default in the current directory.</div><div class='add'>+#</div><div class='add'>+#   For C code, the directive may appear in a stand-alone comment</div><div class='add'>+#</div><div class='add'>+# ==== Text Markup</div><div class='add'>+#</div><div class='add'>+# Text markup is metatext that affects HTML rendering:</div><div class='add'>+#</div><div class='add'>+# - Typeface: italic, bold, monofont.</div><div class='add'>+# - Character conversions: copyright, trademark, certain punctuation.</div><div class='add'>+# - Links.</div><div class='add'>+# - Escapes: marking text as "not markup."</div><div class='add'>+#</div><div class='add'>+# ===== Typeface Markup</div><div class='add'>+#</div><div class='add'>+# Typeface markup can specify that text is to be rendered</div><div class='add'>+# as italic, bold, or monofont.</div><div class='add'>+#</div><div class='add'>+# Typeface markup may contain only one type of nested block:</div><div class='add'>+#</div><div class='add'>+# - More typeface markup:</div><div class='add'>+#   italic, bold, monofont.</div><div class='add'>+#</div><div class='add'>+# ====== Italic</div><div class='add'>+#</div><div class='add'>+# Text may be marked as italic via HTML tag &lt;tt&gt;&lt;i&gt;&lt;/tt&gt; or &lt;tt&gt;&lt;em&gt;&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   &lt;i&gt;Italicized words&lt;/i&gt; in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     &lt;i&gt;Italicized words in a block quote&lt;/i&gt;.</div><div class='add'>+#</div><div class='add'>+#   - &lt;i&gt;Italicized words&lt;/i&gt; in a list item.</div><div class='add'>+#</div><div class='add'>+#   ====== &lt;i&gt;Italicized words&lt;/i&gt; in a Heading</div><div class='add'>+#</div><div class='add'>+#   &lt;i&gt;Italicized passage containing *bold* and +monofont+.&lt;/i&gt;</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   &lt;i&gt;Italicized words&lt;/i&gt; in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     &lt;i&gt;Italicized words in a block quote&lt;/i&gt;.</div><div class='add'>+#</div><div class='add'>+#   - &lt;i&gt;Italicized words&lt;/i&gt; in a list item.</div><div class='add'>+#</div><div class='add'>+#   ====== &lt;i&gt;Italicized words&lt;/i&gt; in a Heading</div><div class='add'>+#</div><div class='add'>+#   &lt;i&gt;Italicized passage containing *bold* and +monofont+.&lt;/i&gt;</div><div class='add'>+#</div><div class='add'>+# A single word may be italicized via a shorthand:</div><div class='add'>+# prefixed and suffixed underscores.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   _Italic_ in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     _Italic_ in a block quote.</div><div class='add'>+#</div><div class='add'>+#   - _Italic_ in a list item.</div><div class='add'>+#</div><div class='add'>+#   ====== _Italic_ in a Heading</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   _Italic_ in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     _Italic_ in a block quote.</div><div class='add'>+#</div><div class='add'>+#   - _Italic_ in a list item.</div><div class='add'>+#</div><div class='add'>+#   ====== _Italic_ in a Heading</div><div class='add'>+#</div><div class='add'>+# ====== Bold</div><div class='add'>+#</div><div class='add'>+# Text may be marked as bold via HTML tag &lt;tt&gt;&lt;b&gt;&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   &lt;b&gt;Bold words&lt;/b&gt; in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     &lt;b&gt;Bold words&lt;/b&gt; in a block quote.</div><div class='add'>+#</div><div class='add'>+#   - &lt;b&gt;Bold words&lt;/b&gt; in a list item.</div><div class='add'>+#</div><div class='add'>+#   ====== &lt;b&gt;Bold words&lt;/b&gt; in a Heading</div><div class='add'>+#</div><div class='add'>+#   &lt;b&gt;Bold passage containing _italics_ and +monofont+.&lt;/b&gt;</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+#</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   &lt;b&gt;Bold words&lt;/b&gt; in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     &lt;b&gt;Bold words&lt;/b&gt; in a block quote.</div><div class='add'>+#</div><div class='add'>+#   - &lt;b&gt;Bold words&lt;/b&gt; in a list item.</div><div class='add'>+#</div><div class='add'>+#   ====== &lt;b&gt;Bold words&lt;/b&gt; in a Heading</div><div class='add'>+#</div><div class='add'>+#   &lt;b&gt;Bold passage containing _italics_ and +monofont+.&lt;/b&gt;</div><div class='add'>+#</div><div class='add'>+# A single word may be made bold via a shorthand:</div><div class='add'>+# prefixed and suffixed asterisks.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   *Bold* in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     *Bold* in a block quote.</div><div class='add'>+#</div><div class='add'>+#   - *Bold* in a list item.</div><div class='add'>+#</div><div class='add'>+#   ===== *Bold* in a Heading</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+#</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   *Bold* in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     *Bold* in a block quote.</div><div class='add'>+#</div><div class='add'>+#   - *Bold* in a list item.</div><div class='add'>+#</div><div class='add'>+#   ===== *Bold* in a Heading</div><div class='add'>+#</div><div class='add'>+# ====== Monofont</div><div class='add'>+#</div><div class='add'>+# Text may be marked as monofont</div><div class='add'>+# -- sometimes called 'typewriter font' --</div><div class='add'>+# via HTML tag &lt;tt&gt;&lt;tt&gt;&lt;/tt&gt; or &lt;tt&gt;&lt;code&gt;&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   &lt;tt&gt;Monofont words&lt;/tt&gt; in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     &lt;tt&gt;Monofont words&lt;/tt&gt; in a block quote.</div><div class='add'>+#</div><div class='add'>+#   - &lt;tt&gt;Monofont words&lt;/tt&gt; in a list item.</div><div class='add'>+#</div><div class='add'>+#   ====== &lt;tt&gt;Monofont words&lt;/tt&gt; in heading</div><div class='add'>+#</div><div class='add'>+#   &lt;tt&gt;Monofont passage containing _italics_ and *bold*.&lt;/tt&gt;</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+#</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   &lt;tt&gt;Monofont words&lt;/tt&gt; in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     &lt;tt&gt;Monofont words&lt;/tt&gt; in a block quote.</div><div class='add'>+#</div><div class='add'>+#   - &lt;tt&gt;Monofont words&lt;/tt&gt; in a list item.</div><div class='add'>+#</div><div class='add'>+#   ====== &lt;tt&gt;Monofont words&lt;/tt&gt; in heading</div><div class='add'>+#</div><div class='add'>+#   &lt;tt&gt;Monofont passage containing _italics_ and *bold*.&lt;/tt&gt;</div><div class='add'>+#</div><div class='add'>+# A single word may be made monofont by a shorthand:</div><div class='add'>+# prefixed and suffixed plus-signs.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   +Monofont+ in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     +Monofont+ in a block quote.</div><div class='add'>+#</div><div class='add'>+#   - +Monofont+ in a list item.</div><div class='add'>+#</div><div class='add'>+#   ====== +Monofont+ in a Heading</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+#</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   +Monofont+ in a paragraph.</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     +Monofont+ in a block quote.</div><div class='add'>+#</div><div class='add'>+#   - +Monofont+ in a list item.</div><div class='add'>+#</div><div class='add'>+#   ====== +Monofont+ in a Heading</div><div class='add'>+#</div><div class='add'>+# ==== Character Conversions</div><div class='add'>+#</div><div class='add'>+# Certain combinations of characters may be converted to special characters;</div><div class='add'>+# whether the conversion occurs depends on whether the special character</div><div class='add'>+# is available in the current encoding.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;(c)&lt;/tt&gt; converts to (c) (copyright character); must be lowercase.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;(r)&lt;/tt&gt; converts to (r) (registered trademark character); must be lowercase.</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;'foo'&lt;/tt&gt; converts to 'foo' (smart single-quotes).</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;"foo"&lt;/tt&gt; converts to "foo" (smart double-quotes).</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;foo ... bar&lt;/tt&gt; converts to foo ... bar (1-character ellipsis).</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;foo -- bar&lt;/tt&gt; converts to foo -- bar (1-character en-dash).</div><div class='add'>+#</div><div class='add'>+# - &lt;tt&gt;foo --- bar&lt;/tt&gt; converts to foo --- bar (1-character em-dash).</div><div class='add'>+#</div><div class='add'>+# ==== Links</div><div class='add'>+#</div><div class='add'>+# Certain strings in \RDoc text are converted to links.</div><div class='add'>+# Any such link may be suppressed by prefixing a backslash.</div><div class='add'>+# This section shows how to link to various</div><div class='add'>+# targets.</div><div class='add'>+#</div><div class='add'>+# [Class]</div><div class='add'>+#</div><div class='add'>+#   - On-page: &lt;tt&gt;DummyClass&lt;/tt&gt; links to DummyClass.</div><div class='add'>+#   - Off-page: &lt;tt&gt;RDoc::Alias&lt;/tt&gt; links to RDoc::Alias.</div><div class='add'>+#</div><div class='add'>+# [Module]</div><div class='add'>+#</div><div class='add'>+#   - On-page: &lt;tt&gt;DummyModule&lt;/tt&gt; links to DummyModule.</div><div class='add'>+#   - Off-page: &lt;tt&gt;RDoc&lt;/tt&gt; links to RDoc.</div><div class='add'>+#</div><div class='add'>+# [Constant]</div><div class='add'>+#</div><div class='add'>+#   - On-page: &lt;tt&gt;DUMMY_CONSTANT&lt;/tt&gt; links to DUMMY_CONSTANT.</div><div class='add'>+#   - Off-page: &lt;tt&gt;RDoc::Text::MARKUP_FORMAT&lt;/tt&gt; links to RDoc::Text::MARKUP_FORMAT.</div><div class='add'>+#</div><div class='add'>+# [Singleton Method]</div><div class='add'>+#</div><div class='add'>+#   - On-page: &lt;tt&gt;::dummy_singleton_method&lt;/tt&gt; links to ::dummy_singleton_method.</div><div class='add'>+#   - Off-page&lt;tt&gt;RDoc::TokenStream::to_html&lt;/tt&gt; links to RDoc::TokenStream::to_html.</div><div class='add'>+#</div><div class='add'>+#   Note: Occasionally \RDoc is not linked to a method whose name</div><div class='add'>+#   has only special characters. Check whether the links you were expecting</div><div class='add'>+#   are actually there.  If not, you'll need to put in an explicit link;</div><div class='add'>+#   see below.</div><div class='add'>+#</div><div class='add'>+#   Pro tip: The link to any method is available in the alphabetical table of contents</div><div class='add'>+#   at the top left of the page for the class or module.</div><div class='add'>+#</div><div class='add'>+# [Instance Method]</div><div class='add'>+#</div><div class='add'>+#   - On-page: &lt;tt&gt;#dummy_instance_method&lt;/tt&gt; links to #dummy_instance_method.</div><div class='add'>+#   - Off-page: &lt;tt&gt;RDoc::Alias#html_name&lt;/tt&gt; links to RDoc::Alias#html_name.</div><div class='add'>+#</div><div class='add'>+#     See the Note and Pro Tip immediately above.</div><div class='add'>+#</div><div class='add'>+# [Attribute]</div><div class='add'>+#</div><div class='add'>+#   - On-page: &lt;tt&gt;#dummy_attribute&lt;/tt&gt; links to #dummy_attribute.</div><div class='add'>+#   - Off-page: &lt;tt&gt;RDoc::Alias#name&lt;/tt&gt; links to RDoc::Alias#name.</div><div class='add'>+#</div><div class='add'>+# [Alias]</div><div class='add'>+#</div><div class='add'>+#   - On-page: &lt;tt&gt;#dummy_instance_alias&lt;/tt&gt; links to #dummy_instance_alias.</div><div class='add'>+#   - Off-page: &lt;tt&gt;RDoc::Alias#new_name&lt;/tt&gt; links to RDoc::Alias#new_name.</div><div class='add'>+#</div><div class='add'>+# [Protocol +http+]</div><div class='add'>+#</div><div class='add'>+#   - Linked: &lt;tt&gt;http://yahoo.com&lt;/tt&gt; links to http://yahoo.com.</div><div class='add'>+#</div><div class='add'>+# [Protocol +https+]</div><div class='add'>+#</div><div class='add'>+#   - Linked: &lt;tt&gt;https://github.com&lt;/tt&gt; links to https://github.com.</div><div class='add'>+#</div><div class='add'>+# [Protocol +www+]</div><div class='add'>+#</div><div class='add'>+#   - Linked: &lt;tt&gt;www.yahoo.com&lt;/tt&gt; links to www.yahoo.com.</div><div class='add'>+#</div><div class='add'>+# [Protocol +ftp+]</div><div class='add'>+#</div><div class='add'>+#   - Linked: &lt;tt&gt;ftp://nosuch.site&lt;/tt&gt; links to ftp://nosuch.site.</div><div class='add'>+#</div><div class='add'>+# [Protocol +mailto+]</div><div class='add'>+#</div><div class='add'>+#   - Linked:  &lt;tt&gt;mailto:/foo@bar.com&lt;/tt&gt; links to mailto://foo@bar.com.</div><div class='add'>+#</div><div class='add'>+# [Protocol +irc+]</div><div class='add'>+#</div><div class='add'>+#   - link: &lt;tt&gt;irc://irc.freenode.net/ruby&lt;/tt&gt; links to irc://irc.freenode.net/ruby.</div><div class='add'>+#</div><div class='add'>+# [Image Filename Extensions]</div><div class='add'>+#</div><div class='add'>+#   - Link: &lt;tt&gt;https://www.ruby-lang.org/images/header-ruby-logo@2x.png&lt;/tt&gt; is</div><div class='add'>+#     converted to an in-line HTML +img+ tag, which displays the image in the HTML:</div><div class='add'>+#</div><div class='add'>+#     https://www.ruby-lang.org/images/header-ruby-logo@2x.png</div><div class='add'>+#</div><div class='add'>+#     Also works for +bmp+, +gif+, +jpeg+, and +jpg+ files.</div><div class='add'>+#</div><div class='add'>+#     Note: Works only for a fully qualified URL.</div><div class='add'>+#</div><div class='add'>+# [Heading]</div><div class='add'>+#</div><div class='add'>+#   - Link: &lt;tt&gt;RDoc::RD@LICENSE&lt;/tt&gt; links to RDoc::RDoc::RD@LICENSE.</div><div class='add'>+#</div><div class='add'>+#   Note that spaces in the actual heading are represented by &lt;tt&gt;+&lt;/tt&gt; characters</div><div class='add'>+#   in the linkable text.</div><div class='add'>+#</div><div class='add'>+#   - Link: &lt;tt&gt;RDoc::Options@Saved+Options&lt;/tt&gt;</div><div class='add'>+#     links to RDoc::Options@Saved+Options.</div><div class='add'>+#</div><div class='add'>+#   Punctuation and other special characters must be escaped like CGI.escape.</div><div class='add'>+#</div><div class='add'>+#   Pro tip: The link to any heading is available in the alphabetical table of contents</div><div class='add'>+#   at the top left of the page for the class or module.</div><div class='add'>+#</div><div class='add'>+# [Section]</div><div class='add'>+#</div><div class='add'>+#   See {Directives for Organizing Documentation}[#class-RDoc::MarkupReference-label-Directives+for+Organizing+Documentation].</div><div class='add'>+#</div><div class='add'>+#   - Link: &lt;tt&gt;RDoc::Markup::ToHtml@Visitor&lt;/tt&gt; links to RDoc::Markup::ToHtml@Visitor.</div><div class='add'>+#</div><div class='add'>+#   If a section and a heading share the same name, the link target is the section.</div><div class='add'>+#</div><div class='add'>+# [Single-Word Text Link]</div><div class='add'>+#</div><div class='add'>+#   Use square brackets to create single-word text link:</div><div class='add'>+#</div><div class='add'>+#   - &lt;tt&gt;GitHub[https://github.com]&lt;/tt&gt; links to GitHub[https://github.com].</div><div class='add'>+#</div><div class='add'>+# [Multi-Word Text Link]</div><div class='add'>+#</div><div class='add'>+#   Use square brackets and curly braces to create a multi-word text link.</div><div class='add'>+#</div><div class='add'>+#   - &lt;tt&gt;{GitHub home page}[https://github.com]&lt;/tt&gt; links to</div><div class='add'>+#     {GitHub home page}[https://github.com].</div><div class='add'>+#</div><div class='add'>+# [&lt;tt&gt;rdoc-ref&lt;/tt&gt; Scheme]</div><div class='add'>+#</div><div class='add'>+#   A link with the &lt;tt&gt;rdoc-ref:&lt;/tt&gt; scheme links to the referenced item,</div><div class='add'>+#   if that item exists.</div><div class='add'>+#   The referenced item may be a class, module, method, file, etc.</div><div class='add'>+#</div><div class='add'>+#   - Class: &lt;tt&gt;Alias[rdoc-ref:RDoc::Alias]&lt;/tt&gt; links to Alias[rdoc-ref:RDoc::Alias].</div><div class='add'>+#   - Module: &lt;tt&gt;RDoc[rdoc-ref:RDoc]&lt;/tt&gt; links to RDoc[rdoc-ref:RDoc].</div><div class='add'>+#   - Method: &lt;tt&gt;foo[rdoc-ref:RDoc::Markup::ToHtml#handle_regexp_RDOCLINK]&lt;/tt&gt;</div><div class='add'>+#     links to foo[rdoc-ref:RDoc::Markup::ToHtml#handle_regexp_RDOCLINK].</div><div class='add'>+#   - Constant: &lt;tt&gt;bar[rdoc-ref:RDoc::Markup::ToHtml::LIST_TYPE_TO_HTML]&lt;/tt&gt;</div><div class='add'>+#     links to bar[rdoc-ref:RDoc::Markup::ToHtml::LIST_TYPE_TO_HTML].</div><div class='add'>+#   - Attribute: &lt;tt&gt;baz[rdoc-ref:RDoc::Markup::ToHtml#code_object]&lt;/tt&gt;</div><div class='add'>+#     links to baz[rdoc-ref:RDoc::Markup::ToHtml#code_object].</div><div class='add'>+#   - Alias: &lt;tt&gt;bad[rdoc-ref:RDoc::MarkupReference#dummy_instance_alias]&lt;/tt&gt; links to</div><div class='add'>+#     bad[rdoc-ref:RDoc::MarkupReference#dummy_instance_alias].</div><div class='add'>+#</div><div class='add'>+#   If the referenced item does not exist, no link is generated</div><div class='add'>+#   and entire &lt;tt&gt;rdoc-ref:&lt;/tt&gt; square-bracketed clause is removed</div><div class='add'>+#   from the resulting text.</div><div class='add'>+#</div><div class='add'>+#   - &lt;tt&gt;Nosuch[rdoc-ref:RDoc::Nosuch]&lt;/tt&gt; is rendered as</div><div class='add'>+#     Nosuch[rdoc-ref:RDoc::Nosuch].</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# [&lt;tt&gt;rdoc-label&lt;/tt&gt; Scheme]</div><div class='add'>+#</div><div class='add'>+#   [Simple]</div><div class='add'>+#</div><div class='add'>+#     You can specify a link target using this form,</div><div class='add'>+#     where the second part cites the id of an HTML element.</div><div class='add'>+#</div><div class='add'>+#     This link refers to the constant +DUMMY_CONSTANT+ on this page:</div><div class='add'>+#</div><div class='add'>+#     - &lt;tt&gt;{DUMMY_CONSTANT}[rdoc-label:DUMMY_CONSTANT]&lt;/tt&gt;</div><div class='add'>+#</div><div class='add'>+#     Thus:</div><div class='add'>+#</div><div class='add'>+#     {DUMMY_CONSTANT}[rdoc-label:DUMMY_CONSTANT]</div><div class='add'>+#</div><div class='add'>+#   [With Return]</div><div class='add'>+#</div><div class='add'>+#     You can specify both a link target and a local label</div><div class='add'>+#     that can be used as the target for a return link.</div><div class='add'>+#     These two links refer to each other:</div><div class='add'>+#</div><div class='add'>+#     - &lt;tt&gt;{go to addressee}[rdoc-label:addressee:sender]&lt;/tt&gt;</div><div class='add'>+#     - &lt;tt&gt;{return to sender}[rdoc-label:sender:addressee]&lt;/tt&gt;</div><div class='add'>+#</div><div class='add'>+#     Thus:</div><div class='add'>+#</div><div class='add'>+#     {go to addressee}[rdoc-label:addressee:sender]</div><div class='add'>+#</div><div class='add'>+#     Some text.</div><div class='add'>+#</div><div class='add'>+#     {return to sender}[rdoc-label:sender:addressee]</div><div class='add'>+#</div><div class='add'>+# [&lt;tt&gt;link:&lt;/tt&gt; Scheme]</div><div class='add'>+#</div><div class='add'>+#   - &lt;tt&gt;link:README_rdoc.html&lt;/tt&gt; links to link:README_rdoc.html.</div><div class='add'>+#</div><div class='add'>+# [&lt;tt&gt;rdoc-image&lt;/tt&gt; Scheme]</div><div class='add'>+#</div><div class='add'>+#   Use the &lt;tt&gt;rdoc-image&lt;/tt&gt; scheme to display an image that is also a link:</div><div class='add'>+#</div><div class='add'>+#     # {rdoc-image:path/to/image}[link_target]</div><div class='add'>+#</div><div class='add'>+#   - Link: &lt;tt&gt;{rdoc-image:https://www.ruby-lang.org/images/header-ruby-logo@2x.png}[https://www.ruby-lang.org]&lt;/tt&gt;</div><div class='add'>+#     displays image &lt;tt&gt;https://www.ruby-lang.org/images/header-ruby-logo@2x.png&lt;/tt&gt;</div><div class='add'>+#     as a link to &lt;tt&gt;https://www.ruby-lang.org&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+#     {rdoc-image:https://www.ruby-lang.org/images/header-ruby-logo@2x.png}[https://www.ruby-lang.org]</div><div class='add'>+#</div><div class='add'>+#   A relative path as the target also works:</div><div class='add'>+#</div><div class='add'>+#   - Link: &lt;tt&gt;{rdoc-image:https://www.ruby-lang.org/images/header-ruby-logo@2x.png}[./Alias.html]&lt;/tt&gt; links to &lt;tt&gt;./Alias.html&lt;/tt&gt;</div><div class='add'>+#</div><div class='add'>+#     {rdoc-image:https://www.ruby-lang.org/images/header-ruby-logo@2x.png}[./Alias.html]</div><div class='add'>+#</div><div class='add'>+# === Escaping Text</div><div class='add'>+#</div><div class='add'>+# Text that would otherwise be interpreted as markup</div><div class='add'>+# can be "escaped," so that it is not interpreted as markup;</div><div class='add'>+# the escape character is the backslash (&lt;tt&gt;'\\'&lt;/tt&gt;).</div><div class='add'>+#</div><div class='add'>+# In a verbatim text block or a code block,</div><div class='add'>+# the escape character is always preserved:</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   This is not verbatim text.</div><div class='add'>+#</div><div class='add'>+#     This is verbatim text, with an escape character \.</div><div class='add'>+#</div><div class='add'>+#   This is not a code block.</div><div class='add'>+#</div><div class='add'>+#     def foo</div><div class='add'>+#       'String with an escape character.'</div><div class='add'>+#     end</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+#</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   This is not verbatim text.</div><div class='add'>+#</div><div class='add'>+#     This is verbatim text, with an escape character \.</div><div class='add'>+#</div><div class='add'>+#   This is not a code block.</div><div class='add'>+#</div><div class='add'>+#     def foo</div><div class='add'>+#       'This is a code block with an escape character \.'</div><div class='add'>+#     end</div><div class='add'>+#</div><div class='add'>+# In typeface markup (italic, bold, or monofont),</div><div class='add'>+# an escape character is preserved unless it is immediately</div><div class='add'>+# followed by nested typeface markup.</div><div class='add'>+#</div><div class='add'>+# Example input:</div><div class='add'>+#</div><div class='add'>+#   This list is about escapes; it contains:</div><div class='add'>+#</div><div class='add'>+#   - &lt;tt&gt;Monofont text with unescaped nested _italic_&lt;/tt&gt;.</div><div class='add'>+#   - &lt;tt&gt;Monofont text with escaped nested \_italic_&lt;/tt&gt;.</div><div class='add'>+#   - &lt;tt&gt;Monofont text with an escape character \&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# Rendered HTML:</div><div class='add'>+#</div><div class='add'>+# &gt;&gt;&gt;</div><div class='add'>+#   This list is about escapes; it contains:</div><div class='add'>+#</div><div class='add'>+#   - &lt;tt&gt;Monofont text with unescaped nested _italic_&lt;/tt&gt;.</div><div class='add'>+#   - &lt;tt&gt;Monofont text with escaped nested \_italic_&lt;/tt&gt;.</div><div class='add'>+#   - &lt;tt&gt;Monofont text with an escape character \ &lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# In other text-bearing blocks</div><div class='add'>+# (paragraphs, block quotes, list items, headings):</div><div class='add'>+#</div><div class='add'>+# - A single escape character immediately followed by markup</div><div class='add'>+#   escapes the markup.</div><div class='add'>+# - A single escape character followed by whitespace is preserved.</div><div class='add'>+# - A single escape character anywhere else is ignored.</div><div class='add'>+# - A double escape character is rendered as a single backslash.</div><div class='add'>+#</div><div class='add'>+#   Example input:</div><div class='add'>+#</div><div class='add'>+#     This list is about escapes; it contains:</div><div class='add'>+#</div><div class='add'>+#     - An unescaped class name, RDoc, that will become a link.</div><div class='add'>+#     - An escaped class name, \RDoc, that will not become a link.</div><div class='add'>+#     - An escape character followed by whitespace \ .</div><div class='add'>+#     - An escape character \that is ignored.</div><div class='add'>+#     - A double escape character \\ that is rendered</div><div class='add'>+#       as a single backslash.</div><div class='add'>+#</div><div class='add'>+#   Rendered HTML:</div><div class='add'>+#</div><div class='add'>+#   &gt;&gt;&gt;</div><div class='add'>+#     This list is about escapes; it contains:</div><div class='add'>+#</div><div class='add'>+#     - An unescaped class name, RDoc, that will become a link.</div><div class='add'>+#     - An escaped class name, \RDoc, that will not become a link.</div><div class='add'>+#     - An escape character followed by whitespace \ .</div><div class='add'>+#     - An escape character \that is ignored.</div><div class='add'>+#     - A double escape character \\ that is rendered</div><div class='add'>+#       as a single backslash.</div><div class='add'>+#</div><div class='add'>+# == Documentation Derived from Ruby Code</div><div class='add'>+#</div><div class='add'>+# [Class]</div><div class='add'>+#</div><div class='add'>+#   By default, \RDoc documents:</div><div class='add'>+#</div><div class='add'>+#   - \Class name.</div><div class='add'>+#   - Parent class.</div><div class='add'>+#   - Singleton methods.</div><div class='add'>+#   - Instance methods.</div><div class='add'>+#   - Aliases.</div><div class='add'>+#   - Constants.</div><div class='add'>+#   - Attributes.</div><div class='add'>+#</div><div class='add'>+# [Module]</div><div class='add'>+#</div><div class='add'>+#   By default, \RDoc documents:</div><div class='add'>+#</div><div class='add'>+#   - \Module name.</div><div class='add'>+#   - \Singleton methods.</div><div class='add'>+#   - Instance methods.</div><div class='add'>+#   - Aliases.</div><div class='add'>+#   - Constants.</div><div class='add'>+#   - Attributes.</div><div class='add'>+#</div><div class='add'>+# [Method]</div><div class='add'>+#</div><div class='add'>+#   By default, \RDoc documents:</div><div class='add'>+#</div><div class='add'>+#   - \Method name.</div><div class='add'>+#   - Arguments.</div><div class='add'>+#   - Yielded values.</div><div class='add'>+#</div><div class='add'>+#   See #method.</div><div class='add'>+#</div><div class='add'>+# [Alias]</div><div class='add'>+#</div><div class='add'>+#   By default, \RDoc documents:</div><div class='add'>+#</div><div class='add'>+#   - Alias name.</div><div class='add'>+#   - Aliased name.</div><div class='add'>+#</div><div class='add'>+#   See #dummy_instance_alias and #dummy_instance_method.</div><div class='add'>+#</div><div class='add'>+# [Constant]</div><div class='add'>+#</div><div class='add'>+#   By default, \RDoc documents:</div><div class='add'>+#</div><div class='add'>+#   - \Constant name.</div><div class='add'>+#</div><div class='add'>+#   See DUMMY_CONSTANT.</div><div class='add'>+#</div><div class='add'>+# [Attribute]</div><div class='add'>+#</div><div class='add'>+#   By default, \RDoc documents:</div><div class='add'>+#</div><div class='add'>+#   - Attribute name.</div><div class='add'>+#   - Attribute type (&lt;tt&gt;[R]&lt;/tt&gt;, &lt;tt&gt;[W]&lt;/tt&gt;, or &lt;tt&gt;[RW]&lt;/tt&gt;)</div><div class='add'>+#</div><div class='add'>+#   See #dummy_attribute.</div><div class='add'>+#</div><div class='add'>+class RDoc::MarkupReference</div><div class='add'>+</div><div class='add'>+  class DummyClass; end</div><div class='add'>+  module DummyModule; end</div><div class='add'>+  def self.dummy_singleton_method(foo, bar); end</div><div class='add'>+  def dummy_instance_method(foo, bar); end;</div><div class='add'>+  alias dummy_instance_alias dummy_instance_method</div><div class='add'>+  attr_accessor :dummy_attribute</div><div class='add'>+  alias dummy_attribute_alias dummy_attribute</div><div class='add'>+  DUMMY_CONSTANT = ''</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   call_seq_directive(foo, bar)</div><div class='add'>+  #   Can be anything -&gt; bar</div><div class='add'>+  #   Also anything more -&gt; baz or bat</div><div class='add'>+  #</div><div class='add'>+  # The &lt;tt&gt;:call-seq:&lt;/tt&gt; directive overrides the actual calling sequence</div><div class='add'>+  # found in the Ruby code.</div><div class='add'>+  #</div><div class='add'>+  # - It can specify anything at all.</div><div class='add'>+  # - It can have multiple calling sequences.</div><div class='add'>+  #</div><div class='add'>+  # This one includes &lt;tt&gt;Can be anything -&gt; foo&lt;/tt&gt;, which is nonsense.</div><div class='add'>+  #</div><div class='add'>+  # Note that the "arrow" is two characters, hyphen and right angle-bracket,</div><div class='add'>+  # which is made into a single character in the HTML.</div><div class='add'>+  #</div><div class='add'>+  # Click on the calling sequence to see the code.</div><div class='add'>+  #</div><div class='add'>+  # Here is the &lt;tt&gt;:call-seq:&lt;/tt&gt; directive given for the method:</div><div class='add'>+  #</div><div class='add'>+  #   :call-seq:</div><div class='add'>+  #     call_seq_directive(foo, bar)</div><div class='add'>+  #     Can be anything -&gt; bar</div><div class='add'>+  #     Also anything more -&gt; baz or bat</div><div class='add'>+  #</div><div class='add'>+  def call_seq_directive</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # The &lt;tt&gt;:args:&lt;/tt&gt; directive overrides the actual arguments found in the Ruby code.</div><div class='add'>+  #</div><div class='add'>+  # Click on the calling sequence to see the code.</div><div class='add'>+  #</div><div class='add'>+  def args_directive(foo, bar) # :args: baz</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # The &lt;tt&gt;:yields:&lt;/tt&gt; directive overrides the actual yield found in the Ruby code.</div><div class='add'>+  #</div><div class='add'>+  # Click on the calling sequence to see the code.</div><div class='add'>+  #</div><div class='add'>+  def yields_directive(foo, bar) # :yields: 'bat'</div><div class='add'>+    yield 'baz'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # This method is documented only by \RDoc, except for these comments.</div><div class='add'>+  #</div><div class='add'>+  # Click on the calling sequence to see the code.</div><div class='add'>+  #</div><div class='add'>+  def method(foo, bar)</div><div class='add'>+    yield 'baz'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+end</div><div class='head'>diff --git a/doc/regexp.rdoc b/doc/regexp.rdoc<br/>index 9218a75b67..92c7ecf66e 100644<br/>--- a/<a href='/ruby.git/tree/doc/regexp.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/regexp.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/regexp.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/regexp.rdoc</a></div><div class='hunk'>@@ -27,12 +27,22 @@ Here 'haystack' contains the pattern 'hay', so it matches:</div><div class='ctx'> Specifically, &lt;tt&gt;/st/&lt;/tt&gt; requires that the string contains the letter</div><div class='ctx'> _s_ followed by the letter _t_, so it matches _haystack_, also.</div><div class='ctx'> </div><div class='add'>+Note that any Regexp matching will raise a RuntimeError if timeout is set and</div><div class='add'>+exceeded. See {"Timeout"}[#label-Timeout] section in detail.</div><div class='add'>+</div><div class='add'>+== \Regexp Interpolation</div><div class='add'>+</div><div class='add'>+A regexp may contain interpolated strings; trivially:</div><div class='add'>+</div><div class='add'>+  foo = 'bar'</div><div class='add'>+  /#{foo}/ # =&gt; /bar/</div><div class='add'>+</div><div class='ctx'> == &lt;tt&gt;=~&lt;/tt&gt; and Regexp#match</div><div class='ctx'> </div><div class='ctx'> Pattern matching may be achieved by using &lt;tt&gt;=~&lt;/tt&gt; operator or Regexp#match</div><div class='ctx'> method.</div><div class='ctx'> </div><div class='del'>-=== &lt;tt&gt;=~&lt;/tt&gt; operator</div><div class='add'>+=== &lt;tt&gt;=~&lt;/tt&gt; Operator</div><div class='ctx'> </div><div class='ctx'> &lt;tt&gt;=~&lt;/tt&gt; is Ruby's basic pattern-matching operator.  When one operand is a</div><div class='ctx'> regular expression and the other is a string then the regular expression is</div><div class='hunk'>@@ -51,7 +61,7 @@ Using &lt;tt&gt;=~&lt;/tt&gt; operator with a String and Regexp the &lt;tt&gt;$~&lt;/tt&gt; global</div><div class='ctx'> variable is set after a successful match.  &lt;tt&gt;$~&lt;/tt&gt; holds a MatchData</div><div class='ctx'> object. Regexp.last_match is equivalent to &lt;tt&gt;$~&lt;/tt&gt;.</div><div class='ctx'> </div><div class='del'>-=== Regexp#match method</div><div class='add'>+=== Regexp#match Method</div><div class='ctx'> </div><div class='ctx'> The #match method returns a MatchData object:</div><div class='ctx'> </div><div class='hunk'>@@ -68,8 +78,9 @@ a backslash literally, backslash-escape it: &lt;tt&gt;\\\\&lt;/tt&gt;.</div><div class='ctx'>     /1 \+ 2 = 3\?/.match('Does 1 + 2 = 3?') #=&gt; #&lt;MatchData "1 + 2 = 3?"&gt;</div><div class='ctx'>     /a\\\\b/.match('a\\\\b')                    #=&gt; #&lt;MatchData "a\\b"&gt;</div><div class='ctx'> </div><div class='del'>-Patterns behave like double-quoted strings so can contain the same</div><div class='del'>-backslash escapes.</div><div class='add'>+Patterns behave like double-quoted strings and can contain the same</div><div class='add'>+backslash escapes (the meaning of &lt;tt&gt;\s&lt;/tt&gt; is different, however,</div><div class='add'>+see below[#label-Character+Classes]).</div><div class='ctx'> </div><div class='ctx'>     /\s\u{6771 4eac 90fd}/.match("Go to æ±äº¬éƒ½")</div><div class='ctx'>         #=&gt; #&lt;MatchData " æ±äº¬éƒ½"&gt;</div><div class='hunk'>@@ -131,6 +142,9 @@ The following metacharacters also behave like character classes:</div><div class='ctx'> * &lt;tt&gt;/\H/&lt;/tt&gt; - A non-hexdigit character (&lt;tt&gt;[^0-9a-fA-F]&lt;/tt&gt;)</div><div class='ctx'> * &lt;tt&gt;/\s/&lt;/tt&gt; - A whitespace character: &lt;tt&gt;/[ \t\r\n\f\v]/&lt;/tt&gt;</div><div class='ctx'> * &lt;tt&gt;/\S/&lt;/tt&gt; - A non-whitespace character: &lt;tt&gt;/[^ \t\r\n\f\v]/&lt;/tt&gt;</div><div class='add'>+* &lt;tt&gt;/\R/&lt;/tt&gt; - A linebreak: &lt;tt&gt;\n&lt;/tt&gt;, &lt;tt&gt;\v&lt;/tt&gt;, &lt;tt&gt;\f&lt;/tt&gt;, &lt;tt&gt;\r&lt;/tt&gt;</div><div class='add'>+  &lt;tt&gt;\u0085&lt;/tt&gt; (NEXT LINE), &lt;tt&gt;\u2028&lt;/tt&gt; (LINE SEPARATOR), &lt;tt&gt;\u2029&lt;/tt&gt; (PARAGRAPH SEPARATOR)</div><div class='add'>+  or &lt;tt&gt;\r\n&lt;/tt&gt;.</div><div class='ctx'> </div><div class='ctx'> POSIX &lt;i&gt;bracket expressions&lt;/i&gt; are also similar to character classes.</div><div class='ctx'> They provide a portable alternative to the above, with the added benefit</div><div class='hunk'>@@ -186,11 +200,16 @@ At least one uppercase character ('H'), at least one lowercase character</div><div class='ctx'> </div><div class='ctx'>     "Hello".match(/[[:upper:]]+[[:lower:]]+l{2}o/) #=&gt; #&lt;MatchData "Hello"&gt;</div><div class='ctx'> </div><div class='add'>+=== Greedy Match</div><div class='add'>+</div><div class='ctx'> Repetition is &lt;i&gt;greedy&lt;/i&gt; by default: as many occurrences as possible</div><div class='ctx'> are matched while still allowing the overall match to succeed. By</div><div class='ctx'> contrast, &lt;i&gt;lazy&lt;/i&gt; matching makes the minimal amount of matches</div><div class='del'>-necessary for overall success. A greedy metacharacter can be made lazy by</div><div class='del'>-following it with &lt;tt&gt;?&lt;/tt&gt;.</div><div class='add'>+necessary for overall success. Most greedy metacharacters can be made lazy</div><div class='add'>+by following them with &lt;tt&gt;?&lt;/tt&gt;. For the &lt;tt&gt;{n}&lt;/tt&gt; pattern, because</div><div class='add'>+it specifies an exact number of characters to match and not a variable</div><div class='add'>+number of characters, the &lt;tt&gt;?&lt;/tt&gt; metacharacter instead makes the</div><div class='add'>+repeated pattern optional.</div><div class='ctx'> </div><div class='ctx'> Both patterns below match the string. The first uses a greedy quantifier so</div><div class='ctx'> '.+' matches '&lt;a&gt;&lt;b&gt;'; the second uses a lazy quantifier so '.+?' matches</div><div class='hunk'>@@ -199,21 +218,27 @@ Both patterns below match the string. The first uses a greedy quantifier so</div><div class='ctx'>     /&lt;.+&gt;/.match("&lt;a&gt;&lt;b&gt;")  #=&gt; #&lt;MatchData "&lt;a&gt;&lt;b&gt;"&gt;</div><div class='ctx'>     /&lt;.+?&gt;/.match("&lt;a&gt;&lt;b&gt;") #=&gt; #&lt;MatchData "&lt;a&gt;"&gt;</div><div class='ctx'> </div><div class='add'>+=== Possessive Match</div><div class='add'>+</div><div class='ctx'> A quantifier followed by &lt;tt&gt;+&lt;/tt&gt; matches &lt;i&gt;possessively&lt;/i&gt;: once it</div><div class='ctx'> has matched it does not backtrack. They behave like greedy quantifiers,</div><div class='ctx'> but having matched they refuse to "give up" their match even if this</div><div class='ctx'> jeopardises the overall match.</div><div class='ctx'> </div><div class='add'>+    /&lt;.*&gt;&lt;.+&gt;/.match("&lt;a&gt;&lt;b&gt;") #=&gt; #&lt;MatchData "&lt;a&gt;&lt;b&gt;"&gt;</div><div class='add'>+    /&lt;.*+&gt;&lt;.+&gt;/.match("&lt;a&gt;&lt;b&gt;") #=&gt; nil</div><div class='add'>+    /&lt;.*&gt;&lt;.++&gt;/.match("&lt;a&gt;&lt;b&gt;") #=&gt; nil</div><div class='add'>+</div><div class='ctx'> == Capturing</div><div class='ctx'> </div><div class='ctx'> Parentheses can be used for &lt;i&gt;capturing&lt;/i&gt;. The text enclosed by the</div><div class='del'>-&lt;i&gt;n&lt;/i&gt;&lt;sup&gt;th&lt;/sup&gt; group of parentheses can be subsequently referred to</div><div class='add'>+&lt;i&gt;n&lt;/i&gt;th group of parentheses can be subsequently referred to</div><div class='ctx'> with &lt;i&gt;n&lt;/i&gt;. Within a pattern use the &lt;i&gt;backreference&lt;/i&gt;</div><div class='del'>-&lt;tt&gt;\n&lt;/tt&gt;; outside of the pattern use</div><div class='del'>-&lt;tt&gt;MatchData[&lt;/tt&gt;&lt;i&gt;n&lt;/i&gt;&lt;tt&gt;]&lt;/tt&gt;.</div><div class='add'>+&lt;tt&gt;\n&lt;/tt&gt; (e.g. &lt;tt&gt;\1&lt;/tt&gt;); outside of the pattern use</div><div class='add'>+&lt;tt&gt;MatchData[n]&lt;/tt&gt; (e.g. &lt;tt&gt;MatchData[1]&lt;/tt&gt;).</div><div class='ctx'> </div><div class='del'>-'at' is captured by the first group of parentheses, then referred to later</div><div class='del'>-with &lt;tt&gt;\1&lt;/tt&gt;:</div><div class='add'>+In this example, &lt;tt&gt;'at'&lt;/tt&gt; is captured by the first group of</div><div class='add'>+parentheses, then referred to later with &lt;tt&gt;\1&lt;/tt&gt;:</div><div class='ctx'> </div><div class='ctx'>     /[csh](..) [csh]\1 in/.match("The cat sat in the hat")</div><div class='ctx'>         #=&gt; #&lt;MatchData "cat sat in" 1:"at"&gt;</div><div class='hunk'>@@ -223,6 +248,23 @@ available with its #[] method:</div><div class='ctx'> </div><div class='ctx'>     /[csh](..) [csh]\1 in/.match("The cat sat in the hat")[1] #=&gt; 'at'</div><div class='ctx'> </div><div class='add'>+While Ruby supports an arbitrary number of numbered captured groups,</div><div class='add'>+only groups 1-9 are supported using the &lt;tt&gt;\n&lt;/tt&gt; backreference</div><div class='add'>+syntax.</div><div class='add'>+</div><div class='add'>+Ruby also supports &lt;tt&gt;\0&lt;/tt&gt; as a special backreference, which</div><div class='add'>+references the entire matched string.  This is also available at</div><div class='add'>+&lt;tt&gt;MatchData[0]&lt;/tt&gt;.  Note that the &lt;tt&gt;\0&lt;/tt&gt; backreference cannot</div><div class='add'>+be used inside the regexp, as backreferences can only be used after the</div><div class='add'>+end of the capture group, and the &lt;tt&gt;\0&lt;/tt&gt; backreference uses the</div><div class='add'>+implicit capture group of the entire match.  However, you can use</div><div class='add'>+this backreference when doing substitution:</div><div class='add'>+</div><div class='add'>+  "The cat sat in the hat".gsub(/[csh]at/, '\0s')</div><div class='add'>+    # =&gt; "The cats sats in the hats"</div><div class='add'>+</div><div class='add'>+=== Named Captures</div><div class='add'>+</div><div class='ctx'> Capture groups can be referred to by name when defined with the</div><div class='ctx'> &lt;tt&gt;(?&lt;&lt;/tt&gt;&lt;i&gt;name&lt;/i&gt;&lt;tt&gt;&gt;)&lt;/tt&gt; or &lt;tt&gt;(?'&lt;/tt&gt;&lt;i&gt;name&lt;/i&gt;&lt;tt&gt;')&lt;/tt&gt;</div><div class='ctx'> constructs.</div><div class='hunk'>@@ -238,7 +280,15 @@ where _name_ is the group name.</div><div class='ctx'>         #=&gt; #&lt;MatchData "ototo" vowel:"o"&gt;</div><div class='ctx'> </div><div class='ctx'> *Note*: A regexp can't use named backreferences and numbered</div><div class='del'>-backreferences simultaneously.</div><div class='add'>+backreferences simultaneously. Also, if a named capture is used in a</div><div class='add'>+regexp, then parentheses used for grouping which would otherwise result</div><div class='add'>+in a unnamed capture are treated as non-capturing.</div><div class='add'>+</div><div class='add'>+    /(\w)(\w)/.match("ab").captures # =&gt; ["a", "b"]</div><div class='add'>+    /(\w)(\w)/.match("ab").named_captures # =&gt; {}</div><div class='add'>+</div><div class='add'>+    /(?&lt;c&gt;\w)(\w)/.match("ab").captures # =&gt; ["a"]</div><div class='add'>+    /(?&lt;c&gt;\w)(\w)/.match("ab").named_captures # =&gt; {"c"=&gt;"a"}</div><div class='ctx'> </div><div class='ctx'> When named capture groups are used with a literal regexp on the left-hand</div><div class='ctx'> side of an expression and the &lt;tt&gt;=~&lt;/tt&gt; operator, the captured text is</div><div class='hunk'>@@ -347,8 +397,8 @@ then matches a literal &lt;i&gt;)&lt;/i&gt;:</div><div class='ctx'> </div><div class='ctx'> == Alternation</div><div class='ctx'> </div><div class='del'>-The vertical bar metacharacter (&lt;tt&gt;|&lt;/tt&gt;) combines two expressions into</div><div class='del'>-a single one that matches either of the expressions. Each expression is an</div><div class='add'>+The vertical bar metacharacter (&lt;tt&gt;|&lt;/tt&gt;) combines several expressions into</div><div class='add'>+a single one that matches any of the expressions. Each expression is an</div><div class='ctx'> &lt;i&gt;alternative&lt;/i&gt;.</div><div class='ctx'> </div><div class='ctx'>     /\w(and|or)\w/.match("Feliformia") #=&gt; #&lt;MatchData "form" 1:"or"&gt;</div><div class='hunk'>@@ -365,6 +415,7 @@ much like POSIX bracket classes.</div><div class='ctx'> * &lt;tt&gt;/\p{Blank}/&lt;/tt&gt; - Space or tab</div><div class='ctx'> * &lt;tt&gt;/\p{Cntrl}/&lt;/tt&gt; - Control character</div><div class='ctx'> * &lt;tt&gt;/\p{Digit}/&lt;/tt&gt; - Digit</div><div class='add'>+* &lt;tt&gt;/\p{Emoji}/&lt;/tt&gt; - Unicode emoji</div><div class='ctx'> * &lt;tt&gt;/\p{Graph}/&lt;/tt&gt; - Non-blank character (excludes spaces, control</div><div class='ctx'>   characters, and similar)</div><div class='ctx'> * &lt;tt&gt;/\p{Lower}/&lt;/tt&gt; - Lowercase alphabetical character</div><div class='hunk'>@@ -500,6 +551,21 @@ characters, &lt;i&gt;anchoring&lt;/i&gt; the match to a specific position.</div><div class='ctx'>   assertion: ensures that the preceding characters do not match</div><div class='ctx'>   &lt;i&gt;pat&lt;/i&gt;, but doesn't include those characters in the matched text</div><div class='ctx'> </div><div class='add'>+* &lt;tt&gt;\K&lt;/tt&gt; - &lt;i&gt;Match reset&lt;/i&gt;: the matched content preceding</div><div class='add'>+  &lt;tt&gt;\K&lt;/tt&gt; in the regexp is excluded from the result.  For example,</div><div class='add'>+  the following two regexps are almost equivalent:</div><div class='add'>+</div><div class='add'>+      /ab\Kc/ =~ "abc"     #=&gt; 0</div><div class='add'>+      /(?&lt;=ab)c/ =~ "abc"  #=&gt; 2</div><div class='add'>+</div><div class='add'>+  These match same string and &lt;i&gt;$&amp;&lt;/i&gt; equals &lt;tt&gt;"c"&lt;/tt&gt;, while the</div><div class='add'>+  matched position is different.</div><div class='add'>+</div><div class='add'>+  As are the following two regexps:</div><div class='add'>+</div><div class='add'>+      /(a)\K(b)\Kc/</div><div class='add'>+      /(?&lt;=(?&lt;=(a))(b))c/</div><div class='add'>+</div><div class='ctx'> If a pattern isn't anchored it can begin at any point in the string:</div><div class='ctx'> </div><div class='ctx'>     /real/.match("surrealist") #=&gt; #&lt;MatchData "real"&gt;</div><div class='hunk'>@@ -558,6 +624,11 @@ Options may also be used with &lt;tt&gt;Regexp.new&lt;/tt&gt;:</div><div class='ctx'>     Regexp.new("abc # Comment", Regexp::EXTENDED)             #=&gt; /abc # Comment/x</div><div class='ctx'>     Regexp.new("abc", Regexp::IGNORECASE | Regexp::MULTILINE) #=&gt; /abc/mi</div><div class='ctx'> </div><div class='add'>+    Regexp.new("abc", "i")           #=&gt; /abc/i</div><div class='add'>+    Regexp.new("abc", "m")           #=&gt; /abc/m</div><div class='add'>+    Regexp.new("abc # Comment", "x") #=&gt; /abc # Comment/x</div><div class='add'>+    Regexp.new("abc", "im")          #=&gt; /abc/mi</div><div class='add'>+</div><div class='ctx'> == Free-Spacing Mode and Comments</div><div class='ctx'> </div><div class='ctx'> As mentioned above, the &lt;tt&gt;x&lt;/tt&gt; option enables &lt;i&gt;free-spacing&lt;/i&gt;</div><div class='hunk'>@@ -617,9 +688,10 @@ regexp's encoding can be explicitly fixed by supplying</div><div class='ctx'>        # raises Encoding::CompatibilityError: incompatible encoding regexp match</div><div class='ctx'>        #         (ISO-8859-1 regexp with UTF-8 string)</div><div class='ctx'> </div><div class='del'>-== Special global variables</div><div class='add'>+== \Regexp Global Variables</div><div class='ctx'> </div><div class='ctx'> Pattern matching sets some global variables :</div><div class='add'>+</div><div class='ctx'> * &lt;tt&gt;$~&lt;/tt&gt; is equivalent to Regexp.last_match;</div><div class='ctx'> * &lt;tt&gt;$&amp;&lt;/tt&gt; contains the complete matched text;</div><div class='ctx'> * &lt;tt&gt;$`&lt;/tt&gt; contains string before match;</div><div class='hunk'>@@ -707,3 +779,23 @@ with &lt;i&gt;a{0,29}&lt;/i&gt;:</div><div class='ctx'> </div><div class='ctx'>     Regexp.new('a{0,29}' + 'a' * 29) =~ 'a' * 29</div><div class='ctx'> </div><div class='add'>+== Timeout</div><div class='add'>+</div><div class='add'>+There are two APIs to set timeout. One is Regexp.timeout=, which is</div><div class='add'>+process-global configuration of timeout for Regexp matching.</div><div class='add'>+</div><div class='add'>+    Regexp.timeout = 3</div><div class='add'>+    s = 'a' * 25 + 'd' + 'a' * 4 + 'c'</div><div class='add'>+    /(b|a+)*c/ =~ s  #=&gt; This raises an exception in three seconds</div><div class='add'>+</div><div class='add'>+The other is timeout keyword of Regexp.new.</div><div class='add'>+</div><div class='add'>+    re = Regexp.new("(b|a+)*c", timeout: 3)</div><div class='add'>+    s = 'a' * 25 + 'd' + 'a' * 4 + 'c'</div><div class='add'>+    /(b|a+)*c/ =~ s  #=&gt; This raises an exception in three seconds</div><div class='add'>+</div><div class='add'>+When using Regexps to process untrusted input, you should use the timeout</div><div class='add'>+feature to avoid excessive backtracking. Otherwise, a malicious user can</div><div class='add'>+provide input to Regexp causing Denial-of-Service attack.</div><div class='add'>+Note that the timeout is not set by default because an appropriate limit</div><div class='add'>+highly depends on an application requirement and context.</div><div class='head'>diff --git a/doc/security.rdoc b/doc/security.rdoc<br/>index d7d6464ce1..ae20ed30fa 100644<br/>--- a/<a href='/ruby.git/tree/doc/security.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/security.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/security.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/security.rdoc</a></div><div class='hunk'>@@ -15,19 +15,6 @@ mailto:security@ruby-lang.org ({the PGP public</div><div class='ctx'> key}[https://www.ruby-lang.org/security.asc]), which is a private mailing list.</div><div class='ctx'> Reported problems will be published after fixes.</div><div class='ctx'> </div><div class='del'>-== &lt;code&gt;$SAFE&lt;/code&gt;</div><div class='del'>-</div><div class='del'>-Ruby provides a mechanism to restrict what operations can be performed by Ruby</div><div class='del'>-code in the form of the &lt;code&gt;$SAFE&lt;/code&gt; variable.</div><div class='del'>-</div><div class='del'>-However, &lt;code&gt;$SAFE&lt;/code&gt; does not provide a secure environment for executing</div><div class='del'>-untrusted code.</div><div class='del'>-</div><div class='del'>-If you need to execute untrusted code, you should use an operating system level</div><div class='del'>-sandboxing mechanism. On Linux, ptrace or LXC can be used to sandbox</div><div class='del'>-potentially malicious code. Other similar mechanisms exist on every major</div><div class='del'>-operating system.</div><div class='del'>-</div><div class='ctx'> == +Marshal.load+</div><div class='ctx'> </div><div class='ctx'> Ruby's +Marshal+ module provides methods for serializing and deserializing Ruby</div><div class='head'>diff --git a/doc/shell.rd.ja b/doc/shell.rd.ja<br/>deleted file mode 100644<br/>index a9507fe92a..0000000000<br/>--- a/<a href='/ruby.git/tree/doc/shell.rd.ja?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/shell.rd.ja</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,335 +0,0 @@</div><div class='del'>- -- shell.rb</div><div class='del'>-				$Release Version: 0.6.0 $</div><div class='del'>-			   	$Revision$</div><div class='del'>-			   	by Keiju ISHITSUKA(keiju@ishitsuka.com)</div><div class='del'>-</div><div class='del'>-=begin</div><div class='del'>-</div><div class='del'>-= ç›®çš„</div><div class='del'>-</div><div class='del'>-rubyä¸Šã§sh/cshã®ã‚ˆã†ã«ã‚³ãƒžãƒ³ãƒ‰ã®å®Ÿè¡ŒåŠã³ãƒ•ã‚£ãƒ«ã‚¿ãƒªãƒ³ã‚°ã‚’æ‰‹è»½ã«è¡Œã†.</div><div class='del'>-sh/cshã®åˆ¶å¾¡æ–‡ã¯rubyã®æ©Ÿèƒ½ã‚’ç”¨ã„ã¦å®Ÿç¾ã™ã‚‹.</div><div class='del'>-</div><div class='del'>-= ä¸»ãªã‚¯ãƒ©ã‚¹ä¸€è¦§</div><div class='del'>-</div><div class='del'>-== Shell</div><div class='del'>-</div><div class='del'>-Shellã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã¯ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’æŒã¡, ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œã¯ãã“ã‹ã‚‰ã®</div><div class='del'>-ç›¸å¯¾ãƒ‘ã‚¹ã«ãªã‚Šã¾ã™.</div><div class='del'>-</div><div class='del'>---- Shell#cwd</div><div class='del'>---- Shell#dir</div><div class='del'>---- Shell#getwd</div><div class='del'>---- Shell#pwd</div><div class='del'>-</div><div class='del'>-      ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’è¿”ã™ã€‚</div><div class='del'>-</div><div class='del'>---- Shell#system_path</div><div class='del'>-</div><div class='del'>-      ã‚³ãƒžãƒ³ãƒ‰ã‚µãƒ¼ãƒãƒ‘ã‚¹ã®é…åˆ—ã‚’è¿”ã™ã€‚</div><div class='del'>-</div><div class='del'>---- Shell#umask</div><div class='del'>-</div><div class='del'>-      umaskã‚’è¿”ã™ã€‚</div><div class='del'>-</div><div class='del'>-== Filter</div><div class='del'>-</div><div class='del'>-ã‚³ãƒžãƒ³ãƒ‰ã®å®Ÿè¡Œçµæžœã¯ã™ã¹ã¦Filterã¨ã—ã¦ã‹ãˆã‚Šã¾ã™. Enumerableã‚’includeã—</div><div class='del'>-ã¦ã„ã¾ã™.</div><div class='del'>-</div><div class='del'>-= ä¸»ãªãƒ¡ã‚½ãƒƒãƒ‰ä¸€è¦§</div><div class='del'>-</div><div class='del'>-== ã‚³ãƒžãƒ³ãƒ‰å®šç¾©</div><div class='del'>-</div><div class='del'>-OSä¸Šã®ã‚³ãƒžãƒ³ãƒ‰ã‚’å®Ÿè¡Œã™ã‚‹ã«ã¯ã¾ãš, Shellã®ãƒ¡ã‚½ãƒƒãƒ‰ã¨ã—ã¦å®šç¾©ã—ã¾ã™.</div><div class='del'>-</div><div class='del'>-æ³¨) ã‚³ãƒžãƒ³ãƒ‰ã‚’å®šç¾©ã—ãªãã¨ã‚‚ç›´æŽ¥å®Ÿè¡Œã§ãã‚‹Shell#systemã‚³ãƒžãƒ³ãƒ‰ã‚‚ã‚ã‚Šã¾ã™.</div><div class='del'>-</div><div class='del'>---- Shell.def_system_command(command, path = command)</div><div class='del'>-</div><div class='del'>-      Shellã®ãƒ¡ã‚½ãƒƒãƒ‰ã¨ã—ã¦commandã‚’ç™»éŒ²ã—ã¾ã™.</div><div class='del'>-</div><div class='del'>-      ä¾‹)</div><div class='del'>-      Shell.def_system_command "ls"</div><div class='del'>-        ls ã‚’å®šç¾©</div><div class='del'>-</div><div class='del'>-      Shell.def_system_command "sys_sort", "sort"</div><div class='del'>-        sortã‚³ãƒžãƒ³ãƒ‰ã‚’sys_sortã¨ã—ã¦å®šç¾©</div><div class='del'>-</div><div class='del'>---- Shell.undef_system_command(command)</div><div class='del'>-</div><div class='del'>-      commandã‚’å‰Šé™¤ã—ã¾ã™.</div><div class='del'>-</div><div class='del'>---- Shell.alias_command(ali, command, *opts) {...}</div><div class='del'>-</div><div class='del'>-      commandã®aliasã‚’ã—ã¾ã™.</div><div class='del'>-</div><div class='del'>-      ä¾‹)</div><div class='del'>-        Shell.alias_command "lsC", "ls", "-CBF", "--show-control-chars"</div><div class='del'>-        Shell.alias_command("lsC", "ls"){|*opts| ["-CBF", "--show-control-chars", *opts]}</div><div class='del'>-</div><div class='del'>---- Shell.unalias_command(ali)</div><div class='del'>-</div><div class='del'>-      commandã®aliasã‚’å‰Šé™¤ã—ã¾ã™.</div><div class='del'>-</div><div class='del'>---- Shell.install_system_commands(pre = "sys_")</div><div class='del'>-</div><div class='del'>-      system_pathä¸Šã«ã‚ã‚‹å…¨ã¦ã®å®Ÿè¡Œå¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«ã‚’Shellã«å®šç¾©ã™ã‚‹. ãƒ¡ã‚½ãƒƒ</div><div class='del'>-      ãƒ‰åã¯å…ƒã®ãƒ•ã‚¡ã‚¤ãƒ«åã®é ­ã«preã‚’ã¤ã‘ãŸã‚‚ã®ã¨ãªã‚‹.</div><div class='del'>-</div><div class='del'>-== ç”Ÿæˆ</div><div class='del'>-</div><div class='del'>---- Shell.new</div><div class='del'>-</div><div class='del'>-      ãƒ—ãƒ­ã‚»ã‚¹ã®ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨ã™ã‚‹Shellã‚ª</div><div class='del'>-      ãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’ç”Ÿæˆã—ã¾ã™.</div><div class='del'>-</div><div class='del'>---- Shell.cd(path)</div><div class='del'>-</div><div class='del'>-      pathã‚’ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨ã™ã‚‹Shellã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’ç”Ÿæˆã—ã¾ã™.</div><div class='del'>-</div><div class='del'>-== ãƒ—ãƒ­ã‚»ã‚¹ç®¡ç†</div><div class='del'>-</div><div class='del'>---- Shell#jobs</div><div class='del'>-</div><div class='del'>-      ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒªãƒ³ã‚°ã•ã‚Œã¦ã„ã‚‹jobã®ä¸€è¦§ã‚’è¿”ã™.</div><div class='del'>-</div><div class='del'>---- Shell#kill sig, job</div><div class='del'>-</div><div class='del'>-      jobã«ã‚·ã‚°ãƒŠãƒ«sigã‚’é€ã‚‹</div><div class='del'>-</div><div class='del'>-== ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªæ“ä½œ</div><div class='del'>-</div><div class='del'>---- Shell#cd(path, &amp;block)</div><div class='del'>---- Shell#chdir</div><div class='del'>-</div><div class='del'>-      ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’pathã«ã™ã‚‹. ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦å‘¼ã°ã‚ŒãŸã¨ãã«ã¯</div><div class='del'>-      ãƒ–ãƒ­ãƒƒã‚¯å®Ÿè¡Œä¸­ã®ã¿ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’å¤‰æ›´ã™ã‚‹.</div><div class='del'>-</div><div class='del'>---- Shell#pushd(path = nil, &amp;block)</div><div class='del'>---- Shell#pushdir</div><div class='del'>-</div><div class='del'>-      ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚¹ã‚¿ãƒƒã‚¯ã«ã¤ã¿, ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯</div><div class='del'>-      ãƒˆãƒªã‚’pathã«ã™ã‚‹. pathãŒçœç•¥ã•ã‚ŒãŸã¨ãã«ã¯, ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨</div><div class='del'>-      ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚¹ã‚¿ãƒƒã‚¯ã®ãƒˆãƒƒãƒ—ã‚’äº¤æ›ã™ã‚‹. ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã¨ã—ã¦å‘¼ã°ã‚ŒãŸã¨</div><div class='del'>-      ãã«ã¯, ãƒ–ãƒ­ãƒƒã‚¯å®Ÿè¡Œä¸­ã®ã¿pushdã™ã‚‹.</div><div class='del'>-</div><div class='del'>---- Shell#popd</div><div class='del'>---- Shell#popdir</div><div class='del'>-</div><div class='del'>-      ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚¹ã‚¿ãƒƒã‚¯ã‹ã‚‰ãƒãƒƒãƒ—ã—, ãã‚Œã‚’ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã™ã‚‹.</div><div class='del'>-</div><div class='del'>-== ãƒ•ã‚¡ã‚¤ãƒ«/ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªæ“ä½œ</div><div class='del'>-</div><div class='del'>---- Shell#foreach(path = nil, &amp;block)</div><div class='del'>-</div><div class='del'>-      pathãŒãƒ•ã‚¡ã‚¤ãƒ«ãªã‚‰, File#foreach</div><div class='del'>-      pathãŒãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãªã‚‰, Dir#foreach</div><div class='del'>-</div><div class='del'>---- Shell#open(path, mode)</div><div class='del'>-</div><div class='del'>-      pathãŒãƒ•ã‚¡ã‚¤ãƒ«ãªã‚‰, File#open</div><div class='del'>-      pathãŒãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãªã‚‰, Dir#open</div><div class='del'>-</div><div class='del'>---- Shell#unlink(path)</div><div class='del'>-</div><div class='del'>-      pathãŒãƒ•ã‚¡ã‚¤ãƒ«ãªã‚‰, File#unlink</div><div class='del'>-      pathãŒãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãªã‚‰, Dir#unlink</div><div class='del'>-</div><div class='del'>---- Shell#test(command, file1, file2)</div><div class='del'>---- Shell#[command, file1, file2]</div><div class='del'>-</div><div class='del'>-      ãƒ•ã‚¡ã‚¤ãƒ«ãƒ†ã‚¹ãƒˆé–¢æ•°testã¨åŒã˜.</div><div class='del'>-      ä¾‹)</div><div class='del'>-          sh[?e, "foo"]</div><div class='del'>-          sh[:e, "foo"]</div><div class='del'>-          sh["e", "foo"]</div><div class='del'>-          sh[:exists?, "foo"]</div><div class='del'>-          sh["exists?", "foo"]</div><div class='del'>-</div><div class='del'>---- Shell#mkdir(*path)</div><div class='del'>-</div><div class='del'>-      Dir.mkdirã¨åŒã˜(è¤‡æ•°å¯)</div><div class='del'>-</div><div class='del'>---- Shell#rmdir(*path)</div><div class='del'>-</div><div class='del'>-      Dir.rmdirã¨åŒã˜(è¤‡æ•°å¯)</div><div class='del'>-</div><div class='del'>-== ã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œ</div><div class='del'>-</div><div class='del'>---- System#system(command, *opts)</div><div class='del'>-</div><div class='del'>-      commandã‚’å®Ÿè¡Œã™ã‚‹.</div><div class='del'>-      ä¾‹)</div><div class='del'>-        print sh.system("ls", "-l")</div><div class='del'>-        sh.system("ls", "-l") | sh.head &gt; STDOUT</div><div class='del'>-</div><div class='del'>---- System#rehash</div><div class='del'>-</div><div class='del'>-      ãƒªãƒãƒƒã‚·ãƒ¥ã™ã‚‹</div><div class='del'>-</div><div class='del'>---- Shell#transact &amp;block</div><div class='del'>-</div><div class='del'>-      ãƒ–ãƒ­ãƒƒã‚¯ä¸­ã§ã¯shellã‚’selfã¨ã—ã¦å®Ÿè¡Œã™ã‚‹.</div><div class='del'>-      ä¾‹)</div><div class='del'>-        sh.transact{system("ls", "-l") | head &gt; STDOUT}</div><div class='del'>-</div><div class='del'>---- Shell#out(dev = STDOUT, &amp;block)</div><div class='del'>-</div><div class='del'>-      transactã‚’å‘¼ã³å‡ºã—ãã®çµæžœã‚’devã«å‡ºåŠ›ã™ã‚‹.</div><div class='del'>-</div><div class='del'>-== å†…éƒ¨ã‚³ãƒžãƒ³ãƒ‰</div><div class='del'>-</div><div class='del'>---- Shell#echo(*strings)</div><div class='del'>---- Shell#cat(*files)</div><div class='del'>---- Shell#glob(patten)</div><div class='del'>---- Shell#tee(file)</div><div class='del'>-</div><div class='del'>-      ã“ã‚Œã‚‰ã¯å®Ÿè¡Œã™ã‚‹ã¨, ãã‚Œã‚‰ã‚’å†…å®¹ã¨ã™ã‚‹Filterã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’è¿”ã—ã¾ã™.</div><div class='del'>-</div><div class='del'>---- Filter#each &amp;block</div><div class='del'>-</div><div class='del'>-      ãƒ•ã‚£ãƒ«ã‚¿ã®ä¸€è¡Œãšã¤ã‚’blockã«æ¸¡ã™.</div><div class='del'>-</div><div class='del'>---- Filter#&lt;(src)</div><div class='del'>-</div><div class='del'>-      srcã‚’ãƒ•ã‚£ãƒ«ã‚¿ã®å…¥åŠ›ã¨ã™ã‚‹. srcãŒ, æ–‡å­—åˆ—ãªã‚‰ã°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’, IOã§ã‚ã‚Œ</div><div class='del'>-      ã°ãã‚Œã‚’ãã®ã¾ã¾å…¥åŠ›ã¨ã™ã‚‹.</div><div class='del'>-</div><div class='del'>---- Filter#&gt;(to)</div><div class='del'>-</div><div class='del'>-      srcã‚’ãƒ•ã‚£ãƒ«ã‚¿ã®å‡ºåŠ›ã¨ã™ã‚‹. toãŒ, æ–‡å­—åˆ—ãªã‚‰ã°ãƒ•ã‚¡ã‚¤ãƒ«ã«, IOã§ã‚ã‚Œ</div><div class='del'>-      ã°ãã‚Œã‚’ãã®ã¾ã¾å‡ºåŠ›ã¨ã™ã‚‹.</div><div class='del'>-</div><div class='del'>---- Filter#&gt;&gt;(to)</div><div class='del'>-</div><div class='del'>-      srcã‚’ãƒ•ã‚£ãƒ«ã‚¿ã«è¿½åŠ ã™ã‚‹. toãŒ, æ–‡å­—åˆ—ãªã‚‰ã°ãƒ•ã‚¡ã‚¤ãƒ«ã«, IOã§ã‚ã‚Œã°</div><div class='del'>-      ãã‚Œã‚’ãã®ã¾ã¾å‡ºåŠ›ã¨ã™ã‚‹.</div><div class='del'>-</div><div class='del'>---- Filter#|(filter)</div><div class='del'>-</div><div class='del'>-      ãƒ‘ã‚¤ãƒ—çµåˆ</div><div class='del'>-</div><div class='del'>---- Filter#+(filter)</div><div class='del'>-</div><div class='del'>-      filter1 + filter2 ã¯ filter1ã®å‡ºåŠ›ã®å¾Œ, filter2ã®å‡ºåŠ›ã‚’è¡Œã†.</div><div class='del'>-</div><div class='del'>---- Filter#to_a</div><div class='del'>---- Filter#to_s</div><div class='del'>-</div><div class='del'>-== çµ„è¾¼ã¿ã‚³ãƒžãƒ³ãƒ‰</div><div class='del'>-</div><div class='del'>---- Shell#atime(file)</div><div class='del'>---- Shell#basename(file, *opt)</div><div class='del'>---- Shell#chmod(mode, *files)</div><div class='del'>---- Shell#chown(owner, group, *file)</div><div class='del'>---- Shell#ctime(file)</div><div class='del'>---- Shell#delete(*file)</div><div class='del'>---- Shell#dirname(file)</div><div class='del'>---- Shell#ftype(file)</div><div class='del'>---- Shell#join(*file)</div><div class='del'>---- Shell#link(file_from, file_to)</div><div class='del'>---- Shell#lstat(file)</div><div class='del'>---- Shell#mtime(file)</div><div class='del'>---- Shell#readlink(file)</div><div class='del'>---- Shell#rename(file_from, file_to)</div><div class='del'>---- Shell#split(file)</div><div class='del'>---- Shell#stat(file)</div><div class='del'>---- Shell#symlink(file_from, file_to)</div><div class='del'>---- Shell#truncate(file, length)</div><div class='del'>---- Shell#utime(atime, mtime, *file)</div><div class='del'>-</div><div class='del'>-      ã“ã‚Œã‚‰ã¯Fileã‚¯ãƒ©ã‚¹ã«ã‚ã‚‹åŒåã®ã‚¯ãƒ©ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã¨åŒã˜ã§ã™.</div><div class='del'>-</div><div class='del'>---- Shell#blockdev?(file)</div><div class='del'>---- Shell#chardev?(file)</div><div class='del'>---- Shell#directory?(file)</div><div class='del'>---- Shell#executable?(file)</div><div class='del'>---- Shell#executable_real?(file)</div><div class='del'>---- Shell#exist?(file)/Shell#exists?(file)</div><div class='del'>---- Shell#file?(file)</div><div class='del'>---- Shell#grpowned?(file)</div><div class='del'>---- Shell#owned?(file)</div><div class='del'>---- Shell#pipe?(file)</div><div class='del'>---- Shell#readable?(file)</div><div class='del'>---- Shell#readable_real?(file)</div><div class='del'>---- Shell#setgid?(file)</div><div class='del'>---- Shell#setuid?(file)</div><div class='del'>---- Shell#size(file)/Shell#size?(file)</div><div class='del'>---- Shell#socket?(file)</div><div class='del'>---- Shell#sticky?(file)</div><div class='del'>---- Shell#symlink?(file)</div><div class='del'>---- Shell#writable?(file)</div><div class='del'>---- Shell#writable_real?(file)</div><div class='del'>---- Shell#zero?(file)</div><div class='del'>-</div><div class='del'>-      ã“ã‚Œã‚‰ã¯FileTestã‚¯ãƒ©ã‚¹ã«ã‚ã‚‹åŒåã®ã‚¯ãƒ©ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã¨åŒã˜ã§ã™.</div><div class='del'>-</div><div class='del'>---- Shell#syscopy(filename_from, filename_to)</div><div class='del'>---- Shell#copy(filename_from, filename_to)</div><div class='del'>---- Shell#move(filename_from, filename_to)</div><div class='del'>---- Shell#compare(filename_from, filename_to)</div><div class='del'>---- Shell#safe_unlink(*filenames)</div><div class='del'>---- Shell#makedirs(*filenames)</div><div class='del'>---- Shell#install(filename_from, filename_to, mode)</div><div class='del'>-</div><div class='del'>-      ã“ã‚Œã‚‰ã¯FileToolsã‚¯ãƒ©ã‚¹ã«ã‚ã‚‹åŒåã®ã‚¯ãƒ©ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã¨åŒã˜ã§ã™.</div><div class='del'>-</div><div class='del'>-      ãã®ä»–, ä»¥ä¸‹ã®ã‚‚ã®ãŒã‚¨ã‚¤ãƒªã‚¢ã‚¹ã•ã‚Œã¦ã„ã¾ã™.</div><div class='del'>-</div><div class='del'>---- Shell#cmp	&lt;- Shell#compare</div><div class='del'>---- Shell#mv	&lt;- Shell#move</div><div class='del'>---- Shell#cp	&lt;- Shell#copy</div><div class='del'>---- Shell#rm_f	&lt;- Shell#safe_unlink</div><div class='del'>---- Shell#mkpath	&lt;- Shell#makedirs</div><div class='del'>-</div><div class='del'>-= ã‚µãƒ³ãƒ—ãƒ«</div><div class='del'>-</div><div class='del'>-== ex1</div><div class='del'>-</div><div class='del'>-  sh = Shell.cd("/tmp")</div><div class='del'>-  sh.mkdir "shell-test-1" unless sh.exists?("shell-test-1")</div><div class='del'>-  sh.cd("shell-test-1")</div><div class='del'>-  for dir in ["dir1", "dir3", "dir5"]</div><div class='del'>-    if !sh.exists?(dir)</div><div class='del'>-      sh.mkdir dir</div><div class='del'>-      sh.cd(dir) do</div><div class='del'>-	f = sh.open("tmpFile", "w")</div><div class='del'>-	f.print "TEST\n"</div><div class='del'>-	f.close</div><div class='del'>-      end</div><div class='del'>-      print sh.pwd</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-== ex2</div><div class='del'>-</div><div class='del'>-  sh = Shell.cd("/tmp")</div><div class='del'>-  sh.transact do</div><div class='del'>-    mkdir "shell-test-1" unless exists?("shell-test-1")</div><div class='del'>-    cd("shell-test-1")</div><div class='del'>-    for dir in ["dir1", "dir3", "dir5"]</div><div class='del'>-      if !exists?(dir)</div><div class='del'>-	mkdir dir</div><div class='del'>-	cd(dir) do</div><div class='del'>-	  f = open("tmpFile", "w")</div><div class='del'>-	  f.print "TEST\n"</div><div class='del'>-	  f.close</div><div class='del'>-	end</div><div class='del'>-	print pwd</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-== ex3</div><div class='del'>-</div><div class='del'>-  sh.cat("/etc/printcap") | sh.tee("tee1") &gt; "tee2"</div><div class='del'>-  (sh.cat &lt; "/etc/printcap") | sh.tee("tee11") &gt; "tee12"</div><div class='del'>-  sh.cat("/etc/printcap") | sh.tee("tee1") &gt;&gt; "tee2"</div><div class='del'>-  (sh.cat &lt; "/etc/printcap") | sh.tee("tee11") &gt;&gt; "tee12"</div><div class='del'>-</div><div class='del'>-== ex4</div><div class='del'>-</div><div class='del'>-  print sh.cat("/etc/passwd").head.collect{|l| l =~ /keiju/}</div><div class='del'>-</div><div class='del'>-=end</div><div class='head'>diff --git a/doc/signals.rdoc b/doc/signals.rdoc<br/>index fdd9206afb..403eb66549 100644<br/>--- a/<a href='/ruby.git/tree/doc/signals.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/signals.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/signals.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/signals.rdoc</a></div><div class='hunk'>@@ -18,7 +18,7 @@ for data structures in YOUR code.  Ruby implements deferred signal</div><div class='ctx'> handling by registering short C functions with only</div><div class='ctx'> {async-signal-safe functions}[http://man7.org/linux/man-pages/man7/signal-safety.7.html] as</div><div class='ctx'> signal handlers.  These short C functions only do enough tell the VM to</div><div class='del'>-run callbacks registered via Signal.trap later in the main VM loop.</div><div class='add'>+run callbacks registered via Signal.trap later in the main Ruby Thread.</div><div class='ctx'> </div><div class='ctx'> == Unsafe methods to call in Signal.trap blocks</div><div class='ctx'> </div><div class='head'>diff --git a/doc/standard_library.rdoc b/doc/standard_library.rdoc<br/>index 09dc61bc52..7c9938c5b0 100644<br/>--- a/<a href='/ruby.git/tree/doc/standard_library.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/standard_library.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/standard_library.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/standard_library.rdoc</a></div><div class='hunk'>@@ -8,39 +8,58 @@ description.</div><div class='ctx'> </div><div class='ctx'> == Libraries</div><div class='ctx'> </div><div class='add'>+MakeMakefile:: Module used to generate a Makefile for C extensions</div><div class='add'>+RbConfig:: Information of your configure and build of Ruby</div><div class='add'>+Gem:: Package management framework for Ruby</div><div class='add'>+</div><div class='add'>+== Extensions</div><div class='add'>+</div><div class='add'>+Coverage:: Provides coverage measurement for Ruby</div><div class='add'>+Monitor:: Provides an object or module to use safely by more than one thread</div><div class='add'>+objspace:: Extends ObjectSpace module to add methods for internal statistics</div><div class='add'>+PTY:: Creates and manages pseudo terminals</div><div class='add'>+Ripper:: Provides an interface for parsing Ruby programs into S-expressions</div><div class='add'>+Socket:: Access underlying OS socket implementations</div><div class='add'>+</div><div class='add'>+= Default gems</div><div class='add'>+</div><div class='add'>+== Libraries</div><div class='add'>+</div><div class='ctx'> Abbrev:: Calculates a set of unique abbreviations for a given set of strings</div><div class='ctx'> Base64:: Support for encoding and decoding binary data using a Base64 representation</div><div class='ctx'> Benchmark:: Provides methods to measure and report the time used to execute code</div><div class='add'>+Bundler:: Manage your Ruby application's gem dependencies</div><div class='ctx'> CGI:: Support for the Common Gateway Interface protocol</div><div class='del'>-DEBUGGER__:: Debugging functionality for Ruby</div><div class='add'>+CSV:: Provides an interface to read and write CSV files and data</div><div class='ctx'> Delegator:: Provides three abilities to delegate method calls to an object</div><div class='add'>+DidYouMean:: "Did you mean?" experience in Ruby</div><div class='ctx'> DRb:: Distributed object system for Ruby</div><div class='del'>-English.rb:: Require 'English.rb' to reference global variables with less cryptic names</div><div class='add'>+English:: Provides references to special global variables with less cryptic names</div><div class='ctx'> ERB:: An easy to use but powerful templating system for Ruby</div><div class='add'>+ErrorHighlight:: Highlight error location in your code</div><div class='add'>+FileUtils:: Several file utility methods for copying, moving, removing, etc</div><div class='ctx'> Find:: This module supports top-down traversal of a set of file paths</div><div class='add'>+Forwardable:: Provides delegation of specified methods to a designated object</div><div class='ctx'> GetoptLong:: Parse command line options similar to the GNU C getopt_long()</div><div class='del'>-MakeMakefile:: Module used to generate a Makefile for C extensions</div><div class='del'>-Monitor:: Provides an object or module to use safely by more than one thread</div><div class='del'>-Net::FTP:: Support for the File Transfer Protocol</div><div class='add'>+IPAddr:: Provides methods to manipulate IPv4 and IPv6 IP addresses</div><div class='add'>+IRB:: Interactive Ruby command-line tool for REPL (Read Eval Print Loop)</div><div class='add'>+OptionParser:: Ruby-oriented class for command-line option analysis</div><div class='add'>+Logger:: Provides a simple logging utility for outputting messages</div><div class='add'>+Mutex_m:: Mixin to extend objects to be handled like a Mutex</div><div class='ctx'> Net::HTTP:: HTTP client api for Ruby</div><div class='del'>-Net::IMAP:: Ruby client api for Internet Message Access Protocol</div><div class='del'>-Net::POP3:: Ruby client library for POP3</div><div class='del'>-Net::SMTP:: Simple Mail Transfer Protocol client library for Ruby</div><div class='ctx'> Observable:: Provides a mechanism for publish/subscribe pattern in Ruby</div><div class='del'>-OpenURI:: An easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP</div><div class='ctx'> Open3:: Provides access to stdin, stdout and stderr when running other programs</div><div class='del'>-OptionParser:: Ruby-oriented class for command-line option analysis</div><div class='add'>+OpenStruct:: Class to build custom data structures, similar to a Hash</div><div class='add'>+OpenURI:: An easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP</div><div class='ctx'> PP:: Provides a PrettyPrinter for Ruby objects</div><div class='ctx'> PrettyPrinter:: Implements a pretty printing algorithm for readable structure</div><div class='del'>-profile.rb:: Runs the Ruby Profiler__</div><div class='del'>-Profiler__:: Provides a way to profile your Ruby application</div><div class='ctx'> PStore:: Implements a file based persistence mechanism based on a Hash</div><div class='del'>-Racc:: A LALR(1) parser generator written in Ruby.</div><div class='del'>-RbConfig:: Information of your configure and build of Ruby</div><div class='del'>-resolv-replace.rb:: Replace Socket DNS with Resolv</div><div class='add'>+Readline:: Wrapper for Readline extencion and Reline</div><div class='add'>+Reline:: GNU Readline and Editline by pure Ruby implementation.</div><div class='ctx'> Resolv::  Thread-aware DNS resolver library in Ruby</div><div class='add'>+resolv-replace.rb:: Replace Socket DNS with Resolv</div><div class='add'>+RDoc:: Produces HTML and command-line documentation for Ruby</div><div class='ctx'> Rinda:: The Linda distributed computing paradigm in Ruby</div><div class='del'>-Gem:: Package management framework for Ruby</div><div class='ctx'> SecureRandom:: Interface for secure random number generator</div><div class='ctx'> Set:: Provides a class to deal with collections of unordered, unique values</div><div class='ctx'> Shellwords:: Manipulates strings with word parsing rules of UNIX Bourne shell</div><div class='hunk'>@@ -52,78 +71,48 @@ tmpdir.rb:: Extends the Dir class to manage the OS temporary file path</div><div class='ctx'> TSort:: Topological sorting using Tarjan's algorithm</div><div class='ctx'> un.rb:: Utilities to replace common UNIX commands</div><div class='ctx'> URI:: A Ruby module providing support for Uniform Resource Identifiers</div><div class='del'>-WeakRef:: Allows a referenced object to be garbage-collected</div><div class='ctx'> YAML:: Ruby client library for the Psych YAML implementation</div><div class='del'>-</div><div class='del'>-== Extensions</div><div class='del'>-</div><div class='del'>-Coverage:: Provides coverage measurement for Ruby</div><div class='del'>-Digest:: Provides a framework for message digest libraries</div><div class='del'>-IO:: Extensions for Ruby IO class, including #wait and ::console</div><div class='del'>-NKF:: Ruby extension for Network Kanji Filter</div><div class='del'>-objspace:: Extends ObjectSpace module to add methods for internal statistics</div><div class='del'>-Pathname:: Representation of the name of a file or directory on the filesystem</div><div class='del'>-PTY:: Creates and manages pseudo terminals</div><div class='del'>-Readline:: Provides an interface for GNU Readline and Edit Line (libedit)</div><div class='del'>-Ripper:: Provides an interface for parsing Ruby programs into S-expressions</div><div class='del'>-Socket:: Access underlying OS socket implementations</div><div class='del'>-Syslog:: Ruby interface for the POSIX system logging facility</div><div class='del'>-WIN32OLE:: Provides an interface for OLE Automation in Ruby</div><div class='del'>-</div><div class='del'>-= Default gems</div><div class='del'>-</div><div class='del'>-== Libraries</div><div class='del'>-</div><div class='del'>-Bundler:: Manage your Ruby application's gem dependencies</div><div class='del'>-CMath:: Provides Trigonometric and Transcendental functions for complex numbers</div><div class='del'>-CSV:: Provides an interface to read and write CSV files and data</div><div class='del'>-E2MM:: Module for defining custom exceptions with specific messages</div><div class='del'>-FileUtils:: Several file utility methods for copying, moving, removing, etc</div><div class='del'>-Forwardable:: Provides delegation of specified methods to a designated object</div><div class='del'>-IPAddr:: Provides methods to manipulate IPv4 and IPv6 IP addresses</div><div class='del'>-IRB:: Interactive Ruby command-line tool for REPL (Read Eval Print Loop)</div><div class='del'>-Logger:: Provides a simple logging utility for outputting messages</div><div class='del'>-Matrix:: Represents a mathematical matrix.</div><div class='del'>-Mutex_m:: Mixin to extend objects to be handled like a Mutex</div><div class='del'>-OpenStruct:: Class to build custom data structures, similar to a Hash</div><div class='del'>-Prime:: Prime numbers and factorization library</div><div class='del'>-RDoc:: Produces HTML and command-line documentation for Ruby</div><div class='del'>-REXML:: An XML toolkit for Ruby</div><div class='del'>-RSS:: Family of libraries that support various formats of XML "feeds"</div><div class='del'>-Scanf:: A Ruby implementation of the C function scanf(3)</div><div class='del'>-Shell:: An idiomatic Ruby interface for common UNIX shell commands</div><div class='del'>-Synchronizer:: A module that provides a two-phase lock with a counter</div><div class='del'>-ThreadsWait:: Watches for termination of multiple threads</div><div class='del'>-Tracer:: Outputs a source level execution trace of a Ruby program</div><div class='del'>-WEBrick:: An HTTP server toolkit for Ruby</div><div class='add'>+WeakRef:: Allows a referenced object to be garbage-collected</div><div class='ctx'> </div><div class='ctx'> == Extensions</div><div class='ctx'> </div><div class='ctx'> BigDecimal:: Provides arbitrary-precision floating point decimal arithmetic</div><div class='ctx'> Date:: A subclass of Object includes Comparable module for handling dates</div><div class='ctx'> DateTime:: Subclass of Date to handling dates, hours, minutes, seconds, offsets</div><div class='del'>-DBM:: Provides a wrapper for the UNIX-style Database Manager Library</div><div class='add'>+Digest:: Provides a framework for message digest libraries</div><div class='ctx'> Etc:: Provides access to information typically stored in UNIX /etc directory</div><div class='ctx'> Fcntl:: Loads constants defined in the OS fcntl.h C header file</div><div class='ctx'> Fiddle:: A libffi wrapper for Ruby</div><div class='del'>-GDBM:: Ruby extension for the GNU dbm (gdbm) library</div><div class='del'>-IO::console:: Console interface</div><div class='add'>+IO:: Extensions for Ruby IO class, including #wait, #nonblock and ::console</div><div class='ctx'> JSON:: Implements Javascript Object Notation for Ruby</div><div class='add'>+NKF:: Ruby extension for Network Kanji Filter</div><div class='ctx'> OpenSSL:: Provides SSL, TLS and general purpose cryptography for Ruby</div><div class='add'>+Pathname:: Representation of the name of a file or directory on the filesystem</div><div class='ctx'> Psych:: A YAML parser and emitter for Ruby</div><div class='del'>-SDBM:: Provides a simple file-based key-value store with String keys and values</div><div class='add'>+Racc:: A LALR(1) parser generator written in Ruby.</div><div class='add'>+Readline:: Provides an interface for GNU Readline and Edit Line (libedit)</div><div class='ctx'> StringIO:: Pseudo I/O on String objects</div><div class='ctx'> StringScanner:: Provides lexical scanning operations on a String</div><div class='add'>+Syslog:: Ruby interface for the POSIX system logging facility</div><div class='add'>+WIN32OLE:: Provides an interface for OLE Automation in Ruby</div><div class='ctx'> Zlib:: Ruby interface for the zlib compression/decompression library</div><div class='ctx'> </div><div class='ctx'> = Bundled gems</div><div class='ctx'> </div><div class='ctx'> == Libraries</div><div class='ctx'> </div><div class='del'>-DidYouMean:: "Did you mean?" experience in Ruby</div><div class='ctx'> MiniTest:: A test suite with TDD, BDD, mocking and benchmarking</div><div class='del'>-Net::Telnet:: Telnet client library for Ruby</div><div class='ctx'> PowerAssert:: Power Assert for Ruby.</div><div class='ctx'> Rake:: Ruby build program with capabilities similar to make</div><div class='ctx'> Test::Unit:: A compatibility layer for MiniTest</div><div class='del'>-XMLRPC:: Remote Procedure Call over HTTP support for Ruby</div><div class='add'>+REXML:: An XML toolkit for Ruby</div><div class='add'>+RSS:: Family of libraries that support various formats of XML "feeds"</div><div class='add'>+Net::FTP:: Support for the File Transfer Protocol</div><div class='add'>+Net::IMAP:: Ruby client api for Internet Message Access Protocol</div><div class='add'>+Net::POP3:: Ruby client library for POP3</div><div class='add'>+Net::SMTP:: Simple Mail Transfer Protocol client library for Ruby</div><div class='add'>+Matrix:: Represents a mathematical matrix.</div><div class='add'>+Prime:: Prime numbers and factorization library</div><div class='add'>+RBS:: RBS is a language to describe the structure of Ruby programs</div><div class='add'>+TypeProf:: A type analysis tool for Ruby code based on abstract interpretation</div><div class='add'>+DEBUGGER__:: Debugging functionality for Ruby</div><div class='head'>diff --git a/doc/strftime_formatting.rdoc b/doc/strftime_formatting.rdoc<br/>new file mode 100644<br/>index 0000000000..30a629bf68<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/strftime_formatting.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/strftime_formatting.rdoc</a></div><div class='hunk'>@@ -0,0 +1,527 @@</div><div class='add'>+== Formats for Dates and Times</div><div class='add'>+</div><div class='add'>+Several Ruby time-related classes have instance method +strftime+,</div><div class='add'>+which returns a formatted string representing all or part of a date or time:</div><div class='add'>+</div><div class='add'>+- Date#strftime.</div><div class='add'>+- DateTime#strftime.</div><div class='add'>+- Time#strftime.</div><div class='add'>+</div><div class='add'>+Each of these methods takes optional argument +format+,</div><div class='add'>+which has zero or more embedded _format_ _specifications_ (see below).</div><div class='add'>+</div><div class='add'>+Each of these methods returns the string resulting from replacing each</div><div class='add'>+format specification embedded in +format+ with a string form</div><div class='add'>+of one or more parts of the date or time.</div><div class='add'>+</div><div class='add'>+A simple example:</div><div class='add'>+</div><div class='add'>+  Time.now.strftime('%H:%M:%S') # =&gt; "14:02:07"</div><div class='add'>+</div><div class='add'>+A format specification has the form:</div><div class='add'>+</div><div class='add'>+  %[flags][width]conversion</div><div class='add'>+</div><div class='add'>+It consists of:</div><div class='add'>+</div><div class='add'>+- A leading percent character.</div><div class='add'>+- Zero or more _flags_ (each is a character).</div><div class='add'>+- An optional _width_ _specifier_ (an integer).</div><div class='add'>+- A _conversion_ _specifier_ (a character).</div><div class='add'>+</div><div class='add'>+Except for the leading percent character,</div><div class='add'>+the only required part is the conversion specifier, so we begin with that.</div><div class='add'>+</div><div class='add'>+=== Conversion Specifiers</div><div class='add'>+</div><div class='add'>+==== \Date (Year, Month, Day)</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%Y&lt;/tt&gt; - Year including century, zero-padded:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%Y')        # =&gt; "2022"</div><div class='add'>+    Time.new(-1000).strftime('%Y') # =&gt; "-1000" # Before common era.</div><div class='add'>+    Time.new(10000).strftime('%Y') # =&gt; "10000" # Far future.</div><div class='add'>+    Time.new(10).strftime('%Y')    # =&gt; "0010"  # Zero-padded by default.</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%y&lt;/tt&gt; - Year without century, in range (0.99), zero-padded:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%y')    # =&gt; "22"</div><div class='add'>+    Time.new(1).strftime('%y') # =&gt; "01" # Zero-padded by default.</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%C&lt;/tt&gt; - Century, zero-padded:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%C')        # =&gt; "20"</div><div class='add'>+    Time.new(-1000).strftime('%C') # =&gt; "-10" # Before common era.</div><div class='add'>+    Time.new(10000).strftime('%C') # =&gt; "100" # Far future.</div><div class='add'>+    Time.new(100).strftime('%C')   # =&gt; "01"  # Zero-padded by default.</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%m&lt;/tt&gt; - Month of the year, in range (1..12), zero-padded:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1).strftime('%m')  # =&gt; "01" # Zero-padded by default.</div><div class='add'>+    Time.new(2022, 12).strftime('%m') # =&gt; "12"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%B&lt;/tt&gt; - Full month name, capitalized:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1).strftime('%B')  # =&gt; "January"</div><div class='add'>+    Time.new(2022, 12).strftime('%B') # =&gt; "December"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%b&lt;/tt&gt; - Abbreviated month name, capitalized:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1).strftime('%b')  # =&gt; "Jan"</div><div class='add'>+    Time.new(2022, 12).strftime('%h') # =&gt; "Dec"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%h&lt;/tt&gt; - Same as &lt;tt&gt;%b&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%d&lt;/tt&gt; - Day of the month, in range (1..31), zero-padded:</div><div class='add'>+</div><div class='add'>+    Time.new(2002, 1, 1).strftime('%d')  # =&gt; "01"</div><div class='add'>+    Time.new(2002, 1, 31).strftime('%d') # =&gt; "31"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%e&lt;/tt&gt; - Day of the month, in range (1..31), blank-padded:</div><div class='add'>+</div><div class='add'>+    Time.new(2002, 1, 1).strftime('%e')  # =&gt; " 1"</div><div class='add'>+    Time.new(2002, 1, 31).strftime('%e') # =&gt; "31"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%j&lt;/tt&gt; - Day of the year, in range (1..366), zero-padded:</div><div class='add'>+</div><div class='add'>+    Time.new(2002, 1, 1).strftime('%j')   # =&gt; "001"</div><div class='add'>+    Time.new(2002, 12, 31).strftime('%j') # =&gt; "365"</div><div class='add'>+</div><div class='add'>+==== \Time (Hour, Minute, Second, Subsecond)</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%H&lt;/tt&gt; - Hour of the day, in range (0..23), zero-padded:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%H')  # =&gt; "01"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%H') # =&gt; "13"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%k&lt;/tt&gt; - Hour of the day, in range (0..23), blank-padded:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%k')  # =&gt; " 1"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%k') # =&gt; "13"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%I&lt;/tt&gt; - Hour of the day, in range (1..12), zero-padded:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%I')  # =&gt; "01"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%I') # =&gt; "01"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%l&lt;/tt&gt; - Hour of the day, in range (1..12), blank-padded:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%l')  # =&gt; " 1"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%l') # =&gt; " 1"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%P&lt;/tt&gt; - Meridian indicator, lowercase:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%P')  # =&gt; "am"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%P') # =&gt; "pm"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%p&lt;/tt&gt; - Meridian indicator, uppercase:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%p')  # =&gt; "AM"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%p') # =&gt; "PM"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%M&lt;/tt&gt; - Minute of the hour, in range (0..59), zero-padded:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1, 0, 0).strftime('%M') # =&gt; "00"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%S&lt;/tt&gt; - Second of the minute in range (0..59), zero-padded:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1, 0, 0, 0).strftime('%S') # =&gt; "00"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%L&lt;/tt&gt; - Millisecond of the second, in range (0..999), zero-padded:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1, 0, 0, 0).strftime('%L') # =&gt; "000"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%N&lt;/tt&gt; - Fractional seconds, default width is 9 digits (nanoseconds):</div><div class='add'>+</div><div class='add'>+    t = Time.now       # =&gt; 2022-06-29 07:10:20.3230914 -0500</div><div class='add'>+    t.strftime('%N')   # =&gt; "323091400"                  # Default.</div><div class='add'>+</div><div class='add'>+  Use {width specifiers}[rdoc-ref:strftime_formatting.rdoc@Width+Specifiers]</div><div class='add'>+  to adjust units:</div><div class='add'>+</div><div class='add'>+      t.strftime('%3N')  # =&gt; "323"                      # Milliseconds.</div><div class='add'>+      t.strftime('%6N')  # =&gt; "323091"                   # Microseconds.</div><div class='add'>+      t.strftime('%9N')  # =&gt; "323091400"                # Nanoseconds.</div><div class='add'>+      t.strftime('%12N') # =&gt; "323091400000"             # Picoseconds.</div><div class='add'>+      t.strftime('%15N') # =&gt; "323091400000000"          # Femptoseconds.</div><div class='add'>+      t.strftime('%18N') # =&gt; "323091400000000000"       # Attoseconds.</div><div class='add'>+      t.strftime('%21N') # =&gt; "323091400000000000000"    # Zeptoseconds.</div><div class='add'>+      t.strftime('%24N') # =&gt; "323091400000000000000000" # Yoctoseconds.</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%s&lt;/tt&gt; - Number of seconds since the epoch:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%s') # =&gt; "1656505136"</div><div class='add'>+</div><div class='add'>+==== Timezone</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%z&lt;/tt&gt; - Timezone as hour and minute offset from UTC:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%z') # =&gt; "-0500"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%Z&lt;/tt&gt; - Timezone name (platform-dependent):</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%Z') # =&gt; "Central Daylight Time"</div><div class='add'>+</div><div class='add'>+==== Weekday</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%A&lt;/tt&gt; - Full weekday name:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%A') # =&gt; "Wednesday"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%a&lt;/tt&gt; - Abbreviated weekday name:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%a') # =&gt; "Wed"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%u&lt;/tt&gt; - Day of the week, in range (1..7), Monday is 1:</div><div class='add'>+</div><div class='add'>+    t = Time.new(2022, 6, 26) # =&gt; 2022-06-26 00:00:00 -0500</div><div class='add'>+    t.strftime('%a')          # =&gt; "Sun"</div><div class='add'>+    t.strftime('%u')          # =&gt; "7"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%w&lt;/tt&gt; - Day of the week, in range (0..6), Sunday is 0:</div><div class='add'>+</div><div class='add'>+    t = Time.new(2022, 6, 26) # =&gt; 2022-06-26 00:00:00 -0500</div><div class='add'>+    t.strftime('%a')          # =&gt; "Sun"</div><div class='add'>+    t.strftime('%w')          # =&gt; "0"</div><div class='add'>+</div><div class='add'>+==== Week Number</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%U&lt;/tt&gt; - Week number of the year, in range (0..53), zero-padded,</div><div class='add'>+  where each week begins on a Sunday:</div><div class='add'>+</div><div class='add'>+    t = Time.new(2022, 6, 26) # =&gt; 2022-06-26 00:00:00 -0500</div><div class='add'>+    t.strftime('%a')          # =&gt; "Sun"</div><div class='add'>+    t.strftime('%U')          # =&gt; "26"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%W&lt;/tt&gt; - Week number of the year, in range (0..53), zero-padded,</div><div class='add'>+  where each week begins on a Monday:</div><div class='add'>+</div><div class='add'>+    t = Time.new(2022, 6, 26) # =&gt; 2022-06-26 00:00:00 -0500</div><div class='add'>+    t.strftime('%a')          # =&gt; "Sun"</div><div class='add'>+    t.strftime('%W')          # =&gt; "25"</div><div class='add'>+</div><div class='add'>+==== Week Dates</div><div class='add'>+</div><div class='add'>+See {ISO 8601 week dates}[https://en.wikipedia.org/wiki/ISO_8601#Week_dates].</div><div class='add'>+</div><div class='add'>+    t0 = Time.new(2023, 1, 1) # =&gt; 2023-01-01 00:00:00 -0600</div><div class='add'>+    t1 = Time.new(2024, 1, 1) # =&gt; 2024-01-01 00:00:00 -0600</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%G&lt;/tt&gt; - Week-based year:</div><div class='add'>+</div><div class='add'>+    t0.strftime('%G') # =&gt; "2022"</div><div class='add'>+    t1.strftime('%G') # =&gt; "2024"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%g&lt;/tt&gt; - Week-based year without century, in range (0..99), zero-padded:</div><div class='add'>+</div><div class='add'>+    t0.strftime('%g') # =&gt; "22"</div><div class='add'>+    t1.strftime('%g') # =&gt; "24"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%V&lt;/tt&gt; - Week number of the week-based year, in range (1..53),</div><div class='add'>+  zero-padded:</div><div class='add'>+</div><div class='add'>+    t0.strftime('%V') # =&gt; "52"</div><div class='add'>+    t1.strftime('%V') # =&gt; "01"</div><div class='add'>+</div><div class='add'>+==== Literals</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%n&lt;/tt&gt; - Newline character "\n":</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%n') # =&gt; "\n"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%t&lt;/tt&gt; - Tab character "\t":</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%t') # =&gt; "\t"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%%&lt;/tt&gt; - Percent character '%':</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%%') # =&gt; "%"</div><div class='add'>+</div><div class='add'>+==== Shorthand Conversion Specifiers</div><div class='add'>+</div><div class='add'>+Each shorthand specifier here is shown with its corresponding</div><div class='add'>+longhand specifier.</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%c&lt;/tt&gt; - \Date and time:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%c')             # =&gt; "Wed Jun 29 08:01:41 2022"</div><div class='add'>+    Time.now.strftime('%a %b %e %T %Y') # =&gt; "Wed Jun 29 08:02:07 2022"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%D&lt;/tt&gt; - \Date:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%D')       # =&gt; "06/29/22"</div><div class='add'>+    Time.now.strftime('%m/%d/%y') # =&gt; "06/29/22"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%F&lt;/tt&gt; - ISO 8601 date:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%F')       # =&gt; "2022-06-29"</div><div class='add'>+    Time.now.strftime('%Y-%m-%d') # =&gt; "2022-06-29"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%v&lt;/tt&gt; - VMS date:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%v')         # =&gt; "29-JUN-2022"</div><div class='add'>+    Time.now.strftime('%e-%^b-%4Y') # =&gt; "29-JUN-2022"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%x&lt;/tt&gt; - Same as &lt;tt&gt;%D&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%X&lt;/tt&gt; - Same as &lt;tt&gt;%T&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%r&lt;/tt&gt; - 12-hour time:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%r')           # =&gt; "01:00:00 AM"</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%I:%M:%S %p')  # =&gt; "01:00:00 AM"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%r')          # =&gt; "01:00:00 PM"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%I:%M:%S %p') # =&gt; "01:00:00 PM"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%R&lt;/tt&gt; - 24-hour time:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%R')     # =&gt; "01:00"</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%H:%M')  # =&gt; "01:00"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%R')    # =&gt; "13:00"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%H:%M') # =&gt; "13:00"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%T&lt;/tt&gt; - 24-hour time:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%T')        # =&gt; "01:00:00"</div><div class='add'>+    Time.new(2022, 1, 1, 1).strftime('%H:%M:%S')  # =&gt; "01:00:00"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%T')       # =&gt; "13:00:00"</div><div class='add'>+    Time.new(2022, 1, 1, 13).strftime('%H:%M:%S') # =&gt; "13:00:00"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;%+&lt;/tt&gt; (not supported in Time#strftime) - \Date and time:</div><div class='add'>+</div><div class='add'>+    DateTime.now.strftime('%+')</div><div class='add'>+    # =&gt; "Wed Jun 29 08:31:53 -05:00 2022"</div><div class='add'>+    DateTime.now.strftime('%a %b %e %H:%M:%S %Z %Y')</div><div class='add'>+    # =&gt; "Wed Jun 29 08:32:18 -05:00 2022"</div><div class='add'>+</div><div class='add'>+=== Flags</div><div class='add'>+</div><div class='add'>+Flags may affect certain formatting specifications.</div><div class='add'>+</div><div class='add'>+Multiple flags may be given with a single conversion specified;</div><div class='add'>+order does not matter.</div><div class='add'>+</div><div class='add'>+==== Padding Flags</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;0&lt;/tt&gt; - Pad with zeroes:</div><div class='add'>+</div><div class='add'>+    Time.new(10).strftime('%0Y') # =&gt; "0010"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;_&lt;/tt&gt; - Pad with blanks:</div><div class='add'>+</div><div class='add'>+    Time.new(10).strftime('%_Y') # =&gt; "  10"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;-&lt;/tt&gt; - Don't pad:</div><div class='add'>+</div><div class='add'>+    Time.new(10).strftime('%-Y') # =&gt; "10"</div><div class='add'>+</div><div class='add'>+==== Casing Flags</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;^&lt;/tt&gt; - Upcase result:</div><div class='add'>+</div><div class='add'>+    Time.new(2022, 1).strftime('%B')  # =&gt; "January" # No casing flag.</div><div class='add'>+    Time.new(2022, 1).strftime('%^B') # =&gt; "JANUARY"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;#&lt;/tt&gt; - Swapcase result:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%p')  # =&gt; "AM"</div><div class='add'>+    Time.now.strftime('%^p') # =&gt; "AM"</div><div class='add'>+    Time.now.strftime('%#p') # =&gt; "am"</div><div class='add'>+</div><div class='add'>+==== Timezone Flags</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;:&lt;/tt&gt; - Put timezone as colon-separated hours and minutes:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%:z')  # =&gt; "-05:00"</div><div class='add'>+</div><div class='add'>+- &lt;tt&gt;::&lt;/tt&gt; - Put timezone as colon-separated hours, minutes, and seconds:</div><div class='add'>+</div><div class='add'>+    Time.now.strftime('%::z') # =&gt; "-05:00:00"</div><div class='add'>+</div><div class='add'>+=== Width Specifiers</div><div class='add'>+</div><div class='add'>+The integer width specifier gives a minimum width for the returned string:</div><div class='add'>+</div><div class='add'>+  Time.new(2002).strftime('%Y')       # =&gt; "2002"     # No width specifier.</div><div class='add'>+  Time.new(2002).strftime('%10Y')     # =&gt; "0000002002"</div><div class='add'>+  Time.new(2002, 12).strftime('%B')   # =&gt; "December" # No width specifier.</div><div class='add'>+  Time.new(2002, 12).strftime('%10B') # =&gt; "  December"</div><div class='add'>+  Time.new(2002, 12).strftime('%3B')  # =&gt; "December" # Ignored if too small.</div><div class='add'>+</div><div class='add'>+== Specialized Format Strings</div><div class='add'>+</div><div class='add'>+Here are a few specialized format strings,</div><div class='add'>+each based on an external standard.</div><div class='add'>+</div><div class='add'>+=== HTTP Format</div><div class='add'>+</div><div class='add'>+The HTTP date format is based on</div><div class='add'>+{RFC 2616}[https://datatracker.ietf.org/doc/html/rfc2616],</div><div class='add'>+and treats dates in the format &lt;tt&gt;'%a, %d %b %Y %T GMT'&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+  d = Date.new(2001, 2, 3) # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+  # Return HTTP-formatted string.</div><div class='add'>+  httpdate = d.httpdate    # =&gt; "Sat, 03 Feb 2001 00:00:00 GMT"</div><div class='add'>+  # Return new date parsed from HTTP-formatted string.</div><div class='add'>+  Date.httpdate(httpdate)  # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+  # Return hash parsed from HTTP-formatted string.</div><div class='add'>+  Date._httpdate(httpdate)</div><div class='add'>+  # =&gt; {:wday=&gt;6, :mday=&gt;3, :mon=&gt;2, :year=&gt;2001, :hour=&gt;0, :min=&gt;0, :sec=&gt;0, :zone=&gt;"GMT", :offset=&gt;0}</div><div class='add'>+</div><div class='add'>+=== RFC 3339 Format</div><div class='add'>+</div><div class='add'>+The RFC 3339 date format is based on</div><div class='add'>+{RFC 3339}[https://datatracker.ietf.org/doc/html/rfc3339]:</div><div class='add'>+</div><div class='add'>+  d = Date.new(2001, 2, 3) # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+  # Return 3339-formatted string.</div><div class='add'>+  rfc3339 = d.rfc3339      # =&gt; "2001-02-03T00:00:00+00:00"</div><div class='add'>+  # Return new date parsed from 3339-formatted string.</div><div class='add'>+  Date.rfc3339(rfc3339)    # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+  # Return hash parsed from 3339-formatted string.</div><div class='add'>+  Date._rfc3339(rfc3339)</div><div class='add'>+  # =&gt; {:year=&gt;2001, :mon=&gt;2, :mday=&gt;3, :hour=&gt;0, :min=&gt;0, :sec=&gt;0, :zone=&gt;"+00:00", :offset=&gt;0}</div><div class='add'>+</div><div class='add'>+=== RFC 2822 Format</div><div class='add'>+</div><div class='add'>+The RFC 2822 date format is based on</div><div class='add'>+{RFC 2822}[https://datatracker.ietf.org/doc/html/rfc2822],</div><div class='add'>+and treats dates in the format &lt;tt&gt;'%a, %-d %b %Y %T %z'&lt;/tt&gt;]:</div><div class='add'>+</div><div class='add'>+  d = Date.new(2001, 2, 3) # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+  # Return 2822-formatted string.</div><div class='add'>+  rfc2822 = d.rfc2822      # =&gt; "Sat, 3 Feb 2001 00:00:00 +0000"</div><div class='add'>+  # Return new date parsed from 2822-formatted string.</div><div class='add'>+  Date.rfc2822(rfc2822)    # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+  # Return hash parsed from 2822-formatted string.</div><div class='add'>+  Date._rfc2822(rfc2822)</div><div class='add'>+  # =&gt; {:wday=&gt;6, :mday=&gt;3, :mon=&gt;2, :year=&gt;2001, :hour=&gt;0, :min=&gt;0, :sec=&gt;0, :zone=&gt;"+0000", :offset=&gt;0}</div><div class='add'>+</div><div class='add'>+=== JIS X 0301 Format</div><div class='add'>+</div><div class='add'>+The JIS X 0301 format includes the</div><div class='add'>+{Japanese era name}[https://en.wikipedia.org/wiki/Japanese_era_name],</div><div class='add'>+and treats dates in the format &lt;tt&gt;'%Y-%m-%d'&lt;/tt&gt;</div><div class='add'>+with the first letter of the romanized era name prefixed:</div><div class='add'>+</div><div class='add'>+  d = Date.new(2001, 2, 3) # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+  # Return 0301-formatted string.</div><div class='add'>+  jisx0301 = d.jisx0301    # =&gt; "H13.02.03"</div><div class='add'>+  # Return new date parsed from 0301-formatted string.</div><div class='add'>+  Date.jisx0301(jisx0301)  # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+  # Return hash parsed from 0301-formatted string.</div><div class='add'>+  Date._jisx0301(jisx0301) # =&gt; {:year=&gt;2001, :mon=&gt;2, :mday=&gt;3}</div><div class='add'>+</div><div class='add'>+=== ISO 8601 Format Specifications</div><div class='add'>+</div><div class='add'>+This section shows format specifications that are compatible with</div><div class='add'>+{ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601].</div><div class='add'>+Details for various formats may be seen at the links.</div><div class='add'>+</div><div class='add'>+Examples in this section assume:</div><div class='add'>+</div><div class='add'>+  t = Time.now # =&gt; 2022-06-29 16:49:25.465246 -0500</div><div class='add'>+</div><div class='add'>+==== Dates</div><div class='add'>+</div><div class='add'>+See {ISO 8601 dates}[https://en.wikipedia.org/wiki/ISO_8601#Dates].</div><div class='add'>+</div><div class='add'>+- {Years}[https://en.wikipedia.org/wiki/ISO_8601#Years]:</div><div class='add'>+</div><div class='add'>+  - Basic year (+YYYY+):</div><div class='add'>+</div><div class='add'>+      t.strftime('%Y') # =&gt; "2022"</div><div class='add'>+</div><div class='add'>+  - Expanded year (&lt;tt&gt;Â±YYYYY&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+      t.strftime('+%5Y') # =&gt; "+02022"</div><div class='add'>+      t.strftime('-%5Y') # =&gt; "-02022"</div><div class='add'>+</div><div class='add'>+- {Calendar dates}[https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates]:</div><div class='add'>+</div><div class='add'>+  - Basic date (+YYYYMMDD+):</div><div class='add'>+</div><div class='add'>+      t.strftime('%Y%m%d') # =&gt; "20220629"</div><div class='add'>+</div><div class='add'>+  - Extended date (&lt;tt&gt;YYYY-MM-DD&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+      t.strftime('%Y-%m-%d') # =&gt; "2022-06-29"</div><div class='add'>+</div><div class='add'>+  - Reduced extended date (&lt;tt&gt;YYYY-MM&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+      t.strftime('%Y-%m') # =&gt; "2022-06"</div><div class='add'>+</div><div class='add'>+- {Week dates}[https://en.wikipedia.org/wiki/ISO_8601#Week_dates]:</div><div class='add'>+</div><div class='add'>+  - Basic date (+YYYYWww+ or +YYYYWwwD+):</div><div class='add'>+</div><div class='add'>+      t.strftime('%Y%Ww')   # =&gt; "202226w"</div><div class='add'>+      t.strftime('%Y%Ww%u') # =&gt; "202226w3"</div><div class='add'>+</div><div class='add'>+  - Extended date (&lt;tt&gt;YYYY-Www&lt;/tt&gt; or &lt;tt&gt;YYYY-Www-D&lt;tt&gt;):</div><div class='add'>+</div><div class='add'>+      t.strftime('%Y-%Ww')    # =&gt; "2022-26w"</div><div class='add'>+      t.strftime('%Y-%Ww-%u') # =&gt; "2022-26w-3"</div><div class='add'>+</div><div class='add'>+- {Ordinal dates}[https://en.wikipedia.org/wiki/ISO_8601#Ordinal_dates]:</div><div class='add'>+</div><div class='add'>+  - Basic date (+YYYYDDD+):</div><div class='add'>+</div><div class='add'>+      t.strftime('%Y%j') # =&gt; "2022180"</div><div class='add'>+</div><div class='add'>+  - Extended date (&lt;tt&gt;YYYY-DDD&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+      t.strftime('%Y-%j') # =&gt; "2022-180"</div><div class='add'>+</div><div class='add'>+==== Times</div><div class='add'>+</div><div class='add'>+See {ISO 8601 times}[https://en.wikipedia.org/wiki/ISO_8601#Times].</div><div class='add'>+</div><div class='add'>+- Times:</div><div class='add'>+</div><div class='add'>+  - Basic time (+Thhmmss.sss+, +Thhmmss+, +Thhmm+, or +Thh+):</div><div class='add'>+</div><div class='add'>+      t.strftime('T%H%M%S.%L') # =&gt; "T164925.465"</div><div class='add'>+      t.strftime('T%H%M%S')    # =&gt; "T164925"</div><div class='add'>+      t.strftime('T%H%M')      # =&gt; "T1649"</div><div class='add'>+      t.strftime('T%H')        # =&gt; "T16"</div><div class='add'>+</div><div class='add'>+  - Extended time (+Thh:mm:ss.sss+, +Thh:mm:ss+, or +Thh:mm+):</div><div class='add'>+</div><div class='add'>+      t.strftime('T%H:%M:%S.%L') # =&gt; "T16:49:25.465"</div><div class='add'>+      t.strftime('T%H:%M:%S')    # =&gt; "T16:49:25"</div><div class='add'>+      t.strftime('T%H:%M')       # =&gt; "T16:49"</div><div class='add'>+</div><div class='add'>+- {Time zone designators}[https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators]:</div><div class='add'>+</div><div class='add'>+  - Timezone (+time+ represents a valid time,</div><div class='add'>+    +hh+ represents a valid 2-digit hour,</div><div class='add'>+    and +mm+ represents a valid 2-digit minute):</div><div class='add'>+</div><div class='add'>+    - Basic timezone (&lt;tt&gt;timeÂ±hhmm&lt;/tt&gt;, &lt;tt&gt;timeÂ±hh&lt;/tt&gt;, or +timeZ+):</div><div class='add'>+</div><div class='add'>+        t.strftime('T%H%M%S%z')              # =&gt; "T164925-0500"</div><div class='add'>+        t.strftime('T%H%M%S%z').slice(0..-3) # =&gt; "T164925-05"</div><div class='add'>+        t.strftime('T%H%M%SZ')               # =&gt; "T164925Z"</div><div class='add'>+</div><div class='add'>+    - Extended timezone (&lt;tt&gt;timeÂ±hh:mm&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+        t.strftime('T%H:%M:%S%z') # =&gt; "T16:49:25-0500"</div><div class='add'>+</div><div class='add'>+  - See also:</div><div class='add'>+</div><div class='add'>+    - {Local time (unqualified)}[https://en.wikipedia.org/wiki/ISO_8601#Local_time_(unqualified)].</div><div class='add'>+    - {Coordinated Universal Time (UTC)}[https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)].</div><div class='add'>+    - {Time offsets from UTC}[https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC].</div><div class='add'>+</div><div class='add'>+==== Combined \Date and \Time</div><div class='add'>+</div><div class='add'>+See {ISO 8601 Combined date and time representations}[https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations].</div><div class='add'>+</div><div class='add'>+An ISO 8601 combined date and time representation may be any</div><div class='add'>+ISO 8601 date and any ISO 8601 time,</div><div class='add'>+separated by the letter +T+.</div><div class='add'>+</div><div class='add'>+For the relevant +strftime+ formats, see</div><div class='add'>+{Dates}[rdoc-ref:strftime_formatting.rdoc@Dates]</div><div class='add'>+and {Times}[rdoc-ref:strftime_formatting.rdoc@Times] above.</div><div class='head'>diff --git a/doc/string/b.rdoc b/doc/string/b.rdoc<br/>new file mode 100644<br/>index 0000000000..f8ad2910b4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/b.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/b.rdoc</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+Returns a copy of +self+ that has ASCII-8BIT encoding;</div><div class='add'>+the underlying bytes are not modified:</div><div class='add'>+</div><div class='add'>+  s = "\x99"</div><div class='add'>+  s.encoding   # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+  t = s.b      # =&gt; "\x99"</div><div class='add'>+  t.encoding   # =&gt; #&lt;Encoding:ASCII-8BIT&gt;</div><div class='add'>+</div><div class='add'>+  s = "\u4095" # =&gt; "ä‚•"</div><div class='add'>+  s.encoding   # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+  s.bytes      # =&gt; [228, 130, 149]</div><div class='add'>+  t = s.b      # =&gt; "\xE4\x82\x95"</div><div class='add'>+  t.encoding   # =&gt; #&lt;Encoding:ASCII-8BIT&gt;</div><div class='add'>+  t.bytes      # =&gt; [228, 130, 149]</div><div class='head'>diff --git a/doc/string/bytes.rdoc b/doc/string/bytes.rdoc<br/>new file mode 100644<br/>index 0000000000..a9e89f1cd1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/bytes.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/bytes.rdoc</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+Returns an array of the bytes in +self+:</div><div class='add'>+</div><div class='add'>+  'hello'.bytes # =&gt; [104, 101, 108, 108, 111]</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.bytes  # =&gt; [209, 130, 208, 181, 209, 129, 209, 130]</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.bytes</div><div class='add'>+  # =&gt; [227, 129, 147, 227, 130, 147, 227, 129, 171, 227, 129, 161, 227, 129, 175]</div><div class='head'>diff --git a/doc/string/bytesize.rdoc b/doc/string/bytesize.rdoc<br/>new file mode 100644<br/>index 0000000000..b0567ff67b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/bytesize.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/bytesize.rdoc</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+Returns the count of bytes (not characters) in +self+:</div><div class='add'>+</div><div class='add'>+  'foo'.bytesize        # =&gt; 3</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.bytesize       # =&gt; 8</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.bytesize   # =&gt; 15</div><div class='add'>+</div><div class='add'>+Contrast with String#length:</div><div class='add'>+</div><div class='add'>+  'foo'.length       # =&gt; 3</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.length      # =&gt; 4</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.length  # =&gt; 5</div><div class='head'>diff --git a/doc/string/center.rdoc b/doc/string/center.rdoc<br/>new file mode 100644<br/>index 0000000000..d53d921ad5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/center.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/center.rdoc</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+Returns a centered copy of +self+.</div><div class='add'>+</div><div class='add'>+If integer argument +size+ is greater than the size (in characters) of +self+,</div><div class='add'>+returns a new string of length +size+ that is a copy of +self+,</div><div class='add'>+centered and padded on both ends with +pad_string+:</div><div class='add'>+</div><div class='add'>+  'hello'.center(10)       # =&gt; "  hello   "</div><div class='add'>+  '  hello'.center(10)     # =&gt; "   hello  "</div><div class='add'>+  'hello'.center(10, 'ab') # =&gt; "abhelloaba"</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.center(10)        # =&gt; "   Ñ‚ÐµÑÑ‚   "</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.center(10)    # =&gt; "  ã“ã‚“ã«ã¡ã¯   "</div><div class='add'>+</div><div class='add'>+If +size+ is not greater than the size of +self+, returns a copy of +self+:</div><div class='add'>+</div><div class='add'>+  'hello'.center(5)  # =&gt; "hello"</div><div class='add'>+  'hello'.center(1)  # =&gt; "hello"</div><div class='head'>diff --git a/doc/string/chars.rdoc b/doc/string/chars.rdoc<br/>new file mode 100644<br/>index 0000000000..d24a1cc3a9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/chars.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/chars.rdoc</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+Returns an array of the characters in +self+:</div><div class='add'>+</div><div class='add'>+  'hello'.chars     # =&gt; ["h", "e", "l", "l", "o"]</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.chars      # =&gt; ["Ñ‚", "Ðµ", "Ñ", "Ñ‚"]</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.chars # =&gt; ["ã“", "ã‚“", "ã«", "ã¡", "ã¯"]</div><div class='head'>diff --git a/doc/string/chomp.rdoc b/doc/string/chomp.rdoc<br/>new file mode 100644<br/>index 0000000000..b6fb9ff38c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/chomp.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/chomp.rdoc</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+Returns a new string copied from +self+, with trailing characters possibly removed:</div><div class='add'>+</div><div class='add'>+When +line_sep+ is &lt;tt&gt;"\n"&lt;/tt&gt;, removes the last one or two characters</div><div class='add'>+if they are &lt;tt&gt;"\r"&lt;/tt&gt;, &lt;tt&gt;"\n"&lt;/tt&gt;, or &lt;tt&gt;"\r\n"&lt;/tt&gt;</div><div class='add'>+(but not &lt;tt&gt;"\n\r"&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+  $/                    # =&gt; "\n"</div><div class='add'>+  "abc\r".chomp         # =&gt; "abc"</div><div class='add'>+  "abc\n".chomp         # =&gt; "abc"</div><div class='add'>+  "abc\r\n".chomp       # =&gt; "abc"</div><div class='add'>+  "abc\n\r".chomp       # =&gt; "abc\n"</div><div class='add'>+  "Ñ‚ÐµÑÑ‚\r\n".chomp      # =&gt; "Ñ‚ÐµÑÑ‚"</div><div class='add'>+  "ã“ã‚“ã«ã¡ã¯\r\n".chomp  # =&gt; "ã“ã‚“ã«ã¡ã¯"</div><div class='add'>+</div><div class='add'>+When +line_sep+ is &lt;tt&gt;''&lt;/tt&gt; (an empty string),</div><div class='add'>+removes multiple trailing occurrences of &lt;tt&gt;"\n"&lt;/tt&gt; or &lt;tt&gt;"\r\n"&lt;/tt&gt;</div><div class='add'>+(but not &lt;tt&gt;"\r"&lt;/tt&gt; or &lt;tt&gt;"\n\r"&lt;/tt&gt;):</div><div class='add'>+</div><div class='add'>+  "abc\n\n\n".chomp('')           # =&gt; "abc"</div><div class='add'>+  "abc\r\n\r\n\r\n".chomp('')     # =&gt; "abc"</div><div class='add'>+  "abc\n\n\r\n\r\n\n\n".chomp('') # =&gt; "abc"</div><div class='add'>+  "abc\n\r\n\r\n\r".chomp('')     # =&gt; "abc\n\r\n\r\n\r"</div><div class='add'>+  "abc\r\r\r".chomp('')           # =&gt; "abc\r\r\r"</div><div class='add'>+</div><div class='add'>+When +line_sep+ is neither &lt;tt&gt;"\n"&lt;/tt&gt; nor &lt;tt&gt;''&lt;/tt&gt;,</div><div class='add'>+removes a single trailing line separator if there is one:</div><div class='add'>+</div><div class='add'>+  'abcd'.chomp('d')  # =&gt; "abc"</div><div class='add'>+  'abcdd'.chomp('d') # =&gt; "abcd"</div><div class='head'>diff --git a/doc/string/chop.rdoc b/doc/string/chop.rdoc<br/>new file mode 100644<br/>index 0000000000..8ef82f8a49<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/chop.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/chop.rdoc</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+Returns a new string copied from +self+, with trailing characters possibly removed.</div><div class='add'>+</div><div class='add'>+Removes &lt;tt&gt;"\r\n"&lt;/tt&gt; if those are the last two characters.</div><div class='add'>+</div><div class='add'>+  "abc\r\n".chop      # =&gt; "abc"</div><div class='add'>+  "Ñ‚ÐµÑÑ‚\r\n".chop     # =&gt; "Ñ‚ÐµÑÑ‚"</div><div class='add'>+  "ã“ã‚“ã«ã¡ã¯\r\n".chop # =&gt; "ã“ã‚“ã«ã¡ã¯"</div><div class='add'>+</div><div class='add'>+Otherwise removes the last character if it exists.</div><div class='add'>+</div><div class='add'>+  'abcd'.chop     # =&gt; "abc"</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.chop     # =&gt; "Ñ‚ÐµÑ"</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.chop # =&gt; "ã“ã‚“ã«ã¡"</div><div class='add'>+  ''.chop         # =&gt; ""</div><div class='add'>+</div><div class='add'>+If you only need to remove the newline separator at the end of the string, String#chomp is a better alternative.</div><div class='head'>diff --git a/doc/string/codepoints.rdoc b/doc/string/codepoints.rdoc<br/>new file mode 100644<br/>index 0000000000..0c55d3f4b9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/codepoints.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/codepoints.rdoc</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+Returns an array of the codepoints in +self+;</div><div class='add'>+each codepoint is the integer value for a character:</div><div class='add'>+</div><div class='add'>+  'hello'.codepoints     # =&gt; [104, 101, 108, 108, 111]</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.codepoints      # =&gt; [1090, 1077, 1089, 1090]</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.codepoints # =&gt; [12371, 12435, 12395, 12385, 12399]</div><div class='head'>diff --git a/doc/string/delete_prefix.rdoc b/doc/string/delete_prefix.rdoc<br/>new file mode 100644<br/>index 0000000000..fa9d8abd38<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/delete_prefix.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/delete_prefix.rdoc</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+Returns a copy of +self+ with leading substring &lt;tt&gt;prefix&lt;/tt&gt; removed:</div><div class='add'>+</div><div class='add'>+  'hello'.delete_prefix('hel')      # =&gt; "lo"</div><div class='add'>+  'hello'.delete_prefix('llo')      # =&gt; "hello"</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.delete_prefix('Ñ‚Ðµ')        # =&gt; "ÑÑ‚"</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.delete_prefix('ã“ã‚“')  # =&gt; "ã«ã¡ã¯"</div><div class='add'>+</div><div class='add'>+Related: String#delete_prefix!, String#delete_suffix.</div><div class='head'>diff --git a/doc/string/delete_suffix.rdoc b/doc/string/delete_suffix.rdoc<br/>new file mode 100644<br/>index 0000000000..4862b725cf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/delete_suffix.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/delete_suffix.rdoc</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+Returns a copy of +self+ with trailing substring &lt;tt&gt;suffix&lt;/tt&gt; removed:</div><div class='add'>+</div><div class='add'>+  'hello'.delete_suffix('llo')      # =&gt; "he"</div><div class='add'>+  'hello'.delete_suffix('hel')      # =&gt; "hello"</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.delete_suffix('ÑÑ‚')        # =&gt; "Ñ‚Ðµ"</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.delete_suffix('ã¡ã¯')  # =&gt; "ã“ã‚“ã«"</div><div class='add'>+</div><div class='add'>+Related: String#delete_suffix!, String#delete_prefix.</div><div class='head'>diff --git a/doc/string/each_byte.rdoc b/doc/string/each_byte.rdoc<br/>new file mode 100644<br/>index 0000000000..643118fea3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/each_byte.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/each_byte.rdoc</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+Calls the given block with each successive byte from +self+;</div><div class='add'>+returns +self+:</div><div class='add'>+</div><div class='add'>+  'hello'.each_byte {|byte| print byte, ' ' }</div><div class='add'>+  print "\n"</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.each_byte {|byte| print byte, ' ' }</div><div class='add'>+  print "\n"</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.each_byte {|byte| print byte, ' ' }</div><div class='add'>+  print "\n"</div><div class='add'>+</div><div class='add'>+Output:</div><div class='add'>+</div><div class='add'>+  104 101 108 108 111</div><div class='add'>+  209 130 208 181 209 129 209 130</div><div class='add'>+  227 129 147 227 130 147 227 129 171 227 129 161 227 129 175</div><div class='add'>+</div><div class='add'>+Returns an enumerator if no block is given.</div><div class='head'>diff --git a/doc/string/each_char.rdoc b/doc/string/each_char.rdoc<br/>new file mode 100644<br/>index 0000000000..e5ae5a1812<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/each_char.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/each_char.rdoc</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+Calls the given block with each successive character from +self+;</div><div class='add'>+returns +self+:</div><div class='add'>+</div><div class='add'>+  'hello'.each_char {|char| print char, ' ' }</div><div class='add'>+  print "\n"</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.each_char {|char| print char, ' ' }</div><div class='add'>+  print "\n"</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.each_char {|char| print char, ' ' }</div><div class='add'>+  print "\n"</div><div class='add'>+</div><div class='add'>+Output:</div><div class='add'>+</div><div class='add'>+  h e l l o</div><div class='add'>+  Ñ‚ Ðµ Ñ Ñ‚</div><div class='add'>+  ã“ ã‚“ ã« ã¡ ã¯</div><div class='add'>+</div><div class='add'>+Returns an enumerator if no block is given.</div><div class='head'>diff --git a/doc/string/each_codepoint.rdoc b/doc/string/each_codepoint.rdoc<br/>new file mode 100644<br/>index 0000000000..88bfcbd1c0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/each_codepoint.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/each_codepoint.rdoc</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+Calls the given block with each successive codepoint from +self+;</div><div class='add'>+each codepoint is the integer value for a character;</div><div class='add'>+returns +self+:</div><div class='add'>+</div><div class='add'>+  'hello'.each_codepoint {|codepoint| print codepoint, ' ' }</div><div class='add'>+  print "\n"</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.each_codepoint {|codepoint| print codepoint, ' ' }</div><div class='add'>+  print "\n"</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.each_codepoint {|codepoint| print codepoint, ' ' }</div><div class='add'>+  print "\n"</div><div class='add'>+</div><div class='add'>+Output:</div><div class='add'>+</div><div class='add'>+  104 101 108 108 111</div><div class='add'>+  1090 1077 1089 1090</div><div class='add'>+  12371 12435 12395 12385 12399</div><div class='add'>+</div><div class='add'>+Returns an enumerator if no block is given.</div><div class='head'>diff --git a/doc/string/each_grapheme_cluster.rdoc b/doc/string/each_grapheme_cluster.rdoc<br/>new file mode 100644<br/>index 0000000000..40be95fcac<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/each_grapheme_cluster.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/each_grapheme_cluster.rdoc</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+Calls the given block with each successive grapheme cluster from +self+</div><div class='add'>+(see {Unicode Grapheme Cluster Boundaries}[https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries]);</div><div class='add'>+returns +self+:</div><div class='add'>+</div><div class='add'>+  s = "\u0061\u0308-pqr-\u0062\u0308-xyz-\u0063\u0308" # =&gt; "aÌˆ-pqr-bÌˆ-xyz-cÌˆ"</div><div class='add'>+  s.each_grapheme_cluster {|gc| print gc, ' ' }</div><div class='add'>+</div><div class='add'>+Output:</div><div class='add'>+</div><div class='add'>+  aÌˆ - p q r - bÌˆ - x y z - cÌˆ</div><div class='add'>+</div><div class='add'>+Returns an enumerator if no block is given.</div><div class='head'>diff --git a/doc/string/each_line.rdoc b/doc/string/each_line.rdoc<br/>new file mode 100644<br/>index 0000000000..e254c22d40<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/each_line.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/each_line.rdoc</a></div><div class='hunk'>@@ -0,0 +1,60 @@</div><div class='add'>+With a block given, forms the substrings ("lines")</div><div class='add'>+that are the result of splitting +self+</div><div class='add'>+at each occurrence of the given line separator +line_sep+;</div><div class='add'>+passes each line to the block;</div><div class='add'>+returns +self+:</div><div class='add'>+</div><div class='add'>+  s = &lt;&lt;~EOT</div><div class='add'>+  This is the first line.</div><div class='add'>+  This is line two.</div><div class='add'>+</div><div class='add'>+  This is line four.</div><div class='add'>+  This is line five.</div><div class='add'>+  EOT</div><div class='add'>+</div><div class='add'>+  s.each_line {|line| p line }</div><div class='add'>+</div><div class='add'>+Output:</div><div class='add'>+</div><div class='add'>+  "This is the first line.\n"</div><div class='add'>+  "This is line two.\n"</div><div class='add'>+  "\n"</div><div class='add'>+  "This is line four.\n"</div><div class='add'>+  "This is line five.\n"</div><div class='add'>+</div><div class='add'>+With a different +line_sep+:</div><div class='add'>+</div><div class='add'>+  s.each_line(' is ') {|line| p line }</div><div class='add'>+</div><div class='add'>+Output:</div><div class='add'>+</div><div class='add'>+  "This is "</div><div class='add'>+  "the first line.\nThis is "</div><div class='add'>+  "line two.\n\nThis is "</div><div class='add'>+  "line four.\nThis is "</div><div class='add'>+  "line five.\n"</div><div class='add'>+</div><div class='add'>+With +chomp+ as +true+, removes the trailing +line_sep+ from each line:</div><div class='add'>+</div><div class='add'>+  s.each_line(chomp: true) {|line| p line }</div><div class='add'>+</div><div class='add'>+Output:</div><div class='add'>+</div><div class='add'>+  "This is the first line."</div><div class='add'>+  "This is line two."</div><div class='add'>+  ""</div><div class='add'>+  "This is line four."</div><div class='add'>+  "This is line five."</div><div class='add'>+</div><div class='add'>+With an empty string as +line_sep+,</div><div class='add'>+forms and passes "paragraphs" by splitting at each occurrence</div><div class='add'>+of two or more newlines:</div><div class='add'>+</div><div class='add'>+  s.each_line('') {|line| p line }</div><div class='add'>+</div><div class='add'>+Output:</div><div class='add'>+</div><div class='add'>+  "This is the first line.\nThis is line two.\n\n"</div><div class='add'>+  "This is line four.\nThis is line five.\n"</div><div class='add'>+</div><div class='add'>+With no block given, returns an enumerator.</div><div class='head'>diff --git a/doc/string/end_with_p.rdoc b/doc/string/end_with_p.rdoc<br/>new file mode 100644<br/>index 0000000000..f959cf7aaa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/end_with_p.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/end_with_p.rdoc</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+Returns whether +self+ ends with any of the given +strings+.</div><div class='add'>+</div><div class='add'>+Returns +true+ if any given string matches the end, +false+ otherwise:</div><div class='add'>+</div><div class='add'>+  'hello'.end_with?('ello')               #=&gt; true</div><div class='add'>+  'hello'.end_with?('heaven', 'ello')     #=&gt; true</div><div class='add'>+  'hello'.end_with?('heaven', 'paradise') #=&gt; false</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.end_with?('Ñ‚')                   # =&gt; true</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.end_with?('ã¯')              # =&gt; true</div><div class='add'>+</div><div class='add'>+Related: String#start_with?.</div><div class='head'>diff --git a/doc/string/force_encoding.rdoc b/doc/string/force_encoding.rdoc<br/>new file mode 100644<br/>index 0000000000..fd9615caaa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/force_encoding.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/force_encoding.rdoc</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+Changes the encoding of +self+ to +encoding+,</div><div class='add'>+which may be a string encoding name or an Encoding object;</div><div class='add'>+returns self:</div><div class='add'>+</div><div class='add'>+  s = 'Å‚aÅ‚'</div><div class='add'>+  s.bytes                   # =&gt; [197, 130, 97, 197, 130]</div><div class='add'>+  s.encoding                # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+  s.force_encoding('ascii') # =&gt; "\xC5\x82a\xC5\x82"</div><div class='add'>+  s.encoding                # =&gt; #&lt;Encoding:US-ASCII&gt;</div><div class='add'>+</div><div class='add'>+Does not change the underlying bytes:</div><div class='add'>+</div><div class='add'>+  s.bytes                   # =&gt; [197, 130, 97, 197, 130]</div><div class='add'>+</div><div class='add'>+Makes the change even if the given +encoding+ is invalid</div><div class='add'>+for +self+ (as is the change above):</div><div class='add'>+</div><div class='add'>+  s.valid_encoding?                 # =&gt; false</div><div class='add'>+  s.force_encoding(Encoding::UTF_8) # =&gt; "Å‚aÅ‚"</div><div class='add'>+  s.valid_encoding?                 # =&gt; true</div><div class='head'>diff --git a/doc/string/grapheme_clusters.rdoc b/doc/string/grapheme_clusters.rdoc<br/>new file mode 100644<br/>index 0000000000..8c7f5a7259<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/grapheme_clusters.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/grapheme_clusters.rdoc</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+Returns an array of the grapheme clusters in +self+</div><div class='add'>+(see {Unicode Grapheme Cluster Boundaries}[https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries]):</div><div class='add'>+</div><div class='add'>+  s = "\u0061\u0308-pqr-\u0062\u0308-xyz-\u0063\u0308" # =&gt; "aÌˆ-pqr-bÌˆ-xyz-cÌˆ"</div><div class='add'>+  s.grapheme_clusters</div><div class='add'>+  # =&gt; ["aÌˆ", "-", "p", "q", "r", "-", "bÌˆ", "-", "x", "y", "z", "-", "cÌˆ"]</div><div class='head'>diff --git a/doc/string/index.rdoc b/doc/string/index.rdoc<br/>new file mode 100644<br/>index 0000000000..ce09a37bdf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/index.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/index.rdoc</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+Returns the integer index of the first match for the given argument,</div><div class='add'>+or +nil+ if none found;</div><div class='add'>+the search of +self+ is forward, and begins at position +offset+ (in characters).</div><div class='add'>+</div><div class='add'>+With string argument +substring+,</div><div class='add'>+returns the index of the first matching substring in +self+:</div><div class='add'>+</div><div class='add'>+  'foo'.index('f')         # =&gt; 0</div><div class='add'>+  'foo'.index('o')         # =&gt; 1</div><div class='add'>+  'foo'.index('oo')        # =&gt; 1</div><div class='add'>+  'foo'.index('ooo')       # =&gt; nil</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.index('Ñ')        # =&gt; 2</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.index('ã¡')   # =&gt; 3</div><div class='add'>+</div><div class='add'>+With Regexp argument +regexp+, returns the index of the first match in +self+:</div><div class='add'>+</div><div class='add'>+  'foo'.index(/o./) # =&gt; 1</div><div class='add'>+  'foo'.index(/.o/) # =&gt; 0</div><div class='add'>+</div><div class='add'>+With positive integer +offset+, begins the search at position +offset+:</div><div class='add'>+</div><div class='add'>+  'foo'.index('o', 1)        # =&gt; 1</div><div class='add'>+  'foo'.index('o', 2)        # =&gt; 2</div><div class='add'>+  'foo'.index('o', 3)        # =&gt; nil</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.index('Ñ', 1)       # =&gt; 2</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.index('ã¡', 2)  # =&gt; 3</div><div class='add'>+</div><div class='add'>+With negative integer +offset+, selects the search position by counting backward</div><div class='add'>+from the end of +self+:</div><div class='add'>+</div><div class='add'>+  'foo'.index('o', -1)  # =&gt; 2</div><div class='add'>+  'foo'.index('o', -2)  # =&gt; 1</div><div class='add'>+  'foo'.index('o', -3)  # =&gt; 1</div><div class='add'>+  'foo'.index('o', -4)  # =&gt; nil</div><div class='add'>+  'foo'.index(/o./, -2) # =&gt; 1</div><div class='add'>+  'foo'.index(/.o/, -2) # =&gt; 1</div><div class='add'>+</div><div class='add'>+Related: String#rindex.</div><div class='head'>diff --git a/doc/string/length.rdoc b/doc/string/length.rdoc<br/>new file mode 100644<br/>index 0000000000..0a7e17f7dc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/length.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/length.rdoc</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+Returns the count of characters (not bytes) in +self+:</div><div class='add'>+</div><div class='add'>+  'foo'.length        # =&gt; 3</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.length       # =&gt; 4</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.length   # =&gt; 5</div><div class='add'>+</div><div class='add'>+Contrast with String#bytesize:</div><div class='add'>+</div><div class='add'>+  'foo'.bytesize        # =&gt; 3</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.bytesize       # =&gt; 8</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.bytesize   # =&gt; 15</div><div class='add'>+</div><div class='add'>+String#size is an alias for String#length.</div><div class='head'>diff --git a/doc/string/ljust.rdoc b/doc/string/ljust.rdoc<br/>new file mode 100644<br/>index 0000000000..8e23c1fc8f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/ljust.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/ljust.rdoc</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+Returns a left-justified copy of +self+.</div><div class='add'>+</div><div class='add'>+If integer argument +size+ is greater than the size (in characters) of +self+,</div><div class='add'>+returns a new string of length +size+ that is a copy of +self+,</div><div class='add'>+left justified and padded on the right with +pad_string+:</div><div class='add'>+</div><div class='add'>+  'hello'.ljust(10)       # =&gt; "hello     "</div><div class='add'>+  '  hello'.ljust(10)     # =&gt; "  hello   "</div><div class='add'>+  'hello'.ljust(10, 'ab') # =&gt; "helloababa"</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.ljust(10)        # =&gt; "Ñ‚ÐµÑÑ‚      "</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.ljust(10)    # =&gt; "ã“ã‚“ã«ã¡ã¯     "</div><div class='add'>+</div><div class='add'>+If +size+ is not greater than the size of +self+, returns a copy of +self+:</div><div class='add'>+</div><div class='add'>+  'hello'.ljust(5)  # =&gt; "hello"</div><div class='add'>+  'hello'.ljust(1)  # =&gt; "hello"</div><div class='head'>diff --git a/doc/string/new.rdoc b/doc/string/new.rdoc<br/>new file mode 100644<br/>index 0000000000..d955e61c87<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/new.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/new.rdoc</a></div><div class='hunk'>@@ -0,0 +1,51 @@</div><div class='add'>+Returns a new \String that is a copy of +string+.</div><div class='add'>+</div><div class='add'>+With no arguments, returns the empty string with the Encoding &lt;tt&gt;ASCII-8BIT&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+  s = String.new</div><div class='add'>+  s # =&gt; ""</div><div class='add'>+  s.encoding # =&gt; #&lt;Encoding:ASCII-8BIT&gt;</div><div class='add'>+</div><div class='add'>+With optional argument +string+ and no keyword arguments,</div><div class='add'>+returns a copy of +string+ with the same encoding:</div><div class='add'>+</div><div class='add'>+  String.new('foo')               # =&gt; "foo"</div><div class='add'>+  String.new('Ñ‚ÐµÑÑ‚')              # =&gt; "Ñ‚ÐµÑÑ‚"</div><div class='add'>+  String.new('ã“ã‚“ã«ã¡ã¯')          # =&gt; "ã“ã‚“ã«ã¡ã¯"</div><div class='add'>+</div><div class='add'>+(Unlike \String.new,</div><div class='add'>+a {string literal}[rdoc-ref:syntax/literals.rdoc@String+Literals] like &lt;tt&gt;''&lt;/tt&gt; or a</div><div class='add'>+{here document literal}[rdoc-ref:syntax/literals.rdoc@Here+Document+Literals]</div><div class='add'>+always has {script encoding}[rdoc-ref:encodings.rdoc@Script+Encoding].)</div><div class='add'>+</div><div class='add'>+With optional keyword argument +encoding+, returns a copy of +string+</div><div class='add'>+with the specified encoding;</div><div class='add'>+the +encoding+ may be an Encoding object, an encoding name,</div><div class='add'>+or an encoding name alias:</div><div class='add'>+</div><div class='add'>+  String.new('foo', encoding: Encoding::US_ASCII).encoding # =&gt; #&lt;Encoding:US-ASCII&gt;</div><div class='add'>+  String.new('foo', encoding: 'US-ASCII').encoding         # =&gt; #&lt;Encoding:US-ASCII&gt;</div><div class='add'>+  String.new('foo', encoding: 'ASCII').encoding            # =&gt; #&lt;Encoding:US-ASCII&gt;</div><div class='add'>+</div><div class='add'>+The given encoding need not be valid for the string's content,</div><div class='add'>+and that validity is not checked:</div><div class='add'>+</div><div class='add'>+  s = String.new('ã“ã‚“ã«ã¡ã¯', encoding: 'ascii')</div><div class='add'>+  s.valid_encoding? # =&gt; false</div><div class='add'>+</div><div class='add'>+But the given +encoding+ itself is checked:</div><div class='add'>+</div><div class='add'>+  String.new('foo', encoding: 'bar') # Raises ArgumentError.</div><div class='add'>+</div><div class='add'>+With optional keyword argument +capacity+, returns a copy of +string+</div><div class='add'>+(or an empty string, if +string+ is not given);</div><div class='add'>+the given +capacity+ is advisory only,</div><div class='add'>+and may or may not set the size of the internal buffer,</div><div class='add'>+which may in turn affect performance:</div><div class='add'>+</div><div class='add'>+  String.new(capacity: 1)</div><div class='add'>+  String.new('foo', capacity: 4096)</div><div class='add'>+</div><div class='add'>+The +string+, +encoding+, and +capacity+ arguments may all be used together:</div><div class='add'>+</div><div class='add'>+  String.new('hello', encoding: 'UTF-8', capacity: 25)</div><div class='head'>diff --git a/doc/string/ord.rdoc b/doc/string/ord.rdoc<br/>new file mode 100644<br/>index 0000000000..d586363d44<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/ord.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/ord.rdoc</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+Returns the integer ordinal of the first character of +self+:</div><div class='add'>+</div><div class='add'>+  'h'.ord         # =&gt; 104</div><div class='add'>+  'hello'.ord     # =&gt; 104</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.ord      # =&gt; 1090</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.ord  # =&gt; 12371</div><div class='head'>diff --git a/doc/string/partition.rdoc b/doc/string/partition.rdoc<br/>new file mode 100644<br/>index 0000000000..ebe575e8eb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/partition.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/partition.rdoc</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+Returns a 3-element array of substrings of +self+.</div><div class='add'>+</div><div class='add'>+Matches a pattern against +self+, scanning from the beginning.</div><div class='add'>+The pattern is:</div><div class='add'>+</div><div class='add'>+- +string_or_regexp+ itself, if it is a Regexp.</div><div class='add'>+- &lt;tt&gt;Regexp.quote(string_or_regexp)&lt;/tt&gt;, if +string_or_regexp+ is a string.</div><div class='add'>+</div><div class='add'>+If the pattern is matched, returns pre-match, first-match, post-match:</div><div class='add'>+</div><div class='add'>+  'hello'.partition('l')      # =&gt; ["he", "l", "lo"]</div><div class='add'>+  'hello'.partition('ll')     # =&gt; ["he", "ll", "o"]</div><div class='add'>+  'hello'.partition('h')      # =&gt; ["", "h", "ello"]</div><div class='add'>+  'hello'.partition('o')      # =&gt; ["hell", "o", ""]</div><div class='add'>+  'hello'.partition(/l+/)     #=&gt; ["he", "ll", "o"]</div><div class='add'>+  'hello'.partition('')       # =&gt; ["", "", "hello"]</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.partition('Ñ‚')       # =&gt; ["", "Ñ‚", "ÐµÑÑ‚"]</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.partition('ã«')  # =&gt; ["ã“ã‚“", "ã«", "ã¡ã¯"]</div><div class='add'>+</div><div class='add'>+If the pattern is not matched, returns a copy of +self+ and two empty strings:</div><div class='add'>+</div><div class='add'>+  'hello'.partition('x') # =&gt; ["hello", "", ""]</div><div class='add'>+</div><div class='add'>+Related: String#rpartition, String#split.</div><div class='head'>diff --git a/doc/string/rjust.rdoc b/doc/string/rjust.rdoc<br/>new file mode 100644<br/>index 0000000000..24e7bf3159<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/rjust.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/rjust.rdoc</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+Returns a right-justified copy of +self+.</div><div class='add'>+</div><div class='add'>+If integer argument +size+ is greater than the size (in characters) of +self+,</div><div class='add'>+returns a new string of length +size+ that is a copy of +self+,</div><div class='add'>+right justified and padded on the left with +pad_string+:</div><div class='add'>+</div><div class='add'>+  'hello'.rjust(10)       # =&gt; "     hello"</div><div class='add'>+  'hello  '.rjust(10)     # =&gt; "   hello  "</div><div class='add'>+  'hello'.rjust(10, 'ab') # =&gt; "ababahello"</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.rjust(10)        # =&gt; "      Ñ‚ÐµÑÑ‚"</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.rjust(10)    # =&gt; "     ã“ã‚“ã«ã¡ã¯"</div><div class='add'>+</div><div class='add'>+If +size+ is not greater than the size of +self+, returns a copy of +self+:</div><div class='add'>+</div><div class='add'>+  'hello'.rjust(5, 'ab')  # =&gt; "hello"</div><div class='add'>+  'hello'.rjust(1, 'ab')  # =&gt; "hello"</div><div class='head'>diff --git a/doc/string/rpartition.rdoc b/doc/string/rpartition.rdoc<br/>new file mode 100644<br/>index 0000000000..d24106fb9f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/rpartition.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/rpartition.rdoc</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+Returns a 3-element array of substrings of +self+.</div><div class='add'>+</div><div class='add'>+Matches a pattern against +self+, scanning backwards from the end.</div><div class='add'>+The pattern is:</div><div class='add'>+</div><div class='add'>+- +string_or_regexp+ itself, if it is a Regexp.</div><div class='add'>+- &lt;tt&gt;Regexp.quote(string_or_regexp)&lt;/tt&gt;, if +string_or_regexp+ is a string.</div><div class='add'>+</div><div class='add'>+If the pattern is matched, returns pre-match, last-match, post-match:</div><div class='add'>+</div><div class='add'>+  'hello'.rpartition('l')      # =&gt; ["hel", "l", "o"]</div><div class='add'>+  'hello'.rpartition('ll')     # =&gt; ["he", "ll", "o"]</div><div class='add'>+  'hello'.rpartition('h')      # =&gt; ["", "h", "ello"]</div><div class='add'>+  'hello'.rpartition('o')      # =&gt; ["hell", "o", ""]</div><div class='add'>+  'hello'.rpartition(/l+/)     # =&gt; ["hel", "l", "o"]</div><div class='add'>+  'hello'.rpartition('')       # =&gt; ["hello", "", ""]</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.rpartition('Ñ‚')       # =&gt; ["Ñ‚ÐµÑ", "Ñ‚", ""]</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.rpartition('ã«')  # =&gt; ["ã“ã‚“", "ã«", "ã¡ã¯"]</div><div class='add'>+</div><div class='add'>+If the pattern is not matched, returns two empty strings and a copy of +self+:</div><div class='add'>+</div><div class='add'>+  'hello'.rpartition('x') # =&gt; ["", "", "hello"]</div><div class='add'>+</div><div class='add'>+Related: String#partition, String#split.</div><div class='head'>diff --git a/doc/string/scrub.rdoc b/doc/string/scrub.rdoc<br/>new file mode 100644<br/>index 0000000000..1a5b1c79d0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/scrub.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/scrub.rdoc</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+Returns a copy of +self+ with each invalid byte sequence replaced</div><div class='add'>+by the given +replacement_string+.</div><div class='add'>+</div><div class='add'>+With no block given and no argument, replaces each invalid sequence</div><div class='add'>+with the default replacement string</div><div class='add'>+(&lt;tt&gt;"ï¿½"&lt;/tt&gt; for a Unicode encoding, &lt;tt&gt;'?'&lt;/tt&gt; otherwise):</div><div class='add'>+</div><div class='add'>+  s = "foo\x81\x81bar"</div><div class='add'>+  s.scrub # =&gt; "fooï¿½ï¿½bar"</div><div class='add'>+</div><div class='add'>+With no block given and argument +replacement_string+ given,</div><div class='add'>+replaces each invalid sequence with that string:</div><div class='add'>+</div><div class='add'>+  "foo\x81\x81bar".scrub('xyzzy') # =&gt; "fooxyzzyxyzzybar"</div><div class='add'>+</div><div class='add'>+With a block given, replaces each invalid sequence with the value</div><div class='add'>+of the block:</div><div class='add'>+</div><div class='add'>+  "foo\x81\x81bar".scrub {|bytes| p bytes; 'XYZZY' }</div><div class='add'>+  # =&gt; "fooXYZZYXYZZYbar"</div><div class='add'>+</div><div class='add'>+Output:</div><div class='add'>+</div><div class='add'>+  "\x81"</div><div class='add'>+  "\x81"</div><div class='head'>diff --git a/doc/string/split.rdoc b/doc/string/split.rdoc<br/>new file mode 100644<br/>index 0000000000..2b5e14ddb6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/split.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/split.rdoc</a></div><div class='hunk'>@@ -0,0 +1,86 @@</div><div class='add'>+Returns an array of substrings of +self+</div><div class='add'>+that are the result of splitting +self+</div><div class='add'>+at each occurrence of the given field separator +field_sep+.</div><div class='add'>+</div><div class='add'>+When +field_sep+ is &lt;tt&gt;$;&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+- If &lt;tt&gt;$;&lt;/tt&gt; is +nil+ (its default value),</div><div class='add'>+  the split occurs just as if +field_sep+ were given as a space character</div><div class='add'>+  (see below).</div><div class='add'>+</div><div class='add'>+- If &lt;tt&gt;$;&lt;/tt&gt; is a string,</div><div class='add'>+  the split ocurs just as if +field_sep+ were given as that string</div><div class='add'>+  (see below).</div><div class='add'>+</div><div class='add'>+When +field_sep+ is &lt;tt&gt;' '&lt;/tt&gt; and +limit+ is +nil+,</div><div class='add'>+the split occurs at each sequence of whitespace:</div><div class='add'>+</div><div class='add'>+  'abc def ghi'.split(' ')         =&gt; ["abc", "def", "ghi"]</div><div class='add'>+  "abc \n\tdef\t\n  ghi".split(' ') # =&gt; ["abc", "def", "ghi"]</div><div class='add'>+  'abc  def   ghi'.split(' ')      =&gt; ["abc", "def", "ghi"]</div><div class='add'>+  ''.split(' ')                    =&gt; []</div><div class='add'>+</div><div class='add'>+When +field_sep+ is a string different from &lt;tt&gt;' '&lt;/tt&gt;</div><div class='add'>+and +limit+ is +nil+,</div><div class='add'>+the split occurs at each occurrence of +field_sep+;</div><div class='add'>+trailing empty substrings are not returned:</div><div class='add'>+</div><div class='add'>+  'abracadabra'.split('ab')  =&gt; ["", "racad", "ra"]</div><div class='add'>+  'aaabcdaaa'.split('a')     =&gt; ["", "", "", "bcd"]</div><div class='add'>+  ''.split('a')              =&gt; []</div><div class='add'>+  '3.14159'.split('1')       =&gt; ["3.", "4", "59"]</div><div class='add'>+  '!@#$%^$&amp;*($)_+'.split('$') # =&gt; ["!@#", "%^", "&amp;*(", ")_+"]</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.split('Ñ‚')          =&gt; ["", "ÐµÑ"]</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.split('ã«')     =&gt; ["ã“ã‚“", "ã¡ã¯"]</div><div class='add'>+</div><div class='add'>+When +field_sep+ is a Regexp and +limit+ is +nil+,</div><div class='add'>+the split occurs at each occurrence of a match;</div><div class='add'>+trailing empty substrings are not returned:</div><div class='add'>+</div><div class='add'>+  'abracadabra'.split(/ab/) # =&gt; ["", "racad", "ra"]</div><div class='add'>+  'aaabcdaaa'.split(/a/)   =&gt; ["", "", "", "bcd"]</div><div class='add'>+  'aaabcdaaa'.split(//)    =&gt; ["a", "a", "a", "b", "c", "d", "a", "a", "a"]</div><div class='add'>+  '1 + 1 == 2'.split(/\W+/) # =&gt; ["1", "1", "2"]</div><div class='add'>+</div><div class='add'>+If the \Regexp contains groups, their matches are also included</div><div class='add'>+in the returned array:</div><div class='add'>+</div><div class='add'>+  '1:2:3'.split(/(:)()()/, 2) # =&gt; ["1", ":", "", "", "2:3"]</div><div class='add'>+</div><div class='add'>+As seen above, if +limit+ is +nil+,</div><div class='add'>+trailing empty substrings are not returned;</div><div class='add'>+the same is true if +limit+ is zero:</div><div class='add'>+</div><div class='add'>+  'aaabcdaaa'.split('a')   =&gt; ["", "", "", "bcd"]</div><div class='add'>+  'aaabcdaaa'.split('a', 0) # =&gt; ["", "", "", "bcd"]</div><div class='add'>+</div><div class='add'>+If +limit+ is positive integer +n+, no more than &lt;tt&gt;n - 1-&lt;/tt&gt;</div><div class='add'>+splits occur, so that at most +n+ substrings are returned,</div><div class='add'>+and trailing empty substrings are included:</div><div class='add'>+</div><div class='add'>+  'aaabcdaaa'.split('a', 1) # =&gt; ["aaabcdaaa"]</div><div class='add'>+  'aaabcdaaa'.split('a', 2) # =&gt; ["", "aabcdaaa"]</div><div class='add'>+  'aaabcdaaa'.split('a', 5) # =&gt; ["", "", "", "bcd", "aa"]</div><div class='add'>+  'aaabcdaaa'.split('a', 7) # =&gt; ["", "", "", "bcd", "", "", ""]</div><div class='add'>+  'aaabcdaaa'.split('a', 8) # =&gt; ["", "", "", "bcd", "", "", ""]</div><div class='add'>+</div><div class='add'>+Note that if +field_sep+ is a \Regexp containing groups,</div><div class='add'>+their matches are in the returned array, but do not count toward the limit.</div><div class='add'>+</div><div class='add'>+If +limit+ is negative, it behaves the same as if +limit+ was +nil+,</div><div class='add'>+meaning that there is no limit,</div><div class='add'>+and trailing empty substrings are included:</div><div class='add'>+</div><div class='add'>+  'aaabcdaaa'.split('a', -1) # =&gt; ["", "", "", "bcd", "", "", ""]</div><div class='add'>+</div><div class='add'>+If a block is given, it is called with each substring:</div><div class='add'>+</div><div class='add'>+  'abc def ghi'.split(' ') {|substring| p substring }</div><div class='add'>+</div><div class='add'>+Output:</div><div class='add'>+</div><div class='add'>+  "abc"</div><div class='add'>+  "def"</div><div class='add'>+  "ghi"</div><div class='add'>+</div><div class='add'>+Related: String#partition, String#rpartition.</div><div class='head'>diff --git a/doc/string/start_with_p.rdoc b/doc/string/start_with_p.rdoc<br/>new file mode 100644<br/>index 0000000000..5d1f9f9543<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/start_with_p.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/start_with_p.rdoc</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+Returns whether +self+ starts with any of the given +string_or_regexp+.</div><div class='add'>+</div><div class='add'>+Matches patterns against the beginning of +self+.</div><div class='add'>+For each given +string_or_regexp+, the pattern is:</div><div class='add'>+</div><div class='add'>+- +string_or_regexp+ itself, if it is a Regexp.</div><div class='add'>+- &lt;tt&gt;Regexp.quote(string_or_regexp)&lt;/tt&gt;, if +string_or_regexp+ is a string.</div><div class='add'>+</div><div class='add'>+Returns +true+ if any pattern matches the beginning, +false+ otherwise:</div><div class='add'>+</div><div class='add'>+  'hello'.start_with?('hell')               # =&gt; true</div><div class='add'>+  'hello'.start_with?(/H/i)                 # =&gt; true</div><div class='add'>+  'hello'.start_with?('heaven', 'hell')     # =&gt; true</div><div class='add'>+  'hello'.start_with?('heaven', 'paradise') # =&gt; false</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.start_with?('Ñ‚')                   # =&gt; true</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.start_with?('ã“')              # =&gt; true</div><div class='add'>+</div><div class='add'>+Related: String#end_with?.</div><div class='head'>diff --git a/doc/string/sum.rdoc b/doc/string/sum.rdoc<br/>new file mode 100644<br/>index 0000000000..5de24e6402<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/string/sum.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/string/sum.rdoc</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+Returns a basic +n+-bit checksum of the characters in +self+;</div><div class='add'>+the checksum is the sum of the binary value of each byte in +self+,</div><div class='add'>+modulo &lt;tt&gt;2**n - 1&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+  'hello'.sum     # =&gt; 532</div><div class='add'>+  'hello'.sum(4)  # =&gt; 4</div><div class='add'>+  'hello'.sum(64) # =&gt; 532</div><div class='add'>+  'Ñ‚ÐµÑÑ‚'.sum      # =&gt; 1405</div><div class='add'>+  'ã“ã‚“ã«ã¡ã¯'.sum  # =&gt; 2582</div><div class='add'>+</div><div class='add'>+This is not a particularly strong checksum.</div><div class='head'>diff --git a/doc/symbol/casecmp.rdoc b/doc/symbol/casecmp.rdoc<br/>new file mode 100644<br/>index 0000000000..9c286070b7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/symbol/casecmp.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/symbol/casecmp.rdoc</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+Like Symbol#&lt;=&gt;, but case-insensitive;</div><div class='add'>+equivalent to &lt;tt&gt;self.to_s.casecmp(object.to_s)&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+  lower = :abc</div><div class='add'>+  upper = :ABC</div><div class='add'>+  upper.casecmp(lower) # =&gt; 0</div><div class='add'>+  lower.casecmp(lower) # =&gt; 0</div><div class='add'>+  lower.casecmp(upper) # =&gt; 0</div><div class='add'>+</div><div class='add'>+Returns nil if +self+ and +object+ have incompatible encodings,</div><div class='add'>+or if +object+ is not a symbol:</div><div class='add'>+</div><div class='add'>+  sym = 'Ã¤Ã¶Ã¼'.encode("ISO-8859-1").to_sym</div><div class='add'>+  other_sym = 'Ã„Ã–Ãœ'</div><div class='add'>+  sym.casecmp(other_sym) # =&gt; nil</div><div class='add'>+  :foo.casecmp(2)        # =&gt; nil</div><div class='add'>+</div><div class='add'>+Unlike Symbol#casecmp?,</div><div class='add'>+case-insensitivity does not work for characters outside of 'A'..'Z' and 'a'..'z':</div><div class='add'>+</div><div class='add'>+  lower = :Ã¤Ã¶Ã¼</div><div class='add'>+  upper = :Ã„Ã–Ãœ</div><div class='add'>+  upper.casecmp(lower) # =&gt; -1</div><div class='add'>+  lower.casecmp(lower) # =&gt; 0</div><div class='add'>+  lower.casecmp(upper) # =&gt; 1</div><div class='add'>+</div><div class='add'>+Related: Symbol#casecmp?, String#casecmp.</div><div class='head'>diff --git a/doc/symbol/casecmp_p.rdoc b/doc/symbol/casecmp_p.rdoc<br/>new file mode 100644<br/>index 0000000000..7102b54289<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/symbol/casecmp_p.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/symbol/casecmp_p.rdoc</a></div><div class='hunk'>@@ -0,0 +1,26 @@</div><div class='add'>+Returns +true+ if +self+ and +object+ are equal after Unicode case folding,</div><div class='add'>+otherwise +false+:</div><div class='add'>+</div><div class='add'>+  lower = :abc</div><div class='add'>+  upper = :ABC</div><div class='add'>+  upper.casecmp?(lower) # =&gt; true</div><div class='add'>+  lower.casecmp?(lower) # =&gt; true</div><div class='add'>+  lower.casecmp?(upper) # =&gt; true</div><div class='add'>+</div><div class='add'>+Returns nil if +self+ and +object+ have incompatible encodings,</div><div class='add'>+or if +object+ is not a symbol:</div><div class='add'>+</div><div class='add'>+  sym = 'Ã¤Ã¶Ã¼'.encode("ISO-8859-1").to_sym</div><div class='add'>+  other_sym = 'Ã„Ã–Ãœ'</div><div class='add'>+  sym.casecmp?(other_sym) # =&gt; nil</div><div class='add'>+  :foo.casecmp?(2)        # =&gt; nil</div><div class='add'>+</div><div class='add'>+Unlike Symbol#casecmp, works for characters outside of 'A'..'Z' and 'a'..'z':</div><div class='add'>+</div><div class='add'>+  lower = :Ã¤Ã¶Ã¼</div><div class='add'>+  upper = :Ã„Ã–Ãœ</div><div class='add'>+  upper.casecmp?(lower) # =&gt; true</div><div class='add'>+  lower.casecmp?(lower) # =&gt; true</div><div class='add'>+  lower.casecmp?(upper) # =&gt; true</div><div class='add'>+</div><div class='add'>+Related: Symbol#casecmp, String#casecmp?.</div><div class='head'>diff --git a/doc/syntax.rdoc b/doc/syntax.rdoc<br/>index fe0f98ce4c..5895673f36 100644<br/>--- a/<a href='/ruby.git/tree/doc/syntax.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/syntax.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax.rdoc</a></div><div class='hunk'>@@ -11,6 +11,9 @@ Assignment[rdoc-ref:syntax/assignment.rdoc] ::</div><div class='ctx'> {Control Expressions}[rdoc-ref:syntax/control_expressions.rdoc] ::</div><div class='ctx'>   +if+, +unless+, +while+, +until+, +for+, +break+, +next+, +redo+</div><div class='ctx'> </div><div class='add'>+{Pattern matching}[rdoc-ref:syntax/pattern_matching.rdoc] ::</div><div class='add'>+  Experimental structural pattern matching and variable binding syntax</div><div class='add'>+</div><div class='ctx'> Methods[rdoc-ref:syntax/methods.rdoc] ::</div><div class='ctx'>   Method and method argument syntax</div><div class='ctx'> </div><div class='hunk'>@@ -27,8 +30,10 @@ Precedence[rdoc-ref:syntax/precedence.rdoc] ::</div><div class='ctx'>   Precedence of ruby operators</div><div class='ctx'> </div><div class='ctx'> Refinements[rdoc-ref:syntax/refinements.rdoc] ::</div><div class='del'>-  Use and behavior of the experimental refinements feature</div><div class='add'>+  Use and behavior of the refinements feature</div><div class='ctx'> </div><div class='ctx'> Miscellaneous[rdoc-ref:syntax/miscellaneous.rdoc] ::</div><div class='ctx'>   +alias+, +undef+, +BEGIN+, +END+</div><div class='ctx'> </div><div class='add'>+Comments[rdoc-ref:syntax/comments.rdoc] ::</div><div class='add'>+  Line and block code comments</div><div class='head'>diff --git a/doc/syntax/assignment.rdoc b/doc/syntax/assignment.rdoc<br/>index 83300cbece..1321bbf3ac 100644<br/>--- a/<a href='/ruby.git/tree/doc/syntax/assignment.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/assignment.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/syntax/assignment.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/assignment.rdoc</a></div><div class='hunk'>@@ -8,6 +8,9 @@ example assigns the number five to the local variable +v+:</div><div class='ctx'> Assignment creates a local variable if the variable was not previously</div><div class='ctx'> referenced.</div><div class='ctx'> </div><div class='add'>+An assignment expression result is always the assigned value, including</div><div class='add'>+{assignment methods}[rdoc-ref:syntax/assignment.rdoc@Assignment+Methods].</div><div class='add'>+</div><div class='ctx'> == Local Variable Names</div><div class='ctx'> </div><div class='ctx'> A local variable name must start with a lowercase US-ASCII letter or a</div><div class='hunk'>@@ -92,8 +95,9 @@ Now any reference to +big_calculation+ is considered a local variable and will</div><div class='ctx'> be cached.  To call the method, use &lt;code&gt;self.big_calculation&lt;/code&gt;.</div><div class='ctx'> </div><div class='ctx'> You can force a method call by using empty argument parentheses as shown above</div><div class='del'>-or by using an explicit receiver like &lt;code&gt;self.&lt;/code&gt;.  Using an explicit</div><div class='del'>-receiver may raise a NameError if the method's visibility is not public.</div><div class='add'>+or by using an explicit receiver like &lt;code&gt;self&lt;/code&gt;.  Using an explicit</div><div class='add'>+receiver may raise a NameError if the method's visibility is not public or the</div><div class='add'>+receiver is the literal &lt;code&gt;self&lt;/code&gt;.</div><div class='ctx'> </div><div class='ctx'> Another commonly confusing case is when using a modifier +if+:</div><div class='ctx'> </div><div class='hunk'>@@ -109,6 +113,28 @@ The confusion comes from the out-of-order execution of the expression.  First</div><div class='ctx'> the local variable is assigned-to then you attempt to call a nonexistent</div><div class='ctx'> method.</div><div class='ctx'> </div><div class='add'>+== Local Variables and eval</div><div class='add'>+</div><div class='add'>+Using +eval+ to evaluate Ruby code will allow access to local variables defined</div><div class='add'>+in the same scope, even if the local variables are not defined until after the</div><div class='add'>+call to +eval+.  However, local variables defined inside the call to +eval+</div><div class='add'>+will not be reflected in the surrounding scope.  Inside the call to +eval+,</div><div class='add'>+local variables defined in the surrounding scope and local variables defined</div><div class='add'>+inside the call to +eval+ will be accessible.  However, you will not be able</div><div class='add'>+to access local variables defined in previous or subsequent calls to +eval+ in</div><div class='add'>+the same scope. Consider each +eval+ call a separate nested scope. Example:</div><div class='add'>+</div><div class='add'>+  def m</div><div class='add'>+    eval "bar = 1"</div><div class='add'>+    lvs = eval "baz = 2; ary = [local_variables, foo, baz]; x = 2; ary"</div><div class='add'>+    eval "quux = 3"</div><div class='add'>+    foo = 1</div><div class='add'>+    lvs &lt;&lt; local_variables</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  m</div><div class='add'>+  # =&gt; [[:baz, :ary, :x, :lvs, :foo], nil, 2, [:lvs, :foo]]</div><div class='add'>+</div><div class='ctx'> == Instance Variables</div><div class='ctx'> </div><div class='ctx'> Instance variables are shared across all methods for the same object.</div><div class='hunk'>@@ -319,6 +345,9 @@ This prints:</div><div class='ctx'>   local_variables:</div><div class='ctx'>   @value: 42</div><div class='ctx'> </div><div class='add'>+Note that the value returned by an assignment method is ignored whatever,</div><div class='add'>+since an assignment expression result is always the assignment value.</div><div class='add'>+</div><div class='ctx'> == Abbreviated Assignment</div><div class='ctx'> </div><div class='ctx'> You can mix several of the operators and assignment.  To add 1 to an object</div><div class='head'>diff --git a/doc/syntax/calling_methods.rdoc b/doc/syntax/calling_methods.rdoc<br/>index b86d60ad88..da061dbfdb 100644<br/>--- a/<a href='/ruby.git/tree/doc/syntax/calling_methods.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/calling_methods.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/syntax/calling_methods.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/calling_methods.rdoc</a></div><div class='hunk'>@@ -30,7 +30,41 @@ NoMethodError.</div><div class='ctx'> You may also use &lt;code&gt;::&lt;/code&gt; to designate a receiver, but this is rarely</div><div class='ctx'> used due to the potential for confusion with &lt;code&gt;::&lt;/code&gt; for namespaces.</div><div class='ctx'> </div><div class='del'>-=== Safe navigation operator</div><div class='add'>+=== Chaining \Method Calls</div><div class='add'>+</div><div class='add'>+You can "chain" method calls by immediately following one method call with another.</div><div class='add'>+</div><div class='add'>+This example chains methods Array#append and Array#compact:</div><div class='add'>+</div><div class='add'>+  a = [:foo, 'bar', 2]</div><div class='add'>+  a1 = [:baz, nil, :bam, nil]</div><div class='add'>+  a2 = a.append(*a1).compact</div><div class='add'>+  a2 # =&gt; [:foo, "bar", 2, :baz, :bam]</div><div class='add'>+</div><div class='add'>+Details:</div><div class='add'>+</div><div class='add'>+- First method &lt;tt&gt;merge&lt;/tt&gt; creates a copy of &lt;tt&gt;a&lt;/tt&gt;,</div><div class='add'>+  appends (separately) each element of &lt;tt&gt;a1&lt;/tt&gt; to the copy, and returns</div><div class='add'>+    [:foo, "bar", 2, :baz, nil, :bam, nil]</div><div class='add'>+- Chained method &lt;tt&gt;compact&lt;/tt&gt; creates a copy of that return value,</div><div class='add'>+  removes its &lt;tt&gt;nil&lt;/tt&gt;-valued entries, and returns</div><div class='add'>+     [:foo, "bar", 2, :baz, :bam]</div><div class='add'>+</div><div class='add'>+You can chain methods that are in different classes.</div><div class='add'>+This example chains methods Hash#to_a and Array#reverse:</div><div class='add'>+</div><div class='add'>+  h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+  h.to_a.reverse # =&gt; [[:baz, 2], [:bar, 1], [:foo, 0]]</div><div class='add'>+</div><div class='add'>+Details:</div><div class='add'>+</div><div class='add'>+- First method Hash#to_a converts &lt;tt&gt;a&lt;/tt&gt; to an \Array, and returns</div><div class='add'>+    [[:foo, 0], [:bar, 1], [:baz, 2]]</div><div class='add'>+- Chained method Array#reverse creates copy of that return value,</div><div class='add'>+  reverses it, and  returns</div><div class='add'>+    [[:baz, 2], [:bar, 1], [:foo, 0]]</div><div class='add'>+</div><div class='add'>+=== Safe Navigation Operator</div><div class='ctx'> </div><div class='ctx'> &lt;code&gt;&amp;.&lt;/code&gt;, called "safe navigation operator", allows to skip method call</div><div class='ctx'> when receiver is +nil+. It returns +nil+ and doesn't evaluate method's arguments</div><div class='hunk'>@@ -98,7 +132,7 @@ to:</div><div class='ctx'> If the method definition has a &lt;code&gt;*argument&lt;/code&gt; extra positional</div><div class='ctx'> arguments will be assigned to +argument+ in the method as an Array.</div><div class='ctx'> </div><div class='del'>-If the method definition doesn't include keyword arguments the keyword or</div><div class='add'>+If the method definition doesn't include keyword arguments, the keyword or</div><div class='ctx'> hash-type arguments are assigned as a single hash to the last argument:</div><div class='ctx'> </div><div class='ctx'>   def my_method(options)</div><div class='hunk'>@@ -172,9 +206,28 @@ like positional arguments:</div><div class='ctx'>   my_method(positional1, keyword1: value1, keyword2: value2)</div><div class='ctx'> </div><div class='ctx'> Any keyword arguments not given will use the default value from the method</div><div class='del'>-definition.  If a keyword argument is given that the method did not list an</div><div class='add'>+definition.  If a keyword argument is given that the method did not list,</div><div class='add'>+and the method definition does not accept arbitrary keyword arguments, an</div><div class='ctx'> ArgumentError will be raised.</div><div class='ctx'> </div><div class='add'>+Keyword argument value can be omitted, meaning the value will be be fetched</div><div class='add'>+from the context by the name of the key</div><div class='add'>+</div><div class='add'>+  keyword1 = 'some value'</div><div class='add'>+  my_method(positional1, keyword1:)</div><div class='add'>+  # ...is the same as</div><div class='add'>+  my_method(positional1, keyword1: keyword1)</div><div class='add'>+</div><div class='add'>+Be aware that when method parenthesis are omitted, too, the parsing order might</div><div class='add'>+be unexpected:</div><div class='add'>+</div><div class='add'>+  my_method positional1, keyword1:</div><div class='add'>+</div><div class='add'>+  some_other_expression</div><div class='add'>+</div><div class='add'>+  # ...is actually parsed as</div><div class='add'>+  my_method(positional1, keyword1: some_other_expression)</div><div class='add'>+</div><div class='ctx'> === Block Argument</div><div class='ctx'> </div><div class='ctx'> The block argument sends a closure from the calling scope to the method.</div><div class='hunk'>@@ -278,6 +331,9 @@ hash at the end of the array into keyword arguments:</div><div class='ctx'>   arguments = [1, 2, { c: 4 }]</div><div class='ctx'>   my_method(*arguments)</div><div class='ctx'> </div><div class='add'>+Note that this behavior is currently deprecated and will emit a warning.</div><div class='add'>+This behavior will be removed in Ruby 3.0.</div><div class='add'>+</div><div class='ctx'> You may also use the &lt;code&gt;**&lt;/code&gt; (described next) to convert a Hash into</div><div class='ctx'> keyword arguments.</div><div class='ctx'> </div><div class='hunk'>@@ -285,7 +341,10 @@ If the number of objects in the Array do not match the number of arguments for</div><div class='ctx'> the method, an ArgumentError will be raised.</div><div class='ctx'> </div><div class='ctx'> If the splat operator comes first in the call, parentheses must be used to</div><div class='del'>-avoid a warning.</div><div class='add'>+avoid a warning:</div><div class='add'>+</div><div class='add'>+  my_method *arguments  # warning</div><div class='add'>+  my_method(*arguments) # no warning</div><div class='ctx'> </div><div class='ctx'> === Hash to Keyword Arguments Conversion</div><div class='ctx'> </div><div class='hunk'>@@ -294,7 +353,8 @@ Given the following method:</div><div class='ctx'>   def my_method(first: 1, second: 2, third: 3)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-You can turn a Hash into keyword arguments with the &lt;code&gt;**&lt;/code&gt; operator:</div><div class='add'>+You can turn a Hash into keyword arguments with the &lt;code&gt;**&lt;/code&gt;</div><div class='add'>+(keyword splat) operator:</div><div class='ctx'> </div><div class='ctx'>   arguments = { first: 3, second: 4, third: 5 }</div><div class='ctx'>   my_method(**arguments)</div><div class='hunk'>@@ -308,8 +368,9 @@ Both are equivalent to:</div><div class='ctx'> </div><div class='ctx'>   my_method(first: 3, second: 4, third: 5)</div><div class='ctx'> </div><div class='del'>-If the method definition uses &lt;code&gt;**&lt;/code&gt; to gather arbitrary keyword</div><div class='del'>-arguments, they will not be gathered by &lt;code&gt;*&lt;/code&gt;:</div><div class='add'>+If the method definition uses the keyword splat operator to</div><div class='add'>+gather arbitrary keyword arguments, they will not be gathered</div><div class='add'>+by &lt;code&gt;*&lt;/code&gt;:</div><div class='ctx'> </div><div class='ctx'>   def my_method(*a, **kw)</div><div class='ctx'>     p arguments: a, keywords: kw</div><div class='hunk'>@@ -319,10 +380,7 @@ arguments, they will not be gathered by &lt;code&gt;*&lt;/code&gt;:</div><div class='ctx'> </div><div class='ctx'> Prints:</div><div class='ctx'> </div><div class='del'>-  {:arguments=&gt;[1, 2, {"3"=&gt;4}], :keywords=&gt;{:five=&gt;6}}</div><div class='del'>-</div><div class='del'>-Unlike the splat operator described above, the &lt;code&gt;**&lt;/code&gt; operator has no</div><div class='del'>-commonly recognized name.</div><div class='add'>+  {:arguments=&gt;[1, 2], :keywords=&gt;{'3'=&gt;4, :five=&gt;6}}</div><div class='ctx'> </div><div class='ctx'> === Proc to Block Conversion</div><div class='ctx'> </div><div class='hunk'>@@ -333,17 +391,17 @@ Given a method that use a block:</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'> You can convert a proc or lambda to a block argument with the &lt;code&gt;&amp;&lt;/code&gt;</div><div class='del'>-operator:</div><div class='add'>+(block conversion) operator:</div><div class='ctx'> </div><div class='ctx'>   argument = proc { |a| puts "#{a.inspect} was yielded" }</div><div class='ctx'> </div><div class='ctx'>   my_method(&amp;argument)</div><div class='ctx'> </div><div class='del'>-If the splat operator comes first in the call, parenthesis must be used to</div><div class='del'>-avoid a warning.</div><div class='add'>+If the block conversion operator comes first in the call, parenthesis must be</div><div class='add'>+used to avoid a warning:</div><div class='ctx'> </div><div class='del'>-Unlike the splat operator described above, the &lt;code&gt;&amp;&lt;/code&gt; operator has no</div><div class='del'>-commonly recognized name.</div><div class='add'>+  my_method &amp;argument  # warning</div><div class='add'>+  my_method(&amp;argument) # no warning</div><div class='ctx'> </div><div class='ctx'> == Method Lookup</div><div class='ctx'> </div><div class='head'>diff --git a/doc/syntax/comments.rdoc b/doc/syntax/comments.rdoc<br/>new file mode 100644<br/>index 0000000000..dbc7816984<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/syntax/comments.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/comments.rdoc</a></div><div class='hunk'>@@ -0,0 +1,253 @@</div><div class='add'>+= Code Comments</div><div class='add'>+</div><div class='add'>+Ruby has two types of comments: inline and block.</div><div class='add'>+</div><div class='add'>+Inline comments start with the &lt;code&gt;#&lt;/code&gt; character and continue until the</div><div class='add'>+end of the line:</div><div class='add'>+</div><div class='add'>+  # On a separate line</div><div class='add'>+  class Foo # or at the end of the line</div><div class='add'>+    # can be indented</div><div class='add'>+    def bar</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+Block comments start with &lt;code&gt;=begin&lt;/code&gt; and end with &lt;code&gt;=end&lt;/code&gt;.</div><div class='add'>+Each should start on a separate line.</div><div class='add'>+</div><div class='add'>+  =begin</div><div class='add'>+  This is</div><div class='add'>+  commented out</div><div class='add'>+  =end</div><div class='add'>+</div><div class='add'>+  class Foo</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  =begin some_tag</div><div class='add'>+  this works, too</div><div class='add'>+  =end</div><div class='add'>+</div><div class='add'>+&lt;code&gt;=begin&lt;/code&gt; and &lt;code&gt;=end&lt;/code&gt; can not be indented, so this is a</div><div class='add'>+syntax error:</div><div class='add'>+</div><div class='add'>+  class Foo</div><div class='add'>+    =begin</div><div class='add'>+    Will not work</div><div class='add'>+    =end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+== Magic Comments</div><div class='add'>+</div><div class='add'>+While comments are typically ignored by Ruby, special "magic comments" contain</div><div class='add'>+directives that affect how the code is interpreted.</div><div class='add'>+</div><div class='add'>+Top-level magic comments must appear in the first comment section of a file.</div><div class='add'>+</div><div class='add'>+NOTE: Magic comments affect only the file in which they appear;</div><div class='add'>+other files are unaffected.</div><div class='add'>+</div><div class='add'>+  # frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+  var = 'hello'</div><div class='add'>+  var.frozen? # =&gt; true</div><div class='add'>+</div><div class='add'>+=== Alternative syntax</div><div class='add'>+</div><div class='add'>+Magic comments may consist of a single directive (as in the example above).</div><div class='add'>+Alternatively, multiple directives may appear on the same line if separated by ";"</div><div class='add'>+and wrapped between "-*-" (see Emacs' {file variables}[https://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html]).</div><div class='add'>+</div><div class='add'>+  # emacs-compatible; -*- coding: big5; mode: ruby; frozen_string_literal: true -*-</div><div class='add'>+</div><div class='add'>+  p 'hello'.frozen? # =&gt; true</div><div class='add'>+  p 'hello'.encoding # =&gt; #&lt;Encoding:Big5&gt;</div><div class='add'>+</div><div class='add'>+=== +encoding+ Directive</div><div class='add'>+</div><div class='add'>+Indicates which string encoding should be used for string literals,</div><div class='add'>+regexp literals and &lt;code&gt;__ENCODING__&lt;/code&gt;:</div><div class='add'>+</div><div class='add'>+  # encoding: big5</div><div class='add'>+</div><div class='add'>+  ''.encoding # =&gt; #&lt;Encoding:Big5&gt;</div><div class='add'>+</div><div class='add'>+Default encoding is UTF-8.</div><div class='add'>+</div><div class='add'>+Top-level magic comments must start on the first line, or on the second line if</div><div class='add'>+the first line looks like &lt;tt&gt;#! shebang line&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+The word "coding" may be used instead of "encoding".</div><div class='add'>+</div><div class='add'>+=== +frozen_string_literal+ Directive</div><div class='add'>+</div><div class='add'>+Indicates that string literals should be allocated once at parse time and frozen.</div><div class='add'>+</div><div class='add'>+  # frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+  3.times do</div><div class='add'>+    p 'hello'.object_id # =&gt; prints same number</div><div class='add'>+  end</div><div class='add'>+  p 'world'.frozen? # =&gt; true</div><div class='add'>+</div><div class='add'>+The default is false; this can be changed with &lt;code&gt;--enable=frozen-string-literal&lt;/code&gt;.</div><div class='add'>+Without the directive, or with &lt;code&gt;# frozen_string_literal: false&lt;/code&gt;,</div><div class='add'>+the example above would print 3 different numbers and "false".</div><div class='add'>+</div><div class='add'>+Starting in Ruby 3.0, string literals that are dynamic are not frozen nor reused:</div><div class='add'>+</div><div class='add'>+  # frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+  p "Addition: #{2 + 2}".frozen? # =&gt; false</div><div class='add'>+</div><div class='add'>+It must appear in the first comment section of a file.</div><div class='add'>+</div><div class='add'>+=== +warn_indent+ Directive</div><div class='add'>+</div><div class='add'>+This directive can turn on detection of bad indentation for statements that follow it:</div><div class='add'>+</div><div class='add'>+  def foo</div><div class='add'>+    end # =&gt; no warning</div><div class='add'>+</div><div class='add'>+  # warn_indent: true</div><div class='add'>+  def bar</div><div class='add'>+    end # =&gt; warning: mismatched indentations at 'end' with 'def' at 6</div><div class='add'>+</div><div class='add'>+Another way to get these warnings to show is by running Ruby with warnings (&lt;code&gt;ruby -w&lt;/code&gt;). Using a directive to set this false will prevent these warnings to show.</div><div class='add'>+</div><div class='add'>+=== +shareable_constant_value+ Directive</div><div class='add'>+</div><div class='add'>+Note: This directive is experimental in Ruby 3.0 and may change in future releases.</div><div class='add'>+</div><div class='add'>+This special directive helps to create constants that hold only immutable objects, or {Ractor-shareable}[rdoc-ref:Ractor@Shareable+and+unshareable+objects] constants.</div><div class='add'>+</div><div class='add'>+The directive can specify special treatment for values assigned to constants:</div><div class='add'>+</div><div class='add'>+* +none+: (default)</div><div class='add'>+* +literal+: literals are implicitly frozen, others must be Ractor-shareable</div><div class='add'>+* +experimental_everything+: all made shareable</div><div class='add'>+* +experimental_copy+: copy deeply and make it shareable</div><div class='add'>+</div><div class='add'>+==== Mode +none+ (default)</div><div class='add'>+</div><div class='add'>+No special treatment in this mode (as in Ruby 2.x): no automatic freezing and no checks.</div><div class='add'>+</div><div class='add'>+It has always been a good idea to deep-freeze constants; Ractor makes this</div><div class='add'>+an even better idea as only the main ractor can access non-shareable constants:</div><div class='add'>+</div><div class='add'>+  # shareable_constant_value: none</div><div class='add'>+  A = {foo: []}</div><div class='add'>+  A.frozen? # =&gt; false</div><div class='add'>+  Ractor.new { puts A } # =&gt; can not access non-shareable objects by non-main Ractor.</div><div class='add'>+</div><div class='add'>+==== Mode +literal+</div><div class='add'>+</div><div class='add'>+In "literal" mode, constants assigned to literals will be deeply-frozen:</div><div class='add'>+</div><div class='add'>+  # shareable_constant_value: literal</div><div class='add'>+  X = [{foo: []}] # =&gt; same as [{foo: [].freeze}.freeze].freeze</div><div class='add'>+</div><div class='add'>+Other values must be shareable:</div><div class='add'>+</div><div class='add'>+  # shareable_constant_value: literal</div><div class='add'>+  X = Object.new # =&gt; cannot assign unshareable object to X</div><div class='add'>+</div><div class='add'>+Note that only literals directly assigned to constants, or recursively held in such literals will be frozen:</div><div class='add'>+</div><div class='add'>+  # shareable_constant_value: literal</div><div class='add'>+  var = [{foo: []}]</div><div class='add'>+  var.frozen? # =&gt; false (assignment was made to local variable)</div><div class='add'>+  X = var # =&gt; cannot assign unshareable object to X</div><div class='add'>+</div><div class='add'>+  X = Set[1, 2, {foo: []}].freeze # =&gt; cannot assign unshareable object to X</div><div class='add'>+                                  # (`Set[...]` is not a literal and</div><div class='add'>+                                  # `{foo: []}` is an argument to `Set.[]`)</div><div class='add'>+</div><div class='add'>+The method Module#const_set is not affected.</div><div class='add'>+</div><div class='add'>+==== Mode +experimental_everything+</div><div class='add'>+</div><div class='add'>+In this mode, all values assigned to constants are made shareable.</div><div class='add'>+</div><div class='add'>+  # shareable_constant_value: experimental_everything</div><div class='add'>+  FOO = Set[1, 2, {foo: []}]</div><div class='add'>+  # same as FOO = Ractor.make_sharable(...)</div><div class='add'>+  # OR same as `FOO = Set[1, 2, {foo: [].freeze}.freeze].freeze`</div><div class='add'>+</div><div class='add'>+  var = [{foo: []}]</div><div class='add'>+  var.frozen? # =&gt; false (assignment was made to local variable)</div><div class='add'>+  X = var # =&gt; calls `Ractor.make_shareable(var)`</div><div class='add'>+  var.frozen? # =&gt; true</div><div class='add'>+</div><div class='add'>+This mode is "experimental", because it might be error prone, for</div><div class='add'>+example by deep-freezing the constants of an external resource which</div><div class='add'>+could cause errors:</div><div class='add'>+</div><div class='add'>+  # shareable_constant_value: experimental_everything</div><div class='add'>+  FOO = SomeGem::Something::FOO</div><div class='add'>+  # =&gt; deep freezes the gem's constant!</div><div class='add'>+</div><div class='add'>+This will be revisited before Ruby 3.1 to either allow `everything`</div><div class='add'>+or to instead remove this mode.</div><div class='add'>+</div><div class='add'>+The method Module#const_set is not affected.</div><div class='add'>+</div><div class='add'>+==== Mode +experimental_copy+</div><div class='add'>+</div><div class='add'>+In this mode, all values assigned to constants are deeply copied and</div><div class='add'>+made shareable. It is safer mode than +experimental_everything+.</div><div class='add'>+</div><div class='add'>+  # shareable_constant_value: experimental_everything</div><div class='add'>+  var = [{foo: []}]</div><div class='add'>+  var.frozen? # =&gt; false (assignment was made to local variable)</div><div class='add'>+  X = var # =&gt; calls `Ractor.make_shareable(var, copy: true)`</div><div class='add'>+  var.frozen? # =&gt; false</div><div class='add'>+  Ractor.shareable?(X) #=&gt; true</div><div class='add'>+  var.object_id == X.object_id #=&gt; false</div><div class='add'>+</div><div class='add'>+This mode is "experimental" and has not been discussed thoroughly.</div><div class='add'>+This will be revisited before Ruby 3.1 to either allow `copy`</div><div class='add'>+or to instead remove this mode.</div><div class='add'>+</div><div class='add'>+The method Module#const_set is not affected.</div><div class='add'>+</div><div class='add'>+==== Scope</div><div class='add'>+</div><div class='add'>+This directive can be used multiple times in the same file:</div><div class='add'>+</div><div class='add'>+  # shareable_constant_value: none</div><div class='add'>+  A = {foo: []}</div><div class='add'>+  A.frozen? # =&gt; false</div><div class='add'>+  Ractor.new { puts A } # =&gt; can not access non-shareable objects by non-main Ractor.</div><div class='add'>+</div><div class='add'>+  # shareable_constant_value: literal</div><div class='add'>+  B = {foo: []}</div><div class='add'>+  B.frozen? # =&gt; true</div><div class='add'>+  B[:foo].frozen? # =&gt; true</div><div class='add'>+</div><div class='add'>+  C = [Object.new] # =&gt; cannot assign unshareable object to C (Ractor::IsolationError)</div><div class='add'>+</div><div class='add'>+  D = [Object.new.freeze]</div><div class='add'>+  D.frozen? # =&gt; true</div><div class='add'>+</div><div class='add'>+  # shareable_constant_value: experimental_everything</div><div class='add'>+  E = Set[1, 2, Object.new]</div><div class='add'>+  E.frozen? # =&gt; true</div><div class='add'>+  E.all(&amp;:frozen?) # =&gt; true</div><div class='add'>+</div><div class='add'>+The directive affects only subsequent constants and only for the current scope:</div><div class='add'>+</div><div class='add'>+  module Mod</div><div class='add'>+    # shareable_constant_value: literal</div><div class='add'>+    A = [1, 2, 3]</div><div class='add'>+    module Sub</div><div class='add'>+      B = [4, 5]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  C = [4, 5]</div><div class='add'>+</div><div class='add'>+  module Mod</div><div class='add'>+    D = [6]</div><div class='add'>+  end</div><div class='add'>+  p Mod::A.frozen?, Mod::Sub::B.frozen? # =&gt; true, true</div><div class='add'>+  p C.frozen?, Mod::D.frozen? # =&gt; false, false</div><div class='head'>diff --git a/doc/syntax/control_expressions.rdoc b/doc/syntax/control_expressions.rdoc<br/>index 65f7b431e3..df3b5ced38 100644<br/>--- a/<a href='/ruby.git/tree/doc/syntax/control_expressions.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/control_expressions.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/syntax/control_expressions.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/control_expressions.rdoc</a></div><div class='hunk'>@@ -144,7 +144,7 @@ expression.</div><div class='ctx'> == Modifier +if+ and +unless+</div><div class='ctx'> </div><div class='ctx'> +if+ and +unless+ can also be used to modify an expression.  When used as a</div><div class='del'>-modifier the left-hand side is the "then" expression and the right-hand side</div><div class='add'>+modifier the left-hand side is the "then" statement and the right-hand side</div><div class='ctx'> is the "test" expression:</div><div class='ctx'> </div><div class='ctx'>   a = 0</div><div class='hunk'>@@ -164,7 +164,7 @@ This will print 1.</div><div class='ctx'> This will print 0.</div><div class='ctx'> </div><div class='ctx'> While the modifier and standard versions have both a "test" expression and a</div><div class='del'>-"then" expression, they are not exact transformations of each other due to</div><div class='add'>+"then" statement, they are not exact transformations of each other due to</div><div class='ctx'> parse order.  Here is an example that shows the difference:</div><div class='ctx'> </div><div class='ctx'>   p a if a = 0.zero?</div><div class='hunk'>@@ -232,7 +232,7 @@ You may use +then+ after the +when+ condition.  This is most frequently used</div><div class='ctx'> to place the body of the +when+ on a single line.</div><div class='ctx'> </div><div class='ctx'>   case a</div><div class='del'>-  when 1, 2 then puts "a is one or two</div><div class='add'>+  when 1, 2 then puts "a is one or two"</div><div class='ctx'>   when 3    then puts "a is three"</div><div class='ctx'>   else           puts "I don't know what a is"</div><div class='ctx'>   end</div><div class='hunk'>@@ -255,6 +255,20 @@ Again, the +then+ and +else+ are optional.</div><div class='ctx'> The result value of a +case+ expression is the last value executed in the</div><div class='ctx'> expression.</div><div class='ctx'> </div><div class='add'>+Since Ruby 2.7, +case+ expressions also provide a more powerful experimental</div><div class='add'>+pattern matching feature via the +in+ keyword:</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2, c: 3}</div><div class='add'>+  in a: Integer =&gt; m</div><div class='add'>+    "matched: #{m}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  # =&gt; "matched: 1"</div><div class='add'>+</div><div class='add'>+The pattern matching syntax is described on</div><div class='add'>+{its own page}[rdoc-ref:syntax/pattern_matching.rdoc].</div><div class='add'>+</div><div class='ctx'> == +while+ Loop</div><div class='ctx'> </div><div class='ctx'> The +while+ loop executes while a condition is true:</div><div class='hunk'>@@ -439,11 +453,69 @@ longer true, now you will receive a SyntaxError when you use +retry+ outside</div><div class='ctx'> of a +rescue+ block.  See {Exceptions}[rdoc-ref:syntax/exceptions.rdoc]</div><div class='ctx'> for proper usage of +retry+.</div><div class='ctx'> </div><div class='add'>+== Modifier Statements</div><div class='add'>+</div><div class='add'>+Ruby's grammar differentiates between statements and expressions.  All</div><div class='add'>+expressions are statements (an expression is a type of statement), but</div><div class='add'>+not all statements are expressions.  Some parts of the grammar accept</div><div class='add'>+expressions and not other types of statements, which causes code that</div><div class='add'>+looks similar to be parsed differently.</div><div class='add'>+</div><div class='add'>+For example, when not used as a modifier, +if+, +else+, +while+, +until+,</div><div class='add'>+and +begin+ are expressions (and also statements).  However, when</div><div class='add'>+used as a modifier, +if+, +else+, +while+, +until+ and +rescue+</div><div class='add'>+are statements but not expressions.</div><div class='add'>+</div><div class='add'>+  if true; 1 end # expression (and therefore statement)</div><div class='add'>+  1 if true      # statement (not expression)</div><div class='add'>+</div><div class='add'>+Statements that are not expressions cannot be used in contexts where an</div><div class='add'>+expression is expected, such as method arguments.</div><div class='add'>+</div><div class='add'>+  puts( 1 if true )      #=&gt; SyntaxError</div><div class='add'>+</div><div class='add'>+You can wrap a statement in parentheses to create an expression.</div><div class='add'>+</div><div class='add'>+  puts((1 if true))      #=&gt; 1</div><div class='add'>+</div><div class='add'>+If you put a space between the method name and opening parenthesis, you</div><div class='add'>+do not need two sets of parentheses.</div><div class='add'>+</div><div class='add'>+  puts (1 if true)       #=&gt; 1, because of optional parentheses for method</div><div class='add'>+</div><div class='add'>+This is because this is parsed similar to a method call without</div><div class='add'>+parentheses.  It is equivalent to the following code, without the creation</div><div class='add'>+of a local variable:</div><div class='add'>+</div><div class='add'>+  x = (1 if true)</div><div class='add'>+  p x</div><div class='add'>+</div><div class='add'>+In a modifier statement, the left-hand side must be a statement and the</div><div class='add'>+right-hand side must be an expression.</div><div class='add'>+</div><div class='add'>+So in &lt;code&gt;a if b rescue c&lt;/code&gt;, because &lt;code&gt;b rescue c&lt;/code&gt; is a</div><div class='add'>+statement that is not an expression, and therefore is not allowed as the</div><div class='add'>+right-hand side of the +if+ modifier statement, the code is necessarily</div><div class='add'>+parsed as &lt;code&gt;(a if b) rescue c&lt;/code&gt;.</div><div class='add'>+</div><div class='add'>+This interacts with operator precedence in such a way that:</div><div class='add'>+</div><div class='add'>+  stmt if v = expr rescue x</div><div class='add'>+  stmt if v = expr unless x</div><div class='add'>+</div><div class='add'>+are parsed as:</div><div class='add'>+</div><div class='add'>+  stmt if v = (expr rescue x)</div><div class='add'>+  (stmt if v = expr) unless x</div><div class='add'>+</div><div class='add'>+This is because modifier +rescue+ has higher precedence than &lt;code&gt;=&lt;/code&gt;,</div><div class='add'>+and modifier +if+ has lower precedence than &lt;code&gt;=&lt;/code&gt;.</div><div class='add'>+</div><div class='ctx'> == Flip-Flop</div><div class='ctx'> </div><div class='del'>-The flip-flop is a rarely seen conditional expression.  It's primary use is</div><div class='del'>-for processing text from ruby one-line programs used with &lt;code&gt;ruby -n&lt;/code&gt;</div><div class='del'>-or &lt;code&gt;ruby -p&lt;/code&gt;.</div><div class='add'>+The flip-flop is a slightly special conditional expression.  One of its</div><div class='add'>+typical uses is processing text from ruby one-line programs used with</div><div class='add'>+&lt;code&gt;ruby -n&lt;/code&gt; or &lt;code&gt;ruby -p&lt;/code&gt;.</div><div class='ctx'> </div><div class='ctx'> The form of the flip-flop is an expression that indicates when the</div><div class='ctx'> flip-flop turns on, &lt;code&gt;..&lt;/code&gt; (or &lt;code&gt;...&lt;/code&gt;), then an expression</div><div class='hunk'>@@ -452,7 +524,6 @@ will continue to evaluate to +true+, and +false+ when off.</div><div class='ctx'> </div><div class='ctx'> Here is an example:</div><div class='ctx'> </div><div class='del'>-</div><div class='ctx'>   selected = []</div><div class='ctx'> </div><div class='ctx'>   0.upto 10 do |value|</div><div class='hunk'>@@ -461,15 +532,16 @@ Here is an example:</div><div class='ctx'> </div><div class='ctx'>   p selected # prints [2, 3, 4, 5, 6, 7, 8]</div><div class='ctx'> </div><div class='del'>-In the above example, the on condition is &lt;code&gt;n==2&lt;/code&gt;.  The flip-flop</div><div class='del'>-is initially off (false) for 0 and 1, but becomes on (true) for 2 and remains</div><div class='del'>-on through 8.  After 8 it turns off and remains off for 9 and 10.</div><div class='add'>+In the above example, the `on' condition is &lt;code&gt;n==2&lt;/code&gt;.  The flip-flop</div><div class='add'>+is initially `off' (false) for 0 and 1, but becomes `on' (true) for 2 and</div><div class='add'>+remains `on' through 8.  After 8 it turns off and remains `off' for 9 and 10.</div><div class='ctx'> </div><div class='del'>-The flip-flop must be used inside a conditional such as +if+, +while+,</div><div class='del'>-+unless+, +until+ etc. including the modifier forms.</div><div class='add'>+The flip-flop must be used inside a conditional such as &lt;code&gt;!&lt;/code&gt;,</div><div class='add'>+&lt;code&gt;? :&lt;/code&gt;, +not+, +if+, +while+, +unless+, +until+ etc. including the</div><div class='add'>+modifier forms.</div><div class='ctx'> </div><div class='del'>-When you use an inclusive range (&lt;code&gt;..&lt;/code&gt;), the off condition is</div><div class='del'>-evaluated when the on condition changes:</div><div class='add'>+When you use an inclusive range (&lt;code&gt;..&lt;/code&gt;), the `off' condition is</div><div class='add'>+evaluated when the `on' condition changes:</div><div class='ctx'> </div><div class='ctx'>   selected = []</div><div class='ctx'> </div><div class='hunk'>@@ -483,7 +555,7 @@ Here, both sides of the flip-flop are evaluated so the flip-flop turns on and</div><div class='ctx'> off only when +value+ equals 2.  Since the flip-flop turned on in the</div><div class='ctx'> iteration it returns true.</div><div class='ctx'> </div><div class='del'>-When you use an exclusive range (&lt;code&gt;...&lt;/code&gt;), the off condition is</div><div class='add'>+When you use an exclusive range (&lt;code&gt;...&lt;/code&gt;), the `off' condition is</div><div class='ctx'> evaluated on the following iteration:</div><div class='ctx'> </div><div class='ctx'>   selected = []</div><div class='hunk'>@@ -495,5 +567,5 @@ evaluated on the following iteration:</div><div class='ctx'>   p selected # prints [2, 3, 4, 5]</div><div class='ctx'> </div><div class='ctx'> Here, the flip-flop turns on when +value+ equals 2, but doesn't turn off on the</div><div class='del'>-same iteration.  The off condition isn't evaluated until the following</div><div class='add'>+same iteration.  The `off' condition isn't evaluated until the following</div><div class='ctx'> iteration and +value+ will never be two again.</div><div class='head'>diff --git a/doc/syntax/exceptions.rdoc b/doc/syntax/exceptions.rdoc<br/>index a2e75616fb..31e2f0175c 100644<br/>--- a/<a href='/ruby.git/tree/doc/syntax/exceptions.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/exceptions.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/syntax/exceptions.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/exceptions.rdoc</a></div><div class='hunk'>@@ -17,7 +17,14 @@ wish to limit the scope of rescued exceptions:</div><div class='ctx'>     # ...</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-The same is true for a +class+ or +module+.</div><div class='add'>+The same is true for a +class+, +module+, and +block+:</div><div class='add'>+</div><div class='add'>+  [0, 1, 2].map do |i|</div><div class='add'>+    10 / i</div><div class='add'>+  rescue ZeroDivisionError</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+  #=&gt; [nil, 10, 5]</div><div class='ctx'> </div><div class='ctx'> You can assign the exception to a local variable by using &lt;tt&gt;=&gt;</div><div class='ctx'> variable_name&lt;/tt&gt; at the end of the +rescue+ line:</div><div class='head'>diff --git a/doc/syntax/literals.rdoc b/doc/syntax/literals.rdoc<br/>index 08eefd21de..b641433249 100644<br/>--- a/<a href='/ruby.git/tree/doc/syntax/literals.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/literals.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/syntax/literals.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/literals.rdoc</a></div><div class='hunk'>@@ -2,17 +2,33 @@</div><div class='ctx'> </div><div class='ctx'> Literals create objects you can use in your program.  Literals include:</div><div class='ctx'> </div><div class='del'>-* Booleans and nil</div><div class='del'>-* Numbers</div><div class='del'>-* Strings</div><div class='del'>-* Symbols</div><div class='del'>-* Arrays</div><div class='del'>-* Hashes</div><div class='del'>-* Ranges</div><div class='del'>-* Regular Expressions</div><div class='del'>-* Procs</div><div class='del'>-</div><div class='del'>-== Booleans and nil</div><div class='add'>+* {Boolean and Nil Literals}[#label-Boolean+and+Nil+Literals]</div><div class='add'>+* {Number Literals}[#label-Number+Literals]</div><div class='add'>+</div><div class='add'>+  * {Integer Literals}[#label-Integer+Literals]</div><div class='add'>+  * {Float Literals}[#label-Float+Literals]</div><div class='add'>+  * {Rational Literals}[#label-Rational+Literals]</div><div class='add'>+  * {Complex Literals}[#label-Complex+Literals]</div><div class='add'>+</div><div class='add'>+* {String Literals}[#label-String+Literals]</div><div class='add'>+* {Here Document Literals}[#label-Here+Document+Literals]</div><div class='add'>+* {Symbol Literals}[#label-Symbol+Literals]</div><div class='add'>+* {Array Literals}[#label-Array+Literals]</div><div class='add'>+* {Hash Literals}[#label-Hash+Literals]</div><div class='add'>+* {Range Literals}[#label-Range+Literals]</div><div class='add'>+* {Regexp Literals}[#label-Regexp+Literals]</div><div class='add'>+* {Lambda Proc Literals}[#label-Lambda+Proc+Literals]</div><div class='add'>+* {Percent Literals}[#label-Percent+Literals]</div><div class='add'>+</div><div class='add'>+  * {%q: Non-Interpolable String Literals}[#label-25q-3A+Non-Interpolable+String+Literals]</div><div class='add'>+  * {% and %Q: Interpolable String Literals}[#label-25+and+-25Q-3A+Interpolable+String+Literals]</div><div class='add'>+  * {%w and %W: String-Array Literals}[#label-25w+and+-25W-3A+String-Array+Literals]</div><div class='add'>+  * {%i and %I: Symbol-Array Literals}[#label-25i+and+-25I-3A+Symbol-Array+Literals]</div><div class='add'>+  * {%r: Regexp Literals}[#label-25r-3A+Regexp+Literals]</div><div class='add'>+  * {%s: Symbol Literals}[#label-25s-3A+Symbol+Literals]</div><div class='add'>+  * {%x: Backtick Literals}[#label-25x-3A+Backtick+Literals]</div><div class='add'>+</div><div class='add'>+== Boolean and Nil Literals</div><div class='ctx'> </div><div class='ctx'> +nil+ and +false+ are both false values.  +nil+ is sometimes used to indicate</div><div class='ctx'> "no value" or "unknown" but evaluates to +false+ in conditional expressions.</div><div class='hunk'>@@ -20,10 +36,9 @@ Literals create objects you can use in your program.  Literals include:</div><div class='ctx'> +true+ is a true value.  All objects except +nil+ and +false+ evaluate to a</div><div class='ctx'> true value in conditional expressions.</div><div class='ctx'> </div><div class='del'>-(There are also the constants +TRUE+, +FALSE+ and +NIL+, but the lowercase</div><div class='del'>-literal forms are preferred.)</div><div class='add'>+== Number Literals</div><div class='ctx'> </div><div class='del'>-== Numbers</div><div class='add'>+=== \Integer Literals</div><div class='ctx'> </div><div class='ctx'> You can write integers of any size as follows:</div><div class='ctx'> </div><div class='hunk'>@@ -34,15 +49,6 @@ These numbers have the same value, 1,234.  The underscore may be used to</div><div class='ctx'> enhance readability for humans.  You may place an underscore anywhere in the</div><div class='ctx'> number.</div><div class='ctx'> </div><div class='del'>-Floating point numbers may be written as follows:</div><div class='del'>-</div><div class='del'>-  12.34</div><div class='del'>-  1234e-2</div><div class='del'>-  1.234E1</div><div class='del'>-</div><div class='del'>-These numbers have the same value, 12.34.  You may use underscores in floating</div><div class='del'>-point numbers as well.</div><div class='del'>-</div><div class='ctx'> You can use a special prefix to write numbers in decimal, hexadecimal, octal</div><div class='ctx'> or binary formats.  For decimal numbers use a prefix of &lt;tt&gt;0d&lt;/tt&gt;, for</div><div class='ctx'> hexadecimal numbers use a prefix of &lt;tt&gt;0x&lt;/tt&gt;, for octal numbers use a</div><div class='hunk'>@@ -71,35 +77,69 @@ Examples:</div><div class='ctx'> All these numbers have the same decimal value, 170.  Like integers and floats</div><div class='ctx'> you may use an underscore for readability.</div><div class='ctx'> </div><div class='del'>-=== Rational numbers</div><div class='add'>+=== \Float Literals</div><div class='ctx'> </div><div class='del'>-Numbers suffixed by +r+ are Rational numbers.</div><div class='add'>+Floating-point numbers may be written as follows:</div><div class='ctx'> </div><div class='del'>-  12r         #=&gt; (12/1)</div><div class='del'>-  12.3r       #=&gt; (123/10)</div><div class='add'>+  12.34</div><div class='add'>+  1234e-2</div><div class='add'>+  1.234E1</div><div class='add'>+</div><div class='add'>+These numbers have the same value, 12.34.  You may use underscores in floating</div><div class='add'>+point numbers as well.</div><div class='ctx'> </div><div class='del'>-Rational numbers are exact, whereas Float numbers are inexact.</div><div class='add'>+=== \Rational Literals</div><div class='ctx'> </div><div class='del'>-  0.1r + 0.2r #=&gt; (3/10)</div><div class='del'>-  0.1 + 0.2   #=&gt; 0.30000000000000004</div><div class='add'>+You can write a Rational literal using a special suffix, &lt;tt&gt;'r'&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+Examples:</div><div class='ctx'> </div><div class='del'>-=== Complex numbers</div><div class='add'>+  1r       # =&gt; (1/1)</div><div class='add'>+  2/3r     # =&gt; (2/3)   # With denominator.</div><div class='add'>+  -1r      # =&gt; (-1/1)  # With signs.</div><div class='add'>+  -2/3r    # =&gt; (-2/3)</div><div class='add'>+  2/-3r    # =&gt; (-2/3)</div><div class='add'>+  -2/-3r   # =&gt; (2/3)</div><div class='add'>+  +1/+3r   # =&gt; (1/3)</div><div class='add'>+  1.2r     # =&gt; (6/5)   # With fractional part.</div><div class='add'>+  1_1/2_1r # =&gt; (11/21) # With embedded underscores.</div><div class='add'>+  2/4r     # =&gt; (1/2)   # Automatically reduced.</div><div class='ctx'> </div><div class='del'>-Numbers suffixed by +i+ are Complex (or imaginary) numbers.</div><div class='add'>+Syntax:</div><div class='add'>+</div><div class='add'>+  &lt;rational-literal&gt; = &lt;numerator&gt; [ '/' &lt;denominator&gt; ] 'r'</div><div class='add'>+  &lt;numerator&gt; = [ &lt;sign&gt; ] &lt;digits&gt; [ &lt;fractional-part&gt; ]</div><div class='add'>+  &lt;fractional-part&gt; = '.' &lt;digits&gt;</div><div class='add'>+  &lt;denominator&gt; = [ sign ] &lt;digits&gt;</div><div class='add'>+  &lt;sign&gt; = '-' | '+'</div><div class='add'>+  &lt;digits&gt; = &lt;digit&gt; { &lt;digit&gt; | '_' &lt;digit&gt; }</div><div class='add'>+  &lt;digit&gt; = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'</div><div class='add'>+</div><div class='add'>+Note this, which is parsed as \Float numerator &lt;tt&gt;1.2&lt;/tt&gt;</div><div class='add'>+divided by \Rational denominator &lt;tt&gt;3r&lt;/tt&gt;,</div><div class='add'>+resulting in a \Float:</div><div class='add'>+</div><div class='add'>+  1.2/3r  # =&gt; 0.39999999999999997</div><div class='add'>+</div><div class='add'>+=== \Complex Literals</div><div class='add'>+</div><div class='add'>+You can write a Complex number as follows (suffixed +i+):</div><div class='ctx'> </div><div class='ctx'>   1i          #=&gt; (0+1i)</div><div class='ctx'>   1i * 1i     #=&gt; (-1+0i)</div><div class='ctx'> </div><div class='del'>-Also Rational numbers may be imaginary numbers.</div><div class='add'>+Also \Rational numbers may be imaginary numbers.</div><div class='ctx'> </div><div class='ctx'>   12.3ri      #=&gt; (0+(123/10)*i)</div><div class='ctx'> </div><div class='del'>-+i+ must be placed after +r+, the opposite is not allowed.</div><div class='add'>++i+ must be placed after +r+; the opposite is not allowed.</div><div class='ctx'> </div><div class='del'>-  12.3ir      #=&gt; syntax error</div><div class='add'>+  12.3ir      #=&gt; Syntax error</div><div class='ctx'> </div><div class='ctx'> == Strings</div><div class='ctx'> </div><div class='add'>+=== \String Literals</div><div class='add'>+</div><div class='ctx'> The most common way of writing strings is using &lt;tt&gt;"&lt;/tt&gt;:</div><div class='ctx'> </div><div class='ctx'>   "This is a string."</div><div class='hunk'>@@ -146,6 +186,10 @@ Double-quote strings allow interpolation of other values using</div><div class='ctx'> Any expression may be placed inside the interpolated section, but it's best to</div><div class='ctx'> keep the expression small for readability.</div><div class='ctx'> </div><div class='add'>+You can also use &lt;tt&gt;#@foo&lt;/tt&gt;, &lt;tt&gt;#@@foo&lt;/tt&gt; and &lt;tt&gt;#$foo&lt;/tt&gt; as a</div><div class='add'>+shorthand for, respectively, &lt;tt&gt;#{ @foo }&lt;/tt&gt;, &lt;tt&gt;#{ @@foo }&lt;/tt&gt; and</div><div class='add'>+&lt;tt&gt;#{ $foo }&lt;/tt&gt;.</div><div class='add'>+</div><div class='ctx'> Interpolation may be disabled by escaping the "#" character or using</div><div class='ctx'> single-quote strings:</div><div class='ctx'> </div><div class='hunk'>@@ -155,15 +199,6 @@ In addition to disabling interpolation, single-quoted strings also disable all</div><div class='ctx'> escape sequences except for the single-quote (&lt;tt&gt;\'&lt;/tt&gt;) and backslash</div><div class='ctx'> (&lt;tt&gt;\\\\&lt;/tt&gt;).</div><div class='ctx'> </div><div class='del'>-You may also create strings using &lt;tt&gt;%&lt;/tt&gt;:</div><div class='del'>-</div><div class='del'>-  %(1 + 1 is #{1 + 1}) #=&gt; "1 + 1 is 2"</div><div class='del'>-</div><div class='del'>-There are two different types of &lt;tt&gt;%&lt;/tt&gt; strings &lt;tt&gt;%q(...)&lt;/tt&gt; behaves</div><div class='del'>-like a single-quote string (no interpolation or character escaping), while</div><div class='del'>-&lt;tt&gt;%Q&lt;/tt&gt; behaves as a double-quote string.  See Percent Strings below for</div><div class='del'>-more discussion of the syntax of percent strings.</div><div class='del'>-</div><div class='ctx'> Adjacent string literals are automatically concatenated by the interpreter:</div><div class='ctx'> </div><div class='ctx'>   "con" "cat" "en" "at" "ion" #=&gt; "concatenation"</div><div class='hunk'>@@ -193,7 +228,12 @@ a single codepoint in the script encoding:</div><div class='ctx'>   ?\C-\M-a #=&gt; "\x81", same as above</div><div class='ctx'>   ?ã‚      #=&gt; "ã‚"</div><div class='ctx'> </div><div class='del'>-=== Here Documents</div><div class='add'>+See also:</div><div class='add'>+</div><div class='add'>+* {%q: Non-Interpolable String Literals}[#label-25q-3A+Non-Interpolable+String+Literals]</div><div class='add'>+* {% and %Q: Interpolable String Literals}[#label-25+and+-25Q-3A+Interpolable+String+Literals]</div><div class='add'>+</div><div class='add'>+=== Here Document Literals</div><div class='ctx'> </div><div class='ctx'> If you are writing a large block of text you may use a "here document" or</div><div class='ctx'> "heredoc":</div><div class='hunk'>@@ -219,7 +259,7 @@ You may indent the ending identifier if you place a "-" after &lt;tt&gt;&lt;&lt;&lt;/tt&gt;:</div><div class='ctx'>   That might span many lines</div><div class='ctx'>     INDENTED_HEREDOC</div><div class='ctx'> </div><div class='del'>-Note that the while the closing identifier may be indented, the content is</div><div class='add'>+Note that while the closing identifier may be indented, the content is</div><div class='ctx'> always treated as if it is flush left.  If you indent the content those spaces</div><div class='ctx'> will appear in the output.</div><div class='ctx'> </div><div class='hunk'>@@ -237,6 +277,12 @@ the content.  Note that empty lines and lines consisting solely of literal tabs</div><div class='ctx'> and spaces will be ignored for the purposes of determining indentation, but</div><div class='ctx'> escaped tabs and spaces are considered non-indentation characters.</div><div class='ctx'> </div><div class='add'>+For the purpose of measuring an indentation, a horizontal tab is regarded as a</div><div class='add'>+sequence of one to eight spaces such that the column position corresponding to</div><div class='add'>+its end is a multiple of eight.  The amount to be removed is counted in terms</div><div class='add'>+of the number of spaces.  If the boundary appears in the middle of a tab, that</div><div class='add'>+tab is not removed.</div><div class='add'>+</div><div class='ctx'> A heredoc allows interpolation and escaped characters.  You may disable</div><div class='ctx'> interpolation and escaping by surrounding the opening identifier with single</div><div class='ctx'> quotes:</div><div class='hunk'>@@ -255,6 +301,9 @@ behaves like Kernel#`:</div><div class='ctx'>   cat #{__FILE__}</div><div class='ctx'>   HEREDOC</div><div class='ctx'> </div><div class='add'>+When surrounding with quotes, any character but that quote and newline</div><div class='add'>+(CR and/or LF) can be used as the identifier.</div><div class='add'>+</div><div class='ctx'> To call a method on a heredoc place it after the opening identifier:</div><div class='ctx'> </div><div class='ctx'>   expected_result = &lt;&lt;-EXPECTED.chomp</div><div class='hunk'>@@ -270,7 +319,7 @@ read:</div><div class='ctx'>   content for heredoc two</div><div class='ctx'>   TWO</div><div class='ctx'> </div><div class='del'>-== Symbols</div><div class='add'>+== \Symbol Literals</div><div class='ctx'> </div><div class='ctx'> A Symbol represents a name inside the ruby interpreter.  See Symbol for more</div><div class='ctx'> details on what symbols are and when ruby creates them internally.</div><div class='hunk'>@@ -289,7 +338,12 @@ Like strings, a single-quote may be used to disable interpolation:</div><div class='ctx'> When creating a Hash, there is a special syntax for referencing a Symbol as</div><div class='ctx'> well.</div><div class='ctx'> </div><div class='del'>-== Arrays</div><div class='add'>+See also:</div><div class='add'>+</div><div class='add'>+* {%s: Symbol Literals}[#label-25s-3A+Symbol+Literals]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+== \Array Literals</div><div class='ctx'> </div><div class='ctx'> An array is created using the objects between &lt;tt&gt;[&lt;/tt&gt; and &lt;tt&gt;]&lt;/tt&gt;:</div><div class='ctx'> </div><div class='hunk'>@@ -300,9 +354,14 @@ You may place expressions inside the array:</div><div class='ctx'>   [1, 1 + 1, 1 + 2]</div><div class='ctx'>   [1, [1 + 1, [1 + 2]]]</div><div class='ctx'> </div><div class='add'>+See also:</div><div class='add'>+</div><div class='add'>+* {%w and %W: String-Array Literals}[#label-25w+and+-25W-3A+String-Array+Literals]</div><div class='add'>+* {%i and %I: Symbol-Array Literals}[#label-25i+and+-25I-3A+Symbol-Array+Literals]</div><div class='add'>+</div><div class='ctx'> See Array for the methods you may use with an array.</div><div class='ctx'> </div><div class='del'>-== Hashes</div><div class='add'>+== \Hash Literals</div><div class='ctx'> </div><div class='ctx'> A hash is created using key-value pairs between &lt;tt&gt;{&lt;/tt&gt; and &lt;tt&gt;}&lt;/tt&gt;:</div><div class='ctx'> </div><div class='hunk'>@@ -324,9 +383,17 @@ is equal to</div><div class='ctx'> </div><div class='ctx'>   { :"a 1" =&gt; 1, :"b 2" =&gt; 2 }</div><div class='ctx'> </div><div class='add'>+Hash values can be omitted, meaning that value will be fetched from the context</div><div class='add'>+by the name of the key:</div><div class='add'>+</div><div class='add'>+  x = 100</div><div class='add'>+  y = 200</div><div class='add'>+  h = { x:, y: }</div><div class='add'>+  #=&gt; {:x=&gt;100, :y=&gt;200}</div><div class='add'>+</div><div class='ctx'> See Hash for the methods you may use with a hash.</div><div class='ctx'> </div><div class='del'>-== Ranges</div><div class='add'>+== \Range Literals</div><div class='ctx'> </div><div class='ctx'> A range represents an interval of values.  The range may include or exclude</div><div class='ctx'> its ending value.</div><div class='hunk'>@@ -334,31 +401,36 @@ its ending value.</div><div class='ctx'>   (1..2)  # includes its ending value</div><div class='ctx'>   (1...2) # excludes its ending value</div><div class='ctx'>   (1..)   # endless range, representing infinite sequence from 1 to Infinity</div><div class='add'>+  (..1)   # beginless range, representing infinite sequence from -Infinity to 1</div><div class='ctx'> </div><div class='ctx'> You may create a range of any object.  See the Range documentation for details</div><div class='ctx'> on the methods you need to implement.</div><div class='ctx'> </div><div class='del'>-== Regular Expressions</div><div class='add'>+== \Regexp Literals</div><div class='ctx'> </div><div class='del'>-A regular expression is created using "/":</div><div class='add'>+A regular expression may be created using leading and trailing</div><div class='add'>+slash (&lt;tt&gt;'/'&lt;/tt&gt;) characters:</div><div class='ctx'> </div><div class='del'>-  /my regular expression/</div><div class='add'>+  re = /foo/ # =&gt; /foo/</div><div class='add'>+  re.class   # =&gt; Regexp</div><div class='ctx'> </div><div class='del'>-The regular expression may be followed by flags which adjust the matching</div><div class='del'>-behavior of the regular expression.  The "i" flag makes the regular expression</div><div class='del'>-case-insensitive:</div><div class='del'>-</div><div class='del'>-  /my regular expression/i</div><div class='add'>+The trailing slash may be followed by one or more _flag_ characters</div><div class='add'>+that modify the behavior.</div><div class='add'>+See {Regexp options}[rdoc-ref:Regexp@Options] for details.</div><div class='ctx'> </div><div class='ctx'> Interpolation may be used inside regular expressions along with escaped</div><div class='ctx'> characters.  Note that a regular expression may require additional escaped</div><div class='ctx'> characters than a string.</div><div class='ctx'> </div><div class='add'>+See also:</div><div class='add'>+</div><div class='add'>+* {%r: Regexp Literals}[#label-25r-3A+Regexp+Literals]</div><div class='add'>+</div><div class='ctx'> See Regexp for a description of the syntax of regular expressions.</div><div class='ctx'> </div><div class='del'>-== Procs</div><div class='add'>+== Lambda Proc Literals</div><div class='ctx'> </div><div class='del'>-A proc can be created with &lt;tt&gt;-&gt;&lt;/tt&gt;:</div><div class='add'>+A lambda proc can be created with &lt;tt&gt;-&gt;&lt;/tt&gt;:</div><div class='ctx'> </div><div class='ctx'>   -&gt; { 1 + 1 }</div><div class='ctx'> </div><div class='hunk'>@@ -370,27 +442,93 @@ You can require arguments for the proc as follows:</div><div class='ctx'> </div><div class='ctx'> This proc will add one to its argument.</div><div class='ctx'> </div><div class='del'>-== Percent Strings</div><div class='add'>+== Percent Literals</div><div class='add'>+</div><div class='add'>+Each of the literals in described in this section</div><div class='add'>+may use these paired delimiters:</div><div class='add'>+</div><div class='add'>+* &lt;tt&gt;[&lt;/tt&gt; and &lt;tt&gt;]&lt;/tt&gt;.</div><div class='add'>+* &lt;tt&gt;(&lt;/tt&gt; and &lt;tt&gt;)&lt;/tt&gt;.</div><div class='add'>+* &lt;tt&gt;{&lt;/tt&gt; and &lt;tt&gt;}&lt;/tt&gt;.</div><div class='add'>+* &lt;tt&gt;&lt;&lt;/tt&gt; and &lt;tt&gt;&gt;&lt;/tt&gt;.</div><div class='add'>+* Any other character, as both beginning and ending delimiters.</div><div class='add'>+</div><div class='add'>+These are demonstrated in the next section.</div><div class='add'>+</div><div class='add'>+=== &lt;tt&gt;%q&lt;/tt&gt;: Non-Interpolable String Literals</div><div class='add'>+</div><div class='add'>+You can write a non-interpolable string with &lt;tt&gt;%q&lt;/tt&gt;.</div><div class='add'>+The created string is the same as if you created it with single quotes:</div><div class='add'>+</div><div class='add'>+  %[foo bar baz]        # =&gt; "foo bar baz" # Using [].</div><div class='add'>+  %(foo bar baz)        # =&gt; "foo bar baz" # Using ().</div><div class='add'>+  %{foo bar baz}        # =&gt; "foo bar baz" # Using {}.</div><div class='add'>+  %&lt;foo bar baz&gt;        # =&gt; "foo bar baz" # Using &lt;&gt;.</div><div class='add'>+  %|foo bar baz|        # =&gt; "foo bar baz" # Using two |.</div><div class='add'>+  %:foo bar baz:        # =&gt; "foo bar baz" # Using two :.</div><div class='add'>+  %q(1 + 1 is #{1 + 1}) # =&gt; "1 + 1 is \#{1 + 1}" # No interpolation.</div><div class='add'>+</div><div class='add'>+=== &lt;tt&gt;% and %Q&lt;/tt&gt;: Interpolable String Literals</div><div class='add'>+</div><div class='add'>+You can write an interpolable string with &lt;tt&gt;%Q&lt;/tt&gt;</div><div class='add'>+or with its alias &lt;tt&gt;%&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+  %[foo bar baz]       # =&gt; "foo bar baz"</div><div class='add'>+  %(1 + 1 is #{1 + 1}) # =&gt; "1 + 1 is 2" # Interpolation.</div><div class='add'>+</div><div class='add'>+=== &lt;tt&gt;%w and %W&lt;/tt&gt;: String-Array Literals</div><div class='add'>+</div><div class='add'>+You can write an array of strings with &lt;tt&gt;%w&lt;/tt&gt; (non-interpolable)</div><div class='add'>+or &lt;tt&gt;%W&lt;/tt&gt; (interpolable):</div><div class='add'>+</div><div class='add'>+  %w[foo bar baz]       # =&gt; ["foo", "bar", "baz"]</div><div class='add'>+  %w[1 % *]             # =&gt; ["1", "%", "*"]</div><div class='add'>+  # Use backslash to embed spaces in the strings.</div><div class='add'>+  %w[foo\ bar baz\ bat] # =&gt; ["foo bar", "baz bat"]</div><div class='add'>+  %w(#{1 + 1})          # =&gt; ["\#{1", "+", "1}"]</div><div class='add'>+  %W(#{1 + 1})          # =&gt; ["2"]</div><div class='add'>+</div><div class='add'>+=== &lt;tt&gt;%i and %I&lt;/tt&gt;: Symbol-Array Literals</div><div class='add'>+</div><div class='add'>+You can write an array of symbols with &lt;tt&gt;%i&lt;/tt&gt; (non-interpolable)</div><div class='add'>+or &lt;tt&gt;%I&lt;/tt&gt; (interpolable):</div><div class='add'>+</div><div class='add'>+  %i[foo bar baz]       # =&gt; [:foo, :bar, :baz]</div><div class='add'>+  %i[1 % *]             # =&gt; [:"1", :%, :*]</div><div class='add'>+  # Use backslash to embed spaces in the symbols.</div><div class='add'>+  %i[foo\ bar baz\ bat] # =&gt; [:"foo bar", :"baz bat"]</div><div class='add'>+  %i(#{1 + 1})          # =&gt; [:"\#{1", :+, :"1}"]</div><div class='add'>+  %I(#{1 + 1})          # =&gt; [:"2"]</div><div class='add'>+</div><div class='add'>+=== &lt;tt&gt;%s&lt;/tt&gt;: Symbol Literals</div><div class='add'>+</div><div class='add'>+You can write a symbol with &lt;tt&gt;%s&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+  %s[foo]     # =&gt; :foo</div><div class='add'>+  %s[foo bar] # =&gt; :"foo bar"</div><div class='add'>+</div><div class='add'>+=== &lt;tt&gt;%r&lt;/tt&gt;: Regexp Literals</div><div class='add'>+</div><div class='add'>+You can write a regular expression with &lt;tt&gt;%r&lt;/tt&gt;;</div><div class='add'>+the character used as the leading and trailing delimiter</div><div class='add'>+may be (almost) any character:</div><div class='add'>+</div><div class='add'>+  %r/foo/             # =&gt; /foo/</div><div class='add'>+  %r:name/value pair: # =&gt; /name\/value pair/</div><div class='ctx'> </div><div class='del'>-Besides &lt;tt&gt;%(...)&lt;/tt&gt; which creates a String, the &lt;tt&gt;%&lt;/tt&gt; may create</div><div class='del'>-other types of object.  As with strings, an uppercase letter allows</div><div class='del'>-interpolation and escaped characters while a lowercase letter disables them.</div><div class='add'>+A few "symmetrical" character pairs may be used as delimiters:</div><div class='ctx'> </div><div class='del'>-These are the types of percent strings in ruby:</div><div class='add'>+  %r[foo] # =&gt; /foo/</div><div class='add'>+  %r{foo} # =&gt; /foo/</div><div class='add'>+  %r(foo) # =&gt; /foo/</div><div class='add'>+  %r&lt;foo&gt; # =&gt; /foo/</div><div class='ctx'> </div><div class='del'>-&lt;tt&gt;%i&lt;/tt&gt; :: Array of Symbols</div><div class='del'>-&lt;tt&gt;%q&lt;/tt&gt; :: String</div><div class='del'>-&lt;tt&gt;%r&lt;/tt&gt; :: Regular Expression</div><div class='del'>-&lt;tt&gt;%s&lt;/tt&gt; :: Symbol</div><div class='del'>-&lt;tt&gt;%w&lt;/tt&gt; :: Array of Strings</div><div class='del'>-&lt;tt&gt;%x&lt;/tt&gt; :: Backtick (capture subshell result)</div><div class='add'>+The trailing delimiter may be followed by one or more _flag_ characters</div><div class='add'>+that modify the behavior.</div><div class='add'>+See {Regexp options}[rdoc-ref:Regexp@Options] for details.</div><div class='ctx'> </div><div class='del'>-For the two array forms of percent string, if you wish to include a space in</div><div class='del'>-one of the array entries you must escape it with a "\\" character:</div><div class='add'>+=== &lt;tt&gt;%x&lt;/tt&gt;: Backtick Literals</div><div class='ctx'> </div><div class='del'>-  %w[one one-hundred\ one]</div><div class='del'>-  #=&gt; ["one", "one-hundred one"]</div><div class='add'>+You can write and execute a shell command with &lt;tt&gt;%x&lt;/tt&gt;:</div><div class='ctx'> </div><div class='del'>-If you are using "(", "[", "{", "&lt;" you must close it with ")", "]", "}", "&gt;"</div><div class='del'>-respectively.  You may use most other non-alphanumeric characters for percent</div><div class='del'>-string delimiters such as "%", "|", "^", etc.</div><div class='add'>+  %x(echo 1) # =&gt; "1\n"</div><div class='head'>diff --git a/doc/syntax/methods.rdoc b/doc/syntax/methods.rdoc<br/>index a47c1a3cbf..8dafa6bb0c 100644<br/>--- a/<a href='/ruby.git/tree/doc/syntax/methods.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/methods.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/syntax/methods.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/methods.rdoc</a></div><div class='hunk'>@@ -11,14 +11,19 @@ A method definition consists of the +def+ keyword, a method name, the body of</div><div class='ctx'> the method, +return+ value and the +end+ keyword.  When called the method will</div><div class='ctx'> execute the body of the method.  This method returns +2+.</div><div class='ctx'> </div><div class='add'>+Since Ruby 3.0, there is also a shorthand syntax for methods consisting</div><div class='add'>+of exactly one expression:</div><div class='add'>+</div><div class='add'>+   def one_plus_one = 1 + 1</div><div class='add'>+</div><div class='ctx'> This section only covers defining methods.  See also the {syntax documentation</div><div class='ctx'> on calling methods}[rdoc-ref:syntax/calling_methods.rdoc].</div><div class='ctx'> </div><div class='ctx'> == Method Names</div><div class='ctx'> </div><div class='ctx'> Method names may be one of the operators or must start a letter or a character</div><div class='del'>-with the eight bit set. It may contain letters, numbers, an &lt;code&gt;_&lt;/code&gt;</div><div class='del'>-(underscore or low line) or a character with the eight bit set. The convention</div><div class='add'>+with the eighth bit set. It may contain letters, numbers, an &lt;code&gt;_&lt;/code&gt;</div><div class='add'>+(underscore or low line) or a character with the eighth bit set. The convention</div><div class='ctx'> is to use underscores to separate words in a multiword method name:</div><div class='ctx'> </div><div class='ctx'>   def method_name</div><div class='hunk'>@@ -26,7 +31,7 @@ is to use underscores to separate words in a multiword method name:</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'> Ruby programs must be written in a US-ASCII-compatible character set such as</div><div class='del'>-UTF-8, ISO-8859-1 etc. In such character sets if the eight bit is set it</div><div class='add'>+UTF-8, ISO-8859-1 etc. In such character sets if the eighth bit is set it</div><div class='ctx'> indicates an extended character. Ruby allows method names and other identifiers</div><div class='ctx'> to contain such characters. Ruby programs cannot contain some characters like</div><div class='ctx'> ASCII NUL (&lt;code&gt;\x00&lt;/code&gt;).</div><div class='hunk'>@@ -62,9 +67,24 @@ Methods that end with a question mark by convention return boolean, but they</div><div class='ctx'> may not always return just +true+ or +false+.  Often, they will return an</div><div class='ctx'> object to indicate a true value (or "truthy" value).</div><div class='ctx'> </div><div class='del'>-Methods that end with an equals sign indicate an assignment method.  For</div><div class='del'>-assignment methods, the return value is ignored and the arguments are returned</div><div class='del'>-instead.</div><div class='add'>+Methods that end with an equals sign indicate an assignment method.</div><div class='add'>+</div><div class='add'>+  class C</div><div class='add'>+    def attr</div><div class='add'>+      @attr</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def attr=(val)</div><div class='add'>+      @attr = val</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  c = C.new</div><div class='add'>+  c.attr      #=&gt; nil</div><div class='add'>+  c.attr = 10 # calls "attr=(10)"</div><div class='add'>+  c.attr      #=&gt; 10</div><div class='add'>+</div><div class='add'>+Assignment methods can not be defined using the shorthand syntax.</div><div class='ctx'> </div><div class='ctx'> These are method names for the various Ruby operators.  Each of these</div><div class='ctx'> operators accepts only one argument.  Following the operator is the typical</div><div class='hunk'>@@ -94,8 +114,8 @@ operators.</div><div class='ctx'> &lt;code&gt;&gt;&lt;/code&gt;   :: greater-than</div><div class='ctx'> &lt;code&gt;&gt;=&lt;/code&gt;  :: greater-than or equal</div><div class='ctx'> </div><div class='del'>-To define unary methods minus, plus, tilde and not (&lt;code&gt;!&lt;/code&gt;) follow the</div><div class='del'>-operator with an &lt;code&gt;@&lt;/code&gt; as in &lt;code&gt;+@&lt;/code&gt; or &lt;code&gt;!@&lt;/code&gt;:</div><div class='add'>+To define unary methods minus and plus, follow the operator with an</div><div class='add'>+&lt;code&gt;@&lt;/code&gt; as in &lt;code&gt;+@&lt;/code&gt;:</div><div class='ctx'> </div><div class='ctx'>   class C</div><div class='ctx'>     def -@</div><div class='hunk'>@@ -107,6 +127,13 @@ operator with an &lt;code&gt;@&lt;/code&gt; as in &lt;code&gt;+@&lt;/code&gt; or &lt;code&gt;!@&lt;/code&gt;:</div><div class='ctx'> </div><div class='ctx'>   -obj # prints "you inverted this object"</div><div class='ctx'> </div><div class='add'>+The &lt;code&gt;@&lt;/code&gt; is needed to differentiate unary minus and plus</div><div class='add'>+operators from binary minus and plus operators.</div><div class='add'>+</div><div class='add'>+You can also follow tilde and not (&lt;code&gt;!&lt;/code&gt;) unary methods with</div><div class='add'>+&lt;code&gt;@&lt;/code&gt;, but it is not required as there are no binary tilde</div><div class='add'>+and not operators.</div><div class='add'>+</div><div class='ctx'> Unary methods accept zero arguments.</div><div class='ctx'> </div><div class='ctx'> Additionally, methods for element reference and assignment may be defined:</div><div class='hunk'>@@ -253,6 +280,13 @@ The parentheses around the arguments are optional:</div><div class='ctx'>     value + 1</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+The parentheses are mandatory in shorthand method definitions:</div><div class='add'>+</div><div class='add'>+  # OK</div><div class='add'>+  def add_one(value) = value + 1</div><div class='add'>+  # SyntaxError</div><div class='add'>+  def add_one value = value + 1</div><div class='add'>+</div><div class='ctx'> Multiple arguments are separated by a comma:</div><div class='ctx'> </div><div class='ctx'>   def add_values(a, b)</div><div class='hunk'>@@ -283,6 +317,25 @@ This will raise a SyntaxError:</div><div class='ctx'>     a + b + c</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+Default argument values can refer to arguments that have already been</div><div class='add'>+evaluated as local variables, and argument values are always evaluated</div><div class='add'>+left to right. So this is allowed:</div><div class='add'>+</div><div class='add'>+  def add_values(a = 1, b = a)</div><div class='add'>+    a + b</div><div class='add'>+  end</div><div class='add'>+  add_values</div><div class='add'>+  # =&gt; 2</div><div class='add'>+</div><div class='add'>+But this will raise a +NameError+ (unless there is a method named</div><div class='add'>++b+ defined):</div><div class='add'>+</div><div class='add'>+  def add_values(a = b, b = 1)</div><div class='add'>+    a + b</div><div class='add'>+  end</div><div class='add'>+  add_values</div><div class='add'>+  # NameError (undefined local variable or method `b' for main:Object)</div><div class='add'>+</div><div class='ctx'> === Array Decomposition</div><div class='ctx'> </div><div class='ctx'> You can decompose (unpack or extract values from) an Array using extra</div><div class='hunk'>@@ -355,11 +408,22 @@ converted to an Array:</div><div class='ctx'> </div><div class='ctx'>   gather_arguments 1, 2, 3 # prints [1, 2, 3]</div><div class='ctx'> </div><div class='del'>-The array argument must be the last positional argument, it must appear before</div><div class='del'>-any keyword arguments.</div><div class='add'>+The array argument must appear before any keyword arguments.</div><div class='ctx'> </div><div class='del'>-The array argument will capture a Hash as the last entry if a hash was sent by</div><div class='del'>-the caller after all positional arguments.</div><div class='add'>+It is possible to gather arguments at the beginning or in the middle:</div><div class='add'>+</div><div class='add'>+  def gather_arguments(first_arg, *middle_arguments, last_arg)</div><div class='add'>+    p middle_arguments</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  gather_arguments 1, 2, 3, 4 # prints [2, 3]</div><div class='add'>+</div><div class='add'>+The array argument will capture a Hash as the last entry if keywords were</div><div class='add'>+provided by the caller after all positional arguments.</div><div class='add'>+</div><div class='add'>+  def gather_arguments(*arguments)</div><div class='add'>+    p arguments</div><div class='add'>+  end</div><div class='ctx'> </div><div class='ctx'>   gather_arguments 1, a: 2 # prints [1, {:a=&gt;2}]</div><div class='ctx'> </div><div class='hunk'>@@ -377,6 +441,13 @@ Also, note that a bare &lt;code&gt;*&lt;/code&gt; can be used to ignore arguments:</div><div class='ctx'>   def ignore_arguments(*)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+You can also use a bare &lt;code&gt;*&lt;/code&gt; when calling a method to pass the</div><div class='add'>+arguments directly to another method:</div><div class='add'>+</div><div class='add'>+  def delegate_arguments(*)</div><div class='add'>+    other_method(*)</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'> === Keyword Arguments</div><div class='ctx'> </div><div class='ctx'> Keyword arguments are similar to positional arguments with default values:</div><div class='hunk'>@@ -395,13 +466,56 @@ Arbitrary keyword arguments will be accepted with &lt;code&gt;**&lt;/code&gt;:</div><div class='ctx'>   # prints 1 then {:second=&gt;2, :third=&gt;3}</div><div class='ctx'> </div><div class='ctx'> When calling a method with keyword arguments the arguments may appear in any</div><div class='del'>-order.  If an unknown keyword argument is sent by the caller an ArgumentError</div><div class='del'>-is raised.</div><div class='add'>+order.  If an unknown keyword argument is sent by the caller, and the method</div><div class='add'>+does not accept arbitrary keyword arguments, an ArgumentError is raised.</div><div class='add'>+</div><div class='add'>+To require a specific keyword argument, do not include a default value</div><div class='add'>+for the keyword argument:</div><div class='add'>+</div><div class='add'>+  def add_values(first:, second:)</div><div class='add'>+    first + second</div><div class='add'>+  end</div><div class='add'>+  add_values</div><div class='add'>+  # ArgumentError (missing keywords: first, second)</div><div class='add'>+  add_values(first: 1, second: 2)</div><div class='add'>+  # =&gt; 3</div><div class='ctx'> </div><div class='ctx'> When mixing keyword arguments and positional arguments, all positional</div><div class='ctx'> arguments must appear before any keyword arguments.</div><div class='ctx'> </div><div class='del'>-== Block Argument</div><div class='add'>+Also, note that &lt;code&gt;**&lt;/code&gt; can be used to ignore keyword arguments:</div><div class='add'>+</div><div class='add'>+  def ignore_keywords(**)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+You can also use &lt;code&gt;**&lt;/code&gt; when calling a method to delegate</div><div class='add'>+keyword arguments to another method:</div><div class='add'>+</div><div class='add'>+  def delegate_keywords(**)</div><div class='add'>+    other_method(**)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+To mark a method as accepting keywords, but not actually accepting</div><div class='add'>+keywords, you can use the &lt;code&gt;**nil&lt;/code&gt;:</div><div class='add'>+</div><div class='add'>+  def no_keywords(**nil)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+Calling such a method with keywords or a non-empty keyword splat will</div><div class='add'>+result in an ArgumentError. This syntax is supported so that keywords</div><div class='add'>+can be added to the method later without affected backwards compatibility.</div><div class='add'>+</div><div class='add'>+If a method definition does not accept any keywords, and the</div><div class='add'>+&lt;code&gt;**nil&lt;/code&gt; syntax is not used, any keywords provided when calling</div><div class='add'>+the method will be converted to a Hash positional argument:</div><div class='add'>+</div><div class='add'>+  def meth(arg)</div><div class='add'>+    arg</div><div class='add'>+  end</div><div class='add'>+  meth(a: 1)</div><div class='add'>+  # =&gt; {:a=&gt;1}</div><div class='add'>+</div><div class='add'>+=== Block Argument</div><div class='ctx'> </div><div class='ctx'> The block argument is indicated by &lt;code&gt;&amp;&lt;/code&gt; and must come last:</div><div class='ctx'> </div><div class='hunk'>@@ -415,8 +529,15 @@ Most frequently the block argument is used to pass a block to another method:</div><div class='ctx'>     @items.each(&amp;block)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+You are not required to give a name to the block if you will just be passing</div><div class='add'>+it to another method:</div><div class='add'>+</div><div class='add'>+  def each_item(&amp;)</div><div class='add'>+    @items.each(&amp;)</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'> If you are only going to call the block and will not otherwise manipulate it</div><div class='del'>-or send it to another method using &lt;code&gt;yield&lt;/code&gt; without an explicit</div><div class='add'>+or send it to another method, using &lt;code&gt;yield&lt;/code&gt; without an explicit</div><div class='ctx'> block parameter is preferred.  This method is equivalent to the first method</div><div class='ctx'> in this section:</div><div class='ctx'> </div><div class='hunk'>@@ -424,14 +545,64 @@ in this section:</div><div class='ctx'>     yield self</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-There is also a performance benefit to using yield over a calling a block</div><div class='del'>-parameter.  When a block argument is assigned to a variable a Proc object is</div><div class='del'>-created which holds the block.  When using yield this Proc object is not</div><div class='del'>-created.</div><div class='add'>+=== Argument Forwarding</div><div class='add'>+</div><div class='add'>+Since Ruby 2.7, an all-arguments forwarding syntax is available:</div><div class='add'>+</div><div class='add'>+  def concrete_method(*positional_args, **keyword_args, &amp;block)</div><div class='add'>+    [positional_args, keyword_args, block]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def forwarding_method(...)</div><div class='add'>+    concrete_method(...)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  forwarding_method(1, b: 2) { puts 3 }</div><div class='add'>+  #=&gt;  [[1], {:b=&gt;2}, #&lt;Proc:...skip...&gt;]</div><div class='ctx'> </div><div class='del'>-If you only need to use the block sometimes you can use Proc.new to create a</div><div class='del'>-proc from the block that was passed to your method.  See Proc.new for further</div><div class='del'>-details.</div><div class='add'>+Calling with forwarding &lt;code&gt;...&lt;/code&gt; is available only in methods</div><div class='add'>+defined with &lt;code&gt;...&lt;/code&gt;.</div><div class='add'>+</div><div class='add'>+  def regular_method(arg, **kwarg)</div><div class='add'>+    concrete_method(...) # Syntax error</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+Since Ruby 3.0, there can be leading arguments before &lt;code&gt;...&lt;/code&gt;</div><div class='add'>+both in definitions and in invocations (but in definitions they can be</div><div class='add'>+only positional arguments without default values).</div><div class='add'>+</div><div class='add'>+  def request(method, path, **headers)</div><div class='add'>+    puts "#{method.upcase} #{path} #{headers}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def get(...)</div><div class='add'>+    request(:GET, ...) # leading argument in invoking</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  get('http://ruby-lang.org', 'Accept' =&gt; 'text/html')</div><div class='add'>+  # Prints: GET http://ruby-lang.org {"Accept"=&gt;"text/html"}</div><div class='add'>+</div><div class='add'>+  def logged_get(msg, ...) # leading argument in definition</div><div class='add'>+    puts "Invoking #get: #{msg}"</div><div class='add'>+    get(...)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  logged_get('Ruby site', 'http://ruby-lang.org')</div><div class='add'>+  # Prints:</div><div class='add'>+  #   Invoking #get: Ruby site</div><div class='add'>+  #   GET http://ruby-lang.org {}</div><div class='add'>+</div><div class='add'>+Note that omitting parentheses in forwarding calls may lead to</div><div class='add'>+unexpected results:</div><div class='add'>+</div><div class='add'>+  def log(...)</div><div class='add'>+    puts ...  # This would be treated as `puts()...',</div><div class='add'>+              # i.e. endless range from puts result</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  log("test")</div><div class='add'>+  # Prints: warning: ... at EOL, should be parenthesized?</div><div class='add'>+  # ...and then empty line</div><div class='ctx'> </div><div class='ctx'> == Exception Handling</div><div class='ctx'> </div><div class='hunk'>@@ -454,6 +625,28 @@ May be written as:</div><div class='ctx'>     # handle exception</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+Similarly, if you wish to always run code even if an exception is raised,</div><div class='add'>+you can use +ensure+ without +begin+ and +end+:</div><div class='add'>+</div><div class='add'>+  def my_method</div><div class='add'>+    # code that may raise an exception</div><div class='add'>+  ensure</div><div class='add'>+    # code that runs even if previous code raised an exception</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+You can also combine +rescue+ with +ensure+ and/or +else+, without</div><div class='add'>++begin+ and +end+:</div><div class='add'>+</div><div class='add'>+  def my_method</div><div class='add'>+    # code that may raise an exception</div><div class='add'>+  rescue</div><div class='add'>+    # handle exception</div><div class='add'>+  else</div><div class='add'>+    # only run if no exception raised above</div><div class='add'>+  ensure</div><div class='add'>+    # code that runs even if previous code raised an exception</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'> If you wish to rescue an exception for only part of your method, use +begin+ and</div><div class='ctx'> +end+.  For more details see the page on {exception</div><div class='ctx'> handling}[rdoc-ref:syntax/exceptions.rdoc].</div><div class='head'>diff --git a/doc/syntax/miscellaneous.rdoc b/doc/syntax/miscellaneous.rdoc<br/>index d5691f8d60..d5cfd3e474 100644<br/>--- a/<a href='/ruby.git/tree/doc/syntax/miscellaneous.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/miscellaneous.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/syntax/miscellaneous.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/miscellaneous.rdoc</a></div><div class='hunk'>@@ -13,7 +13,7 @@ most frequently used with &lt;code&gt;ruby -e&lt;/code&gt;.</div><div class='ctx'> Ruby does not require any indentation.  Typically, ruby programs are indented</div><div class='ctx'> two spaces.</div><div class='ctx'> </div><div class='del'>-If you run ruby with warnings enabled and have an indentation mis-match, you</div><div class='add'>+If you run ruby with warnings enabled and have an indentation mismatch, you</div><div class='ctx'> will receive a warning.</div><div class='ctx'> </div><div class='ctx'> == +alias+</div><div class='hunk'>@@ -83,6 +83,36 @@ Using the specific reflection methods such as instance_variable_defined? for</div><div class='ctx'> instance variables or const_defined? for constants is less error prone than</div><div class='ctx'> using +defined?+.</div><div class='ctx'> </div><div class='add'>++defined?+ handles some regexp global variables specially based on whether</div><div class='add'>+there is an active regexp match and how many capture groups there are:</div><div class='add'>+</div><div class='add'>+  /b/ =~ 'a'</div><div class='add'>+  defined?($~) # =&gt; "global-variable"</div><div class='add'>+  defined?($&amp;) # =&gt; nil</div><div class='add'>+  defined?($`) # =&gt; nil</div><div class='add'>+  defined?($') # =&gt; nil</div><div class='add'>+  defined?($+) # =&gt; nil</div><div class='add'>+  defined?($1) # =&gt; nil</div><div class='add'>+  defined?($2) # =&gt; nil</div><div class='add'>+</div><div class='add'>+  /./ =~ 'a'</div><div class='add'>+  defined?($~) # =&gt; "global-variable"</div><div class='add'>+  defined?($&amp;) # =&gt; "global-variable"</div><div class='add'>+  defined?($`) # =&gt; "global-variable"</div><div class='add'>+  defined?($') # =&gt; "global-variable"</div><div class='add'>+  defined?($+) # =&gt; nil</div><div class='add'>+  defined?($1) # =&gt; nil</div><div class='add'>+  defined?($2) # =&gt; nil</div><div class='add'>+</div><div class='add'>+  /(.)/ =~ 'a'</div><div class='add'>+  defined?($~) # =&gt; "global-variable"</div><div class='add'>+  defined?($&amp;) # =&gt; "global-variable"</div><div class='add'>+  defined?($`) # =&gt; "global-variable"</div><div class='add'>+  defined?($') # =&gt; "global-variable"</div><div class='add'>+  defined?($+) # =&gt; "global-variable"</div><div class='add'>+  defined?($1) # =&gt; "global-variable"</div><div class='add'>+  defined?($2) # =&gt; nil</div><div class='add'>+</div><div class='ctx'> == +BEGIN+ and +END+</div><div class='ctx'> </div><div class='ctx'> +BEGIN+ defines a block that is run before any other code in the current file.</div><div class='head'>diff --git a/doc/syntax/modules_and_classes.rdoc b/doc/syntax/modules_and_classes.rdoc<br/>index dd70d4ac21..024815a5a6 100644<br/>--- a/<a href='/ruby.git/tree/doc/syntax/modules_and_classes.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/modules_and_classes.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/syntax/modules_and_classes.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/modules_and_classes.rdoc</a></div><div class='hunk'>@@ -155,8 +155,8 @@ Ruby has three types of visibility.  The default is +public+.  A public method</div><div class='ctx'> may be called from any other object.</div><div class='ctx'> </div><div class='ctx'> The second visibility is +protected+.  When calling a protected method the</div><div class='del'>-sender must be a subclass of the receiver or the receiver must be a subclass of</div><div class='del'>-the sender.  Otherwise a NoMethodError will be raised.</div><div class='add'>+sender must inherit the Class or Module which defines the method.  Otherwise a</div><div class='add'>+NoMethodError will be raised.</div><div class='ctx'> </div><div class='ctx'> Protected visibility is most frequently used to define &lt;code&gt;==&lt;/code&gt; and</div><div class='ctx'> other comparison methods where the author does not wish to expose an object's</div><div class='hunk'>@@ -190,9 +190,41 @@ Here is an example:</div><div class='ctx'>   b.n b #=&gt; 1 -- m called on defining class</div><div class='ctx'>   a.n b # raises NoMethodError A is not a subclass of B</div><div class='ctx'> </div><div class='del'>-The third visibility is +private+.  A private method may not be called with a</div><div class='del'>-receiver, not even +self+.  If a private method is called with a receiver a</div><div class='del'>-NoMethodError will be raised.</div><div class='add'>+The third visibility is +private+.  A private method may only be called from</div><div class='add'>+inside the owner class without a receiver, or with a literal +self+</div><div class='add'>+as a receiver.  If a private method is called with a</div><div class='add'>+receiver other than a literal +self+, a NoMethodError will be raised.</div><div class='add'>+</div><div class='add'>+  class A</div><div class='add'>+    def without</div><div class='add'>+      m</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def with_self</div><div class='add'>+      self.m</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def with_other</div><div class='add'>+      A.new.m</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def with_renamed</div><div class='add'>+      copy = self</div><div class='add'>+      copy.m</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def m</div><div class='add'>+      1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private :m</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  a = A.new</div><div class='add'>+  a.without      #=&gt; 1</div><div class='add'>+  a.with_self    #=&gt; 1</div><div class='add'>+  a.with_other   # NoMethodError (private method `m' called for #&lt;A:0x0000559c287f27d0&gt;)</div><div class='add'>+  a.with_renamed # NoMethodError (private method `m' called for #&lt;A:0x0000559c285f8330&gt;)</div><div class='ctx'> </div><div class='ctx'> === +alias+ and +undef+</div><div class='ctx'> </div><div class='head'>diff --git a/doc/syntax/pattern_matching.rdoc b/doc/syntax/pattern_matching.rdoc<br/>new file mode 100644<br/>index 0000000000..b7d614770c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/syntax/pattern_matching.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/pattern_matching.rdoc</a></div><div class='hunk'>@@ -0,0 +1,540 @@</div><div class='add'>+= Pattern matching</div><div class='add'>+</div><div class='add'>+Pattern matching is a feature allowing deep matching of structured values: checking the structure and binding the matched parts to local variables.</div><div class='add'>+</div><div class='add'>+Pattern matching in Ruby is implemented with the +case+/+in+ expression:</div><div class='add'>+</div><div class='add'>+    case &lt;expression&gt;</div><div class='add'>+    in &lt;pattern1&gt;</div><div class='add'>+      ...</div><div class='add'>+    in &lt;pattern2&gt;</div><div class='add'>+      ...</div><div class='add'>+    in &lt;pattern3&gt;</div><div class='add'>+      ...</div><div class='add'>+    else</div><div class='add'>+      ...</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+(Note that +in+ and +when+ branches can NOT be mixed in one +case+ expression.)</div><div class='add'>+</div><div class='add'>+Or with the &lt;code&gt;=&gt;&lt;/code&gt; operator and the +in+ operator, which can be used in a standalone expression:</div><div class='add'>+</div><div class='add'>+    &lt;expression&gt; =&gt; &lt;pattern&gt;</div><div class='add'>+</div><div class='add'>+    &lt;expression&gt; in &lt;pattern&gt;</div><div class='add'>+</div><div class='add'>+The +case+/+in+ expression is _exhaustive_: if the value of the expression does not match any branch of the +case+ expression (and the +else+ branch is absent), +NoMatchingPatternError+ is raised.</div><div class='add'>+</div><div class='add'>+Therefore, the +case+ expression might be used for conditional matching and unpacking:</div><div class='add'>+</div><div class='add'>+  config = {db: {user: 'admin', password: 'abc123'}}</div><div class='add'>+</div><div class='add'>+  case config</div><div class='add'>+  in db: {user:} # matches subhash and puts matched value in variable user</div><div class='add'>+    puts "Connect with user '#{user}'"</div><div class='add'>+  in connection: {username: }</div><div class='add'>+    puts "Connect with user '#{username}'"</div><div class='add'>+  else</div><div class='add'>+    puts "Unrecognized structure of config"</div><div class='add'>+  end</div><div class='add'>+  # Prints: "Connect with user 'admin'"</div><div class='add'>+</div><div class='add'>+whilst the &lt;code&gt;=&gt;&lt;/code&gt; operator is most useful when the expected data structure is known beforehand, to just unpack parts of it:</div><div class='add'>+</div><div class='add'>+  config = {db: {user: 'admin', password: 'abc123'}}</div><div class='add'>+</div><div class='add'>+  config =&gt; {db: {user:}} # will raise if the config's structure is unexpected</div><div class='add'>+</div><div class='add'>+  puts "Connect with user '#{user}'"</div><div class='add'>+  # Prints: "Connect with user 'admin'"</div><div class='add'>+</div><div class='add'>+&lt;code&gt;&lt;expression&gt; in &lt;pattern&gt;&lt;/code&gt; is the same as &lt;code&gt;case &lt;expression&gt;; in &lt;pattern&gt;; true; else false; end&lt;/code&gt;.</div><div class='add'>+You can use it when you only want to know if a pattern has been matched or not:</div><div class='add'>+</div><div class='add'>+  users = [{name: "Alice", age: 12}, {name: "Bob", age: 23}]</div><div class='add'>+  users.any? {|user| user in {name: /B/, age: 20..} } #=&gt; true</div><div class='add'>+</div><div class='add'>+See below for more examples and explanations of the syntax.</div><div class='add'>+</div><div class='add'>+== Patterns</div><div class='add'>+</div><div class='add'>+Patterns can be:</div><div class='add'>+</div><div class='add'>+* any Ruby object (matched by the &lt;code&gt;===&lt;/code&gt; operator, like in +when+); (&lt;em&gt;Value pattern&lt;/em&gt;)</div><div class='add'>+* array pattern: &lt;code&gt;[&lt;subpattern&gt;, &lt;subpattern&gt;, &lt;subpattern&gt;, ...]&lt;/code&gt;; (&lt;em&gt;Array pattern&lt;/em&gt;)</div><div class='add'>+* find pattern: &lt;code&gt;[*variable, &lt;subpattern&gt;, &lt;subpattern&gt;, &lt;subpattern&gt;, ..., *variable]&lt;/code&gt;; (&lt;em&gt;Find pattern&lt;/em&gt;)</div><div class='add'>+* hash pattern: &lt;code&gt;{key: &lt;subpattern&gt;, key: &lt;subpattern&gt;, ...}&lt;/code&gt;; (&lt;em&gt;Hash pattern&lt;/em&gt;)</div><div class='add'>+* combination of patterns with &lt;code&gt;|&lt;/code&gt;; (&lt;em&gt;Alternative pattern&lt;/em&gt;)</div><div class='add'>+* variable capture: &lt;code&gt;&lt;pattern&gt; =&gt; variable&lt;/code&gt; or &lt;code&gt;variable&lt;/code&gt;; (&lt;em&gt;As pattern&lt;/em&gt;, &lt;em&gt;Variable pattern&lt;/em&gt;)</div><div class='add'>+</div><div class='add'>+Any pattern can be nested inside array/find/hash patterns where &lt;code&gt;&lt;subpattern&gt;&lt;/code&gt; is specified.</div><div class='add'>+</div><div class='add'>+Array patterns and find patterns match arrays, or objects that respond to +deconstruct+ (see below about the latter).</div><div class='add'>+Hash patterns match hashes, or objects that respond to +deconstruct_keys+ (see below about the latter). Note that only symbol keys are supported for hash patterns.</div><div class='add'>+</div><div class='add'>+An important difference between array and hash pattern behavior is that arrays match only a _whole_ array:</div><div class='add'>+</div><div class='add'>+  case [1, 2, 3]</div><div class='add'>+  in [Integer, Integer]</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "not matched"</div><div class='add'>+</div><div class='add'>+while the hash matches even if there are other keys besides the specified part:</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2, c: 3}</div><div class='add'>+  in {a: Integer}</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched"</div><div class='add'>+</div><div class='add'>+&lt;code&gt;{}&lt;/code&gt; is the only exclusion from this rule. It matches only if an empty hash is given:</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2, c: 3}</div><div class='add'>+  in {}</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "not matched"</div><div class='add'>+</div><div class='add'>+  case {}</div><div class='add'>+  in {}</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched"</div><div class='add'>+</div><div class='add'>+There is also a way to specify there should be no other keys in the matched hash except those explicitly specified by the pattern, with &lt;code&gt;**nil&lt;/code&gt;:</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2}</div><div class='add'>+  in {a: Integer, **nil} # this will not match the pattern having keys other than a:</div><div class='add'>+    "matched a part"</div><div class='add'>+  in {a: Integer, b: Integer, **nil}</div><div class='add'>+    "matched a whole"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched a whole"</div><div class='add'>+</div><div class='add'>+Both array and hash patterns support "rest" specification:</div><div class='add'>+</div><div class='add'>+  case [1, 2, 3]</div><div class='add'>+  in [Integer, *]</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched"</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2, c: 3}</div><div class='add'>+  in {a: Integer, **}</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched"</div><div class='add'>+</div><div class='add'>+Parentheses around both kinds of patterns could be omitted:</div><div class='add'>+</div><div class='add'>+  case [1, 2]</div><div class='add'>+  in Integer, Integer</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched"</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2, c: 3}</div><div class='add'>+  in a: Integer</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched"</div><div class='add'>+</div><div class='add'>+ [1, 2] =&gt; a, b</div><div class='add'>+ [1, 2] in a, b</div><div class='add'>+</div><div class='add'>+ {a: 1, b: 2, c: 3} =&gt; a:</div><div class='add'>+ {a: 1, b: 2, c: 3} in a:</div><div class='add'>+</div><div class='add'>+Find pattern is similar to array pattern but it can be used to check if the given object has any elements that match the pattern:</div><div class='add'>+</div><div class='add'>+  case ["a", 1, "b", "c", 2]</div><div class='add'>+  in [*, String, String, *]</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+== Variable binding</div><div class='add'>+</div><div class='add'>+Besides deep structural checks, one of the very important features of the pattern matching is the binding of the matched parts to local variables. The basic form of binding is just specifying &lt;code&gt;=&gt; variable_name&lt;/code&gt; after the matched (sub)pattern (one might find this similar to storing exceptions in local variables in a &lt;code&gt;rescue ExceptionClass =&gt; var&lt;/code&gt; clause):</div><div class='add'>+</div><div class='add'>+  case [1, 2]</div><div class='add'>+  in Integer =&gt; a, Integer</div><div class='add'>+    "matched: #{a}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched: 1"</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2, c: 3}</div><div class='add'>+  in a: Integer =&gt; m</div><div class='add'>+    "matched: #{m}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched: 1"</div><div class='add'>+</div><div class='add'>+If no additional check is required, for only binding some part of the data to a variable, a simpler form could be used:</div><div class='add'>+</div><div class='add'>+  case [1, 2]</div><div class='add'>+  in a, Integer</div><div class='add'>+    "matched: #{a}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched: 1"</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2, c: 3}</div><div class='add'>+  in a: m</div><div class='add'>+    "matched: #{m}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched: 1"</div><div class='add'>+</div><div class='add'>+For hash patterns, even a simpler form exists: key-only specification (without any sub-pattern) binds the local variable with the key's name, too:</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2, c: 3}</div><div class='add'>+  in a:</div><div class='add'>+    "matched: #{a}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched: 1"</div><div class='add'>+</div><div class='add'>+Binding works for nested patterns as well:</div><div class='add'>+</div><div class='add'>+  case {name: 'John', friends: [{name: 'Jane'}, {name: 'Rajesh'}]}</div><div class='add'>+  in name:, friends: [{name: first_friend}, *]</div><div class='add'>+    "matched: #{first_friend}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched: Jane"</div><div class='add'>+</div><div class='add'>+The "rest" part of a pattern also can be bound to a variable:</div><div class='add'>+</div><div class='add'>+  case [1, 2, 3]</div><div class='add'>+  in a, *rest</div><div class='add'>+    "matched: #{a}, #{rest}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched: 1, [2, 3]"</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2, c: 3}</div><div class='add'>+  in a:, **rest</div><div class='add'>+    "matched: #{a}, #{rest}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched: 1, {:b=&gt;2, :c=&gt;3}"</div><div class='add'>+</div><div class='add'>+Binding to variables currently does NOT work for alternative patterns joined with &lt;code&gt;|&lt;/code&gt;:</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2}</div><div class='add'>+  in {a: } | Array</div><div class='add'>+    "matched: #{a}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  # SyntaxError (illegal variable in alternative pattern (a))</div><div class='add'>+</div><div class='add'>+Variables that start with &lt;code&gt;_&lt;/code&gt; are the only exclusions from this rule:</div><div class='add'>+</div><div class='add'>+  case {a: 1, b: 2}</div><div class='add'>+  in {a: _, b: _foo} | Array</div><div class='add'>+    "matched: #{_}, #{_foo}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  # =&gt; "matched: 1, 2"</div><div class='add'>+</div><div class='add'>+It is, though, not advised to reuse the bound value, as this pattern's goal is to signify a discarded value.</div><div class='add'>+</div><div class='add'>+== Variable pinning</div><div class='add'>+</div><div class='add'>+Due to the variable binding feature, existing local variable can not be straightforwardly used as a sub-pattern:</div><div class='add'>+</div><div class='add'>+  expectation = 18</div><div class='add'>+</div><div class='add'>+  case [1, 2]</div><div class='add'>+  in expectation, *rest</div><div class='add'>+    "matched. expectation was: #{expectation}"</div><div class='add'>+  else</div><div class='add'>+    "not matched. expectation was: #{expectation}"</div><div class='add'>+  end</div><div class='add'>+  # expected: "not matched. expectation was: 18"</div><div class='add'>+  # real: "matched. expectation was: 1" -- local variable just rewritten</div><div class='add'>+</div><div class='add'>+For this case, the pin operator &lt;code&gt;^&lt;/code&gt; can be used, to tell Ruby "just use this value as part of the pattern":</div><div class='add'>+</div><div class='add'>+  expectation = 18</div><div class='add'>+  case [1, 2]</div><div class='add'>+  in ^expectation, *rest</div><div class='add'>+    "matched. expectation was: #{expectation}"</div><div class='add'>+  else</div><div class='add'>+    "not matched. expectation was: #{expectation}"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "not matched. expectation was: 18"</div><div class='add'>+</div><div class='add'>+One important usage of variable pinning is specifying that the same value should occur in the pattern several times:</div><div class='add'>+</div><div class='add'>+  jane = {school: 'high', schools: [{id: 1, level: 'middle'}, {id: 2, level: 'high'}]}</div><div class='add'>+  john = {school: 'high', schools: [{id: 1, level: 'middle'}]}</div><div class='add'>+</div><div class='add'>+  case jane</div><div class='add'>+  in school:, schools: [*, {id:, level: ^school}] # select the last school, level should match</div><div class='add'>+    "matched. school: #{id}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched. school: 2"</div><div class='add'>+</div><div class='add'>+  case john # the specified school level is "high", but last school does not match</div><div class='add'>+  in school:, schools: [*, {id:, level: ^school}]</div><div class='add'>+    "matched. school: #{id}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "not matched"</div><div class='add'>+</div><div class='add'>+In addition to pinning local variables, you can also pin instance, global, and class variables:</div><div class='add'>+</div><div class='add'>+  $gvar = 1</div><div class='add'>+  class A</div><div class='add'>+    @ivar = 2</div><div class='add'>+    @@cvar = 3</div><div class='add'>+    case [1, 2, 3]</div><div class='add'>+    in ^$gvar, ^@ivar, ^@@cvar</div><div class='add'>+      "matched"</div><div class='add'>+    else</div><div class='add'>+      "not matched"</div><div class='add'>+    end</div><div class='add'>+    #=&gt; "matched"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+You can also pin the result of arbitrary expressions using parentheses:</div><div class='add'>+</div><div class='add'>+  a = 1</div><div class='add'>+  b = 2</div><div class='add'>+  case 3</div><div class='add'>+  in ^(a + b)</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched"</div><div class='add'>+</div><div class='add'>+== Matching non-primitive objects: +deconstruct+ and +deconstruct_keys+</div><div class='add'>+</div><div class='add'>+As already mentioned above, array, find, and hash patterns besides literal arrays and hashes will try to match any object implementing +deconstruct+ (for array/find patterns) or +deconstruct_keys+ (for hash patterns).</div><div class='add'>+</div><div class='add'>+  class Point</div><div class='add'>+    def initialize(x, y)</div><div class='add'>+      @x, @y = x, y</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def deconstruct</div><div class='add'>+      puts "deconstruct called"</div><div class='add'>+      [@x, @y]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def deconstruct_keys(keys)</div><div class='add'>+      puts "deconstruct_keys called with #{keys.inspect}"</div><div class='add'>+      {x: @x, y: @y}</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  case Point.new(1, -2)</div><div class='add'>+  in px, Integer  # sub-patterns and variable binding works</div><div class='add'>+    "matched: #{px}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  # prints "deconstruct called"</div><div class='add'>+  "matched: 1"</div><div class='add'>+</div><div class='add'>+  case Point.new(1, -2)</div><div class='add'>+  in x: 0.. =&gt; px</div><div class='add'>+    "matched: #{px}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  # prints: deconstruct_keys called with [:x]</div><div class='add'>+  #=&gt; "matched: 1"</div><div class='add'>+</div><div class='add'>++keys+ are passed to +deconstruct_keys+ to provide a room for optimization in the matched class: if calculating a full hash representation is expensive, one may calculate only the necessary subhash. When the &lt;code&gt;**rest&lt;/code&gt; pattern is used, +nil+ is passed as a +keys+ value:</div><div class='add'>+</div><div class='add'>+  case Point.new(1, -2)</div><div class='add'>+  in x: 0.. =&gt; px, **rest</div><div class='add'>+    "matched: #{px}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  # prints: deconstruct_keys called with nil</div><div class='add'>+  #=&gt; "matched: 1"</div><div class='add'>+</div><div class='add'>+Additionally, when matching custom classes, the expected class can be specified as part of the pattern and is checked with &lt;code&gt;===&lt;/code&gt;</div><div class='add'>+</div><div class='add'>+  class SuperPoint &lt; Point</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  case Point.new(1, -2)</div><div class='add'>+  in SuperPoint(x: 0.. =&gt; px)</div><div class='add'>+    "matched: #{px}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "not matched"</div><div class='add'>+</div><div class='add'>+  case SuperPoint.new(1, -2)</div><div class='add'>+  in SuperPoint[x: 0.. =&gt; px] # [] or () parentheses are allowed</div><div class='add'>+    "matched: #{px}"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched: 1"</div><div class='add'>+</div><div class='add'>+== Guard clauses</div><div class='add'>+</div><div class='add'>++if+ can be used to attach an additional condition (guard clause) when the pattern matches. This condition may use bound variables:</div><div class='add'>+</div><div class='add'>+  case [1, 2]</div><div class='add'>+  in a, b if b == a*2</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched"</div><div class='add'>+</div><div class='add'>+  case [1, 1]</div><div class='add'>+  in a, b if b == a*2</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "not matched"</div><div class='add'>+</div><div class='add'>++unless+ works, too:</div><div class='add'>+</div><div class='add'>+  case [1, 1]</div><div class='add'>+  in a, b unless b == a*2</div><div class='add'>+    "matched"</div><div class='add'>+  else</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  #=&gt; "matched"</div><div class='add'>+</div><div class='add'>+== Current feature status</div><div class='add'>+</div><div class='add'>+As of Ruby 3.1, find patterns are considered _experimental_: its syntax can change in the future. Every time you use these features in code, a warning will be printed:</div><div class='add'>+</div><div class='add'>+  [0] =&gt; [*, 0, *]</div><div class='add'>+  # warning: Find pattern is experimental, and the behavior may change in future versions of Ruby!</div><div class='add'>+  # warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!</div><div class='add'>+</div><div class='add'>+To suppress this warning, one may use the Warning::[]= method:</div><div class='add'>+</div><div class='add'>+  Warning[:experimental] = false</div><div class='add'>+  eval('[0] =&gt; [*, 0, *]')</div><div class='add'>+  # ...no warning printed...</div><div class='add'>+</div><div class='add'>+Note that pattern-matching warnings are raised at compile time, so this will not suppress the warning:</div><div class='add'>+</div><div class='add'>+  Warning[:experimental] = false # At the time this line is evaluated, the parsing happened and warning emitted</div><div class='add'>+  [0] =&gt; [*, 0, *]</div><div class='add'>+</div><div class='add'>+So, only subsequently loaded files or `eval`-ed code is affected by switching the flag.</div><div class='add'>+</div><div class='add'>+Alternatively, the command line option &lt;code&gt;-W:no-experimental&lt;/code&gt; can be used to turn off "experimental" feature warnings.</div><div class='add'>+</div><div class='add'>+== Appendix A. Pattern syntax</div><div class='add'>+</div><div class='add'>+Approximate syntax is:</div><div class='add'>+</div><div class='add'>+  pattern: value_pattern</div><div class='add'>+         | variable_pattern</div><div class='add'>+         | alternative_pattern</div><div class='add'>+         | as_pattern</div><div class='add'>+         | array_pattern</div><div class='add'>+         | find_pattern</div><div class='add'>+         | hash_pattern</div><div class='add'>+</div><div class='add'>+  value_pattern: literal</div><div class='add'>+               | Constant</div><div class='add'>+               | ^local_variable</div><div class='add'>+               | ^instance_variable</div><div class='add'>+               | ^class_variable</div><div class='add'>+               | ^global_variable</div><div class='add'>+               | ^(expression)</div><div class='add'>+</div><div class='add'>+  variable_pattern: variable</div><div class='add'>+</div><div class='add'>+  alternative_pattern: pattern | pattern | ...</div><div class='add'>+</div><div class='add'>+  as_pattern: pattern =&gt; variable</div><div class='add'>+</div><div class='add'>+  array_pattern: [pattern, ..., *variable]</div><div class='add'>+               | Constant(pattern, ..., *variable)</div><div class='add'>+               | Constant[pattern, ..., *variable]</div><div class='add'>+</div><div class='add'>+  find_pattern: [*variable, pattern, ..., *variable]</div><div class='add'>+              | Constant(*variable, pattern, ..., *variable)</div><div class='add'>+              | Constant[*variable, pattern, ..., *variable]</div><div class='add'>+</div><div class='add'>+  hash_pattern: {key: pattern, key:, ..., **variable}</div><div class='add'>+              | Constant(key: pattern, key:, ..., **variable)</div><div class='add'>+              | Constant[key: pattern, key:, ..., **variable]</div><div class='add'>+</div><div class='add'>+== Appendix B. Some undefined behavior examples</div><div class='add'>+</div><div class='add'>+To leave room for optimization in the future, the specification contains some undefined behavior.</div><div class='add'>+</div><div class='add'>+Use of a variable in an unmatched pattern:</div><div class='add'>+</div><div class='add'>+  case [0, 1]</div><div class='add'>+  in [a, 2]</div><div class='add'>+    "not matched"</div><div class='add'>+  in b</div><div class='add'>+    "matched"</div><div class='add'>+  in c</div><div class='add'>+    "not matched"</div><div class='add'>+  end</div><div class='add'>+  a #=&gt; undefined</div><div class='add'>+  c #=&gt; undefined</div><div class='add'>+</div><div class='add'>+Number of +deconstruct+, +deconstruct_keys+ method calls:</div><div class='add'>+</div><div class='add'>+  $i = 0</div><div class='add'>+  ary = [0]</div><div class='add'>+  def ary.deconstruct</div><div class='add'>+    $i += 1</div><div class='add'>+    self</div><div class='add'>+  end</div><div class='add'>+  case ary</div><div class='add'>+  in [0, 1]</div><div class='add'>+    "not matched"</div><div class='add'>+  in [0]</div><div class='add'>+    "matched"</div><div class='add'>+  end</div><div class='add'>+  $i #=&gt; undefined</div><div class='head'>diff --git a/doc/syntax/precedence.rdoc b/doc/syntax/precedence.rdoc<br/>index 515626c74f..f0ca92b571 100644<br/>--- a/<a href='/ruby.git/tree/doc/syntax/precedence.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/precedence.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/syntax/precedence.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/precedence.rdoc</a></div><div class='hunk'>@@ -49,10 +49,14 @@ Unary &lt;code&gt;+&lt;/code&gt; and unary &lt;code&gt;-&lt;/code&gt; are for &lt;code&gt;+1&lt;/code&gt;,</div><div class='ctx'> &lt;code&gt;-1&lt;/code&gt; or &lt;code&gt;-(a + b)&lt;/code&gt;.</div><div class='ctx'> </div><div class='ctx'> Modifier-if, modifier-unless, etc. are for the modifier versions of those</div><div class='del'>-keywords.  For example, this is a modifier-unless expression:</div><div class='add'>+keywords.  For example, this is a modifier-unless statement:</div><div class='ctx'> </div><div class='ctx'>   a += 1 unless a.zero?</div><div class='ctx'> </div><div class='add'>+Note that &lt;code&gt;(a if b rescue c)&lt;/code&gt; is parsed as &lt;code&gt;((a if b) rescue</div><div class='add'>+c)&lt;/code&gt; due to reasons not related to precedence. See {modifier</div><div class='add'>+statements}[control_expressions.rdoc#label-Modifier+Statements].</div><div class='add'>+</div><div class='ctx'> &lt;code&gt;{ ... }&lt;/code&gt; blocks have priority below all listed operations, but</div><div class='ctx'> &lt;code&gt;do ... end&lt;/code&gt; blocks have lower priority.</div><div class='ctx'> </div><div class='head'>diff --git a/doc/syntax/refinements.rdoc b/doc/syntax/refinements.rdoc<br/>index 34ca3a1983..c900ab1bdc 100644<br/>--- a/<a href='/ruby.git/tree/doc/syntax/refinements.rdoc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>doc/syntax/refinements.rdoc</a><br/>+++ b/<a href='/ruby.git/tree/doc/syntax/refinements.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/syntax/refinements.rdoc</a></div><div class='hunk'>@@ -7,7 +7,7 @@ changes.  This can cause unintended side-effects or breakage of programs.</div><div class='ctx'> </div><div class='ctx'> Refinements are designed to reduce the impact of monkey patching on other</div><div class='ctx'> users of the monkey-patched class.  Refinements provide a way to extend a</div><div class='del'>-class locally.</div><div class='add'>+class locally.  Refinements can modify both classes and modules.</div><div class='ctx'> </div><div class='ctx'> Here is a basic refinement:</div><div class='ctx'> </div><div class='hunk'>@@ -26,7 +26,7 @@ Here is a basic refinement:</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'> First, a class +C+ is defined.  Next a refinement for +C+ is created using</div><div class='del'>-Module#refine. Refinements can modify both classes and modules.</div><div class='add'>+Module#refine.</div><div class='ctx'> </div><div class='ctx'> Module#refine creates an anonymous module that contains the changes or</div><div class='ctx'> refinements to the class (+C+ in the example).  +self+ in the refine block is</div><div class='hunk'>@@ -245,13 +245,12 @@ When +super+ is invoked method lookup checks:</div><div class='ctx'> </div><div class='ctx'> Note that +super+ in a method of a refinement invokes the method in the</div><div class='ctx'> refined class even if there is another refinement which has been activated in</div><div class='del'>-the same context.</div><div class='add'>+the same context. This is only true for +super+ in a method of a refinement, it</div><div class='add'>+does not apply to +super+ in a method in a module that is included in a refinement.</div><div class='ctx'> </div><div class='del'>-== Indirect Method Calls</div><div class='add'>+== Methods Introspection</div><div class='ctx'> </div><div class='del'>-When using indirect method access such as Kernel#send, Kernel#method or</div><div class='del'>-Kernel#respond_to? refinements are not honored for the caller context during</div><div class='del'>-method lookup.</div><div class='add'>+When using introspection methods such as Kernel#method or Kernel#methods refinements are not honored.</div><div class='ctx'> </div><div class='ctx'> This behavior may be changed in the future.</div><div class='ctx'> </div><div class='hunk'>@@ -280,6 +279,6 @@ Refinements in descendants have higher precedence than those of ancestors.</div><div class='ctx'> </div><div class='ctx'> == Further Reading</div><div class='ctx'> </div><div class='del'>-See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/RefinementsSpec for the</div><div class='add'>+See https://bugs.ruby-lang.org/projects/ruby-master/wiki/RefinementsSpec for the</div><div class='ctx'> current specification for implementing refinements.  The specification also</div><div class='ctx'> contains more details.</div><div class='head'>diff --git a/doc/timezones.rdoc b/doc/timezones.rdoc<br/>new file mode 100644<br/>index 0000000000..c3aae88fde<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/timezones.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/timezones.rdoc</a></div><div class='hunk'>@@ -0,0 +1,108 @@</div><div class='add'>+== Timezones</div><div class='add'>+</div><div class='add'>+=== Timezone Specifiers</div><div class='add'>+</div><div class='add'>+Certain \Time methods accept arguments that specify timezones:</div><div class='add'>+</div><div class='add'>+- Time.at: keyword argument +in:+.</div><div class='add'>+- Time.new: positional argument +zone+ or keyword argument +in:+.</div><div class='add'>+- Time.now: keyword argument +in:+.</div><div class='add'>+- Time#getlocal: positional argument +zone+.</div><div class='add'>+- Time#localtime: positional argument +zone+.</div><div class='add'>+</div><div class='add'>+The value given with any of these must be one of the following</div><div class='add'>+(each detailed below):</div><div class='add'>+</div><div class='add'>+- {Hours/minutes offset}[rdoc-ref:timezones.rdoc@Hours-2FMinutes+Offsets].</div><div class='add'>+- {Single-letter offset}[rdoc-ref:timezones.rdoc@Single-Letter+Offsets].</div><div class='add'>+- {Integer offset}[rdoc-ref:timezones.rdoc@Integer+Offsets].</div><div class='add'>+- {Timezone object}[rdoc-ref:timezones.rdoc@Timezone+Objects].</div><div class='add'>+</div><div class='add'>+==== Hours/Minutes Offsets</div><div class='add'>+</div><div class='add'>+The zone value may be a string offset from UTC</div><div class='add'>+in the form &lt;tt&gt;'+HH:MM'&lt;/tt&gt; or &lt;tt&gt;'-HH:MM'&lt;/tt&gt;,</div><div class='add'>+where:</div><div class='add'>+</div><div class='add'>+- +HH+ is the 2-digit hour in the range &lt;tt&gt;0..23&lt;/tt&gt;.</div><div class='add'>+- +MM+ is the 2-digit minute in the range &lt;tt&gt;0..59&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+Examples:</div><div class='add'>+</div><div class='add'>+  t = Time.utc(2000, 1, 1, 20, 15, 1) # =&gt; 2000-01-01 20:15:01 UTC</div><div class='add'>+  Time.at(t, in: '-23:59')            # =&gt; 1999-12-31 20:16:01 -2359</div><div class='add'>+  Time.at(t, in: '+23:59')            # =&gt; 2000-01-02 20:14:01 +2359</div><div class='add'>+</div><div class='add'>+==== Single-Letter Offsets</div><div class='add'>+</div><div class='add'>+The zone value may be a  letter in the range &lt;tt&gt;'A'..'I'&lt;/tt&gt;</div><div class='add'>+or &lt;tt&gt;'K'..'Z'&lt;/tt&gt;;</div><div class='add'>+see {List of military time zones}[https://en.wikipedia.org/wiki/List_of_military_time_zones]:</div><div class='add'>+</div><div class='add'>+  t = Time.utc(2000, 1, 1, 20, 15, 1) # =&gt; 2000-01-01 20:15:01 UTC</div><div class='add'>+  Time.at(t, in: 'A')                 # =&gt; 2000-01-01 21:15:01 +0100</div><div class='add'>+  Time.at(t, in: 'I')                 # =&gt; 2000-01-02 05:15:01 +0900</div><div class='add'>+  Time.at(t, in: 'K')                 # =&gt; 2000-01-02 06:15:01 +1000</div><div class='add'>+  Time.at(t, in: 'Y')                 # =&gt; 2000-01-01 08:15:01 -1200</div><div class='add'>+  Time.at(t, in: 'Z')                 # =&gt; 2000-01-01 20:15:01 UTC</div><div class='add'>+</div><div class='add'>+==== \Integer Offsets</div><div class='add'>+</div><div class='add'>+The zone value may be an integer number of seconds</div><div class='add'>+in the range &lt;tt&gt;-86399..86399&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+  t = Time.utc(2000, 1, 1, 20, 15, 1) # =&gt; 2000-01-01 20:15:01 UTC</div><div class='add'>+  Time.at(t, in: -86399)              # =&gt; 1999-12-31 20:15:02 -235959</div><div class='add'>+  Time.at(t, in: 86399)               # =&gt; 2000-01-02 20:15:00 +235959</div><div class='add'>+</div><div class='add'>+==== Timezone Objects</div><div class='add'>+</div><div class='add'>+In most cases, the zone value may be an object</div><div class='add'>+responding to certain timezone methods.</div><div class='add'>+</div><div class='add'>+\Exceptions (timezone object not allowed):</div><div class='add'>+</div><div class='add'>+- Time.new with positional argument +zone+.</div><div class='add'>+- Time.now with keyword argument +in:+.</div><div class='add'>+</div><div class='add'>+The timezone methods are:</div><div class='add'>+</div><div class='add'>+- +local_to_utc+:</div><div class='add'>+</div><div class='add'>+  - Called when Time.new is invoked with +tz+</div><div class='add'>+    as the value of positional argument +zone+ or keyword argument +in:+.</div><div class='add'>+  - Argument: a &lt;tt&gt;Time::tm&lt;/tt&gt; object.</div><div class='add'>+  - Returns: a \Time-like object in the UTC timezone.</div><div class='add'>+</div><div class='add'>+- +utc_to_local+:</div><div class='add'>+</div><div class='add'>+  - Called when Time.at or Time.now is invoked with +tz+</div><div class='add'>+    as the value for keyword argument +in:+,</div><div class='add'>+    and when Time#getlocal or Time#localtime is called with +tz+</div><div class='add'>+    as the value for positional argument +zone+.</div><div class='add'>+  - Argument: a &lt;tt&gt;Time::tm&lt;/tt&gt; object.</div><div class='add'>+  - Returns: a \Time-like object in the local timezone.</div><div class='add'>+</div><div class='add'>+A custom timezone class may have these instance methods,</div><div class='add'>+which will be called if defined:</div><div class='add'>+</div><div class='add'>+- +abbr+:</div><div class='add'>+</div><div class='add'>+  - Called when Time#strftime is invoked with a format involving &lt;tt&gt;%Z&lt;/tt&gt;.</div><div class='add'>+  - Argument: a &lt;tt&gt;Time::tm&lt;/tt&gt; object.</div><div class='add'>+  - Returns: a string abbreviation for the timezone name.</div><div class='add'>+</div><div class='add'>+- +dst?+:</div><div class='add'>+</div><div class='add'>+  - Called when Time.at or Time.now is invoked with +tz+</div><div class='add'>+    as the value for keyword argument +in:+,</div><div class='add'>+    and when Time#getlocal or Time#localtime is called with +tz+</div><div class='add'>+    as the value for positional argument +zone+.</div><div class='add'>+  - Argument: a &lt;tt&gt;Time::tm&lt;/tt&gt; object.</div><div class='add'>+  - Returns: whether the time is daylight saving time.</div><div class='add'>+</div><div class='add'>+- +name+:</div><div class='add'>+</div><div class='add'>+  - Called when &lt;tt&gt;Marshal.dump(t) is invoked</div><div class='add'>+  - Argument: none.</div><div class='add'>+  - Returns: the string name of the timezone.</div><div class='head'>diff --git a/doc/transcode.rdoc b/doc/transcode.rdoc<br/>new file mode 100644<br/>index 0000000000..4f15dff94a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/transcode.rdoc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/transcode.rdoc</a></div><div class='hunk'>@@ -0,0 +1,52 @@</div><div class='add'>+# :markup: ruby</div><div class='add'>+</div><div class='add'>+class String</div><div class='add'>+  # call-seq:</div><div class='add'>+  #   encode(dst_encoding = Encoding.default_internal, **enc_opts) -&gt; string</div><div class='add'>+  #   encode(dst_encoding, src_encoding, **enc_opts)   -&gt; string</div><div class='add'>+  #</div><div class='add'>+  # Returns a copy of +self+ transcoded as determined by +dst_encoding+.</div><div class='add'>+  # By default, raises an exception if +self+</div><div class='add'>+  # contains an invalid byte or a character not defined in +dst_encoding+;</div><div class='add'>+  # that behavior may be modified by encoding options; see below.</div><div class='add'>+  #</div><div class='add'>+  # With no arguments:</div><div class='add'>+  #</div><div class='add'>+  # - Uses the same encoding if &lt;tt&gt;Encoding.default_internal&lt;/tt&gt; is +nil+</div><div class='add'>+  #   (the default):</div><div class='add'>+  #</div><div class='add'>+  #     Encoding.default_internal # =&gt; nil</div><div class='add'>+  #     s = "Ruby\x99".force_encoding('Windows-1252')</div><div class='add'>+  #     s.encoding                # =&gt; #&lt;Encoding:Windows-1252&gt;</div><div class='add'>+  #     s.bytes                   # =&gt; [82, 117, 98, 121, 153]</div><div class='add'>+  #     t = s.encode              # =&gt; "Ruby\x99"</div><div class='add'>+  #     t.encoding                # =&gt; #&lt;Encoding:Windows-1252&gt;</div><div class='add'>+  #     t.bytes                   # =&gt; [82, 117, 98, 121, 226, 132, 162]</div><div class='add'>+  #</div><div class='add'>+  # - Otherwise, uses the encoding &lt;tt&gt;Encoding.default_internal&lt;/tt&gt;:</div><div class='add'>+  #</div><div class='add'>+  #     Encoding.default_internal = 'UTF-8'</div><div class='add'>+  #     t = s.encode              # =&gt; "Rubyâ„¢"</div><div class='add'>+  #     t.encoding                # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+  #</div><div class='add'>+  # With only argument +dst_encoding+ given, uses that encoding:</div><div class='add'>+  #</div><div class='add'>+  #   s = "Ruby\x99".force_encoding('Windows-1252')</div><div class='add'>+  #   s.encoding            # =&gt; #&lt;Encoding:Windows-1252&gt;</div><div class='add'>+  #   t = s.encode('UTF-8') # =&gt; "Rubyâ„¢"</div><div class='add'>+  #   t.encoding            # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+  #</div><div class='add'>+  # With arguments +dst_encoding+ and +src_encoding+ given,</div><div class='add'>+  # interprets +self+ using +src_encoding+, encodes the new string using +dst_encoding+:</div><div class='add'>+  #</div><div class='add'>+  #   s = "Ruby\x99"</div><div class='add'>+  #   t = s.encode('UTF-8', 'Windows-1252') # =&gt; "Rubyâ„¢"</div><div class='add'>+  #   t.encoding                            # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+  #</div><div class='add'>+  # Optional keyword arguments +enc_opts+ specify encoding options;</div><div class='add'>+  # see {Encoding Options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='add'>+  def encode(dst_encoding = Encoding.default_internal, **enc_opts)</div><div class='add'>+    # Pseudo code</div><div class='add'>+    Primitive.str_encode(...)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/doc/yjit/yjit.md b/doc/yjit/yjit.md<br/>new file mode 100644<br/>index 0000000000..67b2ffa5f0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/yjit/yjit.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/yjit/yjit.md</a></div><div class='hunk'>@@ -0,0 +1,417 @@</div><div class='add'>+&lt;p align="center"&gt;</div><div class='add'>+  &lt;a href="https://yjit.org/" target="_blank" rel="noopener noreferrer"&gt;</div><div class='add'>+    &lt;img src="https://user-images.githubusercontent.com/224488/131155756-aa8fb528-a813-4dfd-99ac-8785c3d5eed7.png" width="400"&gt;</div><div class='add'>+  &lt;/a&gt;</div><div class='add'>+&lt;/p&gt;</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+YJIT - Yet Another Ruby JIT</div><div class='add'>+===========================</div><div class='add'>+</div><div class='add'>+YJIT is a lightweight, minimalistic Ruby JIT built inside CRuby.</div><div class='add'>+It lazily compiles code using a Basic Block Versioning (BBV) architecture.</div><div class='add'>+The target use case is that of servers running Ruby on Rails.</div><div class='add'>+YJIT is currently supported for macOS, Linux and BSD on x86-64 and arm64/aarch64 CPUs.</div><div class='add'>+This project is open source and falls under the same license as CRuby.</div><div class='add'>+</div><div class='add'>+&lt;p align="center"&gt;&lt;b&gt;</div><div class='add'>+    If you're using YJIT in production, please</div><div class='add'>+    &lt;a href="mailto:maxime.chevalierboisvert@shopify.com"&gt;share your success stories with us!&lt;/a&gt;</div><div class='add'>+ &lt;/b&gt;&lt;/p&gt;</div><div class='add'>+</div><div class='add'>+If you wish to learn more about the approach taken, here are some conference talks and publications:</div><div class='add'>+- RubyKaigi 2022 keynote: [Stories from developing YJIT](https://www.youtube.com/watch?v=EMchdR9C8XM)</div><div class='add'>+- RubyKaigi 2022 talk: [Building a Lightweight IR and Backend for YJIT](https://www.youtube.com/watch?v=BbLGqTxTRp0)</div><div class='add'>+- RubyKaigi 2021 talk: [YJIT: Building a New JIT Compiler Inside CRuby](https://www.youtube.com/watch?v=PBVLf3yfMs8)</div><div class='add'>+- Blog post: [YJIT: Building a New JIT Compiler Inside CRuby](https://pointersgonewild.com/2021/06/02/yjit-building-a-new-jit-compiler-inside-cruby/)</div><div class='add'>+- VMIL 2021 paper: [YJIT: A Basic Block Versioning JIT Compiler for CRuby](https://dl.acm.org/doi/10.1145/3486606.3486781)</div><div class='add'>+- MoreVMs 2021 talk: [YJIT: Building a New JIT Compiler Inside CRuby](https://www.youtube.com/watch?v=vucLAqv7qpc)</div><div class='add'>+- ECOOP 2016 talk: [Interprocedural Type Specialization of JavaScript Programs Without Type Analysis](https://www.youtube.com/watch?v=sRNBY7Ss97A)</div><div class='add'>+- ECOOP 2016 paper: [Interprocedural Type Specialization of JavaScript Programs Without Type Analysis](https://drops.dagstuhl.de/opus/volltexte/2016/6101/pdf/LIPIcs-ECOOP-2016-7.pdf)</div><div class='add'>+- ECOOP 2015 talk: [Simple and Effective Type Check Removal through Lazy Basic Block Versioning](https://www.youtube.com/watch?v=S-aHBuoiYE0)</div><div class='add'>+- ECOOP 2015 paper: [Simple and Effective Type Check Removal through Lazy Basic Block Versioning](https://arxiv.org/pdf/1411.0352.pdf)</div><div class='add'>+</div><div class='add'>+To cite YJIT in your publications, please cite the VMIL 2021 paper:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+@inproceedings{yjit_vmil2021,</div><div class='add'>+author = {Chevalier-Boisvert, Maxime and Gibbs, Noah and Boussier, Jean and Wu, Si Xing (Alan) and Patterson, Aaron and Newton, Kevin and Hawthorn, John},</div><div class='add'>+title = {YJIT: A Basic Block Versioning JIT Compiler for CRuby},</div><div class='add'>+year = {2021},</div><div class='add'>+isbn = {9781450391092},</div><div class='add'>+publisher = {Association for Computing Machinery},</div><div class='add'>+address = {New York, NY, USA},</div><div class='add'>+url = {https://doi.org/10.1145/3486606.3486781},</div><div class='add'>+doi = {10.1145/3486606.3486781},</div><div class='add'>+booktitle = {Proceedings of the 13th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages},</div><div class='add'>+pages = {25â€“32},</div><div class='add'>+numpages = {8},</div><div class='add'>+keywords = {ruby, dynamically typed, compiler, optimization, just-in-time, bytecode},</div><div class='add'>+location = {Chicago, IL, USA},</div><div class='add'>+series = {VMIL 2021}</div><div class='add'>+}</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+## Current Limitations</div><div class='add'>+</div><div class='add'>+YJIT may not be suitable for certain applications. It currently only supports macOS and Linux on x86-64 and arm64/aarch64 CPUs. YJIT will use more memory than the Ruby interpreter because the JIT compiler needs to generate machine code in memory and maintain additional state information.</div><div class='add'>+You can change how much executable memory is allocated using [YJIT's command-line options](#command-line-options). There is a slight performance tradeoff because allocating less executable memory could result in the generated machine code being collected more often.</div><div class='add'>+</div><div class='add'>+## Installation</div><div class='add'>+</div><div class='add'>+### Requirements</div><div class='add'>+</div><div class='add'>+You will need to install:</div><div class='add'>+- A C compiler such as GCC or Clang</div><div class='add'>+- GNU Make and Autoconf</div><div class='add'>+- The Rust compiler `rustc` and Cargo (if you want to build in dev/debug mode)</div><div class='add'>+  - The Rust version must be [&gt;= 1.58.0](../../yjit/Cargo.toml).</div><div class='add'>+</div><div class='add'>+To install the Rust build toolchain, we suggest following the [recommended installation method][rust-install]. Rust also provides first class [support][editor-tools] for many source code editors.</div><div class='add'>+</div><div class='add'>+[rust-install]: https://www.rust-lang.org/tools/install</div><div class='add'>+[editor-tools]: https://www.rust-lang.org/tools</div><div class='add'>+</div><div class='add'>+### Building YJIT</div><div class='add'>+</div><div class='add'>+Start by cloning the `ruby/ruby` repository:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+git clone https://github.com/ruby/ruby yjit</div><div class='add'>+cd yjit</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+The YJIT `ruby` binary can be built with either GCC or Clang. It can be built either in dev (debug) mode or in release mode. For maximum performance, compile YJIT in release mode with GCC. More detailed build instructions are provided in the [Ruby README](https://github.com/ruby/ruby#how-to-build).</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+# Configure in release mode for maximum performance, build and install</div><div class='add'>+./autogen.sh</div><div class='add'>+./configure --enable-yjit --prefix=$HOME/.rubies/ruby-yjit --disable-install-doc</div><div class='add'>+make -j &amp;&amp; make install</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+or</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+# Configure in lower-performance dev (debug) mode for development, build and install</div><div class='add'>+./autogen.sh</div><div class='add'>+./configure --enable-yjit=dev --prefix=$HOME/.rubies/ruby-yjit --disable-install-doc</div><div class='add'>+make -j &amp;&amp; make install</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Dev mode includes extended YJIT statistics, but can be slow. For only statistics you can configure in stats mode:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+# Configure in extended-stats mode without slow runtime checks, build and install</div><div class='add'>+./autogen.sh</div><div class='add'>+./configure --enable-yjit=stats --prefix=$HOME/.rubies/ruby-yjit --disable-install-doc</div><div class='add'>+make -j &amp;&amp; make install</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+On macOS, you may need to specify where to find some libraries:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+# Install dependencies</div><div class='add'>+brew install openssl readline libyaml</div><div class='add'>+</div><div class='add'>+# Configure in dev (debug) mode for development, build and install</div><div class='add'>+./autogen.sh</div><div class='add'>+./configure --enable-yjit=dev --prefix=$HOME/.rubies/ruby-yjit --disable-install-doc --with-opt-dir="$(brew --prefix openssl):$(brew --prefix readline):$(brew --prefix libyaml)"</div><div class='add'>+make -j &amp;&amp; make install</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Typically configure will choose the default C compiler. To specify the C compiler, use</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+# Choosing a specific c compiler</div><div class='add'>+export CC=/path/to/my/chosen/c/compiler</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+before running `./configure`.</div><div class='add'>+</div><div class='add'>+You can test that YJIT works correctly by running:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+# Quick tests found in /bootstraptest</div><div class='add'>+make btest</div><div class='add'>+</div><div class='add'>+# Complete set of tests</div><div class='add'>+make -j test-all</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+## Usage</div><div class='add'>+</div><div class='add'>+### Examples</div><div class='add'>+</div><div class='add'>+Once YJIT is built, you can either use `./miniruby` from within your build directory, or switch to the YJIT version of `ruby`</div><div class='add'>+by using the `chruby` tool:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+chruby ruby-yjit</div><div class='add'>+ruby myscript.rb</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+You can dump statistics about compilation and execution by running YJIT with the `--yjit-stats` command-line option:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+./miniruby --yjit-stats myscript.rb</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+The machine code generated for a given method can be printed by adding `puts RubyVM::YJIT.disasm(method(:method_name))` to a Ruby script. Note that no code will be generated if the method is not compiled.</div><div class='add'>+</div><div class='add'>+### Command-Line Options</div><div class='add'>+</div><div class='add'>+YJIT supports all command-line options supported by upstream CRuby, but also adds a few YJIT-specific options:</div><div class='add'>+</div><div class='add'>+- `--yjit`: enable YJIT (disabled by default)</div><div class='add'>+- `--yjit-call-threshold=N`: number of calls after which YJIT begins to compile a function (default 30)</div><div class='add'>+- `--yjit-exec-mem-size=N`: size of the executable memory block to allocate, in MiB (default 64 MiB)</div><div class='add'>+- `--yjit-stats`: print statistics after the execution of a program (incurs a run-time cost)</div><div class='add'>+- `--yjit-trace-exits`: produce a Marshal dump of backtraces from specific exits. Automatically enables `--yjit-stats`</div><div class='add'>+</div><div class='add'>+Note that there is also an environment variable `RUBY_YJIT_ENABLE` which can be used to enable YJIT.</div><div class='add'>+This can be useful for some deployment scripts where specifying an extra command-line option to Ruby is not practical.</div><div class='add'>+</div><div class='add'>+### Benchmarking</div><div class='add'>+</div><div class='add'>+We have collected a set of benchmarks and implemented a simple benchmarking harness in the [yjit-bench](https://github.com/Shopify/yjit-bench) repository. This benchmarking harness is designed to disable CPU frequency scaling, set process affinity and disable address space randomization so that the variance between benchmarking runs will be as small as possible. Please kindly note that we are at an early stage in this project.</div><div class='add'>+</div><div class='add'>+## Performance Tips for Production Deployments</div><div class='add'>+</div><div class='add'>+While YJIT options default to what we think would work well for most workloads,</div><div class='add'>+they might not necessarily be the best configuration for your application.</div><div class='add'>+</div><div class='add'>+This section covers tips on improving YJIT performance in case YJIT does not</div><div class='add'>+speed up your application in production.</div><div class='add'>+</div><div class='add'>+### Increasing --yjit-exec-mem-size</div><div class='add'>+</div><div class='add'>+When JIT code size (`RubyVM::YJIT.runtime_stats[:code_region_size]`) reaches this value,</div><div class='add'>+YJIT triggers "code GC" that frees all JIT code and starts recompiling everything.</div><div class='add'>+Compiling code takes some time, so scheduling code GC too frequently slows down your application.</div><div class='add'>+Increasing `--yjit-exec-mem-size` may speed up your application if `RubyVM::YJIT.runtime_stats[:code_gc_count]` is not 0 or 1.</div><div class='add'>+</div><div class='add'>+### Running workers as long as possible</div><div class='add'>+</div><div class='add'>+It's helpful to call the same code as many times as possible before a process restarts.</div><div class='add'>+If a process is killed too frequently, the time taken for compiling methods may outweigh</div><div class='add'>+the speedup obtained by compiling them.</div><div class='add'>+</div><div class='add'>+You should monitor the number of requests each process has served.</div><div class='add'>+If you're periodically killing worker processes, e.g. with `unicorn-worker-killer` or `puma_worker_killer`,</div><div class='add'>+you may want to reduce the killing frequency or increase the limit.</div><div class='add'>+</div><div class='add'>+## Saving YJIT Memory Usage</div><div class='add'>+</div><div class='add'>+YJIT allocates memory for JIT code and metadata. Enabling YJIT generally results in more memory usage.</div><div class='add'>+</div><div class='add'>+This section goes over tips on minimizing YJIT memory usage in case it uses more than your capacity.</div><div class='add'>+</div><div class='add'>+### Increasing --yjit-call-threshold</div><div class='add'>+</div><div class='add'>+As of Ruby 3.2, `--yjit-call-threshold` defaults to 30. With this default, some applications end up</div><div class='add'>+compiling methods that are used only during the application boot. Increasing this option may help</div><div class='add'>+you reduce the size of JIT code and metadata. It's worth trying different values like `--yjit-call-threshold=100`.</div><div class='add'>+</div><div class='add'>+Note that increasing the value too much may result in compiling code too late.</div><div class='add'>+You should monitor how many requests each worker processes before it's restarted. For example,</div><div class='add'>+if each process only handles 1000 requests, `--yjit-call-threshold=1000` might be too large for your application.</div><div class='add'>+</div><div class='add'>+### Decreasing --yjit-exec-mem-size</div><div class='add'>+</div><div class='add'>+`--yjit-exec-mem-size` specifies the JIT code size, but YJIT also uses memory for its metadata,</div><div class='add'>+which often consumes more memory than JIT code. Generally, YJIT adds memory overhead by roughly</div><div class='add'>+3-4x of `--yjit-exec-mem-size` in production as of Ruby 3.2. You should multiply that by the number</div><div class='add'>+of worker processes to estimate the worst case memory overhead.</div><div class='add'>+</div><div class='add'>+Running code GC adds overhead, but it could be still faster than recovering from a whole process killed by OOM.</div><div class='add'>+</div><div class='add'>+## Code Optimization Tips</div><div class='add'>+</div><div class='add'>+This section contains tips on writing Ruby code that will run as fast as possible on YJIT. Some of this advice is based on current limitations of YJIT, while other advice is broadly applicable. It probably won't be practical to apply these tips everywhere in your codebase. You should ideally start by profiling your application using a tool such as [stackprof](https://github.com/tmm1/stackprof) so that you can determine which methods make up most of the execution time. You can then refactor the specific methods that make up the largest fractions of the execution time. We do not recommend modifying your entire codebase based on the current limitations of YJIT.</div><div class='add'>+</div><div class='add'>+- Avoid using `OpenStruct`</div><div class='add'>+- Avoid redefining basic integer operations (i.e. +, -, &lt;, &gt;, etc.)</div><div class='add'>+- Avoid redefining the meaning of `nil`, equality, etc.</div><div class='add'>+- Avoid allocating objects in the hot parts of your code</div><div class='add'>+- Minimize layers of indirection</div><div class='add'>+  - Avoid classes that wrap objects if you can</div><div class='add'>+  - Avoid methods that just call another method, trivial one liner methods</div><div class='add'>+- Try to write code so that the same variables always have the same type</div><div class='add'>+- Use `while` loops if you can, instead of C methods like `Array#each`</div><div class='add'>+  - This is not idiomatic Ruby, but could help in hot methods</div><div class='add'>+- CRuby method calls are costly. Avoid things such as methods that only return a value from a hash or return a constant.</div><div class='add'>+</div><div class='add'>+You can also use the `--yjit-stats` command-line option to see which bytecodes cause YJIT to exit, and refactor your code to avoid using these instructions in the hottest methods of your code.</div><div class='add'>+</div><div class='add'>+### Other Statistics</div><div class='add'>+</div><div class='add'>+If you run `ruby` with `--yjit --yjit-stats`, YJIT will track and return performance statistics in `RubyVM::YJIT.runtime_stats`.</div><div class='add'>+</div><div class='add'>+```rb</div><div class='add'>+$ RUBYOPT="--yjit --yjit-stats" irb</div><div class='add'>+irb(main):001:0&gt; RubyVM::YJIT.runtime_stats</div><div class='add'>+=&gt;</div><div class='add'>+{:inline_code_size=&gt;340745,</div><div class='add'>+ :outlined_code_size=&gt;297664,</div><div class='add'>+ :all_stats=&gt;true,</div><div class='add'>+ :exec_instruction=&gt;1547816,</div><div class='add'>+ :send_callsite_not_simple=&gt;7267,</div><div class='add'>+ :send_kw_splat=&gt;7,</div><div class='add'>+ :send_ivar_set_method=&gt;72,</div><div class='add'>+...</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Some of the counters include:</div><div class='add'>+</div><div class='add'>+* :exec_instruction - how many Ruby bytecode instructions have been executed</div><div class='add'>+* :binding_allocations - number of bindings allocated</div><div class='add'>+* :binding_set - number of variables set via a binding</div><div class='add'>+* :code_gc_count - number of garbage collections of compiled code since process start</div><div class='add'>+* :vm_insns_count - number of instructions executed by the Ruby interpreter</div><div class='add'>+* :compiled_iseq_count - number of bytecode sequences compiled</div><div class='add'>+* :inline_code_size - size in bytes of compiled YJIT blocks</div><div class='add'>+* :outline_code_size - size in bytes of YJIT error-handling compiled code</div><div class='add'>+* :side_exit_count - number of side exits taken at runtime</div><div class='add'>+* :total_exit_count - number of exits, including side exits, taken at runtime</div><div class='add'>+* :avg_len_in_yjit - avg. number of instructions in compiled blocks before exiting to interpreter</div><div class='add'>+</div><div class='add'>+Counters starting with "exit_" show reasons for YJIT code taking a side exit (return to the interpreter.) See yjit_hacking.md for more details.</div><div class='add'>+</div><div class='add'>+Performance counter names are not guaranteed to remain the same between Ruby versions. If you're curious what one does, it's usually best to search the source code for it &amp;mdash; but it may change in a later Ruby version.</div><div class='add'>+</div><div class='add'>+The printed text after a --yjit-stats run includes other information that may be named differently than the information in runtime_stats.</div><div class='add'>+</div><div class='add'>+## Contributing</div><div class='add'>+</div><div class='add'>+We welcome open source contributors. You should feel free to open new issues to report bugs or just to ask questions.</div><div class='add'>+Suggestions on how to make this readme file more helpful for new contributors are most welcome.</div><div class='add'>+</div><div class='add'>+Bug fixes and bug reports are very valuable to us. If you find a bug in YJIT, it's very possible be that nobody has reported it before,</div><div class='add'>+or that we don't have a good reproduction for it, so please open an issue and provide as much information as you can about your configuration and a description of how you encountered the problem. List the commands you used to run YJIT so that we can easily reproduce the issue on our end and investigate it. If you are able to produce a small program reproducing the error to help us track it down, that is very much appreciated as well.</div><div class='add'>+</div><div class='add'>+If you would like to contribute a large patch to YJIT, we suggest opening an issue or a discussion on this repository so that</div><div class='add'>+we can have an active discussion. A common problem is that sometimes people submit large pull requests to open source projects</div><div class='add'>+without prior communication, and we have to reject them because the work they implemented does not fit within the design of the</div><div class='add'>+project. We want to save you time and frustration, so please reach out and we can have a productive discussion as to how</div><div class='add'>+you can contribute things we will want to merge into YJIT.</div><div class='add'>+</div><div class='add'>+### Source Code Organization</div><div class='add'>+</div><div class='add'>+The YJIT source code is divided between:</div><div class='add'>+- `yjit.c`: code YJIT uses to interface with the rest of CRuby</div><div class='add'>+- `yjit.h`: C definitions YJIT exposes to the rest of the CRuby</div><div class='add'>+- `yjit.rb`: `YJIT` Ruby module that is exposed to Ruby</div><div class='add'>+- `yjit/src/asm/*`: in-memory assembler we use to generate machine code</div><div class='add'>+- `yjit/src/codegen.rs`: logic for translating Ruby bytecode to machine code</div><div class='add'>+- `yjit/src/core.rb`: basic block versioning logic, core structure of YJIT</div><div class='add'>+- `yjit/src/stats.rs`: gathering of run-time statistics</div><div class='add'>+- `yjit/src/options.rs`: handling of command-line options</div><div class='add'>+- `yjit/bindgen/src/main.rs`: C bindings exposed to the Rust codebase through bindgen</div><div class='add'>+- `yjit/src/cruby.rs`: C bindings manually exposed to the Rust codebase</div><div class='add'>+</div><div class='add'>+The core of CRuby's interpreter logic is found in:</div><div class='add'>+- `insns.def`: defines Ruby's bytecode instructions (gets compiled into `vm.inc`)</div><div class='add'>+- `vm_insnshelper.c`: logic used by Ruby's bytecode instructions</div><div class='add'>+- `vm_exec.c`: Ruby interpreter loop</div><div class='add'>+</div><div class='add'>+### Generating C bindings with bindgen</div><div class='add'>+</div><div class='add'>+In order to expose C functions to the Rust codebase, you will need to generate C bindings:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+CC=clang ./configure --enable-yjit=dev</div><div class='add'>+make -j yjit-bindgen</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+This uses the bindgen tools to generate/update `yjit/src/cruby_bindings.inc.rs` based on the</div><div class='add'>+bindings listed in `yjit/bindgen/src/main.rs`. Avoid manually editing this file</div><div class='add'>+as it could be automatically regenerated at a later time. If you need to manually add C bindings,</div><div class='add'>+add them to `yjit/cruby.rs` instead.</div><div class='add'>+</div><div class='add'>+### Coding &amp; Debugging Protips</div><div class='add'>+</div><div class='add'>+There are 3 test suites:</div><div class='add'>+- `make btest` (see `/bootstraptest`)</div><div class='add'>+- `make test-all`</div><div class='add'>+- `make test-spec`</div><div class='add'>+- `make check` runs all of the above</div><div class='add'>+</div><div class='add'>+The tests can be run in parallel like this:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+make -j test-all RUN_OPTS="--yjit-call-threshold=1"</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Or single-threaded like this, to more easily identify which specific test is failing:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+make test-all TESTOPTS=--verbose RUN_OPTS="--yjit-call-threshold=1"</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+To debug a single test in `test-all`:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+make test-all TESTS='test/-ext-/marshal/test_usrmarshal.rb' RUNRUBYOPT=--debugger=lldb RUN_OPTS="--yjit-call-threshold=1"</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+You can also run one specific test in `btest`:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+make btest BTESTS=bootstraptest/test_ractor.rb RUN_OPTS="--yjit-call-threshold=1"</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+There are shortcuts to run/debug your own test/repro in `test.rb`:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+make run  # runs ./miniruby test.rb</div><div class='add'>+make lldb # launches ./miniruby test.rb in lldb</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+You can use the Intel syntax for disassembly in LLDB, keeping it consistent with YJIT's disassembly:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+echo "settings set target.x86-disassembly-flavor intel" &gt;&gt; ~/.lldbinit</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+## Running x86 YJIT on Apple's Rosetta</div><div class='add'>+</div><div class='add'>+For development purposes, it is possible to run x86 YJIT on an Apple M1 via Rosetta.  You can find basic</div><div class='add'>+instructions below, but there are a few caveats listed further down.</div><div class='add'>+</div><div class='add'>+First, install Rosetta:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+$ softwareupdate --install-rosetta</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Now any command can be run with Rosetta via the `arch` command line tool.</div><div class='add'>+</div><div class='add'>+Then you can start your shell in an x86 environment:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+$ arch -x86_64 zsh</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+You can double check your current architecture via the `arch` command:</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+$ arch -x86_64 zsh</div><div class='add'>+$ arch</div><div class='add'>+i386</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+You may need to set the default target for `rustc` to x86-64, e.g.</div><div class='add'>+</div><div class='add'>+```sh</div><div class='add'>+$ rustup default stable-x86_64-apple-darwin</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+While in your i386 shell, install Cargo and Homebrew, then hack away!</div><div class='add'>+</div><div class='add'>+### Rosetta Caveats</div><div class='add'>+</div><div class='add'>+1. You must install a version of Homebrew for each architecture</div><div class='add'>+2. Cargo will install in $HOME/.cargo by default, and I don't know a good way to change architectures after install</div><div class='add'>+</div><div class='add'>+If you use Fish shell you can [read this link](https://tenderlovemaking.com/2022/01/07/homebrew-rosetta-and-ruby.html) for information on making the dev environment easier.</div><div class='head'>diff --git a/doc/yjit/yjit_hacking.md b/doc/yjit/yjit_hacking.md<br/>new file mode 100644<br/>index 0000000000..4c4d742b73<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/yjit/yjit_hacking.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>doc/yjit/yjit_hacking.md</a></div><div class='hunk'>@@ -0,0 +1,75 @@</div><div class='add'>+# YJIT Hacking</div><div class='add'>+</div><div class='add'>+## Code Generation and Assembly Language</div><div class='add'>+</div><div class='add'>+YJITâ€™s basic purpose is to take ISEQs and generate machine code.</div><div class='add'>+</div><div class='add'>+Documentation on each Ruby bytecode can be found in insns.def.</div><div class='add'>+</div><div class='add'>+YJIT uses those bytecodes as the â€œBasic Blocksâ€ in Lazy Basic Block Versioning (LBBV.) For more deep details of LBBV, see yjit.md in this directory.</div><div class='add'>+</div><div class='add'>+Current YJIT has a simple assembler as a backend. Each method that generates code does it by emitting machine code:</div><div class='add'>+</div><div class='add'>+```</div><div class='add'>+# Excerpt of yjit_gen_exit() from yjit_codegen.c, Sept 2021</div><div class='add'>+// Generate an exit to return to the interpreter</div><div class='add'>+static uint32_t</div><div class='add'>+yjit_gen_exit(VALUE *exit_pc, ctx_t *ctx, codeblock_t *cb)</div><div class='add'>+{</div><div class='add'>+    const uint32_t code_pos = cb-&gt;write_pos;</div><div class='add'>+</div><div class='add'>+    ADD_COMMENT(cb, "exit to interpreter");</div><div class='add'>+</div><div class='add'>+    // Generate the code to exit to the interpreters</div><div class='add'>+    // Write the adjusted SP back into the CFP</div><div class='add'>+    if (ctx-&gt;sp_offset != 0) {</div><div class='add'>+        x86opnd_t stack_pointer = ctx_sp_opnd(ctx, 0);</div><div class='add'>+        lea(cb, REG_SP, stack_pointer);</div><div class='add'>+        mov(cb, member_opnd(REG_CFP, rb_control_frame_t, sp), REG_SP);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // Update CFP-&gt;PC</div><div class='add'>+    mov(cb, RAX, const_ptr_opnd(exit_pc));</div><div class='add'>+    mov(cb, member_opnd(REG_CFP, rb_control_frame_t, pc), RAX);</div><div class='add'>+```</div><div class='add'>+</div><div class='add'>+Later there will be a more complex backend.</div><div class='add'>+</div><div class='add'>+## Code Generation vs Code Execution</div><div class='add'>+</div><div class='add'>+When you see lea() call above (â€œload effective address,â€) itâ€™s not running the LEA x86 instruction. Itâ€™s generating an LEA instruction to the codeblock pointer in the first argument. It will execute that instruction later, when the codeblock gets executed.</div><div class='add'>+</div><div class='add'>+This is subtle because YJIT will often wait to compile the method until youâ€™re about to run it -- thatâ€™s when it knows the most about what types of arguments the method will receive. So itâ€™s a compile-time instruction, but often it will defer compile-time until just barely before runtime.</div><div class='add'>+</div><div class='add'>+The ctx structure tracks what is known at compile time about the arguments being passed into the Ruby bytecode. Often YJIT will â€œpeekâ€ at an expected type before it generates machine code.</div><div class='add'>+</div><div class='add'>+## Inlined and Outlined Code</div><div class='add'>+</div><div class='add'>+When YJIT is generating code, it needs a code pointer. In many cases it needs two, usually called â€œcbâ€ (codeblock) and â€œocbâ€ (out-of-line codeblock.)</div><div class='add'>+</div><div class='add'>+cb is for â€œinlinedâ€ normal code and ocb is for â€œoutlineâ€ code such as exits. Inlined code is normal generated code for Ruby operations, while outlined code is for unusual and error conditions, such as encountering an unexpected parameter type and exiting to the interpreter.</div><div class='add'>+</div><div class='add'>+The purpose of the outlined code block is to keep things we believe are going to be infrequent somewhere else. That way we can keep the code in the inline block more linear and compact. Linear code, with as few branches as possible, is more easily predicted by the CPU. An exception or unsupported operation will cause YJIT to generate outlined code to handle it.</div><div class='add'>+</div><div class='add'>+If you search for ocb in yjit_codegen.c, you can see some places where out-of-line code is generated.</div><div class='add'>+</div><div class='add'>+YJIT statistics are only gathered when RUBY_DEBUG or YJIT_STATS is true. In some cases the code to increment YJIT statistics will be generated out-of-line, especially if those statistics are gathered when a side exit happens.</div><div class='add'>+</div><div class='add'>+## Statistics and Comments</div><div class='add'>+</div><div class='add'>+When RUBY_DEBUG is defined to a true value, YJIT will emit comments into the generated machine code. This can make disassemblies a lot more readable. When RUBY_DEBUG or YJIT_STATS is defined and stats are active (--yjit-stats or export YJIT_STATS=1), code will be generated to collect statistics during the run, and a report will be printed when the process exits.</div><div class='add'>+</div><div class='add'>+## Entering and Exiting the Interpreter</div><div class='add'>+</div><div class='add'>+YJIT wonâ€™t generate machine code for an ISEQ until itâ€™s been run a certain number of times (10 by default.) Then, the next time the interpreter would call that ISEQ, it will call the generated machine code version instead. If YJIT hits an unexpected or unsupported operation, it will return to the normal interpreter.</div><div class='add'>+</div><div class='add'>+If YJIT returns to the interpreter, the behaviour will be correct but slower. YJIT only optimises part of some operations - for instance, YJIT will not optimise a BMETHOD call yet.</div><div class='add'>+</div><div class='add'>+When the interpreter calls to a YJIT-optimised method again, control will return to YJITâ€™s generated machine code. The more time thatâ€™s spent in YJIT-generated code (â€œratio in YJIT,â€) the more CPU time YJIT can save with its optimisations.</div><div class='add'>+</div><div class='add'>+## Side Exits</div><div class='add'>+</div><div class='add'>+When YJIT has compiled an ISEQ and is running it later, sometimes it will hit an unexpected condition. It might see a parameter of a different type than before, or square-brackets might be used on a hash when they were first used on an array. In those cases, the generated code will contain a call to return to the interpreter at runtime, called a â€œside exit.â€</div><div class='add'>+</div><div class='add'>+Side exits are generated as out-of-line code.</div><div class='add'>+</div><div class='head'>diff --git a/enc/Makefile.in b/enc/Makefile.in<br/>index 8385236494..9d0c367134 100644<br/>--- a/<a href='/ruby.git/tree/enc/Makefile.in?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/Makefile.in</a><br/>+++ b/<a href='/ruby.git/tree/enc/Makefile.in?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/Makefile.in</a></div><div class='hunk'>@@ -1,4 +1,5 @@</div><div class='ctx'> V = 0</div><div class='add'>+V0 = $(V:0=)</div><div class='ctx'> Q1 = $(V:1=)</div><div class='ctx'> Q = $(Q1:0=@)</div><div class='ctx'> ECHO1 = $(V:1=@@NULLCMD@)</div><div class='hunk'>@@ -11,6 +12,7 @@ exec_prefix = @exec_prefix@</div><div class='ctx'> libdir = @libdir@</div><div class='ctx'> top_srcdir = $(encsrcdir:/enc=)</div><div class='ctx'> srcdir = $(top_srcdir)</div><div class='add'>+tooldir = $(top_srcdir)/tool</div><div class='ctx'> arch = @arch@</div><div class='ctx'> EXTOUT = @EXTOUT@</div><div class='ctx'> hdrdir = $(srcdir)/include</div><div class='hunk'>@@ -20,6 +22,7 @@ TRANSSODIR = $(ENCSODIR)/trans</div><div class='ctx'> DLEXT = @DLEXT@</div><div class='ctx'> OBJEXT = @OBJEXT@</div><div class='ctx'> LIBEXT = @LIBEXT@</div><div class='add'>+EXEEXT = @EXEEXT@</div><div class='ctx'> TIMESTAMPDIR  = $(EXTOUT)/.timestamp</div><div class='ctx'> ENC_TRANS_D   = $(TIMESTAMPDIR)/.enc-trans.time</div><div class='ctx'> ENC_TRANS_SO_D = $(TIMESTAMPDIR)/.enc-trans.so.time</div><div class='hunk'>@@ -33,6 +36,7 @@ RUBY_SO_NAME = @RUBY_SO_NAME@</div><div class='ctx'> LIBRUBY = @LIBRUBY@</div><div class='ctx'> LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@</div><div class='ctx'> LIBRUBYARG_STATIC = $(LIBRUBYARG_SHARED)</div><div class='add'>+BUILTRUBY = $(topdir)/miniruby$(EXEEXT)</div><div class='ctx'> </div><div class='ctx'> empty =</div><div class='ctx'> AR = @AR@</div><div class='hunk'>@@ -47,7 +51,7 @@ optflags = @optflags@</div><div class='ctx'> debugflags = @debugflags@</div><div class='ctx'> warnflags = @warnflags@</div><div class='ctx'> CCDLFLAGS = @CCDLFLAGS@</div><div class='del'>-INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(top_srcdir)</div><div class='add'>+INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(top_srcdir) @incflags@</div><div class='ctx'> DEFS = @DEFS@</div><div class='ctx'> CPPFLAGS = @CPPFLAGS@ -DONIG_ENC_REGISTER=rb_enc_register</div><div class='ctx'> LDFLAGS = @LDFLAGS@</div><div class='head'>diff --git a/enc/ascii.c b/enc/ascii.c<br/>index 8b32c414fe..ae7db97f25 100644<br/>--- a/<a href='/ruby.git/tree/enc/ascii.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/ascii.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/ascii.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/ascii.c</a></div><div class='hunk'>@@ -33,8 +33,8 @@</div><div class='ctx'> # include "encindex.h"</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef ENCINDEX_ASCII</div><div class='del'>-# define ENCINDEX_ASCII 0</div><div class='add'>+#ifndef ENCINDEX_ASCII_8BIT</div><div class='add'>+# define ENCINDEX_ASCII_8BIT 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> OnigEncodingDefine(ascii, ASCII) = {</div><div class='hunk'>@@ -55,12 +55,14 @@ OnigEncodingDefine(ascii, ASCII) = {</div><div class='ctx'>   onigenc_single_byte_left_adjust_char_head,</div><div class='ctx'>   onigenc_always_true_is_allowed_reverse_match,</div><div class='ctx'>   onigenc_single_byte_ascii_only_case_map,</div><div class='del'>-  ENCINDEX_ASCII,</div><div class='add'>+  ENCINDEX_ASCII_8BIT,</div><div class='ctx'>   ONIGENC_FLAG_NONE,</div><div class='ctx'> };</div><div class='ctx'> ENC_ALIAS("BINARY", "ASCII-8BIT")</div><div class='ctx'> ENC_REPLICATE("IBM437", "ASCII-8BIT")</div><div class='ctx'> ENC_ALIAS("CP437", "IBM437")</div><div class='add'>+ENC_REPLICATE("IBM720", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP720", "IBM720")</div><div class='ctx'> ENC_REPLICATE("IBM737", "ASCII-8BIT")</div><div class='ctx'> ENC_ALIAS("CP737", "IBM737")</div><div class='ctx'> ENC_REPLICATE("IBM775", "ASCII-8BIT")</div><div class='head'>diff --git a/enc/cesu_8.c b/enc/cesu_8.c<br/>new file mode 100644<br/>index 0000000000..75f62df280<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/cesu_8.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/cesu_8.c</a></div><div class='hunk'>@@ -0,0 +1,469 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  cesu_8.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  K.Kosako  &lt;sndgk393 AT ybb DOT ne DOT jp&gt;</div><div class='add'>+ * All rights reserved.</div><div class='add'>+ *</div><div class='add'>+ * Redistribution and use in source and binary forms, with or without</div><div class='add'>+ * modification, are permitted provided that the following conditions</div><div class='add'>+ * are met:</div><div class='add'>+ * 1. Redistributions of source code must retain the above copyright</div><div class='add'>+ *    notice, this list of conditions and the following disclaimer.</div><div class='add'>+ * 2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+ *    notice, this list of conditions and the following disclaimer in the</div><div class='add'>+ *    documentation and/or other materials provided with the distribution.</div><div class='add'>+ *</div><div class='add'>+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</div><div class='add'>+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+ * SUCH DAMAGE.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "regenc.h"</div><div class='add'>+#ifdef RUBY</div><div class='add'>+# include "encindex.h"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define USE_INVALID_CODE_SCHEME</div><div class='add'>+</div><div class='add'>+#ifdef USE_INVALID_CODE_SCHEME</div><div class='add'>+/* virtual codepoint values for invalid encoding byte 0xfe and 0xff */</div><div class='add'>+# define INVALID_CODE_FE  0xfffffffe</div><div class='add'>+# define INVALID_CODE_FF  0xffffffff</div><div class='add'>+#endif</div><div class='add'>+#define VALID_CODE_LIMIT  0x0010ffff</div><div class='add'>+</div><div class='add'>+#define utf8_islead(c)     ((UChar )((c) &amp; 0xc0) != 0x80)</div><div class='add'>+#define utf16_is_high_surrogate(v) ((v &gt;&gt; 10) == 0x36)</div><div class='add'>+#define utf16_is_low_surrogate(v)  ((v &gt;&gt; 10) == 0x37)</div><div class='add'>+</div><div class='add'>+static const int EncLen_CESU8[] = {</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef enum {</div><div class='add'>+  FAILURE = -2,</div><div class='add'>+  ACCEPT,</div><div class='add'>+  S0, S1, S2, S3,</div><div class='add'>+  S4, S5, S6, S7</div><div class='add'>+} state_t;</div><div class='add'>+#define A ACCEPT</div><div class='add'>+#define F FAILURE</div><div class='add'>+static const signed char trans[][0x100] = {</div><div class='add'>+  { /* S0   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* c */ F, F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 3,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S1   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 9 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S2   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S3   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S4   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* a */ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,</div><div class='add'>+    /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S5   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,</div><div class='add'>+    /* 9 */ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,</div><div class='add'>+    /* a */ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,</div><div class='add'>+    /* b */ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S6   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, 7, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S7   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+};</div><div class='add'>+#undef A</div><div class='add'>+#undef F</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  int firstbyte = *p++;</div><div class='add'>+  state_t s;</div><div class='add'>+  s = trans[0][firstbyte];</div><div class='add'>+  if (s &lt; 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1) :</div><div class='add'>+                                  ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_CESU8[firstbyte]-1);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  if (s &lt; 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(2) :</div><div class='add'>+                                  ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+</div><div class='add'>+  if (p == e) {</div><div class='add'>+      int len = EncLen_CESU8[firstbyte];</div><div class='add'>+      if (s == 4) { /* S4 is CESU-8's surrogate pair; len is 6 */</div><div class='add'>+          len = 6;</div><div class='add'>+      }</div><div class='add'>+      return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(len-2);</div><div class='add'>+  }</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  if (s &lt; 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(3) :</div><div class='add'>+                                  ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(3);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  if (s &lt; 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(4) :</div><div class='add'>+                                  ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(2);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  if (s &lt; 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(5) :</div><div class='add'>+                                  ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(1);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(6) :</div><div class='add'>+                       ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_mbc_newline(const UChar* p, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  if (p &lt; end) {</div><div class='add'>+    if (*p == 0x0a) return 1;</div><div class='add'>+</div><div class='add'>+#ifdef USE_UNICODE_ALL_LINE_TERMINATORS</div><div class='add'>+    if (*p == 0x0b || *p == 0x0c || *p == 0x0d) return 1;</div><div class='add'>+    if (p + 1 &lt; end) {</div><div class='add'>+      if (*(p+1) == 0x85 &amp;&amp; *p == 0xc2) /* U+0085 */</div><div class='add'>+	return 1;</div><div class='add'>+      if (p + 2 &lt; end) {</div><div class='add'>+	if ((*(p+2) == 0xa8 || *(p+2) == 0xa9)</div><div class='add'>+	    &amp;&amp; *(p+1) == 0x80 &amp;&amp; *p == 0xe2)  /* U+2028, U+2029 */</div><div class='add'>+	  return 1;</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+utf8_decode_3byte_sequence(const UChar* p)</div><div class='add'>+{</div><div class='add'>+    return ((p[0] &amp; 0xF) &lt;&lt; 12) | ((p[1] &amp; 0x3f) &lt;&lt; 6) | (p[2] &amp; 0x3f);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static OnigCodePoint</div><div class='add'>+mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  int len;</div><div class='add'>+</div><div class='add'>+  len = mbc_enc_len(p, end, enc);</div><div class='add'>+  switch (len) {</div><div class='add'>+    case 1:</div><div class='add'>+      return *p;</div><div class='add'>+    case 2:</div><div class='add'>+      return ((p[0] &amp; 0x1F)  &lt;&lt; 6) | (p[1] &amp; 0x3f);</div><div class='add'>+    case 3:</div><div class='add'>+      return utf8_decode_3byte_sequence(p);</div><div class='add'>+    case 6:</div><div class='add'>+      {</div><div class='add'>+          int high = utf8_decode_3byte_sequence(p);</div><div class='add'>+          int low  = utf8_decode_3byte_sequence(p + 3);</div><div class='add'>+          return ((high &amp; 0x03ff) &lt;&lt; 10) + (low &amp; 0x03ff) + 0x10000;</div><div class='add'>+      }</div><div class='add'>+  }</div><div class='add'>+#ifdef USE_INVALID_CODE_SCHEME</div><div class='add'>+  if (*p &gt; 0xfd) {</div><div class='add'>+      return ((*p == 0xfe) ? INVALID_CODE_FE : INVALID_CODE_FF);</div><div class='add'>+  }</div><div class='add'>+#endif</div><div class='add'>+  return (OnigCodePoint )*p;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if      ((code &amp; 0xffffff80) == 0) return 1;</div><div class='add'>+  else if ((code &amp; 0xfffff800) == 0) return 2;</div><div class='add'>+  else if ((code &amp; 0xffff0000) == 0) return 3;</div><div class='add'>+  else if (code &lt;= VALID_CODE_LIMIT) return 6;</div><div class='add'>+#ifdef USE_INVALID_CODE_SCHEME</div><div class='add'>+  else if (code == INVALID_CODE_FE) return 1;</div><div class='add'>+  else if (code == INVALID_CODE_FF) return 1;</div><div class='add'>+#endif</div><div class='add'>+  else</div><div class='add'>+    return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+#define UTF8_TRAILS(code, shift) (UChar )((((code) &gt;&gt; (shift)) &amp; 0x3f) | 0x80)</div><div class='add'>+#define UTF8_TRAIL0(code)        (UChar )(((code) &amp; 0x3f) | 0x80)</div><div class='add'>+</div><div class='add'>+  if ((code &amp; 0xffffff80) == 0) {</div><div class='add'>+    *buf = (UChar )code;</div><div class='add'>+    return 1;</div><div class='add'>+  }</div><div class='add'>+  else {</div><div class='add'>+    UChar *p = buf;</div><div class='add'>+</div><div class='add'>+    if ((code &amp; 0xfffff800) == 0) {</div><div class='add'>+      *p++ = (UChar )(((code&gt;&gt;6)&amp; 0x1f) | 0xc0);</div><div class='add'>+    }</div><div class='add'>+    else if ((code &amp; 0xffff0000) == 0) {</div><div class='add'>+      *p++ = (UChar )(((code&gt;&gt;12) &amp; 0x0f) | 0xe0);</div><div class='add'>+      *p++ = UTF8_TRAILS(code, 6);</div><div class='add'>+    }</div><div class='add'>+    else if (code &lt;= VALID_CODE_LIMIT) {</div><div class='add'>+      unsigned int high = (code &gt;&gt; 10) + 0xD7C0;</div><div class='add'>+      code = (code &amp; 0x3FF) + 0xDC00;</div><div class='add'>+      *p++ = (UChar )(((high&gt;&gt;12) &amp; 0x0f) | 0xe0);</div><div class='add'>+      *p++ = UTF8_TRAILS(high, 6);</div><div class='add'>+      *p++ = UTF8_TRAIL0(high);</div><div class='add'>+      *p++ = (UChar )(((code&gt;&gt;12) &amp; 0x0f) | 0xe0);</div><div class='add'>+      *p++ = UTF8_TRAILS(code, 6);</div><div class='add'>+    }</div><div class='add'>+#ifdef USE_INVALID_CODE_SCHEME</div><div class='add'>+    else if (code == INVALID_CODE_FE) {</div><div class='add'>+      *p = 0xfe;</div><div class='add'>+      return 1;</div><div class='add'>+    }</div><div class='add'>+    else if (code == INVALID_CODE_FF) {</div><div class='add'>+      *p = 0xff;</div><div class='add'>+      return 1;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    else {</div><div class='add'>+      return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    *p++ = UTF8_TRAIL0(code);</div><div class='add'>+    return (int )(p - buf);</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag, const UChar** pp,</div><div class='add'>+	      const UChar* end, UChar* fold, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (ONIGENC_IS_MBC_ASCII(p)) {</div><div class='add'>+#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI</div><div class='add'>+    if ((flag &amp; ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) {</div><div class='add'>+      if (*p == 0x49) {</div><div class='add'>+	*fold++ = 0xc4;</div><div class='add'>+	*fold   = 0xb1;</div><div class='add'>+	(*pp)++;</div><div class='add'>+	return 2;</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    *fold = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p);</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 1; /* return byte length of converted char to lower */</div><div class='add'>+  }</div><div class='add'>+  else {</div><div class='add'>+    return onigenc_unicode_mbc_case_fold(enc, flag, pp, end, fold);</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_ctype_code_range(OnigCtype ctype, OnigCodePoint *sb_out,</div><div class='add'>+		     const OnigCodePoint* ranges[], OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  *sb_out = 0x80;</div><div class='add'>+  return onigenc_unicode_ctype_code_range(ctype, ranges);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static UChar*</div><div class='add'>+left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar *p;</div><div class='add'>+</div><div class='add'>+  if (s &lt;= start) return (UChar* )s;</div><div class='add'>+  p = s;</div><div class='add'>+</div><div class='add'>+  while (!utf8_islead(*p) &amp;&amp; p &gt; start) p--;</div><div class='add'>+</div><div class='add'>+  if (p &gt; start &amp;&amp; s - p == 2 &amp;&amp; utf16_is_low_surrogate(utf8_decode_3byte_sequence(p))) {</div><div class='add'>+    const UChar *p_surrogate_pair = p - 1;</div><div class='add'>+    while (!utf8_islead(*p_surrogate_pair) &amp;&amp; p_surrogate_pair &gt; start) p_surrogate_pair--;</div><div class='add'>+    if (p - p_surrogate_pair == 3 &amp;&amp; utf16_is_high_surrogate(utf8_decode_3byte_sequence(p_surrogate_pair))) {</div><div class='add'>+      return (UChar* )p_surrogate_pair;</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+  return (UChar* )p;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+    const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[],</div><div class='add'>+    OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_unicode_get_case_fold_codes_by_str(enc, flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(cesu_8, CESU_8) = {</div><div class='add'>+  mbc_enc_len,</div><div class='add'>+  "CESU-8",     /* name */</div><div class='add'>+  6,           /* max byte length */</div><div class='add'>+  1,           /* min byte length */</div><div class='add'>+  is_mbc_newline,</div><div class='add'>+  mbc_to_code,</div><div class='add'>+  code_to_mbclen,</div><div class='add'>+  code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  onigenc_unicode_apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_unicode_property_name_to_ctype,</div><div class='add'>+  onigenc_unicode_is_code_ctype,</div><div class='add'>+  get_ctype_code_range,</div><div class='add'>+  left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match,</div><div class='add'>+  onigenc_unicode_case_map,</div><div class='add'>+  ENCINDEX_UTF_8,</div><div class='add'>+  ONIGENC_FLAG_UNICODE,</div><div class='add'>+};</div><div class='head'>diff --git a/enc/cp949.c b/enc/cp949.c<br/>index bd2c8d21a4..1600d0cd5b 100644<br/>--- a/<a href='/ruby.git/tree/enc/cp949.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/cp949.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/cp949.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/cp949.c</a></div><div class='hunk'>@@ -218,5 +218,5 @@ OnigEncodingDefine(cp949, CP949) = {</div><div class='ctx'> /*</div><div class='ctx'>  * Name: CP949</div><div class='ctx'>  * Link: http://www.microsoft.com/globaldev/reference/dbcs/949.mspx</div><div class='del'>- * Link: http://en.wikipedia.org/wiki/EUC-KR#EUC-KR</div><div class='add'>+ * Link: https://en.wikipedia.org/wiki/EUC-KR#EUC-KR</div><div class='ctx'>  */</div><div class='head'>diff --git a/enc/depend b/enc/depend<br/>index b9e8e3ba8b..973ad93010 100644<br/>--- a/<a href='/ruby.git/tree/enc/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/depend</a><br/>+++ b/<a href='/ruby.git/tree/enc/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/depend</a></div><div class='hunk'>@@ -18,6 +18,7 @@</div><div class='ctx'> % else</div><div class='ctx'> %   pathrep = proc {|path| path}</div><div class='ctx'> % end</div><div class='add'>+% ignore_error = $ignore_error</div><div class='ctx'> </div><div class='ctx'> VPATH = &lt;%=%w[$(arch_hdrdir)/ruby $(hdrdir)/ruby $(srcdir) $(encsrcdir)].join(CONFIG["PATH_SEPARATOR"])%&gt;</div><div class='ctx'> LIBPATH = &lt;%=libpathflag($DEFLIBPATH)%&gt;</div><div class='hunk'>@@ -73,12 +74,12 @@ $(LIBENC): $(ENCOBJS)</div><div class='ctx'> 	@$(RM) $@</div><div class='ctx'> 	$(ECHO) linking statically-linked encoding library $@</div><div class='ctx'> 	$(Q) $(AR) $(ARFLAGS)$@ $(ENCOBJS)</div><div class='del'>-	@-$(RANLIB) $@ 2&gt; /dev/null || true</div><div class='add'>+	@-$(RANLIB) $@&lt;%=ignore_error%&gt;</div><div class='ctx'> $(LIBTRANS): $(TRANSOBJS)</div><div class='ctx'> 	@$(RM) $@</div><div class='ctx'> 	$(ECHO) linking statically-linked transcoder library $@</div><div class='ctx'> 	$(Q) $(AR) $(ARFLAGS)$@ $(TRANSOBJS)</div><div class='del'>-	@-$(RANLIB) $@ 2&gt; /dev/null || true</div><div class='add'>+	@-$(RANLIB) $@&lt;%=ignore_error%&gt;</div><div class='ctx'> </div><div class='ctx'> enc trans $(ENCSOS) $(TRANSSOS): config.status</div><div class='ctx'> </div><div class='hunk'>@@ -97,7 +98,7 @@ $(ENCSOS) $(TRANSSOS): $(ENC_TRANS_SO_D)</div><div class='ctx'> </div><div class='ctx'> &lt;%=transvpath_prefix%&gt;.trans&lt;%=transvpath_prefix%&gt;.c:</div><div class='ctx'> 	$(ECHO) generating table from $@</div><div class='del'>-	$(Q)$(MINIRUBY) "$(srcdir)/tool/transcode-tblgen.rb" -vo "$@" "$&lt;"</div><div class='add'>+	$(Q)$(MINIRUBY) "$(tooldir)/transcode-tblgen.rb" -v$(V0:1=v)o "$@" "$&lt;"</div><div class='ctx'> </div><div class='ctx'> % unless ENCS.empty? or TRANS.empty?</div><div class='ctx'> </div><div class='hunk'>@@ -113,7 +114,7 @@ enc/&lt;%=e%&gt;.$(OBJEXT): &lt;%=deps.map {|n| rule_subst % n}.join(' ')%&gt;</div><div class='ctx'> %     if src.empty?</div><div class='ctx'> %       src = trans.scan(/^\s*transcode_tblgen_\w+\s+[\'\"]([^\'\"]*)/).flatten.map{|c|c.downcase+"-tbl.rb"}</div><div class='ctx'> %     end</div><div class='del'>-&lt;%=transvpath % "#{e}.c"%&gt;: &lt;%= src.map {|s| transvpath % "#{s}"}.join(" ")%&gt; $(srcdir)/tool/transcode-tblgen.rb</div><div class='add'>+&lt;%=transvpath % "#{e}.c"%&gt;: &lt;%= src.map {|s| transvpath % "#{s}"}.join(" ")%&gt; $(tooldir)/transcode-tblgen.rb</div><div class='ctx'> %   end</div><div class='ctx'> </div><div class='ctx'> % end</div><div class='hunk'>@@ -156,268 +157,4755 @@ clean:</div><div class='ctx'> % %w[$(ENCSOS) $(LIBENC) $(ENCOBJS) $(ENCCLEANOBJS) $(ENCCLEANLIBS) $(TRANSSOS) $(LIBTRANS) $(TRANSOBJS) $(TRANSCLEANOBJS) $(TRANSCLEANLIBS) $(ENC_TRANS_D) $(ENC_TRANS_SO_D)].each do |clean|</div><div class='ctx'> 	$(Q)$(RM) &lt;%=pathrep[clean]%&gt;</div><div class='ctx'> % end</div><div class='del'>-% @ignore_error = $nmake ? '' : ' 2&gt; /dev/null || true'</div><div class='ctx'> % unless inplace</div><div class='ctx'> 	$(Q)$(RM) enc/unicode/*/casefold.h enc/unicode/*/name2ctype.h</div><div class='ctx'> 	$(Q)$(RM) enc/jis/props.h</div><div class='del'>-	-$(Q)$(RMDIR) enc/unicode&lt;%=@ignore_error%&gt;</div><div class='add'>+	-$(Q)$(RMDIR) enc/unicode&lt;%=ignore_error%&gt;</div><div class='ctx'> % end</div><div class='ctx'> % workdirs.reverse_each do|d|</div><div class='del'>-	-$(Q)$(RMDIR) &lt;%=pathrep[d]%&gt;&lt;%=@ignore_error%&gt;</div><div class='add'>+	-$(Q)$(RMDIR) &lt;%=pathrep[d]%&gt;&lt;%=ignore_error%&gt;</div><div class='ctx'> % end</div><div class='ctx'> </div><div class='ctx'> clean-srcs:</div><div class='ctx'> 	$(Q)$(RM) &lt;%=pathrep['$(TRANSCSRCS)']%&gt;</div><div class='del'>-	-$(Q)$(RMDIR) &lt;%=pathrep['enc/trans']%&gt;&lt;%=@ignore_error%&gt;</div><div class='add'>+	-$(Q)$(RMDIR) &lt;%=pathrep['enc/trans']%&gt;&lt;%=ignore_error%&gt;</div><div class='ctx'> 	$(Q)$(RM) enc/unicode/*/casefold.h enc/unicode/*/name2ctype.h</div><div class='ctx'> 	$(Q)$(RM) enc/jis/props.h</div><div class='del'>-	-$(Q)$(RMDIR) &lt;%=pathrep['enc/unicode']%&gt;&lt;%=@ignore_error%&gt;</div><div class='del'>-	-$(Q)$(RMDIR) &lt;%=pathrep['enc/props']%&gt;&lt;%=@ignore_error%&gt;</div><div class='del'>-	-$(Q)$(RMDIR) &lt;%=pathrep['enc']%&gt;&lt;%=@ignore_error%&gt;</div><div class='add'>+	-$(Q)$(RMDIR) &lt;%=pathrep['enc/unicode']%&gt;&lt;%=ignore_error%&gt;</div><div class='add'>+	-$(Q)$(RMDIR) &lt;%=pathrep['enc/props']%&gt;&lt;%=ignore_error%&gt;</div><div class='add'>+	-$(Q)$(RMDIR) &lt;%=pathrep['enc']%&gt;&lt;%=ignore_error%&gt;</div><div class='ctx'> </div><div class='ctx'> &lt;%# vim: set ft=eruby noexpandtab ts=8 sw=2 : -%&gt;</div><div class='ctx'> </div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='add'>+enc/ascii.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/ascii.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/ascii.$(OBJEXT): $(top_srcdir)/encindex.h</div><div class='ctx'> enc/ascii.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/ascii.$(OBJEXT): assert.h</div><div class='add'>+enc/ascii.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/ascii.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/ascii.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/ascii.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/ascii.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/ascii.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/ascii.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/ascii.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/ascii.$(OBJEXT): config.h</div><div class='ctx'> enc/ascii.$(OBJEXT): defines.h</div><div class='ctx'> enc/ascii.$(OBJEXT): enc/ascii.c</div><div class='add'>+enc/ascii.$(OBJEXT): encoding.h</div><div class='add'>+enc/ascii.$(OBJEXT): intern.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/config.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/encoding/coderange.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/encoding/ctype.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/encoding/encoding.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/encoding/pathname.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/encoding/re.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/encoding/sprintf.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/encoding/string.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/encoding/symbol.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/encoding/transcode.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/error.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/event.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/method.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/module.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/value.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/ascii.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/ascii.$(OBJEXT): missing.h</div><div class='ctx'> enc/ascii.$(OBJEXT): onigmo.h</div><div class='ctx'> enc/ascii.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/ascii.$(OBJEXT): st.h</div><div class='add'>+enc/ascii.$(OBJEXT): subst.h</div><div class='add'>+enc/big5.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/big5.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/big5.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/big5.$(OBJEXT): assert.h</div><div class='add'>+enc/big5.$(OBJEXT): backward.h</div><div class='add'>+enc/big5.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/big5.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/big5.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/big5.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/big5.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/big5.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/big5.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/big5.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/big5.$(OBJEXT): config.h</div><div class='ctx'> enc/big5.$(OBJEXT): defines.h</div><div class='ctx'> enc/big5.$(OBJEXT): enc/big5.c</div><div class='add'>+enc/big5.$(OBJEXT): intern.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/config.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/error.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/event.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/method.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/module.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/value.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/big5.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/big5.$(OBJEXT): missing.h</div><div class='ctx'> enc/big5.$(OBJEXT): onigmo.h</div><div class='del'>-enc/big5.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/big5.$(OBJEXT): st.h</div><div class='add'>+enc/big5.$(OBJEXT): subst.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): $(top_srcdir)/encindex.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): assert.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): backward.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): backward/2/stdarg.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): config.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): defines.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): enc/cesu_8.c</div><div class='add'>+enc/cesu_8.$(OBJEXT): encoding.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): intern.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/config.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/encoding/coderange.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/encoding/ctype.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/encoding/encoding.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/encoding/pathname.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/encoding/re.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/encoding/sprintf.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/encoding/string.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/encoding/symbol.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/encoding/transcode.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/error.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/event.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/method.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/module.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/value.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): internal/xmalloc.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): missing.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): onigmo.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): st.h</div><div class='add'>+enc/cesu_8.$(OBJEXT): subst.h</div><div class='add'>+enc/cp949.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/cp949.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/cp949.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/cp949.$(OBJEXT): assert.h</div><div class='add'>+enc/cp949.$(OBJEXT): backward.h</div><div class='add'>+enc/cp949.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/cp949.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/cp949.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/cp949.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/cp949.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/cp949.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/cp949.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/cp949.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/cp949.$(OBJEXT): config.h</div><div class='ctx'> enc/cp949.$(OBJEXT): defines.h</div><div class='ctx'> enc/cp949.$(OBJEXT): enc/cp949.c</div><div class='add'>+enc/cp949.$(OBJEXT): intern.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/config.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/error.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/event.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/method.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/module.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/value.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/cp949.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/cp949.$(OBJEXT): missing.h</div><div class='ctx'> enc/cp949.$(OBJEXT): onigmo.h</div><div class='del'>-enc/cp949.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/cp949.$(OBJEXT): st.h</div><div class='add'>+enc/cp949.$(OBJEXT): subst.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> enc/emacs_mule.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/emacs_mule.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='del'>-enc/emacs_mule.$(OBJEXT): $(top_srcdir)/regint.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): assert.h</div><div class='ctx'> enc/emacs_mule.$(OBJEXT): backward.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/emacs_mule.$(OBJEXT): config.h</div><div class='ctx'> enc/emacs_mule.$(OBJEXT): defines.h</div><div class='ctx'> enc/emacs_mule.$(OBJEXT): enc/emacs_mule.c</div><div class='ctx'> enc/emacs_mule.$(OBJEXT): intern.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/config.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/error.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/event.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/method.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/module.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/value.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/emacs_mule.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/emacs_mule.$(OBJEXT): missing.h</div><div class='ctx'> enc/emacs_mule.$(OBJEXT): onigmo.h</div><div class='del'>-enc/emacs_mule.$(OBJEXT): oniguruma.h</div><div class='ctx'> enc/emacs_mule.$(OBJEXT): st.h</div><div class='ctx'> enc/emacs_mule.$(OBJEXT): subst.h</div><div class='ctx'> enc/encdb.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='del'>-enc/encdb.$(OBJEXT): $(top_srcdir)/include/ruby.h</div><div class='del'>-enc/encdb.$(OBJEXT): $(top_srcdir)/internal.h</div><div class='add'>+enc/encdb.$(OBJEXT): $(top_srcdir)/internal/encoding.h</div><div class='add'>+enc/encdb.$(OBJEXT): assert.h</div><div class='ctx'> enc/encdb.$(OBJEXT): backward.h</div><div class='add'>+enc/encdb.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/encdb.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/encdb.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/encdb.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/encdb.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/encdb.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/encdb.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/encdb.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/encdb.$(OBJEXT): config.h</div><div class='ctx'> enc/encdb.$(OBJEXT): defines.h</div><div class='ctx'> enc/encdb.$(OBJEXT): enc/encdb.c</div><div class='ctx'> enc/encdb.$(OBJEXT): encdb.h</div><div class='ctx'> enc/encdb.$(OBJEXT): encoding.h</div><div class='ctx'> enc/encdb.$(OBJEXT): intern.h</div><div class='del'>-enc/encdb.$(OBJEXT): io.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/config.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/encoding/coderange.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/encoding/ctype.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/encoding/encoding.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/encoding/pathname.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/encoding/re.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/encoding/sprintf.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/encoding/string.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/encoding/symbol.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/encoding/transcode.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/error.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/event.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/method.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/module.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/value.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/encdb.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/encdb.$(OBJEXT): missing.h</div><div class='ctx'> enc/encdb.$(OBJEXT): onigmo.h</div><div class='ctx'> enc/encdb.$(OBJEXT): oniguruma.h</div><div class='ctx'> enc/encdb.$(OBJEXT): st.h</div><div class='ctx'> enc/encdb.$(OBJEXT): subst.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> enc/euc_jp.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/euc_jp.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='del'>-enc/euc_jp.$(OBJEXT): $(top_srcdir)/regint.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): assert.h</div><div class='ctx'> enc/euc_jp.$(OBJEXT): backward.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/euc_jp.$(OBJEXT): config.h</div><div class='ctx'> enc/euc_jp.$(OBJEXT): defines.h</div><div class='ctx'> enc/euc_jp.$(OBJEXT): enc/euc_jp.c</div><div class='ctx'> enc/euc_jp.$(OBJEXT): enc/jis/props.h</div><div class='ctx'> enc/euc_jp.$(OBJEXT): enc/jis/props.kwd</div><div class='ctx'> enc/euc_jp.$(OBJEXT): intern.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/config.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/error.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/event.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/method.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/module.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/value.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/euc_jp.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/euc_jp.$(OBJEXT): missing.h</div><div class='ctx'> enc/euc_jp.$(OBJEXT): onigmo.h</div><div class='del'>-enc/euc_jp.$(OBJEXT): oniguruma.h</div><div class='ctx'> enc/euc_jp.$(OBJEXT): st.h</div><div class='ctx'> enc/euc_jp.$(OBJEXT): subst.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/euc_kr.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): assert.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): backward.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/euc_kr.$(OBJEXT): config.h</div><div class='ctx'> enc/euc_kr.$(OBJEXT): defines.h</div><div class='ctx'> enc/euc_kr.$(OBJEXT): enc/euc_kr.c</div><div class='add'>+enc/euc_kr.$(OBJEXT): intern.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/config.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/error.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/event.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/method.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/module.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/value.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/euc_kr.$(OBJEXT): missing.h</div><div class='ctx'> enc/euc_kr.$(OBJEXT): onigmo.h</div><div class='del'>-enc/euc_kr.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): st.h</div><div class='add'>+enc/euc_kr.$(OBJEXT): subst.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/euc_tw.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): assert.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): backward.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/euc_tw.$(OBJEXT): config.h</div><div class='ctx'> enc/euc_tw.$(OBJEXT): defines.h</div><div class='ctx'> enc/euc_tw.$(OBJEXT): enc/euc_tw.c</div><div class='add'>+enc/euc_tw.$(OBJEXT): intern.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/config.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/error.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/event.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/method.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/module.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/value.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/euc_tw.$(OBJEXT): missing.h</div><div class='ctx'> enc/euc_tw.$(OBJEXT): onigmo.h</div><div class='del'>-enc/euc_tw.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): st.h</div><div class='add'>+enc/euc_tw.$(OBJEXT): subst.h</div><div class='add'>+enc/gb18030.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/gb18030.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/gb18030.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/gb18030.$(OBJEXT): assert.h</div><div class='add'>+enc/gb18030.$(OBJEXT): backward.h</div><div class='add'>+enc/gb18030.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/gb18030.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/gb18030.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/gb18030.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/gb18030.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/gb18030.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/gb18030.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/gb18030.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/gb18030.$(OBJEXT): config.h</div><div class='ctx'> enc/gb18030.$(OBJEXT): defines.h</div><div class='ctx'> enc/gb18030.$(OBJEXT): enc/gb18030.c</div><div class='add'>+enc/gb18030.$(OBJEXT): intern.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/config.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/error.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/event.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/method.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/module.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/value.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/gb18030.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/gb18030.$(OBJEXT): missing.h</div><div class='ctx'> enc/gb18030.$(OBJEXT): onigmo.h</div><div class='del'>-enc/gb18030.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/gb18030.$(OBJEXT): st.h</div><div class='add'>+enc/gb18030.$(OBJEXT): subst.h</div><div class='add'>+enc/gb2312.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> enc/gb2312.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/gb2312.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/gb2312.$(OBJEXT): assert.h</div><div class='ctx'> enc/gb2312.$(OBJEXT): backward.h</div><div class='add'>+enc/gb2312.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/gb2312.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/gb2312.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/gb2312.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/gb2312.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/gb2312.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/gb2312.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/gb2312.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/gb2312.$(OBJEXT): config.h</div><div class='ctx'> enc/gb2312.$(OBJEXT): defines.h</div><div class='ctx'> enc/gb2312.$(OBJEXT): enc/gb2312.c</div><div class='del'>-enc/gb2312.$(OBJEXT): encoding.h</div><div class='ctx'> enc/gb2312.$(OBJEXT): intern.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/config.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/error.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/event.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/method.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/module.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/value.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/gb2312.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/gb2312.$(OBJEXT): missing.h</div><div class='ctx'> enc/gb2312.$(OBJEXT): onigmo.h</div><div class='del'>-enc/gb2312.$(OBJEXT): oniguruma.h</div><div class='ctx'> enc/gb2312.$(OBJEXT): st.h</div><div class='ctx'> enc/gb2312.$(OBJEXT): subst.h</div><div class='add'>+enc/gbk.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/gbk.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/gbk.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/gbk.$(OBJEXT): assert.h</div><div class='add'>+enc/gbk.$(OBJEXT): backward.h</div><div class='add'>+enc/gbk.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/gbk.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/gbk.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/gbk.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/gbk.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/gbk.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/gbk.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/gbk.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/gbk.$(OBJEXT): config.h</div><div class='ctx'> enc/gbk.$(OBJEXT): defines.h</div><div class='ctx'> enc/gbk.$(OBJEXT): enc/gbk.c</div><div class='add'>+enc/gbk.$(OBJEXT): intern.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/config.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/error.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/event.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/method.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/module.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/value.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/gbk.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/gbk.$(OBJEXT): missing.h</div><div class='ctx'> enc/gbk.$(OBJEXT): onigmo.h</div><div class='del'>-enc/gbk.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/gbk.$(OBJEXT): st.h</div><div class='add'>+enc/gbk.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_1.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_1.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_1.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_1.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/iso_8859_1.$(OBJEXT): enc/iso_8859_1.c</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_1.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_1.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_1.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_1.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_10.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_10.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_10.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_10.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/iso_8859_10.$(OBJEXT): enc/iso_8859_10.c</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_10.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_10.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_10.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_10.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_11.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_11.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_11.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_11.$(OBJEXT): enc/iso_8859_11.c</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_11.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_11.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_11.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_11.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_13.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_13.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_13.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_13.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/iso_8859_13.$(OBJEXT): enc/iso_8859_13.c</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_13.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_13.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_13.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_13.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_14.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_14.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_14.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_14.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/iso_8859_14.$(OBJEXT): enc/iso_8859_14.c</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_14.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_14.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_14.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_14.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_15.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_15.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_15.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_15.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/iso_8859_15.$(OBJEXT): enc/iso_8859_15.c</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_15.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_15.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_15.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_15.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_16.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_16.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_16.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_16.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/iso_8859_16.$(OBJEXT): enc/iso_8859_16.c</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_16.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_16.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_16.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_16.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_2.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_2.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_2.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_2.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/iso_8859_2.$(OBJEXT): enc/iso_8859_2.c</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_2.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_2.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_2.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_2.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_3.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_3.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_3.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_3.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/iso_8859_3.$(OBJEXT): enc/iso_8859_3.c</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_3.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_3.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_3.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_3.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_4.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_4.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_4.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_4.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/iso_8859_4.$(OBJEXT): enc/iso_8859_4.c</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_4.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_4.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_4.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_4.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_5.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_5.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_5.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_5.$(OBJEXT): enc/iso_8859_5.c</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_5.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_5.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_5.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_5.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_6.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_6.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_6.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_6.$(OBJEXT): enc/iso_8859_6.c</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_6.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_6.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_6.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_6.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_7.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_7.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_7.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_7.$(OBJEXT): enc/iso_8859_7.c</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_7.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_7.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_7.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_7.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_8.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_8.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_8.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_8.$(OBJEXT): enc/iso_8859_8.c</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_8.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_8.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_8.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_8.$(OBJEXT): subst.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/iso_8859_9.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): assert.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): backward.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/iso_8859_9.$(OBJEXT): config.h</div><div class='ctx'> enc/iso_8859_9.$(OBJEXT): defines.h</div><div class='ctx'> enc/iso_8859_9.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/iso_8859_9.$(OBJEXT): enc/iso_8859_9.c</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): intern.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/config.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/error.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/event.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/method.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/module.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/value.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/iso_8859_9.$(OBJEXT): missing.h</div><div class='ctx'> enc/iso_8859_9.$(OBJEXT): onigmo.h</div><div class='del'>-enc/iso_8859_9.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): st.h</div><div class='add'>+enc/iso_8859_9.$(OBJEXT): subst.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/koi8_r.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): assert.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): backward.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/koi8_r.$(OBJEXT): config.h</div><div class='ctx'> enc/koi8_r.$(OBJEXT): defines.h</div><div class='ctx'> enc/koi8_r.$(OBJEXT): enc/koi8_r.c</div><div class='add'>+enc/koi8_r.$(OBJEXT): intern.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/config.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/error.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/event.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/method.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/module.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/value.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/koi8_r.$(OBJEXT): missing.h</div><div class='ctx'> enc/koi8_r.$(OBJEXT): onigmo.h</div><div class='del'>-enc/koi8_r.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): st.h</div><div class='add'>+enc/koi8_r.$(OBJEXT): subst.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/koi8_u.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): assert.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): backward.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/koi8_u.$(OBJEXT): config.h</div><div class='ctx'> enc/koi8_u.$(OBJEXT): defines.h</div><div class='ctx'> enc/koi8_u.$(OBJEXT): enc/koi8_u.c</div><div class='add'>+enc/koi8_u.$(OBJEXT): intern.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/config.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/error.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/event.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/method.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/module.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/value.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/koi8_u.$(OBJEXT): missing.h</div><div class='ctx'> enc/koi8_u.$(OBJEXT): onigmo.h</div><div class='del'>-enc/koi8_u.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): st.h</div><div class='add'>+enc/koi8_u.$(OBJEXT): subst.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> enc/shift_jis.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/shift_jis.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='del'>-enc/shift_jis.$(OBJEXT): $(top_srcdir)/regint.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): assert.h</div><div class='ctx'> enc/shift_jis.$(OBJEXT): backward.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/shift_jis.$(OBJEXT): config.h</div><div class='ctx'> enc/shift_jis.$(OBJEXT): defines.h</div><div class='ctx'> enc/shift_jis.$(OBJEXT): enc/jis/props.h</div><div class='hunk'>@@ -425,334 +4913,5936 @@ enc/shift_jis.$(OBJEXT): enc/jis/props.kwd</div><div class='ctx'> enc/shift_jis.$(OBJEXT): enc/shift_jis.c</div><div class='ctx'> enc/shift_jis.$(OBJEXT): enc/shift_jis.h</div><div class='ctx'> enc/shift_jis.$(OBJEXT): intern.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/config.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/error.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/event.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/method.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/module.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/value.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/shift_jis.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/shift_jis.$(OBJEXT): missing.h</div><div class='ctx'> enc/shift_jis.$(OBJEXT): onigmo.h</div><div class='del'>-enc/shift_jis.$(OBJEXT): oniguruma.h</div><div class='ctx'> enc/shift_jis.$(OBJEXT): st.h</div><div class='ctx'> enc/shift_jis.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/big5.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/big5.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/big5.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/big5.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/big5.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/big5.$(OBJEXT): enc/trans/big5.c</div><div class='ctx'> enc/trans/big5.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/big5.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/big5.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/big5.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/big5.$(OBJEXT): subst.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): assert.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): backward/2/stdarg.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): config.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): defines.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): enc/trans/cesu_8.c</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): internal/xmalloc.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): missing.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): st.h</div><div class='add'>+enc/trans/cesu_8.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/chinese.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/chinese.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/chinese.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/chinese.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/chinese.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/chinese.$(OBJEXT): enc/trans/chinese.c</div><div class='ctx'> enc/trans/chinese.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/chinese.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/chinese.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/chinese.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/chinese.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/ebcdic.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/ebcdic.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/ebcdic.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/ebcdic.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/ebcdic.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/ebcdic.$(OBJEXT): enc/trans/ebcdic.c</div><div class='ctx'> enc/trans/ebcdic.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/ebcdic.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/ebcdic.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/ebcdic.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/ebcdic.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/emoji.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/emoji.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/emoji.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/emoji.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/emoji.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/emoji.$(OBJEXT): enc/trans/emoji.c</div><div class='ctx'> enc/trans/emoji.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/emoji.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/emoji.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/emoji.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/emoji.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/emoji_iso2022_kddi.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/emoji_iso2022_kddi.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/emoji_iso2022_kddi.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/emoji_iso2022_kddi.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/emoji_iso2022_kddi.$(OBJEXT): enc/trans/emoji_iso2022_kddi.c</div><div class='ctx'> enc/trans/emoji_iso2022_kddi.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/emoji_iso2022_kddi.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/emoji_iso2022_kddi.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/emoji_iso2022_kddi.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/emoji_iso2022_kddi.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/emoji_sjis_docomo.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/emoji_sjis_docomo.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/emoji_sjis_docomo.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/emoji_sjis_docomo.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/emoji_sjis_docomo.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/emoji_sjis_docomo.$(OBJEXT): enc/trans/emoji_sjis_docomo.c</div><div class='ctx'> enc/trans/emoji_sjis_docomo.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/emoji_sjis_docomo.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/emoji_sjis_docomo.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/emoji_sjis_docomo.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/emoji_sjis_docomo.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/emoji_sjis_kddi.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/emoji_sjis_kddi.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/emoji_sjis_kddi.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/emoji_sjis_kddi.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/emoji_sjis_kddi.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/emoji_sjis_kddi.$(OBJEXT): enc/trans/emoji_sjis_kddi.c</div><div class='ctx'> enc/trans/emoji_sjis_kddi.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/emoji_sjis_kddi.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/emoji_sjis_kddi.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/emoji_sjis_kddi.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/emoji_sjis_kddi.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/emoji_sjis_softbank.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/emoji_sjis_softbank.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/emoji_sjis_softbank.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/emoji_sjis_softbank.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/emoji_sjis_softbank.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/emoji_sjis_softbank.$(OBJEXT): enc/trans/emoji_sjis_softbank.c</div><div class='ctx'> enc/trans/emoji_sjis_softbank.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/emoji_sjis_softbank.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/emoji_sjis_softbank.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/emoji_sjis_softbank.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/emoji_sjis_softbank.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/escape.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/escape.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/escape.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/escape.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/escape.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/escape.$(OBJEXT): enc/trans/escape.c</div><div class='ctx'> enc/trans/escape.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/escape.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/escape.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/escape.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/escape.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/gb18030.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/gb18030.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/gb18030.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/gb18030.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/gb18030.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/gb18030.$(OBJEXT): enc/trans/gb18030.c</div><div class='ctx'> enc/trans/gb18030.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/gb18030.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/gb18030.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/gb18030.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/gb18030.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/gbk.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/gbk.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/gbk.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/gbk.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/gbk.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/gbk.$(OBJEXT): enc/trans/gbk.c</div><div class='ctx'> enc/trans/gbk.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/gbk.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/gbk.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/gbk.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/gbk.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/iso2022.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/iso2022.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/iso2022.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/iso2022.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/iso2022.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/iso2022.$(OBJEXT): enc/trans/iso2022.c</div><div class='ctx'> enc/trans/iso2022.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/nonstring.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/iso2022.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/iso2022.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/iso2022.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/iso2022.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/japanese.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/japanese.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/japanese.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/japanese.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/japanese.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/japanese.$(OBJEXT): enc/trans/japanese.c</div><div class='ctx'> enc/trans/japanese.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/japanese.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/japanese.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/japanese.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/japanese.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/japanese_euc.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/japanese_euc.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/japanese_euc.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/japanese_euc.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/japanese_euc.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/japanese_euc.$(OBJEXT): enc/trans/japanese_euc.c</div><div class='ctx'> enc/trans/japanese_euc.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/japanese_euc.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/japanese_euc.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/japanese_euc.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/japanese_euc.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/japanese_sjis.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/japanese_sjis.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/japanese_sjis.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/japanese_sjis.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/japanese_sjis.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/japanese_sjis.$(OBJEXT): enc/trans/japanese_sjis.c</div><div class='ctx'> enc/trans/japanese_sjis.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/japanese_sjis.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/japanese_sjis.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/japanese_sjis.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/japanese_sjis.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/korean.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/korean.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/korean.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/korean.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/korean.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/korean.$(OBJEXT): enc/trans/korean.c</div><div class='ctx'> enc/trans/korean.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/korean.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/korean.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/korean.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/korean.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): assert.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): enc/trans/newline.c</div><div class='ctx'> enc/trans/newline.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/newline.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/newline.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/single_byte.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/single_byte.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/single_byte.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/single_byte.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/single_byte.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/single_byte.$(OBJEXT): enc/trans/single_byte.c</div><div class='ctx'> enc/trans/single_byte.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/single_byte.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/single_byte.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/single_byte.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/single_byte.$(OBJEXT): subst.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): assert.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): backward/2/stdarg.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): config.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/transdb.$(OBJEXT): enc/trans/transdb.c</div><div class='add'>+enc/trans/transdb.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): internal/xmalloc.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): missing.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): st.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/transdb.$(OBJEXT): transdb.h</div><div class='ctx'> enc/trans/utf8_mac.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/utf8_mac.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/utf8_mac.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/utf8_mac.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/utf8_mac.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/utf8_mac.$(OBJEXT): enc/trans/utf8_mac.c</div><div class='ctx'> enc/trans/utf8_mac.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/utf8_mac.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/utf8_mac.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/utf8_mac.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/utf8_mac.$(OBJEXT): subst.h</div><div class='ctx'> enc/trans/utf_16_32.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/trans/utf_16_32.$(OBJEXT): $(top_srcdir)/transcode_data.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): assert.h</div><div class='ctx'> enc/trans/utf_16_32.$(OBJEXT): backward.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/trans/utf_16_32.$(OBJEXT): config.h</div><div class='ctx'> enc/trans/utf_16_32.$(OBJEXT): defines.h</div><div class='ctx'> enc/trans/utf_16_32.$(OBJEXT): enc/trans/utf_16_32.c</div><div class='ctx'> enc/trans/utf_16_32.$(OBJEXT): intern.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/config.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/error.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/event.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/method.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/module.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/value.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/trans/utf_16_32.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/trans/utf_16_32.$(OBJEXT): missing.h</div><div class='ctx'> enc/trans/utf_16_32.$(OBJEXT): st.h</div><div class='ctx'> enc/trans/utf_16_32.$(OBJEXT): subst.h</div><div class='ctx'> enc/unicode.$(OBJEXT): $(UNICODE_HDR_DIR)/casefold.h</div><div class='ctx'> enc/unicode.$(OBJEXT): $(UNICODE_HDR_DIR)/name2ctype.h</div><div class='add'>+enc/unicode.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> enc/unicode.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/unicode.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='ctx'> enc/unicode.$(OBJEXT): $(top_srcdir)/regint.h</div><div class='add'>+enc/unicode.$(OBJEXT): assert.h</div><div class='add'>+enc/unicode.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/unicode.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/unicode.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/unicode.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/unicode.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/unicode.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/unicode.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/unicode.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/unicode.$(OBJEXT): config.h</div><div class='ctx'> enc/unicode.$(OBJEXT): defines.h</div><div class='ctx'> enc/unicode.$(OBJEXT): enc/unicode.c</div><div class='del'>-enc/unicode.$(OBJEXT): enc/unicode/10.0.0/casefold.h</div><div class='del'>-enc/unicode.$(OBJEXT): enc/unicode/10.0.0/name2ctype.h</div><div class='ctx'> enc/unicode.$(OBJEXT): intern.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/config.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/error.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/event.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/method.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/module.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/value.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/unicode.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/unicode.$(OBJEXT): missing.h</div><div class='ctx'> enc/unicode.$(OBJEXT): onigmo.h</div><div class='del'>-enc/unicode.$(OBJEXT): oniguruma.h</div><div class='ctx'> enc/unicode.$(OBJEXT): st.h</div><div class='ctx'> enc/unicode.$(OBJEXT): subst.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): $(top_srcdir)/encindex.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): assert.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): config.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): defines.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): enc/us_ascii.c</div><div class='add'>+enc/us_ascii.$(OBJEXT): encoding.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): intern.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/config.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/encoding/coderange.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/encoding/ctype.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/encoding/encoding.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/encoding/pathname.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/encoding/re.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/encoding/sprintf.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/encoding/string.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/encoding/symbol.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/encoding/transcode.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/error.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/event.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/method.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/module.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/value.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): missing.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): onigmo.h</div><div class='ctx'> enc/us_ascii.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): st.h</div><div class='add'>+enc/us_ascii.$(OBJEXT): subst.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/utf_16be.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): assert.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): backward.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/utf_16be.$(OBJEXT): config.h</div><div class='ctx'> enc/utf_16be.$(OBJEXT): defines.h</div><div class='ctx'> enc/utf_16be.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/utf_16be.$(OBJEXT): enc/utf_16be.c</div><div class='add'>+enc/utf_16be.$(OBJEXT): intern.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/config.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/error.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/event.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/method.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/module.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/value.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/utf_16be.$(OBJEXT): missing.h</div><div class='ctx'> enc/utf_16be.$(OBJEXT): onigmo.h</div><div class='del'>-enc/utf_16be.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): st.h</div><div class='add'>+enc/utf_16be.$(OBJEXT): subst.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/utf_16le.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): assert.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): backward.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/utf_16le.$(OBJEXT): config.h</div><div class='ctx'> enc/utf_16le.$(OBJEXT): defines.h</div><div class='ctx'> enc/utf_16le.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/utf_16le.$(OBJEXT): enc/utf_16le.c</div><div class='add'>+enc/utf_16le.$(OBJEXT): intern.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/config.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/error.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/event.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/method.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/module.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/value.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/utf_16le.$(OBJEXT): missing.h</div><div class='ctx'> enc/utf_16le.$(OBJEXT): onigmo.h</div><div class='del'>-enc/utf_16le.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): st.h</div><div class='add'>+enc/utf_16le.$(OBJEXT): subst.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/utf_32be.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): assert.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): backward.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/utf_32be.$(OBJEXT): config.h</div><div class='ctx'> enc/utf_32be.$(OBJEXT): defines.h</div><div class='ctx'> enc/utf_32be.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/utf_32be.$(OBJEXT): enc/utf_32be.c</div><div class='add'>+enc/utf_32be.$(OBJEXT): intern.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/config.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/error.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/event.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/method.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/module.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/value.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/utf_32be.$(OBJEXT): missing.h</div><div class='ctx'> enc/utf_32be.$(OBJEXT): onigmo.h</div><div class='del'>-enc/utf_32be.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): st.h</div><div class='add'>+enc/utf_32be.$(OBJEXT): subst.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/utf_32le.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): assert.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): backward.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/utf_32le.$(OBJEXT): config.h</div><div class='ctx'> enc/utf_32le.$(OBJEXT): defines.h</div><div class='ctx'> enc/utf_32le.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/utf_32le.$(OBJEXT): enc/utf_32le.c</div><div class='add'>+enc/utf_32le.$(OBJEXT): intern.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/config.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/error.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/event.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/method.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/module.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/value.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/utf_32le.$(OBJEXT): missing.h</div><div class='ctx'> enc/utf_32le.$(OBJEXT): onigmo.h</div><div class='del'>-enc/utf_32le.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): st.h</div><div class='add'>+enc/utf_32le.$(OBJEXT): subst.h</div><div class='add'>+enc/utf_8.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/utf_8.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): $(top_srcdir)/encindex.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): assert.h</div><div class='add'>+enc/utf_8.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/utf_8.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/utf_8.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/utf_8.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/utf_8.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/utf_8.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/utf_8.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/utf_8.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): config.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): defines.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): enc/utf_8.c</div><div class='add'>+enc/utf_8.$(OBJEXT): encoding.h</div><div class='add'>+enc/utf_8.$(OBJEXT): intern.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/config.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/encoding/coderange.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/encoding/ctype.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/encoding/encoding.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/encoding/pathname.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/encoding/re.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/encoding/sprintf.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/encoding/string.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/encoding/symbol.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/encoding/transcode.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/error.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/event.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/method.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/module.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/value.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/utf_8.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): missing.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): onigmo.h</div><div class='ctx'> enc/utf_8.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/utf_8.$(OBJEXT): st.h</div><div class='add'>+enc/utf_8.$(OBJEXT): subst.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/windows_1250.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): assert.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): backward.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/windows_1250.$(OBJEXT): config.h</div><div class='ctx'> enc/windows_1250.$(OBJEXT): defines.h</div><div class='ctx'> enc/windows_1250.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/windows_1250.$(OBJEXT): enc/windows_1250.c</div><div class='add'>+enc/windows_1250.$(OBJEXT): intern.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/config.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/error.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/event.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/method.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/module.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/value.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/windows_1250.$(OBJEXT): missing.h</div><div class='ctx'> enc/windows_1250.$(OBJEXT): onigmo.h</div><div class='del'>-enc/windows_1250.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): st.h</div><div class='add'>+enc/windows_1250.$(OBJEXT): subst.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/windows_1251.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): assert.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): backward.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/windows_1251.$(OBJEXT): config.h</div><div class='ctx'> enc/windows_1251.$(OBJEXT): defines.h</div><div class='ctx'> enc/windows_1251.$(OBJEXT): enc/windows_1251.c</div><div class='add'>+enc/windows_1251.$(OBJEXT): intern.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/config.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/error.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/event.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/method.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/module.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/value.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/windows_1251.$(OBJEXT): missing.h</div><div class='ctx'> enc/windows_1251.$(OBJEXT): onigmo.h</div><div class='del'>-enc/windows_1251.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): st.h</div><div class='add'>+enc/windows_1251.$(OBJEXT): subst.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/windows_1252.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): assert.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): backward.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/windows_1252.$(OBJEXT): config.h</div><div class='ctx'> enc/windows_1252.$(OBJEXT): defines.h</div><div class='ctx'> enc/windows_1252.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/windows_1252.$(OBJEXT): enc/windows_1252.c</div><div class='add'>+enc/windows_1252.$(OBJEXT): intern.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/config.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/error.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/event.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/method.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/module.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/value.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/windows_1252.$(OBJEXT): missing.h</div><div class='ctx'> enc/windows_1252.$(OBJEXT): onigmo.h</div><div class='del'>-enc/windows_1252.$(OBJEXT): oniguruma.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): st.h</div><div class='add'>+enc/windows_1252.$(OBJEXT): subst.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/windows_1253.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): assert.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): backward.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/windows_1253.$(OBJEXT): config.h</div><div class='ctx'> enc/windows_1253.$(OBJEXT): defines.h</div><div class='ctx'> enc/windows_1253.$(OBJEXT): enc/windows_1253.c</div><div class='add'>+enc/windows_1253.$(OBJEXT): intern.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/config.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/error.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/event.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/method.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/module.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/value.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/windows_1253.$(OBJEXT): missing.h</div><div class='ctx'> enc/windows_1253.$(OBJEXT): onigmo.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): st.h</div><div class='add'>+enc/windows_1253.$(OBJEXT): subst.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/windows_1254.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): assert.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): backward.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/windows_1254.$(OBJEXT): config.h</div><div class='ctx'> enc/windows_1254.$(OBJEXT): defines.h</div><div class='ctx'> enc/windows_1254.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/windows_1254.$(OBJEXT): enc/windows_1254.c</div><div class='add'>+enc/windows_1254.$(OBJEXT): intern.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/config.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/error.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/event.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/method.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/module.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/value.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/windows_1254.$(OBJEXT): missing.h</div><div class='ctx'> enc/windows_1254.$(OBJEXT): onigmo.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): st.h</div><div class='add'>+enc/windows_1254.$(OBJEXT): subst.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/windows_1257.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): assert.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): backward.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/windows_1257.$(OBJEXT): config.h</div><div class='ctx'> enc/windows_1257.$(OBJEXT): defines.h</div><div class='ctx'> enc/windows_1257.$(OBJEXT): enc/iso_8859.h</div><div class='ctx'> enc/windows_1257.$(OBJEXT): enc/windows_1257.c</div><div class='add'>+enc/windows_1257.$(OBJEXT): intern.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/config.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/error.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/event.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/method.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/module.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/value.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/windows_1257.$(OBJEXT): missing.h</div><div class='ctx'> enc/windows_1257.$(OBJEXT): onigmo.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): st.h</div><div class='add'>+enc/windows_1257.$(OBJEXT): subst.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): $(hdrdir)/ruby.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): $(top_srcdir)/regenc.h</div><div class='del'>-enc/windows_31j.$(OBJEXT): $(top_srcdir)/regint.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): assert.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): backward.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): backward/2/assume.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): backward/2/attributes.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): backward/2/bool.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): backward/2/inttypes.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): backward/2/limits.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): backward/2/long_long.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): backward/2/stdalign.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): backward/2/stdarg.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): config.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): defines.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): enc/jis/props.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): enc/jis/props.kwd</div><div class='del'>-enc/windows_31j.$(OBJEXT): enc/shift_jis.c</div><div class='ctx'> enc/windows_31j.$(OBJEXT): enc/shift_jis.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): enc/windows_31j.c</div><div class='ctx'> enc/windows_31j.$(OBJEXT): intern.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/abi.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/anyargs.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/char.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/double.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/fixnum.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/gid_t.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/int.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/intptr_t.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/long.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/long_long.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/mode_t.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/off_t.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/pid_t.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/short.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/size_t.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/st_data_t.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/arithmetic/uid_t.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/assume.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/alloc_size.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/artificial.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/cold.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/const.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/constexpr.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/deprecated.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/diagnose_if.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/enum_extensibility.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/error.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/flag_enum.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/forceinline.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/format.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/maybe_unused.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/noalias.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/nodiscard.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/noexcept.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/noinline.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/nonnull.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/noreturn.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/pure.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/restrict.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/returns_nonnull.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/warning.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/attr/weakref.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/cast.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/compiler_is.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/compiler_is/apple.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/compiler_is/clang.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/compiler_is/gcc.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/compiler_is/intel.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/compiler_is/msvc.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/compiler_is/sunpro.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/compiler_since.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/config.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/constant_p.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/rarray.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/rbasic.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/rbignum.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/rclass.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/rdata.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/rfile.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/rhash.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/robject.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/rregexp.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/rstring.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/rstruct.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/core/rtypeddata.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/ctype.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/dllexport.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/dosish.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/error.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/eval.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/event.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/fl_type.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/gc.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/glob.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/globals.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/has/attribute.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/has/builtin.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/has/c_attribute.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/has/cpp_attribute.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/has/declspec_attribute.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/has/extension.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/has/feature.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/has/warning.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/array.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/bignum.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/class.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/compar.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/complex.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/cont.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/dir.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/enum.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/enumerator.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/error.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/eval.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/file.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/gc.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/hash.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/io.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/load.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/marshal.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/numeric.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/object.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/parse.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/proc.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/process.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/random.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/range.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/rational.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/re.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/ruby.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/select.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/select/largesize.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/signal.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/sprintf.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/string.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/struct.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/thread.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/time.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/variable.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/intern/vm.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/interpreter.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/iterator.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/memory.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/method.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/module.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/newobj.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/rgengc.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/scan_args.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/special_consts.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/static_assert.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/stdalign.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/stdbool.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/symbol.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/value.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/value_type.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/variable.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/warning_push.h</div><div class='add'>+enc/windows_31j.$(OBJEXT): internal/xmalloc.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): missing.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): onigmo.h</div><div class='del'>-enc/windows_31j.$(OBJEXT): oniguruma.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): st.h</div><div class='ctx'> enc/windows_31j.$(OBJEXT): subst.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/enc/encdb.c b/enc/encdb.c<br/>index a41e4edc6d..8247e9ff6a 100644<br/>--- a/<a href='/ruby.git/tree/enc/encdb.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/encdb.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/encdb.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/encdb.c</a></div><div class='hunk'>@@ -9,7 +9,7 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/encoding.h"</div><div class='ctx'> </div><div class='ctx'> #define ENC_REPLICATE(name, orig) rb_encdb_replicate((name), (orig))</div><div class='ctx'> #define ENC_ALIAS(name, orig) rb_encdb_alias((name), (orig))</div><div class='hunk'>@@ -17,7 +17,7 @@</div><div class='ctx'> #define ENC_DEFINE(name) rb_encdb_declare(name)</div><div class='ctx'> #define ENC_SET_BASE(name, orig) rb_enc_set_base((name), (orig))</div><div class='ctx'> #define ENC_SET_DUMMY(name, orig) rb_enc_set_dummy(name)</div><div class='del'>-#define ENC_DUMMY_UNICODE(name) rb_encdb_set_unicode(rb_enc_set_dummy(ENC_REPLICATE((name), name "BE")))</div><div class='add'>+#define ENC_DUMMY_UNICODE(name) ENC_DUMMY(name)</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_encdb(void)</div><div class='head'>diff --git a/enc/encinit.c.erb b/enc/encinit.c.erb<br/>index 70c2a1934c..120408f8e3 100644<br/>--- a/<a href='/ruby.git/tree/enc/encinit.c.erb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/encinit.c.erb</a><br/>+++ b/<a href='/ruby.git/tree/enc/encinit.c.erb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/encinit.c.erb</a></div><div class='hunk'>@@ -2,6 +2,7 @@</div><div class='ctx'>  * Author: yugui@google.com (Yugui Sonoda)</div><div class='ctx'>  */</div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='add'>+#include "ruby.h"</div><div class='ctx'> </div><div class='ctx'> #define init(func, name) {	\</div><div class='ctx'>     extern void func(void);	\</div><div class='head'>diff --git a/enc/euc_jp.c b/enc/euc_jp.c<br/>index ded051af69..d283bf4ebb 100644<br/>--- a/<a href='/ruby.git/tree/enc/euc_jp.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/euc_jp.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/euc_jp.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/euc_jp.c</a></div><div class='hunk'>@@ -593,7 +593,7 @@ ENC_ALIAS("eucJP", "EUC-JP") /* UI-OSF Application Platform Profile for Japanese</div><div class='ctx'>  * Name: eucJP-ms</div><div class='ctx'>  * Link: http://home.m05.itscom.net/numa/cde/ucs-conv/ucs-conv.html</div><div class='ctx'>  * Link: http://www2d.biglobe.ne.jp/~msyk/charcode/cp932/eucJP-ms.html</div><div class='del'>- * Link: http://ja.wikipedia.org/wiki/EUC-JP</div><div class='add'>+ * Link: https://ja.wikipedia.org/wiki/EUC-JP</div><div class='ctx'>  */</div><div class='ctx'> ENC_REPLICATE("eucJP-ms", "EUC-JP") /* TOG/JVC CDE/Motif Technical WG */</div><div class='ctx'> ENC_ALIAS("euc-jp-ms", "eucJP-ms")</div><div class='hunk'>@@ -610,7 +610,7 @@ ENC_REPLICATE("CP51932", "EUC-JP")</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Name: EUC-JIS-2004</div><div class='del'>- * Link: http://ja.wikipedia.org/wiki/EUC-JIS-2004</div><div class='add'>+ * Link: https://ja.wikipedia.org/wiki/EUC-JIS-2004</div><div class='ctx'>  */</div><div class='ctx'> ENC_REPLICATE("EUC-JIS-2004", "EUC-JP") /* defined at JIS X 0213:2004 */</div><div class='ctx'> ENC_ALIAS("EUC-JISX0213", "EUC-JIS-2004") /* defined at JIS X 0213:2000, and obsolete at JIS X 0213:2004 */</div><div class='head'>diff --git a/enc/gb2312.c b/enc/gb2312.c<br/>index 6fc15735fc..20c8f5b7cc 100644<br/>--- a/<a href='/ruby.git/tree/enc/gb2312.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/gb2312.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/gb2312.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/gb2312.c</a></div><div class='hunk'>@@ -1,13 +1,11 @@</div><div class='del'>-#include &lt;ruby/ruby.h&gt;</div><div class='del'>-#include &lt;ruby/encoding.h&gt;</div><div class='ctx'> #include "regenc.h"</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_gb2312(void)</div><div class='ctx'> {</div><div class='del'>-    rb_enc_register("GB2312", rb_enc_find("EUC-KR"));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+ENC_REPLICATE("GB2312", "EUC-KR")</div><div class='ctx'> ENC_ALIAS("EUC-CN", "GB2312")</div><div class='ctx'> ENC_ALIAS("eucCN", "GB2312")</div><div class='ctx'> ENC_REPLICATE("GB12345", "GB2312")</div><div class='head'>diff --git a/enc/iso_8859_11.c b/enc/iso_8859_11.c<br/>index 85e8f2cdb4..b9c6119fd9 100644<br/>--- a/<a href='/ruby.git/tree/enc/iso_8859_11.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/iso_8859_11.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_11.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/iso_8859_11.c</a></div><div class='hunk'>@@ -102,7 +102,7 @@ ENC_ALIAS("ISO8859-11", "ISO-8859-11")</div><div class='ctx'> /*</div><div class='ctx'>  * Name: TIS-620</div><div class='ctx'>  * MIBenum: 2259</div><div class='del'>- * Link: http://en.wikipedia.org/wiki/Thai_Industrial_Standard_620-2533</div><div class='add'>+ * Link: https://en.wikipedia.org/wiki/Thai_Industrial_Standard_620-2533</div><div class='ctx'>  */</div><div class='ctx'> ENC_REPLICATE("TIS-620", "ISO-8859-11")</div><div class='ctx'> </div><div class='head'>diff --git a/enc/iso_8859_6.c b/enc/iso_8859_6.c<br/>index 6d852ac8c0..cdb74054d1 100644<br/>--- a/<a href='/ruby.git/tree/enc/iso_8859_6.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/iso_8859_6.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_6.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/iso_8859_6.c</a></div><div class='hunk'>@@ -104,7 +104,7 @@ ENC_ALIAS("ISO8859-6", "ISO-8859-6")</div><div class='ctx'>  * MIBenum: 2256</div><div class='ctx'>  * Link: http://www.iana.org/assignments/character-sets</div><div class='ctx'>  * Link: http://www.microsoft.com/globaldev/reference/sbcs/1256.mspx</div><div class='del'>- * Link: http://en.wikipedia.org/wiki/Windows-1256</div><div class='add'>+ * Link: https://en.wikipedia.org/wiki/Windows-1256</div><div class='ctx'>  */</div><div class='ctx'> ENC_REPLICATE("Windows-1256", "ISO-8859-6")</div><div class='ctx'> ENC_ALIAS("CP1256", "Windows-1256")</div><div class='head'>diff --git a/enc/iso_8859_8.c b/enc/iso_8859_8.c<br/>index 0a7a29e82e..e256855f21 100644<br/>--- a/<a href='/ruby.git/tree/enc/iso_8859_8.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/iso_8859_8.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_8.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/iso_8859_8.c</a></div><div class='hunk'>@@ -104,7 +104,7 @@ ENC_ALIAS("ISO8859-8", "ISO-8859-8")</div><div class='ctx'>  * MIBenum: 2255</div><div class='ctx'>  * Link: http://www.iana.org/assignments/character-sets</div><div class='ctx'>  * Link: http://www.microsoft.com/globaldev/reference/sbcs/1255.mspx</div><div class='del'>- * Link: http://en.wikipedia.org/wiki/Windows-1255</div><div class='add'>+ * Link: https://en.wikipedia.org/wiki/Windows-1255</div><div class='ctx'>  */</div><div class='ctx'> ENC_REPLICATE("Windows-1255", "ISO-8859-8")</div><div class='ctx'> ENC_ALIAS("CP1255", "Windows-1255")</div><div class='head'>diff --git a/enc/jis/props.h.blt b/enc/jis/props.h.blt<br/>index 54aa94f8bc..508a084449 100644<br/>--- a/<a href='/ruby.git/tree/enc/jis/props.h.blt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/jis/props.h.blt</a><br/>+++ b/<a href='/ruby.git/tree/enc/jis/props.h.blt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/jis/props.h.blt</a></div><div class='hunk'>@@ -69,7 +69,7 @@ struct enc_property {</div><div class='ctx'>     unsigned char ctype;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static const struct enc_property *onig_jis_property(/*const char *str, unsigned int len*/);</div><div class='add'>+static const struct enc_property *onig_jis_property(register const char *str, register size_t len);</div><div class='ctx'> #line 43 "enc/jis/props.kwd"</div><div class='ctx'> struct enc_property;</div><div class='ctx'> </div><div class='hunk'>@@ -82,7 +82,7 @@ struct enc_property;</div><div class='ctx'> </div><div class='ctx'> #ifndef GPERF_DOWNCASE</div><div class='ctx'> #define GPERF_DOWNCASE 1</div><div class='del'>-static unsigned char gperf_downcase[256] =</div><div class='add'>+static const unsigned char gperf_downcase[256] =</div><div class='ctx'>   {</div><div class='ctx'>       0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,</div><div class='ctx'>      15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,</div><div class='head'>diff --git a/enc/jis/props.kwd b/enc/jis/props.kwd<br/>index 659cf0aff4..9606828459 100644<br/>--- a/<a href='/ruby.git/tree/enc/jis/props.kwd?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/jis/props.kwd</a><br/>+++ b/<a href='/ruby.git/tree/enc/jis/props.kwd?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/jis/props.kwd</a></div><div class='hunk'>@@ -37,7 +37,7 @@ struct enc_property {</div><div class='ctx'>     unsigned char ctype;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static const struct enc_property *onig_jis_property(/*!ANSI{*/const char *str, unsigned int len/*}!ANSI*/);</div><div class='add'>+static const struct enc_property *onig_jis_property(register const char *str, register size_t len);</div><div class='ctx'> %}</div><div class='ctx'> </div><div class='ctx'> struct enc_property;</div><div class='head'>diff --git a/enc/jis/props.src b/enc/jis/props.src<br/>index 659cf0aff4..9606828459 100644<br/>--- a/<a href='/ruby.git/tree/enc/jis/props.src?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/jis/props.src</a><br/>+++ b/<a href='/ruby.git/tree/enc/jis/props.src?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/jis/props.src</a></div><div class='hunk'>@@ -37,7 +37,7 @@ struct enc_property {</div><div class='ctx'>     unsigned char ctype;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static const struct enc_property *onig_jis_property(/*!ANSI{*/const char *str, unsigned int len/*}!ANSI*/);</div><div class='add'>+static const struct enc_property *onig_jis_property(register const char *str, register size_t len);</div><div class='ctx'> %}</div><div class='ctx'> </div><div class='ctx'> struct enc_property;</div><div class='head'>diff --git a/enc/make_encmake.rb b/enc/make_encmake.rb<br/>index bc0597e3f4..fcfc2c9267 100755<br/>--- a/<a href='/ruby.git/tree/enc/make_encmake.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/make_encmake.rb</a><br/>+++ b/<a href='/ruby.git/tree/enc/make_encmake.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/make_encmake.rb</a></div><div class='hunk'>@@ -134,7 +134,7 @@ else</div><div class='ctx'> end</div><div class='ctx'> mkin = File.read(File.join($srcdir, "Makefile.in"))</div><div class='ctx'> mkin.gsub!(/@(#{CONFIG.keys.join('|')})@/) {CONFIG[$1]}</div><div class='del'>-open(ARGV[0], 'wb') {|f|</div><div class='add'>+File.open(ARGV[0], 'wb') {|f|</div><div class='ctx'>   f.puts mkin, dep</div><div class='ctx'> }</div><div class='ctx'> if MODULE_TYPE == :static</div><div class='head'>diff --git a/enc/shift_jis.c b/enc/shift_jis.c<br/>index 65fd5102de..f1355d2d95 100644<br/>--- a/<a href='/ruby.git/tree/enc/shift_jis.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/shift_jis.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/shift_jis.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/shift_jis.c</a></div><div class='hunk'>@@ -55,13 +55,13 @@ OnigEncodingDefine(shift_jis, Shift_JIS) = {</div><div class='ctx'>  * Name: Shift_JIS</div><div class='ctx'>  * MIBenum: 17</div><div class='ctx'>  * Link: http://www.iana.org/assignments/character-sets</div><div class='del'>- * Link: http://ja.wikipedia.org/wiki/Shift_JIS</div><div class='add'>+ * Link: https://ja.wikipedia.org/wiki/Shift_JIS</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Name: MacJapanese</div><div class='ctx'>  * Link: http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/JAPANESE.TXT</div><div class='del'>- * Link: http://ja.wikipedia.org/wiki/MacJapanese</div><div class='add'>+ * Link: https://ja.wikipedia.org/wiki/MacJapanese</div><div class='ctx'>  */</div><div class='ctx'> ENC_REPLICATE("MacJapanese", "Shift_JIS")</div><div class='ctx'> ENC_ALIAS("MacJapan", "MacJapanese")</div><div class='head'>diff --git a/enc/trans/JIS/JISX0212%UCS.src b/enc/trans/JIS/JISX0212%UCS.src<br/>index aa51257b99..0e1ab4c9b9 100644<br/>--- a/<a href='/ruby.git/tree/enc/trans/JIS/JISX0212%25UCS.src?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/JIS/JISX0212%UCS.src</a><br/>+++ b/<a href='/ruby.git/tree/enc/trans/JIS/JISX0212%25UCS.src?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/trans/JIS/JISX0212%UCS.src</a></div><div class='hunk'>@@ -67,7 +67,7 @@ BEGIN_MAP</div><div class='ctx'> #</div><div class='ctx'> #	   However, JIS X 0212 maintains the distinction between</div><div class='ctx'> #	   the lowercase forms of these two elements at 0x2942 and 0x2943.</div><div class='del'>-#	   Given the structre of these JIS encodings, it is clear that</div><div class='add'>+#	   Given the structure of these JIS encodings, it is clear that</div><div class='ctx'> #	   0x2922 and 0x2942 are intended to be a capital/small pair.</div><div class='ctx'> #	   Consequently, in the Unicode mapping, 0x2922 is treated as</div><div class='ctx'> #	   LATIN CAPITAL LETTER D WITH STROKE.</div><div class='head'>diff --git a/enc/trans/JIS/UCS%JISX0212.src b/enc/trans/JIS/UCS%JISX0212.src<br/>index 65383a1c9f..c7711c8ac0 100644<br/>--- a/<a href='/ruby.git/tree/enc/trans/JIS/UCS%25JISX0212.src?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/JIS/UCS%JISX0212.src</a><br/>+++ b/<a href='/ruby.git/tree/enc/trans/JIS/UCS%25JISX0212.src?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/trans/JIS/UCS%JISX0212.src</a></div><div class='hunk'>@@ -67,7 +67,7 @@ BEGIN_MAP</div><div class='ctx'> #</div><div class='ctx'> #	   However, JIS X 0212 maintains the distinction between</div><div class='ctx'> #	   the lowercase forms of these two elements at 0x2942 and 0x2943.</div><div class='del'>-#	   Given the structre of these JIS encodings, it is clear that</div><div class='add'>+#	   Given the structure of these JIS encodings, it is clear that</div><div class='ctx'> #	   0x2922 and 0x2942 are intended to be a capital/small pair.</div><div class='ctx'> #	   Consequently, in the Unicode mapping, 0x2922 is treated as</div><div class='ctx'> #	   LATIN CAPITAL LETTER D WITH STROKE.</div><div class='head'>diff --git a/enc/trans/cesu_8.trans b/enc/trans/cesu_8.trans<br/>new file mode 100644<br/>index 0000000000..4e17b1ddbb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/cesu_8.trans?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/trans/cesu_8.trans</a></div><div class='hunk'>@@ -0,0 +1,85 @@</div><div class='add'>+#include "transcode_data.h"</div><div class='add'>+</div><div class='add'>+&lt;%</div><div class='add'>+  map = {}</div><div class='add'>+  map["{00-7f}"] = :nomap</div><div class='add'>+  map["{c2-df}{80-bf}"] = :nomap</div><div class='add'>+  map["e0{a0-bf}{80-bf}"] = :nomap</div><div class='add'>+  map["{e1-ec}{80-bf}{80-bf}"] = :nomap</div><div class='add'>+  map["ed{80-9f}{80-bf}"] = :nomap</div><div class='add'>+  map["{ee-ef}{80-bf}{80-bf}"] = :nomap</div><div class='add'>+  map["ed{a0-af}{80-bf}ed{b0-bf}{80-bf}"] = :func_so # surrogate pairs</div><div class='add'>+  transcode_generate_node(ActionMap.parse(map), "from_CESU_8")</div><div class='add'>+</div><div class='add'>+  map = {}</div><div class='add'>+  map["{00-7f}"] = :nomap</div><div class='add'>+  map["{c2-df}{80-bf}"] = :nomap</div><div class='add'>+  map["e0{a0-bf}{80-bf}"] = :nomap</div><div class='add'>+  map["{e1-ec}{80-bf}{80-bf}"] = :nomap</div><div class='add'>+  map["ed{80-9f}{80-bf}"] = :nomap</div><div class='add'>+  map["{ee-ef}{80-bf}{80-bf}"] = :nomap</div><div class='add'>+  map["f0{90-bf}{80-bf}{80-bf}"] = :func_so      # planes 1-3</div><div class='add'>+  map["{f1-f3}{80-bf}{80-bf}{80-bf}"] = :func_so # planes 4-15</div><div class='add'>+  map["f4{80-8f}{80-bf}{80-bf}"] = :func_so      # plane 16</div><div class='add'>+  transcode_generate_node(ActionMap.parse(map), "to_CESU_8")</div><div class='add'>+%&gt;</div><div class='add'>+</div><div class='add'>+&lt;%= transcode_generated_code %&gt;</div><div class='add'>+</div><div class='add'>+static ssize_t</div><div class='add'>+fun_so_from_cesu_8(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)</div><div class='add'>+{</div><div class='add'>+    unsigned int scalar = ( ((s[1]&amp;0x0F)&lt;&lt;16) | ((s[2]&amp;0x3F)&lt;&lt;10)</div><div class='add'>+                          | ((s[4]&amp;0x0F)&lt;&lt; 6) |  (s[5]&amp;0x3F)</div><div class='add'>+                          ) + 0x10000;</div><div class='add'>+    o[0] = 0xF0 |  (scalar&gt;&gt;18);</div><div class='add'>+    o[1] = 0x80 | ((scalar&gt;&gt;12)&amp;0x3F);</div><div class='add'>+    o[2] = 0x80 | ((scalar&gt;&gt; 6)&amp;0x3F);</div><div class='add'>+    o[3] = 0x80 | ( scalar     &amp;0x3F);</div><div class='add'>+    return 4;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ssize_t</div><div class='add'>+fun_so_to_cesu_8(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)</div><div class='add'>+{</div><div class='add'>+    unsigned int scalar = ((s[0]&amp;0x07)&lt;&lt;18) | ((s[1]&amp;0x3F)&lt;&lt;12)</div><div class='add'>+                        | ((s[2]&amp;0x3F)&lt;&lt; 6) |  (s[3]&amp;0x3F);</div><div class='add'>+    scalar -= 0x10000;</div><div class='add'>+    o[0] = 0xED;</div><div class='add'>+    o[1] = 0xA0 |  (scalar&gt;&gt;16);</div><div class='add'>+    o[2] = 0x80 | ((scalar&gt;&gt;10)&amp;0x3F);</div><div class='add'>+    o[3] = 0xED;</div><div class='add'>+    o[4] = 0xB0 | ((scalar&gt;&gt; 6)&amp;0x0F);</div><div class='add'>+    o[5] = 0x80 | (scalar      &amp;0x3F);</div><div class='add'>+    return 6;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_transcoder</div><div class='add'>+rb_from_CESU_8 = {</div><div class='add'>+    "CESU-8", "UTF-8", from_CESU_8,</div><div class='add'>+    TRANSCODE_TABLE_INFO,</div><div class='add'>+    1, /* input_unit_length */</div><div class='add'>+    6, /* max_input */</div><div class='add'>+    4, /* max_output */</div><div class='add'>+    asciicompat_decoder, /* asciicompat_type */</div><div class='add'>+    0, NULL, NULL, /* state_size, state_init, state_fini */</div><div class='add'>+    NULL, NULL, NULL, fun_so_from_cesu_8</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const rb_transcoder</div><div class='add'>+rb_to_CESU_8 = {</div><div class='add'>+    "UTF-8", "CESU-8", to_CESU_8,</div><div class='add'>+    TRANSCODE_TABLE_INFO,</div><div class='add'>+    1, /* input_unit_length */</div><div class='add'>+    4, /* max_input */</div><div class='add'>+    6, /* max_output */</div><div class='add'>+    asciicompat_encoder, /* asciicompat_type */</div><div class='add'>+    0, NULL, NULL, /* state_size, state_init, state_fini */</div><div class='add'>+    NULL, NULL, NULL, fun_so_to_cesu_8</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+TRANS_INIT(cesu_8)</div><div class='add'>+{</div><div class='add'>+    rb_register_transcoder(&amp;rb_from_CESU_8);</div><div class='add'>+    rb_register_transcoder(&amp;rb_to_CESU_8);</div><div class='add'>+}</div><div class='head'>diff --git a/enc/trans/escape.trans b/enc/trans/escape.trans<br/>index c76ffa0e06..36d9dd0f13 100644<br/>--- a/<a href='/ruby.git/tree/enc/trans/escape.trans?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/escape.trans</a><br/>+++ b/<a href='/ruby.git/tree/enc/trans/escape.trans?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/trans/escape.trans</a></div><div class='hunk'>@@ -18,9 +18,10 @@</div><div class='ctx'>   ], nil)</div><div class='ctx'> </div><div class='ctx'>   transcode_tblgen("", "xml_attr_content_escape", [</div><div class='del'>-    ["{00-21,23-25,27-3B,3D,3F-FF}", :nomap],</div><div class='add'>+    ["{00-21,23-25,28-3B,3D,3F-FF}", :nomap],</div><div class='ctx'>     ["22", hexstr("&amp;quot;")],</div><div class='ctx'>     ["26", hexstr("&amp;amp;")],</div><div class='add'>+    ["27", hexstr("&amp;apos;")],</div><div class='ctx'>     ["3C", hexstr("&amp;lt;")],</div><div class='ctx'>     ["3E", hexstr("&amp;gt;")]</div><div class='ctx'>   ], nil)</div><div class='head'>diff --git a/enc/trans/ibm720-tbl.rb b/enc/trans/ibm720-tbl.rb<br/>new file mode 100644<br/>index 0000000000..558684d649<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/ibm720-tbl.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/trans/ibm720-tbl.rb</a></div><div class='hunk'>@@ -0,0 +1,122 @@</div><div class='add'>+IBM720_TO_UCS_TBL = [</div><div class='add'>+  ["FF",0xA0],</div><div class='add'>+  ["9C",0xA3],</div><div class='add'>+  ["94",0xA4],</div><div class='add'>+  ["AE",0xAB],</div><div class='add'>+  ["F8",0xB0],</div><div class='add'>+  ["FD",0xB2],</div><div class='add'>+  ["E6",0xB5],</div><div class='add'>+  ["FA",0xB7],</div><div class='add'>+  ["AF",0xBB],</div><div class='add'>+  ["85",0xE0],</div><div class='add'>+  ["83",0xE2],</div><div class='add'>+  ["87",0xE7],</div><div class='add'>+  ["8A",0xE8],</div><div class='add'>+  ["82",0xE9],</div><div class='add'>+  ["88",0xEA],</div><div class='add'>+  ["89",0xEB],</div><div class='add'>+  ["8C",0xEE],</div><div class='add'>+  ["8B",0xEF],</div><div class='add'>+  ["93",0xF4],</div><div class='add'>+  ["97",0xF9],</div><div class='add'>+  ["96",0xFB],</div><div class='add'>+  ["98",0x621],</div><div class='add'>+  ["99",0x622],</div><div class='add'>+  ["9A",0x623],</div><div class='add'>+  ["9B",0x624],</div><div class='add'>+  ["9D",0x625],</div><div class='add'>+  ["9E",0x626],</div><div class='add'>+  ["9F",0x627],</div><div class='add'>+  ["A0",0x628],</div><div class='add'>+  ["A1",0x629],</div><div class='add'>+  ["A2",0x62A],</div><div class='add'>+  ["A3",0x62B],</div><div class='add'>+  ["A4",0x62C],</div><div class='add'>+  ["A5",0x62D],</div><div class='add'>+  ["A6",0x62E],</div><div class='add'>+  ["A7",0x62F],</div><div class='add'>+  ["A8",0x630],</div><div class='add'>+  ["A9",0x631],</div><div class='add'>+  ["AA",0x632],</div><div class='add'>+  ["AB",0x633],</div><div class='add'>+  ["AC",0x634],</div><div class='add'>+  ["AD",0x635],</div><div class='add'>+  ["E0",0x636],</div><div class='add'>+  ["E1",0x637],</div><div class='add'>+  ["E2",0x638],</div><div class='add'>+  ["E3",0x639],</div><div class='add'>+  ["E4",0x63A],</div><div class='add'>+  ["95",0x640],</div><div class='add'>+  ["E5",0x641],</div><div class='add'>+  ["E7",0x642],</div><div class='add'>+  ["E8",0x643],</div><div class='add'>+  ["E9",0x644],</div><div class='add'>+  ["EA",0x645],</div><div class='add'>+  ["EB",0x646],</div><div class='add'>+  ["EC",0x647],</div><div class='add'>+  ["ED",0x648],</div><div class='add'>+  ["EE",0x649],</div><div class='add'>+  ["EF",0x64A],</div><div class='add'>+  ["F1",0x64B],</div><div class='add'>+  ["F2",0x64C],</div><div class='add'>+  ["F3",0x64D],</div><div class='add'>+  ["F4",0x64E],</div><div class='add'>+  ["F5",0x64F],</div><div class='add'>+  ["F6",0x650],</div><div class='add'>+  ["91",0x651],</div><div class='add'>+  ["92",0x652],</div><div class='add'>+  ["FC",0x207F],</div><div class='add'>+  ["F9",0x2219],</div><div class='add'>+  ["FB",0x221A],</div><div class='add'>+  ["F7",0x2248],</div><div class='add'>+  ["F0",0x2261],</div><div class='add'>+  ["C4",0x2500],</div><div class='add'>+  ["B3",0x2502],</div><div class='add'>+  ["DA",0x250C],</div><div class='add'>+  ["BF",0x2510],</div><div class='add'>+  ["C0",0x2514],</div><div class='add'>+  ["D9",0x2518],</div><div class='add'>+  ["C3",0x251C],</div><div class='add'>+  ["B4",0x2524],</div><div class='add'>+  ["C2",0x252C],</div><div class='add'>+  ["C1",0x2534],</div><div class='add'>+  ["C5",0x253C],</div><div class='add'>+  ["CD",0x2550],</div><div class='add'>+  ["BA",0x2551],</div><div class='add'>+  ["D5",0x2552],</div><div class='add'>+  ["D6",0x2553],</div><div class='add'>+  ["C9",0x2554],</div><div class='add'>+  ["B8",0x2555],</div><div class='add'>+  ["B7",0x2556],</div><div class='add'>+  ["BB",0x2557],</div><div class='add'>+  ["D4",0x2558],</div><div class='add'>+  ["D3",0x2559],</div><div class='add'>+  ["C8",0x255A],</div><div class='add'>+  ["BE",0x255B],</div><div class='add'>+  ["BD",0x255C],</div><div class='add'>+  ["BC",0x255D],</div><div class='add'>+  ["C6",0x255E],</div><div class='add'>+  ["C7",0x255F],</div><div class='add'>+  ["CC",0x2560],</div><div class='add'>+  ["B5",0x2561],</div><div class='add'>+  ["B6",0x2562],</div><div class='add'>+  ["B9",0x2563],</div><div class='add'>+  ["D1",0x2564],</div><div class='add'>+  ["D2",0x2565],</div><div class='add'>+  ["CB",0x2566],</div><div class='add'>+  ["CF",0x2567],</div><div class='add'>+  ["D0",0x2568],</div><div class='add'>+  ["CA",0x2569],</div><div class='add'>+  ["D8",0x256A],</div><div class='add'>+  ["D7",0x256B],</div><div class='add'>+  ["CE",0x256C],</div><div class='add'>+  ["DF",0x2580],</div><div class='add'>+  ["DC",0x2584],</div><div class='add'>+  ["DB",0x2588],</div><div class='add'>+  ["DD",0x258C],</div><div class='add'>+  ["DE",0x2590],</div><div class='add'>+  ["B0",0x2591],</div><div class='add'>+  ["B1",0x2592],</div><div class='add'>+  ["B2",0x2593],</div><div class='add'>+  ["FE",0x25A0],</div><div class='add'>+]</div><div class='head'>diff --git a/enc/trans/newline.trans b/enc/trans/newline.trans<br/>index a200ec00a7..95e082f5bd 100644<br/>--- a/<a href='/ruby.git/tree/enc/trans/newline.trans?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/newline.trans</a><br/>+++ b/<a href='/ruby.git/tree/enc/trans/newline.trans?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/trans/newline.trans</a></div><div class='hunk'>@@ -17,10 +17,16 @@</div><div class='ctx'>   map_cr["0a"] = "0d"</div><div class='ctx'> </div><div class='ctx'>   transcode_generate_node(ActionMap.parse(map_cr), "cr_newline")</div><div class='add'>+</div><div class='add'>+  map_normalize = {}</div><div class='add'>+  map_normalize["{00-ff}"] = :func_so</div><div class='add'>+</div><div class='add'>+  transcode_generate_node(ActionMap.parse(map_normalize), "lf_newline")</div><div class='ctx'> %&gt;</div><div class='ctx'> </div><div class='ctx'> &lt;%= transcode_generated_code %&gt;</div><div class='ctx'> </div><div class='add'>+#define lf_newline universal_newline</div><div class='ctx'> #define STATE (sp[0])</div><div class='ctx'> #define NORMAL 0</div><div class='ctx'> #define JUST_AFTER_CR 1</div><div class='hunk'>@@ -98,7 +104,7 @@ rb_universal_newline = {</div><div class='ctx'>     2, /* max_output */</div><div class='ctx'>     asciicompat_converter, /* asciicompat_type */</div><div class='ctx'>     2, universal_newline_init, universal_newline_init, /* state_size, state_init, state_fini */</div><div class='del'>-    NULL, NULL, NULL, fun_so_universal_newline,</div><div class='add'>+    0, 0, 0, fun_so_universal_newline,</div><div class='ctx'>     universal_newline_finish</div><div class='ctx'> };</div><div class='ctx'> </div><div class='hunk'>@@ -110,8 +116,8 @@ rb_crlf_newline = {</div><div class='ctx'>     1, /* max_input */</div><div class='ctx'>     2, /* max_output */</div><div class='ctx'>     asciicompat_converter, /* asciicompat_type */</div><div class='del'>-    0, NULL, NULL, /* state_size, state_init, state_fini */</div><div class='del'>-    NULL, NULL, NULL, NULL</div><div class='add'>+    0, 0, 0, /* state_size, state_init, state_fini */</div><div class='add'>+    0, 0, 0, 0</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static const rb_transcoder</div><div class='hunk'>@@ -122,8 +128,21 @@ rb_cr_newline = {</div><div class='ctx'>     1, /* max_input */</div><div class='ctx'>     1, /* max_output */</div><div class='ctx'>     asciicompat_converter, /* asciicompat_type */</div><div class='del'>-    0, NULL, NULL, /* state_size, state_init, state_fini */</div><div class='del'>-    NULL, NULL, NULL, NULL</div><div class='add'>+    0, 0, 0, /* state_size, state_init, state_fini */</div><div class='add'>+    0, 0, 0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const rb_transcoder</div><div class='add'>+rb_lf_newline = {</div><div class='add'>+    "", "lf_newline", lf_newline,</div><div class='add'>+    TRANSCODE_TABLE_INFO,</div><div class='add'>+    1, /* input_unit_length */</div><div class='add'>+    1, /* max_input */</div><div class='add'>+    2, /* max_output */</div><div class='add'>+    asciicompat_converter, /* asciicompat_type */</div><div class='add'>+    2, universal_newline_init, universal_newline_init, /* state_size, state_init, state_fini */</div><div class='add'>+    0, 0, 0, fun_so_universal_newline,</div><div class='add'>+    universal_newline_finish</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -132,4 +151,5 @@ Init_newline(void)</div><div class='ctx'>     rb_register_transcoder(&amp;rb_universal_newline);</div><div class='ctx'>     rb_register_transcoder(&amp;rb_crlf_newline);</div><div class='ctx'>     rb_register_transcoder(&amp;rb_cr_newline);</div><div class='add'>+    rb_register_transcoder(&amp;rb_lf_newline);</div><div class='ctx'> }</div><div class='head'>diff --git a/enc/trans/single_byte.trans b/enc/trans/single_byte.trans<br/>index cf521bed38..0d5407b918 100644<br/>--- a/<a href='/ruby.git/tree/enc/trans/single_byte.trans?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/single_byte.trans</a><br/>+++ b/<a href='/ruby.git/tree/enc/trans/single_byte.trans?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/trans/single_byte.trans</a></div><div class='hunk'>@@ -51,8 +51,9 @@</div><div class='ctx'>   transcode_tblgen_singlebyte "WINDOWS-1256"</div><div class='ctx'>   transcode_tblgen_singlebyte "WINDOWS-1257"</div><div class='ctx'>   transcode_tblgen_singlebyte "IBM437"</div><div class='del'>-  transcode_tblgen_singlebyte "IBM775"</div><div class='add'>+  transcode_tblgen_singlebyte "IBM720"</div><div class='ctx'>   transcode_tblgen_singlebyte "IBM737"</div><div class='add'>+  transcode_tblgen_singlebyte "IBM775"</div><div class='ctx'>   transcode_tblgen_singlebyte "IBM852"</div><div class='ctx'>   transcode_tblgen_singlebyte "IBM855"</div><div class='ctx'>   transcode_tblgen_singlebyte "IBM857"</div><div class='head'>diff --git a/enc/trans/transdb.c b/enc/trans/transdb.c<br/>index d6ac41e967..7caf8d845d 100644<br/>--- a/<a href='/ruby.git/tree/enc/trans/transdb.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/trans/transdb.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/trans/transdb.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/trans/transdb.c</a></div><div class='hunk'>@@ -9,6 +9,8 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='add'>+#include "ruby.h"</div><div class='add'>+</div><div class='ctx'> void rb_declare_transcoder(const char *enc1, const char *enc2, const char *lib);</div><div class='ctx'> </div><div class='ctx'> void</div><div class='head'>diff --git a/enc/unicode.c b/enc/unicode.c<br/>index 6e8c3d8816..18fba02476 100644<br/>--- a/<a href='/ruby.git/tree/enc/unicode.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/unicode.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/unicode.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/unicode.c</a></div><div class='hunk'>@@ -493,6 +493,10 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc,</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>   if ((to = onigenc_unicode_fold_lookup(code)) != 0) {</div><div class='add'>+    if (OnigCodePointCount(to-&gt;n) == 0) {</div><div class='add'>+      /* any codepoint should not be empty */</div><div class='add'>+      UNREACHABLE_RETURN(0);</div><div class='add'>+    }</div><div class='ctx'>     if (OnigCodePointCount(to-&gt;n) == 1) {</div><div class='ctx'>       OnigCodePoint orig_code = code;</div><div class='ctx'> </div><div class='head'>diff --git a/enc/unicode/11.0.0/casefold.h b/enc/unicode/11.0.0/casefold.h<br/>deleted file mode 100644<br/>index d1c82c7ca4..0000000000<br/>--- a/<a href='/ruby.git/tree/enc/unicode/11.0.0/casefold.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/unicode/11.0.0/casefold.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7485 +0,0 @@</div><div class='del'>-/* DO NOT EDIT THIS FILE. */</div><div class='del'>-/* Generated by enc/unicode/case-folding.rb */</div><div class='del'>-</div><div class='del'>-#if defined ONIG_UNICODE_VERSION_STRING &amp;&amp; !( \</div><div class='del'>-      ONIG_UNICODE_VERSION_MAJOR == 11 &amp;&amp; \</div><div class='del'>-      ONIG_UNICODE_VERSION_MINOR == 0 &amp;&amp; \</div><div class='del'>-      ONIG_UNICODE_VERSION_TEENY == 0 &amp;&amp; \</div><div class='del'>-      1)</div><div class='del'>-# error ONIG_UNICODE_VERSION_STRING mismatch</div><div class='del'>-#endif</div><div class='del'>-#define ONIG_UNICODE_VERSION_STRING "11.0.0"</div><div class='del'>-#define ONIG_UNICODE_VERSION_MAJOR 11</div><div class='del'>-#define ONIG_UNICODE_VERSION_MINOR 0</div><div class='del'>-#define ONIG_UNICODE_VERSION_TEENY 0</div><div class='del'>-</div><div class='del'>-static const CaseFold_11_Type CaseFold_11_Table[] = {</div><div class='del'>-#define CaseFold (*(CaseFold_11_Type (*)[1478])(CaseFold_11_Table+0))</div><div class='del'>-  {0x0041, {1|F|D, {0x0061}}},</div><div class='del'>-  {0x0042, {1|F|D, {0x0062}}},</div><div class='del'>-  {0x0043, {1|F|D, {0x0063}}},</div><div class='del'>-  {0x0044, {1|F|D, {0x0064}}},</div><div class='del'>-  {0x0045, {1|F|D, {0x0065}}},</div><div class='del'>-  {0x0046, {1|F|D, {0x0066}}},</div><div class='del'>-  {0x0047, {1|F|D, {0x0067}}},</div><div class='del'>-  {0x0048, {1|F|D, {0x0068}}},</div><div class='del'>-  {0x004a, {1|F|D, {0x006a}}},</div><div class='del'>-  {0x004b, {1|F|D, {0x006b}}},</div><div class='del'>-  {0x004c, {1|F|D, {0x006c}}},</div><div class='del'>-  {0x004d, {1|F|D, {0x006d}}},</div><div class='del'>-  {0x004e, {1|F|D, {0x006e}}},</div><div class='del'>-  {0x004f, {1|F|D, {0x006f}}},</div><div class='del'>-  {0x0050, {1|F|D, {0x0070}}},</div><div class='del'>-  {0x0051, {1|F|D, {0x0071}}},</div><div class='del'>-  {0x0052, {1|F|D, {0x0072}}},</div><div class='del'>-  {0x0053, {1|F|D, {0x0073}}},</div><div class='del'>-  {0x0054, {1|F|D, {0x0074}}},</div><div class='del'>-  {0x0055, {1|F|D, {0x0075}}},</div><div class='del'>-  {0x0056, {1|F|D, {0x0076}}},</div><div class='del'>-  {0x0057, {1|F|D, {0x0077}}},</div><div class='del'>-  {0x0058, {1|F|D, {0x0078}}},</div><div class='del'>-  {0x0059, {1|F|D, {0x0079}}},</div><div class='del'>-  {0x005a, {1|F|D, {0x007a}}},</div><div class='del'>-  {0x00b5, {1|F|SU|I(0), {0x03bc}}},</div><div class='del'>-  {0x00c0, {1|F|D, {0x00e0}}},</div><div class='del'>-  {0x00c1, {1|F|D, {0x00e1}}},</div><div class='del'>-  {0x00c2, {1|F|D, {0x00e2}}},</div><div class='del'>-  {0x00c3, {1|F|D, {0x00e3}}},</div><div class='del'>-  {0x00c4, {1|F|D, {0x00e4}}},</div><div class='del'>-  {0x00c5, {1|F|D, {0x00e5}}},</div><div class='del'>-  {0x00c6, {1|F|D, {0x00e6}}},</div><div class='del'>-  {0x00c7, {1|F|D, {0x00e7}}},</div><div class='del'>-  {0x00c8, {1|F|D, {0x00e8}}},</div><div class='del'>-  {0x00c9, {1|F|D, {0x00e9}}},</div><div class='del'>-  {0x00ca, {1|F|D, {0x00ea}}},</div><div class='del'>-  {0x00cb, {1|F|D, {0x00eb}}},</div><div class='del'>-  {0x00cc, {1|F|D, {0x00ec}}},</div><div class='del'>-  {0x00cd, {1|F|D, {0x00ed}}},</div><div class='del'>-  {0x00ce, {1|F|D, {0x00ee}}},</div><div class='del'>-  {0x00cf, {1|F|D, {0x00ef}}},</div><div class='del'>-  {0x00d0, {1|F|D, {0x00f0}}},</div><div class='del'>-  {0x00d1, {1|F|D, {0x00f1}}},</div><div class='del'>-  {0x00d2, {1|F|D, {0x00f2}}},</div><div class='del'>-  {0x00d3, {1|F|D, {0x00f3}}},</div><div class='del'>-  {0x00d4, {1|F|D, {0x00f4}}},</div><div class='del'>-  {0x00d5, {1|F|D, {0x00f5}}},</div><div class='del'>-  {0x00d6, {1|F|D, {0x00f6}}},</div><div class='del'>-  {0x00d8, {1|F|D, {0x00f8}}},</div><div class='del'>-  {0x00d9, {1|F|D, {0x00f9}}},</div><div class='del'>-  {0x00da, {1|F|D, {0x00fa}}},</div><div class='del'>-  {0x00db, {1|F|D, {0x00fb}}},</div><div class='del'>-  {0x00dc, {1|F|D, {0x00fc}}},</div><div class='del'>-  {0x00dd, {1|F|D, {0x00fd}}},</div><div class='del'>-  {0x00de, {1|F|D, {0x00fe}}},</div><div class='del'>-  {0x00df, {2|F|ST|SU|I(1), {0x0073, 0x0073}}},</div><div class='del'>-  {0x0100, {1|F|D, {0x0101}}},</div><div class='del'>-  {0x0102, {1|F|D, {0x0103}}},</div><div class='del'>-  {0x0104, {1|F|D, {0x0105}}},</div><div class='del'>-  {0x0106, {1|F|D, {0x0107}}},</div><div class='del'>-  {0x0108, {1|F|D, {0x0109}}},</div><div class='del'>-  {0x010a, {1|F|D, {0x010b}}},</div><div class='del'>-  {0x010c, {1|F|D, {0x010d}}},</div><div class='del'>-  {0x010e, {1|F|D, {0x010f}}},</div><div class='del'>-  {0x0110, {1|F|D, {0x0111}}},</div><div class='del'>-  {0x0112, {1|F|D, {0x0113}}},</div><div class='del'>-  {0x0114, {1|F|D, {0x0115}}},</div><div class='del'>-  {0x0116, {1|F|D, {0x0117}}},</div><div class='del'>-  {0x0118, {1|F|D, {0x0119}}},</div><div class='del'>-  {0x011a, {1|F|D, {0x011b}}},</div><div class='del'>-  {0x011c, {1|F|D, {0x011d}}},</div><div class='del'>-  {0x011e, {1|F|D, {0x011f}}},</div><div class='del'>-  {0x0120, {1|F|D, {0x0121}}},</div><div class='del'>-  {0x0122, {1|F|D, {0x0123}}},</div><div class='del'>-  {0x0124, {1|F|D, {0x0125}}},</div><div class='del'>-  {0x0126, {1|F|D, {0x0127}}},</div><div class='del'>-  {0x0128, {1|F|D, {0x0129}}},</div><div class='del'>-  {0x012a, {1|F|D, {0x012b}}},</div><div class='del'>-  {0x012c, {1|F|D, {0x012d}}},</div><div class='del'>-  {0x012e, {1|F|D, {0x012f}}},</div><div class='del'>-  {0x0132, {1|F|D, {0x0133}}},</div><div class='del'>-  {0x0134, {1|F|D, {0x0135}}},</div><div class='del'>-  {0x0136, {1|F|D, {0x0137}}},</div><div class='del'>-  {0x0139, {1|F|D, {0x013a}}},</div><div class='del'>-  {0x013b, {1|F|D, {0x013c}}},</div><div class='del'>-  {0x013d, {1|F|D, {0x013e}}},</div><div class='del'>-  {0x013f, {1|F|D, {0x0140}}},</div><div class='del'>-  {0x0141, {1|F|D, {0x0142}}},</div><div class='del'>-  {0x0143, {1|F|D, {0x0144}}},</div><div class='del'>-  {0x0145, {1|F|D, {0x0146}}},</div><div class='del'>-  {0x0147, {1|F|D, {0x0148}}},</div><div class='del'>-  {0x0149, {2|F|SU|I(5), {0x02bc, 0x006e}}},</div><div class='del'>-  {0x014a, {1|F|D, {0x014b}}},</div><div class='del'>-  {0x014c, {1|F|D, {0x014d}}},</div><div class='del'>-  {0x014e, {1|F|D, {0x014f}}},</div><div class='del'>-  {0x0150, {1|F|D, {0x0151}}},</div><div class='del'>-  {0x0152, {1|F|D, {0x0153}}},</div><div class='del'>-  {0x0154, {1|F|D, {0x0155}}},</div><div class='del'>-  {0x0156, {1|F|D, {0x0157}}},</div><div class='del'>-  {0x0158, {1|F|D, {0x0159}}},</div><div class='del'>-  {0x015a, {1|F|D, {0x015b}}},</div><div class='del'>-  {0x015c, {1|F|D, {0x015d}}},</div><div class='del'>-  {0x015e, {1|F|D, {0x015f}}},</div><div class='del'>-  {0x0160, {1|F|D, {0x0161}}},</div><div class='del'>-  {0x0162, {1|F|D, {0x0163}}},</div><div class='del'>-  {0x0164, {1|F|D, {0x0165}}},</div><div class='del'>-  {0x0166, {1|F|D, {0x0167}}},</div><div class='del'>-  {0x0168, {1|F|D, {0x0169}}},</div><div class='del'>-  {0x016a, {1|F|D, {0x016b}}},</div><div class='del'>-  {0x016c, {1|F|D, {0x016d}}},</div><div class='del'>-  {0x016e, {1|F|D, {0x016f}}},</div><div class='del'>-  {0x0170, {1|F|D, {0x0171}}},</div><div class='del'>-  {0x0172, {1|F|D, {0x0173}}},</div><div class='del'>-  {0x0174, {1|F|D, {0x0175}}},</div><div class='del'>-  {0x0176, {1|F|D, {0x0177}}},</div><div class='del'>-  {0x0178, {1|F|D, {0x00ff}}},</div><div class='del'>-  {0x0179, {1|F|D, {0x017a}}},</div><div class='del'>-  {0x017b, {1|F|D, {0x017c}}},</div><div class='del'>-  {0x017d, {1|F|D, {0x017e}}},</div><div class='del'>-  {0x017f, {1|F|SU|I(7), {0x0073}}},</div><div class='del'>-  {0x0181, {1|F|D, {0x0253}}},</div><div class='del'>-  {0x0182, {1|F|D, {0x0183}}},</div><div class='del'>-  {0x0184, {1|F|D, {0x0185}}},</div><div class='del'>-  {0x0186, {1|F|D, {0x0254}}},</div><div class='del'>-  {0x0187, {1|F|D, {0x0188}}},</div><div class='del'>-  {0x0189, {1|F|D, {0x0256}}},</div><div class='del'>-  {0x018a, {1|F|D, {0x0257}}},</div><div class='del'>-  {0x018b, {1|F|D, {0x018c}}},</div><div class='del'>-  {0x018e, {1|F|D, {0x01dd}}},</div><div class='del'>-  {0x018f, {1|F|D, {0x0259}}},</div><div class='del'>-  {0x0190, {1|F|D, {0x025b}}},</div><div class='del'>-  {0x0191, {1|F|D, {0x0192}}},</div><div class='del'>-  {0x0193, {1|F|D, {0x0260}}},</div><div class='del'>-  {0x0194, {1|F|D, {0x0263}}},</div><div class='del'>-  {0x0196, {1|F|D, {0x0269}}},</div><div class='del'>-  {0x0197, {1|F|D, {0x0268}}},</div><div class='del'>-  {0x0198, {1|F|D, {0x0199}}},</div><div class='del'>-  {0x019c, {1|F|D, {0x026f}}},</div><div class='del'>-  {0x019d, {1|F|D, {0x0272}}},</div><div class='del'>-  {0x019f, {1|F|D, {0x0275}}},</div><div class='del'>-  {0x01a0, {1|F|D, {0x01a1}}},</div><div class='del'>-  {0x01a2, {1|F|D, {0x01a3}}},</div><div class='del'>-  {0x01a4, {1|F|D, {0x01a5}}},</div><div class='del'>-  {0x01a6, {1|F|D, {0x0280}}},</div><div class='del'>-  {0x01a7, {1|F|D, {0x01a8}}},</div><div class='del'>-  {0x01a9, {1|F|D, {0x0283}}},</div><div class='del'>-  {0x01ac, {1|F|D, {0x01ad}}},</div><div class='del'>-  {0x01ae, {1|F|D, {0x0288}}},</div><div class='del'>-  {0x01af, {1|F|D, {0x01b0}}},</div><div class='del'>-  {0x01b1, {1|F|D, {0x028a}}},</div><div class='del'>-  {0x01b2, {1|F|D, {0x028b}}},</div><div class='del'>-  {0x01b3, {1|F|D, {0x01b4}}},</div><div class='del'>-  {0x01b5, {1|F|D, {0x01b6}}},</div><div class='del'>-  {0x01b7, {1|F|D, {0x0292}}},</div><div class='del'>-  {0x01b8, {1|F|D, {0x01b9}}},</div><div class='del'>-  {0x01bc, {1|F|D, {0x01bd}}},</div><div class='del'>-  {0x01c4, {1|F|D|ST|I(8), {0x01c6}}},</div><div class='del'>-  {0x01c5, {1|F|D|IT|SU|I(9), {0x01c6}}},</div><div class='del'>-  {0x01c7, {1|F|D|ST|I(12), {0x01c9}}},</div><div class='del'>-  {0x01c8, {1|F|D|IT|SU|I(13), {0x01c9}}},</div><div class='del'>-  {0x01ca, {1|F|D|ST|I(16), {0x01cc}}},</div><div class='del'>-  {0x01cb, {1|F|D|IT|SU|I(17), {0x01cc}}},</div><div class='del'>-  {0x01cd, {1|F|D, {0x01ce}}},</div><div class='del'>-  {0x01cf, {1|F|D, {0x01d0}}},</div><div class='del'>-  {0x01d1, {1|F|D, {0x01d2}}},</div><div class='del'>-  {0x01d3, {1|F|D, {0x01d4}}},</div><div class='del'>-  {0x01d5, {1|F|D, {0x01d6}}},</div><div class='del'>-  {0x01d7, {1|F|D, {0x01d8}}},</div><div class='del'>-  {0x01d9, {1|F|D, {0x01da}}},</div><div class='del'>-  {0x01db, {1|F|D, {0x01dc}}},</div><div class='del'>-  {0x01de, {1|F|D, {0x01df}}},</div><div class='del'>-  {0x01e0, {1|F|D, {0x01e1}}},</div><div class='del'>-  {0x01e2, {1|F|D, {0x01e3}}},</div><div class='del'>-  {0x01e4, {1|F|D, {0x01e5}}},</div><div class='del'>-  {0x01e6, {1|F|D, {0x01e7}}},</div><div class='del'>-  {0x01e8, {1|F|D, {0x01e9}}},</div><div class='del'>-  {0x01ea, {1|F|D, {0x01eb}}},</div><div class='del'>-  {0x01ec, {1|F|D, {0x01ed}}},</div><div class='del'>-  {0x01ee, {1|F|D, {0x01ef}}},</div><div class='del'>-  {0x01f0, {2|F|SU|I(20), {0x006a, 0x030c}}},</div><div class='del'>-  {0x01f1, {1|F|D|ST|I(22), {0x01f3}}},</div><div class='del'>-  {0x01f2, {1|F|D|IT|SU|I(23), {0x01f3}}},</div><div class='del'>-  {0x01f4, {1|F|D, {0x01f5}}},</div><div class='del'>-  {0x01f6, {1|F|D, {0x0195}}},</div><div class='del'>-  {0x01f7, {1|F|D, {0x01bf}}},</div><div class='del'>-  {0x01f8, {1|F|D, {0x01f9}}},</div><div class='del'>-  {0x01fa, {1|F|D, {0x01fb}}},</div><div class='del'>-  {0x01fc, {1|F|D, {0x01fd}}},</div><div class='del'>-  {0x01fe, {1|F|D, {0x01ff}}},</div><div class='del'>-  {0x0200, {1|F|D, {0x0201}}},</div><div class='del'>-  {0x0202, {1|F|D, {0x0203}}},</div><div class='del'>-  {0x0204, {1|F|D, {0x0205}}},</div><div class='del'>-  {0x0206, {1|F|D, {0x0207}}},</div><div class='del'>-  {0x0208, {1|F|D, {0x0209}}},</div><div class='del'>-  {0x020a, {1|F|D, {0x020b}}},</div><div class='del'>-  {0x020c, {1|F|D, {0x020d}}},</div><div class='del'>-  {0x020e, {1|F|D, {0x020f}}},</div><div class='del'>-  {0x0210, {1|F|D, {0x0211}}},</div><div class='del'>-  {0x0212, {1|F|D, {0x0213}}},</div><div class='del'>-  {0x0214, {1|F|D, {0x0215}}},</div><div class='del'>-  {0x0216, {1|F|D, {0x0217}}},</div><div class='del'>-  {0x0218, {1|F|D, {0x0219}}},</div><div class='del'>-  {0x021a, {1|F|D, {0x021b}}},</div><div class='del'>-  {0x021c, {1|F|D, {0x021d}}},</div><div class='del'>-  {0x021e, {1|F|D, {0x021f}}},</div><div class='del'>-  {0x0220, {1|F|D, {0x019e}}},</div><div class='del'>-  {0x0222, {1|F|D, {0x0223}}},</div><div class='del'>-  {0x0224, {1|F|D, {0x0225}}},</div><div class='del'>-  {0x0226, {1|F|D, {0x0227}}},</div><div class='del'>-  {0x0228, {1|F|D, {0x0229}}},</div><div class='del'>-  {0x022a, {1|F|D, {0x022b}}},</div><div class='del'>-  {0x022c, {1|F|D, {0x022d}}},</div><div class='del'>-  {0x022e, {1|F|D, {0x022f}}},</div><div class='del'>-  {0x0230, {1|F|D, {0x0231}}},</div><div class='del'>-  {0x0232, {1|F|D, {0x0233}}},</div><div class='del'>-  {0x023a, {1|F|D, {0x2c65}}},</div><div class='del'>-  {0x023b, {1|F|D, {0x023c}}},</div><div class='del'>-  {0x023d, {1|F|D, {0x019a}}},</div><div class='del'>-  {0x023e, {1|F|D, {0x2c66}}},</div><div class='del'>-  {0x0241, {1|F|D, {0x0242}}},</div><div class='del'>-  {0x0243, {1|F|D, {0x0180}}},</div><div class='del'>-  {0x0244, {1|F|D, {0x0289}}},</div><div class='del'>-  {0x0245, {1|F|D, {0x028c}}},</div><div class='del'>-  {0x0246, {1|F|D, {0x0247}}},</div><div class='del'>-  {0x0248, {1|F|D, {0x0249}}},</div><div class='del'>-  {0x024a, {1|F|D, {0x024b}}},</div><div class='del'>-  {0x024c, {1|F|D, {0x024d}}},</div><div class='del'>-  {0x024e, {1|F|D, {0x024f}}},</div><div class='del'>-  {0x0345, {1|F|SU|I(26), {0x03b9}}},</div><div class='del'>-  {0x0370, {1|F|D, {0x0371}}},</div><div class='del'>-  {0x0372, {1|F|D, {0x0373}}},</div><div class='del'>-  {0x0376, {1|F|D, {0x0377}}},</div><div class='del'>-  {0x037f, {1|F|D, {0x03f3}}},</div><div class='del'>-  {0x0386, {1|F|D, {0x03ac}}},</div><div class='del'>-  {0x0388, {1|F|D, {0x03ad}}},</div><div class='del'>-  {0x0389, {1|F|D, {0x03ae}}},</div><div class='del'>-  {0x038a, {1|F|D, {0x03af}}},</div><div class='del'>-  {0x038c, {1|F|D, {0x03cc}}},</div><div class='del'>-  {0x038e, {1|F|D, {0x03cd}}},</div><div class='del'>-  {0x038f, {1|F|D, {0x03ce}}},</div><div class='del'>-  {0x0390, {3|F|SU|I(27), {0x03b9, 0x0308, 0x0301}}},</div><div class='del'>-  {0x0391, {1|F|D, {0x03b1}}},</div><div class='del'>-  {0x0392, {1|F|D, {0x03b2}}},</div><div class='del'>-  {0x0393, {1|F|D, {0x03b3}}},</div><div class='del'>-  {0x0394, {1|F|D, {0x03b4}}},</div><div class='del'>-  {0x0395, {1|F|D, {0x03b5}}},</div><div class='del'>-  {0x0396, {1|F|D, {0x03b6}}},</div><div class='del'>-  {0x0397, {1|F|D, {0x03b7}}},</div><div class='del'>-  {0x0398, {1|F|D, {0x03b8}}},</div><div class='del'>-  {0x0399, {1|F|D, {0x03b9}}},</div><div class='del'>-  {0x039a, {1|F|D, {0x03ba}}},</div><div class='del'>-  {0x039b, {1|F|D, {0x03bb}}},</div><div class='del'>-  {0x039c, {1|F|D, {0x03bc}}},</div><div class='del'>-  {0x039d, {1|F|D, {0x03bd}}},</div><div class='del'>-  {0x039e, {1|F|D, {0x03be}}},</div><div class='del'>-  {0x039f, {1|F|D, {0x03bf}}},</div><div class='del'>-  {0x03a0, {1|F|D, {0x03c0}}},</div><div class='del'>-  {0x03a1, {1|F|D, {0x03c1}}},</div><div class='del'>-  {0x03a3, {1|F|D, {0x03c3}}},</div><div class='del'>-  {0x03a4, {1|F|D, {0x03c4}}},</div><div class='del'>-  {0x03a5, {1|F|D, {0x03c5}}},</div><div class='del'>-  {0x03a6, {1|F|D, {0x03c6}}},</div><div class='del'>-  {0x03a7, {1|F|D, {0x03c7}}},</div><div class='del'>-  {0x03a8, {1|F|D, {0x03c8}}},</div><div class='del'>-  {0x03a9, {1|F|D, {0x03c9}}},</div><div class='del'>-  {0x03aa, {1|F|D, {0x03ca}}},</div><div class='del'>-  {0x03ab, {1|F|D, {0x03cb}}},</div><div class='del'>-  {0x03b0, {3|F|SU|I(30), {0x03c5, 0x0308, 0x0301}}},</div><div class='del'>-  {0x03c2, {1|F|SU|I(33), {0x03c3}}},</div><div class='del'>-  {0x03cf, {1|F|D, {0x03d7}}},</div><div class='del'>-  {0x03d0, {1|F|SU|I(34), {0x03b2}}},</div><div class='del'>-  {0x03d1, {1|F|SU|I(35), {0x03b8}}},</div><div class='del'>-  {0x03d5, {1|F|SU|I(36), {0x03c6}}},</div><div class='del'>-  {0x03d6, {1|F|SU|I(37), {0x03c0}}},</div><div class='del'>-  {0x03d8, {1|F|D, {0x03d9}}},</div><div class='del'>-  {0x03da, {1|F|D, {0x03db}}},</div><div class='del'>-  {0x03dc, {1|F|D, {0x03dd}}},</div><div class='del'>-  {0x03de, {1|F|D, {0x03df}}},</div><div class='del'>-  {0x03e0, {1|F|D, {0x03e1}}},</div><div class='del'>-  {0x03e2, {1|F|D, {0x03e3}}},</div><div class='del'>-  {0x03e4, {1|F|D, {0x03e5}}},</div><div class='del'>-  {0x03e6, {1|F|D, {0x03e7}}},</div><div class='del'>-  {0x03e8, {1|F|D, {0x03e9}}},</div><div class='del'>-  {0x03ea, {1|F|D, {0x03eb}}},</div><div class='del'>-  {0x03ec, {1|F|D, {0x03ed}}},</div><div class='del'>-  {0x03ee, {1|F|D, {0x03ef}}},</div><div class='del'>-  {0x03f0, {1|F|SU|I(38), {0x03ba}}},</div><div class='del'>-  {0x03f1, {1|F|SU|I(39), {0x03c1}}},</div><div class='del'>-  {0x03f4, {1|F|D, {0x03b8}}},</div><div class='del'>-  {0x03f5, {1|F|SU|I(40), {0x03b5}}},</div><div class='del'>-  {0x03f7, {1|F|D, {0x03f8}}},</div><div class='del'>-  {0x03f9, {1|F|D, {0x03f2}}},</div><div class='del'>-  {0x03fa, {1|F|D, {0x03fb}}},</div><div class='del'>-  {0x03fd, {1|F|D, {0x037b}}},</div><div class='del'>-  {0x03fe, {1|F|D, {0x037c}}},</div><div class='del'>-  {0x03ff, {1|F|D, {0x037d}}},</div><div class='del'>-  {0x0400, {1|F|D, {0x0450}}},</div><div class='del'>-  {0x0401, {1|F|D, {0x0451}}},</div><div class='del'>-  {0x0402, {1|F|D, {0x0452}}},</div><div class='del'>-  {0x0403, {1|F|D, {0x0453}}},</div><div class='del'>-  {0x0404, {1|F|D, {0x0454}}},</div><div class='del'>-  {0x0405, {1|F|D, {0x0455}}},</div><div class='del'>-  {0x0406, {1|F|D, {0x0456}}},</div><div class='del'>-  {0x0407, {1|F|D, {0x0457}}},</div><div class='del'>-  {0x0408, {1|F|D, {0x0458}}},</div><div class='del'>-  {0x0409, {1|F|D, {0x0459}}},</div><div class='del'>-  {0x040a, {1|F|D, {0x045a}}},</div><div class='del'>-  {0x040b, {1|F|D, {0x045b}}},</div><div class='del'>-  {0x040c, {1|F|D, {0x045c}}},</div><div class='del'>-  {0x040d, {1|F|D, {0x045d}}},</div><div class='del'>-  {0x040e, {1|F|D, {0x045e}}},</div><div class='del'>-  {0x040f, {1|F|D, {0x045f}}},</div><div class='del'>-  {0x0410, {1|F|D, {0x0430}}},</div><div class='del'>-  {0x0411, {1|F|D, {0x0431}}},</div><div class='del'>-  {0x0412, {1|F|D, {0x0432}}},</div><div class='del'>-  {0x0413, {1|F|D, {0x0433}}},</div><div class='del'>-  {0x0414, {1|F|D, {0x0434}}},</div><div class='del'>-  {0x0415, {1|F|D, {0x0435}}},</div><div class='del'>-  {0x0416, {1|F|D, {0x0436}}},</div><div class='del'>-  {0x0417, {1|F|D, {0x0437}}},</div><div class='del'>-  {0x0418, {1|F|D, {0x0438}}},</div><div class='del'>-  {0x0419, {1|F|D, {0x0439}}},</div><div class='del'>-  {0x041a, {1|F|D, {0x043a}}},</div><div class='del'>-  {0x041b, {1|F|D, {0x043b}}},</div><div class='del'>-  {0x041c, {1|F|D, {0x043c}}},</div><div class='del'>-  {0x041d, {1|F|D, {0x043d}}},</div><div class='del'>-  {0x041e, {1|F|D, {0x043e}}},</div><div class='del'>-  {0x041f, {1|F|D, {0x043f}}},</div><div class='del'>-  {0x0420, {1|F|D, {0x0440}}},</div><div class='del'>-  {0x0421, {1|F|D, {0x0441}}},</div><div class='del'>-  {0x0422, {1|F|D, {0x0442}}},</div><div class='del'>-  {0x0423, {1|F|D, {0x0443}}},</div><div class='del'>-  {0x0424, {1|F|D, {0x0444}}},</div><div class='del'>-  {0x0425, {1|F|D, {0x0445}}},</div><div class='del'>-  {0x0426, {1|F|D, {0x0446}}},</div><div class='del'>-  {0x0427, {1|F|D, {0x0447}}},</div><div class='del'>-  {0x0428, {1|F|D, {0x0448}}},</div><div class='del'>-  {0x0429, {1|F|D, {0x0449}}},</div><div class='del'>-  {0x042a, {1|F|D, {0x044a}}},</div><div class='del'>-  {0x042b, {1|F|D, {0x044b}}},</div><div class='del'>-  {0x042c, {1|F|D, {0x044c}}},</div><div class='del'>-  {0x042d, {1|F|D, {0x044d}}},</div><div class='del'>-  {0x042e, {1|F|D, {0x044e}}},</div><div class='del'>-  {0x042f, {1|F|D, {0x044f}}},</div><div class='del'>-  {0x0460, {1|F|D, {0x0461}}},</div><div class='del'>-  {0x0462, {1|F|D, {0x0463}}},</div><div class='del'>-  {0x0464, {1|F|D, {0x0465}}},</div><div class='del'>-  {0x0466, {1|F|D, {0x0467}}},</div><div class='del'>-  {0x0468, {1|F|D, {0x0469}}},</div><div class='del'>-  {0x046a, {1|F|D, {0x046b}}},</div><div class='del'>-  {0x046c, {1|F|D, {0x046d}}},</div><div class='del'>-  {0x046e, {1|F|D, {0x046f}}},</div><div class='del'>-  {0x0470, {1|F|D, {0x0471}}},</div><div class='del'>-  {0x0472, {1|F|D, {0x0473}}},</div><div class='del'>-  {0x0474, {1|F|D, {0x0475}}},</div><div class='del'>-  {0x0476, {1|F|D, {0x0477}}},</div><div class='del'>-  {0x0478, {1|F|D, {0x0479}}},</div><div class='del'>-  {0x047a, {1|F|D, {0x047b}}},</div><div class='del'>-  {0x047c, {1|F|D, {0x047d}}},</div><div class='del'>-  {0x047e, {1|F|D, {0x047f}}},</div><div class='del'>-  {0x0480, {1|F|D, {0x0481}}},</div><div class='del'>-  {0x048a, {1|F|D, {0x048b}}},</div><div class='del'>-  {0x048c, {1|F|D, {0x048d}}},</div><div class='del'>-  {0x048e, {1|F|D, {0x048f}}},</div><div class='del'>-  {0x0490, {1|F|D, {0x0491}}},</div><div class='del'>-  {0x0492, {1|F|D, {0x0493}}},</div><div class='del'>-  {0x0494, {1|F|D, {0x0495}}},</div><div class='del'>-  {0x0496, {1|F|D, {0x0497}}},</div><div class='del'>-  {0x0498, {1|F|D, {0x0499}}},</div><div class='del'>-  {0x049a, {1|F|D, {0x049b}}},</div><div class='del'>-  {0x049c, {1|F|D, {0x049d}}},</div><div class='del'>-  {0x049e, {1|F|D, {0x049f}}},</div><div class='del'>-  {0x04a0, {1|F|D, {0x04a1}}},</div><div class='del'>-  {0x04a2, {1|F|D, {0x04a3}}},</div><div class='del'>-  {0x04a4, {1|F|D, {0x04a5}}},</div><div class='del'>-  {0x04a6, {1|F|D, {0x04a7}}},</div><div class='del'>-  {0x04a8, {1|F|D, {0x04a9}}},</div><div class='del'>-  {0x04aa, {1|F|D, {0x04ab}}},</div><div class='del'>-  {0x04ac, {1|F|D, {0x04ad}}},</div><div class='del'>-  {0x04ae, {1|F|D, {0x04af}}},</div><div class='del'>-  {0x04b0, {1|F|D, {0x04b1}}},</div><div class='del'>-  {0x04b2, {1|F|D, {0x04b3}}},</div><div class='del'>-  {0x04b4, {1|F|D, {0x04b5}}},</div><div class='del'>-  {0x04b6, {1|F|D, {0x04b7}}},</div><div class='del'>-  {0x04b8, {1|F|D, {0x04b9}}},</div><div class='del'>-  {0x04ba, {1|F|D, {0x04bb}}},</div><div class='del'>-  {0x04bc, {1|F|D, {0x04bd}}},</div><div class='del'>-  {0x04be, {1|F|D, {0x04bf}}},</div><div class='del'>-  {0x04c0, {1|F|D, {0x04cf}}},</div><div class='del'>-  {0x04c1, {1|F|D, {0x04c2}}},</div><div class='del'>-  {0x04c3, {1|F|D, {0x04c4}}},</div><div class='del'>-  {0x04c5, {1|F|D, {0x04c6}}},</div><div class='del'>-  {0x04c7, {1|F|D, {0x04c8}}},</div><div class='del'>-  {0x04c9, {1|F|D, {0x04ca}}},</div><div class='del'>-  {0x04cb, {1|F|D, {0x04cc}}},</div><div class='del'>-  {0x04cd, {1|F|D, {0x04ce}}},</div><div class='del'>-  {0x04d0, {1|F|D, {0x04d1}}},</div><div class='del'>-  {0x04d2, {1|F|D, {0x04d3}}},</div><div class='del'>-  {0x04d4, {1|F|D, {0x04d5}}},</div><div class='del'>-  {0x04d6, {1|F|D, {0x04d7}}},</div><div class='del'>-  {0x04d8, {1|F|D, {0x04d9}}},</div><div class='del'>-  {0x04da, {1|F|D, {0x04db}}},</div><div class='del'>-  {0x04dc, {1|F|D, {0x04dd}}},</div><div class='del'>-  {0x04de, {1|F|D, {0x04df}}},</div><div class='del'>-  {0x04e0, {1|F|D, {0x04e1}}},</div><div class='del'>-  {0x04e2, {1|F|D, {0x04e3}}},</div><div class='del'>-  {0x04e4, {1|F|D, {0x04e5}}},</div><div class='del'>-  {0x04e6, {1|F|D, {0x04e7}}},</div><div class='del'>-  {0x04e8, {1|F|D, {0x04e9}}},</div><div class='del'>-  {0x04ea, {1|F|D, {0x04eb}}},</div><div class='del'>-  {0x04ec, {1|F|D, {0x04ed}}},</div><div class='del'>-  {0x04ee, {1|F|D, {0x04ef}}},</div><div class='del'>-  {0x04f0, {1|F|D, {0x04f1}}},</div><div class='del'>-  {0x04f2, {1|F|D, {0x04f3}}},</div><div class='del'>-  {0x04f4, {1|F|D, {0x04f5}}},</div><div class='del'>-  {0x04f6, {1|F|D, {0x04f7}}},</div><div class='del'>-  {0x04f8, {1|F|D, {0x04f9}}},</div><div class='del'>-  {0x04fa, {1|F|D, {0x04fb}}},</div><div class='del'>-  {0x04fc, {1|F|D, {0x04fd}}},</div><div class='del'>-  {0x04fe, {1|F|D, {0x04ff}}},</div><div class='del'>-  {0x0500, {1|F|D, {0x0501}}},</div><div class='del'>-  {0x0502, {1|F|D, {0x0503}}},</div><div class='del'>-  {0x0504, {1|F|D, {0x0505}}},</div><div class='del'>-  {0x0506, {1|F|D, {0x0507}}},</div><div class='del'>-  {0x0508, {1|F|D, {0x0509}}},</div><div class='del'>-  {0x050a, {1|F|D, {0x050b}}},</div><div class='del'>-  {0x050c, {1|F|D, {0x050d}}},</div><div class='del'>-  {0x050e, {1|F|D, {0x050f}}},</div><div class='del'>-  {0x0510, {1|F|D, {0x0511}}},</div><div class='del'>-  {0x0512, {1|F|D, {0x0513}}},</div><div class='del'>-  {0x0514, {1|F|D, {0x0515}}},</div><div class='del'>-  {0x0516, {1|F|D, {0x0517}}},</div><div class='del'>-  {0x0518, {1|F|D, {0x0519}}},</div><div class='del'>-  {0x051a, {1|F|D, {0x051b}}},</div><div class='del'>-  {0x051c, {1|F|D, {0x051d}}},</div><div class='del'>-  {0x051e, {1|F|D, {0x051f}}},</div><div class='del'>-  {0x0520, {1|F|D, {0x0521}}},</div><div class='del'>-  {0x0522, {1|F|D, {0x0523}}},</div><div class='del'>-  {0x0524, {1|F|D, {0x0525}}},</div><div class='del'>-  {0x0526, {1|F|D, {0x0527}}},</div><div class='del'>-  {0x0528, {1|F|D, {0x0529}}},</div><div class='del'>-  {0x052a, {1|F|D, {0x052b}}},</div><div class='del'>-  {0x052c, {1|F|D, {0x052d}}},</div><div class='del'>-  {0x052e, {1|F|D, {0x052f}}},</div><div class='del'>-  {0x0531, {1|F|D, {0x0561}}},</div><div class='del'>-  {0x0532, {1|F|D, {0x0562}}},</div><div class='del'>-  {0x0533, {1|F|D, {0x0563}}},</div><div class='del'>-  {0x0534, {1|F|D, {0x0564}}},</div><div class='del'>-  {0x0535, {1|F|D, {0x0565}}},</div><div class='del'>-  {0x0536, {1|F|D, {0x0566}}},</div><div class='del'>-  {0x0537, {1|F|D, {0x0567}}},</div><div class='del'>-  {0x0538, {1|F|D, {0x0568}}},</div><div class='del'>-  {0x0539, {1|F|D, {0x0569}}},</div><div class='del'>-  {0x053a, {1|F|D, {0x056a}}},</div><div class='del'>-  {0x053b, {1|F|D, {0x056b}}},</div><div class='del'>-  {0x053c, {1|F|D, {0x056c}}},</div><div class='del'>-  {0x053d, {1|F|D, {0x056d}}},</div><div class='del'>-  {0x053e, {1|F|D, {0x056e}}},</div><div class='del'>-  {0x053f, {1|F|D, {0x056f}}},</div><div class='del'>-  {0x0540, {1|F|D, {0x0570}}},</div><div class='del'>-  {0x0541, {1|F|D, {0x0571}}},</div><div class='del'>-  {0x0542, {1|F|D, {0x0572}}},</div><div class='del'>-  {0x0543, {1|F|D, {0x0573}}},</div><div class='del'>-  {0x0544, {1|F|D, {0x0574}}},</div><div class='del'>-  {0x0545, {1|F|D, {0x0575}}},</div><div class='del'>-  {0x0546, {1|F|D, {0x0576}}},</div><div class='del'>-  {0x0547, {1|F|D, {0x0577}}},</div><div class='del'>-  {0x0548, {1|F|D, {0x0578}}},</div><div class='del'>-  {0x0549, {1|F|D, {0x0579}}},</div><div class='del'>-  {0x054a, {1|F|D, {0x057a}}},</div><div class='del'>-  {0x054b, {1|F|D, {0x057b}}},</div><div class='del'>-  {0x054c, {1|F|D, {0x057c}}},</div><div class='del'>-  {0x054d, {1|F|D, {0x057d}}},</div><div class='del'>-  {0x054e, {1|F|D, {0x057e}}},</div><div class='del'>-  {0x054f, {1|F|D, {0x057f}}},</div><div class='del'>-  {0x0550, {1|F|D, {0x0580}}},</div><div class='del'>-  {0x0551, {1|F|D, {0x0581}}},</div><div class='del'>-  {0x0552, {1|F|D, {0x0582}}},</div><div class='del'>-  {0x0553, {1|F|D, {0x0583}}},</div><div class='del'>-  {0x0554, {1|F|D, {0x0584}}},</div><div class='del'>-  {0x0555, {1|F|D, {0x0585}}},</div><div class='del'>-  {0x0556, {1|F|D, {0x0586}}},</div><div class='del'>-  {0x0587, {2|F|ST|SU|I(41), {0x0565, 0x0582}}},</div><div class='del'>-  {0x10a0, {1|F|D, {0x2d00}}},</div><div class='del'>-  {0x10a1, {1|F|D, {0x2d01}}},</div><div class='del'>-  {0x10a2, {1|F|D, {0x2d02}}},</div><div class='del'>-  {0x10a3, {1|F|D, {0x2d03}}},</div><div class='del'>-  {0x10a4, {1|F|D, {0x2d04}}},</div><div class='del'>-  {0x10a5, {1|F|D, {0x2d05}}},</div><div class='del'>-  {0x10a6, {1|F|D, {0x2d06}}},</div><div class='del'>-  {0x10a7, {1|F|D, {0x2d07}}},</div><div class='del'>-  {0x10a8, {1|F|D, {0x2d08}}},</div><div class='del'>-  {0x10a9, {1|F|D, {0x2d09}}},</div><div class='del'>-  {0x10aa, {1|F|D, {0x2d0a}}},</div><div class='del'>-  {0x10ab, {1|F|D, {0x2d0b}}},</div><div class='del'>-  {0x10ac, {1|F|D, {0x2d0c}}},</div><div class='del'>-  {0x10ad, {1|F|D, {0x2d0d}}},</div><div class='del'>-  {0x10ae, {1|F|D, {0x2d0e}}},</div><div class='del'>-  {0x10af, {1|F|D, {0x2d0f}}},</div><div class='del'>-  {0x10b0, {1|F|D, {0x2d10}}},</div><div class='del'>-  {0x10b1, {1|F|D, {0x2d11}}},</div><div class='del'>-  {0x10b2, {1|F|D, {0x2d12}}},</div><div class='del'>-  {0x10b3, {1|F|D, {0x2d13}}},</div><div class='del'>-  {0x10b4, {1|F|D, {0x2d14}}},</div><div class='del'>-  {0x10b5, {1|F|D, {0x2d15}}},</div><div class='del'>-  {0x10b6, {1|F|D, {0x2d16}}},</div><div class='del'>-  {0x10b7, {1|F|D, {0x2d17}}},</div><div class='del'>-  {0x10b8, {1|F|D, {0x2d18}}},</div><div class='del'>-  {0x10b9, {1|F|D, {0x2d19}}},</div><div class='del'>-  {0x10ba, {1|F|D, {0x2d1a}}},</div><div class='del'>-  {0x10bb, {1|F|D, {0x2d1b}}},</div><div class='del'>-  {0x10bc, {1|F|D, {0x2d1c}}},</div><div class='del'>-  {0x10bd, {1|F|D, {0x2d1d}}},</div><div class='del'>-  {0x10be, {1|F|D, {0x2d1e}}},</div><div class='del'>-  {0x10bf, {1|F|D, {0x2d1f}}},</div><div class='del'>-  {0x10c0, {1|F|D, {0x2d20}}},</div><div class='del'>-  {0x10c1, {1|F|D, {0x2d21}}},</div><div class='del'>-  {0x10c2, {1|F|D, {0x2d22}}},</div><div class='del'>-  {0x10c3, {1|F|D, {0x2d23}}},</div><div class='del'>-  {0x10c4, {1|F|D, {0x2d24}}},</div><div class='del'>-  {0x10c5, {1|F|D, {0x2d25}}},</div><div class='del'>-  {0x10c7, {1|F|D, {0x2d27}}},</div><div class='del'>-  {0x10cd, {1|F|D, {0x2d2d}}},</div><div class='del'>-  {0x13f8, {1|F|U, {0x13f0}}},</div><div class='del'>-  {0x13f9, {1|F|U, {0x13f1}}},</div><div class='del'>-  {0x13fa, {1|F|U, {0x13f2}}},</div><div class='del'>-  {0x13fb, {1|F|U, {0x13f3}}},</div><div class='del'>-  {0x13fc, {1|F|U, {0x13f4}}},</div><div class='del'>-  {0x13fd, {1|F|U, {0x13f5}}},</div><div class='del'>-  {0x1c80, {1|F|SU|I(45), {0x0432}}},</div><div class='del'>-  {0x1c81, {1|F|SU|I(46), {0x0434}}},</div><div class='del'>-  {0x1c82, {1|F|SU|I(47), {0x043e}}},</div><div class='del'>-  {0x1c83, {1|F|SU|I(48), {0x0441}}},</div><div class='del'>-  {0x1c84, {1|F|SU|I(49), {0x0442}}},</div><div class='del'>-  {0x1c85, {1|F|SU|I(50), {0x0442}}},</div><div class='del'>-  {0x1c86, {1|F|SU|I(51), {0x044a}}},</div><div class='del'>-  {0x1c87, {1|F|SU|I(52), {0x0463}}},</div><div class='del'>-  {0x1c88, {1|F|SU|I(53), {0xa64b}}},</div><div class='del'>-  {0x1c90, {1|F|D, {0x10d0}}},</div><div class='del'>-  {0x1c91, {1|F|D, {0x10d1}}},</div><div class='del'>-  {0x1c92, {1|F|D, {0x10d2}}},</div><div class='del'>-  {0x1c93, {1|F|D, {0x10d3}}},</div><div class='del'>-  {0x1c94, {1|F|D, {0x10d4}}},</div><div class='del'>-  {0x1c95, {1|F|D, {0x10d5}}},</div><div class='del'>-  {0x1c96, {1|F|D, {0x10d6}}},</div><div class='del'>-  {0x1c97, {1|F|D, {0x10d7}}},</div><div class='del'>-  {0x1c98, {1|F|D, {0x10d8}}},</div><div class='del'>-  {0x1c99, {1|F|D, {0x10d9}}},</div><div class='del'>-  {0x1c9a, {1|F|D, {0x10da}}},</div><div class='del'>-  {0x1c9b, {1|F|D, {0x10db}}},</div><div class='del'>-  {0x1c9c, {1|F|D, {0x10dc}}},</div><div class='del'>-  {0x1c9d, {1|F|D, {0x10dd}}},</div><div class='del'>-  {0x1c9e, {1|F|D, {0x10de}}},</div><div class='del'>-  {0x1c9f, {1|F|D, {0x10df}}},</div><div class='del'>-  {0x1ca0, {1|F|D, {0x10e0}}},</div><div class='del'>-  {0x1ca1, {1|F|D, {0x10e1}}},</div><div class='del'>-  {0x1ca2, {1|F|D, {0x10e2}}},</div><div class='del'>-  {0x1ca3, {1|F|D, {0x10e3}}},</div><div class='del'>-  {0x1ca4, {1|F|D, {0x10e4}}},</div><div class='del'>-  {0x1ca5, {1|F|D, {0x10e5}}},</div><div class='del'>-  {0x1ca6, {1|F|D, {0x10e6}}},</div><div class='del'>-  {0x1ca7, {1|F|D, {0x10e7}}},</div><div class='del'>-  {0x1ca8, {1|F|D, {0x10e8}}},</div><div class='del'>-  {0x1ca9, {1|F|D, {0x10e9}}},</div><div class='del'>-  {0x1caa, {1|F|D, {0x10ea}}},</div><div class='del'>-  {0x1cab, {1|F|D, {0x10eb}}},</div><div class='del'>-  {0x1cac, {1|F|D, {0x10ec}}},</div><div class='del'>-  {0x1cad, {1|F|D, {0x10ed}}},</div><div class='del'>-  {0x1cae, {1|F|D, {0x10ee}}},</div><div class='del'>-  {0x1caf, {1|F|D, {0x10ef}}},</div><div class='del'>-  {0x1cb0, {1|F|D, {0x10f0}}},</div><div class='del'>-  {0x1cb1, {1|F|D, {0x10f1}}},</div><div class='del'>-  {0x1cb2, {1|F|D, {0x10f2}}},</div><div class='del'>-  {0x1cb3, {1|F|D, {0x10f3}}},</div><div class='del'>-  {0x1cb4, {1|F|D, {0x10f4}}},</div><div class='del'>-  {0x1cb5, {1|F|D, {0x10f5}}},</div><div class='del'>-  {0x1cb6, {1|F|D, {0x10f6}}},</div><div class='del'>-  {0x1cb7, {1|F|D, {0x10f7}}},</div><div class='del'>-  {0x1cb8, {1|F|D, {0x10f8}}},</div><div class='del'>-  {0x1cb9, {1|F|D, {0x10f9}}},</div><div class='del'>-  {0x1cba, {1|F|D, {0x10fa}}},</div><div class='del'>-  {0x1cbd, {1|F|D, {0x10fd}}},</div><div class='del'>-  {0x1cbe, {1|F|D, {0x10fe}}},</div><div class='del'>-  {0x1cbf, {1|F|D, {0x10ff}}},</div><div class='del'>-  {0x1e00, {1|F|D, {0x1e01}}},</div><div class='del'>-  {0x1e02, {1|F|D, {0x1e03}}},</div><div class='del'>-  {0x1e04, {1|F|D, {0x1e05}}},</div><div class='del'>-  {0x1e06, {1|F|D, {0x1e07}}},</div><div class='del'>-  {0x1e08, {1|F|D, {0x1e09}}},</div><div class='del'>-  {0x1e0a, {1|F|D, {0x1e0b}}},</div><div class='del'>-  {0x1e0c, {1|F|D, {0x1e0d}}},</div><div class='del'>-  {0x1e0e, {1|F|D, {0x1e0f}}},</div><div class='del'>-  {0x1e10, {1|F|D, {0x1e11}}},</div><div class='del'>-  {0x1e12, {1|F|D, {0x1e13}}},</div><div class='del'>-  {0x1e14, {1|F|D, {0x1e15}}},</div><div class='del'>-  {0x1e16, {1|F|D, {0x1e17}}},</div><div class='del'>-  {0x1e18, {1|F|D, {0x1e19}}},</div><div class='del'>-  {0x1e1a, {1|F|D, {0x1e1b}}},</div><div class='del'>-  {0x1e1c, {1|F|D, {0x1e1d}}},</div><div class='del'>-  {0x1e1e, {1|F|D, {0x1e1f}}},</div><div class='del'>-  {0x1e20, {1|F|D, {0x1e21}}},</div><div class='del'>-  {0x1e22, {1|F|D, {0x1e23}}},</div><div class='del'>-  {0x1e24, {1|F|D, {0x1e25}}},</div><div class='del'>-  {0x1e26, {1|F|D, {0x1e27}}},</div><div class='del'>-  {0x1e28, {1|F|D, {0x1e29}}},</div><div class='del'>-  {0x1e2a, {1|F|D, {0x1e2b}}},</div><div class='del'>-  {0x1e2c, {1|F|D, {0x1e2d}}},</div><div class='del'>-  {0x1e2e, {1|F|D, {0x1e2f}}},</div><div class='del'>-  {0x1e30, {1|F|D, {0x1e31}}},</div><div class='del'>-  {0x1e32, {1|F|D, {0x1e33}}},</div><div class='del'>-  {0x1e34, {1|F|D, {0x1e35}}},</div><div class='del'>-  {0x1e36, {1|F|D, {0x1e37}}},</div><div class='del'>-  {0x1e38, {1|F|D, {0x1e39}}},</div><div class='del'>-  {0x1e3a, {1|F|D, {0x1e3b}}},</div><div class='del'>-  {0x1e3c, {1|F|D, {0x1e3d}}},</div><div class='del'>-  {0x1e3e, {1|F|D, {0x1e3f}}},</div><div class='del'>-  {0x1e40, {1|F|D, {0x1e41}}},</div><div class='del'>-  {0x1e42, {1|F|D, {0x1e43}}},</div><div class='del'>-  {0x1e44, {1|F|D, {0x1e45}}},</div><div class='del'>-  {0x1e46, {1|F|D, {0x1e47}}},</div><div class='del'>-  {0x1e48, {1|F|D, {0x1e49}}},</div><div class='del'>-  {0x1e4a, {1|F|D, {0x1e4b}}},</div><div class='del'>-  {0x1e4c, {1|F|D, {0x1e4d}}},</div><div class='del'>-  {0x1e4e, {1|F|D, {0x1e4f}}},</div><div class='del'>-  {0x1e50, {1|F|D, {0x1e51}}},</div><div class='del'>-  {0x1e52, {1|F|D, {0x1e53}}},</div><div class='del'>-  {0x1e54, {1|F|D, {0x1e55}}},</div><div class='del'>-  {0x1e56, {1|F|D, {0x1e57}}},</div><div class='del'>-  {0x1e58, {1|F|D, {0x1e59}}},</div><div class='del'>-  {0x1e5a, {1|F|D, {0x1e5b}}},</div><div class='del'>-  {0x1e5c, {1|F|D, {0x1e5d}}},</div><div class='del'>-  {0x1e5e, {1|F|D, {0x1e5f}}},</div><div class='del'>-  {0x1e60, {1|F|D, {0x1e61}}},</div><div class='del'>-  {0x1e62, {1|F|D, {0x1e63}}},</div><div class='del'>-  {0x1e64, {1|F|D, {0x1e65}}},</div><div class='del'>-  {0x1e66, {1|F|D, {0x1e67}}},</div><div class='del'>-  {0x1e68, {1|F|D, {0x1e69}}},</div><div class='del'>-  {0x1e6a, {1|F|D, {0x1e6b}}},</div><div class='del'>-  {0x1e6c, {1|F|D, {0x1e6d}}},</div><div class='del'>-  {0x1e6e, {1|F|D, {0x1e6f}}},</div><div class='del'>-  {0x1e70, {1|F|D, {0x1e71}}},</div><div class='del'>-  {0x1e72, {1|F|D, {0x1e73}}},</div><div class='del'>-  {0x1e74, {1|F|D, {0x1e75}}},</div><div class='del'>-  {0x1e76, {1|F|D, {0x1e77}}},</div><div class='del'>-  {0x1e78, {1|F|D, {0x1e79}}},</div><div class='del'>-  {0x1e7a, {1|F|D, {0x1e7b}}},</div><div class='del'>-  {0x1e7c, {1|F|D, {0x1e7d}}},</div><div class='del'>-  {0x1e7e, {1|F|D, {0x1e7f}}},</div><div class='del'>-  {0x1e80, {1|F|D, {0x1e81}}},</div><div class='del'>-  {0x1e82, {1|F|D, {0x1e83}}},</div><div class='del'>-  {0x1e84, {1|F|D, {0x1e85}}},</div><div class='del'>-  {0x1e86, {1|F|D, {0x1e87}}},</div><div class='del'>-  {0x1e88, {1|F|D, {0x1e89}}},</div><div class='del'>-  {0x1e8a, {1|F|D, {0x1e8b}}},</div><div class='del'>-  {0x1e8c, {1|F|D, {0x1e8d}}},</div><div class='del'>-  {0x1e8e, {1|F|D, {0x1e8f}}},</div><div class='del'>-  {0x1e90, {1|F|D, {0x1e91}}},</div><div class='del'>-  {0x1e92, {1|F|D, {0x1e93}}},</div><div class='del'>-  {0x1e94, {1|F|D, {0x1e95}}},</div><div class='del'>-  {0x1e96, {2|F|SU|I(54), {0x0068, 0x0331}}},</div><div class='del'>-  {0x1e97, {2|F|SU|I(56), {0x0074, 0x0308}}},</div><div class='del'>-  {0x1e98, {2|F|SU|I(58), {0x0077, 0x030a}}},</div><div class='del'>-  {0x1e99, {2|F|SU|I(60), {0x0079, 0x030a}}},</div><div class='del'>-  {0x1e9a, {2|F|SU|I(62), {0x0061, 0x02be}}},</div><div class='del'>-  {0x1e9b, {1|F|SU|I(64), {0x1e61}}},</div><div class='del'>-  {0x1e9e, {2|F|SL|I(65), {0x0073, 0x0073}}},</div><div class='del'>-  {0x1ea0, {1|F|D, {0x1ea1}}},</div><div class='del'>-  {0x1ea2, {1|F|D, {0x1ea3}}},</div><div class='del'>-  {0x1ea4, {1|F|D, {0x1ea5}}},</div><div class='del'>-  {0x1ea6, {1|F|D, {0x1ea7}}},</div><div class='del'>-  {0x1ea8, {1|F|D, {0x1ea9}}},</div><div class='del'>-  {0x1eaa, {1|F|D, {0x1eab}}},</div><div class='del'>-  {0x1eac, {1|F|D, {0x1ead}}},</div><div class='del'>-  {0x1eae, {1|F|D, {0x1eaf}}},</div><div class='del'>-  {0x1eb0, {1|F|D, {0x1eb1}}},</div><div class='del'>-  {0x1eb2, {1|F|D, {0x1eb3}}},</div><div class='del'>-  {0x1eb4, {1|F|D, {0x1eb5}}},</div><div class='del'>-  {0x1eb6, {1|F|D, {0x1eb7}}},</div><div class='del'>-  {0x1eb8, {1|F|D, {0x1eb9}}},</div><div class='del'>-  {0x1eba, {1|F|D, {0x1ebb}}},</div><div class='del'>-  {0x1ebc, {1|F|D, {0x1ebd}}},</div><div class='del'>-  {0x1ebe, {1|F|D, {0x1ebf}}},</div><div class='del'>-  {0x1ec0, {1|F|D, {0x1ec1}}},</div><div class='del'>-  {0x1ec2, {1|F|D, {0x1ec3}}},</div><div class='del'>-  {0x1ec4, {1|F|D, {0x1ec5}}},</div><div class='del'>-  {0x1ec6, {1|F|D, {0x1ec7}}},</div><div class='del'>-  {0x1ec8, {1|F|D, {0x1ec9}}},</div><div class='del'>-  {0x1eca, {1|F|D, {0x1ecb}}},</div><div class='del'>-  {0x1ecc, {1|F|D, {0x1ecd}}},</div><div class='del'>-  {0x1ece, {1|F|D, {0x1ecf}}},</div><div class='del'>-  {0x1ed0, {1|F|D, {0x1ed1}}},</div><div class='del'>-  {0x1ed2, {1|F|D, {0x1ed3}}},</div><div class='del'>-  {0x1ed4, {1|F|D, {0x1ed5}}},</div><div class='del'>-  {0x1ed6, {1|F|D, {0x1ed7}}},</div><div class='del'>-  {0x1ed8, {1|F|D, {0x1ed9}}},</div><div class='del'>-  {0x1eda, {1|F|D, {0x1edb}}},</div><div class='del'>-  {0x1edc, {1|F|D, {0x1edd}}},</div><div class='del'>-  {0x1ede, {1|F|D, {0x1edf}}},</div><div class='del'>-  {0x1ee0, {1|F|D, {0x1ee1}}},</div><div class='del'>-  {0x1ee2, {1|F|D, {0x1ee3}}},</div><div class='del'>-  {0x1ee4, {1|F|D, {0x1ee5}}},</div><div class='del'>-  {0x1ee6, {1|F|D, {0x1ee7}}},</div><div class='del'>-  {0x1ee8, {1|F|D, {0x1ee9}}},</div><div class='del'>-  {0x1eea, {1|F|D, {0x1eeb}}},</div><div class='del'>-  {0x1eec, {1|F|D, {0x1eed}}},</div><div class='del'>-  {0x1eee, {1|F|D, {0x1eef}}},</div><div class='del'>-  {0x1ef0, {1|F|D, {0x1ef1}}},</div><div class='del'>-  {0x1ef2, {1|F|D, {0x1ef3}}},</div><div class='del'>-  {0x1ef4, {1|F|D, {0x1ef5}}},</div><div class='del'>-  {0x1ef6, {1|F|D, {0x1ef7}}},</div><div class='del'>-  {0x1ef8, {1|F|D, {0x1ef9}}},</div><div class='del'>-  {0x1efa, {1|F|D, {0x1efb}}},</div><div class='del'>-  {0x1efc, {1|F|D, {0x1efd}}},</div><div class='del'>-  {0x1efe, {1|F|D, {0x1eff}}},</div><div class='del'>-  {0x1f08, {1|F|D, {0x1f00}}},</div><div class='del'>-  {0x1f09, {1|F|D, {0x1f01}}},</div><div class='del'>-  {0x1f0a, {1|F|D, {0x1f02}}},</div><div class='del'>-  {0x1f0b, {1|F|D, {0x1f03}}},</div><div class='del'>-  {0x1f0c, {1|F|D, {0x1f04}}},</div><div class='del'>-  {0x1f0d, {1|F|D, {0x1f05}}},</div><div class='del'>-  {0x1f0e, {1|F|D, {0x1f06}}},</div><div class='del'>-  {0x1f0f, {1|F|D, {0x1f07}}},</div><div class='del'>-  {0x1f18, {1|F|D, {0x1f10}}},</div><div class='del'>-  {0x1f19, {1|F|D, {0x1f11}}},</div><div class='del'>-  {0x1f1a, {1|F|D, {0x1f12}}},</div><div class='del'>-  {0x1f1b, {1|F|D, {0x1f13}}},</div><div class='del'>-  {0x1f1c, {1|F|D, {0x1f14}}},</div><div class='del'>-  {0x1f1d, {1|F|D, {0x1f15}}},</div><div class='del'>-  {0x1f28, {1|F|D, {0x1f20}}},</div><div class='del'>-  {0x1f29, {1|F|D, {0x1f21}}},</div><div class='del'>-  {0x1f2a, {1|F|D, {0x1f22}}},</div><div class='del'>-  {0x1f2b, {1|F|D, {0x1f23}}},</div><div class='del'>-  {0x1f2c, {1|F|D, {0x1f24}}},</div><div class='del'>-  {0x1f2d, {1|F|D, {0x1f25}}},</div><div class='del'>-  {0x1f2e, {1|F|D, {0x1f26}}},</div><div class='del'>-  {0x1f2f, {1|F|D, {0x1f27}}},</div><div class='del'>-  {0x1f38, {1|F|D, {0x1f30}}},</div><div class='del'>-  {0x1f39, {1|F|D, {0x1f31}}},</div><div class='del'>-  {0x1f3a, {1|F|D, {0x1f32}}},</div><div class='del'>-  {0x1f3b, {1|F|D, {0x1f33}}},</div><div class='del'>-  {0x1f3c, {1|F|D, {0x1f34}}},</div><div class='del'>-  {0x1f3d, {1|F|D, {0x1f35}}},</div><div class='del'>-  {0x1f3e, {1|F|D, {0x1f36}}},</div><div class='del'>-  {0x1f3f, {1|F|D, {0x1f37}}},</div><div class='del'>-  {0x1f48, {1|F|D, {0x1f40}}},</div><div class='del'>-  {0x1f49, {1|F|D, {0x1f41}}},</div><div class='del'>-  {0x1f4a, {1|F|D, {0x1f42}}},</div><div class='del'>-  {0x1f4b, {1|F|D, {0x1f43}}},</div><div class='del'>-  {0x1f4c, {1|F|D, {0x1f44}}},</div><div class='del'>-  {0x1f4d, {1|F|D, {0x1f45}}},</div><div class='del'>-  {0x1f50, {2|F|SU|I(66), {0x03c5, 0x0313}}},</div><div class='del'>-  {0x1f52, {3|F|SU|I(68), {0x03c5, 0x0313, 0x0300}}},</div><div class='del'>-  {0x1f54, {3|F|SU|I(71), {0x03c5, 0x0313, 0x0301}}},</div><div class='del'>-  {0x1f56, {3|F|SU|I(74), {0x03c5, 0x0313, 0x0342}}},</div><div class='del'>-  {0x1f59, {1|F|D, {0x1f51}}},</div><div class='del'>-  {0x1f5b, {1|F|D, {0x1f53}}},</div><div class='del'>-  {0x1f5d, {1|F|D, {0x1f55}}},</div><div class='del'>-  {0x1f5f, {1|F|D, {0x1f57}}},</div><div class='del'>-  {0x1f68, {1|F|D, {0x1f60}}},</div><div class='del'>-  {0x1f69, {1|F|D, {0x1f61}}},</div><div class='del'>-  {0x1f6a, {1|F|D, {0x1f62}}},</div><div class='del'>-  {0x1f6b, {1|F|D, {0x1f63}}},</div><div class='del'>-  {0x1f6c, {1|F|D, {0x1f64}}},</div><div class='del'>-  {0x1f6d, {1|F|D, {0x1f65}}},</div><div class='del'>-  {0x1f6e, {1|F|D, {0x1f66}}},</div><div class='del'>-  {0x1f6f, {1|F|D, {0x1f67}}},</div><div class='del'>-  {0x1f80, {2|F|ST|SU|I(77), {0x1f00, 0x03b9}}},</div><div class='del'>-  {0x1f81, {2|F|ST|SU|I(80), {0x1f01, 0x03b9}}},</div><div class='del'>-  {0x1f82, {2|F|ST|SU|I(83), {0x1f02, 0x03b9}}},</div><div class='del'>-  {0x1f83, {2|F|ST|SU|I(86), {0x1f03, 0x03b9}}},</div><div class='del'>-  {0x1f84, {2|F|ST|SU|I(89), {0x1f04, 0x03b9}}},</div><div class='del'>-  {0x1f85, {2|F|ST|SU|I(92), {0x1f05, 0x03b9}}},</div><div class='del'>-  {0x1f86, {2|F|ST|SU|I(95), {0x1f06, 0x03b9}}},</div><div class='del'>-  {0x1f87, {2|F|ST|SU|I(98), {0x1f07, 0x03b9}}},</div><div class='del'>-  {0x1f88, {2|F|IT|SL|SU|I(101), {0x1f00, 0x03b9}}},</div><div class='del'>-  {0x1f89, {2|F|IT|SL|SU|I(106), {0x1f01, 0x03b9}}},</div><div class='del'>-  {0x1f8a, {2|F|IT|SL|SU|I(111), {0x1f02, 0x03b9}}},</div><div class='del'>-  {0x1f8b, {2|F|IT|SL|SU|I(116), {0x1f03, 0x03b9}}},</div><div class='del'>-  {0x1f8c, {2|F|IT|SL|SU|I(121), {0x1f04, 0x03b9}}},</div><div class='del'>-  {0x1f8d, {2|F|IT|SL|SU|I(126), {0x1f05, 0x03b9}}},</div><div class='del'>-  {0x1f8e, {2|F|IT|SL|SU|I(131), {0x1f06, 0x03b9}}},</div><div class='del'>-  {0x1f8f, {2|F|IT|SL|SU|I(136), {0x1f07, 0x03b9}}},</div><div class='del'>-  {0x1f90, {2|F|ST|SU|I(141), {0x1f20, 0x03b9}}},</div><div class='del'>-  {0x1f91, {2|F|ST|SU|I(144), {0x1f21, 0x03b9}}},</div><div class='del'>-  {0x1f92, {2|F|ST|SU|I(147), {0x1f22, 0x03b9}}},</div><div class='del'>-  {0x1f93, {2|F|ST|SU|I(150), {0x1f23, 0x03b9}}},</div><div class='del'>-  {0x1f94, {2|F|ST|SU|I(153), {0x1f24, 0x03b9}}},</div><div class='del'>-  {0x1f95, {2|F|ST|SU|I(156), {0x1f25, 0x03b9}}},</div><div class='del'>-  {0x1f96, {2|F|ST|SU|I(159), {0x1f26, 0x03b9}}},</div><div class='del'>-  {0x1f97, {2|F|ST|SU|I(162), {0x1f27, 0x03b9}}},</div><div class='del'>-  {0x1f98, {2|F|IT|SL|SU|I(165), {0x1f20, 0x03b9}}},</div><div class='del'>-  {0x1f99, {2|F|IT|SL|SU|I(170), {0x1f21, 0x03b9}}},</div><div class='del'>-  {0x1f9a, {2|F|IT|SL|SU|I(175), {0x1f22, 0x03b9}}},</div><div class='del'>-  {0x1f9b, {2|F|IT|SL|SU|I(180), {0x1f23, 0x03b9}}},</div><div class='del'>-  {0x1f9c, {2|F|IT|SL|SU|I(185), {0x1f24, 0x03b9}}},</div><div class='del'>-  {0x1f9d, {2|F|IT|SL|SU|I(190), {0x1f25, 0x03b9}}},</div><div class='del'>-  {0x1f9e, {2|F|IT|SL|SU|I(195), {0x1f26, 0x03b9}}},</div><div class='del'>-  {0x1f9f, {2|F|IT|SL|SU|I(200), {0x1f27, 0x03b9}}},</div><div class='del'>-  {0x1fa0, {2|F|ST|SU|I(205), {0x1f60, 0x03b9}}},</div><div class='del'>-  {0x1fa1, {2|F|ST|SU|I(208), {0x1f61, 0x03b9}}},</div><div class='del'>-  {0x1fa2, {2|F|ST|SU|I(211), {0x1f62, 0x03b9}}},</div><div class='del'>-  {0x1fa3, {2|F|ST|SU|I(214), {0x1f63, 0x03b9}}},</div><div class='del'>-  {0x1fa4, {2|F|ST|SU|I(217), {0x1f64, 0x03b9}}},</div><div class='del'>-  {0x1fa5, {2|F|ST|SU|I(220), {0x1f65, 0x03b9}}},</div><div class='del'>-  {0x1fa6, {2|F|ST|SU|I(223), {0x1f66, 0x03b9}}},</div><div class='del'>-  {0x1fa7, {2|F|ST|SU|I(226), {0x1f67, 0x03b9}}},</div><div class='del'>-  {0x1fa8, {2|F|IT|SL|SU|I(229), {0x1f60, 0x03b9}}},</div><div class='del'>-  {0x1fa9, {2|F|IT|SL|SU|I(234), {0x1f61, 0x03b9}}},</div><div class='del'>-  {0x1faa, {2|F|IT|SL|SU|I(239), {0x1f62, 0x03b9}}},</div><div class='del'>-  {0x1fab, {2|F|IT|SL|SU|I(244), {0x1f63, 0x03b9}}},</div><div class='del'>-  {0x1fac, {2|F|IT|SL|SU|I(249), {0x1f64, 0x03b9}}},</div><div class='del'>-  {0x1fad, {2|F|IT|SL|SU|I(254), {0x1f65, 0x03b9}}},</div><div class='del'>-  {0x1fae, {2|F|IT|SL|SU|I(259), {0x1f66, 0x03b9}}},</div><div class='del'>-  {0x1faf, {2|F|IT|SL|SU|I(264), {0x1f67, 0x03b9}}},</div><div class='del'>-  {0x1fb2, {2|F|ST|SU|I(269), {0x1f70, 0x03b9}}},</div><div class='del'>-  {0x1fb3, {2|F|ST|SU|I(273), {0x03b1, 0x03b9}}},</div><div class='del'>-  {0x1fb4, {2|F|ST|SU|I(276), {0x03ac, 0x03b9}}},</div><div class='del'>-  {0x1fb6, {2|F|SU|I(280), {0x03b1, 0x0342}}},</div><div class='del'>-  {0x1fb7, {3|F|ST|SU|I(282), {0x03b1, 0x0342, 0x03b9}}},</div><div class='del'>-  {0x1fb8, {1|F|D, {0x1fb0}}},</div><div class='del'>-  {0x1fb9, {1|F|D, {0x1fb1}}},</div><div class='del'>-  {0x1fba, {1|F|D, {0x1f70}}},</div><div class='del'>-  {0x1fbb, {1|F|D, {0x1f71}}},</div><div class='del'>-  {0x1fbc, {2|F|IT|SL|SU|I(288), {0x03b1, 0x03b9}}},</div><div class='del'>-  {0x1fbe, {1|F|SU|I(293), {0x03b9}}},</div><div class='del'>-  {0x1fc2, {2|F|ST|SU|I(294), {0x1f74, 0x03b9}}},</div><div class='del'>-  {0x1fc3, {2|F|ST|SU|I(298), {0x03b7, 0x03b9}}},</div><div class='del'>-  {0x1fc4, {2|F|ST|SU|I(301), {0x03ae, 0x03b9}}},</div><div class='del'>-  {0x1fc6, {2|F|SU|I(305), {0x03b7, 0x0342}}},</div><div class='del'>-  {0x1fc7, {3|F|ST|SU|I(307), {0x03b7, 0x0342, 0x03b9}}},</div><div class='del'>-  {0x1fc8, {1|F|D, {0x1f72}}},</div><div class='del'>-  {0x1fc9, {1|F|D, {0x1f73}}},</div><div class='del'>-  {0x1fca, {1|F|D, {0x1f74}}},</div><div class='del'>-  {0x1fcb, {1|F|D, {0x1f75}}},</div><div class='del'>-  {0x1fcc, {2|F|IT|SL|SU|I(313), {0x03b7, 0x03b9}}},</div><div class='del'>-  {0x1fd2, {3|F|SU|I(318), {0x03b9, 0x0308, 0x0300}}},</div><div class='del'>-  {0x1fd3, {3|F|SU|I(321), {0x03b9, 0x0308, 0x0301}}},</div><div class='del'>-  {0x1fd6, {2|F|SU|I(324), {0x03b9, 0x0342}}},</div><div class='del'>-  {0x1fd7, {3|F|SU|I(326), {0x03b9, 0x0308, 0x0342}}},</div><div class='del'>-  {0x1fd8, {1|F|D, {0x1fd0}}},</div><div class='del'>-  {0x1fd9, {1|F|D, {0x1fd1}}},</div><div class='del'>-  {0x1fda, {1|F|D, {0x1f76}}},</div><div class='del'>-  {0x1fdb, {1|F|D, {0x1f77}}},</div><div class='del'>-  {0x1fe2, {3|F|SU|I(329), {0x03c5, 0x0308, 0x0300}}},</div><div class='del'>-  {0x1fe3, {3|F|SU|I(332), {0x03c5, 0x0308, 0x0301}}},</div><div class='del'>-  {0x1fe4, {2|F|SU|I(335), {0x03c1, 0x0313}}},</div><div class='del'>-  {0x1fe6, {2|F|SU|I(337), {0x03c5, 0x0342}}},</div><div class='del'>-  {0x1fe7, {3|F|SU|I(339), {0x03c5, 0x0308, 0x0342}}},</div><div class='del'>-  {0x1fe8, {1|F|D, {0x1fe0}}},</div><div class='del'>-  {0x1fe9, {1|F|D, {0x1fe1}}},</div><div class='del'>-  {0x1fea, {1|F|D, {0x1f7a}}},</div><div class='del'>-  {0x1feb, {1|F|D, {0x1f7b}}},</div><div class='del'>-  {0x1fec, {1|F|D, {0x1fe5}}},</div><div class='del'>-  {0x1ff2, {2|F|ST|SU|I(342), {0x1f7c, 0x03b9}}},</div><div class='del'>-  {0x1ff3, {2|F|ST|SU|I(346), {0x03c9, 0x03b9}}},</div><div class='del'>-  {0x1ff4, {2|F|ST|SU|I(349), {0x03ce, 0x03b9}}},</div><div class='del'>-  {0x1ff6, {2|F|SU|I(353), {0x03c9, 0x0342}}},</div><div class='del'>-  {0x1ff7, {3|F|ST|SU|I(355), {0x03c9, 0x0342, 0x03b9}}},</div><div class='del'>-  {0x1ff8, {1|F|D, {0x1f78}}},</div><div class='del'>-  {0x1ff9, {1|F|D, {0x1f79}}},</div><div class='del'>-  {0x1ffa, {1|F|D, {0x1f7c}}},</div><div class='del'>-  {0x1ffb, {1|F|D, {0x1f7d}}},</div><div class='del'>-  {0x1ffc, {2|F|IT|SL|SU|I(361), {0x03c9, 0x03b9}}},</div><div class='del'>-  {0x2126, {1|F|D, {0x03c9}}},</div><div class='del'>-  {0x212a, {1|F|D, {0x006b}}},</div><div class='del'>-  {0x212b, {1|F|D, {0x00e5}}},</div><div class='del'>-  {0x2132, {1|F|D, {0x214e}}},</div><div class='del'>-  {0x2160, {1|F|D, {0x2170}}},</div><div class='del'>-  {0x2161, {1|F|D, {0x2171}}},</div><div class='del'>-  {0x2162, {1|F|D, {0x2172}}},</div><div class='del'>-  {0x2163, {1|F|D, {0x2173}}},</div><div class='del'>-  {0x2164, {1|F|D, {0x2174}}},</div><div class='del'>-  {0x2165, {1|F|D, {0x2175}}},</div><div class='del'>-  {0x2166, {1|F|D, {0x2176}}},</div><div class='del'>-  {0x2167, {1|F|D, {0x2177}}},</div><div class='del'>-  {0x2168, {1|F|D, {0x2178}}},</div><div class='del'>-  {0x2169, {1|F|D, {0x2179}}},</div><div class='del'>-  {0x216a, {1|F|D, {0x217a}}},</div><div class='del'>-  {0x216b, {1|F|D, {0x217b}}},</div><div class='del'>-  {0x216c, {1|F|D, {0x217c}}},</div><div class='del'>-  {0x216d, {1|F|D, {0x217d}}},</div><div class='del'>-  {0x216e, {1|F|D, {0x217e}}},</div><div class='del'>-  {0x216f, {1|F|D, {0x217f}}},</div><div class='del'>-  {0x2183, {1|F|D, {0x2184}}},</div><div class='del'>-  {0x24b6, {1|F|D, {0x24d0}}},</div><div class='del'>-  {0x24b7, {1|F|D, {0x24d1}}},</div><div class='del'>-  {0x24b8, {1|F|D, {0x24d2}}},</div><div class='del'>-  {0x24b9, {1|F|D, {0x24d3}}},</div><div class='del'>-  {0x24ba, {1|F|D, {0x24d4}}},</div><div class='del'>-  {0x24bb, {1|F|D, {0x24d5}}},</div><div class='del'>-  {0x24bc, {1|F|D, {0x24d6}}},</div><div class='del'>-  {0x24bd, {1|F|D, {0x24d7}}},</div><div class='del'>-  {0x24be, {1|F|D, {0x24d8}}},</div><div class='del'>-  {0x24bf, {1|F|D, {0x24d9}}},</div><div class='del'>-  {0x24c0, {1|F|D, {0x24da}}},</div><div class='del'>-  {0x24c1, {1|F|D, {0x24db}}},</div><div class='del'>-  {0x24c2, {1|F|D, {0x24dc}}},</div><div class='del'>-  {0x24c3, {1|F|D, {0x24dd}}},</div><div class='del'>-  {0x24c4, {1|F|D, {0x24de}}},</div><div class='del'>-  {0x24c5, {1|F|D, {0x24df}}},</div><div class='del'>-  {0x24c6, {1|F|D, {0x24e0}}},</div><div class='del'>-  {0x24c7, {1|F|D, {0x24e1}}},</div><div class='del'>-  {0x24c8, {1|F|D, {0x24e2}}},</div><div class='del'>-  {0x24c9, {1|F|D, {0x24e3}}},</div><div class='del'>-  {0x24ca, {1|F|D, {0x24e4}}},</div><div class='del'>-  {0x24cb, {1|F|D, {0x24e5}}},</div><div class='del'>-  {0x24cc, {1|F|D, {0x24e6}}},</div><div class='del'>-  {0x24cd, {1|F|D, {0x24e7}}},</div><div class='del'>-  {0x24ce, {1|F|D, {0x24e8}}},</div><div class='del'>-  {0x24cf, {1|F|D, {0x24e9}}},</div><div class='del'>-  {0x2c00, {1|F|D, {0x2c30}}},</div><div class='del'>-  {0x2c01, {1|F|D, {0x2c31}}},</div><div class='del'>-  {0x2c02, {1|F|D, {0x2c32}}},</div><div class='del'>-  {0x2c03, {1|F|D, {0x2c33}}},</div><div class='del'>-  {0x2c04, {1|F|D, {0x2c34}}},</div><div class='del'>-  {0x2c05, {1|F|D, {0x2c35}}},</div><div class='del'>-  {0x2c06, {1|F|D, {0x2c36}}},</div><div class='del'>-  {0x2c07, {1|F|D, {0x2c37}}},</div><div class='del'>-  {0x2c08, {1|F|D, {0x2c38}}},</div><div class='del'>-  {0x2c09, {1|F|D, {0x2c39}}},</div><div class='del'>-  {0x2c0a, {1|F|D, {0x2c3a}}},</div><div class='del'>-  {0x2c0b, {1|F|D, {0x2c3b}}},</div><div class='del'>-  {0x2c0c, {1|F|D, {0x2c3c}}},</div><div class='del'>-  {0x2c0d, {1|F|D, {0x2c3d}}},</div><div class='del'>-  {0x2c0e, {1|F|D, {0x2c3e}}},</div><div class='del'>-  {0x2c0f, {1|F|D, {0x2c3f}}},</div><div class='del'>-  {0x2c10, {1|F|D, {0x2c40}}},</div><div class='del'>-  {0x2c11, {1|F|D, {0x2c41}}},</div><div class='del'>-  {0x2c12, {1|F|D, {0x2c42}}},</div><div class='del'>-  {0x2c13, {1|F|D, {0x2c43}}},</div><div class='del'>-  {0x2c14, {1|F|D, {0x2c44}}},</div><div class='del'>-  {0x2c15, {1|F|D, {0x2c45}}},</div><div class='del'>-  {0x2c16, {1|F|D, {0x2c46}}},</div><div class='del'>-  {0x2c17, {1|F|D, {0x2c47}}},</div><div class='del'>-  {0x2c18, {1|F|D, {0x2c48}}},</div><div class='del'>-  {0x2c19, {1|F|D, {0x2c49}}},</div><div class='del'>-  {0x2c1a, {1|F|D, {0x2c4a}}},</div><div class='del'>-  {0x2c1b, {1|F|D, {0x2c4b}}},</div><div class='del'>-  {0x2c1c, {1|F|D, {0x2c4c}}},</div><div class='del'>-  {0x2c1d, {1|F|D, {0x2c4d}}},</div><div class='del'>-  {0x2c1e, {1|F|D, {0x2c4e}}},</div><div class='del'>-  {0x2c1f, {1|F|D, {0x2c4f}}},</div><div class='del'>-  {0x2c20, {1|F|D, {0x2c50}}},</div><div class='del'>-  {0x2c21, {1|F|D, {0x2c51}}},</div><div class='del'>-  {0x2c22, {1|F|D, {0x2c52}}},</div><div class='del'>-  {0x2c23, {1|F|D, {0x2c53}}},</div><div class='del'>-  {0x2c24, {1|F|D, {0x2c54}}},</div><div class='del'>-  {0x2c25, {1|F|D, {0x2c55}}},</div><div class='del'>-  {0x2c26, {1|F|D, {0x2c56}}},</div><div class='del'>-  {0x2c27, {1|F|D, {0x2c57}}},</div><div class='del'>-  {0x2c28, {1|F|D, {0x2c58}}},</div><div class='del'>-  {0x2c29, {1|F|D, {0x2c59}}},</div><div class='del'>-  {0x2c2a, {1|F|D, {0x2c5a}}},</div><div class='del'>-  {0x2c2b, {1|F|D, {0x2c5b}}},</div><div class='del'>-  {0x2c2c, {1|F|D, {0x2c5c}}},</div><div class='del'>-  {0x2c2d, {1|F|D, {0x2c5d}}},</div><div class='del'>-  {0x2c2e, {1|F|D, {0x2c5e}}},</div><div class='del'>-  {0x2c60, {1|F|D, {0x2c61}}},</div><div class='del'>-  {0x2c62, {1|F|D, {0x026b}}},</div><div class='del'>-  {0x2c63, {1|F|D, {0x1d7d}}},</div><div class='del'>-  {0x2c64, {1|F|D, {0x027d}}},</div><div class='del'>-  {0x2c67, {1|F|D, {0x2c68}}},</div><div class='del'>-  {0x2c69, {1|F|D, {0x2c6a}}},</div><div class='del'>-  {0x2c6b, {1|F|D, {0x2c6c}}},</div><div class='del'>-  {0x2c6d, {1|F|D, {0x0251}}},</div><div class='del'>-  {0x2c6e, {1|F|D, {0x0271}}},</div><div class='del'>-  {0x2c6f, {1|F|D, {0x0250}}},</div><div class='del'>-  {0x2c70, {1|F|D, {0x0252}}},</div><div class='del'>-  {0x2c72, {1|F|D, {0x2c73}}},</div><div class='del'>-  {0x2c75, {1|F|D, {0x2c76}}},</div><div class='del'>-  {0x2c7e, {1|F|D, {0x023f}}},</div><div class='del'>-  {0x2c7f, {1|F|D, {0x0240}}},</div><div class='del'>-  {0x2c80, {1|F|D, {0x2c81}}},</div><div class='del'>-  {0x2c82, {1|F|D, {0x2c83}}},</div><div class='del'>-  {0x2c84, {1|F|D, {0x2c85}}},</div><div class='del'>-  {0x2c86, {1|F|D, {0x2c87}}},</div><div class='del'>-  {0x2c88, {1|F|D, {0x2c89}}},</div><div class='del'>-  {0x2c8a, {1|F|D, {0x2c8b}}},</div><div class='del'>-  {0x2c8c, {1|F|D, {0x2c8d}}},</div><div class='del'>-  {0x2c8e, {1|F|D, {0x2c8f}}},</div><div class='del'>-  {0x2c90, {1|F|D, {0x2c91}}},</div><div class='del'>-  {0x2c92, {1|F|D, {0x2c93}}},</div><div class='del'>-  {0x2c94, {1|F|D, {0x2c95}}},</div><div class='del'>-  {0x2c96, {1|F|D, {0x2c97}}},</div><div class='del'>-  {0x2c98, {1|F|D, {0x2c99}}},</div><div class='del'>-  {0x2c9a, {1|F|D, {0x2c9b}}},</div><div class='del'>-  {0x2c9c, {1|F|D, {0x2c9d}}},</div><div class='del'>-  {0x2c9e, {1|F|D, {0x2c9f}}},</div><div class='del'>-  {0x2ca0, {1|F|D, {0x2ca1}}},</div><div class='del'>-  {0x2ca2, {1|F|D, {0x2ca3}}},</div><div class='del'>-  {0x2ca4, {1|F|D, {0x2ca5}}},</div><div class='del'>-  {0x2ca6, {1|F|D, {0x2ca7}}},</div><div class='del'>-  {0x2ca8, {1|F|D, {0x2ca9}}},</div><div class='del'>-  {0x2caa, {1|F|D, {0x2cab}}},</div><div class='del'>-  {0x2cac, {1|F|D, {0x2cad}}},</div><div class='del'>-  {0x2cae, {1|F|D, {0x2caf}}},</div><div class='del'>-  {0x2cb0, {1|F|D, {0x2cb1}}},</div><div class='del'>-  {0x2cb2, {1|F|D, {0x2cb3}}},</div><div class='del'>-  {0x2cb4, {1|F|D, {0x2cb5}}},</div><div class='del'>-  {0x2cb6, {1|F|D, {0x2cb7}}},</div><div class='del'>-  {0x2cb8, {1|F|D, {0x2cb9}}},</div><div class='del'>-  {0x2cba, {1|F|D, {0x2cbb}}},</div><div class='del'>-  {0x2cbc, {1|F|D, {0x2cbd}}},</div><div class='del'>-  {0x2cbe, {1|F|D, {0x2cbf}}},</div><div class='del'>-  {0x2cc0, {1|F|D, {0x2cc1}}},</div><div class='del'>-  {0x2cc2, {1|F|D, {0x2cc3}}},</div><div class='del'>-  {0x2cc4, {1|F|D, {0x2cc5}}},</div><div class='del'>-  {0x2cc6, {1|F|D, {0x2cc7}}},</div><div class='del'>-  {0x2cc8, {1|F|D, {0x2cc9}}},</div><div class='del'>-  {0x2cca, {1|F|D, {0x2ccb}}},</div><div class='del'>-  {0x2ccc, {1|F|D, {0x2ccd}}},</div><div class='del'>-  {0x2cce, {1|F|D, {0x2ccf}}},</div><div class='del'>-  {0x2cd0, {1|F|D, {0x2cd1}}},</div><div class='del'>-  {0x2cd2, {1|F|D, {0x2cd3}}},</div><div class='del'>-  {0x2cd4, {1|F|D, {0x2cd5}}},</div><div class='del'>-  {0x2cd6, {1|F|D, {0x2cd7}}},</div><div class='del'>-  {0x2cd8, {1|F|D, {0x2cd9}}},</div><div class='del'>-  {0x2cda, {1|F|D, {0x2cdb}}},</div><div class='del'>-  {0x2cdc, {1|F|D, {0x2cdd}}},</div><div class='del'>-  {0x2cde, {1|F|D, {0x2cdf}}},</div><div class='del'>-  {0x2ce0, {1|F|D, {0x2ce1}}},</div><div class='del'>-  {0x2ce2, {1|F|D, {0x2ce3}}},</div><div class='del'>-  {0x2ceb, {1|F|D, {0x2cec}}},</div><div class='del'>-  {0x2ced, {1|F|D, {0x2cee}}},</div><div class='del'>-  {0x2cf2, {1|F|D, {0x2cf3}}},</div><div class='del'>-  {0xa640, {1|F|D, {0xa641}}},</div><div class='del'>-  {0xa642, {1|F|D, {0xa643}}},</div><div class='del'>-  {0xa644, {1|F|D, {0xa645}}},</div><div class='del'>-  {0xa646, {1|F|D, {0xa647}}},</div><div class='del'>-  {0xa648, {1|F|D, {0xa649}}},</div><div class='del'>-  {0xa64a, {1|F|D, {0xa64b}}},</div><div class='del'>-  {0xa64c, {1|F|D, {0xa64d}}},</div><div class='del'>-  {0xa64e, {1|F|D, {0xa64f}}},</div><div class='del'>-  {0xa650, {1|F|D, {0xa651}}},</div><div class='del'>-  {0xa652, {1|F|D, {0xa653}}},</div><div class='del'>-  {0xa654, {1|F|D, {0xa655}}},</div><div class='del'>-  {0xa656, {1|F|D, {0xa657}}},</div><div class='del'>-  {0xa658, {1|F|D, {0xa659}}},</div><div class='del'>-  {0xa65a, {1|F|D, {0xa65b}}},</div><div class='del'>-  {0xa65c, {1|F|D, {0xa65d}}},</div><div class='del'>-  {0xa65e, {1|F|D, {0xa65f}}},</div><div class='del'>-  {0xa660, {1|F|D, {0xa661}}},</div><div class='del'>-  {0xa662, {1|F|D, {0xa663}}},</div><div class='del'>-  {0xa664, {1|F|D, {0xa665}}},</div><div class='del'>-  {0xa666, {1|F|D, {0xa667}}},</div><div class='del'>-  {0xa668, {1|F|D, {0xa669}}},</div><div class='del'>-  {0xa66a, {1|F|D, {0xa66b}}},</div><div class='del'>-  {0xa66c, {1|F|D, {0xa66d}}},</div><div class='del'>-  {0xa680, {1|F|D, {0xa681}}},</div><div class='del'>-  {0xa682, {1|F|D, {0xa683}}},</div><div class='del'>-  {0xa684, {1|F|D, {0xa685}}},</div><div class='del'>-  {0xa686, {1|F|D, {0xa687}}},</div><div class='del'>-  {0xa688, {1|F|D, {0xa689}}},</div><div class='del'>-  {0xa68a, {1|F|D, {0xa68b}}},</div><div class='del'>-  {0xa68c, {1|F|D, {0xa68d}}},</div><div class='del'>-  {0xa68e, {1|F|D, {0xa68f}}},</div><div class='del'>-  {0xa690, {1|F|D, {0xa691}}},</div><div class='del'>-  {0xa692, {1|F|D, {0xa693}}},</div><div class='del'>-  {0xa694, {1|F|D, {0xa695}}},</div><div class='del'>-  {0xa696, {1|F|D, {0xa697}}},</div><div class='del'>-  {0xa698, {1|F|D, {0xa699}}},</div><div class='del'>-  {0xa69a, {1|F|D, {0xa69b}}},</div><div class='del'>-  {0xa722, {1|F|D, {0xa723}}},</div><div class='del'>-  {0xa724, {1|F|D, {0xa725}}},</div><div class='del'>-  {0xa726, {1|F|D, {0xa727}}},</div><div class='del'>-  {0xa728, {1|F|D, {0xa729}}},</div><div class='del'>-  {0xa72a, {1|F|D, {0xa72b}}},</div><div class='del'>-  {0xa72c, {1|F|D, {0xa72d}}},</div><div class='del'>-  {0xa72e, {1|F|D, {0xa72f}}},</div><div class='del'>-  {0xa732, {1|F|D, {0xa733}}},</div><div class='del'>-  {0xa734, {1|F|D, {0xa735}}},</div><div class='del'>-  {0xa736, {1|F|D, {0xa737}}},</div><div class='del'>-  {0xa738, {1|F|D, {0xa739}}},</div><div class='del'>-  {0xa73a, {1|F|D, {0xa73b}}},</div><div class='del'>-  {0xa73c, {1|F|D, {0xa73d}}},</div><div class='del'>-  {0xa73e, {1|F|D, {0xa73f}}},</div><div class='del'>-  {0xa740, {1|F|D, {0xa741}}},</div><div class='del'>-  {0xa742, {1|F|D, {0xa743}}},</div><div class='del'>-  {0xa744, {1|F|D, {0xa745}}},</div><div class='del'>-  {0xa746, {1|F|D, {0xa747}}},</div><div class='del'>-  {0xa748, {1|F|D, {0xa749}}},</div><div class='del'>-  {0xa74a, {1|F|D, {0xa74b}}},</div><div class='del'>-  {0xa74c, {1|F|D, {0xa74d}}},</div><div class='del'>-  {0xa74e, {1|F|D, {0xa74f}}},</div><div class='del'>-  {0xa750, {1|F|D, {0xa751}}},</div><div class='del'>-  {0xa752, {1|F|D, {0xa753}}},</div><div class='del'>-  {0xa754, {1|F|D, {0xa755}}},</div><div class='del'>-  {0xa756, {1|F|D, {0xa757}}},</div><div class='del'>-  {0xa758, {1|F|D, {0xa759}}},</div><div class='del'>-  {0xa75a, {1|F|D, {0xa75b}}},</div><div class='del'>-  {0xa75c, {1|F|D, {0xa75d}}},</div><div class='del'>-  {0xa75e, {1|F|D, {0xa75f}}},</div><div class='del'>-  {0xa760, {1|F|D, {0xa761}}},</div><div class='del'>-  {0xa762, {1|F|D, {0xa763}}},</div><div class='del'>-  {0xa764, {1|F|D, {0xa765}}},</div><div class='del'>-  {0xa766, {1|F|D, {0xa767}}},</div><div class='del'>-  {0xa768, {1|F|D, {0xa769}}},</div><div class='del'>-  {0xa76a, {1|F|D, {0xa76b}}},</div><div class='del'>-  {0xa76c, {1|F|D, {0xa76d}}},</div><div class='del'>-  {0xa76e, {1|F|D, {0xa76f}}},</div><div class='del'>-  {0xa779, {1|F|D, {0xa77a}}},</div><div class='del'>-  {0xa77b, {1|F|D, {0xa77c}}},</div><div class='del'>-  {0xa77d, {1|F|D, {0x1d79}}},</div><div class='del'>-  {0xa77e, {1|F|D, {0xa77f}}},</div><div class='del'>-  {0xa780, {1|F|D, {0xa781}}},</div><div class='del'>-  {0xa782, {1|F|D, {0xa783}}},</div><div class='del'>-  {0xa784, {1|F|D, {0xa785}}},</div><div class='del'>-  {0xa786, {1|F|D, {0xa787}}},</div><div class='del'>-  {0xa78b, {1|F|D, {0xa78c}}},</div><div class='del'>-  {0xa78d, {1|F|D, {0x0265}}},</div><div class='del'>-  {0xa790, {1|F|D, {0xa791}}},</div><div class='del'>-  {0xa792, {1|F|D, {0xa793}}},</div><div class='del'>-  {0xa796, {1|F|D, {0xa797}}},</div><div class='del'>-  {0xa798, {1|F|D, {0xa799}}},</div><div class='del'>-  {0xa79a, {1|F|D, {0xa79b}}},</div><div class='del'>-  {0xa79c, {1|F|D, {0xa79d}}},</div><div class='del'>-  {0xa79e, {1|F|D, {0xa79f}}},</div><div class='del'>-  {0xa7a0, {1|F|D, {0xa7a1}}},</div><div class='del'>-  {0xa7a2, {1|F|D, {0xa7a3}}},</div><div class='del'>-  {0xa7a4, {1|F|D, {0xa7a5}}},</div><div class='del'>-  {0xa7a6, {1|F|D, {0xa7a7}}},</div><div class='del'>-  {0xa7a8, {1|F|D, {0xa7a9}}},</div><div class='del'>-  {0xa7aa, {1|F|D, {0x0266}}},</div><div class='del'>-  {0xa7ab, {1|F|D, {0x025c}}},</div><div class='del'>-  {0xa7ac, {1|F|D, {0x0261}}},</div><div class='del'>-  {0xa7ad, {1|F|D, {0x026c}}},</div><div class='del'>-  {0xa7ae, {1|F|D, {0x026a}}},</div><div class='del'>-  {0xa7b0, {1|F|D, {0x029e}}},</div><div class='del'>-  {0xa7b1, {1|F|D, {0x0287}}},</div><div class='del'>-  {0xa7b2, {1|F|D, {0x029d}}},</div><div class='del'>-  {0xa7b3, {1|F|D, {0xab53}}},</div><div class='del'>-  {0xa7b4, {1|F|D, {0xa7b5}}},</div><div class='del'>-  {0xa7b6, {1|F|D, {0xa7b7}}},</div><div class='del'>-  {0xa7b8, {1|F|D, {0xa7b9}}},</div><div class='del'>-  {0xab70, {1|F|U, {0x13a0}}},</div><div class='del'>-  {0xab71, {1|F|U, {0x13a1}}},</div><div class='del'>-  {0xab72, {1|F|U, {0x13a2}}},</div><div class='del'>-  {0xab73, {1|F|U, {0x13a3}}},</div><div class='del'>-  {0xab74, {1|F|U, {0x13a4}}},</div><div class='del'>-  {0xab75, {1|F|U, {0x13a5}}},</div><div class='del'>-  {0xab76, {1|F|U, {0x13a6}}},</div><div class='del'>-  {0xab77, {1|F|U, {0x13a7}}},</div><div class='del'>-  {0xab78, {1|F|U, {0x13a8}}},</div><div class='del'>-  {0xab79, {1|F|U, {0x13a9}}},</div><div class='del'>-  {0xab7a, {1|F|U, {0x13aa}}},</div><div class='del'>-  {0xab7b, {1|F|U, {0x13ab}}},</div><div class='del'>-  {0xab7c, {1|F|U, {0x13ac}}},</div><div class='del'>-  {0xab7d, {1|F|U, {0x13ad}}},</div><div class='del'>-  {0xab7e, {1|F|U, {0x13ae}}},</div><div class='del'>-  {0xab7f, {1|F|U, {0x13af}}},</div><div class='del'>-  {0xab80, {1|F|U, {0x13b0}}},</div><div class='del'>-  {0xab81, {1|F|U, {0x13b1}}},</div><div class='del'>-  {0xab82, {1|F|U, {0x13b2}}},</div><div class='del'>-  {0xab83, {1|F|U, {0x13b3}}},</div><div class='del'>-  {0xab84, {1|F|U, {0x13b4}}},</div><div class='del'>-  {0xab85, {1|F|U, {0x13b5}}},</div><div class='del'>-  {0xab86, {1|F|U, {0x13b6}}},</div><div class='del'>-  {0xab87, {1|F|U, {0x13b7}}},</div><div class='del'>-  {0xab88, {1|F|U, {0x13b8}}},</div><div class='del'>-  {0xab89, {1|F|U, {0x13b9}}},</div><div class='del'>-  {0xab8a, {1|F|U, {0x13ba}}},</div><div class='del'>-  {0xab8b, {1|F|U, {0x13bb}}},</div><div class='del'>-  {0xab8c, {1|F|U, {0x13bc}}},</div><div class='del'>-  {0xab8d, {1|F|U, {0x13bd}}},</div><div class='del'>-  {0xab8e, {1|F|U, {0x13be}}},</div><div class='del'>-  {0xab8f, {1|F|U, {0x13bf}}},</div><div class='del'>-  {0xab90, {1|F|U, {0x13c0}}},</div><div class='del'>-  {0xab91, {1|F|U, {0x13c1}}},</div><div class='del'>-  {0xab92, {1|F|U, {0x13c2}}},</div><div class='del'>-  {0xab93, {1|F|U, {0x13c3}}},</div><div class='del'>-  {0xab94, {1|F|U, {0x13c4}}},</div><div class='del'>-  {0xab95, {1|F|U, {0x13c5}}},</div><div class='del'>-  {0xab96, {1|F|U, {0x13c6}}},</div><div class='del'>-  {0xab97, {1|F|U, {0x13c7}}},</div><div class='del'>-  {0xab98, {1|F|U, {0x13c8}}},</div><div class='del'>-  {0xab99, {1|F|U, {0x13c9}}},</div><div class='del'>-  {0xab9a, {1|F|U, {0x13ca}}},</div><div class='del'>-  {0xab9b, {1|F|U, {0x13cb}}},</div><div class='del'>-  {0xab9c, {1|F|U, {0x13cc}}},</div><div class='del'>-  {0xab9d, {1|F|U, {0x13cd}}},</div><div class='del'>-  {0xab9e, {1|F|U, {0x13ce}}},</div><div class='del'>-  {0xab9f, {1|F|U, {0x13cf}}},</div><div class='del'>-  {0xaba0, {1|F|U, {0x13d0}}},</div><div class='del'>-  {0xaba1, {1|F|U, {0x13d1}}},</div><div class='del'>-  {0xaba2, {1|F|U, {0x13d2}}},</div><div class='del'>-  {0xaba3, {1|F|U, {0x13d3}}},</div><div class='del'>-  {0xaba4, {1|F|U, {0x13d4}}},</div><div class='del'>-  {0xaba5, {1|F|U, {0x13d5}}},</div><div class='del'>-  {0xaba6, {1|F|U, {0x13d6}}},</div><div class='del'>-  {0xaba7, {1|F|U, {0x13d7}}},</div><div class='del'>-  {0xaba8, {1|F|U, {0x13d8}}},</div><div class='del'>-  {0xaba9, {1|F|U, {0x13d9}}},</div><div class='del'>-  {0xabaa, {1|F|U, {0x13da}}},</div><div class='del'>-  {0xabab, {1|F|U, {0x13db}}},</div><div class='del'>-  {0xabac, {1|F|U, {0x13dc}}},</div><div class='del'>-  {0xabad, {1|F|U, {0x13dd}}},</div><div class='del'>-  {0xabae, {1|F|U, {0x13de}}},</div><div class='del'>-  {0xabaf, {1|F|U, {0x13df}}},</div><div class='del'>-  {0xabb0, {1|F|U, {0x13e0}}},</div><div class='del'>-  {0xabb1, {1|F|U, {0x13e1}}},</div><div class='del'>-  {0xabb2, {1|F|U, {0x13e2}}},</div><div class='del'>-  {0xabb3, {1|F|U, {0x13e3}}},</div><div class='del'>-  {0xabb4, {1|F|U, {0x13e4}}},</div><div class='del'>-  {0xabb5, {1|F|U, {0x13e5}}},</div><div class='del'>-  {0xabb6, {1|F|U, {0x13e6}}},</div><div class='del'>-  {0xabb7, {1|F|U, {0x13e7}}},</div><div class='del'>-  {0xabb8, {1|F|U, {0x13e8}}},</div><div class='del'>-  {0xabb9, {1|F|U, {0x13e9}}},</div><div class='del'>-  {0xabba, {1|F|U, {0x13ea}}},</div><div class='del'>-  {0xabbb, {1|F|U, {0x13eb}}},</div><div class='del'>-  {0xabbc, {1|F|U, {0x13ec}}},</div><div class='del'>-  {0xabbd, {1|F|U, {0x13ed}}},</div><div class='del'>-  {0xabbe, {1|F|U, {0x13ee}}},</div><div class='del'>-  {0xabbf, {1|F|U, {0x13ef}}},</div><div class='del'>-  {0xfb00, {2|F|ST|SU|I(366), {0x0066, 0x0066}}},</div><div class='del'>-  {0xfb01, {2|F|ST|SU|I(370), {0x0066, 0x0069}}},</div><div class='del'>-  {0xfb02, {2|F|ST|SU|I(374), {0x0066, 0x006c}}},</div><div class='del'>-  {0xfb03, {3|F|ST|SU|I(378), {0x0066, 0x0066, 0x0069}}},</div><div class='del'>-  {0xfb04, {3|F|ST|SU|I(384), {0x0066, 0x0066, 0x006c}}},</div><div class='del'>-  {0xfb05, {2|F|ST|SU|I(390), {0x0073, 0x0074}}},</div><div class='del'>-  {0xfb06, {2|F|ST|SU|I(394), {0x0073, 0x0074}}},</div><div class='del'>-  {0xfb13, {2|F|ST|SU|I(398), {0x0574, 0x0576}}},</div><div class='del'>-  {0xfb14, {2|F|ST|SU|I(402), {0x0574, 0x0565}}},</div><div class='del'>-  {0xfb15, {2|F|ST|SU|I(406), {0x0574, 0x056b}}},</div><div class='del'>-  {0xfb16, {2|F|ST|SU|I(410), {0x057e, 0x0576}}},</div><div class='del'>-  {0xfb17, {2|F|ST|SU|I(414), {0x0574, 0x056d}}},</div><div class='del'>-  {0xff21, {1|F|D, {0xff41}}},</div><div class='del'>-  {0xff22, {1|F|D, {0xff42}}},</div><div class='del'>-  {0xff23, {1|F|D, {0xff43}}},</div><div class='del'>-  {0xff24, {1|F|D, {0xff44}}},</div><div class='del'>-  {0xff25, {1|F|D, {0xff45}}},</div><div class='del'>-  {0xff26, {1|F|D, {0xff46}}},</div><div class='del'>-  {0xff27, {1|F|D, {0xff47}}},</div><div class='del'>-  {0xff28, {1|F|D, {0xff48}}},</div><div class='del'>-  {0xff29, {1|F|D, {0xff49}}},</div><div class='del'>-  {0xff2a, {1|F|D, {0xff4a}}},</div><div class='del'>-  {0xff2b, {1|F|D, {0xff4b}}},</div><div class='del'>-  {0xff2c, {1|F|D, {0xff4c}}},</div><div class='del'>-  {0xff2d, {1|F|D, {0xff4d}}},</div><div class='del'>-  {0xff2e, {1|F|D, {0xff4e}}},</div><div class='del'>-  {0xff2f, {1|F|D, {0xff4f}}},</div><div class='del'>-  {0xff30, {1|F|D, {0xff50}}},</div><div class='del'>-  {0xff31, {1|F|D, {0xff51}}},</div><div class='del'>-  {0xff32, {1|F|D, {0xff52}}},</div><div class='del'>-  {0xff33, {1|F|D, {0xff53}}},</div><div class='del'>-  {0xff34, {1|F|D, {0xff54}}},</div><div class='del'>-  {0xff35, {1|F|D, {0xff55}}},</div><div class='del'>-  {0xff36, {1|F|D, {0xff56}}},</div><div class='del'>-  {0xff37, {1|F|D, {0xff57}}},</div><div class='del'>-  {0xff38, {1|F|D, {0xff58}}},</div><div class='del'>-  {0xff39, {1|F|D, {0xff59}}},</div><div class='del'>-  {0xff3a, {1|F|D, {0xff5a}}},</div><div class='del'>-  {0x10400, {1|F|D, {0x10428}}},</div><div class='del'>-  {0x10401, {1|F|D, {0x10429}}},</div><div class='del'>-  {0x10402, {1|F|D, {0x1042a}}},</div><div class='del'>-  {0x10403, {1|F|D, {0x1042b}}},</div><div class='del'>-  {0x10404, {1|F|D, {0x1042c}}},</div><div class='del'>-  {0x10405, {1|F|D, {0x1042d}}},</div><div class='del'>-  {0x10406, {1|F|D, {0x1042e}}},</div><div class='del'>-  {0x10407, {1|F|D, {0x1042f}}},</div><div class='del'>-  {0x10408, {1|F|D, {0x10430}}},</div><div class='del'>-  {0x10409, {1|F|D, {0x10431}}},</div><div class='del'>-  {0x1040a, {1|F|D, {0x10432}}},</div><div class='del'>-  {0x1040b, {1|F|D, {0x10433}}},</div><div class='del'>-  {0x1040c, {1|F|D, {0x10434}}},</div><div class='del'>-  {0x1040d, {1|F|D, {0x10435}}},</div><div class='del'>-  {0x1040e, {1|F|D, {0x10436}}},</div><div class='del'>-  {0x1040f, {1|F|D, {0x10437}}},</div><div class='del'>-  {0x10410, {1|F|D, {0x10438}}},</div><div class='del'>-  {0x10411, {1|F|D, {0x10439}}},</div><div class='del'>-  {0x10412, {1|F|D, {0x1043a}}},</div><div class='del'>-  {0x10413, {1|F|D, {0x1043b}}},</div><div class='del'>-  {0x10414, {1|F|D, {0x1043c}}},</div><div class='del'>-  {0x10415, {1|F|D, {0x1043d}}},</div><div class='del'>-  {0x10416, {1|F|D, {0x1043e}}},</div><div class='del'>-  {0x10417, {1|F|D, {0x1043f}}},</div><div class='del'>-  {0x10418, {1|F|D, {0x10440}}},</div><div class='del'>-  {0x10419, {1|F|D, {0x10441}}},</div><div class='del'>-  {0x1041a, {1|F|D, {0x10442}}},</div><div class='del'>-  {0x1041b, {1|F|D, {0x10443}}},</div><div class='del'>-  {0x1041c, {1|F|D, {0x10444}}},</div><div class='del'>-  {0x1041d, {1|F|D, {0x10445}}},</div><div class='del'>-  {0x1041e, {1|F|D, {0x10446}}},</div><div class='del'>-  {0x1041f, {1|F|D, {0x10447}}},</div><div class='del'>-  {0x10420, {1|F|D, {0x10448}}},</div><div class='del'>-  {0x10421, {1|F|D, {0x10449}}},</div><div class='del'>-  {0x10422, {1|F|D, {0x1044a}}},</div><div class='del'>-  {0x10423, {1|F|D, {0x1044b}}},</div><div class='del'>-  {0x10424, {1|F|D, {0x1044c}}},</div><div class='del'>-  {0x10425, {1|F|D, {0x1044d}}},</div><div class='del'>-  {0x10426, {1|F|D, {0x1044e}}},</div><div class='del'>-  {0x10427, {1|F|D, {0x1044f}}},</div><div class='del'>-  {0x104b0, {1|F|D, {0x104d8}}},</div><div class='del'>-  {0x104b1, {1|F|D, {0x104d9}}},</div><div class='del'>-  {0x104b2, {1|F|D, {0x104da}}},</div><div class='del'>-  {0x104b3, {1|F|D, {0x104db}}},</div><div class='del'>-  {0x104b4, {1|F|D, {0x104dc}}},</div><div class='del'>-  {0x104b5, {1|F|D, {0x104dd}}},</div><div class='del'>-  {0x104b6, {1|F|D, {0x104de}}},</div><div class='del'>-  {0x104b7, {1|F|D, {0x104df}}},</div><div class='del'>-  {0x104b8, {1|F|D, {0x104e0}}},</div><div class='del'>-  {0x104b9, {1|F|D, {0x104e1}}},</div><div class='del'>-  {0x104ba, {1|F|D, {0x104e2}}},</div><div class='del'>-  {0x104bb, {1|F|D, {0x104e3}}},</div><div class='del'>-  {0x104bc, {1|F|D, {0x104e4}}},</div><div class='del'>-  {0x104bd, {1|F|D, {0x104e5}}},</div><div class='del'>-  {0x104be, {1|F|D, {0x104e6}}},</div><div class='del'>-  {0x104bf, {1|F|D, {0x104e7}}},</div><div class='del'>-  {0x104c0, {1|F|D, {0x104e8}}},</div><div class='del'>-  {0x104c1, {1|F|D, {0x104e9}}},</div><div class='del'>-  {0x104c2, {1|F|D, {0x104ea}}},</div><div class='del'>-  {0x104c3, {1|F|D, {0x104eb}}},</div><div class='del'>-  {0x104c4, {1|F|D, {0x104ec}}},</div><div class='del'>-  {0x104c5, {1|F|D, {0x104ed}}},</div><div class='del'>-  {0x104c6, {1|F|D, {0x104ee}}},</div><div class='del'>-  {0x104c7, {1|F|D, {0x104ef}}},</div><div class='del'>-  {0x104c8, {1|F|D, {0x104f0}}},</div><div class='del'>-  {0x104c9, {1|F|D, {0x104f1}}},</div><div class='del'>-  {0x104ca, {1|F|D, {0x104f2}}},</div><div class='del'>-  {0x104cb, {1|F|D, {0x104f3}}},</div><div class='del'>-  {0x104cc, {1|F|D, {0x104f4}}},</div><div class='del'>-  {0x104cd, {1|F|D, {0x104f5}}},</div><div class='del'>-  {0x104ce, {1|F|D, {0x104f6}}},</div><div class='del'>-  {0x104cf, {1|F|D, {0x104f7}}},</div><div class='del'>-  {0x104d0, {1|F|D, {0x104f8}}},</div><div class='del'>-  {0x104d1, {1|F|D, {0x104f9}}},</div><div class='del'>-  {0x104d2, {1|F|D, {0x104fa}}},</div><div class='del'>-  {0x104d3, {1|F|D, {0x104fb}}},</div><div class='del'>-  {0x10c80, {1|F|D, {0x10cc0}}},</div><div class='del'>-  {0x10c81, {1|F|D, {0x10cc1}}},</div><div class='del'>-  {0x10c82, {1|F|D, {0x10cc2}}},</div><div class='del'>-  {0x10c83, {1|F|D, {0x10cc3}}},</div><div class='del'>-  {0x10c84, {1|F|D, {0x10cc4}}},</div><div class='del'>-  {0x10c85, {1|F|D, {0x10cc5}}},</div><div class='del'>-  {0x10c86, {1|F|D, {0x10cc6}}},</div><div class='del'>-  {0x10c87, {1|F|D, {0x10cc7}}},</div><div class='del'>-  {0x10c88, {1|F|D, {0x10cc8}}},</div><div class='del'>-  {0x10c89, {1|F|D, {0x10cc9}}},</div><div class='del'>-  {0x10c8a, {1|F|D, {0x10cca}}},</div><div class='del'>-  {0x10c8b, {1|F|D, {0x10ccb}}},</div><div class='del'>-  {0x10c8c, {1|F|D, {0x10ccc}}},</div><div class='del'>-  {0x10c8d, {1|F|D, {0x10ccd}}},</div><div class='del'>-  {0x10c8e, {1|F|D, {0x10cce}}},</div><div class='del'>-  {0x10c8f, {1|F|D, {0x10ccf}}},</div><div class='del'>-  {0x10c90, {1|F|D, {0x10cd0}}},</div><div class='del'>-  {0x10c91, {1|F|D, {0x10cd1}}},</div><div class='del'>-  {0x10c92, {1|F|D, {0x10cd2}}},</div><div class='del'>-  {0x10c93, {1|F|D, {0x10cd3}}},</div><div class='del'>-  {0x10c94, {1|F|D, {0x10cd4}}},</div><div class='del'>-  {0x10c95, {1|F|D, {0x10cd5}}},</div><div class='del'>-  {0x10c96, {1|F|D, {0x10cd6}}},</div><div class='del'>-  {0x10c97, {1|F|D, {0x10cd7}}},</div><div class='del'>-  {0x10c98, {1|F|D, {0x10cd8}}},</div><div class='del'>-  {0x10c99, {1|F|D, {0x10cd9}}},</div><div class='del'>-  {0x10c9a, {1|F|D, {0x10cda}}},</div><div class='del'>-  {0x10c9b, {1|F|D, {0x10cdb}}},</div><div class='del'>-  {0x10c9c, {1|F|D, {0x10cdc}}},</div><div class='del'>-  {0x10c9d, {1|F|D, {0x10cdd}}},</div><div class='del'>-  {0x10c9e, {1|F|D, {0x10cde}}},</div><div class='del'>-  {0x10c9f, {1|F|D, {0x10cdf}}},</div><div class='del'>-  {0x10ca0, {1|F|D, {0x10ce0}}},</div><div class='del'>-  {0x10ca1, {1|F|D, {0x10ce1}}},</div><div class='del'>-  {0x10ca2, {1|F|D, {0x10ce2}}},</div><div class='del'>-  {0x10ca3, {1|F|D, {0x10ce3}}},</div><div class='del'>-  {0x10ca4, {1|F|D, {0x10ce4}}},</div><div class='del'>-  {0x10ca5, {1|F|D, {0x10ce5}}},</div><div class='del'>-  {0x10ca6, {1|F|D, {0x10ce6}}},</div><div class='del'>-  {0x10ca7, {1|F|D, {0x10ce7}}},</div><div class='del'>-  {0x10ca8, {1|F|D, {0x10ce8}}},</div><div class='del'>-  {0x10ca9, {1|F|D, {0x10ce9}}},</div><div class='del'>-  {0x10caa, {1|F|D, {0x10cea}}},</div><div class='del'>-  {0x10cab, {1|F|D, {0x10ceb}}},</div><div class='del'>-  {0x10cac, {1|F|D, {0x10cec}}},</div><div class='del'>-  {0x10cad, {1|F|D, {0x10ced}}},</div><div class='del'>-  {0x10cae, {1|F|D, {0x10cee}}},</div><div class='del'>-  {0x10caf, {1|F|D, {0x10cef}}},</div><div class='del'>-  {0x10cb0, {1|F|D, {0x10cf0}}},</div><div class='del'>-  {0x10cb1, {1|F|D, {0x10cf1}}},</div><div class='del'>-  {0x10cb2, {1|F|D, {0x10cf2}}},</div><div class='del'>-  {0x118a0, {1|F|D, {0x118c0}}},</div><div class='del'>-  {0x118a1, {1|F|D, {0x118c1}}},</div><div class='del'>-  {0x118a2, {1|F|D, {0x118c2}}},</div><div class='del'>-  {0x118a3, {1|F|D, {0x118c3}}},</div><div class='del'>-  {0x118a4, {1|F|D, {0x118c4}}},</div><div class='del'>-  {0x118a5, {1|F|D, {0x118c5}}},</div><div class='del'>-  {0x118a6, {1|F|D, {0x118c6}}},</div><div class='del'>-  {0x118a7, {1|F|D, {0x118c7}}},</div><div class='del'>-  {0x118a8, {1|F|D, {0x118c8}}},</div><div class='del'>-  {0x118a9, {1|F|D, {0x118c9}}},</div><div class='del'>-  {0x118aa, {1|F|D, {0x118ca}}},</div><div class='del'>-  {0x118ab, {1|F|D, {0x118cb}}},</div><div class='del'>-  {0x118ac, {1|F|D, {0x118cc}}},</div><div class='del'>-  {0x118ad, {1|F|D, {0x118cd}}},</div><div class='del'>-  {0x118ae, {1|F|D, {0x118ce}}},</div><div class='del'>-  {0x118af, {1|F|D, {0x118cf}}},</div><div class='del'>-  {0x118b0, {1|F|D, {0x118d0}}},</div><div class='del'>-  {0x118b1, {1|F|D, {0x118d1}}},</div><div class='del'>-  {0x118b2, {1|F|D, {0x118d2}}},</div><div class='del'>-  {0x118b3, {1|F|D, {0x118d3}}},</div><div class='del'>-  {0x118b4, {1|F|D, {0x118d4}}},</div><div class='del'>-  {0x118b5, {1|F|D, {0x118d5}}},</div><div class='del'>-  {0x118b6, {1|F|D, {0x118d6}}},</div><div class='del'>-  {0x118b7, {1|F|D, {0x118d7}}},</div><div class='del'>-  {0x118b8, {1|F|D, {0x118d8}}},</div><div class='del'>-  {0x118b9, {1|F|D, {0x118d9}}},</div><div class='del'>-  {0x118ba, {1|F|D, {0x118da}}},</div><div class='del'>-  {0x118bb, {1|F|D, {0x118db}}},</div><div class='del'>-  {0x118bc, {1|F|D, {0x118dc}}},</div><div class='del'>-  {0x118bd, {1|F|D, {0x118dd}}},</div><div class='del'>-  {0x118be, {1|F|D, {0x118de}}},</div><div class='del'>-  {0x118bf, {1|F|D, {0x118df}}},</div><div class='del'>-  {0x16e40, {1|F|D, {0x16e60}}},</div><div class='del'>-  {0x16e41, {1|F|D, {0x16e61}}},</div><div class='del'>-  {0x16e42, {1|F|D, {0x16e62}}},</div><div class='del'>-  {0x16e43, {1|F|D, {0x16e63}}},</div><div class='del'>-  {0x16e44, {1|F|D, {0x16e64}}},</div><div class='del'>-  {0x16e45, {1|F|D, {0x16e65}}},</div><div class='del'>-  {0x16e46, {1|F|D, {0x16e66}}},</div><div class='del'>-  {0x16e47, {1|F|D, {0x16e67}}},</div><div class='del'>-  {0x16e48, {1|F|D, {0x16e68}}},</div><div class='del'>-  {0x16e49, {1|F|D, {0x16e69}}},</div><div class='del'>-  {0x16e4a, {1|F|D, {0x16e6a}}},</div><div class='del'>-  {0x16e4b, {1|F|D, {0x16e6b}}},</div><div class='del'>-  {0x16e4c, {1|F|D, {0x16e6c}}},</div><div class='del'>-  {0x16e4d, {1|F|D, {0x16e6d}}},</div><div class='del'>-  {0x16e4e, {1|F|D, {0x16e6e}}},</div><div class='del'>-  {0x16e4f, {1|F|D, {0x16e6f}}},</div><div class='del'>-  {0x16e50, {1|F|D, {0x16e70}}},</div><div class='del'>-  {0x16e51, {1|F|D, {0x16e71}}},</div><div class='del'>-  {0x16e52, {1|F|D, {0x16e72}}},</div><div class='del'>-  {0x16e53, {1|F|D, {0x16e73}}},</div><div class='del'>-  {0x16e54, {1|F|D, {0x16e74}}},</div><div class='del'>-  {0x16e55, {1|F|D, {0x16e75}}},</div><div class='del'>-  {0x16e56, {1|F|D, {0x16e76}}},</div><div class='del'>-  {0x16e57, {1|F|D, {0x16e77}}},</div><div class='del'>-  {0x16e58, {1|F|D, {0x16e78}}},</div><div class='del'>-  {0x16e59, {1|F|D, {0x16e79}}},</div><div class='del'>-  {0x16e5a, {1|F|D, {0x16e7a}}},</div><div class='del'>-  {0x16e5b, {1|F|D, {0x16e7b}}},</div><div class='del'>-  {0x16e5c, {1|F|D, {0x16e7c}}},</div><div class='del'>-  {0x16e5d, {1|F|D, {0x16e7d}}},</div><div class='del'>-  {0x16e5e, {1|F|D, {0x16e7e}}},</div><div class='del'>-  {0x16e5f, {1|F|D, {0x16e7f}}},</div><div class='del'>-  {0x1e900, {1|F|D, {0x1e922}}},</div><div class='del'>-  {0x1e901, {1|F|D, {0x1e923}}},</div><div class='del'>-  {0x1e902, {1|F|D, {0x1e924}}},</div><div class='del'>-  {0x1e903, {1|F|D, {0x1e925}}},</div><div class='del'>-  {0x1e904, {1|F|D, {0x1e926}}},</div><div class='del'>-  {0x1e905, {1|F|D, {0x1e927}}},</div><div class='del'>-  {0x1e906, {1|F|D, {0x1e928}}},</div><div class='del'>-  {0x1e907, {1|F|D, {0x1e929}}},</div><div class='del'>-  {0x1e908, {1|F|D, {0x1e92a}}},</div><div class='del'>-  {0x1e909, {1|F|D, {0x1e92b}}},</div><div class='del'>-  {0x1e90a, {1|F|D, {0x1e92c}}},</div><div class='del'>-  {0x1e90b, {1|F|D, {0x1e92d}}},</div><div class='del'>-  {0x1e90c, {1|F|D, {0x1e92e}}},</div><div class='del'>-  {0x1e90d, {1|F|D, {0x1e92f}}},</div><div class='del'>-  {0x1e90e, {1|F|D, {0x1e930}}},</div><div class='del'>-  {0x1e90f, {1|F|D, {0x1e931}}},</div><div class='del'>-  {0x1e910, {1|F|D, {0x1e932}}},</div><div class='del'>-  {0x1e911, {1|F|D, {0x1e933}}},</div><div class='del'>-  {0x1e912, {1|F|D, {0x1e934}}},</div><div class='del'>-  {0x1e913, {1|F|D, {0x1e935}}},</div><div class='del'>-  {0x1e914, {1|F|D, {0x1e936}}},</div><div class='del'>-  {0x1e915, {1|F|D, {0x1e937}}},</div><div class='del'>-  {0x1e916, {1|F|D, {0x1e938}}},</div><div class='del'>-  {0x1e917, {1|F|D, {0x1e939}}},</div><div class='del'>-  {0x1e918, {1|F|D, {0x1e93a}}},</div><div class='del'>-  {0x1e919, {1|F|D, {0x1e93b}}},</div><div class='del'>-  {0x1e91a, {1|F|D, {0x1e93c}}},</div><div class='del'>-  {0x1e91b, {1|F|D, {0x1e93d}}},</div><div class='del'>-  {0x1e91c, {1|F|D, {0x1e93e}}},</div><div class='del'>-  {0x1e91d, {1|F|D, {0x1e93f}}},</div><div class='del'>-  {0x1e91e, {1|F|D, {0x1e940}}},</div><div class='del'>-  {0x1e91f, {1|F|D, {0x1e941}}},</div><div class='del'>-  {0x1e920, {1|F|D, {0x1e942}}},</div><div class='del'>-  {0x1e921, {1|F|D, {0x1e943}}},</div><div class='del'>-#define CaseFold_Locale (*(CaseFold_11_Type (*)[2])(CaseFold_11_Table+1478))</div><div class='del'>-  {0x0049, {1|F|D, {0x0069}}},</div><div class='del'>-  {0x0130, {2|F|D, {0x0069, 0x0307}}},</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* ANSI-C code produced by gperf version 3.1 */</div><div class='del'>-/* Command-line: gperf -7 -k1,2,3 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseFold_11_hash -N onigenc_unicode_CaseFold_11_lookup -n  */</div><div class='del'>-</div><div class='del'>-/* maximum key range = 3737, duplicates = 0 */</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-__inline</div><div class='del'>-#else</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-inline</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-/*ARGSUSED*/</div><div class='del'>-static unsigned int</div><div class='del'>-onigenc_unicode_CaseFold_11_hash(const OnigCodePoint code)</div><div class='del'>-{</div><div class='del'>-  static const unsigned short asso_values[] =</div><div class='del'>-    {</div><div class='del'>-         5,  232,    4,    8,    3,    1,  245,    9,    2,  195,</div><div class='del'>-       196,    4, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748,</div><div class='del'>-      3748, 3748, 3748, 3748, 3748,   42, 3748, 3748, 3748, 3748,</div><div class='del'>-      3748, 3748, 3748,  223, 3748, 3748, 3748, 3748, 3748,   16,</div><div class='del'>-      3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748,  229,</div><div class='del'>-      3748, 3748, 3748, 3748, 3748, 3748, 3748,   32, 3748, 3748,</div><div class='del'>-       192,   39,  236,    1, 3748, 3748,  235,    4, 3748, 3748,</div><div class='del'>-      3748, 3748, 3748,  270, 3748, 3748,  200,  828,  274,   58,</div><div class='del'>-      1960,  265,   39,  232, 2023,  143, 1778,    6,   12,   25,</div><div class='del'>-      1936,  725, 1075,  565, 1892,  206, 1866,  439, 1761,  187,</div><div class='del'>-      1837,  117, 1422,   84, 1672,  406, 1609,  465, 1596,  498,</div><div class='del'>-      1822,  291, 1408,  524, 1590,  365, 1531,  324,  161,  666,</div><div class='del'>-      1393,  582,  972,  624, 1516,  608,  353,  767, 1803,  699,</div><div class='del'>-      1575,  825, 1820,  783, 1663,  598, 1319,  683, 1791,  831,</div><div class='del'>-      1727,  898, 1784, 1094, 1689, 1104, 1495, 1060, 1506, 1148,</div><div class='del'>-       422, 1035,  224,  904, 1487,  962, 1549, 1123, 1908, 1077,</div><div class='del'>-      1902, 1045,  645, 1243, 1026,  946,   94, 1184,  277, 1171,</div><div class='del'>-       924, 1608,   51, 1464,    7, 1462,   20,  991,  246, 1212,</div><div class='del'>-        16, 1380,  212, 1451,  240, 1352,   66, 1330,  447, 1474,</div><div class='del'>-       124,  126,   14,  741,   35, 1849,    7, 1522,  176, 1965,</div><div class='del'>-       163,  650,  346,  671,   38,   64,   96</div><div class='del'>-    };</div><div class='del'>-  return asso_values[bits_of(code, 2)+79] + asso_values[bits_of(code, 1)] + asso_values[bits_of(code, 0)];</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const CodePointList3 *</div><div class='del'>-onigenc_unicode_CaseFold_11_lookup(const OnigCodePoint code)</div><div class='del'>-{</div><div class='del'>-  enum</div><div class='del'>-    {</div><div class='del'>-      MIN_CODE_VALUE = 0x41,</div><div class='del'>-      MAX_CODE_VALUE = 0x1e921,</div><div class='del'>-      TOTAL_KEYWORDS = 1480,</div><div class='del'>-      MIN_WORD_LENGTH = 3,</div><div class='del'>-      MAX_WORD_LENGTH = 3,</div><div class='del'>-      MIN_HASH_VALUE = 11,</div><div class='del'>-      MAX_HASH_VALUE = 3747</div><div class='del'>-    };</div><div class='del'>-</div><div class='del'>-  static const short wordlist[] =</div><div class='del'>-    {</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x10408*/ 1261,</div><div class='del'>-      /*0x1f88*/ 775,</div><div class='del'>-      /*0x0408*/ 305,</div><div class='del'>-      /*0x0208*/ 194,</div><div class='del'>-      /*0x0108*/ 61,</div><div class='del'>-      /*0xab88*/ 1159,</div><div class='del'>-      /*0x10409*/ 1262,</div><div class='del'>-      /*0x1f89*/ 776,</div><div class='del'>-      /*0x0409*/ 306,</div><div class='del'>-      /*0x0388*/ 235,</div><div class='del'>-      /*0x03f5*/ 290,</div><div class='del'>-      /*0xab89*/ 1160,</div><div class='del'>-      /*0x2c08*/ 919,</div><div class='del'>-      /*0x2c75*/ 970,</div><div class='del'>-      /*0x0189*/ 126,</div><div class='del'>-      /*0x0389*/ 236,</div><div class='del'>-      /*0x01f1*/ 181,</div><div class='del'>-      /*0x03f1*/ 288,</div><div class='del'>-      /*0x2c09*/ 920,</div><div class='del'>-      /*0x1040a*/ 1263,</div><div class='del'>-      /*0x1f8a*/ 777,</div><div class='del'>-      /*0x040a*/ 307,</div><div class='del'>-      /*0x020a*/ 195,</div><div class='del'>-      /*0x010a*/ 62,</div><div class='del'>-      /*0xab8a*/ 1161,</div><div class='del'>-      /*0x2c88*/ 977,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x018a*/ 127,</div><div class='del'>-      /*0x038a*/ 237,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1ff3*/ 855,</div><div class='del'>-      /*0x2c0a*/ 921,</div><div class='del'>-      /*0x1c88*/ 538,</div><div class='del'>-      /*0x10403*/ 1256,</div><div class='del'>-      /*0x1f83*/ 770,</div><div class='del'>-      /*0x0403*/ 300,</div><div class='del'>-      /*0x017d*/ 119,</div><div class='del'>-      /*0x2183*/ 884,</div><div class='del'>-      /*0xab83*/ 1154,</div><div class='del'>-      /*0x1e88*/ 653,</div><div class='del'>-      /*0x10c88*/ 1337,</div><div class='del'>-      /*0x03fd*/ 294,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e908*/ 1452,</div><div class='del'>-      /*0x2c8a*/ 978,</div><div class='del'>-      /*0x2c03*/ 914,</div><div class='del'>-      /*0x10c89*/ 1338,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13fd*/ 529,</div><div class='del'>-      /*0x1e909*/ 1453,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10400*/ 1253,</div><div class='del'>-      /*0x1f80*/ 767,</div><div class='del'>-      /*0x0400*/ 297,</div><div class='del'>-      /*0x0200*/ 190,</div><div class='del'>-      /*0x0100*/ 57,</div><div class='del'>-      /*0xab80*/ 1151,</div><div class='del'>-      /*0x1e8a*/ 654,</div><div class='del'>-      /*0x10c8a*/ 1339,</div><div class='del'>-      /*0x047e*/ 360,</div><div class='del'>-      /*0x1feb*/ 852,</div><div class='del'>-      /*0x1e90a*/ 1454,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c00*/ 911,</div><div class='del'>-      /*0x1c83*/ 533,</div><div class='del'>-      /*0x01fe*/ 189,</div><div class='del'>-      /*0x03fe*/ 295,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c7e*/ 971,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c6b*/ 964,</div><div class='del'>-      /*0x10c83*/ 1332,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e903*/ 1447,</div><div class='del'>-      /*0x2c80*/ 973,</div><div class='del'>-      /*0x10418*/ 1277,</div><div class='del'>-      /*0x1f98*/ 791,</div><div class='del'>-      /*0x0418*/ 321,</div><div class='del'>-      /*0x0218*/ 202,</div><div class='del'>-      /*0x0118*/ 69,</div><div class='del'>-      /*0xab98*/ 1175,</div><div class='del'>-      /*0x1c80*/ 530,</div><div class='del'>-      /*0x2ceb*/ 1023,</div><div class='del'>-      /*0x0198*/ 137,</div><div class='del'>-      /*0x0398*/ 249,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1fd7*/ 839,</div><div class='del'>-      /*0x2c18*/ 935,</div><div class='del'>-      /*0x1e80*/ 649,</div><div class='del'>-      /*0x10c80*/ 1329,</div><div class='del'>-      /*0x0057*/ 21,</div><div class='del'>-      /*0x017f*/ 120,</div><div class='del'>-      /*0x1e900*/ 1444,</div><div class='del'>-      /*0x01d7*/ 168,</div><div class='del'>-      /*0x1efe*/ 714,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03ff*/ 296,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c7f*/ 972,</div><div class='del'>-      /*0x2c98*/ 985,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0xa780*/ 1105,</div><div class='del'>-      /*0x1c98*/ 547,</div><div class='del'>-      /*0x10416*/ 1275,</div><div class='del'>-      /*0x1f96*/ 789,</div><div class='del'>-      /*0x0416*/ 319,</div><div class='del'>-      /*0x0216*/ 201,</div><div class='del'>-      /*0x0116*/ 68,</div><div class='del'>-      /*0xab96*/ 1173,</div><div class='del'>-      /*0x1e98*/ 662,</div><div class='del'>-      /*0x10c98*/ 1353,</div><div class='del'>-      /*0x0196*/ 135,</div><div class='del'>-      /*0x0396*/ 247,</div><div class='del'>-      /*0x1e918*/ 1468,</div><div class='del'>-      /*0x0470*/ 353,</div><div class='del'>-      /*0x2c16*/ 933,</div><div class='del'>-      /*0x0170*/ 112,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x01f0*/ 180,</div><div class='del'>-      /*0x03f0*/ 287,</div><div class='del'>-      /*0x2c6f*/ 967,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c70*/ 968,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa798*/ 1114,</div><div class='del'>-      /*0x2c96*/ 984,</div><div class='del'>-      /*0x10406*/ 1259,</div><div class='del'>-      /*0x1f86*/ 773,</div><div class='del'>-      /*0x0406*/ 303,</div><div class='del'>-      /*0x0206*/ 193,</div><div class='del'>-      /*0x0106*/ 60,</div><div class='del'>-      /*0xab86*/ 1157,</div><div class='del'>-      /*0x1c96*/ 545,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0186*/ 124,</div><div class='del'>-      /*0x0386*/ 234,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c06*/ 917,</div><div class='del'>-      /*0x1e96*/ 660,</div><div class='del'>-      /*0x10c96*/ 1351,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e916*/ 1466,</div><div class='del'>-      /*0x10427*/ 1292,</div><div class='del'>-      /*0x1fa7*/ 806,</div><div class='del'>-      /*0x0427*/ 336,</div><div class='del'>-      /*0x1ff9*/ 860,</div><div class='del'>-      /*0x1ef0*/ 707,</div><div class='del'>-      /*0xaba7*/ 1190,</div><div class='del'>-      /*0x0179*/ 117,</div><div class='del'>-      /*0x2c86*/ 976,</div><div class='del'>-      /*0x01a7*/ 145,</div><div class='del'>-      /*0x03a7*/ 263,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03f9*/ 292,</div><div class='del'>-      /*0x2c27*/ 950,</div><div class='del'>-      /*0xa796*/ 1113,</div><div class='del'>-      /*0x1c86*/ 536,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1ff7*/ 858,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13f9*/ 525,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e86*/ 652,</div><div class='del'>-      /*0x10c86*/ 1335,</div><div class='del'>-      /*0x01f7*/ 185,</div><div class='del'>-      /*0x03f7*/ 291,</div><div class='del'>-      /*0x1e906*/ 1450,</div><div class='del'>-      /*0x10414*/ 1273,</div><div class='del'>-      /*0x1f94*/ 787,</div><div class='del'>-      /*0x0414*/ 317,</div><div class='del'>-      /*0x0214*/ 200,</div><div class='del'>-      /*0x0114*/ 67,</div><div class='del'>-      /*0xab94*/ 1171,</div><div class='del'>-      /*0x1ca7*/ 562,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0194*/ 134,</div><div class='del'>-      /*0x0394*/ 245,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e08*/ 589,</div><div class='del'>-      /*0x2c14*/ 931,</div><div class='del'>-      /*0xa786*/ 1108,</div><div class='del'>-      /*0x10ca7*/ 1368,</div><div class='del'>-      /*0x0508*/ 425,</div><div class='del'>-      /*0xfb03*/ 1218,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10410*/ 1269,</div><div class='del'>-      /*0x1f90*/ 783,</div><div class='del'>-      /*0x0410*/ 313,</div><div class='del'>-      /*0x0210*/ 198,</div><div class='del'>-      /*0x0110*/ 65,</div><div class='del'>-      /*0xab90*/ 1167,</div><div class='del'>-      /*0x2c94*/ 983,</div><div class='del'>-      /*0x1fe7*/ 848,</div><div class='del'>-      /*0x0190*/ 131,</div><div class='del'>-      /*0x0390*/ 241,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e0a*/ 590,</div><div class='del'>-      /*0x2c10*/ 927,</div><div class='del'>-      /*0x1c94*/ 543,</div><div class='del'>-      /*0x048a*/ 362,</div><div class='del'>-      /*0x050a*/ 426,</div><div class='del'>-      /*0xfb00*/ 1215,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c67*/ 962,</div><div class='del'>-      /*0x1fc9*/ 832,</div><div class='del'>-      /*0x1e94*/ 659,</div><div class='del'>-      /*0x10c94*/ 1349,</div><div class='del'>-      /*0x0149*/ 92,</div><div class='del'>-      /*0x0049*/ 1478,</div><div class='del'>-      /*0x1e914*/ 1464,</div><div class='del'>-      /*0x2c90*/ 981,</div><div class='del'>-      /*0x10404*/ 1257,</div><div class='del'>-      /*0x1f84*/ 771,</div><div class='del'>-      /*0x0404*/ 301,</div><div class='del'>-      /*0x0204*/ 192,</div><div class='del'>-      /*0x0104*/ 59,</div><div class='del'>-      /*0xab84*/ 1155,</div><div class='del'>-      /*0x1c90*/ 539,</div><div class='del'>-      /*0x00df*/ 56,</div><div class='del'>-      /*0x0184*/ 123,</div><div class='del'>-      /*0x1fe9*/ 850,</div><div class='del'>-      /*0x1f08*/ 715,</div><div class='del'>-      /*0x1f5f*/ 758,</div><div class='del'>-      /*0x2c04*/ 915,</div><div class='del'>-      /*0x1e90*/ 657,</div><div class='del'>-      /*0x10c90*/ 1345,</div><div class='del'>-      /*0x1fe3*/ 845,</div><div class='del'>-      /*0x1f09*/ 716,</div><div class='del'>-      /*0x1e910*/ 1460,</div><div class='del'>-      /*0x1e00*/ 585,</div><div class='del'>-      /*0x2165*/ 873,</div><div class='del'>-      /*0x2c69*/ 963,</div><div class='del'>-      /*0x0480*/ 361,</div><div class='del'>-      /*0x0500*/ 421,</div><div class='del'>-      /*0x2161*/ 869,</div><div class='del'>-      /*0x1e7e*/ 648,</div><div class='del'>-      /*0x2c84*/ 975,</div><div class='del'>-      /*0x2c63*/ 960,</div><div class='del'>-      /*0x04fe*/ 420,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f0a*/ 717,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa790*/ 1111,</div><div class='del'>-      /*0x1c84*/ 534,</div><div class='del'>-      /*0x10402*/ 1255,</div><div class='del'>-      /*0x1f82*/ 769,</div><div class='del'>-      /*0x0402*/ 299,</div><div class='del'>-      /*0x0202*/ 191,</div><div class='del'>-      /*0x0102*/ 58,</div><div class='del'>-      /*0xab82*/ 1153,</div><div class='del'>-      /*0x1e84*/ 651,</div><div class='del'>-      /*0x10c84*/ 1333,</div><div class='del'>-      /*0x0182*/ 122,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e904*/ 1448,</div><div class='del'>-      /*0x1e18*/ 597,</div><div class='del'>-      /*0x2c02*/ 913,</div><div class='del'>-      /*0x1fd9*/ 841,</div><div class='del'>-      /*0x0498*/ 369,</div><div class='del'>-      /*0x0518*/ 433,</div><div class='del'>-      /*0xfb16*/ 1225,</div><div class='del'>-      /*0x0059*/ 23,</div><div class='del'>-      /*0x00dd*/ 54,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01d9*/ 169,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f5d*/ 757,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa784*/ 1107,</div><div class='del'>-      /*0x2c82*/ 974,</div><div class='del'>-      /*0x10420*/ 1285,</div><div class='del'>-      /*0x1fa0*/ 799,</div><div class='del'>-      /*0x0420*/ 329,</div><div class='del'>-      /*0x0220*/ 206,</div><div class='del'>-      /*0x0120*/ 73,</div><div class='del'>-      /*0xaba0*/ 1183,</div><div class='del'>-      /*0x1c82*/ 532,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01a0*/ 141,</div><div class='del'>-      /*0x03a0*/ 257,</div><div class='del'>-      /*0x216b*/ 879,</div><div class='del'>-      /*0x1f6b*/ 762,</div><div class='del'>-      /*0x2c20*/ 943,</div><div class='del'>-      /*0x1e82*/ 650,</div><div class='del'>-      /*0x10c82*/ 1331,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xfb06*/ 1221,</div><div class='del'>-      /*0x1e902*/ 1446,</div><div class='del'>-      /*0x1e16*/ 596,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa77d*/ 1103,</div><div class='del'>-      /*0x0496*/ 368,</div><div class='del'>-      /*0x0516*/ 432,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2ca0*/ 989,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e70*/ 641,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f18*/ 723,</div><div class='del'>-      /*0x04f0*/ 413,</div><div class='del'>-      /*0xa782*/ 1106,</div><div class='del'>-      /*0x1ca0*/ 555,</div><div class='del'>-      /*0x10426*/ 1291,</div><div class='del'>-      /*0x1fa6*/ 805,</div><div class='del'>-      /*0x0426*/ 335,</div><div class='del'>-      /*0x0226*/ 209,</div><div class='del'>-      /*0x0126*/ 76,</div><div class='del'>-      /*0xaba6*/ 1189,</div><div class='del'>-      /*0x1ea0*/ 667,</div><div class='del'>-      /*0x10ca0*/ 1361,</div><div class='del'>-      /*0x01a6*/ 144,</div><div class='del'>-      /*0x03a6*/ 262,</div><div class='del'>-      /*0x1e920*/ 1476,</div><div class='del'>-      /*0x1e06*/ 588,</div><div class='del'>-      /*0x2c26*/ 949,</div><div class='del'>-      /*0xa77e*/ 1104,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0506*/ 424,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x037f*/ 233,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x1ffb*/ 862,</div><div class='del'>-      /*0xa7a0*/ 1118,</div><div class='del'>-      /*0x2ca6*/ 992,</div><div class='del'>-      /*0x017b*/ 118,</div><div class='del'>-      /*0xfb14*/ 1223,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1faf*/ 814,</div><div class='del'>-      /*0x042f*/ 344,</div><div class='del'>-      /*0x1ca6*/ 561,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xabaf*/ 1198,</div><div class='del'>-      /*0x216f*/ 883,</div><div class='del'>-      /*0x1f6f*/ 766,</div><div class='del'>-      /*0x01af*/ 149,</div><div class='del'>-      /*0x13fb*/ 527,</div><div class='del'>-      /*0x1ea6*/ 670,</div><div class='del'>-      /*0x10ca6*/ 1367,</div><div class='del'>-      /*0x10424*/ 1289,</div><div class='del'>-      /*0x1fa4*/ 803,</div><div class='del'>-      /*0x0424*/ 333,</div><div class='del'>-      /*0x0224*/ 208,</div><div class='del'>-      /*0x0124*/ 75,</div><div class='del'>-      /*0xaba4*/ 1187,</div><div class='del'>-      /*0x0370*/ 230,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01a4*/ 143,</div><div class='del'>-      /*0x03a4*/ 260,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c24*/ 947,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e14*/ 595,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa7a6*/ 1121,</div><div class='del'>-      /*0x0494*/ 367,</div><div class='del'>-      /*0x0514*/ 431,</div><div class='del'>-      /*0x10a7*/ 491,</div><div class='del'>-      /*0x1caf*/ 570,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x118a7*/ 1387,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2ca4*/ 991,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10caf*/ 1376,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xfb04*/ 1219,</div><div class='del'>-      /*0x1ca4*/ 559,</div><div class='del'>-      /*0x1e10*/ 593,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0490*/ 365,</div><div class='del'>-      /*0x0510*/ 429,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1ea4*/ 669,</div><div class='del'>-      /*0x10ca4*/ 1365,</div><div class='del'>-      /*0x1041a*/ 1279,</div><div class='del'>-      /*0x1f9a*/ 793,</div><div class='del'>-      /*0x041a*/ 323,</div><div class='del'>-      /*0x021a*/ 203,</div><div class='del'>-      /*0x011a*/ 70,</div><div class='del'>-      /*0xab9a*/ 1177,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x039a*/ 251,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104c9*/ 1318,</div><div class='del'>-      /*0x2c1a*/ 937,</div><div class='del'>-      /*0x04c9*/ 394,</div><div class='del'>-      /*0x0549*/ 469,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa7a4*/ 1120,</div><div class='del'>-      /*0x1fc7*/ 830,</div><div class='del'>-      /*0x1e04*/ 587,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0147*/ 91,</div><div class='del'>-      /*0x0047*/ 6,</div><div class='del'>-      /*0x0504*/ 423,</div><div class='del'>-      /*0xfb02*/ 1217,</div><div class='del'>-      /*0x01c7*/ 159,</div><div class='del'>-      /*0x2c9a*/ 986,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xa779*/ 1101,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1c9a*/ 549,</div><div class='del'>-      /*0x10412*/ 1271,</div><div class='del'>-      /*0x1f92*/ 785,</div><div class='del'>-      /*0x0412*/ 315,</div><div class='del'>-      /*0x0212*/ 199,</div><div class='del'>-      /*0x0112*/ 66,</div><div class='del'>-      /*0xab92*/ 1169,</div><div class='del'>-      /*0x1e9a*/ 664,</div><div class='del'>-      /*0x10c9a*/ 1355,</div><div class='del'>-      /*0x2167*/ 875,</div><div class='del'>-      /*0x0392*/ 243,</div><div class='del'>-      /*0x1e91a*/ 1470,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c12*/ 929,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x00c9*/ 35,</div><div class='del'>-      /*0x1e02*/ 586,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c6d*/ 965,</div><div class='del'>-      /*0x1f49*/ 746,</div><div class='del'>-      /*0x0502*/ 422,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa79a*/ 1115,</div><div class='del'>-      /*0x2c92*/ 982,</div><div class='del'>-      /*0x1041c*/ 1281,</div><div class='del'>-      /*0x1f9c*/ 795,</div><div class='del'>-      /*0x041c*/ 325,</div><div class='del'>-      /*0x021c*/ 204,</div><div class='del'>-      /*0x011c*/ 71,</div><div class='del'>-      /*0xab9c*/ 1179,</div><div class='del'>-      /*0x1c92*/ 541,</div><div class='del'>-      /*0x2ced*/ 1024,</div><div class='del'>-      /*0x019c*/ 138,</div><div class='del'>-      /*0x039c*/ 253,</div><div class='del'>-      /*0x2169*/ 877,</div><div class='del'>-      /*0x1f69*/ 760,</div><div class='del'>-      /*0x2c1c*/ 939,</div><div class='del'>-      /*0x1e92*/ 658,</div><div class='del'>-      /*0x10c92*/ 1347,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2163*/ 871,</div><div class='del'>-      /*0x1e912*/ 1462,</div><div class='del'>-      /*0x1e20*/ 601,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x04a0*/ 373,</div><div class='del'>-      /*0x0520*/ 437,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c9c*/ 987,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x24c9*/ 904,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa792*/ 1112,</div><div class='del'>-      /*0x1c9c*/ 551,</div><div class='del'>-      /*0x1041e*/ 1283,</div><div class='del'>-      /*0x1f9e*/ 797,</div><div class='del'>-      /*0x041e*/ 327,</div><div class='del'>-      /*0x021e*/ 205,</div><div class='del'>-      /*0x011e*/ 72,</div><div class='del'>-      /*0xab9e*/ 1181,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10c9c*/ 1357,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x039e*/ 255,</div><div class='del'>-      /*0x1e91c*/ 1472,</div><div class='del'>-      /*0x00d9*/ 50,</div><div class='del'>-      /*0x2c1e*/ 941,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1f59*/ 755,</div><div class='del'>-      /*0x10a0*/ 484,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e26*/ 604,</div><div class='del'>-      /*0xff27*/ 1233,</div><div class='del'>-      /*0x118a0*/ 1380,</div><div class='del'>-      /*0x04a6*/ 376,</div><div class='del'>-      /*0x0526*/ 440,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa79c*/ 1116,</div><div class='del'>-      /*0x2c9e*/ 988,</div><div class='del'>-      /*0x10422*/ 1287,</div><div class='del'>-      /*0x1fa2*/ 801,</div><div class='del'>-      /*0x0422*/ 331,</div><div class='del'>-      /*0x0222*/ 207,</div><div class='del'>-      /*0x0122*/ 74,</div><div class='del'>-      /*0xaba2*/ 1185,</div><div class='del'>-      /*0x1c9e*/ 553,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01a2*/ 142,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x2c22*/ 945,</div><div class='del'>-      /*0x1e9e*/ 666,</div><div class='del'>-      /*0x10c9e*/ 1359,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e91e*/ 1474,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x10a6*/ 490,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2ca2*/ 990,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118a6*/ 1386,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0xa79e*/ 1117,</div><div class='del'>-      /*0x1ca2*/ 557,</div><div class='del'>-      /*0x1e24*/ 603,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2126*/ 864,</div><div class='del'>-      /*0x04a4*/ 375,</div><div class='del'>-      /*0x0524*/ 439,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1ea2*/ 668,</div><div class='del'>-      /*0x10ca2*/ 1363,</div><div class='del'>-      /*0x1040e*/ 1267,</div><div class='del'>-      /*0x1f8e*/ 781,</div><div class='del'>-      /*0x040e*/ 311,</div><div class='del'>-      /*0x020e*/ 197,</div><div class='del'>-      /*0x010e*/ 64,</div><div class='del'>-      /*0xab8e*/ 1165,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x018e*/ 129,</div><div class='del'>-      /*0x038e*/ 239,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10af*/ 499,</div><div class='del'>-      /*0x2c0e*/ 925,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x118af*/ 1395,</div><div class='del'>-      /*0xa7a2*/ 1119,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1faa*/ 809,</div><div class='del'>-      /*0x042a*/ 339,</div><div class='del'>-      /*0x022a*/ 211,</div><div class='del'>-      /*0x012a*/ 78,</div><div class='del'>-      /*0xabaa*/ 1193,</div><div class='del'>-      /*0x10a4*/ 488,</div><div class='del'>-      /*0x1f2f*/ 736,</div><div class='del'>-      /*0x2c8e*/ 980,</div><div class='del'>-      /*0x03aa*/ 266,</div><div class='del'>-      /*0x118a4*/ 1384,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c2a*/ 953,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa726*/ 1065,</div><div class='del'>-      /*0x1e1a*/ 598,</div><div class='del'>-      /*0x1fb8*/ 820,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x049a*/ 370,</div><div class='del'>-      /*0x051a*/ 434,</div><div class='del'>-      /*0xabb8*/ 1207,</div><div class='del'>-      /*0x1e8e*/ 656,</div><div class='del'>-      /*0x10c8e*/ 1343,</div><div class='del'>-      /*0x01b8*/ 155,</div><div class='del'>-      /*0x2caa*/ 994,</div><div class='del'>-      /*0x1e90e*/ 1458,</div><div class='del'>-      /*0x1fae*/ 813,</div><div class='del'>-      /*0x042e*/ 343,</div><div class='del'>-      /*0x022e*/ 213,</div><div class='del'>-      /*0x012e*/ 80,</div><div class='del'>-      /*0xabae*/ 1197,</div><div class='del'>-      /*0x1caa*/ 565,</div><div class='del'>-      /*0x104c7*/ 1316,</div><div class='del'>-      /*0x01ae*/ 148,</div><div class='del'>-      /*0x04c7*/ 393,</div><div class='del'>-      /*0x0547*/ 467,</div><div class='del'>-      /*0xa77b*/ 1102,</div><div class='del'>-      /*0x2c2e*/ 957,</div><div class='del'>-      /*0x1eaa*/ 672,</div><div class='del'>-      /*0x10caa*/ 1371,</div><div class='del'>-      /*0x2cb8*/ 1001,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1fac*/ 811,</div><div class='del'>-      /*0x042c*/ 341,</div><div class='del'>-      /*0x022c*/ 212,</div><div class='del'>-      /*0x012c*/ 79,</div><div class='del'>-      /*0xabac*/ 1195,</div><div class='del'>-      /*0x1cb8*/ 579,</div><div class='del'>-      /*0x1e12*/ 594,</div><div class='del'>-      /*0x01ac*/ 147,</div><div class='del'>-      /*0x2cae*/ 996,</div><div class='del'>-      /*0x0492*/ 366,</div><div class='del'>-      /*0x0512*/ 430,</div><div class='del'>-      /*0x2c2c*/ 955,</div><div class='del'>-      /*0x1eb8*/ 679,</div><div class='del'>-      /*0xa724*/ 1064,</div><div class='del'>-      /*0xa7aa*/ 1123,</div><div class='del'>-      /*0x1cae*/ 569,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f1a*/ 725,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10c7*/ 522,</div><div class='del'>-      /*0x1fd3*/ 837,</div><div class='del'>-      /*0x1eae*/ 674,</div><div class='del'>-      /*0x10cae*/ 1375,</div><div class='del'>-      /*0x2cac*/ 995,</div><div class='del'>-      /*0x0053*/ 17,</div><div class='del'>-      /*0x1ffa*/ 861,</div><div class='del'>-      /*0x047a*/ 358,</div><div class='del'>-      /*0x01d3*/ 166,</div><div class='del'>-      /*0x00c7*/ 33,</div><div class='del'>-      /*0xa7b8*/ 1134,</div><div class='del'>-      /*0x1cac*/ 567,</div><div class='del'>-      /*0x1e1c*/ 599,</div><div class='del'>-      /*0x01fa*/ 187,</div><div class='del'>-      /*0x03fa*/ 293,</div><div class='del'>-      /*0x049c*/ 371,</div><div class='del'>-      /*0x051c*/ 435,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1eac*/ 673,</div><div class='del'>-      /*0x10cac*/ 1373,</div><div class='del'>-      /*0xa7ae*/ 1127,</div><div class='del'>-      /*0x13fa*/ 526,</div><div class='del'>-      /*0x1fa8*/ 807,</div><div class='del'>-      /*0x0428*/ 337,</div><div class='del'>-      /*0x0228*/ 210,</div><div class='del'>-      /*0x0128*/ 77,</div><div class='del'>-      /*0xaba8*/ 1191,</div><div class='del'>-      /*0x1ffc*/ 863,</div><div class='del'>-      /*0x047c*/ 359,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03a8*/ 264,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c28*/ 951,</div><div class='del'>-      /*0x01fc*/ 188,</div><div class='del'>-      /*0xff26*/ 1232,</div><div class='del'>-      /*0xa7ac*/ 1125,</div><div class='del'>-      /*0x216d*/ 881,</div><div class='del'>-      /*0x1f6d*/ 764,</div><div class='del'>-      /*0x1fba*/ 822,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x023a*/ 216,</div><div class='del'>-      /*0x13fc*/ 528,</div><div class='del'>-      /*0xabba*/ 1209,</div><div class='del'>-      /*0x1efa*/ 712,</div><div class='del'>-      /*0x1e1e*/ 600,</div><div class='del'>-      /*0x2ca8*/ 993,</div><div class='del'>-      /*0x24c7*/ 902,</div><div class='del'>-      /*0x049e*/ 372,</div><div class='del'>-      /*0x051e*/ 436,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1ca8*/ 563,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1fb2*/ 815,</div><div class='del'>-      /*0x1f1c*/ 727,</div><div class='del'>-      /*0x0232*/ 215,</div><div class='del'>-      /*0x0132*/ 81,</div><div class='del'>-      /*0xabb2*/ 1201,</div><div class='del'>-      /*0x1ea8*/ 671,</div><div class='del'>-      /*0x10ca8*/ 1369,</div><div class='del'>-      /*0x01b2*/ 151,</div><div class='del'>-      /*0x2cba*/ 1002,</div><div class='del'>-      /*0xff2f*/ 1241,</div><div class='del'>-      /*0x1efc*/ 713,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x1cba*/ 581,</div><div class='del'>-      /*0x1e22*/ 602,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x04a2*/ 374,</div><div class='del'>-      /*0x0522*/ 438,</div><div class='del'>-      /*0xff24*/ 1230,</div><div class='del'>-      /*0x1eba*/ 680,</div><div class='del'>-      /*0xa7a8*/ 1122,</div><div class='del'>-      /*0x2cb2*/ 998,</div><div class='del'>-      /*0x1040c*/ 1265,</div><div class='del'>-      /*0x1f8c*/ 779,</div><div class='del'>-      /*0x040c*/ 309,</div><div class='del'>-      /*0x020c*/ 196,</div><div class='del'>-      /*0x010c*/ 63,</div><div class='del'>-      /*0xab8c*/ 1163,</div><div class='del'>-      /*0x1cb2*/ 573,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x038c*/ 238,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c0c*/ 923,</div><div class='del'>-      /*0x1eb2*/ 676,</div><div class='del'>-      /*0x10cb2*/ 1379,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1ff2*/ 854,</div><div class='del'>-      /*0x0472*/ 354,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0172*/ 113,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10a2*/ 486,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01f2*/ 182,</div><div class='del'>-      /*0x2c8c*/ 979,</div><div class='del'>-      /*0x118a2*/ 1382,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c72*/ 969,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa7b2*/ 1130,</div><div class='del'>-      /*0x1e0e*/ 592,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x048e*/ 364,</div><div class='del'>-      /*0x050e*/ 428,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e8c*/ 655,</div><div class='del'>-      /*0x10c8c*/ 1341,</div><div class='del'>-      /*0x2cf2*/ 1025,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e90c*/ 1456,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0230*/ 214,</div><div class='del'>-      /*0x0130*/ 1479,</div><div class='del'>-      /*0xabb0*/ 1199,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e2a*/ 606,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03b0*/ 268,</div><div class='del'>-      /*0x04aa*/ 378,</div><div class='del'>-      /*0x052a*/ 442,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1ef2*/ 708,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1fb6*/ 818,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0136*/ 83,</div><div class='del'>-      /*0xabb6*/ 1205,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e38*/ 613,</div><div class='del'>-      /*0x104b8*/ 1301,</div><div class='del'>-      /*0x2cb0*/ 997,</div><div class='del'>-      /*0x04b8*/ 385,</div><div class='del'>-      /*0x0538*/ 452,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa722*/ 1063,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1cb0*/ 571,</div><div class='del'>-      /*0x1e2e*/ 608,</div><div class='del'>-      /*0x1f0e*/ 721,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04ae*/ 380,</div><div class='del'>-      /*0x052e*/ 444,</div><div class='del'>-      /*0x10aa*/ 494,</div><div class='del'>-      /*0x1eb0*/ 675,</div><div class='del'>-      /*0x10cb0*/ 1377,</div><div class='del'>-      /*0x2cb6*/ 1000,</div><div class='del'>-      /*0x118aa*/ 1390,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x1cb6*/ 577,</div><div class='del'>-      /*0x1e2c*/ 607,</div><div class='del'>-      /*0x212a*/ 865,</div><div class='del'>-      /*0x1f2a*/ 731,</div><div class='del'>-      /*0x04ac*/ 379,</div><div class='del'>-      /*0x052c*/ 443,</div><div class='del'>-      /*0x10b8*/ 508,</div><div class='del'>-      /*0x1eb6*/ 678,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa7b0*/ 1128,</div><div class='del'>-      /*0x118b8*/ 1404,</div><div class='del'>-      /*0x1fb4*/ 817,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0134*/ 82,</div><div class='del'>-      /*0xabb4*/ 1203,</div><div class='del'>-      /*0x10ae*/ 498,</div><div class='del'>-      /*0x1fbc*/ 824,</div><div class='del'>-      /*0xa688*/ 1053,</div><div class='del'>-      /*0x1f38*/ 737,</div><div class='del'>-      /*0x118ae*/ 1394,</div><div class='del'>-      /*0xabbc*/ 1211,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104d3*/ 1328,</div><div class='del'>-      /*0x01bc*/ 156,</div><div class='del'>-      /*0xa7b6*/ 1133,</div><div class='del'>-      /*0x0553*/ 479,</div><div class='del'>-      /*0x1e7a*/ 646,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f2e*/ 735,</div><div class='del'>-      /*0x04fa*/ 418,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10ac*/ 496,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2cb4*/ 999,</div><div class='del'>-      /*0x118ac*/ 1392,</div><div class='del'>-      /*0xa68a*/ 1054,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa72a*/ 1067,</div><div class='del'>-      /*0x2cbc*/ 1003,</div><div class='del'>-      /*0x1cb4*/ 575,</div><div class='del'>-      /*0x1e28*/ 605,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f2c*/ 733,</div><div class='del'>-      /*0x04a8*/ 377,</div><div class='del'>-      /*0x0528*/ 441,</div><div class='del'>-      /*0x1e7c*/ 647,</div><div class='del'>-      /*0x1eb4*/ 677,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04fc*/ 419,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x24b8*/ 887,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1ebc*/ 681,</div><div class='del'>-      /*0xa738*/ 1073,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1e3a*/ 614,</div><div class='del'>-      /*0x104ba*/ 1303,</div><div class='del'>-      /*0x00d3*/ 45,</div><div class='del'>-      /*0x04ba*/ 386,</div><div class='del'>-      /*0x053a*/ 454,</div><div class='del'>-      /*0xff22*/ 1228,</div><div class='del'>-      /*0xa72e*/ 1069,</div><div class='del'>-      /*0xa7b4*/ 1132,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa680*/ 1049,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x10a8*/ 492,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e32*/ 610,</div><div class='del'>-      /*0x104b2*/ 1295,</div><div class='del'>-      /*0x118a8*/ 1388,</div><div class='del'>-      /*0x04b2*/ 382,</div><div class='del'>-      /*0x0532*/ 446,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa72c*/ 1068,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1fbe*/ 825,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x023e*/ 219,</div><div class='del'>-      /*0x1f28*/ 729,</div><div class='del'>-      /*0xabbe*/ 1213,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1fca*/ 833,</div><div class='del'>-      /*0x10ba*/ 510,</div><div class='del'>-      /*0x024a*/ 226,</div><div class='del'>-      /*0x014a*/ 93,</div><div class='del'>-      /*0x004a*/ 8,</div><div class='del'>-      /*0x118ba*/ 1406,</div><div class='del'>-      /*0xa698*/ 1061,</div><div class='del'>-      /*0x01ca*/ 161,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x1e0c*/ 591,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f3a*/ 739,</div><div class='del'>-      /*0x048c*/ 363,</div><div class='del'>-      /*0x050c*/ 427,</div><div class='del'>-      /*0x10b2*/ 502,</div><div class='del'>-      /*0x2cbe*/ 1004,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1fdb*/ 843,</div><div class='del'>-      /*0x118b2*/ 1398,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2cca*/ 1010,</div><div class='del'>-      /*0x1cbe*/ 583,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01db*/ 170,</div><div class='del'>-      /*0x1e72*/ 642,</div><div class='del'>-      /*0x2132*/ 867,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04f2*/ 414,</div><div class='del'>-      /*0x1ebe*/ 682,</div><div class='del'>-      /*0xff2a*/ 1236,</div><div class='del'>-      /*0xa728*/ 1066,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1eca*/ 688,</div><div class='del'>-      /*0xa696*/ 1060,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1fd6*/ 838,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0156*/ 99,</div><div class='del'>-      /*0x0056*/ 20,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x24ba*/ 889,</div><div class='del'>-      /*0xff38*/ 1250,</div><div class='del'>-      /*0x03d6*/ 274,</div><div class='del'>-      /*0xa73a*/ 1074,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e30*/ 609,</div><div class='del'>-      /*0x104b0*/ 1293,</div><div class='del'>-      /*0x1f0c*/ 719,</div><div class='del'>-      /*0x04b0*/ 381,</div><div class='del'>-      /*0x1fcc*/ 835,</div><div class='del'>-      /*0xff2e*/ 1240,</div><div class='del'>-      /*0x024c*/ 227,</div><div class='del'>-      /*0x014c*/ 94,</div><div class='del'>-      /*0x004c*/ 10,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa686*/ 1052,</div><div class='del'>-      /*0x2cd6*/ 1016,</div><div class='del'>-      /*0xa732*/ 1070,</div><div class='del'>-      /*0x1fab*/ 810,</div><div class='del'>-      /*0x042b*/ 340,</div><div class='del'>-      /*0x1e36*/ 612,</div><div class='del'>-      /*0x104b6*/ 1299,</div><div class='del'>-      /*0xabab*/ 1194,</div><div class='del'>-      /*0x04b6*/ 384,</div><div class='del'>-      /*0x0536*/ 450,</div><div class='del'>-      /*0xff2c*/ 1238,</div><div class='del'>-      /*0x03ab*/ 267,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c2b*/ 954,</div><div class='del'>-      /*0x1ed6*/ 694,</div><div class='del'>-      /*0x0372*/ 231,</div><div class='del'>-      /*0x2ccc*/ 1011,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10b0*/ 500,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1fe2*/ 844,</div><div class='del'>-      /*0x0462*/ 346,</div><div class='del'>-      /*0x118b0*/ 1396,</div><div class='del'>-      /*0x0162*/ 105,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x01e2*/ 173,</div><div class='del'>-      /*0x03e2*/ 280,</div><div class='del'>-      /*0x1ecc*/ 689,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c62*/ 959,</div><div class='del'>-      /*0x1cab*/ 566,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10b6*/ 506,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x118b6*/ 1402,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10cab*/ 1372,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa694*/ 1059,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2ce2*/ 1022,</div><div class='del'>-      /*0x1e34*/ 611,</div><div class='del'>-      /*0x104b4*/ 1297,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04b4*/ 383,</div><div class='del'>-      /*0x0534*/ 448,</div><div class='del'>-      /*0xff28*/ 1234,</div><div class='del'>-      /*0x1e3c*/ 615,</div><div class='del'>-      /*0x104bc*/ 1305,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04bc*/ 387,</div><div class='del'>-      /*0x053c*/ 456,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa7ab*/ 1124,</div><div class='del'>-      /*0x1ee2*/ 700,</div><div class='del'>-      /*0x0055*/ 19,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa690*/ 1057,</div><div class='del'>-      /*0x01d5*/ 167,</div><div class='del'>-      /*0x03d5*/ 273,</div><div class='del'>-      /*0x1fc8*/ 831,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0248*/ 225,</div><div class='del'>-      /*0xff3a*/ 1252,</div><div class='del'>-      /*0x0048*/ 7,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x01c8*/ 160,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1fd2*/ 836,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10b4*/ 504,</div><div class='del'>-      /*0x0152*/ 97,</div><div class='del'>-      /*0x0052*/ 16,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118b4*/ 1400,</div><div class='del'>-      /*0x24b6*/ 885,</div><div class='del'>-      /*0x10bc*/ 512,</div><div class='del'>-      /*0xff32*/ 1244,</div><div class='del'>-      /*0xa736*/ 1072,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118bc*/ 1408,</div><div class='del'>-      /*0xa684*/ 1051,</div><div class='del'>-      /*0x2cc8*/ 1009,</div><div class='del'>-      /*0x1fc4*/ 828,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0244*/ 222,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0044*/ 3,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f3c*/ 741,</div><div class='del'>-      /*0x01c4*/ 157,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2cd2*/ 1014,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1ec8*/ 687,</div><div class='del'>-      /*0x1040d*/ 1266,</div><div class='del'>-      /*0x1f8d*/ 780,</div><div class='del'>-      /*0x040d*/ 310,</div><div class='del'>-      /*0x16e5f*/ 1443,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab8d*/ 1164,</div><div class='del'>-      /*0x0150*/ 96,</div><div class='del'>-      /*0x0050*/ 14,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1ed2*/ 692,</div><div class='del'>-      /*0x2cc4*/ 1007,</div><div class='del'>-      /*0x03d0*/ 271,</div><div class='del'>-      /*0x2c0d*/ 924,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e3e*/ 616,</div><div class='del'>-      /*0x104be*/ 1307,</div><div class='del'>-      /*0xa682*/ 1050,</div><div class='del'>-      /*0x04be*/ 388,</div><div class='del'>-      /*0x053e*/ 458,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e4a*/ 622,</div><div class='del'>-      /*0x104ca*/ 1319,</div><div class='del'>-      /*0xa734*/ 1071,</div><div class='del'>-      /*0x1ec4*/ 685,</div><div class='del'>-      /*0x054a*/ 470,</div><div class='del'>-      /*0x24bc*/ 891,</div><div class='del'>-      /*0x2cd0*/ 1013,</div><div class='del'>-      /*0xa64a*/ 1031,</div><div class='del'>-      /*0xa73c*/ 1075,</div><div class='del'>-      /*0x1fc2*/ 826,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x0042*/ 1,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x03c2*/ 269,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10c8d*/ 1342,</div><div class='del'>-      /*0x1ed0*/ 691,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e90d*/ 1457,</div><div class='del'>-      /*0x2cc0*/ 1005,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10be*/ 514,</div><div class='del'>-      /*0x16e5d*/ 1441,</div><div class='del'>-      /*0xff30*/ 1242,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118be*/ 1410,</div><div class='del'>-      /*0x024e*/ 228,</div><div class='del'>-      /*0x014e*/ 95,</div><div class='del'>-      /*0x004e*/ 12,</div><div class='del'>-      /*0x2cc2*/ 1006,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa78d*/ 1110,</div><div class='del'>-      /*0x1ec0*/ 683,</div><div class='del'>-      /*0x1f3e*/ 743,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00ca*/ 36,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e56*/ 628,</div><div class='del'>-      /*0xff36*/ 1248,</div><div class='del'>-      /*0x1f4a*/ 747,</div><div class='del'>-      /*0x04d6*/ 400,</div><div class='del'>-      /*0x0556*/ 482,</div><div class='del'>-      /*0x1ec2*/ 684,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa656*/ 1037,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2cce*/ 1012,</div><div class='del'>-      /*0x1fc6*/ 829,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0246*/ 224,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0046*/ 5,</div><div class='del'>-      /*0x1e4c*/ 623,</div><div class='del'>-      /*0x104cc*/ 1321,</div><div class='del'>-      /*0x00db*/ 52,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x054c*/ 472,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f5b*/ 756,</div><div class='del'>-      /*0xa64c*/ 1032,</div><div class='del'>-      /*0x1ece*/ 690,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e57*/ 1435,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x24be*/ 893,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa73e*/ 1076,</div><div class='del'>-      /*0x1fda*/ 842,</div><div class='del'>-      /*0x2cc6*/ 1008,</div><div class='del'>-      /*0x24ca*/ 905,</div><div class='del'>-      /*0x015a*/ 101,</div><div class='del'>-      /*0x005a*/ 24,</div><div class='del'>-      /*0xa74a*/ 1082,</div><div class='del'>-      /*0x00d6*/ 48,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03da*/ 276,</div><div class='del'>-      /*0xff34*/ 1246,</div><div class='del'>-      /*0x1f56*/ 754,</div><div class='del'>-      /*0x1e62*/ 634,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1fd8*/ 840,</div><div class='del'>-      /*0x04e2*/ 406,</div><div class='del'>-      /*0x1ec6*/ 686,</div><div class='del'>-      /*0x0158*/ 100,</div><div class='del'>-      /*0x0058*/ 22,</div><div class='del'>-      /*0xa662*/ 1043,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x03d8*/ 275,</div><div class='del'>-      /*0x00cc*/ 38,</div><div class='del'>-      /*0x10ab*/ 495,</div><div class='del'>-      /*0x2cda*/ 1018,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f4c*/ 749,</div><div class='del'>-      /*0x118ab*/ 1391,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x212b*/ 866,</div><div class='del'>-      /*0x1f2b*/ 732,</div><div class='del'>-      /*0x2cd8*/ 1017,</div><div class='del'>-      /*0x1eda*/ 696,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1fe4*/ 846,</div><div class='del'>-      /*0x0464*/ 347,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0164*/ 106,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa756*/ 1088,</div><div class='del'>-      /*0x01e4*/ 174,</div><div class='del'>-      /*0x03e4*/ 281,</div><div class='del'>-      /*0x0555*/ 481,</div><div class='del'>-      /*0x1ed8*/ 695,</div><div class='del'>-      /*0x2c64*/ 961,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2162*/ 870,</div><div class='del'>-      /*0x1e48*/ 621,</div><div class='del'>-      /*0x104c8*/ 1317,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0548*/ 468,</div><div class='del'>-      /*0x24cc*/ 907,</div><div class='del'>-      /*0xa69a*/ 1062,</div><div class='del'>-      /*0xa648*/ 1030,</div><div class='del'>-      /*0xa74c*/ 1083,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e52*/ 626,</div><div class='del'>-      /*0x104d2*/ 1327,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04d2*/ 398,</div><div class='del'>-      /*0x0552*/ 478,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa652*/ 1035,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0154*/ 98,</div><div class='del'>-      /*0x0054*/ 18,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1ee4*/ 701,</div><div class='del'>-      /*0x1e44*/ 619,</div><div class='del'>-      /*0x104c4*/ 1313,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0544*/ 464,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00d5*/ 47,</div><div class='del'>-      /*0xa644*/ 1028,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xa762*/ 1094,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa692*/ 1058,</div><div class='del'>-      /*0x00c8*/ 34,</div><div class='del'>-      /*0x2cd4*/ 1015,</div><div class='del'>-      /*0x1e50*/ 625,</div><div class='del'>-      /*0x104d0*/ 1325,</div><div class='del'>-      /*0x1f48*/ 745,</div><div class='del'>-      /*0x04d0*/ 397,</div><div class='del'>-      /*0x0550*/ 476,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa650*/ 1034,</div><div class='del'>-      /*0x00d2*/ 44,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1f52*/ 752,</div><div class='del'>-      /*0x1ed4*/ 693,</div><div class='del'>-      /*0x10c4*/ 520,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e40*/ 617,</div><div class='del'>-      /*0x104c0*/ 1309,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04c0*/ 389,</div><div class='del'>-      /*0x0540*/ 460,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00c4*/ 30,</div><div class='del'>-      /*0xa640*/ 1026,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e49*/ 1421,</div><div class='del'>-      /*0x1e42*/ 618,</div><div class='del'>-      /*0x104c2*/ 1311,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0542*/ 462,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa642*/ 1027,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x24c8*/ 903,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa748*/ 1081,</div><div class='del'>-      /*0x00d0*/ 42,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f0d*/ 720,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f50*/ 751,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e4e*/ 624,</div><div class='del'>-      /*0x104ce*/ 1323,</div><div class='del'>-      /*0x10c0*/ 516,</div><div class='del'>-      /*0xa752*/ 1086,</div><div class='del'>-      /*0x054e*/ 474,</div><div class='del'>-      /*0x1fb9*/ 821,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa64e*/ 1033,</div><div class='del'>-      /*0x0139*/ 84,</div><div class='del'>-      /*0xabb9*/ 1208,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00c0*/ 26,</div><div class='del'>-      /*0x10c2*/ 518,</div><div class='del'>-      /*0xff2b*/ 1237,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x24c4*/ 899,</div><div class='del'>-      /*0x1fec*/ 853,</div><div class='del'>-      /*0x046c*/ 351,</div><div class='del'>-      /*0xa744*/ 1079,</div><div class='del'>-      /*0x016c*/ 110,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00c2*/ 28,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01ec*/ 178,</div><div class='del'>-      /*0x03ec*/ 285,</div><div class='del'>-      /*0x1e46*/ 620,</div><div class='del'>-      /*0x104c6*/ 1315,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0546*/ 466,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa646*/ 1029,</div><div class='del'>-      /*0x16e59*/ 1437,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa750*/ 1085,</div><div class='del'>-      /*0x1cb9*/ 580,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1fea*/ 851,</div><div class='del'>-      /*0x046a*/ 350,</div><div class='del'>-      /*0x00ce*/ 40,</div><div class='del'>-      /*0x016a*/ 109,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x01ea*/ 177,</div><div class='del'>-      /*0x03ea*/ 284,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e5a*/ 630,</div><div class='del'>-      /*0x24c0*/ 895,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04da*/ 402,</div><div class='del'>-      /*0xa740*/ 1077,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1eec*/ 705,</div><div class='del'>-      /*0xa65a*/ 1039,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x24c2*/ 897,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e58*/ 629,</div><div class='del'>-      /*0xa742*/ 1078,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04d8*/ 401,</div><div class='del'>-      /*0x00c6*/ 32,</div><div class='del'>-      /*0x1fe6*/ 847,</div><div class='del'>-      /*0x0466*/ 348,</div><div class='del'>-      /*0xa658*/ 1038,</div><div class='del'>-      /*0x0166*/ 107,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x01e6*/ 175,</div><div class='del'>-      /*0x03e6*/ 282,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1eea*/ 704,</div><div class='del'>-      /*0xa68e*/ 1056,</div><div class='del'>-      /*0x24ce*/ 909,</div><div class='del'>-      /*0x1fa9*/ 808,</div><div class='del'>-      /*0x0429*/ 338,</div><div class='del'>-      /*0xa74e*/ 1084,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xaba9*/ 1192,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x01a9*/ 146,</div><div class='del'>-      /*0x03a9*/ 265,</div><div class='del'>-      /*0x00da*/ 51,</div><div class='del'>-      /*0x1e64*/ 635,</div><div class='del'>-      /*0x2c29*/ 952,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04e4*/ 407,</div><div class='del'>-      /*0x10421*/ 1286,</div><div class='del'>-      /*0x1fa1*/ 800,</div><div class='del'>-      /*0x0421*/ 330,</div><div class='del'>-      /*0xa664*/ 1044,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xaba1*/ 1184,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x00d8*/ 49,</div><div class='del'>-      /*0x03a1*/ 258,</div><div class='del'>-      /*0x24c6*/ 901,</div><div class='del'>-      /*0x1ee6*/ 702,</div><div class='del'>-      /*0x2c21*/ 944,</div><div class='del'>-      /*0xa746*/ 1080,</div><div class='del'>-      /*0x10417*/ 1276,</div><div class='del'>-      /*0x1f97*/ 790,</div><div class='del'>-      /*0x0417*/ 320,</div><div class='del'>-      /*0x1ca9*/ 564,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab97*/ 1174,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0197*/ 136,</div><div class='del'>-      /*0x0397*/ 248,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10ca9*/ 1370,</div><div class='del'>-      /*0x2c17*/ 934,</div><div class='del'>-      /*0x1e54*/ 627,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x04d4*/ 399,</div><div class='del'>-      /*0x0554*/ 480,</div><div class='del'>-      /*0x1ca1*/ 556,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa654*/ 1036,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa75a*/ 1090,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2164*/ 872,</div><div class='del'>-      /*0x10ca1*/ 1362,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e921*/ 1477,</div><div class='del'>-      /*0x1fe8*/ 849,</div><div class='del'>-      /*0x0468*/ 349,</div><div class='del'>-      /*0x1c97*/ 546,</div><div class='del'>-      /*0x0168*/ 108,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa758*/ 1089,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01e8*/ 176,</div><div class='del'>-      /*0x03e8*/ 283,</div><div class='del'>-      /*0x1e97*/ 661,</div><div class='del'>-      /*0x10c97*/ 1352,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0460*/ 345,</div><div class='del'>-      /*0x1e917*/ 1467,</div><div class='del'>-      /*0x0160*/ 104,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x015e*/ 103,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01e0*/ 172,</div><div class='del'>-      /*0x03e0*/ 279,</div><div class='del'>-      /*0x01de*/ 171,</div><div class='del'>-      /*0x03de*/ 278,</div><div class='del'>-      /*0x2c60*/ 958,</div><div class='del'>-      /*0x00d4*/ 46,</div><div class='del'>-      /*0x046e*/ 352,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x016e*/ 111,</div><div class='del'>-      /*0x1f54*/ 753,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x01ee*/ 179,</div><div class='del'>-      /*0x03ee*/ 286,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa764*/ 1095,</div><div class='del'>-      /*0x2c6e*/ 966,</div><div class='del'>-      /*0x2ce0*/ 1021,</div><div class='del'>-      /*0x1fcb*/ 834,</div><div class='del'>-      /*0x2cde*/ 1020,</div><div class='del'>-      /*0x1ee8*/ 703,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x004b*/ 9,</div><div class='del'>-      /*0x16e47*/ 1419,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01cb*/ 162,</div><div class='del'>-      /*0x1fc3*/ 827,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0243*/ 221,</div><div class='del'>-      /*0x0143*/ 89,</div><div class='del'>-      /*0x0043*/ 2,</div><div class='del'>-      /*0x1ee0*/ 699,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1ede*/ 698,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x0245*/ 223,</div><div class='del'>-      /*0x0145*/ 90,</div><div class='del'>-      /*0x0045*/ 4,</div><div class='del'>-      /*0x104b9*/ 1302,</div><div class='del'>-      /*0x1eee*/ 706,</div><div class='del'>-      /*0x01c5*/ 158,</div><div class='del'>-      /*0x0539*/ 453,</div><div class='del'>-      /*0xa754*/ 1087,</div><div class='del'>-      /*0x1fad*/ 812,</div><div class='del'>-      /*0x042d*/ 342,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xabad*/ 1196,</div><div class='del'>-      /*0x1e6c*/ 639,</div><div class='del'>-      /*0x1ff6*/ 857,</div><div class='del'>-      /*0x0476*/ 356,</div><div class='del'>-      /*0x04ec*/ 411,</div><div class='del'>-      /*0x0176*/ 115,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c2d*/ 956,</div><div class='del'>-      /*0xa66c*/ 1048,</div><div class='del'>-      /*0x01f6*/ 184,</div><div class='del'>-      /*0x10425*/ 1290,</div><div class='del'>-      /*0x1fa5*/ 804,</div><div class='del'>-      /*0x0425*/ 334,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xaba5*/ 1188,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x03a5*/ 261,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10b9*/ 509,</div><div class='del'>-      /*0x2c25*/ 948,</div><div class='del'>-      /*0x1e6a*/ 638,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118b9*/ 1405,</div><div class='del'>-      /*0x04ea*/ 410,</div><div class='del'>-      /*0x1cad*/ 568,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa66a*/ 1047,</div><div class='del'>-      /*0xa68c*/ 1055,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x004d*/ 11,</div><div class='del'>-      /*0x1f39*/ 738,</div><div class='del'>-      /*0x10cad*/ 1374,</div><div class='del'>-      /*0x01cd*/ 163,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1ef6*/ 710,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1ca5*/ 560,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x216c*/ 880,</div><div class='del'>-      /*0x1f6c*/ 763,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x10ca5*/ 1366,</div><div class='del'>-      /*0x1e66*/ 636,</div><div class='del'>-      /*0xa7ad*/ 1126,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04e6*/ 408,</div><div class='del'>-      /*0x1fb3*/ 816,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa666*/ 1045,</div><div class='del'>-      /*0xabb3*/ 1202,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x01b3*/ 152,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xfb17*/ 1226,</div><div class='del'>-      /*0x216a*/ 878,</div><div class='del'>-      /*0x1f6a*/ 761,</div><div class='del'>-      /*0x24b9*/ 888,</div><div class='del'>-      /*0x10423*/ 1288,</div><div class='del'>-      /*0x1fa3*/ 802,</div><div class='del'>-      /*0x0423*/ 332,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xaba3*/ 1186,</div><div class='del'>-      /*0x1041d*/ 1282,</div><div class='del'>-      /*0x1f9d*/ 796,</div><div class='del'>-      /*0x041d*/ 326,</div><div class='del'>-      /*0x03a3*/ 259,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab9d*/ 1180,</div><div class='del'>-      /*0x2c23*/ 946,</div><div class='del'>-      /*0xa76c*/ 1099,</div><div class='del'>-      /*0x019d*/ 139,</div><div class='del'>-      /*0x039d*/ 254,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1cb3*/ 574,</div><div class='del'>-      /*0x2c1d*/ 940,</div><div class='del'>-      /*0x1041b*/ 1280,</div><div class='del'>-      /*0x1f9b*/ 794,</div><div class='del'>-      /*0x041b*/ 324,</div><div class='del'>-      /*0x015c*/ 102,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab9b*/ 1178,</div><div class='del'>-      /*0x2166*/ 874,</div><div class='del'>-      /*0x10a9*/ 493,</div><div class='del'>-      /*0x03dc*/ 277,</div><div class='del'>-      /*0x039b*/ 252,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118a9*/ 1389,</div><div class='del'>-      /*0x2c1b*/ 938,</div><div class='del'>-      /*0x1ca3*/ 558,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa76a*/ 1098,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1c9d*/ 552,</div><div class='del'>-      /*0x1f29*/ 730,</div><div class='del'>-      /*0x10ca3*/ 1364,</div><div class='del'>-      /*0x10a1*/ 485,</div><div class='del'>-      /*0xa7b3*/ 1131,</div><div class='del'>-      /*0x2cdc*/ 1019,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118a1*/ 1381,</div><div class='del'>-      /*0x10c9d*/ 1358,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e91d*/ 1473,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1c9b*/ 550,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e68*/ 637,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x04e8*/ 409,</div><div class='del'>-      /*0x1edc*/ 697,</div><div class='del'>-      /*0x1e9b*/ 665,</div><div class='del'>-      /*0x10c9b*/ 1356,</div><div class='del'>-      /*0xa668*/ 1046,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e91b*/ 1471,</div><div class='del'>-      /*0xa766*/ 1096,</div><div class='del'>-      /*0x1e60*/ 633,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e5e*/ 632,</div><div class='del'>-      /*0x04e0*/ 405,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04de*/ 404,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa660*/ 1042,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa65e*/ 1041,</div><div class='del'>-      /*0x1fb7*/ 819,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e6e*/ 640,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xabb7*/ 1206,</div><div class='del'>-      /*0x04ee*/ 412,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01b7*/ 154,</div><div class='del'>-      /*0x10419*/ 1278,</div><div class='del'>-      /*0x1f99*/ 792,</div><div class='del'>-      /*0x0419*/ 322,</div><div class='del'>-      /*0xff39*/ 1251,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab99*/ 1176,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x104cb*/ 1320,</div><div class='del'>-      /*0x0399*/ 250,</div><div class='del'>-      /*0x04cb*/ 395,</div><div class='del'>-      /*0x054b*/ 471,</div><div class='del'>-      /*0x2c19*/ 936,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2168*/ 876,</div><div class='del'>-      /*0x1f68*/ 759,</div><div class='del'>-      /*0x104c3*/ 1312,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04c3*/ 391,</div><div class='del'>-      /*0x0543*/ 463,</div><div class='del'>-      /*0x0241*/ 220,</div><div class='del'>-      /*0x0141*/ 88,</div><div class='del'>-      /*0x0041*/ 0,</div><div class='del'>-      /*0x1cb7*/ 578,</div><div class='del'>-      /*0x00de*/ 55,</div><div class='del'>-      /*0x2160*/ 868,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104c5*/ 1314,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04c5*/ 392,</div><div class='del'>-      /*0x0545*/ 465,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1c99*/ 548,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x216e*/ 882,</div><div class='del'>-      /*0x1f6e*/ 765,</div><div class='del'>-      /*0x1e99*/ 663,</div><div class='del'>-      /*0x10c99*/ 1354,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e76*/ 644,</div><div class='del'>-      /*0x1e919*/ 1469,</div><div class='del'>-      /*0x16e53*/ 1431,</div><div class='del'>-      /*0x04f6*/ 416,</div><div class='del'>-      /*0x10c3*/ 519,</div><div class='del'>-      /*0x00cb*/ 37,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1f4b*/ 748,</div><div class='del'>-      /*0xa768*/ 1097,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x00c3*/ 29,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10c5*/ 521,</div><div class='del'>-      /*0x023d*/ 218,</div><div class='del'>-      /*0x013d*/ 86,</div><div class='del'>-      /*0xabbd*/ 1212,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa760*/ 1093,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa75e*/ 1092,</div><div class='del'>-      /*0x00c5*/ 31,</div><div class='del'>-      /*0x10ad*/ 497,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x104cd*/ 1322,</div><div class='del'>-      /*0x118ad*/ 1393,</div><div class='del'>-      /*0x04cd*/ 396,</div><div class='del'>-      /*0x054d*/ 473,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa76e*/ 1100,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xff29*/ 1235,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0345*/ 229,</div><div class='del'>-      /*0x1f2d*/ 734,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10a5*/ 489,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x24cb*/ 906,</div><div class='del'>-      /*0x118a5*/ 1385,</div><div class='del'>-      /*0x1cbd*/ 582,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10413*/ 1272,</div><div class='del'>-      /*0x1f93*/ 786,</div><div class='del'>-      /*0x0413*/ 316,</div><div class='del'>-      /*0xff21*/ 1227,</div><div class='del'>-      /*0x24c3*/ 898,</div><div class='del'>-      /*0xab93*/ 1170,</div><div class='del'>-      /*0x0376*/ 232,</div><div class='del'>-      /*0x104b3*/ 1296,</div><div class='del'>-      /*0x0193*/ 133,</div><div class='del'>-      /*0x0393*/ 244,</div><div class='del'>-      /*0x0533*/ 447,</div><div class='del'>-      /*0x10cd*/ 523,</div><div class='del'>-      /*0x2c13*/ 930,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x24c5*/ 900,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10407*/ 1260,</div><div class='del'>-      /*0x1f87*/ 774,</div><div class='del'>-      /*0x0407*/ 304,</div><div class='del'>-      /*0x00cd*/ 39,</div><div class='del'>-      /*0x0587*/ 483,</div><div class='del'>-      /*0xab87*/ 1158,</div><div class='del'>-      /*0xab75*/ 1140,</div><div class='del'>-      /*0x1f4d*/ 750,</div><div class='del'>-      /*0x0187*/ 125,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x013f*/ 87,</div><div class='del'>-      /*0xabbf*/ 1214,</div><div class='del'>-      /*0x2c07*/ 918,</div><div class='del'>-      /*0xab71*/ 1136,</div><div class='del'>-      /*0x1fbb*/ 823,</div><div class='del'>-      /*0x1c93*/ 542,</div><div class='del'>-      /*0x023b*/ 217,</div><div class='del'>-      /*0x013b*/ 85,</div><div class='del'>-      /*0xabbb*/ 1210,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10b3*/ 503,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e5c*/ 631,</div><div class='del'>-      /*0x10c93*/ 1348,</div><div class='del'>-      /*0x118b3*/ 1399,</div><div class='del'>-      /*0x04dc*/ 403,</div><div class='del'>-      /*0x1e913*/ 1463,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa65c*/ 1040,</div><div class='del'>-      /*0xabb1*/ 1200,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1c87*/ 537,</div><div class='del'>-      /*0x01b1*/ 150,</div><div class='del'>-      /*0xab73*/ 1138,</div><div class='del'>-      /*0x10a3*/ 487,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab7d*/ 1148,</div><div class='del'>-      /*0x1cbf*/ 584,</div><div class='del'>-      /*0x118a3*/ 1383,</div><div class='del'>-      /*0x10c87*/ 1336,</div><div class='del'>-      /*0x24cd*/ 908,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e907*/ 1451,</div><div class='del'>-      /*0x1041f*/ 1284,</div><div class='del'>-      /*0x1f9f*/ 798,</div><div class='del'>-      /*0x041f*/ 328,</div><div class='del'>-      /*0xabb5*/ 1204,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab9f*/ 1182,</div><div class='del'>-      /*0x01b5*/ 153,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x019f*/ 140,</div><div class='del'>-      /*0x039f*/ 256,</div><div class='del'>-      /*0x1f1d*/ 728,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c1f*/ 942,</div><div class='del'>-      /*0x1cb1*/ 572,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10415*/ 1274,</div><div class='del'>-      /*0x1f95*/ 788,</div><div class='del'>-      /*0x0415*/ 318,</div><div class='del'>-      /*0x00dc*/ 53,</div><div class='del'>-      /*0xab7e*/ 1149,</div><div class='del'>-      /*0xab95*/ 1172,</div><div class='del'>-      /*0x10cb1*/ 1378,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f1b*/ 726,</div><div class='del'>-      /*0x0395*/ 246,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c15*/ 932,</div><div class='del'>-      /*0x1ff4*/ 856,</div><div class='del'>-      /*0x0474*/ 355,</div><div class='del'>-      /*0x1cb5*/ 576,</div><div class='del'>-      /*0x0174*/ 114,</div><div class='del'>-      /*0x1c9f*/ 554,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104b7*/ 1300,</div><div class='del'>-      /*0x01f4*/ 183,</div><div class='del'>-      /*0x03f4*/ 289,</div><div class='del'>-      /*0x0537*/ 451,</div><div class='del'>-      /*0xa7b1*/ 1129,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10c9f*/ 1360,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e91f*/ 1475,</div><div class='del'>-      /*0x10411*/ 1270,</div><div class='del'>-      /*0x1f91*/ 784,</div><div class='del'>-      /*0x0411*/ 314,</div><div class='del'>-      /*0x1c95*/ 544,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab91*/ 1168,</div><div class='del'>-      /*0xff2d*/ 1239,</div><div class='del'>-      /*0xab7f*/ 1150,</div><div class='del'>-      /*0x0191*/ 132,</div><div class='del'>-      /*0x0391*/ 242,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10c95*/ 1350,</div><div class='del'>-      /*0x2c11*/ 928,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e915*/ 1465,</div><div class='del'>-      /*0xa75c*/ 1091,</div><div class='del'>-      /*0x104c1*/ 1310,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04c1*/ 390,</div><div class='del'>-      /*0x0541*/ 461,</div><div class='del'>-      /*0x10b7*/ 507,</div><div class='del'>-      /*0xff25*/ 1231,</div><div class='del'>-      /*0x1ef4*/ 709,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118b7*/ 1403,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1040f*/ 1268,</div><div class='del'>-      /*0x1f8f*/ 782,</div><div class='del'>-      /*0x040f*/ 312,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xab8f*/ 1166,</div><div class='del'>-      /*0x1c91*/ 540,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x018f*/ 130,</div><div class='del'>-      /*0x038f*/ 240,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab70*/ 1135,</div><div class='del'>-      /*0x2c0f*/ 926,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10c91*/ 1346,</div><div class='del'>-      /*0x0051*/ 15,</div><div class='del'>-      /*0x1f19*/ 724,</div><div class='del'>-      /*0x1e911*/ 1461,</div><div class='del'>-      /*0x01d1*/ 165,</div><div class='del'>-      /*0x03d1*/ 272,</div><div class='del'>-      /*0x10c1*/ 517,</div><div class='del'>-      /*0x004f*/ 13,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x01cf*/ 164,</div><div class='del'>-      /*0x03cf*/ 270,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x104bd*/ 1306,</div><div class='del'>-      /*0x00c1*/ 27,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x053d*/ 457,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xfb13*/ 1222,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0xff33*/ 1245,</div><div class='del'>-      /*0x10c8f*/ 1344,</div><div class='del'>-      /*0x24b7*/ 886,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e90f*/ 1459,</div><div class='del'>-      /*0x1040b*/ 1264,</div><div class='del'>-      /*0x1f8b*/ 778,</div><div class='del'>-      /*0x040b*/ 308,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab79*/ 1144,</div><div class='del'>-      /*0xab8b*/ 1162,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x018b*/ 128,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xff23*/ 1229,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c0b*/ 922,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10bd*/ 513,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xab77*/ 1142,</div><div class='del'>-      /*0x118bd*/ 1409,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x24c1*/ 896,</div><div class='del'>-      /*0x10401*/ 1254,</div><div class='del'>-      /*0x1f81*/ 768,</div><div class='del'>-      /*0x0401*/ 298,</div><div class='del'>-      /*0x1f3d*/ 742,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab81*/ 1152,</div><div class='del'>-      /*0x1ff8*/ 859,</div><div class='del'>-      /*0x0478*/ 357,</div><div class='del'>-      /*0x0181*/ 121,</div><div class='del'>-      /*0x0178*/ 116,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c01*/ 912,</div><div class='del'>-      /*0x01f8*/ 186,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e4a*/ 1422,</div><div class='del'>-      /*0x10c8b*/ 1340,</div><div class='del'>-      /*0x104bf*/ 1308,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e90b*/ 1455,</div><div class='del'>-      /*0x053f*/ 459,</div><div class='del'>-      /*0x13f8*/ 524,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x104bb*/ 1304,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x053b*/ 455,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x1c81*/ 531,</div><div class='del'>-      /*0xa78b*/ 1109,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e5b*/ 1439,</div><div class='del'>-      /*0x104b1*/ 1294,</div><div class='del'>-      /*0x24bd*/ 892,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0531*/ 445,</div><div class='del'>-      /*0x10c81*/ 1330,</div><div class='del'>-      /*0xfb15*/ 1224,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e901*/ 1445,</div><div class='del'>-      /*0x1ef8*/ 711,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10bf*/ 515,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x118bf*/ 1411,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104b5*/ 1298,</div><div class='del'>-      /*0x10bb*/ 511,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0535*/ 449,</div><div class='del'>-      /*0x16e56*/ 1434,</div><div class='del'>-      /*0x118bb*/ 1407,</div><div class='del'>-      /*0xff37*/ 1249,</div><div class='del'>-      /*0x1f3f*/ 744,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10405*/ 1258,</div><div class='del'>-      /*0x1f85*/ 772,</div><div class='del'>-      /*0x0405*/ 302,</div><div class='del'>-      /*0x10b1*/ 501,</div><div class='del'>-      /*0x1f3b*/ 740,</div><div class='del'>-      /*0xab85*/ 1156,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118b1*/ 1397,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e4c*/ 1424,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c05*/ 916,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x1e74*/ 643,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10b5*/ 505,</div><div class='del'>-      /*0x04f4*/ 415,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x118b5*/ 1401,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x00b5*/ 25,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x24bf*/ 894,</div><div class='del'>-      /*0x1c85*/ 535,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x24bb*/ 890,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10c85*/ 1334,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e905*/ 1449,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x104d1*/ 1326,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e55*/ 1433,</div><div class='del'>-      /*0x0551*/ 477,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x104cf*/ 1324,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x054f*/ 475,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e48*/ 1420,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x16e52*/ 1430,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0xab7b*/ 1146,</div><div class='del'>-      /*0xfb01*/ 1216,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1f0f*/ 722,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e44*/ 1416,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x00d1*/ 43,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x00cf*/ 41,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e50*/ 1428,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e78*/ 645,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xff31*/ 1243,</div><div class='del'>-      /*0x04f8*/ 417,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x16e40*/ 1412,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x1f0b*/ 718,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e42*/ 1414,</div><div class='del'>-      /*0xff35*/ 1247,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x24cf*/ 910,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xfb05*/ 1220,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x16e4e*/ 1426,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x16e46*/ 1418,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x16e5a*/ 1438,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x16e58*/ 1436,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x16e54*/ 1432,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xab7a*/ 1145,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xab7c*/ 1147,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0xab72*/ 1137,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x16e5e*/ 1442,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x16e4b*/ 1423,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e43*/ 1415,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x16e45*/ 1417,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x16e4d*/ 1425,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x16e5c*/ 1440,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e41*/ 1413,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e51*/ 1429,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x16e4f*/ 1427,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab76*/ 1141,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xab74*/ 1139,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab78*/ 1143</div><div class='del'>-    };</div><div class='del'>-</div><div class='del'>-  if (code &lt;= MAX_CODE_VALUE &amp;&amp; code &gt;= MIN_CODE_VALUE)</div><div class='del'>-    {</div><div class='del'>-      register unsigned int key = onigenc_unicode_CaseFold_11_hash(code);</div><div class='del'>-</div><div class='del'>-      if (key &lt;= MAX_HASH_VALUE)</div><div class='del'>-        {</div><div class='del'>-          register short s = wordlist[key];</div><div class='del'>-</div><div class='del'>-          if (s &gt;= 0 &amp;&amp; code1_equal(code, CaseFold_11_Table[s].from))</div><div class='del'>-            return &amp;CaseFold_11_Table[s].to;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-  return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const CaseUnfold_11_Type CaseUnfold_11_Table[] = {</div><div class='del'>-#define CaseUnfold_11 (*(CaseUnfold_11_Type (*)[1345])(CaseUnfold_11_Table+0))</div><div class='del'>-  {0x0061, {1|U, {0x0041}}},</div><div class='del'>-  {0x0062, {1|U, {0x0042}}},</div><div class='del'>-  {0x0063, {1|U, {0x0043}}},</div><div class='del'>-  {0x0064, {1|U, {0x0044}}},</div><div class='del'>-  {0x0065, {1|U, {0x0045}}},</div><div class='del'>-  {0x0066, {1|U, {0x0046}}},</div><div class='del'>-  {0x0067, {1|U, {0x0047}}},</div><div class='del'>-  {0x0068, {1|U, {0x0048}}},</div><div class='del'>-  {0x006a, {1|U, {0x004a}}},</div><div class='del'>-  {0x006b, {2|U, {0x004b, 0x212a}}},</div><div class='del'>-  {0x006c, {1|U, {0x004c}}},</div><div class='del'>-  {0x006d, {1|U, {0x004d}}},</div><div class='del'>-  {0x006e, {1|U, {0x004e}}},</div><div class='del'>-  {0x006f, {1|U, {0x004f}}},</div><div class='del'>-  {0x0070, {1|U, {0x0050}}},</div><div class='del'>-  {0x0071, {1|U, {0x0051}}},</div><div class='del'>-  {0x0072, {1|U, {0x0052}}},</div><div class='del'>-  {0x0073, {2|U, {0x0053, 0x017f}}},</div><div class='del'>-  {0x0074, {1|U, {0x0054}}},</div><div class='del'>-  {0x0075, {1|U, {0x0055}}},</div><div class='del'>-  {0x0076, {1|U, {0x0056}}},</div><div class='del'>-  {0x0077, {1|U, {0x0057}}},</div><div class='del'>-  {0x0078, {1|U, {0x0058}}},</div><div class='del'>-  {0x0079, {1|U, {0x0059}}},</div><div class='del'>-  {0x007a, {1|U, {0x005a}}},</div><div class='del'>-  {0x00e0, {1|U, {0x00c0}}},</div><div class='del'>-  {0x00e1, {1|U, {0x00c1}}},</div><div class='del'>-  {0x00e2, {1|U, {0x00c2}}},</div><div class='del'>-  {0x00e3, {1|U, {0x00c3}}},</div><div class='del'>-  {0x00e4, {1|U, {0x00c4}}},</div><div class='del'>-  {0x00e5, {2|U, {0x00c5, 0x212b}}},</div><div class='del'>-  {0x00e6, {1|U, {0x00c6}}},</div><div class='del'>-  {0x00e7, {1|U, {0x00c7}}},</div><div class='del'>-  {0x00e8, {1|U, {0x00c8}}},</div><div class='del'>-  {0x00e9, {1|U, {0x00c9}}},</div><div class='del'>-  {0x00ea, {1|U, {0x00ca}}},</div><div class='del'>-  {0x00eb, {1|U, {0x00cb}}},</div><div class='del'>-  {0x00ec, {1|U, {0x00cc}}},</div><div class='del'>-  {0x00ed, {1|U, {0x00cd}}},</div><div class='del'>-  {0x00ee, {1|U, {0x00ce}}},</div><div class='del'>-  {0x00ef, {1|U, {0x00cf}}},</div><div class='del'>-  {0x00f0, {1|U, {0x00d0}}},</div><div class='del'>-  {0x00f1, {1|U, {0x00d1}}},</div><div class='del'>-  {0x00f2, {1|U, {0x00d2}}},</div><div class='del'>-  {0x00f3, {1|U, {0x00d3}}},</div><div class='del'>-  {0x00f4, {1|U, {0x00d4}}},</div><div class='del'>-  {0x00f5, {1|U, {0x00d5}}},</div><div class='del'>-  {0x00f6, {1|U, {0x00d6}}},</div><div class='del'>-  {0x00f8, {1|U, {0x00d8}}},</div><div class='del'>-  {0x00f9, {1|U, {0x00d9}}},</div><div class='del'>-  {0x00fa, {1|U, {0x00da}}},</div><div class='del'>-  {0x00fb, {1|U, {0x00db}}},</div><div class='del'>-  {0x00fc, {1|U, {0x00dc}}},</div><div class='del'>-  {0x00fd, {1|U, {0x00dd}}},</div><div class='del'>-  {0x00fe, {1|U, {0x00de}}},</div><div class='del'>-  {0x00ff, {1|U, {0x0178}}},</div><div class='del'>-  {0x0101, {1|U, {0x0100}}},</div><div class='del'>-  {0x0103, {1|U, {0x0102}}},</div><div class='del'>-  {0x0105, {1|U, {0x0104}}},</div><div class='del'>-  {0x0107, {1|U, {0x0106}}},</div><div class='del'>-  {0x0109, {1|U, {0x0108}}},</div><div class='del'>-  {0x010b, {1|U, {0x010a}}},</div><div class='del'>-  {0x010d, {1|U, {0x010c}}},</div><div class='del'>-  {0x010f, {1|U, {0x010e}}},</div><div class='del'>-  {0x0111, {1|U, {0x0110}}},</div><div class='del'>-  {0x0113, {1|U, {0x0112}}},</div><div class='del'>-  {0x0115, {1|U, {0x0114}}},</div><div class='del'>-  {0x0117, {1|U, {0x0116}}},</div><div class='del'>-  {0x0119, {1|U, {0x0118}}},</div><div class='del'>-  {0x011b, {1|U, {0x011a}}},</div><div class='del'>-  {0x011d, {1|U, {0x011c}}},</div><div class='del'>-  {0x011f, {1|U, {0x011e}}},</div><div class='del'>-  {0x0121, {1|U, {0x0120}}},</div><div class='del'>-  {0x0123, {1|U, {0x0122}}},</div><div class='del'>-  {0x0125, {1|U, {0x0124}}},</div><div class='del'>-  {0x0127, {1|U, {0x0126}}},</div><div class='del'>-  {0x0129, {1|U, {0x0128}}},</div><div class='del'>-  {0x012b, {1|U, {0x012a}}},</div><div class='del'>-  {0x012d, {1|U, {0x012c}}},</div><div class='del'>-  {0x012f, {1|U, {0x012e}}},</div><div class='del'>-  {0x0133, {1|U, {0x0132}}},</div><div class='del'>-  {0x0135, {1|U, {0x0134}}},</div><div class='del'>-  {0x0137, {1|U, {0x0136}}},</div><div class='del'>-  {0x013a, {1|U, {0x0139}}},</div><div class='del'>-  {0x013c, {1|U, {0x013b}}},</div><div class='del'>-  {0x013e, {1|U, {0x013d}}},</div><div class='del'>-  {0x0140, {1|U, {0x013f}}},</div><div class='del'>-  {0x0142, {1|U, {0x0141}}},</div><div class='del'>-  {0x0144, {1|U, {0x0143}}},</div><div class='del'>-  {0x0146, {1|U, {0x0145}}},</div><div class='del'>-  {0x0148, {1|U, {0x0147}}},</div><div class='del'>-  {0x014b, {1|U, {0x014a}}},</div><div class='del'>-  {0x014d, {1|U, {0x014c}}},</div><div class='del'>-  {0x014f, {1|U, {0x014e}}},</div><div class='del'>-  {0x0151, {1|U, {0x0150}}},</div><div class='del'>-  {0x0153, {1|U, {0x0152}}},</div><div class='del'>-  {0x0155, {1|U, {0x0154}}},</div><div class='del'>-  {0x0157, {1|U, {0x0156}}},</div><div class='del'>-  {0x0159, {1|U, {0x0158}}},</div><div class='del'>-  {0x015b, {1|U, {0x015a}}},</div><div class='del'>-  {0x015d, {1|U, {0x015c}}},</div><div class='del'>-  {0x015f, {1|U, {0x015e}}},</div><div class='del'>-  {0x0161, {1|U, {0x0160}}},</div><div class='del'>-  {0x0163, {1|U, {0x0162}}},</div><div class='del'>-  {0x0165, {1|U, {0x0164}}},</div><div class='del'>-  {0x0167, {1|U, {0x0166}}},</div><div class='del'>-  {0x0169, {1|U, {0x0168}}},</div><div class='del'>-  {0x016b, {1|U, {0x016a}}},</div><div class='del'>-  {0x016d, {1|U, {0x016c}}},</div><div class='del'>-  {0x016f, {1|U, {0x016e}}},</div><div class='del'>-  {0x0171, {1|U, {0x0170}}},</div><div class='del'>-  {0x0173, {1|U, {0x0172}}},</div><div class='del'>-  {0x0175, {1|U, {0x0174}}},</div><div class='del'>-  {0x0177, {1|U, {0x0176}}},</div><div class='del'>-  {0x017a, {1|U, {0x0179}}},</div><div class='del'>-  {0x017c, {1|U, {0x017b}}},</div><div class='del'>-  {0x017e, {1|U, {0x017d}}},</div><div class='del'>-  {0x0180, {1|U, {0x0243}}},</div><div class='del'>-  {0x0183, {1|U, {0x0182}}},</div><div class='del'>-  {0x0185, {1|U, {0x0184}}},</div><div class='del'>-  {0x0188, {1|U, {0x0187}}},</div><div class='del'>-  {0x018c, {1|U, {0x018b}}},</div><div class='del'>-  {0x0192, {1|U, {0x0191}}},</div><div class='del'>-  {0x0195, {1|U, {0x01f6}}},</div><div class='del'>-  {0x0199, {1|U, {0x0198}}},</div><div class='del'>-  {0x019a, {1|U, {0x023d}}},</div><div class='del'>-  {0x019e, {1|U, {0x0220}}},</div><div class='del'>-  {0x01a1, {1|U, {0x01a0}}},</div><div class='del'>-  {0x01a3, {1|U, {0x01a2}}},</div><div class='del'>-  {0x01a5, {1|U, {0x01a4}}},</div><div class='del'>-  {0x01a8, {1|U, {0x01a7}}},</div><div class='del'>-  {0x01ad, {1|U, {0x01ac}}},</div><div class='del'>-  {0x01b0, {1|U, {0x01af}}},</div><div class='del'>-  {0x01b4, {1|U, {0x01b3}}},</div><div class='del'>-  {0x01b6, {1|U, {0x01b5}}},</div><div class='del'>-  {0x01b9, {1|U, {0x01b8}}},</div><div class='del'>-  {0x01bd, {1|U, {0x01bc}}},</div><div class='del'>-  {0x01bf, {1|U, {0x01f7}}},</div><div class='del'>-  {0x01c6, {2|U|ST, {0x01c4, 0x01c5}}},</div><div class='del'>-  {0x01c9, {2|U|ST, {0x01c7, 0x01c8}}},</div><div class='del'>-  {0x01cc, {2|U|ST, {0x01ca, 0x01cb}}},</div><div class='del'>-  {0x01ce, {1|U, {0x01cd}}},</div><div class='del'>-  {0x01d0, {1|U, {0x01cf}}},</div><div class='del'>-  {0x01d2, {1|U, {0x01d1}}},</div><div class='del'>-  {0x01d4, {1|U, {0x01d3}}},</div><div class='del'>-  {0x01d6, {1|U, {0x01d5}}},</div><div class='del'>-  {0x01d8, {1|U, {0x01d7}}},</div><div class='del'>-  {0x01da, {1|U, {0x01d9}}},</div><div class='del'>-  {0x01dc, {1|U, {0x01db}}},</div><div class='del'>-  {0x01dd, {1|U, {0x018e}}},</div><div class='del'>-  {0x01df, {1|U, {0x01de}}},</div><div class='del'>-  {0x01e1, {1|U, {0x01e0}}},</div><div class='del'>-  {0x01e3, {1|U, {0x01e2}}},</div><div class='del'>-  {0x01e5, {1|U, {0x01e4}}},</div><div class='del'>-  {0x01e7, {1|U, {0x01e6}}},</div><div class='del'>-  {0x01e9, {1|U, {0x01e8}}},</div><div class='del'>-  {0x01eb, {1|U, {0x01ea}}},</div><div class='del'>-  {0x01ed, {1|U, {0x01ec}}},</div><div class='del'>-  {0x01ef, {1|U, {0x01ee}}},</div><div class='del'>-  {0x01f3, {2|U|ST, {0x01f1, 0x01f2}}},</div><div class='del'>-  {0x01f5, {1|U, {0x01f4}}},</div><div class='del'>-  {0x01f9, {1|U, {0x01f8}}},</div><div class='del'>-  {0x01fb, {1|U, {0x01fa}}},</div><div class='del'>-  {0x01fd, {1|U, {0x01fc}}},</div><div class='del'>-  {0x01ff, {1|U, {0x01fe}}},</div><div class='del'>-  {0x0201, {1|U, {0x0200}}},</div><div class='del'>-  {0x0203, {1|U, {0x0202}}},</div><div class='del'>-  {0x0205, {1|U, {0x0204}}},</div><div class='del'>-  {0x0207, {1|U, {0x0206}}},</div><div class='del'>-  {0x0209, {1|U, {0x0208}}},</div><div class='del'>-  {0x020b, {1|U, {0x020a}}},</div><div class='del'>-  {0x020d, {1|U, {0x020c}}},</div><div class='del'>-  {0x020f, {1|U, {0x020e}}},</div><div class='del'>-  {0x0211, {1|U, {0x0210}}},</div><div class='del'>-  {0x0213, {1|U, {0x0212}}},</div><div class='del'>-  {0x0215, {1|U, {0x0214}}},</div><div class='del'>-  {0x0217, {1|U, {0x0216}}},</div><div class='del'>-  {0x0219, {1|U, {0x0218}}},</div><div class='del'>-  {0x021b, {1|U, {0x021a}}},</div><div class='del'>-  {0x021d, {1|U, {0x021c}}},</div><div class='del'>-  {0x021f, {1|U, {0x021e}}},</div><div class='del'>-  {0x0223, {1|U, {0x0222}}},</div><div class='del'>-  {0x0225, {1|U, {0x0224}}},</div><div class='del'>-  {0x0227, {1|U, {0x0226}}},</div><div class='del'>-  {0x0229, {1|U, {0x0228}}},</div><div class='del'>-  {0x022b, {1|U, {0x022a}}},</div><div class='del'>-  {0x022d, {1|U, {0x022c}}},</div><div class='del'>-  {0x022f, {1|U, {0x022e}}},</div><div class='del'>-  {0x0231, {1|U, {0x0230}}},</div><div class='del'>-  {0x0233, {1|U, {0x0232}}},</div><div class='del'>-  {0x023c, {1|U, {0x023b}}},</div><div class='del'>-  {0x023f, {1|U, {0x2c7e}}},</div><div class='del'>-  {0x0240, {1|U, {0x2c7f}}},</div><div class='del'>-  {0x0242, {1|U, {0x0241}}},</div><div class='del'>-  {0x0247, {1|U, {0x0246}}},</div><div class='del'>-  {0x0249, {1|U, {0x0248}}},</div><div class='del'>-  {0x024b, {1|U, {0x024a}}},</div><div class='del'>-  {0x024d, {1|U, {0x024c}}},</div><div class='del'>-  {0x024f, {1|U, {0x024e}}},</div><div class='del'>-  {0x0250, {1|U, {0x2c6f}}},</div><div class='del'>-  {0x0251, {1|U, {0x2c6d}}},</div><div class='del'>-  {0x0252, {1|U, {0x2c70}}},</div><div class='del'>-  {0x0253, {1|U, {0x0181}}},</div><div class='del'>-  {0x0254, {1|U, {0x0186}}},</div><div class='del'>-  {0x0256, {1|U, {0x0189}}},</div><div class='del'>-  {0x0257, {1|U, {0x018a}}},</div><div class='del'>-  {0x0259, {1|U, {0x018f}}},</div><div class='del'>-  {0x025b, {1|U, {0x0190}}},</div><div class='del'>-  {0x025c, {1|U, {0xa7ab}}},</div><div class='del'>-  {0x0260, {1|U, {0x0193}}},</div><div class='del'>-  {0x0261, {1|U, {0xa7ac}}},</div><div class='del'>-  {0x0263, {1|U, {0x0194}}},</div><div class='del'>-  {0x0265, {1|U, {0xa78d}}},</div><div class='del'>-  {0x0266, {1|U, {0xa7aa}}},</div><div class='del'>-  {0x0268, {1|U, {0x0197}}},</div><div class='del'>-  {0x0269, {1|U, {0x0196}}},</div><div class='del'>-  {0x026a, {1|U, {0xa7ae}}},</div><div class='del'>-  {0x026b, {1|U, {0x2c62}}},</div><div class='del'>-  {0x026c, {1|U, {0xa7ad}}},</div><div class='del'>-  {0x026f, {1|U, {0x019c}}},</div><div class='del'>-  {0x0271, {1|U, {0x2c6e}}},</div><div class='del'>-  {0x0272, {1|U, {0x019d}}},</div><div class='del'>-  {0x0275, {1|U, {0x019f}}},</div><div class='del'>-  {0x027d, {1|U, {0x2c64}}},</div><div class='del'>-  {0x0280, {1|U, {0x01a6}}},</div><div class='del'>-  {0x0283, {1|U, {0x01a9}}},</div><div class='del'>-  {0x0287, {1|U, {0xa7b1}}},</div><div class='del'>-  {0x0288, {1|U, {0x01ae}}},</div><div class='del'>-  {0x0289, {1|U, {0x0244}}},</div><div class='del'>-  {0x028a, {1|U, {0x01b1}}},</div><div class='del'>-  {0x028b, {1|U, {0x01b2}}},</div><div class='del'>-  {0x028c, {1|U, {0x0245}}},</div><div class='del'>-  {0x0292, {1|U, {0x01b7}}},</div><div class='del'>-  {0x029d, {1|U, {0xa7b2}}},</div><div class='del'>-  {0x029e, {1|U, {0xa7b0}}},</div><div class='del'>-  {0x0371, {1|U, {0x0370}}},</div><div class='del'>-  {0x0373, {1|U, {0x0372}}},</div><div class='del'>-  {0x0377, {1|U, {0x0376}}},</div><div class='del'>-  {0x037b, {1|U, {0x03fd}}},</div><div class='del'>-  {0x037c, {1|U, {0x03fe}}},</div><div class='del'>-  {0x037d, {1|U, {0x03ff}}},</div><div class='del'>-  {0x03ac, {1|U, {0x0386}}},</div><div class='del'>-  {0x03ad, {1|U, {0x0388}}},</div><div class='del'>-  {0x03ae, {1|U, {0x0389}}},</div><div class='del'>-  {0x03af, {1|U, {0x038a}}},</div><div class='del'>-  {0x03b1, {1|U, {0x0391}}},</div><div class='del'>-  {0x03b2, {2|U, {0x0392, 0x03d0}}},</div><div class='del'>-  {0x03b3, {1|U, {0x0393}}},</div><div class='del'>-  {0x03b4, {1|U, {0x0394}}},</div><div class='del'>-  {0x03b5, {2|U, {0x0395, 0x03f5}}},</div><div class='del'>-  {0x03b6, {1|U, {0x0396}}},</div><div class='del'>-  {0x03b7, {1|U, {0x0397}}},</div><div class='del'>-  {0x03b8, {3|U, {0x0398, 0x03d1, 0x03f4}}},</div><div class='del'>-  {0x03b9, {3|U, {0x0399, 0x0345, 0x1fbe}}},</div><div class='del'>-  {0x03ba, {2|U, {0x039a, 0x03f0}}},</div><div class='del'>-  {0x03bb, {1|U, {0x039b}}},</div><div class='del'>-  {0x03bc, {2|U, {0x039c, 0x00b5}}},</div><div class='del'>-  {0x03bd, {1|U, {0x039d}}},</div><div class='del'>-  {0x03be, {1|U, {0x039e}}},</div><div class='del'>-  {0x03bf, {1|U, {0x039f}}},</div><div class='del'>-  {0x03c0, {2|U, {0x03a0, 0x03d6}}},</div><div class='del'>-  {0x03c1, {2|U, {0x03a1, 0x03f1}}},</div><div class='del'>-  {0x03c3, {2|U, {0x03a3, 0x03c2}}},</div><div class='del'>-  {0x03c4, {1|U, {0x03a4}}},</div><div class='del'>-  {0x03c5, {1|U, {0x03a5}}},</div><div class='del'>-  {0x03c6, {2|U, {0x03a6, 0x03d5}}},</div><div class='del'>-  {0x03c7, {1|U, {0x03a7}}},</div><div class='del'>-  {0x03c8, {1|U, {0x03a8}}},</div><div class='del'>-  {0x03c9, {2|U, {0x03a9, 0x2126}}},</div><div class='del'>-  {0x03ca, {1|U, {0x03aa}}},</div><div class='del'>-  {0x03cb, {1|U, {0x03ab}}},</div><div class='del'>-  {0x03cc, {1|U, {0x038c}}},</div><div class='del'>-  {0x03cd, {1|U, {0x038e}}},</div><div class='del'>-  {0x03ce, {1|U, {0x038f}}},</div><div class='del'>-  {0x03d7, {1|U, {0x03cf}}},</div><div class='del'>-  {0x03d9, {1|U, {0x03d8}}},</div><div class='del'>-  {0x03db, {1|U, {0x03da}}},</div><div class='del'>-  {0x03dd, {1|U, {0x03dc}}},</div><div class='del'>-  {0x03df, {1|U, {0x03de}}},</div><div class='del'>-  {0x03e1, {1|U, {0x03e0}}},</div><div class='del'>-  {0x03e3, {1|U, {0x03e2}}},</div><div class='del'>-  {0x03e5, {1|U, {0x03e4}}},</div><div class='del'>-  {0x03e7, {1|U, {0x03e6}}},</div><div class='del'>-  {0x03e9, {1|U, {0x03e8}}},</div><div class='del'>-  {0x03eb, {1|U, {0x03ea}}},</div><div class='del'>-  {0x03ed, {1|U, {0x03ec}}},</div><div class='del'>-  {0x03ef, {1|U, {0x03ee}}},</div><div class='del'>-  {0x03f2, {1|U, {0x03f9}}},</div><div class='del'>-  {0x03f3, {1|U, {0x037f}}},</div><div class='del'>-  {0x03f8, {1|U, {0x03f7}}},</div><div class='del'>-  {0x03fb, {1|U, {0x03fa}}},</div><div class='del'>-  {0x0430, {1|U, {0x0410}}},</div><div class='del'>-  {0x0431, {1|U, {0x0411}}},</div><div class='del'>-  {0x0432, {2|U, {0x0412, 0x1c80}}},</div><div class='del'>-  {0x0433, {1|U, {0x0413}}},</div><div class='del'>-  {0x0434, {2|U, {0x0414, 0x1c81}}},</div><div class='del'>-  {0x0435, {1|U, {0x0415}}},</div><div class='del'>-  {0x0436, {1|U, {0x0416}}},</div><div class='del'>-  {0x0437, {1|U, {0x0417}}},</div><div class='del'>-  {0x0438, {1|U, {0x0418}}},</div><div class='del'>-  {0x0439, {1|U, {0x0419}}},</div><div class='del'>-  {0x043a, {1|U, {0x041a}}},</div><div class='del'>-  {0x043b, {1|U, {0x041b}}},</div><div class='del'>-  {0x043c, {1|U, {0x041c}}},</div><div class='del'>-  {0x043d, {1|U, {0x041d}}},</div><div class='del'>-  {0x043e, {2|U, {0x041e, 0x1c82}}},</div><div class='del'>-  {0x043f, {1|U, {0x041f}}},</div><div class='del'>-  {0x0440, {1|U, {0x0420}}},</div><div class='del'>-  {0x0441, {2|U, {0x0421, 0x1c83}}},</div><div class='del'>-  {0x0442, {3|U, {0x0422, 0x1c84, 0x1c85}}},</div><div class='del'>-  {0x0443, {1|U, {0x0423}}},</div><div class='del'>-  {0x0444, {1|U, {0x0424}}},</div><div class='del'>-  {0x0445, {1|U, {0x0425}}},</div><div class='del'>-  {0x0446, {1|U, {0x0426}}},</div><div class='del'>-  {0x0447, {1|U, {0x0427}}},</div><div class='del'>-  {0x0448, {1|U, {0x0428}}},</div><div class='del'>-  {0x0449, {1|U, {0x0429}}},</div><div class='del'>-  {0x044a, {2|U, {0x042a, 0x1c86}}},</div><div class='del'>-  {0x044b, {1|U, {0x042b}}},</div><div class='del'>-  {0x044c, {1|U, {0x042c}}},</div><div class='del'>-  {0x044d, {1|U, {0x042d}}},</div><div class='del'>-  {0x044e, {1|U, {0x042e}}},</div><div class='del'>-  {0x044f, {1|U, {0x042f}}},</div><div class='del'>-  {0x0450, {1|U, {0x0400}}},</div><div class='del'>-  {0x0451, {1|U, {0x0401}}},</div><div class='del'>-  {0x0452, {1|U, {0x0402}}},</div><div class='del'>-  {0x0453, {1|U, {0x0403}}},</div><div class='del'>-  {0x0454, {1|U, {0x0404}}},</div><div class='del'>-  {0x0455, {1|U, {0x0405}}},</div><div class='del'>-  {0x0456, {1|U, {0x0406}}},</div><div class='del'>-  {0x0457, {1|U, {0x0407}}},</div><div class='del'>-  {0x0458, {1|U, {0x0408}}},</div><div class='del'>-  {0x0459, {1|U, {0x0409}}},</div><div class='del'>-  {0x045a, {1|U, {0x040a}}},</div><div class='del'>-  {0x045b, {1|U, {0x040b}}},</div><div class='del'>-  {0x045c, {1|U, {0x040c}}},</div><div class='del'>-  {0x045d, {1|U, {0x040d}}},</div><div class='del'>-  {0x045e, {1|U, {0x040e}}},</div><div class='del'>-  {0x045f, {1|U, {0x040f}}},</div><div class='del'>-  {0x0461, {1|U, {0x0460}}},</div><div class='del'>-  {0x0463, {2|U, {0x0462, 0x1c87}}},</div><div class='del'>-  {0x0465, {1|U, {0x0464}}},</div><div class='del'>-  {0x0467, {1|U, {0x0466}}},</div><div class='del'>-  {0x0469, {1|U, {0x0468}}},</div><div class='del'>-  {0x046b, {1|U, {0x046a}}},</div><div class='del'>-  {0x046d, {1|U, {0x046c}}},</div><div class='del'>-  {0x046f, {1|U, {0x046e}}},</div><div class='del'>-  {0x0471, {1|U, {0x0470}}},</div><div class='del'>-  {0x0473, {1|U, {0x0472}}},</div><div class='del'>-  {0x0475, {1|U, {0x0474}}},</div><div class='del'>-  {0x0477, {1|U, {0x0476}}},</div><div class='del'>-  {0x0479, {1|U, {0x0478}}},</div><div class='del'>-  {0x047b, {1|U, {0x047a}}},</div><div class='del'>-  {0x047d, {1|U, {0x047c}}},</div><div class='del'>-  {0x047f, {1|U, {0x047e}}},</div><div class='del'>-  {0x0481, {1|U, {0x0480}}},</div><div class='del'>-  {0x048b, {1|U, {0x048a}}},</div><div class='del'>-  {0x048d, {1|U, {0x048c}}},</div><div class='del'>-  {0x048f, {1|U, {0x048e}}},</div><div class='del'>-  {0x0491, {1|U, {0x0490}}},</div><div class='del'>-  {0x0493, {1|U, {0x0492}}},</div><div class='del'>-  {0x0495, {1|U, {0x0494}}},</div><div class='del'>-  {0x0497, {1|U, {0x0496}}},</div><div class='del'>-  {0x0499, {1|U, {0x0498}}},</div><div class='del'>-  {0x049b, {1|U, {0x049a}}},</div><div class='del'>-  {0x049d, {1|U, {0x049c}}},</div><div class='del'>-  {0x049f, {1|U, {0x049e}}},</div><div class='del'>-  {0x04a1, {1|U, {0x04a0}}},</div><div class='del'>-  {0x04a3, {1|U, {0x04a2}}},</div><div class='del'>-  {0x04a5, {1|U, {0x04a4}}},</div><div class='del'>-  {0x04a7, {1|U, {0x04a6}}},</div><div class='del'>-  {0x04a9, {1|U, {0x04a8}}},</div><div class='del'>-  {0x04ab, {1|U, {0x04aa}}},</div><div class='del'>-  {0x04ad, {1|U, {0x04ac}}},</div><div class='del'>-  {0x04af, {1|U, {0x04ae}}},</div><div class='del'>-  {0x04b1, {1|U, {0x04b0}}},</div><div class='del'>-  {0x04b3, {1|U, {0x04b2}}},</div><div class='del'>-  {0x04b5, {1|U, {0x04b4}}},</div><div class='del'>-  {0x04b7, {1|U, {0x04b6}}},</div><div class='del'>-  {0x04b9, {1|U, {0x04b8}}},</div><div class='del'>-  {0x04bb, {1|U, {0x04ba}}},</div><div class='del'>-  {0x04bd, {1|U, {0x04bc}}},</div><div class='del'>-  {0x04bf, {1|U, {0x04be}}},</div><div class='del'>-  {0x04c2, {1|U, {0x04c1}}},</div><div class='del'>-  {0x04c4, {1|U, {0x04c3}}},</div><div class='del'>-  {0x04c6, {1|U, {0x04c5}}},</div><div class='del'>-  {0x04c8, {1|U, {0x04c7}}},</div><div class='del'>-  {0x04ca, {1|U, {0x04c9}}},</div><div class='del'>-  {0x04cc, {1|U, {0x04cb}}},</div><div class='del'>-  {0x04ce, {1|U, {0x04cd}}},</div><div class='del'>-  {0x04cf, {1|U, {0x04c0}}},</div><div class='del'>-  {0x04d1, {1|U, {0x04d0}}},</div><div class='del'>-  {0x04d3, {1|U, {0x04d2}}},</div><div class='del'>-  {0x04d5, {1|U, {0x04d4}}},</div><div class='del'>-  {0x04d7, {1|U, {0x04d6}}},</div><div class='del'>-  {0x04d9, {1|U, {0x04d8}}},</div><div class='del'>-  {0x04db, {1|U, {0x04da}}},</div><div class='del'>-  {0x04dd, {1|U, {0x04dc}}},</div><div class='del'>-  {0x04df, {1|U, {0x04de}}},</div><div class='del'>-  {0x04e1, {1|U, {0x04e0}}},</div><div class='del'>-  {0x04e3, {1|U, {0x04e2}}},</div><div class='del'>-  {0x04e5, {1|U, {0x04e4}}},</div><div class='del'>-  {0x04e7, {1|U, {0x04e6}}},</div><div class='del'>-  {0x04e9, {1|U, {0x04e8}}},</div><div class='del'>-  {0x04eb, {1|U, {0x04ea}}},</div><div class='del'>-  {0x04ed, {1|U, {0x04ec}}},</div><div class='del'>-  {0x04ef, {1|U, {0x04ee}}},</div><div class='del'>-  {0x04f1, {1|U, {0x04f0}}},</div><div class='del'>-  {0x04f3, {1|U, {0x04f2}}},</div><div class='del'>-  {0x04f5, {1|U, {0x04f4}}},</div><div class='del'>-  {0x04f7, {1|U, {0x04f6}}},</div><div class='del'>-  {0x04f9, {1|U, {0x04f8}}},</div><div class='del'>-  {0x04fb, {1|U, {0x04fa}}},</div><div class='del'>-  {0x04fd, {1|U, {0x04fc}}},</div><div class='del'>-  {0x04ff, {1|U, {0x04fe}}},</div><div class='del'>-  {0x0501, {1|U, {0x0500}}},</div><div class='del'>-  {0x0503, {1|U, {0x0502}}},</div><div class='del'>-  {0x0505, {1|U, {0x0504}}},</div><div class='del'>-  {0x0507, {1|U, {0x0506}}},</div><div class='del'>-  {0x0509, {1|U, {0x0508}}},</div><div class='del'>-  {0x050b, {1|U, {0x050a}}},</div><div class='del'>-  {0x050d, {1|U, {0x050c}}},</div><div class='del'>-  {0x050f, {1|U, {0x050e}}},</div><div class='del'>-  {0x0511, {1|U, {0x0510}}},</div><div class='del'>-  {0x0513, {1|U, {0x0512}}},</div><div class='del'>-  {0x0515, {1|U, {0x0514}}},</div><div class='del'>-  {0x0517, {1|U, {0x0516}}},</div><div class='del'>-  {0x0519, {1|U, {0x0518}}},</div><div class='del'>-  {0x051b, {1|U, {0x051a}}},</div><div class='del'>-  {0x051d, {1|U, {0x051c}}},</div><div class='del'>-  {0x051f, {1|U, {0x051e}}},</div><div class='del'>-  {0x0521, {1|U, {0x0520}}},</div><div class='del'>-  {0x0523, {1|U, {0x0522}}},</div><div class='del'>-  {0x0525, {1|U, {0x0524}}},</div><div class='del'>-  {0x0527, {1|U, {0x0526}}},</div><div class='del'>-  {0x0529, {1|U, {0x0528}}},</div><div class='del'>-  {0x052b, {1|U, {0x052a}}},</div><div class='del'>-  {0x052d, {1|U, {0x052c}}},</div><div class='del'>-  {0x052f, {1|U, {0x052e}}},</div><div class='del'>-  {0x0561, {1|U, {0x0531}}},</div><div class='del'>-  {0x0562, {1|U, {0x0532}}},</div><div class='del'>-  {0x0563, {1|U, {0x0533}}},</div><div class='del'>-  {0x0564, {1|U, {0x0534}}},</div><div class='del'>-  {0x0565, {1|U, {0x0535}}},</div><div class='del'>-  {0x0566, {1|U, {0x0536}}},</div><div class='del'>-  {0x0567, {1|U, {0x0537}}},</div><div class='del'>-  {0x0568, {1|U, {0x0538}}},</div><div class='del'>-  {0x0569, {1|U, {0x0539}}},</div><div class='del'>-  {0x056a, {1|U, {0x053a}}},</div><div class='del'>-  {0x056b, {1|U, {0x053b}}},</div><div class='del'>-  {0x056c, {1|U, {0x053c}}},</div><div class='del'>-  {0x056d, {1|U, {0x053d}}},</div><div class='del'>-  {0x056e, {1|U, {0x053e}}},</div><div class='del'>-  {0x056f, {1|U, {0x053f}}},</div><div class='del'>-  {0x0570, {1|U, {0x0540}}},</div><div class='del'>-  {0x0571, {1|U, {0x0541}}},</div><div class='del'>-  {0x0572, {1|U, {0x0542}}},</div><div class='del'>-  {0x0573, {1|U, {0x0543}}},</div><div class='del'>-  {0x0574, {1|U, {0x0544}}},</div><div class='del'>-  {0x0575, {1|U, {0x0545}}},</div><div class='del'>-  {0x0576, {1|U, {0x0546}}},</div><div class='del'>-  {0x0577, {1|U, {0x0547}}},</div><div class='del'>-  {0x0578, {1|U, {0x0548}}},</div><div class='del'>-  {0x0579, {1|U, {0x0549}}},</div><div class='del'>-  {0x057a, {1|U, {0x054a}}},</div><div class='del'>-  {0x057b, {1|U, {0x054b}}},</div><div class='del'>-  {0x057c, {1|U, {0x054c}}},</div><div class='del'>-  {0x057d, {1|U, {0x054d}}},</div><div class='del'>-  {0x057e, {1|U, {0x054e}}},</div><div class='del'>-  {0x057f, {1|U, {0x054f}}},</div><div class='del'>-  {0x0580, {1|U, {0x0550}}},</div><div class='del'>-  {0x0581, {1|U, {0x0551}}},</div><div class='del'>-  {0x0582, {1|U, {0x0552}}},</div><div class='del'>-  {0x0583, {1|U, {0x0553}}},</div><div class='del'>-  {0x0584, {1|U, {0x0554}}},</div><div class='del'>-  {0x0585, {1|U, {0x0555}}},</div><div class='del'>-  {0x0586, {1|U, {0x0556}}},</div><div class='del'>-  {0x10d0, {1|U|IT, {0x1c90}}},</div><div class='del'>-  {0x10d1, {1|U|IT, {0x1c91}}},</div><div class='del'>-  {0x10d2, {1|U|IT, {0x1c92}}},</div><div class='del'>-  {0x10d3, {1|U|IT, {0x1c93}}},</div><div class='del'>-  {0x10d4, {1|U|IT, {0x1c94}}},</div><div class='del'>-  {0x10d5, {1|U|IT, {0x1c95}}},</div><div class='del'>-  {0x10d6, {1|U|IT, {0x1c96}}},</div><div class='del'>-  {0x10d7, {1|U|IT, {0x1c97}}},</div><div class='del'>-  {0x10d8, {1|U|IT, {0x1c98}}},</div><div class='del'>-  {0x10d9, {1|U|IT, {0x1c99}}},</div><div class='del'>-  {0x10da, {1|U|IT, {0x1c9a}}},</div><div class='del'>-  {0x10db, {1|U|IT, {0x1c9b}}},</div><div class='del'>-  {0x10dc, {1|U|IT, {0x1c9c}}},</div><div class='del'>-  {0x10dd, {1|U|IT, {0x1c9d}}},</div><div class='del'>-  {0x10de, {1|U|IT, {0x1c9e}}},</div><div class='del'>-  {0x10df, {1|U|IT, {0x1c9f}}},</div><div class='del'>-  {0x10e0, {1|U|IT, {0x1ca0}}},</div><div class='del'>-  {0x10e1, {1|U|IT, {0x1ca1}}},</div><div class='del'>-  {0x10e2, {1|U|IT, {0x1ca2}}},</div><div class='del'>-  {0x10e3, {1|U|IT, {0x1ca3}}},</div><div class='del'>-  {0x10e4, {1|U|IT, {0x1ca4}}},</div><div class='del'>-  {0x10e5, {1|U|IT, {0x1ca5}}},</div><div class='del'>-  {0x10e6, {1|U|IT, {0x1ca6}}},</div><div class='del'>-  {0x10e7, {1|U|IT, {0x1ca7}}},</div><div class='del'>-  {0x10e8, {1|U|IT, {0x1ca8}}},</div><div class='del'>-  {0x10e9, {1|U|IT, {0x1ca9}}},</div><div class='del'>-  {0x10ea, {1|U|IT, {0x1caa}}},</div><div class='del'>-  {0x10eb, {1|U|IT, {0x1cab}}},</div><div class='del'>-  {0x10ec, {1|U|IT, {0x1cac}}},</div><div class='del'>-  {0x10ed, {1|U|IT, {0x1cad}}},</div><div class='del'>-  {0x10ee, {1|U|IT, {0x1cae}}},</div><div class='del'>-  {0x10ef, {1|U|IT, {0x1caf}}},</div><div class='del'>-  {0x10f0, {1|U|IT, {0x1cb0}}},</div><div class='del'>-  {0x10f1, {1|U|IT, {0x1cb1}}},</div><div class='del'>-  {0x10f2, {1|U|IT, {0x1cb2}}},</div><div class='del'>-  {0x10f3, {1|U|IT, {0x1cb3}}},</div><div class='del'>-  {0x10f4, {1|U|IT, {0x1cb4}}},</div><div class='del'>-  {0x10f5, {1|U|IT, {0x1cb5}}},</div><div class='del'>-  {0x10f6, {1|U|IT, {0x1cb6}}},</div><div class='del'>-  {0x10f7, {1|U|IT, {0x1cb7}}},</div><div class='del'>-  {0x10f8, {1|U|IT, {0x1cb8}}},</div><div class='del'>-  {0x10f9, {1|U|IT, {0x1cb9}}},</div><div class='del'>-  {0x10fa, {1|U|IT, {0x1cba}}},</div><div class='del'>-  {0x10fd, {1|U|IT, {0x1cbd}}},</div><div class='del'>-  {0x10fe, {1|U|IT, {0x1cbe}}},</div><div class='del'>-  {0x10ff, {1|U|IT, {0x1cbf}}},</div><div class='del'>-  {0x13a0, {1|D, {0xab70}}},</div><div class='del'>-  {0x13a1, {1|D, {0xab71}}},</div><div class='del'>-  {0x13a2, {1|D, {0xab72}}},</div><div class='del'>-  {0x13a3, {1|D, {0xab73}}},</div><div class='del'>-  {0x13a4, {1|D, {0xab74}}},</div><div class='del'>-  {0x13a5, {1|D, {0xab75}}},</div><div class='del'>-  {0x13a6, {1|D, {0xab76}}},</div><div class='del'>-  {0x13a7, {1|D, {0xab77}}},</div><div class='del'>-  {0x13a8, {1|D, {0xab78}}},</div><div class='del'>-  {0x13a9, {1|D, {0xab79}}},</div><div class='del'>-  {0x13aa, {1|D, {0xab7a}}},</div><div class='del'>-  {0x13ab, {1|D, {0xab7b}}},</div><div class='del'>-  {0x13ac, {1|D, {0xab7c}}},</div><div class='del'>-  {0x13ad, {1|D, {0xab7d}}},</div><div class='del'>-  {0x13ae, {1|D, {0xab7e}}},</div><div class='del'>-  {0x13af, {1|D, {0xab7f}}},</div><div class='del'>-  {0x13b0, {1|D, {0xab80}}},</div><div class='del'>-  {0x13b1, {1|D, {0xab81}}},</div><div class='del'>-  {0x13b2, {1|D, {0xab82}}},</div><div class='del'>-  {0x13b3, {1|D, {0xab83}}},</div><div class='del'>-  {0x13b4, {1|D, {0xab84}}},</div><div class='del'>-  {0x13b5, {1|D, {0xab85}}},</div><div class='del'>-  {0x13b6, {1|D, {0xab86}}},</div><div class='del'>-  {0x13b7, {1|D, {0xab87}}},</div><div class='del'>-  {0x13b8, {1|D, {0xab88}}},</div><div class='del'>-  {0x13b9, {1|D, {0xab89}}},</div><div class='del'>-  {0x13ba, {1|D, {0xab8a}}},</div><div class='del'>-  {0x13bb, {1|D, {0xab8b}}},</div><div class='del'>-  {0x13bc, {1|D, {0xab8c}}},</div><div class='del'>-  {0x13bd, {1|D, {0xab8d}}},</div><div class='del'>-  {0x13be, {1|D, {0xab8e}}},</div><div class='del'>-  {0x13bf, {1|D, {0xab8f}}},</div><div class='del'>-  {0x13c0, {1|D, {0xab90}}},</div><div class='del'>-  {0x13c1, {1|D, {0xab91}}},</div><div class='del'>-  {0x13c2, {1|D, {0xab92}}},</div><div class='del'>-  {0x13c3, {1|D, {0xab93}}},</div><div class='del'>-  {0x13c4, {1|D, {0xab94}}},</div><div class='del'>-  {0x13c5, {1|D, {0xab95}}},</div><div class='del'>-  {0x13c6, {1|D, {0xab96}}},</div><div class='del'>-  {0x13c7, {1|D, {0xab97}}},</div><div class='del'>-  {0x13c8, {1|D, {0xab98}}},</div><div class='del'>-  {0x13c9, {1|D, {0xab99}}},</div><div class='del'>-  {0x13ca, {1|D, {0xab9a}}},</div><div class='del'>-  {0x13cb, {1|D, {0xab9b}}},</div><div class='del'>-  {0x13cc, {1|D, {0xab9c}}},</div><div class='del'>-  {0x13cd, {1|D, {0xab9d}}},</div><div class='del'>-  {0x13ce, {1|D, {0xab9e}}},</div><div class='del'>-  {0x13cf, {1|D, {0xab9f}}},</div><div class='del'>-  {0x13d0, {1|D, {0xaba0}}},</div><div class='del'>-  {0x13d1, {1|D, {0xaba1}}},</div><div class='del'>-  {0x13d2, {1|D, {0xaba2}}},</div><div class='del'>-  {0x13d3, {1|D, {0xaba3}}},</div><div class='del'>-  {0x13d4, {1|D, {0xaba4}}},</div><div class='del'>-  {0x13d5, {1|D, {0xaba5}}},</div><div class='del'>-  {0x13d6, {1|D, {0xaba6}}},</div><div class='del'>-  {0x13d7, {1|D, {0xaba7}}},</div><div class='del'>-  {0x13d8, {1|D, {0xaba8}}},</div><div class='del'>-  {0x13d9, {1|D, {0xaba9}}},</div><div class='del'>-  {0x13da, {1|D, {0xabaa}}},</div><div class='del'>-  {0x13db, {1|D, {0xabab}}},</div><div class='del'>-  {0x13dc, {1|D, {0xabac}}},</div><div class='del'>-  {0x13dd, {1|D, {0xabad}}},</div><div class='del'>-  {0x13de, {1|D, {0xabae}}},</div><div class='del'>-  {0x13df, {1|D, {0xabaf}}},</div><div class='del'>-  {0x13e0, {1|D, {0xabb0}}},</div><div class='del'>-  {0x13e1, {1|D, {0xabb1}}},</div><div class='del'>-  {0x13e2, {1|D, {0xabb2}}},</div><div class='del'>-  {0x13e3, {1|D, {0xabb3}}},</div><div class='del'>-  {0x13e4, {1|D, {0xabb4}}},</div><div class='del'>-  {0x13e5, {1|D, {0xabb5}}},</div><div class='del'>-  {0x13e6, {1|D, {0xabb6}}},</div><div class='del'>-  {0x13e7, {1|D, {0xabb7}}},</div><div class='del'>-  {0x13e8, {1|D, {0xabb8}}},</div><div class='del'>-  {0x13e9, {1|D, {0xabb9}}},</div><div class='del'>-  {0x13ea, {1|D, {0xabba}}},</div><div class='del'>-  {0x13eb, {1|D, {0xabbb}}},</div><div class='del'>-  {0x13ec, {1|D, {0xabbc}}},</div><div class='del'>-  {0x13ed, {1|D, {0xabbd}}},</div><div class='del'>-  {0x13ee, {1|D, {0xabbe}}},</div><div class='del'>-  {0x13ef, {1|D, {0xabbf}}},</div><div class='del'>-  {0x13f0, {1|D, {0x13f8}}},</div><div class='del'>-  {0x13f1, {1|D, {0x13f9}}},</div><div class='del'>-  {0x13f2, {1|D, {0x13fa}}},</div><div class='del'>-  {0x13f3, {1|D, {0x13fb}}},</div><div class='del'>-  {0x13f4, {1|D, {0x13fc}}},</div><div class='del'>-  {0x13f5, {1|D, {0x13fd}}},</div><div class='del'>-  {0x1d79, {1|U, {0xa77d}}},</div><div class='del'>-  {0x1d7d, {1|U, {0x2c63}}},</div><div class='del'>-  {0x1e01, {1|U, {0x1e00}}},</div><div class='del'>-  {0x1e03, {1|U, {0x1e02}}},</div><div class='del'>-  {0x1e05, {1|U, {0x1e04}}},</div><div class='del'>-  {0x1e07, {1|U, {0x1e06}}},</div><div class='del'>-  {0x1e09, {1|U, {0x1e08}}},</div><div class='del'>-  {0x1e0b, {1|U, {0x1e0a}}},</div><div class='del'>-  {0x1e0d, {1|U, {0x1e0c}}},</div><div class='del'>-  {0x1e0f, {1|U, {0x1e0e}}},</div><div class='del'>-  {0x1e11, {1|U, {0x1e10}}},</div><div class='del'>-  {0x1e13, {1|U, {0x1e12}}},</div><div class='del'>-  {0x1e15, {1|U, {0x1e14}}},</div><div class='del'>-  {0x1e17, {1|U, {0x1e16}}},</div><div class='del'>-  {0x1e19, {1|U, {0x1e18}}},</div><div class='del'>-  {0x1e1b, {1|U, {0x1e1a}}},</div><div class='del'>-  {0x1e1d, {1|U, {0x1e1c}}},</div><div class='del'>-  {0x1e1f, {1|U, {0x1e1e}}},</div><div class='del'>-  {0x1e21, {1|U, {0x1e20}}},</div><div class='del'>-  {0x1e23, {1|U, {0x1e22}}},</div><div class='del'>-  {0x1e25, {1|U, {0x1e24}}},</div><div class='del'>-  {0x1e27, {1|U, {0x1e26}}},</div><div class='del'>-  {0x1e29, {1|U, {0x1e28}}},</div><div class='del'>-  {0x1e2b, {1|U, {0x1e2a}}},</div><div class='del'>-  {0x1e2d, {1|U, {0x1e2c}}},</div><div class='del'>-  {0x1e2f, {1|U, {0x1e2e}}},</div><div class='del'>-  {0x1e31, {1|U, {0x1e30}}},</div><div class='del'>-  {0x1e33, {1|U, {0x1e32}}},</div><div class='del'>-  {0x1e35, {1|U, {0x1e34}}},</div><div class='del'>-  {0x1e37, {1|U, {0x1e36}}},</div><div class='del'>-  {0x1e39, {1|U, {0x1e38}}},</div><div class='del'>-  {0x1e3b, {1|U, {0x1e3a}}},</div><div class='del'>-  {0x1e3d, {1|U, {0x1e3c}}},</div><div class='del'>-  {0x1e3f, {1|U, {0x1e3e}}},</div><div class='del'>-  {0x1e41, {1|U, {0x1e40}}},</div><div class='del'>-  {0x1e43, {1|U, {0x1e42}}},</div><div class='del'>-  {0x1e45, {1|U, {0x1e44}}},</div><div class='del'>-  {0x1e47, {1|U, {0x1e46}}},</div><div class='del'>-  {0x1e49, {1|U, {0x1e48}}},</div><div class='del'>-  {0x1e4b, {1|U, {0x1e4a}}},</div><div class='del'>-  {0x1e4d, {1|U, {0x1e4c}}},</div><div class='del'>-  {0x1e4f, {1|U, {0x1e4e}}},</div><div class='del'>-  {0x1e51, {1|U, {0x1e50}}},</div><div class='del'>-  {0x1e53, {1|U, {0x1e52}}},</div><div class='del'>-  {0x1e55, {1|U, {0x1e54}}},</div><div class='del'>-  {0x1e57, {1|U, {0x1e56}}},</div><div class='del'>-  {0x1e59, {1|U, {0x1e58}}},</div><div class='del'>-  {0x1e5b, {1|U, {0x1e5a}}},</div><div class='del'>-  {0x1e5d, {1|U, {0x1e5c}}},</div><div class='del'>-  {0x1e5f, {1|U, {0x1e5e}}},</div><div class='del'>-  {0x1e61, {2|U, {0x1e60, 0x1e9b}}},</div><div class='del'>-  {0x1e63, {1|U, {0x1e62}}},</div><div class='del'>-  {0x1e65, {1|U, {0x1e64}}},</div><div class='del'>-  {0x1e67, {1|U, {0x1e66}}},</div><div class='del'>-  {0x1e69, {1|U, {0x1e68}}},</div><div class='del'>-  {0x1e6b, {1|U, {0x1e6a}}},</div><div class='del'>-  {0x1e6d, {1|U, {0x1e6c}}},</div><div class='del'>-  {0x1e6f, {1|U, {0x1e6e}}},</div><div class='del'>-  {0x1e71, {1|U, {0x1e70}}},</div><div class='del'>-  {0x1e73, {1|U, {0x1e72}}},</div><div class='del'>-  {0x1e75, {1|U, {0x1e74}}},</div><div class='del'>-  {0x1e77, {1|U, {0x1e76}}},</div><div class='del'>-  {0x1e79, {1|U, {0x1e78}}},</div><div class='del'>-  {0x1e7b, {1|U, {0x1e7a}}},</div><div class='del'>-  {0x1e7d, {1|U, {0x1e7c}}},</div><div class='del'>-  {0x1e7f, {1|U, {0x1e7e}}},</div><div class='del'>-  {0x1e81, {1|U, {0x1e80}}},</div><div class='del'>-  {0x1e83, {1|U, {0x1e82}}},</div><div class='del'>-  {0x1e85, {1|U, {0x1e84}}},</div><div class='del'>-  {0x1e87, {1|U, {0x1e86}}},</div><div class='del'>-  {0x1e89, {1|U, {0x1e88}}},</div><div class='del'>-  {0x1e8b, {1|U, {0x1e8a}}},</div><div class='del'>-  {0x1e8d, {1|U, {0x1e8c}}},</div><div class='del'>-  {0x1e8f, {1|U, {0x1e8e}}},</div><div class='del'>-  {0x1e91, {1|U, {0x1e90}}},</div><div class='del'>-  {0x1e93, {1|U, {0x1e92}}},</div><div class='del'>-  {0x1e95, {1|U, {0x1e94}}},</div><div class='del'>-  {0x1ea1, {1|U, {0x1ea0}}},</div><div class='del'>-  {0x1ea3, {1|U, {0x1ea2}}},</div><div class='del'>-  {0x1ea5, {1|U, {0x1ea4}}},</div><div class='del'>-  {0x1ea7, {1|U, {0x1ea6}}},</div><div class='del'>-  {0x1ea9, {1|U, {0x1ea8}}},</div><div class='del'>-  {0x1eab, {1|U, {0x1eaa}}},</div><div class='del'>-  {0x1ead, {1|U, {0x1eac}}},</div><div class='del'>-  {0x1eaf, {1|U, {0x1eae}}},</div><div class='del'>-  {0x1eb1, {1|U, {0x1eb0}}},</div><div class='del'>-  {0x1eb3, {1|U, {0x1eb2}}},</div><div class='del'>-  {0x1eb5, {1|U, {0x1eb4}}},</div><div class='del'>-  {0x1eb7, {1|U, {0x1eb6}}},</div><div class='del'>-  {0x1eb9, {1|U, {0x1eb8}}},</div><div class='del'>-  {0x1ebb, {1|U, {0x1eba}}},</div><div class='del'>-  {0x1ebd, {1|U, {0x1ebc}}},</div><div class='del'>-  {0x1ebf, {1|U, {0x1ebe}}},</div><div class='del'>-  {0x1ec1, {1|U, {0x1ec0}}},</div><div class='del'>-  {0x1ec3, {1|U, {0x1ec2}}},</div><div class='del'>-  {0x1ec5, {1|U, {0x1ec4}}},</div><div class='del'>-  {0x1ec7, {1|U, {0x1ec6}}},</div><div class='del'>-  {0x1ec9, {1|U, {0x1ec8}}},</div><div class='del'>-  {0x1ecb, {1|U, {0x1eca}}},</div><div class='del'>-  {0x1ecd, {1|U, {0x1ecc}}},</div><div class='del'>-  {0x1ecf, {1|U, {0x1ece}}},</div><div class='del'>-  {0x1ed1, {1|U, {0x1ed0}}},</div><div class='del'>-  {0x1ed3, {1|U, {0x1ed2}}},</div><div class='del'>-  {0x1ed5, {1|U, {0x1ed4}}},</div><div class='del'>-  {0x1ed7, {1|U, {0x1ed6}}},</div><div class='del'>-  {0x1ed9, {1|U, {0x1ed8}}},</div><div class='del'>-  {0x1edb, {1|U, {0x1eda}}},</div><div class='del'>-  {0x1edd, {1|U, {0x1edc}}},</div><div class='del'>-  {0x1edf, {1|U, {0x1ede}}},</div><div class='del'>-  {0x1ee1, {1|U, {0x1ee0}}},</div><div class='del'>-  {0x1ee3, {1|U, {0x1ee2}}},</div><div class='del'>-  {0x1ee5, {1|U, {0x1ee4}}},</div><div class='del'>-  {0x1ee7, {1|U, {0x1ee6}}},</div><div class='del'>-  {0x1ee9, {1|U, {0x1ee8}}},</div><div class='del'>-  {0x1eeb, {1|U, {0x1eea}}},</div><div class='del'>-  {0x1eed, {1|U, {0x1eec}}},</div><div class='del'>-  {0x1eef, {1|U, {0x1eee}}},</div><div class='del'>-  {0x1ef1, {1|U, {0x1ef0}}},</div><div class='del'>-  {0x1ef3, {1|U, {0x1ef2}}},</div><div class='del'>-  {0x1ef5, {1|U, {0x1ef4}}},</div><div class='del'>-  {0x1ef7, {1|U, {0x1ef6}}},</div><div class='del'>-  {0x1ef9, {1|U, {0x1ef8}}},</div><div class='del'>-  {0x1efb, {1|U, {0x1efa}}},</div><div class='del'>-  {0x1efd, {1|U, {0x1efc}}},</div><div class='del'>-  {0x1eff, {1|U, {0x1efe}}},</div><div class='del'>-  {0x1f00, {1|U, {0x1f08}}},</div><div class='del'>-  {0x1f01, {1|U, {0x1f09}}},</div><div class='del'>-  {0x1f02, {1|U, {0x1f0a}}},</div><div class='del'>-  {0x1f03, {1|U, {0x1f0b}}},</div><div class='del'>-  {0x1f04, {1|U, {0x1f0c}}},</div><div class='del'>-  {0x1f05, {1|U, {0x1f0d}}},</div><div class='del'>-  {0x1f06, {1|U, {0x1f0e}}},</div><div class='del'>-  {0x1f07, {1|U, {0x1f0f}}},</div><div class='del'>-  {0x1f10, {1|U, {0x1f18}}},</div><div class='del'>-  {0x1f11, {1|U, {0x1f19}}},</div><div class='del'>-  {0x1f12, {1|U, {0x1f1a}}},</div><div class='del'>-  {0x1f13, {1|U, {0x1f1b}}},</div><div class='del'>-  {0x1f14, {1|U, {0x1f1c}}},</div><div class='del'>-  {0x1f15, {1|U, {0x1f1d}}},</div><div class='del'>-  {0x1f20, {1|U, {0x1f28}}},</div><div class='del'>-  {0x1f21, {1|U, {0x1f29}}},</div><div class='del'>-  {0x1f22, {1|U, {0x1f2a}}},</div><div class='del'>-  {0x1f23, {1|U, {0x1f2b}}},</div><div class='del'>-  {0x1f24, {1|U, {0x1f2c}}},</div><div class='del'>-  {0x1f25, {1|U, {0x1f2d}}},</div><div class='del'>-  {0x1f26, {1|U, {0x1f2e}}},</div><div class='del'>-  {0x1f27, {1|U, {0x1f2f}}},</div><div class='del'>-  {0x1f30, {1|U, {0x1f38}}},</div><div class='del'>-  {0x1f31, {1|U, {0x1f39}}},</div><div class='del'>-  {0x1f32, {1|U, {0x1f3a}}},</div><div class='del'>-  {0x1f33, {1|U, {0x1f3b}}},</div><div class='del'>-  {0x1f34, {1|U, {0x1f3c}}},</div><div class='del'>-  {0x1f35, {1|U, {0x1f3d}}},</div><div class='del'>-  {0x1f36, {1|U, {0x1f3e}}},</div><div class='del'>-  {0x1f37, {1|U, {0x1f3f}}},</div><div class='del'>-  {0x1f40, {1|U, {0x1f48}}},</div><div class='del'>-  {0x1f41, {1|U, {0x1f49}}},</div><div class='del'>-  {0x1f42, {1|U, {0x1f4a}}},</div><div class='del'>-  {0x1f43, {1|U, {0x1f4b}}},</div><div class='del'>-  {0x1f44, {1|U, {0x1f4c}}},</div><div class='del'>-  {0x1f45, {1|U, {0x1f4d}}},</div><div class='del'>-  {0x1f51, {1|U, {0x1f59}}},</div><div class='del'>-  {0x1f53, {1|U, {0x1f5b}}},</div><div class='del'>-  {0x1f55, {1|U, {0x1f5d}}},</div><div class='del'>-  {0x1f57, {1|U, {0x1f5f}}},</div><div class='del'>-  {0x1f60, {1|U, {0x1f68}}},</div><div class='del'>-  {0x1f61, {1|U, {0x1f69}}},</div><div class='del'>-  {0x1f62, {1|U, {0x1f6a}}},</div><div class='del'>-  {0x1f63, {1|U, {0x1f6b}}},</div><div class='del'>-  {0x1f64, {1|U, {0x1f6c}}},</div><div class='del'>-  {0x1f65, {1|U, {0x1f6d}}},</div><div class='del'>-  {0x1f66, {1|U, {0x1f6e}}},</div><div class='del'>-  {0x1f67, {1|U, {0x1f6f}}},</div><div class='del'>-  {0x1f70, {1|U, {0x1fba}}},</div><div class='del'>-  {0x1f71, {1|U, {0x1fbb}}},</div><div class='del'>-  {0x1f72, {1|U, {0x1fc8}}},</div><div class='del'>-  {0x1f73, {1|U, {0x1fc9}}},</div><div class='del'>-  {0x1f74, {1|U, {0x1fca}}},</div><div class='del'>-  {0x1f75, {1|U, {0x1fcb}}},</div><div class='del'>-  {0x1f76, {1|U, {0x1fda}}},</div><div class='del'>-  {0x1f77, {1|U, {0x1fdb}}},</div><div class='del'>-  {0x1f78, {1|U, {0x1ff8}}},</div><div class='del'>-  {0x1f79, {1|U, {0x1ff9}}},</div><div class='del'>-  {0x1f7a, {1|U, {0x1fea}}},</div><div class='del'>-  {0x1f7b, {1|U, {0x1feb}}},</div><div class='del'>-  {0x1f7c, {1|U, {0x1ffa}}},</div><div class='del'>-  {0x1f7d, {1|U, {0x1ffb}}},</div><div class='del'>-  {0x1fb0, {1|U, {0x1fb8}}},</div><div class='del'>-  {0x1fb1, {1|U, {0x1fb9}}},</div><div class='del'>-  {0x1fd0, {1|U, {0x1fd8}}},</div><div class='del'>-  {0x1fd1, {1|U, {0x1fd9}}},</div><div class='del'>-  {0x1fe0, {1|U, {0x1fe8}}},</div><div class='del'>-  {0x1fe1, {1|U, {0x1fe9}}},</div><div class='del'>-  {0x1fe5, {1|U, {0x1fec}}},</div><div class='del'>-  {0x214e, {1|U, {0x2132}}},</div><div class='del'>-  {0x2170, {1|U, {0x2160}}},</div><div class='del'>-  {0x2171, {1|U, {0x2161}}},</div><div class='del'>-  {0x2172, {1|U, {0x2162}}},</div><div class='del'>-  {0x2173, {1|U, {0x2163}}},</div><div class='del'>-  {0x2174, {1|U, {0x2164}}},</div><div class='del'>-  {0x2175, {1|U, {0x2165}}},</div><div class='del'>-  {0x2176, {1|U, {0x2166}}},</div><div class='del'>-  {0x2177, {1|U, {0x2167}}},</div><div class='del'>-  {0x2178, {1|U, {0x2168}}},</div><div class='del'>-  {0x2179, {1|U, {0x2169}}},</div><div class='del'>-  {0x217a, {1|U, {0x216a}}},</div><div class='del'>-  {0x217b, {1|U, {0x216b}}},</div><div class='del'>-  {0x217c, {1|U, {0x216c}}},</div><div class='del'>-  {0x217d, {1|U, {0x216d}}},</div><div class='del'>-  {0x217e, {1|U, {0x216e}}},</div><div class='del'>-  {0x217f, {1|U, {0x216f}}},</div><div class='del'>-  {0x2184, {1|U, {0x2183}}},</div><div class='del'>-  {0x24d0, {1|U, {0x24b6}}},</div><div class='del'>-  {0x24d1, {1|U, {0x24b7}}},</div><div class='del'>-  {0x24d2, {1|U, {0x24b8}}},</div><div class='del'>-  {0x24d3, {1|U, {0x24b9}}},</div><div class='del'>-  {0x24d4, {1|U, {0x24ba}}},</div><div class='del'>-  {0x24d5, {1|U, {0x24bb}}},</div><div class='del'>-  {0x24d6, {1|U, {0x24bc}}},</div><div class='del'>-  {0x24d7, {1|U, {0x24bd}}},</div><div class='del'>-  {0x24d8, {1|U, {0x24be}}},</div><div class='del'>-  {0x24d9, {1|U, {0x24bf}}},</div><div class='del'>-  {0x24da, {1|U, {0x24c0}}},</div><div class='del'>-  {0x24db, {1|U, {0x24c1}}},</div><div class='del'>-  {0x24dc, {1|U, {0x24c2}}},</div><div class='del'>-  {0x24dd, {1|U, {0x24c3}}},</div><div class='del'>-  {0x24de, {1|U, {0x24c4}}},</div><div class='del'>-  {0x24df, {1|U, {0x24c5}}},</div><div class='del'>-  {0x24e0, {1|U, {0x24c6}}},</div><div class='del'>-  {0x24e1, {1|U, {0x24c7}}},</div><div class='del'>-  {0x24e2, {1|U, {0x24c8}}},</div><div class='del'>-  {0x24e3, {1|U, {0x24c9}}},</div><div class='del'>-  {0x24e4, {1|U, {0x24ca}}},</div><div class='del'>-  {0x24e5, {1|U, {0x24cb}}},</div><div class='del'>-  {0x24e6, {1|U, {0x24cc}}},</div><div class='del'>-  {0x24e7, {1|U, {0x24cd}}},</div><div class='del'>-  {0x24e8, {1|U, {0x24ce}}},</div><div class='del'>-  {0x24e9, {1|U, {0x24cf}}},</div><div class='del'>-  {0x2c30, {1|U, {0x2c00}}},</div><div class='del'>-  {0x2c31, {1|U, {0x2c01}}},</div><div class='del'>-  {0x2c32, {1|U, {0x2c02}}},</div><div class='del'>-  {0x2c33, {1|U, {0x2c03}}},</div><div class='del'>-  {0x2c34, {1|U, {0x2c04}}},</div><div class='del'>-  {0x2c35, {1|U, {0x2c05}}},</div><div class='del'>-  {0x2c36, {1|U, {0x2c06}}},</div><div class='del'>-  {0x2c37, {1|U, {0x2c07}}},</div><div class='del'>-  {0x2c38, {1|U, {0x2c08}}},</div><div class='del'>-  {0x2c39, {1|U, {0x2c09}}},</div><div class='del'>-  {0x2c3a, {1|U, {0x2c0a}}},</div><div class='del'>-  {0x2c3b, {1|U, {0x2c0b}}},</div><div class='del'>-  {0x2c3c, {1|U, {0x2c0c}}},</div><div class='del'>-  {0x2c3d, {1|U, {0x2c0d}}},</div><div class='del'>-  {0x2c3e, {1|U, {0x2c0e}}},</div><div class='del'>-  {0x2c3f, {1|U, {0x2c0f}}},</div><div class='del'>-  {0x2c40, {1|U, {0x2c10}}},</div><div class='del'>-  {0x2c41, {1|U, {0x2c11}}},</div><div class='del'>-  {0x2c42, {1|U, {0x2c12}}},</div><div class='del'>-  {0x2c43, {1|U, {0x2c13}}},</div><div class='del'>-  {0x2c44, {1|U, {0x2c14}}},</div><div class='del'>-  {0x2c45, {1|U, {0x2c15}}},</div><div class='del'>-  {0x2c46, {1|U, {0x2c16}}},</div><div class='del'>-  {0x2c47, {1|U, {0x2c17}}},</div><div class='del'>-  {0x2c48, {1|U, {0x2c18}}},</div><div class='del'>-  {0x2c49, {1|U, {0x2c19}}},</div><div class='del'>-  {0x2c4a, {1|U, {0x2c1a}}},</div><div class='del'>-  {0x2c4b, {1|U, {0x2c1b}}},</div><div class='del'>-  {0x2c4c, {1|U, {0x2c1c}}},</div><div class='del'>-  {0x2c4d, {1|U, {0x2c1d}}},</div><div class='del'>-  {0x2c4e, {1|U, {0x2c1e}}},</div><div class='del'>-  {0x2c4f, {1|U, {0x2c1f}}},</div><div class='del'>-  {0x2c50, {1|U, {0x2c20}}},</div><div class='del'>-  {0x2c51, {1|U, {0x2c21}}},</div><div class='del'>-  {0x2c52, {1|U, {0x2c22}}},</div><div class='del'>-  {0x2c53, {1|U, {0x2c23}}},</div><div class='del'>-  {0x2c54, {1|U, {0x2c24}}},</div><div class='del'>-  {0x2c55, {1|U, {0x2c25}}},</div><div class='del'>-  {0x2c56, {1|U, {0x2c26}}},</div><div class='del'>-  {0x2c57, {1|U, {0x2c27}}},</div><div class='del'>-  {0x2c58, {1|U, {0x2c28}}},</div><div class='del'>-  {0x2c59, {1|U, {0x2c29}}},</div><div class='del'>-  {0x2c5a, {1|U, {0x2c2a}}},</div><div class='del'>-  {0x2c5b, {1|U, {0x2c2b}}},</div><div class='del'>-  {0x2c5c, {1|U, {0x2c2c}}},</div><div class='del'>-  {0x2c5d, {1|U, {0x2c2d}}},</div><div class='del'>-  {0x2c5e, {1|U, {0x2c2e}}},</div><div class='del'>-  {0x2c61, {1|U, {0x2c60}}},</div><div class='del'>-  {0x2c65, {1|U, {0x023a}}},</div><div class='del'>-  {0x2c66, {1|U, {0x023e}}},</div><div class='del'>-  {0x2c68, {1|U, {0x2c67}}},</div><div class='del'>-  {0x2c6a, {1|U, {0x2c69}}},</div><div class='del'>-  {0x2c6c, {1|U, {0x2c6b}}},</div><div class='del'>-  {0x2c73, {1|U, {0x2c72}}},</div><div class='del'>-  {0x2c76, {1|U, {0x2c75}}},</div><div class='del'>-  {0x2c81, {1|U, {0x2c80}}},</div><div class='del'>-  {0x2c83, {1|U, {0x2c82}}},</div><div class='del'>-  {0x2c85, {1|U, {0x2c84}}},</div><div class='del'>-  {0x2c87, {1|U, {0x2c86}}},</div><div class='del'>-  {0x2c89, {1|U, {0x2c88}}},</div><div class='del'>-  {0x2c8b, {1|U, {0x2c8a}}},</div><div class='del'>-  {0x2c8d, {1|U, {0x2c8c}}},</div><div class='del'>-  {0x2c8f, {1|U, {0x2c8e}}},</div><div class='del'>-  {0x2c91, {1|U, {0x2c90}}},</div><div class='del'>-  {0x2c93, {1|U, {0x2c92}}},</div><div class='del'>-  {0x2c95, {1|U, {0x2c94}}},</div><div class='del'>-  {0x2c97, {1|U, {0x2c96}}},</div><div class='del'>-  {0x2c99, {1|U, {0x2c98}}},</div><div class='del'>-  {0x2c9b, {1|U, {0x2c9a}}},</div><div class='del'>-  {0x2c9d, {1|U, {0x2c9c}}},</div><div class='del'>-  {0x2c9f, {1|U, {0x2c9e}}},</div><div class='del'>-  {0x2ca1, {1|U, {0x2ca0}}},</div><div class='del'>-  {0x2ca3, {1|U, {0x2ca2}}},</div><div class='del'>-  {0x2ca5, {1|U, {0x2ca4}}},</div><div class='del'>-  {0x2ca7, {1|U, {0x2ca6}}},</div><div class='del'>-  {0x2ca9, {1|U, {0x2ca8}}},</div><div class='del'>-  {0x2cab, {1|U, {0x2caa}}},</div><div class='del'>-  {0x2cad, {1|U, {0x2cac}}},</div><div class='del'>-  {0x2caf, {1|U, {0x2cae}}},</div><div class='del'>-  {0x2cb1, {1|U, {0x2cb0}}},</div><div class='del'>-  {0x2cb3, {1|U, {0x2cb2}}},</div><div class='del'>-  {0x2cb5, {1|U, {0x2cb4}}},</div><div class='del'>-  {0x2cb7, {1|U, {0x2cb6}}},</div><div class='del'>-  {0x2cb9, {1|U, {0x2cb8}}},</div><div class='del'>-  {0x2cbb, {1|U, {0x2cba}}},</div><div class='del'>-  {0x2cbd, {1|U, {0x2cbc}}},</div><div class='del'>-  {0x2cbf, {1|U, {0x2cbe}}},</div><div class='del'>-  {0x2cc1, {1|U, {0x2cc0}}},</div><div class='del'>-  {0x2cc3, {1|U, {0x2cc2}}},</div><div class='del'>-  {0x2cc5, {1|U, {0x2cc4}}},</div><div class='del'>-  {0x2cc7, {1|U, {0x2cc6}}},</div><div class='del'>-  {0x2cc9, {1|U, {0x2cc8}}},</div><div class='del'>-  {0x2ccb, {1|U, {0x2cca}}},</div><div class='del'>-  {0x2ccd, {1|U, {0x2ccc}}},</div><div class='del'>-  {0x2ccf, {1|U, {0x2cce}}},</div><div class='del'>-  {0x2cd1, {1|U, {0x2cd0}}},</div><div class='del'>-  {0x2cd3, {1|U, {0x2cd2}}},</div><div class='del'>-  {0x2cd5, {1|U, {0x2cd4}}},</div><div class='del'>-  {0x2cd7, {1|U, {0x2cd6}}},</div><div class='del'>-  {0x2cd9, {1|U, {0x2cd8}}},</div><div class='del'>-  {0x2cdb, {1|U, {0x2cda}}},</div><div class='del'>-  {0x2cdd, {1|U, {0x2cdc}}},</div><div class='del'>-  {0x2cdf, {1|U, {0x2cde}}},</div><div class='del'>-  {0x2ce1, {1|U, {0x2ce0}}},</div><div class='del'>-  {0x2ce3, {1|U, {0x2ce2}}},</div><div class='del'>-  {0x2cec, {1|U, {0x2ceb}}},</div><div class='del'>-  {0x2cee, {1|U, {0x2ced}}},</div><div class='del'>-  {0x2cf3, {1|U, {0x2cf2}}},</div><div class='del'>-  {0x2d00, {1|U, {0x10a0}}},</div><div class='del'>-  {0x2d01, {1|U, {0x10a1}}},</div><div class='del'>-  {0x2d02, {1|U, {0x10a2}}},</div><div class='del'>-  {0x2d03, {1|U, {0x10a3}}},</div><div class='del'>-  {0x2d04, {1|U, {0x10a4}}},</div><div class='del'>-  {0x2d05, {1|U, {0x10a5}}},</div><div class='del'>-  {0x2d06, {1|U, {0x10a6}}},</div><div class='del'>-  {0x2d07, {1|U, {0x10a7}}},</div><div class='del'>-  {0x2d08, {1|U, {0x10a8}}},</div><div class='del'>-  {0x2d09, {1|U, {0x10a9}}},</div><div class='del'>-  {0x2d0a, {1|U, {0x10aa}}},</div><div class='del'>-  {0x2d0b, {1|U, {0x10ab}}},</div><div class='del'>-  {0x2d0c, {1|U, {0x10ac}}},</div><div class='del'>-  {0x2d0d, {1|U, {0x10ad}}},</div><div class='del'>-  {0x2d0e, {1|U, {0x10ae}}},</div><div class='del'>-  {0x2d0f, {1|U, {0x10af}}},</div><div class='del'>-  {0x2d10, {1|U, {0x10b0}}},</div><div class='del'>-  {0x2d11, {1|U, {0x10b1}}},</div><div class='del'>-  {0x2d12, {1|U, {0x10b2}}},</div><div class='del'>-  {0x2d13, {1|U, {0x10b3}}},</div><div class='del'>-  {0x2d14, {1|U, {0x10b4}}},</div><div class='del'>-  {0x2d15, {1|U, {0x10b5}}},</div><div class='del'>-  {0x2d16, {1|U, {0x10b6}}},</div><div class='del'>-  {0x2d17, {1|U, {0x10b7}}},</div><div class='del'>-  {0x2d18, {1|U, {0x10b8}}},</div><div class='del'>-  {0x2d19, {1|U, {0x10b9}}},</div><div class='del'>-  {0x2d1a, {1|U, {0x10ba}}},</div><div class='del'>-  {0x2d1b, {1|U, {0x10bb}}},</div><div class='del'>-  {0x2d1c, {1|U, {0x10bc}}},</div><div class='del'>-  {0x2d1d, {1|U, {0x10bd}}},</div><div class='del'>-  {0x2d1e, {1|U, {0x10be}}},</div><div class='del'>-  {0x2d1f, {1|U, {0x10bf}}},</div><div class='del'>-  {0x2d20, {1|U, {0x10c0}}},</div><div class='del'>-  {0x2d21, {1|U, {0x10c1}}},</div><div class='del'>-  {0x2d22, {1|U, {0x10c2}}},</div><div class='del'>-  {0x2d23, {1|U, {0x10c3}}},</div><div class='del'>-  {0x2d24, {1|U, {0x10c4}}},</div><div class='del'>-  {0x2d25, {1|U, {0x10c5}}},</div><div class='del'>-  {0x2d27, {1|U, {0x10c7}}},</div><div class='del'>-  {0x2d2d, {1|U, {0x10cd}}},</div><div class='del'>-  {0xa641, {1|U, {0xa640}}},</div><div class='del'>-  {0xa643, {1|U, {0xa642}}},</div><div class='del'>-  {0xa645, {1|U, {0xa644}}},</div><div class='del'>-  {0xa647, {1|U, {0xa646}}},</div><div class='del'>-  {0xa649, {1|U, {0xa648}}},</div><div class='del'>-  {0xa64b, {2|U, {0xa64a, 0x1c88}}},</div><div class='del'>-  {0xa64d, {1|U, {0xa64c}}},</div><div class='del'>-  {0xa64f, {1|U, {0xa64e}}},</div><div class='del'>-  {0xa651, {1|U, {0xa650}}},</div><div class='del'>-  {0xa653, {1|U, {0xa652}}},</div><div class='del'>-  {0xa655, {1|U, {0xa654}}},</div><div class='del'>-  {0xa657, {1|U, {0xa656}}},</div><div class='del'>-  {0xa659, {1|U, {0xa658}}},</div><div class='del'>-  {0xa65b, {1|U, {0xa65a}}},</div><div class='del'>-  {0xa65d, {1|U, {0xa65c}}},</div><div class='del'>-  {0xa65f, {1|U, {0xa65e}}},</div><div class='del'>-  {0xa661, {1|U, {0xa660}}},</div><div class='del'>-  {0xa663, {1|U, {0xa662}}},</div><div class='del'>-  {0xa665, {1|U, {0xa664}}},</div><div class='del'>-  {0xa667, {1|U, {0xa666}}},</div><div class='del'>-  {0xa669, {1|U, {0xa668}}},</div><div class='del'>-  {0xa66b, {1|U, {0xa66a}}},</div><div class='del'>-  {0xa66d, {1|U, {0xa66c}}},</div><div class='del'>-  {0xa681, {1|U, {0xa680}}},</div><div class='del'>-  {0xa683, {1|U, {0xa682}}},</div><div class='del'>-  {0xa685, {1|U, {0xa684}}},</div><div class='del'>-  {0xa687, {1|U, {0xa686}}},</div><div class='del'>-  {0xa689, {1|U, {0xa688}}},</div><div class='del'>-  {0xa68b, {1|U, {0xa68a}}},</div><div class='del'>-  {0xa68d, {1|U, {0xa68c}}},</div><div class='del'>-  {0xa68f, {1|U, {0xa68e}}},</div><div class='del'>-  {0xa691, {1|U, {0xa690}}},</div><div class='del'>-  {0xa693, {1|U, {0xa692}}},</div><div class='del'>-  {0xa695, {1|U, {0xa694}}},</div><div class='del'>-  {0xa697, {1|U, {0xa696}}},</div><div class='del'>-  {0xa699, {1|U, {0xa698}}},</div><div class='del'>-  {0xa69b, {1|U, {0xa69a}}},</div><div class='del'>-  {0xa723, {1|U, {0xa722}}},</div><div class='del'>-  {0xa725, {1|U, {0xa724}}},</div><div class='del'>-  {0xa727, {1|U, {0xa726}}},</div><div class='del'>-  {0xa729, {1|U, {0xa728}}},</div><div class='del'>-  {0xa72b, {1|U, {0xa72a}}},</div><div class='del'>-  {0xa72d, {1|U, {0xa72c}}},</div><div class='del'>-  {0xa72f, {1|U, {0xa72e}}},</div><div class='del'>-  {0xa733, {1|U, {0xa732}}},</div><div class='del'>-  {0xa735, {1|U, {0xa734}}},</div><div class='del'>-  {0xa737, {1|U, {0xa736}}},</div><div class='del'>-  {0xa739, {1|U, {0xa738}}},</div><div class='del'>-  {0xa73b, {1|U, {0xa73a}}},</div><div class='del'>-  {0xa73d, {1|U, {0xa73c}}},</div><div class='del'>-  {0xa73f, {1|U, {0xa73e}}},</div><div class='del'>-  {0xa741, {1|U, {0xa740}}},</div><div class='del'>-  {0xa743, {1|U, {0xa742}}},</div><div class='del'>-  {0xa745, {1|U, {0xa744}}},</div><div class='del'>-  {0xa747, {1|U, {0xa746}}},</div><div class='del'>-  {0xa749, {1|U, {0xa748}}},</div><div class='del'>-  {0xa74b, {1|U, {0xa74a}}},</div><div class='del'>-  {0xa74d, {1|U, {0xa74c}}},</div><div class='del'>-  {0xa74f, {1|U, {0xa74e}}},</div><div class='del'>-  {0xa751, {1|U, {0xa750}}},</div><div class='del'>-  {0xa753, {1|U, {0xa752}}},</div><div class='del'>-  {0xa755, {1|U, {0xa754}}},</div><div class='del'>-  {0xa757, {1|U, {0xa756}}},</div><div class='del'>-  {0xa759, {1|U, {0xa758}}},</div><div class='del'>-  {0xa75b, {1|U, {0xa75a}}},</div><div class='del'>-  {0xa75d, {1|U, {0xa75c}}},</div><div class='del'>-  {0xa75f, {1|U, {0xa75e}}},</div><div class='del'>-  {0xa761, {1|U, {0xa760}}},</div><div class='del'>-  {0xa763, {1|U, {0xa762}}},</div><div class='del'>-  {0xa765, {1|U, {0xa764}}},</div><div class='del'>-  {0xa767, {1|U, {0xa766}}},</div><div class='del'>-  {0xa769, {1|U, {0xa768}}},</div><div class='del'>-  {0xa76b, {1|U, {0xa76a}}},</div><div class='del'>-  {0xa76d, {1|U, {0xa76c}}},</div><div class='del'>-  {0xa76f, {1|U, {0xa76e}}},</div><div class='del'>-  {0xa77a, {1|U, {0xa779}}},</div><div class='del'>-  {0xa77c, {1|U, {0xa77b}}},</div><div class='del'>-  {0xa77f, {1|U, {0xa77e}}},</div><div class='del'>-  {0xa781, {1|U, {0xa780}}},</div><div class='del'>-  {0xa783, {1|U, {0xa782}}},</div><div class='del'>-  {0xa785, {1|U, {0xa784}}},</div><div class='del'>-  {0xa787, {1|U, {0xa786}}},</div><div class='del'>-  {0xa78c, {1|U, {0xa78b}}},</div><div class='del'>-  {0xa791, {1|U, {0xa790}}},</div><div class='del'>-  {0xa793, {1|U, {0xa792}}},</div><div class='del'>-  {0xa797, {1|U, {0xa796}}},</div><div class='del'>-  {0xa799, {1|U, {0xa798}}},</div><div class='del'>-  {0xa79b, {1|U, {0xa79a}}},</div><div class='del'>-  {0xa79d, {1|U, {0xa79c}}},</div><div class='del'>-  {0xa79f, {1|U, {0xa79e}}},</div><div class='del'>-  {0xa7a1, {1|U, {0xa7a0}}},</div><div class='del'>-  {0xa7a3, {1|U, {0xa7a2}}},</div><div class='del'>-  {0xa7a5, {1|U, {0xa7a4}}},</div><div class='del'>-  {0xa7a7, {1|U, {0xa7a6}}},</div><div class='del'>-  {0xa7a9, {1|U, {0xa7a8}}},</div><div class='del'>-  {0xa7b5, {1|U, {0xa7b4}}},</div><div class='del'>-  {0xa7b7, {1|U, {0xa7b6}}},</div><div class='del'>-  {0xa7b9, {1|U, {0xa7b8}}},</div><div class='del'>-  {0xab53, {1|U, {0xa7b3}}},</div><div class='del'>-  {0xff41, {1|U, {0xff21}}},</div><div class='del'>-  {0xff42, {1|U, {0xff22}}},</div><div class='del'>-  {0xff43, {1|U, {0xff23}}},</div><div class='del'>-  {0xff44, {1|U, {0xff24}}},</div><div class='del'>-  {0xff45, {1|U, {0xff25}}},</div><div class='del'>-  {0xff46, {1|U, {0xff26}}},</div><div class='del'>-  {0xff47, {1|U, {0xff27}}},</div><div class='del'>-  {0xff48, {1|U, {0xff28}}},</div><div class='del'>-  {0xff49, {1|U, {0xff29}}},</div><div class='del'>-  {0xff4a, {1|U, {0xff2a}}},</div><div class='del'>-  {0xff4b, {1|U, {0xff2b}}},</div><div class='del'>-  {0xff4c, {1|U, {0xff2c}}},</div><div class='del'>-  {0xff4d, {1|U, {0xff2d}}},</div><div class='del'>-  {0xff4e, {1|U, {0xff2e}}},</div><div class='del'>-  {0xff4f, {1|U, {0xff2f}}},</div><div class='del'>-  {0xff50, {1|U, {0xff30}}},</div><div class='del'>-  {0xff51, {1|U, {0xff31}}},</div><div class='del'>-  {0xff52, {1|U, {0xff32}}},</div><div class='del'>-  {0xff53, {1|U, {0xff33}}},</div><div class='del'>-  {0xff54, {1|U, {0xff34}}},</div><div class='del'>-  {0xff55, {1|U, {0xff35}}},</div><div class='del'>-  {0xff56, {1|U, {0xff36}}},</div><div class='del'>-  {0xff57, {1|U, {0xff37}}},</div><div class='del'>-  {0xff58, {1|U, {0xff38}}},</div><div class='del'>-  {0xff59, {1|U, {0xff39}}},</div><div class='del'>-  {0xff5a, {1|U, {0xff3a}}},</div><div class='del'>-  {0x10428, {1|U, {0x10400}}},</div><div class='del'>-  {0x10429, {1|U, {0x10401}}},</div><div class='del'>-  {0x1042a, {1|U, {0x10402}}},</div><div class='del'>-  {0x1042b, {1|U, {0x10403}}},</div><div class='del'>-  {0x1042c, {1|U, {0x10404}}},</div><div class='del'>-  {0x1042d, {1|U, {0x10405}}},</div><div class='del'>-  {0x1042e, {1|U, {0x10406}}},</div><div class='del'>-  {0x1042f, {1|U, {0x10407}}},</div><div class='del'>-  {0x10430, {1|U, {0x10408}}},</div><div class='del'>-  {0x10431, {1|U, {0x10409}}},</div><div class='del'>-  {0x10432, {1|U, {0x1040a}}},</div><div class='del'>-  {0x10433, {1|U, {0x1040b}}},</div><div class='del'>-  {0x10434, {1|U, {0x1040c}}},</div><div class='del'>-  {0x10435, {1|U, {0x1040d}}},</div><div class='del'>-  {0x10436, {1|U, {0x1040e}}},</div><div class='del'>-  {0x10437, {1|U, {0x1040f}}},</div><div class='del'>-  {0x10438, {1|U, {0x10410}}},</div><div class='del'>-  {0x10439, {1|U, {0x10411}}},</div><div class='del'>-  {0x1043a, {1|U, {0x10412}}},</div><div class='del'>-  {0x1043b, {1|U, {0x10413}}},</div><div class='del'>-  {0x1043c, {1|U, {0x10414}}},</div><div class='del'>-  {0x1043d, {1|U, {0x10415}}},</div><div class='del'>-  {0x1043e, {1|U, {0x10416}}},</div><div class='del'>-  {0x1043f, {1|U, {0x10417}}},</div><div class='del'>-  {0x10440, {1|U, {0x10418}}},</div><div class='del'>-  {0x10441, {1|U, {0x10419}}},</div><div class='del'>-  {0x10442, {1|U, {0x1041a}}},</div><div class='del'>-  {0x10443, {1|U, {0x1041b}}},</div><div class='del'>-  {0x10444, {1|U, {0x1041c}}},</div><div class='del'>-  {0x10445, {1|U, {0x1041d}}},</div><div class='del'>-  {0x10446, {1|U, {0x1041e}}},</div><div class='del'>-  {0x10447, {1|U, {0x1041f}}},</div><div class='del'>-  {0x10448, {1|U, {0x10420}}},</div><div class='del'>-  {0x10449, {1|U, {0x10421}}},</div><div class='del'>-  {0x1044a, {1|U, {0x10422}}},</div><div class='del'>-  {0x1044b, {1|U, {0x10423}}},</div><div class='del'>-  {0x1044c, {1|U, {0x10424}}},</div><div class='del'>-  {0x1044d, {1|U, {0x10425}}},</div><div class='del'>-  {0x1044e, {1|U, {0x10426}}},</div><div class='del'>-  {0x1044f, {1|U, {0x10427}}},</div><div class='del'>-  {0x104d8, {1|U, {0x104b0}}},</div><div class='del'>-  {0x104d9, {1|U, {0x104b1}}},</div><div class='del'>-  {0x104da, {1|U, {0x104b2}}},</div><div class='del'>-  {0x104db, {1|U, {0x104b3}}},</div><div class='del'>-  {0x104dc, {1|U, {0x104b4}}},</div><div class='del'>-  {0x104dd, {1|U, {0x104b5}}},</div><div class='del'>-  {0x104de, {1|U, {0x104b6}}},</div><div class='del'>-  {0x104df, {1|U, {0x104b7}}},</div><div class='del'>-  {0x104e0, {1|U, {0x104b8}}},</div><div class='del'>-  {0x104e1, {1|U, {0x104b9}}},</div><div class='del'>-  {0x104e2, {1|U, {0x104ba}}},</div><div class='del'>-  {0x104e3, {1|U, {0x104bb}}},</div><div class='del'>-  {0x104e4, {1|U, {0x104bc}}},</div><div class='del'>-  {0x104e5, {1|U, {0x104bd}}},</div><div class='del'>-  {0x104e6, {1|U, {0x104be}}},</div><div class='del'>-  {0x104e7, {1|U, {0x104bf}}},</div><div class='del'>-  {0x104e8, {1|U, {0x104c0}}},</div><div class='del'>-  {0x104e9, {1|U, {0x104c1}}},</div><div class='del'>-  {0x104ea, {1|U, {0x104c2}}},</div><div class='del'>-  {0x104eb, {1|U, {0x104c3}}},</div><div class='del'>-  {0x104ec, {1|U, {0x104c4}}},</div><div class='del'>-  {0x104ed, {1|U, {0x104c5}}},</div><div class='del'>-  {0x104ee, {1|U, {0x104c6}}},</div><div class='del'>-  {0x104ef, {1|U, {0x104c7}}},</div><div class='del'>-  {0x104f0, {1|U, {0x104c8}}},</div><div class='del'>-  {0x104f1, {1|U, {0x104c9}}},</div><div class='del'>-  {0x104f2, {1|U, {0x104ca}}},</div><div class='del'>-  {0x104f3, {1|U, {0x104cb}}},</div><div class='del'>-  {0x104f4, {1|U, {0x104cc}}},</div><div class='del'>-  {0x104f5, {1|U, {0x104cd}}},</div><div class='del'>-  {0x104f6, {1|U, {0x104ce}}},</div><div class='del'>-  {0x104f7, {1|U, {0x104cf}}},</div><div class='del'>-  {0x104f8, {1|U, {0x104d0}}},</div><div class='del'>-  {0x104f9, {1|U, {0x104d1}}},</div><div class='del'>-  {0x104fa, {1|U, {0x104d2}}},</div><div class='del'>-  {0x104fb, {1|U, {0x104d3}}},</div><div class='del'>-  {0x10cc0, {1|U, {0x10c80}}},</div><div class='del'>-  {0x10cc1, {1|U, {0x10c81}}},</div><div class='del'>-  {0x10cc2, {1|U, {0x10c82}}},</div><div class='del'>-  {0x10cc3, {1|U, {0x10c83}}},</div><div class='del'>-  {0x10cc4, {1|U, {0x10c84}}},</div><div class='del'>-  {0x10cc5, {1|U, {0x10c85}}},</div><div class='del'>-  {0x10cc6, {1|U, {0x10c86}}},</div><div class='del'>-  {0x10cc7, {1|U, {0x10c87}}},</div><div class='del'>-  {0x10cc8, {1|U, {0x10c88}}},</div><div class='del'>-  {0x10cc9, {1|U, {0x10c89}}},</div><div class='del'>-  {0x10cca, {1|U, {0x10c8a}}},</div><div class='del'>-  {0x10ccb, {1|U, {0x10c8b}}},</div><div class='del'>-  {0x10ccc, {1|U, {0x10c8c}}},</div><div class='del'>-  {0x10ccd, {1|U, {0x10c8d}}},</div><div class='del'>-  {0x10cce, {1|U, {0x10c8e}}},</div><div class='del'>-  {0x10ccf, {1|U, {0x10c8f}}},</div><div class='del'>-  {0x10cd0, {1|U, {0x10c90}}},</div><div class='del'>-  {0x10cd1, {1|U, {0x10c91}}},</div><div class='del'>-  {0x10cd2, {1|U, {0x10c92}}},</div><div class='del'>-  {0x10cd3, {1|U, {0x10c93}}},</div><div class='del'>-  {0x10cd4, {1|U, {0x10c94}}},</div><div class='del'>-  {0x10cd5, {1|U, {0x10c95}}},</div><div class='del'>-  {0x10cd6, {1|U, {0x10c96}}},</div><div class='del'>-  {0x10cd7, {1|U, {0x10c97}}},</div><div class='del'>-  {0x10cd8, {1|U, {0x10c98}}},</div><div class='del'>-  {0x10cd9, {1|U, {0x10c99}}},</div><div class='del'>-  {0x10cda, {1|U, {0x10c9a}}},</div><div class='del'>-  {0x10cdb, {1|U, {0x10c9b}}},</div><div class='del'>-  {0x10cdc, {1|U, {0x10c9c}}},</div><div class='del'>-  {0x10cdd, {1|U, {0x10c9d}}},</div><div class='del'>-  {0x10cde, {1|U, {0x10c9e}}},</div><div class='del'>-  {0x10cdf, {1|U, {0x10c9f}}},</div><div class='del'>-  {0x10ce0, {1|U, {0x10ca0}}},</div><div class='del'>-  {0x10ce1, {1|U, {0x10ca1}}},</div><div class='del'>-  {0x10ce2, {1|U, {0x10ca2}}},</div><div class='del'>-  {0x10ce3, {1|U, {0x10ca3}}},</div><div class='del'>-  {0x10ce4, {1|U, {0x10ca4}}},</div><div class='del'>-  {0x10ce5, {1|U, {0x10ca5}}},</div><div class='del'>-  {0x10ce6, {1|U, {0x10ca6}}},</div><div class='del'>-  {0x10ce7, {1|U, {0x10ca7}}},</div><div class='del'>-  {0x10ce8, {1|U, {0x10ca8}}},</div><div class='del'>-  {0x10ce9, {1|U, {0x10ca9}}},</div><div class='del'>-  {0x10cea, {1|U, {0x10caa}}},</div><div class='del'>-  {0x10ceb, {1|U, {0x10cab}}},</div><div class='del'>-  {0x10cec, {1|U, {0x10cac}}},</div><div class='del'>-  {0x10ced, {1|U, {0x10cad}}},</div><div class='del'>-  {0x10cee, {1|U, {0x10cae}}},</div><div class='del'>-  {0x10cef, {1|U, {0x10caf}}},</div><div class='del'>-  {0x10cf0, {1|U, {0x10cb0}}},</div><div class='del'>-  {0x10cf1, {1|U, {0x10cb1}}},</div><div class='del'>-  {0x10cf2, {1|U, {0x10cb2}}},</div><div class='del'>-  {0x118c0, {1|U, {0x118a0}}},</div><div class='del'>-  {0x118c1, {1|U, {0x118a1}}},</div><div class='del'>-  {0x118c2, {1|U, {0x118a2}}},</div><div class='del'>-  {0x118c3, {1|U, {0x118a3}}},</div><div class='del'>-  {0x118c4, {1|U, {0x118a4}}},</div><div class='del'>-  {0x118c5, {1|U, {0x118a5}}},</div><div class='del'>-  {0x118c6, {1|U, {0x118a6}}},</div><div class='del'>-  {0x118c7, {1|U, {0x118a7}}},</div><div class='del'>-  {0x118c8, {1|U, {0x118a8}}},</div><div class='del'>-  {0x118c9, {1|U, {0x118a9}}},</div><div class='del'>-  {0x118ca, {1|U, {0x118aa}}},</div><div class='del'>-  {0x118cb, {1|U, {0x118ab}}},</div><div class='del'>-  {0x118cc, {1|U, {0x118ac}}},</div><div class='del'>-  {0x118cd, {1|U, {0x118ad}}},</div><div class='del'>-  {0x118ce, {1|U, {0x118ae}}},</div><div class='del'>-  {0x118cf, {1|U, {0x118af}}},</div><div class='del'>-  {0x118d0, {1|U, {0x118b0}}},</div><div class='del'>-  {0x118d1, {1|U, {0x118b1}}},</div><div class='del'>-  {0x118d2, {1|U, {0x118b2}}},</div><div class='del'>-  {0x118d3, {1|U, {0x118b3}}},</div><div class='del'>-  {0x118d4, {1|U, {0x118b4}}},</div><div class='del'>-  {0x118d5, {1|U, {0x118b5}}},</div><div class='del'>-  {0x118d6, {1|U, {0x118b6}}},</div><div class='del'>-  {0x118d7, {1|U, {0x118b7}}},</div><div class='del'>-  {0x118d8, {1|U, {0x118b8}}},</div><div class='del'>-  {0x118d9, {1|U, {0x118b9}}},</div><div class='del'>-  {0x118da, {1|U, {0x118ba}}},</div><div class='del'>-  {0x118db, {1|U, {0x118bb}}},</div><div class='del'>-  {0x118dc, {1|U, {0x118bc}}},</div><div class='del'>-  {0x118dd, {1|U, {0x118bd}}},</div><div class='del'>-  {0x118de, {1|U, {0x118be}}},</div><div class='del'>-  {0x118df, {1|U, {0x118bf}}},</div><div class='del'>-  {0x16e60, {1|U, {0x16e40}}},</div><div class='del'>-  {0x16e61, {1|U, {0x16e41}}},</div><div class='del'>-  {0x16e62, {1|U, {0x16e42}}},</div><div class='del'>-  {0x16e63, {1|U, {0x16e43}}},</div><div class='del'>-  {0x16e64, {1|U, {0x16e44}}},</div><div class='del'>-  {0x16e65, {1|U, {0x16e45}}},</div><div class='del'>-  {0x16e66, {1|U, {0x16e46}}},</div><div class='del'>-  {0x16e67, {1|U, {0x16e47}}},</div><div class='del'>-  {0x16e68, {1|U, {0x16e48}}},</div><div class='del'>-  {0x16e69, {1|U, {0x16e49}}},</div><div class='del'>-  {0x16e6a, {1|U, {0x16e4a}}},</div><div class='del'>-  {0x16e6b, {1|U, {0x16e4b}}},</div><div class='del'>-  {0x16e6c, {1|U, {0x16e4c}}},</div><div class='del'>-  {0x16e6d, {1|U, {0x16e4d}}},</div><div class='del'>-  {0x16e6e, {1|U, {0x16e4e}}},</div><div class='del'>-  {0x16e6f, {1|U, {0x16e4f}}},</div><div class='del'>-  {0x16e70, {1|U, {0x16e50}}},</div><div class='del'>-  {0x16e71, {1|U, {0x16e51}}},</div><div class='del'>-  {0x16e72, {1|U, {0x16e52}}},</div><div class='del'>-  {0x16e73, {1|U, {0x16e53}}},</div><div class='del'>-  {0x16e74, {1|U, {0x16e54}}},</div><div class='del'>-  {0x16e75, {1|U, {0x16e55}}},</div><div class='del'>-  {0x16e76, {1|U, {0x16e56}}},</div><div class='del'>-  {0x16e77, {1|U, {0x16e57}}},</div><div class='del'>-  {0x16e78, {1|U, {0x16e58}}},</div><div class='del'>-  {0x16e79, {1|U, {0x16e59}}},</div><div class='del'>-  {0x16e7a, {1|U, {0x16e5a}}},</div><div class='del'>-  {0x16e7b, {1|U, {0x16e5b}}},</div><div class='del'>-  {0x16e7c, {1|U, {0x16e5c}}},</div><div class='del'>-  {0x16e7d, {1|U, {0x16e5d}}},</div><div class='del'>-  {0x16e7e, {1|U, {0x16e5e}}},</div><div class='del'>-  {0x16e7f, {1|U, {0x16e5f}}},</div><div class='del'>-  {0x1e922, {1|U, {0x1e900}}},</div><div class='del'>-  {0x1e923, {1|U, {0x1e901}}},</div><div class='del'>-  {0x1e924, {1|U, {0x1e902}}},</div><div class='del'>-  {0x1e925, {1|U, {0x1e903}}},</div><div class='del'>-  {0x1e926, {1|U, {0x1e904}}},</div><div class='del'>-  {0x1e927, {1|U, {0x1e905}}},</div><div class='del'>-  {0x1e928, {1|U, {0x1e906}}},</div><div class='del'>-  {0x1e929, {1|U, {0x1e907}}},</div><div class='del'>-  {0x1e92a, {1|U, {0x1e908}}},</div><div class='del'>-  {0x1e92b, {1|U, {0x1e909}}},</div><div class='del'>-  {0x1e92c, {1|U, {0x1e90a}}},</div><div class='del'>-  {0x1e92d, {1|U, {0x1e90b}}},</div><div class='del'>-  {0x1e92e, {1|U, {0x1e90c}}},</div><div class='del'>-  {0x1e92f, {1|U, {0x1e90d}}},</div><div class='del'>-  {0x1e930, {1|U, {0x1e90e}}},</div><div class='del'>-  {0x1e931, {1|U, {0x1e90f}}},</div><div class='del'>-  {0x1e932, {1|U, {0x1e910}}},</div><div class='del'>-  {0x1e933, {1|U, {0x1e911}}},</div><div class='del'>-  {0x1e934, {1|U, {0x1e912}}},</div><div class='del'>-  {0x1e935, {1|U, {0x1e913}}},</div><div class='del'>-  {0x1e936, {1|U, {0x1e914}}},</div><div class='del'>-  {0x1e937, {1|U, {0x1e915}}},</div><div class='del'>-  {0x1e938, {1|U, {0x1e916}}},</div><div class='del'>-  {0x1e939, {1|U, {0x1e917}}},</div><div class='del'>-  {0x1e93a, {1|U, {0x1e918}}},</div><div class='del'>-  {0x1e93b, {1|U, {0x1e919}}},</div><div class='del'>-  {0x1e93c, {1|U, {0x1e91a}}},</div><div class='del'>-  {0x1e93d, {1|U, {0x1e91b}}},</div><div class='del'>-  {0x1e93e, {1|U, {0x1e91c}}},</div><div class='del'>-  {0x1e93f, {1|U, {0x1e91d}}},</div><div class='del'>-  {0x1e940, {1|U, {0x1e91e}}},</div><div class='del'>-  {0x1e941, {1|U, {0x1e91f}}},</div><div class='del'>-  {0x1e942, {1|U, {0x1e920}}},</div><div class='del'>-  {0x1e943, {1|U, {0x1e921}}},</div><div class='del'>-#define CaseUnfold_11_Locale (*(CaseUnfold_11_Type (*)[1])(CaseUnfold_11_Table+1345))</div><div class='del'>-  {0x0069, {1|U, {0x0049}}},</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* ANSI-C code produced by gperf version 3.1 */</div><div class='del'>-/* Command-line: gperf -7 -k1,2,3 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseUnfold_11_hash -N onigenc_unicode_CaseUnfold_11_lookup -n  */</div><div class='del'>-</div><div class='del'>-/* maximum key range = 2596, duplicates = 0 */</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-__inline</div><div class='del'>-#else</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-inline</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-/*ARGSUSED*/</div><div class='del'>-static unsigned int</div><div class='del'>-onigenc_unicode_CaseUnfold_11_hash(const OnigCodePoint code)</div><div class='del'>-{</div><div class='del'>-  static const unsigned short asso_values[] =</div><div class='del'>-    {</div><div class='del'>-         1, 2599,    2,    4,    4,  404,    9,  355,  197,   84,</div><div class='del'>-        40,   20,    2,    3,  626,  910, 2599, 2599, 2599, 2599,</div><div class='del'>-      2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599,  112,</div><div class='del'>-      2599, 2599, 2599, 2599, 2599, 2599, 2599,  120, 2599, 2599,</div><div class='del'>-      2599, 2599, 2599,    1, 2599, 2599, 2599, 2599, 2599, 2599,</div><div class='del'>-      2599, 2599, 2599,  200, 2599, 2599, 2599, 2599, 2599, 2599,</div><div class='del'>-      2599, 2599,   11, 2599,    7,    8,  308,  860,  161, 1042,</div><div class='del'>-       651,  245,   12, 1162,   42, 1548,   14,   15,  182, 1726,</div><div class='del'>-       225,  870,   87,  721,  142, 1298,   73, 1286,    9, 1346,</div><div class='del'>-        16, 1478,  267,   10,  177,  614,  226, 1653,  127, 1193,</div><div class='del'>-       212,  918,   80,  900,  118, 1002,  146, 1122,  113, 1274,</div><div class='del'>-       345,  882,  240, 1053, 1540,  961, 1675,  734, 1609,  832,</div><div class='del'>-       238,  757, 1680,  945, 1741, 1246, 1584, 1100, 1707,  931,</div><div class='del'>-       530,  558,  977,  547, 1222,  605, 1184,  584, 1575,  488,</div><div class='del'>-      1598,  456, 1501,  423, 1161,  411, 1145,  276, 1451,  291,</div><div class='del'>-      1447,  321, 1302,  201, 1444,   85, 1432,   70, 1405,  100,</div><div class='del'>-      1690,  129, 1394,    1, 1378,   25, 1362,   35,  779,   55,</div><div class='del'>-      1118,   45, 1205,  160, 1147,  227, 1569,  175, 1317,  700,</div><div class='del'>-       994,  367, 1412,  709, 1463, 1032, 1420,  745, 1226,  909,</div><div class='del'>-      1133,  810,  197, 1023</div><div class='del'>-    };</div><div class='del'>-  return asso_values[bits_of(code, 2)+66] + asso_values[bits_of(code, 1)+4] + asso_values[bits_of(code, 0)];</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const CodePointList3 *</div><div class='del'>-onigenc_unicode_CaseUnfold_11_lookup(const OnigCodePoint code)</div><div class='del'>-{</div><div class='del'>-  enum</div><div class='del'>-    {</div><div class='del'>-      MIN_CODE_VALUE = 0x61,</div><div class='del'>-      MAX_CODE_VALUE = 0x1e943,</div><div class='del'>-      TOTAL_KEYWORDS = 1346,</div><div class='del'>-      MIN_WORD_LENGTH = 3,</div><div class='del'>-      MAX_WORD_LENGTH = 3,</div><div class='del'>-      MIN_HASH_VALUE = 3,</div><div class='del'>-      MAX_HASH_VALUE = 2598</div><div class='del'>-    };</div><div class='del'>-</div><div class='del'>-  static const short wordlist[] =</div><div class='del'>-    {</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x13e1*/ 588,</div><div class='del'>-      /*0x0461*/ 339,</div><div class='del'>-      /*0x04e1*/ 399,</div><div class='del'>-      /*0x0061*/ 0,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104e1*/ 1169,</div><div class='del'>-      /*0x1e61*/ 659,</div><div class='del'>-      /*0x1ee1*/ 718,</div><div class='del'>-      /*0x0161*/ 102,</div><div class='del'>-      /*0x2ce1*/ 950,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x049b*/ 364,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x24e1*/ 838,</div><div class='del'>-      /*0x1e1b*/ 624,</div><div class='del'>-      /*0x048b*/ 356,</div><div class='del'>-      /*0x011b*/ 69,</div><div class='del'>-      /*0x2c9b*/ 915,</div><div class='del'>-      /*0x03e1*/ 279,</div><div class='del'>-      /*0x1e0b*/ 616,</div><div class='del'>-      /*0x1e8b*/ 680,</div><div class='del'>-      /*0x010b*/ 61,</div><div class='del'>-      /*0x2c8b*/ 907,</div><div class='del'>-      /*0x13e3*/ 590,</div><div class='del'>-      /*0x0463*/ 340,</div><div class='del'>-      /*0x04e3*/ 400,</div><div class='del'>-      /*0x0063*/ 2,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104e3*/ 1171,</div><div class='del'>-      /*0x1e63*/ 660,</div><div class='del'>-      /*0x1ee3*/ 719,</div><div class='del'>-      /*0x0163*/ 103,</div><div class='del'>-      /*0x2ce3*/ 951,</div><div class='del'>-      /*0x13e5*/ 592,</div><div class='del'>-      /*0x0465*/ 341,</div><div class='del'>-      /*0x04e5*/ 401,</div><div class='del'>-      /*0x0065*/ 4,</div><div class='del'>-      /*0x24e3*/ 840,</div><div class='del'>-      /*0x104e5*/ 1173,</div><div class='del'>-      /*0x1e65*/ 661,</div><div class='del'>-      /*0x1ee5*/ 720,</div><div class='del'>-      /*0x0165*/ 104,</div><div class='del'>-      /*0x03e3*/ 280,</div><div class='del'>-      /*0x13e9*/ 596,</div><div class='del'>-      /*0x0469*/ 343,</div><div class='del'>-      /*0x04e9*/ 403,</div><div class='del'>-      /*0x0069*/ 1345,</div><div class='del'>-      /*0x24e5*/ 842,</div><div class='del'>-      /*0x104e9*/ 1177,</div><div class='del'>-      /*0x1e69*/ 663,</div><div class='del'>-      /*0x1ee9*/ 722,</div><div class='del'>-      /*0x0169*/ 106,</div><div class='del'>-      /*0x03e5*/ 281,</div><div class='del'>-      /*0x13e7*/ 594,</div><div class='del'>-      /*0x0467*/ 342,</div><div class='del'>-      /*0x04e7*/ 402,</div><div class='del'>-      /*0x0067*/ 6,</div><div class='del'>-      /*0x24e9*/ 846,</div><div class='del'>-      /*0x104e7*/ 1175,</div><div class='del'>-      /*0x1e67*/ 662,</div><div class='del'>-      /*0x1ee7*/ 721,</div><div class='del'>-      /*0x0167*/ 105,</div><div class='del'>-      /*0x03e9*/ 283,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x24e7*/ 844,</div><div class='del'>-      /*0x13db*/ 582,</div><div class='del'>-      /*0x045b*/ 334,</div><div class='del'>-      /*0x04db*/ 396,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03e7*/ 282,</div><div class='del'>-      /*0x104db*/ 1163,</div><div class='del'>-      /*0x1e5b*/ 656,</div><div class='del'>-      /*0x1edb*/ 715,</div><div class='del'>-      /*0x015b*/ 99,</div><div class='del'>-      /*0x2cdb*/ 947,</div><div class='del'>-      /*0x13a4*/ 527,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x24db*/ 832,</div><div class='del'>-      /*0x13d9*/ 580,</div><div class='del'>-      /*0x0459*/ 332,</div><div class='del'>-      /*0x04d9*/ 395,</div><div class='del'>-      /*0xa761*/ 1062,</div><div class='del'>-      /*0x03db*/ 276,</div><div class='del'>-      /*0x104d9*/ 1161,</div><div class='del'>-      /*0x1e59*/ 655,</div><div class='del'>-      /*0x1ed9*/ 714,</div><div class='del'>-      /*0x0159*/ 98,</div><div class='del'>-      /*0x2cd9*/ 946,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x028a*/ 229,</div><div class='del'>-      /*0x028b*/ 230,</div><div class='del'>-      /*0x24d9*/ 830,</div><div class='del'>-      /*0x13dd*/ 584,</div><div class='del'>-      /*0x045d*/ 336,</div><div class='del'>-      /*0x04dd*/ 397,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03d9*/ 275,</div><div class='del'>-      /*0x104dd*/ 1165,</div><div class='del'>-      /*0x1e5d*/ 657,</div><div class='del'>-      /*0x1edd*/ 716,</div><div class='del'>-      /*0x015d*/ 100,</div><div class='del'>-      /*0x2cdd*/ 948,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa763*/ 1063,</div><div class='del'>-      /*0x13aa*/ 533,</div><div class='del'>-      /*0x24dd*/ 834,</div><div class='del'>-      /*0x10ce1*/ 1229,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1042a*/ 1122,</div><div class='del'>-      /*0x13a6*/ 529,</div><div class='del'>-      /*0x03dd*/ 277,</div><div class='del'>-      /*0x10e1*/ 494,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa765*/ 1064,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0288*/ 227,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13a0*/ 523,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13df*/ 586,</div><div class='del'>-      /*0x045f*/ 338,</div><div class='del'>-      /*0x04df*/ 398,</div><div class='del'>-      /*0xa769*/ 1066,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104df*/ 1167,</div><div class='del'>-      /*0x1e5f*/ 658,</div><div class='del'>-      /*0x1edf*/ 717,</div><div class='del'>-      /*0x015f*/ 101,</div><div class='del'>-      /*0x2cdf*/ 949,</div><div class='del'>-      /*0x10ce3*/ 1231,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa767*/ 1065,</div><div class='del'>-      /*0x24df*/ 836,</div><div class='del'>-      /*0x10e3*/ 496,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13a8*/ 531,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03df*/ 278,</div><div class='del'>-      /*0x10ce5*/ 1233,</div><div class='del'>-      /*0x10428*/ 1120,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x10e5*/ 498,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa75b*/ 1059,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10ce9*/ 1237,</div><div class='del'>-      /*0x13eb*/ 598,</div><div class='del'>-      /*0x046b*/ 344,</div><div class='del'>-      /*0x04eb*/ 404,</div><div class='del'>-      /*0x006b*/ 9,</div><div class='del'>-      /*0x10e9*/ 502,</div><div class='del'>-      /*0x104eb*/ 1179,</div><div class='del'>-      /*0x1e6b*/ 664,</div><div class='del'>-      /*0x1eeb*/ 723,</div><div class='del'>-      /*0x016b*/ 107,</div><div class='del'>-      /*0x10ce7*/ 1235,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa759*/ 1058,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10e7*/ 500,</div><div class='del'>-      /*0x13ef*/ 602,</div><div class='del'>-      /*0x046f*/ 346,</div><div class='del'>-      /*0x04ef*/ 406,</div><div class='del'>-      /*0x006f*/ 13,</div><div class='del'>-      /*0x03eb*/ 284,</div><div class='del'>-      /*0x104ef*/ 1183,</div><div class='del'>-      /*0x1e6f*/ 666,</div><div class='del'>-      /*0x1eef*/ 725,</div><div class='del'>-      /*0x016f*/ 109,</div><div class='del'>-      /*0x10cdb*/ 1223,</div><div class='del'>-      /*0x2d16*/ 977,</div><div class='del'>-      /*0x2d1b*/ 982,</div><div class='del'>-      /*0xa75d*/ 1060,</div><div class='del'>-      /*0x2d06*/ 961,</div><div class='del'>-      /*0x10db*/ 488,</div><div class='del'>-      /*0x2d0a*/ 965,</div><div class='del'>-      /*0x2d0b*/ 966,</div><div class='del'>-      /*0x2d18*/ 979,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03ef*/ 286,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0261*/ 210,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10cd9*/ 1221,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13d7*/ 578,</div><div class='del'>-      /*0x0457*/ 330,</div><div class='del'>-      /*0x04d7*/ 394,</div><div class='del'>-      /*0x10d9*/ 486,</div><div class='del'>-      /*0x017e*/ 116,</div><div class='del'>-      /*0x021b*/ 178,</div><div class='del'>-      /*0x1e57*/ 654,</div><div class='del'>-      /*0x1ed7*/ 713,</div><div class='del'>-      /*0x0157*/ 97,</div><div class='del'>-      /*0x2cd7*/ 945,</div><div class='del'>-      /*0x020b*/ 170,</div><div class='del'>-      /*0x13a2*/ 525,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10cdd*/ 1225,</div><div class='del'>-      /*0x24d7*/ 828,</div><div class='del'>-      /*0xa75f*/ 1061,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2d08*/ 963,</div><div class='del'>-      /*0x10dd*/ 490,</div><div class='del'>-      /*0x03d7*/ 274,</div><div class='del'>-      /*0x0263*/ 211,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x0292*/ 232,</div><div class='del'>-      /*0xa661*/ 1011,</div><div class='del'>-      /*0x13ed*/ 600,</div><div class='del'>-      /*0x046d*/ 345,</div><div class='del'>-      /*0x04ed*/ 405,</div><div class='del'>-      /*0x006d*/ 11,</div><div class='del'>-      /*0x0265*/ 212,</div><div class='del'>-      /*0x104ed*/ 1181,</div><div class='del'>-      /*0x1e6d*/ 665,</div><div class='del'>-      /*0x1eed*/ 724,</div><div class='del'>-      /*0x016d*/ 108,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x13b6*/ 545,</div><div class='del'>-      /*0x0436*/ 297,</div><div class='del'>-      /*0x13ae*/ 537,</div><div class='del'>-      /*0x0269*/ 215,</div><div class='del'>-      /*0x10436*/ 1134,</div><div class='del'>-      /*0x10cdf*/ 1227,</div><div class='del'>-      /*0x1042e*/ 1126,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03ed*/ 285,</div><div class='del'>-      /*0xa76b*/ 1067,</div><div class='del'>-      /*0x10df*/ 492,</div><div class='del'>-      /*0x2d14*/ 975,</div><div class='del'>-      /*0xa663*/ 1012,</div><div class='del'>-      /*0x1e05*/ 613,</div><div class='del'>-      /*0x1e85*/ 677,</div><div class='del'>-      /*0x0105*/ 58,</div><div class='del'>-      /*0x2c85*/ 904,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2d24*/ 991,</div><div class='del'>-      /*0x03b6*/ 250,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03ae*/ 243,</div><div class='del'>-      /*0xa665*/ 1013,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa76f*/ 1069,</div><div class='del'>-      /*0x2d10*/ 971,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x028c*/ 231,</div><div class='del'>-      /*0x025b*/ 207,</div><div class='del'>-      /*0x2c61*/ 894,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa669*/ 1015,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118db*/ 1274,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10ceb*/ 1239,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13d1*/ 572,</div><div class='del'>-      /*0x0451*/ 324,</div><div class='del'>-      /*0x04d1*/ 391,</div><div class='del'>-      /*0x10eb*/ 504,</div><div class='del'>-      /*0xa667*/ 1014,</div><div class='del'>-      /*0x0259*/ 206,</div><div class='del'>-      /*0x1e51*/ 651,</div><div class='del'>-      /*0x1ed1*/ 710,</div><div class='del'>-      /*0x0151*/ 94,</div><div class='del'>-      /*0x2cd1*/ 942,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118d9*/ 1272,</div><div class='del'>-      /*0xa757*/ 1057,</div><div class='del'>-      /*0x10cef*/ 1243,</div><div class='del'>-      /*0x24d1*/ 822,</div><div class='del'>-      /*0x13d3*/ 574,</div><div class='del'>-      /*0x0453*/ 326,</div><div class='del'>-      /*0x04d3*/ 392,</div><div class='del'>-      /*0x10ef*/ 508,</div><div class='del'>-      /*0xa65b*/ 1008,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e53*/ 652,</div><div class='del'>-      /*0x1ed3*/ 711,</div><div class='del'>-      /*0x0153*/ 95,</div><div class='del'>-      /*0x2cd3*/ 943,</div><div class='del'>-      /*0x2c65*/ 895,</div><div class='del'>-      /*0x118dd*/ 1276,</div><div class='del'>-      /*0x2d20*/ 987,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x24d3*/ 824,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xab53*/ 1093,</div><div class='del'>-      /*0x1f61*/ 775,</div><div class='del'>-      /*0x029e*/ 234,</div><div class='del'>-      /*0xa659*/ 1007,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0xa76d*/ 1068,</div><div class='del'>-      /*0x10cd7*/ 1219,</div><div class='del'>-      /*0x10fe*/ 521,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2d12*/ 973,</div><div class='del'>-      /*0x1f06*/ 740,</div><div class='del'>-      /*0x10d7*/ 484,</div><div class='del'>-      /*0x13d5*/ 576,</div><div class='del'>-      /*0x0455*/ 328,</div><div class='del'>-      /*0x04d5*/ 393,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa65d*/ 1009,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e55*/ 653,</div><div class='del'>-      /*0x1ed5*/ 712,</div><div class='del'>-      /*0x0155*/ 96,</div><div class='del'>-      /*0x2cd5*/ 944,</div><div class='del'>-      /*0x118df*/ 1278,</div><div class='del'>-      /*0x1f63*/ 777,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x24d5*/ 826,</div><div class='del'>-      /*0x2c5b*/ 890,</div><div class='del'>-      /*0x2d02*/ 957,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x10ced*/ 1241,</div><div class='del'>-      /*0x1f65*/ 779,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x13ac*/ 535,</div><div class='del'>-      /*0x10ed*/ 506,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1042c*/ 1124,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c59*/ 888,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2d1c*/ 983,</div><div class='del'>-      /*0xa65f*/ 1010,</div><div class='del'>-      /*0x01e1*/ 151,</div><div class='del'>-      /*0x026b*/ 217,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2d0c*/ 967,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1f67*/ 781,</div><div class='del'>-      /*0xa751*/ 1054,</div><div class='del'>-      /*0x03ac*/ 241,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c5d*/ 892,</div><div class='del'>-      /*0x13f3*/ 606,</div><div class='del'>-      /*0x0473*/ 348,</div><div class='del'>-      /*0x04f3*/ 408,</div><div class='del'>-      /*0x0073*/ 17,</div><div class='del'>-      /*0x026f*/ 219,</div><div class='del'>-      /*0x104f3*/ 1187,</div><div class='del'>-      /*0x1e73*/ 668,</div><div class='del'>-      /*0x1ef3*/ 727,</div><div class='del'>-      /*0x0173*/ 111,</div><div class='del'>-      /*0x2cf3*/ 954,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa753*/ 1055,</div><div class='del'>-      /*0x01e3*/ 152,</div><div class='del'>-      /*0x1f14*/ 746,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xa66b*/ 1016,</div><div class='del'>-      /*0x03f3*/ 288,</div><div class='del'>-      /*0x1f24*/ 752,</div><div class='del'>-      /*0x2d22*/ 989,</div><div class='del'>-      /*0x01e5*/ 153,</div><div class='del'>-      /*0x10cd1*/ 1213,</div><div class='del'>-      /*0x0280*/ 224,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1f10*/ 742,</div><div class='del'>-      /*0x10d1*/ 478,</div><div class='del'>-      /*0x0188*/ 120,</div><div class='del'>-      /*0x0257*/ 205,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01e9*/ 155,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2d0e*/ 969,</div><div class='del'>-      /*0x2d1e*/ 985,</div><div class='del'>-      /*0x118d7*/ 1270,</div><div class='del'>-      /*0x00e1*/ 26,</div><div class='del'>-      /*0x10cd3*/ 1215,</div><div class='del'>-      /*0x0373*/ 236,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa755*/ 1056,</div><div class='del'>-      /*0x01e7*/ 154,</div><div class='del'>-      /*0x10d3*/ 480,</div><div class='del'>-      /*0x13cf*/ 570,</div><div class='del'>-      /*0x044f*/ 322,</div><div class='del'>-      /*0x04cf*/ 390,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1044f*/ 1159,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e4f*/ 650,</div><div class='del'>-      /*0x1ecf*/ 709,</div><div class='del'>-      /*0x014f*/ 93,</div><div class='del'>-      /*0x2ccf*/ 941,</div><div class='del'>-      /*0x2d05*/ 960,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13cd*/ 568,</div><div class='del'>-      /*0x044d*/ 320,</div><div class='del'>-      /*0x1f26*/ 754,</div><div class='del'>-      /*0xa657*/ 1006,</div><div class='del'>-      /*0x1044d*/ 1157,</div><div class='del'>-      /*0x00e3*/ 28,</div><div class='del'>-      /*0x1e4d*/ 649,</div><div class='del'>-      /*0x1ecd*/ 708,</div><div class='del'>-      /*0x014d*/ 92,</div><div class='del'>-      /*0x2ccd*/ 940,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f20*/ 748,</div><div class='del'>-      /*0x10cd5*/ 1217,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x00e5*/ 30,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10d5*/ 482,</div><div class='del'>-      /*0x0205*/ 167,</div><div class='del'>-      /*0x03cd*/ 272,</div><div class='del'>-      /*0x2d1a*/ 981,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x00e9*/ 34,</div><div class='del'>-      /*0x1f12*/ 744,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa66d*/ 1017,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01dd*/ 149,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13cb*/ 566,</div><div class='del'>-      /*0x044b*/ 318,</div><div class='del'>-      /*0x00e7*/ 32,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1044b*/ 1155,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e4b*/ 648,</div><div class='del'>-      /*0x1ecb*/ 707,</div><div class='del'>-      /*0x014b*/ 91,</div><div class='del'>-      /*0x2ccb*/ 939,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c57*/ 886,</div><div class='del'>-      /*0x1f02*/ 736,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x0251*/ 200,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x03cb*/ 270,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x118d1*/ 1264,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x01df*/ 150,</div><div class='del'>-      /*0x2d00*/ 955,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10f3*/ 512,</div><div class='del'>-      /*0x0253*/ 202,</div><div class='del'>-      /*0x13c9*/ 564,</div><div class='del'>-      /*0x0449*/ 316,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10449*/ 1153,</div><div class='del'>-      /*0x118d3*/ 1266,</div><div class='del'>-      /*0x1e49*/ 647,</div><div class='del'>-      /*0x1ec9*/ 706,</div><div class='del'>-      /*0x0192*/ 122,</div><div class='del'>-      /*0x2cc9*/ 938,</div><div class='del'>-      /*0xa74f*/ 1053,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01a8*/ 130,</div><div class='del'>-      /*0xa651*/ 1003,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c36*/ 853,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e924*/ 1313,</div><div class='del'>-      /*0x03c9*/ 268,</div><div class='del'>-      /*0x1f57*/ 773,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa74d*/ 1052,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x01eb*/ 156,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa653*/ 1004,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1f22*/ 750,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x118d5*/ 1268,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10ccf*/ 1211,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x01ef*/ 158,</div><div class='del'>-      /*0x13c0*/ 555,</div><div class='del'>-      /*0x0440*/ 307,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10440*/ 1144,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x018c*/ 121,</div><div class='del'>-      /*0x10ccd*/ 1209,</div><div class='del'>-      /*0x0140*/ 86,</div><div class='del'>-      /*0x1e92a*/ 1319,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c51*/ 880,</div><div class='del'>-      /*0xa74b*/ 1051,</div><div class='del'>-      /*0x1e926*/ 1315,</div><div class='del'>-      /*0x1f36*/ 762,</div><div class='del'>-      /*0xa655*/ 1005,</div><div class='del'>-      /*0x13c3*/ 558,</div><div class='del'>-      /*0x0443*/ 310,</div><div class='del'>-      /*0x03c0*/ 260,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10443*/ 1147,</div><div class='del'>-      /*0x1f05*/ 739,</div><div class='del'>-      /*0x1e43*/ 644,</div><div class='del'>-      /*0x1ec3*/ 703,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2cc3*/ 935,</div><div class='del'>-      /*0x2c53*/ 882,</div><div class='del'>-      /*0x13c1*/ 556,</div><div class='del'>-      /*0x0441*/ 308,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10441*/ 1145,</div><div class='del'>-      /*0x00eb*/ 36,</div><div class='del'>-      /*0x1e41*/ 643,</div><div class='del'>-      /*0x1ec1*/ 702,</div><div class='del'>-      /*0x03c3*/ 262,</div><div class='del'>-      /*0x2cc1*/ 934,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10ccb*/ 1207,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e928*/ 1317,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa749*/ 1050,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03c1*/ 261,</div><div class='del'>-      /*0x00ef*/ 40,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x019e*/ 126,</div><div class='del'>-      /*0x01ed*/ 157,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f51*/ 770,</div><div class='del'>-      /*0x13c7*/ 562,</div><div class='del'>-      /*0x0447*/ 314,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c55*/ 884,</div><div class='del'>-      /*0x10447*/ 1151,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e47*/ 646,</div><div class='del'>-      /*0x1ec7*/ 705,</div><div class='del'>-      /*0x01b6*/ 134,</div><div class='del'>-      /*0x2cc7*/ 937,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x1f53*/ 771,</div><div class='del'>-      /*0x0185*/ 119,</div><div class='del'>-      /*0x00fe*/ 54,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10cc9*/ 1205,</div><div class='del'>-      /*0x03c7*/ 266,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13c5*/ 560,</div><div class='del'>-      /*0x0445*/ 312,</div><div class='del'>-      /*0x024f*/ 198,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10445*/ 1149,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e45*/ 645,</div><div class='del'>-      /*0x1ec5*/ 704,</div><div class='del'>-      /*0x118cf*/ 1262,</div><div class='del'>-      /*0x2cc5*/ 936,</div><div class='del'>-      /*0x1f00*/ 734,</div><div class='del'>-      /*0x049d*/ 365,</div><div class='del'>-      /*0xff59*/ 1118,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x024d*/ 197,</div><div class='del'>-      /*0x1e1d*/ 625,</div><div class='del'>-      /*0x019a*/ 125,</div><div class='del'>-      /*0x011d*/ 70,</div><div class='del'>-      /*0x2c9d*/ 916,</div><div class='del'>-      /*0x03c5*/ 264,</div><div class='del'>-      /*0x118cd*/ 1260,</div><div class='del'>-      /*0x0561*/ 439,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f55*/ 772,</div><div class='del'>-      /*0x16e61*/ 1280,</div><div class='del'>-      /*0x00ed*/ 38,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c73*/ 900,</div><div class='del'>-      /*0xa743*/ 1047,</div><div class='del'>-      /*0x051b*/ 428,</div><div class='del'>-      /*0xa64f*/ 1002,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e922*/ 1311,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x050b*/ 420,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x10cc0*/ 1196,</div><div class='del'>-      /*0xa741*/ 1046,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa64d*/ 1001,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0563*/ 441,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x024b*/ 196,</div><div class='del'>-      /*0x16e63*/ 1282,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x118cb*/ 1258,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0565*/ 443,</div><div class='del'>-      /*0x10cc3*/ 1199,</div><div class='del'>-      /*0x0180*/ 117,</div><div class='del'>-      /*0x16e65*/ 1284,</div><div class='del'>-      /*0x1e936*/ 1331,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e92e*/ 1323,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x0569*/ 447,</div><div class='del'>-      /*0xa747*/ 1049,</div><div class='del'>-      /*0x10cc1*/ 1197,</div><div class='del'>-      /*0x16e69*/ 1288,</div><div class='del'>-      /*0x1f73*/ 785,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c4f*/ 878,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0567*/ 445,</div><div class='del'>-      /*0xa64b*/ 1000,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e67*/ 1286,</div><div class='del'>-      /*0x0249*/ 195,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x2c4d*/ 876,</div><div class='del'>-      /*0x118c9*/ 1256,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa745*/ 1048,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x029d*/ 233,</div><div class='del'>-      /*0x10cc7*/ 1203,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13f1*/ 604,</div><div class='del'>-      /*0x0471*/ 347,</div><div class='del'>-      /*0x04f1*/ 407,</div><div class='del'>-      /*0x0071*/ 15,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104f1*/ 1185,</div><div class='del'>-      /*0x1e71*/ 667,</div><div class='del'>-      /*0x1ef1*/ 726,</div><div class='del'>-      /*0x0171*/ 110,</div><div class='del'>-      /*0x13f5*/ 608,</div><div class='del'>-      /*0x0475*/ 349,</div><div class='del'>-      /*0x04f5*/ 409,</div><div class='del'>-      /*0x0075*/ 19,</div><div class='del'>-      /*0xa649*/ 999,</div><div class='del'>-      /*0x104f5*/ 1189,</div><div class='del'>-      /*0x1e75*/ 669,</div><div class='del'>-      /*0x1ef5*/ 728,</div><div class='del'>-      /*0x0175*/ 112,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10cc5*/ 1201,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01f3*/ 159,</div><div class='del'>-      /*0x2c4b*/ 874,</div><div class='del'>-      /*0x0491*/ 359,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0240*/ 192,</div><div class='del'>-      /*0x1e11*/ 619,</div><div class='del'>-      /*0x1e91*/ 683,</div><div class='del'>-      /*0x0111*/ 64,</div><div class='del'>-      /*0x2c91*/ 910,</div><div class='del'>-      /*0xa79b*/ 1082,</div><div class='del'>-      /*0x118c0*/ 1247,</div><div class='del'>-      /*0xff57*/ 1116,</div><div class='del'>-      /*0x13b3*/ 542,</div><div class='del'>-      /*0x0433*/ 294,</div><div class='del'>-      /*0x04b3*/ 376,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10433*/ 1131,</div><div class='del'>-      /*0x0371*/ 235,</div><div class='del'>-      /*0x1e33*/ 636,</div><div class='del'>-      /*0x1eb3*/ 695,</div><div class='del'>-      /*0x0133*/ 80,</div><div class='del'>-      /*0x2cb3*/ 927,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0479*/ 351,</div><div class='del'>-      /*0x04f9*/ 411,</div><div class='del'>-      /*0x0079*/ 23,</div><div class='del'>-      /*0x118c3*/ 1250,</div><div class='del'>-      /*0x104f9*/ 1193,</div><div class='del'>-      /*0x1e79*/ 671,</div><div class='del'>-      /*0x1ef9*/ 730,</div><div class='del'>-      /*0x03b3*/ 247,</div><div class='del'>-      /*0x2c49*/ 872,</div><div class='del'>-      /*0x1d79*/ 609,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13b7*/ 546,</div><div class='del'>-      /*0x0437*/ 298,</div><div class='del'>-      /*0x04b7*/ 378,</div><div class='del'>-      /*0x118c1*/ 1248,</div><div class='del'>-      /*0x10437*/ 1135,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e37*/ 638,</div><div class='del'>-      /*0x1eb7*/ 697,</div><div class='del'>-      /*0x0137*/ 82,</div><div class='del'>-      /*0x2cb7*/ 929,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x00f3*/ 44,</div><div class='del'>-      /*0x1e92c*/ 1321,</div><div class='del'>-      /*0xa643*/ 996,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x03b7*/ 251,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x13e6*/ 593,</div><div class='del'>-      /*0x0247*/ 194,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0066*/ 5,</div><div class='del'>-      /*0xa641*/ 995,</div><div class='del'>-      /*0x104e6*/ 1174,</div><div class='del'>-      /*0x056b*/ 449,</div><div class='del'>-      /*0x118c7*/ 1254,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e6b*/ 1290,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2d1d*/ 984,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x24e6*/ 843,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c40*/ 863,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x056f*/ 453,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e6f*/ 1294,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x118c5*/ 1252,</div><div class='del'>-      /*0xff51*/ 1110,</div><div class='del'>-      /*0xa647*/ 998,</div><div class='del'>-      /*0x021d*/ 179,</div><div class='del'>-      /*0x047d*/ 353,</div><div class='del'>-      /*0x04fd*/ 413,</div><div class='del'>-      /*0x2c43*/ 866,</div><div class='del'>-      /*0x10cf1*/ 1245,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e7d*/ 673,</div><div class='del'>-      /*0x1efd*/ 732,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10f1*/ 510,</div><div class='del'>-      /*0x1d7d*/ 610,</div><div class='del'>-      /*0xa733*/ 1039,</div><div class='del'>-      /*0x057e*/ 468,</div><div class='del'>-      /*0xff53*/ 1112,</div><div class='del'>-      /*0x2c41*/ 864,</div><div class='del'>-      /*0x16e7e*/ 1309,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2d04*/ 959,</div><div class='del'>-      /*0x10f5*/ 514,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa645*/ 997,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13b5*/ 544,</div><div class='del'>-      /*0x0435*/ 296,</div><div class='del'>-      /*0x04b5*/ 377,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10435*/ 1133,</div><div class='del'>-      /*0x1f40*/ 764,</div><div class='del'>-      /*0x1e35*/ 637,</div><div class='del'>-      /*0x1eb5*/ 696,</div><div class='del'>-      /*0x0135*/ 81,</div><div class='del'>-      /*0x2cb5*/ 928,</div><div class='del'>-      /*0x01c9*/ 139,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa737*/ 1041,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x217e*/ 818,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x037d*/ 240,</div><div class='del'>-      /*0x2c47*/ 870,</div><div class='del'>-      /*0x03b5*/ 249,</div><div class='del'>-      /*0x056d*/ 451,</div><div class='del'>-      /*0xff55*/ 1114,</div><div class='del'>-      /*0x1f43*/ 767,</div><div class='del'>-      /*0x16e6d*/ 1292,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x1fe1*/ 801,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0481*/ 355,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10f9*/ 518,</div><div class='del'>-      /*0x1f41*/ 765,</div><div class='del'>-      /*0x1e01*/ 611,</div><div class='del'>-      /*0x1e81*/ 675,</div><div class='del'>-      /*0x0101*/ 56,</div><div class='del'>-      /*0x2c81*/ 902,</div><div class='del'>-      /*0x0505*/ 417,</div><div class='del'>-      /*0x2c45*/ 868,</div><div class='del'>-      /*0x048f*/ 358,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1e0f*/ 618,</div><div class='del'>-      /*0x1e8f*/ 682,</div><div class='del'>-      /*0x010f*/ 63,</div><div class='del'>-      /*0x2c8f*/ 909,</div><div class='del'>-      /*0xa69b*/ 1031,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13ad*/ 536,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04ad*/ 373,</div><div class='del'>-      /*0xa68b*/ 1023,</div><div class='del'>-      /*0x1042d*/ 1125,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e2d*/ 633,</div><div class='del'>-      /*0x1ead*/ 692,</div><div class='del'>-      /*0x012d*/ 78,</div><div class='del'>-      /*0x2cad*/ 924,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10ce6*/ 1234,</div><div class='del'>-      /*0x1fe5*/ 802,</div><div class='del'>-      /*0x2184*/ 820,</div><div class='del'>-      /*0x0271*/ 220,</div><div class='del'>-      /*0x2d11*/ 972,</div><div class='del'>-      /*0x10e6*/ 499,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13a5*/ 528,</div><div class='del'>-      /*0x03ad*/ 242,</div><div class='del'>-      /*0x04a5*/ 369,</div><div class='del'>-      /*0xa78c*/ 1077,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0275*/ 222,</div><div class='del'>-      /*0x1e25*/ 629,</div><div class='del'>-      /*0x1ea5*/ 688,</div><div class='del'>-      /*0x0125*/ 74,</div><div class='del'>-      /*0x2ca5*/ 920,</div><div class='del'>-      /*0x047b*/ 352,</div><div class='del'>-      /*0x04fb*/ 412,</div><div class='del'>-      /*0x1f45*/ 769,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104fb*/ 1195,</div><div class='del'>-      /*0x1e7b*/ 672,</div><div class='del'>-      /*0x1efb*/ 731,</div><div class='del'>-      /*0x0211*/ 173,</div><div class='del'>-      /*0x13a3*/ 526,</div><div class='del'>-      /*0xa735*/ 1040,</div><div class='del'>-      /*0x04a3*/ 368,</div><div class='del'>-      /*0x0586*/ 476,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e23*/ 628,</div><div class='del'>-      /*0x1ea3*/ 687,</div><div class='del'>-      /*0x0123*/ 73,</div><div class='del'>-      /*0x2ca3*/ 919,</div><div class='del'>-      /*0x03fb*/ 290,</div><div class='del'>-      /*0x10fd*/ 520,</div><div class='del'>-      /*0x0233*/ 189,</div><div class='del'>-      /*0x13bf*/ 554,</div><div class='del'>-      /*0x043f*/ 306,</div><div class='del'>-      /*0x04bf*/ 382,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1043f*/ 1143,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e3f*/ 642,</div><div class='del'>-      /*0x1ebf*/ 701,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2cbf*/ 933,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xff4f*/ 1108,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13b9*/ 548,</div><div class='del'>-      /*0x0439*/ 300,</div><div class='del'>-      /*0x04b9*/ 379,</div><div class='del'>-      /*0x037b*/ 238,</div><div class='del'>-      /*0x10439*/ 1137,</div><div class='del'>-      /*0x03bf*/ 259,</div><div class='del'>-      /*0x1e39*/ 639,</div><div class='del'>-      /*0x1eb9*/ 698,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2cb9*/ 930,</div><div class='del'>-      /*0xff4d*/ 1106,</div><div class='del'>-      /*0x1e940*/ 1341,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f04*/ 738,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x13b1*/ 540,</div><div class='del'>-      /*0x0431*/ 292,</div><div class='del'>-      /*0x04b1*/ 375,</div><div class='del'>-      /*0x03b9*/ 253,</div><div class='del'>-      /*0x10431*/ 1129,</div><div class='del'>-      /*0xa785*/ 1075,</div><div class='del'>-      /*0x1e31*/ 635,</div><div class='del'>-      /*0x1eb1*/ 694,</div><div class='del'>-      /*0xa72d*/ 1037,</div><div class='del'>-      /*0x2cb1*/ 926,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e943*/ 1344,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0266*/ 213,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13c2*/ 557,</div><div class='del'>-      /*0x0442*/ 309,</div><div class='del'>-      /*0x04c2*/ 383,</div><div class='del'>-      /*0x03b1*/ 245,</div><div class='del'>-      /*0x10442*/ 1146,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e941*/ 1342,</div><div class='del'>-      /*0x0142*/ 87,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa725*/ 1033,</div><div class='del'>-      /*0xff4b*/ 1104,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x0573*/ 457,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13f2*/ 605,</div><div class='del'>-      /*0x16e73*/ 1298,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0072*/ 16,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104f2*/ 1186,</div><div class='del'>-      /*0x2c33*/ 850,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13a7*/ 530,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04a7*/ 370,</div><div class='del'>-      /*0xa723*/ 1032,</div><div class='del'>-      /*0x027d*/ 223,</div><div class='del'>-      /*0x1f71*/ 783,</div><div class='del'>-      /*0x1e27*/ 630,</div><div class='del'>-      /*0x1ea7*/ 689,</div><div class='del'>-      /*0x0127*/ 75,</div><div class='del'>-      /*0x2ca7*/ 921,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03f2*/ 287,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1f75*/ 787,</div><div class='del'>-      /*0x2173*/ 807,</div><div class='del'>-      /*0xa73f*/ 1045,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xff49*/ 1102,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c37*/ 854,</div><div class='del'>-      /*0x047f*/ 354,</div><div class='del'>-      /*0x04ff*/ 414,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1f11*/ 743,</div><div class='del'>-      /*0x1e7f*/ 674,</div><div class='del'>-      /*0x1eff*/ 733,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa739*/ 1042,</div><div class='del'>-      /*0x0477*/ 350,</div><div class='del'>-      /*0x04f7*/ 410,</div><div class='del'>-      /*0x0077*/ 21,</div><div class='del'>-      /*0x2d01*/ 956,</div><div class='del'>-      /*0x104f7*/ 1191,</div><div class='del'>-      /*0x1e77*/ 670,</div><div class='del'>-      /*0x1ef7*/ 729,</div><div class='del'>-      /*0x0177*/ 113,</div><div class='del'>-      /*0x1f33*/ 759,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x2c66*/ 896,</div><div class='del'>-      /*0x2d0f*/ 970,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e03*/ 612,</div><div class='del'>-      /*0x1e83*/ 676,</div><div class='del'>-      /*0x0103*/ 57,</div><div class='del'>-      /*0x2c83*/ 903,</div><div class='del'>-      /*0x1f79*/ 791,</div><div class='del'>-      /*0x13af*/ 538,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04af*/ 374,</div><div class='del'>-      /*0x0201*/ 165,</div><div class='del'>-      /*0x1042f*/ 1127,</div><div class='del'>-      /*0x2d2d*/ 994,</div><div class='del'>-      /*0x1e2f*/ 634,</div><div class='del'>-      /*0x1eaf*/ 693,</div><div class='del'>-      /*0x012f*/ 79,</div><div class='del'>-      /*0x2caf*/ 925,</div><div class='del'>-      /*0x01f5*/ 160,</div><div class='del'>-      /*0x1f37*/ 763,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x020f*/ 172,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x0582*/ 472,</div><div class='del'>-      /*0x0377*/ 237,</div><div class='del'>-      /*0x03af*/ 244,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x2d25*/ 992,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x022d*/ 186,</div><div class='del'>-      /*0xff43*/ 1096,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x1f66*/ 780,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa727*/ 1034,</div><div class='del'>-      /*0xff41*/ 1094,</div><div class='del'>-      /*0x10cc2*/ 1198,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2d23*/ 990,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0225*/ 182,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c35*/ 852,</div><div class='del'>-      /*0x01f9*/ 161,</div><div class='del'>-      /*0x13bd*/ 552,</div><div class='del'>-      /*0x043d*/ 304,</div><div class='del'>-      /*0x04bd*/ 381,</div><div class='del'>-      /*0x00f1*/ 42,</div><div class='del'>-      /*0x1043d*/ 1141,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e3d*/ 641,</div><div class='del'>-      /*0x1ebd*/ 700,</div><div class='del'>-      /*0x10cf2*/ 1246,</div><div class='del'>-      /*0x2cbd*/ 932,</div><div class='del'>-      /*0xa77f*/ 1072,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00f5*/ 46,</div><div class='del'>-      /*0x10f2*/ 511,</div><div class='del'>-      /*0x0223*/ 181,</div><div class='del'>-      /*0xa685*/ 1020,</div><div class='del'>-      /*0xff47*/ 1100,</div><div class='del'>-      /*0x1f7d*/ 795,</div><div class='del'>-      /*0x13e8*/ 595,</div><div class='del'>-      /*0x03bd*/ 257,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0068*/ 7,</div><div class='del'>-      /*0x13a9*/ 532,</div><div class='del'>-      /*0x104e8*/ 1176,</div><div class='del'>-      /*0x04a9*/ 371,</div><div class='del'>-      /*0x0283*/ 225,</div><div class='del'>-      /*0x10429*/ 1121,</div><div class='del'>-      /*0x023f*/ 191,</div><div class='del'>-      /*0x1e29*/ 631,</div><div class='del'>-      /*0x1ea9*/ 690,</div><div class='del'>-      /*0x0129*/ 76,</div><div class='del'>-      /*0x2ca9*/ 922,</div><div class='del'>-      /*0x24e8*/ 845,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1fd1*/ 799,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xff45*/ 1098,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f35*/ 761,</div><div class='del'>-      /*0xa72f*/ 1038,</div><div class='del'>-      /*0x017c*/ 115,</div><div class='del'>-      /*0x10ff*/ 522,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x13d0*/ 571,</div><div class='del'>-      /*0x0450*/ 323,</div><div class='del'>-      /*0x13ec*/ 599,</div><div class='del'>-      /*0x00f9*/ 49,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x006c*/ 10,</div><div class='del'>-      /*0x10f7*/ 516,</div><div class='del'>-      /*0x104ec*/ 1180,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0585*/ 475,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2cec*/ 952,</div><div class='del'>-      /*0x0231*/ 188,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x24d0*/ 821,</div><div class='del'>-      /*0x1e933*/ 1328,</div><div class='del'>-      /*0x13ce*/ 569,</div><div class='del'>-      /*0x044e*/ 321,</div><div class='del'>-      /*0x04ce*/ 389,</div><div class='del'>-      /*0x01fd*/ 163,</div><div class='del'>-      /*0x1044e*/ 1158,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f01*/ 735,</div><div class='del'>-      /*0x1e07*/ 614,</div><div class='del'>-      /*0x1e87*/ 678,</div><div class='del'>-      /*0x0107*/ 59,</div><div class='del'>-      /*0x2c87*/ 905,</div><div class='del'>-      /*0x037c*/ 239,</div><div class='del'>-      /*0x0242*/ 193,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x2d27*/ 993,</div><div class='del'>-      /*0x118c2*/ 1249,</div><div class='del'>-      /*0x03ce*/ 273,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00e6*/ 31,</div><div class='del'>-      /*0x1e937*/ 1332,</div><div class='del'>-      /*0x13c6*/ 561,</div><div class='del'>-      /*0x0446*/ 313,</div><div class='del'>-      /*0x04c6*/ 385,</div><div class='del'>-      /*0xa73d*/ 1044,</div><div class='del'>-      /*0x10446*/ 1150,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0272*/ 221,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0146*/ 89,</div><div class='del'>-      /*0x13a1*/ 524,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x04a1*/ 367,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c3f*/ 862,</div><div class='del'>-      /*0x0227*/ 183,</div><div class='del'>-      /*0x1e21*/ 627,</div><div class='del'>-      /*0x1ea1*/ 686,</div><div class='del'>-      /*0x0121*/ 72,</div><div class='del'>-      /*0x2ca1*/ 918,</div><div class='del'>-      /*0x03c6*/ 265,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13ea*/ 597,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f25*/ 753,</div><div class='del'>-      /*0x006a*/ 8,</div><div class='del'>-      /*0xa729*/ 1035,</div><div class='del'>-      /*0x104ea*/ 1178,</div><div class='del'>-      /*0x2c39*/ 856,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00fd*/ 53,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1f7b*/ 793,</div><div class='del'>-      /*0x0580*/ 470,</div><div class='del'>-      /*0x2d03*/ 958,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa77c*/ 1071,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13c4*/ 559,</div><div class='del'>-      /*0x0444*/ 311,</div><div class='del'>-      /*0x04c4*/ 384,</div><div class='del'>-      /*0x1f23*/ 751,</div><div class='del'>-      /*0x10444*/ 1148,</div><div class='del'>-      /*0x2c31*/ 848,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x007a*/ 24,</div><div class='del'>-      /*0x0144*/ 88,</div><div class='del'>-      /*0x104fa*/ 1194,</div><div class='del'>-      /*0x10ce8*/ 1236,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x017a*/ 114,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01ad*/ 131,</div><div class='del'>-      /*0x10e8*/ 501,</div><div class='del'>-      /*0x0203*/ 166,</div><div class='del'>-      /*0x051d*/ 429,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03c4*/ 263,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c42*/ 865,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0287*/ 226,</div><div class='del'>-      /*0x13bb*/ 550,</div><div class='del'>-      /*0x043b*/ 302,</div><div class='del'>-      /*0x04bb*/ 380,</div><div class='del'>-      /*0x022f*/ 187,</div><div class='del'>-      /*0x1043b*/ 1139,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e3b*/ 640,</div><div class='del'>-      /*0x1ebb*/ 699,</div><div class='del'>-      /*0x01a5*/ 129,</div><div class='del'>-      /*0x2cbb*/ 931,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e935*/ 1330,</div><div class='del'>-      /*0x10cd0*/ 1212,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10cec*/ 1240,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01fb*/ 162,</div><div class='del'>-      /*0x10d0*/ 477,</div><div class='del'>-      /*0x03bb*/ 255,</div><div class='del'>-      /*0x10ec*/ 505,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f31*/ 757,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x01a3*/ 128,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13ab*/ 534,</div><div class='del'>-      /*0x10cce*/ 1210,</div><div class='del'>-      /*0x04ab*/ 372,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1042b*/ 1123,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e2b*/ 632,</div><div class='del'>-      /*0x1eab*/ 691,</div><div class='del'>-      /*0x012b*/ 77,</div><div class='del'>-      /*0x2cab*/ 923,</div><div class='del'>-      /*0x1f42*/ 766,</div><div class='del'>-      /*0x01bf*/ 137,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0495*/ 361,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1e15*/ 621,</div><div class='del'>-      /*0x1e95*/ 685,</div><div class='del'>-      /*0x0115*/ 66,</div><div class='del'>-      /*0x2c95*/ 912,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10cc6*/ 1202,</div><div class='del'>-      /*0x01b9*/ 135,</div><div class='del'>-      /*0x0493*/ 360,</div><div class='del'>-      /*0x1f72*/ 784,</div><div class='del'>-      /*0x13d6*/ 577,</div><div class='del'>-      /*0x0456*/ 329,</div><div class='del'>-      /*0x1e13*/ 620,</div><div class='del'>-      /*0x1e93*/ 684,</div><div class='del'>-      /*0x0113*/ 65,</div><div class='del'>-      /*0x2c93*/ 911,</div><div class='del'>-      /*0x1e92d*/ 1322,</div><div class='del'>-      /*0x1f27*/ 755,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x00fb*/ 51,</div><div class='del'>-      /*0xa77a*/ 1070,</div><div class='del'>-      /*0x0268*/ 214,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x24d6*/ 827,</div><div class='del'>-      /*0x13f0*/ 603,</div><div class='del'>-      /*0x0229*/ 184,</div><div class='del'>-      /*0x10cea*/ 1238,</div><div class='del'>-      /*0x0070*/ 14,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104f0*/ 1184,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10ea*/ 503,</div><div class='del'>-      /*0x0571*/ 455,</div><div class='del'>-      /*0x1e925*/ 1314,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e71*/ 1296,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xa73b*/ 1043,</div><div class='del'>-      /*0x0575*/ 459,</div><div class='del'>-      /*0xa79d*/ 1083,</div><div class='del'>-      /*0x10cc4*/ 1200,</div><div class='del'>-      /*0x16e75*/ 1300,</div><div class='del'>-      /*0x2d07*/ 962,</div><div class='del'>-      /*0x1f77*/ 789,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0250*/ 199,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x026c*/ 218,</div><div class='del'>-      /*0x1e923*/ 1312,</div><div class='del'>-      /*0x10fa*/ 519,</div><div class='del'>-      /*0x0511*/ 423,</div><div class='del'>-      /*0x118d0*/ 1263,</div><div class='del'>-      /*0x0497*/ 362,</div><div class='del'>-      /*0x1f03*/ 737,</div><div class='del'>-      /*0x2171*/ 805,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e17*/ 622,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0117*/ 67,</div><div class='del'>-      /*0x2c97*/ 913,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e93f*/ 1340,</div><div class='del'>-      /*0x0207*/ 168,</div><div class='del'>-      /*0x2175*/ 809,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa72b*/ 1036,</div><div class='del'>-      /*0x13e4*/ 591,</div><div class='del'>-      /*0x118ce*/ 1261,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0064*/ 3,</div><div class='del'>-      /*0x2c3d*/ 860,</div><div class='del'>-      /*0x104e4*/ 1172,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2d21*/ 988,</div><div class='del'>-      /*0x0579*/ 463,</div><div class='del'>-      /*0x1e939*/ 1334,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e79*/ 1304,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x24e4*/ 841,</div><div class='del'>-      /*0x01ff*/ 164,</div><div class='del'>-      /*0x13e2*/ 589,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0062*/ 1,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104e2*/ 1170,</div><div class='del'>-      /*0x2c68*/ 897,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118c6*/ 1253,</div><div class='del'>-      /*0x1e931*/ 1326,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x24e2*/ 839,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13e0*/ 587,</div><div class='del'>-      /*0x2179*/ 813,</div><div class='del'>-      /*0x0183*/ 118,</div><div class='del'>-      /*0x00f2*/ 43,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104e0*/ 1168,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x026a*/ 216,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e942*/ 1343,</div><div class='del'>-      /*0x0566*/ 444,</div><div class='del'>-      /*0x13dc*/ 583,</div><div class='del'>-      /*0x045c*/ 335,</div><div class='del'>-      /*0x16e66*/ 1285,</div><div class='del'>-      /*0x24e0*/ 837,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104dc*/ 1164,</div><div class='del'>-      /*0x2c50*/ 879,</div><div class='del'>-      /*0x13f4*/ 607,</div><div class='del'>-      /*0x2c6c*/ 899,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0074*/ 18,</div><div class='del'>-      /*0x10cd6*/ 1218,</div><div class='del'>-      /*0x104f4*/ 1188,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x24dc*/ 833,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10d6*/ 483,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0078*/ 22,</div><div class='del'>-      /*0x118c4*/ 1251,</div><div class='del'>-      /*0x104f8*/ 1192,</div><div class='del'>-      /*0x00ff*/ 55,</div><div class='del'>-      /*0x2c4e*/ 877,</div><div class='del'>-      /*0x1e927*/ 1316,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10cf0*/ 1244,</div><div class='del'>-      /*0x13da*/ 581,</div><div class='del'>-      /*0x045a*/ 333,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x057d*/ 467,</div><div class='del'>-      /*0x10f0*/ 509,</div><div class='del'>-      /*0x104da*/ 1162,</div><div class='del'>-      /*0x16e7d*/ 1308,</div><div class='del'>-      /*0x03f8*/ 289,</div><div class='del'>-      /*0x1f7c*/ 794,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa791*/ 1078,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x13d8*/ 579,</div><div class='del'>-      /*0x0458*/ 331,</div><div class='del'>-      /*0x24da*/ 831,</div><div class='del'>-      /*0x13d4*/ 575,</div><div class='del'>-      /*0x0454*/ 327,</div><div class='del'>-      /*0x104d8*/ 1160,</div><div class='del'>-      /*0x2c46*/ 869,</div><div class='del'>-      /*0x13d2*/ 573,</div><div class='del'>-      /*0x0452*/ 325,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01bd*/ 136,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x24d8*/ 829,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x217d*/ 817,</div><div class='del'>-      /*0x24d4*/ 825,</div><div class='del'>-      /*0x2d15*/ 976,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x24d2*/ 823,</div><div class='del'>-      /*0x0076*/ 20,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104f6*/ 1190,</div><div class='del'>-      /*0x1f07*/ 741,</div><div class='del'>-      /*0x022b*/ 185,</div><div class='del'>-      /*0x2c6a*/ 898,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2d13*/ 974,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10ce4*/ 1232,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa7b7*/ 1091,</div><div class='del'>-      /*0x1e92f*/ 1324,</div><div class='del'>-      /*0x0499*/ 363,</div><div class='del'>-      /*0x10e4*/ 497,</div><div class='del'>-      /*0x0215*/ 175,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e19*/ 623,</div><div class='del'>-      /*0x0501*/ 415,</div><div class='del'>-      /*0x0119*/ 68,</div><div class='del'>-      /*0x2c99*/ 914,</div><div class='del'>-      /*0x2c44*/ 867,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x10ce2*/ 1230,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0213*/ 174,</div><div class='del'>-      /*0x050f*/ 422,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10e2*/ 495,</div><div class='del'>-      /*0x0256*/ 204,</div><div class='del'>-      /*0x01d0*/ 142,</div><div class='del'>-      /*0x1f21*/ 749,</div><div class='del'>-      /*0x13cc*/ 567,</div><div class='del'>-      /*0x044c*/ 319,</div><div class='del'>-      /*0x04cc*/ 388,</div><div class='del'>-      /*0x118d6*/ 1269,</div><div class='del'>-      /*0x1044c*/ 1156,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x052d*/ 437,</div><div class='del'>-      /*0x10ce0*/ 1228,</div><div class='del'>-      /*0xff42*/ 1095,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c3b*/ 858,</div><div class='del'>-      /*0x10e0*/ 493,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01ce*/ 141,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x10cdc*/ 1224,</div><div class='del'>-      /*0x03cc*/ 271,</div><div class='del'>-      /*0x00e8*/ 33,</div><div class='del'>-      /*0x2d17*/ 978,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10dc*/ 489,</div><div class='del'>-      /*0x0525*/ 433,</div><div class='del'>-      /*0x1e93d*/ 1338,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1f44*/ 768,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10f4*/ 513,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f7a*/ 792,</div><div class='del'>-      /*0x057b*/ 465,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00fc*/ 52,</div><div class='del'>-      /*0x16e7b*/ 1306,</div><div class='del'>-      /*0x01c6*/ 138,</div><div class='del'>-      /*0x10f8*/ 517,</div><div class='del'>-      /*0x13b0*/ 539,</div><div class='del'>-      /*0x0430*/ 291,</div><div class='del'>-      /*0x0217*/ 176,</div><div class='del'>-      /*0x0523*/ 432,</div><div class='del'>-      /*0x10430*/ 1128,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10cda*/ 1222,</div><div class='del'>-      /*0x01a1*/ 127,</div><div class='del'>-      /*0x1e929*/ 1318,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00ec*/ 37,</div><div class='del'>-      /*0x10da*/ 487,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa7b5*/ 1090,</div><div class='del'>-      /*0x1e09*/ 615,</div><div class='del'>-      /*0x1e89*/ 679,</div><div class='del'>-      /*0x0109*/ 60,</div><div class='del'>-      /*0x2c89*/ 906,</div><div class='del'>-      /*0x10cd8*/ 1220,</div><div class='del'>-      /*0x217b*/ 815,</div><div class='del'>-      /*0x0584*/ 474,</div><div class='del'>-      /*0x10cd4*/ 1216,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10d8*/ 485,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10cd2*/ 1214,</div><div class='del'>-      /*0x10d4*/ 481,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c56*/ 885,</div><div class='del'>-      /*0x13ee*/ 601,</div><div class='del'>-      /*0x10d2*/ 479,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x006e*/ 12,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x104ee*/ 1182,</div><div class='del'>-      /*0x13c8*/ 563,</div><div class='del'>-      /*0x0448*/ 315,</div><div class='del'>-      /*0x04c8*/ 386,</div><div class='del'>-      /*0x2cee*/ 953,</div><div class='del'>-      /*0x10448*/ 1152,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa781*/ 1073,</div><div class='del'>-      /*0x10f6*/ 515,</div><div class='del'>-      /*0x0148*/ 90,</div><div class='del'>-      /*0x13bc*/ 551,</div><div class='del'>-      /*0x043c*/ 303,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1043c*/ 1140,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0260*/ 209,</div><div class='del'>-      /*0xa691*/ 1026,</div><div class='del'>-      /*0x013c*/ 84,</div><div class='del'>-      /*0x1f15*/ 747,</div><div class='del'>-      /*0x03c8*/ 267,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x13ca*/ 565,</div><div class='del'>-      /*0x044a*/ 317,</div><div class='del'>-      /*0x04ca*/ 387,</div><div class='del'>-      /*0x025c*/ 208,</div><div class='del'>-      /*0x1044a*/ 1154,</div><div class='del'>-      /*0x03bc*/ 256,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f13*/ 745,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118dc*/ 1275,</div><div class='del'>-      /*0x00ea*/ 35,</div><div class='del'>-      /*0x13b4*/ 543,</div><div class='del'>-      /*0x0434*/ 295,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10434*/ 1132,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x10ccc*/ 1208,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03ca*/ 269,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0572*/ 456,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa7a5*/ 1087,</div><div class='del'>-      /*0x16e72*/ 1297,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f70*/ 782,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0527*/ 434,</div><div class='del'>-      /*0x03b4*/ 248,</div><div class='del'>-      /*0x00fa*/ 50,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0289*/ 228,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x118da*/ 1273,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xa7a3*/ 1086,</div><div class='del'>-      /*0x0195*/ 123,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0254*/ 203,</div><div class='del'>-      /*0x2172*/ 806,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118d8*/ 1271,</div><div class='del'>-      /*0x0252*/ 201,</div><div class='del'>-      /*0x057f*/ 469,</div><div class='del'>-      /*0x118d4*/ 1267,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e7f*/ 1310,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118d2*/ 1265,</div><div class='del'>-      /*0x2d19*/ 980,</div><div class='del'>-      /*0x049f*/ 366,</div><div class='del'>-      /*0x01d6*/ 145,</div><div class='del'>-      /*0x0577*/ 461,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e1f*/ 626,</div><div class='del'>-      /*0x16e77*/ 1302,</div><div class='del'>-      /*0x011f*/ 71,</div><div class='del'>-      /*0x2c9f*/ 917,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0xa7b9*/ 1092,</div><div class='del'>-      /*0x0503*/ 416,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f64*/ 778,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c5c*/ 891,</div><div class='del'>-      /*0x1e93b*/ 1336,</div><div class='del'>-      /*0x217f*/ 819,</div><div class='del'>-      /*0x0219*/ 177,</div><div class='del'>-      /*0x13b2*/ 541,</div><div class='del'>-      /*0x0432*/ 293,</div><div class='del'>-      /*0xff50*/ 1109,</div><div class='del'>-      /*0x052f*/ 438,</div><div class='del'>-      /*0x10432*/ 1130,</div><div class='del'>-      /*0x13b8*/ 547,</div><div class='del'>-      /*0x0438*/ 299,</div><div class='del'>-      /*0x2177*/ 811,</div><div class='del'>-      /*0x10cee*/ 1242,</div><div class='del'>-      /*0x10438*/ 1136,</div><div class='del'>-      /*0x1f62*/ 776,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10ee*/ 507,</div><div class='del'>-      /*0x10cc8*/ 1204,</div><div class='del'>-      /*0x13de*/ 585,</div><div class='del'>-      /*0x045e*/ 337,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xff4e*/ 1107,</div><div class='del'>-      /*0x03b2*/ 246,</div><div class='del'>-      /*0x104de*/ 1166,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c5a*/ 889,</div><div class='del'>-      /*0x03b8*/ 252,</div><div class='del'>-      /*0x1e92b*/ 1320,</div><div class='del'>-      /*0x1f60*/ 774,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118cc*/ 1259,</div><div class='del'>-      /*0x24de*/ 835,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x13be*/ 553,</div><div class='del'>-      /*0x043e*/ 305,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c58*/ 887,</div><div class='del'>-      /*0x1043e*/ 1142,</div><div class='del'>-      /*0x10cca*/ 1206,</div><div class='del'>-      /*0x2c54*/ 883,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x013e*/ 85,</div><div class='del'>-      /*0xff46*/ 1099,</div><div class='del'>-      /*0x2c52*/ 881,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f74*/ 786,</div><div class='del'>-      /*0x00f0*/ 41,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa7a7*/ 1088,</div><div class='del'>-      /*0x2d09*/ 964,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x03be*/ 258,</div><div class='del'>-      /*0x1f78*/ 790,</div><div class='del'>-      /*0x048d*/ 357,</div><div class='del'>-      /*0x2c76*/ 901,</div><div class='del'>-      /*0xa681*/ 1018,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e0d*/ 617,</div><div class='del'>-      /*0x1e8d*/ 681,</div><div class='del'>-      /*0x010d*/ 62,</div><div class='del'>-      /*0x2c8d*/ 908,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xa68f*/ 1025,</div><div class='del'>-      /*0x13ba*/ 549,</div><div class='del'>-      /*0x043a*/ 301,</div><div class='del'>-      /*0x0568*/ 446,</div><div class='del'>-      /*0x0209*/ 169,</div><div class='del'>-      /*0x1043a*/ 1138,</div><div class='del'>-      /*0x16e68*/ 1287,</div><div class='del'>-      /*0x0529*/ 435,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x013a*/ 83,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xff44*/ 1097,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x057c*/ 466,</div><div class='del'>-      /*0x01dc*/ 148,</div><div class='del'>-      /*0x03ba*/ 254,</div><div class='del'>-      /*0x16e7c*/ 1307,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa783*/ 1074,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00e4*/ 29,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2c4c*/ 875,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0581*/ 471,</div><div class='del'>-      /*0x1f76*/ 788,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x056c*/ 450,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e6c*/ 1291,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118c8*/ 1255,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x023c*/ 190,</div><div class='del'>-      /*0x00e2*/ 27,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x217c*/ 816,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x01da*/ 147,</div><div class='del'>-      /*0x0507*/ 418,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x00e0*/ 25,</div><div class='del'>-      /*0x01d8*/ 146,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x118ca*/ 1257,</div><div class='del'>-      /*0x01d4*/ 144,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10cde*/ 1226,</div><div class='del'>-      /*0x01d2*/ 143,</div><div class='del'>-      /*0x2c30*/ 847,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x10de*/ 491,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x214e*/ 803,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x00f4*/ 45,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0521*/ 431,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1fb1*/ 797,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x00f8*/ 48,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x2d1f*/ 986,</div><div class='del'>-      /*0x056a*/ 448,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0199*/ 124,</div><div class='del'>-      /*0x16e6a*/ 1289,</div><div class='del'>-      /*0xff56*/ 1115,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x2c48*/ 871,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa7a9*/ 1089,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1f30*/ 756,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x021f*/ 180,</div><div class='del'>-      /*0x2c3c*/ 859,</div><div class='del'>-      /*0x057a*/ 464,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e7a*/ 1305,</div><div class='del'>-      /*0x01cc*/ 140,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c4a*/ 873,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x00f6*/ 47,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2c34*/ 851,</div><div class='del'>-      /*0x217a*/ 814,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0xa787*/ 1076,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x118de*/ 1277,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x01b0*/ 132,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x052b*/ 436,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2d0d*/ 968,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x0515*/ 425,</div><div class='del'>-      /*0xa683*/ 1019,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa7a1*/ 1085,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1f34*/ 760,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x020d*/ 171,</div><div class='del'>-      /*0x0513*/ 424,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x2c32*/ 849,</div><div class='del'>-      /*0x0570*/ 454,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e70*/ 1295,</div><div class='del'>-      /*0x2c38*/ 855,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x0583*/ 473,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x2c5e*/ 893,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x01b4*/ 133,</div><div class='del'>-      /*0xff5a*/ 1119,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e930*/ 1325,</div><div class='del'>-      /*0x2170*/ 804,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x0517*/ 426,</div><div class='del'>-      /*0x00ee*/ 39,</div><div class='del'>-      /*0x2c3e*/ 861,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xff58*/ 1117,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xff54*/ 1113,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1f32*/ 758,</div><div class='del'>-      /*0xff52*/ 1111,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x0564*/ 442,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e64*/ 1283,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x0562*/ 440,</div><div class='del'>-      /*0x1fd0*/ 798,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x16e62*/ 1281,</div><div class='del'>-      /*0x2c3a*/ 857,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e93c*/ 1337,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0xa793*/ 1079,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e60*/ 1279,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0xa687*/ 1021,</div><div class='del'>-      /*0xff4c*/ 1105,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x1e934*/ 1329,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0574*/ 458,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e74*/ 1299,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x0578*/ 462,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e78*/ 1303,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x2174*/ 808,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xa797*/ 1080,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x2178*/ 812,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x0576*/ 460,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e76*/ 1301,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x1e932*/ 1327,</div><div class='del'>-      -1,</div><div class='del'>-      /*0x0519*/ 427,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e938*/ 1333,</div><div class='del'>-      /*0xff48*/ 1101,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x2176*/ 810,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xff4a*/ 1103,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x1e93e*/ 1339,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xa695*/ 1028,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x1e93a*/ 1335,</div><div class='del'>-      /*0xa693*/ 1027,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0x0509*/ 419,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x056e*/ 452,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x16e6e*/ 1293,</div><div class='del'>-      -1,</div><div class='del'>-      /*0xa799*/ 1081,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xa697*/ 1029,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x1fe0*/ 800,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x051f*/ 430,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0xa699*/ 1030,</div><div class='del'>-      -1, -1,</div><div class='del'>-      /*0x050d*/ 421,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1,</div><div class='del'>-      /*0xa79f*/ 1084,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x1fb0*/ 796,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0xa689*/ 1022,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0xa68d*/ 1024</div><div class='del'>-    };</div><div class='del'>-</div><div class='del'>-  if (code &lt;= MAX_CODE_VALUE &amp;&amp; code &gt;= MIN_CODE_VALUE)</div><div class='del'>-    {</div><div class='del'>-      register unsigned int key = onigenc_unicode_CaseUnfold_11_hash(code);</div><div class='del'>-</div><div class='del'>-      if (key &lt;= MAX_HASH_VALUE)</div><div class='del'>-        {</div><div class='del'>-          register short s = wordlist[key];</div><div class='del'>-</div><div class='del'>-          if (s &gt;= 0 &amp;&amp; code1_equal(code, CaseUnfold_11_Table[s].from))</div><div class='del'>-            return &amp;CaseUnfold_11_Table[s].to;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-  return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const CaseUnfold_12_Type CaseUnfold_12_Table[] = {</div><div class='del'>-#define CaseUnfold_12 (*(CaseUnfold_12_Type (*)[58])(CaseUnfold_12_Table+0))</div><div class='del'>-  {{0x0061, 0x02be}, {1, {0x1e9a}}},</div><div class='del'>-  {{0x0066, 0x0066}, {1, {0xfb00}}},</div><div class='del'>-  {{0x0066, 0x0069}, {1, {0xfb01}}},</div><div class='del'>-  {{0x0066, 0x006c}, {1, {0xfb02}}},</div><div class='del'>-  {{0x0068, 0x0331}, {1, {0x1e96}}},</div><div class='del'>-  {{0x006a, 0x030c}, {1, {0x01f0}}},</div><div class='del'>-  {{0x0073, 0x0073}, {2, {0x00df, 0x1e9e}}},</div><div class='del'>-  {{0x0073, 0x0074}, {2, {0xfb05, 0xfb06}}},</div><div class='del'>-  {{0x0074, 0x0308}, {1, {0x1e97}}},</div><div class='del'>-  {{0x0077, 0x030a}, {1, {0x1e98}}},</div><div class='del'>-  {{0x0079, 0x030a}, {1, {0x1e99}}},</div><div class='del'>-  {{0x02bc, 0x006e}, {1, {0x0149}}},</div><div class='del'>-  {{0x03ac, 0x03b9}, {1, {0x1fb4}}},</div><div class='del'>-  {{0x03ae, 0x03b9}, {1, {0x1fc4}}},</div><div class='del'>-  {{0x03b1, 0x0342}, {1, {0x1fb6}}},</div><div class='del'>-  {{0x03b1, 0x03b9}, {2, {0x1fb3, 0x1fbc}}},</div><div class='del'>-  {{0x03b7, 0x0342}, {1, {0x1fc6}}},</div><div class='del'>-  {{0x03b7, 0x03b9}, {2, {0x1fc3, 0x1fcc}}},</div><div class='del'>-  {{0x03b9, 0x0342}, {1, {0x1fd6}}},</div><div class='del'>-  {{0x03c1, 0x0313}, {1, {0x1fe4}}},</div><div class='del'>-  {{0x03c5, 0x0313}, {1, {0x1f50}}},</div><div class='del'>-  {{0x03c5, 0x0342}, {1, {0x1fe6}}},</div><div class='del'>-  {{0x03c9, 0x0342}, {1, {0x1ff6}}},</div><div class='del'>-  {{0x03c9, 0x03b9}, {2, {0x1ff3, 0x1ffc}}},</div><div class='del'>-  {{0x03ce, 0x03b9}, {1, {0x1ff4}}},</div><div class='del'>-  {{0x0565, 0x0582}, {1, {0x0587}}},</div><div class='del'>-  {{0x0574, 0x0565}, {1, {0xfb14}}},</div><div class='del'>-  {{0x0574, 0x056b}, {1, {0xfb15}}},</div><div class='del'>-  {{0x0574, 0x056d}, {1, {0xfb17}}},</div><div class='del'>-  {{0x0574, 0x0576}, {1, {0xfb13}}},</div><div class='del'>-  {{0x057e, 0x0576}, {1, {0xfb16}}},</div><div class='del'>-  {{0x1f00, 0x03b9}, {2, {0x1f80, 0x1f88}}},</div><div class='del'>-  {{0x1f01, 0x03b9}, {2, {0x1f81, 0x1f89}}},</div><div class='del'>-  {{0x1f02, 0x03b9}, {2, {0x1f82, 0x1f8a}}},</div><div class='del'>-  {{0x1f03, 0x03b9}, {2, {0x1f83, 0x1f8b}}},</div><div class='del'>-  {{0x1f04, 0x03b9}, {2, {0x1f84, 0x1f8c}}},</div><div class='del'>-  {{0x1f05, 0x03b9}, {2, {0x1f85, 0x1f8d}}},</div><div class='del'>-  {{0x1f06, 0x03b9}, {2, {0x1f86, 0x1f8e}}},</div><div class='del'>-  {{0x1f07, 0x03b9}, {2, {0x1f87, 0x1f8f}}},</div><div class='del'>-  {{0x1f20, 0x03b9}, {2, {0x1f90, 0x1f98}}},</div><div class='del'>-  {{0x1f21, 0x03b9}, {2, {0x1f91, 0x1f99}}},</div><div class='del'>-  {{0x1f22, 0x03b9}, {2, {0x1f92, 0x1f9a}}},</div><div class='del'>-  {{0x1f23, 0x03b9}, {2, {0x1f93, 0x1f9b}}},</div><div class='del'>-  {{0x1f24, 0x03b9}, {2, {0x1f94, 0x1f9c}}},</div><div class='del'>-  {{0x1f25, 0x03b9}, {2, {0x1f95, 0x1f9d}}},</div><div class='del'>-  {{0x1f26, 0x03b9}, {2, {0x1f96, 0x1f9e}}},</div><div class='del'>-  {{0x1f27, 0x03b9}, {2, {0x1f97, 0x1f9f}}},</div><div class='del'>-  {{0x1f60, 0x03b9}, {2, {0x1fa0, 0x1fa8}}},</div><div class='del'>-  {{0x1f61, 0x03b9}, {2, {0x1fa1, 0x1fa9}}},</div><div class='del'>-  {{0x1f62, 0x03b9}, {2, {0x1fa2, 0x1faa}}},</div><div class='del'>-  {{0x1f63, 0x03b9}, {2, {0x1fa3, 0x1fab}}},</div><div class='del'>-  {{0x1f64, 0x03b9}, {2, {0x1fa4, 0x1fac}}},</div><div class='del'>-  {{0x1f65, 0x03b9}, {2, {0x1fa5, 0x1fad}}},</div><div class='del'>-  {{0x1f66, 0x03b9}, {2, {0x1fa6, 0x1fae}}},</div><div class='del'>-  {{0x1f67, 0x03b9}, {2, {0x1fa7, 0x1faf}}},</div><div class='del'>-  {{0x1f70, 0x03b9}, {1, {0x1fb2}}},</div><div class='del'>-  {{0x1f74, 0x03b9}, {1, {0x1fc2}}},</div><div class='del'>-  {{0x1f7c, 0x03b9}, {1, {0x1ff2}}},</div><div class='del'>-#define CaseUnfold_12_Locale (*(CaseUnfold_12_Type (*)[1])(CaseUnfold_12_Table+58))</div><div class='del'>-  {{0x0069, 0x0307}, {1, {0x0130}}},</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* ANSI-C code produced by gperf version 3.1 */</div><div class='del'>-/* Command-line: gperf -7 -k1,2,3,4,5,6 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseUnfold_12_hash -N onigenc_unicode_CaseUnfold_12_lookup -n  */</div><div class='del'>-</div><div class='del'>-/* maximum key range = 71, duplicates = 0 */</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-__inline</div><div class='del'>-#else</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-inline</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-/*ARGSUSED*/</div><div class='del'>-static unsigned int</div><div class='del'>-onigenc_unicode_CaseUnfold_12_hash(const OnigCodePoint *codes)</div><div class='del'>-{</div><div class='del'>-  static const unsigned char asso_values[] =</div><div class='del'>-    {</div><div class='del'>-       3, 58, 54, 57, 56, 16,  8,  2, 43, 82,</div><div class='del'>-       3,  1, 23, 82, 82, 82, 82, 82, 82,  4,</div><div class='del'>-      82, 82, 82, 82, 82, 82, 82, 82, 82, 82,</div><div class='del'>-      82, 82, 52, 51, 50, 49, 48, 47, 46, 45,</div><div class='del'>-      82, 82, 82, 82, 43, 82, 42, 82, 82, 13,</div><div class='del'>-      82, 82, 82, 82, 82, 11, 82,  1, 82, 82,</div><div class='del'>-      14, 82,  1, 82, 82, 31,  3, 82, 82, 30,</div><div class='del'>-      82, 82, 82, 10, 82, 82, 82, 82, 37, 82,</div><div class='del'>-      82, 82, 82, 82, 82, 82, 82, 82, 82, 82,</div><div class='del'>-      82, 82, 82, 82, 82, 82, 37, 15, 36, 35,</div><div class='del'>-      34, 17,  1, 33, 12,  4, 23, 23, 26, 21,</div><div class='del'>-      13, 82, 27, 82, 82,  2,  5, 82, 11, 16,</div><div class='del'>-      82, 15, 82, 82, 23, 82,  8, 82</div><div class='del'>-    };</div><div class='del'>-  return asso_values[bits_at(codes, 5)] + asso_values[bits_at(codes, 4)] + asso_values[bits_at(codes, 3)] + asso_values[bits_at(codes, 2)] + asso_values[bits_at(codes, 1)] + asso_values[bits_at(codes, 0)];</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const CodePointList2 *</div><div class='del'>-onigenc_unicode_CaseUnfold_12_lookup(const OnigCodePoint *codes)</div><div class='del'>-{</div><div class='del'>-  enum</div><div class='del'>-    {</div><div class='del'>-      MIN_CODE_VALUE = 0x61,</div><div class='del'>-      MAX_CODE_VALUE = 0x1f7c,</div><div class='del'>-      TOTAL_KEYWORDS = 59,</div><div class='del'>-      MIN_WORD_LENGTH = 6,</div><div class='del'>-      MAX_WORD_LENGTH = 6,</div><div class='del'>-      MIN_HASH_VALUE = 11,</div><div class='del'>-      MAX_HASH_VALUE = 81</div><div class='del'>-    };</div><div class='del'>-</div><div class='del'>-  static const short wordlist[] =</div><div class='del'>-    {</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x1f66,0x03b9*/ 53,</div><div class='del'>-      /*0x1f07,0x03b9*/ 38,</div><div class='del'>-      /*0x1f00,0x03b9*/ 31,</div><div class='del'>-      /*0x0066,0x0066*/ 1,</div><div class='del'>-      /*0x1f74,0x03b9*/ 56,</div><div class='del'>-      /*0x0073,0x0073*/ 6,</div><div class='del'>-      /*0x0066,0x0069*/ 2,</div><div class='del'>-      /*0x1f06,0x03b9*/ 37,</div><div class='del'>-      /*0x0073,0x0074*/ 7,</div><div class='del'>-      /*0x03b9,0x0342*/ 18,</div><div class='del'>-      /*0x03c9,0x03b9*/ 23,</div><div class='del'>-      /*0x03b7,0x03b9*/ 17,</div><div class='del'>-      /*0x0069,0x0307*/ 58,</div><div class='del'>-      /*0x03b1,0x03b9*/ 15,</div><div class='del'>-      /*0x1f61,0x03b9*/ 48,</div><div class='del'>-      /*0x1f05,0x03b9*/ 36,</div><div class='del'>-      /*0x1f65,0x03b9*/ 52,</div><div class='del'>-      /*0x0574,0x0576*/ 29,</div><div class='del'>-      /*0x03c9,0x0342*/ 22,</div><div class='del'>-      /*0x03b7,0x0342*/ 16,</div><div class='del'>-      /*0x057e,0x0576*/ 30,</div><div class='del'>-      /*0x03b1,0x0342*/ 14,</div><div class='del'>-      /*0x1f7c,0x03b9*/ 57,</div><div class='del'>-      /*0x0574,0x0565*/ 26,</div><div class='del'>-      /*0x0079,0x030a*/ 10,</div><div class='del'>-      /*0x0077,0x030a*/ 9,</div><div class='del'>-      /*0x1f70,0x03b9*/ 55,</div><div class='del'>-      /*0x0574,0x056d*/ 28,</div><div class='del'>-      /*0x0066,0x006c*/ 3,</div><div class='del'>-      /*0x0574,0x056b*/ 27,</div><div class='del'>-      /*0x0061,0x02be*/ 0,</div><div class='del'>-      /*0x0068,0x0331*/ 4,</div><div class='del'>-      /*0x1f67,0x03b9*/ 54,</div><div class='del'>-      /*0x1f64,0x03b9*/ 51,</div><div class='del'>-      /*0x1f63,0x03b9*/ 50,</div><div class='del'>-      /*0x1f62,0x03b9*/ 49,</div><div class='del'>-      /*0x1f60,0x03b9*/ 47,</div><div class='del'>-      /*0x03ce,0x03b9*/ 24,</div><div class='del'>-      /*0x03c5,0x0342*/ 21,</div><div class='del'>-      /*0x03c5,0x0313*/ 20,</div><div class='del'>-      /*0x03c1,0x0313*/ 19,</div><div class='del'>-      /*0x02bc,0x006e*/ 11,</div><div class='del'>-      /*0x03ae,0x03b9*/ 13,</div><div class='del'>-      /*0x03ac,0x03b9*/ 12,</div><div class='del'>-      /*0x1f27,0x03b9*/ 46,</div><div class='del'>-      /*0x1f26,0x03b9*/ 45,</div><div class='del'>-      /*0x1f25,0x03b9*/ 44,</div><div class='del'>-      /*0x1f24,0x03b9*/ 43,</div><div class='del'>-      /*0x1f23,0x03b9*/ 42,</div><div class='del'>-      /*0x1f22,0x03b9*/ 41,</div><div class='del'>-      /*0x1f21,0x03b9*/ 40,</div><div class='del'>-      /*0x1f20,0x03b9*/ 39,</div><div class='del'>-      /*0x006a,0x030c*/ 5,</div><div class='del'>-      /*0x1f02,0x03b9*/ 33,</div><div class='del'>-      /*0x0074,0x0308*/ 8,</div><div class='del'>-      /*0x1f04,0x03b9*/ 35,</div><div class='del'>-      /*0x1f03,0x03b9*/ 34,</div><div class='del'>-      /*0x1f01,0x03b9*/ 32,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x0565,0x0582*/ 25</div><div class='del'>-    };</div><div class='del'>-</div><div class='del'>-  if (codes[0] &lt;= MAX_CODE_VALUE &amp;&amp; codes[0] &gt;= MIN_CODE_VALUE &amp;&amp;</div><div class='del'>-      codes[1] &lt;= MAX_CODE_VALUE &amp;&amp; codes[1] &gt;= MIN_CODE_VALUE)</div><div class='del'>-    {</div><div class='del'>-      register unsigned int key = onigenc_unicode_CaseUnfold_12_hash(codes);</div><div class='del'>-</div><div class='del'>-      if (key &lt;= MAX_HASH_VALUE)</div><div class='del'>-        {</div><div class='del'>-          register short s = wordlist[key];</div><div class='del'>-</div><div class='del'>-          if (s &gt;= 0 &amp;&amp; code2_equal(codes, CaseUnfold_12_Table[s].from))</div><div class='del'>-            return &amp;CaseUnfold_12_Table[s].to;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-  return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const CaseUnfold_13_Type CaseUnfold_13_Table[] = {</div><div class='del'>-#define CaseUnfold_13 (*(CaseUnfold_13_Type (*)[14])(CaseUnfold_13_Table+0))</div><div class='del'>-  {{0x0066, 0x0066, 0x0069}, {1, {0xfb03}}},</div><div class='del'>-  {{0x0066, 0x0066, 0x006c}, {1, {0xfb04}}},</div><div class='del'>-  {{0x03b1, 0x0342, 0x03b9}, {1, {0x1fb7}}},</div><div class='del'>-  {{0x03b7, 0x0342, 0x03b9}, {1, {0x1fc7}}},</div><div class='del'>-  {{0x03b9, 0x0308, 0x0300}, {1, {0x1fd2}}},</div><div class='del'>-  {{0x03b9, 0x0308, 0x0301}, {2, {0x0390, 0x1fd3}}},</div><div class='del'>-  {{0x03b9, 0x0308, 0x0342}, {1, {0x1fd7}}},</div><div class='del'>-  {{0x03c5, 0x0308, 0x0300}, {1, {0x1fe2}}},</div><div class='del'>-  {{0x03c5, 0x0308, 0x0301}, {2, {0x03b0, 0x1fe3}}},</div><div class='del'>-  {{0x03c5, 0x0308, 0x0342}, {1, {0x1fe7}}},</div><div class='del'>-  {{0x03c5, 0x0313, 0x0300}, {1, {0x1f52}}},</div><div class='del'>-  {{0x03c5, 0x0313, 0x0301}, {1, {0x1f54}}},</div><div class='del'>-  {{0x03c5, 0x0313, 0x0342}, {1, {0x1f56}}},</div><div class='del'>-  {{0x03c9, 0x0342, 0x03b9}, {1, {0x1ff7}}},</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* ANSI-C code produced by gperf version 3.1 */</div><div class='del'>-/* Command-line: gperf -7 -k1,2,3,4,5,6,7,8,9 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseUnfold_13_hash -N onigenc_unicode_CaseUnfold_13_lookup -n  */</div><div class='del'>-</div><div class='del'>-/* maximum key range = 20, duplicates = 0 */</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-__inline</div><div class='del'>-#else</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-inline</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-/*ARGSUSED*/</div><div class='del'>-static unsigned int</div><div class='del'>-onigenc_unicode_CaseUnfold_13_hash(const OnigCodePoint *codes)</div><div class='del'>-{</div><div class='del'>-  static const unsigned char asso_values[] =</div><div class='del'>-    {</div><div class='del'>-       7,  4, 47, 47, 47, 47,  1,  1,  2, 47,</div><div class='del'>-      47, 47, 47, 47, 47, 47, 47, 47, 47,  1,</div><div class='del'>-      47, 47, 47, 47, 47, 47, 47, 47, 47, 47,</div><div class='del'>-      47, 47, 47, 47, 47, 47, 47, 47, 47, 47,</div><div class='del'>-      47, 47, 47, 47, 47, 47, 47, 47, 47, 11,</div><div class='del'>-      47, 47, 47, 47, 47, 10, 47,  2, 47, 47,</div><div class='del'>-      47, 47, 47, 47, 47, 47,  1, 47, 47,  1,</div><div class='del'>-      47, 47, 47,  9, 47, 47, 47, 47, 47, 47,</div><div class='del'>-      47, 47, 47, 47, 47, 47, 47, 47, 47, 47,</div><div class='del'>-      47, 47, 47, 47, 47, 47, 47, 47, 47, 47,</div><div class='del'>-      47, 47,  1, 47, 47,  2, 47, 47,  1, 47,</div><div class='del'>-      47, 47, 47, 47, 47, 47, 47, 47, 47, 47,</div><div class='del'>-      47, 47, 47, 47, 47, 47, 47, 47</div><div class='del'>-    };</div><div class='del'>-  return asso_values[bits_at(codes, 8)] + asso_values[bits_at(codes, 7)] + asso_values[bits_at(codes, 6)] + asso_values[bits_at(codes, 5)] + asso_values[bits_at(codes, 4)] + asso_values[bits_at(codes, 3)] + asso_values[bits_at(codes, 2)] + asso_values[bits_at(codes, 1)] + asso_values[bits_at(codes, 0)];</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const CodePointList2 *</div><div class='del'>-onigenc_unicode_CaseUnfold_13_lookup(const OnigCodePoint *codes)</div><div class='del'>-{</div><div class='del'>-  enum</div><div class='del'>-    {</div><div class='del'>-      MIN_CODE_VALUE = 0x66,</div><div class='del'>-      MAX_CODE_VALUE = 0x3c9,</div><div class='del'>-      TOTAL_KEYWORDS = 14,</div><div class='del'>-      MIN_WORD_LENGTH = 9,</div><div class='del'>-      MAX_WORD_LENGTH = 9,</div><div class='del'>-      MIN_HASH_VALUE = 27,</div><div class='del'>-      MAX_HASH_VALUE = 46</div><div class='del'>-    };</div><div class='del'>-</div><div class='del'>-  static const short wordlist[] =</div><div class='del'>-    {</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      -1, -1, -1,</div><div class='del'>-      /*0x03c5,0x0313,0x0342*/ 12,</div><div class='del'>-      /*0x03c5,0x0308,0x0342*/ 9,</div><div class='del'>-      /*0x03b9,0x0308,0x0342*/ 6,</div><div class='del'>-      /*0x03c5,0x0313,0x0301*/ 11,</div><div class='del'>-      /*0x03c5,0x0308,0x0301*/ 8,</div><div class='del'>-      /*0x03b9,0x0308,0x0301*/ 5,</div><div class='del'>-      /*0x03c5,0x0313,0x0300*/ 10,</div><div class='del'>-      /*0x03c5,0x0308,0x0300*/ 7,</div><div class='del'>-      /*0x03b9,0x0308,0x0300*/ 4,</div><div class='del'>-      /*0x03c9,0x0342,0x03b9*/ 13,</div><div class='del'>-      /*0x03b7,0x0342,0x03b9*/ 3,</div><div class='del'>-      /*0x03b1,0x0342,0x03b9*/ 2,</div><div class='del'>-      -1, -1, -1, -1, -1, -1,</div><div class='del'>-      /*0x0066,0x0066,0x006c*/ 1,</div><div class='del'>-      /*0x0066,0x0066,0x0069*/ 0</div><div class='del'>-    };</div><div class='del'>-</div><div class='del'>-  if (codes[0] &lt;= MAX_CODE_VALUE &amp;&amp; codes[0] &gt;= MIN_CODE_VALUE &amp;&amp;</div><div class='del'>-      codes[1] &lt;= MAX_CODE_VALUE &amp;&amp; codes[1] &gt;= MIN_CODE_VALUE &amp;&amp;</div><div class='del'>-      codes[2] &lt;= MAX_CODE_VALUE &amp;&amp; codes[2] &gt;= MIN_CODE_VALUE)</div><div class='del'>-    {</div><div class='del'>-      register unsigned int key = onigenc_unicode_CaseUnfold_13_hash(codes);</div><div class='del'>-</div><div class='del'>-      if (key &lt;= MAX_HASH_VALUE)</div><div class='del'>-        {</div><div class='del'>-          register short s = wordlist[key];</div><div class='del'>-</div><div class='del'>-          if (s &gt;= 0 &amp;&amp; code3_equal(codes, CaseUnfold_13_Table[s].from))</div><div class='del'>-            return &amp;CaseUnfold_13_Table[s].to;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-  return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const OnigCodePoint CaseMappingSpecials[] = {</div><div class='del'>-    L(1)|0x039C,</div><div class='del'>-    L(2)|0x0053, 0x0073, L(2)|0x0053, 0x0053,</div><div class='del'>-    L(2)|0x02BC, 0x004E,</div><div class='del'>-    L(1)|0x0053,</div><div class='del'>-    L(1)|0x01C5,</div><div class='del'>-    L(2)|0x0064, 0x017D, L(1)|0x01C4,</div><div class='del'>-    L(1)|0x01C8,</div><div class='del'>-    L(2)|0x006C, 0x004A, L(1)|0x01C7,</div><div class='del'>-    L(1)|0x01CB,</div><div class='del'>-    L(2)|0x006E, 0x004A, L(1)|0x01CA,</div><div class='del'>-    L(2)|0x004A, 0x030C,</div><div class='del'>-    L(1)|0x01F2,</div><div class='del'>-    L(2)|0x0064, 0x005A, L(1)|0x01F1,</div><div class='del'>-    L(1)|0x0399,</div><div class='del'>-    L(3)|0x0399, 0x0308, 0x0301,</div><div class='del'>-    L(3)|0x03A5, 0x0308, 0x0301,</div><div class='del'>-    L(1)|0x03A3,</div><div class='del'>-    L(1)|0x0392,</div><div class='del'>-    L(1)|0x0398,</div><div class='del'>-    L(1)|0x03A6,</div><div class='del'>-    L(1)|0x03A0,</div><div class='del'>-    L(1)|0x039A,</div><div class='del'>-    L(1)|0x03A1,</div><div class='del'>-    L(1)|0x0395,</div><div class='del'>-    L(2)|0x0535, 0x0582, L(2)|0x0535, 0x0552,</div><div class='del'>-    L(1)|0x0412,</div><div class='del'>-    L(1)|0x0414,</div><div class='del'>-    L(1)|0x041E,</div><div class='del'>-    L(1)|0x0421,</div><div class='del'>-    L(1)|0x0422,</div><div class='del'>-    L(1)|0x0422,</div><div class='del'>-    L(1)|0x042A,</div><div class='del'>-    L(1)|0x0462,</div><div class='del'>-    L(1)|0xA64A,</div><div class='del'>-    L(2)|0x0048, 0x0331,</div><div class='del'>-    L(2)|0x0054, 0x0308,</div><div class='del'>-    L(2)|0x0057, 0x030A,</div><div class='del'>-    L(2)|0x0059, 0x030A,</div><div class='del'>-    L(2)|0x0041, 0x02BE,</div><div class='del'>-    L(1)|0x1E60,</div><div class='del'>-    L(1)|0x00DF,</div><div class='del'>-    L(2)|0x03A5, 0x0313,</div><div class='del'>-    L(3)|0x03A5, 0x0313, 0x0300,</div><div class='del'>-    L(3)|0x03A5, 0x0313, 0x0301,</div><div class='del'>-    L(3)|0x03A5, 0x0313, 0x0342,</div><div class='del'>-    L(1)|0x1F88, L(2)|0x1F08, 0x0399,</div><div class='del'>-    L(1)|0x1F89, L(2)|0x1F09, 0x0399,</div><div class='del'>-    L(1)|0x1F8A, L(2)|0x1F0A, 0x0399,</div><div class='del'>-    L(1)|0x1F8B, L(2)|0x1F0B, 0x0399,</div><div class='del'>-    L(1)|0x1F8C, L(2)|0x1F0C, 0x0399,</div><div class='del'>-    L(1)|0x1F8D, L(2)|0x1F0D, 0x0399,</div><div class='del'>-    L(1)|0x1F8E, L(2)|0x1F0E, 0x0399,</div><div class='del'>-    L(1)|0x1F8F, L(2)|0x1F0F, 0x0399,</div><div class='del'>-    L(2)|0x1F00, 0x0399, L(1)|0x1F80, L(2)|0x1F08, 0x0399,</div><div class='del'>-    L(2)|0x1F01, 0x0399, L(1)|0x1F81, L(2)|0x1F09, 0x0399,</div><div class='del'>-    L(2)|0x1F02, 0x0399, L(1)|0x1F82, L(2)|0x1F0A, 0x0399,</div><div class='del'>-    L(2)|0x1F03, 0x0399, L(1)|0x1F83, L(2)|0x1F0B, 0x0399,</div><div class='del'>-    L(2)|0x1F04, 0x0399, L(1)|0x1F84, L(2)|0x1F0C, 0x0399,</div><div class='del'>-    L(2)|0x1F05, 0x0399, L(1)|0x1F85, L(2)|0x1F0D, 0x0399,</div><div class='del'>-    L(2)|0x1F06, 0x0399, L(1)|0x1F86, L(2)|0x1F0E, 0x0399,</div><div class='del'>-    L(2)|0x1F07, 0x0399, L(1)|0x1F87, L(2)|0x1F0F, 0x0399,</div><div class='del'>-    L(1)|0x1F98, L(2)|0x1F28, 0x0399,</div><div class='del'>-    L(1)|0x1F99, L(2)|0x1F29, 0x0399,</div><div class='del'>-    L(1)|0x1F9A, L(2)|0x1F2A, 0x0399,</div><div class='del'>-    L(1)|0x1F9B, L(2)|0x1F2B, 0x0399,</div><div class='del'>-    L(1)|0x1F9C, L(2)|0x1F2C, 0x0399,</div><div class='del'>-    L(1)|0x1F9D, L(2)|0x1F2D, 0x0399,</div><div class='del'>-    L(1)|0x1F9E, L(2)|0x1F2E, 0x0399,</div><div class='del'>-    L(1)|0x1F9F, L(2)|0x1F2F, 0x0399,</div><div class='del'>-    L(2)|0x1F20, 0x0399, L(1)|0x1F90, L(2)|0x1F28, 0x0399,</div><div class='del'>-    L(2)|0x1F21, 0x0399, L(1)|0x1F91, L(2)|0x1F29, 0x0399,</div><div class='del'>-    L(2)|0x1F22, 0x0399, L(1)|0x1F92, L(2)|0x1F2A, 0x0399,</div><div class='del'>-    L(2)|0x1F23, 0x0399, L(1)|0x1F93, L(2)|0x1F2B, 0x0399,</div><div class='del'>-    L(2)|0x1F24, 0x0399, L(1)|0x1F94, L(2)|0x1F2C, 0x0399,</div><div class='del'>-    L(2)|0x1F25, 0x0399, L(1)|0x1F95, L(2)|0x1F2D, 0x0399,</div><div class='del'>-    L(2)|0x1F26, 0x0399, L(1)|0x1F96, L(2)|0x1F2E, 0x0399,</div><div class='del'>-    L(2)|0x1F27, 0x0399, L(1)|0x1F97, L(2)|0x1F2F, 0x0399,</div><div class='del'>-    L(1)|0x1FA8, L(2)|0x1F68, 0x0399,</div><div class='del'>-    L(1)|0x1FA9, L(2)|0x1F69, 0x0399,</div><div class='del'>-    L(1)|0x1FAA, L(2)|0x1F6A, 0x0399,</div><div class='del'>-    L(1)|0x1FAB, L(2)|0x1F6B, 0x0399,</div><div class='del'>-    L(1)|0x1FAC, L(2)|0x1F6C, 0x0399,</div><div class='del'>-    L(1)|0x1FAD, L(2)|0x1F6D, 0x0399,</div><div class='del'>-    L(1)|0x1FAE, L(2)|0x1F6E, 0x0399,</div><div class='del'>-    L(1)|0x1FAF, L(2)|0x1F6F, 0x0399,</div><div class='del'>-    L(2)|0x1F60, 0x0399, L(1)|0x1FA0, L(2)|0x1F68, 0x0399,</div><div class='del'>-    L(2)|0x1F61, 0x0399, L(1)|0x1FA1, L(2)|0x1F69, 0x0399,</div><div class='del'>-    L(2)|0x1F62, 0x0399, L(1)|0x1FA2, L(2)|0x1F6A, 0x0399,</div><div class='del'>-    L(2)|0x1F63, 0x0399, L(1)|0x1FA3, L(2)|0x1F6B, 0x0399,</div><div class='del'>-    L(2)|0x1F64, 0x0399, L(1)|0x1FA4, L(2)|0x1F6C, 0x0399,</div><div class='del'>-    L(2)|0x1F65, 0x0399, L(1)|0x1FA5, L(2)|0x1F6D, 0x0399,</div><div class='del'>-    L(2)|0x1F66, 0x0399, L(1)|0x1FA6, L(2)|0x1F6E, 0x0399,</div><div class='del'>-    L(2)|0x1F67, 0x0399, L(1)|0x1FA7, L(2)|0x1F6F, 0x0399,</div><div class='del'>-    L(2)|0x1FBA, 0x0345, L(2)|0x1FBA, 0x0399,</div><div class='del'>-    L(1)|0x1FBC, L(2)|0x0391, 0x0399,</div><div class='del'>-    L(2)|0x0386, 0x0345, L(2)|0x0386, 0x0399,</div><div class='del'>-    L(2)|0x0391, 0x0342,</div><div class='del'>-    L(3)|0x0391, 0x0342, 0x0345, L(3)|0x0391, 0x0342, 0x0399,</div><div class='del'>-    L(2)|0x03B1, 0x0399, L(1)|0x1FB3, L(2)|0x0391, 0x0399,</div><div class='del'>-    L(1)|0x0399,</div><div class='del'>-    L(2)|0x1FCA, 0x0345, L(2)|0x1FCA, 0x0399,</div><div class='del'>-    L(1)|0x1FCC, L(2)|0x0397, 0x0399,</div><div class='del'>-    L(2)|0x0389, 0x0345, L(2)|0x0389, 0x0399,</div><div class='del'>-    L(2)|0x0397, 0x0342,</div><div class='del'>-    L(3)|0x0397, 0x0342, 0x0345, L(3)|0x0397, 0x0342, 0x0399,</div><div class='del'>-    L(2)|0x03B7, 0x0399, L(1)|0x1FC3, L(2)|0x0397, 0x0399,</div><div class='del'>-    L(3)|0x0399, 0x0308, 0x0300,</div><div class='del'>-    L(3)|0x0399, 0x0308, 0x0301,</div><div class='del'>-    L(2)|0x0399, 0x0342,</div><div class='del'>-    L(3)|0x0399, 0x0308, 0x0342,</div><div class='del'>-    L(3)|0x03A5, 0x0308, 0x0300,</div><div class='del'>-    L(3)|0x03A5, 0x0308, 0x0301,</div><div class='del'>-    L(2)|0x03A1, 0x0313,</div><div class='del'>-    L(2)|0x03A5, 0x0342,</div><div class='del'>-    L(3)|0x03A5, 0x0308, 0x0342,</div><div class='del'>-    L(2)|0x1FFA, 0x0345, L(2)|0x1FFA, 0x0399,</div><div class='del'>-    L(1)|0x1FFC, L(2)|0x03A9, 0x0399,</div><div class='del'>-    L(2)|0x038F, 0x0345, L(2)|0x038F, 0x0399,</div><div class='del'>-    L(2)|0x03A9, 0x0342,</div><div class='del'>-    L(3)|0x03A9, 0x0342, 0x0345, L(3)|0x03A9, 0x0342, 0x0399,</div><div class='del'>-    L(2)|0x03C9, 0x0399, L(1)|0x1FF3, L(2)|0x03A9, 0x0399,</div><div class='del'>-    L(2)|0x0046, 0x0066, L(2)|0x0046, 0x0046,</div><div class='del'>-    L(2)|0x0046, 0x0069, L(2)|0x0046, 0x0049,</div><div class='del'>-    L(2)|0x0046, 0x006C, L(2)|0x0046, 0x004C,</div><div class='del'>-    L(3)|0x0046, 0x0066, 0x0069, L(3)|0x0046, 0x0046, 0x0049,</div><div class='del'>-    L(3)|0x0046, 0x0066, 0x006C, L(3)|0x0046, 0x0046, 0x004C,</div><div class='del'>-    L(2)|0x0053, 0x0074, L(2)|0x0053, 0x0054,</div><div class='del'>-    L(2)|0x0053, 0x0074, L(2)|0x0053, 0x0054,</div><div class='del'>-    L(2)|0x0544, 0x0576, L(2)|0x0544, 0x0546,</div><div class='del'>-    L(2)|0x0544, 0x0565, L(2)|0x0544, 0x0535,</div><div class='del'>-    L(2)|0x0544, 0x056B, L(2)|0x0544, 0x053B,</div><div class='del'>-    L(2)|0x054E, 0x0576, L(2)|0x054E, 0x0546,</div><div class='del'>-    L(2)|0x0544, 0x056D, L(2)|0x0544, 0x053D,</div><div class='del'>-};</div><div class='head'>diff --git a/enc/unicode/11.0.0/name2ctype.h b/enc/unicode/11.0.0/name2ctype.h<br/>deleted file mode 100644<br/>index 066afa8b83..0000000000<br/>--- a/<a href='/ruby.git/tree/enc/unicode/11.0.0/name2ctype.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/unicode/11.0.0/name2ctype.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,39943 +0,0 @@</div><div class='del'>-/* ANSI-C code produced by gperf version 3.1 */</div><div class='del'>-/* Command-line: gperf -7 -c -j1 -i1 -t -C -P -T -H uniname2ctype_hash -Q uniname2ctype_pool -N uniname2ctype_p  */</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-/* Computed positions: -k'1,3' */</div><div class='del'>-#else /* USE_UNICODE_PROPERTIES */</div><div class='del'>-/* Computed positions: -k'1-3,5-6,12,16,$' */</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-</div><div class='del'>-#if !((' ' == 32) &amp;&amp; ('!' == 33) &amp;&amp; ('"' == 34) &amp;&amp; ('#' == 35) \</div><div class='del'>-      &amp;&amp; ('%' == 37) &amp;&amp; ('&amp;' == 38) &amp;&amp; ('\'' == 39) &amp;&amp; ('(' == 40) \</div><div class='del'>-      &amp;&amp; (')' == 41) &amp;&amp; ('*' == 42) &amp;&amp; ('+' == 43) &amp;&amp; (',' == 44) \</div><div class='del'>-      &amp;&amp; ('-' == 45) &amp;&amp; ('.' == 46) &amp;&amp; ('/' == 47) &amp;&amp; ('0' == 48) \</div><div class='del'>-      &amp;&amp; ('1' == 49) &amp;&amp; ('2' == 50) &amp;&amp; ('3' == 51) &amp;&amp; ('4' == 52) \</div><div class='del'>-      &amp;&amp; ('5' == 53) &amp;&amp; ('6' == 54) &amp;&amp; ('7' == 55) &amp;&amp; ('8' == 56) \</div><div class='del'>-      &amp;&amp; ('9' == 57) &amp;&amp; (':' == 58) &amp;&amp; (';' == 59) &amp;&amp; ('&lt;' == 60) \</div><div class='del'>-      &amp;&amp; ('=' == 61) &amp;&amp; ('&gt;' == 62) &amp;&amp; ('?' == 63) &amp;&amp; ('A' == 65) \</div><div class='del'>-      &amp;&amp; ('B' == 66) &amp;&amp; ('C' == 67) &amp;&amp; ('D' == 68) &amp;&amp; ('E' == 69) \</div><div class='del'>-      &amp;&amp; ('F' == 70) &amp;&amp; ('G' == 71) &amp;&amp; ('H' == 72) &amp;&amp; ('I' == 73) \</div><div class='del'>-      &amp;&amp; ('J' == 74) &amp;&amp; ('K' == 75) &amp;&amp; ('L' == 76) &amp;&amp; ('M' == 77) \</div><div class='del'>-      &amp;&amp; ('N' == 78) &amp;&amp; ('O' == 79) &amp;&amp; ('P' == 80) &amp;&amp; ('Q' == 81) \</div><div class='del'>-      &amp;&amp; ('R' == 82) &amp;&amp; ('S' == 83) &amp;&amp; ('T' == 84) &amp;&amp; ('U' == 85) \</div><div class='del'>-      &amp;&amp; ('V' == 86) &amp;&amp; ('W' == 87) &amp;&amp; ('X' == 88) &amp;&amp; ('Y' == 89) \</div><div class='del'>-      &amp;&amp; ('Z' == 90) &amp;&amp; ('[' == 91) &amp;&amp; ('\\' == 92) &amp;&amp; (']' == 93) \</div><div class='del'>-      &amp;&amp; ('^' == 94) &amp;&amp; ('_' == 95) &amp;&amp; ('a' == 97) &amp;&amp; ('b' == 98) \</div><div class='del'>-      &amp;&amp; ('c' == 99) &amp;&amp; ('d' == 100) &amp;&amp; ('e' == 101) &amp;&amp; ('f' == 102) \</div><div class='del'>-      &amp;&amp; ('g' == 103) &amp;&amp; ('h' == 104) &amp;&amp; ('i' == 105) &amp;&amp; ('j' == 106) \</div><div class='del'>-      &amp;&amp; ('k' == 107) &amp;&amp; ('l' == 108) &amp;&amp; ('m' == 109) &amp;&amp; ('n' == 110) \</div><div class='del'>-      &amp;&amp; ('o' == 111) &amp;&amp; ('p' == 112) &amp;&amp; ('q' == 113) &amp;&amp; ('r' == 114) \</div><div class='del'>-      &amp;&amp; ('s' == 115) &amp;&amp; ('t' == 116) &amp;&amp; ('u' == 117) &amp;&amp; ('v' == 118) \</div><div class='del'>-      &amp;&amp; ('w' == 119) &amp;&amp; ('x' == 120) &amp;&amp; ('y' == 121) &amp;&amp; ('z' == 122) \</div><div class='del'>-      &amp;&amp; ('{' == 123) &amp;&amp; ('|' == 124) &amp;&amp; ('}' == 125) &amp;&amp; ('~' == 126))</div><div class='del'>-/* The character set is not based on ISO-646.  */</div><div class='del'>-#error "gperf generated tables don't work with this execution character set. Please report a bug to &lt;bug-gperf@gnu.org&gt;."</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* 'NEWLINE': [[:NEWLINE:]] */</div><div class='del'>-static const OnigCodePoint CR_NEWLINE[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x000a, 0x000a,</div><div class='del'>-}; /* CR_NEWLINE */</div><div class='del'>-</div><div class='del'>-/* 'Alpha': [[:Alpha:]] */</div><div class='del'>-static const OnigCodePoint CR_Alpha[] = {</div><div class='del'>-	676,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x02c1,</div><div class='del'>-	0x02c6, 0x02d1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x02ec, 0x02ec,</div><div class='del'>-	0x02ee, 0x02ee,</div><div class='del'>-	0x0345, 0x0345,</div><div class='del'>-	0x0370, 0x0374,</div><div class='del'>-	0x0376, 0x0377,</div><div class='del'>-	0x037a, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03f5,</div><div class='del'>-	0x03f7, 0x0481,</div><div class='del'>-	0x048a, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x0559,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x05b0, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c5,</div><div class='del'>-	0x05c7, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f2,</div><div class='del'>-	0x0610, 0x061a,</div><div class='del'>-	0x0620, 0x0657,</div><div class='del'>-	0x0659, 0x065f,</div><div class='del'>-	0x066e, 0x06d3,</div><div class='del'>-	0x06d5, 0x06dc,</div><div class='del'>-	0x06e1, 0x06e8,</div><div class='del'>-	0x06ed, 0x06ef,</div><div class='del'>-	0x06fa, 0x06fc,</div><div class='del'>-	0x06ff, 0x06ff,</div><div class='del'>-	0x0710, 0x073f,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07ca, 0x07ea,</div><div class='del'>-	0x07f4, 0x07f5,</div><div class='del'>-	0x07fa, 0x07fa,</div><div class='del'>-	0x0800, 0x0817,</div><div class='del'>-	0x081a, 0x082c,</div><div class='del'>-	0x0840, 0x0858,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d4, 0x08df,</div><div class='del'>-	0x08e3, 0x08e9,</div><div class='del'>-	0x08f0, 0x093b,</div><div class='del'>-	0x093d, 0x094c,</div><div class='del'>-	0x094e, 0x0950,</div><div class='del'>-	0x0955, 0x0963,</div><div class='del'>-	0x0971, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bd, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cc,</div><div class='del'>-	0x09ce, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09f0, 0x09f1,</div><div class='del'>-	0x09fc, 0x09fc,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4c,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a70, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abd, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acc,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0af9, 0x0afc,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3d, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4c,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b71, 0x0b71,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcc,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0c00, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4c,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c80, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbd, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccc,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4c,</div><div class='del'>-	0x0d4e, 0x0d4e,</div><div class='del'>-	0x0d54, 0x0d57,</div><div class='del'>-	0x0d5f, 0x0d63,</div><div class='del'>-	0x0d7a, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df3,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e40, 0x0e46,</div><div class='del'>-	0x0e4d, 0x0e4d,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ecd, 0x0ecd,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f00,</div><div class='del'>-	0x0f40, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f81,</div><div class='del'>-	0x0f88, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x1000, 0x1036,</div><div class='del'>-	0x1038, 0x1038,</div><div class='del'>-	0x103b, 0x103f,</div><div class='del'>-	0x1050, 0x1062,</div><div class='del'>-	0x1065, 0x1068,</div><div class='del'>-	0x106e, 0x1086,</div><div class='del'>-	0x108e, 0x108e,</div><div class='del'>-	0x109c, 0x109d,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fc, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135f, 0x135f,</div><div class='del'>-	0x1380, 0x138f,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1401, 0x166c,</div><div class='del'>-	0x166f, 0x167f,</div><div class='del'>-	0x1681, 0x169a,</div><div class='del'>-	0x16a0, 0x16ea,</div><div class='del'>-	0x16ee, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1713,</div><div class='del'>-	0x1720, 0x1733,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17b3,</div><div class='del'>-	0x17b6, 0x17c8,</div><div class='del'>-	0x17d7, 0x17d7,</div><div class='del'>-	0x17dc, 0x17dc,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x1938,</div><div class='del'>-	0x1950, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x1a00, 0x1a1b,</div><div class='del'>-	0x1a20, 0x1a5e,</div><div class='del'>-	0x1a61, 0x1a74,</div><div class='del'>-	0x1aa7, 0x1aa7,</div><div class='del'>-	0x1b00, 0x1b33,</div><div class='del'>-	0x1b35, 0x1b43,</div><div class='del'>-	0x1b45, 0x1b4b,</div><div class='del'>-	0x1b80, 0x1ba9,</div><div class='del'>-	0x1bac, 0x1baf,</div><div class='del'>-	0x1bba, 0x1be5,</div><div class='del'>-	0x1be7, 0x1bf1,</div><div class='del'>-	0x1c00, 0x1c35,</div><div class='del'>-	0x1c4d, 0x1c4f,</div><div class='del'>-	0x1c5a, 0x1c7d,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1ce9, 0x1cec,</div><div class='del'>-	0x1cee, 0x1cf3,</div><div class='del'>-	0x1cf5, 0x1cf6,</div><div class='del'>-	0x1d00, 0x1dbf,</div><div class='del'>-	0x1de7, 0x1df4,</div><div class='del'>-	0x1e00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fe0, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffc,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2119, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x212d,</div><div class='del'>-	0x212f, 0x2139,</div><div class='del'>-	0x213c, 0x213f,</div><div class='del'>-	0x2145, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2160, 0x2188,</div><div class='del'>-	0x24b6, 0x24e9,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2ce4,</div><div class='del'>-	0x2ceb, 0x2cee,</div><div class='del'>-	0x2cf2, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0x2e2f, 0x2e2f,</div><div class='del'>-	0x3005, 0x3007,</div><div class='del'>-	0x3021, 0x3029,</div><div class='del'>-	0x3031, 0x3035,</div><div class='del'>-	0x3038, 0x303c,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x309d, 0x309f,</div><div class='del'>-	0x30a1, 0x30fa,</div><div class='del'>-	0x30fc, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x31a0, 0x31ba,</div><div class='del'>-	0x31f0, 0x31ff,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa4d0, 0xa4fd,</div><div class='del'>-	0xa500, 0xa60c,</div><div class='del'>-	0xa610, 0xa61f,</div><div class='del'>-	0xa62a, 0xa62b,</div><div class='del'>-	0xa640, 0xa66e,</div><div class='del'>-	0xa674, 0xa67b,</div><div class='del'>-	0xa67f, 0xa6ef,</div><div class='del'>-	0xa717, 0xa71f,</div><div class='del'>-	0xa722, 0xa788,</div><div class='del'>-	0xa78b, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa801,</div><div class='del'>-	0xa803, 0xa805,</div><div class='del'>-	0xa807, 0xa80a,</div><div class='del'>-	0xa80c, 0xa827,</div><div class='del'>-	0xa840, 0xa873,</div><div class='del'>-	0xa880, 0xa8c3,</div><div class='del'>-	0xa8c5, 0xa8c5,</div><div class='del'>-	0xa8f2, 0xa8f7,</div><div class='del'>-	0xa8fb, 0xa8fb,</div><div class='del'>-	0xa8fd, 0xa8fe,</div><div class='del'>-	0xa90a, 0xa92a,</div><div class='del'>-	0xa930, 0xa952,</div><div class='del'>-	0xa960, 0xa97c,</div><div class='del'>-	0xa980, 0xa9b2,</div><div class='del'>-	0xa9b4, 0xa9bf,</div><div class='del'>-	0xa9cf, 0xa9cf,</div><div class='del'>-	0xa9e0, 0xa9e4,</div><div class='del'>-	0xa9e6, 0xa9ef,</div><div class='del'>-	0xa9fa, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa60, 0xaa76,</div><div class='del'>-	0xaa7a, 0xaa7a,</div><div class='del'>-	0xaa7e, 0xaabe,</div><div class='del'>-	0xaac0, 0xaac0,</div><div class='del'>-	0xaac2, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadd,</div><div class='del'>-	0xaae0, 0xaaef,</div><div class='del'>-	0xaaf2, 0xaaf5,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab5c, 0xab65,</div><div class='del'>-	0xab70, 0xabea,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb28,</div><div class='del'>-	0xfb2a, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3d,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfb,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0xff66, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10140, 0x10174,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031f,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x103a0, 0x103c3,</div><div class='del'>-	0x103c8, 0x103cf,</div><div class='del'>-	0x103d1, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10860, 0x10876,</div><div class='del'>-	0x10880, 0x1089e,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x10900, 0x10915,</div><div class='del'>-	0x10920, 0x10939,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a60, 0x10a7c,</div><div class='del'>-	0x10a80, 0x10a9c,</div><div class='del'>-	0x10ac0, 0x10ac7,</div><div class='del'>-	0x10ac9, 0x10ae4,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b40, 0x10b55,</div><div class='del'>-	0x10b60, 0x10b72,</div><div class='del'>-	0x10b80, 0x10b91,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10d00, 0x10d27,</div><div class='del'>-	0x10f00, 0x10f1c,</div><div class='del'>-	0x10f27, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f45,</div><div class='del'>-	0x11000, 0x11045,</div><div class='del'>-	0x11082, 0x110b8,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x11100, 0x11132,</div><div class='del'>-	0x11144, 0x11146,</div><div class='del'>-	0x11150, 0x11172,</div><div class='del'>-	0x11176, 0x11176,</div><div class='del'>-	0x11180, 0x111bf,</div><div class='del'>-	0x111c1, 0x111c4,</div><div class='del'>-	0x111da, 0x111da,</div><div class='del'>-	0x111dc, 0x111dc,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x11234,</div><div class='del'>-	0x11237, 0x11237,</div><div class='del'>-	0x1123e, 0x1123e,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a8,</div><div class='del'>-	0x112b0, 0x112e8,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133d, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134c,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11400, 0x11441,</div><div class='del'>-	0x11443, 0x11445,</div><div class='del'>-	0x11447, 0x1144a,</div><div class='del'>-	0x11480, 0x114c1,</div><div class='del'>-	0x114c4, 0x114c5,</div><div class='del'>-	0x114c7, 0x114c7,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115be,</div><div class='del'>-	0x115d8, 0x115dd,</div><div class='del'>-	0x11600, 0x1163e,</div><div class='del'>-	0x11640, 0x11640,</div><div class='del'>-	0x11644, 0x11644,</div><div class='del'>-	0x11680, 0x116b5,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x1171d, 0x1172a,</div><div class='del'>-	0x11800, 0x11838,</div><div class='del'>-	0x118a0, 0x118df,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a32,</div><div class='del'>-	0x11a35, 0x11a3e,</div><div class='del'>-	0x11a50, 0x11a83,</div><div class='del'>-	0x11a86, 0x11a97,</div><div class='del'>-	0x11a9d, 0x11a9d,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c3e,</div><div class='del'>-	0x11c40, 0x11c40,</div><div class='del'>-	0x11c72, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d41,</div><div class='del'>-	0x11d43, 0x11d43,</div><div class='del'>-	0x11d46, 0x11d47,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d96,</div><div class='del'>-	0x11d98, 0x11d98,</div><div class='del'>-	0x11ee0, 0x11ef6,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16b00, 0x16b36,</div><div class='del'>-	0x16b40, 0x16b43,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e7f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f93, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9e, 0x1bc9e,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6fa,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d734,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d76e,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d7a8,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7cb,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e900, 0x1e943,</div><div class='del'>-	0x1e947, 0x1e947,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1f130, 0x1f149,</div><div class='del'>-	0x1f150, 0x1f169,</div><div class='del'>-	0x1f170, 0x1f189,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-}; /* CR_Alpha */</div><div class='del'>-</div><div class='del'>-/* 'Blank': [[:Blank:]] */</div><div class='del'>-static const OnigCodePoint CR_Blank[] = {</div><div class='del'>-	8,</div><div class='del'>-	0x0009, 0x0009,</div><div class='del'>-	0x0020, 0x0020,</div><div class='del'>-	0x00a0, 0x00a0,</div><div class='del'>-	0x1680, 0x1680,</div><div class='del'>-	0x2000, 0x200a,</div><div class='del'>-	0x202f, 0x202f,</div><div class='del'>-	0x205f, 0x205f,</div><div class='del'>-	0x3000, 0x3000,</div><div class='del'>-}; /* CR_Blank */</div><div class='del'>-</div><div class='del'>-/* 'Cntrl': [[:Cntrl:]] */</div><div class='del'>-static const OnigCodePoint CR_Cntrl[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x0000, 0x001f,</div><div class='del'>-	0x007f, 0x009f,</div><div class='del'>-}; /* CR_Cntrl */</div><div class='del'>-</div><div class='del'>-/* 'Digit': [[:Digit:]] */</div><div class='del'>-static const OnigCodePoint CR_Digit[] = {</div><div class='del'>-	57,</div><div class='del'>-	0x0030, 0x0039,</div><div class='del'>-	0x0660, 0x0669,</div><div class='del'>-	0x06f0, 0x06f9,</div><div class='del'>-	0x07c0, 0x07c9,</div><div class='del'>-	0x0966, 0x096f,</div><div class='del'>-	0x09e6, 0x09ef,</div><div class='del'>-	0x0a66, 0x0a6f,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0b66, 0x0b6f,</div><div class='del'>-	0x0be6, 0x0bef,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0e50, 0x0e59,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0f20, 0x0f29,</div><div class='del'>-	0x1040, 0x1049,</div><div class='del'>-	0x1090, 0x1099,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1946, 0x194f,</div><div class='del'>-	0x19d0, 0x19d9,</div><div class='del'>-	0x1a80, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1b50, 0x1b59,</div><div class='del'>-	0x1bb0, 0x1bb9,</div><div class='del'>-	0x1c40, 0x1c49,</div><div class='del'>-	0x1c50, 0x1c59,</div><div class='del'>-	0xa620, 0xa629,</div><div class='del'>-	0xa8d0, 0xa8d9,</div><div class='del'>-	0xa900, 0xa909,</div><div class='del'>-	0xa9d0, 0xa9d9,</div><div class='del'>-	0xa9f0, 0xa9f9,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xff10, 0xff19,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-	0x11066, 0x1106f,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11136, 0x1113f,</div><div class='del'>-	0x111d0, 0x111d9,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11450, 0x11459,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11730, 0x11739,</div><div class='del'>-	0x118e0, 0x118e9,</div><div class='del'>-	0x11c50, 0x11c59,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-}; /* CR_Digit */</div><div class='del'>-</div><div class='del'>-/* 'Graph': [[:Graph:]] */</div><div class='del'>-static const OnigCodePoint CR_Graph[] = {</div><div class='del'>-	663,</div><div class='del'>-	0x0021, 0x007e,</div><div class='del'>-	0x00a1, 0x0377,</div><div class='del'>-	0x037a, 0x037f,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x058a,</div><div class='del'>-	0x058d, 0x058f,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f4,</div><div class='del'>-	0x0600, 0x061c,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x07fd, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d3, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a76,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0af9, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c00, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4f,</div><div class='del'>-	0x0d54, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1400, 0x167f,</div><div class='del'>-	0x1681, 0x169c,</div><div class='del'>-	0x16a0, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cc7,</div><div class='del'>-	0x1cd0, 0x1cf9,</div><div class='del'>-	0x1d00, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x200b, 0x2027,</div><div class='del'>-	0x202a, 0x202e,</div><div class='del'>-	0x2030, 0x205e,</div><div class='del'>-	0x2060, 0x2064,</div><div class='del'>-	0x2066, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20bf,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x218b,</div><div class='del'>-	0x2190, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bfe,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e4e,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3001, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa6f7,</div><div class='del'>-	0xa700, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c5,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab65,</div><div class='del'>-	0xab70, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xe000, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0xfffd,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018e,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e0, 0x102fb,</div><div class='del'>-	0x10300, 0x10323,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1089e,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x108fb, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109bc, 0x109cf,</div><div class='del'>-	0x109d2, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a48,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a9f,</div><div class='del'>-	0x10ac0, 0x10ae6,</div><div class='del'>-	0x10aeb, 0x10af6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b91,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10cfa, 0x10d27,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x10f00, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f59,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x1107f, 0x110c1,</div><div class='del'>-	0x110cd, 0x110cd,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11146,</div><div class='del'>-	0x11150, 0x11176,</div><div class='del'>-	0x11180, 0x111cd,</div><div class='del'>-	0x111d0, 0x111df,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1123e,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a9,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133b, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11400, 0x11459,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x1145d, 0x1145e,</div><div class='del'>-	0x11480, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115dd,</div><div class='del'>-	0x11600, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11660, 0x1166c,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x11730, 0x1173f,</div><div class='del'>-	0x11800, 0x1183b,</div><div class='del'>-	0x118a0, 0x118f2,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a47,</div><div class='del'>-	0x11a50, 0x11a83,</div><div class='del'>-	0x11a86, 0x11aa2,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c45,</div><div class='del'>-	0x11c50, 0x11c6c,</div><div class='del'>-	0x11c70, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d47,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d98,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-	0x11ee0, 0x11ef8,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af5,</div><div class='del'>-	0x16b00, 0x16b45,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e9a,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9c, 0x1bca3,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1e8,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d2e0, 0x1d2f3,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d378,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1da8b,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8c7, 0x1e8d6,</div><div class='del'>-	0x1e900, 0x1e94a,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1e95e, 0x1e95f,</div><div class='del'>-	0x1ec71, 0x1ecb4,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-	0x1f110, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f1ac,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23b,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f260, 0x1f265,</div><div class='del'>-	0x1f300, 0x1f6d4,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f9,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d8,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1f900, 0x1f90b,</div><div class='del'>-	0x1f910, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f970,</div><div class='del'>-	0x1f973, 0x1f976,</div><div class='del'>-	0x1f97a, 0x1f97a,</div><div class='del'>-	0x1f97c, 0x1f9a2,</div><div class='del'>-	0x1f9b0, 0x1f9b9,</div><div class='del'>-	0x1f9c0, 0x1f9c2,</div><div class='del'>-	0x1f9d0, 0x1f9ff,</div><div class='del'>-	0x1fa60, 0x1fa6d,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xf0000, 0xffffd,</div><div class='del'>-	0x100000, 0x10fffd,</div><div class='del'>-}; /* CR_Graph */</div><div class='del'>-</div><div class='del'>-/* 'Lower': [[:Lower:]] */</div><div class='del'>-static const OnigCodePoint CR_Lower[] = {</div><div class='del'>-	645,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x00df, 0x00f6,</div><div class='del'>-	0x00f8, 0x00ff,</div><div class='del'>-	0x0101, 0x0101,</div><div class='del'>-	0x0103, 0x0103,</div><div class='del'>-	0x0105, 0x0105,</div><div class='del'>-	0x0107, 0x0107,</div><div class='del'>-	0x0109, 0x0109,</div><div class='del'>-	0x010b, 0x010b,</div><div class='del'>-	0x010d, 0x010d,</div><div class='del'>-	0x010f, 0x010f,</div><div class='del'>-	0x0111, 0x0111,</div><div class='del'>-	0x0113, 0x0113,</div><div class='del'>-	0x0115, 0x0115,</div><div class='del'>-	0x0117, 0x0117,</div><div class='del'>-	0x0119, 0x0119,</div><div class='del'>-	0x011b, 0x011b,</div><div class='del'>-	0x011d, 0x011d,</div><div class='del'>-	0x011f, 0x011f,</div><div class='del'>-	0x0121, 0x0121,</div><div class='del'>-	0x0123, 0x0123,</div><div class='del'>-	0x0125, 0x0125,</div><div class='del'>-	0x0127, 0x0127,</div><div class='del'>-	0x0129, 0x0129,</div><div class='del'>-	0x012b, 0x012b,</div><div class='del'>-	0x012d, 0x012d,</div><div class='del'>-	0x012f, 0x012f,</div><div class='del'>-	0x0131, 0x0131,</div><div class='del'>-	0x0133, 0x0133,</div><div class='del'>-	0x0135, 0x0135,</div><div class='del'>-	0x0137, 0x0138,</div><div class='del'>-	0x013a, 0x013a,</div><div class='del'>-	0x013c, 0x013c,</div><div class='del'>-	0x013e, 0x013e,</div><div class='del'>-	0x0140, 0x0140,</div><div class='del'>-	0x0142, 0x0142,</div><div class='del'>-	0x0144, 0x0144,</div><div class='del'>-	0x0146, 0x0146,</div><div class='del'>-	0x0148, 0x0149,</div><div class='del'>-	0x014b, 0x014b,</div><div class='del'>-	0x014d, 0x014d,</div><div class='del'>-	0x014f, 0x014f,</div><div class='del'>-	0x0151, 0x0151,</div><div class='del'>-	0x0153, 0x0153,</div><div class='del'>-	0x0155, 0x0155,</div><div class='del'>-	0x0157, 0x0157,</div><div class='del'>-	0x0159, 0x0159,</div><div class='del'>-	0x015b, 0x015b,</div><div class='del'>-	0x015d, 0x015d,</div><div class='del'>-	0x015f, 0x015f,</div><div class='del'>-	0x0161, 0x0161,</div><div class='del'>-	0x0163, 0x0163,</div><div class='del'>-	0x0165, 0x0165,</div><div class='del'>-	0x0167, 0x0167,</div><div class='del'>-	0x0169, 0x0169,</div><div class='del'>-	0x016b, 0x016b,</div><div class='del'>-	0x016d, 0x016d,</div><div class='del'>-	0x016f, 0x016f,</div><div class='del'>-	0x0171, 0x0171,</div><div class='del'>-	0x0173, 0x0173,</div><div class='del'>-	0x0175, 0x0175,</div><div class='del'>-	0x0177, 0x0177,</div><div class='del'>-	0x017a, 0x017a,</div><div class='del'>-	0x017c, 0x017c,</div><div class='del'>-	0x017e, 0x0180,</div><div class='del'>-	0x0183, 0x0183,</div><div class='del'>-	0x0185, 0x0185,</div><div class='del'>-	0x0188, 0x0188,</div><div class='del'>-	0x018c, 0x018d,</div><div class='del'>-	0x0192, 0x0192,</div><div class='del'>-	0x0195, 0x0195,</div><div class='del'>-	0x0199, 0x019b,</div><div class='del'>-	0x019e, 0x019e,</div><div class='del'>-	0x01a1, 0x01a1,</div><div class='del'>-	0x01a3, 0x01a3,</div><div class='del'>-	0x01a5, 0x01a5,</div><div class='del'>-	0x01a8, 0x01a8,</div><div class='del'>-	0x01aa, 0x01ab,</div><div class='del'>-	0x01ad, 0x01ad,</div><div class='del'>-	0x01b0, 0x01b0,</div><div class='del'>-	0x01b4, 0x01b4,</div><div class='del'>-	0x01b6, 0x01b6,</div><div class='del'>-	0x01b9, 0x01ba,</div><div class='del'>-	0x01bd, 0x01bf,</div><div class='del'>-	0x01c6, 0x01c6,</div><div class='del'>-	0x01c9, 0x01c9,</div><div class='del'>-	0x01cc, 0x01cc,</div><div class='del'>-	0x01ce, 0x01ce,</div><div class='del'>-	0x01d0, 0x01d0,</div><div class='del'>-	0x01d2, 0x01d2,</div><div class='del'>-	0x01d4, 0x01d4,</div><div class='del'>-	0x01d6, 0x01d6,</div><div class='del'>-	0x01d8, 0x01d8,</div><div class='del'>-	0x01da, 0x01da,</div><div class='del'>-	0x01dc, 0x01dd,</div><div class='del'>-	0x01df, 0x01df,</div><div class='del'>-	0x01e1, 0x01e1,</div><div class='del'>-	0x01e3, 0x01e3,</div><div class='del'>-	0x01e5, 0x01e5,</div><div class='del'>-	0x01e7, 0x01e7,</div><div class='del'>-	0x01e9, 0x01e9,</div><div class='del'>-	0x01eb, 0x01eb,</div><div class='del'>-	0x01ed, 0x01ed,</div><div class='del'>-	0x01ef, 0x01f0,</div><div class='del'>-	0x01f3, 0x01f3,</div><div class='del'>-	0x01f5, 0x01f5,</div><div class='del'>-	0x01f9, 0x01f9,</div><div class='del'>-	0x01fb, 0x01fb,</div><div class='del'>-	0x01fd, 0x01fd,</div><div class='del'>-	0x01ff, 0x01ff,</div><div class='del'>-	0x0201, 0x0201,</div><div class='del'>-	0x0203, 0x0203,</div><div class='del'>-	0x0205, 0x0205,</div><div class='del'>-	0x0207, 0x0207,</div><div class='del'>-	0x0209, 0x0209,</div><div class='del'>-	0x020b, 0x020b,</div><div class='del'>-	0x020d, 0x020d,</div><div class='del'>-	0x020f, 0x020f,</div><div class='del'>-	0x0211, 0x0211,</div><div class='del'>-	0x0213, 0x0213,</div><div class='del'>-	0x0215, 0x0215,</div><div class='del'>-	0x0217, 0x0217,</div><div class='del'>-	0x0219, 0x0219,</div><div class='del'>-	0x021b, 0x021b,</div><div class='del'>-	0x021d, 0x021d,</div><div class='del'>-	0x021f, 0x021f,</div><div class='del'>-	0x0221, 0x0221,</div><div class='del'>-	0x0223, 0x0223,</div><div class='del'>-	0x0225, 0x0225,</div><div class='del'>-	0x0227, 0x0227,</div><div class='del'>-	0x0229, 0x0229,</div><div class='del'>-	0x022b, 0x022b,</div><div class='del'>-	0x022d, 0x022d,</div><div class='del'>-	0x022f, 0x022f,</div><div class='del'>-	0x0231, 0x0231,</div><div class='del'>-	0x0233, 0x0239,</div><div class='del'>-	0x023c, 0x023c,</div><div class='del'>-	0x023f, 0x0240,</div><div class='del'>-	0x0242, 0x0242,</div><div class='del'>-	0x0247, 0x0247,</div><div class='del'>-	0x0249, 0x0249,</div><div class='del'>-	0x024b, 0x024b,</div><div class='del'>-	0x024d, 0x024d,</div><div class='del'>-	0x024f, 0x0293,</div><div class='del'>-	0x0295, 0x02b8,</div><div class='del'>-	0x02c0, 0x02c1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x0345, 0x0345,</div><div class='del'>-	0x0371, 0x0371,</div><div class='del'>-	0x0373, 0x0373,</div><div class='del'>-	0x0377, 0x0377,</div><div class='del'>-	0x037a, 0x037d,</div><div class='del'>-	0x0390, 0x0390,</div><div class='del'>-	0x03ac, 0x03ce,</div><div class='del'>-	0x03d0, 0x03d1,</div><div class='del'>-	0x03d5, 0x03d7,</div><div class='del'>-	0x03d9, 0x03d9,</div><div class='del'>-	0x03db, 0x03db,</div><div class='del'>-	0x03dd, 0x03dd,</div><div class='del'>-	0x03df, 0x03df,</div><div class='del'>-	0x03e1, 0x03e1,</div><div class='del'>-	0x03e3, 0x03e3,</div><div class='del'>-	0x03e5, 0x03e5,</div><div class='del'>-	0x03e7, 0x03e7,</div><div class='del'>-	0x03e9, 0x03e9,</div><div class='del'>-	0x03eb, 0x03eb,</div><div class='del'>-	0x03ed, 0x03ed,</div><div class='del'>-	0x03ef, 0x03f3,</div><div class='del'>-	0x03f5, 0x03f5,</div><div class='del'>-	0x03f8, 0x03f8,</div><div class='del'>-	0x03fb, 0x03fc,</div><div class='del'>-	0x0430, 0x045f,</div><div class='del'>-	0x0461, 0x0461,</div><div class='del'>-	0x0463, 0x0463,</div><div class='del'>-	0x0465, 0x0465,</div><div class='del'>-	0x0467, 0x0467,</div><div class='del'>-	0x0469, 0x0469,</div><div class='del'>-	0x046b, 0x046b,</div><div class='del'>-	0x046d, 0x046d,</div><div class='del'>-	0x046f, 0x046f,</div><div class='del'>-	0x0471, 0x0471,</div><div class='del'>-	0x0473, 0x0473,</div><div class='del'>-	0x0475, 0x0475,</div><div class='del'>-	0x0477, 0x0477,</div><div class='del'>-	0x0479, 0x0479,</div><div class='del'>-	0x047b, 0x047b,</div><div class='del'>-	0x047d, 0x047d,</div><div class='del'>-	0x047f, 0x047f,</div><div class='del'>-	0x0481, 0x0481,</div><div class='del'>-	0x048b, 0x048b,</div><div class='del'>-	0x048d, 0x048d,</div><div class='del'>-	0x048f, 0x048f,</div><div class='del'>-	0x0491, 0x0491,</div><div class='del'>-	0x0493, 0x0493,</div><div class='del'>-	0x0495, 0x0495,</div><div class='del'>-	0x0497, 0x0497,</div><div class='del'>-	0x0499, 0x0499,</div><div class='del'>-	0x049b, 0x049b,</div><div class='del'>-	0x049d, 0x049d,</div><div class='del'>-	0x049f, 0x049f,</div><div class='del'>-	0x04a1, 0x04a1,</div><div class='del'>-	0x04a3, 0x04a3,</div><div class='del'>-	0x04a5, 0x04a5,</div><div class='del'>-	0x04a7, 0x04a7,</div><div class='del'>-	0x04a9, 0x04a9,</div><div class='del'>-	0x04ab, 0x04ab,</div><div class='del'>-	0x04ad, 0x04ad,</div><div class='del'>-	0x04af, 0x04af,</div><div class='del'>-	0x04b1, 0x04b1,</div><div class='del'>-	0x04b3, 0x04b3,</div><div class='del'>-	0x04b5, 0x04b5,</div><div class='del'>-	0x04b7, 0x04b7,</div><div class='del'>-	0x04b9, 0x04b9,</div><div class='del'>-	0x04bb, 0x04bb,</div><div class='del'>-	0x04bd, 0x04bd,</div><div class='del'>-	0x04bf, 0x04bf,</div><div class='del'>-	0x04c2, 0x04c2,</div><div class='del'>-	0x04c4, 0x04c4,</div><div class='del'>-	0x04c6, 0x04c6,</div><div class='del'>-	0x04c8, 0x04c8,</div><div class='del'>-	0x04ca, 0x04ca,</div><div class='del'>-	0x04cc, 0x04cc,</div><div class='del'>-	0x04ce, 0x04cf,</div><div class='del'>-	0x04d1, 0x04d1,</div><div class='del'>-	0x04d3, 0x04d3,</div><div class='del'>-	0x04d5, 0x04d5,</div><div class='del'>-	0x04d7, 0x04d7,</div><div class='del'>-	0x04d9, 0x04d9,</div><div class='del'>-	0x04db, 0x04db,</div><div class='del'>-	0x04dd, 0x04dd,</div><div class='del'>-	0x04df, 0x04df,</div><div class='del'>-	0x04e1, 0x04e1,</div><div class='del'>-	0x04e3, 0x04e3,</div><div class='del'>-	0x04e5, 0x04e5,</div><div class='del'>-	0x04e7, 0x04e7,</div><div class='del'>-	0x04e9, 0x04e9,</div><div class='del'>-	0x04eb, 0x04eb,</div><div class='del'>-	0x04ed, 0x04ed,</div><div class='del'>-	0x04ef, 0x04ef,</div><div class='del'>-	0x04f1, 0x04f1,</div><div class='del'>-	0x04f3, 0x04f3,</div><div class='del'>-	0x04f5, 0x04f5,</div><div class='del'>-	0x04f7, 0x04f7,</div><div class='del'>-	0x04f9, 0x04f9,</div><div class='del'>-	0x04fb, 0x04fb,</div><div class='del'>-	0x04fd, 0x04fd,</div><div class='del'>-	0x04ff, 0x04ff,</div><div class='del'>-	0x0501, 0x0501,</div><div class='del'>-	0x0503, 0x0503,</div><div class='del'>-	0x0505, 0x0505,</div><div class='del'>-	0x0507, 0x0507,</div><div class='del'>-	0x0509, 0x0509,</div><div class='del'>-	0x050b, 0x050b,</div><div class='del'>-	0x050d, 0x050d,</div><div class='del'>-	0x050f, 0x050f,</div><div class='del'>-	0x0511, 0x0511,</div><div class='del'>-	0x0513, 0x0513,</div><div class='del'>-	0x0515, 0x0515,</div><div class='del'>-	0x0517, 0x0517,</div><div class='del'>-	0x0519, 0x0519,</div><div class='del'>-	0x051b, 0x051b,</div><div class='del'>-	0x051d, 0x051d,</div><div class='del'>-	0x051f, 0x051f,</div><div class='del'>-	0x0521, 0x0521,</div><div class='del'>-	0x0523, 0x0523,</div><div class='del'>-	0x0525, 0x0525,</div><div class='del'>-	0x0527, 0x0527,</div><div class='del'>-	0x0529, 0x0529,</div><div class='del'>-	0x052b, 0x052b,</div><div class='del'>-	0x052d, 0x052d,</div><div class='del'>-	0x052f, 0x052f,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fd, 0x10ff,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1d00, 0x1dbf,</div><div class='del'>-	0x1e01, 0x1e01,</div><div class='del'>-	0x1e03, 0x1e03,</div><div class='del'>-	0x1e05, 0x1e05,</div><div class='del'>-	0x1e07, 0x1e07,</div><div class='del'>-	0x1e09, 0x1e09,</div><div class='del'>-	0x1e0b, 0x1e0b,</div><div class='del'>-	0x1e0d, 0x1e0d,</div><div class='del'>-	0x1e0f, 0x1e0f,</div><div class='del'>-	0x1e11, 0x1e11,</div><div class='del'>-	0x1e13, 0x1e13,</div><div class='del'>-	0x1e15, 0x1e15,</div><div class='del'>-	0x1e17, 0x1e17,</div><div class='del'>-	0x1e19, 0x1e19,</div><div class='del'>-	0x1e1b, 0x1e1b,</div><div class='del'>-	0x1e1d, 0x1e1d,</div><div class='del'>-	0x1e1f, 0x1e1f,</div><div class='del'>-	0x1e21, 0x1e21,</div><div class='del'>-	0x1e23, 0x1e23,</div><div class='del'>-	0x1e25, 0x1e25,</div><div class='del'>-	0x1e27, 0x1e27,</div><div class='del'>-	0x1e29, 0x1e29,</div><div class='del'>-	0x1e2b, 0x1e2b,</div><div class='del'>-	0x1e2d, 0x1e2d,</div><div class='del'>-	0x1e2f, 0x1e2f,</div><div class='del'>-	0x1e31, 0x1e31,</div><div class='del'>-	0x1e33, 0x1e33,</div><div class='del'>-	0x1e35, 0x1e35,</div><div class='del'>-	0x1e37, 0x1e37,</div><div class='del'>-	0x1e39, 0x1e39,</div><div class='del'>-	0x1e3b, 0x1e3b,</div><div class='del'>-	0x1e3d, 0x1e3d,</div><div class='del'>-	0x1e3f, 0x1e3f,</div><div class='del'>-	0x1e41, 0x1e41,</div><div class='del'>-	0x1e43, 0x1e43,</div><div class='del'>-	0x1e45, 0x1e45,</div><div class='del'>-	0x1e47, 0x1e47,</div><div class='del'>-	0x1e49, 0x1e49,</div><div class='del'>-	0x1e4b, 0x1e4b,</div><div class='del'>-	0x1e4d, 0x1e4d,</div><div class='del'>-	0x1e4f, 0x1e4f,</div><div class='del'>-	0x1e51, 0x1e51,</div><div class='del'>-	0x1e53, 0x1e53,</div><div class='del'>-	0x1e55, 0x1e55,</div><div class='del'>-	0x1e57, 0x1e57,</div><div class='del'>-	0x1e59, 0x1e59,</div><div class='del'>-	0x1e5b, 0x1e5b,</div><div class='del'>-	0x1e5d, 0x1e5d,</div><div class='del'>-	0x1e5f, 0x1e5f,</div><div class='del'>-	0x1e61, 0x1e61,</div><div class='del'>-	0x1e63, 0x1e63,</div><div class='del'>-	0x1e65, 0x1e65,</div><div class='del'>-	0x1e67, 0x1e67,</div><div class='del'>-	0x1e69, 0x1e69,</div><div class='del'>-	0x1e6b, 0x1e6b,</div><div class='del'>-	0x1e6d, 0x1e6d,</div><div class='del'>-	0x1e6f, 0x1e6f,</div><div class='del'>-	0x1e71, 0x1e71,</div><div class='del'>-	0x1e73, 0x1e73,</div><div class='del'>-	0x1e75, 0x1e75,</div><div class='del'>-	0x1e77, 0x1e77,</div><div class='del'>-	0x1e79, 0x1e79,</div><div class='del'>-	0x1e7b, 0x1e7b,</div><div class='del'>-	0x1e7d, 0x1e7d,</div><div class='del'>-	0x1e7f, 0x1e7f,</div><div class='del'>-	0x1e81, 0x1e81,</div><div class='del'>-	0x1e83, 0x1e83,</div><div class='del'>-	0x1e85, 0x1e85,</div><div class='del'>-	0x1e87, 0x1e87,</div><div class='del'>-	0x1e89, 0x1e89,</div><div class='del'>-	0x1e8b, 0x1e8b,</div><div class='del'>-	0x1e8d, 0x1e8d,</div><div class='del'>-	0x1e8f, 0x1e8f,</div><div class='del'>-	0x1e91, 0x1e91,</div><div class='del'>-	0x1e93, 0x1e93,</div><div class='del'>-	0x1e95, 0x1e9d,</div><div class='del'>-	0x1e9f, 0x1e9f,</div><div class='del'>-	0x1ea1, 0x1ea1,</div><div class='del'>-	0x1ea3, 0x1ea3,</div><div class='del'>-	0x1ea5, 0x1ea5,</div><div class='del'>-	0x1ea7, 0x1ea7,</div><div class='del'>-	0x1ea9, 0x1ea9,</div><div class='del'>-	0x1eab, 0x1eab,</div><div class='del'>-	0x1ead, 0x1ead,</div><div class='del'>-	0x1eaf, 0x1eaf,</div><div class='del'>-	0x1eb1, 0x1eb1,</div><div class='del'>-	0x1eb3, 0x1eb3,</div><div class='del'>-	0x1eb5, 0x1eb5,</div><div class='del'>-	0x1eb7, 0x1eb7,</div><div class='del'>-	0x1eb9, 0x1eb9,</div><div class='del'>-	0x1ebb, 0x1ebb,</div><div class='del'>-	0x1ebd, 0x1ebd,</div><div class='del'>-	0x1ebf, 0x1ebf,</div><div class='del'>-	0x1ec1, 0x1ec1,</div><div class='del'>-	0x1ec3, 0x1ec3,</div><div class='del'>-	0x1ec5, 0x1ec5,</div><div class='del'>-	0x1ec7, 0x1ec7,</div><div class='del'>-	0x1ec9, 0x1ec9,</div><div class='del'>-	0x1ecb, 0x1ecb,</div><div class='del'>-	0x1ecd, 0x1ecd,</div><div class='del'>-	0x1ecf, 0x1ecf,</div><div class='del'>-	0x1ed1, 0x1ed1,</div><div class='del'>-	0x1ed3, 0x1ed3,</div><div class='del'>-	0x1ed5, 0x1ed5,</div><div class='del'>-	0x1ed7, 0x1ed7,</div><div class='del'>-	0x1ed9, 0x1ed9,</div><div class='del'>-	0x1edb, 0x1edb,</div><div class='del'>-	0x1edd, 0x1edd,</div><div class='del'>-	0x1edf, 0x1edf,</div><div class='del'>-	0x1ee1, 0x1ee1,</div><div class='del'>-	0x1ee3, 0x1ee3,</div><div class='del'>-	0x1ee5, 0x1ee5,</div><div class='del'>-	0x1ee7, 0x1ee7,</div><div class='del'>-	0x1ee9, 0x1ee9,</div><div class='del'>-	0x1eeb, 0x1eeb,</div><div class='del'>-	0x1eed, 0x1eed,</div><div class='del'>-	0x1eef, 0x1eef,</div><div class='del'>-	0x1ef1, 0x1ef1,</div><div class='del'>-	0x1ef3, 0x1ef3,</div><div class='del'>-	0x1ef5, 0x1ef5,</div><div class='del'>-	0x1ef7, 0x1ef7,</div><div class='del'>-	0x1ef9, 0x1ef9,</div><div class='del'>-	0x1efb, 0x1efb,</div><div class='del'>-	0x1efd, 0x1efd,</div><div class='del'>-	0x1eff, 0x1f07,</div><div class='del'>-	0x1f10, 0x1f15,</div><div class='del'>-	0x1f20, 0x1f27,</div><div class='del'>-	0x1f30, 0x1f37,</div><div class='del'>-	0x1f40, 0x1f45,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f60, 0x1f67,</div><div class='del'>-	0x1f70, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1f87,</div><div class='del'>-	0x1f90, 0x1f97,</div><div class='del'>-	0x1fa0, 0x1fa7,</div><div class='del'>-	0x1fb0, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fb7,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fc7,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fd7,</div><div class='del'>-	0x1fe0, 0x1fe7,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ff7,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x210a, 0x210a,</div><div class='del'>-	0x210e, 0x210f,</div><div class='del'>-	0x2113, 0x2113,</div><div class='del'>-	0x212f, 0x212f,</div><div class='del'>-	0x2134, 0x2134,</div><div class='del'>-	0x2139, 0x2139,</div><div class='del'>-	0x213c, 0x213d,</div><div class='del'>-	0x2146, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2170, 0x217f,</div><div class='del'>-	0x2184, 0x2184,</div><div class='del'>-	0x24d0, 0x24e9,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c61, 0x2c61,</div><div class='del'>-	0x2c65, 0x2c66,</div><div class='del'>-	0x2c68, 0x2c68,</div><div class='del'>-	0x2c6a, 0x2c6a,</div><div class='del'>-	0x2c6c, 0x2c6c,</div><div class='del'>-	0x2c71, 0x2c71,</div><div class='del'>-	0x2c73, 0x2c74,</div><div class='del'>-	0x2c76, 0x2c7d,</div><div class='del'>-	0x2c81, 0x2c81,</div><div class='del'>-	0x2c83, 0x2c83,</div><div class='del'>-	0x2c85, 0x2c85,</div><div class='del'>-	0x2c87, 0x2c87,</div><div class='del'>-	0x2c89, 0x2c89,</div><div class='del'>-	0x2c8b, 0x2c8b,</div><div class='del'>-	0x2c8d, 0x2c8d,</div><div class='del'>-	0x2c8f, 0x2c8f,</div><div class='del'>-	0x2c91, 0x2c91,</div><div class='del'>-	0x2c93, 0x2c93,</div><div class='del'>-	0x2c95, 0x2c95,</div><div class='del'>-	0x2c97, 0x2c97,</div><div class='del'>-	0x2c99, 0x2c99,</div><div class='del'>-	0x2c9b, 0x2c9b,</div><div class='del'>-	0x2c9d, 0x2c9d,</div><div class='del'>-	0x2c9f, 0x2c9f,</div><div class='del'>-	0x2ca1, 0x2ca1,</div><div class='del'>-	0x2ca3, 0x2ca3,</div><div class='del'>-	0x2ca5, 0x2ca5,</div><div class='del'>-	0x2ca7, 0x2ca7,</div><div class='del'>-	0x2ca9, 0x2ca9,</div><div class='del'>-	0x2cab, 0x2cab,</div><div class='del'>-	0x2cad, 0x2cad,</div><div class='del'>-	0x2caf, 0x2caf,</div><div class='del'>-	0x2cb1, 0x2cb1,</div><div class='del'>-	0x2cb3, 0x2cb3,</div><div class='del'>-	0x2cb5, 0x2cb5,</div><div class='del'>-	0x2cb7, 0x2cb7,</div><div class='del'>-	0x2cb9, 0x2cb9,</div><div class='del'>-	0x2cbb, 0x2cbb,</div><div class='del'>-	0x2cbd, 0x2cbd,</div><div class='del'>-	0x2cbf, 0x2cbf,</div><div class='del'>-	0x2cc1, 0x2cc1,</div><div class='del'>-	0x2cc3, 0x2cc3,</div><div class='del'>-	0x2cc5, 0x2cc5,</div><div class='del'>-	0x2cc7, 0x2cc7,</div><div class='del'>-	0x2cc9, 0x2cc9,</div><div class='del'>-	0x2ccb, 0x2ccb,</div><div class='del'>-	0x2ccd, 0x2ccd,</div><div class='del'>-	0x2ccf, 0x2ccf,</div><div class='del'>-	0x2cd1, 0x2cd1,</div><div class='del'>-	0x2cd3, 0x2cd3,</div><div class='del'>-	0x2cd5, 0x2cd5,</div><div class='del'>-	0x2cd7, 0x2cd7,</div><div class='del'>-	0x2cd9, 0x2cd9,</div><div class='del'>-	0x2cdb, 0x2cdb,</div><div class='del'>-	0x2cdd, 0x2cdd,</div><div class='del'>-	0x2cdf, 0x2cdf,</div><div class='del'>-	0x2ce1, 0x2ce1,</div><div class='del'>-	0x2ce3, 0x2ce4,</div><div class='del'>-	0x2cec, 0x2cec,</div><div class='del'>-	0x2cee, 0x2cee,</div><div class='del'>-	0x2cf3, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0xa641, 0xa641,</div><div class='del'>-	0xa643, 0xa643,</div><div class='del'>-	0xa645, 0xa645,</div><div class='del'>-	0xa647, 0xa647,</div><div class='del'>-	0xa649, 0xa649,</div><div class='del'>-	0xa64b, 0xa64b,</div><div class='del'>-	0xa64d, 0xa64d,</div><div class='del'>-	0xa64f, 0xa64f,</div><div class='del'>-	0xa651, 0xa651,</div><div class='del'>-	0xa653, 0xa653,</div><div class='del'>-	0xa655, 0xa655,</div><div class='del'>-	0xa657, 0xa657,</div><div class='del'>-	0xa659, 0xa659,</div><div class='del'>-	0xa65b, 0xa65b,</div><div class='del'>-	0xa65d, 0xa65d,</div><div class='del'>-	0xa65f, 0xa65f,</div><div class='del'>-	0xa661, 0xa661,</div><div class='del'>-	0xa663, 0xa663,</div><div class='del'>-	0xa665, 0xa665,</div><div class='del'>-	0xa667, 0xa667,</div><div class='del'>-	0xa669, 0xa669,</div><div class='del'>-	0xa66b, 0xa66b,</div><div class='del'>-	0xa66d, 0xa66d,</div><div class='del'>-	0xa681, 0xa681,</div><div class='del'>-	0xa683, 0xa683,</div><div class='del'>-	0xa685, 0xa685,</div><div class='del'>-	0xa687, 0xa687,</div><div class='del'>-	0xa689, 0xa689,</div><div class='del'>-	0xa68b, 0xa68b,</div><div class='del'>-	0xa68d, 0xa68d,</div><div class='del'>-	0xa68f, 0xa68f,</div><div class='del'>-	0xa691, 0xa691,</div><div class='del'>-	0xa693, 0xa693,</div><div class='del'>-	0xa695, 0xa695,</div><div class='del'>-	0xa697, 0xa697,</div><div class='del'>-	0xa699, 0xa699,</div><div class='del'>-	0xa69b, 0xa69d,</div><div class='del'>-	0xa723, 0xa723,</div><div class='del'>-	0xa725, 0xa725,</div><div class='del'>-	0xa727, 0xa727,</div><div class='del'>-	0xa729, 0xa729,</div><div class='del'>-	0xa72b, 0xa72b,</div><div class='del'>-	0xa72d, 0xa72d,</div><div class='del'>-	0xa72f, 0xa731,</div><div class='del'>-	0xa733, 0xa733,</div><div class='del'>-	0xa735, 0xa735,</div><div class='del'>-	0xa737, 0xa737,</div><div class='del'>-	0xa739, 0xa739,</div><div class='del'>-	0xa73b, 0xa73b,</div><div class='del'>-	0xa73d, 0xa73d,</div><div class='del'>-	0xa73f, 0xa73f,</div><div class='del'>-	0xa741, 0xa741,</div><div class='del'>-	0xa743, 0xa743,</div><div class='del'>-	0xa745, 0xa745,</div><div class='del'>-	0xa747, 0xa747,</div><div class='del'>-	0xa749, 0xa749,</div><div class='del'>-	0xa74b, 0xa74b,</div><div class='del'>-	0xa74d, 0xa74d,</div><div class='del'>-	0xa74f, 0xa74f,</div><div class='del'>-	0xa751, 0xa751,</div><div class='del'>-	0xa753, 0xa753,</div><div class='del'>-	0xa755, 0xa755,</div><div class='del'>-	0xa757, 0xa757,</div><div class='del'>-	0xa759, 0xa759,</div><div class='del'>-	0xa75b, 0xa75b,</div><div class='del'>-	0xa75d, 0xa75d,</div><div class='del'>-	0xa75f, 0xa75f,</div><div class='del'>-	0xa761, 0xa761,</div><div class='del'>-	0xa763, 0xa763,</div><div class='del'>-	0xa765, 0xa765,</div><div class='del'>-	0xa767, 0xa767,</div><div class='del'>-	0xa769, 0xa769,</div><div class='del'>-	0xa76b, 0xa76b,</div><div class='del'>-	0xa76d, 0xa76d,</div><div class='del'>-	0xa76f, 0xa778,</div><div class='del'>-	0xa77a, 0xa77a,</div><div class='del'>-	0xa77c, 0xa77c,</div><div class='del'>-	0xa77f, 0xa77f,</div><div class='del'>-	0xa781, 0xa781,</div><div class='del'>-	0xa783, 0xa783,</div><div class='del'>-	0xa785, 0xa785,</div><div class='del'>-	0xa787, 0xa787,</div><div class='del'>-	0xa78c, 0xa78c,</div><div class='del'>-	0xa78e, 0xa78e,</div><div class='del'>-	0xa791, 0xa791,</div><div class='del'>-	0xa793, 0xa795,</div><div class='del'>-	0xa797, 0xa797,</div><div class='del'>-	0xa799, 0xa799,</div><div class='del'>-	0xa79b, 0xa79b,</div><div class='del'>-	0xa79d, 0xa79d,</div><div class='del'>-	0xa79f, 0xa79f,</div><div class='del'>-	0xa7a1, 0xa7a1,</div><div class='del'>-	0xa7a3, 0xa7a3,</div><div class='del'>-	0xa7a5, 0xa7a5,</div><div class='del'>-	0xa7a7, 0xa7a7,</div><div class='del'>-	0xa7a9, 0xa7a9,</div><div class='del'>-	0xa7af, 0xa7af,</div><div class='del'>-	0xa7b5, 0xa7b5,</div><div class='del'>-	0xa7b7, 0xa7b7,</div><div class='del'>-	0xa7b9, 0xa7b9,</div><div class='del'>-	0xa7f8, 0xa7fa,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab5c, 0xab65,</div><div class='del'>-	0xab70, 0xabbf,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0x10428, 0x1044f,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x118c0, 0x118df,</div><div class='del'>-	0x16e60, 0x16e7f,</div><div class='del'>-	0x1d41a, 0x1d433,</div><div class='del'>-	0x1d44e, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d467,</div><div class='del'>-	0x1d482, 0x1d49b,</div><div class='del'>-	0x1d4b6, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d4cf,</div><div class='del'>-	0x1d4ea, 0x1d503,</div><div class='del'>-	0x1d51e, 0x1d537,</div><div class='del'>-	0x1d552, 0x1d56b,</div><div class='del'>-	0x1d586, 0x1d59f,</div><div class='del'>-	0x1d5ba, 0x1d5d3,</div><div class='del'>-	0x1d5ee, 0x1d607,</div><div class='del'>-	0x1d622, 0x1d63b,</div><div class='del'>-	0x1d656, 0x1d66f,</div><div class='del'>-	0x1d68a, 0x1d6a5,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6e1,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d71b,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d755,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d78f,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7c9,</div><div class='del'>-	0x1d7cb, 0x1d7cb,</div><div class='del'>-	0x1e922, 0x1e943,</div><div class='del'>-}; /* CR_Lower */</div><div class='del'>-</div><div class='del'>-/* 'Print': [[:Print:]] */</div><div class='del'>-static const OnigCodePoint CR_Print[] = {</div><div class='del'>-	660,</div><div class='del'>-	0x0020, 0x007e,</div><div class='del'>-	0x00a0, 0x0377,</div><div class='del'>-	0x037a, 0x037f,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x058a,</div><div class='del'>-	0x058d, 0x058f,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f4,</div><div class='del'>-	0x0600, 0x061c,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x07fd, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d3, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a76,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0af9, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c00, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4f,</div><div class='del'>-	0x0d54, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cc7,</div><div class='del'>-	0x1cd0, 0x1cf9,</div><div class='del'>-	0x1d00, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2027,</div><div class='del'>-	0x202a, 0x2064,</div><div class='del'>-	0x2066, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20bf,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x218b,</div><div class='del'>-	0x2190, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bfe,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e4e,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa6f7,</div><div class='del'>-	0xa700, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c5,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab65,</div><div class='del'>-	0xab70, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xe000, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0xfffd,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018e,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e0, 0x102fb,</div><div class='del'>-	0x10300, 0x10323,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1089e,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x108fb, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109bc, 0x109cf,</div><div class='del'>-	0x109d2, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a48,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a9f,</div><div class='del'>-	0x10ac0, 0x10ae6,</div><div class='del'>-	0x10aeb, 0x10af6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b91,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10cfa, 0x10d27,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x10f00, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f59,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x1107f, 0x110c1,</div><div class='del'>-	0x110cd, 0x110cd,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11146,</div><div class='del'>-	0x11150, 0x11176,</div><div class='del'>-	0x11180, 0x111cd,</div><div class='del'>-	0x111d0, 0x111df,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1123e,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a9,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133b, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11400, 0x11459,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x1145d, 0x1145e,</div><div class='del'>-	0x11480, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115dd,</div><div class='del'>-	0x11600, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11660, 0x1166c,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x11730, 0x1173f,</div><div class='del'>-	0x11800, 0x1183b,</div><div class='del'>-	0x118a0, 0x118f2,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a47,</div><div class='del'>-	0x11a50, 0x11a83,</div><div class='del'>-	0x11a86, 0x11aa2,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c45,</div><div class='del'>-	0x11c50, 0x11c6c,</div><div class='del'>-	0x11c70, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d47,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d98,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-	0x11ee0, 0x11ef8,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af5,</div><div class='del'>-	0x16b00, 0x16b45,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e9a,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9c, 0x1bca3,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1e8,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d2e0, 0x1d2f3,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d378,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1da8b,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8c7, 0x1e8d6,</div><div class='del'>-	0x1e900, 0x1e94a,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1e95e, 0x1e95f,</div><div class='del'>-	0x1ec71, 0x1ecb4,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-	0x1f110, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f1ac,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23b,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f260, 0x1f265,</div><div class='del'>-	0x1f300, 0x1f6d4,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f9,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d8,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1f900, 0x1f90b,</div><div class='del'>-	0x1f910, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f970,</div><div class='del'>-	0x1f973, 0x1f976,</div><div class='del'>-	0x1f97a, 0x1f97a,</div><div class='del'>-	0x1f97c, 0x1f9a2,</div><div class='del'>-	0x1f9b0, 0x1f9b9,</div><div class='del'>-	0x1f9c0, 0x1f9c2,</div><div class='del'>-	0x1f9d0, 0x1f9ff,</div><div class='del'>-	0x1fa60, 0x1fa6d,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xf0000, 0xffffd,</div><div class='del'>-	0x100000, 0x10fffd,</div><div class='del'>-}; /* CR_Print */</div><div class='del'>-</div><div class='del'>-/* 'XPosixPunct': [[:Punct:]] */</div><div class='del'>-static const OnigCodePoint CR_XPosixPunct[] = {</div><div class='del'>-	173,</div><div class='del'>-	0x0021, 0x002f,</div><div class='del'>-	0x003a, 0x0040,</div><div class='del'>-	0x005b, 0x0060,</div><div class='del'>-	0x007b, 0x007e,</div><div class='del'>-	0x00a1, 0x00a1,</div><div class='del'>-	0x00a7, 0x00a7,</div><div class='del'>-	0x00ab, 0x00ab,</div><div class='del'>-	0x00b6, 0x00b7,</div><div class='del'>-	0x00bb, 0x00bb,</div><div class='del'>-	0x00bf, 0x00bf,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0387, 0x0387,</div><div class='del'>-	0x055a, 0x055f,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x05be, 0x05be,</div><div class='del'>-	0x05c0, 0x05c0,</div><div class='del'>-	0x05c3, 0x05c3,</div><div class='del'>-	0x05c6, 0x05c6,</div><div class='del'>-	0x05f3, 0x05f4,</div><div class='del'>-	0x0609, 0x060a,</div><div class='del'>-	0x060c, 0x060d,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061e, 0x061f,</div><div class='del'>-	0x066a, 0x066d,</div><div class='del'>-	0x06d4, 0x06d4,</div><div class='del'>-	0x0700, 0x070d,</div><div class='del'>-	0x07f7, 0x07f9,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x0964, 0x0965,</div><div class='del'>-	0x0970, 0x0970,</div><div class='del'>-	0x09fd, 0x09fd,</div><div class='del'>-	0x0a76, 0x0a76,</div><div class='del'>-	0x0af0, 0x0af0,</div><div class='del'>-	0x0c84, 0x0c84,</div><div class='del'>-	0x0df4, 0x0df4,</div><div class='del'>-	0x0e4f, 0x0e4f,</div><div class='del'>-	0x0e5a, 0x0e5b,</div><div class='del'>-	0x0f04, 0x0f12,</div><div class='del'>-	0x0f14, 0x0f14,</div><div class='del'>-	0x0f3a, 0x0f3d,</div><div class='del'>-	0x0f85, 0x0f85,</div><div class='del'>-	0x0fd0, 0x0fd4,</div><div class='del'>-	0x0fd9, 0x0fda,</div><div class='del'>-	0x104a, 0x104f,</div><div class='del'>-	0x10fb, 0x10fb,</div><div class='del'>-	0x1360, 0x1368,</div><div class='del'>-	0x1400, 0x1400,</div><div class='del'>-	0x166d, 0x166e,</div><div class='del'>-	0x169b, 0x169c,</div><div class='del'>-	0x16eb, 0x16ed,</div><div class='del'>-	0x1735, 0x1736,</div><div class='del'>-	0x17d4, 0x17d6,</div><div class='del'>-	0x17d8, 0x17da,</div><div class='del'>-	0x1800, 0x180a,</div><div class='del'>-	0x1944, 0x1945,</div><div class='del'>-	0x1a1e, 0x1a1f,</div><div class='del'>-	0x1aa0, 0x1aa6,</div><div class='del'>-	0x1aa8, 0x1aad,</div><div class='del'>-	0x1b5a, 0x1b60,</div><div class='del'>-	0x1bfc, 0x1bff,</div><div class='del'>-	0x1c3b, 0x1c3f,</div><div class='del'>-	0x1c7e, 0x1c7f,</div><div class='del'>-	0x1cc0, 0x1cc7,</div><div class='del'>-	0x1cd3, 0x1cd3,</div><div class='del'>-	0x2010, 0x2027,</div><div class='del'>-	0x2030, 0x2043,</div><div class='del'>-	0x2045, 0x2051,</div><div class='del'>-	0x2053, 0x205e,</div><div class='del'>-	0x207d, 0x207e,</div><div class='del'>-	0x208d, 0x208e,</div><div class='del'>-	0x2308, 0x230b,</div><div class='del'>-	0x2329, 0x232a,</div><div class='del'>-	0x2768, 0x2775,</div><div class='del'>-	0x27c5, 0x27c6,</div><div class='del'>-	0x27e6, 0x27ef,</div><div class='del'>-	0x2983, 0x2998,</div><div class='del'>-	0x29d8, 0x29db,</div><div class='del'>-	0x29fc, 0x29fd,</div><div class='del'>-	0x2cf9, 0x2cfc,</div><div class='del'>-	0x2cfe, 0x2cff,</div><div class='del'>-	0x2d70, 0x2d70,</div><div class='del'>-	0x2e00, 0x2e2e,</div><div class='del'>-	0x2e30, 0x2e4e,</div><div class='del'>-	0x3001, 0x3003,</div><div class='del'>-	0x3008, 0x3011,</div><div class='del'>-	0x3014, 0x301f,</div><div class='del'>-	0x3030, 0x3030,</div><div class='del'>-	0x303d, 0x303d,</div><div class='del'>-	0x30a0, 0x30a0,</div><div class='del'>-	0x30fb, 0x30fb,</div><div class='del'>-	0xa4fe, 0xa4ff,</div><div class='del'>-	0xa60d, 0xa60f,</div><div class='del'>-	0xa673, 0xa673,</div><div class='del'>-	0xa67e, 0xa67e,</div><div class='del'>-	0xa6f2, 0xa6f7,</div><div class='del'>-	0xa874, 0xa877,</div><div class='del'>-	0xa8ce, 0xa8cf,</div><div class='del'>-	0xa8f8, 0xa8fa,</div><div class='del'>-	0xa8fc, 0xa8fc,</div><div class='del'>-	0xa92e, 0xa92f,</div><div class='del'>-	0xa95f, 0xa95f,</div><div class='del'>-	0xa9c1, 0xa9cd,</div><div class='del'>-	0xa9de, 0xa9df,</div><div class='del'>-	0xaa5c, 0xaa5f,</div><div class='del'>-	0xaade, 0xaadf,</div><div class='del'>-	0xaaf0, 0xaaf1,</div><div class='del'>-	0xabeb, 0xabeb,</div><div class='del'>-	0xfd3e, 0xfd3f,</div><div class='del'>-	0xfe10, 0xfe19,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe61,</div><div class='del'>-	0xfe63, 0xfe63,</div><div class='del'>-	0xfe68, 0xfe68,</div><div class='del'>-	0xfe6a, 0xfe6b,</div><div class='del'>-	0xff01, 0xff03,</div><div class='del'>-	0xff05, 0xff0a,</div><div class='del'>-	0xff0c, 0xff0f,</div><div class='del'>-	0xff1a, 0xff1b,</div><div class='del'>-	0xff1f, 0xff20,</div><div class='del'>-	0xff3b, 0xff3d,</div><div class='del'>-	0xff3f, 0xff3f,</div><div class='del'>-	0xff5b, 0xff5b,</div><div class='del'>-	0xff5d, 0xff5d,</div><div class='del'>-	0xff5f, 0xff65,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x1039f, 0x1039f,</div><div class='del'>-	0x103d0, 0x103d0,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10857, 0x10857,</div><div class='del'>-	0x1091f, 0x1091f,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a7f, 0x10a7f,</div><div class='del'>-	0x10af0, 0x10af6,</div><div class='del'>-	0x10b39, 0x10b3f,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10f55, 0x10f59,</div><div class='del'>-	0x11047, 0x1104d,</div><div class='del'>-	0x110bb, 0x110bc,</div><div class='del'>-	0x110be, 0x110c1,</div><div class='del'>-	0x11140, 0x11143,</div><div class='del'>-	0x11174, 0x11175,</div><div class='del'>-	0x111c5, 0x111c8,</div><div class='del'>-	0x111cd, 0x111cd,</div><div class='del'>-	0x111db, 0x111db,</div><div class='del'>-	0x111dd, 0x111df,</div><div class='del'>-	0x11238, 0x1123d,</div><div class='del'>-	0x112a9, 0x112a9,</div><div class='del'>-	0x1144b, 0x1144f,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x1145d, 0x1145d,</div><div class='del'>-	0x114c6, 0x114c6,</div><div class='del'>-	0x115c1, 0x115d7,</div><div class='del'>-	0x11641, 0x11643,</div><div class='del'>-	0x11660, 0x1166c,</div><div class='del'>-	0x1173c, 0x1173e,</div><div class='del'>-	0x1183b, 0x1183b,</div><div class='del'>-	0x11a3f, 0x11a46,</div><div class='del'>-	0x11a9a, 0x11a9c,</div><div class='del'>-	0x11a9e, 0x11aa2,</div><div class='del'>-	0x11c41, 0x11c45,</div><div class='del'>-	0x11c70, 0x11c71,</div><div class='del'>-	0x11ef7, 0x11ef8,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16af5, 0x16af5,</div><div class='del'>-	0x16b37, 0x16b3b,</div><div class='del'>-	0x16b44, 0x16b44,</div><div class='del'>-	0x16e97, 0x16e9a,</div><div class='del'>-	0x1bc9f, 0x1bc9f,</div><div class='del'>-	0x1da87, 0x1da8b,</div><div class='del'>-	0x1e95e, 0x1e95f,</div><div class='del'>-}; /* CR_XPosixPunct */</div><div class='del'>-</div><div class='del'>-/* 'Space': [[:Space:]] */</div><div class='del'>-static const OnigCodePoint CR_Space[] = {</div><div class='del'>-	10,</div><div class='del'>-	0x0009, 0x000d,</div><div class='del'>-	0x0020, 0x0020,</div><div class='del'>-	0x0085, 0x0085,</div><div class='del'>-	0x00a0, 0x00a0,</div><div class='del'>-	0x1680, 0x1680,</div><div class='del'>-	0x2000, 0x200a,</div><div class='del'>-	0x2028, 0x2029,</div><div class='del'>-	0x202f, 0x202f,</div><div class='del'>-	0x205f, 0x205f,</div><div class='del'>-	0x3000, 0x3000,</div><div class='del'>-}; /* CR_Space */</div><div class='del'>-</div><div class='del'>-/* 'Upper': [[:Upper:]] */</div><div class='del'>-static const OnigCodePoint CR_Upper[] = {</div><div class='del'>-	636,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00de,</div><div class='del'>-	0x0100, 0x0100,</div><div class='del'>-	0x0102, 0x0102,</div><div class='del'>-	0x0104, 0x0104,</div><div class='del'>-	0x0106, 0x0106,</div><div class='del'>-	0x0108, 0x0108,</div><div class='del'>-	0x010a, 0x010a,</div><div class='del'>-	0x010c, 0x010c,</div><div class='del'>-	0x010e, 0x010e,</div><div class='del'>-	0x0110, 0x0110,</div><div class='del'>-	0x0112, 0x0112,</div><div class='del'>-	0x0114, 0x0114,</div><div class='del'>-	0x0116, 0x0116,</div><div class='del'>-	0x0118, 0x0118,</div><div class='del'>-	0x011a, 0x011a,</div><div class='del'>-	0x011c, 0x011c,</div><div class='del'>-	0x011e, 0x011e,</div><div class='del'>-	0x0120, 0x0120,</div><div class='del'>-	0x0122, 0x0122,</div><div class='del'>-	0x0124, 0x0124,</div><div class='del'>-	0x0126, 0x0126,</div><div class='del'>-	0x0128, 0x0128,</div><div class='del'>-	0x012a, 0x012a,</div><div class='del'>-	0x012c, 0x012c,</div><div class='del'>-	0x012e, 0x012e,</div><div class='del'>-	0x0130, 0x0130,</div><div class='del'>-	0x0132, 0x0132,</div><div class='del'>-	0x0134, 0x0134,</div><div class='del'>-	0x0136, 0x0136,</div><div class='del'>-	0x0139, 0x0139,</div><div class='del'>-	0x013b, 0x013b,</div><div class='del'>-	0x013d, 0x013d,</div><div class='del'>-	0x013f, 0x013f,</div><div class='del'>-	0x0141, 0x0141,</div><div class='del'>-	0x0143, 0x0143,</div><div class='del'>-	0x0145, 0x0145,</div><div class='del'>-	0x0147, 0x0147,</div><div class='del'>-	0x014a, 0x014a,</div><div class='del'>-	0x014c, 0x014c,</div><div class='del'>-	0x014e, 0x014e,</div><div class='del'>-	0x0150, 0x0150,</div><div class='del'>-	0x0152, 0x0152,</div><div class='del'>-	0x0154, 0x0154,</div><div class='del'>-	0x0156, 0x0156,</div><div class='del'>-	0x0158, 0x0158,</div><div class='del'>-	0x015a, 0x015a,</div><div class='del'>-	0x015c, 0x015c,</div><div class='del'>-	0x015e, 0x015e,</div><div class='del'>-	0x0160, 0x0160,</div><div class='del'>-	0x0162, 0x0162,</div><div class='del'>-	0x0164, 0x0164,</div><div class='del'>-	0x0166, 0x0166,</div><div class='del'>-	0x0168, 0x0168,</div><div class='del'>-	0x016a, 0x016a,</div><div class='del'>-	0x016c, 0x016c,</div><div class='del'>-	0x016e, 0x016e,</div><div class='del'>-	0x0170, 0x0170,</div><div class='del'>-	0x0172, 0x0172,</div><div class='del'>-	0x0174, 0x0174,</div><div class='del'>-	0x0176, 0x0176,</div><div class='del'>-	0x0178, 0x0179,</div><div class='del'>-	0x017b, 0x017b,</div><div class='del'>-	0x017d, 0x017d,</div><div class='del'>-	0x0181, 0x0182,</div><div class='del'>-	0x0184, 0x0184,</div><div class='del'>-	0x0186, 0x0187,</div><div class='del'>-	0x0189, 0x018b,</div><div class='del'>-	0x018e, 0x0191,</div><div class='del'>-	0x0193, 0x0194,</div><div class='del'>-	0x0196, 0x0198,</div><div class='del'>-	0x019c, 0x019d,</div><div class='del'>-	0x019f, 0x01a0,</div><div class='del'>-	0x01a2, 0x01a2,</div><div class='del'>-	0x01a4, 0x01a4,</div><div class='del'>-	0x01a6, 0x01a7,</div><div class='del'>-	0x01a9, 0x01a9,</div><div class='del'>-	0x01ac, 0x01ac,</div><div class='del'>-	0x01ae, 0x01af,</div><div class='del'>-	0x01b1, 0x01b3,</div><div class='del'>-	0x01b5, 0x01b5,</div><div class='del'>-	0x01b7, 0x01b8,</div><div class='del'>-	0x01bc, 0x01bc,</div><div class='del'>-	0x01c4, 0x01c4,</div><div class='del'>-	0x01c7, 0x01c7,</div><div class='del'>-	0x01ca, 0x01ca,</div><div class='del'>-	0x01cd, 0x01cd,</div><div class='del'>-	0x01cf, 0x01cf,</div><div class='del'>-	0x01d1, 0x01d1,</div><div class='del'>-	0x01d3, 0x01d3,</div><div class='del'>-	0x01d5, 0x01d5,</div><div class='del'>-	0x01d7, 0x01d7,</div><div class='del'>-	0x01d9, 0x01d9,</div><div class='del'>-	0x01db, 0x01db,</div><div class='del'>-	0x01de, 0x01de,</div><div class='del'>-	0x01e0, 0x01e0,</div><div class='del'>-	0x01e2, 0x01e2,</div><div class='del'>-	0x01e4, 0x01e4,</div><div class='del'>-	0x01e6, 0x01e6,</div><div class='del'>-	0x01e8, 0x01e8,</div><div class='del'>-	0x01ea, 0x01ea,</div><div class='del'>-	0x01ec, 0x01ec,</div><div class='del'>-	0x01ee, 0x01ee,</div><div class='del'>-	0x01f1, 0x01f1,</div><div class='del'>-	0x01f4, 0x01f4,</div><div class='del'>-	0x01f6, 0x01f8,</div><div class='del'>-	0x01fa, 0x01fa,</div><div class='del'>-	0x01fc, 0x01fc,</div><div class='del'>-	0x01fe, 0x01fe,</div><div class='del'>-	0x0200, 0x0200,</div><div class='del'>-	0x0202, 0x0202,</div><div class='del'>-	0x0204, 0x0204,</div><div class='del'>-	0x0206, 0x0206,</div><div class='del'>-	0x0208, 0x0208,</div><div class='del'>-	0x020a, 0x020a,</div><div class='del'>-	0x020c, 0x020c,</div><div class='del'>-	0x020e, 0x020e,</div><div class='del'>-	0x0210, 0x0210,</div><div class='del'>-	0x0212, 0x0212,</div><div class='del'>-	0x0214, 0x0214,</div><div class='del'>-	0x0216, 0x0216,</div><div class='del'>-	0x0218, 0x0218,</div><div class='del'>-	0x021a, 0x021a,</div><div class='del'>-	0x021c, 0x021c,</div><div class='del'>-	0x021e, 0x021e,</div><div class='del'>-	0x0220, 0x0220,</div><div class='del'>-	0x0222, 0x0222,</div><div class='del'>-	0x0224, 0x0224,</div><div class='del'>-	0x0226, 0x0226,</div><div class='del'>-	0x0228, 0x0228,</div><div class='del'>-	0x022a, 0x022a,</div><div class='del'>-	0x022c, 0x022c,</div><div class='del'>-	0x022e, 0x022e,</div><div class='del'>-	0x0230, 0x0230,</div><div class='del'>-	0x0232, 0x0232,</div><div class='del'>-	0x023a, 0x023b,</div><div class='del'>-	0x023d, 0x023e,</div><div class='del'>-	0x0241, 0x0241,</div><div class='del'>-	0x0243, 0x0246,</div><div class='del'>-	0x0248, 0x0248,</div><div class='del'>-	0x024a, 0x024a,</div><div class='del'>-	0x024c, 0x024c,</div><div class='del'>-	0x024e, 0x024e,</div><div class='del'>-	0x0370, 0x0370,</div><div class='del'>-	0x0372, 0x0372,</div><div class='del'>-	0x0376, 0x0376,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x038f,</div><div class='del'>-	0x0391, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ab,</div><div class='del'>-	0x03cf, 0x03cf,</div><div class='del'>-	0x03d2, 0x03d4,</div><div class='del'>-	0x03d8, 0x03d8,</div><div class='del'>-	0x03da, 0x03da,</div><div class='del'>-	0x03dc, 0x03dc,</div><div class='del'>-	0x03de, 0x03de,</div><div class='del'>-	0x03e0, 0x03e0,</div><div class='del'>-	0x03e2, 0x03e2,</div><div class='del'>-	0x03e4, 0x03e4,</div><div class='del'>-	0x03e6, 0x03e6,</div><div class='del'>-	0x03e8, 0x03e8,</div><div class='del'>-	0x03ea, 0x03ea,</div><div class='del'>-	0x03ec, 0x03ec,</div><div class='del'>-	0x03ee, 0x03ee,</div><div class='del'>-	0x03f4, 0x03f4,</div><div class='del'>-	0x03f7, 0x03f7,</div><div class='del'>-	0x03f9, 0x03fa,</div><div class='del'>-	0x03fd, 0x042f,</div><div class='del'>-	0x0460, 0x0460,</div><div class='del'>-	0x0462, 0x0462,</div><div class='del'>-	0x0464, 0x0464,</div><div class='del'>-	0x0466, 0x0466,</div><div class='del'>-	0x0468, 0x0468,</div><div class='del'>-	0x046a, 0x046a,</div><div class='del'>-	0x046c, 0x046c,</div><div class='del'>-	0x046e, 0x046e,</div><div class='del'>-	0x0470, 0x0470,</div><div class='del'>-	0x0472, 0x0472,</div><div class='del'>-	0x0474, 0x0474,</div><div class='del'>-	0x0476, 0x0476,</div><div class='del'>-	0x0478, 0x0478,</div><div class='del'>-	0x047a, 0x047a,</div><div class='del'>-	0x047c, 0x047c,</div><div class='del'>-	0x047e, 0x047e,</div><div class='del'>-	0x0480, 0x0480,</div><div class='del'>-	0x048a, 0x048a,</div><div class='del'>-	0x048c, 0x048c,</div><div class='del'>-	0x048e, 0x048e,</div><div class='del'>-	0x0490, 0x0490,</div><div class='del'>-	0x0492, 0x0492,</div><div class='del'>-	0x0494, 0x0494,</div><div class='del'>-	0x0496, 0x0496,</div><div class='del'>-	0x0498, 0x0498,</div><div class='del'>-	0x049a, 0x049a,</div><div class='del'>-	0x049c, 0x049c,</div><div class='del'>-	0x049e, 0x049e,</div><div class='del'>-	0x04a0, 0x04a0,</div><div class='del'>-	0x04a2, 0x04a2,</div><div class='del'>-	0x04a4, 0x04a4,</div><div class='del'>-	0x04a6, 0x04a6,</div><div class='del'>-	0x04a8, 0x04a8,</div><div class='del'>-	0x04aa, 0x04aa,</div><div class='del'>-	0x04ac, 0x04ac,</div><div class='del'>-	0x04ae, 0x04ae,</div><div class='del'>-	0x04b0, 0x04b0,</div><div class='del'>-	0x04b2, 0x04b2,</div><div class='del'>-	0x04b4, 0x04b4,</div><div class='del'>-	0x04b6, 0x04b6,</div><div class='del'>-	0x04b8, 0x04b8,</div><div class='del'>-	0x04ba, 0x04ba,</div><div class='del'>-	0x04bc, 0x04bc,</div><div class='del'>-	0x04be, 0x04be,</div><div class='del'>-	0x04c0, 0x04c1,</div><div class='del'>-	0x04c3, 0x04c3,</div><div class='del'>-	0x04c5, 0x04c5,</div><div class='del'>-	0x04c7, 0x04c7,</div><div class='del'>-	0x04c9, 0x04c9,</div><div class='del'>-	0x04cb, 0x04cb,</div><div class='del'>-	0x04cd, 0x04cd,</div><div class='del'>-	0x04d0, 0x04d0,</div><div class='del'>-	0x04d2, 0x04d2,</div><div class='del'>-	0x04d4, 0x04d4,</div><div class='del'>-	0x04d6, 0x04d6,</div><div class='del'>-	0x04d8, 0x04d8,</div><div class='del'>-	0x04da, 0x04da,</div><div class='del'>-	0x04dc, 0x04dc,</div><div class='del'>-	0x04de, 0x04de,</div><div class='del'>-	0x04e0, 0x04e0,</div><div class='del'>-	0x04e2, 0x04e2,</div><div class='del'>-	0x04e4, 0x04e4,</div><div class='del'>-	0x04e6, 0x04e6,</div><div class='del'>-	0x04e8, 0x04e8,</div><div class='del'>-	0x04ea, 0x04ea,</div><div class='del'>-	0x04ec, 0x04ec,</div><div class='del'>-	0x04ee, 0x04ee,</div><div class='del'>-	0x04f0, 0x04f0,</div><div class='del'>-	0x04f2, 0x04f2,</div><div class='del'>-	0x04f4, 0x04f4,</div><div class='del'>-	0x04f6, 0x04f6,</div><div class='del'>-	0x04f8, 0x04f8,</div><div class='del'>-	0x04fa, 0x04fa,</div><div class='del'>-	0x04fc, 0x04fc,</div><div class='del'>-	0x04fe, 0x04fe,</div><div class='del'>-	0x0500, 0x0500,</div><div class='del'>-	0x0502, 0x0502,</div><div class='del'>-	0x0504, 0x0504,</div><div class='del'>-	0x0506, 0x0506,</div><div class='del'>-	0x0508, 0x0508,</div><div class='del'>-	0x050a, 0x050a,</div><div class='del'>-	0x050c, 0x050c,</div><div class='del'>-	0x050e, 0x050e,</div><div class='del'>-	0x0510, 0x0510,</div><div class='del'>-	0x0512, 0x0512,</div><div class='del'>-	0x0514, 0x0514,</div><div class='del'>-	0x0516, 0x0516,</div><div class='del'>-	0x0518, 0x0518,</div><div class='del'>-	0x051a, 0x051a,</div><div class='del'>-	0x051c, 0x051c,</div><div class='del'>-	0x051e, 0x051e,</div><div class='del'>-	0x0520, 0x0520,</div><div class='del'>-	0x0522, 0x0522,</div><div class='del'>-	0x0524, 0x0524,</div><div class='del'>-	0x0526, 0x0526,</div><div class='del'>-	0x0528, 0x0528,</div><div class='del'>-	0x052a, 0x052a,</div><div class='del'>-	0x052c, 0x052c,</div><div class='del'>-	0x052e, 0x052e,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1e00, 0x1e00,</div><div class='del'>-	0x1e02, 0x1e02,</div><div class='del'>-	0x1e04, 0x1e04,</div><div class='del'>-	0x1e06, 0x1e06,</div><div class='del'>-	0x1e08, 0x1e08,</div><div class='del'>-	0x1e0a, 0x1e0a,</div><div class='del'>-	0x1e0c, 0x1e0c,</div><div class='del'>-	0x1e0e, 0x1e0e,</div><div class='del'>-	0x1e10, 0x1e10,</div><div class='del'>-	0x1e12, 0x1e12,</div><div class='del'>-	0x1e14, 0x1e14,</div><div class='del'>-	0x1e16, 0x1e16,</div><div class='del'>-	0x1e18, 0x1e18,</div><div class='del'>-	0x1e1a, 0x1e1a,</div><div class='del'>-	0x1e1c, 0x1e1c,</div><div class='del'>-	0x1e1e, 0x1e1e,</div><div class='del'>-	0x1e20, 0x1e20,</div><div class='del'>-	0x1e22, 0x1e22,</div><div class='del'>-	0x1e24, 0x1e24,</div><div class='del'>-	0x1e26, 0x1e26,</div><div class='del'>-	0x1e28, 0x1e28,</div><div class='del'>-	0x1e2a, 0x1e2a,</div><div class='del'>-	0x1e2c, 0x1e2c,</div><div class='del'>-	0x1e2e, 0x1e2e,</div><div class='del'>-	0x1e30, 0x1e30,</div><div class='del'>-	0x1e32, 0x1e32,</div><div class='del'>-	0x1e34, 0x1e34,</div><div class='del'>-	0x1e36, 0x1e36,</div><div class='del'>-	0x1e38, 0x1e38,</div><div class='del'>-	0x1e3a, 0x1e3a,</div><div class='del'>-	0x1e3c, 0x1e3c,</div><div class='del'>-	0x1e3e, 0x1e3e,</div><div class='del'>-	0x1e40, 0x1e40,</div><div class='del'>-	0x1e42, 0x1e42,</div><div class='del'>-	0x1e44, 0x1e44,</div><div class='del'>-	0x1e46, 0x1e46,</div><div class='del'>-	0x1e48, 0x1e48,</div><div class='del'>-	0x1e4a, 0x1e4a,</div><div class='del'>-	0x1e4c, 0x1e4c,</div><div class='del'>-	0x1e4e, 0x1e4e,</div><div class='del'>-	0x1e50, 0x1e50,</div><div class='del'>-	0x1e52, 0x1e52,</div><div class='del'>-	0x1e54, 0x1e54,</div><div class='del'>-	0x1e56, 0x1e56,</div><div class='del'>-	0x1e58, 0x1e58,</div><div class='del'>-	0x1e5a, 0x1e5a,</div><div class='del'>-	0x1e5c, 0x1e5c,</div><div class='del'>-	0x1e5e, 0x1e5e,</div><div class='del'>-	0x1e60, 0x1e60,</div><div class='del'>-	0x1e62, 0x1e62,</div><div class='del'>-	0x1e64, 0x1e64,</div><div class='del'>-	0x1e66, 0x1e66,</div><div class='del'>-	0x1e68, 0x1e68,</div><div class='del'>-	0x1e6a, 0x1e6a,</div><div class='del'>-	0x1e6c, 0x1e6c,</div><div class='del'>-	0x1e6e, 0x1e6e,</div><div class='del'>-	0x1e70, 0x1e70,</div><div class='del'>-	0x1e72, 0x1e72,</div><div class='del'>-	0x1e74, 0x1e74,</div><div class='del'>-	0x1e76, 0x1e76,</div><div class='del'>-	0x1e78, 0x1e78,</div><div class='del'>-	0x1e7a, 0x1e7a,</div><div class='del'>-	0x1e7c, 0x1e7c,</div><div class='del'>-	0x1e7e, 0x1e7e,</div><div class='del'>-	0x1e80, 0x1e80,</div><div class='del'>-	0x1e82, 0x1e82,</div><div class='del'>-	0x1e84, 0x1e84,</div><div class='del'>-	0x1e86, 0x1e86,</div><div class='del'>-	0x1e88, 0x1e88,</div><div class='del'>-	0x1e8a, 0x1e8a,</div><div class='del'>-	0x1e8c, 0x1e8c,</div><div class='del'>-	0x1e8e, 0x1e8e,</div><div class='del'>-	0x1e90, 0x1e90,</div><div class='del'>-	0x1e92, 0x1e92,</div><div class='del'>-	0x1e94, 0x1e94,</div><div class='del'>-	0x1e9e, 0x1e9e,</div><div class='del'>-	0x1ea0, 0x1ea0,</div><div class='del'>-	0x1ea2, 0x1ea2,</div><div class='del'>-	0x1ea4, 0x1ea4,</div><div class='del'>-	0x1ea6, 0x1ea6,</div><div class='del'>-	0x1ea8, 0x1ea8,</div><div class='del'>-	0x1eaa, 0x1eaa,</div><div class='del'>-	0x1eac, 0x1eac,</div><div class='del'>-	0x1eae, 0x1eae,</div><div class='del'>-	0x1eb0, 0x1eb0,</div><div class='del'>-	0x1eb2, 0x1eb2,</div><div class='del'>-	0x1eb4, 0x1eb4,</div><div class='del'>-	0x1eb6, 0x1eb6,</div><div class='del'>-	0x1eb8, 0x1eb8,</div><div class='del'>-	0x1eba, 0x1eba,</div><div class='del'>-	0x1ebc, 0x1ebc,</div><div class='del'>-	0x1ebe, 0x1ebe,</div><div class='del'>-	0x1ec0, 0x1ec0,</div><div class='del'>-	0x1ec2, 0x1ec2,</div><div class='del'>-	0x1ec4, 0x1ec4,</div><div class='del'>-	0x1ec6, 0x1ec6,</div><div class='del'>-	0x1ec8, 0x1ec8,</div><div class='del'>-	0x1eca, 0x1eca,</div><div class='del'>-	0x1ecc, 0x1ecc,</div><div class='del'>-	0x1ece, 0x1ece,</div><div class='del'>-	0x1ed0, 0x1ed0,</div><div class='del'>-	0x1ed2, 0x1ed2,</div><div class='del'>-	0x1ed4, 0x1ed4,</div><div class='del'>-	0x1ed6, 0x1ed6,</div><div class='del'>-	0x1ed8, 0x1ed8,</div><div class='del'>-	0x1eda, 0x1eda,</div><div class='del'>-	0x1edc, 0x1edc,</div><div class='del'>-	0x1ede, 0x1ede,</div><div class='del'>-	0x1ee0, 0x1ee0,</div><div class='del'>-	0x1ee2, 0x1ee2,</div><div class='del'>-	0x1ee4, 0x1ee4,</div><div class='del'>-	0x1ee6, 0x1ee6,</div><div class='del'>-	0x1ee8, 0x1ee8,</div><div class='del'>-	0x1eea, 0x1eea,</div><div class='del'>-	0x1eec, 0x1eec,</div><div class='del'>-	0x1eee, 0x1eee,</div><div class='del'>-	0x1ef0, 0x1ef0,</div><div class='del'>-	0x1ef2, 0x1ef2,</div><div class='del'>-	0x1ef4, 0x1ef4,</div><div class='del'>-	0x1ef6, 0x1ef6,</div><div class='del'>-	0x1ef8, 0x1ef8,</div><div class='del'>-	0x1efa, 0x1efa,</div><div class='del'>-	0x1efc, 0x1efc,</div><div class='del'>-	0x1efe, 0x1efe,</div><div class='del'>-	0x1f08, 0x1f0f,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f28, 0x1f2f,</div><div class='del'>-	0x1f38, 0x1f3f,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f5f,</div><div class='del'>-	0x1f68, 0x1f6f,</div><div class='del'>-	0x1fb8, 0x1fbb,</div><div class='del'>-	0x1fc8, 0x1fcb,</div><div class='del'>-	0x1fd8, 0x1fdb,</div><div class='del'>-	0x1fe8, 0x1fec,</div><div class='del'>-	0x1ff8, 0x1ffb,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210b, 0x210d,</div><div class='del'>-	0x2110, 0x2112,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2119, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x212d,</div><div class='del'>-	0x2130, 0x2133,</div><div class='del'>-	0x213e, 0x213f,</div><div class='del'>-	0x2145, 0x2145,</div><div class='del'>-	0x2160, 0x216f,</div><div class='del'>-	0x2183, 0x2183,</div><div class='del'>-	0x24b6, 0x24cf,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c60, 0x2c60,</div><div class='del'>-	0x2c62, 0x2c64,</div><div class='del'>-	0x2c67, 0x2c67,</div><div class='del'>-	0x2c69, 0x2c69,</div><div class='del'>-	0x2c6b, 0x2c6b,</div><div class='del'>-	0x2c6d, 0x2c70,</div><div class='del'>-	0x2c72, 0x2c72,</div><div class='del'>-	0x2c75, 0x2c75,</div><div class='del'>-	0x2c7e, 0x2c80,</div><div class='del'>-	0x2c82, 0x2c82,</div><div class='del'>-	0x2c84, 0x2c84,</div><div class='del'>-	0x2c86, 0x2c86,</div><div class='del'>-	0x2c88, 0x2c88,</div><div class='del'>-	0x2c8a, 0x2c8a,</div><div class='del'>-	0x2c8c, 0x2c8c,</div><div class='del'>-	0x2c8e, 0x2c8e,</div><div class='del'>-	0x2c90, 0x2c90,</div><div class='del'>-	0x2c92, 0x2c92,</div><div class='del'>-	0x2c94, 0x2c94,</div><div class='del'>-	0x2c96, 0x2c96,</div><div class='del'>-	0x2c98, 0x2c98,</div><div class='del'>-	0x2c9a, 0x2c9a,</div><div class='del'>-	0x2c9c, 0x2c9c,</div><div class='del'>-	0x2c9e, 0x2c9e,</div><div class='del'>-	0x2ca0, 0x2ca0,</div><div class='del'>-	0x2ca2, 0x2ca2,</div><div class='del'>-	0x2ca4, 0x2ca4,</div><div class='del'>-	0x2ca6, 0x2ca6,</div><div class='del'>-	0x2ca8, 0x2ca8,</div><div class='del'>-	0x2caa, 0x2caa,</div><div class='del'>-	0x2cac, 0x2cac,</div><div class='del'>-	0x2cae, 0x2cae,</div><div class='del'>-	0x2cb0, 0x2cb0,</div><div class='del'>-	0x2cb2, 0x2cb2,</div><div class='del'>-	0x2cb4, 0x2cb4,</div><div class='del'>-	0x2cb6, 0x2cb6,</div><div class='del'>-	0x2cb8, 0x2cb8,</div><div class='del'>-	0x2cba, 0x2cba,</div><div class='del'>-	0x2cbc, 0x2cbc,</div><div class='del'>-	0x2cbe, 0x2cbe,</div><div class='del'>-	0x2cc0, 0x2cc0,</div><div class='del'>-	0x2cc2, 0x2cc2,</div><div class='del'>-	0x2cc4, 0x2cc4,</div><div class='del'>-	0x2cc6, 0x2cc6,</div><div class='del'>-	0x2cc8, 0x2cc8,</div><div class='del'>-	0x2cca, 0x2cca,</div><div class='del'>-	0x2ccc, 0x2ccc,</div><div class='del'>-	0x2cce, 0x2cce,</div><div class='del'>-	0x2cd0, 0x2cd0,</div><div class='del'>-	0x2cd2, 0x2cd2,</div><div class='del'>-	0x2cd4, 0x2cd4,</div><div class='del'>-	0x2cd6, 0x2cd6,</div><div class='del'>-	0x2cd8, 0x2cd8,</div><div class='del'>-	0x2cda, 0x2cda,</div><div class='del'>-	0x2cdc, 0x2cdc,</div><div class='del'>-	0x2cde, 0x2cde,</div><div class='del'>-	0x2ce0, 0x2ce0,</div><div class='del'>-	0x2ce2, 0x2ce2,</div><div class='del'>-	0x2ceb, 0x2ceb,</div><div class='del'>-	0x2ced, 0x2ced,</div><div class='del'>-	0x2cf2, 0x2cf2,</div><div class='del'>-	0xa640, 0xa640,</div><div class='del'>-	0xa642, 0xa642,</div><div class='del'>-	0xa644, 0xa644,</div><div class='del'>-	0xa646, 0xa646,</div><div class='del'>-	0xa648, 0xa648,</div><div class='del'>-	0xa64a, 0xa64a,</div><div class='del'>-	0xa64c, 0xa64c,</div><div class='del'>-	0xa64e, 0xa64e,</div><div class='del'>-	0xa650, 0xa650,</div><div class='del'>-	0xa652, 0xa652,</div><div class='del'>-	0xa654, 0xa654,</div><div class='del'>-	0xa656, 0xa656,</div><div class='del'>-	0xa658, 0xa658,</div><div class='del'>-	0xa65a, 0xa65a,</div><div class='del'>-	0xa65c, 0xa65c,</div><div class='del'>-	0xa65e, 0xa65e,</div><div class='del'>-	0xa660, 0xa660,</div><div class='del'>-	0xa662, 0xa662,</div><div class='del'>-	0xa664, 0xa664,</div><div class='del'>-	0xa666, 0xa666,</div><div class='del'>-	0xa668, 0xa668,</div><div class='del'>-	0xa66a, 0xa66a,</div><div class='del'>-	0xa66c, 0xa66c,</div><div class='del'>-	0xa680, 0xa680,</div><div class='del'>-	0xa682, 0xa682,</div><div class='del'>-	0xa684, 0xa684,</div><div class='del'>-	0xa686, 0xa686,</div><div class='del'>-	0xa688, 0xa688,</div><div class='del'>-	0xa68a, 0xa68a,</div><div class='del'>-	0xa68c, 0xa68c,</div><div class='del'>-	0xa68e, 0xa68e,</div><div class='del'>-	0xa690, 0xa690,</div><div class='del'>-	0xa692, 0xa692,</div><div class='del'>-	0xa694, 0xa694,</div><div class='del'>-	0xa696, 0xa696,</div><div class='del'>-	0xa698, 0xa698,</div><div class='del'>-	0xa69a, 0xa69a,</div><div class='del'>-	0xa722, 0xa722,</div><div class='del'>-	0xa724, 0xa724,</div><div class='del'>-	0xa726, 0xa726,</div><div class='del'>-	0xa728, 0xa728,</div><div class='del'>-	0xa72a, 0xa72a,</div><div class='del'>-	0xa72c, 0xa72c,</div><div class='del'>-	0xa72e, 0xa72e,</div><div class='del'>-	0xa732, 0xa732,</div><div class='del'>-	0xa734, 0xa734,</div><div class='del'>-	0xa736, 0xa736,</div><div class='del'>-	0xa738, 0xa738,</div><div class='del'>-	0xa73a, 0xa73a,</div><div class='del'>-	0xa73c, 0xa73c,</div><div class='del'>-	0xa73e, 0xa73e,</div><div class='del'>-	0xa740, 0xa740,</div><div class='del'>-	0xa742, 0xa742,</div><div class='del'>-	0xa744, 0xa744,</div><div class='del'>-	0xa746, 0xa746,</div><div class='del'>-	0xa748, 0xa748,</div><div class='del'>-	0xa74a, 0xa74a,</div><div class='del'>-	0xa74c, 0xa74c,</div><div class='del'>-	0xa74e, 0xa74e,</div><div class='del'>-	0xa750, 0xa750,</div><div class='del'>-	0xa752, 0xa752,</div><div class='del'>-	0xa754, 0xa754,</div><div class='del'>-	0xa756, 0xa756,</div><div class='del'>-	0xa758, 0xa758,</div><div class='del'>-	0xa75a, 0xa75a,</div><div class='del'>-	0xa75c, 0xa75c,</div><div class='del'>-	0xa75e, 0xa75e,</div><div class='del'>-	0xa760, 0xa760,</div><div class='del'>-	0xa762, 0xa762,</div><div class='del'>-	0xa764, 0xa764,</div><div class='del'>-	0xa766, 0xa766,</div><div class='del'>-	0xa768, 0xa768,</div><div class='del'>-	0xa76a, 0xa76a,</div><div class='del'>-	0xa76c, 0xa76c,</div><div class='del'>-	0xa76e, 0xa76e,</div><div class='del'>-	0xa779, 0xa779,</div><div class='del'>-	0xa77b, 0xa77b,</div><div class='del'>-	0xa77d, 0xa77e,</div><div class='del'>-	0xa780, 0xa780,</div><div class='del'>-	0xa782, 0xa782,</div><div class='del'>-	0xa784, 0xa784,</div><div class='del'>-	0xa786, 0xa786,</div><div class='del'>-	0xa78b, 0xa78b,</div><div class='del'>-	0xa78d, 0xa78d,</div><div class='del'>-	0xa790, 0xa790,</div><div class='del'>-	0xa792, 0xa792,</div><div class='del'>-	0xa796, 0xa796,</div><div class='del'>-	0xa798, 0xa798,</div><div class='del'>-	0xa79a, 0xa79a,</div><div class='del'>-	0xa79c, 0xa79c,</div><div class='del'>-	0xa79e, 0xa79e,</div><div class='del'>-	0xa7a0, 0xa7a0,</div><div class='del'>-	0xa7a2, 0xa7a2,</div><div class='del'>-	0xa7a4, 0xa7a4,</div><div class='del'>-	0xa7a6, 0xa7a6,</div><div class='del'>-	0xa7a8, 0xa7a8,</div><div class='del'>-	0xa7aa, 0xa7ae,</div><div class='del'>-	0xa7b0, 0xa7b4,</div><div class='del'>-	0xa7b6, 0xa7b6,</div><div class='del'>-	0xa7b8, 0xa7b8,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0x10400, 0x10427,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x118a0, 0x118bf,</div><div class='del'>-	0x16e40, 0x16e5f,</div><div class='del'>-	0x1d400, 0x1d419,</div><div class='del'>-	0x1d434, 0x1d44d,</div><div class='del'>-	0x1d468, 0x1d481,</div><div class='del'>-	0x1d49c, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b5,</div><div class='del'>-	0x1d4d0, 0x1d4e9,</div><div class='del'>-	0x1d504, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d538, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d56c, 0x1d585,</div><div class='del'>-	0x1d5a0, 0x1d5b9,</div><div class='del'>-	0x1d5d4, 0x1d5ed,</div><div class='del'>-	0x1d608, 0x1d621,</div><div class='del'>-	0x1d63c, 0x1d655,</div><div class='del'>-	0x1d670, 0x1d689,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6e2, 0x1d6fa,</div><div class='del'>-	0x1d71c, 0x1d734,</div><div class='del'>-	0x1d756, 0x1d76e,</div><div class='del'>-	0x1d790, 0x1d7a8,</div><div class='del'>-	0x1d7ca, 0x1d7ca,</div><div class='del'>-	0x1e900, 0x1e921,</div><div class='del'>-	0x1f130, 0x1f149,</div><div class='del'>-	0x1f150, 0x1f169,</div><div class='del'>-	0x1f170, 0x1f189,</div><div class='del'>-}; /* CR_Upper */</div><div class='del'>-</div><div class='del'>-/* 'XDigit': [[:XDigit:]] */</div><div class='del'>-static const OnigCodePoint CR_XDigit[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x0030, 0x0039,</div><div class='del'>-	0x0041, 0x0046,</div><div class='del'>-	0x0061, 0x0066,</div><div class='del'>-}; /* CR_XDigit */</div><div class='del'>-</div><div class='del'>-/* 'Word': [[:Word:]] */</div><div class='del'>-static const OnigCodePoint CR_Word[] = {</div><div class='del'>-	710,</div><div class='del'>-	0x0030, 0x0039,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x005f, 0x005f,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x02c1,</div><div class='del'>-	0x02c6, 0x02d1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x02ec, 0x02ec,</div><div class='del'>-	0x02ee, 0x02ee,</div><div class='del'>-	0x0300, 0x0374,</div><div class='del'>-	0x0376, 0x0377,</div><div class='del'>-	0x037a, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03f5,</div><div class='del'>-	0x03f7, 0x0481,</div><div class='del'>-	0x0483, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x0559,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x0591, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c5,</div><div class='del'>-	0x05c7, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f2,</div><div class='del'>-	0x0610, 0x061a,</div><div class='del'>-	0x0620, 0x0669,</div><div class='del'>-	0x066e, 0x06d3,</div><div class='del'>-	0x06d5, 0x06dc,</div><div class='del'>-	0x06df, 0x06e8,</div><div class='del'>-	0x06ea, 0x06fc,</div><div class='del'>-	0x06ff, 0x06ff,</div><div class='del'>-	0x0710, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07f5,</div><div class='del'>-	0x07fa, 0x07fa,</div><div class='del'>-	0x07fd, 0x07fd,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d3, 0x08e1,</div><div class='del'>-	0x08e3, 0x0963,</div><div class='del'>-	0x0966, 0x096f,</div><div class='del'>-	0x0971, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09f1,</div><div class='del'>-	0x09fc, 0x09fc,</div><div class='del'>-	0x09fe, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0af9, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b6f,</div><div class='del'>-	0x0b71, 0x0b71,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bef,</div><div class='del'>-	0x0c00, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c80, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4e,</div><div class='del'>-	0x0d54, 0x0d57,</div><div class='del'>-	0x0d5f, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0d7a, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df3,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e40, 0x0e4e,</div><div class='del'>-	0x0e50, 0x0e59,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f00,</div><div class='del'>-	0x0f18, 0x0f19,</div><div class='del'>-	0x0f20, 0x0f29,</div><div class='del'>-	0x0f35, 0x0f35,</div><div class='del'>-	0x0f37, 0x0f37,</div><div class='del'>-	0x0f39, 0x0f39,</div><div class='del'>-	0x0f3e, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f84,</div><div class='del'>-	0x0f86, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fc6, 0x0fc6,</div><div class='del'>-	0x1000, 0x1049,</div><div class='del'>-	0x1050, 0x109d,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fc, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x135f,</div><div class='del'>-	0x1380, 0x138f,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1401, 0x166c,</div><div class='del'>-	0x166f, 0x167f,</div><div class='del'>-	0x1681, 0x169a,</div><div class='del'>-	0x16a0, 0x16ea,</div><div class='del'>-	0x16ee, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1734,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17d3,</div><div class='del'>-	0x17d7, 0x17d7,</div><div class='del'>-	0x17dc, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x180b, 0x180d,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1946, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19d9,</div><div class='del'>-	0x1a00, 0x1a1b,</div><div class='del'>-	0x1a20, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa7, 0x1aa7,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b59,</div><div class='del'>-	0x1b6b, 0x1b73,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1c00, 0x1c37,</div><div class='del'>-	0x1c40, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7d,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1cd0, 0x1cd2,</div><div class='del'>-	0x1cd4, 0x1cf9,</div><div class='del'>-	0x1d00, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fe0, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffc,</div><div class='del'>-	0x203f, 0x2040,</div><div class='del'>-	0x2054, 0x2054,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2119, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x212d,</div><div class='del'>-	0x212f, 0x2139,</div><div class='del'>-	0x213c, 0x213f,</div><div class='del'>-	0x2145, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2160, 0x2188,</div><div class='del'>-	0x24b6, 0x24e9,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2ce4,</div><div class='del'>-	0x2ceb, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0x2e2f, 0x2e2f,</div><div class='del'>-	0x3005, 0x3007,</div><div class='del'>-	0x3021, 0x302f,</div><div class='del'>-	0x3031, 0x3035,</div><div class='del'>-	0x3038, 0x303c,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x309a,</div><div class='del'>-	0x309d, 0x309f,</div><div class='del'>-	0x30a1, 0x30fa,</div><div class='del'>-	0x30fc, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x31a0, 0x31ba,</div><div class='del'>-	0x31f0, 0x31ff,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa4d0, 0xa4fd,</div><div class='del'>-	0xa500, 0xa60c,</div><div class='del'>-	0xa610, 0xa62b,</div><div class='del'>-	0xa640, 0xa672,</div><div class='del'>-	0xa674, 0xa67d,</div><div class='del'>-	0xa67f, 0xa6f1,</div><div class='del'>-	0xa717, 0xa71f,</div><div class='del'>-	0xa722, 0xa788,</div><div class='del'>-	0xa78b, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa827,</div><div class='del'>-	0xa840, 0xa873,</div><div class='del'>-	0xa880, 0xa8c5,</div><div class='del'>-	0xa8d0, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8f7,</div><div class='del'>-	0xa8fb, 0xa8fb,</div><div class='del'>-	0xa8fd, 0xa92d,</div><div class='del'>-	0xa930, 0xa953,</div><div class='del'>-	0xa960, 0xa97c,</div><div class='del'>-	0xa980, 0xa9c0,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9e0, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa60, 0xaa76,</div><div class='del'>-	0xaa7a, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadd,</div><div class='del'>-	0xaae0, 0xaaef,</div><div class='del'>-	0xaaf2, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab5c, 0xab65,</div><div class='del'>-	0xab70, 0xabea,</div><div class='del'>-	0xabec, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb28,</div><div class='del'>-	0xfb2a, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3d,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfb,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfe20, 0xfe2f,</div><div class='del'>-	0xfe33, 0xfe34,</div><div class='del'>-	0xfe4d, 0xfe4f,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xff10, 0xff19,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff3f, 0xff3f,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0xff66, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10140, 0x10174,</div><div class='del'>-	0x101fd, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e0, 0x102e0,</div><div class='del'>-	0x10300, 0x1031f,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x103a0, 0x103c3,</div><div class='del'>-	0x103c8, 0x103cf,</div><div class='del'>-	0x103d1, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10860, 0x10876,</div><div class='del'>-	0x10880, 0x1089e,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x10900, 0x10915,</div><div class='del'>-	0x10920, 0x10939,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a3f,</div><div class='del'>-	0x10a60, 0x10a7c,</div><div class='del'>-	0x10a80, 0x10a9c,</div><div class='del'>-	0x10ac0, 0x10ac7,</div><div class='del'>-	0x10ac9, 0x10ae6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b40, 0x10b55,</div><div class='del'>-	0x10b60, 0x10b72,</div><div class='del'>-	0x10b80, 0x10b91,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10d00, 0x10d27,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-	0x10f00, 0x10f1c,</div><div class='del'>-	0x10f27, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f50,</div><div class='del'>-	0x11000, 0x11046,</div><div class='del'>-	0x11066, 0x1106f,</div><div class='del'>-	0x1107f, 0x110ba,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x1113f,</div><div class='del'>-	0x11144, 0x11146,</div><div class='del'>-	0x11150, 0x11173,</div><div class='del'>-	0x11176, 0x11176,</div><div class='del'>-	0x11180, 0x111c4,</div><div class='del'>-	0x111c9, 0x111cc,</div><div class='del'>-	0x111d0, 0x111da,</div><div class='del'>-	0x111dc, 0x111dc,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x11237,</div><div class='del'>-	0x1123e, 0x1123e,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a8,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133b, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11400, 0x1144a,</div><div class='del'>-	0x11450, 0x11459,</div><div class='del'>-	0x1145e, 0x1145e,</div><div class='del'>-	0x11480, 0x114c5,</div><div class='del'>-	0x114c7, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115c0,</div><div class='del'>-	0x115d8, 0x115dd,</div><div class='del'>-	0x11600, 0x11640,</div><div class='del'>-	0x11644, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x11730, 0x11739,</div><div class='del'>-	0x11800, 0x1183a,</div><div class='del'>-	0x118a0, 0x118e9,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a3e,</div><div class='del'>-	0x11a47, 0x11a47,</div><div class='del'>-	0x11a50, 0x11a83,</div><div class='del'>-	0x11a86, 0x11a99,</div><div class='del'>-	0x11a9d, 0x11a9d,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c40,</div><div class='del'>-	0x11c50, 0x11c59,</div><div class='del'>-	0x11c72, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d47,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d98,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-	0x11ee0, 0x11ef6,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af4,</div><div class='del'>-	0x16b00, 0x16b36,</div><div class='del'>-	0x16b40, 0x16b43,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e7f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9d, 0x1bc9e,</div><div class='del'>-	0x1d165, 0x1d169,</div><div class='del'>-	0x1d16d, 0x1d172,</div><div class='del'>-	0x1d17b, 0x1d182,</div><div class='del'>-	0x1d185, 0x1d18b,</div><div class='del'>-	0x1d1aa, 0x1d1ad,</div><div class='del'>-	0x1d242, 0x1d244,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6fa,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d734,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d76e,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d7a8,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1da00, 0x1da36,</div><div class='del'>-	0x1da3b, 0x1da6c,</div><div class='del'>-	0x1da75, 0x1da75,</div><div class='del'>-	0x1da84, 0x1da84,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8d0, 0x1e8d6,</div><div class='del'>-	0x1e900, 0x1e94a,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1f130, 0x1f149,</div><div class='del'>-	0x1f150, 0x1f169,</div><div class='del'>-	0x1f170, 0x1f189,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-}; /* CR_Word */</div><div class='del'>-</div><div class='del'>-/* 'Alnum': [[:Alnum:]] */</div><div class='del'>-static const OnigCodePoint CR_Alnum[] = {</div><div class='del'>-	713,</div><div class='del'>-	0x0030, 0x0039,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x02c1,</div><div class='del'>-	0x02c6, 0x02d1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x02ec, 0x02ec,</div><div class='del'>-	0x02ee, 0x02ee,</div><div class='del'>-	0x0345, 0x0345,</div><div class='del'>-	0x0370, 0x0374,</div><div class='del'>-	0x0376, 0x0377,</div><div class='del'>-	0x037a, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03f5,</div><div class='del'>-	0x03f7, 0x0481,</div><div class='del'>-	0x048a, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x0559,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x05b0, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c5,</div><div class='del'>-	0x05c7, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f2,</div><div class='del'>-	0x0610, 0x061a,</div><div class='del'>-	0x0620, 0x0657,</div><div class='del'>-	0x0659, 0x0669,</div><div class='del'>-	0x066e, 0x06d3,</div><div class='del'>-	0x06d5, 0x06dc,</div><div class='del'>-	0x06e1, 0x06e8,</div><div class='del'>-	0x06ed, 0x06fc,</div><div class='del'>-	0x06ff, 0x06ff,</div><div class='del'>-	0x0710, 0x073f,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07ea,</div><div class='del'>-	0x07f4, 0x07f5,</div><div class='del'>-	0x07fa, 0x07fa,</div><div class='del'>-	0x0800, 0x0817,</div><div class='del'>-	0x081a, 0x082c,</div><div class='del'>-	0x0840, 0x0858,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d4, 0x08df,</div><div class='del'>-	0x08e3, 0x08e9,</div><div class='del'>-	0x08f0, 0x093b,</div><div class='del'>-	0x093d, 0x094c,</div><div class='del'>-	0x094e, 0x0950,</div><div class='del'>-	0x0955, 0x0963,</div><div class='del'>-	0x0966, 0x096f,</div><div class='del'>-	0x0971, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bd, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cc,</div><div class='del'>-	0x09ce, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09f1,</div><div class='del'>-	0x09fc, 0x09fc,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4c,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abd, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acc,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0af9, 0x0afc,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3d, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4c,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b6f,</div><div class='del'>-	0x0b71, 0x0b71,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcc,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bef,</div><div class='del'>-	0x0c00, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4c,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c80, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbd, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccc,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4c,</div><div class='del'>-	0x0d4e, 0x0d4e,</div><div class='del'>-	0x0d54, 0x0d57,</div><div class='del'>-	0x0d5f, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0d7a, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df3,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e40, 0x0e46,</div><div class='del'>-	0x0e4d, 0x0e4d,</div><div class='del'>-	0x0e50, 0x0e59,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ecd, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f00,</div><div class='del'>-	0x0f20, 0x0f29,</div><div class='del'>-	0x0f40, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f81,</div><div class='del'>-	0x0f88, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x1000, 0x1036,</div><div class='del'>-	0x1038, 0x1038,</div><div class='del'>-	0x103b, 0x1049,</div><div class='del'>-	0x1050, 0x1062,</div><div class='del'>-	0x1065, 0x1068,</div><div class='del'>-	0x106e, 0x1086,</div><div class='del'>-	0x108e, 0x108e,</div><div class='del'>-	0x1090, 0x1099,</div><div class='del'>-	0x109c, 0x109d,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fc, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135f, 0x135f,</div><div class='del'>-	0x1380, 0x138f,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1401, 0x166c,</div><div class='del'>-	0x166f, 0x167f,</div><div class='del'>-	0x1681, 0x169a,</div><div class='del'>-	0x16a0, 0x16ea,</div><div class='del'>-	0x16ee, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1713,</div><div class='del'>-	0x1720, 0x1733,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17b3,</div><div class='del'>-	0x17b6, 0x17c8,</div><div class='del'>-	0x17d7, 0x17d7,</div><div class='del'>-	0x17dc, 0x17dc,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x1938,</div><div class='del'>-	0x1946, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19d9,</div><div class='del'>-	0x1a00, 0x1a1b,</div><div class='del'>-	0x1a20, 0x1a5e,</div><div class='del'>-	0x1a61, 0x1a74,</div><div class='del'>-	0x1a80, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa7, 0x1aa7,</div><div class='del'>-	0x1b00, 0x1b33,</div><div class='del'>-	0x1b35, 0x1b43,</div><div class='del'>-	0x1b45, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b59,</div><div class='del'>-	0x1b80, 0x1ba9,</div><div class='del'>-	0x1bac, 0x1be5,</div><div class='del'>-	0x1be7, 0x1bf1,</div><div class='del'>-	0x1c00, 0x1c35,</div><div class='del'>-	0x1c40, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7d,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1ce9, 0x1cec,</div><div class='del'>-	0x1cee, 0x1cf3,</div><div class='del'>-	0x1cf5, 0x1cf6,</div><div class='del'>-	0x1d00, 0x1dbf,</div><div class='del'>-	0x1de7, 0x1df4,</div><div class='del'>-	0x1e00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fe0, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffc,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2119, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x212d,</div><div class='del'>-	0x212f, 0x2139,</div><div class='del'>-	0x213c, 0x213f,</div><div class='del'>-	0x2145, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2160, 0x2188,</div><div class='del'>-	0x24b6, 0x24e9,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2ce4,</div><div class='del'>-	0x2ceb, 0x2cee,</div><div class='del'>-	0x2cf2, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0x2e2f, 0x2e2f,</div><div class='del'>-	0x3005, 0x3007,</div><div class='del'>-	0x3021, 0x3029,</div><div class='del'>-	0x3031, 0x3035,</div><div class='del'>-	0x3038, 0x303c,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x309d, 0x309f,</div><div class='del'>-	0x30a1, 0x30fa,</div><div class='del'>-	0x30fc, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x31a0, 0x31ba,</div><div class='del'>-	0x31f0, 0x31ff,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa4d0, 0xa4fd,</div><div class='del'>-	0xa500, 0xa60c,</div><div class='del'>-	0xa610, 0xa62b,</div><div class='del'>-	0xa640, 0xa66e,</div><div class='del'>-	0xa674, 0xa67b,</div><div class='del'>-	0xa67f, 0xa6ef,</div><div class='del'>-	0xa717, 0xa71f,</div><div class='del'>-	0xa722, 0xa788,</div><div class='del'>-	0xa78b, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa801,</div><div class='del'>-	0xa803, 0xa805,</div><div class='del'>-	0xa807, 0xa80a,</div><div class='del'>-	0xa80c, 0xa827,</div><div class='del'>-	0xa840, 0xa873,</div><div class='del'>-	0xa880, 0xa8c3,</div><div class='del'>-	0xa8c5, 0xa8c5,</div><div class='del'>-	0xa8d0, 0xa8d9,</div><div class='del'>-	0xa8f2, 0xa8f7,</div><div class='del'>-	0xa8fb, 0xa8fb,</div><div class='del'>-	0xa8fd, 0xa8fe,</div><div class='del'>-	0xa900, 0xa92a,</div><div class='del'>-	0xa930, 0xa952,</div><div class='del'>-	0xa960, 0xa97c,</div><div class='del'>-	0xa980, 0xa9b2,</div><div class='del'>-	0xa9b4, 0xa9bf,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9e0, 0xa9e4,</div><div class='del'>-	0xa9e6, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa60, 0xaa76,</div><div class='del'>-	0xaa7a, 0xaa7a,</div><div class='del'>-	0xaa7e, 0xaabe,</div><div class='del'>-	0xaac0, 0xaac0,</div><div class='del'>-	0xaac2, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadd,</div><div class='del'>-	0xaae0, 0xaaef,</div><div class='del'>-	0xaaf2, 0xaaf5,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab5c, 0xab65,</div><div class='del'>-	0xab70, 0xabea,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb28,</div><div class='del'>-	0xfb2a, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3d,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfb,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xff10, 0xff19,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0xff66, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10140, 0x10174,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031f,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x103a0, 0x103c3,</div><div class='del'>-	0x103c8, 0x103cf,</div><div class='del'>-	0x103d1, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10860, 0x10876,</div><div class='del'>-	0x10880, 0x1089e,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x10900, 0x10915,</div><div class='del'>-	0x10920, 0x10939,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a60, 0x10a7c,</div><div class='del'>-	0x10a80, 0x10a9c,</div><div class='del'>-	0x10ac0, 0x10ac7,</div><div class='del'>-	0x10ac9, 0x10ae4,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b40, 0x10b55,</div><div class='del'>-	0x10b60, 0x10b72,</div><div class='del'>-	0x10b80, 0x10b91,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10d00, 0x10d27,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-	0x10f00, 0x10f1c,</div><div class='del'>-	0x10f27, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f45,</div><div class='del'>-	0x11000, 0x11045,</div><div class='del'>-	0x11066, 0x1106f,</div><div class='del'>-	0x11082, 0x110b8,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11132,</div><div class='del'>-	0x11136, 0x1113f,</div><div class='del'>-	0x11144, 0x11146,</div><div class='del'>-	0x11150, 0x11172,</div><div class='del'>-	0x11176, 0x11176,</div><div class='del'>-	0x11180, 0x111bf,</div><div class='del'>-	0x111c1, 0x111c4,</div><div class='del'>-	0x111d0, 0x111da,</div><div class='del'>-	0x111dc, 0x111dc,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x11234,</div><div class='del'>-	0x11237, 0x11237,</div><div class='del'>-	0x1123e, 0x1123e,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a8,</div><div class='del'>-	0x112b0, 0x112e8,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133d, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134c,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11400, 0x11441,</div><div class='del'>-	0x11443, 0x11445,</div><div class='del'>-	0x11447, 0x1144a,</div><div class='del'>-	0x11450, 0x11459,</div><div class='del'>-	0x11480, 0x114c1,</div><div class='del'>-	0x114c4, 0x114c5,</div><div class='del'>-	0x114c7, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115be,</div><div class='del'>-	0x115d8, 0x115dd,</div><div class='del'>-	0x11600, 0x1163e,</div><div class='del'>-	0x11640, 0x11640,</div><div class='del'>-	0x11644, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11680, 0x116b5,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x1171d, 0x1172a,</div><div class='del'>-	0x11730, 0x11739,</div><div class='del'>-	0x11800, 0x11838,</div><div class='del'>-	0x118a0, 0x118e9,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a32,</div><div class='del'>-	0x11a35, 0x11a3e,</div><div class='del'>-	0x11a50, 0x11a83,</div><div class='del'>-	0x11a86, 0x11a97,</div><div class='del'>-	0x11a9d, 0x11a9d,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c3e,</div><div class='del'>-	0x11c40, 0x11c40,</div><div class='del'>-	0x11c50, 0x11c59,</div><div class='del'>-	0x11c72, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d41,</div><div class='del'>-	0x11d43, 0x11d43,</div><div class='del'>-	0x11d46, 0x11d47,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d96,</div><div class='del'>-	0x11d98, 0x11d98,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-	0x11ee0, 0x11ef6,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16b00, 0x16b36,</div><div class='del'>-	0x16b40, 0x16b43,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e7f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f93, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9e, 0x1bc9e,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6fa,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d734,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d76e,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d7a8,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e900, 0x1e943,</div><div class='del'>-	0x1e947, 0x1e947,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1f130, 0x1f149,</div><div class='del'>-	0x1f150, 0x1f169,</div><div class='del'>-	0x1f170, 0x1f189,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-}; /* CR_Alnum */</div><div class='del'>-</div><div class='del'>-/* 'ASCII': [[:ASCII:]] */</div><div class='del'>-static const OnigCodePoint CR_ASCII[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0000, 0x007f,</div><div class='del'>-}; /* CR_ASCII */</div><div class='del'>-</div><div class='del'>-/* 'Punct' */</div><div class='del'>-static const OnigCodePoint CR_Punct[] = {</div><div class='del'>-	178,</div><div class='del'>-	0x0021, 0x0023,</div><div class='del'>-	0x0025, 0x002a,</div><div class='del'>-	0x002c, 0x002f,</div><div class='del'>-	0x003a, 0x003b,</div><div class='del'>-	0x003f, 0x0040,</div><div class='del'>-	0x005b, 0x005d,</div><div class='del'>-	0x005f, 0x005f,</div><div class='del'>-	0x007b, 0x007b,</div><div class='del'>-	0x007d, 0x007d,</div><div class='del'>-	0x00a1, 0x00a1,</div><div class='del'>-	0x00a7, 0x00a7,</div><div class='del'>-	0x00ab, 0x00ab,</div><div class='del'>-	0x00b6, 0x00b7,</div><div class='del'>-	0x00bb, 0x00bb,</div><div class='del'>-	0x00bf, 0x00bf,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0387, 0x0387,</div><div class='del'>-	0x055a, 0x055f,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x05be, 0x05be,</div><div class='del'>-	0x05c0, 0x05c0,</div><div class='del'>-	0x05c3, 0x05c3,</div><div class='del'>-	0x05c6, 0x05c6,</div><div class='del'>-	0x05f3, 0x05f4,</div><div class='del'>-	0x0609, 0x060a,</div><div class='del'>-	0x060c, 0x060d,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061e, 0x061f,</div><div class='del'>-	0x066a, 0x066d,</div><div class='del'>-	0x06d4, 0x06d4,</div><div class='del'>-	0x0700, 0x070d,</div><div class='del'>-	0x07f7, 0x07f9,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x0964, 0x0965,</div><div class='del'>-	0x0970, 0x0970,</div><div class='del'>-	0x09fd, 0x09fd,</div><div class='del'>-	0x0a76, 0x0a76,</div><div class='del'>-	0x0af0, 0x0af0,</div><div class='del'>-	0x0c84, 0x0c84,</div><div class='del'>-	0x0df4, 0x0df4,</div><div class='del'>-	0x0e4f, 0x0e4f,</div><div class='del'>-	0x0e5a, 0x0e5b,</div><div class='del'>-	0x0f04, 0x0f12,</div><div class='del'>-	0x0f14, 0x0f14,</div><div class='del'>-	0x0f3a, 0x0f3d,</div><div class='del'>-	0x0f85, 0x0f85,</div><div class='del'>-	0x0fd0, 0x0fd4,</div><div class='del'>-	0x0fd9, 0x0fda,</div><div class='del'>-	0x104a, 0x104f,</div><div class='del'>-	0x10fb, 0x10fb,</div><div class='del'>-	0x1360, 0x1368,</div><div class='del'>-	0x1400, 0x1400,</div><div class='del'>-	0x166d, 0x166e,</div><div class='del'>-	0x169b, 0x169c,</div><div class='del'>-	0x16eb, 0x16ed,</div><div class='del'>-	0x1735, 0x1736,</div><div class='del'>-	0x17d4, 0x17d6,</div><div class='del'>-	0x17d8, 0x17da,</div><div class='del'>-	0x1800, 0x180a,</div><div class='del'>-	0x1944, 0x1945,</div><div class='del'>-	0x1a1e, 0x1a1f,</div><div class='del'>-	0x1aa0, 0x1aa6,</div><div class='del'>-	0x1aa8, 0x1aad,</div><div class='del'>-	0x1b5a, 0x1b60,</div><div class='del'>-	0x1bfc, 0x1bff,</div><div class='del'>-	0x1c3b, 0x1c3f,</div><div class='del'>-	0x1c7e, 0x1c7f,</div><div class='del'>-	0x1cc0, 0x1cc7,</div><div class='del'>-	0x1cd3, 0x1cd3,</div><div class='del'>-	0x2010, 0x2027,</div><div class='del'>-	0x2030, 0x2043,</div><div class='del'>-	0x2045, 0x2051,</div><div class='del'>-	0x2053, 0x205e,</div><div class='del'>-	0x207d, 0x207e,</div><div class='del'>-	0x208d, 0x208e,</div><div class='del'>-	0x2308, 0x230b,</div><div class='del'>-	0x2329, 0x232a,</div><div class='del'>-	0x2768, 0x2775,</div><div class='del'>-	0x27c5, 0x27c6,</div><div class='del'>-	0x27e6, 0x27ef,</div><div class='del'>-	0x2983, 0x2998,</div><div class='del'>-	0x29d8, 0x29db,</div><div class='del'>-	0x29fc, 0x29fd,</div><div class='del'>-	0x2cf9, 0x2cfc,</div><div class='del'>-	0x2cfe, 0x2cff,</div><div class='del'>-	0x2d70, 0x2d70,</div><div class='del'>-	0x2e00, 0x2e2e,</div><div class='del'>-	0x2e30, 0x2e4e,</div><div class='del'>-	0x3001, 0x3003,</div><div class='del'>-	0x3008, 0x3011,</div><div class='del'>-	0x3014, 0x301f,</div><div class='del'>-	0x3030, 0x3030,</div><div class='del'>-	0x303d, 0x303d,</div><div class='del'>-	0x30a0, 0x30a0,</div><div class='del'>-	0x30fb, 0x30fb,</div><div class='del'>-	0xa4fe, 0xa4ff,</div><div class='del'>-	0xa60d, 0xa60f,</div><div class='del'>-	0xa673, 0xa673,</div><div class='del'>-	0xa67e, 0xa67e,</div><div class='del'>-	0xa6f2, 0xa6f7,</div><div class='del'>-	0xa874, 0xa877,</div><div class='del'>-	0xa8ce, 0xa8cf,</div><div class='del'>-	0xa8f8, 0xa8fa,</div><div class='del'>-	0xa8fc, 0xa8fc,</div><div class='del'>-	0xa92e, 0xa92f,</div><div class='del'>-	0xa95f, 0xa95f,</div><div class='del'>-	0xa9c1, 0xa9cd,</div><div class='del'>-	0xa9de, 0xa9df,</div><div class='del'>-	0xaa5c, 0xaa5f,</div><div class='del'>-	0xaade, 0xaadf,</div><div class='del'>-	0xaaf0, 0xaaf1,</div><div class='del'>-	0xabeb, 0xabeb,</div><div class='del'>-	0xfd3e, 0xfd3f,</div><div class='del'>-	0xfe10, 0xfe19,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe61,</div><div class='del'>-	0xfe63, 0xfe63,</div><div class='del'>-	0xfe68, 0xfe68,</div><div class='del'>-	0xfe6a, 0xfe6b,</div><div class='del'>-	0xff01, 0xff03,</div><div class='del'>-	0xff05, 0xff0a,</div><div class='del'>-	0xff0c, 0xff0f,</div><div class='del'>-	0xff1a, 0xff1b,</div><div class='del'>-	0xff1f, 0xff20,</div><div class='del'>-	0xff3b, 0xff3d,</div><div class='del'>-	0xff3f, 0xff3f,</div><div class='del'>-	0xff5b, 0xff5b,</div><div class='del'>-	0xff5d, 0xff5d,</div><div class='del'>-	0xff5f, 0xff65,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x1039f, 0x1039f,</div><div class='del'>-	0x103d0, 0x103d0,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10857, 0x10857,</div><div class='del'>-	0x1091f, 0x1091f,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a7f, 0x10a7f,</div><div class='del'>-	0x10af0, 0x10af6,</div><div class='del'>-	0x10b39, 0x10b3f,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10f55, 0x10f59,</div><div class='del'>-	0x11047, 0x1104d,</div><div class='del'>-	0x110bb, 0x110bc,</div><div class='del'>-	0x110be, 0x110c1,</div><div class='del'>-	0x11140, 0x11143,</div><div class='del'>-	0x11174, 0x11175,</div><div class='del'>-	0x111c5, 0x111c8,</div><div class='del'>-	0x111cd, 0x111cd,</div><div class='del'>-	0x111db, 0x111db,</div><div class='del'>-	0x111dd, 0x111df,</div><div class='del'>-	0x11238, 0x1123d,</div><div class='del'>-	0x112a9, 0x112a9,</div><div class='del'>-	0x1144b, 0x1144f,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x1145d, 0x1145d,</div><div class='del'>-	0x114c6, 0x114c6,</div><div class='del'>-	0x115c1, 0x115d7,</div><div class='del'>-	0x11641, 0x11643,</div><div class='del'>-	0x11660, 0x1166c,</div><div class='del'>-	0x1173c, 0x1173e,</div><div class='del'>-	0x1183b, 0x1183b,</div><div class='del'>-	0x11a3f, 0x11a46,</div><div class='del'>-	0x11a9a, 0x11a9c,</div><div class='del'>-	0x11a9e, 0x11aa2,</div><div class='del'>-	0x11c41, 0x11c45,</div><div class='del'>-	0x11c70, 0x11c71,</div><div class='del'>-	0x11ef7, 0x11ef8,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16af5, 0x16af5,</div><div class='del'>-	0x16b37, 0x16b3b,</div><div class='del'>-	0x16b44, 0x16b44,</div><div class='del'>-	0x16e97, 0x16e9a,</div><div class='del'>-	0x1bc9f, 0x1bc9f,</div><div class='del'>-	0x1da87, 0x1da8b,</div><div class='del'>-	0x1e95e, 0x1e95f,</div><div class='del'>-}; /* CR_Punct */</div><div class='del'>-</div><div class='del'>-#ifdef USE_UNICODE_PROPERTIES</div><div class='del'>-/* 'Any': - */</div><div class='del'>-static const OnigCodePoint CR_Any[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0000, 0x10ffff,</div><div class='del'>-}; /* CR_Any */</div><div class='del'>-</div><div class='del'>-/* 'Assigned': - */</div><div class='del'>-static const OnigCodePoint CR_Assigned[] = {</div><div class='del'>-	658,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037f,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x058a,</div><div class='del'>-	0x058d, 0x058f,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f4,</div><div class='del'>-	0x0600, 0x061c,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x07fd, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d3, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a76,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0af9, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c00, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4f,</div><div class='del'>-	0x0d54, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cc7,</div><div class='del'>-	0x1cd0, 0x1cf9,</div><div class='del'>-	0x1d00, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x2066, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20bf,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x218b,</div><div class='del'>-	0x2190, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bfe,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e4e,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa6f7,</div><div class='del'>-	0xa700, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c5,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab65,</div><div class='del'>-	0xab70, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xd800, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0xfffd,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018e,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e0, 0x102fb,</div><div class='del'>-	0x10300, 0x10323,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1089e,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x108fb, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109bc, 0x109cf,</div><div class='del'>-	0x109d2, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a48,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a9f,</div><div class='del'>-	0x10ac0, 0x10ae6,</div><div class='del'>-	0x10aeb, 0x10af6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b91,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10cfa, 0x10d27,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x10f00, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f59,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x1107f, 0x110c1,</div><div class='del'>-	0x110cd, 0x110cd,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11146,</div><div class='del'>-	0x11150, 0x11176,</div><div class='del'>-	0x11180, 0x111cd,</div><div class='del'>-	0x111d0, 0x111df,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1123e,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a9,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133b, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11400, 0x11459,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x1145d, 0x1145e,</div><div class='del'>-	0x11480, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115dd,</div><div class='del'>-	0x11600, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11660, 0x1166c,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x11730, 0x1173f,</div><div class='del'>-	0x11800, 0x1183b,</div><div class='del'>-	0x118a0, 0x118f2,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a47,</div><div class='del'>-	0x11a50, 0x11a83,</div><div class='del'>-	0x11a86, 0x11aa2,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c45,</div><div class='del'>-	0x11c50, 0x11c6c,</div><div class='del'>-	0x11c70, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d47,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d98,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-	0x11ee0, 0x11ef8,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af5,</div><div class='del'>-	0x16b00, 0x16b45,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e9a,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9c, 0x1bca3,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1e8,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d2e0, 0x1d2f3,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d378,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1da8b,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8c7, 0x1e8d6,</div><div class='del'>-	0x1e900, 0x1e94a,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1e95e, 0x1e95f,</div><div class='del'>-	0x1ec71, 0x1ecb4,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-	0x1f110, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f1ac,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23b,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f260, 0x1f265,</div><div class='del'>-	0x1f300, 0x1f6d4,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f9,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d8,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1f900, 0x1f90b,</div><div class='del'>-	0x1f910, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f970,</div><div class='del'>-	0x1f973, 0x1f976,</div><div class='del'>-	0x1f97a, 0x1f97a,</div><div class='del'>-	0x1f97c, 0x1f9a2,</div><div class='del'>-	0x1f9b0, 0x1f9b9,</div><div class='del'>-	0x1f9c0, 0x1f9c2,</div><div class='del'>-	0x1f9d0, 0x1f9ff,</div><div class='del'>-	0x1fa60, 0x1fa6d,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xf0000, 0xffffd,</div><div class='del'>-	0x100000, 0x10fffd,</div><div class='del'>-}; /* CR_Assigned */</div><div class='del'>-</div><div class='del'>-/* 'C': Major Category */</div><div class='del'>-static const OnigCodePoint CR_C[] = {</div><div class='del'>-	661,</div><div class='del'>-	0x0000, 0x001f,</div><div class='del'>-	0x007f, 0x009f,</div><div class='del'>-	0x00ad, 0x00ad,</div><div class='del'>-	0x0378, 0x0379,</div><div class='del'>-	0x0380, 0x0383,</div><div class='del'>-	0x038b, 0x038b,</div><div class='del'>-	0x038d, 0x038d,</div><div class='del'>-	0x03a2, 0x03a2,</div><div class='del'>-	0x0530, 0x0530,</div><div class='del'>-	0x0557, 0x0558,</div><div class='del'>-	0x058b, 0x058c,</div><div class='del'>-	0x0590, 0x0590,</div><div class='del'>-	0x05c8, 0x05cf,</div><div class='del'>-	0x05eb, 0x05ee,</div><div class='del'>-	0x05f5, 0x0605,</div><div class='del'>-	0x061c, 0x061d,</div><div class='del'>-	0x06dd, 0x06dd,</div><div class='del'>-	0x070e, 0x070f,</div><div class='del'>-	0x074b, 0x074c,</div><div class='del'>-	0x07b2, 0x07bf,</div><div class='del'>-	0x07fb, 0x07fc,</div><div class='del'>-	0x082e, 0x082f,</div><div class='del'>-	0x083f, 0x083f,</div><div class='del'>-	0x085c, 0x085d,</div><div class='del'>-	0x085f, 0x085f,</div><div class='del'>-	0x086b, 0x089f,</div><div class='del'>-	0x08b5, 0x08b5,</div><div class='del'>-	0x08be, 0x08d2,</div><div class='del'>-	0x08e2, 0x08e2,</div><div class='del'>-	0x0984, 0x0984,</div><div class='del'>-	0x098d, 0x098e,</div><div class='del'>-	0x0991, 0x0992,</div><div class='del'>-	0x09a9, 0x09a9,</div><div class='del'>-	0x09b1, 0x09b1,</div><div class='del'>-	0x09b3, 0x09b5,</div><div class='del'>-	0x09ba, 0x09bb,</div><div class='del'>-	0x09c5, 0x09c6,</div><div class='del'>-	0x09c9, 0x09ca,</div><div class='del'>-	0x09cf, 0x09d6,</div><div class='del'>-	0x09d8, 0x09db,</div><div class='del'>-	0x09de, 0x09de,</div><div class='del'>-	0x09e4, 0x09e5,</div><div class='del'>-	0x09ff, 0x0a00,</div><div class='del'>-	0x0a04, 0x0a04,</div><div class='del'>-	0x0a0b, 0x0a0e,</div><div class='del'>-	0x0a11, 0x0a12,</div><div class='del'>-	0x0a29, 0x0a29,</div><div class='del'>-	0x0a31, 0x0a31,</div><div class='del'>-	0x0a34, 0x0a34,</div><div class='del'>-	0x0a37, 0x0a37,</div><div class='del'>-	0x0a3a, 0x0a3b,</div><div class='del'>-	0x0a3d, 0x0a3d,</div><div class='del'>-	0x0a43, 0x0a46,</div><div class='del'>-	0x0a49, 0x0a4a,</div><div class='del'>-	0x0a4e, 0x0a50,</div><div class='del'>-	0x0a52, 0x0a58,</div><div class='del'>-	0x0a5d, 0x0a5d,</div><div class='del'>-	0x0a5f, 0x0a65,</div><div class='del'>-	0x0a77, 0x0a80,</div><div class='del'>-	0x0a84, 0x0a84,</div><div class='del'>-	0x0a8e, 0x0a8e,</div><div class='del'>-	0x0a92, 0x0a92,</div><div class='del'>-	0x0aa9, 0x0aa9,</div><div class='del'>-	0x0ab1, 0x0ab1,</div><div class='del'>-	0x0ab4, 0x0ab4,</div><div class='del'>-	0x0aba, 0x0abb,</div><div class='del'>-	0x0ac6, 0x0ac6,</div><div class='del'>-	0x0aca, 0x0aca,</div><div class='del'>-	0x0ace, 0x0acf,</div><div class='del'>-	0x0ad1, 0x0adf,</div><div class='del'>-	0x0ae4, 0x0ae5,</div><div class='del'>-	0x0af2, 0x0af8,</div><div class='del'>-	0x0b00, 0x0b00,</div><div class='del'>-	0x0b04, 0x0b04,</div><div class='del'>-	0x0b0d, 0x0b0e,</div><div class='del'>-	0x0b11, 0x0b12,</div><div class='del'>-	0x0b29, 0x0b29,</div><div class='del'>-	0x0b31, 0x0b31,</div><div class='del'>-	0x0b34, 0x0b34,</div><div class='del'>-	0x0b3a, 0x0b3b,</div><div class='del'>-	0x0b45, 0x0b46,</div><div class='del'>-	0x0b49, 0x0b4a,</div><div class='del'>-	0x0b4e, 0x0b55,</div><div class='del'>-	0x0b58, 0x0b5b,</div><div class='del'>-	0x0b5e, 0x0b5e,</div><div class='del'>-	0x0b64, 0x0b65,</div><div class='del'>-	0x0b78, 0x0b81,</div><div class='del'>-	0x0b84, 0x0b84,</div><div class='del'>-	0x0b8b, 0x0b8d,</div><div class='del'>-	0x0b91, 0x0b91,</div><div class='del'>-	0x0b96, 0x0b98,</div><div class='del'>-	0x0b9b, 0x0b9b,</div><div class='del'>-	0x0b9d, 0x0b9d,</div><div class='del'>-	0x0ba0, 0x0ba2,</div><div class='del'>-	0x0ba5, 0x0ba7,</div><div class='del'>-	0x0bab, 0x0bad,</div><div class='del'>-	0x0bba, 0x0bbd,</div><div class='del'>-	0x0bc3, 0x0bc5,</div><div class='del'>-	0x0bc9, 0x0bc9,</div><div class='del'>-	0x0bce, 0x0bcf,</div><div class='del'>-	0x0bd1, 0x0bd6,</div><div class='del'>-	0x0bd8, 0x0be5,</div><div class='del'>-	0x0bfb, 0x0bff,</div><div class='del'>-	0x0c0d, 0x0c0d,</div><div class='del'>-	0x0c11, 0x0c11,</div><div class='del'>-	0x0c29, 0x0c29,</div><div class='del'>-	0x0c3a, 0x0c3c,</div><div class='del'>-	0x0c45, 0x0c45,</div><div class='del'>-	0x0c49, 0x0c49,</div><div class='del'>-	0x0c4e, 0x0c54,</div><div class='del'>-	0x0c57, 0x0c57,</div><div class='del'>-	0x0c5b, 0x0c5f,</div><div class='del'>-	0x0c64, 0x0c65,</div><div class='del'>-	0x0c70, 0x0c77,</div><div class='del'>-	0x0c8d, 0x0c8d,</div><div class='del'>-	0x0c91, 0x0c91,</div><div class='del'>-	0x0ca9, 0x0ca9,</div><div class='del'>-	0x0cb4, 0x0cb4,</div><div class='del'>-	0x0cba, 0x0cbb,</div><div class='del'>-	0x0cc5, 0x0cc5,</div><div class='del'>-	0x0cc9, 0x0cc9,</div><div class='del'>-	0x0cce, 0x0cd4,</div><div class='del'>-	0x0cd7, 0x0cdd,</div><div class='del'>-	0x0cdf, 0x0cdf,</div><div class='del'>-	0x0ce4, 0x0ce5,</div><div class='del'>-	0x0cf0, 0x0cf0,</div><div class='del'>-	0x0cf3, 0x0cff,</div><div class='del'>-	0x0d04, 0x0d04,</div><div class='del'>-	0x0d0d, 0x0d0d,</div><div class='del'>-	0x0d11, 0x0d11,</div><div class='del'>-	0x0d45, 0x0d45,</div><div class='del'>-	0x0d49, 0x0d49,</div><div class='del'>-	0x0d50, 0x0d53,</div><div class='del'>-	0x0d64, 0x0d65,</div><div class='del'>-	0x0d80, 0x0d81,</div><div class='del'>-	0x0d84, 0x0d84,</div><div class='del'>-	0x0d97, 0x0d99,</div><div class='del'>-	0x0db2, 0x0db2,</div><div class='del'>-	0x0dbc, 0x0dbc,</div><div class='del'>-	0x0dbe, 0x0dbf,</div><div class='del'>-	0x0dc7, 0x0dc9,</div><div class='del'>-	0x0dcb, 0x0dce,</div><div class='del'>-	0x0dd5, 0x0dd5,</div><div class='del'>-	0x0dd7, 0x0dd7,</div><div class='del'>-	0x0de0, 0x0de5,</div><div class='del'>-	0x0df0, 0x0df1,</div><div class='del'>-	0x0df5, 0x0e00,</div><div class='del'>-	0x0e3b, 0x0e3e,</div><div class='del'>-	0x0e5c, 0x0e80,</div><div class='del'>-	0x0e83, 0x0e83,</div><div class='del'>-	0x0e85, 0x0e86,</div><div class='del'>-	0x0e89, 0x0e89,</div><div class='del'>-	0x0e8b, 0x0e8c,</div><div class='del'>-	0x0e8e, 0x0e93,</div><div class='del'>-	0x0e98, 0x0e98,</div><div class='del'>-	0x0ea0, 0x0ea0,</div><div class='del'>-	0x0ea4, 0x0ea4,</div><div class='del'>-	0x0ea6, 0x0ea6,</div><div class='del'>-	0x0ea8, 0x0ea9,</div><div class='del'>-	0x0eac, 0x0eac,</div><div class='del'>-	0x0eba, 0x0eba,</div><div class='del'>-	0x0ebe, 0x0ebf,</div><div class='del'>-	0x0ec5, 0x0ec5,</div><div class='del'>-	0x0ec7, 0x0ec7,</div><div class='del'>-	0x0ece, 0x0ecf,</div><div class='del'>-	0x0eda, 0x0edb,</div><div class='del'>-	0x0ee0, 0x0eff,</div><div class='del'>-	0x0f48, 0x0f48,</div><div class='del'>-	0x0f6d, 0x0f70,</div><div class='del'>-	0x0f98, 0x0f98,</div><div class='del'>-	0x0fbd, 0x0fbd,</div><div class='del'>-	0x0fcd, 0x0fcd,</div><div class='del'>-	0x0fdb, 0x0fff,</div><div class='del'>-	0x10c6, 0x10c6,</div><div class='del'>-	0x10c8, 0x10cc,</div><div class='del'>-	0x10ce, 0x10cf,</div><div class='del'>-	0x1249, 0x1249,</div><div class='del'>-	0x124e, 0x124f,</div><div class='del'>-	0x1257, 0x1257,</div><div class='del'>-	0x1259, 0x1259,</div><div class='del'>-	0x125e, 0x125f,</div><div class='del'>-	0x1289, 0x1289,</div><div class='del'>-	0x128e, 0x128f,</div><div class='del'>-	0x12b1, 0x12b1,</div><div class='del'>-	0x12b6, 0x12b7,</div><div class='del'>-	0x12bf, 0x12bf,</div><div class='del'>-	0x12c1, 0x12c1,</div><div class='del'>-	0x12c6, 0x12c7,</div><div class='del'>-	0x12d7, 0x12d7,</div><div class='del'>-	0x1311, 0x1311,</div><div class='del'>-	0x1316, 0x1317,</div><div class='del'>-	0x135b, 0x135c,</div><div class='del'>-	0x137d, 0x137f,</div><div class='del'>-	0x139a, 0x139f,</div><div class='del'>-	0x13f6, 0x13f7,</div><div class='del'>-	0x13fe, 0x13ff,</div><div class='del'>-	0x169d, 0x169f,</div><div class='del'>-	0x16f9, 0x16ff,</div><div class='del'>-	0x170d, 0x170d,</div><div class='del'>-	0x1715, 0x171f,</div><div class='del'>-	0x1737, 0x173f,</div><div class='del'>-	0x1754, 0x175f,</div><div class='del'>-	0x176d, 0x176d,</div><div class='del'>-	0x1771, 0x1771,</div><div class='del'>-	0x1774, 0x177f,</div><div class='del'>-	0x17de, 0x17df,</div><div class='del'>-	0x17ea, 0x17ef,</div><div class='del'>-	0x17fa, 0x17ff,</div><div class='del'>-	0x180e, 0x180f,</div><div class='del'>-	0x181a, 0x181f,</div><div class='del'>-	0x1879, 0x187f,</div><div class='del'>-	0x18ab, 0x18af,</div><div class='del'>-	0x18f6, 0x18ff,</div><div class='del'>-	0x191f, 0x191f,</div><div class='del'>-	0x192c, 0x192f,</div><div class='del'>-	0x193c, 0x193f,</div><div class='del'>-	0x1941, 0x1943,</div><div class='del'>-	0x196e, 0x196f,</div><div class='del'>-	0x1975, 0x197f,</div><div class='del'>-	0x19ac, 0x19af,</div><div class='del'>-	0x19ca, 0x19cf,</div><div class='del'>-	0x19db, 0x19dd,</div><div class='del'>-	0x1a1c, 0x1a1d,</div><div class='del'>-	0x1a5f, 0x1a5f,</div><div class='del'>-	0x1a7d, 0x1a7e,</div><div class='del'>-	0x1a8a, 0x1a8f,</div><div class='del'>-	0x1a9a, 0x1a9f,</div><div class='del'>-	0x1aae, 0x1aaf,</div><div class='del'>-	0x1abf, 0x1aff,</div><div class='del'>-	0x1b4c, 0x1b4f,</div><div class='del'>-	0x1b7d, 0x1b7f,</div><div class='del'>-	0x1bf4, 0x1bfb,</div><div class='del'>-	0x1c38, 0x1c3a,</div><div class='del'>-	0x1c4a, 0x1c4c,</div><div class='del'>-	0x1c89, 0x1c8f,</div><div class='del'>-	0x1cbb, 0x1cbc,</div><div class='del'>-	0x1cc8, 0x1ccf,</div><div class='del'>-	0x1cfa, 0x1cff,</div><div class='del'>-	0x1dfa, 0x1dfa,</div><div class='del'>-	0x1f16, 0x1f17,</div><div class='del'>-	0x1f1e, 0x1f1f,</div><div class='del'>-	0x1f46, 0x1f47,</div><div class='del'>-	0x1f4e, 0x1f4f,</div><div class='del'>-	0x1f58, 0x1f58,</div><div class='del'>-	0x1f5a, 0x1f5a,</div><div class='del'>-	0x1f5c, 0x1f5c,</div><div class='del'>-	0x1f5e, 0x1f5e,</div><div class='del'>-	0x1f7e, 0x1f7f,</div><div class='del'>-	0x1fb5, 0x1fb5,</div><div class='del'>-	0x1fc5, 0x1fc5,</div><div class='del'>-	0x1fd4, 0x1fd5,</div><div class='del'>-	0x1fdc, 0x1fdc,</div><div class='del'>-	0x1ff0, 0x1ff1,</div><div class='del'>-	0x1ff5, 0x1ff5,</div><div class='del'>-	0x1fff, 0x1fff,</div><div class='del'>-	0x200b, 0x200f,</div><div class='del'>-	0x202a, 0x202e,</div><div class='del'>-	0x2060, 0x206f,</div><div class='del'>-	0x2072, 0x2073,</div><div class='del'>-	0x208f, 0x208f,</div><div class='del'>-	0x209d, 0x209f,</div><div class='del'>-	0x20c0, 0x20cf,</div><div class='del'>-	0x20f1, 0x20ff,</div><div class='del'>-	0x218c, 0x218f,</div><div class='del'>-	0x2427, 0x243f,</div><div class='del'>-	0x244b, 0x245f,</div><div class='del'>-	0x2b74, 0x2b75,</div><div class='del'>-	0x2b96, 0x2b97,</div><div class='del'>-	0x2bc9, 0x2bc9,</div><div class='del'>-	0x2bff, 0x2bff,</div><div class='del'>-	0x2c2f, 0x2c2f,</div><div class='del'>-	0x2c5f, 0x2c5f,</div><div class='del'>-	0x2cf4, 0x2cf8,</div><div class='del'>-	0x2d26, 0x2d26,</div><div class='del'>-	0x2d28, 0x2d2c,</div><div class='del'>-	0x2d2e, 0x2d2f,</div><div class='del'>-	0x2d68, 0x2d6e,</div><div class='del'>-	0x2d71, 0x2d7e,</div><div class='del'>-	0x2d97, 0x2d9f,</div><div class='del'>-	0x2da7, 0x2da7,</div><div class='del'>-	0x2daf, 0x2daf,</div><div class='del'>-	0x2db7, 0x2db7,</div><div class='del'>-	0x2dbf, 0x2dbf,</div><div class='del'>-	0x2dc7, 0x2dc7,</div><div class='del'>-	0x2dcf, 0x2dcf,</div><div class='del'>-	0x2dd7, 0x2dd7,</div><div class='del'>-	0x2ddf, 0x2ddf,</div><div class='del'>-	0x2e4f, 0x2e7f,</div><div class='del'>-	0x2e9a, 0x2e9a,</div><div class='del'>-	0x2ef4, 0x2eff,</div><div class='del'>-	0x2fd6, 0x2fef,</div><div class='del'>-	0x2ffc, 0x2fff,</div><div class='del'>-	0x3040, 0x3040,</div><div class='del'>-	0x3097, 0x3098,</div><div class='del'>-	0x3100, 0x3104,</div><div class='del'>-	0x3130, 0x3130,</div><div class='del'>-	0x318f, 0x318f,</div><div class='del'>-	0x31bb, 0x31bf,</div><div class='del'>-	0x31e4, 0x31ef,</div><div class='del'>-	0x321f, 0x321f,</div><div class='del'>-	0x32ff, 0x32ff,</div><div class='del'>-	0x4db6, 0x4dbf,</div><div class='del'>-	0x9ff0, 0x9fff,</div><div class='del'>-	0xa48d, 0xa48f,</div><div class='del'>-	0xa4c7, 0xa4cf,</div><div class='del'>-	0xa62c, 0xa63f,</div><div class='del'>-	0xa6f8, 0xa6ff,</div><div class='del'>-	0xa7ba, 0xa7f6,</div><div class='del'>-	0xa82c, 0xa82f,</div><div class='del'>-	0xa83a, 0xa83f,</div><div class='del'>-	0xa878, 0xa87f,</div><div class='del'>-	0xa8c6, 0xa8cd,</div><div class='del'>-	0xa8da, 0xa8df,</div><div class='del'>-	0xa954, 0xa95e,</div><div class='del'>-	0xa97d, 0xa97f,</div><div class='del'>-	0xa9ce, 0xa9ce,</div><div class='del'>-	0xa9da, 0xa9dd,</div><div class='del'>-	0xa9ff, 0xa9ff,</div><div class='del'>-	0xaa37, 0xaa3f,</div><div class='del'>-	0xaa4e, 0xaa4f,</div><div class='del'>-	0xaa5a, 0xaa5b,</div><div class='del'>-	0xaac3, 0xaada,</div><div class='del'>-	0xaaf7, 0xab00,</div><div class='del'>-	0xab07, 0xab08,</div><div class='del'>-	0xab0f, 0xab10,</div><div class='del'>-	0xab17, 0xab1f,</div><div class='del'>-	0xab27, 0xab27,</div><div class='del'>-	0xab2f, 0xab2f,</div><div class='del'>-	0xab66, 0xab6f,</div><div class='del'>-	0xabee, 0xabef,</div><div class='del'>-	0xabfa, 0xabff,</div><div class='del'>-	0xd7a4, 0xd7af,</div><div class='del'>-	0xd7c7, 0xd7ca,</div><div class='del'>-	0xd7fc, 0xf8ff,</div><div class='del'>-	0xfa6e, 0xfa6f,</div><div class='del'>-	0xfada, 0xfaff,</div><div class='del'>-	0xfb07, 0xfb12,</div><div class='del'>-	0xfb18, 0xfb1c,</div><div class='del'>-	0xfb37, 0xfb37,</div><div class='del'>-	0xfb3d, 0xfb3d,</div><div class='del'>-	0xfb3f, 0xfb3f,</div><div class='del'>-	0xfb42, 0xfb42,</div><div class='del'>-	0xfb45, 0xfb45,</div><div class='del'>-	0xfbc2, 0xfbd2,</div><div class='del'>-	0xfd40, 0xfd4f,</div><div class='del'>-	0xfd90, 0xfd91,</div><div class='del'>-	0xfdc8, 0xfdef,</div><div class='del'>-	0xfdfe, 0xfdff,</div><div class='del'>-	0xfe1a, 0xfe1f,</div><div class='del'>-	0xfe53, 0xfe53,</div><div class='del'>-	0xfe67, 0xfe67,</div><div class='del'>-	0xfe6c, 0xfe6f,</div><div class='del'>-	0xfe75, 0xfe75,</div><div class='del'>-	0xfefd, 0xff00,</div><div class='del'>-	0xffbf, 0xffc1,</div><div class='del'>-	0xffc8, 0xffc9,</div><div class='del'>-	0xffd0, 0xffd1,</div><div class='del'>-	0xffd8, 0xffd9,</div><div class='del'>-	0xffdd, 0xffdf,</div><div class='del'>-	0xffe7, 0xffe7,</div><div class='del'>-	0xffef, 0xfffb,</div><div class='del'>-	0xfffe, 0xffff,</div><div class='del'>-	0x1000c, 0x1000c,</div><div class='del'>-	0x10027, 0x10027,</div><div class='del'>-	0x1003b, 0x1003b,</div><div class='del'>-	0x1003e, 0x1003e,</div><div class='del'>-	0x1004e, 0x1004f,</div><div class='del'>-	0x1005e, 0x1007f,</div><div class='del'>-	0x100fb, 0x100ff,</div><div class='del'>-	0x10103, 0x10106,</div><div class='del'>-	0x10134, 0x10136,</div><div class='del'>-	0x1018f, 0x1018f,</div><div class='del'>-	0x1019c, 0x1019f,</div><div class='del'>-	0x101a1, 0x101cf,</div><div class='del'>-	0x101fe, 0x1027f,</div><div class='del'>-	0x1029d, 0x1029f,</div><div class='del'>-	0x102d1, 0x102df,</div><div class='del'>-	0x102fc, 0x102ff,</div><div class='del'>-	0x10324, 0x1032c,</div><div class='del'>-	0x1034b, 0x1034f,</div><div class='del'>-	0x1037b, 0x1037f,</div><div class='del'>-	0x1039e, 0x1039e,</div><div class='del'>-	0x103c4, 0x103c7,</div><div class='del'>-	0x103d6, 0x103ff,</div><div class='del'>-	0x1049e, 0x1049f,</div><div class='del'>-	0x104aa, 0x104af,</div><div class='del'>-	0x104d4, 0x104d7,</div><div class='del'>-	0x104fc, 0x104ff,</div><div class='del'>-	0x10528, 0x1052f,</div><div class='del'>-	0x10564, 0x1056e,</div><div class='del'>-	0x10570, 0x105ff,</div><div class='del'>-	0x10737, 0x1073f,</div><div class='del'>-	0x10756, 0x1075f,</div><div class='del'>-	0x10768, 0x107ff,</div><div class='del'>-	0x10806, 0x10807,</div><div class='del'>-	0x10809, 0x10809,</div><div class='del'>-	0x10836, 0x10836,</div><div class='del'>-	0x10839, 0x1083b,</div><div class='del'>-	0x1083d, 0x1083e,</div><div class='del'>-	0x10856, 0x10856,</div><div class='del'>-	0x1089f, 0x108a6,</div><div class='del'>-	0x108b0, 0x108df,</div><div class='del'>-	0x108f3, 0x108f3,</div><div class='del'>-	0x108f6, 0x108fa,</div><div class='del'>-	0x1091c, 0x1091e,</div><div class='del'>-	0x1093a, 0x1093e,</div><div class='del'>-	0x10940, 0x1097f,</div><div class='del'>-	0x109b8, 0x109bb,</div><div class='del'>-	0x109d0, 0x109d1,</div><div class='del'>-	0x10a04, 0x10a04,</div><div class='del'>-	0x10a07, 0x10a0b,</div><div class='del'>-	0x10a14, 0x10a14,</div><div class='del'>-	0x10a18, 0x10a18,</div><div class='del'>-	0x10a36, 0x10a37,</div><div class='del'>-	0x10a3b, 0x10a3e,</div><div class='del'>-	0x10a49, 0x10a4f,</div><div class='del'>-	0x10a59, 0x10a5f,</div><div class='del'>-	0x10aa0, 0x10abf,</div><div class='del'>-	0x10ae7, 0x10aea,</div><div class='del'>-	0x10af7, 0x10aff,</div><div class='del'>-	0x10b36, 0x10b38,</div><div class='del'>-	0x10b56, 0x10b57,</div><div class='del'>-	0x10b73, 0x10b77,</div><div class='del'>-	0x10b92, 0x10b98,</div><div class='del'>-	0x10b9d, 0x10ba8,</div><div class='del'>-	0x10bb0, 0x10bff,</div><div class='del'>-	0x10c49, 0x10c7f,</div><div class='del'>-	0x10cb3, 0x10cbf,</div><div class='del'>-	0x10cf3, 0x10cf9,</div><div class='del'>-	0x10d28, 0x10d2f,</div><div class='del'>-	0x10d3a, 0x10e5f,</div><div class='del'>-	0x10e7f, 0x10eff,</div><div class='del'>-	0x10f28, 0x10f2f,</div><div class='del'>-	0x10f5a, 0x10fff,</div><div class='del'>-	0x1104e, 0x11051,</div><div class='del'>-	0x11070, 0x1107e,</div><div class='del'>-	0x110bd, 0x110bd,</div><div class='del'>-	0x110c2, 0x110cf,</div><div class='del'>-	0x110e9, 0x110ef,</div><div class='del'>-	0x110fa, 0x110ff,</div><div class='del'>-	0x11135, 0x11135,</div><div class='del'>-	0x11147, 0x1114f,</div><div class='del'>-	0x11177, 0x1117f,</div><div class='del'>-	0x111ce, 0x111cf,</div><div class='del'>-	0x111e0, 0x111e0,</div><div class='del'>-	0x111f5, 0x111ff,</div><div class='del'>-	0x11212, 0x11212,</div><div class='del'>-	0x1123f, 0x1127f,</div><div class='del'>-	0x11287, 0x11287,</div><div class='del'>-	0x11289, 0x11289,</div><div class='del'>-	0x1128e, 0x1128e,</div><div class='del'>-	0x1129e, 0x1129e,</div><div class='del'>-	0x112aa, 0x112af,</div><div class='del'>-	0x112eb, 0x112ef,</div><div class='del'>-	0x112fa, 0x112ff,</div><div class='del'>-	0x11304, 0x11304,</div><div class='del'>-	0x1130d, 0x1130e,</div><div class='del'>-	0x11311, 0x11312,</div><div class='del'>-	0x11329, 0x11329,</div><div class='del'>-	0x11331, 0x11331,</div><div class='del'>-	0x11334, 0x11334,</div><div class='del'>-	0x1133a, 0x1133a,</div><div class='del'>-	0x11345, 0x11346,</div><div class='del'>-	0x11349, 0x1134a,</div><div class='del'>-	0x1134e, 0x1134f,</div><div class='del'>-	0x11351, 0x11356,</div><div class='del'>-	0x11358, 0x1135c,</div><div class='del'>-	0x11364, 0x11365,</div><div class='del'>-	0x1136d, 0x1136f,</div><div class='del'>-	0x11375, 0x113ff,</div><div class='del'>-	0x1145a, 0x1145a,</div><div class='del'>-	0x1145c, 0x1145c,</div><div class='del'>-	0x1145f, 0x1147f,</div><div class='del'>-	0x114c8, 0x114cf,</div><div class='del'>-	0x114da, 0x1157f,</div><div class='del'>-	0x115b6, 0x115b7,</div><div class='del'>-	0x115de, 0x115ff,</div><div class='del'>-	0x11645, 0x1164f,</div><div class='del'>-	0x1165a, 0x1165f,</div><div class='del'>-	0x1166d, 0x1167f,</div><div class='del'>-	0x116b8, 0x116bf,</div><div class='del'>-	0x116ca, 0x116ff,</div><div class='del'>-	0x1171b, 0x1171c,</div><div class='del'>-	0x1172c, 0x1172f,</div><div class='del'>-	0x11740, 0x117ff,</div><div class='del'>-	0x1183c, 0x1189f,</div><div class='del'>-	0x118f3, 0x118fe,</div><div class='del'>-	0x11900, 0x119ff,</div><div class='del'>-	0x11a48, 0x11a4f,</div><div class='del'>-	0x11a84, 0x11a85,</div><div class='del'>-	0x11aa3, 0x11abf,</div><div class='del'>-	0x11af9, 0x11bff,</div><div class='del'>-	0x11c09, 0x11c09,</div><div class='del'>-	0x11c37, 0x11c37,</div><div class='del'>-	0x11c46, 0x11c4f,</div><div class='del'>-	0x11c6d, 0x11c6f,</div><div class='del'>-	0x11c90, 0x11c91,</div><div class='del'>-	0x11ca8, 0x11ca8,</div><div class='del'>-	0x11cb7, 0x11cff,</div><div class='del'>-	0x11d07, 0x11d07,</div><div class='del'>-	0x11d0a, 0x11d0a,</div><div class='del'>-	0x11d37, 0x11d39,</div><div class='del'>-	0x11d3b, 0x11d3b,</div><div class='del'>-	0x11d3e, 0x11d3e,</div><div class='del'>-	0x11d48, 0x11d4f,</div><div class='del'>-	0x11d5a, 0x11d5f,</div><div class='del'>-	0x11d66, 0x11d66,</div><div class='del'>-	0x11d69, 0x11d69,</div><div class='del'>-	0x11d8f, 0x11d8f,</div><div class='del'>-	0x11d92, 0x11d92,</div><div class='del'>-	0x11d99, 0x11d9f,</div><div class='del'>-	0x11daa, 0x11edf,</div><div class='del'>-	0x11ef9, 0x11fff,</div><div class='del'>-	0x1239a, 0x123ff,</div><div class='del'>-	0x1246f, 0x1246f,</div><div class='del'>-	0x12475, 0x1247f,</div><div class='del'>-	0x12544, 0x12fff,</div><div class='del'>-	0x1342f, 0x143ff,</div><div class='del'>-	0x14647, 0x167ff,</div><div class='del'>-	0x16a39, 0x16a3f,</div><div class='del'>-	0x16a5f, 0x16a5f,</div><div class='del'>-	0x16a6a, 0x16a6d,</div><div class='del'>-	0x16a70, 0x16acf,</div><div class='del'>-	0x16aee, 0x16aef,</div><div class='del'>-	0x16af6, 0x16aff,</div><div class='del'>-	0x16b46, 0x16b4f,</div><div class='del'>-	0x16b5a, 0x16b5a,</div><div class='del'>-	0x16b62, 0x16b62,</div><div class='del'>-	0x16b78, 0x16b7c,</div><div class='del'>-	0x16b90, 0x16e3f,</div><div class='del'>-	0x16e9b, 0x16eff,</div><div class='del'>-	0x16f45, 0x16f4f,</div><div class='del'>-	0x16f7f, 0x16f8e,</div><div class='del'>-	0x16fa0, 0x16fdf,</div><div class='del'>-	0x16fe2, 0x16fff,</div><div class='del'>-	0x187f2, 0x187ff,</div><div class='del'>-	0x18af3, 0x1afff,</div><div class='del'>-	0x1b11f, 0x1b16f,</div><div class='del'>-	0x1b2fc, 0x1bbff,</div><div class='del'>-	0x1bc6b, 0x1bc6f,</div><div class='del'>-	0x1bc7d, 0x1bc7f,</div><div class='del'>-	0x1bc89, 0x1bc8f,</div><div class='del'>-	0x1bc9a, 0x1bc9b,</div><div class='del'>-	0x1bca0, 0x1cfff,</div><div class='del'>-	0x1d0f6, 0x1d0ff,</div><div class='del'>-	0x1d127, 0x1d128,</div><div class='del'>-	0x1d173, 0x1d17a,</div><div class='del'>-	0x1d1e9, 0x1d1ff,</div><div class='del'>-	0x1d246, 0x1d2df,</div><div class='del'>-	0x1d2f4, 0x1d2ff,</div><div class='del'>-	0x1d357, 0x1d35f,</div><div class='del'>-	0x1d379, 0x1d3ff,</div><div class='del'>-	0x1d455, 0x1d455,</div><div class='del'>-	0x1d49d, 0x1d49d,</div><div class='del'>-	0x1d4a0, 0x1d4a1,</div><div class='del'>-	0x1d4a3, 0x1d4a4,</div><div class='del'>-	0x1d4a7, 0x1d4a8,</div><div class='del'>-	0x1d4ad, 0x1d4ad,</div><div class='del'>-	0x1d4ba, 0x1d4ba,</div><div class='del'>-	0x1d4bc, 0x1d4bc,</div><div class='del'>-	0x1d4c4, 0x1d4c4,</div><div class='del'>-	0x1d506, 0x1d506,</div><div class='del'>-	0x1d50b, 0x1d50c,</div><div class='del'>-	0x1d515, 0x1d515,</div><div class='del'>-	0x1d51d, 0x1d51d,</div><div class='del'>-	0x1d53a, 0x1d53a,</div><div class='del'>-	0x1d53f, 0x1d53f,</div><div class='del'>-	0x1d545, 0x1d545,</div><div class='del'>-	0x1d547, 0x1d549,</div><div class='del'>-	0x1d551, 0x1d551,</div><div class='del'>-	0x1d6a6, 0x1d6a7,</div><div class='del'>-	0x1d7cc, 0x1d7cd,</div><div class='del'>-	0x1da8c, 0x1da9a,</div><div class='del'>-	0x1daa0, 0x1daa0,</div><div class='del'>-	0x1dab0, 0x1dfff,</div><div class='del'>-	0x1e007, 0x1e007,</div><div class='del'>-	0x1e019, 0x1e01a,</div><div class='del'>-	0x1e022, 0x1e022,</div><div class='del'>-	0x1e025, 0x1e025,</div><div class='del'>-	0x1e02b, 0x1e7ff,</div><div class='del'>-	0x1e8c5, 0x1e8c6,</div><div class='del'>-	0x1e8d7, 0x1e8ff,</div><div class='del'>-	0x1e94b, 0x1e94f,</div><div class='del'>-	0x1e95a, 0x1e95d,</div><div class='del'>-	0x1e960, 0x1ec70,</div><div class='del'>-	0x1ecb5, 0x1edff,</div><div class='del'>-	0x1ee04, 0x1ee04,</div><div class='del'>-	0x1ee20, 0x1ee20,</div><div class='del'>-	0x1ee23, 0x1ee23,</div><div class='del'>-	0x1ee25, 0x1ee26,</div><div class='del'>-	0x1ee28, 0x1ee28,</div><div class='del'>-	0x1ee33, 0x1ee33,</div><div class='del'>-	0x1ee38, 0x1ee38,</div><div class='del'>-	0x1ee3a, 0x1ee3a,</div><div class='del'>-	0x1ee3c, 0x1ee41,</div><div class='del'>-	0x1ee43, 0x1ee46,</div><div class='del'>-	0x1ee48, 0x1ee48,</div><div class='del'>-	0x1ee4a, 0x1ee4a,</div><div class='del'>-	0x1ee4c, 0x1ee4c,</div><div class='del'>-	0x1ee50, 0x1ee50,</div><div class='del'>-	0x1ee53, 0x1ee53,</div><div class='del'>-	0x1ee55, 0x1ee56,</div><div class='del'>-	0x1ee58, 0x1ee58,</div><div class='del'>-	0x1ee5a, 0x1ee5a,</div><div class='del'>-	0x1ee5c, 0x1ee5c,</div><div class='del'>-	0x1ee5e, 0x1ee5e,</div><div class='del'>-	0x1ee60, 0x1ee60,</div><div class='del'>-	0x1ee63, 0x1ee63,</div><div class='del'>-	0x1ee65, 0x1ee66,</div><div class='del'>-	0x1ee6b, 0x1ee6b,</div><div class='del'>-	0x1ee73, 0x1ee73,</div><div class='del'>-	0x1ee78, 0x1ee78,</div><div class='del'>-	0x1ee7d, 0x1ee7d,</div><div class='del'>-	0x1ee7f, 0x1ee7f,</div><div class='del'>-	0x1ee8a, 0x1ee8a,</div><div class='del'>-	0x1ee9c, 0x1eea0,</div><div class='del'>-	0x1eea4, 0x1eea4,</div><div class='del'>-	0x1eeaa, 0x1eeaa,</div><div class='del'>-	0x1eebc, 0x1eeef,</div><div class='del'>-	0x1eef2, 0x1efff,</div><div class='del'>-	0x1f02c, 0x1f02f,</div><div class='del'>-	0x1f094, 0x1f09f,</div><div class='del'>-	0x1f0af, 0x1f0b0,</div><div class='del'>-	0x1f0c0, 0x1f0c0,</div><div class='del'>-	0x1f0d0, 0x1f0d0,</div><div class='del'>-	0x1f0f6, 0x1f0ff,</div><div class='del'>-	0x1f10d, 0x1f10f,</div><div class='del'>-	0x1f16c, 0x1f16f,</div><div class='del'>-	0x1f1ad, 0x1f1e5,</div><div class='del'>-	0x1f203, 0x1f20f,</div><div class='del'>-	0x1f23c, 0x1f23f,</div><div class='del'>-	0x1f249, 0x1f24f,</div><div class='del'>-	0x1f252, 0x1f25f,</div><div class='del'>-	0x1f266, 0x1f2ff,</div><div class='del'>-	0x1f6d5, 0x1f6df,</div><div class='del'>-	0x1f6ed, 0x1f6ef,</div><div class='del'>-	0x1f6fa, 0x1f6ff,</div><div class='del'>-	0x1f774, 0x1f77f,</div><div class='del'>-	0x1f7d9, 0x1f7ff,</div><div class='del'>-	0x1f80c, 0x1f80f,</div><div class='del'>-	0x1f848, 0x1f84f,</div><div class='del'>-	0x1f85a, 0x1f85f,</div><div class='del'>-	0x1f888, 0x1f88f,</div><div class='del'>-	0x1f8ae, 0x1f8ff,</div><div class='del'>-	0x1f90c, 0x1f90f,</div><div class='del'>-	0x1f93f, 0x1f93f,</div><div class='del'>-	0x1f971, 0x1f972,</div><div class='del'>-	0x1f977, 0x1f979,</div><div class='del'>-	0x1f97b, 0x1f97b,</div><div class='del'>-	0x1f9a3, 0x1f9af,</div><div class='del'>-	0x1f9ba, 0x1f9bf,</div><div class='del'>-	0x1f9c3, 0x1f9cf,</div><div class='del'>-	0x1fa00, 0x1fa5f,</div><div class='del'>-	0x1fa6e, 0x1ffff,</div><div class='del'>-	0x2a6d7, 0x2a6ff,</div><div class='del'>-	0x2b735, 0x2b73f,</div><div class='del'>-	0x2b81e, 0x2b81f,</div><div class='del'>-	0x2cea2, 0x2ceaf,</div><div class='del'>-	0x2ebe1, 0x2f7ff,</div><div class='del'>-	0x2fa1e, 0xe00ff,</div><div class='del'>-	0xe01f0, 0x10ffff,</div><div class='del'>-}; /* CR_C */</div><div class='del'>-</div><div class='del'>-/* 'Cc': General Category */</div><div class='del'>-#define CR_Cc CR_Cntrl</div><div class='del'>-</div><div class='del'>-/* 'Cf': General Category */</div><div class='del'>-static const OnigCodePoint CR_Cf[] = {</div><div class='del'>-	19,</div><div class='del'>-	0x00ad, 0x00ad,</div><div class='del'>-	0x0600, 0x0605,</div><div class='del'>-	0x061c, 0x061c,</div><div class='del'>-	0x06dd, 0x06dd,</div><div class='del'>-	0x070f, 0x070f,</div><div class='del'>-	0x08e2, 0x08e2,</div><div class='del'>-	0x180e, 0x180e,</div><div class='del'>-	0x200b, 0x200f,</div><div class='del'>-	0x202a, 0x202e,</div><div class='del'>-	0x2060, 0x2064,</div><div class='del'>-	0x2066, 0x206f,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xfff9, 0xfffb,</div><div class='del'>-	0x110bd, 0x110bd,</div><div class='del'>-	0x110cd, 0x110cd,</div><div class='del'>-	0x1bca0, 0x1bca3,</div><div class='del'>-	0x1d173, 0x1d17a,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-}; /* CR_Cf */</div><div class='del'>-</div><div class='del'>-/* 'Cn': General Category */</div><div class='del'>-static const OnigCodePoint CR_Cn[] = {</div><div class='del'>-	658,</div><div class='del'>-	0x0378, 0x0379,</div><div class='del'>-	0x0380, 0x0383,</div><div class='del'>-	0x038b, 0x038b,</div><div class='del'>-	0x038d, 0x038d,</div><div class='del'>-	0x03a2, 0x03a2,</div><div class='del'>-	0x0530, 0x0530,</div><div class='del'>-	0x0557, 0x0558,</div><div class='del'>-	0x058b, 0x058c,</div><div class='del'>-	0x0590, 0x0590,</div><div class='del'>-	0x05c8, 0x05cf,</div><div class='del'>-	0x05eb, 0x05ee,</div><div class='del'>-	0x05f5, 0x05ff,</div><div class='del'>-	0x061d, 0x061d,</div><div class='del'>-	0x070e, 0x070e,</div><div class='del'>-	0x074b, 0x074c,</div><div class='del'>-	0x07b2, 0x07bf,</div><div class='del'>-	0x07fb, 0x07fc,</div><div class='del'>-	0x082e, 0x082f,</div><div class='del'>-	0x083f, 0x083f,</div><div class='del'>-	0x085c, 0x085d,</div><div class='del'>-	0x085f, 0x085f,</div><div class='del'>-	0x086b, 0x089f,</div><div class='del'>-	0x08b5, 0x08b5,</div><div class='del'>-	0x08be, 0x08d2,</div><div class='del'>-	0x0984, 0x0984,</div><div class='del'>-	0x098d, 0x098e,</div><div class='del'>-	0x0991, 0x0992,</div><div class='del'>-	0x09a9, 0x09a9,</div><div class='del'>-	0x09b1, 0x09b1,</div><div class='del'>-	0x09b3, 0x09b5,</div><div class='del'>-	0x09ba, 0x09bb,</div><div class='del'>-	0x09c5, 0x09c6,</div><div class='del'>-	0x09c9, 0x09ca,</div><div class='del'>-	0x09cf, 0x09d6,</div><div class='del'>-	0x09d8, 0x09db,</div><div class='del'>-	0x09de, 0x09de,</div><div class='del'>-	0x09e4, 0x09e5,</div><div class='del'>-	0x09ff, 0x0a00,</div><div class='del'>-	0x0a04, 0x0a04,</div><div class='del'>-	0x0a0b, 0x0a0e,</div><div class='del'>-	0x0a11, 0x0a12,</div><div class='del'>-	0x0a29, 0x0a29,</div><div class='del'>-	0x0a31, 0x0a31,</div><div class='del'>-	0x0a34, 0x0a34,</div><div class='del'>-	0x0a37, 0x0a37,</div><div class='del'>-	0x0a3a, 0x0a3b,</div><div class='del'>-	0x0a3d, 0x0a3d,</div><div class='del'>-	0x0a43, 0x0a46,</div><div class='del'>-	0x0a49, 0x0a4a,</div><div class='del'>-	0x0a4e, 0x0a50,</div><div class='del'>-	0x0a52, 0x0a58,</div><div class='del'>-	0x0a5d, 0x0a5d,</div><div class='del'>-	0x0a5f, 0x0a65,</div><div class='del'>-	0x0a77, 0x0a80,</div><div class='del'>-	0x0a84, 0x0a84,</div><div class='del'>-	0x0a8e, 0x0a8e,</div><div class='del'>-	0x0a92, 0x0a92,</div><div class='del'>-	0x0aa9, 0x0aa9,</div><div class='del'>-	0x0ab1, 0x0ab1,</div><div class='del'>-	0x0ab4, 0x0ab4,</div><div class='del'>-	0x0aba, 0x0abb,</div><div class='del'>-	0x0ac6, 0x0ac6,</div><div class='del'>-	0x0aca, 0x0aca,</div><div class='del'>-	0x0ace, 0x0acf,</div><div class='del'>-	0x0ad1, 0x0adf,</div><div class='del'>-	0x0ae4, 0x0ae5,</div><div class='del'>-	0x0af2, 0x0af8,</div><div class='del'>-	0x0b00, 0x0b00,</div><div class='del'>-	0x0b04, 0x0b04,</div><div class='del'>-	0x0b0d, 0x0b0e,</div><div class='del'>-	0x0b11, 0x0b12,</div><div class='del'>-	0x0b29, 0x0b29,</div><div class='del'>-	0x0b31, 0x0b31,</div><div class='del'>-	0x0b34, 0x0b34,</div><div class='del'>-	0x0b3a, 0x0b3b,</div><div class='del'>-	0x0b45, 0x0b46,</div><div class='del'>-	0x0b49, 0x0b4a,</div><div class='del'>-	0x0b4e, 0x0b55,</div><div class='del'>-	0x0b58, 0x0b5b,</div><div class='del'>-	0x0b5e, 0x0b5e,</div><div class='del'>-	0x0b64, 0x0b65,</div><div class='del'>-	0x0b78, 0x0b81,</div><div class='del'>-	0x0b84, 0x0b84,</div><div class='del'>-	0x0b8b, 0x0b8d,</div><div class='del'>-	0x0b91, 0x0b91,</div><div class='del'>-	0x0b96, 0x0b98,</div><div class='del'>-	0x0b9b, 0x0b9b,</div><div class='del'>-	0x0b9d, 0x0b9d,</div><div class='del'>-	0x0ba0, 0x0ba2,</div><div class='del'>-	0x0ba5, 0x0ba7,</div><div class='del'>-	0x0bab, 0x0bad,</div><div class='del'>-	0x0bba, 0x0bbd,</div><div class='del'>-	0x0bc3, 0x0bc5,</div><div class='del'>-	0x0bc9, 0x0bc9,</div><div class='del'>-	0x0bce, 0x0bcf,</div><div class='del'>-	0x0bd1, 0x0bd6,</div><div class='del'>-	0x0bd8, 0x0be5,</div><div class='del'>-	0x0bfb, 0x0bff,</div><div class='del'>-	0x0c0d, 0x0c0d,</div><div class='del'>-	0x0c11, 0x0c11,</div><div class='del'>-	0x0c29, 0x0c29,</div><div class='del'>-	0x0c3a, 0x0c3c,</div><div class='del'>-	0x0c45, 0x0c45,</div><div class='del'>-	0x0c49, 0x0c49,</div><div class='del'>-	0x0c4e, 0x0c54,</div><div class='del'>-	0x0c57, 0x0c57,</div><div class='del'>-	0x0c5b, 0x0c5f,</div><div class='del'>-	0x0c64, 0x0c65,</div><div class='del'>-	0x0c70, 0x0c77,</div><div class='del'>-	0x0c8d, 0x0c8d,</div><div class='del'>-	0x0c91, 0x0c91,</div><div class='del'>-	0x0ca9, 0x0ca9,</div><div class='del'>-	0x0cb4, 0x0cb4,</div><div class='del'>-	0x0cba, 0x0cbb,</div><div class='del'>-	0x0cc5, 0x0cc5,</div><div class='del'>-	0x0cc9, 0x0cc9,</div><div class='del'>-	0x0cce, 0x0cd4,</div><div class='del'>-	0x0cd7, 0x0cdd,</div><div class='del'>-	0x0cdf, 0x0cdf,</div><div class='del'>-	0x0ce4, 0x0ce5,</div><div class='del'>-	0x0cf0, 0x0cf0,</div><div class='del'>-	0x0cf3, 0x0cff,</div><div class='del'>-	0x0d04, 0x0d04,</div><div class='del'>-	0x0d0d, 0x0d0d,</div><div class='del'>-	0x0d11, 0x0d11,</div><div class='del'>-	0x0d45, 0x0d45,</div><div class='del'>-	0x0d49, 0x0d49,</div><div class='del'>-	0x0d50, 0x0d53,</div><div class='del'>-	0x0d64, 0x0d65,</div><div class='del'>-	0x0d80, 0x0d81,</div><div class='del'>-	0x0d84, 0x0d84,</div><div class='del'>-	0x0d97, 0x0d99,</div><div class='del'>-	0x0db2, 0x0db2,</div><div class='del'>-	0x0dbc, 0x0dbc,</div><div class='del'>-	0x0dbe, 0x0dbf,</div><div class='del'>-	0x0dc7, 0x0dc9,</div><div class='del'>-	0x0dcb, 0x0dce,</div><div class='del'>-	0x0dd5, 0x0dd5,</div><div class='del'>-	0x0dd7, 0x0dd7,</div><div class='del'>-	0x0de0, 0x0de5,</div><div class='del'>-	0x0df0, 0x0df1,</div><div class='del'>-	0x0df5, 0x0e00,</div><div class='del'>-	0x0e3b, 0x0e3e,</div><div class='del'>-	0x0e5c, 0x0e80,</div><div class='del'>-	0x0e83, 0x0e83,</div><div class='del'>-	0x0e85, 0x0e86,</div><div class='del'>-	0x0e89, 0x0e89,</div><div class='del'>-	0x0e8b, 0x0e8c,</div><div class='del'>-	0x0e8e, 0x0e93,</div><div class='del'>-	0x0e98, 0x0e98,</div><div class='del'>-	0x0ea0, 0x0ea0,</div><div class='del'>-	0x0ea4, 0x0ea4,</div><div class='del'>-	0x0ea6, 0x0ea6,</div><div class='del'>-	0x0ea8, 0x0ea9,</div><div class='del'>-	0x0eac, 0x0eac,</div><div class='del'>-	0x0eba, 0x0eba,</div><div class='del'>-	0x0ebe, 0x0ebf,</div><div class='del'>-	0x0ec5, 0x0ec5,</div><div class='del'>-	0x0ec7, 0x0ec7,</div><div class='del'>-	0x0ece, 0x0ecf,</div><div class='del'>-	0x0eda, 0x0edb,</div><div class='del'>-	0x0ee0, 0x0eff,</div><div class='del'>-	0x0f48, 0x0f48,</div><div class='del'>-	0x0f6d, 0x0f70,</div><div class='del'>-	0x0f98, 0x0f98,</div><div class='del'>-	0x0fbd, 0x0fbd,</div><div class='del'>-	0x0fcd, 0x0fcd,</div><div class='del'>-	0x0fdb, 0x0fff,</div><div class='del'>-	0x10c6, 0x10c6,</div><div class='del'>-	0x10c8, 0x10cc,</div><div class='del'>-	0x10ce, 0x10cf,</div><div class='del'>-	0x1249, 0x1249,</div><div class='del'>-	0x124e, 0x124f,</div><div class='del'>-	0x1257, 0x1257,</div><div class='del'>-	0x1259, 0x1259,</div><div class='del'>-	0x125e, 0x125f,</div><div class='del'>-	0x1289, 0x1289,</div><div class='del'>-	0x128e, 0x128f,</div><div class='del'>-	0x12b1, 0x12b1,</div><div class='del'>-	0x12b6, 0x12b7,</div><div class='del'>-	0x12bf, 0x12bf,</div><div class='del'>-	0x12c1, 0x12c1,</div><div class='del'>-	0x12c6, 0x12c7,</div><div class='del'>-	0x12d7, 0x12d7,</div><div class='del'>-	0x1311, 0x1311,</div><div class='del'>-	0x1316, 0x1317,</div><div class='del'>-	0x135b, 0x135c,</div><div class='del'>-	0x137d, 0x137f,</div><div class='del'>-	0x139a, 0x139f,</div><div class='del'>-	0x13f6, 0x13f7,</div><div class='del'>-	0x13fe, 0x13ff,</div><div class='del'>-	0x169d, 0x169f,</div><div class='del'>-	0x16f9, 0x16ff,</div><div class='del'>-	0x170d, 0x170d,</div><div class='del'>-	0x1715, 0x171f,</div><div class='del'>-	0x1737, 0x173f,</div><div class='del'>-	0x1754, 0x175f,</div><div class='del'>-	0x176d, 0x176d,</div><div class='del'>-	0x1771, 0x1771,</div><div class='del'>-	0x1774, 0x177f,</div><div class='del'>-	0x17de, 0x17df,</div><div class='del'>-	0x17ea, 0x17ef,</div><div class='del'>-	0x17fa, 0x17ff,</div><div class='del'>-	0x180f, 0x180f,</div><div class='del'>-	0x181a, 0x181f,</div><div class='del'>-	0x1879, 0x187f,</div><div class='del'>-	0x18ab, 0x18af,</div><div class='del'>-	0x18f6, 0x18ff,</div><div class='del'>-	0x191f, 0x191f,</div><div class='del'>-	0x192c, 0x192f,</div><div class='del'>-	0x193c, 0x193f,</div><div class='del'>-	0x1941, 0x1943,</div><div class='del'>-	0x196e, 0x196f,</div><div class='del'>-	0x1975, 0x197f,</div><div class='del'>-	0x19ac, 0x19af,</div><div class='del'>-	0x19ca, 0x19cf,</div><div class='del'>-	0x19db, 0x19dd,</div><div class='del'>-	0x1a1c, 0x1a1d,</div><div class='del'>-	0x1a5f, 0x1a5f,</div><div class='del'>-	0x1a7d, 0x1a7e,</div><div class='del'>-	0x1a8a, 0x1a8f,</div><div class='del'>-	0x1a9a, 0x1a9f,</div><div class='del'>-	0x1aae, 0x1aaf,</div><div class='del'>-	0x1abf, 0x1aff,</div><div class='del'>-	0x1b4c, 0x1b4f,</div><div class='del'>-	0x1b7d, 0x1b7f,</div><div class='del'>-	0x1bf4, 0x1bfb,</div><div class='del'>-	0x1c38, 0x1c3a,</div><div class='del'>-	0x1c4a, 0x1c4c,</div><div class='del'>-	0x1c89, 0x1c8f,</div><div class='del'>-	0x1cbb, 0x1cbc,</div><div class='del'>-	0x1cc8, 0x1ccf,</div><div class='del'>-	0x1cfa, 0x1cff,</div><div class='del'>-	0x1dfa, 0x1dfa,</div><div class='del'>-	0x1f16, 0x1f17,</div><div class='del'>-	0x1f1e, 0x1f1f,</div><div class='del'>-	0x1f46, 0x1f47,</div><div class='del'>-	0x1f4e, 0x1f4f,</div><div class='del'>-	0x1f58, 0x1f58,</div><div class='del'>-	0x1f5a, 0x1f5a,</div><div class='del'>-	0x1f5c, 0x1f5c,</div><div class='del'>-	0x1f5e, 0x1f5e,</div><div class='del'>-	0x1f7e, 0x1f7f,</div><div class='del'>-	0x1fb5, 0x1fb5,</div><div class='del'>-	0x1fc5, 0x1fc5,</div><div class='del'>-	0x1fd4, 0x1fd5,</div><div class='del'>-	0x1fdc, 0x1fdc,</div><div class='del'>-	0x1ff0, 0x1ff1,</div><div class='del'>-	0x1ff5, 0x1ff5,</div><div class='del'>-	0x1fff, 0x1fff,</div><div class='del'>-	0x2065, 0x2065,</div><div class='del'>-	0x2072, 0x2073,</div><div class='del'>-	0x208f, 0x208f,</div><div class='del'>-	0x209d, 0x209f,</div><div class='del'>-	0x20c0, 0x20cf,</div><div class='del'>-	0x20f1, 0x20ff,</div><div class='del'>-	0x218c, 0x218f,</div><div class='del'>-	0x2427, 0x243f,</div><div class='del'>-	0x244b, 0x245f,</div><div class='del'>-	0x2b74, 0x2b75,</div><div class='del'>-	0x2b96, 0x2b97,</div><div class='del'>-	0x2bc9, 0x2bc9,</div><div class='del'>-	0x2bff, 0x2bff,</div><div class='del'>-	0x2c2f, 0x2c2f,</div><div class='del'>-	0x2c5f, 0x2c5f,</div><div class='del'>-	0x2cf4, 0x2cf8,</div><div class='del'>-	0x2d26, 0x2d26,</div><div class='del'>-	0x2d28, 0x2d2c,</div><div class='del'>-	0x2d2e, 0x2d2f,</div><div class='del'>-	0x2d68, 0x2d6e,</div><div class='del'>-	0x2d71, 0x2d7e,</div><div class='del'>-	0x2d97, 0x2d9f,</div><div class='del'>-	0x2da7, 0x2da7,</div><div class='del'>-	0x2daf, 0x2daf,</div><div class='del'>-	0x2db7, 0x2db7,</div><div class='del'>-	0x2dbf, 0x2dbf,</div><div class='del'>-	0x2dc7, 0x2dc7,</div><div class='del'>-	0x2dcf, 0x2dcf,</div><div class='del'>-	0x2dd7, 0x2dd7,</div><div class='del'>-	0x2ddf, 0x2ddf,</div><div class='del'>-	0x2e4f, 0x2e7f,</div><div class='del'>-	0x2e9a, 0x2e9a,</div><div class='del'>-	0x2ef4, 0x2eff,</div><div class='del'>-	0x2fd6, 0x2fef,</div><div class='del'>-	0x2ffc, 0x2fff,</div><div class='del'>-	0x3040, 0x3040,</div><div class='del'>-	0x3097, 0x3098,</div><div class='del'>-	0x3100, 0x3104,</div><div class='del'>-	0x3130, 0x3130,</div><div class='del'>-	0x318f, 0x318f,</div><div class='del'>-	0x31bb, 0x31bf,</div><div class='del'>-	0x31e4, 0x31ef,</div><div class='del'>-	0x321f, 0x321f,</div><div class='del'>-	0x32ff, 0x32ff,</div><div class='del'>-	0x4db6, 0x4dbf,</div><div class='del'>-	0x9ff0, 0x9fff,</div><div class='del'>-	0xa48d, 0xa48f,</div><div class='del'>-	0xa4c7, 0xa4cf,</div><div class='del'>-	0xa62c, 0xa63f,</div><div class='del'>-	0xa6f8, 0xa6ff,</div><div class='del'>-	0xa7ba, 0xa7f6,</div><div class='del'>-	0xa82c, 0xa82f,</div><div class='del'>-	0xa83a, 0xa83f,</div><div class='del'>-	0xa878, 0xa87f,</div><div class='del'>-	0xa8c6, 0xa8cd,</div><div class='del'>-	0xa8da, 0xa8df,</div><div class='del'>-	0xa954, 0xa95e,</div><div class='del'>-	0xa97d, 0xa97f,</div><div class='del'>-	0xa9ce, 0xa9ce,</div><div class='del'>-	0xa9da, 0xa9dd,</div><div class='del'>-	0xa9ff, 0xa9ff,</div><div class='del'>-	0xaa37, 0xaa3f,</div><div class='del'>-	0xaa4e, 0xaa4f,</div><div class='del'>-	0xaa5a, 0xaa5b,</div><div class='del'>-	0xaac3, 0xaada,</div><div class='del'>-	0xaaf7, 0xab00,</div><div class='del'>-	0xab07, 0xab08,</div><div class='del'>-	0xab0f, 0xab10,</div><div class='del'>-	0xab17, 0xab1f,</div><div class='del'>-	0xab27, 0xab27,</div><div class='del'>-	0xab2f, 0xab2f,</div><div class='del'>-	0xab66, 0xab6f,</div><div class='del'>-	0xabee, 0xabef,</div><div class='del'>-	0xabfa, 0xabff,</div><div class='del'>-	0xd7a4, 0xd7af,</div><div class='del'>-	0xd7c7, 0xd7ca,</div><div class='del'>-	0xd7fc, 0xd7ff,</div><div class='del'>-	0xfa6e, 0xfa6f,</div><div class='del'>-	0xfada, 0xfaff,</div><div class='del'>-	0xfb07, 0xfb12,</div><div class='del'>-	0xfb18, 0xfb1c,</div><div class='del'>-	0xfb37, 0xfb37,</div><div class='del'>-	0xfb3d, 0xfb3d,</div><div class='del'>-	0xfb3f, 0xfb3f,</div><div class='del'>-	0xfb42, 0xfb42,</div><div class='del'>-	0xfb45, 0xfb45,</div><div class='del'>-	0xfbc2, 0xfbd2,</div><div class='del'>-	0xfd40, 0xfd4f,</div><div class='del'>-	0xfd90, 0xfd91,</div><div class='del'>-	0xfdc8, 0xfdef,</div><div class='del'>-	0xfdfe, 0xfdff,</div><div class='del'>-	0xfe1a, 0xfe1f,</div><div class='del'>-	0xfe53, 0xfe53,</div><div class='del'>-	0xfe67, 0xfe67,</div><div class='del'>-	0xfe6c, 0xfe6f,</div><div class='del'>-	0xfe75, 0xfe75,</div><div class='del'>-	0xfefd, 0xfefe,</div><div class='del'>-	0xff00, 0xff00,</div><div class='del'>-	0xffbf, 0xffc1,</div><div class='del'>-	0xffc8, 0xffc9,</div><div class='del'>-	0xffd0, 0xffd1,</div><div class='del'>-	0xffd8, 0xffd9,</div><div class='del'>-	0xffdd, 0xffdf,</div><div class='del'>-	0xffe7, 0xffe7,</div><div class='del'>-	0xffef, 0xfff8,</div><div class='del'>-	0xfffe, 0xffff,</div><div class='del'>-	0x1000c, 0x1000c,</div><div class='del'>-	0x10027, 0x10027,</div><div class='del'>-	0x1003b, 0x1003b,</div><div class='del'>-	0x1003e, 0x1003e,</div><div class='del'>-	0x1004e, 0x1004f,</div><div class='del'>-	0x1005e, 0x1007f,</div><div class='del'>-	0x100fb, 0x100ff,</div><div class='del'>-	0x10103, 0x10106,</div><div class='del'>-	0x10134, 0x10136,</div><div class='del'>-	0x1018f, 0x1018f,</div><div class='del'>-	0x1019c, 0x1019f,</div><div class='del'>-	0x101a1, 0x101cf,</div><div class='del'>-	0x101fe, 0x1027f,</div><div class='del'>-	0x1029d, 0x1029f,</div><div class='del'>-	0x102d1, 0x102df,</div><div class='del'>-	0x102fc, 0x102ff,</div><div class='del'>-	0x10324, 0x1032c,</div><div class='del'>-	0x1034b, 0x1034f,</div><div class='del'>-	0x1037b, 0x1037f,</div><div class='del'>-	0x1039e, 0x1039e,</div><div class='del'>-	0x103c4, 0x103c7,</div><div class='del'>-	0x103d6, 0x103ff,</div><div class='del'>-	0x1049e, 0x1049f,</div><div class='del'>-	0x104aa, 0x104af,</div><div class='del'>-	0x104d4, 0x104d7,</div><div class='del'>-	0x104fc, 0x104ff,</div><div class='del'>-	0x10528, 0x1052f,</div><div class='del'>-	0x10564, 0x1056e,</div><div class='del'>-	0x10570, 0x105ff,</div><div class='del'>-	0x10737, 0x1073f,</div><div class='del'>-	0x10756, 0x1075f,</div><div class='del'>-	0x10768, 0x107ff,</div><div class='del'>-	0x10806, 0x10807,</div><div class='del'>-	0x10809, 0x10809,</div><div class='del'>-	0x10836, 0x10836,</div><div class='del'>-	0x10839, 0x1083b,</div><div class='del'>-	0x1083d, 0x1083e,</div><div class='del'>-	0x10856, 0x10856,</div><div class='del'>-	0x1089f, 0x108a6,</div><div class='del'>-	0x108b0, 0x108df,</div><div class='del'>-	0x108f3, 0x108f3,</div><div class='del'>-	0x108f6, 0x108fa,</div><div class='del'>-	0x1091c, 0x1091e,</div><div class='del'>-	0x1093a, 0x1093e,</div><div class='del'>-	0x10940, 0x1097f,</div><div class='del'>-	0x109b8, 0x109bb,</div><div class='del'>-	0x109d0, 0x109d1,</div><div class='del'>-	0x10a04, 0x10a04,</div><div class='del'>-	0x10a07, 0x10a0b,</div><div class='del'>-	0x10a14, 0x10a14,</div><div class='del'>-	0x10a18, 0x10a18,</div><div class='del'>-	0x10a36, 0x10a37,</div><div class='del'>-	0x10a3b, 0x10a3e,</div><div class='del'>-	0x10a49, 0x10a4f,</div><div class='del'>-	0x10a59, 0x10a5f,</div><div class='del'>-	0x10aa0, 0x10abf,</div><div class='del'>-	0x10ae7, 0x10aea,</div><div class='del'>-	0x10af7, 0x10aff,</div><div class='del'>-	0x10b36, 0x10b38,</div><div class='del'>-	0x10b56, 0x10b57,</div><div class='del'>-	0x10b73, 0x10b77,</div><div class='del'>-	0x10b92, 0x10b98,</div><div class='del'>-	0x10b9d, 0x10ba8,</div><div class='del'>-	0x10bb0, 0x10bff,</div><div class='del'>-	0x10c49, 0x10c7f,</div><div class='del'>-	0x10cb3, 0x10cbf,</div><div class='del'>-	0x10cf3, 0x10cf9,</div><div class='del'>-	0x10d28, 0x10d2f,</div><div class='del'>-	0x10d3a, 0x10e5f,</div><div class='del'>-	0x10e7f, 0x10eff,</div><div class='del'>-	0x10f28, 0x10f2f,</div><div class='del'>-	0x10f5a, 0x10fff,</div><div class='del'>-	0x1104e, 0x11051,</div><div class='del'>-	0x11070, 0x1107e,</div><div class='del'>-	0x110c2, 0x110cc,</div><div class='del'>-	0x110ce, 0x110cf,</div><div class='del'>-	0x110e9, 0x110ef,</div><div class='del'>-	0x110fa, 0x110ff,</div><div class='del'>-	0x11135, 0x11135,</div><div class='del'>-	0x11147, 0x1114f,</div><div class='del'>-	0x11177, 0x1117f,</div><div class='del'>-	0x111ce, 0x111cf,</div><div class='del'>-	0x111e0, 0x111e0,</div><div class='del'>-	0x111f5, 0x111ff,</div><div class='del'>-	0x11212, 0x11212,</div><div class='del'>-	0x1123f, 0x1127f,</div><div class='del'>-	0x11287, 0x11287,</div><div class='del'>-	0x11289, 0x11289,</div><div class='del'>-	0x1128e, 0x1128e,</div><div class='del'>-	0x1129e, 0x1129e,</div><div class='del'>-	0x112aa, 0x112af,</div><div class='del'>-	0x112eb, 0x112ef,</div><div class='del'>-	0x112fa, 0x112ff,</div><div class='del'>-	0x11304, 0x11304,</div><div class='del'>-	0x1130d, 0x1130e,</div><div class='del'>-	0x11311, 0x11312,</div><div class='del'>-	0x11329, 0x11329,</div><div class='del'>-	0x11331, 0x11331,</div><div class='del'>-	0x11334, 0x11334,</div><div class='del'>-	0x1133a, 0x1133a,</div><div class='del'>-	0x11345, 0x11346,</div><div class='del'>-	0x11349, 0x1134a,</div><div class='del'>-	0x1134e, 0x1134f,</div><div class='del'>-	0x11351, 0x11356,</div><div class='del'>-	0x11358, 0x1135c,</div><div class='del'>-	0x11364, 0x11365,</div><div class='del'>-	0x1136d, 0x1136f,</div><div class='del'>-	0x11375, 0x113ff,</div><div class='del'>-	0x1145a, 0x1145a,</div><div class='del'>-	0x1145c, 0x1145c,</div><div class='del'>-	0x1145f, 0x1147f,</div><div class='del'>-	0x114c8, 0x114cf,</div><div class='del'>-	0x114da, 0x1157f,</div><div class='del'>-	0x115b6, 0x115b7,</div><div class='del'>-	0x115de, 0x115ff,</div><div class='del'>-	0x11645, 0x1164f,</div><div class='del'>-	0x1165a, 0x1165f,</div><div class='del'>-	0x1166d, 0x1167f,</div><div class='del'>-	0x116b8, 0x116bf,</div><div class='del'>-	0x116ca, 0x116ff,</div><div class='del'>-	0x1171b, 0x1171c,</div><div class='del'>-	0x1172c, 0x1172f,</div><div class='del'>-	0x11740, 0x117ff,</div><div class='del'>-	0x1183c, 0x1189f,</div><div class='del'>-	0x118f3, 0x118fe,</div><div class='del'>-	0x11900, 0x119ff,</div><div class='del'>-	0x11a48, 0x11a4f,</div><div class='del'>-	0x11a84, 0x11a85,</div><div class='del'>-	0x11aa3, 0x11abf,</div><div class='del'>-	0x11af9, 0x11bff,</div><div class='del'>-	0x11c09, 0x11c09,</div><div class='del'>-	0x11c37, 0x11c37,</div><div class='del'>-	0x11c46, 0x11c4f,</div><div class='del'>-	0x11c6d, 0x11c6f,</div><div class='del'>-	0x11c90, 0x11c91,</div><div class='del'>-	0x11ca8, 0x11ca8,</div><div class='del'>-	0x11cb7, 0x11cff,</div><div class='del'>-	0x11d07, 0x11d07,</div><div class='del'>-	0x11d0a, 0x11d0a,</div><div class='del'>-	0x11d37, 0x11d39,</div><div class='del'>-	0x11d3b, 0x11d3b,</div><div class='del'>-	0x11d3e, 0x11d3e,</div><div class='del'>-	0x11d48, 0x11d4f,</div><div class='del'>-	0x11d5a, 0x11d5f,</div><div class='del'>-	0x11d66, 0x11d66,</div><div class='del'>-	0x11d69, 0x11d69,</div><div class='del'>-	0x11d8f, 0x11d8f,</div><div class='del'>-	0x11d92, 0x11d92,</div><div class='del'>-	0x11d99, 0x11d9f,</div><div class='del'>-	0x11daa, 0x11edf,</div><div class='del'>-	0x11ef9, 0x11fff,</div><div class='del'>-	0x1239a, 0x123ff,</div><div class='del'>-	0x1246f, 0x1246f,</div><div class='del'>-	0x12475, 0x1247f,</div><div class='del'>-	0x12544, 0x12fff,</div><div class='del'>-	0x1342f, 0x143ff,</div><div class='del'>-	0x14647, 0x167ff,</div><div class='del'>-	0x16a39, 0x16a3f,</div><div class='del'>-	0x16a5f, 0x16a5f,</div><div class='del'>-	0x16a6a, 0x16a6d,</div><div class='del'>-	0x16a70, 0x16acf,</div><div class='del'>-	0x16aee, 0x16aef,</div><div class='del'>-	0x16af6, 0x16aff,</div><div class='del'>-	0x16b46, 0x16b4f,</div><div class='del'>-	0x16b5a, 0x16b5a,</div><div class='del'>-	0x16b62, 0x16b62,</div><div class='del'>-	0x16b78, 0x16b7c,</div><div class='del'>-	0x16b90, 0x16e3f,</div><div class='del'>-	0x16e9b, 0x16eff,</div><div class='del'>-	0x16f45, 0x16f4f,</div><div class='del'>-	0x16f7f, 0x16f8e,</div><div class='del'>-	0x16fa0, 0x16fdf,</div><div class='del'>-	0x16fe2, 0x16fff,</div><div class='del'>-	0x187f2, 0x187ff,</div><div class='del'>-	0x18af3, 0x1afff,</div><div class='del'>-	0x1b11f, 0x1b16f,</div><div class='del'>-	0x1b2fc, 0x1bbff,</div><div class='del'>-	0x1bc6b, 0x1bc6f,</div><div class='del'>-	0x1bc7d, 0x1bc7f,</div><div class='del'>-	0x1bc89, 0x1bc8f,</div><div class='del'>-	0x1bc9a, 0x1bc9b,</div><div class='del'>-	0x1bca4, 0x1cfff,</div><div class='del'>-	0x1d0f6, 0x1d0ff,</div><div class='del'>-	0x1d127, 0x1d128,</div><div class='del'>-	0x1d1e9, 0x1d1ff,</div><div class='del'>-	0x1d246, 0x1d2df,</div><div class='del'>-	0x1d2f4, 0x1d2ff,</div><div class='del'>-	0x1d357, 0x1d35f,</div><div class='del'>-	0x1d379, 0x1d3ff,</div><div class='del'>-	0x1d455, 0x1d455,</div><div class='del'>-	0x1d49d, 0x1d49d,</div><div class='del'>-	0x1d4a0, 0x1d4a1,</div><div class='del'>-	0x1d4a3, 0x1d4a4,</div><div class='del'>-	0x1d4a7, 0x1d4a8,</div><div class='del'>-	0x1d4ad, 0x1d4ad,</div><div class='del'>-	0x1d4ba, 0x1d4ba,</div><div class='del'>-	0x1d4bc, 0x1d4bc,</div><div class='del'>-	0x1d4c4, 0x1d4c4,</div><div class='del'>-	0x1d506, 0x1d506,</div><div class='del'>-	0x1d50b, 0x1d50c,</div><div class='del'>-	0x1d515, 0x1d515,</div><div class='del'>-	0x1d51d, 0x1d51d,</div><div class='del'>-	0x1d53a, 0x1d53a,</div><div class='del'>-	0x1d53f, 0x1d53f,</div><div class='del'>-	0x1d545, 0x1d545,</div><div class='del'>-	0x1d547, 0x1d549,</div><div class='del'>-	0x1d551, 0x1d551,</div><div class='del'>-	0x1d6a6, 0x1d6a7,</div><div class='del'>-	0x1d7cc, 0x1d7cd,</div><div class='del'>-	0x1da8c, 0x1da9a,</div><div class='del'>-	0x1daa0, 0x1daa0,</div><div class='del'>-	0x1dab0, 0x1dfff,</div><div class='del'>-	0x1e007, 0x1e007,</div><div class='del'>-	0x1e019, 0x1e01a,</div><div class='del'>-	0x1e022, 0x1e022,</div><div class='del'>-	0x1e025, 0x1e025,</div><div class='del'>-	0x1e02b, 0x1e7ff,</div><div class='del'>-	0x1e8c5, 0x1e8c6,</div><div class='del'>-	0x1e8d7, 0x1e8ff,</div><div class='del'>-	0x1e94b, 0x1e94f,</div><div class='del'>-	0x1e95a, 0x1e95d,</div><div class='del'>-	0x1e960, 0x1ec70,</div><div class='del'>-	0x1ecb5, 0x1edff,</div><div class='del'>-	0x1ee04, 0x1ee04,</div><div class='del'>-	0x1ee20, 0x1ee20,</div><div class='del'>-	0x1ee23, 0x1ee23,</div><div class='del'>-	0x1ee25, 0x1ee26,</div><div class='del'>-	0x1ee28, 0x1ee28,</div><div class='del'>-	0x1ee33, 0x1ee33,</div><div class='del'>-	0x1ee38, 0x1ee38,</div><div class='del'>-	0x1ee3a, 0x1ee3a,</div><div class='del'>-	0x1ee3c, 0x1ee41,</div><div class='del'>-	0x1ee43, 0x1ee46,</div><div class='del'>-	0x1ee48, 0x1ee48,</div><div class='del'>-	0x1ee4a, 0x1ee4a,</div><div class='del'>-	0x1ee4c, 0x1ee4c,</div><div class='del'>-	0x1ee50, 0x1ee50,</div><div class='del'>-	0x1ee53, 0x1ee53,</div><div class='del'>-	0x1ee55, 0x1ee56,</div><div class='del'>-	0x1ee58, 0x1ee58,</div><div class='del'>-	0x1ee5a, 0x1ee5a,</div><div class='del'>-	0x1ee5c, 0x1ee5c,</div><div class='del'>-	0x1ee5e, 0x1ee5e,</div><div class='del'>-	0x1ee60, 0x1ee60,</div><div class='del'>-	0x1ee63, 0x1ee63,</div><div class='del'>-	0x1ee65, 0x1ee66,</div><div class='del'>-	0x1ee6b, 0x1ee6b,</div><div class='del'>-	0x1ee73, 0x1ee73,</div><div class='del'>-	0x1ee78, 0x1ee78,</div><div class='del'>-	0x1ee7d, 0x1ee7d,</div><div class='del'>-	0x1ee7f, 0x1ee7f,</div><div class='del'>-	0x1ee8a, 0x1ee8a,</div><div class='del'>-	0x1ee9c, 0x1eea0,</div><div class='del'>-	0x1eea4, 0x1eea4,</div><div class='del'>-	0x1eeaa, 0x1eeaa,</div><div class='del'>-	0x1eebc, 0x1eeef,</div><div class='del'>-	0x1eef2, 0x1efff,</div><div class='del'>-	0x1f02c, 0x1f02f,</div><div class='del'>-	0x1f094, 0x1f09f,</div><div class='del'>-	0x1f0af, 0x1f0b0,</div><div class='del'>-	0x1f0c0, 0x1f0c0,</div><div class='del'>-	0x1f0d0, 0x1f0d0,</div><div class='del'>-	0x1f0f6, 0x1f0ff,</div><div class='del'>-	0x1f10d, 0x1f10f,</div><div class='del'>-	0x1f16c, 0x1f16f,</div><div class='del'>-	0x1f1ad, 0x1f1e5,</div><div class='del'>-	0x1f203, 0x1f20f,</div><div class='del'>-	0x1f23c, 0x1f23f,</div><div class='del'>-	0x1f249, 0x1f24f,</div><div class='del'>-	0x1f252, 0x1f25f,</div><div class='del'>-	0x1f266, 0x1f2ff,</div><div class='del'>-	0x1f6d5, 0x1f6df,</div><div class='del'>-	0x1f6ed, 0x1f6ef,</div><div class='del'>-	0x1f6fa, 0x1f6ff,</div><div class='del'>-	0x1f774, 0x1f77f,</div><div class='del'>-	0x1f7d9, 0x1f7ff,</div><div class='del'>-	0x1f80c, 0x1f80f,</div><div class='del'>-	0x1f848, 0x1f84f,</div><div class='del'>-	0x1f85a, 0x1f85f,</div><div class='del'>-	0x1f888, 0x1f88f,</div><div class='del'>-	0x1f8ae, 0x1f8ff,</div><div class='del'>-	0x1f90c, 0x1f90f,</div><div class='del'>-	0x1f93f, 0x1f93f,</div><div class='del'>-	0x1f971, 0x1f972,</div><div class='del'>-	0x1f977, 0x1f979,</div><div class='del'>-	0x1f97b, 0x1f97b,</div><div class='del'>-	0x1f9a3, 0x1f9af,</div><div class='del'>-	0x1f9ba, 0x1f9bf,</div><div class='del'>-	0x1f9c3, 0x1f9cf,</div><div class='del'>-	0x1fa00, 0x1fa5f,</div><div class='del'>-	0x1fa6e, 0x1ffff,</div><div class='del'>-	0x2a6d7, 0x2a6ff,</div><div class='del'>-	0x2b735, 0x2b73f,</div><div class='del'>-	0x2b81e, 0x2b81f,</div><div class='del'>-	0x2cea2, 0x2ceaf,</div><div class='del'>-	0x2ebe1, 0x2f7ff,</div><div class='del'>-	0x2fa1e, 0xe0000,</div><div class='del'>-	0xe0002, 0xe001f,</div><div class='del'>-	0xe0080, 0xe00ff,</div><div class='del'>-	0xe01f0, 0xeffff,</div><div class='del'>-	0xffffe, 0xfffff,</div><div class='del'>-	0x10fffe, 0x10ffff,</div><div class='del'>-}; /* CR_Cn */</div><div class='del'>-</div><div class='del'>-/* 'Co': General Category */</div><div class='del'>-static const OnigCodePoint CR_Co[] = {</div><div class='del'>-	3,</div><div class='del'>-	0xe000, 0xf8ff,</div><div class='del'>-	0xf0000, 0xffffd,</div><div class='del'>-	0x100000, 0x10fffd,</div><div class='del'>-}; /* CR_Co */</div><div class='del'>-</div><div class='del'>-/* 'Cs': General Category */</div><div class='del'>-static const OnigCodePoint CR_Cs[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xd800, 0xdfff,</div><div class='del'>-}; /* CR_Cs */</div><div class='del'>-</div><div class='del'>-/* 'L': Major Category */</div><div class='del'>-static const OnigCodePoint CR_L[] = {</div><div class='del'>-	599,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x02c1,</div><div class='del'>-	0x02c6, 0x02d1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x02ec, 0x02ec,</div><div class='del'>-	0x02ee, 0x02ee,</div><div class='del'>-	0x0370, 0x0374,</div><div class='del'>-	0x0376, 0x0377,</div><div class='del'>-	0x037a, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03f5,</div><div class='del'>-	0x03f7, 0x0481,</div><div class='del'>-	0x048a, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x0559,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f2,</div><div class='del'>-	0x0620, 0x064a,</div><div class='del'>-	0x066e, 0x066f,</div><div class='del'>-	0x0671, 0x06d3,</div><div class='del'>-	0x06d5, 0x06d5,</div><div class='del'>-	0x06e5, 0x06e6,</div><div class='del'>-	0x06ee, 0x06ef,</div><div class='del'>-	0x06fa, 0x06fc,</div><div class='del'>-	0x06ff, 0x06ff,</div><div class='del'>-	0x0710, 0x0710,</div><div class='del'>-	0x0712, 0x072f,</div><div class='del'>-	0x074d, 0x07a5,</div><div class='del'>-	0x07b1, 0x07b1,</div><div class='del'>-	0x07ca, 0x07ea,</div><div class='del'>-	0x07f4, 0x07f5,</div><div class='del'>-	0x07fa, 0x07fa,</div><div class='del'>-	0x0800, 0x0815,</div><div class='del'>-	0x081a, 0x081a,</div><div class='del'>-	0x0824, 0x0824,</div><div class='del'>-	0x0828, 0x0828,</div><div class='del'>-	0x0840, 0x0858,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x0904, 0x0939,</div><div class='del'>-	0x093d, 0x093d,</div><div class='del'>-	0x0950, 0x0950,</div><div class='del'>-	0x0958, 0x0961,</div><div class='del'>-	0x0971, 0x0980,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bd, 0x09bd,</div><div class='del'>-	0x09ce, 0x09ce,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e1,</div><div class='del'>-	0x09f0, 0x09f1,</div><div class='del'>-	0x09fc, 0x09fc,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a72, 0x0a74,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abd, 0x0abd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae1,</div><div class='del'>-	0x0af9, 0x0af9,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3d, 0x0b3d,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b71, 0x0b71,</div><div class='del'>-	0x0b83, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c3d,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c80, 0x0c80,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbd, 0x0cbd,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d3d,</div><div class='del'>-	0x0d4e, 0x0d4e,</div><div class='del'>-	0x0d54, 0x0d56,</div><div class='del'>-	0x0d5f, 0x0d61,</div><div class='del'>-	0x0d7a, 0x0d7f,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0e01, 0x0e30,</div><div class='del'>-	0x0e32, 0x0e33,</div><div class='del'>-	0x0e40, 0x0e46,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb0,</div><div class='del'>-	0x0eb2, 0x0eb3,</div><div class='del'>-	0x0ebd, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f00,</div><div class='del'>-	0x0f40, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f88, 0x0f8c,</div><div class='del'>-	0x1000, 0x102a,</div><div class='del'>-	0x103f, 0x103f,</div><div class='del'>-	0x1050, 0x1055,</div><div class='del'>-	0x105a, 0x105d,</div><div class='del'>-	0x1061, 0x1061,</div><div class='del'>-	0x1065, 0x1066,</div><div class='del'>-	0x106e, 0x1070,</div><div class='del'>-	0x1075, 0x1081,</div><div class='del'>-	0x108e, 0x108e,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fc, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x1380, 0x138f,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1401, 0x166c,</div><div class='del'>-	0x166f, 0x167f,</div><div class='del'>-	0x1681, 0x169a,</div><div class='del'>-	0x16a0, 0x16ea,</div><div class='del'>-	0x16f1, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1711,</div><div class='del'>-	0x1720, 0x1731,</div><div class='del'>-	0x1740, 0x1751,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1780, 0x17b3,</div><div class='del'>-	0x17d7, 0x17d7,</div><div class='del'>-	0x17dc, 0x17dc,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x1884,</div><div class='del'>-	0x1887, 0x18a8,</div><div class='del'>-	0x18aa, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1950, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x1a00, 0x1a16,</div><div class='del'>-	0x1a20, 0x1a54,</div><div class='del'>-	0x1aa7, 0x1aa7,</div><div class='del'>-	0x1b05, 0x1b33,</div><div class='del'>-	0x1b45, 0x1b4b,</div><div class='del'>-	0x1b83, 0x1ba0,</div><div class='del'>-	0x1bae, 0x1baf,</div><div class='del'>-	0x1bba, 0x1be5,</div><div class='del'>-	0x1c00, 0x1c23,</div><div class='del'>-	0x1c4d, 0x1c4f,</div><div class='del'>-	0x1c5a, 0x1c7d,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1ce9, 0x1cec,</div><div class='del'>-	0x1cee, 0x1cf1,</div><div class='del'>-	0x1cf5, 0x1cf6,</div><div class='del'>-	0x1d00, 0x1dbf,</div><div class='del'>-	0x1e00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fe0, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffc,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2119, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x212d,</div><div class='del'>-	0x212f, 0x2139,</div><div class='del'>-	0x213c, 0x213f,</div><div class='del'>-	0x2145, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2183, 0x2184,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2ce4,</div><div class='del'>-	0x2ceb, 0x2cee,</div><div class='del'>-	0x2cf2, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2e2f, 0x2e2f,</div><div class='del'>-	0x3005, 0x3006,</div><div class='del'>-	0x3031, 0x3035,</div><div class='del'>-	0x303b, 0x303c,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x309d, 0x309f,</div><div class='del'>-	0x30a1, 0x30fa,</div><div class='del'>-	0x30fc, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x31a0, 0x31ba,</div><div class='del'>-	0x31f0, 0x31ff,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa4d0, 0xa4fd,</div><div class='del'>-	0xa500, 0xa60c,</div><div class='del'>-	0xa610, 0xa61f,</div><div class='del'>-	0xa62a, 0xa62b,</div><div class='del'>-	0xa640, 0xa66e,</div><div class='del'>-	0xa67f, 0xa69d,</div><div class='del'>-	0xa6a0, 0xa6e5,</div><div class='del'>-	0xa717, 0xa71f,</div><div class='del'>-	0xa722, 0xa788,</div><div class='del'>-	0xa78b, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa801,</div><div class='del'>-	0xa803, 0xa805,</div><div class='del'>-	0xa807, 0xa80a,</div><div class='del'>-	0xa80c, 0xa822,</div><div class='del'>-	0xa840, 0xa873,</div><div class='del'>-	0xa882, 0xa8b3,</div><div class='del'>-	0xa8f2, 0xa8f7,</div><div class='del'>-	0xa8fb, 0xa8fb,</div><div class='del'>-	0xa8fd, 0xa8fe,</div><div class='del'>-	0xa90a, 0xa925,</div><div class='del'>-	0xa930, 0xa946,</div><div class='del'>-	0xa960, 0xa97c,</div><div class='del'>-	0xa984, 0xa9b2,</div><div class='del'>-	0xa9cf, 0xa9cf,</div><div class='del'>-	0xa9e0, 0xa9e4,</div><div class='del'>-	0xa9e6, 0xa9ef,</div><div class='del'>-	0xa9fa, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa28,</div><div class='del'>-	0xaa40, 0xaa42,</div><div class='del'>-	0xaa44, 0xaa4b,</div><div class='del'>-	0xaa60, 0xaa76,</div><div class='del'>-	0xaa7a, 0xaa7a,</div><div class='del'>-	0xaa7e, 0xaaaf,</div><div class='del'>-	0xaab1, 0xaab1,</div><div class='del'>-	0xaab5, 0xaab6,</div><div class='del'>-	0xaab9, 0xaabd,</div><div class='del'>-	0xaac0, 0xaac0,</div><div class='del'>-	0xaac2, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadd,</div><div class='del'>-	0xaae0, 0xaaea,</div><div class='del'>-	0xaaf2, 0xaaf4,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab5c, 0xab65,</div><div class='del'>-	0xab70, 0xabe2,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb1d,</div><div class='del'>-	0xfb1f, 0xfb28,</div><div class='del'>-	0xfb2a, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3d,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfb,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0xff66, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031f,</div><div class='del'>-	0x1032d, 0x10340,</div><div class='del'>-	0x10342, 0x10349,</div><div class='del'>-	0x10350, 0x10375,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x103a0, 0x103c3,</div><div class='del'>-	0x103c8, 0x103cf,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10860, 0x10876,</div><div class='del'>-	0x10880, 0x1089e,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x10900, 0x10915,</div><div class='del'>-	0x10920, 0x10939,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a00,</div><div class='del'>-	0x10a10, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a60, 0x10a7c,</div><div class='del'>-	0x10a80, 0x10a9c,</div><div class='del'>-	0x10ac0, 0x10ac7,</div><div class='del'>-	0x10ac9, 0x10ae4,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b40, 0x10b55,</div><div class='del'>-	0x10b60, 0x10b72,</div><div class='del'>-	0x10b80, 0x10b91,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10d00, 0x10d23,</div><div class='del'>-	0x10f00, 0x10f1c,</div><div class='del'>-	0x10f27, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f45,</div><div class='del'>-	0x11003, 0x11037,</div><div class='del'>-	0x11083, 0x110af,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x11103, 0x11126,</div><div class='del'>-	0x11144, 0x11144,</div><div class='del'>-	0x11150, 0x11172,</div><div class='del'>-	0x11176, 0x11176,</div><div class='del'>-	0x11183, 0x111b2,</div><div class='del'>-	0x111c1, 0x111c4,</div><div class='del'>-	0x111da, 0x111da,</div><div class='del'>-	0x111dc, 0x111dc,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1122b,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a8,</div><div class='del'>-	0x112b0, 0x112de,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133d, 0x1133d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x1135d, 0x11361,</div><div class='del'>-	0x11400, 0x11434,</div><div class='del'>-	0x11447, 0x1144a,</div><div class='del'>-	0x11480, 0x114af,</div><div class='del'>-	0x114c4, 0x114c5,</div><div class='del'>-	0x114c7, 0x114c7,</div><div class='del'>-	0x11580, 0x115ae,</div><div class='del'>-	0x115d8, 0x115db,</div><div class='del'>-	0x11600, 0x1162f,</div><div class='del'>-	0x11644, 0x11644,</div><div class='del'>-	0x11680, 0x116aa,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x11800, 0x1182b,</div><div class='del'>-	0x118a0, 0x118df,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a00,</div><div class='del'>-	0x11a0b, 0x11a32,</div><div class='del'>-	0x11a3a, 0x11a3a,</div><div class='del'>-	0x11a50, 0x11a50,</div><div class='del'>-	0x11a5c, 0x11a83,</div><div class='del'>-	0x11a86, 0x11a89,</div><div class='del'>-	0x11a9d, 0x11a9d,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c2e,</div><div class='del'>-	0x11c40, 0x11c40,</div><div class='del'>-	0x11c72, 0x11c8f,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d30,</div><div class='del'>-	0x11d46, 0x11d46,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d89,</div><div class='del'>-	0x11d98, 0x11d98,</div><div class='del'>-	0x11ee0, 0x11ef2,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16b00, 0x16b2f,</div><div class='del'>-	0x16b40, 0x16b43,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e7f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f50,</div><div class='del'>-	0x16f93, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6fa,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d734,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d76e,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d7a8,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7cb,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e900, 0x1e943,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-}; /* CR_L */</div><div class='del'>-</div><div class='del'>-/* 'LC': General Category */</div><div class='del'>-static const OnigCodePoint CR_LC[] = {</div><div class='del'>-	130,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x01ba,</div><div class='del'>-	0x01bc, 0x01bf,</div><div class='del'>-	0x01c4, 0x0293,</div><div class='del'>-	0x0295, 0x02af,</div><div class='del'>-	0x0370, 0x0373,</div><div class='del'>-	0x0376, 0x0377,</div><div class='del'>-	0x037b, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03f5,</div><div class='del'>-	0x03f7, 0x0481,</div><div class='del'>-	0x048a, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fd, 0x10ff,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1d00, 0x1d2b,</div><div class='del'>-	0x1d6b, 0x1d77,</div><div class='del'>-	0x1d79, 0x1d9a,</div><div class='del'>-	0x1e00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fe0, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffc,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2119, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x212d,</div><div class='del'>-	0x212f, 0x2134,</div><div class='del'>-	0x2139, 0x2139,</div><div class='del'>-	0x213c, 0x213f,</div><div class='del'>-	0x2145, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2183, 0x2184,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2c7b,</div><div class='del'>-	0x2c7e, 0x2ce4,</div><div class='del'>-	0x2ceb, 0x2cee,</div><div class='del'>-	0x2cf2, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0xa640, 0xa66d,</div><div class='del'>-	0xa680, 0xa69b,</div><div class='del'>-	0xa722, 0xa76f,</div><div class='del'>-	0xa771, 0xa787,</div><div class='del'>-	0xa78b, 0xa78e,</div><div class='del'>-	0xa790, 0xa7b9,</div><div class='del'>-	0xa7fa, 0xa7fa,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab60, 0xab65,</div><div class='del'>-	0xab70, 0xabbf,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0x10400, 0x1044f,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x118a0, 0x118df,</div><div class='del'>-	0x16e40, 0x16e7f,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6fa,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d734,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d76e,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d7a8,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7cb,</div><div class='del'>-	0x1e900, 0x1e943,</div><div class='del'>-}; /* CR_LC */</div><div class='del'>-</div><div class='del'>-/* 'Ll': General Category */</div><div class='del'>-static const OnigCodePoint CR_Ll[] = {</div><div class='del'>-	638,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00df, 0x00f6,</div><div class='del'>-	0x00f8, 0x00ff,</div><div class='del'>-	0x0101, 0x0101,</div><div class='del'>-	0x0103, 0x0103,</div><div class='del'>-	0x0105, 0x0105,</div><div class='del'>-	0x0107, 0x0107,</div><div class='del'>-	0x0109, 0x0109,</div><div class='del'>-	0x010b, 0x010b,</div><div class='del'>-	0x010d, 0x010d,</div><div class='del'>-	0x010f, 0x010f,</div><div class='del'>-	0x0111, 0x0111,</div><div class='del'>-	0x0113, 0x0113,</div><div class='del'>-	0x0115, 0x0115,</div><div class='del'>-	0x0117, 0x0117,</div><div class='del'>-	0x0119, 0x0119,</div><div class='del'>-	0x011b, 0x011b,</div><div class='del'>-	0x011d, 0x011d,</div><div class='del'>-	0x011f, 0x011f,</div><div class='del'>-	0x0121, 0x0121,</div><div class='del'>-	0x0123, 0x0123,</div><div class='del'>-	0x0125, 0x0125,</div><div class='del'>-	0x0127, 0x0127,</div><div class='del'>-	0x0129, 0x0129,</div><div class='del'>-	0x012b, 0x012b,</div><div class='del'>-	0x012d, 0x012d,</div><div class='del'>-	0x012f, 0x012f,</div><div class='del'>-	0x0131, 0x0131,</div><div class='del'>-	0x0133, 0x0133,</div><div class='del'>-	0x0135, 0x0135,</div><div class='del'>-	0x0137, 0x0138,</div><div class='del'>-	0x013a, 0x013a,</div><div class='del'>-	0x013c, 0x013c,</div><div class='del'>-	0x013e, 0x013e,</div><div class='del'>-	0x0140, 0x0140,</div><div class='del'>-	0x0142, 0x0142,</div><div class='del'>-	0x0144, 0x0144,</div><div class='del'>-	0x0146, 0x0146,</div><div class='del'>-	0x0148, 0x0149,</div><div class='del'>-	0x014b, 0x014b,</div><div class='del'>-	0x014d, 0x014d,</div><div class='del'>-	0x014f, 0x014f,</div><div class='del'>-	0x0151, 0x0151,</div><div class='del'>-	0x0153, 0x0153,</div><div class='del'>-	0x0155, 0x0155,</div><div class='del'>-	0x0157, 0x0157,</div><div class='del'>-	0x0159, 0x0159,</div><div class='del'>-	0x015b, 0x015b,</div><div class='del'>-	0x015d, 0x015d,</div><div class='del'>-	0x015f, 0x015f,</div><div class='del'>-	0x0161, 0x0161,</div><div class='del'>-	0x0163, 0x0163,</div><div class='del'>-	0x0165, 0x0165,</div><div class='del'>-	0x0167, 0x0167,</div><div class='del'>-	0x0169, 0x0169,</div><div class='del'>-	0x016b, 0x016b,</div><div class='del'>-	0x016d, 0x016d,</div><div class='del'>-	0x016f, 0x016f,</div><div class='del'>-	0x0171, 0x0171,</div><div class='del'>-	0x0173, 0x0173,</div><div class='del'>-	0x0175, 0x0175,</div><div class='del'>-	0x0177, 0x0177,</div><div class='del'>-	0x017a, 0x017a,</div><div class='del'>-	0x017c, 0x017c,</div><div class='del'>-	0x017e, 0x0180,</div><div class='del'>-	0x0183, 0x0183,</div><div class='del'>-	0x0185, 0x0185,</div><div class='del'>-	0x0188, 0x0188,</div><div class='del'>-	0x018c, 0x018d,</div><div class='del'>-	0x0192, 0x0192,</div><div class='del'>-	0x0195, 0x0195,</div><div class='del'>-	0x0199, 0x019b,</div><div class='del'>-	0x019e, 0x019e,</div><div class='del'>-	0x01a1, 0x01a1,</div><div class='del'>-	0x01a3, 0x01a3,</div><div class='del'>-	0x01a5, 0x01a5,</div><div class='del'>-	0x01a8, 0x01a8,</div><div class='del'>-	0x01aa, 0x01ab,</div><div class='del'>-	0x01ad, 0x01ad,</div><div class='del'>-	0x01b0, 0x01b0,</div><div class='del'>-	0x01b4, 0x01b4,</div><div class='del'>-	0x01b6, 0x01b6,</div><div class='del'>-	0x01b9, 0x01ba,</div><div class='del'>-	0x01bd, 0x01bf,</div><div class='del'>-	0x01c6, 0x01c6,</div><div class='del'>-	0x01c9, 0x01c9,</div><div class='del'>-	0x01cc, 0x01cc,</div><div class='del'>-	0x01ce, 0x01ce,</div><div class='del'>-	0x01d0, 0x01d0,</div><div class='del'>-	0x01d2, 0x01d2,</div><div class='del'>-	0x01d4, 0x01d4,</div><div class='del'>-	0x01d6, 0x01d6,</div><div class='del'>-	0x01d8, 0x01d8,</div><div class='del'>-	0x01da, 0x01da,</div><div class='del'>-	0x01dc, 0x01dd,</div><div class='del'>-	0x01df, 0x01df,</div><div class='del'>-	0x01e1, 0x01e1,</div><div class='del'>-	0x01e3, 0x01e3,</div><div class='del'>-	0x01e5, 0x01e5,</div><div class='del'>-	0x01e7, 0x01e7,</div><div class='del'>-	0x01e9, 0x01e9,</div><div class='del'>-	0x01eb, 0x01eb,</div><div class='del'>-	0x01ed, 0x01ed,</div><div class='del'>-	0x01ef, 0x01f0,</div><div class='del'>-	0x01f3, 0x01f3,</div><div class='del'>-	0x01f5, 0x01f5,</div><div class='del'>-	0x01f9, 0x01f9,</div><div class='del'>-	0x01fb, 0x01fb,</div><div class='del'>-	0x01fd, 0x01fd,</div><div class='del'>-	0x01ff, 0x01ff,</div><div class='del'>-	0x0201, 0x0201,</div><div class='del'>-	0x0203, 0x0203,</div><div class='del'>-	0x0205, 0x0205,</div><div class='del'>-	0x0207, 0x0207,</div><div class='del'>-	0x0209, 0x0209,</div><div class='del'>-	0x020b, 0x020b,</div><div class='del'>-	0x020d, 0x020d,</div><div class='del'>-	0x020f, 0x020f,</div><div class='del'>-	0x0211, 0x0211,</div><div class='del'>-	0x0213, 0x0213,</div><div class='del'>-	0x0215, 0x0215,</div><div class='del'>-	0x0217, 0x0217,</div><div class='del'>-	0x0219, 0x0219,</div><div class='del'>-	0x021b, 0x021b,</div><div class='del'>-	0x021d, 0x021d,</div><div class='del'>-	0x021f, 0x021f,</div><div class='del'>-	0x0221, 0x0221,</div><div class='del'>-	0x0223, 0x0223,</div><div class='del'>-	0x0225, 0x0225,</div><div class='del'>-	0x0227, 0x0227,</div><div class='del'>-	0x0229, 0x0229,</div><div class='del'>-	0x022b, 0x022b,</div><div class='del'>-	0x022d, 0x022d,</div><div class='del'>-	0x022f, 0x022f,</div><div class='del'>-	0x0231, 0x0231,</div><div class='del'>-	0x0233, 0x0239,</div><div class='del'>-	0x023c, 0x023c,</div><div class='del'>-	0x023f, 0x0240,</div><div class='del'>-	0x0242, 0x0242,</div><div class='del'>-	0x0247, 0x0247,</div><div class='del'>-	0x0249, 0x0249,</div><div class='del'>-	0x024b, 0x024b,</div><div class='del'>-	0x024d, 0x024d,</div><div class='del'>-	0x024f, 0x0293,</div><div class='del'>-	0x0295, 0x02af,</div><div class='del'>-	0x0371, 0x0371,</div><div class='del'>-	0x0373, 0x0373,</div><div class='del'>-	0x0377, 0x0377,</div><div class='del'>-	0x037b, 0x037d,</div><div class='del'>-	0x0390, 0x0390,</div><div class='del'>-	0x03ac, 0x03ce,</div><div class='del'>-	0x03d0, 0x03d1,</div><div class='del'>-	0x03d5, 0x03d7,</div><div class='del'>-	0x03d9, 0x03d9,</div><div class='del'>-	0x03db, 0x03db,</div><div class='del'>-	0x03dd, 0x03dd,</div><div class='del'>-	0x03df, 0x03df,</div><div class='del'>-	0x03e1, 0x03e1,</div><div class='del'>-	0x03e3, 0x03e3,</div><div class='del'>-	0x03e5, 0x03e5,</div><div class='del'>-	0x03e7, 0x03e7,</div><div class='del'>-	0x03e9, 0x03e9,</div><div class='del'>-	0x03eb, 0x03eb,</div><div class='del'>-	0x03ed, 0x03ed,</div><div class='del'>-	0x03ef, 0x03f3,</div><div class='del'>-	0x03f5, 0x03f5,</div><div class='del'>-	0x03f8, 0x03f8,</div><div class='del'>-	0x03fb, 0x03fc,</div><div class='del'>-	0x0430, 0x045f,</div><div class='del'>-	0x0461, 0x0461,</div><div class='del'>-	0x0463, 0x0463,</div><div class='del'>-	0x0465, 0x0465,</div><div class='del'>-	0x0467, 0x0467,</div><div class='del'>-	0x0469, 0x0469,</div><div class='del'>-	0x046b, 0x046b,</div><div class='del'>-	0x046d, 0x046d,</div><div class='del'>-	0x046f, 0x046f,</div><div class='del'>-	0x0471, 0x0471,</div><div class='del'>-	0x0473, 0x0473,</div><div class='del'>-	0x0475, 0x0475,</div><div class='del'>-	0x0477, 0x0477,</div><div class='del'>-	0x0479, 0x0479,</div><div class='del'>-	0x047b, 0x047b,</div><div class='del'>-	0x047d, 0x047d,</div><div class='del'>-	0x047f, 0x047f,</div><div class='del'>-	0x0481, 0x0481,</div><div class='del'>-	0x048b, 0x048b,</div><div class='del'>-	0x048d, 0x048d,</div><div class='del'>-	0x048f, 0x048f,</div><div class='del'>-	0x0491, 0x0491,</div><div class='del'>-	0x0493, 0x0493,</div><div class='del'>-	0x0495, 0x0495,</div><div class='del'>-	0x0497, 0x0497,</div><div class='del'>-	0x0499, 0x0499,</div><div class='del'>-	0x049b, 0x049b,</div><div class='del'>-	0x049d, 0x049d,</div><div class='del'>-	0x049f, 0x049f,</div><div class='del'>-	0x04a1, 0x04a1,</div><div class='del'>-	0x04a3, 0x04a3,</div><div class='del'>-	0x04a5, 0x04a5,</div><div class='del'>-	0x04a7, 0x04a7,</div><div class='del'>-	0x04a9, 0x04a9,</div><div class='del'>-	0x04ab, 0x04ab,</div><div class='del'>-	0x04ad, 0x04ad,</div><div class='del'>-	0x04af, 0x04af,</div><div class='del'>-	0x04b1, 0x04b1,</div><div class='del'>-	0x04b3, 0x04b3,</div><div class='del'>-	0x04b5, 0x04b5,</div><div class='del'>-	0x04b7, 0x04b7,</div><div class='del'>-	0x04b9, 0x04b9,</div><div class='del'>-	0x04bb, 0x04bb,</div><div class='del'>-	0x04bd, 0x04bd,</div><div class='del'>-	0x04bf, 0x04bf,</div><div class='del'>-	0x04c2, 0x04c2,</div><div class='del'>-	0x04c4, 0x04c4,</div><div class='del'>-	0x04c6, 0x04c6,</div><div class='del'>-	0x04c8, 0x04c8,</div><div class='del'>-	0x04ca, 0x04ca,</div><div class='del'>-	0x04cc, 0x04cc,</div><div class='del'>-	0x04ce, 0x04cf,</div><div class='del'>-	0x04d1, 0x04d1,</div><div class='del'>-	0x04d3, 0x04d3,</div><div class='del'>-	0x04d5, 0x04d5,</div><div class='del'>-	0x04d7, 0x04d7,</div><div class='del'>-	0x04d9, 0x04d9,</div><div class='del'>-	0x04db, 0x04db,</div><div class='del'>-	0x04dd, 0x04dd,</div><div class='del'>-	0x04df, 0x04df,</div><div class='del'>-	0x04e1, 0x04e1,</div><div class='del'>-	0x04e3, 0x04e3,</div><div class='del'>-	0x04e5, 0x04e5,</div><div class='del'>-	0x04e7, 0x04e7,</div><div class='del'>-	0x04e9, 0x04e9,</div><div class='del'>-	0x04eb, 0x04eb,</div><div class='del'>-	0x04ed, 0x04ed,</div><div class='del'>-	0x04ef, 0x04ef,</div><div class='del'>-	0x04f1, 0x04f1,</div><div class='del'>-	0x04f3, 0x04f3,</div><div class='del'>-	0x04f5, 0x04f5,</div><div class='del'>-	0x04f7, 0x04f7,</div><div class='del'>-	0x04f9, 0x04f9,</div><div class='del'>-	0x04fb, 0x04fb,</div><div class='del'>-	0x04fd, 0x04fd,</div><div class='del'>-	0x04ff, 0x04ff,</div><div class='del'>-	0x0501, 0x0501,</div><div class='del'>-	0x0503, 0x0503,</div><div class='del'>-	0x0505, 0x0505,</div><div class='del'>-	0x0507, 0x0507,</div><div class='del'>-	0x0509, 0x0509,</div><div class='del'>-	0x050b, 0x050b,</div><div class='del'>-	0x050d, 0x050d,</div><div class='del'>-	0x050f, 0x050f,</div><div class='del'>-	0x0511, 0x0511,</div><div class='del'>-	0x0513, 0x0513,</div><div class='del'>-	0x0515, 0x0515,</div><div class='del'>-	0x0517, 0x0517,</div><div class='del'>-	0x0519, 0x0519,</div><div class='del'>-	0x051b, 0x051b,</div><div class='del'>-	0x051d, 0x051d,</div><div class='del'>-	0x051f, 0x051f,</div><div class='del'>-	0x0521, 0x0521,</div><div class='del'>-	0x0523, 0x0523,</div><div class='del'>-	0x0525, 0x0525,</div><div class='del'>-	0x0527, 0x0527,</div><div class='del'>-	0x0529, 0x0529,</div><div class='del'>-	0x052b, 0x052b,</div><div class='del'>-	0x052d, 0x052d,</div><div class='del'>-	0x052f, 0x052f,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fd, 0x10ff,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1d00, 0x1d2b,</div><div class='del'>-	0x1d6b, 0x1d77,</div><div class='del'>-	0x1d79, 0x1d9a,</div><div class='del'>-	0x1e01, 0x1e01,</div><div class='del'>-	0x1e03, 0x1e03,</div><div class='del'>-	0x1e05, 0x1e05,</div><div class='del'>-	0x1e07, 0x1e07,</div><div class='del'>-	0x1e09, 0x1e09,</div><div class='del'>-	0x1e0b, 0x1e0b,</div><div class='del'>-	0x1e0d, 0x1e0d,</div><div class='del'>-	0x1e0f, 0x1e0f,</div><div class='del'>-	0x1e11, 0x1e11,</div><div class='del'>-	0x1e13, 0x1e13,</div><div class='del'>-	0x1e15, 0x1e15,</div><div class='del'>-	0x1e17, 0x1e17,</div><div class='del'>-	0x1e19, 0x1e19,</div><div class='del'>-	0x1e1b, 0x1e1b,</div><div class='del'>-	0x1e1d, 0x1e1d,</div><div class='del'>-	0x1e1f, 0x1e1f,</div><div class='del'>-	0x1e21, 0x1e21,</div><div class='del'>-	0x1e23, 0x1e23,</div><div class='del'>-	0x1e25, 0x1e25,</div><div class='del'>-	0x1e27, 0x1e27,</div><div class='del'>-	0x1e29, 0x1e29,</div><div class='del'>-	0x1e2b, 0x1e2b,</div><div class='del'>-	0x1e2d, 0x1e2d,</div><div class='del'>-	0x1e2f, 0x1e2f,</div><div class='del'>-	0x1e31, 0x1e31,</div><div class='del'>-	0x1e33, 0x1e33,</div><div class='del'>-	0x1e35, 0x1e35,</div><div class='del'>-	0x1e37, 0x1e37,</div><div class='del'>-	0x1e39, 0x1e39,</div><div class='del'>-	0x1e3b, 0x1e3b,</div><div class='del'>-	0x1e3d, 0x1e3d,</div><div class='del'>-	0x1e3f, 0x1e3f,</div><div class='del'>-	0x1e41, 0x1e41,</div><div class='del'>-	0x1e43, 0x1e43,</div><div class='del'>-	0x1e45, 0x1e45,</div><div class='del'>-	0x1e47, 0x1e47,</div><div class='del'>-	0x1e49, 0x1e49,</div><div class='del'>-	0x1e4b, 0x1e4b,</div><div class='del'>-	0x1e4d, 0x1e4d,</div><div class='del'>-	0x1e4f, 0x1e4f,</div><div class='del'>-	0x1e51, 0x1e51,</div><div class='del'>-	0x1e53, 0x1e53,</div><div class='del'>-	0x1e55, 0x1e55,</div><div class='del'>-	0x1e57, 0x1e57,</div><div class='del'>-	0x1e59, 0x1e59,</div><div class='del'>-	0x1e5b, 0x1e5b,</div><div class='del'>-	0x1e5d, 0x1e5d,</div><div class='del'>-	0x1e5f, 0x1e5f,</div><div class='del'>-	0x1e61, 0x1e61,</div><div class='del'>-	0x1e63, 0x1e63,</div><div class='del'>-	0x1e65, 0x1e65,</div><div class='del'>-	0x1e67, 0x1e67,</div><div class='del'>-	0x1e69, 0x1e69,</div><div class='del'>-	0x1e6b, 0x1e6b,</div><div class='del'>-	0x1e6d, 0x1e6d,</div><div class='del'>-	0x1e6f, 0x1e6f,</div><div class='del'>-	0x1e71, 0x1e71,</div><div class='del'>-	0x1e73, 0x1e73,</div><div class='del'>-	0x1e75, 0x1e75,</div><div class='del'>-	0x1e77, 0x1e77,</div><div class='del'>-	0x1e79, 0x1e79,</div><div class='del'>-	0x1e7b, 0x1e7b,</div><div class='del'>-	0x1e7d, 0x1e7d,</div><div class='del'>-	0x1e7f, 0x1e7f,</div><div class='del'>-	0x1e81, 0x1e81,</div><div class='del'>-	0x1e83, 0x1e83,</div><div class='del'>-	0x1e85, 0x1e85,</div><div class='del'>-	0x1e87, 0x1e87,</div><div class='del'>-	0x1e89, 0x1e89,</div><div class='del'>-	0x1e8b, 0x1e8b,</div><div class='del'>-	0x1e8d, 0x1e8d,</div><div class='del'>-	0x1e8f, 0x1e8f,</div><div class='del'>-	0x1e91, 0x1e91,</div><div class='del'>-	0x1e93, 0x1e93,</div><div class='del'>-	0x1e95, 0x1e9d,</div><div class='del'>-	0x1e9f, 0x1e9f,</div><div class='del'>-	0x1ea1, 0x1ea1,</div><div class='del'>-	0x1ea3, 0x1ea3,</div><div class='del'>-	0x1ea5, 0x1ea5,</div><div class='del'>-	0x1ea7, 0x1ea7,</div><div class='del'>-	0x1ea9, 0x1ea9,</div><div class='del'>-	0x1eab, 0x1eab,</div><div class='del'>-	0x1ead, 0x1ead,</div><div class='del'>-	0x1eaf, 0x1eaf,</div><div class='del'>-	0x1eb1, 0x1eb1,</div><div class='del'>-	0x1eb3, 0x1eb3,</div><div class='del'>-	0x1eb5, 0x1eb5,</div><div class='del'>-	0x1eb7, 0x1eb7,</div><div class='del'>-	0x1eb9, 0x1eb9,</div><div class='del'>-	0x1ebb, 0x1ebb,</div><div class='del'>-	0x1ebd, 0x1ebd,</div><div class='del'>-	0x1ebf, 0x1ebf,</div><div class='del'>-	0x1ec1, 0x1ec1,</div><div class='del'>-	0x1ec3, 0x1ec3,</div><div class='del'>-	0x1ec5, 0x1ec5,</div><div class='del'>-	0x1ec7, 0x1ec7,</div><div class='del'>-	0x1ec9, 0x1ec9,</div><div class='del'>-	0x1ecb, 0x1ecb,</div><div class='del'>-	0x1ecd, 0x1ecd,</div><div class='del'>-	0x1ecf, 0x1ecf,</div><div class='del'>-	0x1ed1, 0x1ed1,</div><div class='del'>-	0x1ed3, 0x1ed3,</div><div class='del'>-	0x1ed5, 0x1ed5,</div><div class='del'>-	0x1ed7, 0x1ed7,</div><div class='del'>-	0x1ed9, 0x1ed9,</div><div class='del'>-	0x1edb, 0x1edb,</div><div class='del'>-	0x1edd, 0x1edd,</div><div class='del'>-	0x1edf, 0x1edf,</div><div class='del'>-	0x1ee1, 0x1ee1,</div><div class='del'>-	0x1ee3, 0x1ee3,</div><div class='del'>-	0x1ee5, 0x1ee5,</div><div class='del'>-	0x1ee7, 0x1ee7,</div><div class='del'>-	0x1ee9, 0x1ee9,</div><div class='del'>-	0x1eeb, 0x1eeb,</div><div class='del'>-	0x1eed, 0x1eed,</div><div class='del'>-	0x1eef, 0x1eef,</div><div class='del'>-	0x1ef1, 0x1ef1,</div><div class='del'>-	0x1ef3, 0x1ef3,</div><div class='del'>-	0x1ef5, 0x1ef5,</div><div class='del'>-	0x1ef7, 0x1ef7,</div><div class='del'>-	0x1ef9, 0x1ef9,</div><div class='del'>-	0x1efb, 0x1efb,</div><div class='del'>-	0x1efd, 0x1efd,</div><div class='del'>-	0x1eff, 0x1f07,</div><div class='del'>-	0x1f10, 0x1f15,</div><div class='del'>-	0x1f20, 0x1f27,</div><div class='del'>-	0x1f30, 0x1f37,</div><div class='del'>-	0x1f40, 0x1f45,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f60, 0x1f67,</div><div class='del'>-	0x1f70, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1f87,</div><div class='del'>-	0x1f90, 0x1f97,</div><div class='del'>-	0x1fa0, 0x1fa7,</div><div class='del'>-	0x1fb0, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fb7,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fc7,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fd7,</div><div class='del'>-	0x1fe0, 0x1fe7,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ff7,</div><div class='del'>-	0x210a, 0x210a,</div><div class='del'>-	0x210e, 0x210f,</div><div class='del'>-	0x2113, 0x2113,</div><div class='del'>-	0x212f, 0x212f,</div><div class='del'>-	0x2134, 0x2134,</div><div class='del'>-	0x2139, 0x2139,</div><div class='del'>-	0x213c, 0x213d,</div><div class='del'>-	0x2146, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2184, 0x2184,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c61, 0x2c61,</div><div class='del'>-	0x2c65, 0x2c66,</div><div class='del'>-	0x2c68, 0x2c68,</div><div class='del'>-	0x2c6a, 0x2c6a,</div><div class='del'>-	0x2c6c, 0x2c6c,</div><div class='del'>-	0x2c71, 0x2c71,</div><div class='del'>-	0x2c73, 0x2c74,</div><div class='del'>-	0x2c76, 0x2c7b,</div><div class='del'>-	0x2c81, 0x2c81,</div><div class='del'>-	0x2c83, 0x2c83,</div><div class='del'>-	0x2c85, 0x2c85,</div><div class='del'>-	0x2c87, 0x2c87,</div><div class='del'>-	0x2c89, 0x2c89,</div><div class='del'>-	0x2c8b, 0x2c8b,</div><div class='del'>-	0x2c8d, 0x2c8d,</div><div class='del'>-	0x2c8f, 0x2c8f,</div><div class='del'>-	0x2c91, 0x2c91,</div><div class='del'>-	0x2c93, 0x2c93,</div><div class='del'>-	0x2c95, 0x2c95,</div><div class='del'>-	0x2c97, 0x2c97,</div><div class='del'>-	0x2c99, 0x2c99,</div><div class='del'>-	0x2c9b, 0x2c9b,</div><div class='del'>-	0x2c9d, 0x2c9d,</div><div class='del'>-	0x2c9f, 0x2c9f,</div><div class='del'>-	0x2ca1, 0x2ca1,</div><div class='del'>-	0x2ca3, 0x2ca3,</div><div class='del'>-	0x2ca5, 0x2ca5,</div><div class='del'>-	0x2ca7, 0x2ca7,</div><div class='del'>-	0x2ca9, 0x2ca9,</div><div class='del'>-	0x2cab, 0x2cab,</div><div class='del'>-	0x2cad, 0x2cad,</div><div class='del'>-	0x2caf, 0x2caf,</div><div class='del'>-	0x2cb1, 0x2cb1,</div><div class='del'>-	0x2cb3, 0x2cb3,</div><div class='del'>-	0x2cb5, 0x2cb5,</div><div class='del'>-	0x2cb7, 0x2cb7,</div><div class='del'>-	0x2cb9, 0x2cb9,</div><div class='del'>-	0x2cbb, 0x2cbb,</div><div class='del'>-	0x2cbd, 0x2cbd,</div><div class='del'>-	0x2cbf, 0x2cbf,</div><div class='del'>-	0x2cc1, 0x2cc1,</div><div class='del'>-	0x2cc3, 0x2cc3,</div><div class='del'>-	0x2cc5, 0x2cc5,</div><div class='del'>-	0x2cc7, 0x2cc7,</div><div class='del'>-	0x2cc9, 0x2cc9,</div><div class='del'>-	0x2ccb, 0x2ccb,</div><div class='del'>-	0x2ccd, 0x2ccd,</div><div class='del'>-	0x2ccf, 0x2ccf,</div><div class='del'>-	0x2cd1, 0x2cd1,</div><div class='del'>-	0x2cd3, 0x2cd3,</div><div class='del'>-	0x2cd5, 0x2cd5,</div><div class='del'>-	0x2cd7, 0x2cd7,</div><div class='del'>-	0x2cd9, 0x2cd9,</div><div class='del'>-	0x2cdb, 0x2cdb,</div><div class='del'>-	0x2cdd, 0x2cdd,</div><div class='del'>-	0x2cdf, 0x2cdf,</div><div class='del'>-	0x2ce1, 0x2ce1,</div><div class='del'>-	0x2ce3, 0x2ce4,</div><div class='del'>-	0x2cec, 0x2cec,</div><div class='del'>-	0x2cee, 0x2cee,</div><div class='del'>-	0x2cf3, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0xa641, 0xa641,</div><div class='del'>-	0xa643, 0xa643,</div><div class='del'>-	0xa645, 0xa645,</div><div class='del'>-	0xa647, 0xa647,</div><div class='del'>-	0xa649, 0xa649,</div><div class='del'>-	0xa64b, 0xa64b,</div><div class='del'>-	0xa64d, 0xa64d,</div><div class='del'>-	0xa64f, 0xa64f,</div><div class='del'>-	0xa651, 0xa651,</div><div class='del'>-	0xa653, 0xa653,</div><div class='del'>-	0xa655, 0xa655,</div><div class='del'>-	0xa657, 0xa657,</div><div class='del'>-	0xa659, 0xa659,</div><div class='del'>-	0xa65b, 0xa65b,</div><div class='del'>-	0xa65d, 0xa65d,</div><div class='del'>-	0xa65f, 0xa65f,</div><div class='del'>-	0xa661, 0xa661,</div><div class='del'>-	0xa663, 0xa663,</div><div class='del'>-	0xa665, 0xa665,</div><div class='del'>-	0xa667, 0xa667,</div><div class='del'>-	0xa669, 0xa669,</div><div class='del'>-	0xa66b, 0xa66b,</div><div class='del'>-	0xa66d, 0xa66d,</div><div class='del'>-	0xa681, 0xa681,</div><div class='del'>-	0xa683, 0xa683,</div><div class='del'>-	0xa685, 0xa685,</div><div class='del'>-	0xa687, 0xa687,</div><div class='del'>-	0xa689, 0xa689,</div><div class='del'>-	0xa68b, 0xa68b,</div><div class='del'>-	0xa68d, 0xa68d,</div><div class='del'>-	0xa68f, 0xa68f,</div><div class='del'>-	0xa691, 0xa691,</div><div class='del'>-	0xa693, 0xa693,</div><div class='del'>-	0xa695, 0xa695,</div><div class='del'>-	0xa697, 0xa697,</div><div class='del'>-	0xa699, 0xa699,</div><div class='del'>-	0xa69b, 0xa69b,</div><div class='del'>-	0xa723, 0xa723,</div><div class='del'>-	0xa725, 0xa725,</div><div class='del'>-	0xa727, 0xa727,</div><div class='del'>-	0xa729, 0xa729,</div><div class='del'>-	0xa72b, 0xa72b,</div><div class='del'>-	0xa72d, 0xa72d,</div><div class='del'>-	0xa72f, 0xa731,</div><div class='del'>-	0xa733, 0xa733,</div><div class='del'>-	0xa735, 0xa735,</div><div class='del'>-	0xa737, 0xa737,</div><div class='del'>-	0xa739, 0xa739,</div><div class='del'>-	0xa73b, 0xa73b,</div><div class='del'>-	0xa73d, 0xa73d,</div><div class='del'>-	0xa73f, 0xa73f,</div><div class='del'>-	0xa741, 0xa741,</div><div class='del'>-	0xa743, 0xa743,</div><div class='del'>-	0xa745, 0xa745,</div><div class='del'>-	0xa747, 0xa747,</div><div class='del'>-	0xa749, 0xa749,</div><div class='del'>-	0xa74b, 0xa74b,</div><div class='del'>-	0xa74d, 0xa74d,</div><div class='del'>-	0xa74f, 0xa74f,</div><div class='del'>-	0xa751, 0xa751,</div><div class='del'>-	0xa753, 0xa753,</div><div class='del'>-	0xa755, 0xa755,</div><div class='del'>-	0xa757, 0xa757,</div><div class='del'>-	0xa759, 0xa759,</div><div class='del'>-	0xa75b, 0xa75b,</div><div class='del'>-	0xa75d, 0xa75d,</div><div class='del'>-	0xa75f, 0xa75f,</div><div class='del'>-	0xa761, 0xa761,</div><div class='del'>-	0xa763, 0xa763,</div><div class='del'>-	0xa765, 0xa765,</div><div class='del'>-	0xa767, 0xa767,</div><div class='del'>-	0xa769, 0xa769,</div><div class='del'>-	0xa76b, 0xa76b,</div><div class='del'>-	0xa76d, 0xa76d,</div><div class='del'>-	0xa76f, 0xa76f,</div><div class='del'>-	0xa771, 0xa778,</div><div class='del'>-	0xa77a, 0xa77a,</div><div class='del'>-	0xa77c, 0xa77c,</div><div class='del'>-	0xa77f, 0xa77f,</div><div class='del'>-	0xa781, 0xa781,</div><div class='del'>-	0xa783, 0xa783,</div><div class='del'>-	0xa785, 0xa785,</div><div class='del'>-	0xa787, 0xa787,</div><div class='del'>-	0xa78c, 0xa78c,</div><div class='del'>-	0xa78e, 0xa78e,</div><div class='del'>-	0xa791, 0xa791,</div><div class='del'>-	0xa793, 0xa795,</div><div class='del'>-	0xa797, 0xa797,</div><div class='del'>-	0xa799, 0xa799,</div><div class='del'>-	0xa79b, 0xa79b,</div><div class='del'>-	0xa79d, 0xa79d,</div><div class='del'>-	0xa79f, 0xa79f,</div><div class='del'>-	0xa7a1, 0xa7a1,</div><div class='del'>-	0xa7a3, 0xa7a3,</div><div class='del'>-	0xa7a5, 0xa7a5,</div><div class='del'>-	0xa7a7, 0xa7a7,</div><div class='del'>-	0xa7a9, 0xa7a9,</div><div class='del'>-	0xa7af, 0xa7af,</div><div class='del'>-	0xa7b5, 0xa7b5,</div><div class='del'>-	0xa7b7, 0xa7b7,</div><div class='del'>-	0xa7b9, 0xa7b9,</div><div class='del'>-	0xa7fa, 0xa7fa,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab60, 0xab65,</div><div class='del'>-	0xab70, 0xabbf,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0x10428, 0x1044f,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x118c0, 0x118df,</div><div class='del'>-	0x16e60, 0x16e7f,</div><div class='del'>-	0x1d41a, 0x1d433,</div><div class='del'>-	0x1d44e, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d467,</div><div class='del'>-	0x1d482, 0x1d49b,</div><div class='del'>-	0x1d4b6, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d4cf,</div><div class='del'>-	0x1d4ea, 0x1d503,</div><div class='del'>-	0x1d51e, 0x1d537,</div><div class='del'>-	0x1d552, 0x1d56b,</div><div class='del'>-	0x1d586, 0x1d59f,</div><div class='del'>-	0x1d5ba, 0x1d5d3,</div><div class='del'>-	0x1d5ee, 0x1d607,</div><div class='del'>-	0x1d622, 0x1d63b,</div><div class='del'>-	0x1d656, 0x1d66f,</div><div class='del'>-	0x1d68a, 0x1d6a5,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6e1,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d71b,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d755,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d78f,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7c9,</div><div class='del'>-	0x1d7cb, 0x1d7cb,</div><div class='del'>-	0x1e922, 0x1e943,</div><div class='del'>-}; /* CR_Ll */</div><div class='del'>-</div><div class='del'>-/* 'Lm': General Category */</div><div class='del'>-static const OnigCodePoint CR_Lm[] = {</div><div class='del'>-	57,</div><div class='del'>-	0x02b0, 0x02c1,</div><div class='del'>-	0x02c6, 0x02d1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x02ec, 0x02ec,</div><div class='del'>-	0x02ee, 0x02ee,</div><div class='del'>-	0x0374, 0x0374,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x0559, 0x0559,</div><div class='del'>-	0x0640, 0x0640,</div><div class='del'>-	0x06e5, 0x06e6,</div><div class='del'>-	0x07f4, 0x07f5,</div><div class='del'>-	0x07fa, 0x07fa,</div><div class='del'>-	0x081a, 0x081a,</div><div class='del'>-	0x0824, 0x0824,</div><div class='del'>-	0x0828, 0x0828,</div><div class='del'>-	0x0971, 0x0971,</div><div class='del'>-	0x0e46, 0x0e46,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x10fc, 0x10fc,</div><div class='del'>-	0x17d7, 0x17d7,</div><div class='del'>-	0x1843, 0x1843,</div><div class='del'>-	0x1aa7, 0x1aa7,</div><div class='del'>-	0x1c78, 0x1c7d,</div><div class='del'>-	0x1d2c, 0x1d6a,</div><div class='del'>-	0x1d78, 0x1d78,</div><div class='del'>-	0x1d9b, 0x1dbf,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x2c7c, 0x2c7d,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2e2f, 0x2e2f,</div><div class='del'>-	0x3005, 0x3005,</div><div class='del'>-	0x3031, 0x3035,</div><div class='del'>-	0x303b, 0x303b,</div><div class='del'>-	0x309d, 0x309e,</div><div class='del'>-	0x30fc, 0x30fe,</div><div class='del'>-	0xa015, 0xa015,</div><div class='del'>-	0xa4f8, 0xa4fd,</div><div class='del'>-	0xa60c, 0xa60c,</div><div class='del'>-	0xa67f, 0xa67f,</div><div class='del'>-	0xa69c, 0xa69d,</div><div class='del'>-	0xa717, 0xa71f,</div><div class='del'>-	0xa770, 0xa770,</div><div class='del'>-	0xa788, 0xa788,</div><div class='del'>-	0xa7f8, 0xa7f9,</div><div class='del'>-	0xa9cf, 0xa9cf,</div><div class='del'>-	0xa9e6, 0xa9e6,</div><div class='del'>-	0xaa70, 0xaa70,</div><div class='del'>-	0xaadd, 0xaadd,</div><div class='del'>-	0xaaf3, 0xaaf4,</div><div class='del'>-	0xab5c, 0xab5f,</div><div class='del'>-	0xff70, 0xff70,</div><div class='del'>-	0xff9e, 0xff9f,</div><div class='del'>-	0x16b40, 0x16b43,</div><div class='del'>-	0x16f93, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-}; /* CR_Lm */</div><div class='del'>-</div><div class='del'>-/* 'Lo': General Category */</div><div class='del'>-static const OnigCodePoint CR_Lo[] = {</div><div class='del'>-	470,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x01bb, 0x01bb,</div><div class='del'>-	0x01c0, 0x01c3,</div><div class='del'>-	0x0294, 0x0294,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f2,</div><div class='del'>-	0x0620, 0x063f,</div><div class='del'>-	0x0641, 0x064a,</div><div class='del'>-	0x066e, 0x066f,</div><div class='del'>-	0x0671, 0x06d3,</div><div class='del'>-	0x06d5, 0x06d5,</div><div class='del'>-	0x06ee, 0x06ef,</div><div class='del'>-	0x06fa, 0x06fc,</div><div class='del'>-	0x06ff, 0x06ff,</div><div class='del'>-	0x0710, 0x0710,</div><div class='del'>-	0x0712, 0x072f,</div><div class='del'>-	0x074d, 0x07a5,</div><div class='del'>-	0x07b1, 0x07b1,</div><div class='del'>-	0x07ca, 0x07ea,</div><div class='del'>-	0x0800, 0x0815,</div><div class='del'>-	0x0840, 0x0858,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x0904, 0x0939,</div><div class='del'>-	0x093d, 0x093d,</div><div class='del'>-	0x0950, 0x0950,</div><div class='del'>-	0x0958, 0x0961,</div><div class='del'>-	0x0972, 0x0980,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bd, 0x09bd,</div><div class='del'>-	0x09ce, 0x09ce,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e1,</div><div class='del'>-	0x09f0, 0x09f1,</div><div class='del'>-	0x09fc, 0x09fc,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a72, 0x0a74,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abd, 0x0abd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae1,</div><div class='del'>-	0x0af9, 0x0af9,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3d, 0x0b3d,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b71, 0x0b71,</div><div class='del'>-	0x0b83, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c3d,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c80, 0x0c80,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbd, 0x0cbd,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d3d,</div><div class='del'>-	0x0d4e, 0x0d4e,</div><div class='del'>-	0x0d54, 0x0d56,</div><div class='del'>-	0x0d5f, 0x0d61,</div><div class='del'>-	0x0d7a, 0x0d7f,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0e01, 0x0e30,</div><div class='del'>-	0x0e32, 0x0e33,</div><div class='del'>-	0x0e40, 0x0e45,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb0,</div><div class='del'>-	0x0eb2, 0x0eb3,</div><div class='del'>-	0x0ebd, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f00,</div><div class='del'>-	0x0f40, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f88, 0x0f8c,</div><div class='del'>-	0x1000, 0x102a,</div><div class='del'>-	0x103f, 0x103f,</div><div class='del'>-	0x1050, 0x1055,</div><div class='del'>-	0x105a, 0x105d,</div><div class='del'>-	0x1061, 0x1061,</div><div class='del'>-	0x1065, 0x1066,</div><div class='del'>-	0x106e, 0x1070,</div><div class='del'>-	0x1075, 0x1081,</div><div class='del'>-	0x108e, 0x108e,</div><div class='del'>-	0x1100, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x1380, 0x138f,</div><div class='del'>-	0x1401, 0x166c,</div><div class='del'>-	0x166f, 0x167f,</div><div class='del'>-	0x1681, 0x169a,</div><div class='del'>-	0x16a0, 0x16ea,</div><div class='del'>-	0x16f1, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1711,</div><div class='del'>-	0x1720, 0x1731,</div><div class='del'>-	0x1740, 0x1751,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1780, 0x17b3,</div><div class='del'>-	0x17dc, 0x17dc,</div><div class='del'>-	0x1820, 0x1842,</div><div class='del'>-	0x1844, 0x1878,</div><div class='del'>-	0x1880, 0x1884,</div><div class='del'>-	0x1887, 0x18a8,</div><div class='del'>-	0x18aa, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1950, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x1a00, 0x1a16,</div><div class='del'>-	0x1a20, 0x1a54,</div><div class='del'>-	0x1b05, 0x1b33,</div><div class='del'>-	0x1b45, 0x1b4b,</div><div class='del'>-	0x1b83, 0x1ba0,</div><div class='del'>-	0x1bae, 0x1baf,</div><div class='del'>-	0x1bba, 0x1be5,</div><div class='del'>-	0x1c00, 0x1c23,</div><div class='del'>-	0x1c4d, 0x1c4f,</div><div class='del'>-	0x1c5a, 0x1c77,</div><div class='del'>-	0x1ce9, 0x1cec,</div><div class='del'>-	0x1cee, 0x1cf1,</div><div class='del'>-	0x1cf5, 0x1cf6,</div><div class='del'>-	0x2135, 0x2138,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x3006, 0x3006,</div><div class='del'>-	0x303c, 0x303c,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x309f, 0x309f,</div><div class='del'>-	0x30a1, 0x30fa,</div><div class='del'>-	0x30ff, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x31a0, 0x31ba,</div><div class='del'>-	0x31f0, 0x31ff,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xa000, 0xa014,</div><div class='del'>-	0xa016, 0xa48c,</div><div class='del'>-	0xa4d0, 0xa4f7,</div><div class='del'>-	0xa500, 0xa60b,</div><div class='del'>-	0xa610, 0xa61f,</div><div class='del'>-	0xa62a, 0xa62b,</div><div class='del'>-	0xa66e, 0xa66e,</div><div class='del'>-	0xa6a0, 0xa6e5,</div><div class='del'>-	0xa78f, 0xa78f,</div><div class='del'>-	0xa7f7, 0xa7f7,</div><div class='del'>-	0xa7fb, 0xa801,</div><div class='del'>-	0xa803, 0xa805,</div><div class='del'>-	0xa807, 0xa80a,</div><div class='del'>-	0xa80c, 0xa822,</div><div class='del'>-	0xa840, 0xa873,</div><div class='del'>-	0xa882, 0xa8b3,</div><div class='del'>-	0xa8f2, 0xa8f7,</div><div class='del'>-	0xa8fb, 0xa8fb,</div><div class='del'>-	0xa8fd, 0xa8fe,</div><div class='del'>-	0xa90a, 0xa925,</div><div class='del'>-	0xa930, 0xa946,</div><div class='del'>-	0xa960, 0xa97c,</div><div class='del'>-	0xa984, 0xa9b2,</div><div class='del'>-	0xa9e0, 0xa9e4,</div><div class='del'>-	0xa9e7, 0xa9ef,</div><div class='del'>-	0xa9fa, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa28,</div><div class='del'>-	0xaa40, 0xaa42,</div><div class='del'>-	0xaa44, 0xaa4b,</div><div class='del'>-	0xaa60, 0xaa6f,</div><div class='del'>-	0xaa71, 0xaa76,</div><div class='del'>-	0xaa7a, 0xaa7a,</div><div class='del'>-	0xaa7e, 0xaaaf,</div><div class='del'>-	0xaab1, 0xaab1,</div><div class='del'>-	0xaab5, 0xaab6,</div><div class='del'>-	0xaab9, 0xaabd,</div><div class='del'>-	0xaac0, 0xaac0,</div><div class='del'>-	0xaac2, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadc,</div><div class='del'>-	0xaae0, 0xaaea,</div><div class='del'>-	0xaaf2, 0xaaf2,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xabc0, 0xabe2,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb1d, 0xfb1d,</div><div class='del'>-	0xfb1f, 0xfb28,</div><div class='del'>-	0xfb2a, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3d,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfb,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xff66, 0xff6f,</div><div class='del'>-	0xff71, 0xff9d,</div><div class='del'>-	0xffa0, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031f,</div><div class='del'>-	0x1032d, 0x10340,</div><div class='del'>-	0x10342, 0x10349,</div><div class='del'>-	0x10350, 0x10375,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x103a0, 0x103c3,</div><div class='del'>-	0x103c8, 0x103cf,</div><div class='del'>-	0x10450, 0x1049d,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10860, 0x10876,</div><div class='del'>-	0x10880, 0x1089e,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x10900, 0x10915,</div><div class='del'>-	0x10920, 0x10939,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a00,</div><div class='del'>-	0x10a10, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a60, 0x10a7c,</div><div class='del'>-	0x10a80, 0x10a9c,</div><div class='del'>-	0x10ac0, 0x10ac7,</div><div class='del'>-	0x10ac9, 0x10ae4,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b40, 0x10b55,</div><div class='del'>-	0x10b60, 0x10b72,</div><div class='del'>-	0x10b80, 0x10b91,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10d00, 0x10d23,</div><div class='del'>-	0x10f00, 0x10f1c,</div><div class='del'>-	0x10f27, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f45,</div><div class='del'>-	0x11003, 0x11037,</div><div class='del'>-	0x11083, 0x110af,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x11103, 0x11126,</div><div class='del'>-	0x11144, 0x11144,</div><div class='del'>-	0x11150, 0x11172,</div><div class='del'>-	0x11176, 0x11176,</div><div class='del'>-	0x11183, 0x111b2,</div><div class='del'>-	0x111c1, 0x111c4,</div><div class='del'>-	0x111da, 0x111da,</div><div class='del'>-	0x111dc, 0x111dc,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1122b,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a8,</div><div class='del'>-	0x112b0, 0x112de,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133d, 0x1133d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x1135d, 0x11361,</div><div class='del'>-	0x11400, 0x11434,</div><div class='del'>-	0x11447, 0x1144a,</div><div class='del'>-	0x11480, 0x114af,</div><div class='del'>-	0x114c4, 0x114c5,</div><div class='del'>-	0x114c7, 0x114c7,</div><div class='del'>-	0x11580, 0x115ae,</div><div class='del'>-	0x115d8, 0x115db,</div><div class='del'>-	0x11600, 0x1162f,</div><div class='del'>-	0x11644, 0x11644,</div><div class='del'>-	0x11680, 0x116aa,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x11800, 0x1182b,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a00,</div><div class='del'>-	0x11a0b, 0x11a32,</div><div class='del'>-	0x11a3a, 0x11a3a,</div><div class='del'>-	0x11a50, 0x11a50,</div><div class='del'>-	0x11a5c, 0x11a83,</div><div class='del'>-	0x11a86, 0x11a89,</div><div class='del'>-	0x11a9d, 0x11a9d,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c2e,</div><div class='del'>-	0x11c40, 0x11c40,</div><div class='del'>-	0x11c72, 0x11c8f,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d30,</div><div class='del'>-	0x11d46, 0x11d46,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d89,</div><div class='del'>-	0x11d98, 0x11d98,</div><div class='del'>-	0x11ee0, 0x11ef2,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16b00, 0x16b2f,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f50,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-}; /* CR_Lo */</div><div class='del'>-</div><div class='del'>-/* 'Lt': General Category */</div><div class='del'>-static const OnigCodePoint CR_Lt[] = {</div><div class='del'>-	10,</div><div class='del'>-	0x01c5, 0x01c5,</div><div class='del'>-	0x01c8, 0x01c8,</div><div class='del'>-	0x01cb, 0x01cb,</div><div class='del'>-	0x01f2, 0x01f2,</div><div class='del'>-	0x1f88, 0x1f8f,</div><div class='del'>-	0x1f98, 0x1f9f,</div><div class='del'>-	0x1fa8, 0x1faf,</div><div class='del'>-	0x1fbc, 0x1fbc,</div><div class='del'>-	0x1fcc, 0x1fcc,</div><div class='del'>-	0x1ffc, 0x1ffc,</div><div class='del'>-}; /* CR_Lt */</div><div class='del'>-</div><div class='del'>-/* 'Lu': General Category */</div><div class='del'>-static const OnigCodePoint CR_Lu[] = {</div><div class='del'>-	631,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00de,</div><div class='del'>-	0x0100, 0x0100,</div><div class='del'>-	0x0102, 0x0102,</div><div class='del'>-	0x0104, 0x0104,</div><div class='del'>-	0x0106, 0x0106,</div><div class='del'>-	0x0108, 0x0108,</div><div class='del'>-	0x010a, 0x010a,</div><div class='del'>-	0x010c, 0x010c,</div><div class='del'>-	0x010e, 0x010e,</div><div class='del'>-	0x0110, 0x0110,</div><div class='del'>-	0x0112, 0x0112,</div><div class='del'>-	0x0114, 0x0114,</div><div class='del'>-	0x0116, 0x0116,</div><div class='del'>-	0x0118, 0x0118,</div><div class='del'>-	0x011a, 0x011a,</div><div class='del'>-	0x011c, 0x011c,</div><div class='del'>-	0x011e, 0x011e,</div><div class='del'>-	0x0120, 0x0120,</div><div class='del'>-	0x0122, 0x0122,</div><div class='del'>-	0x0124, 0x0124,</div><div class='del'>-	0x0126, 0x0126,</div><div class='del'>-	0x0128, 0x0128,</div><div class='del'>-	0x012a, 0x012a,</div><div class='del'>-	0x012c, 0x012c,</div><div class='del'>-	0x012e, 0x012e,</div><div class='del'>-	0x0130, 0x0130,</div><div class='del'>-	0x0132, 0x0132,</div><div class='del'>-	0x0134, 0x0134,</div><div class='del'>-	0x0136, 0x0136,</div><div class='del'>-	0x0139, 0x0139,</div><div class='del'>-	0x013b, 0x013b,</div><div class='del'>-	0x013d, 0x013d,</div><div class='del'>-	0x013f, 0x013f,</div><div class='del'>-	0x0141, 0x0141,</div><div class='del'>-	0x0143, 0x0143,</div><div class='del'>-	0x0145, 0x0145,</div><div class='del'>-	0x0147, 0x0147,</div><div class='del'>-	0x014a, 0x014a,</div><div class='del'>-	0x014c, 0x014c,</div><div class='del'>-	0x014e, 0x014e,</div><div class='del'>-	0x0150, 0x0150,</div><div class='del'>-	0x0152, 0x0152,</div><div class='del'>-	0x0154, 0x0154,</div><div class='del'>-	0x0156, 0x0156,</div><div class='del'>-	0x0158, 0x0158,</div><div class='del'>-	0x015a, 0x015a,</div><div class='del'>-	0x015c, 0x015c,</div><div class='del'>-	0x015e, 0x015e,</div><div class='del'>-	0x0160, 0x0160,</div><div class='del'>-	0x0162, 0x0162,</div><div class='del'>-	0x0164, 0x0164,</div><div class='del'>-	0x0166, 0x0166,</div><div class='del'>-	0x0168, 0x0168,</div><div class='del'>-	0x016a, 0x016a,</div><div class='del'>-	0x016c, 0x016c,</div><div class='del'>-	0x016e, 0x016e,</div><div class='del'>-	0x0170, 0x0170,</div><div class='del'>-	0x0172, 0x0172,</div><div class='del'>-	0x0174, 0x0174,</div><div class='del'>-	0x0176, 0x0176,</div><div class='del'>-	0x0178, 0x0179,</div><div class='del'>-	0x017b, 0x017b,</div><div class='del'>-	0x017d, 0x017d,</div><div class='del'>-	0x0181, 0x0182,</div><div class='del'>-	0x0184, 0x0184,</div><div class='del'>-	0x0186, 0x0187,</div><div class='del'>-	0x0189, 0x018b,</div><div class='del'>-	0x018e, 0x0191,</div><div class='del'>-	0x0193, 0x0194,</div><div class='del'>-	0x0196, 0x0198,</div><div class='del'>-	0x019c, 0x019d,</div><div class='del'>-	0x019f, 0x01a0,</div><div class='del'>-	0x01a2, 0x01a2,</div><div class='del'>-	0x01a4, 0x01a4,</div><div class='del'>-	0x01a6, 0x01a7,</div><div class='del'>-	0x01a9, 0x01a9,</div><div class='del'>-	0x01ac, 0x01ac,</div><div class='del'>-	0x01ae, 0x01af,</div><div class='del'>-	0x01b1, 0x01b3,</div><div class='del'>-	0x01b5, 0x01b5,</div><div class='del'>-	0x01b7, 0x01b8,</div><div class='del'>-	0x01bc, 0x01bc,</div><div class='del'>-	0x01c4, 0x01c4,</div><div class='del'>-	0x01c7, 0x01c7,</div><div class='del'>-	0x01ca, 0x01ca,</div><div class='del'>-	0x01cd, 0x01cd,</div><div class='del'>-	0x01cf, 0x01cf,</div><div class='del'>-	0x01d1, 0x01d1,</div><div class='del'>-	0x01d3, 0x01d3,</div><div class='del'>-	0x01d5, 0x01d5,</div><div class='del'>-	0x01d7, 0x01d7,</div><div class='del'>-	0x01d9, 0x01d9,</div><div class='del'>-	0x01db, 0x01db,</div><div class='del'>-	0x01de, 0x01de,</div><div class='del'>-	0x01e0, 0x01e0,</div><div class='del'>-	0x01e2, 0x01e2,</div><div class='del'>-	0x01e4, 0x01e4,</div><div class='del'>-	0x01e6, 0x01e6,</div><div class='del'>-	0x01e8, 0x01e8,</div><div class='del'>-	0x01ea, 0x01ea,</div><div class='del'>-	0x01ec, 0x01ec,</div><div class='del'>-	0x01ee, 0x01ee,</div><div class='del'>-	0x01f1, 0x01f1,</div><div class='del'>-	0x01f4, 0x01f4,</div><div class='del'>-	0x01f6, 0x01f8,</div><div class='del'>-	0x01fa, 0x01fa,</div><div class='del'>-	0x01fc, 0x01fc,</div><div class='del'>-	0x01fe, 0x01fe,</div><div class='del'>-	0x0200, 0x0200,</div><div class='del'>-	0x0202, 0x0202,</div><div class='del'>-	0x0204, 0x0204,</div><div class='del'>-	0x0206, 0x0206,</div><div class='del'>-	0x0208, 0x0208,</div><div class='del'>-	0x020a, 0x020a,</div><div class='del'>-	0x020c, 0x020c,</div><div class='del'>-	0x020e, 0x020e,</div><div class='del'>-	0x0210, 0x0210,</div><div class='del'>-	0x0212, 0x0212,</div><div class='del'>-	0x0214, 0x0214,</div><div class='del'>-	0x0216, 0x0216,</div><div class='del'>-	0x0218, 0x0218,</div><div class='del'>-	0x021a, 0x021a,</div><div class='del'>-	0x021c, 0x021c,</div><div class='del'>-	0x021e, 0x021e,</div><div class='del'>-	0x0220, 0x0220,</div><div class='del'>-	0x0222, 0x0222,</div><div class='del'>-	0x0224, 0x0224,</div><div class='del'>-	0x0226, 0x0226,</div><div class='del'>-	0x0228, 0x0228,</div><div class='del'>-	0x022a, 0x022a,</div><div class='del'>-	0x022c, 0x022c,</div><div class='del'>-	0x022e, 0x022e,</div><div class='del'>-	0x0230, 0x0230,</div><div class='del'>-	0x0232, 0x0232,</div><div class='del'>-	0x023a, 0x023b,</div><div class='del'>-	0x023d, 0x023e,</div><div class='del'>-	0x0241, 0x0241,</div><div class='del'>-	0x0243, 0x0246,</div><div class='del'>-	0x0248, 0x0248,</div><div class='del'>-	0x024a, 0x024a,</div><div class='del'>-	0x024c, 0x024c,</div><div class='del'>-	0x024e, 0x024e,</div><div class='del'>-	0x0370, 0x0370,</div><div class='del'>-	0x0372, 0x0372,</div><div class='del'>-	0x0376, 0x0376,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x038f,</div><div class='del'>-	0x0391, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ab,</div><div class='del'>-	0x03cf, 0x03cf,</div><div class='del'>-	0x03d2, 0x03d4,</div><div class='del'>-	0x03d8, 0x03d8,</div><div class='del'>-	0x03da, 0x03da,</div><div class='del'>-	0x03dc, 0x03dc,</div><div class='del'>-	0x03de, 0x03de,</div><div class='del'>-	0x03e0, 0x03e0,</div><div class='del'>-	0x03e2, 0x03e2,</div><div class='del'>-	0x03e4, 0x03e4,</div><div class='del'>-	0x03e6, 0x03e6,</div><div class='del'>-	0x03e8, 0x03e8,</div><div class='del'>-	0x03ea, 0x03ea,</div><div class='del'>-	0x03ec, 0x03ec,</div><div class='del'>-	0x03ee, 0x03ee,</div><div class='del'>-	0x03f4, 0x03f4,</div><div class='del'>-	0x03f7, 0x03f7,</div><div class='del'>-	0x03f9, 0x03fa,</div><div class='del'>-	0x03fd, 0x042f,</div><div class='del'>-	0x0460, 0x0460,</div><div class='del'>-	0x0462, 0x0462,</div><div class='del'>-	0x0464, 0x0464,</div><div class='del'>-	0x0466, 0x0466,</div><div class='del'>-	0x0468, 0x0468,</div><div class='del'>-	0x046a, 0x046a,</div><div class='del'>-	0x046c, 0x046c,</div><div class='del'>-	0x046e, 0x046e,</div><div class='del'>-	0x0470, 0x0470,</div><div class='del'>-	0x0472, 0x0472,</div><div class='del'>-	0x0474, 0x0474,</div><div class='del'>-	0x0476, 0x0476,</div><div class='del'>-	0x0478, 0x0478,</div><div class='del'>-	0x047a, 0x047a,</div><div class='del'>-	0x047c, 0x047c,</div><div class='del'>-	0x047e, 0x047e,</div><div class='del'>-	0x0480, 0x0480,</div><div class='del'>-	0x048a, 0x048a,</div><div class='del'>-	0x048c, 0x048c,</div><div class='del'>-	0x048e, 0x048e,</div><div class='del'>-	0x0490, 0x0490,</div><div class='del'>-	0x0492, 0x0492,</div><div class='del'>-	0x0494, 0x0494,</div><div class='del'>-	0x0496, 0x0496,</div><div class='del'>-	0x0498, 0x0498,</div><div class='del'>-	0x049a, 0x049a,</div><div class='del'>-	0x049c, 0x049c,</div><div class='del'>-	0x049e, 0x049e,</div><div class='del'>-	0x04a0, 0x04a0,</div><div class='del'>-	0x04a2, 0x04a2,</div><div class='del'>-	0x04a4, 0x04a4,</div><div class='del'>-	0x04a6, 0x04a6,</div><div class='del'>-	0x04a8, 0x04a8,</div><div class='del'>-	0x04aa, 0x04aa,</div><div class='del'>-	0x04ac, 0x04ac,</div><div class='del'>-	0x04ae, 0x04ae,</div><div class='del'>-	0x04b0, 0x04b0,</div><div class='del'>-	0x04b2, 0x04b2,</div><div class='del'>-	0x04b4, 0x04b4,</div><div class='del'>-	0x04b6, 0x04b6,</div><div class='del'>-	0x04b8, 0x04b8,</div><div class='del'>-	0x04ba, 0x04ba,</div><div class='del'>-	0x04bc, 0x04bc,</div><div class='del'>-	0x04be, 0x04be,</div><div class='del'>-	0x04c0, 0x04c1,</div><div class='del'>-	0x04c3, 0x04c3,</div><div class='del'>-	0x04c5, 0x04c5,</div><div class='del'>-	0x04c7, 0x04c7,</div><div class='del'>-	0x04c9, 0x04c9,</div><div class='del'>-	0x04cb, 0x04cb,</div><div class='del'>-	0x04cd, 0x04cd,</div><div class='del'>-	0x04d0, 0x04d0,</div><div class='del'>-	0x04d2, 0x04d2,</div><div class='del'>-	0x04d4, 0x04d4,</div><div class='del'>-	0x04d6, 0x04d6,</div><div class='del'>-	0x04d8, 0x04d8,</div><div class='del'>-	0x04da, 0x04da,</div><div class='del'>-	0x04dc, 0x04dc,</div><div class='del'>-	0x04de, 0x04de,</div><div class='del'>-	0x04e0, 0x04e0,</div><div class='del'>-	0x04e2, 0x04e2,</div><div class='del'>-	0x04e4, 0x04e4,</div><div class='del'>-	0x04e6, 0x04e6,</div><div class='del'>-	0x04e8, 0x04e8,</div><div class='del'>-	0x04ea, 0x04ea,</div><div class='del'>-	0x04ec, 0x04ec,</div><div class='del'>-	0x04ee, 0x04ee,</div><div class='del'>-	0x04f0, 0x04f0,</div><div class='del'>-	0x04f2, 0x04f2,</div><div class='del'>-	0x04f4, 0x04f4,</div><div class='del'>-	0x04f6, 0x04f6,</div><div class='del'>-	0x04f8, 0x04f8,</div><div class='del'>-	0x04fa, 0x04fa,</div><div class='del'>-	0x04fc, 0x04fc,</div><div class='del'>-	0x04fe, 0x04fe,</div><div class='del'>-	0x0500, 0x0500,</div><div class='del'>-	0x0502, 0x0502,</div><div class='del'>-	0x0504, 0x0504,</div><div class='del'>-	0x0506, 0x0506,</div><div class='del'>-	0x0508, 0x0508,</div><div class='del'>-	0x050a, 0x050a,</div><div class='del'>-	0x050c, 0x050c,</div><div class='del'>-	0x050e, 0x050e,</div><div class='del'>-	0x0510, 0x0510,</div><div class='del'>-	0x0512, 0x0512,</div><div class='del'>-	0x0514, 0x0514,</div><div class='del'>-	0x0516, 0x0516,</div><div class='del'>-	0x0518, 0x0518,</div><div class='del'>-	0x051a, 0x051a,</div><div class='del'>-	0x051c, 0x051c,</div><div class='del'>-	0x051e, 0x051e,</div><div class='del'>-	0x0520, 0x0520,</div><div class='del'>-	0x0522, 0x0522,</div><div class='del'>-	0x0524, 0x0524,</div><div class='del'>-	0x0526, 0x0526,</div><div class='del'>-	0x0528, 0x0528,</div><div class='del'>-	0x052a, 0x052a,</div><div class='del'>-	0x052c, 0x052c,</div><div class='del'>-	0x052e, 0x052e,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1e00, 0x1e00,</div><div class='del'>-	0x1e02, 0x1e02,</div><div class='del'>-	0x1e04, 0x1e04,</div><div class='del'>-	0x1e06, 0x1e06,</div><div class='del'>-	0x1e08, 0x1e08,</div><div class='del'>-	0x1e0a, 0x1e0a,</div><div class='del'>-	0x1e0c, 0x1e0c,</div><div class='del'>-	0x1e0e, 0x1e0e,</div><div class='del'>-	0x1e10, 0x1e10,</div><div class='del'>-	0x1e12, 0x1e12,</div><div class='del'>-	0x1e14, 0x1e14,</div><div class='del'>-	0x1e16, 0x1e16,</div><div class='del'>-	0x1e18, 0x1e18,</div><div class='del'>-	0x1e1a, 0x1e1a,</div><div class='del'>-	0x1e1c, 0x1e1c,</div><div class='del'>-	0x1e1e, 0x1e1e,</div><div class='del'>-	0x1e20, 0x1e20,</div><div class='del'>-	0x1e22, 0x1e22,</div><div class='del'>-	0x1e24, 0x1e24,</div><div class='del'>-	0x1e26, 0x1e26,</div><div class='del'>-	0x1e28, 0x1e28,</div><div class='del'>-	0x1e2a, 0x1e2a,</div><div class='del'>-	0x1e2c, 0x1e2c,</div><div class='del'>-	0x1e2e, 0x1e2e,</div><div class='del'>-	0x1e30, 0x1e30,</div><div class='del'>-	0x1e32, 0x1e32,</div><div class='del'>-	0x1e34, 0x1e34,</div><div class='del'>-	0x1e36, 0x1e36,</div><div class='del'>-	0x1e38, 0x1e38,</div><div class='del'>-	0x1e3a, 0x1e3a,</div><div class='del'>-	0x1e3c, 0x1e3c,</div><div class='del'>-	0x1e3e, 0x1e3e,</div><div class='del'>-	0x1e40, 0x1e40,</div><div class='del'>-	0x1e42, 0x1e42,</div><div class='del'>-	0x1e44, 0x1e44,</div><div class='del'>-	0x1e46, 0x1e46,</div><div class='del'>-	0x1e48, 0x1e48,</div><div class='del'>-	0x1e4a, 0x1e4a,</div><div class='del'>-	0x1e4c, 0x1e4c,</div><div class='del'>-	0x1e4e, 0x1e4e,</div><div class='del'>-	0x1e50, 0x1e50,</div><div class='del'>-	0x1e52, 0x1e52,</div><div class='del'>-	0x1e54, 0x1e54,</div><div class='del'>-	0x1e56, 0x1e56,</div><div class='del'>-	0x1e58, 0x1e58,</div><div class='del'>-	0x1e5a, 0x1e5a,</div><div class='del'>-	0x1e5c, 0x1e5c,</div><div class='del'>-	0x1e5e, 0x1e5e,</div><div class='del'>-	0x1e60, 0x1e60,</div><div class='del'>-	0x1e62, 0x1e62,</div><div class='del'>-	0x1e64, 0x1e64,</div><div class='del'>-	0x1e66, 0x1e66,</div><div class='del'>-	0x1e68, 0x1e68,</div><div class='del'>-	0x1e6a, 0x1e6a,</div><div class='del'>-	0x1e6c, 0x1e6c,</div><div class='del'>-	0x1e6e, 0x1e6e,</div><div class='del'>-	0x1e70, 0x1e70,</div><div class='del'>-	0x1e72, 0x1e72,</div><div class='del'>-	0x1e74, 0x1e74,</div><div class='del'>-	0x1e76, 0x1e76,</div><div class='del'>-	0x1e78, 0x1e78,</div><div class='del'>-	0x1e7a, 0x1e7a,</div><div class='del'>-	0x1e7c, 0x1e7c,</div><div class='del'>-	0x1e7e, 0x1e7e,</div><div class='del'>-	0x1e80, 0x1e80,</div><div class='del'>-	0x1e82, 0x1e82,</div><div class='del'>-	0x1e84, 0x1e84,</div><div class='del'>-	0x1e86, 0x1e86,</div><div class='del'>-	0x1e88, 0x1e88,</div><div class='del'>-	0x1e8a, 0x1e8a,</div><div class='del'>-	0x1e8c, 0x1e8c,</div><div class='del'>-	0x1e8e, 0x1e8e,</div><div class='del'>-	0x1e90, 0x1e90,</div><div class='del'>-	0x1e92, 0x1e92,</div><div class='del'>-	0x1e94, 0x1e94,</div><div class='del'>-	0x1e9e, 0x1e9e,</div><div class='del'>-	0x1ea0, 0x1ea0,</div><div class='del'>-	0x1ea2, 0x1ea2,</div><div class='del'>-	0x1ea4, 0x1ea4,</div><div class='del'>-	0x1ea6, 0x1ea6,</div><div class='del'>-	0x1ea8, 0x1ea8,</div><div class='del'>-	0x1eaa, 0x1eaa,</div><div class='del'>-	0x1eac, 0x1eac,</div><div class='del'>-	0x1eae, 0x1eae,</div><div class='del'>-	0x1eb0, 0x1eb0,</div><div class='del'>-	0x1eb2, 0x1eb2,</div><div class='del'>-	0x1eb4, 0x1eb4,</div><div class='del'>-	0x1eb6, 0x1eb6,</div><div class='del'>-	0x1eb8, 0x1eb8,</div><div class='del'>-	0x1eba, 0x1eba,</div><div class='del'>-	0x1ebc, 0x1ebc,</div><div class='del'>-	0x1ebe, 0x1ebe,</div><div class='del'>-	0x1ec0, 0x1ec0,</div><div class='del'>-	0x1ec2, 0x1ec2,</div><div class='del'>-	0x1ec4, 0x1ec4,</div><div class='del'>-	0x1ec6, 0x1ec6,</div><div class='del'>-	0x1ec8, 0x1ec8,</div><div class='del'>-	0x1eca, 0x1eca,</div><div class='del'>-	0x1ecc, 0x1ecc,</div><div class='del'>-	0x1ece, 0x1ece,</div><div class='del'>-	0x1ed0, 0x1ed0,</div><div class='del'>-	0x1ed2, 0x1ed2,</div><div class='del'>-	0x1ed4, 0x1ed4,</div><div class='del'>-	0x1ed6, 0x1ed6,</div><div class='del'>-	0x1ed8, 0x1ed8,</div><div class='del'>-	0x1eda, 0x1eda,</div><div class='del'>-	0x1edc, 0x1edc,</div><div class='del'>-	0x1ede, 0x1ede,</div><div class='del'>-	0x1ee0, 0x1ee0,</div><div class='del'>-	0x1ee2, 0x1ee2,</div><div class='del'>-	0x1ee4, 0x1ee4,</div><div class='del'>-	0x1ee6, 0x1ee6,</div><div class='del'>-	0x1ee8, 0x1ee8,</div><div class='del'>-	0x1eea, 0x1eea,</div><div class='del'>-	0x1eec, 0x1eec,</div><div class='del'>-	0x1eee, 0x1eee,</div><div class='del'>-	0x1ef0, 0x1ef0,</div><div class='del'>-	0x1ef2, 0x1ef2,</div><div class='del'>-	0x1ef4, 0x1ef4,</div><div class='del'>-	0x1ef6, 0x1ef6,</div><div class='del'>-	0x1ef8, 0x1ef8,</div><div class='del'>-	0x1efa, 0x1efa,</div><div class='del'>-	0x1efc, 0x1efc,</div><div class='del'>-	0x1efe, 0x1efe,</div><div class='del'>-	0x1f08, 0x1f0f,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f28, 0x1f2f,</div><div class='del'>-	0x1f38, 0x1f3f,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f5f,</div><div class='del'>-	0x1f68, 0x1f6f,</div><div class='del'>-	0x1fb8, 0x1fbb,</div><div class='del'>-	0x1fc8, 0x1fcb,</div><div class='del'>-	0x1fd8, 0x1fdb,</div><div class='del'>-	0x1fe8, 0x1fec,</div><div class='del'>-	0x1ff8, 0x1ffb,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210b, 0x210d,</div><div class='del'>-	0x2110, 0x2112,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2119, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x212d,</div><div class='del'>-	0x2130, 0x2133,</div><div class='del'>-	0x213e, 0x213f,</div><div class='del'>-	0x2145, 0x2145,</div><div class='del'>-	0x2183, 0x2183,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c60, 0x2c60,</div><div class='del'>-	0x2c62, 0x2c64,</div><div class='del'>-	0x2c67, 0x2c67,</div><div class='del'>-	0x2c69, 0x2c69,</div><div class='del'>-	0x2c6b, 0x2c6b,</div><div class='del'>-	0x2c6d, 0x2c70,</div><div class='del'>-	0x2c72, 0x2c72,</div><div class='del'>-	0x2c75, 0x2c75,</div><div class='del'>-	0x2c7e, 0x2c80,</div><div class='del'>-	0x2c82, 0x2c82,</div><div class='del'>-	0x2c84, 0x2c84,</div><div class='del'>-	0x2c86, 0x2c86,</div><div class='del'>-	0x2c88, 0x2c88,</div><div class='del'>-	0x2c8a, 0x2c8a,</div><div class='del'>-	0x2c8c, 0x2c8c,</div><div class='del'>-	0x2c8e, 0x2c8e,</div><div class='del'>-	0x2c90, 0x2c90,</div><div class='del'>-	0x2c92, 0x2c92,</div><div class='del'>-	0x2c94, 0x2c94,</div><div class='del'>-	0x2c96, 0x2c96,</div><div class='del'>-	0x2c98, 0x2c98,</div><div class='del'>-	0x2c9a, 0x2c9a,</div><div class='del'>-	0x2c9c, 0x2c9c,</div><div class='del'>-	0x2c9e, 0x2c9e,</div><div class='del'>-	0x2ca0, 0x2ca0,</div><div class='del'>-	0x2ca2, 0x2ca2,</div><div class='del'>-	0x2ca4, 0x2ca4,</div><div class='del'>-	0x2ca6, 0x2ca6,</div><div class='del'>-	0x2ca8, 0x2ca8,</div><div class='del'>-	0x2caa, 0x2caa,</div><div class='del'>-	0x2cac, 0x2cac,</div><div class='del'>-	0x2cae, 0x2cae,</div><div class='del'>-	0x2cb0, 0x2cb0,</div><div class='del'>-	0x2cb2, 0x2cb2,</div><div class='del'>-	0x2cb4, 0x2cb4,</div><div class='del'>-	0x2cb6, 0x2cb6,</div><div class='del'>-	0x2cb8, 0x2cb8,</div><div class='del'>-	0x2cba, 0x2cba,</div><div class='del'>-	0x2cbc, 0x2cbc,</div><div class='del'>-	0x2cbe, 0x2cbe,</div><div class='del'>-	0x2cc0, 0x2cc0,</div><div class='del'>-	0x2cc2, 0x2cc2,</div><div class='del'>-	0x2cc4, 0x2cc4,</div><div class='del'>-	0x2cc6, 0x2cc6,</div><div class='del'>-	0x2cc8, 0x2cc8,</div><div class='del'>-	0x2cca, 0x2cca,</div><div class='del'>-	0x2ccc, 0x2ccc,</div><div class='del'>-	0x2cce, 0x2cce,</div><div class='del'>-	0x2cd0, 0x2cd0,</div><div class='del'>-	0x2cd2, 0x2cd2,</div><div class='del'>-	0x2cd4, 0x2cd4,</div><div class='del'>-	0x2cd6, 0x2cd6,</div><div class='del'>-	0x2cd8, 0x2cd8,</div><div class='del'>-	0x2cda, 0x2cda,</div><div class='del'>-	0x2cdc, 0x2cdc,</div><div class='del'>-	0x2cde, 0x2cde,</div><div class='del'>-	0x2ce0, 0x2ce0,</div><div class='del'>-	0x2ce2, 0x2ce2,</div><div class='del'>-	0x2ceb, 0x2ceb,</div><div class='del'>-	0x2ced, 0x2ced,</div><div class='del'>-	0x2cf2, 0x2cf2,</div><div class='del'>-	0xa640, 0xa640,</div><div class='del'>-	0xa642, 0xa642,</div><div class='del'>-	0xa644, 0xa644,</div><div class='del'>-	0xa646, 0xa646,</div><div class='del'>-	0xa648, 0xa648,</div><div class='del'>-	0xa64a, 0xa64a,</div><div class='del'>-	0xa64c, 0xa64c,</div><div class='del'>-	0xa64e, 0xa64e,</div><div class='del'>-	0xa650, 0xa650,</div><div class='del'>-	0xa652, 0xa652,</div><div class='del'>-	0xa654, 0xa654,</div><div class='del'>-	0xa656, 0xa656,</div><div class='del'>-	0xa658, 0xa658,</div><div class='del'>-	0xa65a, 0xa65a,</div><div class='del'>-	0xa65c, 0xa65c,</div><div class='del'>-	0xa65e, 0xa65e,</div><div class='del'>-	0xa660, 0xa660,</div><div class='del'>-	0xa662, 0xa662,</div><div class='del'>-	0xa664, 0xa664,</div><div class='del'>-	0xa666, 0xa666,</div><div class='del'>-	0xa668, 0xa668,</div><div class='del'>-	0xa66a, 0xa66a,</div><div class='del'>-	0xa66c, 0xa66c,</div><div class='del'>-	0xa680, 0xa680,</div><div class='del'>-	0xa682, 0xa682,</div><div class='del'>-	0xa684, 0xa684,</div><div class='del'>-	0xa686, 0xa686,</div><div class='del'>-	0xa688, 0xa688,</div><div class='del'>-	0xa68a, 0xa68a,</div><div class='del'>-	0xa68c, 0xa68c,</div><div class='del'>-	0xa68e, 0xa68e,</div><div class='del'>-	0xa690, 0xa690,</div><div class='del'>-	0xa692, 0xa692,</div><div class='del'>-	0xa694, 0xa694,</div><div class='del'>-	0xa696, 0xa696,</div><div class='del'>-	0xa698, 0xa698,</div><div class='del'>-	0xa69a, 0xa69a,</div><div class='del'>-	0xa722, 0xa722,</div><div class='del'>-	0xa724, 0xa724,</div><div class='del'>-	0xa726, 0xa726,</div><div class='del'>-	0xa728, 0xa728,</div><div class='del'>-	0xa72a, 0xa72a,</div><div class='del'>-	0xa72c, 0xa72c,</div><div class='del'>-	0xa72e, 0xa72e,</div><div class='del'>-	0xa732, 0xa732,</div><div class='del'>-	0xa734, 0xa734,</div><div class='del'>-	0xa736, 0xa736,</div><div class='del'>-	0xa738, 0xa738,</div><div class='del'>-	0xa73a, 0xa73a,</div><div class='del'>-	0xa73c, 0xa73c,</div><div class='del'>-	0xa73e, 0xa73e,</div><div class='del'>-	0xa740, 0xa740,</div><div class='del'>-	0xa742, 0xa742,</div><div class='del'>-	0xa744, 0xa744,</div><div class='del'>-	0xa746, 0xa746,</div><div class='del'>-	0xa748, 0xa748,</div><div class='del'>-	0xa74a, 0xa74a,</div><div class='del'>-	0xa74c, 0xa74c,</div><div class='del'>-	0xa74e, 0xa74e,</div><div class='del'>-	0xa750, 0xa750,</div><div class='del'>-	0xa752, 0xa752,</div><div class='del'>-	0xa754, 0xa754,</div><div class='del'>-	0xa756, 0xa756,</div><div class='del'>-	0xa758, 0xa758,</div><div class='del'>-	0xa75a, 0xa75a,</div><div class='del'>-	0xa75c, 0xa75c,</div><div class='del'>-	0xa75e, 0xa75e,</div><div class='del'>-	0xa760, 0xa760,</div><div class='del'>-	0xa762, 0xa762,</div><div class='del'>-	0xa764, 0xa764,</div><div class='del'>-	0xa766, 0xa766,</div><div class='del'>-	0xa768, 0xa768,</div><div class='del'>-	0xa76a, 0xa76a,</div><div class='del'>-	0xa76c, 0xa76c,</div><div class='del'>-	0xa76e, 0xa76e,</div><div class='del'>-	0xa779, 0xa779,</div><div class='del'>-	0xa77b, 0xa77b,</div><div class='del'>-	0xa77d, 0xa77e,</div><div class='del'>-	0xa780, 0xa780,</div><div class='del'>-	0xa782, 0xa782,</div><div class='del'>-	0xa784, 0xa784,</div><div class='del'>-	0xa786, 0xa786,</div><div class='del'>-	0xa78b, 0xa78b,</div><div class='del'>-	0xa78d, 0xa78d,</div><div class='del'>-	0xa790, 0xa790,</div><div class='del'>-	0xa792, 0xa792,</div><div class='del'>-	0xa796, 0xa796,</div><div class='del'>-	0xa798, 0xa798,</div><div class='del'>-	0xa79a, 0xa79a,</div><div class='del'>-	0xa79c, 0xa79c,</div><div class='del'>-	0xa79e, 0xa79e,</div><div class='del'>-	0xa7a0, 0xa7a0,</div><div class='del'>-	0xa7a2, 0xa7a2,</div><div class='del'>-	0xa7a4, 0xa7a4,</div><div class='del'>-	0xa7a6, 0xa7a6,</div><div class='del'>-	0xa7a8, 0xa7a8,</div><div class='del'>-	0xa7aa, 0xa7ae,</div><div class='del'>-	0xa7b0, 0xa7b4,</div><div class='del'>-	0xa7b6, 0xa7b6,</div><div class='del'>-	0xa7b8, 0xa7b8,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0x10400, 0x10427,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x118a0, 0x118bf,</div><div class='del'>-	0x16e40, 0x16e5f,</div><div class='del'>-	0x1d400, 0x1d419,</div><div class='del'>-	0x1d434, 0x1d44d,</div><div class='del'>-	0x1d468, 0x1d481,</div><div class='del'>-	0x1d49c, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b5,</div><div class='del'>-	0x1d4d0, 0x1d4e9,</div><div class='del'>-	0x1d504, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d538, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d56c, 0x1d585,</div><div class='del'>-	0x1d5a0, 0x1d5b9,</div><div class='del'>-	0x1d5d4, 0x1d5ed,</div><div class='del'>-	0x1d608, 0x1d621,</div><div class='del'>-	0x1d63c, 0x1d655,</div><div class='del'>-	0x1d670, 0x1d689,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6e2, 0x1d6fa,</div><div class='del'>-	0x1d71c, 0x1d734,</div><div class='del'>-	0x1d756, 0x1d76e,</div><div class='del'>-	0x1d790, 0x1d7a8,</div><div class='del'>-	0x1d7ca, 0x1d7ca,</div><div class='del'>-	0x1e900, 0x1e921,</div><div class='del'>-}; /* CR_Lu */</div><div class='del'>-</div><div class='del'>-/* 'M': Major Category */</div><div class='del'>-static const OnigCodePoint CR_M[] = {</div><div class='del'>-	275,</div><div class='del'>-	0x0300, 0x036f,</div><div class='del'>-	0x0483, 0x0489,</div><div class='del'>-	0x0591, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c5,</div><div class='del'>-	0x05c7, 0x05c7,</div><div class='del'>-	0x0610, 0x061a,</div><div class='del'>-	0x064b, 0x065f,</div><div class='del'>-	0x0670, 0x0670,</div><div class='del'>-	0x06d6, 0x06dc,</div><div class='del'>-	0x06df, 0x06e4,</div><div class='del'>-	0x06e7, 0x06e8,</div><div class='del'>-	0x06ea, 0x06ed,</div><div class='del'>-	0x0711, 0x0711,</div><div class='del'>-	0x0730, 0x074a,</div><div class='del'>-	0x07a6, 0x07b0,</div><div class='del'>-	0x07eb, 0x07f3,</div><div class='del'>-	0x07fd, 0x07fd,</div><div class='del'>-	0x0816, 0x0819,</div><div class='del'>-	0x081b, 0x0823,</div><div class='del'>-	0x0825, 0x0827,</div><div class='del'>-	0x0829, 0x082d,</div><div class='del'>-	0x0859, 0x085b,</div><div class='del'>-	0x08d3, 0x08e1,</div><div class='del'>-	0x08e3, 0x0903,</div><div class='del'>-	0x093a, 0x093c,</div><div class='del'>-	0x093e, 0x094f,</div><div class='del'>-	0x0951, 0x0957,</div><div class='del'>-	0x0962, 0x0963,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09be, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cd,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09e2, 0x09e3,</div><div class='del'>-	0x09fe, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a70, 0x0a71,</div><div class='del'>-	0x0a75, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0abc, 0x0abc,</div><div class='del'>-	0x0abe, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ae2, 0x0ae3,</div><div class='del'>-	0x0afa, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b3c, 0x0b3c,</div><div class='del'>-	0x0b3e, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b62, 0x0b63,</div><div class='del'>-	0x0b82, 0x0b82,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0c00, 0x0c04,</div><div class='del'>-	0x0c3e, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c62, 0x0c63,</div><div class='del'>-	0x0c81, 0x0c83,</div><div class='del'>-	0x0cbc, 0x0cbc,</div><div class='del'>-	0x0cbe, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0ce2, 0x0ce3,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d3b, 0x0d3c,</div><div class='del'>-	0x0d3e, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d62, 0x0d63,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df3,</div><div class='del'>-	0x0e31, 0x0e31,</div><div class='del'>-	0x0e34, 0x0e3a,</div><div class='del'>-	0x0e47, 0x0e4e,</div><div class='del'>-	0x0eb1, 0x0eb1,</div><div class='del'>-	0x0eb4, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebc,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0f18, 0x0f19,</div><div class='del'>-	0x0f35, 0x0f35,</div><div class='del'>-	0x0f37, 0x0f37,</div><div class='del'>-	0x0f39, 0x0f39,</div><div class='del'>-	0x0f3e, 0x0f3f,</div><div class='del'>-	0x0f71, 0x0f84,</div><div class='del'>-	0x0f86, 0x0f87,</div><div class='del'>-	0x0f8d, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fc6, 0x0fc6,</div><div class='del'>-	0x102b, 0x103e,</div><div class='del'>-	0x1056, 0x1059,</div><div class='del'>-	0x105e, 0x1060,</div><div class='del'>-	0x1062, 0x1064,</div><div class='del'>-	0x1067, 0x106d,</div><div class='del'>-	0x1071, 0x1074,</div><div class='del'>-	0x1082, 0x108d,</div><div class='del'>-	0x108f, 0x108f,</div><div class='del'>-	0x109a, 0x109d,</div><div class='del'>-	0x135d, 0x135f,</div><div class='del'>-	0x1712, 0x1714,</div><div class='del'>-	0x1732, 0x1734,</div><div class='del'>-	0x1752, 0x1753,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x17b4, 0x17d3,</div><div class='del'>-	0x17dd, 0x17dd,</div><div class='del'>-	0x180b, 0x180d,</div><div class='del'>-	0x1885, 0x1886,</div><div class='del'>-	0x18a9, 0x18a9,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1a17, 0x1a1b,</div><div class='del'>-	0x1a55, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a7f,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b04,</div><div class='del'>-	0x1b34, 0x1b44,</div><div class='del'>-	0x1b6b, 0x1b73,</div><div class='del'>-	0x1b80, 0x1b82,</div><div class='del'>-	0x1ba1, 0x1bad,</div><div class='del'>-	0x1be6, 0x1bf3,</div><div class='del'>-	0x1c24, 0x1c37,</div><div class='del'>-	0x1cd0, 0x1cd2,</div><div class='del'>-	0x1cd4, 0x1ce8,</div><div class='del'>-	0x1ced, 0x1ced,</div><div class='del'>-	0x1cf2, 0x1cf4,</div><div class='del'>-	0x1cf7, 0x1cf9,</div><div class='del'>-	0x1dc0, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1dff,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2cef, 0x2cf1,</div><div class='del'>-	0x2d7f, 0x2d7f,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0x302a, 0x302f,</div><div class='del'>-	0x3099, 0x309a,</div><div class='del'>-	0xa66f, 0xa672,</div><div class='del'>-	0xa674, 0xa67d,</div><div class='del'>-	0xa69e, 0xa69f,</div><div class='del'>-	0xa6f0, 0xa6f1,</div><div class='del'>-	0xa802, 0xa802,</div><div class='del'>-	0xa806, 0xa806,</div><div class='del'>-	0xa80b, 0xa80b,</div><div class='del'>-	0xa823, 0xa827,</div><div class='del'>-	0xa880, 0xa881,</div><div class='del'>-	0xa8b4, 0xa8c5,</div><div class='del'>-	0xa8e0, 0xa8f1,</div><div class='del'>-	0xa8ff, 0xa8ff,</div><div class='del'>-	0xa926, 0xa92d,</div><div class='del'>-	0xa947, 0xa953,</div><div class='del'>-	0xa980, 0xa983,</div><div class='del'>-	0xa9b3, 0xa9c0,</div><div class='del'>-	0xa9e5, 0xa9e5,</div><div class='del'>-	0xaa29, 0xaa36,</div><div class='del'>-	0xaa43, 0xaa43,</div><div class='del'>-	0xaa4c, 0xaa4d,</div><div class='del'>-	0xaa7b, 0xaa7d,</div><div class='del'>-	0xaab0, 0xaab0,</div><div class='del'>-	0xaab2, 0xaab4,</div><div class='del'>-	0xaab7, 0xaab8,</div><div class='del'>-	0xaabe, 0xaabf,</div><div class='del'>-	0xaac1, 0xaac1,</div><div class='del'>-	0xaaeb, 0xaaef,</div><div class='del'>-	0xaaf5, 0xaaf6,</div><div class='del'>-	0xabe3, 0xabea,</div><div class='del'>-	0xabec, 0xabed,</div><div class='del'>-	0xfb1e, 0xfb1e,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfe20, 0xfe2f,</div><div class='del'>-	0x101fd, 0x101fd,</div><div class='del'>-	0x102e0, 0x102e0,</div><div class='del'>-	0x10376, 0x1037a,</div><div class='del'>-	0x10a01, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a0f,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a3f,</div><div class='del'>-	0x10ae5, 0x10ae6,</div><div class='del'>-	0x10d24, 0x10d27,</div><div class='del'>-	0x10f46, 0x10f50,</div><div class='del'>-	0x11000, 0x11002,</div><div class='del'>-	0x11038, 0x11046,</div><div class='del'>-	0x1107f, 0x11082,</div><div class='del'>-	0x110b0, 0x110ba,</div><div class='del'>-	0x11100, 0x11102,</div><div class='del'>-	0x11127, 0x11134,</div><div class='del'>-	0x11145, 0x11146,</div><div class='del'>-	0x11173, 0x11173,</div><div class='del'>-	0x11180, 0x11182,</div><div class='del'>-	0x111b3, 0x111c0,</div><div class='del'>-	0x111c9, 0x111cc,</div><div class='del'>-	0x1122c, 0x11237,</div><div class='del'>-	0x1123e, 0x1123e,</div><div class='del'>-	0x112df, 0x112ea,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x1133b, 0x1133c,</div><div class='del'>-	0x1133e, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x11362, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11435, 0x11446,</div><div class='del'>-	0x1145e, 0x1145e,</div><div class='del'>-	0x114b0, 0x114c3,</div><div class='del'>-	0x115af, 0x115b5,</div><div class='del'>-	0x115b8, 0x115c0,</div><div class='del'>-	0x115dc, 0x115dd,</div><div class='del'>-	0x11630, 0x11640,</div><div class='del'>-	0x116ab, 0x116b7,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x1182c, 0x1183a,</div><div class='del'>-	0x11a01, 0x11a0a,</div><div class='del'>-	0x11a33, 0x11a39,</div><div class='del'>-	0x11a3b, 0x11a3e,</div><div class='del'>-	0x11a47, 0x11a47,</div><div class='del'>-	0x11a51, 0x11a5b,</div><div class='del'>-	0x11a8a, 0x11a99,</div><div class='del'>-	0x11c2f, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c3f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d31, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d45,</div><div class='del'>-	0x11d47, 0x11d47,</div><div class='del'>-	0x11d8a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d97,</div><div class='del'>-	0x11ef3, 0x11ef6,</div><div class='del'>-	0x16af0, 0x16af4,</div><div class='del'>-	0x16b30, 0x16b36,</div><div class='del'>-	0x16f51, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f92,</div><div class='del'>-	0x1bc9d, 0x1bc9e,</div><div class='del'>-	0x1d165, 0x1d169,</div><div class='del'>-	0x1d16d, 0x1d172,</div><div class='del'>-	0x1d17b, 0x1d182,</div><div class='del'>-	0x1d185, 0x1d18b,</div><div class='del'>-	0x1d1aa, 0x1d1ad,</div><div class='del'>-	0x1d242, 0x1d244,</div><div class='del'>-	0x1da00, 0x1da36,</div><div class='del'>-	0x1da3b, 0x1da6c,</div><div class='del'>-	0x1da75, 0x1da75,</div><div class='del'>-	0x1da84, 0x1da84,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e8d0, 0x1e8d6,</div><div class='del'>-	0x1e944, 0x1e94a,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-}; /* CR_M */</div><div class='del'>-</div><div class='del'>-/* 'Mc': General Category */</div><div class='del'>-static const OnigCodePoint CR_Mc[] = {</div><div class='del'>-	166,</div><div class='del'>-	0x0903, 0x0903,</div><div class='del'>-	0x093b, 0x093b,</div><div class='del'>-	0x093e, 0x0940,</div><div class='del'>-	0x0949, 0x094c,</div><div class='del'>-	0x094e, 0x094f,</div><div class='del'>-	0x0982, 0x0983,</div><div class='del'>-	0x09be, 0x09c0,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cc,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x0a03, 0x0a03,</div><div class='del'>-	0x0a3e, 0x0a40,</div><div class='del'>-	0x0a83, 0x0a83,</div><div class='del'>-	0x0abe, 0x0ac0,</div><div class='del'>-	0x0ac9, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acc,</div><div class='del'>-	0x0b02, 0x0b03,</div><div class='del'>-	0x0b3e, 0x0b3e,</div><div class='del'>-	0x0b40, 0x0b40,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4c,</div><div class='del'>-	0x0b57, 0x0b57,</div><div class='del'>-	0x0bbe, 0x0bbf,</div><div class='del'>-	0x0bc1, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcc,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c41, 0x0c44,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0cbe, 0x0cbe,</div><div class='del'>-	0x0cc0, 0x0cc4,</div><div class='del'>-	0x0cc7, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccb,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d3e, 0x0d40,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4c,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0dcf, 0x0dd1,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df3,</div><div class='del'>-	0x0f3e, 0x0f3f,</div><div class='del'>-	0x0f7f, 0x0f7f,</div><div class='del'>-	0x102b, 0x102c,</div><div class='del'>-	0x1031, 0x1031,</div><div class='del'>-	0x1038, 0x1038,</div><div class='del'>-	0x103b, 0x103c,</div><div class='del'>-	0x1056, 0x1057,</div><div class='del'>-	0x1062, 0x1064,</div><div class='del'>-	0x1067, 0x106d,</div><div class='del'>-	0x1083, 0x1084,</div><div class='del'>-	0x1087, 0x108c,</div><div class='del'>-	0x108f, 0x108f,</div><div class='del'>-	0x109a, 0x109c,</div><div class='del'>-	0x17b6, 0x17b6,</div><div class='del'>-	0x17be, 0x17c5,</div><div class='del'>-	0x17c7, 0x17c8,</div><div class='del'>-	0x1923, 0x1926,</div><div class='del'>-	0x1929, 0x192b,</div><div class='del'>-	0x1930, 0x1931,</div><div class='del'>-	0x1933, 0x1938,</div><div class='del'>-	0x1a19, 0x1a1a,</div><div class='del'>-	0x1a55, 0x1a55,</div><div class='del'>-	0x1a57, 0x1a57,</div><div class='del'>-	0x1a61, 0x1a61,</div><div class='del'>-	0x1a63, 0x1a64,</div><div class='del'>-	0x1a6d, 0x1a72,</div><div class='del'>-	0x1b04, 0x1b04,</div><div class='del'>-	0x1b35, 0x1b35,</div><div class='del'>-	0x1b3b, 0x1b3b,</div><div class='del'>-	0x1b3d, 0x1b41,</div><div class='del'>-	0x1b43, 0x1b44,</div><div class='del'>-	0x1b82, 0x1b82,</div><div class='del'>-	0x1ba1, 0x1ba1,</div><div class='del'>-	0x1ba6, 0x1ba7,</div><div class='del'>-	0x1baa, 0x1baa,</div><div class='del'>-	0x1be7, 0x1be7,</div><div class='del'>-	0x1bea, 0x1bec,</div><div class='del'>-	0x1bee, 0x1bee,</div><div class='del'>-	0x1bf2, 0x1bf3,</div><div class='del'>-	0x1c24, 0x1c2b,</div><div class='del'>-	0x1c34, 0x1c35,</div><div class='del'>-	0x1ce1, 0x1ce1,</div><div class='del'>-	0x1cf2, 0x1cf3,</div><div class='del'>-	0x1cf7, 0x1cf7,</div><div class='del'>-	0x302e, 0x302f,</div><div class='del'>-	0xa823, 0xa824,</div><div class='del'>-	0xa827, 0xa827,</div><div class='del'>-	0xa880, 0xa881,</div><div class='del'>-	0xa8b4, 0xa8c3,</div><div class='del'>-	0xa952, 0xa953,</div><div class='del'>-	0xa983, 0xa983,</div><div class='del'>-	0xa9b4, 0xa9b5,</div><div class='del'>-	0xa9ba, 0xa9bb,</div><div class='del'>-	0xa9bd, 0xa9c0,</div><div class='del'>-	0xaa2f, 0xaa30,</div><div class='del'>-	0xaa33, 0xaa34,</div><div class='del'>-	0xaa4d, 0xaa4d,</div><div class='del'>-	0xaa7b, 0xaa7b,</div><div class='del'>-	0xaa7d, 0xaa7d,</div><div class='del'>-	0xaaeb, 0xaaeb,</div><div class='del'>-	0xaaee, 0xaaef,</div><div class='del'>-	0xaaf5, 0xaaf5,</div><div class='del'>-	0xabe3, 0xabe4,</div><div class='del'>-	0xabe6, 0xabe7,</div><div class='del'>-	0xabe9, 0xabea,</div><div class='del'>-	0xabec, 0xabec,</div><div class='del'>-	0x11000, 0x11000,</div><div class='del'>-	0x11002, 0x11002,</div><div class='del'>-	0x11082, 0x11082,</div><div class='del'>-	0x110b0, 0x110b2,</div><div class='del'>-	0x110b7, 0x110b8,</div><div class='del'>-	0x1112c, 0x1112c,</div><div class='del'>-	0x11145, 0x11146,</div><div class='del'>-	0x11182, 0x11182,</div><div class='del'>-	0x111b3, 0x111b5,</div><div class='del'>-	0x111bf, 0x111c0,</div><div class='del'>-	0x1122c, 0x1122e,</div><div class='del'>-	0x11232, 0x11233,</div><div class='del'>-	0x11235, 0x11235,</div><div class='del'>-	0x112e0, 0x112e2,</div><div class='del'>-	0x11302, 0x11303,</div><div class='del'>-	0x1133e, 0x1133f,</div><div class='del'>-	0x11341, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x11362, 0x11363,</div><div class='del'>-	0x11435, 0x11437,</div><div class='del'>-	0x11440, 0x11441,</div><div class='del'>-	0x11445, 0x11445,</div><div class='del'>-	0x114b0, 0x114b2,</div><div class='del'>-	0x114b9, 0x114b9,</div><div class='del'>-	0x114bb, 0x114be,</div><div class='del'>-	0x114c1, 0x114c1,</div><div class='del'>-	0x115af, 0x115b1,</div><div class='del'>-	0x115b8, 0x115bb,</div><div class='del'>-	0x115be, 0x115be,</div><div class='del'>-	0x11630, 0x11632,</div><div class='del'>-	0x1163b, 0x1163c,</div><div class='del'>-	0x1163e, 0x1163e,</div><div class='del'>-	0x116ac, 0x116ac,</div><div class='del'>-	0x116ae, 0x116af,</div><div class='del'>-	0x116b6, 0x116b6,</div><div class='del'>-	0x11720, 0x11721,</div><div class='del'>-	0x11726, 0x11726,</div><div class='del'>-	0x1182c, 0x1182e,</div><div class='del'>-	0x11838, 0x11838,</div><div class='del'>-	0x11a39, 0x11a39,</div><div class='del'>-	0x11a57, 0x11a58,</div><div class='del'>-	0x11a97, 0x11a97,</div><div class='del'>-	0x11c2f, 0x11c2f,</div><div class='del'>-	0x11c3e, 0x11c3e,</div><div class='del'>-	0x11ca9, 0x11ca9,</div><div class='del'>-	0x11cb1, 0x11cb1,</div><div class='del'>-	0x11cb4, 0x11cb4,</div><div class='del'>-	0x11d8a, 0x11d8e,</div><div class='del'>-	0x11d93, 0x11d94,</div><div class='del'>-	0x11d96, 0x11d96,</div><div class='del'>-	0x11ef5, 0x11ef6,</div><div class='del'>-	0x16f51, 0x16f7e,</div><div class='del'>-	0x1d165, 0x1d166,</div><div class='del'>-	0x1d16d, 0x1d172,</div><div class='del'>-}; /* CR_Mc */</div><div class='del'>-</div><div class='del'>-/* 'Me': General Category */</div><div class='del'>-static const OnigCodePoint CR_Me[] = {</div><div class='del'>-	5,</div><div class='del'>-	0x0488, 0x0489,</div><div class='del'>-	0x1abe, 0x1abe,</div><div class='del'>-	0x20dd, 0x20e0,</div><div class='del'>-	0x20e2, 0x20e4,</div><div class='del'>-	0xa670, 0xa672,</div><div class='del'>-}; /* CR_Me */</div><div class='del'>-</div><div class='del'>-/* 'Mn': General Category */</div><div class='del'>-static const OnigCodePoint CR_Mn[] = {</div><div class='del'>-	313,</div><div class='del'>-	0x0300, 0x036f,</div><div class='del'>-	0x0483, 0x0487,</div><div class='del'>-	0x0591, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c5,</div><div class='del'>-	0x05c7, 0x05c7,</div><div class='del'>-	0x0610, 0x061a,</div><div class='del'>-	0x064b, 0x065f,</div><div class='del'>-	0x0670, 0x0670,</div><div class='del'>-	0x06d6, 0x06dc,</div><div class='del'>-	0x06df, 0x06e4,</div><div class='del'>-	0x06e7, 0x06e8,</div><div class='del'>-	0x06ea, 0x06ed,</div><div class='del'>-	0x0711, 0x0711,</div><div class='del'>-	0x0730, 0x074a,</div><div class='del'>-	0x07a6, 0x07b0,</div><div class='del'>-	0x07eb, 0x07f3,</div><div class='del'>-	0x07fd, 0x07fd,</div><div class='del'>-	0x0816, 0x0819,</div><div class='del'>-	0x081b, 0x0823,</div><div class='del'>-	0x0825, 0x0827,</div><div class='del'>-	0x0829, 0x082d,</div><div class='del'>-	0x0859, 0x085b,</div><div class='del'>-	0x08d3, 0x08e1,</div><div class='del'>-	0x08e3, 0x0902,</div><div class='del'>-	0x093a, 0x093a,</div><div class='del'>-	0x093c, 0x093c,</div><div class='del'>-	0x0941, 0x0948,</div><div class='del'>-	0x094d, 0x094d,</div><div class='del'>-	0x0951, 0x0957,</div><div class='del'>-	0x0962, 0x0963,</div><div class='del'>-	0x0981, 0x0981,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09c1, 0x09c4,</div><div class='del'>-	0x09cd, 0x09cd,</div><div class='del'>-	0x09e2, 0x09e3,</div><div class='del'>-	0x09fe, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a02,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a41, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a70, 0x0a71,</div><div class='del'>-	0x0a75, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a82,</div><div class='del'>-	0x0abc, 0x0abc,</div><div class='del'>-	0x0ac1, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac8,</div><div class='del'>-	0x0acd, 0x0acd,</div><div class='del'>-	0x0ae2, 0x0ae3,</div><div class='del'>-	0x0afa, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b01,</div><div class='del'>-	0x0b3c, 0x0b3c,</div><div class='del'>-	0x0b3f, 0x0b3f,</div><div class='del'>-	0x0b41, 0x0b44,</div><div class='del'>-	0x0b4d, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b56,</div><div class='del'>-	0x0b62, 0x0b63,</div><div class='del'>-	0x0b82, 0x0b82,</div><div class='del'>-	0x0bc0, 0x0bc0,</div><div class='del'>-	0x0bcd, 0x0bcd,</div><div class='del'>-	0x0c00, 0x0c00,</div><div class='del'>-	0x0c04, 0x0c04,</div><div class='del'>-	0x0c3e, 0x0c40,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c62, 0x0c63,</div><div class='del'>-	0x0c81, 0x0c81,</div><div class='del'>-	0x0cbc, 0x0cbc,</div><div class='del'>-	0x0cbf, 0x0cbf,</div><div class='del'>-	0x0cc6, 0x0cc6,</div><div class='del'>-	0x0ccc, 0x0ccd,</div><div class='del'>-	0x0ce2, 0x0ce3,</div><div class='del'>-	0x0d00, 0x0d01,</div><div class='del'>-	0x0d3b, 0x0d3c,</div><div class='del'>-	0x0d41, 0x0d44,</div><div class='del'>-	0x0d4d, 0x0d4d,</div><div class='del'>-	0x0d62, 0x0d63,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dd2, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0e31, 0x0e31,</div><div class='del'>-	0x0e34, 0x0e3a,</div><div class='del'>-	0x0e47, 0x0e4e,</div><div class='del'>-	0x0eb1, 0x0eb1,</div><div class='del'>-	0x0eb4, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebc,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0f18, 0x0f19,</div><div class='del'>-	0x0f35, 0x0f35,</div><div class='del'>-	0x0f37, 0x0f37,</div><div class='del'>-	0x0f39, 0x0f39,</div><div class='del'>-	0x0f71, 0x0f7e,</div><div class='del'>-	0x0f80, 0x0f84,</div><div class='del'>-	0x0f86, 0x0f87,</div><div class='del'>-	0x0f8d, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fc6, 0x0fc6,</div><div class='del'>-	0x102d, 0x1030,</div><div class='del'>-	0x1032, 0x1037,</div><div class='del'>-	0x1039, 0x103a,</div><div class='del'>-	0x103d, 0x103e,</div><div class='del'>-	0x1058, 0x1059,</div><div class='del'>-	0x105e, 0x1060,</div><div class='del'>-	0x1071, 0x1074,</div><div class='del'>-	0x1082, 0x1082,</div><div class='del'>-	0x1085, 0x1086,</div><div class='del'>-	0x108d, 0x108d,</div><div class='del'>-	0x109d, 0x109d,</div><div class='del'>-	0x135d, 0x135f,</div><div class='del'>-	0x1712, 0x1714,</div><div class='del'>-	0x1732, 0x1734,</div><div class='del'>-	0x1752, 0x1753,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x17b4, 0x17b5,</div><div class='del'>-	0x17b7, 0x17bd,</div><div class='del'>-	0x17c6, 0x17c6,</div><div class='del'>-	0x17c9, 0x17d3,</div><div class='del'>-	0x17dd, 0x17dd,</div><div class='del'>-	0x180b, 0x180d,</div><div class='del'>-	0x1885, 0x1886,</div><div class='del'>-	0x18a9, 0x18a9,</div><div class='del'>-	0x1920, 0x1922,</div><div class='del'>-	0x1927, 0x1928,</div><div class='del'>-	0x1932, 0x1932,</div><div class='del'>-	0x1939, 0x193b,</div><div class='del'>-	0x1a17, 0x1a18,</div><div class='del'>-	0x1a1b, 0x1a1b,</div><div class='del'>-	0x1a56, 0x1a56,</div><div class='del'>-	0x1a58, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a60,</div><div class='del'>-	0x1a62, 0x1a62,</div><div class='del'>-	0x1a65, 0x1a6c,</div><div class='del'>-	0x1a73, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a7f,</div><div class='del'>-	0x1ab0, 0x1abd,</div><div class='del'>-	0x1b00, 0x1b03,</div><div class='del'>-	0x1b34, 0x1b34,</div><div class='del'>-	0x1b36, 0x1b3a,</div><div class='del'>-	0x1b3c, 0x1b3c,</div><div class='del'>-	0x1b42, 0x1b42,</div><div class='del'>-	0x1b6b, 0x1b73,</div><div class='del'>-	0x1b80, 0x1b81,</div><div class='del'>-	0x1ba2, 0x1ba5,</div><div class='del'>-	0x1ba8, 0x1ba9,</div><div class='del'>-	0x1bab, 0x1bad,</div><div class='del'>-	0x1be6, 0x1be6,</div><div class='del'>-	0x1be8, 0x1be9,</div><div class='del'>-	0x1bed, 0x1bed,</div><div class='del'>-	0x1bef, 0x1bf1,</div><div class='del'>-	0x1c2c, 0x1c33,</div><div class='del'>-	0x1c36, 0x1c37,</div><div class='del'>-	0x1cd0, 0x1cd2,</div><div class='del'>-	0x1cd4, 0x1ce0,</div><div class='del'>-	0x1ce2, 0x1ce8,</div><div class='del'>-	0x1ced, 0x1ced,</div><div class='del'>-	0x1cf4, 0x1cf4,</div><div class='del'>-	0x1cf8, 0x1cf9,</div><div class='del'>-	0x1dc0, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1dff,</div><div class='del'>-	0x20d0, 0x20dc,</div><div class='del'>-	0x20e1, 0x20e1,</div><div class='del'>-	0x20e5, 0x20f0,</div><div class='del'>-	0x2cef, 0x2cf1,</div><div class='del'>-	0x2d7f, 0x2d7f,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0x302a, 0x302d,</div><div class='del'>-	0x3099, 0x309a,</div><div class='del'>-	0xa66f, 0xa66f,</div><div class='del'>-	0xa674, 0xa67d,</div><div class='del'>-	0xa69e, 0xa69f,</div><div class='del'>-	0xa6f0, 0xa6f1,</div><div class='del'>-	0xa802, 0xa802,</div><div class='del'>-	0xa806, 0xa806,</div><div class='del'>-	0xa80b, 0xa80b,</div><div class='del'>-	0xa825, 0xa826,</div><div class='del'>-	0xa8c4, 0xa8c5,</div><div class='del'>-	0xa8e0, 0xa8f1,</div><div class='del'>-	0xa8ff, 0xa8ff,</div><div class='del'>-	0xa926, 0xa92d,</div><div class='del'>-	0xa947, 0xa951,</div><div class='del'>-	0xa980, 0xa982,</div><div class='del'>-	0xa9b3, 0xa9b3,</div><div class='del'>-	0xa9b6, 0xa9b9,</div><div class='del'>-	0xa9bc, 0xa9bc,</div><div class='del'>-	0xa9e5, 0xa9e5,</div><div class='del'>-	0xaa29, 0xaa2e,</div><div class='del'>-	0xaa31, 0xaa32,</div><div class='del'>-	0xaa35, 0xaa36,</div><div class='del'>-	0xaa43, 0xaa43,</div><div class='del'>-	0xaa4c, 0xaa4c,</div><div class='del'>-	0xaa7c, 0xaa7c,</div><div class='del'>-	0xaab0, 0xaab0,</div><div class='del'>-	0xaab2, 0xaab4,</div><div class='del'>-	0xaab7, 0xaab8,</div><div class='del'>-	0xaabe, 0xaabf,</div><div class='del'>-	0xaac1, 0xaac1,</div><div class='del'>-	0xaaec, 0xaaed,</div><div class='del'>-	0xaaf6, 0xaaf6,</div><div class='del'>-	0xabe5, 0xabe5,</div><div class='del'>-	0xabe8, 0xabe8,</div><div class='del'>-	0xabed, 0xabed,</div><div class='del'>-	0xfb1e, 0xfb1e,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfe20, 0xfe2f,</div><div class='del'>-	0x101fd, 0x101fd,</div><div class='del'>-	0x102e0, 0x102e0,</div><div class='del'>-	0x10376, 0x1037a,</div><div class='del'>-	0x10a01, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a0f,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a3f,</div><div class='del'>-	0x10ae5, 0x10ae6,</div><div class='del'>-	0x10d24, 0x10d27,</div><div class='del'>-	0x10f46, 0x10f50,</div><div class='del'>-	0x11001, 0x11001,</div><div class='del'>-	0x11038, 0x11046,</div><div class='del'>-	0x1107f, 0x11081,</div><div class='del'>-	0x110b3, 0x110b6,</div><div class='del'>-	0x110b9, 0x110ba,</div><div class='del'>-	0x11100, 0x11102,</div><div class='del'>-	0x11127, 0x1112b,</div><div class='del'>-	0x1112d, 0x11134,</div><div class='del'>-	0x11173, 0x11173,</div><div class='del'>-	0x11180, 0x11181,</div><div class='del'>-	0x111b6, 0x111be,</div><div class='del'>-	0x111c9, 0x111cc,</div><div class='del'>-	0x1122f, 0x11231,</div><div class='del'>-	0x11234, 0x11234,</div><div class='del'>-	0x11236, 0x11237,</div><div class='del'>-	0x1123e, 0x1123e,</div><div class='del'>-	0x112df, 0x112df,</div><div class='del'>-	0x112e3, 0x112ea,</div><div class='del'>-	0x11300, 0x11301,</div><div class='del'>-	0x1133b, 0x1133c,</div><div class='del'>-	0x11340, 0x11340,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11438, 0x1143f,</div><div class='del'>-	0x11442, 0x11444,</div><div class='del'>-	0x11446, 0x11446,</div><div class='del'>-	0x1145e, 0x1145e,</div><div class='del'>-	0x114b3, 0x114b8,</div><div class='del'>-	0x114ba, 0x114ba,</div><div class='del'>-	0x114bf, 0x114c0,</div><div class='del'>-	0x114c2, 0x114c3,</div><div class='del'>-	0x115b2, 0x115b5,</div><div class='del'>-	0x115bc, 0x115bd,</div><div class='del'>-	0x115bf, 0x115c0,</div><div class='del'>-	0x115dc, 0x115dd,</div><div class='del'>-	0x11633, 0x1163a,</div><div class='del'>-	0x1163d, 0x1163d,</div><div class='del'>-	0x1163f, 0x11640,</div><div class='del'>-	0x116ab, 0x116ab,</div><div class='del'>-	0x116ad, 0x116ad,</div><div class='del'>-	0x116b0, 0x116b5,</div><div class='del'>-	0x116b7, 0x116b7,</div><div class='del'>-	0x1171d, 0x1171f,</div><div class='del'>-	0x11722, 0x11725,</div><div class='del'>-	0x11727, 0x1172b,</div><div class='del'>-	0x1182f, 0x11837,</div><div class='del'>-	0x11839, 0x1183a,</div><div class='del'>-	0x11a01, 0x11a0a,</div><div class='del'>-	0x11a33, 0x11a38,</div><div class='del'>-	0x11a3b, 0x11a3e,</div><div class='del'>-	0x11a47, 0x11a47,</div><div class='del'>-	0x11a51, 0x11a56,</div><div class='del'>-	0x11a59, 0x11a5b,</div><div class='del'>-	0x11a8a, 0x11a96,</div><div class='del'>-	0x11a98, 0x11a99,</div><div class='del'>-	0x11c30, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c3d,</div><div class='del'>-	0x11c3f, 0x11c3f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11caa, 0x11cb0,</div><div class='del'>-	0x11cb2, 0x11cb3,</div><div class='del'>-	0x11cb5, 0x11cb6,</div><div class='del'>-	0x11d31, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d45,</div><div class='del'>-	0x11d47, 0x11d47,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d95, 0x11d95,</div><div class='del'>-	0x11d97, 0x11d97,</div><div class='del'>-	0x11ef3, 0x11ef4,</div><div class='del'>-	0x16af0, 0x16af4,</div><div class='del'>-	0x16b30, 0x16b36,</div><div class='del'>-	0x16f8f, 0x16f92,</div><div class='del'>-	0x1bc9d, 0x1bc9e,</div><div class='del'>-	0x1d167, 0x1d169,</div><div class='del'>-	0x1d17b, 0x1d182,</div><div class='del'>-	0x1d185, 0x1d18b,</div><div class='del'>-	0x1d1aa, 0x1d1ad,</div><div class='del'>-	0x1d242, 0x1d244,</div><div class='del'>-	0x1da00, 0x1da36,</div><div class='del'>-	0x1da3b, 0x1da6c,</div><div class='del'>-	0x1da75, 0x1da75,</div><div class='del'>-	0x1da84, 0x1da84,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e8d0, 0x1e8d6,</div><div class='del'>-	0x1e944, 0x1e94a,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-}; /* CR_Mn */</div><div class='del'>-</div><div class='del'>-/* 'N': Major Category */</div><div class='del'>-static const OnigCodePoint CR_N[] = {</div><div class='del'>-	125,</div><div class='del'>-	0x0030, 0x0039,</div><div class='del'>-	0x00b2, 0x00b3,</div><div class='del'>-	0x00b9, 0x00b9,</div><div class='del'>-	0x00bc, 0x00be,</div><div class='del'>-	0x0660, 0x0669,</div><div class='del'>-	0x06f0, 0x06f9,</div><div class='del'>-	0x07c0, 0x07c9,</div><div class='del'>-	0x0966, 0x096f,</div><div class='del'>-	0x09e6, 0x09ef,</div><div class='del'>-	0x09f4, 0x09f9,</div><div class='del'>-	0x0a66, 0x0a6f,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0b66, 0x0b6f,</div><div class='del'>-	0x0b72, 0x0b77,</div><div class='del'>-	0x0be6, 0x0bf2,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c7e,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0d58, 0x0d5e,</div><div class='del'>-	0x0d66, 0x0d78,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0e50, 0x0e59,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0f20, 0x0f33,</div><div class='del'>-	0x1040, 0x1049,</div><div class='del'>-	0x1090, 0x1099,</div><div class='del'>-	0x1369, 0x137c,</div><div class='del'>-	0x16ee, 0x16f0,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1946, 0x194f,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x1a80, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1b50, 0x1b59,</div><div class='del'>-	0x1bb0, 0x1bb9,</div><div class='del'>-	0x1c40, 0x1c49,</div><div class='del'>-	0x1c50, 0x1c59,</div><div class='del'>-	0x2070, 0x2070,</div><div class='del'>-	0x2074, 0x2079,</div><div class='del'>-	0x2080, 0x2089,</div><div class='del'>-	0x2150, 0x2182,</div><div class='del'>-	0x2185, 0x2189,</div><div class='del'>-	0x2460, 0x249b,</div><div class='del'>-	0x24ea, 0x24ff,</div><div class='del'>-	0x2776, 0x2793,</div><div class='del'>-	0x2cfd, 0x2cfd,</div><div class='del'>-	0x3007, 0x3007,</div><div class='del'>-	0x3021, 0x3029,</div><div class='del'>-	0x3038, 0x303a,</div><div class='del'>-	0x3192, 0x3195,</div><div class='del'>-	0x3220, 0x3229,</div><div class='del'>-	0x3248, 0x324f,</div><div class='del'>-	0x3251, 0x325f,</div><div class='del'>-	0x3280, 0x3289,</div><div class='del'>-	0x32b1, 0x32bf,</div><div class='del'>-	0xa620, 0xa629,</div><div class='del'>-	0xa6e6, 0xa6ef,</div><div class='del'>-	0xa830, 0xa835,</div><div class='del'>-	0xa8d0, 0xa8d9,</div><div class='del'>-	0xa900, 0xa909,</div><div class='del'>-	0xa9d0, 0xa9d9,</div><div class='del'>-	0xa9f0, 0xa9f9,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xff10, 0xff19,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10140, 0x10178,</div><div class='del'>-	0x1018a, 0x1018b,</div><div class='del'>-	0x102e1, 0x102fb,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10341, 0x10341,</div><div class='del'>-	0x1034a, 0x1034a,</div><div class='del'>-	0x103d1, 0x103d5,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10858, 0x1085f,</div><div class='del'>-	0x10879, 0x1087f,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-	0x108fb, 0x108ff,</div><div class='del'>-	0x10916, 0x1091b,</div><div class='del'>-	0x109bc, 0x109bd,</div><div class='del'>-	0x109c0, 0x109cf,</div><div class='del'>-	0x109d2, 0x109ff,</div><div class='del'>-	0x10a40, 0x10a48,</div><div class='del'>-	0x10a7d, 0x10a7e,</div><div class='del'>-	0x10a9d, 0x10a9f,</div><div class='del'>-	0x10aeb, 0x10aef,</div><div class='del'>-	0x10b58, 0x10b5f,</div><div class='del'>-	0x10b78, 0x10b7f,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-	0x10cfa, 0x10cff,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x10f1d, 0x10f26,</div><div class='del'>-	0x10f51, 0x10f54,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11136, 0x1113f,</div><div class='del'>-	0x111d0, 0x111d9,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11450, 0x11459,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11730, 0x1173b,</div><div class='del'>-	0x118e0, 0x118f2,</div><div class='del'>-	0x11c50, 0x11c6c,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16e80, 0x16e96,</div><div class='del'>-	0x1d2e0, 0x1d2f3,</div><div class='del'>-	0x1d360, 0x1d378,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1e8c7, 0x1e8cf,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1ec71, 0x1ecab,</div><div class='del'>-	0x1ecad, 0x1ecaf,</div><div class='del'>-	0x1ecb1, 0x1ecb4,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-}; /* CR_N */</div><div class='del'>-</div><div class='del'>-/* 'Nd': General Category */</div><div class='del'>-#define CR_Nd CR_Digit</div><div class='del'>-</div><div class='del'>-/* 'Nl': General Category */</div><div class='del'>-static const OnigCodePoint CR_Nl[] = {</div><div class='del'>-	12,</div><div class='del'>-	0x16ee, 0x16f0,</div><div class='del'>-	0x2160, 0x2182,</div><div class='del'>-	0x2185, 0x2188,</div><div class='del'>-	0x3007, 0x3007,</div><div class='del'>-	0x3021, 0x3029,</div><div class='del'>-	0x3038, 0x303a,</div><div class='del'>-	0xa6e6, 0xa6ef,</div><div class='del'>-	0x10140, 0x10174,</div><div class='del'>-	0x10341, 0x10341,</div><div class='del'>-	0x1034a, 0x1034a,</div><div class='del'>-	0x103d1, 0x103d5,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-}; /* CR_Nl */</div><div class='del'>-</div><div class='del'>-/* 'No': General Category */</div><div class='del'>-static const OnigCodePoint CR_No[] = {</div><div class='del'>-	67,</div><div class='del'>-	0x00b2, 0x00b3,</div><div class='del'>-	0x00b9, 0x00b9,</div><div class='del'>-	0x00bc, 0x00be,</div><div class='del'>-	0x09f4, 0x09f9,</div><div class='del'>-	0x0b72, 0x0b77,</div><div class='del'>-	0x0bf0, 0x0bf2,</div><div class='del'>-	0x0c78, 0x0c7e,</div><div class='del'>-	0x0d58, 0x0d5e,</div><div class='del'>-	0x0d70, 0x0d78,</div><div class='del'>-	0x0f2a, 0x0f33,</div><div class='del'>-	0x1369, 0x137c,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x19da, 0x19da,</div><div class='del'>-	0x2070, 0x2070,</div><div class='del'>-	0x2074, 0x2079,</div><div class='del'>-	0x2080, 0x2089,</div><div class='del'>-	0x2150, 0x215f,</div><div class='del'>-	0x2189, 0x2189,</div><div class='del'>-	0x2460, 0x249b,</div><div class='del'>-	0x24ea, 0x24ff,</div><div class='del'>-	0x2776, 0x2793,</div><div class='del'>-	0x2cfd, 0x2cfd,</div><div class='del'>-	0x3192, 0x3195,</div><div class='del'>-	0x3220, 0x3229,</div><div class='del'>-	0x3248, 0x324f,</div><div class='del'>-	0x3251, 0x325f,</div><div class='del'>-	0x3280, 0x3289,</div><div class='del'>-	0x32b1, 0x32bf,</div><div class='del'>-	0xa830, 0xa835,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10175, 0x10178,</div><div class='del'>-	0x1018a, 0x1018b,</div><div class='del'>-	0x102e1, 0x102fb,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10858, 0x1085f,</div><div class='del'>-	0x10879, 0x1087f,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-	0x108fb, 0x108ff,</div><div class='del'>-	0x10916, 0x1091b,</div><div class='del'>-	0x109bc, 0x109bd,</div><div class='del'>-	0x109c0, 0x109cf,</div><div class='del'>-	0x109d2, 0x109ff,</div><div class='del'>-	0x10a40, 0x10a48,</div><div class='del'>-	0x10a7d, 0x10a7e,</div><div class='del'>-	0x10a9d, 0x10a9f,</div><div class='del'>-	0x10aeb, 0x10aef,</div><div class='del'>-	0x10b58, 0x10b5f,</div><div class='del'>-	0x10b78, 0x10b7f,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-	0x10cfa, 0x10cff,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x10f1d, 0x10f26,</div><div class='del'>-	0x10f51, 0x10f54,</div><div class='del'>-	0x11052, 0x11065,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-	0x1173a, 0x1173b,</div><div class='del'>-	0x118ea, 0x118f2,</div><div class='del'>-	0x11c5a, 0x11c6c,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16e80, 0x16e96,</div><div class='del'>-	0x1d2e0, 0x1d2f3,</div><div class='del'>-	0x1d360, 0x1d378,</div><div class='del'>-	0x1e8c7, 0x1e8cf,</div><div class='del'>-	0x1ec71, 0x1ecab,</div><div class='del'>-	0x1ecad, 0x1ecaf,</div><div class='del'>-	0x1ecb1, 0x1ecb4,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-}; /* CR_No */</div><div class='del'>-</div><div class='del'>-/* 'P': Major Category */</div><div class='del'>-#define CR_P CR_Punct</div><div class='del'>-</div><div class='del'>-/* 'Pc': General Category */</div><div class='del'>-static const OnigCodePoint CR_Pc[] = {</div><div class='del'>-	6,</div><div class='del'>-	0x005f, 0x005f,</div><div class='del'>-	0x203f, 0x2040,</div><div class='del'>-	0x2054, 0x2054,</div><div class='del'>-	0xfe33, 0xfe34,</div><div class='del'>-	0xfe4d, 0xfe4f,</div><div class='del'>-	0xff3f, 0xff3f,</div><div class='del'>-}; /* CR_Pc */</div><div class='del'>-</div><div class='del'>-/* 'Pd': General Category */</div><div class='del'>-static const OnigCodePoint CR_Pd[] = {</div><div class='del'>-	17,</div><div class='del'>-	0x002d, 0x002d,</div><div class='del'>-	0x058a, 0x058a,</div><div class='del'>-	0x05be, 0x05be,</div><div class='del'>-	0x1400, 0x1400,</div><div class='del'>-	0x1806, 0x1806,</div><div class='del'>-	0x2010, 0x2015,</div><div class='del'>-	0x2e17, 0x2e17,</div><div class='del'>-	0x2e1a, 0x2e1a,</div><div class='del'>-	0x2e3a, 0x2e3b,</div><div class='del'>-	0x2e40, 0x2e40,</div><div class='del'>-	0x301c, 0x301c,</div><div class='del'>-	0x3030, 0x3030,</div><div class='del'>-	0x30a0, 0x30a0,</div><div class='del'>-	0xfe31, 0xfe32,</div><div class='del'>-	0xfe58, 0xfe58,</div><div class='del'>-	0xfe63, 0xfe63,</div><div class='del'>-	0xff0d, 0xff0d,</div><div class='del'>-}; /* CR_Pd */</div><div class='del'>-</div><div class='del'>-/* 'Pe': General Category */</div><div class='del'>-static const OnigCodePoint CR_Pe[] = {</div><div class='del'>-	72,</div><div class='del'>-	0x0029, 0x0029,</div><div class='del'>-	0x005d, 0x005d,</div><div class='del'>-	0x007d, 0x007d,</div><div class='del'>-	0x0f3b, 0x0f3b,</div><div class='del'>-	0x0f3d, 0x0f3d,</div><div class='del'>-	0x169c, 0x169c,</div><div class='del'>-	0x2046, 0x2046,</div><div class='del'>-	0x207e, 0x207e,</div><div class='del'>-	0x208e, 0x208e,</div><div class='del'>-	0x2309, 0x2309,</div><div class='del'>-	0x230b, 0x230b,</div><div class='del'>-	0x232a, 0x232a,</div><div class='del'>-	0x2769, 0x2769,</div><div class='del'>-	0x276b, 0x276b,</div><div class='del'>-	0x276d, 0x276d,</div><div class='del'>-	0x276f, 0x276f,</div><div class='del'>-	0x2771, 0x2771,</div><div class='del'>-	0x2773, 0x2773,</div><div class='del'>-	0x2775, 0x2775,</div><div class='del'>-	0x27c6, 0x27c6,</div><div class='del'>-	0x27e7, 0x27e7,</div><div class='del'>-	0x27e9, 0x27e9,</div><div class='del'>-	0x27eb, 0x27eb,</div><div class='del'>-	0x27ed, 0x27ed,</div><div class='del'>-	0x27ef, 0x27ef,</div><div class='del'>-	0x2984, 0x2984,</div><div class='del'>-	0x2986, 0x2986,</div><div class='del'>-	0x2988, 0x2988,</div><div class='del'>-	0x298a, 0x298a,</div><div class='del'>-	0x298c, 0x298c,</div><div class='del'>-	0x298e, 0x298e,</div><div class='del'>-	0x2990, 0x2990,</div><div class='del'>-	0x2992, 0x2992,</div><div class='del'>-	0x2994, 0x2994,</div><div class='del'>-	0x2996, 0x2996,</div><div class='del'>-	0x2998, 0x2998,</div><div class='del'>-	0x29d9, 0x29d9,</div><div class='del'>-	0x29db, 0x29db,</div><div class='del'>-	0x29fd, 0x29fd,</div><div class='del'>-	0x2e23, 0x2e23,</div><div class='del'>-	0x2e25, 0x2e25,</div><div class='del'>-	0x2e27, 0x2e27,</div><div class='del'>-	0x2e29, 0x2e29,</div><div class='del'>-	0x3009, 0x3009,</div><div class='del'>-	0x300b, 0x300b,</div><div class='del'>-	0x300d, 0x300d,</div><div class='del'>-	0x300f, 0x300f,</div><div class='del'>-	0x3011, 0x3011,</div><div class='del'>-	0x3015, 0x3015,</div><div class='del'>-	0x3017, 0x3017,</div><div class='del'>-	0x3019, 0x3019,</div><div class='del'>-	0x301b, 0x301b,</div><div class='del'>-	0x301e, 0x301f,</div><div class='del'>-	0xfd3e, 0xfd3e,</div><div class='del'>-	0xfe18, 0xfe18,</div><div class='del'>-	0xfe36, 0xfe36,</div><div class='del'>-	0xfe38, 0xfe38,</div><div class='del'>-	0xfe3a, 0xfe3a,</div><div class='del'>-	0xfe3c, 0xfe3c,</div><div class='del'>-	0xfe3e, 0xfe3e,</div><div class='del'>-	0xfe40, 0xfe40,</div><div class='del'>-	0xfe42, 0xfe42,</div><div class='del'>-	0xfe44, 0xfe44,</div><div class='del'>-	0xfe48, 0xfe48,</div><div class='del'>-	0xfe5a, 0xfe5a,</div><div class='del'>-	0xfe5c, 0xfe5c,</div><div class='del'>-	0xfe5e, 0xfe5e,</div><div class='del'>-	0xff09, 0xff09,</div><div class='del'>-	0xff3d, 0xff3d,</div><div class='del'>-	0xff5d, 0xff5d,</div><div class='del'>-	0xff60, 0xff60,</div><div class='del'>-	0xff63, 0xff63,</div><div class='del'>-}; /* CR_Pe */</div><div class='del'>-</div><div class='del'>-/* 'Pf': General Category */</div><div class='del'>-static const OnigCodePoint CR_Pf[] = {</div><div class='del'>-	10,</div><div class='del'>-	0x00bb, 0x00bb,</div><div class='del'>-	0x2019, 0x2019,</div><div class='del'>-	0x201d, 0x201d,</div><div class='del'>-	0x203a, 0x203a,</div><div class='del'>-	0x2e03, 0x2e03,</div><div class='del'>-	0x2e05, 0x2e05,</div><div class='del'>-	0x2e0a, 0x2e0a,</div><div class='del'>-	0x2e0d, 0x2e0d,</div><div class='del'>-	0x2e1d, 0x2e1d,</div><div class='del'>-	0x2e21, 0x2e21,</div><div class='del'>-}; /* CR_Pf */</div><div class='del'>-</div><div class='del'>-/* 'Pi': General Category */</div><div class='del'>-static const OnigCodePoint CR_Pi[] = {</div><div class='del'>-	11,</div><div class='del'>-	0x00ab, 0x00ab,</div><div class='del'>-	0x2018, 0x2018,</div><div class='del'>-	0x201b, 0x201c,</div><div class='del'>-	0x201f, 0x201f,</div><div class='del'>-	0x2039, 0x2039,</div><div class='del'>-	0x2e02, 0x2e02,</div><div class='del'>-	0x2e04, 0x2e04,</div><div class='del'>-	0x2e09, 0x2e09,</div><div class='del'>-	0x2e0c, 0x2e0c,</div><div class='del'>-	0x2e1c, 0x2e1c,</div><div class='del'>-	0x2e20, 0x2e20,</div><div class='del'>-}; /* CR_Pi */</div><div class='del'>-</div><div class='del'>-/* 'Po': General Category */</div><div class='del'>-static const OnigCodePoint CR_Po[] = {</div><div class='del'>-	175,</div><div class='del'>-	0x0021, 0x0023,</div><div class='del'>-	0x0025, 0x0027,</div><div class='del'>-	0x002a, 0x002a,</div><div class='del'>-	0x002c, 0x002c,</div><div class='del'>-	0x002e, 0x002f,</div><div class='del'>-	0x003a, 0x003b,</div><div class='del'>-	0x003f, 0x0040,</div><div class='del'>-	0x005c, 0x005c,</div><div class='del'>-	0x00a1, 0x00a1,</div><div class='del'>-	0x00a7, 0x00a7,</div><div class='del'>-	0x00b6, 0x00b7,</div><div class='del'>-	0x00bf, 0x00bf,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0387, 0x0387,</div><div class='del'>-	0x055a, 0x055f,</div><div class='del'>-	0x0589, 0x0589,</div><div class='del'>-	0x05c0, 0x05c0,</div><div class='del'>-	0x05c3, 0x05c3,</div><div class='del'>-	0x05c6, 0x05c6,</div><div class='del'>-	0x05f3, 0x05f4,</div><div class='del'>-	0x0609, 0x060a,</div><div class='del'>-	0x060c, 0x060d,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061e, 0x061f,</div><div class='del'>-	0x066a, 0x066d,</div><div class='del'>-	0x06d4, 0x06d4,</div><div class='del'>-	0x0700, 0x070d,</div><div class='del'>-	0x07f7, 0x07f9,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x0964, 0x0965,</div><div class='del'>-	0x0970, 0x0970,</div><div class='del'>-	0x09fd, 0x09fd,</div><div class='del'>-	0x0a76, 0x0a76,</div><div class='del'>-	0x0af0, 0x0af0,</div><div class='del'>-	0x0c84, 0x0c84,</div><div class='del'>-	0x0df4, 0x0df4,</div><div class='del'>-	0x0e4f, 0x0e4f,</div><div class='del'>-	0x0e5a, 0x0e5b,</div><div class='del'>-	0x0f04, 0x0f12,</div><div class='del'>-	0x0f14, 0x0f14,</div><div class='del'>-	0x0f85, 0x0f85,</div><div class='del'>-	0x0fd0, 0x0fd4,</div><div class='del'>-	0x0fd9, 0x0fda,</div><div class='del'>-	0x104a, 0x104f,</div><div class='del'>-	0x10fb, 0x10fb,</div><div class='del'>-	0x1360, 0x1368,</div><div class='del'>-	0x166d, 0x166e,</div><div class='del'>-	0x16eb, 0x16ed,</div><div class='del'>-	0x1735, 0x1736,</div><div class='del'>-	0x17d4, 0x17d6,</div><div class='del'>-	0x17d8, 0x17da,</div><div class='del'>-	0x1800, 0x1805,</div><div class='del'>-	0x1807, 0x180a,</div><div class='del'>-	0x1944, 0x1945,</div><div class='del'>-	0x1a1e, 0x1a1f,</div><div class='del'>-	0x1aa0, 0x1aa6,</div><div class='del'>-	0x1aa8, 0x1aad,</div><div class='del'>-	0x1b5a, 0x1b60,</div><div class='del'>-	0x1bfc, 0x1bff,</div><div class='del'>-	0x1c3b, 0x1c3f,</div><div class='del'>-	0x1c7e, 0x1c7f,</div><div class='del'>-	0x1cc0, 0x1cc7,</div><div class='del'>-	0x1cd3, 0x1cd3,</div><div class='del'>-	0x2016, 0x2017,</div><div class='del'>-	0x2020, 0x2027,</div><div class='del'>-	0x2030, 0x2038,</div><div class='del'>-	0x203b, 0x203e,</div><div class='del'>-	0x2041, 0x2043,</div><div class='del'>-	0x2047, 0x2051,</div><div class='del'>-	0x2053, 0x2053,</div><div class='del'>-	0x2055, 0x205e,</div><div class='del'>-	0x2cf9, 0x2cfc,</div><div class='del'>-	0x2cfe, 0x2cff,</div><div class='del'>-	0x2d70, 0x2d70,</div><div class='del'>-	0x2e00, 0x2e01,</div><div class='del'>-	0x2e06, 0x2e08,</div><div class='del'>-	0x2e0b, 0x2e0b,</div><div class='del'>-	0x2e0e, 0x2e16,</div><div class='del'>-	0x2e18, 0x2e19,</div><div class='del'>-	0x2e1b, 0x2e1b,</div><div class='del'>-	0x2e1e, 0x2e1f,</div><div class='del'>-	0x2e2a, 0x2e2e,</div><div class='del'>-	0x2e30, 0x2e39,</div><div class='del'>-	0x2e3c, 0x2e3f,</div><div class='del'>-	0x2e41, 0x2e41,</div><div class='del'>-	0x2e43, 0x2e4e,</div><div class='del'>-	0x3001, 0x3003,</div><div class='del'>-	0x303d, 0x303d,</div><div class='del'>-	0x30fb, 0x30fb,</div><div class='del'>-	0xa4fe, 0xa4ff,</div><div class='del'>-	0xa60d, 0xa60f,</div><div class='del'>-	0xa673, 0xa673,</div><div class='del'>-	0xa67e, 0xa67e,</div><div class='del'>-	0xa6f2, 0xa6f7,</div><div class='del'>-	0xa874, 0xa877,</div><div class='del'>-	0xa8ce, 0xa8cf,</div><div class='del'>-	0xa8f8, 0xa8fa,</div><div class='del'>-	0xa8fc, 0xa8fc,</div><div class='del'>-	0xa92e, 0xa92f,</div><div class='del'>-	0xa95f, 0xa95f,</div><div class='del'>-	0xa9c1, 0xa9cd,</div><div class='del'>-	0xa9de, 0xa9df,</div><div class='del'>-	0xaa5c, 0xaa5f,</div><div class='del'>-	0xaade, 0xaadf,</div><div class='del'>-	0xaaf0, 0xaaf1,</div><div class='del'>-	0xabeb, 0xabeb,</div><div class='del'>-	0xfe10, 0xfe16,</div><div class='del'>-	0xfe19, 0xfe19,</div><div class='del'>-	0xfe30, 0xfe30,</div><div class='del'>-	0xfe45, 0xfe46,</div><div class='del'>-	0xfe49, 0xfe4c,</div><div class='del'>-	0xfe50, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe57,</div><div class='del'>-	0xfe5f, 0xfe61,</div><div class='del'>-	0xfe68, 0xfe68,</div><div class='del'>-	0xfe6a, 0xfe6b,</div><div class='del'>-	0xff01, 0xff03,</div><div class='del'>-	0xff05, 0xff07,</div><div class='del'>-	0xff0a, 0xff0a,</div><div class='del'>-	0xff0c, 0xff0c,</div><div class='del'>-	0xff0e, 0xff0f,</div><div class='del'>-	0xff1a, 0xff1b,</div><div class='del'>-	0xff1f, 0xff20,</div><div class='del'>-	0xff3c, 0xff3c,</div><div class='del'>-	0xff61, 0xff61,</div><div class='del'>-	0xff64, 0xff65,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x1039f, 0x1039f,</div><div class='del'>-	0x103d0, 0x103d0,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10857, 0x10857,</div><div class='del'>-	0x1091f, 0x1091f,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a7f, 0x10a7f,</div><div class='del'>-	0x10af0, 0x10af6,</div><div class='del'>-	0x10b39, 0x10b3f,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10f55, 0x10f59,</div><div class='del'>-	0x11047, 0x1104d,</div><div class='del'>-	0x110bb, 0x110bc,</div><div class='del'>-	0x110be, 0x110c1,</div><div class='del'>-	0x11140, 0x11143,</div><div class='del'>-	0x11174, 0x11175,</div><div class='del'>-	0x111c5, 0x111c8,</div><div class='del'>-	0x111cd, 0x111cd,</div><div class='del'>-	0x111db, 0x111db,</div><div class='del'>-	0x111dd, 0x111df,</div><div class='del'>-	0x11238, 0x1123d,</div><div class='del'>-	0x112a9, 0x112a9,</div><div class='del'>-	0x1144b, 0x1144f,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x1145d, 0x1145d,</div><div class='del'>-	0x114c6, 0x114c6,</div><div class='del'>-	0x115c1, 0x115d7,</div><div class='del'>-	0x11641, 0x11643,</div><div class='del'>-	0x11660, 0x1166c,</div><div class='del'>-	0x1173c, 0x1173e,</div><div class='del'>-	0x1183b, 0x1183b,</div><div class='del'>-	0x11a3f, 0x11a46,</div><div class='del'>-	0x11a9a, 0x11a9c,</div><div class='del'>-	0x11a9e, 0x11aa2,</div><div class='del'>-	0x11c41, 0x11c45,</div><div class='del'>-	0x11c70, 0x11c71,</div><div class='del'>-	0x11ef7, 0x11ef8,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16af5, 0x16af5,</div><div class='del'>-	0x16b37, 0x16b3b,</div><div class='del'>-	0x16b44, 0x16b44,</div><div class='del'>-	0x16e97, 0x16e9a,</div><div class='del'>-	0x1bc9f, 0x1bc9f,</div><div class='del'>-	0x1da87, 0x1da8b,</div><div class='del'>-	0x1e95e, 0x1e95f,</div><div class='del'>-}; /* CR_Po */</div><div class='del'>-</div><div class='del'>-/* 'Ps': General Category */</div><div class='del'>-static const OnigCodePoint CR_Ps[] = {</div><div class='del'>-	75,</div><div class='del'>-	0x0028, 0x0028,</div><div class='del'>-	0x005b, 0x005b,</div><div class='del'>-	0x007b, 0x007b,</div><div class='del'>-	0x0f3a, 0x0f3a,</div><div class='del'>-	0x0f3c, 0x0f3c,</div><div class='del'>-	0x169b, 0x169b,</div><div class='del'>-	0x201a, 0x201a,</div><div class='del'>-	0x201e, 0x201e,</div><div class='del'>-	0x2045, 0x2045,</div><div class='del'>-	0x207d, 0x207d,</div><div class='del'>-	0x208d, 0x208d,</div><div class='del'>-	0x2308, 0x2308,</div><div class='del'>-	0x230a, 0x230a,</div><div class='del'>-	0x2329, 0x2329,</div><div class='del'>-	0x2768, 0x2768,</div><div class='del'>-	0x276a, 0x276a,</div><div class='del'>-	0x276c, 0x276c,</div><div class='del'>-	0x276e, 0x276e,</div><div class='del'>-	0x2770, 0x2770,</div><div class='del'>-	0x2772, 0x2772,</div><div class='del'>-	0x2774, 0x2774,</div><div class='del'>-	0x27c5, 0x27c5,</div><div class='del'>-	0x27e6, 0x27e6,</div><div class='del'>-	0x27e8, 0x27e8,</div><div class='del'>-	0x27ea, 0x27ea,</div><div class='del'>-	0x27ec, 0x27ec,</div><div class='del'>-	0x27ee, 0x27ee,</div><div class='del'>-	0x2983, 0x2983,</div><div class='del'>-	0x2985, 0x2985,</div><div class='del'>-	0x2987, 0x2987,</div><div class='del'>-	0x2989, 0x2989,</div><div class='del'>-	0x298b, 0x298b,</div><div class='del'>-	0x298d, 0x298d,</div><div class='del'>-	0x298f, 0x298f,</div><div class='del'>-	0x2991, 0x2991,</div><div class='del'>-	0x2993, 0x2993,</div><div class='del'>-	0x2995, 0x2995,</div><div class='del'>-	0x2997, 0x2997,</div><div class='del'>-	0x29d8, 0x29d8,</div><div class='del'>-	0x29da, 0x29da,</div><div class='del'>-	0x29fc, 0x29fc,</div><div class='del'>-	0x2e22, 0x2e22,</div><div class='del'>-	0x2e24, 0x2e24,</div><div class='del'>-	0x2e26, 0x2e26,</div><div class='del'>-	0x2e28, 0x2e28,</div><div class='del'>-	0x2e42, 0x2e42,</div><div class='del'>-	0x3008, 0x3008,</div><div class='del'>-	0x300a, 0x300a,</div><div class='del'>-	0x300c, 0x300c,</div><div class='del'>-	0x300e, 0x300e,</div><div class='del'>-	0x3010, 0x3010,</div><div class='del'>-	0x3014, 0x3014,</div><div class='del'>-	0x3016, 0x3016,</div><div class='del'>-	0x3018, 0x3018,</div><div class='del'>-	0x301a, 0x301a,</div><div class='del'>-	0x301d, 0x301d,</div><div class='del'>-	0xfd3f, 0xfd3f,</div><div class='del'>-	0xfe17, 0xfe17,</div><div class='del'>-	0xfe35, 0xfe35,</div><div class='del'>-	0xfe37, 0xfe37,</div><div class='del'>-	0xfe39, 0xfe39,</div><div class='del'>-	0xfe3b, 0xfe3b,</div><div class='del'>-	0xfe3d, 0xfe3d,</div><div class='del'>-	0xfe3f, 0xfe3f,</div><div class='del'>-	0xfe41, 0xfe41,</div><div class='del'>-	0xfe43, 0xfe43,</div><div class='del'>-	0xfe47, 0xfe47,</div><div class='del'>-	0xfe59, 0xfe59,</div><div class='del'>-	0xfe5b, 0xfe5b,</div><div class='del'>-	0xfe5d, 0xfe5d,</div><div class='del'>-	0xff08, 0xff08,</div><div class='del'>-	0xff3b, 0xff3b,</div><div class='del'>-	0xff5b, 0xff5b,</div><div class='del'>-	0xff5f, 0xff5f,</div><div class='del'>-	0xff62, 0xff62,</div><div class='del'>-}; /* CR_Ps */</div><div class='del'>-</div><div class='del'>-/* 'S': Major Category */</div><div class='del'>-static const OnigCodePoint CR_S[] = {</div><div class='del'>-	220,</div><div class='del'>-	0x0024, 0x0024,</div><div class='del'>-	0x002b, 0x002b,</div><div class='del'>-	0x003c, 0x003e,</div><div class='del'>-	0x005e, 0x005e,</div><div class='del'>-	0x0060, 0x0060,</div><div class='del'>-	0x007c, 0x007c,</div><div class='del'>-	0x007e, 0x007e,</div><div class='del'>-	0x00a2, 0x00a6,</div><div class='del'>-	0x00a8, 0x00a9,</div><div class='del'>-	0x00ac, 0x00ac,</div><div class='del'>-	0x00ae, 0x00b1,</div><div class='del'>-	0x00b4, 0x00b4,</div><div class='del'>-	0x00b8, 0x00b8,</div><div class='del'>-	0x00d7, 0x00d7,</div><div class='del'>-	0x00f7, 0x00f7,</div><div class='del'>-	0x02c2, 0x02c5,</div><div class='del'>-	0x02d2, 0x02df,</div><div class='del'>-	0x02e5, 0x02eb,</div><div class='del'>-	0x02ed, 0x02ed,</div><div class='del'>-	0x02ef, 0x02ff,</div><div class='del'>-	0x0375, 0x0375,</div><div class='del'>-	0x0384, 0x0385,</div><div class='del'>-	0x03f6, 0x03f6,</div><div class='del'>-	0x0482, 0x0482,</div><div class='del'>-	0x058d, 0x058f,</div><div class='del'>-	0x0606, 0x0608,</div><div class='del'>-	0x060b, 0x060b,</div><div class='del'>-	0x060e, 0x060f,</div><div class='del'>-	0x06de, 0x06de,</div><div class='del'>-	0x06e9, 0x06e9,</div><div class='del'>-	0x06fd, 0x06fe,</div><div class='del'>-	0x07f6, 0x07f6,</div><div class='del'>-	0x07fe, 0x07ff,</div><div class='del'>-	0x09f2, 0x09f3,</div><div class='del'>-	0x09fa, 0x09fb,</div><div class='del'>-	0x0af1, 0x0af1,</div><div class='del'>-	0x0b70, 0x0b70,</div><div class='del'>-	0x0bf3, 0x0bfa,</div><div class='del'>-	0x0c7f, 0x0c7f,</div><div class='del'>-	0x0d4f, 0x0d4f,</div><div class='del'>-	0x0d79, 0x0d79,</div><div class='del'>-	0x0e3f, 0x0e3f,</div><div class='del'>-	0x0f01, 0x0f03,</div><div class='del'>-	0x0f13, 0x0f13,</div><div class='del'>-	0x0f15, 0x0f17,</div><div class='del'>-	0x0f1a, 0x0f1f,</div><div class='del'>-	0x0f34, 0x0f34,</div><div class='del'>-	0x0f36, 0x0f36,</div><div class='del'>-	0x0f38, 0x0f38,</div><div class='del'>-	0x0fbe, 0x0fc5,</div><div class='del'>-	0x0fc7, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fcf,</div><div class='del'>-	0x0fd5, 0x0fd8,</div><div class='del'>-	0x109e, 0x109f,</div><div class='del'>-	0x1390, 0x1399,</div><div class='del'>-	0x17db, 0x17db,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x19de, 0x19ff,</div><div class='del'>-	0x1b61, 0x1b6a,</div><div class='del'>-	0x1b74, 0x1b7c,</div><div class='del'>-	0x1fbd, 0x1fbd,</div><div class='del'>-	0x1fbf, 0x1fc1,</div><div class='del'>-	0x1fcd, 0x1fcf,</div><div class='del'>-	0x1fdd, 0x1fdf,</div><div class='del'>-	0x1fed, 0x1fef,</div><div class='del'>-	0x1ffd, 0x1ffe,</div><div class='del'>-	0x2044, 0x2044,</div><div class='del'>-	0x2052, 0x2052,</div><div class='del'>-	0x207a, 0x207c,</div><div class='del'>-	0x208a, 0x208c,</div><div class='del'>-	0x20a0, 0x20bf,</div><div class='del'>-	0x2100, 0x2101,</div><div class='del'>-	0x2103, 0x2106,</div><div class='del'>-	0x2108, 0x2109,</div><div class='del'>-	0x2114, 0x2114,</div><div class='del'>-	0x2116, 0x2118,</div><div class='del'>-	0x211e, 0x2123,</div><div class='del'>-	0x2125, 0x2125,</div><div class='del'>-	0x2127, 0x2127,</div><div class='del'>-	0x2129, 0x2129,</div><div class='del'>-	0x212e, 0x212e,</div><div class='del'>-	0x213a, 0x213b,</div><div class='del'>-	0x2140, 0x2144,</div><div class='del'>-	0x214a, 0x214d,</div><div class='del'>-	0x214f, 0x214f,</div><div class='del'>-	0x218a, 0x218b,</div><div class='del'>-	0x2190, 0x2307,</div><div class='del'>-	0x230c, 0x2328,</div><div class='del'>-	0x232b, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x249c, 0x24e9,</div><div class='del'>-	0x2500, 0x2767,</div><div class='del'>-	0x2794, 0x27c4,</div><div class='del'>-	0x27c7, 0x27e5,</div><div class='del'>-	0x27f0, 0x2982,</div><div class='del'>-	0x2999, 0x29d7,</div><div class='del'>-	0x29dc, 0x29fb,</div><div class='del'>-	0x29fe, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bfe,</div><div class='del'>-	0x2ce5, 0x2cea,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3004, 0x3004,</div><div class='del'>-	0x3012, 0x3013,</div><div class='del'>-	0x3020, 0x3020,</div><div class='del'>-	0x3036, 0x3037,</div><div class='del'>-	0x303e, 0x303f,</div><div class='del'>-	0x309b, 0x309c,</div><div class='del'>-	0x3190, 0x3191,</div><div class='del'>-	0x3196, 0x319f,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x3200, 0x321e,</div><div class='del'>-	0x322a, 0x3247,</div><div class='del'>-	0x3250, 0x3250,</div><div class='del'>-	0x3260, 0x327f,</div><div class='del'>-	0x328a, 0x32b0,</div><div class='del'>-	0x32c0, 0x32fe,</div><div class='del'>-	0x3300, 0x33ff,</div><div class='del'>-	0x4dc0, 0x4dff,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa700, 0xa716,</div><div class='del'>-	0xa720, 0xa721,</div><div class='del'>-	0xa789, 0xa78a,</div><div class='del'>-	0xa828, 0xa82b,</div><div class='del'>-	0xa836, 0xa839,</div><div class='del'>-	0xaa77, 0xaa79,</div><div class='del'>-	0xab5b, 0xab5b,</div><div class='del'>-	0xfb29, 0xfb29,</div><div class='del'>-	0xfbb2, 0xfbc1,</div><div class='del'>-	0xfdfc, 0xfdfd,</div><div class='del'>-	0xfe62, 0xfe62,</div><div class='del'>-	0xfe64, 0xfe66,</div><div class='del'>-	0xfe69, 0xfe69,</div><div class='del'>-	0xff04, 0xff04,</div><div class='del'>-	0xff0b, 0xff0b,</div><div class='del'>-	0xff1c, 0xff1e,</div><div class='del'>-	0xff3e, 0xff3e,</div><div class='del'>-	0xff40, 0xff40,</div><div class='del'>-	0xff5c, 0xff5c,</div><div class='del'>-	0xff5e, 0xff5e,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfffc, 0xfffd,</div><div class='del'>-	0x10137, 0x1013f,</div><div class='del'>-	0x10179, 0x10189,</div><div class='del'>-	0x1018c, 0x1018e,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x101d0, 0x101fc,</div><div class='del'>-	0x10877, 0x10878,</div><div class='del'>-	0x10ac8, 0x10ac8,</div><div class='del'>-	0x1173f, 0x1173f,</div><div class='del'>-	0x16b3c, 0x16b3f,</div><div class='del'>-	0x16b45, 0x16b45,</div><div class='del'>-	0x1bc9c, 0x1bc9c,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d164,</div><div class='del'>-	0x1d16a, 0x1d16c,</div><div class='del'>-	0x1d183, 0x1d184,</div><div class='del'>-	0x1d18c, 0x1d1a9,</div><div class='del'>-	0x1d1ae, 0x1d1e8,</div><div class='del'>-	0x1d200, 0x1d241,</div><div class='del'>-	0x1d245, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d6c1, 0x1d6c1,</div><div class='del'>-	0x1d6db, 0x1d6db,</div><div class='del'>-	0x1d6fb, 0x1d6fb,</div><div class='del'>-	0x1d715, 0x1d715,</div><div class='del'>-	0x1d735, 0x1d735,</div><div class='del'>-	0x1d74f, 0x1d74f,</div><div class='del'>-	0x1d76f, 0x1d76f,</div><div class='del'>-	0x1d789, 0x1d789,</div><div class='del'>-	0x1d7a9, 0x1d7a9,</div><div class='del'>-	0x1d7c3, 0x1d7c3,</div><div class='del'>-	0x1d800, 0x1d9ff,</div><div class='del'>-	0x1da37, 0x1da3a,</div><div class='del'>-	0x1da6d, 0x1da74,</div><div class='del'>-	0x1da76, 0x1da83,</div><div class='del'>-	0x1da85, 0x1da86,</div><div class='del'>-	0x1ecac, 0x1ecac,</div><div class='del'>-	0x1ecb0, 0x1ecb0,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f110, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f1ac,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23b,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f260, 0x1f265,</div><div class='del'>-	0x1f300, 0x1f6d4,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f9,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d8,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1f900, 0x1f90b,</div><div class='del'>-	0x1f910, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f970,</div><div class='del'>-	0x1f973, 0x1f976,</div><div class='del'>-	0x1f97a, 0x1f97a,</div><div class='del'>-	0x1f97c, 0x1f9a2,</div><div class='del'>-	0x1f9b0, 0x1f9b9,</div><div class='del'>-	0x1f9c0, 0x1f9c2,</div><div class='del'>-	0x1f9d0, 0x1f9ff,</div><div class='del'>-	0x1fa60, 0x1fa6d,</div><div class='del'>-}; /* CR_S */</div><div class='del'>-</div><div class='del'>-/* 'Sc': General Category */</div><div class='del'>-static const OnigCodePoint CR_Sc[] = {</div><div class='del'>-	19,</div><div class='del'>-	0x0024, 0x0024,</div><div class='del'>-	0x00a2, 0x00a5,</div><div class='del'>-	0x058f, 0x058f,</div><div class='del'>-	0x060b, 0x060b,</div><div class='del'>-	0x07fe, 0x07ff,</div><div class='del'>-	0x09f2, 0x09f3,</div><div class='del'>-	0x09fb, 0x09fb,</div><div class='del'>-	0x0af1, 0x0af1,</div><div class='del'>-	0x0bf9, 0x0bf9,</div><div class='del'>-	0x0e3f, 0x0e3f,</div><div class='del'>-	0x17db, 0x17db,</div><div class='del'>-	0x20a0, 0x20bf,</div><div class='del'>-	0xa838, 0xa838,</div><div class='del'>-	0xfdfc, 0xfdfc,</div><div class='del'>-	0xfe69, 0xfe69,</div><div class='del'>-	0xff04, 0xff04,</div><div class='del'>-	0xffe0, 0xffe1,</div><div class='del'>-	0xffe5, 0xffe6,</div><div class='del'>-	0x1ecb0, 0x1ecb0,</div><div class='del'>-}; /* CR_Sc */</div><div class='del'>-</div><div class='del'>-/* 'Sk': General Category */</div><div class='del'>-static const OnigCodePoint CR_Sk[] = {</div><div class='del'>-	29,</div><div class='del'>-	0x005e, 0x005e,</div><div class='del'>-	0x0060, 0x0060,</div><div class='del'>-	0x00a8, 0x00a8,</div><div class='del'>-	0x00af, 0x00af,</div><div class='del'>-	0x00b4, 0x00b4,</div><div class='del'>-	0x00b8, 0x00b8,</div><div class='del'>-	0x02c2, 0x02c5,</div><div class='del'>-	0x02d2, 0x02df,</div><div class='del'>-	0x02e5, 0x02eb,</div><div class='del'>-	0x02ed, 0x02ed,</div><div class='del'>-	0x02ef, 0x02ff,</div><div class='del'>-	0x0375, 0x0375,</div><div class='del'>-	0x0384, 0x0385,</div><div class='del'>-	0x1fbd, 0x1fbd,</div><div class='del'>-	0x1fbf, 0x1fc1,</div><div class='del'>-	0x1fcd, 0x1fcf,</div><div class='del'>-	0x1fdd, 0x1fdf,</div><div class='del'>-	0x1fed, 0x1fef,</div><div class='del'>-	0x1ffd, 0x1ffe,</div><div class='del'>-	0x309b, 0x309c,</div><div class='del'>-	0xa700, 0xa716,</div><div class='del'>-	0xa720, 0xa721,</div><div class='del'>-	0xa789, 0xa78a,</div><div class='del'>-	0xab5b, 0xab5b,</div><div class='del'>-	0xfbb2, 0xfbc1,</div><div class='del'>-	0xff3e, 0xff3e,</div><div class='del'>-	0xff40, 0xff40,</div><div class='del'>-	0xffe3, 0xffe3,</div><div class='del'>-	0x1f3fb, 0x1f3ff,</div><div class='del'>-}; /* CR_Sk */</div><div class='del'>-</div><div class='del'>-/* 'Sm': General Category */</div><div class='del'>-static const OnigCodePoint CR_Sm[] = {</div><div class='del'>-	64,</div><div class='del'>-	0x002b, 0x002b,</div><div class='del'>-	0x003c, 0x003e,</div><div class='del'>-	0x007c, 0x007c,</div><div class='del'>-	0x007e, 0x007e,</div><div class='del'>-	0x00ac, 0x00ac,</div><div class='del'>-	0x00b1, 0x00b1,</div><div class='del'>-	0x00d7, 0x00d7,</div><div class='del'>-	0x00f7, 0x00f7,</div><div class='del'>-	0x03f6, 0x03f6,</div><div class='del'>-	0x0606, 0x0608,</div><div class='del'>-	0x2044, 0x2044,</div><div class='del'>-	0x2052, 0x2052,</div><div class='del'>-	0x207a, 0x207c,</div><div class='del'>-	0x208a, 0x208c,</div><div class='del'>-	0x2118, 0x2118,</div><div class='del'>-	0x2140, 0x2144,</div><div class='del'>-	0x214b, 0x214b,</div><div class='del'>-	0x2190, 0x2194,</div><div class='del'>-	0x219a, 0x219b,</div><div class='del'>-	0x21a0, 0x21a0,</div><div class='del'>-	0x21a3, 0x21a3,</div><div class='del'>-	0x21a6, 0x21a6,</div><div class='del'>-	0x21ae, 0x21ae,</div><div class='del'>-	0x21ce, 0x21cf,</div><div class='del'>-	0x21d2, 0x21d2,</div><div class='del'>-	0x21d4, 0x21d4,</div><div class='del'>-	0x21f4, 0x22ff,</div><div class='del'>-	0x2320, 0x2321,</div><div class='del'>-	0x237c, 0x237c,</div><div class='del'>-	0x239b, 0x23b3,</div><div class='del'>-	0x23dc, 0x23e1,</div><div class='del'>-	0x25b7, 0x25b7,</div><div class='del'>-	0x25c1, 0x25c1,</div><div class='del'>-	0x25f8, 0x25ff,</div><div class='del'>-	0x266f, 0x266f,</div><div class='del'>-	0x27c0, 0x27c4,</div><div class='del'>-	0x27c7, 0x27e5,</div><div class='del'>-	0x27f0, 0x27ff,</div><div class='del'>-	0x2900, 0x2982,</div><div class='del'>-	0x2999, 0x29d7,</div><div class='del'>-	0x29dc, 0x29fb,</div><div class='del'>-	0x29fe, 0x2aff,</div><div class='del'>-	0x2b30, 0x2b44,</div><div class='del'>-	0x2b47, 0x2b4c,</div><div class='del'>-	0xfb29, 0xfb29,</div><div class='del'>-	0xfe62, 0xfe62,</div><div class='del'>-	0xfe64, 0xfe66,</div><div class='del'>-	0xff0b, 0xff0b,</div><div class='del'>-	0xff1c, 0xff1e,</div><div class='del'>-	0xff5c, 0xff5c,</div><div class='del'>-	0xff5e, 0xff5e,</div><div class='del'>-	0xffe2, 0xffe2,</div><div class='del'>-	0xffe9, 0xffec,</div><div class='del'>-	0x1d6c1, 0x1d6c1,</div><div class='del'>-	0x1d6db, 0x1d6db,</div><div class='del'>-	0x1d6fb, 0x1d6fb,</div><div class='del'>-	0x1d715, 0x1d715,</div><div class='del'>-	0x1d735, 0x1d735,</div><div class='del'>-	0x1d74f, 0x1d74f,</div><div class='del'>-	0x1d76f, 0x1d76f,</div><div class='del'>-	0x1d789, 0x1d789,</div><div class='del'>-	0x1d7a9, 0x1d7a9,</div><div class='del'>-	0x1d7c3, 0x1d7c3,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-}; /* CR_Sm */</div><div class='del'>-</div><div class='del'>-/* 'So': General Category */</div><div class='del'>-static const OnigCodePoint CR_So[] = {</div><div class='del'>-	174,</div><div class='del'>-	0x00a6, 0x00a6,</div><div class='del'>-	0x00a9, 0x00a9,</div><div class='del'>-	0x00ae, 0x00ae,</div><div class='del'>-	0x00b0, 0x00b0,</div><div class='del'>-	0x0482, 0x0482,</div><div class='del'>-	0x058d, 0x058e,</div><div class='del'>-	0x060e, 0x060f,</div><div class='del'>-	0x06de, 0x06de,</div><div class='del'>-	0x06e9, 0x06e9,</div><div class='del'>-	0x06fd, 0x06fe,</div><div class='del'>-	0x07f6, 0x07f6,</div><div class='del'>-	0x09fa, 0x09fa,</div><div class='del'>-	0x0b70, 0x0b70,</div><div class='del'>-	0x0bf3, 0x0bf8,</div><div class='del'>-	0x0bfa, 0x0bfa,</div><div class='del'>-	0x0c7f, 0x0c7f,</div><div class='del'>-	0x0d4f, 0x0d4f,</div><div class='del'>-	0x0d79, 0x0d79,</div><div class='del'>-	0x0f01, 0x0f03,</div><div class='del'>-	0x0f13, 0x0f13,</div><div class='del'>-	0x0f15, 0x0f17,</div><div class='del'>-	0x0f1a, 0x0f1f,</div><div class='del'>-	0x0f34, 0x0f34,</div><div class='del'>-	0x0f36, 0x0f36,</div><div class='del'>-	0x0f38, 0x0f38,</div><div class='del'>-	0x0fbe, 0x0fc5,</div><div class='del'>-	0x0fc7, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fcf,</div><div class='del'>-	0x0fd5, 0x0fd8,</div><div class='del'>-	0x109e, 0x109f,</div><div class='del'>-	0x1390, 0x1399,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x19de, 0x19ff,</div><div class='del'>-	0x1b61, 0x1b6a,</div><div class='del'>-	0x1b74, 0x1b7c,</div><div class='del'>-	0x2100, 0x2101,</div><div class='del'>-	0x2103, 0x2106,</div><div class='del'>-	0x2108, 0x2109,</div><div class='del'>-	0x2114, 0x2114,</div><div class='del'>-	0x2116, 0x2117,</div><div class='del'>-	0x211e, 0x2123,</div><div class='del'>-	0x2125, 0x2125,</div><div class='del'>-	0x2127, 0x2127,</div><div class='del'>-	0x2129, 0x2129,</div><div class='del'>-	0x212e, 0x212e,</div><div class='del'>-	0x213a, 0x213b,</div><div class='del'>-	0x214a, 0x214a,</div><div class='del'>-	0x214c, 0x214d,</div><div class='del'>-	0x214f, 0x214f,</div><div class='del'>-	0x218a, 0x218b,</div><div class='del'>-	0x2195, 0x2199,</div><div class='del'>-	0x219c, 0x219f,</div><div class='del'>-	0x21a1, 0x21a2,</div><div class='del'>-	0x21a4, 0x21a5,</div><div class='del'>-	0x21a7, 0x21ad,</div><div class='del'>-	0x21af, 0x21cd,</div><div class='del'>-	0x21d0, 0x21d1,</div><div class='del'>-	0x21d3, 0x21d3,</div><div class='del'>-	0x21d5, 0x21f3,</div><div class='del'>-	0x2300, 0x2307,</div><div class='del'>-	0x230c, 0x231f,</div><div class='del'>-	0x2322, 0x2328,</div><div class='del'>-	0x232b, 0x237b,</div><div class='del'>-	0x237d, 0x239a,</div><div class='del'>-	0x23b4, 0x23db,</div><div class='del'>-	0x23e2, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x249c, 0x24e9,</div><div class='del'>-	0x2500, 0x25b6,</div><div class='del'>-	0x25b8, 0x25c0,</div><div class='del'>-	0x25c2, 0x25f7,</div><div class='del'>-	0x2600, 0x266e,</div><div class='del'>-	0x2670, 0x2767,</div><div class='del'>-	0x2794, 0x27bf,</div><div class='del'>-	0x2800, 0x28ff,</div><div class='del'>-	0x2b00, 0x2b2f,</div><div class='del'>-	0x2b45, 0x2b46,</div><div class='del'>-	0x2b4d, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bfe,</div><div class='del'>-	0x2ce5, 0x2cea,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3004, 0x3004,</div><div class='del'>-	0x3012, 0x3013,</div><div class='del'>-	0x3020, 0x3020,</div><div class='del'>-	0x3036, 0x3037,</div><div class='del'>-	0x303e, 0x303f,</div><div class='del'>-	0x3190, 0x3191,</div><div class='del'>-	0x3196, 0x319f,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x3200, 0x321e,</div><div class='del'>-	0x322a, 0x3247,</div><div class='del'>-	0x3250, 0x3250,</div><div class='del'>-	0x3260, 0x327f,</div><div class='del'>-	0x328a, 0x32b0,</div><div class='del'>-	0x32c0, 0x32fe,</div><div class='del'>-	0x3300, 0x33ff,</div><div class='del'>-	0x4dc0, 0x4dff,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa828, 0xa82b,</div><div class='del'>-	0xa836, 0xa837,</div><div class='del'>-	0xa839, 0xa839,</div><div class='del'>-	0xaa77, 0xaa79,</div><div class='del'>-	0xfdfd, 0xfdfd,</div><div class='del'>-	0xffe4, 0xffe4,</div><div class='del'>-	0xffe8, 0xffe8,</div><div class='del'>-	0xffed, 0xffee,</div><div class='del'>-	0xfffc, 0xfffd,</div><div class='del'>-	0x10137, 0x1013f,</div><div class='del'>-	0x10179, 0x10189,</div><div class='del'>-	0x1018c, 0x1018e,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x101d0, 0x101fc,</div><div class='del'>-	0x10877, 0x10878,</div><div class='del'>-	0x10ac8, 0x10ac8,</div><div class='del'>-	0x1173f, 0x1173f,</div><div class='del'>-	0x16b3c, 0x16b3f,</div><div class='del'>-	0x16b45, 0x16b45,</div><div class='del'>-	0x1bc9c, 0x1bc9c,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d164,</div><div class='del'>-	0x1d16a, 0x1d16c,</div><div class='del'>-	0x1d183, 0x1d184,</div><div class='del'>-	0x1d18c, 0x1d1a9,</div><div class='del'>-	0x1d1ae, 0x1d1e8,</div><div class='del'>-	0x1d200, 0x1d241,</div><div class='del'>-	0x1d245, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d800, 0x1d9ff,</div><div class='del'>-	0x1da37, 0x1da3a,</div><div class='del'>-	0x1da6d, 0x1da74,</div><div class='del'>-	0x1da76, 0x1da83,</div><div class='del'>-	0x1da85, 0x1da86,</div><div class='del'>-	0x1ecac, 0x1ecac,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f110, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f1ac,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23b,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f260, 0x1f265,</div><div class='del'>-	0x1f300, 0x1f3fa,</div><div class='del'>-	0x1f400, 0x1f6d4,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f9,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d8,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1f900, 0x1f90b,</div><div class='del'>-	0x1f910, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f970,</div><div class='del'>-	0x1f973, 0x1f976,</div><div class='del'>-	0x1f97a, 0x1f97a,</div><div class='del'>-	0x1f97c, 0x1f9a2,</div><div class='del'>-	0x1f9b0, 0x1f9b9,</div><div class='del'>-	0x1f9c0, 0x1f9c2,</div><div class='del'>-	0x1f9d0, 0x1f9ff,</div><div class='del'>-	0x1fa60, 0x1fa6d,</div><div class='del'>-}; /* CR_So */</div><div class='del'>-</div><div class='del'>-/* 'Z': Major Category */</div><div class='del'>-static const OnigCodePoint CR_Z[] = {</div><div class='del'>-	8,</div><div class='del'>-	0x0020, 0x0020,</div><div class='del'>-	0x00a0, 0x00a0,</div><div class='del'>-	0x1680, 0x1680,</div><div class='del'>-	0x2000, 0x200a,</div><div class='del'>-	0x2028, 0x2029,</div><div class='del'>-	0x202f, 0x202f,</div><div class='del'>-	0x205f, 0x205f,</div><div class='del'>-	0x3000, 0x3000,</div><div class='del'>-}; /* CR_Z */</div><div class='del'>-</div><div class='del'>-/* 'Zl': General Category */</div><div class='del'>-static const OnigCodePoint CR_Zl[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2028, 0x2028,</div><div class='del'>-}; /* CR_Zl */</div><div class='del'>-</div><div class='del'>-/* 'Zp': General Category */</div><div class='del'>-static const OnigCodePoint CR_Zp[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2029, 0x2029,</div><div class='del'>-}; /* CR_Zp */</div><div class='del'>-</div><div class='del'>-/* 'Zs': General Category */</div><div class='del'>-static const OnigCodePoint CR_Zs[] = {</div><div class='del'>-	7,</div><div class='del'>-	0x0020, 0x0020,</div><div class='del'>-	0x00a0, 0x00a0,</div><div class='del'>-	0x1680, 0x1680,</div><div class='del'>-	0x2000, 0x200a,</div><div class='del'>-	0x202f, 0x202f,</div><div class='del'>-	0x205f, 0x205f,</div><div class='del'>-	0x3000, 0x3000,</div><div class='del'>-}; /* CR_Zs */</div><div class='del'>-</div><div class='del'>-/* 'Math': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Math[] = {</div><div class='del'>-	138,</div><div class='del'>-	0x002b, 0x002b,</div><div class='del'>-	0x003c, 0x003e,</div><div class='del'>-	0x005e, 0x005e,</div><div class='del'>-	0x007c, 0x007c,</div><div class='del'>-	0x007e, 0x007e,</div><div class='del'>-	0x00ac, 0x00ac,</div><div class='del'>-	0x00b1, 0x00b1,</div><div class='del'>-	0x00d7, 0x00d7,</div><div class='del'>-	0x00f7, 0x00f7,</div><div class='del'>-	0x03d0, 0x03d2,</div><div class='del'>-	0x03d5, 0x03d5,</div><div class='del'>-	0x03f0, 0x03f1,</div><div class='del'>-	0x03f4, 0x03f6,</div><div class='del'>-	0x0606, 0x0608,</div><div class='del'>-	0x2016, 0x2016,</div><div class='del'>-	0x2032, 0x2034,</div><div class='del'>-	0x2040, 0x2040,</div><div class='del'>-	0x2044, 0x2044,</div><div class='del'>-	0x2052, 0x2052,</div><div class='del'>-	0x2061, 0x2064,</div><div class='del'>-	0x207a, 0x207e,</div><div class='del'>-	0x208a, 0x208e,</div><div class='del'>-	0x20d0, 0x20dc,</div><div class='del'>-	0x20e1, 0x20e1,</div><div class='del'>-	0x20e5, 0x20e6,</div><div class='del'>-	0x20eb, 0x20ef,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2118, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2128, 0x2129,</div><div class='del'>-	0x212c, 0x212d,</div><div class='del'>-	0x212f, 0x2131,</div><div class='del'>-	0x2133, 0x2138,</div><div class='del'>-	0x213c, 0x2149,</div><div class='del'>-	0x214b, 0x214b,</div><div class='del'>-	0x2190, 0x21a7,</div><div class='del'>-	0x21a9, 0x21ae,</div><div class='del'>-	0x21b0, 0x21b1,</div><div class='del'>-	0x21b6, 0x21b7,</div><div class='del'>-	0x21bc, 0x21db,</div><div class='del'>-	0x21dd, 0x21dd,</div><div class='del'>-	0x21e4, 0x21e5,</div><div class='del'>-	0x21f4, 0x22ff,</div><div class='del'>-	0x2308, 0x230b,</div><div class='del'>-	0x2320, 0x2321,</div><div class='del'>-	0x237c, 0x237c,</div><div class='del'>-	0x239b, 0x23b5,</div><div class='del'>-	0x23b7, 0x23b7,</div><div class='del'>-	0x23d0, 0x23d0,</div><div class='del'>-	0x23dc, 0x23e2,</div><div class='del'>-	0x25a0, 0x25a1,</div><div class='del'>-	0x25ae, 0x25b7,</div><div class='del'>-	0x25bc, 0x25c1,</div><div class='del'>-	0x25c6, 0x25c7,</div><div class='del'>-	0x25ca, 0x25cb,</div><div class='del'>-	0x25cf, 0x25d3,</div><div class='del'>-	0x25e2, 0x25e2,</div><div class='del'>-	0x25e4, 0x25e4,</div><div class='del'>-	0x25e7, 0x25ec,</div><div class='del'>-	0x25f8, 0x25ff,</div><div class='del'>-	0x2605, 0x2606,</div><div class='del'>-	0x2640, 0x2640,</div><div class='del'>-	0x2642, 0x2642,</div><div class='del'>-	0x2660, 0x2663,</div><div class='del'>-	0x266d, 0x266f,</div><div class='del'>-	0x27c0, 0x27ff,</div><div class='del'>-	0x2900, 0x2aff,</div><div class='del'>-	0x2b30, 0x2b44,</div><div class='del'>-	0x2b47, 0x2b4c,</div><div class='del'>-	0xfb29, 0xfb29,</div><div class='del'>-	0xfe61, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe68,</div><div class='del'>-	0xff0b, 0xff0b,</div><div class='del'>-	0xff1c, 0xff1e,</div><div class='del'>-	0xff3c, 0xff3c,</div><div class='del'>-	0xff3e, 0xff3e,</div><div class='del'>-	0xff5c, 0xff5c,</div><div class='del'>-	0xff5e, 0xff5e,</div><div class='del'>-	0xffe2, 0xffe2,</div><div class='del'>-	0xffe9, 0xffec,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-}; /* CR_Math */</div><div class='del'>-</div><div class='del'>-/* 'Alphabetic': Derived Property */</div><div class='del'>-#define CR_Alphabetic CR_Alpha</div><div class='del'>-</div><div class='del'>-/* 'Lowercase': Derived Property */</div><div class='del'>-#define CR_Lowercase CR_Lower</div><div class='del'>-</div><div class='del'>-/* 'Uppercase': Derived Property */</div><div class='del'>-#define CR_Uppercase CR_Upper</div><div class='del'>-</div><div class='del'>-/* 'Cased': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Cased[] = {</div><div class='del'>-	139,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x01ba,</div><div class='del'>-	0x01bc, 0x01bf,</div><div class='del'>-	0x01c4, 0x0293,</div><div class='del'>-	0x0295, 0x02b8,</div><div class='del'>-	0x02c0, 0x02c1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x0345, 0x0345,</div><div class='del'>-	0x0370, 0x0373,</div><div class='del'>-	0x0376, 0x0377,</div><div class='del'>-	0x037a, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03f5,</div><div class='del'>-	0x03f7, 0x0481,</div><div class='del'>-	0x048a, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fd, 0x10ff,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1d00, 0x1dbf,</div><div class='del'>-	0x1e00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fe0, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffc,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2119, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x212d,</div><div class='del'>-	0x212f, 0x2134,</div><div class='del'>-	0x2139, 0x2139,</div><div class='del'>-	0x213c, 0x213f,</div><div class='del'>-	0x2145, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2160, 0x217f,</div><div class='del'>-	0x2183, 0x2184,</div><div class='del'>-	0x24b6, 0x24e9,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2ce4,</div><div class='del'>-	0x2ceb, 0x2cee,</div><div class='del'>-	0x2cf2, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0xa640, 0xa66d,</div><div class='del'>-	0xa680, 0xa69d,</div><div class='del'>-	0xa722, 0xa787,</div><div class='del'>-	0xa78b, 0xa78e,</div><div class='del'>-	0xa790, 0xa7b9,</div><div class='del'>-	0xa7f8, 0xa7fa,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab5c, 0xab65,</div><div class='del'>-	0xab70, 0xabbf,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0x10400, 0x1044f,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x118a0, 0x118df,</div><div class='del'>-	0x16e40, 0x16e7f,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6fa,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d734,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d76e,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d7a8,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7cb,</div><div class='del'>-	0x1e900, 0x1e943,</div><div class='del'>-	0x1f130, 0x1f149,</div><div class='del'>-	0x1f150, 0x1f169,</div><div class='del'>-	0x1f170, 0x1f189,</div><div class='del'>-}; /* CR_Cased */</div><div class='del'>-</div><div class='del'>-/* 'Case_Ignorable': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Case_Ignorable[] = {</div><div class='del'>-	394,</div><div class='del'>-	0x0027, 0x0027,</div><div class='del'>-	0x002e, 0x002e,</div><div class='del'>-	0x003a, 0x003a,</div><div class='del'>-	0x005e, 0x005e,</div><div class='del'>-	0x0060, 0x0060,</div><div class='del'>-	0x00a8, 0x00a8,</div><div class='del'>-	0x00ad, 0x00ad,</div><div class='del'>-	0x00af, 0x00af,</div><div class='del'>-	0x00b4, 0x00b4,</div><div class='del'>-	0x00b7, 0x00b8,</div><div class='del'>-	0x02b0, 0x036f,</div><div class='del'>-	0x0374, 0x0375,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x0384, 0x0385,</div><div class='del'>-	0x0387, 0x0387,</div><div class='del'>-	0x0483, 0x0489,</div><div class='del'>-	0x0559, 0x0559,</div><div class='del'>-	0x0591, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c5,</div><div class='del'>-	0x05c7, 0x05c7,</div><div class='del'>-	0x05f4, 0x05f4,</div><div class='del'>-	0x0600, 0x0605,</div><div class='del'>-	0x0610, 0x061a,</div><div class='del'>-	0x061c, 0x061c,</div><div class='del'>-	0x0640, 0x0640,</div><div class='del'>-	0x064b, 0x065f,</div><div class='del'>-	0x0670, 0x0670,</div><div class='del'>-	0x06d6, 0x06dd,</div><div class='del'>-	0x06df, 0x06e8,</div><div class='del'>-	0x06ea, 0x06ed,</div><div class='del'>-	0x070f, 0x070f,</div><div class='del'>-	0x0711, 0x0711,</div><div class='del'>-	0x0730, 0x074a,</div><div class='del'>-	0x07a6, 0x07b0,</div><div class='del'>-	0x07eb, 0x07f5,</div><div class='del'>-	0x07fa, 0x07fa,</div><div class='del'>-	0x07fd, 0x07fd,</div><div class='del'>-	0x0816, 0x082d,</div><div class='del'>-	0x0859, 0x085b,</div><div class='del'>-	0x08d3, 0x0902,</div><div class='del'>-	0x093a, 0x093a,</div><div class='del'>-	0x093c, 0x093c,</div><div class='del'>-	0x0941, 0x0948,</div><div class='del'>-	0x094d, 0x094d,</div><div class='del'>-	0x0951, 0x0957,</div><div class='del'>-	0x0962, 0x0963,</div><div class='del'>-	0x0971, 0x0971,</div><div class='del'>-	0x0981, 0x0981,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09c1, 0x09c4,</div><div class='del'>-	0x09cd, 0x09cd,</div><div class='del'>-	0x09e2, 0x09e3,</div><div class='del'>-	0x09fe, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a02,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a41, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a70, 0x0a71,</div><div class='del'>-	0x0a75, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a82,</div><div class='del'>-	0x0abc, 0x0abc,</div><div class='del'>-	0x0ac1, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac8,</div><div class='del'>-	0x0acd, 0x0acd,</div><div class='del'>-	0x0ae2, 0x0ae3,</div><div class='del'>-	0x0afa, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b01,</div><div class='del'>-	0x0b3c, 0x0b3c,</div><div class='del'>-	0x0b3f, 0x0b3f,</div><div class='del'>-	0x0b41, 0x0b44,</div><div class='del'>-	0x0b4d, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b56,</div><div class='del'>-	0x0b62, 0x0b63,</div><div class='del'>-	0x0b82, 0x0b82,</div><div class='del'>-	0x0bc0, 0x0bc0,</div><div class='del'>-	0x0bcd, 0x0bcd,</div><div class='del'>-	0x0c00, 0x0c00,</div><div class='del'>-	0x0c04, 0x0c04,</div><div class='del'>-	0x0c3e, 0x0c40,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c62, 0x0c63,</div><div class='del'>-	0x0c81, 0x0c81,</div><div class='del'>-	0x0cbc, 0x0cbc,</div><div class='del'>-	0x0cbf, 0x0cbf,</div><div class='del'>-	0x0cc6, 0x0cc6,</div><div class='del'>-	0x0ccc, 0x0ccd,</div><div class='del'>-	0x0ce2, 0x0ce3,</div><div class='del'>-	0x0d00, 0x0d01,</div><div class='del'>-	0x0d3b, 0x0d3c,</div><div class='del'>-	0x0d41, 0x0d44,</div><div class='del'>-	0x0d4d, 0x0d4d,</div><div class='del'>-	0x0d62, 0x0d63,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dd2, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0e31, 0x0e31,</div><div class='del'>-	0x0e34, 0x0e3a,</div><div class='del'>-	0x0e46, 0x0e4e,</div><div class='del'>-	0x0eb1, 0x0eb1,</div><div class='del'>-	0x0eb4, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebc,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0f18, 0x0f19,</div><div class='del'>-	0x0f35, 0x0f35,</div><div class='del'>-	0x0f37, 0x0f37,</div><div class='del'>-	0x0f39, 0x0f39,</div><div class='del'>-	0x0f71, 0x0f7e,</div><div class='del'>-	0x0f80, 0x0f84,</div><div class='del'>-	0x0f86, 0x0f87,</div><div class='del'>-	0x0f8d, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fc6, 0x0fc6,</div><div class='del'>-	0x102d, 0x1030,</div><div class='del'>-	0x1032, 0x1037,</div><div class='del'>-	0x1039, 0x103a,</div><div class='del'>-	0x103d, 0x103e,</div><div class='del'>-	0x1058, 0x1059,</div><div class='del'>-	0x105e, 0x1060,</div><div class='del'>-	0x1071, 0x1074,</div><div class='del'>-	0x1082, 0x1082,</div><div class='del'>-	0x1085, 0x1086,</div><div class='del'>-	0x108d, 0x108d,</div><div class='del'>-	0x109d, 0x109d,</div><div class='del'>-	0x10fc, 0x10fc,</div><div class='del'>-	0x135d, 0x135f,</div><div class='del'>-	0x1712, 0x1714,</div><div class='del'>-	0x1732, 0x1734,</div><div class='del'>-	0x1752, 0x1753,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x17b4, 0x17b5,</div><div class='del'>-	0x17b7, 0x17bd,</div><div class='del'>-	0x17c6, 0x17c6,</div><div class='del'>-	0x17c9, 0x17d3,</div><div class='del'>-	0x17d7, 0x17d7,</div><div class='del'>-	0x17dd, 0x17dd,</div><div class='del'>-	0x180b, 0x180e,</div><div class='del'>-	0x1843, 0x1843,</div><div class='del'>-	0x1885, 0x1886,</div><div class='del'>-	0x18a9, 0x18a9,</div><div class='del'>-	0x1920, 0x1922,</div><div class='del'>-	0x1927, 0x1928,</div><div class='del'>-	0x1932, 0x1932,</div><div class='del'>-	0x1939, 0x193b,</div><div class='del'>-	0x1a17, 0x1a18,</div><div class='del'>-	0x1a1b, 0x1a1b,</div><div class='del'>-	0x1a56, 0x1a56,</div><div class='del'>-	0x1a58, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a60,</div><div class='del'>-	0x1a62, 0x1a62,</div><div class='del'>-	0x1a65, 0x1a6c,</div><div class='del'>-	0x1a73, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a7f,</div><div class='del'>-	0x1aa7, 0x1aa7,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b03,</div><div class='del'>-	0x1b34, 0x1b34,</div><div class='del'>-	0x1b36, 0x1b3a,</div><div class='del'>-	0x1b3c, 0x1b3c,</div><div class='del'>-	0x1b42, 0x1b42,</div><div class='del'>-	0x1b6b, 0x1b73,</div><div class='del'>-	0x1b80, 0x1b81,</div><div class='del'>-	0x1ba2, 0x1ba5,</div><div class='del'>-	0x1ba8, 0x1ba9,</div><div class='del'>-	0x1bab, 0x1bad,</div><div class='del'>-	0x1be6, 0x1be6,</div><div class='del'>-	0x1be8, 0x1be9,</div><div class='del'>-	0x1bed, 0x1bed,</div><div class='del'>-	0x1bef, 0x1bf1,</div><div class='del'>-	0x1c2c, 0x1c33,</div><div class='del'>-	0x1c36, 0x1c37,</div><div class='del'>-	0x1c78, 0x1c7d,</div><div class='del'>-	0x1cd0, 0x1cd2,</div><div class='del'>-	0x1cd4, 0x1ce0,</div><div class='del'>-	0x1ce2, 0x1ce8,</div><div class='del'>-	0x1ced, 0x1ced,</div><div class='del'>-	0x1cf4, 0x1cf4,</div><div class='del'>-	0x1cf8, 0x1cf9,</div><div class='del'>-	0x1d2c, 0x1d6a,</div><div class='del'>-	0x1d78, 0x1d78,</div><div class='del'>-	0x1d9b, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1dff,</div><div class='del'>-	0x1fbd, 0x1fbd,</div><div class='del'>-	0x1fbf, 0x1fc1,</div><div class='del'>-	0x1fcd, 0x1fcf,</div><div class='del'>-	0x1fdd, 0x1fdf,</div><div class='del'>-	0x1fed, 0x1fef,</div><div class='del'>-	0x1ffd, 0x1ffe,</div><div class='del'>-	0x200b, 0x200f,</div><div class='del'>-	0x2018, 0x2019,</div><div class='del'>-	0x2024, 0x2024,</div><div class='del'>-	0x2027, 0x2027,</div><div class='del'>-	0x202a, 0x202e,</div><div class='del'>-	0x2060, 0x2064,</div><div class='del'>-	0x2066, 0x206f,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2c7c, 0x2c7d,</div><div class='del'>-	0x2cef, 0x2cf1,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d7f, 0x2d7f,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0x2e2f, 0x2e2f,</div><div class='del'>-	0x3005, 0x3005,</div><div class='del'>-	0x302a, 0x302d,</div><div class='del'>-	0x3031, 0x3035,</div><div class='del'>-	0x303b, 0x303b,</div><div class='del'>-	0x3099, 0x309e,</div><div class='del'>-	0x30fc, 0x30fe,</div><div class='del'>-	0xa015, 0xa015,</div><div class='del'>-	0xa4f8, 0xa4fd,</div><div class='del'>-	0xa60c, 0xa60c,</div><div class='del'>-	0xa66f, 0xa672,</div><div class='del'>-	0xa674, 0xa67d,</div><div class='del'>-	0xa67f, 0xa67f,</div><div class='del'>-	0xa69c, 0xa69f,</div><div class='del'>-	0xa6f0, 0xa6f1,</div><div class='del'>-	0xa700, 0xa721,</div><div class='del'>-	0xa770, 0xa770,</div><div class='del'>-	0xa788, 0xa78a,</div><div class='del'>-	0xa7f8, 0xa7f9,</div><div class='del'>-	0xa802, 0xa802,</div><div class='del'>-	0xa806, 0xa806,</div><div class='del'>-	0xa80b, 0xa80b,</div><div class='del'>-	0xa825, 0xa826,</div><div class='del'>-	0xa8c4, 0xa8c5,</div><div class='del'>-	0xa8e0, 0xa8f1,</div><div class='del'>-	0xa8ff, 0xa8ff,</div><div class='del'>-	0xa926, 0xa92d,</div><div class='del'>-	0xa947, 0xa951,</div><div class='del'>-	0xa980, 0xa982,</div><div class='del'>-	0xa9b3, 0xa9b3,</div><div class='del'>-	0xa9b6, 0xa9b9,</div><div class='del'>-	0xa9bc, 0xa9bc,</div><div class='del'>-	0xa9cf, 0xa9cf,</div><div class='del'>-	0xa9e5, 0xa9e6,</div><div class='del'>-	0xaa29, 0xaa2e,</div><div class='del'>-	0xaa31, 0xaa32,</div><div class='del'>-	0xaa35, 0xaa36,</div><div class='del'>-	0xaa43, 0xaa43,</div><div class='del'>-	0xaa4c, 0xaa4c,</div><div class='del'>-	0xaa70, 0xaa70,</div><div class='del'>-	0xaa7c, 0xaa7c,</div><div class='del'>-	0xaab0, 0xaab0,</div><div class='del'>-	0xaab2, 0xaab4,</div><div class='del'>-	0xaab7, 0xaab8,</div><div class='del'>-	0xaabe, 0xaabf,</div><div class='del'>-	0xaac1, 0xaac1,</div><div class='del'>-	0xaadd, 0xaadd,</div><div class='del'>-	0xaaec, 0xaaed,</div><div class='del'>-	0xaaf3, 0xaaf4,</div><div class='del'>-	0xaaf6, 0xaaf6,</div><div class='del'>-	0xab5b, 0xab5f,</div><div class='del'>-	0xabe5, 0xabe5,</div><div class='del'>-	0xabe8, 0xabe8,</div><div class='del'>-	0xabed, 0xabed,</div><div class='del'>-	0xfb1e, 0xfb1e,</div><div class='del'>-	0xfbb2, 0xfbc1,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfe13, 0xfe13,</div><div class='del'>-	0xfe20, 0xfe2f,</div><div class='del'>-	0xfe52, 0xfe52,</div><div class='del'>-	0xfe55, 0xfe55,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff07, 0xff07,</div><div class='del'>-	0xff0e, 0xff0e,</div><div class='del'>-	0xff1a, 0xff1a,</div><div class='del'>-	0xff3e, 0xff3e,</div><div class='del'>-	0xff40, 0xff40,</div><div class='del'>-	0xff70, 0xff70,</div><div class='del'>-	0xff9e, 0xff9f,</div><div class='del'>-	0xffe3, 0xffe3,</div><div class='del'>-	0xfff9, 0xfffb,</div><div class='del'>-	0x101fd, 0x101fd,</div><div class='del'>-	0x102e0, 0x102e0,</div><div class='del'>-	0x10376, 0x1037a,</div><div class='del'>-	0x10a01, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a0f,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a3f,</div><div class='del'>-	0x10ae5, 0x10ae6,</div><div class='del'>-	0x10d24, 0x10d27,</div><div class='del'>-	0x10f46, 0x10f50,</div><div class='del'>-	0x11001, 0x11001,</div><div class='del'>-	0x11038, 0x11046,</div><div class='del'>-	0x1107f, 0x11081,</div><div class='del'>-	0x110b3, 0x110b6,</div><div class='del'>-	0x110b9, 0x110ba,</div><div class='del'>-	0x110bd, 0x110bd,</div><div class='del'>-	0x110cd, 0x110cd,</div><div class='del'>-	0x11100, 0x11102,</div><div class='del'>-	0x11127, 0x1112b,</div><div class='del'>-	0x1112d, 0x11134,</div><div class='del'>-	0x11173, 0x11173,</div><div class='del'>-	0x11180, 0x11181,</div><div class='del'>-	0x111b6, 0x111be,</div><div class='del'>-	0x111c9, 0x111cc,</div><div class='del'>-	0x1122f, 0x11231,</div><div class='del'>-	0x11234, 0x11234,</div><div class='del'>-	0x11236, 0x11237,</div><div class='del'>-	0x1123e, 0x1123e,</div><div class='del'>-	0x112df, 0x112df,</div><div class='del'>-	0x112e3, 0x112ea,</div><div class='del'>-	0x11300, 0x11301,</div><div class='del'>-	0x1133b, 0x1133c,</div><div class='del'>-	0x11340, 0x11340,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11438, 0x1143f,</div><div class='del'>-	0x11442, 0x11444,</div><div class='del'>-	0x11446, 0x11446,</div><div class='del'>-	0x1145e, 0x1145e,</div><div class='del'>-	0x114b3, 0x114b8,</div><div class='del'>-	0x114ba, 0x114ba,</div><div class='del'>-	0x114bf, 0x114c0,</div><div class='del'>-	0x114c2, 0x114c3,</div><div class='del'>-	0x115b2, 0x115b5,</div><div class='del'>-	0x115bc, 0x115bd,</div><div class='del'>-	0x115bf, 0x115c0,</div><div class='del'>-	0x115dc, 0x115dd,</div><div class='del'>-	0x11633, 0x1163a,</div><div class='del'>-	0x1163d, 0x1163d,</div><div class='del'>-	0x1163f, 0x11640,</div><div class='del'>-	0x116ab, 0x116ab,</div><div class='del'>-	0x116ad, 0x116ad,</div><div class='del'>-	0x116b0, 0x116b5,</div><div class='del'>-	0x116b7, 0x116b7,</div><div class='del'>-	0x1171d, 0x1171f,</div><div class='del'>-	0x11722, 0x11725,</div><div class='del'>-	0x11727, 0x1172b,</div><div class='del'>-	0x1182f, 0x11837,</div><div class='del'>-	0x11839, 0x1183a,</div><div class='del'>-	0x11a01, 0x11a0a,</div><div class='del'>-	0x11a33, 0x11a38,</div><div class='del'>-	0x11a3b, 0x11a3e,</div><div class='del'>-	0x11a47, 0x11a47,</div><div class='del'>-	0x11a51, 0x11a56,</div><div class='del'>-	0x11a59, 0x11a5b,</div><div class='del'>-	0x11a8a, 0x11a96,</div><div class='del'>-	0x11a98, 0x11a99,</div><div class='del'>-	0x11c30, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c3d,</div><div class='del'>-	0x11c3f, 0x11c3f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11caa, 0x11cb0,</div><div class='del'>-	0x11cb2, 0x11cb3,</div><div class='del'>-	0x11cb5, 0x11cb6,</div><div class='del'>-	0x11d31, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d45,</div><div class='del'>-	0x11d47, 0x11d47,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d95, 0x11d95,</div><div class='del'>-	0x11d97, 0x11d97,</div><div class='del'>-	0x11ef3, 0x11ef4,</div><div class='del'>-	0x16af0, 0x16af4,</div><div class='del'>-	0x16b30, 0x16b36,</div><div class='del'>-	0x16b40, 0x16b43,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x1bc9d, 0x1bc9e,</div><div class='del'>-	0x1bca0, 0x1bca3,</div><div class='del'>-	0x1d167, 0x1d169,</div><div class='del'>-	0x1d173, 0x1d182,</div><div class='del'>-	0x1d185, 0x1d18b,</div><div class='del'>-	0x1d1aa, 0x1d1ad,</div><div class='del'>-	0x1d242, 0x1d244,</div><div class='del'>-	0x1da00, 0x1da36,</div><div class='del'>-	0x1da3b, 0x1da6c,</div><div class='del'>-	0x1da75, 0x1da75,</div><div class='del'>-	0x1da84, 0x1da84,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e8d0, 0x1e8d6,</div><div class='del'>-	0x1e944, 0x1e94a,</div><div class='del'>-	0x1f3fb, 0x1f3ff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-}; /* CR_Case_Ignorable */</div><div class='del'>-</div><div class='del'>-/* 'Changes_When_Lowercased': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Changes_When_Lowercased[] = {</div><div class='del'>-	594,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00de,</div><div class='del'>-	0x0100, 0x0100,</div><div class='del'>-	0x0102, 0x0102,</div><div class='del'>-	0x0104, 0x0104,</div><div class='del'>-	0x0106, 0x0106,</div><div class='del'>-	0x0108, 0x0108,</div><div class='del'>-	0x010a, 0x010a,</div><div class='del'>-	0x010c, 0x010c,</div><div class='del'>-	0x010e, 0x010e,</div><div class='del'>-	0x0110, 0x0110,</div><div class='del'>-	0x0112, 0x0112,</div><div class='del'>-	0x0114, 0x0114,</div><div class='del'>-	0x0116, 0x0116,</div><div class='del'>-	0x0118, 0x0118,</div><div class='del'>-	0x011a, 0x011a,</div><div class='del'>-	0x011c, 0x011c,</div><div class='del'>-	0x011e, 0x011e,</div><div class='del'>-	0x0120, 0x0120,</div><div class='del'>-	0x0122, 0x0122,</div><div class='del'>-	0x0124, 0x0124,</div><div class='del'>-	0x0126, 0x0126,</div><div class='del'>-	0x0128, 0x0128,</div><div class='del'>-	0x012a, 0x012a,</div><div class='del'>-	0x012c, 0x012c,</div><div class='del'>-	0x012e, 0x012e,</div><div class='del'>-	0x0130, 0x0130,</div><div class='del'>-	0x0132, 0x0132,</div><div class='del'>-	0x0134, 0x0134,</div><div class='del'>-	0x0136, 0x0136,</div><div class='del'>-	0x0139, 0x0139,</div><div class='del'>-	0x013b, 0x013b,</div><div class='del'>-	0x013d, 0x013d,</div><div class='del'>-	0x013f, 0x013f,</div><div class='del'>-	0x0141, 0x0141,</div><div class='del'>-	0x0143, 0x0143,</div><div class='del'>-	0x0145, 0x0145,</div><div class='del'>-	0x0147, 0x0147,</div><div class='del'>-	0x014a, 0x014a,</div><div class='del'>-	0x014c, 0x014c,</div><div class='del'>-	0x014e, 0x014e,</div><div class='del'>-	0x0150, 0x0150,</div><div class='del'>-	0x0152, 0x0152,</div><div class='del'>-	0x0154, 0x0154,</div><div class='del'>-	0x0156, 0x0156,</div><div class='del'>-	0x0158, 0x0158,</div><div class='del'>-	0x015a, 0x015a,</div><div class='del'>-	0x015c, 0x015c,</div><div class='del'>-	0x015e, 0x015e,</div><div class='del'>-	0x0160, 0x0160,</div><div class='del'>-	0x0162, 0x0162,</div><div class='del'>-	0x0164, 0x0164,</div><div class='del'>-	0x0166, 0x0166,</div><div class='del'>-	0x0168, 0x0168,</div><div class='del'>-	0x016a, 0x016a,</div><div class='del'>-	0x016c, 0x016c,</div><div class='del'>-	0x016e, 0x016e,</div><div class='del'>-	0x0170, 0x0170,</div><div class='del'>-	0x0172, 0x0172,</div><div class='del'>-	0x0174, 0x0174,</div><div class='del'>-	0x0176, 0x0176,</div><div class='del'>-	0x0178, 0x0179,</div><div class='del'>-	0x017b, 0x017b,</div><div class='del'>-	0x017d, 0x017d,</div><div class='del'>-	0x0181, 0x0182,</div><div class='del'>-	0x0184, 0x0184,</div><div class='del'>-	0x0186, 0x0187,</div><div class='del'>-	0x0189, 0x018b,</div><div class='del'>-	0x018e, 0x0191,</div><div class='del'>-	0x0193, 0x0194,</div><div class='del'>-	0x0196, 0x0198,</div><div class='del'>-	0x019c, 0x019d,</div><div class='del'>-	0x019f, 0x01a0,</div><div class='del'>-	0x01a2, 0x01a2,</div><div class='del'>-	0x01a4, 0x01a4,</div><div class='del'>-	0x01a6, 0x01a7,</div><div class='del'>-	0x01a9, 0x01a9,</div><div class='del'>-	0x01ac, 0x01ac,</div><div class='del'>-	0x01ae, 0x01af,</div><div class='del'>-	0x01b1, 0x01b3,</div><div class='del'>-	0x01b5, 0x01b5,</div><div class='del'>-	0x01b7, 0x01b8,</div><div class='del'>-	0x01bc, 0x01bc,</div><div class='del'>-	0x01c4, 0x01c5,</div><div class='del'>-	0x01c7, 0x01c8,</div><div class='del'>-	0x01ca, 0x01cb,</div><div class='del'>-	0x01cd, 0x01cd,</div><div class='del'>-	0x01cf, 0x01cf,</div><div class='del'>-	0x01d1, 0x01d1,</div><div class='del'>-	0x01d3, 0x01d3,</div><div class='del'>-	0x01d5, 0x01d5,</div><div class='del'>-	0x01d7, 0x01d7,</div><div class='del'>-	0x01d9, 0x01d9,</div><div class='del'>-	0x01db, 0x01db,</div><div class='del'>-	0x01de, 0x01de,</div><div class='del'>-	0x01e0, 0x01e0,</div><div class='del'>-	0x01e2, 0x01e2,</div><div class='del'>-	0x01e4, 0x01e4,</div><div class='del'>-	0x01e6, 0x01e6,</div><div class='del'>-	0x01e8, 0x01e8,</div><div class='del'>-	0x01ea, 0x01ea,</div><div class='del'>-	0x01ec, 0x01ec,</div><div class='del'>-	0x01ee, 0x01ee,</div><div class='del'>-	0x01f1, 0x01f2,</div><div class='del'>-	0x01f4, 0x01f4,</div><div class='del'>-	0x01f6, 0x01f8,</div><div class='del'>-	0x01fa, 0x01fa,</div><div class='del'>-	0x01fc, 0x01fc,</div><div class='del'>-	0x01fe, 0x01fe,</div><div class='del'>-	0x0200, 0x0200,</div><div class='del'>-	0x0202, 0x0202,</div><div class='del'>-	0x0204, 0x0204,</div><div class='del'>-	0x0206, 0x0206,</div><div class='del'>-	0x0208, 0x0208,</div><div class='del'>-	0x020a, 0x020a,</div><div class='del'>-	0x020c, 0x020c,</div><div class='del'>-	0x020e, 0x020e,</div><div class='del'>-	0x0210, 0x0210,</div><div class='del'>-	0x0212, 0x0212,</div><div class='del'>-	0x0214, 0x0214,</div><div class='del'>-	0x0216, 0x0216,</div><div class='del'>-	0x0218, 0x0218,</div><div class='del'>-	0x021a, 0x021a,</div><div class='del'>-	0x021c, 0x021c,</div><div class='del'>-	0x021e, 0x021e,</div><div class='del'>-	0x0220, 0x0220,</div><div class='del'>-	0x0222, 0x0222,</div><div class='del'>-	0x0224, 0x0224,</div><div class='del'>-	0x0226, 0x0226,</div><div class='del'>-	0x0228, 0x0228,</div><div class='del'>-	0x022a, 0x022a,</div><div class='del'>-	0x022c, 0x022c,</div><div class='del'>-	0x022e, 0x022e,</div><div class='del'>-	0x0230, 0x0230,</div><div class='del'>-	0x0232, 0x0232,</div><div class='del'>-	0x023a, 0x023b,</div><div class='del'>-	0x023d, 0x023e,</div><div class='del'>-	0x0241, 0x0241,</div><div class='del'>-	0x0243, 0x0246,</div><div class='del'>-	0x0248, 0x0248,</div><div class='del'>-	0x024a, 0x024a,</div><div class='del'>-	0x024c, 0x024c,</div><div class='del'>-	0x024e, 0x024e,</div><div class='del'>-	0x0370, 0x0370,</div><div class='del'>-	0x0372, 0x0372,</div><div class='del'>-	0x0376, 0x0376,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x038f,</div><div class='del'>-	0x0391, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ab,</div><div class='del'>-	0x03cf, 0x03cf,</div><div class='del'>-	0x03d8, 0x03d8,</div><div class='del'>-	0x03da, 0x03da,</div><div class='del'>-	0x03dc, 0x03dc,</div><div class='del'>-	0x03de, 0x03de,</div><div class='del'>-	0x03e0, 0x03e0,</div><div class='del'>-	0x03e2, 0x03e2,</div><div class='del'>-	0x03e4, 0x03e4,</div><div class='del'>-	0x03e6, 0x03e6,</div><div class='del'>-	0x03e8, 0x03e8,</div><div class='del'>-	0x03ea, 0x03ea,</div><div class='del'>-	0x03ec, 0x03ec,</div><div class='del'>-	0x03ee, 0x03ee,</div><div class='del'>-	0x03f4, 0x03f4,</div><div class='del'>-	0x03f7, 0x03f7,</div><div class='del'>-	0x03f9, 0x03fa,</div><div class='del'>-	0x03fd, 0x042f,</div><div class='del'>-	0x0460, 0x0460,</div><div class='del'>-	0x0462, 0x0462,</div><div class='del'>-	0x0464, 0x0464,</div><div class='del'>-	0x0466, 0x0466,</div><div class='del'>-	0x0468, 0x0468,</div><div class='del'>-	0x046a, 0x046a,</div><div class='del'>-	0x046c, 0x046c,</div><div class='del'>-	0x046e, 0x046e,</div><div class='del'>-	0x0470, 0x0470,</div><div class='del'>-	0x0472, 0x0472,</div><div class='del'>-	0x0474, 0x0474,</div><div class='del'>-	0x0476, 0x0476,</div><div class='del'>-	0x0478, 0x0478,</div><div class='del'>-	0x047a, 0x047a,</div><div class='del'>-	0x047c, 0x047c,</div><div class='del'>-	0x047e, 0x047e,</div><div class='del'>-	0x0480, 0x0480,</div><div class='del'>-	0x048a, 0x048a,</div><div class='del'>-	0x048c, 0x048c,</div><div class='del'>-	0x048e, 0x048e,</div><div class='del'>-	0x0490, 0x0490,</div><div class='del'>-	0x0492, 0x0492,</div><div class='del'>-	0x0494, 0x0494,</div><div class='del'>-	0x0496, 0x0496,</div><div class='del'>-	0x0498, 0x0498,</div><div class='del'>-	0x049a, 0x049a,</div><div class='del'>-	0x049c, 0x049c,</div><div class='del'>-	0x049e, 0x049e,</div><div class='del'>-	0x04a0, 0x04a0,</div><div class='del'>-	0x04a2, 0x04a2,</div><div class='del'>-	0x04a4, 0x04a4,</div><div class='del'>-	0x04a6, 0x04a6,</div><div class='del'>-	0x04a8, 0x04a8,</div><div class='del'>-	0x04aa, 0x04aa,</div><div class='del'>-	0x04ac, 0x04ac,</div><div class='del'>-	0x04ae, 0x04ae,</div><div class='del'>-	0x04b0, 0x04b0,</div><div class='del'>-	0x04b2, 0x04b2,</div><div class='del'>-	0x04b4, 0x04b4,</div><div class='del'>-	0x04b6, 0x04b6,</div><div class='del'>-	0x04b8, 0x04b8,</div><div class='del'>-	0x04ba, 0x04ba,</div><div class='del'>-	0x04bc, 0x04bc,</div><div class='del'>-	0x04be, 0x04be,</div><div class='del'>-	0x04c0, 0x04c1,</div><div class='del'>-	0x04c3, 0x04c3,</div><div class='del'>-	0x04c5, 0x04c5,</div><div class='del'>-	0x04c7, 0x04c7,</div><div class='del'>-	0x04c9, 0x04c9,</div><div class='del'>-	0x04cb, 0x04cb,</div><div class='del'>-	0x04cd, 0x04cd,</div><div class='del'>-	0x04d0, 0x04d0,</div><div class='del'>-	0x04d2, 0x04d2,</div><div class='del'>-	0x04d4, 0x04d4,</div><div class='del'>-	0x04d6, 0x04d6,</div><div class='del'>-	0x04d8, 0x04d8,</div><div class='del'>-	0x04da, 0x04da,</div><div class='del'>-	0x04dc, 0x04dc,</div><div class='del'>-	0x04de, 0x04de,</div><div class='del'>-	0x04e0, 0x04e0,</div><div class='del'>-	0x04e2, 0x04e2,</div><div class='del'>-	0x04e4, 0x04e4,</div><div class='del'>-	0x04e6, 0x04e6,</div><div class='del'>-	0x04e8, 0x04e8,</div><div class='del'>-	0x04ea, 0x04ea,</div><div class='del'>-	0x04ec, 0x04ec,</div><div class='del'>-	0x04ee, 0x04ee,</div><div class='del'>-	0x04f0, 0x04f0,</div><div class='del'>-	0x04f2, 0x04f2,</div><div class='del'>-	0x04f4, 0x04f4,</div><div class='del'>-	0x04f6, 0x04f6,</div><div class='del'>-	0x04f8, 0x04f8,</div><div class='del'>-	0x04fa, 0x04fa,</div><div class='del'>-	0x04fc, 0x04fc,</div><div class='del'>-	0x04fe, 0x04fe,</div><div class='del'>-	0x0500, 0x0500,</div><div class='del'>-	0x0502, 0x0502,</div><div class='del'>-	0x0504, 0x0504,</div><div class='del'>-	0x0506, 0x0506,</div><div class='del'>-	0x0508, 0x0508,</div><div class='del'>-	0x050a, 0x050a,</div><div class='del'>-	0x050c, 0x050c,</div><div class='del'>-	0x050e, 0x050e,</div><div class='del'>-	0x0510, 0x0510,</div><div class='del'>-	0x0512, 0x0512,</div><div class='del'>-	0x0514, 0x0514,</div><div class='del'>-	0x0516, 0x0516,</div><div class='del'>-	0x0518, 0x0518,</div><div class='del'>-	0x051a, 0x051a,</div><div class='del'>-	0x051c, 0x051c,</div><div class='del'>-	0x051e, 0x051e,</div><div class='del'>-	0x0520, 0x0520,</div><div class='del'>-	0x0522, 0x0522,</div><div class='del'>-	0x0524, 0x0524,</div><div class='del'>-	0x0526, 0x0526,</div><div class='del'>-	0x0528, 0x0528,</div><div class='del'>-	0x052a, 0x052a,</div><div class='del'>-	0x052c, 0x052c,</div><div class='del'>-	0x052e, 0x052e,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1e00, 0x1e00,</div><div class='del'>-	0x1e02, 0x1e02,</div><div class='del'>-	0x1e04, 0x1e04,</div><div class='del'>-	0x1e06, 0x1e06,</div><div class='del'>-	0x1e08, 0x1e08,</div><div class='del'>-	0x1e0a, 0x1e0a,</div><div class='del'>-	0x1e0c, 0x1e0c,</div><div class='del'>-	0x1e0e, 0x1e0e,</div><div class='del'>-	0x1e10, 0x1e10,</div><div class='del'>-	0x1e12, 0x1e12,</div><div class='del'>-	0x1e14, 0x1e14,</div><div class='del'>-	0x1e16, 0x1e16,</div><div class='del'>-	0x1e18, 0x1e18,</div><div class='del'>-	0x1e1a, 0x1e1a,</div><div class='del'>-	0x1e1c, 0x1e1c,</div><div class='del'>-	0x1e1e, 0x1e1e,</div><div class='del'>-	0x1e20, 0x1e20,</div><div class='del'>-	0x1e22, 0x1e22,</div><div class='del'>-	0x1e24, 0x1e24,</div><div class='del'>-	0x1e26, 0x1e26,</div><div class='del'>-	0x1e28, 0x1e28,</div><div class='del'>-	0x1e2a, 0x1e2a,</div><div class='del'>-	0x1e2c, 0x1e2c,</div><div class='del'>-	0x1e2e, 0x1e2e,</div><div class='del'>-	0x1e30, 0x1e30,</div><div class='del'>-	0x1e32, 0x1e32,</div><div class='del'>-	0x1e34, 0x1e34,</div><div class='del'>-	0x1e36, 0x1e36,</div><div class='del'>-	0x1e38, 0x1e38,</div><div class='del'>-	0x1e3a, 0x1e3a,</div><div class='del'>-	0x1e3c, 0x1e3c,</div><div class='del'>-	0x1e3e, 0x1e3e,</div><div class='del'>-	0x1e40, 0x1e40,</div><div class='del'>-	0x1e42, 0x1e42,</div><div class='del'>-	0x1e44, 0x1e44,</div><div class='del'>-	0x1e46, 0x1e46,</div><div class='del'>-	0x1e48, 0x1e48,</div><div class='del'>-	0x1e4a, 0x1e4a,</div><div class='del'>-	0x1e4c, 0x1e4c,</div><div class='del'>-	0x1e4e, 0x1e4e,</div><div class='del'>-	0x1e50, 0x1e50,</div><div class='del'>-	0x1e52, 0x1e52,</div><div class='del'>-	0x1e54, 0x1e54,</div><div class='del'>-	0x1e56, 0x1e56,</div><div class='del'>-	0x1e58, 0x1e58,</div><div class='del'>-	0x1e5a, 0x1e5a,</div><div class='del'>-	0x1e5c, 0x1e5c,</div><div class='del'>-	0x1e5e, 0x1e5e,</div><div class='del'>-	0x1e60, 0x1e60,</div><div class='del'>-	0x1e62, 0x1e62,</div><div class='del'>-	0x1e64, 0x1e64,</div><div class='del'>-	0x1e66, 0x1e66,</div><div class='del'>-	0x1e68, 0x1e68,</div><div class='del'>-	0x1e6a, 0x1e6a,</div><div class='del'>-	0x1e6c, 0x1e6c,</div><div class='del'>-	0x1e6e, 0x1e6e,</div><div class='del'>-	0x1e70, 0x1e70,</div><div class='del'>-	0x1e72, 0x1e72,</div><div class='del'>-	0x1e74, 0x1e74,</div><div class='del'>-	0x1e76, 0x1e76,</div><div class='del'>-	0x1e78, 0x1e78,</div><div class='del'>-	0x1e7a, 0x1e7a,</div><div class='del'>-	0x1e7c, 0x1e7c,</div><div class='del'>-	0x1e7e, 0x1e7e,</div><div class='del'>-	0x1e80, 0x1e80,</div><div class='del'>-	0x1e82, 0x1e82,</div><div class='del'>-	0x1e84, 0x1e84,</div><div class='del'>-	0x1e86, 0x1e86,</div><div class='del'>-	0x1e88, 0x1e88,</div><div class='del'>-	0x1e8a, 0x1e8a,</div><div class='del'>-	0x1e8c, 0x1e8c,</div><div class='del'>-	0x1e8e, 0x1e8e,</div><div class='del'>-	0x1e90, 0x1e90,</div><div class='del'>-	0x1e92, 0x1e92,</div><div class='del'>-	0x1e94, 0x1e94,</div><div class='del'>-	0x1e9e, 0x1e9e,</div><div class='del'>-	0x1ea0, 0x1ea0,</div><div class='del'>-	0x1ea2, 0x1ea2,</div><div class='del'>-	0x1ea4, 0x1ea4,</div><div class='del'>-	0x1ea6, 0x1ea6,</div><div class='del'>-	0x1ea8, 0x1ea8,</div><div class='del'>-	0x1eaa, 0x1eaa,</div><div class='del'>-	0x1eac, 0x1eac,</div><div class='del'>-	0x1eae, 0x1eae,</div><div class='del'>-	0x1eb0, 0x1eb0,</div><div class='del'>-	0x1eb2, 0x1eb2,</div><div class='del'>-	0x1eb4, 0x1eb4,</div><div class='del'>-	0x1eb6, 0x1eb6,</div><div class='del'>-	0x1eb8, 0x1eb8,</div><div class='del'>-	0x1eba, 0x1eba,</div><div class='del'>-	0x1ebc, 0x1ebc,</div><div class='del'>-	0x1ebe, 0x1ebe,</div><div class='del'>-	0x1ec0, 0x1ec0,</div><div class='del'>-	0x1ec2, 0x1ec2,</div><div class='del'>-	0x1ec4, 0x1ec4,</div><div class='del'>-	0x1ec6, 0x1ec6,</div><div class='del'>-	0x1ec8, 0x1ec8,</div><div class='del'>-	0x1eca, 0x1eca,</div><div class='del'>-	0x1ecc, 0x1ecc,</div><div class='del'>-	0x1ece, 0x1ece,</div><div class='del'>-	0x1ed0, 0x1ed0,</div><div class='del'>-	0x1ed2, 0x1ed2,</div><div class='del'>-	0x1ed4, 0x1ed4,</div><div class='del'>-	0x1ed6, 0x1ed6,</div><div class='del'>-	0x1ed8, 0x1ed8,</div><div class='del'>-	0x1eda, 0x1eda,</div><div class='del'>-	0x1edc, 0x1edc,</div><div class='del'>-	0x1ede, 0x1ede,</div><div class='del'>-	0x1ee0, 0x1ee0,</div><div class='del'>-	0x1ee2, 0x1ee2,</div><div class='del'>-	0x1ee4, 0x1ee4,</div><div class='del'>-	0x1ee6, 0x1ee6,</div><div class='del'>-	0x1ee8, 0x1ee8,</div><div class='del'>-	0x1eea, 0x1eea,</div><div class='del'>-	0x1eec, 0x1eec,</div><div class='del'>-	0x1eee, 0x1eee,</div><div class='del'>-	0x1ef0, 0x1ef0,</div><div class='del'>-	0x1ef2, 0x1ef2,</div><div class='del'>-	0x1ef4, 0x1ef4,</div><div class='del'>-	0x1ef6, 0x1ef6,</div><div class='del'>-	0x1ef8, 0x1ef8,</div><div class='del'>-	0x1efa, 0x1efa,</div><div class='del'>-	0x1efc, 0x1efc,</div><div class='del'>-	0x1efe, 0x1efe,</div><div class='del'>-	0x1f08, 0x1f0f,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f28, 0x1f2f,</div><div class='del'>-	0x1f38, 0x1f3f,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f5f,</div><div class='del'>-	0x1f68, 0x1f6f,</div><div class='del'>-	0x1f88, 0x1f8f,</div><div class='del'>-	0x1f98, 0x1f9f,</div><div class='del'>-	0x1fa8, 0x1faf,</div><div class='del'>-	0x1fb8, 0x1fbc,</div><div class='del'>-	0x1fc8, 0x1fcc,</div><div class='del'>-	0x1fd8, 0x1fdb,</div><div class='del'>-	0x1fe8, 0x1fec,</div><div class='del'>-	0x1ff8, 0x1ffc,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x212a, 0x212b,</div><div class='del'>-	0x2132, 0x2132,</div><div class='del'>-	0x2160, 0x216f,</div><div class='del'>-	0x2183, 0x2183,</div><div class='del'>-	0x24b6, 0x24cf,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c60, 0x2c60,</div><div class='del'>-	0x2c62, 0x2c64,</div><div class='del'>-	0x2c67, 0x2c67,</div><div class='del'>-	0x2c69, 0x2c69,</div><div class='del'>-	0x2c6b, 0x2c6b,</div><div class='del'>-	0x2c6d, 0x2c70,</div><div class='del'>-	0x2c72, 0x2c72,</div><div class='del'>-	0x2c75, 0x2c75,</div><div class='del'>-	0x2c7e, 0x2c80,</div><div class='del'>-	0x2c82, 0x2c82,</div><div class='del'>-	0x2c84, 0x2c84,</div><div class='del'>-	0x2c86, 0x2c86,</div><div class='del'>-	0x2c88, 0x2c88,</div><div class='del'>-	0x2c8a, 0x2c8a,</div><div class='del'>-	0x2c8c, 0x2c8c,</div><div class='del'>-	0x2c8e, 0x2c8e,</div><div class='del'>-	0x2c90, 0x2c90,</div><div class='del'>-	0x2c92, 0x2c92,</div><div class='del'>-	0x2c94, 0x2c94,</div><div class='del'>-	0x2c96, 0x2c96,</div><div class='del'>-	0x2c98, 0x2c98,</div><div class='del'>-	0x2c9a, 0x2c9a,</div><div class='del'>-	0x2c9c, 0x2c9c,</div><div class='del'>-	0x2c9e, 0x2c9e,</div><div class='del'>-	0x2ca0, 0x2ca0,</div><div class='del'>-	0x2ca2, 0x2ca2,</div><div class='del'>-	0x2ca4, 0x2ca4,</div><div class='del'>-	0x2ca6, 0x2ca6,</div><div class='del'>-	0x2ca8, 0x2ca8,</div><div class='del'>-	0x2caa, 0x2caa,</div><div class='del'>-	0x2cac, 0x2cac,</div><div class='del'>-	0x2cae, 0x2cae,</div><div class='del'>-	0x2cb0, 0x2cb0,</div><div class='del'>-	0x2cb2, 0x2cb2,</div><div class='del'>-	0x2cb4, 0x2cb4,</div><div class='del'>-	0x2cb6, 0x2cb6,</div><div class='del'>-	0x2cb8, 0x2cb8,</div><div class='del'>-	0x2cba, 0x2cba,</div><div class='del'>-	0x2cbc, 0x2cbc,</div><div class='del'>-	0x2cbe, 0x2cbe,</div><div class='del'>-	0x2cc0, 0x2cc0,</div><div class='del'>-	0x2cc2, 0x2cc2,</div><div class='del'>-	0x2cc4, 0x2cc4,</div><div class='del'>-	0x2cc6, 0x2cc6,</div><div class='del'>-	0x2cc8, 0x2cc8,</div><div class='del'>-	0x2cca, 0x2cca,</div><div class='del'>-	0x2ccc, 0x2ccc,</div><div class='del'>-	0x2cce, 0x2cce,</div><div class='del'>-	0x2cd0, 0x2cd0,</div><div class='del'>-	0x2cd2, 0x2cd2,</div><div class='del'>-	0x2cd4, 0x2cd4,</div><div class='del'>-	0x2cd6, 0x2cd6,</div><div class='del'>-	0x2cd8, 0x2cd8,</div><div class='del'>-	0x2cda, 0x2cda,</div><div class='del'>-	0x2cdc, 0x2cdc,</div><div class='del'>-	0x2cde, 0x2cde,</div><div class='del'>-	0x2ce0, 0x2ce0,</div><div class='del'>-	0x2ce2, 0x2ce2,</div><div class='del'>-	0x2ceb, 0x2ceb,</div><div class='del'>-	0x2ced, 0x2ced,</div><div class='del'>-	0x2cf2, 0x2cf2,</div><div class='del'>-	0xa640, 0xa640,</div><div class='del'>-	0xa642, 0xa642,</div><div class='del'>-	0xa644, 0xa644,</div><div class='del'>-	0xa646, 0xa646,</div><div class='del'>-	0xa648, 0xa648,</div><div class='del'>-	0xa64a, 0xa64a,</div><div class='del'>-	0xa64c, 0xa64c,</div><div class='del'>-	0xa64e, 0xa64e,</div><div class='del'>-	0xa650, 0xa650,</div><div class='del'>-	0xa652, 0xa652,</div><div class='del'>-	0xa654, 0xa654,</div><div class='del'>-	0xa656, 0xa656,</div><div class='del'>-	0xa658, 0xa658,</div><div class='del'>-	0xa65a, 0xa65a,</div><div class='del'>-	0xa65c, 0xa65c,</div><div class='del'>-	0xa65e, 0xa65e,</div><div class='del'>-	0xa660, 0xa660,</div><div class='del'>-	0xa662, 0xa662,</div><div class='del'>-	0xa664, 0xa664,</div><div class='del'>-	0xa666, 0xa666,</div><div class='del'>-	0xa668, 0xa668,</div><div class='del'>-	0xa66a, 0xa66a,</div><div class='del'>-	0xa66c, 0xa66c,</div><div class='del'>-	0xa680, 0xa680,</div><div class='del'>-	0xa682, 0xa682,</div><div class='del'>-	0xa684, 0xa684,</div><div class='del'>-	0xa686, 0xa686,</div><div class='del'>-	0xa688, 0xa688,</div><div class='del'>-	0xa68a, 0xa68a,</div><div class='del'>-	0xa68c, 0xa68c,</div><div class='del'>-	0xa68e, 0xa68e,</div><div class='del'>-	0xa690, 0xa690,</div><div class='del'>-	0xa692, 0xa692,</div><div class='del'>-	0xa694, 0xa694,</div><div class='del'>-	0xa696, 0xa696,</div><div class='del'>-	0xa698, 0xa698,</div><div class='del'>-	0xa69a, 0xa69a,</div><div class='del'>-	0xa722, 0xa722,</div><div class='del'>-	0xa724, 0xa724,</div><div class='del'>-	0xa726, 0xa726,</div><div class='del'>-	0xa728, 0xa728,</div><div class='del'>-	0xa72a, 0xa72a,</div><div class='del'>-	0xa72c, 0xa72c,</div><div class='del'>-	0xa72e, 0xa72e,</div><div class='del'>-	0xa732, 0xa732,</div><div class='del'>-	0xa734, 0xa734,</div><div class='del'>-	0xa736, 0xa736,</div><div class='del'>-	0xa738, 0xa738,</div><div class='del'>-	0xa73a, 0xa73a,</div><div class='del'>-	0xa73c, 0xa73c,</div><div class='del'>-	0xa73e, 0xa73e,</div><div class='del'>-	0xa740, 0xa740,</div><div class='del'>-	0xa742, 0xa742,</div><div class='del'>-	0xa744, 0xa744,</div><div class='del'>-	0xa746, 0xa746,</div><div class='del'>-	0xa748, 0xa748,</div><div class='del'>-	0xa74a, 0xa74a,</div><div class='del'>-	0xa74c, 0xa74c,</div><div class='del'>-	0xa74e, 0xa74e,</div><div class='del'>-	0xa750, 0xa750,</div><div class='del'>-	0xa752, 0xa752,</div><div class='del'>-	0xa754, 0xa754,</div><div class='del'>-	0xa756, 0xa756,</div><div class='del'>-	0xa758, 0xa758,</div><div class='del'>-	0xa75a, 0xa75a,</div><div class='del'>-	0xa75c, 0xa75c,</div><div class='del'>-	0xa75e, 0xa75e,</div><div class='del'>-	0xa760, 0xa760,</div><div class='del'>-	0xa762, 0xa762,</div><div class='del'>-	0xa764, 0xa764,</div><div class='del'>-	0xa766, 0xa766,</div><div class='del'>-	0xa768, 0xa768,</div><div class='del'>-	0xa76a, 0xa76a,</div><div class='del'>-	0xa76c, 0xa76c,</div><div class='del'>-	0xa76e, 0xa76e,</div><div class='del'>-	0xa779, 0xa779,</div><div class='del'>-	0xa77b, 0xa77b,</div><div class='del'>-	0xa77d, 0xa77e,</div><div class='del'>-	0xa780, 0xa780,</div><div class='del'>-	0xa782, 0xa782,</div><div class='del'>-	0xa784, 0xa784,</div><div class='del'>-	0xa786, 0xa786,</div><div class='del'>-	0xa78b, 0xa78b,</div><div class='del'>-	0xa78d, 0xa78d,</div><div class='del'>-	0xa790, 0xa790,</div><div class='del'>-	0xa792, 0xa792,</div><div class='del'>-	0xa796, 0xa796,</div><div class='del'>-	0xa798, 0xa798,</div><div class='del'>-	0xa79a, 0xa79a,</div><div class='del'>-	0xa79c, 0xa79c,</div><div class='del'>-	0xa79e, 0xa79e,</div><div class='del'>-	0xa7a0, 0xa7a0,</div><div class='del'>-	0xa7a2, 0xa7a2,</div><div class='del'>-	0xa7a4, 0xa7a4,</div><div class='del'>-	0xa7a6, 0xa7a6,</div><div class='del'>-	0xa7a8, 0xa7a8,</div><div class='del'>-	0xa7aa, 0xa7ae,</div><div class='del'>-	0xa7b0, 0xa7b4,</div><div class='del'>-	0xa7b6, 0xa7b6,</div><div class='del'>-	0xa7b8, 0xa7b8,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0x10400, 0x10427,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x118a0, 0x118bf,</div><div class='del'>-	0x16e40, 0x16e5f,</div><div class='del'>-	0x1e900, 0x1e921,</div><div class='del'>-}; /* CR_Changes_When_Lowercased */</div><div class='del'>-</div><div class='del'>-/* 'Changes_When_Uppercased': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Changes_When_Uppercased[] = {</div><div class='del'>-	611,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00df, 0x00f6,</div><div class='del'>-	0x00f8, 0x00ff,</div><div class='del'>-	0x0101, 0x0101,</div><div class='del'>-	0x0103, 0x0103,</div><div class='del'>-	0x0105, 0x0105,</div><div class='del'>-	0x0107, 0x0107,</div><div class='del'>-	0x0109, 0x0109,</div><div class='del'>-	0x010b, 0x010b,</div><div class='del'>-	0x010d, 0x010d,</div><div class='del'>-	0x010f, 0x010f,</div><div class='del'>-	0x0111, 0x0111,</div><div class='del'>-	0x0113, 0x0113,</div><div class='del'>-	0x0115, 0x0115,</div><div class='del'>-	0x0117, 0x0117,</div><div class='del'>-	0x0119, 0x0119,</div><div class='del'>-	0x011b, 0x011b,</div><div class='del'>-	0x011d, 0x011d,</div><div class='del'>-	0x011f, 0x011f,</div><div class='del'>-	0x0121, 0x0121,</div><div class='del'>-	0x0123, 0x0123,</div><div class='del'>-	0x0125, 0x0125,</div><div class='del'>-	0x0127, 0x0127,</div><div class='del'>-	0x0129, 0x0129,</div><div class='del'>-	0x012b, 0x012b,</div><div class='del'>-	0x012d, 0x012d,</div><div class='del'>-	0x012f, 0x012f,</div><div class='del'>-	0x0131, 0x0131,</div><div class='del'>-	0x0133, 0x0133,</div><div class='del'>-	0x0135, 0x0135,</div><div class='del'>-	0x0137, 0x0137,</div><div class='del'>-	0x013a, 0x013a,</div><div class='del'>-	0x013c, 0x013c,</div><div class='del'>-	0x013e, 0x013e,</div><div class='del'>-	0x0140, 0x0140,</div><div class='del'>-	0x0142, 0x0142,</div><div class='del'>-	0x0144, 0x0144,</div><div class='del'>-	0x0146, 0x0146,</div><div class='del'>-	0x0148, 0x0149,</div><div class='del'>-	0x014b, 0x014b,</div><div class='del'>-	0x014d, 0x014d,</div><div class='del'>-	0x014f, 0x014f,</div><div class='del'>-	0x0151, 0x0151,</div><div class='del'>-	0x0153, 0x0153,</div><div class='del'>-	0x0155, 0x0155,</div><div class='del'>-	0x0157, 0x0157,</div><div class='del'>-	0x0159, 0x0159,</div><div class='del'>-	0x015b, 0x015b,</div><div class='del'>-	0x015d, 0x015d,</div><div class='del'>-	0x015f, 0x015f,</div><div class='del'>-	0x0161, 0x0161,</div><div class='del'>-	0x0163, 0x0163,</div><div class='del'>-	0x0165, 0x0165,</div><div class='del'>-	0x0167, 0x0167,</div><div class='del'>-	0x0169, 0x0169,</div><div class='del'>-	0x016b, 0x016b,</div><div class='del'>-	0x016d, 0x016d,</div><div class='del'>-	0x016f, 0x016f,</div><div class='del'>-	0x0171, 0x0171,</div><div class='del'>-	0x0173, 0x0173,</div><div class='del'>-	0x0175, 0x0175,</div><div class='del'>-	0x0177, 0x0177,</div><div class='del'>-	0x017a, 0x017a,</div><div class='del'>-	0x017c, 0x017c,</div><div class='del'>-	0x017e, 0x0180,</div><div class='del'>-	0x0183, 0x0183,</div><div class='del'>-	0x0185, 0x0185,</div><div class='del'>-	0x0188, 0x0188,</div><div class='del'>-	0x018c, 0x018c,</div><div class='del'>-	0x0192, 0x0192,</div><div class='del'>-	0x0195, 0x0195,</div><div class='del'>-	0x0199, 0x019a,</div><div class='del'>-	0x019e, 0x019e,</div><div class='del'>-	0x01a1, 0x01a1,</div><div class='del'>-	0x01a3, 0x01a3,</div><div class='del'>-	0x01a5, 0x01a5,</div><div class='del'>-	0x01a8, 0x01a8,</div><div class='del'>-	0x01ad, 0x01ad,</div><div class='del'>-	0x01b0, 0x01b0,</div><div class='del'>-	0x01b4, 0x01b4,</div><div class='del'>-	0x01b6, 0x01b6,</div><div class='del'>-	0x01b9, 0x01b9,</div><div class='del'>-	0x01bd, 0x01bd,</div><div class='del'>-	0x01bf, 0x01bf,</div><div class='del'>-	0x01c5, 0x01c6,</div><div class='del'>-	0x01c8, 0x01c9,</div><div class='del'>-	0x01cb, 0x01cc,</div><div class='del'>-	0x01ce, 0x01ce,</div><div class='del'>-	0x01d0, 0x01d0,</div><div class='del'>-	0x01d2, 0x01d2,</div><div class='del'>-	0x01d4, 0x01d4,</div><div class='del'>-	0x01d6, 0x01d6,</div><div class='del'>-	0x01d8, 0x01d8,</div><div class='del'>-	0x01da, 0x01da,</div><div class='del'>-	0x01dc, 0x01dd,</div><div class='del'>-	0x01df, 0x01df,</div><div class='del'>-	0x01e1, 0x01e1,</div><div class='del'>-	0x01e3, 0x01e3,</div><div class='del'>-	0x01e5, 0x01e5,</div><div class='del'>-	0x01e7, 0x01e7,</div><div class='del'>-	0x01e9, 0x01e9,</div><div class='del'>-	0x01eb, 0x01eb,</div><div class='del'>-	0x01ed, 0x01ed,</div><div class='del'>-	0x01ef, 0x01f0,</div><div class='del'>-	0x01f2, 0x01f3,</div><div class='del'>-	0x01f5, 0x01f5,</div><div class='del'>-	0x01f9, 0x01f9,</div><div class='del'>-	0x01fb, 0x01fb,</div><div class='del'>-	0x01fd, 0x01fd,</div><div class='del'>-	0x01ff, 0x01ff,</div><div class='del'>-	0x0201, 0x0201,</div><div class='del'>-	0x0203, 0x0203,</div><div class='del'>-	0x0205, 0x0205,</div><div class='del'>-	0x0207, 0x0207,</div><div class='del'>-	0x0209, 0x0209,</div><div class='del'>-	0x020b, 0x020b,</div><div class='del'>-	0x020d, 0x020d,</div><div class='del'>-	0x020f, 0x020f,</div><div class='del'>-	0x0211, 0x0211,</div><div class='del'>-	0x0213, 0x0213,</div><div class='del'>-	0x0215, 0x0215,</div><div class='del'>-	0x0217, 0x0217,</div><div class='del'>-	0x0219, 0x0219,</div><div class='del'>-	0x021b, 0x021b,</div><div class='del'>-	0x021d, 0x021d,</div><div class='del'>-	0x021f, 0x021f,</div><div class='del'>-	0x0223, 0x0223,</div><div class='del'>-	0x0225, 0x0225,</div><div class='del'>-	0x0227, 0x0227,</div><div class='del'>-	0x0229, 0x0229,</div><div class='del'>-	0x022b, 0x022b,</div><div class='del'>-	0x022d, 0x022d,</div><div class='del'>-	0x022f, 0x022f,</div><div class='del'>-	0x0231, 0x0231,</div><div class='del'>-	0x0233, 0x0233,</div><div class='del'>-	0x023c, 0x023c,</div><div class='del'>-	0x023f, 0x0240,</div><div class='del'>-	0x0242, 0x0242,</div><div class='del'>-	0x0247, 0x0247,</div><div class='del'>-	0x0249, 0x0249,</div><div class='del'>-	0x024b, 0x024b,</div><div class='del'>-	0x024d, 0x024d,</div><div class='del'>-	0x024f, 0x0254,</div><div class='del'>-	0x0256, 0x0257,</div><div class='del'>-	0x0259, 0x0259,</div><div class='del'>-	0x025b, 0x025c,</div><div class='del'>-	0x0260, 0x0261,</div><div class='del'>-	0x0263, 0x0263,</div><div class='del'>-	0x0265, 0x0266,</div><div class='del'>-	0x0268, 0x026c,</div><div class='del'>-	0x026f, 0x026f,</div><div class='del'>-	0x0271, 0x0272,</div><div class='del'>-	0x0275, 0x0275,</div><div class='del'>-	0x027d, 0x027d,</div><div class='del'>-	0x0280, 0x0280,</div><div class='del'>-	0x0283, 0x0283,</div><div class='del'>-	0x0287, 0x028c,</div><div class='del'>-	0x0292, 0x0292,</div><div class='del'>-	0x029d, 0x029e,</div><div class='del'>-	0x0345, 0x0345,</div><div class='del'>-	0x0371, 0x0371,</div><div class='del'>-	0x0373, 0x0373,</div><div class='del'>-	0x0377, 0x0377,</div><div class='del'>-	0x037b, 0x037d,</div><div class='del'>-	0x0390, 0x0390,</div><div class='del'>-	0x03ac, 0x03ce,</div><div class='del'>-	0x03d0, 0x03d1,</div><div class='del'>-	0x03d5, 0x03d7,</div><div class='del'>-	0x03d9, 0x03d9,</div><div class='del'>-	0x03db, 0x03db,</div><div class='del'>-	0x03dd, 0x03dd,</div><div class='del'>-	0x03df, 0x03df,</div><div class='del'>-	0x03e1, 0x03e1,</div><div class='del'>-	0x03e3, 0x03e3,</div><div class='del'>-	0x03e5, 0x03e5,</div><div class='del'>-	0x03e7, 0x03e7,</div><div class='del'>-	0x03e9, 0x03e9,</div><div class='del'>-	0x03eb, 0x03eb,</div><div class='del'>-	0x03ed, 0x03ed,</div><div class='del'>-	0x03ef, 0x03f3,</div><div class='del'>-	0x03f5, 0x03f5,</div><div class='del'>-	0x03f8, 0x03f8,</div><div class='del'>-	0x03fb, 0x03fb,</div><div class='del'>-	0x0430, 0x045f,</div><div class='del'>-	0x0461, 0x0461,</div><div class='del'>-	0x0463, 0x0463,</div><div class='del'>-	0x0465, 0x0465,</div><div class='del'>-	0x0467, 0x0467,</div><div class='del'>-	0x0469, 0x0469,</div><div class='del'>-	0x046b, 0x046b,</div><div class='del'>-	0x046d, 0x046d,</div><div class='del'>-	0x046f, 0x046f,</div><div class='del'>-	0x0471, 0x0471,</div><div class='del'>-	0x0473, 0x0473,</div><div class='del'>-	0x0475, 0x0475,</div><div class='del'>-	0x0477, 0x0477,</div><div class='del'>-	0x0479, 0x0479,</div><div class='del'>-	0x047b, 0x047b,</div><div class='del'>-	0x047d, 0x047d,</div><div class='del'>-	0x047f, 0x047f,</div><div class='del'>-	0x0481, 0x0481,</div><div class='del'>-	0x048b, 0x048b,</div><div class='del'>-	0x048d, 0x048d,</div><div class='del'>-	0x048f, 0x048f,</div><div class='del'>-	0x0491, 0x0491,</div><div class='del'>-	0x0493, 0x0493,</div><div class='del'>-	0x0495, 0x0495,</div><div class='del'>-	0x0497, 0x0497,</div><div class='del'>-	0x0499, 0x0499,</div><div class='del'>-	0x049b, 0x049b,</div><div class='del'>-	0x049d, 0x049d,</div><div class='del'>-	0x049f, 0x049f,</div><div class='del'>-	0x04a1, 0x04a1,</div><div class='del'>-	0x04a3, 0x04a3,</div><div class='del'>-	0x04a5, 0x04a5,</div><div class='del'>-	0x04a7, 0x04a7,</div><div class='del'>-	0x04a9, 0x04a9,</div><div class='del'>-	0x04ab, 0x04ab,</div><div class='del'>-	0x04ad, 0x04ad,</div><div class='del'>-	0x04af, 0x04af,</div><div class='del'>-	0x04b1, 0x04b1,</div><div class='del'>-	0x04b3, 0x04b3,</div><div class='del'>-	0x04b5, 0x04b5,</div><div class='del'>-	0x04b7, 0x04b7,</div><div class='del'>-	0x04b9, 0x04b9,</div><div class='del'>-	0x04bb, 0x04bb,</div><div class='del'>-	0x04bd, 0x04bd,</div><div class='del'>-	0x04bf, 0x04bf,</div><div class='del'>-	0x04c2, 0x04c2,</div><div class='del'>-	0x04c4, 0x04c4,</div><div class='del'>-	0x04c6, 0x04c6,</div><div class='del'>-	0x04c8, 0x04c8,</div><div class='del'>-	0x04ca, 0x04ca,</div><div class='del'>-	0x04cc, 0x04cc,</div><div class='del'>-	0x04ce, 0x04cf,</div><div class='del'>-	0x04d1, 0x04d1,</div><div class='del'>-	0x04d3, 0x04d3,</div><div class='del'>-	0x04d5, 0x04d5,</div><div class='del'>-	0x04d7, 0x04d7,</div><div class='del'>-	0x04d9, 0x04d9,</div><div class='del'>-	0x04db, 0x04db,</div><div class='del'>-	0x04dd, 0x04dd,</div><div class='del'>-	0x04df, 0x04df,</div><div class='del'>-	0x04e1, 0x04e1,</div><div class='del'>-	0x04e3, 0x04e3,</div><div class='del'>-	0x04e5, 0x04e5,</div><div class='del'>-	0x04e7, 0x04e7,</div><div class='del'>-	0x04e9, 0x04e9,</div><div class='del'>-	0x04eb, 0x04eb,</div><div class='del'>-	0x04ed, 0x04ed,</div><div class='del'>-	0x04ef, 0x04ef,</div><div class='del'>-	0x04f1, 0x04f1,</div><div class='del'>-	0x04f3, 0x04f3,</div><div class='del'>-	0x04f5, 0x04f5,</div><div class='del'>-	0x04f7, 0x04f7,</div><div class='del'>-	0x04f9, 0x04f9,</div><div class='del'>-	0x04fb, 0x04fb,</div><div class='del'>-	0x04fd, 0x04fd,</div><div class='del'>-	0x04ff, 0x04ff,</div><div class='del'>-	0x0501, 0x0501,</div><div class='del'>-	0x0503, 0x0503,</div><div class='del'>-	0x0505, 0x0505,</div><div class='del'>-	0x0507, 0x0507,</div><div class='del'>-	0x0509, 0x0509,</div><div class='del'>-	0x050b, 0x050b,</div><div class='del'>-	0x050d, 0x050d,</div><div class='del'>-	0x050f, 0x050f,</div><div class='del'>-	0x0511, 0x0511,</div><div class='del'>-	0x0513, 0x0513,</div><div class='del'>-	0x0515, 0x0515,</div><div class='del'>-	0x0517, 0x0517,</div><div class='del'>-	0x0519, 0x0519,</div><div class='del'>-	0x051b, 0x051b,</div><div class='del'>-	0x051d, 0x051d,</div><div class='del'>-	0x051f, 0x051f,</div><div class='del'>-	0x0521, 0x0521,</div><div class='del'>-	0x0523, 0x0523,</div><div class='del'>-	0x0525, 0x0525,</div><div class='del'>-	0x0527, 0x0527,</div><div class='del'>-	0x0529, 0x0529,</div><div class='del'>-	0x052b, 0x052b,</div><div class='del'>-	0x052d, 0x052d,</div><div class='del'>-	0x052f, 0x052f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fd, 0x10ff,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1d79, 0x1d79,</div><div class='del'>-	0x1d7d, 0x1d7d,</div><div class='del'>-	0x1e01, 0x1e01,</div><div class='del'>-	0x1e03, 0x1e03,</div><div class='del'>-	0x1e05, 0x1e05,</div><div class='del'>-	0x1e07, 0x1e07,</div><div class='del'>-	0x1e09, 0x1e09,</div><div class='del'>-	0x1e0b, 0x1e0b,</div><div class='del'>-	0x1e0d, 0x1e0d,</div><div class='del'>-	0x1e0f, 0x1e0f,</div><div class='del'>-	0x1e11, 0x1e11,</div><div class='del'>-	0x1e13, 0x1e13,</div><div class='del'>-	0x1e15, 0x1e15,</div><div class='del'>-	0x1e17, 0x1e17,</div><div class='del'>-	0x1e19, 0x1e19,</div><div class='del'>-	0x1e1b, 0x1e1b,</div><div class='del'>-	0x1e1d, 0x1e1d,</div><div class='del'>-	0x1e1f, 0x1e1f,</div><div class='del'>-	0x1e21, 0x1e21,</div><div class='del'>-	0x1e23, 0x1e23,</div><div class='del'>-	0x1e25, 0x1e25,</div><div class='del'>-	0x1e27, 0x1e27,</div><div class='del'>-	0x1e29, 0x1e29,</div><div class='del'>-	0x1e2b, 0x1e2b,</div><div class='del'>-	0x1e2d, 0x1e2d,</div><div class='del'>-	0x1e2f, 0x1e2f,</div><div class='del'>-	0x1e31, 0x1e31,</div><div class='del'>-	0x1e33, 0x1e33,</div><div class='del'>-	0x1e35, 0x1e35,</div><div class='del'>-	0x1e37, 0x1e37,</div><div class='del'>-	0x1e39, 0x1e39,</div><div class='del'>-	0x1e3b, 0x1e3b,</div><div class='del'>-	0x1e3d, 0x1e3d,</div><div class='del'>-	0x1e3f, 0x1e3f,</div><div class='del'>-	0x1e41, 0x1e41,</div><div class='del'>-	0x1e43, 0x1e43,</div><div class='del'>-	0x1e45, 0x1e45,</div><div class='del'>-	0x1e47, 0x1e47,</div><div class='del'>-	0x1e49, 0x1e49,</div><div class='del'>-	0x1e4b, 0x1e4b,</div><div class='del'>-	0x1e4d, 0x1e4d,</div><div class='del'>-	0x1e4f, 0x1e4f,</div><div class='del'>-	0x1e51, 0x1e51,</div><div class='del'>-	0x1e53, 0x1e53,</div><div class='del'>-	0x1e55, 0x1e55,</div><div class='del'>-	0x1e57, 0x1e57,</div><div class='del'>-	0x1e59, 0x1e59,</div><div class='del'>-	0x1e5b, 0x1e5b,</div><div class='del'>-	0x1e5d, 0x1e5d,</div><div class='del'>-	0x1e5f, 0x1e5f,</div><div class='del'>-	0x1e61, 0x1e61,</div><div class='del'>-	0x1e63, 0x1e63,</div><div class='del'>-	0x1e65, 0x1e65,</div><div class='del'>-	0x1e67, 0x1e67,</div><div class='del'>-	0x1e69, 0x1e69,</div><div class='del'>-	0x1e6b, 0x1e6b,</div><div class='del'>-	0x1e6d, 0x1e6d,</div><div class='del'>-	0x1e6f, 0x1e6f,</div><div class='del'>-	0x1e71, 0x1e71,</div><div class='del'>-	0x1e73, 0x1e73,</div><div class='del'>-	0x1e75, 0x1e75,</div><div class='del'>-	0x1e77, 0x1e77,</div><div class='del'>-	0x1e79, 0x1e79,</div><div class='del'>-	0x1e7b, 0x1e7b,</div><div class='del'>-	0x1e7d, 0x1e7d,</div><div class='del'>-	0x1e7f, 0x1e7f,</div><div class='del'>-	0x1e81, 0x1e81,</div><div class='del'>-	0x1e83, 0x1e83,</div><div class='del'>-	0x1e85, 0x1e85,</div><div class='del'>-	0x1e87, 0x1e87,</div><div class='del'>-	0x1e89, 0x1e89,</div><div class='del'>-	0x1e8b, 0x1e8b,</div><div class='del'>-	0x1e8d, 0x1e8d,</div><div class='del'>-	0x1e8f, 0x1e8f,</div><div class='del'>-	0x1e91, 0x1e91,</div><div class='del'>-	0x1e93, 0x1e93,</div><div class='del'>-	0x1e95, 0x1e9b,</div><div class='del'>-	0x1ea1, 0x1ea1,</div><div class='del'>-	0x1ea3, 0x1ea3,</div><div class='del'>-	0x1ea5, 0x1ea5,</div><div class='del'>-	0x1ea7, 0x1ea7,</div><div class='del'>-	0x1ea9, 0x1ea9,</div><div class='del'>-	0x1eab, 0x1eab,</div><div class='del'>-	0x1ead, 0x1ead,</div><div class='del'>-	0x1eaf, 0x1eaf,</div><div class='del'>-	0x1eb1, 0x1eb1,</div><div class='del'>-	0x1eb3, 0x1eb3,</div><div class='del'>-	0x1eb5, 0x1eb5,</div><div class='del'>-	0x1eb7, 0x1eb7,</div><div class='del'>-	0x1eb9, 0x1eb9,</div><div class='del'>-	0x1ebb, 0x1ebb,</div><div class='del'>-	0x1ebd, 0x1ebd,</div><div class='del'>-	0x1ebf, 0x1ebf,</div><div class='del'>-	0x1ec1, 0x1ec1,</div><div class='del'>-	0x1ec3, 0x1ec3,</div><div class='del'>-	0x1ec5, 0x1ec5,</div><div class='del'>-	0x1ec7, 0x1ec7,</div><div class='del'>-	0x1ec9, 0x1ec9,</div><div class='del'>-	0x1ecb, 0x1ecb,</div><div class='del'>-	0x1ecd, 0x1ecd,</div><div class='del'>-	0x1ecf, 0x1ecf,</div><div class='del'>-	0x1ed1, 0x1ed1,</div><div class='del'>-	0x1ed3, 0x1ed3,</div><div class='del'>-	0x1ed5, 0x1ed5,</div><div class='del'>-	0x1ed7, 0x1ed7,</div><div class='del'>-	0x1ed9, 0x1ed9,</div><div class='del'>-	0x1edb, 0x1edb,</div><div class='del'>-	0x1edd, 0x1edd,</div><div class='del'>-	0x1edf, 0x1edf,</div><div class='del'>-	0x1ee1, 0x1ee1,</div><div class='del'>-	0x1ee3, 0x1ee3,</div><div class='del'>-	0x1ee5, 0x1ee5,</div><div class='del'>-	0x1ee7, 0x1ee7,</div><div class='del'>-	0x1ee9, 0x1ee9,</div><div class='del'>-	0x1eeb, 0x1eeb,</div><div class='del'>-	0x1eed, 0x1eed,</div><div class='del'>-	0x1eef, 0x1eef,</div><div class='del'>-	0x1ef1, 0x1ef1,</div><div class='del'>-	0x1ef3, 0x1ef3,</div><div class='del'>-	0x1ef5, 0x1ef5,</div><div class='del'>-	0x1ef7, 0x1ef7,</div><div class='del'>-	0x1ef9, 0x1ef9,</div><div class='del'>-	0x1efb, 0x1efb,</div><div class='del'>-	0x1efd, 0x1efd,</div><div class='del'>-	0x1eff, 0x1f07,</div><div class='del'>-	0x1f10, 0x1f15,</div><div class='del'>-	0x1f20, 0x1f27,</div><div class='del'>-	0x1f30, 0x1f37,</div><div class='del'>-	0x1f40, 0x1f45,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f60, 0x1f67,</div><div class='del'>-	0x1f70, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fb7,</div><div class='del'>-	0x1fbc, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fc7,</div><div class='del'>-	0x1fcc, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fd7,</div><div class='del'>-	0x1fe0, 0x1fe7,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ff7,</div><div class='del'>-	0x1ffc, 0x1ffc,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2170, 0x217f,</div><div class='del'>-	0x2184, 0x2184,</div><div class='del'>-	0x24d0, 0x24e9,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c61, 0x2c61,</div><div class='del'>-	0x2c65, 0x2c66,</div><div class='del'>-	0x2c68, 0x2c68,</div><div class='del'>-	0x2c6a, 0x2c6a,</div><div class='del'>-	0x2c6c, 0x2c6c,</div><div class='del'>-	0x2c73, 0x2c73,</div><div class='del'>-	0x2c76, 0x2c76,</div><div class='del'>-	0x2c81, 0x2c81,</div><div class='del'>-	0x2c83, 0x2c83,</div><div class='del'>-	0x2c85, 0x2c85,</div><div class='del'>-	0x2c87, 0x2c87,</div><div class='del'>-	0x2c89, 0x2c89,</div><div class='del'>-	0x2c8b, 0x2c8b,</div><div class='del'>-	0x2c8d, 0x2c8d,</div><div class='del'>-	0x2c8f, 0x2c8f,</div><div class='del'>-	0x2c91, 0x2c91,</div><div class='del'>-	0x2c93, 0x2c93,</div><div class='del'>-	0x2c95, 0x2c95,</div><div class='del'>-	0x2c97, 0x2c97,</div><div class='del'>-	0x2c99, 0x2c99,</div><div class='del'>-	0x2c9b, 0x2c9b,</div><div class='del'>-	0x2c9d, 0x2c9d,</div><div class='del'>-	0x2c9f, 0x2c9f,</div><div class='del'>-	0x2ca1, 0x2ca1,</div><div class='del'>-	0x2ca3, 0x2ca3,</div><div class='del'>-	0x2ca5, 0x2ca5,</div><div class='del'>-	0x2ca7, 0x2ca7,</div><div class='del'>-	0x2ca9, 0x2ca9,</div><div class='del'>-	0x2cab, 0x2cab,</div><div class='del'>-	0x2cad, 0x2cad,</div><div class='del'>-	0x2caf, 0x2caf,</div><div class='del'>-	0x2cb1, 0x2cb1,</div><div class='del'>-	0x2cb3, 0x2cb3,</div><div class='del'>-	0x2cb5, 0x2cb5,</div><div class='del'>-	0x2cb7, 0x2cb7,</div><div class='del'>-	0x2cb9, 0x2cb9,</div><div class='del'>-	0x2cbb, 0x2cbb,</div><div class='del'>-	0x2cbd, 0x2cbd,</div><div class='del'>-	0x2cbf, 0x2cbf,</div><div class='del'>-	0x2cc1, 0x2cc1,</div><div class='del'>-	0x2cc3, 0x2cc3,</div><div class='del'>-	0x2cc5, 0x2cc5,</div><div class='del'>-	0x2cc7, 0x2cc7,</div><div class='del'>-	0x2cc9, 0x2cc9,</div><div class='del'>-	0x2ccb, 0x2ccb,</div><div class='del'>-	0x2ccd, 0x2ccd,</div><div class='del'>-	0x2ccf, 0x2ccf,</div><div class='del'>-	0x2cd1, 0x2cd1,</div><div class='del'>-	0x2cd3, 0x2cd3,</div><div class='del'>-	0x2cd5, 0x2cd5,</div><div class='del'>-	0x2cd7, 0x2cd7,</div><div class='del'>-	0x2cd9, 0x2cd9,</div><div class='del'>-	0x2cdb, 0x2cdb,</div><div class='del'>-	0x2cdd, 0x2cdd,</div><div class='del'>-	0x2cdf, 0x2cdf,</div><div class='del'>-	0x2ce1, 0x2ce1,</div><div class='del'>-	0x2ce3, 0x2ce3,</div><div class='del'>-	0x2cec, 0x2cec,</div><div class='del'>-	0x2cee, 0x2cee,</div><div class='del'>-	0x2cf3, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0xa641, 0xa641,</div><div class='del'>-	0xa643, 0xa643,</div><div class='del'>-	0xa645, 0xa645,</div><div class='del'>-	0xa647, 0xa647,</div><div class='del'>-	0xa649, 0xa649,</div><div class='del'>-	0xa64b, 0xa64b,</div><div class='del'>-	0xa64d, 0xa64d,</div><div class='del'>-	0xa64f, 0xa64f,</div><div class='del'>-	0xa651, 0xa651,</div><div class='del'>-	0xa653, 0xa653,</div><div class='del'>-	0xa655, 0xa655,</div><div class='del'>-	0xa657, 0xa657,</div><div class='del'>-	0xa659, 0xa659,</div><div class='del'>-	0xa65b, 0xa65b,</div><div class='del'>-	0xa65d, 0xa65d,</div><div class='del'>-	0xa65f, 0xa65f,</div><div class='del'>-	0xa661, 0xa661,</div><div class='del'>-	0xa663, 0xa663,</div><div class='del'>-	0xa665, 0xa665,</div><div class='del'>-	0xa667, 0xa667,</div><div class='del'>-	0xa669, 0xa669,</div><div class='del'>-	0xa66b, 0xa66b,</div><div class='del'>-	0xa66d, 0xa66d,</div><div class='del'>-	0xa681, 0xa681,</div><div class='del'>-	0xa683, 0xa683,</div><div class='del'>-	0xa685, 0xa685,</div><div class='del'>-	0xa687, 0xa687,</div><div class='del'>-	0xa689, 0xa689,</div><div class='del'>-	0xa68b, 0xa68b,</div><div class='del'>-	0xa68d, 0xa68d,</div><div class='del'>-	0xa68f, 0xa68f,</div><div class='del'>-	0xa691, 0xa691,</div><div class='del'>-	0xa693, 0xa693,</div><div class='del'>-	0xa695, 0xa695,</div><div class='del'>-	0xa697, 0xa697,</div><div class='del'>-	0xa699, 0xa699,</div><div class='del'>-	0xa69b, 0xa69b,</div><div class='del'>-	0xa723, 0xa723,</div><div class='del'>-	0xa725, 0xa725,</div><div class='del'>-	0xa727, 0xa727,</div><div class='del'>-	0xa729, 0xa729,</div><div class='del'>-	0xa72b, 0xa72b,</div><div class='del'>-	0xa72d, 0xa72d,</div><div class='del'>-	0xa72f, 0xa72f,</div><div class='del'>-	0xa733, 0xa733,</div><div class='del'>-	0xa735, 0xa735,</div><div class='del'>-	0xa737, 0xa737,</div><div class='del'>-	0xa739, 0xa739,</div><div class='del'>-	0xa73b, 0xa73b,</div><div class='del'>-	0xa73d, 0xa73d,</div><div class='del'>-	0xa73f, 0xa73f,</div><div class='del'>-	0xa741, 0xa741,</div><div class='del'>-	0xa743, 0xa743,</div><div class='del'>-	0xa745, 0xa745,</div><div class='del'>-	0xa747, 0xa747,</div><div class='del'>-	0xa749, 0xa749,</div><div class='del'>-	0xa74b, 0xa74b,</div><div class='del'>-	0xa74d, 0xa74d,</div><div class='del'>-	0xa74f, 0xa74f,</div><div class='del'>-	0xa751, 0xa751,</div><div class='del'>-	0xa753, 0xa753,</div><div class='del'>-	0xa755, 0xa755,</div><div class='del'>-	0xa757, 0xa757,</div><div class='del'>-	0xa759, 0xa759,</div><div class='del'>-	0xa75b, 0xa75b,</div><div class='del'>-	0xa75d, 0xa75d,</div><div class='del'>-	0xa75f, 0xa75f,</div><div class='del'>-	0xa761, 0xa761,</div><div class='del'>-	0xa763, 0xa763,</div><div class='del'>-	0xa765, 0xa765,</div><div class='del'>-	0xa767, 0xa767,</div><div class='del'>-	0xa769, 0xa769,</div><div class='del'>-	0xa76b, 0xa76b,</div><div class='del'>-	0xa76d, 0xa76d,</div><div class='del'>-	0xa76f, 0xa76f,</div><div class='del'>-	0xa77a, 0xa77a,</div><div class='del'>-	0xa77c, 0xa77c,</div><div class='del'>-	0xa77f, 0xa77f,</div><div class='del'>-	0xa781, 0xa781,</div><div class='del'>-	0xa783, 0xa783,</div><div class='del'>-	0xa785, 0xa785,</div><div class='del'>-	0xa787, 0xa787,</div><div class='del'>-	0xa78c, 0xa78c,</div><div class='del'>-	0xa791, 0xa791,</div><div class='del'>-	0xa793, 0xa793,</div><div class='del'>-	0xa797, 0xa797,</div><div class='del'>-	0xa799, 0xa799,</div><div class='del'>-	0xa79b, 0xa79b,</div><div class='del'>-	0xa79d, 0xa79d,</div><div class='del'>-	0xa79f, 0xa79f,</div><div class='del'>-	0xa7a1, 0xa7a1,</div><div class='del'>-	0xa7a3, 0xa7a3,</div><div class='del'>-	0xa7a5, 0xa7a5,</div><div class='del'>-	0xa7a7, 0xa7a7,</div><div class='del'>-	0xa7a9, 0xa7a9,</div><div class='del'>-	0xa7b5, 0xa7b5,</div><div class='del'>-	0xa7b7, 0xa7b7,</div><div class='del'>-	0xa7b9, 0xa7b9,</div><div class='del'>-	0xab53, 0xab53,</div><div class='del'>-	0xab70, 0xabbf,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0x10428, 0x1044f,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x118c0, 0x118df,</div><div class='del'>-	0x16e60, 0x16e7f,</div><div class='del'>-	0x1e922, 0x1e943,</div><div class='del'>-}; /* CR_Changes_When_Uppercased */</div><div class='del'>-</div><div class='del'>-/* 'Changes_When_Titlecased': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Changes_When_Titlecased[] = {</div><div class='del'>-	610,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00df, 0x00f6,</div><div class='del'>-	0x00f8, 0x00ff,</div><div class='del'>-	0x0101, 0x0101,</div><div class='del'>-	0x0103, 0x0103,</div><div class='del'>-	0x0105, 0x0105,</div><div class='del'>-	0x0107, 0x0107,</div><div class='del'>-	0x0109, 0x0109,</div><div class='del'>-	0x010b, 0x010b,</div><div class='del'>-	0x010d, 0x010d,</div><div class='del'>-	0x010f, 0x010f,</div><div class='del'>-	0x0111, 0x0111,</div><div class='del'>-	0x0113, 0x0113,</div><div class='del'>-	0x0115, 0x0115,</div><div class='del'>-	0x0117, 0x0117,</div><div class='del'>-	0x0119, 0x0119,</div><div class='del'>-	0x011b, 0x011b,</div><div class='del'>-	0x011d, 0x011d,</div><div class='del'>-	0x011f, 0x011f,</div><div class='del'>-	0x0121, 0x0121,</div><div class='del'>-	0x0123, 0x0123,</div><div class='del'>-	0x0125, 0x0125,</div><div class='del'>-	0x0127, 0x0127,</div><div class='del'>-	0x0129, 0x0129,</div><div class='del'>-	0x012b, 0x012b,</div><div class='del'>-	0x012d, 0x012d,</div><div class='del'>-	0x012f, 0x012f,</div><div class='del'>-	0x0131, 0x0131,</div><div class='del'>-	0x0133, 0x0133,</div><div class='del'>-	0x0135, 0x0135,</div><div class='del'>-	0x0137, 0x0137,</div><div class='del'>-	0x013a, 0x013a,</div><div class='del'>-	0x013c, 0x013c,</div><div class='del'>-	0x013e, 0x013e,</div><div class='del'>-	0x0140, 0x0140,</div><div class='del'>-	0x0142, 0x0142,</div><div class='del'>-	0x0144, 0x0144,</div><div class='del'>-	0x0146, 0x0146,</div><div class='del'>-	0x0148, 0x0149,</div><div class='del'>-	0x014b, 0x014b,</div><div class='del'>-	0x014d, 0x014d,</div><div class='del'>-	0x014f, 0x014f,</div><div class='del'>-	0x0151, 0x0151,</div><div class='del'>-	0x0153, 0x0153,</div><div class='del'>-	0x0155, 0x0155,</div><div class='del'>-	0x0157, 0x0157,</div><div class='del'>-	0x0159, 0x0159,</div><div class='del'>-	0x015b, 0x015b,</div><div class='del'>-	0x015d, 0x015d,</div><div class='del'>-	0x015f, 0x015f,</div><div class='del'>-	0x0161, 0x0161,</div><div class='del'>-	0x0163, 0x0163,</div><div class='del'>-	0x0165, 0x0165,</div><div class='del'>-	0x0167, 0x0167,</div><div class='del'>-	0x0169, 0x0169,</div><div class='del'>-	0x016b, 0x016b,</div><div class='del'>-	0x016d, 0x016d,</div><div class='del'>-	0x016f, 0x016f,</div><div class='del'>-	0x0171, 0x0171,</div><div class='del'>-	0x0173, 0x0173,</div><div class='del'>-	0x0175, 0x0175,</div><div class='del'>-	0x0177, 0x0177,</div><div class='del'>-	0x017a, 0x017a,</div><div class='del'>-	0x017c, 0x017c,</div><div class='del'>-	0x017e, 0x0180,</div><div class='del'>-	0x0183, 0x0183,</div><div class='del'>-	0x0185, 0x0185,</div><div class='del'>-	0x0188, 0x0188,</div><div class='del'>-	0x018c, 0x018c,</div><div class='del'>-	0x0192, 0x0192,</div><div class='del'>-	0x0195, 0x0195,</div><div class='del'>-	0x0199, 0x019a,</div><div class='del'>-	0x019e, 0x019e,</div><div class='del'>-	0x01a1, 0x01a1,</div><div class='del'>-	0x01a3, 0x01a3,</div><div class='del'>-	0x01a5, 0x01a5,</div><div class='del'>-	0x01a8, 0x01a8,</div><div class='del'>-	0x01ad, 0x01ad,</div><div class='del'>-	0x01b0, 0x01b0,</div><div class='del'>-	0x01b4, 0x01b4,</div><div class='del'>-	0x01b6, 0x01b6,</div><div class='del'>-	0x01b9, 0x01b9,</div><div class='del'>-	0x01bd, 0x01bd,</div><div class='del'>-	0x01bf, 0x01bf,</div><div class='del'>-	0x01c4, 0x01c4,</div><div class='del'>-	0x01c6, 0x01c7,</div><div class='del'>-	0x01c9, 0x01ca,</div><div class='del'>-	0x01cc, 0x01cc,</div><div class='del'>-	0x01ce, 0x01ce,</div><div class='del'>-	0x01d0, 0x01d0,</div><div class='del'>-	0x01d2, 0x01d2,</div><div class='del'>-	0x01d4, 0x01d4,</div><div class='del'>-	0x01d6, 0x01d6,</div><div class='del'>-	0x01d8, 0x01d8,</div><div class='del'>-	0x01da, 0x01da,</div><div class='del'>-	0x01dc, 0x01dd,</div><div class='del'>-	0x01df, 0x01df,</div><div class='del'>-	0x01e1, 0x01e1,</div><div class='del'>-	0x01e3, 0x01e3,</div><div class='del'>-	0x01e5, 0x01e5,</div><div class='del'>-	0x01e7, 0x01e7,</div><div class='del'>-	0x01e9, 0x01e9,</div><div class='del'>-	0x01eb, 0x01eb,</div><div class='del'>-	0x01ed, 0x01ed,</div><div class='del'>-	0x01ef, 0x01f1,</div><div class='del'>-	0x01f3, 0x01f3,</div><div class='del'>-	0x01f5, 0x01f5,</div><div class='del'>-	0x01f9, 0x01f9,</div><div class='del'>-	0x01fb, 0x01fb,</div><div class='del'>-	0x01fd, 0x01fd,</div><div class='del'>-	0x01ff, 0x01ff,</div><div class='del'>-	0x0201, 0x0201,</div><div class='del'>-	0x0203, 0x0203,</div><div class='del'>-	0x0205, 0x0205,</div><div class='del'>-	0x0207, 0x0207,</div><div class='del'>-	0x0209, 0x0209,</div><div class='del'>-	0x020b, 0x020b,</div><div class='del'>-	0x020d, 0x020d,</div><div class='del'>-	0x020f, 0x020f,</div><div class='del'>-	0x0211, 0x0211,</div><div class='del'>-	0x0213, 0x0213,</div><div class='del'>-	0x0215, 0x0215,</div><div class='del'>-	0x0217, 0x0217,</div><div class='del'>-	0x0219, 0x0219,</div><div class='del'>-	0x021b, 0x021b,</div><div class='del'>-	0x021d, 0x021d,</div><div class='del'>-	0x021f, 0x021f,</div><div class='del'>-	0x0223, 0x0223,</div><div class='del'>-	0x0225, 0x0225,</div><div class='del'>-	0x0227, 0x0227,</div><div class='del'>-	0x0229, 0x0229,</div><div class='del'>-	0x022b, 0x022b,</div><div class='del'>-	0x022d, 0x022d,</div><div class='del'>-	0x022f, 0x022f,</div><div class='del'>-	0x0231, 0x0231,</div><div class='del'>-	0x0233, 0x0233,</div><div class='del'>-	0x023c, 0x023c,</div><div class='del'>-	0x023f, 0x0240,</div><div class='del'>-	0x0242, 0x0242,</div><div class='del'>-	0x0247, 0x0247,</div><div class='del'>-	0x0249, 0x0249,</div><div class='del'>-	0x024b, 0x024b,</div><div class='del'>-	0x024d, 0x024d,</div><div class='del'>-	0x024f, 0x0254,</div><div class='del'>-	0x0256, 0x0257,</div><div class='del'>-	0x0259, 0x0259,</div><div class='del'>-	0x025b, 0x025c,</div><div class='del'>-	0x0260, 0x0261,</div><div class='del'>-	0x0263, 0x0263,</div><div class='del'>-	0x0265, 0x0266,</div><div class='del'>-	0x0268, 0x026c,</div><div class='del'>-	0x026f, 0x026f,</div><div class='del'>-	0x0271, 0x0272,</div><div class='del'>-	0x0275, 0x0275,</div><div class='del'>-	0x027d, 0x027d,</div><div class='del'>-	0x0280, 0x0280,</div><div class='del'>-	0x0283, 0x0283,</div><div class='del'>-	0x0287, 0x028c,</div><div class='del'>-	0x0292, 0x0292,</div><div class='del'>-	0x029d, 0x029e,</div><div class='del'>-	0x0345, 0x0345,</div><div class='del'>-	0x0371, 0x0371,</div><div class='del'>-	0x0373, 0x0373,</div><div class='del'>-	0x0377, 0x0377,</div><div class='del'>-	0x037b, 0x037d,</div><div class='del'>-	0x0390, 0x0390,</div><div class='del'>-	0x03ac, 0x03ce,</div><div class='del'>-	0x03d0, 0x03d1,</div><div class='del'>-	0x03d5, 0x03d7,</div><div class='del'>-	0x03d9, 0x03d9,</div><div class='del'>-	0x03db, 0x03db,</div><div class='del'>-	0x03dd, 0x03dd,</div><div class='del'>-	0x03df, 0x03df,</div><div class='del'>-	0x03e1, 0x03e1,</div><div class='del'>-	0x03e3, 0x03e3,</div><div class='del'>-	0x03e5, 0x03e5,</div><div class='del'>-	0x03e7, 0x03e7,</div><div class='del'>-	0x03e9, 0x03e9,</div><div class='del'>-	0x03eb, 0x03eb,</div><div class='del'>-	0x03ed, 0x03ed,</div><div class='del'>-	0x03ef, 0x03f3,</div><div class='del'>-	0x03f5, 0x03f5,</div><div class='del'>-	0x03f8, 0x03f8,</div><div class='del'>-	0x03fb, 0x03fb,</div><div class='del'>-	0x0430, 0x045f,</div><div class='del'>-	0x0461, 0x0461,</div><div class='del'>-	0x0463, 0x0463,</div><div class='del'>-	0x0465, 0x0465,</div><div class='del'>-	0x0467, 0x0467,</div><div class='del'>-	0x0469, 0x0469,</div><div class='del'>-	0x046b, 0x046b,</div><div class='del'>-	0x046d, 0x046d,</div><div class='del'>-	0x046f, 0x046f,</div><div class='del'>-	0x0471, 0x0471,</div><div class='del'>-	0x0473, 0x0473,</div><div class='del'>-	0x0475, 0x0475,</div><div class='del'>-	0x0477, 0x0477,</div><div class='del'>-	0x0479, 0x0479,</div><div class='del'>-	0x047b, 0x047b,</div><div class='del'>-	0x047d, 0x047d,</div><div class='del'>-	0x047f, 0x047f,</div><div class='del'>-	0x0481, 0x0481,</div><div class='del'>-	0x048b, 0x048b,</div><div class='del'>-	0x048d, 0x048d,</div><div class='del'>-	0x048f, 0x048f,</div><div class='del'>-	0x0491, 0x0491,</div><div class='del'>-	0x0493, 0x0493,</div><div class='del'>-	0x0495, 0x0495,</div><div class='del'>-	0x0497, 0x0497,</div><div class='del'>-	0x0499, 0x0499,</div><div class='del'>-	0x049b, 0x049b,</div><div class='del'>-	0x049d, 0x049d,</div><div class='del'>-	0x049f, 0x049f,</div><div class='del'>-	0x04a1, 0x04a1,</div><div class='del'>-	0x04a3, 0x04a3,</div><div class='del'>-	0x04a5, 0x04a5,</div><div class='del'>-	0x04a7, 0x04a7,</div><div class='del'>-	0x04a9, 0x04a9,</div><div class='del'>-	0x04ab, 0x04ab,</div><div class='del'>-	0x04ad, 0x04ad,</div><div class='del'>-	0x04af, 0x04af,</div><div class='del'>-	0x04b1, 0x04b1,</div><div class='del'>-	0x04b3, 0x04b3,</div><div class='del'>-	0x04b5, 0x04b5,</div><div class='del'>-	0x04b7, 0x04b7,</div><div class='del'>-	0x04b9, 0x04b9,</div><div class='del'>-	0x04bb, 0x04bb,</div><div class='del'>-	0x04bd, 0x04bd,</div><div class='del'>-	0x04bf, 0x04bf,</div><div class='del'>-	0x04c2, 0x04c2,</div><div class='del'>-	0x04c4, 0x04c4,</div><div class='del'>-	0x04c6, 0x04c6,</div><div class='del'>-	0x04c8, 0x04c8,</div><div class='del'>-	0x04ca, 0x04ca,</div><div class='del'>-	0x04cc, 0x04cc,</div><div class='del'>-	0x04ce, 0x04cf,</div><div class='del'>-	0x04d1, 0x04d1,</div><div class='del'>-	0x04d3, 0x04d3,</div><div class='del'>-	0x04d5, 0x04d5,</div><div class='del'>-	0x04d7, 0x04d7,</div><div class='del'>-	0x04d9, 0x04d9,</div><div class='del'>-	0x04db, 0x04db,</div><div class='del'>-	0x04dd, 0x04dd,</div><div class='del'>-	0x04df, 0x04df,</div><div class='del'>-	0x04e1, 0x04e1,</div><div class='del'>-	0x04e3, 0x04e3,</div><div class='del'>-	0x04e5, 0x04e5,</div><div class='del'>-	0x04e7, 0x04e7,</div><div class='del'>-	0x04e9, 0x04e9,</div><div class='del'>-	0x04eb, 0x04eb,</div><div class='del'>-	0x04ed, 0x04ed,</div><div class='del'>-	0x04ef, 0x04ef,</div><div class='del'>-	0x04f1, 0x04f1,</div><div class='del'>-	0x04f3, 0x04f3,</div><div class='del'>-	0x04f5, 0x04f5,</div><div class='del'>-	0x04f7, 0x04f7,</div><div class='del'>-	0x04f9, 0x04f9,</div><div class='del'>-	0x04fb, 0x04fb,</div><div class='del'>-	0x04fd, 0x04fd,</div><div class='del'>-	0x04ff, 0x04ff,</div><div class='del'>-	0x0501, 0x0501,</div><div class='del'>-	0x0503, 0x0503,</div><div class='del'>-	0x0505, 0x0505,</div><div class='del'>-	0x0507, 0x0507,</div><div class='del'>-	0x0509, 0x0509,</div><div class='del'>-	0x050b, 0x050b,</div><div class='del'>-	0x050d, 0x050d,</div><div class='del'>-	0x050f, 0x050f,</div><div class='del'>-	0x0511, 0x0511,</div><div class='del'>-	0x0513, 0x0513,</div><div class='del'>-	0x0515, 0x0515,</div><div class='del'>-	0x0517, 0x0517,</div><div class='del'>-	0x0519, 0x0519,</div><div class='del'>-	0x051b, 0x051b,</div><div class='del'>-	0x051d, 0x051d,</div><div class='del'>-	0x051f, 0x051f,</div><div class='del'>-	0x0521, 0x0521,</div><div class='del'>-	0x0523, 0x0523,</div><div class='del'>-	0x0525, 0x0525,</div><div class='del'>-	0x0527, 0x0527,</div><div class='del'>-	0x0529, 0x0529,</div><div class='del'>-	0x052b, 0x052b,</div><div class='del'>-	0x052d, 0x052d,</div><div class='del'>-	0x052f, 0x052f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1d79, 0x1d79,</div><div class='del'>-	0x1d7d, 0x1d7d,</div><div class='del'>-	0x1e01, 0x1e01,</div><div class='del'>-	0x1e03, 0x1e03,</div><div class='del'>-	0x1e05, 0x1e05,</div><div class='del'>-	0x1e07, 0x1e07,</div><div class='del'>-	0x1e09, 0x1e09,</div><div class='del'>-	0x1e0b, 0x1e0b,</div><div class='del'>-	0x1e0d, 0x1e0d,</div><div class='del'>-	0x1e0f, 0x1e0f,</div><div class='del'>-	0x1e11, 0x1e11,</div><div class='del'>-	0x1e13, 0x1e13,</div><div class='del'>-	0x1e15, 0x1e15,</div><div class='del'>-	0x1e17, 0x1e17,</div><div class='del'>-	0x1e19, 0x1e19,</div><div class='del'>-	0x1e1b, 0x1e1b,</div><div class='del'>-	0x1e1d, 0x1e1d,</div><div class='del'>-	0x1e1f, 0x1e1f,</div><div class='del'>-	0x1e21, 0x1e21,</div><div class='del'>-	0x1e23, 0x1e23,</div><div class='del'>-	0x1e25, 0x1e25,</div><div class='del'>-	0x1e27, 0x1e27,</div><div class='del'>-	0x1e29, 0x1e29,</div><div class='del'>-	0x1e2b, 0x1e2b,</div><div class='del'>-	0x1e2d, 0x1e2d,</div><div class='del'>-	0x1e2f, 0x1e2f,</div><div class='del'>-	0x1e31, 0x1e31,</div><div class='del'>-	0x1e33, 0x1e33,</div><div class='del'>-	0x1e35, 0x1e35,</div><div class='del'>-	0x1e37, 0x1e37,</div><div class='del'>-	0x1e39, 0x1e39,</div><div class='del'>-	0x1e3b, 0x1e3b,</div><div class='del'>-	0x1e3d, 0x1e3d,</div><div class='del'>-	0x1e3f, 0x1e3f,</div><div class='del'>-	0x1e41, 0x1e41,</div><div class='del'>-	0x1e43, 0x1e43,</div><div class='del'>-	0x1e45, 0x1e45,</div><div class='del'>-	0x1e47, 0x1e47,</div><div class='del'>-	0x1e49, 0x1e49,</div><div class='del'>-	0x1e4b, 0x1e4b,</div><div class='del'>-	0x1e4d, 0x1e4d,</div><div class='del'>-	0x1e4f, 0x1e4f,</div><div class='del'>-	0x1e51, 0x1e51,</div><div class='del'>-	0x1e53, 0x1e53,</div><div class='del'>-	0x1e55, 0x1e55,</div><div class='del'>-	0x1e57, 0x1e57,</div><div class='del'>-	0x1e59, 0x1e59,</div><div class='del'>-	0x1e5b, 0x1e5b,</div><div class='del'>-	0x1e5d, 0x1e5d,</div><div class='del'>-	0x1e5f, 0x1e5f,</div><div class='del'>-	0x1e61, 0x1e61,</div><div class='del'>-	0x1e63, 0x1e63,</div><div class='del'>-	0x1e65, 0x1e65,</div><div class='del'>-	0x1e67, 0x1e67,</div><div class='del'>-	0x1e69, 0x1e69,</div><div class='del'>-	0x1e6b, 0x1e6b,</div><div class='del'>-	0x1e6d, 0x1e6d,</div><div class='del'>-	0x1e6f, 0x1e6f,</div><div class='del'>-	0x1e71, 0x1e71,</div><div class='del'>-	0x1e73, 0x1e73,</div><div class='del'>-	0x1e75, 0x1e75,</div><div class='del'>-	0x1e77, 0x1e77,</div><div class='del'>-	0x1e79, 0x1e79,</div><div class='del'>-	0x1e7b, 0x1e7b,</div><div class='del'>-	0x1e7d, 0x1e7d,</div><div class='del'>-	0x1e7f, 0x1e7f,</div><div class='del'>-	0x1e81, 0x1e81,</div><div class='del'>-	0x1e83, 0x1e83,</div><div class='del'>-	0x1e85, 0x1e85,</div><div class='del'>-	0x1e87, 0x1e87,</div><div class='del'>-	0x1e89, 0x1e89,</div><div class='del'>-	0x1e8b, 0x1e8b,</div><div class='del'>-	0x1e8d, 0x1e8d,</div><div class='del'>-	0x1e8f, 0x1e8f,</div><div class='del'>-	0x1e91, 0x1e91,</div><div class='del'>-	0x1e93, 0x1e93,</div><div class='del'>-	0x1e95, 0x1e9b,</div><div class='del'>-	0x1ea1, 0x1ea1,</div><div class='del'>-	0x1ea3, 0x1ea3,</div><div class='del'>-	0x1ea5, 0x1ea5,</div><div class='del'>-	0x1ea7, 0x1ea7,</div><div class='del'>-	0x1ea9, 0x1ea9,</div><div class='del'>-	0x1eab, 0x1eab,</div><div class='del'>-	0x1ead, 0x1ead,</div><div class='del'>-	0x1eaf, 0x1eaf,</div><div class='del'>-	0x1eb1, 0x1eb1,</div><div class='del'>-	0x1eb3, 0x1eb3,</div><div class='del'>-	0x1eb5, 0x1eb5,</div><div class='del'>-	0x1eb7, 0x1eb7,</div><div class='del'>-	0x1eb9, 0x1eb9,</div><div class='del'>-	0x1ebb, 0x1ebb,</div><div class='del'>-	0x1ebd, 0x1ebd,</div><div class='del'>-	0x1ebf, 0x1ebf,</div><div class='del'>-	0x1ec1, 0x1ec1,</div><div class='del'>-	0x1ec3, 0x1ec3,</div><div class='del'>-	0x1ec5, 0x1ec5,</div><div class='del'>-	0x1ec7, 0x1ec7,</div><div class='del'>-	0x1ec9, 0x1ec9,</div><div class='del'>-	0x1ecb, 0x1ecb,</div><div class='del'>-	0x1ecd, 0x1ecd,</div><div class='del'>-	0x1ecf, 0x1ecf,</div><div class='del'>-	0x1ed1, 0x1ed1,</div><div class='del'>-	0x1ed3, 0x1ed3,</div><div class='del'>-	0x1ed5, 0x1ed5,</div><div class='del'>-	0x1ed7, 0x1ed7,</div><div class='del'>-	0x1ed9, 0x1ed9,</div><div class='del'>-	0x1edb, 0x1edb,</div><div class='del'>-	0x1edd, 0x1edd,</div><div class='del'>-	0x1edf, 0x1edf,</div><div class='del'>-	0x1ee1, 0x1ee1,</div><div class='del'>-	0x1ee3, 0x1ee3,</div><div class='del'>-	0x1ee5, 0x1ee5,</div><div class='del'>-	0x1ee7, 0x1ee7,</div><div class='del'>-	0x1ee9, 0x1ee9,</div><div class='del'>-	0x1eeb, 0x1eeb,</div><div class='del'>-	0x1eed, 0x1eed,</div><div class='del'>-	0x1eef, 0x1eef,</div><div class='del'>-	0x1ef1, 0x1ef1,</div><div class='del'>-	0x1ef3, 0x1ef3,</div><div class='del'>-	0x1ef5, 0x1ef5,</div><div class='del'>-	0x1ef7, 0x1ef7,</div><div class='del'>-	0x1ef9, 0x1ef9,</div><div class='del'>-	0x1efb, 0x1efb,</div><div class='del'>-	0x1efd, 0x1efd,</div><div class='del'>-	0x1eff, 0x1f07,</div><div class='del'>-	0x1f10, 0x1f15,</div><div class='del'>-	0x1f20, 0x1f27,</div><div class='del'>-	0x1f30, 0x1f37,</div><div class='del'>-	0x1f40, 0x1f45,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f60, 0x1f67,</div><div class='del'>-	0x1f70, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1f87,</div><div class='del'>-	0x1f90, 0x1f97,</div><div class='del'>-	0x1fa0, 0x1fa7,</div><div class='del'>-	0x1fb0, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fb7,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fc7,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fd7,</div><div class='del'>-	0x1fe0, 0x1fe7,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ff7,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2170, 0x217f,</div><div class='del'>-	0x2184, 0x2184,</div><div class='del'>-	0x24d0, 0x24e9,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c61, 0x2c61,</div><div class='del'>-	0x2c65, 0x2c66,</div><div class='del'>-	0x2c68, 0x2c68,</div><div class='del'>-	0x2c6a, 0x2c6a,</div><div class='del'>-	0x2c6c, 0x2c6c,</div><div class='del'>-	0x2c73, 0x2c73,</div><div class='del'>-	0x2c76, 0x2c76,</div><div class='del'>-	0x2c81, 0x2c81,</div><div class='del'>-	0x2c83, 0x2c83,</div><div class='del'>-	0x2c85, 0x2c85,</div><div class='del'>-	0x2c87, 0x2c87,</div><div class='del'>-	0x2c89, 0x2c89,</div><div class='del'>-	0x2c8b, 0x2c8b,</div><div class='del'>-	0x2c8d, 0x2c8d,</div><div class='del'>-	0x2c8f, 0x2c8f,</div><div class='del'>-	0x2c91, 0x2c91,</div><div class='del'>-	0x2c93, 0x2c93,</div><div class='del'>-	0x2c95, 0x2c95,</div><div class='del'>-	0x2c97, 0x2c97,</div><div class='del'>-	0x2c99, 0x2c99,</div><div class='del'>-	0x2c9b, 0x2c9b,</div><div class='del'>-	0x2c9d, 0x2c9d,</div><div class='del'>-	0x2c9f, 0x2c9f,</div><div class='del'>-	0x2ca1, 0x2ca1,</div><div class='del'>-	0x2ca3, 0x2ca3,</div><div class='del'>-	0x2ca5, 0x2ca5,</div><div class='del'>-	0x2ca7, 0x2ca7,</div><div class='del'>-	0x2ca9, 0x2ca9,</div><div class='del'>-	0x2cab, 0x2cab,</div><div class='del'>-	0x2cad, 0x2cad,</div><div class='del'>-	0x2caf, 0x2caf,</div><div class='del'>-	0x2cb1, 0x2cb1,</div><div class='del'>-	0x2cb3, 0x2cb3,</div><div class='del'>-	0x2cb5, 0x2cb5,</div><div class='del'>-	0x2cb7, 0x2cb7,</div><div class='del'>-	0x2cb9, 0x2cb9,</div><div class='del'>-	0x2cbb, 0x2cbb,</div><div class='del'>-	0x2cbd, 0x2cbd,</div><div class='del'>-	0x2cbf, 0x2cbf,</div><div class='del'>-	0x2cc1, 0x2cc1,</div><div class='del'>-	0x2cc3, 0x2cc3,</div><div class='del'>-	0x2cc5, 0x2cc5,</div><div class='del'>-	0x2cc7, 0x2cc7,</div><div class='del'>-	0x2cc9, 0x2cc9,</div><div class='del'>-	0x2ccb, 0x2ccb,</div><div class='del'>-	0x2ccd, 0x2ccd,</div><div class='del'>-	0x2ccf, 0x2ccf,</div><div class='del'>-	0x2cd1, 0x2cd1,</div><div class='del'>-	0x2cd3, 0x2cd3,</div><div class='del'>-	0x2cd5, 0x2cd5,</div><div class='del'>-	0x2cd7, 0x2cd7,</div><div class='del'>-	0x2cd9, 0x2cd9,</div><div class='del'>-	0x2cdb, 0x2cdb,</div><div class='del'>-	0x2cdd, 0x2cdd,</div><div class='del'>-	0x2cdf, 0x2cdf,</div><div class='del'>-	0x2ce1, 0x2ce1,</div><div class='del'>-	0x2ce3, 0x2ce3,</div><div class='del'>-	0x2cec, 0x2cec,</div><div class='del'>-	0x2cee, 0x2cee,</div><div class='del'>-	0x2cf3, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0xa641, 0xa641,</div><div class='del'>-	0xa643, 0xa643,</div><div class='del'>-	0xa645, 0xa645,</div><div class='del'>-	0xa647, 0xa647,</div><div class='del'>-	0xa649, 0xa649,</div><div class='del'>-	0xa64b, 0xa64b,</div><div class='del'>-	0xa64d, 0xa64d,</div><div class='del'>-	0xa64f, 0xa64f,</div><div class='del'>-	0xa651, 0xa651,</div><div class='del'>-	0xa653, 0xa653,</div><div class='del'>-	0xa655, 0xa655,</div><div class='del'>-	0xa657, 0xa657,</div><div class='del'>-	0xa659, 0xa659,</div><div class='del'>-	0xa65b, 0xa65b,</div><div class='del'>-	0xa65d, 0xa65d,</div><div class='del'>-	0xa65f, 0xa65f,</div><div class='del'>-	0xa661, 0xa661,</div><div class='del'>-	0xa663, 0xa663,</div><div class='del'>-	0xa665, 0xa665,</div><div class='del'>-	0xa667, 0xa667,</div><div class='del'>-	0xa669, 0xa669,</div><div class='del'>-	0xa66b, 0xa66b,</div><div class='del'>-	0xa66d, 0xa66d,</div><div class='del'>-	0xa681, 0xa681,</div><div class='del'>-	0xa683, 0xa683,</div><div class='del'>-	0xa685, 0xa685,</div><div class='del'>-	0xa687, 0xa687,</div><div class='del'>-	0xa689, 0xa689,</div><div class='del'>-	0xa68b, 0xa68b,</div><div class='del'>-	0xa68d, 0xa68d,</div><div class='del'>-	0xa68f, 0xa68f,</div><div class='del'>-	0xa691, 0xa691,</div><div class='del'>-	0xa693, 0xa693,</div><div class='del'>-	0xa695, 0xa695,</div><div class='del'>-	0xa697, 0xa697,</div><div class='del'>-	0xa699, 0xa699,</div><div class='del'>-	0xa69b, 0xa69b,</div><div class='del'>-	0xa723, 0xa723,</div><div class='del'>-	0xa725, 0xa725,</div><div class='del'>-	0xa727, 0xa727,</div><div class='del'>-	0xa729, 0xa729,</div><div class='del'>-	0xa72b, 0xa72b,</div><div class='del'>-	0xa72d, 0xa72d,</div><div class='del'>-	0xa72f, 0xa72f,</div><div class='del'>-	0xa733, 0xa733,</div><div class='del'>-	0xa735, 0xa735,</div><div class='del'>-	0xa737, 0xa737,</div><div class='del'>-	0xa739, 0xa739,</div><div class='del'>-	0xa73b, 0xa73b,</div><div class='del'>-	0xa73d, 0xa73d,</div><div class='del'>-	0xa73f, 0xa73f,</div><div class='del'>-	0xa741, 0xa741,</div><div class='del'>-	0xa743, 0xa743,</div><div class='del'>-	0xa745, 0xa745,</div><div class='del'>-	0xa747, 0xa747,</div><div class='del'>-	0xa749, 0xa749,</div><div class='del'>-	0xa74b, 0xa74b,</div><div class='del'>-	0xa74d, 0xa74d,</div><div class='del'>-	0xa74f, 0xa74f,</div><div class='del'>-	0xa751, 0xa751,</div><div class='del'>-	0xa753, 0xa753,</div><div class='del'>-	0xa755, 0xa755,</div><div class='del'>-	0xa757, 0xa757,</div><div class='del'>-	0xa759, 0xa759,</div><div class='del'>-	0xa75b, 0xa75b,</div><div class='del'>-	0xa75d, 0xa75d,</div><div class='del'>-	0xa75f, 0xa75f,</div><div class='del'>-	0xa761, 0xa761,</div><div class='del'>-	0xa763, 0xa763,</div><div class='del'>-	0xa765, 0xa765,</div><div class='del'>-	0xa767, 0xa767,</div><div class='del'>-	0xa769, 0xa769,</div><div class='del'>-	0xa76b, 0xa76b,</div><div class='del'>-	0xa76d, 0xa76d,</div><div class='del'>-	0xa76f, 0xa76f,</div><div class='del'>-	0xa77a, 0xa77a,</div><div class='del'>-	0xa77c, 0xa77c,</div><div class='del'>-	0xa77f, 0xa77f,</div><div class='del'>-	0xa781, 0xa781,</div><div class='del'>-	0xa783, 0xa783,</div><div class='del'>-	0xa785, 0xa785,</div><div class='del'>-	0xa787, 0xa787,</div><div class='del'>-	0xa78c, 0xa78c,</div><div class='del'>-	0xa791, 0xa791,</div><div class='del'>-	0xa793, 0xa793,</div><div class='del'>-	0xa797, 0xa797,</div><div class='del'>-	0xa799, 0xa799,</div><div class='del'>-	0xa79b, 0xa79b,</div><div class='del'>-	0xa79d, 0xa79d,</div><div class='del'>-	0xa79f, 0xa79f,</div><div class='del'>-	0xa7a1, 0xa7a1,</div><div class='del'>-	0xa7a3, 0xa7a3,</div><div class='del'>-	0xa7a5, 0xa7a5,</div><div class='del'>-	0xa7a7, 0xa7a7,</div><div class='del'>-	0xa7a9, 0xa7a9,</div><div class='del'>-	0xa7b5, 0xa7b5,</div><div class='del'>-	0xa7b7, 0xa7b7,</div><div class='del'>-	0xa7b9, 0xa7b9,</div><div class='del'>-	0xab53, 0xab53,</div><div class='del'>-	0xab70, 0xabbf,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0x10428, 0x1044f,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x118c0, 0x118df,</div><div class='del'>-	0x16e60, 0x16e7f,</div><div class='del'>-	0x1e922, 0x1e943,</div><div class='del'>-}; /* CR_Changes_When_Titlecased */</div><div class='del'>-</div><div class='del'>-/* 'Changes_When_Casefolded': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Changes_When_Casefolded[] = {</div><div class='del'>-	607,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00df,</div><div class='del'>-	0x0100, 0x0100,</div><div class='del'>-	0x0102, 0x0102,</div><div class='del'>-	0x0104, 0x0104,</div><div class='del'>-	0x0106, 0x0106,</div><div class='del'>-	0x0108, 0x0108,</div><div class='del'>-	0x010a, 0x010a,</div><div class='del'>-	0x010c, 0x010c,</div><div class='del'>-	0x010e, 0x010e,</div><div class='del'>-	0x0110, 0x0110,</div><div class='del'>-	0x0112, 0x0112,</div><div class='del'>-	0x0114, 0x0114,</div><div class='del'>-	0x0116, 0x0116,</div><div class='del'>-	0x0118, 0x0118,</div><div class='del'>-	0x011a, 0x011a,</div><div class='del'>-	0x011c, 0x011c,</div><div class='del'>-	0x011e, 0x011e,</div><div class='del'>-	0x0120, 0x0120,</div><div class='del'>-	0x0122, 0x0122,</div><div class='del'>-	0x0124, 0x0124,</div><div class='del'>-	0x0126, 0x0126,</div><div class='del'>-	0x0128, 0x0128,</div><div class='del'>-	0x012a, 0x012a,</div><div class='del'>-	0x012c, 0x012c,</div><div class='del'>-	0x012e, 0x012e,</div><div class='del'>-	0x0130, 0x0130,</div><div class='del'>-	0x0132, 0x0132,</div><div class='del'>-	0x0134, 0x0134,</div><div class='del'>-	0x0136, 0x0136,</div><div class='del'>-	0x0139, 0x0139,</div><div class='del'>-	0x013b, 0x013b,</div><div class='del'>-	0x013d, 0x013d,</div><div class='del'>-	0x013f, 0x013f,</div><div class='del'>-	0x0141, 0x0141,</div><div class='del'>-	0x0143, 0x0143,</div><div class='del'>-	0x0145, 0x0145,</div><div class='del'>-	0x0147, 0x0147,</div><div class='del'>-	0x0149, 0x014a,</div><div class='del'>-	0x014c, 0x014c,</div><div class='del'>-	0x014e, 0x014e,</div><div class='del'>-	0x0150, 0x0150,</div><div class='del'>-	0x0152, 0x0152,</div><div class='del'>-	0x0154, 0x0154,</div><div class='del'>-	0x0156, 0x0156,</div><div class='del'>-	0x0158, 0x0158,</div><div class='del'>-	0x015a, 0x015a,</div><div class='del'>-	0x015c, 0x015c,</div><div class='del'>-	0x015e, 0x015e,</div><div class='del'>-	0x0160, 0x0160,</div><div class='del'>-	0x0162, 0x0162,</div><div class='del'>-	0x0164, 0x0164,</div><div class='del'>-	0x0166, 0x0166,</div><div class='del'>-	0x0168, 0x0168,</div><div class='del'>-	0x016a, 0x016a,</div><div class='del'>-	0x016c, 0x016c,</div><div class='del'>-	0x016e, 0x016e,</div><div class='del'>-	0x0170, 0x0170,</div><div class='del'>-	0x0172, 0x0172,</div><div class='del'>-	0x0174, 0x0174,</div><div class='del'>-	0x0176, 0x0176,</div><div class='del'>-	0x0178, 0x0179,</div><div class='del'>-	0x017b, 0x017b,</div><div class='del'>-	0x017d, 0x017d,</div><div class='del'>-	0x017f, 0x017f,</div><div class='del'>-	0x0181, 0x0182,</div><div class='del'>-	0x0184, 0x0184,</div><div class='del'>-	0x0186, 0x0187,</div><div class='del'>-	0x0189, 0x018b,</div><div class='del'>-	0x018e, 0x0191,</div><div class='del'>-	0x0193, 0x0194,</div><div class='del'>-	0x0196, 0x0198,</div><div class='del'>-	0x019c, 0x019d,</div><div class='del'>-	0x019f, 0x01a0,</div><div class='del'>-	0x01a2, 0x01a2,</div><div class='del'>-	0x01a4, 0x01a4,</div><div class='del'>-	0x01a6, 0x01a7,</div><div class='del'>-	0x01a9, 0x01a9,</div><div class='del'>-	0x01ac, 0x01ac,</div><div class='del'>-	0x01ae, 0x01af,</div><div class='del'>-	0x01b1, 0x01b3,</div><div class='del'>-	0x01b5, 0x01b5,</div><div class='del'>-	0x01b7, 0x01b8,</div><div class='del'>-	0x01bc, 0x01bc,</div><div class='del'>-	0x01c4, 0x01c5,</div><div class='del'>-	0x01c7, 0x01c8,</div><div class='del'>-	0x01ca, 0x01cb,</div><div class='del'>-	0x01cd, 0x01cd,</div><div class='del'>-	0x01cf, 0x01cf,</div><div class='del'>-	0x01d1, 0x01d1,</div><div class='del'>-	0x01d3, 0x01d3,</div><div class='del'>-	0x01d5, 0x01d5,</div><div class='del'>-	0x01d7, 0x01d7,</div><div class='del'>-	0x01d9, 0x01d9,</div><div class='del'>-	0x01db, 0x01db,</div><div class='del'>-	0x01de, 0x01de,</div><div class='del'>-	0x01e0, 0x01e0,</div><div class='del'>-	0x01e2, 0x01e2,</div><div class='del'>-	0x01e4, 0x01e4,</div><div class='del'>-	0x01e6, 0x01e6,</div><div class='del'>-	0x01e8, 0x01e8,</div><div class='del'>-	0x01ea, 0x01ea,</div><div class='del'>-	0x01ec, 0x01ec,</div><div class='del'>-	0x01ee, 0x01ee,</div><div class='del'>-	0x01f1, 0x01f2,</div><div class='del'>-	0x01f4, 0x01f4,</div><div class='del'>-	0x01f6, 0x01f8,</div><div class='del'>-	0x01fa, 0x01fa,</div><div class='del'>-	0x01fc, 0x01fc,</div><div class='del'>-	0x01fe, 0x01fe,</div><div class='del'>-	0x0200, 0x0200,</div><div class='del'>-	0x0202, 0x0202,</div><div class='del'>-	0x0204, 0x0204,</div><div class='del'>-	0x0206, 0x0206,</div><div class='del'>-	0x0208, 0x0208,</div><div class='del'>-	0x020a, 0x020a,</div><div class='del'>-	0x020c, 0x020c,</div><div class='del'>-	0x020e, 0x020e,</div><div class='del'>-	0x0210, 0x0210,</div><div class='del'>-	0x0212, 0x0212,</div><div class='del'>-	0x0214, 0x0214,</div><div class='del'>-	0x0216, 0x0216,</div><div class='del'>-	0x0218, 0x0218,</div><div class='del'>-	0x021a, 0x021a,</div><div class='del'>-	0x021c, 0x021c,</div><div class='del'>-	0x021e, 0x021e,</div><div class='del'>-	0x0220, 0x0220,</div><div class='del'>-	0x0222, 0x0222,</div><div class='del'>-	0x0224, 0x0224,</div><div class='del'>-	0x0226, 0x0226,</div><div class='del'>-	0x0228, 0x0228,</div><div class='del'>-	0x022a, 0x022a,</div><div class='del'>-	0x022c, 0x022c,</div><div class='del'>-	0x022e, 0x022e,</div><div class='del'>-	0x0230, 0x0230,</div><div class='del'>-	0x0232, 0x0232,</div><div class='del'>-	0x023a, 0x023b,</div><div class='del'>-	0x023d, 0x023e,</div><div class='del'>-	0x0241, 0x0241,</div><div class='del'>-	0x0243, 0x0246,</div><div class='del'>-	0x0248, 0x0248,</div><div class='del'>-	0x024a, 0x024a,</div><div class='del'>-	0x024c, 0x024c,</div><div class='del'>-	0x024e, 0x024e,</div><div class='del'>-	0x0345, 0x0345,</div><div class='del'>-	0x0370, 0x0370,</div><div class='del'>-	0x0372, 0x0372,</div><div class='del'>-	0x0376, 0x0376,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x038f,</div><div class='del'>-	0x0391, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ab,</div><div class='del'>-	0x03c2, 0x03c2,</div><div class='del'>-	0x03cf, 0x03d1,</div><div class='del'>-	0x03d5, 0x03d6,</div><div class='del'>-	0x03d8, 0x03d8,</div><div class='del'>-	0x03da, 0x03da,</div><div class='del'>-	0x03dc, 0x03dc,</div><div class='del'>-	0x03de, 0x03de,</div><div class='del'>-	0x03e0, 0x03e0,</div><div class='del'>-	0x03e2, 0x03e2,</div><div class='del'>-	0x03e4, 0x03e4,</div><div class='del'>-	0x03e6, 0x03e6,</div><div class='del'>-	0x03e8, 0x03e8,</div><div class='del'>-	0x03ea, 0x03ea,</div><div class='del'>-	0x03ec, 0x03ec,</div><div class='del'>-	0x03ee, 0x03ee,</div><div class='del'>-	0x03f0, 0x03f1,</div><div class='del'>-	0x03f4, 0x03f5,</div><div class='del'>-	0x03f7, 0x03f7,</div><div class='del'>-	0x03f9, 0x03fa,</div><div class='del'>-	0x03fd, 0x042f,</div><div class='del'>-	0x0460, 0x0460,</div><div class='del'>-	0x0462, 0x0462,</div><div class='del'>-	0x0464, 0x0464,</div><div class='del'>-	0x0466, 0x0466,</div><div class='del'>-	0x0468, 0x0468,</div><div class='del'>-	0x046a, 0x046a,</div><div class='del'>-	0x046c, 0x046c,</div><div class='del'>-	0x046e, 0x046e,</div><div class='del'>-	0x0470, 0x0470,</div><div class='del'>-	0x0472, 0x0472,</div><div class='del'>-	0x0474, 0x0474,</div><div class='del'>-	0x0476, 0x0476,</div><div class='del'>-	0x0478, 0x0478,</div><div class='del'>-	0x047a, 0x047a,</div><div class='del'>-	0x047c, 0x047c,</div><div class='del'>-	0x047e, 0x047e,</div><div class='del'>-	0x0480, 0x0480,</div><div class='del'>-	0x048a, 0x048a,</div><div class='del'>-	0x048c, 0x048c,</div><div class='del'>-	0x048e, 0x048e,</div><div class='del'>-	0x0490, 0x0490,</div><div class='del'>-	0x0492, 0x0492,</div><div class='del'>-	0x0494, 0x0494,</div><div class='del'>-	0x0496, 0x0496,</div><div class='del'>-	0x0498, 0x0498,</div><div class='del'>-	0x049a, 0x049a,</div><div class='del'>-	0x049c, 0x049c,</div><div class='del'>-	0x049e, 0x049e,</div><div class='del'>-	0x04a0, 0x04a0,</div><div class='del'>-	0x04a2, 0x04a2,</div><div class='del'>-	0x04a4, 0x04a4,</div><div class='del'>-	0x04a6, 0x04a6,</div><div class='del'>-	0x04a8, 0x04a8,</div><div class='del'>-	0x04aa, 0x04aa,</div><div class='del'>-	0x04ac, 0x04ac,</div><div class='del'>-	0x04ae, 0x04ae,</div><div class='del'>-	0x04b0, 0x04b0,</div><div class='del'>-	0x04b2, 0x04b2,</div><div class='del'>-	0x04b4, 0x04b4,</div><div class='del'>-	0x04b6, 0x04b6,</div><div class='del'>-	0x04b8, 0x04b8,</div><div class='del'>-	0x04ba, 0x04ba,</div><div class='del'>-	0x04bc, 0x04bc,</div><div class='del'>-	0x04be, 0x04be,</div><div class='del'>-	0x04c0, 0x04c1,</div><div class='del'>-	0x04c3, 0x04c3,</div><div class='del'>-	0x04c5, 0x04c5,</div><div class='del'>-	0x04c7, 0x04c7,</div><div class='del'>-	0x04c9, 0x04c9,</div><div class='del'>-	0x04cb, 0x04cb,</div><div class='del'>-	0x04cd, 0x04cd,</div><div class='del'>-	0x04d0, 0x04d0,</div><div class='del'>-	0x04d2, 0x04d2,</div><div class='del'>-	0x04d4, 0x04d4,</div><div class='del'>-	0x04d6, 0x04d6,</div><div class='del'>-	0x04d8, 0x04d8,</div><div class='del'>-	0x04da, 0x04da,</div><div class='del'>-	0x04dc, 0x04dc,</div><div class='del'>-	0x04de, 0x04de,</div><div class='del'>-	0x04e0, 0x04e0,</div><div class='del'>-	0x04e2, 0x04e2,</div><div class='del'>-	0x04e4, 0x04e4,</div><div class='del'>-	0x04e6, 0x04e6,</div><div class='del'>-	0x04e8, 0x04e8,</div><div class='del'>-	0x04ea, 0x04ea,</div><div class='del'>-	0x04ec, 0x04ec,</div><div class='del'>-	0x04ee, 0x04ee,</div><div class='del'>-	0x04f0, 0x04f0,</div><div class='del'>-	0x04f2, 0x04f2,</div><div class='del'>-	0x04f4, 0x04f4,</div><div class='del'>-	0x04f6, 0x04f6,</div><div class='del'>-	0x04f8, 0x04f8,</div><div class='del'>-	0x04fa, 0x04fa,</div><div class='del'>-	0x04fc, 0x04fc,</div><div class='del'>-	0x04fe, 0x04fe,</div><div class='del'>-	0x0500, 0x0500,</div><div class='del'>-	0x0502, 0x0502,</div><div class='del'>-	0x0504, 0x0504,</div><div class='del'>-	0x0506, 0x0506,</div><div class='del'>-	0x0508, 0x0508,</div><div class='del'>-	0x050a, 0x050a,</div><div class='del'>-	0x050c, 0x050c,</div><div class='del'>-	0x050e, 0x050e,</div><div class='del'>-	0x0510, 0x0510,</div><div class='del'>-	0x0512, 0x0512,</div><div class='del'>-	0x0514, 0x0514,</div><div class='del'>-	0x0516, 0x0516,</div><div class='del'>-	0x0518, 0x0518,</div><div class='del'>-	0x051a, 0x051a,</div><div class='del'>-	0x051c, 0x051c,</div><div class='del'>-	0x051e, 0x051e,</div><div class='del'>-	0x0520, 0x0520,</div><div class='del'>-	0x0522, 0x0522,</div><div class='del'>-	0x0524, 0x0524,</div><div class='del'>-	0x0526, 0x0526,</div><div class='del'>-	0x0528, 0x0528,</div><div class='del'>-	0x052a, 0x052a,</div><div class='del'>-	0x052c, 0x052c,</div><div class='del'>-	0x052e, 0x052e,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0587, 0x0587,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1e00, 0x1e00,</div><div class='del'>-	0x1e02, 0x1e02,</div><div class='del'>-	0x1e04, 0x1e04,</div><div class='del'>-	0x1e06, 0x1e06,</div><div class='del'>-	0x1e08, 0x1e08,</div><div class='del'>-	0x1e0a, 0x1e0a,</div><div class='del'>-	0x1e0c, 0x1e0c,</div><div class='del'>-	0x1e0e, 0x1e0e,</div><div class='del'>-	0x1e10, 0x1e10,</div><div class='del'>-	0x1e12, 0x1e12,</div><div class='del'>-	0x1e14, 0x1e14,</div><div class='del'>-	0x1e16, 0x1e16,</div><div class='del'>-	0x1e18, 0x1e18,</div><div class='del'>-	0x1e1a, 0x1e1a,</div><div class='del'>-	0x1e1c, 0x1e1c,</div><div class='del'>-	0x1e1e, 0x1e1e,</div><div class='del'>-	0x1e20, 0x1e20,</div><div class='del'>-	0x1e22, 0x1e22,</div><div class='del'>-	0x1e24, 0x1e24,</div><div class='del'>-	0x1e26, 0x1e26,</div><div class='del'>-	0x1e28, 0x1e28,</div><div class='del'>-	0x1e2a, 0x1e2a,</div><div class='del'>-	0x1e2c, 0x1e2c,</div><div class='del'>-	0x1e2e, 0x1e2e,</div><div class='del'>-	0x1e30, 0x1e30,</div><div class='del'>-	0x1e32, 0x1e32,</div><div class='del'>-	0x1e34, 0x1e34,</div><div class='del'>-	0x1e36, 0x1e36,</div><div class='del'>-	0x1e38, 0x1e38,</div><div class='del'>-	0x1e3a, 0x1e3a,</div><div class='del'>-	0x1e3c, 0x1e3c,</div><div class='del'>-	0x1e3e, 0x1e3e,</div><div class='del'>-	0x1e40, 0x1e40,</div><div class='del'>-	0x1e42, 0x1e42,</div><div class='del'>-	0x1e44, 0x1e44,</div><div class='del'>-	0x1e46, 0x1e46,</div><div class='del'>-	0x1e48, 0x1e48,</div><div class='del'>-	0x1e4a, 0x1e4a,</div><div class='del'>-	0x1e4c, 0x1e4c,</div><div class='del'>-	0x1e4e, 0x1e4e,</div><div class='del'>-	0x1e50, 0x1e50,</div><div class='del'>-	0x1e52, 0x1e52,</div><div class='del'>-	0x1e54, 0x1e54,</div><div class='del'>-	0x1e56, 0x1e56,</div><div class='del'>-	0x1e58, 0x1e58,</div><div class='del'>-	0x1e5a, 0x1e5a,</div><div class='del'>-	0x1e5c, 0x1e5c,</div><div class='del'>-	0x1e5e, 0x1e5e,</div><div class='del'>-	0x1e60, 0x1e60,</div><div class='del'>-	0x1e62, 0x1e62,</div><div class='del'>-	0x1e64, 0x1e64,</div><div class='del'>-	0x1e66, 0x1e66,</div><div class='del'>-	0x1e68, 0x1e68,</div><div class='del'>-	0x1e6a, 0x1e6a,</div><div class='del'>-	0x1e6c, 0x1e6c,</div><div class='del'>-	0x1e6e, 0x1e6e,</div><div class='del'>-	0x1e70, 0x1e70,</div><div class='del'>-	0x1e72, 0x1e72,</div><div class='del'>-	0x1e74, 0x1e74,</div><div class='del'>-	0x1e76, 0x1e76,</div><div class='del'>-	0x1e78, 0x1e78,</div><div class='del'>-	0x1e7a, 0x1e7a,</div><div class='del'>-	0x1e7c, 0x1e7c,</div><div class='del'>-	0x1e7e, 0x1e7e,</div><div class='del'>-	0x1e80, 0x1e80,</div><div class='del'>-	0x1e82, 0x1e82,</div><div class='del'>-	0x1e84, 0x1e84,</div><div class='del'>-	0x1e86, 0x1e86,</div><div class='del'>-	0x1e88, 0x1e88,</div><div class='del'>-	0x1e8a, 0x1e8a,</div><div class='del'>-	0x1e8c, 0x1e8c,</div><div class='del'>-	0x1e8e, 0x1e8e,</div><div class='del'>-	0x1e90, 0x1e90,</div><div class='del'>-	0x1e92, 0x1e92,</div><div class='del'>-	0x1e94, 0x1e94,</div><div class='del'>-	0x1e9a, 0x1e9b,</div><div class='del'>-	0x1e9e, 0x1e9e,</div><div class='del'>-	0x1ea0, 0x1ea0,</div><div class='del'>-	0x1ea2, 0x1ea2,</div><div class='del'>-	0x1ea4, 0x1ea4,</div><div class='del'>-	0x1ea6, 0x1ea6,</div><div class='del'>-	0x1ea8, 0x1ea8,</div><div class='del'>-	0x1eaa, 0x1eaa,</div><div class='del'>-	0x1eac, 0x1eac,</div><div class='del'>-	0x1eae, 0x1eae,</div><div class='del'>-	0x1eb0, 0x1eb0,</div><div class='del'>-	0x1eb2, 0x1eb2,</div><div class='del'>-	0x1eb4, 0x1eb4,</div><div class='del'>-	0x1eb6, 0x1eb6,</div><div class='del'>-	0x1eb8, 0x1eb8,</div><div class='del'>-	0x1eba, 0x1eba,</div><div class='del'>-	0x1ebc, 0x1ebc,</div><div class='del'>-	0x1ebe, 0x1ebe,</div><div class='del'>-	0x1ec0, 0x1ec0,</div><div class='del'>-	0x1ec2, 0x1ec2,</div><div class='del'>-	0x1ec4, 0x1ec4,</div><div class='del'>-	0x1ec6, 0x1ec6,</div><div class='del'>-	0x1ec8, 0x1ec8,</div><div class='del'>-	0x1eca, 0x1eca,</div><div class='del'>-	0x1ecc, 0x1ecc,</div><div class='del'>-	0x1ece, 0x1ece,</div><div class='del'>-	0x1ed0, 0x1ed0,</div><div class='del'>-	0x1ed2, 0x1ed2,</div><div class='del'>-	0x1ed4, 0x1ed4,</div><div class='del'>-	0x1ed6, 0x1ed6,</div><div class='del'>-	0x1ed8, 0x1ed8,</div><div class='del'>-	0x1eda, 0x1eda,</div><div class='del'>-	0x1edc, 0x1edc,</div><div class='del'>-	0x1ede, 0x1ede,</div><div class='del'>-	0x1ee0, 0x1ee0,</div><div class='del'>-	0x1ee2, 0x1ee2,</div><div class='del'>-	0x1ee4, 0x1ee4,</div><div class='del'>-	0x1ee6, 0x1ee6,</div><div class='del'>-	0x1ee8, 0x1ee8,</div><div class='del'>-	0x1eea, 0x1eea,</div><div class='del'>-	0x1eec, 0x1eec,</div><div class='del'>-	0x1eee, 0x1eee,</div><div class='del'>-	0x1ef0, 0x1ef0,</div><div class='del'>-	0x1ef2, 0x1ef2,</div><div class='del'>-	0x1ef4, 0x1ef4,</div><div class='del'>-	0x1ef6, 0x1ef6,</div><div class='del'>-	0x1ef8, 0x1ef8,</div><div class='del'>-	0x1efa, 0x1efa,</div><div class='del'>-	0x1efc, 0x1efc,</div><div class='del'>-	0x1efe, 0x1efe,</div><div class='del'>-	0x1f08, 0x1f0f,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f28, 0x1f2f,</div><div class='del'>-	0x1f38, 0x1f3f,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f5f,</div><div class='del'>-	0x1f68, 0x1f6f,</div><div class='del'>-	0x1f80, 0x1faf,</div><div class='del'>-	0x1fb2, 0x1fb4,</div><div class='del'>-	0x1fb7, 0x1fbc,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc7, 0x1fcc,</div><div class='del'>-	0x1fd8, 0x1fdb,</div><div class='del'>-	0x1fe8, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff7, 0x1ffc,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x212a, 0x212b,</div><div class='del'>-	0x2132, 0x2132,</div><div class='del'>-	0x2160, 0x216f,</div><div class='del'>-	0x2183, 0x2183,</div><div class='del'>-	0x24b6, 0x24cf,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c60, 0x2c60,</div><div class='del'>-	0x2c62, 0x2c64,</div><div class='del'>-	0x2c67, 0x2c67,</div><div class='del'>-	0x2c69, 0x2c69,</div><div class='del'>-	0x2c6b, 0x2c6b,</div><div class='del'>-	0x2c6d, 0x2c70,</div><div class='del'>-	0x2c72, 0x2c72,</div><div class='del'>-	0x2c75, 0x2c75,</div><div class='del'>-	0x2c7e, 0x2c80,</div><div class='del'>-	0x2c82, 0x2c82,</div><div class='del'>-	0x2c84, 0x2c84,</div><div class='del'>-	0x2c86, 0x2c86,</div><div class='del'>-	0x2c88, 0x2c88,</div><div class='del'>-	0x2c8a, 0x2c8a,</div><div class='del'>-	0x2c8c, 0x2c8c,</div><div class='del'>-	0x2c8e, 0x2c8e,</div><div class='del'>-	0x2c90, 0x2c90,</div><div class='del'>-	0x2c92, 0x2c92,</div><div class='del'>-	0x2c94, 0x2c94,</div><div class='del'>-	0x2c96, 0x2c96,</div><div class='del'>-	0x2c98, 0x2c98,</div><div class='del'>-	0x2c9a, 0x2c9a,</div><div class='del'>-	0x2c9c, 0x2c9c,</div><div class='del'>-	0x2c9e, 0x2c9e,</div><div class='del'>-	0x2ca0, 0x2ca0,</div><div class='del'>-	0x2ca2, 0x2ca2,</div><div class='del'>-	0x2ca4, 0x2ca4,</div><div class='del'>-	0x2ca6, 0x2ca6,</div><div class='del'>-	0x2ca8, 0x2ca8,</div><div class='del'>-	0x2caa, 0x2caa,</div><div class='del'>-	0x2cac, 0x2cac,</div><div class='del'>-	0x2cae, 0x2cae,</div><div class='del'>-	0x2cb0, 0x2cb0,</div><div class='del'>-	0x2cb2, 0x2cb2,</div><div class='del'>-	0x2cb4, 0x2cb4,</div><div class='del'>-	0x2cb6, 0x2cb6,</div><div class='del'>-	0x2cb8, 0x2cb8,</div><div class='del'>-	0x2cba, 0x2cba,</div><div class='del'>-	0x2cbc, 0x2cbc,</div><div class='del'>-	0x2cbe, 0x2cbe,</div><div class='del'>-	0x2cc0, 0x2cc0,</div><div class='del'>-	0x2cc2, 0x2cc2,</div><div class='del'>-	0x2cc4, 0x2cc4,</div><div class='del'>-	0x2cc6, 0x2cc6,</div><div class='del'>-	0x2cc8, 0x2cc8,</div><div class='del'>-	0x2cca, 0x2cca,</div><div class='del'>-	0x2ccc, 0x2ccc,</div><div class='del'>-	0x2cce, 0x2cce,</div><div class='del'>-	0x2cd0, 0x2cd0,</div><div class='del'>-	0x2cd2, 0x2cd2,</div><div class='del'>-	0x2cd4, 0x2cd4,</div><div class='del'>-	0x2cd6, 0x2cd6,</div><div class='del'>-	0x2cd8, 0x2cd8,</div><div class='del'>-	0x2cda, 0x2cda,</div><div class='del'>-	0x2cdc, 0x2cdc,</div><div class='del'>-	0x2cde, 0x2cde,</div><div class='del'>-	0x2ce0, 0x2ce0,</div><div class='del'>-	0x2ce2, 0x2ce2,</div><div class='del'>-	0x2ceb, 0x2ceb,</div><div class='del'>-	0x2ced, 0x2ced,</div><div class='del'>-	0x2cf2, 0x2cf2,</div><div class='del'>-	0xa640, 0xa640,</div><div class='del'>-	0xa642, 0xa642,</div><div class='del'>-	0xa644, 0xa644,</div><div class='del'>-	0xa646, 0xa646,</div><div class='del'>-	0xa648, 0xa648,</div><div class='del'>-	0xa64a, 0xa64a,</div><div class='del'>-	0xa64c, 0xa64c,</div><div class='del'>-	0xa64e, 0xa64e,</div><div class='del'>-	0xa650, 0xa650,</div><div class='del'>-	0xa652, 0xa652,</div><div class='del'>-	0xa654, 0xa654,</div><div class='del'>-	0xa656, 0xa656,</div><div class='del'>-	0xa658, 0xa658,</div><div class='del'>-	0xa65a, 0xa65a,</div><div class='del'>-	0xa65c, 0xa65c,</div><div class='del'>-	0xa65e, 0xa65e,</div><div class='del'>-	0xa660, 0xa660,</div><div class='del'>-	0xa662, 0xa662,</div><div class='del'>-	0xa664, 0xa664,</div><div class='del'>-	0xa666, 0xa666,</div><div class='del'>-	0xa668, 0xa668,</div><div class='del'>-	0xa66a, 0xa66a,</div><div class='del'>-	0xa66c, 0xa66c,</div><div class='del'>-	0xa680, 0xa680,</div><div class='del'>-	0xa682, 0xa682,</div><div class='del'>-	0xa684, 0xa684,</div><div class='del'>-	0xa686, 0xa686,</div><div class='del'>-	0xa688, 0xa688,</div><div class='del'>-	0xa68a, 0xa68a,</div><div class='del'>-	0xa68c, 0xa68c,</div><div class='del'>-	0xa68e, 0xa68e,</div><div class='del'>-	0xa690, 0xa690,</div><div class='del'>-	0xa692, 0xa692,</div><div class='del'>-	0xa694, 0xa694,</div><div class='del'>-	0xa696, 0xa696,</div><div class='del'>-	0xa698, 0xa698,</div><div class='del'>-	0xa69a, 0xa69a,</div><div class='del'>-	0xa722, 0xa722,</div><div class='del'>-	0xa724, 0xa724,</div><div class='del'>-	0xa726, 0xa726,</div><div class='del'>-	0xa728, 0xa728,</div><div class='del'>-	0xa72a, 0xa72a,</div><div class='del'>-	0xa72c, 0xa72c,</div><div class='del'>-	0xa72e, 0xa72e,</div><div class='del'>-	0xa732, 0xa732,</div><div class='del'>-	0xa734, 0xa734,</div><div class='del'>-	0xa736, 0xa736,</div><div class='del'>-	0xa738, 0xa738,</div><div class='del'>-	0xa73a, 0xa73a,</div><div class='del'>-	0xa73c, 0xa73c,</div><div class='del'>-	0xa73e, 0xa73e,</div><div class='del'>-	0xa740, 0xa740,</div><div class='del'>-	0xa742, 0xa742,</div><div class='del'>-	0xa744, 0xa744,</div><div class='del'>-	0xa746, 0xa746,</div><div class='del'>-	0xa748, 0xa748,</div><div class='del'>-	0xa74a, 0xa74a,</div><div class='del'>-	0xa74c, 0xa74c,</div><div class='del'>-	0xa74e, 0xa74e,</div><div class='del'>-	0xa750, 0xa750,</div><div class='del'>-	0xa752, 0xa752,</div><div class='del'>-	0xa754, 0xa754,</div><div class='del'>-	0xa756, 0xa756,</div><div class='del'>-	0xa758, 0xa758,</div><div class='del'>-	0xa75a, 0xa75a,</div><div class='del'>-	0xa75c, 0xa75c,</div><div class='del'>-	0xa75e, 0xa75e,</div><div class='del'>-	0xa760, 0xa760,</div><div class='del'>-	0xa762, 0xa762,</div><div class='del'>-	0xa764, 0xa764,</div><div class='del'>-	0xa766, 0xa766,</div><div class='del'>-	0xa768, 0xa768,</div><div class='del'>-	0xa76a, 0xa76a,</div><div class='del'>-	0xa76c, 0xa76c,</div><div class='del'>-	0xa76e, 0xa76e,</div><div class='del'>-	0xa779, 0xa779,</div><div class='del'>-	0xa77b, 0xa77b,</div><div class='del'>-	0xa77d, 0xa77e,</div><div class='del'>-	0xa780, 0xa780,</div><div class='del'>-	0xa782, 0xa782,</div><div class='del'>-	0xa784, 0xa784,</div><div class='del'>-	0xa786, 0xa786,</div><div class='del'>-	0xa78b, 0xa78b,</div><div class='del'>-	0xa78d, 0xa78d,</div><div class='del'>-	0xa790, 0xa790,</div><div class='del'>-	0xa792, 0xa792,</div><div class='del'>-	0xa796, 0xa796,</div><div class='del'>-	0xa798, 0xa798,</div><div class='del'>-	0xa79a, 0xa79a,</div><div class='del'>-	0xa79c, 0xa79c,</div><div class='del'>-	0xa79e, 0xa79e,</div><div class='del'>-	0xa7a0, 0xa7a0,</div><div class='del'>-	0xa7a2, 0xa7a2,</div><div class='del'>-	0xa7a4, 0xa7a4,</div><div class='del'>-	0xa7a6, 0xa7a6,</div><div class='del'>-	0xa7a8, 0xa7a8,</div><div class='del'>-	0xa7aa, 0xa7ae,</div><div class='del'>-	0xa7b0, 0xa7b4,</div><div class='del'>-	0xa7b6, 0xa7b6,</div><div class='del'>-	0xa7b8, 0xa7b8,</div><div class='del'>-	0xab70, 0xabbf,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0x10400, 0x10427,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x118a0, 0x118bf,</div><div class='del'>-	0x16e40, 0x16e5f,</div><div class='del'>-	0x1e900, 0x1e921,</div><div class='del'>-}; /* CR_Changes_When_Casefolded */</div><div class='del'>-</div><div class='del'>-/* 'Changes_When_Casemapped': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Changes_When_Casemapped[] = {</div><div class='del'>-	121,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x0137,</div><div class='del'>-	0x0139, 0x018c,</div><div class='del'>-	0x018e, 0x019a,</div><div class='del'>-	0x019c, 0x01a9,</div><div class='del'>-	0x01ac, 0x01b9,</div><div class='del'>-	0x01bc, 0x01bd,</div><div class='del'>-	0x01bf, 0x01bf,</div><div class='del'>-	0x01c4, 0x0220,</div><div class='del'>-	0x0222, 0x0233,</div><div class='del'>-	0x023a, 0x0254,</div><div class='del'>-	0x0256, 0x0257,</div><div class='del'>-	0x0259, 0x0259,</div><div class='del'>-	0x025b, 0x025c,</div><div class='del'>-	0x0260, 0x0261,</div><div class='del'>-	0x0263, 0x0263,</div><div class='del'>-	0x0265, 0x0266,</div><div class='del'>-	0x0268, 0x026c,</div><div class='del'>-	0x026f, 0x026f,</div><div class='del'>-	0x0271, 0x0272,</div><div class='del'>-	0x0275, 0x0275,</div><div class='del'>-	0x027d, 0x027d,</div><div class='del'>-	0x0280, 0x0280,</div><div class='del'>-	0x0283, 0x0283,</div><div class='del'>-	0x0287, 0x028c,</div><div class='del'>-	0x0292, 0x0292,</div><div class='del'>-	0x029d, 0x029e,</div><div class='del'>-	0x0345, 0x0345,</div><div class='del'>-	0x0370, 0x0373,</div><div class='del'>-	0x0376, 0x0377,</div><div class='del'>-	0x037b, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03d1,</div><div class='del'>-	0x03d5, 0x03f5,</div><div class='del'>-	0x03f7, 0x03fb,</div><div class='del'>-	0x03fd, 0x0481,</div><div class='del'>-	0x048a, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fd, 0x10ff,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1d79, 0x1d79,</div><div class='del'>-	0x1d7d, 0x1d7d,</div><div class='del'>-	0x1e00, 0x1e9b,</div><div class='del'>-	0x1e9e, 0x1e9e,</div><div class='del'>-	0x1ea0, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fe0, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffc,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x212a, 0x212b,</div><div class='del'>-	0x2132, 0x2132,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2160, 0x217f,</div><div class='del'>-	0x2183, 0x2184,</div><div class='del'>-	0x24b6, 0x24e9,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2c70,</div><div class='del'>-	0x2c72, 0x2c73,</div><div class='del'>-	0x2c75, 0x2c76,</div><div class='del'>-	0x2c7e, 0x2ce3,</div><div class='del'>-	0x2ceb, 0x2cee,</div><div class='del'>-	0x2cf2, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0xa640, 0xa66d,</div><div class='del'>-	0xa680, 0xa69b,</div><div class='del'>-	0xa722, 0xa72f,</div><div class='del'>-	0xa732, 0xa76f,</div><div class='del'>-	0xa779, 0xa787,</div><div class='del'>-	0xa78b, 0xa78d,</div><div class='del'>-	0xa790, 0xa793,</div><div class='del'>-	0xa796, 0xa7ae,</div><div class='del'>-	0xa7b0, 0xa7b9,</div><div class='del'>-	0xab53, 0xab53,</div><div class='del'>-	0xab70, 0xabbf,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0x10400, 0x1044f,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x118a0, 0x118df,</div><div class='del'>-	0x16e40, 0x16e7f,</div><div class='del'>-	0x1e900, 0x1e943,</div><div class='del'>-}; /* CR_Changes_When_Casemapped */</div><div class='del'>-</div><div class='del'>-/* 'ID_Start': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_ID_Start[] = {</div><div class='del'>-	599,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x02c1,</div><div class='del'>-	0x02c6, 0x02d1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x02ec, 0x02ec,</div><div class='del'>-	0x02ee, 0x02ee,</div><div class='del'>-	0x0370, 0x0374,</div><div class='del'>-	0x0376, 0x0377,</div><div class='del'>-	0x037a, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03f5,</div><div class='del'>-	0x03f7, 0x0481,</div><div class='del'>-	0x048a, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x0559,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f2,</div><div class='del'>-	0x0620, 0x064a,</div><div class='del'>-	0x066e, 0x066f,</div><div class='del'>-	0x0671, 0x06d3,</div><div class='del'>-	0x06d5, 0x06d5,</div><div class='del'>-	0x06e5, 0x06e6,</div><div class='del'>-	0x06ee, 0x06ef,</div><div class='del'>-	0x06fa, 0x06fc,</div><div class='del'>-	0x06ff, 0x06ff,</div><div class='del'>-	0x0710, 0x0710,</div><div class='del'>-	0x0712, 0x072f,</div><div class='del'>-	0x074d, 0x07a5,</div><div class='del'>-	0x07b1, 0x07b1,</div><div class='del'>-	0x07ca, 0x07ea,</div><div class='del'>-	0x07f4, 0x07f5,</div><div class='del'>-	0x07fa, 0x07fa,</div><div class='del'>-	0x0800, 0x0815,</div><div class='del'>-	0x081a, 0x081a,</div><div class='del'>-	0x0824, 0x0824,</div><div class='del'>-	0x0828, 0x0828,</div><div class='del'>-	0x0840, 0x0858,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x0904, 0x0939,</div><div class='del'>-	0x093d, 0x093d,</div><div class='del'>-	0x0950, 0x0950,</div><div class='del'>-	0x0958, 0x0961,</div><div class='del'>-	0x0971, 0x0980,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bd, 0x09bd,</div><div class='del'>-	0x09ce, 0x09ce,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e1,</div><div class='del'>-	0x09f0, 0x09f1,</div><div class='del'>-	0x09fc, 0x09fc,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a72, 0x0a74,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abd, 0x0abd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae1,</div><div class='del'>-	0x0af9, 0x0af9,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3d, 0x0b3d,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b71, 0x0b71,</div><div class='del'>-	0x0b83, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c3d,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c80, 0x0c80,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbd, 0x0cbd,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d3d,</div><div class='del'>-	0x0d4e, 0x0d4e,</div><div class='del'>-	0x0d54, 0x0d56,</div><div class='del'>-	0x0d5f, 0x0d61,</div><div class='del'>-	0x0d7a, 0x0d7f,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0e01, 0x0e30,</div><div class='del'>-	0x0e32, 0x0e33,</div><div class='del'>-	0x0e40, 0x0e46,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb0,</div><div class='del'>-	0x0eb2, 0x0eb3,</div><div class='del'>-	0x0ebd, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f00,</div><div class='del'>-	0x0f40, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f88, 0x0f8c,</div><div class='del'>-	0x1000, 0x102a,</div><div class='del'>-	0x103f, 0x103f,</div><div class='del'>-	0x1050, 0x1055,</div><div class='del'>-	0x105a, 0x105d,</div><div class='del'>-	0x1061, 0x1061,</div><div class='del'>-	0x1065, 0x1066,</div><div class='del'>-	0x106e, 0x1070,</div><div class='del'>-	0x1075, 0x1081,</div><div class='del'>-	0x108e, 0x108e,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fc, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x1380, 0x138f,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1401, 0x166c,</div><div class='del'>-	0x166f, 0x167f,</div><div class='del'>-	0x1681, 0x169a,</div><div class='del'>-	0x16a0, 0x16ea,</div><div class='del'>-	0x16ee, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1711,</div><div class='del'>-	0x1720, 0x1731,</div><div class='del'>-	0x1740, 0x1751,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1780, 0x17b3,</div><div class='del'>-	0x17d7, 0x17d7,</div><div class='del'>-	0x17dc, 0x17dc,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18a8,</div><div class='del'>-	0x18aa, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1950, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x1a00, 0x1a16,</div><div class='del'>-	0x1a20, 0x1a54,</div><div class='del'>-	0x1aa7, 0x1aa7,</div><div class='del'>-	0x1b05, 0x1b33,</div><div class='del'>-	0x1b45, 0x1b4b,</div><div class='del'>-	0x1b83, 0x1ba0,</div><div class='del'>-	0x1bae, 0x1baf,</div><div class='del'>-	0x1bba, 0x1be5,</div><div class='del'>-	0x1c00, 0x1c23,</div><div class='del'>-	0x1c4d, 0x1c4f,</div><div class='del'>-	0x1c5a, 0x1c7d,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1ce9, 0x1cec,</div><div class='del'>-	0x1cee, 0x1cf1,</div><div class='del'>-	0x1cf5, 0x1cf6,</div><div class='del'>-	0x1d00, 0x1dbf,</div><div class='del'>-	0x1e00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fe0, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffc,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2118, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x2139,</div><div class='del'>-	0x213c, 0x213f,</div><div class='del'>-	0x2145, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2160, 0x2188,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2ce4,</div><div class='del'>-	0x2ceb, 0x2cee,</div><div class='del'>-	0x2cf2, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x3005, 0x3007,</div><div class='del'>-	0x3021, 0x3029,</div><div class='del'>-	0x3031, 0x3035,</div><div class='del'>-	0x3038, 0x303c,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x309b, 0x309f,</div><div class='del'>-	0x30a1, 0x30fa,</div><div class='del'>-	0x30fc, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x31a0, 0x31ba,</div><div class='del'>-	0x31f0, 0x31ff,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa4d0, 0xa4fd,</div><div class='del'>-	0xa500, 0xa60c,</div><div class='del'>-	0xa610, 0xa61f,</div><div class='del'>-	0xa62a, 0xa62b,</div><div class='del'>-	0xa640, 0xa66e,</div><div class='del'>-	0xa67f, 0xa69d,</div><div class='del'>-	0xa6a0, 0xa6ef,</div><div class='del'>-	0xa717, 0xa71f,</div><div class='del'>-	0xa722, 0xa788,</div><div class='del'>-	0xa78b, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa801,</div><div class='del'>-	0xa803, 0xa805,</div><div class='del'>-	0xa807, 0xa80a,</div><div class='del'>-	0xa80c, 0xa822,</div><div class='del'>-	0xa840, 0xa873,</div><div class='del'>-	0xa882, 0xa8b3,</div><div class='del'>-	0xa8f2, 0xa8f7,</div><div class='del'>-	0xa8fb, 0xa8fb,</div><div class='del'>-	0xa8fd, 0xa8fe,</div><div class='del'>-	0xa90a, 0xa925,</div><div class='del'>-	0xa930, 0xa946,</div><div class='del'>-	0xa960, 0xa97c,</div><div class='del'>-	0xa984, 0xa9b2,</div><div class='del'>-	0xa9cf, 0xa9cf,</div><div class='del'>-	0xa9e0, 0xa9e4,</div><div class='del'>-	0xa9e6, 0xa9ef,</div><div class='del'>-	0xa9fa, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa28,</div><div class='del'>-	0xaa40, 0xaa42,</div><div class='del'>-	0xaa44, 0xaa4b,</div><div class='del'>-	0xaa60, 0xaa76,</div><div class='del'>-	0xaa7a, 0xaa7a,</div><div class='del'>-	0xaa7e, 0xaaaf,</div><div class='del'>-	0xaab1, 0xaab1,</div><div class='del'>-	0xaab5, 0xaab6,</div><div class='del'>-	0xaab9, 0xaabd,</div><div class='del'>-	0xaac0, 0xaac0,</div><div class='del'>-	0xaac2, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadd,</div><div class='del'>-	0xaae0, 0xaaea,</div><div class='del'>-	0xaaf2, 0xaaf4,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab5c, 0xab65,</div><div class='del'>-	0xab70, 0xabe2,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb1d,</div><div class='del'>-	0xfb1f, 0xfb28,</div><div class='del'>-	0xfb2a, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3d,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfb,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0xff66, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10140, 0x10174,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031f,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x10375,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x103a0, 0x103c3,</div><div class='del'>-	0x103c8, 0x103cf,</div><div class='del'>-	0x103d1, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10860, 0x10876,</div><div class='del'>-	0x10880, 0x1089e,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x10900, 0x10915,</div><div class='del'>-	0x10920, 0x10939,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a00,</div><div class='del'>-	0x10a10, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a60, 0x10a7c,</div><div class='del'>-	0x10a80, 0x10a9c,</div><div class='del'>-	0x10ac0, 0x10ac7,</div><div class='del'>-	0x10ac9, 0x10ae4,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b40, 0x10b55,</div><div class='del'>-	0x10b60, 0x10b72,</div><div class='del'>-	0x10b80, 0x10b91,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10d00, 0x10d23,</div><div class='del'>-	0x10f00, 0x10f1c,</div><div class='del'>-	0x10f27, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f45,</div><div class='del'>-	0x11003, 0x11037,</div><div class='del'>-	0x11083, 0x110af,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x11103, 0x11126,</div><div class='del'>-	0x11144, 0x11144,</div><div class='del'>-	0x11150, 0x11172,</div><div class='del'>-	0x11176, 0x11176,</div><div class='del'>-	0x11183, 0x111b2,</div><div class='del'>-	0x111c1, 0x111c4,</div><div class='del'>-	0x111da, 0x111da,</div><div class='del'>-	0x111dc, 0x111dc,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1122b,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a8,</div><div class='del'>-	0x112b0, 0x112de,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133d, 0x1133d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x1135d, 0x11361,</div><div class='del'>-	0x11400, 0x11434,</div><div class='del'>-	0x11447, 0x1144a,</div><div class='del'>-	0x11480, 0x114af,</div><div class='del'>-	0x114c4, 0x114c5,</div><div class='del'>-	0x114c7, 0x114c7,</div><div class='del'>-	0x11580, 0x115ae,</div><div class='del'>-	0x115d8, 0x115db,</div><div class='del'>-	0x11600, 0x1162f,</div><div class='del'>-	0x11644, 0x11644,</div><div class='del'>-	0x11680, 0x116aa,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x11800, 0x1182b,</div><div class='del'>-	0x118a0, 0x118df,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a00,</div><div class='del'>-	0x11a0b, 0x11a32,</div><div class='del'>-	0x11a3a, 0x11a3a,</div><div class='del'>-	0x11a50, 0x11a50,</div><div class='del'>-	0x11a5c, 0x11a83,</div><div class='del'>-	0x11a86, 0x11a89,</div><div class='del'>-	0x11a9d, 0x11a9d,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c2e,</div><div class='del'>-	0x11c40, 0x11c40,</div><div class='del'>-	0x11c72, 0x11c8f,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d30,</div><div class='del'>-	0x11d46, 0x11d46,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d89,</div><div class='del'>-	0x11d98, 0x11d98,</div><div class='del'>-	0x11ee0, 0x11ef2,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16b00, 0x16b2f,</div><div class='del'>-	0x16b40, 0x16b43,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e7f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f50,</div><div class='del'>-	0x16f93, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6fa,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d734,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d76e,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d7a8,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7cb,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e900, 0x1e943,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-}; /* CR_ID_Start */</div><div class='del'>-</div><div class='del'>-/* 'ID_Continue': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_ID_Continue[] = {</div><div class='del'>-	707,</div><div class='del'>-	0x0030, 0x0039,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x005f, 0x005f,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00b7, 0x00b7,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x02c1,</div><div class='del'>-	0x02c6, 0x02d1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x02ec, 0x02ec,</div><div class='del'>-	0x02ee, 0x02ee,</div><div class='del'>-	0x0300, 0x0374,</div><div class='del'>-	0x0376, 0x0377,</div><div class='del'>-	0x037a, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03f5,</div><div class='del'>-	0x03f7, 0x0481,</div><div class='del'>-	0x0483, 0x0487,</div><div class='del'>-	0x048a, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x0559,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x0591, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c5,</div><div class='del'>-	0x05c7, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f2,</div><div class='del'>-	0x0610, 0x061a,</div><div class='del'>-	0x0620, 0x0669,</div><div class='del'>-	0x066e, 0x06d3,</div><div class='del'>-	0x06d5, 0x06dc,</div><div class='del'>-	0x06df, 0x06e8,</div><div class='del'>-	0x06ea, 0x06fc,</div><div class='del'>-	0x06ff, 0x06ff,</div><div class='del'>-	0x0710, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07f5,</div><div class='del'>-	0x07fa, 0x07fa,</div><div class='del'>-	0x07fd, 0x07fd,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d3, 0x08e1,</div><div class='del'>-	0x08e3, 0x0963,</div><div class='del'>-	0x0966, 0x096f,</div><div class='del'>-	0x0971, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09f1,</div><div class='del'>-	0x09fc, 0x09fc,</div><div class='del'>-	0x09fe, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0af9, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b6f,</div><div class='del'>-	0x0b71, 0x0b71,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bef,</div><div class='del'>-	0x0c00, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c80, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4e,</div><div class='del'>-	0x0d54, 0x0d57,</div><div class='del'>-	0x0d5f, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0d7a, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df3,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e40, 0x0e4e,</div><div class='del'>-	0x0e50, 0x0e59,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f00,</div><div class='del'>-	0x0f18, 0x0f19,</div><div class='del'>-	0x0f20, 0x0f29,</div><div class='del'>-	0x0f35, 0x0f35,</div><div class='del'>-	0x0f37, 0x0f37,</div><div class='del'>-	0x0f39, 0x0f39,</div><div class='del'>-	0x0f3e, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f84,</div><div class='del'>-	0x0f86, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fc6, 0x0fc6,</div><div class='del'>-	0x1000, 0x1049,</div><div class='del'>-	0x1050, 0x109d,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fc, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x135f,</div><div class='del'>-	0x1369, 0x1371,</div><div class='del'>-	0x1380, 0x138f,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1401, 0x166c,</div><div class='del'>-	0x166f, 0x167f,</div><div class='del'>-	0x1681, 0x169a,</div><div class='del'>-	0x16a0, 0x16ea,</div><div class='del'>-	0x16ee, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1734,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17d3,</div><div class='del'>-	0x17d7, 0x17d7,</div><div class='del'>-	0x17dc, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x180b, 0x180d,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1946, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x1a00, 0x1a1b,</div><div class='del'>-	0x1a20, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa7, 0x1aa7,</div><div class='del'>-	0x1ab0, 0x1abd,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b59,</div><div class='del'>-	0x1b6b, 0x1b73,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1c00, 0x1c37,</div><div class='del'>-	0x1c40, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7d,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1cd0, 0x1cd2,</div><div class='del'>-	0x1cd4, 0x1cf9,</div><div class='del'>-	0x1d00, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fe0, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffc,</div><div class='del'>-	0x203f, 0x2040,</div><div class='del'>-	0x2054, 0x2054,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20d0, 0x20dc,</div><div class='del'>-	0x20e1, 0x20e1,</div><div class='del'>-	0x20e5, 0x20f0,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2118, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x2139,</div><div class='del'>-	0x213c, 0x213f,</div><div class='del'>-	0x2145, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2160, 0x2188,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2ce4,</div><div class='del'>-	0x2ceb, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0x3005, 0x3007,</div><div class='del'>-	0x3021, 0x302f,</div><div class='del'>-	0x3031, 0x3035,</div><div class='del'>-	0x3038, 0x303c,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x309f,</div><div class='del'>-	0x30a1, 0x30fa,</div><div class='del'>-	0x30fc, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x31a0, 0x31ba,</div><div class='del'>-	0x31f0, 0x31ff,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa4d0, 0xa4fd,</div><div class='del'>-	0xa500, 0xa60c,</div><div class='del'>-	0xa610, 0xa62b,</div><div class='del'>-	0xa640, 0xa66f,</div><div class='del'>-	0xa674, 0xa67d,</div><div class='del'>-	0xa67f, 0xa6f1,</div><div class='del'>-	0xa717, 0xa71f,</div><div class='del'>-	0xa722, 0xa788,</div><div class='del'>-	0xa78b, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa827,</div><div class='del'>-	0xa840, 0xa873,</div><div class='del'>-	0xa880, 0xa8c5,</div><div class='del'>-	0xa8d0, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8f7,</div><div class='del'>-	0xa8fb, 0xa8fb,</div><div class='del'>-	0xa8fd, 0xa92d,</div><div class='del'>-	0xa930, 0xa953,</div><div class='del'>-	0xa960, 0xa97c,</div><div class='del'>-	0xa980, 0xa9c0,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9e0, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa60, 0xaa76,</div><div class='del'>-	0xaa7a, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadd,</div><div class='del'>-	0xaae0, 0xaaef,</div><div class='del'>-	0xaaf2, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab5c, 0xab65,</div><div class='del'>-	0xab70, 0xabea,</div><div class='del'>-	0xabec, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb28,</div><div class='del'>-	0xfb2a, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3d,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfb,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfe20, 0xfe2f,</div><div class='del'>-	0xfe33, 0xfe34,</div><div class='del'>-	0xfe4d, 0xfe4f,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xff10, 0xff19,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff3f, 0xff3f,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0xff66, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10140, 0x10174,</div><div class='del'>-	0x101fd, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e0, 0x102e0,</div><div class='del'>-	0x10300, 0x1031f,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x103a0, 0x103c3,</div><div class='del'>-	0x103c8, 0x103cf,</div><div class='del'>-	0x103d1, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10860, 0x10876,</div><div class='del'>-	0x10880, 0x1089e,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x10900, 0x10915,</div><div class='del'>-	0x10920, 0x10939,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a3f,</div><div class='del'>-	0x10a60, 0x10a7c,</div><div class='del'>-	0x10a80, 0x10a9c,</div><div class='del'>-	0x10ac0, 0x10ac7,</div><div class='del'>-	0x10ac9, 0x10ae6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b40, 0x10b55,</div><div class='del'>-	0x10b60, 0x10b72,</div><div class='del'>-	0x10b80, 0x10b91,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10d00, 0x10d27,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-	0x10f00, 0x10f1c,</div><div class='del'>-	0x10f27, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f50,</div><div class='del'>-	0x11000, 0x11046,</div><div class='del'>-	0x11066, 0x1106f,</div><div class='del'>-	0x1107f, 0x110ba,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x1113f,</div><div class='del'>-	0x11144, 0x11146,</div><div class='del'>-	0x11150, 0x11173,</div><div class='del'>-	0x11176, 0x11176,</div><div class='del'>-	0x11180, 0x111c4,</div><div class='del'>-	0x111c9, 0x111cc,</div><div class='del'>-	0x111d0, 0x111da,</div><div class='del'>-	0x111dc, 0x111dc,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x11237,</div><div class='del'>-	0x1123e, 0x1123e,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a8,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133b, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11400, 0x1144a,</div><div class='del'>-	0x11450, 0x11459,</div><div class='del'>-	0x1145e, 0x1145e,</div><div class='del'>-	0x11480, 0x114c5,</div><div class='del'>-	0x114c7, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115c0,</div><div class='del'>-	0x115d8, 0x115dd,</div><div class='del'>-	0x11600, 0x11640,</div><div class='del'>-	0x11644, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x11730, 0x11739,</div><div class='del'>-	0x11800, 0x1183a,</div><div class='del'>-	0x118a0, 0x118e9,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a3e,</div><div class='del'>-	0x11a47, 0x11a47,</div><div class='del'>-	0x11a50, 0x11a83,</div><div class='del'>-	0x11a86, 0x11a99,</div><div class='del'>-	0x11a9d, 0x11a9d,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c40,</div><div class='del'>-	0x11c50, 0x11c59,</div><div class='del'>-	0x11c72, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d47,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d98,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-	0x11ee0, 0x11ef6,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af4,</div><div class='del'>-	0x16b00, 0x16b36,</div><div class='del'>-	0x16b40, 0x16b43,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e7f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9d, 0x1bc9e,</div><div class='del'>-	0x1d165, 0x1d169,</div><div class='del'>-	0x1d16d, 0x1d172,</div><div class='del'>-	0x1d17b, 0x1d182,</div><div class='del'>-	0x1d185, 0x1d18b,</div><div class='del'>-	0x1d1aa, 0x1d1ad,</div><div class='del'>-	0x1d242, 0x1d244,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6fa,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d734,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d76e,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d7a8,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1da00, 0x1da36,</div><div class='del'>-	0x1da3b, 0x1da6c,</div><div class='del'>-	0x1da75, 0x1da75,</div><div class='del'>-	0x1da84, 0x1da84,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8d0, 0x1e8d6,</div><div class='del'>-	0x1e900, 0x1e94a,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-}; /* CR_ID_Continue */</div><div class='del'>-</div><div class='del'>-/* 'XID_Start': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_XID_Start[] = {</div><div class='del'>-	606,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x02c1,</div><div class='del'>-	0x02c6, 0x02d1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x02ec, 0x02ec,</div><div class='del'>-	0x02ee, 0x02ee,</div><div class='del'>-	0x0370, 0x0374,</div><div class='del'>-	0x0376, 0x0377,</div><div class='del'>-	0x037b, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03f5,</div><div class='del'>-	0x03f7, 0x0481,</div><div class='del'>-	0x048a, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x0559,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f2,</div><div class='del'>-	0x0620, 0x064a,</div><div class='del'>-	0x066e, 0x066f,</div><div class='del'>-	0x0671, 0x06d3,</div><div class='del'>-	0x06d5, 0x06d5,</div><div class='del'>-	0x06e5, 0x06e6,</div><div class='del'>-	0x06ee, 0x06ef,</div><div class='del'>-	0x06fa, 0x06fc,</div><div class='del'>-	0x06ff, 0x06ff,</div><div class='del'>-	0x0710, 0x0710,</div><div class='del'>-	0x0712, 0x072f,</div><div class='del'>-	0x074d, 0x07a5,</div><div class='del'>-	0x07b1, 0x07b1,</div><div class='del'>-	0x07ca, 0x07ea,</div><div class='del'>-	0x07f4, 0x07f5,</div><div class='del'>-	0x07fa, 0x07fa,</div><div class='del'>-	0x0800, 0x0815,</div><div class='del'>-	0x081a, 0x081a,</div><div class='del'>-	0x0824, 0x0824,</div><div class='del'>-	0x0828, 0x0828,</div><div class='del'>-	0x0840, 0x0858,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x0904, 0x0939,</div><div class='del'>-	0x093d, 0x093d,</div><div class='del'>-	0x0950, 0x0950,</div><div class='del'>-	0x0958, 0x0961,</div><div class='del'>-	0x0971, 0x0980,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bd, 0x09bd,</div><div class='del'>-	0x09ce, 0x09ce,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e1,</div><div class='del'>-	0x09f0, 0x09f1,</div><div class='del'>-	0x09fc, 0x09fc,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a72, 0x0a74,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abd, 0x0abd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae1,</div><div class='del'>-	0x0af9, 0x0af9,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3d, 0x0b3d,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b71, 0x0b71,</div><div class='del'>-	0x0b83, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c3d,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c80, 0x0c80,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbd, 0x0cbd,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d3d,</div><div class='del'>-	0x0d4e, 0x0d4e,</div><div class='del'>-	0x0d54, 0x0d56,</div><div class='del'>-	0x0d5f, 0x0d61,</div><div class='del'>-	0x0d7a, 0x0d7f,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0e01, 0x0e30,</div><div class='del'>-	0x0e32, 0x0e32,</div><div class='del'>-	0x0e40, 0x0e46,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb0,</div><div class='del'>-	0x0eb2, 0x0eb2,</div><div class='del'>-	0x0ebd, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f00,</div><div class='del'>-	0x0f40, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f88, 0x0f8c,</div><div class='del'>-	0x1000, 0x102a,</div><div class='del'>-	0x103f, 0x103f,</div><div class='del'>-	0x1050, 0x1055,</div><div class='del'>-	0x105a, 0x105d,</div><div class='del'>-	0x1061, 0x1061,</div><div class='del'>-	0x1065, 0x1066,</div><div class='del'>-	0x106e, 0x1070,</div><div class='del'>-	0x1075, 0x1081,</div><div class='del'>-	0x108e, 0x108e,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fc, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x1380, 0x138f,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1401, 0x166c,</div><div class='del'>-	0x166f, 0x167f,</div><div class='del'>-	0x1681, 0x169a,</div><div class='del'>-	0x16a0, 0x16ea,</div><div class='del'>-	0x16ee, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1711,</div><div class='del'>-	0x1720, 0x1731,</div><div class='del'>-	0x1740, 0x1751,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1780, 0x17b3,</div><div class='del'>-	0x17d7, 0x17d7,</div><div class='del'>-	0x17dc, 0x17dc,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18a8,</div><div class='del'>-	0x18aa, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1950, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x1a00, 0x1a16,</div><div class='del'>-	0x1a20, 0x1a54,</div><div class='del'>-	0x1aa7, 0x1aa7,</div><div class='del'>-	0x1b05, 0x1b33,</div><div class='del'>-	0x1b45, 0x1b4b,</div><div class='del'>-	0x1b83, 0x1ba0,</div><div class='del'>-	0x1bae, 0x1baf,</div><div class='del'>-	0x1bba, 0x1be5,</div><div class='del'>-	0x1c00, 0x1c23,</div><div class='del'>-	0x1c4d, 0x1c4f,</div><div class='del'>-	0x1c5a, 0x1c7d,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1ce9, 0x1cec,</div><div class='del'>-	0x1cee, 0x1cf1,</div><div class='del'>-	0x1cf5, 0x1cf6,</div><div class='del'>-	0x1d00, 0x1dbf,</div><div class='del'>-	0x1e00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fe0, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffc,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2118, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x2139,</div><div class='del'>-	0x213c, 0x213f,</div><div class='del'>-	0x2145, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2160, 0x2188,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2ce4,</div><div class='del'>-	0x2ceb, 0x2cee,</div><div class='del'>-	0x2cf2, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x3005, 0x3007,</div><div class='del'>-	0x3021, 0x3029,</div><div class='del'>-	0x3031, 0x3035,</div><div class='del'>-	0x3038, 0x303c,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x309d, 0x309f,</div><div class='del'>-	0x30a1, 0x30fa,</div><div class='del'>-	0x30fc, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x31a0, 0x31ba,</div><div class='del'>-	0x31f0, 0x31ff,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa4d0, 0xa4fd,</div><div class='del'>-	0xa500, 0xa60c,</div><div class='del'>-	0xa610, 0xa61f,</div><div class='del'>-	0xa62a, 0xa62b,</div><div class='del'>-	0xa640, 0xa66e,</div><div class='del'>-	0xa67f, 0xa69d,</div><div class='del'>-	0xa6a0, 0xa6ef,</div><div class='del'>-	0xa717, 0xa71f,</div><div class='del'>-	0xa722, 0xa788,</div><div class='del'>-	0xa78b, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa801,</div><div class='del'>-	0xa803, 0xa805,</div><div class='del'>-	0xa807, 0xa80a,</div><div class='del'>-	0xa80c, 0xa822,</div><div class='del'>-	0xa840, 0xa873,</div><div class='del'>-	0xa882, 0xa8b3,</div><div class='del'>-	0xa8f2, 0xa8f7,</div><div class='del'>-	0xa8fb, 0xa8fb,</div><div class='del'>-	0xa8fd, 0xa8fe,</div><div class='del'>-	0xa90a, 0xa925,</div><div class='del'>-	0xa930, 0xa946,</div><div class='del'>-	0xa960, 0xa97c,</div><div class='del'>-	0xa984, 0xa9b2,</div><div class='del'>-	0xa9cf, 0xa9cf,</div><div class='del'>-	0xa9e0, 0xa9e4,</div><div class='del'>-	0xa9e6, 0xa9ef,</div><div class='del'>-	0xa9fa, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa28,</div><div class='del'>-	0xaa40, 0xaa42,</div><div class='del'>-	0xaa44, 0xaa4b,</div><div class='del'>-	0xaa60, 0xaa76,</div><div class='del'>-	0xaa7a, 0xaa7a,</div><div class='del'>-	0xaa7e, 0xaaaf,</div><div class='del'>-	0xaab1, 0xaab1,</div><div class='del'>-	0xaab5, 0xaab6,</div><div class='del'>-	0xaab9, 0xaabd,</div><div class='del'>-	0xaac0, 0xaac0,</div><div class='del'>-	0xaac2, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadd,</div><div class='del'>-	0xaae0, 0xaaea,</div><div class='del'>-	0xaaf2, 0xaaf4,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab5c, 0xab65,</div><div class='del'>-	0xab70, 0xabe2,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb1d,</div><div class='del'>-	0xfb1f, 0xfb28,</div><div class='del'>-	0xfb2a, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfc5d,</div><div class='del'>-	0xfc64, 0xfd3d,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdf9,</div><div class='del'>-	0xfe71, 0xfe71,</div><div class='del'>-	0xfe73, 0xfe73,</div><div class='del'>-	0xfe77, 0xfe77,</div><div class='del'>-	0xfe79, 0xfe79,</div><div class='del'>-	0xfe7b, 0xfe7b,</div><div class='del'>-	0xfe7d, 0xfe7d,</div><div class='del'>-	0xfe7f, 0xfefc,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0xff66, 0xff9d,</div><div class='del'>-	0xffa0, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10140, 0x10174,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031f,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x10375,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x103a0, 0x103c3,</div><div class='del'>-	0x103c8, 0x103cf,</div><div class='del'>-	0x103d1, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10860, 0x10876,</div><div class='del'>-	0x10880, 0x1089e,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x10900, 0x10915,</div><div class='del'>-	0x10920, 0x10939,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a00,</div><div class='del'>-	0x10a10, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a60, 0x10a7c,</div><div class='del'>-	0x10a80, 0x10a9c,</div><div class='del'>-	0x10ac0, 0x10ac7,</div><div class='del'>-	0x10ac9, 0x10ae4,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b40, 0x10b55,</div><div class='del'>-	0x10b60, 0x10b72,</div><div class='del'>-	0x10b80, 0x10b91,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10d00, 0x10d23,</div><div class='del'>-	0x10f00, 0x10f1c,</div><div class='del'>-	0x10f27, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f45,</div><div class='del'>-	0x11003, 0x11037,</div><div class='del'>-	0x11083, 0x110af,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x11103, 0x11126,</div><div class='del'>-	0x11144, 0x11144,</div><div class='del'>-	0x11150, 0x11172,</div><div class='del'>-	0x11176, 0x11176,</div><div class='del'>-	0x11183, 0x111b2,</div><div class='del'>-	0x111c1, 0x111c4,</div><div class='del'>-	0x111da, 0x111da,</div><div class='del'>-	0x111dc, 0x111dc,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1122b,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a8,</div><div class='del'>-	0x112b0, 0x112de,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133d, 0x1133d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x1135d, 0x11361,</div><div class='del'>-	0x11400, 0x11434,</div><div class='del'>-	0x11447, 0x1144a,</div><div class='del'>-	0x11480, 0x114af,</div><div class='del'>-	0x114c4, 0x114c5,</div><div class='del'>-	0x114c7, 0x114c7,</div><div class='del'>-	0x11580, 0x115ae,</div><div class='del'>-	0x115d8, 0x115db,</div><div class='del'>-	0x11600, 0x1162f,</div><div class='del'>-	0x11644, 0x11644,</div><div class='del'>-	0x11680, 0x116aa,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x11800, 0x1182b,</div><div class='del'>-	0x118a0, 0x118df,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a00,</div><div class='del'>-	0x11a0b, 0x11a32,</div><div class='del'>-	0x11a3a, 0x11a3a,</div><div class='del'>-	0x11a50, 0x11a50,</div><div class='del'>-	0x11a5c, 0x11a83,</div><div class='del'>-	0x11a86, 0x11a89,</div><div class='del'>-	0x11a9d, 0x11a9d,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c2e,</div><div class='del'>-	0x11c40, 0x11c40,</div><div class='del'>-	0x11c72, 0x11c8f,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d30,</div><div class='del'>-	0x11d46, 0x11d46,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d89,</div><div class='del'>-	0x11d98, 0x11d98,</div><div class='del'>-	0x11ee0, 0x11ef2,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16b00, 0x16b2f,</div><div class='del'>-	0x16b40, 0x16b43,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e7f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f50,</div><div class='del'>-	0x16f93, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6fa,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d734,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d76e,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d7a8,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7cb,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e900, 0x1e943,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-}; /* CR_XID_Start */</div><div class='del'>-</div><div class='del'>-/* 'XID_Continue': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_XID_Continue[] = {</div><div class='del'>-	714,</div><div class='del'>-	0x0030, 0x0039,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x005f, 0x005f,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00b5, 0x00b5,</div><div class='del'>-	0x00b7, 0x00b7,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x02c1,</div><div class='del'>-	0x02c6, 0x02d1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x02ec, 0x02ec,</div><div class='del'>-	0x02ee, 0x02ee,</div><div class='del'>-	0x0300, 0x0374,</div><div class='del'>-	0x0376, 0x0377,</div><div class='del'>-	0x037b, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0386, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03f5,</div><div class='del'>-	0x03f7, 0x0481,</div><div class='del'>-	0x0483, 0x0487,</div><div class='del'>-	0x048a, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x0559,</div><div class='del'>-	0x0560, 0x0588,</div><div class='del'>-	0x0591, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c5,</div><div class='del'>-	0x05c7, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f2,</div><div class='del'>-	0x0610, 0x061a,</div><div class='del'>-	0x0620, 0x0669,</div><div class='del'>-	0x066e, 0x06d3,</div><div class='del'>-	0x06d5, 0x06dc,</div><div class='del'>-	0x06df, 0x06e8,</div><div class='del'>-	0x06ea, 0x06fc,</div><div class='del'>-	0x06ff, 0x06ff,</div><div class='del'>-	0x0710, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07f5,</div><div class='del'>-	0x07fa, 0x07fa,</div><div class='del'>-	0x07fd, 0x07fd,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d3, 0x08e1,</div><div class='del'>-	0x08e3, 0x0963,</div><div class='del'>-	0x0966, 0x096f,</div><div class='del'>-	0x0971, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09f1,</div><div class='del'>-	0x09fc, 0x09fc,</div><div class='del'>-	0x09fe, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0af9, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b6f,</div><div class='del'>-	0x0b71, 0x0b71,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bef,</div><div class='del'>-	0x0c00, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c80, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4e,</div><div class='del'>-	0x0d54, 0x0d57,</div><div class='del'>-	0x0d5f, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0d7a, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df3,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e40, 0x0e4e,</div><div class='del'>-	0x0e50, 0x0e59,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f00,</div><div class='del'>-	0x0f18, 0x0f19,</div><div class='del'>-	0x0f20, 0x0f29,</div><div class='del'>-	0x0f35, 0x0f35,</div><div class='del'>-	0x0f37, 0x0f37,</div><div class='del'>-	0x0f39, 0x0f39,</div><div class='del'>-	0x0f3e, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f84,</div><div class='del'>-	0x0f86, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fc6, 0x0fc6,</div><div class='del'>-	0x1000, 0x1049,</div><div class='del'>-	0x1050, 0x109d,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fc, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x135f,</div><div class='del'>-	0x1369, 0x1371,</div><div class='del'>-	0x1380, 0x138f,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1401, 0x166c,</div><div class='del'>-	0x166f, 0x167f,</div><div class='del'>-	0x1681, 0x169a,</div><div class='del'>-	0x16a0, 0x16ea,</div><div class='del'>-	0x16ee, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1734,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17d3,</div><div class='del'>-	0x17d7, 0x17d7,</div><div class='del'>-	0x17dc, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x180b, 0x180d,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1946, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x1a00, 0x1a1b,</div><div class='del'>-	0x1a20, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa7, 0x1aa7,</div><div class='del'>-	0x1ab0, 0x1abd,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b59,</div><div class='del'>-	0x1b6b, 0x1b73,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1c00, 0x1c37,</div><div class='del'>-	0x1c40, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7d,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x1cd0, 0x1cd2,</div><div class='del'>-	0x1cd4, 0x1cf9,</div><div class='del'>-	0x1d00, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fbc,</div><div class='del'>-	0x1fbe, 0x1fbe,</div><div class='del'>-	0x1fc2, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fcc,</div><div class='del'>-	0x1fd0, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fe0, 0x1fec,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffc,</div><div class='del'>-	0x203f, 0x2040,</div><div class='del'>-	0x2054, 0x2054,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20d0, 0x20dc,</div><div class='del'>-	0x20e1, 0x20e1,</div><div class='del'>-	0x20e5, 0x20f0,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2118, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0x2128, 0x2128,</div><div class='del'>-	0x212a, 0x2139,</div><div class='del'>-	0x213c, 0x213f,</div><div class='del'>-	0x2145, 0x2149,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2160, 0x2188,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2ce4,</div><div class='del'>-	0x2ceb, 0x2cf3,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0x3005, 0x3007,</div><div class='del'>-	0x3021, 0x302f,</div><div class='del'>-	0x3031, 0x3035,</div><div class='del'>-	0x3038, 0x303c,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x309a,</div><div class='del'>-	0x309d, 0x309f,</div><div class='del'>-	0x30a1, 0x30fa,</div><div class='del'>-	0x30fc, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x31a0, 0x31ba,</div><div class='del'>-	0x31f0, 0x31ff,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa4d0, 0xa4fd,</div><div class='del'>-	0xa500, 0xa60c,</div><div class='del'>-	0xa610, 0xa62b,</div><div class='del'>-	0xa640, 0xa66f,</div><div class='del'>-	0xa674, 0xa67d,</div><div class='del'>-	0xa67f, 0xa6f1,</div><div class='del'>-	0xa717, 0xa71f,</div><div class='del'>-	0xa722, 0xa788,</div><div class='del'>-	0xa78b, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa827,</div><div class='del'>-	0xa840, 0xa873,</div><div class='del'>-	0xa880, 0xa8c5,</div><div class='del'>-	0xa8d0, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8f7,</div><div class='del'>-	0xa8fb, 0xa8fb,</div><div class='del'>-	0xa8fd, 0xa92d,</div><div class='del'>-	0xa930, 0xa953,</div><div class='del'>-	0xa960, 0xa97c,</div><div class='del'>-	0xa980, 0xa9c0,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9e0, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa60, 0xaa76,</div><div class='del'>-	0xaa7a, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadd,</div><div class='del'>-	0xaae0, 0xaaef,</div><div class='del'>-	0xaaf2, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab5c, 0xab65,</div><div class='del'>-	0xab70, 0xabea,</div><div class='del'>-	0xabec, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb28,</div><div class='del'>-	0xfb2a, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfc5d,</div><div class='del'>-	0xfc64, 0xfd3d,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdf9,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfe20, 0xfe2f,</div><div class='del'>-	0xfe33, 0xfe34,</div><div class='del'>-	0xfe4d, 0xfe4f,</div><div class='del'>-	0xfe71, 0xfe71,</div><div class='del'>-	0xfe73, 0xfe73,</div><div class='del'>-	0xfe77, 0xfe77,</div><div class='del'>-	0xfe79, 0xfe79,</div><div class='del'>-	0xfe7b, 0xfe7b,</div><div class='del'>-	0xfe7d, 0xfe7d,</div><div class='del'>-	0xfe7f, 0xfefc,</div><div class='del'>-	0xff10, 0xff19,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff3f, 0xff3f,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-	0xff66, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10140, 0x10174,</div><div class='del'>-	0x101fd, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e0, 0x102e0,</div><div class='del'>-	0x10300, 0x1031f,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x103a0, 0x103c3,</div><div class='del'>-	0x103c8, 0x103cf,</div><div class='del'>-	0x103d1, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10860, 0x10876,</div><div class='del'>-	0x10880, 0x1089e,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x10900, 0x10915,</div><div class='del'>-	0x10920, 0x10939,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a3f,</div><div class='del'>-	0x10a60, 0x10a7c,</div><div class='del'>-	0x10a80, 0x10a9c,</div><div class='del'>-	0x10ac0, 0x10ac7,</div><div class='del'>-	0x10ac9, 0x10ae6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b40, 0x10b55,</div><div class='del'>-	0x10b60, 0x10b72,</div><div class='del'>-	0x10b80, 0x10b91,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10d00, 0x10d27,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-	0x10f00, 0x10f1c,</div><div class='del'>-	0x10f27, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f50,</div><div class='del'>-	0x11000, 0x11046,</div><div class='del'>-	0x11066, 0x1106f,</div><div class='del'>-	0x1107f, 0x110ba,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x1113f,</div><div class='del'>-	0x11144, 0x11146,</div><div class='del'>-	0x11150, 0x11173,</div><div class='del'>-	0x11176, 0x11176,</div><div class='del'>-	0x11180, 0x111c4,</div><div class='del'>-	0x111c9, 0x111cc,</div><div class='del'>-	0x111d0, 0x111da,</div><div class='del'>-	0x111dc, 0x111dc,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x11237,</div><div class='del'>-	0x1123e, 0x1123e,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a8,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133b, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11400, 0x1144a,</div><div class='del'>-	0x11450, 0x11459,</div><div class='del'>-	0x1145e, 0x1145e,</div><div class='del'>-	0x11480, 0x114c5,</div><div class='del'>-	0x114c7, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115c0,</div><div class='del'>-	0x115d8, 0x115dd,</div><div class='del'>-	0x11600, 0x11640,</div><div class='del'>-	0x11644, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x11730, 0x11739,</div><div class='del'>-	0x11800, 0x1183a,</div><div class='del'>-	0x118a0, 0x118e9,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a3e,</div><div class='del'>-	0x11a47, 0x11a47,</div><div class='del'>-	0x11a50, 0x11a83,</div><div class='del'>-	0x11a86, 0x11a99,</div><div class='del'>-	0x11a9d, 0x11a9d,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c40,</div><div class='del'>-	0x11c50, 0x11c59,</div><div class='del'>-	0x11c72, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d47,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d98,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-	0x11ee0, 0x11ef6,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af4,</div><div class='del'>-	0x16b00, 0x16b36,</div><div class='del'>-	0x16b40, 0x16b43,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e7f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9d, 0x1bc9e,</div><div class='del'>-	0x1d165, 0x1d169,</div><div class='del'>-	0x1d16d, 0x1d172,</div><div class='del'>-	0x1d17b, 0x1d182,</div><div class='del'>-	0x1d185, 0x1d18b,</div><div class='del'>-	0x1d1aa, 0x1d1ad,</div><div class='del'>-	0x1d242, 0x1d244,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6fa,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d734,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d76e,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d7a8,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1da00, 0x1da36,</div><div class='del'>-	0x1da3b, 0x1da6c,</div><div class='del'>-	0x1da75, 0x1da75,</div><div class='del'>-	0x1da84, 0x1da84,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8d0, 0x1e8d6,</div><div class='del'>-	0x1e900, 0x1e94a,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-}; /* CR_XID_Continue */</div><div class='del'>-</div><div class='del'>-/* 'Default_Ignorable_Code_Point': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Default_Ignorable_Code_Point[] = {</div><div class='del'>-	17,</div><div class='del'>-	0x00ad, 0x00ad,</div><div class='del'>-	0x034f, 0x034f,</div><div class='del'>-	0x061c, 0x061c,</div><div class='del'>-	0x115f, 0x1160,</div><div class='del'>-	0x17b4, 0x17b5,</div><div class='del'>-	0x180b, 0x180e,</div><div class='del'>-	0x200b, 0x200f,</div><div class='del'>-	0x202a, 0x202e,</div><div class='del'>-	0x2060, 0x206f,</div><div class='del'>-	0x3164, 0x3164,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xffa0, 0xffa0,</div><div class='del'>-	0xfff0, 0xfff8,</div><div class='del'>-	0x1bca0, 0x1bca3,</div><div class='del'>-	0x1d173, 0x1d17a,</div><div class='del'>-	0xe0000, 0xe0fff,</div><div class='del'>-}; /* CR_Default_Ignorable_Code_Point */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Extend': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Extend[] = {</div><div class='del'>-	331,</div><div class='del'>-	0x0300, 0x036f,</div><div class='del'>-	0x0483, 0x0489,</div><div class='del'>-	0x0591, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c5,</div><div class='del'>-	0x05c7, 0x05c7,</div><div class='del'>-	0x0610, 0x061a,</div><div class='del'>-	0x064b, 0x065f,</div><div class='del'>-	0x0670, 0x0670,</div><div class='del'>-	0x06d6, 0x06dc,</div><div class='del'>-	0x06df, 0x06e4,</div><div class='del'>-	0x06e7, 0x06e8,</div><div class='del'>-	0x06ea, 0x06ed,</div><div class='del'>-	0x0711, 0x0711,</div><div class='del'>-	0x0730, 0x074a,</div><div class='del'>-	0x07a6, 0x07b0,</div><div class='del'>-	0x07eb, 0x07f3,</div><div class='del'>-	0x07fd, 0x07fd,</div><div class='del'>-	0x0816, 0x0819,</div><div class='del'>-	0x081b, 0x0823,</div><div class='del'>-	0x0825, 0x0827,</div><div class='del'>-	0x0829, 0x082d,</div><div class='del'>-	0x0859, 0x085b,</div><div class='del'>-	0x08d3, 0x08e1,</div><div class='del'>-	0x08e3, 0x0902,</div><div class='del'>-	0x093a, 0x093a,</div><div class='del'>-	0x093c, 0x093c,</div><div class='del'>-	0x0941, 0x0948,</div><div class='del'>-	0x094d, 0x094d,</div><div class='del'>-	0x0951, 0x0957,</div><div class='del'>-	0x0962, 0x0963,</div><div class='del'>-	0x0981, 0x0981,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09be, 0x09be,</div><div class='del'>-	0x09c1, 0x09c4,</div><div class='del'>-	0x09cd, 0x09cd,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09e2, 0x09e3,</div><div class='del'>-	0x09fe, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a02,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a41, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a70, 0x0a71,</div><div class='del'>-	0x0a75, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a82,</div><div class='del'>-	0x0abc, 0x0abc,</div><div class='del'>-	0x0ac1, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac8,</div><div class='del'>-	0x0acd, 0x0acd,</div><div class='del'>-	0x0ae2, 0x0ae3,</div><div class='del'>-	0x0afa, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b01,</div><div class='del'>-	0x0b3c, 0x0b3c,</div><div class='del'>-	0x0b3e, 0x0b3f,</div><div class='del'>-	0x0b41, 0x0b44,</div><div class='del'>-	0x0b4d, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b62, 0x0b63,</div><div class='del'>-	0x0b82, 0x0b82,</div><div class='del'>-	0x0bbe, 0x0bbe,</div><div class='del'>-	0x0bc0, 0x0bc0,</div><div class='del'>-	0x0bcd, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0c00, 0x0c00,</div><div class='del'>-	0x0c04, 0x0c04,</div><div class='del'>-	0x0c3e, 0x0c40,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c62, 0x0c63,</div><div class='del'>-	0x0c81, 0x0c81,</div><div class='del'>-	0x0cbc, 0x0cbc,</div><div class='del'>-	0x0cbf, 0x0cbf,</div><div class='del'>-	0x0cc2, 0x0cc2,</div><div class='del'>-	0x0cc6, 0x0cc6,</div><div class='del'>-	0x0ccc, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0ce2, 0x0ce3,</div><div class='del'>-	0x0d00, 0x0d01,</div><div class='del'>-	0x0d3b, 0x0d3c,</div><div class='del'>-	0x0d3e, 0x0d3e,</div><div class='del'>-	0x0d41, 0x0d44,</div><div class='del'>-	0x0d4d, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d62, 0x0d63,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dcf,</div><div class='del'>-	0x0dd2, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0ddf, 0x0ddf,</div><div class='del'>-	0x0e31, 0x0e31,</div><div class='del'>-	0x0e34, 0x0e3a,</div><div class='del'>-	0x0e47, 0x0e4e,</div><div class='del'>-	0x0eb1, 0x0eb1,</div><div class='del'>-	0x0eb4, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebc,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0f18, 0x0f19,</div><div class='del'>-	0x0f35, 0x0f35,</div><div class='del'>-	0x0f37, 0x0f37,</div><div class='del'>-	0x0f39, 0x0f39,</div><div class='del'>-	0x0f71, 0x0f7e,</div><div class='del'>-	0x0f80, 0x0f84,</div><div class='del'>-	0x0f86, 0x0f87,</div><div class='del'>-	0x0f8d, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fc6, 0x0fc6,</div><div class='del'>-	0x102d, 0x1030,</div><div class='del'>-	0x1032, 0x1037,</div><div class='del'>-	0x1039, 0x103a,</div><div class='del'>-	0x103d, 0x103e,</div><div class='del'>-	0x1058, 0x1059,</div><div class='del'>-	0x105e, 0x1060,</div><div class='del'>-	0x1071, 0x1074,</div><div class='del'>-	0x1082, 0x1082,</div><div class='del'>-	0x1085, 0x1086,</div><div class='del'>-	0x108d, 0x108d,</div><div class='del'>-	0x109d, 0x109d,</div><div class='del'>-	0x135d, 0x135f,</div><div class='del'>-	0x1712, 0x1714,</div><div class='del'>-	0x1732, 0x1734,</div><div class='del'>-	0x1752, 0x1753,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x17b4, 0x17b5,</div><div class='del'>-	0x17b7, 0x17bd,</div><div class='del'>-	0x17c6, 0x17c6,</div><div class='del'>-	0x17c9, 0x17d3,</div><div class='del'>-	0x17dd, 0x17dd,</div><div class='del'>-	0x180b, 0x180d,</div><div class='del'>-	0x1885, 0x1886,</div><div class='del'>-	0x18a9, 0x18a9,</div><div class='del'>-	0x1920, 0x1922,</div><div class='del'>-	0x1927, 0x1928,</div><div class='del'>-	0x1932, 0x1932,</div><div class='del'>-	0x1939, 0x193b,</div><div class='del'>-	0x1a17, 0x1a18,</div><div class='del'>-	0x1a1b, 0x1a1b,</div><div class='del'>-	0x1a56, 0x1a56,</div><div class='del'>-	0x1a58, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a60,</div><div class='del'>-	0x1a62, 0x1a62,</div><div class='del'>-	0x1a65, 0x1a6c,</div><div class='del'>-	0x1a73, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a7f,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b03,</div><div class='del'>-	0x1b34, 0x1b34,</div><div class='del'>-	0x1b36, 0x1b3a,</div><div class='del'>-	0x1b3c, 0x1b3c,</div><div class='del'>-	0x1b42, 0x1b42,</div><div class='del'>-	0x1b6b, 0x1b73,</div><div class='del'>-	0x1b80, 0x1b81,</div><div class='del'>-	0x1ba2, 0x1ba5,</div><div class='del'>-	0x1ba8, 0x1ba9,</div><div class='del'>-	0x1bab, 0x1bad,</div><div class='del'>-	0x1be6, 0x1be6,</div><div class='del'>-	0x1be8, 0x1be9,</div><div class='del'>-	0x1bed, 0x1bed,</div><div class='del'>-	0x1bef, 0x1bf1,</div><div class='del'>-	0x1c2c, 0x1c33,</div><div class='del'>-	0x1c36, 0x1c37,</div><div class='del'>-	0x1cd0, 0x1cd2,</div><div class='del'>-	0x1cd4, 0x1ce0,</div><div class='del'>-	0x1ce2, 0x1ce8,</div><div class='del'>-	0x1ced, 0x1ced,</div><div class='del'>-	0x1cf4, 0x1cf4,</div><div class='del'>-	0x1cf8, 0x1cf9,</div><div class='del'>-	0x1dc0, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1dff,</div><div class='del'>-	0x200c, 0x200c,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2cef, 0x2cf1,</div><div class='del'>-	0x2d7f, 0x2d7f,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0x302a, 0x302f,</div><div class='del'>-	0x3099, 0x309a,</div><div class='del'>-	0xa66f, 0xa672,</div><div class='del'>-	0xa674, 0xa67d,</div><div class='del'>-	0xa69e, 0xa69f,</div><div class='del'>-	0xa6f0, 0xa6f1,</div><div class='del'>-	0xa802, 0xa802,</div><div class='del'>-	0xa806, 0xa806,</div><div class='del'>-	0xa80b, 0xa80b,</div><div class='del'>-	0xa825, 0xa826,</div><div class='del'>-	0xa8c4, 0xa8c5,</div><div class='del'>-	0xa8e0, 0xa8f1,</div><div class='del'>-	0xa8ff, 0xa8ff,</div><div class='del'>-	0xa926, 0xa92d,</div><div class='del'>-	0xa947, 0xa951,</div><div class='del'>-	0xa980, 0xa982,</div><div class='del'>-	0xa9b3, 0xa9b3,</div><div class='del'>-	0xa9b6, 0xa9b9,</div><div class='del'>-	0xa9bc, 0xa9bc,</div><div class='del'>-	0xa9e5, 0xa9e5,</div><div class='del'>-	0xaa29, 0xaa2e,</div><div class='del'>-	0xaa31, 0xaa32,</div><div class='del'>-	0xaa35, 0xaa36,</div><div class='del'>-	0xaa43, 0xaa43,</div><div class='del'>-	0xaa4c, 0xaa4c,</div><div class='del'>-	0xaa7c, 0xaa7c,</div><div class='del'>-	0xaab0, 0xaab0,</div><div class='del'>-	0xaab2, 0xaab4,</div><div class='del'>-	0xaab7, 0xaab8,</div><div class='del'>-	0xaabe, 0xaabf,</div><div class='del'>-	0xaac1, 0xaac1,</div><div class='del'>-	0xaaec, 0xaaed,</div><div class='del'>-	0xaaf6, 0xaaf6,</div><div class='del'>-	0xabe5, 0xabe5,</div><div class='del'>-	0xabe8, 0xabe8,</div><div class='del'>-	0xabed, 0xabed,</div><div class='del'>-	0xfb1e, 0xfb1e,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfe20, 0xfe2f,</div><div class='del'>-	0xff9e, 0xff9f,</div><div class='del'>-	0x101fd, 0x101fd,</div><div class='del'>-	0x102e0, 0x102e0,</div><div class='del'>-	0x10376, 0x1037a,</div><div class='del'>-	0x10a01, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a0f,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a3f,</div><div class='del'>-	0x10ae5, 0x10ae6,</div><div class='del'>-	0x10d24, 0x10d27,</div><div class='del'>-	0x10f46, 0x10f50,</div><div class='del'>-	0x11001, 0x11001,</div><div class='del'>-	0x11038, 0x11046,</div><div class='del'>-	0x1107f, 0x11081,</div><div class='del'>-	0x110b3, 0x110b6,</div><div class='del'>-	0x110b9, 0x110ba,</div><div class='del'>-	0x11100, 0x11102,</div><div class='del'>-	0x11127, 0x1112b,</div><div class='del'>-	0x1112d, 0x11134,</div><div class='del'>-	0x11173, 0x11173,</div><div class='del'>-	0x11180, 0x11181,</div><div class='del'>-	0x111b6, 0x111be,</div><div class='del'>-	0x111c9, 0x111cc,</div><div class='del'>-	0x1122f, 0x11231,</div><div class='del'>-	0x11234, 0x11234,</div><div class='del'>-	0x11236, 0x11237,</div><div class='del'>-	0x1123e, 0x1123e,</div><div class='del'>-	0x112df, 0x112df,</div><div class='del'>-	0x112e3, 0x112ea,</div><div class='del'>-	0x11300, 0x11301,</div><div class='del'>-	0x1133b, 0x1133c,</div><div class='del'>-	0x1133e, 0x1133e,</div><div class='del'>-	0x11340, 0x11340,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11438, 0x1143f,</div><div class='del'>-	0x11442, 0x11444,</div><div class='del'>-	0x11446, 0x11446,</div><div class='del'>-	0x1145e, 0x1145e,</div><div class='del'>-	0x114b0, 0x114b0,</div><div class='del'>-	0x114b3, 0x114b8,</div><div class='del'>-	0x114ba, 0x114ba,</div><div class='del'>-	0x114bd, 0x114bd,</div><div class='del'>-	0x114bf, 0x114c0,</div><div class='del'>-	0x114c2, 0x114c3,</div><div class='del'>-	0x115af, 0x115af,</div><div class='del'>-	0x115b2, 0x115b5,</div><div class='del'>-	0x115bc, 0x115bd,</div><div class='del'>-	0x115bf, 0x115c0,</div><div class='del'>-	0x115dc, 0x115dd,</div><div class='del'>-	0x11633, 0x1163a,</div><div class='del'>-	0x1163d, 0x1163d,</div><div class='del'>-	0x1163f, 0x11640,</div><div class='del'>-	0x116ab, 0x116ab,</div><div class='del'>-	0x116ad, 0x116ad,</div><div class='del'>-	0x116b0, 0x116b5,</div><div class='del'>-	0x116b7, 0x116b7,</div><div class='del'>-	0x1171d, 0x1171f,</div><div class='del'>-	0x11722, 0x11725,</div><div class='del'>-	0x11727, 0x1172b,</div><div class='del'>-	0x1182f, 0x11837,</div><div class='del'>-	0x11839, 0x1183a,</div><div class='del'>-	0x11a01, 0x11a0a,</div><div class='del'>-	0x11a33, 0x11a38,</div><div class='del'>-	0x11a3b, 0x11a3e,</div><div class='del'>-	0x11a47, 0x11a47,</div><div class='del'>-	0x11a51, 0x11a56,</div><div class='del'>-	0x11a59, 0x11a5b,</div><div class='del'>-	0x11a8a, 0x11a96,</div><div class='del'>-	0x11a98, 0x11a99,</div><div class='del'>-	0x11c30, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c3d,</div><div class='del'>-	0x11c3f, 0x11c3f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11caa, 0x11cb0,</div><div class='del'>-	0x11cb2, 0x11cb3,</div><div class='del'>-	0x11cb5, 0x11cb6,</div><div class='del'>-	0x11d31, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d45,</div><div class='del'>-	0x11d47, 0x11d47,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d95, 0x11d95,</div><div class='del'>-	0x11d97, 0x11d97,</div><div class='del'>-	0x11ef3, 0x11ef4,</div><div class='del'>-	0x16af0, 0x16af4,</div><div class='del'>-	0x16b30, 0x16b36,</div><div class='del'>-	0x16f8f, 0x16f92,</div><div class='del'>-	0x1bc9d, 0x1bc9e,</div><div class='del'>-	0x1d165, 0x1d165,</div><div class='del'>-	0x1d167, 0x1d169,</div><div class='del'>-	0x1d16e, 0x1d172,</div><div class='del'>-	0x1d17b, 0x1d182,</div><div class='del'>-	0x1d185, 0x1d18b,</div><div class='del'>-	0x1d1aa, 0x1d1ad,</div><div class='del'>-	0x1d242, 0x1d244,</div><div class='del'>-	0x1da00, 0x1da36,</div><div class='del'>-	0x1da3b, 0x1da6c,</div><div class='del'>-	0x1da75, 0x1da75,</div><div class='del'>-	0x1da84, 0x1da84,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e8d0, 0x1e8d6,</div><div class='del'>-	0x1e944, 0x1e94a,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-}; /* CR_Grapheme_Extend */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Base': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Base[] = {</div><div class='del'>-	806,</div><div class='del'>-	0x0020, 0x007e,</div><div class='del'>-	0x00a0, 0x00ac,</div><div class='del'>-	0x00ae, 0x02ff,</div><div class='del'>-	0x0370, 0x0377,</div><div class='del'>-	0x037a, 0x037f,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x0482,</div><div class='del'>-	0x048a, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x058a,</div><div class='del'>-	0x058d, 0x058f,</div><div class='del'>-	0x05be, 0x05be,</div><div class='del'>-	0x05c0, 0x05c0,</div><div class='del'>-	0x05c3, 0x05c3,</div><div class='del'>-	0x05c6, 0x05c6,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f4,</div><div class='del'>-	0x0606, 0x060f,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061e, 0x064a,</div><div class='del'>-	0x0660, 0x066f,</div><div class='del'>-	0x0671, 0x06d5,</div><div class='del'>-	0x06de, 0x06de,</div><div class='del'>-	0x06e5, 0x06e6,</div><div class='del'>-	0x06e9, 0x06e9,</div><div class='del'>-	0x06ee, 0x070d,</div><div class='del'>-	0x0710, 0x0710,</div><div class='del'>-	0x0712, 0x072f,</div><div class='del'>-	0x074d, 0x07a5,</div><div class='del'>-	0x07b1, 0x07b1,</div><div class='del'>-	0x07c0, 0x07ea,</div><div class='del'>-	0x07f4, 0x07fa,</div><div class='del'>-	0x07fe, 0x0815,</div><div class='del'>-	0x081a, 0x081a,</div><div class='del'>-	0x0824, 0x0824,</div><div class='del'>-	0x0828, 0x0828,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x0858,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x0903, 0x0939,</div><div class='del'>-	0x093b, 0x093b,</div><div class='del'>-	0x093d, 0x0940,</div><div class='del'>-	0x0949, 0x094c,</div><div class='del'>-	0x094e, 0x0950,</div><div class='del'>-	0x0958, 0x0961,</div><div class='del'>-	0x0964, 0x0980,</div><div class='del'>-	0x0982, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bd, 0x09bd,</div><div class='del'>-	0x09bf, 0x09c0,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cc,</div><div class='del'>-	0x09ce, 0x09ce,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e1,</div><div class='del'>-	0x09e6, 0x09fd,</div><div class='del'>-	0x0a03, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3e, 0x0a40,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a6f,</div><div class='del'>-	0x0a72, 0x0a74,</div><div class='del'>-	0x0a76, 0x0a76,</div><div class='del'>-	0x0a83, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abd, 0x0ac0,</div><div class='del'>-	0x0ac9, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acc,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae1,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0af9, 0x0af9,</div><div class='del'>-	0x0b02, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3d, 0x0b3d,</div><div class='del'>-	0x0b40, 0x0b40,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4c,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b83, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbf, 0x0bbf,</div><div class='del'>-	0x0bc1, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcc,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c3d,</div><div class='del'>-	0x0c41, 0x0c44,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c80,</div><div class='del'>-	0x0c82, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbd, 0x0cbe,</div><div class='del'>-	0x0cc0, 0x0cc1,</div><div class='del'>-	0x0cc3, 0x0cc4,</div><div class='del'>-	0x0cc7, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccb,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d3d,</div><div class='del'>-	0x0d3f, 0x0d40,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4c,</div><div class='del'>-	0x0d4e, 0x0d4f,</div><div class='del'>-	0x0d54, 0x0d56,</div><div class='del'>-	0x0d58, 0x0d61,</div><div class='del'>-	0x0d66, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dd0, 0x0dd1,</div><div class='del'>-	0x0dd8, 0x0dde,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e30,</div><div class='del'>-	0x0e32, 0x0e33,</div><div class='del'>-	0x0e3f, 0x0e46,</div><div class='del'>-	0x0e4f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb0,</div><div class='del'>-	0x0eb2, 0x0eb3,</div><div class='del'>-	0x0ebd, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f17,</div><div class='del'>-	0x0f1a, 0x0f34,</div><div class='del'>-	0x0f36, 0x0f36,</div><div class='del'>-	0x0f38, 0x0f38,</div><div class='del'>-	0x0f3a, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f7f, 0x0f7f,</div><div class='del'>-	0x0f85, 0x0f85,</div><div class='del'>-	0x0f88, 0x0f8c,</div><div class='del'>-	0x0fbe, 0x0fc5,</div><div class='del'>-	0x0fc7, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x102c,</div><div class='del'>-	0x1031, 0x1031,</div><div class='del'>-	0x1038, 0x1038,</div><div class='del'>-	0x103b, 0x103c,</div><div class='del'>-	0x103f, 0x1057,</div><div class='del'>-	0x105a, 0x105d,</div><div class='del'>-	0x1061, 0x1070,</div><div class='del'>-	0x1075, 0x1081,</div><div class='del'>-	0x1083, 0x1084,</div><div class='del'>-	0x1087, 0x108c,</div><div class='del'>-	0x108e, 0x109c,</div><div class='del'>-	0x109e, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x1360, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1711,</div><div class='del'>-	0x1720, 0x1731,</div><div class='del'>-	0x1735, 0x1736,</div><div class='del'>-	0x1740, 0x1751,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1780, 0x17b3,</div><div class='del'>-	0x17b6, 0x17b6,</div><div class='del'>-	0x17be, 0x17c5,</div><div class='del'>-	0x17c7, 0x17c8,</div><div class='del'>-	0x17d4, 0x17dc,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180a,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x1884,</div><div class='del'>-	0x1887, 0x18a8,</div><div class='del'>-	0x18aa, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1923, 0x1926,</div><div class='del'>-	0x1929, 0x192b,</div><div class='del'>-	0x1930, 0x1931,</div><div class='del'>-	0x1933, 0x1938,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a16,</div><div class='del'>-	0x1a19, 0x1a1a,</div><div class='del'>-	0x1a1e, 0x1a55,</div><div class='del'>-	0x1a57, 0x1a57,</div><div class='del'>-	0x1a61, 0x1a61,</div><div class='del'>-	0x1a63, 0x1a64,</div><div class='del'>-	0x1a6d, 0x1a72,</div><div class='del'>-	0x1a80, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1b04, 0x1b33,</div><div class='del'>-	0x1b35, 0x1b35,</div><div class='del'>-	0x1b3b, 0x1b3b,</div><div class='del'>-	0x1b3d, 0x1b41,</div><div class='del'>-	0x1b43, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b6a,</div><div class='del'>-	0x1b74, 0x1b7c,</div><div class='del'>-	0x1b82, 0x1ba1,</div><div class='del'>-	0x1ba6, 0x1ba7,</div><div class='del'>-	0x1baa, 0x1baa,</div><div class='del'>-	0x1bae, 0x1be5,</div><div class='del'>-	0x1be7, 0x1be7,</div><div class='del'>-	0x1bea, 0x1bec,</div><div class='del'>-	0x1bee, 0x1bee,</div><div class='del'>-	0x1bf2, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c2b,</div><div class='del'>-	0x1c34, 0x1c35,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cc7,</div><div class='del'>-	0x1cd3, 0x1cd3,</div><div class='del'>-	0x1ce1, 0x1ce1,</div><div class='del'>-	0x1ce9, 0x1cec,</div><div class='del'>-	0x1cee, 0x1cf3,</div><div class='del'>-	0x1cf5, 0x1cf7,</div><div class='del'>-	0x1d00, 0x1dbf,</div><div class='del'>-	0x1e00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x200a,</div><div class='del'>-	0x2010, 0x2027,</div><div class='del'>-	0x202f, 0x205f,</div><div class='del'>-	0x2070, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20bf,</div><div class='del'>-	0x2100, 0x218b,</div><div class='del'>-	0x2190, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bfe,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cee,</div><div class='del'>-	0x2cf2, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2e00, 0x2e4e,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x3029,</div><div class='del'>-	0x3030, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x309b, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa66e,</div><div class='del'>-	0xa673, 0xa673,</div><div class='del'>-	0xa67e, 0xa69d,</div><div class='del'>-	0xa6a0, 0xa6ef,</div><div class='del'>-	0xa6f2, 0xa6f7,</div><div class='del'>-	0xa700, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa801,</div><div class='del'>-	0xa803, 0xa805,</div><div class='del'>-	0xa807, 0xa80a,</div><div class='del'>-	0xa80c, 0xa824,</div><div class='del'>-	0xa827, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c3,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8f2, 0xa8fe,</div><div class='del'>-	0xa900, 0xa925,</div><div class='del'>-	0xa92e, 0xa946,</div><div class='del'>-	0xa952, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa983, 0xa9b2,</div><div class='del'>-	0xa9b4, 0xa9b5,</div><div class='del'>-	0xa9ba, 0xa9bb,</div><div class='del'>-	0xa9bd, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9e4,</div><div class='del'>-	0xa9e6, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa28,</div><div class='del'>-	0xaa2f, 0xaa30,</div><div class='del'>-	0xaa33, 0xaa34,</div><div class='del'>-	0xaa40, 0xaa42,</div><div class='del'>-	0xaa44, 0xaa4b,</div><div class='del'>-	0xaa4d, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaa7b,</div><div class='del'>-	0xaa7d, 0xaaaf,</div><div class='del'>-	0xaab1, 0xaab1,</div><div class='del'>-	0xaab5, 0xaab6,</div><div class='del'>-	0xaab9, 0xaabd,</div><div class='del'>-	0xaac0, 0xaac0,</div><div class='del'>-	0xaac2, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaeb,</div><div class='del'>-	0xaaee, 0xaaf5,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab65,</div><div class='del'>-	0xab70, 0xabe4,</div><div class='del'>-	0xabe6, 0xabe7,</div><div class='del'>-	0xabe9, 0xabec,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb1d,</div><div class='del'>-	0xfb1f, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfd,</div><div class='del'>-	0xfe10, 0xfe19,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xff01, 0xff9d,</div><div class='del'>-	0xffa0, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfffc, 0xfffd,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018e,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x101d0, 0x101fc,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e1, 0x102fb,</div><div class='del'>-	0x10300, 0x10323,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x10375,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1089e,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x108fb, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109bc, 0x109cf,</div><div class='del'>-	0x109d2, 0x10a00,</div><div class='del'>-	0x10a10, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a40, 0x10a48,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a9f,</div><div class='del'>-	0x10ac0, 0x10ae4,</div><div class='del'>-	0x10aeb, 0x10af6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b91,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10cfa, 0x10d23,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x10f00, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f45,</div><div class='del'>-	0x10f51, 0x10f59,</div><div class='del'>-	0x11000, 0x11000,</div><div class='del'>-	0x11002, 0x11037,</div><div class='del'>-	0x11047, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x11082, 0x110b2,</div><div class='del'>-	0x110b7, 0x110b8,</div><div class='del'>-	0x110bb, 0x110bc,</div><div class='del'>-	0x110be, 0x110c1,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11103, 0x11126,</div><div class='del'>-	0x1112c, 0x1112c,</div><div class='del'>-	0x11136, 0x11146,</div><div class='del'>-	0x11150, 0x11172,</div><div class='del'>-	0x11174, 0x11176,</div><div class='del'>-	0x11182, 0x111b5,</div><div class='del'>-	0x111bf, 0x111c8,</div><div class='del'>-	0x111cd, 0x111cd,</div><div class='del'>-	0x111d0, 0x111df,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1122e,</div><div class='del'>-	0x11232, 0x11233,</div><div class='del'>-	0x11235, 0x11235,</div><div class='del'>-	0x11238, 0x1123d,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a9,</div><div class='del'>-	0x112b0, 0x112de,</div><div class='del'>-	0x112e0, 0x112e2,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11302, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133d, 0x1133d,</div><div class='del'>-	0x1133f, 0x1133f,</div><div class='del'>-	0x11341, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11400, 0x11437,</div><div class='del'>-	0x11440, 0x11441,</div><div class='del'>-	0x11445, 0x11445,</div><div class='del'>-	0x11447, 0x11459,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x1145d, 0x1145d,</div><div class='del'>-	0x11480, 0x114af,</div><div class='del'>-	0x114b1, 0x114b2,</div><div class='del'>-	0x114b9, 0x114b9,</div><div class='del'>-	0x114bb, 0x114bc,</div><div class='del'>-	0x114be, 0x114be,</div><div class='del'>-	0x114c1, 0x114c1,</div><div class='del'>-	0x114c4, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115ae,</div><div class='del'>-	0x115b0, 0x115b1,</div><div class='del'>-	0x115b8, 0x115bb,</div><div class='del'>-	0x115be, 0x115be,</div><div class='del'>-	0x115c1, 0x115db,</div><div class='del'>-	0x11600, 0x11632,</div><div class='del'>-	0x1163b, 0x1163c,</div><div class='del'>-	0x1163e, 0x1163e,</div><div class='del'>-	0x11641, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11660, 0x1166c,</div><div class='del'>-	0x11680, 0x116aa,</div><div class='del'>-	0x116ac, 0x116ac,</div><div class='del'>-	0x116ae, 0x116af,</div><div class='del'>-	0x116b6, 0x116b6,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x11720, 0x11721,</div><div class='del'>-	0x11726, 0x11726,</div><div class='del'>-	0x11730, 0x1173f,</div><div class='del'>-	0x11800, 0x1182e,</div><div class='del'>-	0x11838, 0x11838,</div><div class='del'>-	0x1183b, 0x1183b,</div><div class='del'>-	0x118a0, 0x118f2,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a00,</div><div class='del'>-	0x11a0b, 0x11a32,</div><div class='del'>-	0x11a39, 0x11a3a,</div><div class='del'>-	0x11a3f, 0x11a46,</div><div class='del'>-	0x11a50, 0x11a50,</div><div class='del'>-	0x11a57, 0x11a58,</div><div class='del'>-	0x11a5c, 0x11a83,</div><div class='del'>-	0x11a86, 0x11a89,</div><div class='del'>-	0x11a97, 0x11a97,</div><div class='del'>-	0x11a9a, 0x11aa2,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c2f,</div><div class='del'>-	0x11c3e, 0x11c3e,</div><div class='del'>-	0x11c40, 0x11c45,</div><div class='del'>-	0x11c50, 0x11c6c,</div><div class='del'>-	0x11c70, 0x11c8f,</div><div class='del'>-	0x11ca9, 0x11ca9,</div><div class='del'>-	0x11cb1, 0x11cb1,</div><div class='del'>-	0x11cb4, 0x11cb4,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d30,</div><div class='del'>-	0x11d46, 0x11d46,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d8e,</div><div class='del'>-	0x11d93, 0x11d94,</div><div class='del'>-	0x11d96, 0x11d96,</div><div class='del'>-	0x11d98, 0x11d98,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-	0x11ee0, 0x11ef2,</div><div class='del'>-	0x11ef5, 0x11ef8,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af5, 0x16af5,</div><div class='del'>-	0x16b00, 0x16b2f,</div><div class='del'>-	0x16b37, 0x16b45,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e9a,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f93, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9c, 0x1bc9c,</div><div class='del'>-	0x1bc9f, 0x1bc9f,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d164,</div><div class='del'>-	0x1d166, 0x1d166,</div><div class='del'>-	0x1d16a, 0x1d16d,</div><div class='del'>-	0x1d183, 0x1d184,</div><div class='del'>-	0x1d18c, 0x1d1a9,</div><div class='del'>-	0x1d1ae, 0x1d1e8,</div><div class='del'>-	0x1d200, 0x1d241,</div><div class='del'>-	0x1d245, 0x1d245,</div><div class='del'>-	0x1d2e0, 0x1d2f3,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d378,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d9ff,</div><div class='del'>-	0x1da37, 0x1da3a,</div><div class='del'>-	0x1da6d, 0x1da74,</div><div class='del'>-	0x1da76, 0x1da83,</div><div class='del'>-	0x1da85, 0x1da8b,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8c7, 0x1e8cf,</div><div class='del'>-	0x1e900, 0x1e943,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1e95e, 0x1e95f,</div><div class='del'>-	0x1ec71, 0x1ecb4,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-	0x1f110, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f1ac,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23b,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f260, 0x1f265,</div><div class='del'>-	0x1f300, 0x1f6d4,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f9,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d8,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1f900, 0x1f90b,</div><div class='del'>-	0x1f910, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f970,</div><div class='del'>-	0x1f973, 0x1f976,</div><div class='del'>-	0x1f97a, 0x1f97a,</div><div class='del'>-	0x1f97c, 0x1f9a2,</div><div class='del'>-	0x1f9b0, 0x1f9b9,</div><div class='del'>-	0x1f9c0, 0x1f9c2,</div><div class='del'>-	0x1f9d0, 0x1f9ff,</div><div class='del'>-	0x1fa60, 0x1fa6d,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-}; /* CR_Grapheme_Base */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Link': Derived Property */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Link[] = {</div><div class='del'>-	50,</div><div class='del'>-	0x094d, 0x094d,</div><div class='del'>-	0x09cd, 0x09cd,</div><div class='del'>-	0x0a4d, 0x0a4d,</div><div class='del'>-	0x0acd, 0x0acd,</div><div class='del'>-	0x0b4d, 0x0b4d,</div><div class='del'>-	0x0bcd, 0x0bcd,</div><div class='del'>-	0x0c4d, 0x0c4d,</div><div class='del'>-	0x0ccd, 0x0ccd,</div><div class='del'>-	0x0d3b, 0x0d3c,</div><div class='del'>-	0x0d4d, 0x0d4d,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0e3a, 0x0e3a,</div><div class='del'>-	0x0f84, 0x0f84,</div><div class='del'>-	0x1039, 0x103a,</div><div class='del'>-	0x1714, 0x1714,</div><div class='del'>-	0x1734, 0x1734,</div><div class='del'>-	0x17d2, 0x17d2,</div><div class='del'>-	0x1a60, 0x1a60,</div><div class='del'>-	0x1b44, 0x1b44,</div><div class='del'>-	0x1baa, 0x1bab,</div><div class='del'>-	0x1bf2, 0x1bf3,</div><div class='del'>-	0x2d7f, 0x2d7f,</div><div class='del'>-	0xa806, 0xa806,</div><div class='del'>-	0xa8c4, 0xa8c4,</div><div class='del'>-	0xa953, 0xa953,</div><div class='del'>-	0xa9c0, 0xa9c0,</div><div class='del'>-	0xaaf6, 0xaaf6,</div><div class='del'>-	0xabed, 0xabed,</div><div class='del'>-	0x10a3f, 0x10a3f,</div><div class='del'>-	0x11046, 0x11046,</div><div class='del'>-	0x1107f, 0x1107f,</div><div class='del'>-	0x110b9, 0x110b9,</div><div class='del'>-	0x11133, 0x11134,</div><div class='del'>-	0x111c0, 0x111c0,</div><div class='del'>-	0x11235, 0x11235,</div><div class='del'>-	0x112ea, 0x112ea,</div><div class='del'>-	0x1134d, 0x1134d,</div><div class='del'>-	0x11442, 0x11442,</div><div class='del'>-	0x114c2, 0x114c2,</div><div class='del'>-	0x115bf, 0x115bf,</div><div class='del'>-	0x1163f, 0x1163f,</div><div class='del'>-	0x116b6, 0x116b6,</div><div class='del'>-	0x1172b, 0x1172b,</div><div class='del'>-	0x11839, 0x11839,</div><div class='del'>-	0x11a34, 0x11a34,</div><div class='del'>-	0x11a47, 0x11a47,</div><div class='del'>-	0x11a99, 0x11a99,</div><div class='del'>-	0x11c3f, 0x11c3f,</div><div class='del'>-	0x11d44, 0x11d45,</div><div class='del'>-	0x11d97, 0x11d97,</div><div class='del'>-}; /* CR_Grapheme_Link */</div><div class='del'>-</div><div class='del'>-/* 'Common': Script */</div><div class='del'>-static const OnigCodePoint CR_Common[] = {</div><div class='del'>-	166,</div><div class='del'>-	0x0000, 0x0040,</div><div class='del'>-	0x005b, 0x0060,</div><div class='del'>-	0x007b, 0x00a9,</div><div class='del'>-	0x00ab, 0x00b9,</div><div class='del'>-	0x00bb, 0x00bf,</div><div class='del'>-	0x00d7, 0x00d7,</div><div class='del'>-	0x00f7, 0x00f7,</div><div class='del'>-	0x02b9, 0x02df,</div><div class='del'>-	0x02e5, 0x02e9,</div><div class='del'>-	0x02ec, 0x02ff,</div><div class='del'>-	0x0374, 0x0374,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0385, 0x0385,</div><div class='del'>-	0x0387, 0x0387,</div><div class='del'>-	0x0589, 0x0589,</div><div class='del'>-	0x0605, 0x0605,</div><div class='del'>-	0x060c, 0x060c,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061f, 0x061f,</div><div class='del'>-	0x0640, 0x0640,</div><div class='del'>-	0x06dd, 0x06dd,</div><div class='del'>-	0x08e2, 0x08e2,</div><div class='del'>-	0x0964, 0x0965,</div><div class='del'>-	0x0e3f, 0x0e3f,</div><div class='del'>-	0x0fd5, 0x0fd8,</div><div class='del'>-	0x10fb, 0x10fb,</div><div class='del'>-	0x16eb, 0x16ed,</div><div class='del'>-	0x1735, 0x1736,</div><div class='del'>-	0x1802, 0x1803,</div><div class='del'>-	0x1805, 0x1805,</div><div class='del'>-	0x1cd3, 0x1cd3,</div><div class='del'>-	0x1ce1, 0x1ce1,</div><div class='del'>-	0x1ce9, 0x1cec,</div><div class='del'>-	0x1cee, 0x1cf3,</div><div class='del'>-	0x1cf5, 0x1cf7,</div><div class='del'>-	0x2000, 0x200b,</div><div class='del'>-	0x200e, 0x2064,</div><div class='del'>-	0x2066, 0x2070,</div><div class='del'>-	0x2074, 0x207e,</div><div class='del'>-	0x2080, 0x208e,</div><div class='del'>-	0x20a0, 0x20bf,</div><div class='del'>-	0x2100, 0x2125,</div><div class='del'>-	0x2127, 0x2129,</div><div class='del'>-	0x212c, 0x2131,</div><div class='del'>-	0x2133, 0x214d,</div><div class='del'>-	0x214f, 0x215f,</div><div class='del'>-	0x2189, 0x218b,</div><div class='del'>-	0x2190, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x27ff,</div><div class='del'>-	0x2900, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bfe,</div><div class='del'>-	0x2e00, 0x2e4e,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x3004,</div><div class='del'>-	0x3006, 0x3006,</div><div class='del'>-	0x3008, 0x3020,</div><div class='del'>-	0x3030, 0x3037,</div><div class='del'>-	0x303c, 0x303f,</div><div class='del'>-	0x309b, 0x309c,</div><div class='del'>-	0x30a0, 0x30a0,</div><div class='del'>-	0x30fb, 0x30fc,</div><div class='del'>-	0x3190, 0x319f,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x3220, 0x325f,</div><div class='del'>-	0x327f, 0x32cf,</div><div class='del'>-	0x3358, 0x33ff,</div><div class='del'>-	0x4dc0, 0x4dff,</div><div class='del'>-	0xa700, 0xa721,</div><div class='del'>-	0xa788, 0xa78a,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa92e, 0xa92e,</div><div class='del'>-	0xa9cf, 0xa9cf,</div><div class='del'>-	0xab5b, 0xab5b,</div><div class='del'>-	0xfd3e, 0xfd3f,</div><div class='del'>-	0xfe10, 0xfe19,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xff20,</div><div class='del'>-	0xff3b, 0xff40,</div><div class='del'>-	0xff5b, 0xff65,</div><div class='del'>-	0xff70, 0xff70,</div><div class='del'>-	0xff9e, 0xff9f,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0xfffd,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1013f,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101d0, 0x101fc,</div><div class='del'>-	0x102e1, 0x102fb,</div><div class='del'>-	0x1bca0, 0x1bca3,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d166,</div><div class='del'>-	0x1d16a, 0x1d17a,</div><div class='del'>-	0x1d183, 0x1d184,</div><div class='del'>-	0x1d18c, 0x1d1a9,</div><div class='del'>-	0x1d1ae, 0x1d1e8,</div><div class='del'>-	0x1d2e0, 0x1d2f3,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d378,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1ec71, 0x1ecb4,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-	0x1f110, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f1ac,</div><div class='del'>-	0x1f1e6, 0x1f1ff,</div><div class='del'>-	0x1f201, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23b,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f260, 0x1f265,</div><div class='del'>-	0x1f300, 0x1f6d4,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f9,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d8,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1f900, 0x1f90b,</div><div class='del'>-	0x1f910, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f970,</div><div class='del'>-	0x1f973, 0x1f976,</div><div class='del'>-	0x1f97a, 0x1f97a,</div><div class='del'>-	0x1f97c, 0x1f9a2,</div><div class='del'>-	0x1f9b0, 0x1f9b9,</div><div class='del'>-	0x1f9c0, 0x1f9c2,</div><div class='del'>-	0x1f9d0, 0x1f9ff,</div><div class='del'>-	0x1fa60, 0x1fa6d,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-}; /* CR_Common */</div><div class='del'>-</div><div class='del'>-/* 'Latin': Script */</div><div class='del'>-static const OnigCodePoint CR_Latin[] = {</div><div class='del'>-	30,</div><div class='del'>-	0x0041, 0x005a,</div><div class='del'>-	0x0061, 0x007a,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x00c0, 0x00d6,</div><div class='del'>-	0x00d8, 0x00f6,</div><div class='del'>-	0x00f8, 0x02b8,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x1d00, 0x1d25,</div><div class='del'>-	0x1d2c, 0x1d5c,</div><div class='del'>-	0x1d62, 0x1d65,</div><div class='del'>-	0x1d6b, 0x1d77,</div><div class='del'>-	0x1d79, 0x1dbe,</div><div class='del'>-	0x1e00, 0x1eff,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x212a, 0x212b,</div><div class='del'>-	0x2132, 0x2132,</div><div class='del'>-	0x214e, 0x214e,</div><div class='del'>-	0x2160, 0x2188,</div><div class='del'>-	0x2c60, 0x2c7f,</div><div class='del'>-	0xa722, 0xa787,</div><div class='del'>-	0xa78b, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa7ff,</div><div class='del'>-	0xab30, 0xab5a,</div><div class='del'>-	0xab5c, 0xab64,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xff21, 0xff3a,</div><div class='del'>-	0xff41, 0xff5a,</div><div class='del'>-}; /* CR_Latin */</div><div class='del'>-</div><div class='del'>-/* 'Greek': Script */</div><div class='del'>-static const OnigCodePoint CR_Greek[] = {</div><div class='del'>-	36,</div><div class='del'>-	0x0370, 0x0373,</div><div class='del'>-	0x0375, 0x0377,</div><div class='del'>-	0x037a, 0x037d,</div><div class='del'>-	0x037f, 0x037f,</div><div class='del'>-	0x0384, 0x0384,</div><div class='del'>-	0x0386, 0x0386,</div><div class='del'>-	0x0388, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03e1,</div><div class='del'>-	0x03f0, 0x03ff,</div><div class='del'>-	0x1d26, 0x1d2a,</div><div class='del'>-	0x1d5d, 0x1d61,</div><div class='del'>-	0x1d66, 0x1d6a,</div><div class='del'>-	0x1dbf, 0x1dbf,</div><div class='del'>-	0x1f00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2126, 0x2126,</div><div class='del'>-	0xab65, 0xab65,</div><div class='del'>-	0x10140, 0x1018e,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-}; /* CR_Greek */</div><div class='del'>-</div><div class='del'>-/* 'Cyrillic': Script */</div><div class='del'>-static const OnigCodePoint CR_Cyrillic[] = {</div><div class='del'>-	8,</div><div class='del'>-	0x0400, 0x0484,</div><div class='del'>-	0x0487, 0x052f,</div><div class='del'>-	0x1c80, 0x1c88,</div><div class='del'>-	0x1d2b, 0x1d2b,</div><div class='del'>-	0x1d78, 0x1d78,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0xa640, 0xa69f,</div><div class='del'>-	0xfe2e, 0xfe2f,</div><div class='del'>-}; /* CR_Cyrillic */</div><div class='del'>-</div><div class='del'>-/* 'Armenian': Script */</div><div class='del'>-static const OnigCodePoint CR_Armenian[] = {</div><div class='del'>-	5,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x0588,</div><div class='del'>-	0x058a, 0x058a,</div><div class='del'>-	0x058d, 0x058f,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-}; /* CR_Armenian */</div><div class='del'>-</div><div class='del'>-/* 'Hebrew': Script */</div><div class='del'>-static const OnigCodePoint CR_Hebrew[] = {</div><div class='del'>-	9,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f4,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfb4f,</div><div class='del'>-}; /* CR_Hebrew */</div><div class='del'>-</div><div class='del'>-/* 'Arabic': Script */</div><div class='del'>-static const OnigCodePoint CR_Arabic[] = {</div><div class='del'>-	57,</div><div class='del'>-	0x0600, 0x0604,</div><div class='del'>-	0x0606, 0x060b,</div><div class='del'>-	0x060d, 0x061a,</div><div class='del'>-	0x061c, 0x061c,</div><div class='del'>-	0x061e, 0x061e,</div><div class='del'>-	0x0620, 0x063f,</div><div class='del'>-	0x0641, 0x064a,</div><div class='del'>-	0x0656, 0x066f,</div><div class='del'>-	0x0671, 0x06dc,</div><div class='del'>-	0x06de, 0x06ff,</div><div class='del'>-	0x0750, 0x077f,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d3, 0x08e1,</div><div class='del'>-	0x08e3, 0x08ff,</div><div class='del'>-	0xfb50, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3d,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfd,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-}; /* CR_Arabic */</div><div class='del'>-</div><div class='del'>-/* 'Syriac': Script */</div><div class='del'>-static const OnigCodePoint CR_Syriac[] = {</div><div class='del'>-	4,</div><div class='del'>-	0x0700, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x074f,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-}; /* CR_Syriac */</div><div class='del'>-</div><div class='del'>-/* 'Thaana': Script */</div><div class='del'>-static const OnigCodePoint CR_Thaana[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0780, 0x07b1,</div><div class='del'>-}; /* CR_Thaana */</div><div class='del'>-</div><div class='del'>-/* 'Devanagari': Script */</div><div class='del'>-static const OnigCodePoint CR_Devanagari[] = {</div><div class='del'>-	4,</div><div class='del'>-	0x0900, 0x0950,</div><div class='del'>-	0x0953, 0x0963,</div><div class='del'>-	0x0966, 0x097f,</div><div class='del'>-	0xa8e0, 0xa8ff,</div><div class='del'>-}; /* CR_Devanagari */</div><div class='del'>-</div><div class='del'>-/* 'Bengali': Script */</div><div class='del'>-static const OnigCodePoint CR_Bengali[] = {</div><div class='del'>-	14,</div><div class='del'>-	0x0980, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fe,</div><div class='del'>-}; /* CR_Bengali */</div><div class='del'>-</div><div class='del'>-/* 'Gurmukhi': Script */</div><div class='del'>-static const OnigCodePoint CR_Gurmukhi[] = {</div><div class='del'>-	16,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a76,</div><div class='del'>-}; /* CR_Gurmukhi */</div><div class='del'>-</div><div class='del'>-/* 'Gujarati': Script */</div><div class='del'>-static const OnigCodePoint CR_Gujarati[] = {</div><div class='del'>-	14,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0af9, 0x0aff,</div><div class='del'>-}; /* CR_Gujarati */</div><div class='del'>-</div><div class='del'>-/* 'Oriya': Script */</div><div class='del'>-static const OnigCodePoint CR_Oriya[] = {</div><div class='del'>-	14,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-}; /* CR_Oriya */</div><div class='del'>-</div><div class='del'>-/* 'Tamil': Script */</div><div class='del'>-static const OnigCodePoint CR_Tamil[] = {</div><div class='del'>-	16,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-}; /* CR_Tamil */</div><div class='del'>-</div><div class='del'>-/* 'Telugu': Script */</div><div class='del'>-static const OnigCodePoint CR_Telugu[] = {</div><div class='del'>-	12,</div><div class='del'>-	0x0c00, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c7f,</div><div class='del'>-}; /* CR_Telugu */</div><div class='del'>-</div><div class='del'>-/* 'Kannada': Script */</div><div class='del'>-static const OnigCodePoint CR_Kannada[] = {</div><div class='del'>-	13,</div><div class='del'>-	0x0c80, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-}; /* CR_Kannada */</div><div class='del'>-</div><div class='del'>-/* 'Malayalam': Script */</div><div class='del'>-static const OnigCodePoint CR_Malayalam[] = {</div><div class='del'>-	8,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4f,</div><div class='del'>-	0x0d54, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d7f,</div><div class='del'>-}; /* CR_Malayalam */</div><div class='del'>-</div><div class='del'>-/* 'Sinhala': Script */</div><div class='del'>-static const OnigCodePoint CR_Sinhala[] = {</div><div class='del'>-	13,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-}; /* CR_Sinhala */</div><div class='del'>-</div><div class='del'>-/* 'Thai': Script */</div><div class='del'>-static const OnigCodePoint CR_Thai[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e40, 0x0e5b,</div><div class='del'>-}; /* CR_Thai */</div><div class='del'>-</div><div class='del'>-/* 'Lao': Script */</div><div class='del'>-static const OnigCodePoint CR_Lao[] = {</div><div class='del'>-	18,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-}; /* CR_Lao */</div><div class='del'>-</div><div class='del'>-/* 'Tibetan': Script */</div><div class='del'>-static const OnigCodePoint CR_Tibetan[] = {</div><div class='del'>-	7,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fd4,</div><div class='del'>-	0x0fd9, 0x0fda,</div><div class='del'>-}; /* CR_Tibetan */</div><div class='del'>-</div><div class='del'>-/* 'Myanmar': Script */</div><div class='del'>-static const OnigCodePoint CR_Myanmar[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x1000, 0x109f,</div><div class='del'>-	0xa9e0, 0xa9fe,</div><div class='del'>-	0xaa60, 0xaa7f,</div><div class='del'>-}; /* CR_Myanmar */</div><div class='del'>-</div><div class='del'>-/* 'Georgian': Script */</div><div class='del'>-static const OnigCodePoint CR_Georgian[] = {</div><div class='del'>-	10,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x10fa,</div><div class='del'>-	0x10fc, 0x10ff,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cbf,</div><div class='del'>-	0x2d00, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-}; /* CR_Georgian */</div><div class='del'>-</div><div class='del'>-/* 'Hangul': Script */</div><div class='del'>-static const OnigCodePoint CR_Hangul[] = {</div><div class='del'>-	14,</div><div class='del'>-	0x1100, 0x11ff,</div><div class='del'>-	0x302e, 0x302f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3200, 0x321e,</div><div class='del'>-	0x3260, 0x327e,</div><div class='del'>-	0xa960, 0xa97c,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xffa0, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-}; /* CR_Hangul */</div><div class='del'>-</div><div class='del'>-/* 'Ethiopic': Script */</div><div class='del'>-static const OnigCodePoint CR_Ethiopic[] = {</div><div class='del'>-	32,</div><div class='del'>-	0x1200, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-}; /* CR_Ethiopic */</div><div class='del'>-</div><div class='del'>-/* 'Cherokee': Script */</div><div class='del'>-static const OnigCodePoint CR_Cherokee[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0xab70, 0xabbf,</div><div class='del'>-}; /* CR_Cherokee */</div><div class='del'>-</div><div class='del'>-/* 'Canadian_Aboriginal': Script */</div><div class='del'>-static const OnigCodePoint CR_Canadian_Aboriginal[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x1400, 0x167f,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-}; /* CR_Canadian_Aboriginal */</div><div class='del'>-</div><div class='del'>-/* 'Ogham': Script */</div><div class='del'>-static const OnigCodePoint CR_Ogham[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1680, 0x169c,</div><div class='del'>-}; /* CR_Ogham */</div><div class='del'>-</div><div class='del'>-/* 'Runic': Script */</div><div class='del'>-static const OnigCodePoint CR_Runic[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x16a0, 0x16ea,</div><div class='del'>-	0x16ee, 0x16f8,</div><div class='del'>-}; /* CR_Runic */</div><div class='del'>-</div><div class='del'>-/* 'Khmer': Script */</div><div class='del'>-static const OnigCodePoint CR_Khmer[] = {</div><div class='del'>-	4,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x19e0, 0x19ff,</div><div class='del'>-}; /* CR_Khmer */</div><div class='del'>-</div><div class='del'>-/* 'Mongolian': Script */</div><div class='del'>-static const OnigCodePoint CR_Mongolian[] = {</div><div class='del'>-	7,</div><div class='del'>-	0x1800, 0x1801,</div><div class='del'>-	0x1804, 0x1804,</div><div class='del'>-	0x1806, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x11660, 0x1166c,</div><div class='del'>-}; /* CR_Mongolian */</div><div class='del'>-</div><div class='del'>-/* 'Hiragana': Script */</div><div class='del'>-static const OnigCodePoint CR_Hiragana[] = {</div><div class='del'>-	4,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x309d, 0x309f,</div><div class='del'>-	0x1b001, 0x1b11e,</div><div class='del'>-	0x1f200, 0x1f200,</div><div class='del'>-}; /* CR_Hiragana */</div><div class='del'>-</div><div class='del'>-/* 'Katakana': Script */</div><div class='del'>-static const OnigCodePoint CR_Katakana[] = {</div><div class='del'>-	8,</div><div class='del'>-	0x30a1, 0x30fa,</div><div class='del'>-	0x30fd, 0x30ff,</div><div class='del'>-	0x31f0, 0x31ff,</div><div class='del'>-	0x32d0, 0x32fe,</div><div class='del'>-	0x3300, 0x3357,</div><div class='del'>-	0xff66, 0xff6f,</div><div class='del'>-	0xff71, 0xff9d,</div><div class='del'>-	0x1b000, 0x1b000,</div><div class='del'>-}; /* CR_Katakana */</div><div class='del'>-</div><div class='del'>-/* 'Bopomofo': Script */</div><div class='del'>-static const OnigCodePoint CR_Bopomofo[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x02ea, 0x02eb,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x31a0, 0x31ba,</div><div class='del'>-}; /* CR_Bopomofo */</div><div class='del'>-</div><div class='del'>-/* 'Han': Script */</div><div class='del'>-static const OnigCodePoint CR_Han[] = {</div><div class='del'>-	17,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x3005, 0x3005,</div><div class='del'>-	0x3007, 0x3007,</div><div class='del'>-	0x3021, 0x3029,</div><div class='del'>-	0x3038, 0x303b,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-}; /* CR_Han */</div><div class='del'>-</div><div class='del'>-/* 'Yi': Script */</div><div class='del'>-static const OnigCodePoint CR_Yi[] = {</div><div class='del'>-	2,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-}; /* CR_Yi */</div><div class='del'>-</div><div class='del'>-/* 'Old_Italic': Script */</div><div class='del'>-static const OnigCodePoint CR_Old_Italic[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10300, 0x10323,</div><div class='del'>-	0x1032d, 0x1032f,</div><div class='del'>-}; /* CR_Old_Italic */</div><div class='del'>-</div><div class='del'>-/* 'Gothic': Script */</div><div class='del'>-static const OnigCodePoint CR_Gothic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-}; /* CR_Gothic */</div><div class='del'>-</div><div class='del'>-/* 'Deseret': Script */</div><div class='del'>-static const OnigCodePoint CR_Deseret[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10400, 0x1044f,</div><div class='del'>-}; /* CR_Deseret */</div><div class='del'>-</div><div class='del'>-/* 'Inherited': Script */</div><div class='del'>-static const OnigCodePoint CR_Inherited[] = {</div><div class='del'>-	28,</div><div class='del'>-	0x0300, 0x036f,</div><div class='del'>-	0x0485, 0x0486,</div><div class='del'>-	0x064b, 0x0655,</div><div class='del'>-	0x0670, 0x0670,</div><div class='del'>-	0x0951, 0x0952,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1cd0, 0x1cd2,</div><div class='del'>-	0x1cd4, 0x1ce0,</div><div class='del'>-	0x1ce2, 0x1ce8,</div><div class='del'>-	0x1ced, 0x1ced,</div><div class='del'>-	0x1cf4, 0x1cf4,</div><div class='del'>-	0x1cf8, 0x1cf9,</div><div class='del'>-	0x1dc0, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1dff,</div><div class='del'>-	0x200c, 0x200d,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x302a, 0x302d,</div><div class='del'>-	0x3099, 0x309a,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfe20, 0xfe2d,</div><div class='del'>-	0x101fd, 0x101fd,</div><div class='del'>-	0x102e0, 0x102e0,</div><div class='del'>-	0x1133b, 0x1133b,</div><div class='del'>-	0x1d167, 0x1d169,</div><div class='del'>-	0x1d17b, 0x1d182,</div><div class='del'>-	0x1d185, 0x1d18b,</div><div class='del'>-	0x1d1aa, 0x1d1ad,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-}; /* CR_Inherited */</div><div class='del'>-</div><div class='del'>-/* 'Tagalog': Script */</div><div class='del'>-static const OnigCodePoint CR_Tagalog[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-}; /* CR_Tagalog */</div><div class='del'>-</div><div class='del'>-/* 'Hanunoo': Script */</div><div class='del'>-static const OnigCodePoint CR_Hanunoo[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1720, 0x1734,</div><div class='del'>-}; /* CR_Hanunoo */</div><div class='del'>-</div><div class='del'>-/* 'Buhid': Script */</div><div class='del'>-static const OnigCodePoint CR_Buhid[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-}; /* CR_Buhid */</div><div class='del'>-</div><div class='del'>-/* 'Tagbanwa': Script */</div><div class='del'>-static const OnigCodePoint CR_Tagbanwa[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-}; /* CR_Tagbanwa */</div><div class='del'>-</div><div class='del'>-/* 'Limbu': Script */</div><div class='del'>-static const OnigCodePoint CR_Limbu[] = {</div><div class='del'>-	5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x194f,</div><div class='del'>-}; /* CR_Limbu */</div><div class='del'>-</div><div class='del'>-/* 'Tai_Le': Script */</div><div class='del'>-static const OnigCodePoint CR_Tai_Le[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x1950, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-}; /* CR_Tai_Le */</div><div class='del'>-</div><div class='del'>-/* 'Linear_B': Script */</div><div class='del'>-static const OnigCodePoint CR_Linear_B[] = {</div><div class='del'>-	7,</div><div class='del'>-	0x10000, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-}; /* CR_Linear_B */</div><div class='del'>-</div><div class='del'>-/* 'Ugaritic': Script */</div><div class='del'>-static const OnigCodePoint CR_Ugaritic[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x1039f,</div><div class='del'>-}; /* CR_Ugaritic */</div><div class='del'>-</div><div class='del'>-/* 'Shavian': Script */</div><div class='del'>-static const OnigCodePoint CR_Shavian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10450, 0x1047f,</div><div class='del'>-}; /* CR_Shavian */</div><div class='del'>-</div><div class='del'>-/* 'Osmanya': Script */</div><div class='del'>-static const OnigCodePoint CR_Osmanya[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10480, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-}; /* CR_Osmanya */</div><div class='del'>-</div><div class='del'>-/* 'Cypriot': Script */</div><div class='del'>-static const OnigCodePoint CR_Cypriot[] = {</div><div class='del'>-	6,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x1083f,</div><div class='del'>-}; /* CR_Cypriot */</div><div class='del'>-</div><div class='del'>-/* 'Braille': Script */</div><div class='del'>-static const OnigCodePoint CR_Braille[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2800, 0x28ff,</div><div class='del'>-}; /* CR_Braille */</div><div class='del'>-</div><div class='del'>-/* 'Buginese': Script */</div><div class='del'>-static const OnigCodePoint CR_Buginese[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x1a00, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a1f,</div><div class='del'>-}; /* CR_Buginese */</div><div class='del'>-</div><div class='del'>-/* 'Coptic': Script */</div><div class='del'>-static const OnigCodePoint CR_Coptic[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x03e2, 0x03ef,</div><div class='del'>-	0x2c80, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2cff,</div><div class='del'>-}; /* CR_Coptic */</div><div class='del'>-</div><div class='del'>-/* 'New_Tai_Lue': Script */</div><div class='del'>-static const OnigCodePoint CR_New_Tai_Lue[] = {</div><div class='del'>-	4,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x19df,</div><div class='del'>-}; /* CR_New_Tai_Lue */</div><div class='del'>-</div><div class='del'>-/* 'Glagolitic': Script */</div><div class='del'>-static const OnigCodePoint CR_Glagolitic[] = {</div><div class='del'>-	7,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-}; /* CR_Glagolitic */</div><div class='del'>-</div><div class='del'>-/* 'Tifinagh': Script */</div><div class='del'>-static const OnigCodePoint CR_Tifinagh[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d7f,</div><div class='del'>-}; /* CR_Tifinagh */</div><div class='del'>-</div><div class='del'>-/* 'Syloti_Nagri': Script */</div><div class='del'>-static const OnigCodePoint CR_Syloti_Nagri[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa800, 0xa82b,</div><div class='del'>-}; /* CR_Syloti_Nagri */</div><div class='del'>-</div><div class='del'>-/* 'Old_Persian': Script */</div><div class='del'>-static const OnigCodePoint CR_Old_Persian[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x103a0, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-}; /* CR_Old_Persian */</div><div class='del'>-</div><div class='del'>-/* 'Kharoshthi': Script */</div><div class='del'>-static const OnigCodePoint CR_Kharoshthi[] = {</div><div class='del'>-	8,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a48,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-}; /* CR_Kharoshthi */</div><div class='del'>-</div><div class='del'>-/* 'Balinese': Script */</div><div class='del'>-static const OnigCodePoint CR_Balinese[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-}; /* CR_Balinese */</div><div class='del'>-</div><div class='del'>-/* 'Cuneiform': Script */</div><div class='del'>-static const OnigCodePoint CR_Cuneiform[] = {</div><div class='del'>-	4,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-}; /* CR_Cuneiform */</div><div class='del'>-</div><div class='del'>-/* 'Phoenician': Script */</div><div class='del'>-static const OnigCodePoint CR_Phoenician[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10900, 0x1091b,</div><div class='del'>-	0x1091f, 0x1091f,</div><div class='del'>-}; /* CR_Phoenician */</div><div class='del'>-</div><div class='del'>-/* 'Phags_Pa': Script */</div><div class='del'>-static const OnigCodePoint CR_Phags_Pa[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-}; /* CR_Phags_Pa */</div><div class='del'>-</div><div class='del'>-/* 'Nko': Script */</div><div class='del'>-static const OnigCodePoint CR_Nko[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x07fd, 0x07ff,</div><div class='del'>-}; /* CR_Nko */</div><div class='del'>-</div><div class='del'>-/* 'Sundanese': Script */</div><div class='del'>-static const OnigCodePoint CR_Sundanese[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x1b80, 0x1bbf,</div><div class='del'>-	0x1cc0, 0x1cc7,</div><div class='del'>-}; /* CR_Sundanese */</div><div class='del'>-</div><div class='del'>-/* 'Lepcha': Script */</div><div class='del'>-static const OnigCodePoint CR_Lepcha[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x1c00, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c4f,</div><div class='del'>-}; /* CR_Lepcha */</div><div class='del'>-</div><div class='del'>-/* 'Ol_Chiki': Script */</div><div class='del'>-static const OnigCodePoint CR_Ol_Chiki[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1c50, 0x1c7f,</div><div class='del'>-}; /* CR_Ol_Chiki */</div><div class='del'>-</div><div class='del'>-/* 'Vai': Script */</div><div class='del'>-static const OnigCodePoint CR_Vai[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa500, 0xa62b,</div><div class='del'>-}; /* CR_Vai */</div><div class='del'>-</div><div class='del'>-/* 'Saurashtra': Script */</div><div class='del'>-static const OnigCodePoint CR_Saurashtra[] = {</div><div class='del'>-	2,</div><div class='del'>-	0xa880, 0xa8c5,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-}; /* CR_Saurashtra */</div><div class='del'>-</div><div class='del'>-/* 'Kayah_Li': Script */</div><div class='del'>-static const OnigCodePoint CR_Kayah_Li[] = {</div><div class='del'>-	2,</div><div class='del'>-	0xa900, 0xa92d,</div><div class='del'>-	0xa92f, 0xa92f,</div><div class='del'>-}; /* CR_Kayah_Li */</div><div class='del'>-</div><div class='del'>-/* 'Rejang': Script */</div><div class='del'>-static const OnigCodePoint CR_Rejang[] = {</div><div class='del'>-	2,</div><div class='del'>-	0xa930, 0xa953,</div><div class='del'>-	0xa95f, 0xa95f,</div><div class='del'>-}; /* CR_Rejang */</div><div class='del'>-</div><div class='del'>-/* 'Lycian': Script */</div><div class='del'>-static const OnigCodePoint CR_Lycian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-}; /* CR_Lycian */</div><div class='del'>-</div><div class='del'>-/* 'Carian': Script */</div><div class='del'>-static const OnigCodePoint CR_Carian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-}; /* CR_Carian */</div><div class='del'>-</div><div class='del'>-/* 'Lydian': Script */</div><div class='del'>-static const OnigCodePoint CR_Lydian[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10920, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-}; /* CR_Lydian */</div><div class='del'>-</div><div class='del'>-/* 'Cham': Script */</div><div class='del'>-static const OnigCodePoint CR_Cham[] = {</div><div class='del'>-	4,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaa5f,</div><div class='del'>-}; /* CR_Cham */</div><div class='del'>-</div><div class='del'>-/* 'Tai_Tham': Script */</div><div class='del'>-static const OnigCodePoint CR_Tai_Tham[] = {</div><div class='del'>-	5,</div><div class='del'>-	0x1a20, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-}; /* CR_Tai_Tham */</div><div class='del'>-</div><div class='del'>-/* 'Tai_Viet': Script */</div><div class='del'>-static const OnigCodePoint CR_Tai_Viet[] = {</div><div class='del'>-	2,</div><div class='del'>-	0xaa80, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadf,</div><div class='del'>-}; /* CR_Tai_Viet */</div><div class='del'>-</div><div class='del'>-/* 'Avestan': Script */</div><div class='del'>-static const OnigCodePoint CR_Avestan[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b3f,</div><div class='del'>-}; /* CR_Avestan */</div><div class='del'>-</div><div class='del'>-/* 'Egyptian_Hieroglyphs': Script */</div><div class='del'>-static const OnigCodePoint CR_Egyptian_Hieroglyphs[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-}; /* CR_Egyptian_Hieroglyphs */</div><div class='del'>-</div><div class='del'>-/* 'Samaritan': Script */</div><div class='del'>-static const OnigCodePoint CR_Samaritan[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-}; /* CR_Samaritan */</div><div class='del'>-</div><div class='del'>-/* 'Lisu': Script */</div><div class='del'>-static const OnigCodePoint CR_Lisu[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa4d0, 0xa4ff,</div><div class='del'>-}; /* CR_Lisu */</div><div class='del'>-</div><div class='del'>-/* 'Bamum': Script */</div><div class='del'>-static const OnigCodePoint CR_Bamum[] = {</div><div class='del'>-	2,</div><div class='del'>-	0xa6a0, 0xa6f7,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-}; /* CR_Bamum */</div><div class='del'>-</div><div class='del'>-/* 'Javanese': Script */</div><div class='del'>-static const OnigCodePoint CR_Javanese[] = {</div><div class='del'>-	3,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9d0, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9df,</div><div class='del'>-}; /* CR_Javanese */</div><div class='del'>-</div><div class='del'>-/* 'Meetei_Mayek': Script */</div><div class='del'>-static const OnigCodePoint CR_Meetei_Mayek[] = {</div><div class='del'>-	3,</div><div class='del'>-	0xaae0, 0xaaf6,</div><div class='del'>-	0xabc0, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-}; /* CR_Meetei_Mayek */</div><div class='del'>-</div><div class='del'>-/* 'Imperial_Aramaic': Script */</div><div class='del'>-static const OnigCodePoint CR_Imperial_Aramaic[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10840, 0x10855,</div><div class='del'>-	0x10857, 0x1085f,</div><div class='del'>-}; /* CR_Imperial_Aramaic */</div><div class='del'>-</div><div class='del'>-/* 'Old_South_Arabian': Script */</div><div class='del'>-static const OnigCodePoint CR_Old_South_Arabian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10a60, 0x10a7f,</div><div class='del'>-}; /* CR_Old_South_Arabian */</div><div class='del'>-</div><div class='del'>-/* 'Inscriptional_Parthian': Script */</div><div class='del'>-static const OnigCodePoint CR_Inscriptional_Parthian[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10b40, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b5f,</div><div class='del'>-}; /* CR_Inscriptional_Parthian */</div><div class='del'>-</div><div class='del'>-/* 'Inscriptional_Pahlavi': Script */</div><div class='del'>-static const OnigCodePoint CR_Inscriptional_Pahlavi[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10b60, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b7f,</div><div class='del'>-}; /* CR_Inscriptional_Pahlavi */</div><div class='del'>-</div><div class='del'>-/* 'Old_Turkic': Script */</div><div class='del'>-static const OnigCodePoint CR_Old_Turkic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-}; /* CR_Old_Turkic */</div><div class='del'>-</div><div class='del'>-/* 'Kaithi': Script */</div><div class='del'>-static const OnigCodePoint CR_Kaithi[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x11080, 0x110c1,</div><div class='del'>-	0x110cd, 0x110cd,</div><div class='del'>-}; /* CR_Kaithi */</div><div class='del'>-</div><div class='del'>-/* 'Batak': Script */</div><div class='del'>-static const OnigCodePoint CR_Batak[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x1bc0, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1bff,</div><div class='del'>-}; /* CR_Batak */</div><div class='del'>-</div><div class='del'>-/* 'Brahmi': Script */</div><div class='del'>-static const OnigCodePoint CR_Brahmi[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x1107f, 0x1107f,</div><div class='del'>-}; /* CR_Brahmi */</div><div class='del'>-</div><div class='del'>-/* 'Mandaic': Script */</div><div class='del'>-static const OnigCodePoint CR_Mandaic[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-}; /* CR_Mandaic */</div><div class='del'>-</div><div class='del'>-/* 'Chakma': Script */</div><div class='del'>-static const OnigCodePoint CR_Chakma[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11146,</div><div class='del'>-}; /* CR_Chakma */</div><div class='del'>-</div><div class='del'>-/* 'Meroitic_Cursive': Script */</div><div class='del'>-static const OnigCodePoint CR_Meroitic_Cursive[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x109a0, 0x109b7,</div><div class='del'>-	0x109bc, 0x109cf,</div><div class='del'>-	0x109d2, 0x109ff,</div><div class='del'>-}; /* CR_Meroitic_Cursive */</div><div class='del'>-</div><div class='del'>-/* 'Meroitic_Hieroglyphs': Script */</div><div class='del'>-static const OnigCodePoint CR_Meroitic_Hieroglyphs[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10980, 0x1099f,</div><div class='del'>-}; /* CR_Meroitic_Hieroglyphs */</div><div class='del'>-</div><div class='del'>-/* 'Miao': Script */</div><div class='del'>-static const OnigCodePoint CR_Miao[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-}; /* CR_Miao */</div><div class='del'>-</div><div class='del'>-/* 'Sharada': Script */</div><div class='del'>-static const OnigCodePoint CR_Sharada[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x11180, 0x111cd,</div><div class='del'>-	0x111d0, 0x111df,</div><div class='del'>-}; /* CR_Sharada */</div><div class='del'>-</div><div class='del'>-/* 'Sora_Sompeng': Script */</div><div class='del'>-static const OnigCodePoint CR_Sora_Sompeng[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-}; /* CR_Sora_Sompeng */</div><div class='del'>-</div><div class='del'>-/* 'Takri': Script */</div><div class='del'>-static const OnigCodePoint CR_Takri[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-}; /* CR_Takri */</div><div class='del'>-</div><div class='del'>-/* 'Caucasian_Albanian': Script */</div><div class='del'>-static const OnigCodePoint CR_Caucasian_Albanian[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-}; /* CR_Caucasian_Albanian */</div><div class='del'>-</div><div class='del'>-/* 'Bassa_Vah': Script */</div><div class='del'>-static const OnigCodePoint CR_Bassa_Vah[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af5,</div><div class='del'>-}; /* CR_Bassa_Vah */</div><div class='del'>-</div><div class='del'>-/* 'Duployan': Script */</div><div class='del'>-static const OnigCodePoint CR_Duployan[] = {</div><div class='del'>-	5,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9c, 0x1bc9f,</div><div class='del'>-}; /* CR_Duployan */</div><div class='del'>-</div><div class='del'>-/* 'Elbasan': Script */</div><div class='del'>-static const OnigCodePoint CR_Elbasan[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-}; /* CR_Elbasan */</div><div class='del'>-</div><div class='del'>-/* 'Grantha': Script */</div><div class='del'>-static const OnigCodePoint CR_Grantha[] = {</div><div class='del'>-	15,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133c, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-}; /* CR_Grantha */</div><div class='del'>-</div><div class='del'>-/* 'Pahawh_Hmong': Script */</div><div class='del'>-static const OnigCodePoint CR_Pahawh_Hmong[] = {</div><div class='del'>-	5,</div><div class='del'>-	0x16b00, 0x16b45,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-}; /* CR_Pahawh_Hmong */</div><div class='del'>-</div><div class='del'>-/* 'Khojki': Script */</div><div class='del'>-static const OnigCodePoint CR_Khojki[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1123e,</div><div class='del'>-}; /* CR_Khojki */</div><div class='del'>-</div><div class='del'>-/* 'Linear_A': Script */</div><div class='del'>-static const OnigCodePoint CR_Linear_A[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-}; /* CR_Linear_A */</div><div class='del'>-</div><div class='del'>-/* 'Mahajani': Script */</div><div class='del'>-static const OnigCodePoint CR_Mahajani[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11150, 0x11176,</div><div class='del'>-}; /* CR_Mahajani */</div><div class='del'>-</div><div class='del'>-/* 'Manichaean': Script */</div><div class='del'>-static const OnigCodePoint CR_Manichaean[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10ac0, 0x10ae6,</div><div class='del'>-	0x10aeb, 0x10af6,</div><div class='del'>-}; /* CR_Manichaean */</div><div class='del'>-</div><div class='del'>-/* 'Mende_Kikakui': Script */</div><div class='del'>-static const OnigCodePoint CR_Mende_Kikakui[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8c7, 0x1e8d6,</div><div class='del'>-}; /* CR_Mende_Kikakui */</div><div class='del'>-</div><div class='del'>-/* 'Modi': Script */</div><div class='del'>-static const OnigCodePoint CR_Modi[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x11600, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-}; /* CR_Modi */</div><div class='del'>-</div><div class='del'>-/* 'Mro': Script */</div><div class='del'>-static const OnigCodePoint CR_Mro[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-}; /* CR_Mro */</div><div class='del'>-</div><div class='del'>-/* 'Old_North_Arabian': Script */</div><div class='del'>-static const OnigCodePoint CR_Old_North_Arabian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10a80, 0x10a9f,</div><div class='del'>-}; /* CR_Old_North_Arabian */</div><div class='del'>-</div><div class='del'>-/* 'Nabataean': Script */</div><div class='del'>-static const OnigCodePoint CR_Nabataean[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10880, 0x1089e,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-}; /* CR_Nabataean */</div><div class='del'>-</div><div class='del'>-/* 'Palmyrene': Script */</div><div class='del'>-static const OnigCodePoint CR_Palmyrene[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10860, 0x1087f,</div><div class='del'>-}; /* CR_Palmyrene */</div><div class='del'>-</div><div class='del'>-/* 'Pau_Cin_Hau': Script */</div><div class='del'>-static const OnigCodePoint CR_Pau_Cin_Hau[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-}; /* CR_Pau_Cin_Hau */</div><div class='del'>-</div><div class='del'>-/* 'Old_Permic': Script */</div><div class='del'>-static const OnigCodePoint CR_Old_Permic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-}; /* CR_Old_Permic */</div><div class='del'>-</div><div class='del'>-/* 'Psalter_Pahlavi': Script */</div><div class='del'>-static const OnigCodePoint CR_Psalter_Pahlavi[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x10b80, 0x10b91,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-}; /* CR_Psalter_Pahlavi */</div><div class='del'>-</div><div class='del'>-/* 'Siddham': Script */</div><div class='del'>-static const OnigCodePoint CR_Siddham[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115dd,</div><div class='del'>-}; /* CR_Siddham */</div><div class='del'>-</div><div class='del'>-/* 'Khudawadi': Script */</div><div class='del'>-static const OnigCodePoint CR_Khudawadi[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-}; /* CR_Khudawadi */</div><div class='del'>-</div><div class='del'>-/* 'Tirhuta': Script */</div><div class='del'>-static const OnigCodePoint CR_Tirhuta[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x11480, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-}; /* CR_Tirhuta */</div><div class='del'>-</div><div class='del'>-/* 'Warang_Citi': Script */</div><div class='del'>-static const OnigCodePoint CR_Warang_Citi[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x118a0, 0x118f2,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-}; /* CR_Warang_Citi */</div><div class='del'>-</div><div class='del'>-/* 'Ahom': Script */</div><div class='del'>-static const OnigCodePoint CR_Ahom[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x11730, 0x1173f,</div><div class='del'>-}; /* CR_Ahom */</div><div class='del'>-</div><div class='del'>-/* 'Anatolian_Hieroglyphs': Script */</div><div class='del'>-static const OnigCodePoint CR_Anatolian_Hieroglyphs[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-}; /* CR_Anatolian_Hieroglyphs */</div><div class='del'>-</div><div class='del'>-/* 'Hatran': Script */</div><div class='del'>-static const OnigCodePoint CR_Hatran[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x108fb, 0x108ff,</div><div class='del'>-}; /* CR_Hatran */</div><div class='del'>-</div><div class='del'>-/* 'Multani': Script */</div><div class='del'>-static const OnigCodePoint CR_Multani[] = {</div><div class='del'>-	5,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a9,</div><div class='del'>-}; /* CR_Multani */</div><div class='del'>-</div><div class='del'>-/* 'Old_Hungarian': Script */</div><div class='del'>-static const OnigCodePoint CR_Old_Hungarian[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10cfa, 0x10cff,</div><div class='del'>-}; /* CR_Old_Hungarian */</div><div class='del'>-</div><div class='del'>-/* 'SignWriting': Script */</div><div class='del'>-static const OnigCodePoint CR_SignWriting[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x1d800, 0x1da8b,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-}; /* CR_SignWriting */</div><div class='del'>-</div><div class='del'>-/* 'Adlam': Script */</div><div class='del'>-static const OnigCodePoint CR_Adlam[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x1e900, 0x1e94a,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1e95e, 0x1e95f,</div><div class='del'>-}; /* CR_Adlam */</div><div class='del'>-</div><div class='del'>-/* 'Bhaiksuki': Script */</div><div class='del'>-static const OnigCodePoint CR_Bhaiksuki[] = {</div><div class='del'>-	4,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c45,</div><div class='del'>-	0x11c50, 0x11c6c,</div><div class='del'>-}; /* CR_Bhaiksuki */</div><div class='del'>-</div><div class='del'>-/* 'Marchen': Script */</div><div class='del'>-static const OnigCodePoint CR_Marchen[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x11c70, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-}; /* CR_Marchen */</div><div class='del'>-</div><div class='del'>-/* 'Newa': Script */</div><div class='del'>-static const OnigCodePoint CR_Newa[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x11400, 0x11459,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x1145d, 0x1145e,</div><div class='del'>-}; /* CR_Newa */</div><div class='del'>-</div><div class='del'>-/* 'Osage': Script */</div><div class='del'>-static const OnigCodePoint CR_Osage[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-}; /* CR_Osage */</div><div class='del'>-</div><div class='del'>-/* 'Tangut': Script */</div><div class='del'>-static const OnigCodePoint CR_Tangut[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x16fe0, 0x16fe0,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-}; /* CR_Tangut */</div><div class='del'>-</div><div class='del'>-/* 'Masaram_Gondi': Script */</div><div class='del'>-static const OnigCodePoint CR_Masaram_Gondi[] = {</div><div class='del'>-	7,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d47,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-}; /* CR_Masaram_Gondi */</div><div class='del'>-</div><div class='del'>-/* 'Nushu': Script */</div><div class='del'>-static const OnigCodePoint CR_Nushu[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x16fe1, 0x16fe1,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-}; /* CR_Nushu */</div><div class='del'>-</div><div class='del'>-/* 'Soyombo': Script */</div><div class='del'>-static const OnigCodePoint CR_Soyombo[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x11a50, 0x11a83,</div><div class='del'>-	0x11a86, 0x11aa2,</div><div class='del'>-}; /* CR_Soyombo */</div><div class='del'>-</div><div class='del'>-/* 'Zanabazar_Square': Script */</div><div class='del'>-static const OnigCodePoint CR_Zanabazar_Square[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11a00, 0x11a47,</div><div class='del'>-}; /* CR_Zanabazar_Square */</div><div class='del'>-</div><div class='del'>-/* 'Dogra': Script */</div><div class='del'>-static const OnigCodePoint CR_Dogra[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11800, 0x1183b,</div><div class='del'>-}; /* CR_Dogra */</div><div class='del'>-</div><div class='del'>-/* 'Gunjala_Gondi': Script */</div><div class='del'>-static const OnigCodePoint CR_Gunjala_Gondi[] = {</div><div class='del'>-	6,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d98,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-}; /* CR_Gunjala_Gondi */</div><div class='del'>-</div><div class='del'>-/* 'Makasar': Script */</div><div class='del'>-static const OnigCodePoint CR_Makasar[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11ee0, 0x11ef8,</div><div class='del'>-}; /* CR_Makasar */</div><div class='del'>-</div><div class='del'>-/* 'Medefaidrin': Script */</div><div class='del'>-static const OnigCodePoint CR_Medefaidrin[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x16e40, 0x16e9a,</div><div class='del'>-}; /* CR_Medefaidrin */</div><div class='del'>-</div><div class='del'>-/* 'Hanifi_Rohingya': Script */</div><div class='del'>-static const OnigCodePoint CR_Hanifi_Rohingya[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x10d00, 0x10d27,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-}; /* CR_Hanifi_Rohingya */</div><div class='del'>-</div><div class='del'>-/* 'Sogdian': Script */</div><div class='del'>-static const OnigCodePoint CR_Sogdian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10f30, 0x10f59,</div><div class='del'>-}; /* CR_Sogdian */</div><div class='del'>-</div><div class='del'>-/* 'Old_Sogdian': Script */</div><div class='del'>-static const OnigCodePoint CR_Old_Sogdian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10f00, 0x10f27,</div><div class='del'>-}; /* CR_Old_Sogdian */</div><div class='del'>-</div><div class='del'>-/* 'White_Space': Binary Property */</div><div class='del'>-#define CR_White_Space CR_Space</div><div class='del'>-</div><div class='del'>-/* 'Bidi_Control': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Bidi_Control[] = {</div><div class='del'>-	4,</div><div class='del'>-	0x061c, 0x061c,</div><div class='del'>-	0x200e, 0x200f,</div><div class='del'>-	0x202a, 0x202e,</div><div class='del'>-	0x2066, 0x2069,</div><div class='del'>-}; /* CR_Bidi_Control */</div><div class='del'>-</div><div class='del'>-/* 'Join_Control': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Join_Control[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x200c, 0x200d,</div><div class='del'>-}; /* CR_Join_Control */</div><div class='del'>-</div><div class='del'>-/* 'Dash': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Dash[] = {</div><div class='del'>-	21,</div><div class='del'>-	0x002d, 0x002d,</div><div class='del'>-	0x058a, 0x058a,</div><div class='del'>-	0x05be, 0x05be,</div><div class='del'>-	0x1400, 0x1400,</div><div class='del'>-	0x1806, 0x1806,</div><div class='del'>-	0x2010, 0x2015,</div><div class='del'>-	0x2053, 0x2053,</div><div class='del'>-	0x207b, 0x207b,</div><div class='del'>-	0x208b, 0x208b,</div><div class='del'>-	0x2212, 0x2212,</div><div class='del'>-	0x2e17, 0x2e17,</div><div class='del'>-	0x2e1a, 0x2e1a,</div><div class='del'>-	0x2e3a, 0x2e3b,</div><div class='del'>-	0x2e40, 0x2e40,</div><div class='del'>-	0x301c, 0x301c,</div><div class='del'>-	0x3030, 0x3030,</div><div class='del'>-	0x30a0, 0x30a0,</div><div class='del'>-	0xfe31, 0xfe32,</div><div class='del'>-	0xfe58, 0xfe58,</div><div class='del'>-	0xfe63, 0xfe63,</div><div class='del'>-	0xff0d, 0xff0d,</div><div class='del'>-}; /* CR_Dash */</div><div class='del'>-</div><div class='del'>-/* 'Hyphen': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Hyphen[] = {</div><div class='del'>-	10,</div><div class='del'>-	0x002d, 0x002d,</div><div class='del'>-	0x00ad, 0x00ad,</div><div class='del'>-	0x058a, 0x058a,</div><div class='del'>-	0x1806, 0x1806,</div><div class='del'>-	0x2010, 0x2011,</div><div class='del'>-	0x2e17, 0x2e17,</div><div class='del'>-	0x30fb, 0x30fb,</div><div class='del'>-	0xfe63, 0xfe63,</div><div class='del'>-	0xff0d, 0xff0d,</div><div class='del'>-	0xff65, 0xff65,</div><div class='del'>-}; /* CR_Hyphen */</div><div class='del'>-</div><div class='del'>-/* 'Quotation_Mark': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Quotation_Mark[] = {</div><div class='del'>-	13,</div><div class='del'>-	0x0022, 0x0022,</div><div class='del'>-	0x0027, 0x0027,</div><div class='del'>-	0x00ab, 0x00ab,</div><div class='del'>-	0x00bb, 0x00bb,</div><div class='del'>-	0x2018, 0x201f,</div><div class='del'>-	0x2039, 0x203a,</div><div class='del'>-	0x2e42, 0x2e42,</div><div class='del'>-	0x300c, 0x300f,</div><div class='del'>-	0x301d, 0x301f,</div><div class='del'>-	0xfe41, 0xfe44,</div><div class='del'>-	0xff02, 0xff02,</div><div class='del'>-	0xff07, 0xff07,</div><div class='del'>-	0xff62, 0xff63,</div><div class='del'>-}; /* CR_Quotation_Mark */</div><div class='del'>-</div><div class='del'>-/* 'Terminal_Punctuation': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Terminal_Punctuation[] = {</div><div class='del'>-	102,</div><div class='del'>-	0x0021, 0x0021,</div><div class='del'>-	0x002c, 0x002c,</div><div class='del'>-	0x002e, 0x002e,</div><div class='del'>-	0x003a, 0x003b,</div><div class='del'>-	0x003f, 0x003f,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0387, 0x0387,</div><div class='del'>-	0x0589, 0x0589,</div><div class='del'>-	0x05c3, 0x05c3,</div><div class='del'>-	0x060c, 0x060c,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061e, 0x061f,</div><div class='del'>-	0x06d4, 0x06d4,</div><div class='del'>-	0x0700, 0x070a,</div><div class='del'>-	0x070c, 0x070c,</div><div class='del'>-	0x07f8, 0x07f9,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x0964, 0x0965,</div><div class='del'>-	0x0e5a, 0x0e5b,</div><div class='del'>-	0x0f08, 0x0f08,</div><div class='del'>-	0x0f0d, 0x0f12,</div><div class='del'>-	0x104a, 0x104b,</div><div class='del'>-	0x1361, 0x1368,</div><div class='del'>-	0x166d, 0x166e,</div><div class='del'>-	0x16eb, 0x16ed,</div><div class='del'>-	0x1735, 0x1736,</div><div class='del'>-	0x17d4, 0x17d6,</div><div class='del'>-	0x17da, 0x17da,</div><div class='del'>-	0x1802, 0x1805,</div><div class='del'>-	0x1808, 0x1809,</div><div class='del'>-	0x1944, 0x1945,</div><div class='del'>-	0x1aa8, 0x1aab,</div><div class='del'>-	0x1b5a, 0x1b5b,</div><div class='del'>-	0x1b5d, 0x1b5f,</div><div class='del'>-	0x1c3b, 0x1c3f,</div><div class='del'>-	0x1c7e, 0x1c7f,</div><div class='del'>-	0x203c, 0x203d,</div><div class='del'>-	0x2047, 0x2049,</div><div class='del'>-	0x2e2e, 0x2e2e,</div><div class='del'>-	0x2e3c, 0x2e3c,</div><div class='del'>-	0x2e41, 0x2e41,</div><div class='del'>-	0x2e4c, 0x2e4c,</div><div class='del'>-	0x2e4e, 0x2e4e,</div><div class='del'>-	0x3001, 0x3002,</div><div class='del'>-	0xa4fe, 0xa4ff,</div><div class='del'>-	0xa60d, 0xa60f,</div><div class='del'>-	0xa6f3, 0xa6f7,</div><div class='del'>-	0xa876, 0xa877,</div><div class='del'>-	0xa8ce, 0xa8cf,</div><div class='del'>-	0xa92f, 0xa92f,</div><div class='del'>-	0xa9c7, 0xa9c9,</div><div class='del'>-	0xaa5d, 0xaa5f,</div><div class='del'>-	0xaadf, 0xaadf,</div><div class='del'>-	0xaaf0, 0xaaf1,</div><div class='del'>-	0xabeb, 0xabeb,</div><div class='del'>-	0xfe50, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe57,</div><div class='del'>-	0xff01, 0xff01,</div><div class='del'>-	0xff0c, 0xff0c,</div><div class='del'>-	0xff0e, 0xff0e,</div><div class='del'>-	0xff1a, 0xff1b,</div><div class='del'>-	0xff1f, 0xff1f,</div><div class='del'>-	0xff61, 0xff61,</div><div class='del'>-	0xff64, 0xff64,</div><div class='del'>-	0x1039f, 0x1039f,</div><div class='del'>-	0x103d0, 0x103d0,</div><div class='del'>-	0x10857, 0x10857,</div><div class='del'>-	0x1091f, 0x1091f,</div><div class='del'>-	0x10a56, 0x10a57,</div><div class='del'>-	0x10af0, 0x10af5,</div><div class='del'>-	0x10b3a, 0x10b3f,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10f55, 0x10f59,</div><div class='del'>-	0x11047, 0x1104d,</div><div class='del'>-	0x110be, 0x110c1,</div><div class='del'>-	0x11141, 0x11143,</div><div class='del'>-	0x111c5, 0x111c6,</div><div class='del'>-	0x111cd, 0x111cd,</div><div class='del'>-	0x111de, 0x111df,</div><div class='del'>-	0x11238, 0x1123c,</div><div class='del'>-	0x112a9, 0x112a9,</div><div class='del'>-	0x1144b, 0x1144d,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x115c2, 0x115c5,</div><div class='del'>-	0x115c9, 0x115d7,</div><div class='del'>-	0x11641, 0x11642,</div><div class='del'>-	0x1173c, 0x1173e,</div><div class='del'>-	0x11a42, 0x11a43,</div><div class='del'>-	0x11a9b, 0x11a9c,</div><div class='del'>-	0x11aa1, 0x11aa2,</div><div class='del'>-	0x11c41, 0x11c43,</div><div class='del'>-	0x11c71, 0x11c71,</div><div class='del'>-	0x11ef7, 0x11ef8,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16af5, 0x16af5,</div><div class='del'>-	0x16b37, 0x16b39,</div><div class='del'>-	0x16b44, 0x16b44,</div><div class='del'>-	0x16e97, 0x16e98,</div><div class='del'>-	0x1bc9f, 0x1bc9f,</div><div class='del'>-	0x1da87, 0x1da8a,</div><div class='del'>-}; /* CR_Terminal_Punctuation */</div><div class='del'>-</div><div class='del'>-/* 'Other_Math': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Other_Math[] = {</div><div class='del'>-	134,</div><div class='del'>-	0x005e, 0x005e,</div><div class='del'>-	0x03d0, 0x03d2,</div><div class='del'>-	0x03d5, 0x03d5,</div><div class='del'>-	0x03f0, 0x03f1,</div><div class='del'>-	0x03f4, 0x03f5,</div><div class='del'>-	0x2016, 0x2016,</div><div class='del'>-	0x2032, 0x2034,</div><div class='del'>-	0x2040, 0x2040,</div><div class='del'>-	0x2061, 0x2064,</div><div class='del'>-	0x207d, 0x207e,</div><div class='del'>-	0x208d, 0x208e,</div><div class='del'>-	0x20d0, 0x20dc,</div><div class='del'>-	0x20e1, 0x20e1,</div><div class='del'>-	0x20e5, 0x20e6,</div><div class='del'>-	0x20eb, 0x20ef,</div><div class='del'>-	0x2102, 0x2102,</div><div class='del'>-	0x2107, 0x2107,</div><div class='del'>-	0x210a, 0x2113,</div><div class='del'>-	0x2115, 0x2115,</div><div class='del'>-	0x2119, 0x211d,</div><div class='del'>-	0x2124, 0x2124,</div><div class='del'>-	0x2128, 0x2129,</div><div class='del'>-	0x212c, 0x212d,</div><div class='del'>-	0x212f, 0x2131,</div><div class='del'>-	0x2133, 0x2138,</div><div class='del'>-	0x213c, 0x213f,</div><div class='del'>-	0x2145, 0x2149,</div><div class='del'>-	0x2195, 0x2199,</div><div class='del'>-	0x219c, 0x219f,</div><div class='del'>-	0x21a1, 0x21a2,</div><div class='del'>-	0x21a4, 0x21a5,</div><div class='del'>-	0x21a7, 0x21a7,</div><div class='del'>-	0x21a9, 0x21ad,</div><div class='del'>-	0x21b0, 0x21b1,</div><div class='del'>-	0x21b6, 0x21b7,</div><div class='del'>-	0x21bc, 0x21cd,</div><div class='del'>-	0x21d0, 0x21d1,</div><div class='del'>-	0x21d3, 0x21d3,</div><div class='del'>-	0x21d5, 0x21db,</div><div class='del'>-	0x21dd, 0x21dd,</div><div class='del'>-	0x21e4, 0x21e5,</div><div class='del'>-	0x2308, 0x230b,</div><div class='del'>-	0x23b4, 0x23b5,</div><div class='del'>-	0x23b7, 0x23b7,</div><div class='del'>-	0x23d0, 0x23d0,</div><div class='del'>-	0x23e2, 0x23e2,</div><div class='del'>-	0x25a0, 0x25a1,</div><div class='del'>-	0x25ae, 0x25b6,</div><div class='del'>-	0x25bc, 0x25c0,</div><div class='del'>-	0x25c6, 0x25c7,</div><div class='del'>-	0x25ca, 0x25cb,</div><div class='del'>-	0x25cf, 0x25d3,</div><div class='del'>-	0x25e2, 0x25e2,</div><div class='del'>-	0x25e4, 0x25e4,</div><div class='del'>-	0x25e7, 0x25ec,</div><div class='del'>-	0x2605, 0x2606,</div><div class='del'>-	0x2640, 0x2640,</div><div class='del'>-	0x2642, 0x2642,</div><div class='del'>-	0x2660, 0x2663,</div><div class='del'>-	0x266d, 0x266e,</div><div class='del'>-	0x27c5, 0x27c6,</div><div class='del'>-	0x27e6, 0x27ef,</div><div class='del'>-	0x2983, 0x2998,</div><div class='del'>-	0x29d8, 0x29db,</div><div class='del'>-	0x29fc, 0x29fd,</div><div class='del'>-	0xfe61, 0xfe61,</div><div class='del'>-	0xfe63, 0xfe63,</div><div class='del'>-	0xfe68, 0xfe68,</div><div class='del'>-	0xff3c, 0xff3c,</div><div class='del'>-	0xff3e, 0xff3e,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d6c0,</div><div class='del'>-	0x1d6c2, 0x1d6da,</div><div class='del'>-	0x1d6dc, 0x1d6fa,</div><div class='del'>-	0x1d6fc, 0x1d714,</div><div class='del'>-	0x1d716, 0x1d734,</div><div class='del'>-	0x1d736, 0x1d74e,</div><div class='del'>-	0x1d750, 0x1d76e,</div><div class='del'>-	0x1d770, 0x1d788,</div><div class='del'>-	0x1d78a, 0x1d7a8,</div><div class='del'>-	0x1d7aa, 0x1d7c2,</div><div class='del'>-	0x1d7c4, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-}; /* CR_Other_Math */</div><div class='del'>-</div><div class='del'>-/* 'Hex_Digit': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Hex_Digit[] = {</div><div class='del'>-	6,</div><div class='del'>-	0x0030, 0x0039,</div><div class='del'>-	0x0041, 0x0046,</div><div class='del'>-	0x0061, 0x0066,</div><div class='del'>-	0xff10, 0xff19,</div><div class='del'>-	0xff21, 0xff26,</div><div class='del'>-	0xff41, 0xff46,</div><div class='del'>-}; /* CR_Hex_Digit */</div><div class='del'>-</div><div class='del'>-/* 'ASCII_Hex_Digit': Binary Property */</div><div class='del'>-#define CR_ASCII_Hex_Digit CR_XDigit</div><div class='del'>-</div><div class='del'>-/* 'Other_Alphabetic': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Other_Alphabetic[] = {</div><div class='del'>-	213,</div><div class='del'>-	0x0345, 0x0345,</div><div class='del'>-	0x05b0, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c5,</div><div class='del'>-	0x05c7, 0x05c7,</div><div class='del'>-	0x0610, 0x061a,</div><div class='del'>-	0x064b, 0x0657,</div><div class='del'>-	0x0659, 0x065f,</div><div class='del'>-	0x0670, 0x0670,</div><div class='del'>-	0x06d6, 0x06dc,</div><div class='del'>-	0x06e1, 0x06e4,</div><div class='del'>-	0x06e7, 0x06e8,</div><div class='del'>-	0x06ed, 0x06ed,</div><div class='del'>-	0x0711, 0x0711,</div><div class='del'>-	0x0730, 0x073f,</div><div class='del'>-	0x07a6, 0x07b0,</div><div class='del'>-	0x0816, 0x0817,</div><div class='del'>-	0x081b, 0x0823,</div><div class='del'>-	0x0825, 0x0827,</div><div class='del'>-	0x0829, 0x082c,</div><div class='del'>-	0x08d4, 0x08df,</div><div class='del'>-	0x08e3, 0x08e9,</div><div class='del'>-	0x08f0, 0x0903,</div><div class='del'>-	0x093a, 0x093b,</div><div class='del'>-	0x093e, 0x094c,</div><div class='del'>-	0x094e, 0x094f,</div><div class='del'>-	0x0955, 0x0957,</div><div class='del'>-	0x0962, 0x0963,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x09be, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cc,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09e2, 0x09e3,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4c,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a70, 0x0a71,</div><div class='del'>-	0x0a75, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0abe, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acc,</div><div class='del'>-	0x0ae2, 0x0ae3,</div><div class='del'>-	0x0afa, 0x0afc,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b3e, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4c,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b62, 0x0b63,</div><div class='del'>-	0x0b82, 0x0b82,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcc,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0c00, 0x0c03,</div><div class='del'>-	0x0c3e, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4c,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c62, 0x0c63,</div><div class='del'>-	0x0c81, 0x0c83,</div><div class='del'>-	0x0cbe, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccc,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0ce2, 0x0ce3,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d3e, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4c,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d62, 0x0d63,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df3,</div><div class='del'>-	0x0e31, 0x0e31,</div><div class='del'>-	0x0e34, 0x0e3a,</div><div class='del'>-	0x0e4d, 0x0e4d,</div><div class='del'>-	0x0eb1, 0x0eb1,</div><div class='del'>-	0x0eb4, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebc,</div><div class='del'>-	0x0ecd, 0x0ecd,</div><div class='del'>-	0x0f71, 0x0f81,</div><div class='del'>-	0x0f8d, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x102b, 0x1036,</div><div class='del'>-	0x1038, 0x1038,</div><div class='del'>-	0x103b, 0x103e,</div><div class='del'>-	0x1056, 0x1059,</div><div class='del'>-	0x105e, 0x1060,</div><div class='del'>-	0x1062, 0x1062,</div><div class='del'>-	0x1067, 0x1068,</div><div class='del'>-	0x1071, 0x1074,</div><div class='del'>-	0x1082, 0x1086,</div><div class='del'>-	0x109c, 0x109d,</div><div class='del'>-	0x135f, 0x135f,</div><div class='del'>-	0x1712, 0x1713,</div><div class='del'>-	0x1732, 0x1733,</div><div class='del'>-	0x1752, 0x1753,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x17b6, 0x17c8,</div><div class='del'>-	0x1885, 0x1886,</div><div class='del'>-	0x18a9, 0x18a9,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x1938,</div><div class='del'>-	0x1a17, 0x1a1b,</div><div class='del'>-	0x1a55, 0x1a5e,</div><div class='del'>-	0x1a61, 0x1a74,</div><div class='del'>-	0x1b00, 0x1b04,</div><div class='del'>-	0x1b35, 0x1b43,</div><div class='del'>-	0x1b80, 0x1b82,</div><div class='del'>-	0x1ba1, 0x1ba9,</div><div class='del'>-	0x1bac, 0x1bad,</div><div class='del'>-	0x1be7, 0x1bf1,</div><div class='del'>-	0x1c24, 0x1c35,</div><div class='del'>-	0x1cf2, 0x1cf3,</div><div class='del'>-	0x1de7, 0x1df4,</div><div class='del'>-	0x24b6, 0x24e9,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0xa674, 0xa67b,</div><div class='del'>-	0xa69e, 0xa69f,</div><div class='del'>-	0xa823, 0xa827,</div><div class='del'>-	0xa880, 0xa881,</div><div class='del'>-	0xa8b4, 0xa8c3,</div><div class='del'>-	0xa8c5, 0xa8c5,</div><div class='del'>-	0xa926, 0xa92a,</div><div class='del'>-	0xa947, 0xa952,</div><div class='del'>-	0xa980, 0xa983,</div><div class='del'>-	0xa9b4, 0xa9bf,</div><div class='del'>-	0xaa29, 0xaa36,</div><div class='del'>-	0xaa43, 0xaa43,</div><div class='del'>-	0xaa4c, 0xaa4d,</div><div class='del'>-	0xaab0, 0xaab0,</div><div class='del'>-	0xaab2, 0xaab4,</div><div class='del'>-	0xaab7, 0xaab8,</div><div class='del'>-	0xaabe, 0xaabe,</div><div class='del'>-	0xaaeb, 0xaaef,</div><div class='del'>-	0xaaf5, 0xaaf5,</div><div class='del'>-	0xabe3, 0xabea,</div><div class='del'>-	0xfb1e, 0xfb1e,</div><div class='del'>-	0x10376, 0x1037a,</div><div class='del'>-	0x10a01, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a0f,</div><div class='del'>-	0x10d24, 0x10d27,</div><div class='del'>-	0x11000, 0x11002,</div><div class='del'>-	0x11038, 0x11045,</div><div class='del'>-	0x11082, 0x11082,</div><div class='del'>-	0x110b0, 0x110b8,</div><div class='del'>-	0x11100, 0x11102,</div><div class='del'>-	0x11127, 0x11132,</div><div class='del'>-	0x11145, 0x11146,</div><div class='del'>-	0x11180, 0x11182,</div><div class='del'>-	0x111b3, 0x111bf,</div><div class='del'>-	0x1122c, 0x11234,</div><div class='del'>-	0x11237, 0x11237,</div><div class='del'>-	0x1123e, 0x1123e,</div><div class='del'>-	0x112df, 0x112e8,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x1133e, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134c,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x11362, 0x11363,</div><div class='del'>-	0x11435, 0x11441,</div><div class='del'>-	0x11443, 0x11445,</div><div class='del'>-	0x114b0, 0x114c1,</div><div class='del'>-	0x115af, 0x115b5,</div><div class='del'>-	0x115b8, 0x115be,</div><div class='del'>-	0x115dc, 0x115dd,</div><div class='del'>-	0x11630, 0x1163e,</div><div class='del'>-	0x11640, 0x11640,</div><div class='del'>-	0x116ab, 0x116b5,</div><div class='del'>-	0x1171d, 0x1172a,</div><div class='del'>-	0x1182c, 0x11838,</div><div class='del'>-	0x11a01, 0x11a0a,</div><div class='del'>-	0x11a35, 0x11a39,</div><div class='del'>-	0x11a3b, 0x11a3e,</div><div class='del'>-	0x11a51, 0x11a5b,</div><div class='del'>-	0x11a8a, 0x11a97,</div><div class='del'>-	0x11c2f, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c3e,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d31, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d41,</div><div class='del'>-	0x11d43, 0x11d43,</div><div class='del'>-	0x11d47, 0x11d47,</div><div class='del'>-	0x11d8a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d96,</div><div class='del'>-	0x11ef3, 0x11ef6,</div><div class='del'>-	0x16b30, 0x16b36,</div><div class='del'>-	0x16f51, 0x16f7e,</div><div class='del'>-	0x1bc9e, 0x1bc9e,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e947, 0x1e947,</div><div class='del'>-	0x1f130, 0x1f149,</div><div class='del'>-	0x1f150, 0x1f169,</div><div class='del'>-	0x1f170, 0x1f189,</div><div class='del'>-}; /* CR_Other_Alphabetic */</div><div class='del'>-</div><div class='del'>-/* 'Ideographic': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Ideographic[] = {</div><div class='del'>-	16,</div><div class='del'>-	0x3006, 0x3007,</div><div class='del'>-	0x3021, 0x3029,</div><div class='del'>-	0x3038, 0x303a,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xf900, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-}; /* CR_Ideographic */</div><div class='del'>-</div><div class='del'>-/* 'Diacritic': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Diacritic[] = {</div><div class='del'>-	163,</div><div class='del'>-	0x005e, 0x005e,</div><div class='del'>-	0x0060, 0x0060,</div><div class='del'>-	0x00a8, 0x00a8,</div><div class='del'>-	0x00af, 0x00af,</div><div class='del'>-	0x00b4, 0x00b4,</div><div class='del'>-	0x00b7, 0x00b8,</div><div class='del'>-	0x02b0, 0x034e,</div><div class='del'>-	0x0350, 0x0357,</div><div class='del'>-	0x035d, 0x0362,</div><div class='del'>-	0x0374, 0x0375,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x0384, 0x0385,</div><div class='del'>-	0x0483, 0x0487,</div><div class='del'>-	0x0559, 0x0559,</div><div class='del'>-	0x0591, 0x05a1,</div><div class='del'>-	0x05a3, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c4,</div><div class='del'>-	0x064b, 0x0652,</div><div class='del'>-	0x0657, 0x0658,</div><div class='del'>-	0x06df, 0x06e0,</div><div class='del'>-	0x06e5, 0x06e6,</div><div class='del'>-	0x06ea, 0x06ec,</div><div class='del'>-	0x0730, 0x074a,</div><div class='del'>-	0x07a6, 0x07b0,</div><div class='del'>-	0x07eb, 0x07f5,</div><div class='del'>-	0x0818, 0x0819,</div><div class='del'>-	0x08e3, 0x08fe,</div><div class='del'>-	0x093c, 0x093c,</div><div class='del'>-	0x094d, 0x094d,</div><div class='del'>-	0x0951, 0x0954,</div><div class='del'>-	0x0971, 0x0971,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09cd, 0x09cd,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a4d, 0x0a4d,</div><div class='del'>-	0x0abc, 0x0abc,</div><div class='del'>-	0x0acd, 0x0acd,</div><div class='del'>-	0x0afd, 0x0aff,</div><div class='del'>-	0x0b3c, 0x0b3c,</div><div class='del'>-	0x0b4d, 0x0b4d,</div><div class='del'>-	0x0bcd, 0x0bcd,</div><div class='del'>-	0x0c4d, 0x0c4d,</div><div class='del'>-	0x0cbc, 0x0cbc,</div><div class='del'>-	0x0ccd, 0x0ccd,</div><div class='del'>-	0x0d3b, 0x0d3c,</div><div class='del'>-	0x0d4d, 0x0d4d,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0e47, 0x0e4c,</div><div class='del'>-	0x0e4e, 0x0e4e,</div><div class='del'>-	0x0ec8, 0x0ecc,</div><div class='del'>-	0x0f18, 0x0f19,</div><div class='del'>-	0x0f35, 0x0f35,</div><div class='del'>-	0x0f37, 0x0f37,</div><div class='del'>-	0x0f39, 0x0f39,</div><div class='del'>-	0x0f3e, 0x0f3f,</div><div class='del'>-	0x0f82, 0x0f84,</div><div class='del'>-	0x0f86, 0x0f87,</div><div class='del'>-	0x0fc6, 0x0fc6,</div><div class='del'>-	0x1037, 0x1037,</div><div class='del'>-	0x1039, 0x103a,</div><div class='del'>-	0x1087, 0x108d,</div><div class='del'>-	0x108f, 0x108f,</div><div class='del'>-	0x109a, 0x109b,</div><div class='del'>-	0x17c9, 0x17d3,</div><div class='del'>-	0x17dd, 0x17dd,</div><div class='del'>-	0x1939, 0x193b,</div><div class='del'>-	0x1a75, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a7f,</div><div class='del'>-	0x1ab0, 0x1abd,</div><div class='del'>-	0x1b34, 0x1b34,</div><div class='del'>-	0x1b44, 0x1b44,</div><div class='del'>-	0x1b6b, 0x1b73,</div><div class='del'>-	0x1baa, 0x1bab,</div><div class='del'>-	0x1c36, 0x1c37,</div><div class='del'>-	0x1c78, 0x1c7d,</div><div class='del'>-	0x1cd0, 0x1ce8,</div><div class='del'>-	0x1ced, 0x1ced,</div><div class='del'>-	0x1cf4, 0x1cf4,</div><div class='del'>-	0x1cf7, 0x1cf9,</div><div class='del'>-	0x1d2c, 0x1d6a,</div><div class='del'>-	0x1dc4, 0x1dcf,</div><div class='del'>-	0x1df5, 0x1df9,</div><div class='del'>-	0x1dfd, 0x1dff,</div><div class='del'>-	0x1fbd, 0x1fbd,</div><div class='del'>-	0x1fbf, 0x1fc1,</div><div class='del'>-	0x1fcd, 0x1fcf,</div><div class='del'>-	0x1fdd, 0x1fdf,</div><div class='del'>-	0x1fed, 0x1fef,</div><div class='del'>-	0x1ffd, 0x1ffe,</div><div class='del'>-	0x2cef, 0x2cf1,</div><div class='del'>-	0x2e2f, 0x2e2f,</div><div class='del'>-	0x302a, 0x302f,</div><div class='del'>-	0x3099, 0x309c,</div><div class='del'>-	0x30fc, 0x30fc,</div><div class='del'>-	0xa66f, 0xa66f,</div><div class='del'>-	0xa67c, 0xa67d,</div><div class='del'>-	0xa67f, 0xa67f,</div><div class='del'>-	0xa69c, 0xa69d,</div><div class='del'>-	0xa6f0, 0xa6f1,</div><div class='del'>-	0xa717, 0xa721,</div><div class='del'>-	0xa788, 0xa788,</div><div class='del'>-	0xa7f8, 0xa7f9,</div><div class='del'>-	0xa8c4, 0xa8c4,</div><div class='del'>-	0xa8e0, 0xa8f1,</div><div class='del'>-	0xa92b, 0xa92e,</div><div class='del'>-	0xa953, 0xa953,</div><div class='del'>-	0xa9b3, 0xa9b3,</div><div class='del'>-	0xa9c0, 0xa9c0,</div><div class='del'>-	0xa9e5, 0xa9e5,</div><div class='del'>-	0xaa7b, 0xaa7d,</div><div class='del'>-	0xaabf, 0xaac2,</div><div class='del'>-	0xaaf6, 0xaaf6,</div><div class='del'>-	0xab5b, 0xab5f,</div><div class='del'>-	0xabec, 0xabed,</div><div class='del'>-	0xfb1e, 0xfb1e,</div><div class='del'>-	0xfe20, 0xfe2f,</div><div class='del'>-	0xff3e, 0xff3e,</div><div class='del'>-	0xff40, 0xff40,</div><div class='del'>-	0xff70, 0xff70,</div><div class='del'>-	0xff9e, 0xff9f,</div><div class='del'>-	0xffe3, 0xffe3,</div><div class='del'>-	0x102e0, 0x102e0,</div><div class='del'>-	0x10ae5, 0x10ae6,</div><div class='del'>-	0x10d22, 0x10d27,</div><div class='del'>-	0x10f46, 0x10f50,</div><div class='del'>-	0x110b9, 0x110ba,</div><div class='del'>-	0x11133, 0x11134,</div><div class='del'>-	0x11173, 0x11173,</div><div class='del'>-	0x111c0, 0x111c0,</div><div class='del'>-	0x111ca, 0x111cc,</div><div class='del'>-	0x11235, 0x11236,</div><div class='del'>-	0x112e9, 0x112ea,</div><div class='del'>-	0x1133c, 0x1133c,</div><div class='del'>-	0x1134d, 0x1134d,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11442, 0x11442,</div><div class='del'>-	0x11446, 0x11446,</div><div class='del'>-	0x114c2, 0x114c3,</div><div class='del'>-	0x115bf, 0x115c0,</div><div class='del'>-	0x1163f, 0x1163f,</div><div class='del'>-	0x116b6, 0x116b7,</div><div class='del'>-	0x1172b, 0x1172b,</div><div class='del'>-	0x11839, 0x1183a,</div><div class='del'>-	0x11a34, 0x11a34,</div><div class='del'>-	0x11a47, 0x11a47,</div><div class='del'>-	0x11a99, 0x11a99,</div><div class='del'>-	0x11c3f, 0x11c3f,</div><div class='del'>-	0x11d42, 0x11d42,</div><div class='del'>-	0x11d44, 0x11d45,</div><div class='del'>-	0x11d97, 0x11d97,</div><div class='del'>-	0x16af0, 0x16af4,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x1d167, 0x1d169,</div><div class='del'>-	0x1d16d, 0x1d172,</div><div class='del'>-	0x1d17b, 0x1d182,</div><div class='del'>-	0x1d185, 0x1d18b,</div><div class='del'>-	0x1d1aa, 0x1d1ad,</div><div class='del'>-	0x1e8d0, 0x1e8d6,</div><div class='del'>-	0x1e944, 0x1e946,</div><div class='del'>-	0x1e948, 0x1e94a,</div><div class='del'>-}; /* CR_Diacritic */</div><div class='del'>-</div><div class='del'>-/* 'Extender': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Extender[] = {</div><div class='del'>-	29,</div><div class='del'>-	0x00b7, 0x00b7,</div><div class='del'>-	0x02d0, 0x02d1,</div><div class='del'>-	0x0640, 0x0640,</div><div class='del'>-	0x07fa, 0x07fa,</div><div class='del'>-	0x0e46, 0x0e46,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x180a, 0x180a,</div><div class='del'>-	0x1843, 0x1843,</div><div class='del'>-	0x1aa7, 0x1aa7,</div><div class='del'>-	0x1c36, 0x1c36,</div><div class='del'>-	0x1c7b, 0x1c7b,</div><div class='del'>-	0x3005, 0x3005,</div><div class='del'>-	0x3031, 0x3035,</div><div class='del'>-	0x309d, 0x309e,</div><div class='del'>-	0x30fc, 0x30fe,</div><div class='del'>-	0xa015, 0xa015,</div><div class='del'>-	0xa60c, 0xa60c,</div><div class='del'>-	0xa9cf, 0xa9cf,</div><div class='del'>-	0xa9e6, 0xa9e6,</div><div class='del'>-	0xaa70, 0xaa70,</div><div class='del'>-	0xaadd, 0xaadd,</div><div class='del'>-	0xaaf3, 0xaaf4,</div><div class='del'>-	0xff70, 0xff70,</div><div class='del'>-	0x1135d, 0x1135d,</div><div class='del'>-	0x115c6, 0x115c8,</div><div class='del'>-	0x11a98, 0x11a98,</div><div class='del'>-	0x16b42, 0x16b43,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x1e944, 0x1e946,</div><div class='del'>-}; /* CR_Extender */</div><div class='del'>-</div><div class='del'>-/* 'Other_Lowercase': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Other_Lowercase[] = {</div><div class='del'>-	20,</div><div class='del'>-	0x00aa, 0x00aa,</div><div class='del'>-	0x00ba, 0x00ba,</div><div class='del'>-	0x02b0, 0x02b8,</div><div class='del'>-	0x02c0, 0x02c1,</div><div class='del'>-	0x02e0, 0x02e4,</div><div class='del'>-	0x0345, 0x0345,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x1d2c, 0x1d6a,</div><div class='del'>-	0x1d78, 0x1d78,</div><div class='del'>-	0x1d9b, 0x1dbf,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x207f, 0x207f,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x2170, 0x217f,</div><div class='del'>-	0x24d0, 0x24e9,</div><div class='del'>-	0x2c7c, 0x2c7d,</div><div class='del'>-	0xa69c, 0xa69d,</div><div class='del'>-	0xa770, 0xa770,</div><div class='del'>-	0xa7f8, 0xa7f9,</div><div class='del'>-	0xab5c, 0xab5f,</div><div class='del'>-}; /* CR_Other_Lowercase */</div><div class='del'>-</div><div class='del'>-/* 'Other_Uppercase': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Other_Uppercase[] = {</div><div class='del'>-	5,</div><div class='del'>-	0x2160, 0x216f,</div><div class='del'>-	0x24b6, 0x24cf,</div><div class='del'>-	0x1f130, 0x1f149,</div><div class='del'>-	0x1f150, 0x1f169,</div><div class='del'>-	0x1f170, 0x1f189,</div><div class='del'>-}; /* CR_Other_Uppercase */</div><div class='del'>-</div><div class='del'>-/* 'Noncharacter_Code_Point': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Noncharacter_Code_Point[] = {</div><div class='del'>-	18,</div><div class='del'>-	0xfdd0, 0xfdef,</div><div class='del'>-	0xfffe, 0xffff,</div><div class='del'>-	0x1fffe, 0x1ffff,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xefffe, 0xeffff,</div><div class='del'>-	0xffffe, 0xfffff,</div><div class='del'>-	0x10fffe, 0x10ffff,</div><div class='del'>-}; /* CR_Noncharacter_Code_Point */</div><div class='del'>-</div><div class='del'>-/* 'Other_Grapheme_Extend': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Other_Grapheme_Extend[] = {</div><div class='del'>-	23,</div><div class='del'>-	0x09be, 0x09be,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x0b3e, 0x0b3e,</div><div class='del'>-	0x0b57, 0x0b57,</div><div class='del'>-	0x0bbe, 0x0bbe,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0cc2, 0x0cc2,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0d3e, 0x0d3e,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0dcf, 0x0dcf,</div><div class='del'>-	0x0ddf, 0x0ddf,</div><div class='del'>-	0x200c, 0x200c,</div><div class='del'>-	0x302e, 0x302f,</div><div class='del'>-	0xff9e, 0xff9f,</div><div class='del'>-	0x1133e, 0x1133e,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x114b0, 0x114b0,</div><div class='del'>-	0x114bd, 0x114bd,</div><div class='del'>-	0x115af, 0x115af,</div><div class='del'>-	0x1d165, 0x1d165,</div><div class='del'>-	0x1d16e, 0x1d172,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-}; /* CR_Other_Grapheme_Extend */</div><div class='del'>-</div><div class='del'>-/* 'IDS_Binary_Operator': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_IDS_Binary_Operator[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x2ff0, 0x2ff1,</div><div class='del'>-	0x2ff4, 0x2ffb,</div><div class='del'>-}; /* CR_IDS_Binary_Operator */</div><div class='del'>-</div><div class='del'>-/* 'IDS_Trinary_Operator': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_IDS_Trinary_Operator[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2ff2, 0x2ff3,</div><div class='del'>-}; /* CR_IDS_Trinary_Operator */</div><div class='del'>-</div><div class='del'>-/* 'Radical': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Radical[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-}; /* CR_Radical */</div><div class='del'>-</div><div class='del'>-/* 'Unified_Ideograph': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Unified_Ideograph[] = {</div><div class='del'>-	14,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fef,</div><div class='del'>-	0xfa0e, 0xfa0f,</div><div class='del'>-	0xfa11, 0xfa11,</div><div class='del'>-	0xfa13, 0xfa14,</div><div class='del'>-	0xfa1f, 0xfa1f,</div><div class='del'>-	0xfa21, 0xfa21,</div><div class='del'>-	0xfa23, 0xfa24,</div><div class='del'>-	0xfa27, 0xfa29,</div><div class='del'>-	0x20000, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-}; /* CR_Unified_Ideograph */</div><div class='del'>-</div><div class='del'>-/* 'Other_Default_Ignorable_Code_Point': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Other_Default_Ignorable_Code_Point[] = {</div><div class='del'>-	11,</div><div class='del'>-	0x034f, 0x034f,</div><div class='del'>-	0x115f, 0x1160,</div><div class='del'>-	0x17b4, 0x17b5,</div><div class='del'>-	0x2065, 0x2065,</div><div class='del'>-	0x3164, 0x3164,</div><div class='del'>-	0xffa0, 0xffa0,</div><div class='del'>-	0xfff0, 0xfff8,</div><div class='del'>-	0xe0000, 0xe0000,</div><div class='del'>-	0xe0002, 0xe001f,</div><div class='del'>-	0xe0080, 0xe00ff,</div><div class='del'>-	0xe01f0, 0xe0fff,</div><div class='del'>-}; /* CR_Other_Default_Ignorable_Code_Point */</div><div class='del'>-</div><div class='del'>-/* 'Deprecated': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Deprecated[] = {</div><div class='del'>-	8,</div><div class='del'>-	0x0149, 0x0149,</div><div class='del'>-	0x0673, 0x0673,</div><div class='del'>-	0x0f77, 0x0f77,</div><div class='del'>-	0x0f79, 0x0f79,</div><div class='del'>-	0x17a3, 0x17a4,</div><div class='del'>-	0x206a, 0x206f,</div><div class='del'>-	0x2329, 0x232a,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-}; /* CR_Deprecated */</div><div class='del'>-</div><div class='del'>-/* 'Soft_Dotted': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Soft_Dotted[] = {</div><div class='del'>-	31,</div><div class='del'>-	0x0069, 0x006a,</div><div class='del'>-	0x012f, 0x012f,</div><div class='del'>-	0x0249, 0x0249,</div><div class='del'>-	0x0268, 0x0268,</div><div class='del'>-	0x029d, 0x029d,</div><div class='del'>-	0x02b2, 0x02b2,</div><div class='del'>-	0x03f3, 0x03f3,</div><div class='del'>-	0x0456, 0x0456,</div><div class='del'>-	0x0458, 0x0458,</div><div class='del'>-	0x1d62, 0x1d62,</div><div class='del'>-	0x1d96, 0x1d96,</div><div class='del'>-	0x1da4, 0x1da4,</div><div class='del'>-	0x1da8, 0x1da8,</div><div class='del'>-	0x1e2d, 0x1e2d,</div><div class='del'>-	0x1ecb, 0x1ecb,</div><div class='del'>-	0x2071, 0x2071,</div><div class='del'>-	0x2148, 0x2149,</div><div class='del'>-	0x2c7c, 0x2c7c,</div><div class='del'>-	0x1d422, 0x1d423,</div><div class='del'>-	0x1d456, 0x1d457,</div><div class='del'>-	0x1d48a, 0x1d48b,</div><div class='del'>-	0x1d4be, 0x1d4bf,</div><div class='del'>-	0x1d4f2, 0x1d4f3,</div><div class='del'>-	0x1d526, 0x1d527,</div><div class='del'>-	0x1d55a, 0x1d55b,</div><div class='del'>-	0x1d58e, 0x1d58f,</div><div class='del'>-	0x1d5c2, 0x1d5c3,</div><div class='del'>-	0x1d5f6, 0x1d5f7,</div><div class='del'>-	0x1d62a, 0x1d62b,</div><div class='del'>-	0x1d65e, 0x1d65f,</div><div class='del'>-	0x1d692, 0x1d693,</div><div class='del'>-}; /* CR_Soft_Dotted */</div><div class='del'>-</div><div class='del'>-/* 'Logical_Order_Exception': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Logical_Order_Exception[] = {</div><div class='del'>-	7,</div><div class='del'>-	0x0e40, 0x0e44,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x19b5, 0x19b7,</div><div class='del'>-	0x19ba, 0x19ba,</div><div class='del'>-	0xaab5, 0xaab6,</div><div class='del'>-	0xaab9, 0xaab9,</div><div class='del'>-	0xaabb, 0xaabc,</div><div class='del'>-}; /* CR_Logical_Order_Exception */</div><div class='del'>-</div><div class='del'>-/* 'Other_ID_Start': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Other_ID_Start[] = {</div><div class='del'>-	4,</div><div class='del'>-	0x1885, 0x1886,</div><div class='del'>-	0x2118, 0x2118,</div><div class='del'>-	0x212e, 0x212e,</div><div class='del'>-	0x309b, 0x309c,</div><div class='del'>-}; /* CR_Other_ID_Start */</div><div class='del'>-</div><div class='del'>-/* 'Other_ID_Continue': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Other_ID_Continue[] = {</div><div class='del'>-	4,</div><div class='del'>-	0x00b7, 0x00b7,</div><div class='del'>-	0x0387, 0x0387,</div><div class='del'>-	0x1369, 0x1371,</div><div class='del'>-	0x19da, 0x19da,</div><div class='del'>-}; /* CR_Other_ID_Continue */</div><div class='del'>-</div><div class='del'>-/* 'Sentence_Terminal': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Sentence_Terminal[] = {</div><div class='del'>-	74,</div><div class='del'>-	0x0021, 0x0021,</div><div class='del'>-	0x002e, 0x002e,</div><div class='del'>-	0x003f, 0x003f,</div><div class='del'>-	0x0589, 0x0589,</div><div class='del'>-	0x061e, 0x061f,</div><div class='del'>-	0x06d4, 0x06d4,</div><div class='del'>-	0x0700, 0x0702,</div><div class='del'>-	0x07f9, 0x07f9,</div><div class='del'>-	0x0837, 0x0837,</div><div class='del'>-	0x0839, 0x0839,</div><div class='del'>-	0x083d, 0x083e,</div><div class='del'>-	0x0964, 0x0965,</div><div class='del'>-	0x104a, 0x104b,</div><div class='del'>-	0x1362, 0x1362,</div><div class='del'>-	0x1367, 0x1368,</div><div class='del'>-	0x166e, 0x166e,</div><div class='del'>-	0x1735, 0x1736,</div><div class='del'>-	0x1803, 0x1803,</div><div class='del'>-	0x1809, 0x1809,</div><div class='del'>-	0x1944, 0x1945,</div><div class='del'>-	0x1aa8, 0x1aab,</div><div class='del'>-	0x1b5a, 0x1b5b,</div><div class='del'>-	0x1b5e, 0x1b5f,</div><div class='del'>-	0x1c3b, 0x1c3c,</div><div class='del'>-	0x1c7e, 0x1c7f,</div><div class='del'>-	0x203c, 0x203d,</div><div class='del'>-	0x2047, 0x2049,</div><div class='del'>-	0x2e2e, 0x2e2e,</div><div class='del'>-	0x2e3c, 0x2e3c,</div><div class='del'>-	0x3002, 0x3002,</div><div class='del'>-	0xa4ff, 0xa4ff,</div><div class='del'>-	0xa60e, 0xa60f,</div><div class='del'>-	0xa6f3, 0xa6f3,</div><div class='del'>-	0xa6f7, 0xa6f7,</div><div class='del'>-	0xa876, 0xa877,</div><div class='del'>-	0xa8ce, 0xa8cf,</div><div class='del'>-	0xa92f, 0xa92f,</div><div class='del'>-	0xa9c8, 0xa9c9,</div><div class='del'>-	0xaa5d, 0xaa5f,</div><div class='del'>-	0xaaf0, 0xaaf1,</div><div class='del'>-	0xabeb, 0xabeb,</div><div class='del'>-	0xfe52, 0xfe52,</div><div class='del'>-	0xfe56, 0xfe57,</div><div class='del'>-	0xff01, 0xff01,</div><div class='del'>-	0xff0e, 0xff0e,</div><div class='del'>-	0xff1f, 0xff1f,</div><div class='del'>-	0xff61, 0xff61,</div><div class='del'>-	0x10a56, 0x10a57,</div><div class='del'>-	0x10f55, 0x10f59,</div><div class='del'>-	0x11047, 0x11048,</div><div class='del'>-	0x110be, 0x110c1,</div><div class='del'>-	0x11141, 0x11143,</div><div class='del'>-	0x111c5, 0x111c6,</div><div class='del'>-	0x111cd, 0x111cd,</div><div class='del'>-	0x111de, 0x111df,</div><div class='del'>-	0x11238, 0x11239,</div><div class='del'>-	0x1123b, 0x1123c,</div><div class='del'>-	0x112a9, 0x112a9,</div><div class='del'>-	0x1144b, 0x1144c,</div><div class='del'>-	0x115c2, 0x115c3,</div><div class='del'>-	0x115c9, 0x115d7,</div><div class='del'>-	0x11641, 0x11642,</div><div class='del'>-	0x1173c, 0x1173e,</div><div class='del'>-	0x11a42, 0x11a43,</div><div class='del'>-	0x11a9b, 0x11a9c,</div><div class='del'>-	0x11c41, 0x11c42,</div><div class='del'>-	0x11ef7, 0x11ef8,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16af5, 0x16af5,</div><div class='del'>-	0x16b37, 0x16b38,</div><div class='del'>-	0x16b44, 0x16b44,</div><div class='del'>-	0x16e98, 0x16e98,</div><div class='del'>-	0x1bc9f, 0x1bc9f,</div><div class='del'>-	0x1da88, 0x1da88,</div><div class='del'>-}; /* CR_Sentence_Terminal */</div><div class='del'>-</div><div class='del'>-/* 'Variation_Selector': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Variation_Selector[] = {</div><div class='del'>-	3,</div><div class='del'>-	0x180b, 0x180d,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-}; /* CR_Variation_Selector */</div><div class='del'>-</div><div class='del'>-/* 'Pattern_White_Space': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Pattern_White_Space[] = {</div><div class='del'>-	5,</div><div class='del'>-	0x0009, 0x000d,</div><div class='del'>-	0x0020, 0x0020,</div><div class='del'>-	0x0085, 0x0085,</div><div class='del'>-	0x200e, 0x200f,</div><div class='del'>-	0x2028, 0x2029,</div><div class='del'>-}; /* CR_Pattern_White_Space */</div><div class='del'>-</div><div class='del'>-/* 'Pattern_Syntax': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Pattern_Syntax[] = {</div><div class='del'>-	28,</div><div class='del'>-	0x0021, 0x002f,</div><div class='del'>-	0x003a, 0x0040,</div><div class='del'>-	0x005b, 0x005e,</div><div class='del'>-	0x0060, 0x0060,</div><div class='del'>-	0x007b, 0x007e,</div><div class='del'>-	0x00a1, 0x00a7,</div><div class='del'>-	0x00a9, 0x00a9,</div><div class='del'>-	0x00ab, 0x00ac,</div><div class='del'>-	0x00ae, 0x00ae,</div><div class='del'>-	0x00b0, 0x00b1,</div><div class='del'>-	0x00b6, 0x00b6,</div><div class='del'>-	0x00bb, 0x00bb,</div><div class='del'>-	0x00bf, 0x00bf,</div><div class='del'>-	0x00d7, 0x00d7,</div><div class='del'>-	0x00f7, 0x00f7,</div><div class='del'>-	0x2010, 0x2027,</div><div class='del'>-	0x2030, 0x203e,</div><div class='del'>-	0x2041, 0x2053,</div><div class='del'>-	0x2055, 0x205e,</div><div class='del'>-	0x2190, 0x245f,</div><div class='del'>-	0x2500, 0x2775,</div><div class='del'>-	0x2794, 0x2bff,</div><div class='del'>-	0x2e00, 0x2e7f,</div><div class='del'>-	0x3001, 0x3003,</div><div class='del'>-	0x3008, 0x3020,</div><div class='del'>-	0x3030, 0x3030,</div><div class='del'>-	0xfd3e, 0xfd3f,</div><div class='del'>-	0xfe45, 0xfe46,</div><div class='del'>-}; /* CR_Pattern_Syntax */</div><div class='del'>-</div><div class='del'>-/* 'Prepended_Concatenation_Mark': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Prepended_Concatenation_Mark[] = {</div><div class='del'>-	6,</div><div class='del'>-	0x0600, 0x0605,</div><div class='del'>-	0x06dd, 0x06dd,</div><div class='del'>-	0x070f, 0x070f,</div><div class='del'>-	0x08e2, 0x08e2,</div><div class='del'>-	0x110bd, 0x110bd,</div><div class='del'>-	0x110cd, 0x110cd,</div><div class='del'>-}; /* CR_Prepended_Concatenation_Mark */</div><div class='del'>-</div><div class='del'>-/* 'Regional_Indicator': Binary Property */</div><div class='del'>-static const OnigCodePoint CR_Regional_Indicator[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f1e6, 0x1f1ff,</div><div class='del'>-}; /* CR_Regional_Indicator */</div><div class='del'>-</div><div class='del'>-/* 'Emoji': Emoji */</div><div class='del'>-static const OnigCodePoint CR_Emoji[] = {</div><div class='del'>-	147,</div><div class='del'>-	0x0023, 0x0023,</div><div class='del'>-	0x002a, 0x002a,</div><div class='del'>-	0x0030, 0x0039,</div><div class='del'>-	0x00a9, 0x00a9,</div><div class='del'>-	0x00ae, 0x00ae,</div><div class='del'>-	0x203c, 0x203c,</div><div class='del'>-	0x2049, 0x2049,</div><div class='del'>-	0x2122, 0x2122,</div><div class='del'>-	0x2139, 0x2139,</div><div class='del'>-	0x2194, 0x2199,</div><div class='del'>-	0x21a9, 0x21aa,</div><div class='del'>-	0x231a, 0x231b,</div><div class='del'>-	0x2328, 0x2328,</div><div class='del'>-	0x23cf, 0x23cf,</div><div class='del'>-	0x23e9, 0x23f3,</div><div class='del'>-	0x23f8, 0x23fa,</div><div class='del'>-	0x24c2, 0x24c2,</div><div class='del'>-	0x25aa, 0x25ab,</div><div class='del'>-	0x25b6, 0x25b6,</div><div class='del'>-	0x25c0, 0x25c0,</div><div class='del'>-	0x25fb, 0x25fe,</div><div class='del'>-	0x2600, 0x2604,</div><div class='del'>-	0x260e, 0x260e,</div><div class='del'>-	0x2611, 0x2611,</div><div class='del'>-	0x2614, 0x2615,</div><div class='del'>-	0x2618, 0x2618,</div><div class='del'>-	0x261d, 0x261d,</div><div class='del'>-	0x2620, 0x2620,</div><div class='del'>-	0x2622, 0x2623,</div><div class='del'>-	0x2626, 0x2626,</div><div class='del'>-	0x262a, 0x262a,</div><div class='del'>-	0x262e, 0x262f,</div><div class='del'>-	0x2638, 0x263a,</div><div class='del'>-	0x2640, 0x2640,</div><div class='del'>-	0x2642, 0x2642,</div><div class='del'>-	0x2648, 0x2653,</div><div class='del'>-	0x265f, 0x2660,</div><div class='del'>-	0x2663, 0x2663,</div><div class='del'>-	0x2665, 0x2666,</div><div class='del'>-	0x2668, 0x2668,</div><div class='del'>-	0x267b, 0x267b,</div><div class='del'>-	0x267e, 0x267f,</div><div class='del'>-	0x2692, 0x2697,</div><div class='del'>-	0x2699, 0x2699,</div><div class='del'>-	0x269b, 0x269c,</div><div class='del'>-	0x26a0, 0x26a1,</div><div class='del'>-	0x26aa, 0x26ab,</div><div class='del'>-	0x26b0, 0x26b1,</div><div class='del'>-	0x26bd, 0x26be,</div><div class='del'>-	0x26c4, 0x26c5,</div><div class='del'>-	0x26c8, 0x26c8,</div><div class='del'>-	0x26ce, 0x26cf,</div><div class='del'>-	0x26d1, 0x26d1,</div><div class='del'>-	0x26d3, 0x26d4,</div><div class='del'>-	0x26e9, 0x26ea,</div><div class='del'>-	0x26f0, 0x26f5,</div><div class='del'>-	0x26f7, 0x26fa,</div><div class='del'>-	0x26fd, 0x26fd,</div><div class='del'>-	0x2702, 0x2702,</div><div class='del'>-	0x2705, 0x2705,</div><div class='del'>-	0x2708, 0x270d,</div><div class='del'>-	0x270f, 0x270f,</div><div class='del'>-	0x2712, 0x2712,</div><div class='del'>-	0x2714, 0x2714,</div><div class='del'>-	0x2716, 0x2716,</div><div class='del'>-	0x271d, 0x271d,</div><div class='del'>-	0x2721, 0x2721,</div><div class='del'>-	0x2728, 0x2728,</div><div class='del'>-	0x2733, 0x2734,</div><div class='del'>-	0x2744, 0x2744,</div><div class='del'>-	0x2747, 0x2747,</div><div class='del'>-	0x274c, 0x274c,</div><div class='del'>-	0x274e, 0x274e,</div><div class='del'>-	0x2753, 0x2755,</div><div class='del'>-	0x2757, 0x2757,</div><div class='del'>-	0x2763, 0x2764,</div><div class='del'>-	0x2795, 0x2797,</div><div class='del'>-	0x27a1, 0x27a1,</div><div class='del'>-	0x27b0, 0x27b0,</div><div class='del'>-	0x27bf, 0x27bf,</div><div class='del'>-	0x2934, 0x2935,</div><div class='del'>-	0x2b05, 0x2b07,</div><div class='del'>-	0x2b1b, 0x2b1c,</div><div class='del'>-	0x2b50, 0x2b50,</div><div class='del'>-	0x2b55, 0x2b55,</div><div class='del'>-	0x3030, 0x3030,</div><div class='del'>-	0x303d, 0x303d,</div><div class='del'>-	0x3297, 0x3297,</div><div class='del'>-	0x3299, 0x3299,</div><div class='del'>-	0x1f004, 0x1f004,</div><div class='del'>-	0x1f0cf, 0x1f0cf,</div><div class='del'>-	0x1f170, 0x1f171,</div><div class='del'>-	0x1f17e, 0x1f17f,</div><div class='del'>-	0x1f18e, 0x1f18e,</div><div class='del'>-	0x1f191, 0x1f19a,</div><div class='del'>-	0x1f1e6, 0x1f1ff,</div><div class='del'>-	0x1f201, 0x1f202,</div><div class='del'>-	0x1f21a, 0x1f21a,</div><div class='del'>-	0x1f22f, 0x1f22f,</div><div class='del'>-	0x1f232, 0x1f23a,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f300, 0x1f321,</div><div class='del'>-	0x1f324, 0x1f393,</div><div class='del'>-	0x1f396, 0x1f397,</div><div class='del'>-	0x1f399, 0x1f39b,</div><div class='del'>-	0x1f39e, 0x1f3f0,</div><div class='del'>-	0x1f3f3, 0x1f3f5,</div><div class='del'>-	0x1f3f7, 0x1f4fd,</div><div class='del'>-	0x1f4ff, 0x1f53d,</div><div class='del'>-	0x1f549, 0x1f54e,</div><div class='del'>-	0x1f550, 0x1f567,</div><div class='del'>-	0x1f56f, 0x1f570,</div><div class='del'>-	0x1f573, 0x1f57a,</div><div class='del'>-	0x1f587, 0x1f587,</div><div class='del'>-	0x1f58a, 0x1f58d,</div><div class='del'>-	0x1f590, 0x1f590,</div><div class='del'>-	0x1f595, 0x1f596,</div><div class='del'>-	0x1f5a4, 0x1f5a5,</div><div class='del'>-	0x1f5a8, 0x1f5a8,</div><div class='del'>-	0x1f5b1, 0x1f5b2,</div><div class='del'>-	0x1f5bc, 0x1f5bc,</div><div class='del'>-	0x1f5c2, 0x1f5c4,</div><div class='del'>-	0x1f5d1, 0x1f5d3,</div><div class='del'>-	0x1f5dc, 0x1f5de,</div><div class='del'>-	0x1f5e1, 0x1f5e1,</div><div class='del'>-	0x1f5e3, 0x1f5e3,</div><div class='del'>-	0x1f5e8, 0x1f5e8,</div><div class='del'>-	0x1f5ef, 0x1f5ef,</div><div class='del'>-	0x1f5f3, 0x1f5f3,</div><div class='del'>-	0x1f5fa, 0x1f64f,</div><div class='del'>-	0x1f680, 0x1f6c5,</div><div class='del'>-	0x1f6cb, 0x1f6d2,</div><div class='del'>-	0x1f6e0, 0x1f6e5,</div><div class='del'>-	0x1f6e9, 0x1f6e9,</div><div class='del'>-	0x1f6eb, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f0,</div><div class='del'>-	0x1f6f3, 0x1f6f9,</div><div class='del'>-	0x1f910, 0x1f93a,</div><div class='del'>-	0x1f93c, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f945,</div><div class='del'>-	0x1f947, 0x1f970,</div><div class='del'>-	0x1f973, 0x1f976,</div><div class='del'>-	0x1f97a, 0x1f97a,</div><div class='del'>-	0x1f97c, 0x1f9a2,</div><div class='del'>-	0x1f9b0, 0x1f9b9,</div><div class='del'>-	0x1f9c0, 0x1f9c2,</div><div class='del'>-	0x1f9d0, 0x1f9ff,</div><div class='del'>-}; /* CR_Emoji */</div><div class='del'>-</div><div class='del'>-/* 'Emoji_Presentation': Emoji */</div><div class='del'>-static const OnigCodePoint CR_Emoji_Presentation[] = {</div><div class='del'>-	77,</div><div class='del'>-	0x231a, 0x231b,</div><div class='del'>-	0x23e9, 0x23ec,</div><div class='del'>-	0x23f0, 0x23f0,</div><div class='del'>-	0x23f3, 0x23f3,</div><div class='del'>-	0x25fd, 0x25fe,</div><div class='del'>-	0x2614, 0x2615,</div><div class='del'>-	0x2648, 0x2653,</div><div class='del'>-	0x267f, 0x267f,</div><div class='del'>-	0x2693, 0x2693,</div><div class='del'>-	0x26a1, 0x26a1,</div><div class='del'>-	0x26aa, 0x26ab,</div><div class='del'>-	0x26bd, 0x26be,</div><div class='del'>-	0x26c4, 0x26c5,</div><div class='del'>-	0x26ce, 0x26ce,</div><div class='del'>-	0x26d4, 0x26d4,</div><div class='del'>-	0x26ea, 0x26ea,</div><div class='del'>-	0x26f2, 0x26f3,</div><div class='del'>-	0x26f5, 0x26f5,</div><div class='del'>-	0x26fa, 0x26fa,</div><div class='del'>-	0x26fd, 0x26fd,</div><div class='del'>-	0x2705, 0x2705,</div><div class='del'>-	0x270a, 0x270b,</div><div class='del'>-	0x2728, 0x2728,</div><div class='del'>-	0x274c, 0x274c,</div><div class='del'>-	0x274e, 0x274e,</div><div class='del'>-	0x2753, 0x2755,</div><div class='del'>-	0x2757, 0x2757,</div><div class='del'>-	0x2795, 0x2797,</div><div class='del'>-	0x27b0, 0x27b0,</div><div class='del'>-	0x27bf, 0x27bf,</div><div class='del'>-	0x2b1b, 0x2b1c,</div><div class='del'>-	0x2b50, 0x2b50,</div><div class='del'>-	0x2b55, 0x2b55,</div><div class='del'>-	0x1f004, 0x1f004,</div><div class='del'>-	0x1f0cf, 0x1f0cf,</div><div class='del'>-	0x1f18e, 0x1f18e,</div><div class='del'>-	0x1f191, 0x1f19a,</div><div class='del'>-	0x1f1e6, 0x1f1ff,</div><div class='del'>-	0x1f201, 0x1f201,</div><div class='del'>-	0x1f21a, 0x1f21a,</div><div class='del'>-	0x1f22f, 0x1f22f,</div><div class='del'>-	0x1f232, 0x1f236,</div><div class='del'>-	0x1f238, 0x1f23a,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f300, 0x1f320,</div><div class='del'>-	0x1f32d, 0x1f335,</div><div class='del'>-	0x1f337, 0x1f37c,</div><div class='del'>-	0x1f37e, 0x1f393,</div><div class='del'>-	0x1f3a0, 0x1f3ca,</div><div class='del'>-	0x1f3cf, 0x1f3d3,</div><div class='del'>-	0x1f3e0, 0x1f3f0,</div><div class='del'>-	0x1f3f4, 0x1f3f4,</div><div class='del'>-	0x1f3f8, 0x1f43e,</div><div class='del'>-	0x1f440, 0x1f440,</div><div class='del'>-	0x1f442, 0x1f4fc,</div><div class='del'>-	0x1f4ff, 0x1f53d,</div><div class='del'>-	0x1f54b, 0x1f54e,</div><div class='del'>-	0x1f550, 0x1f567,</div><div class='del'>-	0x1f57a, 0x1f57a,</div><div class='del'>-	0x1f595, 0x1f596,</div><div class='del'>-	0x1f5a4, 0x1f5a4,</div><div class='del'>-	0x1f5fb, 0x1f64f,</div><div class='del'>-	0x1f680, 0x1f6c5,</div><div class='del'>-	0x1f6cc, 0x1f6cc,</div><div class='del'>-	0x1f6d0, 0x1f6d2,</div><div class='del'>-	0x1f6eb, 0x1f6ec,</div><div class='del'>-	0x1f6f4, 0x1f6f9,</div><div class='del'>-	0x1f910, 0x1f93a,</div><div class='del'>-	0x1f93c, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f945,</div><div class='del'>-	0x1f947, 0x1f970,</div><div class='del'>-	0x1f973, 0x1f976,</div><div class='del'>-	0x1f97a, 0x1f97a,</div><div class='del'>-	0x1f97c, 0x1f9a2,</div><div class='del'>-	0x1f9b0, 0x1f9b9,</div><div class='del'>-	0x1f9c0, 0x1f9c2,</div><div class='del'>-	0x1f9d0, 0x1f9ff,</div><div class='del'>-}; /* CR_Emoji_Presentation */</div><div class='del'>-</div><div class='del'>-/* 'Emoji_Modifier': Emoji */</div><div class='del'>-static const OnigCodePoint CR_Emoji_Modifier[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f3fb, 0x1f3ff,</div><div class='del'>-}; /* CR_Emoji_Modifier */</div><div class='del'>-</div><div class='del'>-/* 'Emoji_Modifier_Base': Emoji */</div><div class='del'>-static const OnigCodePoint CR_Emoji_Modifier_Base[] = {</div><div class='del'>-	34,</div><div class='del'>-	0x261d, 0x261d,</div><div class='del'>-	0x26f9, 0x26f9,</div><div class='del'>-	0x270a, 0x270d,</div><div class='del'>-	0x1f385, 0x1f385,</div><div class='del'>-	0x1f3c2, 0x1f3c4,</div><div class='del'>-	0x1f3c7, 0x1f3c7,</div><div class='del'>-	0x1f3ca, 0x1f3cc,</div><div class='del'>-	0x1f442, 0x1f443,</div><div class='del'>-	0x1f446, 0x1f450,</div><div class='del'>-	0x1f466, 0x1f469,</div><div class='del'>-	0x1f46e, 0x1f46e,</div><div class='del'>-	0x1f470, 0x1f478,</div><div class='del'>-	0x1f47c, 0x1f47c,</div><div class='del'>-	0x1f481, 0x1f483,</div><div class='del'>-	0x1f485, 0x1f487,</div><div class='del'>-	0x1f4aa, 0x1f4aa,</div><div class='del'>-	0x1f574, 0x1f575,</div><div class='del'>-	0x1f57a, 0x1f57a,</div><div class='del'>-	0x1f590, 0x1f590,</div><div class='del'>-	0x1f595, 0x1f596,</div><div class='del'>-	0x1f645, 0x1f647,</div><div class='del'>-	0x1f64b, 0x1f64f,</div><div class='del'>-	0x1f6a3, 0x1f6a3,</div><div class='del'>-	0x1f6b4, 0x1f6b6,</div><div class='del'>-	0x1f6c0, 0x1f6c0,</div><div class='del'>-	0x1f6cc, 0x1f6cc,</div><div class='del'>-	0x1f918, 0x1f91c,</div><div class='del'>-	0x1f91e, 0x1f91f,</div><div class='del'>-	0x1f926, 0x1f926,</div><div class='del'>-	0x1f930, 0x1f939,</div><div class='del'>-	0x1f93d, 0x1f93e,</div><div class='del'>-	0x1f9b5, 0x1f9b6,</div><div class='del'>-	0x1f9b8, 0x1f9b9,</div><div class='del'>-	0x1f9d1, 0x1f9dd,</div><div class='del'>-}; /* CR_Emoji_Modifier_Base */</div><div class='del'>-</div><div class='del'>-/* 'Emoji_Component': Emoji */</div><div class='del'>-static const OnigCodePoint CR_Emoji_Component[] = {</div><div class='del'>-	10,</div><div class='del'>-	0x0023, 0x0023,</div><div class='del'>-	0x002a, 0x002a,</div><div class='del'>-	0x0030, 0x0039,</div><div class='del'>-	0x200d, 0x200d,</div><div class='del'>-	0x20e3, 0x20e3,</div><div class='del'>-	0xfe0f, 0xfe0f,</div><div class='del'>-	0x1f1e6, 0x1f1ff,</div><div class='del'>-	0x1f3fb, 0x1f3ff,</div><div class='del'>-	0x1f9b0, 0x1f9b3,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-}; /* CR_Emoji_Component */</div><div class='del'>-</div><div class='del'>-/* 'Extended_Pictographic': Emoji */</div><div class='del'>-static const OnigCodePoint CR_Extended_Pictographic[] = {</div><div class='del'>-	77,</div><div class='del'>-	0x00a9, 0x00a9,</div><div class='del'>-	0x00ae, 0x00ae,</div><div class='del'>-	0x203c, 0x203c,</div><div class='del'>-	0x2049, 0x2049,</div><div class='del'>-	0x2122, 0x2122,</div><div class='del'>-	0x2139, 0x2139,</div><div class='del'>-	0x2194, 0x2199,</div><div class='del'>-	0x21a9, 0x21aa,</div><div class='del'>-	0x231a, 0x231b,</div><div class='del'>-	0x2328, 0x2328,</div><div class='del'>-	0x2388, 0x2388,</div><div class='del'>-	0x23cf, 0x23cf,</div><div class='del'>-	0x23e9, 0x23f3,</div><div class='del'>-	0x23f8, 0x23fa,</div><div class='del'>-	0x24c2, 0x24c2,</div><div class='del'>-	0x25aa, 0x25ab,</div><div class='del'>-	0x25b6, 0x25b6,</div><div class='del'>-	0x25c0, 0x25c0,</div><div class='del'>-	0x25fb, 0x25fe,</div><div class='del'>-	0x2600, 0x2605,</div><div class='del'>-	0x2607, 0x2612,</div><div class='del'>-	0x2614, 0x2685,</div><div class='del'>-	0x2690, 0x2705,</div><div class='del'>-	0x2708, 0x2712,</div><div class='del'>-	0x2714, 0x2714,</div><div class='del'>-	0x2716, 0x2716,</div><div class='del'>-	0x271d, 0x271d,</div><div class='del'>-	0x2721, 0x2721,</div><div class='del'>-	0x2728, 0x2728,</div><div class='del'>-	0x2733, 0x2734,</div><div class='del'>-	0x2744, 0x2744,</div><div class='del'>-	0x2747, 0x2747,</div><div class='del'>-	0x274c, 0x274c,</div><div class='del'>-	0x274e, 0x274e,</div><div class='del'>-	0x2753, 0x2755,</div><div class='del'>-	0x2757, 0x2757,</div><div class='del'>-	0x2763, 0x2767,</div><div class='del'>-	0x2795, 0x2797,</div><div class='del'>-	0x27a1, 0x27a1,</div><div class='del'>-	0x27b0, 0x27b0,</div><div class='del'>-	0x27bf, 0x27bf,</div><div class='del'>-	0x2934, 0x2935,</div><div class='del'>-	0x2b05, 0x2b07,</div><div class='del'>-	0x2b1b, 0x2b1c,</div><div class='del'>-	0x2b50, 0x2b50,</div><div class='del'>-	0x2b55, 0x2b55,</div><div class='del'>-	0x3030, 0x3030,</div><div class='del'>-	0x303d, 0x303d,</div><div class='del'>-	0x3297, 0x3297,</div><div class='del'>-	0x3299, 0x3299,</div><div class='del'>-	0x1f000, 0x1f0ff,</div><div class='del'>-	0x1f10d, 0x1f10f,</div><div class='del'>-	0x1f12f, 0x1f12f,</div><div class='del'>-	0x1f16c, 0x1f171,</div><div class='del'>-	0x1f17e, 0x1f17f,</div><div class='del'>-	0x1f18e, 0x1f18e,</div><div class='del'>-	0x1f191, 0x1f19a,</div><div class='del'>-	0x1f1ad, 0x1f1e5,</div><div class='del'>-	0x1f201, 0x1f20f,</div><div class='del'>-	0x1f21a, 0x1f21a,</div><div class='del'>-	0x1f22f, 0x1f22f,</div><div class='del'>-	0x1f232, 0x1f23a,</div><div class='del'>-	0x1f23c, 0x1f23f,</div><div class='del'>-	0x1f249, 0x1f3fa,</div><div class='del'>-	0x1f400, 0x1f53d,</div><div class='del'>-	0x1f546, 0x1f64f,</div><div class='del'>-	0x1f680, 0x1f6ff,</div><div class='del'>-	0x1f774, 0x1f77f,</div><div class='del'>-	0x1f7d5, 0x1f7ff,</div><div class='del'>-	0x1f80c, 0x1f80f,</div><div class='del'>-	0x1f848, 0x1f84f,</div><div class='del'>-	0x1f85a, 0x1f85f,</div><div class='del'>-	0x1f888, 0x1f88f,</div><div class='del'>-	0x1f8ae, 0x1f8ff,</div><div class='del'>-	0x1f90c, 0x1f93a,</div><div class='del'>-	0x1f93c, 0x1f945,</div><div class='del'>-	0x1f947, 0x1fffd,</div><div class='del'>-}; /* CR_Extended_Pictographic */</div><div class='del'>-</div><div class='del'>-/* 'Unknown': Script */</div><div class='del'>-static const OnigCodePoint CR_Unknown[] = {</div><div class='del'>-	656,</div><div class='del'>-	0x0378, 0x0379,</div><div class='del'>-	0x0380, 0x0383,</div><div class='del'>-	0x038b, 0x038b,</div><div class='del'>-	0x038d, 0x038d,</div><div class='del'>-	0x03a2, 0x03a2,</div><div class='del'>-	0x0530, 0x0530,</div><div class='del'>-	0x0557, 0x0558,</div><div class='del'>-	0x058b, 0x058c,</div><div class='del'>-	0x0590, 0x0590,</div><div class='del'>-	0x05c8, 0x05cf,</div><div class='del'>-	0x05eb, 0x05ee,</div><div class='del'>-	0x05f5, 0x05ff,</div><div class='del'>-	0x061d, 0x061d,</div><div class='del'>-	0x070e, 0x070e,</div><div class='del'>-	0x074b, 0x074c,</div><div class='del'>-	0x07b2, 0x07bf,</div><div class='del'>-	0x07fb, 0x07fc,</div><div class='del'>-	0x082e, 0x082f,</div><div class='del'>-	0x083f, 0x083f,</div><div class='del'>-	0x085c, 0x085d,</div><div class='del'>-	0x085f, 0x085f,</div><div class='del'>-	0x086b, 0x089f,</div><div class='del'>-	0x08b5, 0x08b5,</div><div class='del'>-	0x08be, 0x08d2,</div><div class='del'>-	0x0984, 0x0984,</div><div class='del'>-	0x098d, 0x098e,</div><div class='del'>-	0x0991, 0x0992,</div><div class='del'>-	0x09a9, 0x09a9,</div><div class='del'>-	0x09b1, 0x09b1,</div><div class='del'>-	0x09b3, 0x09b5,</div><div class='del'>-	0x09ba, 0x09bb,</div><div class='del'>-	0x09c5, 0x09c6,</div><div class='del'>-	0x09c9, 0x09ca,</div><div class='del'>-	0x09cf, 0x09d6,</div><div class='del'>-	0x09d8, 0x09db,</div><div class='del'>-	0x09de, 0x09de,</div><div class='del'>-	0x09e4, 0x09e5,</div><div class='del'>-	0x09ff, 0x0a00,</div><div class='del'>-	0x0a04, 0x0a04,</div><div class='del'>-	0x0a0b, 0x0a0e,</div><div class='del'>-	0x0a11, 0x0a12,</div><div class='del'>-	0x0a29, 0x0a29,</div><div class='del'>-	0x0a31, 0x0a31,</div><div class='del'>-	0x0a34, 0x0a34,</div><div class='del'>-	0x0a37, 0x0a37,</div><div class='del'>-	0x0a3a, 0x0a3b,</div><div class='del'>-	0x0a3d, 0x0a3d,</div><div class='del'>-	0x0a43, 0x0a46,</div><div class='del'>-	0x0a49, 0x0a4a,</div><div class='del'>-	0x0a4e, 0x0a50,</div><div class='del'>-	0x0a52, 0x0a58,</div><div class='del'>-	0x0a5d, 0x0a5d,</div><div class='del'>-	0x0a5f, 0x0a65,</div><div class='del'>-	0x0a77, 0x0a80,</div><div class='del'>-	0x0a84, 0x0a84,</div><div class='del'>-	0x0a8e, 0x0a8e,</div><div class='del'>-	0x0a92, 0x0a92,</div><div class='del'>-	0x0aa9, 0x0aa9,</div><div class='del'>-	0x0ab1, 0x0ab1,</div><div class='del'>-	0x0ab4, 0x0ab4,</div><div class='del'>-	0x0aba, 0x0abb,</div><div class='del'>-	0x0ac6, 0x0ac6,</div><div class='del'>-	0x0aca, 0x0aca,</div><div class='del'>-	0x0ace, 0x0acf,</div><div class='del'>-	0x0ad1, 0x0adf,</div><div class='del'>-	0x0ae4, 0x0ae5,</div><div class='del'>-	0x0af2, 0x0af8,</div><div class='del'>-	0x0b00, 0x0b00,</div><div class='del'>-	0x0b04, 0x0b04,</div><div class='del'>-	0x0b0d, 0x0b0e,</div><div class='del'>-	0x0b11, 0x0b12,</div><div class='del'>-	0x0b29, 0x0b29,</div><div class='del'>-	0x0b31, 0x0b31,</div><div class='del'>-	0x0b34, 0x0b34,</div><div class='del'>-	0x0b3a, 0x0b3b,</div><div class='del'>-	0x0b45, 0x0b46,</div><div class='del'>-	0x0b49, 0x0b4a,</div><div class='del'>-	0x0b4e, 0x0b55,</div><div class='del'>-	0x0b58, 0x0b5b,</div><div class='del'>-	0x0b5e, 0x0b5e,</div><div class='del'>-	0x0b64, 0x0b65,</div><div class='del'>-	0x0b78, 0x0b81,</div><div class='del'>-	0x0b84, 0x0b84,</div><div class='del'>-	0x0b8b, 0x0b8d,</div><div class='del'>-	0x0b91, 0x0b91,</div><div class='del'>-	0x0b96, 0x0b98,</div><div class='del'>-	0x0b9b, 0x0b9b,</div><div class='del'>-	0x0b9d, 0x0b9d,</div><div class='del'>-	0x0ba0, 0x0ba2,</div><div class='del'>-	0x0ba5, 0x0ba7,</div><div class='del'>-	0x0bab, 0x0bad,</div><div class='del'>-	0x0bba, 0x0bbd,</div><div class='del'>-	0x0bc3, 0x0bc5,</div><div class='del'>-	0x0bc9, 0x0bc9,</div><div class='del'>-	0x0bce, 0x0bcf,</div><div class='del'>-	0x0bd1, 0x0bd6,</div><div class='del'>-	0x0bd8, 0x0be5,</div><div class='del'>-	0x0bfb, 0x0bff,</div><div class='del'>-	0x0c0d, 0x0c0d,</div><div class='del'>-	0x0c11, 0x0c11,</div><div class='del'>-	0x0c29, 0x0c29,</div><div class='del'>-	0x0c3a, 0x0c3c,</div><div class='del'>-	0x0c45, 0x0c45,</div><div class='del'>-	0x0c49, 0x0c49,</div><div class='del'>-	0x0c4e, 0x0c54,</div><div class='del'>-	0x0c57, 0x0c57,</div><div class='del'>-	0x0c5b, 0x0c5f,</div><div class='del'>-	0x0c64, 0x0c65,</div><div class='del'>-	0x0c70, 0x0c77,</div><div class='del'>-	0x0c8d, 0x0c8d,</div><div class='del'>-	0x0c91, 0x0c91,</div><div class='del'>-	0x0ca9, 0x0ca9,</div><div class='del'>-	0x0cb4, 0x0cb4,</div><div class='del'>-	0x0cba, 0x0cbb,</div><div class='del'>-	0x0cc5, 0x0cc5,</div><div class='del'>-	0x0cc9, 0x0cc9,</div><div class='del'>-	0x0cce, 0x0cd4,</div><div class='del'>-	0x0cd7, 0x0cdd,</div><div class='del'>-	0x0cdf, 0x0cdf,</div><div class='del'>-	0x0ce4, 0x0ce5,</div><div class='del'>-	0x0cf0, 0x0cf0,</div><div class='del'>-	0x0cf3, 0x0cff,</div><div class='del'>-	0x0d04, 0x0d04,</div><div class='del'>-	0x0d0d, 0x0d0d,</div><div class='del'>-	0x0d11, 0x0d11,</div><div class='del'>-	0x0d45, 0x0d45,</div><div class='del'>-	0x0d49, 0x0d49,</div><div class='del'>-	0x0d50, 0x0d53,</div><div class='del'>-	0x0d64, 0x0d65,</div><div class='del'>-	0x0d80, 0x0d81,</div><div class='del'>-	0x0d84, 0x0d84,</div><div class='del'>-	0x0d97, 0x0d99,</div><div class='del'>-	0x0db2, 0x0db2,</div><div class='del'>-	0x0dbc, 0x0dbc,</div><div class='del'>-	0x0dbe, 0x0dbf,</div><div class='del'>-	0x0dc7, 0x0dc9,</div><div class='del'>-	0x0dcb, 0x0dce,</div><div class='del'>-	0x0dd5, 0x0dd5,</div><div class='del'>-	0x0dd7, 0x0dd7,</div><div class='del'>-	0x0de0, 0x0de5,</div><div class='del'>-	0x0df0, 0x0df1,</div><div class='del'>-	0x0df5, 0x0e00,</div><div class='del'>-	0x0e3b, 0x0e3e,</div><div class='del'>-	0x0e5c, 0x0e80,</div><div class='del'>-	0x0e83, 0x0e83,</div><div class='del'>-	0x0e85, 0x0e86,</div><div class='del'>-	0x0e89, 0x0e89,</div><div class='del'>-	0x0e8b, 0x0e8c,</div><div class='del'>-	0x0e8e, 0x0e93,</div><div class='del'>-	0x0e98, 0x0e98,</div><div class='del'>-	0x0ea0, 0x0ea0,</div><div class='del'>-	0x0ea4, 0x0ea4,</div><div class='del'>-	0x0ea6, 0x0ea6,</div><div class='del'>-	0x0ea8, 0x0ea9,</div><div class='del'>-	0x0eac, 0x0eac,</div><div class='del'>-	0x0eba, 0x0eba,</div><div class='del'>-	0x0ebe, 0x0ebf,</div><div class='del'>-	0x0ec5, 0x0ec5,</div><div class='del'>-	0x0ec7, 0x0ec7,</div><div class='del'>-	0x0ece, 0x0ecf,</div><div class='del'>-	0x0eda, 0x0edb,</div><div class='del'>-	0x0ee0, 0x0eff,</div><div class='del'>-	0x0f48, 0x0f48,</div><div class='del'>-	0x0f6d, 0x0f70,</div><div class='del'>-	0x0f98, 0x0f98,</div><div class='del'>-	0x0fbd, 0x0fbd,</div><div class='del'>-	0x0fcd, 0x0fcd,</div><div class='del'>-	0x0fdb, 0x0fff,</div><div class='del'>-	0x10c6, 0x10c6,</div><div class='del'>-	0x10c8, 0x10cc,</div><div class='del'>-	0x10ce, 0x10cf,</div><div class='del'>-	0x1249, 0x1249,</div><div class='del'>-	0x124e, 0x124f,</div><div class='del'>-	0x1257, 0x1257,</div><div class='del'>-	0x1259, 0x1259,</div><div class='del'>-	0x125e, 0x125f,</div><div class='del'>-	0x1289, 0x1289,</div><div class='del'>-	0x128e, 0x128f,</div><div class='del'>-	0x12b1, 0x12b1,</div><div class='del'>-	0x12b6, 0x12b7,</div><div class='del'>-	0x12bf, 0x12bf,</div><div class='del'>-	0x12c1, 0x12c1,</div><div class='del'>-	0x12c6, 0x12c7,</div><div class='del'>-	0x12d7, 0x12d7,</div><div class='del'>-	0x1311, 0x1311,</div><div class='del'>-	0x1316, 0x1317,</div><div class='del'>-	0x135b, 0x135c,</div><div class='del'>-	0x137d, 0x137f,</div><div class='del'>-	0x139a, 0x139f,</div><div class='del'>-	0x13f6, 0x13f7,</div><div class='del'>-	0x13fe, 0x13ff,</div><div class='del'>-	0x169d, 0x169f,</div><div class='del'>-	0x16f9, 0x16ff,</div><div class='del'>-	0x170d, 0x170d,</div><div class='del'>-	0x1715, 0x171f,</div><div class='del'>-	0x1737, 0x173f,</div><div class='del'>-	0x1754, 0x175f,</div><div class='del'>-	0x176d, 0x176d,</div><div class='del'>-	0x1771, 0x1771,</div><div class='del'>-	0x1774, 0x177f,</div><div class='del'>-	0x17de, 0x17df,</div><div class='del'>-	0x17ea, 0x17ef,</div><div class='del'>-	0x17fa, 0x17ff,</div><div class='del'>-	0x180f, 0x180f,</div><div class='del'>-	0x181a, 0x181f,</div><div class='del'>-	0x1879, 0x187f,</div><div class='del'>-	0x18ab, 0x18af,</div><div class='del'>-	0x18f6, 0x18ff,</div><div class='del'>-	0x191f, 0x191f,</div><div class='del'>-	0x192c, 0x192f,</div><div class='del'>-	0x193c, 0x193f,</div><div class='del'>-	0x1941, 0x1943,</div><div class='del'>-	0x196e, 0x196f,</div><div class='del'>-	0x1975, 0x197f,</div><div class='del'>-	0x19ac, 0x19af,</div><div class='del'>-	0x19ca, 0x19cf,</div><div class='del'>-	0x19db, 0x19dd,</div><div class='del'>-	0x1a1c, 0x1a1d,</div><div class='del'>-	0x1a5f, 0x1a5f,</div><div class='del'>-	0x1a7d, 0x1a7e,</div><div class='del'>-	0x1a8a, 0x1a8f,</div><div class='del'>-	0x1a9a, 0x1a9f,</div><div class='del'>-	0x1aae, 0x1aaf,</div><div class='del'>-	0x1abf, 0x1aff,</div><div class='del'>-	0x1b4c, 0x1b4f,</div><div class='del'>-	0x1b7d, 0x1b7f,</div><div class='del'>-	0x1bf4, 0x1bfb,</div><div class='del'>-	0x1c38, 0x1c3a,</div><div class='del'>-	0x1c4a, 0x1c4c,</div><div class='del'>-	0x1c89, 0x1c8f,</div><div class='del'>-	0x1cbb, 0x1cbc,</div><div class='del'>-	0x1cc8, 0x1ccf,</div><div class='del'>-	0x1cfa, 0x1cff,</div><div class='del'>-	0x1dfa, 0x1dfa,</div><div class='del'>-	0x1f16, 0x1f17,</div><div class='del'>-	0x1f1e, 0x1f1f,</div><div class='del'>-	0x1f46, 0x1f47,</div><div class='del'>-	0x1f4e, 0x1f4f,</div><div class='del'>-	0x1f58, 0x1f58,</div><div class='del'>-	0x1f5a, 0x1f5a,</div><div class='del'>-	0x1f5c, 0x1f5c,</div><div class='del'>-	0x1f5e, 0x1f5e,</div><div class='del'>-	0x1f7e, 0x1f7f,</div><div class='del'>-	0x1fb5, 0x1fb5,</div><div class='del'>-	0x1fc5, 0x1fc5,</div><div class='del'>-	0x1fd4, 0x1fd5,</div><div class='del'>-	0x1fdc, 0x1fdc,</div><div class='del'>-	0x1ff0, 0x1ff1,</div><div class='del'>-	0x1ff5, 0x1ff5,</div><div class='del'>-	0x1fff, 0x1fff,</div><div class='del'>-	0x2065, 0x2065,</div><div class='del'>-	0x2072, 0x2073,</div><div class='del'>-	0x208f, 0x208f,</div><div class='del'>-	0x209d, 0x209f,</div><div class='del'>-	0x20c0, 0x20cf,</div><div class='del'>-	0x20f1, 0x20ff,</div><div class='del'>-	0x218c, 0x218f,</div><div class='del'>-	0x2427, 0x243f,</div><div class='del'>-	0x244b, 0x245f,</div><div class='del'>-	0x2b74, 0x2b75,</div><div class='del'>-	0x2b96, 0x2b97,</div><div class='del'>-	0x2bc9, 0x2bc9,</div><div class='del'>-	0x2bff, 0x2bff,</div><div class='del'>-	0x2c2f, 0x2c2f,</div><div class='del'>-	0x2c5f, 0x2c5f,</div><div class='del'>-	0x2cf4, 0x2cf8,</div><div class='del'>-	0x2d26, 0x2d26,</div><div class='del'>-	0x2d28, 0x2d2c,</div><div class='del'>-	0x2d2e, 0x2d2f,</div><div class='del'>-	0x2d68, 0x2d6e,</div><div class='del'>-	0x2d71, 0x2d7e,</div><div class='del'>-	0x2d97, 0x2d9f,</div><div class='del'>-	0x2da7, 0x2da7,</div><div class='del'>-	0x2daf, 0x2daf,</div><div class='del'>-	0x2db7, 0x2db7,</div><div class='del'>-	0x2dbf, 0x2dbf,</div><div class='del'>-	0x2dc7, 0x2dc7,</div><div class='del'>-	0x2dcf, 0x2dcf,</div><div class='del'>-	0x2dd7, 0x2dd7,</div><div class='del'>-	0x2ddf, 0x2ddf,</div><div class='del'>-	0x2e4f, 0x2e7f,</div><div class='del'>-	0x2e9a, 0x2e9a,</div><div class='del'>-	0x2ef4, 0x2eff,</div><div class='del'>-	0x2fd6, 0x2fef,</div><div class='del'>-	0x2ffc, 0x2fff,</div><div class='del'>-	0x3040, 0x3040,</div><div class='del'>-	0x3097, 0x3098,</div><div class='del'>-	0x3100, 0x3104,</div><div class='del'>-	0x3130, 0x3130,</div><div class='del'>-	0x318f, 0x318f,</div><div class='del'>-	0x31bb, 0x31bf,</div><div class='del'>-	0x31e4, 0x31ef,</div><div class='del'>-	0x321f, 0x321f,</div><div class='del'>-	0x32ff, 0x32ff,</div><div class='del'>-	0x4db6, 0x4dbf,</div><div class='del'>-	0x9ff0, 0x9fff,</div><div class='del'>-	0xa48d, 0xa48f,</div><div class='del'>-	0xa4c7, 0xa4cf,</div><div class='del'>-	0xa62c, 0xa63f,</div><div class='del'>-	0xa6f8, 0xa6ff,</div><div class='del'>-	0xa7ba, 0xa7f6,</div><div class='del'>-	0xa82c, 0xa82f,</div><div class='del'>-	0xa83a, 0xa83f,</div><div class='del'>-	0xa878, 0xa87f,</div><div class='del'>-	0xa8c6, 0xa8cd,</div><div class='del'>-	0xa8da, 0xa8df,</div><div class='del'>-	0xa954, 0xa95e,</div><div class='del'>-	0xa97d, 0xa97f,</div><div class='del'>-	0xa9ce, 0xa9ce,</div><div class='del'>-	0xa9da, 0xa9dd,</div><div class='del'>-	0xa9ff, 0xa9ff,</div><div class='del'>-	0xaa37, 0xaa3f,</div><div class='del'>-	0xaa4e, 0xaa4f,</div><div class='del'>-	0xaa5a, 0xaa5b,</div><div class='del'>-	0xaac3, 0xaada,</div><div class='del'>-	0xaaf7, 0xab00,</div><div class='del'>-	0xab07, 0xab08,</div><div class='del'>-	0xab0f, 0xab10,</div><div class='del'>-	0xab17, 0xab1f,</div><div class='del'>-	0xab27, 0xab27,</div><div class='del'>-	0xab2f, 0xab2f,</div><div class='del'>-	0xab66, 0xab6f,</div><div class='del'>-	0xabee, 0xabef,</div><div class='del'>-	0xabfa, 0xabff,</div><div class='del'>-	0xd7a4, 0xd7af,</div><div class='del'>-	0xd7c7, 0xd7ca,</div><div class='del'>-	0xd7fc, 0xf8ff,</div><div class='del'>-	0xfa6e, 0xfa6f,</div><div class='del'>-	0xfada, 0xfaff,</div><div class='del'>-	0xfb07, 0xfb12,</div><div class='del'>-	0xfb18, 0xfb1c,</div><div class='del'>-	0xfb37, 0xfb37,</div><div class='del'>-	0xfb3d, 0xfb3d,</div><div class='del'>-	0xfb3f, 0xfb3f,</div><div class='del'>-	0xfb42, 0xfb42,</div><div class='del'>-	0xfb45, 0xfb45,</div><div class='del'>-	0xfbc2, 0xfbd2,</div><div class='del'>-	0xfd40, 0xfd4f,</div><div class='del'>-	0xfd90, 0xfd91,</div><div class='del'>-	0xfdc8, 0xfdef,</div><div class='del'>-	0xfdfe, 0xfdff,</div><div class='del'>-	0xfe1a, 0xfe1f,</div><div class='del'>-	0xfe53, 0xfe53,</div><div class='del'>-	0xfe67, 0xfe67,</div><div class='del'>-	0xfe6c, 0xfe6f,</div><div class='del'>-	0xfe75, 0xfe75,</div><div class='del'>-	0xfefd, 0xfefe,</div><div class='del'>-	0xff00, 0xff00,</div><div class='del'>-	0xffbf, 0xffc1,</div><div class='del'>-	0xffc8, 0xffc9,</div><div class='del'>-	0xffd0, 0xffd1,</div><div class='del'>-	0xffd8, 0xffd9,</div><div class='del'>-	0xffdd, 0xffdf,</div><div class='del'>-	0xffe7, 0xffe7,</div><div class='del'>-	0xffef, 0xfff8,</div><div class='del'>-	0xfffe, 0xffff,</div><div class='del'>-	0x1000c, 0x1000c,</div><div class='del'>-	0x10027, 0x10027,</div><div class='del'>-	0x1003b, 0x1003b,</div><div class='del'>-	0x1003e, 0x1003e,</div><div class='del'>-	0x1004e, 0x1004f,</div><div class='del'>-	0x1005e, 0x1007f,</div><div class='del'>-	0x100fb, 0x100ff,</div><div class='del'>-	0x10103, 0x10106,</div><div class='del'>-	0x10134, 0x10136,</div><div class='del'>-	0x1018f, 0x1018f,</div><div class='del'>-	0x1019c, 0x1019f,</div><div class='del'>-	0x101a1, 0x101cf,</div><div class='del'>-	0x101fe, 0x1027f,</div><div class='del'>-	0x1029d, 0x1029f,</div><div class='del'>-	0x102d1, 0x102df,</div><div class='del'>-	0x102fc, 0x102ff,</div><div class='del'>-	0x10324, 0x1032c,</div><div class='del'>-	0x1034b, 0x1034f,</div><div class='del'>-	0x1037b, 0x1037f,</div><div class='del'>-	0x1039e, 0x1039e,</div><div class='del'>-	0x103c4, 0x103c7,</div><div class='del'>-	0x103d6, 0x103ff,</div><div class='del'>-	0x1049e, 0x1049f,</div><div class='del'>-	0x104aa, 0x104af,</div><div class='del'>-	0x104d4, 0x104d7,</div><div class='del'>-	0x104fc, 0x104ff,</div><div class='del'>-	0x10528, 0x1052f,</div><div class='del'>-	0x10564, 0x1056e,</div><div class='del'>-	0x10570, 0x105ff,</div><div class='del'>-	0x10737, 0x1073f,</div><div class='del'>-	0x10756, 0x1075f,</div><div class='del'>-	0x10768, 0x107ff,</div><div class='del'>-	0x10806, 0x10807,</div><div class='del'>-	0x10809, 0x10809,</div><div class='del'>-	0x10836, 0x10836,</div><div class='del'>-	0x10839, 0x1083b,</div><div class='del'>-	0x1083d, 0x1083e,</div><div class='del'>-	0x10856, 0x10856,</div><div class='del'>-	0x1089f, 0x108a6,</div><div class='del'>-	0x108b0, 0x108df,</div><div class='del'>-	0x108f3, 0x108f3,</div><div class='del'>-	0x108f6, 0x108fa,</div><div class='del'>-	0x1091c, 0x1091e,</div><div class='del'>-	0x1093a, 0x1093e,</div><div class='del'>-	0x10940, 0x1097f,</div><div class='del'>-	0x109b8, 0x109bb,</div><div class='del'>-	0x109d0, 0x109d1,</div><div class='del'>-	0x10a04, 0x10a04,</div><div class='del'>-	0x10a07, 0x10a0b,</div><div class='del'>-	0x10a14, 0x10a14,</div><div class='del'>-	0x10a18, 0x10a18,</div><div class='del'>-	0x10a36, 0x10a37,</div><div class='del'>-	0x10a3b, 0x10a3e,</div><div class='del'>-	0x10a49, 0x10a4f,</div><div class='del'>-	0x10a59, 0x10a5f,</div><div class='del'>-	0x10aa0, 0x10abf,</div><div class='del'>-	0x10ae7, 0x10aea,</div><div class='del'>-	0x10af7, 0x10aff,</div><div class='del'>-	0x10b36, 0x10b38,</div><div class='del'>-	0x10b56, 0x10b57,</div><div class='del'>-	0x10b73, 0x10b77,</div><div class='del'>-	0x10b92, 0x10b98,</div><div class='del'>-	0x10b9d, 0x10ba8,</div><div class='del'>-	0x10bb0, 0x10bff,</div><div class='del'>-	0x10c49, 0x10c7f,</div><div class='del'>-	0x10cb3, 0x10cbf,</div><div class='del'>-	0x10cf3, 0x10cf9,</div><div class='del'>-	0x10d28, 0x10d2f,</div><div class='del'>-	0x10d3a, 0x10e5f,</div><div class='del'>-	0x10e7f, 0x10eff,</div><div class='del'>-	0x10f28, 0x10f2f,</div><div class='del'>-	0x10f5a, 0x10fff,</div><div class='del'>-	0x1104e, 0x11051,</div><div class='del'>-	0x11070, 0x1107e,</div><div class='del'>-	0x110c2, 0x110cc,</div><div class='del'>-	0x110ce, 0x110cf,</div><div class='del'>-	0x110e9, 0x110ef,</div><div class='del'>-	0x110fa, 0x110ff,</div><div class='del'>-	0x11135, 0x11135,</div><div class='del'>-	0x11147, 0x1114f,</div><div class='del'>-	0x11177, 0x1117f,</div><div class='del'>-	0x111ce, 0x111cf,</div><div class='del'>-	0x111e0, 0x111e0,</div><div class='del'>-	0x111f5, 0x111ff,</div><div class='del'>-	0x11212, 0x11212,</div><div class='del'>-	0x1123f, 0x1127f,</div><div class='del'>-	0x11287, 0x11287,</div><div class='del'>-	0x11289, 0x11289,</div><div class='del'>-	0x1128e, 0x1128e,</div><div class='del'>-	0x1129e, 0x1129e,</div><div class='del'>-	0x112aa, 0x112af,</div><div class='del'>-	0x112eb, 0x112ef,</div><div class='del'>-	0x112fa, 0x112ff,</div><div class='del'>-	0x11304, 0x11304,</div><div class='del'>-	0x1130d, 0x1130e,</div><div class='del'>-	0x11311, 0x11312,</div><div class='del'>-	0x11329, 0x11329,</div><div class='del'>-	0x11331, 0x11331,</div><div class='del'>-	0x11334, 0x11334,</div><div class='del'>-	0x1133a, 0x1133a,</div><div class='del'>-	0x11345, 0x11346,</div><div class='del'>-	0x11349, 0x1134a,</div><div class='del'>-	0x1134e, 0x1134f,</div><div class='del'>-	0x11351, 0x11356,</div><div class='del'>-	0x11358, 0x1135c,</div><div class='del'>-	0x11364, 0x11365,</div><div class='del'>-	0x1136d, 0x1136f,</div><div class='del'>-	0x11375, 0x113ff,</div><div class='del'>-	0x1145a, 0x1145a,</div><div class='del'>-	0x1145c, 0x1145c,</div><div class='del'>-	0x1145f, 0x1147f,</div><div class='del'>-	0x114c8, 0x114cf,</div><div class='del'>-	0x114da, 0x1157f,</div><div class='del'>-	0x115b6, 0x115b7,</div><div class='del'>-	0x115de, 0x115ff,</div><div class='del'>-	0x11645, 0x1164f,</div><div class='del'>-	0x1165a, 0x1165f,</div><div class='del'>-	0x1166d, 0x1167f,</div><div class='del'>-	0x116b8, 0x116bf,</div><div class='del'>-	0x116ca, 0x116ff,</div><div class='del'>-	0x1171b, 0x1171c,</div><div class='del'>-	0x1172c, 0x1172f,</div><div class='del'>-	0x11740, 0x117ff,</div><div class='del'>-	0x1183c, 0x1189f,</div><div class='del'>-	0x118f3, 0x118fe,</div><div class='del'>-	0x11900, 0x119ff,</div><div class='del'>-	0x11a48, 0x11a4f,</div><div class='del'>-	0x11a84, 0x11a85,</div><div class='del'>-	0x11aa3, 0x11abf,</div><div class='del'>-	0x11af9, 0x11bff,</div><div class='del'>-	0x11c09, 0x11c09,</div><div class='del'>-	0x11c37, 0x11c37,</div><div class='del'>-	0x11c46, 0x11c4f,</div><div class='del'>-	0x11c6d, 0x11c6f,</div><div class='del'>-	0x11c90, 0x11c91,</div><div class='del'>-	0x11ca8, 0x11ca8,</div><div class='del'>-	0x11cb7, 0x11cff,</div><div class='del'>-	0x11d07, 0x11d07,</div><div class='del'>-	0x11d0a, 0x11d0a,</div><div class='del'>-	0x11d37, 0x11d39,</div><div class='del'>-	0x11d3b, 0x11d3b,</div><div class='del'>-	0x11d3e, 0x11d3e,</div><div class='del'>-	0x11d48, 0x11d4f,</div><div class='del'>-	0x11d5a, 0x11d5f,</div><div class='del'>-	0x11d66, 0x11d66,</div><div class='del'>-	0x11d69, 0x11d69,</div><div class='del'>-	0x11d8f, 0x11d8f,</div><div class='del'>-	0x11d92, 0x11d92,</div><div class='del'>-	0x11d99, 0x11d9f,</div><div class='del'>-	0x11daa, 0x11edf,</div><div class='del'>-	0x11ef9, 0x11fff,</div><div class='del'>-	0x1239a, 0x123ff,</div><div class='del'>-	0x1246f, 0x1246f,</div><div class='del'>-	0x12475, 0x1247f,</div><div class='del'>-	0x12544, 0x12fff,</div><div class='del'>-	0x1342f, 0x143ff,</div><div class='del'>-	0x14647, 0x167ff,</div><div class='del'>-	0x16a39, 0x16a3f,</div><div class='del'>-	0x16a5f, 0x16a5f,</div><div class='del'>-	0x16a6a, 0x16a6d,</div><div class='del'>-	0x16a70, 0x16acf,</div><div class='del'>-	0x16aee, 0x16aef,</div><div class='del'>-	0x16af6, 0x16aff,</div><div class='del'>-	0x16b46, 0x16b4f,</div><div class='del'>-	0x16b5a, 0x16b5a,</div><div class='del'>-	0x16b62, 0x16b62,</div><div class='del'>-	0x16b78, 0x16b7c,</div><div class='del'>-	0x16b90, 0x16e3f,</div><div class='del'>-	0x16e9b, 0x16eff,</div><div class='del'>-	0x16f45, 0x16f4f,</div><div class='del'>-	0x16f7f, 0x16f8e,</div><div class='del'>-	0x16fa0, 0x16fdf,</div><div class='del'>-	0x16fe2, 0x16fff,</div><div class='del'>-	0x187f2, 0x187ff,</div><div class='del'>-	0x18af3, 0x1afff,</div><div class='del'>-	0x1b11f, 0x1b16f,</div><div class='del'>-	0x1b2fc, 0x1bbff,</div><div class='del'>-	0x1bc6b, 0x1bc6f,</div><div class='del'>-	0x1bc7d, 0x1bc7f,</div><div class='del'>-	0x1bc89, 0x1bc8f,</div><div class='del'>-	0x1bc9a, 0x1bc9b,</div><div class='del'>-	0x1bca4, 0x1cfff,</div><div class='del'>-	0x1d0f6, 0x1d0ff,</div><div class='del'>-	0x1d127, 0x1d128,</div><div class='del'>-	0x1d1e9, 0x1d1ff,</div><div class='del'>-	0x1d246, 0x1d2df,</div><div class='del'>-	0x1d2f4, 0x1d2ff,</div><div class='del'>-	0x1d357, 0x1d35f,</div><div class='del'>-	0x1d379, 0x1d3ff,</div><div class='del'>-	0x1d455, 0x1d455,</div><div class='del'>-	0x1d49d, 0x1d49d,</div><div class='del'>-	0x1d4a0, 0x1d4a1,</div><div class='del'>-	0x1d4a3, 0x1d4a4,</div><div class='del'>-	0x1d4a7, 0x1d4a8,</div><div class='del'>-	0x1d4ad, 0x1d4ad,</div><div class='del'>-	0x1d4ba, 0x1d4ba,</div><div class='del'>-	0x1d4bc, 0x1d4bc,</div><div class='del'>-	0x1d4c4, 0x1d4c4,</div><div class='del'>-	0x1d506, 0x1d506,</div><div class='del'>-	0x1d50b, 0x1d50c,</div><div class='del'>-	0x1d515, 0x1d515,</div><div class='del'>-	0x1d51d, 0x1d51d,</div><div class='del'>-	0x1d53a, 0x1d53a,</div><div class='del'>-	0x1d53f, 0x1d53f,</div><div class='del'>-	0x1d545, 0x1d545,</div><div class='del'>-	0x1d547, 0x1d549,</div><div class='del'>-	0x1d551, 0x1d551,</div><div class='del'>-	0x1d6a6, 0x1d6a7,</div><div class='del'>-	0x1d7cc, 0x1d7cd,</div><div class='del'>-	0x1da8c, 0x1da9a,</div><div class='del'>-	0x1daa0, 0x1daa0,</div><div class='del'>-	0x1dab0, 0x1dfff,</div><div class='del'>-	0x1e007, 0x1e007,</div><div class='del'>-	0x1e019, 0x1e01a,</div><div class='del'>-	0x1e022, 0x1e022,</div><div class='del'>-	0x1e025, 0x1e025,</div><div class='del'>-	0x1e02b, 0x1e7ff,</div><div class='del'>-	0x1e8c5, 0x1e8c6,</div><div class='del'>-	0x1e8d7, 0x1e8ff,</div><div class='del'>-	0x1e94b, 0x1e94f,</div><div class='del'>-	0x1e95a, 0x1e95d,</div><div class='del'>-	0x1e960, 0x1ec70,</div><div class='del'>-	0x1ecb5, 0x1edff,</div><div class='del'>-	0x1ee04, 0x1ee04,</div><div class='del'>-	0x1ee20, 0x1ee20,</div><div class='del'>-	0x1ee23, 0x1ee23,</div><div class='del'>-	0x1ee25, 0x1ee26,</div><div class='del'>-	0x1ee28, 0x1ee28,</div><div class='del'>-	0x1ee33, 0x1ee33,</div><div class='del'>-	0x1ee38, 0x1ee38,</div><div class='del'>-	0x1ee3a, 0x1ee3a,</div><div class='del'>-	0x1ee3c, 0x1ee41,</div><div class='del'>-	0x1ee43, 0x1ee46,</div><div class='del'>-	0x1ee48, 0x1ee48,</div><div class='del'>-	0x1ee4a, 0x1ee4a,</div><div class='del'>-	0x1ee4c, 0x1ee4c,</div><div class='del'>-	0x1ee50, 0x1ee50,</div><div class='del'>-	0x1ee53, 0x1ee53,</div><div class='del'>-	0x1ee55, 0x1ee56,</div><div class='del'>-	0x1ee58, 0x1ee58,</div><div class='del'>-	0x1ee5a, 0x1ee5a,</div><div class='del'>-	0x1ee5c, 0x1ee5c,</div><div class='del'>-	0x1ee5e, 0x1ee5e,</div><div class='del'>-	0x1ee60, 0x1ee60,</div><div class='del'>-	0x1ee63, 0x1ee63,</div><div class='del'>-	0x1ee65, 0x1ee66,</div><div class='del'>-	0x1ee6b, 0x1ee6b,</div><div class='del'>-	0x1ee73, 0x1ee73,</div><div class='del'>-	0x1ee78, 0x1ee78,</div><div class='del'>-	0x1ee7d, 0x1ee7d,</div><div class='del'>-	0x1ee7f, 0x1ee7f,</div><div class='del'>-	0x1ee8a, 0x1ee8a,</div><div class='del'>-	0x1ee9c, 0x1eea0,</div><div class='del'>-	0x1eea4, 0x1eea4,</div><div class='del'>-	0x1eeaa, 0x1eeaa,</div><div class='del'>-	0x1eebc, 0x1eeef,</div><div class='del'>-	0x1eef2, 0x1efff,</div><div class='del'>-	0x1f02c, 0x1f02f,</div><div class='del'>-	0x1f094, 0x1f09f,</div><div class='del'>-	0x1f0af, 0x1f0b0,</div><div class='del'>-	0x1f0c0, 0x1f0c0,</div><div class='del'>-	0x1f0d0, 0x1f0d0,</div><div class='del'>-	0x1f0f6, 0x1f0ff,</div><div class='del'>-	0x1f10d, 0x1f10f,</div><div class='del'>-	0x1f16c, 0x1f16f,</div><div class='del'>-	0x1f1ad, 0x1f1e5,</div><div class='del'>-	0x1f203, 0x1f20f,</div><div class='del'>-	0x1f23c, 0x1f23f,</div><div class='del'>-	0x1f249, 0x1f24f,</div><div class='del'>-	0x1f252, 0x1f25f,</div><div class='del'>-	0x1f266, 0x1f2ff,</div><div class='del'>-	0x1f6d5, 0x1f6df,</div><div class='del'>-	0x1f6ed, 0x1f6ef,</div><div class='del'>-	0x1f6fa, 0x1f6ff,</div><div class='del'>-	0x1f774, 0x1f77f,</div><div class='del'>-	0x1f7d9, 0x1f7ff,</div><div class='del'>-	0x1f80c, 0x1f80f,</div><div class='del'>-	0x1f848, 0x1f84f,</div><div class='del'>-	0x1f85a, 0x1f85f,</div><div class='del'>-	0x1f888, 0x1f88f,</div><div class='del'>-	0x1f8ae, 0x1f8ff,</div><div class='del'>-	0x1f90c, 0x1f90f,</div><div class='del'>-	0x1f93f, 0x1f93f,</div><div class='del'>-	0x1f971, 0x1f972,</div><div class='del'>-	0x1f977, 0x1f979,</div><div class='del'>-	0x1f97b, 0x1f97b,</div><div class='del'>-	0x1f9a3, 0x1f9af,</div><div class='del'>-	0x1f9ba, 0x1f9bf,</div><div class='del'>-	0x1f9c3, 0x1f9cf,</div><div class='del'>-	0x1fa00, 0x1fa5f,</div><div class='del'>-	0x1fa6e, 0x1ffff,</div><div class='del'>-	0x2a6d7, 0x2a6ff,</div><div class='del'>-	0x2b735, 0x2b73f,</div><div class='del'>-	0x2b81e, 0x2b81f,</div><div class='del'>-	0x2cea2, 0x2ceaf,</div><div class='del'>-	0x2ebe1, 0x2f7ff,</div><div class='del'>-	0x2fa1e, 0xe0000,</div><div class='del'>-	0xe0002, 0xe001f,</div><div class='del'>-	0xe0080, 0xe00ff,</div><div class='del'>-	0xe01f0, 0x10ffff,</div><div class='del'>-}; /* CR_Unknown */</div><div class='del'>-</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-/* 'Age_1_1': Derived Age 1.1 */</div><div class='del'>-static const OnigCodePoint CR_Age_1_1[] = {</div><div class='del'>-	288,</div><div class='del'>-	0x0000, 0x01f5,</div><div class='del'>-	0x01fa, 0x0217,</div><div class='del'>-	0x0250, 0x02a8,</div><div class='del'>-	0x02b0, 0x02de,</div><div class='del'>-	0x02e0, 0x02e9,</div><div class='del'>-	0x0300, 0x0345,</div><div class='del'>-	0x0360, 0x0361,</div><div class='del'>-	0x0374, 0x0375,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ce,</div><div class='del'>-	0x03d0, 0x03d6,</div><div class='del'>-	0x03da, 0x03da,</div><div class='del'>-	0x03dc, 0x03dc,</div><div class='del'>-	0x03de, 0x03de,</div><div class='del'>-	0x03e0, 0x03e0,</div><div class='del'>-	0x03e2, 0x03f3,</div><div class='del'>-	0x0401, 0x040c,</div><div class='del'>-	0x040e, 0x044f,</div><div class='del'>-	0x0451, 0x045c,</div><div class='del'>-	0x045e, 0x0486,</div><div class='del'>-	0x0490, 0x04c4,</div><div class='del'>-	0x04c7, 0x04c8,</div><div class='del'>-	0x04cb, 0x04cc,</div><div class='del'>-	0x04d0, 0x04eb,</div><div class='del'>-	0x04ee, 0x04f5,</div><div class='del'>-	0x04f8, 0x04f9,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x0589,</div><div class='del'>-	0x05b0, 0x05b9,</div><div class='del'>-	0x05bb, 0x05c3,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x060c, 0x060c,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061f, 0x061f,</div><div class='del'>-	0x0621, 0x063a,</div><div class='del'>-	0x0640, 0x0652,</div><div class='del'>-	0x0660, 0x066d,</div><div class='del'>-	0x0670, 0x06b7,</div><div class='del'>-	0x06ba, 0x06be,</div><div class='del'>-	0x06c0, 0x06ce,</div><div class='del'>-	0x06d0, 0x06ed,</div><div class='del'>-	0x06f0, 0x06f9,</div><div class='del'>-	0x0901, 0x0903,</div><div class='del'>-	0x0905, 0x0939,</div><div class='del'>-	0x093c, 0x094d,</div><div class='del'>-	0x0950, 0x0954,</div><div class='del'>-	0x0958, 0x0970,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09be, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cd,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fa,</div><div class='del'>-	0x0a02, 0x0a02,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a74,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8b,</div><div class='del'>-	0x0a8d, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae0,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b36, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b43,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b66, 0x0b70,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb5,</div><div class='del'>-	0x0bb7, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be7, 0x0bf2,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3e, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbe, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d28,</div><div class='del'>-	0x0d2a, 0x0d39,</div><div class='del'>-	0x0d3e, 0x0d43,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d61,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10d0, 0x10f6,</div><div class='del'>-	0x10fb, 0x10fb,</div><div class='del'>-	0x1100, 0x1159,</div><div class='del'>-	0x115f, 0x11a2,</div><div class='del'>-	0x11a8, 0x11f9,</div><div class='del'>-	0x1e00, 0x1e9a,</div><div class='del'>-	0x1ea0, 0x1ef9,</div><div class='del'>-	0x1f00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x202e,</div><div class='del'>-	0x2030, 0x2046,</div><div class='del'>-	0x206a, 0x2070,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x20a0, 0x20aa,</div><div class='del'>-	0x20d0, 0x20e1,</div><div class='del'>-	0x2100, 0x2138,</div><div class='del'>-	0x2153, 0x2182,</div><div class='del'>-	0x2190, 0x21ea,</div><div class='del'>-	0x2200, 0x22f1,</div><div class='del'>-	0x2300, 0x2300,</div><div class='del'>-	0x2302, 0x237a,</div><div class='del'>-	0x2400, 0x2424,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x24ea,</div><div class='del'>-	0x2500, 0x2595,</div><div class='del'>-	0x25a0, 0x25ef,</div><div class='del'>-	0x2600, 0x2613,</div><div class='del'>-	0x261a, 0x266f,</div><div class='del'>-	0x2701, 0x2704,</div><div class='del'>-	0x2706, 0x2709,</div><div class='del'>-	0x270c, 0x2727,</div><div class='del'>-	0x2729, 0x274b,</div><div class='del'>-	0x274d, 0x274d,</div><div class='del'>-	0x274f, 0x2752,</div><div class='del'>-	0x2756, 0x2756,</div><div class='del'>-	0x2758, 0x275e,</div><div class='del'>-	0x2761, 0x2767,</div><div class='del'>-	0x2776, 0x2794,</div><div class='del'>-	0x2798, 0x27af,</div><div class='del'>-	0x27b1, 0x27be,</div><div class='del'>-	0x3000, 0x3037,</div><div class='del'>-	0x303f, 0x303f,</div><div class='del'>-	0x3041, 0x3094,</div><div class='del'>-	0x3099, 0x309e,</div><div class='del'>-	0x30a1, 0x30fe,</div><div class='del'>-	0x3105, 0x312c,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x319f,</div><div class='del'>-	0x3200, 0x321c,</div><div class='del'>-	0x3220, 0x3243,</div><div class='del'>-	0x3260, 0x327b,</div><div class='del'>-	0x327f, 0x32b0,</div><div class='del'>-	0x32c0, 0x32cb,</div><div class='del'>-	0x32d0, 0x32fe,</div><div class='del'>-	0x3300, 0x3376,</div><div class='del'>-	0x337b, 0x33dd,</div><div class='del'>-	0x33e0, 0x33fe,</div><div class='del'>-	0x4e00, 0x9fa5,</div><div class='del'>-	0xe000, 0xfa2d,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1e, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfb,</div><div class='del'>-	0xfe20, 0xfe23,</div><div class='del'>-	0xfe30, 0xfe44,</div><div class='del'>-	0xfe49, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe72,</div><div class='del'>-	0xfe74, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xff5e,</div><div class='del'>-	0xff61, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfffd, 0xffff,</div><div class='del'>-}; /* CR_Age_1_1 */</div><div class='del'>-</div><div class='del'>-/* 'Age_2_0': Derived Age 2.0 */</div><div class='del'>-static const OnigCodePoint CR_Age_2_0[] = {</div><div class='del'>-	312,</div><div class='del'>-	0x0000, 0x01f5,</div><div class='del'>-	0x01fa, 0x0217,</div><div class='del'>-	0x0250, 0x02a8,</div><div class='del'>-	0x02b0, 0x02de,</div><div class='del'>-	0x02e0, 0x02e9,</div><div class='del'>-	0x0300, 0x0345,</div><div class='del'>-	0x0360, 0x0361,</div><div class='del'>-	0x0374, 0x0375,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ce,</div><div class='del'>-	0x03d0, 0x03d6,</div><div class='del'>-	0x03da, 0x03da,</div><div class='del'>-	0x03dc, 0x03dc,</div><div class='del'>-	0x03de, 0x03de,</div><div class='del'>-	0x03e0, 0x03e0,</div><div class='del'>-	0x03e2, 0x03f3,</div><div class='del'>-	0x0401, 0x040c,</div><div class='del'>-	0x040e, 0x044f,</div><div class='del'>-	0x0451, 0x045c,</div><div class='del'>-	0x045e, 0x0486,</div><div class='del'>-	0x0490, 0x04c4,</div><div class='del'>-	0x04c7, 0x04c8,</div><div class='del'>-	0x04cb, 0x04cc,</div><div class='del'>-	0x04d0, 0x04eb,</div><div class='del'>-	0x04ee, 0x04f5,</div><div class='del'>-	0x04f8, 0x04f9,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x0589,</div><div class='del'>-	0x0591, 0x05a1,</div><div class='del'>-	0x05a3, 0x05b9,</div><div class='del'>-	0x05bb, 0x05c4,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x060c, 0x060c,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061f, 0x061f,</div><div class='del'>-	0x0621, 0x063a,</div><div class='del'>-	0x0640, 0x0652,</div><div class='del'>-	0x0660, 0x066d,</div><div class='del'>-	0x0670, 0x06b7,</div><div class='del'>-	0x06ba, 0x06be,</div><div class='del'>-	0x06c0, 0x06ce,</div><div class='del'>-	0x06d0, 0x06ed,</div><div class='del'>-	0x06f0, 0x06f9,</div><div class='del'>-	0x0901, 0x0903,</div><div class='del'>-	0x0905, 0x0939,</div><div class='del'>-	0x093c, 0x094d,</div><div class='del'>-	0x0950, 0x0954,</div><div class='del'>-	0x0958, 0x0970,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09be, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cd,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fa,</div><div class='del'>-	0x0a02, 0x0a02,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a74,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8b,</div><div class='del'>-	0x0a8d, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae0,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b36, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b43,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b66, 0x0b70,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb5,</div><div class='del'>-	0x0bb7, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be7, 0x0bf2,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3e, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbe, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d28,</div><div class='del'>-	0x0d2a, 0x0d39,</div><div class='del'>-	0x0d3e, 0x0d43,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d61,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f69,</div><div class='del'>-	0x0f71, 0x0f8b,</div><div class='del'>-	0x0f90, 0x0f95,</div><div class='del'>-	0x0f97, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fad,</div><div class='del'>-	0x0fb1, 0x0fb7,</div><div class='del'>-	0x0fb9, 0x0fb9,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10d0, 0x10f6,</div><div class='del'>-	0x10fb, 0x10fb,</div><div class='del'>-	0x1100, 0x1159,</div><div class='del'>-	0x115f, 0x11a2,</div><div class='del'>-	0x11a8, 0x11f9,</div><div class='del'>-	0x1e00, 0x1e9b,</div><div class='del'>-	0x1ea0, 0x1ef9,</div><div class='del'>-	0x1f00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x202e,</div><div class='del'>-	0x2030, 0x2046,</div><div class='del'>-	0x206a, 0x2070,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x20a0, 0x20ab,</div><div class='del'>-	0x20d0, 0x20e1,</div><div class='del'>-	0x2100, 0x2138,</div><div class='del'>-	0x2153, 0x2182,</div><div class='del'>-	0x2190, 0x21ea,</div><div class='del'>-	0x2200, 0x22f1,</div><div class='del'>-	0x2300, 0x2300,</div><div class='del'>-	0x2302, 0x237a,</div><div class='del'>-	0x2400, 0x2424,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x24ea,</div><div class='del'>-	0x2500, 0x2595,</div><div class='del'>-	0x25a0, 0x25ef,</div><div class='del'>-	0x2600, 0x2613,</div><div class='del'>-	0x261a, 0x266f,</div><div class='del'>-	0x2701, 0x2704,</div><div class='del'>-	0x2706, 0x2709,</div><div class='del'>-	0x270c, 0x2727,</div><div class='del'>-	0x2729, 0x274b,</div><div class='del'>-	0x274d, 0x274d,</div><div class='del'>-	0x274f, 0x2752,</div><div class='del'>-	0x2756, 0x2756,</div><div class='del'>-	0x2758, 0x275e,</div><div class='del'>-	0x2761, 0x2767,</div><div class='del'>-	0x2776, 0x2794,</div><div class='del'>-	0x2798, 0x27af,</div><div class='del'>-	0x27b1, 0x27be,</div><div class='del'>-	0x3000, 0x3037,</div><div class='del'>-	0x303f, 0x303f,</div><div class='del'>-	0x3041, 0x3094,</div><div class='del'>-	0x3099, 0x309e,</div><div class='del'>-	0x30a1, 0x30fe,</div><div class='del'>-	0x3105, 0x312c,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x319f,</div><div class='del'>-	0x3200, 0x321c,</div><div class='del'>-	0x3220, 0x3243,</div><div class='del'>-	0x3260, 0x327b,</div><div class='del'>-	0x327f, 0x32b0,</div><div class='del'>-	0x32c0, 0x32cb,</div><div class='del'>-	0x32d0, 0x32fe,</div><div class='del'>-	0x3300, 0x3376,</div><div class='del'>-	0x337b, 0x33dd,</div><div class='del'>-	0x33e0, 0x33fe,</div><div class='del'>-	0x4e00, 0x9fa5,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd800, 0xfa2d,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1e, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfb,</div><div class='del'>-	0xfe20, 0xfe23,</div><div class='del'>-	0xfe30, 0xfe44,</div><div class='del'>-	0xfe49, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe72,</div><div class='del'>-	0xfe74, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xff5e,</div><div class='del'>-	0xff61, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfffd, 0xffff,</div><div class='del'>-	0x1fffe, 0x1ffff,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_2_0 */</div><div class='del'>-</div><div class='del'>-/* 'Age_2_1': Derived Age 2.1 */</div><div class='del'>-static const OnigCodePoint CR_Age_2_1[] = {</div><div class='del'>-	312,</div><div class='del'>-	0x0000, 0x01f5,</div><div class='del'>-	0x01fa, 0x0217,</div><div class='del'>-	0x0250, 0x02a8,</div><div class='del'>-	0x02b0, 0x02de,</div><div class='del'>-	0x02e0, 0x02e9,</div><div class='del'>-	0x0300, 0x0345,</div><div class='del'>-	0x0360, 0x0361,</div><div class='del'>-	0x0374, 0x0375,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ce,</div><div class='del'>-	0x03d0, 0x03d6,</div><div class='del'>-	0x03da, 0x03da,</div><div class='del'>-	0x03dc, 0x03dc,</div><div class='del'>-	0x03de, 0x03de,</div><div class='del'>-	0x03e0, 0x03e0,</div><div class='del'>-	0x03e2, 0x03f3,</div><div class='del'>-	0x0401, 0x040c,</div><div class='del'>-	0x040e, 0x044f,</div><div class='del'>-	0x0451, 0x045c,</div><div class='del'>-	0x045e, 0x0486,</div><div class='del'>-	0x0490, 0x04c4,</div><div class='del'>-	0x04c7, 0x04c8,</div><div class='del'>-	0x04cb, 0x04cc,</div><div class='del'>-	0x04d0, 0x04eb,</div><div class='del'>-	0x04ee, 0x04f5,</div><div class='del'>-	0x04f8, 0x04f9,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x0589,</div><div class='del'>-	0x0591, 0x05a1,</div><div class='del'>-	0x05a3, 0x05b9,</div><div class='del'>-	0x05bb, 0x05c4,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x060c, 0x060c,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061f, 0x061f,</div><div class='del'>-	0x0621, 0x063a,</div><div class='del'>-	0x0640, 0x0652,</div><div class='del'>-	0x0660, 0x066d,</div><div class='del'>-	0x0670, 0x06b7,</div><div class='del'>-	0x06ba, 0x06be,</div><div class='del'>-	0x06c0, 0x06ce,</div><div class='del'>-	0x06d0, 0x06ed,</div><div class='del'>-	0x06f0, 0x06f9,</div><div class='del'>-	0x0901, 0x0903,</div><div class='del'>-	0x0905, 0x0939,</div><div class='del'>-	0x093c, 0x094d,</div><div class='del'>-	0x0950, 0x0954,</div><div class='del'>-	0x0958, 0x0970,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09be, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cd,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fa,</div><div class='del'>-	0x0a02, 0x0a02,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a74,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8b,</div><div class='del'>-	0x0a8d, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae0,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b36, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b43,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b66, 0x0b70,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb5,</div><div class='del'>-	0x0bb7, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be7, 0x0bf2,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3e, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbe, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d28,</div><div class='del'>-	0x0d2a, 0x0d39,</div><div class='del'>-	0x0d3e, 0x0d43,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d61,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f69,</div><div class='del'>-	0x0f71, 0x0f8b,</div><div class='del'>-	0x0f90, 0x0f95,</div><div class='del'>-	0x0f97, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fad,</div><div class='del'>-	0x0fb1, 0x0fb7,</div><div class='del'>-	0x0fb9, 0x0fb9,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10d0, 0x10f6,</div><div class='del'>-	0x10fb, 0x10fb,</div><div class='del'>-	0x1100, 0x1159,</div><div class='del'>-	0x115f, 0x11a2,</div><div class='del'>-	0x11a8, 0x11f9,</div><div class='del'>-	0x1e00, 0x1e9b,</div><div class='del'>-	0x1ea0, 0x1ef9,</div><div class='del'>-	0x1f00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x202e,</div><div class='del'>-	0x2030, 0x2046,</div><div class='del'>-	0x206a, 0x2070,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x20a0, 0x20ac,</div><div class='del'>-	0x20d0, 0x20e1,</div><div class='del'>-	0x2100, 0x2138,</div><div class='del'>-	0x2153, 0x2182,</div><div class='del'>-	0x2190, 0x21ea,</div><div class='del'>-	0x2200, 0x22f1,</div><div class='del'>-	0x2300, 0x2300,</div><div class='del'>-	0x2302, 0x237a,</div><div class='del'>-	0x2400, 0x2424,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x24ea,</div><div class='del'>-	0x2500, 0x2595,</div><div class='del'>-	0x25a0, 0x25ef,</div><div class='del'>-	0x2600, 0x2613,</div><div class='del'>-	0x261a, 0x266f,</div><div class='del'>-	0x2701, 0x2704,</div><div class='del'>-	0x2706, 0x2709,</div><div class='del'>-	0x270c, 0x2727,</div><div class='del'>-	0x2729, 0x274b,</div><div class='del'>-	0x274d, 0x274d,</div><div class='del'>-	0x274f, 0x2752,</div><div class='del'>-	0x2756, 0x2756,</div><div class='del'>-	0x2758, 0x275e,</div><div class='del'>-	0x2761, 0x2767,</div><div class='del'>-	0x2776, 0x2794,</div><div class='del'>-	0x2798, 0x27af,</div><div class='del'>-	0x27b1, 0x27be,</div><div class='del'>-	0x3000, 0x3037,</div><div class='del'>-	0x303f, 0x303f,</div><div class='del'>-	0x3041, 0x3094,</div><div class='del'>-	0x3099, 0x309e,</div><div class='del'>-	0x30a1, 0x30fe,</div><div class='del'>-	0x3105, 0x312c,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x319f,</div><div class='del'>-	0x3200, 0x321c,</div><div class='del'>-	0x3220, 0x3243,</div><div class='del'>-	0x3260, 0x327b,</div><div class='del'>-	0x327f, 0x32b0,</div><div class='del'>-	0x32c0, 0x32cb,</div><div class='del'>-	0x32d0, 0x32fe,</div><div class='del'>-	0x3300, 0x3376,</div><div class='del'>-	0x337b, 0x33dd,</div><div class='del'>-	0x33e0, 0x33fe,</div><div class='del'>-	0x4e00, 0x9fa5,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd800, 0xfa2d,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1e, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfb,</div><div class='del'>-	0xfe20, 0xfe23,</div><div class='del'>-	0xfe30, 0xfe44,</div><div class='del'>-	0xfe49, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe72,</div><div class='del'>-	0xfe74, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xff5e,</div><div class='del'>-	0xff61, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfffc, 0xffff,</div><div class='del'>-	0x1fffe, 0x1ffff,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_2_1 */</div><div class='del'>-</div><div class='del'>-/* 'Age_3_0': Derived Age 3.0 */</div><div class='del'>-static const OnigCodePoint CR_Age_3_0[] = {</div><div class='del'>-	369,</div><div class='del'>-	0x0000, 0x021f,</div><div class='del'>-	0x0222, 0x0233,</div><div class='del'>-	0x0250, 0x02ad,</div><div class='del'>-	0x02b0, 0x02ee,</div><div class='del'>-	0x0300, 0x034e,</div><div class='del'>-	0x0360, 0x0362,</div><div class='del'>-	0x0374, 0x0375,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ce,</div><div class='del'>-	0x03d0, 0x03d7,</div><div class='del'>-	0x03da, 0x03f3,</div><div class='del'>-	0x0400, 0x0486,</div><div class='del'>-	0x0488, 0x0489,</div><div class='del'>-	0x048c, 0x04c4,</div><div class='del'>-	0x04c7, 0x04c8,</div><div class='del'>-	0x04cb, 0x04cc,</div><div class='del'>-	0x04d0, 0x04f5,</div><div class='del'>-	0x04f8, 0x04f9,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x0591, 0x05a1,</div><div class='del'>-	0x05a3, 0x05b9,</div><div class='del'>-	0x05bb, 0x05c4,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x060c, 0x060c,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061f, 0x061f,</div><div class='del'>-	0x0621, 0x063a,</div><div class='del'>-	0x0640, 0x0655,</div><div class='del'>-	0x0660, 0x066d,</div><div class='del'>-	0x0670, 0x06ed,</div><div class='del'>-	0x06f0, 0x06fe,</div><div class='del'>-	0x0700, 0x070d,</div><div class='del'>-	0x070f, 0x072c,</div><div class='del'>-	0x0730, 0x074a,</div><div class='del'>-	0x0780, 0x07b0,</div><div class='del'>-	0x0901, 0x0903,</div><div class='del'>-	0x0905, 0x0939,</div><div class='del'>-	0x093c, 0x094d,</div><div class='del'>-	0x0950, 0x0954,</div><div class='del'>-	0x0958, 0x0970,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09be, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cd,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fa,</div><div class='del'>-	0x0a02, 0x0a02,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a74,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8b,</div><div class='del'>-	0x0a8d, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae0,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b36, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b43,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b66, 0x0b70,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb5,</div><div class='del'>-	0x0bb7, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be7, 0x0bf2,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3e, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbe, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d28,</div><div class='del'>-	0x0d2a, 0x0d39,</div><div class='del'>-	0x0d3e, 0x0d43,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d61,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6a,</div><div class='del'>-	0x0f71, 0x0f8b,</div><div class='del'>-	0x0f90, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fcf, 0x0fcf,</div><div class='del'>-	0x1000, 0x1021,</div><div class='del'>-	0x1023, 0x1027,</div><div class='del'>-	0x1029, 0x102a,</div><div class='del'>-	0x102c, 0x1032,</div><div class='del'>-	0x1036, 0x1039,</div><div class='del'>-	0x1040, 0x1059,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10d0, 0x10f6,</div><div class='del'>-	0x10fb, 0x10fb,</div><div class='del'>-	0x1100, 0x1159,</div><div class='del'>-	0x115f, 0x11a2,</div><div class='del'>-	0x11a8, 0x11f9,</div><div class='del'>-	0x1200, 0x1206,</div><div class='del'>-	0x1208, 0x1246,</div><div class='del'>-	0x1248, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1286,</div><div class='del'>-	0x1288, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12ae,</div><div class='del'>-	0x12b0, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12ce,</div><div class='del'>-	0x12d0, 0x12d6,</div><div class='del'>-	0x12d8, 0x12ee,</div><div class='del'>-	0x12f0, 0x130e,</div><div class='del'>-	0x1310, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x131e,</div><div class='del'>-	0x1320, 0x1346,</div><div class='del'>-	0x1348, 0x135a,</div><div class='del'>-	0x1361, 0x137c,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1401, 0x1676,</div><div class='del'>-	0x1680, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1780, 0x17dc,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18a9,</div><div class='del'>-	0x1e00, 0x1e9b,</div><div class='del'>-	0x1ea0, 0x1ef9,</div><div class='del'>-	0x1f00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2046,</div><div class='del'>-	0x2048, 0x204d,</div><div class='del'>-	0x206a, 0x2070,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x20a0, 0x20af,</div><div class='del'>-	0x20d0, 0x20e3,</div><div class='del'>-	0x2100, 0x213a,</div><div class='del'>-	0x2153, 0x2183,</div><div class='del'>-	0x2190, 0x21f3,</div><div class='del'>-	0x2200, 0x22f1,</div><div class='del'>-	0x2300, 0x237b,</div><div class='del'>-	0x237d, 0x239a,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x24ea,</div><div class='del'>-	0x2500, 0x2595,</div><div class='del'>-	0x25a0, 0x25f7,</div><div class='del'>-	0x2600, 0x2613,</div><div class='del'>-	0x2619, 0x2671,</div><div class='del'>-	0x2701, 0x2704,</div><div class='del'>-	0x2706, 0x2709,</div><div class='del'>-	0x270c, 0x2727,</div><div class='del'>-	0x2729, 0x274b,</div><div class='del'>-	0x274d, 0x274d,</div><div class='del'>-	0x274f, 0x2752,</div><div class='del'>-	0x2756, 0x2756,</div><div class='del'>-	0x2758, 0x275e,</div><div class='del'>-	0x2761, 0x2767,</div><div class='del'>-	0x2776, 0x2794,</div><div class='del'>-	0x2798, 0x27af,</div><div class='del'>-	0x27b1, 0x27be,</div><div class='del'>-	0x2800, 0x28ff,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303a,</div><div class='del'>-	0x303e, 0x303f,</div><div class='del'>-	0x3041, 0x3094,</div><div class='del'>-	0x3099, 0x309e,</div><div class='del'>-	0x30a1, 0x30fe,</div><div class='del'>-	0x3105, 0x312c,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31b7,</div><div class='del'>-	0x3200, 0x321c,</div><div class='del'>-	0x3220, 0x3243,</div><div class='del'>-	0x3260, 0x327b,</div><div class='del'>-	0x327f, 0x32b0,</div><div class='del'>-	0x32c0, 0x32cb,</div><div class='del'>-	0x32d0, 0x32fe,</div><div class='del'>-	0x3300, 0x3376,</div><div class='del'>-	0x337b, 0x33dd,</div><div class='del'>-	0x33e0, 0x33fe,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fa5,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4a1,</div><div class='del'>-	0xa4a4, 0xa4b3,</div><div class='del'>-	0xa4b5, 0xa4c0,</div><div class='del'>-	0xa4c2, 0xa4c4,</div><div class='del'>-	0xa4c6, 0xa4c6,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd800, 0xfa2d,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdf0, 0xfdfb,</div><div class='del'>-	0xfe20, 0xfe23,</div><div class='del'>-	0xfe30, 0xfe44,</div><div class='del'>-	0xfe49, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe72,</div><div class='del'>-	0xfe74, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xff5e,</div><div class='del'>-	0xff61, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0xffff,</div><div class='del'>-	0x1fffe, 0x1ffff,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_3_0 */</div><div class='del'>-</div><div class='del'>-/* 'Age_3_1': Derived Age 3.1 */</div><div class='del'>-static const OnigCodePoint CR_Age_3_1[] = {</div><div class='del'>-	402,</div><div class='del'>-	0x0000, 0x021f,</div><div class='del'>-	0x0222, 0x0233,</div><div class='del'>-	0x0250, 0x02ad,</div><div class='del'>-	0x02b0, 0x02ee,</div><div class='del'>-	0x0300, 0x034e,</div><div class='del'>-	0x0360, 0x0362,</div><div class='del'>-	0x0374, 0x0375,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ce,</div><div class='del'>-	0x03d0, 0x03d7,</div><div class='del'>-	0x03da, 0x03f5,</div><div class='del'>-	0x0400, 0x0486,</div><div class='del'>-	0x0488, 0x0489,</div><div class='del'>-	0x048c, 0x04c4,</div><div class='del'>-	0x04c7, 0x04c8,</div><div class='del'>-	0x04cb, 0x04cc,</div><div class='del'>-	0x04d0, 0x04f5,</div><div class='del'>-	0x04f8, 0x04f9,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x0591, 0x05a1,</div><div class='del'>-	0x05a3, 0x05b9,</div><div class='del'>-	0x05bb, 0x05c4,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x060c, 0x060c,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061f, 0x061f,</div><div class='del'>-	0x0621, 0x063a,</div><div class='del'>-	0x0640, 0x0655,</div><div class='del'>-	0x0660, 0x066d,</div><div class='del'>-	0x0670, 0x06ed,</div><div class='del'>-	0x06f0, 0x06fe,</div><div class='del'>-	0x0700, 0x070d,</div><div class='del'>-	0x070f, 0x072c,</div><div class='del'>-	0x0730, 0x074a,</div><div class='del'>-	0x0780, 0x07b0,</div><div class='del'>-	0x0901, 0x0903,</div><div class='del'>-	0x0905, 0x0939,</div><div class='del'>-	0x093c, 0x094d,</div><div class='del'>-	0x0950, 0x0954,</div><div class='del'>-	0x0958, 0x0970,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09be, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cd,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fa,</div><div class='del'>-	0x0a02, 0x0a02,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a74,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8b,</div><div class='del'>-	0x0a8d, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae0,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b36, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b43,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b66, 0x0b70,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb5,</div><div class='del'>-	0x0bb7, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be7, 0x0bf2,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3e, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbe, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d28,</div><div class='del'>-	0x0d2a, 0x0d39,</div><div class='del'>-	0x0d3e, 0x0d43,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d61,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6a,</div><div class='del'>-	0x0f71, 0x0f8b,</div><div class='del'>-	0x0f90, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fcf, 0x0fcf,</div><div class='del'>-	0x1000, 0x1021,</div><div class='del'>-	0x1023, 0x1027,</div><div class='del'>-	0x1029, 0x102a,</div><div class='del'>-	0x102c, 0x1032,</div><div class='del'>-	0x1036, 0x1039,</div><div class='del'>-	0x1040, 0x1059,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10d0, 0x10f6,</div><div class='del'>-	0x10fb, 0x10fb,</div><div class='del'>-	0x1100, 0x1159,</div><div class='del'>-	0x115f, 0x11a2,</div><div class='del'>-	0x11a8, 0x11f9,</div><div class='del'>-	0x1200, 0x1206,</div><div class='del'>-	0x1208, 0x1246,</div><div class='del'>-	0x1248, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1286,</div><div class='del'>-	0x1288, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12ae,</div><div class='del'>-	0x12b0, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12ce,</div><div class='del'>-	0x12d0, 0x12d6,</div><div class='del'>-	0x12d8, 0x12ee,</div><div class='del'>-	0x12f0, 0x130e,</div><div class='del'>-	0x1310, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x131e,</div><div class='del'>-	0x1320, 0x1346,</div><div class='del'>-	0x1348, 0x135a,</div><div class='del'>-	0x1361, 0x137c,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1401, 0x1676,</div><div class='del'>-	0x1680, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1780, 0x17dc,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18a9,</div><div class='del'>-	0x1e00, 0x1e9b,</div><div class='del'>-	0x1ea0, 0x1ef9,</div><div class='del'>-	0x1f00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2046,</div><div class='del'>-	0x2048, 0x204d,</div><div class='del'>-	0x206a, 0x2070,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x20a0, 0x20af,</div><div class='del'>-	0x20d0, 0x20e3,</div><div class='del'>-	0x2100, 0x213a,</div><div class='del'>-	0x2153, 0x2183,</div><div class='del'>-	0x2190, 0x21f3,</div><div class='del'>-	0x2200, 0x22f1,</div><div class='del'>-	0x2300, 0x237b,</div><div class='del'>-	0x237d, 0x239a,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x24ea,</div><div class='del'>-	0x2500, 0x2595,</div><div class='del'>-	0x25a0, 0x25f7,</div><div class='del'>-	0x2600, 0x2613,</div><div class='del'>-	0x2619, 0x2671,</div><div class='del'>-	0x2701, 0x2704,</div><div class='del'>-	0x2706, 0x2709,</div><div class='del'>-	0x270c, 0x2727,</div><div class='del'>-	0x2729, 0x274b,</div><div class='del'>-	0x274d, 0x274d,</div><div class='del'>-	0x274f, 0x2752,</div><div class='del'>-	0x2756, 0x2756,</div><div class='del'>-	0x2758, 0x275e,</div><div class='del'>-	0x2761, 0x2767,</div><div class='del'>-	0x2776, 0x2794,</div><div class='del'>-	0x2798, 0x27af,</div><div class='del'>-	0x27b1, 0x27be,</div><div class='del'>-	0x2800, 0x28ff,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303a,</div><div class='del'>-	0x303e, 0x303f,</div><div class='del'>-	0x3041, 0x3094,</div><div class='del'>-	0x3099, 0x309e,</div><div class='del'>-	0x30a1, 0x30fe,</div><div class='del'>-	0x3105, 0x312c,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31b7,</div><div class='del'>-	0x3200, 0x321c,</div><div class='del'>-	0x3220, 0x3243,</div><div class='del'>-	0x3260, 0x327b,</div><div class='del'>-	0x327f, 0x32b0,</div><div class='del'>-	0x32c0, 0x32cb,</div><div class='del'>-	0x32d0, 0x32fe,</div><div class='del'>-	0x3300, 0x3376,</div><div class='del'>-	0x337b, 0x33dd,</div><div class='del'>-	0x33e0, 0x33fe,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fa5,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4a1,</div><div class='del'>-	0xa4a4, 0xa4b3,</div><div class='del'>-	0xa4b5, 0xa4c0,</div><div class='del'>-	0xa4c2, 0xa4c4,</div><div class='del'>-	0xa4c6, 0xa4c6,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd800, 0xfa2d,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfb,</div><div class='del'>-	0xfe20, 0xfe23,</div><div class='del'>-	0xfe30, 0xfe44,</div><div class='del'>-	0xfe49, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe72,</div><div class='del'>-	0xfe74, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xff5e,</div><div class='del'>-	0xff61, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0xffff,</div><div class='del'>-	0x10300, 0x1031e,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10400, 0x10425,</div><div class='del'>-	0x10428, 0x1044d,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d12a, 0x1d1dd,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c0,</div><div class='del'>-	0x1d4c2, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a3,</div><div class='del'>-	0x1d6a8, 0x1d7c9,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_3_1 */</div><div class='del'>-</div><div class='del'>-/* 'Age_3_2': Derived Age 3.2 */</div><div class='del'>-static const OnigCodePoint CR_Age_3_2[] = {</div><div class='del'>-	397,</div><div class='del'>-	0x0000, 0x0220,</div><div class='del'>-	0x0222, 0x0233,</div><div class='del'>-	0x0250, 0x02ad,</div><div class='del'>-	0x02b0, 0x02ee,</div><div class='del'>-	0x0300, 0x034f,</div><div class='del'>-	0x0360, 0x036f,</div><div class='del'>-	0x0374, 0x0375,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ce,</div><div class='del'>-	0x03d0, 0x03f6,</div><div class='del'>-	0x0400, 0x0486,</div><div class='del'>-	0x0488, 0x04ce,</div><div class='del'>-	0x04d0, 0x04f5,</div><div class='del'>-	0x04f8, 0x04f9,</div><div class='del'>-	0x0500, 0x050f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x0591, 0x05a1,</div><div class='del'>-	0x05a3, 0x05b9,</div><div class='del'>-	0x05bb, 0x05c4,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x060c, 0x060c,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061f, 0x061f,</div><div class='del'>-	0x0621, 0x063a,</div><div class='del'>-	0x0640, 0x0655,</div><div class='del'>-	0x0660, 0x06ed,</div><div class='del'>-	0x06f0, 0x06fe,</div><div class='del'>-	0x0700, 0x070d,</div><div class='del'>-	0x070f, 0x072c,</div><div class='del'>-	0x0730, 0x074a,</div><div class='del'>-	0x0780, 0x07b1,</div><div class='del'>-	0x0901, 0x0903,</div><div class='del'>-	0x0905, 0x0939,</div><div class='del'>-	0x093c, 0x094d,</div><div class='del'>-	0x0950, 0x0954,</div><div class='del'>-	0x0958, 0x0970,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09be, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cd,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fa,</div><div class='del'>-	0x0a02, 0x0a02,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a74,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8b,</div><div class='del'>-	0x0a8d, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae0,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b36, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b43,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b66, 0x0b70,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb5,</div><div class='del'>-	0x0bb7, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be7, 0x0bf2,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3e, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbe, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d28,</div><div class='del'>-	0x0d2a, 0x0d39,</div><div class='del'>-	0x0d3e, 0x0d43,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d61,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6a,</div><div class='del'>-	0x0f71, 0x0f8b,</div><div class='del'>-	0x0f90, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fcf, 0x0fcf,</div><div class='del'>-	0x1000, 0x1021,</div><div class='del'>-	0x1023, 0x1027,</div><div class='del'>-	0x1029, 0x102a,</div><div class='del'>-	0x102c, 0x1032,</div><div class='del'>-	0x1036, 0x1039,</div><div class='del'>-	0x1040, 0x1059,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10d0, 0x10f8,</div><div class='del'>-	0x10fb, 0x10fb,</div><div class='del'>-	0x1100, 0x1159,</div><div class='del'>-	0x115f, 0x11a2,</div><div class='del'>-	0x11a8, 0x11f9,</div><div class='del'>-	0x1200, 0x1206,</div><div class='del'>-	0x1208, 0x1246,</div><div class='del'>-	0x1248, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1286,</div><div class='del'>-	0x1288, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12ae,</div><div class='del'>-	0x12b0, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12ce,</div><div class='del'>-	0x12d0, 0x12d6,</div><div class='del'>-	0x12d8, 0x12ee,</div><div class='del'>-	0x12f0, 0x130e,</div><div class='del'>-	0x1310, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x131e,</div><div class='del'>-	0x1320, 0x1346,</div><div class='del'>-	0x1348, 0x135a,</div><div class='del'>-	0x1361, 0x137c,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1401, 0x1676,</div><div class='del'>-	0x1680, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dc,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18a9,</div><div class='del'>-	0x1e00, 0x1e9b,</div><div class='del'>-	0x1ea0, 0x1ef9,</div><div class='del'>-	0x1f00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2052,</div><div class='del'>-	0x2057, 0x2057,</div><div class='del'>-	0x205f, 0x2063,</div><div class='del'>-	0x206a, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x20a0, 0x20b1,</div><div class='del'>-	0x20d0, 0x20ea,</div><div class='del'>-	0x2100, 0x213a,</div><div class='del'>-	0x213d, 0x214b,</div><div class='del'>-	0x2153, 0x2183,</div><div class='del'>-	0x2190, 0x23ce,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x24fe,</div><div class='del'>-	0x2500, 0x2613,</div><div class='del'>-	0x2616, 0x2617,</div><div class='del'>-	0x2619, 0x267d,</div><div class='del'>-	0x2680, 0x2689,</div><div class='del'>-	0x2701, 0x2704,</div><div class='del'>-	0x2706, 0x2709,</div><div class='del'>-	0x270c, 0x2727,</div><div class='del'>-	0x2729, 0x274b,</div><div class='del'>-	0x274d, 0x274d,</div><div class='del'>-	0x274f, 0x2752,</div><div class='del'>-	0x2756, 0x2756,</div><div class='del'>-	0x2758, 0x275e,</div><div class='del'>-	0x2761, 0x2794,</div><div class='del'>-	0x2798, 0x27af,</div><div class='del'>-	0x27b1, 0x27be,</div><div class='del'>-	0x27d0, 0x27eb,</div><div class='del'>-	0x27f0, 0x2aff,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312c,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31b7,</div><div class='del'>-	0x31f0, 0x321c,</div><div class='del'>-	0x3220, 0x3243,</div><div class='del'>-	0x3251, 0x327b,</div><div class='del'>-	0x327f, 0x32cb,</div><div class='del'>-	0x32d0, 0x32fe,</div><div class='del'>-	0x3300, 0x3376,</div><div class='del'>-	0x337b, 0x33dd,</div><div class='del'>-	0x33e0, 0x33fe,</div><div class='del'>-	0x3400, 0x4db5,</div><div class='del'>-	0x4e00, 0x9fa5,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd800, 0xfa2d,</div><div class='del'>-	0xfa30, 0xfa6a,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfc,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfe20, 0xfe23,</div><div class='del'>-	0xfe30, 0xfe46,</div><div class='del'>-	0xfe49, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0xffff,</div><div class='del'>-	0x10300, 0x1031e,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10400, 0x10425,</div><div class='del'>-	0x10428, 0x1044d,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d12a, 0x1d1dd,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c0,</div><div class='del'>-	0x1d4c2, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a3,</div><div class='del'>-	0x1d6a8, 0x1d7c9,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_3_2 */</div><div class='del'>-</div><div class='del'>-/* 'Age_4_0': Derived Age 4.0 */</div><div class='del'>-static const OnigCodePoint CR_Age_4_0[] = {</div><div class='del'>-	412,</div><div class='del'>-	0x0000, 0x0236,</div><div class='del'>-	0x0250, 0x0357,</div><div class='del'>-	0x035d, 0x036f,</div><div class='del'>-	0x0374, 0x0375,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ce,</div><div class='del'>-	0x03d0, 0x03fb,</div><div class='del'>-	0x0400, 0x0486,</div><div class='del'>-	0x0488, 0x04ce,</div><div class='del'>-	0x04d0, 0x04f5,</div><div class='del'>-	0x04f8, 0x04f9,</div><div class='del'>-	0x0500, 0x050f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x0591, 0x05a1,</div><div class='del'>-	0x05a3, 0x05b9,</div><div class='del'>-	0x05bb, 0x05c4,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x0603,</div><div class='del'>-	0x060c, 0x0615,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061f, 0x061f,</div><div class='del'>-	0x0621, 0x063a,</div><div class='del'>-	0x0640, 0x0658,</div><div class='del'>-	0x0660, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x074f,</div><div class='del'>-	0x0780, 0x07b1,</div><div class='del'>-	0x0901, 0x0939,</div><div class='del'>-	0x093c, 0x094d,</div><div class='del'>-	0x0950, 0x0954,</div><div class='del'>-	0x0958, 0x0970,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cd,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fa,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a74,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0af1, 0x0af1,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b43,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b66, 0x0b71,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb5,</div><div class='del'>-	0x0bb7, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be7, 0x0bfa,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3e, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d28,</div><div class='del'>-	0x0d2a, 0x0d39,</div><div class='del'>-	0x0d3e, 0x0d43,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d61,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6a,</div><div class='del'>-	0x0f71, 0x0f8b,</div><div class='del'>-	0x0f90, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fcf, 0x0fcf,</div><div class='del'>-	0x1000, 0x1021,</div><div class='del'>-	0x1023, 0x1027,</div><div class='del'>-	0x1029, 0x102a,</div><div class='del'>-	0x102c, 0x1032,</div><div class='del'>-	0x1036, 0x1039,</div><div class='del'>-	0x1040, 0x1059,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10d0, 0x10f8,</div><div class='del'>-	0x10fb, 0x10fb,</div><div class='del'>-	0x1100, 0x1159,</div><div class='del'>-	0x115f, 0x11a2,</div><div class='del'>-	0x11a8, 0x11f9,</div><div class='del'>-	0x1200, 0x1206,</div><div class='del'>-	0x1208, 0x1246,</div><div class='del'>-	0x1248, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1286,</div><div class='del'>-	0x1288, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12ae,</div><div class='del'>-	0x12b0, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12ce,</div><div class='del'>-	0x12d0, 0x12d6,</div><div class='del'>-	0x12d8, 0x12ee,</div><div class='del'>-	0x12f0, 0x130e,</div><div class='del'>-	0x1310, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x131e,</div><div class='del'>-	0x1320, 0x1346,</div><div class='del'>-	0x1348, 0x135a,</div><div class='del'>-	0x1361, 0x137c,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1401, 0x1676,</div><div class='del'>-	0x1680, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18a9,</div><div class='del'>-	0x1900, 0x191c,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x19e0, 0x19ff,</div><div class='del'>-	0x1d00, 0x1d6b,</div><div class='del'>-	0x1e00, 0x1e9b,</div><div class='del'>-	0x1ea0, 0x1ef9,</div><div class='del'>-	0x1f00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2054,</div><div class='del'>-	0x2057, 0x2057,</div><div class='del'>-	0x205f, 0x2063,</div><div class='del'>-	0x206a, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x20a0, 0x20b1,</div><div class='del'>-	0x20d0, 0x20ea,</div><div class='del'>-	0x2100, 0x213b,</div><div class='del'>-	0x213d, 0x214b,</div><div class='del'>-	0x2153, 0x2183,</div><div class='del'>-	0x2190, 0x23d0,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x2617,</div><div class='del'>-	0x2619, 0x267d,</div><div class='del'>-	0x2680, 0x2691,</div><div class='del'>-	0x26a0, 0x26a1,</div><div class='del'>-	0x2701, 0x2704,</div><div class='del'>-	0x2706, 0x2709,</div><div class='del'>-	0x270c, 0x2727,</div><div class='del'>-	0x2729, 0x274b,</div><div class='del'>-	0x274d, 0x274d,</div><div class='del'>-	0x274f, 0x2752,</div><div class='del'>-	0x2756, 0x2756,</div><div class='del'>-	0x2758, 0x275e,</div><div class='del'>-	0x2761, 0x2794,</div><div class='del'>-	0x2798, 0x27af,</div><div class='del'>-	0x27b1, 0x27be,</div><div class='del'>-	0x27d0, 0x27eb,</div><div class='del'>-	0x27f0, 0x2b0d,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312c,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31b7,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x3243,</div><div class='del'>-	0x3250, 0x327d,</div><div class='del'>-	0x327f, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fa5,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd800, 0xfa2d,</div><div class='del'>-	0xfa30, 0xfa6a,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfe20, 0xfe23,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1013f,</div><div class='del'>-	0x10300, 0x1031e,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x1039f,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x1083f,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d12a, 0x1d1dd,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a3,</div><div class='del'>-	0x1d6a8, 0x1d7c9,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_4_0 */</div><div class='del'>-</div><div class='del'>-/* 'Age_4_1': Derived Age 4.1 */</div><div class='del'>-static const OnigCodePoint CR_Age_4_1[] = {</div><div class='del'>-	430,</div><div class='del'>-	0x0000, 0x0241,</div><div class='del'>-	0x0250, 0x036f,</div><div class='del'>-	0x0374, 0x0375,</div><div class='del'>-	0x037a, 0x037a,</div><div class='del'>-	0x037e, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ce,</div><div class='del'>-	0x03d0, 0x0486,</div><div class='del'>-	0x0488, 0x04ce,</div><div class='del'>-	0x04d0, 0x04f9,</div><div class='del'>-	0x0500, 0x050f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x0591, 0x05b9,</div><div class='del'>-	0x05bb, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x0603,</div><div class='del'>-	0x060b, 0x0615,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061e, 0x061f,</div><div class='del'>-	0x0621, 0x063a,</div><div class='del'>-	0x0640, 0x065e,</div><div class='del'>-	0x0660, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x076d,</div><div class='del'>-	0x0780, 0x07b1,</div><div class='del'>-	0x0901, 0x0939,</div><div class='del'>-	0x093c, 0x094d,</div><div class='del'>-	0x0950, 0x0954,</div><div class='del'>-	0x0958, 0x0970,</div><div class='del'>-	0x097d, 0x097d,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fa,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a74,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0af1, 0x0af1,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b43,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b66, 0x0b71,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3e, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce1,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d28,</div><div class='del'>-	0x0d2a, 0x0d39,</div><div class='del'>-	0x0d3e, 0x0d43,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d61,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6a,</div><div class='del'>-	0x0f71, 0x0f8b,</div><div class='del'>-	0x0f90, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fcf, 0x0fd1,</div><div class='del'>-	0x1000, 0x1021,</div><div class='del'>-	0x1023, 0x1027,</div><div class='del'>-	0x1029, 0x102a,</div><div class='del'>-	0x102c, 0x1032,</div><div class='del'>-	0x1036, 0x1039,</div><div class='del'>-	0x1040, 0x1059,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10d0, 0x10fc,</div><div class='del'>-	0x1100, 0x1159,</div><div class='del'>-	0x115f, 0x11a2,</div><div class='del'>-	0x11a8, 0x11f9,</div><div class='del'>-	0x1200, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135f, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1401, 0x1676,</div><div class='del'>-	0x1680, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18a9,</div><div class='del'>-	0x1900, 0x191c,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19a9,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19d9,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a1f,</div><div class='del'>-	0x1d00, 0x1dc3,</div><div class='del'>-	0x1e00, 0x1e9b,</div><div class='del'>-	0x1ea0, 0x1ef9,</div><div class='del'>-	0x1f00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2063,</div><div class='del'>-	0x206a, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x2094,</div><div class='del'>-	0x20a0, 0x20b5,</div><div class='del'>-	0x20d0, 0x20eb,</div><div class='del'>-	0x2100, 0x214c,</div><div class='del'>-	0x2153, 0x2183,</div><div class='del'>-	0x2190, 0x23db,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x269c,</div><div class='del'>-	0x26a0, 0x26b1,</div><div class='del'>-	0x2701, 0x2704,</div><div class='del'>-	0x2706, 0x2709,</div><div class='del'>-	0x270c, 0x2727,</div><div class='del'>-	0x2729, 0x274b,</div><div class='del'>-	0x274d, 0x274d,</div><div class='del'>-	0x274f, 0x2752,</div><div class='del'>-	0x2756, 0x2756,</div><div class='del'>-	0x2758, 0x275e,</div><div class='del'>-	0x2761, 0x2794,</div><div class='del'>-	0x2798, 0x27af,</div><div class='del'>-	0x27b1, 0x27be,</div><div class='del'>-	0x27c0, 0x27c6,</div><div class='del'>-	0x27d0, 0x27eb,</div><div class='del'>-	0x27f0, 0x2b13,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c80, 0x2cea,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d30, 0x2d65,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2e00, 0x2e17,</div><div class='del'>-	0x2e1c, 0x2e1d,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312c,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31b7,</div><div class='del'>-	0x31c0, 0x31cf,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x3243,</div><div class='del'>-	0x3250, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fbb,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa700, 0xa716,</div><div class='del'>-	0xa800, 0xa82b,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd800, 0xfa2d,</div><div class='del'>-	0xfa30, 0xfa6a,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe23,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018a,</div><div class='del'>-	0x10300, 0x1031e,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x1083f,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d12a, 0x1d1dd,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7c9,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_4_1 */</div><div class='del'>-</div><div class='del'>-/* 'Age_5_0': Derived Age 5.0 */</div><div class='del'>-static const OnigCodePoint CR_Age_5_0[] = {</div><div class='del'>-	440,</div><div class='del'>-	0x0000, 0x036f,</div><div class='del'>-	0x0374, 0x0375,</div><div class='del'>-	0x037a, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x03ce,</div><div class='del'>-	0x03d0, 0x0486,</div><div class='del'>-	0x0488, 0x0513,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x0603,</div><div class='del'>-	0x060b, 0x0615,</div><div class='del'>-	0x061b, 0x061b,</div><div class='del'>-	0x061e, 0x061f,</div><div class='del'>-	0x0621, 0x063a,</div><div class='del'>-	0x0640, 0x065e,</div><div class='del'>-	0x0660, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x076d,</div><div class='del'>-	0x0780, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x0901, 0x0939,</div><div class='del'>-	0x093c, 0x094d,</div><div class='del'>-	0x0950, 0x0954,</div><div class='del'>-	0x0958, 0x0970,</div><div class='del'>-	0x097b, 0x097f,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fa,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a74,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0af1, 0x0af1,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b43,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b61,</div><div class='del'>-	0x0b66, 0x0b71,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3e, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c60, 0x0c61,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d28,</div><div class='del'>-	0x0d2a, 0x0d39,</div><div class='del'>-	0x0d3e, 0x0d43,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d61,</div><div class='del'>-	0x0d66, 0x0d6f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6a,</div><div class='del'>-	0x0f71, 0x0f8b,</div><div class='del'>-	0x0f90, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fcf, 0x0fd1,</div><div class='del'>-	0x1000, 0x1021,</div><div class='del'>-	0x1023, 0x1027,</div><div class='del'>-	0x1029, 0x102a,</div><div class='del'>-	0x102c, 0x1032,</div><div class='del'>-	0x1036, 0x1039,</div><div class='del'>-	0x1040, 0x1059,</div><div class='del'>-	0x10a0, 0x10c5,</div><div class='del'>-	0x10d0, 0x10fc,</div><div class='del'>-	0x1100, 0x1159,</div><div class='del'>-	0x115f, 0x11a2,</div><div class='del'>-	0x11a8, 0x11f9,</div><div class='del'>-	0x1200, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135f, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1401, 0x1676,</div><div class='del'>-	0x1680, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18a9,</div><div class='del'>-	0x1900, 0x191c,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19a9,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19d9,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a1f,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1d00, 0x1dca,</div><div class='del'>-	0x1dfe, 0x1e9b,</div><div class='del'>-	0x1ea0, 0x1ef9,</div><div class='del'>-	0x1f00, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2063,</div><div class='del'>-	0x206a, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x2094,</div><div class='del'>-	0x20a0, 0x20b5,</div><div class='del'>-	0x20d0, 0x20ef,</div><div class='del'>-	0x2100, 0x214e,</div><div class='del'>-	0x2153, 0x2184,</div><div class='del'>-	0x2190, 0x23e7,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x269c,</div><div class='del'>-	0x26a0, 0x26b2,</div><div class='del'>-	0x2701, 0x2704,</div><div class='del'>-	0x2706, 0x2709,</div><div class='del'>-	0x270c, 0x2727,</div><div class='del'>-	0x2729, 0x274b,</div><div class='del'>-	0x274d, 0x274d,</div><div class='del'>-	0x274f, 0x2752,</div><div class='del'>-	0x2756, 0x2756,</div><div class='del'>-	0x2758, 0x275e,</div><div class='del'>-	0x2761, 0x2794,</div><div class='del'>-	0x2798, 0x27af,</div><div class='del'>-	0x27b1, 0x27be,</div><div class='del'>-	0x27c0, 0x27ca,</div><div class='del'>-	0x27d0, 0x27eb,</div><div class='del'>-	0x27f0, 0x2b1a,</div><div class='del'>-	0x2b20, 0x2b23,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2c6c,</div><div class='del'>-	0x2c74, 0x2c77,</div><div class='del'>-	0x2c80, 0x2cea,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d30, 0x2d65,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2e00, 0x2e17,</div><div class='del'>-	0x2e1c, 0x2e1d,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312c,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31b7,</div><div class='del'>-	0x31c0, 0x31cf,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x3243,</div><div class='del'>-	0x3250, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fbb,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa700, 0xa71a,</div><div class='del'>-	0xa720, 0xa721,</div><div class='del'>-	0xa800, 0xa82b,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd800, 0xfa2d,</div><div class='del'>-	0xfa30, 0xfa6a,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe23,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018a,</div><div class='del'>-	0x10300, 0x1031e,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x1083f,</div><div class='del'>-	0x10900, 0x10919,</div><div class='del'>-	0x1091f, 0x1091f,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x12000, 0x1236e,</div><div class='del'>-	0x12400, 0x12462,</div><div class='del'>-	0x12470, 0x12473,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d12a, 0x1d1dd,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d371,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_5_0 */</div><div class='del'>-</div><div class='del'>-/* 'Age_5_1': Derived Age 5.1 */</div><div class='del'>-static const OnigCodePoint CR_Age_5_1[] = {</div><div class='del'>-	455,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x0523,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x0603,</div><div class='del'>-	0x0606, 0x061b,</div><div class='del'>-	0x061e, 0x061f,</div><div class='del'>-	0x0621, 0x065e,</div><div class='del'>-	0x0660, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x0901, 0x0939,</div><div class='del'>-	0x093c, 0x094d,</div><div class='del'>-	0x0950, 0x0954,</div><div class='del'>-	0x0958, 0x0972,</div><div class='del'>-	0x097b, 0x097f,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fa,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0af1, 0x0af1,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b71,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c59,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c7f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d28,</div><div class='del'>-	0x0d2a, 0x0d39,</div><div class='del'>-	0x0d3d, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d75,</div><div class='del'>-	0x0d79, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f8b,</div><div class='del'>-	0x0f90, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fd4,</div><div class='del'>-	0x1000, 0x1099,</div><div class='del'>-	0x109e, 0x10c5,</div><div class='del'>-	0x10d0, 0x10fc,</div><div class='del'>-	0x1100, 0x1159,</div><div class='del'>-	0x115f, 0x11a2,</div><div class='del'>-	0x11a8, 0x11f9,</div><div class='del'>-	0x1200, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135f, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1401, 0x1676,</div><div class='del'>-	0x1680, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x1900, 0x191c,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19a9,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19d9,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a1f,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1baa,</div><div class='del'>-	0x1bae, 0x1bb9,</div><div class='del'>-	0x1c00, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7f,</div><div class='del'>-	0x1d00, 0x1de6,</div><div class='del'>-	0x1dfe, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x206a, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x2094,</div><div class='del'>-	0x20a0, 0x20b5,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x214f,</div><div class='del'>-	0x2153, 0x2188,</div><div class='del'>-	0x2190, 0x23e7,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x269d,</div><div class='del'>-	0x26a0, 0x26bc,</div><div class='del'>-	0x26c0, 0x26c3,</div><div class='del'>-	0x2701, 0x2704,</div><div class='del'>-	0x2706, 0x2709,</div><div class='del'>-	0x270c, 0x2727,</div><div class='del'>-	0x2729, 0x274b,</div><div class='del'>-	0x274d, 0x274d,</div><div class='del'>-	0x274f, 0x2752,</div><div class='del'>-	0x2756, 0x2756,</div><div class='del'>-	0x2758, 0x275e,</div><div class='del'>-	0x2761, 0x2794,</div><div class='del'>-	0x2798, 0x27af,</div><div class='del'>-	0x27b1, 0x27be,</div><div class='del'>-	0x27c0, 0x27ca,</div><div class='del'>-	0x27cc, 0x27cc,</div><div class='del'>-	0x27d0, 0x2b4c,</div><div class='del'>-	0x2b50, 0x2b54,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2c6f,</div><div class='del'>-	0x2c71, 0x2c7d,</div><div class='del'>-	0x2c80, 0x2cea,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d30, 0x2d65,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e30,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312d,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31b7,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x3243,</div><div class='del'>-	0x3250, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fc3,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa500, 0xa62b,</div><div class='del'>-	0xa640, 0xa65f,</div><div class='del'>-	0xa662, 0xa673,</div><div class='del'>-	0xa67c, 0xa697,</div><div class='del'>-	0xa700, 0xa78c,</div><div class='del'>-	0xa7fb, 0xa82b,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c4,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa900, 0xa953,</div><div class='del'>-	0xa95f, 0xa95f,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaa5f,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd800, 0xfa2d,</div><div class='del'>-	0xfa30, 0xfa6a,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe26,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018a,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031e,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x1083f,</div><div class='del'>-	0x10900, 0x10919,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x12000, 0x1236e,</div><div class='del'>-	0x12400, 0x12462,</div><div class='del'>-	0x12470, 0x12473,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1dd,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d371,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_5_1 */</div><div class='del'>-</div><div class='del'>-/* 'Age_5_2': Derived Age 5.2 */</div><div class='del'>-static const OnigCodePoint CR_Age_5_2[] = {</div><div class='del'>-	495,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x0525,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x0603,</div><div class='del'>-	0x0606, 0x061b,</div><div class='del'>-	0x061e, 0x061f,</div><div class='del'>-	0x0621, 0x065e,</div><div class='del'>-	0x0660, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0900, 0x0939,</div><div class='del'>-	0x093c, 0x094e,</div><div class='del'>-	0x0950, 0x0955,</div><div class='del'>-	0x0958, 0x0972,</div><div class='del'>-	0x0979, 0x097f,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fb,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0af1, 0x0af1,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b71,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c59,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c7f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d28,</div><div class='del'>-	0x0d2a, 0x0d39,</div><div class='del'>-	0x0d3d, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d75,</div><div class='del'>-	0x0d79, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f8b,</div><div class='del'>-	0x0f90, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fd8,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10d0, 0x10fc,</div><div class='del'>-	0x1100, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135f, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191c,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1baa,</div><div class='del'>-	0x1bae, 0x1bb9,</div><div class='del'>-	0x1c00, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7f,</div><div class='del'>-	0x1cd0, 0x1cf2,</div><div class='del'>-	0x1d00, 0x1de6,</div><div class='del'>-	0x1dfd, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x206a, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x2094,</div><div class='del'>-	0x20a0, 0x20b8,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x2189,</div><div class='del'>-	0x2190, 0x23e8,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x26cd,</div><div class='del'>-	0x26cf, 0x26e1,</div><div class='del'>-	0x26e3, 0x26e3,</div><div class='del'>-	0x26e8, 0x26ff,</div><div class='del'>-	0x2701, 0x2704,</div><div class='del'>-	0x2706, 0x2709,</div><div class='del'>-	0x270c, 0x2727,</div><div class='del'>-	0x2729, 0x274b,</div><div class='del'>-	0x274d, 0x274d,</div><div class='del'>-	0x274f, 0x2752,</div><div class='del'>-	0x2756, 0x275e,</div><div class='del'>-	0x2761, 0x2794,</div><div class='del'>-	0x2798, 0x27af,</div><div class='del'>-	0x27b1, 0x27be,</div><div class='del'>-	0x27c0, 0x27ca,</div><div class='del'>-	0x27cc, 0x27cc,</div><div class='del'>-	0x27d0, 0x2b4c,</div><div class='del'>-	0x2b50, 0x2b59,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf1,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d30, 0x2d65,</div><div class='del'>-	0x2d6f, 0x2d6f,</div><div class='del'>-	0x2d80, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e31,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312d,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31b7,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fcb,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa65f,</div><div class='del'>-	0xa662, 0xa673,</div><div class='del'>-	0xa67c, 0xa697,</div><div class='del'>-	0xa6a0, 0xa6f7,</div><div class='del'>-	0xa700, 0xa78c,</div><div class='del'>-	0xa7fb, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c4,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8fb,</div><div class='del'>-	0xa900, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9df,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaa7b,</div><div class='del'>-	0xaa80, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadf,</div><div class='del'>-	0xabc0, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xd800, 0xfa2d,</div><div class='del'>-	0xfa30, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbb1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe26,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018a,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031e,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1085f,</div><div class='del'>-	0x10900, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a7f,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b7f,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x11080, 0x110c1,</div><div class='del'>-	0x12000, 0x1236e,</div><div class='del'>-	0x12400, 0x12462,</div><div class='del'>-	0x12470, 0x12473,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1dd,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d371,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f100, 0x1f10a,</div><div class='del'>-	0x1f110, 0x1f12e,</div><div class='del'>-	0x1f131, 0x1f131,</div><div class='del'>-	0x1f13d, 0x1f13d,</div><div class='del'>-	0x1f13f, 0x1f13f,</div><div class='del'>-	0x1f142, 0x1f142,</div><div class='del'>-	0x1f146, 0x1f146,</div><div class='del'>-	0x1f14a, 0x1f14e,</div><div class='del'>-	0x1f157, 0x1f157,</div><div class='del'>-	0x1f15f, 0x1f15f,</div><div class='del'>-	0x1f179, 0x1f179,</div><div class='del'>-	0x1f17b, 0x1f17c,</div><div class='del'>-	0x1f17f, 0x1f17f,</div><div class='del'>-	0x1f18a, 0x1f18d,</div><div class='del'>-	0x1f190, 0x1f190,</div><div class='del'>-	0x1f200, 0x1f200,</div><div class='del'>-	0x1f210, 0x1f231,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_5_2 */</div><div class='del'>-</div><div class='del'>-/* 'Age_6_0': Derived Age 6.0 */</div><div class='del'>-static const OnigCodePoint CR_Age_6_0[] = {</div><div class='del'>-	511,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x0527,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x0603,</div><div class='del'>-	0x0606, 0x061b,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x0900, 0x0977,</div><div class='del'>-	0x0979, 0x097f,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fb,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0aef,</div><div class='del'>-	0x0af1, 0x0af1,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c59,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c7f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4e,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d75,</div><div class='del'>-	0x0d79, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edd,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10d0, 0x10fc,</div><div class='del'>-	0x1100, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191c,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1baa,</div><div class='del'>-	0x1bae, 0x1bb9,</div><div class='del'>-	0x1bc0, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7f,</div><div class='del'>-	0x1cd0, 0x1cf2,</div><div class='del'>-	0x1d00, 0x1de6,</div><div class='del'>-	0x1dfc, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x206a, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20b9,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x2189,</div><div class='del'>-	0x2190, 0x23f3,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x26ff,</div><div class='del'>-	0x2701, 0x27ca,</div><div class='del'>-	0x27cc, 0x27cc,</div><div class='del'>-	0x27ce, 0x2b4c,</div><div class='del'>-	0x2b50, 0x2b59,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf1,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d30, 0x2d65,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e31,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312d,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fcb,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa673,</div><div class='del'>-	0xa67c, 0xa697,</div><div class='del'>-	0xa6a0, 0xa6f7,</div><div class='del'>-	0xa700, 0xa78e,</div><div class='del'>-	0xa790, 0xa791,</div><div class='del'>-	0xa7a0, 0xa7a9,</div><div class='del'>-	0xa7fa, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c4,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8fb,</div><div class='del'>-	0xa900, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9df,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaa7b,</div><div class='del'>-	0xaa80, 0xaac2,</div><div class='del'>-	0xaadb, 0xaadf,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xabc0, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xd800, 0xfa2d,</div><div class='del'>-	0xfa30, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe26,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018a,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031e,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1085f,</div><div class='del'>-	0x10900, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a7f,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b7f,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x11080, 0x110c1,</div><div class='del'>-	0x12000, 0x1236e,</div><div class='del'>-	0x12400, 0x12462,</div><div class='del'>-	0x12470, 0x12473,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x1b000, 0x1b001,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1dd,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d371,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0be,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0df,</div><div class='del'>-	0x1f100, 0x1f10a,</div><div class='del'>-	0x1f110, 0x1f12e,</div><div class='del'>-	0x1f130, 0x1f169,</div><div class='del'>-	0x1f170, 0x1f19a,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23a,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f300, 0x1f320,</div><div class='del'>-	0x1f330, 0x1f335,</div><div class='del'>-	0x1f337, 0x1f37c,</div><div class='del'>-	0x1f380, 0x1f393,</div><div class='del'>-	0x1f3a0, 0x1f3c4,</div><div class='del'>-	0x1f3c6, 0x1f3ca,</div><div class='del'>-	0x1f3e0, 0x1f3f0,</div><div class='del'>-	0x1f400, 0x1f43e,</div><div class='del'>-	0x1f440, 0x1f440,</div><div class='del'>-	0x1f442, 0x1f4f7,</div><div class='del'>-	0x1f4f9, 0x1f4fc,</div><div class='del'>-	0x1f500, 0x1f53d,</div><div class='del'>-	0x1f550, 0x1f567,</div><div class='del'>-	0x1f5fb, 0x1f5ff,</div><div class='del'>-	0x1f601, 0x1f610,</div><div class='del'>-	0x1f612, 0x1f614,</div><div class='del'>-	0x1f616, 0x1f616,</div><div class='del'>-	0x1f618, 0x1f618,</div><div class='del'>-	0x1f61a, 0x1f61a,</div><div class='del'>-	0x1f61c, 0x1f61e,</div><div class='del'>-	0x1f620, 0x1f625,</div><div class='del'>-	0x1f628, 0x1f62b,</div><div class='del'>-	0x1f62d, 0x1f62d,</div><div class='del'>-	0x1f630, 0x1f633,</div><div class='del'>-	0x1f635, 0x1f640,</div><div class='del'>-	0x1f645, 0x1f64f,</div><div class='del'>-	0x1f680, 0x1f6c5,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_6_0 */</div><div class='del'>-</div><div class='del'>-/* 'Age_6_1': Derived Age 6.1 */</div><div class='del'>-static const OnigCodePoint CR_Age_6_1[] = {</div><div class='del'>-	549,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x0527,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x058f, 0x058f,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x0604,</div><div class='del'>-	0x0606, 0x061b,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x08a0, 0x08a0,</div><div class='del'>-	0x08a2, 0x08ac,</div><div class='del'>-	0x08e4, 0x08fe,</div><div class='del'>-	0x0900, 0x0977,</div><div class='del'>-	0x0979, 0x097f,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fb,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c59,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c7f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4e,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d75,</div><div class='del'>-	0x0d79, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191c,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7f,</div><div class='del'>-	0x1cc0, 0x1cc7,</div><div class='del'>-	0x1cd0, 0x1cf6,</div><div class='del'>-	0x1d00, 0x1de6,</div><div class='del'>-	0x1dfc, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x206a, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20b9,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x2189,</div><div class='del'>-	0x2190, 0x23f3,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x26ff,</div><div class='del'>-	0x2701, 0x2b4c,</div><div class='del'>-	0x2b50, 0x2b59,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e3b,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312d,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fcc,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa697,</div><div class='del'>-	0xa69f, 0xa6f7,</div><div class='del'>-	0xa700, 0xa78e,</div><div class='del'>-	0xa790, 0xa793,</div><div class='del'>-	0xa7a0, 0xa7aa,</div><div class='del'>-	0xa7f8, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c4,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8fb,</div><div class='del'>-	0xa900, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9df,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaa7b,</div><div class='del'>-	0xaa80, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xabc0, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xd800, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe26,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018a,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031e,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1085f,</div><div class='del'>-	0x10900, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a7f,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b7f,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x11080, 0x110c1,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11143,</div><div class='del'>-	0x11180, 0x111c8,</div><div class='del'>-	0x111d0, 0x111d9,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x12000, 0x1236e,</div><div class='del'>-	0x12400, 0x12462,</div><div class='del'>-	0x12470, 0x12473,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x1b000, 0x1b001,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1dd,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d371,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0be,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0df,</div><div class='del'>-	0x1f100, 0x1f10a,</div><div class='del'>-	0x1f110, 0x1f12e,</div><div class='del'>-	0x1f130, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f19a,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23a,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f300, 0x1f320,</div><div class='del'>-	0x1f330, 0x1f335,</div><div class='del'>-	0x1f337, 0x1f37c,</div><div class='del'>-	0x1f380, 0x1f393,</div><div class='del'>-	0x1f3a0, 0x1f3c4,</div><div class='del'>-	0x1f3c6, 0x1f3ca,</div><div class='del'>-	0x1f3e0, 0x1f3f0,</div><div class='del'>-	0x1f400, 0x1f43e,</div><div class='del'>-	0x1f440, 0x1f440,</div><div class='del'>-	0x1f442, 0x1f4f7,</div><div class='del'>-	0x1f4f9, 0x1f4fc,</div><div class='del'>-	0x1f500, 0x1f53d,</div><div class='del'>-	0x1f540, 0x1f543,</div><div class='del'>-	0x1f550, 0x1f567,</div><div class='del'>-	0x1f5fb, 0x1f640,</div><div class='del'>-	0x1f645, 0x1f64f,</div><div class='del'>-	0x1f680, 0x1f6c5,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_6_1 */</div><div class='del'>-</div><div class='del'>-/* 'Age_6_2': Derived Age 6.2 */</div><div class='del'>-static const OnigCodePoint CR_Age_6_2[] = {</div><div class='del'>-	549,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x0527,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x058f, 0x058f,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x0604,</div><div class='del'>-	0x0606, 0x061b,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x08a0, 0x08a0,</div><div class='del'>-	0x08a2, 0x08ac,</div><div class='del'>-	0x08e4, 0x08fe,</div><div class='del'>-	0x0900, 0x0977,</div><div class='del'>-	0x0979, 0x097f,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fb,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c59,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c7f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4e,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d75,</div><div class='del'>-	0x0d79, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191c,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7f,</div><div class='del'>-	0x1cc0, 0x1cc7,</div><div class='del'>-	0x1cd0, 0x1cf6,</div><div class='del'>-	0x1d00, 0x1de6,</div><div class='del'>-	0x1dfc, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x206a, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20ba,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x2189,</div><div class='del'>-	0x2190, 0x23f3,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x26ff,</div><div class='del'>-	0x2701, 0x2b4c,</div><div class='del'>-	0x2b50, 0x2b59,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e3b,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312d,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fcc,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa697,</div><div class='del'>-	0xa69f, 0xa6f7,</div><div class='del'>-	0xa700, 0xa78e,</div><div class='del'>-	0xa790, 0xa793,</div><div class='del'>-	0xa7a0, 0xa7aa,</div><div class='del'>-	0xa7f8, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c4,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8fb,</div><div class='del'>-	0xa900, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9df,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaa7b,</div><div class='del'>-	0xaa80, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xabc0, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xd800, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe26,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018a,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031e,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1085f,</div><div class='del'>-	0x10900, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a7f,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b7f,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x11080, 0x110c1,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11143,</div><div class='del'>-	0x11180, 0x111c8,</div><div class='del'>-	0x111d0, 0x111d9,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x12000, 0x1236e,</div><div class='del'>-	0x12400, 0x12462,</div><div class='del'>-	0x12470, 0x12473,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x1b000, 0x1b001,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1dd,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d371,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0be,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0df,</div><div class='del'>-	0x1f100, 0x1f10a,</div><div class='del'>-	0x1f110, 0x1f12e,</div><div class='del'>-	0x1f130, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f19a,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23a,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f300, 0x1f320,</div><div class='del'>-	0x1f330, 0x1f335,</div><div class='del'>-	0x1f337, 0x1f37c,</div><div class='del'>-	0x1f380, 0x1f393,</div><div class='del'>-	0x1f3a0, 0x1f3c4,</div><div class='del'>-	0x1f3c6, 0x1f3ca,</div><div class='del'>-	0x1f3e0, 0x1f3f0,</div><div class='del'>-	0x1f400, 0x1f43e,</div><div class='del'>-	0x1f440, 0x1f440,</div><div class='del'>-	0x1f442, 0x1f4f7,</div><div class='del'>-	0x1f4f9, 0x1f4fc,</div><div class='del'>-	0x1f500, 0x1f53d,</div><div class='del'>-	0x1f540, 0x1f543,</div><div class='del'>-	0x1f550, 0x1f567,</div><div class='del'>-	0x1f5fb, 0x1f640,</div><div class='del'>-	0x1f645, 0x1f64f,</div><div class='del'>-	0x1f680, 0x1f6c5,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_6_2 */</div><div class='del'>-</div><div class='del'>-/* 'Age_6_3': Derived Age 6.3 */</div><div class='del'>-static const OnigCodePoint CR_Age_6_3[] = {</div><div class='del'>-	549,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037e,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x0527,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x058f, 0x058f,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x0604,</div><div class='del'>-	0x0606, 0x061c,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x08a0, 0x08a0,</div><div class='del'>-	0x08a2, 0x08ac,</div><div class='del'>-	0x08e4, 0x08fe,</div><div class='del'>-	0x0900, 0x0977,</div><div class='del'>-	0x0979, 0x097f,</div><div class='del'>-	0x0981, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fb,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c33,</div><div class='del'>-	0x0c35, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c59,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c7f,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4e,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d75,</div><div class='del'>-	0x0d79, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f0,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191c,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7f,</div><div class='del'>-	0x1cc0, 0x1cc7,</div><div class='del'>-	0x1cd0, 0x1cf6,</div><div class='del'>-	0x1d00, 0x1de6,</div><div class='del'>-	0x1dfc, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x2066, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20ba,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x2189,</div><div class='del'>-	0x2190, 0x23f3,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x26ff,</div><div class='del'>-	0x2701, 0x2b4c,</div><div class='del'>-	0x2b50, 0x2b59,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e3b,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312d,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fcc,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa697,</div><div class='del'>-	0xa69f, 0xa6f7,</div><div class='del'>-	0xa700, 0xa78e,</div><div class='del'>-	0xa790, 0xa793,</div><div class='del'>-	0xa7a0, 0xa7aa,</div><div class='del'>-	0xa7f8, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c4,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8fb,</div><div class='del'>-	0xa900, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9df,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaa7b,</div><div class='del'>-	0xaa80, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xabc0, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xd800, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe26,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018a,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x10300, 0x1031e,</div><div class='del'>-	0x10320, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1085f,</div><div class='del'>-	0x10900, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a7f,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b7f,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x11080, 0x110c1,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11143,</div><div class='del'>-	0x11180, 0x111c8,</div><div class='del'>-	0x111d0, 0x111d9,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x12000, 0x1236e,</div><div class='del'>-	0x12400, 0x12462,</div><div class='del'>-	0x12470, 0x12473,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x1b000, 0x1b001,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1dd,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d371,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0be,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0df,</div><div class='del'>-	0x1f100, 0x1f10a,</div><div class='del'>-	0x1f110, 0x1f12e,</div><div class='del'>-	0x1f130, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f19a,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23a,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f300, 0x1f320,</div><div class='del'>-	0x1f330, 0x1f335,</div><div class='del'>-	0x1f337, 0x1f37c,</div><div class='del'>-	0x1f380, 0x1f393,</div><div class='del'>-	0x1f3a0, 0x1f3c4,</div><div class='del'>-	0x1f3c6, 0x1f3ca,</div><div class='del'>-	0x1f3e0, 0x1f3f0,</div><div class='del'>-	0x1f400, 0x1f43e,</div><div class='del'>-	0x1f440, 0x1f440,</div><div class='del'>-	0x1f442, 0x1f4f7,</div><div class='del'>-	0x1f4f9, 0x1f4fc,</div><div class='del'>-	0x1f500, 0x1f53d,</div><div class='del'>-	0x1f540, 0x1f543,</div><div class='del'>-	0x1f550, 0x1f567,</div><div class='del'>-	0x1f5fb, 0x1f640,</div><div class='del'>-	0x1f645, 0x1f64f,</div><div class='del'>-	0x1f680, 0x1f6c5,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_6_3 */</div><div class='del'>-</div><div class='del'>-/* 'Age_7_0': Derived Age 7.0 */</div><div class='del'>-static const OnigCodePoint CR_Age_7_0[] = {</div><div class='del'>-	610,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037f,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x058d, 0x058f,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x061c,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x08a0, 0x08b2,</div><div class='del'>-	0x08e4, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fb,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c00, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c59,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c7f,</div><div class='del'>-	0x0c81, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d01, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4e,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d60, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d75,</div><div class='del'>-	0x0d79, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f4,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7f,</div><div class='del'>-	0x1cc0, 0x1cc7,</div><div class='del'>-	0x1cd0, 0x1cf6,</div><div class='del'>-	0x1cf8, 0x1cf9,</div><div class='del'>-	0x1d00, 0x1df5,</div><div class='del'>-	0x1dfc, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x2066, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20bd,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x2189,</div><div class='del'>-	0x2190, 0x23fa,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bb9,</div><div class='del'>-	0x2bbd, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bd1,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e42,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312d,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fcc,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa69d,</div><div class='del'>-	0xa69f, 0xa6f7,</div><div class='del'>-	0xa700, 0xa78e,</div><div class='del'>-	0xa790, 0xa7ad,</div><div class='del'>-	0xa7b0, 0xa7b1,</div><div class='del'>-	0xa7f7, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c4,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8fb,</div><div class='del'>-	0xa900, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab5f,</div><div class='del'>-	0xab64, 0xab65,</div><div class='del'>-	0xabc0, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xd800, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe2d,</div><div class='del'>-	0xfe30, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018c,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e0, 0x102fb,</div><div class='del'>-	0x10300, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1089e,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-	0x10900, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109be, 0x109bf,</div><div class='del'>-	0x10a00, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a9f,</div><div class='del'>-	0x10ac0, 0x10ae6,</div><div class='del'>-	0x10aeb, 0x10af6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b91,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x1107f, 0x110c1,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11143,</div><div class='del'>-	0x11150, 0x11176,</div><div class='del'>-	0x11180, 0x111c8,</div><div class='del'>-	0x111cd, 0x111cd,</div><div class='del'>-	0x111d0, 0x111da,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1123d,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11301, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133c, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11480, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115c9,</div><div class='del'>-	0x11600, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x118a0, 0x118f2,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x12000, 0x12398,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af5,</div><div class='del'>-	0x16b00, 0x16b45,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x1b000, 0x1b001,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9c, 0x1bca3,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1dd,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d371,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1d7ff,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8c7, 0x1e8d6,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-	0x1f110, 0x1f12e,</div><div class='del'>-	0x1f130, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f19a,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23a,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f300, 0x1f32c,</div><div class='del'>-	0x1f330, 0x1f37d,</div><div class='del'>-	0x1f380, 0x1f3ce,</div><div class='del'>-	0x1f3d4, 0x1f3f7,</div><div class='del'>-	0x1f400, 0x1f4fe,</div><div class='del'>-	0x1f500, 0x1f54a,</div><div class='del'>-	0x1f550, 0x1f579,</div><div class='del'>-	0x1f57b, 0x1f5a3,</div><div class='del'>-	0x1f5a5, 0x1f642,</div><div class='del'>-	0x1f645, 0x1f6cf,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f3,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d4,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_7_0 */</div><div class='del'>-</div><div class='del'>-/* 'Age_8_0': Derived Age 8.0 */</div><div class='del'>-static const OnigCodePoint CR_Age_8_0[] = {</div><div class='del'>-	623,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037f,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x058d, 0x058f,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x061c,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08e3, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fb,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0af9, 0x0af9,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c00, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c7f,</div><div class='del'>-	0x0c81, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d01, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4e,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d5f, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d75,</div><div class='del'>-	0x0d79, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c7f,</div><div class='del'>-	0x1cc0, 0x1cc7,</div><div class='del'>-	0x1cd0, 0x1cf6,</div><div class='del'>-	0x1cf8, 0x1cf9,</div><div class='del'>-	0x1d00, 0x1df5,</div><div class='del'>-	0x1dfc, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x2066, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20be,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x218b,</div><div class='del'>-	0x2190, 0x23fa,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bb9,</div><div class='del'>-	0x2bbd, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bd1,</div><div class='del'>-	0x2bec, 0x2bef,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e42,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312d,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fd5,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa6f7,</div><div class='del'>-	0xa700, 0xa7ad,</div><div class='del'>-	0xa7b0, 0xa7b7,</div><div class='del'>-	0xa7f7, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c4,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8fd,</div><div class='del'>-	0xa900, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab65,</div><div class='del'>-	0xab70, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xd800, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018c,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e0, 0x102fb,</div><div class='del'>-	0x10300, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1089e,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x108fb, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109bc, 0x109cf,</div><div class='del'>-	0x109d2, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a9f,</div><div class='del'>-	0x10ac0, 0x10ae6,</div><div class='del'>-	0x10aeb, 0x10af6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b91,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10cfa, 0x10cff,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x1107f, 0x110c1,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11143,</div><div class='del'>-	0x11150, 0x11176,</div><div class='del'>-	0x11180, 0x111cd,</div><div class='del'>-	0x111d0, 0x111df,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1123d,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a9,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133c, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11480, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115dd,</div><div class='del'>-	0x11600, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x11719,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x11730, 0x1173f,</div><div class='del'>-	0x118a0, 0x118f2,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af5,</div><div class='del'>-	0x16b00, 0x16b45,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x1b000, 0x1b001,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9c, 0x1bca3,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1e8,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d371,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1da8b,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8c7, 0x1e8d6,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-	0x1f110, 0x1f12e,</div><div class='del'>-	0x1f130, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f19a,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23a,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f300, 0x1f579,</div><div class='del'>-	0x1f57b, 0x1f5a3,</div><div class='del'>-	0x1f5a5, 0x1f6d0,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f3,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d4,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1f910, 0x1f918,</div><div class='del'>-	0x1f980, 0x1f984,</div><div class='del'>-	0x1f9c0, 0x1f9c0,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_8_0 */</div><div class='del'>-</div><div class='del'>-/* 'Age_9_0': Derived Age 9.0 */</div><div class='del'>-static const OnigCodePoint CR_Age_9_0[] = {</div><div class='del'>-	648,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037f,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x058d, 0x058f,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x061c,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d4, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fb,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0af9, 0x0af9,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c00, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d01, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d3a,</div><div class='del'>-	0x0d3d, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4f,</div><div class='del'>-	0x0d54, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c88,</div><div class='del'>-	0x1cc0, 0x1cc7,</div><div class='del'>-	0x1cd0, 0x1cf6,</div><div class='del'>-	0x1cf8, 0x1cf9,</div><div class='del'>-	0x1d00, 0x1df5,</div><div class='del'>-	0x1dfb, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x2066, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20be,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x218b,</div><div class='del'>-	0x2190, 0x23fe,</div><div class='del'>-	0x2400, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bb9,</div><div class='del'>-	0x2bbd, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bd1,</div><div class='del'>-	0x2bec, 0x2bef,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e44,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312d,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fd5,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa6f7,</div><div class='del'>-	0xa700, 0xa7ae,</div><div class='del'>-	0xa7b0, 0xa7b7,</div><div class='del'>-	0xa7f7, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c5,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8fd,</div><div class='del'>-	0xa900, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab65,</div><div class='del'>-	0xab70, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xd800, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018e,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e0, 0x102fb,</div><div class='del'>-	0x10300, 0x10323,</div><div class='del'>-	0x10330, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1089e,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x108fb, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109bc, 0x109cf,</div><div class='del'>-	0x109d2, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a9f,</div><div class='del'>-	0x10ac0, 0x10ae6,</div><div class='del'>-	0x10aeb, 0x10af6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b91,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10cfa, 0x10cff,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x1107f, 0x110c1,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11143,</div><div class='del'>-	0x11150, 0x11176,</div><div class='del'>-	0x11180, 0x111cd,</div><div class='del'>-	0x111d0, 0x111df,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1123e,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a9,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133c, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11400, 0x11459,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x1145d, 0x1145d,</div><div class='del'>-	0x11480, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115dd,</div><div class='del'>-	0x11600, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11660, 0x1166c,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x11719,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x11730, 0x1173f,</div><div class='del'>-	0x118a0, 0x118f2,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c45,</div><div class='del'>-	0x11c50, 0x11c6c,</div><div class='del'>-	0x11c70, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af5,</div><div class='del'>-	0x16b00, 0x16b45,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe0,</div><div class='del'>-	0x17000, 0x187ec,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b001,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9c, 0x1bca3,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1e8,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d371,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1da8b,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8c7, 0x1e8d6,</div><div class='del'>-	0x1e900, 0x1e94a,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1e95e, 0x1e95f,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-	0x1f110, 0x1f12e,</div><div class='del'>-	0x1f130, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f1ac,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23b,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f300, 0x1f6d2,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f6,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d4,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1f910, 0x1f91e,</div><div class='del'>-	0x1f920, 0x1f927,</div><div class='del'>-	0x1f930, 0x1f930,</div><div class='del'>-	0x1f933, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f94b,</div><div class='del'>-	0x1f950, 0x1f95e,</div><div class='del'>-	0x1f980, 0x1f991,</div><div class='del'>-	0x1f9c0, 0x1f9c0,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_9_0 */</div><div class='del'>-</div><div class='del'>-/* 'Age_10_0': Derived Age 10.0 */</div><div class='del'>-static const OnigCodePoint CR_Age_10_0[] = {</div><div class='del'>-	659,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037f,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x055f,</div><div class='del'>-	0x0561, 0x0587,</div><div class='del'>-	0x0589, 0x058a,</div><div class='del'>-	0x058d, 0x058f,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05f0, 0x05f4,</div><div class='del'>-	0x0600, 0x061c,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x0800, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d4, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fd,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0af9, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c00, 0x0c03,</div><div class='del'>-	0x0c05, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c83,</div><div class='del'>-	0x0c85, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4f,</div><div class='del'>-	0x0d54, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1877,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c88,</div><div class='del'>-	0x1cc0, 0x1cc7,</div><div class='del'>-	0x1cd0, 0x1cf9,</div><div class='del'>-	0x1d00, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x2066, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20bf,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x218b,</div><div class='del'>-	0x2190, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bb9,</div><div class='del'>-	0x2bbd, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bd2,</div><div class='del'>-	0x2bec, 0x2bef,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e49,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312e,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fea,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa6f7,</div><div class='del'>-	0xa700, 0xa7ae,</div><div class='del'>-	0xa7b0, 0xa7b7,</div><div class='del'>-	0xa7f7, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c5,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa8fd,</div><div class='del'>-	0xa900, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab65,</div><div class='del'>-	0xab70, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xd800, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018e,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e0, 0x102fb,</div><div class='del'>-	0x10300, 0x10323,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1089e,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x108fb, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109bc, 0x109cf,</div><div class='del'>-	0x109d2, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a33,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a47,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a9f,</div><div class='del'>-	0x10ac0, 0x10ae6,</div><div class='del'>-	0x10aeb, 0x10af6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b91,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10cfa, 0x10cff,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x1107f, 0x110c1,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11143,</div><div class='del'>-	0x11150, 0x11176,</div><div class='del'>-	0x11180, 0x111cd,</div><div class='del'>-	0x111d0, 0x111df,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1123e,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a9,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133c, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11400, 0x11459,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x1145d, 0x1145d,</div><div class='del'>-	0x11480, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115dd,</div><div class='del'>-	0x11600, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11660, 0x1166c,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x11719,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x11730, 0x1173f,</div><div class='del'>-	0x118a0, 0x118f2,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a47,</div><div class='del'>-	0x11a50, 0x11a83,</div><div class='del'>-	0x11a86, 0x11a9c,</div><div class='del'>-	0x11a9e, 0x11aa2,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c45,</div><div class='del'>-	0x11c50, 0x11c6c,</div><div class='del'>-	0x11c70, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d47,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af5,</div><div class='del'>-	0x16b00, 0x16b45,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187ec,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9c, 0x1bca3,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1e8,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d371,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1da8b,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8c7, 0x1e8d6,</div><div class='del'>-	0x1e900, 0x1e94a,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1e95e, 0x1e95f,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-	0x1f110, 0x1f12e,</div><div class='del'>-	0x1f130, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f1ac,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23b,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f260, 0x1f265,</div><div class='del'>-	0x1f300, 0x1f6d4,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f8,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d4,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1f900, 0x1f90b,</div><div class='del'>-	0x1f910, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f94c,</div><div class='del'>-	0x1f950, 0x1f96b,</div><div class='del'>-	0x1f980, 0x1f997,</div><div class='del'>-	0x1f9c0, 0x1f9c0,</div><div class='del'>-	0x1f9d0, 0x1f9e6,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_10_0 */</div><div class='del'>-</div><div class='del'>-/* 'Age_11_0': Derived Age 11.0 */</div><div class='del'>-static const OnigCodePoint CR_Age_11_0[] = {</div><div class='del'>-	668,</div><div class='del'>-	0x0000, 0x0377,</div><div class='del'>-	0x037a, 0x037f,</div><div class='del'>-	0x0384, 0x038a,</div><div class='del'>-	0x038c, 0x038c,</div><div class='del'>-	0x038e, 0x03a1,</div><div class='del'>-	0x03a3, 0x052f,</div><div class='del'>-	0x0531, 0x0556,</div><div class='del'>-	0x0559, 0x058a,</div><div class='del'>-	0x058d, 0x058f,</div><div class='del'>-	0x0591, 0x05c7,</div><div class='del'>-	0x05d0, 0x05ea,</div><div class='del'>-	0x05ef, 0x05f4,</div><div class='del'>-	0x0600, 0x061c,</div><div class='del'>-	0x061e, 0x070d,</div><div class='del'>-	0x070f, 0x074a,</div><div class='del'>-	0x074d, 0x07b1,</div><div class='del'>-	0x07c0, 0x07fa,</div><div class='del'>-	0x07fd, 0x082d,</div><div class='del'>-	0x0830, 0x083e,</div><div class='del'>-	0x0840, 0x085b,</div><div class='del'>-	0x085e, 0x085e,</div><div class='del'>-	0x0860, 0x086a,</div><div class='del'>-	0x08a0, 0x08b4,</div><div class='del'>-	0x08b6, 0x08bd,</div><div class='del'>-	0x08d3, 0x0983,</div><div class='del'>-	0x0985, 0x098c,</div><div class='del'>-	0x098f, 0x0990,</div><div class='del'>-	0x0993, 0x09a8,</div><div class='del'>-	0x09aa, 0x09b0,</div><div class='del'>-	0x09b2, 0x09b2,</div><div class='del'>-	0x09b6, 0x09b9,</div><div class='del'>-	0x09bc, 0x09c4,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09ce,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09dc, 0x09dd,</div><div class='del'>-	0x09df, 0x09e3,</div><div class='del'>-	0x09e6, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a03,</div><div class='del'>-	0x0a05, 0x0a0a,</div><div class='del'>-	0x0a0f, 0x0a10,</div><div class='del'>-	0x0a13, 0x0a28,</div><div class='del'>-	0x0a2a, 0x0a30,</div><div class='del'>-	0x0a32, 0x0a33,</div><div class='del'>-	0x0a35, 0x0a36,</div><div class='del'>-	0x0a38, 0x0a39,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a3e, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a59, 0x0a5c,</div><div class='del'>-	0x0a5e, 0x0a5e,</div><div class='del'>-	0x0a66, 0x0a76,</div><div class='del'>-	0x0a81, 0x0a83,</div><div class='del'>-	0x0a85, 0x0a8d,</div><div class='del'>-	0x0a8f, 0x0a91,</div><div class='del'>-	0x0a93, 0x0aa8,</div><div class='del'>-	0x0aaa, 0x0ab0,</div><div class='del'>-	0x0ab2, 0x0ab3,</div><div class='del'>-	0x0ab5, 0x0ab9,</div><div class='del'>-	0x0abc, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acd,</div><div class='del'>-	0x0ad0, 0x0ad0,</div><div class='del'>-	0x0ae0, 0x0ae3,</div><div class='del'>-	0x0ae6, 0x0af1,</div><div class='del'>-	0x0af9, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b03,</div><div class='del'>-	0x0b05, 0x0b0c,</div><div class='del'>-	0x0b0f, 0x0b10,</div><div class='del'>-	0x0b13, 0x0b28,</div><div class='del'>-	0x0b2a, 0x0b30,</div><div class='del'>-	0x0b32, 0x0b33,</div><div class='del'>-	0x0b35, 0x0b39,</div><div class='del'>-	0x0b3c, 0x0b44,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b5c, 0x0b5d,</div><div class='del'>-	0x0b5f, 0x0b63,</div><div class='del'>-	0x0b66, 0x0b77,</div><div class='del'>-	0x0b82, 0x0b83,</div><div class='del'>-	0x0b85, 0x0b8a,</div><div class='del'>-	0x0b8e, 0x0b90,</div><div class='del'>-	0x0b92, 0x0b95,</div><div class='del'>-	0x0b99, 0x0b9a,</div><div class='del'>-	0x0b9c, 0x0b9c,</div><div class='del'>-	0x0b9e, 0x0b9f,</div><div class='del'>-	0x0ba3, 0x0ba4,</div><div class='del'>-	0x0ba8, 0x0baa,</div><div class='del'>-	0x0bae, 0x0bb9,</div><div class='del'>-	0x0bbe, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcd,</div><div class='del'>-	0x0bd0, 0x0bd0,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0be6, 0x0bfa,</div><div class='del'>-	0x0c00, 0x0c0c,</div><div class='del'>-	0x0c0e, 0x0c10,</div><div class='del'>-	0x0c12, 0x0c28,</div><div class='del'>-	0x0c2a, 0x0c39,</div><div class='del'>-	0x0c3d, 0x0c44,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c58, 0x0c5a,</div><div class='del'>-	0x0c60, 0x0c63,</div><div class='del'>-	0x0c66, 0x0c6f,</div><div class='del'>-	0x0c78, 0x0c8c,</div><div class='del'>-	0x0c8e, 0x0c90,</div><div class='del'>-	0x0c92, 0x0ca8,</div><div class='del'>-	0x0caa, 0x0cb3,</div><div class='del'>-	0x0cb5, 0x0cb9,</div><div class='del'>-	0x0cbc, 0x0cc4,</div><div class='del'>-	0x0cc6, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0cde, 0x0cde,</div><div class='del'>-	0x0ce0, 0x0ce3,</div><div class='del'>-	0x0ce6, 0x0cef,</div><div class='del'>-	0x0cf1, 0x0cf2,</div><div class='del'>-	0x0d00, 0x0d03,</div><div class='del'>-	0x0d05, 0x0d0c,</div><div class='del'>-	0x0d0e, 0x0d10,</div><div class='del'>-	0x0d12, 0x0d44,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4f,</div><div class='del'>-	0x0d54, 0x0d63,</div><div class='del'>-	0x0d66, 0x0d7f,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0d85, 0x0d96,</div><div class='del'>-	0x0d9a, 0x0db1,</div><div class='del'>-	0x0db3, 0x0dbb,</div><div class='del'>-	0x0dbd, 0x0dbd,</div><div class='del'>-	0x0dc0, 0x0dc6,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0dd8, 0x0ddf,</div><div class='del'>-	0x0de6, 0x0def,</div><div class='del'>-	0x0df2, 0x0df4,</div><div class='del'>-	0x0e01, 0x0e3a,</div><div class='del'>-	0x0e3f, 0x0e5b,</div><div class='del'>-	0x0e81, 0x0e82,</div><div class='del'>-	0x0e84, 0x0e84,</div><div class='del'>-	0x0e87, 0x0e88,</div><div class='del'>-	0x0e8a, 0x0e8a,</div><div class='del'>-	0x0e8d, 0x0e8d,</div><div class='del'>-	0x0e94, 0x0e97,</div><div class='del'>-	0x0e99, 0x0e9f,</div><div class='del'>-	0x0ea1, 0x0ea3,</div><div class='del'>-	0x0ea5, 0x0ea5,</div><div class='del'>-	0x0ea7, 0x0ea7,</div><div class='del'>-	0x0eaa, 0x0eab,</div><div class='del'>-	0x0ead, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebd,</div><div class='del'>-	0x0ec0, 0x0ec4,</div><div class='del'>-	0x0ec6, 0x0ec6,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0ed0, 0x0ed9,</div><div class='del'>-	0x0edc, 0x0edf,</div><div class='del'>-	0x0f00, 0x0f47,</div><div class='del'>-	0x0f49, 0x0f6c,</div><div class='del'>-	0x0f71, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fbe, 0x0fcc,</div><div class='del'>-	0x0fce, 0x0fda,</div><div class='del'>-	0x1000, 0x10c5,</div><div class='del'>-	0x10c7, 0x10c7,</div><div class='del'>-	0x10cd, 0x10cd,</div><div class='del'>-	0x10d0, 0x1248,</div><div class='del'>-	0x124a, 0x124d,</div><div class='del'>-	0x1250, 0x1256,</div><div class='del'>-	0x1258, 0x1258,</div><div class='del'>-	0x125a, 0x125d,</div><div class='del'>-	0x1260, 0x1288,</div><div class='del'>-	0x128a, 0x128d,</div><div class='del'>-	0x1290, 0x12b0,</div><div class='del'>-	0x12b2, 0x12b5,</div><div class='del'>-	0x12b8, 0x12be,</div><div class='del'>-	0x12c0, 0x12c0,</div><div class='del'>-	0x12c2, 0x12c5,</div><div class='del'>-	0x12c8, 0x12d6,</div><div class='del'>-	0x12d8, 0x1310,</div><div class='del'>-	0x1312, 0x1315,</div><div class='del'>-	0x1318, 0x135a,</div><div class='del'>-	0x135d, 0x137c,</div><div class='del'>-	0x1380, 0x1399,</div><div class='del'>-	0x13a0, 0x13f5,</div><div class='del'>-	0x13f8, 0x13fd,</div><div class='del'>-	0x1400, 0x169c,</div><div class='del'>-	0x16a0, 0x16f8,</div><div class='del'>-	0x1700, 0x170c,</div><div class='del'>-	0x170e, 0x1714,</div><div class='del'>-	0x1720, 0x1736,</div><div class='del'>-	0x1740, 0x1753,</div><div class='del'>-	0x1760, 0x176c,</div><div class='del'>-	0x176e, 0x1770,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x1780, 0x17dd,</div><div class='del'>-	0x17e0, 0x17e9,</div><div class='del'>-	0x17f0, 0x17f9,</div><div class='del'>-	0x1800, 0x180e,</div><div class='del'>-	0x1810, 0x1819,</div><div class='del'>-	0x1820, 0x1878,</div><div class='del'>-	0x1880, 0x18aa,</div><div class='del'>-	0x18b0, 0x18f5,</div><div class='del'>-	0x1900, 0x191e,</div><div class='del'>-	0x1920, 0x192b,</div><div class='del'>-	0x1930, 0x193b,</div><div class='del'>-	0x1940, 0x1940,</div><div class='del'>-	0x1944, 0x196d,</div><div class='del'>-	0x1970, 0x1974,</div><div class='del'>-	0x1980, 0x19ab,</div><div class='del'>-	0x19b0, 0x19c9,</div><div class='del'>-	0x19d0, 0x19da,</div><div class='del'>-	0x19de, 0x1a1b,</div><div class='del'>-	0x1a1e, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a89,</div><div class='del'>-	0x1a90, 0x1a99,</div><div class='del'>-	0x1aa0, 0x1aad,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b4b,</div><div class='del'>-	0x1b50, 0x1b7c,</div><div class='del'>-	0x1b80, 0x1bf3,</div><div class='del'>-	0x1bfc, 0x1c37,</div><div class='del'>-	0x1c3b, 0x1c49,</div><div class='del'>-	0x1c4d, 0x1c88,</div><div class='del'>-	0x1c90, 0x1cba,</div><div class='del'>-	0x1cbd, 0x1cc7,</div><div class='del'>-	0x1cd0, 0x1cf9,</div><div class='del'>-	0x1d00, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1f15,</div><div class='del'>-	0x1f18, 0x1f1d,</div><div class='del'>-	0x1f20, 0x1f45,</div><div class='del'>-	0x1f48, 0x1f4d,</div><div class='del'>-	0x1f50, 0x1f57,</div><div class='del'>-	0x1f59, 0x1f59,</div><div class='del'>-	0x1f5b, 0x1f5b,</div><div class='del'>-	0x1f5d, 0x1f5d,</div><div class='del'>-	0x1f5f, 0x1f7d,</div><div class='del'>-	0x1f80, 0x1fb4,</div><div class='del'>-	0x1fb6, 0x1fc4,</div><div class='del'>-	0x1fc6, 0x1fd3,</div><div class='del'>-	0x1fd6, 0x1fdb,</div><div class='del'>-	0x1fdd, 0x1fef,</div><div class='del'>-	0x1ff2, 0x1ff4,</div><div class='del'>-	0x1ff6, 0x1ffe,</div><div class='del'>-	0x2000, 0x2064,</div><div class='del'>-	0x2066, 0x2071,</div><div class='del'>-	0x2074, 0x208e,</div><div class='del'>-	0x2090, 0x209c,</div><div class='del'>-	0x20a0, 0x20bf,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2100, 0x218b,</div><div class='del'>-	0x2190, 0x2426,</div><div class='del'>-	0x2440, 0x244a,</div><div class='del'>-	0x2460, 0x2b73,</div><div class='del'>-	0x2b76, 0x2b95,</div><div class='del'>-	0x2b98, 0x2bc8,</div><div class='del'>-	0x2bca, 0x2bfe,</div><div class='del'>-	0x2c00, 0x2c2e,</div><div class='del'>-	0x2c30, 0x2c5e,</div><div class='del'>-	0x2c60, 0x2cf3,</div><div class='del'>-	0x2cf9, 0x2d25,</div><div class='del'>-	0x2d27, 0x2d27,</div><div class='del'>-	0x2d2d, 0x2d2d,</div><div class='del'>-	0x2d30, 0x2d67,</div><div class='del'>-	0x2d6f, 0x2d70,</div><div class='del'>-	0x2d7f, 0x2d96,</div><div class='del'>-	0x2da0, 0x2da6,</div><div class='del'>-	0x2da8, 0x2dae,</div><div class='del'>-	0x2db0, 0x2db6,</div><div class='del'>-	0x2db8, 0x2dbe,</div><div class='del'>-	0x2dc0, 0x2dc6,</div><div class='del'>-	0x2dc8, 0x2dce,</div><div class='del'>-	0x2dd0, 0x2dd6,</div><div class='del'>-	0x2dd8, 0x2dde,</div><div class='del'>-	0x2de0, 0x2e4e,</div><div class='del'>-	0x2e80, 0x2e99,</div><div class='del'>-	0x2e9b, 0x2ef3,</div><div class='del'>-	0x2f00, 0x2fd5,</div><div class='del'>-	0x2ff0, 0x2ffb,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-	0x3041, 0x3096,</div><div class='del'>-	0x3099, 0x30ff,</div><div class='del'>-	0x3105, 0x312f,</div><div class='del'>-	0x3131, 0x318e,</div><div class='del'>-	0x3190, 0x31ba,</div><div class='del'>-	0x31c0, 0x31e3,</div><div class='del'>-	0x31f0, 0x321e,</div><div class='del'>-	0x3220, 0x32fe,</div><div class='del'>-	0x3300, 0x4db5,</div><div class='del'>-	0x4dc0, 0x9fef,</div><div class='del'>-	0xa000, 0xa48c,</div><div class='del'>-	0xa490, 0xa4c6,</div><div class='del'>-	0xa4d0, 0xa62b,</div><div class='del'>-	0xa640, 0xa6f7,</div><div class='del'>-	0xa700, 0xa7b9,</div><div class='del'>-	0xa7f7, 0xa82b,</div><div class='del'>-	0xa830, 0xa839,</div><div class='del'>-	0xa840, 0xa877,</div><div class='del'>-	0xa880, 0xa8c5,</div><div class='del'>-	0xa8ce, 0xa8d9,</div><div class='del'>-	0xa8e0, 0xa953,</div><div class='del'>-	0xa95f, 0xa97c,</div><div class='del'>-	0xa980, 0xa9cd,</div><div class='del'>-	0xa9cf, 0xa9d9,</div><div class='del'>-	0xa9de, 0xa9fe,</div><div class='del'>-	0xaa00, 0xaa36,</div><div class='del'>-	0xaa40, 0xaa4d,</div><div class='del'>-	0xaa50, 0xaa59,</div><div class='del'>-	0xaa5c, 0xaac2,</div><div class='del'>-	0xaadb, 0xaaf6,</div><div class='del'>-	0xab01, 0xab06,</div><div class='del'>-	0xab09, 0xab0e,</div><div class='del'>-	0xab11, 0xab16,</div><div class='del'>-	0xab20, 0xab26,</div><div class='del'>-	0xab28, 0xab2e,</div><div class='del'>-	0xab30, 0xab65,</div><div class='del'>-	0xab70, 0xabed,</div><div class='del'>-	0xabf0, 0xabf9,</div><div class='del'>-	0xac00, 0xd7a3,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-	0xd800, 0xfa6d,</div><div class='del'>-	0xfa70, 0xfad9,</div><div class='del'>-	0xfb00, 0xfb06,</div><div class='del'>-	0xfb13, 0xfb17,</div><div class='del'>-	0xfb1d, 0xfb36,</div><div class='del'>-	0xfb38, 0xfb3c,</div><div class='del'>-	0xfb3e, 0xfb3e,</div><div class='del'>-	0xfb40, 0xfb41,</div><div class='del'>-	0xfb43, 0xfb44,</div><div class='del'>-	0xfb46, 0xfbc1,</div><div class='del'>-	0xfbd3, 0xfd3f,</div><div class='del'>-	0xfd50, 0xfd8f,</div><div class='del'>-	0xfd92, 0xfdc7,</div><div class='del'>-	0xfdd0, 0xfdfd,</div><div class='del'>-	0xfe00, 0xfe19,</div><div class='del'>-	0xfe20, 0xfe52,</div><div class='del'>-	0xfe54, 0xfe66,</div><div class='del'>-	0xfe68, 0xfe6b,</div><div class='del'>-	0xfe70, 0xfe74,</div><div class='del'>-	0xfe76, 0xfefc,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xff01, 0xffbe,</div><div class='del'>-	0xffc2, 0xffc7,</div><div class='del'>-	0xffca, 0xffcf,</div><div class='del'>-	0xffd2, 0xffd7,</div><div class='del'>-	0xffda, 0xffdc,</div><div class='del'>-	0xffe0, 0xffe6,</div><div class='del'>-	0xffe8, 0xffee,</div><div class='del'>-	0xfff9, 0x1000b,</div><div class='del'>-	0x1000d, 0x10026,</div><div class='del'>-	0x10028, 0x1003a,</div><div class='del'>-	0x1003c, 0x1003d,</div><div class='del'>-	0x1003f, 0x1004d,</div><div class='del'>-	0x10050, 0x1005d,</div><div class='del'>-	0x10080, 0x100fa,</div><div class='del'>-	0x10100, 0x10102,</div><div class='del'>-	0x10107, 0x10133,</div><div class='del'>-	0x10137, 0x1018e,</div><div class='del'>-	0x10190, 0x1019b,</div><div class='del'>-	0x101a0, 0x101a0,</div><div class='del'>-	0x101d0, 0x101fd,</div><div class='del'>-	0x10280, 0x1029c,</div><div class='del'>-	0x102a0, 0x102d0,</div><div class='del'>-	0x102e0, 0x102fb,</div><div class='del'>-	0x10300, 0x10323,</div><div class='del'>-	0x1032d, 0x1034a,</div><div class='del'>-	0x10350, 0x1037a,</div><div class='del'>-	0x10380, 0x1039d,</div><div class='del'>-	0x1039f, 0x103c3,</div><div class='del'>-	0x103c8, 0x103d5,</div><div class='del'>-	0x10400, 0x1049d,</div><div class='del'>-	0x104a0, 0x104a9,</div><div class='del'>-	0x104b0, 0x104d3,</div><div class='del'>-	0x104d8, 0x104fb,</div><div class='del'>-	0x10500, 0x10527,</div><div class='del'>-	0x10530, 0x10563,</div><div class='del'>-	0x1056f, 0x1056f,</div><div class='del'>-	0x10600, 0x10736,</div><div class='del'>-	0x10740, 0x10755,</div><div class='del'>-	0x10760, 0x10767,</div><div class='del'>-	0x10800, 0x10805,</div><div class='del'>-	0x10808, 0x10808,</div><div class='del'>-	0x1080a, 0x10835,</div><div class='del'>-	0x10837, 0x10838,</div><div class='del'>-	0x1083c, 0x1083c,</div><div class='del'>-	0x1083f, 0x10855,</div><div class='del'>-	0x10857, 0x1089e,</div><div class='del'>-	0x108a7, 0x108af,</div><div class='del'>-	0x108e0, 0x108f2,</div><div class='del'>-	0x108f4, 0x108f5,</div><div class='del'>-	0x108fb, 0x1091b,</div><div class='del'>-	0x1091f, 0x10939,</div><div class='del'>-	0x1093f, 0x1093f,</div><div class='del'>-	0x10980, 0x109b7,</div><div class='del'>-	0x109bc, 0x109cf,</div><div class='del'>-	0x109d2, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a13,</div><div class='del'>-	0x10a15, 0x10a17,</div><div class='del'>-	0x10a19, 0x10a35,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a48,</div><div class='del'>-	0x10a50, 0x10a58,</div><div class='del'>-	0x10a60, 0x10a9f,</div><div class='del'>-	0x10ac0, 0x10ae6,</div><div class='del'>-	0x10aeb, 0x10af6,</div><div class='del'>-	0x10b00, 0x10b35,</div><div class='del'>-	0x10b39, 0x10b55,</div><div class='del'>-	0x10b58, 0x10b72,</div><div class='del'>-	0x10b78, 0x10b91,</div><div class='del'>-	0x10b99, 0x10b9c,</div><div class='del'>-	0x10ba9, 0x10baf,</div><div class='del'>-	0x10c00, 0x10c48,</div><div class='del'>-	0x10c80, 0x10cb2,</div><div class='del'>-	0x10cc0, 0x10cf2,</div><div class='del'>-	0x10cfa, 0x10d27,</div><div class='del'>-	0x10d30, 0x10d39,</div><div class='del'>-	0x10e60, 0x10e7e,</div><div class='del'>-	0x10f00, 0x10f27,</div><div class='del'>-	0x10f30, 0x10f59,</div><div class='del'>-	0x11000, 0x1104d,</div><div class='del'>-	0x11052, 0x1106f,</div><div class='del'>-	0x1107f, 0x110c1,</div><div class='del'>-	0x110cd, 0x110cd,</div><div class='del'>-	0x110d0, 0x110e8,</div><div class='del'>-	0x110f0, 0x110f9,</div><div class='del'>-	0x11100, 0x11134,</div><div class='del'>-	0x11136, 0x11146,</div><div class='del'>-	0x11150, 0x11176,</div><div class='del'>-	0x11180, 0x111cd,</div><div class='del'>-	0x111d0, 0x111df,</div><div class='del'>-	0x111e1, 0x111f4,</div><div class='del'>-	0x11200, 0x11211,</div><div class='del'>-	0x11213, 0x1123e,</div><div class='del'>-	0x11280, 0x11286,</div><div class='del'>-	0x11288, 0x11288,</div><div class='del'>-	0x1128a, 0x1128d,</div><div class='del'>-	0x1128f, 0x1129d,</div><div class='del'>-	0x1129f, 0x112a9,</div><div class='del'>-	0x112b0, 0x112ea,</div><div class='del'>-	0x112f0, 0x112f9,</div><div class='del'>-	0x11300, 0x11303,</div><div class='del'>-	0x11305, 0x1130c,</div><div class='del'>-	0x1130f, 0x11310,</div><div class='del'>-	0x11313, 0x11328,</div><div class='del'>-	0x1132a, 0x11330,</div><div class='del'>-	0x11332, 0x11333,</div><div class='del'>-	0x11335, 0x11339,</div><div class='del'>-	0x1133b, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11350, 0x11350,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x1135d, 0x11363,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11400, 0x11459,</div><div class='del'>-	0x1145b, 0x1145b,</div><div class='del'>-	0x1145d, 0x1145e,</div><div class='del'>-	0x11480, 0x114c7,</div><div class='del'>-	0x114d0, 0x114d9,</div><div class='del'>-	0x11580, 0x115b5,</div><div class='del'>-	0x115b8, 0x115dd,</div><div class='del'>-	0x11600, 0x11644,</div><div class='del'>-	0x11650, 0x11659,</div><div class='del'>-	0x11660, 0x1166c,</div><div class='del'>-	0x11680, 0x116b7,</div><div class='del'>-	0x116c0, 0x116c9,</div><div class='del'>-	0x11700, 0x1171a,</div><div class='del'>-	0x1171d, 0x1172b,</div><div class='del'>-	0x11730, 0x1173f,</div><div class='del'>-	0x11800, 0x1183b,</div><div class='del'>-	0x118a0, 0x118f2,</div><div class='del'>-	0x118ff, 0x118ff,</div><div class='del'>-	0x11a00, 0x11a47,</div><div class='del'>-	0x11a50, 0x11a83,</div><div class='del'>-	0x11a86, 0x11aa2,</div><div class='del'>-	0x11ac0, 0x11af8,</div><div class='del'>-	0x11c00, 0x11c08,</div><div class='del'>-	0x11c0a, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c45,</div><div class='del'>-	0x11c50, 0x11c6c,</div><div class='del'>-	0x11c70, 0x11c8f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11ca9, 0x11cb6,</div><div class='del'>-	0x11d00, 0x11d06,</div><div class='del'>-	0x11d08, 0x11d09,</div><div class='del'>-	0x11d0b, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d47,</div><div class='del'>-	0x11d50, 0x11d59,</div><div class='del'>-	0x11d60, 0x11d65,</div><div class='del'>-	0x11d67, 0x11d68,</div><div class='del'>-	0x11d6a, 0x11d8e,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d93, 0x11d98,</div><div class='del'>-	0x11da0, 0x11da9,</div><div class='del'>-	0x11ee0, 0x11ef8,</div><div class='del'>-	0x12000, 0x12399,</div><div class='del'>-	0x12400, 0x1246e,</div><div class='del'>-	0x12470, 0x12474,</div><div class='del'>-	0x12480, 0x12543,</div><div class='del'>-	0x13000, 0x1342e,</div><div class='del'>-	0x14400, 0x14646,</div><div class='del'>-	0x16800, 0x16a38,</div><div class='del'>-	0x16a40, 0x16a5e,</div><div class='del'>-	0x16a60, 0x16a69,</div><div class='del'>-	0x16a6e, 0x16a6f,</div><div class='del'>-	0x16ad0, 0x16aed,</div><div class='del'>-	0x16af0, 0x16af5,</div><div class='del'>-	0x16b00, 0x16b45,</div><div class='del'>-	0x16b50, 0x16b59,</div><div class='del'>-	0x16b5b, 0x16b61,</div><div class='del'>-	0x16b63, 0x16b77,</div><div class='del'>-	0x16b7d, 0x16b8f,</div><div class='del'>-	0x16e40, 0x16e9a,</div><div class='del'>-	0x16f00, 0x16f44,</div><div class='del'>-	0x16f50, 0x16f7e,</div><div class='del'>-	0x16f8f, 0x16f9f,</div><div class='del'>-	0x16fe0, 0x16fe1,</div><div class='del'>-	0x17000, 0x187f1,</div><div class='del'>-	0x18800, 0x18af2,</div><div class='del'>-	0x1b000, 0x1b11e,</div><div class='del'>-	0x1b170, 0x1b2fb,</div><div class='del'>-	0x1bc00, 0x1bc6a,</div><div class='del'>-	0x1bc70, 0x1bc7c,</div><div class='del'>-	0x1bc80, 0x1bc88,</div><div class='del'>-	0x1bc90, 0x1bc99,</div><div class='del'>-	0x1bc9c, 0x1bca3,</div><div class='del'>-	0x1d000, 0x1d0f5,</div><div class='del'>-	0x1d100, 0x1d126,</div><div class='del'>-	0x1d129, 0x1d1e8,</div><div class='del'>-	0x1d200, 0x1d245,</div><div class='del'>-	0x1d2e0, 0x1d2f3,</div><div class='del'>-	0x1d300, 0x1d356,</div><div class='del'>-	0x1d360, 0x1d378,</div><div class='del'>-	0x1d400, 0x1d454,</div><div class='del'>-	0x1d456, 0x1d49c,</div><div class='del'>-	0x1d49e, 0x1d49f,</div><div class='del'>-	0x1d4a2, 0x1d4a2,</div><div class='del'>-	0x1d4a5, 0x1d4a6,</div><div class='del'>-	0x1d4a9, 0x1d4ac,</div><div class='del'>-	0x1d4ae, 0x1d4b9,</div><div class='del'>-	0x1d4bb, 0x1d4bb,</div><div class='del'>-	0x1d4bd, 0x1d4c3,</div><div class='del'>-	0x1d4c5, 0x1d505,</div><div class='del'>-	0x1d507, 0x1d50a,</div><div class='del'>-	0x1d50d, 0x1d514,</div><div class='del'>-	0x1d516, 0x1d51c,</div><div class='del'>-	0x1d51e, 0x1d539,</div><div class='del'>-	0x1d53b, 0x1d53e,</div><div class='del'>-	0x1d540, 0x1d544,</div><div class='del'>-	0x1d546, 0x1d546,</div><div class='del'>-	0x1d54a, 0x1d550,</div><div class='del'>-	0x1d552, 0x1d6a5,</div><div class='del'>-	0x1d6a8, 0x1d7cb,</div><div class='del'>-	0x1d7ce, 0x1da8b,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e800, 0x1e8c4,</div><div class='del'>-	0x1e8c7, 0x1e8d6,</div><div class='del'>-	0x1e900, 0x1e94a,</div><div class='del'>-	0x1e950, 0x1e959,</div><div class='del'>-	0x1e95e, 0x1e95f,</div><div class='del'>-	0x1ec71, 0x1ecb4,</div><div class='del'>-	0x1ee00, 0x1ee03,</div><div class='del'>-	0x1ee05, 0x1ee1f,</div><div class='del'>-	0x1ee21, 0x1ee22,</div><div class='del'>-	0x1ee24, 0x1ee24,</div><div class='del'>-	0x1ee27, 0x1ee27,</div><div class='del'>-	0x1ee29, 0x1ee32,</div><div class='del'>-	0x1ee34, 0x1ee37,</div><div class='del'>-	0x1ee39, 0x1ee39,</div><div class='del'>-	0x1ee3b, 0x1ee3b,</div><div class='del'>-	0x1ee42, 0x1ee42,</div><div class='del'>-	0x1ee47, 0x1ee47,</div><div class='del'>-	0x1ee49, 0x1ee49,</div><div class='del'>-	0x1ee4b, 0x1ee4b,</div><div class='del'>-	0x1ee4d, 0x1ee4f,</div><div class='del'>-	0x1ee51, 0x1ee52,</div><div class='del'>-	0x1ee54, 0x1ee54,</div><div class='del'>-	0x1ee57, 0x1ee57,</div><div class='del'>-	0x1ee59, 0x1ee59,</div><div class='del'>-	0x1ee5b, 0x1ee5b,</div><div class='del'>-	0x1ee5d, 0x1ee5d,</div><div class='del'>-	0x1ee5f, 0x1ee5f,</div><div class='del'>-	0x1ee61, 0x1ee62,</div><div class='del'>-	0x1ee64, 0x1ee64,</div><div class='del'>-	0x1ee67, 0x1ee6a,</div><div class='del'>-	0x1ee6c, 0x1ee72,</div><div class='del'>-	0x1ee74, 0x1ee77,</div><div class='del'>-	0x1ee79, 0x1ee7c,</div><div class='del'>-	0x1ee7e, 0x1ee7e,</div><div class='del'>-	0x1ee80, 0x1ee89,</div><div class='del'>-	0x1ee8b, 0x1ee9b,</div><div class='del'>-	0x1eea1, 0x1eea3,</div><div class='del'>-	0x1eea5, 0x1eea9,</div><div class='del'>-	0x1eeab, 0x1eebb,</div><div class='del'>-	0x1eef0, 0x1eef1,</div><div class='del'>-	0x1f000, 0x1f02b,</div><div class='del'>-	0x1f030, 0x1f093,</div><div class='del'>-	0x1f0a0, 0x1f0ae,</div><div class='del'>-	0x1f0b1, 0x1f0bf,</div><div class='del'>-	0x1f0c1, 0x1f0cf,</div><div class='del'>-	0x1f0d1, 0x1f0f5,</div><div class='del'>-	0x1f100, 0x1f10c,</div><div class='del'>-	0x1f110, 0x1f16b,</div><div class='del'>-	0x1f170, 0x1f1ac,</div><div class='del'>-	0x1f1e6, 0x1f202,</div><div class='del'>-	0x1f210, 0x1f23b,</div><div class='del'>-	0x1f240, 0x1f248,</div><div class='del'>-	0x1f250, 0x1f251,</div><div class='del'>-	0x1f260, 0x1f265,</div><div class='del'>-	0x1f300, 0x1f6d4,</div><div class='del'>-	0x1f6e0, 0x1f6ec,</div><div class='del'>-	0x1f6f0, 0x1f6f9,</div><div class='del'>-	0x1f700, 0x1f773,</div><div class='del'>-	0x1f780, 0x1f7d8,</div><div class='del'>-	0x1f800, 0x1f80b,</div><div class='del'>-	0x1f810, 0x1f847,</div><div class='del'>-	0x1f850, 0x1f859,</div><div class='del'>-	0x1f860, 0x1f887,</div><div class='del'>-	0x1f890, 0x1f8ad,</div><div class='del'>-	0x1f900, 0x1f90b,</div><div class='del'>-	0x1f910, 0x1f93e,</div><div class='del'>-	0x1f940, 0x1f970,</div><div class='del'>-	0x1f973, 0x1f976,</div><div class='del'>-	0x1f97a, 0x1f97a,</div><div class='del'>-	0x1f97c, 0x1f9a2,</div><div class='del'>-	0x1f9b0, 0x1f9b9,</div><div class='del'>-	0x1f9c0, 0x1f9c2,</div><div class='del'>-	0x1f9d0, 0x1f9ff,</div><div class='del'>-	0x1fa60, 0x1fa6d,</div><div class='del'>-	0x1fffe, 0x2a6d6,</div><div class='del'>-	0x2a700, 0x2b734,</div><div class='del'>-	0x2b740, 0x2b81d,</div><div class='del'>-	0x2b820, 0x2cea1,</div><div class='del'>-	0x2ceb0, 0x2ebe0,</div><div class='del'>-	0x2f800, 0x2fa1d,</div><div class='del'>-	0x2fffe, 0x2ffff,</div><div class='del'>-	0x3fffe, 0x3ffff,</div><div class='del'>-	0x4fffe, 0x4ffff,</div><div class='del'>-	0x5fffe, 0x5ffff,</div><div class='del'>-	0x6fffe, 0x6ffff,</div><div class='del'>-	0x7fffe, 0x7ffff,</div><div class='del'>-	0x8fffe, 0x8ffff,</div><div class='del'>-	0x9fffe, 0x9ffff,</div><div class='del'>-	0xafffe, 0xaffff,</div><div class='del'>-	0xbfffe, 0xbffff,</div><div class='del'>-	0xcfffe, 0xcffff,</div><div class='del'>-	0xdfffe, 0xdffff,</div><div class='del'>-	0xe0001, 0xe0001,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-	0xefffe, 0x10ffff,</div><div class='del'>-}; /* CR_Age_11_0 */</div><div class='del'>-</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-/* 'Grapheme_Cluster_Break_Prepend': Grapheme_Cluster_Break=Prepend */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Cluster_Break_Prepend[] = {</div><div class='del'>-	11,</div><div class='del'>-	0x0600, 0x0605,</div><div class='del'>-	0x06dd, 0x06dd,</div><div class='del'>-	0x070f, 0x070f,</div><div class='del'>-	0x08e2, 0x08e2,</div><div class='del'>-	0x0d4e, 0x0d4e,</div><div class='del'>-	0x110bd, 0x110bd,</div><div class='del'>-	0x110cd, 0x110cd,</div><div class='del'>-	0x111c2, 0x111c3,</div><div class='del'>-	0x11a3a, 0x11a3a,</div><div class='del'>-	0x11a86, 0x11a89,</div><div class='del'>-	0x11d46, 0x11d46,</div><div class='del'>-}; /* CR_Grapheme_Cluster_Break_Prepend */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_CR': Grapheme_Cluster_Break=CR */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Cluster_Break_CR[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x000d, 0x000d,</div><div class='del'>-}; /* CR_Grapheme_Cluster_Break_CR */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_LF': Grapheme_Cluster_Break=LF */</div><div class='del'>-#define CR_Grapheme_Cluster_Break_LF CR_NEWLINE</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_Control': Grapheme_Cluster_Break=Control */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Cluster_Break_Control[] = {</div><div class='del'>-	19,</div><div class='del'>-	0x0000, 0x0009,</div><div class='del'>-	0x000b, 0x000c,</div><div class='del'>-	0x000e, 0x001f,</div><div class='del'>-	0x007f, 0x009f,</div><div class='del'>-	0x00ad, 0x00ad,</div><div class='del'>-	0x061c, 0x061c,</div><div class='del'>-	0x180e, 0x180e,</div><div class='del'>-	0x200b, 0x200b,</div><div class='del'>-	0x200e, 0x200f,</div><div class='del'>-	0x2028, 0x202e,</div><div class='del'>-	0x2060, 0x206f,</div><div class='del'>-	0xd800, 0xdfff,</div><div class='del'>-	0xfeff, 0xfeff,</div><div class='del'>-	0xfff0, 0xfffb,</div><div class='del'>-	0x1bca0, 0x1bca3,</div><div class='del'>-	0x1d173, 0x1d17a,</div><div class='del'>-	0xe0000, 0xe001f,</div><div class='del'>-	0xe0080, 0xe00ff,</div><div class='del'>-	0xe01f0, 0xe0fff,</div><div class='del'>-}; /* CR_Grapheme_Cluster_Break_Control */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_Extend': Grapheme_Cluster_Break=Extend */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Cluster_Break_Extend[] = {</div><div class='del'>-	332,</div><div class='del'>-	0x0300, 0x036f,</div><div class='del'>-	0x0483, 0x0489,</div><div class='del'>-	0x0591, 0x05bd,</div><div class='del'>-	0x05bf, 0x05bf,</div><div class='del'>-	0x05c1, 0x05c2,</div><div class='del'>-	0x05c4, 0x05c5,</div><div class='del'>-	0x05c7, 0x05c7,</div><div class='del'>-	0x0610, 0x061a,</div><div class='del'>-	0x064b, 0x065f,</div><div class='del'>-	0x0670, 0x0670,</div><div class='del'>-	0x06d6, 0x06dc,</div><div class='del'>-	0x06df, 0x06e4,</div><div class='del'>-	0x06e7, 0x06e8,</div><div class='del'>-	0x06ea, 0x06ed,</div><div class='del'>-	0x0711, 0x0711,</div><div class='del'>-	0x0730, 0x074a,</div><div class='del'>-	0x07a6, 0x07b0,</div><div class='del'>-	0x07eb, 0x07f3,</div><div class='del'>-	0x07fd, 0x07fd,</div><div class='del'>-	0x0816, 0x0819,</div><div class='del'>-	0x081b, 0x0823,</div><div class='del'>-	0x0825, 0x0827,</div><div class='del'>-	0x0829, 0x082d,</div><div class='del'>-	0x0859, 0x085b,</div><div class='del'>-	0x08d3, 0x08e1,</div><div class='del'>-	0x08e3, 0x0902,</div><div class='del'>-	0x093a, 0x093a,</div><div class='del'>-	0x093c, 0x093c,</div><div class='del'>-	0x0941, 0x0948,</div><div class='del'>-	0x094d, 0x094d,</div><div class='del'>-	0x0951, 0x0957,</div><div class='del'>-	0x0962, 0x0963,</div><div class='del'>-	0x0981, 0x0981,</div><div class='del'>-	0x09bc, 0x09bc,</div><div class='del'>-	0x09be, 0x09be,</div><div class='del'>-	0x09c1, 0x09c4,</div><div class='del'>-	0x09cd, 0x09cd,</div><div class='del'>-	0x09d7, 0x09d7,</div><div class='del'>-	0x09e2, 0x09e3,</div><div class='del'>-	0x09fe, 0x09fe,</div><div class='del'>-	0x0a01, 0x0a02,</div><div class='del'>-	0x0a3c, 0x0a3c,</div><div class='del'>-	0x0a41, 0x0a42,</div><div class='del'>-	0x0a47, 0x0a48,</div><div class='del'>-	0x0a4b, 0x0a4d,</div><div class='del'>-	0x0a51, 0x0a51,</div><div class='del'>-	0x0a70, 0x0a71,</div><div class='del'>-	0x0a75, 0x0a75,</div><div class='del'>-	0x0a81, 0x0a82,</div><div class='del'>-	0x0abc, 0x0abc,</div><div class='del'>-	0x0ac1, 0x0ac5,</div><div class='del'>-	0x0ac7, 0x0ac8,</div><div class='del'>-	0x0acd, 0x0acd,</div><div class='del'>-	0x0ae2, 0x0ae3,</div><div class='del'>-	0x0afa, 0x0aff,</div><div class='del'>-	0x0b01, 0x0b01,</div><div class='del'>-	0x0b3c, 0x0b3c,</div><div class='del'>-	0x0b3e, 0x0b3f,</div><div class='del'>-	0x0b41, 0x0b44,</div><div class='del'>-	0x0b4d, 0x0b4d,</div><div class='del'>-	0x0b56, 0x0b57,</div><div class='del'>-	0x0b62, 0x0b63,</div><div class='del'>-	0x0b82, 0x0b82,</div><div class='del'>-	0x0bbe, 0x0bbe,</div><div class='del'>-	0x0bc0, 0x0bc0,</div><div class='del'>-	0x0bcd, 0x0bcd,</div><div class='del'>-	0x0bd7, 0x0bd7,</div><div class='del'>-	0x0c00, 0x0c00,</div><div class='del'>-	0x0c04, 0x0c04,</div><div class='del'>-	0x0c3e, 0x0c40,</div><div class='del'>-	0x0c46, 0x0c48,</div><div class='del'>-	0x0c4a, 0x0c4d,</div><div class='del'>-	0x0c55, 0x0c56,</div><div class='del'>-	0x0c62, 0x0c63,</div><div class='del'>-	0x0c81, 0x0c81,</div><div class='del'>-	0x0cbc, 0x0cbc,</div><div class='del'>-	0x0cbf, 0x0cbf,</div><div class='del'>-	0x0cc2, 0x0cc2,</div><div class='del'>-	0x0cc6, 0x0cc6,</div><div class='del'>-	0x0ccc, 0x0ccd,</div><div class='del'>-	0x0cd5, 0x0cd6,</div><div class='del'>-	0x0ce2, 0x0ce3,</div><div class='del'>-	0x0d00, 0x0d01,</div><div class='del'>-	0x0d3b, 0x0d3c,</div><div class='del'>-	0x0d3e, 0x0d3e,</div><div class='del'>-	0x0d41, 0x0d44,</div><div class='del'>-	0x0d4d, 0x0d4d,</div><div class='del'>-	0x0d57, 0x0d57,</div><div class='del'>-	0x0d62, 0x0d63,</div><div class='del'>-	0x0dca, 0x0dca,</div><div class='del'>-	0x0dcf, 0x0dcf,</div><div class='del'>-	0x0dd2, 0x0dd4,</div><div class='del'>-	0x0dd6, 0x0dd6,</div><div class='del'>-	0x0ddf, 0x0ddf,</div><div class='del'>-	0x0e31, 0x0e31,</div><div class='del'>-	0x0e34, 0x0e3a,</div><div class='del'>-	0x0e47, 0x0e4e,</div><div class='del'>-	0x0eb1, 0x0eb1,</div><div class='del'>-	0x0eb4, 0x0eb9,</div><div class='del'>-	0x0ebb, 0x0ebc,</div><div class='del'>-	0x0ec8, 0x0ecd,</div><div class='del'>-	0x0f18, 0x0f19,</div><div class='del'>-	0x0f35, 0x0f35,</div><div class='del'>-	0x0f37, 0x0f37,</div><div class='del'>-	0x0f39, 0x0f39,</div><div class='del'>-	0x0f71, 0x0f7e,</div><div class='del'>-	0x0f80, 0x0f84,</div><div class='del'>-	0x0f86, 0x0f87,</div><div class='del'>-	0x0f8d, 0x0f97,</div><div class='del'>-	0x0f99, 0x0fbc,</div><div class='del'>-	0x0fc6, 0x0fc6,</div><div class='del'>-	0x102d, 0x1030,</div><div class='del'>-	0x1032, 0x1037,</div><div class='del'>-	0x1039, 0x103a,</div><div class='del'>-	0x103d, 0x103e,</div><div class='del'>-	0x1058, 0x1059,</div><div class='del'>-	0x105e, 0x1060,</div><div class='del'>-	0x1071, 0x1074,</div><div class='del'>-	0x1082, 0x1082,</div><div class='del'>-	0x1085, 0x1086,</div><div class='del'>-	0x108d, 0x108d,</div><div class='del'>-	0x109d, 0x109d,</div><div class='del'>-	0x135d, 0x135f,</div><div class='del'>-	0x1712, 0x1714,</div><div class='del'>-	0x1732, 0x1734,</div><div class='del'>-	0x1752, 0x1753,</div><div class='del'>-	0x1772, 0x1773,</div><div class='del'>-	0x17b4, 0x17b5,</div><div class='del'>-	0x17b7, 0x17bd,</div><div class='del'>-	0x17c6, 0x17c6,</div><div class='del'>-	0x17c9, 0x17d3,</div><div class='del'>-	0x17dd, 0x17dd,</div><div class='del'>-	0x180b, 0x180d,</div><div class='del'>-	0x1885, 0x1886,</div><div class='del'>-	0x18a9, 0x18a9,</div><div class='del'>-	0x1920, 0x1922,</div><div class='del'>-	0x1927, 0x1928,</div><div class='del'>-	0x1932, 0x1932,</div><div class='del'>-	0x1939, 0x193b,</div><div class='del'>-	0x1a17, 0x1a18,</div><div class='del'>-	0x1a1b, 0x1a1b,</div><div class='del'>-	0x1a56, 0x1a56,</div><div class='del'>-	0x1a58, 0x1a5e,</div><div class='del'>-	0x1a60, 0x1a60,</div><div class='del'>-	0x1a62, 0x1a62,</div><div class='del'>-	0x1a65, 0x1a6c,</div><div class='del'>-	0x1a73, 0x1a7c,</div><div class='del'>-	0x1a7f, 0x1a7f,</div><div class='del'>-	0x1ab0, 0x1abe,</div><div class='del'>-	0x1b00, 0x1b03,</div><div class='del'>-	0x1b34, 0x1b34,</div><div class='del'>-	0x1b36, 0x1b3a,</div><div class='del'>-	0x1b3c, 0x1b3c,</div><div class='del'>-	0x1b42, 0x1b42,</div><div class='del'>-	0x1b6b, 0x1b73,</div><div class='del'>-	0x1b80, 0x1b81,</div><div class='del'>-	0x1ba2, 0x1ba5,</div><div class='del'>-	0x1ba8, 0x1ba9,</div><div class='del'>-	0x1bab, 0x1bad,</div><div class='del'>-	0x1be6, 0x1be6,</div><div class='del'>-	0x1be8, 0x1be9,</div><div class='del'>-	0x1bed, 0x1bed,</div><div class='del'>-	0x1bef, 0x1bf1,</div><div class='del'>-	0x1c2c, 0x1c33,</div><div class='del'>-	0x1c36, 0x1c37,</div><div class='del'>-	0x1cd0, 0x1cd2,</div><div class='del'>-	0x1cd4, 0x1ce0,</div><div class='del'>-	0x1ce2, 0x1ce8,</div><div class='del'>-	0x1ced, 0x1ced,</div><div class='del'>-	0x1cf4, 0x1cf4,</div><div class='del'>-	0x1cf8, 0x1cf9,</div><div class='del'>-	0x1dc0, 0x1df9,</div><div class='del'>-	0x1dfb, 0x1dff,</div><div class='del'>-	0x200c, 0x200c,</div><div class='del'>-	0x20d0, 0x20f0,</div><div class='del'>-	0x2cef, 0x2cf1,</div><div class='del'>-	0x2d7f, 0x2d7f,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-	0x302a, 0x302f,</div><div class='del'>-	0x3099, 0x309a,</div><div class='del'>-	0xa66f, 0xa672,</div><div class='del'>-	0xa674, 0xa67d,</div><div class='del'>-	0xa69e, 0xa69f,</div><div class='del'>-	0xa6f0, 0xa6f1,</div><div class='del'>-	0xa802, 0xa802,</div><div class='del'>-	0xa806, 0xa806,</div><div class='del'>-	0xa80b, 0xa80b,</div><div class='del'>-	0xa825, 0xa826,</div><div class='del'>-	0xa8c4, 0xa8c5,</div><div class='del'>-	0xa8e0, 0xa8f1,</div><div class='del'>-	0xa8ff, 0xa8ff,</div><div class='del'>-	0xa926, 0xa92d,</div><div class='del'>-	0xa947, 0xa951,</div><div class='del'>-	0xa980, 0xa982,</div><div class='del'>-	0xa9b3, 0xa9b3,</div><div class='del'>-	0xa9b6, 0xa9b9,</div><div class='del'>-	0xa9bc, 0xa9bc,</div><div class='del'>-	0xa9e5, 0xa9e5,</div><div class='del'>-	0xaa29, 0xaa2e,</div><div class='del'>-	0xaa31, 0xaa32,</div><div class='del'>-	0xaa35, 0xaa36,</div><div class='del'>-	0xaa43, 0xaa43,</div><div class='del'>-	0xaa4c, 0xaa4c,</div><div class='del'>-	0xaa7c, 0xaa7c,</div><div class='del'>-	0xaab0, 0xaab0,</div><div class='del'>-	0xaab2, 0xaab4,</div><div class='del'>-	0xaab7, 0xaab8,</div><div class='del'>-	0xaabe, 0xaabf,</div><div class='del'>-	0xaac1, 0xaac1,</div><div class='del'>-	0xaaec, 0xaaed,</div><div class='del'>-	0xaaf6, 0xaaf6,</div><div class='del'>-	0xabe5, 0xabe5,</div><div class='del'>-	0xabe8, 0xabe8,</div><div class='del'>-	0xabed, 0xabed,</div><div class='del'>-	0xfb1e, 0xfb1e,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-	0xfe20, 0xfe2f,</div><div class='del'>-	0xff9e, 0xff9f,</div><div class='del'>-	0x101fd, 0x101fd,</div><div class='del'>-	0x102e0, 0x102e0,</div><div class='del'>-	0x10376, 0x1037a,</div><div class='del'>-	0x10a01, 0x10a03,</div><div class='del'>-	0x10a05, 0x10a06,</div><div class='del'>-	0x10a0c, 0x10a0f,</div><div class='del'>-	0x10a38, 0x10a3a,</div><div class='del'>-	0x10a3f, 0x10a3f,</div><div class='del'>-	0x10ae5, 0x10ae6,</div><div class='del'>-	0x10d24, 0x10d27,</div><div class='del'>-	0x10f46, 0x10f50,</div><div class='del'>-	0x11001, 0x11001,</div><div class='del'>-	0x11038, 0x11046,</div><div class='del'>-	0x1107f, 0x11081,</div><div class='del'>-	0x110b3, 0x110b6,</div><div class='del'>-	0x110b9, 0x110ba,</div><div class='del'>-	0x11100, 0x11102,</div><div class='del'>-	0x11127, 0x1112b,</div><div class='del'>-	0x1112d, 0x11134,</div><div class='del'>-	0x11173, 0x11173,</div><div class='del'>-	0x11180, 0x11181,</div><div class='del'>-	0x111b6, 0x111be,</div><div class='del'>-	0x111c9, 0x111cc,</div><div class='del'>-	0x1122f, 0x11231,</div><div class='del'>-	0x11234, 0x11234,</div><div class='del'>-	0x11236, 0x11237,</div><div class='del'>-	0x1123e, 0x1123e,</div><div class='del'>-	0x112df, 0x112df,</div><div class='del'>-	0x112e3, 0x112ea,</div><div class='del'>-	0x11300, 0x11301,</div><div class='del'>-	0x1133b, 0x1133c,</div><div class='del'>-	0x1133e, 0x1133e,</div><div class='del'>-	0x11340, 0x11340,</div><div class='del'>-	0x11357, 0x11357,</div><div class='del'>-	0x11366, 0x1136c,</div><div class='del'>-	0x11370, 0x11374,</div><div class='del'>-	0x11438, 0x1143f,</div><div class='del'>-	0x11442, 0x11444,</div><div class='del'>-	0x11446, 0x11446,</div><div class='del'>-	0x1145e, 0x1145e,</div><div class='del'>-	0x114b0, 0x114b0,</div><div class='del'>-	0x114b3, 0x114b8,</div><div class='del'>-	0x114ba, 0x114ba,</div><div class='del'>-	0x114bd, 0x114bd,</div><div class='del'>-	0x114bf, 0x114c0,</div><div class='del'>-	0x114c2, 0x114c3,</div><div class='del'>-	0x115af, 0x115af,</div><div class='del'>-	0x115b2, 0x115b5,</div><div class='del'>-	0x115bc, 0x115bd,</div><div class='del'>-	0x115bf, 0x115c0,</div><div class='del'>-	0x115dc, 0x115dd,</div><div class='del'>-	0x11633, 0x1163a,</div><div class='del'>-	0x1163d, 0x1163d,</div><div class='del'>-	0x1163f, 0x11640,</div><div class='del'>-	0x116ab, 0x116ab,</div><div class='del'>-	0x116ad, 0x116ad,</div><div class='del'>-	0x116b0, 0x116b5,</div><div class='del'>-	0x116b7, 0x116b7,</div><div class='del'>-	0x1171d, 0x1171f,</div><div class='del'>-	0x11722, 0x11725,</div><div class='del'>-	0x11727, 0x1172b,</div><div class='del'>-	0x1182f, 0x11837,</div><div class='del'>-	0x11839, 0x1183a,</div><div class='del'>-	0x11a01, 0x11a0a,</div><div class='del'>-	0x11a33, 0x11a38,</div><div class='del'>-	0x11a3b, 0x11a3e,</div><div class='del'>-	0x11a47, 0x11a47,</div><div class='del'>-	0x11a51, 0x11a56,</div><div class='del'>-	0x11a59, 0x11a5b,</div><div class='del'>-	0x11a8a, 0x11a96,</div><div class='del'>-	0x11a98, 0x11a99,</div><div class='del'>-	0x11c30, 0x11c36,</div><div class='del'>-	0x11c38, 0x11c3d,</div><div class='del'>-	0x11c3f, 0x11c3f,</div><div class='del'>-	0x11c92, 0x11ca7,</div><div class='del'>-	0x11caa, 0x11cb0,</div><div class='del'>-	0x11cb2, 0x11cb3,</div><div class='del'>-	0x11cb5, 0x11cb6,</div><div class='del'>-	0x11d31, 0x11d36,</div><div class='del'>-	0x11d3a, 0x11d3a,</div><div class='del'>-	0x11d3c, 0x11d3d,</div><div class='del'>-	0x11d3f, 0x11d45,</div><div class='del'>-	0x11d47, 0x11d47,</div><div class='del'>-	0x11d90, 0x11d91,</div><div class='del'>-	0x11d95, 0x11d95,</div><div class='del'>-	0x11d97, 0x11d97,</div><div class='del'>-	0x11ef3, 0x11ef4,</div><div class='del'>-	0x16af0, 0x16af4,</div><div class='del'>-	0x16b30, 0x16b36,</div><div class='del'>-	0x16f8f, 0x16f92,</div><div class='del'>-	0x1bc9d, 0x1bc9e,</div><div class='del'>-	0x1d165, 0x1d165,</div><div class='del'>-	0x1d167, 0x1d169,</div><div class='del'>-	0x1d16e, 0x1d172,</div><div class='del'>-	0x1d17b, 0x1d182,</div><div class='del'>-	0x1d185, 0x1d18b,</div><div class='del'>-	0x1d1aa, 0x1d1ad,</div><div class='del'>-	0x1d242, 0x1d244,</div><div class='del'>-	0x1da00, 0x1da36,</div><div class='del'>-	0x1da3b, 0x1da6c,</div><div class='del'>-	0x1da75, 0x1da75,</div><div class='del'>-	0x1da84, 0x1da84,</div><div class='del'>-	0x1da9b, 0x1da9f,</div><div class='del'>-	0x1daa1, 0x1daaf,</div><div class='del'>-	0x1e000, 0x1e006,</div><div class='del'>-	0x1e008, 0x1e018,</div><div class='del'>-	0x1e01b, 0x1e021,</div><div class='del'>-	0x1e023, 0x1e024,</div><div class='del'>-	0x1e026, 0x1e02a,</div><div class='del'>-	0x1e8d0, 0x1e8d6,</div><div class='del'>-	0x1e944, 0x1e94a,</div><div class='del'>-	0x1f3fb, 0x1f3ff,</div><div class='del'>-	0xe0020, 0xe007f,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-}; /* CR_Grapheme_Cluster_Break_Extend */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_Regional_Indicator': Grapheme_Cluster_Break=Regional_Indicator */</div><div class='del'>-#define CR_Grapheme_Cluster_Break_Regional_Indicator CR_Regional_Indicator</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_SpacingMark': Grapheme_Cluster_Break=SpacingMark */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Cluster_Break_SpacingMark[] = {</div><div class='del'>-	151,</div><div class='del'>-	0x0903, 0x0903,</div><div class='del'>-	0x093b, 0x093b,</div><div class='del'>-	0x093e, 0x0940,</div><div class='del'>-	0x0949, 0x094c,</div><div class='del'>-	0x094e, 0x094f,</div><div class='del'>-	0x0982, 0x0983,</div><div class='del'>-	0x09bf, 0x09c0,</div><div class='del'>-	0x09c7, 0x09c8,</div><div class='del'>-	0x09cb, 0x09cc,</div><div class='del'>-	0x0a03, 0x0a03,</div><div class='del'>-	0x0a3e, 0x0a40,</div><div class='del'>-	0x0a83, 0x0a83,</div><div class='del'>-	0x0abe, 0x0ac0,</div><div class='del'>-	0x0ac9, 0x0ac9,</div><div class='del'>-	0x0acb, 0x0acc,</div><div class='del'>-	0x0b02, 0x0b03,</div><div class='del'>-	0x0b40, 0x0b40,</div><div class='del'>-	0x0b47, 0x0b48,</div><div class='del'>-	0x0b4b, 0x0b4c,</div><div class='del'>-	0x0bbf, 0x0bbf,</div><div class='del'>-	0x0bc1, 0x0bc2,</div><div class='del'>-	0x0bc6, 0x0bc8,</div><div class='del'>-	0x0bca, 0x0bcc,</div><div class='del'>-	0x0c01, 0x0c03,</div><div class='del'>-	0x0c41, 0x0c44,</div><div class='del'>-	0x0c82, 0x0c83,</div><div class='del'>-	0x0cbe, 0x0cbe,</div><div class='del'>-	0x0cc0, 0x0cc1,</div><div class='del'>-	0x0cc3, 0x0cc4,</div><div class='del'>-	0x0cc7, 0x0cc8,</div><div class='del'>-	0x0cca, 0x0ccb,</div><div class='del'>-	0x0d02, 0x0d03,</div><div class='del'>-	0x0d3f, 0x0d40,</div><div class='del'>-	0x0d46, 0x0d48,</div><div class='del'>-	0x0d4a, 0x0d4c,</div><div class='del'>-	0x0d82, 0x0d83,</div><div class='del'>-	0x0dd0, 0x0dd1,</div><div class='del'>-	0x0dd8, 0x0dde,</div><div class='del'>-	0x0df2, 0x0df3,</div><div class='del'>-	0x0e33, 0x0e33,</div><div class='del'>-	0x0eb3, 0x0eb3,</div><div class='del'>-	0x0f3e, 0x0f3f,</div><div class='del'>-	0x0f7f, 0x0f7f,</div><div class='del'>-	0x1031, 0x1031,</div><div class='del'>-	0x103b, 0x103c,</div><div class='del'>-	0x1056, 0x1057,</div><div class='del'>-	0x1084, 0x1084,</div><div class='del'>-	0x17b6, 0x17b6,</div><div class='del'>-	0x17be, 0x17c5,</div><div class='del'>-	0x17c7, 0x17c8,</div><div class='del'>-	0x1923, 0x1926,</div><div class='del'>-	0x1929, 0x192b,</div><div class='del'>-	0x1930, 0x1931,</div><div class='del'>-	0x1933, 0x1938,</div><div class='del'>-	0x1a19, 0x1a1a,</div><div class='del'>-	0x1a55, 0x1a55,</div><div class='del'>-	0x1a57, 0x1a57,</div><div class='del'>-	0x1a6d, 0x1a72,</div><div class='del'>-	0x1b04, 0x1b04,</div><div class='del'>-	0x1b35, 0x1b35,</div><div class='del'>-	0x1b3b, 0x1b3b,</div><div class='del'>-	0x1b3d, 0x1b41,</div><div class='del'>-	0x1b43, 0x1b44,</div><div class='del'>-	0x1b82, 0x1b82,</div><div class='del'>-	0x1ba1, 0x1ba1,</div><div class='del'>-	0x1ba6, 0x1ba7,</div><div class='del'>-	0x1baa, 0x1baa,</div><div class='del'>-	0x1be7, 0x1be7,</div><div class='del'>-	0x1bea, 0x1bec,</div><div class='del'>-	0x1bee, 0x1bee,</div><div class='del'>-	0x1bf2, 0x1bf3,</div><div class='del'>-	0x1c24, 0x1c2b,</div><div class='del'>-	0x1c34, 0x1c35,</div><div class='del'>-	0x1ce1, 0x1ce1,</div><div class='del'>-	0x1cf2, 0x1cf3,</div><div class='del'>-	0x1cf7, 0x1cf7,</div><div class='del'>-	0xa823, 0xa824,</div><div class='del'>-	0xa827, 0xa827,</div><div class='del'>-	0xa880, 0xa881,</div><div class='del'>-	0xa8b4, 0xa8c3,</div><div class='del'>-	0xa952, 0xa953,</div><div class='del'>-	0xa983, 0xa983,</div><div class='del'>-	0xa9b4, 0xa9b5,</div><div class='del'>-	0xa9ba, 0xa9bb,</div><div class='del'>-	0xa9bd, 0xa9c0,</div><div class='del'>-	0xaa2f, 0xaa30,</div><div class='del'>-	0xaa33, 0xaa34,</div><div class='del'>-	0xaa4d, 0xaa4d,</div><div class='del'>-	0xaaeb, 0xaaeb,</div><div class='del'>-	0xaaee, 0xaaef,</div><div class='del'>-	0xaaf5, 0xaaf5,</div><div class='del'>-	0xabe3, 0xabe4,</div><div class='del'>-	0xabe6, 0xabe7,</div><div class='del'>-	0xabe9, 0xabea,</div><div class='del'>-	0xabec, 0xabec,</div><div class='del'>-	0x11000, 0x11000,</div><div class='del'>-	0x11002, 0x11002,</div><div class='del'>-	0x11082, 0x11082,</div><div class='del'>-	0x110b0, 0x110b2,</div><div class='del'>-	0x110b7, 0x110b8,</div><div class='del'>-	0x1112c, 0x1112c,</div><div class='del'>-	0x11145, 0x11146,</div><div class='del'>-	0x11182, 0x11182,</div><div class='del'>-	0x111b3, 0x111b5,</div><div class='del'>-	0x111bf, 0x111c0,</div><div class='del'>-	0x1122c, 0x1122e,</div><div class='del'>-	0x11232, 0x11233,</div><div class='del'>-	0x11235, 0x11235,</div><div class='del'>-	0x112e0, 0x112e2,</div><div class='del'>-	0x11302, 0x11303,</div><div class='del'>-	0x1133f, 0x1133f,</div><div class='del'>-	0x11341, 0x11344,</div><div class='del'>-	0x11347, 0x11348,</div><div class='del'>-	0x1134b, 0x1134d,</div><div class='del'>-	0x11362, 0x11363,</div><div class='del'>-	0x11435, 0x11437,</div><div class='del'>-	0x11440, 0x11441,</div><div class='del'>-	0x11445, 0x11445,</div><div class='del'>-	0x114b1, 0x114b2,</div><div class='del'>-	0x114b9, 0x114b9,</div><div class='del'>-	0x114bb, 0x114bc,</div><div class='del'>-	0x114be, 0x114be,</div><div class='del'>-	0x114c1, 0x114c1,</div><div class='del'>-	0x115b0, 0x115b1,</div><div class='del'>-	0x115b8, 0x115bb,</div><div class='del'>-	0x115be, 0x115be,</div><div class='del'>-	0x11630, 0x11632,</div><div class='del'>-	0x1163b, 0x1163c,</div><div class='del'>-	0x1163e, 0x1163e,</div><div class='del'>-	0x116ac, 0x116ac,</div><div class='del'>-	0x116ae, 0x116af,</div><div class='del'>-	0x116b6, 0x116b6,</div><div class='del'>-	0x11720, 0x11721,</div><div class='del'>-	0x11726, 0x11726,</div><div class='del'>-	0x1182c, 0x1182e,</div><div class='del'>-	0x11838, 0x11838,</div><div class='del'>-	0x11a39, 0x11a39,</div><div class='del'>-	0x11a57, 0x11a58,</div><div class='del'>-	0x11a97, 0x11a97,</div><div class='del'>-	0x11c2f, 0x11c2f,</div><div class='del'>-	0x11c3e, 0x11c3e,</div><div class='del'>-	0x11ca9, 0x11ca9,</div><div class='del'>-	0x11cb1, 0x11cb1,</div><div class='del'>-	0x11cb4, 0x11cb4,</div><div class='del'>-	0x11d8a, 0x11d8e,</div><div class='del'>-	0x11d93, 0x11d94,</div><div class='del'>-	0x11d96, 0x11d96,</div><div class='del'>-	0x11ef5, 0x11ef6,</div><div class='del'>-	0x16f51, 0x16f7e,</div><div class='del'>-	0x1d166, 0x1d166,</div><div class='del'>-	0x1d16d, 0x1d16d,</div><div class='del'>-}; /* CR_Grapheme_Cluster_Break_SpacingMark */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_L': Grapheme_Cluster_Break=L */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Cluster_Break_L[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x1100, 0x115f,</div><div class='del'>-	0xa960, 0xa97c,</div><div class='del'>-}; /* CR_Grapheme_Cluster_Break_L */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_V': Grapheme_Cluster_Break=V */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Cluster_Break_V[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x1160, 0x11a7,</div><div class='del'>-	0xd7b0, 0xd7c6,</div><div class='del'>-}; /* CR_Grapheme_Cluster_Break_V */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_T': Grapheme_Cluster_Break=T */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Cluster_Break_T[] = {</div><div class='del'>-	2,</div><div class='del'>-	0x11a8, 0x11ff,</div><div class='del'>-	0xd7cb, 0xd7fb,</div><div class='del'>-}; /* CR_Grapheme_Cluster_Break_T */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_LV': Grapheme_Cluster_Break=LV */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Cluster_Break_LV[] = {</div><div class='del'>-	399,</div><div class='del'>-	0xac00, 0xac00,</div><div class='del'>-	0xac1c, 0xac1c,</div><div class='del'>-	0xac38, 0xac38,</div><div class='del'>-	0xac54, 0xac54,</div><div class='del'>-	0xac70, 0xac70,</div><div class='del'>-	0xac8c, 0xac8c,</div><div class='del'>-	0xaca8, 0xaca8,</div><div class='del'>-	0xacc4, 0xacc4,</div><div class='del'>-	0xace0, 0xace0,</div><div class='del'>-	0xacfc, 0xacfc,</div><div class='del'>-	0xad18, 0xad18,</div><div class='del'>-	0xad34, 0xad34,</div><div class='del'>-	0xad50, 0xad50,</div><div class='del'>-	0xad6c, 0xad6c,</div><div class='del'>-	0xad88, 0xad88,</div><div class='del'>-	0xada4, 0xada4,</div><div class='del'>-	0xadc0, 0xadc0,</div><div class='del'>-	0xaddc, 0xaddc,</div><div class='del'>-	0xadf8, 0xadf8,</div><div class='del'>-	0xae14, 0xae14,</div><div class='del'>-	0xae30, 0xae30,</div><div class='del'>-	0xae4c, 0xae4c,</div><div class='del'>-	0xae68, 0xae68,</div><div class='del'>-	0xae84, 0xae84,</div><div class='del'>-	0xaea0, 0xaea0,</div><div class='del'>-	0xaebc, 0xaebc,</div><div class='del'>-	0xaed8, 0xaed8,</div><div class='del'>-	0xaef4, 0xaef4,</div><div class='del'>-	0xaf10, 0xaf10,</div><div class='del'>-	0xaf2c, 0xaf2c,</div><div class='del'>-	0xaf48, 0xaf48,</div><div class='del'>-	0xaf64, 0xaf64,</div><div class='del'>-	0xaf80, 0xaf80,</div><div class='del'>-	0xaf9c, 0xaf9c,</div><div class='del'>-	0xafb8, 0xafb8,</div><div class='del'>-	0xafd4, 0xafd4,</div><div class='del'>-	0xaff0, 0xaff0,</div><div class='del'>-	0xb00c, 0xb00c,</div><div class='del'>-	0xb028, 0xb028,</div><div class='del'>-	0xb044, 0xb044,</div><div class='del'>-	0xb060, 0xb060,</div><div class='del'>-	0xb07c, 0xb07c,</div><div class='del'>-	0xb098, 0xb098,</div><div class='del'>-	0xb0b4, 0xb0b4,</div><div class='del'>-	0xb0d0, 0xb0d0,</div><div class='del'>-	0xb0ec, 0xb0ec,</div><div class='del'>-	0xb108, 0xb108,</div><div class='del'>-	0xb124, 0xb124,</div><div class='del'>-	0xb140, 0xb140,</div><div class='del'>-	0xb15c, 0xb15c,</div><div class='del'>-	0xb178, 0xb178,</div><div class='del'>-	0xb194, 0xb194,</div><div class='del'>-	0xb1b0, 0xb1b0,</div><div class='del'>-	0xb1cc, 0xb1cc,</div><div class='del'>-	0xb1e8, 0xb1e8,</div><div class='del'>-	0xb204, 0xb204,</div><div class='del'>-	0xb220, 0xb220,</div><div class='del'>-	0xb23c, 0xb23c,</div><div class='del'>-	0xb258, 0xb258,</div><div class='del'>-	0xb274, 0xb274,</div><div class='del'>-	0xb290, 0xb290,</div><div class='del'>-	0xb2ac, 0xb2ac,</div><div class='del'>-	0xb2c8, 0xb2c8,</div><div class='del'>-	0xb2e4, 0xb2e4,</div><div class='del'>-	0xb300, 0xb300,</div><div class='del'>-	0xb31c, 0xb31c,</div><div class='del'>-	0xb338, 0xb338,</div><div class='del'>-	0xb354, 0xb354,</div><div class='del'>-	0xb370, 0xb370,</div><div class='del'>-	0xb38c, 0xb38c,</div><div class='del'>-	0xb3a8, 0xb3a8,</div><div class='del'>-	0xb3c4, 0xb3c4,</div><div class='del'>-	0xb3e0, 0xb3e0,</div><div class='del'>-	0xb3fc, 0xb3fc,</div><div class='del'>-	0xb418, 0xb418,</div><div class='del'>-	0xb434, 0xb434,</div><div class='del'>-	0xb450, 0xb450,</div><div class='del'>-	0xb46c, 0xb46c,</div><div class='del'>-	0xb488, 0xb488,</div><div class='del'>-	0xb4a4, 0xb4a4,</div><div class='del'>-	0xb4c0, 0xb4c0,</div><div class='del'>-	0xb4dc, 0xb4dc,</div><div class='del'>-	0xb4f8, 0xb4f8,</div><div class='del'>-	0xb514, 0xb514,</div><div class='del'>-	0xb530, 0xb530,</div><div class='del'>-	0xb54c, 0xb54c,</div><div class='del'>-	0xb568, 0xb568,</div><div class='del'>-	0xb584, 0xb584,</div><div class='del'>-	0xb5a0, 0xb5a0,</div><div class='del'>-	0xb5bc, 0xb5bc,</div><div class='del'>-	0xb5d8, 0xb5d8,</div><div class='del'>-	0xb5f4, 0xb5f4,</div><div class='del'>-	0xb610, 0xb610,</div><div class='del'>-	0xb62c, 0xb62c,</div><div class='del'>-	0xb648, 0xb648,</div><div class='del'>-	0xb664, 0xb664,</div><div class='del'>-	0xb680, 0xb680,</div><div class='del'>-	0xb69c, 0xb69c,</div><div class='del'>-	0xb6b8, 0xb6b8,</div><div class='del'>-	0xb6d4, 0xb6d4,</div><div class='del'>-	0xb6f0, 0xb6f0,</div><div class='del'>-	0xb70c, 0xb70c,</div><div class='del'>-	0xb728, 0xb728,</div><div class='del'>-	0xb744, 0xb744,</div><div class='del'>-	0xb760, 0xb760,</div><div class='del'>-	0xb77c, 0xb77c,</div><div class='del'>-	0xb798, 0xb798,</div><div class='del'>-	0xb7b4, 0xb7b4,</div><div class='del'>-	0xb7d0, 0xb7d0,</div><div class='del'>-	0xb7ec, 0xb7ec,</div><div class='del'>-	0xb808, 0xb808,</div><div class='del'>-	0xb824, 0xb824,</div><div class='del'>-	0xb840, 0xb840,</div><div class='del'>-	0xb85c, 0xb85c,</div><div class='del'>-	0xb878, 0xb878,</div><div class='del'>-	0xb894, 0xb894,</div><div class='del'>-	0xb8b0, 0xb8b0,</div><div class='del'>-	0xb8cc, 0xb8cc,</div><div class='del'>-	0xb8e8, 0xb8e8,</div><div class='del'>-	0xb904, 0xb904,</div><div class='del'>-	0xb920, 0xb920,</div><div class='del'>-	0xb93c, 0xb93c,</div><div class='del'>-	0xb958, 0xb958,</div><div class='del'>-	0xb974, 0xb974,</div><div class='del'>-	0xb990, 0xb990,</div><div class='del'>-	0xb9ac, 0xb9ac,</div><div class='del'>-	0xb9c8, 0xb9c8,</div><div class='del'>-	0xb9e4, 0xb9e4,</div><div class='del'>-	0xba00, 0xba00,</div><div class='del'>-	0xba1c, 0xba1c,</div><div class='del'>-	0xba38, 0xba38,</div><div class='del'>-	0xba54, 0xba54,</div><div class='del'>-	0xba70, 0xba70,</div><div class='del'>-	0xba8c, 0xba8c,</div><div class='del'>-	0xbaa8, 0xbaa8,</div><div class='del'>-	0xbac4, 0xbac4,</div><div class='del'>-	0xbae0, 0xbae0,</div><div class='del'>-	0xbafc, 0xbafc,</div><div class='del'>-	0xbb18, 0xbb18,</div><div class='del'>-	0xbb34, 0xbb34,</div><div class='del'>-	0xbb50, 0xbb50,</div><div class='del'>-	0xbb6c, 0xbb6c,</div><div class='del'>-	0xbb88, 0xbb88,</div><div class='del'>-	0xbba4, 0xbba4,</div><div class='del'>-	0xbbc0, 0xbbc0,</div><div class='del'>-	0xbbdc, 0xbbdc,</div><div class='del'>-	0xbbf8, 0xbbf8,</div><div class='del'>-	0xbc14, 0xbc14,</div><div class='del'>-	0xbc30, 0xbc30,</div><div class='del'>-	0xbc4c, 0xbc4c,</div><div class='del'>-	0xbc68, 0xbc68,</div><div class='del'>-	0xbc84, 0xbc84,</div><div class='del'>-	0xbca0, 0xbca0,</div><div class='del'>-	0xbcbc, 0xbcbc,</div><div class='del'>-	0xbcd8, 0xbcd8,</div><div class='del'>-	0xbcf4, 0xbcf4,</div><div class='del'>-	0xbd10, 0xbd10,</div><div class='del'>-	0xbd2c, 0xbd2c,</div><div class='del'>-	0xbd48, 0xbd48,</div><div class='del'>-	0xbd64, 0xbd64,</div><div class='del'>-	0xbd80, 0xbd80,</div><div class='del'>-	0xbd9c, 0xbd9c,</div><div class='del'>-	0xbdb8, 0xbdb8,</div><div class='del'>-	0xbdd4, 0xbdd4,</div><div class='del'>-	0xbdf0, 0xbdf0,</div><div class='del'>-	0xbe0c, 0xbe0c,</div><div class='del'>-	0xbe28, 0xbe28,</div><div class='del'>-	0xbe44, 0xbe44,</div><div class='del'>-	0xbe60, 0xbe60,</div><div class='del'>-	0xbe7c, 0xbe7c,</div><div class='del'>-	0xbe98, 0xbe98,</div><div class='del'>-	0xbeb4, 0xbeb4,</div><div class='del'>-	0xbed0, 0xbed0,</div><div class='del'>-	0xbeec, 0xbeec,</div><div class='del'>-	0xbf08, 0xbf08,</div><div class='del'>-	0xbf24, 0xbf24,</div><div class='del'>-	0xbf40, 0xbf40,</div><div class='del'>-	0xbf5c, 0xbf5c,</div><div class='del'>-	0xbf78, 0xbf78,</div><div class='del'>-	0xbf94, 0xbf94,</div><div class='del'>-	0xbfb0, 0xbfb0,</div><div class='del'>-	0xbfcc, 0xbfcc,</div><div class='del'>-	0xbfe8, 0xbfe8,</div><div class='del'>-	0xc004, 0xc004,</div><div class='del'>-	0xc020, 0xc020,</div><div class='del'>-	0xc03c, 0xc03c,</div><div class='del'>-	0xc058, 0xc058,</div><div class='del'>-	0xc074, 0xc074,</div><div class='del'>-	0xc090, 0xc090,</div><div class='del'>-	0xc0ac, 0xc0ac,</div><div class='del'>-	0xc0c8, 0xc0c8,</div><div class='del'>-	0xc0e4, 0xc0e4,</div><div class='del'>-	0xc100, 0xc100,</div><div class='del'>-	0xc11c, 0xc11c,</div><div class='del'>-	0xc138, 0xc138,</div><div class='del'>-	0xc154, 0xc154,</div><div class='del'>-	0xc170, 0xc170,</div><div class='del'>-	0xc18c, 0xc18c,</div><div class='del'>-	0xc1a8, 0xc1a8,</div><div class='del'>-	0xc1c4, 0xc1c4,</div><div class='del'>-	0xc1e0, 0xc1e0,</div><div class='del'>-	0xc1fc, 0xc1fc,</div><div class='del'>-	0xc218, 0xc218,</div><div class='del'>-	0xc234, 0xc234,</div><div class='del'>-	0xc250, 0xc250,</div><div class='del'>-	0xc26c, 0xc26c,</div><div class='del'>-	0xc288, 0xc288,</div><div class='del'>-	0xc2a4, 0xc2a4,</div><div class='del'>-	0xc2c0, 0xc2c0,</div><div class='del'>-	0xc2dc, 0xc2dc,</div><div class='del'>-	0xc2f8, 0xc2f8,</div><div class='del'>-	0xc314, 0xc314,</div><div class='del'>-	0xc330, 0xc330,</div><div class='del'>-	0xc34c, 0xc34c,</div><div class='del'>-	0xc368, 0xc368,</div><div class='del'>-	0xc384, 0xc384,</div><div class='del'>-	0xc3a0, 0xc3a0,</div><div class='del'>-	0xc3bc, 0xc3bc,</div><div class='del'>-	0xc3d8, 0xc3d8,</div><div class='del'>-	0xc3f4, 0xc3f4,</div><div class='del'>-	0xc410, 0xc410,</div><div class='del'>-	0xc42c, 0xc42c,</div><div class='del'>-	0xc448, 0xc448,</div><div class='del'>-	0xc464, 0xc464,</div><div class='del'>-	0xc480, 0xc480,</div><div class='del'>-	0xc49c, 0xc49c,</div><div class='del'>-	0xc4b8, 0xc4b8,</div><div class='del'>-	0xc4d4, 0xc4d4,</div><div class='del'>-	0xc4f0, 0xc4f0,</div><div class='del'>-	0xc50c, 0xc50c,</div><div class='del'>-	0xc528, 0xc528,</div><div class='del'>-	0xc544, 0xc544,</div><div class='del'>-	0xc560, 0xc560,</div><div class='del'>-	0xc57c, 0xc57c,</div><div class='del'>-	0xc598, 0xc598,</div><div class='del'>-	0xc5b4, 0xc5b4,</div><div class='del'>-	0xc5d0, 0xc5d0,</div><div class='del'>-	0xc5ec, 0xc5ec,</div><div class='del'>-	0xc608, 0xc608,</div><div class='del'>-	0xc624, 0xc624,</div><div class='del'>-	0xc640, 0xc640,</div><div class='del'>-	0xc65c, 0xc65c,</div><div class='del'>-	0xc678, 0xc678,</div><div class='del'>-	0xc694, 0xc694,</div><div class='del'>-	0xc6b0, 0xc6b0,</div><div class='del'>-	0xc6cc, 0xc6cc,</div><div class='del'>-	0xc6e8, 0xc6e8,</div><div class='del'>-	0xc704, 0xc704,</div><div class='del'>-	0xc720, 0xc720,</div><div class='del'>-	0xc73c, 0xc73c,</div><div class='del'>-	0xc758, 0xc758,</div><div class='del'>-	0xc774, 0xc774,</div><div class='del'>-	0xc790, 0xc790,</div><div class='del'>-	0xc7ac, 0xc7ac,</div><div class='del'>-	0xc7c8, 0xc7c8,</div><div class='del'>-	0xc7e4, 0xc7e4,</div><div class='del'>-	0xc800, 0xc800,</div><div class='del'>-	0xc81c, 0xc81c,</div><div class='del'>-	0xc838, 0xc838,</div><div class='del'>-	0xc854, 0xc854,</div><div class='del'>-	0xc870, 0xc870,</div><div class='del'>-	0xc88c, 0xc88c,</div><div class='del'>-	0xc8a8, 0xc8a8,</div><div class='del'>-	0xc8c4, 0xc8c4,</div><div class='del'>-	0xc8e0, 0xc8e0,</div><div class='del'>-	0xc8fc, 0xc8fc,</div><div class='del'>-	0xc918, 0xc918,</div><div class='del'>-	0xc934, 0xc934,</div><div class='del'>-	0xc950, 0xc950,</div><div class='del'>-	0xc96c, 0xc96c,</div><div class='del'>-	0xc988, 0xc988,</div><div class='del'>-	0xc9a4, 0xc9a4,</div><div class='del'>-	0xc9c0, 0xc9c0,</div><div class='del'>-	0xc9dc, 0xc9dc,</div><div class='del'>-	0xc9f8, 0xc9f8,</div><div class='del'>-	0xca14, 0xca14,</div><div class='del'>-	0xca30, 0xca30,</div><div class='del'>-	0xca4c, 0xca4c,</div><div class='del'>-	0xca68, 0xca68,</div><div class='del'>-	0xca84, 0xca84,</div><div class='del'>-	0xcaa0, 0xcaa0,</div><div class='del'>-	0xcabc, 0xcabc,</div><div class='del'>-	0xcad8, 0xcad8,</div><div class='del'>-	0xcaf4, 0xcaf4,</div><div class='del'>-	0xcb10, 0xcb10,</div><div class='del'>-	0xcb2c, 0xcb2c,</div><div class='del'>-	0xcb48, 0xcb48,</div><div class='del'>-	0xcb64, 0xcb64,</div><div class='del'>-	0xcb80, 0xcb80,</div><div class='del'>-	0xcb9c, 0xcb9c,</div><div class='del'>-	0xcbb8, 0xcbb8,</div><div class='del'>-	0xcbd4, 0xcbd4,</div><div class='del'>-	0xcbf0, 0xcbf0,</div><div class='del'>-	0xcc0c, 0xcc0c,</div><div class='del'>-	0xcc28, 0xcc28,</div><div class='del'>-	0xcc44, 0xcc44,</div><div class='del'>-	0xcc60, 0xcc60,</div><div class='del'>-	0xcc7c, 0xcc7c,</div><div class='del'>-	0xcc98, 0xcc98,</div><div class='del'>-	0xccb4, 0xccb4,</div><div class='del'>-	0xccd0, 0xccd0,</div><div class='del'>-	0xccec, 0xccec,</div><div class='del'>-	0xcd08, 0xcd08,</div><div class='del'>-	0xcd24, 0xcd24,</div><div class='del'>-	0xcd40, 0xcd40,</div><div class='del'>-	0xcd5c, 0xcd5c,</div><div class='del'>-	0xcd78, 0xcd78,</div><div class='del'>-	0xcd94, 0xcd94,</div><div class='del'>-	0xcdb0, 0xcdb0,</div><div class='del'>-	0xcdcc, 0xcdcc,</div><div class='del'>-	0xcde8, 0xcde8,</div><div class='del'>-	0xce04, 0xce04,</div><div class='del'>-	0xce20, 0xce20,</div><div class='del'>-	0xce3c, 0xce3c,</div><div class='del'>-	0xce58, 0xce58,</div><div class='del'>-	0xce74, 0xce74,</div><div class='del'>-	0xce90, 0xce90,</div><div class='del'>-	0xceac, 0xceac,</div><div class='del'>-	0xcec8, 0xcec8,</div><div class='del'>-	0xcee4, 0xcee4,</div><div class='del'>-	0xcf00, 0xcf00,</div><div class='del'>-	0xcf1c, 0xcf1c,</div><div class='del'>-	0xcf38, 0xcf38,</div><div class='del'>-	0xcf54, 0xcf54,</div><div class='del'>-	0xcf70, 0xcf70,</div><div class='del'>-	0xcf8c, 0xcf8c,</div><div class='del'>-	0xcfa8, 0xcfa8,</div><div class='del'>-	0xcfc4, 0xcfc4,</div><div class='del'>-	0xcfe0, 0xcfe0,</div><div class='del'>-	0xcffc, 0xcffc,</div><div class='del'>-	0xd018, 0xd018,</div><div class='del'>-	0xd034, 0xd034,</div><div class='del'>-	0xd050, 0xd050,</div><div class='del'>-	0xd06c, 0xd06c,</div><div class='del'>-	0xd088, 0xd088,</div><div class='del'>-	0xd0a4, 0xd0a4,</div><div class='del'>-	0xd0c0, 0xd0c0,</div><div class='del'>-	0xd0dc, 0xd0dc,</div><div class='del'>-	0xd0f8, 0xd0f8,</div><div class='del'>-	0xd114, 0xd114,</div><div class='del'>-	0xd130, 0xd130,</div><div class='del'>-	0xd14c, 0xd14c,</div><div class='del'>-	0xd168, 0xd168,</div><div class='del'>-	0xd184, 0xd184,</div><div class='del'>-	0xd1a0, 0xd1a0,</div><div class='del'>-	0xd1bc, 0xd1bc,</div><div class='del'>-	0xd1d8, 0xd1d8,</div><div class='del'>-	0xd1f4, 0xd1f4,</div><div class='del'>-	0xd210, 0xd210,</div><div class='del'>-	0xd22c, 0xd22c,</div><div class='del'>-	0xd248, 0xd248,</div><div class='del'>-	0xd264, 0xd264,</div><div class='del'>-	0xd280, 0xd280,</div><div class='del'>-	0xd29c, 0xd29c,</div><div class='del'>-	0xd2b8, 0xd2b8,</div><div class='del'>-	0xd2d4, 0xd2d4,</div><div class='del'>-	0xd2f0, 0xd2f0,</div><div class='del'>-	0xd30c, 0xd30c,</div><div class='del'>-	0xd328, 0xd328,</div><div class='del'>-	0xd344, 0xd344,</div><div class='del'>-	0xd360, 0xd360,</div><div class='del'>-	0xd37c, 0xd37c,</div><div class='del'>-	0xd398, 0xd398,</div><div class='del'>-	0xd3b4, 0xd3b4,</div><div class='del'>-	0xd3d0, 0xd3d0,</div><div class='del'>-	0xd3ec, 0xd3ec,</div><div class='del'>-	0xd408, 0xd408,</div><div class='del'>-	0xd424, 0xd424,</div><div class='del'>-	0xd440, 0xd440,</div><div class='del'>-	0xd45c, 0xd45c,</div><div class='del'>-	0xd478, 0xd478,</div><div class='del'>-	0xd494, 0xd494,</div><div class='del'>-	0xd4b0, 0xd4b0,</div><div class='del'>-	0xd4cc, 0xd4cc,</div><div class='del'>-	0xd4e8, 0xd4e8,</div><div class='del'>-	0xd504, 0xd504,</div><div class='del'>-	0xd520, 0xd520,</div><div class='del'>-	0xd53c, 0xd53c,</div><div class='del'>-	0xd558, 0xd558,</div><div class='del'>-	0xd574, 0xd574,</div><div class='del'>-	0xd590, 0xd590,</div><div class='del'>-	0xd5ac, 0xd5ac,</div><div class='del'>-	0xd5c8, 0xd5c8,</div><div class='del'>-	0xd5e4, 0xd5e4,</div><div class='del'>-	0xd600, 0xd600,</div><div class='del'>-	0xd61c, 0xd61c,</div><div class='del'>-	0xd638, 0xd638,</div><div class='del'>-	0xd654, 0xd654,</div><div class='del'>-	0xd670, 0xd670,</div><div class='del'>-	0xd68c, 0xd68c,</div><div class='del'>-	0xd6a8, 0xd6a8,</div><div class='del'>-	0xd6c4, 0xd6c4,</div><div class='del'>-	0xd6e0, 0xd6e0,</div><div class='del'>-	0xd6fc, 0xd6fc,</div><div class='del'>-	0xd718, 0xd718,</div><div class='del'>-	0xd734, 0xd734,</div><div class='del'>-	0xd750, 0xd750,</div><div class='del'>-	0xd76c, 0xd76c,</div><div class='del'>-	0xd788, 0xd788,</div><div class='del'>-}; /* CR_Grapheme_Cluster_Break_LV */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_LVT': Grapheme_Cluster_Break=LVT */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Cluster_Break_LVT[] = {</div><div class='del'>-	399,</div><div class='del'>-	0xac01, 0xac1b,</div><div class='del'>-	0xac1d, 0xac37,</div><div class='del'>-	0xac39, 0xac53,</div><div class='del'>-	0xac55, 0xac6f,</div><div class='del'>-	0xac71, 0xac8b,</div><div class='del'>-	0xac8d, 0xaca7,</div><div class='del'>-	0xaca9, 0xacc3,</div><div class='del'>-	0xacc5, 0xacdf,</div><div class='del'>-	0xace1, 0xacfb,</div><div class='del'>-	0xacfd, 0xad17,</div><div class='del'>-	0xad19, 0xad33,</div><div class='del'>-	0xad35, 0xad4f,</div><div class='del'>-	0xad51, 0xad6b,</div><div class='del'>-	0xad6d, 0xad87,</div><div class='del'>-	0xad89, 0xada3,</div><div class='del'>-	0xada5, 0xadbf,</div><div class='del'>-	0xadc1, 0xaddb,</div><div class='del'>-	0xaddd, 0xadf7,</div><div class='del'>-	0xadf9, 0xae13,</div><div class='del'>-	0xae15, 0xae2f,</div><div class='del'>-	0xae31, 0xae4b,</div><div class='del'>-	0xae4d, 0xae67,</div><div class='del'>-	0xae69, 0xae83,</div><div class='del'>-	0xae85, 0xae9f,</div><div class='del'>-	0xaea1, 0xaebb,</div><div class='del'>-	0xaebd, 0xaed7,</div><div class='del'>-	0xaed9, 0xaef3,</div><div class='del'>-	0xaef5, 0xaf0f,</div><div class='del'>-	0xaf11, 0xaf2b,</div><div class='del'>-	0xaf2d, 0xaf47,</div><div class='del'>-	0xaf49, 0xaf63,</div><div class='del'>-	0xaf65, 0xaf7f,</div><div class='del'>-	0xaf81, 0xaf9b,</div><div class='del'>-	0xaf9d, 0xafb7,</div><div class='del'>-	0xafb9, 0xafd3,</div><div class='del'>-	0xafd5, 0xafef,</div><div class='del'>-	0xaff1, 0xb00b,</div><div class='del'>-	0xb00d, 0xb027,</div><div class='del'>-	0xb029, 0xb043,</div><div class='del'>-	0xb045, 0xb05f,</div><div class='del'>-	0xb061, 0xb07b,</div><div class='del'>-	0xb07d, 0xb097,</div><div class='del'>-	0xb099, 0xb0b3,</div><div class='del'>-	0xb0b5, 0xb0cf,</div><div class='del'>-	0xb0d1, 0xb0eb,</div><div class='del'>-	0xb0ed, 0xb107,</div><div class='del'>-	0xb109, 0xb123,</div><div class='del'>-	0xb125, 0xb13f,</div><div class='del'>-	0xb141, 0xb15b,</div><div class='del'>-	0xb15d, 0xb177,</div><div class='del'>-	0xb179, 0xb193,</div><div class='del'>-	0xb195, 0xb1af,</div><div class='del'>-	0xb1b1, 0xb1cb,</div><div class='del'>-	0xb1cd, 0xb1e7,</div><div class='del'>-	0xb1e9, 0xb203,</div><div class='del'>-	0xb205, 0xb21f,</div><div class='del'>-	0xb221, 0xb23b,</div><div class='del'>-	0xb23d, 0xb257,</div><div class='del'>-	0xb259, 0xb273,</div><div class='del'>-	0xb275, 0xb28f,</div><div class='del'>-	0xb291, 0xb2ab,</div><div class='del'>-	0xb2ad, 0xb2c7,</div><div class='del'>-	0xb2c9, 0xb2e3,</div><div class='del'>-	0xb2e5, 0xb2ff,</div><div class='del'>-	0xb301, 0xb31b,</div><div class='del'>-	0xb31d, 0xb337,</div><div class='del'>-	0xb339, 0xb353,</div><div class='del'>-	0xb355, 0xb36f,</div><div class='del'>-	0xb371, 0xb38b,</div><div class='del'>-	0xb38d, 0xb3a7,</div><div class='del'>-	0xb3a9, 0xb3c3,</div><div class='del'>-	0xb3c5, 0xb3df,</div><div class='del'>-	0xb3e1, 0xb3fb,</div><div class='del'>-	0xb3fd, 0xb417,</div><div class='del'>-	0xb419, 0xb433,</div><div class='del'>-	0xb435, 0xb44f,</div><div class='del'>-	0xb451, 0xb46b,</div><div class='del'>-	0xb46d, 0xb487,</div><div class='del'>-	0xb489, 0xb4a3,</div><div class='del'>-	0xb4a5, 0xb4bf,</div><div class='del'>-	0xb4c1, 0xb4db,</div><div class='del'>-	0xb4dd, 0xb4f7,</div><div class='del'>-	0xb4f9, 0xb513,</div><div class='del'>-	0xb515, 0xb52f,</div><div class='del'>-	0xb531, 0xb54b,</div><div class='del'>-	0xb54d, 0xb567,</div><div class='del'>-	0xb569, 0xb583,</div><div class='del'>-	0xb585, 0xb59f,</div><div class='del'>-	0xb5a1, 0xb5bb,</div><div class='del'>-	0xb5bd, 0xb5d7,</div><div class='del'>-	0xb5d9, 0xb5f3,</div><div class='del'>-	0xb5f5, 0xb60f,</div><div class='del'>-	0xb611, 0xb62b,</div><div class='del'>-	0xb62d, 0xb647,</div><div class='del'>-	0xb649, 0xb663,</div><div class='del'>-	0xb665, 0xb67f,</div><div class='del'>-	0xb681, 0xb69b,</div><div class='del'>-	0xb69d, 0xb6b7,</div><div class='del'>-	0xb6b9, 0xb6d3,</div><div class='del'>-	0xb6d5, 0xb6ef,</div><div class='del'>-	0xb6f1, 0xb70b,</div><div class='del'>-	0xb70d, 0xb727,</div><div class='del'>-	0xb729, 0xb743,</div><div class='del'>-	0xb745, 0xb75f,</div><div class='del'>-	0xb761, 0xb77b,</div><div class='del'>-	0xb77d, 0xb797,</div><div class='del'>-	0xb799, 0xb7b3,</div><div class='del'>-	0xb7b5, 0xb7cf,</div><div class='del'>-	0xb7d1, 0xb7eb,</div><div class='del'>-	0xb7ed, 0xb807,</div><div class='del'>-	0xb809, 0xb823,</div><div class='del'>-	0xb825, 0xb83f,</div><div class='del'>-	0xb841, 0xb85b,</div><div class='del'>-	0xb85d, 0xb877,</div><div class='del'>-	0xb879, 0xb893,</div><div class='del'>-	0xb895, 0xb8af,</div><div class='del'>-	0xb8b1, 0xb8cb,</div><div class='del'>-	0xb8cd, 0xb8e7,</div><div class='del'>-	0xb8e9, 0xb903,</div><div class='del'>-	0xb905, 0xb91f,</div><div class='del'>-	0xb921, 0xb93b,</div><div class='del'>-	0xb93d, 0xb957,</div><div class='del'>-	0xb959, 0xb973,</div><div class='del'>-	0xb975, 0xb98f,</div><div class='del'>-	0xb991, 0xb9ab,</div><div class='del'>-	0xb9ad, 0xb9c7,</div><div class='del'>-	0xb9c9, 0xb9e3,</div><div class='del'>-	0xb9e5, 0xb9ff,</div><div class='del'>-	0xba01, 0xba1b,</div><div class='del'>-	0xba1d, 0xba37,</div><div class='del'>-	0xba39, 0xba53,</div><div class='del'>-	0xba55, 0xba6f,</div><div class='del'>-	0xba71, 0xba8b,</div><div class='del'>-	0xba8d, 0xbaa7,</div><div class='del'>-	0xbaa9, 0xbac3,</div><div class='del'>-	0xbac5, 0xbadf,</div><div class='del'>-	0xbae1, 0xbafb,</div><div class='del'>-	0xbafd, 0xbb17,</div><div class='del'>-	0xbb19, 0xbb33,</div><div class='del'>-	0xbb35, 0xbb4f,</div><div class='del'>-	0xbb51, 0xbb6b,</div><div class='del'>-	0xbb6d, 0xbb87,</div><div class='del'>-	0xbb89, 0xbba3,</div><div class='del'>-	0xbba5, 0xbbbf,</div><div class='del'>-	0xbbc1, 0xbbdb,</div><div class='del'>-	0xbbdd, 0xbbf7,</div><div class='del'>-	0xbbf9, 0xbc13,</div><div class='del'>-	0xbc15, 0xbc2f,</div><div class='del'>-	0xbc31, 0xbc4b,</div><div class='del'>-	0xbc4d, 0xbc67,</div><div class='del'>-	0xbc69, 0xbc83,</div><div class='del'>-	0xbc85, 0xbc9f,</div><div class='del'>-	0xbca1, 0xbcbb,</div><div class='del'>-	0xbcbd, 0xbcd7,</div><div class='del'>-	0xbcd9, 0xbcf3,</div><div class='del'>-	0xbcf5, 0xbd0f,</div><div class='del'>-	0xbd11, 0xbd2b,</div><div class='del'>-	0xbd2d, 0xbd47,</div><div class='del'>-	0xbd49, 0xbd63,</div><div class='del'>-	0xbd65, 0xbd7f,</div><div class='del'>-	0xbd81, 0xbd9b,</div><div class='del'>-	0xbd9d, 0xbdb7,</div><div class='del'>-	0xbdb9, 0xbdd3,</div><div class='del'>-	0xbdd5, 0xbdef,</div><div class='del'>-	0xbdf1, 0xbe0b,</div><div class='del'>-	0xbe0d, 0xbe27,</div><div class='del'>-	0xbe29, 0xbe43,</div><div class='del'>-	0xbe45, 0xbe5f,</div><div class='del'>-	0xbe61, 0xbe7b,</div><div class='del'>-	0xbe7d, 0xbe97,</div><div class='del'>-	0xbe99, 0xbeb3,</div><div class='del'>-	0xbeb5, 0xbecf,</div><div class='del'>-	0xbed1, 0xbeeb,</div><div class='del'>-	0xbeed, 0xbf07,</div><div class='del'>-	0xbf09, 0xbf23,</div><div class='del'>-	0xbf25, 0xbf3f,</div><div class='del'>-	0xbf41, 0xbf5b,</div><div class='del'>-	0xbf5d, 0xbf77,</div><div class='del'>-	0xbf79, 0xbf93,</div><div class='del'>-	0xbf95, 0xbfaf,</div><div class='del'>-	0xbfb1, 0xbfcb,</div><div class='del'>-	0xbfcd, 0xbfe7,</div><div class='del'>-	0xbfe9, 0xc003,</div><div class='del'>-	0xc005, 0xc01f,</div><div class='del'>-	0xc021, 0xc03b,</div><div class='del'>-	0xc03d, 0xc057,</div><div class='del'>-	0xc059, 0xc073,</div><div class='del'>-	0xc075, 0xc08f,</div><div class='del'>-	0xc091, 0xc0ab,</div><div class='del'>-	0xc0ad, 0xc0c7,</div><div class='del'>-	0xc0c9, 0xc0e3,</div><div class='del'>-	0xc0e5, 0xc0ff,</div><div class='del'>-	0xc101, 0xc11b,</div><div class='del'>-	0xc11d, 0xc137,</div><div class='del'>-	0xc139, 0xc153,</div><div class='del'>-	0xc155, 0xc16f,</div><div class='del'>-	0xc171, 0xc18b,</div><div class='del'>-	0xc18d, 0xc1a7,</div><div class='del'>-	0xc1a9, 0xc1c3,</div><div class='del'>-	0xc1c5, 0xc1df,</div><div class='del'>-	0xc1e1, 0xc1fb,</div><div class='del'>-	0xc1fd, 0xc217,</div><div class='del'>-	0xc219, 0xc233,</div><div class='del'>-	0xc235, 0xc24f,</div><div class='del'>-	0xc251, 0xc26b,</div><div class='del'>-	0xc26d, 0xc287,</div><div class='del'>-	0xc289, 0xc2a3,</div><div class='del'>-	0xc2a5, 0xc2bf,</div><div class='del'>-	0xc2c1, 0xc2db,</div><div class='del'>-	0xc2dd, 0xc2f7,</div><div class='del'>-	0xc2f9, 0xc313,</div><div class='del'>-	0xc315, 0xc32f,</div><div class='del'>-	0xc331, 0xc34b,</div><div class='del'>-	0xc34d, 0xc367,</div><div class='del'>-	0xc369, 0xc383,</div><div class='del'>-	0xc385, 0xc39f,</div><div class='del'>-	0xc3a1, 0xc3bb,</div><div class='del'>-	0xc3bd, 0xc3d7,</div><div class='del'>-	0xc3d9, 0xc3f3,</div><div class='del'>-	0xc3f5, 0xc40f,</div><div class='del'>-	0xc411, 0xc42b,</div><div class='del'>-	0xc42d, 0xc447,</div><div class='del'>-	0xc449, 0xc463,</div><div class='del'>-	0xc465, 0xc47f,</div><div class='del'>-	0xc481, 0xc49b,</div><div class='del'>-	0xc49d, 0xc4b7,</div><div class='del'>-	0xc4b9, 0xc4d3,</div><div class='del'>-	0xc4d5, 0xc4ef,</div><div class='del'>-	0xc4f1, 0xc50b,</div><div class='del'>-	0xc50d, 0xc527,</div><div class='del'>-	0xc529, 0xc543,</div><div class='del'>-	0xc545, 0xc55f,</div><div class='del'>-	0xc561, 0xc57b,</div><div class='del'>-	0xc57d, 0xc597,</div><div class='del'>-	0xc599, 0xc5b3,</div><div class='del'>-	0xc5b5, 0xc5cf,</div><div class='del'>-	0xc5d1, 0xc5eb,</div><div class='del'>-	0xc5ed, 0xc607,</div><div class='del'>-	0xc609, 0xc623,</div><div class='del'>-	0xc625, 0xc63f,</div><div class='del'>-	0xc641, 0xc65b,</div><div class='del'>-	0xc65d, 0xc677,</div><div class='del'>-	0xc679, 0xc693,</div><div class='del'>-	0xc695, 0xc6af,</div><div class='del'>-	0xc6b1, 0xc6cb,</div><div class='del'>-	0xc6cd, 0xc6e7,</div><div class='del'>-	0xc6e9, 0xc703,</div><div class='del'>-	0xc705, 0xc71f,</div><div class='del'>-	0xc721, 0xc73b,</div><div class='del'>-	0xc73d, 0xc757,</div><div class='del'>-	0xc759, 0xc773,</div><div class='del'>-	0xc775, 0xc78f,</div><div class='del'>-	0xc791, 0xc7ab,</div><div class='del'>-	0xc7ad, 0xc7c7,</div><div class='del'>-	0xc7c9, 0xc7e3,</div><div class='del'>-	0xc7e5, 0xc7ff,</div><div class='del'>-	0xc801, 0xc81b,</div><div class='del'>-	0xc81d, 0xc837,</div><div class='del'>-	0xc839, 0xc853,</div><div class='del'>-	0xc855, 0xc86f,</div><div class='del'>-	0xc871, 0xc88b,</div><div class='del'>-	0xc88d, 0xc8a7,</div><div class='del'>-	0xc8a9, 0xc8c3,</div><div class='del'>-	0xc8c5, 0xc8df,</div><div class='del'>-	0xc8e1, 0xc8fb,</div><div class='del'>-	0xc8fd, 0xc917,</div><div class='del'>-	0xc919, 0xc933,</div><div class='del'>-	0xc935, 0xc94f,</div><div class='del'>-	0xc951, 0xc96b,</div><div class='del'>-	0xc96d, 0xc987,</div><div class='del'>-	0xc989, 0xc9a3,</div><div class='del'>-	0xc9a5, 0xc9bf,</div><div class='del'>-	0xc9c1, 0xc9db,</div><div class='del'>-	0xc9dd, 0xc9f7,</div><div class='del'>-	0xc9f9, 0xca13,</div><div class='del'>-	0xca15, 0xca2f,</div><div class='del'>-	0xca31, 0xca4b,</div><div class='del'>-	0xca4d, 0xca67,</div><div class='del'>-	0xca69, 0xca83,</div><div class='del'>-	0xca85, 0xca9f,</div><div class='del'>-	0xcaa1, 0xcabb,</div><div class='del'>-	0xcabd, 0xcad7,</div><div class='del'>-	0xcad9, 0xcaf3,</div><div class='del'>-	0xcaf5, 0xcb0f,</div><div class='del'>-	0xcb11, 0xcb2b,</div><div class='del'>-	0xcb2d, 0xcb47,</div><div class='del'>-	0xcb49, 0xcb63,</div><div class='del'>-	0xcb65, 0xcb7f,</div><div class='del'>-	0xcb81, 0xcb9b,</div><div class='del'>-	0xcb9d, 0xcbb7,</div><div class='del'>-	0xcbb9, 0xcbd3,</div><div class='del'>-	0xcbd5, 0xcbef,</div><div class='del'>-	0xcbf1, 0xcc0b,</div><div class='del'>-	0xcc0d, 0xcc27,</div><div class='del'>-	0xcc29, 0xcc43,</div><div class='del'>-	0xcc45, 0xcc5f,</div><div class='del'>-	0xcc61, 0xcc7b,</div><div class='del'>-	0xcc7d, 0xcc97,</div><div class='del'>-	0xcc99, 0xccb3,</div><div class='del'>-	0xccb5, 0xcccf,</div><div class='del'>-	0xccd1, 0xcceb,</div><div class='del'>-	0xcced, 0xcd07,</div><div class='del'>-	0xcd09, 0xcd23,</div><div class='del'>-	0xcd25, 0xcd3f,</div><div class='del'>-	0xcd41, 0xcd5b,</div><div class='del'>-	0xcd5d, 0xcd77,</div><div class='del'>-	0xcd79, 0xcd93,</div><div class='del'>-	0xcd95, 0xcdaf,</div><div class='del'>-	0xcdb1, 0xcdcb,</div><div class='del'>-	0xcdcd, 0xcde7,</div><div class='del'>-	0xcde9, 0xce03,</div><div class='del'>-	0xce05, 0xce1f,</div><div class='del'>-	0xce21, 0xce3b,</div><div class='del'>-	0xce3d, 0xce57,</div><div class='del'>-	0xce59, 0xce73,</div><div class='del'>-	0xce75, 0xce8f,</div><div class='del'>-	0xce91, 0xceab,</div><div class='del'>-	0xcead, 0xcec7,</div><div class='del'>-	0xcec9, 0xcee3,</div><div class='del'>-	0xcee5, 0xceff,</div><div class='del'>-	0xcf01, 0xcf1b,</div><div class='del'>-	0xcf1d, 0xcf37,</div><div class='del'>-	0xcf39, 0xcf53,</div><div class='del'>-	0xcf55, 0xcf6f,</div><div class='del'>-	0xcf71, 0xcf8b,</div><div class='del'>-	0xcf8d, 0xcfa7,</div><div class='del'>-	0xcfa9, 0xcfc3,</div><div class='del'>-	0xcfc5, 0xcfdf,</div><div class='del'>-	0xcfe1, 0xcffb,</div><div class='del'>-	0xcffd, 0xd017,</div><div class='del'>-	0xd019, 0xd033,</div><div class='del'>-	0xd035, 0xd04f,</div><div class='del'>-	0xd051, 0xd06b,</div><div class='del'>-	0xd06d, 0xd087,</div><div class='del'>-	0xd089, 0xd0a3,</div><div class='del'>-	0xd0a5, 0xd0bf,</div><div class='del'>-	0xd0c1, 0xd0db,</div><div class='del'>-	0xd0dd, 0xd0f7,</div><div class='del'>-	0xd0f9, 0xd113,</div><div class='del'>-	0xd115, 0xd12f,</div><div class='del'>-	0xd131, 0xd14b,</div><div class='del'>-	0xd14d, 0xd167,</div><div class='del'>-	0xd169, 0xd183,</div><div class='del'>-	0xd185, 0xd19f,</div><div class='del'>-	0xd1a1, 0xd1bb,</div><div class='del'>-	0xd1bd, 0xd1d7,</div><div class='del'>-	0xd1d9, 0xd1f3,</div><div class='del'>-	0xd1f5, 0xd20f,</div><div class='del'>-	0xd211, 0xd22b,</div><div class='del'>-	0xd22d, 0xd247,</div><div class='del'>-	0xd249, 0xd263,</div><div class='del'>-	0xd265, 0xd27f,</div><div class='del'>-	0xd281, 0xd29b,</div><div class='del'>-	0xd29d, 0xd2b7,</div><div class='del'>-	0xd2b9, 0xd2d3,</div><div class='del'>-	0xd2d5, 0xd2ef,</div><div class='del'>-	0xd2f1, 0xd30b,</div><div class='del'>-	0xd30d, 0xd327,</div><div class='del'>-	0xd329, 0xd343,</div><div class='del'>-	0xd345, 0xd35f,</div><div class='del'>-	0xd361, 0xd37b,</div><div class='del'>-	0xd37d, 0xd397,</div><div class='del'>-	0xd399, 0xd3b3,</div><div class='del'>-	0xd3b5, 0xd3cf,</div><div class='del'>-	0xd3d1, 0xd3eb,</div><div class='del'>-	0xd3ed, 0xd407,</div><div class='del'>-	0xd409, 0xd423,</div><div class='del'>-	0xd425, 0xd43f,</div><div class='del'>-	0xd441, 0xd45b,</div><div class='del'>-	0xd45d, 0xd477,</div><div class='del'>-	0xd479, 0xd493,</div><div class='del'>-	0xd495, 0xd4af,</div><div class='del'>-	0xd4b1, 0xd4cb,</div><div class='del'>-	0xd4cd, 0xd4e7,</div><div class='del'>-	0xd4e9, 0xd503,</div><div class='del'>-	0xd505, 0xd51f,</div><div class='del'>-	0xd521, 0xd53b,</div><div class='del'>-	0xd53d, 0xd557,</div><div class='del'>-	0xd559, 0xd573,</div><div class='del'>-	0xd575, 0xd58f,</div><div class='del'>-	0xd591, 0xd5ab,</div><div class='del'>-	0xd5ad, 0xd5c7,</div><div class='del'>-	0xd5c9, 0xd5e3,</div><div class='del'>-	0xd5e5, 0xd5ff,</div><div class='del'>-	0xd601, 0xd61b,</div><div class='del'>-	0xd61d, 0xd637,</div><div class='del'>-	0xd639, 0xd653,</div><div class='del'>-	0xd655, 0xd66f,</div><div class='del'>-	0xd671, 0xd68b,</div><div class='del'>-	0xd68d, 0xd6a7,</div><div class='del'>-	0xd6a9, 0xd6c3,</div><div class='del'>-	0xd6c5, 0xd6df,</div><div class='del'>-	0xd6e1, 0xd6fb,</div><div class='del'>-	0xd6fd, 0xd717,</div><div class='del'>-	0xd719, 0xd733,</div><div class='del'>-	0xd735, 0xd74f,</div><div class='del'>-	0xd751, 0xd76b,</div><div class='del'>-	0xd76d, 0xd787,</div><div class='del'>-	0xd789, 0xd7a3,</div><div class='del'>-}; /* CR_Grapheme_Cluster_Break_LVT */</div><div class='del'>-</div><div class='del'>-/* 'Grapheme_Cluster_Break_ZWJ': Grapheme_Cluster_Break=ZWJ */</div><div class='del'>-static const OnigCodePoint CR_Grapheme_Cluster_Break_ZWJ[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x200d, 0x200d,</div><div class='del'>-}; /* CR_Grapheme_Cluster_Break_ZWJ */</div><div class='del'>-</div><div class='del'>-/* 'In_Basic_Latin': Block */</div><div class='del'>-#define CR_In_Basic_Latin CR_ASCII</div><div class='del'>-</div><div class='del'>-/* 'In_Latin_1_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Latin_1_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0080, 0x00ff,</div><div class='del'>-}; /* CR_In_Latin_1_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Latin_Extended_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Latin_Extended_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0100, 0x017f,</div><div class='del'>-}; /* CR_In_Latin_Extended_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Latin_Extended_B': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Latin_Extended_B[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0180, 0x024f,</div><div class='del'>-}; /* CR_In_Latin_Extended_B */</div><div class='del'>-</div><div class='del'>-/* 'In_IPA_Extensions': Block */</div><div class='del'>-static const OnigCodePoint CR_In_IPA_Extensions[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0250, 0x02af,</div><div class='del'>-}; /* CR_In_IPA_Extensions */</div><div class='del'>-</div><div class='del'>-/* 'In_Spacing_Modifier_Letters': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Spacing_Modifier_Letters[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x02b0, 0x02ff,</div><div class='del'>-}; /* CR_In_Spacing_Modifier_Letters */</div><div class='del'>-</div><div class='del'>-/* 'In_Combining_Diacritical_Marks': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Combining_Diacritical_Marks[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0300, 0x036f,</div><div class='del'>-}; /* CR_In_Combining_Diacritical_Marks */</div><div class='del'>-</div><div class='del'>-/* 'In_Greek_and_Coptic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Greek_and_Coptic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0370, 0x03ff,</div><div class='del'>-}; /* CR_In_Greek_and_Coptic */</div><div class='del'>-</div><div class='del'>-/* 'In_Cyrillic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Cyrillic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0400, 0x04ff,</div><div class='del'>-}; /* CR_In_Cyrillic */</div><div class='del'>-</div><div class='del'>-/* 'In_Cyrillic_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Cyrillic_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0500, 0x052f,</div><div class='del'>-}; /* CR_In_Cyrillic_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Armenian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Armenian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0530, 0x058f,</div><div class='del'>-}; /* CR_In_Armenian */</div><div class='del'>-</div><div class='del'>-/* 'In_Hebrew': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Hebrew[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0590, 0x05ff,</div><div class='del'>-}; /* CR_In_Hebrew */</div><div class='del'>-</div><div class='del'>-/* 'In_Arabic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Arabic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0600, 0x06ff,</div><div class='del'>-}; /* CR_In_Arabic */</div><div class='del'>-</div><div class='del'>-/* 'In_Syriac': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Syriac[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0700, 0x074f,</div><div class='del'>-}; /* CR_In_Syriac */</div><div class='del'>-</div><div class='del'>-/* 'In_Arabic_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Arabic_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0750, 0x077f,</div><div class='del'>-}; /* CR_In_Arabic_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Thaana': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Thaana[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0780, 0x07bf,</div><div class='del'>-}; /* CR_In_Thaana */</div><div class='del'>-</div><div class='del'>-/* 'In_NKo': Block */</div><div class='del'>-static const OnigCodePoint CR_In_NKo[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x07c0, 0x07ff,</div><div class='del'>-}; /* CR_In_NKo */</div><div class='del'>-</div><div class='del'>-/* 'In_Samaritan': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Samaritan[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0800, 0x083f,</div><div class='del'>-}; /* CR_In_Samaritan */</div><div class='del'>-</div><div class='del'>-/* 'In_Mandaic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Mandaic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0840, 0x085f,</div><div class='del'>-}; /* CR_In_Mandaic */</div><div class='del'>-</div><div class='del'>-/* 'In_Syriac_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Syriac_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0860, 0x086f,</div><div class='del'>-}; /* CR_In_Syriac_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Arabic_Extended_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Arabic_Extended_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x08a0, 0x08ff,</div><div class='del'>-}; /* CR_In_Arabic_Extended_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Devanagari': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Devanagari[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0900, 0x097f,</div><div class='del'>-}; /* CR_In_Devanagari */</div><div class='del'>-</div><div class='del'>-/* 'In_Bengali': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Bengali[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0980, 0x09ff,</div><div class='del'>-}; /* CR_In_Bengali */</div><div class='del'>-</div><div class='del'>-/* 'In_Gurmukhi': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Gurmukhi[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0a00, 0x0a7f,</div><div class='del'>-}; /* CR_In_Gurmukhi */</div><div class='del'>-</div><div class='del'>-/* 'In_Gujarati': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Gujarati[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0a80, 0x0aff,</div><div class='del'>-}; /* CR_In_Gujarati */</div><div class='del'>-</div><div class='del'>-/* 'In_Oriya': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Oriya[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0b00, 0x0b7f,</div><div class='del'>-}; /* CR_In_Oriya */</div><div class='del'>-</div><div class='del'>-/* 'In_Tamil': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tamil[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0b80, 0x0bff,</div><div class='del'>-}; /* CR_In_Tamil */</div><div class='del'>-</div><div class='del'>-/* 'In_Telugu': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Telugu[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0c00, 0x0c7f,</div><div class='del'>-}; /* CR_In_Telugu */</div><div class='del'>-</div><div class='del'>-/* 'In_Kannada': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Kannada[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0c80, 0x0cff,</div><div class='del'>-}; /* CR_In_Kannada */</div><div class='del'>-</div><div class='del'>-/* 'In_Malayalam': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Malayalam[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0d00, 0x0d7f,</div><div class='del'>-}; /* CR_In_Malayalam */</div><div class='del'>-</div><div class='del'>-/* 'In_Sinhala': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Sinhala[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0d80, 0x0dff,</div><div class='del'>-}; /* CR_In_Sinhala */</div><div class='del'>-</div><div class='del'>-/* 'In_Thai': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Thai[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0e00, 0x0e7f,</div><div class='del'>-}; /* CR_In_Thai */</div><div class='del'>-</div><div class='del'>-/* 'In_Lao': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Lao[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0e80, 0x0eff,</div><div class='del'>-}; /* CR_In_Lao */</div><div class='del'>-</div><div class='del'>-/* 'In_Tibetan': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tibetan[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x0f00, 0x0fff,</div><div class='del'>-}; /* CR_In_Tibetan */</div><div class='del'>-</div><div class='del'>-/* 'In_Myanmar': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Myanmar[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1000, 0x109f,</div><div class='del'>-}; /* CR_In_Myanmar */</div><div class='del'>-</div><div class='del'>-/* 'In_Georgian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Georgian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10a0, 0x10ff,</div><div class='del'>-}; /* CR_In_Georgian */</div><div class='del'>-</div><div class='del'>-/* 'In_Hangul_Jamo': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Hangul_Jamo[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1100, 0x11ff,</div><div class='del'>-}; /* CR_In_Hangul_Jamo */</div><div class='del'>-</div><div class='del'>-/* 'In_Ethiopic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ethiopic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1200, 0x137f,</div><div class='del'>-}; /* CR_In_Ethiopic */</div><div class='del'>-</div><div class='del'>-/* 'In_Ethiopic_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ethiopic_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1380, 0x139f,</div><div class='del'>-}; /* CR_In_Ethiopic_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Cherokee': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Cherokee[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x13a0, 0x13ff,</div><div class='del'>-}; /* CR_In_Cherokee */</div><div class='del'>-</div><div class='del'>-/* 'In_Unified_Canadian_Aboriginal_Syllabics': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Unified_Canadian_Aboriginal_Syllabics[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1400, 0x167f,</div><div class='del'>-}; /* CR_In_Unified_Canadian_Aboriginal_Syllabics */</div><div class='del'>-</div><div class='del'>-/* 'In_Ogham': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ogham[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1680, 0x169f,</div><div class='del'>-}; /* CR_In_Ogham */</div><div class='del'>-</div><div class='del'>-/* 'In_Runic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Runic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x16a0, 0x16ff,</div><div class='del'>-}; /* CR_In_Runic */</div><div class='del'>-</div><div class='del'>-/* 'In_Tagalog': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tagalog[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1700, 0x171f,</div><div class='del'>-}; /* CR_In_Tagalog */</div><div class='del'>-</div><div class='del'>-/* 'In_Hanunoo': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Hanunoo[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1720, 0x173f,</div><div class='del'>-}; /* CR_In_Hanunoo */</div><div class='del'>-</div><div class='del'>-/* 'In_Buhid': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Buhid[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1740, 0x175f,</div><div class='del'>-}; /* CR_In_Buhid */</div><div class='del'>-</div><div class='del'>-/* 'In_Tagbanwa': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tagbanwa[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1760, 0x177f,</div><div class='del'>-}; /* CR_In_Tagbanwa */</div><div class='del'>-</div><div class='del'>-/* 'In_Khmer': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Khmer[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1780, 0x17ff,</div><div class='del'>-}; /* CR_In_Khmer */</div><div class='del'>-</div><div class='del'>-/* 'In_Mongolian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Mongolian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1800, 0x18af,</div><div class='del'>-}; /* CR_In_Mongolian */</div><div class='del'>-</div><div class='del'>-/* 'In_Unified_Canadian_Aboriginal_Syllabics_Extended': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x18b0, 0x18ff,</div><div class='del'>-}; /* CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended */</div><div class='del'>-</div><div class='del'>-/* 'In_Limbu': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Limbu[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1900, 0x194f,</div><div class='del'>-}; /* CR_In_Limbu */</div><div class='del'>-</div><div class='del'>-/* 'In_Tai_Le': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tai_Le[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1950, 0x197f,</div><div class='del'>-}; /* CR_In_Tai_Le */</div><div class='del'>-</div><div class='del'>-/* 'In_New_Tai_Lue': Block */</div><div class='del'>-static const OnigCodePoint CR_In_New_Tai_Lue[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1980, 0x19df,</div><div class='del'>-}; /* CR_In_New_Tai_Lue */</div><div class='del'>-</div><div class='del'>-/* 'In_Khmer_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Khmer_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x19e0, 0x19ff,</div><div class='del'>-}; /* CR_In_Khmer_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Buginese': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Buginese[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1a00, 0x1a1f,</div><div class='del'>-}; /* CR_In_Buginese */</div><div class='del'>-</div><div class='del'>-/* 'In_Tai_Tham': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tai_Tham[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1a20, 0x1aaf,</div><div class='del'>-}; /* CR_In_Tai_Tham */</div><div class='del'>-</div><div class='del'>-/* 'In_Combining_Diacritical_Marks_Extended': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Combining_Diacritical_Marks_Extended[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1ab0, 0x1aff,</div><div class='del'>-}; /* CR_In_Combining_Diacritical_Marks_Extended */</div><div class='del'>-</div><div class='del'>-/* 'In_Balinese': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Balinese[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1b00, 0x1b7f,</div><div class='del'>-}; /* CR_In_Balinese */</div><div class='del'>-</div><div class='del'>-/* 'In_Sundanese': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Sundanese[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1b80, 0x1bbf,</div><div class='del'>-}; /* CR_In_Sundanese */</div><div class='del'>-</div><div class='del'>-/* 'In_Batak': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Batak[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1bc0, 0x1bff,</div><div class='del'>-}; /* CR_In_Batak */</div><div class='del'>-</div><div class='del'>-/* 'In_Lepcha': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Lepcha[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1c00, 0x1c4f,</div><div class='del'>-}; /* CR_In_Lepcha */</div><div class='del'>-</div><div class='del'>-/* 'In_Ol_Chiki': Block */</div><div class='del'>-#define CR_In_Ol_Chiki CR_Ol_Chiki</div><div class='del'>-</div><div class='del'>-/* 'In_Cyrillic_Extended_C': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Cyrillic_Extended_C[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1c80, 0x1c8f,</div><div class='del'>-}; /* CR_In_Cyrillic_Extended_C */</div><div class='del'>-</div><div class='del'>-/* 'In_Georgian_Extended': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Georgian_Extended[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1c90, 0x1cbf,</div><div class='del'>-}; /* CR_In_Georgian_Extended */</div><div class='del'>-</div><div class='del'>-/* 'In_Sundanese_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Sundanese_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1cc0, 0x1ccf,</div><div class='del'>-}; /* CR_In_Sundanese_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Vedic_Extensions': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Vedic_Extensions[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1cd0, 0x1cff,</div><div class='del'>-}; /* CR_In_Vedic_Extensions */</div><div class='del'>-</div><div class='del'>-/* 'In_Phonetic_Extensions': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Phonetic_Extensions[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1d00, 0x1d7f,</div><div class='del'>-}; /* CR_In_Phonetic_Extensions */</div><div class='del'>-</div><div class='del'>-/* 'In_Phonetic_Extensions_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Phonetic_Extensions_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1d80, 0x1dbf,</div><div class='del'>-}; /* CR_In_Phonetic_Extensions_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Combining_Diacritical_Marks_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Combining_Diacritical_Marks_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1dc0, 0x1dff,</div><div class='del'>-}; /* CR_In_Combining_Diacritical_Marks_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Latin_Extended_Additional': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Latin_Extended_Additional[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1e00, 0x1eff,</div><div class='del'>-}; /* CR_In_Latin_Extended_Additional */</div><div class='del'>-</div><div class='del'>-/* 'In_Greek_Extended': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Greek_Extended[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f00, 0x1fff,</div><div class='del'>-}; /* CR_In_Greek_Extended */</div><div class='del'>-</div><div class='del'>-/* 'In_General_Punctuation': Block */</div><div class='del'>-static const OnigCodePoint CR_In_General_Punctuation[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2000, 0x206f,</div><div class='del'>-}; /* CR_In_General_Punctuation */</div><div class='del'>-</div><div class='del'>-/* 'In_Superscripts_and_Subscripts': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Superscripts_and_Subscripts[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2070, 0x209f,</div><div class='del'>-}; /* CR_In_Superscripts_and_Subscripts */</div><div class='del'>-</div><div class='del'>-/* 'In_Currency_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Currency_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x20a0, 0x20cf,</div><div class='del'>-}; /* CR_In_Currency_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Combining_Diacritical_Marks_for_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Combining_Diacritical_Marks_for_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x20d0, 0x20ff,</div><div class='del'>-}; /* CR_In_Combining_Diacritical_Marks_for_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Letterlike_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Letterlike_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2100, 0x214f,</div><div class='del'>-}; /* CR_In_Letterlike_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Number_Forms': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Number_Forms[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2150, 0x218f,</div><div class='del'>-}; /* CR_In_Number_Forms */</div><div class='del'>-</div><div class='del'>-/* 'In_Arrows': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Arrows[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2190, 0x21ff,</div><div class='del'>-}; /* CR_In_Arrows */</div><div class='del'>-</div><div class='del'>-/* 'In_Mathematical_Operators': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Mathematical_Operators[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2200, 0x22ff,</div><div class='del'>-}; /* CR_In_Mathematical_Operators */</div><div class='del'>-</div><div class='del'>-/* 'In_Miscellaneous_Technical': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Miscellaneous_Technical[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2300, 0x23ff,</div><div class='del'>-}; /* CR_In_Miscellaneous_Technical */</div><div class='del'>-</div><div class='del'>-/* 'In_Control_Pictures': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Control_Pictures[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2400, 0x243f,</div><div class='del'>-}; /* CR_In_Control_Pictures */</div><div class='del'>-</div><div class='del'>-/* 'In_Optical_Character_Recognition': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Optical_Character_Recognition[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2440, 0x245f,</div><div class='del'>-}; /* CR_In_Optical_Character_Recognition */</div><div class='del'>-</div><div class='del'>-/* 'In_Enclosed_Alphanumerics': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Enclosed_Alphanumerics[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2460, 0x24ff,</div><div class='del'>-}; /* CR_In_Enclosed_Alphanumerics */</div><div class='del'>-</div><div class='del'>-/* 'In_Box_Drawing': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Box_Drawing[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2500, 0x257f,</div><div class='del'>-}; /* CR_In_Box_Drawing */</div><div class='del'>-</div><div class='del'>-/* 'In_Block_Elements': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Block_Elements[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2580, 0x259f,</div><div class='del'>-}; /* CR_In_Block_Elements */</div><div class='del'>-</div><div class='del'>-/* 'In_Geometric_Shapes': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Geometric_Shapes[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x25a0, 0x25ff,</div><div class='del'>-}; /* CR_In_Geometric_Shapes */</div><div class='del'>-</div><div class='del'>-/* 'In_Miscellaneous_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Miscellaneous_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2600, 0x26ff,</div><div class='del'>-}; /* CR_In_Miscellaneous_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Dingbats': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Dingbats[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2700, 0x27bf,</div><div class='del'>-}; /* CR_In_Dingbats */</div><div class='del'>-</div><div class='del'>-/* 'In_Miscellaneous_Mathematical_Symbols_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Miscellaneous_Mathematical_Symbols_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x27c0, 0x27ef,</div><div class='del'>-}; /* CR_In_Miscellaneous_Mathematical_Symbols_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Supplemental_Arrows_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Supplemental_Arrows_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x27f0, 0x27ff,</div><div class='del'>-}; /* CR_In_Supplemental_Arrows_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Braille_Patterns': Block */</div><div class='del'>-#define CR_In_Braille_Patterns CR_Braille</div><div class='del'>-</div><div class='del'>-/* 'In_Supplemental_Arrows_B': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Supplemental_Arrows_B[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2900, 0x297f,</div><div class='del'>-}; /* CR_In_Supplemental_Arrows_B */</div><div class='del'>-</div><div class='del'>-/* 'In_Miscellaneous_Mathematical_Symbols_B': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Miscellaneous_Mathematical_Symbols_B[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2980, 0x29ff,</div><div class='del'>-}; /* CR_In_Miscellaneous_Mathematical_Symbols_B */</div><div class='del'>-</div><div class='del'>-/* 'In_Supplemental_Mathematical_Operators': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Supplemental_Mathematical_Operators[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2a00, 0x2aff,</div><div class='del'>-}; /* CR_In_Supplemental_Mathematical_Operators */</div><div class='del'>-</div><div class='del'>-/* 'In_Miscellaneous_Symbols_and_Arrows': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Miscellaneous_Symbols_and_Arrows[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2b00, 0x2bff,</div><div class='del'>-}; /* CR_In_Miscellaneous_Symbols_and_Arrows */</div><div class='del'>-</div><div class='del'>-/* 'In_Glagolitic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Glagolitic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2c00, 0x2c5f,</div><div class='del'>-}; /* CR_In_Glagolitic */</div><div class='del'>-</div><div class='del'>-/* 'In_Latin_Extended_C': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Latin_Extended_C[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2c60, 0x2c7f,</div><div class='del'>-}; /* CR_In_Latin_Extended_C */</div><div class='del'>-</div><div class='del'>-/* 'In_Coptic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Coptic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2c80, 0x2cff,</div><div class='del'>-}; /* CR_In_Coptic */</div><div class='del'>-</div><div class='del'>-/* 'In_Georgian_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Georgian_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2d00, 0x2d2f,</div><div class='del'>-}; /* CR_In_Georgian_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Tifinagh': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tifinagh[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2d30, 0x2d7f,</div><div class='del'>-}; /* CR_In_Tifinagh */</div><div class='del'>-</div><div class='del'>-/* 'In_Ethiopic_Extended': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ethiopic_Extended[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2d80, 0x2ddf,</div><div class='del'>-}; /* CR_In_Ethiopic_Extended */</div><div class='del'>-</div><div class='del'>-/* 'In_Cyrillic_Extended_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Cyrillic_Extended_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2de0, 0x2dff,</div><div class='del'>-}; /* CR_In_Cyrillic_Extended_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Supplemental_Punctuation': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Supplemental_Punctuation[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2e00, 0x2e7f,</div><div class='del'>-}; /* CR_In_Supplemental_Punctuation */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Radicals_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Radicals_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2e80, 0x2eff,</div><div class='del'>-}; /* CR_In_CJK_Radicals_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Kangxi_Radicals': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Kangxi_Radicals[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2f00, 0x2fdf,</div><div class='del'>-}; /* CR_In_Kangxi_Radicals */</div><div class='del'>-</div><div class='del'>-/* 'In_Ideographic_Description_Characters': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ideographic_Description_Characters[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2ff0, 0x2fff,</div><div class='del'>-}; /* CR_In_Ideographic_Description_Characters */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Symbols_and_Punctuation': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Symbols_and_Punctuation[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x3000, 0x303f,</div><div class='del'>-}; /* CR_In_CJK_Symbols_and_Punctuation */</div><div class='del'>-</div><div class='del'>-/* 'In_Hiragana': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Hiragana[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x3040, 0x309f,</div><div class='del'>-}; /* CR_In_Hiragana */</div><div class='del'>-</div><div class='del'>-/* 'In_Katakana': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Katakana[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x30a0, 0x30ff,</div><div class='del'>-}; /* CR_In_Katakana */</div><div class='del'>-</div><div class='del'>-/* 'In_Bopomofo': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Bopomofo[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x3100, 0x312f,</div><div class='del'>-}; /* CR_In_Bopomofo */</div><div class='del'>-</div><div class='del'>-/* 'In_Hangul_Compatibility_Jamo': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Hangul_Compatibility_Jamo[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x3130, 0x318f,</div><div class='del'>-}; /* CR_In_Hangul_Compatibility_Jamo */</div><div class='del'>-</div><div class='del'>-/* 'In_Kanbun': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Kanbun[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x3190, 0x319f,</div><div class='del'>-}; /* CR_In_Kanbun */</div><div class='del'>-</div><div class='del'>-/* 'In_Bopomofo_Extended': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Bopomofo_Extended[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x31a0, 0x31bf,</div><div class='del'>-}; /* CR_In_Bopomofo_Extended */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Strokes': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Strokes[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x31c0, 0x31ef,</div><div class='del'>-}; /* CR_In_CJK_Strokes */</div><div class='del'>-</div><div class='del'>-/* 'In_Katakana_Phonetic_Extensions': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Katakana_Phonetic_Extensions[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x31f0, 0x31ff,</div><div class='del'>-}; /* CR_In_Katakana_Phonetic_Extensions */</div><div class='del'>-</div><div class='del'>-/* 'In_Enclosed_CJK_Letters_and_Months': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Enclosed_CJK_Letters_and_Months[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x3200, 0x32ff,</div><div class='del'>-}; /* CR_In_Enclosed_CJK_Letters_and_Months */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Compatibility': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Compatibility[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x3300, 0x33ff,</div><div class='del'>-}; /* CR_In_CJK_Compatibility */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Unified_Ideographs_Extension_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x3400, 0x4dbf,</div><div class='del'>-}; /* CR_In_CJK_Unified_Ideographs_Extension_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Yijing_Hexagram_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Yijing_Hexagram_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x4dc0, 0x4dff,</div><div class='del'>-}; /* CR_In_Yijing_Hexagram_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Unified_Ideographs': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Unified_Ideographs[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x4e00, 0x9fff,</div><div class='del'>-}; /* CR_In_CJK_Unified_Ideographs */</div><div class='del'>-</div><div class='del'>-/* 'In_Yi_Syllables': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Yi_Syllables[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa000, 0xa48f,</div><div class='del'>-}; /* CR_In_Yi_Syllables */</div><div class='del'>-</div><div class='del'>-/* 'In_Yi_Radicals': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Yi_Radicals[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa490, 0xa4cf,</div><div class='del'>-}; /* CR_In_Yi_Radicals */</div><div class='del'>-</div><div class='del'>-/* 'In_Lisu': Block */</div><div class='del'>-#define CR_In_Lisu CR_Lisu</div><div class='del'>-</div><div class='del'>-/* 'In_Vai': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Vai[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa500, 0xa63f,</div><div class='del'>-}; /* CR_In_Vai */</div><div class='del'>-</div><div class='del'>-/* 'In_Cyrillic_Extended_B': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Cyrillic_Extended_B[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa640, 0xa69f,</div><div class='del'>-}; /* CR_In_Cyrillic_Extended_B */</div><div class='del'>-</div><div class='del'>-/* 'In_Bamum': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Bamum[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa6a0, 0xa6ff,</div><div class='del'>-}; /* CR_In_Bamum */</div><div class='del'>-</div><div class='del'>-/* 'In_Modifier_Tone_Letters': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Modifier_Tone_Letters[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa700, 0xa71f,</div><div class='del'>-}; /* CR_In_Modifier_Tone_Letters */</div><div class='del'>-</div><div class='del'>-/* 'In_Latin_Extended_D': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Latin_Extended_D[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa720, 0xa7ff,</div><div class='del'>-}; /* CR_In_Latin_Extended_D */</div><div class='del'>-</div><div class='del'>-/* 'In_Syloti_Nagri': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Syloti_Nagri[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa800, 0xa82f,</div><div class='del'>-}; /* CR_In_Syloti_Nagri */</div><div class='del'>-</div><div class='del'>-/* 'In_Common_Indic_Number_Forms': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Common_Indic_Number_Forms[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa830, 0xa83f,</div><div class='del'>-}; /* CR_In_Common_Indic_Number_Forms */</div><div class='del'>-</div><div class='del'>-/* 'In_Phags_pa': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Phags_pa[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa840, 0xa87f,</div><div class='del'>-}; /* CR_In_Phags_pa */</div><div class='del'>-</div><div class='del'>-/* 'In_Saurashtra': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Saurashtra[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa880, 0xa8df,</div><div class='del'>-}; /* CR_In_Saurashtra */</div><div class='del'>-</div><div class='del'>-/* 'In_Devanagari_Extended': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Devanagari_Extended[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa8e0, 0xa8ff,</div><div class='del'>-}; /* CR_In_Devanagari_Extended */</div><div class='del'>-</div><div class='del'>-/* 'In_Kayah_Li': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Kayah_Li[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa900, 0xa92f,</div><div class='del'>-}; /* CR_In_Kayah_Li */</div><div class='del'>-</div><div class='del'>-/* 'In_Rejang': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Rejang[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa930, 0xa95f,</div><div class='del'>-}; /* CR_In_Rejang */</div><div class='del'>-</div><div class='del'>-/* 'In_Hangul_Jamo_Extended_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Hangul_Jamo_Extended_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa960, 0xa97f,</div><div class='del'>-}; /* CR_In_Hangul_Jamo_Extended_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Javanese': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Javanese[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa980, 0xa9df,</div><div class='del'>-}; /* CR_In_Javanese */</div><div class='del'>-</div><div class='del'>-/* 'In_Myanmar_Extended_B': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Myanmar_Extended_B[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xa9e0, 0xa9ff,</div><div class='del'>-}; /* CR_In_Myanmar_Extended_B */</div><div class='del'>-</div><div class='del'>-/* 'In_Cham': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Cham[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xaa00, 0xaa5f,</div><div class='del'>-}; /* CR_In_Cham */</div><div class='del'>-</div><div class='del'>-/* 'In_Myanmar_Extended_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Myanmar_Extended_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xaa60, 0xaa7f,</div><div class='del'>-}; /* CR_In_Myanmar_Extended_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Tai_Viet': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tai_Viet[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xaa80, 0xaadf,</div><div class='del'>-}; /* CR_In_Tai_Viet */</div><div class='del'>-</div><div class='del'>-/* 'In_Meetei_Mayek_Extensions': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Meetei_Mayek_Extensions[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xaae0, 0xaaff,</div><div class='del'>-}; /* CR_In_Meetei_Mayek_Extensions */</div><div class='del'>-</div><div class='del'>-/* 'In_Ethiopic_Extended_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ethiopic_Extended_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xab00, 0xab2f,</div><div class='del'>-}; /* CR_In_Ethiopic_Extended_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Latin_Extended_E': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Latin_Extended_E[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xab30, 0xab6f,</div><div class='del'>-}; /* CR_In_Latin_Extended_E */</div><div class='del'>-</div><div class='del'>-/* 'In_Cherokee_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Cherokee_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xab70, 0xabbf,</div><div class='del'>-}; /* CR_In_Cherokee_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Meetei_Mayek': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Meetei_Mayek[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xabc0, 0xabff,</div><div class='del'>-}; /* CR_In_Meetei_Mayek */</div><div class='del'>-</div><div class='del'>-/* 'In_Hangul_Syllables': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Hangul_Syllables[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xac00, 0xd7af,</div><div class='del'>-}; /* CR_In_Hangul_Syllables */</div><div class='del'>-</div><div class='del'>-/* 'In_Hangul_Jamo_Extended_B': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Hangul_Jamo_Extended_B[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xd7b0, 0xd7ff,</div><div class='del'>-}; /* CR_In_Hangul_Jamo_Extended_B */</div><div class='del'>-</div><div class='del'>-/* 'In_High_Surrogates': Block */</div><div class='del'>-static const OnigCodePoint CR_In_High_Surrogates[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xd800, 0xdb7f,</div><div class='del'>-}; /* CR_In_High_Surrogates */</div><div class='del'>-</div><div class='del'>-/* 'In_High_Private_Use_Surrogates': Block */</div><div class='del'>-static const OnigCodePoint CR_In_High_Private_Use_Surrogates[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xdb80, 0xdbff,</div><div class='del'>-}; /* CR_In_High_Private_Use_Surrogates */</div><div class='del'>-</div><div class='del'>-/* 'In_Low_Surrogates': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Low_Surrogates[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xdc00, 0xdfff,</div><div class='del'>-}; /* CR_In_Low_Surrogates */</div><div class='del'>-</div><div class='del'>-/* 'In_Private_Use_Area': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Private_Use_Area[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xe000, 0xf8ff,</div><div class='del'>-}; /* CR_In_Private_Use_Area */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Compatibility_Ideographs': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Compatibility_Ideographs[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xf900, 0xfaff,</div><div class='del'>-}; /* CR_In_CJK_Compatibility_Ideographs */</div><div class='del'>-</div><div class='del'>-/* 'In_Alphabetic_Presentation_Forms': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Alphabetic_Presentation_Forms[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xfb00, 0xfb4f,</div><div class='del'>-}; /* CR_In_Alphabetic_Presentation_Forms */</div><div class='del'>-</div><div class='del'>-/* 'In_Arabic_Presentation_Forms_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Arabic_Presentation_Forms_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xfb50, 0xfdff,</div><div class='del'>-}; /* CR_In_Arabic_Presentation_Forms_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Variation_Selectors': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Variation_Selectors[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xfe00, 0xfe0f,</div><div class='del'>-}; /* CR_In_Variation_Selectors */</div><div class='del'>-</div><div class='del'>-/* 'In_Vertical_Forms': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Vertical_Forms[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xfe10, 0xfe1f,</div><div class='del'>-}; /* CR_In_Vertical_Forms */</div><div class='del'>-</div><div class='del'>-/* 'In_Combining_Half_Marks': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Combining_Half_Marks[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xfe20, 0xfe2f,</div><div class='del'>-}; /* CR_In_Combining_Half_Marks */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Compatibility_Forms': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Compatibility_Forms[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xfe30, 0xfe4f,</div><div class='del'>-}; /* CR_In_CJK_Compatibility_Forms */</div><div class='del'>-</div><div class='del'>-/* 'In_Small_Form_Variants': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Small_Form_Variants[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xfe50, 0xfe6f,</div><div class='del'>-}; /* CR_In_Small_Form_Variants */</div><div class='del'>-</div><div class='del'>-/* 'In_Arabic_Presentation_Forms_B': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Arabic_Presentation_Forms_B[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xfe70, 0xfeff,</div><div class='del'>-}; /* CR_In_Arabic_Presentation_Forms_B */</div><div class='del'>-</div><div class='del'>-/* 'In_Halfwidth_and_Fullwidth_Forms': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Halfwidth_and_Fullwidth_Forms[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xff00, 0xffef,</div><div class='del'>-}; /* CR_In_Halfwidth_and_Fullwidth_Forms */</div><div class='del'>-</div><div class='del'>-/* 'In_Specials': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Specials[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xfff0, 0xffff,</div><div class='del'>-}; /* CR_In_Specials */</div><div class='del'>-</div><div class='del'>-/* 'In_Linear_B_Syllabary': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Linear_B_Syllabary[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10000, 0x1007f,</div><div class='del'>-}; /* CR_In_Linear_B_Syllabary */</div><div class='del'>-</div><div class='del'>-/* 'In_Linear_B_Ideograms': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Linear_B_Ideograms[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10080, 0x100ff,</div><div class='del'>-}; /* CR_In_Linear_B_Ideograms */</div><div class='del'>-</div><div class='del'>-/* 'In_Aegean_Numbers': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Aegean_Numbers[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10100, 0x1013f,</div><div class='del'>-}; /* CR_In_Aegean_Numbers */</div><div class='del'>-</div><div class='del'>-/* 'In_Ancient_Greek_Numbers': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ancient_Greek_Numbers[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10140, 0x1018f,</div><div class='del'>-}; /* CR_In_Ancient_Greek_Numbers */</div><div class='del'>-</div><div class='del'>-/* 'In_Ancient_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ancient_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10190, 0x101cf,</div><div class='del'>-}; /* CR_In_Ancient_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Phaistos_Disc': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Phaistos_Disc[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x101d0, 0x101ff,</div><div class='del'>-}; /* CR_In_Phaistos_Disc */</div><div class='del'>-</div><div class='del'>-/* 'In_Lycian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Lycian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10280, 0x1029f,</div><div class='del'>-}; /* CR_In_Lycian */</div><div class='del'>-</div><div class='del'>-/* 'In_Carian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Carian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x102a0, 0x102df,</div><div class='del'>-}; /* CR_In_Carian */</div><div class='del'>-</div><div class='del'>-/* 'In_Coptic_Epact_Numbers': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Coptic_Epact_Numbers[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x102e0, 0x102ff,</div><div class='del'>-}; /* CR_In_Coptic_Epact_Numbers */</div><div class='del'>-</div><div class='del'>-/* 'In_Old_Italic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Old_Italic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10300, 0x1032f,</div><div class='del'>-}; /* CR_In_Old_Italic */</div><div class='del'>-</div><div class='del'>-/* 'In_Gothic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Gothic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10330, 0x1034f,</div><div class='del'>-}; /* CR_In_Gothic */</div><div class='del'>-</div><div class='del'>-/* 'In_Old_Permic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Old_Permic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10350, 0x1037f,</div><div class='del'>-}; /* CR_In_Old_Permic */</div><div class='del'>-</div><div class='del'>-/* 'In_Ugaritic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ugaritic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10380, 0x1039f,</div><div class='del'>-}; /* CR_In_Ugaritic */</div><div class='del'>-</div><div class='del'>-/* 'In_Old_Persian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Old_Persian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x103a0, 0x103df,</div><div class='del'>-}; /* CR_In_Old_Persian */</div><div class='del'>-</div><div class='del'>-/* 'In_Deseret': Block */</div><div class='del'>-#define CR_In_Deseret CR_Deseret</div><div class='del'>-</div><div class='del'>-/* 'In_Shavian': Block */</div><div class='del'>-#define CR_In_Shavian CR_Shavian</div><div class='del'>-</div><div class='del'>-/* 'In_Osmanya': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Osmanya[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10480, 0x104af,</div><div class='del'>-}; /* CR_In_Osmanya */</div><div class='del'>-</div><div class='del'>-/* 'In_Osage': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Osage[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x104b0, 0x104ff,</div><div class='del'>-}; /* CR_In_Osage */</div><div class='del'>-</div><div class='del'>-/* 'In_Elbasan': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Elbasan[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10500, 0x1052f,</div><div class='del'>-}; /* CR_In_Elbasan */</div><div class='del'>-</div><div class='del'>-/* 'In_Caucasian_Albanian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Caucasian_Albanian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10530, 0x1056f,</div><div class='del'>-}; /* CR_In_Caucasian_Albanian */</div><div class='del'>-</div><div class='del'>-/* 'In_Linear_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Linear_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10600, 0x1077f,</div><div class='del'>-}; /* CR_In_Linear_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Cypriot_Syllabary': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Cypriot_Syllabary[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10800, 0x1083f,</div><div class='del'>-}; /* CR_In_Cypriot_Syllabary */</div><div class='del'>-</div><div class='del'>-/* 'In_Imperial_Aramaic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Imperial_Aramaic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10840, 0x1085f,</div><div class='del'>-}; /* CR_In_Imperial_Aramaic */</div><div class='del'>-</div><div class='del'>-/* 'In_Palmyrene': Block */</div><div class='del'>-#define CR_In_Palmyrene CR_Palmyrene</div><div class='del'>-</div><div class='del'>-/* 'In_Nabataean': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Nabataean[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10880, 0x108af,</div><div class='del'>-}; /* CR_In_Nabataean */</div><div class='del'>-</div><div class='del'>-/* 'In_Hatran': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Hatran[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x108e0, 0x108ff,</div><div class='del'>-}; /* CR_In_Hatran */</div><div class='del'>-</div><div class='del'>-/* 'In_Phoenician': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Phoenician[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10900, 0x1091f,</div><div class='del'>-}; /* CR_In_Phoenician */</div><div class='del'>-</div><div class='del'>-/* 'In_Lydian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Lydian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10920, 0x1093f,</div><div class='del'>-}; /* CR_In_Lydian */</div><div class='del'>-</div><div class='del'>-/* 'In_Meroitic_Hieroglyphs': Block */</div><div class='del'>-#define CR_In_Meroitic_Hieroglyphs CR_Meroitic_Hieroglyphs</div><div class='del'>-</div><div class='del'>-/* 'In_Meroitic_Cursive': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Meroitic_Cursive[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x109a0, 0x109ff,</div><div class='del'>-}; /* CR_In_Meroitic_Cursive */</div><div class='del'>-</div><div class='del'>-/* 'In_Kharoshthi': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Kharoshthi[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10a00, 0x10a5f,</div><div class='del'>-}; /* CR_In_Kharoshthi */</div><div class='del'>-</div><div class='del'>-/* 'In_Old_South_Arabian': Block */</div><div class='del'>-#define CR_In_Old_South_Arabian CR_Old_South_Arabian</div><div class='del'>-</div><div class='del'>-/* 'In_Old_North_Arabian': Block */</div><div class='del'>-#define CR_In_Old_North_Arabian CR_Old_North_Arabian</div><div class='del'>-</div><div class='del'>-/* 'In_Manichaean': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Manichaean[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10ac0, 0x10aff,</div><div class='del'>-}; /* CR_In_Manichaean */</div><div class='del'>-</div><div class='del'>-/* 'In_Avestan': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Avestan[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10b00, 0x10b3f,</div><div class='del'>-}; /* CR_In_Avestan */</div><div class='del'>-</div><div class='del'>-/* 'In_Inscriptional_Parthian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Inscriptional_Parthian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10b40, 0x10b5f,</div><div class='del'>-}; /* CR_In_Inscriptional_Parthian */</div><div class='del'>-</div><div class='del'>-/* 'In_Inscriptional_Pahlavi': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Inscriptional_Pahlavi[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10b60, 0x10b7f,</div><div class='del'>-}; /* CR_In_Inscriptional_Pahlavi */</div><div class='del'>-</div><div class='del'>-/* 'In_Psalter_Pahlavi': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Psalter_Pahlavi[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10b80, 0x10baf,</div><div class='del'>-}; /* CR_In_Psalter_Pahlavi */</div><div class='del'>-</div><div class='del'>-/* 'In_Old_Turkic': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Old_Turkic[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10c00, 0x10c4f,</div><div class='del'>-}; /* CR_In_Old_Turkic */</div><div class='del'>-</div><div class='del'>-/* 'In_Old_Hungarian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Old_Hungarian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10c80, 0x10cff,</div><div class='del'>-}; /* CR_In_Old_Hungarian */</div><div class='del'>-</div><div class='del'>-/* 'In_Hanifi_Rohingya': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Hanifi_Rohingya[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10d00, 0x10d3f,</div><div class='del'>-}; /* CR_In_Hanifi_Rohingya */</div><div class='del'>-</div><div class='del'>-/* 'In_Rumi_Numeral_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Rumi_Numeral_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10e60, 0x10e7f,</div><div class='del'>-}; /* CR_In_Rumi_Numeral_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Old_Sogdian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Old_Sogdian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10f00, 0x10f2f,</div><div class='del'>-}; /* CR_In_Old_Sogdian */</div><div class='del'>-</div><div class='del'>-/* 'In_Sogdian': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Sogdian[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x10f30, 0x10f6f,</div><div class='del'>-}; /* CR_In_Sogdian */</div><div class='del'>-</div><div class='del'>-/* 'In_Brahmi': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Brahmi[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11000, 0x1107f,</div><div class='del'>-}; /* CR_In_Brahmi */</div><div class='del'>-</div><div class='del'>-/* 'In_Kaithi': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Kaithi[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11080, 0x110cf,</div><div class='del'>-}; /* CR_In_Kaithi */</div><div class='del'>-</div><div class='del'>-/* 'In_Sora_Sompeng': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Sora_Sompeng[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x110d0, 0x110ff,</div><div class='del'>-}; /* CR_In_Sora_Sompeng */</div><div class='del'>-</div><div class='del'>-/* 'In_Chakma': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Chakma[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11100, 0x1114f,</div><div class='del'>-}; /* CR_In_Chakma */</div><div class='del'>-</div><div class='del'>-/* 'In_Mahajani': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Mahajani[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11150, 0x1117f,</div><div class='del'>-}; /* CR_In_Mahajani */</div><div class='del'>-</div><div class='del'>-/* 'In_Sharada': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Sharada[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11180, 0x111df,</div><div class='del'>-}; /* CR_In_Sharada */</div><div class='del'>-</div><div class='del'>-/* 'In_Sinhala_Archaic_Numbers': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Sinhala_Archaic_Numbers[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x111e0, 0x111ff,</div><div class='del'>-}; /* CR_In_Sinhala_Archaic_Numbers */</div><div class='del'>-</div><div class='del'>-/* 'In_Khojki': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Khojki[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11200, 0x1124f,</div><div class='del'>-}; /* CR_In_Khojki */</div><div class='del'>-</div><div class='del'>-/* 'In_Multani': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Multani[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11280, 0x112af,</div><div class='del'>-}; /* CR_In_Multani */</div><div class='del'>-</div><div class='del'>-/* 'In_Khudawadi': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Khudawadi[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x112b0, 0x112ff,</div><div class='del'>-}; /* CR_In_Khudawadi */</div><div class='del'>-</div><div class='del'>-/* 'In_Grantha': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Grantha[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11300, 0x1137f,</div><div class='del'>-}; /* CR_In_Grantha */</div><div class='del'>-</div><div class='del'>-/* 'In_Newa': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Newa[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11400, 0x1147f,</div><div class='del'>-}; /* CR_In_Newa */</div><div class='del'>-</div><div class='del'>-/* 'In_Tirhuta': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tirhuta[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11480, 0x114df,</div><div class='del'>-}; /* CR_In_Tirhuta */</div><div class='del'>-</div><div class='del'>-/* 'In_Siddham': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Siddham[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11580, 0x115ff,</div><div class='del'>-}; /* CR_In_Siddham */</div><div class='del'>-</div><div class='del'>-/* 'In_Modi': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Modi[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11600, 0x1165f,</div><div class='del'>-}; /* CR_In_Modi */</div><div class='del'>-</div><div class='del'>-/* 'In_Mongolian_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Mongolian_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11660, 0x1167f,</div><div class='del'>-}; /* CR_In_Mongolian_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Takri': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Takri[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11680, 0x116cf,</div><div class='del'>-}; /* CR_In_Takri */</div><div class='del'>-</div><div class='del'>-/* 'In_Ahom': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ahom[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11700, 0x1173f,</div><div class='del'>-}; /* CR_In_Ahom */</div><div class='del'>-</div><div class='del'>-/* 'In_Dogra': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Dogra[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11800, 0x1184f,</div><div class='del'>-}; /* CR_In_Dogra */</div><div class='del'>-</div><div class='del'>-/* 'In_Warang_Citi': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Warang_Citi[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x118a0, 0x118ff,</div><div class='del'>-}; /* CR_In_Warang_Citi */</div><div class='del'>-</div><div class='del'>-/* 'In_Zanabazar_Square': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Zanabazar_Square[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11a00, 0x11a4f,</div><div class='del'>-}; /* CR_In_Zanabazar_Square */</div><div class='del'>-</div><div class='del'>-/* 'In_Soyombo': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Soyombo[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11a50, 0x11aaf,</div><div class='del'>-}; /* CR_In_Soyombo */</div><div class='del'>-</div><div class='del'>-/* 'In_Pau_Cin_Hau': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Pau_Cin_Hau[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11ac0, 0x11aff,</div><div class='del'>-}; /* CR_In_Pau_Cin_Hau */</div><div class='del'>-</div><div class='del'>-/* 'In_Bhaiksuki': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Bhaiksuki[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11c00, 0x11c6f,</div><div class='del'>-}; /* CR_In_Bhaiksuki */</div><div class='del'>-</div><div class='del'>-/* 'In_Marchen': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Marchen[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11c70, 0x11cbf,</div><div class='del'>-}; /* CR_In_Marchen */</div><div class='del'>-</div><div class='del'>-/* 'In_Masaram_Gondi': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Masaram_Gondi[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11d00, 0x11d5f,</div><div class='del'>-}; /* CR_In_Masaram_Gondi */</div><div class='del'>-</div><div class='del'>-/* 'In_Gunjala_Gondi': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Gunjala_Gondi[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11d60, 0x11daf,</div><div class='del'>-}; /* CR_In_Gunjala_Gondi */</div><div class='del'>-</div><div class='del'>-/* 'In_Makasar': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Makasar[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x11ee0, 0x11eff,</div><div class='del'>-}; /* CR_In_Makasar */</div><div class='del'>-</div><div class='del'>-/* 'In_Cuneiform': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Cuneiform[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x12000, 0x123ff,</div><div class='del'>-}; /* CR_In_Cuneiform */</div><div class='del'>-</div><div class='del'>-/* 'In_Cuneiform_Numbers_and_Punctuation': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Cuneiform_Numbers_and_Punctuation[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x12400, 0x1247f,</div><div class='del'>-}; /* CR_In_Cuneiform_Numbers_and_Punctuation */</div><div class='del'>-</div><div class='del'>-/* 'In_Early_Dynastic_Cuneiform': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Early_Dynastic_Cuneiform[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x12480, 0x1254f,</div><div class='del'>-}; /* CR_In_Early_Dynastic_Cuneiform */</div><div class='del'>-</div><div class='del'>-/* 'In_Egyptian_Hieroglyphs': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Egyptian_Hieroglyphs[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x13000, 0x1342f,</div><div class='del'>-}; /* CR_In_Egyptian_Hieroglyphs */</div><div class='del'>-</div><div class='del'>-/* 'In_Anatolian_Hieroglyphs': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Anatolian_Hieroglyphs[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x14400, 0x1467f,</div><div class='del'>-}; /* CR_In_Anatolian_Hieroglyphs */</div><div class='del'>-</div><div class='del'>-/* 'In_Bamum_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Bamum_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x16800, 0x16a3f,</div><div class='del'>-}; /* CR_In_Bamum_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Mro': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Mro[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x16a40, 0x16a6f,</div><div class='del'>-}; /* CR_In_Mro */</div><div class='del'>-</div><div class='del'>-/* 'In_Bassa_Vah': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Bassa_Vah[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x16ad0, 0x16aff,</div><div class='del'>-}; /* CR_In_Bassa_Vah */</div><div class='del'>-</div><div class='del'>-/* 'In_Pahawh_Hmong': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Pahawh_Hmong[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x16b00, 0x16b8f,</div><div class='del'>-}; /* CR_In_Pahawh_Hmong */</div><div class='del'>-</div><div class='del'>-/* 'In_Medefaidrin': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Medefaidrin[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x16e40, 0x16e9f,</div><div class='del'>-}; /* CR_In_Medefaidrin */</div><div class='del'>-</div><div class='del'>-/* 'In_Miao': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Miao[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x16f00, 0x16f9f,</div><div class='del'>-}; /* CR_In_Miao */</div><div class='del'>-</div><div class='del'>-/* 'In_Ideographic_Symbols_and_Punctuation': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ideographic_Symbols_and_Punctuation[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x16fe0, 0x16fff,</div><div class='del'>-}; /* CR_In_Ideographic_Symbols_and_Punctuation */</div><div class='del'>-</div><div class='del'>-/* 'In_Tangut': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tangut[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x17000, 0x187ff,</div><div class='del'>-}; /* CR_In_Tangut */</div><div class='del'>-</div><div class='del'>-/* 'In_Tangut_Components': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tangut_Components[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x18800, 0x18aff,</div><div class='del'>-}; /* CR_In_Tangut_Components */</div><div class='del'>-</div><div class='del'>-/* 'In_Kana_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Kana_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1b000, 0x1b0ff,</div><div class='del'>-}; /* CR_In_Kana_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Kana_Extended_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Kana_Extended_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1b100, 0x1b12f,</div><div class='del'>-}; /* CR_In_Kana_Extended_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Nushu': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Nushu[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1b170, 0x1b2ff,</div><div class='del'>-}; /* CR_In_Nushu */</div><div class='del'>-</div><div class='del'>-/* 'In_Duployan': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Duployan[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1bc00, 0x1bc9f,</div><div class='del'>-}; /* CR_In_Duployan */</div><div class='del'>-</div><div class='del'>-/* 'In_Shorthand_Format_Controls': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Shorthand_Format_Controls[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1bca0, 0x1bcaf,</div><div class='del'>-}; /* CR_In_Shorthand_Format_Controls */</div><div class='del'>-</div><div class='del'>-/* 'In_Byzantine_Musical_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Byzantine_Musical_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1d000, 0x1d0ff,</div><div class='del'>-}; /* CR_In_Byzantine_Musical_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Musical_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Musical_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1d100, 0x1d1ff,</div><div class='del'>-}; /* CR_In_Musical_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Ancient_Greek_Musical_Notation': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ancient_Greek_Musical_Notation[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1d200, 0x1d24f,</div><div class='del'>-}; /* CR_In_Ancient_Greek_Musical_Notation */</div><div class='del'>-</div><div class='del'>-/* 'In_Mayan_Numerals': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Mayan_Numerals[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1d2e0, 0x1d2ff,</div><div class='del'>-}; /* CR_In_Mayan_Numerals */</div><div class='del'>-</div><div class='del'>-/* 'In_Tai_Xuan_Jing_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tai_Xuan_Jing_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1d300, 0x1d35f,</div><div class='del'>-}; /* CR_In_Tai_Xuan_Jing_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Counting_Rod_Numerals': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Counting_Rod_Numerals[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1d360, 0x1d37f,</div><div class='del'>-}; /* CR_In_Counting_Rod_Numerals */</div><div class='del'>-</div><div class='del'>-/* 'In_Mathematical_Alphanumeric_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Mathematical_Alphanumeric_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1d400, 0x1d7ff,</div><div class='del'>-}; /* CR_In_Mathematical_Alphanumeric_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Sutton_SignWriting': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Sutton_SignWriting[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1d800, 0x1daaf,</div><div class='del'>-}; /* CR_In_Sutton_SignWriting */</div><div class='del'>-</div><div class='del'>-/* 'In_Glagolitic_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Glagolitic_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1e000, 0x1e02f,</div><div class='del'>-}; /* CR_In_Glagolitic_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Mende_Kikakui': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Mende_Kikakui[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1e800, 0x1e8df,</div><div class='del'>-}; /* CR_In_Mende_Kikakui */</div><div class='del'>-</div><div class='del'>-/* 'In_Adlam': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Adlam[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1e900, 0x1e95f,</div><div class='del'>-}; /* CR_In_Adlam */</div><div class='del'>-</div><div class='del'>-/* 'In_Indic_Siyaq_Numbers': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Indic_Siyaq_Numbers[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1ec70, 0x1ecbf,</div><div class='del'>-}; /* CR_In_Indic_Siyaq_Numbers */</div><div class='del'>-</div><div class='del'>-/* 'In_Arabic_Mathematical_Alphabetic_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Arabic_Mathematical_Alphabetic_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1ee00, 0x1eeff,</div><div class='del'>-}; /* CR_In_Arabic_Mathematical_Alphabetic_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Mahjong_Tiles': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Mahjong_Tiles[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f000, 0x1f02f,</div><div class='del'>-}; /* CR_In_Mahjong_Tiles */</div><div class='del'>-</div><div class='del'>-/* 'In_Domino_Tiles': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Domino_Tiles[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f030, 0x1f09f,</div><div class='del'>-}; /* CR_In_Domino_Tiles */</div><div class='del'>-</div><div class='del'>-/* 'In_Playing_Cards': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Playing_Cards[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f0a0, 0x1f0ff,</div><div class='del'>-}; /* CR_In_Playing_Cards */</div><div class='del'>-</div><div class='del'>-/* 'In_Enclosed_Alphanumeric_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Enclosed_Alphanumeric_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f100, 0x1f1ff,</div><div class='del'>-}; /* CR_In_Enclosed_Alphanumeric_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Enclosed_Ideographic_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Enclosed_Ideographic_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f200, 0x1f2ff,</div><div class='del'>-}; /* CR_In_Enclosed_Ideographic_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Miscellaneous_Symbols_and_Pictographs': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Miscellaneous_Symbols_and_Pictographs[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f300, 0x1f5ff,</div><div class='del'>-}; /* CR_In_Miscellaneous_Symbols_and_Pictographs */</div><div class='del'>-</div><div class='del'>-/* 'In_Emoticons': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Emoticons[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f600, 0x1f64f,</div><div class='del'>-}; /* CR_In_Emoticons */</div><div class='del'>-</div><div class='del'>-/* 'In_Ornamental_Dingbats': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Ornamental_Dingbats[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f650, 0x1f67f,</div><div class='del'>-}; /* CR_In_Ornamental_Dingbats */</div><div class='del'>-</div><div class='del'>-/* 'In_Transport_and_Map_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Transport_and_Map_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f680, 0x1f6ff,</div><div class='del'>-}; /* CR_In_Transport_and_Map_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Alchemical_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Alchemical_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f700, 0x1f77f,</div><div class='del'>-}; /* CR_In_Alchemical_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_Geometric_Shapes_Extended': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Geometric_Shapes_Extended[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f780, 0x1f7ff,</div><div class='del'>-}; /* CR_In_Geometric_Shapes_Extended */</div><div class='del'>-</div><div class='del'>-/* 'In_Supplemental_Arrows_C': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Supplemental_Arrows_C[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f800, 0x1f8ff,</div><div class='del'>-}; /* CR_In_Supplemental_Arrows_C */</div><div class='del'>-</div><div class='del'>-/* 'In_Supplemental_Symbols_and_Pictographs': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Supplemental_Symbols_and_Pictographs[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1f900, 0x1f9ff,</div><div class='del'>-}; /* CR_In_Supplemental_Symbols_and_Pictographs */</div><div class='del'>-</div><div class='del'>-/* 'In_Chess_Symbols': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Chess_Symbols[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x1fa00, 0x1fa6f,</div><div class='del'>-}; /* CR_In_Chess_Symbols */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Unified_Ideographs_Extension_B': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_B[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x20000, 0x2a6df,</div><div class='del'>-}; /* CR_In_CJK_Unified_Ideographs_Extension_B */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Unified_Ideographs_Extension_C': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_C[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2a700, 0x2b73f,</div><div class='del'>-}; /* CR_In_CJK_Unified_Ideographs_Extension_C */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Unified_Ideographs_Extension_D': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_D[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2b740, 0x2b81f,</div><div class='del'>-}; /* CR_In_CJK_Unified_Ideographs_Extension_D */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Unified_Ideographs_Extension_E': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_E[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2b820, 0x2ceaf,</div><div class='del'>-}; /* CR_In_CJK_Unified_Ideographs_Extension_E */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Unified_Ideographs_Extension_F': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_F[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2ceb0, 0x2ebef,</div><div class='del'>-}; /* CR_In_CJK_Unified_Ideographs_Extension_F */</div><div class='del'>-</div><div class='del'>-/* 'In_CJK_Compatibility_Ideographs_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_CJK_Compatibility_Ideographs_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x2f800, 0x2fa1f,</div><div class='del'>-}; /* CR_In_CJK_Compatibility_Ideographs_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Tags': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Tags[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xe0000, 0xe007f,</div><div class='del'>-}; /* CR_In_Tags */</div><div class='del'>-</div><div class='del'>-/* 'In_Variation_Selectors_Supplement': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Variation_Selectors_Supplement[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xe0100, 0xe01ef,</div><div class='del'>-}; /* CR_In_Variation_Selectors_Supplement */</div><div class='del'>-</div><div class='del'>-/* 'In_Supplementary_Private_Use_Area_A': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Supplementary_Private_Use_Area_A[] = {</div><div class='del'>-	1,</div><div class='del'>-	0xf0000, 0xfffff,</div><div class='del'>-}; /* CR_In_Supplementary_Private_Use_Area_A */</div><div class='del'>-</div><div class='del'>-/* 'In_Supplementary_Private_Use_Area_B': Block */</div><div class='del'>-static const OnigCodePoint CR_In_Supplementary_Private_Use_Area_B[] = {</div><div class='del'>-	1,</div><div class='del'>-	0x100000, 0x10ffff,</div><div class='del'>-}; /* CR_In_Supplementary_Private_Use_Area_B */</div><div class='del'>-</div><div class='del'>-/* 'In_No_Block': Block */</div><div class='del'>-static const OnigCodePoint CR_In_No_Block[] = {</div><div class='del'>-	51,</div><div class='del'>-	0x0870, 0x089f,</div><div class='del'>-	0x2fe0, 0x2fef,</div><div class='del'>-	0x10200, 0x1027f,</div><div class='del'>-	0x103e0, 0x103ff,</div><div class='del'>-	0x10570, 0x105ff,</div><div class='del'>-	0x10780, 0x107ff,</div><div class='del'>-	0x108b0, 0x108df,</div><div class='del'>-	0x10940, 0x1097f,</div><div class='del'>-	0x10aa0, 0x10abf,</div><div class='del'>-	0x10bb0, 0x10bff,</div><div class='del'>-	0x10c50, 0x10c7f,</div><div class='del'>-	0x10d40, 0x10e5f,</div><div class='del'>-	0x10e80, 0x10eff,</div><div class='del'>-	0x10f70, 0x10fff,</div><div class='del'>-	0x11250, 0x1127f,</div><div class='del'>-	0x11380, 0x113ff,</div><div class='del'>-	0x114e0, 0x1157f,</div><div class='del'>-	0x116d0, 0x116ff,</div><div class='del'>-	0x11740, 0x117ff,</div><div class='del'>-	0x11850, 0x1189f,</div><div class='del'>-	0x11900, 0x119ff,</div><div class='del'>-	0x11ab0, 0x11abf,</div><div class='del'>-	0x11b00, 0x11bff,</div><div class='del'>-	0x11cc0, 0x11cff,</div><div class='del'>-	0x11db0, 0x11edf,</div><div class='del'>-	0x11f00, 0x11fff,</div><div class='del'>-	0x12550, 0x12fff,</div><div class='del'>-	0x13430, 0x143ff,</div><div class='del'>-	0x14680, 0x167ff,</div><div class='del'>-	0x16a70, 0x16acf,</div><div class='del'>-	0x16b90, 0x16e3f,</div><div class='del'>-	0x16ea0, 0x16eff,</div><div class='del'>-	0x16fa0, 0x16fdf,</div><div class='del'>-	0x18b00, 0x1afff,</div><div class='del'>-	0x1b130, 0x1b16f,</div><div class='del'>-	0x1b300, 0x1bbff,</div><div class='del'>-	0x1bcb0, 0x1cfff,</div><div class='del'>-	0x1d250, 0x1d2df,</div><div class='del'>-	0x1d380, 0x1d3ff,</div><div class='del'>-	0x1dab0, 0x1dfff,</div><div class='del'>-	0x1e030, 0x1e7ff,</div><div class='del'>-	0x1e8e0, 0x1e8ff,</div><div class='del'>-	0x1e960, 0x1ec6f,</div><div class='del'>-	0x1ecc0, 0x1edff,</div><div class='del'>-	0x1ef00, 0x1efff,</div><div class='del'>-	0x1fa70, 0x1ffff,</div><div class='del'>-	0x2a6e0, 0x2a6ff,</div><div class='del'>-	0x2ebf0, 0x2f7ff,</div><div class='del'>-	0x2fa20, 0xdffff,</div><div class='del'>-	0xe0080, 0xe00ff,</div><div class='del'>-	0xe01f0, 0xeffff,</div><div class='del'>-}; /* CR_In_No_Block */</div><div class='del'>-</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-static const OnigCodePoint* const CodeRanges[] = {</div><div class='del'>-  CR_NEWLINE,</div><div class='del'>-  CR_Alpha,</div><div class='del'>-  CR_Blank,</div><div class='del'>-  CR_Cntrl,</div><div class='del'>-  CR_Digit,</div><div class='del'>-  CR_Graph,</div><div class='del'>-  CR_Lower,</div><div class='del'>-  CR_Print,</div><div class='del'>-  CR_XPosixPunct,</div><div class='del'>-  CR_Space,</div><div class='del'>-  CR_Upper,</div><div class='del'>-  CR_XDigit,</div><div class='del'>-  CR_Word,</div><div class='del'>-  CR_Alnum,</div><div class='del'>-  CR_ASCII,</div><div class='del'>-  CR_Punct,</div><div class='del'>-#ifdef USE_UNICODE_PROPERTIES</div><div class='del'>-  CR_Any,</div><div class='del'>-  CR_Assigned,</div><div class='del'>-  CR_C,</div><div class='del'>-  CR_Cc,</div><div class='del'>-  CR_Cf,</div><div class='del'>-  CR_Cn,</div><div class='del'>-  CR_Co,</div><div class='del'>-  CR_Cs,</div><div class='del'>-  CR_L,</div><div class='del'>-  CR_LC,</div><div class='del'>-  CR_Ll,</div><div class='del'>-  CR_Lm,</div><div class='del'>-  CR_Lo,</div><div class='del'>-  CR_Lt,</div><div class='del'>-  CR_Lu,</div><div class='del'>-  CR_M,</div><div class='del'>-  CR_Mc,</div><div class='del'>-  CR_Me,</div><div class='del'>-  CR_Mn,</div><div class='del'>-  CR_N,</div><div class='del'>-  CR_Nd,</div><div class='del'>-  CR_Nl,</div><div class='del'>-  CR_No,</div><div class='del'>-  CR_P,</div><div class='del'>-  CR_Pc,</div><div class='del'>-  CR_Pd,</div><div class='del'>-  CR_Pe,</div><div class='del'>-  CR_Pf,</div><div class='del'>-  CR_Pi,</div><div class='del'>-  CR_Po,</div><div class='del'>-  CR_Ps,</div><div class='del'>-  CR_S,</div><div class='del'>-  CR_Sc,</div><div class='del'>-  CR_Sk,</div><div class='del'>-  CR_Sm,</div><div class='del'>-  CR_So,</div><div class='del'>-  CR_Z,</div><div class='del'>-  CR_Zl,</div><div class='del'>-  CR_Zp,</div><div class='del'>-  CR_Zs,</div><div class='del'>-  CR_Math,</div><div class='del'>-  CR_Alphabetic,</div><div class='del'>-  CR_Lowercase,</div><div class='del'>-  CR_Uppercase,</div><div class='del'>-  CR_Cased,</div><div class='del'>-  CR_Case_Ignorable,</div><div class='del'>-  CR_Changes_When_Lowercased,</div><div class='del'>-  CR_Changes_When_Uppercased,</div><div class='del'>-  CR_Changes_When_Titlecased,</div><div class='del'>-  CR_Changes_When_Casefolded,</div><div class='del'>-  CR_Changes_When_Casemapped,</div><div class='del'>-  CR_ID_Start,</div><div class='del'>-  CR_ID_Continue,</div><div class='del'>-  CR_XID_Start,</div><div class='del'>-  CR_XID_Continue,</div><div class='del'>-  CR_Default_Ignorable_Code_Point,</div><div class='del'>-  CR_Grapheme_Extend,</div><div class='del'>-  CR_Grapheme_Base,</div><div class='del'>-  CR_Grapheme_Link,</div><div class='del'>-  CR_Common,</div><div class='del'>-  CR_Latin,</div><div class='del'>-  CR_Greek,</div><div class='del'>-  CR_Cyrillic,</div><div class='del'>-  CR_Armenian,</div><div class='del'>-  CR_Hebrew,</div><div class='del'>-  CR_Arabic,</div><div class='del'>-  CR_Syriac,</div><div class='del'>-  CR_Thaana,</div><div class='del'>-  CR_Devanagari,</div><div class='del'>-  CR_Bengali,</div><div class='del'>-  CR_Gurmukhi,</div><div class='del'>-  CR_Gujarati,</div><div class='del'>-  CR_Oriya,</div><div class='del'>-  CR_Tamil,</div><div class='del'>-  CR_Telugu,</div><div class='del'>-  CR_Kannada,</div><div class='del'>-  CR_Malayalam,</div><div class='del'>-  CR_Sinhala,</div><div class='del'>-  CR_Thai,</div><div class='del'>-  CR_Lao,</div><div class='del'>-  CR_Tibetan,</div><div class='del'>-  CR_Myanmar,</div><div class='del'>-  CR_Georgian,</div><div class='del'>-  CR_Hangul,</div><div class='del'>-  CR_Ethiopic,</div><div class='del'>-  CR_Cherokee,</div><div class='del'>-  CR_Canadian_Aboriginal,</div><div class='del'>-  CR_Ogham,</div><div class='del'>-  CR_Runic,</div><div class='del'>-  CR_Khmer,</div><div class='del'>-  CR_Mongolian,</div><div class='del'>-  CR_Hiragana,</div><div class='del'>-  CR_Katakana,</div><div class='del'>-  CR_Bopomofo,</div><div class='del'>-  CR_Han,</div><div class='del'>-  CR_Yi,</div><div class='del'>-  CR_Old_Italic,</div><div class='del'>-  CR_Gothic,</div><div class='del'>-  CR_Deseret,</div><div class='del'>-  CR_Inherited,</div><div class='del'>-  CR_Tagalog,</div><div class='del'>-  CR_Hanunoo,</div><div class='del'>-  CR_Buhid,</div><div class='del'>-  CR_Tagbanwa,</div><div class='del'>-  CR_Limbu,</div><div class='del'>-  CR_Tai_Le,</div><div class='del'>-  CR_Linear_B,</div><div class='del'>-  CR_Ugaritic,</div><div class='del'>-  CR_Shavian,</div><div class='del'>-  CR_Osmanya,</div><div class='del'>-  CR_Cypriot,</div><div class='del'>-  CR_Braille,</div><div class='del'>-  CR_Buginese,</div><div class='del'>-  CR_Coptic,</div><div class='del'>-  CR_New_Tai_Lue,</div><div class='del'>-  CR_Glagolitic,</div><div class='del'>-  CR_Tifinagh,</div><div class='del'>-  CR_Syloti_Nagri,</div><div class='del'>-  CR_Old_Persian,</div><div class='del'>-  CR_Kharoshthi,</div><div class='del'>-  CR_Balinese,</div><div class='del'>-  CR_Cuneiform,</div><div class='del'>-  CR_Phoenician,</div><div class='del'>-  CR_Phags_Pa,</div><div class='del'>-  CR_Nko,</div><div class='del'>-  CR_Sundanese,</div><div class='del'>-  CR_Lepcha,</div><div class='del'>-  CR_Ol_Chiki,</div><div class='del'>-  CR_Vai,</div><div class='del'>-  CR_Saurashtra,</div><div class='del'>-  CR_Kayah_Li,</div><div class='del'>-  CR_Rejang,</div><div class='del'>-  CR_Lycian,</div><div class='del'>-  CR_Carian,</div><div class='del'>-  CR_Lydian,</div><div class='del'>-  CR_Cham,</div><div class='del'>-  CR_Tai_Tham,</div><div class='del'>-  CR_Tai_Viet,</div><div class='del'>-  CR_Avestan,</div><div class='del'>-  CR_Egyptian_Hieroglyphs,</div><div class='del'>-  CR_Samaritan,</div><div class='del'>-  CR_Lisu,</div><div class='del'>-  CR_Bamum,</div><div class='del'>-  CR_Javanese,</div><div class='del'>-  CR_Meetei_Mayek,</div><div class='del'>-  CR_Imperial_Aramaic,</div><div class='del'>-  CR_Old_South_Arabian,</div><div class='del'>-  CR_Inscriptional_Parthian,</div><div class='del'>-  CR_Inscriptional_Pahlavi,</div><div class='del'>-  CR_Old_Turkic,</div><div class='del'>-  CR_Kaithi,</div><div class='del'>-  CR_Batak,</div><div class='del'>-  CR_Brahmi,</div><div class='del'>-  CR_Mandaic,</div><div class='del'>-  CR_Chakma,</div><div class='del'>-  CR_Meroitic_Cursive,</div><div class='del'>-  CR_Meroitic_Hieroglyphs,</div><div class='del'>-  CR_Miao,</div><div class='del'>-  CR_Sharada,</div><div class='del'>-  CR_Sora_Sompeng,</div><div class='del'>-  CR_Takri,</div><div class='del'>-  CR_Caucasian_Albanian,</div><div class='del'>-  CR_Bassa_Vah,</div><div class='del'>-  CR_Duployan,</div><div class='del'>-  CR_Elbasan,</div><div class='del'>-  CR_Grantha,</div><div class='del'>-  CR_Pahawh_Hmong,</div><div class='del'>-  CR_Khojki,</div><div class='del'>-  CR_Linear_A,</div><div class='del'>-  CR_Mahajani,</div><div class='del'>-  CR_Manichaean,</div><div class='del'>-  CR_Mende_Kikakui,</div><div class='del'>-  CR_Modi,</div><div class='del'>-  CR_Mro,</div><div class='del'>-  CR_Old_North_Arabian,</div><div class='del'>-  CR_Nabataean,</div><div class='del'>-  CR_Palmyrene,</div><div class='del'>-  CR_Pau_Cin_Hau,</div><div class='del'>-  CR_Old_Permic,</div><div class='del'>-  CR_Psalter_Pahlavi,</div><div class='del'>-  CR_Siddham,</div><div class='del'>-  CR_Khudawadi,</div><div class='del'>-  CR_Tirhuta,</div><div class='del'>-  CR_Warang_Citi,</div><div class='del'>-  CR_Ahom,</div><div class='del'>-  CR_Anatolian_Hieroglyphs,</div><div class='del'>-  CR_Hatran,</div><div class='del'>-  CR_Multani,</div><div class='del'>-  CR_Old_Hungarian,</div><div class='del'>-  CR_SignWriting,</div><div class='del'>-  CR_Adlam,</div><div class='del'>-  CR_Bhaiksuki,</div><div class='del'>-  CR_Marchen,</div><div class='del'>-  CR_Newa,</div><div class='del'>-  CR_Osage,</div><div class='del'>-  CR_Tangut,</div><div class='del'>-  CR_Masaram_Gondi,</div><div class='del'>-  CR_Nushu,</div><div class='del'>-  CR_Soyombo,</div><div class='del'>-  CR_Zanabazar_Square,</div><div class='del'>-  CR_Dogra,</div><div class='del'>-  CR_Gunjala_Gondi,</div><div class='del'>-  CR_Makasar,</div><div class='del'>-  CR_Medefaidrin,</div><div class='del'>-  CR_Hanifi_Rohingya,</div><div class='del'>-  CR_Sogdian,</div><div class='del'>-  CR_Old_Sogdian,</div><div class='del'>-  CR_White_Space,</div><div class='del'>-  CR_Bidi_Control,</div><div class='del'>-  CR_Join_Control,</div><div class='del'>-  CR_Dash,</div><div class='del'>-  CR_Hyphen,</div><div class='del'>-  CR_Quotation_Mark,</div><div class='del'>-  CR_Terminal_Punctuation,</div><div class='del'>-  CR_Other_Math,</div><div class='del'>-  CR_Hex_Digit,</div><div class='del'>-  CR_ASCII_Hex_Digit,</div><div class='del'>-  CR_Other_Alphabetic,</div><div class='del'>-  CR_Ideographic,</div><div class='del'>-  CR_Diacritic,</div><div class='del'>-  CR_Extender,</div><div class='del'>-  CR_Other_Lowercase,</div><div class='del'>-  CR_Other_Uppercase,</div><div class='del'>-  CR_Noncharacter_Code_Point,</div><div class='del'>-  CR_Other_Grapheme_Extend,</div><div class='del'>-  CR_IDS_Binary_Operator,</div><div class='del'>-  CR_IDS_Trinary_Operator,</div><div class='del'>-  CR_Radical,</div><div class='del'>-  CR_Unified_Ideograph,</div><div class='del'>-  CR_Other_Default_Ignorable_Code_Point,</div><div class='del'>-  CR_Deprecated,</div><div class='del'>-  CR_Soft_Dotted,</div><div class='del'>-  CR_Logical_Order_Exception,</div><div class='del'>-  CR_Other_ID_Start,</div><div class='del'>-  CR_Other_ID_Continue,</div><div class='del'>-  CR_Sentence_Terminal,</div><div class='del'>-  CR_Variation_Selector,</div><div class='del'>-  CR_Pattern_White_Space,</div><div class='del'>-  CR_Pattern_Syntax,</div><div class='del'>-  CR_Prepended_Concatenation_Mark,</div><div class='del'>-  CR_Regional_Indicator,</div><div class='del'>-  CR_Emoji,</div><div class='del'>-  CR_Emoji_Presentation,</div><div class='del'>-  CR_Emoji_Modifier,</div><div class='del'>-  CR_Emoji_Modifier_Base,</div><div class='del'>-  CR_Emoji_Component,</div><div class='del'>-  CR_Extended_Pictographic,</div><div class='del'>-  CR_Unknown,</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-  CR_Age_1_1,</div><div class='del'>-  CR_Age_2_0,</div><div class='del'>-  CR_Age_2_1,</div><div class='del'>-  CR_Age_3_0,</div><div class='del'>-  CR_Age_3_1,</div><div class='del'>-  CR_Age_3_2,</div><div class='del'>-  CR_Age_4_0,</div><div class='del'>-  CR_Age_4_1,</div><div class='del'>-  CR_Age_5_0,</div><div class='del'>-  CR_Age_5_1,</div><div class='del'>-  CR_Age_5_2,</div><div class='del'>-  CR_Age_6_0,</div><div class='del'>-  CR_Age_6_1,</div><div class='del'>-  CR_Age_6_2,</div><div class='del'>-  CR_Age_6_3,</div><div class='del'>-  CR_Age_7_0,</div><div class='del'>-  CR_Age_8_0,</div><div class='del'>-  CR_Age_9_0,</div><div class='del'>-  CR_Age_10_0,</div><div class='del'>-  CR_Age_11_0,</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-  CR_Grapheme_Cluster_Break_Prepend,</div><div class='del'>-  CR_Grapheme_Cluster_Break_CR,</div><div class='del'>-  CR_Grapheme_Cluster_Break_LF,</div><div class='del'>-  CR_Grapheme_Cluster_Break_Control,</div><div class='del'>-  CR_Grapheme_Cluster_Break_Extend,</div><div class='del'>-  CR_Grapheme_Cluster_Break_Regional_Indicator,</div><div class='del'>-  CR_Grapheme_Cluster_Break_SpacingMark,</div><div class='del'>-  CR_Grapheme_Cluster_Break_L,</div><div class='del'>-  CR_Grapheme_Cluster_Break_V,</div><div class='del'>-  CR_Grapheme_Cluster_Break_T,</div><div class='del'>-  CR_Grapheme_Cluster_Break_LV,</div><div class='del'>-  CR_Grapheme_Cluster_Break_LVT,</div><div class='del'>-  CR_Grapheme_Cluster_Break_ZWJ,</div><div class='del'>-  CR_In_Basic_Latin,</div><div class='del'>-  CR_In_Latin_1_Supplement,</div><div class='del'>-  CR_In_Latin_Extended_A,</div><div class='del'>-  CR_In_Latin_Extended_B,</div><div class='del'>-  CR_In_IPA_Extensions,</div><div class='del'>-  CR_In_Spacing_Modifier_Letters,</div><div class='del'>-  CR_In_Combining_Diacritical_Marks,</div><div class='del'>-  CR_In_Greek_and_Coptic,</div><div class='del'>-  CR_In_Cyrillic,</div><div class='del'>-  CR_In_Cyrillic_Supplement,</div><div class='del'>-  CR_In_Armenian,</div><div class='del'>-  CR_In_Hebrew,</div><div class='del'>-  CR_In_Arabic,</div><div class='del'>-  CR_In_Syriac,</div><div class='del'>-  CR_In_Arabic_Supplement,</div><div class='del'>-  CR_In_Thaana,</div><div class='del'>-  CR_In_NKo,</div><div class='del'>-  CR_In_Samaritan,</div><div class='del'>-  CR_In_Mandaic,</div><div class='del'>-  CR_In_Syriac_Supplement,</div><div class='del'>-  CR_In_Arabic_Extended_A,</div><div class='del'>-  CR_In_Devanagari,</div><div class='del'>-  CR_In_Bengali,</div><div class='del'>-  CR_In_Gurmukhi,</div><div class='del'>-  CR_In_Gujarati,</div><div class='del'>-  CR_In_Oriya,</div><div class='del'>-  CR_In_Tamil,</div><div class='del'>-  CR_In_Telugu,</div><div class='del'>-  CR_In_Kannada,</div><div class='del'>-  CR_In_Malayalam,</div><div class='del'>-  CR_In_Sinhala,</div><div class='del'>-  CR_In_Thai,</div><div class='del'>-  CR_In_Lao,</div><div class='del'>-  CR_In_Tibetan,</div><div class='del'>-  CR_In_Myanmar,</div><div class='del'>-  CR_In_Georgian,</div><div class='del'>-  CR_In_Hangul_Jamo,</div><div class='del'>-  CR_In_Ethiopic,</div><div class='del'>-  CR_In_Ethiopic_Supplement,</div><div class='del'>-  CR_In_Cherokee,</div><div class='del'>-  CR_In_Unified_Canadian_Aboriginal_Syllabics,</div><div class='del'>-  CR_In_Ogham,</div><div class='del'>-  CR_In_Runic,</div><div class='del'>-  CR_In_Tagalog,</div><div class='del'>-  CR_In_Hanunoo,</div><div class='del'>-  CR_In_Buhid,</div><div class='del'>-  CR_In_Tagbanwa,</div><div class='del'>-  CR_In_Khmer,</div><div class='del'>-  CR_In_Mongolian,</div><div class='del'>-  CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended,</div><div class='del'>-  CR_In_Limbu,</div><div class='del'>-  CR_In_Tai_Le,</div><div class='del'>-  CR_In_New_Tai_Lue,</div><div class='del'>-  CR_In_Khmer_Symbols,</div><div class='del'>-  CR_In_Buginese,</div><div class='del'>-  CR_In_Tai_Tham,</div><div class='del'>-  CR_In_Combining_Diacritical_Marks_Extended,</div><div class='del'>-  CR_In_Balinese,</div><div class='del'>-  CR_In_Sundanese,</div><div class='del'>-  CR_In_Batak,</div><div class='del'>-  CR_In_Lepcha,</div><div class='del'>-  CR_In_Ol_Chiki,</div><div class='del'>-  CR_In_Cyrillic_Extended_C,</div><div class='del'>-  CR_In_Georgian_Extended,</div><div class='del'>-  CR_In_Sundanese_Supplement,</div><div class='del'>-  CR_In_Vedic_Extensions,</div><div class='del'>-  CR_In_Phonetic_Extensions,</div><div class='del'>-  CR_In_Phonetic_Extensions_Supplement,</div><div class='del'>-  CR_In_Combining_Diacritical_Marks_Supplement,</div><div class='del'>-  CR_In_Latin_Extended_Additional,</div><div class='del'>-  CR_In_Greek_Extended,</div><div class='del'>-  CR_In_General_Punctuation,</div><div class='del'>-  CR_In_Superscripts_and_Subscripts,</div><div class='del'>-  CR_In_Currency_Symbols,</div><div class='del'>-  CR_In_Combining_Diacritical_Marks_for_Symbols,</div><div class='del'>-  CR_In_Letterlike_Symbols,</div><div class='del'>-  CR_In_Number_Forms,</div><div class='del'>-  CR_In_Arrows,</div><div class='del'>-  CR_In_Mathematical_Operators,</div><div class='del'>-  CR_In_Miscellaneous_Technical,</div><div class='del'>-  CR_In_Control_Pictures,</div><div class='del'>-  CR_In_Optical_Character_Recognition,</div><div class='del'>-  CR_In_Enclosed_Alphanumerics,</div><div class='del'>-  CR_In_Box_Drawing,</div><div class='del'>-  CR_In_Block_Elements,</div><div class='del'>-  CR_In_Geometric_Shapes,</div><div class='del'>-  CR_In_Miscellaneous_Symbols,</div><div class='del'>-  CR_In_Dingbats,</div><div class='del'>-  CR_In_Miscellaneous_Mathematical_Symbols_A,</div><div class='del'>-  CR_In_Supplemental_Arrows_A,</div><div class='del'>-  CR_In_Braille_Patterns,</div><div class='del'>-  CR_In_Supplemental_Arrows_B,</div><div class='del'>-  CR_In_Miscellaneous_Mathematical_Symbols_B,</div><div class='del'>-  CR_In_Supplemental_Mathematical_Operators,</div><div class='del'>-  CR_In_Miscellaneous_Symbols_and_Arrows,</div><div class='del'>-  CR_In_Glagolitic,</div><div class='del'>-  CR_In_Latin_Extended_C,</div><div class='del'>-  CR_In_Coptic,</div><div class='del'>-  CR_In_Georgian_Supplement,</div><div class='del'>-  CR_In_Tifinagh,</div><div class='del'>-  CR_In_Ethiopic_Extended,</div><div class='del'>-  CR_In_Cyrillic_Extended_A,</div><div class='del'>-  CR_In_Supplemental_Punctuation,</div><div class='del'>-  CR_In_CJK_Radicals_Supplement,</div><div class='del'>-  CR_In_Kangxi_Radicals,</div><div class='del'>-  CR_In_Ideographic_Description_Characters,</div><div class='del'>-  CR_In_CJK_Symbols_and_Punctuation,</div><div class='del'>-  CR_In_Hiragana,</div><div class='del'>-  CR_In_Katakana,</div><div class='del'>-  CR_In_Bopomofo,</div><div class='del'>-  CR_In_Hangul_Compatibility_Jamo,</div><div class='del'>-  CR_In_Kanbun,</div><div class='del'>-  CR_In_Bopomofo_Extended,</div><div class='del'>-  CR_In_CJK_Strokes,</div><div class='del'>-  CR_In_Katakana_Phonetic_Extensions,</div><div class='del'>-  CR_In_Enclosed_CJK_Letters_and_Months,</div><div class='del'>-  CR_In_CJK_Compatibility,</div><div class='del'>-  CR_In_CJK_Unified_Ideographs_Extension_A,</div><div class='del'>-  CR_In_Yijing_Hexagram_Symbols,</div><div class='del'>-  CR_In_CJK_Unified_Ideographs,</div><div class='del'>-  CR_In_Yi_Syllables,</div><div class='del'>-  CR_In_Yi_Radicals,</div><div class='del'>-  CR_In_Lisu,</div><div class='del'>-  CR_In_Vai,</div><div class='del'>-  CR_In_Cyrillic_Extended_B,</div><div class='del'>-  CR_In_Bamum,</div><div class='del'>-  CR_In_Modifier_Tone_Letters,</div><div class='del'>-  CR_In_Latin_Extended_D,</div><div class='del'>-  CR_In_Syloti_Nagri,</div><div class='del'>-  CR_In_Common_Indic_Number_Forms,</div><div class='del'>-  CR_In_Phags_pa,</div><div class='del'>-  CR_In_Saurashtra,</div><div class='del'>-  CR_In_Devanagari_Extended,</div><div class='del'>-  CR_In_Kayah_Li,</div><div class='del'>-  CR_In_Rejang,</div><div class='del'>-  CR_In_Hangul_Jamo_Extended_A,</div><div class='del'>-  CR_In_Javanese,</div><div class='del'>-  CR_In_Myanmar_Extended_B,</div><div class='del'>-  CR_In_Cham,</div><div class='del'>-  CR_In_Myanmar_Extended_A,</div><div class='del'>-  CR_In_Tai_Viet,</div><div class='del'>-  CR_In_Meetei_Mayek_Extensions,</div><div class='del'>-  CR_In_Ethiopic_Extended_A,</div><div class='del'>-  CR_In_Latin_Extended_E,</div><div class='del'>-  CR_In_Cherokee_Supplement,</div><div class='del'>-  CR_In_Meetei_Mayek,</div><div class='del'>-  CR_In_Hangul_Syllables,</div><div class='del'>-  CR_In_Hangul_Jamo_Extended_B,</div><div class='del'>-  CR_In_High_Surrogates,</div><div class='del'>-  CR_In_High_Private_Use_Surrogates,</div><div class='del'>-  CR_In_Low_Surrogates,</div><div class='del'>-  CR_In_Private_Use_Area,</div><div class='del'>-  CR_In_CJK_Compatibility_Ideographs,</div><div class='del'>-  CR_In_Alphabetic_Presentation_Forms,</div><div class='del'>-  CR_In_Arabic_Presentation_Forms_A,</div><div class='del'>-  CR_In_Variation_Selectors,</div><div class='del'>-  CR_In_Vertical_Forms,</div><div class='del'>-  CR_In_Combining_Half_Marks,</div><div class='del'>-  CR_In_CJK_Compatibility_Forms,</div><div class='del'>-  CR_In_Small_Form_Variants,</div><div class='del'>-  CR_In_Arabic_Presentation_Forms_B,</div><div class='del'>-  CR_In_Halfwidth_and_Fullwidth_Forms,</div><div class='del'>-  CR_In_Specials,</div><div class='del'>-  CR_In_Linear_B_Syllabary,</div><div class='del'>-  CR_In_Linear_B_Ideograms,</div><div class='del'>-  CR_In_Aegean_Numbers,</div><div class='del'>-  CR_In_Ancient_Greek_Numbers,</div><div class='del'>-  CR_In_Ancient_Symbols,</div><div class='del'>-  CR_In_Phaistos_Disc,</div><div class='del'>-  CR_In_Lycian,</div><div class='del'>-  CR_In_Carian,</div><div class='del'>-  CR_In_Coptic_Epact_Numbers,</div><div class='del'>-  CR_In_Old_Italic,</div><div class='del'>-  CR_In_Gothic,</div><div class='del'>-  CR_In_Old_Permic,</div><div class='del'>-  CR_In_Ugaritic,</div><div class='del'>-  CR_In_Old_Persian,</div><div class='del'>-  CR_In_Deseret,</div><div class='del'>-  CR_In_Shavian,</div><div class='del'>-  CR_In_Osmanya,</div><div class='del'>-  CR_In_Osage,</div><div class='del'>-  CR_In_Elbasan,</div><div class='del'>-  CR_In_Caucasian_Albanian,</div><div class='del'>-  CR_In_Linear_A,</div><div class='del'>-  CR_In_Cypriot_Syllabary,</div><div class='del'>-  CR_In_Imperial_Aramaic,</div><div class='del'>-  CR_In_Palmyrene,</div><div class='del'>-  CR_In_Nabataean,</div><div class='del'>-  CR_In_Hatran,</div><div class='del'>-  CR_In_Phoenician,</div><div class='del'>-  CR_In_Lydian,</div><div class='del'>-  CR_In_Meroitic_Hieroglyphs,</div><div class='del'>-  CR_In_Meroitic_Cursive,</div><div class='del'>-  CR_In_Kharoshthi,</div><div class='del'>-  CR_In_Old_South_Arabian,</div><div class='del'>-  CR_In_Old_North_Arabian,</div><div class='del'>-  CR_In_Manichaean,</div><div class='del'>-  CR_In_Avestan,</div><div class='del'>-  CR_In_Inscriptional_Parthian,</div><div class='del'>-  CR_In_Inscriptional_Pahlavi,</div><div class='del'>-  CR_In_Psalter_Pahlavi,</div><div class='del'>-  CR_In_Old_Turkic,</div><div class='del'>-  CR_In_Old_Hungarian,</div><div class='del'>-  CR_In_Hanifi_Rohingya,</div><div class='del'>-  CR_In_Rumi_Numeral_Symbols,</div><div class='del'>-  CR_In_Old_Sogdian,</div><div class='del'>-  CR_In_Sogdian,</div><div class='del'>-  CR_In_Brahmi,</div><div class='del'>-  CR_In_Kaithi,</div><div class='del'>-  CR_In_Sora_Sompeng,</div><div class='del'>-  CR_In_Chakma,</div><div class='del'>-  CR_In_Mahajani,</div><div class='del'>-  CR_In_Sharada,</div><div class='del'>-  CR_In_Sinhala_Archaic_Numbers,</div><div class='del'>-  CR_In_Khojki,</div><div class='del'>-  CR_In_Multani,</div><div class='del'>-  CR_In_Khudawadi,</div><div class='del'>-  CR_In_Grantha,</div><div class='del'>-  CR_In_Newa,</div><div class='del'>-  CR_In_Tirhuta,</div><div class='del'>-  CR_In_Siddham,</div><div class='del'>-  CR_In_Modi,</div><div class='del'>-  CR_In_Mongolian_Supplement,</div><div class='del'>-  CR_In_Takri,</div><div class='del'>-  CR_In_Ahom,</div><div class='del'>-  CR_In_Dogra,</div><div class='del'>-  CR_In_Warang_Citi,</div><div class='del'>-  CR_In_Zanabazar_Square,</div><div class='del'>-  CR_In_Soyombo,</div><div class='del'>-  CR_In_Pau_Cin_Hau,</div><div class='del'>-  CR_In_Bhaiksuki,</div><div class='del'>-  CR_In_Marchen,</div><div class='del'>-  CR_In_Masaram_Gondi,</div><div class='del'>-  CR_In_Gunjala_Gondi,</div><div class='del'>-  CR_In_Makasar,</div><div class='del'>-  CR_In_Cuneiform,</div><div class='del'>-  CR_In_Cuneiform_Numbers_and_Punctuation,</div><div class='del'>-  CR_In_Early_Dynastic_Cuneiform,</div><div class='del'>-  CR_In_Egyptian_Hieroglyphs,</div><div class='del'>-  CR_In_Anatolian_Hieroglyphs,</div><div class='del'>-  CR_In_Bamum_Supplement,</div><div class='del'>-  CR_In_Mro,</div><div class='del'>-  CR_In_Bassa_Vah,</div><div class='del'>-  CR_In_Pahawh_Hmong,</div><div class='del'>-  CR_In_Medefaidrin,</div><div class='del'>-  CR_In_Miao,</div><div class='del'>-  CR_In_Ideographic_Symbols_and_Punctuation,</div><div class='del'>-  CR_In_Tangut,</div><div class='del'>-  CR_In_Tangut_Components,</div><div class='del'>-  CR_In_Kana_Supplement,</div><div class='del'>-  CR_In_Kana_Extended_A,</div><div class='del'>-  CR_In_Nushu,</div><div class='del'>-  CR_In_Duployan,</div><div class='del'>-  CR_In_Shorthand_Format_Controls,</div><div class='del'>-  CR_In_Byzantine_Musical_Symbols,</div><div class='del'>-  CR_In_Musical_Symbols,</div><div class='del'>-  CR_In_Ancient_Greek_Musical_Notation,</div><div class='del'>-  CR_In_Mayan_Numerals,</div><div class='del'>-  CR_In_Tai_Xuan_Jing_Symbols,</div><div class='del'>-  CR_In_Counting_Rod_Numerals,</div><div class='del'>-  CR_In_Mathematical_Alphanumeric_Symbols,</div><div class='del'>-  CR_In_Sutton_SignWriting,</div><div class='del'>-  CR_In_Glagolitic_Supplement,</div><div class='del'>-  CR_In_Mende_Kikakui,</div><div class='del'>-  CR_In_Adlam,</div><div class='del'>-  CR_In_Indic_Siyaq_Numbers,</div><div class='del'>-  CR_In_Arabic_Mathematical_Alphabetic_Symbols,</div><div class='del'>-  CR_In_Mahjong_Tiles,</div><div class='del'>-  CR_In_Domino_Tiles,</div><div class='del'>-  CR_In_Playing_Cards,</div><div class='del'>-  CR_In_Enclosed_Alphanumeric_Supplement,</div><div class='del'>-  CR_In_Enclosed_Ideographic_Supplement,</div><div class='del'>-  CR_In_Miscellaneous_Symbols_and_Pictographs,</div><div class='del'>-  CR_In_Emoticons,</div><div class='del'>-  CR_In_Ornamental_Dingbats,</div><div class='del'>-  CR_In_Transport_and_Map_Symbols,</div><div class='del'>-  CR_In_Alchemical_Symbols,</div><div class='del'>-  CR_In_Geometric_Shapes_Extended,</div><div class='del'>-  CR_In_Supplemental_Arrows_C,</div><div class='del'>-  CR_In_Supplemental_Symbols_and_Pictographs,</div><div class='del'>-  CR_In_Chess_Symbols,</div><div class='del'>-  CR_In_CJK_Unified_Ideographs_Extension_B,</div><div class='del'>-  CR_In_CJK_Unified_Ideographs_Extension_C,</div><div class='del'>-  CR_In_CJK_Unified_Ideographs_Extension_D,</div><div class='del'>-  CR_In_CJK_Unified_Ideographs_Extension_E,</div><div class='del'>-  CR_In_CJK_Unified_Ideographs_Extension_F,</div><div class='del'>-  CR_In_CJK_Compatibility_Ideographs_Supplement,</div><div class='del'>-  CR_In_Tags,</div><div class='del'>-  CR_In_Variation_Selectors_Supplement,</div><div class='del'>-  CR_In_Supplementary_Private_Use_Area_A,</div><div class='del'>-  CR_In_Supplementary_Private_Use_Area_B,</div><div class='del'>-  CR_In_No_Block,</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-};</div><div class='del'>-struct uniname2ctype_struct {</div><div class='del'>-  short name;</div><div class='del'>-  unsigned short ctype;</div><div class='del'>-};</div><div class='del'>-#define uniname2ctype_offset(str) offsetof(struct uniname2ctype_pool_t, uniname2ctype_pool_##str)</div><div class='del'>-</div><div class='del'>-static const struct uniname2ctype_struct *uniname2ctype_p(</div><div class='del'>-#if !(1+0) /* if ANSI, old style not to conflict with generated prototype */</div><div class='del'>-    const char *, unsigned int</div><div class='del'>-#endif</div><div class='del'>-);</div><div class='del'>-</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-#define TOTAL_KEYWORDS 15</div><div class='del'>-#define MIN_WORD_LENGTH 4</div><div class='del'>-#define MAX_WORD_LENGTH 11</div><div class='del'>-#define MIN_HASH_VALUE 6</div><div class='del'>-#define MAX_HASH_VALUE 20</div><div class='del'>-/* maximum key range = 15, duplicates = 0 */</div><div class='del'>-#else /* USE_UNICODE_PROPERTIES */</div><div class='del'>-#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-#define TOTAL_KEYWORDS 797</div><div class='del'>-#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-#define TOTAL_KEYWORDS 817</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-#define MIN_WORD_LENGTH 1</div><div class='del'>-#define MAX_WORD_LENGTH 44</div><div class='del'>-#define MIN_HASH_VALUE 11</div><div class='del'>-#define MAX_HASH_VALUE 5676</div><div class='del'>-/* maximum key range = 5666, duplicates = 0 */</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-__inline</div><div class='del'>-#else</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-inline</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-static unsigned int</div><div class='del'>-uniname2ctype_hash (register const char *str, register size_t len)</div><div class='del'>-{</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-  static const unsigned char asso_values[] =</div><div class='del'>-#else /* USE_UNICODE_PROPERTIES */</div><div class='del'>-  static const unsigned short asso_values[] =</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    {</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='del'>-      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='del'>-      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='del'>-      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='del'>-      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='del'>-      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='del'>-      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='del'>-      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='del'>-      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='del'>-      21, 21, 21, 21, 21, 21, 21,  3, 12,  5,</div><div class='del'>-       4, 21, 21, 10, 21,  1, 21, 21, 11, 21,</div><div class='del'>-       2,  1,  1, 21,  1,  7,  4,  6, 21,  1,</div><div class='del'>-       4, 21, 21, 21, 21, 21, 21, 21</div><div class='del'>-#else /* USE_UNICODE_PROPERTIES */</div><div class='del'>-      5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677,</div><div class='del'>-      5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677,</div><div class='del'>-      5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677,</div><div class='del'>-      5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677,</div><div class='del'>-#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-      5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677,</div><div class='del'>-      5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677,</div><div class='del'>-#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      5677, 5677, 5677, 5677, 5677, 5677,    1, 5677,    2,    1,</div><div class='del'>-         5,   17,   26,   15,    9,   19,    7,    1, 5677, 5677,</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677,</div><div class='del'>-      5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677,</div><div class='del'>-      5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677,</div><div class='del'>-      5677, 5677, 5677, 5677, 5677, 5677, 5677,    1, 1422,  116,</div><div class='del'>-       365,    6, 1026,  929,  819,    4, 1250,   18,  428,   85,</div><div class='del'>-         8,   17, 1128, 1210,   50,  147,  306,  544, 1096,  631,</div><div class='del'>-       449, 1646,   10,    1,   15, 5677, 5677, 5677, 5677, 5677</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    };</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-  return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]];</div><div class='del'>-#else /* USE_UNICODE_PROPERTIES */</div><div class='del'>-  register unsigned int hval = (unsigned int)len;</div><div class='del'>-</div><div class='del'>-  switch (hval)</div><div class='del'>-    {</div><div class='del'>-      default:</div><div class='del'>-        hval += asso_values[(unsigned char)str[15]];</div><div class='del'>-      /*FALLTHROUGH*/</div><div class='del'>-      case 15:</div><div class='del'>-      case 14:</div><div class='del'>-      case 13:</div><div class='del'>-      case 12:</div><div class='del'>-        hval += asso_values[(unsigned char)str[11]];</div><div class='del'>-      /*FALLTHROUGH*/</div><div class='del'>-      case 11:</div><div class='del'>-      case 10:</div><div class='del'>-      case 9:</div><div class='del'>-      case 8:</div><div class='del'>-      case 7:</div><div class='del'>-      case 6:</div><div class='del'>-        hval += asso_values[(unsigned char)str[5]];</div><div class='del'>-      /*FALLTHROUGH*/</div><div class='del'>-      case 5:</div><div class='del'>-        hval += asso_values[(unsigned char)str[4]];</div><div class='del'>-      /*FALLTHROUGH*/</div><div class='del'>-      case 4:</div><div class='del'>-      case 3:</div><div class='del'>-        hval += asso_values[(unsigned char)str[2]];</div><div class='del'>-      /*FALLTHROUGH*/</div><div class='del'>-      case 2:</div><div class='del'>-        hval += asso_values[(unsigned char)str[1]];</div><div class='del'>-      /*FALLTHROUGH*/</div><div class='del'>-      case 1:</div><div class='del'>-        hval += asso_values[(unsigned char)str[0]+2];</div><div class='del'>-        break;</div><div class='del'>-    }</div><div class='del'>-  return hval + asso_values[(unsigned char)str[len - 1]];</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-struct uniname2ctype_pool_t</div><div class='del'>-  {</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-    char uniname2ctype_pool_str6[sizeof("word")];</div><div class='del'>-    char uniname2ctype_pool_str7[sizeof("print")];</div><div class='del'>-    char uniname2ctype_pool_str8[sizeof("punct")];</div><div class='del'>-    char uniname2ctype_pool_str9[sizeof("alpha")];</div><div class='del'>-    char uniname2ctype_pool_str10[sizeof("alnum")];</div><div class='del'>-    char uniname2ctype_pool_str11[sizeof("xdigit")];</div><div class='del'>-    char uniname2ctype_pool_str12[sizeof("upper")];</div><div class='del'>-    char uniname2ctype_pool_str13[sizeof("ascii")];</div><div class='del'>-    char uniname2ctype_pool_str14[sizeof("cntrl")];</div><div class='del'>-    char uniname2ctype_pool_str15[sizeof("space")];</div><div class='del'>-    char uniname2ctype_pool_str16[sizeof("xposixpunct")];</div><div class='del'>-    char uniname2ctype_pool_str17[sizeof("lower")];</div><div class='del'>-    char uniname2ctype_pool_str18[sizeof("graph")];</div><div class='del'>-    char uniname2ctype_pool_str19[sizeof("digit")];</div><div class='del'>-    char uniname2ctype_pool_str20[sizeof("blank")];</div><div class='del'>-#else /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    char uniname2ctype_pool_str11[sizeof("yi")];</div><div class='del'>-    char uniname2ctype_pool_str16[sizeof("ci")];</div><div class='del'>-    char uniname2ctype_pool_str17[sizeof("yiii")];</div><div class='del'>-    char uniname2ctype_pool_str22[sizeof("lana")];</div><div class='del'>-    char uniname2ctype_pool_str24[sizeof("cn")];</div><div class='del'>-    char uniname2ctype_pool_str25[sizeof("lina")];</div><div class='del'>-    char uniname2ctype_pool_str26[sizeof("z")];</div><div class='del'>-    char uniname2ctype_pool_str31[sizeof("me")];</div><div class='del'>-    char uniname2ctype_pool_str34[sizeof("mani")];</div><div class='del'>-    char uniname2ctype_pool_str35[sizeof("mn")];</div><div class='del'>-    char uniname2ctype_pool_str40[sizeof("loe")];</div><div class='del'>-    char uniname2ctype_pool_str41[sizeof("maka")];</div><div class='del'>-    char uniname2ctype_pool_str42[sizeof("co")];</div><div class='del'>-    char uniname2ctype_pool_str43[sizeof("miao")];</div><div class='del'>-    char uniname2ctype_pool_str44[sizeof("lo")];</div><div class='del'>-    char uniname2ctype_pool_str46[sizeof("lao")];</div><div class='del'>-    char uniname2ctype_pool_str47[sizeof("laoo")];</div><div class='del'>-    char uniname2ctype_pool_str49[sizeof("zzzz")];</div><div class='del'>-    char uniname2ctype_pool_str60[sizeof("pi")];</div><div class='del'>-    char uniname2ctype_pool_str64[sizeof("pe")];</div><div class='del'>-    char uniname2ctype_pool_str65[sizeof("cari")];</div><div class='del'>-    char uniname2ctype_pool_str67[sizeof("gran")];</div><div class='del'>-    char uniname2ctype_pool_str68[sizeof("meeteimayek")];</div><div class='del'>-    char uniname2ctype_pool_str70[sizeof("inkannada")];</div><div class='del'>-    char uniname2ctype_pool_str73[sizeof("innko")];</div><div class='del'>-    char uniname2ctype_pool_str75[sizeof("mendekikakui")];</div><div class='del'>-    char uniname2ctype_pool_str79[sizeof("lineara")];</div><div class='del'>-    char uniname2ctype_pool_str80[sizeof("carian")];</div><div class='del'>-    char uniname2ctype_pool_str81[sizeof("geor")];</div><div class='del'>-    char uniname2ctype_pool_str82[sizeof("grek")];</div><div class='del'>-    char uniname2ctype_pool_str86[sizeof("po")];</div><div class='del'>-    char uniname2ctype_pool_str90[sizeof("mark")];</div><div class='del'>-    char uniname2ctype_pool_str94[sizeof("mero")];</div><div class='del'>-    char uniname2ctype_pool_str99[sizeof("kana")];</div><div class='del'>-    char uniname2ctype_pool_str101[sizeof("greek")];</div><div class='del'>-    char uniname2ctype_pool_str103[sizeof("m")];</div><div class='del'>-    char uniname2ctype_pool_str104[sizeof("mro")];</div><div class='del'>-    char uniname2ctype_pool_str105[sizeof("mroo")];</div><div class='del'>-    char uniname2ctype_pool_str114[sizeof("cakm")];</div><div class='del'>-    char uniname2ctype_pool_str115[sizeof("inkharoshthi")];</div><div class='del'>-    char uniname2ctype_pool_str118[sizeof("gonm")];</div><div class='del'>-    char uniname2ctype_pool_str123[sizeof("c")];</div><div class='del'>-    char uniname2ctype_pool_str136[sizeof("inarmenian")];</div><div class='del'>-    char uniname2ctype_pool_str139[sizeof("inosmanya")];</div><div class='del'>-    char uniname2ctype_pool_str147[sizeof("common")];</div><div class='del'>-    char uniname2ctype_pool_str150[sizeof("inmro")];</div><div class='del'>-    char uniname2ctype_pool_str151[sizeof("inmanichaean")];</div><div class='del'>-    char uniname2ctype_pool_str152[sizeof("inmiao")];</div><div class='del'>-    char uniname2ctype_pool_str154[sizeof("mandaic")];</div><div class='del'>-    char uniname2ctype_pool_str157[sizeof("qaai")];</div><div class='del'>-    char uniname2ctype_pool_str166[sizeof("cans")];</div><div class='del'>-    char uniname2ctype_pool_str170[sizeof("inchakma")];</div><div class='del'>-    char uniname2ctype_pool_str178[sizeof("prependedconcatenationmark")];</div><div class='del'>-    char uniname2ctype_pool_str179[sizeof("inmyanmar")];</div><div class='del'>-    char uniname2ctype_pool_str180[sizeof("lm")];</div><div class='del'>-    char uniname2ctype_pool_str184[sizeof("inideographicsymbolsandpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str188[sizeof("marc")];</div><div class='del'>-    char uniname2ctype_pool_str189[sizeof("inmakasar")];</div><div class='del'>-    char uniname2ctype_pool_str190[sizeof("connectorpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str192[sizeof("inkhmer")];</div><div class='del'>-    char uniname2ctype_pool_str193[sizeof("merc")];</div><div class='del'>-    char uniname2ctype_pool_str195[sizeof("perm")];</div><div class='del'>-    char uniname2ctype_pool_str197[sizeof("inavestan")];</div><div class='del'>-    char uniname2ctype_pool_str201[sizeof("combiningmark")];</div><div class='del'>-    char uniname2ctype_pool_str203[sizeof("inipaextensions")];</div><div class='del'>-    char uniname2ctype_pool_str210[sizeof("incuneiformnumbersandpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str211[sizeof("inrunic")];</div><div class='del'>-    char uniname2ctype_pool_str212[sizeof("incarian")];</div><div class='del'>-    char uniname2ctype_pool_str214[sizeof("incherokee")];</div><div class='del'>-    char uniname2ctype_pool_str220[sizeof("inahom")];</div><div class='del'>-    char uniname2ctype_pool_str234[sizeof("insharada")];</div><div class='del'>-    char uniname2ctype_pool_str236[sizeof("masaramgondi")];</div><div class='del'>-    char uniname2ctype_pool_str240[sizeof("cc")];</div><div class='del'>-    char uniname2ctype_pool_str241[sizeof("makasar")];</div><div class='del'>-    char uniname2ctype_pool_str242[sizeof("lc")];</div><div class='del'>-    char uniname2ctype_pool_str249[sizeof("inarrows")];</div><div class='del'>-    char uniname2ctype_pool_str251[sizeof("mc")];</div><div class='del'>-    char uniname2ctype_pool_str252[sizeof("incuneiform")];</div><div class='del'>-    char uniname2ctype_pool_str253[sizeof("lineseparator")];</div><div class='del'>-    char uniname2ctype_pool_str259[sizeof("armi")];</div><div class='del'>-    char uniname2ctype_pool_str263[sizeof("armn")];</div><div class='del'>-    char uniname2ctype_pool_str265[sizeof("inzanabazarsquare")];</div><div class='del'>-    char uniname2ctype_pool_str269[sizeof("qaac")];</div><div class='del'>-    char uniname2ctype_pool_str274[sizeof("qmark")];</div><div class='del'>-    char uniname2ctype_pool_str278[sizeof("insamaritan")];</div><div class='del'>-    char uniname2ctype_pool_str279[sizeof("armenian")];</div><div class='del'>-    char uniname2ctype_pool_str284[sizeof("pc")];</div><div class='del'>-    char uniname2ctype_pool_str285[sizeof("inmasaramgondi")];</div><div class='del'>-    char uniname2ctype_pool_str294[sizeof("inmarchen")];</div><div class='del'>-    char uniname2ctype_pool_str302[sizeof("cs")];</div><div class='del'>-    char uniname2ctype_pool_str307[sizeof("inscriptionalparthian")];</div><div class='del'>-    char uniname2ctype_pool_str311[sizeof("zs")];</div><div class='del'>-    char uniname2ctype_pool_str313[sizeof("inkhmersymbols")];</div><div class='del'>-    char uniname2ctype_pool_str316[sizeof("ri")];</div><div class='del'>-    char uniname2ctype_pool_str319[sizeof("incham")];</div><div class='del'>-    char uniname2ctype_pool_str322[sizeof("incyrillic")];</div><div class='del'>-    char uniname2ctype_pool_str327[sizeof("latn")];</div><div class='del'>-    char uniname2ctype_pool_str336[sizeof("latin")];</div><div class='del'>-    char uniname2ctype_pool_str337[sizeof("mtei")];</div><div class='del'>-    char uniname2ctype_pool_str339[sizeof("pcm")];</div><div class='del'>-    char uniname2ctype_pool_str343[sizeof("inthaana")];</div><div class='del'>-    char uniname2ctype_pool_str346[sizeof("ps")];</div><div class='del'>-    char uniname2ctype_pool_str347[sizeof("inthai")];</div><div class='del'>-    char uniname2ctype_pool_str351[sizeof("insyriac")];</div><div class='del'>-    char uniname2ctype_pool_str362[sizeof("inkatakana")];</div><div class='del'>-    char uniname2ctype_pool_str366[sizeof("inkaithi")];</div><div class='del'>-    char uniname2ctype_pool_str371[sizeof("initialpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str385[sizeof("inideographicdescriptioncharacters")];</div><div class='del'>-    char uniname2ctype_pool_str392[sizeof("ascii")];</div><div class='del'>-    char uniname2ctype_pool_str395[sizeof("mand")];</div><div class='del'>-    char uniname2ctype_pool_str400[sizeof("mend")];</div><div class='del'>-    char uniname2ctype_pool_str407[sizeof("modi")];</div><div class='del'>-    char uniname2ctype_pool_str409[sizeof("arabic")];</div><div class='del'>-    char uniname2ctype_pool_str410[sizeof("ideo")];</div><div class='del'>-    char uniname2ctype_pool_str411[sizeof("intakri")];</div><div class='del'>-    char uniname2ctype_pool_str414[sizeof("prti")];</div><div class='del'>-    char uniname2ctype_pool_str418[sizeof("inruminumeralsymbols")];</div><div class='del'>-    char uniname2ctype_pool_str420[sizeof("katakana")];</div><div class='del'>-    char uniname2ctype_pool_str421[sizeof("xidcontinue")];</div><div class='del'>-    char uniname2ctype_pool_str424[sizeof("brai")];</div><div class='del'>-    char uniname2ctype_pool_str427[sizeof("privateuse")];</div><div class='del'>-    char uniname2ctype_pool_str432[sizeof("letter")];</div><div class='del'>-    char uniname2ctype_pool_str434[sizeof("inkanaextendeda")];</div><div class='del'>-    char uniname2ctype_pool_str437[sizeof("l")];</div><div class='del'>-    char uniname2ctype_pool_str451[sizeof("inmyanmarextendeda")];</div><div class='del'>-    char uniname2ctype_pool_str452[sizeof("inspecials")];</div><div class='del'>-    char uniname2ctype_pool_str454[sizeof("incjkcompatibilityforms")];</div><div class='del'>-    char uniname2ctype_pool_str459[sizeof("incjkcompatibilityideographs")];</div><div class='del'>-    char uniname2ctype_pool_str460[sizeof("inmeeteimayek")];</div><div class='del'>-    char uniname2ctype_pool_str461[sizeof("vai")];</div><div class='del'>-    char uniname2ctype_pool_str462[sizeof("vaii")];</div><div class='del'>-    char uniname2ctype_pool_str463[sizeof("knda")];</div><div class='del'>-    char uniname2ctype_pool_str468[sizeof("kannada")];</div><div class='del'>-    char uniname2ctype_pool_str473[sizeof("inchesssymbols")];</div><div class='del'>-    char uniname2ctype_pool_str478[sizeof("inlineara")];</div><div class='del'>-    char uniname2ctype_pool_str488[sizeof("letternumber")];</div><div class='del'>-    char uniname2ctype_pool_str490[sizeof("inmodi")];</div><div class='del'>-    char uniname2ctype_pool_str492[sizeof("inoldnortharabian")];</div><div class='del'>-    char uniname2ctype_pool_str493[sizeof("inlao")];</div><div class='del'>-    char uniname2ctype_pool_str499[sizeof("xidc")];</div><div class='del'>-    char uniname2ctype_pool_str501[sizeof("inmiscellaneousmathematicalsymbolsa")];</div><div class='del'>-    char uniname2ctype_pool_str504[sizeof("mongolian")];</div><div class='del'>-    char uniname2ctype_pool_str507[sizeof("inmedefaidrin")];</div><div class='del'>-    char uniname2ctype_pool_str513[sizeof("inemoticons")];</div><div class='del'>-    char uniname2ctype_pool_str514[sizeof("intransportandmapsymbols")];</div><div class='del'>-    char uniname2ctype_pool_str515[sizeof("brahmi")];</div><div class='del'>-    char uniname2ctype_pool_str520[sizeof("inmendekikakui")];</div><div class='del'>-    char uniname2ctype_pool_str522[sizeof("kali")];</div><div class='del'>-    char uniname2ctype_pool_str529[sizeof("psalterpahlavi")];</div><div class='del'>-    char uniname2ctype_pool_str530[sizeof("xids")];</div><div class='del'>-    char uniname2ctype_pool_str532[sizeof("grlink")];</div><div class='del'>-    char uniname2ctype_pool_str533[sizeof("control")];</div><div class='del'>-    char uniname2ctype_pool_str539[sizeof("inolditalic")];</div><div class='del'>-    char uniname2ctype_pool_str542[sizeof("inancientsymbols")];</div><div class='del'>-    char uniname2ctype_pool_str548[sizeof("inadlam")];</div><div class='del'>-    char uniname2ctype_pool_str551[sizeof("meroiticcursive")];</div><div class='del'>-    char uniname2ctype_pool_str558[sizeof("patternwhitespace")];</div><div class='del'>-    char uniname2ctype_pool_str563[sizeof("insundanese")];</div><div class='del'>-    char uniname2ctype_pool_str568[sizeof("palm")];</div><div class='del'>-    char uniname2ctype_pool_str569[sizeof("gothic")];</div><div class='del'>-    char uniname2ctype_pool_str572[sizeof("incommonindicnumberforms")];</div><div class='del'>-    char uniname2ctype_pool_str580[sizeof("so")];</div><div class='del'>-    char uniname2ctype_pool_str582[sizeof("sk")];</div><div class='del'>-    char uniname2ctype_pool_str583[sizeof("inoldsogdian")];</div><div class='del'>-    char uniname2ctype_pool_str590[sizeof("inlycian")];</div><div class='del'>-    char uniname2ctype_pool_str609[sizeof("inmandaic")];</div><div class='del'>-    char uniname2ctype_pool_str613[sizeof("incjkstrokes")];</div><div class='del'>-    char uniname2ctype_pool_str616[sizeof("sora")];</div><div class='del'>-    char uniname2ctype_pool_str618[sizeof("idc")];</div><div class='del'>-    char uniname2ctype_pool_str622[sizeof("lt")];</div><div class='del'>-    char uniname2ctype_pool_str626[sizeof("bamum")];</div><div class='del'>-    char uniname2ctype_pool_str628[sizeof("incjkcompatibilityideographssupplement")];</div><div class='del'>-    char uniname2ctype_pool_str631[sizeof("inoldsoutharabian")];</div><div class='del'>-    char uniname2ctype_pool_str632[sizeof("idsbinaryoperator")];</div><div class='del'>-    char uniname2ctype_pool_str636[sizeof("inmalayalam")];</div><div class='del'>-    char uniname2ctype_pool_str640[sizeof("inlinearbideograms")];</div><div class='del'>-    char uniname2ctype_pool_str646[sizeof("indominotiles")];</div><div class='del'>-    char uniname2ctype_pool_str656[sizeof("patws")];</div><div class='del'>-    char uniname2ctype_pool_str657[sizeof("inmusicalsymbols")];</div><div class='del'>-    char uniname2ctype_pool_str664[sizeof("bass")];</div><div class='del'>-    char uniname2ctype_pool_str671[sizeof("inmodifiertoneletters")];</div><div class='del'>-    char uniname2ctype_pool_str673[sizeof("innewa")];</div><div class='del'>-    char uniname2ctype_pool_str677[sizeof("grext")];</div><div class='del'>-    char uniname2ctype_pool_str680[sizeof("ids")];</div><div class='del'>-    char uniname2ctype_pool_str684[sizeof("samr")];</div><div class='del'>-    char uniname2ctype_pool_str685[sizeof("insylotinagri")];</div><div class='del'>-    char uniname2ctype_pool_str686[sizeof("joinc")];</div><div class='del'>-    char uniname2ctype_pool_str687[sizeof("inkanasupplement")];</div><div class='del'>-    char uniname2ctype_pool_str692[sizeof("s")];</div><div class='del'>-    char uniname2ctype_pool_str694[sizeof("batk")];</div><div class='del'>-    char uniname2ctype_pool_str696[sizeof("inmiscellaneoussymbols")];</div><div class='del'>-    char uniname2ctype_pool_str697[sizeof("inopticalcharacterrecognition")];</div><div class='del'>-    char uniname2ctype_pool_str701[sizeof("samaritan")];</div><div class='del'>-    char uniname2ctype_pool_str705[sizeof("inmiscellaneoussymbolsandarrows")];</div><div class='del'>-    char uniname2ctype_pool_str707[sizeof("lisu")];</div><div class='del'>-    char uniname2ctype_pool_str710[sizeof("inmiscellaneoussymbolsandpictographs")];</div><div class='del'>-    char uniname2ctype_pool_str713[sizeof("batak")];</div><div class='del'>-    char uniname2ctype_pool_str715[sizeof("pauc")];</div><div class='del'>-    char uniname2ctype_pool_str716[sizeof("sm")];</div><div class='del'>-    char uniname2ctype_pool_str721[sizeof("print")];</div><div class='del'>-    char uniname2ctype_pool_str727[sizeof("alnum")];</div><div class='del'>-    char uniname2ctype_pool_str728[sizeof("inwarangciti")];</div><div class='del'>-    char uniname2ctype_pool_str734[sizeof("inancientgreekmusicalnotation")];</div><div class='del'>-    char uniname2ctype_pool_str736[sizeof("intaitham")];</div><div class='del'>-    char uniname2ctype_pool_str742[sizeof("incontrolpictures")];</div><div class='del'>-    char uniname2ctype_pool_str745[sizeof("vs")];</div><div class='del'>-    char uniname2ctype_pool_str747[sizeof("inugaritic")];</div><div class='del'>-    char uniname2ctype_pool_str757[sizeof("ital")];</div><div class='del'>-    char uniname2ctype_pool_str761[sizeof("lower")];</div><div class='del'>-    char uniname2ctype_pool_str777[sizeof("intaile")];</div><div class='del'>-    char uniname2ctype_pool_str778[sizeof("sc")];</div><div class='del'>-    char uniname2ctype_pool_str781[sizeof("insaurashtra")];</div><div class='del'>-    char uniname2ctype_pool_str782[sizeof("pd")];</div><div class='del'>-    char uniname2ctype_pool_str790[sizeof("inlatinextendeda")];</div><div class='del'>-    char uniname2ctype_pool_str800[sizeof("inlatinextendede")];</div><div class='del'>-    char uniname2ctype_pool_str802[sizeof("bali")];</div><div class='del'>-    char uniname2ctype_pool_str819[sizeof("bengali")];</div><div class='del'>-    char uniname2ctype_pool_str822[sizeof("balinese")];</div><div class='del'>-    char uniname2ctype_pool_str829[sizeof("idcontinue")];</div><div class='del'>-    char uniname2ctype_pool_str832[sizeof("inspacingmodifierletters")];</div><div class='del'>-    char uniname2ctype_pool_str835[sizeof("blank")];</div><div class='del'>-    char uniname2ctype_pool_str837[sizeof("lowercase")];</div><div class='del'>-    char uniname2ctype_pool_str838[sizeof("incaucasianalbanian")];</div><div class='del'>-    char uniname2ctype_pool_str839[sizeof("inlydian")];</div><div class='del'>-    char uniname2ctype_pool_str840[sizeof("idst")];</div><div class='del'>-    char uniname2ctype_pool_str841[sizeof("inoldturkic")];</div><div class='del'>-    char uniname2ctype_pool_str842[sizeof("cwcm")];</div><div class='del'>-    char uniname2ctype_pool_str850[sizeof("zinh")];</div><div class='del'>-    char uniname2ctype_pool_str856[sizeof("intamil")];</div><div class='del'>-    char uniname2ctype_pool_str858[sizeof("inmultani")];</div><div class='del'>-    char uniname2ctype_pool_str859[sizeof("indeseret")];</div><div class='del'>-    char uniname2ctype_pool_str865[sizeof("inancientgreeknumbers")];</div><div class='del'>-    char uniname2ctype_pool_str866[sizeof("ll")];</div><div class='del'>-    char uniname2ctype_pool_str873[sizeof("zl")];</div><div class='del'>-    char uniname2ctype_pool_str876[sizeof("patternsyntax")];</div><div class='del'>-    char uniname2ctype_pool_str879[sizeof("inhanifirohingya")];</div><div class='del'>-    char uniname2ctype_pool_str880[sizeof("cherokee")];</div><div class='del'>-    char uniname2ctype_pool_str882[sizeof("inearlydynasticcuneiform")];</div><div class='del'>-    char uniname2ctype_pool_str885[sizeof("cher")];</div><div class='del'>-    char uniname2ctype_pool_str888[sizeof("canadianaboriginal")];</div><div class='del'>-    char uniname2ctype_pool_str889[sizeof("cased")];</div><div class='del'>-    char uniname2ctype_pool_str894[sizeof("idstart")];</div><div class='del'>-    char uniname2ctype_pool_str897[sizeof("plrd")];</div><div class='del'>-    char uniname2ctype_pool_str904[sizeof("graphemebase")];</div><div class='del'>-    char uniname2ctype_pool_str905[sizeof("inmeeteimayekextensions")];</div><div class='del'>-    char uniname2ctype_pool_str907[sizeof("inhiragana")];</div><div class='del'>-    char uniname2ctype_pool_str908[sizeof("marchen")];</div><div class='del'>-    char uniname2ctype_pool_str912[sizeof("runr")];</div><div class='del'>-    char uniname2ctype_pool_str915[sizeof("cham")];</div><div class='del'>-    char uniname2ctype_pool_str916[sizeof("phoenician")];</div><div class='del'>-    char uniname2ctype_pool_str919[sizeof("chakma")];</div><div class='del'>-    char uniname2ctype_pool_str923[sizeof("kaithi")];</div><div class='del'>-    char uniname2ctype_pool_str925[sizeof("sind")];</div><div class='del'>-    char uniname2ctype_pool_str928[sizeof("graphemelink")];</div><div class='del'>-    char uniname2ctype_pool_str945[sizeof("inmahajani")];</div><div class='del'>-    char uniname2ctype_pool_str953[sizeof("khojki")];</div><div class='del'>-    char uniname2ctype_pool_str955[sizeof("inogham")];</div><div class='del'>-    char uniname2ctype_pool_str959[sizeof("khar")];</div><div class='del'>-    char uniname2ctype_pool_str962[sizeof("gong")];</div><div class='del'>-    char uniname2ctype_pool_str964[sizeof("incountingrodnumerals")];</div><div class='del'>-    char uniname2ctype_pool_str968[sizeof("inkhudawadi")];</div><div class='del'>-    char uniname2ctype_pool_str971[sizeof("bidic")];</div><div class='del'>-    char uniname2ctype_pool_str974[sizeof("ingrantha")];</div><div class='del'>-    char uniname2ctype_pool_str975[sizeof("mong")];</div><div class='del'>-    char uniname2ctype_pool_str976[sizeof("georgian")];</div><div class='del'>-    char uniname2ctype_pool_str979[sizeof("manichaean")];</div><div class='del'>-    char uniname2ctype_pool_str981[sizeof("inethiopic")];</div><div class='del'>-    char uniname2ctype_pool_str986[sizeof("inosage")];</div><div class='del'>-    char uniname2ctype_pool_str988[sizeof("innewtailue")];</div><div class='del'>-    char uniname2ctype_pool_str991[sizeof("inolchiki")];</div><div class='del'>-    char uniname2ctype_pool_str993[sizeof("sinhala")];</div><div class='del'>-    char uniname2ctype_pool_str997[sizeof("insiddham")];</div><div class='del'>-    char uniname2ctype_pool_str998[sizeof("adlm")];</div><div class='del'>-    char uniname2ctype_pool_str999[sizeof("bamu")];</div><div class='del'>-    char uniname2ctype_pool_str1000[sizeof("xidstart")];</div><div class='del'>-    char uniname2ctype_pool_str1001[sizeof("xdigit")];</div><div class='del'>-    char uniname2ctype_pool_str1004[sizeof("glagolitic")];</div><div class='del'>-    char uniname2ctype_pool_str1005[sizeof("gunjalagondi")];</div><div class='del'>-    char uniname2ctype_pool_str1006[sizeof("ingeneralpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str1008[sizeof("casedletter")];</div><div class='del'>-    char uniname2ctype_pool_str1009[sizeof("multani")];</div><div class='del'>-    char uniname2ctype_pool_str1010[sizeof("insinhala")];</div><div class='del'>-    char uniname2ctype_pool_str1020[sizeof("inlatinextendedc")];</div><div class='del'>-    char uniname2ctype_pool_str1021[sizeof("joincontrol")];</div><div class='del'>-    char uniname2ctype_pool_str1030[sizeof("incyrillicextendeda")];</div><div class='del'>-    char uniname2ctype_pool_str1031[sizeof("sterm")];</div><div class='del'>-    char uniname2ctype_pool_str1035[sizeof("dia")];</div><div class='del'>-    char uniname2ctype_pool_str1036[sizeof("di")];</div><div class='del'>-    char uniname2ctype_pool_str1039[sizeof("uideo")];</div><div class='del'>-    char uniname2ctype_pool_str1040[sizeof("ingeorgian")];</div><div class='del'>-    char uniname2ctype_pool_str1041[sizeof("ahom")];</div><div class='del'>-    char uniname2ctype_pool_str1043[sizeof("khmr")];</div><div class='del'>-    char uniname2ctype_pool_str1044[sizeof("emoji")];</div><div class='del'>-    char uniname2ctype_pool_str1045[sizeof("intaixuanjingsymbols")];</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-    char uniname2ctype_pool_str1061[sizeof("age=1.1")];</div><div class='del'>-    char uniname2ctype_pool_str1062[sizeof("age=9.0")];</div><div class='del'>-    char uniname2ctype_pool_str1063[sizeof("age=11.0")];</div><div class='del'>-    char uniname2ctype_pool_str1064[sizeof("age=10.0")];</div><div class='del'>-    char uniname2ctype_pool_str1065[sizeof("age=2.1")];</div><div class='del'>-    char uniname2ctype_pool_str1066[sizeof("age=2.0")];</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-    char uniname2ctype_pool_str1067[sizeof("inmongolian")];</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-    char uniname2ctype_pool_str1068[sizeof("age=8.0")];</div><div class='del'>-    char uniname2ctype_pool_str1069[sizeof("age=6.1")];</div><div class='del'>-    char uniname2ctype_pool_str1070[sizeof("age=6.0")];</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-    char uniname2ctype_pool_str1071[sizeof("inscriptionalpahlavi")];</div><div class='del'>-    char uniname2ctype_pool_str1072[sizeof("incyrillicsupplement")];</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-    char uniname2ctype_pool_str1073[sizeof("age=6.2")];</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-    char uniname2ctype_pool_str1074[sizeof("incherokeesupplement")];</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-    char uniname2ctype_pool_str1075[sizeof("age=5.1")];</div><div class='del'>-    char uniname2ctype_pool_str1076[sizeof("age=5.0")];</div><div class='del'>-    char uniname2ctype_pool_str1077[sizeof("age=3.1")];</div><div class='del'>-    char uniname2ctype_pool_str1078[sizeof("age=3.0")];</div><div class='del'>-    char uniname2ctype_pool_str1079[sizeof("age=5.2")];</div><div class='del'>-    char uniname2ctype_pool_str1080[sizeof("age=7.0")];</div><div class='del'>-    char uniname2ctype_pool_str1081[sizeof("age=3.2")];</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-    char uniname2ctype_pool_str1083[sizeof("kharoshthi")];</div><div class='del'>-    char uniname2ctype_pool_str1084[sizeof("adlam")];</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-    char uniname2ctype_pool_str1085[sizeof("age=6.3")];</div><div class='del'>-    char uniname2ctype_pool_str1086[sizeof("age=4.1")];</div><div class='del'>-    char uniname2ctype_pool_str1087[sizeof("age=4.0")];</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-    char uniname2ctype_pool_str1094[sizeof("khmer")];</div><div class='del'>-    char uniname2ctype_pool_str1095[sizeof("runic")];</div><div class='del'>-    char uniname2ctype_pool_str1096[sizeof("quotationmark")];</div><div class='del'>-    char uniname2ctype_pool_str1098[sizeof("lu")];</div><div class='del'>-    char uniname2ctype_pool_str1104[sizeof("ingurmukhi")];</div><div class='del'>-    char uniname2ctype_pool_str1118[sizeof("taile")];</div><div class='del'>-    char uniname2ctype_pool_str1119[sizeof("incjkunifiedideographsextensiona")];</div><div class='del'>-    char uniname2ctype_pool_str1120[sizeof("sundanese")];</div><div class='del'>-    char uniname2ctype_pool_str1124[sizeof("incjkunifiedideographsextensione")];</div><div class='del'>-    char uniname2ctype_pool_str1128[sizeof("takri")];</div><div class='del'>-    char uniname2ctype_pool_str1135[sizeof("invai")];</div><div class='del'>-    char uniname2ctype_pool_str1137[sizeof("n")];</div><div class='del'>-    char uniname2ctype_pool_str1138[sizeof("inmiscellaneoustechnical")];</div><div class='del'>-    char uniname2ctype_pool_str1143[sizeof("saur")];</div><div class='del'>-    char uniname2ctype_pool_str1145[sizeof("incyrillicextendedc")];</div><div class='del'>-    char uniname2ctype_pool_str1146[sizeof("guru")];</div><div class='del'>-    char uniname2ctype_pool_str1147[sizeof("math")];</div><div class='del'>-    char uniname2ctype_pool_str1150[sizeof("goth")];</div><div class='del'>-    char uniname2ctype_pool_str1154[sizeof("xsux")];</div><div class='del'>-    char uniname2ctype_pool_str1156[sizeof("logicalorderexception")];</div><div class='del'>-    char uniname2ctype_pool_str1160[sizeof("paucinhau")];</div><div class='del'>-    char uniname2ctype_pool_str1164[sizeof("no")];</div><div class='del'>-    char uniname2ctype_pool_str1165[sizeof("xpeo")];</div><div class='del'>-    char uniname2ctype_pool_str1166[sizeof("unassigned")];</div><div class='del'>-    char uniname2ctype_pool_str1169[sizeof("takr")];</div><div class='del'>-    char uniname2ctype_pool_str1171[sizeof("anatolianhieroglyphs")];</div><div class='del'>-    char uniname2ctype_pool_str1172[sizeof("gurmukhi")];</div><div class='del'>-    char uniname2ctype_pool_str1174[sizeof("insorasompeng")];</div><div class='del'>-    char uniname2ctype_pool_str1179[sizeof("p")];</div><div class='del'>-    char uniname2ctype_pool_str1181[sizeof("cntrl")];</div><div class='del'>-    char uniname2ctype_pool_str1182[sizeof("inenclosedalphanumerics")];</div><div class='del'>-    char uniname2ctype_pool_str1183[sizeof("nko")];</div><div class='del'>-    char uniname2ctype_pool_str1184[sizeof("nkoo")];</div><div class='del'>-    char uniname2ctype_pool_str1188[sizeof("grantha")];</div><div class='del'>-    char uniname2ctype_pool_str1189[sizeof("emojimodifier")];</div><div class='del'>-    char uniname2ctype_pool_str1190[sizeof("limbu")];</div><div class='del'>-    char uniname2ctype_pool_str1193[sizeof("lowercaseletter")];</div><div class='del'>-    char uniname2ctype_pool_str1205[sizeof("inphoenician")];</div><div class='del'>-    char uniname2ctype_pool_str1210[sizeof("diacritic")];</div><div class='del'>-    char uniname2ctype_pool_str1211[sizeof("intirhuta")];</div><div class='del'>-    char uniname2ctype_pool_str1217[sizeof("inhatran")];</div><div class='del'>-    char uniname2ctype_pool_str1218[sizeof("kthi")];</div><div class='del'>-    char uniname2ctype_pool_str1219[sizeof("punct")];</div><div class='del'>-    char uniname2ctype_pool_str1224[sizeof("radical")];</div><div class='del'>-    char uniname2ctype_pool_str1226[sizeof("inlatinextendedadditional")];</div><div class='del'>-    char uniname2ctype_pool_str1232[sizeof("ingreekandcoptic")];</div><div class='del'>-    char uniname2ctype_pool_str1234[sizeof("incjkunifiedideographsextensionc")];</div><div class='del'>-    char uniname2ctype_pool_str1239[sizeof("brah")];</div><div class='del'>-    char uniname2ctype_pool_str1241[sizeof("term")];</div><div class='del'>-    char uniname2ctype_pool_str1248[sizeof("saurashtra")];</div><div class='del'>-    char uniname2ctype_pool_str1252[sizeof("cwt")];</div><div class='del'>-    char uniname2ctype_pool_str1253[sizeof("inoldhungarian")];</div><div class='del'>-    char uniname2ctype_pool_str1255[sizeof("incjkunifiedideographs")];</div><div class='del'>-    char uniname2ctype_pool_str1262[sizeof("lepc")];</div><div class='del'>-    char uniname2ctype_pool_str1265[sizeof("graphemeextend")];</div><div class='del'>-    char uniname2ctype_pool_str1267[sizeof("hani")];</div><div class='del'>-    char uniname2ctype_pool_str1270[sizeof("han")];</div><div class='del'>-    char uniname2ctype_pool_str1271[sizeof("oriya")];</div><div class='del'>-    char uniname2ctype_pool_str1273[sizeof("inherited")];</div><div class='del'>-    char uniname2ctype_pool_str1276[sizeof("sd")];</div><div class='del'>-    char uniname2ctype_pool_str1279[sizeof("inmeroitichieroglyphs")];</div><div class='del'>-    char uniname2ctype_pool_str1280[sizeof("hano")];</div><div class='del'>-    char uniname2ctype_pool_str1282[sizeof("sidd")];</div><div class='del'>-    char uniname2ctype_pool_str1285[sizeof("braille")];</div><div class='del'>-    char uniname2ctype_pool_str1287[sizeof("inshavian")];</div><div class='del'>-    char uniname2ctype_pool_str1293[sizeof("inphaistosdisc")];</div><div class='del'>-    char uniname2ctype_pool_str1295[sizeof("inkangxiradicals")];</div><div class='del'>-    char uniname2ctype_pool_str1296[sizeof("emojimodifierbase")];</div><div class='del'>-    char uniname2ctype_pool_str1298[sizeof("enclosingmark")];</div><div class='del'>-    char uniname2ctype_pool_str1299[sizeof("mult")];</div><div class='del'>-    char uniname2ctype_pool_str1303[sizeof("decimalnumber")];</div><div class='del'>-    char uniname2ctype_pool_str1305[sizeof("phli")];</div><div class='del'>-    char uniname2ctype_pool_str1306[sizeof("bidicontrol")];</div><div class='del'>-    char uniname2ctype_pool_str1308[sizeof("hanunoo")];</div><div class='del'>-    char uniname2ctype_pool_str1309[sizeof("hira")];</div><div class='del'>-    char uniname2ctype_pool_str1312[sizeof("beng")];</div><div class='del'>-    char uniname2ctype_pool_str1319[sizeof("variationselector")];</div><div class='del'>-    char uniname2ctype_pool_str1320[sizeof("unknown")];</div><div class='del'>-    char uniname2ctype_pool_str1323[sizeof("inkhojki")];</div><div class='del'>-    char uniname2ctype_pool_str1328[sizeof("inenclosedideographicsupplement")];</div><div class='del'>-    char uniname2ctype_pool_str1330[sizeof("phnx")];</div><div class='del'>-    char uniname2ctype_pool_str1339[sizeof("inanatolianhieroglyphs")];</div><div class='del'>-    char uniname2ctype_pool_str1350[sizeof("inenclosedalphanumericsupplement")];</div><div class='del'>-    char uniname2ctype_pool_str1351[sizeof("inimperialaramaic")];</div><div class='del'>-    char uniname2ctype_pool_str1353[sizeof("bhks")];</div><div class='del'>-    char uniname2ctype_pool_str1354[sizeof("regionalindicator")];</div><div class='del'>-    char uniname2ctype_pool_str1355[sizeof("ingreekextended")];</div><div class='del'>-    char uniname2ctype_pool_str1363[sizeof("bhaiksuki")];</div><div class='del'>-    char uniname2ctype_pool_str1366[sizeof("glag")];</div><div class='del'>-    char uniname2ctype_pool_str1374[sizeof("ingeometricshapes")];</div><div class='del'>-    char uniname2ctype_pool_str1375[sizeof("osage")];</div><div class='del'>-    char uniname2ctype_pool_str1378[sizeof("indogra")];</div><div class='del'>-    char uniname2ctype_pool_str1379[sizeof("sinh")];</div><div class='del'>-    char uniname2ctype_pool_str1384[sizeof("shavian")];</div><div class='del'>-    char uniname2ctype_pool_str1393[sizeof("coptic")];</div><div class='del'>-    char uniname2ctype_pool_str1394[sizeof("ahex")];</div><div class='del'>-    char uniname2ctype_pool_str1395[sizeof("inlowsurrogates")];</div><div class='del'>-    char uniname2ctype_pool_str1402[sizeof("insinhalaarchaicnumbers")];</div><div class='del'>-    char uniname2ctype_pool_str1418[sizeof("medf")];</div><div class='del'>-    char uniname2ctype_pool_str1423[sizeof("inhanunoo")];</div><div class='del'>-    char uniname2ctype_pool_str1424[sizeof("taiviet")];</div><div class='del'>-    char uniname2ctype_pool_str1434[sizeof("medefaidrin")];</div><div class='del'>-    char uniname2ctype_pool_str1439[sizeof("inshorthandformatcontrols")];</div><div class='del'>-    char uniname2ctype_pool_str1446[sizeof("linb")];</div><div class='del'>-    char uniname2ctype_pool_str1447[sizeof("osma")];</div><div class='del'>-    char uniname2ctype_pool_str1448[sizeof("insundanesesupplement")];</div><div class='del'>-    char uniname2ctype_pool_str1450[sizeof("zanb")];</div><div class='del'>-    char uniname2ctype_pool_str1461[sizeof("copt")];</div><div class='del'>-    char uniname2ctype_pool_str1464[sizeof("ininscriptionalpahlavi")];</div><div class='del'>-    char uniname2ctype_pool_str1465[sizeof("sund")];</div><div class='del'>-    char uniname2ctype_pool_str1468[sizeof("inbhaiksuki")];</div><div class='del'>-    char uniname2ctype_pool_str1469[sizeof("ininscriptionalparthian")];</div><div class='del'>-    char uniname2ctype_pool_str1471[sizeof("punctuation")];</div><div class='del'>-    char uniname2ctype_pool_str1472[sizeof("inelbasan")];</div><div class='del'>-    char uniname2ctype_pool_str1476[sizeof("innabataean")];</div><div class='del'>-    char uniname2ctype_pool_str1477[sizeof("emojicomponent")];</div><div class='del'>-    char uniname2ctype_pool_str1483[sizeof("incjkunifiedideographsextensiond")];</div><div class='del'>-    char uniname2ctype_pool_str1484[sizeof("insogdian")];</div><div class='del'>-    char uniname2ctype_pool_str1485[sizeof("indingbats")];</div><div class='del'>-    char uniname2ctype_pool_str1490[sizeof("inkanbun")];</div><div class='del'>-    char uniname2ctype_pool_str1494[sizeof("cprt")];</div><div class='del'>-    char uniname2ctype_pool_str1495[sizeof("ideographic")];</div><div class='del'>-    char uniname2ctype_pool_str1496[sizeof("cwl")];</div><div class='del'>-    char uniname2ctype_pool_str1500[sizeof("linearb")];</div><div class='del'>-    char uniname2ctype_pool_str1501[sizeof("imperialaramaic")];</div><div class='del'>-    char uniname2ctype_pool_str1505[sizeof("format")];</div><div class='del'>-    char uniname2ctype_pool_str1508[sizeof("indevanagari")];</div><div class='del'>-    char uniname2ctype_pool_str1510[sizeof("sogdian")];</div><div class='del'>-    char uniname2ctype_pool_str1511[sizeof("sogo")];</div><div class='del'>-    char uniname2ctype_pool_str1518[sizeof("inlatinextendedd")];</div><div class='del'>-    char uniname2ctype_pool_str1523[sizeof("limb")];</div><div class='del'>-    char uniname2ctype_pool_str1525[sizeof("asciihexdigit")];</div><div class='del'>-    char uniname2ctype_pool_str1529[sizeof("sentenceterminal")];</div><div class='del'>-    char uniname2ctype_pool_str1530[sizeof("java")];</div><div class='del'>-    char uniname2ctype_pool_str1531[sizeof("bopo")];</div><div class='del'>-    char uniname2ctype_pool_str1533[sizeof("dsrt")];</div><div class='del'>-    char uniname2ctype_pool_str1534[sizeof("caseignorable")];</div><div class='del'>-    char uniname2ctype_pool_str1535[sizeof("tale")];</div><div class='del'>-    char uniname2ctype_pool_str1540[sizeof("avestan")];</div><div class='del'>-    char uniname2ctype_pool_str1548[sizeof("deseret")];</div><div class='del'>-    char uniname2ctype_pool_str1551[sizeof("innushu")];</div><div class='del'>-    char uniname2ctype_pool_str1553[sizeof("javanese")];</div><div class='del'>-    char uniname2ctype_pool_str1561[sizeof("intags")];</div><div class='del'>-    char uniname2ctype_pool_str1564[sizeof("inoldpersian")];</div><div class='del'>-    char uniname2ctype_pool_str1574[sizeof("inarabic")];</div><div class='del'>-    char uniname2ctype_pool_str1576[sizeof("inornamentaldingbats")];</div><div class='del'>-    char uniname2ctype_pool_str1580[sizeof("hatran")];</div><div class='del'>-    char uniname2ctype_pool_str1583[sizeof("intangut")];</div><div class='del'>-    char uniname2ctype_pool_str1586[sizeof("odi")];</div><div class='del'>-    char uniname2ctype_pool_str1593[sizeof("arab")];</div><div class='del'>-    char uniname2ctype_pool_str1600[sizeof("ingeometricshapesextended")];</div><div class='del'>-    char uniname2ctype_pool_str1606[sizeof("invariationselectors")];</div><div class='del'>-    char uniname2ctype_pool_str1611[sizeof("hatr")];</div><div class='del'>-    char uniname2ctype_pool_str1613[sizeof("terminalpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str1614[sizeof("taml")];</div><div class='del'>-    char uniname2ctype_pool_str1615[sizeof("ugar")];</div><div class='del'>-    char uniname2ctype_pool_str1616[sizeof("incjksymbolsandpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str1618[sizeof("closepunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str1625[sizeof("inarabicpresentationformsa")];</div><div class='del'>-    char uniname2ctype_pool_str1627[sizeof("inbasiclatin")];</div><div class='del'>-    char uniname2ctype_pool_str1637[sizeof("bopomofo")];</div><div class='del'>-    char uniname2ctype_pool_str1641[sizeof("grbase")];</div><div class='del'>-    char uniname2ctype_pool_str1651[sizeof("inkatakanaphoneticextensions")];</div><div class='del'>-    char uniname2ctype_pool_str1657[sizeof("inverticalforms")];</div><div class='del'>-    char uniname2ctype_pool_str1663[sizeof("inoldpermic")];</div><div class='del'>-    char uniname2ctype_pool_str1669[sizeof("avst")];</div><div class='del'>-    char uniname2ctype_pool_str1671[sizeof("invedicextensions")];</div><div class='del'>-    char uniname2ctype_pool_str1679[sizeof("alpha")];</div><div class='del'>-    char uniname2ctype_pool_str1682[sizeof("cuneiform")];</div><div class='del'>-    char uniname2ctype_pool_str1684[sizeof("inpalmyrene")];</div><div class='del'>-    char uniname2ctype_pool_str1685[sizeof("insyriacsupplement")];</div><div class='del'>-    char uniname2ctype_pool_str1689[sizeof("inethiopicextendeda")];</div><div class='del'>-    char uniname2ctype_pool_str1690[sizeof("space")];</div><div class='del'>-    char uniname2ctype_pool_str1695[sizeof("inlisu")];</div><div class='del'>-    char uniname2ctype_pool_str1698[sizeof("graph")];</div><div class='del'>-    char uniname2ctype_pool_str1699[sizeof("oidc")];</div><div class='del'>-    char uniname2ctype_pool_str1700[sizeof("incoptic")];</div><div class='del'>-    char uniname2ctype_pool_str1701[sizeof("inoriya")];</div><div class='del'>-    char uniname2ctype_pool_str1702[sizeof("wara")];</div><div class='del'>-    char uniname2ctype_pool_str1704[sizeof("inkayahli")];</div><div class='del'>-    char uniname2ctype_pool_str1707[sizeof("inlepcha")];</div><div class='del'>-    char uniname2ctype_pool_str1714[sizeof("spacingmark")];</div><div class='del'>-    char uniname2ctype_pool_str1715[sizeof("sorasompeng")];</div><div class='del'>-    char uniname2ctype_pool_str1720[sizeof("assigned")];</div><div class='del'>-    char uniname2ctype_pool_str1728[sizeof("cwu")];</div><div class='del'>-    char uniname2ctype_pool_str1730[sizeof("oids")];</div><div class='del'>-    char uniname2ctype_pool_str1731[sizeof("inethiopicsupplement")];</div><div class='del'>-    char uniname2ctype_pool_str1738[sizeof("sharada")];</div><div class='del'>-    char uniname2ctype_pool_str1747[sizeof("intaiviet")];</div><div class='del'>-    char uniname2ctype_pool_str1749[sizeof("inblockelements")];</div><div class='del'>-    char uniname2ctype_pool_str1767[sizeof("olower")];</div><div class='del'>-    char uniname2ctype_pool_str1770[sizeof("newa")];</div><div class='del'>-    char uniname2ctype_pool_str1775[sizeof("invariationselectorssupplement")];</div><div class='del'>-    char uniname2ctype_pool_str1776[sizeof("olck")];</div><div class='del'>-    char uniname2ctype_pool_str1777[sizeof("intibetan")];</div><div class='del'>-    char uniname2ctype_pool_str1778[sizeof("lyci")];</div><div class='del'>-    char uniname2ctype_pool_str1780[sizeof("inbatak")];</div><div class='del'>-    char uniname2ctype_pool_str1782[sizeof("shrd")];</div><div class='del'>-    char uniname2ctype_pool_str1783[sizeof("cwcf")];</div><div class='del'>-    char uniname2ctype_pool_str1785[sizeof("newtailue")];</div><div class='del'>-    char uniname2ctype_pool_str1786[sizeof("innumberforms")];</div><div class='del'>-    char uniname2ctype_pool_str1787[sizeof("olchiki")];</div><div class='del'>-    char uniname2ctype_pool_str1788[sizeof("separator")];</div><div class='del'>-    char uniname2ctype_pool_str1792[sizeof("inunifiedcanadianaboriginalsyllabics")];</div><div class='del'>-    char uniname2ctype_pool_str1793[sizeof("lycian")];</div><div class='del'>-    char uniname2ctype_pool_str1799[sizeof("modifierletter")];</div><div class='del'>-    char uniname2ctype_pool_str1802[sizeof("mymr")];</div><div class='del'>-    char uniname2ctype_pool_str1803[sizeof("phag")];</div><div class='del'>-    char uniname2ctype_pool_str1807[sizeof("myanmar")];</div><div class='del'>-    char uniname2ctype_pool_str1825[sizeof("siddham")];</div><div class='del'>-    char uniname2ctype_pool_str1827[sizeof("inhanguljamoextendeda")];</div><div class='del'>-    char uniname2ctype_pool_str1828[sizeof("inhanguljamo")];</div><div class='del'>-    char uniname2ctype_pool_str1832[sizeof("inbyzantinemusicalsymbols")];</div><div class='del'>-    char uniname2ctype_pool_str1839[sizeof("inarabicextendeda")];</div><div class='del'>-    char uniname2ctype_pool_str1841[sizeof("inmeroiticcursive")];</div><div class='del'>-    char uniname2ctype_pool_str1846[sizeof("bugi")];</div><div class='del'>-    char uniname2ctype_pool_str1852[sizeof("gujr")];</div><div class='del'>-    char uniname2ctype_pool_str1856[sizeof("intelugu")];</div><div class='del'>-    char uniname2ctype_pool_str1859[sizeof("sogd")];</div><div class='del'>-    char uniname2ctype_pool_str1860[sizeof("nd")];</div><div class='del'>-    char uniname2ctype_pool_str1861[sizeof("gujarati")];</div><div class='del'>-    char uniname2ctype_pool_str1862[sizeof("insoyombo")];</div><div class='del'>-    char uniname2ctype_pool_str1865[sizeof("insmallformvariants")];</div><div class='del'>-    char uniname2ctype_pool_str1866[sizeof("buginese")];</div><div class='del'>-    char uniname2ctype_pool_str1869[sizeof("number")];</div><div class='del'>-    char uniname2ctype_pool_str1872[sizeof("inmyanmarextendedb")];</div><div class='del'>-    char uniname2ctype_pool_str1883[sizeof("indevanagariextended")];</div><div class='del'>-    char uniname2ctype_pool_str1896[sizeof("inbalinese")];</div><div class='del'>-    char uniname2ctype_pool_str1898[sizeof("ingeorgiansupplement")];</div><div class='del'>-    char uniname2ctype_pool_str1899[sizeof("titlecaseletter")];</div><div class='del'>-    char uniname2ctype_pool_str1911[sizeof("innoblock")];</div><div class='del'>-    char uniname2ctype_pool_str1921[sizeof("thaa")];</div><div class='del'>-    char uniname2ctype_pool_str1922[sizeof("inmiscellaneousmathematicalsymbolsb")];</div><div class='del'>-    char uniname2ctype_pool_str1924[sizeof("thai")];</div><div class='del'>-    char uniname2ctype_pool_str1925[sizeof("xposixpunct")];</div><div class='del'>-    char uniname2ctype_pool_str1931[sizeof("inbraillepatterns")];</div><div class='del'>-    char uniname2ctype_pool_str1932[sizeof("thaana")];</div><div class='del'>-    char uniname2ctype_pool_str1942[sizeof("inphoneticextensions")];</div><div class='del'>-    char uniname2ctype_pool_str1944[sizeof("incopticepactnumbers")];</div><div class='del'>-    char uniname2ctype_pool_str1948[sizeof("incjkcompatibility")];</div><div class='del'>-    char uniname2ctype_pool_str1950[sizeof("inmongoliansupplement")];</div><div class='del'>-    char uniname2ctype_pool_str1956[sizeof("idsb")];</div><div class='del'>-    char uniname2ctype_pool_str1960[sizeof("inmathematicalalphanumericsymbols")];</div><div class='del'>-    char uniname2ctype_pool_str1965[sizeof("induployan")];</div><div class='del'>-    char uniname2ctype_pool_str1969[sizeof("lepcha")];</div><div class='del'>-    char uniname2ctype_pool_str1970[sizeof("inmayannumerals")];</div><div class='del'>-    char uniname2ctype_pool_str1973[sizeof("tirh")];</div><div class='del'>-    char uniname2ctype_pool_str1979[sizeof("dogra")];</div><div class='del'>-    char uniname2ctype_pool_str1986[sizeof("nl")];</div><div class='del'>-    char uniname2ctype_pool_str1993[sizeof("ext")];</div><div class='del'>-    char uniname2ctype_pool_str1995[sizeof("ugaritic")];</div><div class='del'>-    char uniname2ctype_pool_str1997[sizeof("dash")];</div><div class='del'>-    char uniname2ctype_pool_str1999[sizeof("shaw")];</div><div class='del'>-    char uniname2ctype_pool_str2008[sizeof("tirhuta")];</div><div class='del'>-    char uniname2ctype_pool_str2012[sizeof("zanabazarsquare")];</div><div class='del'>-    char uniname2ctype_pool_str2013[sizeof("taitham")];</div><div class='del'>-    char uniname2ctype_pool_str2018[sizeof("inunifiedcanadianaboriginalsyllabicsextended")];</div><div class='del'>-    char uniname2ctype_pool_str2021[sizeof("sarb")];</div><div class='del'>-    char uniname2ctype_pool_str2025[sizeof("patsyn")];</div><div class='del'>-    char uniname2ctype_pool_str2026[sizeof("dogr")];</div><div class='del'>-    char uniname2ctype_pool_str2027[sizeof("lydi")];</div><div class='del'>-    char uniname2ctype_pool_str2029[sizeof("inyiradicals")];</div><div class='del'>-    char uniname2ctype_pool_str2038[sizeof("tang")];</div><div class='del'>-    char uniname2ctype_pool_str2042[sizeof("lydian")];</div><div class='del'>-    char uniname2ctype_pool_str2043[sizeof("tamil")];</div><div class='del'>-    char uniname2ctype_pool_str2044[sizeof("tagbanwa")];</div><div class='del'>-    char uniname2ctype_pool_str2047[sizeof("insuttonsignwriting")];</div><div class='del'>-    char uniname2ctype_pool_str2052[sizeof("inethiopicextended")];</div><div class='del'>-    char uniname2ctype_pool_str2060[sizeof("cf")];</div><div class='del'>-    char uniname2ctype_pool_str2062[sizeof("ethi")];</div><div class='del'>-    char uniname2ctype_pool_str2073[sizeof("talu")];</div><div class='del'>-    char uniname2ctype_pool_str2075[sizeof("rohg")];</div><div class='del'>-    char uniname2ctype_pool_str2077[sizeof("oldpersian")];</div><div class='del'>-    char uniname2ctype_pool_str2078[sizeof("telu")];</div><div class='del'>-    char uniname2ctype_pool_str2082[sizeof("word")];</div><div class='del'>-    char uniname2ctype_pool_str2086[sizeof("idstrinaryoperator")];</div><div class='del'>-    char uniname2ctype_pool_str2091[sizeof("mahj")];</div><div class='del'>-    char uniname2ctype_pool_str2093[sizeof("khudawadi")];</div><div class='del'>-    char uniname2ctype_pool_str2094[sizeof("inphagspa")];</div><div class='del'>-    char uniname2ctype_pool_str2095[sizeof("incjkradicalssupplement")];</div><div class='del'>-    char uniname2ctype_pool_str2097[sizeof("buhd")];</div><div class='del'>-    char uniname2ctype_pool_str2099[sizeof("surrogate")];</div><div class='del'>-    char uniname2ctype_pool_str2100[sizeof("mahajani")];</div><div class='del'>-    char uniname2ctype_pool_str2101[sizeof("orkh")];</div><div class='del'>-    char uniname2ctype_pool_str2104[sizeof("pf")];</div><div class='del'>-    char uniname2ctype_pool_str2111[sizeof("inphoneticextensionssupplement")];</div><div class='del'>-    char uniname2ctype_pool_str2115[sizeof("extender")];</div><div class='del'>-    char uniname2ctype_pool_str2116[sizeof("sgnw")];</div><div class='del'>-    char uniname2ctype_pool_str2129[sizeof("inglagolitic")];</div><div class='del'>-    char uniname2ctype_pool_str2133[sizeof("deva")];</div><div class='del'>-    char uniname2ctype_pool_str2134[sizeof("cyrl")];</div><div class='del'>-    char uniname2ctype_pool_str2144[sizeof("incjkunifiedideographsextensionf")];</div><div class='del'>-    char uniname2ctype_pool_str2147[sizeof("caucasianalbanian")];</div><div class='del'>-    char uniname2ctype_pool_str2151[sizeof("devanagari")];</div><div class='del'>-    char uniname2ctype_pool_str2153[sizeof("phagspa")];</div><div class='del'>-    char uniname2ctype_pool_str2157[sizeof("hex")];</div><div class='del'>-    char uniname2ctype_pool_str2168[sizeof("nchar")];</div><div class='del'>-    char uniname2ctype_pool_str2169[sizeof("inbamum")];</div><div class='del'>-    char uniname2ctype_pool_str2175[sizeof("khoj")];</div><div class='del'>-    char uniname2ctype_pool_str2180[sizeof("mlym")];</div><div class='del'>-    char uniname2ctype_pool_str2184[sizeof("oldpermic")];</div><div class='del'>-    char uniname2ctype_pool_str2187[sizeof("malayalam")];</div><div class='del'>-    char uniname2ctype_pool_str2190[sizeof("palmyrene")];</div><div class='del'>-    char uniname2ctype_pool_str2191[sizeof("intifinagh")];</div><div class='del'>-    char uniname2ctype_pool_str2192[sizeof("hang")];</div><div class='del'>-    char uniname2ctype_pool_str2196[sizeof("spaceseparator")];</div><div class='del'>-    char uniname2ctype_pool_str2200[sizeof("intagalog")];</div><div class='del'>-    char uniname2ctype_pool_str2204[sizeof("ingothic")];</div><div class='del'>-    char uniname2ctype_pool_str2219[sizeof("ingeorgianextended")];</div><div class='del'>-    char uniname2ctype_pool_str2220[sizeof("ingujarati")];</div><div class='del'>-    char uniname2ctype_pool_str2222[sizeof("inlatin1supplement")];</div><div class='del'>-    char uniname2ctype_pool_str2228[sizeof("soyo")];</div><div class='del'>-    char uniname2ctype_pool_str2229[sizeof("ogam")];</div><div class='del'>-    char uniname2ctype_pool_str2238[sizeof("incombiningdiacriticalmarks")];</div><div class='del'>-    char uniname2ctype_pool_str2239[sizeof("ingunjalagondi")];</div><div class='del'>-    char uniname2ctype_pool_str2243[sizeof("hiragana")];</div><div class='del'>-    char uniname2ctype_pool_str2245[sizeof("meroitichieroglyphs")];</div><div class='del'>-    char uniname2ctype_pool_str2248[sizeof("incombiningdiacriticalmarksforsymbols")];</div><div class='del'>-    char uniname2ctype_pool_str2264[sizeof("inrejang")];</div><div class='del'>-    char uniname2ctype_pool_str2267[sizeof("tangut")];</div><div class='del'>-    char uniname2ctype_pool_str2273[sizeof("zp")];</div><div class='del'>-    char uniname2ctype_pool_str2276[sizeof("hmng")];</div><div class='del'>-    char uniname2ctype_pool_str2278[sizeof("inprivateusearea")];</div><div class='del'>-    char uniname2ctype_pool_str2280[sizeof("inbrahmi")];</div><div class='del'>-    char uniname2ctype_pool_str2296[sizeof("osge")];</div><div class='del'>-    char uniname2ctype_pool_str2308[sizeof("inenclosedcjklettersandmonths")];</div><div class='del'>-    char uniname2ctype_pool_str2315[sizeof("nonspacingmark")];</div><div class='del'>-    char uniname2ctype_pool_str2344[sizeof("softdotted")];</div><div class='del'>-    char uniname2ctype_pool_str2348[sizeof("changeswhencasemapped")];</div><div class='del'>-    char uniname2ctype_pool_str2356[sizeof("noncharactercodepoint")];</div><div class='del'>-    char uniname2ctype_pool_str2360[sizeof("syrc")];</div><div class='del'>-    char uniname2ctype_pool_str2369[sizeof("inpaucinhau")];</div><div class='del'>-    char uniname2ctype_pool_str2380[sizeof("inhangulsyllables")];</div><div class='del'>-    char uniname2ctype_pool_str2389[sizeof("injavanese")];</div><div class='del'>-    char uniname2ctype_pool_str2397[sizeof("inbuginese")];</div><div class='del'>-    char uniname2ctype_pool_str2398[sizeof("inbengali")];</div><div class='del'>-    char uniname2ctype_pool_str2407[sizeof("incombiningdiacriticalmarkssupplement")];</div><div class='del'>-    char uniname2ctype_pool_str2413[sizeof("inalphabeticpresentationforms")];</div><div class='del'>-    char uniname2ctype_pool_str2414[sizeof("otheridcontinue")];</div><div class='del'>-    char uniname2ctype_pool_str2420[sizeof("finalpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str2426[sizeof("inpsalterpahlavi")];</div><div class='del'>-    char uniname2ctype_pool_str2429[sizeof("phlp")];</div><div class='del'>-    char uniname2ctype_pool_str2435[sizeof("olditalic")];</div><div class='del'>-    char uniname2ctype_pool_str2437[sizeof("bassavah")];</div><div class='del'>-    char uniname2ctype_pool_str2440[sizeof("other")];</div><div class='del'>-    char uniname2ctype_pool_str2451[sizeof("incyrillicextendedb")];</div><div class='del'>-    char uniname2ctype_pool_str2454[sizeof("othernumber")];</div><div class='del'>-    char uniname2ctype_pool_str2459[sizeof("changeswhentitlecased")];</div><div class='del'>-    char uniname2ctype_pool_str2463[sizeof("buhid")];</div><div class='del'>-    char uniname2ctype_pool_str2464[sizeof("incombiningdiacriticalmarksextended")];</div><div class='del'>-    char uniname2ctype_pool_str2466[sizeof("oalpha")];</div><div class='del'>-    char uniname2ctype_pool_str2478[sizeof("currencysymbol")];</div><div class='del'>-    char uniname2ctype_pool_str2479[sizeof("syriac")];</div><div class='del'>-    char uniname2ctype_pool_str2480[sizeof("incurrencysymbols")];</div><div class='del'>-    char uniname2ctype_pool_str2497[sizeof("rjng")];</div><div class='del'>-    char uniname2ctype_pool_str2499[sizeof("graphemeclusterbreak=spacingmark")];</div><div class='del'>-    char uniname2ctype_pool_str2500[sizeof("extendedpictographic")];</div><div class='del'>-    char uniname2ctype_pool_str2503[sizeof("tavt")];</div><div class='del'>-    char uniname2ctype_pool_str2511[sizeof("emojipresentation")];</div><div class='del'>-    char uniname2ctype_pool_str2512[sizeof("inlimbu")];</div><div class='del'>-    char uniname2ctype_pool_str2522[sizeof("graphemeclusterbreak=cr")];</div><div class='del'>-    char uniname2ctype_pool_str2523[sizeof("otheralphabetic")];</div><div class='del'>-    char uniname2ctype_pool_str2537[sizeof("graphemeclusterbreak=regionalindicator")];</div><div class='del'>-    char uniname2ctype_pool_str2540[sizeof("incjkunifiedideographsextensionb")];</div><div class='del'>-    char uniname2ctype_pool_str2546[sizeof("inaegeannumbers")];</div><div class='del'>-    char uniname2ctype_pool_str2555[sizeof("mathsymbol")];</div><div class='del'>-    char uniname2ctype_pool_str2561[sizeof("inlinearbsyllabary")];</div><div class='del'>-    char uniname2ctype_pool_str2570[sizeof("intangutcomponents")];</div><div class='del'>-    char uniname2ctype_pool_str2571[sizeof("inbassavah")];</div><div class='del'>-    char uniname2ctype_pool_str2576[sizeof("digit")];</div><div class='del'>-    char uniname2ctype_pool_str2582[sizeof("paragraphseparator")];</div><div class='del'>-    char uniname2ctype_pool_str2583[sizeof("oldhungarian")];</div><div class='del'>-    char uniname2ctype_pool_str2605[sizeof("narb")];</div><div class='del'>-    char uniname2ctype_pool_str2617[sizeof("insuperscriptsandsubscripts")];</div><div class='del'>-    char uniname2ctype_pool_str2620[sizeof("inbopomofo")];</div><div class='del'>-    char uniname2ctype_pool_str2625[sizeof("changeswhenlowercased")];</div><div class='del'>-    char uniname2ctype_pool_str2638[sizeof("whitespace")];</div><div class='del'>-    char uniname2ctype_pool_str2639[sizeof("sylo")];</div><div class='del'>-    char uniname2ctype_pool_str2642[sizeof("nshu")];</div><div class='del'>-    char uniname2ctype_pool_str2643[sizeof("inbuhid")];</div><div class='del'>-    char uniname2ctype_pool_str2648[sizeof("warangciti")];</div><div class='del'>-    char uniname2ctype_pool_str2650[sizeof("inmathematicaloperators")];</div><div class='del'>-    char uniname2ctype_pool_str2657[sizeof("deprecated")];</div><div class='del'>-    char uniname2ctype_pool_str2660[sizeof("inletterlikesymbols")];</div><div class='del'>-    char uniname2ctype_pool_str2665[sizeof("hangul")];</div><div class='del'>-    char uniname2ctype_pool_str2682[sizeof("cyrillic")];</div><div class='del'>-    char uniname2ctype_pool_str2694[sizeof("intagbanwa")];</div><div class='del'>-    char uniname2ctype_pool_str2720[sizeof("incombininghalfmarks")];</div><div class='del'>-    char uniname2ctype_pool_str2722[sizeof("oldturkic")];</div><div class='del'>-    char uniname2ctype_pool_str2732[sizeof("hebr")];</div><div class='del'>-    char uniname2ctype_pool_str2735[sizeof("hung")];</div><div class='del'>-    char uniname2ctype_pool_str2741[sizeof("changeswhenuppercased")];</div><div class='del'>-    char uniname2ctype_pool_str2759[sizeof("inarabicmathematicalalphabeticsymbols")];</div><div class='del'>-    char uniname2ctype_pool_str2769[sizeof("inmahjongtiles")];</div><div class='del'>-    char uniname2ctype_pool_str2777[sizeof("graphemeclusterbreak=t")];</div><div class='del'>-    char uniname2ctype_pool_str2779[sizeof("graphemeclusterbreak=lvt")];</div><div class='del'>-    char uniname2ctype_pool_str2784[sizeof("elba")];</div><div class='del'>-    char uniname2ctype_pool_str2807[sizeof("insupplementalarrowsa")];</div><div class='del'>-    char uniname2ctype_pool_str2832[sizeof("tibt")];</div><div class='del'>-    char uniname2ctype_pool_str2834[sizeof("otherlowercase")];</div><div class='del'>-    char uniname2ctype_pool_str2836[sizeof("inbamumsupplement")];</div><div class='del'>-    char uniname2ctype_pool_str2841[sizeof("graphemeclusterbreak=extend")];</div><div class='del'>-    char uniname2ctype_pool_str2842[sizeof("graphemeclusterbreak=prepend")];</div><div class='del'>-    char uniname2ctype_pool_str2844[sizeof("tibetan")];</div><div class='del'>-    char uniname2ctype_pool_str2857[sizeof("hluw")];</div><div class='del'>-    char uniname2ctype_pool_str2861[sizeof("nbat")];</div><div class='del'>-    char uniname2ctype_pool_str2874[sizeof("otherletter")];</div><div class='del'>-    char uniname2ctype_pool_str2875[sizeof("nabataean")];</div><div class='del'>-    char uniname2ctype_pool_str2899[sizeof("graphemeclusterbreak=l")];</div><div class='del'>-    char uniname2ctype_pool_str2905[sizeof("graphemeclusterbreak=control")];</div><div class='del'>-    char uniname2ctype_pool_str2908[sizeof("inarabicsupplement")];</div><div class='del'>-    char uniname2ctype_pool_str2911[sizeof("orya")];</div><div class='del'>-    char uniname2ctype_pool_str2912[sizeof("nushu")];</div><div class='del'>-    char uniname2ctype_pool_str2918[sizeof("insupplementalmathematicaloperators")];</div><div class='del'>-    char uniname2ctype_pool_str2922[sizeof("insupplementalarrowsc")];</div><div class='del'>-    char uniname2ctype_pool_str2924[sizeof("inpahawhhmong")];</div><div class='del'>-    char uniname2ctype_pool_str2939[sizeof("omath")];</div><div class='del'>-    char uniname2ctype_pool_str2942[sizeof("elbasan")];</div><div class='del'>-    char uniname2ctype_pool_str2943[sizeof("sylotinagri")];</div><div class='del'>-    char uniname2ctype_pool_str2950[sizeof("otheruppercase")];</div><div class='del'>-    char uniname2ctype_pool_str2952[sizeof("hexdigit")];</div><div class='del'>-    char uniname2ctype_pool_str2956[sizeof("inhebrew")];</div><div class='del'>-    char uniname2ctype_pool_str2962[sizeof("tifinagh")];</div><div class='del'>-    char uniname2ctype_pool_str2967[sizeof("oldsogdian")];</div><div class='del'>-    char uniname2ctype_pool_str2971[sizeof("othersymbol")];</div><div class='del'>-    char uniname2ctype_pool_str2978[sizeof("inalchemicalsymbols")];</div><div class='del'>-    char uniname2ctype_pool_str2990[sizeof("kayahli")];</div><div class='del'>-    char uniname2ctype_pool_str2992[sizeof("upper")];</div><div class='del'>-    char uniname2ctype_pool_str2994[sizeof("oupper")];</div><div class='del'>-    char uniname2ctype_pool_str3012[sizeof("inplayingcards")];</div><div class='del'>-    char uniname2ctype_pool_str3013[sizeof("otheridstart")];</div><div class='del'>-    char uniname2ctype_pool_str3019[sizeof("inhalfwidthandfullwidthforms")];</div><div class='del'>-    char uniname2ctype_pool_str3046[sizeof("inarabicpresentationformsb")];</div><div class='del'>-    char uniname2ctype_pool_str3055[sizeof("wspace")];</div><div class='del'>-    char uniname2ctype_pool_str3063[sizeof("tfng")];</div><div class='del'>-    char uniname2ctype_pool_str3068[sizeof("uppercase")];</div><div class='del'>-    char uniname2ctype_pool_str3078[sizeof("inhighprivateusesurrogates")];</div><div class='del'>-    char uniname2ctype_pool_str3098[sizeof("signwriting")];</div><div class='del'>-    char uniname2ctype_pool_str3104[sizeof("osmanya")];</div><div class='del'>-    char uniname2ctype_pool_str3114[sizeof("cypriot")];</div><div class='del'>-    char uniname2ctype_pool_str3130[sizeof("dupl")];</div><div class='del'>-    char uniname2ctype_pool_str3133[sizeof("ogham")];</div><div class='del'>-    char uniname2ctype_pool_str3154[sizeof("symbol")];</div><div class='del'>-    char uniname2ctype_pool_str3175[sizeof("dashpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str3182[sizeof("inyijinghexagramsymbols")];</div><div class='del'>-    char uniname2ctype_pool_str3197[sizeof("inindicsiyaqnumbers")];</div><div class='del'>-    char uniname2ctype_pool_str3221[sizeof("alphabetic")];</div><div class='del'>-    char uniname2ctype_pool_str3233[sizeof("hanifirohingya")];</div><div class='del'>-    char uniname2ctype_pool_str3236[sizeof("unifiedideograph")];</div><div class='del'>-    char uniname2ctype_pool_str3248[sizeof("inhanguljamoextendedb")];</div><div class='del'>-    char uniname2ctype_pool_str3256[sizeof("ogrext")];</div><div class='del'>-    char uniname2ctype_pool_str3260[sizeof("pahawhhmong")];</div><div class='del'>-    char uniname2ctype_pool_str3289[sizeof("changeswhencasefolded")];</div><div class='del'>-    char uniname2ctype_pool_str3290[sizeof("aghb")];</div><div class='del'>-    char uniname2ctype_pool_str3291[sizeof("dep")];</div><div class='del'>-    char uniname2ctype_pool_str3293[sizeof("modifiersymbol")];</div><div class='del'>-    char uniname2ctype_pool_str3298[sizeof("othermath")];</div><div class='del'>-    char uniname2ctype_pool_str3312[sizeof("insupplementalpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str3323[sizeof("ethiopic")];</div><div class='del'>-    char uniname2ctype_pool_str3386[sizeof("tglg")];</div><div class='del'>-    char uniname2ctype_pool_str3407[sizeof("tagalog")];</div><div class='del'>-    char uniname2ctype_pool_str3409[sizeof("otherdefaultignorablecodepoint")];</div><div class='del'>-    char uniname2ctype_pool_str3413[sizeof("incypriotsyllabary")];</div><div class='del'>-    char uniname2ctype_pool_str3417[sizeof("defaultignorablecodepoint")];</div><div class='del'>-    char uniname2ctype_pool_str3419[sizeof("any")];</div><div class='del'>-    char uniname2ctype_pool_str3424[sizeof("uppercaseletter")];</div><div class='del'>-    char uniname2ctype_pool_str3434[sizeof("rejang")];</div><div class='del'>-    char uniname2ctype_pool_str3452[sizeof("tagb")];</div><div class='del'>-    char uniname2ctype_pool_str3457[sizeof("inglagoliticsupplement")];</div><div class='del'>-    char uniname2ctype_pool_str3498[sizeof("graphemeclusterbreak=lf")];</div><div class='del'>-    char uniname2ctype_pool_str3515[sizeof("oldnortharabian")];</div><div class='del'>-    char uniname2ctype_pool_str3546[sizeof("otherpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str3553[sizeof("telugu")];</div><div class='del'>-    char uniname2ctype_pool_str3567[sizeof("graphemeclusterbreak=v")];</div><div class='del'>-    char uniname2ctype_pool_str3568[sizeof("graphemeclusterbreak=lv")];</div><div class='del'>-    char uniname2ctype_pool_str3631[sizeof("inyisyllables")];</div><div class='del'>-    char uniname2ctype_pool_str3632[sizeof("inlatinextendedb")];</div><div class='del'>-    char uniname2ctype_pool_str3723[sizeof("graphemeclusterbreak=zwj")];</div><div class='del'>-    char uniname2ctype_pool_str3738[sizeof("soyombo")];</div><div class='del'>-    char uniname2ctype_pool_str3790[sizeof("inbopomofoextended")];</div><div class='del'>-    char uniname2ctype_pool_str3832[sizeof("inhighsurrogates")];</div><div class='del'>-    char uniname2ctype_pool_str3894[sizeof("insupplementaryprivateuseareaa")];</div><div class='del'>-    char uniname2ctype_pool_str3907[sizeof("inegyptianhieroglyphs")];</div><div class='del'>-    char uniname2ctype_pool_str3952[sizeof("hebrew")];</div><div class='del'>-    char uniname2ctype_pool_str4009[sizeof("oldsoutharabian")];</div><div class='del'>-    char uniname2ctype_pool_str4052[sizeof("hyphen")];</div><div class='del'>-    char uniname2ctype_pool_str4089[sizeof("othergraphemeextend")];</div><div class='del'>-    char uniname2ctype_pool_str4132[sizeof("inboxdrawing")];</div><div class='del'>-    char uniname2ctype_pool_str4228[sizeof("insupplementalarrowsb")];</div><div class='del'>-    char uniname2ctype_pool_str4345[sizeof("openpunctuation")];</div><div class='del'>-    char uniname2ctype_pool_str4374[sizeof("inhangulcompatibilityjamo")];</div><div class='del'>-    char uniname2ctype_pool_str4377[sizeof("duployan")];</div><div class='del'>-    char uniname2ctype_pool_str4563[sizeof("insupplementalsymbolsandpictographs")];</div><div class='del'>-    char uniname2ctype_pool_str4636[sizeof("egyp")];</div><div class='del'>-    char uniname2ctype_pool_str4957[sizeof("zyyy")];</div><div class='del'>-    char uniname2ctype_pool_str5315[sizeof("insupplementaryprivateuseareab")];</div><div class='del'>-    char uniname2ctype_pool_str5676[sizeof("egyptianhieroglyphs")];</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-  };</div><div class='del'>-static const struct uniname2ctype_pool_t uniname2ctype_pool_contents =</div><div class='del'>-  {</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-    "word",</div><div class='del'>-#else /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    "yi",</div><div class='del'>-    "ci",</div><div class='del'>-    "yiii",</div><div class='del'>-    "lana",</div><div class='del'>-    "cn",</div><div class='del'>-    "lina",</div><div class='del'>-    "z",</div><div class='del'>-    "me",</div><div class='del'>-    "mani",</div><div class='del'>-    "mn",</div><div class='del'>-    "loe",</div><div class='del'>-    "maka",</div><div class='del'>-    "co",</div><div class='del'>-    "miao",</div><div class='del'>-    "lo",</div><div class='del'>-    "lao",</div><div class='del'>-    "laoo",</div><div class='del'>-    "zzzz",</div><div class='del'>-    "pi",</div><div class='del'>-    "pe",</div><div class='del'>-    "cari",</div><div class='del'>-    "gran",</div><div class='del'>-    "meeteimayek",</div><div class='del'>-    "inkannada",</div><div class='del'>-    "innko",</div><div class='del'>-    "mendekikakui",</div><div class='del'>-    "lineara",</div><div class='del'>-    "carian",</div><div class='del'>-    "geor",</div><div class='del'>-    "grek",</div><div class='del'>-    "po",</div><div class='del'>-    "mark",</div><div class='del'>-    "mero",</div><div class='del'>-    "kana",</div><div class='del'>-    "greek",</div><div class='del'>-    "m",</div><div class='del'>-    "mro",</div><div class='del'>-    "mroo",</div><div class='del'>-    "cakm",</div><div class='del'>-    "inkharoshthi",</div><div class='del'>-    "gonm",</div><div class='del'>-    "c",</div><div class='del'>-    "inarmenian",</div><div class='del'>-    "inosmanya",</div><div class='del'>-    "common",</div><div class='del'>-    "inmro",</div><div class='del'>-    "inmanichaean",</div><div class='del'>-    "inmiao",</div><div class='del'>-    "mandaic",</div><div class='del'>-    "qaai",</div><div class='del'>-    "cans",</div><div class='del'>-    "inchakma",</div><div class='del'>-    "prependedconcatenationmark",</div><div class='del'>-    "inmyanmar",</div><div class='del'>-    "lm",</div><div class='del'>-    "inideographicsymbolsandpunctuation",</div><div class='del'>-    "marc",</div><div class='del'>-    "inmakasar",</div><div class='del'>-    "connectorpunctuation",</div><div class='del'>-    "inkhmer",</div><div class='del'>-    "merc",</div><div class='del'>-    "perm",</div><div class='del'>-    "inavestan",</div><div class='del'>-    "combiningmark",</div><div class='del'>-    "inipaextensions",</div><div class='del'>-    "incuneiformnumbersandpunctuation",</div><div class='del'>-    "inrunic",</div><div class='del'>-    "incarian",</div><div class='del'>-    "incherokee",</div><div class='del'>-    "inahom",</div><div class='del'>-    "insharada",</div><div class='del'>-    "masaramgondi",</div><div class='del'>-    "cc",</div><div class='del'>-    "makasar",</div><div class='del'>-    "lc",</div><div class='del'>-    "inarrows",</div><div class='del'>-    "mc",</div><div class='del'>-    "incuneiform",</div><div class='del'>-    "lineseparator",</div><div class='del'>-    "armi",</div><div class='del'>-    "armn",</div><div class='del'>-    "inzanabazarsquare",</div><div class='del'>-    "qaac",</div><div class='del'>-    "qmark",</div><div class='del'>-    "insamaritan",</div><div class='del'>-    "armenian",</div><div class='del'>-    "pc",</div><div class='del'>-    "inmasaramgondi",</div><div class='del'>-    "inmarchen",</div><div class='del'>-    "cs",</div><div class='del'>-    "inscriptionalparthian",</div><div class='del'>-    "zs",</div><div class='del'>-    "inkhmersymbols",</div><div class='del'>-    "ri",</div><div class='del'>-    "incham",</div><div class='del'>-    "incyrillic",</div><div class='del'>-    "latn",</div><div class='del'>-    "latin",</div><div class='del'>-    "mtei",</div><div class='del'>-    "pcm",</div><div class='del'>-    "inthaana",</div><div class='del'>-    "ps",</div><div class='del'>-    "inthai",</div><div class='del'>-    "insyriac",</div><div class='del'>-    "inkatakana",</div><div class='del'>-    "inkaithi",</div><div class='del'>-    "initialpunctuation",</div><div class='del'>-    "inideographicdescriptioncharacters",</div><div class='del'>-    "ascii",</div><div class='del'>-    "mand",</div><div class='del'>-    "mend",</div><div class='del'>-    "modi",</div><div class='del'>-    "arabic",</div><div class='del'>-    "ideo",</div><div class='del'>-    "intakri",</div><div class='del'>-    "prti",</div><div class='del'>-    "inruminumeralsymbols",</div><div class='del'>-    "katakana",</div><div class='del'>-    "xidcontinue",</div><div class='del'>-    "brai",</div><div class='del'>-    "privateuse",</div><div class='del'>-    "letter",</div><div class='del'>-    "inkanaextendeda",</div><div class='del'>-    "l",</div><div class='del'>-    "inmyanmarextendeda",</div><div class='del'>-    "inspecials",</div><div class='del'>-    "incjkcompatibilityforms",</div><div class='del'>-    "incjkcompatibilityideographs",</div><div class='del'>-    "inmeeteimayek",</div><div class='del'>-    "vai",</div><div class='del'>-    "vaii",</div><div class='del'>-    "knda",</div><div class='del'>-    "kannada",</div><div class='del'>-    "inchesssymbols",</div><div class='del'>-    "inlineara",</div><div class='del'>-    "letternumber",</div><div class='del'>-    "inmodi",</div><div class='del'>-    "inoldnortharabian",</div><div class='del'>-    "inlao",</div><div class='del'>-    "xidc",</div><div class='del'>-    "inmiscellaneousmathematicalsymbolsa",</div><div class='del'>-    "mongolian",</div><div class='del'>-    "inmedefaidrin",</div><div class='del'>-    "inemoticons",</div><div class='del'>-    "intransportandmapsymbols",</div><div class='del'>-    "brahmi",</div><div class='del'>-    "inmendekikakui",</div><div class='del'>-    "kali",</div><div class='del'>-    "psalterpahlavi",</div><div class='del'>-    "xids",</div><div class='del'>-    "grlink",</div><div class='del'>-    "control",</div><div class='del'>-    "inolditalic",</div><div class='del'>-    "inancientsymbols",</div><div class='del'>-    "inadlam",</div><div class='del'>-    "meroiticcursive",</div><div class='del'>-    "patternwhitespace",</div><div class='del'>-    "insundanese",</div><div class='del'>-    "palm",</div><div class='del'>-    "gothic",</div><div class='del'>-    "incommonindicnumberforms",</div><div class='del'>-    "so",</div><div class='del'>-    "sk",</div><div class='del'>-    "inoldsogdian",</div><div class='del'>-    "inlycian",</div><div class='del'>-    "inmandaic",</div><div class='del'>-    "incjkstrokes",</div><div class='del'>-    "sora",</div><div class='del'>-    "idc",</div><div class='del'>-    "lt",</div><div class='del'>-    "bamum",</div><div class='del'>-    "incjkcompatibilityideographssupplement",</div><div class='del'>-    "inoldsoutharabian",</div><div class='del'>-    "idsbinaryoperator",</div><div class='del'>-    "inmalayalam",</div><div class='del'>-    "inlinearbideograms",</div><div class='del'>-    "indominotiles",</div><div class='del'>-    "patws",</div><div class='del'>-    "inmusicalsymbols",</div><div class='del'>-    "bass",</div><div class='del'>-    "inmodifiertoneletters",</div><div class='del'>-    "innewa",</div><div class='del'>-    "grext",</div><div class='del'>-    "ids",</div><div class='del'>-    "samr",</div><div class='del'>-    "insylotinagri",</div><div class='del'>-    "joinc",</div><div class='del'>-    "inkanasupplement",</div><div class='del'>-    "s",</div><div class='del'>-    "batk",</div><div class='del'>-    "inmiscellaneoussymbols",</div><div class='del'>-    "inopticalcharacterrecognition",</div><div class='del'>-    "samaritan",</div><div class='del'>-    "inmiscellaneoussymbolsandarrows",</div><div class='del'>-    "lisu",</div><div class='del'>-    "inmiscellaneoussymbolsandpictographs",</div><div class='del'>-    "batak",</div><div class='del'>-    "pauc",</div><div class='del'>-    "sm",</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    "print",</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-    "punct",</div><div class='del'>-    "alpha",</div><div class='del'>-#endif /* ! USE_UNICODE_PROPERTIES */</div><div class='del'>-    "alnum",</div><div class='del'>-#ifdef USE_UNICODE_PROPERTIES</div><div class='del'>-    "inwarangciti",</div><div class='del'>-    "inancientgreekmusicalnotation",</div><div class='del'>-    "intaitham",</div><div class='del'>-    "incontrolpictures",</div><div class='del'>-    "vs",</div><div class='del'>-    "inugaritic",</div><div class='del'>-    "ital",</div><div class='del'>-    "lower",</div><div class='del'>-    "intaile",</div><div class='del'>-    "sc",</div><div class='del'>-    "insaurashtra",</div><div class='del'>-    "pd",</div><div class='del'>-    "inlatinextendeda",</div><div class='del'>-    "inlatinextendede",</div><div class='del'>-    "bali",</div><div class='del'>-    "bengali",</div><div class='del'>-    "balinese",</div><div class='del'>-    "idcontinue",</div><div class='del'>-    "inspacingmodifierletters",</div><div class='del'>-    "blank",</div><div class='del'>-    "lowercase",</div><div class='del'>-    "incaucasianalbanian",</div><div class='del'>-    "inlydian",</div><div class='del'>-    "idst",</div><div class='del'>-    "inoldturkic",</div><div class='del'>-    "cwcm",</div><div class='del'>-    "zinh",</div><div class='del'>-    "intamil",</div><div class='del'>-    "inmultani",</div><div class='del'>-    "indeseret",</div><div class='del'>-    "inancientgreeknumbers",</div><div class='del'>-    "ll",</div><div class='del'>-    "zl",</div><div class='del'>-    "patternsyntax",</div><div class='del'>-    "inhanifirohingya",</div><div class='del'>-    "cherokee",</div><div class='del'>-    "inearlydynasticcuneiform",</div><div class='del'>-    "cher",</div><div class='del'>-    "canadianaboriginal",</div><div class='del'>-    "cased",</div><div class='del'>-    "idstart",</div><div class='del'>-    "plrd",</div><div class='del'>-    "graphemebase",</div><div class='del'>-    "inmeeteimayekextensions",</div><div class='del'>-    "inhiragana",</div><div class='del'>-    "marchen",</div><div class='del'>-    "runr",</div><div class='del'>-    "cham",</div><div class='del'>-    "phoenician",</div><div class='del'>-    "chakma",</div><div class='del'>-    "kaithi",</div><div class='del'>-    "sind",</div><div class='del'>-    "graphemelink",</div><div class='del'>-    "inmahajani",</div><div class='del'>-    "khojki",</div><div class='del'>-    "inogham",</div><div class='del'>-    "khar",</div><div class='del'>-    "gong",</div><div class='del'>-    "incountingrodnumerals",</div><div class='del'>-    "inkhudawadi",</div><div class='del'>-    "bidic",</div><div class='del'>-    "ingrantha",</div><div class='del'>-    "mong",</div><div class='del'>-    "georgian",</div><div class='del'>-    "manichaean",</div><div class='del'>-    "inethiopic",</div><div class='del'>-    "inosage",</div><div class='del'>-    "innewtailue",</div><div class='del'>-    "inolchiki",</div><div class='del'>-    "sinhala",</div><div class='del'>-    "insiddham",</div><div class='del'>-    "adlm",</div><div class='del'>-    "bamu",</div><div class='del'>-    "xidstart",</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    "xdigit",</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-    "upper",</div><div class='del'>-    "ascii",</div><div class='del'>-#else /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    "glagolitic",</div><div class='del'>-    "gunjalagondi",</div><div class='del'>-    "ingeneralpunctuation",</div><div class='del'>-    "casedletter",</div><div class='del'>-    "multani",</div><div class='del'>-    "insinhala",</div><div class='del'>-    "inlatinextendedc",</div><div class='del'>-    "joincontrol",</div><div class='del'>-    "incyrillicextendeda",</div><div class='del'>-    "sterm",</div><div class='del'>-    "dia",</div><div class='del'>-    "di",</div><div class='del'>-    "uideo",</div><div class='del'>-    "ingeorgian",</div><div class='del'>-    "ahom",</div><div class='del'>-    "khmr",</div><div class='del'>-    "emoji",</div><div class='del'>-    "intaixuanjingsymbols",</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-    "age=1.1",</div><div class='del'>-    "age=9.0",</div><div class='del'>-    "age=11.0",</div><div class='del'>-    "age=10.0",</div><div class='del'>-    "age=2.1",</div><div class='del'>-    "age=2.0",</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-    "inmongolian",</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-    "age=8.0",</div><div class='del'>-    "age=6.1",</div><div class='del'>-    "age=6.0",</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-    "inscriptionalpahlavi",</div><div class='del'>-    "incyrillicsupplement",</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-    "age=6.2",</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-    "incherokeesupplement",</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-    "age=5.1",</div><div class='del'>-    "age=5.0",</div><div class='del'>-    "age=3.1",</div><div class='del'>-    "age=3.0",</div><div class='del'>-    "age=5.2",</div><div class='del'>-    "age=7.0",</div><div class='del'>-    "age=3.2",</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-    "kharoshthi",</div><div class='del'>-    "adlam",</div><div class='del'>-#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-    "age=6.3",</div><div class='del'>-    "age=4.1",</div><div class='del'>-    "age=4.0",</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-    "khmer",</div><div class='del'>-    "runic",</div><div class='del'>-    "quotationmark",</div><div class='del'>-    "lu",</div><div class='del'>-    "ingurmukhi",</div><div class='del'>-    "taile",</div><div class='del'>-    "incjkunifiedideographsextensiona",</div><div class='del'>-    "sundanese",</div><div class='del'>-    "incjkunifiedideographsextensione",</div><div class='del'>-    "takri",</div><div class='del'>-    "invai",</div><div class='del'>-    "n",</div><div class='del'>-    "inmiscellaneoustechnical",</div><div class='del'>-    "saur",</div><div class='del'>-    "incyrillicextendedc",</div><div class='del'>-    "guru",</div><div class='del'>-    "math",</div><div class='del'>-    "goth",</div><div class='del'>-    "xsux",</div><div class='del'>-    "logicalorderexception",</div><div class='del'>-    "paucinhau",</div><div class='del'>-    "no",</div><div class='del'>-    "xpeo",</div><div class='del'>-    "unassigned",</div><div class='del'>-    "takr",</div><div class='del'>-    "anatolianhieroglyphs",</div><div class='del'>-    "gurmukhi",</div><div class='del'>-    "insorasompeng",</div><div class='del'>-    "p",</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    "cntrl",</div><div class='del'>-#ifdef USE_UNICODE_PROPERTIES</div><div class='del'>-    "inenclosedalphanumerics",</div><div class='del'>-    "nko",</div><div class='del'>-    "nkoo",</div><div class='del'>-    "grantha",</div><div class='del'>-    "emojimodifier",</div><div class='del'>-    "limbu",</div><div class='del'>-    "lowercaseletter",</div><div class='del'>-    "inphoenician",</div><div class='del'>-    "diacritic",</div><div class='del'>-    "intirhuta",</div><div class='del'>-    "inhatran",</div><div class='del'>-    "kthi",</div><div class='del'>-    "punct",</div><div class='del'>-    "radical",</div><div class='del'>-    "inlatinextendedadditional",</div><div class='del'>-    "ingreekandcoptic",</div><div class='del'>-    "incjkunifiedideographsextensionc",</div><div class='del'>-    "brah",</div><div class='del'>-    "term",</div><div class='del'>-    "saurashtra",</div><div class='del'>-    "cwt",</div><div class='del'>-    "inoldhungarian",</div><div class='del'>-    "incjkunifiedideographs",</div><div class='del'>-    "lepc",</div><div class='del'>-    "graphemeextend",</div><div class='del'>-    "hani",</div><div class='del'>-    "han",</div><div class='del'>-    "oriya",</div><div class='del'>-    "inherited",</div><div class='del'>-    "sd",</div><div class='del'>-    "inmeroitichieroglyphs",</div><div class='del'>-    "hano",</div><div class='del'>-    "sidd",</div><div class='del'>-    "braille",</div><div class='del'>-    "inshavian",</div><div class='del'>-    "inphaistosdisc",</div><div class='del'>-    "inkangxiradicals",</div><div class='del'>-    "emojimodifierbase",</div><div class='del'>-    "enclosingmark",</div><div class='del'>-    "mult",</div><div class='del'>-    "decimalnumber",</div><div class='del'>-    "phli",</div><div class='del'>-    "bidicontrol",</div><div class='del'>-    "hanunoo",</div><div class='del'>-    "hira",</div><div class='del'>-    "beng",</div><div class='del'>-    "variationselector",</div><div class='del'>-    "unknown",</div><div class='del'>-    "inkhojki",</div><div class='del'>-    "inenclosedideographicsupplement",</div><div class='del'>-    "phnx",</div><div class='del'>-    "inanatolianhieroglyphs",</div><div class='del'>-    "inenclosedalphanumericsupplement",</div><div class='del'>-    "inimperialaramaic",</div><div class='del'>-    "bhks",</div><div class='del'>-    "regionalindicator",</div><div class='del'>-    "ingreekextended",</div><div class='del'>-    "bhaiksuki",</div><div class='del'>-    "glag",</div><div class='del'>-    "ingeometricshapes",</div><div class='del'>-    "osage",</div><div class='del'>-    "indogra",</div><div class='del'>-    "sinh",</div><div class='del'>-    "shavian",</div><div class='del'>-    "coptic",</div><div class='del'>-    "ahex",</div><div class='del'>-    "inlowsurrogates",</div><div class='del'>-    "insinhalaarchaicnumbers",</div><div class='del'>-    "medf",</div><div class='del'>-    "inhanunoo",</div><div class='del'>-    "taiviet",</div><div class='del'>-    "medefaidrin",</div><div class='del'>-    "inshorthandformatcontrols",</div><div class='del'>-    "linb",</div><div class='del'>-    "osma",</div><div class='del'>-    "insundanesesupplement",</div><div class='del'>-    "zanb",</div><div class='del'>-    "copt",</div><div class='del'>-    "ininscriptionalpahlavi",</div><div class='del'>-    "sund",</div><div class='del'>-    "inbhaiksuki",</div><div class='del'>-    "ininscriptionalparthian",</div><div class='del'>-    "punctuation",</div><div class='del'>-    "inelbasan",</div><div class='del'>-    "innabataean",</div><div class='del'>-    "emojicomponent",</div><div class='del'>-    "incjkunifiedideographsextensiond",</div><div class='del'>-    "insogdian",</div><div class='del'>-    "indingbats",</div><div class='del'>-    "inkanbun",</div><div class='del'>-    "cprt",</div><div class='del'>-    "ideographic",</div><div class='del'>-    "cwl",</div><div class='del'>-    "linearb",</div><div class='del'>-    "imperialaramaic",</div><div class='del'>-    "format",</div><div class='del'>-    "indevanagari",</div><div class='del'>-    "sogdian",</div><div class='del'>-    "sogo",</div><div class='del'>-    "inlatinextendedd",</div><div class='del'>-    "limb",</div><div class='del'>-    "asciihexdigit",</div><div class='del'>-    "sentenceterminal",</div><div class='del'>-    "java",</div><div class='del'>-    "bopo",</div><div class='del'>-    "dsrt",</div><div class='del'>-    "caseignorable",</div><div class='del'>-    "tale",</div><div class='del'>-    "avestan",</div><div class='del'>-    "deseret",</div><div class='del'>-    "innushu",</div><div class='del'>-    "javanese",</div><div class='del'>-    "intags",</div><div class='del'>-    "inoldpersian",</div><div class='del'>-    "inarabic",</div><div class='del'>-    "inornamentaldingbats",</div><div class='del'>-    "hatran",</div><div class='del'>-    "intangut",</div><div class='del'>-    "odi",</div><div class='del'>-    "arab",</div><div class='del'>-    "ingeometricshapesextended",</div><div class='del'>-    "invariationselectors",</div><div class='del'>-    "hatr",</div><div class='del'>-    "terminalpunctuation",</div><div class='del'>-    "taml",</div><div class='del'>-    "ugar",</div><div class='del'>-    "incjksymbolsandpunctuation",</div><div class='del'>-    "closepunctuation",</div><div class='del'>-    "inarabicpresentationformsa",</div><div class='del'>-    "inbasiclatin",</div><div class='del'>-    "bopomofo",</div><div class='del'>-    "grbase",</div><div class='del'>-    "inkatakanaphoneticextensions",</div><div class='del'>-    "inverticalforms",</div><div class='del'>-    "inoldpermic",</div><div class='del'>-    "avst",</div><div class='del'>-    "invedicextensions",</div><div class='del'>-    "alpha",</div><div class='del'>-    "cuneiform",</div><div class='del'>-    "inpalmyrene",</div><div class='del'>-    "insyriacsupplement",</div><div class='del'>-    "inethiopicextendeda",</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    "space",</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-    "xposixpunct",</div><div class='del'>-    "lower",</div><div class='del'>-#else /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    "inlisu",</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    "graph",</div><div class='del'>-#ifdef USE_UNICODE_PROPERTIES</div><div class='del'>-    "oidc",</div><div class='del'>-    "incoptic",</div><div class='del'>-    "inoriya",</div><div class='del'>-    "wara",</div><div class='del'>-    "inkayahli",</div><div class='del'>-    "inlepcha",</div><div class='del'>-    "spacingmark",</div><div class='del'>-    "sorasompeng",</div><div class='del'>-    "assigned",</div><div class='del'>-    "cwu",</div><div class='del'>-    "oids",</div><div class='del'>-    "inethiopicsupplement",</div><div class='del'>-    "sharada",</div><div class='del'>-    "intaiviet",</div><div class='del'>-    "inblockelements",</div><div class='del'>-    "olower",</div><div class='del'>-    "newa",</div><div class='del'>-    "invariationselectorssupplement",</div><div class='del'>-    "olck",</div><div class='del'>-    "intibetan",</div><div class='del'>-    "lyci",</div><div class='del'>-    "inbatak",</div><div class='del'>-    "shrd",</div><div class='del'>-    "cwcf",</div><div class='del'>-    "newtailue",</div><div class='del'>-    "innumberforms",</div><div class='del'>-    "olchiki",</div><div class='del'>-    "separator",</div><div class='del'>-    "inunifiedcanadianaboriginalsyllabics",</div><div class='del'>-    "lycian",</div><div class='del'>-    "modifierletter",</div><div class='del'>-    "mymr",</div><div class='del'>-    "phag",</div><div class='del'>-    "myanmar",</div><div class='del'>-    "siddham",</div><div class='del'>-    "inhanguljamoextendeda",</div><div class='del'>-    "inhanguljamo",</div><div class='del'>-    "inbyzantinemusicalsymbols",</div><div class='del'>-    "inarabicextendeda",</div><div class='del'>-    "inmeroiticcursive",</div><div class='del'>-    "bugi",</div><div class='del'>-    "gujr",</div><div class='del'>-    "intelugu",</div><div class='del'>-    "sogd",</div><div class='del'>-    "nd",</div><div class='del'>-    "gujarati",</div><div class='del'>-    "insoyombo",</div><div class='del'>-    "insmallformvariants",</div><div class='del'>-    "buginese",</div><div class='del'>-    "number",</div><div class='del'>-    "inmyanmarextendedb",</div><div class='del'>-    "indevanagariextended",</div><div class='del'>-    "inbalinese",</div><div class='del'>-    "ingeorgiansupplement",</div><div class='del'>-    "titlecaseletter",</div><div class='del'>-    "innoblock",</div><div class='del'>-    "thaa",</div><div class='del'>-    "inmiscellaneousmathematicalsymbolsb",</div><div class='del'>-    "thai",</div><div class='del'>-    "xposixpunct",</div><div class='del'>-    "inbraillepatterns",</div><div class='del'>-    "thaana",</div><div class='del'>-    "inphoneticextensions",</div><div class='del'>-    "incopticepactnumbers",</div><div class='del'>-    "incjkcompatibility",</div><div class='del'>-    "inmongoliansupplement",</div><div class='del'>-    "idsb",</div><div class='del'>-    "inmathematicalalphanumericsymbols",</div><div class='del'>-    "induployan",</div><div class='del'>-    "lepcha",</div><div class='del'>-    "inmayannumerals",</div><div class='del'>-    "tirh",</div><div class='del'>-    "dogra",</div><div class='del'>-    "nl",</div><div class='del'>-    "ext",</div><div class='del'>-    "ugaritic",</div><div class='del'>-    "dash",</div><div class='del'>-    "shaw",</div><div class='del'>-    "tirhuta",</div><div class='del'>-    "zanabazarsquare",</div><div class='del'>-    "taitham",</div><div class='del'>-    "inunifiedcanadianaboriginalsyllabicsextended",</div><div class='del'>-    "sarb",</div><div class='del'>-    "patsyn",</div><div class='del'>-    "dogr",</div><div class='del'>-    "lydi",</div><div class='del'>-    "inyiradicals",</div><div class='del'>-    "tang",</div><div class='del'>-    "lydian",</div><div class='del'>-    "tamil",</div><div class='del'>-    "tagbanwa",</div><div class='del'>-    "insuttonsignwriting",</div><div class='del'>-    "inethiopicextended",</div><div class='del'>-    "cf",</div><div class='del'>-    "ethi",</div><div class='del'>-    "talu",</div><div class='del'>-    "rohg",</div><div class='del'>-    "oldpersian",</div><div class='del'>-    "telu",</div><div class='del'>-    "word",</div><div class='del'>-    "idstrinaryoperator",</div><div class='del'>-    "mahj",</div><div class='del'>-    "khudawadi",</div><div class='del'>-    "inphagspa",</div><div class='del'>-    "incjkradicalssupplement",</div><div class='del'>-    "buhd",</div><div class='del'>-    "surrogate",</div><div class='del'>-    "mahajani",</div><div class='del'>-    "orkh",</div><div class='del'>-    "pf",</div><div class='del'>-    "inphoneticextensionssupplement",</div><div class='del'>-    "extender",</div><div class='del'>-    "sgnw",</div><div class='del'>-    "inglagolitic",</div><div class='del'>-    "deva",</div><div class='del'>-    "cyrl",</div><div class='del'>-    "incjkunifiedideographsextensionf",</div><div class='del'>-    "caucasianalbanian",</div><div class='del'>-    "devanagari",</div><div class='del'>-    "phagspa",</div><div class='del'>-    "hex",</div><div class='del'>-    "nchar",</div><div class='del'>-    "inbamum",</div><div class='del'>-    "khoj",</div><div class='del'>-    "mlym",</div><div class='del'>-    "oldpermic",</div><div class='del'>-    "malayalam",</div><div class='del'>-    "palmyrene",</div><div class='del'>-    "intifinagh",</div><div class='del'>-    "hang",</div><div class='del'>-    "spaceseparator",</div><div class='del'>-    "intagalog",</div><div class='del'>-    "ingothic",</div><div class='del'>-    "ingeorgianextended",</div><div class='del'>-    "ingujarati",</div><div class='del'>-    "inlatin1supplement",</div><div class='del'>-    "soyo",</div><div class='del'>-    "ogam",</div><div class='del'>-    "incombiningdiacriticalmarks",</div><div class='del'>-    "ingunjalagondi",</div><div class='del'>-    "hiragana",</div><div class='del'>-    "meroitichieroglyphs",</div><div class='del'>-    "incombiningdiacriticalmarksforsymbols",</div><div class='del'>-    "inrejang",</div><div class='del'>-    "tangut",</div><div class='del'>-    "zp",</div><div class='del'>-    "hmng",</div><div class='del'>-    "inprivateusearea",</div><div class='del'>-    "inbrahmi",</div><div class='del'>-    "osge",</div><div class='del'>-    "inenclosedcjklettersandmonths",</div><div class='del'>-    "nonspacingmark",</div><div class='del'>-    "softdotted",</div><div class='del'>-    "changeswhencasemapped",</div><div class='del'>-    "noncharactercodepoint",</div><div class='del'>-    "syrc",</div><div class='del'>-    "inpaucinhau",</div><div class='del'>-    "inhangulsyllables",</div><div class='del'>-    "injavanese",</div><div class='del'>-    "inbuginese",</div><div class='del'>-    "inbengali",</div><div class='del'>-    "incombiningdiacriticalmarkssupplement",</div><div class='del'>-    "inalphabeticpresentationforms",</div><div class='del'>-    "otheridcontinue",</div><div class='del'>-    "finalpunctuation",</div><div class='del'>-    "inpsalterpahlavi",</div><div class='del'>-    "phlp",</div><div class='del'>-    "olditalic",</div><div class='del'>-    "bassavah",</div><div class='del'>-    "other",</div><div class='del'>-    "incyrillicextendedb",</div><div class='del'>-    "othernumber",</div><div class='del'>-    "changeswhentitlecased",</div><div class='del'>-    "buhid",</div><div class='del'>-    "incombiningdiacriticalmarksextended",</div><div class='del'>-    "oalpha",</div><div class='del'>-    "currencysymbol",</div><div class='del'>-    "syriac",</div><div class='del'>-    "incurrencysymbols",</div><div class='del'>-    "rjng",</div><div class='del'>-    "graphemeclusterbreak=spacingmark",</div><div class='del'>-    "extendedpictographic",</div><div class='del'>-    "tavt",</div><div class='del'>-    "emojipresentation",</div><div class='del'>-    "inlimbu",</div><div class='del'>-    "graphemeclusterbreak=cr",</div><div class='del'>-    "otheralphabetic",</div><div class='del'>-    "graphemeclusterbreak=regionalindicator",</div><div class='del'>-    "incjkunifiedideographsextensionb",</div><div class='del'>-    "inaegeannumbers",</div><div class='del'>-    "mathsymbol",</div><div class='del'>-    "inlinearbsyllabary",</div><div class='del'>-    "intangutcomponents",</div><div class='del'>-    "inbassavah",</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    "digit",</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-    "blank"</div><div class='del'>-#else /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    "paragraphseparator",</div><div class='del'>-    "oldhungarian",</div><div class='del'>-    "narb",</div><div class='del'>-    "insuperscriptsandsubscripts",</div><div class='del'>-    "inbopomofo",</div><div class='del'>-    "changeswhenlowercased",</div><div class='del'>-    "whitespace",</div><div class='del'>-    "sylo",</div><div class='del'>-    "nshu",</div><div class='del'>-    "inbuhid",</div><div class='del'>-    "warangciti",</div><div class='del'>-    "inmathematicaloperators",</div><div class='del'>-    "deprecated",</div><div class='del'>-    "inletterlikesymbols",</div><div class='del'>-    "hangul",</div><div class='del'>-    "cyrillic",</div><div class='del'>-    "intagbanwa",</div><div class='del'>-    "incombininghalfmarks",</div><div class='del'>-    "oldturkic",</div><div class='del'>-    "hebr",</div><div class='del'>-    "hung",</div><div class='del'>-    "changeswhenuppercased",</div><div class='del'>-    "inarabicmathematicalalphabeticsymbols",</div><div class='del'>-    "inmahjongtiles",</div><div class='del'>-    "graphemeclusterbreak=t",</div><div class='del'>-    "graphemeclusterbreak=lvt",</div><div class='del'>-    "elba",</div><div class='del'>-    "insupplementalarrowsa",</div><div class='del'>-    "tibt",</div><div class='del'>-    "otherlowercase",</div><div class='del'>-    "inbamumsupplement",</div><div class='del'>-    "graphemeclusterbreak=extend",</div><div class='del'>-    "graphemeclusterbreak=prepend",</div><div class='del'>-    "tibetan",</div><div class='del'>-    "hluw",</div><div class='del'>-    "nbat",</div><div class='del'>-    "otherletter",</div><div class='del'>-    "nabataean",</div><div class='del'>-    "graphemeclusterbreak=l",</div><div class='del'>-    "graphemeclusterbreak=control",</div><div class='del'>-    "inarabicsupplement",</div><div class='del'>-    "orya",</div><div class='del'>-    "nushu",</div><div class='del'>-    "insupplementalmathematicaloperators",</div><div class='del'>-    "insupplementalarrowsc",</div><div class='del'>-    "inpahawhhmong",</div><div class='del'>-    "omath",</div><div class='del'>-    "elbasan",</div><div class='del'>-    "sylotinagri",</div><div class='del'>-    "otheruppercase",</div><div class='del'>-    "hexdigit",</div><div class='del'>-    "inhebrew",</div><div class='del'>-    "tifinagh",</div><div class='del'>-    "oldsogdian",</div><div class='del'>-    "othersymbol",</div><div class='del'>-    "inalchemicalsymbols",</div><div class='del'>-    "kayahli",</div><div class='del'>-    "upper",</div><div class='del'>-    "oupper",</div><div class='del'>-    "inplayingcards",</div><div class='del'>-    "otheridstart",</div><div class='del'>-    "inhalfwidthandfullwidthforms",</div><div class='del'>-    "inarabicpresentationformsb",</div><div class='del'>-    "wspace",</div><div class='del'>-    "tfng",</div><div class='del'>-    "uppercase",</div><div class='del'>-    "inhighprivateusesurrogates",</div><div class='del'>-    "signwriting",</div><div class='del'>-    "osmanya",</div><div class='del'>-    "cypriot",</div><div class='del'>-    "dupl",</div><div class='del'>-    "ogham",</div><div class='del'>-    "symbol",</div><div class='del'>-    "dashpunctuation",</div><div class='del'>-    "inyijinghexagramsymbols",</div><div class='del'>-    "inindicsiyaqnumbers",</div><div class='del'>-    "alphabetic",</div><div class='del'>-    "hanifirohingya",</div><div class='del'>-    "unifiedideograph",</div><div class='del'>-    "inhanguljamoextendedb",</div><div class='del'>-    "ogrext",</div><div class='del'>-    "pahawhhmong",</div><div class='del'>-    "changeswhencasefolded",</div><div class='del'>-    "aghb",</div><div class='del'>-    "dep",</div><div class='del'>-    "modifiersymbol",</div><div class='del'>-    "othermath",</div><div class='del'>-    "insupplementalpunctuation",</div><div class='del'>-    "ethiopic",</div><div class='del'>-    "tglg",</div><div class='del'>-    "tagalog",</div><div class='del'>-    "otherdefaultignorablecodepoint",</div><div class='del'>-    "incypriotsyllabary",</div><div class='del'>-    "defaultignorablecodepoint",</div><div class='del'>-    "any",</div><div class='del'>-    "uppercaseletter",</div><div class='del'>-    "rejang",</div><div class='del'>-    "tagb",</div><div class='del'>-    "inglagoliticsupplement",</div><div class='del'>-    "graphemeclusterbreak=lf",</div><div class='del'>-    "oldnortharabian",</div><div class='del'>-    "otherpunctuation",</div><div class='del'>-    "telugu",</div><div class='del'>-    "graphemeclusterbreak=v",</div><div class='del'>-    "graphemeclusterbreak=lv",</div><div class='del'>-    "inyisyllables",</div><div class='del'>-    "inlatinextendedb",</div><div class='del'>-    "graphemeclusterbreak=zwj",</div><div class='del'>-    "soyombo",</div><div class='del'>-    "inbopomofoextended",</div><div class='del'>-    "inhighsurrogates",</div><div class='del'>-    "insupplementaryprivateuseareaa",</div><div class='del'>-    "inegyptianhieroglyphs",</div><div class='del'>-    "hebrew",</div><div class='del'>-    "oldsoutharabian",</div><div class='del'>-    "hyphen",</div><div class='del'>-    "othergraphemeextend",</div><div class='del'>-    "inboxdrawing",</div><div class='del'>-    "insupplementalarrowsb",</div><div class='del'>-    "openpunctuation",</div><div class='del'>-    "inhangulcompatibilityjamo",</div><div class='del'>-    "duployan",</div><div class='del'>-    "insupplementalsymbolsandpictographs",</div><div class='del'>-    "egyp",</div><div class='del'>-    "zyyy",</div><div class='del'>-    "insupplementaryprivateuseareab",</div><div class='del'>-    "egyptianhieroglyphs"</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-  };</div><div class='del'>-#define uniname2ctype_pool ((const char *) &amp;uniname2ctype_pool_contents)</div><div class='del'>-const struct uniname2ctype_struct *</div><div class='del'>-uniname2ctype_p (register const char *str, register size_t len)</div><div class='del'>-{</div><div class='del'>-  static const struct uniname2ctype_struct wordlist[] =</div><div class='del'>-    {</div><div class='del'>-#ifdef USE_UNICODE_PROPERTIES</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str11), 111},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str16), 61},</div><div class='del'>-      {uniname2ctype_offset(str17), 111},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str22), 152},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str24), 21},</div><div class='del'>-      {uniname2ctype_offset(str25), 184},</div><div class='del'>-      {uniname2ctype_offset(str26), 52},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str31), 33},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str34), 186},</div><div class='del'>-      {uniname2ctype_offset(str35), 34},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str40), 248},</div><div class='del'>-      {uniname2ctype_offset(str41), 218},</div><div class='del'>-      {uniname2ctype_offset(str42), 22},</div><div class='del'>-      {uniname2ctype_offset(str43), 173},</div><div class='del'>-      {uniname2ctype_offset(str44), 28},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str46), 95},</div><div class='del'>-      {uniname2ctype_offset(str47), 95},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str49), 263},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str60), 44},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str64), 42},</div><div class='del'>-      {uniname2ctype_offset(str65), 149},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str67), 181},</div><div class='del'>-      {uniname2ctype_offset(str68), 160},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str70), 325},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str73), 313},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str75), 187},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str79), 184},</div><div class='del'>-      {uniname2ctype_offset(str80), 149},</div><div class='del'>-      {uniname2ctype_offset(str81), 98},</div><div class='del'>-      {uniname2ctype_offset(str82), 77},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str86), 45},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str90), 31},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str94), 172},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str99), 108},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str101), 77},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str103), 31},</div><div class='del'>-      {uniname2ctype_offset(str104), 189},</div><div class='del'>-      {uniname2ctype_offset(str105), 189},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str114), 170},</div><div class='del'>-      {uniname2ctype_offset(str115), 490},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str118), 212},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str123), 18},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str136), 307},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str139), 476},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str147), 75},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str150), 538},</div><div class='del'>-      {uniname2ctype_offset(str151), 493},</div><div class='del'>-      {uniname2ctype_offset(str152), 542},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str154), 169},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str157), 115},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str166), 102},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str170), 507},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str178), 255},</div><div class='del'>-      {uniname2ctype_offset(str179), 331},</div><div class='del'>-      {uniname2ctype_offset(str180), 27},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str184), 543},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str188), 208},</div><div class='del'>-      {uniname2ctype_offset(str189), 531},</div><div class='del'>-      {uniname2ctype_offset(str190), 40},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str192), 344},</div><div class='del'>-      {uniname2ctype_offset(str193), 171},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str195), 194},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str197), 494},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str201), 31},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str203), 301},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str210), 533},</div><div class='del'>-      {uniname2ctype_offset(str211), 339},</div><div class='del'>-      {uniname2ctype_offset(str212), 467},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str214), 336},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str220), 521},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str234), 509},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str236), 212},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str240), 19},</div><div class='del'>-      {uniname2ctype_offset(str241), 218},</div><div class='del'>-      {uniname2ctype_offset(str242), 25},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str249), 374},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str251), 32},</div><div class='del'>-      {uniname2ctype_offset(str252), 532},</div><div class='del'>-      {uniname2ctype_offset(str253), 53},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str259), 161},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str263), 79},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str265), 524},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str269), 129},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str274), 228},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str278), 314},</div><div class='del'>-      {uniname2ctype_offset(str279), 79},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str284), 40},</div><div class='del'>-      {uniname2ctype_offset(str285), 529},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str294), 528},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str302), 23},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str307), 163},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str311), 55},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str313), 350},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str316), 256},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str319), 435},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str322), 305},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str327), 76},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str336), 76},</div><div class='del'>-      {uniname2ctype_offset(str337), 160},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str339), 255},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str343), 312},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str346), 46},</div><div class='del'>-      {uniname2ctype_offset(str347), 328},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str351), 310},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str362), 405},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str366), 505},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str371), 44},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str385), 402},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str392), 14},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str395), 169},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str400), 187},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str407), 188},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str409), 81},</div><div class='del'>-      {uniname2ctype_offset(str410), 234},</div><div class='del'>-      {uniname2ctype_offset(str411), 520},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str414), 163},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str418), 501},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str420), 108},</div><div class='del'>-      {uniname2ctype_offset(str421), 70},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str424), 127},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str427), 22},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str432), 24},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str434), 547},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str437), 24},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str451), 436},</div><div class='del'>-      {uniname2ctype_offset(str452), 459},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str454), 455},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str459), 449},</div><div class='del'>-      {uniname2ctype_offset(str460), 442},</div><div class='del'>-      {uniname2ctype_offset(str461), 144},</div><div class='del'>-      {uniname2ctype_offset(str462), 144},</div><div class='del'>-      {uniname2ctype_offset(str463), 91},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str468), 91},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str473), 577},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str478), 480},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str488), 37},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str490), 518},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str492), 492},</div><div class='del'>-      {uniname2ctype_offset(str493), 329},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str499), 70},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str501), 385},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str504), 106},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str507), 541},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str513), 570},</div><div class='del'>-      {uniname2ctype_offset(str514), 572},</div><div class='del'>-      {uniname2ctype_offset(str515), 168},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str520), 560},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str522), 146},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str529), 195},</div><div class='del'>-      {uniname2ctype_offset(str530), 69},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str532), 74},</div><div class='del'>-      {uniname2ctype_offset(str533), 19},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str539), 469},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str542), 464},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str548), 561},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str551), 171},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str558), 253},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str563), 355},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str568), 192},</div><div class='del'>-      {uniname2ctype_offset(str569), 113},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str572), 426},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str580), 51},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str582), 49},</div><div class='del'>-      {uniname2ctype_offset(str583), 502},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str590), 466},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str609), 315},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str613), 410},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str616), 175},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str618), 68},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str622), 29},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str626), 158},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str628), 583},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str631), 491},</div><div class='del'>-      {uniname2ctype_offset(str632), 241},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str636), 326},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str640), 461},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str646), 565},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str656), 253},</div><div class='del'>-      {uniname2ctype_offset(str657), 552},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str664), 178},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str671), 423},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str673), 515},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str677), 72},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str680), 67},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str684), 156},</div><div class='del'>-      {uniname2ctype_offset(str685), 425},</div><div class='del'>-      {uniname2ctype_offset(str686), 225},</div><div class='del'>-      {uniname2ctype_offset(str687), 546},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str692), 47},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str694), 167},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str696), 383},</div><div class='del'>-      {uniname2ctype_offset(str697), 378},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str701), 156},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str705), 391},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str707), 157},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str710), 569},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str713), 167},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str715), 193},</div><div class='del'>-      {uniname2ctype_offset(str716), 50},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str721), 7},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str727), 13},</div><div class='del'>-      {uniname2ctype_offset(str728), 523},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str734), 553},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str736), 352},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str742), 377},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str745), 252},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str747), 472},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str757), 112},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str761), 6},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str777), 348},</div><div class='del'>-      {uniname2ctype_offset(str778), 48},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str781), 428},</div><div class='del'>-      {uniname2ctype_offset(str782), 41},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str790), 299},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str800), 440},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str802), 136},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str819), 85},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str822), 136},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str829), 68},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str832), 302},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str835), 2},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str837), 58},</div><div class='del'>-      {uniname2ctype_offset(str838), 479},</div><div class='del'>-      {uniname2ctype_offset(str839), 487},</div><div class='del'>-      {uniname2ctype_offset(str840), 242},</div><div class='del'>-      {uniname2ctype_offset(str841), 498},</div><div class='del'>-      {uniname2ctype_offset(str842), 66},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str850), 115},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str856), 323},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str858), 512},</div><div class='del'>-      {uniname2ctype_offset(str859), 474},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str865), 463},</div><div class='del'>-      {uniname2ctype_offset(str866), 26},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str873), 53},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str876), 254},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str879), 500},</div><div class='del'>-      {uniname2ctype_offset(str880), 101},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str882), 534},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str885), 101},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str888), 102},</div><div class='del'>-      {uniname2ctype_offset(str889), 60},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str894), 67},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str897), 173},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str904), 73},</div><div class='del'>-      {uniname2ctype_offset(str905), 438},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str907), 404},</div><div class='del'>-      {uniname2ctype_offset(str908), 208},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str912), 104},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str915), 151},</div><div class='del'>-      {uniname2ctype_offset(str916), 138},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str919), 170},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str923), 166},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str925), 197},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str928), 74},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str945), 508},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str953), 183},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str955), 338},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str959), 135},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str962), 217},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str964), 556},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str968), 513},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str971), 224},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str974), 514},</div><div class='del'>-      {uniname2ctype_offset(str975), 106},</div><div class='del'>-      {uniname2ctype_offset(str976), 98},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str979), 186},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str981), 334},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str986), 477},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str988), 349},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str991), 358},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str993), 93},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str997), 517},</div><div class='del'>-      {uniname2ctype_offset(str998), 206},</div><div class='del'>-      {uniname2ctype_offset(str999), 158},</div><div class='del'>-      {uniname2ctype_offset(str1000), 69},</div><div class='del'>-      {uniname2ctype_offset(str1001), 11},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1004), 131},</div><div class='del'>-      {uniname2ctype_offset(str1005), 217},</div><div class='del'>-      {uniname2ctype_offset(str1006), 368},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1008), 25},</div><div class='del'>-      {uniname2ctype_offset(str1009), 203},</div><div class='del'>-      {uniname2ctype_offset(str1010), 327},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1020), 393},</div><div class='del'>-      {uniname2ctype_offset(str1021), 225},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1030), 398},</div><div class='del'>-      {uniname2ctype_offset(str1031), 251},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1035), 235},</div><div class='del'>-      {uniname2ctype_offset(str1036), 71},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1039), 244},</div><div class='del'>-      {uniname2ctype_offset(str1040), 332},</div><div class='del'>-      {uniname2ctype_offset(str1041), 200},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1043), 105},</div><div class='del'>-      {uniname2ctype_offset(str1044), 257},</div><div class='del'>-      {uniname2ctype_offset(str1045), 555},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1061), 264},</div><div class='del'>-      {uniname2ctype_offset(str1062), 281},</div><div class='del'>-      {uniname2ctype_offset(str1063), 283},</div><div class='del'>-      {uniname2ctype_offset(str1064), 282},</div><div class='del'>-      {uniname2ctype_offset(str1065), 266},</div><div class='del'>-      {uniname2ctype_offset(str1066), 265},</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      {uniname2ctype_offset(str1067), 345},</div><div class='del'>-#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      {uniname2ctype_offset(str1068), 280},</div><div class='del'>-      {uniname2ctype_offset(str1069), 276},</div><div class='del'>-      {uniname2ctype_offset(str1070), 275},</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      {uniname2ctype_offset(str1071), 164},</div><div class='del'>-      {uniname2ctype_offset(str1072), 306},</div><div class='del'>-#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-      {-1},</div><div class='del'>-#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      {uniname2ctype_offset(str1073), 277},</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      {uniname2ctype_offset(str1074), 441},</div><div class='del'>-#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      {uniname2ctype_offset(str1075), 273},</div><div class='del'>-      {uniname2ctype_offset(str1076), 272},</div><div class='del'>-      {uniname2ctype_offset(str1077), 268},</div><div class='del'>-      {uniname2ctype_offset(str1078), 267},</div><div class='del'>-      {uniname2ctype_offset(str1079), 274},</div><div class='del'>-      {uniname2ctype_offset(str1080), 279},</div><div class='del'>-      {uniname2ctype_offset(str1081), 269},</div><div class='del'>-      {-1},</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      {uniname2ctype_offset(str1083), 135},</div><div class='del'>-      {uniname2ctype_offset(str1084), 206},</div><div class='del'>-#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      {uniname2ctype_offset(str1085), 278},</div><div class='del'>-      {uniname2ctype_offset(str1086), 271},</div><div class='del'>-      {uniname2ctype_offset(str1087), 270},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='del'>-      {uniname2ctype_offset(str1094), 105},</div><div class='del'>-      {uniname2ctype_offset(str1095), 104},</div><div class='del'>-      {uniname2ctype_offset(str1096), 228},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1098), 30},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1104), 320},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1118), 121},</div><div class='del'>-      {uniname2ctype_offset(str1119), 414},</div><div class='del'>-      {uniname2ctype_offset(str1120), 141},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1124), 581},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1128), 176},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1135), 420},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1137), 35},</div><div class='del'>-      {uniname2ctype_offset(str1138), 376},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1143), 145},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1145), 359},</div><div class='del'>-      {uniname2ctype_offset(str1146), 86},</div><div class='del'>-      {uniname2ctype_offset(str1147), 56},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1150), 113},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1154), 137},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1156), 248},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1160), 193},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1164), 38},</div><div class='del'>-      {uniname2ctype_offset(str1165), 134},</div><div class='del'>-      {uniname2ctype_offset(str1166), 21},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1169), 176},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1171), 201},</div><div class='del'>-      {uniname2ctype_offset(str1172), 86},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1174), 506},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1179), 39},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1181), 3},</div><div class='del'>-      {uniname2ctype_offset(str1182), 379},</div><div class='del'>-      {uniname2ctype_offset(str1183), 140},</div><div class='del'>-      {uniname2ctype_offset(str1184), 140},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1188), 181},</div><div class='del'>-      {uniname2ctype_offset(str1189), 259},</div><div class='del'>-      {uniname2ctype_offset(str1190), 120},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1193), 26},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1205), 486},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1210), 235},</div><div class='del'>-      {uniname2ctype_offset(str1211), 516},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1217), 485},</div><div class='del'>-      {uniname2ctype_offset(str1218), 166},</div><div class='del'>-      {uniname2ctype_offset(str1219), 15},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1224), 243},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1226), 366},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1232), 304},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1234), 579},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1239), 168},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1241), 229},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1248), 145},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1252), 64},</div><div class='del'>-      {uniname2ctype_offset(str1253), 499},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1255), 416},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1262), 142},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1265), 72},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1267), 110},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1270), 110},</div><div class='del'>-      {uniname2ctype_offset(str1271), 88},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1273), 115},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1276), 247},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1279), 488},</div><div class='del'>-      {uniname2ctype_offset(str1280), 117},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1282), 196},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1285), 127},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1287), 475},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1293), 465},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1295), 401},</div><div class='del'>-      {uniname2ctype_offset(str1296), 260},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1298), 33},</div><div class='del'>-      {uniname2ctype_offset(str1299), 203},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1303), 36},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1305), 164},</div><div class='del'>-      {uniname2ctype_offset(str1306), 224},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1308), 117},</div><div class='del'>-      {uniname2ctype_offset(str1309), 107},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1312), 85},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1319), 252},</div><div class='del'>-      {uniname2ctype_offset(str1320), 263},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1323), 511},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1328), 568},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1330), 138},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1339), 536},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1350), 567},</div><div class='del'>-      {uniname2ctype_offset(str1351), 482},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1353), 207},</div><div class='del'>-      {uniname2ctype_offset(str1354), 256},</div><div class='del'>-      {uniname2ctype_offset(str1355), 367},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1363), 207},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1366), 131},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1374), 382},</div><div class='del'>-      {uniname2ctype_offset(str1375), 210},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1378), 522},</div><div class='del'>-      {uniname2ctype_offset(str1379), 93},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1384), 124},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1393), 129},</div><div class='del'>-      {uniname2ctype_offset(str1394), 232},</div><div class='del'>-      {uniname2ctype_offset(str1395), 447},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1402), 510},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1418), 219},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1423), 341},</div><div class='del'>-      {uniname2ctype_offset(str1424), 153},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1434), 219},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1439), 550},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1446), 122},</div><div class='del'>-      {uniname2ctype_offset(str1447), 125},</div><div class='del'>-      {uniname2ctype_offset(str1448), 361},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1450), 215},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1461), 129},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1464), 496},</div><div class='del'>-      {uniname2ctype_offset(str1465), 141},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1468), 527},</div><div class='del'>-      {uniname2ctype_offset(str1469), 495},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1471), 39},</div><div class='del'>-      {uniname2ctype_offset(str1472), 478},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1476), 484},</div><div class='del'>-      {uniname2ctype_offset(str1477), 261},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1483), 580},</div><div class='del'>-      {uniname2ctype_offset(str1484), 503},</div><div class='del'>-      {uniname2ctype_offset(str1485), 384},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1490), 408},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1494), 126},</div><div class='del'>-      {uniname2ctype_offset(str1495), 234},</div><div class='del'>-      {uniname2ctype_offset(str1496), 62},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1500), 122},</div><div class='del'>-      {uniname2ctype_offset(str1501), 161},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1505), 20},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1508), 318},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1510), 221},</div><div class='del'>-      {uniname2ctype_offset(str1511), 222},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1518), 424},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1523), 120},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1525), 232},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1529), 251},</div><div class='del'>-      {uniname2ctype_offset(str1530), 159},</div><div class='del'>-      {uniname2ctype_offset(str1531), 109},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1533), 114},</div><div class='del'>-      {uniname2ctype_offset(str1534), 61},</div><div class='del'>-      {uniname2ctype_offset(str1535), 121},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1540), 154},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1548), 114},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1551), 548},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1553), 159},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1561), 584},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1564), 473},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1574), 309},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1576), 571},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1580), 202},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1583), 544},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1586), 245},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1593), 81},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1600), 574},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1606), 452},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1611), 202},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1613), 229},</div><div class='del'>-      {uniname2ctype_offset(str1614), 89},</div><div class='del'>-      {uniname2ctype_offset(str1615), 123},</div><div class='del'>-      {uniname2ctype_offset(str1616), 403},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1618), 42},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1625), 451},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1627), 297},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1637), 109},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1641), 73},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1651), 411},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1657), 453},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1663), 471},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1669), 154},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1671), 362},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1679), 1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1682), 137},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1684), 483},</div><div class='del'>-      {uniname2ctype_offset(str1685), 316},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1689), 439},</div><div class='del'>-      {uniname2ctype_offset(str1690), 9},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1695), 419},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1698), 5},</div><div class='del'>-      {uniname2ctype_offset(str1699), 250},</div><div class='del'>-      {uniname2ctype_offset(str1700), 394},</div><div class='del'>-      {uniname2ctype_offset(str1701), 322},</div><div class='del'>-      {uniname2ctype_offset(str1702), 199},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1704), 430},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1707), 357},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1714), 32},</div><div class='del'>-      {uniname2ctype_offset(str1715), 175},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1720), 17},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1728), 63},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1730), 249},</div><div class='del'>-      {uniname2ctype_offset(str1731), 335},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1738), 174},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1747), 437},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1749), 381},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1767), 237},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1770), 209},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1775), 585},</div><div class='del'>-      {uniname2ctype_offset(str1776), 143},</div><div class='del'>-      {uniname2ctype_offset(str1777), 330},</div><div class='del'>-      {uniname2ctype_offset(str1778), 148},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1780), 356},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1782), 174},</div><div class='del'>-      {uniname2ctype_offset(str1783), 65},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1785), 130},</div><div class='del'>-      {uniname2ctype_offset(str1786), 373},</div><div class='del'>-      {uniname2ctype_offset(str1787), 143},</div><div class='del'>-      {uniname2ctype_offset(str1788), 52},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1792), 337},</div><div class='del'>-      {uniname2ctype_offset(str1793), 148},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1799), 27},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1802), 97},</div><div class='del'>-      {uniname2ctype_offset(str1803), 139},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1807), 97},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1825), 196},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1827), 432},</div><div class='del'>-      {uniname2ctype_offset(str1828), 333},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1832), 551},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1839), 317},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1841), 489},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1846), 128},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1852), 87},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1856), 324},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1859), 221},</div><div class='del'>-      {uniname2ctype_offset(str1860), 36},</div><div class='del'>-      {uniname2ctype_offset(str1861), 87},</div><div class='del'>-      {uniname2ctype_offset(str1862), 525},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1865), 456},</div><div class='del'>-      {uniname2ctype_offset(str1866), 128},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1869), 35},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1872), 434},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1883), 429},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1896), 354},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1898), 395},</div><div class='del'>-      {uniname2ctype_offset(str1899), 29},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1911), 588},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1921), 83},</div><div class='del'>-      {uniname2ctype_offset(str1922), 389},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1924), 94},</div><div class='del'>-      {uniname2ctype_offset(str1925), 8},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1931), 387},</div><div class='del'>-      {uniname2ctype_offset(str1932), 83},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1942), 363},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1944), 468},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1948), 413},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1950), 519},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1956), 241},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1960), 557},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1965), 549},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1969), 142},</div><div class='del'>-      {uniname2ctype_offset(str1970), 554},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1973), 198},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1979), 216},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1986), 37},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str1993), 236},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1995), 123},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1997), 226},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str1999), 124},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2008), 198},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2012), 215},</div><div class='del'>-      {uniname2ctype_offset(str2013), 152},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2018), 346},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2021), 162},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2025), 254},</div><div class='del'>-      {uniname2ctype_offset(str2026), 216},</div><div class='del'>-      {uniname2ctype_offset(str2027), 150},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2029), 418},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2038), 211},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2042), 150},</div><div class='del'>-      {uniname2ctype_offset(str2043), 89},</div><div class='del'>-      {uniname2ctype_offset(str2044), 119},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2047), 558},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2052), 397},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2060), 20},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2062), 100},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2073), 130},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2075), 220},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2077), 134},</div><div class='del'>-      {uniname2ctype_offset(str2078), 90},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2082), 12},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2086), 242},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2091), 185},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2093), 197},</div><div class='del'>-      {uniname2ctype_offset(str2094), 427},</div><div class='del'>-      {uniname2ctype_offset(str2095), 400},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2097), 118},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2099), 23},</div><div class='del'>-      {uniname2ctype_offset(str2100), 185},</div><div class='del'>-      {uniname2ctype_offset(str2101), 165},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2104), 43},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2111), 364},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2115), 236},</div><div class='del'>-      {uniname2ctype_offset(str2116), 205},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2129), 392},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2133), 84},</div><div class='del'>-      {uniname2ctype_offset(str2134), 78},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2144), 582},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2147), 177},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2151), 84},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2153), 139},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2157), 231},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2168), 239},</div><div class='del'>-      {uniname2ctype_offset(str2169), 422},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2175), 183},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2180), 92},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2184), 194},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2187), 92},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2190), 192},</div><div class='del'>-      {uniname2ctype_offset(str2191), 396},</div><div class='del'>-      {uniname2ctype_offset(str2192), 99},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2196), 55},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2200), 340},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2204), 470},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2219), 360},</div><div class='del'>-      {uniname2ctype_offset(str2220), 321},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2222), 298},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2228), 214},</div><div class='del'>-      {uniname2ctype_offset(str2229), 103},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2238), 303},</div><div class='del'>-      {uniname2ctype_offset(str2239), 530},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2243), 107},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2245), 172},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2248), 371},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2264), 431},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2267), 211},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2273), 54},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2276), 182},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2278), 448},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2280), 504},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2296), 210},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2308), 412},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2315), 34},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2344), 247},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2348), 66},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2356), 239},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2360), 82},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2369), 526},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2380), 443},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2389), 433},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2397), 351},</div><div class='del'>-      {uniname2ctype_offset(str2398), 319},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2407), 365},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2413), 450},</div><div class='del'>-      {uniname2ctype_offset(str2414), 250},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2420), 43},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2426), 497},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2429), 195},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2435), 112},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2437), 178},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2440), 18},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2451), 421},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2454), 38},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2459), 64},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2463), 118},</div><div class='del'>-      {uniname2ctype_offset(str2464), 353},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2466), 233},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2478), 48},</div><div class='del'>-      {uniname2ctype_offset(str2479), 82},</div><div class='del'>-      {uniname2ctype_offset(str2480), 370},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2497), 147},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2499), 290},</div><div class='del'>-      {uniname2ctype_offset(str2500), 262},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2503), 153},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2511), 258},</div><div class='del'>-      {uniname2ctype_offset(str2512), 347},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2522), 285},</div><div class='del'>-      {uniname2ctype_offset(str2523), 233},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2537), 289},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2540), 578},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2546), 462},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2555), 50},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2561), 460},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2570), 545},</div><div class='del'>-      {uniname2ctype_offset(str2571), 539},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2576), 4},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2582), 54},</div><div class='del'>-      {uniname2ctype_offset(str2583), 204},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2605), 190},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2617), 369},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2620), 406},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2625), 62},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2638), 223},</div><div class='del'>-      {uniname2ctype_offset(str2639), 133},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2642), 213},</div><div class='del'>-      {uniname2ctype_offset(str2643), 342},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2648), 199},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2650), 375},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2657), 246},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2660), 372},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2665), 99},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2682), 78},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2694), 343},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2720), 454},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2722), 165},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2732), 80},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2735), 204},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2741), 63},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2759), 563},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2769), 564},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2777), 293},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2779), 295},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2784), 180},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2807), 386},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2832), 96},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2834), 237},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2836), 537},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2841), 288},</div><div class='del'>-      {uniname2ctype_offset(str2842), 284},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2844), 96},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2857), 201},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2861), 191},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2874), 28},</div><div class='del'>-      {uniname2ctype_offset(str2875), 191},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2899), 291},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2905), 287},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2908), 311},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2911), 88},</div><div class='del'>-      {uniname2ctype_offset(str2912), 213},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2918), 390},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2922), 575},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2924), 540},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2939), 230},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2942), 180},</div><div class='del'>-      {uniname2ctype_offset(str2943), 133},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2950), 238},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2952), 231},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2956), 308},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2962), 132},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2967), 222},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2971), 51},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2978), 573},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str2990), 146},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2992), 10},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str2994), 238},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3012), 566},</div><div class='del'>-      {uniname2ctype_offset(str3013), 249},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3019), 458},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3046), 457},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3055), 223},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3063), 132},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3068), 59},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3078), 446},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str3098), 205},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3104), 125},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3114), 126},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3130), 179},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3133), 103},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3154), 47},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3175), 41},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3182), 415},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3197), 562},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3221), 57},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3233), 220},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3236), 244},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3248), 444},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3256), 240},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3260), 182},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str3289), 65},</div><div class='del'>-      {uniname2ctype_offset(str3290), 177},</div><div class='del'>-      {uniname2ctype_offset(str3291), 246},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str3293), 49},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3298), 230},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3312), 399},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str3323), 100},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3386), 116},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3407), 116},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str3409), 245},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3413), 481},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3417), 71},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str3419), 16},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3424), 30},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3434), 147},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3452), 119},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3457), 559},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3498), 286},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3515), 190},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3546), 45},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3553), 90},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3567), 292},</div><div class='del'>-      {uniname2ctype_offset(str3568), 294},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3631), 417},</div><div class='del'>-      {uniname2ctype_offset(str3632), 300},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3723), 296},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3738), 214},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3790), 409},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3832), 445},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3894), 586},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3907), 535},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str3952), 80},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str4009), 162},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str4052), 227},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str4089), 240},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str4132), 380},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str4228), 388},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str4345), 46},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1},</div><div class='del'>-      {uniname2ctype_offset(str4374), 407},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str4377), 179},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str4563), 576},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str4636), 155},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str4957), 75},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#ifndef USE_UNICODE_PROPERTIES</div><div class='del'>-      {uniname2ctype_offset(str6), 12},</div><div class='del'>-      {uniname2ctype_offset(str7), 7},</div><div class='del'>-      {uniname2ctype_offset(str8), 15},</div><div class='del'>-      {uniname2ctype_offset(str9), 1},</div><div class='del'>-      {uniname2ctype_offset(str10), 13},</div><div class='del'>-      {uniname2ctype_offset(str11), 11},</div><div class='del'>-      {uniname2ctype_offset(str12), 10},</div><div class='del'>-      {uniname2ctype_offset(str13), 14},</div><div class='del'>-      {uniname2ctype_offset(str14), 3},</div><div class='del'>-      {uniname2ctype_offset(str15), 9},</div><div class='del'>-      {uniname2ctype_offset(str16), 8},</div><div class='del'>-      {uniname2ctype_offset(str17), 6},</div><div class='del'>-      {uniname2ctype_offset(str18), 5},</div><div class='del'>-      {uniname2ctype_offset(str19), 4},</div><div class='del'>-      {uniname2ctype_offset(str20), 2}</div><div class='del'>-#else /* USE_UNICODE_PROPERTIES */</div><div class='del'>-      {uniname2ctype_offset(str5315), 587},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {uniname2ctype_offset(str5676), 155}</div><div class='del'>-#endif /* USE_UNICODE_PROPERTIES */</div><div class='del'>-    };</div><div class='del'>-</div><div class='del'>-  if (len &lt;= MAX_WORD_LENGTH &amp;&amp; len &gt;= MIN_WORD_LENGTH)</div><div class='del'>-    {</div><div class='del'>-      register unsigned int key = uniname2ctype_hash (str, len);</div><div class='del'>-</div><div class='del'>-      if (key &lt;= MAX_HASH_VALUE)</div><div class='del'>-        {</div><div class='del'>-          register int o = wordlist[key].name;</div><div class='del'>-          if (o &gt;= 0)</div><div class='del'>-            {</div><div class='del'>-              register const char *s = o + uniname2ctype_pool;</div><div class='del'>-</div><div class='del'>-              if (*str == *s &amp;&amp; !strncmp (str + 1, s + 1, len - 1) &amp;&amp; s[len] == '\0')</div><div class='del'>-                return &amp;wordlist[key];</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-  return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-uniname2ctype(const UChar *name, unsigned int len)</div><div class='del'>-{</div><div class='del'>-  const struct uniname2ctype_struct *p = uniname2ctype_p((const char *)name, len);</div><div class='del'>-  if (p) return p-&gt;ctype;</div><div class='del'>-  return -1;</div><div class='del'>-}</div><div class='del'>-#if defined ONIG_UNICODE_VERSION_STRING &amp;&amp; !( \</div><div class='del'>-      ONIG_UNICODE_VERSION_MAJOR == 11 &amp;&amp; \</div><div class='del'>-      ONIG_UNICODE_VERSION_MINOR == 0 &amp;&amp; \</div><div class='del'>-      ONIG_UNICODE_VERSION_TEENY == 0 &amp;&amp; \</div><div class='del'>-      1)</div><div class='del'>-# error ONIG_UNICODE_VERSION_STRING mismatch</div><div class='del'>-#endif</div><div class='del'>-#define ONIG_UNICODE_VERSION_STRING "11.0.0"</div><div class='del'>-#define ONIG_UNICODE_VERSION_MAJOR 11</div><div class='del'>-#define ONIG_UNICODE_VERSION_MINOR 0</div><div class='del'>-#define ONIG_UNICODE_VERSION_TEENY 0</div><div class='del'>-#if defined ONIG_UNICODE_EMOJI_VERSION_STRING &amp;&amp; !( \</div><div class='del'>-      ONIG_UNICODE_EMOJI_VERSION_MAJOR == 11 &amp;&amp; \</div><div class='del'>-      ONIG_UNICODE_EMOJI_VERSION_MINOR == 0 &amp;&amp; \</div><div class='del'>-      1)</div><div class='del'>-# error ONIG_UNICODE_EMOJI_VERSION_STRING mismatch</div><div class='del'>-#endif</div><div class='del'>-#define ONIG_UNICODE_EMOJI_VERSION_STRING "11.0"</div><div class='del'>-#define ONIG_UNICODE_EMOJI_VERSION_MAJOR 11</div><div class='del'>-#define ONIG_UNICODE_EMOJI_VERSION_MINOR 0</div><div class='head'>diff --git a/enc/unicode/15.0.0/casefold.h b/enc/unicode/15.0.0/casefold.h<br/>new file mode 100644<br/>index 0000000000..51120d867d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/unicode/15.0.0/casefold.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/unicode/15.0.0/casefold.h</a></div><div class='hunk'>@@ -0,0 +1,7629 @@</div><div class='add'>+/* DO NOT EDIT THIS FILE. */</div><div class='add'>+/* Generated by enc-case-folding.rb */</div><div class='add'>+</div><div class='add'>+#if defined ONIG_UNICODE_VERSION_STRING &amp;&amp; !( \</div><div class='add'>+      ONIG_UNICODE_VERSION_MAJOR == 15 &amp;&amp; \</div><div class='add'>+      ONIG_UNICODE_VERSION_MINOR == 0 &amp;&amp; \</div><div class='add'>+      ONIG_UNICODE_VERSION_TEENY == 0 &amp;&amp; \</div><div class='add'>+      1)</div><div class='add'>+# error ONIG_UNICODE_VERSION_STRING mismatch</div><div class='add'>+#endif</div><div class='add'>+#define ONIG_UNICODE_VERSION_STRING "15.0.0"</div><div class='add'>+#define ONIG_UNICODE_VERSION_MAJOR 15</div><div class='add'>+#define ONIG_UNICODE_VERSION_MINOR 0</div><div class='add'>+#define ONIG_UNICODE_VERSION_TEENY 0</div><div class='add'>+</div><div class='add'>+static const CaseFold_11_Type CaseFold_11_Table[] = {</div><div class='add'>+#define CaseFold (*(CaseFold_11_Type (*)[1528])(CaseFold_11_Table+0))</div><div class='add'>+  {0x0041, {1|F|D, {0x0061}}},</div><div class='add'>+  {0x0042, {1|F|D, {0x0062}}},</div><div class='add'>+  {0x0043, {1|F|D, {0x0063}}},</div><div class='add'>+  {0x0044, {1|F|D, {0x0064}}},</div><div class='add'>+  {0x0045, {1|F|D, {0x0065}}},</div><div class='add'>+  {0x0046, {1|F|D, {0x0066}}},</div><div class='add'>+  {0x0047, {1|F|D, {0x0067}}},</div><div class='add'>+  {0x0048, {1|F|D, {0x0068}}},</div><div class='add'>+  {0x004a, {1|F|D, {0x006a}}},</div><div class='add'>+  {0x004b, {1|F|D, {0x006b}}},</div><div class='add'>+  {0x004c, {1|F|D, {0x006c}}},</div><div class='add'>+  {0x004d, {1|F|D, {0x006d}}},</div><div class='add'>+  {0x004e, {1|F|D, {0x006e}}},</div><div class='add'>+  {0x004f, {1|F|D, {0x006f}}},</div><div class='add'>+  {0x0050, {1|F|D, {0x0070}}},</div><div class='add'>+  {0x0051, {1|F|D, {0x0071}}},</div><div class='add'>+  {0x0052, {1|F|D, {0x0072}}},</div><div class='add'>+  {0x0053, {1|F|D, {0x0073}}},</div><div class='add'>+  {0x0054, {1|F|D, {0x0074}}},</div><div class='add'>+  {0x0055, {1|F|D, {0x0075}}},</div><div class='add'>+  {0x0056, {1|F|D, {0x0076}}},</div><div class='add'>+  {0x0057, {1|F|D, {0x0077}}},</div><div class='add'>+  {0x0058, {1|F|D, {0x0078}}},</div><div class='add'>+  {0x0059, {1|F|D, {0x0079}}},</div><div class='add'>+  {0x005a, {1|F|D, {0x007a}}},</div><div class='add'>+  {0x00b5, {1|F|SU|I(0), {0x03bc}}},</div><div class='add'>+  {0x00c0, {1|F|D, {0x00e0}}},</div><div class='add'>+  {0x00c1, {1|F|D, {0x00e1}}},</div><div class='add'>+  {0x00c2, {1|F|D, {0x00e2}}},</div><div class='add'>+  {0x00c3, {1|F|D, {0x00e3}}},</div><div class='add'>+  {0x00c4, {1|F|D, {0x00e4}}},</div><div class='add'>+  {0x00c5, {1|F|D, {0x00e5}}},</div><div class='add'>+  {0x00c6, {1|F|D, {0x00e6}}},</div><div class='add'>+  {0x00c7, {1|F|D, {0x00e7}}},</div><div class='add'>+  {0x00c8, {1|F|D, {0x00e8}}},</div><div class='add'>+  {0x00c9, {1|F|D, {0x00e9}}},</div><div class='add'>+  {0x00ca, {1|F|D, {0x00ea}}},</div><div class='add'>+  {0x00cb, {1|F|D, {0x00eb}}},</div><div class='add'>+  {0x00cc, {1|F|D, {0x00ec}}},</div><div class='add'>+  {0x00cd, {1|F|D, {0x00ed}}},</div><div class='add'>+  {0x00ce, {1|F|D, {0x00ee}}},</div><div class='add'>+  {0x00cf, {1|F|D, {0x00ef}}},</div><div class='add'>+  {0x00d0, {1|F|D, {0x00f0}}},</div><div class='add'>+  {0x00d1, {1|F|D, {0x00f1}}},</div><div class='add'>+  {0x00d2, {1|F|D, {0x00f2}}},</div><div class='add'>+  {0x00d3, {1|F|D, {0x00f3}}},</div><div class='add'>+  {0x00d4, {1|F|D, {0x00f4}}},</div><div class='add'>+  {0x00d5, {1|F|D, {0x00f5}}},</div><div class='add'>+  {0x00d6, {1|F|D, {0x00f6}}},</div><div class='add'>+  {0x00d8, {1|F|D, {0x00f8}}},</div><div class='add'>+  {0x00d9, {1|F|D, {0x00f9}}},</div><div class='add'>+  {0x00da, {1|F|D, {0x00fa}}},</div><div class='add'>+  {0x00db, {1|F|D, {0x00fb}}},</div><div class='add'>+  {0x00dc, {1|F|D, {0x00fc}}},</div><div class='add'>+  {0x00dd, {1|F|D, {0x00fd}}},</div><div class='add'>+  {0x00de, {1|F|D, {0x00fe}}},</div><div class='add'>+  {0x00df, {2|F|ST|SU|I(1), {0x0073, 0x0073}}},</div><div class='add'>+  {0x0100, {1|F|D, {0x0101}}},</div><div class='add'>+  {0x0102, {1|F|D, {0x0103}}},</div><div class='add'>+  {0x0104, {1|F|D, {0x0105}}},</div><div class='add'>+  {0x0106, {1|F|D, {0x0107}}},</div><div class='add'>+  {0x0108, {1|F|D, {0x0109}}},</div><div class='add'>+  {0x010a, {1|F|D, {0x010b}}},</div><div class='add'>+  {0x010c, {1|F|D, {0x010d}}},</div><div class='add'>+  {0x010e, {1|F|D, {0x010f}}},</div><div class='add'>+  {0x0110, {1|F|D, {0x0111}}},</div><div class='add'>+  {0x0112, {1|F|D, {0x0113}}},</div><div class='add'>+  {0x0114, {1|F|D, {0x0115}}},</div><div class='add'>+  {0x0116, {1|F|D, {0x0117}}},</div><div class='add'>+  {0x0118, {1|F|D, {0x0119}}},</div><div class='add'>+  {0x011a, {1|F|D, {0x011b}}},</div><div class='add'>+  {0x011c, {1|F|D, {0x011d}}},</div><div class='add'>+  {0x011e, {1|F|D, {0x011f}}},</div><div class='add'>+  {0x0120, {1|F|D, {0x0121}}},</div><div class='add'>+  {0x0122, {1|F|D, {0x0123}}},</div><div class='add'>+  {0x0124, {1|F|D, {0x0125}}},</div><div class='add'>+  {0x0126, {1|F|D, {0x0127}}},</div><div class='add'>+  {0x0128, {1|F|D, {0x0129}}},</div><div class='add'>+  {0x012a, {1|F|D, {0x012b}}},</div><div class='add'>+  {0x012c, {1|F|D, {0x012d}}},</div><div class='add'>+  {0x012e, {1|F|D, {0x012f}}},</div><div class='add'>+  {0x0132, {1|F|D, {0x0133}}},</div><div class='add'>+  {0x0134, {1|F|D, {0x0135}}},</div><div class='add'>+  {0x0136, {1|F|D, {0x0137}}},</div><div class='add'>+  {0x0139, {1|F|D, {0x013a}}},</div><div class='add'>+  {0x013b, {1|F|D, {0x013c}}},</div><div class='add'>+  {0x013d, {1|F|D, {0x013e}}},</div><div class='add'>+  {0x013f, {1|F|D, {0x0140}}},</div><div class='add'>+  {0x0141, {1|F|D, {0x0142}}},</div><div class='add'>+  {0x0143, {1|F|D, {0x0144}}},</div><div class='add'>+  {0x0145, {1|F|D, {0x0146}}},</div><div class='add'>+  {0x0147, {1|F|D, {0x0148}}},</div><div class='add'>+  {0x0149, {2|F|SU|I(5), {0x02bc, 0x006e}}},</div><div class='add'>+  {0x014a, {1|F|D, {0x014b}}},</div><div class='add'>+  {0x014c, {1|F|D, {0x014d}}},</div><div class='add'>+  {0x014e, {1|F|D, {0x014f}}},</div><div class='add'>+  {0x0150, {1|F|D, {0x0151}}},</div><div class='add'>+  {0x0152, {1|F|D, {0x0153}}},</div><div class='add'>+  {0x0154, {1|F|D, {0x0155}}},</div><div class='add'>+  {0x0156, {1|F|D, {0x0157}}},</div><div class='add'>+  {0x0158, {1|F|D, {0x0159}}},</div><div class='add'>+  {0x015a, {1|F|D, {0x015b}}},</div><div class='add'>+  {0x015c, {1|F|D, {0x015d}}},</div><div class='add'>+  {0x015e, {1|F|D, {0x015f}}},</div><div class='add'>+  {0x0160, {1|F|D, {0x0161}}},</div><div class='add'>+  {0x0162, {1|F|D, {0x0163}}},</div><div class='add'>+  {0x0164, {1|F|D, {0x0165}}},</div><div class='add'>+  {0x0166, {1|F|D, {0x0167}}},</div><div class='add'>+  {0x0168, {1|F|D, {0x0169}}},</div><div class='add'>+  {0x016a, {1|F|D, {0x016b}}},</div><div class='add'>+  {0x016c, {1|F|D, {0x016d}}},</div><div class='add'>+  {0x016e, {1|F|D, {0x016f}}},</div><div class='add'>+  {0x0170, {1|F|D, {0x0171}}},</div><div class='add'>+  {0x0172, {1|F|D, {0x0173}}},</div><div class='add'>+  {0x0174, {1|F|D, {0x0175}}},</div><div class='add'>+  {0x0176, {1|F|D, {0x0177}}},</div><div class='add'>+  {0x0178, {1|F|D, {0x00ff}}},</div><div class='add'>+  {0x0179, {1|F|D, {0x017a}}},</div><div class='add'>+  {0x017b, {1|F|D, {0x017c}}},</div><div class='add'>+  {0x017d, {1|F|D, {0x017e}}},</div><div class='add'>+  {0x017f, {1|F|SU|I(7), {0x0073}}},</div><div class='add'>+  {0x0181, {1|F|D, {0x0253}}},</div><div class='add'>+  {0x0182, {1|F|D, {0x0183}}},</div><div class='add'>+  {0x0184, {1|F|D, {0x0185}}},</div><div class='add'>+  {0x0186, {1|F|D, {0x0254}}},</div><div class='add'>+  {0x0187, {1|F|D, {0x0188}}},</div><div class='add'>+  {0x0189, {1|F|D, {0x0256}}},</div><div class='add'>+  {0x018a, {1|F|D, {0x0257}}},</div><div class='add'>+  {0x018b, {1|F|D, {0x018c}}},</div><div class='add'>+  {0x018e, {1|F|D, {0x01dd}}},</div><div class='add'>+  {0x018f, {1|F|D, {0x0259}}},</div><div class='add'>+  {0x0190, {1|F|D, {0x025b}}},</div><div class='add'>+  {0x0191, {1|F|D, {0x0192}}},</div><div class='add'>+  {0x0193, {1|F|D, {0x0260}}},</div><div class='add'>+  {0x0194, {1|F|D, {0x0263}}},</div><div class='add'>+  {0x0196, {1|F|D, {0x0269}}},</div><div class='add'>+  {0x0197, {1|F|D, {0x0268}}},</div><div class='add'>+  {0x0198, {1|F|D, {0x0199}}},</div><div class='add'>+  {0x019c, {1|F|D, {0x026f}}},</div><div class='add'>+  {0x019d, {1|F|D, {0x0272}}},</div><div class='add'>+  {0x019f, {1|F|D, {0x0275}}},</div><div class='add'>+  {0x01a0, {1|F|D, {0x01a1}}},</div><div class='add'>+  {0x01a2, {1|F|D, {0x01a3}}},</div><div class='add'>+  {0x01a4, {1|F|D, {0x01a5}}},</div><div class='add'>+  {0x01a6, {1|F|D, {0x0280}}},</div><div class='add'>+  {0x01a7, {1|F|D, {0x01a8}}},</div><div class='add'>+  {0x01a9, {1|F|D, {0x0283}}},</div><div class='add'>+  {0x01ac, {1|F|D, {0x01ad}}},</div><div class='add'>+  {0x01ae, {1|F|D, {0x0288}}},</div><div class='add'>+  {0x01af, {1|F|D, {0x01b0}}},</div><div class='add'>+  {0x01b1, {1|F|D, {0x028a}}},</div><div class='add'>+  {0x01b2, {1|F|D, {0x028b}}},</div><div class='add'>+  {0x01b3, {1|F|D, {0x01b4}}},</div><div class='add'>+  {0x01b5, {1|F|D, {0x01b6}}},</div><div class='add'>+  {0x01b7, {1|F|D, {0x0292}}},</div><div class='add'>+  {0x01b8, {1|F|D, {0x01b9}}},</div><div class='add'>+  {0x01bc, {1|F|D, {0x01bd}}},</div><div class='add'>+  {0x01c4, {1|F|D|ST|I(8), {0x01c6}}},</div><div class='add'>+  {0x01c5, {1|F|D|IT|SU|I(9), {0x01c6}}},</div><div class='add'>+  {0x01c7, {1|F|D|ST|I(12), {0x01c9}}},</div><div class='add'>+  {0x01c8, {1|F|D|IT|SU|I(13), {0x01c9}}},</div><div class='add'>+  {0x01ca, {1|F|D|ST|I(16), {0x01cc}}},</div><div class='add'>+  {0x01cb, {1|F|D|IT|SU|I(17), {0x01cc}}},</div><div class='add'>+  {0x01cd, {1|F|D, {0x01ce}}},</div><div class='add'>+  {0x01cf, {1|F|D, {0x01d0}}},</div><div class='add'>+  {0x01d1, {1|F|D, {0x01d2}}},</div><div class='add'>+  {0x01d3, {1|F|D, {0x01d4}}},</div><div class='add'>+  {0x01d5, {1|F|D, {0x01d6}}},</div><div class='add'>+  {0x01d7, {1|F|D, {0x01d8}}},</div><div class='add'>+  {0x01d9, {1|F|D, {0x01da}}},</div><div class='add'>+  {0x01db, {1|F|D, {0x01dc}}},</div><div class='add'>+  {0x01de, {1|F|D, {0x01df}}},</div><div class='add'>+  {0x01e0, {1|F|D, {0x01e1}}},</div><div class='add'>+  {0x01e2, {1|F|D, {0x01e3}}},</div><div class='add'>+  {0x01e4, {1|F|D, {0x01e5}}},</div><div class='add'>+  {0x01e6, {1|F|D, {0x01e7}}},</div><div class='add'>+  {0x01e8, {1|F|D, {0x01e9}}},</div><div class='add'>+  {0x01ea, {1|F|D, {0x01eb}}},</div><div class='add'>+  {0x01ec, {1|F|D, {0x01ed}}},</div><div class='add'>+  {0x01ee, {1|F|D, {0x01ef}}},</div><div class='add'>+  {0x01f0, {2|F|SU|I(20), {0x006a, 0x030c}}},</div><div class='add'>+  {0x01f1, {1|F|D|ST|I(22), {0x01f3}}},</div><div class='add'>+  {0x01f2, {1|F|D|IT|SU|I(23), {0x01f3}}},</div><div class='add'>+  {0x01f4, {1|F|D, {0x01f5}}},</div><div class='add'>+  {0x01f6, {1|F|D, {0x0195}}},</div><div class='add'>+  {0x01f7, {1|F|D, {0x01bf}}},</div><div class='add'>+  {0x01f8, {1|F|D, {0x01f9}}},</div><div class='add'>+  {0x01fa, {1|F|D, {0x01fb}}},</div><div class='add'>+  {0x01fc, {1|F|D, {0x01fd}}},</div><div class='add'>+  {0x01fe, {1|F|D, {0x01ff}}},</div><div class='add'>+  {0x0200, {1|F|D, {0x0201}}},</div><div class='add'>+  {0x0202, {1|F|D, {0x0203}}},</div><div class='add'>+  {0x0204, {1|F|D, {0x0205}}},</div><div class='add'>+  {0x0206, {1|F|D, {0x0207}}},</div><div class='add'>+  {0x0208, {1|F|D, {0x0209}}},</div><div class='add'>+  {0x020a, {1|F|D, {0x020b}}},</div><div class='add'>+  {0x020c, {1|F|D, {0x020d}}},</div><div class='add'>+  {0x020e, {1|F|D, {0x020f}}},</div><div class='add'>+  {0x0210, {1|F|D, {0x0211}}},</div><div class='add'>+  {0x0212, {1|F|D, {0x0213}}},</div><div class='add'>+  {0x0214, {1|F|D, {0x0215}}},</div><div class='add'>+  {0x0216, {1|F|D, {0x0217}}},</div><div class='add'>+  {0x0218, {1|F|D, {0x0219}}},</div><div class='add'>+  {0x021a, {1|F|D, {0x021b}}},</div><div class='add'>+  {0x021c, {1|F|D, {0x021d}}},</div><div class='add'>+  {0x021e, {1|F|D, {0x021f}}},</div><div class='add'>+  {0x0220, {1|F|D, {0x019e}}},</div><div class='add'>+  {0x0222, {1|F|D, {0x0223}}},</div><div class='add'>+  {0x0224, {1|F|D, {0x0225}}},</div><div class='add'>+  {0x0226, {1|F|D, {0x0227}}},</div><div class='add'>+  {0x0228, {1|F|D, {0x0229}}},</div><div class='add'>+  {0x022a, {1|F|D, {0x022b}}},</div><div class='add'>+  {0x022c, {1|F|D, {0x022d}}},</div><div class='add'>+  {0x022e, {1|F|D, {0x022f}}},</div><div class='add'>+  {0x0230, {1|F|D, {0x0231}}},</div><div class='add'>+  {0x0232, {1|F|D, {0x0233}}},</div><div class='add'>+  {0x023a, {1|F|D, {0x2c65}}},</div><div class='add'>+  {0x023b, {1|F|D, {0x023c}}},</div><div class='add'>+  {0x023d, {1|F|D, {0x019a}}},</div><div class='add'>+  {0x023e, {1|F|D, {0x2c66}}},</div><div class='add'>+  {0x0241, {1|F|D, {0x0242}}},</div><div class='add'>+  {0x0243, {1|F|D, {0x0180}}},</div><div class='add'>+  {0x0244, {1|F|D, {0x0289}}},</div><div class='add'>+  {0x0245, {1|F|D, {0x028c}}},</div><div class='add'>+  {0x0246, {1|F|D, {0x0247}}},</div><div class='add'>+  {0x0248, {1|F|D, {0x0249}}},</div><div class='add'>+  {0x024a, {1|F|D, {0x024b}}},</div><div class='add'>+  {0x024c, {1|F|D, {0x024d}}},</div><div class='add'>+  {0x024e, {1|F|D, {0x024f}}},</div><div class='add'>+  {0x0345, {1|F|SU|I(26), {0x03b9}}},</div><div class='add'>+  {0x0370, {1|F|D, {0x0371}}},</div><div class='add'>+  {0x0372, {1|F|D, {0x0373}}},</div><div class='add'>+  {0x0376, {1|F|D, {0x0377}}},</div><div class='add'>+  {0x037f, {1|F|D, {0x03f3}}},</div><div class='add'>+  {0x0386, {1|F|D, {0x03ac}}},</div><div class='add'>+  {0x0388, {1|F|D, {0x03ad}}},</div><div class='add'>+  {0x0389, {1|F|D, {0x03ae}}},</div><div class='add'>+  {0x038a, {1|F|D, {0x03af}}},</div><div class='add'>+  {0x038c, {1|F|D, {0x03cc}}},</div><div class='add'>+  {0x038e, {1|F|D, {0x03cd}}},</div><div class='add'>+  {0x038f, {1|F|D, {0x03ce}}},</div><div class='add'>+  {0x0390, {3|F|SU|I(27), {0x03b9, 0x0308, 0x0301}}},</div><div class='add'>+  {0x0391, {1|F|D, {0x03b1}}},</div><div class='add'>+  {0x0392, {1|F|D, {0x03b2}}},</div><div class='add'>+  {0x0393, {1|F|D, {0x03b3}}},</div><div class='add'>+  {0x0394, {1|F|D, {0x03b4}}},</div><div class='add'>+  {0x0395, {1|F|D, {0x03b5}}},</div><div class='add'>+  {0x0396, {1|F|D, {0x03b6}}},</div><div class='add'>+  {0x0397, {1|F|D, {0x03b7}}},</div><div class='add'>+  {0x0398, {1|F|D, {0x03b8}}},</div><div class='add'>+  {0x0399, {1|F|D, {0x03b9}}},</div><div class='add'>+  {0x039a, {1|F|D, {0x03ba}}},</div><div class='add'>+  {0x039b, {1|F|D, {0x03bb}}},</div><div class='add'>+  {0x039c, {1|F|D, {0x03bc}}},</div><div class='add'>+  {0x039d, {1|F|D, {0x03bd}}},</div><div class='add'>+  {0x039e, {1|F|D, {0x03be}}},</div><div class='add'>+  {0x039f, {1|F|D, {0x03bf}}},</div><div class='add'>+  {0x03a0, {1|F|D, {0x03c0}}},</div><div class='add'>+  {0x03a1, {1|F|D, {0x03c1}}},</div><div class='add'>+  {0x03a3, {1|F|D, {0x03c3}}},</div><div class='add'>+  {0x03a4, {1|F|D, {0x03c4}}},</div><div class='add'>+  {0x03a5, {1|F|D, {0x03c5}}},</div><div class='add'>+  {0x03a6, {1|F|D, {0x03c6}}},</div><div class='add'>+  {0x03a7, {1|F|D, {0x03c7}}},</div><div class='add'>+  {0x03a8, {1|F|D, {0x03c8}}},</div><div class='add'>+  {0x03a9, {1|F|D, {0x03c9}}},</div><div class='add'>+  {0x03aa, {1|F|D, {0x03ca}}},</div><div class='add'>+  {0x03ab, {1|F|D, {0x03cb}}},</div><div class='add'>+  {0x03b0, {3|F|SU|I(30), {0x03c5, 0x0308, 0x0301}}},</div><div class='add'>+  {0x03c2, {1|F|SU|I(33), {0x03c3}}},</div><div class='add'>+  {0x03cf, {1|F|D, {0x03d7}}},</div><div class='add'>+  {0x03d0, {1|F|SU|I(34), {0x03b2}}},</div><div class='add'>+  {0x03d1, {1|F|SU|I(35), {0x03b8}}},</div><div class='add'>+  {0x03d5, {1|F|SU|I(36), {0x03c6}}},</div><div class='add'>+  {0x03d6, {1|F|SU|I(37), {0x03c0}}},</div><div class='add'>+  {0x03d8, {1|F|D, {0x03d9}}},</div><div class='add'>+  {0x03da, {1|F|D, {0x03db}}},</div><div class='add'>+  {0x03dc, {1|F|D, {0x03dd}}},</div><div class='add'>+  {0x03de, {1|F|D, {0x03df}}},</div><div class='add'>+  {0x03e0, {1|F|D, {0x03e1}}},</div><div class='add'>+  {0x03e2, {1|F|D, {0x03e3}}},</div><div class='add'>+  {0x03e4, {1|F|D, {0x03e5}}},</div><div class='add'>+  {0x03e6, {1|F|D, {0x03e7}}},</div><div class='add'>+  {0x03e8, {1|F|D, {0x03e9}}},</div><div class='add'>+  {0x03ea, {1|F|D, {0x03eb}}},</div><div class='add'>+  {0x03ec, {1|F|D, {0x03ed}}},</div><div class='add'>+  {0x03ee, {1|F|D, {0x03ef}}},</div><div class='add'>+  {0x03f0, {1|F|SU|I(38), {0x03ba}}},</div><div class='add'>+  {0x03f1, {1|F|SU|I(39), {0x03c1}}},</div><div class='add'>+  {0x03f4, {1|F|D, {0x03b8}}},</div><div class='add'>+  {0x03f5, {1|F|SU|I(40), {0x03b5}}},</div><div class='add'>+  {0x03f7, {1|F|D, {0x03f8}}},</div><div class='add'>+  {0x03f9, {1|F|D, {0x03f2}}},</div><div class='add'>+  {0x03fa, {1|F|D, {0x03fb}}},</div><div class='add'>+  {0x03fd, {1|F|D, {0x037b}}},</div><div class='add'>+  {0x03fe, {1|F|D, {0x037c}}},</div><div class='add'>+  {0x03ff, {1|F|D, {0x037d}}},</div><div class='add'>+  {0x0400, {1|F|D, {0x0450}}},</div><div class='add'>+  {0x0401, {1|F|D, {0x0451}}},</div><div class='add'>+  {0x0402, {1|F|D, {0x0452}}},</div><div class='add'>+  {0x0403, {1|F|D, {0x0453}}},</div><div class='add'>+  {0x0404, {1|F|D, {0x0454}}},</div><div class='add'>+  {0x0405, {1|F|D, {0x0455}}},</div><div class='add'>+  {0x0406, {1|F|D, {0x0456}}},</div><div class='add'>+  {0x0407, {1|F|D, {0x0457}}},</div><div class='add'>+  {0x0408, {1|F|D, {0x0458}}},</div><div class='add'>+  {0x0409, {1|F|D, {0x0459}}},</div><div class='add'>+  {0x040a, {1|F|D, {0x045a}}},</div><div class='add'>+  {0x040b, {1|F|D, {0x045b}}},</div><div class='add'>+  {0x040c, {1|F|D, {0x045c}}},</div><div class='add'>+  {0x040d, {1|F|D, {0x045d}}},</div><div class='add'>+  {0x040e, {1|F|D, {0x045e}}},</div><div class='add'>+  {0x040f, {1|F|D, {0x045f}}},</div><div class='add'>+  {0x0410, {1|F|D, {0x0430}}},</div><div class='add'>+  {0x0411, {1|F|D, {0x0431}}},</div><div class='add'>+  {0x0412, {1|F|D, {0x0432}}},</div><div class='add'>+  {0x0413, {1|F|D, {0x0433}}},</div><div class='add'>+  {0x0414, {1|F|D, {0x0434}}},</div><div class='add'>+  {0x0415, {1|F|D, {0x0435}}},</div><div class='add'>+  {0x0416, {1|F|D, {0x0436}}},</div><div class='add'>+  {0x0417, {1|F|D, {0x0437}}},</div><div class='add'>+  {0x0418, {1|F|D, {0x0438}}},</div><div class='add'>+  {0x0419, {1|F|D, {0x0439}}},</div><div class='add'>+  {0x041a, {1|F|D, {0x043a}}},</div><div class='add'>+  {0x041b, {1|F|D, {0x043b}}},</div><div class='add'>+  {0x041c, {1|F|D, {0x043c}}},</div><div class='add'>+  {0x041d, {1|F|D, {0x043d}}},</div><div class='add'>+  {0x041e, {1|F|D, {0x043e}}},</div><div class='add'>+  {0x041f, {1|F|D, {0x043f}}},</div><div class='add'>+  {0x0420, {1|F|D, {0x0440}}},</div><div class='add'>+  {0x0421, {1|F|D, {0x0441}}},</div><div class='add'>+  {0x0422, {1|F|D, {0x0442}}},</div><div class='add'>+  {0x0423, {1|F|D, {0x0443}}},</div><div class='add'>+  {0x0424, {1|F|D, {0x0444}}},</div><div class='add'>+  {0x0425, {1|F|D, {0x0445}}},</div><div class='add'>+  {0x0426, {1|F|D, {0x0446}}},</div><div class='add'>+  {0x0427, {1|F|D, {0x0447}}},</div><div class='add'>+  {0x0428, {1|F|D, {0x0448}}},</div><div class='add'>+  {0x0429, {1|F|D, {0x0449}}},</div><div class='add'>+  {0x042a, {1|F|D, {0x044a}}},</div><div class='add'>+  {0x042b, {1|F|D, {0x044b}}},</div><div class='add'>+  {0x042c, {1|F|D, {0x044c}}},</div><div class='add'>+  {0x042d, {1|F|D, {0x044d}}},</div><div class='add'>+  {0x042e, {1|F|D, {0x044e}}},</div><div class='add'>+  {0x042f, {1|F|D, {0x044f}}},</div><div class='add'>+  {0x0460, {1|F|D, {0x0461}}},</div><div class='add'>+  {0x0462, {1|F|D, {0x0463}}},</div><div class='add'>+  {0x0464, {1|F|D, {0x0465}}},</div><div class='add'>+  {0x0466, {1|F|D, {0x0467}}},</div><div class='add'>+  {0x0468, {1|F|D, {0x0469}}},</div><div class='add'>+  {0x046a, {1|F|D, {0x046b}}},</div><div class='add'>+  {0x046c, {1|F|D, {0x046d}}},</div><div class='add'>+  {0x046e, {1|F|D, {0x046f}}},</div><div class='add'>+  {0x0470, {1|F|D, {0x0471}}},</div><div class='add'>+  {0x0472, {1|F|D, {0x0473}}},</div><div class='add'>+  {0x0474, {1|F|D, {0x0475}}},</div><div class='add'>+  {0x0476, {1|F|D, {0x0477}}},</div><div class='add'>+  {0x0478, {1|F|D, {0x0479}}},</div><div class='add'>+  {0x047a, {1|F|D, {0x047b}}},</div><div class='add'>+  {0x047c, {1|F|D, {0x047d}}},</div><div class='add'>+  {0x047e, {1|F|D, {0x047f}}},</div><div class='add'>+  {0x0480, {1|F|D, {0x0481}}},</div><div class='add'>+  {0x048a, {1|F|D, {0x048b}}},</div><div class='add'>+  {0x048c, {1|F|D, {0x048d}}},</div><div class='add'>+  {0x048e, {1|F|D, {0x048f}}},</div><div class='add'>+  {0x0490, {1|F|D, {0x0491}}},</div><div class='add'>+  {0x0492, {1|F|D, {0x0493}}},</div><div class='add'>+  {0x0494, {1|F|D, {0x0495}}},</div><div class='add'>+  {0x0496, {1|F|D, {0x0497}}},</div><div class='add'>+  {0x0498, {1|F|D, {0x0499}}},</div><div class='add'>+  {0x049a, {1|F|D, {0x049b}}},</div><div class='add'>+  {0x049c, {1|F|D, {0x049d}}},</div><div class='add'>+  {0x049e, {1|F|D, {0x049f}}},</div><div class='add'>+  {0x04a0, {1|F|D, {0x04a1}}},</div><div class='add'>+  {0x04a2, {1|F|D, {0x04a3}}},</div><div class='add'>+  {0x04a4, {1|F|D, {0x04a5}}},</div><div class='add'>+  {0x04a6, {1|F|D, {0x04a7}}},</div><div class='add'>+  {0x04a8, {1|F|D, {0x04a9}}},</div><div class='add'>+  {0x04aa, {1|F|D, {0x04ab}}},</div><div class='add'>+  {0x04ac, {1|F|D, {0x04ad}}},</div><div class='add'>+  {0x04ae, {1|F|D, {0x04af}}},</div><div class='add'>+  {0x04b0, {1|F|D, {0x04b1}}},</div><div class='add'>+  {0x04b2, {1|F|D, {0x04b3}}},</div><div class='add'>+  {0x04b4, {1|F|D, {0x04b5}}},</div><div class='add'>+  {0x04b6, {1|F|D, {0x04b7}}},</div><div class='add'>+  {0x04b8, {1|F|D, {0x04b9}}},</div><div class='add'>+  {0x04ba, {1|F|D, {0x04bb}}},</div><div class='add'>+  {0x04bc, {1|F|D, {0x04bd}}},</div><div class='add'>+  {0x04be, {1|F|D, {0x04bf}}},</div><div class='add'>+  {0x04c0, {1|F|D, {0x04cf}}},</div><div class='add'>+  {0x04c1, {1|F|D, {0x04c2}}},</div><div class='add'>+  {0x04c3, {1|F|D, {0x04c4}}},</div><div class='add'>+  {0x04c5, {1|F|D, {0x04c6}}},</div><div class='add'>+  {0x04c7, {1|F|D, {0x04c8}}},</div><div class='add'>+  {0x04c9, {1|F|D, {0x04ca}}},</div><div class='add'>+  {0x04cb, {1|F|D, {0x04cc}}},</div><div class='add'>+  {0x04cd, {1|F|D, {0x04ce}}},</div><div class='add'>+  {0x04d0, {1|F|D, {0x04d1}}},</div><div class='add'>+  {0x04d2, {1|F|D, {0x04d3}}},</div><div class='add'>+  {0x04d4, {1|F|D, {0x04d5}}},</div><div class='add'>+  {0x04d6, {1|F|D, {0x04d7}}},</div><div class='add'>+  {0x04d8, {1|F|D, {0x04d9}}},</div><div class='add'>+  {0x04da, {1|F|D, {0x04db}}},</div><div class='add'>+  {0x04dc, {1|F|D, {0x04dd}}},</div><div class='add'>+  {0x04de, {1|F|D, {0x04df}}},</div><div class='add'>+  {0x04e0, {1|F|D, {0x04e1}}},</div><div class='add'>+  {0x04e2, {1|F|D, {0x04e3}}},</div><div class='add'>+  {0x04e4, {1|F|D, {0x04e5}}},</div><div class='add'>+  {0x04e6, {1|F|D, {0x04e7}}},</div><div class='add'>+  {0x04e8, {1|F|D, {0x04e9}}},</div><div class='add'>+  {0x04ea, {1|F|D, {0x04eb}}},</div><div class='add'>+  {0x04ec, {1|F|D, {0x04ed}}},</div><div class='add'>+  {0x04ee, {1|F|D, {0x04ef}}},</div><div class='add'>+  {0x04f0, {1|F|D, {0x04f1}}},</div><div class='add'>+  {0x04f2, {1|F|D, {0x04f3}}},</div><div class='add'>+  {0x04f4, {1|F|D, {0x04f5}}},</div><div class='add'>+  {0x04f6, {1|F|D, {0x04f7}}},</div><div class='add'>+  {0x04f8, {1|F|D, {0x04f9}}},</div><div class='add'>+  {0x04fa, {1|F|D, {0x04fb}}},</div><div class='add'>+  {0x04fc, {1|F|D, {0x04fd}}},</div><div class='add'>+  {0x04fe, {1|F|D, {0x04ff}}},</div><div class='add'>+  {0x0500, {1|F|D, {0x0501}}},</div><div class='add'>+  {0x0502, {1|F|D, {0x0503}}},</div><div class='add'>+  {0x0504, {1|F|D, {0x0505}}},</div><div class='add'>+  {0x0506, {1|F|D, {0x0507}}},</div><div class='add'>+  {0x0508, {1|F|D, {0x0509}}},</div><div class='add'>+  {0x050a, {1|F|D, {0x050b}}},</div><div class='add'>+  {0x050c, {1|F|D, {0x050d}}},</div><div class='add'>+  {0x050e, {1|F|D, {0x050f}}},</div><div class='add'>+  {0x0510, {1|F|D, {0x0511}}},</div><div class='add'>+  {0x0512, {1|F|D, {0x0513}}},</div><div class='add'>+  {0x0514, {1|F|D, {0x0515}}},</div><div class='add'>+  {0x0516, {1|F|D, {0x0517}}},</div><div class='add'>+  {0x0518, {1|F|D, {0x0519}}},</div><div class='add'>+  {0x051a, {1|F|D, {0x051b}}},</div><div class='add'>+  {0x051c, {1|F|D, {0x051d}}},</div><div class='add'>+  {0x051e, {1|F|D, {0x051f}}},</div><div class='add'>+  {0x0520, {1|F|D, {0x0521}}},</div><div class='add'>+  {0x0522, {1|F|D, {0x0523}}},</div><div class='add'>+  {0x0524, {1|F|D, {0x0525}}},</div><div class='add'>+  {0x0526, {1|F|D, {0x0527}}},</div><div class='add'>+  {0x0528, {1|F|D, {0x0529}}},</div><div class='add'>+  {0x052a, {1|F|D, {0x052b}}},</div><div class='add'>+  {0x052c, {1|F|D, {0x052d}}},</div><div class='add'>+  {0x052e, {1|F|D, {0x052f}}},</div><div class='add'>+  {0x0531, {1|F|D, {0x0561}}},</div><div class='add'>+  {0x0532, {1|F|D, {0x0562}}},</div><div class='add'>+  {0x0533, {1|F|D, {0x0563}}},</div><div class='add'>+  {0x0534, {1|F|D, {0x0564}}},</div><div class='add'>+  {0x0535, {1|F|D, {0x0565}}},</div><div class='add'>+  {0x0536, {1|F|D, {0x0566}}},</div><div class='add'>+  {0x0537, {1|F|D, {0x0567}}},</div><div class='add'>+  {0x0538, {1|F|D, {0x0568}}},</div><div class='add'>+  {0x0539, {1|F|D, {0x0569}}},</div><div class='add'>+  {0x053a, {1|F|D, {0x056a}}},</div><div class='add'>+  {0x053b, {1|F|D, {0x056b}}},</div><div class='add'>+  {0x053c, {1|F|D, {0x056c}}},</div><div class='add'>+  {0x053d, {1|F|D, {0x056d}}},</div><div class='add'>+  {0x053e, {1|F|D, {0x056e}}},</div><div class='add'>+  {0x053f, {1|F|D, {0x056f}}},</div><div class='add'>+  {0x0540, {1|F|D, {0x0570}}},</div><div class='add'>+  {0x0541, {1|F|D, {0x0571}}},</div><div class='add'>+  {0x0542, {1|F|D, {0x0572}}},</div><div class='add'>+  {0x0543, {1|F|D, {0x0573}}},</div><div class='add'>+  {0x0544, {1|F|D, {0x0574}}},</div><div class='add'>+  {0x0545, {1|F|D, {0x0575}}},</div><div class='add'>+  {0x0546, {1|F|D, {0x0576}}},</div><div class='add'>+  {0x0547, {1|F|D, {0x0577}}},</div><div class='add'>+  {0x0548, {1|F|D, {0x0578}}},</div><div class='add'>+  {0x0549, {1|F|D, {0x0579}}},</div><div class='add'>+  {0x054a, {1|F|D, {0x057a}}},</div><div class='add'>+  {0x054b, {1|F|D, {0x057b}}},</div><div class='add'>+  {0x054c, {1|F|D, {0x057c}}},</div><div class='add'>+  {0x054d, {1|F|D, {0x057d}}},</div><div class='add'>+  {0x054e, {1|F|D, {0x057e}}},</div><div class='add'>+  {0x054f, {1|F|D, {0x057f}}},</div><div class='add'>+  {0x0550, {1|F|D, {0x0580}}},</div><div class='add'>+  {0x0551, {1|F|D, {0x0581}}},</div><div class='add'>+  {0x0552, {1|F|D, {0x0582}}},</div><div class='add'>+  {0x0553, {1|F|D, {0x0583}}},</div><div class='add'>+  {0x0554, {1|F|D, {0x0584}}},</div><div class='add'>+  {0x0555, {1|F|D, {0x0585}}},</div><div class='add'>+  {0x0556, {1|F|D, {0x0586}}},</div><div class='add'>+  {0x0587, {2|F|ST|SU|I(41), {0x0565, 0x0582}}},</div><div class='add'>+  {0x10a0, {1|F|D, {0x2d00}}},</div><div class='add'>+  {0x10a1, {1|F|D, {0x2d01}}},</div><div class='add'>+  {0x10a2, {1|F|D, {0x2d02}}},</div><div class='add'>+  {0x10a3, {1|F|D, {0x2d03}}},</div><div class='add'>+  {0x10a4, {1|F|D, {0x2d04}}},</div><div class='add'>+  {0x10a5, {1|F|D, {0x2d05}}},</div><div class='add'>+  {0x10a6, {1|F|D, {0x2d06}}},</div><div class='add'>+  {0x10a7, {1|F|D, {0x2d07}}},</div><div class='add'>+  {0x10a8, {1|F|D, {0x2d08}}},</div><div class='add'>+  {0x10a9, {1|F|D, {0x2d09}}},</div><div class='add'>+  {0x10aa, {1|F|D, {0x2d0a}}},</div><div class='add'>+  {0x10ab, {1|F|D, {0x2d0b}}},</div><div class='add'>+  {0x10ac, {1|F|D, {0x2d0c}}},</div><div class='add'>+  {0x10ad, {1|F|D, {0x2d0d}}},</div><div class='add'>+  {0x10ae, {1|F|D, {0x2d0e}}},</div><div class='add'>+  {0x10af, {1|F|D, {0x2d0f}}},</div><div class='add'>+  {0x10b0, {1|F|D, {0x2d10}}},</div><div class='add'>+  {0x10b1, {1|F|D, {0x2d11}}},</div><div class='add'>+  {0x10b2, {1|F|D, {0x2d12}}},</div><div class='add'>+  {0x10b3, {1|F|D, {0x2d13}}},</div><div class='add'>+  {0x10b4, {1|F|D, {0x2d14}}},</div><div class='add'>+  {0x10b5, {1|F|D, {0x2d15}}},</div><div class='add'>+  {0x10b6, {1|F|D, {0x2d16}}},</div><div class='add'>+  {0x10b7, {1|F|D, {0x2d17}}},</div><div class='add'>+  {0x10b8, {1|F|D, {0x2d18}}},</div><div class='add'>+  {0x10b9, {1|F|D, {0x2d19}}},</div><div class='add'>+  {0x10ba, {1|F|D, {0x2d1a}}},</div><div class='add'>+  {0x10bb, {1|F|D, {0x2d1b}}},</div><div class='add'>+  {0x10bc, {1|F|D, {0x2d1c}}},</div><div class='add'>+  {0x10bd, {1|F|D, {0x2d1d}}},</div><div class='add'>+  {0x10be, {1|F|D, {0x2d1e}}},</div><div class='add'>+  {0x10bf, {1|F|D, {0x2d1f}}},</div><div class='add'>+  {0x10c0, {1|F|D, {0x2d20}}},</div><div class='add'>+  {0x10c1, {1|F|D, {0x2d21}}},</div><div class='add'>+  {0x10c2, {1|F|D, {0x2d22}}},</div><div class='add'>+  {0x10c3, {1|F|D, {0x2d23}}},</div><div class='add'>+  {0x10c4, {1|F|D, {0x2d24}}},</div><div class='add'>+  {0x10c5, {1|F|D, {0x2d25}}},</div><div class='add'>+  {0x10c7, {1|F|D, {0x2d27}}},</div><div class='add'>+  {0x10cd, {1|F|D, {0x2d2d}}},</div><div class='add'>+  {0x13f8, {1|F|U, {0x13f0}}},</div><div class='add'>+  {0x13f9, {1|F|U, {0x13f1}}},</div><div class='add'>+  {0x13fa, {1|F|U, {0x13f2}}},</div><div class='add'>+  {0x13fb, {1|F|U, {0x13f3}}},</div><div class='add'>+  {0x13fc, {1|F|U, {0x13f4}}},</div><div class='add'>+  {0x13fd, {1|F|U, {0x13f5}}},</div><div class='add'>+  {0x1c80, {1|F|SU|I(45), {0x0432}}},</div><div class='add'>+  {0x1c81, {1|F|SU|I(46), {0x0434}}},</div><div class='add'>+  {0x1c82, {1|F|SU|I(47), {0x043e}}},</div><div class='add'>+  {0x1c83, {1|F|SU|I(48), {0x0441}}},</div><div class='add'>+  {0x1c84, {1|F|SU|I(49), {0x0442}}},</div><div class='add'>+  {0x1c85, {1|F|SU|I(50), {0x0442}}},</div><div class='add'>+  {0x1c86, {1|F|SU|I(51), {0x044a}}},</div><div class='add'>+  {0x1c87, {1|F|SU|I(52), {0x0463}}},</div><div class='add'>+  {0x1c88, {1|F|SU|I(53), {0xa64b}}},</div><div class='add'>+  {0x1c90, {1|F|D, {0x10d0}}},</div><div class='add'>+  {0x1c91, {1|F|D, {0x10d1}}},</div><div class='add'>+  {0x1c92, {1|F|D, {0x10d2}}},</div><div class='add'>+  {0x1c93, {1|F|D, {0x10d3}}},</div><div class='add'>+  {0x1c94, {1|F|D, {0x10d4}}},</div><div class='add'>+  {0x1c95, {1|F|D, {0x10d5}}},</div><div class='add'>+  {0x1c96, {1|F|D, {0x10d6}}},</div><div class='add'>+  {0x1c97, {1|F|D, {0x10d7}}},</div><div class='add'>+  {0x1c98, {1|F|D, {0x10d8}}},</div><div class='add'>+  {0x1c99, {1|F|D, {0x10d9}}},</div><div class='add'>+  {0x1c9a, {1|F|D, {0x10da}}},</div><div class='add'>+  {0x1c9b, {1|F|D, {0x10db}}},</div><div class='add'>+  {0x1c9c, {1|F|D, {0x10dc}}},</div><div class='add'>+  {0x1c9d, {1|F|D, {0x10dd}}},</div><div class='add'>+  {0x1c9e, {1|F|D, {0x10de}}},</div><div class='add'>+  {0x1c9f, {1|F|D, {0x10df}}},</div><div class='add'>+  {0x1ca0, {1|F|D, {0x10e0}}},</div><div class='add'>+  {0x1ca1, {1|F|D, {0x10e1}}},</div><div class='add'>+  {0x1ca2, {1|F|D, {0x10e2}}},</div><div class='add'>+  {0x1ca3, {1|F|D, {0x10e3}}},</div><div class='add'>+  {0x1ca4, {1|F|D, {0x10e4}}},</div><div class='add'>+  {0x1ca5, {1|F|D, {0x10e5}}},</div><div class='add'>+  {0x1ca6, {1|F|D, {0x10e6}}},</div><div class='add'>+  {0x1ca7, {1|F|D, {0x10e7}}},</div><div class='add'>+  {0x1ca8, {1|F|D, {0x10e8}}},</div><div class='add'>+  {0x1ca9, {1|F|D, {0x10e9}}},</div><div class='add'>+  {0x1caa, {1|F|D, {0x10ea}}},</div><div class='add'>+  {0x1cab, {1|F|D, {0x10eb}}},</div><div class='add'>+  {0x1cac, {1|F|D, {0x10ec}}},</div><div class='add'>+  {0x1cad, {1|F|D, {0x10ed}}},</div><div class='add'>+  {0x1cae, {1|F|D, {0x10ee}}},</div><div class='add'>+  {0x1caf, {1|F|D, {0x10ef}}},</div><div class='add'>+  {0x1cb0, {1|F|D, {0x10f0}}},</div><div class='add'>+  {0x1cb1, {1|F|D, {0x10f1}}},</div><div class='add'>+  {0x1cb2, {1|F|D, {0x10f2}}},</div><div class='add'>+  {0x1cb3, {1|F|D, {0x10f3}}},</div><div class='add'>+  {0x1cb4, {1|F|D, {0x10f4}}},</div><div class='add'>+  {0x1cb5, {1|F|D, {0x10f5}}},</div><div class='add'>+  {0x1cb6, {1|F|D, {0x10f6}}},</div><div class='add'>+  {0x1cb7, {1|F|D, {0x10f7}}},</div><div class='add'>+  {0x1cb8, {1|F|D, {0x10f8}}},</div><div class='add'>+  {0x1cb9, {1|F|D, {0x10f9}}},</div><div class='add'>+  {0x1cba, {1|F|D, {0x10fa}}},</div><div class='add'>+  {0x1cbd, {1|F|D, {0x10fd}}},</div><div class='add'>+  {0x1cbe, {1|F|D, {0x10fe}}},</div><div class='add'>+  {0x1cbf, {1|F|D, {0x10ff}}},</div><div class='add'>+  {0x1e00, {1|F|D, {0x1e01}}},</div><div class='add'>+  {0x1e02, {1|F|D, {0x1e03}}},</div><div class='add'>+  {0x1e04, {1|F|D, {0x1e05}}},</div><div class='add'>+  {0x1e06, {1|F|D, {0x1e07}}},</div><div class='add'>+  {0x1e08, {1|F|D, {0x1e09}}},</div><div class='add'>+  {0x1e0a, {1|F|D, {0x1e0b}}},</div><div class='add'>+  {0x1e0c, {1|F|D, {0x1e0d}}},</div><div class='add'>+  {0x1e0e, {1|F|D, {0x1e0f}}},</div><div class='add'>+  {0x1e10, {1|F|D, {0x1e11}}},</div><div class='add'>+  {0x1e12, {1|F|D, {0x1e13}}},</div><div class='add'>+  {0x1e14, {1|F|D, {0x1e15}}},</div><div class='add'>+  {0x1e16, {1|F|D, {0x1e17}}},</div><div class='add'>+  {0x1e18, {1|F|D, {0x1e19}}},</div><div class='add'>+  {0x1e1a, {1|F|D, {0x1e1b}}},</div><div class='add'>+  {0x1e1c, {1|F|D, {0x1e1d}}},</div><div class='add'>+  {0x1e1e, {1|F|D, {0x1e1f}}},</div><div class='add'>+  {0x1e20, {1|F|D, {0x1e21}}},</div><div class='add'>+  {0x1e22, {1|F|D, {0x1e23}}},</div><div class='add'>+  {0x1e24, {1|F|D, {0x1e25}}},</div><div class='add'>+  {0x1e26, {1|F|D, {0x1e27}}},</div><div class='add'>+  {0x1e28, {1|F|D, {0x1e29}}},</div><div class='add'>+  {0x1e2a, {1|F|D, {0x1e2b}}},</div><div class='add'>+  {0x1e2c, {1|F|D, {0x1e2d}}},</div><div class='add'>+  {0x1e2e, {1|F|D, {0x1e2f}}},</div><div class='add'>+  {0x1e30, {1|F|D, {0x1e31}}},</div><div class='add'>+  {0x1e32, {1|F|D, {0x1e33}}},</div><div class='add'>+  {0x1e34, {1|F|D, {0x1e35}}},</div><div class='add'>+  {0x1e36, {1|F|D, {0x1e37}}},</div><div class='add'>+  {0x1e38, {1|F|D, {0x1e39}}},</div><div class='add'>+  {0x1e3a, {1|F|D, {0x1e3b}}},</div><div class='add'>+  {0x1e3c, {1|F|D, {0x1e3d}}},</div><div class='add'>+  {0x1e3e, {1|F|D, {0x1e3f}}},</div><div class='add'>+  {0x1e40, {1|F|D, {0x1e41}}},</div><div class='add'>+  {0x1e42, {1|F|D, {0x1e43}}},</div><div class='add'>+  {0x1e44, {1|F|D, {0x1e45}}},</div><div class='add'>+  {0x1e46, {1|F|D, {0x1e47}}},</div><div class='add'>+  {0x1e48, {1|F|D, {0x1e49}}},</div><div class='add'>+  {0x1e4a, {1|F|D, {0x1e4b}}},</div><div class='add'>+  {0x1e4c, {1|F|D, {0x1e4d}}},</div><div class='add'>+  {0x1e4e, {1|F|D, {0x1e4f}}},</div><div class='add'>+  {0x1e50, {1|F|D, {0x1e51}}},</div><div class='add'>+  {0x1e52, {1|F|D, {0x1e53}}},</div><div class='add'>+  {0x1e54, {1|F|D, {0x1e55}}},</div><div class='add'>+  {0x1e56, {1|F|D, {0x1e57}}},</div><div class='add'>+  {0x1e58, {1|F|D, {0x1e59}}},</div><div class='add'>+  {0x1e5a, {1|F|D, {0x1e5b}}},</div><div class='add'>+  {0x1e5c, {1|F|D, {0x1e5d}}},</div><div class='add'>+  {0x1e5e, {1|F|D, {0x1e5f}}},</div><div class='add'>+  {0x1e60, {1|F|D, {0x1e61}}},</div><div class='add'>+  {0x1e62, {1|F|D, {0x1e63}}},</div><div class='add'>+  {0x1e64, {1|F|D, {0x1e65}}},</div><div class='add'>+  {0x1e66, {1|F|D, {0x1e67}}},</div><div class='add'>+  {0x1e68, {1|F|D, {0x1e69}}},</div><div class='add'>+  {0x1e6a, {1|F|D, {0x1e6b}}},</div><div class='add'>+  {0x1e6c, {1|F|D, {0x1e6d}}},</div><div class='add'>+  {0x1e6e, {1|F|D, {0x1e6f}}},</div><div class='add'>+  {0x1e70, {1|F|D, {0x1e71}}},</div><div class='add'>+  {0x1e72, {1|F|D, {0x1e73}}},</div><div class='add'>+  {0x1e74, {1|F|D, {0x1e75}}},</div><div class='add'>+  {0x1e76, {1|F|D, {0x1e77}}},</div><div class='add'>+  {0x1e78, {1|F|D, {0x1e79}}},</div><div class='add'>+  {0x1e7a, {1|F|D, {0x1e7b}}},</div><div class='add'>+  {0x1e7c, {1|F|D, {0x1e7d}}},</div><div class='add'>+  {0x1e7e, {1|F|D, {0x1e7f}}},</div><div class='add'>+  {0x1e80, {1|F|D, {0x1e81}}},</div><div class='add'>+  {0x1e82, {1|F|D, {0x1e83}}},</div><div class='add'>+  {0x1e84, {1|F|D, {0x1e85}}},</div><div class='add'>+  {0x1e86, {1|F|D, {0x1e87}}},</div><div class='add'>+  {0x1e88, {1|F|D, {0x1e89}}},</div><div class='add'>+  {0x1e8a, {1|F|D, {0x1e8b}}},</div><div class='add'>+  {0x1e8c, {1|F|D, {0x1e8d}}},</div><div class='add'>+  {0x1e8e, {1|F|D, {0x1e8f}}},</div><div class='add'>+  {0x1e90, {1|F|D, {0x1e91}}},</div><div class='add'>+  {0x1e92, {1|F|D, {0x1e93}}},</div><div class='add'>+  {0x1e94, {1|F|D, {0x1e95}}},</div><div class='add'>+  {0x1e96, {2|F|SU|I(54), {0x0068, 0x0331}}},</div><div class='add'>+  {0x1e97, {2|F|SU|I(56), {0x0074, 0x0308}}},</div><div class='add'>+  {0x1e98, {2|F|SU|I(58), {0x0077, 0x030a}}},</div><div class='add'>+  {0x1e99, {2|F|SU|I(60), {0x0079, 0x030a}}},</div><div class='add'>+  {0x1e9a, {2|F|SU|I(62), {0x0061, 0x02be}}},</div><div class='add'>+  {0x1e9b, {1|F|SU|I(64), {0x1e61}}},</div><div class='add'>+  {0x1e9e, {2|F|SL|I(65), {0x0073, 0x0073}}},</div><div class='add'>+  {0x1ea0, {1|F|D, {0x1ea1}}},</div><div class='add'>+  {0x1ea2, {1|F|D, {0x1ea3}}},</div><div class='add'>+  {0x1ea4, {1|F|D, {0x1ea5}}},</div><div class='add'>+  {0x1ea6, {1|F|D, {0x1ea7}}},</div><div class='add'>+  {0x1ea8, {1|F|D, {0x1ea9}}},</div><div class='add'>+  {0x1eaa, {1|F|D, {0x1eab}}},</div><div class='add'>+  {0x1eac, {1|F|D, {0x1ead}}},</div><div class='add'>+  {0x1eae, {1|F|D, {0x1eaf}}},</div><div class='add'>+  {0x1eb0, {1|F|D, {0x1eb1}}},</div><div class='add'>+  {0x1eb2, {1|F|D, {0x1eb3}}},</div><div class='add'>+  {0x1eb4, {1|F|D, {0x1eb5}}},</div><div class='add'>+  {0x1eb6, {1|F|D, {0x1eb7}}},</div><div class='add'>+  {0x1eb8, {1|F|D, {0x1eb9}}},</div><div class='add'>+  {0x1eba, {1|F|D, {0x1ebb}}},</div><div class='add'>+  {0x1ebc, {1|F|D, {0x1ebd}}},</div><div class='add'>+  {0x1ebe, {1|F|D, {0x1ebf}}},</div><div class='add'>+  {0x1ec0, {1|F|D, {0x1ec1}}},</div><div class='add'>+  {0x1ec2, {1|F|D, {0x1ec3}}},</div><div class='add'>+  {0x1ec4, {1|F|D, {0x1ec5}}},</div><div class='add'>+  {0x1ec6, {1|F|D, {0x1ec7}}},</div><div class='add'>+  {0x1ec8, {1|F|D, {0x1ec9}}},</div><div class='add'>+  {0x1eca, {1|F|D, {0x1ecb}}},</div><div class='add'>+  {0x1ecc, {1|F|D, {0x1ecd}}},</div><div class='add'>+  {0x1ece, {1|F|D, {0x1ecf}}},</div><div class='add'>+  {0x1ed0, {1|F|D, {0x1ed1}}},</div><div class='add'>+  {0x1ed2, {1|F|D, {0x1ed3}}},</div><div class='add'>+  {0x1ed4, {1|F|D, {0x1ed5}}},</div><div class='add'>+  {0x1ed6, {1|F|D, {0x1ed7}}},</div><div class='add'>+  {0x1ed8, {1|F|D, {0x1ed9}}},</div><div class='add'>+  {0x1eda, {1|F|D, {0x1edb}}},</div><div class='add'>+  {0x1edc, {1|F|D, {0x1edd}}},</div><div class='add'>+  {0x1ede, {1|F|D, {0x1edf}}},</div><div class='add'>+  {0x1ee0, {1|F|D, {0x1ee1}}},</div><div class='add'>+  {0x1ee2, {1|F|D, {0x1ee3}}},</div><div class='add'>+  {0x1ee4, {1|F|D, {0x1ee5}}},</div><div class='add'>+  {0x1ee6, {1|F|D, {0x1ee7}}},</div><div class='add'>+  {0x1ee8, {1|F|D, {0x1ee9}}},</div><div class='add'>+  {0x1eea, {1|F|D, {0x1eeb}}},</div><div class='add'>+  {0x1eec, {1|F|D, {0x1eed}}},</div><div class='add'>+  {0x1eee, {1|F|D, {0x1eef}}},</div><div class='add'>+  {0x1ef0, {1|F|D, {0x1ef1}}},</div><div class='add'>+  {0x1ef2, {1|F|D, {0x1ef3}}},</div><div class='add'>+  {0x1ef4, {1|F|D, {0x1ef5}}},</div><div class='add'>+  {0x1ef6, {1|F|D, {0x1ef7}}},</div><div class='add'>+  {0x1ef8, {1|F|D, {0x1ef9}}},</div><div class='add'>+  {0x1efa, {1|F|D, {0x1efb}}},</div><div class='add'>+  {0x1efc, {1|F|D, {0x1efd}}},</div><div class='add'>+  {0x1efe, {1|F|D, {0x1eff}}},</div><div class='add'>+  {0x1f08, {1|F|D, {0x1f00}}},</div><div class='add'>+  {0x1f09, {1|F|D, {0x1f01}}},</div><div class='add'>+  {0x1f0a, {1|F|D, {0x1f02}}},</div><div class='add'>+  {0x1f0b, {1|F|D, {0x1f03}}},</div><div class='add'>+  {0x1f0c, {1|F|D, {0x1f04}}},</div><div class='add'>+  {0x1f0d, {1|F|D, {0x1f05}}},</div><div class='add'>+  {0x1f0e, {1|F|D, {0x1f06}}},</div><div class='add'>+  {0x1f0f, {1|F|D, {0x1f07}}},</div><div class='add'>+  {0x1f18, {1|F|D, {0x1f10}}},</div><div class='add'>+  {0x1f19, {1|F|D, {0x1f11}}},</div><div class='add'>+  {0x1f1a, {1|F|D, {0x1f12}}},</div><div class='add'>+  {0x1f1b, {1|F|D, {0x1f13}}},</div><div class='add'>+  {0x1f1c, {1|F|D, {0x1f14}}},</div><div class='add'>+  {0x1f1d, {1|F|D, {0x1f15}}},</div><div class='add'>+  {0x1f28, {1|F|D, {0x1f20}}},</div><div class='add'>+  {0x1f29, {1|F|D, {0x1f21}}},</div><div class='add'>+  {0x1f2a, {1|F|D, {0x1f22}}},</div><div class='add'>+  {0x1f2b, {1|F|D, {0x1f23}}},</div><div class='add'>+  {0x1f2c, {1|F|D, {0x1f24}}},</div><div class='add'>+  {0x1f2d, {1|F|D, {0x1f25}}},</div><div class='add'>+  {0x1f2e, {1|F|D, {0x1f26}}},</div><div class='add'>+  {0x1f2f, {1|F|D, {0x1f27}}},</div><div class='add'>+  {0x1f38, {1|F|D, {0x1f30}}},</div><div class='add'>+  {0x1f39, {1|F|D, {0x1f31}}},</div><div class='add'>+  {0x1f3a, {1|F|D, {0x1f32}}},</div><div class='add'>+  {0x1f3b, {1|F|D, {0x1f33}}},</div><div class='add'>+  {0x1f3c, {1|F|D, {0x1f34}}},</div><div class='add'>+  {0x1f3d, {1|F|D, {0x1f35}}},</div><div class='add'>+  {0x1f3e, {1|F|D, {0x1f36}}},</div><div class='add'>+  {0x1f3f, {1|F|D, {0x1f37}}},</div><div class='add'>+  {0x1f48, {1|F|D, {0x1f40}}},</div><div class='add'>+  {0x1f49, {1|F|D, {0x1f41}}},</div><div class='add'>+  {0x1f4a, {1|F|D, {0x1f42}}},</div><div class='add'>+  {0x1f4b, {1|F|D, {0x1f43}}},</div><div class='add'>+  {0x1f4c, {1|F|D, {0x1f44}}},</div><div class='add'>+  {0x1f4d, {1|F|D, {0x1f45}}},</div><div class='add'>+  {0x1f50, {2|F|SU|I(66), {0x03c5, 0x0313}}},</div><div class='add'>+  {0x1f52, {3|F|SU|I(68), {0x03c5, 0x0313, 0x0300}}},</div><div class='add'>+  {0x1f54, {3|F|SU|I(71), {0x03c5, 0x0313, 0x0301}}},</div><div class='add'>+  {0x1f56, {3|F|SU|I(74), {0x03c5, 0x0313, 0x0342}}},</div><div class='add'>+  {0x1f59, {1|F|D, {0x1f51}}},</div><div class='add'>+  {0x1f5b, {1|F|D, {0x1f53}}},</div><div class='add'>+  {0x1f5d, {1|F|D, {0x1f55}}},</div><div class='add'>+  {0x1f5f, {1|F|D, {0x1f57}}},</div><div class='add'>+  {0x1f68, {1|F|D, {0x1f60}}},</div><div class='add'>+  {0x1f69, {1|F|D, {0x1f61}}},</div><div class='add'>+  {0x1f6a, {1|F|D, {0x1f62}}},</div><div class='add'>+  {0x1f6b, {1|F|D, {0x1f63}}},</div><div class='add'>+  {0x1f6c, {1|F|D, {0x1f64}}},</div><div class='add'>+  {0x1f6d, {1|F|D, {0x1f65}}},</div><div class='add'>+  {0x1f6e, {1|F|D, {0x1f66}}},</div><div class='add'>+  {0x1f6f, {1|F|D, {0x1f67}}},</div><div class='add'>+  {0x1f80, {2|F|ST|SU|I(77), {0x1f00, 0x03b9}}},</div><div class='add'>+  {0x1f81, {2|F|ST|SU|I(80), {0x1f01, 0x03b9}}},</div><div class='add'>+  {0x1f82, {2|F|ST|SU|I(83), {0x1f02, 0x03b9}}},</div><div class='add'>+  {0x1f83, {2|F|ST|SU|I(86), {0x1f03, 0x03b9}}},</div><div class='add'>+  {0x1f84, {2|F|ST|SU|I(89), {0x1f04, 0x03b9}}},</div><div class='add'>+  {0x1f85, {2|F|ST|SU|I(92), {0x1f05, 0x03b9}}},</div><div class='add'>+  {0x1f86, {2|F|ST|SU|I(95), {0x1f06, 0x03b9}}},</div><div class='add'>+  {0x1f87, {2|F|ST|SU|I(98), {0x1f07, 0x03b9}}},</div><div class='add'>+  {0x1f88, {2|F|IT|SL|SU|I(101), {0x1f00, 0x03b9}}},</div><div class='add'>+  {0x1f89, {2|F|IT|SL|SU|I(106), {0x1f01, 0x03b9}}},</div><div class='add'>+  {0x1f8a, {2|F|IT|SL|SU|I(111), {0x1f02, 0x03b9}}},</div><div class='add'>+  {0x1f8b, {2|F|IT|SL|SU|I(116), {0x1f03, 0x03b9}}},</div><div class='add'>+  {0x1f8c, {2|F|IT|SL|SU|I(121), {0x1f04, 0x03b9}}},</div><div class='add'>+  {0x1f8d, {2|F|IT|SL|SU|I(126), {0x1f05, 0x03b9}}},</div><div class='add'>+  {0x1f8e, {2|F|IT|SL|SU|I(131), {0x1f06, 0x03b9}}},</div><div class='add'>+  {0x1f8f, {2|F|IT|SL|SU|I(136), {0x1f07, 0x03b9}}},</div><div class='add'>+  {0x1f90, {2|F|ST|SU|I(141), {0x1f20, 0x03b9}}},</div><div class='add'>+  {0x1f91, {2|F|ST|SU|I(144), {0x1f21, 0x03b9}}},</div><div class='add'>+  {0x1f92, {2|F|ST|SU|I(147), {0x1f22, 0x03b9}}},</div><div class='add'>+  {0x1f93, {2|F|ST|SU|I(150), {0x1f23, 0x03b9}}},</div><div class='add'>+  {0x1f94, {2|F|ST|SU|I(153), {0x1f24, 0x03b9}}},</div><div class='add'>+  {0x1f95, {2|F|ST|SU|I(156), {0x1f25, 0x03b9}}},</div><div class='add'>+  {0x1f96, {2|F|ST|SU|I(159), {0x1f26, 0x03b9}}},</div><div class='add'>+  {0x1f97, {2|F|ST|SU|I(162), {0x1f27, 0x03b9}}},</div><div class='add'>+  {0x1f98, {2|F|IT|SL|SU|I(165), {0x1f20, 0x03b9}}},</div><div class='add'>+  {0x1f99, {2|F|IT|SL|SU|I(170), {0x1f21, 0x03b9}}},</div><div class='add'>+  {0x1f9a, {2|F|IT|SL|SU|I(175), {0x1f22, 0x03b9}}},</div><div class='add'>+  {0x1f9b, {2|F|IT|SL|SU|I(180), {0x1f23, 0x03b9}}},</div><div class='add'>+  {0x1f9c, {2|F|IT|SL|SU|I(185), {0x1f24, 0x03b9}}},</div><div class='add'>+  {0x1f9d, {2|F|IT|SL|SU|I(190), {0x1f25, 0x03b9}}},</div><div class='add'>+  {0x1f9e, {2|F|IT|SL|SU|I(195), {0x1f26, 0x03b9}}},</div><div class='add'>+  {0x1f9f, {2|F|IT|SL|SU|I(200), {0x1f27, 0x03b9}}},</div><div class='add'>+  {0x1fa0, {2|F|ST|SU|I(205), {0x1f60, 0x03b9}}},</div><div class='add'>+  {0x1fa1, {2|F|ST|SU|I(208), {0x1f61, 0x03b9}}},</div><div class='add'>+  {0x1fa2, {2|F|ST|SU|I(211), {0x1f62, 0x03b9}}},</div><div class='add'>+  {0x1fa3, {2|F|ST|SU|I(214), {0x1f63, 0x03b9}}},</div><div class='add'>+  {0x1fa4, {2|F|ST|SU|I(217), {0x1f64, 0x03b9}}},</div><div class='add'>+  {0x1fa5, {2|F|ST|SU|I(220), {0x1f65, 0x03b9}}},</div><div class='add'>+  {0x1fa6, {2|F|ST|SU|I(223), {0x1f66, 0x03b9}}},</div><div class='add'>+  {0x1fa7, {2|F|ST|SU|I(226), {0x1f67, 0x03b9}}},</div><div class='add'>+  {0x1fa8, {2|F|IT|SL|SU|I(229), {0x1f60, 0x03b9}}},</div><div class='add'>+  {0x1fa9, {2|F|IT|SL|SU|I(234), {0x1f61, 0x03b9}}},</div><div class='add'>+  {0x1faa, {2|F|IT|SL|SU|I(239), {0x1f62, 0x03b9}}},</div><div class='add'>+  {0x1fab, {2|F|IT|SL|SU|I(244), {0x1f63, 0x03b9}}},</div><div class='add'>+  {0x1fac, {2|F|IT|SL|SU|I(249), {0x1f64, 0x03b9}}},</div><div class='add'>+  {0x1fad, {2|F|IT|SL|SU|I(254), {0x1f65, 0x03b9}}},</div><div class='add'>+  {0x1fae, {2|F|IT|SL|SU|I(259), {0x1f66, 0x03b9}}},</div><div class='add'>+  {0x1faf, {2|F|IT|SL|SU|I(264), {0x1f67, 0x03b9}}},</div><div class='add'>+  {0x1fb2, {2|F|ST|SU|I(269), {0x1f70, 0x03b9}}},</div><div class='add'>+  {0x1fb3, {2|F|ST|SU|I(273), {0x03b1, 0x03b9}}},</div><div class='add'>+  {0x1fb4, {2|F|ST|SU|I(276), {0x03ac, 0x03b9}}},</div><div class='add'>+  {0x1fb6, {2|F|SU|I(280), {0x03b1, 0x0342}}},</div><div class='add'>+  {0x1fb7, {3|F|ST|SU|I(282), {0x03b1, 0x0342, 0x03b9}}},</div><div class='add'>+  {0x1fb8, {1|F|D, {0x1fb0}}},</div><div class='add'>+  {0x1fb9, {1|F|D, {0x1fb1}}},</div><div class='add'>+  {0x1fba, {1|F|D, {0x1f70}}},</div><div class='add'>+  {0x1fbb, {1|F|D, {0x1f71}}},</div><div class='add'>+  {0x1fbc, {2|F|IT|SL|SU|I(288), {0x03b1, 0x03b9}}},</div><div class='add'>+  {0x1fbe, {1|F|SU|I(293), {0x03b9}}},</div><div class='add'>+  {0x1fc2, {2|F|ST|SU|I(294), {0x1f74, 0x03b9}}},</div><div class='add'>+  {0x1fc3, {2|F|ST|SU|I(298), {0x03b7, 0x03b9}}},</div><div class='add'>+  {0x1fc4, {2|F|ST|SU|I(301), {0x03ae, 0x03b9}}},</div><div class='add'>+  {0x1fc6, {2|F|SU|I(305), {0x03b7, 0x0342}}},</div><div class='add'>+  {0x1fc7, {3|F|ST|SU|I(307), {0x03b7, 0x0342, 0x03b9}}},</div><div class='add'>+  {0x1fc8, {1|F|D, {0x1f72}}},</div><div class='add'>+  {0x1fc9, {1|F|D, {0x1f73}}},</div><div class='add'>+  {0x1fca, {1|F|D, {0x1f74}}},</div><div class='add'>+  {0x1fcb, {1|F|D, {0x1f75}}},</div><div class='add'>+  {0x1fcc, {2|F|IT|SL|SU|I(313), {0x03b7, 0x03b9}}},</div><div class='add'>+  {0x1fd2, {3|F|SU|I(318), {0x03b9, 0x0308, 0x0300}}},</div><div class='add'>+  {0x1fd3, {3|F|SU|I(321), {0x03b9, 0x0308, 0x0301}}},</div><div class='add'>+  {0x1fd6, {2|F|SU|I(324), {0x03b9, 0x0342}}},</div><div class='add'>+  {0x1fd7, {3|F|SU|I(326), {0x03b9, 0x0308, 0x0342}}},</div><div class='add'>+  {0x1fd8, {1|F|D, {0x1fd0}}},</div><div class='add'>+  {0x1fd9, {1|F|D, {0x1fd1}}},</div><div class='add'>+  {0x1fda, {1|F|D, {0x1f76}}},</div><div class='add'>+  {0x1fdb, {1|F|D, {0x1f77}}},</div><div class='add'>+  {0x1fe2, {3|F|SU|I(329), {0x03c5, 0x0308, 0x0300}}},</div><div class='add'>+  {0x1fe3, {3|F|SU|I(332), {0x03c5, 0x0308, 0x0301}}},</div><div class='add'>+  {0x1fe4, {2|F|SU|I(335), {0x03c1, 0x0313}}},</div><div class='add'>+  {0x1fe6, {2|F|SU|I(337), {0x03c5, 0x0342}}},</div><div class='add'>+  {0x1fe7, {3|F|SU|I(339), {0x03c5, 0x0308, 0x0342}}},</div><div class='add'>+  {0x1fe8, {1|F|D, {0x1fe0}}},</div><div class='add'>+  {0x1fe9, {1|F|D, {0x1fe1}}},</div><div class='add'>+  {0x1fea, {1|F|D, {0x1f7a}}},</div><div class='add'>+  {0x1feb, {1|F|D, {0x1f7b}}},</div><div class='add'>+  {0x1fec, {1|F|D, {0x1fe5}}},</div><div class='add'>+  {0x1ff2, {2|F|ST|SU|I(342), {0x1f7c, 0x03b9}}},</div><div class='add'>+  {0x1ff3, {2|F|ST|SU|I(346), {0x03c9, 0x03b9}}},</div><div class='add'>+  {0x1ff4, {2|F|ST|SU|I(349), {0x03ce, 0x03b9}}},</div><div class='add'>+  {0x1ff6, {2|F|SU|I(353), {0x03c9, 0x0342}}},</div><div class='add'>+  {0x1ff7, {3|F|ST|SU|I(355), {0x03c9, 0x0342, 0x03b9}}},</div><div class='add'>+  {0x1ff8, {1|F|D, {0x1f78}}},</div><div class='add'>+  {0x1ff9, {1|F|D, {0x1f79}}},</div><div class='add'>+  {0x1ffa, {1|F|D, {0x1f7c}}},</div><div class='add'>+  {0x1ffb, {1|F|D, {0x1f7d}}},</div><div class='add'>+  {0x1ffc, {2|F|IT|SL|SU|I(361), {0x03c9, 0x03b9}}},</div><div class='add'>+  {0x2126, {1|F|D, {0x03c9}}},</div><div class='add'>+  {0x212a, {1|F|D, {0x006b}}},</div><div class='add'>+  {0x212b, {1|F|D, {0x00e5}}},</div><div class='add'>+  {0x2132, {1|F|D, {0x214e}}},</div><div class='add'>+  {0x2160, {1|F|D, {0x2170}}},</div><div class='add'>+  {0x2161, {1|F|D, {0x2171}}},</div><div class='add'>+  {0x2162, {1|F|D, {0x2172}}},</div><div class='add'>+  {0x2163, {1|F|D, {0x2173}}},</div><div class='add'>+  {0x2164, {1|F|D, {0x2174}}},</div><div class='add'>+  {0x2165, {1|F|D, {0x2175}}},</div><div class='add'>+  {0x2166, {1|F|D, {0x2176}}},</div><div class='add'>+  {0x2167, {1|F|D, {0x2177}}},</div><div class='add'>+  {0x2168, {1|F|D, {0x2178}}},</div><div class='add'>+  {0x2169, {1|F|D, {0x2179}}},</div><div class='add'>+  {0x216a, {1|F|D, {0x217a}}},</div><div class='add'>+  {0x216b, {1|F|D, {0x217b}}},</div><div class='add'>+  {0x216c, {1|F|D, {0x217c}}},</div><div class='add'>+  {0x216d, {1|F|D, {0x217d}}},</div><div class='add'>+  {0x216e, {1|F|D, {0x217e}}},</div><div class='add'>+  {0x216f, {1|F|D, {0x217f}}},</div><div class='add'>+  {0x2183, {1|F|D, {0x2184}}},</div><div class='add'>+  {0x24b6, {1|F|D, {0x24d0}}},</div><div class='add'>+  {0x24b7, {1|F|D, {0x24d1}}},</div><div class='add'>+  {0x24b8, {1|F|D, {0x24d2}}},</div><div class='add'>+  {0x24b9, {1|F|D, {0x24d3}}},</div><div class='add'>+  {0x24ba, {1|F|D, {0x24d4}}},</div><div class='add'>+  {0x24bb, {1|F|D, {0x24d5}}},</div><div class='add'>+  {0x24bc, {1|F|D, {0x24d6}}},</div><div class='add'>+  {0x24bd, {1|F|D, {0x24d7}}},</div><div class='add'>+  {0x24be, {1|F|D, {0x24d8}}},</div><div class='add'>+  {0x24bf, {1|F|D, {0x24d9}}},</div><div class='add'>+  {0x24c0, {1|F|D, {0x24da}}},</div><div class='add'>+  {0x24c1, {1|F|D, {0x24db}}},</div><div class='add'>+  {0x24c2, {1|F|D, {0x24dc}}},</div><div class='add'>+  {0x24c3, {1|F|D, {0x24dd}}},</div><div class='add'>+  {0x24c4, {1|F|D, {0x24de}}},</div><div class='add'>+  {0x24c5, {1|F|D, {0x24df}}},</div><div class='add'>+  {0x24c6, {1|F|D, {0x24e0}}},</div><div class='add'>+  {0x24c7, {1|F|D, {0x24e1}}},</div><div class='add'>+  {0x24c8, {1|F|D, {0x24e2}}},</div><div class='add'>+  {0x24c9, {1|F|D, {0x24e3}}},</div><div class='add'>+  {0x24ca, {1|F|D, {0x24e4}}},</div><div class='add'>+  {0x24cb, {1|F|D, {0x24e5}}},</div><div class='add'>+  {0x24cc, {1|F|D, {0x24e6}}},</div><div class='add'>+  {0x24cd, {1|F|D, {0x24e7}}},</div><div class='add'>+  {0x24ce, {1|F|D, {0x24e8}}},</div><div class='add'>+  {0x24cf, {1|F|D, {0x24e9}}},</div><div class='add'>+  {0x2c00, {1|F|D, {0x2c30}}},</div><div class='add'>+  {0x2c01, {1|F|D, {0x2c31}}},</div><div class='add'>+  {0x2c02, {1|F|D, {0x2c32}}},</div><div class='add'>+  {0x2c03, {1|F|D, {0x2c33}}},</div><div class='add'>+  {0x2c04, {1|F|D, {0x2c34}}},</div><div class='add'>+  {0x2c05, {1|F|D, {0x2c35}}},</div><div class='add'>+  {0x2c06, {1|F|D, {0x2c36}}},</div><div class='add'>+  {0x2c07, {1|F|D, {0x2c37}}},</div><div class='add'>+  {0x2c08, {1|F|D, {0x2c38}}},</div><div class='add'>+  {0x2c09, {1|F|D, {0x2c39}}},</div><div class='add'>+  {0x2c0a, {1|F|D, {0x2c3a}}},</div><div class='add'>+  {0x2c0b, {1|F|D, {0x2c3b}}},</div><div class='add'>+  {0x2c0c, {1|F|D, {0x2c3c}}},</div><div class='add'>+  {0x2c0d, {1|F|D, {0x2c3d}}},</div><div class='add'>+  {0x2c0e, {1|F|D, {0x2c3e}}},</div><div class='add'>+  {0x2c0f, {1|F|D, {0x2c3f}}},</div><div class='add'>+  {0x2c10, {1|F|D, {0x2c40}}},</div><div class='add'>+  {0x2c11, {1|F|D, {0x2c41}}},</div><div class='add'>+  {0x2c12, {1|F|D, {0x2c42}}},</div><div class='add'>+  {0x2c13, {1|F|D, {0x2c43}}},</div><div class='add'>+  {0x2c14, {1|F|D, {0x2c44}}},</div><div class='add'>+  {0x2c15, {1|F|D, {0x2c45}}},</div><div class='add'>+  {0x2c16, {1|F|D, {0x2c46}}},</div><div class='add'>+  {0x2c17, {1|F|D, {0x2c47}}},</div><div class='add'>+  {0x2c18, {1|F|D, {0x2c48}}},</div><div class='add'>+  {0x2c19, {1|F|D, {0x2c49}}},</div><div class='add'>+  {0x2c1a, {1|F|D, {0x2c4a}}},</div><div class='add'>+  {0x2c1b, {1|F|D, {0x2c4b}}},</div><div class='add'>+  {0x2c1c, {1|F|D, {0x2c4c}}},</div><div class='add'>+  {0x2c1d, {1|F|D, {0x2c4d}}},</div><div class='add'>+  {0x2c1e, {1|F|D, {0x2c4e}}},</div><div class='add'>+  {0x2c1f, {1|F|D, {0x2c4f}}},</div><div class='add'>+  {0x2c20, {1|F|D, {0x2c50}}},</div><div class='add'>+  {0x2c21, {1|F|D, {0x2c51}}},</div><div class='add'>+  {0x2c22, {1|F|D, {0x2c52}}},</div><div class='add'>+  {0x2c23, {1|F|D, {0x2c53}}},</div><div class='add'>+  {0x2c24, {1|F|D, {0x2c54}}},</div><div class='add'>+  {0x2c25, {1|F|D, {0x2c55}}},</div><div class='add'>+  {0x2c26, {1|F|D, {0x2c56}}},</div><div class='add'>+  {0x2c27, {1|F|D, {0x2c57}}},</div><div class='add'>+  {0x2c28, {1|F|D, {0x2c58}}},</div><div class='add'>+  {0x2c29, {1|F|D, {0x2c59}}},</div><div class='add'>+  {0x2c2a, {1|F|D, {0x2c5a}}},</div><div class='add'>+  {0x2c2b, {1|F|D, {0x2c5b}}},</div><div class='add'>+  {0x2c2c, {1|F|D, {0x2c5c}}},</div><div class='add'>+  {0x2c2d, {1|F|D, {0x2c5d}}},</div><div class='add'>+  {0x2c2e, {1|F|D, {0x2c5e}}},</div><div class='add'>+  {0x2c2f, {1|F|D, {0x2c5f}}},</div><div class='add'>+  {0x2c60, {1|F|D, {0x2c61}}},</div><div class='add'>+  {0x2c62, {1|F|D, {0x026b}}},</div><div class='add'>+  {0x2c63, {1|F|D, {0x1d7d}}},</div><div class='add'>+  {0x2c64, {1|F|D, {0x027d}}},</div><div class='add'>+  {0x2c67, {1|F|D, {0x2c68}}},</div><div class='add'>+  {0x2c69, {1|F|D, {0x2c6a}}},</div><div class='add'>+  {0x2c6b, {1|F|D, {0x2c6c}}},</div><div class='add'>+  {0x2c6d, {1|F|D, {0x0251}}},</div><div class='add'>+  {0x2c6e, {1|F|D, {0x0271}}},</div><div class='add'>+  {0x2c6f, {1|F|D, {0x0250}}},</div><div class='add'>+  {0x2c70, {1|F|D, {0x0252}}},</div><div class='add'>+  {0x2c72, {1|F|D, {0x2c73}}},</div><div class='add'>+  {0x2c75, {1|F|D, {0x2c76}}},</div><div class='add'>+  {0x2c7e, {1|F|D, {0x023f}}},</div><div class='add'>+  {0x2c7f, {1|F|D, {0x0240}}},</div><div class='add'>+  {0x2c80, {1|F|D, {0x2c81}}},</div><div class='add'>+  {0x2c82, {1|F|D, {0x2c83}}},</div><div class='add'>+  {0x2c84, {1|F|D, {0x2c85}}},</div><div class='add'>+  {0x2c86, {1|F|D, {0x2c87}}},</div><div class='add'>+  {0x2c88, {1|F|D, {0x2c89}}},</div><div class='add'>+  {0x2c8a, {1|F|D, {0x2c8b}}},</div><div class='add'>+  {0x2c8c, {1|F|D, {0x2c8d}}},</div><div class='add'>+  {0x2c8e, {1|F|D, {0x2c8f}}},</div><div class='add'>+  {0x2c90, {1|F|D, {0x2c91}}},</div><div class='add'>+  {0x2c92, {1|F|D, {0x2c93}}},</div><div class='add'>+  {0x2c94, {1|F|D, {0x2c95}}},</div><div class='add'>+  {0x2c96, {1|F|D, {0x2c97}}},</div><div class='add'>+  {0x2c98, {1|F|D, {0x2c99}}},</div><div class='add'>+  {0x2c9a, {1|F|D, {0x2c9b}}},</div><div class='add'>+  {0x2c9c, {1|F|D, {0x2c9d}}},</div><div class='add'>+  {0x2c9e, {1|F|D, {0x2c9f}}},</div><div class='add'>+  {0x2ca0, {1|F|D, {0x2ca1}}},</div><div class='add'>+  {0x2ca2, {1|F|D, {0x2ca3}}},</div><div class='add'>+  {0x2ca4, {1|F|D, {0x2ca5}}},</div><div class='add'>+  {0x2ca6, {1|F|D, {0x2ca7}}},</div><div class='add'>+  {0x2ca8, {1|F|D, {0x2ca9}}},</div><div class='add'>+  {0x2caa, {1|F|D, {0x2cab}}},</div><div class='add'>+  {0x2cac, {1|F|D, {0x2cad}}},</div><div class='add'>+  {0x2cae, {1|F|D, {0x2caf}}},</div><div class='add'>+  {0x2cb0, {1|F|D, {0x2cb1}}},</div><div class='add'>+  {0x2cb2, {1|F|D, {0x2cb3}}},</div><div class='add'>+  {0x2cb4, {1|F|D, {0x2cb5}}},</div><div class='add'>+  {0x2cb6, {1|F|D, {0x2cb7}}},</div><div class='add'>+  {0x2cb8, {1|F|D, {0x2cb9}}},</div><div class='add'>+  {0x2cba, {1|F|D, {0x2cbb}}},</div><div class='add'>+  {0x2cbc, {1|F|D, {0x2cbd}}},</div><div class='add'>+  {0x2cbe, {1|F|D, {0x2cbf}}},</div><div class='add'>+  {0x2cc0, {1|F|D, {0x2cc1}}},</div><div class='add'>+  {0x2cc2, {1|F|D, {0x2cc3}}},</div><div class='add'>+  {0x2cc4, {1|F|D, {0x2cc5}}},</div><div class='add'>+  {0x2cc6, {1|F|D, {0x2cc7}}},</div><div class='add'>+  {0x2cc8, {1|F|D, {0x2cc9}}},</div><div class='add'>+  {0x2cca, {1|F|D, {0x2ccb}}},</div><div class='add'>+  {0x2ccc, {1|F|D, {0x2ccd}}},</div><div class='add'>+  {0x2cce, {1|F|D, {0x2ccf}}},</div><div class='add'>+  {0x2cd0, {1|F|D, {0x2cd1}}},</div><div class='add'>+  {0x2cd2, {1|F|D, {0x2cd3}}},</div><div class='add'>+  {0x2cd4, {1|F|D, {0x2cd5}}},</div><div class='add'>+  {0x2cd6, {1|F|D, {0x2cd7}}},</div><div class='add'>+  {0x2cd8, {1|F|D, {0x2cd9}}},</div><div class='add'>+  {0x2cda, {1|F|D, {0x2cdb}}},</div><div class='add'>+  {0x2cdc, {1|F|D, {0x2cdd}}},</div><div class='add'>+  {0x2cde, {1|F|D, {0x2cdf}}},</div><div class='add'>+  {0x2ce0, {1|F|D, {0x2ce1}}},</div><div class='add'>+  {0x2ce2, {1|F|D, {0x2ce3}}},</div><div class='add'>+  {0x2ceb, {1|F|D, {0x2cec}}},</div><div class='add'>+  {0x2ced, {1|F|D, {0x2cee}}},</div><div class='add'>+  {0x2cf2, {1|F|D, {0x2cf3}}},</div><div class='add'>+  {0xa640, {1|F|D, {0xa641}}},</div><div class='add'>+  {0xa642, {1|F|D, {0xa643}}},</div><div class='add'>+  {0xa644, {1|F|D, {0xa645}}},</div><div class='add'>+  {0xa646, {1|F|D, {0xa647}}},</div><div class='add'>+  {0xa648, {1|F|D, {0xa649}}},</div><div class='add'>+  {0xa64a, {1|F|D, {0xa64b}}},</div><div class='add'>+  {0xa64c, {1|F|D, {0xa64d}}},</div><div class='add'>+  {0xa64e, {1|F|D, {0xa64f}}},</div><div class='add'>+  {0xa650, {1|F|D, {0xa651}}},</div><div class='add'>+  {0xa652, {1|F|D, {0xa653}}},</div><div class='add'>+  {0xa654, {1|F|D, {0xa655}}},</div><div class='add'>+  {0xa656, {1|F|D, {0xa657}}},</div><div class='add'>+  {0xa658, {1|F|D, {0xa659}}},</div><div class='add'>+  {0xa65a, {1|F|D, {0xa65b}}},</div><div class='add'>+  {0xa65c, {1|F|D, {0xa65d}}},</div><div class='add'>+  {0xa65e, {1|F|D, {0xa65f}}},</div><div class='add'>+  {0xa660, {1|F|D, {0xa661}}},</div><div class='add'>+  {0xa662, {1|F|D, {0xa663}}},</div><div class='add'>+  {0xa664, {1|F|D, {0xa665}}},</div><div class='add'>+  {0xa666, {1|F|D, {0xa667}}},</div><div class='add'>+  {0xa668, {1|F|D, {0xa669}}},</div><div class='add'>+  {0xa66a, {1|F|D, {0xa66b}}},</div><div class='add'>+  {0xa66c, {1|F|D, {0xa66d}}},</div><div class='add'>+  {0xa680, {1|F|D, {0xa681}}},</div><div class='add'>+  {0xa682, {1|F|D, {0xa683}}},</div><div class='add'>+  {0xa684, {1|F|D, {0xa685}}},</div><div class='add'>+  {0xa686, {1|F|D, {0xa687}}},</div><div class='add'>+  {0xa688, {1|F|D, {0xa689}}},</div><div class='add'>+  {0xa68a, {1|F|D, {0xa68b}}},</div><div class='add'>+  {0xa68c, {1|F|D, {0xa68d}}},</div><div class='add'>+  {0xa68e, {1|F|D, {0xa68f}}},</div><div class='add'>+  {0xa690, {1|F|D, {0xa691}}},</div><div class='add'>+  {0xa692, {1|F|D, {0xa693}}},</div><div class='add'>+  {0xa694, {1|F|D, {0xa695}}},</div><div class='add'>+  {0xa696, {1|F|D, {0xa697}}},</div><div class='add'>+  {0xa698, {1|F|D, {0xa699}}},</div><div class='add'>+  {0xa69a, {1|F|D, {0xa69b}}},</div><div class='add'>+  {0xa722, {1|F|D, {0xa723}}},</div><div class='add'>+  {0xa724, {1|F|D, {0xa725}}},</div><div class='add'>+  {0xa726, {1|F|D, {0xa727}}},</div><div class='add'>+  {0xa728, {1|F|D, {0xa729}}},</div><div class='add'>+  {0xa72a, {1|F|D, {0xa72b}}},</div><div class='add'>+  {0xa72c, {1|F|D, {0xa72d}}},</div><div class='add'>+  {0xa72e, {1|F|D, {0xa72f}}},</div><div class='add'>+  {0xa732, {1|F|D, {0xa733}}},</div><div class='add'>+  {0xa734, {1|F|D, {0xa735}}},</div><div class='add'>+  {0xa736, {1|F|D, {0xa737}}},</div><div class='add'>+  {0xa738, {1|F|D, {0xa739}}},</div><div class='add'>+  {0xa73a, {1|F|D, {0xa73b}}},</div><div class='add'>+  {0xa73c, {1|F|D, {0xa73d}}},</div><div class='add'>+  {0xa73e, {1|F|D, {0xa73f}}},</div><div class='add'>+  {0xa740, {1|F|D, {0xa741}}},</div><div class='add'>+  {0xa742, {1|F|D, {0xa743}}},</div><div class='add'>+  {0xa744, {1|F|D, {0xa745}}},</div><div class='add'>+  {0xa746, {1|F|D, {0xa747}}},</div><div class='add'>+  {0xa748, {1|F|D, {0xa749}}},</div><div class='add'>+  {0xa74a, {1|F|D, {0xa74b}}},</div><div class='add'>+  {0xa74c, {1|F|D, {0xa74d}}},</div><div class='add'>+  {0xa74e, {1|F|D, {0xa74f}}},</div><div class='add'>+  {0xa750, {1|F|D, {0xa751}}},</div><div class='add'>+  {0xa752, {1|F|D, {0xa753}}},</div><div class='add'>+  {0xa754, {1|F|D, {0xa755}}},</div><div class='add'>+  {0xa756, {1|F|D, {0xa757}}},</div><div class='add'>+  {0xa758, {1|F|D, {0xa759}}},</div><div class='add'>+  {0xa75a, {1|F|D, {0xa75b}}},</div><div class='add'>+  {0xa75c, {1|F|D, {0xa75d}}},</div><div class='add'>+  {0xa75e, {1|F|D, {0xa75f}}},</div><div class='add'>+  {0xa760, {1|F|D, {0xa761}}},</div><div class='add'>+  {0xa762, {1|F|D, {0xa763}}},</div><div class='add'>+  {0xa764, {1|F|D, {0xa765}}},</div><div class='add'>+  {0xa766, {1|F|D, {0xa767}}},</div><div class='add'>+  {0xa768, {1|F|D, {0xa769}}},</div><div class='add'>+  {0xa76a, {1|F|D, {0xa76b}}},</div><div class='add'>+  {0xa76c, {1|F|D, {0xa76d}}},</div><div class='add'>+  {0xa76e, {1|F|D, {0xa76f}}},</div><div class='add'>+  {0xa779, {1|F|D, {0xa77a}}},</div><div class='add'>+  {0xa77b, {1|F|D, {0xa77c}}},</div><div class='add'>+  {0xa77d, {1|F|D, {0x1d79}}},</div><div class='add'>+  {0xa77e, {1|F|D, {0xa77f}}},</div><div class='add'>+  {0xa780, {1|F|D, {0xa781}}},</div><div class='add'>+  {0xa782, {1|F|D, {0xa783}}},</div><div class='add'>+  {0xa784, {1|F|D, {0xa785}}},</div><div class='add'>+  {0xa786, {1|F|D, {0xa787}}},</div><div class='add'>+  {0xa78b, {1|F|D, {0xa78c}}},</div><div class='add'>+  {0xa78d, {1|F|D, {0x0265}}},</div><div class='add'>+  {0xa790, {1|F|D, {0xa791}}},</div><div class='add'>+  {0xa792, {1|F|D, {0xa793}}},</div><div class='add'>+  {0xa796, {1|F|D, {0xa797}}},</div><div class='add'>+  {0xa798, {1|F|D, {0xa799}}},</div><div class='add'>+  {0xa79a, {1|F|D, {0xa79b}}},</div><div class='add'>+  {0xa79c, {1|F|D, {0xa79d}}},</div><div class='add'>+  {0xa79e, {1|F|D, {0xa79f}}},</div><div class='add'>+  {0xa7a0, {1|F|D, {0xa7a1}}},</div><div class='add'>+  {0xa7a2, {1|F|D, {0xa7a3}}},</div><div class='add'>+  {0xa7a4, {1|F|D, {0xa7a5}}},</div><div class='add'>+  {0xa7a6, {1|F|D, {0xa7a7}}},</div><div class='add'>+  {0xa7a8, {1|F|D, {0xa7a9}}},</div><div class='add'>+  {0xa7aa, {1|F|D, {0x0266}}},</div><div class='add'>+  {0xa7ab, {1|F|D, {0x025c}}},</div><div class='add'>+  {0xa7ac, {1|F|D, {0x0261}}},</div><div class='add'>+  {0xa7ad, {1|F|D, {0x026c}}},</div><div class='add'>+  {0xa7ae, {1|F|D, {0x026a}}},</div><div class='add'>+  {0xa7b0, {1|F|D, {0x029e}}},</div><div class='add'>+  {0xa7b1, {1|F|D, {0x0287}}},</div><div class='add'>+  {0xa7b2, {1|F|D, {0x029d}}},</div><div class='add'>+  {0xa7b3, {1|F|D, {0xab53}}},</div><div class='add'>+  {0xa7b4, {1|F|D, {0xa7b5}}},</div><div class='add'>+  {0xa7b6, {1|F|D, {0xa7b7}}},</div><div class='add'>+  {0xa7b8, {1|F|D, {0xa7b9}}},</div><div class='add'>+  {0xa7ba, {1|F|D, {0xa7bb}}},</div><div class='add'>+  {0xa7bc, {1|F|D, {0xa7bd}}},</div><div class='add'>+  {0xa7be, {1|F|D, {0xa7bf}}},</div><div class='add'>+  {0xa7c0, {1|F|D, {0xa7c1}}},</div><div class='add'>+  {0xa7c2, {1|F|D, {0xa7c3}}},</div><div class='add'>+  {0xa7c4, {1|F|D, {0xa794}}},</div><div class='add'>+  {0xa7c5, {1|F|D, {0x0282}}},</div><div class='add'>+  {0xa7c6, {1|F|D, {0x1d8e}}},</div><div class='add'>+  {0xa7c7, {1|F|D, {0xa7c8}}},</div><div class='add'>+  {0xa7c9, {1|F|D, {0xa7ca}}},</div><div class='add'>+  {0xa7d0, {1|F|D, {0xa7d1}}},</div><div class='add'>+  {0xa7d6, {1|F|D, {0xa7d7}}},</div><div class='add'>+  {0xa7d8, {1|F|D, {0xa7d9}}},</div><div class='add'>+  {0xa7f5, {1|F|D, {0xa7f6}}},</div><div class='add'>+  {0xab70, {1|F|U, {0x13a0}}},</div><div class='add'>+  {0xab71, {1|F|U, {0x13a1}}},</div><div class='add'>+  {0xab72, {1|F|U, {0x13a2}}},</div><div class='add'>+  {0xab73, {1|F|U, {0x13a3}}},</div><div class='add'>+  {0xab74, {1|F|U, {0x13a4}}},</div><div class='add'>+  {0xab75, {1|F|U, {0x13a5}}},</div><div class='add'>+  {0xab76, {1|F|U, {0x13a6}}},</div><div class='add'>+  {0xab77, {1|F|U, {0x13a7}}},</div><div class='add'>+  {0xab78, {1|F|U, {0x13a8}}},</div><div class='add'>+  {0xab79, {1|F|U, {0x13a9}}},</div><div class='add'>+  {0xab7a, {1|F|U, {0x13aa}}},</div><div class='add'>+  {0xab7b, {1|F|U, {0x13ab}}},</div><div class='add'>+  {0xab7c, {1|F|U, {0x13ac}}},</div><div class='add'>+  {0xab7d, {1|F|U, {0x13ad}}},</div><div class='add'>+  {0xab7e, {1|F|U, {0x13ae}}},</div><div class='add'>+  {0xab7f, {1|F|U, {0x13af}}},</div><div class='add'>+  {0xab80, {1|F|U, {0x13b0}}},</div><div class='add'>+  {0xab81, {1|F|U, {0x13b1}}},</div><div class='add'>+  {0xab82, {1|F|U, {0x13b2}}},</div><div class='add'>+  {0xab83, {1|F|U, {0x13b3}}},</div><div class='add'>+  {0xab84, {1|F|U, {0x13b4}}},</div><div class='add'>+  {0xab85, {1|F|U, {0x13b5}}},</div><div class='add'>+  {0xab86, {1|F|U, {0x13b6}}},</div><div class='add'>+  {0xab87, {1|F|U, {0x13b7}}},</div><div class='add'>+  {0xab88, {1|F|U, {0x13b8}}},</div><div class='add'>+  {0xab89, {1|F|U, {0x13b9}}},</div><div class='add'>+  {0xab8a, {1|F|U, {0x13ba}}},</div><div class='add'>+  {0xab8b, {1|F|U, {0x13bb}}},</div><div class='add'>+  {0xab8c, {1|F|U, {0x13bc}}},</div><div class='add'>+  {0xab8d, {1|F|U, {0x13bd}}},</div><div class='add'>+  {0xab8e, {1|F|U, {0x13be}}},</div><div class='add'>+  {0xab8f, {1|F|U, {0x13bf}}},</div><div class='add'>+  {0xab90, {1|F|U, {0x13c0}}},</div><div class='add'>+  {0xab91, {1|F|U, {0x13c1}}},</div><div class='add'>+  {0xab92, {1|F|U, {0x13c2}}},</div><div class='add'>+  {0xab93, {1|F|U, {0x13c3}}},</div><div class='add'>+  {0xab94, {1|F|U, {0x13c4}}},</div><div class='add'>+  {0xab95, {1|F|U, {0x13c5}}},</div><div class='add'>+  {0xab96, {1|F|U, {0x13c6}}},</div><div class='add'>+  {0xab97, {1|F|U, {0x13c7}}},</div><div class='add'>+  {0xab98, {1|F|U, {0x13c8}}},</div><div class='add'>+  {0xab99, {1|F|U, {0x13c9}}},</div><div class='add'>+  {0xab9a, {1|F|U, {0x13ca}}},</div><div class='add'>+  {0xab9b, {1|F|U, {0x13cb}}},</div><div class='add'>+  {0xab9c, {1|F|U, {0x13cc}}},</div><div class='add'>+  {0xab9d, {1|F|U, {0x13cd}}},</div><div class='add'>+  {0xab9e, {1|F|U, {0x13ce}}},</div><div class='add'>+  {0xab9f, {1|F|U, {0x13cf}}},</div><div class='add'>+  {0xaba0, {1|F|U, {0x13d0}}},</div><div class='add'>+  {0xaba1, {1|F|U, {0x13d1}}},</div><div class='add'>+  {0xaba2, {1|F|U, {0x13d2}}},</div><div class='add'>+  {0xaba3, {1|F|U, {0x13d3}}},</div><div class='add'>+  {0xaba4, {1|F|U, {0x13d4}}},</div><div class='add'>+  {0xaba5, {1|F|U, {0x13d5}}},</div><div class='add'>+  {0xaba6, {1|F|U, {0x13d6}}},</div><div class='add'>+  {0xaba7, {1|F|U, {0x13d7}}},</div><div class='add'>+  {0xaba8, {1|F|U, {0x13d8}}},</div><div class='add'>+  {0xaba9, {1|F|U, {0x13d9}}},</div><div class='add'>+  {0xabaa, {1|F|U, {0x13da}}},</div><div class='add'>+  {0xabab, {1|F|U, {0x13db}}},</div><div class='add'>+  {0xabac, {1|F|U, {0x13dc}}},</div><div class='add'>+  {0xabad, {1|F|U, {0x13dd}}},</div><div class='add'>+  {0xabae, {1|F|U, {0x13de}}},</div><div class='add'>+  {0xabaf, {1|F|U, {0x13df}}},</div><div class='add'>+  {0xabb0, {1|F|U, {0x13e0}}},</div><div class='add'>+  {0xabb1, {1|F|U, {0x13e1}}},</div><div class='add'>+  {0xabb2, {1|F|U, {0x13e2}}},</div><div class='add'>+  {0xabb3, {1|F|U, {0x13e3}}},</div><div class='add'>+  {0xabb4, {1|F|U, {0x13e4}}},</div><div class='add'>+  {0xabb5, {1|F|U, {0x13e5}}},</div><div class='add'>+  {0xabb6, {1|F|U, {0x13e6}}},</div><div class='add'>+  {0xabb7, {1|F|U, {0x13e7}}},</div><div class='add'>+  {0xabb8, {1|F|U, {0x13e8}}},</div><div class='add'>+  {0xabb9, {1|F|U, {0x13e9}}},</div><div class='add'>+  {0xabba, {1|F|U, {0x13ea}}},</div><div class='add'>+  {0xabbb, {1|F|U, {0x13eb}}},</div><div class='add'>+  {0xabbc, {1|F|U, {0x13ec}}},</div><div class='add'>+  {0xabbd, {1|F|U, {0x13ed}}},</div><div class='add'>+  {0xabbe, {1|F|U, {0x13ee}}},</div><div class='add'>+  {0xabbf, {1|F|U, {0x13ef}}},</div><div class='add'>+  {0xfb00, {2|F|ST|SU|I(366), {0x0066, 0x0066}}},</div><div class='add'>+  {0xfb01, {2|F|ST|SU|I(370), {0x0066, 0x0069}}},</div><div class='add'>+  {0xfb02, {2|F|ST|SU|I(374), {0x0066, 0x006c}}},</div><div class='add'>+  {0xfb03, {3|F|ST|SU|I(378), {0x0066, 0x0066, 0x0069}}},</div><div class='add'>+  {0xfb04, {3|F|ST|SU|I(384), {0x0066, 0x0066, 0x006c}}},</div><div class='add'>+  {0xfb05, {2|F|ST|SU|I(390), {0x0073, 0x0074}}},</div><div class='add'>+  {0xfb06, {2|F|ST|SU|I(394), {0x0073, 0x0074}}},</div><div class='add'>+  {0xfb13, {2|F|ST|SU|I(398), {0x0574, 0x0576}}},</div><div class='add'>+  {0xfb14, {2|F|ST|SU|I(402), {0x0574, 0x0565}}},</div><div class='add'>+  {0xfb15, {2|F|ST|SU|I(406), {0x0574, 0x056b}}},</div><div class='add'>+  {0xfb16, {2|F|ST|SU|I(410), {0x057e, 0x0576}}},</div><div class='add'>+  {0xfb17, {2|F|ST|SU|I(414), {0x0574, 0x056d}}},</div><div class='add'>+  {0xff21, {1|F|D, {0xff41}}},</div><div class='add'>+  {0xff22, {1|F|D, {0xff42}}},</div><div class='add'>+  {0xff23, {1|F|D, {0xff43}}},</div><div class='add'>+  {0xff24, {1|F|D, {0xff44}}},</div><div class='add'>+  {0xff25, {1|F|D, {0xff45}}},</div><div class='add'>+  {0xff26, {1|F|D, {0xff46}}},</div><div class='add'>+  {0xff27, {1|F|D, {0xff47}}},</div><div class='add'>+  {0xff28, {1|F|D, {0xff48}}},</div><div class='add'>+  {0xff29, {1|F|D, {0xff49}}},</div><div class='add'>+  {0xff2a, {1|F|D, {0xff4a}}},</div><div class='add'>+  {0xff2b, {1|F|D, {0xff4b}}},</div><div class='add'>+  {0xff2c, {1|F|D, {0xff4c}}},</div><div class='add'>+  {0xff2d, {1|F|D, {0xff4d}}},</div><div class='add'>+  {0xff2e, {1|F|D, {0xff4e}}},</div><div class='add'>+  {0xff2f, {1|F|D, {0xff4f}}},</div><div class='add'>+  {0xff30, {1|F|D, {0xff50}}},</div><div class='add'>+  {0xff31, {1|F|D, {0xff51}}},</div><div class='add'>+  {0xff32, {1|F|D, {0xff52}}},</div><div class='add'>+  {0xff33, {1|F|D, {0xff53}}},</div><div class='add'>+  {0xff34, {1|F|D, {0xff54}}},</div><div class='add'>+  {0xff35, {1|F|D, {0xff55}}},</div><div class='add'>+  {0xff36, {1|F|D, {0xff56}}},</div><div class='add'>+  {0xff37, {1|F|D, {0xff57}}},</div><div class='add'>+  {0xff38, {1|F|D, {0xff58}}},</div><div class='add'>+  {0xff39, {1|F|D, {0xff59}}},</div><div class='add'>+  {0xff3a, {1|F|D, {0xff5a}}},</div><div class='add'>+  {0x10400, {1|F|D, {0x10428}}},</div><div class='add'>+  {0x10401, {1|F|D, {0x10429}}},</div><div class='add'>+  {0x10402, {1|F|D, {0x1042a}}},</div><div class='add'>+  {0x10403, {1|F|D, {0x1042b}}},</div><div class='add'>+  {0x10404, {1|F|D, {0x1042c}}},</div><div class='add'>+  {0x10405, {1|F|D, {0x1042d}}},</div><div class='add'>+  {0x10406, {1|F|D, {0x1042e}}},</div><div class='add'>+  {0x10407, {1|F|D, {0x1042f}}},</div><div class='add'>+  {0x10408, {1|F|D, {0x10430}}},</div><div class='add'>+  {0x10409, {1|F|D, {0x10431}}},</div><div class='add'>+  {0x1040a, {1|F|D, {0x10432}}},</div><div class='add'>+  {0x1040b, {1|F|D, {0x10433}}},</div><div class='add'>+  {0x1040c, {1|F|D, {0x10434}}},</div><div class='add'>+  {0x1040d, {1|F|D, {0x10435}}},</div><div class='add'>+  {0x1040e, {1|F|D, {0x10436}}},</div><div class='add'>+  {0x1040f, {1|F|D, {0x10437}}},</div><div class='add'>+  {0x10410, {1|F|D, {0x10438}}},</div><div class='add'>+  {0x10411, {1|F|D, {0x10439}}},</div><div class='add'>+  {0x10412, {1|F|D, {0x1043a}}},</div><div class='add'>+  {0x10413, {1|F|D, {0x1043b}}},</div><div class='add'>+  {0x10414, {1|F|D, {0x1043c}}},</div><div class='add'>+  {0x10415, {1|F|D, {0x1043d}}},</div><div class='add'>+  {0x10416, {1|F|D, {0x1043e}}},</div><div class='add'>+  {0x10417, {1|F|D, {0x1043f}}},</div><div class='add'>+  {0x10418, {1|F|D, {0x10440}}},</div><div class='add'>+  {0x10419, {1|F|D, {0x10441}}},</div><div class='add'>+  {0x1041a, {1|F|D, {0x10442}}},</div><div class='add'>+  {0x1041b, {1|F|D, {0x10443}}},</div><div class='add'>+  {0x1041c, {1|F|D, {0x10444}}},</div><div class='add'>+  {0x1041d, {1|F|D, {0x10445}}},</div><div class='add'>+  {0x1041e, {1|F|D, {0x10446}}},</div><div class='add'>+  {0x1041f, {1|F|D, {0x10447}}},</div><div class='add'>+  {0x10420, {1|F|D, {0x10448}}},</div><div class='add'>+  {0x10421, {1|F|D, {0x10449}}},</div><div class='add'>+  {0x10422, {1|F|D, {0x1044a}}},</div><div class='add'>+  {0x10423, {1|F|D, {0x1044b}}},</div><div class='add'>+  {0x10424, {1|F|D, {0x1044c}}},</div><div class='add'>+  {0x10425, {1|F|D, {0x1044d}}},</div><div class='add'>+  {0x10426, {1|F|D, {0x1044e}}},</div><div class='add'>+  {0x10427, {1|F|D, {0x1044f}}},</div><div class='add'>+  {0x104b0, {1|F|D, {0x104d8}}},</div><div class='add'>+  {0x104b1, {1|F|D, {0x104d9}}},</div><div class='add'>+  {0x104b2, {1|F|D, {0x104da}}},</div><div class='add'>+  {0x104b3, {1|F|D, {0x104db}}},</div><div class='add'>+  {0x104b4, {1|F|D, {0x104dc}}},</div><div class='add'>+  {0x104b5, {1|F|D, {0x104dd}}},</div><div class='add'>+  {0x104b6, {1|F|D, {0x104de}}},</div><div class='add'>+  {0x104b7, {1|F|D, {0x104df}}},</div><div class='add'>+  {0x104b8, {1|F|D, {0x104e0}}},</div><div class='add'>+  {0x104b9, {1|F|D, {0x104e1}}},</div><div class='add'>+  {0x104ba, {1|F|D, {0x104e2}}},</div><div class='add'>+  {0x104bb, {1|F|D, {0x104e3}}},</div><div class='add'>+  {0x104bc, {1|F|D, {0x104e4}}},</div><div class='add'>+  {0x104bd, {1|F|D, {0x104e5}}},</div><div class='add'>+  {0x104be, {1|F|D, {0x104e6}}},</div><div class='add'>+  {0x104bf, {1|F|D, {0x104e7}}},</div><div class='add'>+  {0x104c0, {1|F|D, {0x104e8}}},</div><div class='add'>+  {0x104c1, {1|F|D, {0x104e9}}},</div><div class='add'>+  {0x104c2, {1|F|D, {0x104ea}}},</div><div class='add'>+  {0x104c3, {1|F|D, {0x104eb}}},</div><div class='add'>+  {0x104c4, {1|F|D, {0x104ec}}},</div><div class='add'>+  {0x104c5, {1|F|D, {0x104ed}}},</div><div class='add'>+  {0x104c6, {1|F|D, {0x104ee}}},</div><div class='add'>+  {0x104c7, {1|F|D, {0x104ef}}},</div><div class='add'>+  {0x104c8, {1|F|D, {0x104f0}}},</div><div class='add'>+  {0x104c9, {1|F|D, {0x104f1}}},</div><div class='add'>+  {0x104ca, {1|F|D, {0x104f2}}},</div><div class='add'>+  {0x104cb, {1|F|D, {0x104f3}}},</div><div class='add'>+  {0x104cc, {1|F|D, {0x104f4}}},</div><div class='add'>+  {0x104cd, {1|F|D, {0x104f5}}},</div><div class='add'>+  {0x104ce, {1|F|D, {0x104f6}}},</div><div class='add'>+  {0x104cf, {1|F|D, {0x104f7}}},</div><div class='add'>+  {0x104d0, {1|F|D, {0x104f8}}},</div><div class='add'>+  {0x104d1, {1|F|D, {0x104f9}}},</div><div class='add'>+  {0x104d2, {1|F|D, {0x104fa}}},</div><div class='add'>+  {0x104d3, {1|F|D, {0x104fb}}},</div><div class='add'>+  {0x10570, {1|F|D, {0x10597}}},</div><div class='add'>+  {0x10571, {1|F|D, {0x10598}}},</div><div class='add'>+  {0x10572, {1|F|D, {0x10599}}},</div><div class='add'>+  {0x10573, {1|F|D, {0x1059a}}},</div><div class='add'>+  {0x10574, {1|F|D, {0x1059b}}},</div><div class='add'>+  {0x10575, {1|F|D, {0x1059c}}},</div><div class='add'>+  {0x10576, {1|F|D, {0x1059d}}},</div><div class='add'>+  {0x10577, {1|F|D, {0x1059e}}},</div><div class='add'>+  {0x10578, {1|F|D, {0x1059f}}},</div><div class='add'>+  {0x10579, {1|F|D, {0x105a0}}},</div><div class='add'>+  {0x1057a, {1|F|D, {0x105a1}}},</div><div class='add'>+  {0x1057c, {1|F|D, {0x105a3}}},</div><div class='add'>+  {0x1057d, {1|F|D, {0x105a4}}},</div><div class='add'>+  {0x1057e, {1|F|D, {0x105a5}}},</div><div class='add'>+  {0x1057f, {1|F|D, {0x105a6}}},</div><div class='add'>+  {0x10580, {1|F|D, {0x105a7}}},</div><div class='add'>+  {0x10581, {1|F|D, {0x105a8}}},</div><div class='add'>+  {0x10582, {1|F|D, {0x105a9}}},</div><div class='add'>+  {0x10583, {1|F|D, {0x105aa}}},</div><div class='add'>+  {0x10584, {1|F|D, {0x105ab}}},</div><div class='add'>+  {0x10585, {1|F|D, {0x105ac}}},</div><div class='add'>+  {0x10586, {1|F|D, {0x105ad}}},</div><div class='add'>+  {0x10587, {1|F|D, {0x105ae}}},</div><div class='add'>+  {0x10588, {1|F|D, {0x105af}}},</div><div class='add'>+  {0x10589, {1|F|D, {0x105b0}}},</div><div class='add'>+  {0x1058a, {1|F|D, {0x105b1}}},</div><div class='add'>+  {0x1058c, {1|F|D, {0x105b3}}},</div><div class='add'>+  {0x1058d, {1|F|D, {0x105b4}}},</div><div class='add'>+  {0x1058e, {1|F|D, {0x105b5}}},</div><div class='add'>+  {0x1058f, {1|F|D, {0x105b6}}},</div><div class='add'>+  {0x10590, {1|F|D, {0x105b7}}},</div><div class='add'>+  {0x10591, {1|F|D, {0x105b8}}},</div><div class='add'>+  {0x10592, {1|F|D, {0x105b9}}},</div><div class='add'>+  {0x10594, {1|F|D, {0x105bb}}},</div><div class='add'>+  {0x10595, {1|F|D, {0x105bc}}},</div><div class='add'>+  {0x10c80, {1|F|D, {0x10cc0}}},</div><div class='add'>+  {0x10c81, {1|F|D, {0x10cc1}}},</div><div class='add'>+  {0x10c82, {1|F|D, {0x10cc2}}},</div><div class='add'>+  {0x10c83, {1|F|D, {0x10cc3}}},</div><div class='add'>+  {0x10c84, {1|F|D, {0x10cc4}}},</div><div class='add'>+  {0x10c85, {1|F|D, {0x10cc5}}},</div><div class='add'>+  {0x10c86, {1|F|D, {0x10cc6}}},</div><div class='add'>+  {0x10c87, {1|F|D, {0x10cc7}}},</div><div class='add'>+  {0x10c88, {1|F|D, {0x10cc8}}},</div><div class='add'>+  {0x10c89, {1|F|D, {0x10cc9}}},</div><div class='add'>+  {0x10c8a, {1|F|D, {0x10cca}}},</div><div class='add'>+  {0x10c8b, {1|F|D, {0x10ccb}}},</div><div class='add'>+  {0x10c8c, {1|F|D, {0x10ccc}}},</div><div class='add'>+  {0x10c8d, {1|F|D, {0x10ccd}}},</div><div class='add'>+  {0x10c8e, {1|F|D, {0x10cce}}},</div><div class='add'>+  {0x10c8f, {1|F|D, {0x10ccf}}},</div><div class='add'>+  {0x10c90, {1|F|D, {0x10cd0}}},</div><div class='add'>+  {0x10c91, {1|F|D, {0x10cd1}}},</div><div class='add'>+  {0x10c92, {1|F|D, {0x10cd2}}},</div><div class='add'>+  {0x10c93, {1|F|D, {0x10cd3}}},</div><div class='add'>+  {0x10c94, {1|F|D, {0x10cd4}}},</div><div class='add'>+  {0x10c95, {1|F|D, {0x10cd5}}},</div><div class='add'>+  {0x10c96, {1|F|D, {0x10cd6}}},</div><div class='add'>+  {0x10c97, {1|F|D, {0x10cd7}}},</div><div class='add'>+  {0x10c98, {1|F|D, {0x10cd8}}},</div><div class='add'>+  {0x10c99, {1|F|D, {0x10cd9}}},</div><div class='add'>+  {0x10c9a, {1|F|D, {0x10cda}}},</div><div class='add'>+  {0x10c9b, {1|F|D, {0x10cdb}}},</div><div class='add'>+  {0x10c9c, {1|F|D, {0x10cdc}}},</div><div class='add'>+  {0x10c9d, {1|F|D, {0x10cdd}}},</div><div class='add'>+  {0x10c9e, {1|F|D, {0x10cde}}},</div><div class='add'>+  {0x10c9f, {1|F|D, {0x10cdf}}},</div><div class='add'>+  {0x10ca0, {1|F|D, {0x10ce0}}},</div><div class='add'>+  {0x10ca1, {1|F|D, {0x10ce1}}},</div><div class='add'>+  {0x10ca2, {1|F|D, {0x10ce2}}},</div><div class='add'>+  {0x10ca3, {1|F|D, {0x10ce3}}},</div><div class='add'>+  {0x10ca4, {1|F|D, {0x10ce4}}},</div><div class='add'>+  {0x10ca5, {1|F|D, {0x10ce5}}},</div><div class='add'>+  {0x10ca6, {1|F|D, {0x10ce6}}},</div><div class='add'>+  {0x10ca7, {1|F|D, {0x10ce7}}},</div><div class='add'>+  {0x10ca8, {1|F|D, {0x10ce8}}},</div><div class='add'>+  {0x10ca9, {1|F|D, {0x10ce9}}},</div><div class='add'>+  {0x10caa, {1|F|D, {0x10cea}}},</div><div class='add'>+  {0x10cab, {1|F|D, {0x10ceb}}},</div><div class='add'>+  {0x10cac, {1|F|D, {0x10cec}}},</div><div class='add'>+  {0x10cad, {1|F|D, {0x10ced}}},</div><div class='add'>+  {0x10cae, {1|F|D, {0x10cee}}},</div><div class='add'>+  {0x10caf, {1|F|D, {0x10cef}}},</div><div class='add'>+  {0x10cb0, {1|F|D, {0x10cf0}}},</div><div class='add'>+  {0x10cb1, {1|F|D, {0x10cf1}}},</div><div class='add'>+  {0x10cb2, {1|F|D, {0x10cf2}}},</div><div class='add'>+  {0x118a0, {1|F|D, {0x118c0}}},</div><div class='add'>+  {0x118a1, {1|F|D, {0x118c1}}},</div><div class='add'>+  {0x118a2, {1|F|D, {0x118c2}}},</div><div class='add'>+  {0x118a3, {1|F|D, {0x118c3}}},</div><div class='add'>+  {0x118a4, {1|F|D, {0x118c4}}},</div><div class='add'>+  {0x118a5, {1|F|D, {0x118c5}}},</div><div class='add'>+  {0x118a6, {1|F|D, {0x118c6}}},</div><div class='add'>+  {0x118a7, {1|F|D, {0x118c7}}},</div><div class='add'>+  {0x118a8, {1|F|D, {0x118c8}}},</div><div class='add'>+  {0x118a9, {1|F|D, {0x118c9}}},</div><div class='add'>+  {0x118aa, {1|F|D, {0x118ca}}},</div><div class='add'>+  {0x118ab, {1|F|D, {0x118cb}}},</div><div class='add'>+  {0x118ac, {1|F|D, {0x118cc}}},</div><div class='add'>+  {0x118ad, {1|F|D, {0x118cd}}},</div><div class='add'>+  {0x118ae, {1|F|D, {0x118ce}}},</div><div class='add'>+  {0x118af, {1|F|D, {0x118cf}}},</div><div class='add'>+  {0x118b0, {1|F|D, {0x118d0}}},</div><div class='add'>+  {0x118b1, {1|F|D, {0x118d1}}},</div><div class='add'>+  {0x118b2, {1|F|D, {0x118d2}}},</div><div class='add'>+  {0x118b3, {1|F|D, {0x118d3}}},</div><div class='add'>+  {0x118b4, {1|F|D, {0x118d4}}},</div><div class='add'>+  {0x118b5, {1|F|D, {0x118d5}}},</div><div class='add'>+  {0x118b6, {1|F|D, {0x118d6}}},</div><div class='add'>+  {0x118b7, {1|F|D, {0x118d7}}},</div><div class='add'>+  {0x118b8, {1|F|D, {0x118d8}}},</div><div class='add'>+  {0x118b9, {1|F|D, {0x118d9}}},</div><div class='add'>+  {0x118ba, {1|F|D, {0x118da}}},</div><div class='add'>+  {0x118bb, {1|F|D, {0x118db}}},</div><div class='add'>+  {0x118bc, {1|F|D, {0x118dc}}},</div><div class='add'>+  {0x118bd, {1|F|D, {0x118dd}}},</div><div class='add'>+  {0x118be, {1|F|D, {0x118de}}},</div><div class='add'>+  {0x118bf, {1|F|D, {0x118df}}},</div><div class='add'>+  {0x16e40, {1|F|D, {0x16e60}}},</div><div class='add'>+  {0x16e41, {1|F|D, {0x16e61}}},</div><div class='add'>+  {0x16e42, {1|F|D, {0x16e62}}},</div><div class='add'>+  {0x16e43, {1|F|D, {0x16e63}}},</div><div class='add'>+  {0x16e44, {1|F|D, {0x16e64}}},</div><div class='add'>+  {0x16e45, {1|F|D, {0x16e65}}},</div><div class='add'>+  {0x16e46, {1|F|D, {0x16e66}}},</div><div class='add'>+  {0x16e47, {1|F|D, {0x16e67}}},</div><div class='add'>+  {0x16e48, {1|F|D, {0x16e68}}},</div><div class='add'>+  {0x16e49, {1|F|D, {0x16e69}}},</div><div class='add'>+  {0x16e4a, {1|F|D, {0x16e6a}}},</div><div class='add'>+  {0x16e4b, {1|F|D, {0x16e6b}}},</div><div class='add'>+  {0x16e4c, {1|F|D, {0x16e6c}}},</div><div class='add'>+  {0x16e4d, {1|F|D, {0x16e6d}}},</div><div class='add'>+  {0x16e4e, {1|F|D, {0x16e6e}}},</div><div class='add'>+  {0x16e4f, {1|F|D, {0x16e6f}}},</div><div class='add'>+  {0x16e50, {1|F|D, {0x16e70}}},</div><div class='add'>+  {0x16e51, {1|F|D, {0x16e71}}},</div><div class='add'>+  {0x16e52, {1|F|D, {0x16e72}}},</div><div class='add'>+  {0x16e53, {1|F|D, {0x16e73}}},</div><div class='add'>+  {0x16e54, {1|F|D, {0x16e74}}},</div><div class='add'>+  {0x16e55, {1|F|D, {0x16e75}}},</div><div class='add'>+  {0x16e56, {1|F|D, {0x16e76}}},</div><div class='add'>+  {0x16e57, {1|F|D, {0x16e77}}},</div><div class='add'>+  {0x16e58, {1|F|D, {0x16e78}}},</div><div class='add'>+  {0x16e59, {1|F|D, {0x16e79}}},</div><div class='add'>+  {0x16e5a, {1|F|D, {0x16e7a}}},</div><div class='add'>+  {0x16e5b, {1|F|D, {0x16e7b}}},</div><div class='add'>+  {0x16e5c, {1|F|D, {0x16e7c}}},</div><div class='add'>+  {0x16e5d, {1|F|D, {0x16e7d}}},</div><div class='add'>+  {0x16e5e, {1|F|D, {0x16e7e}}},</div><div class='add'>+  {0x16e5f, {1|F|D, {0x16e7f}}},</div><div class='add'>+  {0x1e900, {1|F|D, {0x1e922}}},</div><div class='add'>+  {0x1e901, {1|F|D, {0x1e923}}},</div><div class='add'>+  {0x1e902, {1|F|D, {0x1e924}}},</div><div class='add'>+  {0x1e903, {1|F|D, {0x1e925}}},</div><div class='add'>+  {0x1e904, {1|F|D, {0x1e926}}},</div><div class='add'>+  {0x1e905, {1|F|D, {0x1e927}}},</div><div class='add'>+  {0x1e906, {1|F|D, {0x1e928}}},</div><div class='add'>+  {0x1e907, {1|F|D, {0x1e929}}},</div><div class='add'>+  {0x1e908, {1|F|D, {0x1e92a}}},</div><div class='add'>+  {0x1e909, {1|F|D, {0x1e92b}}},</div><div class='add'>+  {0x1e90a, {1|F|D, {0x1e92c}}},</div><div class='add'>+  {0x1e90b, {1|F|D, {0x1e92d}}},</div><div class='add'>+  {0x1e90c, {1|F|D, {0x1e92e}}},</div><div class='add'>+  {0x1e90d, {1|F|D, {0x1e92f}}},</div><div class='add'>+  {0x1e90e, {1|F|D, {0x1e930}}},</div><div class='add'>+  {0x1e90f, {1|F|D, {0x1e931}}},</div><div class='add'>+  {0x1e910, {1|F|D, {0x1e932}}},</div><div class='add'>+  {0x1e911, {1|F|D, {0x1e933}}},</div><div class='add'>+  {0x1e912, {1|F|D, {0x1e934}}},</div><div class='add'>+  {0x1e913, {1|F|D, {0x1e935}}},</div><div class='add'>+  {0x1e914, {1|F|D, {0x1e936}}},</div><div class='add'>+  {0x1e915, {1|F|D, {0x1e937}}},</div><div class='add'>+  {0x1e916, {1|F|D, {0x1e938}}},</div><div class='add'>+  {0x1e917, {1|F|D, {0x1e939}}},</div><div class='add'>+  {0x1e918, {1|F|D, {0x1e93a}}},</div><div class='add'>+  {0x1e919, {1|F|D, {0x1e93b}}},</div><div class='add'>+  {0x1e91a, {1|F|D, {0x1e93c}}},</div><div class='add'>+  {0x1e91b, {1|F|D, {0x1e93d}}},</div><div class='add'>+  {0x1e91c, {1|F|D, {0x1e93e}}},</div><div class='add'>+  {0x1e91d, {1|F|D, {0x1e93f}}},</div><div class='add'>+  {0x1e91e, {1|F|D, {0x1e940}}},</div><div class='add'>+  {0x1e91f, {1|F|D, {0x1e941}}},</div><div class='add'>+  {0x1e920, {1|F|D, {0x1e942}}},</div><div class='add'>+  {0x1e921, {1|F|D, {0x1e943}}},</div><div class='add'>+#define CaseFold_Locale (*(CaseFold_11_Type (*)[2])(CaseFold_11_Table+1528))</div><div class='add'>+  {0x0049, {1|F|D, {0x0069}}},</div><div class='add'>+  {0x0130, {2|F|D, {0x0069, 0x0307}}},</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* ANSI-C code produced by gperf version 3.1 */</div><div class='add'>+/* Command-line: gperf -7 -k1,2,3 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseFold_11_hash -N onigenc_unicode_CaseFold_11_lookup -n  */</div><div class='add'>+</div><div class='add'>+/* maximum key range = 3080, duplicates = 0 */</div><div class='add'>+</div><div class='add'>+#ifdef __GNUC__</div><div class='add'>+__inline</div><div class='add'>+#else</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+inline</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+/*ARGSUSED*/</div><div class='add'>+static unsigned int</div><div class='add'>+onigenc_unicode_CaseFold_11_hash(const OnigCodePoint code)</div><div class='add'>+{</div><div class='add'>+  static const unsigned short asso_values[] =</div><div class='add'>+    {</div><div class='add'>+         1, 3085,    2,   20,    3,  307,  200,    8,   31,  159,</div><div class='add'>+         2,  253,   33,  967, 3085, 3085, 3085, 3085, 3085, 3085,</div><div class='add'>+      3085, 3085, 3085, 3085, 3085, 3085, 3085,   30, 3085, 3085,</div><div class='add'>+      3085, 3085, 3085, 3085, 3085,  352, 3085, 3085, 3085, 3085,</div><div class='add'>+      3085,   93, 3085, 3085, 3085, 3085, 3085, 3085, 3085, 3085,</div><div class='add'>+      3085,  407, 3085, 3085, 3085, 3085, 3085, 3085, 3085,  201,</div><div class='add'>+      3085, 3085,   14,   13,  373,    1, 3085, 3085,  503,   19,</div><div class='add'>+      3085, 3085, 3085, 3085, 3085,  325, 3085, 3085,  290, 1064,</div><div class='add'>+       484,   28, 1906,  447,  272,  414, 2002,   79,  905,    5,</div><div class='add'>+        11,   22, 2024,  623,  761,  617, 1893,   45, 1874,  113,</div><div class='add'>+      1856,  255, 1823,   96, 1463,   62, 1841,  130, 1798,  331,</div><div class='add'>+      1771,  238, 1977,  147, 1387,  464, 1691,  187, 1639,  181,</div><div class='add'>+       366,  580, 1331,  508, 1287,  547, 1583,  541,  400,  783,</div><div class='add'>+      1944,  657, 1850,  932, 1785,  858, 1645,  681, 1412,  722,</div><div class='add'>+      1622,  972, 1306,  807, 1942, 1282,  283, 1218, 1557, 1055,</div><div class='add'>+      1406, 1258, 1401, 1168, 1327,  864,  893, 1123, 1714, 1195,</div><div class='add'>+      1885, 1083, 2016, 1232,  823,  678, 1420, 1017,  155, 1261,</div><div class='add'>+        86, 1351,  794, 1929,   51, 1525,   50,  221,    4, 1383,</div><div class='add'>+       196,  325,    1, 1562,  102, 1441,    3, 1356,  226, 1304,</div><div class='add'>+       271, 1516,   68, 1752,   37, 1469,   51, 1920,  143, 2059,</div><div class='add'>+       198, 2095,  370, 2069,  137,  718,  407, 1926,  136</div><div class='add'>+    };</div><div class='add'>+  return asso_values[bits_of(code, 2)+81] + asso_values[bits_of(code, 1)+2] + asso_values[bits_of(code, 0)];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const CodePointList3 *</div><div class='add'>+onigenc_unicode_CaseFold_11_lookup(const OnigCodePoint code)</div><div class='add'>+{</div><div class='add'>+  enum</div><div class='add'>+    {</div><div class='add'>+      MIN_CODE_VALUE = 0x41,</div><div class='add'>+      MAX_CODE_VALUE = 0x1e921,</div><div class='add'>+      TOTAL_KEYWORDS = 1530,</div><div class='add'>+      MIN_WORD_LENGTH = 3,</div><div class='add'>+      MAX_WORD_LENGTH = 3,</div><div class='add'>+      MIN_HASH_VALUE = 5,</div><div class='add'>+      MAX_HASH_VALUE = 3084</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+  static const short wordlist[] =</div><div class='add'>+    {</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x1fe9*/ 850,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f88*/ 775,</div><div class='add'>+      /*0x0408*/ 305,</div><div class='add'>+      /*0x0108*/ 61,</div><div class='add'>+      /*0x10408*/ 1276,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xab88*/ 1174,</div><div class='add'>+      /*0x1f89*/ 776,</div><div class='add'>+      /*0x0409*/ 306,</div><div class='add'>+      /*0x2c69*/ 964,</div><div class='add'>+      /*0x10409*/ 1277,</div><div class='add'>+      /*0x2c08*/ 919,</div><div class='add'>+      /*0xab89*/ 1175,</div><div class='add'>+      /*0x1e88*/ 653,</div><div class='add'>+      /*0x1e08*/ 589,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2c09*/ 920,</div><div class='add'>+      /*0x1f8a*/ 777,</div><div class='add'>+      /*0x040a*/ 307,</div><div class='add'>+      /*0x010a*/ 62,</div><div class='add'>+      /*0x1040a*/ 1278,</div><div class='add'>+      /*0x2c88*/ 978,</div><div class='add'>+      /*0xab8a*/ 1176,</div><div class='add'>+      /*0x1f80*/ 767,</div><div class='add'>+      /*0x0400*/ 297,</div><div class='add'>+      /*0x0100*/ 57,</div><div class='add'>+      /*0x10400*/ 1268,</div><div class='add'>+      /*0x2c0a*/ 921,</div><div class='add'>+      /*0xab80*/ 1166,</div><div class='add'>+      /*0x1e8a*/ 654,</div><div class='add'>+      /*0x1e0a*/ 590,</div><div class='add'>+      /*0x10c88*/ 1387,</div><div class='add'>+      /*0x0508*/ 425,</div><div class='add'>+      /*0x2c00*/ 911,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e80*/ 649,</div><div class='add'>+      /*0x1e00*/ 585,</div><div class='add'>+      /*0x10c89*/ 1388,</div><div class='add'>+      /*0x2c8a*/ 979,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f90*/ 783,</div><div class='add'>+      /*0x0410*/ 313,</div><div class='add'>+      /*0x0110*/ 65,</div><div class='add'>+      /*0x10410*/ 1284,</div><div class='add'>+      /*0x2c80*/ 974,</div><div class='add'>+      /*0xab90*/ 1182,</div><div class='add'>+      /*0x1ff3*/ 855,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10c8a*/ 1389,</div><div class='add'>+      /*0x050a*/ 426,</div><div class='add'>+      /*0x2c10*/ 927,</div><div class='add'>+      /*0xa780*/ 1106,</div><div class='add'>+      /*0x1e90*/ 657,</div><div class='add'>+      /*0x1e10*/ 593,</div><div class='add'>+      /*0x10c80*/ 1379,</div><div class='add'>+      /*0x0500*/ 421,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f98*/ 791,</div><div class='add'>+      /*0x0418*/ 321,</div><div class='add'>+      /*0x0118*/ 69,</div><div class='add'>+      /*0x10418*/ 1292,</div><div class='add'>+      /*0x2c90*/ 982,</div><div class='add'>+      /*0xab98*/ 1190,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00df*/ 56,</div><div class='add'>+      /*0x00dd*/ 54,</div><div class='add'>+      /*0x10571*/ 1345,</div><div class='add'>+      /*0x2c18*/ 935,</div><div class='add'>+      /*0xa790*/ 1112,</div><div class='add'>+      /*0x1e98*/ 662,</div><div class='add'>+      /*0x1e18*/ 597,</div><div class='add'>+      /*0x10c90*/ 1395,</div><div class='add'>+      /*0x0510*/ 429,</div><div class='add'>+      /*0x2c6f*/ 968,</div><div class='add'>+      /*0x1f86*/ 773,</div><div class='add'>+      /*0x0406*/ 303,</div><div class='add'>+      /*0x0106*/ 60,</div><div class='add'>+      /*0x10406*/ 1274,</div><div class='add'>+      /*0x2c98*/ 986,</div><div class='add'>+      /*0xab86*/ 1172,</div><div class='add'>+      /*0x10573*/ 1347,</div><div class='add'>+      /*0x1fd9*/ 841,</div><div class='add'>+      /*0x0059*/ 23,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c06*/ 917,</div><div class='add'>+      /*0xa798*/ 1115,</div><div class='add'>+      /*0x1e86*/ 652,</div><div class='add'>+      /*0x1e06*/ 588,</div><div class='add'>+      /*0x10c98*/ 1403,</div><div class='add'>+      /*0x0518*/ 433,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f96*/ 789,</div><div class='add'>+      /*0x0416*/ 319,</div><div class='add'>+      /*0x0116*/ 68,</div><div class='add'>+      /*0x10416*/ 1290,</div><div class='add'>+      /*0x2c86*/ 977,</div><div class='add'>+      /*0xab96*/ 1188,</div><div class='add'>+      /*0x1fe7*/ 848,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x00d9*/ 50,</div><div class='add'>+      /*0x2c16*/ 933,</div><div class='add'>+      /*0xa786*/ 1109,</div><div class='add'>+      /*0x1e96*/ 660,</div><div class='add'>+      /*0x1e16*/ 596,</div><div class='add'>+      /*0x10c86*/ 1385,</div><div class='add'>+      /*0x0506*/ 424,</div><div class='add'>+      /*0x2c67*/ 963,</div><div class='add'>+      /*0x1f92*/ 785,</div><div class='add'>+      /*0x0412*/ 315,</div><div class='add'>+      /*0x0112*/ 66,</div><div class='add'>+      /*0x10412*/ 1286,</div><div class='add'>+      /*0x2c96*/ 985,</div><div class='add'>+      /*0xab92*/ 1184,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x2c12*/ 929,</div><div class='add'>+      /*0xa796*/ 1114,</div><div class='add'>+      /*0x1e92*/ 658,</div><div class='add'>+      /*0x1e12*/ 594,</div><div class='add'>+      /*0x10c96*/ 1401,</div><div class='add'>+      /*0x0516*/ 432,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f9a*/ 793,</div><div class='add'>+      /*0x041a*/ 323,</div><div class='add'>+      /*0x011a*/ 70,</div><div class='add'>+      /*0x1041a*/ 1294,</div><div class='add'>+      /*0x2c92*/ 983,</div><div class='add'>+      /*0xab9a*/ 1192,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1ffb*/ 862,</div><div class='add'>+      /*0x017f*/ 120,</div><div class='add'>+      /*0x017b*/ 118,</div><div class='add'>+      /*0x2c1a*/ 937,</div><div class='add'>+      /*0xa792*/ 1113,</div><div class='add'>+      /*0x1e9a*/ 664,</div><div class='add'>+      /*0x1e1a*/ 598,</div><div class='add'>+      /*0x10c92*/ 1397,</div><div class='add'>+      /*0x0512*/ 430,</div><div class='add'>+      /*0x2c7f*/ 973,</div><div class='add'>+      /*0x1fa0*/ 799,</div><div class='add'>+      /*0x0420*/ 329,</div><div class='add'>+      /*0x0120*/ 73,</div><div class='add'>+      /*0x10420*/ 1300,</div><div class='add'>+      /*0x2c9a*/ 987,</div><div class='add'>+      /*0xaba0*/ 1198,</div><div class='add'>+      /*0x2c75*/ 971,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fd7*/ 839,</div><div class='add'>+      /*0x0057*/ 21,</div><div class='add'>+      /*0x2c20*/ 943,</div><div class='add'>+      /*0xa79a*/ 1116,</div><div class='add'>+      /*0x1ea0*/ 667,</div><div class='add'>+      /*0x1e20*/ 601,</div><div class='add'>+      /*0x10c9a*/ 1405,</div><div class='add'>+      /*0x051a*/ 434,</div><div class='add'>+      /*0x0388*/ 235,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x037f*/ 233,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2ca0*/ 990,</div><div class='add'>+      /*0x0389*/ 236,</div><div class='add'>+      /*0x1057f*/ 1358,</div><div class='add'>+      /*0xa7f5*/ 1149,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xa7a0*/ 1119,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10575*/ 1349,</div><div class='add'>+      /*0x10ca0*/ 1411,</div><div class='add'>+      /*0x0520*/ 437,</div><div class='add'>+      /*0x038a*/ 237,</div><div class='add'>+      /*0x1fa6*/ 805,</div><div class='add'>+      /*0x0426*/ 335,</div><div class='add'>+      /*0x0126*/ 76,</div><div class='add'>+      /*0x10426*/ 1306,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xaba6*/ 1204,</div><div class='add'>+      /*0x1fa4*/ 803,</div><div class='add'>+      /*0x0424*/ 333,</div><div class='add'>+      /*0x0124*/ 75,</div><div class='add'>+      /*0x10424*/ 1304,</div><div class='add'>+      /*0x2c26*/ 949,</div><div class='add'>+      /*0xaba4*/ 1202,</div><div class='add'>+      /*0x1ea6*/ 670,</div><div class='add'>+      /*0x1e26*/ 604,</div><div class='add'>+      /*0x03f1*/ 288,</div><div class='add'>+      /*0x1fe3*/ 845,</div><div class='add'>+      /*0x2c24*/ 947,</div><div class='add'>+      /*0x1ff7*/ 858,</div><div class='add'>+      /*0x1ea4*/ 669,</div><div class='add'>+      /*0x1e24*/ 603,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2ca6*/ 993,</div><div class='add'>+      /*0x0390*/ 241,</div><div class='add'>+      /*0x0208*/ 194,</div><div class='add'>+      /*0x1c88*/ 538,</div><div class='add'>+      /*0x2c63*/ 961,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2ca4*/ 992,</div><div class='add'>+      /*0xa7a6*/ 1122,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10ca6*/ 1417,</div><div class='add'>+      /*0x0526*/ 440,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7a4*/ 1121,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10ca4*/ 1415,</div><div class='add'>+      /*0x0524*/ 439,</div><div class='add'>+      /*0x0398*/ 249,</div><div class='add'>+      /*0x020a*/ 195,</div><div class='add'>+      /*0x0460*/ 345,</div><div class='add'>+      /*0x0160*/ 104,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1feb*/ 852,</div><div class='add'>+      /*0x0200*/ 190,</div><div class='add'>+      /*0x1c80*/ 530,</div><div class='add'>+      /*0x13fb*/ 527,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c60*/ 959,</div><div class='add'>+      /*0x10577*/ 1351,</div><div class='add'>+      /*0x1ee0*/ 699,</div><div class='add'>+      /*0x1e60*/ 633,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c6b*/ 965,</div><div class='add'>+      /*0x0386*/ 234,</div><div class='add'>+      /*0x1f9e*/ 797,</div><div class='add'>+      /*0x041e*/ 327,</div><div class='add'>+      /*0x011e*/ 72,</div><div class='add'>+      /*0x1041e*/ 1298,</div><div class='add'>+      /*0x2ce0*/ 1022,</div><div class='add'>+      /*0xab9e*/ 1196,</div><div class='add'>+      /*0x0210*/ 198,</div><div class='add'>+      /*0x1c90*/ 539,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2ceb*/ 1024,</div><div class='add'>+      /*0x2c1e*/ 941,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e9e*/ 666,</div><div class='add'>+      /*0x1e1e*/ 600,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0396*/ 247,</div><div class='add'>+      /*0x1f94*/ 787,</div><div class='add'>+      /*0x0414*/ 317,</div><div class='add'>+      /*0x0114*/ 67,</div><div class='add'>+      /*0x10414*/ 1288,</div><div class='add'>+      /*0x2c9e*/ 989,</div><div class='add'>+      /*0xab94*/ 1186,</div><div class='add'>+      /*0x0218*/ 202,</div><div class='add'>+      /*0x1c98*/ 547,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2c14*/ 931,</div><div class='add'>+      /*0xa79e*/ 1118,</div><div class='add'>+      /*0x1e94*/ 659,</div><div class='add'>+      /*0x1e14*/ 595,</div><div class='add'>+      /*0x10c9e*/ 1409,</div><div class='add'>+      /*0x051e*/ 436,</div><div class='add'>+      /*0x0392*/ 243,</div><div class='add'>+      /*0x1f83*/ 770,</div><div class='add'>+      /*0x0403*/ 300,</div><div class='add'>+      /*0x048a*/ 362,</div><div class='add'>+      /*0x10403*/ 1271,</div><div class='add'>+      /*0x2c94*/ 984,</div><div class='add'>+      /*0xab83*/ 1169,</div><div class='add'>+      /*0x0206*/ 193,</div><div class='add'>+      /*0x1c86*/ 536,</div><div class='add'>+      /*0x0480*/ 361,</div><div class='add'>+      /*0x2c6d*/ 966,</div><div class='add'>+      /*0x2c03*/ 914,</div><div class='add'>+      /*0x1e908*/ 1502,</div><div class='add'>+      /*0x0041*/ 0,</div><div class='add'>+      /*0x0141*/ 88,</div><div class='add'>+      /*0x10c94*/ 1399,</div><div class='add'>+      /*0x0514*/ 431,</div><div class='add'>+      /*0x039a*/ 251,</div><div class='add'>+      /*0x1e909*/ 1503,</div><div class='add'>+      /*0x2183*/ 884,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2ced*/ 1025,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03ff*/ 296,</div><div class='add'>+      /*0x0216*/ 201,</div><div class='add'>+      /*0x1c96*/ 545,</div><div class='add'>+      /*0x0490*/ 365,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1e90a*/ 1504,</div><div class='add'>+      /*0x03f5*/ 290,</div><div class='add'>+      /*0x00c1*/ 27,</div><div class='add'>+      /*0x10c83*/ 1382,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03a0*/ 257,</div><div class='add'>+      /*0x1e900*/ 1494,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x0212*/ 199,</div><div class='add'>+      /*0x1c92*/ 541,</div><div class='add'>+      /*0x0498*/ 369,</div><div class='add'>+      /*0x0541*/ 461,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0189*/ 126,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x1e910*/ 1510,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fe4*/ 846,</div><div class='add'>+      /*0x0464*/ 347,</div><div class='add'>+      /*0x0164*/ 106,</div><div class='add'>+      /*0x018a*/ 127,</div><div class='add'>+      /*0x021a*/ 203,</div><div class='add'>+      /*0x1c9a*/ 549,</div><div class='add'>+      /*0x1f9c*/ 795,</div><div class='add'>+      /*0x041c*/ 325,</div><div class='add'>+      /*0x011c*/ 71,</div><div class='add'>+      /*0x1041c*/ 1296,</div><div class='add'>+      /*0x2c64*/ 962,</div><div class='add'>+      /*0xab9c*/ 1194,</div><div class='add'>+      /*0x1ee4*/ 701,</div><div class='add'>+      /*0x1e64*/ 635,</div><div class='add'>+      /*0x03a6*/ 262,</div><div class='add'>+      /*0x1e918*/ 1518,</div><div class='add'>+      /*0x2c1c*/ 939,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01f1*/ 181,</div><div class='add'>+      /*0x1e1c*/ 599,</div><div class='add'>+      /*0x03a4*/ 260,</div><div class='add'>+      /*0x0220*/ 206,</div><div class='add'>+      /*0x1ca0*/ 555,</div><div class='add'>+      /*0x0496*/ 368,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0190*/ 131,</div><div class='add'>+      /*0x2c9c*/ 988,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x03f7*/ 291,</div><div class='add'>+      /*0x1e906*/ 1500,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa79c*/ 1117,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10c9c*/ 1407,</div><div class='add'>+      /*0x051c*/ 435,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0492*/ 366,</div><div class='add'>+      /*0x1fa7*/ 806,</div><div class='add'>+      /*0x0427*/ 336,</div><div class='add'>+      /*0x0198*/ 137,</div><div class='add'>+      /*0x10427*/ 1307,</div><div class='add'>+      /*0x1ff9*/ 860,</div><div class='add'>+      /*0xaba7*/ 1205,</div><div class='add'>+      /*0x0179*/ 117,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e916*/ 1516,</div><div class='add'>+      /*0x1f69*/ 760,</div><div class='add'>+      /*0x2c27*/ 950,</div><div class='add'>+      /*0x1f08*/ 715,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03e0*/ 279,</div><div class='add'>+      /*0x0226*/ 209,</div><div class='add'>+      /*0x1ca6*/ 561,</div><div class='add'>+      /*0x049a*/ 370,</div><div class='add'>+      /*0x1f09*/ 716,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0186*/ 124,</div><div class='add'>+      /*0x0224*/ 208,</div><div class='add'>+      /*0x1ca4*/ 559,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1e912*/ 1512,</div><div class='add'>+      /*0x01d9*/ 169,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f0a*/ 717,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x039e*/ 255,</div><div class='add'>+      /*0x10ca7*/ 1418,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x04a0*/ 373,</div><div class='add'>+      /*0x1faf*/ 814,</div><div class='add'>+      /*0x042f*/ 344,</div><div class='add'>+      /*0x0196*/ 135,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10579*/ 1353,</div><div class='add'>+      /*0xabaf*/ 1213,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1e91a*/ 1520,</div><div class='add'>+      /*0x017d*/ 119,</div><div class='add'>+      /*0x2c2f*/ 958,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xfb00*/ 1230,</div><div class='add'>+      /*0x0394*/ 245,</div><div class='add'>+      /*0x1f84*/ 771,</div><div class='add'>+      /*0x0404*/ 301,</div><div class='add'>+      /*0x0104*/ 59,</div><div class='add'>+      /*0x10404*/ 1272,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xab84*/ 1170,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f5f*/ 758,</div><div class='add'>+      /*0x1f5d*/ 757,</div><div class='add'>+      /*0x2c04*/ 915,</div><div class='add'>+      /*0x1e920*/ 1526,</div><div class='add'>+      /*0x1e84*/ 651,</div><div class='add'>+      /*0x1e04*/ 587,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x10caf*/ 1426,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x04a6*/ 376,</div><div class='add'>+      /*0x1f18*/ 723,</div><div class='add'>+      /*0x2c84*/ 976,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x021e*/ 205,</div><div class='add'>+      /*0x1c9e*/ 553,</div><div class='add'>+      /*0x04a4*/ 375,</div><div class='add'>+      /*0x1f6f*/ 766,</div><div class='add'>+      /*0x1057d*/ 1356,</div><div class='add'>+      /*0xa784*/ 1108,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10c84*/ 1383,</div><div class='add'>+      /*0x0504*/ 423,</div><div class='add'>+      /*0x1f82*/ 769,</div><div class='add'>+      /*0x0402*/ 299,</div><div class='add'>+      /*0x0102*/ 58,</div><div class='add'>+      /*0x10402*/ 1270,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xab82*/ 1168,</div><div class='add'>+      /*0x01a0*/ 141,</div><div class='add'>+      /*0x0214*/ 200,</div><div class='add'>+      /*0x1c94*/ 543,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c02*/ 913,</div><div class='add'>+      /*0x1f59*/ 755,</div><div class='add'>+      /*0x1e82*/ 650,</div><div class='add'>+      /*0x1e02*/ 586,</div><div class='add'>+      /*0x01d7*/ 168,</div><div class='add'>+      /*0x13f9*/ 525,</div><div class='add'>+      /*0xfb06*/ 1236,</div><div class='add'>+      /*0x1fa2*/ 801,</div><div class='add'>+      /*0x0422*/ 331,</div><div class='add'>+      /*0x0122*/ 74,</div><div class='add'>+      /*0x10422*/ 1302,</div><div class='add'>+      /*0x2c82*/ 975,</div><div class='add'>+      /*0xaba2*/ 1200,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1c83*/ 533,</div><div class='add'>+      /*0x04e0*/ 405,</div><div class='add'>+      /*0x2c22*/ 945,</div><div class='add'>+      /*0xa782*/ 1107,</div><div class='add'>+      /*0x1ea2*/ 668,</div><div class='add'>+      /*0x1e22*/ 602,</div><div class='add'>+      /*0x10c82*/ 1381,</div><div class='add'>+      /*0x0502*/ 422,</div><div class='add'>+      /*0xfb16*/ 1240,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0241*/ 220,</div><div class='add'>+      /*0x03e4*/ 281,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2ca2*/ 991,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01a6*/ 144,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x039c*/ 253,</div><div class='add'>+      /*0x049e*/ 372,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7a2*/ 1120,</div><div class='add'>+      /*0x01a4*/ 143,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10ca2*/ 1413,</div><div class='add'>+      /*0x0522*/ 438,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10a0*/ 484,</div><div class='add'>+      /*0x13fd*/ 529,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f1a*/ 725,</div><div class='add'>+      /*0x2165*/ 873,</div><div class='add'>+      /*0x01f7*/ 185,</div><div class='add'>+      /*0x2169*/ 877,</div><div class='add'>+      /*0x2161*/ 869,</div><div class='add'>+      /*0x0494*/ 367,</div><div class='add'>+      /*0x1faa*/ 809,</div><div class='add'>+      /*0x042a*/ 339,</div><div class='add'>+      /*0x012a*/ 78,</div><div class='add'>+      /*0xa660*/ 1043,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xabaa*/ 1208,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1e91e*/ 1524,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c2a*/ 953,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1eaa*/ 672,</div><div class='add'>+      /*0x1e2a*/ 606,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x03a7*/ 263,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x01e0*/ 172,</div><div class='add'>+      /*0x03f9*/ 292,</div><div class='add'>+      /*0x2caa*/ 995,</div><div class='add'>+      /*0x021c*/ 204,</div><div class='add'>+      /*0x1c9c*/ 551,</div><div class='add'>+      /*0x10a6*/ 490,</div><div class='add'>+      /*0x1e914*/ 1514,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x04c1*/ 390,</div><div class='add'>+      /*0xa7aa*/ 1124,</div><div class='add'>+      /*0x104c1*/ 1325,</div><div class='add'>+      /*0x10a4*/ 488,</div><div class='add'>+      /*0x10caa*/ 1421,</div><div class='add'>+      /*0x052a*/ 442,</div><div class='add'>+      /*0x1fae*/ 813,</div><div class='add'>+      /*0x042e*/ 343,</div><div class='add'>+      /*0x012e*/ 80,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xabae*/ 1212,</div><div class='add'>+      /*0x1fac*/ 811,</div><div class='add'>+      /*0x042c*/ 341,</div><div class='add'>+      /*0x012c*/ 79,</div><div class='add'>+      /*0x1e903*/ 1497,</div><div class='add'>+      /*0x2c2e*/ 957,</div><div class='add'>+      /*0xabac*/ 1210,</div><div class='add'>+      /*0x1eae*/ 674,</div><div class='add'>+      /*0x1e2e*/ 608,</div><div class='add'>+      /*0x118a0*/ 1430,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c2c*/ 955,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1eac*/ 673,</div><div class='add'>+      /*0x1e2c*/ 607,</div><div class='add'>+      /*0x0194*/ 134,</div><div class='add'>+      /*0x2cae*/ 997,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x03fd*/ 294,</div><div class='add'>+      /*0x1ca7*/ 562,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cac*/ 996,</div><div class='add'>+      /*0xa7ae*/ 1128,</div><div class='add'>+      /*0x216f*/ 883,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cae*/ 1425,</div><div class='add'>+      /*0x052e*/ 444,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7ac*/ 1126,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x04e4*/ 407,</div><div class='add'>+      /*0x10cac*/ 1423,</div><div class='add'>+      /*0x052c*/ 443,</div><div class='add'>+      /*0x1fa8*/ 807,</div><div class='add'>+      /*0x0428*/ 337,</div><div class='add'>+      /*0x0128*/ 77,</div><div class='add'>+      /*0x049c*/ 371,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xaba8*/ 1206,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x118a6*/ 1436,</div><div class='add'>+      /*0x2c28*/ 951,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1ea8*/ 671,</div><div class='add'>+      /*0x1e28*/ 605,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118a4*/ 1434,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f6b*/ 762,</div><div class='add'>+      /*0xff26*/ 1247,</div><div class='add'>+      /*0x1caf*/ 570,</div><div class='add'>+      /*0x2ca8*/ 994,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2167*/ 875,</div><div class='add'>+      /*0xff24*/ 1245,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24c1*/ 896,</div><div class='add'>+      /*0xa7a8*/ 1123,</div><div class='add'>+      /*0x1e91c*/ 1522,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10ca8*/ 1419,</div><div class='add'>+      /*0x0528*/ 441,</div><div class='add'>+      /*0x0204*/ 192,</div><div class='add'>+      /*0x1c84*/ 534,</div><div class='add'>+      /*0xa664*/ 1045,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f8e*/ 781,</div><div class='add'>+      /*0x040e*/ 311,</div><div class='add'>+      /*0x010e*/ 64,</div><div class='add'>+      /*0x1040e*/ 1282,</div><div class='add'>+      /*0xa77b*/ 1103,</div><div class='add'>+      /*0xab8e*/ 1180,</div><div class='add'>+      /*0x1f8c*/ 779,</div><div class='add'>+      /*0x040c*/ 309,</div><div class='add'>+      /*0x010c*/ 63,</div><div class='add'>+      /*0x1040c*/ 1280,</div><div class='add'>+      /*0x2c0e*/ 925,</div><div class='add'>+      /*0xab8c*/ 1178,</div><div class='add'>+      /*0x1e8e*/ 656,</div><div class='add'>+      /*0x1e0e*/ 592,</div><div class='add'>+      /*0x01e4*/ 174,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c0c*/ 923,</div><div class='add'>+      /*0x10c1*/ 517,</div><div class='add'>+      /*0x1e8c*/ 655,</div><div class='add'>+      /*0x1e0c*/ 591,</div><div class='add'>+      /*0x019c*/ 138,</div><div class='add'>+      /*0x2c8e*/ 981,</div><div class='add'>+      /*0xfb14*/ 1238,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1f6d*/ 764,</div><div class='add'>+      /*0x2c8c*/ 980,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0202*/ 191,</div><div class='add'>+      /*0x1c82*/ 532,</div><div class='add'>+      /*0x10c8e*/ 1393,</div><div class='add'>+      /*0x050e*/ 428,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x10c8c*/ 1391,</div><div class='add'>+      /*0x050c*/ 427,</div><div class='add'>+      /*0xfb03*/ 1233,</div><div class='add'>+      /*0x1fb2*/ 815,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0132*/ 81,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xabb2*/ 1216,</div><div class='add'>+      /*0x0222*/ 207,</div><div class='add'>+      /*0x1ca2*/ 557,</div><div class='add'>+      /*0xa726*/ 1066,</div><div class='add'>+      /*0x03aa*/ 266,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1eb2*/ 676,</div><div class='add'>+      /*0x1e32*/ 610,</div><div class='add'>+      /*0xa724*/ 1065,</div><div class='add'>+      /*0x01a7*/ 145,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x2cb2*/ 999,</div><div class='add'>+      /*0x0054*/ 18,</div><div class='add'>+      /*0x0154*/ 98,</div><div class='add'>+      /*0x1fb8*/ 820,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2126*/ 864,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7b2*/ 1131,</div><div class='add'>+      /*0xabb8*/ 1222,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cb2*/ 1429,</div><div class='add'>+      /*0x0532*/ 446,</div><div class='add'>+      /*0x1ed4*/ 693,</div><div class='add'>+      /*0x1e54*/ 627,</div><div class='add'>+      /*0x1e904*/ 1498,</div><div class='add'>+      /*0x1eb8*/ 679,</div><div class='add'>+      /*0x1e38*/ 613,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x00d4*/ 46,</div><div class='add'>+      /*0x2163*/ 871,</div><div class='add'>+      /*0x2cd4*/ 1016,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2cb8*/ 1002,</div><div class='add'>+      /*0x1f1c*/ 727,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa760*/ 1094,</div><div class='add'>+      /*0x01af*/ 149,</div><div class='add'>+      /*0x022a*/ 211,</div><div class='add'>+      /*0x1caa*/ 565,</div><div class='add'>+      /*0xa7b8*/ 1135,</div><div class='add'>+      /*0x0554*/ 480,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0538*/ 452,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x04a2*/ 374,</div><div class='add'>+      /*0x10a7*/ 491,</div><div class='add'>+      /*0x1ffc*/ 863,</div><div class='add'>+      /*0x047c*/ 359,</div><div class='add'>+      /*0x0184*/ 123,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fba*/ 822,</div><div class='add'>+      /*0x2160*/ 868,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e902*/ 1496,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xabba*/ 1224,</div><div class='add'>+      /*0x216b*/ 879,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1efc*/ 713,</div><div class='add'>+      /*0x1e7c*/ 647,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1eba*/ 680,</div><div class='add'>+      /*0x1e3a*/ 614,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x03a8*/ 264,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x022e*/ 213,</div><div class='add'>+      /*0x1cae*/ 569,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cba*/ 1003,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x022c*/ 212,</div><div class='add'>+      /*0x1cac*/ 567,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa7ba*/ 1136,</div><div class='add'>+      /*0x10af*/ 499,</div><div class='add'>+      /*0x1057c*/ 1355,</div><div class='add'>+      /*0x0182*/ 122,</div><div class='add'>+      /*0x053a*/ 454,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x04aa*/ 378,</div><div class='add'>+      /*0x1f8d*/ 780,</div><div class='add'>+      /*0x040d*/ 310,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1040d*/ 1281,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xab8d*/ 1179,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x01a2*/ 142,</div><div class='add'>+      /*0x2c0d*/ 924,</div><div class='add'>+      /*0x1f2f*/ 736,</div><div class='add'>+      /*0x216d*/ 881,</div><div class='add'>+      /*0x118a7*/ 1437,</div><div class='add'>+      /*0x038e*/ 239,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x0228*/ 210,</div><div class='add'>+      /*0x1ca8*/ 563,</div><div class='add'>+      /*0x038c*/ 238,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xff27*/ 1248,</div><div class='add'>+      /*0x0130*/ 1529,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xabb0*/ 1214,</div><div class='add'>+      /*0xa78d*/ 1111,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10c8d*/ 1392,</div><div class='add'>+      /*0x04ae*/ 380,</div><div class='add'>+      /*0x1fdb*/ 843,</div><div class='add'>+      /*0x1eb0*/ 675,</div><div class='add'>+      /*0x1e30*/ 609,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xfb04*/ 1234,</div><div class='add'>+      /*0x04ac*/ 379,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x2cb0*/ 998,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1fbe*/ 825,</div><div class='add'>+      /*0x118af*/ 1445,</div><div class='add'>+      /*0xa764*/ 1096,</div><div class='add'>+      /*0x13fc*/ 528,</div><div class='add'>+      /*0xa7b0*/ 1129,</div><div class='add'>+      /*0xabbe*/ 1228,</div><div class='add'>+      /*0x00db*/ 52,</div><div class='add'>+      /*0x10cb0*/ 1427,</div><div class='add'>+      /*0x10a2*/ 486,</div><div class='add'>+      /*0x020e*/ 197,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff2f*/ 1256,</div><div class='add'>+      /*0x1ebe*/ 682,</div><div class='add'>+      /*0x1e3e*/ 616,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x020c*/ 196,</div><div class='add'>+      /*0x1fd3*/ 837,</div><div class='add'>+      /*0x0053*/ 17,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2164*/ 872,</div><div class='add'>+      /*0x2cbe*/ 1005,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xfb02*/ 1232,</div><div class='add'>+      /*0x04a8*/ 377,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa7be*/ 1138,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x053e*/ 458,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x00d3*/ 45,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x01ae*/ 148,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x01ac*/ 147,</div><div class='add'>+      /*0xa779*/ 1102,</div><div class='add'>+      /*0x0553*/ 479,</div><div class='add'>+      /*0x0232*/ 215,</div><div class='add'>+      /*0x1cb2*/ 573,</div><div class='add'>+      /*0x1fb6*/ 818,</div><div class='add'>+      /*0x10aa*/ 494,</div><div class='add'>+      /*0x0136*/ 83,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xabb6*/ 1220,</div><div class='add'>+      /*0x1fca*/ 833,</div><div class='add'>+      /*0x004a*/ 8,</div><div class='add'>+      /*0x014a*/ 93,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x048e*/ 364,</div><div class='add'>+      /*0x1eb6*/ 678,</div><div class='add'>+      /*0x1e36*/ 612,</div><div class='add'>+      /*0x118a2*/ 1432,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x048c*/ 363,</div><div class='add'>+      /*0x1eca*/ 688,</div><div class='add'>+      /*0x1e4a*/ 622,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cb6*/ 1001,</div><div class='add'>+      /*0x1f2a*/ 731,</div><div class='add'>+      /*0x1cb8*/ 579,</div><div class='add'>+      /*0xff22*/ 1243,</div><div class='add'>+      /*0x00ca*/ 36,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cca*/ 1011,</div><div class='add'>+      /*0xa7b6*/ 1134,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x0536*/ 450,</div><div class='add'>+      /*0xa77d*/ 1104,</div><div class='add'>+      /*0x10ae*/ 498,</div><div class='add'>+      /*0x1fcb*/ 834,</div><div class='add'>+      /*0x004b*/ 9,</div><div class='add'>+      /*0x1e90e*/ 1508,</div><div class='add'>+      /*0x054a*/ 470,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10ac*/ 496,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1e90c*/ 1506,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1f87*/ 774,</div><div class='add'>+      /*0x0407*/ 304,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10407*/ 1275,</div><div class='add'>+      /*0x04b2*/ 382,</div><div class='add'>+      /*0xab87*/ 1173,</div><div class='add'>+      /*0x104b2*/ 1310,</div><div class='add'>+      /*0x00cb*/ 37,</div><div class='add'>+      /*0x1f2e*/ 735,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c07*/ 918,</div><div class='add'>+      /*0x118aa*/ 1440,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f2c*/ 733,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x023a*/ 216,</div><div class='add'>+      /*0x1cba*/ 581,</div><div class='add'>+      /*0x018e*/ 129,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x054b*/ 471,</div><div class='add'>+      /*0xff2a*/ 1251,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x04d4*/ 399,</div><div class='add'>+      /*0x10a8*/ 492,</div><div class='add'>+      /*0x1fb4*/ 817,</div><div class='add'>+      /*0x04b8*/ 385,</div><div class='add'>+      /*0x0134*/ 82,</div><div class='add'>+      /*0x104b8*/ 1316,</div><div class='add'>+      /*0x10c87*/ 1386,</div><div class='add'>+      /*0xabb4*/ 1218,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x03b0*/ 268,</div><div class='add'>+      /*0xab71*/ 1151,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1eb4*/ 677,</div><div class='add'>+      /*0x1e34*/ 611,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa722*/ 1064,</div><div class='add'>+      /*0x118ae*/ 1444,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f28*/ 729,</div><div class='add'>+      /*0x2cb4*/ 1000,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118ac*/ 1442,</div><div class='add'>+      /*0xab73*/ 1153,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xff2e*/ 1255,</div><div class='add'>+      /*0xa7b4*/ 1133,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x01b2*/ 151,</div><div class='add'>+      /*0x0534*/ 448,</div><div class='add'>+      /*0xff2c*/ 1253,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa654*/ 1037,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x04fc*/ 419,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fbc*/ 824,</div><div class='add'>+      /*0x10588*/ 1367,</div><div class='add'>+      /*0x04ba*/ 386,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104ba*/ 1318,</div><div class='add'>+      /*0xabbc*/ 1226,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10589*/ 1368,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0230*/ 214,</div><div class='add'>+      /*0x1cb0*/ 571,</div><div class='add'>+      /*0x1ebc*/ 681,</div><div class='add'>+      /*0x1e3c*/ 615,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01b8*/ 155,</div><div class='add'>+      /*0x118a8*/ 1438,</div><div class='add'>+      /*0x1f0e*/ 721,</div><div class='add'>+      /*0x1058a*/ 1369,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa72a*/ 1068,</div><div class='add'>+      /*0x2cbc*/ 1004,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f0c*/ 719,</div><div class='add'>+      /*0x10580*/ 1359,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff28*/ 1249,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7bc*/ 1137,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x053c*/ 456,</div><div class='add'>+      /*0x24b8*/ 887,</div><div class='add'>+      /*0x023e*/ 219,</div><div class='add'>+      /*0x1cbe*/ 583,</div><div class='add'>+      /*0x10b2*/ 502,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x212a*/ 865,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10590*/ 1374,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1fd6*/ 838,</div><div class='add'>+      /*0x0056*/ 20,</div><div class='add'>+      /*0x0156*/ 99,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x01fc*/ 188,</div><div class='add'>+      /*0xa72e*/ 1070,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1ed6*/ 694,</div><div class='add'>+      /*0x1e56*/ 628,</div><div class='add'>+      /*0xa72c*/ 1069,</div><div class='add'>+      /*0x10b8*/ 508,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x04b0*/ 381,</div><div class='add'>+      /*0x00d6*/ 48,</div><div class='add'>+      /*0x104b0*/ 1308,</div><div class='add'>+      /*0x2cd6*/ 1017,</div><div class='add'>+      /*0x1e90d*/ 1507,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xab7f*/ 1165,</div><div class='add'>+      /*0xab7b*/ 1161,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa7d6*/ 1147,</div><div class='add'>+      /*0x24ba*/ 889,</div><div class='add'>+      /*0x10586*/ 1365,</div><div class='add'>+      /*0xab75*/ 1155,</div><div class='add'>+      /*0x0556*/ 482,</div><div class='add'>+      /*0x1f54*/ 753,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f38*/ 737,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fc4*/ 828,</div><div class='add'>+      /*0x0044*/ 3,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1cb6*/ 577,</div><div class='add'>+      /*0x04be*/ 388,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104be*/ 1322,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x024a*/ 226,</div><div class='add'>+      /*0xa728*/ 1067,</div><div class='add'>+      /*0x118b2*/ 1448,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1ec4*/ 685,</div><div class='add'>+      /*0x1e44*/ 619,</div><div class='add'>+      /*0xa688*/ 1054,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x10ba*/ 510,</div><div class='add'>+      /*0x00c4*/ 30,</div><div class='add'>+      /*0xff32*/ 1259,</div><div class='add'>+      /*0x2cc4*/ 1008,</div><div class='add'>+      /*0x104d3*/ 1343,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x10592*/ 1376,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7c4*/ 1141,</div><div class='add'>+      /*0x0050*/ 14,</div><div class='add'>+      /*0x0150*/ 96,</div><div class='add'>+      /*0xa68a*/ 1055,</div><div class='add'>+      /*0x0544*/ 464,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118b8*/ 1454,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa680*/ 1050,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f3a*/ 739,</div><div class='add'>+      /*0x1ed0*/ 691,</div><div class='add'>+      /*0x1e50*/ 625,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xff38*/ 1265,</div><div class='add'>+      /*0x01db*/ 170,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00d0*/ 42,</div><div class='add'>+      /*0xab77*/ 1157,</div><div class='add'>+      /*0x2cd0*/ 1014,</div><div class='add'>+      /*0x1c87*/ 537,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xa690*/ 1058,</div><div class='add'>+      /*0x04b6*/ 384,</div><div class='add'>+      /*0xa7d0*/ 1146,</div><div class='add'>+      /*0x104b6*/ 1314,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0550*/ 476,</div><div class='add'>+      /*0x16e5f*/ 1493,</div><div class='add'>+      /*0x16e5d*/ 1491,</div><div class='add'>+      /*0x104ca*/ 1334,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x1fcc*/ 835,</div><div class='add'>+      /*0x004c*/ 10,</div><div class='add'>+      /*0x014c*/ 94,</div><div class='add'>+      /*0xa698*/ 1062,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x01d3*/ 166,</div><div class='add'>+      /*0x118ba*/ 1456,</div><div class='add'>+      /*0x24be*/ 893,</div><div class='add'>+      /*0x1cb4*/ 575,</div><div class='add'>+      /*0x1f0d*/ 720,</div><div class='add'>+      /*0x10b0*/ 500,</div><div class='add'>+      /*0x1ecc*/ 689,</div><div class='add'>+      /*0x1e4c*/ 623,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xff3a*/ 1267,</div><div class='add'>+      /*0xa732*/ 1071,</div><div class='add'>+      /*0x00cc*/ 38,</div><div class='add'>+      /*0xa686*/ 1053,</div><div class='add'>+      /*0x2ccc*/ 1012,</div><div class='add'>+      /*0x04cb*/ 395,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104cb*/ 1335,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x16e59*/ 1487,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa64a*/ 1032,</div><div class='add'>+      /*0x054c*/ 472,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10be*/ 514,</div><div class='add'>+      /*0x2132*/ 867,</div><div class='add'>+      /*0xa696*/ 1061,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa754*/ 1088,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa738*/ 1074,</div><div class='add'>+      /*0x1f5b*/ 756,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fc8*/ 831,</div><div class='add'>+      /*0x0048*/ 7,</div><div class='add'>+      /*0x01ca*/ 161,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x03d6*/ 274,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa692*/ 1059,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f3e*/ 743,</div><div class='add'>+      /*0x1ec8*/ 687,</div><div class='add'>+      /*0x1e48*/ 621,</div><div class='add'>+      /*0x24b6*/ 885,</div><div class='add'>+      /*0x1e907*/ 1501,</div><div class='add'>+      /*0x04b4*/ 383,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104b4*/ 1312,</div><div class='add'>+      /*0x00c8*/ 34,</div><div class='add'>+      /*0x24ca*/ 905,</div><div class='add'>+      /*0x2cc8*/ 1010,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118b0*/ 1446,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa69a*/ 1063,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x004e*/ 12,</div><div class='add'>+      /*0x014e*/ 95,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01cb*/ 162,</div><div class='add'>+      /*0x0548*/ 468,</div><div class='add'>+      /*0xff30*/ 1257,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0xa73a*/ 1075,</div><div class='add'>+      /*0x1ece*/ 690,</div><div class='add'>+      /*0x1e4e*/ 624,</div><div class='add'>+      /*0x10b6*/ 506,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0187*/ 125,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x00ce*/ 40,</div><div class='add'>+      /*0x118be*/ 1460,</div><div class='add'>+      /*0x2cce*/ 1013,</div><div class='add'>+      /*0x24cb*/ 906,</div><div class='add'>+      /*0x1fc2*/ 826,</div><div class='add'>+      /*0x0042*/ 1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e57*/ 1485,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10594*/ 1377,</div><div class='add'>+      /*0x04bc*/ 387,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104bc*/ 1320,</div><div class='add'>+      /*0x054e*/ 474,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1ec2*/ 684,</div><div class='add'>+      /*0x1e42*/ 618,</div><div class='add'>+      /*0x1fd2*/ 836,</div><div class='add'>+      /*0x0052*/ 16,</div><div class='add'>+      /*0x0152*/ 97,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f4a*/ 747,</div><div class='add'>+      /*0x00c2*/ 28,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cc2*/ 1007,</div><div class='add'>+      /*0x10583*/ 1362,</div><div class='add'>+      /*0x03d0*/ 271,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1ed2*/ 692,</div><div class='add'>+      /*0x1e52*/ 626,</div><div class='add'>+      /*0xa7c2*/ 1140,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x0542*/ 462,</div><div class='add'>+      /*0x00d2*/ 44,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cd2*/ 1015,</div><div class='add'>+      /*0x0244*/ 222,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1fc6*/ 829,</div><div class='add'>+      /*0x0046*/ 5,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fd8*/ 840,</div><div class='add'>+      /*0x0058*/ 22,</div><div class='add'>+      /*0x0158*/ 100,</div><div class='add'>+      /*0x0552*/ 478,</div><div class='add'>+      /*0x1f4b*/ 748,</div><div class='add'>+      /*0x118b6*/ 1452,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x04d6*/ 400,</div><div class='add'>+      /*0x1ec6*/ 686,</div><div class='add'>+      /*0x1e46*/ 620,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1ed8*/ 695,</div><div class='add'>+      /*0x1e58*/ 629,</div><div class='add'>+      /*0xab79*/ 1159,</div><div class='add'>+      /*0xff36*/ 1263,</div><div class='add'>+      /*0x00c6*/ 32,</div><div class='add'>+      /*0x01bc*/ 156,</div><div class='add'>+      /*0x2cc6*/ 1009,</div><div class='add'>+      /*0x00d8*/ 49,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cd8*/ 1018,</div><div class='add'>+      /*0x10b4*/ 504,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa7c6*/ 1143,</div><div class='add'>+      /*0x1fab*/ 810,</div><div class='add'>+      /*0x042b*/ 340,</div><div class='add'>+      /*0xa7d8*/ 1148,</div><div class='add'>+      /*0x0546*/ 466,</div><div class='add'>+      /*0xa73e*/ 1077,</div><div class='add'>+      /*0xabab*/ 1209,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1ec0*/ 683,</div><div class='add'>+      /*0x1e40*/ 617,</div><div class='add'>+      /*0x24bc*/ 891,</div><div class='add'>+      /*0x2c2b*/ 954,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x00c0*/ 26,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cc0*/ 1006,</div><div class='add'>+      /*0x1fec*/ 853,</div><div class='add'>+      /*0x046c*/ 351,</div><div class='add'>+      /*0x016c*/ 110,</div><div class='add'>+      /*0xa656*/ 1038,</div><div class='add'>+      /*0x013d*/ 86,</div><div class='add'>+      /*0x104c4*/ 1328,</div><div class='add'>+      /*0xa7c0*/ 1139,</div><div class='add'>+      /*0xabbd*/ 1227,</div><div class='add'>+      /*0xab7d*/ 1163,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0540*/ 460,</div><div class='add'>+      /*0xa7ab*/ 1125,</div><div class='add'>+      /*0x1eec*/ 705,</div><div class='add'>+      /*0x1e6c*/ 639,</div><div class='add'>+      /*0x10cab*/ 1422,</div><div class='add'>+      /*0xa694*/ 1060,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x024c*/ 227,</div><div class='add'>+      /*0x10bc*/ 512,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1fc9*/ 832,</div><div class='add'>+      /*0x0049*/ 1528,</div><div class='add'>+      /*0x0149*/ 92,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fa9*/ 808,</div><div class='add'>+      /*0x0429*/ 338,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x04d0*/ 397,</div><div class='add'>+      /*0xaba9*/ 1207,</div><div class='add'>+      /*0x104d0*/ 1340,</div><div class='add'>+      /*0x053d*/ 457,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118b4*/ 1450,</div><div class='add'>+      /*0x2c29*/ 952,</div><div class='add'>+      /*0xa736*/ 1073,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f3c*/ 741,</div><div class='add'>+      /*0xa644*/ 1029,</div><div class='add'>+      /*0x00c9*/ 35,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa74a*/ 1083,</div><div class='add'>+      /*0x16e41*/ 1463,</div><div class='add'>+      /*0xff34*/ 1261,</div><div class='add'>+      /*0x1fda*/ 842,</div><div class='add'>+      /*0x005a*/ 24,</div><div class='add'>+      /*0x015a*/ 101,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7c9*/ 1145,</div><div class='add'>+      /*0x1fea*/ 851,</div><div class='add'>+      /*0x046a*/ 350,</div><div class='add'>+      /*0x016a*/ 109,</div><div class='add'>+      /*0x0549*/ 469,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01c4*/ 157,</div><div class='add'>+      /*0x10ca9*/ 1420,</div><div class='add'>+      /*0x1eda*/ 696,</div><div class='add'>+      /*0x1e5a*/ 630,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0248*/ 225,</div><div class='add'>+      /*0x1eea*/ 704,</div><div class='add'>+      /*0x1e6a*/ 638,</div><div class='add'>+      /*0x00da*/ 51,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cda*/ 1019,</div><div class='add'>+      /*0xa650*/ 1035,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x03c2*/ 269,</div><div class='add'>+      /*0x104cc*/ 1336,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24c4*/ 899,</div><div class='add'>+      /*0x118bc*/ 1458,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10584*/ 1363,</div><div class='add'>+      /*0x1fe2*/ 844,</div><div class='add'>+      /*0x0462*/ 346,</div><div class='add'>+      /*0x0162*/ 105,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fa1*/ 800,</div><div class='add'>+      /*0x0421*/ 330,</div><div class='add'>+      /*0x1f56*/ 754,</div><div class='add'>+      /*0x10421*/ 1301,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xaba1*/ 1199,</div><div class='add'>+      /*0x2c62*/ 960,</div><div class='add'>+      /*0x024e*/ 228,</div><div class='add'>+      /*0x1ee2*/ 700,</div><div class='add'>+      /*0x1e62*/ 634,</div><div class='add'>+      /*0x2c21*/ 944,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1fc7*/ 830,</div><div class='add'>+      /*0x0047*/ 6,</div><div class='add'>+      /*0x0147*/ 91,</div><div class='add'>+      /*0x2ce2*/ 1023,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10c4*/ 520,</div><div class='add'>+      /*0x0045*/ 4,</div><div class='add'>+      /*0x0145*/ 90,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1fb9*/ 821,</div><div class='add'>+      /*0xa64c*/ 1033,</div><div class='add'>+      /*0x0139*/ 84,</div><div class='add'>+      /*0x10582*/ 1361,</div><div class='add'>+      /*0xa734*/ 1072,</div><div class='add'>+      /*0xabb9*/ 1223,</div><div class='add'>+      /*0x10ca1*/ 1412,</div><div class='add'>+      /*0x03d8*/ 275,</div><div class='add'>+      /*0x00c7*/ 33,</div><div class='add'>+      /*0x0055*/ 19,</div><div class='add'>+      /*0x104c8*/ 1332,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x00c5*/ 31,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xa7c7*/ 1144,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x0547*/ 467,</div><div class='add'>+      /*0xa7c5*/ 1142,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0345*/ 229,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0545*/ 465,</div><div class='add'>+      /*0x00d5*/ 47,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fe8*/ 849,</div><div class='add'>+      /*0x0468*/ 349,</div><div class='add'>+      /*0x0168*/ 108,</div><div class='add'>+      /*0x0539*/ 453,</div><div class='add'>+      /*0x03ab*/ 267,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24cc*/ 907,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104ce*/ 1338,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0555*/ 481,</div><div class='add'>+      /*0x1ee8*/ 703,</div><div class='add'>+      /*0x1e68*/ 637,</div><div class='add'>+      /*0x1f50*/ 751,</div><div class='add'>+      /*0xa73c*/ 1076,</div><div class='add'>+      /*0x0246*/ 224,</div><div class='add'>+      /*0xa648*/ 1031,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x03ec*/ 285,</div><div class='add'>+      /*0x1f97*/ 790,</div><div class='add'>+      /*0x0417*/ 320,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10417*/ 1291,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xab97*/ 1189,</div><div class='add'>+      /*0x1ff2*/ 854,</div><div class='add'>+      /*0x0472*/ 354,</div><div class='add'>+      /*0x0172*/ 113,</div><div class='add'>+      /*0x104c2*/ 1326,</div><div class='add'>+      /*0x2c17*/ 934,</div><div class='add'>+      /*0x01c8*/ 160,</div><div class='add'>+      /*0x1e97*/ 661,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa684*/ 1052,</div><div class='add'>+      /*0x2c72*/ 970,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1ef2*/ 708,</div><div class='add'>+      /*0x1e72*/ 642,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x04d2*/ 398,</div><div class='add'>+      /*0xa64e*/ 1034,</div><div class='add'>+      /*0x104d2*/ 1342,</div><div class='add'>+      /*0x1cab*/ 566,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03a9*/ 265,</div><div class='add'>+      /*0x2cf2*/ 1026,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24c8*/ 903,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10c97*/ 1402,</div><div class='add'>+      /*0x1f4c*/ 749,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x0372*/ 231,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa756*/ 1089,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10572*/ 1346,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x023d*/ 218,</div><div class='add'>+      /*0x1cbd*/ 582,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa642*/ 1028,</div><div class='add'>+      /*0x03da*/ 276,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa682*/ 1051,</div><div class='add'>+      /*0x104c6*/ 1330,</div><div class='add'>+      /*0x04d8*/ 401,</div><div class='add'>+      /*0x03ea*/ 284,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x046e*/ 352,</div><div class='add'>+      /*0x016e*/ 111,</div><div class='add'>+      /*0x24ce*/ 909,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa652*/ 1036,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2c6e*/ 967,</div><div class='add'>+      /*0x015e*/ 103,</div><div class='add'>+      /*0x1eee*/ 706,</div><div class='add'>+      /*0x1e6e*/ 640,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1ca9*/ 564,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x04c0*/ 389,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104c0*/ 1324,</div><div class='add'>+      /*0x1ede*/ 698,</div><div class='add'>+      /*0x1e5e*/ 632,</div><div class='add'>+      /*0xa744*/ 1080,</div><div class='add'>+      /*0x1f48*/ 745,</div><div class='add'>+      /*0x03e2*/ 280,</div><div class='add'>+      /*0x24c2*/ 897,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00de*/ 55,</div><div class='add'>+      /*0x03a1*/ 258,</div><div class='add'>+      /*0x2cde*/ 1021,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa646*/ 1030,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa658*/ 1039,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x04ec*/ 411,</div><div class='add'>+      /*0x1fc3*/ 827,</div><div class='add'>+      /*0x0043*/ 2,</div><div class='add'>+      /*0x0143*/ 89,</div><div class='add'>+      /*0x104bd*/ 1321,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fe6*/ 847,</div><div class='add'>+      /*0x0466*/ 348,</div><div class='add'>+      /*0x0166*/ 107,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa750*/ 1086,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10c2*/ 518,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa640*/ 1027,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1ee6*/ 702,</div><div class='add'>+      /*0x1e66*/ 636,</div><div class='add'>+      /*0x00c3*/ 29,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03d5*/ 273,</div><div class='add'>+      /*0x04c9*/ 394,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104c9*/ 1333,</div><div class='add'>+      /*0x24c6*/ 901,</div><div class='add'>+      /*0x1fad*/ 812,</div><div class='add'>+      /*0x042d*/ 342,</div><div class='add'>+      /*0x1058e*/ 1372,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1ca1*/ 556,</div><div class='add'>+      /*0xabad*/ 1211,</div><div class='add'>+      /*0x0543*/ 463,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1058c*/ 1370,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c2d*/ 956,</div><div class='add'>+      /*0xa66c*/ 1049,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x03e8*/ 283,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x04da*/ 402,</div><div class='add'>+      /*0x1f52*/ 752,</div><div class='add'>+      /*0x0245*/ 223,</div><div class='add'>+      /*0x24c0*/ 895,</div><div class='add'>+      /*0xa74c*/ 1084,</div><div class='add'>+      /*0x04ea*/ 410,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01ec*/ 178,</div><div class='add'>+      /*0xa7ad*/ 1127,</div><div class='add'>+      /*0x1cb9*/ 580,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cad*/ 1424,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x0397*/ 248,</div><div class='add'>+      /*0x1fbb*/ 823,</div><div class='add'>+      /*0xab7c*/ 1162,</div><div class='add'>+      /*0x013b*/ 85,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xabbb*/ 1225,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x24bd*/ 892,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10c0*/ 516,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x04e2*/ 406,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01a9*/ 146,</div><div class='add'>+      /*0x10ab*/ 495,</div><div class='add'>+      /*0x1fa5*/ 804,</div><div class='add'>+      /*0x0425*/ 334,</div><div class='add'>+      /*0xa65a*/ 1040,</div><div class='add'>+      /*0x10425*/ 1305,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xaba5*/ 1203,</div><div class='add'>+      /*0x1fb7*/ 819,</div><div class='add'>+      /*0xa66a*/ 1048,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2c25*/ 948,</div><div class='add'>+      /*0xabb7*/ 1221,</div><div class='add'>+      /*0x24c9*/ 904,</div><div class='add'>+      /*0xa748*/ 1082,</div><div class='add'>+      /*0x04c7*/ 393,</div><div class='add'>+      /*0x053b*/ 455,</div><div class='add'>+      /*0x104c7*/ 1331,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10bd*/ 513,</div><div class='add'>+      /*0x04c5*/ 392,</div><div class='add'>+      /*0x1f2b*/ 732,</div><div class='add'>+      /*0x104c5*/ 1329,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01ea*/ 177,</div><div class='add'>+      /*0x1c97*/ 546,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e921*/ 1527,</div><div class='add'>+      /*0x104b9*/ 1317,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x10ca5*/ 1416,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa662*/ 1044,</div><div class='add'>+      /*0x03ee*/ 286,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f6c*/ 763,</div><div class='add'>+      /*0x0537*/ 451,</div><div class='add'>+      /*0x1f3d*/ 742,</div><div class='add'>+      /*0xa74e*/ 1085,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa68e*/ 1057,</div><div class='add'>+      /*0x10a9*/ 493,</div><div class='add'>+      /*0x03de*/ 278,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xa68c*/ 1056,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01e2*/ 173,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fa3*/ 802,</div><div class='add'>+      /*0x0423*/ 332,</div><div class='add'>+      /*0x04e8*/ 409,</div><div class='add'>+      /*0x10423*/ 1303,</div><div class='add'>+      /*0x118ab*/ 1441,</div><div class='add'>+      /*0xaba3*/ 1201,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f49*/ 746,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c23*/ 946,</div><div class='add'>+      /*0xa742*/ 1079,</div><div class='add'>+      /*0x1f29*/ 730,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff2b*/ 1252,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01c7*/ 159,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x01c5*/ 158,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118bd*/ 1459,</div><div class='add'>+      /*0x004d*/ 11,</div><div class='add'>+      /*0xa752*/ 1087,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x03e6*/ 282,</div><div class='add'>+      /*0x04f2*/ 414,</div><div class='add'>+      /*0x10ca3*/ 1414,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x24c7*/ 902,</div><div class='add'>+      /*0x01d5*/ 167,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f6a*/ 761,</div><div class='add'>+      /*0x1058d*/ 1371,</div><div class='add'>+      /*0x24c5*/ 900,</div><div class='add'>+      /*0xa668*/ 1047,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00cd*/ 39,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x24b9*/ 888,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10a1*/ 485,</div><div class='add'>+      /*0x118a9*/ 1439,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e917*/ 1517,</div><div class='add'>+      /*0xa746*/ 1081,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e54*/ 1482,</div><div class='add'>+      /*0xa758*/ 1090,</div><div class='add'>+      /*0x054d*/ 473,</div><div class='add'>+      /*0x01e8*/ 176,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff29*/ 1250,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10c7*/ 522,</div><div class='add'>+      /*0x0470*/ 353,</div><div class='add'>+      /*0x0170*/ 112,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0243*/ 221,</div><div class='add'>+      /*0x10c5*/ 521,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x2c70*/ 969,</div><div class='add'>+      /*0x10b9*/ 509,</div><div class='add'>+      /*0x1ef0*/ 707,</div><div class='add'>+      /*0x1e70*/ 641,</div><div class='add'>+      /*0xa740*/ 1078,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x04ee*/ 412,</div><div class='add'>+      /*0x0197*/ 136,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f9d*/ 796,</div><div class='add'>+      /*0x041d*/ 326,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1041d*/ 1297,</div><div class='add'>+      /*0x01f2*/ 182,</div><div class='add'>+      /*0xab9d*/ 1195,</div><div class='add'>+      /*0x04de*/ 404,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2c1d*/ 940,</div><div class='add'>+      /*0x0370*/ 230,</div><div class='add'>+      /*0x1cad*/ 568,</div><div class='add'>+      /*0x1f39*/ 738,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10570*/ 1344,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa76c*/ 1100,</div><div class='add'>+      /*0x212b*/ 866,</div><div class='add'>+      /*0xabb5*/ 1219,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x118a1*/ 1431,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03a5*/ 261,</div><div class='add'>+      /*0x1f9b*/ 794,</div><div class='add'>+      /*0x041b*/ 324,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1041b*/ 1295,</div><div class='add'>+      /*0x10c9d*/ 1408,</div><div class='add'>+      /*0xab9b*/ 1193,</div><div class='add'>+      /*0x00b5*/ 25,</div><div class='add'>+      /*0xff21*/ 1242,</div><div class='add'>+      /*0x216c*/ 880,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c1b*/ 938,</div><div class='add'>+      /*0x04c3*/ 391,</div><div class='add'>+      /*0x1e9b*/ 665,</div><div class='add'>+      /*0x104c3*/ 1327,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f68*/ 759,</div><div class='add'>+      /*0x04e6*/ 408,</div><div class='add'>+      /*0xa65e*/ 1042,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0535*/ 449,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x118b9*/ 1455,</div><div class='add'>+      /*0x023b*/ 217,</div><div class='add'>+      /*0x01ee*/ 179,</div><div class='add'>+      /*0x1f95*/ 788,</div><div class='add'>+      /*0x0415*/ 318,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10415*/ 1289,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xab95*/ 1187,</div><div class='add'>+      /*0x10c9b*/ 1406,</div><div class='add'>+      /*0xff39*/ 1266,</div><div class='add'>+      /*0x01de*/ 171,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c15*/ 932,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa75a*/ 1091,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1ca5*/ 560,</div><div class='add'>+      /*0xa76a*/ 1099,</div><div class='add'>+      /*0x1f99*/ 792,</div><div class='add'>+      /*0x0419*/ 322,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10419*/ 1293,</div><div class='add'>+      /*0x1cb7*/ 578,</div><div class='add'>+      /*0xab99*/ 1191,</div><div class='add'>+      /*0xfb17*/ 1241,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03a3*/ 259,</div><div class='add'>+      /*0x1fb3*/ 816,</div><div class='add'>+      /*0x2c19*/ 936,</div><div class='add'>+      /*0xa666*/ 1046,</div><div class='add'>+      /*0x1e99*/ 663,</div><div class='add'>+      /*0x10c95*/ 1400,</div><div class='add'>+      /*0xabb3*/ 1217,</div><div class='add'>+      /*0x1f93*/ 786,</div><div class='add'>+      /*0x0413*/ 316,</div><div class='add'>+      /*0x216a*/ 878,</div><div class='add'>+      /*0x10413*/ 1287,</div><div class='add'>+      /*0x16e5b*/ 1489,</div><div class='add'>+      /*0xab93*/ 1185,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x2c13*/ 930,</div><div class='add'>+      /*0xa762*/ 1095,</div><div class='add'>+      /*0x01e6*/ 175,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0587*/ 483,</div><div class='add'>+      /*0x10c99*/ 1404,</div><div class='add'>+      /*0x10587*/ 1366,</div><div class='add'>+      /*0x1f91*/ 784,</div><div class='add'>+      /*0x0411*/ 314,</div><div class='add'>+      /*0x104bb*/ 1319,</div><div class='add'>+      /*0x10411*/ 1285,</div><div class='add'>+      /*0xa7b3*/ 1132,</div><div class='add'>+      /*0xab91*/ 1183,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24c3*/ 898,</div><div class='add'>+      /*0x0533*/ 447,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c11*/ 928,</div><div class='add'>+      /*0x2162*/ 870,</div><div class='add'>+      /*0x004f*/ 13,</div><div class='add'>+      /*0x10c93*/ 1398,</div><div class='add'>+      /*0x1f6e*/ 765,</div><div class='add'>+      /*0x16e53*/ 1481,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1ca3*/ 558,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f8f*/ 782,</div><div class='add'>+      /*0x040f*/ 312,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1040f*/ 1283,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xab8f*/ 1181,</div><div class='add'>+      /*0x104b7*/ 1315,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2c0f*/ 926,</div><div class='add'>+      /*0x00cf*/ 41,</div><div class='add'>+      /*0x10c91*/ 1396,</div><div class='add'>+      /*0x1f81*/ 768,</div><div class='add'>+      /*0x0401*/ 298,</div><div class='add'>+      /*0x10c3*/ 519,</div><div class='add'>+      /*0x10401*/ 1269,</div><div class='add'>+      /*0x03f0*/ 287,</div><div class='add'>+      /*0xab81*/ 1167,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x2c01*/ 912,</div><div class='add'>+      /*0x054f*/ 475,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1ff4*/ 856,</div><div class='add'>+      /*0x0474*/ 355,</div><div class='add'>+      /*0x0174*/ 114,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10c8f*/ 1394,</div><div class='add'>+      /*0xa768*/ 1098,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x047e*/ 360,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x039d*/ 254,</div><div class='add'>+      /*0x16e4a*/ 1472,</div><div class='add'>+      /*0x015c*/ 102,</div><div class='add'>+      /*0x1ef4*/ 709,</div><div class='add'>+      /*0x1e74*/ 643,</div><div class='add'>+      /*0x10ad*/ 497,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c7e*/ 972,</div><div class='add'>+      /*0x10c81*/ 1380,</div><div class='add'>+      /*0x1efe*/ 714,</div><div class='add'>+      /*0x1e7e*/ 648,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1edc*/ 697,</div><div class='add'>+      /*0x1e5c*/ 631,</div><div class='add'>+      /*0x2168*/ 876,</div><div class='add'>+      /*0x013f*/ 87,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24bb*/ 890,</div><div class='add'>+      /*0xabbf*/ 1229,</div><div class='add'>+      /*0x00dc*/ 53,</div><div class='add'>+      /*0xabb1*/ 1215,</div><div class='add'>+      /*0x2cdc*/ 1020,</div><div class='add'>+      /*0x01b7*/ 154,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10574*/ 1348,</div><div class='add'>+      /*0x1f2d*/ 734,</div><div class='add'>+      /*0x039b*/ 252,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x16e4b*/ 1473,</div><div class='add'>+      /*0x1057e*/ 1357,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x04cd*/ 396,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104cd*/ 1337,</div><div class='add'>+      /*0x24b7*/ 886,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1c9d*/ 552,</div><div class='add'>+      /*0xa7b1*/ 1130,</div><div class='add'>+      /*0x10bb*/ 511,</div><div class='add'>+      /*0x053f*/ 459,</div><div class='add'>+      /*0x10cb1*/ 1428,</div><div class='add'>+      /*0x0531*/ 445,</div><div class='add'>+      /*0x1f9f*/ 798,</div><div class='add'>+      /*0x041f*/ 328,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1041f*/ 1299,</div><div class='add'>+      /*0x0395*/ 246,</div><div class='add'>+      /*0xab9f*/ 1197,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1cb5*/ 576,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c1f*/ 942,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10a5*/ 489,</div><div class='add'>+      /*0x118ad*/ 1443,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f3b*/ 740,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10b7*/ 507,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1c9b*/ 550,</div><div class='add'>+      /*0x0399*/ 250,</div><div class='add'>+      /*0xa76e*/ 1101,</div><div class='add'>+      /*0xff2d*/ 1254,</div><div class='add'>+      /*0x1f85*/ 772,</div><div class='add'>+      /*0x0405*/ 302,</div><div class='add'>+      /*0x04f0*/ 413,</div><div class='add'>+      /*0x10405*/ 1273,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xab85*/ 1171,</div><div class='add'>+      /*0x10c9f*/ 1410,</div><div class='add'>+      /*0xa75e*/ 1093,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2c05*/ 916,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0393*/ 244,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0051*/ 15,</div><div class='add'>+      /*0x216e*/ 882,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01cd*/ 163,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1c95*/ 544,</div><div class='add'>+      /*0x1f8b*/ 778,</div><div class='add'>+      /*0x040b*/ 308,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1040b*/ 1279,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xab8b*/ 1177,</div><div class='add'>+      /*0x118bb*/ 1457,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0391*/ 242,</div><div class='add'>+      /*0x10c85*/ 1384,</div><div class='add'>+      /*0x2c0b*/ 922,</div><div class='add'>+      /*0x00d1*/ 43,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x24cd*/ 908,</div><div class='add'>+      /*0x104b5*/ 1313,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1c99*/ 548,</div><div class='add'>+      /*0x10a3*/ 487,</div><div class='add'>+      /*0x03cf*/ 270,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa766*/ 1097,</div><div class='add'>+      /*0x118a5*/ 1435,</div><div class='add'>+      /*0x0551*/ 477,</div><div class='add'>+      /*0x1e91d*/ 1523,</div><div class='add'>+      /*0x1cb3*/ 574,</div><div class='add'>+      /*0x038f*/ 240,</div><div class='add'>+      /*0xa78b*/ 1110,</div><div class='add'>+      /*0x118b7*/ 1453,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10c8b*/ 1390,</div><div class='add'>+      /*0x1c93*/ 542,</div><div class='add'>+      /*0xff25*/ 1246,</div><div class='add'>+      /*0x01f0*/ 180,</div><div class='add'>+      /*0x1ff6*/ 857,</div><div class='add'>+      /*0x0476*/ 356,</div><div class='add'>+      /*0x0176*/ 115,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff37*/ 1264,</div><div class='add'>+      /*0x2166*/ 874,</div><div class='add'>+      /*0x10cd*/ 523,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1ffa*/ 861,</div><div class='add'>+      /*0x047a*/ 358,</div><div class='add'>+      /*0x1ef6*/ 710,</div><div class='add'>+      /*0x1e76*/ 644,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1c91*/ 540,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e91b*/ 1521,</div><div class='add'>+      /*0x019d*/ 139,</div><div class='add'>+      /*0x03f4*/ 289,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1efa*/ 712,</div><div class='add'>+      /*0x1e7a*/ 646,</div><div class='add'>+      /*0x16e56*/ 1484,</div><div class='add'>+      /*0x03fe*/ 295,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f4d*/ 750,</div><div class='add'>+      /*0x03dc*/ 277,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0376*/ 232,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01b5*/ 153,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10576*/ 1350,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1ff8*/ 859,</div><div class='add'>+      /*0x0478*/ 357,</div><div class='add'>+      /*0x0178*/ 116,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118a3*/ 1433,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e915*/ 1515,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1057a*/ 1354,</div><div class='add'>+      /*0x104b3*/ 1311,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1c81*/ 531,</div><div class='add'>+      /*0x1ef8*/ 711,</div><div class='add'>+      /*0x1e78*/ 645,</div><div class='add'>+      /*0xff23*/ 1244,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1e919*/ 1519,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e44*/ 1466,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10578*/ 1352,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x1e913*/ 1513,</div><div class='add'>+      /*0x039f*/ 256,</div><div class='add'>+      /*0x10b5*/ 505,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x104cf*/ 1339,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1cbf*/ 584,</div><div class='add'>+      /*0x1f1d*/ 728,</div><div class='add'>+      /*0x1cb1*/ 572,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x16e50*/ 1478,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1e911*/ 1511,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x01b3*/ 152,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x13fa*/ 526,</div><div class='add'>+      /*0x0193*/ 133,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f1b*/ 726,</div><div class='add'>+      /*0x1e90f*/ 1509,</div><div class='add'>+      /*0x04f4*/ 415,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03d1*/ 272,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1c9f*/ 554,</div><div class='add'>+      /*0x04fe*/ 420,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0191*/ 132,</div><div class='add'>+      /*0x04dc*/ 403,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1e901*/ 1495,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x13f8*/ 524,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e4c*/ 1474,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01cf*/ 164,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118b5*/ 1451,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x104bf*/ 1323,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104b1*/ 1309,</div><div class='add'>+      /*0x018f*/ 130,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10b3*/ 503,</div><div class='add'>+      /*0x1c85*/ 535,</div><div class='add'>+      /*0xff35*/ 1262,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xfb15*/ 1239,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24cf*/ 910,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0181*/ 121,</div><div class='add'>+      /*0x1f19*/ 724,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0xa65c*/ 1041,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x01f4*/ 183,</div><div class='add'>+      /*0x03fa*/ 293,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x01fe*/ 189,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e48*/ 1470,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0xfb13*/ 1237,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x01b1*/ 150,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x1e91f*/ 1525,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x118b3*/ 1449,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x16e4e*/ 1476,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1f0f*/ 722,</div><div class='add'>+      /*0x24bf*/ 894,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff33*/ 1260,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104d1*/ 1341,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1e905*/ 1499,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x019f*/ 140,</div><div class='add'>+      /*0x16e42*/ 1464,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0xfb01*/ 1231,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10bf*/ 515,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10b1*/ 501,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x16e52*/ 1480,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1e90b*/ 1505,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x04f6*/ 416,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f3f*/ 744,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x04fa*/ 418,</div><div class='add'>+      /*0x01d1*/ 165,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e46*/ 1468,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x16e58*/ 1486,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x018b*/ 128,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x04f8*/ 417,</div><div class='add'>+      /*0x16e40*/ 1462,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118bf*/ 1461,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118b1*/ 1447,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xff31*/ 1258,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x01f6*/ 184,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xab72*/ 1152,</div><div class='add'>+      /*0x01fa*/ 187,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0xfb05*/ 1235,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x16e49*/ 1471,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f0b*/ 718,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x01f8*/ 186,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa77e*/ 1105,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa75c*/ 1092,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x16e5a*/ 1488,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e47*/ 1469,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x16e45*/ 1467,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e55*/ 1483,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x16e5e*/ 1492,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e43*/ 1465,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xab70*/ 1150,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x16e4d*/ 1475,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x10595*/ 1378,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xab74*/ 1154,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0xab7e*/ 1164,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x10591*/ 1375,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x1058f*/ 1373,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x10581*/ 1360,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x16e4f*/ 1477,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0xab76*/ 1156,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x10585*/ 1364,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xab7a*/ 1160,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x16e5c*/ 1490,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0xab78*/ 1158,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x16e51*/ 1479</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+  if (code &lt;= MAX_CODE_VALUE &amp;&amp; code &gt;= MIN_CODE_VALUE)</div><div class='add'>+    {</div><div class='add'>+      register unsigned int key = onigenc_unicode_CaseFold_11_hash(code);</div><div class='add'>+</div><div class='add'>+      if (key &lt;= MAX_HASH_VALUE)</div><div class='add'>+        {</div><div class='add'>+          register short s = wordlist[key];</div><div class='add'>+</div><div class='add'>+          if (s &gt;= 0 &amp;&amp; code1_equal(code, CaseFold_11_Table[s].from))</div><div class='add'>+            return &amp;CaseFold_11_Table[s].to;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+  return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const CaseUnfold_11_Type CaseUnfold_11_Table[] = {</div><div class='add'>+#define CaseUnfold_11 (*(CaseUnfold_11_Type (*)[1395])(CaseUnfold_11_Table+0))</div><div class='add'>+  {0x0061, {1|U, {0x0041}}},</div><div class='add'>+  {0x0062, {1|U, {0x0042}}},</div><div class='add'>+  {0x0063, {1|U, {0x0043}}},</div><div class='add'>+  {0x0064, {1|U, {0x0044}}},</div><div class='add'>+  {0x0065, {1|U, {0x0045}}},</div><div class='add'>+  {0x0066, {1|U, {0x0046}}},</div><div class='add'>+  {0x0067, {1|U, {0x0047}}},</div><div class='add'>+  {0x0068, {1|U, {0x0048}}},</div><div class='add'>+  {0x006a, {1|U, {0x004a}}},</div><div class='add'>+  {0x006b, {2|U, {0x004b, 0x212a}}},</div><div class='add'>+  {0x006c, {1|U, {0x004c}}},</div><div class='add'>+  {0x006d, {1|U, {0x004d}}},</div><div class='add'>+  {0x006e, {1|U, {0x004e}}},</div><div class='add'>+  {0x006f, {1|U, {0x004f}}},</div><div class='add'>+  {0x0070, {1|U, {0x0050}}},</div><div class='add'>+  {0x0071, {1|U, {0x0051}}},</div><div class='add'>+  {0x0072, {1|U, {0x0052}}},</div><div class='add'>+  {0x0073, {2|U, {0x0053, 0x017f}}},</div><div class='add'>+  {0x0074, {1|U, {0x0054}}},</div><div class='add'>+  {0x0075, {1|U, {0x0055}}},</div><div class='add'>+  {0x0076, {1|U, {0x0056}}},</div><div class='add'>+  {0x0077, {1|U, {0x0057}}},</div><div class='add'>+  {0x0078, {1|U, {0x0058}}},</div><div class='add'>+  {0x0079, {1|U, {0x0059}}},</div><div class='add'>+  {0x007a, {1|U, {0x005a}}},</div><div class='add'>+  {0x00e0, {1|U, {0x00c0}}},</div><div class='add'>+  {0x00e1, {1|U, {0x00c1}}},</div><div class='add'>+  {0x00e2, {1|U, {0x00c2}}},</div><div class='add'>+  {0x00e3, {1|U, {0x00c3}}},</div><div class='add'>+  {0x00e4, {1|U, {0x00c4}}},</div><div class='add'>+  {0x00e5, {2|U, {0x00c5, 0x212b}}},</div><div class='add'>+  {0x00e6, {1|U, {0x00c6}}},</div><div class='add'>+  {0x00e7, {1|U, {0x00c7}}},</div><div class='add'>+  {0x00e8, {1|U, {0x00c8}}},</div><div class='add'>+  {0x00e9, {1|U, {0x00c9}}},</div><div class='add'>+  {0x00ea, {1|U, {0x00ca}}},</div><div class='add'>+  {0x00eb, {1|U, {0x00cb}}},</div><div class='add'>+  {0x00ec, {1|U, {0x00cc}}},</div><div class='add'>+  {0x00ed, {1|U, {0x00cd}}},</div><div class='add'>+  {0x00ee, {1|U, {0x00ce}}},</div><div class='add'>+  {0x00ef, {1|U, {0x00cf}}},</div><div class='add'>+  {0x00f0, {1|U, {0x00d0}}},</div><div class='add'>+  {0x00f1, {1|U, {0x00d1}}},</div><div class='add'>+  {0x00f2, {1|U, {0x00d2}}},</div><div class='add'>+  {0x00f3, {1|U, {0x00d3}}},</div><div class='add'>+  {0x00f4, {1|U, {0x00d4}}},</div><div class='add'>+  {0x00f5, {1|U, {0x00d5}}},</div><div class='add'>+  {0x00f6, {1|U, {0x00d6}}},</div><div class='add'>+  {0x00f8, {1|U, {0x00d8}}},</div><div class='add'>+  {0x00f9, {1|U, {0x00d9}}},</div><div class='add'>+  {0x00fa, {1|U, {0x00da}}},</div><div class='add'>+  {0x00fb, {1|U, {0x00db}}},</div><div class='add'>+  {0x00fc, {1|U, {0x00dc}}},</div><div class='add'>+  {0x00fd, {1|U, {0x00dd}}},</div><div class='add'>+  {0x00fe, {1|U, {0x00de}}},</div><div class='add'>+  {0x00ff, {1|U, {0x0178}}},</div><div class='add'>+  {0x0101, {1|U, {0x0100}}},</div><div class='add'>+  {0x0103, {1|U, {0x0102}}},</div><div class='add'>+  {0x0105, {1|U, {0x0104}}},</div><div class='add'>+  {0x0107, {1|U, {0x0106}}},</div><div class='add'>+  {0x0109, {1|U, {0x0108}}},</div><div class='add'>+  {0x010b, {1|U, {0x010a}}},</div><div class='add'>+  {0x010d, {1|U, {0x010c}}},</div><div class='add'>+  {0x010f, {1|U, {0x010e}}},</div><div class='add'>+  {0x0111, {1|U, {0x0110}}},</div><div class='add'>+  {0x0113, {1|U, {0x0112}}},</div><div class='add'>+  {0x0115, {1|U, {0x0114}}},</div><div class='add'>+  {0x0117, {1|U, {0x0116}}},</div><div class='add'>+  {0x0119, {1|U, {0x0118}}},</div><div class='add'>+  {0x011b, {1|U, {0x011a}}},</div><div class='add'>+  {0x011d, {1|U, {0x011c}}},</div><div class='add'>+  {0x011f, {1|U, {0x011e}}},</div><div class='add'>+  {0x0121, {1|U, {0x0120}}},</div><div class='add'>+  {0x0123, {1|U, {0x0122}}},</div><div class='add'>+  {0x0125, {1|U, {0x0124}}},</div><div class='add'>+  {0x0127, {1|U, {0x0126}}},</div><div class='add'>+  {0x0129, {1|U, {0x0128}}},</div><div class='add'>+  {0x012b, {1|U, {0x012a}}},</div><div class='add'>+  {0x012d, {1|U, {0x012c}}},</div><div class='add'>+  {0x012f, {1|U, {0x012e}}},</div><div class='add'>+  {0x0133, {1|U, {0x0132}}},</div><div class='add'>+  {0x0135, {1|U, {0x0134}}},</div><div class='add'>+  {0x0137, {1|U, {0x0136}}},</div><div class='add'>+  {0x013a, {1|U, {0x0139}}},</div><div class='add'>+  {0x013c, {1|U, {0x013b}}},</div><div class='add'>+  {0x013e, {1|U, {0x013d}}},</div><div class='add'>+  {0x0140, {1|U, {0x013f}}},</div><div class='add'>+  {0x0142, {1|U, {0x0141}}},</div><div class='add'>+  {0x0144, {1|U, {0x0143}}},</div><div class='add'>+  {0x0146, {1|U, {0x0145}}},</div><div class='add'>+  {0x0148, {1|U, {0x0147}}},</div><div class='add'>+  {0x014b, {1|U, {0x014a}}},</div><div class='add'>+  {0x014d, {1|U, {0x014c}}},</div><div class='add'>+  {0x014f, {1|U, {0x014e}}},</div><div class='add'>+  {0x0151, {1|U, {0x0150}}},</div><div class='add'>+  {0x0153, {1|U, {0x0152}}},</div><div class='add'>+  {0x0155, {1|U, {0x0154}}},</div><div class='add'>+  {0x0157, {1|U, {0x0156}}},</div><div class='add'>+  {0x0159, {1|U, {0x0158}}},</div><div class='add'>+  {0x015b, {1|U, {0x015a}}},</div><div class='add'>+  {0x015d, {1|U, {0x015c}}},</div><div class='add'>+  {0x015f, {1|U, {0x015e}}},</div><div class='add'>+  {0x0161, {1|U, {0x0160}}},</div><div class='add'>+  {0x0163, {1|U, {0x0162}}},</div><div class='add'>+  {0x0165, {1|U, {0x0164}}},</div><div class='add'>+  {0x0167, {1|U, {0x0166}}},</div><div class='add'>+  {0x0169, {1|U, {0x0168}}},</div><div class='add'>+  {0x016b, {1|U, {0x016a}}},</div><div class='add'>+  {0x016d, {1|U, {0x016c}}},</div><div class='add'>+  {0x016f, {1|U, {0x016e}}},</div><div class='add'>+  {0x0171, {1|U, {0x0170}}},</div><div class='add'>+  {0x0173, {1|U, {0x0172}}},</div><div class='add'>+  {0x0175, {1|U, {0x0174}}},</div><div class='add'>+  {0x0177, {1|U, {0x0176}}},</div><div class='add'>+  {0x017a, {1|U, {0x0179}}},</div><div class='add'>+  {0x017c, {1|U, {0x017b}}},</div><div class='add'>+  {0x017e, {1|U, {0x017d}}},</div><div class='add'>+  {0x0180, {1|U, {0x0243}}},</div><div class='add'>+  {0x0183, {1|U, {0x0182}}},</div><div class='add'>+  {0x0185, {1|U, {0x0184}}},</div><div class='add'>+  {0x0188, {1|U, {0x0187}}},</div><div class='add'>+  {0x018c, {1|U, {0x018b}}},</div><div class='add'>+  {0x0192, {1|U, {0x0191}}},</div><div class='add'>+  {0x0195, {1|U, {0x01f6}}},</div><div class='add'>+  {0x0199, {1|U, {0x0198}}},</div><div class='add'>+  {0x019a, {1|U, {0x023d}}},</div><div class='add'>+  {0x019e, {1|U, {0x0220}}},</div><div class='add'>+  {0x01a1, {1|U, {0x01a0}}},</div><div class='add'>+  {0x01a3, {1|U, {0x01a2}}},</div><div class='add'>+  {0x01a5, {1|U, {0x01a4}}},</div><div class='add'>+  {0x01a8, {1|U, {0x01a7}}},</div><div class='add'>+  {0x01ad, {1|U, {0x01ac}}},</div><div class='add'>+  {0x01b0, {1|U, {0x01af}}},</div><div class='add'>+  {0x01b4, {1|U, {0x01b3}}},</div><div class='add'>+  {0x01b6, {1|U, {0x01b5}}},</div><div class='add'>+  {0x01b9, {1|U, {0x01b8}}},</div><div class='add'>+  {0x01bd, {1|U, {0x01bc}}},</div><div class='add'>+  {0x01bf, {1|U, {0x01f7}}},</div><div class='add'>+  {0x01c6, {2|U|ST, {0x01c4, 0x01c5}}},</div><div class='add'>+  {0x01c9, {2|U|ST, {0x01c7, 0x01c8}}},</div><div class='add'>+  {0x01cc, {2|U|ST, {0x01ca, 0x01cb}}},</div><div class='add'>+  {0x01ce, {1|U, {0x01cd}}},</div><div class='add'>+  {0x01d0, {1|U, {0x01cf}}},</div><div class='add'>+  {0x01d2, {1|U, {0x01d1}}},</div><div class='add'>+  {0x01d4, {1|U, {0x01d3}}},</div><div class='add'>+  {0x01d6, {1|U, {0x01d5}}},</div><div class='add'>+  {0x01d8, {1|U, {0x01d7}}},</div><div class='add'>+  {0x01da, {1|U, {0x01d9}}},</div><div class='add'>+  {0x01dc, {1|U, {0x01db}}},</div><div class='add'>+  {0x01dd, {1|U, {0x018e}}},</div><div class='add'>+  {0x01df, {1|U, {0x01de}}},</div><div class='add'>+  {0x01e1, {1|U, {0x01e0}}},</div><div class='add'>+  {0x01e3, {1|U, {0x01e2}}},</div><div class='add'>+  {0x01e5, {1|U, {0x01e4}}},</div><div class='add'>+  {0x01e7, {1|U, {0x01e6}}},</div><div class='add'>+  {0x01e9, {1|U, {0x01e8}}},</div><div class='add'>+  {0x01eb, {1|U, {0x01ea}}},</div><div class='add'>+  {0x01ed, {1|U, {0x01ec}}},</div><div class='add'>+  {0x01ef, {1|U, {0x01ee}}},</div><div class='add'>+  {0x01f3, {2|U|ST, {0x01f1, 0x01f2}}},</div><div class='add'>+  {0x01f5, {1|U, {0x01f4}}},</div><div class='add'>+  {0x01f9, {1|U, {0x01f8}}},</div><div class='add'>+  {0x01fb, {1|U, {0x01fa}}},</div><div class='add'>+  {0x01fd, {1|U, {0x01fc}}},</div><div class='add'>+  {0x01ff, {1|U, {0x01fe}}},</div><div class='add'>+  {0x0201, {1|U, {0x0200}}},</div><div class='add'>+  {0x0203, {1|U, {0x0202}}},</div><div class='add'>+  {0x0205, {1|U, {0x0204}}},</div><div class='add'>+  {0x0207, {1|U, {0x0206}}},</div><div class='add'>+  {0x0209, {1|U, {0x0208}}},</div><div class='add'>+  {0x020b, {1|U, {0x020a}}},</div><div class='add'>+  {0x020d, {1|U, {0x020c}}},</div><div class='add'>+  {0x020f, {1|U, {0x020e}}},</div><div class='add'>+  {0x0211, {1|U, {0x0210}}},</div><div class='add'>+  {0x0213, {1|U, {0x0212}}},</div><div class='add'>+  {0x0215, {1|U, {0x0214}}},</div><div class='add'>+  {0x0217, {1|U, {0x0216}}},</div><div class='add'>+  {0x0219, {1|U, {0x0218}}},</div><div class='add'>+  {0x021b, {1|U, {0x021a}}},</div><div class='add'>+  {0x021d, {1|U, {0x021c}}},</div><div class='add'>+  {0x021f, {1|U, {0x021e}}},</div><div class='add'>+  {0x0223, {1|U, {0x0222}}},</div><div class='add'>+  {0x0225, {1|U, {0x0224}}},</div><div class='add'>+  {0x0227, {1|U, {0x0226}}},</div><div class='add'>+  {0x0229, {1|U, {0x0228}}},</div><div class='add'>+  {0x022b, {1|U, {0x022a}}},</div><div class='add'>+  {0x022d, {1|U, {0x022c}}},</div><div class='add'>+  {0x022f, {1|U, {0x022e}}},</div><div class='add'>+  {0x0231, {1|U, {0x0230}}},</div><div class='add'>+  {0x0233, {1|U, {0x0232}}},</div><div class='add'>+  {0x023c, {1|U, {0x023b}}},</div><div class='add'>+  {0x023f, {1|U, {0x2c7e}}},</div><div class='add'>+  {0x0240, {1|U, {0x2c7f}}},</div><div class='add'>+  {0x0242, {1|U, {0x0241}}},</div><div class='add'>+  {0x0247, {1|U, {0x0246}}},</div><div class='add'>+  {0x0249, {1|U, {0x0248}}},</div><div class='add'>+  {0x024b, {1|U, {0x024a}}},</div><div class='add'>+  {0x024d, {1|U, {0x024c}}},</div><div class='add'>+  {0x024f, {1|U, {0x024e}}},</div><div class='add'>+  {0x0250, {1|U, {0x2c6f}}},</div><div class='add'>+  {0x0251, {1|U, {0x2c6d}}},</div><div class='add'>+  {0x0252, {1|U, {0x2c70}}},</div><div class='add'>+  {0x0253, {1|U, {0x0181}}},</div><div class='add'>+  {0x0254, {1|U, {0x0186}}},</div><div class='add'>+  {0x0256, {1|U, {0x0189}}},</div><div class='add'>+  {0x0257, {1|U, {0x018a}}},</div><div class='add'>+  {0x0259, {1|U, {0x018f}}},</div><div class='add'>+  {0x025b, {1|U, {0x0190}}},</div><div class='add'>+  {0x025c, {1|U, {0xa7ab}}},</div><div class='add'>+  {0x0260, {1|U, {0x0193}}},</div><div class='add'>+  {0x0261, {1|U, {0xa7ac}}},</div><div class='add'>+  {0x0263, {1|U, {0x0194}}},</div><div class='add'>+  {0x0265, {1|U, {0xa78d}}},</div><div class='add'>+  {0x0266, {1|U, {0xa7aa}}},</div><div class='add'>+  {0x0268, {1|U, {0x0197}}},</div><div class='add'>+  {0x0269, {1|U, {0x0196}}},</div><div class='add'>+  {0x026a, {1|U, {0xa7ae}}},</div><div class='add'>+  {0x026b, {1|U, {0x2c62}}},</div><div class='add'>+  {0x026c, {1|U, {0xa7ad}}},</div><div class='add'>+  {0x026f, {1|U, {0x019c}}},</div><div class='add'>+  {0x0271, {1|U, {0x2c6e}}},</div><div class='add'>+  {0x0272, {1|U, {0x019d}}},</div><div class='add'>+  {0x0275, {1|U, {0x019f}}},</div><div class='add'>+  {0x027d, {1|U, {0x2c64}}},</div><div class='add'>+  {0x0280, {1|U, {0x01a6}}},</div><div class='add'>+  {0x0282, {1|U, {0xa7c5}}},</div><div class='add'>+  {0x0283, {1|U, {0x01a9}}},</div><div class='add'>+  {0x0287, {1|U, {0xa7b1}}},</div><div class='add'>+  {0x0288, {1|U, {0x01ae}}},</div><div class='add'>+  {0x0289, {1|U, {0x0244}}},</div><div class='add'>+  {0x028a, {1|U, {0x01b1}}},</div><div class='add'>+  {0x028b, {1|U, {0x01b2}}},</div><div class='add'>+  {0x028c, {1|U, {0x0245}}},</div><div class='add'>+  {0x0292, {1|U, {0x01b7}}},</div><div class='add'>+  {0x029d, {1|U, {0xa7b2}}},</div><div class='add'>+  {0x029e, {1|U, {0xa7b0}}},</div><div class='add'>+  {0x0371, {1|U, {0x0370}}},</div><div class='add'>+  {0x0373, {1|U, {0x0372}}},</div><div class='add'>+  {0x0377, {1|U, {0x0376}}},</div><div class='add'>+  {0x037b, {1|U, {0x03fd}}},</div><div class='add'>+  {0x037c, {1|U, {0x03fe}}},</div><div class='add'>+  {0x037d, {1|U, {0x03ff}}},</div><div class='add'>+  {0x03ac, {1|U, {0x0386}}},</div><div class='add'>+  {0x03ad, {1|U, {0x0388}}},</div><div class='add'>+  {0x03ae, {1|U, {0x0389}}},</div><div class='add'>+  {0x03af, {1|U, {0x038a}}},</div><div class='add'>+  {0x03b1, {1|U, {0x0391}}},</div><div class='add'>+  {0x03b2, {2|U, {0x0392, 0x03d0}}},</div><div class='add'>+  {0x03b3, {1|U, {0x0393}}},</div><div class='add'>+  {0x03b4, {1|U, {0x0394}}},</div><div class='add'>+  {0x03b5, {2|U, {0x0395, 0x03f5}}},</div><div class='add'>+  {0x03b6, {1|U, {0x0396}}},</div><div class='add'>+  {0x03b7, {1|U, {0x0397}}},</div><div class='add'>+  {0x03b8, {3|U, {0x0398, 0x03d1, 0x03f4}}},</div><div class='add'>+  {0x03b9, {3|U, {0x0399, 0x0345, 0x1fbe}}},</div><div class='add'>+  {0x03ba, {2|U, {0x039a, 0x03f0}}},</div><div class='add'>+  {0x03bb, {1|U, {0x039b}}},</div><div class='add'>+  {0x03bc, {2|U, {0x039c, 0x00b5}}},</div><div class='add'>+  {0x03bd, {1|U, {0x039d}}},</div><div class='add'>+  {0x03be, {1|U, {0x039e}}},</div><div class='add'>+  {0x03bf, {1|U, {0x039f}}},</div><div class='add'>+  {0x03c0, {2|U, {0x03a0, 0x03d6}}},</div><div class='add'>+  {0x03c1, {2|U, {0x03a1, 0x03f1}}},</div><div class='add'>+  {0x03c3, {2|U, {0x03a3, 0x03c2}}},</div><div class='add'>+  {0x03c4, {1|U, {0x03a4}}},</div><div class='add'>+  {0x03c5, {1|U, {0x03a5}}},</div><div class='add'>+  {0x03c6, {2|U, {0x03a6, 0x03d5}}},</div><div class='add'>+  {0x03c7, {1|U, {0x03a7}}},</div><div class='add'>+  {0x03c8, {1|U, {0x03a8}}},</div><div class='add'>+  {0x03c9, {2|U, {0x03a9, 0x2126}}},</div><div class='add'>+  {0x03ca, {1|U, {0x03aa}}},</div><div class='add'>+  {0x03cb, {1|U, {0x03ab}}},</div><div class='add'>+  {0x03cc, {1|U, {0x038c}}},</div><div class='add'>+  {0x03cd, {1|U, {0x038e}}},</div><div class='add'>+  {0x03ce, {1|U, {0x038f}}},</div><div class='add'>+  {0x03d7, {1|U, {0x03cf}}},</div><div class='add'>+  {0x03d9, {1|U, {0x03d8}}},</div><div class='add'>+  {0x03db, {1|U, {0x03da}}},</div><div class='add'>+  {0x03dd, {1|U, {0x03dc}}},</div><div class='add'>+  {0x03df, {1|U, {0x03de}}},</div><div class='add'>+  {0x03e1, {1|U, {0x03e0}}},</div><div class='add'>+  {0x03e3, {1|U, {0x03e2}}},</div><div class='add'>+  {0x03e5, {1|U, {0x03e4}}},</div><div class='add'>+  {0x03e7, {1|U, {0x03e6}}},</div><div class='add'>+  {0x03e9, {1|U, {0x03e8}}},</div><div class='add'>+  {0x03eb, {1|U, {0x03ea}}},</div><div class='add'>+  {0x03ed, {1|U, {0x03ec}}},</div><div class='add'>+  {0x03ef, {1|U, {0x03ee}}},</div><div class='add'>+  {0x03f2, {1|U, {0x03f9}}},</div><div class='add'>+  {0x03f3, {1|U, {0x037f}}},</div><div class='add'>+  {0x03f8, {1|U, {0x03f7}}},</div><div class='add'>+  {0x03fb, {1|U, {0x03fa}}},</div><div class='add'>+  {0x0430, {1|U, {0x0410}}},</div><div class='add'>+  {0x0431, {1|U, {0x0411}}},</div><div class='add'>+  {0x0432, {2|U, {0x0412, 0x1c80}}},</div><div class='add'>+  {0x0433, {1|U, {0x0413}}},</div><div class='add'>+  {0x0434, {2|U, {0x0414, 0x1c81}}},</div><div class='add'>+  {0x0435, {1|U, {0x0415}}},</div><div class='add'>+  {0x0436, {1|U, {0x0416}}},</div><div class='add'>+  {0x0437, {1|U, {0x0417}}},</div><div class='add'>+  {0x0438, {1|U, {0x0418}}},</div><div class='add'>+  {0x0439, {1|U, {0x0419}}},</div><div class='add'>+  {0x043a, {1|U, {0x041a}}},</div><div class='add'>+  {0x043b, {1|U, {0x041b}}},</div><div class='add'>+  {0x043c, {1|U, {0x041c}}},</div><div class='add'>+  {0x043d, {1|U, {0x041d}}},</div><div class='add'>+  {0x043e, {2|U, {0x041e, 0x1c82}}},</div><div class='add'>+  {0x043f, {1|U, {0x041f}}},</div><div class='add'>+  {0x0440, {1|U, {0x0420}}},</div><div class='add'>+  {0x0441, {2|U, {0x0421, 0x1c83}}},</div><div class='add'>+  {0x0442, {3|U, {0x0422, 0x1c84, 0x1c85}}},</div><div class='add'>+  {0x0443, {1|U, {0x0423}}},</div><div class='add'>+  {0x0444, {1|U, {0x0424}}},</div><div class='add'>+  {0x0445, {1|U, {0x0425}}},</div><div class='add'>+  {0x0446, {1|U, {0x0426}}},</div><div class='add'>+  {0x0447, {1|U, {0x0427}}},</div><div class='add'>+  {0x0448, {1|U, {0x0428}}},</div><div class='add'>+  {0x0449, {1|U, {0x0429}}},</div><div class='add'>+  {0x044a, {2|U, {0x042a, 0x1c86}}},</div><div class='add'>+  {0x044b, {1|U, {0x042b}}},</div><div class='add'>+  {0x044c, {1|U, {0x042c}}},</div><div class='add'>+  {0x044d, {1|U, {0x042d}}},</div><div class='add'>+  {0x044e, {1|U, {0x042e}}},</div><div class='add'>+  {0x044f, {1|U, {0x042f}}},</div><div class='add'>+  {0x0450, {1|U, {0x0400}}},</div><div class='add'>+  {0x0451, {1|U, {0x0401}}},</div><div class='add'>+  {0x0452, {1|U, {0x0402}}},</div><div class='add'>+  {0x0453, {1|U, {0x0403}}},</div><div class='add'>+  {0x0454, {1|U, {0x0404}}},</div><div class='add'>+  {0x0455, {1|U, {0x0405}}},</div><div class='add'>+  {0x0456, {1|U, {0x0406}}},</div><div class='add'>+  {0x0457, {1|U, {0x0407}}},</div><div class='add'>+  {0x0458, {1|U, {0x0408}}},</div><div class='add'>+  {0x0459, {1|U, {0x0409}}},</div><div class='add'>+  {0x045a, {1|U, {0x040a}}},</div><div class='add'>+  {0x045b, {1|U, {0x040b}}},</div><div class='add'>+  {0x045c, {1|U, {0x040c}}},</div><div class='add'>+  {0x045d, {1|U, {0x040d}}},</div><div class='add'>+  {0x045e, {1|U, {0x040e}}},</div><div class='add'>+  {0x045f, {1|U, {0x040f}}},</div><div class='add'>+  {0x0461, {1|U, {0x0460}}},</div><div class='add'>+  {0x0463, {2|U, {0x0462, 0x1c87}}},</div><div class='add'>+  {0x0465, {1|U, {0x0464}}},</div><div class='add'>+  {0x0467, {1|U, {0x0466}}},</div><div class='add'>+  {0x0469, {1|U, {0x0468}}},</div><div class='add'>+  {0x046b, {1|U, {0x046a}}},</div><div class='add'>+  {0x046d, {1|U, {0x046c}}},</div><div class='add'>+  {0x046f, {1|U, {0x046e}}},</div><div class='add'>+  {0x0471, {1|U, {0x0470}}},</div><div class='add'>+  {0x0473, {1|U, {0x0472}}},</div><div class='add'>+  {0x0475, {1|U, {0x0474}}},</div><div class='add'>+  {0x0477, {1|U, {0x0476}}},</div><div class='add'>+  {0x0479, {1|U, {0x0478}}},</div><div class='add'>+  {0x047b, {1|U, {0x047a}}},</div><div class='add'>+  {0x047d, {1|U, {0x047c}}},</div><div class='add'>+  {0x047f, {1|U, {0x047e}}},</div><div class='add'>+  {0x0481, {1|U, {0x0480}}},</div><div class='add'>+  {0x048b, {1|U, {0x048a}}},</div><div class='add'>+  {0x048d, {1|U, {0x048c}}},</div><div class='add'>+  {0x048f, {1|U, {0x048e}}},</div><div class='add'>+  {0x0491, {1|U, {0x0490}}},</div><div class='add'>+  {0x0493, {1|U, {0x0492}}},</div><div class='add'>+  {0x0495, {1|U, {0x0494}}},</div><div class='add'>+  {0x0497, {1|U, {0x0496}}},</div><div class='add'>+  {0x0499, {1|U, {0x0498}}},</div><div class='add'>+  {0x049b, {1|U, {0x049a}}},</div><div class='add'>+  {0x049d, {1|U, {0x049c}}},</div><div class='add'>+  {0x049f, {1|U, {0x049e}}},</div><div class='add'>+  {0x04a1, {1|U, {0x04a0}}},</div><div class='add'>+  {0x04a3, {1|U, {0x04a2}}},</div><div class='add'>+  {0x04a5, {1|U, {0x04a4}}},</div><div class='add'>+  {0x04a7, {1|U, {0x04a6}}},</div><div class='add'>+  {0x04a9, {1|U, {0x04a8}}},</div><div class='add'>+  {0x04ab, {1|U, {0x04aa}}},</div><div class='add'>+  {0x04ad, {1|U, {0x04ac}}},</div><div class='add'>+  {0x04af, {1|U, {0x04ae}}},</div><div class='add'>+  {0x04b1, {1|U, {0x04b0}}},</div><div class='add'>+  {0x04b3, {1|U, {0x04b2}}},</div><div class='add'>+  {0x04b5, {1|U, {0x04b4}}},</div><div class='add'>+  {0x04b7, {1|U, {0x04b6}}},</div><div class='add'>+  {0x04b9, {1|U, {0x04b8}}},</div><div class='add'>+  {0x04bb, {1|U, {0x04ba}}},</div><div class='add'>+  {0x04bd, {1|U, {0x04bc}}},</div><div class='add'>+  {0x04bf, {1|U, {0x04be}}},</div><div class='add'>+  {0x04c2, {1|U, {0x04c1}}},</div><div class='add'>+  {0x04c4, {1|U, {0x04c3}}},</div><div class='add'>+  {0x04c6, {1|U, {0x04c5}}},</div><div class='add'>+  {0x04c8, {1|U, {0x04c7}}},</div><div class='add'>+  {0x04ca, {1|U, {0x04c9}}},</div><div class='add'>+  {0x04cc, {1|U, {0x04cb}}},</div><div class='add'>+  {0x04ce, {1|U, {0x04cd}}},</div><div class='add'>+  {0x04cf, {1|U, {0x04c0}}},</div><div class='add'>+  {0x04d1, {1|U, {0x04d0}}},</div><div class='add'>+  {0x04d3, {1|U, {0x04d2}}},</div><div class='add'>+  {0x04d5, {1|U, {0x04d4}}},</div><div class='add'>+  {0x04d7, {1|U, {0x04d6}}},</div><div class='add'>+  {0x04d9, {1|U, {0x04d8}}},</div><div class='add'>+  {0x04db, {1|U, {0x04da}}},</div><div class='add'>+  {0x04dd, {1|U, {0x04dc}}},</div><div class='add'>+  {0x04df, {1|U, {0x04de}}},</div><div class='add'>+  {0x04e1, {1|U, {0x04e0}}},</div><div class='add'>+  {0x04e3, {1|U, {0x04e2}}},</div><div class='add'>+  {0x04e5, {1|U, {0x04e4}}},</div><div class='add'>+  {0x04e7, {1|U, {0x04e6}}},</div><div class='add'>+  {0x04e9, {1|U, {0x04e8}}},</div><div class='add'>+  {0x04eb, {1|U, {0x04ea}}},</div><div class='add'>+  {0x04ed, {1|U, {0x04ec}}},</div><div class='add'>+  {0x04ef, {1|U, {0x04ee}}},</div><div class='add'>+  {0x04f1, {1|U, {0x04f0}}},</div><div class='add'>+  {0x04f3, {1|U, {0x04f2}}},</div><div class='add'>+  {0x04f5, {1|U, {0x04f4}}},</div><div class='add'>+  {0x04f7, {1|U, {0x04f6}}},</div><div class='add'>+  {0x04f9, {1|U, {0x04f8}}},</div><div class='add'>+  {0x04fb, {1|U, {0x04fa}}},</div><div class='add'>+  {0x04fd, {1|U, {0x04fc}}},</div><div class='add'>+  {0x04ff, {1|U, {0x04fe}}},</div><div class='add'>+  {0x0501, {1|U, {0x0500}}},</div><div class='add'>+  {0x0503, {1|U, {0x0502}}},</div><div class='add'>+  {0x0505, {1|U, {0x0504}}},</div><div class='add'>+  {0x0507, {1|U, {0x0506}}},</div><div class='add'>+  {0x0509, {1|U, {0x0508}}},</div><div class='add'>+  {0x050b, {1|U, {0x050a}}},</div><div class='add'>+  {0x050d, {1|U, {0x050c}}},</div><div class='add'>+  {0x050f, {1|U, {0x050e}}},</div><div class='add'>+  {0x0511, {1|U, {0x0510}}},</div><div class='add'>+  {0x0513, {1|U, {0x0512}}},</div><div class='add'>+  {0x0515, {1|U, {0x0514}}},</div><div class='add'>+  {0x0517, {1|U, {0x0516}}},</div><div class='add'>+  {0x0519, {1|U, {0x0518}}},</div><div class='add'>+  {0x051b, {1|U, {0x051a}}},</div><div class='add'>+  {0x051d, {1|U, {0x051c}}},</div><div class='add'>+  {0x051f, {1|U, {0x051e}}},</div><div class='add'>+  {0x0521, {1|U, {0x0520}}},</div><div class='add'>+  {0x0523, {1|U, {0x0522}}},</div><div class='add'>+  {0x0525, {1|U, {0x0524}}},</div><div class='add'>+  {0x0527, {1|U, {0x0526}}},</div><div class='add'>+  {0x0529, {1|U, {0x0528}}},</div><div class='add'>+  {0x052b, {1|U, {0x052a}}},</div><div class='add'>+  {0x052d, {1|U, {0x052c}}},</div><div class='add'>+  {0x052f, {1|U, {0x052e}}},</div><div class='add'>+  {0x0561, {1|U, {0x0531}}},</div><div class='add'>+  {0x0562, {1|U, {0x0532}}},</div><div class='add'>+  {0x0563, {1|U, {0x0533}}},</div><div class='add'>+  {0x0564, {1|U, {0x0534}}},</div><div class='add'>+  {0x0565, {1|U, {0x0535}}},</div><div class='add'>+  {0x0566, {1|U, {0x0536}}},</div><div class='add'>+  {0x0567, {1|U, {0x0537}}},</div><div class='add'>+  {0x0568, {1|U, {0x0538}}},</div><div class='add'>+  {0x0569, {1|U, {0x0539}}},</div><div class='add'>+  {0x056a, {1|U, {0x053a}}},</div><div class='add'>+  {0x056b, {1|U, {0x053b}}},</div><div class='add'>+  {0x056c, {1|U, {0x053c}}},</div><div class='add'>+  {0x056d, {1|U, {0x053d}}},</div><div class='add'>+  {0x056e, {1|U, {0x053e}}},</div><div class='add'>+  {0x056f, {1|U, {0x053f}}},</div><div class='add'>+  {0x0570, {1|U, {0x0540}}},</div><div class='add'>+  {0x0571, {1|U, {0x0541}}},</div><div class='add'>+  {0x0572, {1|U, {0x0542}}},</div><div class='add'>+  {0x0573, {1|U, {0x0543}}},</div><div class='add'>+  {0x0574, {1|U, {0x0544}}},</div><div class='add'>+  {0x0575, {1|U, {0x0545}}},</div><div class='add'>+  {0x0576, {1|U, {0x0546}}},</div><div class='add'>+  {0x0577, {1|U, {0x0547}}},</div><div class='add'>+  {0x0578, {1|U, {0x0548}}},</div><div class='add'>+  {0x0579, {1|U, {0x0549}}},</div><div class='add'>+  {0x057a, {1|U, {0x054a}}},</div><div class='add'>+  {0x057b, {1|U, {0x054b}}},</div><div class='add'>+  {0x057c, {1|U, {0x054c}}},</div><div class='add'>+  {0x057d, {1|U, {0x054d}}},</div><div class='add'>+  {0x057e, {1|U, {0x054e}}},</div><div class='add'>+  {0x057f, {1|U, {0x054f}}},</div><div class='add'>+  {0x0580, {1|U, {0x0550}}},</div><div class='add'>+  {0x0581, {1|U, {0x0551}}},</div><div class='add'>+  {0x0582, {1|U, {0x0552}}},</div><div class='add'>+  {0x0583, {1|U, {0x0553}}},</div><div class='add'>+  {0x0584, {1|U, {0x0554}}},</div><div class='add'>+  {0x0585, {1|U, {0x0555}}},</div><div class='add'>+  {0x0586, {1|U, {0x0556}}},</div><div class='add'>+  {0x10d0, {1|U|IT, {0x1c90}}},</div><div class='add'>+  {0x10d1, {1|U|IT, {0x1c91}}},</div><div class='add'>+  {0x10d2, {1|U|IT, {0x1c92}}},</div><div class='add'>+  {0x10d3, {1|U|IT, {0x1c93}}},</div><div class='add'>+  {0x10d4, {1|U|IT, {0x1c94}}},</div><div class='add'>+  {0x10d5, {1|U|IT, {0x1c95}}},</div><div class='add'>+  {0x10d6, {1|U|IT, {0x1c96}}},</div><div class='add'>+  {0x10d7, {1|U|IT, {0x1c97}}},</div><div class='add'>+  {0x10d8, {1|U|IT, {0x1c98}}},</div><div class='add'>+  {0x10d9, {1|U|IT, {0x1c99}}},</div><div class='add'>+  {0x10da, {1|U|IT, {0x1c9a}}},</div><div class='add'>+  {0x10db, {1|U|IT, {0x1c9b}}},</div><div class='add'>+  {0x10dc, {1|U|IT, {0x1c9c}}},</div><div class='add'>+  {0x10dd, {1|U|IT, {0x1c9d}}},</div><div class='add'>+  {0x10de, {1|U|IT, {0x1c9e}}},</div><div class='add'>+  {0x10df, {1|U|IT, {0x1c9f}}},</div><div class='add'>+  {0x10e0, {1|U|IT, {0x1ca0}}},</div><div class='add'>+  {0x10e1, {1|U|IT, {0x1ca1}}},</div><div class='add'>+  {0x10e2, {1|U|IT, {0x1ca2}}},</div><div class='add'>+  {0x10e3, {1|U|IT, {0x1ca3}}},</div><div class='add'>+  {0x10e4, {1|U|IT, {0x1ca4}}},</div><div class='add'>+  {0x10e5, {1|U|IT, {0x1ca5}}},</div><div class='add'>+  {0x10e6, {1|U|IT, {0x1ca6}}},</div><div class='add'>+  {0x10e7, {1|U|IT, {0x1ca7}}},</div><div class='add'>+  {0x10e8, {1|U|IT, {0x1ca8}}},</div><div class='add'>+  {0x10e9, {1|U|IT, {0x1ca9}}},</div><div class='add'>+  {0x10ea, {1|U|IT, {0x1caa}}},</div><div class='add'>+  {0x10eb, {1|U|IT, {0x1cab}}},</div><div class='add'>+  {0x10ec, {1|U|IT, {0x1cac}}},</div><div class='add'>+  {0x10ed, {1|U|IT, {0x1cad}}},</div><div class='add'>+  {0x10ee, {1|U|IT, {0x1cae}}},</div><div class='add'>+  {0x10ef, {1|U|IT, {0x1caf}}},</div><div class='add'>+  {0x10f0, {1|U|IT, {0x1cb0}}},</div><div class='add'>+  {0x10f1, {1|U|IT, {0x1cb1}}},</div><div class='add'>+  {0x10f2, {1|U|IT, {0x1cb2}}},</div><div class='add'>+  {0x10f3, {1|U|IT, {0x1cb3}}},</div><div class='add'>+  {0x10f4, {1|U|IT, {0x1cb4}}},</div><div class='add'>+  {0x10f5, {1|U|IT, {0x1cb5}}},</div><div class='add'>+  {0x10f6, {1|U|IT, {0x1cb6}}},</div><div class='add'>+  {0x10f7, {1|U|IT, {0x1cb7}}},</div><div class='add'>+  {0x10f8, {1|U|IT, {0x1cb8}}},</div><div class='add'>+  {0x10f9, {1|U|IT, {0x1cb9}}},</div><div class='add'>+  {0x10fa, {1|U|IT, {0x1cba}}},</div><div class='add'>+  {0x10fd, {1|U|IT, {0x1cbd}}},</div><div class='add'>+  {0x10fe, {1|U|IT, {0x1cbe}}},</div><div class='add'>+  {0x10ff, {1|U|IT, {0x1cbf}}},</div><div class='add'>+  {0x13a0, {1|D, {0xab70}}},</div><div class='add'>+  {0x13a1, {1|D, {0xab71}}},</div><div class='add'>+  {0x13a2, {1|D, {0xab72}}},</div><div class='add'>+  {0x13a3, {1|D, {0xab73}}},</div><div class='add'>+  {0x13a4, {1|D, {0xab74}}},</div><div class='add'>+  {0x13a5, {1|D, {0xab75}}},</div><div class='add'>+  {0x13a6, {1|D, {0xab76}}},</div><div class='add'>+  {0x13a7, {1|D, {0xab77}}},</div><div class='add'>+  {0x13a8, {1|D, {0xab78}}},</div><div class='add'>+  {0x13a9, {1|D, {0xab79}}},</div><div class='add'>+  {0x13aa, {1|D, {0xab7a}}},</div><div class='add'>+  {0x13ab, {1|D, {0xab7b}}},</div><div class='add'>+  {0x13ac, {1|D, {0xab7c}}},</div><div class='add'>+  {0x13ad, {1|D, {0xab7d}}},</div><div class='add'>+  {0x13ae, {1|D, {0xab7e}}},</div><div class='add'>+  {0x13af, {1|D, {0xab7f}}},</div><div class='add'>+  {0x13b0, {1|D, {0xab80}}},</div><div class='add'>+  {0x13b1, {1|D, {0xab81}}},</div><div class='add'>+  {0x13b2, {1|D, {0xab82}}},</div><div class='add'>+  {0x13b3, {1|D, {0xab83}}},</div><div class='add'>+  {0x13b4, {1|D, {0xab84}}},</div><div class='add'>+  {0x13b5, {1|D, {0xab85}}},</div><div class='add'>+  {0x13b6, {1|D, {0xab86}}},</div><div class='add'>+  {0x13b7, {1|D, {0xab87}}},</div><div class='add'>+  {0x13b8, {1|D, {0xab88}}},</div><div class='add'>+  {0x13b9, {1|D, {0xab89}}},</div><div class='add'>+  {0x13ba, {1|D, {0xab8a}}},</div><div class='add'>+  {0x13bb, {1|D, {0xab8b}}},</div><div class='add'>+  {0x13bc, {1|D, {0xab8c}}},</div><div class='add'>+  {0x13bd, {1|D, {0xab8d}}},</div><div class='add'>+  {0x13be, {1|D, {0xab8e}}},</div><div class='add'>+  {0x13bf, {1|D, {0xab8f}}},</div><div class='add'>+  {0x13c0, {1|D, {0xab90}}},</div><div class='add'>+  {0x13c1, {1|D, {0xab91}}},</div><div class='add'>+  {0x13c2, {1|D, {0xab92}}},</div><div class='add'>+  {0x13c3, {1|D, {0xab93}}},</div><div class='add'>+  {0x13c4, {1|D, {0xab94}}},</div><div class='add'>+  {0x13c5, {1|D, {0xab95}}},</div><div class='add'>+  {0x13c6, {1|D, {0xab96}}},</div><div class='add'>+  {0x13c7, {1|D, {0xab97}}},</div><div class='add'>+  {0x13c8, {1|D, {0xab98}}},</div><div class='add'>+  {0x13c9, {1|D, {0xab99}}},</div><div class='add'>+  {0x13ca, {1|D, {0xab9a}}},</div><div class='add'>+  {0x13cb, {1|D, {0xab9b}}},</div><div class='add'>+  {0x13cc, {1|D, {0xab9c}}},</div><div class='add'>+  {0x13cd, {1|D, {0xab9d}}},</div><div class='add'>+  {0x13ce, {1|D, {0xab9e}}},</div><div class='add'>+  {0x13cf, {1|D, {0xab9f}}},</div><div class='add'>+  {0x13d0, {1|D, {0xaba0}}},</div><div class='add'>+  {0x13d1, {1|D, {0xaba1}}},</div><div class='add'>+  {0x13d2, {1|D, {0xaba2}}},</div><div class='add'>+  {0x13d3, {1|D, {0xaba3}}},</div><div class='add'>+  {0x13d4, {1|D, {0xaba4}}},</div><div class='add'>+  {0x13d5, {1|D, {0xaba5}}},</div><div class='add'>+  {0x13d6, {1|D, {0xaba6}}},</div><div class='add'>+  {0x13d7, {1|D, {0xaba7}}},</div><div class='add'>+  {0x13d8, {1|D, {0xaba8}}},</div><div class='add'>+  {0x13d9, {1|D, {0xaba9}}},</div><div class='add'>+  {0x13da, {1|D, {0xabaa}}},</div><div class='add'>+  {0x13db, {1|D, {0xabab}}},</div><div class='add'>+  {0x13dc, {1|D, {0xabac}}},</div><div class='add'>+  {0x13dd, {1|D, {0xabad}}},</div><div class='add'>+  {0x13de, {1|D, {0xabae}}},</div><div class='add'>+  {0x13df, {1|D, {0xabaf}}},</div><div class='add'>+  {0x13e0, {1|D, {0xabb0}}},</div><div class='add'>+  {0x13e1, {1|D, {0xabb1}}},</div><div class='add'>+  {0x13e2, {1|D, {0xabb2}}},</div><div class='add'>+  {0x13e3, {1|D, {0xabb3}}},</div><div class='add'>+  {0x13e4, {1|D, {0xabb4}}},</div><div class='add'>+  {0x13e5, {1|D, {0xabb5}}},</div><div class='add'>+  {0x13e6, {1|D, {0xabb6}}},</div><div class='add'>+  {0x13e7, {1|D, {0xabb7}}},</div><div class='add'>+  {0x13e8, {1|D, {0xabb8}}},</div><div class='add'>+  {0x13e9, {1|D, {0xabb9}}},</div><div class='add'>+  {0x13ea, {1|D, {0xabba}}},</div><div class='add'>+  {0x13eb, {1|D, {0xabbb}}},</div><div class='add'>+  {0x13ec, {1|D, {0xabbc}}},</div><div class='add'>+  {0x13ed, {1|D, {0xabbd}}},</div><div class='add'>+  {0x13ee, {1|D, {0xabbe}}},</div><div class='add'>+  {0x13ef, {1|D, {0xabbf}}},</div><div class='add'>+  {0x13f0, {1|D, {0x13f8}}},</div><div class='add'>+  {0x13f1, {1|D, {0x13f9}}},</div><div class='add'>+  {0x13f2, {1|D, {0x13fa}}},</div><div class='add'>+  {0x13f3, {1|D, {0x13fb}}},</div><div class='add'>+  {0x13f4, {1|D, {0x13fc}}},</div><div class='add'>+  {0x13f5, {1|D, {0x13fd}}},</div><div class='add'>+  {0x1d79, {1|U, {0xa77d}}},</div><div class='add'>+  {0x1d7d, {1|U, {0x2c63}}},</div><div class='add'>+  {0x1d8e, {1|U, {0xa7c6}}},</div><div class='add'>+  {0x1e01, {1|U, {0x1e00}}},</div><div class='add'>+  {0x1e03, {1|U, {0x1e02}}},</div><div class='add'>+  {0x1e05, {1|U, {0x1e04}}},</div><div class='add'>+  {0x1e07, {1|U, {0x1e06}}},</div><div class='add'>+  {0x1e09, {1|U, {0x1e08}}},</div><div class='add'>+  {0x1e0b, {1|U, {0x1e0a}}},</div><div class='add'>+  {0x1e0d, {1|U, {0x1e0c}}},</div><div class='add'>+  {0x1e0f, {1|U, {0x1e0e}}},</div><div class='add'>+  {0x1e11, {1|U, {0x1e10}}},</div><div class='add'>+  {0x1e13, {1|U, {0x1e12}}},</div><div class='add'>+  {0x1e15, {1|U, {0x1e14}}},</div><div class='add'>+  {0x1e17, {1|U, {0x1e16}}},</div><div class='add'>+  {0x1e19, {1|U, {0x1e18}}},</div><div class='add'>+  {0x1e1b, {1|U, {0x1e1a}}},</div><div class='add'>+  {0x1e1d, {1|U, {0x1e1c}}},</div><div class='add'>+  {0x1e1f, {1|U, {0x1e1e}}},</div><div class='add'>+  {0x1e21, {1|U, {0x1e20}}},</div><div class='add'>+  {0x1e23, {1|U, {0x1e22}}},</div><div class='add'>+  {0x1e25, {1|U, {0x1e24}}},</div><div class='add'>+  {0x1e27, {1|U, {0x1e26}}},</div><div class='add'>+  {0x1e29, {1|U, {0x1e28}}},</div><div class='add'>+  {0x1e2b, {1|U, {0x1e2a}}},</div><div class='add'>+  {0x1e2d, {1|U, {0x1e2c}}},</div><div class='add'>+  {0x1e2f, {1|U, {0x1e2e}}},</div><div class='add'>+  {0x1e31, {1|U, {0x1e30}}},</div><div class='add'>+  {0x1e33, {1|U, {0x1e32}}},</div><div class='add'>+  {0x1e35, {1|U, {0x1e34}}},</div><div class='add'>+  {0x1e37, {1|U, {0x1e36}}},</div><div class='add'>+  {0x1e39, {1|U, {0x1e38}}},</div><div class='add'>+  {0x1e3b, {1|U, {0x1e3a}}},</div><div class='add'>+  {0x1e3d, {1|U, {0x1e3c}}},</div><div class='add'>+  {0x1e3f, {1|U, {0x1e3e}}},</div><div class='add'>+  {0x1e41, {1|U, {0x1e40}}},</div><div class='add'>+  {0x1e43, {1|U, {0x1e42}}},</div><div class='add'>+  {0x1e45, {1|U, {0x1e44}}},</div><div class='add'>+  {0x1e47, {1|U, {0x1e46}}},</div><div class='add'>+  {0x1e49, {1|U, {0x1e48}}},</div><div class='add'>+  {0x1e4b, {1|U, {0x1e4a}}},</div><div class='add'>+  {0x1e4d, {1|U, {0x1e4c}}},</div><div class='add'>+  {0x1e4f, {1|U, {0x1e4e}}},</div><div class='add'>+  {0x1e51, {1|U, {0x1e50}}},</div><div class='add'>+  {0x1e53, {1|U, {0x1e52}}},</div><div class='add'>+  {0x1e55, {1|U, {0x1e54}}},</div><div class='add'>+  {0x1e57, {1|U, {0x1e56}}},</div><div class='add'>+  {0x1e59, {1|U, {0x1e58}}},</div><div class='add'>+  {0x1e5b, {1|U, {0x1e5a}}},</div><div class='add'>+  {0x1e5d, {1|U, {0x1e5c}}},</div><div class='add'>+  {0x1e5f, {1|U, {0x1e5e}}},</div><div class='add'>+  {0x1e61, {2|U, {0x1e60, 0x1e9b}}},</div><div class='add'>+  {0x1e63, {1|U, {0x1e62}}},</div><div class='add'>+  {0x1e65, {1|U, {0x1e64}}},</div><div class='add'>+  {0x1e67, {1|U, {0x1e66}}},</div><div class='add'>+  {0x1e69, {1|U, {0x1e68}}},</div><div class='add'>+  {0x1e6b, {1|U, {0x1e6a}}},</div><div class='add'>+  {0x1e6d, {1|U, {0x1e6c}}},</div><div class='add'>+  {0x1e6f, {1|U, {0x1e6e}}},</div><div class='add'>+  {0x1e71, {1|U, {0x1e70}}},</div><div class='add'>+  {0x1e73, {1|U, {0x1e72}}},</div><div class='add'>+  {0x1e75, {1|U, {0x1e74}}},</div><div class='add'>+  {0x1e77, {1|U, {0x1e76}}},</div><div class='add'>+  {0x1e79, {1|U, {0x1e78}}},</div><div class='add'>+  {0x1e7b, {1|U, {0x1e7a}}},</div><div class='add'>+  {0x1e7d, {1|U, {0x1e7c}}},</div><div class='add'>+  {0x1e7f, {1|U, {0x1e7e}}},</div><div class='add'>+  {0x1e81, {1|U, {0x1e80}}},</div><div class='add'>+  {0x1e83, {1|U, {0x1e82}}},</div><div class='add'>+  {0x1e85, {1|U, {0x1e84}}},</div><div class='add'>+  {0x1e87, {1|U, {0x1e86}}},</div><div class='add'>+  {0x1e89, {1|U, {0x1e88}}},</div><div class='add'>+  {0x1e8b, {1|U, {0x1e8a}}},</div><div class='add'>+  {0x1e8d, {1|U, {0x1e8c}}},</div><div class='add'>+  {0x1e8f, {1|U, {0x1e8e}}},</div><div class='add'>+  {0x1e91, {1|U, {0x1e90}}},</div><div class='add'>+  {0x1e93, {1|U, {0x1e92}}},</div><div class='add'>+  {0x1e95, {1|U, {0x1e94}}},</div><div class='add'>+  {0x1ea1, {1|U, {0x1ea0}}},</div><div class='add'>+  {0x1ea3, {1|U, {0x1ea2}}},</div><div class='add'>+  {0x1ea5, {1|U, {0x1ea4}}},</div><div class='add'>+  {0x1ea7, {1|U, {0x1ea6}}},</div><div class='add'>+  {0x1ea9, {1|U, {0x1ea8}}},</div><div class='add'>+  {0x1eab, {1|U, {0x1eaa}}},</div><div class='add'>+  {0x1ead, {1|U, {0x1eac}}},</div><div class='add'>+  {0x1eaf, {1|U, {0x1eae}}},</div><div class='add'>+  {0x1eb1, {1|U, {0x1eb0}}},</div><div class='add'>+  {0x1eb3, {1|U, {0x1eb2}}},</div><div class='add'>+  {0x1eb5, {1|U, {0x1eb4}}},</div><div class='add'>+  {0x1eb7, {1|U, {0x1eb6}}},</div><div class='add'>+  {0x1eb9, {1|U, {0x1eb8}}},</div><div class='add'>+  {0x1ebb, {1|U, {0x1eba}}},</div><div class='add'>+  {0x1ebd, {1|U, {0x1ebc}}},</div><div class='add'>+  {0x1ebf, {1|U, {0x1ebe}}},</div><div class='add'>+  {0x1ec1, {1|U, {0x1ec0}}},</div><div class='add'>+  {0x1ec3, {1|U, {0x1ec2}}},</div><div class='add'>+  {0x1ec5, {1|U, {0x1ec4}}},</div><div class='add'>+  {0x1ec7, {1|U, {0x1ec6}}},</div><div class='add'>+  {0x1ec9, {1|U, {0x1ec8}}},</div><div class='add'>+  {0x1ecb, {1|U, {0x1eca}}},</div><div class='add'>+  {0x1ecd, {1|U, {0x1ecc}}},</div><div class='add'>+  {0x1ecf, {1|U, {0x1ece}}},</div><div class='add'>+  {0x1ed1, {1|U, {0x1ed0}}},</div><div class='add'>+  {0x1ed3, {1|U, {0x1ed2}}},</div><div class='add'>+  {0x1ed5, {1|U, {0x1ed4}}},</div><div class='add'>+  {0x1ed7, {1|U, {0x1ed6}}},</div><div class='add'>+  {0x1ed9, {1|U, {0x1ed8}}},</div><div class='add'>+  {0x1edb, {1|U, {0x1eda}}},</div><div class='add'>+  {0x1edd, {1|U, {0x1edc}}},</div><div class='add'>+  {0x1edf, {1|U, {0x1ede}}},</div><div class='add'>+  {0x1ee1, {1|U, {0x1ee0}}},</div><div class='add'>+  {0x1ee3, {1|U, {0x1ee2}}},</div><div class='add'>+  {0x1ee5, {1|U, {0x1ee4}}},</div><div class='add'>+  {0x1ee7, {1|U, {0x1ee6}}},</div><div class='add'>+  {0x1ee9, {1|U, {0x1ee8}}},</div><div class='add'>+  {0x1eeb, {1|U, {0x1eea}}},</div><div class='add'>+  {0x1eed, {1|U, {0x1eec}}},</div><div class='add'>+  {0x1eef, {1|U, {0x1eee}}},</div><div class='add'>+  {0x1ef1, {1|U, {0x1ef0}}},</div><div class='add'>+  {0x1ef3, {1|U, {0x1ef2}}},</div><div class='add'>+  {0x1ef5, {1|U, {0x1ef4}}},</div><div class='add'>+  {0x1ef7, {1|U, {0x1ef6}}},</div><div class='add'>+  {0x1ef9, {1|U, {0x1ef8}}},</div><div class='add'>+  {0x1efb, {1|U, {0x1efa}}},</div><div class='add'>+  {0x1efd, {1|U, {0x1efc}}},</div><div class='add'>+  {0x1eff, {1|U, {0x1efe}}},</div><div class='add'>+  {0x1f00, {1|U, {0x1f08}}},</div><div class='add'>+  {0x1f01, {1|U, {0x1f09}}},</div><div class='add'>+  {0x1f02, {1|U, {0x1f0a}}},</div><div class='add'>+  {0x1f03, {1|U, {0x1f0b}}},</div><div class='add'>+  {0x1f04, {1|U, {0x1f0c}}},</div><div class='add'>+  {0x1f05, {1|U, {0x1f0d}}},</div><div class='add'>+  {0x1f06, {1|U, {0x1f0e}}},</div><div class='add'>+  {0x1f07, {1|U, {0x1f0f}}},</div><div class='add'>+  {0x1f10, {1|U, {0x1f18}}},</div><div class='add'>+  {0x1f11, {1|U, {0x1f19}}},</div><div class='add'>+  {0x1f12, {1|U, {0x1f1a}}},</div><div class='add'>+  {0x1f13, {1|U, {0x1f1b}}},</div><div class='add'>+  {0x1f14, {1|U, {0x1f1c}}},</div><div class='add'>+  {0x1f15, {1|U, {0x1f1d}}},</div><div class='add'>+  {0x1f20, {1|U, {0x1f28}}},</div><div class='add'>+  {0x1f21, {1|U, {0x1f29}}},</div><div class='add'>+  {0x1f22, {1|U, {0x1f2a}}},</div><div class='add'>+  {0x1f23, {1|U, {0x1f2b}}},</div><div class='add'>+  {0x1f24, {1|U, {0x1f2c}}},</div><div class='add'>+  {0x1f25, {1|U, {0x1f2d}}},</div><div class='add'>+  {0x1f26, {1|U, {0x1f2e}}},</div><div class='add'>+  {0x1f27, {1|U, {0x1f2f}}},</div><div class='add'>+  {0x1f30, {1|U, {0x1f38}}},</div><div class='add'>+  {0x1f31, {1|U, {0x1f39}}},</div><div class='add'>+  {0x1f32, {1|U, {0x1f3a}}},</div><div class='add'>+  {0x1f33, {1|U, {0x1f3b}}},</div><div class='add'>+  {0x1f34, {1|U, {0x1f3c}}},</div><div class='add'>+  {0x1f35, {1|U, {0x1f3d}}},</div><div class='add'>+  {0x1f36, {1|U, {0x1f3e}}},</div><div class='add'>+  {0x1f37, {1|U, {0x1f3f}}},</div><div class='add'>+  {0x1f40, {1|U, {0x1f48}}},</div><div class='add'>+  {0x1f41, {1|U, {0x1f49}}},</div><div class='add'>+  {0x1f42, {1|U, {0x1f4a}}},</div><div class='add'>+  {0x1f43, {1|U, {0x1f4b}}},</div><div class='add'>+  {0x1f44, {1|U, {0x1f4c}}},</div><div class='add'>+  {0x1f45, {1|U, {0x1f4d}}},</div><div class='add'>+  {0x1f51, {1|U, {0x1f59}}},</div><div class='add'>+  {0x1f53, {1|U, {0x1f5b}}},</div><div class='add'>+  {0x1f55, {1|U, {0x1f5d}}},</div><div class='add'>+  {0x1f57, {1|U, {0x1f5f}}},</div><div class='add'>+  {0x1f60, {1|U, {0x1f68}}},</div><div class='add'>+  {0x1f61, {1|U, {0x1f69}}},</div><div class='add'>+  {0x1f62, {1|U, {0x1f6a}}},</div><div class='add'>+  {0x1f63, {1|U, {0x1f6b}}},</div><div class='add'>+  {0x1f64, {1|U, {0x1f6c}}},</div><div class='add'>+  {0x1f65, {1|U, {0x1f6d}}},</div><div class='add'>+  {0x1f66, {1|U, {0x1f6e}}},</div><div class='add'>+  {0x1f67, {1|U, {0x1f6f}}},</div><div class='add'>+  {0x1f70, {1|U, {0x1fba}}},</div><div class='add'>+  {0x1f71, {1|U, {0x1fbb}}},</div><div class='add'>+  {0x1f72, {1|U, {0x1fc8}}},</div><div class='add'>+  {0x1f73, {1|U, {0x1fc9}}},</div><div class='add'>+  {0x1f74, {1|U, {0x1fca}}},</div><div class='add'>+  {0x1f75, {1|U, {0x1fcb}}},</div><div class='add'>+  {0x1f76, {1|U, {0x1fda}}},</div><div class='add'>+  {0x1f77, {1|U, {0x1fdb}}},</div><div class='add'>+  {0x1f78, {1|U, {0x1ff8}}},</div><div class='add'>+  {0x1f79, {1|U, {0x1ff9}}},</div><div class='add'>+  {0x1f7a, {1|U, {0x1fea}}},</div><div class='add'>+  {0x1f7b, {1|U, {0x1feb}}},</div><div class='add'>+  {0x1f7c, {1|U, {0x1ffa}}},</div><div class='add'>+  {0x1f7d, {1|U, {0x1ffb}}},</div><div class='add'>+  {0x1fb0, {1|U, {0x1fb8}}},</div><div class='add'>+  {0x1fb1, {1|U, {0x1fb9}}},</div><div class='add'>+  {0x1fd0, {1|U, {0x1fd8}}},</div><div class='add'>+  {0x1fd1, {1|U, {0x1fd9}}},</div><div class='add'>+  {0x1fe0, {1|U, {0x1fe8}}},</div><div class='add'>+  {0x1fe1, {1|U, {0x1fe9}}},</div><div class='add'>+  {0x1fe5, {1|U, {0x1fec}}},</div><div class='add'>+  {0x214e, {1|U, {0x2132}}},</div><div class='add'>+  {0x2170, {1|U, {0x2160}}},</div><div class='add'>+  {0x2171, {1|U, {0x2161}}},</div><div class='add'>+  {0x2172, {1|U, {0x2162}}},</div><div class='add'>+  {0x2173, {1|U, {0x2163}}},</div><div class='add'>+  {0x2174, {1|U, {0x2164}}},</div><div class='add'>+  {0x2175, {1|U, {0x2165}}},</div><div class='add'>+  {0x2176, {1|U, {0x2166}}},</div><div class='add'>+  {0x2177, {1|U, {0x2167}}},</div><div class='add'>+  {0x2178, {1|U, {0x2168}}},</div><div class='add'>+  {0x2179, {1|U, {0x2169}}},</div><div class='add'>+  {0x217a, {1|U, {0x216a}}},</div><div class='add'>+  {0x217b, {1|U, {0x216b}}},</div><div class='add'>+  {0x217c, {1|U, {0x216c}}},</div><div class='add'>+  {0x217d, {1|U, {0x216d}}},</div><div class='add'>+  {0x217e, {1|U, {0x216e}}},</div><div class='add'>+  {0x217f, {1|U, {0x216f}}},</div><div class='add'>+  {0x2184, {1|U, {0x2183}}},</div><div class='add'>+  {0x24d0, {1|U, {0x24b6}}},</div><div class='add'>+  {0x24d1, {1|U, {0x24b7}}},</div><div class='add'>+  {0x24d2, {1|U, {0x24b8}}},</div><div class='add'>+  {0x24d3, {1|U, {0x24b9}}},</div><div class='add'>+  {0x24d4, {1|U, {0x24ba}}},</div><div class='add'>+  {0x24d5, {1|U, {0x24bb}}},</div><div class='add'>+  {0x24d6, {1|U, {0x24bc}}},</div><div class='add'>+  {0x24d7, {1|U, {0x24bd}}},</div><div class='add'>+  {0x24d8, {1|U, {0x24be}}},</div><div class='add'>+  {0x24d9, {1|U, {0x24bf}}},</div><div class='add'>+  {0x24da, {1|U, {0x24c0}}},</div><div class='add'>+  {0x24db, {1|U, {0x24c1}}},</div><div class='add'>+  {0x24dc, {1|U, {0x24c2}}},</div><div class='add'>+  {0x24dd, {1|U, {0x24c3}}},</div><div class='add'>+  {0x24de, {1|U, {0x24c4}}},</div><div class='add'>+  {0x24df, {1|U, {0x24c5}}},</div><div class='add'>+  {0x24e0, {1|U, {0x24c6}}},</div><div class='add'>+  {0x24e1, {1|U, {0x24c7}}},</div><div class='add'>+  {0x24e2, {1|U, {0x24c8}}},</div><div class='add'>+  {0x24e3, {1|U, {0x24c9}}},</div><div class='add'>+  {0x24e4, {1|U, {0x24ca}}},</div><div class='add'>+  {0x24e5, {1|U, {0x24cb}}},</div><div class='add'>+  {0x24e6, {1|U, {0x24cc}}},</div><div class='add'>+  {0x24e7, {1|U, {0x24cd}}},</div><div class='add'>+  {0x24e8, {1|U, {0x24ce}}},</div><div class='add'>+  {0x24e9, {1|U, {0x24cf}}},</div><div class='add'>+  {0x2c30, {1|U, {0x2c00}}},</div><div class='add'>+  {0x2c31, {1|U, {0x2c01}}},</div><div class='add'>+  {0x2c32, {1|U, {0x2c02}}},</div><div class='add'>+  {0x2c33, {1|U, {0x2c03}}},</div><div class='add'>+  {0x2c34, {1|U, {0x2c04}}},</div><div class='add'>+  {0x2c35, {1|U, {0x2c05}}},</div><div class='add'>+  {0x2c36, {1|U, {0x2c06}}},</div><div class='add'>+  {0x2c37, {1|U, {0x2c07}}},</div><div class='add'>+  {0x2c38, {1|U, {0x2c08}}},</div><div class='add'>+  {0x2c39, {1|U, {0x2c09}}},</div><div class='add'>+  {0x2c3a, {1|U, {0x2c0a}}},</div><div class='add'>+  {0x2c3b, {1|U, {0x2c0b}}},</div><div class='add'>+  {0x2c3c, {1|U, {0x2c0c}}},</div><div class='add'>+  {0x2c3d, {1|U, {0x2c0d}}},</div><div class='add'>+  {0x2c3e, {1|U, {0x2c0e}}},</div><div class='add'>+  {0x2c3f, {1|U, {0x2c0f}}},</div><div class='add'>+  {0x2c40, {1|U, {0x2c10}}},</div><div class='add'>+  {0x2c41, {1|U, {0x2c11}}},</div><div class='add'>+  {0x2c42, {1|U, {0x2c12}}},</div><div class='add'>+  {0x2c43, {1|U, {0x2c13}}},</div><div class='add'>+  {0x2c44, {1|U, {0x2c14}}},</div><div class='add'>+  {0x2c45, {1|U, {0x2c15}}},</div><div class='add'>+  {0x2c46, {1|U, {0x2c16}}},</div><div class='add'>+  {0x2c47, {1|U, {0x2c17}}},</div><div class='add'>+  {0x2c48, {1|U, {0x2c18}}},</div><div class='add'>+  {0x2c49, {1|U, {0x2c19}}},</div><div class='add'>+  {0x2c4a, {1|U, {0x2c1a}}},</div><div class='add'>+  {0x2c4b, {1|U, {0x2c1b}}},</div><div class='add'>+  {0x2c4c, {1|U, {0x2c1c}}},</div><div class='add'>+  {0x2c4d, {1|U, {0x2c1d}}},</div><div class='add'>+  {0x2c4e, {1|U, {0x2c1e}}},</div><div class='add'>+  {0x2c4f, {1|U, {0x2c1f}}},</div><div class='add'>+  {0x2c50, {1|U, {0x2c20}}},</div><div class='add'>+  {0x2c51, {1|U, {0x2c21}}},</div><div class='add'>+  {0x2c52, {1|U, {0x2c22}}},</div><div class='add'>+  {0x2c53, {1|U, {0x2c23}}},</div><div class='add'>+  {0x2c54, {1|U, {0x2c24}}},</div><div class='add'>+  {0x2c55, {1|U, {0x2c25}}},</div><div class='add'>+  {0x2c56, {1|U, {0x2c26}}},</div><div class='add'>+  {0x2c57, {1|U, {0x2c27}}},</div><div class='add'>+  {0x2c58, {1|U, {0x2c28}}},</div><div class='add'>+  {0x2c59, {1|U, {0x2c29}}},</div><div class='add'>+  {0x2c5a, {1|U, {0x2c2a}}},</div><div class='add'>+  {0x2c5b, {1|U, {0x2c2b}}},</div><div class='add'>+  {0x2c5c, {1|U, {0x2c2c}}},</div><div class='add'>+  {0x2c5d, {1|U, {0x2c2d}}},</div><div class='add'>+  {0x2c5e, {1|U, {0x2c2e}}},</div><div class='add'>+  {0x2c5f, {1|U, {0x2c2f}}},</div><div class='add'>+  {0x2c61, {1|U, {0x2c60}}},</div><div class='add'>+  {0x2c65, {1|U, {0x023a}}},</div><div class='add'>+  {0x2c66, {1|U, {0x023e}}},</div><div class='add'>+  {0x2c68, {1|U, {0x2c67}}},</div><div class='add'>+  {0x2c6a, {1|U, {0x2c69}}},</div><div class='add'>+  {0x2c6c, {1|U, {0x2c6b}}},</div><div class='add'>+  {0x2c73, {1|U, {0x2c72}}},</div><div class='add'>+  {0x2c76, {1|U, {0x2c75}}},</div><div class='add'>+  {0x2c81, {1|U, {0x2c80}}},</div><div class='add'>+  {0x2c83, {1|U, {0x2c82}}},</div><div class='add'>+  {0x2c85, {1|U, {0x2c84}}},</div><div class='add'>+  {0x2c87, {1|U, {0x2c86}}},</div><div class='add'>+  {0x2c89, {1|U, {0x2c88}}},</div><div class='add'>+  {0x2c8b, {1|U, {0x2c8a}}},</div><div class='add'>+  {0x2c8d, {1|U, {0x2c8c}}},</div><div class='add'>+  {0x2c8f, {1|U, {0x2c8e}}},</div><div class='add'>+  {0x2c91, {1|U, {0x2c90}}},</div><div class='add'>+  {0x2c93, {1|U, {0x2c92}}},</div><div class='add'>+  {0x2c95, {1|U, {0x2c94}}},</div><div class='add'>+  {0x2c97, {1|U, {0x2c96}}},</div><div class='add'>+  {0x2c99, {1|U, {0x2c98}}},</div><div class='add'>+  {0x2c9b, {1|U, {0x2c9a}}},</div><div class='add'>+  {0x2c9d, {1|U, {0x2c9c}}},</div><div class='add'>+  {0x2c9f, {1|U, {0x2c9e}}},</div><div class='add'>+  {0x2ca1, {1|U, {0x2ca0}}},</div><div class='add'>+  {0x2ca3, {1|U, {0x2ca2}}},</div><div class='add'>+  {0x2ca5, {1|U, {0x2ca4}}},</div><div class='add'>+  {0x2ca7, {1|U, {0x2ca6}}},</div><div class='add'>+  {0x2ca9, {1|U, {0x2ca8}}},</div><div class='add'>+  {0x2cab, {1|U, {0x2caa}}},</div><div class='add'>+  {0x2cad, {1|U, {0x2cac}}},</div><div class='add'>+  {0x2caf, {1|U, {0x2cae}}},</div><div class='add'>+  {0x2cb1, {1|U, {0x2cb0}}},</div><div class='add'>+  {0x2cb3, {1|U, {0x2cb2}}},</div><div class='add'>+  {0x2cb5, {1|U, {0x2cb4}}},</div><div class='add'>+  {0x2cb7, {1|U, {0x2cb6}}},</div><div class='add'>+  {0x2cb9, {1|U, {0x2cb8}}},</div><div class='add'>+  {0x2cbb, {1|U, {0x2cba}}},</div><div class='add'>+  {0x2cbd, {1|U, {0x2cbc}}},</div><div class='add'>+  {0x2cbf, {1|U, {0x2cbe}}},</div><div class='add'>+  {0x2cc1, {1|U, {0x2cc0}}},</div><div class='add'>+  {0x2cc3, {1|U, {0x2cc2}}},</div><div class='add'>+  {0x2cc5, {1|U, {0x2cc4}}},</div><div class='add'>+  {0x2cc7, {1|U, {0x2cc6}}},</div><div class='add'>+  {0x2cc9, {1|U, {0x2cc8}}},</div><div class='add'>+  {0x2ccb, {1|U, {0x2cca}}},</div><div class='add'>+  {0x2ccd, {1|U, {0x2ccc}}},</div><div class='add'>+  {0x2ccf, {1|U, {0x2cce}}},</div><div class='add'>+  {0x2cd1, {1|U, {0x2cd0}}},</div><div class='add'>+  {0x2cd3, {1|U, {0x2cd2}}},</div><div class='add'>+  {0x2cd5, {1|U, {0x2cd4}}},</div><div class='add'>+  {0x2cd7, {1|U, {0x2cd6}}},</div><div class='add'>+  {0x2cd9, {1|U, {0x2cd8}}},</div><div class='add'>+  {0x2cdb, {1|U, {0x2cda}}},</div><div class='add'>+  {0x2cdd, {1|U, {0x2cdc}}},</div><div class='add'>+  {0x2cdf, {1|U, {0x2cde}}},</div><div class='add'>+  {0x2ce1, {1|U, {0x2ce0}}},</div><div class='add'>+  {0x2ce3, {1|U, {0x2ce2}}},</div><div class='add'>+  {0x2cec, {1|U, {0x2ceb}}},</div><div class='add'>+  {0x2cee, {1|U, {0x2ced}}},</div><div class='add'>+  {0x2cf3, {1|U, {0x2cf2}}},</div><div class='add'>+  {0x2d00, {1|U, {0x10a0}}},</div><div class='add'>+  {0x2d01, {1|U, {0x10a1}}},</div><div class='add'>+  {0x2d02, {1|U, {0x10a2}}},</div><div class='add'>+  {0x2d03, {1|U, {0x10a3}}},</div><div class='add'>+  {0x2d04, {1|U, {0x10a4}}},</div><div class='add'>+  {0x2d05, {1|U, {0x10a5}}},</div><div class='add'>+  {0x2d06, {1|U, {0x10a6}}},</div><div class='add'>+  {0x2d07, {1|U, {0x10a7}}},</div><div class='add'>+  {0x2d08, {1|U, {0x10a8}}},</div><div class='add'>+  {0x2d09, {1|U, {0x10a9}}},</div><div class='add'>+  {0x2d0a, {1|U, {0x10aa}}},</div><div class='add'>+  {0x2d0b, {1|U, {0x10ab}}},</div><div class='add'>+  {0x2d0c, {1|U, {0x10ac}}},</div><div class='add'>+  {0x2d0d, {1|U, {0x10ad}}},</div><div class='add'>+  {0x2d0e, {1|U, {0x10ae}}},</div><div class='add'>+  {0x2d0f, {1|U, {0x10af}}},</div><div class='add'>+  {0x2d10, {1|U, {0x10b0}}},</div><div class='add'>+  {0x2d11, {1|U, {0x10b1}}},</div><div class='add'>+  {0x2d12, {1|U, {0x10b2}}},</div><div class='add'>+  {0x2d13, {1|U, {0x10b3}}},</div><div class='add'>+  {0x2d14, {1|U, {0x10b4}}},</div><div class='add'>+  {0x2d15, {1|U, {0x10b5}}},</div><div class='add'>+  {0x2d16, {1|U, {0x10b6}}},</div><div class='add'>+  {0x2d17, {1|U, {0x10b7}}},</div><div class='add'>+  {0x2d18, {1|U, {0x10b8}}},</div><div class='add'>+  {0x2d19, {1|U, {0x10b9}}},</div><div class='add'>+  {0x2d1a, {1|U, {0x10ba}}},</div><div class='add'>+  {0x2d1b, {1|U, {0x10bb}}},</div><div class='add'>+  {0x2d1c, {1|U, {0x10bc}}},</div><div class='add'>+  {0x2d1d, {1|U, {0x10bd}}},</div><div class='add'>+  {0x2d1e, {1|U, {0x10be}}},</div><div class='add'>+  {0x2d1f, {1|U, {0x10bf}}},</div><div class='add'>+  {0x2d20, {1|U, {0x10c0}}},</div><div class='add'>+  {0x2d21, {1|U, {0x10c1}}},</div><div class='add'>+  {0x2d22, {1|U, {0x10c2}}},</div><div class='add'>+  {0x2d23, {1|U, {0x10c3}}},</div><div class='add'>+  {0x2d24, {1|U, {0x10c4}}},</div><div class='add'>+  {0x2d25, {1|U, {0x10c5}}},</div><div class='add'>+  {0x2d27, {1|U, {0x10c7}}},</div><div class='add'>+  {0x2d2d, {1|U, {0x10cd}}},</div><div class='add'>+  {0xa641, {1|U, {0xa640}}},</div><div class='add'>+  {0xa643, {1|U, {0xa642}}},</div><div class='add'>+  {0xa645, {1|U, {0xa644}}},</div><div class='add'>+  {0xa647, {1|U, {0xa646}}},</div><div class='add'>+  {0xa649, {1|U, {0xa648}}},</div><div class='add'>+  {0xa64b, {2|U, {0xa64a, 0x1c88}}},</div><div class='add'>+  {0xa64d, {1|U, {0xa64c}}},</div><div class='add'>+  {0xa64f, {1|U, {0xa64e}}},</div><div class='add'>+  {0xa651, {1|U, {0xa650}}},</div><div class='add'>+  {0xa653, {1|U, {0xa652}}},</div><div class='add'>+  {0xa655, {1|U, {0xa654}}},</div><div class='add'>+  {0xa657, {1|U, {0xa656}}},</div><div class='add'>+  {0xa659, {1|U, {0xa658}}},</div><div class='add'>+  {0xa65b, {1|U, {0xa65a}}},</div><div class='add'>+  {0xa65d, {1|U, {0xa65c}}},</div><div class='add'>+  {0xa65f, {1|U, {0xa65e}}},</div><div class='add'>+  {0xa661, {1|U, {0xa660}}},</div><div class='add'>+  {0xa663, {1|U, {0xa662}}},</div><div class='add'>+  {0xa665, {1|U, {0xa664}}},</div><div class='add'>+  {0xa667, {1|U, {0xa666}}},</div><div class='add'>+  {0xa669, {1|U, {0xa668}}},</div><div class='add'>+  {0xa66b, {1|U, {0xa66a}}},</div><div class='add'>+  {0xa66d, {1|U, {0xa66c}}},</div><div class='add'>+  {0xa681, {1|U, {0xa680}}},</div><div class='add'>+  {0xa683, {1|U, {0xa682}}},</div><div class='add'>+  {0xa685, {1|U, {0xa684}}},</div><div class='add'>+  {0xa687, {1|U, {0xa686}}},</div><div class='add'>+  {0xa689, {1|U, {0xa688}}},</div><div class='add'>+  {0xa68b, {1|U, {0xa68a}}},</div><div class='add'>+  {0xa68d, {1|U, {0xa68c}}},</div><div class='add'>+  {0xa68f, {1|U, {0xa68e}}},</div><div class='add'>+  {0xa691, {1|U, {0xa690}}},</div><div class='add'>+  {0xa693, {1|U, {0xa692}}},</div><div class='add'>+  {0xa695, {1|U, {0xa694}}},</div><div class='add'>+  {0xa697, {1|U, {0xa696}}},</div><div class='add'>+  {0xa699, {1|U, {0xa698}}},</div><div class='add'>+  {0xa69b, {1|U, {0xa69a}}},</div><div class='add'>+  {0xa723, {1|U, {0xa722}}},</div><div class='add'>+  {0xa725, {1|U, {0xa724}}},</div><div class='add'>+  {0xa727, {1|U, {0xa726}}},</div><div class='add'>+  {0xa729, {1|U, {0xa728}}},</div><div class='add'>+  {0xa72b, {1|U, {0xa72a}}},</div><div class='add'>+  {0xa72d, {1|U, {0xa72c}}},</div><div class='add'>+  {0xa72f, {1|U, {0xa72e}}},</div><div class='add'>+  {0xa733, {1|U, {0xa732}}},</div><div class='add'>+  {0xa735, {1|U, {0xa734}}},</div><div class='add'>+  {0xa737, {1|U, {0xa736}}},</div><div class='add'>+  {0xa739, {1|U, {0xa738}}},</div><div class='add'>+  {0xa73b, {1|U, {0xa73a}}},</div><div class='add'>+  {0xa73d, {1|U, {0xa73c}}},</div><div class='add'>+  {0xa73f, {1|U, {0xa73e}}},</div><div class='add'>+  {0xa741, {1|U, {0xa740}}},</div><div class='add'>+  {0xa743, {1|U, {0xa742}}},</div><div class='add'>+  {0xa745, {1|U, {0xa744}}},</div><div class='add'>+  {0xa747, {1|U, {0xa746}}},</div><div class='add'>+  {0xa749, {1|U, {0xa748}}},</div><div class='add'>+  {0xa74b, {1|U, {0xa74a}}},</div><div class='add'>+  {0xa74d, {1|U, {0xa74c}}},</div><div class='add'>+  {0xa74f, {1|U, {0xa74e}}},</div><div class='add'>+  {0xa751, {1|U, {0xa750}}},</div><div class='add'>+  {0xa753, {1|U, {0xa752}}},</div><div class='add'>+  {0xa755, {1|U, {0xa754}}},</div><div class='add'>+  {0xa757, {1|U, {0xa756}}},</div><div class='add'>+  {0xa759, {1|U, {0xa758}}},</div><div class='add'>+  {0xa75b, {1|U, {0xa75a}}},</div><div class='add'>+  {0xa75d, {1|U, {0xa75c}}},</div><div class='add'>+  {0xa75f, {1|U, {0xa75e}}},</div><div class='add'>+  {0xa761, {1|U, {0xa760}}},</div><div class='add'>+  {0xa763, {1|U, {0xa762}}},</div><div class='add'>+  {0xa765, {1|U, {0xa764}}},</div><div class='add'>+  {0xa767, {1|U, {0xa766}}},</div><div class='add'>+  {0xa769, {1|U, {0xa768}}},</div><div class='add'>+  {0xa76b, {1|U, {0xa76a}}},</div><div class='add'>+  {0xa76d, {1|U, {0xa76c}}},</div><div class='add'>+  {0xa76f, {1|U, {0xa76e}}},</div><div class='add'>+  {0xa77a, {1|U, {0xa779}}},</div><div class='add'>+  {0xa77c, {1|U, {0xa77b}}},</div><div class='add'>+  {0xa77f, {1|U, {0xa77e}}},</div><div class='add'>+  {0xa781, {1|U, {0xa780}}},</div><div class='add'>+  {0xa783, {1|U, {0xa782}}},</div><div class='add'>+  {0xa785, {1|U, {0xa784}}},</div><div class='add'>+  {0xa787, {1|U, {0xa786}}},</div><div class='add'>+  {0xa78c, {1|U, {0xa78b}}},</div><div class='add'>+  {0xa791, {1|U, {0xa790}}},</div><div class='add'>+  {0xa793, {1|U, {0xa792}}},</div><div class='add'>+  {0xa794, {1|U, {0xa7c4}}},</div><div class='add'>+  {0xa797, {1|U, {0xa796}}},</div><div class='add'>+  {0xa799, {1|U, {0xa798}}},</div><div class='add'>+  {0xa79b, {1|U, {0xa79a}}},</div><div class='add'>+  {0xa79d, {1|U, {0xa79c}}},</div><div class='add'>+  {0xa79f, {1|U, {0xa79e}}},</div><div class='add'>+  {0xa7a1, {1|U, {0xa7a0}}},</div><div class='add'>+  {0xa7a3, {1|U, {0xa7a2}}},</div><div class='add'>+  {0xa7a5, {1|U, {0xa7a4}}},</div><div class='add'>+  {0xa7a7, {1|U, {0xa7a6}}},</div><div class='add'>+  {0xa7a9, {1|U, {0xa7a8}}},</div><div class='add'>+  {0xa7b5, {1|U, {0xa7b4}}},</div><div class='add'>+  {0xa7b7, {1|U, {0xa7b6}}},</div><div class='add'>+  {0xa7b9, {1|U, {0xa7b8}}},</div><div class='add'>+  {0xa7bb, {1|U, {0xa7ba}}},</div><div class='add'>+  {0xa7bd, {1|U, {0xa7bc}}},</div><div class='add'>+  {0xa7bf, {1|U, {0xa7be}}},</div><div class='add'>+  {0xa7c1, {1|U, {0xa7c0}}},</div><div class='add'>+  {0xa7c3, {1|U, {0xa7c2}}},</div><div class='add'>+  {0xa7c8, {1|U, {0xa7c7}}},</div><div class='add'>+  {0xa7ca, {1|U, {0xa7c9}}},</div><div class='add'>+  {0xa7d1, {1|U, {0xa7d0}}},</div><div class='add'>+  {0xa7d7, {1|U, {0xa7d6}}},</div><div class='add'>+  {0xa7d9, {1|U, {0xa7d8}}},</div><div class='add'>+  {0xa7f6, {1|U, {0xa7f5}}},</div><div class='add'>+  {0xab53, {1|U, {0xa7b3}}},</div><div class='add'>+  {0xff41, {1|U, {0xff21}}},</div><div class='add'>+  {0xff42, {1|U, {0xff22}}},</div><div class='add'>+  {0xff43, {1|U, {0xff23}}},</div><div class='add'>+  {0xff44, {1|U, {0xff24}}},</div><div class='add'>+  {0xff45, {1|U, {0xff25}}},</div><div class='add'>+  {0xff46, {1|U, {0xff26}}},</div><div class='add'>+  {0xff47, {1|U, {0xff27}}},</div><div class='add'>+  {0xff48, {1|U, {0xff28}}},</div><div class='add'>+  {0xff49, {1|U, {0xff29}}},</div><div class='add'>+  {0xff4a, {1|U, {0xff2a}}},</div><div class='add'>+  {0xff4b, {1|U, {0xff2b}}},</div><div class='add'>+  {0xff4c, {1|U, {0xff2c}}},</div><div class='add'>+  {0xff4d, {1|U, {0xff2d}}},</div><div class='add'>+  {0xff4e, {1|U, {0xff2e}}},</div><div class='add'>+  {0xff4f, {1|U, {0xff2f}}},</div><div class='add'>+  {0xff50, {1|U, {0xff30}}},</div><div class='add'>+  {0xff51, {1|U, {0xff31}}},</div><div class='add'>+  {0xff52, {1|U, {0xff32}}},</div><div class='add'>+  {0xff53, {1|U, {0xff33}}},</div><div class='add'>+  {0xff54, {1|U, {0xff34}}},</div><div class='add'>+  {0xff55, {1|U, {0xff35}}},</div><div class='add'>+  {0xff56, {1|U, {0xff36}}},</div><div class='add'>+  {0xff57, {1|U, {0xff37}}},</div><div class='add'>+  {0xff58, {1|U, {0xff38}}},</div><div class='add'>+  {0xff59, {1|U, {0xff39}}},</div><div class='add'>+  {0xff5a, {1|U, {0xff3a}}},</div><div class='add'>+  {0x10428, {1|U, {0x10400}}},</div><div class='add'>+  {0x10429, {1|U, {0x10401}}},</div><div class='add'>+  {0x1042a, {1|U, {0x10402}}},</div><div class='add'>+  {0x1042b, {1|U, {0x10403}}},</div><div class='add'>+  {0x1042c, {1|U, {0x10404}}},</div><div class='add'>+  {0x1042d, {1|U, {0x10405}}},</div><div class='add'>+  {0x1042e, {1|U, {0x10406}}},</div><div class='add'>+  {0x1042f, {1|U, {0x10407}}},</div><div class='add'>+  {0x10430, {1|U, {0x10408}}},</div><div class='add'>+  {0x10431, {1|U, {0x10409}}},</div><div class='add'>+  {0x10432, {1|U, {0x1040a}}},</div><div class='add'>+  {0x10433, {1|U, {0x1040b}}},</div><div class='add'>+  {0x10434, {1|U, {0x1040c}}},</div><div class='add'>+  {0x10435, {1|U, {0x1040d}}},</div><div class='add'>+  {0x10436, {1|U, {0x1040e}}},</div><div class='add'>+  {0x10437, {1|U, {0x1040f}}},</div><div class='add'>+  {0x10438, {1|U, {0x10410}}},</div><div class='add'>+  {0x10439, {1|U, {0x10411}}},</div><div class='add'>+  {0x1043a, {1|U, {0x10412}}},</div><div class='add'>+  {0x1043b, {1|U, {0x10413}}},</div><div class='add'>+  {0x1043c, {1|U, {0x10414}}},</div><div class='add'>+  {0x1043d, {1|U, {0x10415}}},</div><div class='add'>+  {0x1043e, {1|U, {0x10416}}},</div><div class='add'>+  {0x1043f, {1|U, {0x10417}}},</div><div class='add'>+  {0x10440, {1|U, {0x10418}}},</div><div class='add'>+  {0x10441, {1|U, {0x10419}}},</div><div class='add'>+  {0x10442, {1|U, {0x1041a}}},</div><div class='add'>+  {0x10443, {1|U, {0x1041b}}},</div><div class='add'>+  {0x10444, {1|U, {0x1041c}}},</div><div class='add'>+  {0x10445, {1|U, {0x1041d}}},</div><div class='add'>+  {0x10446, {1|U, {0x1041e}}},</div><div class='add'>+  {0x10447, {1|U, {0x1041f}}},</div><div class='add'>+  {0x10448, {1|U, {0x10420}}},</div><div class='add'>+  {0x10449, {1|U, {0x10421}}},</div><div class='add'>+  {0x1044a, {1|U, {0x10422}}},</div><div class='add'>+  {0x1044b, {1|U, {0x10423}}},</div><div class='add'>+  {0x1044c, {1|U, {0x10424}}},</div><div class='add'>+  {0x1044d, {1|U, {0x10425}}},</div><div class='add'>+  {0x1044e, {1|U, {0x10426}}},</div><div class='add'>+  {0x1044f, {1|U, {0x10427}}},</div><div class='add'>+  {0x104d8, {1|U, {0x104b0}}},</div><div class='add'>+  {0x104d9, {1|U, {0x104b1}}},</div><div class='add'>+  {0x104da, {1|U, {0x104b2}}},</div><div class='add'>+  {0x104db, {1|U, {0x104b3}}},</div><div class='add'>+  {0x104dc, {1|U, {0x104b4}}},</div><div class='add'>+  {0x104dd, {1|U, {0x104b5}}},</div><div class='add'>+  {0x104de, {1|U, {0x104b6}}},</div><div class='add'>+  {0x104df, {1|U, {0x104b7}}},</div><div class='add'>+  {0x104e0, {1|U, {0x104b8}}},</div><div class='add'>+  {0x104e1, {1|U, {0x104b9}}},</div><div class='add'>+  {0x104e2, {1|U, {0x104ba}}},</div><div class='add'>+  {0x104e3, {1|U, {0x104bb}}},</div><div class='add'>+  {0x104e4, {1|U, {0x104bc}}},</div><div class='add'>+  {0x104e5, {1|U, {0x104bd}}},</div><div class='add'>+  {0x104e6, {1|U, {0x104be}}},</div><div class='add'>+  {0x104e7, {1|U, {0x104bf}}},</div><div class='add'>+  {0x104e8, {1|U, {0x104c0}}},</div><div class='add'>+  {0x104e9, {1|U, {0x104c1}}},</div><div class='add'>+  {0x104ea, {1|U, {0x104c2}}},</div><div class='add'>+  {0x104eb, {1|U, {0x104c3}}},</div><div class='add'>+  {0x104ec, {1|U, {0x104c4}}},</div><div class='add'>+  {0x104ed, {1|U, {0x104c5}}},</div><div class='add'>+  {0x104ee, {1|U, {0x104c6}}},</div><div class='add'>+  {0x104ef, {1|U, {0x104c7}}},</div><div class='add'>+  {0x104f0, {1|U, {0x104c8}}},</div><div class='add'>+  {0x104f1, {1|U, {0x104c9}}},</div><div class='add'>+  {0x104f2, {1|U, {0x104ca}}},</div><div class='add'>+  {0x104f3, {1|U, {0x104cb}}},</div><div class='add'>+  {0x104f4, {1|U, {0x104cc}}},</div><div class='add'>+  {0x104f5, {1|U, {0x104cd}}},</div><div class='add'>+  {0x104f6, {1|U, {0x104ce}}},</div><div class='add'>+  {0x104f7, {1|U, {0x104cf}}},</div><div class='add'>+  {0x104f8, {1|U, {0x104d0}}},</div><div class='add'>+  {0x104f9, {1|U, {0x104d1}}},</div><div class='add'>+  {0x104fa, {1|U, {0x104d2}}},</div><div class='add'>+  {0x104fb, {1|U, {0x104d3}}},</div><div class='add'>+  {0x10597, {1|U, {0x10570}}},</div><div class='add'>+  {0x10598, {1|U, {0x10571}}},</div><div class='add'>+  {0x10599, {1|U, {0x10572}}},</div><div class='add'>+  {0x1059a, {1|U, {0x10573}}},</div><div class='add'>+  {0x1059b, {1|U, {0x10574}}},</div><div class='add'>+  {0x1059c, {1|U, {0x10575}}},</div><div class='add'>+  {0x1059d, {1|U, {0x10576}}},</div><div class='add'>+  {0x1059e, {1|U, {0x10577}}},</div><div class='add'>+  {0x1059f, {1|U, {0x10578}}},</div><div class='add'>+  {0x105a0, {1|U, {0x10579}}},</div><div class='add'>+  {0x105a1, {1|U, {0x1057a}}},</div><div class='add'>+  {0x105a3, {1|U, {0x1057c}}},</div><div class='add'>+  {0x105a4, {1|U, {0x1057d}}},</div><div class='add'>+  {0x105a5, {1|U, {0x1057e}}},</div><div class='add'>+  {0x105a6, {1|U, {0x1057f}}},</div><div class='add'>+  {0x105a7, {1|U, {0x10580}}},</div><div class='add'>+  {0x105a8, {1|U, {0x10581}}},</div><div class='add'>+  {0x105a9, {1|U, {0x10582}}},</div><div class='add'>+  {0x105aa, {1|U, {0x10583}}},</div><div class='add'>+  {0x105ab, {1|U, {0x10584}}},</div><div class='add'>+  {0x105ac, {1|U, {0x10585}}},</div><div class='add'>+  {0x105ad, {1|U, {0x10586}}},</div><div class='add'>+  {0x105ae, {1|U, {0x10587}}},</div><div class='add'>+  {0x105af, {1|U, {0x10588}}},</div><div class='add'>+  {0x105b0, {1|U, {0x10589}}},</div><div class='add'>+  {0x105b1, {1|U, {0x1058a}}},</div><div class='add'>+  {0x105b3, {1|U, {0x1058c}}},</div><div class='add'>+  {0x105b4, {1|U, {0x1058d}}},</div><div class='add'>+  {0x105b5, {1|U, {0x1058e}}},</div><div class='add'>+  {0x105b6, {1|U, {0x1058f}}},</div><div class='add'>+  {0x105b7, {1|U, {0x10590}}},</div><div class='add'>+  {0x105b8, {1|U, {0x10591}}},</div><div class='add'>+  {0x105b9, {1|U, {0x10592}}},</div><div class='add'>+  {0x105bb, {1|U, {0x10594}}},</div><div class='add'>+  {0x105bc, {1|U, {0x10595}}},</div><div class='add'>+  {0x10cc0, {1|U, {0x10c80}}},</div><div class='add'>+  {0x10cc1, {1|U, {0x10c81}}},</div><div class='add'>+  {0x10cc2, {1|U, {0x10c82}}},</div><div class='add'>+  {0x10cc3, {1|U, {0x10c83}}},</div><div class='add'>+  {0x10cc4, {1|U, {0x10c84}}},</div><div class='add'>+  {0x10cc5, {1|U, {0x10c85}}},</div><div class='add'>+  {0x10cc6, {1|U, {0x10c86}}},</div><div class='add'>+  {0x10cc7, {1|U, {0x10c87}}},</div><div class='add'>+  {0x10cc8, {1|U, {0x10c88}}},</div><div class='add'>+  {0x10cc9, {1|U, {0x10c89}}},</div><div class='add'>+  {0x10cca, {1|U, {0x10c8a}}},</div><div class='add'>+  {0x10ccb, {1|U, {0x10c8b}}},</div><div class='add'>+  {0x10ccc, {1|U, {0x10c8c}}},</div><div class='add'>+  {0x10ccd, {1|U, {0x10c8d}}},</div><div class='add'>+  {0x10cce, {1|U, {0x10c8e}}},</div><div class='add'>+  {0x10ccf, {1|U, {0x10c8f}}},</div><div class='add'>+  {0x10cd0, {1|U, {0x10c90}}},</div><div class='add'>+  {0x10cd1, {1|U, {0x10c91}}},</div><div class='add'>+  {0x10cd2, {1|U, {0x10c92}}},</div><div class='add'>+  {0x10cd3, {1|U, {0x10c93}}},</div><div class='add'>+  {0x10cd4, {1|U, {0x10c94}}},</div><div class='add'>+  {0x10cd5, {1|U, {0x10c95}}},</div><div class='add'>+  {0x10cd6, {1|U, {0x10c96}}},</div><div class='add'>+  {0x10cd7, {1|U, {0x10c97}}},</div><div class='add'>+  {0x10cd8, {1|U, {0x10c98}}},</div><div class='add'>+  {0x10cd9, {1|U, {0x10c99}}},</div><div class='add'>+  {0x10cda, {1|U, {0x10c9a}}},</div><div class='add'>+  {0x10cdb, {1|U, {0x10c9b}}},</div><div class='add'>+  {0x10cdc, {1|U, {0x10c9c}}},</div><div class='add'>+  {0x10cdd, {1|U, {0x10c9d}}},</div><div class='add'>+  {0x10cde, {1|U, {0x10c9e}}},</div><div class='add'>+  {0x10cdf, {1|U, {0x10c9f}}},</div><div class='add'>+  {0x10ce0, {1|U, {0x10ca0}}},</div><div class='add'>+  {0x10ce1, {1|U, {0x10ca1}}},</div><div class='add'>+  {0x10ce2, {1|U, {0x10ca2}}},</div><div class='add'>+  {0x10ce3, {1|U, {0x10ca3}}},</div><div class='add'>+  {0x10ce4, {1|U, {0x10ca4}}},</div><div class='add'>+  {0x10ce5, {1|U, {0x10ca5}}},</div><div class='add'>+  {0x10ce6, {1|U, {0x10ca6}}},</div><div class='add'>+  {0x10ce7, {1|U, {0x10ca7}}},</div><div class='add'>+  {0x10ce8, {1|U, {0x10ca8}}},</div><div class='add'>+  {0x10ce9, {1|U, {0x10ca9}}},</div><div class='add'>+  {0x10cea, {1|U, {0x10caa}}},</div><div class='add'>+  {0x10ceb, {1|U, {0x10cab}}},</div><div class='add'>+  {0x10cec, {1|U, {0x10cac}}},</div><div class='add'>+  {0x10ced, {1|U, {0x10cad}}},</div><div class='add'>+  {0x10cee, {1|U, {0x10cae}}},</div><div class='add'>+  {0x10cef, {1|U, {0x10caf}}},</div><div class='add'>+  {0x10cf0, {1|U, {0x10cb0}}},</div><div class='add'>+  {0x10cf1, {1|U, {0x10cb1}}},</div><div class='add'>+  {0x10cf2, {1|U, {0x10cb2}}},</div><div class='add'>+  {0x118c0, {1|U, {0x118a0}}},</div><div class='add'>+  {0x118c1, {1|U, {0x118a1}}},</div><div class='add'>+  {0x118c2, {1|U, {0x118a2}}},</div><div class='add'>+  {0x118c3, {1|U, {0x118a3}}},</div><div class='add'>+  {0x118c4, {1|U, {0x118a4}}},</div><div class='add'>+  {0x118c5, {1|U, {0x118a5}}},</div><div class='add'>+  {0x118c6, {1|U, {0x118a6}}},</div><div class='add'>+  {0x118c7, {1|U, {0x118a7}}},</div><div class='add'>+  {0x118c8, {1|U, {0x118a8}}},</div><div class='add'>+  {0x118c9, {1|U, {0x118a9}}},</div><div class='add'>+  {0x118ca, {1|U, {0x118aa}}},</div><div class='add'>+  {0x118cb, {1|U, {0x118ab}}},</div><div class='add'>+  {0x118cc, {1|U, {0x118ac}}},</div><div class='add'>+  {0x118cd, {1|U, {0x118ad}}},</div><div class='add'>+  {0x118ce, {1|U, {0x118ae}}},</div><div class='add'>+  {0x118cf, {1|U, {0x118af}}},</div><div class='add'>+  {0x118d0, {1|U, {0x118b0}}},</div><div class='add'>+  {0x118d1, {1|U, {0x118b1}}},</div><div class='add'>+  {0x118d2, {1|U, {0x118b2}}},</div><div class='add'>+  {0x118d3, {1|U, {0x118b3}}},</div><div class='add'>+  {0x118d4, {1|U, {0x118b4}}},</div><div class='add'>+  {0x118d5, {1|U, {0x118b5}}},</div><div class='add'>+  {0x118d6, {1|U, {0x118b6}}},</div><div class='add'>+  {0x118d7, {1|U, {0x118b7}}},</div><div class='add'>+  {0x118d8, {1|U, {0x118b8}}},</div><div class='add'>+  {0x118d9, {1|U, {0x118b9}}},</div><div class='add'>+  {0x118da, {1|U, {0x118ba}}},</div><div class='add'>+  {0x118db, {1|U, {0x118bb}}},</div><div class='add'>+  {0x118dc, {1|U, {0x118bc}}},</div><div class='add'>+  {0x118dd, {1|U, {0x118bd}}},</div><div class='add'>+  {0x118de, {1|U, {0x118be}}},</div><div class='add'>+  {0x118df, {1|U, {0x118bf}}},</div><div class='add'>+  {0x16e60, {1|U, {0x16e40}}},</div><div class='add'>+  {0x16e61, {1|U, {0x16e41}}},</div><div class='add'>+  {0x16e62, {1|U, {0x16e42}}},</div><div class='add'>+  {0x16e63, {1|U, {0x16e43}}},</div><div class='add'>+  {0x16e64, {1|U, {0x16e44}}},</div><div class='add'>+  {0x16e65, {1|U, {0x16e45}}},</div><div class='add'>+  {0x16e66, {1|U, {0x16e46}}},</div><div class='add'>+  {0x16e67, {1|U, {0x16e47}}},</div><div class='add'>+  {0x16e68, {1|U, {0x16e48}}},</div><div class='add'>+  {0x16e69, {1|U, {0x16e49}}},</div><div class='add'>+  {0x16e6a, {1|U, {0x16e4a}}},</div><div class='add'>+  {0x16e6b, {1|U, {0x16e4b}}},</div><div class='add'>+  {0x16e6c, {1|U, {0x16e4c}}},</div><div class='add'>+  {0x16e6d, {1|U, {0x16e4d}}},</div><div class='add'>+  {0x16e6e, {1|U, {0x16e4e}}},</div><div class='add'>+  {0x16e6f, {1|U, {0x16e4f}}},</div><div class='add'>+  {0x16e70, {1|U, {0x16e50}}},</div><div class='add'>+  {0x16e71, {1|U, {0x16e51}}},</div><div class='add'>+  {0x16e72, {1|U, {0x16e52}}},</div><div class='add'>+  {0x16e73, {1|U, {0x16e53}}},</div><div class='add'>+  {0x16e74, {1|U, {0x16e54}}},</div><div class='add'>+  {0x16e75, {1|U, {0x16e55}}},</div><div class='add'>+  {0x16e76, {1|U, {0x16e56}}},</div><div class='add'>+  {0x16e77, {1|U, {0x16e57}}},</div><div class='add'>+  {0x16e78, {1|U, {0x16e58}}},</div><div class='add'>+  {0x16e79, {1|U, {0x16e59}}},</div><div class='add'>+  {0x16e7a, {1|U, {0x16e5a}}},</div><div class='add'>+  {0x16e7b, {1|U, {0x16e5b}}},</div><div class='add'>+  {0x16e7c, {1|U, {0x16e5c}}},</div><div class='add'>+  {0x16e7d, {1|U, {0x16e5d}}},</div><div class='add'>+  {0x16e7e, {1|U, {0x16e5e}}},</div><div class='add'>+  {0x16e7f, {1|U, {0x16e5f}}},</div><div class='add'>+  {0x1e922, {1|U, {0x1e900}}},</div><div class='add'>+  {0x1e923, {1|U, {0x1e901}}},</div><div class='add'>+  {0x1e924, {1|U, {0x1e902}}},</div><div class='add'>+  {0x1e925, {1|U, {0x1e903}}},</div><div class='add'>+  {0x1e926, {1|U, {0x1e904}}},</div><div class='add'>+  {0x1e927, {1|U, {0x1e905}}},</div><div class='add'>+  {0x1e928, {1|U, {0x1e906}}},</div><div class='add'>+  {0x1e929, {1|U, {0x1e907}}},</div><div class='add'>+  {0x1e92a, {1|U, {0x1e908}}},</div><div class='add'>+  {0x1e92b, {1|U, {0x1e909}}},</div><div class='add'>+  {0x1e92c, {1|U, {0x1e90a}}},</div><div class='add'>+  {0x1e92d, {1|U, {0x1e90b}}},</div><div class='add'>+  {0x1e92e, {1|U, {0x1e90c}}},</div><div class='add'>+  {0x1e92f, {1|U, {0x1e90d}}},</div><div class='add'>+  {0x1e930, {1|U, {0x1e90e}}},</div><div class='add'>+  {0x1e931, {1|U, {0x1e90f}}},</div><div class='add'>+  {0x1e932, {1|U, {0x1e910}}},</div><div class='add'>+  {0x1e933, {1|U, {0x1e911}}},</div><div class='add'>+  {0x1e934, {1|U, {0x1e912}}},</div><div class='add'>+  {0x1e935, {1|U, {0x1e913}}},</div><div class='add'>+  {0x1e936, {1|U, {0x1e914}}},</div><div class='add'>+  {0x1e937, {1|U, {0x1e915}}},</div><div class='add'>+  {0x1e938, {1|U, {0x1e916}}},</div><div class='add'>+  {0x1e939, {1|U, {0x1e917}}},</div><div class='add'>+  {0x1e93a, {1|U, {0x1e918}}},</div><div class='add'>+  {0x1e93b, {1|U, {0x1e919}}},</div><div class='add'>+  {0x1e93c, {1|U, {0x1e91a}}},</div><div class='add'>+  {0x1e93d, {1|U, {0x1e91b}}},</div><div class='add'>+  {0x1e93e, {1|U, {0x1e91c}}},</div><div class='add'>+  {0x1e93f, {1|U, {0x1e91d}}},</div><div class='add'>+  {0x1e940, {1|U, {0x1e91e}}},</div><div class='add'>+  {0x1e941, {1|U, {0x1e91f}}},</div><div class='add'>+  {0x1e942, {1|U, {0x1e920}}},</div><div class='add'>+  {0x1e943, {1|U, {0x1e921}}},</div><div class='add'>+#define CaseUnfold_11_Locale (*(CaseUnfold_11_Type (*)[1])(CaseUnfold_11_Table+1395))</div><div class='add'>+  {0x0069, {1|U, {0x0049}}},</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* ANSI-C code produced by gperf version 3.1 */</div><div class='add'>+/* Command-line: gperf -7 -k1,2,3 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseUnfold_11_hash -N onigenc_unicode_CaseUnfold_11_lookup -n  */</div><div class='add'>+</div><div class='add'>+/* maximum key range = 2771, duplicates = 0 */</div><div class='add'>+</div><div class='add'>+#ifdef __GNUC__</div><div class='add'>+__inline</div><div class='add'>+#else</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+inline</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+/*ARGSUSED*/</div><div class='add'>+static unsigned int</div><div class='add'>+onigenc_unicode_CaseUnfold_11_hash(const OnigCodePoint code)</div><div class='add'>+{</div><div class='add'>+  static const unsigned short asso_values[] =</div><div class='add'>+    {</div><div class='add'>+         1, 2774,    2,    2,    4,  421,    9,  371,  231,  463,</div><div class='add'>+        37,   20,    2,    3,  419,  408, 2774, 2774, 2774, 2774,</div><div class='add'>+      2774, 2774, 2774, 2774, 2774, 2774, 2774, 2774, 2774,  112,</div><div class='add'>+      2774, 2774, 2774, 2774, 2774, 2774, 2774,  120, 2774, 2774,</div><div class='add'>+      2774, 2774, 2774,    1, 2774, 2774, 2774, 2774, 2774, 2774,</div><div class='add'>+      2774, 2774, 2774,  355, 2774, 2774, 2774, 2774, 2774, 2774,</div><div class='add'>+      2774, 2774,   10,    9,    7,    8,  244,  689,  226,  993,</div><div class='add'>+       561,  710,  104, 1429,   36, 1190,   28,   15,  114, 1768,</div><div class='add'>+       241, 1003,   87,  285,   26, 1399,   78, 1360,    7, 1455,</div><div class='add'>+        90, 1076,  113,   10,  724, 1460,  167, 1727,  155, 1040,</div><div class='add'>+        67,  754,   66,  705,  246,  886,  331, 1140,  430, 1251,</div><div class='add'>+       864,  768,  643, 1064, 1591,  865,  834,  720, 1700,  671,</div><div class='add'>+      1581,  657, 1794,  842, 1782, 1050, 1537, 1024, 1760,  814,</div><div class='add'>+       975,  440, 1187,  407, 1440,  951, 1384,  909, 1320,  555,</div><div class='add'>+      1567,  541, 1723,  525,  383,  501, 1179,  250, 1596,  342,</div><div class='add'>+      1575,  352, 1501,  194, 1559,   70, 1512,   85, 1509,  129,</div><div class='add'>+       467,  100, 1413,    1, 1485,   25, 1351,   35, 1088,   55,</div><div class='add'>+      1262,   45, 1277,  160, 1245,  317,  118,  220, 1300,  596,</div><div class='add'>+      1100,  373, 1632,  617, 1337, 1236, 1500, 1152,  148,  793,</div><div class='add'>+      1538,  979,  385, 1228</div><div class='add'>+    };</div><div class='add'>+  return asso_values[bits_of(code, 2)+66] + asso_values[bits_of(code, 1)+4] + asso_values[bits_of(code, 0)];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const CodePointList3 *</div><div class='add'>+onigenc_unicode_CaseUnfold_11_lookup(const OnigCodePoint code)</div><div class='add'>+{</div><div class='add'>+  enum</div><div class='add'>+    {</div><div class='add'>+      MIN_CODE_VALUE = 0x61,</div><div class='add'>+      MAX_CODE_VALUE = 0x1e943,</div><div class='add'>+      TOTAL_KEYWORDS = 1396,</div><div class='add'>+      MIN_WORD_LENGTH = 3,</div><div class='add'>+      MAX_WORD_LENGTH = 3,</div><div class='add'>+      MIN_HASH_VALUE = 3,</div><div class='add'>+      MAX_HASH_VALUE = 2773</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+  static const short wordlist[] =</div><div class='add'>+    {</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x13e1*/ 589,</div><div class='add'>+      /*0x0461*/ 340,</div><div class='add'>+      /*0x04e1*/ 400,</div><div class='add'>+      /*0x0061*/ 0,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104e1*/ 1184,</div><div class='add'>+      /*0x1e61*/ 661,</div><div class='add'>+      /*0x1ee1*/ 720,</div><div class='add'>+      /*0x0161*/ 102,</div><div class='add'>+      /*0x2ce1*/ 953,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x049b*/ 365,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x24e1*/ 840,</div><div class='add'>+      /*0x1e1b*/ 626,</div><div class='add'>+      /*0x048b*/ 357,</div><div class='add'>+      /*0x011b*/ 69,</div><div class='add'>+      /*0x2c9b*/ 918,</div><div class='add'>+      /*0x03e1*/ 280,</div><div class='add'>+      /*0x1e0b*/ 618,</div><div class='add'>+      /*0x1e8b*/ 682,</div><div class='add'>+      /*0x010b*/ 61,</div><div class='add'>+      /*0x2c8b*/ 910,</div><div class='add'>+      /*0x13e3*/ 591,</div><div class='add'>+      /*0x0463*/ 341,</div><div class='add'>+      /*0x04e3*/ 401,</div><div class='add'>+      /*0x0063*/ 2,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104e3*/ 1186,</div><div class='add'>+      /*0x1e63*/ 662,</div><div class='add'>+      /*0x1ee3*/ 721,</div><div class='add'>+      /*0x0163*/ 103,</div><div class='add'>+      /*0x2ce3*/ 954,</div><div class='add'>+      /*0x13e5*/ 593,</div><div class='add'>+      /*0x0465*/ 342,</div><div class='add'>+      /*0x04e5*/ 402,</div><div class='add'>+      /*0x0065*/ 4,</div><div class='add'>+      /*0x24e3*/ 842,</div><div class='add'>+      /*0x104e5*/ 1188,</div><div class='add'>+      /*0x1e65*/ 663,</div><div class='add'>+      /*0x1ee5*/ 722,</div><div class='add'>+      /*0x0165*/ 104,</div><div class='add'>+      /*0x03e3*/ 281,</div><div class='add'>+      /*0x13e9*/ 597,</div><div class='add'>+      /*0x0469*/ 344,</div><div class='add'>+      /*0x04e9*/ 404,</div><div class='add'>+      /*0x0069*/ 1395,</div><div class='add'>+      /*0x24e5*/ 844,</div><div class='add'>+      /*0x104e9*/ 1192,</div><div class='add'>+      /*0x1e69*/ 665,</div><div class='add'>+      /*0x1ee9*/ 724,</div><div class='add'>+      /*0x0169*/ 106,</div><div class='add'>+      /*0x03e5*/ 282,</div><div class='add'>+      /*0x13e7*/ 595,</div><div class='add'>+      /*0x0467*/ 343,</div><div class='add'>+      /*0x04e7*/ 403,</div><div class='add'>+      /*0x0067*/ 6,</div><div class='add'>+      /*0x24e9*/ 848,</div><div class='add'>+      /*0x104e7*/ 1190,</div><div class='add'>+      /*0x1e67*/ 664,</div><div class='add'>+      /*0x1ee7*/ 723,</div><div class='add'>+      /*0x0167*/ 105,</div><div class='add'>+      /*0x03e9*/ 284,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13a4*/ 528,</div><div class='add'>+      /*0x13a2*/ 526,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24e7*/ 846,</div><div class='add'>+      /*0x13d9*/ 581,</div><div class='add'>+      /*0x0459*/ 333,</div><div class='add'>+      /*0x04d9*/ 396,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03e7*/ 283,</div><div class='add'>+      /*0x104d9*/ 1176,</div><div class='add'>+      /*0x1e59*/ 657,</div><div class='add'>+      /*0x1ed9*/ 716,</div><div class='add'>+      /*0x0159*/ 98,</div><div class='add'>+      /*0x2cd9*/ 949,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x24d9*/ 832,</div><div class='add'>+      /*0x13db*/ 583,</div><div class='add'>+      /*0x045b*/ 335,</div><div class='add'>+      /*0x04db*/ 397,</div><div class='add'>+      /*0xa761*/ 1065,</div><div class='add'>+      /*0x03d9*/ 276,</div><div class='add'>+      /*0x104db*/ 1178,</div><div class='add'>+      /*0x1e5b*/ 658,</div><div class='add'>+      /*0x1edb*/ 717,</div><div class='add'>+      /*0x015b*/ 99,</div><div class='add'>+      /*0x2cdb*/ 950,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x24db*/ 834,</div><div class='add'>+      /*0x13df*/ 587,</div><div class='add'>+      /*0x045f*/ 339,</div><div class='add'>+      /*0x04df*/ 399,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03db*/ 277,</div><div class='add'>+      /*0x104df*/ 1182,</div><div class='add'>+      /*0x1e5f*/ 660,</div><div class='add'>+      /*0x1edf*/ 719,</div><div class='add'>+      /*0x015f*/ 101,</div><div class='add'>+      /*0x2cdf*/ 952,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa763*/ 1066,</div><div class='add'>+      /*0x2c61*/ 897,</div><div class='add'>+      /*0x24df*/ 838,</div><div class='add'>+      /*0x10ce1*/ 1279,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x13ee*/ 602,</div><div class='add'>+      /*0x03df*/ 279,</div><div class='add'>+      /*0x10e1*/ 495,</div><div class='add'>+      /*0x006e*/ 12,</div><div class='add'>+      /*0xa765*/ 1067,</div><div class='add'>+      /*0x104ee*/ 1197,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2cee*/ 956,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13dd*/ 585,</div><div class='add'>+      /*0x045d*/ 337,</div><div class='add'>+      /*0x04dd*/ 398,</div><div class='add'>+      /*0xa769*/ 1069,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104dd*/ 1180,</div><div class='add'>+      /*0x1e5d*/ 659,</div><div class='add'>+      /*0x1edd*/ 718,</div><div class='add'>+      /*0x015d*/ 100,</div><div class='add'>+      /*0x2cdd*/ 951,</div><div class='add'>+      /*0x10ce3*/ 1281,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa767*/ 1068,</div><div class='add'>+      /*0x24dd*/ 836,</div><div class='add'>+      /*0x10e3*/ 497,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2c65*/ 898,</div><div class='add'>+      /*0x03dd*/ 278,</div><div class='add'>+      /*0x10ce5*/ 1283,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x007a*/ 24,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104fa*/ 1209,</div><div class='add'>+      /*0x10e5*/ 499,</div><div class='add'>+      /*0x13a0*/ 524,</div><div class='add'>+      /*0x017a*/ 114,</div><div class='add'>+      /*0xa759*/ 1061,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10ce9*/ 1287,</div><div class='add'>+      /*0x13eb*/ 599,</div><div class='add'>+      /*0x046b*/ 345,</div><div class='add'>+      /*0x04eb*/ 405,</div><div class='add'>+      /*0x006b*/ 9,</div><div class='add'>+      /*0x10e9*/ 503,</div><div class='add'>+      /*0x104eb*/ 1194,</div><div class='add'>+      /*0x1e6b*/ 666,</div><div class='add'>+      /*0x1eeb*/ 725,</div><div class='add'>+      /*0x016b*/ 107,</div><div class='add'>+      /*0x10ce7*/ 1285,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa75b*/ 1062,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10e7*/ 501,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x03eb*/ 285,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2c59*/ 890,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cd9*/ 1271,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa75f*/ 1064,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10d9*/ 487,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x13d7*/ 579,</div><div class='add'>+      /*0x0457*/ 331,</div><div class='add'>+      /*0x04d7*/ 395,</div><div class='add'>+      /*0x2c5b*/ 892,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cdb*/ 1273,</div><div class='add'>+      /*0x1e57*/ 656,</div><div class='add'>+      /*0x1ed7*/ 715,</div><div class='add'>+      /*0x0157*/ 97,</div><div class='add'>+      /*0x2cd7*/ 948,</div><div class='add'>+      /*0x10db*/ 489,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x24d7*/ 830,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2c5f*/ 896,</div><div class='add'>+      /*0x03d7*/ 275,</div><div class='add'>+      /*0x10cdf*/ 1277,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa75d*/ 1063,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10df*/ 493,</div><div class='add'>+      /*0x13ef*/ 603,</div><div class='add'>+      /*0x046f*/ 347,</div><div class='add'>+      /*0x04ef*/ 407,</div><div class='add'>+      /*0x006f*/ 13,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104ef*/ 1198,</div><div class='add'>+      /*0x1e6f*/ 668,</div><div class='add'>+      /*0x1eef*/ 727,</div><div class='add'>+      /*0x016f*/ 109,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0261*/ 210,</div><div class='add'>+      /*0x10cee*/ 1292,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa77a*/ 1073,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10ee*/ 508,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03ef*/ 287,</div><div class='add'>+      /*0x021b*/ 178,</div><div class='add'>+      /*0x2c5d*/ 894,</div><div class='add'>+      /*0xa661*/ 1014,</div><div class='add'>+      /*0x10cdd*/ 1275,</div><div class='add'>+      /*0x1f61*/ 777,</div><div class='add'>+      /*0x020b*/ 170,</div><div class='add'>+      /*0x13a6*/ 530,</div><div class='add'>+      /*0xa76b*/ 1070,</div><div class='add'>+      /*0x10dd*/ 491,</div><div class='add'>+      /*0x1d8e*/ 612,</div><div class='add'>+      /*0x13d1*/ 573,</div><div class='add'>+      /*0x0451*/ 325,</div><div class='add'>+      /*0x04d1*/ 392,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0263*/ 211,</div><div class='add'>+      /*0x1e51*/ 653,</div><div class='add'>+      /*0x1ed1*/ 712,</div><div class='add'>+      /*0x0151*/ 94,</div><div class='add'>+      /*0x2cd1*/ 945,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x24d1*/ 824,</div><div class='add'>+      /*0x0265*/ 212,</div><div class='add'>+      /*0xa663*/ 1015,</div><div class='add'>+      /*0x10fa*/ 520,</div><div class='add'>+      /*0x1f63*/ 779,</div><div class='add'>+      /*0x1f12*/ 746,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x10ceb*/ 1289,</div><div class='add'>+      /*0x0269*/ 215,</div><div class='add'>+      /*0xa665*/ 1016,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f65*/ 781,</div><div class='add'>+      /*0x10eb*/ 505,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa757*/ 1060,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0xa669*/ 1018,</div><div class='add'>+      /*0x0491*/ 360,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1e11*/ 621,</div><div class='add'>+      /*0x1e91*/ 685,</div><div class='add'>+      /*0x0111*/ 64,</div><div class='add'>+      /*0x2c91*/ 913,</div><div class='add'>+      /*0xa79b*/ 1086,</div><div class='add'>+      /*0xa667*/ 1017,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f67*/ 783,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0259*/ 206,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x2c57*/ 888,</div><div class='add'>+      /*0xa76f*/ 1072,</div><div class='add'>+      /*0x10cd7*/ 1269,</div><div class='add'>+      /*0x1f24*/ 754,</div><div class='add'>+      /*0x1f22*/ 752,</div><div class='add'>+      /*0xa659*/ 1010,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10d7*/ 485,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x025b*/ 207,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13ed*/ 601,</div><div class='add'>+      /*0x046d*/ 346,</div><div class='add'>+      /*0x04ed*/ 406,</div><div class='add'>+      /*0x006d*/ 11,</div><div class='add'>+      /*0x1f14*/ 748,</div><div class='add'>+      /*0x104ed*/ 1196,</div><div class='add'>+      /*0x1e6d*/ 667,</div><div class='add'>+      /*0x1eed*/ 726,</div><div class='add'>+      /*0x016d*/ 108,</div><div class='add'>+      /*0xa65b*/ 1011,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1f10*/ 744,</div><div class='add'>+      /*0x13a8*/ 532,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10cef*/ 1293,</div><div class='add'>+      /*0x10428*/ 1135,</div><div class='add'>+      /*0x03ed*/ 286,</div><div class='add'>+      /*0xa751*/ 1057,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10ef*/ 509,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa65f*/ 1013,</div><div class='add'>+      /*0x13d3*/ 575,</div><div class='add'>+      /*0x0453*/ 327,</div><div class='add'>+      /*0x04d3*/ 393,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f06*/ 742,</div><div class='add'>+      /*0x1e53*/ 654,</div><div class='add'>+      /*0x1ed3*/ 713,</div><div class='add'>+      /*0x0153*/ 95,</div><div class='add'>+      /*0x2cd3*/ 946,</div><div class='add'>+      /*0x13d5*/ 577,</div><div class='add'>+      /*0x0455*/ 329,</div><div class='add'>+      /*0x04d5*/ 394,</div><div class='add'>+      /*0xa7d9*/ 1106,</div><div class='add'>+      /*0x24d3*/ 826,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e55*/ 655,</div><div class='add'>+      /*0x1ed5*/ 714,</div><div class='add'>+      /*0x0155*/ 96,</div><div class='add'>+      /*0x2cd5*/ 947,</div><div class='add'>+      /*0x2c51*/ 882,</div><div class='add'>+      /*0xa794*/ 1083,</div><div class='add'>+      /*0x10cd1*/ 1263,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24d5*/ 828,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10d1*/ 479,</div><div class='add'>+      /*0xa65d*/ 1012,</div><div class='add'>+      /*0x01e1*/ 151,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13f3*/ 607,</div><div class='add'>+      /*0x0473*/ 349,</div><div class='add'>+      /*0x04f3*/ 409,</div><div class='add'>+      /*0x0073*/ 17,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104f3*/ 1202,</div><div class='add'>+      /*0x1e73*/ 670,</div><div class='add'>+      /*0x1ef3*/ 729,</div><div class='add'>+      /*0x0173*/ 111,</div><div class='add'>+      /*0x2cf3*/ 957,</div><div class='add'>+      /*0x13ce*/ 570,</div><div class='add'>+      /*0x044e*/ 322,</div><div class='add'>+      /*0x04ce*/ 390,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1044e*/ 1173,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x026b*/ 217,</div><div class='add'>+      /*0x1f7a*/ 794,</div><div class='add'>+      /*0x03f3*/ 289,</div><div class='add'>+      /*0x017e*/ 116,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01e3*/ 152,</div><div class='add'>+      /*0x0192*/ 122,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f20*/ 750,</div><div class='add'>+      /*0xa78c*/ 1080,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa66b*/ 1019,</div><div class='add'>+      /*0x03ce*/ 274,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa76d*/ 1071,</div><div class='add'>+      /*0x01e5*/ 153,</div><div class='add'>+      /*0x0188*/ 120,</div><div class='add'>+      /*0x13c3*/ 559,</div><div class='add'>+      /*0x0443*/ 311,</div><div class='add'>+      /*0x0373*/ 237,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10443*/ 1162,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e43*/ 646,</div><div class='add'>+      /*0x1ec3*/ 705,</div><div class='add'>+      /*0x01e9*/ 155,</div><div class='add'>+      /*0x2cc3*/ 938,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0561*/ 440,</div><div class='add'>+      /*0x1059b*/ 1215,</div><div class='add'>+      /*0x00e1*/ 26,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0257*/ 205,</div><div class='add'>+      /*0x01e7*/ 154,</div><div class='add'>+      /*0x03c3*/ 263,</div><div class='add'>+      /*0x118d9*/ 1322,</div><div class='add'>+      /*0x051b*/ 429,</div><div class='add'>+      /*0xa753*/ 1058,</div><div class='add'>+      /*0x13aa*/ 534,</div><div class='add'>+      /*0x10ced*/ 1291,</div><div class='add'>+      /*0xab53*/ 1108,</div><div class='add'>+      /*0x050b*/ 421,</div><div class='add'>+      /*0x1042a*/ 1137,</div><div class='add'>+      /*0xa657*/ 1009,</div><div class='add'>+      /*0x10ed*/ 507,</div><div class='add'>+      /*0x1f57*/ 775,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa755*/ 1059,</div><div class='add'>+      /*0x13c1*/ 557,</div><div class='add'>+      /*0x0441*/ 309,</div><div class='add'>+      /*0x118db*/ 1324,</div><div class='add'>+      /*0x0563*/ 442,</div><div class='add'>+      /*0x10441*/ 1160,</div><div class='add'>+      /*0x00e3*/ 28,</div><div class='add'>+      /*0x1e41*/ 645,</div><div class='add'>+      /*0x1ec1*/ 704,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cc1*/ 937,</div><div class='add'>+      /*0x026f*/ 219,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0565*/ 444,</div><div class='add'>+      /*0x2c53*/ 884,</div><div class='add'>+      /*0x00e5*/ 30,</div><div class='add'>+      /*0x10cd3*/ 1265,</div><div class='add'>+      /*0x118df*/ 1328,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03c1*/ 262,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10d3*/ 481,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0569*/ 448,</div><div class='add'>+      /*0x2c55*/ 886,</div><div class='add'>+      /*0x00e9*/ 34,</div><div class='add'>+      /*0x10cd5*/ 1267,</div><div class='add'>+      /*0x13de*/ 586,</div><div class='add'>+      /*0x045e*/ 338,</div><div class='add'>+      /*0x1f02*/ 738,</div><div class='add'>+      /*0x01df*/ 150,</div><div class='add'>+      /*0x10d5*/ 483,</div><div class='add'>+      /*0x104de*/ 1181,</div><div class='add'>+      /*0x0567*/ 446,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00e7*/ 32,</div><div class='add'>+      /*0x105a4*/ 1223,</div><div class='add'>+      /*0x028b*/ 231,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7d7*/ 1105,</div><div class='add'>+      /*0x0251*/ 200,</div><div class='add'>+      /*0x24de*/ 837,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x019a*/ 125,</div><div class='add'>+      /*0x018c*/ 121,</div><div class='add'>+      /*0x2c73*/ 903,</div><div class='add'>+      /*0x118dd*/ 1326,</div><div class='add'>+      /*0x1f00*/ 736,</div><div class='add'>+      /*0x0292*/ 233,</div><div class='add'>+      /*0x1f26*/ 756,</div><div class='add'>+      /*0x028a*/ 230,</div><div class='add'>+      /*0xa651*/ 1006,</div><div class='add'>+      /*0x10f3*/ 513,</div><div class='add'>+      /*0x1f51*/ 772,</div><div class='add'>+      /*0xa743*/ 1050,</div><div class='add'>+      /*0x2c4e*/ 879,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cce*/ 1260,</div><div class='add'>+      /*0x0288*/ 228,</div><div class='add'>+      /*0x01dd*/ 149,</div><div class='add'>+      /*0x10598*/ 1212,</div><div class='add'>+      /*0x13cf*/ 571,</div><div class='add'>+      /*0x044f*/ 323,</div><div class='add'>+      /*0x04cf*/ 391,</div><div class='add'>+      /*0x10fe*/ 522,</div><div class='add'>+      /*0x1044f*/ 1174,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e4f*/ 652,</div><div class='add'>+      /*0x1ecf*/ 711,</div><div class='add'>+      /*0x014f*/ 93,</div><div class='add'>+      /*0x2ccf*/ 944,</div><div class='add'>+      /*0x0586*/ 477,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e924*/ 1363,</div><div class='add'>+      /*0x1e922*/ 1361,</div><div class='add'>+      /*0x0211*/ 173,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2c43*/ 868,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cc3*/ 1249,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1059a*/ 1214,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13cd*/ 569,</div><div class='add'>+      /*0x044d*/ 321,</div><div class='add'>+      /*0xa741*/ 1049,</div><div class='add'>+      /*0x1f11*/ 745,</div><div class='add'>+      /*0x1044d*/ 1172,</div><div class='add'>+      /*0x01eb*/ 156,</div><div class='add'>+      /*0x1e4d*/ 651,</div><div class='add'>+      /*0x1ecd*/ 710,</div><div class='add'>+      /*0x014d*/ 92,</div><div class='add'>+      /*0x2ccd*/ 943,</div><div class='add'>+      /*0xa7d1*/ 1104,</div><div class='add'>+      /*0x056e*/ 453,</div><div class='add'>+      /*0x019e*/ 126,</div><div class='add'>+      /*0x00ee*/ 39,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x13cb*/ 567,</div><div class='add'>+      /*0x044b*/ 319,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03cd*/ 273,</div><div class='add'>+      /*0x1044b*/ 1170,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e4b*/ 650,</div><div class='add'>+      /*0x1ecb*/ 709,</div><div class='add'>+      /*0x014b*/ 91,</div><div class='add'>+      /*0x2ccb*/ 942,</div><div class='add'>+      /*0x118d7*/ 1320,</div><div class='add'>+      /*0x2c41*/ 866,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cc1*/ 1247,</div><div class='add'>+      /*0x13c9*/ 565,</div><div class='add'>+      /*0x0449*/ 317,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa66d*/ 1020,</div><div class='add'>+      /*0x10449*/ 1168,</div><div class='add'>+      /*0x03cb*/ 271,</div><div class='add'>+      /*0x1e49*/ 649,</div><div class='add'>+      /*0x1ec9*/ 708,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cc9*/ 941,</div><div class='add'>+      /*0x105a0*/ 1220,</div><div class='add'>+      /*0x057a*/ 465,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00fa*/ 50,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa791*/ 1081,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0253*/ 202,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03c9*/ 269,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x028c*/ 232,</div><div class='add'>+      /*0x1059e*/ 1218,</div><div class='add'>+      /*0x056b*/ 450,</div><div class='add'>+      /*0x2c5e*/ 895,</div><div class='add'>+      /*0x00eb*/ 36,</div><div class='add'>+      /*0x10cde*/ 1276,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa653*/ 1007,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f53*/ 773,</div><div class='add'>+      /*0x10de*/ 492,</div><div class='add'>+      /*0x16e61*/ 1330,</div><div class='add'>+      /*0xa74f*/ 1056,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01ef*/ 158,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa655*/ 1008,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f55*/ 774,</div><div class='add'>+      /*0x13f1*/ 605,</div><div class='add'>+      /*0x0471*/ 348,</div><div class='add'>+      /*0x04f1*/ 408,</div><div class='add'>+      /*0x0071*/ 15,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104f1*/ 1200,</div><div class='add'>+      /*0x1e71*/ 669,</div><div class='add'>+      /*0x1ef1*/ 728,</div><div class='add'>+      /*0x0171*/ 110,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x118d1*/ 1314,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x16e63*/ 1332,</div><div class='add'>+      /*0xa74d*/ 1055,</div><div class='add'>+      /*0x2c4f*/ 880,</div><div class='add'>+      /*0x0180*/ 117,</div><div class='add'>+      /*0x10ccf*/ 1261,</div><div class='add'>+      /*0x1f73*/ 787,</div><div class='add'>+      /*0x13f5*/ 609,</div><div class='add'>+      /*0x0475*/ 350,</div><div class='add'>+      /*0x04f5*/ 410,</div><div class='add'>+      /*0x0075*/ 19,</div><div class='add'>+      /*0x16e65*/ 1334,</div><div class='add'>+      /*0x104f5*/ 1204,</div><div class='add'>+      /*0x1e75*/ 671,</div><div class='add'>+      /*0x1ef5*/ 730,</div><div class='add'>+      /*0x0175*/ 112,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa74b*/ 1054,</div><div class='add'>+      /*0x029e*/ 235,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e69*/ 1338,</div><div class='add'>+      /*0x0371*/ 236,</div><div class='add'>+      /*0x0582*/ 473,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2c4d*/ 878,</div><div class='add'>+      /*0x056f*/ 454,</div><div class='add'>+      /*0x10ccd*/ 1259,</div><div class='add'>+      /*0x00ef*/ 40,</div><div class='add'>+      /*0x16e67*/ 1336,</div><div class='add'>+      /*0xa749*/ 1053,</div><div class='add'>+      /*0x13ae*/ 538,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1042e*/ 1141,</div><div class='add'>+      /*0xa643*/ 999,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f43*/ 769,</div><div class='add'>+      /*0x0580*/ 471,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c4b*/ 876,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10ccb*/ 1257,</div><div class='add'>+      /*0x105a6*/ 1225,</div><div class='add'>+      /*0x13b7*/ 547,</div><div class='add'>+      /*0x0437*/ 299,</div><div class='add'>+      /*0x04b7*/ 379,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10437*/ 1150,</div><div class='add'>+      /*0x03ae*/ 244,</div><div class='add'>+      /*0x1e37*/ 640,</div><div class='add'>+      /*0x1eb7*/ 699,</div><div class='add'>+      /*0x0137*/ 82,</div><div class='add'>+      /*0x2cb7*/ 932,</div><div class='add'>+      /*0x2c49*/ 874,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cc9*/ 1255,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13b5*/ 545,</div><div class='add'>+      /*0x0435*/ 297,</div><div class='add'>+      /*0x04b5*/ 378,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10435*/ 1148,</div><div class='add'>+      /*0x03b7*/ 252,</div><div class='add'>+      /*0x1e35*/ 639,</div><div class='add'>+      /*0x1eb5*/ 698,</div><div class='add'>+      /*0x0135*/ 81,</div><div class='add'>+      /*0x2cb5*/ 931,</div><div class='add'>+      /*0xa641*/ 998,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f41*/ 767,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x01ed*/ 157,</div><div class='add'>+      /*0x0282*/ 225,</div><div class='add'>+      /*0x1fe1*/ 803,</div><div class='add'>+      /*0x03b5*/ 250,</div><div class='add'>+      /*0x0481*/ 356,</div><div class='add'>+      /*0xa7c3*/ 1101,</div><div class='add'>+      /*0x1e926*/ 1365,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e01*/ 613,</div><div class='add'>+      /*0x1e81*/ 677,</div><div class='add'>+      /*0x0101*/ 56,</div><div class='add'>+      /*0x2c81*/ 905,</div><div class='add'>+      /*0x118d3*/ 1316,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01a8*/ 130,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0511*/ 424,</div><div class='add'>+      /*0x16e6e*/ 1343,</div><div class='add'>+      /*0x13a5*/ 529,</div><div class='add'>+      /*0x0280*/ 224,</div><div class='add'>+      /*0x04a5*/ 370,</div><div class='add'>+      /*0x217a*/ 816,</div><div class='add'>+      /*0x118d5*/ 1318,</div><div class='add'>+      /*0x10cf1*/ 1295,</div><div class='add'>+      /*0x1e25*/ 631,</div><div class='add'>+      /*0x1ea5*/ 690,</div><div class='add'>+      /*0x0125*/ 74,</div><div class='add'>+      /*0x2ca5*/ 923,</div><div class='add'>+      /*0x10f1*/ 511,</div><div class='add'>+      /*0x1e05*/ 615,</div><div class='add'>+      /*0x1e85*/ 679,</div><div class='add'>+      /*0x0105*/ 58,</div><div class='add'>+      /*0x2c85*/ 907,</div><div class='add'>+      /*0x13b3*/ 543,</div><div class='add'>+      /*0x0433*/ 295,</div><div class='add'>+      /*0x04b3*/ 377,</div><div class='add'>+      /*0x1fe5*/ 804,</div><div class='add'>+      /*0x10433*/ 1146,</div><div class='add'>+      /*0xa7c1*/ 1100,</div><div class='add'>+      /*0x1e33*/ 638,</div><div class='add'>+      /*0x1eb3*/ 697,</div><div class='add'>+      /*0x0133*/ 80,</div><div class='add'>+      /*0x2cb3*/ 930,</div><div class='add'>+      /*0x2d16*/ 980,</div><div class='add'>+      /*0x024f*/ 198,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2d1b*/ 985,</div><div class='add'>+      /*0x16e7a*/ 1355,</div><div class='add'>+      /*0x056d*/ 452,</div><div class='add'>+      /*0x10f5*/ 515,</div><div class='add'>+      /*0x00ed*/ 38,</div><div class='add'>+      /*0x2d0b*/ 969,</div><div class='add'>+      /*0x03b3*/ 248,</div><div class='add'>+      /*0x118ce*/ 1311,</div><div class='add'>+      /*0x105a8*/ 1227,</div><div class='add'>+      /*0xa64f*/ 1005,</div><div class='add'>+      /*0x01f3*/ 159,</div><div class='add'>+      /*0xa737*/ 1044,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e6b*/ 1340,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2d12*/ 976,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2d0a*/ 968,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01ce*/ 141,</div><div class='add'>+      /*0x13a3*/ 527,</div><div class='add'>+      /*0x024d*/ 197,</div><div class='add'>+      /*0x04a3*/ 369,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa735*/ 1043,</div><div class='add'>+      /*0x2d08*/ 966,</div><div class='add'>+      /*0x1e23*/ 630,</div><div class='add'>+      /*0x1ea3*/ 689,</div><div class='add'>+      /*0x0123*/ 73,</div><div class='add'>+      /*0x2ca3*/ 922,</div><div class='add'>+      /*0x118c3*/ 1300,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa64d*/ 1004,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13ad*/ 537,</div><div class='add'>+      /*0x2c37*/ 856,</div><div class='add'>+      /*0x04ad*/ 374,</div><div class='add'>+      /*0x024b*/ 196,</div><div class='add'>+      /*0x1042d*/ 1140,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e2d*/ 635,</div><div class='add'>+      /*0x1ead*/ 694,</div><div class='add'>+      /*0x012d*/ 78,</div><div class='add'>+      /*0x2cad*/ 927,</div><div class='add'>+      /*0x1e928*/ 1367,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xa64b*/ 1003,</div><div class='add'>+      /*0x2c35*/ 854,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0249*/ 195,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03ad*/ 243,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2d24*/ 994,</div><div class='add'>+      /*0x2d22*/ 992,</div><div class='add'>+      /*0x0573*/ 458,</div><div class='add'>+      /*0xa725*/ 1036,</div><div class='add'>+      /*0x00f3*/ 44,</div><div class='add'>+      /*0x047b*/ 353,</div><div class='add'>+      /*0x04fb*/ 413,</div><div class='add'>+      /*0xa649*/ 1002,</div><div class='add'>+      /*0x118c1*/ 1298,</div><div class='add'>+      /*0x104fb*/ 1210,</div><div class='add'>+      /*0x1e7b*/ 674,</div><div class='add'>+      /*0x1efb*/ 733,</div><div class='add'>+      /*0x2d14*/ 978,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x057e*/ 469,</div><div class='add'>+      /*0x1f04*/ 740,</div><div class='add'>+      /*0x00fe*/ 54,</div><div class='add'>+      /*0x16e6f*/ 1344,</div><div class='add'>+      /*0xa733*/ 1042,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2d10*/ 974,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03fb*/ 291,</div><div class='add'>+      /*0x2d18*/ 982,</div><div class='add'>+      /*0x13bf*/ 555,</div><div class='add'>+      /*0x043f*/ 307,</div><div class='add'>+      /*0x04bf*/ 383,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1043f*/ 1158,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e3f*/ 644,</div><div class='add'>+      /*0x1ebf*/ 703,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cbf*/ 936,</div><div class='add'>+      /*0x118de*/ 1327,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0271*/ 220,</div><div class='add'>+      /*0x2d06*/ 964,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x037b*/ 239,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2c33*/ 852,</div><div class='add'>+      /*0x03bf*/ 260,</div><div class='add'>+      /*0x13b2*/ 542,</div><div class='add'>+      /*0x0432*/ 294,</div><div class='add'>+      /*0x2d1a*/ 984,</div><div class='add'>+      /*0x2d0c*/ 970,</div><div class='add'>+      /*0x10432*/ 1145,</div><div class='add'>+      /*0x1f71*/ 785,</div><div class='add'>+      /*0x105aa*/ 1229,</div><div class='add'>+      /*0xa723*/ 1035,</div><div class='add'>+      /*0x13b9*/ 549,</div><div class='add'>+      /*0x0439*/ 301,</div><div class='add'>+      /*0x04b9*/ 380,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10439*/ 1152,</div><div class='add'>+      /*0x0275*/ 222,</div><div class='add'>+      /*0x1e39*/ 641,</div><div class='add'>+      /*0x1eb9*/ 700,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cb9*/ 933,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03b2*/ 247,</div><div class='add'>+      /*0x1e943*/ 1394,</div><div class='add'>+      /*0xa72d*/ 1040,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x118cf*/ 1312,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f75*/ 789,</div><div class='add'>+      /*0x03b9*/ 254,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x13ac*/ 536,</div><div class='add'>+      /*0x13b1*/ 541,</div><div class='add'>+      /*0x0431*/ 293,</div><div class='add'>+      /*0x04b1*/ 376,</div><div class='add'>+      /*0x1042c*/ 1139,</div><div class='add'>+      /*0x10431*/ 1144,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e31*/ 637,</div><div class='add'>+      /*0x1eb1*/ 696,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cb1*/ 929,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1e92a*/ 1369,</div><div class='add'>+      /*0x2d20*/ 990,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x118cd*/ 1310,</div><div class='add'>+      /*0x03ac*/ 242,</div><div class='add'>+      /*0x03b1*/ 246,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13a7*/ 531,</div><div class='add'>+      /*0x1e941*/ 1392,</div><div class='add'>+      /*0x04a7*/ 371,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2d1e*/ 988,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e27*/ 632,</div><div class='add'>+      /*0x1ea7*/ 691,</div><div class='add'>+      /*0x0127*/ 75,</div><div class='add'>+      /*0x2ca7*/ 924,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x118cb*/ 1308,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f37*/ 765,</div><div class='add'>+      /*0xa73f*/ 1048,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e6d*/ 1342,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x13c7*/ 563,</div><div class='add'>+      /*0x0447*/ 315,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118c9*/ 1306,</div><div class='add'>+      /*0x10447*/ 1166,</div><div class='add'>+      /*0x1f35*/ 763,</div><div class='add'>+      /*0x1e47*/ 648,</div><div class='add'>+      /*0x1ec7*/ 707,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cc7*/ 940,</div><div class='add'>+      /*0x0201*/ 165,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x01c9*/ 139,</div><div class='add'>+      /*0x2c3f*/ 864,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03c7*/ 267,</div><div class='add'>+      /*0xa739*/ 1045,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f01*/ 737,</div><div class='add'>+      /*0x2173*/ 809,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0225*/ 182,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1fd1*/ 801,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0205*/ 167,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7b7*/ 1095,</div><div class='add'>+      /*0x214e*/ 805,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x217e*/ 820,</div><div class='add'>+      /*0x2c32*/ 851,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f25*/ 755,</div><div class='add'>+      /*0x2d02*/ 960,</div><div class='add'>+      /*0x0233*/ 189,</div><div class='add'>+      /*0x13c5*/ 561,</div><div class='add'>+      /*0x0445*/ 313,</div><div class='add'>+      /*0x1f05*/ 741,</div><div class='add'>+      /*0x2c39*/ 858,</div><div class='add'>+      /*0x10445*/ 1164,</div><div class='add'>+      /*0xa7b5*/ 1094,</div><div class='add'>+      /*0x1e45*/ 647,</div><div class='add'>+      /*0x1ec5*/ 706,</div><div class='add'>+      /*0x16e73*/ 1348,</div><div class='add'>+      /*0x2cc5*/ 939,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f33*/ 761,</div><div class='add'>+      /*0x2d0e*/ 972,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2d00*/ 958,</div><div class='add'>+      /*0x0584*/ 475,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03c5*/ 265,</div><div class='add'>+      /*0x16e7e*/ 1359,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa727*/ 1037,</div><div class='add'>+      /*0xa781*/ 1076,</div><div class='add'>+      /*0x13c0*/ 556,</div><div class='add'>+      /*0x0440*/ 308,</div><div class='add'>+      /*0x2c31*/ 850,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10440*/ 1159,</div><div class='add'>+      /*0x047d*/ 354,</div><div class='add'>+      /*0x04fd*/ 414,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0140*/ 86,</div><div class='add'>+      /*0x0223*/ 181,</div><div class='add'>+      /*0x1e7d*/ 675,</div><div class='add'>+      /*0x1efd*/ 734,</div><div class='add'>+      /*0x01f5*/ 160,</div><div class='add'>+      /*0x1d7d*/ 611,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7a5*/ 1091,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x03c0*/ 261,</div><div class='add'>+      /*0xa785*/ 1078,</div><div class='add'>+      /*0xa747*/ 1052,</div><div class='add'>+      /*0x1f23*/ 753,</div><div class='add'>+      /*0x022d*/ 186,</div><div class='add'>+      /*0x1e03*/ 614,</div><div class='add'>+      /*0x1e83*/ 678,</div><div class='add'>+      /*0x0103*/ 57,</div><div class='add'>+      /*0x2c83*/ 906,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x048f*/ 359,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2d11*/ 975,</div><div class='add'>+      /*0x1e0f*/ 620,</div><div class='add'>+      /*0x1e8f*/ 684,</div><div class='add'>+      /*0x010f*/ 63,</div><div class='add'>+      /*0x2c8f*/ 912,</div><div class='add'>+      /*0xa69b*/ 1034,</div><div class='add'>+      /*0x0571*/ 456,</div><div class='add'>+      /*0x037d*/ 241,</div><div class='add'>+      /*0x00f1*/ 42,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa68b*/ 1026,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2c47*/ 872,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cc7*/ 1253,</div><div class='add'>+      /*0x13bd*/ 553,</div><div class='add'>+      /*0x043d*/ 305,</div><div class='add'>+      /*0x04bd*/ 382,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1043d*/ 1156,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e3d*/ 643,</div><div class='add'>+      /*0x1ebd*/ 702,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cbd*/ 935,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0575*/ 460,</div><div class='add'>+      /*0x1f7b*/ 795,</div><div class='add'>+      /*0x00f5*/ 46,</div><div class='add'>+      /*0xa745*/ 1051,</div><div class='add'>+      /*0xa7a3*/ 1090,</div><div class='add'>+      /*0x13a1*/ 525,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x04a1*/ 368,</div><div class='add'>+      /*0x03bd*/ 258,</div><div class='add'>+      /*0x023f*/ 191,</div><div class='add'>+      /*0xff59*/ 1133,</div><div class='add'>+      /*0x1e21*/ 629,</div><div class='add'>+      /*0x1ea1*/ 688,</div><div class='add'>+      /*0x0121*/ 72,</div><div class='add'>+      /*0x2ca1*/ 921,</div><div class='add'>+      /*0x13bb*/ 551,</div><div class='add'>+      /*0x043b*/ 303,</div><div class='add'>+      /*0x04bb*/ 381,</div><div class='add'>+      /*0x105ae*/ 1233,</div><div class='add'>+      /*0x1043b*/ 1154,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e3b*/ 642,</div><div class='add'>+      /*0x1ebb*/ 701,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2cbb*/ 934,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2c45*/ 870,</div><div class='add'>+      /*0x13af*/ 539,</div><div class='add'>+      /*0x10cc5*/ 1251,</div><div class='add'>+      /*0x04af*/ 375,</div><div class='add'>+      /*0x105b7*/ 1241,</div><div class='add'>+      /*0x1042f*/ 1142,</div><div class='add'>+      /*0x03bb*/ 256,</div><div class='add'>+      /*0x1e2f*/ 636,</div><div class='add'>+      /*0x1eaf*/ 695,</div><div class='add'>+      /*0x012f*/ 79,</div><div class='add'>+      /*0x2caf*/ 928,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01a5*/ 129,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f32*/ 760,</div><div class='add'>+      /*0x0499*/ 364,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0185*/ 119,</div><div class='add'>+      /*0x105b5*/ 1239,</div><div class='add'>+      /*0x1e19*/ 625,</div><div class='add'>+      /*0x03af*/ 245,</div><div class='add'>+      /*0x0119*/ 68,</div><div class='add'>+      /*0x2c99*/ 917,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c40*/ 865,</div><div class='add'>+      /*0x13e6*/ 594,</div><div class='add'>+      /*0x10cc0*/ 1246,</div><div class='add'>+      /*0x1e92e*/ 1373,</div><div class='add'>+      /*0x0066*/ 5,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104e6*/ 1189,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0231*/ 188,</div><div class='add'>+      /*0x0581*/ 472,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10fd*/ 521,</div><div class='add'>+      /*0xa7bf*/ 1099,</div><div class='add'>+      /*0x13f2*/ 606,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24e6*/ 845,</div><div class='add'>+      /*0x0072*/ 16,</div><div class='add'>+      /*0x1e937*/ 1382,</div><div class='add'>+      /*0x104f2*/ 1201,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0501*/ 416,</div><div class='add'>+      /*0x1f31*/ 759,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa73d*/ 1047,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x105a5*/ 1224,</div><div class='add'>+      /*0x0227*/ 183,</div><div class='add'>+      /*0x0585*/ 476,</div><div class='add'>+      /*0x1e935*/ 1380,</div><div class='add'>+      /*0x03f2*/ 288,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x0525*/ 434,</div><div class='add'>+      /*0x01a3*/ 128,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa7b9*/ 1096,</div><div class='add'>+      /*0x0505*/ 418,</div><div class='add'>+      /*0x1f27*/ 757,</div><div class='add'>+      /*0x105b3*/ 1237,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1059c*/ 1216,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c3d*/ 862,</div><div class='add'>+      /*0xa73b*/ 1046,</div><div class='add'>+      /*0x01ad*/ 131,</div><div class='add'>+      /*0x0247*/ 194,</div><div class='add'>+      /*0x13a9*/ 533,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x04a9*/ 372,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10429*/ 1136,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e29*/ 633,</div><div class='add'>+      /*0x1ea9*/ 692,</div><div class='add'>+      /*0x0129*/ 76,</div><div class='add'>+      /*0x2ca9*/ 925,</div><div class='add'>+      /*0xa647*/ 1001,</div><div class='add'>+      /*0xa72f*/ 1041,</div><div class='add'>+      /*0x1e925*/ 1364,</div><div class='add'>+      /*0x0479*/ 352,</div><div class='add'>+      /*0x04f9*/ 412,</div><div class='add'>+      /*0x0079*/ 23,</div><div class='add'>+      /*0x2171*/ 807,</div><div class='add'>+      /*0x104f9*/ 1208,</div><div class='add'>+      /*0x1e79*/ 673,</div><div class='add'>+      /*0x1ef9*/ 732,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1d79*/ 610,</div><div class='add'>+      /*0x2c3b*/ 860,</div><div class='add'>+      /*0x01fb*/ 162,</div><div class='add'>+      /*0x105a3*/ 1222,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1e933*/ 1378,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff57*/ 1131,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7a7*/ 1092,</div><div class='add'>+      /*0x0523*/ 433,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x2175*/ 811,</div><div class='add'>+      /*0x105ad*/ 1232,</div><div class='add'>+      /*0x13d0*/ 572,</div><div class='add'>+      /*0x0450*/ 324,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e71*/ 1346,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01bf*/ 137,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x052d*/ 438,</div><div class='add'>+      /*0x13c2*/ 558,</div><div class='add'>+      /*0x0442*/ 310,</div><div class='add'>+      /*0x04c2*/ 384,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10442*/ 1161,</div><div class='add'>+      /*0xa645*/ 1000,</div><div class='add'>+      /*0x24d0*/ 823,</div><div class='add'>+      /*0x1f45*/ 771,</div><div class='add'>+      /*0x0142*/ 87,</div><div class='add'>+      /*0x1e09*/ 617,</div><div class='add'>+      /*0x1e89*/ 681,</div><div class='add'>+      /*0x0109*/ 60,</div><div class='add'>+      /*0x2c89*/ 909,</div><div class='add'>+      /*0x2c66*/ 899,</div><div class='add'>+      /*0x1e923*/ 1362,</div><div class='add'>+      /*0x10ce6*/ 1284,</div><div class='add'>+      /*0x16e75*/ 1350,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0240*/ 192,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10e6*/ 500,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x027d*/ 223,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x057b*/ 466,</div><div class='add'>+      /*0x01b9*/ 135,</div><div class='add'>+      /*0x00fb*/ 51,</div><div class='add'>+      /*0x10cf2*/ 1296,</div><div class='add'>+      /*0x1e92d*/ 1372,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f40*/ 766,</div><div class='add'>+      /*0x10f2*/ 512,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f7d*/ 797,</div><div class='add'>+      /*0x0203*/ 166,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff51*/ 1125,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa729*/ 1038,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x047f*/ 355,</div><div class='add'>+      /*0x04ff*/ 415,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x020f*/ 172,</div><div class='add'>+      /*0x1e7f*/ 676,</div><div class='add'>+      /*0x1eff*/ 735,</div><div class='add'>+      /*0x1f03*/ 739,</div><div class='add'>+      /*0x0477*/ 351,</div><div class='add'>+      /*0x04f7*/ 411,</div><div class='add'>+      /*0x0077*/ 21,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104f7*/ 1206,</div><div class='add'>+      /*0x1e77*/ 672,</div><div class='add'>+      /*0x1ef7*/ 731,</div><div class='add'>+      /*0x0177*/ 113,</div><div class='add'>+      /*0x13ec*/ 600,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x006c*/ 10,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104ec*/ 1195,</div><div class='add'>+      /*0x13ab*/ 535,</div><div class='add'>+      /*0x105b9*/ 1243,</div><div class='add'>+      /*0x04ab*/ 373,</div><div class='add'>+      /*0x2cec*/ 955,</div><div class='add'>+      /*0x1042b*/ 1138,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e2b*/ 634,</div><div class='add'>+      /*0x1eab*/ 693,</div><div class='add'>+      /*0x012b*/ 77,</div><div class='add'>+      /*0x2cab*/ 926,</div><div class='add'>+      /*0x1e93f*/ 1390,</div><div class='add'>+      /*0x13e8*/ 596,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0068*/ 7,</div><div class='add'>+      /*0x118c7*/ 1304,</div><div class='add'>+      /*0x104e8*/ 1191,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2184*/ 822,</div><div class='add'>+      /*0x10f9*/ 519,</div><div class='add'>+      /*0x0377*/ 238,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x105ac*/ 1231,</div><div class='add'>+      /*0x105b1*/ 1236,</div><div class='add'>+      /*0x24e8*/ 847,</div><div class='add'>+      /*0x13ea*/ 598,</div><div class='add'>+      /*0xa783*/ 1077,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x006a*/ 8,</div><div class='add'>+      /*0x1e932*/ 1377,</div><div class='add'>+      /*0x104ea*/ 1193,</div><div class='add'>+      /*0x1f21*/ 751,</div><div class='add'>+      /*0x2d04*/ 962,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xa691*/ 1029,</div><div class='add'>+      /*0x1e939*/ 1384,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c50*/ 881,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cd0*/ 1262,</div><div class='add'>+      /*0x022f*/ 187,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x105a7*/ 1226,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10d0*/ 478,</div><div class='add'>+      /*0x2c42*/ 867,</div><div class='add'>+      /*0x13f0*/ 604,</div><div class='add'>+      /*0x10cc2*/ 1248,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0070*/ 14,</div><div class='add'>+      /*0x0527*/ 435,</div><div class='add'>+      /*0x104f0*/ 1199,</div><div class='add'>+      /*0x0219*/ 177,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118c5*/ 1302,</div><div class='add'>+      /*0xa7bd*/ 1098,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e92c*/ 1371,</div><div class='add'>+      /*0x1e931*/ 1376,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa77f*/ 1075,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff53*/ 1127,</div><div class='add'>+      /*0x0266*/ 213,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13c8*/ 564,</div><div class='add'>+      /*0x0448*/ 316,</div><div class='add'>+      /*0x04c8*/ 387,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10448*/ 1167,</div><div class='add'>+      /*0xa7a1*/ 1089,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff55*/ 1129,</div><div class='add'>+      /*0x0148*/ 90,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0272*/ 221,</div><div class='add'>+      /*0x1f66*/ 782,</div><div class='add'>+      /*0x118c0*/ 1297,</div><div class='add'>+      /*0x1e927*/ 1366,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa7bb*/ 1097,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa72b*/ 1039,</div><div class='add'>+      /*0x03c8*/ 268,</div><div class='add'>+      /*0x0076*/ 20,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104f6*/ 1205,</div><div class='add'>+      /*0x1f72*/ 786,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x10ff*/ 523,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01fd*/ 163,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13e4*/ 592,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x217b*/ 817,</div><div class='add'>+      /*0x0064*/ 3,</div><div class='add'>+      /*0x10f7*/ 517,</div><div class='add'>+      /*0x104e4*/ 1187,</div><div class='add'>+      /*0x2c6c*/ 902,</div><div class='add'>+      /*0xff4e*/ 1122,</div><div class='add'>+      /*0x10cec*/ 1290,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa799*/ 1085,</div><div class='add'>+      /*0x0495*/ 362,</div><div class='add'>+      /*0x0183*/ 118,</div><div class='add'>+      /*0x10ec*/ 506,</div><div class='add'>+      /*0x24e4*/ 843,</div><div class='add'>+      /*0x1e15*/ 623,</div><div class='add'>+      /*0x1e95*/ 687,</div><div class='add'>+      /*0x0115*/ 66,</div><div class='add'>+      /*0x2c95*/ 915,</div><div class='add'>+      /*0x0229*/ 184,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2c68*/ 900,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10ce8*/ 1286,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x16e7b*/ 1356,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10e8*/ 502,</div><div class='add'>+      /*0xff43*/ 1111,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13c6*/ 562,</div><div class='add'>+      /*0x0446*/ 314,</div><div class='add'>+      /*0x04c6*/ 386,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10446*/ 1165,</div><div class='add'>+      /*0x2c6a*/ 901,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cea*/ 1288,</div><div class='add'>+      /*0x0146*/ 89,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01bd*/ 136,</div><div class='add'>+      /*0x1f79*/ 793,</div><div class='add'>+      /*0x10ea*/ 504,</div><div class='add'>+      /*0x057d*/ 468,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00fd*/ 53,</div><div class='add'>+      /*0x0583*/ 474,</div><div class='add'>+      /*0x0493*/ 361,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03c6*/ 266,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e13*/ 622,</div><div class='add'>+      /*0x1e93*/ 686,</div><div class='add'>+      /*0x0113*/ 65,</div><div class='add'>+      /*0x2c93*/ 914,</div><div class='add'>+      /*0x0250*/ 199,</div><div class='add'>+      /*0x01a1*/ 127,</div><div class='add'>+      /*0x0503*/ 417,</div><div class='add'>+      /*0x2d01*/ 959,</div><div class='add'>+      /*0x13e0*/ 588,</div><div class='add'>+      /*0x10cf0*/ 1294,</div><div class='add'>+      /*0xff41*/ 1109,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0242*/ 193,</div><div class='add'>+      /*0x104e0*/ 1183,</div><div class='add'>+      /*0x10f0*/ 510,</div><div class='add'>+      /*0x0209*/ 169,</div><div class='add'>+      /*0x050f*/ 423,</div><div class='add'>+      /*0x1e940*/ 1391,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa7a9*/ 1093,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24e0*/ 839,</div><div class='add'>+      /*0x2d25*/ 995,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f42*/ 768,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c48*/ 873,</div><div class='add'>+      /*0x2d05*/ 963,</div><div class='add'>+      /*0x10cc8*/ 1254,</div><div class='add'>+      /*0x1e07*/ 616,</div><div class='add'>+      /*0x1e87*/ 680,</div><div class='add'>+      /*0x0107*/ 59,</div><div class='add'>+      /*0x2c87*/ 908,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13c4*/ 560,</div><div class='add'>+      /*0x0444*/ 312,</div><div class='add'>+      /*0x04c4*/ 385,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10444*/ 1163,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0199*/ 124,</div><div class='add'>+      /*0x2d1c*/ 986,</div><div class='add'>+      /*0x0144*/ 88,</div><div class='add'>+      /*0x2c76*/ 904,</div><div class='add'>+      /*0x105a1*/ 1221,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x0283*/ 226,</div><div class='add'>+      /*0x10f6*/ 516,</div><div class='add'>+      /*0x0497*/ 363,</div><div class='add'>+      /*0x0521*/ 432,</div><div class='add'>+      /*0x03c4*/ 264,</div><div class='add'>+      /*0x105bb*/ 1244,</div><div class='add'>+      /*0x1e17*/ 624,</div><div class='add'>+      /*0x049d*/ 366,</div><div class='add'>+      /*0x0117*/ 67,</div><div class='add'>+      /*0x2c97*/ 916,</div><div class='add'>+      /*0x10ce4*/ 1282,</div><div class='add'>+      /*0x1e1d*/ 627,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x011d*/ 70,</div><div class='add'>+      /*0x2c9d*/ 919,</div><div class='add'>+      /*0x10e4*/ 498,</div><div class='add'>+      /*0x1e93d*/ 1388,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x105af*/ 1234,</div><div class='add'>+      /*0x026c*/ 218,</div><div class='add'>+      /*0xff4f*/ 1123,</div><div class='add'>+      /*0x2d23*/ 993,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f77*/ 791,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x022b*/ 185,</div><div class='add'>+      /*0x052f*/ 439,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x13e2*/ 590,</div><div class='add'>+      /*0x10599*/ 1213,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0062*/ 1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104e2*/ 1185,</div><div class='add'>+      /*0x2d2d*/ 997,</div><div class='add'>+      /*0x0268*/ 214,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0519*/ 428,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c46*/ 871,</div><div class='add'>+      /*0x1e93b*/ 1386,</div><div class='add'>+      /*0x10cc6*/ 1252,</div><div class='add'>+      /*0x24e2*/ 841,</div><div class='add'>+      /*0xff4d*/ 1121,</div><div class='add'>+      /*0x13d6*/ 578,</div><div class='add'>+      /*0x0456*/ 330,</div><div class='add'>+      /*0x0078*/ 22,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104f8*/ 1207,</div><div class='add'>+      /*0x0566*/ 445,</div><div class='add'>+      /*0x026a*/ 216,</div><div class='add'>+      /*0x00e6*/ 31,</div><div class='add'>+      /*0x13dc*/ 584,</div><div class='add'>+      /*0x045c*/ 336,</div><div class='add'>+      /*0x1e92f*/ 1374,</div><div class='add'>+      /*0x13da*/ 582,</div><div class='add'>+      /*0x045a*/ 334,</div><div class='add'>+      /*0x104dc*/ 1179,</div><div class='add'>+      /*0x24d6*/ 829,</div><div class='add'>+      /*0xff4b*/ 1119,</div><div class='add'>+      /*0x104da*/ 1177,</div><div class='add'>+      /*0x0572*/ 457,</div><div class='add'>+      /*0x03f8*/ 290,</div><div class='add'>+      /*0x00f2*/ 43,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01f9*/ 161,</div><div class='add'>+      /*0x24dc*/ 835,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x24da*/ 833,</div><div class='add'>+      /*0x10ce0*/ 1278,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xff49*/ 1117,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10e0*/ 494,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x118d0*/ 1313,</div><div class='add'>+      /*0x13bc*/ 552,</div><div class='add'>+      /*0x043c*/ 304,</div><div class='add'>+      /*0x217d*/ 819,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1043c*/ 1155,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f70*/ 784,</div><div class='add'>+      /*0x118c2*/ 1299,</div><div class='add'>+      /*0x013c*/ 84,</div><div class='add'>+      /*0x017c*/ 115,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x01d0*/ 142,</div><div class='add'>+      /*0x105a9*/ 1228,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c44*/ 869,</div><div class='add'>+      /*0x1fb1*/ 799,</div><div class='add'>+      /*0x10cc4*/ 1250,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03bc*/ 257,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0529*/ 436,</div><div class='add'>+      /*0x13d8*/ 580,</div><div class='add'>+      /*0x0458*/ 332,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x104d8*/ 1175,</div><div class='add'>+      /*0x16e7d*/ 1358,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13ca*/ 566,</div><div class='add'>+      /*0x044a*/ 318,</div><div class='add'>+      /*0x04ca*/ 388,</div><div class='add'>+      /*0x0579*/ 464,</div><div class='add'>+      /*0x1044a*/ 1169,</div><div class='add'>+      /*0x00f9*/ 49,</div><div class='add'>+      /*0x24d8*/ 831,</div><div class='add'>+      /*0x037c*/ 240,</div><div class='add'>+      /*0x13d4*/ 576,</div><div class='add'>+      /*0x0454*/ 328,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1f76*/ 790,</div><div class='add'>+      /*0x13b6*/ 546,</div><div class='add'>+      /*0x0436*/ 298,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x10436*/ 1149,</div><div class='add'>+      /*0x03ca*/ 270,</div><div class='add'>+      /*0x1e929*/ 1368,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x24d4*/ 827,</div><div class='add'>+      /*0x0215*/ 175,</div><div class='add'>+      /*0x13b0*/ 540,</div><div class='add'>+      /*0x0430*/ 292,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f64*/ 780,</div><div class='add'>+      /*0x10430*/ 1143,</div><div class='add'>+      /*0x13d2*/ 574,</div><div class='add'>+      /*0x0452*/ 326,</div><div class='add'>+      /*0x01ff*/ 164,</div><div class='add'>+      /*0x10ce2*/ 1280,</div><div class='add'>+      /*0x03b6*/ 251,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1f15*/ 749,</div><div class='add'>+      /*0x10e2*/ 496,</div><div class='add'>+      /*0xa7c8*/ 1102,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0509*/ 420,</div><div class='add'>+      /*0x2d27*/ 996,</div><div class='add'>+      /*0x24d2*/ 825,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2c56*/ 887,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cd6*/ 1268,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x10f8*/ 518,</div><div class='add'>+      /*0x10d6*/ 484,</div><div class='add'>+      /*0x2c5c*/ 893,</div><div class='add'>+      /*0xa7f6*/ 1107,</div><div class='add'>+      /*0x10cdc*/ 1274,</div><div class='add'>+      /*0x2c5a*/ 891,</div><div class='add'>+      /*0xa77c*/ 1074,</div><div class='add'>+      /*0x10cda*/ 1272,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10dc*/ 490,</div><div class='add'>+      /*0x0213*/ 174,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10da*/ 488,</div><div class='add'>+      /*0x13f4*/ 608,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e942*/ 1393,</div><div class='add'>+      /*0x0074*/ 18,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x104f4*/ 1203,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x1f13*/ 747,</div><div class='add'>+      /*0x0260*/ 209,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x057f*/ 470,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00ff*/ 55,</div><div class='add'>+      /*0x2c3c*/ 861,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0289*/ 229,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0577*/ 462,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f60*/ 776,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0207*/ 168,</div><div class='add'>+      /*0x2172*/ 808,</div><div class='add'>+      /*0x105ab*/ 1230,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x056c*/ 451,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00ec*/ 37,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x052b*/ 437,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c58*/ 889,</div><div class='add'>+      /*0x1f07*/ 743,</div><div class='add'>+      /*0x10cd8*/ 1270,</div><div class='add'>+      /*0x16e66*/ 1335,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x118c8*/ 1305,</div><div class='add'>+      /*0x10d8*/ 486,</div><div class='add'>+      /*0x2c4a*/ 875,</div><div class='add'>+      /*0x0568*/ 447,</div><div class='add'>+      /*0x10cca*/ 1256,</div><div class='add'>+      /*0x00e8*/ 33,</div><div class='add'>+      /*0x1f44*/ 770,</div><div class='add'>+      /*0xa793*/ 1082,</div><div class='add'>+      /*0x0217*/ 176,</div><div class='add'>+      /*0x16e72*/ 1347,</div><div class='add'>+      /*0x2c54*/ 885,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cd4*/ 1266,</div><div class='add'>+      /*0x021d*/ 179,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa681*/ 1021,</div><div class='add'>+      /*0x2c36*/ 855,</div><div class='add'>+      /*0x10d4*/ 482,</div><div class='add'>+      /*0x056a*/ 449,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00ea*/ 35,</div><div class='add'>+      /*0x1e92b*/ 1370,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x13b4*/ 544,</div><div class='add'>+      /*0x0434*/ 296,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2c30*/ 849,</div><div class='add'>+      /*0x10434*/ 1147,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2c52*/ 883,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10cd2*/ 1264,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2179*/ 815,</div><div class='add'>+      /*0xa685*/ 1023,</div><div class='add'>+      /*0xa787*/ 1079,</div><div class='add'>+      /*0x10d2*/ 480,</div><div class='add'>+      /*0x2d03*/ 961,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0570*/ 455,</div><div class='add'>+      /*0x03b4*/ 249,</div><div class='add'>+      /*0x00f0*/ 41,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x13cc*/ 568,</div><div class='add'>+      /*0x044c*/ 320,</div><div class='add'>+      /*0x04cc*/ 389,</div><div class='add'>+      /*0x2d0f*/ 973,</div><div class='add'>+      /*0x1044c*/ 1171,</div><div class='add'>+      /*0x1f62*/ 778,</div><div class='add'>+      /*0x049f*/ 367,</div><div class='add'>+      /*0x0195*/ 123,</div><div class='add'>+      /*0x0256*/ 204,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e1f*/ 628,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x011f*/ 71,</div><div class='add'>+      /*0x2c9f*/ 920,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e79*/ 1354,</div><div class='add'>+      /*0x025c*/ 208,</div><div class='add'>+      /*0xa797*/ 1084,</div><div class='add'>+      /*0x118c6*/ 1303,</div><div class='add'>+      /*0x03cc*/ 272,</div><div class='add'>+      /*0x1f78*/ 792,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa79d*/ 1087,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x10f4*/ 514,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x01c6*/ 138,</div><div class='add'>+      /*0x0576*/ 461,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00f6*/ 47,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x13be*/ 554,</div><div class='add'>+      /*0x043e*/ 306,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2d21*/ 991,</div><div class='add'>+      /*0x1043e*/ 1157,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x023c*/ 190,</div><div class='add'>+      /*0x013e*/ 85,</div><div class='add'>+      /*0x0564*/ 443,</div><div class='add'>+      /*0x048d*/ 358,</div><div class='add'>+      /*0x00e4*/ 29,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1e0d*/ 619,</div><div class='add'>+      /*0x1e8d*/ 683,</div><div class='add'>+      /*0x010d*/ 62,</div><div class='add'>+      /*0x2c8d*/ 911,</div><div class='add'>+      /*0x0515*/ 426,</div><div class='add'>+      /*0x03be*/ 259,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f7c*/ 796,</div><div class='add'>+      /*0x13ba*/ 550,</div><div class='add'>+      /*0x043a*/ 302,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1043a*/ 1153,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x217f*/ 821,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x013a*/ 83,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x13b8*/ 548,</div><div class='add'>+      /*0x0438*/ 300,</div><div class='add'>+      /*0x2177*/ 813,</div><div class='add'>+      /*0x118c4*/ 1301,</div><div class='add'>+      /*0x10438*/ 1151,</div><div class='add'>+      /*0x2d19*/ 983,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x03ba*/ 255,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x0254*/ 203,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x2c34*/ 853,</div><div class='add'>+      /*0x03b8*/ 253,</div><div class='add'>+      /*0x16e7f*/ 1360,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x0513*/ 425,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x16e77*/ 1352,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f36*/ 764,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0252*/ 201,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x16e6c*/ 1341,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00e0*/ 25,</div><div class='add'>+      /*0x1f30*/ 758,</div><div class='add'>+      /*0x2c4c*/ 877,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10ccc*/ 1258,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x0507*/ 419,</div><div class='add'>+      /*0x16e68*/ 1337,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xa7ca*/ 1103,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x118d6*/ 1319,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2170*/ 806,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x16e6a*/ 1339,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x10597*/ 1211,</div><div class='add'>+      /*0x118dc*/ 1325,</div><div class='add'>+      /*0x1fd0*/ 800,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118da*/ 1323,</div><div class='add'>+      /*0x1059d*/ 1217,</div><div class='add'>+      /*0x01d6*/ 145,</div><div class='add'>+      /*0x2c3e*/ 863,</div><div class='add'>+      /*0x0517*/ 427,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1f74*/ 788,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x051d*/ 430,</div><div class='add'>+      /*0x01dc*/ 148,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x01da*/ 147,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff47*/ 1115,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e70*/ 1345,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x0287*/ 227,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2c3a*/ 859,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2176*/ 812,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x0562*/ 441,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00e2*/ 27,</div><div class='add'>+      /*0x2c38*/ 857,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x2d09*/ 967,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x118d8*/ 1321,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x0578*/ 463,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00f8*/ 48,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x029d*/ 234,</div><div class='add'>+      /*0x16e76*/ 1351,</div><div class='add'>+      /*0x118ca*/ 1307,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff45*/ 1113,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x01d8*/ 146,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x118d4*/ 1317,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x16e64*/ 1333,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x1f34*/ 762,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x01d4*/ 144,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x105bc*/ 1245,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x01b6*/ 134,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x118d2*/ 1315,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x057c*/ 467,</div><div class='add'>+      /*0x021f*/ 180,</div><div class='add'>+      /*0x00fc*/ 52,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x01b0*/ 132,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x01d2*/ 143,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x1e93c*/ 1387,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x105b6*/ 1240,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0xa683*/ 1022,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x020d*/ 171,</div><div class='add'>+      /*0x16e60*/ 1329,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x105b0*/ 1235,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0xa68f*/ 1028,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0xa79f*/ 1088,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1e936*/ 1381,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x1e930*/ 1375,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x0574*/ 459,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x00f4*/ 45,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x2178*/ 814,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x01b4*/ 133,</div><div class='add'>+      /*0x16e62*/ 1331,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa699*/ 1033,</div><div class='add'>+      /*0x118cc*/ 1309,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x2d15*/ 979,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x16e78*/ 1353,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x01cc*/ 140,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x217c*/ 818,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1fe0*/ 802,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x105b4*/ 1238,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x2d13*/ 977,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x16e7c*/ 1357,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x1059f*/ 1219,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x051f*/ 431,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1e934*/ 1379,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x2d07*/ 965,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff50*/ 1124,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff42*/ 1110,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2d17*/ 981,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x2d1d*/ 987,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x050d*/ 422,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x2174*/ 810,</div><div class='add'>+      /*0xa689*/ 1025,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x105b8*/ 1242,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0x1e93e*/ 1389,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x16e74*/ 1349,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0x1e93a*/ 1385,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x1e938*/ 1383,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0x1fb0*/ 798,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xff48*/ 1116,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xff46*/ 1114,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0xa695*/ 1031,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xa693*/ 1030,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0xff44*/ 1112,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0xa687*/ 1024,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x2d1f*/ 989,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xa697*/ 1032,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0xff56*/ 1130,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1,</div><div class='add'>+      /*0xff5a*/ 1134,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x2d0d*/ 971,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0xff58*/ 1132,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff4a*/ 1118,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1,</div><div class='add'>+      /*0xff54*/ 1128,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1,</div><div class='add'>+      /*0xff52*/ 1126,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0xff4c*/ 1120,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0xa68d*/ 1027</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+  if (code &lt;= MAX_CODE_VALUE &amp;&amp; code &gt;= MIN_CODE_VALUE)</div><div class='add'>+    {</div><div class='add'>+      register unsigned int key = onigenc_unicode_CaseUnfold_11_hash(code);</div><div class='add'>+</div><div class='add'>+      if (key &lt;= MAX_HASH_VALUE)</div><div class='add'>+        {</div><div class='add'>+          register short s = wordlist[key];</div><div class='add'>+</div><div class='add'>+          if (s &gt;= 0 &amp;&amp; code1_equal(code, CaseUnfold_11_Table[s].from))</div><div class='add'>+            return &amp;CaseUnfold_11_Table[s].to;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+  return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const CaseUnfold_12_Type CaseUnfold_12_Table[] = {</div><div class='add'>+#define CaseUnfold_12 (*(CaseUnfold_12_Type (*)[58])(CaseUnfold_12_Table+0))</div><div class='add'>+  {{0x0061, 0x02be}, {1, {0x1e9a}}},</div><div class='add'>+  {{0x0066, 0x0066}, {1, {0xfb00}}},</div><div class='add'>+  {{0x0066, 0x0069}, {1, {0xfb01}}},</div><div class='add'>+  {{0x0066, 0x006c}, {1, {0xfb02}}},</div><div class='add'>+  {{0x0068, 0x0331}, {1, {0x1e96}}},</div><div class='add'>+  {{0x006a, 0x030c}, {1, {0x01f0}}},</div><div class='add'>+  {{0x0073, 0x0073}, {2, {0x00df, 0x1e9e}}},</div><div class='add'>+  {{0x0073, 0x0074}, {2, {0xfb05, 0xfb06}}},</div><div class='add'>+  {{0x0074, 0x0308}, {1, {0x1e97}}},</div><div class='add'>+  {{0x0077, 0x030a}, {1, {0x1e98}}},</div><div class='add'>+  {{0x0079, 0x030a}, {1, {0x1e99}}},</div><div class='add'>+  {{0x02bc, 0x006e}, {1, {0x0149}}},</div><div class='add'>+  {{0x03ac, 0x03b9}, {1, {0x1fb4}}},</div><div class='add'>+  {{0x03ae, 0x03b9}, {1, {0x1fc4}}},</div><div class='add'>+  {{0x03b1, 0x0342}, {1, {0x1fb6}}},</div><div class='add'>+  {{0x03b1, 0x03b9}, {2, {0x1fb3, 0x1fbc}}},</div><div class='add'>+  {{0x03b7, 0x0342}, {1, {0x1fc6}}},</div><div class='add'>+  {{0x03b7, 0x03b9}, {2, {0x1fc3, 0x1fcc}}},</div><div class='add'>+  {{0x03b9, 0x0342}, {1, {0x1fd6}}},</div><div class='add'>+  {{0x03c1, 0x0313}, {1, {0x1fe4}}},</div><div class='add'>+  {{0x03c5, 0x0313}, {1, {0x1f50}}},</div><div class='add'>+  {{0x03c5, 0x0342}, {1, {0x1fe6}}},</div><div class='add'>+  {{0x03c9, 0x0342}, {1, {0x1ff6}}},</div><div class='add'>+  {{0x03c9, 0x03b9}, {2, {0x1ff3, 0x1ffc}}},</div><div class='add'>+  {{0x03ce, 0x03b9}, {1, {0x1ff4}}},</div><div class='add'>+  {{0x0565, 0x0582}, {1, {0x0587}}},</div><div class='add'>+  {{0x0574, 0x0565}, {1, {0xfb14}}},</div><div class='add'>+  {{0x0574, 0x056b}, {1, {0xfb15}}},</div><div class='add'>+  {{0x0574, 0x056d}, {1, {0xfb17}}},</div><div class='add'>+  {{0x0574, 0x0576}, {1, {0xfb13}}},</div><div class='add'>+  {{0x057e, 0x0576}, {1, {0xfb16}}},</div><div class='add'>+  {{0x1f00, 0x03b9}, {2, {0x1f80, 0x1f88}}},</div><div class='add'>+  {{0x1f01, 0x03b9}, {2, {0x1f81, 0x1f89}}},</div><div class='add'>+  {{0x1f02, 0x03b9}, {2, {0x1f82, 0x1f8a}}},</div><div class='add'>+  {{0x1f03, 0x03b9}, {2, {0x1f83, 0x1f8b}}},</div><div class='add'>+  {{0x1f04, 0x03b9}, {2, {0x1f84, 0x1f8c}}},</div><div class='add'>+  {{0x1f05, 0x03b9}, {2, {0x1f85, 0x1f8d}}},</div><div class='add'>+  {{0x1f06, 0x03b9}, {2, {0x1f86, 0x1f8e}}},</div><div class='add'>+  {{0x1f07, 0x03b9}, {2, {0x1f87, 0x1f8f}}},</div><div class='add'>+  {{0x1f20, 0x03b9}, {2, {0x1f90, 0x1f98}}},</div><div class='add'>+  {{0x1f21, 0x03b9}, {2, {0x1f91, 0x1f99}}},</div><div class='add'>+  {{0x1f22, 0x03b9}, {2, {0x1f92, 0x1f9a}}},</div><div class='add'>+  {{0x1f23, 0x03b9}, {2, {0x1f93, 0x1f9b}}},</div><div class='add'>+  {{0x1f24, 0x03b9}, {2, {0x1f94, 0x1f9c}}},</div><div class='add'>+  {{0x1f25, 0x03b9}, {2, {0x1f95, 0x1f9d}}},</div><div class='add'>+  {{0x1f26, 0x03b9}, {2, {0x1f96, 0x1f9e}}},</div><div class='add'>+  {{0x1f27, 0x03b9}, {2, {0x1f97, 0x1f9f}}},</div><div class='add'>+  {{0x1f60, 0x03b9}, {2, {0x1fa0, 0x1fa8}}},</div><div class='add'>+  {{0x1f61, 0x03b9}, {2, {0x1fa1, 0x1fa9}}},</div><div class='add'>+  {{0x1f62, 0x03b9}, {2, {0x1fa2, 0x1faa}}},</div><div class='add'>+  {{0x1f63, 0x03b9}, {2, {0x1fa3, 0x1fab}}},</div><div class='add'>+  {{0x1f64, 0x03b9}, {2, {0x1fa4, 0x1fac}}},</div><div class='add'>+  {{0x1f65, 0x03b9}, {2, {0x1fa5, 0x1fad}}},</div><div class='add'>+  {{0x1f66, 0x03b9}, {2, {0x1fa6, 0x1fae}}},</div><div class='add'>+  {{0x1f67, 0x03b9}, {2, {0x1fa7, 0x1faf}}},</div><div class='add'>+  {{0x1f70, 0x03b9}, {1, {0x1fb2}}},</div><div class='add'>+  {{0x1f74, 0x03b9}, {1, {0x1fc2}}},</div><div class='add'>+  {{0x1f7c, 0x03b9}, {1, {0x1ff2}}},</div><div class='add'>+#define CaseUnfold_12_Locale (*(CaseUnfold_12_Type (*)[1])(CaseUnfold_12_Table+58))</div><div class='add'>+  {{0x0069, 0x0307}, {1, {0x0130}}},</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* ANSI-C code produced by gperf version 3.1 */</div><div class='add'>+/* Command-line: gperf -7 -k1,2,3,4,5,6 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseUnfold_12_hash -N onigenc_unicode_CaseUnfold_12_lookup -n  */</div><div class='add'>+</div><div class='add'>+/* maximum key range = 71, duplicates = 0 */</div><div class='add'>+</div><div class='add'>+#ifdef __GNUC__</div><div class='add'>+__inline</div><div class='add'>+#else</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+inline</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+/*ARGSUSED*/</div><div class='add'>+static unsigned int</div><div class='add'>+onigenc_unicode_CaseUnfold_12_hash(const OnigCodePoint *codes)</div><div class='add'>+{</div><div class='add'>+  static const unsigned char asso_values[] =</div><div class='add'>+    {</div><div class='add'>+       3, 58, 54, 57, 56, 16,  8,  2, 43, 82,</div><div class='add'>+       3,  1, 23, 82, 82, 82, 82, 82, 82,  4,</div><div class='add'>+      82, 82, 82, 82, 82, 82, 82, 82, 82, 82,</div><div class='add'>+      82, 82, 52, 51, 50, 49, 48, 47, 46, 45,</div><div class='add'>+      82, 82, 82, 82, 43, 82, 42, 82, 82, 13,</div><div class='add'>+      82, 82, 82, 82, 82, 11, 82,  1, 82, 82,</div><div class='add'>+      14, 82,  1, 82, 82, 31,  3, 82, 82, 30,</div><div class='add'>+      82, 82, 82, 10, 82, 82, 82, 82, 37, 82,</div><div class='add'>+      82, 82, 82, 82, 82, 82, 82, 82, 82, 82,</div><div class='add'>+      82, 82, 82, 82, 82, 82, 37, 15, 36, 35,</div><div class='add'>+      34, 17,  1, 33, 12,  4, 23, 23, 26, 21,</div><div class='add'>+      13, 82, 27, 82, 82,  2,  5, 82, 11, 16,</div><div class='add'>+      82, 15, 82, 82, 23, 82,  8, 82</div><div class='add'>+    };</div><div class='add'>+  return asso_values[bits_at(codes, 5)] + asso_values[bits_at(codes, 4)] + asso_values[bits_at(codes, 3)] + asso_values[bits_at(codes, 2)] + asso_values[bits_at(codes, 1)] + asso_values[bits_at(codes, 0)];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const CodePointList2 *</div><div class='add'>+onigenc_unicode_CaseUnfold_12_lookup(const OnigCodePoint *codes)</div><div class='add'>+{</div><div class='add'>+  enum</div><div class='add'>+    {</div><div class='add'>+      MIN_CODE_VALUE = 0x61,</div><div class='add'>+      MAX_CODE_VALUE = 0x1f7c,</div><div class='add'>+      TOTAL_KEYWORDS = 59,</div><div class='add'>+      MIN_WORD_LENGTH = 6,</div><div class='add'>+      MAX_WORD_LENGTH = 6,</div><div class='add'>+      MIN_HASH_VALUE = 11,</div><div class='add'>+      MAX_HASH_VALUE = 81</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+  static const short wordlist[] =</div><div class='add'>+    {</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x1f66,0x03b9*/ 53,</div><div class='add'>+      /*0x1f07,0x03b9*/ 38,</div><div class='add'>+      /*0x1f00,0x03b9*/ 31,</div><div class='add'>+      /*0x0066,0x0066*/ 1,</div><div class='add'>+      /*0x1f74,0x03b9*/ 56,</div><div class='add'>+      /*0x0073,0x0073*/ 6,</div><div class='add'>+      /*0x0066,0x0069*/ 2,</div><div class='add'>+      /*0x1f06,0x03b9*/ 37,</div><div class='add'>+      /*0x0073,0x0074*/ 7,</div><div class='add'>+      /*0x03b9,0x0342*/ 18,</div><div class='add'>+      /*0x03c9,0x03b9*/ 23,</div><div class='add'>+      /*0x03b7,0x03b9*/ 17,</div><div class='add'>+      /*0x0069,0x0307*/ 58,</div><div class='add'>+      /*0x03b1,0x03b9*/ 15,</div><div class='add'>+      /*0x1f61,0x03b9*/ 48,</div><div class='add'>+      /*0x1f05,0x03b9*/ 36,</div><div class='add'>+      /*0x1f65,0x03b9*/ 52,</div><div class='add'>+      /*0x0574,0x0576*/ 29,</div><div class='add'>+      /*0x03c9,0x0342*/ 22,</div><div class='add'>+      /*0x03b7,0x0342*/ 16,</div><div class='add'>+      /*0x057e,0x0576*/ 30,</div><div class='add'>+      /*0x03b1,0x0342*/ 14,</div><div class='add'>+      /*0x1f7c,0x03b9*/ 57,</div><div class='add'>+      /*0x0574,0x0565*/ 26,</div><div class='add'>+      /*0x0079,0x030a*/ 10,</div><div class='add'>+      /*0x0077,0x030a*/ 9,</div><div class='add'>+      /*0x1f70,0x03b9*/ 55,</div><div class='add'>+      /*0x0574,0x056d*/ 28,</div><div class='add'>+      /*0x0066,0x006c*/ 3,</div><div class='add'>+      /*0x0574,0x056b*/ 27,</div><div class='add'>+      /*0x0061,0x02be*/ 0,</div><div class='add'>+      /*0x0068,0x0331*/ 4,</div><div class='add'>+      /*0x1f67,0x03b9*/ 54,</div><div class='add'>+      /*0x1f64,0x03b9*/ 51,</div><div class='add'>+      /*0x1f63,0x03b9*/ 50,</div><div class='add'>+      /*0x1f62,0x03b9*/ 49,</div><div class='add'>+      /*0x1f60,0x03b9*/ 47,</div><div class='add'>+      /*0x03ce,0x03b9*/ 24,</div><div class='add'>+      /*0x03c5,0x0342*/ 21,</div><div class='add'>+      /*0x03c5,0x0313*/ 20,</div><div class='add'>+      /*0x03c1,0x0313*/ 19,</div><div class='add'>+      /*0x02bc,0x006e*/ 11,</div><div class='add'>+      /*0x03ae,0x03b9*/ 13,</div><div class='add'>+      /*0x03ac,0x03b9*/ 12,</div><div class='add'>+      /*0x1f27,0x03b9*/ 46,</div><div class='add'>+      /*0x1f26,0x03b9*/ 45,</div><div class='add'>+      /*0x1f25,0x03b9*/ 44,</div><div class='add'>+      /*0x1f24,0x03b9*/ 43,</div><div class='add'>+      /*0x1f23,0x03b9*/ 42,</div><div class='add'>+      /*0x1f22,0x03b9*/ 41,</div><div class='add'>+      /*0x1f21,0x03b9*/ 40,</div><div class='add'>+      /*0x1f20,0x03b9*/ 39,</div><div class='add'>+      /*0x006a,0x030c*/ 5,</div><div class='add'>+      /*0x1f02,0x03b9*/ 33,</div><div class='add'>+      /*0x0074,0x0308*/ 8,</div><div class='add'>+      /*0x1f04,0x03b9*/ 35,</div><div class='add'>+      /*0x1f03,0x03b9*/ 34,</div><div class='add'>+      /*0x1f01,0x03b9*/ 32,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x0565,0x0582*/ 25</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+  if (codes[0] &lt;= MAX_CODE_VALUE &amp;&amp; codes[0] &gt;= MIN_CODE_VALUE &amp;&amp;</div><div class='add'>+      codes[1] &lt;= MAX_CODE_VALUE &amp;&amp; codes[1] &gt;= MIN_CODE_VALUE)</div><div class='add'>+    {</div><div class='add'>+      register unsigned int key = onigenc_unicode_CaseUnfold_12_hash(codes);</div><div class='add'>+</div><div class='add'>+      if (key &lt;= MAX_HASH_VALUE)</div><div class='add'>+        {</div><div class='add'>+          register short s = wordlist[key];</div><div class='add'>+</div><div class='add'>+          if (s &gt;= 0 &amp;&amp; code2_equal(codes, CaseUnfold_12_Table[s].from))</div><div class='add'>+            return &amp;CaseUnfold_12_Table[s].to;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+  return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const CaseUnfold_13_Type CaseUnfold_13_Table[] = {</div><div class='add'>+#define CaseUnfold_13 (*(CaseUnfold_13_Type (*)[14])(CaseUnfold_13_Table+0))</div><div class='add'>+  {{0x0066, 0x0066, 0x0069}, {1, {0xfb03}}},</div><div class='add'>+  {{0x0066, 0x0066, 0x006c}, {1, {0xfb04}}},</div><div class='add'>+  {{0x03b1, 0x0342, 0x03b9}, {1, {0x1fb7}}},</div><div class='add'>+  {{0x03b7, 0x0342, 0x03b9}, {1, {0x1fc7}}},</div><div class='add'>+  {{0x03b9, 0x0308, 0x0300}, {1, {0x1fd2}}},</div><div class='add'>+  {{0x03b9, 0x0308, 0x0301}, {2, {0x0390, 0x1fd3}}},</div><div class='add'>+  {{0x03b9, 0x0308, 0x0342}, {1, {0x1fd7}}},</div><div class='add'>+  {{0x03c5, 0x0308, 0x0300}, {1, {0x1fe2}}},</div><div class='add'>+  {{0x03c5, 0x0308, 0x0301}, {2, {0x03b0, 0x1fe3}}},</div><div class='add'>+  {{0x03c5, 0x0308, 0x0342}, {1, {0x1fe7}}},</div><div class='add'>+  {{0x03c5, 0x0313, 0x0300}, {1, {0x1f52}}},</div><div class='add'>+  {{0x03c5, 0x0313, 0x0301}, {1, {0x1f54}}},</div><div class='add'>+  {{0x03c5, 0x0313, 0x0342}, {1, {0x1f56}}},</div><div class='add'>+  {{0x03c9, 0x0342, 0x03b9}, {1, {0x1ff7}}},</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* ANSI-C code produced by gperf version 3.1 */</div><div class='add'>+/* Command-line: gperf -7 -k1,2,3,4,5,6,7,8,9 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseUnfold_13_hash -N onigenc_unicode_CaseUnfold_13_lookup -n  */</div><div class='add'>+</div><div class='add'>+/* maximum key range = 20, duplicates = 0 */</div><div class='add'>+</div><div class='add'>+#ifdef __GNUC__</div><div class='add'>+__inline</div><div class='add'>+#else</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+inline</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+/*ARGSUSED*/</div><div class='add'>+static unsigned int</div><div class='add'>+onigenc_unicode_CaseUnfold_13_hash(const OnigCodePoint *codes)</div><div class='add'>+{</div><div class='add'>+  static const unsigned char asso_values[] =</div><div class='add'>+    {</div><div class='add'>+       7,  4, 47, 47, 47, 47,  1,  1,  2, 47,</div><div class='add'>+      47, 47, 47, 47, 47, 47, 47, 47, 47,  1,</div><div class='add'>+      47, 47, 47, 47, 47, 47, 47, 47, 47, 47,</div><div class='add'>+      47, 47, 47, 47, 47, 47, 47, 47, 47, 47,</div><div class='add'>+      47, 47, 47, 47, 47, 47, 47, 47, 47, 11,</div><div class='add'>+      47, 47, 47, 47, 47, 10, 47,  2, 47, 47,</div><div class='add'>+      47, 47, 47, 47, 47, 47,  1, 47, 47,  1,</div><div class='add'>+      47, 47, 47,  9, 47, 47, 47, 47, 47, 47,</div><div class='add'>+      47, 47, 47, 47, 47, 47, 47, 47, 47, 47,</div><div class='add'>+      47, 47, 47, 47, 47, 47, 47, 47, 47, 47,</div><div class='add'>+      47, 47,  1, 47, 47,  2, 47, 47,  1, 47,</div><div class='add'>+      47, 47, 47, 47, 47, 47, 47, 47, 47, 47,</div><div class='add'>+      47, 47, 47, 47, 47, 47, 47, 47</div><div class='add'>+    };</div><div class='add'>+  return asso_values[bits_at(codes, 8)] + asso_values[bits_at(codes, 7)] + asso_values[bits_at(codes, 6)] + asso_values[bits_at(codes, 5)] + asso_values[bits_at(codes, 4)] + asso_values[bits_at(codes, 3)] + asso_values[bits_at(codes, 2)] + asso_values[bits_at(codes, 1)] + asso_values[bits_at(codes, 0)];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const CodePointList2 *</div><div class='add'>+onigenc_unicode_CaseUnfold_13_lookup(const OnigCodePoint *codes)</div><div class='add'>+{</div><div class='add'>+  enum</div><div class='add'>+    {</div><div class='add'>+      MIN_CODE_VALUE = 0x66,</div><div class='add'>+      MAX_CODE_VALUE = 0x3c9,</div><div class='add'>+      TOTAL_KEYWORDS = 14,</div><div class='add'>+      MIN_WORD_LENGTH = 9,</div><div class='add'>+      MAX_WORD_LENGTH = 9,</div><div class='add'>+      MIN_HASH_VALUE = 27,</div><div class='add'>+      MAX_HASH_VALUE = 46</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+  static const short wordlist[] =</div><div class='add'>+    {</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      -1, -1, -1,</div><div class='add'>+      /*0x03c5,0x0313,0x0342*/ 12,</div><div class='add'>+      /*0x03c5,0x0308,0x0342*/ 9,</div><div class='add'>+      /*0x03b9,0x0308,0x0342*/ 6,</div><div class='add'>+      /*0x03c5,0x0313,0x0301*/ 11,</div><div class='add'>+      /*0x03c5,0x0308,0x0301*/ 8,</div><div class='add'>+      /*0x03b9,0x0308,0x0301*/ 5,</div><div class='add'>+      /*0x03c5,0x0313,0x0300*/ 10,</div><div class='add'>+      /*0x03c5,0x0308,0x0300*/ 7,</div><div class='add'>+      /*0x03b9,0x0308,0x0300*/ 4,</div><div class='add'>+      /*0x03c9,0x0342,0x03b9*/ 13,</div><div class='add'>+      /*0x03b7,0x0342,0x03b9*/ 3,</div><div class='add'>+      /*0x03b1,0x0342,0x03b9*/ 2,</div><div class='add'>+      -1, -1, -1, -1, -1, -1,</div><div class='add'>+      /*0x0066,0x0066,0x006c*/ 1,</div><div class='add'>+      /*0x0066,0x0066,0x0069*/ 0</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+  if (codes[0] &lt;= MAX_CODE_VALUE &amp;&amp; codes[0] &gt;= MIN_CODE_VALUE &amp;&amp;</div><div class='add'>+      codes[1] &lt;= MAX_CODE_VALUE &amp;&amp; codes[1] &gt;= MIN_CODE_VALUE &amp;&amp;</div><div class='add'>+      codes[2] &lt;= MAX_CODE_VALUE &amp;&amp; codes[2] &gt;= MIN_CODE_VALUE)</div><div class='add'>+    {</div><div class='add'>+      register unsigned int key = onigenc_unicode_CaseUnfold_13_hash(codes);</div><div class='add'>+</div><div class='add'>+      if (key &lt;= MAX_HASH_VALUE)</div><div class='add'>+        {</div><div class='add'>+          register short s = wordlist[key];</div><div class='add'>+</div><div class='add'>+          if (s &gt;= 0 &amp;&amp; code3_equal(codes, CaseUnfold_13_Table[s].from))</div><div class='add'>+            return &amp;CaseUnfold_13_Table[s].to;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+  return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigCodePoint CaseMappingSpecials[] = {</div><div class='add'>+    L(1)|0x039C,</div><div class='add'>+    L(2)|0x0053, 0x0073, L(2)|0x0053, 0x0053,</div><div class='add'>+    L(2)|0x02BC, 0x004E,</div><div class='add'>+    L(1)|0x0053,</div><div class='add'>+    L(1)|0x01C5,</div><div class='add'>+    L(2)|0x0064, 0x017D, L(1)|0x01C4,</div><div class='add'>+    L(1)|0x01C8,</div><div class='add'>+    L(2)|0x006C, 0x004A, L(1)|0x01C7,</div><div class='add'>+    L(1)|0x01CB,</div><div class='add'>+    L(2)|0x006E, 0x004A, L(1)|0x01CA,</div><div class='add'>+    L(2)|0x004A, 0x030C,</div><div class='add'>+    L(1)|0x01F2,</div><div class='add'>+    L(2)|0x0064, 0x005A, L(1)|0x01F1,</div><div class='add'>+    L(1)|0x0399,</div><div class='add'>+    L(3)|0x0399, 0x0308, 0x0301,</div><div class='add'>+    L(3)|0x03A5, 0x0308, 0x0301,</div><div class='add'>+    L(1)|0x03A3,</div><div class='add'>+    L(1)|0x0392,</div><div class='add'>+    L(1)|0x0398,</div><div class='add'>+    L(1)|0x03A6,</div><div class='add'>+    L(1)|0x03A0,</div><div class='add'>+    L(1)|0x039A,</div><div class='add'>+    L(1)|0x03A1,</div><div class='add'>+    L(1)|0x0395,</div><div class='add'>+    L(2)|0x0535, 0x0582, L(2)|0x0535, 0x0552,</div><div class='add'>+    L(1)|0x0412,</div><div class='add'>+    L(1)|0x0414,</div><div class='add'>+    L(1)|0x041E,</div><div class='add'>+    L(1)|0x0421,</div><div class='add'>+    L(1)|0x0422,</div><div class='add'>+    L(1)|0x0422,</div><div class='add'>+    L(1)|0x042A,</div><div class='add'>+    L(1)|0x0462,</div><div class='add'>+    L(1)|0xA64A,</div><div class='add'>+    L(2)|0x0048, 0x0331,</div><div class='add'>+    L(2)|0x0054, 0x0308,</div><div class='add'>+    L(2)|0x0057, 0x030A,</div><div class='add'>+    L(2)|0x0059, 0x030A,</div><div class='add'>+    L(2)|0x0041, 0x02BE,</div><div class='add'>+    L(1)|0x1E60,</div><div class='add'>+    L(1)|0x00DF,</div><div class='add'>+    L(2)|0x03A5, 0x0313,</div><div class='add'>+    L(3)|0x03A5, 0x0313, 0x0300,</div><div class='add'>+    L(3)|0x03A5, 0x0313, 0x0301,</div><div class='add'>+    L(3)|0x03A5, 0x0313, 0x0342,</div><div class='add'>+    L(1)|0x1F88, L(2)|0x1F08, 0x0399,</div><div class='add'>+    L(1)|0x1F89, L(2)|0x1F09, 0x0399,</div><div class='add'>+    L(1)|0x1F8A, L(2)|0x1F0A, 0x0399,</div><div class='add'>+    L(1)|0x1F8B, L(2)|0x1F0B, 0x0399,</div><div class='add'>+    L(1)|0x1F8C, L(2)|0x1F0C, 0x0399,</div><div class='add'>+    L(1)|0x1F8D, L(2)|0x1F0D, 0x0399,</div><div class='add'>+    L(1)|0x1F8E, L(2)|0x1F0E, 0x0399,</div><div class='add'>+    L(1)|0x1F8F, L(2)|0x1F0F, 0x0399,</div><div class='add'>+    L(2)|0x1F00, 0x0399, L(1)|0x1F80, L(2)|0x1F08, 0x0399,</div><div class='add'>+    L(2)|0x1F01, 0x0399, L(1)|0x1F81, L(2)|0x1F09, 0x0399,</div><div class='add'>+    L(2)|0x1F02, 0x0399, L(1)|0x1F82, L(2)|0x1F0A, 0x0399,</div><div class='add'>+    L(2)|0x1F03, 0x0399, L(1)|0x1F83, L(2)|0x1F0B, 0x0399,</div><div class='add'>+    L(2)|0x1F04, 0x0399, L(1)|0x1F84, L(2)|0x1F0C, 0x0399,</div><div class='add'>+    L(2)|0x1F05, 0x0399, L(1)|0x1F85, L(2)|0x1F0D, 0x0399,</div><div class='add'>+    L(2)|0x1F06, 0x0399, L(1)|0x1F86, L(2)|0x1F0E, 0x0399,</div><div class='add'>+    L(2)|0x1F07, 0x0399, L(1)|0x1F87, L(2)|0x1F0F, 0x0399,</div><div class='add'>+    L(1)|0x1F98, L(2)|0x1F28, 0x0399,</div><div class='add'>+    L(1)|0x1F99, L(2)|0x1F29, 0x0399,</div><div class='add'>+    L(1)|0x1F9A, L(2)|0x1F2A, 0x0399,</div><div class='add'>+    L(1)|0x1F9B, L(2)|0x1F2B, 0x0399,</div><div class='add'>+    L(1)|0x1F9C, L(2)|0x1F2C, 0x0399,</div><div class='add'>+    L(1)|0x1F9D, L(2)|0x1F2D, 0x0399,</div><div class='add'>+    L(1)|0x1F9E, L(2)|0x1F2E, 0x0399,</div><div class='add'>+    L(1)|0x1F9F, L(2)|0x1F2F, 0x0399,</div><div class='add'>+    L(2)|0x1F20, 0x0399, L(1)|0x1F90, L(2)|0x1F28, 0x0399,</div><div class='add'>+    L(2)|0x1F21, 0x0399, L(1)|0x1F91, L(2)|0x1F29, 0x0399,</div><div class='add'>+    L(2)|0x1F22, 0x0399, L(1)|0x1F92, L(2)|0x1F2A, 0x0399,</div><div class='add'>+    L(2)|0x1F23, 0x0399, L(1)|0x1F93, L(2)|0x1F2B, 0x0399,</div><div class='add'>+    L(2)|0x1F24, 0x0399, L(1)|0x1F94, L(2)|0x1F2C, 0x0399,</div><div class='add'>+    L(2)|0x1F25, 0x0399, L(1)|0x1F95, L(2)|0x1F2D, 0x0399,</div><div class='add'>+    L(2)|0x1F26, 0x0399, L(1)|0x1F96, L(2)|0x1F2E, 0x0399,</div><div class='add'>+    L(2)|0x1F27, 0x0399, L(1)|0x1F97, L(2)|0x1F2F, 0x0399,</div><div class='add'>+    L(1)|0x1FA8, L(2)|0x1F68, 0x0399,</div><div class='add'>+    L(1)|0x1FA9, L(2)|0x1F69, 0x0399,</div><div class='add'>+    L(1)|0x1FAA, L(2)|0x1F6A, 0x0399,</div><div class='add'>+    L(1)|0x1FAB, L(2)|0x1F6B, 0x0399,</div><div class='add'>+    L(1)|0x1FAC, L(2)|0x1F6C, 0x0399,</div><div class='add'>+    L(1)|0x1FAD, L(2)|0x1F6D, 0x0399,</div><div class='add'>+    L(1)|0x1FAE, L(2)|0x1F6E, 0x0399,</div><div class='add'>+    L(1)|0x1FAF, L(2)|0x1F6F, 0x0399,</div><div class='add'>+    L(2)|0x1F60, 0x0399, L(1)|0x1FA0, L(2)|0x1F68, 0x0399,</div><div class='add'>+    L(2)|0x1F61, 0x0399, L(1)|0x1FA1, L(2)|0x1F69, 0x0399,</div><div class='add'>+    L(2)|0x1F62, 0x0399, L(1)|0x1FA2, L(2)|0x1F6A, 0x0399,</div><div class='add'>+    L(2)|0x1F63, 0x0399, L(1)|0x1FA3, L(2)|0x1F6B, 0x0399,</div><div class='add'>+    L(2)|0x1F64, 0x0399, L(1)|0x1FA4, L(2)|0x1F6C, 0x0399,</div><div class='add'>+    L(2)|0x1F65, 0x0399, L(1)|0x1FA5, L(2)|0x1F6D, 0x0399,</div><div class='add'>+    L(2)|0x1F66, 0x0399, L(1)|0x1FA6, L(2)|0x1F6E, 0x0399,</div><div class='add'>+    L(2)|0x1F67, 0x0399, L(1)|0x1FA7, L(2)|0x1F6F, 0x0399,</div><div class='add'>+    L(2)|0x1FBA, 0x0345, L(2)|0x1FBA, 0x0399,</div><div class='add'>+    L(1)|0x1FBC, L(2)|0x0391, 0x0399,</div><div class='add'>+    L(2)|0x0386, 0x0345, L(2)|0x0386, 0x0399,</div><div class='add'>+    L(2)|0x0391, 0x0342,</div><div class='add'>+    L(3)|0x0391, 0x0342, 0x0345, L(3)|0x0391, 0x0342, 0x0399,</div><div class='add'>+    L(2)|0x03B1, 0x0399, L(1)|0x1FB3, L(2)|0x0391, 0x0399,</div><div class='add'>+    L(1)|0x0399,</div><div class='add'>+    L(2)|0x1FCA, 0x0345, L(2)|0x1FCA, 0x0399,</div><div class='add'>+    L(1)|0x1FCC, L(2)|0x0397, 0x0399,</div><div class='add'>+    L(2)|0x0389, 0x0345, L(2)|0x0389, 0x0399,</div><div class='add'>+    L(2)|0x0397, 0x0342,</div><div class='add'>+    L(3)|0x0397, 0x0342, 0x0345, L(3)|0x0397, 0x0342, 0x0399,</div><div class='add'>+    L(2)|0x03B7, 0x0399, L(1)|0x1FC3, L(2)|0x0397, 0x0399,</div><div class='add'>+    L(3)|0x0399, 0x0308, 0x0300,</div><div class='add'>+    L(3)|0x0399, 0x0308, 0x0301,</div><div class='add'>+    L(2)|0x0399, 0x0342,</div><div class='add'>+    L(3)|0x0399, 0x0308, 0x0342,</div><div class='add'>+    L(3)|0x03A5, 0x0308, 0x0300,</div><div class='add'>+    L(3)|0x03A5, 0x0308, 0x0301,</div><div class='add'>+    L(2)|0x03A1, 0x0313,</div><div class='add'>+    L(2)|0x03A5, 0x0342,</div><div class='add'>+    L(3)|0x03A5, 0x0308, 0x0342,</div><div class='add'>+    L(2)|0x1FFA, 0x0345, L(2)|0x1FFA, 0x0399,</div><div class='add'>+    L(1)|0x1FFC, L(2)|0x03A9, 0x0399,</div><div class='add'>+    L(2)|0x038F, 0x0345, L(2)|0x038F, 0x0399,</div><div class='add'>+    L(2)|0x03A9, 0x0342,</div><div class='add'>+    L(3)|0x03A9, 0x0342, 0x0345, L(3)|0x03A9, 0x0342, 0x0399,</div><div class='add'>+    L(2)|0x03C9, 0x0399, L(1)|0x1FF3, L(2)|0x03A9, 0x0399,</div><div class='add'>+    L(2)|0x0046, 0x0066, L(2)|0x0046, 0x0046,</div><div class='add'>+    L(2)|0x0046, 0x0069, L(2)|0x0046, 0x0049,</div><div class='add'>+    L(2)|0x0046, 0x006C, L(2)|0x0046, 0x004C,</div><div class='add'>+    L(3)|0x0046, 0x0066, 0x0069, L(3)|0x0046, 0x0046, 0x0049,</div><div class='add'>+    L(3)|0x0046, 0x0066, 0x006C, L(3)|0x0046, 0x0046, 0x004C,</div><div class='add'>+    L(2)|0x0053, 0x0074, L(2)|0x0053, 0x0054,</div><div class='add'>+    L(2)|0x0053, 0x0074, L(2)|0x0053, 0x0054,</div><div class='add'>+    L(2)|0x0544, 0x0576, L(2)|0x0544, 0x0546,</div><div class='add'>+    L(2)|0x0544, 0x0565, L(2)|0x0544, 0x0535,</div><div class='add'>+    L(2)|0x0544, 0x056B, L(2)|0x0544, 0x053B,</div><div class='add'>+    L(2)|0x054E, 0x0576, L(2)|0x054E, 0x0546,</div><div class='add'>+    L(2)|0x0544, 0x056D, L(2)|0x0544, 0x053D,</div><div class='add'>+};</div><div class='head'>diff --git a/enc/unicode/15.0.0/name2ctype.h b/enc/unicode/15.0.0/name2ctype.h<br/>new file mode 100644<br/>index 0000000000..a2c996423d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/unicode/15.0.0/name2ctype.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/unicode/15.0.0/name2ctype.h</a></div><div class='hunk'>@@ -0,0 +1,45690 @@</div><div class='add'>+/* ANSI-C code produced by gperf version 3.1 */</div><div class='add'>+/* Command-line: gperf -7 -c -j1 -i1 -t -C -P -T -H uniname2ctype_hash -Q uniname2ctype_pool -N uniname2ctype_p  */</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+/* Computed positions: -k'1,3' */</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+/* Computed positions: -k'1-3,5-6,12,16,$' */</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+</div><div class='add'>+#if !((' ' == 32) &amp;&amp; ('!' == 33) &amp;&amp; ('"' == 34) &amp;&amp; ('#' == 35) \</div><div class='add'>+      &amp;&amp; ('%' == 37) &amp;&amp; ('&amp;' == 38) &amp;&amp; ('\'' == 39) &amp;&amp; ('(' == 40) \</div><div class='add'>+      &amp;&amp; (')' == 41) &amp;&amp; ('*' == 42) &amp;&amp; ('+' == 43) &amp;&amp; (',' == 44) \</div><div class='add'>+      &amp;&amp; ('-' == 45) &amp;&amp; ('.' == 46) &amp;&amp; ('/' == 47) &amp;&amp; ('0' == 48) \</div><div class='add'>+      &amp;&amp; ('1' == 49) &amp;&amp; ('2' == 50) &amp;&amp; ('3' == 51) &amp;&amp; ('4' == 52) \</div><div class='add'>+      &amp;&amp; ('5' == 53) &amp;&amp; ('6' == 54) &amp;&amp; ('7' == 55) &amp;&amp; ('8' == 56) \</div><div class='add'>+      &amp;&amp; ('9' == 57) &amp;&amp; (':' == 58) &amp;&amp; (';' == 59) &amp;&amp; ('&lt;' == 60) \</div><div class='add'>+      &amp;&amp; ('=' == 61) &amp;&amp; ('&gt;' == 62) &amp;&amp; ('?' == 63) &amp;&amp; ('A' == 65) \</div><div class='add'>+      &amp;&amp; ('B' == 66) &amp;&amp; ('C' == 67) &amp;&amp; ('D' == 68) &amp;&amp; ('E' == 69) \</div><div class='add'>+      &amp;&amp; ('F' == 70) &amp;&amp; ('G' == 71) &amp;&amp; ('H' == 72) &amp;&amp; ('I' == 73) \</div><div class='add'>+      &amp;&amp; ('J' == 74) &amp;&amp; ('K' == 75) &amp;&amp; ('L' == 76) &amp;&amp; ('M' == 77) \</div><div class='add'>+      &amp;&amp; ('N' == 78) &amp;&amp; ('O' == 79) &amp;&amp; ('P' == 80) &amp;&amp; ('Q' == 81) \</div><div class='add'>+      &amp;&amp; ('R' == 82) &amp;&amp; ('S' == 83) &amp;&amp; ('T' == 84) &amp;&amp; ('U' == 85) \</div><div class='add'>+      &amp;&amp; ('V' == 86) &amp;&amp; ('W' == 87) &amp;&amp; ('X' == 88) &amp;&amp; ('Y' == 89) \</div><div class='add'>+      &amp;&amp; ('Z' == 90) &amp;&amp; ('[' == 91) &amp;&amp; ('\\' == 92) &amp;&amp; (']' == 93) \</div><div class='add'>+      &amp;&amp; ('^' == 94) &amp;&amp; ('_' == 95) &amp;&amp; ('a' == 97) &amp;&amp; ('b' == 98) \</div><div class='add'>+      &amp;&amp; ('c' == 99) &amp;&amp; ('d' == 100) &amp;&amp; ('e' == 101) &amp;&amp; ('f' == 102) \</div><div class='add'>+      &amp;&amp; ('g' == 103) &amp;&amp; ('h' == 104) &amp;&amp; ('i' == 105) &amp;&amp; ('j' == 106) \</div><div class='add'>+      &amp;&amp; ('k' == 107) &amp;&amp; ('l' == 108) &amp;&amp; ('m' == 109) &amp;&amp; ('n' == 110) \</div><div class='add'>+      &amp;&amp; ('o' == 111) &amp;&amp; ('p' == 112) &amp;&amp; ('q' == 113) &amp;&amp; ('r' == 114) \</div><div class='add'>+      &amp;&amp; ('s' == 115) &amp;&amp; ('t' == 116) &amp;&amp; ('u' == 117) &amp;&amp; ('v' == 118) \</div><div class='add'>+      &amp;&amp; ('w' == 119) &amp;&amp; ('x' == 120) &amp;&amp; ('y' == 121) &amp;&amp; ('z' == 122) \</div><div class='add'>+      &amp;&amp; ('{' == 123) &amp;&amp; ('|' == 124) &amp;&amp; ('}' == 125) &amp;&amp; ('~' == 126))</div><div class='add'>+/* The character set is not based on ISO-646.  */</div><div class='add'>+#error "gperf generated tables don't work with this execution character set. Please report a bug to &lt;bug-gperf@gnu.org&gt;."</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/* 'NEWLINE': [[:NEWLINE:]] */</div><div class='add'>+static const OnigCodePoint CR_NEWLINE[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x000a, 0x000a,</div><div class='add'>+}; /* CR_NEWLINE */</div><div class='add'>+</div><div class='add'>+/* 'Alpha': [[:Alpha:]] */</div><div class='add'>+static const OnigCodePoint CR_Alpha[] = {</div><div class='add'>+	732,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x02c1,</div><div class='add'>+	0x02c6, 0x02d1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x02ec, 0x02ec,</div><div class='add'>+	0x02ee, 0x02ee,</div><div class='add'>+	0x0345, 0x0345,</div><div class='add'>+	0x0370, 0x0374,</div><div class='add'>+	0x0376, 0x0377,</div><div class='add'>+	0x037a, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03f5,</div><div class='add'>+	0x03f7, 0x0481,</div><div class='add'>+	0x048a, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x0559,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x05b0, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c5,</div><div class='add'>+	0x05c7, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f2,</div><div class='add'>+	0x0610, 0x061a,</div><div class='add'>+	0x0620, 0x0657,</div><div class='add'>+	0x0659, 0x065f,</div><div class='add'>+	0x066e, 0x06d3,</div><div class='add'>+	0x06d5, 0x06dc,</div><div class='add'>+	0x06e1, 0x06e8,</div><div class='add'>+	0x06ed, 0x06ef,</div><div class='add'>+	0x06fa, 0x06fc,</div><div class='add'>+	0x06ff, 0x06ff,</div><div class='add'>+	0x0710, 0x073f,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07ca, 0x07ea,</div><div class='add'>+	0x07f4, 0x07f5,</div><div class='add'>+	0x07fa, 0x07fa,</div><div class='add'>+	0x0800, 0x0817,</div><div class='add'>+	0x081a, 0x082c,</div><div class='add'>+	0x0840, 0x0858,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x0887,</div><div class='add'>+	0x0889, 0x088e,</div><div class='add'>+	0x08a0, 0x08c9,</div><div class='add'>+	0x08d4, 0x08df,</div><div class='add'>+	0x08e3, 0x08e9,</div><div class='add'>+	0x08f0, 0x093b,</div><div class='add'>+	0x093d, 0x094c,</div><div class='add'>+	0x094e, 0x0950,</div><div class='add'>+	0x0955, 0x0963,</div><div class='add'>+	0x0971, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bd, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cc,</div><div class='add'>+	0x09ce, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09f0, 0x09f1,</div><div class='add'>+	0x09fc, 0x09fc,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4c,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a70, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abd, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acc,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0af9, 0x0afc,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3d, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4c,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b71, 0x0b71,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcc,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4c,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c80, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbd, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccc,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0cf1, 0x0cf3,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4c,</div><div class='add'>+	0x0d4e, 0x0d4e,</div><div class='add'>+	0x0d54, 0x0d57,</div><div class='add'>+	0x0d5f, 0x0d63,</div><div class='add'>+	0x0d7a, 0x0d7f,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df3,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e40, 0x0e46,</div><div class='add'>+	0x0e4d, 0x0e4d,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ecd, 0x0ecd,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f00,</div><div class='add'>+	0x0f40, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f83,</div><div class='add'>+	0x0f88, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x1000, 0x1036,</div><div class='add'>+	0x1038, 0x1038,</div><div class='add'>+	0x103b, 0x103f,</div><div class='add'>+	0x1050, 0x108f,</div><div class='add'>+	0x109a, 0x109d,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fc, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x1380, 0x138f,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1401, 0x166c,</div><div class='add'>+	0x166f, 0x167f,</div><div class='add'>+	0x1681, 0x169a,</div><div class='add'>+	0x16a0, 0x16ea,</div><div class='add'>+	0x16ee, 0x16f8,</div><div class='add'>+	0x1700, 0x1713,</div><div class='add'>+	0x171f, 0x1733,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17b3,</div><div class='add'>+	0x17b6, 0x17c8,</div><div class='add'>+	0x17d7, 0x17d7,</div><div class='add'>+	0x17dc, 0x17dc,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x1938,</div><div class='add'>+	0x1950, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x1a00, 0x1a1b,</div><div class='add'>+	0x1a20, 0x1a5e,</div><div class='add'>+	0x1a61, 0x1a74,</div><div class='add'>+	0x1aa7, 0x1aa7,</div><div class='add'>+	0x1abf, 0x1ac0,</div><div class='add'>+	0x1acc, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b33,</div><div class='add'>+	0x1b35, 0x1b43,</div><div class='add'>+	0x1b45, 0x1b4c,</div><div class='add'>+	0x1b80, 0x1ba9,</div><div class='add'>+	0x1bac, 0x1baf,</div><div class='add'>+	0x1bba, 0x1be5,</div><div class='add'>+	0x1be7, 0x1bf1,</div><div class='add'>+	0x1c00, 0x1c36,</div><div class='add'>+	0x1c4d, 0x1c4f,</div><div class='add'>+	0x1c5a, 0x1c7d,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1ce9, 0x1cec,</div><div class='add'>+	0x1cee, 0x1cf3,</div><div class='add'>+	0x1cf5, 0x1cf6,</div><div class='add'>+	0x1cfa, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1dbf,</div><div class='add'>+	0x1de7, 0x1df4,</div><div class='add'>+	0x1e00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fe0, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffc,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2119, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x212d,</div><div class='add'>+	0x212f, 0x2139,</div><div class='add'>+	0x213c, 0x213f,</div><div class='add'>+	0x2145, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2160, 0x2188,</div><div class='add'>+	0x24b6, 0x24e9,</div><div class='add'>+	0x2c00, 0x2ce4,</div><div class='add'>+	0x2ceb, 0x2cee,</div><div class='add'>+	0x2cf2, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0x2e2f, 0x2e2f,</div><div class='add'>+	0x3005, 0x3007,</div><div class='add'>+	0x3021, 0x3029,</div><div class='add'>+	0x3031, 0x3035,</div><div class='add'>+	0x3038, 0x303c,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x309d, 0x309f,</div><div class='add'>+	0x30a1, 0x30fa,</div><div class='add'>+	0x30fc, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x31a0, 0x31bf,</div><div class='add'>+	0x31f0, 0x31ff,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0xa48c,</div><div class='add'>+	0xa4d0, 0xa4fd,</div><div class='add'>+	0xa500, 0xa60c,</div><div class='add'>+	0xa610, 0xa61f,</div><div class='add'>+	0xa62a, 0xa62b,</div><div class='add'>+	0xa640, 0xa66e,</div><div class='add'>+	0xa674, 0xa67b,</div><div class='add'>+	0xa67f, 0xa6ef,</div><div class='add'>+	0xa717, 0xa71f,</div><div class='add'>+	0xa722, 0xa788,</div><div class='add'>+	0xa78b, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa805,</div><div class='add'>+	0xa807, 0xa827,</div><div class='add'>+	0xa840, 0xa873,</div><div class='add'>+	0xa880, 0xa8c3,</div><div class='add'>+	0xa8c5, 0xa8c5,</div><div class='add'>+	0xa8f2, 0xa8f7,</div><div class='add'>+	0xa8fb, 0xa8fb,</div><div class='add'>+	0xa8fd, 0xa8ff,</div><div class='add'>+	0xa90a, 0xa92a,</div><div class='add'>+	0xa930, 0xa952,</div><div class='add'>+	0xa960, 0xa97c,</div><div class='add'>+	0xa980, 0xa9b2,</div><div class='add'>+	0xa9b4, 0xa9bf,</div><div class='add'>+	0xa9cf, 0xa9cf,</div><div class='add'>+	0xa9e0, 0xa9ef,</div><div class='add'>+	0xa9fa, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa60, 0xaa76,</div><div class='add'>+	0xaa7a, 0xaabe,</div><div class='add'>+	0xaac0, 0xaac0,</div><div class='add'>+	0xaac2, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadd,</div><div class='add'>+	0xaae0, 0xaaef,</div><div class='add'>+	0xaaf2, 0xaaf5,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab5c, 0xab69,</div><div class='add'>+	0xab70, 0xabea,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb28,</div><div class='add'>+	0xfb2a, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3d,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdfb,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0xff66, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10140, 0x10174,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031f,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x103a0, 0x103c3,</div><div class='add'>+	0x103c8, 0x103cf,</div><div class='add'>+	0x103d1, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10860, 0x10876,</div><div class='add'>+	0x10880, 0x1089e,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x10900, 0x10915,</div><div class='add'>+	0x10920, 0x10939,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a60, 0x10a7c,</div><div class='add'>+	0x10a80, 0x10a9c,</div><div class='add'>+	0x10ac0, 0x10ac7,</div><div class='add'>+	0x10ac9, 0x10ae4,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b40, 0x10b55,</div><div class='add'>+	0x10b60, 0x10b72,</div><div class='add'>+	0x10b80, 0x10b91,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10d00, 0x10d27,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10eac,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10f00, 0x10f1c,</div><div class='add'>+	0x10f27, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f45,</div><div class='add'>+	0x10f70, 0x10f81,</div><div class='add'>+	0x10fb0, 0x10fc4,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x11045,</div><div class='add'>+	0x11071, 0x11075,</div><div class='add'>+	0x11080, 0x110b8,</div><div class='add'>+	0x110c2, 0x110c2,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x11100, 0x11132,</div><div class='add'>+	0x11144, 0x11147,</div><div class='add'>+	0x11150, 0x11172,</div><div class='add'>+	0x11176, 0x11176,</div><div class='add'>+	0x11180, 0x111bf,</div><div class='add'>+	0x111c1, 0x111c4,</div><div class='add'>+	0x111ce, 0x111cf,</div><div class='add'>+	0x111da, 0x111da,</div><div class='add'>+	0x111dc, 0x111dc,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x11234,</div><div class='add'>+	0x11237, 0x11237,</div><div class='add'>+	0x1123e, 0x11241,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a8,</div><div class='add'>+	0x112b0, 0x112e8,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133d, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134c,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11400, 0x11441,</div><div class='add'>+	0x11443, 0x11445,</div><div class='add'>+	0x11447, 0x1144a,</div><div class='add'>+	0x1145f, 0x11461,</div><div class='add'>+	0x11480, 0x114c1,</div><div class='add'>+	0x114c4, 0x114c5,</div><div class='add'>+	0x114c7, 0x114c7,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115be,</div><div class='add'>+	0x115d8, 0x115dd,</div><div class='add'>+	0x11600, 0x1163e,</div><div class='add'>+	0x11640, 0x11640,</div><div class='add'>+	0x11644, 0x11644,</div><div class='add'>+	0x11680, 0x116b5,</div><div class='add'>+	0x116b8, 0x116b8,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172a,</div><div class='add'>+	0x11740, 0x11746,</div><div class='add'>+	0x11800, 0x11838,</div><div class='add'>+	0x118a0, 0x118df,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x1193c,</div><div class='add'>+	0x1193f, 0x11942,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119df,</div><div class='add'>+	0x119e1, 0x119e1,</div><div class='add'>+	0x119e3, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a32,</div><div class='add'>+	0x11a35, 0x11a3e,</div><div class='add'>+	0x11a50, 0x11a97,</div><div class='add'>+	0x11a9d, 0x11a9d,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c3e,</div><div class='add'>+	0x11c40, 0x11c40,</div><div class='add'>+	0x11c72, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d41,</div><div class='add'>+	0x11d43, 0x11d43,</div><div class='add'>+	0x11d46, 0x11d47,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d96,</div><div class='add'>+	0x11d98, 0x11d98,</div><div class='add'>+	0x11ee0, 0x11ef6,</div><div class='add'>+	0x11f00, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f40,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff0,</div><div class='add'>+	0x13000, 0x1342f,</div><div class='add'>+	0x13441, 0x13446,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a70, 0x16abe,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16b00, 0x16b2f,</div><div class='add'>+	0x16b40, 0x16b43,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e7f,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x16fe3, 0x16fe3,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9e, 0x1bc9e,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6fa,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d734,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d76e,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d7a8,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7cb,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e137, 0x1e13d,</div><div class='add'>+	0x1e14e, 0x1e14e,</div><div class='add'>+	0x1e290, 0x1e2ad,</div><div class='add'>+	0x1e2c0, 0x1e2eb,</div><div class='add'>+	0x1e4d0, 0x1e4eb,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e900, 0x1e943,</div><div class='add'>+	0x1e947, 0x1e947,</div><div class='add'>+	0x1e94b, 0x1e94b,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1f130, 0x1f149,</div><div class='add'>+	0x1f150, 0x1f169,</div><div class='add'>+	0x1f170, 0x1f189,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+}; /* CR_Alpha */</div><div class='add'>+</div><div class='add'>+/* 'Blank': [[:Blank:]] */</div><div class='add'>+static const OnigCodePoint CR_Blank[] = {</div><div class='add'>+	8,</div><div class='add'>+	0x0009, 0x0009,</div><div class='add'>+	0x0020, 0x0020,</div><div class='add'>+	0x00a0, 0x00a0,</div><div class='add'>+	0x1680, 0x1680,</div><div class='add'>+	0x2000, 0x200a,</div><div class='add'>+	0x202f, 0x202f,</div><div class='add'>+	0x205f, 0x205f,</div><div class='add'>+	0x3000, 0x3000,</div><div class='add'>+}; /* CR_Blank */</div><div class='add'>+</div><div class='add'>+/* 'Cntrl': [[:Cntrl:]] */</div><div class='add'>+static const OnigCodePoint CR_Cntrl[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x0000, 0x001f,</div><div class='add'>+	0x007f, 0x009f,</div><div class='add'>+}; /* CR_Cntrl */</div><div class='add'>+</div><div class='add'>+/* 'Digit': [[:Digit:]] */</div><div class='add'>+static const OnigCodePoint CR_Digit[] = {</div><div class='add'>+	64,</div><div class='add'>+	0x0030, 0x0039,</div><div class='add'>+	0x0660, 0x0669,</div><div class='add'>+	0x06f0, 0x06f9,</div><div class='add'>+	0x07c0, 0x07c9,</div><div class='add'>+	0x0966, 0x096f,</div><div class='add'>+	0x09e6, 0x09ef,</div><div class='add'>+	0x0a66, 0x0a6f,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0b66, 0x0b6f,</div><div class='add'>+	0x0be6, 0x0bef,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0e50, 0x0e59,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0f20, 0x0f29,</div><div class='add'>+	0x1040, 0x1049,</div><div class='add'>+	0x1090, 0x1099,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1946, 0x194f,</div><div class='add'>+	0x19d0, 0x19d9,</div><div class='add'>+	0x1a80, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1b50, 0x1b59,</div><div class='add'>+	0x1bb0, 0x1bb9,</div><div class='add'>+	0x1c40, 0x1c49,</div><div class='add'>+	0x1c50, 0x1c59,</div><div class='add'>+	0xa620, 0xa629,</div><div class='add'>+	0xa8d0, 0xa8d9,</div><div class='add'>+	0xa900, 0xa909,</div><div class='add'>+	0xa9d0, 0xa9d9,</div><div class='add'>+	0xa9f0, 0xa9f9,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xff10, 0xff19,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x11066, 0x1106f,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11136, 0x1113f,</div><div class='add'>+	0x111d0, 0x111d9,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11450, 0x11459,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11730, 0x11739,</div><div class='add'>+	0x118e0, 0x118e9,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x11c50, 0x11c59,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11f50, 0x11f59,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e2f0, 0x1e2f9,</div><div class='add'>+	0x1e4f0, 0x1e4f9,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+}; /* CR_Digit */</div><div class='add'>+</div><div class='add'>+/* 'Graph': [[:Graph:]] */</div><div class='add'>+static const OnigCodePoint CR_Graph[] = {</div><div class='add'>+	712,</div><div class='add'>+	0x0021, 0x007e,</div><div class='add'>+	0x00a1, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f4,</div><div class='add'>+	0x0600, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x07fd, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x088e,</div><div class='add'>+	0x0890, 0x0891,</div><div class='add'>+	0x0898, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a76,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3c, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c77, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf3,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x167f,</div><div class='add'>+	0x1681, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x1715,</div><div class='add'>+	0x171f, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b4c,</div><div class='add'>+	0x1b50, 0x1b7e,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x200b, 0x2027,</div><div class='add'>+	0x202a, 0x202e,</div><div class='add'>+	0x2030, 0x205e,</div><div class='add'>+	0x2060, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20c0,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b97, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e5d,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3001, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa82c,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab6b,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xe000, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc2,</div><div class='add'>+	0xfbd3, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdcf, 0xfdcf,</div><div class='add'>+	0xfdf0, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0xfffd,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019c,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a48,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10ead,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10efd, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f59,</div><div class='add'>+	0x10f70, 0x10f89,</div><div class='add'>+	0x10fb0, 0x10fcb,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x11075,</div><div class='add'>+	0x1107f, 0x110c2,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11147,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x11241,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x1145b,</div><div class='add'>+	0x1145d, 0x11461,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116b9,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x11746,</div><div class='add'>+	0x11800, 0x1183b,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x11946,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a47,</div><div class='add'>+	0x11a50, 0x11aa2,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11b00, 0x11b09,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef8,</div><div class='add'>+	0x11f00, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f59,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x11fc0, 0x11ff1,</div><div class='add'>+	0x11fff, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff2,</div><div class='add'>+	0x13000, 0x13455,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16abe,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e9a,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe4,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1cf50, 0x1cfc3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1ea,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d2c0, 0x1d2d3,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14f,</div><div class='add'>+	0x1e290, 0x1e2ae,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+	0x1e4d0, 0x1e4f9,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ec71, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed3d,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f1ad,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d7,</div><div class='add'>+	0x1f6dc, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fc,</div><div class='add'>+	0x1f700, 0x1f776,</div><div class='add'>+	0x1f77b, 0x1f7d9,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f7f0, 0x1f7f0,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f8b0, 0x1f8b1,</div><div class='add'>+	0x1f900, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa7c,</div><div class='add'>+	0x1fa80, 0x1fa88,</div><div class='add'>+	0x1fa90, 0x1fabd,</div><div class='add'>+	0x1fabf, 0x1fac5,</div><div class='add'>+	0x1face, 0x1fadb,</div><div class='add'>+	0x1fae0, 0x1fae8,</div><div class='add'>+	0x1faf0, 0x1faf8,</div><div class='add'>+	0x1fb00, 0x1fb92,</div><div class='add'>+	0x1fb94, 0x1fbca,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xf0000, 0xffffd,</div><div class='add'>+	0x100000, 0x10fffd,</div><div class='add'>+}; /* CR_Graph */</div><div class='add'>+</div><div class='add'>+/* 'Lower': [[:Lower:]] */</div><div class='add'>+static const OnigCodePoint CR_Lower[] = {</div><div class='add'>+	671,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x00df, 0x00f6,</div><div class='add'>+	0x00f8, 0x00ff,</div><div class='add'>+	0x0101, 0x0101,</div><div class='add'>+	0x0103, 0x0103,</div><div class='add'>+	0x0105, 0x0105,</div><div class='add'>+	0x0107, 0x0107,</div><div class='add'>+	0x0109, 0x0109,</div><div class='add'>+	0x010b, 0x010b,</div><div class='add'>+	0x010d, 0x010d,</div><div class='add'>+	0x010f, 0x010f,</div><div class='add'>+	0x0111, 0x0111,</div><div class='add'>+	0x0113, 0x0113,</div><div class='add'>+	0x0115, 0x0115,</div><div class='add'>+	0x0117, 0x0117,</div><div class='add'>+	0x0119, 0x0119,</div><div class='add'>+	0x011b, 0x011b,</div><div class='add'>+	0x011d, 0x011d,</div><div class='add'>+	0x011f, 0x011f,</div><div class='add'>+	0x0121, 0x0121,</div><div class='add'>+	0x0123, 0x0123,</div><div class='add'>+	0x0125, 0x0125,</div><div class='add'>+	0x0127, 0x0127,</div><div class='add'>+	0x0129, 0x0129,</div><div class='add'>+	0x012b, 0x012b,</div><div class='add'>+	0x012d, 0x012d,</div><div class='add'>+	0x012f, 0x012f,</div><div class='add'>+	0x0131, 0x0131,</div><div class='add'>+	0x0133, 0x0133,</div><div class='add'>+	0x0135, 0x0135,</div><div class='add'>+	0x0137, 0x0138,</div><div class='add'>+	0x013a, 0x013a,</div><div class='add'>+	0x013c, 0x013c,</div><div class='add'>+	0x013e, 0x013e,</div><div class='add'>+	0x0140, 0x0140,</div><div class='add'>+	0x0142, 0x0142,</div><div class='add'>+	0x0144, 0x0144,</div><div class='add'>+	0x0146, 0x0146,</div><div class='add'>+	0x0148, 0x0149,</div><div class='add'>+	0x014b, 0x014b,</div><div class='add'>+	0x014d, 0x014d,</div><div class='add'>+	0x014f, 0x014f,</div><div class='add'>+	0x0151, 0x0151,</div><div class='add'>+	0x0153, 0x0153,</div><div class='add'>+	0x0155, 0x0155,</div><div class='add'>+	0x0157, 0x0157,</div><div class='add'>+	0x0159, 0x0159,</div><div class='add'>+	0x015b, 0x015b,</div><div class='add'>+	0x015d, 0x015d,</div><div class='add'>+	0x015f, 0x015f,</div><div class='add'>+	0x0161, 0x0161,</div><div class='add'>+	0x0163, 0x0163,</div><div class='add'>+	0x0165, 0x0165,</div><div class='add'>+	0x0167, 0x0167,</div><div class='add'>+	0x0169, 0x0169,</div><div class='add'>+	0x016b, 0x016b,</div><div class='add'>+	0x016d, 0x016d,</div><div class='add'>+	0x016f, 0x016f,</div><div class='add'>+	0x0171, 0x0171,</div><div class='add'>+	0x0173, 0x0173,</div><div class='add'>+	0x0175, 0x0175,</div><div class='add'>+	0x0177, 0x0177,</div><div class='add'>+	0x017a, 0x017a,</div><div class='add'>+	0x017c, 0x017c,</div><div class='add'>+	0x017e, 0x0180,</div><div class='add'>+	0x0183, 0x0183,</div><div class='add'>+	0x0185, 0x0185,</div><div class='add'>+	0x0188, 0x0188,</div><div class='add'>+	0x018c, 0x018d,</div><div class='add'>+	0x0192, 0x0192,</div><div class='add'>+	0x0195, 0x0195,</div><div class='add'>+	0x0199, 0x019b,</div><div class='add'>+	0x019e, 0x019e,</div><div class='add'>+	0x01a1, 0x01a1,</div><div class='add'>+	0x01a3, 0x01a3,</div><div class='add'>+	0x01a5, 0x01a5,</div><div class='add'>+	0x01a8, 0x01a8,</div><div class='add'>+	0x01aa, 0x01ab,</div><div class='add'>+	0x01ad, 0x01ad,</div><div class='add'>+	0x01b0, 0x01b0,</div><div class='add'>+	0x01b4, 0x01b4,</div><div class='add'>+	0x01b6, 0x01b6,</div><div class='add'>+	0x01b9, 0x01ba,</div><div class='add'>+	0x01bd, 0x01bf,</div><div class='add'>+	0x01c6, 0x01c6,</div><div class='add'>+	0x01c9, 0x01c9,</div><div class='add'>+	0x01cc, 0x01cc,</div><div class='add'>+	0x01ce, 0x01ce,</div><div class='add'>+	0x01d0, 0x01d0,</div><div class='add'>+	0x01d2, 0x01d2,</div><div class='add'>+	0x01d4, 0x01d4,</div><div class='add'>+	0x01d6, 0x01d6,</div><div class='add'>+	0x01d8, 0x01d8,</div><div class='add'>+	0x01da, 0x01da,</div><div class='add'>+	0x01dc, 0x01dd,</div><div class='add'>+	0x01df, 0x01df,</div><div class='add'>+	0x01e1, 0x01e1,</div><div class='add'>+	0x01e3, 0x01e3,</div><div class='add'>+	0x01e5, 0x01e5,</div><div class='add'>+	0x01e7, 0x01e7,</div><div class='add'>+	0x01e9, 0x01e9,</div><div class='add'>+	0x01eb, 0x01eb,</div><div class='add'>+	0x01ed, 0x01ed,</div><div class='add'>+	0x01ef, 0x01f0,</div><div class='add'>+	0x01f3, 0x01f3,</div><div class='add'>+	0x01f5, 0x01f5,</div><div class='add'>+	0x01f9, 0x01f9,</div><div class='add'>+	0x01fb, 0x01fb,</div><div class='add'>+	0x01fd, 0x01fd,</div><div class='add'>+	0x01ff, 0x01ff,</div><div class='add'>+	0x0201, 0x0201,</div><div class='add'>+	0x0203, 0x0203,</div><div class='add'>+	0x0205, 0x0205,</div><div class='add'>+	0x0207, 0x0207,</div><div class='add'>+	0x0209, 0x0209,</div><div class='add'>+	0x020b, 0x020b,</div><div class='add'>+	0x020d, 0x020d,</div><div class='add'>+	0x020f, 0x020f,</div><div class='add'>+	0x0211, 0x0211,</div><div class='add'>+	0x0213, 0x0213,</div><div class='add'>+	0x0215, 0x0215,</div><div class='add'>+	0x0217, 0x0217,</div><div class='add'>+	0x0219, 0x0219,</div><div class='add'>+	0x021b, 0x021b,</div><div class='add'>+	0x021d, 0x021d,</div><div class='add'>+	0x021f, 0x021f,</div><div class='add'>+	0x0221, 0x0221,</div><div class='add'>+	0x0223, 0x0223,</div><div class='add'>+	0x0225, 0x0225,</div><div class='add'>+	0x0227, 0x0227,</div><div class='add'>+	0x0229, 0x0229,</div><div class='add'>+	0x022b, 0x022b,</div><div class='add'>+	0x022d, 0x022d,</div><div class='add'>+	0x022f, 0x022f,</div><div class='add'>+	0x0231, 0x0231,</div><div class='add'>+	0x0233, 0x0239,</div><div class='add'>+	0x023c, 0x023c,</div><div class='add'>+	0x023f, 0x0240,</div><div class='add'>+	0x0242, 0x0242,</div><div class='add'>+	0x0247, 0x0247,</div><div class='add'>+	0x0249, 0x0249,</div><div class='add'>+	0x024b, 0x024b,</div><div class='add'>+	0x024d, 0x024d,</div><div class='add'>+	0x024f, 0x0293,</div><div class='add'>+	0x0295, 0x02b8,</div><div class='add'>+	0x02c0, 0x02c1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x0345, 0x0345,</div><div class='add'>+	0x0371, 0x0371,</div><div class='add'>+	0x0373, 0x0373,</div><div class='add'>+	0x0377, 0x0377,</div><div class='add'>+	0x037a, 0x037d,</div><div class='add'>+	0x0390, 0x0390,</div><div class='add'>+	0x03ac, 0x03ce,</div><div class='add'>+	0x03d0, 0x03d1,</div><div class='add'>+	0x03d5, 0x03d7,</div><div class='add'>+	0x03d9, 0x03d9,</div><div class='add'>+	0x03db, 0x03db,</div><div class='add'>+	0x03dd, 0x03dd,</div><div class='add'>+	0x03df, 0x03df,</div><div class='add'>+	0x03e1, 0x03e1,</div><div class='add'>+	0x03e3, 0x03e3,</div><div class='add'>+	0x03e5, 0x03e5,</div><div class='add'>+	0x03e7, 0x03e7,</div><div class='add'>+	0x03e9, 0x03e9,</div><div class='add'>+	0x03eb, 0x03eb,</div><div class='add'>+	0x03ed, 0x03ed,</div><div class='add'>+	0x03ef, 0x03f3,</div><div class='add'>+	0x03f5, 0x03f5,</div><div class='add'>+	0x03f8, 0x03f8,</div><div class='add'>+	0x03fb, 0x03fc,</div><div class='add'>+	0x0430, 0x045f,</div><div class='add'>+	0x0461, 0x0461,</div><div class='add'>+	0x0463, 0x0463,</div><div class='add'>+	0x0465, 0x0465,</div><div class='add'>+	0x0467, 0x0467,</div><div class='add'>+	0x0469, 0x0469,</div><div class='add'>+	0x046b, 0x046b,</div><div class='add'>+	0x046d, 0x046d,</div><div class='add'>+	0x046f, 0x046f,</div><div class='add'>+	0x0471, 0x0471,</div><div class='add'>+	0x0473, 0x0473,</div><div class='add'>+	0x0475, 0x0475,</div><div class='add'>+	0x0477, 0x0477,</div><div class='add'>+	0x0479, 0x0479,</div><div class='add'>+	0x047b, 0x047b,</div><div class='add'>+	0x047d, 0x047d,</div><div class='add'>+	0x047f, 0x047f,</div><div class='add'>+	0x0481, 0x0481,</div><div class='add'>+	0x048b, 0x048b,</div><div class='add'>+	0x048d, 0x048d,</div><div class='add'>+	0x048f, 0x048f,</div><div class='add'>+	0x0491, 0x0491,</div><div class='add'>+	0x0493, 0x0493,</div><div class='add'>+	0x0495, 0x0495,</div><div class='add'>+	0x0497, 0x0497,</div><div class='add'>+	0x0499, 0x0499,</div><div class='add'>+	0x049b, 0x049b,</div><div class='add'>+	0x049d, 0x049d,</div><div class='add'>+	0x049f, 0x049f,</div><div class='add'>+	0x04a1, 0x04a1,</div><div class='add'>+	0x04a3, 0x04a3,</div><div class='add'>+	0x04a5, 0x04a5,</div><div class='add'>+	0x04a7, 0x04a7,</div><div class='add'>+	0x04a9, 0x04a9,</div><div class='add'>+	0x04ab, 0x04ab,</div><div class='add'>+	0x04ad, 0x04ad,</div><div class='add'>+	0x04af, 0x04af,</div><div class='add'>+	0x04b1, 0x04b1,</div><div class='add'>+	0x04b3, 0x04b3,</div><div class='add'>+	0x04b5, 0x04b5,</div><div class='add'>+	0x04b7, 0x04b7,</div><div class='add'>+	0x04b9, 0x04b9,</div><div class='add'>+	0x04bb, 0x04bb,</div><div class='add'>+	0x04bd, 0x04bd,</div><div class='add'>+	0x04bf, 0x04bf,</div><div class='add'>+	0x04c2, 0x04c2,</div><div class='add'>+	0x04c4, 0x04c4,</div><div class='add'>+	0x04c6, 0x04c6,</div><div class='add'>+	0x04c8, 0x04c8,</div><div class='add'>+	0x04ca, 0x04ca,</div><div class='add'>+	0x04cc, 0x04cc,</div><div class='add'>+	0x04ce, 0x04cf,</div><div class='add'>+	0x04d1, 0x04d1,</div><div class='add'>+	0x04d3, 0x04d3,</div><div class='add'>+	0x04d5, 0x04d5,</div><div class='add'>+	0x04d7, 0x04d7,</div><div class='add'>+	0x04d9, 0x04d9,</div><div class='add'>+	0x04db, 0x04db,</div><div class='add'>+	0x04dd, 0x04dd,</div><div class='add'>+	0x04df, 0x04df,</div><div class='add'>+	0x04e1, 0x04e1,</div><div class='add'>+	0x04e3, 0x04e3,</div><div class='add'>+	0x04e5, 0x04e5,</div><div class='add'>+	0x04e7, 0x04e7,</div><div class='add'>+	0x04e9, 0x04e9,</div><div class='add'>+	0x04eb, 0x04eb,</div><div class='add'>+	0x04ed, 0x04ed,</div><div class='add'>+	0x04ef, 0x04ef,</div><div class='add'>+	0x04f1, 0x04f1,</div><div class='add'>+	0x04f3, 0x04f3,</div><div class='add'>+	0x04f5, 0x04f5,</div><div class='add'>+	0x04f7, 0x04f7,</div><div class='add'>+	0x04f9, 0x04f9,</div><div class='add'>+	0x04fb, 0x04fb,</div><div class='add'>+	0x04fd, 0x04fd,</div><div class='add'>+	0x04ff, 0x04ff,</div><div class='add'>+	0x0501, 0x0501,</div><div class='add'>+	0x0503, 0x0503,</div><div class='add'>+	0x0505, 0x0505,</div><div class='add'>+	0x0507, 0x0507,</div><div class='add'>+	0x0509, 0x0509,</div><div class='add'>+	0x050b, 0x050b,</div><div class='add'>+	0x050d, 0x050d,</div><div class='add'>+	0x050f, 0x050f,</div><div class='add'>+	0x0511, 0x0511,</div><div class='add'>+	0x0513, 0x0513,</div><div class='add'>+	0x0515, 0x0515,</div><div class='add'>+	0x0517, 0x0517,</div><div class='add'>+	0x0519, 0x0519,</div><div class='add'>+	0x051b, 0x051b,</div><div class='add'>+	0x051d, 0x051d,</div><div class='add'>+	0x051f, 0x051f,</div><div class='add'>+	0x0521, 0x0521,</div><div class='add'>+	0x0523, 0x0523,</div><div class='add'>+	0x0525, 0x0525,</div><div class='add'>+	0x0527, 0x0527,</div><div class='add'>+	0x0529, 0x0529,</div><div class='add'>+	0x052b, 0x052b,</div><div class='add'>+	0x052d, 0x052d,</div><div class='add'>+	0x052f, 0x052f,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fc, 0x10ff,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1d00, 0x1dbf,</div><div class='add'>+	0x1e01, 0x1e01,</div><div class='add'>+	0x1e03, 0x1e03,</div><div class='add'>+	0x1e05, 0x1e05,</div><div class='add'>+	0x1e07, 0x1e07,</div><div class='add'>+	0x1e09, 0x1e09,</div><div class='add'>+	0x1e0b, 0x1e0b,</div><div class='add'>+	0x1e0d, 0x1e0d,</div><div class='add'>+	0x1e0f, 0x1e0f,</div><div class='add'>+	0x1e11, 0x1e11,</div><div class='add'>+	0x1e13, 0x1e13,</div><div class='add'>+	0x1e15, 0x1e15,</div><div class='add'>+	0x1e17, 0x1e17,</div><div class='add'>+	0x1e19, 0x1e19,</div><div class='add'>+	0x1e1b, 0x1e1b,</div><div class='add'>+	0x1e1d, 0x1e1d,</div><div class='add'>+	0x1e1f, 0x1e1f,</div><div class='add'>+	0x1e21, 0x1e21,</div><div class='add'>+	0x1e23, 0x1e23,</div><div class='add'>+	0x1e25, 0x1e25,</div><div class='add'>+	0x1e27, 0x1e27,</div><div class='add'>+	0x1e29, 0x1e29,</div><div class='add'>+	0x1e2b, 0x1e2b,</div><div class='add'>+	0x1e2d, 0x1e2d,</div><div class='add'>+	0x1e2f, 0x1e2f,</div><div class='add'>+	0x1e31, 0x1e31,</div><div class='add'>+	0x1e33, 0x1e33,</div><div class='add'>+	0x1e35, 0x1e35,</div><div class='add'>+	0x1e37, 0x1e37,</div><div class='add'>+	0x1e39, 0x1e39,</div><div class='add'>+	0x1e3b, 0x1e3b,</div><div class='add'>+	0x1e3d, 0x1e3d,</div><div class='add'>+	0x1e3f, 0x1e3f,</div><div class='add'>+	0x1e41, 0x1e41,</div><div class='add'>+	0x1e43, 0x1e43,</div><div class='add'>+	0x1e45, 0x1e45,</div><div class='add'>+	0x1e47, 0x1e47,</div><div class='add'>+	0x1e49, 0x1e49,</div><div class='add'>+	0x1e4b, 0x1e4b,</div><div class='add'>+	0x1e4d, 0x1e4d,</div><div class='add'>+	0x1e4f, 0x1e4f,</div><div class='add'>+	0x1e51, 0x1e51,</div><div class='add'>+	0x1e53, 0x1e53,</div><div class='add'>+	0x1e55, 0x1e55,</div><div class='add'>+	0x1e57, 0x1e57,</div><div class='add'>+	0x1e59, 0x1e59,</div><div class='add'>+	0x1e5b, 0x1e5b,</div><div class='add'>+	0x1e5d, 0x1e5d,</div><div class='add'>+	0x1e5f, 0x1e5f,</div><div class='add'>+	0x1e61, 0x1e61,</div><div class='add'>+	0x1e63, 0x1e63,</div><div class='add'>+	0x1e65, 0x1e65,</div><div class='add'>+	0x1e67, 0x1e67,</div><div class='add'>+	0x1e69, 0x1e69,</div><div class='add'>+	0x1e6b, 0x1e6b,</div><div class='add'>+	0x1e6d, 0x1e6d,</div><div class='add'>+	0x1e6f, 0x1e6f,</div><div class='add'>+	0x1e71, 0x1e71,</div><div class='add'>+	0x1e73, 0x1e73,</div><div class='add'>+	0x1e75, 0x1e75,</div><div class='add'>+	0x1e77, 0x1e77,</div><div class='add'>+	0x1e79, 0x1e79,</div><div class='add'>+	0x1e7b, 0x1e7b,</div><div class='add'>+	0x1e7d, 0x1e7d,</div><div class='add'>+	0x1e7f, 0x1e7f,</div><div class='add'>+	0x1e81, 0x1e81,</div><div class='add'>+	0x1e83, 0x1e83,</div><div class='add'>+	0x1e85, 0x1e85,</div><div class='add'>+	0x1e87, 0x1e87,</div><div class='add'>+	0x1e89, 0x1e89,</div><div class='add'>+	0x1e8b, 0x1e8b,</div><div class='add'>+	0x1e8d, 0x1e8d,</div><div class='add'>+	0x1e8f, 0x1e8f,</div><div class='add'>+	0x1e91, 0x1e91,</div><div class='add'>+	0x1e93, 0x1e93,</div><div class='add'>+	0x1e95, 0x1e9d,</div><div class='add'>+	0x1e9f, 0x1e9f,</div><div class='add'>+	0x1ea1, 0x1ea1,</div><div class='add'>+	0x1ea3, 0x1ea3,</div><div class='add'>+	0x1ea5, 0x1ea5,</div><div class='add'>+	0x1ea7, 0x1ea7,</div><div class='add'>+	0x1ea9, 0x1ea9,</div><div class='add'>+	0x1eab, 0x1eab,</div><div class='add'>+	0x1ead, 0x1ead,</div><div class='add'>+	0x1eaf, 0x1eaf,</div><div class='add'>+	0x1eb1, 0x1eb1,</div><div class='add'>+	0x1eb3, 0x1eb3,</div><div class='add'>+	0x1eb5, 0x1eb5,</div><div class='add'>+	0x1eb7, 0x1eb7,</div><div class='add'>+	0x1eb9, 0x1eb9,</div><div class='add'>+	0x1ebb, 0x1ebb,</div><div class='add'>+	0x1ebd, 0x1ebd,</div><div class='add'>+	0x1ebf, 0x1ebf,</div><div class='add'>+	0x1ec1, 0x1ec1,</div><div class='add'>+	0x1ec3, 0x1ec3,</div><div class='add'>+	0x1ec5, 0x1ec5,</div><div class='add'>+	0x1ec7, 0x1ec7,</div><div class='add'>+	0x1ec9, 0x1ec9,</div><div class='add'>+	0x1ecb, 0x1ecb,</div><div class='add'>+	0x1ecd, 0x1ecd,</div><div class='add'>+	0x1ecf, 0x1ecf,</div><div class='add'>+	0x1ed1, 0x1ed1,</div><div class='add'>+	0x1ed3, 0x1ed3,</div><div class='add'>+	0x1ed5, 0x1ed5,</div><div class='add'>+	0x1ed7, 0x1ed7,</div><div class='add'>+	0x1ed9, 0x1ed9,</div><div class='add'>+	0x1edb, 0x1edb,</div><div class='add'>+	0x1edd, 0x1edd,</div><div class='add'>+	0x1edf, 0x1edf,</div><div class='add'>+	0x1ee1, 0x1ee1,</div><div class='add'>+	0x1ee3, 0x1ee3,</div><div class='add'>+	0x1ee5, 0x1ee5,</div><div class='add'>+	0x1ee7, 0x1ee7,</div><div class='add'>+	0x1ee9, 0x1ee9,</div><div class='add'>+	0x1eeb, 0x1eeb,</div><div class='add'>+	0x1eed, 0x1eed,</div><div class='add'>+	0x1eef, 0x1eef,</div><div class='add'>+	0x1ef1, 0x1ef1,</div><div class='add'>+	0x1ef3, 0x1ef3,</div><div class='add'>+	0x1ef5, 0x1ef5,</div><div class='add'>+	0x1ef7, 0x1ef7,</div><div class='add'>+	0x1ef9, 0x1ef9,</div><div class='add'>+	0x1efb, 0x1efb,</div><div class='add'>+	0x1efd, 0x1efd,</div><div class='add'>+	0x1eff, 0x1f07,</div><div class='add'>+	0x1f10, 0x1f15,</div><div class='add'>+	0x1f20, 0x1f27,</div><div class='add'>+	0x1f30, 0x1f37,</div><div class='add'>+	0x1f40, 0x1f45,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f60, 0x1f67,</div><div class='add'>+	0x1f70, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1f87,</div><div class='add'>+	0x1f90, 0x1f97,</div><div class='add'>+	0x1fa0, 0x1fa7,</div><div class='add'>+	0x1fb0, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fb7,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fc7,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fd7,</div><div class='add'>+	0x1fe0, 0x1fe7,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ff7,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x210a, 0x210a,</div><div class='add'>+	0x210e, 0x210f,</div><div class='add'>+	0x2113, 0x2113,</div><div class='add'>+	0x212f, 0x212f,</div><div class='add'>+	0x2134, 0x2134,</div><div class='add'>+	0x2139, 0x2139,</div><div class='add'>+	0x213c, 0x213d,</div><div class='add'>+	0x2146, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2170, 0x217f,</div><div class='add'>+	0x2184, 0x2184,</div><div class='add'>+	0x24d0, 0x24e9,</div><div class='add'>+	0x2c30, 0x2c5f,</div><div class='add'>+	0x2c61, 0x2c61,</div><div class='add'>+	0x2c65, 0x2c66,</div><div class='add'>+	0x2c68, 0x2c68,</div><div class='add'>+	0x2c6a, 0x2c6a,</div><div class='add'>+	0x2c6c, 0x2c6c,</div><div class='add'>+	0x2c71, 0x2c71,</div><div class='add'>+	0x2c73, 0x2c74,</div><div class='add'>+	0x2c76, 0x2c7d,</div><div class='add'>+	0x2c81, 0x2c81,</div><div class='add'>+	0x2c83, 0x2c83,</div><div class='add'>+	0x2c85, 0x2c85,</div><div class='add'>+	0x2c87, 0x2c87,</div><div class='add'>+	0x2c89, 0x2c89,</div><div class='add'>+	0x2c8b, 0x2c8b,</div><div class='add'>+	0x2c8d, 0x2c8d,</div><div class='add'>+	0x2c8f, 0x2c8f,</div><div class='add'>+	0x2c91, 0x2c91,</div><div class='add'>+	0x2c93, 0x2c93,</div><div class='add'>+	0x2c95, 0x2c95,</div><div class='add'>+	0x2c97, 0x2c97,</div><div class='add'>+	0x2c99, 0x2c99,</div><div class='add'>+	0x2c9b, 0x2c9b,</div><div class='add'>+	0x2c9d, 0x2c9d,</div><div class='add'>+	0x2c9f, 0x2c9f,</div><div class='add'>+	0x2ca1, 0x2ca1,</div><div class='add'>+	0x2ca3, 0x2ca3,</div><div class='add'>+	0x2ca5, 0x2ca5,</div><div class='add'>+	0x2ca7, 0x2ca7,</div><div class='add'>+	0x2ca9, 0x2ca9,</div><div class='add'>+	0x2cab, 0x2cab,</div><div class='add'>+	0x2cad, 0x2cad,</div><div class='add'>+	0x2caf, 0x2caf,</div><div class='add'>+	0x2cb1, 0x2cb1,</div><div class='add'>+	0x2cb3, 0x2cb3,</div><div class='add'>+	0x2cb5, 0x2cb5,</div><div class='add'>+	0x2cb7, 0x2cb7,</div><div class='add'>+	0x2cb9, 0x2cb9,</div><div class='add'>+	0x2cbb, 0x2cbb,</div><div class='add'>+	0x2cbd, 0x2cbd,</div><div class='add'>+	0x2cbf, 0x2cbf,</div><div class='add'>+	0x2cc1, 0x2cc1,</div><div class='add'>+	0x2cc3, 0x2cc3,</div><div class='add'>+	0x2cc5, 0x2cc5,</div><div class='add'>+	0x2cc7, 0x2cc7,</div><div class='add'>+	0x2cc9, 0x2cc9,</div><div class='add'>+	0x2ccb, 0x2ccb,</div><div class='add'>+	0x2ccd, 0x2ccd,</div><div class='add'>+	0x2ccf, 0x2ccf,</div><div class='add'>+	0x2cd1, 0x2cd1,</div><div class='add'>+	0x2cd3, 0x2cd3,</div><div class='add'>+	0x2cd5, 0x2cd5,</div><div class='add'>+	0x2cd7, 0x2cd7,</div><div class='add'>+	0x2cd9, 0x2cd9,</div><div class='add'>+	0x2cdb, 0x2cdb,</div><div class='add'>+	0x2cdd, 0x2cdd,</div><div class='add'>+	0x2cdf, 0x2cdf,</div><div class='add'>+	0x2ce1, 0x2ce1,</div><div class='add'>+	0x2ce3, 0x2ce4,</div><div class='add'>+	0x2cec, 0x2cec,</div><div class='add'>+	0x2cee, 0x2cee,</div><div class='add'>+	0x2cf3, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0xa641, 0xa641,</div><div class='add'>+	0xa643, 0xa643,</div><div class='add'>+	0xa645, 0xa645,</div><div class='add'>+	0xa647, 0xa647,</div><div class='add'>+	0xa649, 0xa649,</div><div class='add'>+	0xa64b, 0xa64b,</div><div class='add'>+	0xa64d, 0xa64d,</div><div class='add'>+	0xa64f, 0xa64f,</div><div class='add'>+	0xa651, 0xa651,</div><div class='add'>+	0xa653, 0xa653,</div><div class='add'>+	0xa655, 0xa655,</div><div class='add'>+	0xa657, 0xa657,</div><div class='add'>+	0xa659, 0xa659,</div><div class='add'>+	0xa65b, 0xa65b,</div><div class='add'>+	0xa65d, 0xa65d,</div><div class='add'>+	0xa65f, 0xa65f,</div><div class='add'>+	0xa661, 0xa661,</div><div class='add'>+	0xa663, 0xa663,</div><div class='add'>+	0xa665, 0xa665,</div><div class='add'>+	0xa667, 0xa667,</div><div class='add'>+	0xa669, 0xa669,</div><div class='add'>+	0xa66b, 0xa66b,</div><div class='add'>+	0xa66d, 0xa66d,</div><div class='add'>+	0xa681, 0xa681,</div><div class='add'>+	0xa683, 0xa683,</div><div class='add'>+	0xa685, 0xa685,</div><div class='add'>+	0xa687, 0xa687,</div><div class='add'>+	0xa689, 0xa689,</div><div class='add'>+	0xa68b, 0xa68b,</div><div class='add'>+	0xa68d, 0xa68d,</div><div class='add'>+	0xa68f, 0xa68f,</div><div class='add'>+	0xa691, 0xa691,</div><div class='add'>+	0xa693, 0xa693,</div><div class='add'>+	0xa695, 0xa695,</div><div class='add'>+	0xa697, 0xa697,</div><div class='add'>+	0xa699, 0xa699,</div><div class='add'>+	0xa69b, 0xa69d,</div><div class='add'>+	0xa723, 0xa723,</div><div class='add'>+	0xa725, 0xa725,</div><div class='add'>+	0xa727, 0xa727,</div><div class='add'>+	0xa729, 0xa729,</div><div class='add'>+	0xa72b, 0xa72b,</div><div class='add'>+	0xa72d, 0xa72d,</div><div class='add'>+	0xa72f, 0xa731,</div><div class='add'>+	0xa733, 0xa733,</div><div class='add'>+	0xa735, 0xa735,</div><div class='add'>+	0xa737, 0xa737,</div><div class='add'>+	0xa739, 0xa739,</div><div class='add'>+	0xa73b, 0xa73b,</div><div class='add'>+	0xa73d, 0xa73d,</div><div class='add'>+	0xa73f, 0xa73f,</div><div class='add'>+	0xa741, 0xa741,</div><div class='add'>+	0xa743, 0xa743,</div><div class='add'>+	0xa745, 0xa745,</div><div class='add'>+	0xa747, 0xa747,</div><div class='add'>+	0xa749, 0xa749,</div><div class='add'>+	0xa74b, 0xa74b,</div><div class='add'>+	0xa74d, 0xa74d,</div><div class='add'>+	0xa74f, 0xa74f,</div><div class='add'>+	0xa751, 0xa751,</div><div class='add'>+	0xa753, 0xa753,</div><div class='add'>+	0xa755, 0xa755,</div><div class='add'>+	0xa757, 0xa757,</div><div class='add'>+	0xa759, 0xa759,</div><div class='add'>+	0xa75b, 0xa75b,</div><div class='add'>+	0xa75d, 0xa75d,</div><div class='add'>+	0xa75f, 0xa75f,</div><div class='add'>+	0xa761, 0xa761,</div><div class='add'>+	0xa763, 0xa763,</div><div class='add'>+	0xa765, 0xa765,</div><div class='add'>+	0xa767, 0xa767,</div><div class='add'>+	0xa769, 0xa769,</div><div class='add'>+	0xa76b, 0xa76b,</div><div class='add'>+	0xa76d, 0xa76d,</div><div class='add'>+	0xa76f, 0xa778,</div><div class='add'>+	0xa77a, 0xa77a,</div><div class='add'>+	0xa77c, 0xa77c,</div><div class='add'>+	0xa77f, 0xa77f,</div><div class='add'>+	0xa781, 0xa781,</div><div class='add'>+	0xa783, 0xa783,</div><div class='add'>+	0xa785, 0xa785,</div><div class='add'>+	0xa787, 0xa787,</div><div class='add'>+	0xa78c, 0xa78c,</div><div class='add'>+	0xa78e, 0xa78e,</div><div class='add'>+	0xa791, 0xa791,</div><div class='add'>+	0xa793, 0xa795,</div><div class='add'>+	0xa797, 0xa797,</div><div class='add'>+	0xa799, 0xa799,</div><div class='add'>+	0xa79b, 0xa79b,</div><div class='add'>+	0xa79d, 0xa79d,</div><div class='add'>+	0xa79f, 0xa79f,</div><div class='add'>+	0xa7a1, 0xa7a1,</div><div class='add'>+	0xa7a3, 0xa7a3,</div><div class='add'>+	0xa7a5, 0xa7a5,</div><div class='add'>+	0xa7a7, 0xa7a7,</div><div class='add'>+	0xa7a9, 0xa7a9,</div><div class='add'>+	0xa7af, 0xa7af,</div><div class='add'>+	0xa7b5, 0xa7b5,</div><div class='add'>+	0xa7b7, 0xa7b7,</div><div class='add'>+	0xa7b9, 0xa7b9,</div><div class='add'>+	0xa7bb, 0xa7bb,</div><div class='add'>+	0xa7bd, 0xa7bd,</div><div class='add'>+	0xa7bf, 0xa7bf,</div><div class='add'>+	0xa7c1, 0xa7c1,</div><div class='add'>+	0xa7c3, 0xa7c3,</div><div class='add'>+	0xa7c8, 0xa7c8,</div><div class='add'>+	0xa7ca, 0xa7ca,</div><div class='add'>+	0xa7d1, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d5,</div><div class='add'>+	0xa7d7, 0xa7d7,</div><div class='add'>+	0xa7d9, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa7f4,</div><div class='add'>+	0xa7f6, 0xa7f6,</div><div class='add'>+	0xa7f8, 0xa7fa,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab5c, 0xab69,</div><div class='add'>+	0xab70, 0xabbf,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0x10428, 0x1044f,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10780, 0x10780,</div><div class='add'>+	0x10783, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x118c0, 0x118df,</div><div class='add'>+	0x16e60, 0x16e7f,</div><div class='add'>+	0x1d41a, 0x1d433,</div><div class='add'>+	0x1d44e, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d467,</div><div class='add'>+	0x1d482, 0x1d49b,</div><div class='add'>+	0x1d4b6, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d4cf,</div><div class='add'>+	0x1d4ea, 0x1d503,</div><div class='add'>+	0x1d51e, 0x1d537,</div><div class='add'>+	0x1d552, 0x1d56b,</div><div class='add'>+	0x1d586, 0x1d59f,</div><div class='add'>+	0x1d5ba, 0x1d5d3,</div><div class='add'>+	0x1d5ee, 0x1d607,</div><div class='add'>+	0x1d622, 0x1d63b,</div><div class='add'>+	0x1d656, 0x1d66f,</div><div class='add'>+	0x1d68a, 0x1d6a5,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6e1,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d71b,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d755,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d78f,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7c9,</div><div class='add'>+	0x1d7cb, 0x1d7cb,</div><div class='add'>+	0x1df00, 0x1df09,</div><div class='add'>+	0x1df0b, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e922, 0x1e943,</div><div class='add'>+}; /* CR_Lower */</div><div class='add'>+</div><div class='add'>+/* 'Print': [[:Print:]] */</div><div class='add'>+static const OnigCodePoint CR_Print[] = {</div><div class='add'>+	709,</div><div class='add'>+	0x0020, 0x007e,</div><div class='add'>+	0x00a0, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f4,</div><div class='add'>+	0x0600, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x07fd, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x088e,</div><div class='add'>+	0x0890, 0x0891,</div><div class='add'>+	0x0898, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a76,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3c, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c77, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf3,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x1715,</div><div class='add'>+	0x171f, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b4c,</div><div class='add'>+	0x1b50, 0x1b7e,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2027,</div><div class='add'>+	0x202a, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20c0,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b97, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e5d,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa82c,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab6b,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xe000, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc2,</div><div class='add'>+	0xfbd3, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdcf, 0xfdcf,</div><div class='add'>+	0xfdf0, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0xfffd,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019c,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a48,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10ead,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10efd, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f59,</div><div class='add'>+	0x10f70, 0x10f89,</div><div class='add'>+	0x10fb0, 0x10fcb,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x11075,</div><div class='add'>+	0x1107f, 0x110c2,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11147,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x11241,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x1145b,</div><div class='add'>+	0x1145d, 0x11461,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116b9,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x11746,</div><div class='add'>+	0x11800, 0x1183b,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x11946,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a47,</div><div class='add'>+	0x11a50, 0x11aa2,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11b00, 0x11b09,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef8,</div><div class='add'>+	0x11f00, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f59,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x11fc0, 0x11ff1,</div><div class='add'>+	0x11fff, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff2,</div><div class='add'>+	0x13000, 0x13455,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16abe,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e9a,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe4,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1cf50, 0x1cfc3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1ea,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d2c0, 0x1d2d3,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14f,</div><div class='add'>+	0x1e290, 0x1e2ae,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+	0x1e4d0, 0x1e4f9,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ec71, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed3d,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f1ad,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d7,</div><div class='add'>+	0x1f6dc, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fc,</div><div class='add'>+	0x1f700, 0x1f776,</div><div class='add'>+	0x1f77b, 0x1f7d9,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f7f0, 0x1f7f0,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f8b0, 0x1f8b1,</div><div class='add'>+	0x1f900, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa7c,</div><div class='add'>+	0x1fa80, 0x1fa88,</div><div class='add'>+	0x1fa90, 0x1fabd,</div><div class='add'>+	0x1fabf, 0x1fac5,</div><div class='add'>+	0x1face, 0x1fadb,</div><div class='add'>+	0x1fae0, 0x1fae8,</div><div class='add'>+	0x1faf0, 0x1faf8,</div><div class='add'>+	0x1fb00, 0x1fb92,</div><div class='add'>+	0x1fb94, 0x1fbca,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xf0000, 0xffffd,</div><div class='add'>+	0x100000, 0x10fffd,</div><div class='add'>+}; /* CR_Print */</div><div class='add'>+</div><div class='add'>+/* 'XPosixPunct': [[:Punct:]] */</div><div class='add'>+static const OnigCodePoint CR_XPosixPunct[] = {</div><div class='add'>+	186,</div><div class='add'>+	0x0021, 0x002f,</div><div class='add'>+	0x003a, 0x0040,</div><div class='add'>+	0x005b, 0x0060,</div><div class='add'>+	0x007b, 0x007e,</div><div class='add'>+	0x00a1, 0x00a1,</div><div class='add'>+	0x00a7, 0x00a7,</div><div class='add'>+	0x00ab, 0x00ab,</div><div class='add'>+	0x00b6, 0x00b7,</div><div class='add'>+	0x00bb, 0x00bb,</div><div class='add'>+	0x00bf, 0x00bf,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0387, 0x0387,</div><div class='add'>+	0x055a, 0x055f,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x05be, 0x05be,</div><div class='add'>+	0x05c0, 0x05c0,</div><div class='add'>+	0x05c3, 0x05c3,</div><div class='add'>+	0x05c6, 0x05c6,</div><div class='add'>+	0x05f3, 0x05f4,</div><div class='add'>+	0x0609, 0x060a,</div><div class='add'>+	0x060c, 0x060d,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061d, 0x061f,</div><div class='add'>+	0x066a, 0x066d,</div><div class='add'>+	0x06d4, 0x06d4,</div><div class='add'>+	0x0700, 0x070d,</div><div class='add'>+	0x07f7, 0x07f9,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0964, 0x0965,</div><div class='add'>+	0x0970, 0x0970,</div><div class='add'>+	0x09fd, 0x09fd,</div><div class='add'>+	0x0a76, 0x0a76,</div><div class='add'>+	0x0af0, 0x0af0,</div><div class='add'>+	0x0c77, 0x0c77,</div><div class='add'>+	0x0c84, 0x0c84,</div><div class='add'>+	0x0df4, 0x0df4,</div><div class='add'>+	0x0e4f, 0x0e4f,</div><div class='add'>+	0x0e5a, 0x0e5b,</div><div class='add'>+	0x0f04, 0x0f12,</div><div class='add'>+	0x0f14, 0x0f14,</div><div class='add'>+	0x0f3a, 0x0f3d,</div><div class='add'>+	0x0f85, 0x0f85,</div><div class='add'>+	0x0fd0, 0x0fd4,</div><div class='add'>+	0x0fd9, 0x0fda,</div><div class='add'>+	0x104a, 0x104f,</div><div class='add'>+	0x10fb, 0x10fb,</div><div class='add'>+	0x1360, 0x1368,</div><div class='add'>+	0x1400, 0x1400,</div><div class='add'>+	0x166e, 0x166e,</div><div class='add'>+	0x169b, 0x169c,</div><div class='add'>+	0x16eb, 0x16ed,</div><div class='add'>+	0x1735, 0x1736,</div><div class='add'>+	0x17d4, 0x17d6,</div><div class='add'>+	0x17d8, 0x17da,</div><div class='add'>+	0x1800, 0x180a,</div><div class='add'>+	0x1944, 0x1945,</div><div class='add'>+	0x1a1e, 0x1a1f,</div><div class='add'>+	0x1aa0, 0x1aa6,</div><div class='add'>+	0x1aa8, 0x1aad,</div><div class='add'>+	0x1b5a, 0x1b60,</div><div class='add'>+	0x1b7d, 0x1b7e,</div><div class='add'>+	0x1bfc, 0x1bff,</div><div class='add'>+	0x1c3b, 0x1c3f,</div><div class='add'>+	0x1c7e, 0x1c7f,</div><div class='add'>+	0x1cc0, 0x1cc7,</div><div class='add'>+	0x1cd3, 0x1cd3,</div><div class='add'>+	0x2010, 0x2027,</div><div class='add'>+	0x2030, 0x2043,</div><div class='add'>+	0x2045, 0x2051,</div><div class='add'>+	0x2053, 0x205e,</div><div class='add'>+	0x207d, 0x207e,</div><div class='add'>+	0x208d, 0x208e,</div><div class='add'>+	0x2308, 0x230b,</div><div class='add'>+	0x2329, 0x232a,</div><div class='add'>+	0x2768, 0x2775,</div><div class='add'>+	0x27c5, 0x27c6,</div><div class='add'>+	0x27e6, 0x27ef,</div><div class='add'>+	0x2983, 0x2998,</div><div class='add'>+	0x29d8, 0x29db,</div><div class='add'>+	0x29fc, 0x29fd,</div><div class='add'>+	0x2cf9, 0x2cfc,</div><div class='add'>+	0x2cfe, 0x2cff,</div><div class='add'>+	0x2d70, 0x2d70,</div><div class='add'>+	0x2e00, 0x2e2e,</div><div class='add'>+	0x2e30, 0x2e4f,</div><div class='add'>+	0x2e52, 0x2e5d,</div><div class='add'>+	0x3001, 0x3003,</div><div class='add'>+	0x3008, 0x3011,</div><div class='add'>+	0x3014, 0x301f,</div><div class='add'>+	0x3030, 0x3030,</div><div class='add'>+	0x303d, 0x303d,</div><div class='add'>+	0x30a0, 0x30a0,</div><div class='add'>+	0x30fb, 0x30fb,</div><div class='add'>+	0xa4fe, 0xa4ff,</div><div class='add'>+	0xa60d, 0xa60f,</div><div class='add'>+	0xa673, 0xa673,</div><div class='add'>+	0xa67e, 0xa67e,</div><div class='add'>+	0xa6f2, 0xa6f7,</div><div class='add'>+	0xa874, 0xa877,</div><div class='add'>+	0xa8ce, 0xa8cf,</div><div class='add'>+	0xa8f8, 0xa8fa,</div><div class='add'>+	0xa8fc, 0xa8fc,</div><div class='add'>+	0xa92e, 0xa92f,</div><div class='add'>+	0xa95f, 0xa95f,</div><div class='add'>+	0xa9c1, 0xa9cd,</div><div class='add'>+	0xa9de, 0xa9df,</div><div class='add'>+	0xaa5c, 0xaa5f,</div><div class='add'>+	0xaade, 0xaadf,</div><div class='add'>+	0xaaf0, 0xaaf1,</div><div class='add'>+	0xabeb, 0xabeb,</div><div class='add'>+	0xfd3e, 0xfd3f,</div><div class='add'>+	0xfe10, 0xfe19,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe61,</div><div class='add'>+	0xfe63, 0xfe63,</div><div class='add'>+	0xfe68, 0xfe68,</div><div class='add'>+	0xfe6a, 0xfe6b,</div><div class='add'>+	0xff01, 0xff03,</div><div class='add'>+	0xff05, 0xff0a,</div><div class='add'>+	0xff0c, 0xff0f,</div><div class='add'>+	0xff1a, 0xff1b,</div><div class='add'>+	0xff1f, 0xff20,</div><div class='add'>+	0xff3b, 0xff3d,</div><div class='add'>+	0xff3f, 0xff3f,</div><div class='add'>+	0xff5b, 0xff5b,</div><div class='add'>+	0xff5d, 0xff5d,</div><div class='add'>+	0xff5f, 0xff65,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x1039f, 0x1039f,</div><div class='add'>+	0x103d0, 0x103d0,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+	0x10857, 0x10857,</div><div class='add'>+	0x1091f, 0x1091f,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a7f, 0x10a7f,</div><div class='add'>+	0x10af0, 0x10af6,</div><div class='add'>+	0x10b39, 0x10b3f,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ead, 0x10ead,</div><div class='add'>+	0x10f55, 0x10f59,</div><div class='add'>+	0x10f86, 0x10f89,</div><div class='add'>+	0x11047, 0x1104d,</div><div class='add'>+	0x110bb, 0x110bc,</div><div class='add'>+	0x110be, 0x110c1,</div><div class='add'>+	0x11140, 0x11143,</div><div class='add'>+	0x11174, 0x11175,</div><div class='add'>+	0x111c5, 0x111c8,</div><div class='add'>+	0x111cd, 0x111cd,</div><div class='add'>+	0x111db, 0x111db,</div><div class='add'>+	0x111dd, 0x111df,</div><div class='add'>+	0x11238, 0x1123d,</div><div class='add'>+	0x112a9, 0x112a9,</div><div class='add'>+	0x1144b, 0x1144f,</div><div class='add'>+	0x1145a, 0x1145b,</div><div class='add'>+	0x1145d, 0x1145d,</div><div class='add'>+	0x114c6, 0x114c6,</div><div class='add'>+	0x115c1, 0x115d7,</div><div class='add'>+	0x11641, 0x11643,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x116b9, 0x116b9,</div><div class='add'>+	0x1173c, 0x1173e,</div><div class='add'>+	0x1183b, 0x1183b,</div><div class='add'>+	0x11944, 0x11946,</div><div class='add'>+	0x119e2, 0x119e2,</div><div class='add'>+	0x11a3f, 0x11a46,</div><div class='add'>+	0x11a9a, 0x11a9c,</div><div class='add'>+	0x11a9e, 0x11aa2,</div><div class='add'>+	0x11b00, 0x11b09,</div><div class='add'>+	0x11c41, 0x11c45,</div><div class='add'>+	0x11c70, 0x11c71,</div><div class='add'>+	0x11ef7, 0x11ef8,</div><div class='add'>+	0x11f43, 0x11f4f,</div><div class='add'>+	0x11fff, 0x11fff,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12ff1, 0x12ff2,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16af5, 0x16af5,</div><div class='add'>+	0x16b37, 0x16b3b,</div><div class='add'>+	0x16b44, 0x16b44,</div><div class='add'>+	0x16e97, 0x16e9a,</div><div class='add'>+	0x16fe2, 0x16fe2,</div><div class='add'>+	0x1bc9f, 0x1bc9f,</div><div class='add'>+	0x1da87, 0x1da8b,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+}; /* CR_XPosixPunct */</div><div class='add'>+</div><div class='add'>+/* 'Space': [[:Space:]] */</div><div class='add'>+static const OnigCodePoint CR_Space[] = {</div><div class='add'>+	10,</div><div class='add'>+	0x0009, 0x000d,</div><div class='add'>+	0x0020, 0x0020,</div><div class='add'>+	0x0085, 0x0085,</div><div class='add'>+	0x00a0, 0x00a0,</div><div class='add'>+	0x1680, 0x1680,</div><div class='add'>+	0x2000, 0x200a,</div><div class='add'>+	0x2028, 0x2029,</div><div class='add'>+	0x202f, 0x202f,</div><div class='add'>+	0x205f, 0x205f,</div><div class='add'>+	0x3000, 0x3000,</div><div class='add'>+}; /* CR_Space */</div><div class='add'>+</div><div class='add'>+/* 'Upper': [[:Upper:]] */</div><div class='add'>+static const OnigCodePoint CR_Upper[] = {</div><div class='add'>+	651,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00de,</div><div class='add'>+	0x0100, 0x0100,</div><div class='add'>+	0x0102, 0x0102,</div><div class='add'>+	0x0104, 0x0104,</div><div class='add'>+	0x0106, 0x0106,</div><div class='add'>+	0x0108, 0x0108,</div><div class='add'>+	0x010a, 0x010a,</div><div class='add'>+	0x010c, 0x010c,</div><div class='add'>+	0x010e, 0x010e,</div><div class='add'>+	0x0110, 0x0110,</div><div class='add'>+	0x0112, 0x0112,</div><div class='add'>+	0x0114, 0x0114,</div><div class='add'>+	0x0116, 0x0116,</div><div class='add'>+	0x0118, 0x0118,</div><div class='add'>+	0x011a, 0x011a,</div><div class='add'>+	0x011c, 0x011c,</div><div class='add'>+	0x011e, 0x011e,</div><div class='add'>+	0x0120, 0x0120,</div><div class='add'>+	0x0122, 0x0122,</div><div class='add'>+	0x0124, 0x0124,</div><div class='add'>+	0x0126, 0x0126,</div><div class='add'>+	0x0128, 0x0128,</div><div class='add'>+	0x012a, 0x012a,</div><div class='add'>+	0x012c, 0x012c,</div><div class='add'>+	0x012e, 0x012e,</div><div class='add'>+	0x0130, 0x0130,</div><div class='add'>+	0x0132, 0x0132,</div><div class='add'>+	0x0134, 0x0134,</div><div class='add'>+	0x0136, 0x0136,</div><div class='add'>+	0x0139, 0x0139,</div><div class='add'>+	0x013b, 0x013b,</div><div class='add'>+	0x013d, 0x013d,</div><div class='add'>+	0x013f, 0x013f,</div><div class='add'>+	0x0141, 0x0141,</div><div class='add'>+	0x0143, 0x0143,</div><div class='add'>+	0x0145, 0x0145,</div><div class='add'>+	0x0147, 0x0147,</div><div class='add'>+	0x014a, 0x014a,</div><div class='add'>+	0x014c, 0x014c,</div><div class='add'>+	0x014e, 0x014e,</div><div class='add'>+	0x0150, 0x0150,</div><div class='add'>+	0x0152, 0x0152,</div><div class='add'>+	0x0154, 0x0154,</div><div class='add'>+	0x0156, 0x0156,</div><div class='add'>+	0x0158, 0x0158,</div><div class='add'>+	0x015a, 0x015a,</div><div class='add'>+	0x015c, 0x015c,</div><div class='add'>+	0x015e, 0x015e,</div><div class='add'>+	0x0160, 0x0160,</div><div class='add'>+	0x0162, 0x0162,</div><div class='add'>+	0x0164, 0x0164,</div><div class='add'>+	0x0166, 0x0166,</div><div class='add'>+	0x0168, 0x0168,</div><div class='add'>+	0x016a, 0x016a,</div><div class='add'>+	0x016c, 0x016c,</div><div class='add'>+	0x016e, 0x016e,</div><div class='add'>+	0x0170, 0x0170,</div><div class='add'>+	0x0172, 0x0172,</div><div class='add'>+	0x0174, 0x0174,</div><div class='add'>+	0x0176, 0x0176,</div><div class='add'>+	0x0178, 0x0179,</div><div class='add'>+	0x017b, 0x017b,</div><div class='add'>+	0x017d, 0x017d,</div><div class='add'>+	0x0181, 0x0182,</div><div class='add'>+	0x0184, 0x0184,</div><div class='add'>+	0x0186, 0x0187,</div><div class='add'>+	0x0189, 0x018b,</div><div class='add'>+	0x018e, 0x0191,</div><div class='add'>+	0x0193, 0x0194,</div><div class='add'>+	0x0196, 0x0198,</div><div class='add'>+	0x019c, 0x019d,</div><div class='add'>+	0x019f, 0x01a0,</div><div class='add'>+	0x01a2, 0x01a2,</div><div class='add'>+	0x01a4, 0x01a4,</div><div class='add'>+	0x01a6, 0x01a7,</div><div class='add'>+	0x01a9, 0x01a9,</div><div class='add'>+	0x01ac, 0x01ac,</div><div class='add'>+	0x01ae, 0x01af,</div><div class='add'>+	0x01b1, 0x01b3,</div><div class='add'>+	0x01b5, 0x01b5,</div><div class='add'>+	0x01b7, 0x01b8,</div><div class='add'>+	0x01bc, 0x01bc,</div><div class='add'>+	0x01c4, 0x01c4,</div><div class='add'>+	0x01c7, 0x01c7,</div><div class='add'>+	0x01ca, 0x01ca,</div><div class='add'>+	0x01cd, 0x01cd,</div><div class='add'>+	0x01cf, 0x01cf,</div><div class='add'>+	0x01d1, 0x01d1,</div><div class='add'>+	0x01d3, 0x01d3,</div><div class='add'>+	0x01d5, 0x01d5,</div><div class='add'>+	0x01d7, 0x01d7,</div><div class='add'>+	0x01d9, 0x01d9,</div><div class='add'>+	0x01db, 0x01db,</div><div class='add'>+	0x01de, 0x01de,</div><div class='add'>+	0x01e0, 0x01e0,</div><div class='add'>+	0x01e2, 0x01e2,</div><div class='add'>+	0x01e4, 0x01e4,</div><div class='add'>+	0x01e6, 0x01e6,</div><div class='add'>+	0x01e8, 0x01e8,</div><div class='add'>+	0x01ea, 0x01ea,</div><div class='add'>+	0x01ec, 0x01ec,</div><div class='add'>+	0x01ee, 0x01ee,</div><div class='add'>+	0x01f1, 0x01f1,</div><div class='add'>+	0x01f4, 0x01f4,</div><div class='add'>+	0x01f6, 0x01f8,</div><div class='add'>+	0x01fa, 0x01fa,</div><div class='add'>+	0x01fc, 0x01fc,</div><div class='add'>+	0x01fe, 0x01fe,</div><div class='add'>+	0x0200, 0x0200,</div><div class='add'>+	0x0202, 0x0202,</div><div class='add'>+	0x0204, 0x0204,</div><div class='add'>+	0x0206, 0x0206,</div><div class='add'>+	0x0208, 0x0208,</div><div class='add'>+	0x020a, 0x020a,</div><div class='add'>+	0x020c, 0x020c,</div><div class='add'>+	0x020e, 0x020e,</div><div class='add'>+	0x0210, 0x0210,</div><div class='add'>+	0x0212, 0x0212,</div><div class='add'>+	0x0214, 0x0214,</div><div class='add'>+	0x0216, 0x0216,</div><div class='add'>+	0x0218, 0x0218,</div><div class='add'>+	0x021a, 0x021a,</div><div class='add'>+	0x021c, 0x021c,</div><div class='add'>+	0x021e, 0x021e,</div><div class='add'>+	0x0220, 0x0220,</div><div class='add'>+	0x0222, 0x0222,</div><div class='add'>+	0x0224, 0x0224,</div><div class='add'>+	0x0226, 0x0226,</div><div class='add'>+	0x0228, 0x0228,</div><div class='add'>+	0x022a, 0x022a,</div><div class='add'>+	0x022c, 0x022c,</div><div class='add'>+	0x022e, 0x022e,</div><div class='add'>+	0x0230, 0x0230,</div><div class='add'>+	0x0232, 0x0232,</div><div class='add'>+	0x023a, 0x023b,</div><div class='add'>+	0x023d, 0x023e,</div><div class='add'>+	0x0241, 0x0241,</div><div class='add'>+	0x0243, 0x0246,</div><div class='add'>+	0x0248, 0x0248,</div><div class='add'>+	0x024a, 0x024a,</div><div class='add'>+	0x024c, 0x024c,</div><div class='add'>+	0x024e, 0x024e,</div><div class='add'>+	0x0370, 0x0370,</div><div class='add'>+	0x0372, 0x0372,</div><div class='add'>+	0x0376, 0x0376,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x038f,</div><div class='add'>+	0x0391, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ab,</div><div class='add'>+	0x03cf, 0x03cf,</div><div class='add'>+	0x03d2, 0x03d4,</div><div class='add'>+	0x03d8, 0x03d8,</div><div class='add'>+	0x03da, 0x03da,</div><div class='add'>+	0x03dc, 0x03dc,</div><div class='add'>+	0x03de, 0x03de,</div><div class='add'>+	0x03e0, 0x03e0,</div><div class='add'>+	0x03e2, 0x03e2,</div><div class='add'>+	0x03e4, 0x03e4,</div><div class='add'>+	0x03e6, 0x03e6,</div><div class='add'>+	0x03e8, 0x03e8,</div><div class='add'>+	0x03ea, 0x03ea,</div><div class='add'>+	0x03ec, 0x03ec,</div><div class='add'>+	0x03ee, 0x03ee,</div><div class='add'>+	0x03f4, 0x03f4,</div><div class='add'>+	0x03f7, 0x03f7,</div><div class='add'>+	0x03f9, 0x03fa,</div><div class='add'>+	0x03fd, 0x042f,</div><div class='add'>+	0x0460, 0x0460,</div><div class='add'>+	0x0462, 0x0462,</div><div class='add'>+	0x0464, 0x0464,</div><div class='add'>+	0x0466, 0x0466,</div><div class='add'>+	0x0468, 0x0468,</div><div class='add'>+	0x046a, 0x046a,</div><div class='add'>+	0x046c, 0x046c,</div><div class='add'>+	0x046e, 0x046e,</div><div class='add'>+	0x0470, 0x0470,</div><div class='add'>+	0x0472, 0x0472,</div><div class='add'>+	0x0474, 0x0474,</div><div class='add'>+	0x0476, 0x0476,</div><div class='add'>+	0x0478, 0x0478,</div><div class='add'>+	0x047a, 0x047a,</div><div class='add'>+	0x047c, 0x047c,</div><div class='add'>+	0x047e, 0x047e,</div><div class='add'>+	0x0480, 0x0480,</div><div class='add'>+	0x048a, 0x048a,</div><div class='add'>+	0x048c, 0x048c,</div><div class='add'>+	0x048e, 0x048e,</div><div class='add'>+	0x0490, 0x0490,</div><div class='add'>+	0x0492, 0x0492,</div><div class='add'>+	0x0494, 0x0494,</div><div class='add'>+	0x0496, 0x0496,</div><div class='add'>+	0x0498, 0x0498,</div><div class='add'>+	0x049a, 0x049a,</div><div class='add'>+	0x049c, 0x049c,</div><div class='add'>+	0x049e, 0x049e,</div><div class='add'>+	0x04a0, 0x04a0,</div><div class='add'>+	0x04a2, 0x04a2,</div><div class='add'>+	0x04a4, 0x04a4,</div><div class='add'>+	0x04a6, 0x04a6,</div><div class='add'>+	0x04a8, 0x04a8,</div><div class='add'>+	0x04aa, 0x04aa,</div><div class='add'>+	0x04ac, 0x04ac,</div><div class='add'>+	0x04ae, 0x04ae,</div><div class='add'>+	0x04b0, 0x04b0,</div><div class='add'>+	0x04b2, 0x04b2,</div><div class='add'>+	0x04b4, 0x04b4,</div><div class='add'>+	0x04b6, 0x04b6,</div><div class='add'>+	0x04b8, 0x04b8,</div><div class='add'>+	0x04ba, 0x04ba,</div><div class='add'>+	0x04bc, 0x04bc,</div><div class='add'>+	0x04be, 0x04be,</div><div class='add'>+	0x04c0, 0x04c1,</div><div class='add'>+	0x04c3, 0x04c3,</div><div class='add'>+	0x04c5, 0x04c5,</div><div class='add'>+	0x04c7, 0x04c7,</div><div class='add'>+	0x04c9, 0x04c9,</div><div class='add'>+	0x04cb, 0x04cb,</div><div class='add'>+	0x04cd, 0x04cd,</div><div class='add'>+	0x04d0, 0x04d0,</div><div class='add'>+	0x04d2, 0x04d2,</div><div class='add'>+	0x04d4, 0x04d4,</div><div class='add'>+	0x04d6, 0x04d6,</div><div class='add'>+	0x04d8, 0x04d8,</div><div class='add'>+	0x04da, 0x04da,</div><div class='add'>+	0x04dc, 0x04dc,</div><div class='add'>+	0x04de, 0x04de,</div><div class='add'>+	0x04e0, 0x04e0,</div><div class='add'>+	0x04e2, 0x04e2,</div><div class='add'>+	0x04e4, 0x04e4,</div><div class='add'>+	0x04e6, 0x04e6,</div><div class='add'>+	0x04e8, 0x04e8,</div><div class='add'>+	0x04ea, 0x04ea,</div><div class='add'>+	0x04ec, 0x04ec,</div><div class='add'>+	0x04ee, 0x04ee,</div><div class='add'>+	0x04f0, 0x04f0,</div><div class='add'>+	0x04f2, 0x04f2,</div><div class='add'>+	0x04f4, 0x04f4,</div><div class='add'>+	0x04f6, 0x04f6,</div><div class='add'>+	0x04f8, 0x04f8,</div><div class='add'>+	0x04fa, 0x04fa,</div><div class='add'>+	0x04fc, 0x04fc,</div><div class='add'>+	0x04fe, 0x04fe,</div><div class='add'>+	0x0500, 0x0500,</div><div class='add'>+	0x0502, 0x0502,</div><div class='add'>+	0x0504, 0x0504,</div><div class='add'>+	0x0506, 0x0506,</div><div class='add'>+	0x0508, 0x0508,</div><div class='add'>+	0x050a, 0x050a,</div><div class='add'>+	0x050c, 0x050c,</div><div class='add'>+	0x050e, 0x050e,</div><div class='add'>+	0x0510, 0x0510,</div><div class='add'>+	0x0512, 0x0512,</div><div class='add'>+	0x0514, 0x0514,</div><div class='add'>+	0x0516, 0x0516,</div><div class='add'>+	0x0518, 0x0518,</div><div class='add'>+	0x051a, 0x051a,</div><div class='add'>+	0x051c, 0x051c,</div><div class='add'>+	0x051e, 0x051e,</div><div class='add'>+	0x0520, 0x0520,</div><div class='add'>+	0x0522, 0x0522,</div><div class='add'>+	0x0524, 0x0524,</div><div class='add'>+	0x0526, 0x0526,</div><div class='add'>+	0x0528, 0x0528,</div><div class='add'>+	0x052a, 0x052a,</div><div class='add'>+	0x052c, 0x052c,</div><div class='add'>+	0x052e, 0x052e,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1e00, 0x1e00,</div><div class='add'>+	0x1e02, 0x1e02,</div><div class='add'>+	0x1e04, 0x1e04,</div><div class='add'>+	0x1e06, 0x1e06,</div><div class='add'>+	0x1e08, 0x1e08,</div><div class='add'>+	0x1e0a, 0x1e0a,</div><div class='add'>+	0x1e0c, 0x1e0c,</div><div class='add'>+	0x1e0e, 0x1e0e,</div><div class='add'>+	0x1e10, 0x1e10,</div><div class='add'>+	0x1e12, 0x1e12,</div><div class='add'>+	0x1e14, 0x1e14,</div><div class='add'>+	0x1e16, 0x1e16,</div><div class='add'>+	0x1e18, 0x1e18,</div><div class='add'>+	0x1e1a, 0x1e1a,</div><div class='add'>+	0x1e1c, 0x1e1c,</div><div class='add'>+	0x1e1e, 0x1e1e,</div><div class='add'>+	0x1e20, 0x1e20,</div><div class='add'>+	0x1e22, 0x1e22,</div><div class='add'>+	0x1e24, 0x1e24,</div><div class='add'>+	0x1e26, 0x1e26,</div><div class='add'>+	0x1e28, 0x1e28,</div><div class='add'>+	0x1e2a, 0x1e2a,</div><div class='add'>+	0x1e2c, 0x1e2c,</div><div class='add'>+	0x1e2e, 0x1e2e,</div><div class='add'>+	0x1e30, 0x1e30,</div><div class='add'>+	0x1e32, 0x1e32,</div><div class='add'>+	0x1e34, 0x1e34,</div><div class='add'>+	0x1e36, 0x1e36,</div><div class='add'>+	0x1e38, 0x1e38,</div><div class='add'>+	0x1e3a, 0x1e3a,</div><div class='add'>+	0x1e3c, 0x1e3c,</div><div class='add'>+	0x1e3e, 0x1e3e,</div><div class='add'>+	0x1e40, 0x1e40,</div><div class='add'>+	0x1e42, 0x1e42,</div><div class='add'>+	0x1e44, 0x1e44,</div><div class='add'>+	0x1e46, 0x1e46,</div><div class='add'>+	0x1e48, 0x1e48,</div><div class='add'>+	0x1e4a, 0x1e4a,</div><div class='add'>+	0x1e4c, 0x1e4c,</div><div class='add'>+	0x1e4e, 0x1e4e,</div><div class='add'>+	0x1e50, 0x1e50,</div><div class='add'>+	0x1e52, 0x1e52,</div><div class='add'>+	0x1e54, 0x1e54,</div><div class='add'>+	0x1e56, 0x1e56,</div><div class='add'>+	0x1e58, 0x1e58,</div><div class='add'>+	0x1e5a, 0x1e5a,</div><div class='add'>+	0x1e5c, 0x1e5c,</div><div class='add'>+	0x1e5e, 0x1e5e,</div><div class='add'>+	0x1e60, 0x1e60,</div><div class='add'>+	0x1e62, 0x1e62,</div><div class='add'>+	0x1e64, 0x1e64,</div><div class='add'>+	0x1e66, 0x1e66,</div><div class='add'>+	0x1e68, 0x1e68,</div><div class='add'>+	0x1e6a, 0x1e6a,</div><div class='add'>+	0x1e6c, 0x1e6c,</div><div class='add'>+	0x1e6e, 0x1e6e,</div><div class='add'>+	0x1e70, 0x1e70,</div><div class='add'>+	0x1e72, 0x1e72,</div><div class='add'>+	0x1e74, 0x1e74,</div><div class='add'>+	0x1e76, 0x1e76,</div><div class='add'>+	0x1e78, 0x1e78,</div><div class='add'>+	0x1e7a, 0x1e7a,</div><div class='add'>+	0x1e7c, 0x1e7c,</div><div class='add'>+	0x1e7e, 0x1e7e,</div><div class='add'>+	0x1e80, 0x1e80,</div><div class='add'>+	0x1e82, 0x1e82,</div><div class='add'>+	0x1e84, 0x1e84,</div><div class='add'>+	0x1e86, 0x1e86,</div><div class='add'>+	0x1e88, 0x1e88,</div><div class='add'>+	0x1e8a, 0x1e8a,</div><div class='add'>+	0x1e8c, 0x1e8c,</div><div class='add'>+	0x1e8e, 0x1e8e,</div><div class='add'>+	0x1e90, 0x1e90,</div><div class='add'>+	0x1e92, 0x1e92,</div><div class='add'>+	0x1e94, 0x1e94,</div><div class='add'>+	0x1e9e, 0x1e9e,</div><div class='add'>+	0x1ea0, 0x1ea0,</div><div class='add'>+	0x1ea2, 0x1ea2,</div><div class='add'>+	0x1ea4, 0x1ea4,</div><div class='add'>+	0x1ea6, 0x1ea6,</div><div class='add'>+	0x1ea8, 0x1ea8,</div><div class='add'>+	0x1eaa, 0x1eaa,</div><div class='add'>+	0x1eac, 0x1eac,</div><div class='add'>+	0x1eae, 0x1eae,</div><div class='add'>+	0x1eb0, 0x1eb0,</div><div class='add'>+	0x1eb2, 0x1eb2,</div><div class='add'>+	0x1eb4, 0x1eb4,</div><div class='add'>+	0x1eb6, 0x1eb6,</div><div class='add'>+	0x1eb8, 0x1eb8,</div><div class='add'>+	0x1eba, 0x1eba,</div><div class='add'>+	0x1ebc, 0x1ebc,</div><div class='add'>+	0x1ebe, 0x1ebe,</div><div class='add'>+	0x1ec0, 0x1ec0,</div><div class='add'>+	0x1ec2, 0x1ec2,</div><div class='add'>+	0x1ec4, 0x1ec4,</div><div class='add'>+	0x1ec6, 0x1ec6,</div><div class='add'>+	0x1ec8, 0x1ec8,</div><div class='add'>+	0x1eca, 0x1eca,</div><div class='add'>+	0x1ecc, 0x1ecc,</div><div class='add'>+	0x1ece, 0x1ece,</div><div class='add'>+	0x1ed0, 0x1ed0,</div><div class='add'>+	0x1ed2, 0x1ed2,</div><div class='add'>+	0x1ed4, 0x1ed4,</div><div class='add'>+	0x1ed6, 0x1ed6,</div><div class='add'>+	0x1ed8, 0x1ed8,</div><div class='add'>+	0x1eda, 0x1eda,</div><div class='add'>+	0x1edc, 0x1edc,</div><div class='add'>+	0x1ede, 0x1ede,</div><div class='add'>+	0x1ee0, 0x1ee0,</div><div class='add'>+	0x1ee2, 0x1ee2,</div><div class='add'>+	0x1ee4, 0x1ee4,</div><div class='add'>+	0x1ee6, 0x1ee6,</div><div class='add'>+	0x1ee8, 0x1ee8,</div><div class='add'>+	0x1eea, 0x1eea,</div><div class='add'>+	0x1eec, 0x1eec,</div><div class='add'>+	0x1eee, 0x1eee,</div><div class='add'>+	0x1ef0, 0x1ef0,</div><div class='add'>+	0x1ef2, 0x1ef2,</div><div class='add'>+	0x1ef4, 0x1ef4,</div><div class='add'>+	0x1ef6, 0x1ef6,</div><div class='add'>+	0x1ef8, 0x1ef8,</div><div class='add'>+	0x1efa, 0x1efa,</div><div class='add'>+	0x1efc, 0x1efc,</div><div class='add'>+	0x1efe, 0x1efe,</div><div class='add'>+	0x1f08, 0x1f0f,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f28, 0x1f2f,</div><div class='add'>+	0x1f38, 0x1f3f,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f5f,</div><div class='add'>+	0x1f68, 0x1f6f,</div><div class='add'>+	0x1fb8, 0x1fbb,</div><div class='add'>+	0x1fc8, 0x1fcb,</div><div class='add'>+	0x1fd8, 0x1fdb,</div><div class='add'>+	0x1fe8, 0x1fec,</div><div class='add'>+	0x1ff8, 0x1ffb,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210b, 0x210d,</div><div class='add'>+	0x2110, 0x2112,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2119, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x212d,</div><div class='add'>+	0x2130, 0x2133,</div><div class='add'>+	0x213e, 0x213f,</div><div class='add'>+	0x2145, 0x2145,</div><div class='add'>+	0x2160, 0x216f,</div><div class='add'>+	0x2183, 0x2183,</div><div class='add'>+	0x24b6, 0x24cf,</div><div class='add'>+	0x2c00, 0x2c2f,</div><div class='add'>+	0x2c60, 0x2c60,</div><div class='add'>+	0x2c62, 0x2c64,</div><div class='add'>+	0x2c67, 0x2c67,</div><div class='add'>+	0x2c69, 0x2c69,</div><div class='add'>+	0x2c6b, 0x2c6b,</div><div class='add'>+	0x2c6d, 0x2c70,</div><div class='add'>+	0x2c72, 0x2c72,</div><div class='add'>+	0x2c75, 0x2c75,</div><div class='add'>+	0x2c7e, 0x2c80,</div><div class='add'>+	0x2c82, 0x2c82,</div><div class='add'>+	0x2c84, 0x2c84,</div><div class='add'>+	0x2c86, 0x2c86,</div><div class='add'>+	0x2c88, 0x2c88,</div><div class='add'>+	0x2c8a, 0x2c8a,</div><div class='add'>+	0x2c8c, 0x2c8c,</div><div class='add'>+	0x2c8e, 0x2c8e,</div><div class='add'>+	0x2c90, 0x2c90,</div><div class='add'>+	0x2c92, 0x2c92,</div><div class='add'>+	0x2c94, 0x2c94,</div><div class='add'>+	0x2c96, 0x2c96,</div><div class='add'>+	0x2c98, 0x2c98,</div><div class='add'>+	0x2c9a, 0x2c9a,</div><div class='add'>+	0x2c9c, 0x2c9c,</div><div class='add'>+	0x2c9e, 0x2c9e,</div><div class='add'>+	0x2ca0, 0x2ca0,</div><div class='add'>+	0x2ca2, 0x2ca2,</div><div class='add'>+	0x2ca4, 0x2ca4,</div><div class='add'>+	0x2ca6, 0x2ca6,</div><div class='add'>+	0x2ca8, 0x2ca8,</div><div class='add'>+	0x2caa, 0x2caa,</div><div class='add'>+	0x2cac, 0x2cac,</div><div class='add'>+	0x2cae, 0x2cae,</div><div class='add'>+	0x2cb0, 0x2cb0,</div><div class='add'>+	0x2cb2, 0x2cb2,</div><div class='add'>+	0x2cb4, 0x2cb4,</div><div class='add'>+	0x2cb6, 0x2cb6,</div><div class='add'>+	0x2cb8, 0x2cb8,</div><div class='add'>+	0x2cba, 0x2cba,</div><div class='add'>+	0x2cbc, 0x2cbc,</div><div class='add'>+	0x2cbe, 0x2cbe,</div><div class='add'>+	0x2cc0, 0x2cc0,</div><div class='add'>+	0x2cc2, 0x2cc2,</div><div class='add'>+	0x2cc4, 0x2cc4,</div><div class='add'>+	0x2cc6, 0x2cc6,</div><div class='add'>+	0x2cc8, 0x2cc8,</div><div class='add'>+	0x2cca, 0x2cca,</div><div class='add'>+	0x2ccc, 0x2ccc,</div><div class='add'>+	0x2cce, 0x2cce,</div><div class='add'>+	0x2cd0, 0x2cd0,</div><div class='add'>+	0x2cd2, 0x2cd2,</div><div class='add'>+	0x2cd4, 0x2cd4,</div><div class='add'>+	0x2cd6, 0x2cd6,</div><div class='add'>+	0x2cd8, 0x2cd8,</div><div class='add'>+	0x2cda, 0x2cda,</div><div class='add'>+	0x2cdc, 0x2cdc,</div><div class='add'>+	0x2cde, 0x2cde,</div><div class='add'>+	0x2ce0, 0x2ce0,</div><div class='add'>+	0x2ce2, 0x2ce2,</div><div class='add'>+	0x2ceb, 0x2ceb,</div><div class='add'>+	0x2ced, 0x2ced,</div><div class='add'>+	0x2cf2, 0x2cf2,</div><div class='add'>+	0xa640, 0xa640,</div><div class='add'>+	0xa642, 0xa642,</div><div class='add'>+	0xa644, 0xa644,</div><div class='add'>+	0xa646, 0xa646,</div><div class='add'>+	0xa648, 0xa648,</div><div class='add'>+	0xa64a, 0xa64a,</div><div class='add'>+	0xa64c, 0xa64c,</div><div class='add'>+	0xa64e, 0xa64e,</div><div class='add'>+	0xa650, 0xa650,</div><div class='add'>+	0xa652, 0xa652,</div><div class='add'>+	0xa654, 0xa654,</div><div class='add'>+	0xa656, 0xa656,</div><div class='add'>+	0xa658, 0xa658,</div><div class='add'>+	0xa65a, 0xa65a,</div><div class='add'>+	0xa65c, 0xa65c,</div><div class='add'>+	0xa65e, 0xa65e,</div><div class='add'>+	0xa660, 0xa660,</div><div class='add'>+	0xa662, 0xa662,</div><div class='add'>+	0xa664, 0xa664,</div><div class='add'>+	0xa666, 0xa666,</div><div class='add'>+	0xa668, 0xa668,</div><div class='add'>+	0xa66a, 0xa66a,</div><div class='add'>+	0xa66c, 0xa66c,</div><div class='add'>+	0xa680, 0xa680,</div><div class='add'>+	0xa682, 0xa682,</div><div class='add'>+	0xa684, 0xa684,</div><div class='add'>+	0xa686, 0xa686,</div><div class='add'>+	0xa688, 0xa688,</div><div class='add'>+	0xa68a, 0xa68a,</div><div class='add'>+	0xa68c, 0xa68c,</div><div class='add'>+	0xa68e, 0xa68e,</div><div class='add'>+	0xa690, 0xa690,</div><div class='add'>+	0xa692, 0xa692,</div><div class='add'>+	0xa694, 0xa694,</div><div class='add'>+	0xa696, 0xa696,</div><div class='add'>+	0xa698, 0xa698,</div><div class='add'>+	0xa69a, 0xa69a,</div><div class='add'>+	0xa722, 0xa722,</div><div class='add'>+	0xa724, 0xa724,</div><div class='add'>+	0xa726, 0xa726,</div><div class='add'>+	0xa728, 0xa728,</div><div class='add'>+	0xa72a, 0xa72a,</div><div class='add'>+	0xa72c, 0xa72c,</div><div class='add'>+	0xa72e, 0xa72e,</div><div class='add'>+	0xa732, 0xa732,</div><div class='add'>+	0xa734, 0xa734,</div><div class='add'>+	0xa736, 0xa736,</div><div class='add'>+	0xa738, 0xa738,</div><div class='add'>+	0xa73a, 0xa73a,</div><div class='add'>+	0xa73c, 0xa73c,</div><div class='add'>+	0xa73e, 0xa73e,</div><div class='add'>+	0xa740, 0xa740,</div><div class='add'>+	0xa742, 0xa742,</div><div class='add'>+	0xa744, 0xa744,</div><div class='add'>+	0xa746, 0xa746,</div><div class='add'>+	0xa748, 0xa748,</div><div class='add'>+	0xa74a, 0xa74a,</div><div class='add'>+	0xa74c, 0xa74c,</div><div class='add'>+	0xa74e, 0xa74e,</div><div class='add'>+	0xa750, 0xa750,</div><div class='add'>+	0xa752, 0xa752,</div><div class='add'>+	0xa754, 0xa754,</div><div class='add'>+	0xa756, 0xa756,</div><div class='add'>+	0xa758, 0xa758,</div><div class='add'>+	0xa75a, 0xa75a,</div><div class='add'>+	0xa75c, 0xa75c,</div><div class='add'>+	0xa75e, 0xa75e,</div><div class='add'>+	0xa760, 0xa760,</div><div class='add'>+	0xa762, 0xa762,</div><div class='add'>+	0xa764, 0xa764,</div><div class='add'>+	0xa766, 0xa766,</div><div class='add'>+	0xa768, 0xa768,</div><div class='add'>+	0xa76a, 0xa76a,</div><div class='add'>+	0xa76c, 0xa76c,</div><div class='add'>+	0xa76e, 0xa76e,</div><div class='add'>+	0xa779, 0xa779,</div><div class='add'>+	0xa77b, 0xa77b,</div><div class='add'>+	0xa77d, 0xa77e,</div><div class='add'>+	0xa780, 0xa780,</div><div class='add'>+	0xa782, 0xa782,</div><div class='add'>+	0xa784, 0xa784,</div><div class='add'>+	0xa786, 0xa786,</div><div class='add'>+	0xa78b, 0xa78b,</div><div class='add'>+	0xa78d, 0xa78d,</div><div class='add'>+	0xa790, 0xa790,</div><div class='add'>+	0xa792, 0xa792,</div><div class='add'>+	0xa796, 0xa796,</div><div class='add'>+	0xa798, 0xa798,</div><div class='add'>+	0xa79a, 0xa79a,</div><div class='add'>+	0xa79c, 0xa79c,</div><div class='add'>+	0xa79e, 0xa79e,</div><div class='add'>+	0xa7a0, 0xa7a0,</div><div class='add'>+	0xa7a2, 0xa7a2,</div><div class='add'>+	0xa7a4, 0xa7a4,</div><div class='add'>+	0xa7a6, 0xa7a6,</div><div class='add'>+	0xa7a8, 0xa7a8,</div><div class='add'>+	0xa7aa, 0xa7ae,</div><div class='add'>+	0xa7b0, 0xa7b4,</div><div class='add'>+	0xa7b6, 0xa7b6,</div><div class='add'>+	0xa7b8, 0xa7b8,</div><div class='add'>+	0xa7ba, 0xa7ba,</div><div class='add'>+	0xa7bc, 0xa7bc,</div><div class='add'>+	0xa7be, 0xa7be,</div><div class='add'>+	0xa7c0, 0xa7c0,</div><div class='add'>+	0xa7c2, 0xa7c2,</div><div class='add'>+	0xa7c4, 0xa7c7,</div><div class='add'>+	0xa7c9, 0xa7c9,</div><div class='add'>+	0xa7d0, 0xa7d0,</div><div class='add'>+	0xa7d6, 0xa7d6,</div><div class='add'>+	0xa7d8, 0xa7d8,</div><div class='add'>+	0xa7f5, 0xa7f5,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0x10400, 0x10427,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x118a0, 0x118bf,</div><div class='add'>+	0x16e40, 0x16e5f,</div><div class='add'>+	0x1d400, 0x1d419,</div><div class='add'>+	0x1d434, 0x1d44d,</div><div class='add'>+	0x1d468, 0x1d481,</div><div class='add'>+	0x1d49c, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b5,</div><div class='add'>+	0x1d4d0, 0x1d4e9,</div><div class='add'>+	0x1d504, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d538, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d56c, 0x1d585,</div><div class='add'>+	0x1d5a0, 0x1d5b9,</div><div class='add'>+	0x1d5d4, 0x1d5ed,</div><div class='add'>+	0x1d608, 0x1d621,</div><div class='add'>+	0x1d63c, 0x1d655,</div><div class='add'>+	0x1d670, 0x1d689,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6e2, 0x1d6fa,</div><div class='add'>+	0x1d71c, 0x1d734,</div><div class='add'>+	0x1d756, 0x1d76e,</div><div class='add'>+	0x1d790, 0x1d7a8,</div><div class='add'>+	0x1d7ca, 0x1d7ca,</div><div class='add'>+	0x1e900, 0x1e921,</div><div class='add'>+	0x1f130, 0x1f149,</div><div class='add'>+	0x1f150, 0x1f169,</div><div class='add'>+	0x1f170, 0x1f189,</div><div class='add'>+}; /* CR_Upper */</div><div class='add'>+</div><div class='add'>+/* 'XDigit': [[:XDigit:]] */</div><div class='add'>+static const OnigCodePoint CR_XDigit[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x0030, 0x0039,</div><div class='add'>+	0x0041, 0x0046,</div><div class='add'>+	0x0061, 0x0066,</div><div class='add'>+}; /* CR_XDigit */</div><div class='add'>+</div><div class='add'>+/* 'Word': [[:Word:]] */</div><div class='add'>+static const OnigCodePoint CR_Word[] = {</div><div class='add'>+	770,</div><div class='add'>+	0x0030, 0x0039,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x005f, 0x005f,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x02c1,</div><div class='add'>+	0x02c6, 0x02d1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x02ec, 0x02ec,</div><div class='add'>+	0x02ee, 0x02ee,</div><div class='add'>+	0x0300, 0x0374,</div><div class='add'>+	0x0376, 0x0377,</div><div class='add'>+	0x037a, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03f5,</div><div class='add'>+	0x03f7, 0x0481,</div><div class='add'>+	0x0483, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x0559,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x0591, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c5,</div><div class='add'>+	0x05c7, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f2,</div><div class='add'>+	0x0610, 0x061a,</div><div class='add'>+	0x0620, 0x0669,</div><div class='add'>+	0x066e, 0x06d3,</div><div class='add'>+	0x06d5, 0x06dc,</div><div class='add'>+	0x06df, 0x06e8,</div><div class='add'>+	0x06ea, 0x06fc,</div><div class='add'>+	0x06ff, 0x06ff,</div><div class='add'>+	0x0710, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07f5,</div><div class='add'>+	0x07fa, 0x07fa,</div><div class='add'>+	0x07fd, 0x07fd,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x0887,</div><div class='add'>+	0x0889, 0x088e,</div><div class='add'>+	0x0898, 0x08e1,</div><div class='add'>+	0x08e3, 0x0963,</div><div class='add'>+	0x0966, 0x096f,</div><div class='add'>+	0x0971, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09f1,</div><div class='add'>+	0x09fc, 0x09fc,</div><div class='add'>+	0x09fe, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b6f,</div><div class='add'>+	0x0b71, 0x0b71,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bef,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3c, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c80, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf3,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4e,</div><div class='add'>+	0x0d54, 0x0d57,</div><div class='add'>+	0x0d5f, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0d7a, 0x0d7f,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df3,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e40, 0x0e4e,</div><div class='add'>+	0x0e50, 0x0e59,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f00,</div><div class='add'>+	0x0f18, 0x0f19,</div><div class='add'>+	0x0f20, 0x0f29,</div><div class='add'>+	0x0f35, 0x0f35,</div><div class='add'>+	0x0f37, 0x0f37,</div><div class='add'>+	0x0f39, 0x0f39,</div><div class='add'>+	0x0f3e, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f84,</div><div class='add'>+	0x0f86, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fc6, 0x0fc6,</div><div class='add'>+	0x1000, 0x1049,</div><div class='add'>+	0x1050, 0x109d,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fc, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x135f,</div><div class='add'>+	0x1380, 0x138f,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1401, 0x166c,</div><div class='add'>+	0x166f, 0x167f,</div><div class='add'>+	0x1681, 0x169a,</div><div class='add'>+	0x16a0, 0x16ea,</div><div class='add'>+	0x16ee, 0x16f8,</div><div class='add'>+	0x1700, 0x1715,</div><div class='add'>+	0x171f, 0x1734,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17d3,</div><div class='add'>+	0x17d7, 0x17d7,</div><div class='add'>+	0x17dc, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x180b, 0x180d,</div><div class='add'>+	0x180f, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1946, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19d9,</div><div class='add'>+	0x1a00, 0x1a1b,</div><div class='add'>+	0x1a20, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa7, 0x1aa7,</div><div class='add'>+	0x1ab0, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b4c,</div><div class='add'>+	0x1b50, 0x1b59,</div><div class='add'>+	0x1b6b, 0x1b73,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1c00, 0x1c37,</div><div class='add'>+	0x1c40, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7d,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1cd0, 0x1cd2,</div><div class='add'>+	0x1cd4, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fe0, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffc,</div><div class='add'>+	0x203f, 0x2040,</div><div class='add'>+	0x2054, 0x2054,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2119, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x212d,</div><div class='add'>+	0x212f, 0x2139,</div><div class='add'>+	0x213c, 0x213f,</div><div class='add'>+	0x2145, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2160, 0x2188,</div><div class='add'>+	0x24b6, 0x24e9,</div><div class='add'>+	0x2c00, 0x2ce4,</div><div class='add'>+	0x2ceb, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0x2e2f, 0x2e2f,</div><div class='add'>+	0x3005, 0x3007,</div><div class='add'>+	0x3021, 0x302f,</div><div class='add'>+	0x3031, 0x3035,</div><div class='add'>+	0x3038, 0x303c,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x309a,</div><div class='add'>+	0x309d, 0x309f,</div><div class='add'>+	0x30a1, 0x30fa,</div><div class='add'>+	0x30fc, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x31a0, 0x31bf,</div><div class='add'>+	0x31f0, 0x31ff,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0xa48c,</div><div class='add'>+	0xa4d0, 0xa4fd,</div><div class='add'>+	0xa500, 0xa60c,</div><div class='add'>+	0xa610, 0xa62b,</div><div class='add'>+	0xa640, 0xa672,</div><div class='add'>+	0xa674, 0xa67d,</div><div class='add'>+	0xa67f, 0xa6f1,</div><div class='add'>+	0xa717, 0xa71f,</div><div class='add'>+	0xa722, 0xa788,</div><div class='add'>+	0xa78b, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa827,</div><div class='add'>+	0xa82c, 0xa82c,</div><div class='add'>+	0xa840, 0xa873,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8d0, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8f7,</div><div class='add'>+	0xa8fb, 0xa8fb,</div><div class='add'>+	0xa8fd, 0xa92d,</div><div class='add'>+	0xa930, 0xa953,</div><div class='add'>+	0xa960, 0xa97c,</div><div class='add'>+	0xa980, 0xa9c0,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9e0, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa60, 0xaa76,</div><div class='add'>+	0xaa7a, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadd,</div><div class='add'>+	0xaae0, 0xaaef,</div><div class='add'>+	0xaaf2, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab5c, 0xab69,</div><div class='add'>+	0xab70, 0xabea,</div><div class='add'>+	0xabec, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb28,</div><div class='add'>+	0xfb2a, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3d,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdfb,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfe20, 0xfe2f,</div><div class='add'>+	0xfe33, 0xfe34,</div><div class='add'>+	0xfe4d, 0xfe4f,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xff10, 0xff19,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff3f, 0xff3f,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0xff66, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10140, 0x10174,</div><div class='add'>+	0x101fd, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102e0,</div><div class='add'>+	0x10300, 0x1031f,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x103a0, 0x103c3,</div><div class='add'>+	0x103c8, 0x103cf,</div><div class='add'>+	0x103d1, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10860, 0x10876,</div><div class='add'>+	0x10880, 0x1089e,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x10900, 0x10915,</div><div class='add'>+	0x10920, 0x10939,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a3f,</div><div class='add'>+	0x10a60, 0x10a7c,</div><div class='add'>+	0x10a80, 0x10a9c,</div><div class='add'>+	0x10ac0, 0x10ac7,</div><div class='add'>+	0x10ac9, 0x10ae6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b40, 0x10b55,</div><div class='add'>+	0x10b60, 0x10b72,</div><div class='add'>+	0x10b80, 0x10b91,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10d00, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10eac,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10efd, 0x10f1c,</div><div class='add'>+	0x10f27, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f50,</div><div class='add'>+	0x10f70, 0x10f85,</div><div class='add'>+	0x10fb0, 0x10fc4,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x11046,</div><div class='add'>+	0x11066, 0x11075,</div><div class='add'>+	0x1107f, 0x110ba,</div><div class='add'>+	0x110c2, 0x110c2,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x1113f,</div><div class='add'>+	0x11144, 0x11147,</div><div class='add'>+	0x11150, 0x11173,</div><div class='add'>+	0x11176, 0x11176,</div><div class='add'>+	0x11180, 0x111c4,</div><div class='add'>+	0x111c9, 0x111cc,</div><div class='add'>+	0x111ce, 0x111da,</div><div class='add'>+	0x111dc, 0x111dc,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x11237,</div><div class='add'>+	0x1123e, 0x11241,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a8,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x1144a,</div><div class='add'>+	0x11450, 0x11459,</div><div class='add'>+	0x1145e, 0x11461,</div><div class='add'>+	0x11480, 0x114c5,</div><div class='add'>+	0x114c7, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115c0,</div><div class='add'>+	0x115d8, 0x115dd,</div><div class='add'>+	0x11600, 0x11640,</div><div class='add'>+	0x11644, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11680, 0x116b8,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x11739,</div><div class='add'>+	0x11740, 0x11746,</div><div class='add'>+	0x11800, 0x1183a,</div><div class='add'>+	0x118a0, 0x118e9,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x11943,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e1,</div><div class='add'>+	0x119e3, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a3e,</div><div class='add'>+	0x11a47, 0x11a47,</div><div class='add'>+	0x11a50, 0x11a99,</div><div class='add'>+	0x11a9d, 0x11a9d,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c40,</div><div class='add'>+	0x11c50, 0x11c59,</div><div class='add'>+	0x11c72, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef6,</div><div class='add'>+	0x11f00, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f42,</div><div class='add'>+	0x11f50, 0x11f59,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff0,</div><div class='add'>+	0x13000, 0x1342f,</div><div class='add'>+	0x13440, 0x13455,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a70, 0x16abe,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af4,</div><div class='add'>+	0x16b00, 0x16b36,</div><div class='add'>+	0x16b40, 0x16b43,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e7f,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x16fe3, 0x16fe4,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9d, 0x1bc9e,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1d165, 0x1d169,</div><div class='add'>+	0x1d16d, 0x1d172,</div><div class='add'>+	0x1d17b, 0x1d182,</div><div class='add'>+	0x1d185, 0x1d18b,</div><div class='add'>+	0x1d1aa, 0x1d1ad,</div><div class='add'>+	0x1d242, 0x1d244,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6fa,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d734,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d76e,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d7a8,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1da00, 0x1da36,</div><div class='add'>+	0x1da3b, 0x1da6c,</div><div class='add'>+	0x1da75, 0x1da75,</div><div class='add'>+	0x1da84, 0x1da84,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14e,</div><div class='add'>+	0x1e290, 0x1e2ae,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e4d0, 0x1e4f9,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8d0, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1f130, 0x1f149,</div><div class='add'>+	0x1f150, 0x1f169,</div><div class='add'>+	0x1f170, 0x1f189,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+}; /* CR_Word */</div><div class='add'>+</div><div class='add'>+/* 'Alnum': [[:Alnum:]] */</div><div class='add'>+static const OnigCodePoint CR_Alnum[] = {</div><div class='add'>+	772,</div><div class='add'>+	0x0030, 0x0039,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x02c1,</div><div class='add'>+	0x02c6, 0x02d1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x02ec, 0x02ec,</div><div class='add'>+	0x02ee, 0x02ee,</div><div class='add'>+	0x0345, 0x0345,</div><div class='add'>+	0x0370, 0x0374,</div><div class='add'>+	0x0376, 0x0377,</div><div class='add'>+	0x037a, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03f5,</div><div class='add'>+	0x03f7, 0x0481,</div><div class='add'>+	0x048a, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x0559,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x05b0, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c5,</div><div class='add'>+	0x05c7, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f2,</div><div class='add'>+	0x0610, 0x061a,</div><div class='add'>+	0x0620, 0x0657,</div><div class='add'>+	0x0659, 0x0669,</div><div class='add'>+	0x066e, 0x06d3,</div><div class='add'>+	0x06d5, 0x06dc,</div><div class='add'>+	0x06e1, 0x06e8,</div><div class='add'>+	0x06ed, 0x06fc,</div><div class='add'>+	0x06ff, 0x06ff,</div><div class='add'>+	0x0710, 0x073f,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07ea,</div><div class='add'>+	0x07f4, 0x07f5,</div><div class='add'>+	0x07fa, 0x07fa,</div><div class='add'>+	0x0800, 0x0817,</div><div class='add'>+	0x081a, 0x082c,</div><div class='add'>+	0x0840, 0x0858,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x0887,</div><div class='add'>+	0x0889, 0x088e,</div><div class='add'>+	0x08a0, 0x08c9,</div><div class='add'>+	0x08d4, 0x08df,</div><div class='add'>+	0x08e3, 0x08e9,</div><div class='add'>+	0x08f0, 0x093b,</div><div class='add'>+	0x093d, 0x094c,</div><div class='add'>+	0x094e, 0x0950,</div><div class='add'>+	0x0955, 0x0963,</div><div class='add'>+	0x0966, 0x096f,</div><div class='add'>+	0x0971, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bd, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cc,</div><div class='add'>+	0x09ce, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09f1,</div><div class='add'>+	0x09fc, 0x09fc,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4c,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abd, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acc,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0af9, 0x0afc,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3d, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4c,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b6f,</div><div class='add'>+	0x0b71, 0x0b71,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcc,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bef,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4c,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c80, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbd, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccc,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf3,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4c,</div><div class='add'>+	0x0d4e, 0x0d4e,</div><div class='add'>+	0x0d54, 0x0d57,</div><div class='add'>+	0x0d5f, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0d7a, 0x0d7f,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df3,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e40, 0x0e46,</div><div class='add'>+	0x0e4d, 0x0e4d,</div><div class='add'>+	0x0e50, 0x0e59,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ecd, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f00,</div><div class='add'>+	0x0f20, 0x0f29,</div><div class='add'>+	0x0f40, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f83,</div><div class='add'>+	0x0f88, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x1000, 0x1036,</div><div class='add'>+	0x1038, 0x1038,</div><div class='add'>+	0x103b, 0x1049,</div><div class='add'>+	0x1050, 0x109d,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fc, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x1380, 0x138f,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1401, 0x166c,</div><div class='add'>+	0x166f, 0x167f,</div><div class='add'>+	0x1681, 0x169a,</div><div class='add'>+	0x16a0, 0x16ea,</div><div class='add'>+	0x16ee, 0x16f8,</div><div class='add'>+	0x1700, 0x1713,</div><div class='add'>+	0x171f, 0x1733,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17b3,</div><div class='add'>+	0x17b6, 0x17c8,</div><div class='add'>+	0x17d7, 0x17d7,</div><div class='add'>+	0x17dc, 0x17dc,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x1938,</div><div class='add'>+	0x1946, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19d9,</div><div class='add'>+	0x1a00, 0x1a1b,</div><div class='add'>+	0x1a20, 0x1a5e,</div><div class='add'>+	0x1a61, 0x1a74,</div><div class='add'>+	0x1a80, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa7, 0x1aa7,</div><div class='add'>+	0x1abf, 0x1ac0,</div><div class='add'>+	0x1acc, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b33,</div><div class='add'>+	0x1b35, 0x1b43,</div><div class='add'>+	0x1b45, 0x1b4c,</div><div class='add'>+	0x1b50, 0x1b59,</div><div class='add'>+	0x1b80, 0x1ba9,</div><div class='add'>+	0x1bac, 0x1be5,</div><div class='add'>+	0x1be7, 0x1bf1,</div><div class='add'>+	0x1c00, 0x1c36,</div><div class='add'>+	0x1c40, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7d,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1ce9, 0x1cec,</div><div class='add'>+	0x1cee, 0x1cf3,</div><div class='add'>+	0x1cf5, 0x1cf6,</div><div class='add'>+	0x1cfa, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1dbf,</div><div class='add'>+	0x1de7, 0x1df4,</div><div class='add'>+	0x1e00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fe0, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffc,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2119, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x212d,</div><div class='add'>+	0x212f, 0x2139,</div><div class='add'>+	0x213c, 0x213f,</div><div class='add'>+	0x2145, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2160, 0x2188,</div><div class='add'>+	0x24b6, 0x24e9,</div><div class='add'>+	0x2c00, 0x2ce4,</div><div class='add'>+	0x2ceb, 0x2cee,</div><div class='add'>+	0x2cf2, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0x2e2f, 0x2e2f,</div><div class='add'>+	0x3005, 0x3007,</div><div class='add'>+	0x3021, 0x3029,</div><div class='add'>+	0x3031, 0x3035,</div><div class='add'>+	0x3038, 0x303c,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x309d, 0x309f,</div><div class='add'>+	0x30a1, 0x30fa,</div><div class='add'>+	0x30fc, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x31a0, 0x31bf,</div><div class='add'>+	0x31f0, 0x31ff,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0xa48c,</div><div class='add'>+	0xa4d0, 0xa4fd,</div><div class='add'>+	0xa500, 0xa60c,</div><div class='add'>+	0xa610, 0xa62b,</div><div class='add'>+	0xa640, 0xa66e,</div><div class='add'>+	0xa674, 0xa67b,</div><div class='add'>+	0xa67f, 0xa6ef,</div><div class='add'>+	0xa717, 0xa71f,</div><div class='add'>+	0xa722, 0xa788,</div><div class='add'>+	0xa78b, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa805,</div><div class='add'>+	0xa807, 0xa827,</div><div class='add'>+	0xa840, 0xa873,</div><div class='add'>+	0xa880, 0xa8c3,</div><div class='add'>+	0xa8c5, 0xa8c5,</div><div class='add'>+	0xa8d0, 0xa8d9,</div><div class='add'>+	0xa8f2, 0xa8f7,</div><div class='add'>+	0xa8fb, 0xa8fb,</div><div class='add'>+	0xa8fd, 0xa92a,</div><div class='add'>+	0xa930, 0xa952,</div><div class='add'>+	0xa960, 0xa97c,</div><div class='add'>+	0xa980, 0xa9b2,</div><div class='add'>+	0xa9b4, 0xa9bf,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9e0, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa60, 0xaa76,</div><div class='add'>+	0xaa7a, 0xaabe,</div><div class='add'>+	0xaac0, 0xaac0,</div><div class='add'>+	0xaac2, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadd,</div><div class='add'>+	0xaae0, 0xaaef,</div><div class='add'>+	0xaaf2, 0xaaf5,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab5c, 0xab69,</div><div class='add'>+	0xab70, 0xabea,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb28,</div><div class='add'>+	0xfb2a, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3d,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdfb,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xff10, 0xff19,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0xff66, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10140, 0x10174,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031f,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x103a0, 0x103c3,</div><div class='add'>+	0x103c8, 0x103cf,</div><div class='add'>+	0x103d1, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10860, 0x10876,</div><div class='add'>+	0x10880, 0x1089e,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x10900, 0x10915,</div><div class='add'>+	0x10920, 0x10939,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a60, 0x10a7c,</div><div class='add'>+	0x10a80, 0x10a9c,</div><div class='add'>+	0x10ac0, 0x10ac7,</div><div class='add'>+	0x10ac9, 0x10ae4,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b40, 0x10b55,</div><div class='add'>+	0x10b60, 0x10b72,</div><div class='add'>+	0x10b80, 0x10b91,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10d00, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10eac,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10f00, 0x10f1c,</div><div class='add'>+	0x10f27, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f45,</div><div class='add'>+	0x10f70, 0x10f81,</div><div class='add'>+	0x10fb0, 0x10fc4,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x11045,</div><div class='add'>+	0x11066, 0x1106f,</div><div class='add'>+	0x11071, 0x11075,</div><div class='add'>+	0x11080, 0x110b8,</div><div class='add'>+	0x110c2, 0x110c2,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11132,</div><div class='add'>+	0x11136, 0x1113f,</div><div class='add'>+	0x11144, 0x11147,</div><div class='add'>+	0x11150, 0x11172,</div><div class='add'>+	0x11176, 0x11176,</div><div class='add'>+	0x11180, 0x111bf,</div><div class='add'>+	0x111c1, 0x111c4,</div><div class='add'>+	0x111ce, 0x111da,</div><div class='add'>+	0x111dc, 0x111dc,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x11234,</div><div class='add'>+	0x11237, 0x11237,</div><div class='add'>+	0x1123e, 0x11241,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a8,</div><div class='add'>+	0x112b0, 0x112e8,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133d, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134c,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11400, 0x11441,</div><div class='add'>+	0x11443, 0x11445,</div><div class='add'>+	0x11447, 0x1144a,</div><div class='add'>+	0x11450, 0x11459,</div><div class='add'>+	0x1145f, 0x11461,</div><div class='add'>+	0x11480, 0x114c1,</div><div class='add'>+	0x114c4, 0x114c5,</div><div class='add'>+	0x114c7, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115be,</div><div class='add'>+	0x115d8, 0x115dd,</div><div class='add'>+	0x11600, 0x1163e,</div><div class='add'>+	0x11640, 0x11640,</div><div class='add'>+	0x11644, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11680, 0x116b5,</div><div class='add'>+	0x116b8, 0x116b8,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172a,</div><div class='add'>+	0x11730, 0x11739,</div><div class='add'>+	0x11740, 0x11746,</div><div class='add'>+	0x11800, 0x11838,</div><div class='add'>+	0x118a0, 0x118e9,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x1193c,</div><div class='add'>+	0x1193f, 0x11942,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119df,</div><div class='add'>+	0x119e1, 0x119e1,</div><div class='add'>+	0x119e3, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a32,</div><div class='add'>+	0x11a35, 0x11a3e,</div><div class='add'>+	0x11a50, 0x11a97,</div><div class='add'>+	0x11a9d, 0x11a9d,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c3e,</div><div class='add'>+	0x11c40, 0x11c40,</div><div class='add'>+	0x11c50, 0x11c59,</div><div class='add'>+	0x11c72, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d41,</div><div class='add'>+	0x11d43, 0x11d43,</div><div class='add'>+	0x11d46, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d96,</div><div class='add'>+	0x11d98, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef6,</div><div class='add'>+	0x11f00, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f40,</div><div class='add'>+	0x11f50, 0x11f59,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff0,</div><div class='add'>+	0x13000, 0x1342f,</div><div class='add'>+	0x13441, 0x13446,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a70, 0x16abe,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16b00, 0x16b2f,</div><div class='add'>+	0x16b40, 0x16b43,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e7f,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x16fe3, 0x16fe3,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9e, 0x1bc9e,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6fa,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d734,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d76e,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d7a8,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e137, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14e,</div><div class='add'>+	0x1e290, 0x1e2ad,</div><div class='add'>+	0x1e2c0, 0x1e2eb,</div><div class='add'>+	0x1e2f0, 0x1e2f9,</div><div class='add'>+	0x1e4d0, 0x1e4eb,</div><div class='add'>+	0x1e4f0, 0x1e4f9,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e900, 0x1e943,</div><div class='add'>+	0x1e947, 0x1e947,</div><div class='add'>+	0x1e94b, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1f130, 0x1f149,</div><div class='add'>+	0x1f150, 0x1f169,</div><div class='add'>+	0x1f170, 0x1f189,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+}; /* CR_Alnum */</div><div class='add'>+</div><div class='add'>+/* 'ASCII': [[:ASCII:]] */</div><div class='add'>+static const OnigCodePoint CR_ASCII[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0000, 0x007f,</div><div class='add'>+}; /* CR_ASCII */</div><div class='add'>+</div><div class='add'>+/* 'Punct' */</div><div class='add'>+static const OnigCodePoint CR_Punct[] = {</div><div class='add'>+	191,</div><div class='add'>+	0x0021, 0x0023,</div><div class='add'>+	0x0025, 0x002a,</div><div class='add'>+	0x002c, 0x002f,</div><div class='add'>+	0x003a, 0x003b,</div><div class='add'>+	0x003f, 0x0040,</div><div class='add'>+	0x005b, 0x005d,</div><div class='add'>+	0x005f, 0x005f,</div><div class='add'>+	0x007b, 0x007b,</div><div class='add'>+	0x007d, 0x007d,</div><div class='add'>+	0x00a1, 0x00a1,</div><div class='add'>+	0x00a7, 0x00a7,</div><div class='add'>+	0x00ab, 0x00ab,</div><div class='add'>+	0x00b6, 0x00b7,</div><div class='add'>+	0x00bb, 0x00bb,</div><div class='add'>+	0x00bf, 0x00bf,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0387, 0x0387,</div><div class='add'>+	0x055a, 0x055f,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x05be, 0x05be,</div><div class='add'>+	0x05c0, 0x05c0,</div><div class='add'>+	0x05c3, 0x05c3,</div><div class='add'>+	0x05c6, 0x05c6,</div><div class='add'>+	0x05f3, 0x05f4,</div><div class='add'>+	0x0609, 0x060a,</div><div class='add'>+	0x060c, 0x060d,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061d, 0x061f,</div><div class='add'>+	0x066a, 0x066d,</div><div class='add'>+	0x06d4, 0x06d4,</div><div class='add'>+	0x0700, 0x070d,</div><div class='add'>+	0x07f7, 0x07f9,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0964, 0x0965,</div><div class='add'>+	0x0970, 0x0970,</div><div class='add'>+	0x09fd, 0x09fd,</div><div class='add'>+	0x0a76, 0x0a76,</div><div class='add'>+	0x0af0, 0x0af0,</div><div class='add'>+	0x0c77, 0x0c77,</div><div class='add'>+	0x0c84, 0x0c84,</div><div class='add'>+	0x0df4, 0x0df4,</div><div class='add'>+	0x0e4f, 0x0e4f,</div><div class='add'>+	0x0e5a, 0x0e5b,</div><div class='add'>+	0x0f04, 0x0f12,</div><div class='add'>+	0x0f14, 0x0f14,</div><div class='add'>+	0x0f3a, 0x0f3d,</div><div class='add'>+	0x0f85, 0x0f85,</div><div class='add'>+	0x0fd0, 0x0fd4,</div><div class='add'>+	0x0fd9, 0x0fda,</div><div class='add'>+	0x104a, 0x104f,</div><div class='add'>+	0x10fb, 0x10fb,</div><div class='add'>+	0x1360, 0x1368,</div><div class='add'>+	0x1400, 0x1400,</div><div class='add'>+	0x166e, 0x166e,</div><div class='add'>+	0x169b, 0x169c,</div><div class='add'>+	0x16eb, 0x16ed,</div><div class='add'>+	0x1735, 0x1736,</div><div class='add'>+	0x17d4, 0x17d6,</div><div class='add'>+	0x17d8, 0x17da,</div><div class='add'>+	0x1800, 0x180a,</div><div class='add'>+	0x1944, 0x1945,</div><div class='add'>+	0x1a1e, 0x1a1f,</div><div class='add'>+	0x1aa0, 0x1aa6,</div><div class='add'>+	0x1aa8, 0x1aad,</div><div class='add'>+	0x1b5a, 0x1b60,</div><div class='add'>+	0x1b7d, 0x1b7e,</div><div class='add'>+	0x1bfc, 0x1bff,</div><div class='add'>+	0x1c3b, 0x1c3f,</div><div class='add'>+	0x1c7e, 0x1c7f,</div><div class='add'>+	0x1cc0, 0x1cc7,</div><div class='add'>+	0x1cd3, 0x1cd3,</div><div class='add'>+	0x2010, 0x2027,</div><div class='add'>+	0x2030, 0x2043,</div><div class='add'>+	0x2045, 0x2051,</div><div class='add'>+	0x2053, 0x205e,</div><div class='add'>+	0x207d, 0x207e,</div><div class='add'>+	0x208d, 0x208e,</div><div class='add'>+	0x2308, 0x230b,</div><div class='add'>+	0x2329, 0x232a,</div><div class='add'>+	0x2768, 0x2775,</div><div class='add'>+	0x27c5, 0x27c6,</div><div class='add'>+	0x27e6, 0x27ef,</div><div class='add'>+	0x2983, 0x2998,</div><div class='add'>+	0x29d8, 0x29db,</div><div class='add'>+	0x29fc, 0x29fd,</div><div class='add'>+	0x2cf9, 0x2cfc,</div><div class='add'>+	0x2cfe, 0x2cff,</div><div class='add'>+	0x2d70, 0x2d70,</div><div class='add'>+	0x2e00, 0x2e2e,</div><div class='add'>+	0x2e30, 0x2e4f,</div><div class='add'>+	0x2e52, 0x2e5d,</div><div class='add'>+	0x3001, 0x3003,</div><div class='add'>+	0x3008, 0x3011,</div><div class='add'>+	0x3014, 0x301f,</div><div class='add'>+	0x3030, 0x3030,</div><div class='add'>+	0x303d, 0x303d,</div><div class='add'>+	0x30a0, 0x30a0,</div><div class='add'>+	0x30fb, 0x30fb,</div><div class='add'>+	0xa4fe, 0xa4ff,</div><div class='add'>+	0xa60d, 0xa60f,</div><div class='add'>+	0xa673, 0xa673,</div><div class='add'>+	0xa67e, 0xa67e,</div><div class='add'>+	0xa6f2, 0xa6f7,</div><div class='add'>+	0xa874, 0xa877,</div><div class='add'>+	0xa8ce, 0xa8cf,</div><div class='add'>+	0xa8f8, 0xa8fa,</div><div class='add'>+	0xa8fc, 0xa8fc,</div><div class='add'>+	0xa92e, 0xa92f,</div><div class='add'>+	0xa95f, 0xa95f,</div><div class='add'>+	0xa9c1, 0xa9cd,</div><div class='add'>+	0xa9de, 0xa9df,</div><div class='add'>+	0xaa5c, 0xaa5f,</div><div class='add'>+	0xaade, 0xaadf,</div><div class='add'>+	0xaaf0, 0xaaf1,</div><div class='add'>+	0xabeb, 0xabeb,</div><div class='add'>+	0xfd3e, 0xfd3f,</div><div class='add'>+	0xfe10, 0xfe19,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe61,</div><div class='add'>+	0xfe63, 0xfe63,</div><div class='add'>+	0xfe68, 0xfe68,</div><div class='add'>+	0xfe6a, 0xfe6b,</div><div class='add'>+	0xff01, 0xff03,</div><div class='add'>+	0xff05, 0xff0a,</div><div class='add'>+	0xff0c, 0xff0f,</div><div class='add'>+	0xff1a, 0xff1b,</div><div class='add'>+	0xff1f, 0xff20,</div><div class='add'>+	0xff3b, 0xff3d,</div><div class='add'>+	0xff3f, 0xff3f,</div><div class='add'>+	0xff5b, 0xff5b,</div><div class='add'>+	0xff5d, 0xff5d,</div><div class='add'>+	0xff5f, 0xff65,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x1039f, 0x1039f,</div><div class='add'>+	0x103d0, 0x103d0,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+	0x10857, 0x10857,</div><div class='add'>+	0x1091f, 0x1091f,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a7f, 0x10a7f,</div><div class='add'>+	0x10af0, 0x10af6,</div><div class='add'>+	0x10b39, 0x10b3f,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ead, 0x10ead,</div><div class='add'>+	0x10f55, 0x10f59,</div><div class='add'>+	0x10f86, 0x10f89,</div><div class='add'>+	0x11047, 0x1104d,</div><div class='add'>+	0x110bb, 0x110bc,</div><div class='add'>+	0x110be, 0x110c1,</div><div class='add'>+	0x11140, 0x11143,</div><div class='add'>+	0x11174, 0x11175,</div><div class='add'>+	0x111c5, 0x111c8,</div><div class='add'>+	0x111cd, 0x111cd,</div><div class='add'>+	0x111db, 0x111db,</div><div class='add'>+	0x111dd, 0x111df,</div><div class='add'>+	0x11238, 0x1123d,</div><div class='add'>+	0x112a9, 0x112a9,</div><div class='add'>+	0x1144b, 0x1144f,</div><div class='add'>+	0x1145a, 0x1145b,</div><div class='add'>+	0x1145d, 0x1145d,</div><div class='add'>+	0x114c6, 0x114c6,</div><div class='add'>+	0x115c1, 0x115d7,</div><div class='add'>+	0x11641, 0x11643,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x116b9, 0x116b9,</div><div class='add'>+	0x1173c, 0x1173e,</div><div class='add'>+	0x1183b, 0x1183b,</div><div class='add'>+	0x11944, 0x11946,</div><div class='add'>+	0x119e2, 0x119e2,</div><div class='add'>+	0x11a3f, 0x11a46,</div><div class='add'>+	0x11a9a, 0x11a9c,</div><div class='add'>+	0x11a9e, 0x11aa2,</div><div class='add'>+	0x11b00, 0x11b09,</div><div class='add'>+	0x11c41, 0x11c45,</div><div class='add'>+	0x11c70, 0x11c71,</div><div class='add'>+	0x11ef7, 0x11ef8,</div><div class='add'>+	0x11f43, 0x11f4f,</div><div class='add'>+	0x11fff, 0x11fff,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12ff1, 0x12ff2,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16af5, 0x16af5,</div><div class='add'>+	0x16b37, 0x16b3b,</div><div class='add'>+	0x16b44, 0x16b44,</div><div class='add'>+	0x16e97, 0x16e9a,</div><div class='add'>+	0x16fe2, 0x16fe2,</div><div class='add'>+	0x1bc9f, 0x1bc9f,</div><div class='add'>+	0x1da87, 0x1da8b,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+}; /* CR_Punct */</div><div class='add'>+</div><div class='add'>+#ifdef USE_UNICODE_PROPERTIES</div><div class='add'>+/* 'Any': - */</div><div class='add'>+static const OnigCodePoint CR_Any[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0000, 0x10ffff,</div><div class='add'>+}; /* CR_Any */</div><div class='add'>+</div><div class='add'>+/* 'Assigned': - */</div><div class='add'>+static const OnigCodePoint CR_Assigned[] = {</div><div class='add'>+	707,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f4,</div><div class='add'>+	0x0600, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x07fd, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x088e,</div><div class='add'>+	0x0890, 0x0891,</div><div class='add'>+	0x0898, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a76,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3c, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c77, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf3,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x1715,</div><div class='add'>+	0x171f, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b4c,</div><div class='add'>+	0x1b50, 0x1b7e,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20c0,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b97, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e5d,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa82c,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab6b,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc2,</div><div class='add'>+	0xfbd3, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdcf, 0xfdcf,</div><div class='add'>+	0xfdf0, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0xfffd,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019c,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a48,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10ead,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10efd, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f59,</div><div class='add'>+	0x10f70, 0x10f89,</div><div class='add'>+	0x10fb0, 0x10fcb,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x11075,</div><div class='add'>+	0x1107f, 0x110c2,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11147,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x11241,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x1145b,</div><div class='add'>+	0x1145d, 0x11461,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116b9,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x11746,</div><div class='add'>+	0x11800, 0x1183b,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x11946,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a47,</div><div class='add'>+	0x11a50, 0x11aa2,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11b00, 0x11b09,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef8,</div><div class='add'>+	0x11f00, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f59,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x11fc0, 0x11ff1,</div><div class='add'>+	0x11fff, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff2,</div><div class='add'>+	0x13000, 0x13455,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16abe,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e9a,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe4,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1cf50, 0x1cfc3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1ea,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d2c0, 0x1d2d3,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14f,</div><div class='add'>+	0x1e290, 0x1e2ae,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+	0x1e4d0, 0x1e4f9,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ec71, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed3d,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f1ad,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d7,</div><div class='add'>+	0x1f6dc, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fc,</div><div class='add'>+	0x1f700, 0x1f776,</div><div class='add'>+	0x1f77b, 0x1f7d9,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f7f0, 0x1f7f0,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f8b0, 0x1f8b1,</div><div class='add'>+	0x1f900, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa7c,</div><div class='add'>+	0x1fa80, 0x1fa88,</div><div class='add'>+	0x1fa90, 0x1fabd,</div><div class='add'>+	0x1fabf, 0x1fac5,</div><div class='add'>+	0x1face, 0x1fadb,</div><div class='add'>+	0x1fae0, 0x1fae8,</div><div class='add'>+	0x1faf0, 0x1faf8,</div><div class='add'>+	0x1fb00, 0x1fb92,</div><div class='add'>+	0x1fb94, 0x1fbca,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xf0000, 0xffffd,</div><div class='add'>+	0x100000, 0x10fffd,</div><div class='add'>+}; /* CR_Assigned */</div><div class='add'>+</div><div class='add'>+/* 'C': Major Category */</div><div class='add'>+static const OnigCodePoint CR_C[] = {</div><div class='add'>+	712,</div><div class='add'>+	0x0000, 0x001f,</div><div class='add'>+	0x007f, 0x009f,</div><div class='add'>+	0x00ad, 0x00ad,</div><div class='add'>+	0x0378, 0x0379,</div><div class='add'>+	0x0380, 0x0383,</div><div class='add'>+	0x038b, 0x038b,</div><div class='add'>+	0x038d, 0x038d,</div><div class='add'>+	0x03a2, 0x03a2,</div><div class='add'>+	0x0530, 0x0530,</div><div class='add'>+	0x0557, 0x0558,</div><div class='add'>+	0x058b, 0x058c,</div><div class='add'>+	0x0590, 0x0590,</div><div class='add'>+	0x05c8, 0x05cf,</div><div class='add'>+	0x05eb, 0x05ee,</div><div class='add'>+	0x05f5, 0x0605,</div><div class='add'>+	0x061c, 0x061c,</div><div class='add'>+	0x06dd, 0x06dd,</div><div class='add'>+	0x070e, 0x070f,</div><div class='add'>+	0x074b, 0x074c,</div><div class='add'>+	0x07b2, 0x07bf,</div><div class='add'>+	0x07fb, 0x07fc,</div><div class='add'>+	0x082e, 0x082f,</div><div class='add'>+	0x083f, 0x083f,</div><div class='add'>+	0x085c, 0x085d,</div><div class='add'>+	0x085f, 0x085f,</div><div class='add'>+	0x086b, 0x086f,</div><div class='add'>+	0x088f, 0x0897,</div><div class='add'>+	0x08e2, 0x08e2,</div><div class='add'>+	0x0984, 0x0984,</div><div class='add'>+	0x098d, 0x098e,</div><div class='add'>+	0x0991, 0x0992,</div><div class='add'>+	0x09a9, 0x09a9,</div><div class='add'>+	0x09b1, 0x09b1,</div><div class='add'>+	0x09b3, 0x09b5,</div><div class='add'>+	0x09ba, 0x09bb,</div><div class='add'>+	0x09c5, 0x09c6,</div><div class='add'>+	0x09c9, 0x09ca,</div><div class='add'>+	0x09cf, 0x09d6,</div><div class='add'>+	0x09d8, 0x09db,</div><div class='add'>+	0x09de, 0x09de,</div><div class='add'>+	0x09e4, 0x09e5,</div><div class='add'>+	0x09ff, 0x0a00,</div><div class='add'>+	0x0a04, 0x0a04,</div><div class='add'>+	0x0a0b, 0x0a0e,</div><div class='add'>+	0x0a11, 0x0a12,</div><div class='add'>+	0x0a29, 0x0a29,</div><div class='add'>+	0x0a31, 0x0a31,</div><div class='add'>+	0x0a34, 0x0a34,</div><div class='add'>+	0x0a37, 0x0a37,</div><div class='add'>+	0x0a3a, 0x0a3b,</div><div class='add'>+	0x0a3d, 0x0a3d,</div><div class='add'>+	0x0a43, 0x0a46,</div><div class='add'>+	0x0a49, 0x0a4a,</div><div class='add'>+	0x0a4e, 0x0a50,</div><div class='add'>+	0x0a52, 0x0a58,</div><div class='add'>+	0x0a5d, 0x0a5d,</div><div class='add'>+	0x0a5f, 0x0a65,</div><div class='add'>+	0x0a77, 0x0a80,</div><div class='add'>+	0x0a84, 0x0a84,</div><div class='add'>+	0x0a8e, 0x0a8e,</div><div class='add'>+	0x0a92, 0x0a92,</div><div class='add'>+	0x0aa9, 0x0aa9,</div><div class='add'>+	0x0ab1, 0x0ab1,</div><div class='add'>+	0x0ab4, 0x0ab4,</div><div class='add'>+	0x0aba, 0x0abb,</div><div class='add'>+	0x0ac6, 0x0ac6,</div><div class='add'>+	0x0aca, 0x0aca,</div><div class='add'>+	0x0ace, 0x0acf,</div><div class='add'>+	0x0ad1, 0x0adf,</div><div class='add'>+	0x0ae4, 0x0ae5,</div><div class='add'>+	0x0af2, 0x0af8,</div><div class='add'>+	0x0b00, 0x0b00,</div><div class='add'>+	0x0b04, 0x0b04,</div><div class='add'>+	0x0b0d, 0x0b0e,</div><div class='add'>+	0x0b11, 0x0b12,</div><div class='add'>+	0x0b29, 0x0b29,</div><div class='add'>+	0x0b31, 0x0b31,</div><div class='add'>+	0x0b34, 0x0b34,</div><div class='add'>+	0x0b3a, 0x0b3b,</div><div class='add'>+	0x0b45, 0x0b46,</div><div class='add'>+	0x0b49, 0x0b4a,</div><div class='add'>+	0x0b4e, 0x0b54,</div><div class='add'>+	0x0b58, 0x0b5b,</div><div class='add'>+	0x0b5e, 0x0b5e,</div><div class='add'>+	0x0b64, 0x0b65,</div><div class='add'>+	0x0b78, 0x0b81,</div><div class='add'>+	0x0b84, 0x0b84,</div><div class='add'>+	0x0b8b, 0x0b8d,</div><div class='add'>+	0x0b91, 0x0b91,</div><div class='add'>+	0x0b96, 0x0b98,</div><div class='add'>+	0x0b9b, 0x0b9b,</div><div class='add'>+	0x0b9d, 0x0b9d,</div><div class='add'>+	0x0ba0, 0x0ba2,</div><div class='add'>+	0x0ba5, 0x0ba7,</div><div class='add'>+	0x0bab, 0x0bad,</div><div class='add'>+	0x0bba, 0x0bbd,</div><div class='add'>+	0x0bc3, 0x0bc5,</div><div class='add'>+	0x0bc9, 0x0bc9,</div><div class='add'>+	0x0bce, 0x0bcf,</div><div class='add'>+	0x0bd1, 0x0bd6,</div><div class='add'>+	0x0bd8, 0x0be5,</div><div class='add'>+	0x0bfb, 0x0bff,</div><div class='add'>+	0x0c0d, 0x0c0d,</div><div class='add'>+	0x0c11, 0x0c11,</div><div class='add'>+	0x0c29, 0x0c29,</div><div class='add'>+	0x0c3a, 0x0c3b,</div><div class='add'>+	0x0c45, 0x0c45,</div><div class='add'>+	0x0c49, 0x0c49,</div><div class='add'>+	0x0c4e, 0x0c54,</div><div class='add'>+	0x0c57, 0x0c57,</div><div class='add'>+	0x0c5b, 0x0c5c,</div><div class='add'>+	0x0c5e, 0x0c5f,</div><div class='add'>+	0x0c64, 0x0c65,</div><div class='add'>+	0x0c70, 0x0c76,</div><div class='add'>+	0x0c8d, 0x0c8d,</div><div class='add'>+	0x0c91, 0x0c91,</div><div class='add'>+	0x0ca9, 0x0ca9,</div><div class='add'>+	0x0cb4, 0x0cb4,</div><div class='add'>+	0x0cba, 0x0cbb,</div><div class='add'>+	0x0cc5, 0x0cc5,</div><div class='add'>+	0x0cc9, 0x0cc9,</div><div class='add'>+	0x0cce, 0x0cd4,</div><div class='add'>+	0x0cd7, 0x0cdc,</div><div class='add'>+	0x0cdf, 0x0cdf,</div><div class='add'>+	0x0ce4, 0x0ce5,</div><div class='add'>+	0x0cf0, 0x0cf0,</div><div class='add'>+	0x0cf4, 0x0cff,</div><div class='add'>+	0x0d0d, 0x0d0d,</div><div class='add'>+	0x0d11, 0x0d11,</div><div class='add'>+	0x0d45, 0x0d45,</div><div class='add'>+	0x0d49, 0x0d49,</div><div class='add'>+	0x0d50, 0x0d53,</div><div class='add'>+	0x0d64, 0x0d65,</div><div class='add'>+	0x0d80, 0x0d80,</div><div class='add'>+	0x0d84, 0x0d84,</div><div class='add'>+	0x0d97, 0x0d99,</div><div class='add'>+	0x0db2, 0x0db2,</div><div class='add'>+	0x0dbc, 0x0dbc,</div><div class='add'>+	0x0dbe, 0x0dbf,</div><div class='add'>+	0x0dc7, 0x0dc9,</div><div class='add'>+	0x0dcb, 0x0dce,</div><div class='add'>+	0x0dd5, 0x0dd5,</div><div class='add'>+	0x0dd7, 0x0dd7,</div><div class='add'>+	0x0de0, 0x0de5,</div><div class='add'>+	0x0df0, 0x0df1,</div><div class='add'>+	0x0df5, 0x0e00,</div><div class='add'>+	0x0e3b, 0x0e3e,</div><div class='add'>+	0x0e5c, 0x0e80,</div><div class='add'>+	0x0e83, 0x0e83,</div><div class='add'>+	0x0e85, 0x0e85,</div><div class='add'>+	0x0e8b, 0x0e8b,</div><div class='add'>+	0x0ea4, 0x0ea4,</div><div class='add'>+	0x0ea6, 0x0ea6,</div><div class='add'>+	0x0ebe, 0x0ebf,</div><div class='add'>+	0x0ec5, 0x0ec5,</div><div class='add'>+	0x0ec7, 0x0ec7,</div><div class='add'>+	0x0ecf, 0x0ecf,</div><div class='add'>+	0x0eda, 0x0edb,</div><div class='add'>+	0x0ee0, 0x0eff,</div><div class='add'>+	0x0f48, 0x0f48,</div><div class='add'>+	0x0f6d, 0x0f70,</div><div class='add'>+	0x0f98, 0x0f98,</div><div class='add'>+	0x0fbd, 0x0fbd,</div><div class='add'>+	0x0fcd, 0x0fcd,</div><div class='add'>+	0x0fdb, 0x0fff,</div><div class='add'>+	0x10c6, 0x10c6,</div><div class='add'>+	0x10c8, 0x10cc,</div><div class='add'>+	0x10ce, 0x10cf,</div><div class='add'>+	0x1249, 0x1249,</div><div class='add'>+	0x124e, 0x124f,</div><div class='add'>+	0x1257, 0x1257,</div><div class='add'>+	0x1259, 0x1259,</div><div class='add'>+	0x125e, 0x125f,</div><div class='add'>+	0x1289, 0x1289,</div><div class='add'>+	0x128e, 0x128f,</div><div class='add'>+	0x12b1, 0x12b1,</div><div class='add'>+	0x12b6, 0x12b7,</div><div class='add'>+	0x12bf, 0x12bf,</div><div class='add'>+	0x12c1, 0x12c1,</div><div class='add'>+	0x12c6, 0x12c7,</div><div class='add'>+	0x12d7, 0x12d7,</div><div class='add'>+	0x1311, 0x1311,</div><div class='add'>+	0x1316, 0x1317,</div><div class='add'>+	0x135b, 0x135c,</div><div class='add'>+	0x137d, 0x137f,</div><div class='add'>+	0x139a, 0x139f,</div><div class='add'>+	0x13f6, 0x13f7,</div><div class='add'>+	0x13fe, 0x13ff,</div><div class='add'>+	0x169d, 0x169f,</div><div class='add'>+	0x16f9, 0x16ff,</div><div class='add'>+	0x1716, 0x171e,</div><div class='add'>+	0x1737, 0x173f,</div><div class='add'>+	0x1754, 0x175f,</div><div class='add'>+	0x176d, 0x176d,</div><div class='add'>+	0x1771, 0x1771,</div><div class='add'>+	0x1774, 0x177f,</div><div class='add'>+	0x17de, 0x17df,</div><div class='add'>+	0x17ea, 0x17ef,</div><div class='add'>+	0x17fa, 0x17ff,</div><div class='add'>+	0x180e, 0x180e,</div><div class='add'>+	0x181a, 0x181f,</div><div class='add'>+	0x1879, 0x187f,</div><div class='add'>+	0x18ab, 0x18af,</div><div class='add'>+	0x18f6, 0x18ff,</div><div class='add'>+	0x191f, 0x191f,</div><div class='add'>+	0x192c, 0x192f,</div><div class='add'>+	0x193c, 0x193f,</div><div class='add'>+	0x1941, 0x1943,</div><div class='add'>+	0x196e, 0x196f,</div><div class='add'>+	0x1975, 0x197f,</div><div class='add'>+	0x19ac, 0x19af,</div><div class='add'>+	0x19ca, 0x19cf,</div><div class='add'>+	0x19db, 0x19dd,</div><div class='add'>+	0x1a1c, 0x1a1d,</div><div class='add'>+	0x1a5f, 0x1a5f,</div><div class='add'>+	0x1a7d, 0x1a7e,</div><div class='add'>+	0x1a8a, 0x1a8f,</div><div class='add'>+	0x1a9a, 0x1a9f,</div><div class='add'>+	0x1aae, 0x1aaf,</div><div class='add'>+	0x1acf, 0x1aff,</div><div class='add'>+	0x1b4d, 0x1b4f,</div><div class='add'>+	0x1b7f, 0x1b7f,</div><div class='add'>+	0x1bf4, 0x1bfb,</div><div class='add'>+	0x1c38, 0x1c3a,</div><div class='add'>+	0x1c4a, 0x1c4c,</div><div class='add'>+	0x1c89, 0x1c8f,</div><div class='add'>+	0x1cbb, 0x1cbc,</div><div class='add'>+	0x1cc8, 0x1ccf,</div><div class='add'>+	0x1cfb, 0x1cff,</div><div class='add'>+	0x1f16, 0x1f17,</div><div class='add'>+	0x1f1e, 0x1f1f,</div><div class='add'>+	0x1f46, 0x1f47,</div><div class='add'>+	0x1f4e, 0x1f4f,</div><div class='add'>+	0x1f58, 0x1f58,</div><div class='add'>+	0x1f5a, 0x1f5a,</div><div class='add'>+	0x1f5c, 0x1f5c,</div><div class='add'>+	0x1f5e, 0x1f5e,</div><div class='add'>+	0x1f7e, 0x1f7f,</div><div class='add'>+	0x1fb5, 0x1fb5,</div><div class='add'>+	0x1fc5, 0x1fc5,</div><div class='add'>+	0x1fd4, 0x1fd5,</div><div class='add'>+	0x1fdc, 0x1fdc,</div><div class='add'>+	0x1ff0, 0x1ff1,</div><div class='add'>+	0x1ff5, 0x1ff5,</div><div class='add'>+	0x1fff, 0x1fff,</div><div class='add'>+	0x200b, 0x200f,</div><div class='add'>+	0x202a, 0x202e,</div><div class='add'>+	0x2060, 0x206f,</div><div class='add'>+	0x2072, 0x2073,</div><div class='add'>+	0x208f, 0x208f,</div><div class='add'>+	0x209d, 0x209f,</div><div class='add'>+	0x20c1, 0x20cf,</div><div class='add'>+	0x20f1, 0x20ff,</div><div class='add'>+	0x218c, 0x218f,</div><div class='add'>+	0x2427, 0x243f,</div><div class='add'>+	0x244b, 0x245f,</div><div class='add'>+	0x2b74, 0x2b75,</div><div class='add'>+	0x2b96, 0x2b96,</div><div class='add'>+	0x2cf4, 0x2cf8,</div><div class='add'>+	0x2d26, 0x2d26,</div><div class='add'>+	0x2d28, 0x2d2c,</div><div class='add'>+	0x2d2e, 0x2d2f,</div><div class='add'>+	0x2d68, 0x2d6e,</div><div class='add'>+	0x2d71, 0x2d7e,</div><div class='add'>+	0x2d97, 0x2d9f,</div><div class='add'>+	0x2da7, 0x2da7,</div><div class='add'>+	0x2daf, 0x2daf,</div><div class='add'>+	0x2db7, 0x2db7,</div><div class='add'>+	0x2dbf, 0x2dbf,</div><div class='add'>+	0x2dc7, 0x2dc7,</div><div class='add'>+	0x2dcf, 0x2dcf,</div><div class='add'>+	0x2dd7, 0x2dd7,</div><div class='add'>+	0x2ddf, 0x2ddf,</div><div class='add'>+	0x2e5e, 0x2e7f,</div><div class='add'>+	0x2e9a, 0x2e9a,</div><div class='add'>+	0x2ef4, 0x2eff,</div><div class='add'>+	0x2fd6, 0x2fef,</div><div class='add'>+	0x2ffc, 0x2fff,</div><div class='add'>+	0x3040, 0x3040,</div><div class='add'>+	0x3097, 0x3098,</div><div class='add'>+	0x3100, 0x3104,</div><div class='add'>+	0x3130, 0x3130,</div><div class='add'>+	0x318f, 0x318f,</div><div class='add'>+	0x31e4, 0x31ef,</div><div class='add'>+	0x321f, 0x321f,</div><div class='add'>+	0xa48d, 0xa48f,</div><div class='add'>+	0xa4c7, 0xa4cf,</div><div class='add'>+	0xa62c, 0xa63f,</div><div class='add'>+	0xa6f8, 0xa6ff,</div><div class='add'>+	0xa7cb, 0xa7cf,</div><div class='add'>+	0xa7d2, 0xa7d2,</div><div class='add'>+	0xa7d4, 0xa7d4,</div><div class='add'>+	0xa7da, 0xa7f1,</div><div class='add'>+	0xa82d, 0xa82f,</div><div class='add'>+	0xa83a, 0xa83f,</div><div class='add'>+	0xa878, 0xa87f,</div><div class='add'>+	0xa8c6, 0xa8cd,</div><div class='add'>+	0xa8da, 0xa8df,</div><div class='add'>+	0xa954, 0xa95e,</div><div class='add'>+	0xa97d, 0xa97f,</div><div class='add'>+	0xa9ce, 0xa9ce,</div><div class='add'>+	0xa9da, 0xa9dd,</div><div class='add'>+	0xa9ff, 0xa9ff,</div><div class='add'>+	0xaa37, 0xaa3f,</div><div class='add'>+	0xaa4e, 0xaa4f,</div><div class='add'>+	0xaa5a, 0xaa5b,</div><div class='add'>+	0xaac3, 0xaada,</div><div class='add'>+	0xaaf7, 0xab00,</div><div class='add'>+	0xab07, 0xab08,</div><div class='add'>+	0xab0f, 0xab10,</div><div class='add'>+	0xab17, 0xab1f,</div><div class='add'>+	0xab27, 0xab27,</div><div class='add'>+	0xab2f, 0xab2f,</div><div class='add'>+	0xab6c, 0xab6f,</div><div class='add'>+	0xabee, 0xabef,</div><div class='add'>+	0xabfa, 0xabff,</div><div class='add'>+	0xd7a4, 0xd7af,</div><div class='add'>+	0xd7c7, 0xd7ca,</div><div class='add'>+	0xd7fc, 0xf8ff,</div><div class='add'>+	0xfa6e, 0xfa6f,</div><div class='add'>+	0xfada, 0xfaff,</div><div class='add'>+	0xfb07, 0xfb12,</div><div class='add'>+	0xfb18, 0xfb1c,</div><div class='add'>+	0xfb37, 0xfb37,</div><div class='add'>+	0xfb3d, 0xfb3d,</div><div class='add'>+	0xfb3f, 0xfb3f,</div><div class='add'>+	0xfb42, 0xfb42,</div><div class='add'>+	0xfb45, 0xfb45,</div><div class='add'>+	0xfbc3, 0xfbd2,</div><div class='add'>+	0xfd90, 0xfd91,</div><div class='add'>+	0xfdc8, 0xfdce,</div><div class='add'>+	0xfdd0, 0xfdef,</div><div class='add'>+	0xfe1a, 0xfe1f,</div><div class='add'>+	0xfe53, 0xfe53,</div><div class='add'>+	0xfe67, 0xfe67,</div><div class='add'>+	0xfe6c, 0xfe6f,</div><div class='add'>+	0xfe75, 0xfe75,</div><div class='add'>+	0xfefd, 0xff00,</div><div class='add'>+	0xffbf, 0xffc1,</div><div class='add'>+	0xffc8, 0xffc9,</div><div class='add'>+	0xffd0, 0xffd1,</div><div class='add'>+	0xffd8, 0xffd9,</div><div class='add'>+	0xffdd, 0xffdf,</div><div class='add'>+	0xffe7, 0xffe7,</div><div class='add'>+	0xffef, 0xfffb,</div><div class='add'>+	0xfffe, 0xffff,</div><div class='add'>+	0x1000c, 0x1000c,</div><div class='add'>+	0x10027, 0x10027,</div><div class='add'>+	0x1003b, 0x1003b,</div><div class='add'>+	0x1003e, 0x1003e,</div><div class='add'>+	0x1004e, 0x1004f,</div><div class='add'>+	0x1005e, 0x1007f,</div><div class='add'>+	0x100fb, 0x100ff,</div><div class='add'>+	0x10103, 0x10106,</div><div class='add'>+	0x10134, 0x10136,</div><div class='add'>+	0x1018f, 0x1018f,</div><div class='add'>+	0x1019d, 0x1019f,</div><div class='add'>+	0x101a1, 0x101cf,</div><div class='add'>+	0x101fe, 0x1027f,</div><div class='add'>+	0x1029d, 0x1029f,</div><div class='add'>+	0x102d1, 0x102df,</div><div class='add'>+	0x102fc, 0x102ff,</div><div class='add'>+	0x10324, 0x1032c,</div><div class='add'>+	0x1034b, 0x1034f,</div><div class='add'>+	0x1037b, 0x1037f,</div><div class='add'>+	0x1039e, 0x1039e,</div><div class='add'>+	0x103c4, 0x103c7,</div><div class='add'>+	0x103d6, 0x103ff,</div><div class='add'>+	0x1049e, 0x1049f,</div><div class='add'>+	0x104aa, 0x104af,</div><div class='add'>+	0x104d4, 0x104d7,</div><div class='add'>+	0x104fc, 0x104ff,</div><div class='add'>+	0x10528, 0x1052f,</div><div class='add'>+	0x10564, 0x1056e,</div><div class='add'>+	0x1057b, 0x1057b,</div><div class='add'>+	0x1058b, 0x1058b,</div><div class='add'>+	0x10593, 0x10593,</div><div class='add'>+	0x10596, 0x10596,</div><div class='add'>+	0x105a2, 0x105a2,</div><div class='add'>+	0x105b2, 0x105b2,</div><div class='add'>+	0x105ba, 0x105ba,</div><div class='add'>+	0x105bd, 0x105ff,</div><div class='add'>+	0x10737, 0x1073f,</div><div class='add'>+	0x10756, 0x1075f,</div><div class='add'>+	0x10768, 0x1077f,</div><div class='add'>+	0x10786, 0x10786,</div><div class='add'>+	0x107b1, 0x107b1,</div><div class='add'>+	0x107bb, 0x107ff,</div><div class='add'>+	0x10806, 0x10807,</div><div class='add'>+	0x10809, 0x10809,</div><div class='add'>+	0x10836, 0x10836,</div><div class='add'>+	0x10839, 0x1083b,</div><div class='add'>+	0x1083d, 0x1083e,</div><div class='add'>+	0x10856, 0x10856,</div><div class='add'>+	0x1089f, 0x108a6,</div><div class='add'>+	0x108b0, 0x108df,</div><div class='add'>+	0x108f3, 0x108f3,</div><div class='add'>+	0x108f6, 0x108fa,</div><div class='add'>+	0x1091c, 0x1091e,</div><div class='add'>+	0x1093a, 0x1093e,</div><div class='add'>+	0x10940, 0x1097f,</div><div class='add'>+	0x109b8, 0x109bb,</div><div class='add'>+	0x109d0, 0x109d1,</div><div class='add'>+	0x10a04, 0x10a04,</div><div class='add'>+	0x10a07, 0x10a0b,</div><div class='add'>+	0x10a14, 0x10a14,</div><div class='add'>+	0x10a18, 0x10a18,</div><div class='add'>+	0x10a36, 0x10a37,</div><div class='add'>+	0x10a3b, 0x10a3e,</div><div class='add'>+	0x10a49, 0x10a4f,</div><div class='add'>+	0x10a59, 0x10a5f,</div><div class='add'>+	0x10aa0, 0x10abf,</div><div class='add'>+	0x10ae7, 0x10aea,</div><div class='add'>+	0x10af7, 0x10aff,</div><div class='add'>+	0x10b36, 0x10b38,</div><div class='add'>+	0x10b56, 0x10b57,</div><div class='add'>+	0x10b73, 0x10b77,</div><div class='add'>+	0x10b92, 0x10b98,</div><div class='add'>+	0x10b9d, 0x10ba8,</div><div class='add'>+	0x10bb0, 0x10bff,</div><div class='add'>+	0x10c49, 0x10c7f,</div><div class='add'>+	0x10cb3, 0x10cbf,</div><div class='add'>+	0x10cf3, 0x10cf9,</div><div class='add'>+	0x10d28, 0x10d2f,</div><div class='add'>+	0x10d3a, 0x10e5f,</div><div class='add'>+	0x10e7f, 0x10e7f,</div><div class='add'>+	0x10eaa, 0x10eaa,</div><div class='add'>+	0x10eae, 0x10eaf,</div><div class='add'>+	0x10eb2, 0x10efc,</div><div class='add'>+	0x10f28, 0x10f2f,</div><div class='add'>+	0x10f5a, 0x10f6f,</div><div class='add'>+	0x10f8a, 0x10faf,</div><div class='add'>+	0x10fcc, 0x10fdf,</div><div class='add'>+	0x10ff7, 0x10fff,</div><div class='add'>+	0x1104e, 0x11051,</div><div class='add'>+	0x11076, 0x1107e,</div><div class='add'>+	0x110bd, 0x110bd,</div><div class='add'>+	0x110c3, 0x110cf,</div><div class='add'>+	0x110e9, 0x110ef,</div><div class='add'>+	0x110fa, 0x110ff,</div><div class='add'>+	0x11135, 0x11135,</div><div class='add'>+	0x11148, 0x1114f,</div><div class='add'>+	0x11177, 0x1117f,</div><div class='add'>+	0x111e0, 0x111e0,</div><div class='add'>+	0x111f5, 0x111ff,</div><div class='add'>+	0x11212, 0x11212,</div><div class='add'>+	0x11242, 0x1127f,</div><div class='add'>+	0x11287, 0x11287,</div><div class='add'>+	0x11289, 0x11289,</div><div class='add'>+	0x1128e, 0x1128e,</div><div class='add'>+	0x1129e, 0x1129e,</div><div class='add'>+	0x112aa, 0x112af,</div><div class='add'>+	0x112eb, 0x112ef,</div><div class='add'>+	0x112fa, 0x112ff,</div><div class='add'>+	0x11304, 0x11304,</div><div class='add'>+	0x1130d, 0x1130e,</div><div class='add'>+	0x11311, 0x11312,</div><div class='add'>+	0x11329, 0x11329,</div><div class='add'>+	0x11331, 0x11331,</div><div class='add'>+	0x11334, 0x11334,</div><div class='add'>+	0x1133a, 0x1133a,</div><div class='add'>+	0x11345, 0x11346,</div><div class='add'>+	0x11349, 0x1134a,</div><div class='add'>+	0x1134e, 0x1134f,</div><div class='add'>+	0x11351, 0x11356,</div><div class='add'>+	0x11358, 0x1135c,</div><div class='add'>+	0x11364, 0x11365,</div><div class='add'>+	0x1136d, 0x1136f,</div><div class='add'>+	0x11375, 0x113ff,</div><div class='add'>+	0x1145c, 0x1145c,</div><div class='add'>+	0x11462, 0x1147f,</div><div class='add'>+	0x114c8, 0x114cf,</div><div class='add'>+	0x114da, 0x1157f,</div><div class='add'>+	0x115b6, 0x115b7,</div><div class='add'>+	0x115de, 0x115ff,</div><div class='add'>+	0x11645, 0x1164f,</div><div class='add'>+	0x1165a, 0x1165f,</div><div class='add'>+	0x1166d, 0x1167f,</div><div class='add'>+	0x116ba, 0x116bf,</div><div class='add'>+	0x116ca, 0x116ff,</div><div class='add'>+	0x1171b, 0x1171c,</div><div class='add'>+	0x1172c, 0x1172f,</div><div class='add'>+	0x11747, 0x117ff,</div><div class='add'>+	0x1183c, 0x1189f,</div><div class='add'>+	0x118f3, 0x118fe,</div><div class='add'>+	0x11907, 0x11908,</div><div class='add'>+	0x1190a, 0x1190b,</div><div class='add'>+	0x11914, 0x11914,</div><div class='add'>+	0x11917, 0x11917,</div><div class='add'>+	0x11936, 0x11936,</div><div class='add'>+	0x11939, 0x1193a,</div><div class='add'>+	0x11947, 0x1194f,</div><div class='add'>+	0x1195a, 0x1199f,</div><div class='add'>+	0x119a8, 0x119a9,</div><div class='add'>+	0x119d8, 0x119d9,</div><div class='add'>+	0x119e5, 0x119ff,</div><div class='add'>+	0x11a48, 0x11a4f,</div><div class='add'>+	0x11aa3, 0x11aaf,</div><div class='add'>+	0x11af9, 0x11aff,</div><div class='add'>+	0x11b0a, 0x11bff,</div><div class='add'>+	0x11c09, 0x11c09,</div><div class='add'>+	0x11c37, 0x11c37,</div><div class='add'>+	0x11c46, 0x11c4f,</div><div class='add'>+	0x11c6d, 0x11c6f,</div><div class='add'>+	0x11c90, 0x11c91,</div><div class='add'>+	0x11ca8, 0x11ca8,</div><div class='add'>+	0x11cb7, 0x11cff,</div><div class='add'>+	0x11d07, 0x11d07,</div><div class='add'>+	0x11d0a, 0x11d0a,</div><div class='add'>+	0x11d37, 0x11d39,</div><div class='add'>+	0x11d3b, 0x11d3b,</div><div class='add'>+	0x11d3e, 0x11d3e,</div><div class='add'>+	0x11d48, 0x11d4f,</div><div class='add'>+	0x11d5a, 0x11d5f,</div><div class='add'>+	0x11d66, 0x11d66,</div><div class='add'>+	0x11d69, 0x11d69,</div><div class='add'>+	0x11d8f, 0x11d8f,</div><div class='add'>+	0x11d92, 0x11d92,</div><div class='add'>+	0x11d99, 0x11d9f,</div><div class='add'>+	0x11daa, 0x11edf,</div><div class='add'>+	0x11ef9, 0x11eff,</div><div class='add'>+	0x11f11, 0x11f11,</div><div class='add'>+	0x11f3b, 0x11f3d,</div><div class='add'>+	0x11f5a, 0x11faf,</div><div class='add'>+	0x11fb1, 0x11fbf,</div><div class='add'>+	0x11ff2, 0x11ffe,</div><div class='add'>+	0x1239a, 0x123ff,</div><div class='add'>+	0x1246f, 0x1246f,</div><div class='add'>+	0x12475, 0x1247f,</div><div class='add'>+	0x12544, 0x12f8f,</div><div class='add'>+	0x12ff3, 0x12fff,</div><div class='add'>+	0x13430, 0x1343f,</div><div class='add'>+	0x13456, 0x143ff,</div><div class='add'>+	0x14647, 0x167ff,</div><div class='add'>+	0x16a39, 0x16a3f,</div><div class='add'>+	0x16a5f, 0x16a5f,</div><div class='add'>+	0x16a6a, 0x16a6d,</div><div class='add'>+	0x16abf, 0x16abf,</div><div class='add'>+	0x16aca, 0x16acf,</div><div class='add'>+	0x16aee, 0x16aef,</div><div class='add'>+	0x16af6, 0x16aff,</div><div class='add'>+	0x16b46, 0x16b4f,</div><div class='add'>+	0x16b5a, 0x16b5a,</div><div class='add'>+	0x16b62, 0x16b62,</div><div class='add'>+	0x16b78, 0x16b7c,</div><div class='add'>+	0x16b90, 0x16e3f,</div><div class='add'>+	0x16e9b, 0x16eff,</div><div class='add'>+	0x16f4b, 0x16f4e,</div><div class='add'>+	0x16f88, 0x16f8e,</div><div class='add'>+	0x16fa0, 0x16fdf,</div><div class='add'>+	0x16fe5, 0x16fef,</div><div class='add'>+	0x16ff2, 0x16fff,</div><div class='add'>+	0x187f8, 0x187ff,</div><div class='add'>+	0x18cd6, 0x18cff,</div><div class='add'>+	0x18d09, 0x1afef,</div><div class='add'>+	0x1aff4, 0x1aff4,</div><div class='add'>+	0x1affc, 0x1affc,</div><div class='add'>+	0x1afff, 0x1afff,</div><div class='add'>+	0x1b123, 0x1b131,</div><div class='add'>+	0x1b133, 0x1b14f,</div><div class='add'>+	0x1b153, 0x1b154,</div><div class='add'>+	0x1b156, 0x1b163,</div><div class='add'>+	0x1b168, 0x1b16f,</div><div class='add'>+	0x1b2fc, 0x1bbff,</div><div class='add'>+	0x1bc6b, 0x1bc6f,</div><div class='add'>+	0x1bc7d, 0x1bc7f,</div><div class='add'>+	0x1bc89, 0x1bc8f,</div><div class='add'>+	0x1bc9a, 0x1bc9b,</div><div class='add'>+	0x1bca0, 0x1ceff,</div><div class='add'>+	0x1cf2e, 0x1cf2f,</div><div class='add'>+	0x1cf47, 0x1cf4f,</div><div class='add'>+	0x1cfc4, 0x1cfff,</div><div class='add'>+	0x1d0f6, 0x1d0ff,</div><div class='add'>+	0x1d127, 0x1d128,</div><div class='add'>+	0x1d173, 0x1d17a,</div><div class='add'>+	0x1d1eb, 0x1d1ff,</div><div class='add'>+	0x1d246, 0x1d2bf,</div><div class='add'>+	0x1d2d4, 0x1d2df,</div><div class='add'>+	0x1d2f4, 0x1d2ff,</div><div class='add'>+	0x1d357, 0x1d35f,</div><div class='add'>+	0x1d379, 0x1d3ff,</div><div class='add'>+	0x1d455, 0x1d455,</div><div class='add'>+	0x1d49d, 0x1d49d,</div><div class='add'>+	0x1d4a0, 0x1d4a1,</div><div class='add'>+	0x1d4a3, 0x1d4a4,</div><div class='add'>+	0x1d4a7, 0x1d4a8,</div><div class='add'>+	0x1d4ad, 0x1d4ad,</div><div class='add'>+	0x1d4ba, 0x1d4ba,</div><div class='add'>+	0x1d4bc, 0x1d4bc,</div><div class='add'>+	0x1d4c4, 0x1d4c4,</div><div class='add'>+	0x1d506, 0x1d506,</div><div class='add'>+	0x1d50b, 0x1d50c,</div><div class='add'>+	0x1d515, 0x1d515,</div><div class='add'>+	0x1d51d, 0x1d51d,</div><div class='add'>+	0x1d53a, 0x1d53a,</div><div class='add'>+	0x1d53f, 0x1d53f,</div><div class='add'>+	0x1d545, 0x1d545,</div><div class='add'>+	0x1d547, 0x1d549,</div><div class='add'>+	0x1d551, 0x1d551,</div><div class='add'>+	0x1d6a6, 0x1d6a7,</div><div class='add'>+	0x1d7cc, 0x1d7cd,</div><div class='add'>+	0x1da8c, 0x1da9a,</div><div class='add'>+	0x1daa0, 0x1daa0,</div><div class='add'>+	0x1dab0, 0x1deff,</div><div class='add'>+	0x1df1f, 0x1df24,</div><div class='add'>+	0x1df2b, 0x1dfff,</div><div class='add'>+	0x1e007, 0x1e007,</div><div class='add'>+	0x1e019, 0x1e01a,</div><div class='add'>+	0x1e022, 0x1e022,</div><div class='add'>+	0x1e025, 0x1e025,</div><div class='add'>+	0x1e02b, 0x1e02f,</div><div class='add'>+	0x1e06e, 0x1e08e,</div><div class='add'>+	0x1e090, 0x1e0ff,</div><div class='add'>+	0x1e12d, 0x1e12f,</div><div class='add'>+	0x1e13e, 0x1e13f,</div><div class='add'>+	0x1e14a, 0x1e14d,</div><div class='add'>+	0x1e150, 0x1e28f,</div><div class='add'>+	0x1e2af, 0x1e2bf,</div><div class='add'>+	0x1e2fa, 0x1e2fe,</div><div class='add'>+	0x1e300, 0x1e4cf,</div><div class='add'>+	0x1e4fa, 0x1e7df,</div><div class='add'>+	0x1e7e7, 0x1e7e7,</div><div class='add'>+	0x1e7ec, 0x1e7ec,</div><div class='add'>+	0x1e7ef, 0x1e7ef,</div><div class='add'>+	0x1e7ff, 0x1e7ff,</div><div class='add'>+	0x1e8c5, 0x1e8c6,</div><div class='add'>+	0x1e8d7, 0x1e8ff,</div><div class='add'>+	0x1e94c, 0x1e94f,</div><div class='add'>+	0x1e95a, 0x1e95d,</div><div class='add'>+	0x1e960, 0x1ec70,</div><div class='add'>+	0x1ecb5, 0x1ed00,</div><div class='add'>+	0x1ed3e, 0x1edff,</div><div class='add'>+	0x1ee04, 0x1ee04,</div><div class='add'>+	0x1ee20, 0x1ee20,</div><div class='add'>+	0x1ee23, 0x1ee23,</div><div class='add'>+	0x1ee25, 0x1ee26,</div><div class='add'>+	0x1ee28, 0x1ee28,</div><div class='add'>+	0x1ee33, 0x1ee33,</div><div class='add'>+	0x1ee38, 0x1ee38,</div><div class='add'>+	0x1ee3a, 0x1ee3a,</div><div class='add'>+	0x1ee3c, 0x1ee41,</div><div class='add'>+	0x1ee43, 0x1ee46,</div><div class='add'>+	0x1ee48, 0x1ee48,</div><div class='add'>+	0x1ee4a, 0x1ee4a,</div><div class='add'>+	0x1ee4c, 0x1ee4c,</div><div class='add'>+	0x1ee50, 0x1ee50,</div><div class='add'>+	0x1ee53, 0x1ee53,</div><div class='add'>+	0x1ee55, 0x1ee56,</div><div class='add'>+	0x1ee58, 0x1ee58,</div><div class='add'>+	0x1ee5a, 0x1ee5a,</div><div class='add'>+	0x1ee5c, 0x1ee5c,</div><div class='add'>+	0x1ee5e, 0x1ee5e,</div><div class='add'>+	0x1ee60, 0x1ee60,</div><div class='add'>+	0x1ee63, 0x1ee63,</div><div class='add'>+	0x1ee65, 0x1ee66,</div><div class='add'>+	0x1ee6b, 0x1ee6b,</div><div class='add'>+	0x1ee73, 0x1ee73,</div><div class='add'>+	0x1ee78, 0x1ee78,</div><div class='add'>+	0x1ee7d, 0x1ee7d,</div><div class='add'>+	0x1ee7f, 0x1ee7f,</div><div class='add'>+	0x1ee8a, 0x1ee8a,</div><div class='add'>+	0x1ee9c, 0x1eea0,</div><div class='add'>+	0x1eea4, 0x1eea4,</div><div class='add'>+	0x1eeaa, 0x1eeaa,</div><div class='add'>+	0x1eebc, 0x1eeef,</div><div class='add'>+	0x1eef2, 0x1efff,</div><div class='add'>+	0x1f02c, 0x1f02f,</div><div class='add'>+	0x1f094, 0x1f09f,</div><div class='add'>+	0x1f0af, 0x1f0b0,</div><div class='add'>+	0x1f0c0, 0x1f0c0,</div><div class='add'>+	0x1f0d0, 0x1f0d0,</div><div class='add'>+	0x1f0f6, 0x1f0ff,</div><div class='add'>+	0x1f1ae, 0x1f1e5,</div><div class='add'>+	0x1f203, 0x1f20f,</div><div class='add'>+	0x1f23c, 0x1f23f,</div><div class='add'>+	0x1f249, 0x1f24f,</div><div class='add'>+	0x1f252, 0x1f25f,</div><div class='add'>+	0x1f266, 0x1f2ff,</div><div class='add'>+	0x1f6d8, 0x1f6db,</div><div class='add'>+	0x1f6ed, 0x1f6ef,</div><div class='add'>+	0x1f6fd, 0x1f6ff,</div><div class='add'>+	0x1f777, 0x1f77a,</div><div class='add'>+	0x1f7da, 0x1f7df,</div><div class='add'>+	0x1f7ec, 0x1f7ef,</div><div class='add'>+	0x1f7f1, 0x1f7ff,</div><div class='add'>+	0x1f80c, 0x1f80f,</div><div class='add'>+	0x1f848, 0x1f84f,</div><div class='add'>+	0x1f85a, 0x1f85f,</div><div class='add'>+	0x1f888, 0x1f88f,</div><div class='add'>+	0x1f8ae, 0x1f8af,</div><div class='add'>+	0x1f8b2, 0x1f8ff,</div><div class='add'>+	0x1fa54, 0x1fa5f,</div><div class='add'>+	0x1fa6e, 0x1fa6f,</div><div class='add'>+	0x1fa7d, 0x1fa7f,</div><div class='add'>+	0x1fa89, 0x1fa8f,</div><div class='add'>+	0x1fabe, 0x1fabe,</div><div class='add'>+	0x1fac6, 0x1facd,</div><div class='add'>+	0x1fadc, 0x1fadf,</div><div class='add'>+	0x1fae9, 0x1faef,</div><div class='add'>+	0x1faf9, 0x1faff,</div><div class='add'>+	0x1fb93, 0x1fb93,</div><div class='add'>+	0x1fbcb, 0x1fbef,</div><div class='add'>+	0x1fbfa, 0x1ffff,</div><div class='add'>+	0x2a6e0, 0x2a6ff,</div><div class='add'>+	0x2b73a, 0x2b73f,</div><div class='add'>+	0x2b81e, 0x2b81f,</div><div class='add'>+	0x2cea2, 0x2ceaf,</div><div class='add'>+	0x2ebe1, 0x2f7ff,</div><div class='add'>+	0x2fa1e, 0x2ffff,</div><div class='add'>+	0x3134b, 0x3134f,</div><div class='add'>+	0x323b0, 0xe00ff,</div><div class='add'>+	0xe01f0, 0x10ffff,</div><div class='add'>+}; /* CR_C */</div><div class='add'>+</div><div class='add'>+/* 'Cc': General Category */</div><div class='add'>+#define CR_Cc CR_Cntrl</div><div class='add'>+</div><div class='add'>+/* 'Cf': General Category */</div><div class='add'>+static const OnigCodePoint CR_Cf[] = {</div><div class='add'>+	21,</div><div class='add'>+	0x00ad, 0x00ad,</div><div class='add'>+	0x0600, 0x0605,</div><div class='add'>+	0x061c, 0x061c,</div><div class='add'>+	0x06dd, 0x06dd,</div><div class='add'>+	0x070f, 0x070f,</div><div class='add'>+	0x0890, 0x0891,</div><div class='add'>+	0x08e2, 0x08e2,</div><div class='add'>+	0x180e, 0x180e,</div><div class='add'>+	0x200b, 0x200f,</div><div class='add'>+	0x202a, 0x202e,</div><div class='add'>+	0x2060, 0x2064,</div><div class='add'>+	0x2066, 0x206f,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xfff9, 0xfffb,</div><div class='add'>+	0x110bd, 0x110bd,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x13430, 0x1343f,</div><div class='add'>+	0x1bca0, 0x1bca3,</div><div class='add'>+	0x1d173, 0x1d17a,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+}; /* CR_Cf */</div><div class='add'>+</div><div class='add'>+/* 'Cn': General Category */</div><div class='add'>+static const OnigCodePoint CR_Cn[] = {</div><div class='add'>+	707,</div><div class='add'>+	0x0378, 0x0379,</div><div class='add'>+	0x0380, 0x0383,</div><div class='add'>+	0x038b, 0x038b,</div><div class='add'>+	0x038d, 0x038d,</div><div class='add'>+	0x03a2, 0x03a2,</div><div class='add'>+	0x0530, 0x0530,</div><div class='add'>+	0x0557, 0x0558,</div><div class='add'>+	0x058b, 0x058c,</div><div class='add'>+	0x0590, 0x0590,</div><div class='add'>+	0x05c8, 0x05cf,</div><div class='add'>+	0x05eb, 0x05ee,</div><div class='add'>+	0x05f5, 0x05ff,</div><div class='add'>+	0x070e, 0x070e,</div><div class='add'>+	0x074b, 0x074c,</div><div class='add'>+	0x07b2, 0x07bf,</div><div class='add'>+	0x07fb, 0x07fc,</div><div class='add'>+	0x082e, 0x082f,</div><div class='add'>+	0x083f, 0x083f,</div><div class='add'>+	0x085c, 0x085d,</div><div class='add'>+	0x085f, 0x085f,</div><div class='add'>+	0x086b, 0x086f,</div><div class='add'>+	0x088f, 0x088f,</div><div class='add'>+	0x0892, 0x0897,</div><div class='add'>+	0x0984, 0x0984,</div><div class='add'>+	0x098d, 0x098e,</div><div class='add'>+	0x0991, 0x0992,</div><div class='add'>+	0x09a9, 0x09a9,</div><div class='add'>+	0x09b1, 0x09b1,</div><div class='add'>+	0x09b3, 0x09b5,</div><div class='add'>+	0x09ba, 0x09bb,</div><div class='add'>+	0x09c5, 0x09c6,</div><div class='add'>+	0x09c9, 0x09ca,</div><div class='add'>+	0x09cf, 0x09d6,</div><div class='add'>+	0x09d8, 0x09db,</div><div class='add'>+	0x09de, 0x09de,</div><div class='add'>+	0x09e4, 0x09e5,</div><div class='add'>+	0x09ff, 0x0a00,</div><div class='add'>+	0x0a04, 0x0a04,</div><div class='add'>+	0x0a0b, 0x0a0e,</div><div class='add'>+	0x0a11, 0x0a12,</div><div class='add'>+	0x0a29, 0x0a29,</div><div class='add'>+	0x0a31, 0x0a31,</div><div class='add'>+	0x0a34, 0x0a34,</div><div class='add'>+	0x0a37, 0x0a37,</div><div class='add'>+	0x0a3a, 0x0a3b,</div><div class='add'>+	0x0a3d, 0x0a3d,</div><div class='add'>+	0x0a43, 0x0a46,</div><div class='add'>+	0x0a49, 0x0a4a,</div><div class='add'>+	0x0a4e, 0x0a50,</div><div class='add'>+	0x0a52, 0x0a58,</div><div class='add'>+	0x0a5d, 0x0a5d,</div><div class='add'>+	0x0a5f, 0x0a65,</div><div class='add'>+	0x0a77, 0x0a80,</div><div class='add'>+	0x0a84, 0x0a84,</div><div class='add'>+	0x0a8e, 0x0a8e,</div><div class='add'>+	0x0a92, 0x0a92,</div><div class='add'>+	0x0aa9, 0x0aa9,</div><div class='add'>+	0x0ab1, 0x0ab1,</div><div class='add'>+	0x0ab4, 0x0ab4,</div><div class='add'>+	0x0aba, 0x0abb,</div><div class='add'>+	0x0ac6, 0x0ac6,</div><div class='add'>+	0x0aca, 0x0aca,</div><div class='add'>+	0x0ace, 0x0acf,</div><div class='add'>+	0x0ad1, 0x0adf,</div><div class='add'>+	0x0ae4, 0x0ae5,</div><div class='add'>+	0x0af2, 0x0af8,</div><div class='add'>+	0x0b00, 0x0b00,</div><div class='add'>+	0x0b04, 0x0b04,</div><div class='add'>+	0x0b0d, 0x0b0e,</div><div class='add'>+	0x0b11, 0x0b12,</div><div class='add'>+	0x0b29, 0x0b29,</div><div class='add'>+	0x0b31, 0x0b31,</div><div class='add'>+	0x0b34, 0x0b34,</div><div class='add'>+	0x0b3a, 0x0b3b,</div><div class='add'>+	0x0b45, 0x0b46,</div><div class='add'>+	0x0b49, 0x0b4a,</div><div class='add'>+	0x0b4e, 0x0b54,</div><div class='add'>+	0x0b58, 0x0b5b,</div><div class='add'>+	0x0b5e, 0x0b5e,</div><div class='add'>+	0x0b64, 0x0b65,</div><div class='add'>+	0x0b78, 0x0b81,</div><div class='add'>+	0x0b84, 0x0b84,</div><div class='add'>+	0x0b8b, 0x0b8d,</div><div class='add'>+	0x0b91, 0x0b91,</div><div class='add'>+	0x0b96, 0x0b98,</div><div class='add'>+	0x0b9b, 0x0b9b,</div><div class='add'>+	0x0b9d, 0x0b9d,</div><div class='add'>+	0x0ba0, 0x0ba2,</div><div class='add'>+	0x0ba5, 0x0ba7,</div><div class='add'>+	0x0bab, 0x0bad,</div><div class='add'>+	0x0bba, 0x0bbd,</div><div class='add'>+	0x0bc3, 0x0bc5,</div><div class='add'>+	0x0bc9, 0x0bc9,</div><div class='add'>+	0x0bce, 0x0bcf,</div><div class='add'>+	0x0bd1, 0x0bd6,</div><div class='add'>+	0x0bd8, 0x0be5,</div><div class='add'>+	0x0bfb, 0x0bff,</div><div class='add'>+	0x0c0d, 0x0c0d,</div><div class='add'>+	0x0c11, 0x0c11,</div><div class='add'>+	0x0c29, 0x0c29,</div><div class='add'>+	0x0c3a, 0x0c3b,</div><div class='add'>+	0x0c45, 0x0c45,</div><div class='add'>+	0x0c49, 0x0c49,</div><div class='add'>+	0x0c4e, 0x0c54,</div><div class='add'>+	0x0c57, 0x0c57,</div><div class='add'>+	0x0c5b, 0x0c5c,</div><div class='add'>+	0x0c5e, 0x0c5f,</div><div class='add'>+	0x0c64, 0x0c65,</div><div class='add'>+	0x0c70, 0x0c76,</div><div class='add'>+	0x0c8d, 0x0c8d,</div><div class='add'>+	0x0c91, 0x0c91,</div><div class='add'>+	0x0ca9, 0x0ca9,</div><div class='add'>+	0x0cb4, 0x0cb4,</div><div class='add'>+	0x0cba, 0x0cbb,</div><div class='add'>+	0x0cc5, 0x0cc5,</div><div class='add'>+	0x0cc9, 0x0cc9,</div><div class='add'>+	0x0cce, 0x0cd4,</div><div class='add'>+	0x0cd7, 0x0cdc,</div><div class='add'>+	0x0cdf, 0x0cdf,</div><div class='add'>+	0x0ce4, 0x0ce5,</div><div class='add'>+	0x0cf0, 0x0cf0,</div><div class='add'>+	0x0cf4, 0x0cff,</div><div class='add'>+	0x0d0d, 0x0d0d,</div><div class='add'>+	0x0d11, 0x0d11,</div><div class='add'>+	0x0d45, 0x0d45,</div><div class='add'>+	0x0d49, 0x0d49,</div><div class='add'>+	0x0d50, 0x0d53,</div><div class='add'>+	0x0d64, 0x0d65,</div><div class='add'>+	0x0d80, 0x0d80,</div><div class='add'>+	0x0d84, 0x0d84,</div><div class='add'>+	0x0d97, 0x0d99,</div><div class='add'>+	0x0db2, 0x0db2,</div><div class='add'>+	0x0dbc, 0x0dbc,</div><div class='add'>+	0x0dbe, 0x0dbf,</div><div class='add'>+	0x0dc7, 0x0dc9,</div><div class='add'>+	0x0dcb, 0x0dce,</div><div class='add'>+	0x0dd5, 0x0dd5,</div><div class='add'>+	0x0dd7, 0x0dd7,</div><div class='add'>+	0x0de0, 0x0de5,</div><div class='add'>+	0x0df0, 0x0df1,</div><div class='add'>+	0x0df5, 0x0e00,</div><div class='add'>+	0x0e3b, 0x0e3e,</div><div class='add'>+	0x0e5c, 0x0e80,</div><div class='add'>+	0x0e83, 0x0e83,</div><div class='add'>+	0x0e85, 0x0e85,</div><div class='add'>+	0x0e8b, 0x0e8b,</div><div class='add'>+	0x0ea4, 0x0ea4,</div><div class='add'>+	0x0ea6, 0x0ea6,</div><div class='add'>+	0x0ebe, 0x0ebf,</div><div class='add'>+	0x0ec5, 0x0ec5,</div><div class='add'>+	0x0ec7, 0x0ec7,</div><div class='add'>+	0x0ecf, 0x0ecf,</div><div class='add'>+	0x0eda, 0x0edb,</div><div class='add'>+	0x0ee0, 0x0eff,</div><div class='add'>+	0x0f48, 0x0f48,</div><div class='add'>+	0x0f6d, 0x0f70,</div><div class='add'>+	0x0f98, 0x0f98,</div><div class='add'>+	0x0fbd, 0x0fbd,</div><div class='add'>+	0x0fcd, 0x0fcd,</div><div class='add'>+	0x0fdb, 0x0fff,</div><div class='add'>+	0x10c6, 0x10c6,</div><div class='add'>+	0x10c8, 0x10cc,</div><div class='add'>+	0x10ce, 0x10cf,</div><div class='add'>+	0x1249, 0x1249,</div><div class='add'>+	0x124e, 0x124f,</div><div class='add'>+	0x1257, 0x1257,</div><div class='add'>+	0x1259, 0x1259,</div><div class='add'>+	0x125e, 0x125f,</div><div class='add'>+	0x1289, 0x1289,</div><div class='add'>+	0x128e, 0x128f,</div><div class='add'>+	0x12b1, 0x12b1,</div><div class='add'>+	0x12b6, 0x12b7,</div><div class='add'>+	0x12bf, 0x12bf,</div><div class='add'>+	0x12c1, 0x12c1,</div><div class='add'>+	0x12c6, 0x12c7,</div><div class='add'>+	0x12d7, 0x12d7,</div><div class='add'>+	0x1311, 0x1311,</div><div class='add'>+	0x1316, 0x1317,</div><div class='add'>+	0x135b, 0x135c,</div><div class='add'>+	0x137d, 0x137f,</div><div class='add'>+	0x139a, 0x139f,</div><div class='add'>+	0x13f6, 0x13f7,</div><div class='add'>+	0x13fe, 0x13ff,</div><div class='add'>+	0x169d, 0x169f,</div><div class='add'>+	0x16f9, 0x16ff,</div><div class='add'>+	0x1716, 0x171e,</div><div class='add'>+	0x1737, 0x173f,</div><div class='add'>+	0x1754, 0x175f,</div><div class='add'>+	0x176d, 0x176d,</div><div class='add'>+	0x1771, 0x1771,</div><div class='add'>+	0x1774, 0x177f,</div><div class='add'>+	0x17de, 0x17df,</div><div class='add'>+	0x17ea, 0x17ef,</div><div class='add'>+	0x17fa, 0x17ff,</div><div class='add'>+	0x181a, 0x181f,</div><div class='add'>+	0x1879, 0x187f,</div><div class='add'>+	0x18ab, 0x18af,</div><div class='add'>+	0x18f6, 0x18ff,</div><div class='add'>+	0x191f, 0x191f,</div><div class='add'>+	0x192c, 0x192f,</div><div class='add'>+	0x193c, 0x193f,</div><div class='add'>+	0x1941, 0x1943,</div><div class='add'>+	0x196e, 0x196f,</div><div class='add'>+	0x1975, 0x197f,</div><div class='add'>+	0x19ac, 0x19af,</div><div class='add'>+	0x19ca, 0x19cf,</div><div class='add'>+	0x19db, 0x19dd,</div><div class='add'>+	0x1a1c, 0x1a1d,</div><div class='add'>+	0x1a5f, 0x1a5f,</div><div class='add'>+	0x1a7d, 0x1a7e,</div><div class='add'>+	0x1a8a, 0x1a8f,</div><div class='add'>+	0x1a9a, 0x1a9f,</div><div class='add'>+	0x1aae, 0x1aaf,</div><div class='add'>+	0x1acf, 0x1aff,</div><div class='add'>+	0x1b4d, 0x1b4f,</div><div class='add'>+	0x1b7f, 0x1b7f,</div><div class='add'>+	0x1bf4, 0x1bfb,</div><div class='add'>+	0x1c38, 0x1c3a,</div><div class='add'>+	0x1c4a, 0x1c4c,</div><div class='add'>+	0x1c89, 0x1c8f,</div><div class='add'>+	0x1cbb, 0x1cbc,</div><div class='add'>+	0x1cc8, 0x1ccf,</div><div class='add'>+	0x1cfb, 0x1cff,</div><div class='add'>+	0x1f16, 0x1f17,</div><div class='add'>+	0x1f1e, 0x1f1f,</div><div class='add'>+	0x1f46, 0x1f47,</div><div class='add'>+	0x1f4e, 0x1f4f,</div><div class='add'>+	0x1f58, 0x1f58,</div><div class='add'>+	0x1f5a, 0x1f5a,</div><div class='add'>+	0x1f5c, 0x1f5c,</div><div class='add'>+	0x1f5e, 0x1f5e,</div><div class='add'>+	0x1f7e, 0x1f7f,</div><div class='add'>+	0x1fb5, 0x1fb5,</div><div class='add'>+	0x1fc5, 0x1fc5,</div><div class='add'>+	0x1fd4, 0x1fd5,</div><div class='add'>+	0x1fdc, 0x1fdc,</div><div class='add'>+	0x1ff0, 0x1ff1,</div><div class='add'>+	0x1ff5, 0x1ff5,</div><div class='add'>+	0x1fff, 0x1fff,</div><div class='add'>+	0x2065, 0x2065,</div><div class='add'>+	0x2072, 0x2073,</div><div class='add'>+	0x208f, 0x208f,</div><div class='add'>+	0x209d, 0x209f,</div><div class='add'>+	0x20c1, 0x20cf,</div><div class='add'>+	0x20f1, 0x20ff,</div><div class='add'>+	0x218c, 0x218f,</div><div class='add'>+	0x2427, 0x243f,</div><div class='add'>+	0x244b, 0x245f,</div><div class='add'>+	0x2b74, 0x2b75,</div><div class='add'>+	0x2b96, 0x2b96,</div><div class='add'>+	0x2cf4, 0x2cf8,</div><div class='add'>+	0x2d26, 0x2d26,</div><div class='add'>+	0x2d28, 0x2d2c,</div><div class='add'>+	0x2d2e, 0x2d2f,</div><div class='add'>+	0x2d68, 0x2d6e,</div><div class='add'>+	0x2d71, 0x2d7e,</div><div class='add'>+	0x2d97, 0x2d9f,</div><div class='add'>+	0x2da7, 0x2da7,</div><div class='add'>+	0x2daf, 0x2daf,</div><div class='add'>+	0x2db7, 0x2db7,</div><div class='add'>+	0x2dbf, 0x2dbf,</div><div class='add'>+	0x2dc7, 0x2dc7,</div><div class='add'>+	0x2dcf, 0x2dcf,</div><div class='add'>+	0x2dd7, 0x2dd7,</div><div class='add'>+	0x2ddf, 0x2ddf,</div><div class='add'>+	0x2e5e, 0x2e7f,</div><div class='add'>+	0x2e9a, 0x2e9a,</div><div class='add'>+	0x2ef4, 0x2eff,</div><div class='add'>+	0x2fd6, 0x2fef,</div><div class='add'>+	0x2ffc, 0x2fff,</div><div class='add'>+	0x3040, 0x3040,</div><div class='add'>+	0x3097, 0x3098,</div><div class='add'>+	0x3100, 0x3104,</div><div class='add'>+	0x3130, 0x3130,</div><div class='add'>+	0x318f, 0x318f,</div><div class='add'>+	0x31e4, 0x31ef,</div><div class='add'>+	0x321f, 0x321f,</div><div class='add'>+	0xa48d, 0xa48f,</div><div class='add'>+	0xa4c7, 0xa4cf,</div><div class='add'>+	0xa62c, 0xa63f,</div><div class='add'>+	0xa6f8, 0xa6ff,</div><div class='add'>+	0xa7cb, 0xa7cf,</div><div class='add'>+	0xa7d2, 0xa7d2,</div><div class='add'>+	0xa7d4, 0xa7d4,</div><div class='add'>+	0xa7da, 0xa7f1,</div><div class='add'>+	0xa82d, 0xa82f,</div><div class='add'>+	0xa83a, 0xa83f,</div><div class='add'>+	0xa878, 0xa87f,</div><div class='add'>+	0xa8c6, 0xa8cd,</div><div class='add'>+	0xa8da, 0xa8df,</div><div class='add'>+	0xa954, 0xa95e,</div><div class='add'>+	0xa97d, 0xa97f,</div><div class='add'>+	0xa9ce, 0xa9ce,</div><div class='add'>+	0xa9da, 0xa9dd,</div><div class='add'>+	0xa9ff, 0xa9ff,</div><div class='add'>+	0xaa37, 0xaa3f,</div><div class='add'>+	0xaa4e, 0xaa4f,</div><div class='add'>+	0xaa5a, 0xaa5b,</div><div class='add'>+	0xaac3, 0xaada,</div><div class='add'>+	0xaaf7, 0xab00,</div><div class='add'>+	0xab07, 0xab08,</div><div class='add'>+	0xab0f, 0xab10,</div><div class='add'>+	0xab17, 0xab1f,</div><div class='add'>+	0xab27, 0xab27,</div><div class='add'>+	0xab2f, 0xab2f,</div><div class='add'>+	0xab6c, 0xab6f,</div><div class='add'>+	0xabee, 0xabef,</div><div class='add'>+	0xabfa, 0xabff,</div><div class='add'>+	0xd7a4, 0xd7af,</div><div class='add'>+	0xd7c7, 0xd7ca,</div><div class='add'>+	0xd7fc, 0xd7ff,</div><div class='add'>+	0xfa6e, 0xfa6f,</div><div class='add'>+	0xfada, 0xfaff,</div><div class='add'>+	0xfb07, 0xfb12,</div><div class='add'>+	0xfb18, 0xfb1c,</div><div class='add'>+	0xfb37, 0xfb37,</div><div class='add'>+	0xfb3d, 0xfb3d,</div><div class='add'>+	0xfb3f, 0xfb3f,</div><div class='add'>+	0xfb42, 0xfb42,</div><div class='add'>+	0xfb45, 0xfb45,</div><div class='add'>+	0xfbc3, 0xfbd2,</div><div class='add'>+	0xfd90, 0xfd91,</div><div class='add'>+	0xfdc8, 0xfdce,</div><div class='add'>+	0xfdd0, 0xfdef,</div><div class='add'>+	0xfe1a, 0xfe1f,</div><div class='add'>+	0xfe53, 0xfe53,</div><div class='add'>+	0xfe67, 0xfe67,</div><div class='add'>+	0xfe6c, 0xfe6f,</div><div class='add'>+	0xfe75, 0xfe75,</div><div class='add'>+	0xfefd, 0xfefe,</div><div class='add'>+	0xff00, 0xff00,</div><div class='add'>+	0xffbf, 0xffc1,</div><div class='add'>+	0xffc8, 0xffc9,</div><div class='add'>+	0xffd0, 0xffd1,</div><div class='add'>+	0xffd8, 0xffd9,</div><div class='add'>+	0xffdd, 0xffdf,</div><div class='add'>+	0xffe7, 0xffe7,</div><div class='add'>+	0xffef, 0xfff8,</div><div class='add'>+	0xfffe, 0xffff,</div><div class='add'>+	0x1000c, 0x1000c,</div><div class='add'>+	0x10027, 0x10027,</div><div class='add'>+	0x1003b, 0x1003b,</div><div class='add'>+	0x1003e, 0x1003e,</div><div class='add'>+	0x1004e, 0x1004f,</div><div class='add'>+	0x1005e, 0x1007f,</div><div class='add'>+	0x100fb, 0x100ff,</div><div class='add'>+	0x10103, 0x10106,</div><div class='add'>+	0x10134, 0x10136,</div><div class='add'>+	0x1018f, 0x1018f,</div><div class='add'>+	0x1019d, 0x1019f,</div><div class='add'>+	0x101a1, 0x101cf,</div><div class='add'>+	0x101fe, 0x1027f,</div><div class='add'>+	0x1029d, 0x1029f,</div><div class='add'>+	0x102d1, 0x102df,</div><div class='add'>+	0x102fc, 0x102ff,</div><div class='add'>+	0x10324, 0x1032c,</div><div class='add'>+	0x1034b, 0x1034f,</div><div class='add'>+	0x1037b, 0x1037f,</div><div class='add'>+	0x1039e, 0x1039e,</div><div class='add'>+	0x103c4, 0x103c7,</div><div class='add'>+	0x103d6, 0x103ff,</div><div class='add'>+	0x1049e, 0x1049f,</div><div class='add'>+	0x104aa, 0x104af,</div><div class='add'>+	0x104d4, 0x104d7,</div><div class='add'>+	0x104fc, 0x104ff,</div><div class='add'>+	0x10528, 0x1052f,</div><div class='add'>+	0x10564, 0x1056e,</div><div class='add'>+	0x1057b, 0x1057b,</div><div class='add'>+	0x1058b, 0x1058b,</div><div class='add'>+	0x10593, 0x10593,</div><div class='add'>+	0x10596, 0x10596,</div><div class='add'>+	0x105a2, 0x105a2,</div><div class='add'>+	0x105b2, 0x105b2,</div><div class='add'>+	0x105ba, 0x105ba,</div><div class='add'>+	0x105bd, 0x105ff,</div><div class='add'>+	0x10737, 0x1073f,</div><div class='add'>+	0x10756, 0x1075f,</div><div class='add'>+	0x10768, 0x1077f,</div><div class='add'>+	0x10786, 0x10786,</div><div class='add'>+	0x107b1, 0x107b1,</div><div class='add'>+	0x107bb, 0x107ff,</div><div class='add'>+	0x10806, 0x10807,</div><div class='add'>+	0x10809, 0x10809,</div><div class='add'>+	0x10836, 0x10836,</div><div class='add'>+	0x10839, 0x1083b,</div><div class='add'>+	0x1083d, 0x1083e,</div><div class='add'>+	0x10856, 0x10856,</div><div class='add'>+	0x1089f, 0x108a6,</div><div class='add'>+	0x108b0, 0x108df,</div><div class='add'>+	0x108f3, 0x108f3,</div><div class='add'>+	0x108f6, 0x108fa,</div><div class='add'>+	0x1091c, 0x1091e,</div><div class='add'>+	0x1093a, 0x1093e,</div><div class='add'>+	0x10940, 0x1097f,</div><div class='add'>+	0x109b8, 0x109bb,</div><div class='add'>+	0x109d0, 0x109d1,</div><div class='add'>+	0x10a04, 0x10a04,</div><div class='add'>+	0x10a07, 0x10a0b,</div><div class='add'>+	0x10a14, 0x10a14,</div><div class='add'>+	0x10a18, 0x10a18,</div><div class='add'>+	0x10a36, 0x10a37,</div><div class='add'>+	0x10a3b, 0x10a3e,</div><div class='add'>+	0x10a49, 0x10a4f,</div><div class='add'>+	0x10a59, 0x10a5f,</div><div class='add'>+	0x10aa0, 0x10abf,</div><div class='add'>+	0x10ae7, 0x10aea,</div><div class='add'>+	0x10af7, 0x10aff,</div><div class='add'>+	0x10b36, 0x10b38,</div><div class='add'>+	0x10b56, 0x10b57,</div><div class='add'>+	0x10b73, 0x10b77,</div><div class='add'>+	0x10b92, 0x10b98,</div><div class='add'>+	0x10b9d, 0x10ba8,</div><div class='add'>+	0x10bb0, 0x10bff,</div><div class='add'>+	0x10c49, 0x10c7f,</div><div class='add'>+	0x10cb3, 0x10cbf,</div><div class='add'>+	0x10cf3, 0x10cf9,</div><div class='add'>+	0x10d28, 0x10d2f,</div><div class='add'>+	0x10d3a, 0x10e5f,</div><div class='add'>+	0x10e7f, 0x10e7f,</div><div class='add'>+	0x10eaa, 0x10eaa,</div><div class='add'>+	0x10eae, 0x10eaf,</div><div class='add'>+	0x10eb2, 0x10efc,</div><div class='add'>+	0x10f28, 0x10f2f,</div><div class='add'>+	0x10f5a, 0x10f6f,</div><div class='add'>+	0x10f8a, 0x10faf,</div><div class='add'>+	0x10fcc, 0x10fdf,</div><div class='add'>+	0x10ff7, 0x10fff,</div><div class='add'>+	0x1104e, 0x11051,</div><div class='add'>+	0x11076, 0x1107e,</div><div class='add'>+	0x110c3, 0x110cc,</div><div class='add'>+	0x110ce, 0x110cf,</div><div class='add'>+	0x110e9, 0x110ef,</div><div class='add'>+	0x110fa, 0x110ff,</div><div class='add'>+	0x11135, 0x11135,</div><div class='add'>+	0x11148, 0x1114f,</div><div class='add'>+	0x11177, 0x1117f,</div><div class='add'>+	0x111e0, 0x111e0,</div><div class='add'>+	0x111f5, 0x111ff,</div><div class='add'>+	0x11212, 0x11212,</div><div class='add'>+	0x11242, 0x1127f,</div><div class='add'>+	0x11287, 0x11287,</div><div class='add'>+	0x11289, 0x11289,</div><div class='add'>+	0x1128e, 0x1128e,</div><div class='add'>+	0x1129e, 0x1129e,</div><div class='add'>+	0x112aa, 0x112af,</div><div class='add'>+	0x112eb, 0x112ef,</div><div class='add'>+	0x112fa, 0x112ff,</div><div class='add'>+	0x11304, 0x11304,</div><div class='add'>+	0x1130d, 0x1130e,</div><div class='add'>+	0x11311, 0x11312,</div><div class='add'>+	0x11329, 0x11329,</div><div class='add'>+	0x11331, 0x11331,</div><div class='add'>+	0x11334, 0x11334,</div><div class='add'>+	0x1133a, 0x1133a,</div><div class='add'>+	0x11345, 0x11346,</div><div class='add'>+	0x11349, 0x1134a,</div><div class='add'>+	0x1134e, 0x1134f,</div><div class='add'>+	0x11351, 0x11356,</div><div class='add'>+	0x11358, 0x1135c,</div><div class='add'>+	0x11364, 0x11365,</div><div class='add'>+	0x1136d, 0x1136f,</div><div class='add'>+	0x11375, 0x113ff,</div><div class='add'>+	0x1145c, 0x1145c,</div><div class='add'>+	0x11462, 0x1147f,</div><div class='add'>+	0x114c8, 0x114cf,</div><div class='add'>+	0x114da, 0x1157f,</div><div class='add'>+	0x115b6, 0x115b7,</div><div class='add'>+	0x115de, 0x115ff,</div><div class='add'>+	0x11645, 0x1164f,</div><div class='add'>+	0x1165a, 0x1165f,</div><div class='add'>+	0x1166d, 0x1167f,</div><div class='add'>+	0x116ba, 0x116bf,</div><div class='add'>+	0x116ca, 0x116ff,</div><div class='add'>+	0x1171b, 0x1171c,</div><div class='add'>+	0x1172c, 0x1172f,</div><div class='add'>+	0x11747, 0x117ff,</div><div class='add'>+	0x1183c, 0x1189f,</div><div class='add'>+	0x118f3, 0x118fe,</div><div class='add'>+	0x11907, 0x11908,</div><div class='add'>+	0x1190a, 0x1190b,</div><div class='add'>+	0x11914, 0x11914,</div><div class='add'>+	0x11917, 0x11917,</div><div class='add'>+	0x11936, 0x11936,</div><div class='add'>+	0x11939, 0x1193a,</div><div class='add'>+	0x11947, 0x1194f,</div><div class='add'>+	0x1195a, 0x1199f,</div><div class='add'>+	0x119a8, 0x119a9,</div><div class='add'>+	0x119d8, 0x119d9,</div><div class='add'>+	0x119e5, 0x119ff,</div><div class='add'>+	0x11a48, 0x11a4f,</div><div class='add'>+	0x11aa3, 0x11aaf,</div><div class='add'>+	0x11af9, 0x11aff,</div><div class='add'>+	0x11b0a, 0x11bff,</div><div class='add'>+	0x11c09, 0x11c09,</div><div class='add'>+	0x11c37, 0x11c37,</div><div class='add'>+	0x11c46, 0x11c4f,</div><div class='add'>+	0x11c6d, 0x11c6f,</div><div class='add'>+	0x11c90, 0x11c91,</div><div class='add'>+	0x11ca8, 0x11ca8,</div><div class='add'>+	0x11cb7, 0x11cff,</div><div class='add'>+	0x11d07, 0x11d07,</div><div class='add'>+	0x11d0a, 0x11d0a,</div><div class='add'>+	0x11d37, 0x11d39,</div><div class='add'>+	0x11d3b, 0x11d3b,</div><div class='add'>+	0x11d3e, 0x11d3e,</div><div class='add'>+	0x11d48, 0x11d4f,</div><div class='add'>+	0x11d5a, 0x11d5f,</div><div class='add'>+	0x11d66, 0x11d66,</div><div class='add'>+	0x11d69, 0x11d69,</div><div class='add'>+	0x11d8f, 0x11d8f,</div><div class='add'>+	0x11d92, 0x11d92,</div><div class='add'>+	0x11d99, 0x11d9f,</div><div class='add'>+	0x11daa, 0x11edf,</div><div class='add'>+	0x11ef9, 0x11eff,</div><div class='add'>+	0x11f11, 0x11f11,</div><div class='add'>+	0x11f3b, 0x11f3d,</div><div class='add'>+	0x11f5a, 0x11faf,</div><div class='add'>+	0x11fb1, 0x11fbf,</div><div class='add'>+	0x11ff2, 0x11ffe,</div><div class='add'>+	0x1239a, 0x123ff,</div><div class='add'>+	0x1246f, 0x1246f,</div><div class='add'>+	0x12475, 0x1247f,</div><div class='add'>+	0x12544, 0x12f8f,</div><div class='add'>+	0x12ff3, 0x12fff,</div><div class='add'>+	0x13456, 0x143ff,</div><div class='add'>+	0x14647, 0x167ff,</div><div class='add'>+	0x16a39, 0x16a3f,</div><div class='add'>+	0x16a5f, 0x16a5f,</div><div class='add'>+	0x16a6a, 0x16a6d,</div><div class='add'>+	0x16abf, 0x16abf,</div><div class='add'>+	0x16aca, 0x16acf,</div><div class='add'>+	0x16aee, 0x16aef,</div><div class='add'>+	0x16af6, 0x16aff,</div><div class='add'>+	0x16b46, 0x16b4f,</div><div class='add'>+	0x16b5a, 0x16b5a,</div><div class='add'>+	0x16b62, 0x16b62,</div><div class='add'>+	0x16b78, 0x16b7c,</div><div class='add'>+	0x16b90, 0x16e3f,</div><div class='add'>+	0x16e9b, 0x16eff,</div><div class='add'>+	0x16f4b, 0x16f4e,</div><div class='add'>+	0x16f88, 0x16f8e,</div><div class='add'>+	0x16fa0, 0x16fdf,</div><div class='add'>+	0x16fe5, 0x16fef,</div><div class='add'>+	0x16ff2, 0x16fff,</div><div class='add'>+	0x187f8, 0x187ff,</div><div class='add'>+	0x18cd6, 0x18cff,</div><div class='add'>+	0x18d09, 0x1afef,</div><div class='add'>+	0x1aff4, 0x1aff4,</div><div class='add'>+	0x1affc, 0x1affc,</div><div class='add'>+	0x1afff, 0x1afff,</div><div class='add'>+	0x1b123, 0x1b131,</div><div class='add'>+	0x1b133, 0x1b14f,</div><div class='add'>+	0x1b153, 0x1b154,</div><div class='add'>+	0x1b156, 0x1b163,</div><div class='add'>+	0x1b168, 0x1b16f,</div><div class='add'>+	0x1b2fc, 0x1bbff,</div><div class='add'>+	0x1bc6b, 0x1bc6f,</div><div class='add'>+	0x1bc7d, 0x1bc7f,</div><div class='add'>+	0x1bc89, 0x1bc8f,</div><div class='add'>+	0x1bc9a, 0x1bc9b,</div><div class='add'>+	0x1bca4, 0x1ceff,</div><div class='add'>+	0x1cf2e, 0x1cf2f,</div><div class='add'>+	0x1cf47, 0x1cf4f,</div><div class='add'>+	0x1cfc4, 0x1cfff,</div><div class='add'>+	0x1d0f6, 0x1d0ff,</div><div class='add'>+	0x1d127, 0x1d128,</div><div class='add'>+	0x1d1eb, 0x1d1ff,</div><div class='add'>+	0x1d246, 0x1d2bf,</div><div class='add'>+	0x1d2d4, 0x1d2df,</div><div class='add'>+	0x1d2f4, 0x1d2ff,</div><div class='add'>+	0x1d357, 0x1d35f,</div><div class='add'>+	0x1d379, 0x1d3ff,</div><div class='add'>+	0x1d455, 0x1d455,</div><div class='add'>+	0x1d49d, 0x1d49d,</div><div class='add'>+	0x1d4a0, 0x1d4a1,</div><div class='add'>+	0x1d4a3, 0x1d4a4,</div><div class='add'>+	0x1d4a7, 0x1d4a8,</div><div class='add'>+	0x1d4ad, 0x1d4ad,</div><div class='add'>+	0x1d4ba, 0x1d4ba,</div><div class='add'>+	0x1d4bc, 0x1d4bc,</div><div class='add'>+	0x1d4c4, 0x1d4c4,</div><div class='add'>+	0x1d506, 0x1d506,</div><div class='add'>+	0x1d50b, 0x1d50c,</div><div class='add'>+	0x1d515, 0x1d515,</div><div class='add'>+	0x1d51d, 0x1d51d,</div><div class='add'>+	0x1d53a, 0x1d53a,</div><div class='add'>+	0x1d53f, 0x1d53f,</div><div class='add'>+	0x1d545, 0x1d545,</div><div class='add'>+	0x1d547, 0x1d549,</div><div class='add'>+	0x1d551, 0x1d551,</div><div class='add'>+	0x1d6a6, 0x1d6a7,</div><div class='add'>+	0x1d7cc, 0x1d7cd,</div><div class='add'>+	0x1da8c, 0x1da9a,</div><div class='add'>+	0x1daa0, 0x1daa0,</div><div class='add'>+	0x1dab0, 0x1deff,</div><div class='add'>+	0x1df1f, 0x1df24,</div><div class='add'>+	0x1df2b, 0x1dfff,</div><div class='add'>+	0x1e007, 0x1e007,</div><div class='add'>+	0x1e019, 0x1e01a,</div><div class='add'>+	0x1e022, 0x1e022,</div><div class='add'>+	0x1e025, 0x1e025,</div><div class='add'>+	0x1e02b, 0x1e02f,</div><div class='add'>+	0x1e06e, 0x1e08e,</div><div class='add'>+	0x1e090, 0x1e0ff,</div><div class='add'>+	0x1e12d, 0x1e12f,</div><div class='add'>+	0x1e13e, 0x1e13f,</div><div class='add'>+	0x1e14a, 0x1e14d,</div><div class='add'>+	0x1e150, 0x1e28f,</div><div class='add'>+	0x1e2af, 0x1e2bf,</div><div class='add'>+	0x1e2fa, 0x1e2fe,</div><div class='add'>+	0x1e300, 0x1e4cf,</div><div class='add'>+	0x1e4fa, 0x1e7df,</div><div class='add'>+	0x1e7e7, 0x1e7e7,</div><div class='add'>+	0x1e7ec, 0x1e7ec,</div><div class='add'>+	0x1e7ef, 0x1e7ef,</div><div class='add'>+	0x1e7ff, 0x1e7ff,</div><div class='add'>+	0x1e8c5, 0x1e8c6,</div><div class='add'>+	0x1e8d7, 0x1e8ff,</div><div class='add'>+	0x1e94c, 0x1e94f,</div><div class='add'>+	0x1e95a, 0x1e95d,</div><div class='add'>+	0x1e960, 0x1ec70,</div><div class='add'>+	0x1ecb5, 0x1ed00,</div><div class='add'>+	0x1ed3e, 0x1edff,</div><div class='add'>+	0x1ee04, 0x1ee04,</div><div class='add'>+	0x1ee20, 0x1ee20,</div><div class='add'>+	0x1ee23, 0x1ee23,</div><div class='add'>+	0x1ee25, 0x1ee26,</div><div class='add'>+	0x1ee28, 0x1ee28,</div><div class='add'>+	0x1ee33, 0x1ee33,</div><div class='add'>+	0x1ee38, 0x1ee38,</div><div class='add'>+	0x1ee3a, 0x1ee3a,</div><div class='add'>+	0x1ee3c, 0x1ee41,</div><div class='add'>+	0x1ee43, 0x1ee46,</div><div class='add'>+	0x1ee48, 0x1ee48,</div><div class='add'>+	0x1ee4a, 0x1ee4a,</div><div class='add'>+	0x1ee4c, 0x1ee4c,</div><div class='add'>+	0x1ee50, 0x1ee50,</div><div class='add'>+	0x1ee53, 0x1ee53,</div><div class='add'>+	0x1ee55, 0x1ee56,</div><div class='add'>+	0x1ee58, 0x1ee58,</div><div class='add'>+	0x1ee5a, 0x1ee5a,</div><div class='add'>+	0x1ee5c, 0x1ee5c,</div><div class='add'>+	0x1ee5e, 0x1ee5e,</div><div class='add'>+	0x1ee60, 0x1ee60,</div><div class='add'>+	0x1ee63, 0x1ee63,</div><div class='add'>+	0x1ee65, 0x1ee66,</div><div class='add'>+	0x1ee6b, 0x1ee6b,</div><div class='add'>+	0x1ee73, 0x1ee73,</div><div class='add'>+	0x1ee78, 0x1ee78,</div><div class='add'>+	0x1ee7d, 0x1ee7d,</div><div class='add'>+	0x1ee7f, 0x1ee7f,</div><div class='add'>+	0x1ee8a, 0x1ee8a,</div><div class='add'>+	0x1ee9c, 0x1eea0,</div><div class='add'>+	0x1eea4, 0x1eea4,</div><div class='add'>+	0x1eeaa, 0x1eeaa,</div><div class='add'>+	0x1eebc, 0x1eeef,</div><div class='add'>+	0x1eef2, 0x1efff,</div><div class='add'>+	0x1f02c, 0x1f02f,</div><div class='add'>+	0x1f094, 0x1f09f,</div><div class='add'>+	0x1f0af, 0x1f0b0,</div><div class='add'>+	0x1f0c0, 0x1f0c0,</div><div class='add'>+	0x1f0d0, 0x1f0d0,</div><div class='add'>+	0x1f0f6, 0x1f0ff,</div><div class='add'>+	0x1f1ae, 0x1f1e5,</div><div class='add'>+	0x1f203, 0x1f20f,</div><div class='add'>+	0x1f23c, 0x1f23f,</div><div class='add'>+	0x1f249, 0x1f24f,</div><div class='add'>+	0x1f252, 0x1f25f,</div><div class='add'>+	0x1f266, 0x1f2ff,</div><div class='add'>+	0x1f6d8, 0x1f6db,</div><div class='add'>+	0x1f6ed, 0x1f6ef,</div><div class='add'>+	0x1f6fd, 0x1f6ff,</div><div class='add'>+	0x1f777, 0x1f77a,</div><div class='add'>+	0x1f7da, 0x1f7df,</div><div class='add'>+	0x1f7ec, 0x1f7ef,</div><div class='add'>+	0x1f7f1, 0x1f7ff,</div><div class='add'>+	0x1f80c, 0x1f80f,</div><div class='add'>+	0x1f848, 0x1f84f,</div><div class='add'>+	0x1f85a, 0x1f85f,</div><div class='add'>+	0x1f888, 0x1f88f,</div><div class='add'>+	0x1f8ae, 0x1f8af,</div><div class='add'>+	0x1f8b2, 0x1f8ff,</div><div class='add'>+	0x1fa54, 0x1fa5f,</div><div class='add'>+	0x1fa6e, 0x1fa6f,</div><div class='add'>+	0x1fa7d, 0x1fa7f,</div><div class='add'>+	0x1fa89, 0x1fa8f,</div><div class='add'>+	0x1fabe, 0x1fabe,</div><div class='add'>+	0x1fac6, 0x1facd,</div><div class='add'>+	0x1fadc, 0x1fadf,</div><div class='add'>+	0x1fae9, 0x1faef,</div><div class='add'>+	0x1faf9, 0x1faff,</div><div class='add'>+	0x1fb93, 0x1fb93,</div><div class='add'>+	0x1fbcb, 0x1fbef,</div><div class='add'>+	0x1fbfa, 0x1ffff,</div><div class='add'>+	0x2a6e0, 0x2a6ff,</div><div class='add'>+	0x2b73a, 0x2b73f,</div><div class='add'>+	0x2b81e, 0x2b81f,</div><div class='add'>+	0x2cea2, 0x2ceaf,</div><div class='add'>+	0x2ebe1, 0x2f7ff,</div><div class='add'>+	0x2fa1e, 0x2ffff,</div><div class='add'>+	0x3134b, 0x3134f,</div><div class='add'>+	0x323b0, 0xe0000,</div><div class='add'>+	0xe0002, 0xe001f,</div><div class='add'>+	0xe0080, 0xe00ff,</div><div class='add'>+	0xe01f0, 0xeffff,</div><div class='add'>+	0xffffe, 0xfffff,</div><div class='add'>+	0x10fffe, 0x10ffff,</div><div class='add'>+}; /* CR_Cn */</div><div class='add'>+</div><div class='add'>+/* 'Co': General Category */</div><div class='add'>+static const OnigCodePoint CR_Co[] = {</div><div class='add'>+	3,</div><div class='add'>+	0xe000, 0xf8ff,</div><div class='add'>+	0xf0000, 0xffffd,</div><div class='add'>+	0x100000, 0x10fffd,</div><div class='add'>+}; /* CR_Co */</div><div class='add'>+</div><div class='add'>+/* 'Cs': General Category */</div><div class='add'>+static const OnigCodePoint CR_Cs[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xd800, 0xdfff,</div><div class='add'>+}; /* CR_Cs */</div><div class='add'>+</div><div class='add'>+/* 'L': Major Category */</div><div class='add'>+static const OnigCodePoint CR_L[] = {</div><div class='add'>+	659,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x02c1,</div><div class='add'>+	0x02c6, 0x02d1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x02ec, 0x02ec,</div><div class='add'>+	0x02ee, 0x02ee,</div><div class='add'>+	0x0370, 0x0374,</div><div class='add'>+	0x0376, 0x0377,</div><div class='add'>+	0x037a, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03f5,</div><div class='add'>+	0x03f7, 0x0481,</div><div class='add'>+	0x048a, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x0559,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f2,</div><div class='add'>+	0x0620, 0x064a,</div><div class='add'>+	0x066e, 0x066f,</div><div class='add'>+	0x0671, 0x06d3,</div><div class='add'>+	0x06d5, 0x06d5,</div><div class='add'>+	0x06e5, 0x06e6,</div><div class='add'>+	0x06ee, 0x06ef,</div><div class='add'>+	0x06fa, 0x06fc,</div><div class='add'>+	0x06ff, 0x06ff,</div><div class='add'>+	0x0710, 0x0710,</div><div class='add'>+	0x0712, 0x072f,</div><div class='add'>+	0x074d, 0x07a5,</div><div class='add'>+	0x07b1, 0x07b1,</div><div class='add'>+	0x07ca, 0x07ea,</div><div class='add'>+	0x07f4, 0x07f5,</div><div class='add'>+	0x07fa, 0x07fa,</div><div class='add'>+	0x0800, 0x0815,</div><div class='add'>+	0x081a, 0x081a,</div><div class='add'>+	0x0824, 0x0824,</div><div class='add'>+	0x0828, 0x0828,</div><div class='add'>+	0x0840, 0x0858,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x0887,</div><div class='add'>+	0x0889, 0x088e,</div><div class='add'>+	0x08a0, 0x08c9,</div><div class='add'>+	0x0904, 0x0939,</div><div class='add'>+	0x093d, 0x093d,</div><div class='add'>+	0x0950, 0x0950,</div><div class='add'>+	0x0958, 0x0961,</div><div class='add'>+	0x0971, 0x0980,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bd, 0x09bd,</div><div class='add'>+	0x09ce, 0x09ce,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e1,</div><div class='add'>+	0x09f0, 0x09f1,</div><div class='add'>+	0x09fc, 0x09fc,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a72, 0x0a74,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abd, 0x0abd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae1,</div><div class='add'>+	0x0af9, 0x0af9,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3d, 0x0b3d,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b71, 0x0b71,</div><div class='add'>+	0x0b83, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c3d,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c80, 0x0c80,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbd, 0x0cbd,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d04, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d3d,</div><div class='add'>+	0x0d4e, 0x0d4e,</div><div class='add'>+	0x0d54, 0x0d56,</div><div class='add'>+	0x0d5f, 0x0d61,</div><div class='add'>+	0x0d7a, 0x0d7f,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0e01, 0x0e30,</div><div class='add'>+	0x0e32, 0x0e33,</div><div class='add'>+	0x0e40, 0x0e46,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0eb0,</div><div class='add'>+	0x0eb2, 0x0eb3,</div><div class='add'>+	0x0ebd, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f00,</div><div class='add'>+	0x0f40, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f88, 0x0f8c,</div><div class='add'>+	0x1000, 0x102a,</div><div class='add'>+	0x103f, 0x103f,</div><div class='add'>+	0x1050, 0x1055,</div><div class='add'>+	0x105a, 0x105d,</div><div class='add'>+	0x1061, 0x1061,</div><div class='add'>+	0x1065, 0x1066,</div><div class='add'>+	0x106e, 0x1070,</div><div class='add'>+	0x1075, 0x1081,</div><div class='add'>+	0x108e, 0x108e,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fc, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x1380, 0x138f,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1401, 0x166c,</div><div class='add'>+	0x166f, 0x167f,</div><div class='add'>+	0x1681, 0x169a,</div><div class='add'>+	0x16a0, 0x16ea,</div><div class='add'>+	0x16f1, 0x16f8,</div><div class='add'>+	0x1700, 0x1711,</div><div class='add'>+	0x171f, 0x1731,</div><div class='add'>+	0x1740, 0x1751,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1780, 0x17b3,</div><div class='add'>+	0x17d7, 0x17d7,</div><div class='add'>+	0x17dc, 0x17dc,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x1884,</div><div class='add'>+	0x1887, 0x18a8,</div><div class='add'>+	0x18aa, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1950, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x1a00, 0x1a16,</div><div class='add'>+	0x1a20, 0x1a54,</div><div class='add'>+	0x1aa7, 0x1aa7,</div><div class='add'>+	0x1b05, 0x1b33,</div><div class='add'>+	0x1b45, 0x1b4c,</div><div class='add'>+	0x1b83, 0x1ba0,</div><div class='add'>+	0x1bae, 0x1baf,</div><div class='add'>+	0x1bba, 0x1be5,</div><div class='add'>+	0x1c00, 0x1c23,</div><div class='add'>+	0x1c4d, 0x1c4f,</div><div class='add'>+	0x1c5a, 0x1c7d,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1ce9, 0x1cec,</div><div class='add'>+	0x1cee, 0x1cf3,</div><div class='add'>+	0x1cf5, 0x1cf6,</div><div class='add'>+	0x1cfa, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1dbf,</div><div class='add'>+	0x1e00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fe0, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffc,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2119, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x212d,</div><div class='add'>+	0x212f, 0x2139,</div><div class='add'>+	0x213c, 0x213f,</div><div class='add'>+	0x2145, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2183, 0x2184,</div><div class='add'>+	0x2c00, 0x2ce4,</div><div class='add'>+	0x2ceb, 0x2cee,</div><div class='add'>+	0x2cf2, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2e2f, 0x2e2f,</div><div class='add'>+	0x3005, 0x3006,</div><div class='add'>+	0x3031, 0x3035,</div><div class='add'>+	0x303b, 0x303c,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x309d, 0x309f,</div><div class='add'>+	0x30a1, 0x30fa,</div><div class='add'>+	0x30fc, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x31a0, 0x31bf,</div><div class='add'>+	0x31f0, 0x31ff,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0xa48c,</div><div class='add'>+	0xa4d0, 0xa4fd,</div><div class='add'>+	0xa500, 0xa60c,</div><div class='add'>+	0xa610, 0xa61f,</div><div class='add'>+	0xa62a, 0xa62b,</div><div class='add'>+	0xa640, 0xa66e,</div><div class='add'>+	0xa67f, 0xa69d,</div><div class='add'>+	0xa6a0, 0xa6e5,</div><div class='add'>+	0xa717, 0xa71f,</div><div class='add'>+	0xa722, 0xa788,</div><div class='add'>+	0xa78b, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa801,</div><div class='add'>+	0xa803, 0xa805,</div><div class='add'>+	0xa807, 0xa80a,</div><div class='add'>+	0xa80c, 0xa822,</div><div class='add'>+	0xa840, 0xa873,</div><div class='add'>+	0xa882, 0xa8b3,</div><div class='add'>+	0xa8f2, 0xa8f7,</div><div class='add'>+	0xa8fb, 0xa8fb,</div><div class='add'>+	0xa8fd, 0xa8fe,</div><div class='add'>+	0xa90a, 0xa925,</div><div class='add'>+	0xa930, 0xa946,</div><div class='add'>+	0xa960, 0xa97c,</div><div class='add'>+	0xa984, 0xa9b2,</div><div class='add'>+	0xa9cf, 0xa9cf,</div><div class='add'>+	0xa9e0, 0xa9e4,</div><div class='add'>+	0xa9e6, 0xa9ef,</div><div class='add'>+	0xa9fa, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa28,</div><div class='add'>+	0xaa40, 0xaa42,</div><div class='add'>+	0xaa44, 0xaa4b,</div><div class='add'>+	0xaa60, 0xaa76,</div><div class='add'>+	0xaa7a, 0xaa7a,</div><div class='add'>+	0xaa7e, 0xaaaf,</div><div class='add'>+	0xaab1, 0xaab1,</div><div class='add'>+	0xaab5, 0xaab6,</div><div class='add'>+	0xaab9, 0xaabd,</div><div class='add'>+	0xaac0, 0xaac0,</div><div class='add'>+	0xaac2, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadd,</div><div class='add'>+	0xaae0, 0xaaea,</div><div class='add'>+	0xaaf2, 0xaaf4,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab5c, 0xab69,</div><div class='add'>+	0xab70, 0xabe2,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb1d,</div><div class='add'>+	0xfb1f, 0xfb28,</div><div class='add'>+	0xfb2a, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3d,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdfb,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0xff66, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031f,</div><div class='add'>+	0x1032d, 0x10340,</div><div class='add'>+	0x10342, 0x10349,</div><div class='add'>+	0x10350, 0x10375,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x103a0, 0x103c3,</div><div class='add'>+	0x103c8, 0x103cf,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10860, 0x10876,</div><div class='add'>+	0x10880, 0x1089e,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x10900, 0x10915,</div><div class='add'>+	0x10920, 0x10939,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a00,</div><div class='add'>+	0x10a10, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a60, 0x10a7c,</div><div class='add'>+	0x10a80, 0x10a9c,</div><div class='add'>+	0x10ac0, 0x10ac7,</div><div class='add'>+	0x10ac9, 0x10ae4,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b40, 0x10b55,</div><div class='add'>+	0x10b60, 0x10b72,</div><div class='add'>+	0x10b80, 0x10b91,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10d00, 0x10d23,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10f00, 0x10f1c,</div><div class='add'>+	0x10f27, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f45,</div><div class='add'>+	0x10f70, 0x10f81,</div><div class='add'>+	0x10fb0, 0x10fc4,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11003, 0x11037,</div><div class='add'>+	0x11071, 0x11072,</div><div class='add'>+	0x11075, 0x11075,</div><div class='add'>+	0x11083, 0x110af,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x11103, 0x11126,</div><div class='add'>+	0x11144, 0x11144,</div><div class='add'>+	0x11147, 0x11147,</div><div class='add'>+	0x11150, 0x11172,</div><div class='add'>+	0x11176, 0x11176,</div><div class='add'>+	0x11183, 0x111b2,</div><div class='add'>+	0x111c1, 0x111c4,</div><div class='add'>+	0x111da, 0x111da,</div><div class='add'>+	0x111dc, 0x111dc,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1122b,</div><div class='add'>+	0x1123f, 0x11240,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a8,</div><div class='add'>+	0x112b0, 0x112de,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133d, 0x1133d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x1135d, 0x11361,</div><div class='add'>+	0x11400, 0x11434,</div><div class='add'>+	0x11447, 0x1144a,</div><div class='add'>+	0x1145f, 0x11461,</div><div class='add'>+	0x11480, 0x114af,</div><div class='add'>+	0x114c4, 0x114c5,</div><div class='add'>+	0x114c7, 0x114c7,</div><div class='add'>+	0x11580, 0x115ae,</div><div class='add'>+	0x115d8, 0x115db,</div><div class='add'>+	0x11600, 0x1162f,</div><div class='add'>+	0x11644, 0x11644,</div><div class='add'>+	0x11680, 0x116aa,</div><div class='add'>+	0x116b8, 0x116b8,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x11740, 0x11746,</div><div class='add'>+	0x11800, 0x1182b,</div><div class='add'>+	0x118a0, 0x118df,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x1192f,</div><div class='add'>+	0x1193f, 0x1193f,</div><div class='add'>+	0x11941, 0x11941,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d0,</div><div class='add'>+	0x119e1, 0x119e1,</div><div class='add'>+	0x119e3, 0x119e3,</div><div class='add'>+	0x11a00, 0x11a00,</div><div class='add'>+	0x11a0b, 0x11a32,</div><div class='add'>+	0x11a3a, 0x11a3a,</div><div class='add'>+	0x11a50, 0x11a50,</div><div class='add'>+	0x11a5c, 0x11a89,</div><div class='add'>+	0x11a9d, 0x11a9d,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c2e,</div><div class='add'>+	0x11c40, 0x11c40,</div><div class='add'>+	0x11c72, 0x11c8f,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d30,</div><div class='add'>+	0x11d46, 0x11d46,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d89,</div><div class='add'>+	0x11d98, 0x11d98,</div><div class='add'>+	0x11ee0, 0x11ef2,</div><div class='add'>+	0x11f02, 0x11f02,</div><div class='add'>+	0x11f04, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f33,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff0,</div><div class='add'>+	0x13000, 0x1342f,</div><div class='add'>+	0x13441, 0x13446,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a70, 0x16abe,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16b00, 0x16b2f,</div><div class='add'>+	0x16b40, 0x16b43,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e7f,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f50, 0x16f50,</div><div class='add'>+	0x16f93, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x16fe3, 0x16fe3,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6fa,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d734,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d76e,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d7a8,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7cb,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e137, 0x1e13d,</div><div class='add'>+	0x1e14e, 0x1e14e,</div><div class='add'>+	0x1e290, 0x1e2ad,</div><div class='add'>+	0x1e2c0, 0x1e2eb,</div><div class='add'>+	0x1e4d0, 0x1e4eb,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e900, 0x1e943,</div><div class='add'>+	0x1e94b, 0x1e94b,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+}; /* CR_L */</div><div class='add'>+</div><div class='add'>+/* 'LC': General Category */</div><div class='add'>+static const OnigCodePoint CR_LC[] = {</div><div class='add'>+	143,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x01ba,</div><div class='add'>+	0x01bc, 0x01bf,</div><div class='add'>+	0x01c4, 0x0293,</div><div class='add'>+	0x0295, 0x02af,</div><div class='add'>+	0x0370, 0x0373,</div><div class='add'>+	0x0376, 0x0377,</div><div class='add'>+	0x037b, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03f5,</div><div class='add'>+	0x03f7, 0x0481,</div><div class='add'>+	0x048a, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fd, 0x10ff,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1d00, 0x1d2b,</div><div class='add'>+	0x1d6b, 0x1d77,</div><div class='add'>+	0x1d79, 0x1d9a,</div><div class='add'>+	0x1e00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fe0, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffc,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2119, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x212d,</div><div class='add'>+	0x212f, 0x2134,</div><div class='add'>+	0x2139, 0x2139,</div><div class='add'>+	0x213c, 0x213f,</div><div class='add'>+	0x2145, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2183, 0x2184,</div><div class='add'>+	0x2c00, 0x2c7b,</div><div class='add'>+	0x2c7e, 0x2ce4,</div><div class='add'>+	0x2ceb, 0x2cee,</div><div class='add'>+	0x2cf2, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0xa640, 0xa66d,</div><div class='add'>+	0xa680, 0xa69b,</div><div class='add'>+	0xa722, 0xa76f,</div><div class='add'>+	0xa771, 0xa787,</div><div class='add'>+	0xa78b, 0xa78e,</div><div class='add'>+	0xa790, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f5, 0xa7f6,</div><div class='add'>+	0xa7fa, 0xa7fa,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab60, 0xab68,</div><div class='add'>+	0xab70, 0xabbf,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0x10400, 0x1044f,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x118a0, 0x118df,</div><div class='add'>+	0x16e40, 0x16e7f,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6fa,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d734,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d76e,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d7a8,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7cb,</div><div class='add'>+	0x1df00, 0x1df09,</div><div class='add'>+	0x1df0b, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e900, 0x1e943,</div><div class='add'>+}; /* CR_LC */</div><div class='add'>+</div><div class='add'>+/* 'Ll': General Category */</div><div class='add'>+static const OnigCodePoint CR_Ll[] = {</div><div class='add'>+	658,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00df, 0x00f6,</div><div class='add'>+	0x00f8, 0x00ff,</div><div class='add'>+	0x0101, 0x0101,</div><div class='add'>+	0x0103, 0x0103,</div><div class='add'>+	0x0105, 0x0105,</div><div class='add'>+	0x0107, 0x0107,</div><div class='add'>+	0x0109, 0x0109,</div><div class='add'>+	0x010b, 0x010b,</div><div class='add'>+	0x010d, 0x010d,</div><div class='add'>+	0x010f, 0x010f,</div><div class='add'>+	0x0111, 0x0111,</div><div class='add'>+	0x0113, 0x0113,</div><div class='add'>+	0x0115, 0x0115,</div><div class='add'>+	0x0117, 0x0117,</div><div class='add'>+	0x0119, 0x0119,</div><div class='add'>+	0x011b, 0x011b,</div><div class='add'>+	0x011d, 0x011d,</div><div class='add'>+	0x011f, 0x011f,</div><div class='add'>+	0x0121, 0x0121,</div><div class='add'>+	0x0123, 0x0123,</div><div class='add'>+	0x0125, 0x0125,</div><div class='add'>+	0x0127, 0x0127,</div><div class='add'>+	0x0129, 0x0129,</div><div class='add'>+	0x012b, 0x012b,</div><div class='add'>+	0x012d, 0x012d,</div><div class='add'>+	0x012f, 0x012f,</div><div class='add'>+	0x0131, 0x0131,</div><div class='add'>+	0x0133, 0x0133,</div><div class='add'>+	0x0135, 0x0135,</div><div class='add'>+	0x0137, 0x0138,</div><div class='add'>+	0x013a, 0x013a,</div><div class='add'>+	0x013c, 0x013c,</div><div class='add'>+	0x013e, 0x013e,</div><div class='add'>+	0x0140, 0x0140,</div><div class='add'>+	0x0142, 0x0142,</div><div class='add'>+	0x0144, 0x0144,</div><div class='add'>+	0x0146, 0x0146,</div><div class='add'>+	0x0148, 0x0149,</div><div class='add'>+	0x014b, 0x014b,</div><div class='add'>+	0x014d, 0x014d,</div><div class='add'>+	0x014f, 0x014f,</div><div class='add'>+	0x0151, 0x0151,</div><div class='add'>+	0x0153, 0x0153,</div><div class='add'>+	0x0155, 0x0155,</div><div class='add'>+	0x0157, 0x0157,</div><div class='add'>+	0x0159, 0x0159,</div><div class='add'>+	0x015b, 0x015b,</div><div class='add'>+	0x015d, 0x015d,</div><div class='add'>+	0x015f, 0x015f,</div><div class='add'>+	0x0161, 0x0161,</div><div class='add'>+	0x0163, 0x0163,</div><div class='add'>+	0x0165, 0x0165,</div><div class='add'>+	0x0167, 0x0167,</div><div class='add'>+	0x0169, 0x0169,</div><div class='add'>+	0x016b, 0x016b,</div><div class='add'>+	0x016d, 0x016d,</div><div class='add'>+	0x016f, 0x016f,</div><div class='add'>+	0x0171, 0x0171,</div><div class='add'>+	0x0173, 0x0173,</div><div class='add'>+	0x0175, 0x0175,</div><div class='add'>+	0x0177, 0x0177,</div><div class='add'>+	0x017a, 0x017a,</div><div class='add'>+	0x017c, 0x017c,</div><div class='add'>+	0x017e, 0x0180,</div><div class='add'>+	0x0183, 0x0183,</div><div class='add'>+	0x0185, 0x0185,</div><div class='add'>+	0x0188, 0x0188,</div><div class='add'>+	0x018c, 0x018d,</div><div class='add'>+	0x0192, 0x0192,</div><div class='add'>+	0x0195, 0x0195,</div><div class='add'>+	0x0199, 0x019b,</div><div class='add'>+	0x019e, 0x019e,</div><div class='add'>+	0x01a1, 0x01a1,</div><div class='add'>+	0x01a3, 0x01a3,</div><div class='add'>+	0x01a5, 0x01a5,</div><div class='add'>+	0x01a8, 0x01a8,</div><div class='add'>+	0x01aa, 0x01ab,</div><div class='add'>+	0x01ad, 0x01ad,</div><div class='add'>+	0x01b0, 0x01b0,</div><div class='add'>+	0x01b4, 0x01b4,</div><div class='add'>+	0x01b6, 0x01b6,</div><div class='add'>+	0x01b9, 0x01ba,</div><div class='add'>+	0x01bd, 0x01bf,</div><div class='add'>+	0x01c6, 0x01c6,</div><div class='add'>+	0x01c9, 0x01c9,</div><div class='add'>+	0x01cc, 0x01cc,</div><div class='add'>+	0x01ce, 0x01ce,</div><div class='add'>+	0x01d0, 0x01d0,</div><div class='add'>+	0x01d2, 0x01d2,</div><div class='add'>+	0x01d4, 0x01d4,</div><div class='add'>+	0x01d6, 0x01d6,</div><div class='add'>+	0x01d8, 0x01d8,</div><div class='add'>+	0x01da, 0x01da,</div><div class='add'>+	0x01dc, 0x01dd,</div><div class='add'>+	0x01df, 0x01df,</div><div class='add'>+	0x01e1, 0x01e1,</div><div class='add'>+	0x01e3, 0x01e3,</div><div class='add'>+	0x01e5, 0x01e5,</div><div class='add'>+	0x01e7, 0x01e7,</div><div class='add'>+	0x01e9, 0x01e9,</div><div class='add'>+	0x01eb, 0x01eb,</div><div class='add'>+	0x01ed, 0x01ed,</div><div class='add'>+	0x01ef, 0x01f0,</div><div class='add'>+	0x01f3, 0x01f3,</div><div class='add'>+	0x01f5, 0x01f5,</div><div class='add'>+	0x01f9, 0x01f9,</div><div class='add'>+	0x01fb, 0x01fb,</div><div class='add'>+	0x01fd, 0x01fd,</div><div class='add'>+	0x01ff, 0x01ff,</div><div class='add'>+	0x0201, 0x0201,</div><div class='add'>+	0x0203, 0x0203,</div><div class='add'>+	0x0205, 0x0205,</div><div class='add'>+	0x0207, 0x0207,</div><div class='add'>+	0x0209, 0x0209,</div><div class='add'>+	0x020b, 0x020b,</div><div class='add'>+	0x020d, 0x020d,</div><div class='add'>+	0x020f, 0x020f,</div><div class='add'>+	0x0211, 0x0211,</div><div class='add'>+	0x0213, 0x0213,</div><div class='add'>+	0x0215, 0x0215,</div><div class='add'>+	0x0217, 0x0217,</div><div class='add'>+	0x0219, 0x0219,</div><div class='add'>+	0x021b, 0x021b,</div><div class='add'>+	0x021d, 0x021d,</div><div class='add'>+	0x021f, 0x021f,</div><div class='add'>+	0x0221, 0x0221,</div><div class='add'>+	0x0223, 0x0223,</div><div class='add'>+	0x0225, 0x0225,</div><div class='add'>+	0x0227, 0x0227,</div><div class='add'>+	0x0229, 0x0229,</div><div class='add'>+	0x022b, 0x022b,</div><div class='add'>+	0x022d, 0x022d,</div><div class='add'>+	0x022f, 0x022f,</div><div class='add'>+	0x0231, 0x0231,</div><div class='add'>+	0x0233, 0x0239,</div><div class='add'>+	0x023c, 0x023c,</div><div class='add'>+	0x023f, 0x0240,</div><div class='add'>+	0x0242, 0x0242,</div><div class='add'>+	0x0247, 0x0247,</div><div class='add'>+	0x0249, 0x0249,</div><div class='add'>+	0x024b, 0x024b,</div><div class='add'>+	0x024d, 0x024d,</div><div class='add'>+	0x024f, 0x0293,</div><div class='add'>+	0x0295, 0x02af,</div><div class='add'>+	0x0371, 0x0371,</div><div class='add'>+	0x0373, 0x0373,</div><div class='add'>+	0x0377, 0x0377,</div><div class='add'>+	0x037b, 0x037d,</div><div class='add'>+	0x0390, 0x0390,</div><div class='add'>+	0x03ac, 0x03ce,</div><div class='add'>+	0x03d0, 0x03d1,</div><div class='add'>+	0x03d5, 0x03d7,</div><div class='add'>+	0x03d9, 0x03d9,</div><div class='add'>+	0x03db, 0x03db,</div><div class='add'>+	0x03dd, 0x03dd,</div><div class='add'>+	0x03df, 0x03df,</div><div class='add'>+	0x03e1, 0x03e1,</div><div class='add'>+	0x03e3, 0x03e3,</div><div class='add'>+	0x03e5, 0x03e5,</div><div class='add'>+	0x03e7, 0x03e7,</div><div class='add'>+	0x03e9, 0x03e9,</div><div class='add'>+	0x03eb, 0x03eb,</div><div class='add'>+	0x03ed, 0x03ed,</div><div class='add'>+	0x03ef, 0x03f3,</div><div class='add'>+	0x03f5, 0x03f5,</div><div class='add'>+	0x03f8, 0x03f8,</div><div class='add'>+	0x03fb, 0x03fc,</div><div class='add'>+	0x0430, 0x045f,</div><div class='add'>+	0x0461, 0x0461,</div><div class='add'>+	0x0463, 0x0463,</div><div class='add'>+	0x0465, 0x0465,</div><div class='add'>+	0x0467, 0x0467,</div><div class='add'>+	0x0469, 0x0469,</div><div class='add'>+	0x046b, 0x046b,</div><div class='add'>+	0x046d, 0x046d,</div><div class='add'>+	0x046f, 0x046f,</div><div class='add'>+	0x0471, 0x0471,</div><div class='add'>+	0x0473, 0x0473,</div><div class='add'>+	0x0475, 0x0475,</div><div class='add'>+	0x0477, 0x0477,</div><div class='add'>+	0x0479, 0x0479,</div><div class='add'>+	0x047b, 0x047b,</div><div class='add'>+	0x047d, 0x047d,</div><div class='add'>+	0x047f, 0x047f,</div><div class='add'>+	0x0481, 0x0481,</div><div class='add'>+	0x048b, 0x048b,</div><div class='add'>+	0x048d, 0x048d,</div><div class='add'>+	0x048f, 0x048f,</div><div class='add'>+	0x0491, 0x0491,</div><div class='add'>+	0x0493, 0x0493,</div><div class='add'>+	0x0495, 0x0495,</div><div class='add'>+	0x0497, 0x0497,</div><div class='add'>+	0x0499, 0x0499,</div><div class='add'>+	0x049b, 0x049b,</div><div class='add'>+	0x049d, 0x049d,</div><div class='add'>+	0x049f, 0x049f,</div><div class='add'>+	0x04a1, 0x04a1,</div><div class='add'>+	0x04a3, 0x04a3,</div><div class='add'>+	0x04a5, 0x04a5,</div><div class='add'>+	0x04a7, 0x04a7,</div><div class='add'>+	0x04a9, 0x04a9,</div><div class='add'>+	0x04ab, 0x04ab,</div><div class='add'>+	0x04ad, 0x04ad,</div><div class='add'>+	0x04af, 0x04af,</div><div class='add'>+	0x04b1, 0x04b1,</div><div class='add'>+	0x04b3, 0x04b3,</div><div class='add'>+	0x04b5, 0x04b5,</div><div class='add'>+	0x04b7, 0x04b7,</div><div class='add'>+	0x04b9, 0x04b9,</div><div class='add'>+	0x04bb, 0x04bb,</div><div class='add'>+	0x04bd, 0x04bd,</div><div class='add'>+	0x04bf, 0x04bf,</div><div class='add'>+	0x04c2, 0x04c2,</div><div class='add'>+	0x04c4, 0x04c4,</div><div class='add'>+	0x04c6, 0x04c6,</div><div class='add'>+	0x04c8, 0x04c8,</div><div class='add'>+	0x04ca, 0x04ca,</div><div class='add'>+	0x04cc, 0x04cc,</div><div class='add'>+	0x04ce, 0x04cf,</div><div class='add'>+	0x04d1, 0x04d1,</div><div class='add'>+	0x04d3, 0x04d3,</div><div class='add'>+	0x04d5, 0x04d5,</div><div class='add'>+	0x04d7, 0x04d7,</div><div class='add'>+	0x04d9, 0x04d9,</div><div class='add'>+	0x04db, 0x04db,</div><div class='add'>+	0x04dd, 0x04dd,</div><div class='add'>+	0x04df, 0x04df,</div><div class='add'>+	0x04e1, 0x04e1,</div><div class='add'>+	0x04e3, 0x04e3,</div><div class='add'>+	0x04e5, 0x04e5,</div><div class='add'>+	0x04e7, 0x04e7,</div><div class='add'>+	0x04e9, 0x04e9,</div><div class='add'>+	0x04eb, 0x04eb,</div><div class='add'>+	0x04ed, 0x04ed,</div><div class='add'>+	0x04ef, 0x04ef,</div><div class='add'>+	0x04f1, 0x04f1,</div><div class='add'>+	0x04f3, 0x04f3,</div><div class='add'>+	0x04f5, 0x04f5,</div><div class='add'>+	0x04f7, 0x04f7,</div><div class='add'>+	0x04f9, 0x04f9,</div><div class='add'>+	0x04fb, 0x04fb,</div><div class='add'>+	0x04fd, 0x04fd,</div><div class='add'>+	0x04ff, 0x04ff,</div><div class='add'>+	0x0501, 0x0501,</div><div class='add'>+	0x0503, 0x0503,</div><div class='add'>+	0x0505, 0x0505,</div><div class='add'>+	0x0507, 0x0507,</div><div class='add'>+	0x0509, 0x0509,</div><div class='add'>+	0x050b, 0x050b,</div><div class='add'>+	0x050d, 0x050d,</div><div class='add'>+	0x050f, 0x050f,</div><div class='add'>+	0x0511, 0x0511,</div><div class='add'>+	0x0513, 0x0513,</div><div class='add'>+	0x0515, 0x0515,</div><div class='add'>+	0x0517, 0x0517,</div><div class='add'>+	0x0519, 0x0519,</div><div class='add'>+	0x051b, 0x051b,</div><div class='add'>+	0x051d, 0x051d,</div><div class='add'>+	0x051f, 0x051f,</div><div class='add'>+	0x0521, 0x0521,</div><div class='add'>+	0x0523, 0x0523,</div><div class='add'>+	0x0525, 0x0525,</div><div class='add'>+	0x0527, 0x0527,</div><div class='add'>+	0x0529, 0x0529,</div><div class='add'>+	0x052b, 0x052b,</div><div class='add'>+	0x052d, 0x052d,</div><div class='add'>+	0x052f, 0x052f,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fd, 0x10ff,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1d00, 0x1d2b,</div><div class='add'>+	0x1d6b, 0x1d77,</div><div class='add'>+	0x1d79, 0x1d9a,</div><div class='add'>+	0x1e01, 0x1e01,</div><div class='add'>+	0x1e03, 0x1e03,</div><div class='add'>+	0x1e05, 0x1e05,</div><div class='add'>+	0x1e07, 0x1e07,</div><div class='add'>+	0x1e09, 0x1e09,</div><div class='add'>+	0x1e0b, 0x1e0b,</div><div class='add'>+	0x1e0d, 0x1e0d,</div><div class='add'>+	0x1e0f, 0x1e0f,</div><div class='add'>+	0x1e11, 0x1e11,</div><div class='add'>+	0x1e13, 0x1e13,</div><div class='add'>+	0x1e15, 0x1e15,</div><div class='add'>+	0x1e17, 0x1e17,</div><div class='add'>+	0x1e19, 0x1e19,</div><div class='add'>+	0x1e1b, 0x1e1b,</div><div class='add'>+	0x1e1d, 0x1e1d,</div><div class='add'>+	0x1e1f, 0x1e1f,</div><div class='add'>+	0x1e21, 0x1e21,</div><div class='add'>+	0x1e23, 0x1e23,</div><div class='add'>+	0x1e25, 0x1e25,</div><div class='add'>+	0x1e27, 0x1e27,</div><div class='add'>+	0x1e29, 0x1e29,</div><div class='add'>+	0x1e2b, 0x1e2b,</div><div class='add'>+	0x1e2d, 0x1e2d,</div><div class='add'>+	0x1e2f, 0x1e2f,</div><div class='add'>+	0x1e31, 0x1e31,</div><div class='add'>+	0x1e33, 0x1e33,</div><div class='add'>+	0x1e35, 0x1e35,</div><div class='add'>+	0x1e37, 0x1e37,</div><div class='add'>+	0x1e39, 0x1e39,</div><div class='add'>+	0x1e3b, 0x1e3b,</div><div class='add'>+	0x1e3d, 0x1e3d,</div><div class='add'>+	0x1e3f, 0x1e3f,</div><div class='add'>+	0x1e41, 0x1e41,</div><div class='add'>+	0x1e43, 0x1e43,</div><div class='add'>+	0x1e45, 0x1e45,</div><div class='add'>+	0x1e47, 0x1e47,</div><div class='add'>+	0x1e49, 0x1e49,</div><div class='add'>+	0x1e4b, 0x1e4b,</div><div class='add'>+	0x1e4d, 0x1e4d,</div><div class='add'>+	0x1e4f, 0x1e4f,</div><div class='add'>+	0x1e51, 0x1e51,</div><div class='add'>+	0x1e53, 0x1e53,</div><div class='add'>+	0x1e55, 0x1e55,</div><div class='add'>+	0x1e57, 0x1e57,</div><div class='add'>+	0x1e59, 0x1e59,</div><div class='add'>+	0x1e5b, 0x1e5b,</div><div class='add'>+	0x1e5d, 0x1e5d,</div><div class='add'>+	0x1e5f, 0x1e5f,</div><div class='add'>+	0x1e61, 0x1e61,</div><div class='add'>+	0x1e63, 0x1e63,</div><div class='add'>+	0x1e65, 0x1e65,</div><div class='add'>+	0x1e67, 0x1e67,</div><div class='add'>+	0x1e69, 0x1e69,</div><div class='add'>+	0x1e6b, 0x1e6b,</div><div class='add'>+	0x1e6d, 0x1e6d,</div><div class='add'>+	0x1e6f, 0x1e6f,</div><div class='add'>+	0x1e71, 0x1e71,</div><div class='add'>+	0x1e73, 0x1e73,</div><div class='add'>+	0x1e75, 0x1e75,</div><div class='add'>+	0x1e77, 0x1e77,</div><div class='add'>+	0x1e79, 0x1e79,</div><div class='add'>+	0x1e7b, 0x1e7b,</div><div class='add'>+	0x1e7d, 0x1e7d,</div><div class='add'>+	0x1e7f, 0x1e7f,</div><div class='add'>+	0x1e81, 0x1e81,</div><div class='add'>+	0x1e83, 0x1e83,</div><div class='add'>+	0x1e85, 0x1e85,</div><div class='add'>+	0x1e87, 0x1e87,</div><div class='add'>+	0x1e89, 0x1e89,</div><div class='add'>+	0x1e8b, 0x1e8b,</div><div class='add'>+	0x1e8d, 0x1e8d,</div><div class='add'>+	0x1e8f, 0x1e8f,</div><div class='add'>+	0x1e91, 0x1e91,</div><div class='add'>+	0x1e93, 0x1e93,</div><div class='add'>+	0x1e95, 0x1e9d,</div><div class='add'>+	0x1e9f, 0x1e9f,</div><div class='add'>+	0x1ea1, 0x1ea1,</div><div class='add'>+	0x1ea3, 0x1ea3,</div><div class='add'>+	0x1ea5, 0x1ea5,</div><div class='add'>+	0x1ea7, 0x1ea7,</div><div class='add'>+	0x1ea9, 0x1ea9,</div><div class='add'>+	0x1eab, 0x1eab,</div><div class='add'>+	0x1ead, 0x1ead,</div><div class='add'>+	0x1eaf, 0x1eaf,</div><div class='add'>+	0x1eb1, 0x1eb1,</div><div class='add'>+	0x1eb3, 0x1eb3,</div><div class='add'>+	0x1eb5, 0x1eb5,</div><div class='add'>+	0x1eb7, 0x1eb7,</div><div class='add'>+	0x1eb9, 0x1eb9,</div><div class='add'>+	0x1ebb, 0x1ebb,</div><div class='add'>+	0x1ebd, 0x1ebd,</div><div class='add'>+	0x1ebf, 0x1ebf,</div><div class='add'>+	0x1ec1, 0x1ec1,</div><div class='add'>+	0x1ec3, 0x1ec3,</div><div class='add'>+	0x1ec5, 0x1ec5,</div><div class='add'>+	0x1ec7, 0x1ec7,</div><div class='add'>+	0x1ec9, 0x1ec9,</div><div class='add'>+	0x1ecb, 0x1ecb,</div><div class='add'>+	0x1ecd, 0x1ecd,</div><div class='add'>+	0x1ecf, 0x1ecf,</div><div class='add'>+	0x1ed1, 0x1ed1,</div><div class='add'>+	0x1ed3, 0x1ed3,</div><div class='add'>+	0x1ed5, 0x1ed5,</div><div class='add'>+	0x1ed7, 0x1ed7,</div><div class='add'>+	0x1ed9, 0x1ed9,</div><div class='add'>+	0x1edb, 0x1edb,</div><div class='add'>+	0x1edd, 0x1edd,</div><div class='add'>+	0x1edf, 0x1edf,</div><div class='add'>+	0x1ee1, 0x1ee1,</div><div class='add'>+	0x1ee3, 0x1ee3,</div><div class='add'>+	0x1ee5, 0x1ee5,</div><div class='add'>+	0x1ee7, 0x1ee7,</div><div class='add'>+	0x1ee9, 0x1ee9,</div><div class='add'>+	0x1eeb, 0x1eeb,</div><div class='add'>+	0x1eed, 0x1eed,</div><div class='add'>+	0x1eef, 0x1eef,</div><div class='add'>+	0x1ef1, 0x1ef1,</div><div class='add'>+	0x1ef3, 0x1ef3,</div><div class='add'>+	0x1ef5, 0x1ef5,</div><div class='add'>+	0x1ef7, 0x1ef7,</div><div class='add'>+	0x1ef9, 0x1ef9,</div><div class='add'>+	0x1efb, 0x1efb,</div><div class='add'>+	0x1efd, 0x1efd,</div><div class='add'>+	0x1eff, 0x1f07,</div><div class='add'>+	0x1f10, 0x1f15,</div><div class='add'>+	0x1f20, 0x1f27,</div><div class='add'>+	0x1f30, 0x1f37,</div><div class='add'>+	0x1f40, 0x1f45,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f60, 0x1f67,</div><div class='add'>+	0x1f70, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1f87,</div><div class='add'>+	0x1f90, 0x1f97,</div><div class='add'>+	0x1fa0, 0x1fa7,</div><div class='add'>+	0x1fb0, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fb7,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fc7,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fd7,</div><div class='add'>+	0x1fe0, 0x1fe7,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ff7,</div><div class='add'>+	0x210a, 0x210a,</div><div class='add'>+	0x210e, 0x210f,</div><div class='add'>+	0x2113, 0x2113,</div><div class='add'>+	0x212f, 0x212f,</div><div class='add'>+	0x2134, 0x2134,</div><div class='add'>+	0x2139, 0x2139,</div><div class='add'>+	0x213c, 0x213d,</div><div class='add'>+	0x2146, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2184, 0x2184,</div><div class='add'>+	0x2c30, 0x2c5f,</div><div class='add'>+	0x2c61, 0x2c61,</div><div class='add'>+	0x2c65, 0x2c66,</div><div class='add'>+	0x2c68, 0x2c68,</div><div class='add'>+	0x2c6a, 0x2c6a,</div><div class='add'>+	0x2c6c, 0x2c6c,</div><div class='add'>+	0x2c71, 0x2c71,</div><div class='add'>+	0x2c73, 0x2c74,</div><div class='add'>+	0x2c76, 0x2c7b,</div><div class='add'>+	0x2c81, 0x2c81,</div><div class='add'>+	0x2c83, 0x2c83,</div><div class='add'>+	0x2c85, 0x2c85,</div><div class='add'>+	0x2c87, 0x2c87,</div><div class='add'>+	0x2c89, 0x2c89,</div><div class='add'>+	0x2c8b, 0x2c8b,</div><div class='add'>+	0x2c8d, 0x2c8d,</div><div class='add'>+	0x2c8f, 0x2c8f,</div><div class='add'>+	0x2c91, 0x2c91,</div><div class='add'>+	0x2c93, 0x2c93,</div><div class='add'>+	0x2c95, 0x2c95,</div><div class='add'>+	0x2c97, 0x2c97,</div><div class='add'>+	0x2c99, 0x2c99,</div><div class='add'>+	0x2c9b, 0x2c9b,</div><div class='add'>+	0x2c9d, 0x2c9d,</div><div class='add'>+	0x2c9f, 0x2c9f,</div><div class='add'>+	0x2ca1, 0x2ca1,</div><div class='add'>+	0x2ca3, 0x2ca3,</div><div class='add'>+	0x2ca5, 0x2ca5,</div><div class='add'>+	0x2ca7, 0x2ca7,</div><div class='add'>+	0x2ca9, 0x2ca9,</div><div class='add'>+	0x2cab, 0x2cab,</div><div class='add'>+	0x2cad, 0x2cad,</div><div class='add'>+	0x2caf, 0x2caf,</div><div class='add'>+	0x2cb1, 0x2cb1,</div><div class='add'>+	0x2cb3, 0x2cb3,</div><div class='add'>+	0x2cb5, 0x2cb5,</div><div class='add'>+	0x2cb7, 0x2cb7,</div><div class='add'>+	0x2cb9, 0x2cb9,</div><div class='add'>+	0x2cbb, 0x2cbb,</div><div class='add'>+	0x2cbd, 0x2cbd,</div><div class='add'>+	0x2cbf, 0x2cbf,</div><div class='add'>+	0x2cc1, 0x2cc1,</div><div class='add'>+	0x2cc3, 0x2cc3,</div><div class='add'>+	0x2cc5, 0x2cc5,</div><div class='add'>+	0x2cc7, 0x2cc7,</div><div class='add'>+	0x2cc9, 0x2cc9,</div><div class='add'>+	0x2ccb, 0x2ccb,</div><div class='add'>+	0x2ccd, 0x2ccd,</div><div class='add'>+	0x2ccf, 0x2ccf,</div><div class='add'>+	0x2cd1, 0x2cd1,</div><div class='add'>+	0x2cd3, 0x2cd3,</div><div class='add'>+	0x2cd5, 0x2cd5,</div><div class='add'>+	0x2cd7, 0x2cd7,</div><div class='add'>+	0x2cd9, 0x2cd9,</div><div class='add'>+	0x2cdb, 0x2cdb,</div><div class='add'>+	0x2cdd, 0x2cdd,</div><div class='add'>+	0x2cdf, 0x2cdf,</div><div class='add'>+	0x2ce1, 0x2ce1,</div><div class='add'>+	0x2ce3, 0x2ce4,</div><div class='add'>+	0x2cec, 0x2cec,</div><div class='add'>+	0x2cee, 0x2cee,</div><div class='add'>+	0x2cf3, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0xa641, 0xa641,</div><div class='add'>+	0xa643, 0xa643,</div><div class='add'>+	0xa645, 0xa645,</div><div class='add'>+	0xa647, 0xa647,</div><div class='add'>+	0xa649, 0xa649,</div><div class='add'>+	0xa64b, 0xa64b,</div><div class='add'>+	0xa64d, 0xa64d,</div><div class='add'>+	0xa64f, 0xa64f,</div><div class='add'>+	0xa651, 0xa651,</div><div class='add'>+	0xa653, 0xa653,</div><div class='add'>+	0xa655, 0xa655,</div><div class='add'>+	0xa657, 0xa657,</div><div class='add'>+	0xa659, 0xa659,</div><div class='add'>+	0xa65b, 0xa65b,</div><div class='add'>+	0xa65d, 0xa65d,</div><div class='add'>+	0xa65f, 0xa65f,</div><div class='add'>+	0xa661, 0xa661,</div><div class='add'>+	0xa663, 0xa663,</div><div class='add'>+	0xa665, 0xa665,</div><div class='add'>+	0xa667, 0xa667,</div><div class='add'>+	0xa669, 0xa669,</div><div class='add'>+	0xa66b, 0xa66b,</div><div class='add'>+	0xa66d, 0xa66d,</div><div class='add'>+	0xa681, 0xa681,</div><div class='add'>+	0xa683, 0xa683,</div><div class='add'>+	0xa685, 0xa685,</div><div class='add'>+	0xa687, 0xa687,</div><div class='add'>+	0xa689, 0xa689,</div><div class='add'>+	0xa68b, 0xa68b,</div><div class='add'>+	0xa68d, 0xa68d,</div><div class='add'>+	0xa68f, 0xa68f,</div><div class='add'>+	0xa691, 0xa691,</div><div class='add'>+	0xa693, 0xa693,</div><div class='add'>+	0xa695, 0xa695,</div><div class='add'>+	0xa697, 0xa697,</div><div class='add'>+	0xa699, 0xa699,</div><div class='add'>+	0xa69b, 0xa69b,</div><div class='add'>+	0xa723, 0xa723,</div><div class='add'>+	0xa725, 0xa725,</div><div class='add'>+	0xa727, 0xa727,</div><div class='add'>+	0xa729, 0xa729,</div><div class='add'>+	0xa72b, 0xa72b,</div><div class='add'>+	0xa72d, 0xa72d,</div><div class='add'>+	0xa72f, 0xa731,</div><div class='add'>+	0xa733, 0xa733,</div><div class='add'>+	0xa735, 0xa735,</div><div class='add'>+	0xa737, 0xa737,</div><div class='add'>+	0xa739, 0xa739,</div><div class='add'>+	0xa73b, 0xa73b,</div><div class='add'>+	0xa73d, 0xa73d,</div><div class='add'>+	0xa73f, 0xa73f,</div><div class='add'>+	0xa741, 0xa741,</div><div class='add'>+	0xa743, 0xa743,</div><div class='add'>+	0xa745, 0xa745,</div><div class='add'>+	0xa747, 0xa747,</div><div class='add'>+	0xa749, 0xa749,</div><div class='add'>+	0xa74b, 0xa74b,</div><div class='add'>+	0xa74d, 0xa74d,</div><div class='add'>+	0xa74f, 0xa74f,</div><div class='add'>+	0xa751, 0xa751,</div><div class='add'>+	0xa753, 0xa753,</div><div class='add'>+	0xa755, 0xa755,</div><div class='add'>+	0xa757, 0xa757,</div><div class='add'>+	0xa759, 0xa759,</div><div class='add'>+	0xa75b, 0xa75b,</div><div class='add'>+	0xa75d, 0xa75d,</div><div class='add'>+	0xa75f, 0xa75f,</div><div class='add'>+	0xa761, 0xa761,</div><div class='add'>+	0xa763, 0xa763,</div><div class='add'>+	0xa765, 0xa765,</div><div class='add'>+	0xa767, 0xa767,</div><div class='add'>+	0xa769, 0xa769,</div><div class='add'>+	0xa76b, 0xa76b,</div><div class='add'>+	0xa76d, 0xa76d,</div><div class='add'>+	0xa76f, 0xa76f,</div><div class='add'>+	0xa771, 0xa778,</div><div class='add'>+	0xa77a, 0xa77a,</div><div class='add'>+	0xa77c, 0xa77c,</div><div class='add'>+	0xa77f, 0xa77f,</div><div class='add'>+	0xa781, 0xa781,</div><div class='add'>+	0xa783, 0xa783,</div><div class='add'>+	0xa785, 0xa785,</div><div class='add'>+	0xa787, 0xa787,</div><div class='add'>+	0xa78c, 0xa78c,</div><div class='add'>+	0xa78e, 0xa78e,</div><div class='add'>+	0xa791, 0xa791,</div><div class='add'>+	0xa793, 0xa795,</div><div class='add'>+	0xa797, 0xa797,</div><div class='add'>+	0xa799, 0xa799,</div><div class='add'>+	0xa79b, 0xa79b,</div><div class='add'>+	0xa79d, 0xa79d,</div><div class='add'>+	0xa79f, 0xa79f,</div><div class='add'>+	0xa7a1, 0xa7a1,</div><div class='add'>+	0xa7a3, 0xa7a3,</div><div class='add'>+	0xa7a5, 0xa7a5,</div><div class='add'>+	0xa7a7, 0xa7a7,</div><div class='add'>+	0xa7a9, 0xa7a9,</div><div class='add'>+	0xa7af, 0xa7af,</div><div class='add'>+	0xa7b5, 0xa7b5,</div><div class='add'>+	0xa7b7, 0xa7b7,</div><div class='add'>+	0xa7b9, 0xa7b9,</div><div class='add'>+	0xa7bb, 0xa7bb,</div><div class='add'>+	0xa7bd, 0xa7bd,</div><div class='add'>+	0xa7bf, 0xa7bf,</div><div class='add'>+	0xa7c1, 0xa7c1,</div><div class='add'>+	0xa7c3, 0xa7c3,</div><div class='add'>+	0xa7c8, 0xa7c8,</div><div class='add'>+	0xa7ca, 0xa7ca,</div><div class='add'>+	0xa7d1, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d5,</div><div class='add'>+	0xa7d7, 0xa7d7,</div><div class='add'>+	0xa7d9, 0xa7d9,</div><div class='add'>+	0xa7f6, 0xa7f6,</div><div class='add'>+	0xa7fa, 0xa7fa,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab60, 0xab68,</div><div class='add'>+	0xab70, 0xabbf,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0x10428, 0x1044f,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x118c0, 0x118df,</div><div class='add'>+	0x16e60, 0x16e7f,</div><div class='add'>+	0x1d41a, 0x1d433,</div><div class='add'>+	0x1d44e, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d467,</div><div class='add'>+	0x1d482, 0x1d49b,</div><div class='add'>+	0x1d4b6, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d4cf,</div><div class='add'>+	0x1d4ea, 0x1d503,</div><div class='add'>+	0x1d51e, 0x1d537,</div><div class='add'>+	0x1d552, 0x1d56b,</div><div class='add'>+	0x1d586, 0x1d59f,</div><div class='add'>+	0x1d5ba, 0x1d5d3,</div><div class='add'>+	0x1d5ee, 0x1d607,</div><div class='add'>+	0x1d622, 0x1d63b,</div><div class='add'>+	0x1d656, 0x1d66f,</div><div class='add'>+	0x1d68a, 0x1d6a5,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6e1,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d71b,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d755,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d78f,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7c9,</div><div class='add'>+	0x1d7cb, 0x1d7cb,</div><div class='add'>+	0x1df00, 0x1df09,</div><div class='add'>+	0x1df0b, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e922, 0x1e943,</div><div class='add'>+}; /* CR_Ll */</div><div class='add'>+</div><div class='add'>+/* 'Lm': General Category */</div><div class='add'>+static const OnigCodePoint CR_Lm[] = {</div><div class='add'>+	71,</div><div class='add'>+	0x02b0, 0x02c1,</div><div class='add'>+	0x02c6, 0x02d1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x02ec, 0x02ec,</div><div class='add'>+	0x02ee, 0x02ee,</div><div class='add'>+	0x0374, 0x0374,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x0559, 0x0559,</div><div class='add'>+	0x0640, 0x0640,</div><div class='add'>+	0x06e5, 0x06e6,</div><div class='add'>+	0x07f4, 0x07f5,</div><div class='add'>+	0x07fa, 0x07fa,</div><div class='add'>+	0x081a, 0x081a,</div><div class='add'>+	0x0824, 0x0824,</div><div class='add'>+	0x0828, 0x0828,</div><div class='add'>+	0x08c9, 0x08c9,</div><div class='add'>+	0x0971, 0x0971,</div><div class='add'>+	0x0e46, 0x0e46,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x10fc, 0x10fc,</div><div class='add'>+	0x17d7, 0x17d7,</div><div class='add'>+	0x1843, 0x1843,</div><div class='add'>+	0x1aa7, 0x1aa7,</div><div class='add'>+	0x1c78, 0x1c7d,</div><div class='add'>+	0x1d2c, 0x1d6a,</div><div class='add'>+	0x1d78, 0x1d78,</div><div class='add'>+	0x1d9b, 0x1dbf,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x2c7c, 0x2c7d,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2e2f, 0x2e2f,</div><div class='add'>+	0x3005, 0x3005,</div><div class='add'>+	0x3031, 0x3035,</div><div class='add'>+	0x303b, 0x303b,</div><div class='add'>+	0x309d, 0x309e,</div><div class='add'>+	0x30fc, 0x30fe,</div><div class='add'>+	0xa015, 0xa015,</div><div class='add'>+	0xa4f8, 0xa4fd,</div><div class='add'>+	0xa60c, 0xa60c,</div><div class='add'>+	0xa67f, 0xa67f,</div><div class='add'>+	0xa69c, 0xa69d,</div><div class='add'>+	0xa717, 0xa71f,</div><div class='add'>+	0xa770, 0xa770,</div><div class='add'>+	0xa788, 0xa788,</div><div class='add'>+	0xa7f2, 0xa7f4,</div><div class='add'>+	0xa7f8, 0xa7f9,</div><div class='add'>+	0xa9cf, 0xa9cf,</div><div class='add'>+	0xa9e6, 0xa9e6,</div><div class='add'>+	0xaa70, 0xaa70,</div><div class='add'>+	0xaadd, 0xaadd,</div><div class='add'>+	0xaaf3, 0xaaf4,</div><div class='add'>+	0xab5c, 0xab5f,</div><div class='add'>+	0xab69, 0xab69,</div><div class='add'>+	0xff70, 0xff70,</div><div class='add'>+	0xff9e, 0xff9f,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x16b40, 0x16b43,</div><div class='add'>+	0x16f93, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x16fe3, 0x16fe3,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e137, 0x1e13d,</div><div class='add'>+	0x1e4eb, 0x1e4eb,</div><div class='add'>+	0x1e94b, 0x1e94b,</div><div class='add'>+}; /* CR_Lm */</div><div class='add'>+</div><div class='add'>+/* 'Lo': General Category */</div><div class='add'>+static const OnigCodePoint CR_Lo[] = {</div><div class='add'>+	510,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x01bb, 0x01bb,</div><div class='add'>+	0x01c0, 0x01c3,</div><div class='add'>+	0x0294, 0x0294,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f2,</div><div class='add'>+	0x0620, 0x063f,</div><div class='add'>+	0x0641, 0x064a,</div><div class='add'>+	0x066e, 0x066f,</div><div class='add'>+	0x0671, 0x06d3,</div><div class='add'>+	0x06d5, 0x06d5,</div><div class='add'>+	0x06ee, 0x06ef,</div><div class='add'>+	0x06fa, 0x06fc,</div><div class='add'>+	0x06ff, 0x06ff,</div><div class='add'>+	0x0710, 0x0710,</div><div class='add'>+	0x0712, 0x072f,</div><div class='add'>+	0x074d, 0x07a5,</div><div class='add'>+	0x07b1, 0x07b1,</div><div class='add'>+	0x07ca, 0x07ea,</div><div class='add'>+	0x0800, 0x0815,</div><div class='add'>+	0x0840, 0x0858,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x0887,</div><div class='add'>+	0x0889, 0x088e,</div><div class='add'>+	0x08a0, 0x08c8,</div><div class='add'>+	0x0904, 0x0939,</div><div class='add'>+	0x093d, 0x093d,</div><div class='add'>+	0x0950, 0x0950,</div><div class='add'>+	0x0958, 0x0961,</div><div class='add'>+	0x0972, 0x0980,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bd, 0x09bd,</div><div class='add'>+	0x09ce, 0x09ce,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e1,</div><div class='add'>+	0x09f0, 0x09f1,</div><div class='add'>+	0x09fc, 0x09fc,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a72, 0x0a74,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abd, 0x0abd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae1,</div><div class='add'>+	0x0af9, 0x0af9,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3d, 0x0b3d,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b71, 0x0b71,</div><div class='add'>+	0x0b83, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c3d,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c80, 0x0c80,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbd, 0x0cbd,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d04, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d3d,</div><div class='add'>+	0x0d4e, 0x0d4e,</div><div class='add'>+	0x0d54, 0x0d56,</div><div class='add'>+	0x0d5f, 0x0d61,</div><div class='add'>+	0x0d7a, 0x0d7f,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0e01, 0x0e30,</div><div class='add'>+	0x0e32, 0x0e33,</div><div class='add'>+	0x0e40, 0x0e45,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0eb0,</div><div class='add'>+	0x0eb2, 0x0eb3,</div><div class='add'>+	0x0ebd, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f00,</div><div class='add'>+	0x0f40, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f88, 0x0f8c,</div><div class='add'>+	0x1000, 0x102a,</div><div class='add'>+	0x103f, 0x103f,</div><div class='add'>+	0x1050, 0x1055,</div><div class='add'>+	0x105a, 0x105d,</div><div class='add'>+	0x1061, 0x1061,</div><div class='add'>+	0x1065, 0x1066,</div><div class='add'>+	0x106e, 0x1070,</div><div class='add'>+	0x1075, 0x1081,</div><div class='add'>+	0x108e, 0x108e,</div><div class='add'>+	0x1100, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x1380, 0x138f,</div><div class='add'>+	0x1401, 0x166c,</div><div class='add'>+	0x166f, 0x167f,</div><div class='add'>+	0x1681, 0x169a,</div><div class='add'>+	0x16a0, 0x16ea,</div><div class='add'>+	0x16f1, 0x16f8,</div><div class='add'>+	0x1700, 0x1711,</div><div class='add'>+	0x171f, 0x1731,</div><div class='add'>+	0x1740, 0x1751,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1780, 0x17b3,</div><div class='add'>+	0x17dc, 0x17dc,</div><div class='add'>+	0x1820, 0x1842,</div><div class='add'>+	0x1844, 0x1878,</div><div class='add'>+	0x1880, 0x1884,</div><div class='add'>+	0x1887, 0x18a8,</div><div class='add'>+	0x18aa, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1950, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x1a00, 0x1a16,</div><div class='add'>+	0x1a20, 0x1a54,</div><div class='add'>+	0x1b05, 0x1b33,</div><div class='add'>+	0x1b45, 0x1b4c,</div><div class='add'>+	0x1b83, 0x1ba0,</div><div class='add'>+	0x1bae, 0x1baf,</div><div class='add'>+	0x1bba, 0x1be5,</div><div class='add'>+	0x1c00, 0x1c23,</div><div class='add'>+	0x1c4d, 0x1c4f,</div><div class='add'>+	0x1c5a, 0x1c77,</div><div class='add'>+	0x1ce9, 0x1cec,</div><div class='add'>+	0x1cee, 0x1cf3,</div><div class='add'>+	0x1cf5, 0x1cf6,</div><div class='add'>+	0x1cfa, 0x1cfa,</div><div class='add'>+	0x2135, 0x2138,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x3006, 0x3006,</div><div class='add'>+	0x303c, 0x303c,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x309f, 0x309f,</div><div class='add'>+	0x30a1, 0x30fa,</div><div class='add'>+	0x30ff, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x31a0, 0x31bf,</div><div class='add'>+	0x31f0, 0x31ff,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0xa014,</div><div class='add'>+	0xa016, 0xa48c,</div><div class='add'>+	0xa4d0, 0xa4f7,</div><div class='add'>+	0xa500, 0xa60b,</div><div class='add'>+	0xa610, 0xa61f,</div><div class='add'>+	0xa62a, 0xa62b,</div><div class='add'>+	0xa66e, 0xa66e,</div><div class='add'>+	0xa6a0, 0xa6e5,</div><div class='add'>+	0xa78f, 0xa78f,</div><div class='add'>+	0xa7f7, 0xa7f7,</div><div class='add'>+	0xa7fb, 0xa801,</div><div class='add'>+	0xa803, 0xa805,</div><div class='add'>+	0xa807, 0xa80a,</div><div class='add'>+	0xa80c, 0xa822,</div><div class='add'>+	0xa840, 0xa873,</div><div class='add'>+	0xa882, 0xa8b3,</div><div class='add'>+	0xa8f2, 0xa8f7,</div><div class='add'>+	0xa8fb, 0xa8fb,</div><div class='add'>+	0xa8fd, 0xa8fe,</div><div class='add'>+	0xa90a, 0xa925,</div><div class='add'>+	0xa930, 0xa946,</div><div class='add'>+	0xa960, 0xa97c,</div><div class='add'>+	0xa984, 0xa9b2,</div><div class='add'>+	0xa9e0, 0xa9e4,</div><div class='add'>+	0xa9e7, 0xa9ef,</div><div class='add'>+	0xa9fa, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa28,</div><div class='add'>+	0xaa40, 0xaa42,</div><div class='add'>+	0xaa44, 0xaa4b,</div><div class='add'>+	0xaa60, 0xaa6f,</div><div class='add'>+	0xaa71, 0xaa76,</div><div class='add'>+	0xaa7a, 0xaa7a,</div><div class='add'>+	0xaa7e, 0xaaaf,</div><div class='add'>+	0xaab1, 0xaab1,</div><div class='add'>+	0xaab5, 0xaab6,</div><div class='add'>+	0xaab9, 0xaabd,</div><div class='add'>+	0xaac0, 0xaac0,</div><div class='add'>+	0xaac2, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadc,</div><div class='add'>+	0xaae0, 0xaaea,</div><div class='add'>+	0xaaf2, 0xaaf2,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xabc0, 0xabe2,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb1d, 0xfb1d,</div><div class='add'>+	0xfb1f, 0xfb28,</div><div class='add'>+	0xfb2a, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3d,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdfb,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xff66, 0xff6f,</div><div class='add'>+	0xff71, 0xff9d,</div><div class='add'>+	0xffa0, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031f,</div><div class='add'>+	0x1032d, 0x10340,</div><div class='add'>+	0x10342, 0x10349,</div><div class='add'>+	0x10350, 0x10375,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x103a0, 0x103c3,</div><div class='add'>+	0x103c8, 0x103cf,</div><div class='add'>+	0x10450, 0x1049d,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10860, 0x10876,</div><div class='add'>+	0x10880, 0x1089e,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x10900, 0x10915,</div><div class='add'>+	0x10920, 0x10939,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a00,</div><div class='add'>+	0x10a10, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a60, 0x10a7c,</div><div class='add'>+	0x10a80, 0x10a9c,</div><div class='add'>+	0x10ac0, 0x10ac7,</div><div class='add'>+	0x10ac9, 0x10ae4,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b40, 0x10b55,</div><div class='add'>+	0x10b60, 0x10b72,</div><div class='add'>+	0x10b80, 0x10b91,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10d00, 0x10d23,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10f00, 0x10f1c,</div><div class='add'>+	0x10f27, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f45,</div><div class='add'>+	0x10f70, 0x10f81,</div><div class='add'>+	0x10fb0, 0x10fc4,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11003, 0x11037,</div><div class='add'>+	0x11071, 0x11072,</div><div class='add'>+	0x11075, 0x11075,</div><div class='add'>+	0x11083, 0x110af,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x11103, 0x11126,</div><div class='add'>+	0x11144, 0x11144,</div><div class='add'>+	0x11147, 0x11147,</div><div class='add'>+	0x11150, 0x11172,</div><div class='add'>+	0x11176, 0x11176,</div><div class='add'>+	0x11183, 0x111b2,</div><div class='add'>+	0x111c1, 0x111c4,</div><div class='add'>+	0x111da, 0x111da,</div><div class='add'>+	0x111dc, 0x111dc,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1122b,</div><div class='add'>+	0x1123f, 0x11240,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a8,</div><div class='add'>+	0x112b0, 0x112de,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133d, 0x1133d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x1135d, 0x11361,</div><div class='add'>+	0x11400, 0x11434,</div><div class='add'>+	0x11447, 0x1144a,</div><div class='add'>+	0x1145f, 0x11461,</div><div class='add'>+	0x11480, 0x114af,</div><div class='add'>+	0x114c4, 0x114c5,</div><div class='add'>+	0x114c7, 0x114c7,</div><div class='add'>+	0x11580, 0x115ae,</div><div class='add'>+	0x115d8, 0x115db,</div><div class='add'>+	0x11600, 0x1162f,</div><div class='add'>+	0x11644, 0x11644,</div><div class='add'>+	0x11680, 0x116aa,</div><div class='add'>+	0x116b8, 0x116b8,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x11740, 0x11746,</div><div class='add'>+	0x11800, 0x1182b,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x1192f,</div><div class='add'>+	0x1193f, 0x1193f,</div><div class='add'>+	0x11941, 0x11941,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d0,</div><div class='add'>+	0x119e1, 0x119e1,</div><div class='add'>+	0x119e3, 0x119e3,</div><div class='add'>+	0x11a00, 0x11a00,</div><div class='add'>+	0x11a0b, 0x11a32,</div><div class='add'>+	0x11a3a, 0x11a3a,</div><div class='add'>+	0x11a50, 0x11a50,</div><div class='add'>+	0x11a5c, 0x11a89,</div><div class='add'>+	0x11a9d, 0x11a9d,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c2e,</div><div class='add'>+	0x11c40, 0x11c40,</div><div class='add'>+	0x11c72, 0x11c8f,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d30,</div><div class='add'>+	0x11d46, 0x11d46,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d89,</div><div class='add'>+	0x11d98, 0x11d98,</div><div class='add'>+	0x11ee0, 0x11ef2,</div><div class='add'>+	0x11f02, 0x11f02,</div><div class='add'>+	0x11f04, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f33,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff0,</div><div class='add'>+	0x13000, 0x1342f,</div><div class='add'>+	0x13441, 0x13446,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a70, 0x16abe,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16b00, 0x16b2f,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f50, 0x16f50,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1df0a, 0x1df0a,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e14e, 0x1e14e,</div><div class='add'>+	0x1e290, 0x1e2ad,</div><div class='add'>+	0x1e2c0, 0x1e2eb,</div><div class='add'>+	0x1e4d0, 0x1e4ea,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+}; /* CR_Lo */</div><div class='add'>+</div><div class='add'>+/* 'Lt': General Category */</div><div class='add'>+static const OnigCodePoint CR_Lt[] = {</div><div class='add'>+	10,</div><div class='add'>+	0x01c5, 0x01c5,</div><div class='add'>+	0x01c8, 0x01c8,</div><div class='add'>+	0x01cb, 0x01cb,</div><div class='add'>+	0x01f2, 0x01f2,</div><div class='add'>+	0x1f88, 0x1f8f,</div><div class='add'>+	0x1f98, 0x1f9f,</div><div class='add'>+	0x1fa8, 0x1faf,</div><div class='add'>+	0x1fbc, 0x1fbc,</div><div class='add'>+	0x1fcc, 0x1fcc,</div><div class='add'>+	0x1ffc, 0x1ffc,</div><div class='add'>+}; /* CR_Lt */</div><div class='add'>+</div><div class='add'>+/* 'Lu': General Category */</div><div class='add'>+static const OnigCodePoint CR_Lu[] = {</div><div class='add'>+	646,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00de,</div><div class='add'>+	0x0100, 0x0100,</div><div class='add'>+	0x0102, 0x0102,</div><div class='add'>+	0x0104, 0x0104,</div><div class='add'>+	0x0106, 0x0106,</div><div class='add'>+	0x0108, 0x0108,</div><div class='add'>+	0x010a, 0x010a,</div><div class='add'>+	0x010c, 0x010c,</div><div class='add'>+	0x010e, 0x010e,</div><div class='add'>+	0x0110, 0x0110,</div><div class='add'>+	0x0112, 0x0112,</div><div class='add'>+	0x0114, 0x0114,</div><div class='add'>+	0x0116, 0x0116,</div><div class='add'>+	0x0118, 0x0118,</div><div class='add'>+	0x011a, 0x011a,</div><div class='add'>+	0x011c, 0x011c,</div><div class='add'>+	0x011e, 0x011e,</div><div class='add'>+	0x0120, 0x0120,</div><div class='add'>+	0x0122, 0x0122,</div><div class='add'>+	0x0124, 0x0124,</div><div class='add'>+	0x0126, 0x0126,</div><div class='add'>+	0x0128, 0x0128,</div><div class='add'>+	0x012a, 0x012a,</div><div class='add'>+	0x012c, 0x012c,</div><div class='add'>+	0x012e, 0x012e,</div><div class='add'>+	0x0130, 0x0130,</div><div class='add'>+	0x0132, 0x0132,</div><div class='add'>+	0x0134, 0x0134,</div><div class='add'>+	0x0136, 0x0136,</div><div class='add'>+	0x0139, 0x0139,</div><div class='add'>+	0x013b, 0x013b,</div><div class='add'>+	0x013d, 0x013d,</div><div class='add'>+	0x013f, 0x013f,</div><div class='add'>+	0x0141, 0x0141,</div><div class='add'>+	0x0143, 0x0143,</div><div class='add'>+	0x0145, 0x0145,</div><div class='add'>+	0x0147, 0x0147,</div><div class='add'>+	0x014a, 0x014a,</div><div class='add'>+	0x014c, 0x014c,</div><div class='add'>+	0x014e, 0x014e,</div><div class='add'>+	0x0150, 0x0150,</div><div class='add'>+	0x0152, 0x0152,</div><div class='add'>+	0x0154, 0x0154,</div><div class='add'>+	0x0156, 0x0156,</div><div class='add'>+	0x0158, 0x0158,</div><div class='add'>+	0x015a, 0x015a,</div><div class='add'>+	0x015c, 0x015c,</div><div class='add'>+	0x015e, 0x015e,</div><div class='add'>+	0x0160, 0x0160,</div><div class='add'>+	0x0162, 0x0162,</div><div class='add'>+	0x0164, 0x0164,</div><div class='add'>+	0x0166, 0x0166,</div><div class='add'>+	0x0168, 0x0168,</div><div class='add'>+	0x016a, 0x016a,</div><div class='add'>+	0x016c, 0x016c,</div><div class='add'>+	0x016e, 0x016e,</div><div class='add'>+	0x0170, 0x0170,</div><div class='add'>+	0x0172, 0x0172,</div><div class='add'>+	0x0174, 0x0174,</div><div class='add'>+	0x0176, 0x0176,</div><div class='add'>+	0x0178, 0x0179,</div><div class='add'>+	0x017b, 0x017b,</div><div class='add'>+	0x017d, 0x017d,</div><div class='add'>+	0x0181, 0x0182,</div><div class='add'>+	0x0184, 0x0184,</div><div class='add'>+	0x0186, 0x0187,</div><div class='add'>+	0x0189, 0x018b,</div><div class='add'>+	0x018e, 0x0191,</div><div class='add'>+	0x0193, 0x0194,</div><div class='add'>+	0x0196, 0x0198,</div><div class='add'>+	0x019c, 0x019d,</div><div class='add'>+	0x019f, 0x01a0,</div><div class='add'>+	0x01a2, 0x01a2,</div><div class='add'>+	0x01a4, 0x01a4,</div><div class='add'>+	0x01a6, 0x01a7,</div><div class='add'>+	0x01a9, 0x01a9,</div><div class='add'>+	0x01ac, 0x01ac,</div><div class='add'>+	0x01ae, 0x01af,</div><div class='add'>+	0x01b1, 0x01b3,</div><div class='add'>+	0x01b5, 0x01b5,</div><div class='add'>+	0x01b7, 0x01b8,</div><div class='add'>+	0x01bc, 0x01bc,</div><div class='add'>+	0x01c4, 0x01c4,</div><div class='add'>+	0x01c7, 0x01c7,</div><div class='add'>+	0x01ca, 0x01ca,</div><div class='add'>+	0x01cd, 0x01cd,</div><div class='add'>+	0x01cf, 0x01cf,</div><div class='add'>+	0x01d1, 0x01d1,</div><div class='add'>+	0x01d3, 0x01d3,</div><div class='add'>+	0x01d5, 0x01d5,</div><div class='add'>+	0x01d7, 0x01d7,</div><div class='add'>+	0x01d9, 0x01d9,</div><div class='add'>+	0x01db, 0x01db,</div><div class='add'>+	0x01de, 0x01de,</div><div class='add'>+	0x01e0, 0x01e0,</div><div class='add'>+	0x01e2, 0x01e2,</div><div class='add'>+	0x01e4, 0x01e4,</div><div class='add'>+	0x01e6, 0x01e6,</div><div class='add'>+	0x01e8, 0x01e8,</div><div class='add'>+	0x01ea, 0x01ea,</div><div class='add'>+	0x01ec, 0x01ec,</div><div class='add'>+	0x01ee, 0x01ee,</div><div class='add'>+	0x01f1, 0x01f1,</div><div class='add'>+	0x01f4, 0x01f4,</div><div class='add'>+	0x01f6, 0x01f8,</div><div class='add'>+	0x01fa, 0x01fa,</div><div class='add'>+	0x01fc, 0x01fc,</div><div class='add'>+	0x01fe, 0x01fe,</div><div class='add'>+	0x0200, 0x0200,</div><div class='add'>+	0x0202, 0x0202,</div><div class='add'>+	0x0204, 0x0204,</div><div class='add'>+	0x0206, 0x0206,</div><div class='add'>+	0x0208, 0x0208,</div><div class='add'>+	0x020a, 0x020a,</div><div class='add'>+	0x020c, 0x020c,</div><div class='add'>+	0x020e, 0x020e,</div><div class='add'>+	0x0210, 0x0210,</div><div class='add'>+	0x0212, 0x0212,</div><div class='add'>+	0x0214, 0x0214,</div><div class='add'>+	0x0216, 0x0216,</div><div class='add'>+	0x0218, 0x0218,</div><div class='add'>+	0x021a, 0x021a,</div><div class='add'>+	0x021c, 0x021c,</div><div class='add'>+	0x021e, 0x021e,</div><div class='add'>+	0x0220, 0x0220,</div><div class='add'>+	0x0222, 0x0222,</div><div class='add'>+	0x0224, 0x0224,</div><div class='add'>+	0x0226, 0x0226,</div><div class='add'>+	0x0228, 0x0228,</div><div class='add'>+	0x022a, 0x022a,</div><div class='add'>+	0x022c, 0x022c,</div><div class='add'>+	0x022e, 0x022e,</div><div class='add'>+	0x0230, 0x0230,</div><div class='add'>+	0x0232, 0x0232,</div><div class='add'>+	0x023a, 0x023b,</div><div class='add'>+	0x023d, 0x023e,</div><div class='add'>+	0x0241, 0x0241,</div><div class='add'>+	0x0243, 0x0246,</div><div class='add'>+	0x0248, 0x0248,</div><div class='add'>+	0x024a, 0x024a,</div><div class='add'>+	0x024c, 0x024c,</div><div class='add'>+	0x024e, 0x024e,</div><div class='add'>+	0x0370, 0x0370,</div><div class='add'>+	0x0372, 0x0372,</div><div class='add'>+	0x0376, 0x0376,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x038f,</div><div class='add'>+	0x0391, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ab,</div><div class='add'>+	0x03cf, 0x03cf,</div><div class='add'>+	0x03d2, 0x03d4,</div><div class='add'>+	0x03d8, 0x03d8,</div><div class='add'>+	0x03da, 0x03da,</div><div class='add'>+	0x03dc, 0x03dc,</div><div class='add'>+	0x03de, 0x03de,</div><div class='add'>+	0x03e0, 0x03e0,</div><div class='add'>+	0x03e2, 0x03e2,</div><div class='add'>+	0x03e4, 0x03e4,</div><div class='add'>+	0x03e6, 0x03e6,</div><div class='add'>+	0x03e8, 0x03e8,</div><div class='add'>+	0x03ea, 0x03ea,</div><div class='add'>+	0x03ec, 0x03ec,</div><div class='add'>+	0x03ee, 0x03ee,</div><div class='add'>+	0x03f4, 0x03f4,</div><div class='add'>+	0x03f7, 0x03f7,</div><div class='add'>+	0x03f9, 0x03fa,</div><div class='add'>+	0x03fd, 0x042f,</div><div class='add'>+	0x0460, 0x0460,</div><div class='add'>+	0x0462, 0x0462,</div><div class='add'>+	0x0464, 0x0464,</div><div class='add'>+	0x0466, 0x0466,</div><div class='add'>+	0x0468, 0x0468,</div><div class='add'>+	0x046a, 0x046a,</div><div class='add'>+	0x046c, 0x046c,</div><div class='add'>+	0x046e, 0x046e,</div><div class='add'>+	0x0470, 0x0470,</div><div class='add'>+	0x0472, 0x0472,</div><div class='add'>+	0x0474, 0x0474,</div><div class='add'>+	0x0476, 0x0476,</div><div class='add'>+	0x0478, 0x0478,</div><div class='add'>+	0x047a, 0x047a,</div><div class='add'>+	0x047c, 0x047c,</div><div class='add'>+	0x047e, 0x047e,</div><div class='add'>+	0x0480, 0x0480,</div><div class='add'>+	0x048a, 0x048a,</div><div class='add'>+	0x048c, 0x048c,</div><div class='add'>+	0x048e, 0x048e,</div><div class='add'>+	0x0490, 0x0490,</div><div class='add'>+	0x0492, 0x0492,</div><div class='add'>+	0x0494, 0x0494,</div><div class='add'>+	0x0496, 0x0496,</div><div class='add'>+	0x0498, 0x0498,</div><div class='add'>+	0x049a, 0x049a,</div><div class='add'>+	0x049c, 0x049c,</div><div class='add'>+	0x049e, 0x049e,</div><div class='add'>+	0x04a0, 0x04a0,</div><div class='add'>+	0x04a2, 0x04a2,</div><div class='add'>+	0x04a4, 0x04a4,</div><div class='add'>+	0x04a6, 0x04a6,</div><div class='add'>+	0x04a8, 0x04a8,</div><div class='add'>+	0x04aa, 0x04aa,</div><div class='add'>+	0x04ac, 0x04ac,</div><div class='add'>+	0x04ae, 0x04ae,</div><div class='add'>+	0x04b0, 0x04b0,</div><div class='add'>+	0x04b2, 0x04b2,</div><div class='add'>+	0x04b4, 0x04b4,</div><div class='add'>+	0x04b6, 0x04b6,</div><div class='add'>+	0x04b8, 0x04b8,</div><div class='add'>+	0x04ba, 0x04ba,</div><div class='add'>+	0x04bc, 0x04bc,</div><div class='add'>+	0x04be, 0x04be,</div><div class='add'>+	0x04c0, 0x04c1,</div><div class='add'>+	0x04c3, 0x04c3,</div><div class='add'>+	0x04c5, 0x04c5,</div><div class='add'>+	0x04c7, 0x04c7,</div><div class='add'>+	0x04c9, 0x04c9,</div><div class='add'>+	0x04cb, 0x04cb,</div><div class='add'>+	0x04cd, 0x04cd,</div><div class='add'>+	0x04d0, 0x04d0,</div><div class='add'>+	0x04d2, 0x04d2,</div><div class='add'>+	0x04d4, 0x04d4,</div><div class='add'>+	0x04d6, 0x04d6,</div><div class='add'>+	0x04d8, 0x04d8,</div><div class='add'>+	0x04da, 0x04da,</div><div class='add'>+	0x04dc, 0x04dc,</div><div class='add'>+	0x04de, 0x04de,</div><div class='add'>+	0x04e0, 0x04e0,</div><div class='add'>+	0x04e2, 0x04e2,</div><div class='add'>+	0x04e4, 0x04e4,</div><div class='add'>+	0x04e6, 0x04e6,</div><div class='add'>+	0x04e8, 0x04e8,</div><div class='add'>+	0x04ea, 0x04ea,</div><div class='add'>+	0x04ec, 0x04ec,</div><div class='add'>+	0x04ee, 0x04ee,</div><div class='add'>+	0x04f0, 0x04f0,</div><div class='add'>+	0x04f2, 0x04f2,</div><div class='add'>+	0x04f4, 0x04f4,</div><div class='add'>+	0x04f6, 0x04f6,</div><div class='add'>+	0x04f8, 0x04f8,</div><div class='add'>+	0x04fa, 0x04fa,</div><div class='add'>+	0x04fc, 0x04fc,</div><div class='add'>+	0x04fe, 0x04fe,</div><div class='add'>+	0x0500, 0x0500,</div><div class='add'>+	0x0502, 0x0502,</div><div class='add'>+	0x0504, 0x0504,</div><div class='add'>+	0x0506, 0x0506,</div><div class='add'>+	0x0508, 0x0508,</div><div class='add'>+	0x050a, 0x050a,</div><div class='add'>+	0x050c, 0x050c,</div><div class='add'>+	0x050e, 0x050e,</div><div class='add'>+	0x0510, 0x0510,</div><div class='add'>+	0x0512, 0x0512,</div><div class='add'>+	0x0514, 0x0514,</div><div class='add'>+	0x0516, 0x0516,</div><div class='add'>+	0x0518, 0x0518,</div><div class='add'>+	0x051a, 0x051a,</div><div class='add'>+	0x051c, 0x051c,</div><div class='add'>+	0x051e, 0x051e,</div><div class='add'>+	0x0520, 0x0520,</div><div class='add'>+	0x0522, 0x0522,</div><div class='add'>+	0x0524, 0x0524,</div><div class='add'>+	0x0526, 0x0526,</div><div class='add'>+	0x0528, 0x0528,</div><div class='add'>+	0x052a, 0x052a,</div><div class='add'>+	0x052c, 0x052c,</div><div class='add'>+	0x052e, 0x052e,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1e00, 0x1e00,</div><div class='add'>+	0x1e02, 0x1e02,</div><div class='add'>+	0x1e04, 0x1e04,</div><div class='add'>+	0x1e06, 0x1e06,</div><div class='add'>+	0x1e08, 0x1e08,</div><div class='add'>+	0x1e0a, 0x1e0a,</div><div class='add'>+	0x1e0c, 0x1e0c,</div><div class='add'>+	0x1e0e, 0x1e0e,</div><div class='add'>+	0x1e10, 0x1e10,</div><div class='add'>+	0x1e12, 0x1e12,</div><div class='add'>+	0x1e14, 0x1e14,</div><div class='add'>+	0x1e16, 0x1e16,</div><div class='add'>+	0x1e18, 0x1e18,</div><div class='add'>+	0x1e1a, 0x1e1a,</div><div class='add'>+	0x1e1c, 0x1e1c,</div><div class='add'>+	0x1e1e, 0x1e1e,</div><div class='add'>+	0x1e20, 0x1e20,</div><div class='add'>+	0x1e22, 0x1e22,</div><div class='add'>+	0x1e24, 0x1e24,</div><div class='add'>+	0x1e26, 0x1e26,</div><div class='add'>+	0x1e28, 0x1e28,</div><div class='add'>+	0x1e2a, 0x1e2a,</div><div class='add'>+	0x1e2c, 0x1e2c,</div><div class='add'>+	0x1e2e, 0x1e2e,</div><div class='add'>+	0x1e30, 0x1e30,</div><div class='add'>+	0x1e32, 0x1e32,</div><div class='add'>+	0x1e34, 0x1e34,</div><div class='add'>+	0x1e36, 0x1e36,</div><div class='add'>+	0x1e38, 0x1e38,</div><div class='add'>+	0x1e3a, 0x1e3a,</div><div class='add'>+	0x1e3c, 0x1e3c,</div><div class='add'>+	0x1e3e, 0x1e3e,</div><div class='add'>+	0x1e40, 0x1e40,</div><div class='add'>+	0x1e42, 0x1e42,</div><div class='add'>+	0x1e44, 0x1e44,</div><div class='add'>+	0x1e46, 0x1e46,</div><div class='add'>+	0x1e48, 0x1e48,</div><div class='add'>+	0x1e4a, 0x1e4a,</div><div class='add'>+	0x1e4c, 0x1e4c,</div><div class='add'>+	0x1e4e, 0x1e4e,</div><div class='add'>+	0x1e50, 0x1e50,</div><div class='add'>+	0x1e52, 0x1e52,</div><div class='add'>+	0x1e54, 0x1e54,</div><div class='add'>+	0x1e56, 0x1e56,</div><div class='add'>+	0x1e58, 0x1e58,</div><div class='add'>+	0x1e5a, 0x1e5a,</div><div class='add'>+	0x1e5c, 0x1e5c,</div><div class='add'>+	0x1e5e, 0x1e5e,</div><div class='add'>+	0x1e60, 0x1e60,</div><div class='add'>+	0x1e62, 0x1e62,</div><div class='add'>+	0x1e64, 0x1e64,</div><div class='add'>+	0x1e66, 0x1e66,</div><div class='add'>+	0x1e68, 0x1e68,</div><div class='add'>+	0x1e6a, 0x1e6a,</div><div class='add'>+	0x1e6c, 0x1e6c,</div><div class='add'>+	0x1e6e, 0x1e6e,</div><div class='add'>+	0x1e70, 0x1e70,</div><div class='add'>+	0x1e72, 0x1e72,</div><div class='add'>+	0x1e74, 0x1e74,</div><div class='add'>+	0x1e76, 0x1e76,</div><div class='add'>+	0x1e78, 0x1e78,</div><div class='add'>+	0x1e7a, 0x1e7a,</div><div class='add'>+	0x1e7c, 0x1e7c,</div><div class='add'>+	0x1e7e, 0x1e7e,</div><div class='add'>+	0x1e80, 0x1e80,</div><div class='add'>+	0x1e82, 0x1e82,</div><div class='add'>+	0x1e84, 0x1e84,</div><div class='add'>+	0x1e86, 0x1e86,</div><div class='add'>+	0x1e88, 0x1e88,</div><div class='add'>+	0x1e8a, 0x1e8a,</div><div class='add'>+	0x1e8c, 0x1e8c,</div><div class='add'>+	0x1e8e, 0x1e8e,</div><div class='add'>+	0x1e90, 0x1e90,</div><div class='add'>+	0x1e92, 0x1e92,</div><div class='add'>+	0x1e94, 0x1e94,</div><div class='add'>+	0x1e9e, 0x1e9e,</div><div class='add'>+	0x1ea0, 0x1ea0,</div><div class='add'>+	0x1ea2, 0x1ea2,</div><div class='add'>+	0x1ea4, 0x1ea4,</div><div class='add'>+	0x1ea6, 0x1ea6,</div><div class='add'>+	0x1ea8, 0x1ea8,</div><div class='add'>+	0x1eaa, 0x1eaa,</div><div class='add'>+	0x1eac, 0x1eac,</div><div class='add'>+	0x1eae, 0x1eae,</div><div class='add'>+	0x1eb0, 0x1eb0,</div><div class='add'>+	0x1eb2, 0x1eb2,</div><div class='add'>+	0x1eb4, 0x1eb4,</div><div class='add'>+	0x1eb6, 0x1eb6,</div><div class='add'>+	0x1eb8, 0x1eb8,</div><div class='add'>+	0x1eba, 0x1eba,</div><div class='add'>+	0x1ebc, 0x1ebc,</div><div class='add'>+	0x1ebe, 0x1ebe,</div><div class='add'>+	0x1ec0, 0x1ec0,</div><div class='add'>+	0x1ec2, 0x1ec2,</div><div class='add'>+	0x1ec4, 0x1ec4,</div><div class='add'>+	0x1ec6, 0x1ec6,</div><div class='add'>+	0x1ec8, 0x1ec8,</div><div class='add'>+	0x1eca, 0x1eca,</div><div class='add'>+	0x1ecc, 0x1ecc,</div><div class='add'>+	0x1ece, 0x1ece,</div><div class='add'>+	0x1ed0, 0x1ed0,</div><div class='add'>+	0x1ed2, 0x1ed2,</div><div class='add'>+	0x1ed4, 0x1ed4,</div><div class='add'>+	0x1ed6, 0x1ed6,</div><div class='add'>+	0x1ed8, 0x1ed8,</div><div class='add'>+	0x1eda, 0x1eda,</div><div class='add'>+	0x1edc, 0x1edc,</div><div class='add'>+	0x1ede, 0x1ede,</div><div class='add'>+	0x1ee0, 0x1ee0,</div><div class='add'>+	0x1ee2, 0x1ee2,</div><div class='add'>+	0x1ee4, 0x1ee4,</div><div class='add'>+	0x1ee6, 0x1ee6,</div><div class='add'>+	0x1ee8, 0x1ee8,</div><div class='add'>+	0x1eea, 0x1eea,</div><div class='add'>+	0x1eec, 0x1eec,</div><div class='add'>+	0x1eee, 0x1eee,</div><div class='add'>+	0x1ef0, 0x1ef0,</div><div class='add'>+	0x1ef2, 0x1ef2,</div><div class='add'>+	0x1ef4, 0x1ef4,</div><div class='add'>+	0x1ef6, 0x1ef6,</div><div class='add'>+	0x1ef8, 0x1ef8,</div><div class='add'>+	0x1efa, 0x1efa,</div><div class='add'>+	0x1efc, 0x1efc,</div><div class='add'>+	0x1efe, 0x1efe,</div><div class='add'>+	0x1f08, 0x1f0f,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f28, 0x1f2f,</div><div class='add'>+	0x1f38, 0x1f3f,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f5f,</div><div class='add'>+	0x1f68, 0x1f6f,</div><div class='add'>+	0x1fb8, 0x1fbb,</div><div class='add'>+	0x1fc8, 0x1fcb,</div><div class='add'>+	0x1fd8, 0x1fdb,</div><div class='add'>+	0x1fe8, 0x1fec,</div><div class='add'>+	0x1ff8, 0x1ffb,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210b, 0x210d,</div><div class='add'>+	0x2110, 0x2112,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2119, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x212d,</div><div class='add'>+	0x2130, 0x2133,</div><div class='add'>+	0x213e, 0x213f,</div><div class='add'>+	0x2145, 0x2145,</div><div class='add'>+	0x2183, 0x2183,</div><div class='add'>+	0x2c00, 0x2c2f,</div><div class='add'>+	0x2c60, 0x2c60,</div><div class='add'>+	0x2c62, 0x2c64,</div><div class='add'>+	0x2c67, 0x2c67,</div><div class='add'>+	0x2c69, 0x2c69,</div><div class='add'>+	0x2c6b, 0x2c6b,</div><div class='add'>+	0x2c6d, 0x2c70,</div><div class='add'>+	0x2c72, 0x2c72,</div><div class='add'>+	0x2c75, 0x2c75,</div><div class='add'>+	0x2c7e, 0x2c80,</div><div class='add'>+	0x2c82, 0x2c82,</div><div class='add'>+	0x2c84, 0x2c84,</div><div class='add'>+	0x2c86, 0x2c86,</div><div class='add'>+	0x2c88, 0x2c88,</div><div class='add'>+	0x2c8a, 0x2c8a,</div><div class='add'>+	0x2c8c, 0x2c8c,</div><div class='add'>+	0x2c8e, 0x2c8e,</div><div class='add'>+	0x2c90, 0x2c90,</div><div class='add'>+	0x2c92, 0x2c92,</div><div class='add'>+	0x2c94, 0x2c94,</div><div class='add'>+	0x2c96, 0x2c96,</div><div class='add'>+	0x2c98, 0x2c98,</div><div class='add'>+	0x2c9a, 0x2c9a,</div><div class='add'>+	0x2c9c, 0x2c9c,</div><div class='add'>+	0x2c9e, 0x2c9e,</div><div class='add'>+	0x2ca0, 0x2ca0,</div><div class='add'>+	0x2ca2, 0x2ca2,</div><div class='add'>+	0x2ca4, 0x2ca4,</div><div class='add'>+	0x2ca6, 0x2ca6,</div><div class='add'>+	0x2ca8, 0x2ca8,</div><div class='add'>+	0x2caa, 0x2caa,</div><div class='add'>+	0x2cac, 0x2cac,</div><div class='add'>+	0x2cae, 0x2cae,</div><div class='add'>+	0x2cb0, 0x2cb0,</div><div class='add'>+	0x2cb2, 0x2cb2,</div><div class='add'>+	0x2cb4, 0x2cb4,</div><div class='add'>+	0x2cb6, 0x2cb6,</div><div class='add'>+	0x2cb8, 0x2cb8,</div><div class='add'>+	0x2cba, 0x2cba,</div><div class='add'>+	0x2cbc, 0x2cbc,</div><div class='add'>+	0x2cbe, 0x2cbe,</div><div class='add'>+	0x2cc0, 0x2cc0,</div><div class='add'>+	0x2cc2, 0x2cc2,</div><div class='add'>+	0x2cc4, 0x2cc4,</div><div class='add'>+	0x2cc6, 0x2cc6,</div><div class='add'>+	0x2cc8, 0x2cc8,</div><div class='add'>+	0x2cca, 0x2cca,</div><div class='add'>+	0x2ccc, 0x2ccc,</div><div class='add'>+	0x2cce, 0x2cce,</div><div class='add'>+	0x2cd0, 0x2cd0,</div><div class='add'>+	0x2cd2, 0x2cd2,</div><div class='add'>+	0x2cd4, 0x2cd4,</div><div class='add'>+	0x2cd6, 0x2cd6,</div><div class='add'>+	0x2cd8, 0x2cd8,</div><div class='add'>+	0x2cda, 0x2cda,</div><div class='add'>+	0x2cdc, 0x2cdc,</div><div class='add'>+	0x2cde, 0x2cde,</div><div class='add'>+	0x2ce0, 0x2ce0,</div><div class='add'>+	0x2ce2, 0x2ce2,</div><div class='add'>+	0x2ceb, 0x2ceb,</div><div class='add'>+	0x2ced, 0x2ced,</div><div class='add'>+	0x2cf2, 0x2cf2,</div><div class='add'>+	0xa640, 0xa640,</div><div class='add'>+	0xa642, 0xa642,</div><div class='add'>+	0xa644, 0xa644,</div><div class='add'>+	0xa646, 0xa646,</div><div class='add'>+	0xa648, 0xa648,</div><div class='add'>+	0xa64a, 0xa64a,</div><div class='add'>+	0xa64c, 0xa64c,</div><div class='add'>+	0xa64e, 0xa64e,</div><div class='add'>+	0xa650, 0xa650,</div><div class='add'>+	0xa652, 0xa652,</div><div class='add'>+	0xa654, 0xa654,</div><div class='add'>+	0xa656, 0xa656,</div><div class='add'>+	0xa658, 0xa658,</div><div class='add'>+	0xa65a, 0xa65a,</div><div class='add'>+	0xa65c, 0xa65c,</div><div class='add'>+	0xa65e, 0xa65e,</div><div class='add'>+	0xa660, 0xa660,</div><div class='add'>+	0xa662, 0xa662,</div><div class='add'>+	0xa664, 0xa664,</div><div class='add'>+	0xa666, 0xa666,</div><div class='add'>+	0xa668, 0xa668,</div><div class='add'>+	0xa66a, 0xa66a,</div><div class='add'>+	0xa66c, 0xa66c,</div><div class='add'>+	0xa680, 0xa680,</div><div class='add'>+	0xa682, 0xa682,</div><div class='add'>+	0xa684, 0xa684,</div><div class='add'>+	0xa686, 0xa686,</div><div class='add'>+	0xa688, 0xa688,</div><div class='add'>+	0xa68a, 0xa68a,</div><div class='add'>+	0xa68c, 0xa68c,</div><div class='add'>+	0xa68e, 0xa68e,</div><div class='add'>+	0xa690, 0xa690,</div><div class='add'>+	0xa692, 0xa692,</div><div class='add'>+	0xa694, 0xa694,</div><div class='add'>+	0xa696, 0xa696,</div><div class='add'>+	0xa698, 0xa698,</div><div class='add'>+	0xa69a, 0xa69a,</div><div class='add'>+	0xa722, 0xa722,</div><div class='add'>+	0xa724, 0xa724,</div><div class='add'>+	0xa726, 0xa726,</div><div class='add'>+	0xa728, 0xa728,</div><div class='add'>+	0xa72a, 0xa72a,</div><div class='add'>+	0xa72c, 0xa72c,</div><div class='add'>+	0xa72e, 0xa72e,</div><div class='add'>+	0xa732, 0xa732,</div><div class='add'>+	0xa734, 0xa734,</div><div class='add'>+	0xa736, 0xa736,</div><div class='add'>+	0xa738, 0xa738,</div><div class='add'>+	0xa73a, 0xa73a,</div><div class='add'>+	0xa73c, 0xa73c,</div><div class='add'>+	0xa73e, 0xa73e,</div><div class='add'>+	0xa740, 0xa740,</div><div class='add'>+	0xa742, 0xa742,</div><div class='add'>+	0xa744, 0xa744,</div><div class='add'>+	0xa746, 0xa746,</div><div class='add'>+	0xa748, 0xa748,</div><div class='add'>+	0xa74a, 0xa74a,</div><div class='add'>+	0xa74c, 0xa74c,</div><div class='add'>+	0xa74e, 0xa74e,</div><div class='add'>+	0xa750, 0xa750,</div><div class='add'>+	0xa752, 0xa752,</div><div class='add'>+	0xa754, 0xa754,</div><div class='add'>+	0xa756, 0xa756,</div><div class='add'>+	0xa758, 0xa758,</div><div class='add'>+	0xa75a, 0xa75a,</div><div class='add'>+	0xa75c, 0xa75c,</div><div class='add'>+	0xa75e, 0xa75e,</div><div class='add'>+	0xa760, 0xa760,</div><div class='add'>+	0xa762, 0xa762,</div><div class='add'>+	0xa764, 0xa764,</div><div class='add'>+	0xa766, 0xa766,</div><div class='add'>+	0xa768, 0xa768,</div><div class='add'>+	0xa76a, 0xa76a,</div><div class='add'>+	0xa76c, 0xa76c,</div><div class='add'>+	0xa76e, 0xa76e,</div><div class='add'>+	0xa779, 0xa779,</div><div class='add'>+	0xa77b, 0xa77b,</div><div class='add'>+	0xa77d, 0xa77e,</div><div class='add'>+	0xa780, 0xa780,</div><div class='add'>+	0xa782, 0xa782,</div><div class='add'>+	0xa784, 0xa784,</div><div class='add'>+	0xa786, 0xa786,</div><div class='add'>+	0xa78b, 0xa78b,</div><div class='add'>+	0xa78d, 0xa78d,</div><div class='add'>+	0xa790, 0xa790,</div><div class='add'>+	0xa792, 0xa792,</div><div class='add'>+	0xa796, 0xa796,</div><div class='add'>+	0xa798, 0xa798,</div><div class='add'>+	0xa79a, 0xa79a,</div><div class='add'>+	0xa79c, 0xa79c,</div><div class='add'>+	0xa79e, 0xa79e,</div><div class='add'>+	0xa7a0, 0xa7a0,</div><div class='add'>+	0xa7a2, 0xa7a2,</div><div class='add'>+	0xa7a4, 0xa7a4,</div><div class='add'>+	0xa7a6, 0xa7a6,</div><div class='add'>+	0xa7a8, 0xa7a8,</div><div class='add'>+	0xa7aa, 0xa7ae,</div><div class='add'>+	0xa7b0, 0xa7b4,</div><div class='add'>+	0xa7b6, 0xa7b6,</div><div class='add'>+	0xa7b8, 0xa7b8,</div><div class='add'>+	0xa7ba, 0xa7ba,</div><div class='add'>+	0xa7bc, 0xa7bc,</div><div class='add'>+	0xa7be, 0xa7be,</div><div class='add'>+	0xa7c0, 0xa7c0,</div><div class='add'>+	0xa7c2, 0xa7c2,</div><div class='add'>+	0xa7c4, 0xa7c7,</div><div class='add'>+	0xa7c9, 0xa7c9,</div><div class='add'>+	0xa7d0, 0xa7d0,</div><div class='add'>+	0xa7d6, 0xa7d6,</div><div class='add'>+	0xa7d8, 0xa7d8,</div><div class='add'>+	0xa7f5, 0xa7f5,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0x10400, 0x10427,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x118a0, 0x118bf,</div><div class='add'>+	0x16e40, 0x16e5f,</div><div class='add'>+	0x1d400, 0x1d419,</div><div class='add'>+	0x1d434, 0x1d44d,</div><div class='add'>+	0x1d468, 0x1d481,</div><div class='add'>+	0x1d49c, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b5,</div><div class='add'>+	0x1d4d0, 0x1d4e9,</div><div class='add'>+	0x1d504, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d538, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d56c, 0x1d585,</div><div class='add'>+	0x1d5a0, 0x1d5b9,</div><div class='add'>+	0x1d5d4, 0x1d5ed,</div><div class='add'>+	0x1d608, 0x1d621,</div><div class='add'>+	0x1d63c, 0x1d655,</div><div class='add'>+	0x1d670, 0x1d689,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6e2, 0x1d6fa,</div><div class='add'>+	0x1d71c, 0x1d734,</div><div class='add'>+	0x1d756, 0x1d76e,</div><div class='add'>+	0x1d790, 0x1d7a8,</div><div class='add'>+	0x1d7ca, 0x1d7ca,</div><div class='add'>+	0x1e900, 0x1e921,</div><div class='add'>+}; /* CR_Lu */</div><div class='add'>+</div><div class='add'>+/* 'M': Major Category */</div><div class='add'>+static const OnigCodePoint CR_M[] = {</div><div class='add'>+	310,</div><div class='add'>+	0x0300, 0x036f,</div><div class='add'>+	0x0483, 0x0489,</div><div class='add'>+	0x0591, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c5,</div><div class='add'>+	0x05c7, 0x05c7,</div><div class='add'>+	0x0610, 0x061a,</div><div class='add'>+	0x064b, 0x065f,</div><div class='add'>+	0x0670, 0x0670,</div><div class='add'>+	0x06d6, 0x06dc,</div><div class='add'>+	0x06df, 0x06e4,</div><div class='add'>+	0x06e7, 0x06e8,</div><div class='add'>+	0x06ea, 0x06ed,</div><div class='add'>+	0x0711, 0x0711,</div><div class='add'>+	0x0730, 0x074a,</div><div class='add'>+	0x07a6, 0x07b0,</div><div class='add'>+	0x07eb, 0x07f3,</div><div class='add'>+	0x07fd, 0x07fd,</div><div class='add'>+	0x0816, 0x0819,</div><div class='add'>+	0x081b, 0x0823,</div><div class='add'>+	0x0825, 0x0827,</div><div class='add'>+	0x0829, 0x082d,</div><div class='add'>+	0x0859, 0x085b,</div><div class='add'>+	0x0898, 0x089f,</div><div class='add'>+	0x08ca, 0x08e1,</div><div class='add'>+	0x08e3, 0x0903,</div><div class='add'>+	0x093a, 0x093c,</div><div class='add'>+	0x093e, 0x094f,</div><div class='add'>+	0x0951, 0x0957,</div><div class='add'>+	0x0962, 0x0963,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09be, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cd,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09e2, 0x09e3,</div><div class='add'>+	0x09fe, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a70, 0x0a71,</div><div class='add'>+	0x0a75, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0abc, 0x0abc,</div><div class='add'>+	0x0abe, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ae2, 0x0ae3,</div><div class='add'>+	0x0afa, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b3c, 0x0b3c,</div><div class='add'>+	0x0b3e, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b62, 0x0b63,</div><div class='add'>+	0x0b82, 0x0b82,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0c00, 0x0c04,</div><div class='add'>+	0x0c3c, 0x0c3c,</div><div class='add'>+	0x0c3e, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c62, 0x0c63,</div><div class='add'>+	0x0c81, 0x0c83,</div><div class='add'>+	0x0cbc, 0x0cbc,</div><div class='add'>+	0x0cbe, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0ce2, 0x0ce3,</div><div class='add'>+	0x0cf3, 0x0cf3,</div><div class='add'>+	0x0d00, 0x0d03,</div><div class='add'>+	0x0d3b, 0x0d3c,</div><div class='add'>+	0x0d3e, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d62, 0x0d63,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df3,</div><div class='add'>+	0x0e31, 0x0e31,</div><div class='add'>+	0x0e34, 0x0e3a,</div><div class='add'>+	0x0e47, 0x0e4e,</div><div class='add'>+	0x0eb1, 0x0eb1,</div><div class='add'>+	0x0eb4, 0x0ebc,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0f18, 0x0f19,</div><div class='add'>+	0x0f35, 0x0f35,</div><div class='add'>+	0x0f37, 0x0f37,</div><div class='add'>+	0x0f39, 0x0f39,</div><div class='add'>+	0x0f3e, 0x0f3f,</div><div class='add'>+	0x0f71, 0x0f84,</div><div class='add'>+	0x0f86, 0x0f87,</div><div class='add'>+	0x0f8d, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fc6, 0x0fc6,</div><div class='add'>+	0x102b, 0x103e,</div><div class='add'>+	0x1056, 0x1059,</div><div class='add'>+	0x105e, 0x1060,</div><div class='add'>+	0x1062, 0x1064,</div><div class='add'>+	0x1067, 0x106d,</div><div class='add'>+	0x1071, 0x1074,</div><div class='add'>+	0x1082, 0x108d,</div><div class='add'>+	0x108f, 0x108f,</div><div class='add'>+	0x109a, 0x109d,</div><div class='add'>+	0x135d, 0x135f,</div><div class='add'>+	0x1712, 0x1715,</div><div class='add'>+	0x1732, 0x1734,</div><div class='add'>+	0x1752, 0x1753,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x17b4, 0x17d3,</div><div class='add'>+	0x17dd, 0x17dd,</div><div class='add'>+	0x180b, 0x180d,</div><div class='add'>+	0x180f, 0x180f,</div><div class='add'>+	0x1885, 0x1886,</div><div class='add'>+	0x18a9, 0x18a9,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1a17, 0x1a1b,</div><div class='add'>+	0x1a55, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a7f,</div><div class='add'>+	0x1ab0, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b04,</div><div class='add'>+	0x1b34, 0x1b44,</div><div class='add'>+	0x1b6b, 0x1b73,</div><div class='add'>+	0x1b80, 0x1b82,</div><div class='add'>+	0x1ba1, 0x1bad,</div><div class='add'>+	0x1be6, 0x1bf3,</div><div class='add'>+	0x1c24, 0x1c37,</div><div class='add'>+	0x1cd0, 0x1cd2,</div><div class='add'>+	0x1cd4, 0x1ce8,</div><div class='add'>+	0x1ced, 0x1ced,</div><div class='add'>+	0x1cf4, 0x1cf4,</div><div class='add'>+	0x1cf7, 0x1cf9,</div><div class='add'>+	0x1dc0, 0x1dff,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2cef, 0x2cf1,</div><div class='add'>+	0x2d7f, 0x2d7f,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0x302a, 0x302f,</div><div class='add'>+	0x3099, 0x309a,</div><div class='add'>+	0xa66f, 0xa672,</div><div class='add'>+	0xa674, 0xa67d,</div><div class='add'>+	0xa69e, 0xa69f,</div><div class='add'>+	0xa6f0, 0xa6f1,</div><div class='add'>+	0xa802, 0xa802,</div><div class='add'>+	0xa806, 0xa806,</div><div class='add'>+	0xa80b, 0xa80b,</div><div class='add'>+	0xa823, 0xa827,</div><div class='add'>+	0xa82c, 0xa82c,</div><div class='add'>+	0xa880, 0xa881,</div><div class='add'>+	0xa8b4, 0xa8c5,</div><div class='add'>+	0xa8e0, 0xa8f1,</div><div class='add'>+	0xa8ff, 0xa8ff,</div><div class='add'>+	0xa926, 0xa92d,</div><div class='add'>+	0xa947, 0xa953,</div><div class='add'>+	0xa980, 0xa983,</div><div class='add'>+	0xa9b3, 0xa9c0,</div><div class='add'>+	0xa9e5, 0xa9e5,</div><div class='add'>+	0xaa29, 0xaa36,</div><div class='add'>+	0xaa43, 0xaa43,</div><div class='add'>+	0xaa4c, 0xaa4d,</div><div class='add'>+	0xaa7b, 0xaa7d,</div><div class='add'>+	0xaab0, 0xaab0,</div><div class='add'>+	0xaab2, 0xaab4,</div><div class='add'>+	0xaab7, 0xaab8,</div><div class='add'>+	0xaabe, 0xaabf,</div><div class='add'>+	0xaac1, 0xaac1,</div><div class='add'>+	0xaaeb, 0xaaef,</div><div class='add'>+	0xaaf5, 0xaaf6,</div><div class='add'>+	0xabe3, 0xabea,</div><div class='add'>+	0xabec, 0xabed,</div><div class='add'>+	0xfb1e, 0xfb1e,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfe20, 0xfe2f,</div><div class='add'>+	0x101fd, 0x101fd,</div><div class='add'>+	0x102e0, 0x102e0,</div><div class='add'>+	0x10376, 0x1037a,</div><div class='add'>+	0x10a01, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a0f,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a3f,</div><div class='add'>+	0x10ae5, 0x10ae6,</div><div class='add'>+	0x10d24, 0x10d27,</div><div class='add'>+	0x10eab, 0x10eac,</div><div class='add'>+	0x10efd, 0x10eff,</div><div class='add'>+	0x10f46, 0x10f50,</div><div class='add'>+	0x10f82, 0x10f85,</div><div class='add'>+	0x11000, 0x11002,</div><div class='add'>+	0x11038, 0x11046,</div><div class='add'>+	0x11070, 0x11070,</div><div class='add'>+	0x11073, 0x11074,</div><div class='add'>+	0x1107f, 0x11082,</div><div class='add'>+	0x110b0, 0x110ba,</div><div class='add'>+	0x110c2, 0x110c2,</div><div class='add'>+	0x11100, 0x11102,</div><div class='add'>+	0x11127, 0x11134,</div><div class='add'>+	0x11145, 0x11146,</div><div class='add'>+	0x11173, 0x11173,</div><div class='add'>+	0x11180, 0x11182,</div><div class='add'>+	0x111b3, 0x111c0,</div><div class='add'>+	0x111c9, 0x111cc,</div><div class='add'>+	0x111ce, 0x111cf,</div><div class='add'>+	0x1122c, 0x11237,</div><div class='add'>+	0x1123e, 0x1123e,</div><div class='add'>+	0x11241, 0x11241,</div><div class='add'>+	0x112df, 0x112ea,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x1133b, 0x1133c,</div><div class='add'>+	0x1133e, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x11362, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11435, 0x11446,</div><div class='add'>+	0x1145e, 0x1145e,</div><div class='add'>+	0x114b0, 0x114c3,</div><div class='add'>+	0x115af, 0x115b5,</div><div class='add'>+	0x115b8, 0x115c0,</div><div class='add'>+	0x115dc, 0x115dd,</div><div class='add'>+	0x11630, 0x11640,</div><div class='add'>+	0x116ab, 0x116b7,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x1182c, 0x1183a,</div><div class='add'>+	0x11930, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x1193e,</div><div class='add'>+	0x11940, 0x11940,</div><div class='add'>+	0x11942, 0x11943,</div><div class='add'>+	0x119d1, 0x119d7,</div><div class='add'>+	0x119da, 0x119e0,</div><div class='add'>+	0x119e4, 0x119e4,</div><div class='add'>+	0x11a01, 0x11a0a,</div><div class='add'>+	0x11a33, 0x11a39,</div><div class='add'>+	0x11a3b, 0x11a3e,</div><div class='add'>+	0x11a47, 0x11a47,</div><div class='add'>+	0x11a51, 0x11a5b,</div><div class='add'>+	0x11a8a, 0x11a99,</div><div class='add'>+	0x11c2f, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c3f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d31, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d45,</div><div class='add'>+	0x11d47, 0x11d47,</div><div class='add'>+	0x11d8a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d97,</div><div class='add'>+	0x11ef3, 0x11ef6,</div><div class='add'>+	0x11f00, 0x11f01,</div><div class='add'>+	0x11f03, 0x11f03,</div><div class='add'>+	0x11f34, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f42,</div><div class='add'>+	0x13440, 0x13440,</div><div class='add'>+	0x13447, 0x13455,</div><div class='add'>+	0x16af0, 0x16af4,</div><div class='add'>+	0x16b30, 0x16b36,</div><div class='add'>+	0x16f4f, 0x16f4f,</div><div class='add'>+	0x16f51, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f92,</div><div class='add'>+	0x16fe4, 0x16fe4,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x1bc9d, 0x1bc9e,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1d165, 0x1d169,</div><div class='add'>+	0x1d16d, 0x1d172,</div><div class='add'>+	0x1d17b, 0x1d182,</div><div class='add'>+	0x1d185, 0x1d18b,</div><div class='add'>+	0x1d1aa, 0x1d1ad,</div><div class='add'>+	0x1d242, 0x1d244,</div><div class='add'>+	0x1da00, 0x1da36,</div><div class='add'>+	0x1da3b, 0x1da6c,</div><div class='add'>+	0x1da75, 0x1da75,</div><div class='add'>+	0x1da84, 0x1da84,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e130, 0x1e136,</div><div class='add'>+	0x1e2ae, 0x1e2ae,</div><div class='add'>+	0x1e2ec, 0x1e2ef,</div><div class='add'>+	0x1e4ec, 0x1e4ef,</div><div class='add'>+	0x1e8d0, 0x1e8d6,</div><div class='add'>+	0x1e944, 0x1e94a,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+}; /* CR_M */</div><div class='add'>+</div><div class='add'>+/* 'Mc': General Category */</div><div class='add'>+static const OnigCodePoint CR_Mc[] = {</div><div class='add'>+	182,</div><div class='add'>+	0x0903, 0x0903,</div><div class='add'>+	0x093b, 0x093b,</div><div class='add'>+	0x093e, 0x0940,</div><div class='add'>+	0x0949, 0x094c,</div><div class='add'>+	0x094e, 0x094f,</div><div class='add'>+	0x0982, 0x0983,</div><div class='add'>+	0x09be, 0x09c0,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cc,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x0a03, 0x0a03,</div><div class='add'>+	0x0a3e, 0x0a40,</div><div class='add'>+	0x0a83, 0x0a83,</div><div class='add'>+	0x0abe, 0x0ac0,</div><div class='add'>+	0x0ac9, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acc,</div><div class='add'>+	0x0b02, 0x0b03,</div><div class='add'>+	0x0b3e, 0x0b3e,</div><div class='add'>+	0x0b40, 0x0b40,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4c,</div><div class='add'>+	0x0b57, 0x0b57,</div><div class='add'>+	0x0bbe, 0x0bbf,</div><div class='add'>+	0x0bc1, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcc,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c41, 0x0c44,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0cbe, 0x0cbe,</div><div class='add'>+	0x0cc0, 0x0cc4,</div><div class='add'>+	0x0cc7, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccb,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cf3, 0x0cf3,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d3e, 0x0d40,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4c,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0dcf, 0x0dd1,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df3,</div><div class='add'>+	0x0f3e, 0x0f3f,</div><div class='add'>+	0x0f7f, 0x0f7f,</div><div class='add'>+	0x102b, 0x102c,</div><div class='add'>+	0x1031, 0x1031,</div><div class='add'>+	0x1038, 0x1038,</div><div class='add'>+	0x103b, 0x103c,</div><div class='add'>+	0x1056, 0x1057,</div><div class='add'>+	0x1062, 0x1064,</div><div class='add'>+	0x1067, 0x106d,</div><div class='add'>+	0x1083, 0x1084,</div><div class='add'>+	0x1087, 0x108c,</div><div class='add'>+	0x108f, 0x108f,</div><div class='add'>+	0x109a, 0x109c,</div><div class='add'>+	0x1715, 0x1715,</div><div class='add'>+	0x1734, 0x1734,</div><div class='add'>+	0x17b6, 0x17b6,</div><div class='add'>+	0x17be, 0x17c5,</div><div class='add'>+	0x17c7, 0x17c8,</div><div class='add'>+	0x1923, 0x1926,</div><div class='add'>+	0x1929, 0x192b,</div><div class='add'>+	0x1930, 0x1931,</div><div class='add'>+	0x1933, 0x1938,</div><div class='add'>+	0x1a19, 0x1a1a,</div><div class='add'>+	0x1a55, 0x1a55,</div><div class='add'>+	0x1a57, 0x1a57,</div><div class='add'>+	0x1a61, 0x1a61,</div><div class='add'>+	0x1a63, 0x1a64,</div><div class='add'>+	0x1a6d, 0x1a72,</div><div class='add'>+	0x1b04, 0x1b04,</div><div class='add'>+	0x1b35, 0x1b35,</div><div class='add'>+	0x1b3b, 0x1b3b,</div><div class='add'>+	0x1b3d, 0x1b41,</div><div class='add'>+	0x1b43, 0x1b44,</div><div class='add'>+	0x1b82, 0x1b82,</div><div class='add'>+	0x1ba1, 0x1ba1,</div><div class='add'>+	0x1ba6, 0x1ba7,</div><div class='add'>+	0x1baa, 0x1baa,</div><div class='add'>+	0x1be7, 0x1be7,</div><div class='add'>+	0x1bea, 0x1bec,</div><div class='add'>+	0x1bee, 0x1bee,</div><div class='add'>+	0x1bf2, 0x1bf3,</div><div class='add'>+	0x1c24, 0x1c2b,</div><div class='add'>+	0x1c34, 0x1c35,</div><div class='add'>+	0x1ce1, 0x1ce1,</div><div class='add'>+	0x1cf7, 0x1cf7,</div><div class='add'>+	0x302e, 0x302f,</div><div class='add'>+	0xa823, 0xa824,</div><div class='add'>+	0xa827, 0xa827,</div><div class='add'>+	0xa880, 0xa881,</div><div class='add'>+	0xa8b4, 0xa8c3,</div><div class='add'>+	0xa952, 0xa953,</div><div class='add'>+	0xa983, 0xa983,</div><div class='add'>+	0xa9b4, 0xa9b5,</div><div class='add'>+	0xa9ba, 0xa9bb,</div><div class='add'>+	0xa9be, 0xa9c0,</div><div class='add'>+	0xaa2f, 0xaa30,</div><div class='add'>+	0xaa33, 0xaa34,</div><div class='add'>+	0xaa4d, 0xaa4d,</div><div class='add'>+	0xaa7b, 0xaa7b,</div><div class='add'>+	0xaa7d, 0xaa7d,</div><div class='add'>+	0xaaeb, 0xaaeb,</div><div class='add'>+	0xaaee, 0xaaef,</div><div class='add'>+	0xaaf5, 0xaaf5,</div><div class='add'>+	0xabe3, 0xabe4,</div><div class='add'>+	0xabe6, 0xabe7,</div><div class='add'>+	0xabe9, 0xabea,</div><div class='add'>+	0xabec, 0xabec,</div><div class='add'>+	0x11000, 0x11000,</div><div class='add'>+	0x11002, 0x11002,</div><div class='add'>+	0x11082, 0x11082,</div><div class='add'>+	0x110b0, 0x110b2,</div><div class='add'>+	0x110b7, 0x110b8,</div><div class='add'>+	0x1112c, 0x1112c,</div><div class='add'>+	0x11145, 0x11146,</div><div class='add'>+	0x11182, 0x11182,</div><div class='add'>+	0x111b3, 0x111b5,</div><div class='add'>+	0x111bf, 0x111c0,</div><div class='add'>+	0x111ce, 0x111ce,</div><div class='add'>+	0x1122c, 0x1122e,</div><div class='add'>+	0x11232, 0x11233,</div><div class='add'>+	0x11235, 0x11235,</div><div class='add'>+	0x112e0, 0x112e2,</div><div class='add'>+	0x11302, 0x11303,</div><div class='add'>+	0x1133e, 0x1133f,</div><div class='add'>+	0x11341, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x11362, 0x11363,</div><div class='add'>+	0x11435, 0x11437,</div><div class='add'>+	0x11440, 0x11441,</div><div class='add'>+	0x11445, 0x11445,</div><div class='add'>+	0x114b0, 0x114b2,</div><div class='add'>+	0x114b9, 0x114b9,</div><div class='add'>+	0x114bb, 0x114be,</div><div class='add'>+	0x114c1, 0x114c1,</div><div class='add'>+	0x115af, 0x115b1,</div><div class='add'>+	0x115b8, 0x115bb,</div><div class='add'>+	0x115be, 0x115be,</div><div class='add'>+	0x11630, 0x11632,</div><div class='add'>+	0x1163b, 0x1163c,</div><div class='add'>+	0x1163e, 0x1163e,</div><div class='add'>+	0x116ac, 0x116ac,</div><div class='add'>+	0x116ae, 0x116af,</div><div class='add'>+	0x116b6, 0x116b6,</div><div class='add'>+	0x11720, 0x11721,</div><div class='add'>+	0x11726, 0x11726,</div><div class='add'>+	0x1182c, 0x1182e,</div><div class='add'>+	0x11838, 0x11838,</div><div class='add'>+	0x11930, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193d, 0x1193d,</div><div class='add'>+	0x11940, 0x11940,</div><div class='add'>+	0x11942, 0x11942,</div><div class='add'>+	0x119d1, 0x119d3,</div><div class='add'>+	0x119dc, 0x119df,</div><div class='add'>+	0x119e4, 0x119e4,</div><div class='add'>+	0x11a39, 0x11a39,</div><div class='add'>+	0x11a57, 0x11a58,</div><div class='add'>+	0x11a97, 0x11a97,</div><div class='add'>+	0x11c2f, 0x11c2f,</div><div class='add'>+	0x11c3e, 0x11c3e,</div><div class='add'>+	0x11ca9, 0x11ca9,</div><div class='add'>+	0x11cb1, 0x11cb1,</div><div class='add'>+	0x11cb4, 0x11cb4,</div><div class='add'>+	0x11d8a, 0x11d8e,</div><div class='add'>+	0x11d93, 0x11d94,</div><div class='add'>+	0x11d96, 0x11d96,</div><div class='add'>+	0x11ef5, 0x11ef6,</div><div class='add'>+	0x11f03, 0x11f03,</div><div class='add'>+	0x11f34, 0x11f35,</div><div class='add'>+	0x11f3e, 0x11f3f,</div><div class='add'>+	0x11f41, 0x11f41,</div><div class='add'>+	0x16f51, 0x16f87,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x1d165, 0x1d166,</div><div class='add'>+	0x1d16d, 0x1d172,</div><div class='add'>+}; /* CR_Mc */</div><div class='add'>+</div><div class='add'>+/* 'Me': General Category */</div><div class='add'>+static const OnigCodePoint CR_Me[] = {</div><div class='add'>+	5,</div><div class='add'>+	0x0488, 0x0489,</div><div class='add'>+	0x1abe, 0x1abe,</div><div class='add'>+	0x20dd, 0x20e0,</div><div class='add'>+	0x20e2, 0x20e4,</div><div class='add'>+	0xa670, 0xa672,</div><div class='add'>+}; /* CR_Me */</div><div class='add'>+</div><div class='add'>+/* 'Mn': General Category */</div><div class='add'>+static const OnigCodePoint CR_Mn[] = {</div><div class='add'>+	346,</div><div class='add'>+	0x0300, 0x036f,</div><div class='add'>+	0x0483, 0x0487,</div><div class='add'>+	0x0591, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c5,</div><div class='add'>+	0x05c7, 0x05c7,</div><div class='add'>+	0x0610, 0x061a,</div><div class='add'>+	0x064b, 0x065f,</div><div class='add'>+	0x0670, 0x0670,</div><div class='add'>+	0x06d6, 0x06dc,</div><div class='add'>+	0x06df, 0x06e4,</div><div class='add'>+	0x06e7, 0x06e8,</div><div class='add'>+	0x06ea, 0x06ed,</div><div class='add'>+	0x0711, 0x0711,</div><div class='add'>+	0x0730, 0x074a,</div><div class='add'>+	0x07a6, 0x07b0,</div><div class='add'>+	0x07eb, 0x07f3,</div><div class='add'>+	0x07fd, 0x07fd,</div><div class='add'>+	0x0816, 0x0819,</div><div class='add'>+	0x081b, 0x0823,</div><div class='add'>+	0x0825, 0x0827,</div><div class='add'>+	0x0829, 0x082d,</div><div class='add'>+	0x0859, 0x085b,</div><div class='add'>+	0x0898, 0x089f,</div><div class='add'>+	0x08ca, 0x08e1,</div><div class='add'>+	0x08e3, 0x0902,</div><div class='add'>+	0x093a, 0x093a,</div><div class='add'>+	0x093c, 0x093c,</div><div class='add'>+	0x0941, 0x0948,</div><div class='add'>+	0x094d, 0x094d,</div><div class='add'>+	0x0951, 0x0957,</div><div class='add'>+	0x0962, 0x0963,</div><div class='add'>+	0x0981, 0x0981,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09c1, 0x09c4,</div><div class='add'>+	0x09cd, 0x09cd,</div><div class='add'>+	0x09e2, 0x09e3,</div><div class='add'>+	0x09fe, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a02,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a41, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a70, 0x0a71,</div><div class='add'>+	0x0a75, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a82,</div><div class='add'>+	0x0abc, 0x0abc,</div><div class='add'>+	0x0ac1, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac8,</div><div class='add'>+	0x0acd, 0x0acd,</div><div class='add'>+	0x0ae2, 0x0ae3,</div><div class='add'>+	0x0afa, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b01,</div><div class='add'>+	0x0b3c, 0x0b3c,</div><div class='add'>+	0x0b3f, 0x0b3f,</div><div class='add'>+	0x0b41, 0x0b44,</div><div class='add'>+	0x0b4d, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b56,</div><div class='add'>+	0x0b62, 0x0b63,</div><div class='add'>+	0x0b82, 0x0b82,</div><div class='add'>+	0x0bc0, 0x0bc0,</div><div class='add'>+	0x0bcd, 0x0bcd,</div><div class='add'>+	0x0c00, 0x0c00,</div><div class='add'>+	0x0c04, 0x0c04,</div><div class='add'>+	0x0c3c, 0x0c3c,</div><div class='add'>+	0x0c3e, 0x0c40,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c62, 0x0c63,</div><div class='add'>+	0x0c81, 0x0c81,</div><div class='add'>+	0x0cbc, 0x0cbc,</div><div class='add'>+	0x0cbf, 0x0cbf,</div><div class='add'>+	0x0cc6, 0x0cc6,</div><div class='add'>+	0x0ccc, 0x0ccd,</div><div class='add'>+	0x0ce2, 0x0ce3,</div><div class='add'>+	0x0d00, 0x0d01,</div><div class='add'>+	0x0d3b, 0x0d3c,</div><div class='add'>+	0x0d41, 0x0d44,</div><div class='add'>+	0x0d4d, 0x0d4d,</div><div class='add'>+	0x0d62, 0x0d63,</div><div class='add'>+	0x0d81, 0x0d81,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dd2, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0e31, 0x0e31,</div><div class='add'>+	0x0e34, 0x0e3a,</div><div class='add'>+	0x0e47, 0x0e4e,</div><div class='add'>+	0x0eb1, 0x0eb1,</div><div class='add'>+	0x0eb4, 0x0ebc,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0f18, 0x0f19,</div><div class='add'>+	0x0f35, 0x0f35,</div><div class='add'>+	0x0f37, 0x0f37,</div><div class='add'>+	0x0f39, 0x0f39,</div><div class='add'>+	0x0f71, 0x0f7e,</div><div class='add'>+	0x0f80, 0x0f84,</div><div class='add'>+	0x0f86, 0x0f87,</div><div class='add'>+	0x0f8d, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fc6, 0x0fc6,</div><div class='add'>+	0x102d, 0x1030,</div><div class='add'>+	0x1032, 0x1037,</div><div class='add'>+	0x1039, 0x103a,</div><div class='add'>+	0x103d, 0x103e,</div><div class='add'>+	0x1058, 0x1059,</div><div class='add'>+	0x105e, 0x1060,</div><div class='add'>+	0x1071, 0x1074,</div><div class='add'>+	0x1082, 0x1082,</div><div class='add'>+	0x1085, 0x1086,</div><div class='add'>+	0x108d, 0x108d,</div><div class='add'>+	0x109d, 0x109d,</div><div class='add'>+	0x135d, 0x135f,</div><div class='add'>+	0x1712, 0x1714,</div><div class='add'>+	0x1732, 0x1733,</div><div class='add'>+	0x1752, 0x1753,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x17b4, 0x17b5,</div><div class='add'>+	0x17b7, 0x17bd,</div><div class='add'>+	0x17c6, 0x17c6,</div><div class='add'>+	0x17c9, 0x17d3,</div><div class='add'>+	0x17dd, 0x17dd,</div><div class='add'>+	0x180b, 0x180d,</div><div class='add'>+	0x180f, 0x180f,</div><div class='add'>+	0x1885, 0x1886,</div><div class='add'>+	0x18a9, 0x18a9,</div><div class='add'>+	0x1920, 0x1922,</div><div class='add'>+	0x1927, 0x1928,</div><div class='add'>+	0x1932, 0x1932,</div><div class='add'>+	0x1939, 0x193b,</div><div class='add'>+	0x1a17, 0x1a18,</div><div class='add'>+	0x1a1b, 0x1a1b,</div><div class='add'>+	0x1a56, 0x1a56,</div><div class='add'>+	0x1a58, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a60,</div><div class='add'>+	0x1a62, 0x1a62,</div><div class='add'>+	0x1a65, 0x1a6c,</div><div class='add'>+	0x1a73, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a7f,</div><div class='add'>+	0x1ab0, 0x1abd,</div><div class='add'>+	0x1abf, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b03,</div><div class='add'>+	0x1b34, 0x1b34,</div><div class='add'>+	0x1b36, 0x1b3a,</div><div class='add'>+	0x1b3c, 0x1b3c,</div><div class='add'>+	0x1b42, 0x1b42,</div><div class='add'>+	0x1b6b, 0x1b73,</div><div class='add'>+	0x1b80, 0x1b81,</div><div class='add'>+	0x1ba2, 0x1ba5,</div><div class='add'>+	0x1ba8, 0x1ba9,</div><div class='add'>+	0x1bab, 0x1bad,</div><div class='add'>+	0x1be6, 0x1be6,</div><div class='add'>+	0x1be8, 0x1be9,</div><div class='add'>+	0x1bed, 0x1bed,</div><div class='add'>+	0x1bef, 0x1bf1,</div><div class='add'>+	0x1c2c, 0x1c33,</div><div class='add'>+	0x1c36, 0x1c37,</div><div class='add'>+	0x1cd0, 0x1cd2,</div><div class='add'>+	0x1cd4, 0x1ce0,</div><div class='add'>+	0x1ce2, 0x1ce8,</div><div class='add'>+	0x1ced, 0x1ced,</div><div class='add'>+	0x1cf4, 0x1cf4,</div><div class='add'>+	0x1cf8, 0x1cf9,</div><div class='add'>+	0x1dc0, 0x1dff,</div><div class='add'>+	0x20d0, 0x20dc,</div><div class='add'>+	0x20e1, 0x20e1,</div><div class='add'>+	0x20e5, 0x20f0,</div><div class='add'>+	0x2cef, 0x2cf1,</div><div class='add'>+	0x2d7f, 0x2d7f,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0x302a, 0x302d,</div><div class='add'>+	0x3099, 0x309a,</div><div class='add'>+	0xa66f, 0xa66f,</div><div class='add'>+	0xa674, 0xa67d,</div><div class='add'>+	0xa69e, 0xa69f,</div><div class='add'>+	0xa6f0, 0xa6f1,</div><div class='add'>+	0xa802, 0xa802,</div><div class='add'>+	0xa806, 0xa806,</div><div class='add'>+	0xa80b, 0xa80b,</div><div class='add'>+	0xa825, 0xa826,</div><div class='add'>+	0xa82c, 0xa82c,</div><div class='add'>+	0xa8c4, 0xa8c5,</div><div class='add'>+	0xa8e0, 0xa8f1,</div><div class='add'>+	0xa8ff, 0xa8ff,</div><div class='add'>+	0xa926, 0xa92d,</div><div class='add'>+	0xa947, 0xa951,</div><div class='add'>+	0xa980, 0xa982,</div><div class='add'>+	0xa9b3, 0xa9b3,</div><div class='add'>+	0xa9b6, 0xa9b9,</div><div class='add'>+	0xa9bc, 0xa9bd,</div><div class='add'>+	0xa9e5, 0xa9e5,</div><div class='add'>+	0xaa29, 0xaa2e,</div><div class='add'>+	0xaa31, 0xaa32,</div><div class='add'>+	0xaa35, 0xaa36,</div><div class='add'>+	0xaa43, 0xaa43,</div><div class='add'>+	0xaa4c, 0xaa4c,</div><div class='add'>+	0xaa7c, 0xaa7c,</div><div class='add'>+	0xaab0, 0xaab0,</div><div class='add'>+	0xaab2, 0xaab4,</div><div class='add'>+	0xaab7, 0xaab8,</div><div class='add'>+	0xaabe, 0xaabf,</div><div class='add'>+	0xaac1, 0xaac1,</div><div class='add'>+	0xaaec, 0xaaed,</div><div class='add'>+	0xaaf6, 0xaaf6,</div><div class='add'>+	0xabe5, 0xabe5,</div><div class='add'>+	0xabe8, 0xabe8,</div><div class='add'>+	0xabed, 0xabed,</div><div class='add'>+	0xfb1e, 0xfb1e,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfe20, 0xfe2f,</div><div class='add'>+	0x101fd, 0x101fd,</div><div class='add'>+	0x102e0, 0x102e0,</div><div class='add'>+	0x10376, 0x1037a,</div><div class='add'>+	0x10a01, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a0f,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a3f,</div><div class='add'>+	0x10ae5, 0x10ae6,</div><div class='add'>+	0x10d24, 0x10d27,</div><div class='add'>+	0x10eab, 0x10eac,</div><div class='add'>+	0x10efd, 0x10eff,</div><div class='add'>+	0x10f46, 0x10f50,</div><div class='add'>+	0x10f82, 0x10f85,</div><div class='add'>+	0x11001, 0x11001,</div><div class='add'>+	0x11038, 0x11046,</div><div class='add'>+	0x11070, 0x11070,</div><div class='add'>+	0x11073, 0x11074,</div><div class='add'>+	0x1107f, 0x11081,</div><div class='add'>+	0x110b3, 0x110b6,</div><div class='add'>+	0x110b9, 0x110ba,</div><div class='add'>+	0x110c2, 0x110c2,</div><div class='add'>+	0x11100, 0x11102,</div><div class='add'>+	0x11127, 0x1112b,</div><div class='add'>+	0x1112d, 0x11134,</div><div class='add'>+	0x11173, 0x11173,</div><div class='add'>+	0x11180, 0x11181,</div><div class='add'>+	0x111b6, 0x111be,</div><div class='add'>+	0x111c9, 0x111cc,</div><div class='add'>+	0x111cf, 0x111cf,</div><div class='add'>+	0x1122f, 0x11231,</div><div class='add'>+	0x11234, 0x11234,</div><div class='add'>+	0x11236, 0x11237,</div><div class='add'>+	0x1123e, 0x1123e,</div><div class='add'>+	0x11241, 0x11241,</div><div class='add'>+	0x112df, 0x112df,</div><div class='add'>+	0x112e3, 0x112ea,</div><div class='add'>+	0x11300, 0x11301,</div><div class='add'>+	0x1133b, 0x1133c,</div><div class='add'>+	0x11340, 0x11340,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11438, 0x1143f,</div><div class='add'>+	0x11442, 0x11444,</div><div class='add'>+	0x11446, 0x11446,</div><div class='add'>+	0x1145e, 0x1145e,</div><div class='add'>+	0x114b3, 0x114b8,</div><div class='add'>+	0x114ba, 0x114ba,</div><div class='add'>+	0x114bf, 0x114c0,</div><div class='add'>+	0x114c2, 0x114c3,</div><div class='add'>+	0x115b2, 0x115b5,</div><div class='add'>+	0x115bc, 0x115bd,</div><div class='add'>+	0x115bf, 0x115c0,</div><div class='add'>+	0x115dc, 0x115dd,</div><div class='add'>+	0x11633, 0x1163a,</div><div class='add'>+	0x1163d, 0x1163d,</div><div class='add'>+	0x1163f, 0x11640,</div><div class='add'>+	0x116ab, 0x116ab,</div><div class='add'>+	0x116ad, 0x116ad,</div><div class='add'>+	0x116b0, 0x116b5,</div><div class='add'>+	0x116b7, 0x116b7,</div><div class='add'>+	0x1171d, 0x1171f,</div><div class='add'>+	0x11722, 0x11725,</div><div class='add'>+	0x11727, 0x1172b,</div><div class='add'>+	0x1182f, 0x11837,</div><div class='add'>+	0x11839, 0x1183a,</div><div class='add'>+	0x1193b, 0x1193c,</div><div class='add'>+	0x1193e, 0x1193e,</div><div class='add'>+	0x11943, 0x11943,</div><div class='add'>+	0x119d4, 0x119d7,</div><div class='add'>+	0x119da, 0x119db,</div><div class='add'>+	0x119e0, 0x119e0,</div><div class='add'>+	0x11a01, 0x11a0a,</div><div class='add'>+	0x11a33, 0x11a38,</div><div class='add'>+	0x11a3b, 0x11a3e,</div><div class='add'>+	0x11a47, 0x11a47,</div><div class='add'>+	0x11a51, 0x11a56,</div><div class='add'>+	0x11a59, 0x11a5b,</div><div class='add'>+	0x11a8a, 0x11a96,</div><div class='add'>+	0x11a98, 0x11a99,</div><div class='add'>+	0x11c30, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c3d,</div><div class='add'>+	0x11c3f, 0x11c3f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11caa, 0x11cb0,</div><div class='add'>+	0x11cb2, 0x11cb3,</div><div class='add'>+	0x11cb5, 0x11cb6,</div><div class='add'>+	0x11d31, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d45,</div><div class='add'>+	0x11d47, 0x11d47,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d95, 0x11d95,</div><div class='add'>+	0x11d97, 0x11d97,</div><div class='add'>+	0x11ef3, 0x11ef4,</div><div class='add'>+	0x11f00, 0x11f01,</div><div class='add'>+	0x11f36, 0x11f3a,</div><div class='add'>+	0x11f40, 0x11f40,</div><div class='add'>+	0x11f42, 0x11f42,</div><div class='add'>+	0x13440, 0x13440,</div><div class='add'>+	0x13447, 0x13455,</div><div class='add'>+	0x16af0, 0x16af4,</div><div class='add'>+	0x16b30, 0x16b36,</div><div class='add'>+	0x16f4f, 0x16f4f,</div><div class='add'>+	0x16f8f, 0x16f92,</div><div class='add'>+	0x16fe4, 0x16fe4,</div><div class='add'>+	0x1bc9d, 0x1bc9e,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1d167, 0x1d169,</div><div class='add'>+	0x1d17b, 0x1d182,</div><div class='add'>+	0x1d185, 0x1d18b,</div><div class='add'>+	0x1d1aa, 0x1d1ad,</div><div class='add'>+	0x1d242, 0x1d244,</div><div class='add'>+	0x1da00, 0x1da36,</div><div class='add'>+	0x1da3b, 0x1da6c,</div><div class='add'>+	0x1da75, 0x1da75,</div><div class='add'>+	0x1da84, 0x1da84,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e130, 0x1e136,</div><div class='add'>+	0x1e2ae, 0x1e2ae,</div><div class='add'>+	0x1e2ec, 0x1e2ef,</div><div class='add'>+	0x1e4ec, 0x1e4ef,</div><div class='add'>+	0x1e8d0, 0x1e8d6,</div><div class='add'>+	0x1e944, 0x1e94a,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+}; /* CR_Mn */</div><div class='add'>+</div><div class='add'>+/* 'N': Major Category */</div><div class='add'>+static const OnigCodePoint CR_N[] = {</div><div class='add'>+	137,</div><div class='add'>+	0x0030, 0x0039,</div><div class='add'>+	0x00b2, 0x00b3,</div><div class='add'>+	0x00b9, 0x00b9,</div><div class='add'>+	0x00bc, 0x00be,</div><div class='add'>+	0x0660, 0x0669,</div><div class='add'>+	0x06f0, 0x06f9,</div><div class='add'>+	0x07c0, 0x07c9,</div><div class='add'>+	0x0966, 0x096f,</div><div class='add'>+	0x09e6, 0x09ef,</div><div class='add'>+	0x09f4, 0x09f9,</div><div class='add'>+	0x0a66, 0x0a6f,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0b66, 0x0b6f,</div><div class='add'>+	0x0b72, 0x0b77,</div><div class='add'>+	0x0be6, 0x0bf2,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c7e,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0d58, 0x0d5e,</div><div class='add'>+	0x0d66, 0x0d78,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0e50, 0x0e59,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0f20, 0x0f33,</div><div class='add'>+	0x1040, 0x1049,</div><div class='add'>+	0x1090, 0x1099,</div><div class='add'>+	0x1369, 0x137c,</div><div class='add'>+	0x16ee, 0x16f0,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1946, 0x194f,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x1a80, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1b50, 0x1b59,</div><div class='add'>+	0x1bb0, 0x1bb9,</div><div class='add'>+	0x1c40, 0x1c49,</div><div class='add'>+	0x1c50, 0x1c59,</div><div class='add'>+	0x2070, 0x2070,</div><div class='add'>+	0x2074, 0x2079,</div><div class='add'>+	0x2080, 0x2089,</div><div class='add'>+	0x2150, 0x2182,</div><div class='add'>+	0x2185, 0x2189,</div><div class='add'>+	0x2460, 0x249b,</div><div class='add'>+	0x24ea, 0x24ff,</div><div class='add'>+	0x2776, 0x2793,</div><div class='add'>+	0x2cfd, 0x2cfd,</div><div class='add'>+	0x3007, 0x3007,</div><div class='add'>+	0x3021, 0x3029,</div><div class='add'>+	0x3038, 0x303a,</div><div class='add'>+	0x3192, 0x3195,</div><div class='add'>+	0x3220, 0x3229,</div><div class='add'>+	0x3248, 0x324f,</div><div class='add'>+	0x3251, 0x325f,</div><div class='add'>+	0x3280, 0x3289,</div><div class='add'>+	0x32b1, 0x32bf,</div><div class='add'>+	0xa620, 0xa629,</div><div class='add'>+	0xa6e6, 0xa6ef,</div><div class='add'>+	0xa830, 0xa835,</div><div class='add'>+	0xa8d0, 0xa8d9,</div><div class='add'>+	0xa900, 0xa909,</div><div class='add'>+	0xa9d0, 0xa9d9,</div><div class='add'>+	0xa9f0, 0xa9f9,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xff10, 0xff19,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10140, 0x10178,</div><div class='add'>+	0x1018a, 0x1018b,</div><div class='add'>+	0x102e1, 0x102fb,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10341, 0x10341,</div><div class='add'>+	0x1034a, 0x1034a,</div><div class='add'>+	0x103d1, 0x103d5,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10858, 0x1085f,</div><div class='add'>+	0x10879, 0x1087f,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108fb, 0x108ff,</div><div class='add'>+	0x10916, 0x1091b,</div><div class='add'>+	0x109bc, 0x109bd,</div><div class='add'>+	0x109c0, 0x109cf,</div><div class='add'>+	0x109d2, 0x109ff,</div><div class='add'>+	0x10a40, 0x10a48,</div><div class='add'>+	0x10a7d, 0x10a7e,</div><div class='add'>+	0x10a9d, 0x10a9f,</div><div class='add'>+	0x10aeb, 0x10aef,</div><div class='add'>+	0x10b58, 0x10b5f,</div><div class='add'>+	0x10b78, 0x10b7f,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10cfa, 0x10cff,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10f1d, 0x10f26,</div><div class='add'>+	0x10f51, 0x10f54,</div><div class='add'>+	0x10fc5, 0x10fcb,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11136, 0x1113f,</div><div class='add'>+	0x111d0, 0x111d9,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11450, 0x11459,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11730, 0x1173b,</div><div class='add'>+	0x118e0, 0x118f2,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11f50, 0x11f59,</div><div class='add'>+	0x11fc0, 0x11fd4,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16e80, 0x16e96,</div><div class='add'>+	0x1d2c0, 0x1d2d3,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e2f0, 0x1e2f9,</div><div class='add'>+	0x1e4f0, 0x1e4f9,</div><div class='add'>+	0x1e8c7, 0x1e8cf,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1ec71, 0x1ecab,</div><div class='add'>+	0x1ecad, 0x1ecaf,</div><div class='add'>+	0x1ecb1, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed2d,</div><div class='add'>+	0x1ed2f, 0x1ed3d,</div><div class='add'>+	0x1f100, 0x1f10c,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+}; /* CR_N */</div><div class='add'>+</div><div class='add'>+/* 'Nd': General Category */</div><div class='add'>+#define CR_Nd CR_Digit</div><div class='add'>+</div><div class='add'>+/* 'Nl': General Category */</div><div class='add'>+static const OnigCodePoint CR_Nl[] = {</div><div class='add'>+	12,</div><div class='add'>+	0x16ee, 0x16f0,</div><div class='add'>+	0x2160, 0x2182,</div><div class='add'>+	0x2185, 0x2188,</div><div class='add'>+	0x3007, 0x3007,</div><div class='add'>+	0x3021, 0x3029,</div><div class='add'>+	0x3038, 0x303a,</div><div class='add'>+	0xa6e6, 0xa6ef,</div><div class='add'>+	0x10140, 0x10174,</div><div class='add'>+	0x10341, 0x10341,</div><div class='add'>+	0x1034a, 0x1034a,</div><div class='add'>+	0x103d1, 0x103d5,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+}; /* CR_Nl */</div><div class='add'>+</div><div class='add'>+/* 'No': General Category */</div><div class='add'>+static const OnigCodePoint CR_No[] = {</div><div class='add'>+	72,</div><div class='add'>+	0x00b2, 0x00b3,</div><div class='add'>+	0x00b9, 0x00b9,</div><div class='add'>+	0x00bc, 0x00be,</div><div class='add'>+	0x09f4, 0x09f9,</div><div class='add'>+	0x0b72, 0x0b77,</div><div class='add'>+	0x0bf0, 0x0bf2,</div><div class='add'>+	0x0c78, 0x0c7e,</div><div class='add'>+	0x0d58, 0x0d5e,</div><div class='add'>+	0x0d70, 0x0d78,</div><div class='add'>+	0x0f2a, 0x0f33,</div><div class='add'>+	0x1369, 0x137c,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x19da, 0x19da,</div><div class='add'>+	0x2070, 0x2070,</div><div class='add'>+	0x2074, 0x2079,</div><div class='add'>+	0x2080, 0x2089,</div><div class='add'>+	0x2150, 0x215f,</div><div class='add'>+	0x2189, 0x2189,</div><div class='add'>+	0x2460, 0x249b,</div><div class='add'>+	0x24ea, 0x24ff,</div><div class='add'>+	0x2776, 0x2793,</div><div class='add'>+	0x2cfd, 0x2cfd,</div><div class='add'>+	0x3192, 0x3195,</div><div class='add'>+	0x3220, 0x3229,</div><div class='add'>+	0x3248, 0x324f,</div><div class='add'>+	0x3251, 0x325f,</div><div class='add'>+	0x3280, 0x3289,</div><div class='add'>+	0x32b1, 0x32bf,</div><div class='add'>+	0xa830, 0xa835,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10175, 0x10178,</div><div class='add'>+	0x1018a, 0x1018b,</div><div class='add'>+	0x102e1, 0x102fb,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10858, 0x1085f,</div><div class='add'>+	0x10879, 0x1087f,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108fb, 0x108ff,</div><div class='add'>+	0x10916, 0x1091b,</div><div class='add'>+	0x109bc, 0x109bd,</div><div class='add'>+	0x109c0, 0x109cf,</div><div class='add'>+	0x109d2, 0x109ff,</div><div class='add'>+	0x10a40, 0x10a48,</div><div class='add'>+	0x10a7d, 0x10a7e,</div><div class='add'>+	0x10a9d, 0x10a9f,</div><div class='add'>+	0x10aeb, 0x10aef,</div><div class='add'>+	0x10b58, 0x10b5f,</div><div class='add'>+	0x10b78, 0x10b7f,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10cfa, 0x10cff,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10f1d, 0x10f26,</div><div class='add'>+	0x10f51, 0x10f54,</div><div class='add'>+	0x10fc5, 0x10fcb,</div><div class='add'>+	0x11052, 0x11065,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x1173a, 0x1173b,</div><div class='add'>+	0x118ea, 0x118f2,</div><div class='add'>+	0x11c5a, 0x11c6c,</div><div class='add'>+	0x11fc0, 0x11fd4,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16e80, 0x16e96,</div><div class='add'>+	0x1d2c0, 0x1d2d3,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1e8c7, 0x1e8cf,</div><div class='add'>+	0x1ec71, 0x1ecab,</div><div class='add'>+	0x1ecad, 0x1ecaf,</div><div class='add'>+	0x1ecb1, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed2d,</div><div class='add'>+	0x1ed2f, 0x1ed3d,</div><div class='add'>+	0x1f100, 0x1f10c,</div><div class='add'>+}; /* CR_No */</div><div class='add'>+</div><div class='add'>+/* 'P': Major Category */</div><div class='add'>+#define CR_P CR_Punct</div><div class='add'>+</div><div class='add'>+/* 'Pc': General Category */</div><div class='add'>+static const OnigCodePoint CR_Pc[] = {</div><div class='add'>+	6,</div><div class='add'>+	0x005f, 0x005f,</div><div class='add'>+	0x203f, 0x2040,</div><div class='add'>+	0x2054, 0x2054,</div><div class='add'>+	0xfe33, 0xfe34,</div><div class='add'>+	0xfe4d, 0xfe4f,</div><div class='add'>+	0xff3f, 0xff3f,</div><div class='add'>+}; /* CR_Pc */</div><div class='add'>+</div><div class='add'>+/* 'Pd': General Category */</div><div class='add'>+static const OnigCodePoint CR_Pd[] = {</div><div class='add'>+	19,</div><div class='add'>+	0x002d, 0x002d,</div><div class='add'>+	0x058a, 0x058a,</div><div class='add'>+	0x05be, 0x05be,</div><div class='add'>+	0x1400, 0x1400,</div><div class='add'>+	0x1806, 0x1806,</div><div class='add'>+	0x2010, 0x2015,</div><div class='add'>+	0x2e17, 0x2e17,</div><div class='add'>+	0x2e1a, 0x2e1a,</div><div class='add'>+	0x2e3a, 0x2e3b,</div><div class='add'>+	0x2e40, 0x2e40,</div><div class='add'>+	0x2e5d, 0x2e5d,</div><div class='add'>+	0x301c, 0x301c,</div><div class='add'>+	0x3030, 0x3030,</div><div class='add'>+	0x30a0, 0x30a0,</div><div class='add'>+	0xfe31, 0xfe32,</div><div class='add'>+	0xfe58, 0xfe58,</div><div class='add'>+	0xfe63, 0xfe63,</div><div class='add'>+	0xff0d, 0xff0d,</div><div class='add'>+	0x10ead, 0x10ead,</div><div class='add'>+}; /* CR_Pd */</div><div class='add'>+</div><div class='add'>+/* 'Pe': General Category */</div><div class='add'>+static const OnigCodePoint CR_Pe[] = {</div><div class='add'>+	76,</div><div class='add'>+	0x0029, 0x0029,</div><div class='add'>+	0x005d, 0x005d,</div><div class='add'>+	0x007d, 0x007d,</div><div class='add'>+	0x0f3b, 0x0f3b,</div><div class='add'>+	0x0f3d, 0x0f3d,</div><div class='add'>+	0x169c, 0x169c,</div><div class='add'>+	0x2046, 0x2046,</div><div class='add'>+	0x207e, 0x207e,</div><div class='add'>+	0x208e, 0x208e,</div><div class='add'>+	0x2309, 0x2309,</div><div class='add'>+	0x230b, 0x230b,</div><div class='add'>+	0x232a, 0x232a,</div><div class='add'>+	0x2769, 0x2769,</div><div class='add'>+	0x276b, 0x276b,</div><div class='add'>+	0x276d, 0x276d,</div><div class='add'>+	0x276f, 0x276f,</div><div class='add'>+	0x2771, 0x2771,</div><div class='add'>+	0x2773, 0x2773,</div><div class='add'>+	0x2775, 0x2775,</div><div class='add'>+	0x27c6, 0x27c6,</div><div class='add'>+	0x27e7, 0x27e7,</div><div class='add'>+	0x27e9, 0x27e9,</div><div class='add'>+	0x27eb, 0x27eb,</div><div class='add'>+	0x27ed, 0x27ed,</div><div class='add'>+	0x27ef, 0x27ef,</div><div class='add'>+	0x2984, 0x2984,</div><div class='add'>+	0x2986, 0x2986,</div><div class='add'>+	0x2988, 0x2988,</div><div class='add'>+	0x298a, 0x298a,</div><div class='add'>+	0x298c, 0x298c,</div><div class='add'>+	0x298e, 0x298e,</div><div class='add'>+	0x2990, 0x2990,</div><div class='add'>+	0x2992, 0x2992,</div><div class='add'>+	0x2994, 0x2994,</div><div class='add'>+	0x2996, 0x2996,</div><div class='add'>+	0x2998, 0x2998,</div><div class='add'>+	0x29d9, 0x29d9,</div><div class='add'>+	0x29db, 0x29db,</div><div class='add'>+	0x29fd, 0x29fd,</div><div class='add'>+	0x2e23, 0x2e23,</div><div class='add'>+	0x2e25, 0x2e25,</div><div class='add'>+	0x2e27, 0x2e27,</div><div class='add'>+	0x2e29, 0x2e29,</div><div class='add'>+	0x2e56, 0x2e56,</div><div class='add'>+	0x2e58, 0x2e58,</div><div class='add'>+	0x2e5a, 0x2e5a,</div><div class='add'>+	0x2e5c, 0x2e5c,</div><div class='add'>+	0x3009, 0x3009,</div><div class='add'>+	0x300b, 0x300b,</div><div class='add'>+	0x300d, 0x300d,</div><div class='add'>+	0x300f, 0x300f,</div><div class='add'>+	0x3011, 0x3011,</div><div class='add'>+	0x3015, 0x3015,</div><div class='add'>+	0x3017, 0x3017,</div><div class='add'>+	0x3019, 0x3019,</div><div class='add'>+	0x301b, 0x301b,</div><div class='add'>+	0x301e, 0x301f,</div><div class='add'>+	0xfd3e, 0xfd3e,</div><div class='add'>+	0xfe18, 0xfe18,</div><div class='add'>+	0xfe36, 0xfe36,</div><div class='add'>+	0xfe38, 0xfe38,</div><div class='add'>+	0xfe3a, 0xfe3a,</div><div class='add'>+	0xfe3c, 0xfe3c,</div><div class='add'>+	0xfe3e, 0xfe3e,</div><div class='add'>+	0xfe40, 0xfe40,</div><div class='add'>+	0xfe42, 0xfe42,</div><div class='add'>+	0xfe44, 0xfe44,</div><div class='add'>+	0xfe48, 0xfe48,</div><div class='add'>+	0xfe5a, 0xfe5a,</div><div class='add'>+	0xfe5c, 0xfe5c,</div><div class='add'>+	0xfe5e, 0xfe5e,</div><div class='add'>+	0xff09, 0xff09,</div><div class='add'>+	0xff3d, 0xff3d,</div><div class='add'>+	0xff5d, 0xff5d,</div><div class='add'>+	0xff60, 0xff60,</div><div class='add'>+	0xff63, 0xff63,</div><div class='add'>+}; /* CR_Pe */</div><div class='add'>+</div><div class='add'>+/* 'Pf': General Category */</div><div class='add'>+static const OnigCodePoint CR_Pf[] = {</div><div class='add'>+	10,</div><div class='add'>+	0x00bb, 0x00bb,</div><div class='add'>+	0x2019, 0x2019,</div><div class='add'>+	0x201d, 0x201d,</div><div class='add'>+	0x203a, 0x203a,</div><div class='add'>+	0x2e03, 0x2e03,</div><div class='add'>+	0x2e05, 0x2e05,</div><div class='add'>+	0x2e0a, 0x2e0a,</div><div class='add'>+	0x2e0d, 0x2e0d,</div><div class='add'>+	0x2e1d, 0x2e1d,</div><div class='add'>+	0x2e21, 0x2e21,</div><div class='add'>+}; /* CR_Pf */</div><div class='add'>+</div><div class='add'>+/* 'Pi': General Category */</div><div class='add'>+static const OnigCodePoint CR_Pi[] = {</div><div class='add'>+	11,</div><div class='add'>+	0x00ab, 0x00ab,</div><div class='add'>+	0x2018, 0x2018,</div><div class='add'>+	0x201b, 0x201c,</div><div class='add'>+	0x201f, 0x201f,</div><div class='add'>+	0x2039, 0x2039,</div><div class='add'>+	0x2e02, 0x2e02,</div><div class='add'>+	0x2e04, 0x2e04,</div><div class='add'>+	0x2e09, 0x2e09,</div><div class='add'>+	0x2e0c, 0x2e0c,</div><div class='add'>+	0x2e1c, 0x2e1c,</div><div class='add'>+	0x2e20, 0x2e20,</div><div class='add'>+}; /* CR_Pi */</div><div class='add'>+</div><div class='add'>+/* 'Po': General Category */</div><div class='add'>+static const OnigCodePoint CR_Po[] = {</div><div class='add'>+	187,</div><div class='add'>+	0x0021, 0x0023,</div><div class='add'>+	0x0025, 0x0027,</div><div class='add'>+	0x002a, 0x002a,</div><div class='add'>+	0x002c, 0x002c,</div><div class='add'>+	0x002e, 0x002f,</div><div class='add'>+	0x003a, 0x003b,</div><div class='add'>+	0x003f, 0x0040,</div><div class='add'>+	0x005c, 0x005c,</div><div class='add'>+	0x00a1, 0x00a1,</div><div class='add'>+	0x00a7, 0x00a7,</div><div class='add'>+	0x00b6, 0x00b7,</div><div class='add'>+	0x00bf, 0x00bf,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0387, 0x0387,</div><div class='add'>+	0x055a, 0x055f,</div><div class='add'>+	0x0589, 0x0589,</div><div class='add'>+	0x05c0, 0x05c0,</div><div class='add'>+	0x05c3, 0x05c3,</div><div class='add'>+	0x05c6, 0x05c6,</div><div class='add'>+	0x05f3, 0x05f4,</div><div class='add'>+	0x0609, 0x060a,</div><div class='add'>+	0x060c, 0x060d,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061d, 0x061f,</div><div class='add'>+	0x066a, 0x066d,</div><div class='add'>+	0x06d4, 0x06d4,</div><div class='add'>+	0x0700, 0x070d,</div><div class='add'>+	0x07f7, 0x07f9,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0964, 0x0965,</div><div class='add'>+	0x0970, 0x0970,</div><div class='add'>+	0x09fd, 0x09fd,</div><div class='add'>+	0x0a76, 0x0a76,</div><div class='add'>+	0x0af0, 0x0af0,</div><div class='add'>+	0x0c77, 0x0c77,</div><div class='add'>+	0x0c84, 0x0c84,</div><div class='add'>+	0x0df4, 0x0df4,</div><div class='add'>+	0x0e4f, 0x0e4f,</div><div class='add'>+	0x0e5a, 0x0e5b,</div><div class='add'>+	0x0f04, 0x0f12,</div><div class='add'>+	0x0f14, 0x0f14,</div><div class='add'>+	0x0f85, 0x0f85,</div><div class='add'>+	0x0fd0, 0x0fd4,</div><div class='add'>+	0x0fd9, 0x0fda,</div><div class='add'>+	0x104a, 0x104f,</div><div class='add'>+	0x10fb, 0x10fb,</div><div class='add'>+	0x1360, 0x1368,</div><div class='add'>+	0x166e, 0x166e,</div><div class='add'>+	0x16eb, 0x16ed,</div><div class='add'>+	0x1735, 0x1736,</div><div class='add'>+	0x17d4, 0x17d6,</div><div class='add'>+	0x17d8, 0x17da,</div><div class='add'>+	0x1800, 0x1805,</div><div class='add'>+	0x1807, 0x180a,</div><div class='add'>+	0x1944, 0x1945,</div><div class='add'>+	0x1a1e, 0x1a1f,</div><div class='add'>+	0x1aa0, 0x1aa6,</div><div class='add'>+	0x1aa8, 0x1aad,</div><div class='add'>+	0x1b5a, 0x1b60,</div><div class='add'>+	0x1b7d, 0x1b7e,</div><div class='add'>+	0x1bfc, 0x1bff,</div><div class='add'>+	0x1c3b, 0x1c3f,</div><div class='add'>+	0x1c7e, 0x1c7f,</div><div class='add'>+	0x1cc0, 0x1cc7,</div><div class='add'>+	0x1cd3, 0x1cd3,</div><div class='add'>+	0x2016, 0x2017,</div><div class='add'>+	0x2020, 0x2027,</div><div class='add'>+	0x2030, 0x2038,</div><div class='add'>+	0x203b, 0x203e,</div><div class='add'>+	0x2041, 0x2043,</div><div class='add'>+	0x2047, 0x2051,</div><div class='add'>+	0x2053, 0x2053,</div><div class='add'>+	0x2055, 0x205e,</div><div class='add'>+	0x2cf9, 0x2cfc,</div><div class='add'>+	0x2cfe, 0x2cff,</div><div class='add'>+	0x2d70, 0x2d70,</div><div class='add'>+	0x2e00, 0x2e01,</div><div class='add'>+	0x2e06, 0x2e08,</div><div class='add'>+	0x2e0b, 0x2e0b,</div><div class='add'>+	0x2e0e, 0x2e16,</div><div class='add'>+	0x2e18, 0x2e19,</div><div class='add'>+	0x2e1b, 0x2e1b,</div><div class='add'>+	0x2e1e, 0x2e1f,</div><div class='add'>+	0x2e2a, 0x2e2e,</div><div class='add'>+	0x2e30, 0x2e39,</div><div class='add'>+	0x2e3c, 0x2e3f,</div><div class='add'>+	0x2e41, 0x2e41,</div><div class='add'>+	0x2e43, 0x2e4f,</div><div class='add'>+	0x2e52, 0x2e54,</div><div class='add'>+	0x3001, 0x3003,</div><div class='add'>+	0x303d, 0x303d,</div><div class='add'>+	0x30fb, 0x30fb,</div><div class='add'>+	0xa4fe, 0xa4ff,</div><div class='add'>+	0xa60d, 0xa60f,</div><div class='add'>+	0xa673, 0xa673,</div><div class='add'>+	0xa67e, 0xa67e,</div><div class='add'>+	0xa6f2, 0xa6f7,</div><div class='add'>+	0xa874, 0xa877,</div><div class='add'>+	0xa8ce, 0xa8cf,</div><div class='add'>+	0xa8f8, 0xa8fa,</div><div class='add'>+	0xa8fc, 0xa8fc,</div><div class='add'>+	0xa92e, 0xa92f,</div><div class='add'>+	0xa95f, 0xa95f,</div><div class='add'>+	0xa9c1, 0xa9cd,</div><div class='add'>+	0xa9de, 0xa9df,</div><div class='add'>+	0xaa5c, 0xaa5f,</div><div class='add'>+	0xaade, 0xaadf,</div><div class='add'>+	0xaaf0, 0xaaf1,</div><div class='add'>+	0xabeb, 0xabeb,</div><div class='add'>+	0xfe10, 0xfe16,</div><div class='add'>+	0xfe19, 0xfe19,</div><div class='add'>+	0xfe30, 0xfe30,</div><div class='add'>+	0xfe45, 0xfe46,</div><div class='add'>+	0xfe49, 0xfe4c,</div><div class='add'>+	0xfe50, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe57,</div><div class='add'>+	0xfe5f, 0xfe61,</div><div class='add'>+	0xfe68, 0xfe68,</div><div class='add'>+	0xfe6a, 0xfe6b,</div><div class='add'>+	0xff01, 0xff03,</div><div class='add'>+	0xff05, 0xff07,</div><div class='add'>+	0xff0a, 0xff0a,</div><div class='add'>+	0xff0c, 0xff0c,</div><div class='add'>+	0xff0e, 0xff0f,</div><div class='add'>+	0xff1a, 0xff1b,</div><div class='add'>+	0xff1f, 0xff20,</div><div class='add'>+	0xff3c, 0xff3c,</div><div class='add'>+	0xff61, 0xff61,</div><div class='add'>+	0xff64, 0xff65,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x1039f, 0x1039f,</div><div class='add'>+	0x103d0, 0x103d0,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+	0x10857, 0x10857,</div><div class='add'>+	0x1091f, 0x1091f,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a7f, 0x10a7f,</div><div class='add'>+	0x10af0, 0x10af6,</div><div class='add'>+	0x10b39, 0x10b3f,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10f55, 0x10f59,</div><div class='add'>+	0x10f86, 0x10f89,</div><div class='add'>+	0x11047, 0x1104d,</div><div class='add'>+	0x110bb, 0x110bc,</div><div class='add'>+	0x110be, 0x110c1,</div><div class='add'>+	0x11140, 0x11143,</div><div class='add'>+	0x11174, 0x11175,</div><div class='add'>+	0x111c5, 0x111c8,</div><div class='add'>+	0x111cd, 0x111cd,</div><div class='add'>+	0x111db, 0x111db,</div><div class='add'>+	0x111dd, 0x111df,</div><div class='add'>+	0x11238, 0x1123d,</div><div class='add'>+	0x112a9, 0x112a9,</div><div class='add'>+	0x1144b, 0x1144f,</div><div class='add'>+	0x1145a, 0x1145b,</div><div class='add'>+	0x1145d, 0x1145d,</div><div class='add'>+	0x114c6, 0x114c6,</div><div class='add'>+	0x115c1, 0x115d7,</div><div class='add'>+	0x11641, 0x11643,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x116b9, 0x116b9,</div><div class='add'>+	0x1173c, 0x1173e,</div><div class='add'>+	0x1183b, 0x1183b,</div><div class='add'>+	0x11944, 0x11946,</div><div class='add'>+	0x119e2, 0x119e2,</div><div class='add'>+	0x11a3f, 0x11a46,</div><div class='add'>+	0x11a9a, 0x11a9c,</div><div class='add'>+	0x11a9e, 0x11aa2,</div><div class='add'>+	0x11b00, 0x11b09,</div><div class='add'>+	0x11c41, 0x11c45,</div><div class='add'>+	0x11c70, 0x11c71,</div><div class='add'>+	0x11ef7, 0x11ef8,</div><div class='add'>+	0x11f43, 0x11f4f,</div><div class='add'>+	0x11fff, 0x11fff,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12ff1, 0x12ff2,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16af5, 0x16af5,</div><div class='add'>+	0x16b37, 0x16b3b,</div><div class='add'>+	0x16b44, 0x16b44,</div><div class='add'>+	0x16e97, 0x16e9a,</div><div class='add'>+	0x16fe2, 0x16fe2,</div><div class='add'>+	0x1bc9f, 0x1bc9f,</div><div class='add'>+	0x1da87, 0x1da8b,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+}; /* CR_Po */</div><div class='add'>+</div><div class='add'>+/* 'Ps': General Category */</div><div class='add'>+static const OnigCodePoint CR_Ps[] = {</div><div class='add'>+	79,</div><div class='add'>+	0x0028, 0x0028,</div><div class='add'>+	0x005b, 0x005b,</div><div class='add'>+	0x007b, 0x007b,</div><div class='add'>+	0x0f3a, 0x0f3a,</div><div class='add'>+	0x0f3c, 0x0f3c,</div><div class='add'>+	0x169b, 0x169b,</div><div class='add'>+	0x201a, 0x201a,</div><div class='add'>+	0x201e, 0x201e,</div><div class='add'>+	0x2045, 0x2045,</div><div class='add'>+	0x207d, 0x207d,</div><div class='add'>+	0x208d, 0x208d,</div><div class='add'>+	0x2308, 0x2308,</div><div class='add'>+	0x230a, 0x230a,</div><div class='add'>+	0x2329, 0x2329,</div><div class='add'>+	0x2768, 0x2768,</div><div class='add'>+	0x276a, 0x276a,</div><div class='add'>+	0x276c, 0x276c,</div><div class='add'>+	0x276e, 0x276e,</div><div class='add'>+	0x2770, 0x2770,</div><div class='add'>+	0x2772, 0x2772,</div><div class='add'>+	0x2774, 0x2774,</div><div class='add'>+	0x27c5, 0x27c5,</div><div class='add'>+	0x27e6, 0x27e6,</div><div class='add'>+	0x27e8, 0x27e8,</div><div class='add'>+	0x27ea, 0x27ea,</div><div class='add'>+	0x27ec, 0x27ec,</div><div class='add'>+	0x27ee, 0x27ee,</div><div class='add'>+	0x2983, 0x2983,</div><div class='add'>+	0x2985, 0x2985,</div><div class='add'>+	0x2987, 0x2987,</div><div class='add'>+	0x2989, 0x2989,</div><div class='add'>+	0x298b, 0x298b,</div><div class='add'>+	0x298d, 0x298d,</div><div class='add'>+	0x298f, 0x298f,</div><div class='add'>+	0x2991, 0x2991,</div><div class='add'>+	0x2993, 0x2993,</div><div class='add'>+	0x2995, 0x2995,</div><div class='add'>+	0x2997, 0x2997,</div><div class='add'>+	0x29d8, 0x29d8,</div><div class='add'>+	0x29da, 0x29da,</div><div class='add'>+	0x29fc, 0x29fc,</div><div class='add'>+	0x2e22, 0x2e22,</div><div class='add'>+	0x2e24, 0x2e24,</div><div class='add'>+	0x2e26, 0x2e26,</div><div class='add'>+	0x2e28, 0x2e28,</div><div class='add'>+	0x2e42, 0x2e42,</div><div class='add'>+	0x2e55, 0x2e55,</div><div class='add'>+	0x2e57, 0x2e57,</div><div class='add'>+	0x2e59, 0x2e59,</div><div class='add'>+	0x2e5b, 0x2e5b,</div><div class='add'>+	0x3008, 0x3008,</div><div class='add'>+	0x300a, 0x300a,</div><div class='add'>+	0x300c, 0x300c,</div><div class='add'>+	0x300e, 0x300e,</div><div class='add'>+	0x3010, 0x3010,</div><div class='add'>+	0x3014, 0x3014,</div><div class='add'>+	0x3016, 0x3016,</div><div class='add'>+	0x3018, 0x3018,</div><div class='add'>+	0x301a, 0x301a,</div><div class='add'>+	0x301d, 0x301d,</div><div class='add'>+	0xfd3f, 0xfd3f,</div><div class='add'>+	0xfe17, 0xfe17,</div><div class='add'>+	0xfe35, 0xfe35,</div><div class='add'>+	0xfe37, 0xfe37,</div><div class='add'>+	0xfe39, 0xfe39,</div><div class='add'>+	0xfe3b, 0xfe3b,</div><div class='add'>+	0xfe3d, 0xfe3d,</div><div class='add'>+	0xfe3f, 0xfe3f,</div><div class='add'>+	0xfe41, 0xfe41,</div><div class='add'>+	0xfe43, 0xfe43,</div><div class='add'>+	0xfe47, 0xfe47,</div><div class='add'>+	0xfe59, 0xfe59,</div><div class='add'>+	0xfe5b, 0xfe5b,</div><div class='add'>+	0xfe5d, 0xfe5d,</div><div class='add'>+	0xff08, 0xff08,</div><div class='add'>+	0xff3b, 0xff3b,</div><div class='add'>+	0xff5b, 0xff5b,</div><div class='add'>+	0xff5f, 0xff5f,</div><div class='add'>+	0xff62, 0xff62,</div><div class='add'>+}; /* CR_Ps */</div><div class='add'>+</div><div class='add'>+/* 'S': Major Category */</div><div class='add'>+static const OnigCodePoint CR_S[] = {</div><div class='add'>+	232,</div><div class='add'>+	0x0024, 0x0024,</div><div class='add'>+	0x002b, 0x002b,</div><div class='add'>+	0x003c, 0x003e,</div><div class='add'>+	0x005e, 0x005e,</div><div class='add'>+	0x0060, 0x0060,</div><div class='add'>+	0x007c, 0x007c,</div><div class='add'>+	0x007e, 0x007e,</div><div class='add'>+	0x00a2, 0x00a6,</div><div class='add'>+	0x00a8, 0x00a9,</div><div class='add'>+	0x00ac, 0x00ac,</div><div class='add'>+	0x00ae, 0x00b1,</div><div class='add'>+	0x00b4, 0x00b4,</div><div class='add'>+	0x00b8, 0x00b8,</div><div class='add'>+	0x00d7, 0x00d7,</div><div class='add'>+	0x00f7, 0x00f7,</div><div class='add'>+	0x02c2, 0x02c5,</div><div class='add'>+	0x02d2, 0x02df,</div><div class='add'>+	0x02e5, 0x02eb,</div><div class='add'>+	0x02ed, 0x02ed,</div><div class='add'>+	0x02ef, 0x02ff,</div><div class='add'>+	0x0375, 0x0375,</div><div class='add'>+	0x0384, 0x0385,</div><div class='add'>+	0x03f6, 0x03f6,</div><div class='add'>+	0x0482, 0x0482,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0606, 0x0608,</div><div class='add'>+	0x060b, 0x060b,</div><div class='add'>+	0x060e, 0x060f,</div><div class='add'>+	0x06de, 0x06de,</div><div class='add'>+	0x06e9, 0x06e9,</div><div class='add'>+	0x06fd, 0x06fe,</div><div class='add'>+	0x07f6, 0x07f6,</div><div class='add'>+	0x07fe, 0x07ff,</div><div class='add'>+	0x0888, 0x0888,</div><div class='add'>+	0x09f2, 0x09f3,</div><div class='add'>+	0x09fa, 0x09fb,</div><div class='add'>+	0x0af1, 0x0af1,</div><div class='add'>+	0x0b70, 0x0b70,</div><div class='add'>+	0x0bf3, 0x0bfa,</div><div class='add'>+	0x0c7f, 0x0c7f,</div><div class='add'>+	0x0d4f, 0x0d4f,</div><div class='add'>+	0x0d79, 0x0d79,</div><div class='add'>+	0x0e3f, 0x0e3f,</div><div class='add'>+	0x0f01, 0x0f03,</div><div class='add'>+	0x0f13, 0x0f13,</div><div class='add'>+	0x0f15, 0x0f17,</div><div class='add'>+	0x0f1a, 0x0f1f,</div><div class='add'>+	0x0f34, 0x0f34,</div><div class='add'>+	0x0f36, 0x0f36,</div><div class='add'>+	0x0f38, 0x0f38,</div><div class='add'>+	0x0fbe, 0x0fc5,</div><div class='add'>+	0x0fc7, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fcf,</div><div class='add'>+	0x0fd5, 0x0fd8,</div><div class='add'>+	0x109e, 0x109f,</div><div class='add'>+	0x1390, 0x1399,</div><div class='add'>+	0x166d, 0x166d,</div><div class='add'>+	0x17db, 0x17db,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x19de, 0x19ff,</div><div class='add'>+	0x1b61, 0x1b6a,</div><div class='add'>+	0x1b74, 0x1b7c,</div><div class='add'>+	0x1fbd, 0x1fbd,</div><div class='add'>+	0x1fbf, 0x1fc1,</div><div class='add'>+	0x1fcd, 0x1fcf,</div><div class='add'>+	0x1fdd, 0x1fdf,</div><div class='add'>+	0x1fed, 0x1fef,</div><div class='add'>+	0x1ffd, 0x1ffe,</div><div class='add'>+	0x2044, 0x2044,</div><div class='add'>+	0x2052, 0x2052,</div><div class='add'>+	0x207a, 0x207c,</div><div class='add'>+	0x208a, 0x208c,</div><div class='add'>+	0x20a0, 0x20c0,</div><div class='add'>+	0x2100, 0x2101,</div><div class='add'>+	0x2103, 0x2106,</div><div class='add'>+	0x2108, 0x2109,</div><div class='add'>+	0x2114, 0x2114,</div><div class='add'>+	0x2116, 0x2118,</div><div class='add'>+	0x211e, 0x2123,</div><div class='add'>+	0x2125, 0x2125,</div><div class='add'>+	0x2127, 0x2127,</div><div class='add'>+	0x2129, 0x2129,</div><div class='add'>+	0x212e, 0x212e,</div><div class='add'>+	0x213a, 0x213b,</div><div class='add'>+	0x2140, 0x2144,</div><div class='add'>+	0x214a, 0x214d,</div><div class='add'>+	0x214f, 0x214f,</div><div class='add'>+	0x218a, 0x218b,</div><div class='add'>+	0x2190, 0x2307,</div><div class='add'>+	0x230c, 0x2328,</div><div class='add'>+	0x232b, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x249c, 0x24e9,</div><div class='add'>+	0x2500, 0x2767,</div><div class='add'>+	0x2794, 0x27c4,</div><div class='add'>+	0x27c7, 0x27e5,</div><div class='add'>+	0x27f0, 0x2982,</div><div class='add'>+	0x2999, 0x29d7,</div><div class='add'>+	0x29dc, 0x29fb,</div><div class='add'>+	0x29fe, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b97, 0x2bff,</div><div class='add'>+	0x2ce5, 0x2cea,</div><div class='add'>+	0x2e50, 0x2e51,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3004, 0x3004,</div><div class='add'>+	0x3012, 0x3013,</div><div class='add'>+	0x3020, 0x3020,</div><div class='add'>+	0x3036, 0x3037,</div><div class='add'>+	0x303e, 0x303f,</div><div class='add'>+	0x309b, 0x309c,</div><div class='add'>+	0x3190, 0x3191,</div><div class='add'>+	0x3196, 0x319f,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x3200, 0x321e,</div><div class='add'>+	0x322a, 0x3247,</div><div class='add'>+	0x3250, 0x3250,</div><div class='add'>+	0x3260, 0x327f,</div><div class='add'>+	0x328a, 0x32b0,</div><div class='add'>+	0x32c0, 0x33ff,</div><div class='add'>+	0x4dc0, 0x4dff,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa700, 0xa716,</div><div class='add'>+	0xa720, 0xa721,</div><div class='add'>+	0xa789, 0xa78a,</div><div class='add'>+	0xa828, 0xa82b,</div><div class='add'>+	0xa836, 0xa839,</div><div class='add'>+	0xaa77, 0xaa79,</div><div class='add'>+	0xab5b, 0xab5b,</div><div class='add'>+	0xab6a, 0xab6b,</div><div class='add'>+	0xfb29, 0xfb29,</div><div class='add'>+	0xfbb2, 0xfbc2,</div><div class='add'>+	0xfd40, 0xfd4f,</div><div class='add'>+	0xfdcf, 0xfdcf,</div><div class='add'>+	0xfdfc, 0xfdff,</div><div class='add'>+	0xfe62, 0xfe62,</div><div class='add'>+	0xfe64, 0xfe66,</div><div class='add'>+	0xfe69, 0xfe69,</div><div class='add'>+	0xff04, 0xff04,</div><div class='add'>+	0xff0b, 0xff0b,</div><div class='add'>+	0xff1c, 0xff1e,</div><div class='add'>+	0xff3e, 0xff3e,</div><div class='add'>+	0xff40, 0xff40,</div><div class='add'>+	0xff5c, 0xff5c,</div><div class='add'>+	0xff5e, 0xff5e,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfffc, 0xfffd,</div><div class='add'>+	0x10137, 0x1013f,</div><div class='add'>+	0x10179, 0x10189,</div><div class='add'>+	0x1018c, 0x1018e,</div><div class='add'>+	0x10190, 0x1019c,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fc,</div><div class='add'>+	0x10877, 0x10878,</div><div class='add'>+	0x10ac8, 0x10ac8,</div><div class='add'>+	0x1173f, 0x1173f,</div><div class='add'>+	0x11fd5, 0x11ff1,</div><div class='add'>+	0x16b3c, 0x16b3f,</div><div class='add'>+	0x16b45, 0x16b45,</div><div class='add'>+	0x1bc9c, 0x1bc9c,</div><div class='add'>+	0x1cf50, 0x1cfc3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d164,</div><div class='add'>+	0x1d16a, 0x1d16c,</div><div class='add'>+	0x1d183, 0x1d184,</div><div class='add'>+	0x1d18c, 0x1d1a9,</div><div class='add'>+	0x1d1ae, 0x1d1ea,</div><div class='add'>+	0x1d200, 0x1d241,</div><div class='add'>+	0x1d245, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d6c1, 0x1d6c1,</div><div class='add'>+	0x1d6db, 0x1d6db,</div><div class='add'>+	0x1d6fb, 0x1d6fb,</div><div class='add'>+	0x1d715, 0x1d715,</div><div class='add'>+	0x1d735, 0x1d735,</div><div class='add'>+	0x1d74f, 0x1d74f,</div><div class='add'>+	0x1d76f, 0x1d76f,</div><div class='add'>+	0x1d789, 0x1d789,</div><div class='add'>+	0x1d7a9, 0x1d7a9,</div><div class='add'>+	0x1d7c3, 0x1d7c3,</div><div class='add'>+	0x1d800, 0x1d9ff,</div><div class='add'>+	0x1da37, 0x1da3a,</div><div class='add'>+	0x1da6d, 0x1da74,</div><div class='add'>+	0x1da76, 0x1da83,</div><div class='add'>+	0x1da85, 0x1da86,</div><div class='add'>+	0x1e14f, 0x1e14f,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+	0x1ecac, 0x1ecac,</div><div class='add'>+	0x1ecb0, 0x1ecb0,</div><div class='add'>+	0x1ed2e, 0x1ed2e,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f10d, 0x1f1ad,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d7,</div><div class='add'>+	0x1f6dc, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fc,</div><div class='add'>+	0x1f700, 0x1f776,</div><div class='add'>+	0x1f77b, 0x1f7d9,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f7f0, 0x1f7f0,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f8b0, 0x1f8b1,</div><div class='add'>+	0x1f900, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa7c,</div><div class='add'>+	0x1fa80, 0x1fa88,</div><div class='add'>+	0x1fa90, 0x1fabd,</div><div class='add'>+	0x1fabf, 0x1fac5,</div><div class='add'>+	0x1face, 0x1fadb,</div><div class='add'>+	0x1fae0, 0x1fae8,</div><div class='add'>+	0x1faf0, 0x1faf8,</div><div class='add'>+	0x1fb00, 0x1fb92,</div><div class='add'>+	0x1fb94, 0x1fbca,</div><div class='add'>+}; /* CR_S */</div><div class='add'>+</div><div class='add'>+/* 'Sc': General Category */</div><div class='add'>+static const OnigCodePoint CR_Sc[] = {</div><div class='add'>+	21,</div><div class='add'>+	0x0024, 0x0024,</div><div class='add'>+	0x00a2, 0x00a5,</div><div class='add'>+	0x058f, 0x058f,</div><div class='add'>+	0x060b, 0x060b,</div><div class='add'>+	0x07fe, 0x07ff,</div><div class='add'>+	0x09f2, 0x09f3,</div><div class='add'>+	0x09fb, 0x09fb,</div><div class='add'>+	0x0af1, 0x0af1,</div><div class='add'>+	0x0bf9, 0x0bf9,</div><div class='add'>+	0x0e3f, 0x0e3f,</div><div class='add'>+	0x17db, 0x17db,</div><div class='add'>+	0x20a0, 0x20c0,</div><div class='add'>+	0xa838, 0xa838,</div><div class='add'>+	0xfdfc, 0xfdfc,</div><div class='add'>+	0xfe69, 0xfe69,</div><div class='add'>+	0xff04, 0xff04,</div><div class='add'>+	0xffe0, 0xffe1,</div><div class='add'>+	0xffe5, 0xffe6,</div><div class='add'>+	0x11fdd, 0x11fe0,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+	0x1ecb0, 0x1ecb0,</div><div class='add'>+}; /* CR_Sc */</div><div class='add'>+</div><div class='add'>+/* 'Sk': General Category */</div><div class='add'>+static const OnigCodePoint CR_Sk[] = {</div><div class='add'>+	31,</div><div class='add'>+	0x005e, 0x005e,</div><div class='add'>+	0x0060, 0x0060,</div><div class='add'>+	0x00a8, 0x00a8,</div><div class='add'>+	0x00af, 0x00af,</div><div class='add'>+	0x00b4, 0x00b4,</div><div class='add'>+	0x00b8, 0x00b8,</div><div class='add'>+	0x02c2, 0x02c5,</div><div class='add'>+	0x02d2, 0x02df,</div><div class='add'>+	0x02e5, 0x02eb,</div><div class='add'>+	0x02ed, 0x02ed,</div><div class='add'>+	0x02ef, 0x02ff,</div><div class='add'>+	0x0375, 0x0375,</div><div class='add'>+	0x0384, 0x0385,</div><div class='add'>+	0x0888, 0x0888,</div><div class='add'>+	0x1fbd, 0x1fbd,</div><div class='add'>+	0x1fbf, 0x1fc1,</div><div class='add'>+	0x1fcd, 0x1fcf,</div><div class='add'>+	0x1fdd, 0x1fdf,</div><div class='add'>+	0x1fed, 0x1fef,</div><div class='add'>+	0x1ffd, 0x1ffe,</div><div class='add'>+	0x309b, 0x309c,</div><div class='add'>+	0xa700, 0xa716,</div><div class='add'>+	0xa720, 0xa721,</div><div class='add'>+	0xa789, 0xa78a,</div><div class='add'>+	0xab5b, 0xab5b,</div><div class='add'>+	0xab6a, 0xab6b,</div><div class='add'>+	0xfbb2, 0xfbc2,</div><div class='add'>+	0xff3e, 0xff3e,</div><div class='add'>+	0xff40, 0xff40,</div><div class='add'>+	0xffe3, 0xffe3,</div><div class='add'>+	0x1f3fb, 0x1f3ff,</div><div class='add'>+}; /* CR_Sk */</div><div class='add'>+</div><div class='add'>+/* 'Sm': General Category */</div><div class='add'>+static const OnigCodePoint CR_Sm[] = {</div><div class='add'>+	64,</div><div class='add'>+	0x002b, 0x002b,</div><div class='add'>+	0x003c, 0x003e,</div><div class='add'>+	0x007c, 0x007c,</div><div class='add'>+	0x007e, 0x007e,</div><div class='add'>+	0x00ac, 0x00ac,</div><div class='add'>+	0x00b1, 0x00b1,</div><div class='add'>+	0x00d7, 0x00d7,</div><div class='add'>+	0x00f7, 0x00f7,</div><div class='add'>+	0x03f6, 0x03f6,</div><div class='add'>+	0x0606, 0x0608,</div><div class='add'>+	0x2044, 0x2044,</div><div class='add'>+	0x2052, 0x2052,</div><div class='add'>+	0x207a, 0x207c,</div><div class='add'>+	0x208a, 0x208c,</div><div class='add'>+	0x2118, 0x2118,</div><div class='add'>+	0x2140, 0x2144,</div><div class='add'>+	0x214b, 0x214b,</div><div class='add'>+	0x2190, 0x2194,</div><div class='add'>+	0x219a, 0x219b,</div><div class='add'>+	0x21a0, 0x21a0,</div><div class='add'>+	0x21a3, 0x21a3,</div><div class='add'>+	0x21a6, 0x21a6,</div><div class='add'>+	0x21ae, 0x21ae,</div><div class='add'>+	0x21ce, 0x21cf,</div><div class='add'>+	0x21d2, 0x21d2,</div><div class='add'>+	0x21d4, 0x21d4,</div><div class='add'>+	0x21f4, 0x22ff,</div><div class='add'>+	0x2320, 0x2321,</div><div class='add'>+	0x237c, 0x237c,</div><div class='add'>+	0x239b, 0x23b3,</div><div class='add'>+	0x23dc, 0x23e1,</div><div class='add'>+	0x25b7, 0x25b7,</div><div class='add'>+	0x25c1, 0x25c1,</div><div class='add'>+	0x25f8, 0x25ff,</div><div class='add'>+	0x266f, 0x266f,</div><div class='add'>+	0x27c0, 0x27c4,</div><div class='add'>+	0x27c7, 0x27e5,</div><div class='add'>+	0x27f0, 0x27ff,</div><div class='add'>+	0x2900, 0x2982,</div><div class='add'>+	0x2999, 0x29d7,</div><div class='add'>+	0x29dc, 0x29fb,</div><div class='add'>+	0x29fe, 0x2aff,</div><div class='add'>+	0x2b30, 0x2b44,</div><div class='add'>+	0x2b47, 0x2b4c,</div><div class='add'>+	0xfb29, 0xfb29,</div><div class='add'>+	0xfe62, 0xfe62,</div><div class='add'>+	0xfe64, 0xfe66,</div><div class='add'>+	0xff0b, 0xff0b,</div><div class='add'>+	0xff1c, 0xff1e,</div><div class='add'>+	0xff5c, 0xff5c,</div><div class='add'>+	0xff5e, 0xff5e,</div><div class='add'>+	0xffe2, 0xffe2,</div><div class='add'>+	0xffe9, 0xffec,</div><div class='add'>+	0x1d6c1, 0x1d6c1,</div><div class='add'>+	0x1d6db, 0x1d6db,</div><div class='add'>+	0x1d6fb, 0x1d6fb,</div><div class='add'>+	0x1d715, 0x1d715,</div><div class='add'>+	0x1d735, 0x1d735,</div><div class='add'>+	0x1d74f, 0x1d74f,</div><div class='add'>+	0x1d76f, 0x1d76f,</div><div class='add'>+	0x1d789, 0x1d789,</div><div class='add'>+	0x1d7a9, 0x1d7a9,</div><div class='add'>+	0x1d7c3, 0x1d7c3,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+}; /* CR_Sm */</div><div class='add'>+</div><div class='add'>+/* 'So': General Category */</div><div class='add'>+static const OnigCodePoint CR_So[] = {</div><div class='add'>+	184,</div><div class='add'>+	0x00a6, 0x00a6,</div><div class='add'>+	0x00a9, 0x00a9,</div><div class='add'>+	0x00ae, 0x00ae,</div><div class='add'>+	0x00b0, 0x00b0,</div><div class='add'>+	0x0482, 0x0482,</div><div class='add'>+	0x058d, 0x058e,</div><div class='add'>+	0x060e, 0x060f,</div><div class='add'>+	0x06de, 0x06de,</div><div class='add'>+	0x06e9, 0x06e9,</div><div class='add'>+	0x06fd, 0x06fe,</div><div class='add'>+	0x07f6, 0x07f6,</div><div class='add'>+	0x09fa, 0x09fa,</div><div class='add'>+	0x0b70, 0x0b70,</div><div class='add'>+	0x0bf3, 0x0bf8,</div><div class='add'>+	0x0bfa, 0x0bfa,</div><div class='add'>+	0x0c7f, 0x0c7f,</div><div class='add'>+	0x0d4f, 0x0d4f,</div><div class='add'>+	0x0d79, 0x0d79,</div><div class='add'>+	0x0f01, 0x0f03,</div><div class='add'>+	0x0f13, 0x0f13,</div><div class='add'>+	0x0f15, 0x0f17,</div><div class='add'>+	0x0f1a, 0x0f1f,</div><div class='add'>+	0x0f34, 0x0f34,</div><div class='add'>+	0x0f36, 0x0f36,</div><div class='add'>+	0x0f38, 0x0f38,</div><div class='add'>+	0x0fbe, 0x0fc5,</div><div class='add'>+	0x0fc7, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fcf,</div><div class='add'>+	0x0fd5, 0x0fd8,</div><div class='add'>+	0x109e, 0x109f,</div><div class='add'>+	0x1390, 0x1399,</div><div class='add'>+	0x166d, 0x166d,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x19de, 0x19ff,</div><div class='add'>+	0x1b61, 0x1b6a,</div><div class='add'>+	0x1b74, 0x1b7c,</div><div class='add'>+	0x2100, 0x2101,</div><div class='add'>+	0x2103, 0x2106,</div><div class='add'>+	0x2108, 0x2109,</div><div class='add'>+	0x2114, 0x2114,</div><div class='add'>+	0x2116, 0x2117,</div><div class='add'>+	0x211e, 0x2123,</div><div class='add'>+	0x2125, 0x2125,</div><div class='add'>+	0x2127, 0x2127,</div><div class='add'>+	0x2129, 0x2129,</div><div class='add'>+	0x212e, 0x212e,</div><div class='add'>+	0x213a, 0x213b,</div><div class='add'>+	0x214a, 0x214a,</div><div class='add'>+	0x214c, 0x214d,</div><div class='add'>+	0x214f, 0x214f,</div><div class='add'>+	0x218a, 0x218b,</div><div class='add'>+	0x2195, 0x2199,</div><div class='add'>+	0x219c, 0x219f,</div><div class='add'>+	0x21a1, 0x21a2,</div><div class='add'>+	0x21a4, 0x21a5,</div><div class='add'>+	0x21a7, 0x21ad,</div><div class='add'>+	0x21af, 0x21cd,</div><div class='add'>+	0x21d0, 0x21d1,</div><div class='add'>+	0x21d3, 0x21d3,</div><div class='add'>+	0x21d5, 0x21f3,</div><div class='add'>+	0x2300, 0x2307,</div><div class='add'>+	0x230c, 0x231f,</div><div class='add'>+	0x2322, 0x2328,</div><div class='add'>+	0x232b, 0x237b,</div><div class='add'>+	0x237d, 0x239a,</div><div class='add'>+	0x23b4, 0x23db,</div><div class='add'>+	0x23e2, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x249c, 0x24e9,</div><div class='add'>+	0x2500, 0x25b6,</div><div class='add'>+	0x25b8, 0x25c0,</div><div class='add'>+	0x25c2, 0x25f7,</div><div class='add'>+	0x2600, 0x266e,</div><div class='add'>+	0x2670, 0x2767,</div><div class='add'>+	0x2794, 0x27bf,</div><div class='add'>+	0x2800, 0x28ff,</div><div class='add'>+	0x2b00, 0x2b2f,</div><div class='add'>+	0x2b45, 0x2b46,</div><div class='add'>+	0x2b4d, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b97, 0x2bff,</div><div class='add'>+	0x2ce5, 0x2cea,</div><div class='add'>+	0x2e50, 0x2e51,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3004, 0x3004,</div><div class='add'>+	0x3012, 0x3013,</div><div class='add'>+	0x3020, 0x3020,</div><div class='add'>+	0x3036, 0x3037,</div><div class='add'>+	0x303e, 0x303f,</div><div class='add'>+	0x3190, 0x3191,</div><div class='add'>+	0x3196, 0x319f,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x3200, 0x321e,</div><div class='add'>+	0x322a, 0x3247,</div><div class='add'>+	0x3250, 0x3250,</div><div class='add'>+	0x3260, 0x327f,</div><div class='add'>+	0x328a, 0x32b0,</div><div class='add'>+	0x32c0, 0x33ff,</div><div class='add'>+	0x4dc0, 0x4dff,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa828, 0xa82b,</div><div class='add'>+	0xa836, 0xa837,</div><div class='add'>+	0xa839, 0xa839,</div><div class='add'>+	0xaa77, 0xaa79,</div><div class='add'>+	0xfd40, 0xfd4f,</div><div class='add'>+	0xfdcf, 0xfdcf,</div><div class='add'>+	0xfdfd, 0xfdff,</div><div class='add'>+	0xffe4, 0xffe4,</div><div class='add'>+	0xffe8, 0xffe8,</div><div class='add'>+	0xffed, 0xffee,</div><div class='add'>+	0xfffc, 0xfffd,</div><div class='add'>+	0x10137, 0x1013f,</div><div class='add'>+	0x10179, 0x10189,</div><div class='add'>+	0x1018c, 0x1018e,</div><div class='add'>+	0x10190, 0x1019c,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fc,</div><div class='add'>+	0x10877, 0x10878,</div><div class='add'>+	0x10ac8, 0x10ac8,</div><div class='add'>+	0x1173f, 0x1173f,</div><div class='add'>+	0x11fd5, 0x11fdc,</div><div class='add'>+	0x11fe1, 0x11ff1,</div><div class='add'>+	0x16b3c, 0x16b3f,</div><div class='add'>+	0x16b45, 0x16b45,</div><div class='add'>+	0x1bc9c, 0x1bc9c,</div><div class='add'>+	0x1cf50, 0x1cfc3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d164,</div><div class='add'>+	0x1d16a, 0x1d16c,</div><div class='add'>+	0x1d183, 0x1d184,</div><div class='add'>+	0x1d18c, 0x1d1a9,</div><div class='add'>+	0x1d1ae, 0x1d1ea,</div><div class='add'>+	0x1d200, 0x1d241,</div><div class='add'>+	0x1d245, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d800, 0x1d9ff,</div><div class='add'>+	0x1da37, 0x1da3a,</div><div class='add'>+	0x1da6d, 0x1da74,</div><div class='add'>+	0x1da76, 0x1da83,</div><div class='add'>+	0x1da85, 0x1da86,</div><div class='add'>+	0x1e14f, 0x1e14f,</div><div class='add'>+	0x1ecac, 0x1ecac,</div><div class='add'>+	0x1ed2e, 0x1ed2e,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f10d, 0x1f1ad,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f3fa,</div><div class='add'>+	0x1f400, 0x1f6d7,</div><div class='add'>+	0x1f6dc, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fc,</div><div class='add'>+	0x1f700, 0x1f776,</div><div class='add'>+	0x1f77b, 0x1f7d9,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f7f0, 0x1f7f0,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f8b0, 0x1f8b1,</div><div class='add'>+	0x1f900, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa7c,</div><div class='add'>+	0x1fa80, 0x1fa88,</div><div class='add'>+	0x1fa90, 0x1fabd,</div><div class='add'>+	0x1fabf, 0x1fac5,</div><div class='add'>+	0x1face, 0x1fadb,</div><div class='add'>+	0x1fae0, 0x1fae8,</div><div class='add'>+	0x1faf0, 0x1faf8,</div><div class='add'>+	0x1fb00, 0x1fb92,</div><div class='add'>+	0x1fb94, 0x1fbca,</div><div class='add'>+}; /* CR_So */</div><div class='add'>+</div><div class='add'>+/* 'Z': Major Category */</div><div class='add'>+static const OnigCodePoint CR_Z[] = {</div><div class='add'>+	8,</div><div class='add'>+	0x0020, 0x0020,</div><div class='add'>+	0x00a0, 0x00a0,</div><div class='add'>+	0x1680, 0x1680,</div><div class='add'>+	0x2000, 0x200a,</div><div class='add'>+	0x2028, 0x2029,</div><div class='add'>+	0x202f, 0x202f,</div><div class='add'>+	0x205f, 0x205f,</div><div class='add'>+	0x3000, 0x3000,</div><div class='add'>+}; /* CR_Z */</div><div class='add'>+</div><div class='add'>+/* 'Zl': General Category */</div><div class='add'>+static const OnigCodePoint CR_Zl[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2028, 0x2028,</div><div class='add'>+}; /* CR_Zl */</div><div class='add'>+</div><div class='add'>+/* 'Zp': General Category */</div><div class='add'>+static const OnigCodePoint CR_Zp[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2029, 0x2029,</div><div class='add'>+}; /* CR_Zp */</div><div class='add'>+</div><div class='add'>+/* 'Zs': General Category */</div><div class='add'>+static const OnigCodePoint CR_Zs[] = {</div><div class='add'>+	7,</div><div class='add'>+	0x0020, 0x0020,</div><div class='add'>+	0x00a0, 0x00a0,</div><div class='add'>+	0x1680, 0x1680,</div><div class='add'>+	0x2000, 0x200a,</div><div class='add'>+	0x202f, 0x202f,</div><div class='add'>+	0x205f, 0x205f,</div><div class='add'>+	0x3000, 0x3000,</div><div class='add'>+}; /* CR_Zs */</div><div class='add'>+</div><div class='add'>+/* 'Math': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Math[] = {</div><div class='add'>+	138,</div><div class='add'>+	0x002b, 0x002b,</div><div class='add'>+	0x003c, 0x003e,</div><div class='add'>+	0x005e, 0x005e,</div><div class='add'>+	0x007c, 0x007c,</div><div class='add'>+	0x007e, 0x007e,</div><div class='add'>+	0x00ac, 0x00ac,</div><div class='add'>+	0x00b1, 0x00b1,</div><div class='add'>+	0x00d7, 0x00d7,</div><div class='add'>+	0x00f7, 0x00f7,</div><div class='add'>+	0x03d0, 0x03d2,</div><div class='add'>+	0x03d5, 0x03d5,</div><div class='add'>+	0x03f0, 0x03f1,</div><div class='add'>+	0x03f4, 0x03f6,</div><div class='add'>+	0x0606, 0x0608,</div><div class='add'>+	0x2016, 0x2016,</div><div class='add'>+	0x2032, 0x2034,</div><div class='add'>+	0x2040, 0x2040,</div><div class='add'>+	0x2044, 0x2044,</div><div class='add'>+	0x2052, 0x2052,</div><div class='add'>+	0x2061, 0x2064,</div><div class='add'>+	0x207a, 0x207e,</div><div class='add'>+	0x208a, 0x208e,</div><div class='add'>+	0x20d0, 0x20dc,</div><div class='add'>+	0x20e1, 0x20e1,</div><div class='add'>+	0x20e5, 0x20e6,</div><div class='add'>+	0x20eb, 0x20ef,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2118, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2128, 0x2129,</div><div class='add'>+	0x212c, 0x212d,</div><div class='add'>+	0x212f, 0x2131,</div><div class='add'>+	0x2133, 0x2138,</div><div class='add'>+	0x213c, 0x2149,</div><div class='add'>+	0x214b, 0x214b,</div><div class='add'>+	0x2190, 0x21a7,</div><div class='add'>+	0x21a9, 0x21ae,</div><div class='add'>+	0x21b0, 0x21b1,</div><div class='add'>+	0x21b6, 0x21b7,</div><div class='add'>+	0x21bc, 0x21db,</div><div class='add'>+	0x21dd, 0x21dd,</div><div class='add'>+	0x21e4, 0x21e5,</div><div class='add'>+	0x21f4, 0x22ff,</div><div class='add'>+	0x2308, 0x230b,</div><div class='add'>+	0x2320, 0x2321,</div><div class='add'>+	0x237c, 0x237c,</div><div class='add'>+	0x239b, 0x23b5,</div><div class='add'>+	0x23b7, 0x23b7,</div><div class='add'>+	0x23d0, 0x23d0,</div><div class='add'>+	0x23dc, 0x23e2,</div><div class='add'>+	0x25a0, 0x25a1,</div><div class='add'>+	0x25ae, 0x25b7,</div><div class='add'>+	0x25bc, 0x25c1,</div><div class='add'>+	0x25c6, 0x25c7,</div><div class='add'>+	0x25ca, 0x25cb,</div><div class='add'>+	0x25cf, 0x25d3,</div><div class='add'>+	0x25e2, 0x25e2,</div><div class='add'>+	0x25e4, 0x25e4,</div><div class='add'>+	0x25e7, 0x25ec,</div><div class='add'>+	0x25f8, 0x25ff,</div><div class='add'>+	0x2605, 0x2606,</div><div class='add'>+	0x2640, 0x2640,</div><div class='add'>+	0x2642, 0x2642,</div><div class='add'>+	0x2660, 0x2663,</div><div class='add'>+	0x266d, 0x266f,</div><div class='add'>+	0x27c0, 0x27ff,</div><div class='add'>+	0x2900, 0x2aff,</div><div class='add'>+	0x2b30, 0x2b44,</div><div class='add'>+	0x2b47, 0x2b4c,</div><div class='add'>+	0xfb29, 0xfb29,</div><div class='add'>+	0xfe61, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe68,</div><div class='add'>+	0xff0b, 0xff0b,</div><div class='add'>+	0xff1c, 0xff1e,</div><div class='add'>+	0xff3c, 0xff3c,</div><div class='add'>+	0xff3e, 0xff3e,</div><div class='add'>+	0xff5c, 0xff5c,</div><div class='add'>+	0xff5e, 0xff5e,</div><div class='add'>+	0xffe2, 0xffe2,</div><div class='add'>+	0xffe9, 0xffec,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+}; /* CR_Math */</div><div class='add'>+</div><div class='add'>+/* 'Alphabetic': Derived Property */</div><div class='add'>+#define CR_Alphabetic CR_Alpha</div><div class='add'>+</div><div class='add'>+/* 'Lowercase': Derived Property */</div><div class='add'>+#define CR_Lowercase CR_Lower</div><div class='add'>+</div><div class='add'>+/* 'Uppercase': Derived Property */</div><div class='add'>+#define CR_Uppercase CR_Upper</div><div class='add'>+</div><div class='add'>+/* 'Cased': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Cased[] = {</div><div class='add'>+	157,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x01ba,</div><div class='add'>+	0x01bc, 0x01bf,</div><div class='add'>+	0x01c4, 0x0293,</div><div class='add'>+	0x0295, 0x02b8,</div><div class='add'>+	0x02c0, 0x02c1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x0345, 0x0345,</div><div class='add'>+	0x0370, 0x0373,</div><div class='add'>+	0x0376, 0x0377,</div><div class='add'>+	0x037a, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03f5,</div><div class='add'>+	0x03f7, 0x0481,</div><div class='add'>+	0x048a, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fc, 0x10ff,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1d00, 0x1dbf,</div><div class='add'>+	0x1e00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fe0, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffc,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2119, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x212d,</div><div class='add'>+	0x212f, 0x2134,</div><div class='add'>+	0x2139, 0x2139,</div><div class='add'>+	0x213c, 0x213f,</div><div class='add'>+	0x2145, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2160, 0x217f,</div><div class='add'>+	0x2183, 0x2184,</div><div class='add'>+	0x24b6, 0x24e9,</div><div class='add'>+	0x2c00, 0x2ce4,</div><div class='add'>+	0x2ceb, 0x2cee,</div><div class='add'>+	0x2cf2, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0xa640, 0xa66d,</div><div class='add'>+	0xa680, 0xa69d,</div><div class='add'>+	0xa722, 0xa787,</div><div class='add'>+	0xa78b, 0xa78e,</div><div class='add'>+	0xa790, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa7f6,</div><div class='add'>+	0xa7f8, 0xa7fa,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab5c, 0xab69,</div><div class='add'>+	0xab70, 0xabbf,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0x10400, 0x1044f,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10780, 0x10780,</div><div class='add'>+	0x10783, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x118a0, 0x118df,</div><div class='add'>+	0x16e40, 0x16e7f,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6fa,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d734,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d76e,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d7a8,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7cb,</div><div class='add'>+	0x1df00, 0x1df09,</div><div class='add'>+	0x1df0b, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e900, 0x1e943,</div><div class='add'>+	0x1f130, 0x1f149,</div><div class='add'>+	0x1f150, 0x1f169,</div><div class='add'>+	0x1f170, 0x1f189,</div><div class='add'>+}; /* CR_Cased */</div><div class='add'>+</div><div class='add'>+/* 'Case_Ignorable': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Case_Ignorable[] = {</div><div class='add'>+	437,</div><div class='add'>+	0x0027, 0x0027,</div><div class='add'>+	0x002e, 0x002e,</div><div class='add'>+	0x003a, 0x003a,</div><div class='add'>+	0x005e, 0x005e,</div><div class='add'>+	0x0060, 0x0060,</div><div class='add'>+	0x00a8, 0x00a8,</div><div class='add'>+	0x00ad, 0x00ad,</div><div class='add'>+	0x00af, 0x00af,</div><div class='add'>+	0x00b4, 0x00b4,</div><div class='add'>+	0x00b7, 0x00b8,</div><div class='add'>+	0x02b0, 0x036f,</div><div class='add'>+	0x0374, 0x0375,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x0384, 0x0385,</div><div class='add'>+	0x0387, 0x0387,</div><div class='add'>+	0x0483, 0x0489,</div><div class='add'>+	0x0559, 0x0559,</div><div class='add'>+	0x055f, 0x055f,</div><div class='add'>+	0x0591, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c5,</div><div class='add'>+	0x05c7, 0x05c7,</div><div class='add'>+	0x05f4, 0x05f4,</div><div class='add'>+	0x0600, 0x0605,</div><div class='add'>+	0x0610, 0x061a,</div><div class='add'>+	0x061c, 0x061c,</div><div class='add'>+	0x0640, 0x0640,</div><div class='add'>+	0x064b, 0x065f,</div><div class='add'>+	0x0670, 0x0670,</div><div class='add'>+	0x06d6, 0x06dd,</div><div class='add'>+	0x06df, 0x06e8,</div><div class='add'>+	0x06ea, 0x06ed,</div><div class='add'>+	0x070f, 0x070f,</div><div class='add'>+	0x0711, 0x0711,</div><div class='add'>+	0x0730, 0x074a,</div><div class='add'>+	0x07a6, 0x07b0,</div><div class='add'>+	0x07eb, 0x07f5,</div><div class='add'>+	0x07fa, 0x07fa,</div><div class='add'>+	0x07fd, 0x07fd,</div><div class='add'>+	0x0816, 0x082d,</div><div class='add'>+	0x0859, 0x085b,</div><div class='add'>+	0x0888, 0x0888,</div><div class='add'>+	0x0890, 0x0891,</div><div class='add'>+	0x0898, 0x089f,</div><div class='add'>+	0x08c9, 0x0902,</div><div class='add'>+	0x093a, 0x093a,</div><div class='add'>+	0x093c, 0x093c,</div><div class='add'>+	0x0941, 0x0948,</div><div class='add'>+	0x094d, 0x094d,</div><div class='add'>+	0x0951, 0x0957,</div><div class='add'>+	0x0962, 0x0963,</div><div class='add'>+	0x0971, 0x0971,</div><div class='add'>+	0x0981, 0x0981,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09c1, 0x09c4,</div><div class='add'>+	0x09cd, 0x09cd,</div><div class='add'>+	0x09e2, 0x09e3,</div><div class='add'>+	0x09fe, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a02,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a41, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a70, 0x0a71,</div><div class='add'>+	0x0a75, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a82,</div><div class='add'>+	0x0abc, 0x0abc,</div><div class='add'>+	0x0ac1, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac8,</div><div class='add'>+	0x0acd, 0x0acd,</div><div class='add'>+	0x0ae2, 0x0ae3,</div><div class='add'>+	0x0afa, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b01,</div><div class='add'>+	0x0b3c, 0x0b3c,</div><div class='add'>+	0x0b3f, 0x0b3f,</div><div class='add'>+	0x0b41, 0x0b44,</div><div class='add'>+	0x0b4d, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b56,</div><div class='add'>+	0x0b62, 0x0b63,</div><div class='add'>+	0x0b82, 0x0b82,</div><div class='add'>+	0x0bc0, 0x0bc0,</div><div class='add'>+	0x0bcd, 0x0bcd,</div><div class='add'>+	0x0c00, 0x0c00,</div><div class='add'>+	0x0c04, 0x0c04,</div><div class='add'>+	0x0c3c, 0x0c3c,</div><div class='add'>+	0x0c3e, 0x0c40,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c62, 0x0c63,</div><div class='add'>+	0x0c81, 0x0c81,</div><div class='add'>+	0x0cbc, 0x0cbc,</div><div class='add'>+	0x0cbf, 0x0cbf,</div><div class='add'>+	0x0cc6, 0x0cc6,</div><div class='add'>+	0x0ccc, 0x0ccd,</div><div class='add'>+	0x0ce2, 0x0ce3,</div><div class='add'>+	0x0d00, 0x0d01,</div><div class='add'>+	0x0d3b, 0x0d3c,</div><div class='add'>+	0x0d41, 0x0d44,</div><div class='add'>+	0x0d4d, 0x0d4d,</div><div class='add'>+	0x0d62, 0x0d63,</div><div class='add'>+	0x0d81, 0x0d81,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dd2, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0e31, 0x0e31,</div><div class='add'>+	0x0e34, 0x0e3a,</div><div class='add'>+	0x0e46, 0x0e4e,</div><div class='add'>+	0x0eb1, 0x0eb1,</div><div class='add'>+	0x0eb4, 0x0ebc,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0f18, 0x0f19,</div><div class='add'>+	0x0f35, 0x0f35,</div><div class='add'>+	0x0f37, 0x0f37,</div><div class='add'>+	0x0f39, 0x0f39,</div><div class='add'>+	0x0f71, 0x0f7e,</div><div class='add'>+	0x0f80, 0x0f84,</div><div class='add'>+	0x0f86, 0x0f87,</div><div class='add'>+	0x0f8d, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fc6, 0x0fc6,</div><div class='add'>+	0x102d, 0x1030,</div><div class='add'>+	0x1032, 0x1037,</div><div class='add'>+	0x1039, 0x103a,</div><div class='add'>+	0x103d, 0x103e,</div><div class='add'>+	0x1058, 0x1059,</div><div class='add'>+	0x105e, 0x1060,</div><div class='add'>+	0x1071, 0x1074,</div><div class='add'>+	0x1082, 0x1082,</div><div class='add'>+	0x1085, 0x1086,</div><div class='add'>+	0x108d, 0x108d,</div><div class='add'>+	0x109d, 0x109d,</div><div class='add'>+	0x10fc, 0x10fc,</div><div class='add'>+	0x135d, 0x135f,</div><div class='add'>+	0x1712, 0x1714,</div><div class='add'>+	0x1732, 0x1733,</div><div class='add'>+	0x1752, 0x1753,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x17b4, 0x17b5,</div><div class='add'>+	0x17b7, 0x17bd,</div><div class='add'>+	0x17c6, 0x17c6,</div><div class='add'>+	0x17c9, 0x17d3,</div><div class='add'>+	0x17d7, 0x17d7,</div><div class='add'>+	0x17dd, 0x17dd,</div><div class='add'>+	0x180b, 0x180f,</div><div class='add'>+	0x1843, 0x1843,</div><div class='add'>+	0x1885, 0x1886,</div><div class='add'>+	0x18a9, 0x18a9,</div><div class='add'>+	0x1920, 0x1922,</div><div class='add'>+	0x1927, 0x1928,</div><div class='add'>+	0x1932, 0x1932,</div><div class='add'>+	0x1939, 0x193b,</div><div class='add'>+	0x1a17, 0x1a18,</div><div class='add'>+	0x1a1b, 0x1a1b,</div><div class='add'>+	0x1a56, 0x1a56,</div><div class='add'>+	0x1a58, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a60,</div><div class='add'>+	0x1a62, 0x1a62,</div><div class='add'>+	0x1a65, 0x1a6c,</div><div class='add'>+	0x1a73, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a7f,</div><div class='add'>+	0x1aa7, 0x1aa7,</div><div class='add'>+	0x1ab0, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b03,</div><div class='add'>+	0x1b34, 0x1b34,</div><div class='add'>+	0x1b36, 0x1b3a,</div><div class='add'>+	0x1b3c, 0x1b3c,</div><div class='add'>+	0x1b42, 0x1b42,</div><div class='add'>+	0x1b6b, 0x1b73,</div><div class='add'>+	0x1b80, 0x1b81,</div><div class='add'>+	0x1ba2, 0x1ba5,</div><div class='add'>+	0x1ba8, 0x1ba9,</div><div class='add'>+	0x1bab, 0x1bad,</div><div class='add'>+	0x1be6, 0x1be6,</div><div class='add'>+	0x1be8, 0x1be9,</div><div class='add'>+	0x1bed, 0x1bed,</div><div class='add'>+	0x1bef, 0x1bf1,</div><div class='add'>+	0x1c2c, 0x1c33,</div><div class='add'>+	0x1c36, 0x1c37,</div><div class='add'>+	0x1c78, 0x1c7d,</div><div class='add'>+	0x1cd0, 0x1cd2,</div><div class='add'>+	0x1cd4, 0x1ce0,</div><div class='add'>+	0x1ce2, 0x1ce8,</div><div class='add'>+	0x1ced, 0x1ced,</div><div class='add'>+	0x1cf4, 0x1cf4,</div><div class='add'>+	0x1cf8, 0x1cf9,</div><div class='add'>+	0x1d2c, 0x1d6a,</div><div class='add'>+	0x1d78, 0x1d78,</div><div class='add'>+	0x1d9b, 0x1dff,</div><div class='add'>+	0x1fbd, 0x1fbd,</div><div class='add'>+	0x1fbf, 0x1fc1,</div><div class='add'>+	0x1fcd, 0x1fcf,</div><div class='add'>+	0x1fdd, 0x1fdf,</div><div class='add'>+	0x1fed, 0x1fef,</div><div class='add'>+	0x1ffd, 0x1ffe,</div><div class='add'>+	0x200b, 0x200f,</div><div class='add'>+	0x2018, 0x2019,</div><div class='add'>+	0x2024, 0x2024,</div><div class='add'>+	0x2027, 0x2027,</div><div class='add'>+	0x202a, 0x202e,</div><div class='add'>+	0x2060, 0x2064,</div><div class='add'>+	0x2066, 0x206f,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2c7c, 0x2c7d,</div><div class='add'>+	0x2cef, 0x2cf1,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d7f, 0x2d7f,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0x2e2f, 0x2e2f,</div><div class='add'>+	0x3005, 0x3005,</div><div class='add'>+	0x302a, 0x302d,</div><div class='add'>+	0x3031, 0x3035,</div><div class='add'>+	0x303b, 0x303b,</div><div class='add'>+	0x3099, 0x309e,</div><div class='add'>+	0x30fc, 0x30fe,</div><div class='add'>+	0xa015, 0xa015,</div><div class='add'>+	0xa4f8, 0xa4fd,</div><div class='add'>+	0xa60c, 0xa60c,</div><div class='add'>+	0xa66f, 0xa672,</div><div class='add'>+	0xa674, 0xa67d,</div><div class='add'>+	0xa67f, 0xa67f,</div><div class='add'>+	0xa69c, 0xa69f,</div><div class='add'>+	0xa6f0, 0xa6f1,</div><div class='add'>+	0xa700, 0xa721,</div><div class='add'>+	0xa770, 0xa770,</div><div class='add'>+	0xa788, 0xa78a,</div><div class='add'>+	0xa7f2, 0xa7f4,</div><div class='add'>+	0xa7f8, 0xa7f9,</div><div class='add'>+	0xa802, 0xa802,</div><div class='add'>+	0xa806, 0xa806,</div><div class='add'>+	0xa80b, 0xa80b,</div><div class='add'>+	0xa825, 0xa826,</div><div class='add'>+	0xa82c, 0xa82c,</div><div class='add'>+	0xa8c4, 0xa8c5,</div><div class='add'>+	0xa8e0, 0xa8f1,</div><div class='add'>+	0xa8ff, 0xa8ff,</div><div class='add'>+	0xa926, 0xa92d,</div><div class='add'>+	0xa947, 0xa951,</div><div class='add'>+	0xa980, 0xa982,</div><div class='add'>+	0xa9b3, 0xa9b3,</div><div class='add'>+	0xa9b6, 0xa9b9,</div><div class='add'>+	0xa9bc, 0xa9bd,</div><div class='add'>+	0xa9cf, 0xa9cf,</div><div class='add'>+	0xa9e5, 0xa9e6,</div><div class='add'>+	0xaa29, 0xaa2e,</div><div class='add'>+	0xaa31, 0xaa32,</div><div class='add'>+	0xaa35, 0xaa36,</div><div class='add'>+	0xaa43, 0xaa43,</div><div class='add'>+	0xaa4c, 0xaa4c,</div><div class='add'>+	0xaa70, 0xaa70,</div><div class='add'>+	0xaa7c, 0xaa7c,</div><div class='add'>+	0xaab0, 0xaab0,</div><div class='add'>+	0xaab2, 0xaab4,</div><div class='add'>+	0xaab7, 0xaab8,</div><div class='add'>+	0xaabe, 0xaabf,</div><div class='add'>+	0xaac1, 0xaac1,</div><div class='add'>+	0xaadd, 0xaadd,</div><div class='add'>+	0xaaec, 0xaaed,</div><div class='add'>+	0xaaf3, 0xaaf4,</div><div class='add'>+	0xaaf6, 0xaaf6,</div><div class='add'>+	0xab5b, 0xab5f,</div><div class='add'>+	0xab69, 0xab6b,</div><div class='add'>+	0xabe5, 0xabe5,</div><div class='add'>+	0xabe8, 0xabe8,</div><div class='add'>+	0xabed, 0xabed,</div><div class='add'>+	0xfb1e, 0xfb1e,</div><div class='add'>+	0xfbb2, 0xfbc2,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfe13, 0xfe13,</div><div class='add'>+	0xfe20, 0xfe2f,</div><div class='add'>+	0xfe52, 0xfe52,</div><div class='add'>+	0xfe55, 0xfe55,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff07, 0xff07,</div><div class='add'>+	0xff0e, 0xff0e,</div><div class='add'>+	0xff1a, 0xff1a,</div><div class='add'>+	0xff3e, 0xff3e,</div><div class='add'>+	0xff40, 0xff40,</div><div class='add'>+	0xff70, 0xff70,</div><div class='add'>+	0xff9e, 0xff9f,</div><div class='add'>+	0xffe3, 0xffe3,</div><div class='add'>+	0xfff9, 0xfffb,</div><div class='add'>+	0x101fd, 0x101fd,</div><div class='add'>+	0x102e0, 0x102e0,</div><div class='add'>+	0x10376, 0x1037a,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10a01, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a0f,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a3f,</div><div class='add'>+	0x10ae5, 0x10ae6,</div><div class='add'>+	0x10d24, 0x10d27,</div><div class='add'>+	0x10eab, 0x10eac,</div><div class='add'>+	0x10efd, 0x10eff,</div><div class='add'>+	0x10f46, 0x10f50,</div><div class='add'>+	0x10f82, 0x10f85,</div><div class='add'>+	0x11001, 0x11001,</div><div class='add'>+	0x11038, 0x11046,</div><div class='add'>+	0x11070, 0x11070,</div><div class='add'>+	0x11073, 0x11074,</div><div class='add'>+	0x1107f, 0x11081,</div><div class='add'>+	0x110b3, 0x110b6,</div><div class='add'>+	0x110b9, 0x110ba,</div><div class='add'>+	0x110bd, 0x110bd,</div><div class='add'>+	0x110c2, 0x110c2,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x11100, 0x11102,</div><div class='add'>+	0x11127, 0x1112b,</div><div class='add'>+	0x1112d, 0x11134,</div><div class='add'>+	0x11173, 0x11173,</div><div class='add'>+	0x11180, 0x11181,</div><div class='add'>+	0x111b6, 0x111be,</div><div class='add'>+	0x111c9, 0x111cc,</div><div class='add'>+	0x111cf, 0x111cf,</div><div class='add'>+	0x1122f, 0x11231,</div><div class='add'>+	0x11234, 0x11234,</div><div class='add'>+	0x11236, 0x11237,</div><div class='add'>+	0x1123e, 0x1123e,</div><div class='add'>+	0x11241, 0x11241,</div><div class='add'>+	0x112df, 0x112df,</div><div class='add'>+	0x112e3, 0x112ea,</div><div class='add'>+	0x11300, 0x11301,</div><div class='add'>+	0x1133b, 0x1133c,</div><div class='add'>+	0x11340, 0x11340,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11438, 0x1143f,</div><div class='add'>+	0x11442, 0x11444,</div><div class='add'>+	0x11446, 0x11446,</div><div class='add'>+	0x1145e, 0x1145e,</div><div class='add'>+	0x114b3, 0x114b8,</div><div class='add'>+	0x114ba, 0x114ba,</div><div class='add'>+	0x114bf, 0x114c0,</div><div class='add'>+	0x114c2, 0x114c3,</div><div class='add'>+	0x115b2, 0x115b5,</div><div class='add'>+	0x115bc, 0x115bd,</div><div class='add'>+	0x115bf, 0x115c0,</div><div class='add'>+	0x115dc, 0x115dd,</div><div class='add'>+	0x11633, 0x1163a,</div><div class='add'>+	0x1163d, 0x1163d,</div><div class='add'>+	0x1163f, 0x11640,</div><div class='add'>+	0x116ab, 0x116ab,</div><div class='add'>+	0x116ad, 0x116ad,</div><div class='add'>+	0x116b0, 0x116b5,</div><div class='add'>+	0x116b7, 0x116b7,</div><div class='add'>+	0x1171d, 0x1171f,</div><div class='add'>+	0x11722, 0x11725,</div><div class='add'>+	0x11727, 0x1172b,</div><div class='add'>+	0x1182f, 0x11837,</div><div class='add'>+	0x11839, 0x1183a,</div><div class='add'>+	0x1193b, 0x1193c,</div><div class='add'>+	0x1193e, 0x1193e,</div><div class='add'>+	0x11943, 0x11943,</div><div class='add'>+	0x119d4, 0x119d7,</div><div class='add'>+	0x119da, 0x119db,</div><div class='add'>+	0x119e0, 0x119e0,</div><div class='add'>+	0x11a01, 0x11a0a,</div><div class='add'>+	0x11a33, 0x11a38,</div><div class='add'>+	0x11a3b, 0x11a3e,</div><div class='add'>+	0x11a47, 0x11a47,</div><div class='add'>+	0x11a51, 0x11a56,</div><div class='add'>+	0x11a59, 0x11a5b,</div><div class='add'>+	0x11a8a, 0x11a96,</div><div class='add'>+	0x11a98, 0x11a99,</div><div class='add'>+	0x11c30, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c3d,</div><div class='add'>+	0x11c3f, 0x11c3f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11caa, 0x11cb0,</div><div class='add'>+	0x11cb2, 0x11cb3,</div><div class='add'>+	0x11cb5, 0x11cb6,</div><div class='add'>+	0x11d31, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d45,</div><div class='add'>+	0x11d47, 0x11d47,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d95, 0x11d95,</div><div class='add'>+	0x11d97, 0x11d97,</div><div class='add'>+	0x11ef3, 0x11ef4,</div><div class='add'>+	0x11f00, 0x11f01,</div><div class='add'>+	0x11f36, 0x11f3a,</div><div class='add'>+	0x11f40, 0x11f40,</div><div class='add'>+	0x11f42, 0x11f42,</div><div class='add'>+	0x13430, 0x13440,</div><div class='add'>+	0x13447, 0x13455,</div><div class='add'>+	0x16af0, 0x16af4,</div><div class='add'>+	0x16b30, 0x16b36,</div><div class='add'>+	0x16b40, 0x16b43,</div><div class='add'>+	0x16f4f, 0x16f4f,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x16fe3, 0x16fe4,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1bc9d, 0x1bc9e,</div><div class='add'>+	0x1bca0, 0x1bca3,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1d167, 0x1d169,</div><div class='add'>+	0x1d173, 0x1d182,</div><div class='add'>+	0x1d185, 0x1d18b,</div><div class='add'>+	0x1d1aa, 0x1d1ad,</div><div class='add'>+	0x1d242, 0x1d244,</div><div class='add'>+	0x1da00, 0x1da36,</div><div class='add'>+	0x1da3b, 0x1da6c,</div><div class='add'>+	0x1da75, 0x1da75,</div><div class='add'>+	0x1da84, 0x1da84,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e2ae, 0x1e2ae,</div><div class='add'>+	0x1e2ec, 0x1e2ef,</div><div class='add'>+	0x1e4eb, 0x1e4ef,</div><div class='add'>+	0x1e8d0, 0x1e8d6,</div><div class='add'>+	0x1e944, 0x1e94b,</div><div class='add'>+	0x1f3fb, 0x1f3ff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+}; /* CR_Case_Ignorable */</div><div class='add'>+</div><div class='add'>+/* 'Changes_When_Lowercased': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Changes_When_Lowercased[] = {</div><div class='add'>+	609,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00de,</div><div class='add'>+	0x0100, 0x0100,</div><div class='add'>+	0x0102, 0x0102,</div><div class='add'>+	0x0104, 0x0104,</div><div class='add'>+	0x0106, 0x0106,</div><div class='add'>+	0x0108, 0x0108,</div><div class='add'>+	0x010a, 0x010a,</div><div class='add'>+	0x010c, 0x010c,</div><div class='add'>+	0x010e, 0x010e,</div><div class='add'>+	0x0110, 0x0110,</div><div class='add'>+	0x0112, 0x0112,</div><div class='add'>+	0x0114, 0x0114,</div><div class='add'>+	0x0116, 0x0116,</div><div class='add'>+	0x0118, 0x0118,</div><div class='add'>+	0x011a, 0x011a,</div><div class='add'>+	0x011c, 0x011c,</div><div class='add'>+	0x011e, 0x011e,</div><div class='add'>+	0x0120, 0x0120,</div><div class='add'>+	0x0122, 0x0122,</div><div class='add'>+	0x0124, 0x0124,</div><div class='add'>+	0x0126, 0x0126,</div><div class='add'>+	0x0128, 0x0128,</div><div class='add'>+	0x012a, 0x012a,</div><div class='add'>+	0x012c, 0x012c,</div><div class='add'>+	0x012e, 0x012e,</div><div class='add'>+	0x0130, 0x0130,</div><div class='add'>+	0x0132, 0x0132,</div><div class='add'>+	0x0134, 0x0134,</div><div class='add'>+	0x0136, 0x0136,</div><div class='add'>+	0x0139, 0x0139,</div><div class='add'>+	0x013b, 0x013b,</div><div class='add'>+	0x013d, 0x013d,</div><div class='add'>+	0x013f, 0x013f,</div><div class='add'>+	0x0141, 0x0141,</div><div class='add'>+	0x0143, 0x0143,</div><div class='add'>+	0x0145, 0x0145,</div><div class='add'>+	0x0147, 0x0147,</div><div class='add'>+	0x014a, 0x014a,</div><div class='add'>+	0x014c, 0x014c,</div><div class='add'>+	0x014e, 0x014e,</div><div class='add'>+	0x0150, 0x0150,</div><div class='add'>+	0x0152, 0x0152,</div><div class='add'>+	0x0154, 0x0154,</div><div class='add'>+	0x0156, 0x0156,</div><div class='add'>+	0x0158, 0x0158,</div><div class='add'>+	0x015a, 0x015a,</div><div class='add'>+	0x015c, 0x015c,</div><div class='add'>+	0x015e, 0x015e,</div><div class='add'>+	0x0160, 0x0160,</div><div class='add'>+	0x0162, 0x0162,</div><div class='add'>+	0x0164, 0x0164,</div><div class='add'>+	0x0166, 0x0166,</div><div class='add'>+	0x0168, 0x0168,</div><div class='add'>+	0x016a, 0x016a,</div><div class='add'>+	0x016c, 0x016c,</div><div class='add'>+	0x016e, 0x016e,</div><div class='add'>+	0x0170, 0x0170,</div><div class='add'>+	0x0172, 0x0172,</div><div class='add'>+	0x0174, 0x0174,</div><div class='add'>+	0x0176, 0x0176,</div><div class='add'>+	0x0178, 0x0179,</div><div class='add'>+	0x017b, 0x017b,</div><div class='add'>+	0x017d, 0x017d,</div><div class='add'>+	0x0181, 0x0182,</div><div class='add'>+	0x0184, 0x0184,</div><div class='add'>+	0x0186, 0x0187,</div><div class='add'>+	0x0189, 0x018b,</div><div class='add'>+	0x018e, 0x0191,</div><div class='add'>+	0x0193, 0x0194,</div><div class='add'>+	0x0196, 0x0198,</div><div class='add'>+	0x019c, 0x019d,</div><div class='add'>+	0x019f, 0x01a0,</div><div class='add'>+	0x01a2, 0x01a2,</div><div class='add'>+	0x01a4, 0x01a4,</div><div class='add'>+	0x01a6, 0x01a7,</div><div class='add'>+	0x01a9, 0x01a9,</div><div class='add'>+	0x01ac, 0x01ac,</div><div class='add'>+	0x01ae, 0x01af,</div><div class='add'>+	0x01b1, 0x01b3,</div><div class='add'>+	0x01b5, 0x01b5,</div><div class='add'>+	0x01b7, 0x01b8,</div><div class='add'>+	0x01bc, 0x01bc,</div><div class='add'>+	0x01c4, 0x01c5,</div><div class='add'>+	0x01c7, 0x01c8,</div><div class='add'>+	0x01ca, 0x01cb,</div><div class='add'>+	0x01cd, 0x01cd,</div><div class='add'>+	0x01cf, 0x01cf,</div><div class='add'>+	0x01d1, 0x01d1,</div><div class='add'>+	0x01d3, 0x01d3,</div><div class='add'>+	0x01d5, 0x01d5,</div><div class='add'>+	0x01d7, 0x01d7,</div><div class='add'>+	0x01d9, 0x01d9,</div><div class='add'>+	0x01db, 0x01db,</div><div class='add'>+	0x01de, 0x01de,</div><div class='add'>+	0x01e0, 0x01e0,</div><div class='add'>+	0x01e2, 0x01e2,</div><div class='add'>+	0x01e4, 0x01e4,</div><div class='add'>+	0x01e6, 0x01e6,</div><div class='add'>+	0x01e8, 0x01e8,</div><div class='add'>+	0x01ea, 0x01ea,</div><div class='add'>+	0x01ec, 0x01ec,</div><div class='add'>+	0x01ee, 0x01ee,</div><div class='add'>+	0x01f1, 0x01f2,</div><div class='add'>+	0x01f4, 0x01f4,</div><div class='add'>+	0x01f6, 0x01f8,</div><div class='add'>+	0x01fa, 0x01fa,</div><div class='add'>+	0x01fc, 0x01fc,</div><div class='add'>+	0x01fe, 0x01fe,</div><div class='add'>+	0x0200, 0x0200,</div><div class='add'>+	0x0202, 0x0202,</div><div class='add'>+	0x0204, 0x0204,</div><div class='add'>+	0x0206, 0x0206,</div><div class='add'>+	0x0208, 0x0208,</div><div class='add'>+	0x020a, 0x020a,</div><div class='add'>+	0x020c, 0x020c,</div><div class='add'>+	0x020e, 0x020e,</div><div class='add'>+	0x0210, 0x0210,</div><div class='add'>+	0x0212, 0x0212,</div><div class='add'>+	0x0214, 0x0214,</div><div class='add'>+	0x0216, 0x0216,</div><div class='add'>+	0x0218, 0x0218,</div><div class='add'>+	0x021a, 0x021a,</div><div class='add'>+	0x021c, 0x021c,</div><div class='add'>+	0x021e, 0x021e,</div><div class='add'>+	0x0220, 0x0220,</div><div class='add'>+	0x0222, 0x0222,</div><div class='add'>+	0x0224, 0x0224,</div><div class='add'>+	0x0226, 0x0226,</div><div class='add'>+	0x0228, 0x0228,</div><div class='add'>+	0x022a, 0x022a,</div><div class='add'>+	0x022c, 0x022c,</div><div class='add'>+	0x022e, 0x022e,</div><div class='add'>+	0x0230, 0x0230,</div><div class='add'>+	0x0232, 0x0232,</div><div class='add'>+	0x023a, 0x023b,</div><div class='add'>+	0x023d, 0x023e,</div><div class='add'>+	0x0241, 0x0241,</div><div class='add'>+	0x0243, 0x0246,</div><div class='add'>+	0x0248, 0x0248,</div><div class='add'>+	0x024a, 0x024a,</div><div class='add'>+	0x024c, 0x024c,</div><div class='add'>+	0x024e, 0x024e,</div><div class='add'>+	0x0370, 0x0370,</div><div class='add'>+	0x0372, 0x0372,</div><div class='add'>+	0x0376, 0x0376,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x038f,</div><div class='add'>+	0x0391, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ab,</div><div class='add'>+	0x03cf, 0x03cf,</div><div class='add'>+	0x03d8, 0x03d8,</div><div class='add'>+	0x03da, 0x03da,</div><div class='add'>+	0x03dc, 0x03dc,</div><div class='add'>+	0x03de, 0x03de,</div><div class='add'>+	0x03e0, 0x03e0,</div><div class='add'>+	0x03e2, 0x03e2,</div><div class='add'>+	0x03e4, 0x03e4,</div><div class='add'>+	0x03e6, 0x03e6,</div><div class='add'>+	0x03e8, 0x03e8,</div><div class='add'>+	0x03ea, 0x03ea,</div><div class='add'>+	0x03ec, 0x03ec,</div><div class='add'>+	0x03ee, 0x03ee,</div><div class='add'>+	0x03f4, 0x03f4,</div><div class='add'>+	0x03f7, 0x03f7,</div><div class='add'>+	0x03f9, 0x03fa,</div><div class='add'>+	0x03fd, 0x042f,</div><div class='add'>+	0x0460, 0x0460,</div><div class='add'>+	0x0462, 0x0462,</div><div class='add'>+	0x0464, 0x0464,</div><div class='add'>+	0x0466, 0x0466,</div><div class='add'>+	0x0468, 0x0468,</div><div class='add'>+	0x046a, 0x046a,</div><div class='add'>+	0x046c, 0x046c,</div><div class='add'>+	0x046e, 0x046e,</div><div class='add'>+	0x0470, 0x0470,</div><div class='add'>+	0x0472, 0x0472,</div><div class='add'>+	0x0474, 0x0474,</div><div class='add'>+	0x0476, 0x0476,</div><div class='add'>+	0x0478, 0x0478,</div><div class='add'>+	0x047a, 0x047a,</div><div class='add'>+	0x047c, 0x047c,</div><div class='add'>+	0x047e, 0x047e,</div><div class='add'>+	0x0480, 0x0480,</div><div class='add'>+	0x048a, 0x048a,</div><div class='add'>+	0x048c, 0x048c,</div><div class='add'>+	0x048e, 0x048e,</div><div class='add'>+	0x0490, 0x0490,</div><div class='add'>+	0x0492, 0x0492,</div><div class='add'>+	0x0494, 0x0494,</div><div class='add'>+	0x0496, 0x0496,</div><div class='add'>+	0x0498, 0x0498,</div><div class='add'>+	0x049a, 0x049a,</div><div class='add'>+	0x049c, 0x049c,</div><div class='add'>+	0x049e, 0x049e,</div><div class='add'>+	0x04a0, 0x04a0,</div><div class='add'>+	0x04a2, 0x04a2,</div><div class='add'>+	0x04a4, 0x04a4,</div><div class='add'>+	0x04a6, 0x04a6,</div><div class='add'>+	0x04a8, 0x04a8,</div><div class='add'>+	0x04aa, 0x04aa,</div><div class='add'>+	0x04ac, 0x04ac,</div><div class='add'>+	0x04ae, 0x04ae,</div><div class='add'>+	0x04b0, 0x04b0,</div><div class='add'>+	0x04b2, 0x04b2,</div><div class='add'>+	0x04b4, 0x04b4,</div><div class='add'>+	0x04b6, 0x04b6,</div><div class='add'>+	0x04b8, 0x04b8,</div><div class='add'>+	0x04ba, 0x04ba,</div><div class='add'>+	0x04bc, 0x04bc,</div><div class='add'>+	0x04be, 0x04be,</div><div class='add'>+	0x04c0, 0x04c1,</div><div class='add'>+	0x04c3, 0x04c3,</div><div class='add'>+	0x04c5, 0x04c5,</div><div class='add'>+	0x04c7, 0x04c7,</div><div class='add'>+	0x04c9, 0x04c9,</div><div class='add'>+	0x04cb, 0x04cb,</div><div class='add'>+	0x04cd, 0x04cd,</div><div class='add'>+	0x04d0, 0x04d0,</div><div class='add'>+	0x04d2, 0x04d2,</div><div class='add'>+	0x04d4, 0x04d4,</div><div class='add'>+	0x04d6, 0x04d6,</div><div class='add'>+	0x04d8, 0x04d8,</div><div class='add'>+	0x04da, 0x04da,</div><div class='add'>+	0x04dc, 0x04dc,</div><div class='add'>+	0x04de, 0x04de,</div><div class='add'>+	0x04e0, 0x04e0,</div><div class='add'>+	0x04e2, 0x04e2,</div><div class='add'>+	0x04e4, 0x04e4,</div><div class='add'>+	0x04e6, 0x04e6,</div><div class='add'>+	0x04e8, 0x04e8,</div><div class='add'>+	0x04ea, 0x04ea,</div><div class='add'>+	0x04ec, 0x04ec,</div><div class='add'>+	0x04ee, 0x04ee,</div><div class='add'>+	0x04f0, 0x04f0,</div><div class='add'>+	0x04f2, 0x04f2,</div><div class='add'>+	0x04f4, 0x04f4,</div><div class='add'>+	0x04f6, 0x04f6,</div><div class='add'>+	0x04f8, 0x04f8,</div><div class='add'>+	0x04fa, 0x04fa,</div><div class='add'>+	0x04fc, 0x04fc,</div><div class='add'>+	0x04fe, 0x04fe,</div><div class='add'>+	0x0500, 0x0500,</div><div class='add'>+	0x0502, 0x0502,</div><div class='add'>+	0x0504, 0x0504,</div><div class='add'>+	0x0506, 0x0506,</div><div class='add'>+	0x0508, 0x0508,</div><div class='add'>+	0x050a, 0x050a,</div><div class='add'>+	0x050c, 0x050c,</div><div class='add'>+	0x050e, 0x050e,</div><div class='add'>+	0x0510, 0x0510,</div><div class='add'>+	0x0512, 0x0512,</div><div class='add'>+	0x0514, 0x0514,</div><div class='add'>+	0x0516, 0x0516,</div><div class='add'>+	0x0518, 0x0518,</div><div class='add'>+	0x051a, 0x051a,</div><div class='add'>+	0x051c, 0x051c,</div><div class='add'>+	0x051e, 0x051e,</div><div class='add'>+	0x0520, 0x0520,</div><div class='add'>+	0x0522, 0x0522,</div><div class='add'>+	0x0524, 0x0524,</div><div class='add'>+	0x0526, 0x0526,</div><div class='add'>+	0x0528, 0x0528,</div><div class='add'>+	0x052a, 0x052a,</div><div class='add'>+	0x052c, 0x052c,</div><div class='add'>+	0x052e, 0x052e,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1e00, 0x1e00,</div><div class='add'>+	0x1e02, 0x1e02,</div><div class='add'>+	0x1e04, 0x1e04,</div><div class='add'>+	0x1e06, 0x1e06,</div><div class='add'>+	0x1e08, 0x1e08,</div><div class='add'>+	0x1e0a, 0x1e0a,</div><div class='add'>+	0x1e0c, 0x1e0c,</div><div class='add'>+	0x1e0e, 0x1e0e,</div><div class='add'>+	0x1e10, 0x1e10,</div><div class='add'>+	0x1e12, 0x1e12,</div><div class='add'>+	0x1e14, 0x1e14,</div><div class='add'>+	0x1e16, 0x1e16,</div><div class='add'>+	0x1e18, 0x1e18,</div><div class='add'>+	0x1e1a, 0x1e1a,</div><div class='add'>+	0x1e1c, 0x1e1c,</div><div class='add'>+	0x1e1e, 0x1e1e,</div><div class='add'>+	0x1e20, 0x1e20,</div><div class='add'>+	0x1e22, 0x1e22,</div><div class='add'>+	0x1e24, 0x1e24,</div><div class='add'>+	0x1e26, 0x1e26,</div><div class='add'>+	0x1e28, 0x1e28,</div><div class='add'>+	0x1e2a, 0x1e2a,</div><div class='add'>+	0x1e2c, 0x1e2c,</div><div class='add'>+	0x1e2e, 0x1e2e,</div><div class='add'>+	0x1e30, 0x1e30,</div><div class='add'>+	0x1e32, 0x1e32,</div><div class='add'>+	0x1e34, 0x1e34,</div><div class='add'>+	0x1e36, 0x1e36,</div><div class='add'>+	0x1e38, 0x1e38,</div><div class='add'>+	0x1e3a, 0x1e3a,</div><div class='add'>+	0x1e3c, 0x1e3c,</div><div class='add'>+	0x1e3e, 0x1e3e,</div><div class='add'>+	0x1e40, 0x1e40,</div><div class='add'>+	0x1e42, 0x1e42,</div><div class='add'>+	0x1e44, 0x1e44,</div><div class='add'>+	0x1e46, 0x1e46,</div><div class='add'>+	0x1e48, 0x1e48,</div><div class='add'>+	0x1e4a, 0x1e4a,</div><div class='add'>+	0x1e4c, 0x1e4c,</div><div class='add'>+	0x1e4e, 0x1e4e,</div><div class='add'>+	0x1e50, 0x1e50,</div><div class='add'>+	0x1e52, 0x1e52,</div><div class='add'>+	0x1e54, 0x1e54,</div><div class='add'>+	0x1e56, 0x1e56,</div><div class='add'>+	0x1e58, 0x1e58,</div><div class='add'>+	0x1e5a, 0x1e5a,</div><div class='add'>+	0x1e5c, 0x1e5c,</div><div class='add'>+	0x1e5e, 0x1e5e,</div><div class='add'>+	0x1e60, 0x1e60,</div><div class='add'>+	0x1e62, 0x1e62,</div><div class='add'>+	0x1e64, 0x1e64,</div><div class='add'>+	0x1e66, 0x1e66,</div><div class='add'>+	0x1e68, 0x1e68,</div><div class='add'>+	0x1e6a, 0x1e6a,</div><div class='add'>+	0x1e6c, 0x1e6c,</div><div class='add'>+	0x1e6e, 0x1e6e,</div><div class='add'>+	0x1e70, 0x1e70,</div><div class='add'>+	0x1e72, 0x1e72,</div><div class='add'>+	0x1e74, 0x1e74,</div><div class='add'>+	0x1e76, 0x1e76,</div><div class='add'>+	0x1e78, 0x1e78,</div><div class='add'>+	0x1e7a, 0x1e7a,</div><div class='add'>+	0x1e7c, 0x1e7c,</div><div class='add'>+	0x1e7e, 0x1e7e,</div><div class='add'>+	0x1e80, 0x1e80,</div><div class='add'>+	0x1e82, 0x1e82,</div><div class='add'>+	0x1e84, 0x1e84,</div><div class='add'>+	0x1e86, 0x1e86,</div><div class='add'>+	0x1e88, 0x1e88,</div><div class='add'>+	0x1e8a, 0x1e8a,</div><div class='add'>+	0x1e8c, 0x1e8c,</div><div class='add'>+	0x1e8e, 0x1e8e,</div><div class='add'>+	0x1e90, 0x1e90,</div><div class='add'>+	0x1e92, 0x1e92,</div><div class='add'>+	0x1e94, 0x1e94,</div><div class='add'>+	0x1e9e, 0x1e9e,</div><div class='add'>+	0x1ea0, 0x1ea0,</div><div class='add'>+	0x1ea2, 0x1ea2,</div><div class='add'>+	0x1ea4, 0x1ea4,</div><div class='add'>+	0x1ea6, 0x1ea6,</div><div class='add'>+	0x1ea8, 0x1ea8,</div><div class='add'>+	0x1eaa, 0x1eaa,</div><div class='add'>+	0x1eac, 0x1eac,</div><div class='add'>+	0x1eae, 0x1eae,</div><div class='add'>+	0x1eb0, 0x1eb0,</div><div class='add'>+	0x1eb2, 0x1eb2,</div><div class='add'>+	0x1eb4, 0x1eb4,</div><div class='add'>+	0x1eb6, 0x1eb6,</div><div class='add'>+	0x1eb8, 0x1eb8,</div><div class='add'>+	0x1eba, 0x1eba,</div><div class='add'>+	0x1ebc, 0x1ebc,</div><div class='add'>+	0x1ebe, 0x1ebe,</div><div class='add'>+	0x1ec0, 0x1ec0,</div><div class='add'>+	0x1ec2, 0x1ec2,</div><div class='add'>+	0x1ec4, 0x1ec4,</div><div class='add'>+	0x1ec6, 0x1ec6,</div><div class='add'>+	0x1ec8, 0x1ec8,</div><div class='add'>+	0x1eca, 0x1eca,</div><div class='add'>+	0x1ecc, 0x1ecc,</div><div class='add'>+	0x1ece, 0x1ece,</div><div class='add'>+	0x1ed0, 0x1ed0,</div><div class='add'>+	0x1ed2, 0x1ed2,</div><div class='add'>+	0x1ed4, 0x1ed4,</div><div class='add'>+	0x1ed6, 0x1ed6,</div><div class='add'>+	0x1ed8, 0x1ed8,</div><div class='add'>+	0x1eda, 0x1eda,</div><div class='add'>+	0x1edc, 0x1edc,</div><div class='add'>+	0x1ede, 0x1ede,</div><div class='add'>+	0x1ee0, 0x1ee0,</div><div class='add'>+	0x1ee2, 0x1ee2,</div><div class='add'>+	0x1ee4, 0x1ee4,</div><div class='add'>+	0x1ee6, 0x1ee6,</div><div class='add'>+	0x1ee8, 0x1ee8,</div><div class='add'>+	0x1eea, 0x1eea,</div><div class='add'>+	0x1eec, 0x1eec,</div><div class='add'>+	0x1eee, 0x1eee,</div><div class='add'>+	0x1ef0, 0x1ef0,</div><div class='add'>+	0x1ef2, 0x1ef2,</div><div class='add'>+	0x1ef4, 0x1ef4,</div><div class='add'>+	0x1ef6, 0x1ef6,</div><div class='add'>+	0x1ef8, 0x1ef8,</div><div class='add'>+	0x1efa, 0x1efa,</div><div class='add'>+	0x1efc, 0x1efc,</div><div class='add'>+	0x1efe, 0x1efe,</div><div class='add'>+	0x1f08, 0x1f0f,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f28, 0x1f2f,</div><div class='add'>+	0x1f38, 0x1f3f,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f5f,</div><div class='add'>+	0x1f68, 0x1f6f,</div><div class='add'>+	0x1f88, 0x1f8f,</div><div class='add'>+	0x1f98, 0x1f9f,</div><div class='add'>+	0x1fa8, 0x1faf,</div><div class='add'>+	0x1fb8, 0x1fbc,</div><div class='add'>+	0x1fc8, 0x1fcc,</div><div class='add'>+	0x1fd8, 0x1fdb,</div><div class='add'>+	0x1fe8, 0x1fec,</div><div class='add'>+	0x1ff8, 0x1ffc,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x212a, 0x212b,</div><div class='add'>+	0x2132, 0x2132,</div><div class='add'>+	0x2160, 0x216f,</div><div class='add'>+	0x2183, 0x2183,</div><div class='add'>+	0x24b6, 0x24cf,</div><div class='add'>+	0x2c00, 0x2c2f,</div><div class='add'>+	0x2c60, 0x2c60,</div><div class='add'>+	0x2c62, 0x2c64,</div><div class='add'>+	0x2c67, 0x2c67,</div><div class='add'>+	0x2c69, 0x2c69,</div><div class='add'>+	0x2c6b, 0x2c6b,</div><div class='add'>+	0x2c6d, 0x2c70,</div><div class='add'>+	0x2c72, 0x2c72,</div><div class='add'>+	0x2c75, 0x2c75,</div><div class='add'>+	0x2c7e, 0x2c80,</div><div class='add'>+	0x2c82, 0x2c82,</div><div class='add'>+	0x2c84, 0x2c84,</div><div class='add'>+	0x2c86, 0x2c86,</div><div class='add'>+	0x2c88, 0x2c88,</div><div class='add'>+	0x2c8a, 0x2c8a,</div><div class='add'>+	0x2c8c, 0x2c8c,</div><div class='add'>+	0x2c8e, 0x2c8e,</div><div class='add'>+	0x2c90, 0x2c90,</div><div class='add'>+	0x2c92, 0x2c92,</div><div class='add'>+	0x2c94, 0x2c94,</div><div class='add'>+	0x2c96, 0x2c96,</div><div class='add'>+	0x2c98, 0x2c98,</div><div class='add'>+	0x2c9a, 0x2c9a,</div><div class='add'>+	0x2c9c, 0x2c9c,</div><div class='add'>+	0x2c9e, 0x2c9e,</div><div class='add'>+	0x2ca0, 0x2ca0,</div><div class='add'>+	0x2ca2, 0x2ca2,</div><div class='add'>+	0x2ca4, 0x2ca4,</div><div class='add'>+	0x2ca6, 0x2ca6,</div><div class='add'>+	0x2ca8, 0x2ca8,</div><div class='add'>+	0x2caa, 0x2caa,</div><div class='add'>+	0x2cac, 0x2cac,</div><div class='add'>+	0x2cae, 0x2cae,</div><div class='add'>+	0x2cb0, 0x2cb0,</div><div class='add'>+	0x2cb2, 0x2cb2,</div><div class='add'>+	0x2cb4, 0x2cb4,</div><div class='add'>+	0x2cb6, 0x2cb6,</div><div class='add'>+	0x2cb8, 0x2cb8,</div><div class='add'>+	0x2cba, 0x2cba,</div><div class='add'>+	0x2cbc, 0x2cbc,</div><div class='add'>+	0x2cbe, 0x2cbe,</div><div class='add'>+	0x2cc0, 0x2cc0,</div><div class='add'>+	0x2cc2, 0x2cc2,</div><div class='add'>+	0x2cc4, 0x2cc4,</div><div class='add'>+	0x2cc6, 0x2cc6,</div><div class='add'>+	0x2cc8, 0x2cc8,</div><div class='add'>+	0x2cca, 0x2cca,</div><div class='add'>+	0x2ccc, 0x2ccc,</div><div class='add'>+	0x2cce, 0x2cce,</div><div class='add'>+	0x2cd0, 0x2cd0,</div><div class='add'>+	0x2cd2, 0x2cd2,</div><div class='add'>+	0x2cd4, 0x2cd4,</div><div class='add'>+	0x2cd6, 0x2cd6,</div><div class='add'>+	0x2cd8, 0x2cd8,</div><div class='add'>+	0x2cda, 0x2cda,</div><div class='add'>+	0x2cdc, 0x2cdc,</div><div class='add'>+	0x2cde, 0x2cde,</div><div class='add'>+	0x2ce0, 0x2ce0,</div><div class='add'>+	0x2ce2, 0x2ce2,</div><div class='add'>+	0x2ceb, 0x2ceb,</div><div class='add'>+	0x2ced, 0x2ced,</div><div class='add'>+	0x2cf2, 0x2cf2,</div><div class='add'>+	0xa640, 0xa640,</div><div class='add'>+	0xa642, 0xa642,</div><div class='add'>+	0xa644, 0xa644,</div><div class='add'>+	0xa646, 0xa646,</div><div class='add'>+	0xa648, 0xa648,</div><div class='add'>+	0xa64a, 0xa64a,</div><div class='add'>+	0xa64c, 0xa64c,</div><div class='add'>+	0xa64e, 0xa64e,</div><div class='add'>+	0xa650, 0xa650,</div><div class='add'>+	0xa652, 0xa652,</div><div class='add'>+	0xa654, 0xa654,</div><div class='add'>+	0xa656, 0xa656,</div><div class='add'>+	0xa658, 0xa658,</div><div class='add'>+	0xa65a, 0xa65a,</div><div class='add'>+	0xa65c, 0xa65c,</div><div class='add'>+	0xa65e, 0xa65e,</div><div class='add'>+	0xa660, 0xa660,</div><div class='add'>+	0xa662, 0xa662,</div><div class='add'>+	0xa664, 0xa664,</div><div class='add'>+	0xa666, 0xa666,</div><div class='add'>+	0xa668, 0xa668,</div><div class='add'>+	0xa66a, 0xa66a,</div><div class='add'>+	0xa66c, 0xa66c,</div><div class='add'>+	0xa680, 0xa680,</div><div class='add'>+	0xa682, 0xa682,</div><div class='add'>+	0xa684, 0xa684,</div><div class='add'>+	0xa686, 0xa686,</div><div class='add'>+	0xa688, 0xa688,</div><div class='add'>+	0xa68a, 0xa68a,</div><div class='add'>+	0xa68c, 0xa68c,</div><div class='add'>+	0xa68e, 0xa68e,</div><div class='add'>+	0xa690, 0xa690,</div><div class='add'>+	0xa692, 0xa692,</div><div class='add'>+	0xa694, 0xa694,</div><div class='add'>+	0xa696, 0xa696,</div><div class='add'>+	0xa698, 0xa698,</div><div class='add'>+	0xa69a, 0xa69a,</div><div class='add'>+	0xa722, 0xa722,</div><div class='add'>+	0xa724, 0xa724,</div><div class='add'>+	0xa726, 0xa726,</div><div class='add'>+	0xa728, 0xa728,</div><div class='add'>+	0xa72a, 0xa72a,</div><div class='add'>+	0xa72c, 0xa72c,</div><div class='add'>+	0xa72e, 0xa72e,</div><div class='add'>+	0xa732, 0xa732,</div><div class='add'>+	0xa734, 0xa734,</div><div class='add'>+	0xa736, 0xa736,</div><div class='add'>+	0xa738, 0xa738,</div><div class='add'>+	0xa73a, 0xa73a,</div><div class='add'>+	0xa73c, 0xa73c,</div><div class='add'>+	0xa73e, 0xa73e,</div><div class='add'>+	0xa740, 0xa740,</div><div class='add'>+	0xa742, 0xa742,</div><div class='add'>+	0xa744, 0xa744,</div><div class='add'>+	0xa746, 0xa746,</div><div class='add'>+	0xa748, 0xa748,</div><div class='add'>+	0xa74a, 0xa74a,</div><div class='add'>+	0xa74c, 0xa74c,</div><div class='add'>+	0xa74e, 0xa74e,</div><div class='add'>+	0xa750, 0xa750,</div><div class='add'>+	0xa752, 0xa752,</div><div class='add'>+	0xa754, 0xa754,</div><div class='add'>+	0xa756, 0xa756,</div><div class='add'>+	0xa758, 0xa758,</div><div class='add'>+	0xa75a, 0xa75a,</div><div class='add'>+	0xa75c, 0xa75c,</div><div class='add'>+	0xa75e, 0xa75e,</div><div class='add'>+	0xa760, 0xa760,</div><div class='add'>+	0xa762, 0xa762,</div><div class='add'>+	0xa764, 0xa764,</div><div class='add'>+	0xa766, 0xa766,</div><div class='add'>+	0xa768, 0xa768,</div><div class='add'>+	0xa76a, 0xa76a,</div><div class='add'>+	0xa76c, 0xa76c,</div><div class='add'>+	0xa76e, 0xa76e,</div><div class='add'>+	0xa779, 0xa779,</div><div class='add'>+	0xa77b, 0xa77b,</div><div class='add'>+	0xa77d, 0xa77e,</div><div class='add'>+	0xa780, 0xa780,</div><div class='add'>+	0xa782, 0xa782,</div><div class='add'>+	0xa784, 0xa784,</div><div class='add'>+	0xa786, 0xa786,</div><div class='add'>+	0xa78b, 0xa78b,</div><div class='add'>+	0xa78d, 0xa78d,</div><div class='add'>+	0xa790, 0xa790,</div><div class='add'>+	0xa792, 0xa792,</div><div class='add'>+	0xa796, 0xa796,</div><div class='add'>+	0xa798, 0xa798,</div><div class='add'>+	0xa79a, 0xa79a,</div><div class='add'>+	0xa79c, 0xa79c,</div><div class='add'>+	0xa79e, 0xa79e,</div><div class='add'>+	0xa7a0, 0xa7a0,</div><div class='add'>+	0xa7a2, 0xa7a2,</div><div class='add'>+	0xa7a4, 0xa7a4,</div><div class='add'>+	0xa7a6, 0xa7a6,</div><div class='add'>+	0xa7a8, 0xa7a8,</div><div class='add'>+	0xa7aa, 0xa7ae,</div><div class='add'>+	0xa7b0, 0xa7b4,</div><div class='add'>+	0xa7b6, 0xa7b6,</div><div class='add'>+	0xa7b8, 0xa7b8,</div><div class='add'>+	0xa7ba, 0xa7ba,</div><div class='add'>+	0xa7bc, 0xa7bc,</div><div class='add'>+	0xa7be, 0xa7be,</div><div class='add'>+	0xa7c0, 0xa7c0,</div><div class='add'>+	0xa7c2, 0xa7c2,</div><div class='add'>+	0xa7c4, 0xa7c7,</div><div class='add'>+	0xa7c9, 0xa7c9,</div><div class='add'>+	0xa7d0, 0xa7d0,</div><div class='add'>+	0xa7d6, 0xa7d6,</div><div class='add'>+	0xa7d8, 0xa7d8,</div><div class='add'>+	0xa7f5, 0xa7f5,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0x10400, 0x10427,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x118a0, 0x118bf,</div><div class='add'>+	0x16e40, 0x16e5f,</div><div class='add'>+	0x1e900, 0x1e921,</div><div class='add'>+}; /* CR_Changes_When_Lowercased */</div><div class='add'>+</div><div class='add'>+/* 'Changes_When_Uppercased': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Changes_When_Uppercased[] = {</div><div class='add'>+	627,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00df, 0x00f6,</div><div class='add'>+	0x00f8, 0x00ff,</div><div class='add'>+	0x0101, 0x0101,</div><div class='add'>+	0x0103, 0x0103,</div><div class='add'>+	0x0105, 0x0105,</div><div class='add'>+	0x0107, 0x0107,</div><div class='add'>+	0x0109, 0x0109,</div><div class='add'>+	0x010b, 0x010b,</div><div class='add'>+	0x010d, 0x010d,</div><div class='add'>+	0x010f, 0x010f,</div><div class='add'>+	0x0111, 0x0111,</div><div class='add'>+	0x0113, 0x0113,</div><div class='add'>+	0x0115, 0x0115,</div><div class='add'>+	0x0117, 0x0117,</div><div class='add'>+	0x0119, 0x0119,</div><div class='add'>+	0x011b, 0x011b,</div><div class='add'>+	0x011d, 0x011d,</div><div class='add'>+	0x011f, 0x011f,</div><div class='add'>+	0x0121, 0x0121,</div><div class='add'>+	0x0123, 0x0123,</div><div class='add'>+	0x0125, 0x0125,</div><div class='add'>+	0x0127, 0x0127,</div><div class='add'>+	0x0129, 0x0129,</div><div class='add'>+	0x012b, 0x012b,</div><div class='add'>+	0x012d, 0x012d,</div><div class='add'>+	0x012f, 0x012f,</div><div class='add'>+	0x0131, 0x0131,</div><div class='add'>+	0x0133, 0x0133,</div><div class='add'>+	0x0135, 0x0135,</div><div class='add'>+	0x0137, 0x0137,</div><div class='add'>+	0x013a, 0x013a,</div><div class='add'>+	0x013c, 0x013c,</div><div class='add'>+	0x013e, 0x013e,</div><div class='add'>+	0x0140, 0x0140,</div><div class='add'>+	0x0142, 0x0142,</div><div class='add'>+	0x0144, 0x0144,</div><div class='add'>+	0x0146, 0x0146,</div><div class='add'>+	0x0148, 0x0149,</div><div class='add'>+	0x014b, 0x014b,</div><div class='add'>+	0x014d, 0x014d,</div><div class='add'>+	0x014f, 0x014f,</div><div class='add'>+	0x0151, 0x0151,</div><div class='add'>+	0x0153, 0x0153,</div><div class='add'>+	0x0155, 0x0155,</div><div class='add'>+	0x0157, 0x0157,</div><div class='add'>+	0x0159, 0x0159,</div><div class='add'>+	0x015b, 0x015b,</div><div class='add'>+	0x015d, 0x015d,</div><div class='add'>+	0x015f, 0x015f,</div><div class='add'>+	0x0161, 0x0161,</div><div class='add'>+	0x0163, 0x0163,</div><div class='add'>+	0x0165, 0x0165,</div><div class='add'>+	0x0167, 0x0167,</div><div class='add'>+	0x0169, 0x0169,</div><div class='add'>+	0x016b, 0x016b,</div><div class='add'>+	0x016d, 0x016d,</div><div class='add'>+	0x016f, 0x016f,</div><div class='add'>+	0x0171, 0x0171,</div><div class='add'>+	0x0173, 0x0173,</div><div class='add'>+	0x0175, 0x0175,</div><div class='add'>+	0x0177, 0x0177,</div><div class='add'>+	0x017a, 0x017a,</div><div class='add'>+	0x017c, 0x017c,</div><div class='add'>+	0x017e, 0x0180,</div><div class='add'>+	0x0183, 0x0183,</div><div class='add'>+	0x0185, 0x0185,</div><div class='add'>+	0x0188, 0x0188,</div><div class='add'>+	0x018c, 0x018c,</div><div class='add'>+	0x0192, 0x0192,</div><div class='add'>+	0x0195, 0x0195,</div><div class='add'>+	0x0199, 0x019a,</div><div class='add'>+	0x019e, 0x019e,</div><div class='add'>+	0x01a1, 0x01a1,</div><div class='add'>+	0x01a3, 0x01a3,</div><div class='add'>+	0x01a5, 0x01a5,</div><div class='add'>+	0x01a8, 0x01a8,</div><div class='add'>+	0x01ad, 0x01ad,</div><div class='add'>+	0x01b0, 0x01b0,</div><div class='add'>+	0x01b4, 0x01b4,</div><div class='add'>+	0x01b6, 0x01b6,</div><div class='add'>+	0x01b9, 0x01b9,</div><div class='add'>+	0x01bd, 0x01bd,</div><div class='add'>+	0x01bf, 0x01bf,</div><div class='add'>+	0x01c5, 0x01c6,</div><div class='add'>+	0x01c8, 0x01c9,</div><div class='add'>+	0x01cb, 0x01cc,</div><div class='add'>+	0x01ce, 0x01ce,</div><div class='add'>+	0x01d0, 0x01d0,</div><div class='add'>+	0x01d2, 0x01d2,</div><div class='add'>+	0x01d4, 0x01d4,</div><div class='add'>+	0x01d6, 0x01d6,</div><div class='add'>+	0x01d8, 0x01d8,</div><div class='add'>+	0x01da, 0x01da,</div><div class='add'>+	0x01dc, 0x01dd,</div><div class='add'>+	0x01df, 0x01df,</div><div class='add'>+	0x01e1, 0x01e1,</div><div class='add'>+	0x01e3, 0x01e3,</div><div class='add'>+	0x01e5, 0x01e5,</div><div class='add'>+	0x01e7, 0x01e7,</div><div class='add'>+	0x01e9, 0x01e9,</div><div class='add'>+	0x01eb, 0x01eb,</div><div class='add'>+	0x01ed, 0x01ed,</div><div class='add'>+	0x01ef, 0x01f0,</div><div class='add'>+	0x01f2, 0x01f3,</div><div class='add'>+	0x01f5, 0x01f5,</div><div class='add'>+	0x01f9, 0x01f9,</div><div class='add'>+	0x01fb, 0x01fb,</div><div class='add'>+	0x01fd, 0x01fd,</div><div class='add'>+	0x01ff, 0x01ff,</div><div class='add'>+	0x0201, 0x0201,</div><div class='add'>+	0x0203, 0x0203,</div><div class='add'>+	0x0205, 0x0205,</div><div class='add'>+	0x0207, 0x0207,</div><div class='add'>+	0x0209, 0x0209,</div><div class='add'>+	0x020b, 0x020b,</div><div class='add'>+	0x020d, 0x020d,</div><div class='add'>+	0x020f, 0x020f,</div><div class='add'>+	0x0211, 0x0211,</div><div class='add'>+	0x0213, 0x0213,</div><div class='add'>+	0x0215, 0x0215,</div><div class='add'>+	0x0217, 0x0217,</div><div class='add'>+	0x0219, 0x0219,</div><div class='add'>+	0x021b, 0x021b,</div><div class='add'>+	0x021d, 0x021d,</div><div class='add'>+	0x021f, 0x021f,</div><div class='add'>+	0x0223, 0x0223,</div><div class='add'>+	0x0225, 0x0225,</div><div class='add'>+	0x0227, 0x0227,</div><div class='add'>+	0x0229, 0x0229,</div><div class='add'>+	0x022b, 0x022b,</div><div class='add'>+	0x022d, 0x022d,</div><div class='add'>+	0x022f, 0x022f,</div><div class='add'>+	0x0231, 0x0231,</div><div class='add'>+	0x0233, 0x0233,</div><div class='add'>+	0x023c, 0x023c,</div><div class='add'>+	0x023f, 0x0240,</div><div class='add'>+	0x0242, 0x0242,</div><div class='add'>+	0x0247, 0x0247,</div><div class='add'>+	0x0249, 0x0249,</div><div class='add'>+	0x024b, 0x024b,</div><div class='add'>+	0x024d, 0x024d,</div><div class='add'>+	0x024f, 0x0254,</div><div class='add'>+	0x0256, 0x0257,</div><div class='add'>+	0x0259, 0x0259,</div><div class='add'>+	0x025b, 0x025c,</div><div class='add'>+	0x0260, 0x0261,</div><div class='add'>+	0x0263, 0x0263,</div><div class='add'>+	0x0265, 0x0266,</div><div class='add'>+	0x0268, 0x026c,</div><div class='add'>+	0x026f, 0x026f,</div><div class='add'>+	0x0271, 0x0272,</div><div class='add'>+	0x0275, 0x0275,</div><div class='add'>+	0x027d, 0x027d,</div><div class='add'>+	0x0280, 0x0280,</div><div class='add'>+	0x0282, 0x0283,</div><div class='add'>+	0x0287, 0x028c,</div><div class='add'>+	0x0292, 0x0292,</div><div class='add'>+	0x029d, 0x029e,</div><div class='add'>+	0x0345, 0x0345,</div><div class='add'>+	0x0371, 0x0371,</div><div class='add'>+	0x0373, 0x0373,</div><div class='add'>+	0x0377, 0x0377,</div><div class='add'>+	0x037b, 0x037d,</div><div class='add'>+	0x0390, 0x0390,</div><div class='add'>+	0x03ac, 0x03ce,</div><div class='add'>+	0x03d0, 0x03d1,</div><div class='add'>+	0x03d5, 0x03d7,</div><div class='add'>+	0x03d9, 0x03d9,</div><div class='add'>+	0x03db, 0x03db,</div><div class='add'>+	0x03dd, 0x03dd,</div><div class='add'>+	0x03df, 0x03df,</div><div class='add'>+	0x03e1, 0x03e1,</div><div class='add'>+	0x03e3, 0x03e3,</div><div class='add'>+	0x03e5, 0x03e5,</div><div class='add'>+	0x03e7, 0x03e7,</div><div class='add'>+	0x03e9, 0x03e9,</div><div class='add'>+	0x03eb, 0x03eb,</div><div class='add'>+	0x03ed, 0x03ed,</div><div class='add'>+	0x03ef, 0x03f3,</div><div class='add'>+	0x03f5, 0x03f5,</div><div class='add'>+	0x03f8, 0x03f8,</div><div class='add'>+	0x03fb, 0x03fb,</div><div class='add'>+	0x0430, 0x045f,</div><div class='add'>+	0x0461, 0x0461,</div><div class='add'>+	0x0463, 0x0463,</div><div class='add'>+	0x0465, 0x0465,</div><div class='add'>+	0x0467, 0x0467,</div><div class='add'>+	0x0469, 0x0469,</div><div class='add'>+	0x046b, 0x046b,</div><div class='add'>+	0x046d, 0x046d,</div><div class='add'>+	0x046f, 0x046f,</div><div class='add'>+	0x0471, 0x0471,</div><div class='add'>+	0x0473, 0x0473,</div><div class='add'>+	0x0475, 0x0475,</div><div class='add'>+	0x0477, 0x0477,</div><div class='add'>+	0x0479, 0x0479,</div><div class='add'>+	0x047b, 0x047b,</div><div class='add'>+	0x047d, 0x047d,</div><div class='add'>+	0x047f, 0x047f,</div><div class='add'>+	0x0481, 0x0481,</div><div class='add'>+	0x048b, 0x048b,</div><div class='add'>+	0x048d, 0x048d,</div><div class='add'>+	0x048f, 0x048f,</div><div class='add'>+	0x0491, 0x0491,</div><div class='add'>+	0x0493, 0x0493,</div><div class='add'>+	0x0495, 0x0495,</div><div class='add'>+	0x0497, 0x0497,</div><div class='add'>+	0x0499, 0x0499,</div><div class='add'>+	0x049b, 0x049b,</div><div class='add'>+	0x049d, 0x049d,</div><div class='add'>+	0x049f, 0x049f,</div><div class='add'>+	0x04a1, 0x04a1,</div><div class='add'>+	0x04a3, 0x04a3,</div><div class='add'>+	0x04a5, 0x04a5,</div><div class='add'>+	0x04a7, 0x04a7,</div><div class='add'>+	0x04a9, 0x04a9,</div><div class='add'>+	0x04ab, 0x04ab,</div><div class='add'>+	0x04ad, 0x04ad,</div><div class='add'>+	0x04af, 0x04af,</div><div class='add'>+	0x04b1, 0x04b1,</div><div class='add'>+	0x04b3, 0x04b3,</div><div class='add'>+	0x04b5, 0x04b5,</div><div class='add'>+	0x04b7, 0x04b7,</div><div class='add'>+	0x04b9, 0x04b9,</div><div class='add'>+	0x04bb, 0x04bb,</div><div class='add'>+	0x04bd, 0x04bd,</div><div class='add'>+	0x04bf, 0x04bf,</div><div class='add'>+	0x04c2, 0x04c2,</div><div class='add'>+	0x04c4, 0x04c4,</div><div class='add'>+	0x04c6, 0x04c6,</div><div class='add'>+	0x04c8, 0x04c8,</div><div class='add'>+	0x04ca, 0x04ca,</div><div class='add'>+	0x04cc, 0x04cc,</div><div class='add'>+	0x04ce, 0x04cf,</div><div class='add'>+	0x04d1, 0x04d1,</div><div class='add'>+	0x04d3, 0x04d3,</div><div class='add'>+	0x04d5, 0x04d5,</div><div class='add'>+	0x04d7, 0x04d7,</div><div class='add'>+	0x04d9, 0x04d9,</div><div class='add'>+	0x04db, 0x04db,</div><div class='add'>+	0x04dd, 0x04dd,</div><div class='add'>+	0x04df, 0x04df,</div><div class='add'>+	0x04e1, 0x04e1,</div><div class='add'>+	0x04e3, 0x04e3,</div><div class='add'>+	0x04e5, 0x04e5,</div><div class='add'>+	0x04e7, 0x04e7,</div><div class='add'>+	0x04e9, 0x04e9,</div><div class='add'>+	0x04eb, 0x04eb,</div><div class='add'>+	0x04ed, 0x04ed,</div><div class='add'>+	0x04ef, 0x04ef,</div><div class='add'>+	0x04f1, 0x04f1,</div><div class='add'>+	0x04f3, 0x04f3,</div><div class='add'>+	0x04f5, 0x04f5,</div><div class='add'>+	0x04f7, 0x04f7,</div><div class='add'>+	0x04f9, 0x04f9,</div><div class='add'>+	0x04fb, 0x04fb,</div><div class='add'>+	0x04fd, 0x04fd,</div><div class='add'>+	0x04ff, 0x04ff,</div><div class='add'>+	0x0501, 0x0501,</div><div class='add'>+	0x0503, 0x0503,</div><div class='add'>+	0x0505, 0x0505,</div><div class='add'>+	0x0507, 0x0507,</div><div class='add'>+	0x0509, 0x0509,</div><div class='add'>+	0x050b, 0x050b,</div><div class='add'>+	0x050d, 0x050d,</div><div class='add'>+	0x050f, 0x050f,</div><div class='add'>+	0x0511, 0x0511,</div><div class='add'>+	0x0513, 0x0513,</div><div class='add'>+	0x0515, 0x0515,</div><div class='add'>+	0x0517, 0x0517,</div><div class='add'>+	0x0519, 0x0519,</div><div class='add'>+	0x051b, 0x051b,</div><div class='add'>+	0x051d, 0x051d,</div><div class='add'>+	0x051f, 0x051f,</div><div class='add'>+	0x0521, 0x0521,</div><div class='add'>+	0x0523, 0x0523,</div><div class='add'>+	0x0525, 0x0525,</div><div class='add'>+	0x0527, 0x0527,</div><div class='add'>+	0x0529, 0x0529,</div><div class='add'>+	0x052b, 0x052b,</div><div class='add'>+	0x052d, 0x052d,</div><div class='add'>+	0x052f, 0x052f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fd, 0x10ff,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1d79, 0x1d79,</div><div class='add'>+	0x1d7d, 0x1d7d,</div><div class='add'>+	0x1d8e, 0x1d8e,</div><div class='add'>+	0x1e01, 0x1e01,</div><div class='add'>+	0x1e03, 0x1e03,</div><div class='add'>+	0x1e05, 0x1e05,</div><div class='add'>+	0x1e07, 0x1e07,</div><div class='add'>+	0x1e09, 0x1e09,</div><div class='add'>+	0x1e0b, 0x1e0b,</div><div class='add'>+	0x1e0d, 0x1e0d,</div><div class='add'>+	0x1e0f, 0x1e0f,</div><div class='add'>+	0x1e11, 0x1e11,</div><div class='add'>+	0x1e13, 0x1e13,</div><div class='add'>+	0x1e15, 0x1e15,</div><div class='add'>+	0x1e17, 0x1e17,</div><div class='add'>+	0x1e19, 0x1e19,</div><div class='add'>+	0x1e1b, 0x1e1b,</div><div class='add'>+	0x1e1d, 0x1e1d,</div><div class='add'>+	0x1e1f, 0x1e1f,</div><div class='add'>+	0x1e21, 0x1e21,</div><div class='add'>+	0x1e23, 0x1e23,</div><div class='add'>+	0x1e25, 0x1e25,</div><div class='add'>+	0x1e27, 0x1e27,</div><div class='add'>+	0x1e29, 0x1e29,</div><div class='add'>+	0x1e2b, 0x1e2b,</div><div class='add'>+	0x1e2d, 0x1e2d,</div><div class='add'>+	0x1e2f, 0x1e2f,</div><div class='add'>+	0x1e31, 0x1e31,</div><div class='add'>+	0x1e33, 0x1e33,</div><div class='add'>+	0x1e35, 0x1e35,</div><div class='add'>+	0x1e37, 0x1e37,</div><div class='add'>+	0x1e39, 0x1e39,</div><div class='add'>+	0x1e3b, 0x1e3b,</div><div class='add'>+	0x1e3d, 0x1e3d,</div><div class='add'>+	0x1e3f, 0x1e3f,</div><div class='add'>+	0x1e41, 0x1e41,</div><div class='add'>+	0x1e43, 0x1e43,</div><div class='add'>+	0x1e45, 0x1e45,</div><div class='add'>+	0x1e47, 0x1e47,</div><div class='add'>+	0x1e49, 0x1e49,</div><div class='add'>+	0x1e4b, 0x1e4b,</div><div class='add'>+	0x1e4d, 0x1e4d,</div><div class='add'>+	0x1e4f, 0x1e4f,</div><div class='add'>+	0x1e51, 0x1e51,</div><div class='add'>+	0x1e53, 0x1e53,</div><div class='add'>+	0x1e55, 0x1e55,</div><div class='add'>+	0x1e57, 0x1e57,</div><div class='add'>+	0x1e59, 0x1e59,</div><div class='add'>+	0x1e5b, 0x1e5b,</div><div class='add'>+	0x1e5d, 0x1e5d,</div><div class='add'>+	0x1e5f, 0x1e5f,</div><div class='add'>+	0x1e61, 0x1e61,</div><div class='add'>+	0x1e63, 0x1e63,</div><div class='add'>+	0x1e65, 0x1e65,</div><div class='add'>+	0x1e67, 0x1e67,</div><div class='add'>+	0x1e69, 0x1e69,</div><div class='add'>+	0x1e6b, 0x1e6b,</div><div class='add'>+	0x1e6d, 0x1e6d,</div><div class='add'>+	0x1e6f, 0x1e6f,</div><div class='add'>+	0x1e71, 0x1e71,</div><div class='add'>+	0x1e73, 0x1e73,</div><div class='add'>+	0x1e75, 0x1e75,</div><div class='add'>+	0x1e77, 0x1e77,</div><div class='add'>+	0x1e79, 0x1e79,</div><div class='add'>+	0x1e7b, 0x1e7b,</div><div class='add'>+	0x1e7d, 0x1e7d,</div><div class='add'>+	0x1e7f, 0x1e7f,</div><div class='add'>+	0x1e81, 0x1e81,</div><div class='add'>+	0x1e83, 0x1e83,</div><div class='add'>+	0x1e85, 0x1e85,</div><div class='add'>+	0x1e87, 0x1e87,</div><div class='add'>+	0x1e89, 0x1e89,</div><div class='add'>+	0x1e8b, 0x1e8b,</div><div class='add'>+	0x1e8d, 0x1e8d,</div><div class='add'>+	0x1e8f, 0x1e8f,</div><div class='add'>+	0x1e91, 0x1e91,</div><div class='add'>+	0x1e93, 0x1e93,</div><div class='add'>+	0x1e95, 0x1e9b,</div><div class='add'>+	0x1ea1, 0x1ea1,</div><div class='add'>+	0x1ea3, 0x1ea3,</div><div class='add'>+	0x1ea5, 0x1ea5,</div><div class='add'>+	0x1ea7, 0x1ea7,</div><div class='add'>+	0x1ea9, 0x1ea9,</div><div class='add'>+	0x1eab, 0x1eab,</div><div class='add'>+	0x1ead, 0x1ead,</div><div class='add'>+	0x1eaf, 0x1eaf,</div><div class='add'>+	0x1eb1, 0x1eb1,</div><div class='add'>+	0x1eb3, 0x1eb3,</div><div class='add'>+	0x1eb5, 0x1eb5,</div><div class='add'>+	0x1eb7, 0x1eb7,</div><div class='add'>+	0x1eb9, 0x1eb9,</div><div class='add'>+	0x1ebb, 0x1ebb,</div><div class='add'>+	0x1ebd, 0x1ebd,</div><div class='add'>+	0x1ebf, 0x1ebf,</div><div class='add'>+	0x1ec1, 0x1ec1,</div><div class='add'>+	0x1ec3, 0x1ec3,</div><div class='add'>+	0x1ec5, 0x1ec5,</div><div class='add'>+	0x1ec7, 0x1ec7,</div><div class='add'>+	0x1ec9, 0x1ec9,</div><div class='add'>+	0x1ecb, 0x1ecb,</div><div class='add'>+	0x1ecd, 0x1ecd,</div><div class='add'>+	0x1ecf, 0x1ecf,</div><div class='add'>+	0x1ed1, 0x1ed1,</div><div class='add'>+	0x1ed3, 0x1ed3,</div><div class='add'>+	0x1ed5, 0x1ed5,</div><div class='add'>+	0x1ed7, 0x1ed7,</div><div class='add'>+	0x1ed9, 0x1ed9,</div><div class='add'>+	0x1edb, 0x1edb,</div><div class='add'>+	0x1edd, 0x1edd,</div><div class='add'>+	0x1edf, 0x1edf,</div><div class='add'>+	0x1ee1, 0x1ee1,</div><div class='add'>+	0x1ee3, 0x1ee3,</div><div class='add'>+	0x1ee5, 0x1ee5,</div><div class='add'>+	0x1ee7, 0x1ee7,</div><div class='add'>+	0x1ee9, 0x1ee9,</div><div class='add'>+	0x1eeb, 0x1eeb,</div><div class='add'>+	0x1eed, 0x1eed,</div><div class='add'>+	0x1eef, 0x1eef,</div><div class='add'>+	0x1ef1, 0x1ef1,</div><div class='add'>+	0x1ef3, 0x1ef3,</div><div class='add'>+	0x1ef5, 0x1ef5,</div><div class='add'>+	0x1ef7, 0x1ef7,</div><div class='add'>+	0x1ef9, 0x1ef9,</div><div class='add'>+	0x1efb, 0x1efb,</div><div class='add'>+	0x1efd, 0x1efd,</div><div class='add'>+	0x1eff, 0x1f07,</div><div class='add'>+	0x1f10, 0x1f15,</div><div class='add'>+	0x1f20, 0x1f27,</div><div class='add'>+	0x1f30, 0x1f37,</div><div class='add'>+	0x1f40, 0x1f45,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f60, 0x1f67,</div><div class='add'>+	0x1f70, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fb7,</div><div class='add'>+	0x1fbc, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fc7,</div><div class='add'>+	0x1fcc, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fd7,</div><div class='add'>+	0x1fe0, 0x1fe7,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ff7,</div><div class='add'>+	0x1ffc, 0x1ffc,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2170, 0x217f,</div><div class='add'>+	0x2184, 0x2184,</div><div class='add'>+	0x24d0, 0x24e9,</div><div class='add'>+	0x2c30, 0x2c5f,</div><div class='add'>+	0x2c61, 0x2c61,</div><div class='add'>+	0x2c65, 0x2c66,</div><div class='add'>+	0x2c68, 0x2c68,</div><div class='add'>+	0x2c6a, 0x2c6a,</div><div class='add'>+	0x2c6c, 0x2c6c,</div><div class='add'>+	0x2c73, 0x2c73,</div><div class='add'>+	0x2c76, 0x2c76,</div><div class='add'>+	0x2c81, 0x2c81,</div><div class='add'>+	0x2c83, 0x2c83,</div><div class='add'>+	0x2c85, 0x2c85,</div><div class='add'>+	0x2c87, 0x2c87,</div><div class='add'>+	0x2c89, 0x2c89,</div><div class='add'>+	0x2c8b, 0x2c8b,</div><div class='add'>+	0x2c8d, 0x2c8d,</div><div class='add'>+	0x2c8f, 0x2c8f,</div><div class='add'>+	0x2c91, 0x2c91,</div><div class='add'>+	0x2c93, 0x2c93,</div><div class='add'>+	0x2c95, 0x2c95,</div><div class='add'>+	0x2c97, 0x2c97,</div><div class='add'>+	0x2c99, 0x2c99,</div><div class='add'>+	0x2c9b, 0x2c9b,</div><div class='add'>+	0x2c9d, 0x2c9d,</div><div class='add'>+	0x2c9f, 0x2c9f,</div><div class='add'>+	0x2ca1, 0x2ca1,</div><div class='add'>+	0x2ca3, 0x2ca3,</div><div class='add'>+	0x2ca5, 0x2ca5,</div><div class='add'>+	0x2ca7, 0x2ca7,</div><div class='add'>+	0x2ca9, 0x2ca9,</div><div class='add'>+	0x2cab, 0x2cab,</div><div class='add'>+	0x2cad, 0x2cad,</div><div class='add'>+	0x2caf, 0x2caf,</div><div class='add'>+	0x2cb1, 0x2cb1,</div><div class='add'>+	0x2cb3, 0x2cb3,</div><div class='add'>+	0x2cb5, 0x2cb5,</div><div class='add'>+	0x2cb7, 0x2cb7,</div><div class='add'>+	0x2cb9, 0x2cb9,</div><div class='add'>+	0x2cbb, 0x2cbb,</div><div class='add'>+	0x2cbd, 0x2cbd,</div><div class='add'>+	0x2cbf, 0x2cbf,</div><div class='add'>+	0x2cc1, 0x2cc1,</div><div class='add'>+	0x2cc3, 0x2cc3,</div><div class='add'>+	0x2cc5, 0x2cc5,</div><div class='add'>+	0x2cc7, 0x2cc7,</div><div class='add'>+	0x2cc9, 0x2cc9,</div><div class='add'>+	0x2ccb, 0x2ccb,</div><div class='add'>+	0x2ccd, 0x2ccd,</div><div class='add'>+	0x2ccf, 0x2ccf,</div><div class='add'>+	0x2cd1, 0x2cd1,</div><div class='add'>+	0x2cd3, 0x2cd3,</div><div class='add'>+	0x2cd5, 0x2cd5,</div><div class='add'>+	0x2cd7, 0x2cd7,</div><div class='add'>+	0x2cd9, 0x2cd9,</div><div class='add'>+	0x2cdb, 0x2cdb,</div><div class='add'>+	0x2cdd, 0x2cdd,</div><div class='add'>+	0x2cdf, 0x2cdf,</div><div class='add'>+	0x2ce1, 0x2ce1,</div><div class='add'>+	0x2ce3, 0x2ce3,</div><div class='add'>+	0x2cec, 0x2cec,</div><div class='add'>+	0x2cee, 0x2cee,</div><div class='add'>+	0x2cf3, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0xa641, 0xa641,</div><div class='add'>+	0xa643, 0xa643,</div><div class='add'>+	0xa645, 0xa645,</div><div class='add'>+	0xa647, 0xa647,</div><div class='add'>+	0xa649, 0xa649,</div><div class='add'>+	0xa64b, 0xa64b,</div><div class='add'>+	0xa64d, 0xa64d,</div><div class='add'>+	0xa64f, 0xa64f,</div><div class='add'>+	0xa651, 0xa651,</div><div class='add'>+	0xa653, 0xa653,</div><div class='add'>+	0xa655, 0xa655,</div><div class='add'>+	0xa657, 0xa657,</div><div class='add'>+	0xa659, 0xa659,</div><div class='add'>+	0xa65b, 0xa65b,</div><div class='add'>+	0xa65d, 0xa65d,</div><div class='add'>+	0xa65f, 0xa65f,</div><div class='add'>+	0xa661, 0xa661,</div><div class='add'>+	0xa663, 0xa663,</div><div class='add'>+	0xa665, 0xa665,</div><div class='add'>+	0xa667, 0xa667,</div><div class='add'>+	0xa669, 0xa669,</div><div class='add'>+	0xa66b, 0xa66b,</div><div class='add'>+	0xa66d, 0xa66d,</div><div class='add'>+	0xa681, 0xa681,</div><div class='add'>+	0xa683, 0xa683,</div><div class='add'>+	0xa685, 0xa685,</div><div class='add'>+	0xa687, 0xa687,</div><div class='add'>+	0xa689, 0xa689,</div><div class='add'>+	0xa68b, 0xa68b,</div><div class='add'>+	0xa68d, 0xa68d,</div><div class='add'>+	0xa68f, 0xa68f,</div><div class='add'>+	0xa691, 0xa691,</div><div class='add'>+	0xa693, 0xa693,</div><div class='add'>+	0xa695, 0xa695,</div><div class='add'>+	0xa697, 0xa697,</div><div class='add'>+	0xa699, 0xa699,</div><div class='add'>+	0xa69b, 0xa69b,</div><div class='add'>+	0xa723, 0xa723,</div><div class='add'>+	0xa725, 0xa725,</div><div class='add'>+	0xa727, 0xa727,</div><div class='add'>+	0xa729, 0xa729,</div><div class='add'>+	0xa72b, 0xa72b,</div><div class='add'>+	0xa72d, 0xa72d,</div><div class='add'>+	0xa72f, 0xa72f,</div><div class='add'>+	0xa733, 0xa733,</div><div class='add'>+	0xa735, 0xa735,</div><div class='add'>+	0xa737, 0xa737,</div><div class='add'>+	0xa739, 0xa739,</div><div class='add'>+	0xa73b, 0xa73b,</div><div class='add'>+	0xa73d, 0xa73d,</div><div class='add'>+	0xa73f, 0xa73f,</div><div class='add'>+	0xa741, 0xa741,</div><div class='add'>+	0xa743, 0xa743,</div><div class='add'>+	0xa745, 0xa745,</div><div class='add'>+	0xa747, 0xa747,</div><div class='add'>+	0xa749, 0xa749,</div><div class='add'>+	0xa74b, 0xa74b,</div><div class='add'>+	0xa74d, 0xa74d,</div><div class='add'>+	0xa74f, 0xa74f,</div><div class='add'>+	0xa751, 0xa751,</div><div class='add'>+	0xa753, 0xa753,</div><div class='add'>+	0xa755, 0xa755,</div><div class='add'>+	0xa757, 0xa757,</div><div class='add'>+	0xa759, 0xa759,</div><div class='add'>+	0xa75b, 0xa75b,</div><div class='add'>+	0xa75d, 0xa75d,</div><div class='add'>+	0xa75f, 0xa75f,</div><div class='add'>+	0xa761, 0xa761,</div><div class='add'>+	0xa763, 0xa763,</div><div class='add'>+	0xa765, 0xa765,</div><div class='add'>+	0xa767, 0xa767,</div><div class='add'>+	0xa769, 0xa769,</div><div class='add'>+	0xa76b, 0xa76b,</div><div class='add'>+	0xa76d, 0xa76d,</div><div class='add'>+	0xa76f, 0xa76f,</div><div class='add'>+	0xa77a, 0xa77a,</div><div class='add'>+	0xa77c, 0xa77c,</div><div class='add'>+	0xa77f, 0xa77f,</div><div class='add'>+	0xa781, 0xa781,</div><div class='add'>+	0xa783, 0xa783,</div><div class='add'>+	0xa785, 0xa785,</div><div class='add'>+	0xa787, 0xa787,</div><div class='add'>+	0xa78c, 0xa78c,</div><div class='add'>+	0xa791, 0xa791,</div><div class='add'>+	0xa793, 0xa794,</div><div class='add'>+	0xa797, 0xa797,</div><div class='add'>+	0xa799, 0xa799,</div><div class='add'>+	0xa79b, 0xa79b,</div><div class='add'>+	0xa79d, 0xa79d,</div><div class='add'>+	0xa79f, 0xa79f,</div><div class='add'>+	0xa7a1, 0xa7a1,</div><div class='add'>+	0xa7a3, 0xa7a3,</div><div class='add'>+	0xa7a5, 0xa7a5,</div><div class='add'>+	0xa7a7, 0xa7a7,</div><div class='add'>+	0xa7a9, 0xa7a9,</div><div class='add'>+	0xa7b5, 0xa7b5,</div><div class='add'>+	0xa7b7, 0xa7b7,</div><div class='add'>+	0xa7b9, 0xa7b9,</div><div class='add'>+	0xa7bb, 0xa7bb,</div><div class='add'>+	0xa7bd, 0xa7bd,</div><div class='add'>+	0xa7bf, 0xa7bf,</div><div class='add'>+	0xa7c1, 0xa7c1,</div><div class='add'>+	0xa7c3, 0xa7c3,</div><div class='add'>+	0xa7c8, 0xa7c8,</div><div class='add'>+	0xa7ca, 0xa7ca,</div><div class='add'>+	0xa7d1, 0xa7d1,</div><div class='add'>+	0xa7d7, 0xa7d7,</div><div class='add'>+	0xa7d9, 0xa7d9,</div><div class='add'>+	0xa7f6, 0xa7f6,</div><div class='add'>+	0xab53, 0xab53,</div><div class='add'>+	0xab70, 0xabbf,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0x10428, 0x1044f,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x118c0, 0x118df,</div><div class='add'>+	0x16e60, 0x16e7f,</div><div class='add'>+	0x1e922, 0x1e943,</div><div class='add'>+}; /* CR_Changes_When_Uppercased */</div><div class='add'>+</div><div class='add'>+/* 'Changes_When_Titlecased': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Changes_When_Titlecased[] = {</div><div class='add'>+	626,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00df, 0x00f6,</div><div class='add'>+	0x00f8, 0x00ff,</div><div class='add'>+	0x0101, 0x0101,</div><div class='add'>+	0x0103, 0x0103,</div><div class='add'>+	0x0105, 0x0105,</div><div class='add'>+	0x0107, 0x0107,</div><div class='add'>+	0x0109, 0x0109,</div><div class='add'>+	0x010b, 0x010b,</div><div class='add'>+	0x010d, 0x010d,</div><div class='add'>+	0x010f, 0x010f,</div><div class='add'>+	0x0111, 0x0111,</div><div class='add'>+	0x0113, 0x0113,</div><div class='add'>+	0x0115, 0x0115,</div><div class='add'>+	0x0117, 0x0117,</div><div class='add'>+	0x0119, 0x0119,</div><div class='add'>+	0x011b, 0x011b,</div><div class='add'>+	0x011d, 0x011d,</div><div class='add'>+	0x011f, 0x011f,</div><div class='add'>+	0x0121, 0x0121,</div><div class='add'>+	0x0123, 0x0123,</div><div class='add'>+	0x0125, 0x0125,</div><div class='add'>+	0x0127, 0x0127,</div><div class='add'>+	0x0129, 0x0129,</div><div class='add'>+	0x012b, 0x012b,</div><div class='add'>+	0x012d, 0x012d,</div><div class='add'>+	0x012f, 0x012f,</div><div class='add'>+	0x0131, 0x0131,</div><div class='add'>+	0x0133, 0x0133,</div><div class='add'>+	0x0135, 0x0135,</div><div class='add'>+	0x0137, 0x0137,</div><div class='add'>+	0x013a, 0x013a,</div><div class='add'>+	0x013c, 0x013c,</div><div class='add'>+	0x013e, 0x013e,</div><div class='add'>+	0x0140, 0x0140,</div><div class='add'>+	0x0142, 0x0142,</div><div class='add'>+	0x0144, 0x0144,</div><div class='add'>+	0x0146, 0x0146,</div><div class='add'>+	0x0148, 0x0149,</div><div class='add'>+	0x014b, 0x014b,</div><div class='add'>+	0x014d, 0x014d,</div><div class='add'>+	0x014f, 0x014f,</div><div class='add'>+	0x0151, 0x0151,</div><div class='add'>+	0x0153, 0x0153,</div><div class='add'>+	0x0155, 0x0155,</div><div class='add'>+	0x0157, 0x0157,</div><div class='add'>+	0x0159, 0x0159,</div><div class='add'>+	0x015b, 0x015b,</div><div class='add'>+	0x015d, 0x015d,</div><div class='add'>+	0x015f, 0x015f,</div><div class='add'>+	0x0161, 0x0161,</div><div class='add'>+	0x0163, 0x0163,</div><div class='add'>+	0x0165, 0x0165,</div><div class='add'>+	0x0167, 0x0167,</div><div class='add'>+	0x0169, 0x0169,</div><div class='add'>+	0x016b, 0x016b,</div><div class='add'>+	0x016d, 0x016d,</div><div class='add'>+	0x016f, 0x016f,</div><div class='add'>+	0x0171, 0x0171,</div><div class='add'>+	0x0173, 0x0173,</div><div class='add'>+	0x0175, 0x0175,</div><div class='add'>+	0x0177, 0x0177,</div><div class='add'>+	0x017a, 0x017a,</div><div class='add'>+	0x017c, 0x017c,</div><div class='add'>+	0x017e, 0x0180,</div><div class='add'>+	0x0183, 0x0183,</div><div class='add'>+	0x0185, 0x0185,</div><div class='add'>+	0x0188, 0x0188,</div><div class='add'>+	0x018c, 0x018c,</div><div class='add'>+	0x0192, 0x0192,</div><div class='add'>+	0x0195, 0x0195,</div><div class='add'>+	0x0199, 0x019a,</div><div class='add'>+	0x019e, 0x019e,</div><div class='add'>+	0x01a1, 0x01a1,</div><div class='add'>+	0x01a3, 0x01a3,</div><div class='add'>+	0x01a5, 0x01a5,</div><div class='add'>+	0x01a8, 0x01a8,</div><div class='add'>+	0x01ad, 0x01ad,</div><div class='add'>+	0x01b0, 0x01b0,</div><div class='add'>+	0x01b4, 0x01b4,</div><div class='add'>+	0x01b6, 0x01b6,</div><div class='add'>+	0x01b9, 0x01b9,</div><div class='add'>+	0x01bd, 0x01bd,</div><div class='add'>+	0x01bf, 0x01bf,</div><div class='add'>+	0x01c4, 0x01c4,</div><div class='add'>+	0x01c6, 0x01c7,</div><div class='add'>+	0x01c9, 0x01ca,</div><div class='add'>+	0x01cc, 0x01cc,</div><div class='add'>+	0x01ce, 0x01ce,</div><div class='add'>+	0x01d0, 0x01d0,</div><div class='add'>+	0x01d2, 0x01d2,</div><div class='add'>+	0x01d4, 0x01d4,</div><div class='add'>+	0x01d6, 0x01d6,</div><div class='add'>+	0x01d8, 0x01d8,</div><div class='add'>+	0x01da, 0x01da,</div><div class='add'>+	0x01dc, 0x01dd,</div><div class='add'>+	0x01df, 0x01df,</div><div class='add'>+	0x01e1, 0x01e1,</div><div class='add'>+	0x01e3, 0x01e3,</div><div class='add'>+	0x01e5, 0x01e5,</div><div class='add'>+	0x01e7, 0x01e7,</div><div class='add'>+	0x01e9, 0x01e9,</div><div class='add'>+	0x01eb, 0x01eb,</div><div class='add'>+	0x01ed, 0x01ed,</div><div class='add'>+	0x01ef, 0x01f1,</div><div class='add'>+	0x01f3, 0x01f3,</div><div class='add'>+	0x01f5, 0x01f5,</div><div class='add'>+	0x01f9, 0x01f9,</div><div class='add'>+	0x01fb, 0x01fb,</div><div class='add'>+	0x01fd, 0x01fd,</div><div class='add'>+	0x01ff, 0x01ff,</div><div class='add'>+	0x0201, 0x0201,</div><div class='add'>+	0x0203, 0x0203,</div><div class='add'>+	0x0205, 0x0205,</div><div class='add'>+	0x0207, 0x0207,</div><div class='add'>+	0x0209, 0x0209,</div><div class='add'>+	0x020b, 0x020b,</div><div class='add'>+	0x020d, 0x020d,</div><div class='add'>+	0x020f, 0x020f,</div><div class='add'>+	0x0211, 0x0211,</div><div class='add'>+	0x0213, 0x0213,</div><div class='add'>+	0x0215, 0x0215,</div><div class='add'>+	0x0217, 0x0217,</div><div class='add'>+	0x0219, 0x0219,</div><div class='add'>+	0x021b, 0x021b,</div><div class='add'>+	0x021d, 0x021d,</div><div class='add'>+	0x021f, 0x021f,</div><div class='add'>+	0x0223, 0x0223,</div><div class='add'>+	0x0225, 0x0225,</div><div class='add'>+	0x0227, 0x0227,</div><div class='add'>+	0x0229, 0x0229,</div><div class='add'>+	0x022b, 0x022b,</div><div class='add'>+	0x022d, 0x022d,</div><div class='add'>+	0x022f, 0x022f,</div><div class='add'>+	0x0231, 0x0231,</div><div class='add'>+	0x0233, 0x0233,</div><div class='add'>+	0x023c, 0x023c,</div><div class='add'>+	0x023f, 0x0240,</div><div class='add'>+	0x0242, 0x0242,</div><div class='add'>+	0x0247, 0x0247,</div><div class='add'>+	0x0249, 0x0249,</div><div class='add'>+	0x024b, 0x024b,</div><div class='add'>+	0x024d, 0x024d,</div><div class='add'>+	0x024f, 0x0254,</div><div class='add'>+	0x0256, 0x0257,</div><div class='add'>+	0x0259, 0x0259,</div><div class='add'>+	0x025b, 0x025c,</div><div class='add'>+	0x0260, 0x0261,</div><div class='add'>+	0x0263, 0x0263,</div><div class='add'>+	0x0265, 0x0266,</div><div class='add'>+	0x0268, 0x026c,</div><div class='add'>+	0x026f, 0x026f,</div><div class='add'>+	0x0271, 0x0272,</div><div class='add'>+	0x0275, 0x0275,</div><div class='add'>+	0x027d, 0x027d,</div><div class='add'>+	0x0280, 0x0280,</div><div class='add'>+	0x0282, 0x0283,</div><div class='add'>+	0x0287, 0x028c,</div><div class='add'>+	0x0292, 0x0292,</div><div class='add'>+	0x029d, 0x029e,</div><div class='add'>+	0x0345, 0x0345,</div><div class='add'>+	0x0371, 0x0371,</div><div class='add'>+	0x0373, 0x0373,</div><div class='add'>+	0x0377, 0x0377,</div><div class='add'>+	0x037b, 0x037d,</div><div class='add'>+	0x0390, 0x0390,</div><div class='add'>+	0x03ac, 0x03ce,</div><div class='add'>+	0x03d0, 0x03d1,</div><div class='add'>+	0x03d5, 0x03d7,</div><div class='add'>+	0x03d9, 0x03d9,</div><div class='add'>+	0x03db, 0x03db,</div><div class='add'>+	0x03dd, 0x03dd,</div><div class='add'>+	0x03df, 0x03df,</div><div class='add'>+	0x03e1, 0x03e1,</div><div class='add'>+	0x03e3, 0x03e3,</div><div class='add'>+	0x03e5, 0x03e5,</div><div class='add'>+	0x03e7, 0x03e7,</div><div class='add'>+	0x03e9, 0x03e9,</div><div class='add'>+	0x03eb, 0x03eb,</div><div class='add'>+	0x03ed, 0x03ed,</div><div class='add'>+	0x03ef, 0x03f3,</div><div class='add'>+	0x03f5, 0x03f5,</div><div class='add'>+	0x03f8, 0x03f8,</div><div class='add'>+	0x03fb, 0x03fb,</div><div class='add'>+	0x0430, 0x045f,</div><div class='add'>+	0x0461, 0x0461,</div><div class='add'>+	0x0463, 0x0463,</div><div class='add'>+	0x0465, 0x0465,</div><div class='add'>+	0x0467, 0x0467,</div><div class='add'>+	0x0469, 0x0469,</div><div class='add'>+	0x046b, 0x046b,</div><div class='add'>+	0x046d, 0x046d,</div><div class='add'>+	0x046f, 0x046f,</div><div class='add'>+	0x0471, 0x0471,</div><div class='add'>+	0x0473, 0x0473,</div><div class='add'>+	0x0475, 0x0475,</div><div class='add'>+	0x0477, 0x0477,</div><div class='add'>+	0x0479, 0x0479,</div><div class='add'>+	0x047b, 0x047b,</div><div class='add'>+	0x047d, 0x047d,</div><div class='add'>+	0x047f, 0x047f,</div><div class='add'>+	0x0481, 0x0481,</div><div class='add'>+	0x048b, 0x048b,</div><div class='add'>+	0x048d, 0x048d,</div><div class='add'>+	0x048f, 0x048f,</div><div class='add'>+	0x0491, 0x0491,</div><div class='add'>+	0x0493, 0x0493,</div><div class='add'>+	0x0495, 0x0495,</div><div class='add'>+	0x0497, 0x0497,</div><div class='add'>+	0x0499, 0x0499,</div><div class='add'>+	0x049b, 0x049b,</div><div class='add'>+	0x049d, 0x049d,</div><div class='add'>+	0x049f, 0x049f,</div><div class='add'>+	0x04a1, 0x04a1,</div><div class='add'>+	0x04a3, 0x04a3,</div><div class='add'>+	0x04a5, 0x04a5,</div><div class='add'>+	0x04a7, 0x04a7,</div><div class='add'>+	0x04a9, 0x04a9,</div><div class='add'>+	0x04ab, 0x04ab,</div><div class='add'>+	0x04ad, 0x04ad,</div><div class='add'>+	0x04af, 0x04af,</div><div class='add'>+	0x04b1, 0x04b1,</div><div class='add'>+	0x04b3, 0x04b3,</div><div class='add'>+	0x04b5, 0x04b5,</div><div class='add'>+	0x04b7, 0x04b7,</div><div class='add'>+	0x04b9, 0x04b9,</div><div class='add'>+	0x04bb, 0x04bb,</div><div class='add'>+	0x04bd, 0x04bd,</div><div class='add'>+	0x04bf, 0x04bf,</div><div class='add'>+	0x04c2, 0x04c2,</div><div class='add'>+	0x04c4, 0x04c4,</div><div class='add'>+	0x04c6, 0x04c6,</div><div class='add'>+	0x04c8, 0x04c8,</div><div class='add'>+	0x04ca, 0x04ca,</div><div class='add'>+	0x04cc, 0x04cc,</div><div class='add'>+	0x04ce, 0x04cf,</div><div class='add'>+	0x04d1, 0x04d1,</div><div class='add'>+	0x04d3, 0x04d3,</div><div class='add'>+	0x04d5, 0x04d5,</div><div class='add'>+	0x04d7, 0x04d7,</div><div class='add'>+	0x04d9, 0x04d9,</div><div class='add'>+	0x04db, 0x04db,</div><div class='add'>+	0x04dd, 0x04dd,</div><div class='add'>+	0x04df, 0x04df,</div><div class='add'>+	0x04e1, 0x04e1,</div><div class='add'>+	0x04e3, 0x04e3,</div><div class='add'>+	0x04e5, 0x04e5,</div><div class='add'>+	0x04e7, 0x04e7,</div><div class='add'>+	0x04e9, 0x04e9,</div><div class='add'>+	0x04eb, 0x04eb,</div><div class='add'>+	0x04ed, 0x04ed,</div><div class='add'>+	0x04ef, 0x04ef,</div><div class='add'>+	0x04f1, 0x04f1,</div><div class='add'>+	0x04f3, 0x04f3,</div><div class='add'>+	0x04f5, 0x04f5,</div><div class='add'>+	0x04f7, 0x04f7,</div><div class='add'>+	0x04f9, 0x04f9,</div><div class='add'>+	0x04fb, 0x04fb,</div><div class='add'>+	0x04fd, 0x04fd,</div><div class='add'>+	0x04ff, 0x04ff,</div><div class='add'>+	0x0501, 0x0501,</div><div class='add'>+	0x0503, 0x0503,</div><div class='add'>+	0x0505, 0x0505,</div><div class='add'>+	0x0507, 0x0507,</div><div class='add'>+	0x0509, 0x0509,</div><div class='add'>+	0x050b, 0x050b,</div><div class='add'>+	0x050d, 0x050d,</div><div class='add'>+	0x050f, 0x050f,</div><div class='add'>+	0x0511, 0x0511,</div><div class='add'>+	0x0513, 0x0513,</div><div class='add'>+	0x0515, 0x0515,</div><div class='add'>+	0x0517, 0x0517,</div><div class='add'>+	0x0519, 0x0519,</div><div class='add'>+	0x051b, 0x051b,</div><div class='add'>+	0x051d, 0x051d,</div><div class='add'>+	0x051f, 0x051f,</div><div class='add'>+	0x0521, 0x0521,</div><div class='add'>+	0x0523, 0x0523,</div><div class='add'>+	0x0525, 0x0525,</div><div class='add'>+	0x0527, 0x0527,</div><div class='add'>+	0x0529, 0x0529,</div><div class='add'>+	0x052b, 0x052b,</div><div class='add'>+	0x052d, 0x052d,</div><div class='add'>+	0x052f, 0x052f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1d79, 0x1d79,</div><div class='add'>+	0x1d7d, 0x1d7d,</div><div class='add'>+	0x1d8e, 0x1d8e,</div><div class='add'>+	0x1e01, 0x1e01,</div><div class='add'>+	0x1e03, 0x1e03,</div><div class='add'>+	0x1e05, 0x1e05,</div><div class='add'>+	0x1e07, 0x1e07,</div><div class='add'>+	0x1e09, 0x1e09,</div><div class='add'>+	0x1e0b, 0x1e0b,</div><div class='add'>+	0x1e0d, 0x1e0d,</div><div class='add'>+	0x1e0f, 0x1e0f,</div><div class='add'>+	0x1e11, 0x1e11,</div><div class='add'>+	0x1e13, 0x1e13,</div><div class='add'>+	0x1e15, 0x1e15,</div><div class='add'>+	0x1e17, 0x1e17,</div><div class='add'>+	0x1e19, 0x1e19,</div><div class='add'>+	0x1e1b, 0x1e1b,</div><div class='add'>+	0x1e1d, 0x1e1d,</div><div class='add'>+	0x1e1f, 0x1e1f,</div><div class='add'>+	0x1e21, 0x1e21,</div><div class='add'>+	0x1e23, 0x1e23,</div><div class='add'>+	0x1e25, 0x1e25,</div><div class='add'>+	0x1e27, 0x1e27,</div><div class='add'>+	0x1e29, 0x1e29,</div><div class='add'>+	0x1e2b, 0x1e2b,</div><div class='add'>+	0x1e2d, 0x1e2d,</div><div class='add'>+	0x1e2f, 0x1e2f,</div><div class='add'>+	0x1e31, 0x1e31,</div><div class='add'>+	0x1e33, 0x1e33,</div><div class='add'>+	0x1e35, 0x1e35,</div><div class='add'>+	0x1e37, 0x1e37,</div><div class='add'>+	0x1e39, 0x1e39,</div><div class='add'>+	0x1e3b, 0x1e3b,</div><div class='add'>+	0x1e3d, 0x1e3d,</div><div class='add'>+	0x1e3f, 0x1e3f,</div><div class='add'>+	0x1e41, 0x1e41,</div><div class='add'>+	0x1e43, 0x1e43,</div><div class='add'>+	0x1e45, 0x1e45,</div><div class='add'>+	0x1e47, 0x1e47,</div><div class='add'>+	0x1e49, 0x1e49,</div><div class='add'>+	0x1e4b, 0x1e4b,</div><div class='add'>+	0x1e4d, 0x1e4d,</div><div class='add'>+	0x1e4f, 0x1e4f,</div><div class='add'>+	0x1e51, 0x1e51,</div><div class='add'>+	0x1e53, 0x1e53,</div><div class='add'>+	0x1e55, 0x1e55,</div><div class='add'>+	0x1e57, 0x1e57,</div><div class='add'>+	0x1e59, 0x1e59,</div><div class='add'>+	0x1e5b, 0x1e5b,</div><div class='add'>+	0x1e5d, 0x1e5d,</div><div class='add'>+	0x1e5f, 0x1e5f,</div><div class='add'>+	0x1e61, 0x1e61,</div><div class='add'>+	0x1e63, 0x1e63,</div><div class='add'>+	0x1e65, 0x1e65,</div><div class='add'>+	0x1e67, 0x1e67,</div><div class='add'>+	0x1e69, 0x1e69,</div><div class='add'>+	0x1e6b, 0x1e6b,</div><div class='add'>+	0x1e6d, 0x1e6d,</div><div class='add'>+	0x1e6f, 0x1e6f,</div><div class='add'>+	0x1e71, 0x1e71,</div><div class='add'>+	0x1e73, 0x1e73,</div><div class='add'>+	0x1e75, 0x1e75,</div><div class='add'>+	0x1e77, 0x1e77,</div><div class='add'>+	0x1e79, 0x1e79,</div><div class='add'>+	0x1e7b, 0x1e7b,</div><div class='add'>+	0x1e7d, 0x1e7d,</div><div class='add'>+	0x1e7f, 0x1e7f,</div><div class='add'>+	0x1e81, 0x1e81,</div><div class='add'>+	0x1e83, 0x1e83,</div><div class='add'>+	0x1e85, 0x1e85,</div><div class='add'>+	0x1e87, 0x1e87,</div><div class='add'>+	0x1e89, 0x1e89,</div><div class='add'>+	0x1e8b, 0x1e8b,</div><div class='add'>+	0x1e8d, 0x1e8d,</div><div class='add'>+	0x1e8f, 0x1e8f,</div><div class='add'>+	0x1e91, 0x1e91,</div><div class='add'>+	0x1e93, 0x1e93,</div><div class='add'>+	0x1e95, 0x1e9b,</div><div class='add'>+	0x1ea1, 0x1ea1,</div><div class='add'>+	0x1ea3, 0x1ea3,</div><div class='add'>+	0x1ea5, 0x1ea5,</div><div class='add'>+	0x1ea7, 0x1ea7,</div><div class='add'>+	0x1ea9, 0x1ea9,</div><div class='add'>+	0x1eab, 0x1eab,</div><div class='add'>+	0x1ead, 0x1ead,</div><div class='add'>+	0x1eaf, 0x1eaf,</div><div class='add'>+	0x1eb1, 0x1eb1,</div><div class='add'>+	0x1eb3, 0x1eb3,</div><div class='add'>+	0x1eb5, 0x1eb5,</div><div class='add'>+	0x1eb7, 0x1eb7,</div><div class='add'>+	0x1eb9, 0x1eb9,</div><div class='add'>+	0x1ebb, 0x1ebb,</div><div class='add'>+	0x1ebd, 0x1ebd,</div><div class='add'>+	0x1ebf, 0x1ebf,</div><div class='add'>+	0x1ec1, 0x1ec1,</div><div class='add'>+	0x1ec3, 0x1ec3,</div><div class='add'>+	0x1ec5, 0x1ec5,</div><div class='add'>+	0x1ec7, 0x1ec7,</div><div class='add'>+	0x1ec9, 0x1ec9,</div><div class='add'>+	0x1ecb, 0x1ecb,</div><div class='add'>+	0x1ecd, 0x1ecd,</div><div class='add'>+	0x1ecf, 0x1ecf,</div><div class='add'>+	0x1ed1, 0x1ed1,</div><div class='add'>+	0x1ed3, 0x1ed3,</div><div class='add'>+	0x1ed5, 0x1ed5,</div><div class='add'>+	0x1ed7, 0x1ed7,</div><div class='add'>+	0x1ed9, 0x1ed9,</div><div class='add'>+	0x1edb, 0x1edb,</div><div class='add'>+	0x1edd, 0x1edd,</div><div class='add'>+	0x1edf, 0x1edf,</div><div class='add'>+	0x1ee1, 0x1ee1,</div><div class='add'>+	0x1ee3, 0x1ee3,</div><div class='add'>+	0x1ee5, 0x1ee5,</div><div class='add'>+	0x1ee7, 0x1ee7,</div><div class='add'>+	0x1ee9, 0x1ee9,</div><div class='add'>+	0x1eeb, 0x1eeb,</div><div class='add'>+	0x1eed, 0x1eed,</div><div class='add'>+	0x1eef, 0x1eef,</div><div class='add'>+	0x1ef1, 0x1ef1,</div><div class='add'>+	0x1ef3, 0x1ef3,</div><div class='add'>+	0x1ef5, 0x1ef5,</div><div class='add'>+	0x1ef7, 0x1ef7,</div><div class='add'>+	0x1ef9, 0x1ef9,</div><div class='add'>+	0x1efb, 0x1efb,</div><div class='add'>+	0x1efd, 0x1efd,</div><div class='add'>+	0x1eff, 0x1f07,</div><div class='add'>+	0x1f10, 0x1f15,</div><div class='add'>+	0x1f20, 0x1f27,</div><div class='add'>+	0x1f30, 0x1f37,</div><div class='add'>+	0x1f40, 0x1f45,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f60, 0x1f67,</div><div class='add'>+	0x1f70, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1f87,</div><div class='add'>+	0x1f90, 0x1f97,</div><div class='add'>+	0x1fa0, 0x1fa7,</div><div class='add'>+	0x1fb0, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fb7,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fc7,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fd7,</div><div class='add'>+	0x1fe0, 0x1fe7,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ff7,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2170, 0x217f,</div><div class='add'>+	0x2184, 0x2184,</div><div class='add'>+	0x24d0, 0x24e9,</div><div class='add'>+	0x2c30, 0x2c5f,</div><div class='add'>+	0x2c61, 0x2c61,</div><div class='add'>+	0x2c65, 0x2c66,</div><div class='add'>+	0x2c68, 0x2c68,</div><div class='add'>+	0x2c6a, 0x2c6a,</div><div class='add'>+	0x2c6c, 0x2c6c,</div><div class='add'>+	0x2c73, 0x2c73,</div><div class='add'>+	0x2c76, 0x2c76,</div><div class='add'>+	0x2c81, 0x2c81,</div><div class='add'>+	0x2c83, 0x2c83,</div><div class='add'>+	0x2c85, 0x2c85,</div><div class='add'>+	0x2c87, 0x2c87,</div><div class='add'>+	0x2c89, 0x2c89,</div><div class='add'>+	0x2c8b, 0x2c8b,</div><div class='add'>+	0x2c8d, 0x2c8d,</div><div class='add'>+	0x2c8f, 0x2c8f,</div><div class='add'>+	0x2c91, 0x2c91,</div><div class='add'>+	0x2c93, 0x2c93,</div><div class='add'>+	0x2c95, 0x2c95,</div><div class='add'>+	0x2c97, 0x2c97,</div><div class='add'>+	0x2c99, 0x2c99,</div><div class='add'>+	0x2c9b, 0x2c9b,</div><div class='add'>+	0x2c9d, 0x2c9d,</div><div class='add'>+	0x2c9f, 0x2c9f,</div><div class='add'>+	0x2ca1, 0x2ca1,</div><div class='add'>+	0x2ca3, 0x2ca3,</div><div class='add'>+	0x2ca5, 0x2ca5,</div><div class='add'>+	0x2ca7, 0x2ca7,</div><div class='add'>+	0x2ca9, 0x2ca9,</div><div class='add'>+	0x2cab, 0x2cab,</div><div class='add'>+	0x2cad, 0x2cad,</div><div class='add'>+	0x2caf, 0x2caf,</div><div class='add'>+	0x2cb1, 0x2cb1,</div><div class='add'>+	0x2cb3, 0x2cb3,</div><div class='add'>+	0x2cb5, 0x2cb5,</div><div class='add'>+	0x2cb7, 0x2cb7,</div><div class='add'>+	0x2cb9, 0x2cb9,</div><div class='add'>+	0x2cbb, 0x2cbb,</div><div class='add'>+	0x2cbd, 0x2cbd,</div><div class='add'>+	0x2cbf, 0x2cbf,</div><div class='add'>+	0x2cc1, 0x2cc1,</div><div class='add'>+	0x2cc3, 0x2cc3,</div><div class='add'>+	0x2cc5, 0x2cc5,</div><div class='add'>+	0x2cc7, 0x2cc7,</div><div class='add'>+	0x2cc9, 0x2cc9,</div><div class='add'>+	0x2ccb, 0x2ccb,</div><div class='add'>+	0x2ccd, 0x2ccd,</div><div class='add'>+	0x2ccf, 0x2ccf,</div><div class='add'>+	0x2cd1, 0x2cd1,</div><div class='add'>+	0x2cd3, 0x2cd3,</div><div class='add'>+	0x2cd5, 0x2cd5,</div><div class='add'>+	0x2cd7, 0x2cd7,</div><div class='add'>+	0x2cd9, 0x2cd9,</div><div class='add'>+	0x2cdb, 0x2cdb,</div><div class='add'>+	0x2cdd, 0x2cdd,</div><div class='add'>+	0x2cdf, 0x2cdf,</div><div class='add'>+	0x2ce1, 0x2ce1,</div><div class='add'>+	0x2ce3, 0x2ce3,</div><div class='add'>+	0x2cec, 0x2cec,</div><div class='add'>+	0x2cee, 0x2cee,</div><div class='add'>+	0x2cf3, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0xa641, 0xa641,</div><div class='add'>+	0xa643, 0xa643,</div><div class='add'>+	0xa645, 0xa645,</div><div class='add'>+	0xa647, 0xa647,</div><div class='add'>+	0xa649, 0xa649,</div><div class='add'>+	0xa64b, 0xa64b,</div><div class='add'>+	0xa64d, 0xa64d,</div><div class='add'>+	0xa64f, 0xa64f,</div><div class='add'>+	0xa651, 0xa651,</div><div class='add'>+	0xa653, 0xa653,</div><div class='add'>+	0xa655, 0xa655,</div><div class='add'>+	0xa657, 0xa657,</div><div class='add'>+	0xa659, 0xa659,</div><div class='add'>+	0xa65b, 0xa65b,</div><div class='add'>+	0xa65d, 0xa65d,</div><div class='add'>+	0xa65f, 0xa65f,</div><div class='add'>+	0xa661, 0xa661,</div><div class='add'>+	0xa663, 0xa663,</div><div class='add'>+	0xa665, 0xa665,</div><div class='add'>+	0xa667, 0xa667,</div><div class='add'>+	0xa669, 0xa669,</div><div class='add'>+	0xa66b, 0xa66b,</div><div class='add'>+	0xa66d, 0xa66d,</div><div class='add'>+	0xa681, 0xa681,</div><div class='add'>+	0xa683, 0xa683,</div><div class='add'>+	0xa685, 0xa685,</div><div class='add'>+	0xa687, 0xa687,</div><div class='add'>+	0xa689, 0xa689,</div><div class='add'>+	0xa68b, 0xa68b,</div><div class='add'>+	0xa68d, 0xa68d,</div><div class='add'>+	0xa68f, 0xa68f,</div><div class='add'>+	0xa691, 0xa691,</div><div class='add'>+	0xa693, 0xa693,</div><div class='add'>+	0xa695, 0xa695,</div><div class='add'>+	0xa697, 0xa697,</div><div class='add'>+	0xa699, 0xa699,</div><div class='add'>+	0xa69b, 0xa69b,</div><div class='add'>+	0xa723, 0xa723,</div><div class='add'>+	0xa725, 0xa725,</div><div class='add'>+	0xa727, 0xa727,</div><div class='add'>+	0xa729, 0xa729,</div><div class='add'>+	0xa72b, 0xa72b,</div><div class='add'>+	0xa72d, 0xa72d,</div><div class='add'>+	0xa72f, 0xa72f,</div><div class='add'>+	0xa733, 0xa733,</div><div class='add'>+	0xa735, 0xa735,</div><div class='add'>+	0xa737, 0xa737,</div><div class='add'>+	0xa739, 0xa739,</div><div class='add'>+	0xa73b, 0xa73b,</div><div class='add'>+	0xa73d, 0xa73d,</div><div class='add'>+	0xa73f, 0xa73f,</div><div class='add'>+	0xa741, 0xa741,</div><div class='add'>+	0xa743, 0xa743,</div><div class='add'>+	0xa745, 0xa745,</div><div class='add'>+	0xa747, 0xa747,</div><div class='add'>+	0xa749, 0xa749,</div><div class='add'>+	0xa74b, 0xa74b,</div><div class='add'>+	0xa74d, 0xa74d,</div><div class='add'>+	0xa74f, 0xa74f,</div><div class='add'>+	0xa751, 0xa751,</div><div class='add'>+	0xa753, 0xa753,</div><div class='add'>+	0xa755, 0xa755,</div><div class='add'>+	0xa757, 0xa757,</div><div class='add'>+	0xa759, 0xa759,</div><div class='add'>+	0xa75b, 0xa75b,</div><div class='add'>+	0xa75d, 0xa75d,</div><div class='add'>+	0xa75f, 0xa75f,</div><div class='add'>+	0xa761, 0xa761,</div><div class='add'>+	0xa763, 0xa763,</div><div class='add'>+	0xa765, 0xa765,</div><div class='add'>+	0xa767, 0xa767,</div><div class='add'>+	0xa769, 0xa769,</div><div class='add'>+	0xa76b, 0xa76b,</div><div class='add'>+	0xa76d, 0xa76d,</div><div class='add'>+	0xa76f, 0xa76f,</div><div class='add'>+	0xa77a, 0xa77a,</div><div class='add'>+	0xa77c, 0xa77c,</div><div class='add'>+	0xa77f, 0xa77f,</div><div class='add'>+	0xa781, 0xa781,</div><div class='add'>+	0xa783, 0xa783,</div><div class='add'>+	0xa785, 0xa785,</div><div class='add'>+	0xa787, 0xa787,</div><div class='add'>+	0xa78c, 0xa78c,</div><div class='add'>+	0xa791, 0xa791,</div><div class='add'>+	0xa793, 0xa794,</div><div class='add'>+	0xa797, 0xa797,</div><div class='add'>+	0xa799, 0xa799,</div><div class='add'>+	0xa79b, 0xa79b,</div><div class='add'>+	0xa79d, 0xa79d,</div><div class='add'>+	0xa79f, 0xa79f,</div><div class='add'>+	0xa7a1, 0xa7a1,</div><div class='add'>+	0xa7a3, 0xa7a3,</div><div class='add'>+	0xa7a5, 0xa7a5,</div><div class='add'>+	0xa7a7, 0xa7a7,</div><div class='add'>+	0xa7a9, 0xa7a9,</div><div class='add'>+	0xa7b5, 0xa7b5,</div><div class='add'>+	0xa7b7, 0xa7b7,</div><div class='add'>+	0xa7b9, 0xa7b9,</div><div class='add'>+	0xa7bb, 0xa7bb,</div><div class='add'>+	0xa7bd, 0xa7bd,</div><div class='add'>+	0xa7bf, 0xa7bf,</div><div class='add'>+	0xa7c1, 0xa7c1,</div><div class='add'>+	0xa7c3, 0xa7c3,</div><div class='add'>+	0xa7c8, 0xa7c8,</div><div class='add'>+	0xa7ca, 0xa7ca,</div><div class='add'>+	0xa7d1, 0xa7d1,</div><div class='add'>+	0xa7d7, 0xa7d7,</div><div class='add'>+	0xa7d9, 0xa7d9,</div><div class='add'>+	0xa7f6, 0xa7f6,</div><div class='add'>+	0xab53, 0xab53,</div><div class='add'>+	0xab70, 0xabbf,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0x10428, 0x1044f,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x118c0, 0x118df,</div><div class='add'>+	0x16e60, 0x16e7f,</div><div class='add'>+	0x1e922, 0x1e943,</div><div class='add'>+}; /* CR_Changes_When_Titlecased */</div><div class='add'>+</div><div class='add'>+/* 'Changes_When_Casefolded': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Changes_When_Casefolded[] = {</div><div class='add'>+	622,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00df,</div><div class='add'>+	0x0100, 0x0100,</div><div class='add'>+	0x0102, 0x0102,</div><div class='add'>+	0x0104, 0x0104,</div><div class='add'>+	0x0106, 0x0106,</div><div class='add'>+	0x0108, 0x0108,</div><div class='add'>+	0x010a, 0x010a,</div><div class='add'>+	0x010c, 0x010c,</div><div class='add'>+	0x010e, 0x010e,</div><div class='add'>+	0x0110, 0x0110,</div><div class='add'>+	0x0112, 0x0112,</div><div class='add'>+	0x0114, 0x0114,</div><div class='add'>+	0x0116, 0x0116,</div><div class='add'>+	0x0118, 0x0118,</div><div class='add'>+	0x011a, 0x011a,</div><div class='add'>+	0x011c, 0x011c,</div><div class='add'>+	0x011e, 0x011e,</div><div class='add'>+	0x0120, 0x0120,</div><div class='add'>+	0x0122, 0x0122,</div><div class='add'>+	0x0124, 0x0124,</div><div class='add'>+	0x0126, 0x0126,</div><div class='add'>+	0x0128, 0x0128,</div><div class='add'>+	0x012a, 0x012a,</div><div class='add'>+	0x012c, 0x012c,</div><div class='add'>+	0x012e, 0x012e,</div><div class='add'>+	0x0130, 0x0130,</div><div class='add'>+	0x0132, 0x0132,</div><div class='add'>+	0x0134, 0x0134,</div><div class='add'>+	0x0136, 0x0136,</div><div class='add'>+	0x0139, 0x0139,</div><div class='add'>+	0x013b, 0x013b,</div><div class='add'>+	0x013d, 0x013d,</div><div class='add'>+	0x013f, 0x013f,</div><div class='add'>+	0x0141, 0x0141,</div><div class='add'>+	0x0143, 0x0143,</div><div class='add'>+	0x0145, 0x0145,</div><div class='add'>+	0x0147, 0x0147,</div><div class='add'>+	0x0149, 0x014a,</div><div class='add'>+	0x014c, 0x014c,</div><div class='add'>+	0x014e, 0x014e,</div><div class='add'>+	0x0150, 0x0150,</div><div class='add'>+	0x0152, 0x0152,</div><div class='add'>+	0x0154, 0x0154,</div><div class='add'>+	0x0156, 0x0156,</div><div class='add'>+	0x0158, 0x0158,</div><div class='add'>+	0x015a, 0x015a,</div><div class='add'>+	0x015c, 0x015c,</div><div class='add'>+	0x015e, 0x015e,</div><div class='add'>+	0x0160, 0x0160,</div><div class='add'>+	0x0162, 0x0162,</div><div class='add'>+	0x0164, 0x0164,</div><div class='add'>+	0x0166, 0x0166,</div><div class='add'>+	0x0168, 0x0168,</div><div class='add'>+	0x016a, 0x016a,</div><div class='add'>+	0x016c, 0x016c,</div><div class='add'>+	0x016e, 0x016e,</div><div class='add'>+	0x0170, 0x0170,</div><div class='add'>+	0x0172, 0x0172,</div><div class='add'>+	0x0174, 0x0174,</div><div class='add'>+	0x0176, 0x0176,</div><div class='add'>+	0x0178, 0x0179,</div><div class='add'>+	0x017b, 0x017b,</div><div class='add'>+	0x017d, 0x017d,</div><div class='add'>+	0x017f, 0x017f,</div><div class='add'>+	0x0181, 0x0182,</div><div class='add'>+	0x0184, 0x0184,</div><div class='add'>+	0x0186, 0x0187,</div><div class='add'>+	0x0189, 0x018b,</div><div class='add'>+	0x018e, 0x0191,</div><div class='add'>+	0x0193, 0x0194,</div><div class='add'>+	0x0196, 0x0198,</div><div class='add'>+	0x019c, 0x019d,</div><div class='add'>+	0x019f, 0x01a0,</div><div class='add'>+	0x01a2, 0x01a2,</div><div class='add'>+	0x01a4, 0x01a4,</div><div class='add'>+	0x01a6, 0x01a7,</div><div class='add'>+	0x01a9, 0x01a9,</div><div class='add'>+	0x01ac, 0x01ac,</div><div class='add'>+	0x01ae, 0x01af,</div><div class='add'>+	0x01b1, 0x01b3,</div><div class='add'>+	0x01b5, 0x01b5,</div><div class='add'>+	0x01b7, 0x01b8,</div><div class='add'>+	0x01bc, 0x01bc,</div><div class='add'>+	0x01c4, 0x01c5,</div><div class='add'>+	0x01c7, 0x01c8,</div><div class='add'>+	0x01ca, 0x01cb,</div><div class='add'>+	0x01cd, 0x01cd,</div><div class='add'>+	0x01cf, 0x01cf,</div><div class='add'>+	0x01d1, 0x01d1,</div><div class='add'>+	0x01d3, 0x01d3,</div><div class='add'>+	0x01d5, 0x01d5,</div><div class='add'>+	0x01d7, 0x01d7,</div><div class='add'>+	0x01d9, 0x01d9,</div><div class='add'>+	0x01db, 0x01db,</div><div class='add'>+	0x01de, 0x01de,</div><div class='add'>+	0x01e0, 0x01e0,</div><div class='add'>+	0x01e2, 0x01e2,</div><div class='add'>+	0x01e4, 0x01e4,</div><div class='add'>+	0x01e6, 0x01e6,</div><div class='add'>+	0x01e8, 0x01e8,</div><div class='add'>+	0x01ea, 0x01ea,</div><div class='add'>+	0x01ec, 0x01ec,</div><div class='add'>+	0x01ee, 0x01ee,</div><div class='add'>+	0x01f1, 0x01f2,</div><div class='add'>+	0x01f4, 0x01f4,</div><div class='add'>+	0x01f6, 0x01f8,</div><div class='add'>+	0x01fa, 0x01fa,</div><div class='add'>+	0x01fc, 0x01fc,</div><div class='add'>+	0x01fe, 0x01fe,</div><div class='add'>+	0x0200, 0x0200,</div><div class='add'>+	0x0202, 0x0202,</div><div class='add'>+	0x0204, 0x0204,</div><div class='add'>+	0x0206, 0x0206,</div><div class='add'>+	0x0208, 0x0208,</div><div class='add'>+	0x020a, 0x020a,</div><div class='add'>+	0x020c, 0x020c,</div><div class='add'>+	0x020e, 0x020e,</div><div class='add'>+	0x0210, 0x0210,</div><div class='add'>+	0x0212, 0x0212,</div><div class='add'>+	0x0214, 0x0214,</div><div class='add'>+	0x0216, 0x0216,</div><div class='add'>+	0x0218, 0x0218,</div><div class='add'>+	0x021a, 0x021a,</div><div class='add'>+	0x021c, 0x021c,</div><div class='add'>+	0x021e, 0x021e,</div><div class='add'>+	0x0220, 0x0220,</div><div class='add'>+	0x0222, 0x0222,</div><div class='add'>+	0x0224, 0x0224,</div><div class='add'>+	0x0226, 0x0226,</div><div class='add'>+	0x0228, 0x0228,</div><div class='add'>+	0x022a, 0x022a,</div><div class='add'>+	0x022c, 0x022c,</div><div class='add'>+	0x022e, 0x022e,</div><div class='add'>+	0x0230, 0x0230,</div><div class='add'>+	0x0232, 0x0232,</div><div class='add'>+	0x023a, 0x023b,</div><div class='add'>+	0x023d, 0x023e,</div><div class='add'>+	0x0241, 0x0241,</div><div class='add'>+	0x0243, 0x0246,</div><div class='add'>+	0x0248, 0x0248,</div><div class='add'>+	0x024a, 0x024a,</div><div class='add'>+	0x024c, 0x024c,</div><div class='add'>+	0x024e, 0x024e,</div><div class='add'>+	0x0345, 0x0345,</div><div class='add'>+	0x0370, 0x0370,</div><div class='add'>+	0x0372, 0x0372,</div><div class='add'>+	0x0376, 0x0376,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x038f,</div><div class='add'>+	0x0391, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ab,</div><div class='add'>+	0x03c2, 0x03c2,</div><div class='add'>+	0x03cf, 0x03d1,</div><div class='add'>+	0x03d5, 0x03d6,</div><div class='add'>+	0x03d8, 0x03d8,</div><div class='add'>+	0x03da, 0x03da,</div><div class='add'>+	0x03dc, 0x03dc,</div><div class='add'>+	0x03de, 0x03de,</div><div class='add'>+	0x03e0, 0x03e0,</div><div class='add'>+	0x03e2, 0x03e2,</div><div class='add'>+	0x03e4, 0x03e4,</div><div class='add'>+	0x03e6, 0x03e6,</div><div class='add'>+	0x03e8, 0x03e8,</div><div class='add'>+	0x03ea, 0x03ea,</div><div class='add'>+	0x03ec, 0x03ec,</div><div class='add'>+	0x03ee, 0x03ee,</div><div class='add'>+	0x03f0, 0x03f1,</div><div class='add'>+	0x03f4, 0x03f5,</div><div class='add'>+	0x03f7, 0x03f7,</div><div class='add'>+	0x03f9, 0x03fa,</div><div class='add'>+	0x03fd, 0x042f,</div><div class='add'>+	0x0460, 0x0460,</div><div class='add'>+	0x0462, 0x0462,</div><div class='add'>+	0x0464, 0x0464,</div><div class='add'>+	0x0466, 0x0466,</div><div class='add'>+	0x0468, 0x0468,</div><div class='add'>+	0x046a, 0x046a,</div><div class='add'>+	0x046c, 0x046c,</div><div class='add'>+	0x046e, 0x046e,</div><div class='add'>+	0x0470, 0x0470,</div><div class='add'>+	0x0472, 0x0472,</div><div class='add'>+	0x0474, 0x0474,</div><div class='add'>+	0x0476, 0x0476,</div><div class='add'>+	0x0478, 0x0478,</div><div class='add'>+	0x047a, 0x047a,</div><div class='add'>+	0x047c, 0x047c,</div><div class='add'>+	0x047e, 0x047e,</div><div class='add'>+	0x0480, 0x0480,</div><div class='add'>+	0x048a, 0x048a,</div><div class='add'>+	0x048c, 0x048c,</div><div class='add'>+	0x048e, 0x048e,</div><div class='add'>+	0x0490, 0x0490,</div><div class='add'>+	0x0492, 0x0492,</div><div class='add'>+	0x0494, 0x0494,</div><div class='add'>+	0x0496, 0x0496,</div><div class='add'>+	0x0498, 0x0498,</div><div class='add'>+	0x049a, 0x049a,</div><div class='add'>+	0x049c, 0x049c,</div><div class='add'>+	0x049e, 0x049e,</div><div class='add'>+	0x04a0, 0x04a0,</div><div class='add'>+	0x04a2, 0x04a2,</div><div class='add'>+	0x04a4, 0x04a4,</div><div class='add'>+	0x04a6, 0x04a6,</div><div class='add'>+	0x04a8, 0x04a8,</div><div class='add'>+	0x04aa, 0x04aa,</div><div class='add'>+	0x04ac, 0x04ac,</div><div class='add'>+	0x04ae, 0x04ae,</div><div class='add'>+	0x04b0, 0x04b0,</div><div class='add'>+	0x04b2, 0x04b2,</div><div class='add'>+	0x04b4, 0x04b4,</div><div class='add'>+	0x04b6, 0x04b6,</div><div class='add'>+	0x04b8, 0x04b8,</div><div class='add'>+	0x04ba, 0x04ba,</div><div class='add'>+	0x04bc, 0x04bc,</div><div class='add'>+	0x04be, 0x04be,</div><div class='add'>+	0x04c0, 0x04c1,</div><div class='add'>+	0x04c3, 0x04c3,</div><div class='add'>+	0x04c5, 0x04c5,</div><div class='add'>+	0x04c7, 0x04c7,</div><div class='add'>+	0x04c9, 0x04c9,</div><div class='add'>+	0x04cb, 0x04cb,</div><div class='add'>+	0x04cd, 0x04cd,</div><div class='add'>+	0x04d0, 0x04d0,</div><div class='add'>+	0x04d2, 0x04d2,</div><div class='add'>+	0x04d4, 0x04d4,</div><div class='add'>+	0x04d6, 0x04d6,</div><div class='add'>+	0x04d8, 0x04d8,</div><div class='add'>+	0x04da, 0x04da,</div><div class='add'>+	0x04dc, 0x04dc,</div><div class='add'>+	0x04de, 0x04de,</div><div class='add'>+	0x04e0, 0x04e0,</div><div class='add'>+	0x04e2, 0x04e2,</div><div class='add'>+	0x04e4, 0x04e4,</div><div class='add'>+	0x04e6, 0x04e6,</div><div class='add'>+	0x04e8, 0x04e8,</div><div class='add'>+	0x04ea, 0x04ea,</div><div class='add'>+	0x04ec, 0x04ec,</div><div class='add'>+	0x04ee, 0x04ee,</div><div class='add'>+	0x04f0, 0x04f0,</div><div class='add'>+	0x04f2, 0x04f2,</div><div class='add'>+	0x04f4, 0x04f4,</div><div class='add'>+	0x04f6, 0x04f6,</div><div class='add'>+	0x04f8, 0x04f8,</div><div class='add'>+	0x04fa, 0x04fa,</div><div class='add'>+	0x04fc, 0x04fc,</div><div class='add'>+	0x04fe, 0x04fe,</div><div class='add'>+	0x0500, 0x0500,</div><div class='add'>+	0x0502, 0x0502,</div><div class='add'>+	0x0504, 0x0504,</div><div class='add'>+	0x0506, 0x0506,</div><div class='add'>+	0x0508, 0x0508,</div><div class='add'>+	0x050a, 0x050a,</div><div class='add'>+	0x050c, 0x050c,</div><div class='add'>+	0x050e, 0x050e,</div><div class='add'>+	0x0510, 0x0510,</div><div class='add'>+	0x0512, 0x0512,</div><div class='add'>+	0x0514, 0x0514,</div><div class='add'>+	0x0516, 0x0516,</div><div class='add'>+	0x0518, 0x0518,</div><div class='add'>+	0x051a, 0x051a,</div><div class='add'>+	0x051c, 0x051c,</div><div class='add'>+	0x051e, 0x051e,</div><div class='add'>+	0x0520, 0x0520,</div><div class='add'>+	0x0522, 0x0522,</div><div class='add'>+	0x0524, 0x0524,</div><div class='add'>+	0x0526, 0x0526,</div><div class='add'>+	0x0528, 0x0528,</div><div class='add'>+	0x052a, 0x052a,</div><div class='add'>+	0x052c, 0x052c,</div><div class='add'>+	0x052e, 0x052e,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0587, 0x0587,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1e00, 0x1e00,</div><div class='add'>+	0x1e02, 0x1e02,</div><div class='add'>+	0x1e04, 0x1e04,</div><div class='add'>+	0x1e06, 0x1e06,</div><div class='add'>+	0x1e08, 0x1e08,</div><div class='add'>+	0x1e0a, 0x1e0a,</div><div class='add'>+	0x1e0c, 0x1e0c,</div><div class='add'>+	0x1e0e, 0x1e0e,</div><div class='add'>+	0x1e10, 0x1e10,</div><div class='add'>+	0x1e12, 0x1e12,</div><div class='add'>+	0x1e14, 0x1e14,</div><div class='add'>+	0x1e16, 0x1e16,</div><div class='add'>+	0x1e18, 0x1e18,</div><div class='add'>+	0x1e1a, 0x1e1a,</div><div class='add'>+	0x1e1c, 0x1e1c,</div><div class='add'>+	0x1e1e, 0x1e1e,</div><div class='add'>+	0x1e20, 0x1e20,</div><div class='add'>+	0x1e22, 0x1e22,</div><div class='add'>+	0x1e24, 0x1e24,</div><div class='add'>+	0x1e26, 0x1e26,</div><div class='add'>+	0x1e28, 0x1e28,</div><div class='add'>+	0x1e2a, 0x1e2a,</div><div class='add'>+	0x1e2c, 0x1e2c,</div><div class='add'>+	0x1e2e, 0x1e2e,</div><div class='add'>+	0x1e30, 0x1e30,</div><div class='add'>+	0x1e32, 0x1e32,</div><div class='add'>+	0x1e34, 0x1e34,</div><div class='add'>+	0x1e36, 0x1e36,</div><div class='add'>+	0x1e38, 0x1e38,</div><div class='add'>+	0x1e3a, 0x1e3a,</div><div class='add'>+	0x1e3c, 0x1e3c,</div><div class='add'>+	0x1e3e, 0x1e3e,</div><div class='add'>+	0x1e40, 0x1e40,</div><div class='add'>+	0x1e42, 0x1e42,</div><div class='add'>+	0x1e44, 0x1e44,</div><div class='add'>+	0x1e46, 0x1e46,</div><div class='add'>+	0x1e48, 0x1e48,</div><div class='add'>+	0x1e4a, 0x1e4a,</div><div class='add'>+	0x1e4c, 0x1e4c,</div><div class='add'>+	0x1e4e, 0x1e4e,</div><div class='add'>+	0x1e50, 0x1e50,</div><div class='add'>+	0x1e52, 0x1e52,</div><div class='add'>+	0x1e54, 0x1e54,</div><div class='add'>+	0x1e56, 0x1e56,</div><div class='add'>+	0x1e58, 0x1e58,</div><div class='add'>+	0x1e5a, 0x1e5a,</div><div class='add'>+	0x1e5c, 0x1e5c,</div><div class='add'>+	0x1e5e, 0x1e5e,</div><div class='add'>+	0x1e60, 0x1e60,</div><div class='add'>+	0x1e62, 0x1e62,</div><div class='add'>+	0x1e64, 0x1e64,</div><div class='add'>+	0x1e66, 0x1e66,</div><div class='add'>+	0x1e68, 0x1e68,</div><div class='add'>+	0x1e6a, 0x1e6a,</div><div class='add'>+	0x1e6c, 0x1e6c,</div><div class='add'>+	0x1e6e, 0x1e6e,</div><div class='add'>+	0x1e70, 0x1e70,</div><div class='add'>+	0x1e72, 0x1e72,</div><div class='add'>+	0x1e74, 0x1e74,</div><div class='add'>+	0x1e76, 0x1e76,</div><div class='add'>+	0x1e78, 0x1e78,</div><div class='add'>+	0x1e7a, 0x1e7a,</div><div class='add'>+	0x1e7c, 0x1e7c,</div><div class='add'>+	0x1e7e, 0x1e7e,</div><div class='add'>+	0x1e80, 0x1e80,</div><div class='add'>+	0x1e82, 0x1e82,</div><div class='add'>+	0x1e84, 0x1e84,</div><div class='add'>+	0x1e86, 0x1e86,</div><div class='add'>+	0x1e88, 0x1e88,</div><div class='add'>+	0x1e8a, 0x1e8a,</div><div class='add'>+	0x1e8c, 0x1e8c,</div><div class='add'>+	0x1e8e, 0x1e8e,</div><div class='add'>+	0x1e90, 0x1e90,</div><div class='add'>+	0x1e92, 0x1e92,</div><div class='add'>+	0x1e94, 0x1e94,</div><div class='add'>+	0x1e9a, 0x1e9b,</div><div class='add'>+	0x1e9e, 0x1e9e,</div><div class='add'>+	0x1ea0, 0x1ea0,</div><div class='add'>+	0x1ea2, 0x1ea2,</div><div class='add'>+	0x1ea4, 0x1ea4,</div><div class='add'>+	0x1ea6, 0x1ea6,</div><div class='add'>+	0x1ea8, 0x1ea8,</div><div class='add'>+	0x1eaa, 0x1eaa,</div><div class='add'>+	0x1eac, 0x1eac,</div><div class='add'>+	0x1eae, 0x1eae,</div><div class='add'>+	0x1eb0, 0x1eb0,</div><div class='add'>+	0x1eb2, 0x1eb2,</div><div class='add'>+	0x1eb4, 0x1eb4,</div><div class='add'>+	0x1eb6, 0x1eb6,</div><div class='add'>+	0x1eb8, 0x1eb8,</div><div class='add'>+	0x1eba, 0x1eba,</div><div class='add'>+	0x1ebc, 0x1ebc,</div><div class='add'>+	0x1ebe, 0x1ebe,</div><div class='add'>+	0x1ec0, 0x1ec0,</div><div class='add'>+	0x1ec2, 0x1ec2,</div><div class='add'>+	0x1ec4, 0x1ec4,</div><div class='add'>+	0x1ec6, 0x1ec6,</div><div class='add'>+	0x1ec8, 0x1ec8,</div><div class='add'>+	0x1eca, 0x1eca,</div><div class='add'>+	0x1ecc, 0x1ecc,</div><div class='add'>+	0x1ece, 0x1ece,</div><div class='add'>+	0x1ed0, 0x1ed0,</div><div class='add'>+	0x1ed2, 0x1ed2,</div><div class='add'>+	0x1ed4, 0x1ed4,</div><div class='add'>+	0x1ed6, 0x1ed6,</div><div class='add'>+	0x1ed8, 0x1ed8,</div><div class='add'>+	0x1eda, 0x1eda,</div><div class='add'>+	0x1edc, 0x1edc,</div><div class='add'>+	0x1ede, 0x1ede,</div><div class='add'>+	0x1ee0, 0x1ee0,</div><div class='add'>+	0x1ee2, 0x1ee2,</div><div class='add'>+	0x1ee4, 0x1ee4,</div><div class='add'>+	0x1ee6, 0x1ee6,</div><div class='add'>+	0x1ee8, 0x1ee8,</div><div class='add'>+	0x1eea, 0x1eea,</div><div class='add'>+	0x1eec, 0x1eec,</div><div class='add'>+	0x1eee, 0x1eee,</div><div class='add'>+	0x1ef0, 0x1ef0,</div><div class='add'>+	0x1ef2, 0x1ef2,</div><div class='add'>+	0x1ef4, 0x1ef4,</div><div class='add'>+	0x1ef6, 0x1ef6,</div><div class='add'>+	0x1ef8, 0x1ef8,</div><div class='add'>+	0x1efa, 0x1efa,</div><div class='add'>+	0x1efc, 0x1efc,</div><div class='add'>+	0x1efe, 0x1efe,</div><div class='add'>+	0x1f08, 0x1f0f,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f28, 0x1f2f,</div><div class='add'>+	0x1f38, 0x1f3f,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f5f,</div><div class='add'>+	0x1f68, 0x1f6f,</div><div class='add'>+	0x1f80, 0x1faf,</div><div class='add'>+	0x1fb2, 0x1fb4,</div><div class='add'>+	0x1fb7, 0x1fbc,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc7, 0x1fcc,</div><div class='add'>+	0x1fd8, 0x1fdb,</div><div class='add'>+	0x1fe8, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff7, 0x1ffc,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x212a, 0x212b,</div><div class='add'>+	0x2132, 0x2132,</div><div class='add'>+	0x2160, 0x216f,</div><div class='add'>+	0x2183, 0x2183,</div><div class='add'>+	0x24b6, 0x24cf,</div><div class='add'>+	0x2c00, 0x2c2f,</div><div class='add'>+	0x2c60, 0x2c60,</div><div class='add'>+	0x2c62, 0x2c64,</div><div class='add'>+	0x2c67, 0x2c67,</div><div class='add'>+	0x2c69, 0x2c69,</div><div class='add'>+	0x2c6b, 0x2c6b,</div><div class='add'>+	0x2c6d, 0x2c70,</div><div class='add'>+	0x2c72, 0x2c72,</div><div class='add'>+	0x2c75, 0x2c75,</div><div class='add'>+	0x2c7e, 0x2c80,</div><div class='add'>+	0x2c82, 0x2c82,</div><div class='add'>+	0x2c84, 0x2c84,</div><div class='add'>+	0x2c86, 0x2c86,</div><div class='add'>+	0x2c88, 0x2c88,</div><div class='add'>+	0x2c8a, 0x2c8a,</div><div class='add'>+	0x2c8c, 0x2c8c,</div><div class='add'>+	0x2c8e, 0x2c8e,</div><div class='add'>+	0x2c90, 0x2c90,</div><div class='add'>+	0x2c92, 0x2c92,</div><div class='add'>+	0x2c94, 0x2c94,</div><div class='add'>+	0x2c96, 0x2c96,</div><div class='add'>+	0x2c98, 0x2c98,</div><div class='add'>+	0x2c9a, 0x2c9a,</div><div class='add'>+	0x2c9c, 0x2c9c,</div><div class='add'>+	0x2c9e, 0x2c9e,</div><div class='add'>+	0x2ca0, 0x2ca0,</div><div class='add'>+	0x2ca2, 0x2ca2,</div><div class='add'>+	0x2ca4, 0x2ca4,</div><div class='add'>+	0x2ca6, 0x2ca6,</div><div class='add'>+	0x2ca8, 0x2ca8,</div><div class='add'>+	0x2caa, 0x2caa,</div><div class='add'>+	0x2cac, 0x2cac,</div><div class='add'>+	0x2cae, 0x2cae,</div><div class='add'>+	0x2cb0, 0x2cb0,</div><div class='add'>+	0x2cb2, 0x2cb2,</div><div class='add'>+	0x2cb4, 0x2cb4,</div><div class='add'>+	0x2cb6, 0x2cb6,</div><div class='add'>+	0x2cb8, 0x2cb8,</div><div class='add'>+	0x2cba, 0x2cba,</div><div class='add'>+	0x2cbc, 0x2cbc,</div><div class='add'>+	0x2cbe, 0x2cbe,</div><div class='add'>+	0x2cc0, 0x2cc0,</div><div class='add'>+	0x2cc2, 0x2cc2,</div><div class='add'>+	0x2cc4, 0x2cc4,</div><div class='add'>+	0x2cc6, 0x2cc6,</div><div class='add'>+	0x2cc8, 0x2cc8,</div><div class='add'>+	0x2cca, 0x2cca,</div><div class='add'>+	0x2ccc, 0x2ccc,</div><div class='add'>+	0x2cce, 0x2cce,</div><div class='add'>+	0x2cd0, 0x2cd0,</div><div class='add'>+	0x2cd2, 0x2cd2,</div><div class='add'>+	0x2cd4, 0x2cd4,</div><div class='add'>+	0x2cd6, 0x2cd6,</div><div class='add'>+	0x2cd8, 0x2cd8,</div><div class='add'>+	0x2cda, 0x2cda,</div><div class='add'>+	0x2cdc, 0x2cdc,</div><div class='add'>+	0x2cde, 0x2cde,</div><div class='add'>+	0x2ce0, 0x2ce0,</div><div class='add'>+	0x2ce2, 0x2ce2,</div><div class='add'>+	0x2ceb, 0x2ceb,</div><div class='add'>+	0x2ced, 0x2ced,</div><div class='add'>+	0x2cf2, 0x2cf2,</div><div class='add'>+	0xa640, 0xa640,</div><div class='add'>+	0xa642, 0xa642,</div><div class='add'>+	0xa644, 0xa644,</div><div class='add'>+	0xa646, 0xa646,</div><div class='add'>+	0xa648, 0xa648,</div><div class='add'>+	0xa64a, 0xa64a,</div><div class='add'>+	0xa64c, 0xa64c,</div><div class='add'>+	0xa64e, 0xa64e,</div><div class='add'>+	0xa650, 0xa650,</div><div class='add'>+	0xa652, 0xa652,</div><div class='add'>+	0xa654, 0xa654,</div><div class='add'>+	0xa656, 0xa656,</div><div class='add'>+	0xa658, 0xa658,</div><div class='add'>+	0xa65a, 0xa65a,</div><div class='add'>+	0xa65c, 0xa65c,</div><div class='add'>+	0xa65e, 0xa65e,</div><div class='add'>+	0xa660, 0xa660,</div><div class='add'>+	0xa662, 0xa662,</div><div class='add'>+	0xa664, 0xa664,</div><div class='add'>+	0xa666, 0xa666,</div><div class='add'>+	0xa668, 0xa668,</div><div class='add'>+	0xa66a, 0xa66a,</div><div class='add'>+	0xa66c, 0xa66c,</div><div class='add'>+	0xa680, 0xa680,</div><div class='add'>+	0xa682, 0xa682,</div><div class='add'>+	0xa684, 0xa684,</div><div class='add'>+	0xa686, 0xa686,</div><div class='add'>+	0xa688, 0xa688,</div><div class='add'>+	0xa68a, 0xa68a,</div><div class='add'>+	0xa68c, 0xa68c,</div><div class='add'>+	0xa68e, 0xa68e,</div><div class='add'>+	0xa690, 0xa690,</div><div class='add'>+	0xa692, 0xa692,</div><div class='add'>+	0xa694, 0xa694,</div><div class='add'>+	0xa696, 0xa696,</div><div class='add'>+	0xa698, 0xa698,</div><div class='add'>+	0xa69a, 0xa69a,</div><div class='add'>+	0xa722, 0xa722,</div><div class='add'>+	0xa724, 0xa724,</div><div class='add'>+	0xa726, 0xa726,</div><div class='add'>+	0xa728, 0xa728,</div><div class='add'>+	0xa72a, 0xa72a,</div><div class='add'>+	0xa72c, 0xa72c,</div><div class='add'>+	0xa72e, 0xa72e,</div><div class='add'>+	0xa732, 0xa732,</div><div class='add'>+	0xa734, 0xa734,</div><div class='add'>+	0xa736, 0xa736,</div><div class='add'>+	0xa738, 0xa738,</div><div class='add'>+	0xa73a, 0xa73a,</div><div class='add'>+	0xa73c, 0xa73c,</div><div class='add'>+	0xa73e, 0xa73e,</div><div class='add'>+	0xa740, 0xa740,</div><div class='add'>+	0xa742, 0xa742,</div><div class='add'>+	0xa744, 0xa744,</div><div class='add'>+	0xa746, 0xa746,</div><div class='add'>+	0xa748, 0xa748,</div><div class='add'>+	0xa74a, 0xa74a,</div><div class='add'>+	0xa74c, 0xa74c,</div><div class='add'>+	0xa74e, 0xa74e,</div><div class='add'>+	0xa750, 0xa750,</div><div class='add'>+	0xa752, 0xa752,</div><div class='add'>+	0xa754, 0xa754,</div><div class='add'>+	0xa756, 0xa756,</div><div class='add'>+	0xa758, 0xa758,</div><div class='add'>+	0xa75a, 0xa75a,</div><div class='add'>+	0xa75c, 0xa75c,</div><div class='add'>+	0xa75e, 0xa75e,</div><div class='add'>+	0xa760, 0xa760,</div><div class='add'>+	0xa762, 0xa762,</div><div class='add'>+	0xa764, 0xa764,</div><div class='add'>+	0xa766, 0xa766,</div><div class='add'>+	0xa768, 0xa768,</div><div class='add'>+	0xa76a, 0xa76a,</div><div class='add'>+	0xa76c, 0xa76c,</div><div class='add'>+	0xa76e, 0xa76e,</div><div class='add'>+	0xa779, 0xa779,</div><div class='add'>+	0xa77b, 0xa77b,</div><div class='add'>+	0xa77d, 0xa77e,</div><div class='add'>+	0xa780, 0xa780,</div><div class='add'>+	0xa782, 0xa782,</div><div class='add'>+	0xa784, 0xa784,</div><div class='add'>+	0xa786, 0xa786,</div><div class='add'>+	0xa78b, 0xa78b,</div><div class='add'>+	0xa78d, 0xa78d,</div><div class='add'>+	0xa790, 0xa790,</div><div class='add'>+	0xa792, 0xa792,</div><div class='add'>+	0xa796, 0xa796,</div><div class='add'>+	0xa798, 0xa798,</div><div class='add'>+	0xa79a, 0xa79a,</div><div class='add'>+	0xa79c, 0xa79c,</div><div class='add'>+	0xa79e, 0xa79e,</div><div class='add'>+	0xa7a0, 0xa7a0,</div><div class='add'>+	0xa7a2, 0xa7a2,</div><div class='add'>+	0xa7a4, 0xa7a4,</div><div class='add'>+	0xa7a6, 0xa7a6,</div><div class='add'>+	0xa7a8, 0xa7a8,</div><div class='add'>+	0xa7aa, 0xa7ae,</div><div class='add'>+	0xa7b0, 0xa7b4,</div><div class='add'>+	0xa7b6, 0xa7b6,</div><div class='add'>+	0xa7b8, 0xa7b8,</div><div class='add'>+	0xa7ba, 0xa7ba,</div><div class='add'>+	0xa7bc, 0xa7bc,</div><div class='add'>+	0xa7be, 0xa7be,</div><div class='add'>+	0xa7c0, 0xa7c0,</div><div class='add'>+	0xa7c2, 0xa7c2,</div><div class='add'>+	0xa7c4, 0xa7c7,</div><div class='add'>+	0xa7c9, 0xa7c9,</div><div class='add'>+	0xa7d0, 0xa7d0,</div><div class='add'>+	0xa7d6, 0xa7d6,</div><div class='add'>+	0xa7d8, 0xa7d8,</div><div class='add'>+	0xa7f5, 0xa7f5,</div><div class='add'>+	0xab70, 0xabbf,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0x10400, 0x10427,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x118a0, 0x118bf,</div><div class='add'>+	0x16e40, 0x16e5f,</div><div class='add'>+	0x1e900, 0x1e921,</div><div class='add'>+}; /* CR_Changes_When_Casefolded */</div><div class='add'>+</div><div class='add'>+/* 'Changes_When_Casemapped': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Changes_When_Casemapped[] = {</div><div class='add'>+	131,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x0137,</div><div class='add'>+	0x0139, 0x018c,</div><div class='add'>+	0x018e, 0x019a,</div><div class='add'>+	0x019c, 0x01a9,</div><div class='add'>+	0x01ac, 0x01b9,</div><div class='add'>+	0x01bc, 0x01bd,</div><div class='add'>+	0x01bf, 0x01bf,</div><div class='add'>+	0x01c4, 0x0220,</div><div class='add'>+	0x0222, 0x0233,</div><div class='add'>+	0x023a, 0x0254,</div><div class='add'>+	0x0256, 0x0257,</div><div class='add'>+	0x0259, 0x0259,</div><div class='add'>+	0x025b, 0x025c,</div><div class='add'>+	0x0260, 0x0261,</div><div class='add'>+	0x0263, 0x0263,</div><div class='add'>+	0x0265, 0x0266,</div><div class='add'>+	0x0268, 0x026c,</div><div class='add'>+	0x026f, 0x026f,</div><div class='add'>+	0x0271, 0x0272,</div><div class='add'>+	0x0275, 0x0275,</div><div class='add'>+	0x027d, 0x027d,</div><div class='add'>+	0x0280, 0x0280,</div><div class='add'>+	0x0282, 0x0283,</div><div class='add'>+	0x0287, 0x028c,</div><div class='add'>+	0x0292, 0x0292,</div><div class='add'>+	0x029d, 0x029e,</div><div class='add'>+	0x0345, 0x0345,</div><div class='add'>+	0x0370, 0x0373,</div><div class='add'>+	0x0376, 0x0377,</div><div class='add'>+	0x037b, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03d1,</div><div class='add'>+	0x03d5, 0x03f5,</div><div class='add'>+	0x03f7, 0x03fb,</div><div class='add'>+	0x03fd, 0x0481,</div><div class='add'>+	0x048a, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fd, 0x10ff,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1d79, 0x1d79,</div><div class='add'>+	0x1d7d, 0x1d7d,</div><div class='add'>+	0x1d8e, 0x1d8e,</div><div class='add'>+	0x1e00, 0x1e9b,</div><div class='add'>+	0x1e9e, 0x1e9e,</div><div class='add'>+	0x1ea0, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fe0, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffc,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x212a, 0x212b,</div><div class='add'>+	0x2132, 0x2132,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2160, 0x217f,</div><div class='add'>+	0x2183, 0x2184,</div><div class='add'>+	0x24b6, 0x24e9,</div><div class='add'>+	0x2c00, 0x2c70,</div><div class='add'>+	0x2c72, 0x2c73,</div><div class='add'>+	0x2c75, 0x2c76,</div><div class='add'>+	0x2c7e, 0x2ce3,</div><div class='add'>+	0x2ceb, 0x2cee,</div><div class='add'>+	0x2cf2, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0xa640, 0xa66d,</div><div class='add'>+	0xa680, 0xa69b,</div><div class='add'>+	0xa722, 0xa72f,</div><div class='add'>+	0xa732, 0xa76f,</div><div class='add'>+	0xa779, 0xa787,</div><div class='add'>+	0xa78b, 0xa78d,</div><div class='add'>+	0xa790, 0xa794,</div><div class='add'>+	0xa796, 0xa7ae,</div><div class='add'>+	0xa7b0, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d6, 0xa7d9,</div><div class='add'>+	0xa7f5, 0xa7f6,</div><div class='add'>+	0xab53, 0xab53,</div><div class='add'>+	0xab70, 0xabbf,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0x10400, 0x1044f,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x118a0, 0x118df,</div><div class='add'>+	0x16e40, 0x16e7f,</div><div class='add'>+	0x1e900, 0x1e943,</div><div class='add'>+}; /* CR_Changes_When_Casemapped */</div><div class='add'>+</div><div class='add'>+/* 'ID_Start': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_ID_Start[] = {</div><div class='add'>+	659,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x02c1,</div><div class='add'>+	0x02c6, 0x02d1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x02ec, 0x02ec,</div><div class='add'>+	0x02ee, 0x02ee,</div><div class='add'>+	0x0370, 0x0374,</div><div class='add'>+	0x0376, 0x0377,</div><div class='add'>+	0x037a, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03f5,</div><div class='add'>+	0x03f7, 0x0481,</div><div class='add'>+	0x048a, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x0559,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f2,</div><div class='add'>+	0x0620, 0x064a,</div><div class='add'>+	0x066e, 0x066f,</div><div class='add'>+	0x0671, 0x06d3,</div><div class='add'>+	0x06d5, 0x06d5,</div><div class='add'>+	0x06e5, 0x06e6,</div><div class='add'>+	0x06ee, 0x06ef,</div><div class='add'>+	0x06fa, 0x06fc,</div><div class='add'>+	0x06ff, 0x06ff,</div><div class='add'>+	0x0710, 0x0710,</div><div class='add'>+	0x0712, 0x072f,</div><div class='add'>+	0x074d, 0x07a5,</div><div class='add'>+	0x07b1, 0x07b1,</div><div class='add'>+	0x07ca, 0x07ea,</div><div class='add'>+	0x07f4, 0x07f5,</div><div class='add'>+	0x07fa, 0x07fa,</div><div class='add'>+	0x0800, 0x0815,</div><div class='add'>+	0x081a, 0x081a,</div><div class='add'>+	0x0824, 0x0824,</div><div class='add'>+	0x0828, 0x0828,</div><div class='add'>+	0x0840, 0x0858,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x0887,</div><div class='add'>+	0x0889, 0x088e,</div><div class='add'>+	0x08a0, 0x08c9,</div><div class='add'>+	0x0904, 0x0939,</div><div class='add'>+	0x093d, 0x093d,</div><div class='add'>+	0x0950, 0x0950,</div><div class='add'>+	0x0958, 0x0961,</div><div class='add'>+	0x0971, 0x0980,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bd, 0x09bd,</div><div class='add'>+	0x09ce, 0x09ce,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e1,</div><div class='add'>+	0x09f0, 0x09f1,</div><div class='add'>+	0x09fc, 0x09fc,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a72, 0x0a74,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abd, 0x0abd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae1,</div><div class='add'>+	0x0af9, 0x0af9,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3d, 0x0b3d,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b71, 0x0b71,</div><div class='add'>+	0x0b83, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c3d,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c80, 0x0c80,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbd, 0x0cbd,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d04, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d3d,</div><div class='add'>+	0x0d4e, 0x0d4e,</div><div class='add'>+	0x0d54, 0x0d56,</div><div class='add'>+	0x0d5f, 0x0d61,</div><div class='add'>+	0x0d7a, 0x0d7f,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0e01, 0x0e30,</div><div class='add'>+	0x0e32, 0x0e33,</div><div class='add'>+	0x0e40, 0x0e46,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0eb0,</div><div class='add'>+	0x0eb2, 0x0eb3,</div><div class='add'>+	0x0ebd, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f00,</div><div class='add'>+	0x0f40, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f88, 0x0f8c,</div><div class='add'>+	0x1000, 0x102a,</div><div class='add'>+	0x103f, 0x103f,</div><div class='add'>+	0x1050, 0x1055,</div><div class='add'>+	0x105a, 0x105d,</div><div class='add'>+	0x1061, 0x1061,</div><div class='add'>+	0x1065, 0x1066,</div><div class='add'>+	0x106e, 0x1070,</div><div class='add'>+	0x1075, 0x1081,</div><div class='add'>+	0x108e, 0x108e,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fc, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x1380, 0x138f,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1401, 0x166c,</div><div class='add'>+	0x166f, 0x167f,</div><div class='add'>+	0x1681, 0x169a,</div><div class='add'>+	0x16a0, 0x16ea,</div><div class='add'>+	0x16ee, 0x16f8,</div><div class='add'>+	0x1700, 0x1711,</div><div class='add'>+	0x171f, 0x1731,</div><div class='add'>+	0x1740, 0x1751,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1780, 0x17b3,</div><div class='add'>+	0x17d7, 0x17d7,</div><div class='add'>+	0x17dc, 0x17dc,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18a8,</div><div class='add'>+	0x18aa, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1950, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x1a00, 0x1a16,</div><div class='add'>+	0x1a20, 0x1a54,</div><div class='add'>+	0x1aa7, 0x1aa7,</div><div class='add'>+	0x1b05, 0x1b33,</div><div class='add'>+	0x1b45, 0x1b4c,</div><div class='add'>+	0x1b83, 0x1ba0,</div><div class='add'>+	0x1bae, 0x1baf,</div><div class='add'>+	0x1bba, 0x1be5,</div><div class='add'>+	0x1c00, 0x1c23,</div><div class='add'>+	0x1c4d, 0x1c4f,</div><div class='add'>+	0x1c5a, 0x1c7d,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1ce9, 0x1cec,</div><div class='add'>+	0x1cee, 0x1cf3,</div><div class='add'>+	0x1cf5, 0x1cf6,</div><div class='add'>+	0x1cfa, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1dbf,</div><div class='add'>+	0x1e00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fe0, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffc,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2118, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x2139,</div><div class='add'>+	0x213c, 0x213f,</div><div class='add'>+	0x2145, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2160, 0x2188,</div><div class='add'>+	0x2c00, 0x2ce4,</div><div class='add'>+	0x2ceb, 0x2cee,</div><div class='add'>+	0x2cf2, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x3005, 0x3007,</div><div class='add'>+	0x3021, 0x3029,</div><div class='add'>+	0x3031, 0x3035,</div><div class='add'>+	0x3038, 0x303c,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x309b, 0x309f,</div><div class='add'>+	0x30a1, 0x30fa,</div><div class='add'>+	0x30fc, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x31a0, 0x31bf,</div><div class='add'>+	0x31f0, 0x31ff,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0xa48c,</div><div class='add'>+	0xa4d0, 0xa4fd,</div><div class='add'>+	0xa500, 0xa60c,</div><div class='add'>+	0xa610, 0xa61f,</div><div class='add'>+	0xa62a, 0xa62b,</div><div class='add'>+	0xa640, 0xa66e,</div><div class='add'>+	0xa67f, 0xa69d,</div><div class='add'>+	0xa6a0, 0xa6ef,</div><div class='add'>+	0xa717, 0xa71f,</div><div class='add'>+	0xa722, 0xa788,</div><div class='add'>+	0xa78b, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa801,</div><div class='add'>+	0xa803, 0xa805,</div><div class='add'>+	0xa807, 0xa80a,</div><div class='add'>+	0xa80c, 0xa822,</div><div class='add'>+	0xa840, 0xa873,</div><div class='add'>+	0xa882, 0xa8b3,</div><div class='add'>+	0xa8f2, 0xa8f7,</div><div class='add'>+	0xa8fb, 0xa8fb,</div><div class='add'>+	0xa8fd, 0xa8fe,</div><div class='add'>+	0xa90a, 0xa925,</div><div class='add'>+	0xa930, 0xa946,</div><div class='add'>+	0xa960, 0xa97c,</div><div class='add'>+	0xa984, 0xa9b2,</div><div class='add'>+	0xa9cf, 0xa9cf,</div><div class='add'>+	0xa9e0, 0xa9e4,</div><div class='add'>+	0xa9e6, 0xa9ef,</div><div class='add'>+	0xa9fa, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa28,</div><div class='add'>+	0xaa40, 0xaa42,</div><div class='add'>+	0xaa44, 0xaa4b,</div><div class='add'>+	0xaa60, 0xaa76,</div><div class='add'>+	0xaa7a, 0xaa7a,</div><div class='add'>+	0xaa7e, 0xaaaf,</div><div class='add'>+	0xaab1, 0xaab1,</div><div class='add'>+	0xaab5, 0xaab6,</div><div class='add'>+	0xaab9, 0xaabd,</div><div class='add'>+	0xaac0, 0xaac0,</div><div class='add'>+	0xaac2, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadd,</div><div class='add'>+	0xaae0, 0xaaea,</div><div class='add'>+	0xaaf2, 0xaaf4,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab5c, 0xab69,</div><div class='add'>+	0xab70, 0xabe2,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb1d,</div><div class='add'>+	0xfb1f, 0xfb28,</div><div class='add'>+	0xfb2a, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3d,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdfb,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0xff66, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10140, 0x10174,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031f,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x10375,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x103a0, 0x103c3,</div><div class='add'>+	0x103c8, 0x103cf,</div><div class='add'>+	0x103d1, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10860, 0x10876,</div><div class='add'>+	0x10880, 0x1089e,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x10900, 0x10915,</div><div class='add'>+	0x10920, 0x10939,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a00,</div><div class='add'>+	0x10a10, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a60, 0x10a7c,</div><div class='add'>+	0x10a80, 0x10a9c,</div><div class='add'>+	0x10ac0, 0x10ac7,</div><div class='add'>+	0x10ac9, 0x10ae4,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b40, 0x10b55,</div><div class='add'>+	0x10b60, 0x10b72,</div><div class='add'>+	0x10b80, 0x10b91,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10d00, 0x10d23,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10f00, 0x10f1c,</div><div class='add'>+	0x10f27, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f45,</div><div class='add'>+	0x10f70, 0x10f81,</div><div class='add'>+	0x10fb0, 0x10fc4,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11003, 0x11037,</div><div class='add'>+	0x11071, 0x11072,</div><div class='add'>+	0x11075, 0x11075,</div><div class='add'>+	0x11083, 0x110af,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x11103, 0x11126,</div><div class='add'>+	0x11144, 0x11144,</div><div class='add'>+	0x11147, 0x11147,</div><div class='add'>+	0x11150, 0x11172,</div><div class='add'>+	0x11176, 0x11176,</div><div class='add'>+	0x11183, 0x111b2,</div><div class='add'>+	0x111c1, 0x111c4,</div><div class='add'>+	0x111da, 0x111da,</div><div class='add'>+	0x111dc, 0x111dc,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1122b,</div><div class='add'>+	0x1123f, 0x11240,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a8,</div><div class='add'>+	0x112b0, 0x112de,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133d, 0x1133d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x1135d, 0x11361,</div><div class='add'>+	0x11400, 0x11434,</div><div class='add'>+	0x11447, 0x1144a,</div><div class='add'>+	0x1145f, 0x11461,</div><div class='add'>+	0x11480, 0x114af,</div><div class='add'>+	0x114c4, 0x114c5,</div><div class='add'>+	0x114c7, 0x114c7,</div><div class='add'>+	0x11580, 0x115ae,</div><div class='add'>+	0x115d8, 0x115db,</div><div class='add'>+	0x11600, 0x1162f,</div><div class='add'>+	0x11644, 0x11644,</div><div class='add'>+	0x11680, 0x116aa,</div><div class='add'>+	0x116b8, 0x116b8,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x11740, 0x11746,</div><div class='add'>+	0x11800, 0x1182b,</div><div class='add'>+	0x118a0, 0x118df,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x1192f,</div><div class='add'>+	0x1193f, 0x1193f,</div><div class='add'>+	0x11941, 0x11941,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d0,</div><div class='add'>+	0x119e1, 0x119e1,</div><div class='add'>+	0x119e3, 0x119e3,</div><div class='add'>+	0x11a00, 0x11a00,</div><div class='add'>+	0x11a0b, 0x11a32,</div><div class='add'>+	0x11a3a, 0x11a3a,</div><div class='add'>+	0x11a50, 0x11a50,</div><div class='add'>+	0x11a5c, 0x11a89,</div><div class='add'>+	0x11a9d, 0x11a9d,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c2e,</div><div class='add'>+	0x11c40, 0x11c40,</div><div class='add'>+	0x11c72, 0x11c8f,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d30,</div><div class='add'>+	0x11d46, 0x11d46,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d89,</div><div class='add'>+	0x11d98, 0x11d98,</div><div class='add'>+	0x11ee0, 0x11ef2,</div><div class='add'>+	0x11f02, 0x11f02,</div><div class='add'>+	0x11f04, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f33,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff0,</div><div class='add'>+	0x13000, 0x1342f,</div><div class='add'>+	0x13441, 0x13446,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a70, 0x16abe,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16b00, 0x16b2f,</div><div class='add'>+	0x16b40, 0x16b43,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e7f,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f50, 0x16f50,</div><div class='add'>+	0x16f93, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x16fe3, 0x16fe3,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6fa,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d734,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d76e,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d7a8,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7cb,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e137, 0x1e13d,</div><div class='add'>+	0x1e14e, 0x1e14e,</div><div class='add'>+	0x1e290, 0x1e2ad,</div><div class='add'>+	0x1e2c0, 0x1e2eb,</div><div class='add'>+	0x1e4d0, 0x1e4eb,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e900, 0x1e943,</div><div class='add'>+	0x1e94b, 0x1e94b,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+}; /* CR_ID_Start */</div><div class='add'>+</div><div class='add'>+/* 'ID_Continue': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_ID_Continue[] = {</div><div class='add'>+	768,</div><div class='add'>+	0x0030, 0x0039,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x005f, 0x005f,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00b7, 0x00b7,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x02c1,</div><div class='add'>+	0x02c6, 0x02d1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x02ec, 0x02ec,</div><div class='add'>+	0x02ee, 0x02ee,</div><div class='add'>+	0x0300, 0x0374,</div><div class='add'>+	0x0376, 0x0377,</div><div class='add'>+	0x037a, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03f5,</div><div class='add'>+	0x03f7, 0x0481,</div><div class='add'>+	0x0483, 0x0487,</div><div class='add'>+	0x048a, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x0559,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x0591, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c5,</div><div class='add'>+	0x05c7, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f2,</div><div class='add'>+	0x0610, 0x061a,</div><div class='add'>+	0x0620, 0x0669,</div><div class='add'>+	0x066e, 0x06d3,</div><div class='add'>+	0x06d5, 0x06dc,</div><div class='add'>+	0x06df, 0x06e8,</div><div class='add'>+	0x06ea, 0x06fc,</div><div class='add'>+	0x06ff, 0x06ff,</div><div class='add'>+	0x0710, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07f5,</div><div class='add'>+	0x07fa, 0x07fa,</div><div class='add'>+	0x07fd, 0x07fd,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x0887,</div><div class='add'>+	0x0889, 0x088e,</div><div class='add'>+	0x0898, 0x08e1,</div><div class='add'>+	0x08e3, 0x0963,</div><div class='add'>+	0x0966, 0x096f,</div><div class='add'>+	0x0971, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09f1,</div><div class='add'>+	0x09fc, 0x09fc,</div><div class='add'>+	0x09fe, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b6f,</div><div class='add'>+	0x0b71, 0x0b71,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bef,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3c, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c80, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf3,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4e,</div><div class='add'>+	0x0d54, 0x0d57,</div><div class='add'>+	0x0d5f, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0d7a, 0x0d7f,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df3,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e40, 0x0e4e,</div><div class='add'>+	0x0e50, 0x0e59,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f00,</div><div class='add'>+	0x0f18, 0x0f19,</div><div class='add'>+	0x0f20, 0x0f29,</div><div class='add'>+	0x0f35, 0x0f35,</div><div class='add'>+	0x0f37, 0x0f37,</div><div class='add'>+	0x0f39, 0x0f39,</div><div class='add'>+	0x0f3e, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f84,</div><div class='add'>+	0x0f86, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fc6, 0x0fc6,</div><div class='add'>+	0x1000, 0x1049,</div><div class='add'>+	0x1050, 0x109d,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fc, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x135f,</div><div class='add'>+	0x1369, 0x1371,</div><div class='add'>+	0x1380, 0x138f,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1401, 0x166c,</div><div class='add'>+	0x166f, 0x167f,</div><div class='add'>+	0x1681, 0x169a,</div><div class='add'>+	0x16a0, 0x16ea,</div><div class='add'>+	0x16ee, 0x16f8,</div><div class='add'>+	0x1700, 0x1715,</div><div class='add'>+	0x171f, 0x1734,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17d3,</div><div class='add'>+	0x17d7, 0x17d7,</div><div class='add'>+	0x17dc, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x180b, 0x180d,</div><div class='add'>+	0x180f, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1946, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x1a00, 0x1a1b,</div><div class='add'>+	0x1a20, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa7, 0x1aa7,</div><div class='add'>+	0x1ab0, 0x1abd,</div><div class='add'>+	0x1abf, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b4c,</div><div class='add'>+	0x1b50, 0x1b59,</div><div class='add'>+	0x1b6b, 0x1b73,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1c00, 0x1c37,</div><div class='add'>+	0x1c40, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7d,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1cd0, 0x1cd2,</div><div class='add'>+	0x1cd4, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fe0, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffc,</div><div class='add'>+	0x203f, 0x2040,</div><div class='add'>+	0x2054, 0x2054,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20d0, 0x20dc,</div><div class='add'>+	0x20e1, 0x20e1,</div><div class='add'>+	0x20e5, 0x20f0,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2118, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x2139,</div><div class='add'>+	0x213c, 0x213f,</div><div class='add'>+	0x2145, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2160, 0x2188,</div><div class='add'>+	0x2c00, 0x2ce4,</div><div class='add'>+	0x2ceb, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0x3005, 0x3007,</div><div class='add'>+	0x3021, 0x302f,</div><div class='add'>+	0x3031, 0x3035,</div><div class='add'>+	0x3038, 0x303c,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x309f,</div><div class='add'>+	0x30a1, 0x30fa,</div><div class='add'>+	0x30fc, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x31a0, 0x31bf,</div><div class='add'>+	0x31f0, 0x31ff,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0xa48c,</div><div class='add'>+	0xa4d0, 0xa4fd,</div><div class='add'>+	0xa500, 0xa60c,</div><div class='add'>+	0xa610, 0xa62b,</div><div class='add'>+	0xa640, 0xa66f,</div><div class='add'>+	0xa674, 0xa67d,</div><div class='add'>+	0xa67f, 0xa6f1,</div><div class='add'>+	0xa717, 0xa71f,</div><div class='add'>+	0xa722, 0xa788,</div><div class='add'>+	0xa78b, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa827,</div><div class='add'>+	0xa82c, 0xa82c,</div><div class='add'>+	0xa840, 0xa873,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8d0, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8f7,</div><div class='add'>+	0xa8fb, 0xa8fb,</div><div class='add'>+	0xa8fd, 0xa92d,</div><div class='add'>+	0xa930, 0xa953,</div><div class='add'>+	0xa960, 0xa97c,</div><div class='add'>+	0xa980, 0xa9c0,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9e0, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa60, 0xaa76,</div><div class='add'>+	0xaa7a, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadd,</div><div class='add'>+	0xaae0, 0xaaef,</div><div class='add'>+	0xaaf2, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab5c, 0xab69,</div><div class='add'>+	0xab70, 0xabea,</div><div class='add'>+	0xabec, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb28,</div><div class='add'>+	0xfb2a, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3d,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdfb,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfe20, 0xfe2f,</div><div class='add'>+	0xfe33, 0xfe34,</div><div class='add'>+	0xfe4d, 0xfe4f,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xff10, 0xff19,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff3f, 0xff3f,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0xff66, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10140, 0x10174,</div><div class='add'>+	0x101fd, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102e0,</div><div class='add'>+	0x10300, 0x1031f,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x103a0, 0x103c3,</div><div class='add'>+	0x103c8, 0x103cf,</div><div class='add'>+	0x103d1, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10860, 0x10876,</div><div class='add'>+	0x10880, 0x1089e,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x10900, 0x10915,</div><div class='add'>+	0x10920, 0x10939,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a3f,</div><div class='add'>+	0x10a60, 0x10a7c,</div><div class='add'>+	0x10a80, 0x10a9c,</div><div class='add'>+	0x10ac0, 0x10ac7,</div><div class='add'>+	0x10ac9, 0x10ae6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b40, 0x10b55,</div><div class='add'>+	0x10b60, 0x10b72,</div><div class='add'>+	0x10b80, 0x10b91,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10d00, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10eac,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10efd, 0x10f1c,</div><div class='add'>+	0x10f27, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f50,</div><div class='add'>+	0x10f70, 0x10f85,</div><div class='add'>+	0x10fb0, 0x10fc4,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x11046,</div><div class='add'>+	0x11066, 0x11075,</div><div class='add'>+	0x1107f, 0x110ba,</div><div class='add'>+	0x110c2, 0x110c2,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x1113f,</div><div class='add'>+	0x11144, 0x11147,</div><div class='add'>+	0x11150, 0x11173,</div><div class='add'>+	0x11176, 0x11176,</div><div class='add'>+	0x11180, 0x111c4,</div><div class='add'>+	0x111c9, 0x111cc,</div><div class='add'>+	0x111ce, 0x111da,</div><div class='add'>+	0x111dc, 0x111dc,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x11237,</div><div class='add'>+	0x1123e, 0x11241,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a8,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x1144a,</div><div class='add'>+	0x11450, 0x11459,</div><div class='add'>+	0x1145e, 0x11461,</div><div class='add'>+	0x11480, 0x114c5,</div><div class='add'>+	0x114c7, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115c0,</div><div class='add'>+	0x115d8, 0x115dd,</div><div class='add'>+	0x11600, 0x11640,</div><div class='add'>+	0x11644, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11680, 0x116b8,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x11739,</div><div class='add'>+	0x11740, 0x11746,</div><div class='add'>+	0x11800, 0x1183a,</div><div class='add'>+	0x118a0, 0x118e9,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x11943,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e1,</div><div class='add'>+	0x119e3, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a3e,</div><div class='add'>+	0x11a47, 0x11a47,</div><div class='add'>+	0x11a50, 0x11a99,</div><div class='add'>+	0x11a9d, 0x11a9d,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c40,</div><div class='add'>+	0x11c50, 0x11c59,</div><div class='add'>+	0x11c72, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef6,</div><div class='add'>+	0x11f00, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f42,</div><div class='add'>+	0x11f50, 0x11f59,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff0,</div><div class='add'>+	0x13000, 0x1342f,</div><div class='add'>+	0x13440, 0x13455,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a70, 0x16abe,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af4,</div><div class='add'>+	0x16b00, 0x16b36,</div><div class='add'>+	0x16b40, 0x16b43,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e7f,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x16fe3, 0x16fe4,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9d, 0x1bc9e,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1d165, 0x1d169,</div><div class='add'>+	0x1d16d, 0x1d172,</div><div class='add'>+	0x1d17b, 0x1d182,</div><div class='add'>+	0x1d185, 0x1d18b,</div><div class='add'>+	0x1d1aa, 0x1d1ad,</div><div class='add'>+	0x1d242, 0x1d244,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6fa,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d734,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d76e,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d7a8,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1da00, 0x1da36,</div><div class='add'>+	0x1da3b, 0x1da6c,</div><div class='add'>+	0x1da75, 0x1da75,</div><div class='add'>+	0x1da84, 0x1da84,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14e,</div><div class='add'>+	0x1e290, 0x1e2ae,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e4d0, 0x1e4f9,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8d0, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+}; /* CR_ID_Continue */</div><div class='add'>+</div><div class='add'>+/* 'XID_Start': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_XID_Start[] = {</div><div class='add'>+	666,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x02c1,</div><div class='add'>+	0x02c6, 0x02d1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x02ec, 0x02ec,</div><div class='add'>+	0x02ee, 0x02ee,</div><div class='add'>+	0x0370, 0x0374,</div><div class='add'>+	0x0376, 0x0377,</div><div class='add'>+	0x037b, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03f5,</div><div class='add'>+	0x03f7, 0x0481,</div><div class='add'>+	0x048a, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x0559,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f2,</div><div class='add'>+	0x0620, 0x064a,</div><div class='add'>+	0x066e, 0x066f,</div><div class='add'>+	0x0671, 0x06d3,</div><div class='add'>+	0x06d5, 0x06d5,</div><div class='add'>+	0x06e5, 0x06e6,</div><div class='add'>+	0x06ee, 0x06ef,</div><div class='add'>+	0x06fa, 0x06fc,</div><div class='add'>+	0x06ff, 0x06ff,</div><div class='add'>+	0x0710, 0x0710,</div><div class='add'>+	0x0712, 0x072f,</div><div class='add'>+	0x074d, 0x07a5,</div><div class='add'>+	0x07b1, 0x07b1,</div><div class='add'>+	0x07ca, 0x07ea,</div><div class='add'>+	0x07f4, 0x07f5,</div><div class='add'>+	0x07fa, 0x07fa,</div><div class='add'>+	0x0800, 0x0815,</div><div class='add'>+	0x081a, 0x081a,</div><div class='add'>+	0x0824, 0x0824,</div><div class='add'>+	0x0828, 0x0828,</div><div class='add'>+	0x0840, 0x0858,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x0887,</div><div class='add'>+	0x0889, 0x088e,</div><div class='add'>+	0x08a0, 0x08c9,</div><div class='add'>+	0x0904, 0x0939,</div><div class='add'>+	0x093d, 0x093d,</div><div class='add'>+	0x0950, 0x0950,</div><div class='add'>+	0x0958, 0x0961,</div><div class='add'>+	0x0971, 0x0980,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bd, 0x09bd,</div><div class='add'>+	0x09ce, 0x09ce,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e1,</div><div class='add'>+	0x09f0, 0x09f1,</div><div class='add'>+	0x09fc, 0x09fc,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a72, 0x0a74,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abd, 0x0abd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae1,</div><div class='add'>+	0x0af9, 0x0af9,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3d, 0x0b3d,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b71, 0x0b71,</div><div class='add'>+	0x0b83, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c3d,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c80, 0x0c80,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbd, 0x0cbd,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d04, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d3d,</div><div class='add'>+	0x0d4e, 0x0d4e,</div><div class='add'>+	0x0d54, 0x0d56,</div><div class='add'>+	0x0d5f, 0x0d61,</div><div class='add'>+	0x0d7a, 0x0d7f,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0e01, 0x0e30,</div><div class='add'>+	0x0e32, 0x0e32,</div><div class='add'>+	0x0e40, 0x0e46,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0eb0,</div><div class='add'>+	0x0eb2, 0x0eb2,</div><div class='add'>+	0x0ebd, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f00,</div><div class='add'>+	0x0f40, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f88, 0x0f8c,</div><div class='add'>+	0x1000, 0x102a,</div><div class='add'>+	0x103f, 0x103f,</div><div class='add'>+	0x1050, 0x1055,</div><div class='add'>+	0x105a, 0x105d,</div><div class='add'>+	0x1061, 0x1061,</div><div class='add'>+	0x1065, 0x1066,</div><div class='add'>+	0x106e, 0x1070,</div><div class='add'>+	0x1075, 0x1081,</div><div class='add'>+	0x108e, 0x108e,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fc, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x1380, 0x138f,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1401, 0x166c,</div><div class='add'>+	0x166f, 0x167f,</div><div class='add'>+	0x1681, 0x169a,</div><div class='add'>+	0x16a0, 0x16ea,</div><div class='add'>+	0x16ee, 0x16f8,</div><div class='add'>+	0x1700, 0x1711,</div><div class='add'>+	0x171f, 0x1731,</div><div class='add'>+	0x1740, 0x1751,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1780, 0x17b3,</div><div class='add'>+	0x17d7, 0x17d7,</div><div class='add'>+	0x17dc, 0x17dc,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18a8,</div><div class='add'>+	0x18aa, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1950, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x1a00, 0x1a16,</div><div class='add'>+	0x1a20, 0x1a54,</div><div class='add'>+	0x1aa7, 0x1aa7,</div><div class='add'>+	0x1b05, 0x1b33,</div><div class='add'>+	0x1b45, 0x1b4c,</div><div class='add'>+	0x1b83, 0x1ba0,</div><div class='add'>+	0x1bae, 0x1baf,</div><div class='add'>+	0x1bba, 0x1be5,</div><div class='add'>+	0x1c00, 0x1c23,</div><div class='add'>+	0x1c4d, 0x1c4f,</div><div class='add'>+	0x1c5a, 0x1c7d,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1ce9, 0x1cec,</div><div class='add'>+	0x1cee, 0x1cf3,</div><div class='add'>+	0x1cf5, 0x1cf6,</div><div class='add'>+	0x1cfa, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1dbf,</div><div class='add'>+	0x1e00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fe0, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffc,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2118, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x2139,</div><div class='add'>+	0x213c, 0x213f,</div><div class='add'>+	0x2145, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2160, 0x2188,</div><div class='add'>+	0x2c00, 0x2ce4,</div><div class='add'>+	0x2ceb, 0x2cee,</div><div class='add'>+	0x2cf2, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x3005, 0x3007,</div><div class='add'>+	0x3021, 0x3029,</div><div class='add'>+	0x3031, 0x3035,</div><div class='add'>+	0x3038, 0x303c,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x309d, 0x309f,</div><div class='add'>+	0x30a1, 0x30fa,</div><div class='add'>+	0x30fc, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x31a0, 0x31bf,</div><div class='add'>+	0x31f0, 0x31ff,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0xa48c,</div><div class='add'>+	0xa4d0, 0xa4fd,</div><div class='add'>+	0xa500, 0xa60c,</div><div class='add'>+	0xa610, 0xa61f,</div><div class='add'>+	0xa62a, 0xa62b,</div><div class='add'>+	0xa640, 0xa66e,</div><div class='add'>+	0xa67f, 0xa69d,</div><div class='add'>+	0xa6a0, 0xa6ef,</div><div class='add'>+	0xa717, 0xa71f,</div><div class='add'>+	0xa722, 0xa788,</div><div class='add'>+	0xa78b, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa801,</div><div class='add'>+	0xa803, 0xa805,</div><div class='add'>+	0xa807, 0xa80a,</div><div class='add'>+	0xa80c, 0xa822,</div><div class='add'>+	0xa840, 0xa873,</div><div class='add'>+	0xa882, 0xa8b3,</div><div class='add'>+	0xa8f2, 0xa8f7,</div><div class='add'>+	0xa8fb, 0xa8fb,</div><div class='add'>+	0xa8fd, 0xa8fe,</div><div class='add'>+	0xa90a, 0xa925,</div><div class='add'>+	0xa930, 0xa946,</div><div class='add'>+	0xa960, 0xa97c,</div><div class='add'>+	0xa984, 0xa9b2,</div><div class='add'>+	0xa9cf, 0xa9cf,</div><div class='add'>+	0xa9e0, 0xa9e4,</div><div class='add'>+	0xa9e6, 0xa9ef,</div><div class='add'>+	0xa9fa, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa28,</div><div class='add'>+	0xaa40, 0xaa42,</div><div class='add'>+	0xaa44, 0xaa4b,</div><div class='add'>+	0xaa60, 0xaa76,</div><div class='add'>+	0xaa7a, 0xaa7a,</div><div class='add'>+	0xaa7e, 0xaaaf,</div><div class='add'>+	0xaab1, 0xaab1,</div><div class='add'>+	0xaab5, 0xaab6,</div><div class='add'>+	0xaab9, 0xaabd,</div><div class='add'>+	0xaac0, 0xaac0,</div><div class='add'>+	0xaac2, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadd,</div><div class='add'>+	0xaae0, 0xaaea,</div><div class='add'>+	0xaaf2, 0xaaf4,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab5c, 0xab69,</div><div class='add'>+	0xab70, 0xabe2,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb1d,</div><div class='add'>+	0xfb1f, 0xfb28,</div><div class='add'>+	0xfb2a, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfc5d,</div><div class='add'>+	0xfc64, 0xfd3d,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdf9,</div><div class='add'>+	0xfe71, 0xfe71,</div><div class='add'>+	0xfe73, 0xfe73,</div><div class='add'>+	0xfe77, 0xfe77,</div><div class='add'>+	0xfe79, 0xfe79,</div><div class='add'>+	0xfe7b, 0xfe7b,</div><div class='add'>+	0xfe7d, 0xfe7d,</div><div class='add'>+	0xfe7f, 0xfefc,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0xff66, 0xff9d,</div><div class='add'>+	0xffa0, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10140, 0x10174,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031f,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x10375,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x103a0, 0x103c3,</div><div class='add'>+	0x103c8, 0x103cf,</div><div class='add'>+	0x103d1, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10860, 0x10876,</div><div class='add'>+	0x10880, 0x1089e,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x10900, 0x10915,</div><div class='add'>+	0x10920, 0x10939,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a00,</div><div class='add'>+	0x10a10, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a60, 0x10a7c,</div><div class='add'>+	0x10a80, 0x10a9c,</div><div class='add'>+	0x10ac0, 0x10ac7,</div><div class='add'>+	0x10ac9, 0x10ae4,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b40, 0x10b55,</div><div class='add'>+	0x10b60, 0x10b72,</div><div class='add'>+	0x10b80, 0x10b91,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10d00, 0x10d23,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10f00, 0x10f1c,</div><div class='add'>+	0x10f27, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f45,</div><div class='add'>+	0x10f70, 0x10f81,</div><div class='add'>+	0x10fb0, 0x10fc4,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11003, 0x11037,</div><div class='add'>+	0x11071, 0x11072,</div><div class='add'>+	0x11075, 0x11075,</div><div class='add'>+	0x11083, 0x110af,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x11103, 0x11126,</div><div class='add'>+	0x11144, 0x11144,</div><div class='add'>+	0x11147, 0x11147,</div><div class='add'>+	0x11150, 0x11172,</div><div class='add'>+	0x11176, 0x11176,</div><div class='add'>+	0x11183, 0x111b2,</div><div class='add'>+	0x111c1, 0x111c4,</div><div class='add'>+	0x111da, 0x111da,</div><div class='add'>+	0x111dc, 0x111dc,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1122b,</div><div class='add'>+	0x1123f, 0x11240,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a8,</div><div class='add'>+	0x112b0, 0x112de,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133d, 0x1133d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x1135d, 0x11361,</div><div class='add'>+	0x11400, 0x11434,</div><div class='add'>+	0x11447, 0x1144a,</div><div class='add'>+	0x1145f, 0x11461,</div><div class='add'>+	0x11480, 0x114af,</div><div class='add'>+	0x114c4, 0x114c5,</div><div class='add'>+	0x114c7, 0x114c7,</div><div class='add'>+	0x11580, 0x115ae,</div><div class='add'>+	0x115d8, 0x115db,</div><div class='add'>+	0x11600, 0x1162f,</div><div class='add'>+	0x11644, 0x11644,</div><div class='add'>+	0x11680, 0x116aa,</div><div class='add'>+	0x116b8, 0x116b8,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x11740, 0x11746,</div><div class='add'>+	0x11800, 0x1182b,</div><div class='add'>+	0x118a0, 0x118df,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x1192f,</div><div class='add'>+	0x1193f, 0x1193f,</div><div class='add'>+	0x11941, 0x11941,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d0,</div><div class='add'>+	0x119e1, 0x119e1,</div><div class='add'>+	0x119e3, 0x119e3,</div><div class='add'>+	0x11a00, 0x11a00,</div><div class='add'>+	0x11a0b, 0x11a32,</div><div class='add'>+	0x11a3a, 0x11a3a,</div><div class='add'>+	0x11a50, 0x11a50,</div><div class='add'>+	0x11a5c, 0x11a89,</div><div class='add'>+	0x11a9d, 0x11a9d,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c2e,</div><div class='add'>+	0x11c40, 0x11c40,</div><div class='add'>+	0x11c72, 0x11c8f,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d30,</div><div class='add'>+	0x11d46, 0x11d46,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d89,</div><div class='add'>+	0x11d98, 0x11d98,</div><div class='add'>+	0x11ee0, 0x11ef2,</div><div class='add'>+	0x11f02, 0x11f02,</div><div class='add'>+	0x11f04, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f33,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff0,</div><div class='add'>+	0x13000, 0x1342f,</div><div class='add'>+	0x13441, 0x13446,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a70, 0x16abe,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16b00, 0x16b2f,</div><div class='add'>+	0x16b40, 0x16b43,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e7f,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f50, 0x16f50,</div><div class='add'>+	0x16f93, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x16fe3, 0x16fe3,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6fa,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d734,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d76e,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d7a8,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7cb,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e137, 0x1e13d,</div><div class='add'>+	0x1e14e, 0x1e14e,</div><div class='add'>+	0x1e290, 0x1e2ad,</div><div class='add'>+	0x1e2c0, 0x1e2eb,</div><div class='add'>+	0x1e4d0, 0x1e4eb,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e900, 0x1e943,</div><div class='add'>+	0x1e94b, 0x1e94b,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+}; /* CR_XID_Start */</div><div class='add'>+</div><div class='add'>+/* 'XID_Continue': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_XID_Continue[] = {</div><div class='add'>+	775,</div><div class='add'>+	0x0030, 0x0039,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x005f, 0x005f,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00b5, 0x00b5,</div><div class='add'>+	0x00b7, 0x00b7,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x02c1,</div><div class='add'>+	0x02c6, 0x02d1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x02ec, 0x02ec,</div><div class='add'>+	0x02ee, 0x02ee,</div><div class='add'>+	0x0300, 0x0374,</div><div class='add'>+	0x0376, 0x0377,</div><div class='add'>+	0x037b, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0386, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03f5,</div><div class='add'>+	0x03f7, 0x0481,</div><div class='add'>+	0x0483, 0x0487,</div><div class='add'>+	0x048a, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x0559,</div><div class='add'>+	0x0560, 0x0588,</div><div class='add'>+	0x0591, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c5,</div><div class='add'>+	0x05c7, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f2,</div><div class='add'>+	0x0610, 0x061a,</div><div class='add'>+	0x0620, 0x0669,</div><div class='add'>+	0x066e, 0x06d3,</div><div class='add'>+	0x06d5, 0x06dc,</div><div class='add'>+	0x06df, 0x06e8,</div><div class='add'>+	0x06ea, 0x06fc,</div><div class='add'>+	0x06ff, 0x06ff,</div><div class='add'>+	0x0710, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07f5,</div><div class='add'>+	0x07fa, 0x07fa,</div><div class='add'>+	0x07fd, 0x07fd,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x0887,</div><div class='add'>+	0x0889, 0x088e,</div><div class='add'>+	0x0898, 0x08e1,</div><div class='add'>+	0x08e3, 0x0963,</div><div class='add'>+	0x0966, 0x096f,</div><div class='add'>+	0x0971, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09f1,</div><div class='add'>+	0x09fc, 0x09fc,</div><div class='add'>+	0x09fe, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b6f,</div><div class='add'>+	0x0b71, 0x0b71,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bef,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3c, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c80, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf3,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4e,</div><div class='add'>+	0x0d54, 0x0d57,</div><div class='add'>+	0x0d5f, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0d7a, 0x0d7f,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df3,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e40, 0x0e4e,</div><div class='add'>+	0x0e50, 0x0e59,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f00,</div><div class='add'>+	0x0f18, 0x0f19,</div><div class='add'>+	0x0f20, 0x0f29,</div><div class='add'>+	0x0f35, 0x0f35,</div><div class='add'>+	0x0f37, 0x0f37,</div><div class='add'>+	0x0f39, 0x0f39,</div><div class='add'>+	0x0f3e, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f84,</div><div class='add'>+	0x0f86, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fc6, 0x0fc6,</div><div class='add'>+	0x1000, 0x1049,</div><div class='add'>+	0x1050, 0x109d,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fc, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x135f,</div><div class='add'>+	0x1369, 0x1371,</div><div class='add'>+	0x1380, 0x138f,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1401, 0x166c,</div><div class='add'>+	0x166f, 0x167f,</div><div class='add'>+	0x1681, 0x169a,</div><div class='add'>+	0x16a0, 0x16ea,</div><div class='add'>+	0x16ee, 0x16f8,</div><div class='add'>+	0x1700, 0x1715,</div><div class='add'>+	0x171f, 0x1734,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17d3,</div><div class='add'>+	0x17d7, 0x17d7,</div><div class='add'>+	0x17dc, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x180b, 0x180d,</div><div class='add'>+	0x180f, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1946, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x1a00, 0x1a1b,</div><div class='add'>+	0x1a20, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa7, 0x1aa7,</div><div class='add'>+	0x1ab0, 0x1abd,</div><div class='add'>+	0x1abf, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b4c,</div><div class='add'>+	0x1b50, 0x1b59,</div><div class='add'>+	0x1b6b, 0x1b73,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1c00, 0x1c37,</div><div class='add'>+	0x1c40, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7d,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x1cd0, 0x1cd2,</div><div class='add'>+	0x1cd4, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fbc,</div><div class='add'>+	0x1fbe, 0x1fbe,</div><div class='add'>+	0x1fc2, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fcc,</div><div class='add'>+	0x1fd0, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fe0, 0x1fec,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffc,</div><div class='add'>+	0x203f, 0x2040,</div><div class='add'>+	0x2054, 0x2054,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20d0, 0x20dc,</div><div class='add'>+	0x20e1, 0x20e1,</div><div class='add'>+	0x20e5, 0x20f0,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2118, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0x2128, 0x2128,</div><div class='add'>+	0x212a, 0x2139,</div><div class='add'>+	0x213c, 0x213f,</div><div class='add'>+	0x2145, 0x2149,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2160, 0x2188,</div><div class='add'>+	0x2c00, 0x2ce4,</div><div class='add'>+	0x2ceb, 0x2cf3,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0x3005, 0x3007,</div><div class='add'>+	0x3021, 0x302f,</div><div class='add'>+	0x3031, 0x3035,</div><div class='add'>+	0x3038, 0x303c,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x309a,</div><div class='add'>+	0x309d, 0x309f,</div><div class='add'>+	0x30a1, 0x30fa,</div><div class='add'>+	0x30fc, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x31a0, 0x31bf,</div><div class='add'>+	0x31f0, 0x31ff,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0xa48c,</div><div class='add'>+	0xa4d0, 0xa4fd,</div><div class='add'>+	0xa500, 0xa60c,</div><div class='add'>+	0xa610, 0xa62b,</div><div class='add'>+	0xa640, 0xa66f,</div><div class='add'>+	0xa674, 0xa67d,</div><div class='add'>+	0xa67f, 0xa6f1,</div><div class='add'>+	0xa717, 0xa71f,</div><div class='add'>+	0xa722, 0xa788,</div><div class='add'>+	0xa78b, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa827,</div><div class='add'>+	0xa82c, 0xa82c,</div><div class='add'>+	0xa840, 0xa873,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8d0, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8f7,</div><div class='add'>+	0xa8fb, 0xa8fb,</div><div class='add'>+	0xa8fd, 0xa92d,</div><div class='add'>+	0xa930, 0xa953,</div><div class='add'>+	0xa960, 0xa97c,</div><div class='add'>+	0xa980, 0xa9c0,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9e0, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa60, 0xaa76,</div><div class='add'>+	0xaa7a, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadd,</div><div class='add'>+	0xaae0, 0xaaef,</div><div class='add'>+	0xaaf2, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab5c, 0xab69,</div><div class='add'>+	0xab70, 0xabea,</div><div class='add'>+	0xabec, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb28,</div><div class='add'>+	0xfb2a, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfc5d,</div><div class='add'>+	0xfc64, 0xfd3d,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdf9,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfe20, 0xfe2f,</div><div class='add'>+	0xfe33, 0xfe34,</div><div class='add'>+	0xfe4d, 0xfe4f,</div><div class='add'>+	0xfe71, 0xfe71,</div><div class='add'>+	0xfe73, 0xfe73,</div><div class='add'>+	0xfe77, 0xfe77,</div><div class='add'>+	0xfe79, 0xfe79,</div><div class='add'>+	0xfe7b, 0xfe7b,</div><div class='add'>+	0xfe7d, 0xfe7d,</div><div class='add'>+	0xfe7f, 0xfefc,</div><div class='add'>+	0xff10, 0xff19,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff3f, 0xff3f,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0xff66, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10140, 0x10174,</div><div class='add'>+	0x101fd, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102e0,</div><div class='add'>+	0x10300, 0x1031f,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x103a0, 0x103c3,</div><div class='add'>+	0x103c8, 0x103cf,</div><div class='add'>+	0x103d1, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10860, 0x10876,</div><div class='add'>+	0x10880, 0x1089e,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x10900, 0x10915,</div><div class='add'>+	0x10920, 0x10939,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a3f,</div><div class='add'>+	0x10a60, 0x10a7c,</div><div class='add'>+	0x10a80, 0x10a9c,</div><div class='add'>+	0x10ac0, 0x10ac7,</div><div class='add'>+	0x10ac9, 0x10ae6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b40, 0x10b55,</div><div class='add'>+	0x10b60, 0x10b72,</div><div class='add'>+	0x10b80, 0x10b91,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10d00, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10eac,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10efd, 0x10f1c,</div><div class='add'>+	0x10f27, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f50,</div><div class='add'>+	0x10f70, 0x10f85,</div><div class='add'>+	0x10fb0, 0x10fc4,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x11046,</div><div class='add'>+	0x11066, 0x11075,</div><div class='add'>+	0x1107f, 0x110ba,</div><div class='add'>+	0x110c2, 0x110c2,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x1113f,</div><div class='add'>+	0x11144, 0x11147,</div><div class='add'>+	0x11150, 0x11173,</div><div class='add'>+	0x11176, 0x11176,</div><div class='add'>+	0x11180, 0x111c4,</div><div class='add'>+	0x111c9, 0x111cc,</div><div class='add'>+	0x111ce, 0x111da,</div><div class='add'>+	0x111dc, 0x111dc,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x11237,</div><div class='add'>+	0x1123e, 0x11241,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a8,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x1144a,</div><div class='add'>+	0x11450, 0x11459,</div><div class='add'>+	0x1145e, 0x11461,</div><div class='add'>+	0x11480, 0x114c5,</div><div class='add'>+	0x114c7, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115c0,</div><div class='add'>+	0x115d8, 0x115dd,</div><div class='add'>+	0x11600, 0x11640,</div><div class='add'>+	0x11644, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11680, 0x116b8,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x11739,</div><div class='add'>+	0x11740, 0x11746,</div><div class='add'>+	0x11800, 0x1183a,</div><div class='add'>+	0x118a0, 0x118e9,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x11943,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e1,</div><div class='add'>+	0x119e3, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a3e,</div><div class='add'>+	0x11a47, 0x11a47,</div><div class='add'>+	0x11a50, 0x11a99,</div><div class='add'>+	0x11a9d, 0x11a9d,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c40,</div><div class='add'>+	0x11c50, 0x11c59,</div><div class='add'>+	0x11c72, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef6,</div><div class='add'>+	0x11f00, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f42,</div><div class='add'>+	0x11f50, 0x11f59,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff0,</div><div class='add'>+	0x13000, 0x1342f,</div><div class='add'>+	0x13440, 0x13455,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a70, 0x16abe,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af4,</div><div class='add'>+	0x16b00, 0x16b36,</div><div class='add'>+	0x16b40, 0x16b43,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e7f,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x16fe3, 0x16fe4,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9d, 0x1bc9e,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1d165, 0x1d169,</div><div class='add'>+	0x1d16d, 0x1d172,</div><div class='add'>+	0x1d17b, 0x1d182,</div><div class='add'>+	0x1d185, 0x1d18b,</div><div class='add'>+	0x1d1aa, 0x1d1ad,</div><div class='add'>+	0x1d242, 0x1d244,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6fa,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d734,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d76e,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d7a8,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1da00, 0x1da36,</div><div class='add'>+	0x1da3b, 0x1da6c,</div><div class='add'>+	0x1da75, 0x1da75,</div><div class='add'>+	0x1da84, 0x1da84,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14e,</div><div class='add'>+	0x1e290, 0x1e2ae,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e4d0, 0x1e4f9,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8d0, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+}; /* CR_XID_Continue */</div><div class='add'>+</div><div class='add'>+/* 'Default_Ignorable_Code_Point': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Default_Ignorable_Code_Point[] = {</div><div class='add'>+	17,</div><div class='add'>+	0x00ad, 0x00ad,</div><div class='add'>+	0x034f, 0x034f,</div><div class='add'>+	0x061c, 0x061c,</div><div class='add'>+	0x115f, 0x1160,</div><div class='add'>+	0x17b4, 0x17b5,</div><div class='add'>+	0x180b, 0x180f,</div><div class='add'>+	0x200b, 0x200f,</div><div class='add'>+	0x202a, 0x202e,</div><div class='add'>+	0x2060, 0x206f,</div><div class='add'>+	0x3164, 0x3164,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xffa0, 0xffa0,</div><div class='add'>+	0xfff0, 0xfff8,</div><div class='add'>+	0x1bca0, 0x1bca3,</div><div class='add'>+	0x1d173, 0x1d17a,</div><div class='add'>+	0xe0000, 0xe0fff,</div><div class='add'>+}; /* CR_Default_Ignorable_Code_Point */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Extend': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Extend[] = {</div><div class='add'>+	363,</div><div class='add'>+	0x0300, 0x036f,</div><div class='add'>+	0x0483, 0x0489,</div><div class='add'>+	0x0591, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c5,</div><div class='add'>+	0x05c7, 0x05c7,</div><div class='add'>+	0x0610, 0x061a,</div><div class='add'>+	0x064b, 0x065f,</div><div class='add'>+	0x0670, 0x0670,</div><div class='add'>+	0x06d6, 0x06dc,</div><div class='add'>+	0x06df, 0x06e4,</div><div class='add'>+	0x06e7, 0x06e8,</div><div class='add'>+	0x06ea, 0x06ed,</div><div class='add'>+	0x0711, 0x0711,</div><div class='add'>+	0x0730, 0x074a,</div><div class='add'>+	0x07a6, 0x07b0,</div><div class='add'>+	0x07eb, 0x07f3,</div><div class='add'>+	0x07fd, 0x07fd,</div><div class='add'>+	0x0816, 0x0819,</div><div class='add'>+	0x081b, 0x0823,</div><div class='add'>+	0x0825, 0x0827,</div><div class='add'>+	0x0829, 0x082d,</div><div class='add'>+	0x0859, 0x085b,</div><div class='add'>+	0x0898, 0x089f,</div><div class='add'>+	0x08ca, 0x08e1,</div><div class='add'>+	0x08e3, 0x0902,</div><div class='add'>+	0x093a, 0x093a,</div><div class='add'>+	0x093c, 0x093c,</div><div class='add'>+	0x0941, 0x0948,</div><div class='add'>+	0x094d, 0x094d,</div><div class='add'>+	0x0951, 0x0957,</div><div class='add'>+	0x0962, 0x0963,</div><div class='add'>+	0x0981, 0x0981,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09be, 0x09be,</div><div class='add'>+	0x09c1, 0x09c4,</div><div class='add'>+	0x09cd, 0x09cd,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09e2, 0x09e3,</div><div class='add'>+	0x09fe, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a02,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a41, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a70, 0x0a71,</div><div class='add'>+	0x0a75, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a82,</div><div class='add'>+	0x0abc, 0x0abc,</div><div class='add'>+	0x0ac1, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac8,</div><div class='add'>+	0x0acd, 0x0acd,</div><div class='add'>+	0x0ae2, 0x0ae3,</div><div class='add'>+	0x0afa, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b01,</div><div class='add'>+	0x0b3c, 0x0b3c,</div><div class='add'>+	0x0b3e, 0x0b3f,</div><div class='add'>+	0x0b41, 0x0b44,</div><div class='add'>+	0x0b4d, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b62, 0x0b63,</div><div class='add'>+	0x0b82, 0x0b82,</div><div class='add'>+	0x0bbe, 0x0bbe,</div><div class='add'>+	0x0bc0, 0x0bc0,</div><div class='add'>+	0x0bcd, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0c00, 0x0c00,</div><div class='add'>+	0x0c04, 0x0c04,</div><div class='add'>+	0x0c3c, 0x0c3c,</div><div class='add'>+	0x0c3e, 0x0c40,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c62, 0x0c63,</div><div class='add'>+	0x0c81, 0x0c81,</div><div class='add'>+	0x0cbc, 0x0cbc,</div><div class='add'>+	0x0cbf, 0x0cbf,</div><div class='add'>+	0x0cc2, 0x0cc2,</div><div class='add'>+	0x0cc6, 0x0cc6,</div><div class='add'>+	0x0ccc, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0ce2, 0x0ce3,</div><div class='add'>+	0x0d00, 0x0d01,</div><div class='add'>+	0x0d3b, 0x0d3c,</div><div class='add'>+	0x0d3e, 0x0d3e,</div><div class='add'>+	0x0d41, 0x0d44,</div><div class='add'>+	0x0d4d, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d62, 0x0d63,</div><div class='add'>+	0x0d81, 0x0d81,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dcf,</div><div class='add'>+	0x0dd2, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0ddf, 0x0ddf,</div><div class='add'>+	0x0e31, 0x0e31,</div><div class='add'>+	0x0e34, 0x0e3a,</div><div class='add'>+	0x0e47, 0x0e4e,</div><div class='add'>+	0x0eb1, 0x0eb1,</div><div class='add'>+	0x0eb4, 0x0ebc,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0f18, 0x0f19,</div><div class='add'>+	0x0f35, 0x0f35,</div><div class='add'>+	0x0f37, 0x0f37,</div><div class='add'>+	0x0f39, 0x0f39,</div><div class='add'>+	0x0f71, 0x0f7e,</div><div class='add'>+	0x0f80, 0x0f84,</div><div class='add'>+	0x0f86, 0x0f87,</div><div class='add'>+	0x0f8d, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fc6, 0x0fc6,</div><div class='add'>+	0x102d, 0x1030,</div><div class='add'>+	0x1032, 0x1037,</div><div class='add'>+	0x1039, 0x103a,</div><div class='add'>+	0x103d, 0x103e,</div><div class='add'>+	0x1058, 0x1059,</div><div class='add'>+	0x105e, 0x1060,</div><div class='add'>+	0x1071, 0x1074,</div><div class='add'>+	0x1082, 0x1082,</div><div class='add'>+	0x1085, 0x1086,</div><div class='add'>+	0x108d, 0x108d,</div><div class='add'>+	0x109d, 0x109d,</div><div class='add'>+	0x135d, 0x135f,</div><div class='add'>+	0x1712, 0x1714,</div><div class='add'>+	0x1732, 0x1733,</div><div class='add'>+	0x1752, 0x1753,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x17b4, 0x17b5,</div><div class='add'>+	0x17b7, 0x17bd,</div><div class='add'>+	0x17c6, 0x17c6,</div><div class='add'>+	0x17c9, 0x17d3,</div><div class='add'>+	0x17dd, 0x17dd,</div><div class='add'>+	0x180b, 0x180d,</div><div class='add'>+	0x180f, 0x180f,</div><div class='add'>+	0x1885, 0x1886,</div><div class='add'>+	0x18a9, 0x18a9,</div><div class='add'>+	0x1920, 0x1922,</div><div class='add'>+	0x1927, 0x1928,</div><div class='add'>+	0x1932, 0x1932,</div><div class='add'>+	0x1939, 0x193b,</div><div class='add'>+	0x1a17, 0x1a18,</div><div class='add'>+	0x1a1b, 0x1a1b,</div><div class='add'>+	0x1a56, 0x1a56,</div><div class='add'>+	0x1a58, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a60,</div><div class='add'>+	0x1a62, 0x1a62,</div><div class='add'>+	0x1a65, 0x1a6c,</div><div class='add'>+	0x1a73, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a7f,</div><div class='add'>+	0x1ab0, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b03,</div><div class='add'>+	0x1b34, 0x1b3a,</div><div class='add'>+	0x1b3c, 0x1b3c,</div><div class='add'>+	0x1b42, 0x1b42,</div><div class='add'>+	0x1b6b, 0x1b73,</div><div class='add'>+	0x1b80, 0x1b81,</div><div class='add'>+	0x1ba2, 0x1ba5,</div><div class='add'>+	0x1ba8, 0x1ba9,</div><div class='add'>+	0x1bab, 0x1bad,</div><div class='add'>+	0x1be6, 0x1be6,</div><div class='add'>+	0x1be8, 0x1be9,</div><div class='add'>+	0x1bed, 0x1bed,</div><div class='add'>+	0x1bef, 0x1bf1,</div><div class='add'>+	0x1c2c, 0x1c33,</div><div class='add'>+	0x1c36, 0x1c37,</div><div class='add'>+	0x1cd0, 0x1cd2,</div><div class='add'>+	0x1cd4, 0x1ce0,</div><div class='add'>+	0x1ce2, 0x1ce8,</div><div class='add'>+	0x1ced, 0x1ced,</div><div class='add'>+	0x1cf4, 0x1cf4,</div><div class='add'>+	0x1cf8, 0x1cf9,</div><div class='add'>+	0x1dc0, 0x1dff,</div><div class='add'>+	0x200c, 0x200c,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2cef, 0x2cf1,</div><div class='add'>+	0x2d7f, 0x2d7f,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0x302a, 0x302f,</div><div class='add'>+	0x3099, 0x309a,</div><div class='add'>+	0xa66f, 0xa672,</div><div class='add'>+	0xa674, 0xa67d,</div><div class='add'>+	0xa69e, 0xa69f,</div><div class='add'>+	0xa6f0, 0xa6f1,</div><div class='add'>+	0xa802, 0xa802,</div><div class='add'>+	0xa806, 0xa806,</div><div class='add'>+	0xa80b, 0xa80b,</div><div class='add'>+	0xa825, 0xa826,</div><div class='add'>+	0xa82c, 0xa82c,</div><div class='add'>+	0xa8c4, 0xa8c5,</div><div class='add'>+	0xa8e0, 0xa8f1,</div><div class='add'>+	0xa8ff, 0xa8ff,</div><div class='add'>+	0xa926, 0xa92d,</div><div class='add'>+	0xa947, 0xa951,</div><div class='add'>+	0xa980, 0xa982,</div><div class='add'>+	0xa9b3, 0xa9b3,</div><div class='add'>+	0xa9b6, 0xa9b9,</div><div class='add'>+	0xa9bc, 0xa9bd,</div><div class='add'>+	0xa9e5, 0xa9e5,</div><div class='add'>+	0xaa29, 0xaa2e,</div><div class='add'>+	0xaa31, 0xaa32,</div><div class='add'>+	0xaa35, 0xaa36,</div><div class='add'>+	0xaa43, 0xaa43,</div><div class='add'>+	0xaa4c, 0xaa4c,</div><div class='add'>+	0xaa7c, 0xaa7c,</div><div class='add'>+	0xaab0, 0xaab0,</div><div class='add'>+	0xaab2, 0xaab4,</div><div class='add'>+	0xaab7, 0xaab8,</div><div class='add'>+	0xaabe, 0xaabf,</div><div class='add'>+	0xaac1, 0xaac1,</div><div class='add'>+	0xaaec, 0xaaed,</div><div class='add'>+	0xaaf6, 0xaaf6,</div><div class='add'>+	0xabe5, 0xabe5,</div><div class='add'>+	0xabe8, 0xabe8,</div><div class='add'>+	0xabed, 0xabed,</div><div class='add'>+	0xfb1e, 0xfb1e,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfe20, 0xfe2f,</div><div class='add'>+	0xff9e, 0xff9f,</div><div class='add'>+	0x101fd, 0x101fd,</div><div class='add'>+	0x102e0, 0x102e0,</div><div class='add'>+	0x10376, 0x1037a,</div><div class='add'>+	0x10a01, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a0f,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a3f,</div><div class='add'>+	0x10ae5, 0x10ae6,</div><div class='add'>+	0x10d24, 0x10d27,</div><div class='add'>+	0x10eab, 0x10eac,</div><div class='add'>+	0x10efd, 0x10eff,</div><div class='add'>+	0x10f46, 0x10f50,</div><div class='add'>+	0x10f82, 0x10f85,</div><div class='add'>+	0x11001, 0x11001,</div><div class='add'>+	0x11038, 0x11046,</div><div class='add'>+	0x11070, 0x11070,</div><div class='add'>+	0x11073, 0x11074,</div><div class='add'>+	0x1107f, 0x11081,</div><div class='add'>+	0x110b3, 0x110b6,</div><div class='add'>+	0x110b9, 0x110ba,</div><div class='add'>+	0x110c2, 0x110c2,</div><div class='add'>+	0x11100, 0x11102,</div><div class='add'>+	0x11127, 0x1112b,</div><div class='add'>+	0x1112d, 0x11134,</div><div class='add'>+	0x11173, 0x11173,</div><div class='add'>+	0x11180, 0x11181,</div><div class='add'>+	0x111b6, 0x111be,</div><div class='add'>+	0x111c9, 0x111cc,</div><div class='add'>+	0x111cf, 0x111cf,</div><div class='add'>+	0x1122f, 0x11231,</div><div class='add'>+	0x11234, 0x11234,</div><div class='add'>+	0x11236, 0x11237,</div><div class='add'>+	0x1123e, 0x1123e,</div><div class='add'>+	0x11241, 0x11241,</div><div class='add'>+	0x112df, 0x112df,</div><div class='add'>+	0x112e3, 0x112ea,</div><div class='add'>+	0x11300, 0x11301,</div><div class='add'>+	0x1133b, 0x1133c,</div><div class='add'>+	0x1133e, 0x1133e,</div><div class='add'>+	0x11340, 0x11340,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11438, 0x1143f,</div><div class='add'>+	0x11442, 0x11444,</div><div class='add'>+	0x11446, 0x11446,</div><div class='add'>+	0x1145e, 0x1145e,</div><div class='add'>+	0x114b0, 0x114b0,</div><div class='add'>+	0x114b3, 0x114b8,</div><div class='add'>+	0x114ba, 0x114ba,</div><div class='add'>+	0x114bd, 0x114bd,</div><div class='add'>+	0x114bf, 0x114c0,</div><div class='add'>+	0x114c2, 0x114c3,</div><div class='add'>+	0x115af, 0x115af,</div><div class='add'>+	0x115b2, 0x115b5,</div><div class='add'>+	0x115bc, 0x115bd,</div><div class='add'>+	0x115bf, 0x115c0,</div><div class='add'>+	0x115dc, 0x115dd,</div><div class='add'>+	0x11633, 0x1163a,</div><div class='add'>+	0x1163d, 0x1163d,</div><div class='add'>+	0x1163f, 0x11640,</div><div class='add'>+	0x116ab, 0x116ab,</div><div class='add'>+	0x116ad, 0x116ad,</div><div class='add'>+	0x116b0, 0x116b5,</div><div class='add'>+	0x116b7, 0x116b7,</div><div class='add'>+	0x1171d, 0x1171f,</div><div class='add'>+	0x11722, 0x11725,</div><div class='add'>+	0x11727, 0x1172b,</div><div class='add'>+	0x1182f, 0x11837,</div><div class='add'>+	0x11839, 0x1183a,</div><div class='add'>+	0x11930, 0x11930,</div><div class='add'>+	0x1193b, 0x1193c,</div><div class='add'>+	0x1193e, 0x1193e,</div><div class='add'>+	0x11943, 0x11943,</div><div class='add'>+	0x119d4, 0x119d7,</div><div class='add'>+	0x119da, 0x119db,</div><div class='add'>+	0x119e0, 0x119e0,</div><div class='add'>+	0x11a01, 0x11a0a,</div><div class='add'>+	0x11a33, 0x11a38,</div><div class='add'>+	0x11a3b, 0x11a3e,</div><div class='add'>+	0x11a47, 0x11a47,</div><div class='add'>+	0x11a51, 0x11a56,</div><div class='add'>+	0x11a59, 0x11a5b,</div><div class='add'>+	0x11a8a, 0x11a96,</div><div class='add'>+	0x11a98, 0x11a99,</div><div class='add'>+	0x11c30, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c3d,</div><div class='add'>+	0x11c3f, 0x11c3f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11caa, 0x11cb0,</div><div class='add'>+	0x11cb2, 0x11cb3,</div><div class='add'>+	0x11cb5, 0x11cb6,</div><div class='add'>+	0x11d31, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d45,</div><div class='add'>+	0x11d47, 0x11d47,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d95, 0x11d95,</div><div class='add'>+	0x11d97, 0x11d97,</div><div class='add'>+	0x11ef3, 0x11ef4,</div><div class='add'>+	0x11f00, 0x11f01,</div><div class='add'>+	0x11f36, 0x11f3a,</div><div class='add'>+	0x11f40, 0x11f40,</div><div class='add'>+	0x11f42, 0x11f42,</div><div class='add'>+	0x13440, 0x13440,</div><div class='add'>+	0x13447, 0x13455,</div><div class='add'>+	0x16af0, 0x16af4,</div><div class='add'>+	0x16b30, 0x16b36,</div><div class='add'>+	0x16f4f, 0x16f4f,</div><div class='add'>+	0x16f8f, 0x16f92,</div><div class='add'>+	0x16fe4, 0x16fe4,</div><div class='add'>+	0x1bc9d, 0x1bc9e,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1d165, 0x1d165,</div><div class='add'>+	0x1d167, 0x1d169,</div><div class='add'>+	0x1d16e, 0x1d172,</div><div class='add'>+	0x1d17b, 0x1d182,</div><div class='add'>+	0x1d185, 0x1d18b,</div><div class='add'>+	0x1d1aa, 0x1d1ad,</div><div class='add'>+	0x1d242, 0x1d244,</div><div class='add'>+	0x1da00, 0x1da36,</div><div class='add'>+	0x1da3b, 0x1da6c,</div><div class='add'>+	0x1da75, 0x1da75,</div><div class='add'>+	0x1da84, 0x1da84,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e130, 0x1e136,</div><div class='add'>+	0x1e2ae, 0x1e2ae,</div><div class='add'>+	0x1e2ec, 0x1e2ef,</div><div class='add'>+	0x1e4ec, 0x1e4ef,</div><div class='add'>+	0x1e8d0, 0x1e8d6,</div><div class='add'>+	0x1e944, 0x1e94a,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+}; /* CR_Grapheme_Extend */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Base': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Base[] = {</div><div class='add'>+	875,</div><div class='add'>+	0x0020, 0x007e,</div><div class='add'>+	0x00a0, 0x00ac,</div><div class='add'>+	0x00ae, 0x02ff,</div><div class='add'>+	0x0370, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x0482,</div><div class='add'>+	0x048a, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x05be, 0x05be,</div><div class='add'>+	0x05c0, 0x05c0,</div><div class='add'>+	0x05c3, 0x05c3,</div><div class='add'>+	0x05c6, 0x05c6,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f4,</div><div class='add'>+	0x0606, 0x060f,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061d, 0x064a,</div><div class='add'>+	0x0660, 0x066f,</div><div class='add'>+	0x0671, 0x06d5,</div><div class='add'>+	0x06de, 0x06de,</div><div class='add'>+	0x06e5, 0x06e6,</div><div class='add'>+	0x06e9, 0x06e9,</div><div class='add'>+	0x06ee, 0x070d,</div><div class='add'>+	0x0710, 0x0710,</div><div class='add'>+	0x0712, 0x072f,</div><div class='add'>+	0x074d, 0x07a5,</div><div class='add'>+	0x07b1, 0x07b1,</div><div class='add'>+	0x07c0, 0x07ea,</div><div class='add'>+	0x07f4, 0x07fa,</div><div class='add'>+	0x07fe, 0x0815,</div><div class='add'>+	0x081a, 0x081a,</div><div class='add'>+	0x0824, 0x0824,</div><div class='add'>+	0x0828, 0x0828,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x0858,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x088e,</div><div class='add'>+	0x08a0, 0x08c9,</div><div class='add'>+	0x0903, 0x0939,</div><div class='add'>+	0x093b, 0x093b,</div><div class='add'>+	0x093d, 0x0940,</div><div class='add'>+	0x0949, 0x094c,</div><div class='add'>+	0x094e, 0x0950,</div><div class='add'>+	0x0958, 0x0961,</div><div class='add'>+	0x0964, 0x0980,</div><div class='add'>+	0x0982, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bd, 0x09bd,</div><div class='add'>+	0x09bf, 0x09c0,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cc,</div><div class='add'>+	0x09ce, 0x09ce,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e1,</div><div class='add'>+	0x09e6, 0x09fd,</div><div class='add'>+	0x0a03, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3e, 0x0a40,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a6f,</div><div class='add'>+	0x0a72, 0x0a74,</div><div class='add'>+	0x0a76, 0x0a76,</div><div class='add'>+	0x0a83, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abd, 0x0ac0,</div><div class='add'>+	0x0ac9, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acc,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae1,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0af9,</div><div class='add'>+	0x0b02, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3d, 0x0b3d,</div><div class='add'>+	0x0b40, 0x0b40,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4c,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b83, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbf, 0x0bbf,</div><div class='add'>+	0x0bc1, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcc,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c3d,</div><div class='add'>+	0x0c41, 0x0c44,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c77, 0x0c80,</div><div class='add'>+	0x0c82, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbd, 0x0cbe,</div><div class='add'>+	0x0cc0, 0x0cc1,</div><div class='add'>+	0x0cc3, 0x0cc4,</div><div class='add'>+	0x0cc7, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccb,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf3,</div><div class='add'>+	0x0d02, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d3d,</div><div class='add'>+	0x0d3f, 0x0d40,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4c,</div><div class='add'>+	0x0d4e, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d56,</div><div class='add'>+	0x0d58, 0x0d61,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dd0, 0x0dd1,</div><div class='add'>+	0x0dd8, 0x0dde,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e30,</div><div class='add'>+	0x0e32, 0x0e33,</div><div class='add'>+	0x0e3f, 0x0e46,</div><div class='add'>+	0x0e4f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0eb0,</div><div class='add'>+	0x0eb2, 0x0eb3,</div><div class='add'>+	0x0ebd, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f17,</div><div class='add'>+	0x0f1a, 0x0f34,</div><div class='add'>+	0x0f36, 0x0f36,</div><div class='add'>+	0x0f38, 0x0f38,</div><div class='add'>+	0x0f3a, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f7f, 0x0f7f,</div><div class='add'>+	0x0f85, 0x0f85,</div><div class='add'>+	0x0f88, 0x0f8c,</div><div class='add'>+	0x0fbe, 0x0fc5,</div><div class='add'>+	0x0fc7, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x102c,</div><div class='add'>+	0x1031, 0x1031,</div><div class='add'>+	0x1038, 0x1038,</div><div class='add'>+	0x103b, 0x103c,</div><div class='add'>+	0x103f, 0x1057,</div><div class='add'>+	0x105a, 0x105d,</div><div class='add'>+	0x1061, 0x1070,</div><div class='add'>+	0x1075, 0x1081,</div><div class='add'>+	0x1083, 0x1084,</div><div class='add'>+	0x1087, 0x108c,</div><div class='add'>+	0x108e, 0x109c,</div><div class='add'>+	0x109e, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x1360, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x1711,</div><div class='add'>+	0x1715, 0x1715,</div><div class='add'>+	0x171f, 0x1731,</div><div class='add'>+	0x1734, 0x1736,</div><div class='add'>+	0x1740, 0x1751,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1780, 0x17b3,</div><div class='add'>+	0x17b6, 0x17b6,</div><div class='add'>+	0x17be, 0x17c5,</div><div class='add'>+	0x17c7, 0x17c8,</div><div class='add'>+	0x17d4, 0x17dc,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180a,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x1884,</div><div class='add'>+	0x1887, 0x18a8,</div><div class='add'>+	0x18aa, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1923, 0x1926,</div><div class='add'>+	0x1929, 0x192b,</div><div class='add'>+	0x1930, 0x1931,</div><div class='add'>+	0x1933, 0x1938,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a16,</div><div class='add'>+	0x1a19, 0x1a1a,</div><div class='add'>+	0x1a1e, 0x1a55,</div><div class='add'>+	0x1a57, 0x1a57,</div><div class='add'>+	0x1a61, 0x1a61,</div><div class='add'>+	0x1a63, 0x1a64,</div><div class='add'>+	0x1a6d, 0x1a72,</div><div class='add'>+	0x1a80, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1b04, 0x1b33,</div><div class='add'>+	0x1b3b, 0x1b3b,</div><div class='add'>+	0x1b3d, 0x1b41,</div><div class='add'>+	0x1b43, 0x1b4c,</div><div class='add'>+	0x1b50, 0x1b6a,</div><div class='add'>+	0x1b74, 0x1b7e,</div><div class='add'>+	0x1b82, 0x1ba1,</div><div class='add'>+	0x1ba6, 0x1ba7,</div><div class='add'>+	0x1baa, 0x1baa,</div><div class='add'>+	0x1bae, 0x1be5,</div><div class='add'>+	0x1be7, 0x1be7,</div><div class='add'>+	0x1bea, 0x1bec,</div><div class='add'>+	0x1bee, 0x1bee,</div><div class='add'>+	0x1bf2, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c2b,</div><div class='add'>+	0x1c34, 0x1c35,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cc7,</div><div class='add'>+	0x1cd3, 0x1cd3,</div><div class='add'>+	0x1ce1, 0x1ce1,</div><div class='add'>+	0x1ce9, 0x1cec,</div><div class='add'>+	0x1cee, 0x1cf3,</div><div class='add'>+	0x1cf5, 0x1cf7,</div><div class='add'>+	0x1cfa, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1dbf,</div><div class='add'>+	0x1e00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x200a,</div><div class='add'>+	0x2010, 0x2027,</div><div class='add'>+	0x202f, 0x205f,</div><div class='add'>+	0x2070, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20c0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b97, 0x2cee,</div><div class='add'>+	0x2cf2, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2e00, 0x2e5d,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x3029,</div><div class='add'>+	0x3030, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x309b, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa66e,</div><div class='add'>+	0xa673, 0xa673,</div><div class='add'>+	0xa67e, 0xa69d,</div><div class='add'>+	0xa6a0, 0xa6ef,</div><div class='add'>+	0xa6f2, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa801,</div><div class='add'>+	0xa803, 0xa805,</div><div class='add'>+	0xa807, 0xa80a,</div><div class='add'>+	0xa80c, 0xa824,</div><div class='add'>+	0xa827, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c3,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8f2, 0xa8fe,</div><div class='add'>+	0xa900, 0xa925,</div><div class='add'>+	0xa92e, 0xa946,</div><div class='add'>+	0xa952, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa983, 0xa9b2,</div><div class='add'>+	0xa9b4, 0xa9b5,</div><div class='add'>+	0xa9ba, 0xa9bb,</div><div class='add'>+	0xa9be, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9e4,</div><div class='add'>+	0xa9e6, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa28,</div><div class='add'>+	0xaa2f, 0xaa30,</div><div class='add'>+	0xaa33, 0xaa34,</div><div class='add'>+	0xaa40, 0xaa42,</div><div class='add'>+	0xaa44, 0xaa4b,</div><div class='add'>+	0xaa4d, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaa7b,</div><div class='add'>+	0xaa7d, 0xaaaf,</div><div class='add'>+	0xaab1, 0xaab1,</div><div class='add'>+	0xaab5, 0xaab6,</div><div class='add'>+	0xaab9, 0xaabd,</div><div class='add'>+	0xaac0, 0xaac0,</div><div class='add'>+	0xaac2, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaeb,</div><div class='add'>+	0xaaee, 0xaaf5,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab6b,</div><div class='add'>+	0xab70, 0xabe4,</div><div class='add'>+	0xabe6, 0xabe7,</div><div class='add'>+	0xabe9, 0xabec,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb1d,</div><div class='add'>+	0xfb1f, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc2,</div><div class='add'>+	0xfbd3, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdcf, 0xfdcf,</div><div class='add'>+	0xfdf0, 0xfdff,</div><div class='add'>+	0xfe10, 0xfe19,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xff01, 0xff9d,</div><div class='add'>+	0xffa0, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfffc, 0xfffd,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019c,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fc,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e1, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x10375,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a00,</div><div class='add'>+	0x10a10, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a40, 0x10a48,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae4,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10d23,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10ead, 0x10ead,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10f00, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f45,</div><div class='add'>+	0x10f51, 0x10f59,</div><div class='add'>+	0x10f70, 0x10f81,</div><div class='add'>+	0x10f86, 0x10f89,</div><div class='add'>+	0x10fb0, 0x10fcb,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x11000,</div><div class='add'>+	0x11002, 0x11037,</div><div class='add'>+	0x11047, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x11071, 0x11072,</div><div class='add'>+	0x11075, 0x11075,</div><div class='add'>+	0x11082, 0x110b2,</div><div class='add'>+	0x110b7, 0x110b8,</div><div class='add'>+	0x110bb, 0x110bc,</div><div class='add'>+	0x110be, 0x110c1,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11103, 0x11126,</div><div class='add'>+	0x1112c, 0x1112c,</div><div class='add'>+	0x11136, 0x11147,</div><div class='add'>+	0x11150, 0x11172,</div><div class='add'>+	0x11174, 0x11176,</div><div class='add'>+	0x11182, 0x111b5,</div><div class='add'>+	0x111bf, 0x111c8,</div><div class='add'>+	0x111cd, 0x111ce,</div><div class='add'>+	0x111d0, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1122e,</div><div class='add'>+	0x11232, 0x11233,</div><div class='add'>+	0x11235, 0x11235,</div><div class='add'>+	0x11238, 0x1123d,</div><div class='add'>+	0x1123f, 0x11240,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112de,</div><div class='add'>+	0x112e0, 0x112e2,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11302, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133d, 0x1133d,</div><div class='add'>+	0x1133f, 0x1133f,</div><div class='add'>+	0x11341, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11400, 0x11437,</div><div class='add'>+	0x11440, 0x11441,</div><div class='add'>+	0x11445, 0x11445,</div><div class='add'>+	0x11447, 0x1145b,</div><div class='add'>+	0x1145d, 0x1145d,</div><div class='add'>+	0x1145f, 0x11461,</div><div class='add'>+	0x11480, 0x114af,</div><div class='add'>+	0x114b1, 0x114b2,</div><div class='add'>+	0x114b9, 0x114b9,</div><div class='add'>+	0x114bb, 0x114bc,</div><div class='add'>+	0x114be, 0x114be,</div><div class='add'>+	0x114c1, 0x114c1,</div><div class='add'>+	0x114c4, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115ae,</div><div class='add'>+	0x115b0, 0x115b1,</div><div class='add'>+	0x115b8, 0x115bb,</div><div class='add'>+	0x115be, 0x115be,</div><div class='add'>+	0x115c1, 0x115db,</div><div class='add'>+	0x11600, 0x11632,</div><div class='add'>+	0x1163b, 0x1163c,</div><div class='add'>+	0x1163e, 0x1163e,</div><div class='add'>+	0x11641, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116aa,</div><div class='add'>+	0x116ac, 0x116ac,</div><div class='add'>+	0x116ae, 0x116af,</div><div class='add'>+	0x116b6, 0x116b6,</div><div class='add'>+	0x116b8, 0x116b9,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x11720, 0x11721,</div><div class='add'>+	0x11726, 0x11726,</div><div class='add'>+	0x11730, 0x11746,</div><div class='add'>+	0x11800, 0x1182e,</div><div class='add'>+	0x11838, 0x11838,</div><div class='add'>+	0x1183b, 0x1183b,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x1192f,</div><div class='add'>+	0x11931, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193d, 0x1193d,</div><div class='add'>+	0x1193f, 0x11942,</div><div class='add'>+	0x11944, 0x11946,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d3,</div><div class='add'>+	0x119dc, 0x119df,</div><div class='add'>+	0x119e1, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a00,</div><div class='add'>+	0x11a0b, 0x11a32,</div><div class='add'>+	0x11a39, 0x11a3a,</div><div class='add'>+	0x11a3f, 0x11a46,</div><div class='add'>+	0x11a50, 0x11a50,</div><div class='add'>+	0x11a57, 0x11a58,</div><div class='add'>+	0x11a5c, 0x11a89,</div><div class='add'>+	0x11a97, 0x11a97,</div><div class='add'>+	0x11a9a, 0x11aa2,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11b00, 0x11b09,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c2f,</div><div class='add'>+	0x11c3e, 0x11c3e,</div><div class='add'>+	0x11c40, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11ca9, 0x11ca9,</div><div class='add'>+	0x11cb1, 0x11cb1,</div><div class='add'>+	0x11cb4, 0x11cb4,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d30,</div><div class='add'>+	0x11d46, 0x11d46,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d93, 0x11d94,</div><div class='add'>+	0x11d96, 0x11d96,</div><div class='add'>+	0x11d98, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef2,</div><div class='add'>+	0x11ef5, 0x11ef8,</div><div class='add'>+	0x11f02, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f35,</div><div class='add'>+	0x11f3e, 0x11f3f,</div><div class='add'>+	0x11f41, 0x11f41,</div><div class='add'>+	0x11f43, 0x11f59,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x11fc0, 0x11ff1,</div><div class='add'>+	0x11fff, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff2,</div><div class='add'>+	0x13000, 0x1342f,</div><div class='add'>+	0x13441, 0x13446,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16abe,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af5, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b2f,</div><div class='add'>+	0x16b37, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e9a,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f50, 0x16f87,</div><div class='add'>+	0x16f93, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe3,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bc9c,</div><div class='add'>+	0x1bc9f, 0x1bc9f,</div><div class='add'>+	0x1cf50, 0x1cfc3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d164,</div><div class='add'>+	0x1d166, 0x1d166,</div><div class='add'>+	0x1d16a, 0x1d16d,</div><div class='add'>+	0x1d183, 0x1d184,</div><div class='add'>+	0x1d18c, 0x1d1a9,</div><div class='add'>+	0x1d1ae, 0x1d1ea,</div><div class='add'>+	0x1d200, 0x1d241,</div><div class='add'>+	0x1d245, 0x1d245,</div><div class='add'>+	0x1d2c0, 0x1d2d3,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d9ff,</div><div class='add'>+	0x1da37, 0x1da3a,</div><div class='add'>+	0x1da6d, 0x1da74,</div><div class='add'>+	0x1da76, 0x1da83,</div><div class='add'>+	0x1da85, 0x1da8b,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e137, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14f,</div><div class='add'>+	0x1e290, 0x1e2ad,</div><div class='add'>+	0x1e2c0, 0x1e2eb,</div><div class='add'>+	0x1e2f0, 0x1e2f9,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+	0x1e4d0, 0x1e4eb,</div><div class='add'>+	0x1e4f0, 0x1e4f9,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8cf,</div><div class='add'>+	0x1e900, 0x1e943,</div><div class='add'>+	0x1e94b, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ec71, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed3d,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f1ad,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d7,</div><div class='add'>+	0x1f6dc, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fc,</div><div class='add'>+	0x1f700, 0x1f776,</div><div class='add'>+	0x1f77b, 0x1f7d9,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f7f0, 0x1f7f0,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f8b0, 0x1f8b1,</div><div class='add'>+	0x1f900, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa7c,</div><div class='add'>+	0x1fa80, 0x1fa88,</div><div class='add'>+	0x1fa90, 0x1fabd,</div><div class='add'>+	0x1fabf, 0x1fac5,</div><div class='add'>+	0x1face, 0x1fadb,</div><div class='add'>+	0x1fae0, 0x1fae8,</div><div class='add'>+	0x1faf0, 0x1faf8,</div><div class='add'>+	0x1fb00, 0x1fb92,</div><div class='add'>+	0x1fb94, 0x1fbca,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+}; /* CR_Grapheme_Base */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Link': Derived Property */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Link[] = {</div><div class='add'>+	56,</div><div class='add'>+	0x094d, 0x094d,</div><div class='add'>+	0x09cd, 0x09cd,</div><div class='add'>+	0x0a4d, 0x0a4d,</div><div class='add'>+	0x0acd, 0x0acd,</div><div class='add'>+	0x0b4d, 0x0b4d,</div><div class='add'>+	0x0bcd, 0x0bcd,</div><div class='add'>+	0x0c4d, 0x0c4d,</div><div class='add'>+	0x0ccd, 0x0ccd,</div><div class='add'>+	0x0d3b, 0x0d3c,</div><div class='add'>+	0x0d4d, 0x0d4d,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0e3a, 0x0e3a,</div><div class='add'>+	0x0eba, 0x0eba,</div><div class='add'>+	0x0f84, 0x0f84,</div><div class='add'>+	0x1039, 0x103a,</div><div class='add'>+	0x1714, 0x1715,</div><div class='add'>+	0x1734, 0x1734,</div><div class='add'>+	0x17d2, 0x17d2,</div><div class='add'>+	0x1a60, 0x1a60,</div><div class='add'>+	0x1b44, 0x1b44,</div><div class='add'>+	0x1baa, 0x1bab,</div><div class='add'>+	0x1bf2, 0x1bf3,</div><div class='add'>+	0x2d7f, 0x2d7f,</div><div class='add'>+	0xa806, 0xa806,</div><div class='add'>+	0xa82c, 0xa82c,</div><div class='add'>+	0xa8c4, 0xa8c4,</div><div class='add'>+	0xa953, 0xa953,</div><div class='add'>+	0xa9c0, 0xa9c0,</div><div class='add'>+	0xaaf6, 0xaaf6,</div><div class='add'>+	0xabed, 0xabed,</div><div class='add'>+	0x10a3f, 0x10a3f,</div><div class='add'>+	0x11046, 0x11046,</div><div class='add'>+	0x11070, 0x11070,</div><div class='add'>+	0x1107f, 0x1107f,</div><div class='add'>+	0x110b9, 0x110b9,</div><div class='add'>+	0x11133, 0x11134,</div><div class='add'>+	0x111c0, 0x111c0,</div><div class='add'>+	0x11235, 0x11235,</div><div class='add'>+	0x112ea, 0x112ea,</div><div class='add'>+	0x1134d, 0x1134d,</div><div class='add'>+	0x11442, 0x11442,</div><div class='add'>+	0x114c2, 0x114c2,</div><div class='add'>+	0x115bf, 0x115bf,</div><div class='add'>+	0x1163f, 0x1163f,</div><div class='add'>+	0x116b6, 0x116b6,</div><div class='add'>+	0x1172b, 0x1172b,</div><div class='add'>+	0x11839, 0x11839,</div><div class='add'>+	0x1193d, 0x1193e,</div><div class='add'>+	0x119e0, 0x119e0,</div><div class='add'>+	0x11a34, 0x11a34,</div><div class='add'>+	0x11a47, 0x11a47,</div><div class='add'>+	0x11a99, 0x11a99,</div><div class='add'>+	0x11c3f, 0x11c3f,</div><div class='add'>+	0x11d44, 0x11d45,</div><div class='add'>+	0x11d97, 0x11d97,</div><div class='add'>+	0x11f41, 0x11f42,</div><div class='add'>+}; /* CR_Grapheme_Link */</div><div class='add'>+</div><div class='add'>+/* 'Common': Script */</div><div class='add'>+static const OnigCodePoint CR_Common[] = {</div><div class='add'>+	173,</div><div class='add'>+	0x0000, 0x0040,</div><div class='add'>+	0x005b, 0x0060,</div><div class='add'>+	0x007b, 0x00a9,</div><div class='add'>+	0x00ab, 0x00b9,</div><div class='add'>+	0x00bb, 0x00bf,</div><div class='add'>+	0x00d7, 0x00d7,</div><div class='add'>+	0x00f7, 0x00f7,</div><div class='add'>+	0x02b9, 0x02df,</div><div class='add'>+	0x02e5, 0x02e9,</div><div class='add'>+	0x02ec, 0x02ff,</div><div class='add'>+	0x0374, 0x0374,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0385, 0x0385,</div><div class='add'>+	0x0387, 0x0387,</div><div class='add'>+	0x0605, 0x0605,</div><div class='add'>+	0x060c, 0x060c,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061f, 0x061f,</div><div class='add'>+	0x0640, 0x0640,</div><div class='add'>+	0x06dd, 0x06dd,</div><div class='add'>+	0x08e2, 0x08e2,</div><div class='add'>+	0x0964, 0x0965,</div><div class='add'>+	0x0e3f, 0x0e3f,</div><div class='add'>+	0x0fd5, 0x0fd8,</div><div class='add'>+	0x10fb, 0x10fb,</div><div class='add'>+	0x16eb, 0x16ed,</div><div class='add'>+	0x1735, 0x1736,</div><div class='add'>+	0x1802, 0x1803,</div><div class='add'>+	0x1805, 0x1805,</div><div class='add'>+	0x1cd3, 0x1cd3,</div><div class='add'>+	0x1ce1, 0x1ce1,</div><div class='add'>+	0x1ce9, 0x1cec,</div><div class='add'>+	0x1cee, 0x1cf3,</div><div class='add'>+	0x1cf5, 0x1cf7,</div><div class='add'>+	0x1cfa, 0x1cfa,</div><div class='add'>+	0x2000, 0x200b,</div><div class='add'>+	0x200e, 0x2064,</div><div class='add'>+	0x2066, 0x2070,</div><div class='add'>+	0x2074, 0x207e,</div><div class='add'>+	0x2080, 0x208e,</div><div class='add'>+	0x20a0, 0x20c0,</div><div class='add'>+	0x2100, 0x2125,</div><div class='add'>+	0x2127, 0x2129,</div><div class='add'>+	0x212c, 0x2131,</div><div class='add'>+	0x2133, 0x214d,</div><div class='add'>+	0x214f, 0x215f,</div><div class='add'>+	0x2189, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x27ff,</div><div class='add'>+	0x2900, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b97, 0x2bff,</div><div class='add'>+	0x2e00, 0x2e5d,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x3004,</div><div class='add'>+	0x3006, 0x3006,</div><div class='add'>+	0x3008, 0x3020,</div><div class='add'>+	0x3030, 0x3037,</div><div class='add'>+	0x303c, 0x303f,</div><div class='add'>+	0x309b, 0x309c,</div><div class='add'>+	0x30a0, 0x30a0,</div><div class='add'>+	0x30fb, 0x30fc,</div><div class='add'>+	0x3190, 0x319f,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x3220, 0x325f,</div><div class='add'>+	0x327f, 0x32cf,</div><div class='add'>+	0x32ff, 0x32ff,</div><div class='add'>+	0x3358, 0x33ff,</div><div class='add'>+	0x4dc0, 0x4dff,</div><div class='add'>+	0xa700, 0xa721,</div><div class='add'>+	0xa788, 0xa78a,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa92e, 0xa92e,</div><div class='add'>+	0xa9cf, 0xa9cf,</div><div class='add'>+	0xab5b, 0xab5b,</div><div class='add'>+	0xab6a, 0xab6b,</div><div class='add'>+	0xfd3e, 0xfd3f,</div><div class='add'>+	0xfe10, 0xfe19,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xff20,</div><div class='add'>+	0xff3b, 0xff40,</div><div class='add'>+	0xff5b, 0xff65,</div><div class='add'>+	0xff70, 0xff70,</div><div class='add'>+	0xff9e, 0xff9f,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0xfffd,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1013f,</div><div class='add'>+	0x10190, 0x1019c,</div><div class='add'>+	0x101d0, 0x101fc,</div><div class='add'>+	0x102e1, 0x102fb,</div><div class='add'>+	0x1bca0, 0x1bca3,</div><div class='add'>+	0x1cf50, 0x1cfc3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d166,</div><div class='add'>+	0x1d16a, 0x1d17a,</div><div class='add'>+	0x1d183, 0x1d184,</div><div class='add'>+	0x1d18c, 0x1d1a9,</div><div class='add'>+	0x1d1ae, 0x1d1ea,</div><div class='add'>+	0x1d2c0, 0x1d2d3,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1ec71, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed3d,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f1ad,</div><div class='add'>+	0x1f1e6, 0x1f1ff,</div><div class='add'>+	0x1f201, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d7,</div><div class='add'>+	0x1f6dc, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fc,</div><div class='add'>+	0x1f700, 0x1f776,</div><div class='add'>+	0x1f77b, 0x1f7d9,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f7f0, 0x1f7f0,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f8b0, 0x1f8b1,</div><div class='add'>+	0x1f900, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa7c,</div><div class='add'>+	0x1fa80, 0x1fa88,</div><div class='add'>+	0x1fa90, 0x1fabd,</div><div class='add'>+	0x1fabf, 0x1fac5,</div><div class='add'>+	0x1face, 0x1fadb,</div><div class='add'>+	0x1fae0, 0x1fae8,</div><div class='add'>+	0x1faf0, 0x1faf8,</div><div class='add'>+	0x1fb00, 0x1fb92,</div><div class='add'>+	0x1fb94, 0x1fbca,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+}; /* CR_Common */</div><div class='add'>+</div><div class='add'>+/* 'Latin': Script */</div><div class='add'>+static const OnigCodePoint CR_Latin[] = {</div><div class='add'>+	39,</div><div class='add'>+	0x0041, 0x005a,</div><div class='add'>+	0x0061, 0x007a,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x00c0, 0x00d6,</div><div class='add'>+	0x00d8, 0x00f6,</div><div class='add'>+	0x00f8, 0x02b8,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x1d00, 0x1d25,</div><div class='add'>+	0x1d2c, 0x1d5c,</div><div class='add'>+	0x1d62, 0x1d65,</div><div class='add'>+	0x1d6b, 0x1d77,</div><div class='add'>+	0x1d79, 0x1dbe,</div><div class='add'>+	0x1e00, 0x1eff,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x212a, 0x212b,</div><div class='add'>+	0x2132, 0x2132,</div><div class='add'>+	0x214e, 0x214e,</div><div class='add'>+	0x2160, 0x2188,</div><div class='add'>+	0x2c60, 0x2c7f,</div><div class='add'>+	0xa722, 0xa787,</div><div class='add'>+	0xa78b, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa7ff,</div><div class='add'>+	0xab30, 0xab5a,</div><div class='add'>+	0xab5c, 0xab64,</div><div class='add'>+	0xab66, 0xab69,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xff21, 0xff3a,</div><div class='add'>+	0xff41, 0xff5a,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+}; /* CR_Latin */</div><div class='add'>+</div><div class='add'>+/* 'Greek': Script */</div><div class='add'>+static const OnigCodePoint CR_Greek[] = {</div><div class='add'>+	36,</div><div class='add'>+	0x0370, 0x0373,</div><div class='add'>+	0x0375, 0x0377,</div><div class='add'>+	0x037a, 0x037d,</div><div class='add'>+	0x037f, 0x037f,</div><div class='add'>+	0x0384, 0x0384,</div><div class='add'>+	0x0386, 0x0386,</div><div class='add'>+	0x0388, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03e1,</div><div class='add'>+	0x03f0, 0x03ff,</div><div class='add'>+	0x1d26, 0x1d2a,</div><div class='add'>+	0x1d5d, 0x1d61,</div><div class='add'>+	0x1d66, 0x1d6a,</div><div class='add'>+	0x1dbf, 0x1dbf,</div><div class='add'>+	0x1f00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2126, 0x2126,</div><div class='add'>+	0xab65, 0xab65,</div><div class='add'>+	0x10140, 0x1018e,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+}; /* CR_Greek */</div><div class='add'>+</div><div class='add'>+/* 'Cyrillic': Script */</div><div class='add'>+static const OnigCodePoint CR_Cyrillic[] = {</div><div class='add'>+	10,</div><div class='add'>+	0x0400, 0x0484,</div><div class='add'>+	0x0487, 0x052f,</div><div class='add'>+	0x1c80, 0x1c88,</div><div class='add'>+	0x1d2b, 0x1d2b,</div><div class='add'>+	0x1d78, 0x1d78,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0xa640, 0xa69f,</div><div class='add'>+	0xfe2e, 0xfe2f,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+}; /* CR_Cyrillic */</div><div class='add'>+</div><div class='add'>+/* 'Armenian': Script */</div><div class='add'>+static const OnigCodePoint CR_Armenian[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+}; /* CR_Armenian */</div><div class='add'>+</div><div class='add'>+/* 'Hebrew': Script */</div><div class='add'>+static const OnigCodePoint CR_Hebrew[] = {</div><div class='add'>+	9,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f4,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfb4f,</div><div class='add'>+}; /* CR_Hebrew */</div><div class='add'>+</div><div class='add'>+/* 'Arabic': Script */</div><div class='add'>+static const OnigCodePoint CR_Arabic[] = {</div><div class='add'>+	58,</div><div class='add'>+	0x0600, 0x0604,</div><div class='add'>+	0x0606, 0x060b,</div><div class='add'>+	0x060d, 0x061a,</div><div class='add'>+	0x061c, 0x061e,</div><div class='add'>+	0x0620, 0x063f,</div><div class='add'>+	0x0641, 0x064a,</div><div class='add'>+	0x0656, 0x066f,</div><div class='add'>+	0x0671, 0x06dc,</div><div class='add'>+	0x06de, 0x06ff,</div><div class='add'>+	0x0750, 0x077f,</div><div class='add'>+	0x0870, 0x088e,</div><div class='add'>+	0x0890, 0x0891,</div><div class='add'>+	0x0898, 0x08e1,</div><div class='add'>+	0x08e3, 0x08ff,</div><div class='add'>+	0xfb50, 0xfbc2,</div><div class='add'>+	0xfbd3, 0xfd3d,</div><div class='add'>+	0xfd40, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdcf, 0xfdcf,</div><div class='add'>+	0xfdf0, 0xfdff,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10efd, 0x10eff,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+}; /* CR_Arabic */</div><div class='add'>+</div><div class='add'>+/* 'Syriac': Script */</div><div class='add'>+static const OnigCodePoint CR_Syriac[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x0700, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x074f,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+}; /* CR_Syriac */</div><div class='add'>+</div><div class='add'>+/* 'Thaana': Script */</div><div class='add'>+static const OnigCodePoint CR_Thaana[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0780, 0x07b1,</div><div class='add'>+}; /* CR_Thaana */</div><div class='add'>+</div><div class='add'>+/* 'Devanagari': Script */</div><div class='add'>+static const OnigCodePoint CR_Devanagari[] = {</div><div class='add'>+	5,</div><div class='add'>+	0x0900, 0x0950,</div><div class='add'>+	0x0955, 0x0963,</div><div class='add'>+	0x0966, 0x097f,</div><div class='add'>+	0xa8e0, 0xa8ff,</div><div class='add'>+	0x11b00, 0x11b09,</div><div class='add'>+}; /* CR_Devanagari */</div><div class='add'>+</div><div class='add'>+/* 'Bengali': Script */</div><div class='add'>+static const OnigCodePoint CR_Bengali[] = {</div><div class='add'>+	14,</div><div class='add'>+	0x0980, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fe,</div><div class='add'>+}; /* CR_Bengali */</div><div class='add'>+</div><div class='add'>+/* 'Gurmukhi': Script */</div><div class='add'>+static const OnigCodePoint CR_Gurmukhi[] = {</div><div class='add'>+	16,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a76,</div><div class='add'>+}; /* CR_Gurmukhi */</div><div class='add'>+</div><div class='add'>+/* 'Gujarati': Script */</div><div class='add'>+static const OnigCodePoint CR_Gujarati[] = {</div><div class='add'>+	14,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+}; /* CR_Gujarati */</div><div class='add'>+</div><div class='add'>+/* 'Oriya': Script */</div><div class='add'>+static const OnigCodePoint CR_Oriya[] = {</div><div class='add'>+	14,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+}; /* CR_Oriya */</div><div class='add'>+</div><div class='add'>+/* 'Tamil': Script */</div><div class='add'>+static const OnigCodePoint CR_Tamil[] = {</div><div class='add'>+	18,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x11fc0, 0x11ff1,</div><div class='add'>+	0x11fff, 0x11fff,</div><div class='add'>+}; /* CR_Tamil */</div><div class='add'>+</div><div class='add'>+/* 'Telugu': Script */</div><div class='add'>+static const OnigCodePoint CR_Telugu[] = {</div><div class='add'>+	13,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3c, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c77, 0x0c7f,</div><div class='add'>+}; /* CR_Telugu */</div><div class='add'>+</div><div class='add'>+/* 'Kannada': Script */</div><div class='add'>+static const OnigCodePoint CR_Kannada[] = {</div><div class='add'>+	13,</div><div class='add'>+	0x0c80, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf3,</div><div class='add'>+}; /* CR_Kannada */</div><div class='add'>+</div><div class='add'>+/* 'Malayalam': Script */</div><div class='add'>+static const OnigCodePoint CR_Malayalam[] = {</div><div class='add'>+	7,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+}; /* CR_Malayalam */</div><div class='add'>+</div><div class='add'>+/* 'Sinhala': Script */</div><div class='add'>+static const OnigCodePoint CR_Sinhala[] = {</div><div class='add'>+	13,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+}; /* CR_Sinhala */</div><div class='add'>+</div><div class='add'>+/* 'Thai': Script */</div><div class='add'>+static const OnigCodePoint CR_Thai[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e40, 0x0e5b,</div><div class='add'>+}; /* CR_Thai */</div><div class='add'>+</div><div class='add'>+/* 'Lao': Script */</div><div class='add'>+static const OnigCodePoint CR_Lao[] = {</div><div class='add'>+	11,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+}; /* CR_Lao */</div><div class='add'>+</div><div class='add'>+/* 'Tibetan': Script */</div><div class='add'>+static const OnigCodePoint CR_Tibetan[] = {</div><div class='add'>+	7,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fd4,</div><div class='add'>+	0x0fd9, 0x0fda,</div><div class='add'>+}; /* CR_Tibetan */</div><div class='add'>+</div><div class='add'>+/* 'Myanmar': Script */</div><div class='add'>+static const OnigCodePoint CR_Myanmar[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x1000, 0x109f,</div><div class='add'>+	0xa9e0, 0xa9fe,</div><div class='add'>+	0xaa60, 0xaa7f,</div><div class='add'>+}; /* CR_Myanmar */</div><div class='add'>+</div><div class='add'>+/* 'Georgian': Script */</div><div class='add'>+static const OnigCodePoint CR_Georgian[] = {</div><div class='add'>+	10,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x10fa,</div><div class='add'>+	0x10fc, 0x10ff,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cbf,</div><div class='add'>+	0x2d00, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+}; /* CR_Georgian */</div><div class='add'>+</div><div class='add'>+/* 'Hangul': Script */</div><div class='add'>+static const OnigCodePoint CR_Hangul[] = {</div><div class='add'>+	14,</div><div class='add'>+	0x1100, 0x11ff,</div><div class='add'>+	0x302e, 0x302f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3200, 0x321e,</div><div class='add'>+	0x3260, 0x327e,</div><div class='add'>+	0xa960, 0xa97c,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xffa0, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+}; /* CR_Hangul */</div><div class='add'>+</div><div class='add'>+/* 'Ethiopic': Script */</div><div class='add'>+static const OnigCodePoint CR_Ethiopic[] = {</div><div class='add'>+	36,</div><div class='add'>+	0x1200, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+}; /* CR_Ethiopic */</div><div class='add'>+</div><div class='add'>+/* 'Cherokee': Script */</div><div class='add'>+static const OnigCodePoint CR_Cherokee[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0xab70, 0xabbf,</div><div class='add'>+}; /* CR_Cherokee */</div><div class='add'>+</div><div class='add'>+/* 'Canadian_Aboriginal': Script */</div><div class='add'>+static const OnigCodePoint CR_Canadian_Aboriginal[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x1400, 0x167f,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x11ab0, 0x11abf,</div><div class='add'>+}; /* CR_Canadian_Aboriginal */</div><div class='add'>+</div><div class='add'>+/* 'Ogham': Script */</div><div class='add'>+static const OnigCodePoint CR_Ogham[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1680, 0x169c,</div><div class='add'>+}; /* CR_Ogham */</div><div class='add'>+</div><div class='add'>+/* 'Runic': Script */</div><div class='add'>+static const OnigCodePoint CR_Runic[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x16a0, 0x16ea,</div><div class='add'>+	0x16ee, 0x16f8,</div><div class='add'>+}; /* CR_Runic */</div><div class='add'>+</div><div class='add'>+/* 'Khmer': Script */</div><div class='add'>+static const OnigCodePoint CR_Khmer[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x19e0, 0x19ff,</div><div class='add'>+}; /* CR_Khmer */</div><div class='add'>+</div><div class='add'>+/* 'Mongolian': Script */</div><div class='add'>+static const OnigCodePoint CR_Mongolian[] = {</div><div class='add'>+	6,</div><div class='add'>+	0x1800, 0x1801,</div><div class='add'>+	0x1804, 0x1804,</div><div class='add'>+	0x1806, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+}; /* CR_Mongolian */</div><div class='add'>+</div><div class='add'>+/* 'Hiragana': Script */</div><div class='add'>+static const OnigCodePoint CR_Hiragana[] = {</div><div class='add'>+	6,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x309d, 0x309f,</div><div class='add'>+	0x1b001, 0x1b11f,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1f200, 0x1f200,</div><div class='add'>+}; /* CR_Hiragana */</div><div class='add'>+</div><div class='add'>+/* 'Katakana': Script */</div><div class='add'>+static const OnigCodePoint CR_Katakana[] = {</div><div class='add'>+	14,</div><div class='add'>+	0x30a1, 0x30fa,</div><div class='add'>+	0x30fd, 0x30ff,</div><div class='add'>+	0x31f0, 0x31ff,</div><div class='add'>+	0x32d0, 0x32fe,</div><div class='add'>+	0x3300, 0x3357,</div><div class='add'>+	0xff66, 0xff6f,</div><div class='add'>+	0xff71, 0xff9d,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b000,</div><div class='add'>+	0x1b120, 0x1b122,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+}; /* CR_Katakana */</div><div class='add'>+</div><div class='add'>+/* 'Bopomofo': Script */</div><div class='add'>+static const OnigCodePoint CR_Bopomofo[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x02ea, 0x02eb,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x31a0, 0x31bf,</div><div class='add'>+}; /* CR_Bopomofo */</div><div class='add'>+</div><div class='add'>+/* 'Han': Script */</div><div class='add'>+static const OnigCodePoint CR_Han[] = {</div><div class='add'>+	21,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x3005, 0x3005,</div><div class='add'>+	0x3007, 0x3007,</div><div class='add'>+	0x3021, 0x3029,</div><div class='add'>+	0x3038, 0x303b,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0x9fff,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0x16fe2, 0x16fe3,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+}; /* CR_Han */</div><div class='add'>+</div><div class='add'>+/* 'Yi': Script */</div><div class='add'>+static const OnigCodePoint CR_Yi[] = {</div><div class='add'>+	2,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+}; /* CR_Yi */</div><div class='add'>+</div><div class='add'>+/* 'Old_Italic': Script */</div><div class='add'>+static const OnigCodePoint CR_Old_Italic[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1032f,</div><div class='add'>+}; /* CR_Old_Italic */</div><div class='add'>+</div><div class='add'>+/* 'Gothic': Script */</div><div class='add'>+static const OnigCodePoint CR_Gothic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+}; /* CR_Gothic */</div><div class='add'>+</div><div class='add'>+/* 'Deseret': Script */</div><div class='add'>+static const OnigCodePoint CR_Deseret[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10400, 0x1044f,</div><div class='add'>+}; /* CR_Deseret */</div><div class='add'>+</div><div class='add'>+/* 'Inherited': Script */</div><div class='add'>+static const OnigCodePoint CR_Inherited[] = {</div><div class='add'>+	29,</div><div class='add'>+	0x0300, 0x036f,</div><div class='add'>+	0x0485, 0x0486,</div><div class='add'>+	0x064b, 0x0655,</div><div class='add'>+	0x0670, 0x0670,</div><div class='add'>+	0x0951, 0x0954,</div><div class='add'>+	0x1ab0, 0x1ace,</div><div class='add'>+	0x1cd0, 0x1cd2,</div><div class='add'>+	0x1cd4, 0x1ce0,</div><div class='add'>+	0x1ce2, 0x1ce8,</div><div class='add'>+	0x1ced, 0x1ced,</div><div class='add'>+	0x1cf4, 0x1cf4,</div><div class='add'>+	0x1cf8, 0x1cf9,</div><div class='add'>+	0x1dc0, 0x1dff,</div><div class='add'>+	0x200c, 0x200d,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x302a, 0x302d,</div><div class='add'>+	0x3099, 0x309a,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfe20, 0xfe2d,</div><div class='add'>+	0x101fd, 0x101fd,</div><div class='add'>+	0x102e0, 0x102e0,</div><div class='add'>+	0x1133b, 0x1133b,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1d167, 0x1d169,</div><div class='add'>+	0x1d17b, 0x1d182,</div><div class='add'>+	0x1d185, 0x1d18b,</div><div class='add'>+	0x1d1aa, 0x1d1ad,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+}; /* CR_Inherited */</div><div class='add'>+</div><div class='add'>+/* 'Tagalog': Script */</div><div class='add'>+static const OnigCodePoint CR_Tagalog[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x1700, 0x1715,</div><div class='add'>+	0x171f, 0x171f,</div><div class='add'>+}; /* CR_Tagalog */</div><div class='add'>+</div><div class='add'>+/* 'Hanunoo': Script */</div><div class='add'>+static const OnigCodePoint CR_Hanunoo[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1720, 0x1734,</div><div class='add'>+}; /* CR_Hanunoo */</div><div class='add'>+</div><div class='add'>+/* 'Buhid': Script */</div><div class='add'>+static const OnigCodePoint CR_Buhid[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+}; /* CR_Buhid */</div><div class='add'>+</div><div class='add'>+/* 'Tagbanwa': Script */</div><div class='add'>+static const OnigCodePoint CR_Tagbanwa[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+}; /* CR_Tagbanwa */</div><div class='add'>+</div><div class='add'>+/* 'Limbu': Script */</div><div class='add'>+static const OnigCodePoint CR_Limbu[] = {</div><div class='add'>+	5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x194f,</div><div class='add'>+}; /* CR_Limbu */</div><div class='add'>+</div><div class='add'>+/* 'Tai_Le': Script */</div><div class='add'>+static const OnigCodePoint CR_Tai_Le[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x1950, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+}; /* CR_Tai_Le */</div><div class='add'>+</div><div class='add'>+/* 'Linear_B': Script */</div><div class='add'>+static const OnigCodePoint CR_Linear_B[] = {</div><div class='add'>+	7,</div><div class='add'>+	0x10000, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+}; /* CR_Linear_B */</div><div class='add'>+</div><div class='add'>+/* 'Ugaritic': Script */</div><div class='add'>+static const OnigCodePoint CR_Ugaritic[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x1039f,</div><div class='add'>+}; /* CR_Ugaritic */</div><div class='add'>+</div><div class='add'>+/* 'Shavian': Script */</div><div class='add'>+static const OnigCodePoint CR_Shavian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10450, 0x1047f,</div><div class='add'>+}; /* CR_Shavian */</div><div class='add'>+</div><div class='add'>+/* 'Osmanya': Script */</div><div class='add'>+static const OnigCodePoint CR_Osmanya[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10480, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+}; /* CR_Osmanya */</div><div class='add'>+</div><div class='add'>+/* 'Cypriot': Script */</div><div class='add'>+static const OnigCodePoint CR_Cypriot[] = {</div><div class='add'>+	6,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x1083f,</div><div class='add'>+}; /* CR_Cypriot */</div><div class='add'>+</div><div class='add'>+/* 'Braille': Script */</div><div class='add'>+static const OnigCodePoint CR_Braille[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2800, 0x28ff,</div><div class='add'>+}; /* CR_Braille */</div><div class='add'>+</div><div class='add'>+/* 'Buginese': Script */</div><div class='add'>+static const OnigCodePoint CR_Buginese[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x1a00, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a1f,</div><div class='add'>+}; /* CR_Buginese */</div><div class='add'>+</div><div class='add'>+/* 'Coptic': Script */</div><div class='add'>+static const OnigCodePoint CR_Coptic[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x03e2, 0x03ef,</div><div class='add'>+	0x2c80, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2cff,</div><div class='add'>+}; /* CR_Coptic */</div><div class='add'>+</div><div class='add'>+/* 'New_Tai_Lue': Script */</div><div class='add'>+static const OnigCodePoint CR_New_Tai_Lue[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x19df,</div><div class='add'>+}; /* CR_New_Tai_Lue */</div><div class='add'>+</div><div class='add'>+/* 'Glagolitic': Script */</div><div class='add'>+static const OnigCodePoint CR_Glagolitic[] = {</div><div class='add'>+	6,</div><div class='add'>+	0x2c00, 0x2c5f,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+}; /* CR_Glagolitic */</div><div class='add'>+</div><div class='add'>+/* 'Tifinagh': Script */</div><div class='add'>+static const OnigCodePoint CR_Tifinagh[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d7f,</div><div class='add'>+}; /* CR_Tifinagh */</div><div class='add'>+</div><div class='add'>+/* 'Syloti_Nagri': Script */</div><div class='add'>+static const OnigCodePoint CR_Syloti_Nagri[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa800, 0xa82c,</div><div class='add'>+}; /* CR_Syloti_Nagri */</div><div class='add'>+</div><div class='add'>+/* 'Old_Persian': Script */</div><div class='add'>+static const OnigCodePoint CR_Old_Persian[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x103a0, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+}; /* CR_Old_Persian */</div><div class='add'>+</div><div class='add'>+/* 'Kharoshthi': Script */</div><div class='add'>+static const OnigCodePoint CR_Kharoshthi[] = {</div><div class='add'>+	8,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a48,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+}; /* CR_Kharoshthi */</div><div class='add'>+</div><div class='add'>+/* 'Balinese': Script */</div><div class='add'>+static const OnigCodePoint CR_Balinese[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x1b00, 0x1b4c,</div><div class='add'>+	0x1b50, 0x1b7e,</div><div class='add'>+}; /* CR_Balinese */</div><div class='add'>+</div><div class='add'>+/* 'Cuneiform': Script */</div><div class='add'>+static const OnigCodePoint CR_Cuneiform[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+}; /* CR_Cuneiform */</div><div class='add'>+</div><div class='add'>+/* 'Phoenician': Script */</div><div class='add'>+static const OnigCodePoint CR_Phoenician[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10900, 0x1091b,</div><div class='add'>+	0x1091f, 0x1091f,</div><div class='add'>+}; /* CR_Phoenician */</div><div class='add'>+</div><div class='add'>+/* 'Phags_Pa': Script */</div><div class='add'>+static const OnigCodePoint CR_Phags_Pa[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+}; /* CR_Phags_Pa */</div><div class='add'>+</div><div class='add'>+/* 'Nko': Script */</div><div class='add'>+static const OnigCodePoint CR_Nko[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x07fd, 0x07ff,</div><div class='add'>+}; /* CR_Nko */</div><div class='add'>+</div><div class='add'>+/* 'Sundanese': Script */</div><div class='add'>+static const OnigCodePoint CR_Sundanese[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x1b80, 0x1bbf,</div><div class='add'>+	0x1cc0, 0x1cc7,</div><div class='add'>+}; /* CR_Sundanese */</div><div class='add'>+</div><div class='add'>+/* 'Lepcha': Script */</div><div class='add'>+static const OnigCodePoint CR_Lepcha[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x1c00, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c4f,</div><div class='add'>+}; /* CR_Lepcha */</div><div class='add'>+</div><div class='add'>+/* 'Ol_Chiki': Script */</div><div class='add'>+static const OnigCodePoint CR_Ol_Chiki[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1c50, 0x1c7f,</div><div class='add'>+}; /* CR_Ol_Chiki */</div><div class='add'>+</div><div class='add'>+/* 'Vai': Script */</div><div class='add'>+static const OnigCodePoint CR_Vai[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa500, 0xa62b,</div><div class='add'>+}; /* CR_Vai */</div><div class='add'>+</div><div class='add'>+/* 'Saurashtra': Script */</div><div class='add'>+static const OnigCodePoint CR_Saurashtra[] = {</div><div class='add'>+	2,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+}; /* CR_Saurashtra */</div><div class='add'>+</div><div class='add'>+/* 'Kayah_Li': Script */</div><div class='add'>+static const OnigCodePoint CR_Kayah_Li[] = {</div><div class='add'>+	2,</div><div class='add'>+	0xa900, 0xa92d,</div><div class='add'>+	0xa92f, 0xa92f,</div><div class='add'>+}; /* CR_Kayah_Li */</div><div class='add'>+</div><div class='add'>+/* 'Rejang': Script */</div><div class='add'>+static const OnigCodePoint CR_Rejang[] = {</div><div class='add'>+	2,</div><div class='add'>+	0xa930, 0xa953,</div><div class='add'>+	0xa95f, 0xa95f,</div><div class='add'>+}; /* CR_Rejang */</div><div class='add'>+</div><div class='add'>+/* 'Lycian': Script */</div><div class='add'>+static const OnigCodePoint CR_Lycian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+}; /* CR_Lycian */</div><div class='add'>+</div><div class='add'>+/* 'Carian': Script */</div><div class='add'>+static const OnigCodePoint CR_Carian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+}; /* CR_Carian */</div><div class='add'>+</div><div class='add'>+/* 'Lydian': Script */</div><div class='add'>+static const OnigCodePoint CR_Lydian[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10920, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+}; /* CR_Lydian */</div><div class='add'>+</div><div class='add'>+/* 'Cham': Script */</div><div class='add'>+static const OnigCodePoint CR_Cham[] = {</div><div class='add'>+	4,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaa5f,</div><div class='add'>+}; /* CR_Cham */</div><div class='add'>+</div><div class='add'>+/* 'Tai_Tham': Script */</div><div class='add'>+static const OnigCodePoint CR_Tai_Tham[] = {</div><div class='add'>+	5,</div><div class='add'>+	0x1a20, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+}; /* CR_Tai_Tham */</div><div class='add'>+</div><div class='add'>+/* 'Tai_Viet': Script */</div><div class='add'>+static const OnigCodePoint CR_Tai_Viet[] = {</div><div class='add'>+	2,</div><div class='add'>+	0xaa80, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadf,</div><div class='add'>+}; /* CR_Tai_Viet */</div><div class='add'>+</div><div class='add'>+/* 'Avestan': Script */</div><div class='add'>+static const OnigCodePoint CR_Avestan[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b3f,</div><div class='add'>+}; /* CR_Avestan */</div><div class='add'>+</div><div class='add'>+/* 'Egyptian_Hieroglyphs': Script */</div><div class='add'>+static const OnigCodePoint CR_Egyptian_Hieroglyphs[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x13000, 0x13455,</div><div class='add'>+}; /* CR_Egyptian_Hieroglyphs */</div><div class='add'>+</div><div class='add'>+/* 'Samaritan': Script */</div><div class='add'>+static const OnigCodePoint CR_Samaritan[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+}; /* CR_Samaritan */</div><div class='add'>+</div><div class='add'>+/* 'Lisu': Script */</div><div class='add'>+static const OnigCodePoint CR_Lisu[] = {</div><div class='add'>+	2,</div><div class='add'>+	0xa4d0, 0xa4ff,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+}; /* CR_Lisu */</div><div class='add'>+</div><div class='add'>+/* 'Bamum': Script */</div><div class='add'>+static const OnigCodePoint CR_Bamum[] = {</div><div class='add'>+	2,</div><div class='add'>+	0xa6a0, 0xa6f7,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+}; /* CR_Bamum */</div><div class='add'>+</div><div class='add'>+/* 'Javanese': Script */</div><div class='add'>+static const OnigCodePoint CR_Javanese[] = {</div><div class='add'>+	3,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9d0, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9df,</div><div class='add'>+}; /* CR_Javanese */</div><div class='add'>+</div><div class='add'>+/* 'Meetei_Mayek': Script */</div><div class='add'>+static const OnigCodePoint CR_Meetei_Mayek[] = {</div><div class='add'>+	3,</div><div class='add'>+	0xaae0, 0xaaf6,</div><div class='add'>+	0xabc0, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+}; /* CR_Meetei_Mayek */</div><div class='add'>+</div><div class='add'>+/* 'Imperial_Aramaic': Script */</div><div class='add'>+static const OnigCodePoint CR_Imperial_Aramaic[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10840, 0x10855,</div><div class='add'>+	0x10857, 0x1085f,</div><div class='add'>+}; /* CR_Imperial_Aramaic */</div><div class='add'>+</div><div class='add'>+/* 'Old_South_Arabian': Script */</div><div class='add'>+static const OnigCodePoint CR_Old_South_Arabian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10a60, 0x10a7f,</div><div class='add'>+}; /* CR_Old_South_Arabian */</div><div class='add'>+</div><div class='add'>+/* 'Inscriptional_Parthian': Script */</div><div class='add'>+static const OnigCodePoint CR_Inscriptional_Parthian[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10b40, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b5f,</div><div class='add'>+}; /* CR_Inscriptional_Parthian */</div><div class='add'>+</div><div class='add'>+/* 'Inscriptional_Pahlavi': Script */</div><div class='add'>+static const OnigCodePoint CR_Inscriptional_Pahlavi[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10b60, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b7f,</div><div class='add'>+}; /* CR_Inscriptional_Pahlavi */</div><div class='add'>+</div><div class='add'>+/* 'Old_Turkic': Script */</div><div class='add'>+static const OnigCodePoint CR_Old_Turkic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+}; /* CR_Old_Turkic */</div><div class='add'>+</div><div class='add'>+/* 'Kaithi': Script */</div><div class='add'>+static const OnigCodePoint CR_Kaithi[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x11080, 0x110c2,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+}; /* CR_Kaithi */</div><div class='add'>+</div><div class='add'>+/* 'Batak': Script */</div><div class='add'>+static const OnigCodePoint CR_Batak[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x1bc0, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1bff,</div><div class='add'>+}; /* CR_Batak */</div><div class='add'>+</div><div class='add'>+/* 'Brahmi': Script */</div><div class='add'>+static const OnigCodePoint CR_Brahmi[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x11075,</div><div class='add'>+	0x1107f, 0x1107f,</div><div class='add'>+}; /* CR_Brahmi */</div><div class='add'>+</div><div class='add'>+/* 'Mandaic': Script */</div><div class='add'>+static const OnigCodePoint CR_Mandaic[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+}; /* CR_Mandaic */</div><div class='add'>+</div><div class='add'>+/* 'Chakma': Script */</div><div class='add'>+static const OnigCodePoint CR_Chakma[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11147,</div><div class='add'>+}; /* CR_Chakma */</div><div class='add'>+</div><div class='add'>+/* 'Meroitic_Cursive': Script */</div><div class='add'>+static const OnigCodePoint CR_Meroitic_Cursive[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x109a0, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x109ff,</div><div class='add'>+}; /* CR_Meroitic_Cursive */</div><div class='add'>+</div><div class='add'>+/* 'Meroitic_Hieroglyphs': Script */</div><div class='add'>+static const OnigCodePoint CR_Meroitic_Hieroglyphs[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10980, 0x1099f,</div><div class='add'>+}; /* CR_Meroitic_Hieroglyphs */</div><div class='add'>+</div><div class='add'>+/* 'Miao': Script */</div><div class='add'>+static const OnigCodePoint CR_Miao[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+}; /* CR_Miao */</div><div class='add'>+</div><div class='add'>+/* 'Sharada': Script */</div><div class='add'>+static const OnigCodePoint CR_Sharada[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11180, 0x111df,</div><div class='add'>+}; /* CR_Sharada */</div><div class='add'>+</div><div class='add'>+/* 'Sora_Sompeng': Script */</div><div class='add'>+static const OnigCodePoint CR_Sora_Sompeng[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+}; /* CR_Sora_Sompeng */</div><div class='add'>+</div><div class='add'>+/* 'Takri': Script */</div><div class='add'>+static const OnigCodePoint CR_Takri[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x11680, 0x116b9,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+}; /* CR_Takri */</div><div class='add'>+</div><div class='add'>+/* 'Caucasian_Albanian': Script */</div><div class='add'>+static const OnigCodePoint CR_Caucasian_Albanian[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+}; /* CR_Caucasian_Albanian */</div><div class='add'>+</div><div class='add'>+/* 'Bassa_Vah': Script */</div><div class='add'>+static const OnigCodePoint CR_Bassa_Vah[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+}; /* CR_Bassa_Vah */</div><div class='add'>+</div><div class='add'>+/* 'Duployan': Script */</div><div class='add'>+static const OnigCodePoint CR_Duployan[] = {</div><div class='add'>+	5,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bc9f,</div><div class='add'>+}; /* CR_Duployan */</div><div class='add'>+</div><div class='add'>+/* 'Elbasan': Script */</div><div class='add'>+static const OnigCodePoint CR_Elbasan[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+}; /* CR_Elbasan */</div><div class='add'>+</div><div class='add'>+/* 'Grantha': Script */</div><div class='add'>+static const OnigCodePoint CR_Grantha[] = {</div><div class='add'>+	15,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133c, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+}; /* CR_Grantha */</div><div class='add'>+</div><div class='add'>+/* 'Pahawh_Hmong': Script */</div><div class='add'>+static const OnigCodePoint CR_Pahawh_Hmong[] = {</div><div class='add'>+	5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+}; /* CR_Pahawh_Hmong */</div><div class='add'>+</div><div class='add'>+/* 'Khojki': Script */</div><div class='add'>+static const OnigCodePoint CR_Khojki[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x11241,</div><div class='add'>+}; /* CR_Khojki */</div><div class='add'>+</div><div class='add'>+/* 'Linear_A': Script */</div><div class='add'>+static const OnigCodePoint CR_Linear_A[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+}; /* CR_Linear_A */</div><div class='add'>+</div><div class='add'>+/* 'Mahajani': Script */</div><div class='add'>+static const OnigCodePoint CR_Mahajani[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+}; /* CR_Mahajani */</div><div class='add'>+</div><div class='add'>+/* 'Manichaean': Script */</div><div class='add'>+static const OnigCodePoint CR_Manichaean[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+}; /* CR_Manichaean */</div><div class='add'>+</div><div class='add'>+/* 'Mende_Kikakui': Script */</div><div class='add'>+static const OnigCodePoint CR_Mende_Kikakui[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+}; /* CR_Mende_Kikakui */</div><div class='add'>+</div><div class='add'>+/* 'Modi': Script */</div><div class='add'>+static const OnigCodePoint CR_Modi[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+}; /* CR_Modi */</div><div class='add'>+</div><div class='add'>+/* 'Mro': Script */</div><div class='add'>+static const OnigCodePoint CR_Mro[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+}; /* CR_Mro */</div><div class='add'>+</div><div class='add'>+/* 'Old_North_Arabian': Script */</div><div class='add'>+static const OnigCodePoint CR_Old_North_Arabian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10a80, 0x10a9f,</div><div class='add'>+}; /* CR_Old_North_Arabian */</div><div class='add'>+</div><div class='add'>+/* 'Nabataean': Script */</div><div class='add'>+static const OnigCodePoint CR_Nabataean[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10880, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+}; /* CR_Nabataean */</div><div class='add'>+</div><div class='add'>+/* 'Palmyrene': Script */</div><div class='add'>+static const OnigCodePoint CR_Palmyrene[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10860, 0x1087f,</div><div class='add'>+}; /* CR_Palmyrene */</div><div class='add'>+</div><div class='add'>+/* 'Pau_Cin_Hau': Script */</div><div class='add'>+static const OnigCodePoint CR_Pau_Cin_Hau[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11ac0, 0x11af8,</div><div class='add'>+}; /* CR_Pau_Cin_Hau */</div><div class='add'>+</div><div class='add'>+/* 'Old_Permic': Script */</div><div class='add'>+static const OnigCodePoint CR_Old_Permic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+}; /* CR_Old_Permic */</div><div class='add'>+</div><div class='add'>+/* 'Psalter_Pahlavi': Script */</div><div class='add'>+static const OnigCodePoint CR_Psalter_Pahlavi[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x10b80, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+}; /* CR_Psalter_Pahlavi */</div><div class='add'>+</div><div class='add'>+/* 'Siddham': Script */</div><div class='add'>+static const OnigCodePoint CR_Siddham[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+}; /* CR_Siddham */</div><div class='add'>+</div><div class='add'>+/* 'Khudawadi': Script */</div><div class='add'>+static const OnigCodePoint CR_Khudawadi[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+}; /* CR_Khudawadi */</div><div class='add'>+</div><div class='add'>+/* 'Tirhuta': Script */</div><div class='add'>+static const OnigCodePoint CR_Tirhuta[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+}; /* CR_Tirhuta */</div><div class='add'>+</div><div class='add'>+/* 'Warang_Citi': Script */</div><div class='add'>+static const OnigCodePoint CR_Warang_Citi[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x118ff,</div><div class='add'>+}; /* CR_Warang_Citi */</div><div class='add'>+</div><div class='add'>+/* 'Ahom': Script */</div><div class='add'>+static const OnigCodePoint CR_Ahom[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x11746,</div><div class='add'>+}; /* CR_Ahom */</div><div class='add'>+</div><div class='add'>+/* 'Anatolian_Hieroglyphs': Script */</div><div class='add'>+static const OnigCodePoint CR_Anatolian_Hieroglyphs[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+}; /* CR_Anatolian_Hieroglyphs */</div><div class='add'>+</div><div class='add'>+/* 'Hatran': Script */</div><div class='add'>+static const OnigCodePoint CR_Hatran[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x108ff,</div><div class='add'>+}; /* CR_Hatran */</div><div class='add'>+</div><div class='add'>+/* 'Multani': Script */</div><div class='add'>+static const OnigCodePoint CR_Multani[] = {</div><div class='add'>+	5,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+}; /* CR_Multani */</div><div class='add'>+</div><div class='add'>+/* 'Old_Hungarian': Script */</div><div class='add'>+static const OnigCodePoint CR_Old_Hungarian[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10cff,</div><div class='add'>+}; /* CR_Old_Hungarian */</div><div class='add'>+</div><div class='add'>+/* 'SignWriting': Script */</div><div class='add'>+static const OnigCodePoint CR_SignWriting[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x1d800, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+}; /* CR_SignWriting */</div><div class='add'>+</div><div class='add'>+/* 'Adlam': Script */</div><div class='add'>+static const OnigCodePoint CR_Adlam[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+}; /* CR_Adlam */</div><div class='add'>+</div><div class='add'>+/* 'Bhaiksuki': Script */</div><div class='add'>+static const OnigCodePoint CR_Bhaiksuki[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+}; /* CR_Bhaiksuki */</div><div class='add'>+</div><div class='add'>+/* 'Marchen': Script */</div><div class='add'>+static const OnigCodePoint CR_Marchen[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+}; /* CR_Marchen */</div><div class='add'>+</div><div class='add'>+/* 'Newa': Script */</div><div class='add'>+static const OnigCodePoint CR_Newa[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x11400, 0x1145b,</div><div class='add'>+	0x1145d, 0x11461,</div><div class='add'>+}; /* CR_Newa */</div><div class='add'>+</div><div class='add'>+/* 'Osage': Script */</div><div class='add'>+static const OnigCodePoint CR_Osage[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+}; /* CR_Osage */</div><div class='add'>+</div><div class='add'>+/* 'Tangut': Script */</div><div class='add'>+static const OnigCodePoint CR_Tangut[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x16fe0, 0x16fe0,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18aff,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+}; /* CR_Tangut */</div><div class='add'>+</div><div class='add'>+/* 'Masaram_Gondi': Script */</div><div class='add'>+static const OnigCodePoint CR_Masaram_Gondi[] = {</div><div class='add'>+	7,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+}; /* CR_Masaram_Gondi */</div><div class='add'>+</div><div class='add'>+/* 'Nushu': Script */</div><div class='add'>+static const OnigCodePoint CR_Nushu[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x16fe1, 0x16fe1,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+}; /* CR_Nushu */</div><div class='add'>+</div><div class='add'>+/* 'Soyombo': Script */</div><div class='add'>+static const OnigCodePoint CR_Soyombo[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11a50, 0x11aa2,</div><div class='add'>+}; /* CR_Soyombo */</div><div class='add'>+</div><div class='add'>+/* 'Zanabazar_Square': Script */</div><div class='add'>+static const OnigCodePoint CR_Zanabazar_Square[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11a00, 0x11a47,</div><div class='add'>+}; /* CR_Zanabazar_Square */</div><div class='add'>+</div><div class='add'>+/* 'Dogra': Script */</div><div class='add'>+static const OnigCodePoint CR_Dogra[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11800, 0x1183b,</div><div class='add'>+}; /* CR_Dogra */</div><div class='add'>+</div><div class='add'>+/* 'Gunjala_Gondi': Script */</div><div class='add'>+static const OnigCodePoint CR_Gunjala_Gondi[] = {</div><div class='add'>+	6,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+}; /* CR_Gunjala_Gondi */</div><div class='add'>+</div><div class='add'>+/* 'Makasar': Script */</div><div class='add'>+static const OnigCodePoint CR_Makasar[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11ee0, 0x11ef8,</div><div class='add'>+}; /* CR_Makasar */</div><div class='add'>+</div><div class='add'>+/* 'Medefaidrin': Script */</div><div class='add'>+static const OnigCodePoint CR_Medefaidrin[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x16e40, 0x16e9a,</div><div class='add'>+}; /* CR_Medefaidrin */</div><div class='add'>+</div><div class='add'>+/* 'Hanifi_Rohingya': Script */</div><div class='add'>+static const OnigCodePoint CR_Hanifi_Rohingya[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x10d00, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+}; /* CR_Hanifi_Rohingya */</div><div class='add'>+</div><div class='add'>+/* 'Sogdian': Script */</div><div class='add'>+static const OnigCodePoint CR_Sogdian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10f30, 0x10f59,</div><div class='add'>+}; /* CR_Sogdian */</div><div class='add'>+</div><div class='add'>+/* 'Old_Sogdian': Script */</div><div class='add'>+static const OnigCodePoint CR_Old_Sogdian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10f00, 0x10f27,</div><div class='add'>+}; /* CR_Old_Sogdian */</div><div class='add'>+</div><div class='add'>+/* 'Elymaic': Script */</div><div class='add'>+static const OnigCodePoint CR_Elymaic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+}; /* CR_Elymaic */</div><div class='add'>+</div><div class='add'>+/* 'Nandinagari': Script */</div><div class='add'>+static const OnigCodePoint CR_Nandinagari[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e4,</div><div class='add'>+}; /* CR_Nandinagari */</div><div class='add'>+</div><div class='add'>+/* 'Nyiakeng_Puachue_Hmong': Script */</div><div class='add'>+static const OnigCodePoint CR_Nyiakeng_Puachue_Hmong[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14f,</div><div class='add'>+}; /* CR_Nyiakeng_Puachue_Hmong */</div><div class='add'>+</div><div class='add'>+/* 'Wancho': Script */</div><div class='add'>+static const OnigCodePoint CR_Wancho[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+}; /* CR_Wancho */</div><div class='add'>+</div><div class='add'>+/* 'Chorasmian': Script */</div><div class='add'>+static const OnigCodePoint CR_Chorasmian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10fb0, 0x10fcb,</div><div class='add'>+}; /* CR_Chorasmian */</div><div class='add'>+</div><div class='add'>+/* 'Dives_Akuru': Script */</div><div class='add'>+static const OnigCodePoint CR_Dives_Akuru[] = {</div><div class='add'>+	8,</div><div class='add'>+	0x11900, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x11946,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+}; /* CR_Dives_Akuru */</div><div class='add'>+</div><div class='add'>+/* 'Khitan_Small_Script': Script */</div><div class='add'>+static const OnigCodePoint CR_Khitan_Small_Script[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x16fe4, 0x16fe4,</div><div class='add'>+	0x18b00, 0x18cd5,</div><div class='add'>+}; /* CR_Khitan_Small_Script */</div><div class='add'>+</div><div class='add'>+/* 'Yezidi': Script */</div><div class='add'>+static const OnigCodePoint CR_Yezidi[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10ead,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+}; /* CR_Yezidi */</div><div class='add'>+</div><div class='add'>+/* 'Cypro_Minoan': Script */</div><div class='add'>+static const OnigCodePoint CR_Cypro_Minoan[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x12f90, 0x12ff2,</div><div class='add'>+}; /* CR_Cypro_Minoan */</div><div class='add'>+</div><div class='add'>+/* 'Old_Uyghur': Script */</div><div class='add'>+static const OnigCodePoint CR_Old_Uyghur[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10f70, 0x10f89,</div><div class='add'>+}; /* CR_Old_Uyghur */</div><div class='add'>+</div><div class='add'>+/* 'Tangsa': Script */</div><div class='add'>+static const OnigCodePoint CR_Tangsa[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x16a70, 0x16abe,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+}; /* CR_Tangsa */</div><div class='add'>+</div><div class='add'>+/* 'Toto': Script */</div><div class='add'>+static const OnigCodePoint CR_Toto[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e290, 0x1e2ae,</div><div class='add'>+}; /* CR_Toto */</div><div class='add'>+</div><div class='add'>+/* 'Vithkuqi': Script */</div><div class='add'>+static const OnigCodePoint CR_Vithkuqi[] = {</div><div class='add'>+	8,</div><div class='add'>+	0x10570, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+}; /* CR_Vithkuqi */</div><div class='add'>+</div><div class='add'>+/* 'Kawi': Script */</div><div class='add'>+static const OnigCodePoint CR_Kawi[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x11f00, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f59,</div><div class='add'>+}; /* CR_Kawi */</div><div class='add'>+</div><div class='add'>+/* 'Nag_Mundari': Script */</div><div class='add'>+static const OnigCodePoint CR_Nag_Mundari[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e4d0, 0x1e4f9,</div><div class='add'>+}; /* CR_Nag_Mundari */</div><div class='add'>+</div><div class='add'>+/* 'White_Space': Binary Property */</div><div class='add'>+#define CR_White_Space CR_Space</div><div class='add'>+</div><div class='add'>+/* 'Bidi_Control': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Bidi_Control[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x061c, 0x061c,</div><div class='add'>+	0x200e, 0x200f,</div><div class='add'>+	0x202a, 0x202e,</div><div class='add'>+	0x2066, 0x2069,</div><div class='add'>+}; /* CR_Bidi_Control */</div><div class='add'>+</div><div class='add'>+/* 'Join_Control': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Join_Control[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x200c, 0x200d,</div><div class='add'>+}; /* CR_Join_Control */</div><div class='add'>+</div><div class='add'>+/* 'Dash': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Dash[] = {</div><div class='add'>+	23,</div><div class='add'>+	0x002d, 0x002d,</div><div class='add'>+	0x058a, 0x058a,</div><div class='add'>+	0x05be, 0x05be,</div><div class='add'>+	0x1400, 0x1400,</div><div class='add'>+	0x1806, 0x1806,</div><div class='add'>+	0x2010, 0x2015,</div><div class='add'>+	0x2053, 0x2053,</div><div class='add'>+	0x207b, 0x207b,</div><div class='add'>+	0x208b, 0x208b,</div><div class='add'>+	0x2212, 0x2212,</div><div class='add'>+	0x2e17, 0x2e17,</div><div class='add'>+	0x2e1a, 0x2e1a,</div><div class='add'>+	0x2e3a, 0x2e3b,</div><div class='add'>+	0x2e40, 0x2e40,</div><div class='add'>+	0x2e5d, 0x2e5d,</div><div class='add'>+	0x301c, 0x301c,</div><div class='add'>+	0x3030, 0x3030,</div><div class='add'>+	0x30a0, 0x30a0,</div><div class='add'>+	0xfe31, 0xfe32,</div><div class='add'>+	0xfe58, 0xfe58,</div><div class='add'>+	0xfe63, 0xfe63,</div><div class='add'>+	0xff0d, 0xff0d,</div><div class='add'>+	0x10ead, 0x10ead,</div><div class='add'>+}; /* CR_Dash */</div><div class='add'>+</div><div class='add'>+/* 'Hyphen': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Hyphen[] = {</div><div class='add'>+	10,</div><div class='add'>+	0x002d, 0x002d,</div><div class='add'>+	0x00ad, 0x00ad,</div><div class='add'>+	0x058a, 0x058a,</div><div class='add'>+	0x1806, 0x1806,</div><div class='add'>+	0x2010, 0x2011,</div><div class='add'>+	0x2e17, 0x2e17,</div><div class='add'>+	0x30fb, 0x30fb,</div><div class='add'>+	0xfe63, 0xfe63,</div><div class='add'>+	0xff0d, 0xff0d,</div><div class='add'>+	0xff65, 0xff65,</div><div class='add'>+}; /* CR_Hyphen */</div><div class='add'>+</div><div class='add'>+/* 'Quotation_Mark': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Quotation_Mark[] = {</div><div class='add'>+	13,</div><div class='add'>+	0x0022, 0x0022,</div><div class='add'>+	0x0027, 0x0027,</div><div class='add'>+	0x00ab, 0x00ab,</div><div class='add'>+	0x00bb, 0x00bb,</div><div class='add'>+	0x2018, 0x201f,</div><div class='add'>+	0x2039, 0x203a,</div><div class='add'>+	0x2e42, 0x2e42,</div><div class='add'>+	0x300c, 0x300f,</div><div class='add'>+	0x301d, 0x301f,</div><div class='add'>+	0xfe41, 0xfe44,</div><div class='add'>+	0xff02, 0xff02,</div><div class='add'>+	0xff07, 0xff07,</div><div class='add'>+	0xff62, 0xff63,</div><div class='add'>+}; /* CR_Quotation_Mark */</div><div class='add'>+</div><div class='add'>+/* 'Terminal_Punctuation': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Terminal_Punctuation[] = {</div><div class='add'>+	108,</div><div class='add'>+	0x0021, 0x0021,</div><div class='add'>+	0x002c, 0x002c,</div><div class='add'>+	0x002e, 0x002e,</div><div class='add'>+	0x003a, 0x003b,</div><div class='add'>+	0x003f, 0x003f,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0387, 0x0387,</div><div class='add'>+	0x0589, 0x0589,</div><div class='add'>+	0x05c3, 0x05c3,</div><div class='add'>+	0x060c, 0x060c,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061d, 0x061f,</div><div class='add'>+	0x06d4, 0x06d4,</div><div class='add'>+	0x0700, 0x070a,</div><div class='add'>+	0x070c, 0x070c,</div><div class='add'>+	0x07f8, 0x07f9,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0964, 0x0965,</div><div class='add'>+	0x0e5a, 0x0e5b,</div><div class='add'>+	0x0f08, 0x0f08,</div><div class='add'>+	0x0f0d, 0x0f12,</div><div class='add'>+	0x104a, 0x104b,</div><div class='add'>+	0x1361, 0x1368,</div><div class='add'>+	0x166e, 0x166e,</div><div class='add'>+	0x16eb, 0x16ed,</div><div class='add'>+	0x1735, 0x1736,</div><div class='add'>+	0x17d4, 0x17d6,</div><div class='add'>+	0x17da, 0x17da,</div><div class='add'>+	0x1802, 0x1805,</div><div class='add'>+	0x1808, 0x1809,</div><div class='add'>+	0x1944, 0x1945,</div><div class='add'>+	0x1aa8, 0x1aab,</div><div class='add'>+	0x1b5a, 0x1b5b,</div><div class='add'>+	0x1b5d, 0x1b5f,</div><div class='add'>+	0x1b7d, 0x1b7e,</div><div class='add'>+	0x1c3b, 0x1c3f,</div><div class='add'>+	0x1c7e, 0x1c7f,</div><div class='add'>+	0x203c, 0x203d,</div><div class='add'>+	0x2047, 0x2049,</div><div class='add'>+	0x2e2e, 0x2e2e,</div><div class='add'>+	0x2e3c, 0x2e3c,</div><div class='add'>+	0x2e41, 0x2e41,</div><div class='add'>+	0x2e4c, 0x2e4c,</div><div class='add'>+	0x2e4e, 0x2e4f,</div><div class='add'>+	0x2e53, 0x2e54,</div><div class='add'>+	0x3001, 0x3002,</div><div class='add'>+	0xa4fe, 0xa4ff,</div><div class='add'>+	0xa60d, 0xa60f,</div><div class='add'>+	0xa6f3, 0xa6f7,</div><div class='add'>+	0xa876, 0xa877,</div><div class='add'>+	0xa8ce, 0xa8cf,</div><div class='add'>+	0xa92f, 0xa92f,</div><div class='add'>+	0xa9c7, 0xa9c9,</div><div class='add'>+	0xaa5d, 0xaa5f,</div><div class='add'>+	0xaadf, 0xaadf,</div><div class='add'>+	0xaaf0, 0xaaf1,</div><div class='add'>+	0xabeb, 0xabeb,</div><div class='add'>+	0xfe50, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe57,</div><div class='add'>+	0xff01, 0xff01,</div><div class='add'>+	0xff0c, 0xff0c,</div><div class='add'>+	0xff0e, 0xff0e,</div><div class='add'>+	0xff1a, 0xff1b,</div><div class='add'>+	0xff1f, 0xff1f,</div><div class='add'>+	0xff61, 0xff61,</div><div class='add'>+	0xff64, 0xff64,</div><div class='add'>+	0x1039f, 0x1039f,</div><div class='add'>+	0x103d0, 0x103d0,</div><div class='add'>+	0x10857, 0x10857,</div><div class='add'>+	0x1091f, 0x1091f,</div><div class='add'>+	0x10a56, 0x10a57,</div><div class='add'>+	0x10af0, 0x10af5,</div><div class='add'>+	0x10b3a, 0x10b3f,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10f55, 0x10f59,</div><div class='add'>+	0x10f86, 0x10f89,</div><div class='add'>+	0x11047, 0x1104d,</div><div class='add'>+	0x110be, 0x110c1,</div><div class='add'>+	0x11141, 0x11143,</div><div class='add'>+	0x111c5, 0x111c6,</div><div class='add'>+	0x111cd, 0x111cd,</div><div class='add'>+	0x111de, 0x111df,</div><div class='add'>+	0x11238, 0x1123c,</div><div class='add'>+	0x112a9, 0x112a9,</div><div class='add'>+	0x1144b, 0x1144d,</div><div class='add'>+	0x1145a, 0x1145b,</div><div class='add'>+	0x115c2, 0x115c5,</div><div class='add'>+	0x115c9, 0x115d7,</div><div class='add'>+	0x11641, 0x11642,</div><div class='add'>+	0x1173c, 0x1173e,</div><div class='add'>+	0x11944, 0x11944,</div><div class='add'>+	0x11946, 0x11946,</div><div class='add'>+	0x11a42, 0x11a43,</div><div class='add'>+	0x11a9b, 0x11a9c,</div><div class='add'>+	0x11aa1, 0x11aa2,</div><div class='add'>+	0x11c41, 0x11c43,</div><div class='add'>+	0x11c71, 0x11c71,</div><div class='add'>+	0x11ef7, 0x11ef8,</div><div class='add'>+	0x11f43, 0x11f44,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16af5, 0x16af5,</div><div class='add'>+	0x16b37, 0x16b39,</div><div class='add'>+	0x16b44, 0x16b44,</div><div class='add'>+	0x16e97, 0x16e98,</div><div class='add'>+	0x1bc9f, 0x1bc9f,</div><div class='add'>+	0x1da87, 0x1da8a,</div><div class='add'>+}; /* CR_Terminal_Punctuation */</div><div class='add'>+</div><div class='add'>+/* 'Other_Math': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Other_Math[] = {</div><div class='add'>+	134,</div><div class='add'>+	0x005e, 0x005e,</div><div class='add'>+	0x03d0, 0x03d2,</div><div class='add'>+	0x03d5, 0x03d5,</div><div class='add'>+	0x03f0, 0x03f1,</div><div class='add'>+	0x03f4, 0x03f5,</div><div class='add'>+	0x2016, 0x2016,</div><div class='add'>+	0x2032, 0x2034,</div><div class='add'>+	0x2040, 0x2040,</div><div class='add'>+	0x2061, 0x2064,</div><div class='add'>+	0x207d, 0x207e,</div><div class='add'>+	0x208d, 0x208e,</div><div class='add'>+	0x20d0, 0x20dc,</div><div class='add'>+	0x20e1, 0x20e1,</div><div class='add'>+	0x20e5, 0x20e6,</div><div class='add'>+	0x20eb, 0x20ef,</div><div class='add'>+	0x2102, 0x2102,</div><div class='add'>+	0x2107, 0x2107,</div><div class='add'>+	0x210a, 0x2113,</div><div class='add'>+	0x2115, 0x2115,</div><div class='add'>+	0x2119, 0x211d,</div><div class='add'>+	0x2124, 0x2124,</div><div class='add'>+	0x2128, 0x2129,</div><div class='add'>+	0x212c, 0x212d,</div><div class='add'>+	0x212f, 0x2131,</div><div class='add'>+	0x2133, 0x2138,</div><div class='add'>+	0x213c, 0x213f,</div><div class='add'>+	0x2145, 0x2149,</div><div class='add'>+	0x2195, 0x2199,</div><div class='add'>+	0x219c, 0x219f,</div><div class='add'>+	0x21a1, 0x21a2,</div><div class='add'>+	0x21a4, 0x21a5,</div><div class='add'>+	0x21a7, 0x21a7,</div><div class='add'>+	0x21a9, 0x21ad,</div><div class='add'>+	0x21b0, 0x21b1,</div><div class='add'>+	0x21b6, 0x21b7,</div><div class='add'>+	0x21bc, 0x21cd,</div><div class='add'>+	0x21d0, 0x21d1,</div><div class='add'>+	0x21d3, 0x21d3,</div><div class='add'>+	0x21d5, 0x21db,</div><div class='add'>+	0x21dd, 0x21dd,</div><div class='add'>+	0x21e4, 0x21e5,</div><div class='add'>+	0x2308, 0x230b,</div><div class='add'>+	0x23b4, 0x23b5,</div><div class='add'>+	0x23b7, 0x23b7,</div><div class='add'>+	0x23d0, 0x23d0,</div><div class='add'>+	0x23e2, 0x23e2,</div><div class='add'>+	0x25a0, 0x25a1,</div><div class='add'>+	0x25ae, 0x25b6,</div><div class='add'>+	0x25bc, 0x25c0,</div><div class='add'>+	0x25c6, 0x25c7,</div><div class='add'>+	0x25ca, 0x25cb,</div><div class='add'>+	0x25cf, 0x25d3,</div><div class='add'>+	0x25e2, 0x25e2,</div><div class='add'>+	0x25e4, 0x25e4,</div><div class='add'>+	0x25e7, 0x25ec,</div><div class='add'>+	0x2605, 0x2606,</div><div class='add'>+	0x2640, 0x2640,</div><div class='add'>+	0x2642, 0x2642,</div><div class='add'>+	0x2660, 0x2663,</div><div class='add'>+	0x266d, 0x266e,</div><div class='add'>+	0x27c5, 0x27c6,</div><div class='add'>+	0x27e6, 0x27ef,</div><div class='add'>+	0x2983, 0x2998,</div><div class='add'>+	0x29d8, 0x29db,</div><div class='add'>+	0x29fc, 0x29fd,</div><div class='add'>+	0xfe61, 0xfe61,</div><div class='add'>+	0xfe63, 0xfe63,</div><div class='add'>+	0xfe68, 0xfe68,</div><div class='add'>+	0xff3c, 0xff3c,</div><div class='add'>+	0xff3e, 0xff3e,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d6c0,</div><div class='add'>+	0x1d6c2, 0x1d6da,</div><div class='add'>+	0x1d6dc, 0x1d6fa,</div><div class='add'>+	0x1d6fc, 0x1d714,</div><div class='add'>+	0x1d716, 0x1d734,</div><div class='add'>+	0x1d736, 0x1d74e,</div><div class='add'>+	0x1d750, 0x1d76e,</div><div class='add'>+	0x1d770, 0x1d788,</div><div class='add'>+	0x1d78a, 0x1d7a8,</div><div class='add'>+	0x1d7aa, 0x1d7c2,</div><div class='add'>+	0x1d7c4, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+}; /* CR_Other_Math */</div><div class='add'>+</div><div class='add'>+/* 'Hex_Digit': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Hex_Digit[] = {</div><div class='add'>+	6,</div><div class='add'>+	0x0030, 0x0039,</div><div class='add'>+	0x0041, 0x0046,</div><div class='add'>+	0x0061, 0x0066,</div><div class='add'>+	0xff10, 0xff19,</div><div class='add'>+	0xff21, 0xff26,</div><div class='add'>+	0xff41, 0xff46,</div><div class='add'>+}; /* CR_Hex_Digit */</div><div class='add'>+</div><div class='add'>+/* 'ASCII_Hex_Digit': Binary Property */</div><div class='add'>+#define CR_ASCII_Hex_Digit CR_XDigit</div><div class='add'>+</div><div class='add'>+/* 'Other_Alphabetic': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Other_Alphabetic[] = {</div><div class='add'>+	240,</div><div class='add'>+	0x0345, 0x0345,</div><div class='add'>+	0x05b0, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c5,</div><div class='add'>+	0x05c7, 0x05c7,</div><div class='add'>+	0x0610, 0x061a,</div><div class='add'>+	0x064b, 0x0657,</div><div class='add'>+	0x0659, 0x065f,</div><div class='add'>+	0x0670, 0x0670,</div><div class='add'>+	0x06d6, 0x06dc,</div><div class='add'>+	0x06e1, 0x06e4,</div><div class='add'>+	0x06e7, 0x06e8,</div><div class='add'>+	0x06ed, 0x06ed,</div><div class='add'>+	0x0711, 0x0711,</div><div class='add'>+	0x0730, 0x073f,</div><div class='add'>+	0x07a6, 0x07b0,</div><div class='add'>+	0x0816, 0x0817,</div><div class='add'>+	0x081b, 0x0823,</div><div class='add'>+	0x0825, 0x0827,</div><div class='add'>+	0x0829, 0x082c,</div><div class='add'>+	0x08d4, 0x08df,</div><div class='add'>+	0x08e3, 0x08e9,</div><div class='add'>+	0x08f0, 0x0903,</div><div class='add'>+	0x093a, 0x093b,</div><div class='add'>+	0x093e, 0x094c,</div><div class='add'>+	0x094e, 0x094f,</div><div class='add'>+	0x0955, 0x0957,</div><div class='add'>+	0x0962, 0x0963,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x09be, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cc,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09e2, 0x09e3,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4c,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a70, 0x0a71,</div><div class='add'>+	0x0a75, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0abe, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acc,</div><div class='add'>+	0x0ae2, 0x0ae3,</div><div class='add'>+	0x0afa, 0x0afc,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b3e, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4c,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b62, 0x0b63,</div><div class='add'>+	0x0b82, 0x0b82,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcc,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0c00, 0x0c04,</div><div class='add'>+	0x0c3e, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4c,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c62, 0x0c63,</div><div class='add'>+	0x0c81, 0x0c83,</div><div class='add'>+	0x0cbe, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccc,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0ce2, 0x0ce3,</div><div class='add'>+	0x0cf3, 0x0cf3,</div><div class='add'>+	0x0d00, 0x0d03,</div><div class='add'>+	0x0d3e, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4c,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d62, 0x0d63,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df3,</div><div class='add'>+	0x0e31, 0x0e31,</div><div class='add'>+	0x0e34, 0x0e3a,</div><div class='add'>+	0x0e4d, 0x0e4d,</div><div class='add'>+	0x0eb1, 0x0eb1,</div><div class='add'>+	0x0eb4, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebc,</div><div class='add'>+	0x0ecd, 0x0ecd,</div><div class='add'>+	0x0f71, 0x0f83,</div><div class='add'>+	0x0f8d, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x102b, 0x1036,</div><div class='add'>+	0x1038, 0x1038,</div><div class='add'>+	0x103b, 0x103e,</div><div class='add'>+	0x1056, 0x1059,</div><div class='add'>+	0x105e, 0x1060,</div><div class='add'>+	0x1062, 0x1064,</div><div class='add'>+	0x1067, 0x106d,</div><div class='add'>+	0x1071, 0x1074,</div><div class='add'>+	0x1082, 0x108d,</div><div class='add'>+	0x108f, 0x108f,</div><div class='add'>+	0x109a, 0x109d,</div><div class='add'>+	0x1712, 0x1713,</div><div class='add'>+	0x1732, 0x1733,</div><div class='add'>+	0x1752, 0x1753,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x17b6, 0x17c8,</div><div class='add'>+	0x1885, 0x1886,</div><div class='add'>+	0x18a9, 0x18a9,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x1938,</div><div class='add'>+	0x1a17, 0x1a1b,</div><div class='add'>+	0x1a55, 0x1a5e,</div><div class='add'>+	0x1a61, 0x1a74,</div><div class='add'>+	0x1abf, 0x1ac0,</div><div class='add'>+	0x1acc, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b04,</div><div class='add'>+	0x1b35, 0x1b43,</div><div class='add'>+	0x1b80, 0x1b82,</div><div class='add'>+	0x1ba1, 0x1ba9,</div><div class='add'>+	0x1bac, 0x1bad,</div><div class='add'>+	0x1be7, 0x1bf1,</div><div class='add'>+	0x1c24, 0x1c36,</div><div class='add'>+	0x1de7, 0x1df4,</div><div class='add'>+	0x24b6, 0x24e9,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0xa674, 0xa67b,</div><div class='add'>+	0xa69e, 0xa69f,</div><div class='add'>+	0xa802, 0xa802,</div><div class='add'>+	0xa80b, 0xa80b,</div><div class='add'>+	0xa823, 0xa827,</div><div class='add'>+	0xa880, 0xa881,</div><div class='add'>+	0xa8b4, 0xa8c3,</div><div class='add'>+	0xa8c5, 0xa8c5,</div><div class='add'>+	0xa8ff, 0xa8ff,</div><div class='add'>+	0xa926, 0xa92a,</div><div class='add'>+	0xa947, 0xa952,</div><div class='add'>+	0xa980, 0xa983,</div><div class='add'>+	0xa9b4, 0xa9bf,</div><div class='add'>+	0xa9e5, 0xa9e5,</div><div class='add'>+	0xaa29, 0xaa36,</div><div class='add'>+	0xaa43, 0xaa43,</div><div class='add'>+	0xaa4c, 0xaa4d,</div><div class='add'>+	0xaa7b, 0xaa7d,</div><div class='add'>+	0xaab0, 0xaab0,</div><div class='add'>+	0xaab2, 0xaab4,</div><div class='add'>+	0xaab7, 0xaab8,</div><div class='add'>+	0xaabe, 0xaabe,</div><div class='add'>+	0xaaeb, 0xaaef,</div><div class='add'>+	0xaaf5, 0xaaf5,</div><div class='add'>+	0xabe3, 0xabea,</div><div class='add'>+	0xfb1e, 0xfb1e,</div><div class='add'>+	0x10376, 0x1037a,</div><div class='add'>+	0x10a01, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a0f,</div><div class='add'>+	0x10d24, 0x10d27,</div><div class='add'>+	0x10eab, 0x10eac,</div><div class='add'>+	0x11000, 0x11002,</div><div class='add'>+	0x11038, 0x11045,</div><div class='add'>+	0x11073, 0x11074,</div><div class='add'>+	0x11080, 0x11082,</div><div class='add'>+	0x110b0, 0x110b8,</div><div class='add'>+	0x110c2, 0x110c2,</div><div class='add'>+	0x11100, 0x11102,</div><div class='add'>+	0x11127, 0x11132,</div><div class='add'>+	0x11145, 0x11146,</div><div class='add'>+	0x11180, 0x11182,</div><div class='add'>+	0x111b3, 0x111bf,</div><div class='add'>+	0x111ce, 0x111cf,</div><div class='add'>+	0x1122c, 0x11234,</div><div class='add'>+	0x11237, 0x11237,</div><div class='add'>+	0x1123e, 0x1123e,</div><div class='add'>+	0x11241, 0x11241,</div><div class='add'>+	0x112df, 0x112e8,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x1133e, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134c,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x11362, 0x11363,</div><div class='add'>+	0x11435, 0x11441,</div><div class='add'>+	0x11443, 0x11445,</div><div class='add'>+	0x114b0, 0x114c1,</div><div class='add'>+	0x115af, 0x115b5,</div><div class='add'>+	0x115b8, 0x115be,</div><div class='add'>+	0x115dc, 0x115dd,</div><div class='add'>+	0x11630, 0x1163e,</div><div class='add'>+	0x11640, 0x11640,</div><div class='add'>+	0x116ab, 0x116b5,</div><div class='add'>+	0x1171d, 0x1172a,</div><div class='add'>+	0x1182c, 0x11838,</div><div class='add'>+	0x11930, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x1193c,</div><div class='add'>+	0x11940, 0x11940,</div><div class='add'>+	0x11942, 0x11942,</div><div class='add'>+	0x119d1, 0x119d7,</div><div class='add'>+	0x119da, 0x119df,</div><div class='add'>+	0x119e4, 0x119e4,</div><div class='add'>+	0x11a01, 0x11a0a,</div><div class='add'>+	0x11a35, 0x11a39,</div><div class='add'>+	0x11a3b, 0x11a3e,</div><div class='add'>+	0x11a51, 0x11a5b,</div><div class='add'>+	0x11a8a, 0x11a97,</div><div class='add'>+	0x11c2f, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c3e,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d31, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d41,</div><div class='add'>+	0x11d43, 0x11d43,</div><div class='add'>+	0x11d47, 0x11d47,</div><div class='add'>+	0x11d8a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d96,</div><div class='add'>+	0x11ef3, 0x11ef6,</div><div class='add'>+	0x11f00, 0x11f01,</div><div class='add'>+	0x11f03, 0x11f03,</div><div class='add'>+	0x11f34, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f40,</div><div class='add'>+	0x16f4f, 0x16f4f,</div><div class='add'>+	0x16f51, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f92,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x1bc9e, 0x1bc9e,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e947, 0x1e947,</div><div class='add'>+	0x1f130, 0x1f149,</div><div class='add'>+	0x1f150, 0x1f169,</div><div class='add'>+	0x1f170, 0x1f189,</div><div class='add'>+}; /* CR_Other_Alphabetic */</div><div class='add'>+</div><div class='add'>+/* 'Ideographic': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Ideographic[] = {</div><div class='add'>+	20,</div><div class='add'>+	0x3006, 0x3007,</div><div class='add'>+	0x3021, 0x3029,</div><div class='add'>+	0x3038, 0x303a,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0x9fff,</div><div class='add'>+	0xf900, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0x16fe4, 0x16fe4,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+}; /* CR_Ideographic */</div><div class='add'>+</div><div class='add'>+/* 'Diacritic': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Diacritic[] = {</div><div class='add'>+	195,</div><div class='add'>+	0x005e, 0x005e,</div><div class='add'>+	0x0060, 0x0060,</div><div class='add'>+	0x00a8, 0x00a8,</div><div class='add'>+	0x00af, 0x00af,</div><div class='add'>+	0x00b4, 0x00b4,</div><div class='add'>+	0x00b7, 0x00b8,</div><div class='add'>+	0x02b0, 0x034e,</div><div class='add'>+	0x0350, 0x0357,</div><div class='add'>+	0x035d, 0x0362,</div><div class='add'>+	0x0374, 0x0375,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x0384, 0x0385,</div><div class='add'>+	0x0483, 0x0487,</div><div class='add'>+	0x0559, 0x0559,</div><div class='add'>+	0x0591, 0x05a1,</div><div class='add'>+	0x05a3, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c4,</div><div class='add'>+	0x064b, 0x0652,</div><div class='add'>+	0x0657, 0x0658,</div><div class='add'>+	0x06df, 0x06e0,</div><div class='add'>+	0x06e5, 0x06e6,</div><div class='add'>+	0x06ea, 0x06ec,</div><div class='add'>+	0x0730, 0x074a,</div><div class='add'>+	0x07a6, 0x07b0,</div><div class='add'>+	0x07eb, 0x07f5,</div><div class='add'>+	0x0818, 0x0819,</div><div class='add'>+	0x0898, 0x089f,</div><div class='add'>+	0x08c9, 0x08d2,</div><div class='add'>+	0x08e3, 0x08fe,</div><div class='add'>+	0x093c, 0x093c,</div><div class='add'>+	0x094d, 0x094d,</div><div class='add'>+	0x0951, 0x0954,</div><div class='add'>+	0x0971, 0x0971,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09cd, 0x09cd,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a4d, 0x0a4d,</div><div class='add'>+	0x0abc, 0x0abc,</div><div class='add'>+	0x0acd, 0x0acd,</div><div class='add'>+	0x0afd, 0x0aff,</div><div class='add'>+	0x0b3c, 0x0b3c,</div><div class='add'>+	0x0b4d, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b55,</div><div class='add'>+	0x0bcd, 0x0bcd,</div><div class='add'>+	0x0c3c, 0x0c3c,</div><div class='add'>+	0x0c4d, 0x0c4d,</div><div class='add'>+	0x0cbc, 0x0cbc,</div><div class='add'>+	0x0ccd, 0x0ccd,</div><div class='add'>+	0x0d3b, 0x0d3c,</div><div class='add'>+	0x0d4d, 0x0d4d,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0e47, 0x0e4c,</div><div class='add'>+	0x0e4e, 0x0e4e,</div><div class='add'>+	0x0eba, 0x0eba,</div><div class='add'>+	0x0ec8, 0x0ecc,</div><div class='add'>+	0x0f18, 0x0f19,</div><div class='add'>+	0x0f35, 0x0f35,</div><div class='add'>+	0x0f37, 0x0f37,</div><div class='add'>+	0x0f39, 0x0f39,</div><div class='add'>+	0x0f3e, 0x0f3f,</div><div class='add'>+	0x0f82, 0x0f84,</div><div class='add'>+	0x0f86, 0x0f87,</div><div class='add'>+	0x0fc6, 0x0fc6,</div><div class='add'>+	0x1037, 0x1037,</div><div class='add'>+	0x1039, 0x103a,</div><div class='add'>+	0x1063, 0x1064,</div><div class='add'>+	0x1069, 0x106d,</div><div class='add'>+	0x1087, 0x108d,</div><div class='add'>+	0x108f, 0x108f,</div><div class='add'>+	0x109a, 0x109b,</div><div class='add'>+	0x135d, 0x135f,</div><div class='add'>+	0x1714, 0x1715,</div><div class='add'>+	0x17c9, 0x17d3,</div><div class='add'>+	0x17dd, 0x17dd,</div><div class='add'>+	0x1939, 0x193b,</div><div class='add'>+	0x1a75, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a7f,</div><div class='add'>+	0x1ab0, 0x1abe,</div><div class='add'>+	0x1ac1, 0x1acb,</div><div class='add'>+	0x1b34, 0x1b34,</div><div class='add'>+	0x1b44, 0x1b44,</div><div class='add'>+	0x1b6b, 0x1b73,</div><div class='add'>+	0x1baa, 0x1bab,</div><div class='add'>+	0x1c36, 0x1c37,</div><div class='add'>+	0x1c78, 0x1c7d,</div><div class='add'>+	0x1cd0, 0x1ce8,</div><div class='add'>+	0x1ced, 0x1ced,</div><div class='add'>+	0x1cf4, 0x1cf4,</div><div class='add'>+	0x1cf7, 0x1cf9,</div><div class='add'>+	0x1d2c, 0x1d6a,</div><div class='add'>+	0x1dc4, 0x1dcf,</div><div class='add'>+	0x1df5, 0x1dff,</div><div class='add'>+	0x1fbd, 0x1fbd,</div><div class='add'>+	0x1fbf, 0x1fc1,</div><div class='add'>+	0x1fcd, 0x1fcf,</div><div class='add'>+	0x1fdd, 0x1fdf,</div><div class='add'>+	0x1fed, 0x1fef,</div><div class='add'>+	0x1ffd, 0x1ffe,</div><div class='add'>+	0x2cef, 0x2cf1,</div><div class='add'>+	0x2e2f, 0x2e2f,</div><div class='add'>+	0x302a, 0x302f,</div><div class='add'>+	0x3099, 0x309c,</div><div class='add'>+	0x30fc, 0x30fc,</div><div class='add'>+	0xa66f, 0xa66f,</div><div class='add'>+	0xa67c, 0xa67d,</div><div class='add'>+	0xa67f, 0xa67f,</div><div class='add'>+	0xa69c, 0xa69d,</div><div class='add'>+	0xa6f0, 0xa6f1,</div><div class='add'>+	0xa700, 0xa721,</div><div class='add'>+	0xa788, 0xa78a,</div><div class='add'>+	0xa7f8, 0xa7f9,</div><div class='add'>+	0xa8c4, 0xa8c4,</div><div class='add'>+	0xa8e0, 0xa8f1,</div><div class='add'>+	0xa92b, 0xa92e,</div><div class='add'>+	0xa953, 0xa953,</div><div class='add'>+	0xa9b3, 0xa9b3,</div><div class='add'>+	0xa9c0, 0xa9c0,</div><div class='add'>+	0xa9e5, 0xa9e5,</div><div class='add'>+	0xaa7b, 0xaa7d,</div><div class='add'>+	0xaabf, 0xaac2,</div><div class='add'>+	0xaaf6, 0xaaf6,</div><div class='add'>+	0xab5b, 0xab5f,</div><div class='add'>+	0xab69, 0xab6b,</div><div class='add'>+	0xabec, 0xabed,</div><div class='add'>+	0xfb1e, 0xfb1e,</div><div class='add'>+	0xfe20, 0xfe2f,</div><div class='add'>+	0xff3e, 0xff3e,</div><div class='add'>+	0xff40, 0xff40,</div><div class='add'>+	0xff70, 0xff70,</div><div class='add'>+	0xff9e, 0xff9f,</div><div class='add'>+	0xffe3, 0xffe3,</div><div class='add'>+	0x102e0, 0x102e0,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10ae5, 0x10ae6,</div><div class='add'>+	0x10d22, 0x10d27,</div><div class='add'>+	0x10efd, 0x10eff,</div><div class='add'>+	0x10f46, 0x10f50,</div><div class='add'>+	0x10f82, 0x10f85,</div><div class='add'>+	0x11046, 0x11046,</div><div class='add'>+	0x11070, 0x11070,</div><div class='add'>+	0x110b9, 0x110ba,</div><div class='add'>+	0x11133, 0x11134,</div><div class='add'>+	0x11173, 0x11173,</div><div class='add'>+	0x111c0, 0x111c0,</div><div class='add'>+	0x111ca, 0x111cc,</div><div class='add'>+	0x11235, 0x11236,</div><div class='add'>+	0x112e9, 0x112ea,</div><div class='add'>+	0x1133c, 0x1133c,</div><div class='add'>+	0x1134d, 0x1134d,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11442, 0x11442,</div><div class='add'>+	0x11446, 0x11446,</div><div class='add'>+	0x114c2, 0x114c3,</div><div class='add'>+	0x115bf, 0x115c0,</div><div class='add'>+	0x1163f, 0x1163f,</div><div class='add'>+	0x116b6, 0x116b7,</div><div class='add'>+	0x1172b, 0x1172b,</div><div class='add'>+	0x11839, 0x1183a,</div><div class='add'>+	0x1193d, 0x1193e,</div><div class='add'>+	0x11943, 0x11943,</div><div class='add'>+	0x119e0, 0x119e0,</div><div class='add'>+	0x11a34, 0x11a34,</div><div class='add'>+	0x11a47, 0x11a47,</div><div class='add'>+	0x11a99, 0x11a99,</div><div class='add'>+	0x11c3f, 0x11c3f,</div><div class='add'>+	0x11d42, 0x11d42,</div><div class='add'>+	0x11d44, 0x11d45,</div><div class='add'>+	0x11d97, 0x11d97,</div><div class='add'>+	0x13447, 0x13455,</div><div class='add'>+	0x16af0, 0x16af4,</div><div class='add'>+	0x16b30, 0x16b36,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1d167, 0x1d169,</div><div class='add'>+	0x1d16d, 0x1d172,</div><div class='add'>+	0x1d17b, 0x1d182,</div><div class='add'>+	0x1d185, 0x1d18b,</div><div class='add'>+	0x1d1aa, 0x1d1ad,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e130, 0x1e136,</div><div class='add'>+	0x1e2ae, 0x1e2ae,</div><div class='add'>+	0x1e2ec, 0x1e2ef,</div><div class='add'>+	0x1e8d0, 0x1e8d6,</div><div class='add'>+	0x1e944, 0x1e946,</div><div class='add'>+	0x1e948, 0x1e94a,</div><div class='add'>+}; /* CR_Diacritic */</div><div class='add'>+</div><div class='add'>+/* 'Extender': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Extender[] = {</div><div class='add'>+	33,</div><div class='add'>+	0x00b7, 0x00b7,</div><div class='add'>+	0x02d0, 0x02d1,</div><div class='add'>+	0x0640, 0x0640,</div><div class='add'>+	0x07fa, 0x07fa,</div><div class='add'>+	0x0b55, 0x0b55,</div><div class='add'>+	0x0e46, 0x0e46,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x180a, 0x180a,</div><div class='add'>+	0x1843, 0x1843,</div><div class='add'>+	0x1aa7, 0x1aa7,</div><div class='add'>+	0x1c36, 0x1c36,</div><div class='add'>+	0x1c7b, 0x1c7b,</div><div class='add'>+	0x3005, 0x3005,</div><div class='add'>+	0x3031, 0x3035,</div><div class='add'>+	0x309d, 0x309e,</div><div class='add'>+	0x30fc, 0x30fe,</div><div class='add'>+	0xa015, 0xa015,</div><div class='add'>+	0xa60c, 0xa60c,</div><div class='add'>+	0xa9cf, 0xa9cf,</div><div class='add'>+	0xa9e6, 0xa9e6,</div><div class='add'>+	0xaa70, 0xaa70,</div><div class='add'>+	0xaadd, 0xaadd,</div><div class='add'>+	0xaaf3, 0xaaf4,</div><div class='add'>+	0xff70, 0xff70,</div><div class='add'>+	0x10781, 0x10782,</div><div class='add'>+	0x1135d, 0x1135d,</div><div class='add'>+	0x115c6, 0x115c8,</div><div class='add'>+	0x11a98, 0x11a98,</div><div class='add'>+	0x16b42, 0x16b43,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x16fe3, 0x16fe3,</div><div class='add'>+	0x1e13c, 0x1e13d,</div><div class='add'>+	0x1e944, 0x1e946,</div><div class='add'>+}; /* CR_Extender */</div><div class='add'>+</div><div class='add'>+/* 'Other_Lowercase': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Other_Lowercase[] = {</div><div class='add'>+	28,</div><div class='add'>+	0x00aa, 0x00aa,</div><div class='add'>+	0x00ba, 0x00ba,</div><div class='add'>+	0x02b0, 0x02b8,</div><div class='add'>+	0x02c0, 0x02c1,</div><div class='add'>+	0x02e0, 0x02e4,</div><div class='add'>+	0x0345, 0x0345,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x10fc, 0x10fc,</div><div class='add'>+	0x1d2c, 0x1d6a,</div><div class='add'>+	0x1d78, 0x1d78,</div><div class='add'>+	0x1d9b, 0x1dbf,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x207f, 0x207f,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x2170, 0x217f,</div><div class='add'>+	0x24d0, 0x24e9,</div><div class='add'>+	0x2c7c, 0x2c7d,</div><div class='add'>+	0xa69c, 0xa69d,</div><div class='add'>+	0xa770, 0xa770,</div><div class='add'>+	0xa7f2, 0xa7f4,</div><div class='add'>+	0xa7f8, 0xa7f9,</div><div class='add'>+	0xab5c, 0xab5f,</div><div class='add'>+	0xab69, 0xab69,</div><div class='add'>+	0x10780, 0x10780,</div><div class='add'>+	0x10783, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+}; /* CR_Other_Lowercase */</div><div class='add'>+</div><div class='add'>+/* 'Other_Uppercase': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Other_Uppercase[] = {</div><div class='add'>+	5,</div><div class='add'>+	0x2160, 0x216f,</div><div class='add'>+	0x24b6, 0x24cf,</div><div class='add'>+	0x1f130, 0x1f149,</div><div class='add'>+	0x1f150, 0x1f169,</div><div class='add'>+	0x1f170, 0x1f189,</div><div class='add'>+}; /* CR_Other_Uppercase */</div><div class='add'>+</div><div class='add'>+/* 'Noncharacter_Code_Point': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Noncharacter_Code_Point[] = {</div><div class='add'>+	18,</div><div class='add'>+	0xfdd0, 0xfdef,</div><div class='add'>+	0xfffe, 0xffff,</div><div class='add'>+	0x1fffe, 0x1ffff,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xefffe, 0xeffff,</div><div class='add'>+	0xffffe, 0xfffff,</div><div class='add'>+	0x10fffe, 0x10ffff,</div><div class='add'>+}; /* CR_Noncharacter_Code_Point */</div><div class='add'>+</div><div class='add'>+/* 'Other_Grapheme_Extend': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Other_Grapheme_Extend[] = {</div><div class='add'>+	25,</div><div class='add'>+	0x09be, 0x09be,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x0b3e, 0x0b3e,</div><div class='add'>+	0x0b57, 0x0b57,</div><div class='add'>+	0x0bbe, 0x0bbe,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0cc2, 0x0cc2,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0d3e, 0x0d3e,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0dcf, 0x0dcf,</div><div class='add'>+	0x0ddf, 0x0ddf,</div><div class='add'>+	0x1b35, 0x1b35,</div><div class='add'>+	0x200c, 0x200c,</div><div class='add'>+	0x302e, 0x302f,</div><div class='add'>+	0xff9e, 0xff9f,</div><div class='add'>+	0x1133e, 0x1133e,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x114b0, 0x114b0,</div><div class='add'>+	0x114bd, 0x114bd,</div><div class='add'>+	0x115af, 0x115af,</div><div class='add'>+	0x11930, 0x11930,</div><div class='add'>+	0x1d165, 0x1d165,</div><div class='add'>+	0x1d16e, 0x1d172,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+}; /* CR_Other_Grapheme_Extend */</div><div class='add'>+</div><div class='add'>+/* 'IDS_Binary_Operator': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_IDS_Binary_Operator[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x2ff0, 0x2ff1,</div><div class='add'>+	0x2ff4, 0x2ffb,</div><div class='add'>+}; /* CR_IDS_Binary_Operator */</div><div class='add'>+</div><div class='add'>+/* 'IDS_Trinary_Operator': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_IDS_Trinary_Operator[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2ff2, 0x2ff3,</div><div class='add'>+}; /* CR_IDS_Trinary_Operator */</div><div class='add'>+</div><div class='add'>+/* 'Radical': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Radical[] = {</div><div class='add'>+	3,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+}; /* CR_Radical */</div><div class='add'>+</div><div class='add'>+/* 'Unified_Ideograph': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Unified_Ideograph[] = {</div><div class='add'>+	16,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+	0x4e00, 0x9fff,</div><div class='add'>+	0xfa0e, 0xfa0f,</div><div class='add'>+	0xfa11, 0xfa11,</div><div class='add'>+	0xfa13, 0xfa14,</div><div class='add'>+	0xfa1f, 0xfa1f,</div><div class='add'>+	0xfa21, 0xfa21,</div><div class='add'>+	0xfa23, 0xfa24,</div><div class='add'>+	0xfa27, 0xfa29,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x30000, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+}; /* CR_Unified_Ideograph */</div><div class='add'>+</div><div class='add'>+/* 'Other_Default_Ignorable_Code_Point': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Other_Default_Ignorable_Code_Point[] = {</div><div class='add'>+	11,</div><div class='add'>+	0x034f, 0x034f,</div><div class='add'>+	0x115f, 0x1160,</div><div class='add'>+	0x17b4, 0x17b5,</div><div class='add'>+	0x2065, 0x2065,</div><div class='add'>+	0x3164, 0x3164,</div><div class='add'>+	0xffa0, 0xffa0,</div><div class='add'>+	0xfff0, 0xfff8,</div><div class='add'>+	0xe0000, 0xe0000,</div><div class='add'>+	0xe0002, 0xe001f,</div><div class='add'>+	0xe0080, 0xe00ff,</div><div class='add'>+	0xe01f0, 0xe0fff,</div><div class='add'>+}; /* CR_Other_Default_Ignorable_Code_Point */</div><div class='add'>+</div><div class='add'>+/* 'Deprecated': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Deprecated[] = {</div><div class='add'>+	8,</div><div class='add'>+	0x0149, 0x0149,</div><div class='add'>+	0x0673, 0x0673,</div><div class='add'>+	0x0f77, 0x0f77,</div><div class='add'>+	0x0f79, 0x0f79,</div><div class='add'>+	0x17a3, 0x17a4,</div><div class='add'>+	0x206a, 0x206f,</div><div class='add'>+	0x2329, 0x232a,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+}; /* CR_Deprecated */</div><div class='add'>+</div><div class='add'>+/* 'Soft_Dotted': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Soft_Dotted[] = {</div><div class='add'>+	34,</div><div class='add'>+	0x0069, 0x006a,</div><div class='add'>+	0x012f, 0x012f,</div><div class='add'>+	0x0249, 0x0249,</div><div class='add'>+	0x0268, 0x0268,</div><div class='add'>+	0x029d, 0x029d,</div><div class='add'>+	0x02b2, 0x02b2,</div><div class='add'>+	0x03f3, 0x03f3,</div><div class='add'>+	0x0456, 0x0456,</div><div class='add'>+	0x0458, 0x0458,</div><div class='add'>+	0x1d62, 0x1d62,</div><div class='add'>+	0x1d96, 0x1d96,</div><div class='add'>+	0x1da4, 0x1da4,</div><div class='add'>+	0x1da8, 0x1da8,</div><div class='add'>+	0x1e2d, 0x1e2d,</div><div class='add'>+	0x1ecb, 0x1ecb,</div><div class='add'>+	0x2071, 0x2071,</div><div class='add'>+	0x2148, 0x2149,</div><div class='add'>+	0x2c7c, 0x2c7c,</div><div class='add'>+	0x1d422, 0x1d423,</div><div class='add'>+	0x1d456, 0x1d457,</div><div class='add'>+	0x1d48a, 0x1d48b,</div><div class='add'>+	0x1d4be, 0x1d4bf,</div><div class='add'>+	0x1d4f2, 0x1d4f3,</div><div class='add'>+	0x1d526, 0x1d527,</div><div class='add'>+	0x1d55a, 0x1d55b,</div><div class='add'>+	0x1d58e, 0x1d58f,</div><div class='add'>+	0x1d5c2, 0x1d5c3,</div><div class='add'>+	0x1d5f6, 0x1d5f7,</div><div class='add'>+	0x1d62a, 0x1d62b,</div><div class='add'>+	0x1d65e, 0x1d65f,</div><div class='add'>+	0x1d692, 0x1d693,</div><div class='add'>+	0x1df1a, 0x1df1a,</div><div class='add'>+	0x1e04c, 0x1e04d,</div><div class='add'>+	0x1e068, 0x1e068,</div><div class='add'>+}; /* CR_Soft_Dotted */</div><div class='add'>+</div><div class='add'>+/* 'Logical_Order_Exception': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Logical_Order_Exception[] = {</div><div class='add'>+	7,</div><div class='add'>+	0x0e40, 0x0e44,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x19b5, 0x19b7,</div><div class='add'>+	0x19ba, 0x19ba,</div><div class='add'>+	0xaab5, 0xaab6,</div><div class='add'>+	0xaab9, 0xaab9,</div><div class='add'>+	0xaabb, 0xaabc,</div><div class='add'>+}; /* CR_Logical_Order_Exception */</div><div class='add'>+</div><div class='add'>+/* 'Other_ID_Start': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Other_ID_Start[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x1885, 0x1886,</div><div class='add'>+	0x2118, 0x2118,</div><div class='add'>+	0x212e, 0x212e,</div><div class='add'>+	0x309b, 0x309c,</div><div class='add'>+}; /* CR_Other_ID_Start */</div><div class='add'>+</div><div class='add'>+/* 'Other_ID_Continue': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Other_ID_Continue[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x00b7, 0x00b7,</div><div class='add'>+	0x0387, 0x0387,</div><div class='add'>+	0x1369, 0x1371,</div><div class='add'>+	0x19da, 0x19da,</div><div class='add'>+}; /* CR_Other_ID_Continue */</div><div class='add'>+</div><div class='add'>+/* 'Sentence_Terminal': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Sentence_Terminal[] = {</div><div class='add'>+	80,</div><div class='add'>+	0x0021, 0x0021,</div><div class='add'>+	0x002e, 0x002e,</div><div class='add'>+	0x003f, 0x003f,</div><div class='add'>+	0x0589, 0x0589,</div><div class='add'>+	0x061d, 0x061f,</div><div class='add'>+	0x06d4, 0x06d4,</div><div class='add'>+	0x0700, 0x0702,</div><div class='add'>+	0x07f9, 0x07f9,</div><div class='add'>+	0x0837, 0x0837,</div><div class='add'>+	0x0839, 0x0839,</div><div class='add'>+	0x083d, 0x083e,</div><div class='add'>+	0x0964, 0x0965,</div><div class='add'>+	0x104a, 0x104b,</div><div class='add'>+	0x1362, 0x1362,</div><div class='add'>+	0x1367, 0x1368,</div><div class='add'>+	0x166e, 0x166e,</div><div class='add'>+	0x1735, 0x1736,</div><div class='add'>+	0x1803, 0x1803,</div><div class='add'>+	0x1809, 0x1809,</div><div class='add'>+	0x1944, 0x1945,</div><div class='add'>+	0x1aa8, 0x1aab,</div><div class='add'>+	0x1b5a, 0x1b5b,</div><div class='add'>+	0x1b5e, 0x1b5f,</div><div class='add'>+	0x1b7d, 0x1b7e,</div><div class='add'>+	0x1c3b, 0x1c3c,</div><div class='add'>+	0x1c7e, 0x1c7f,</div><div class='add'>+	0x203c, 0x203d,</div><div class='add'>+	0x2047, 0x2049,</div><div class='add'>+	0x2e2e, 0x2e2e,</div><div class='add'>+	0x2e3c, 0x2e3c,</div><div class='add'>+	0x2e53, 0x2e54,</div><div class='add'>+	0x3002, 0x3002,</div><div class='add'>+	0xa4ff, 0xa4ff,</div><div class='add'>+	0xa60e, 0xa60f,</div><div class='add'>+	0xa6f3, 0xa6f3,</div><div class='add'>+	0xa6f7, 0xa6f7,</div><div class='add'>+	0xa876, 0xa877,</div><div class='add'>+	0xa8ce, 0xa8cf,</div><div class='add'>+	0xa92f, 0xa92f,</div><div class='add'>+	0xa9c8, 0xa9c9,</div><div class='add'>+	0xaa5d, 0xaa5f,</div><div class='add'>+	0xaaf0, 0xaaf1,</div><div class='add'>+	0xabeb, 0xabeb,</div><div class='add'>+	0xfe52, 0xfe52,</div><div class='add'>+	0xfe56, 0xfe57,</div><div class='add'>+	0xff01, 0xff01,</div><div class='add'>+	0xff0e, 0xff0e,</div><div class='add'>+	0xff1f, 0xff1f,</div><div class='add'>+	0xff61, 0xff61,</div><div class='add'>+	0x10a56, 0x10a57,</div><div class='add'>+	0x10f55, 0x10f59,</div><div class='add'>+	0x10f86, 0x10f89,</div><div class='add'>+	0x11047, 0x11048,</div><div class='add'>+	0x110be, 0x110c1,</div><div class='add'>+	0x11141, 0x11143,</div><div class='add'>+	0x111c5, 0x111c6,</div><div class='add'>+	0x111cd, 0x111cd,</div><div class='add'>+	0x111de, 0x111df,</div><div class='add'>+	0x11238, 0x11239,</div><div class='add'>+	0x1123b, 0x1123c,</div><div class='add'>+	0x112a9, 0x112a9,</div><div class='add'>+	0x1144b, 0x1144c,</div><div class='add'>+	0x115c2, 0x115c3,</div><div class='add'>+	0x115c9, 0x115d7,</div><div class='add'>+	0x11641, 0x11642,</div><div class='add'>+	0x1173c, 0x1173e,</div><div class='add'>+	0x11944, 0x11944,</div><div class='add'>+	0x11946, 0x11946,</div><div class='add'>+	0x11a42, 0x11a43,</div><div class='add'>+	0x11a9b, 0x11a9c,</div><div class='add'>+	0x11c41, 0x11c42,</div><div class='add'>+	0x11ef7, 0x11ef8,</div><div class='add'>+	0x11f43, 0x11f44,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16af5, 0x16af5,</div><div class='add'>+	0x16b37, 0x16b38,</div><div class='add'>+	0x16b44, 0x16b44,</div><div class='add'>+	0x16e98, 0x16e98,</div><div class='add'>+	0x1bc9f, 0x1bc9f,</div><div class='add'>+	0x1da88, 0x1da88,</div><div class='add'>+}; /* CR_Sentence_Terminal */</div><div class='add'>+</div><div class='add'>+/* 'Variation_Selector': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Variation_Selector[] = {</div><div class='add'>+	4,</div><div class='add'>+	0x180b, 0x180d,</div><div class='add'>+	0x180f, 0x180f,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+}; /* CR_Variation_Selector */</div><div class='add'>+</div><div class='add'>+/* 'Pattern_White_Space': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Pattern_White_Space[] = {</div><div class='add'>+	5,</div><div class='add'>+	0x0009, 0x000d,</div><div class='add'>+	0x0020, 0x0020,</div><div class='add'>+	0x0085, 0x0085,</div><div class='add'>+	0x200e, 0x200f,</div><div class='add'>+	0x2028, 0x2029,</div><div class='add'>+}; /* CR_Pattern_White_Space */</div><div class='add'>+</div><div class='add'>+/* 'Pattern_Syntax': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Pattern_Syntax[] = {</div><div class='add'>+	28,</div><div class='add'>+	0x0021, 0x002f,</div><div class='add'>+	0x003a, 0x0040,</div><div class='add'>+	0x005b, 0x005e,</div><div class='add'>+	0x0060, 0x0060,</div><div class='add'>+	0x007b, 0x007e,</div><div class='add'>+	0x00a1, 0x00a7,</div><div class='add'>+	0x00a9, 0x00a9,</div><div class='add'>+	0x00ab, 0x00ac,</div><div class='add'>+	0x00ae, 0x00ae,</div><div class='add'>+	0x00b0, 0x00b1,</div><div class='add'>+	0x00b6, 0x00b6,</div><div class='add'>+	0x00bb, 0x00bb,</div><div class='add'>+	0x00bf, 0x00bf,</div><div class='add'>+	0x00d7, 0x00d7,</div><div class='add'>+	0x00f7, 0x00f7,</div><div class='add'>+	0x2010, 0x2027,</div><div class='add'>+	0x2030, 0x203e,</div><div class='add'>+	0x2041, 0x2053,</div><div class='add'>+	0x2055, 0x205e,</div><div class='add'>+	0x2190, 0x245f,</div><div class='add'>+	0x2500, 0x2775,</div><div class='add'>+	0x2794, 0x2bff,</div><div class='add'>+	0x2e00, 0x2e7f,</div><div class='add'>+	0x3001, 0x3003,</div><div class='add'>+	0x3008, 0x3020,</div><div class='add'>+	0x3030, 0x3030,</div><div class='add'>+	0xfd3e, 0xfd3f,</div><div class='add'>+	0xfe45, 0xfe46,</div><div class='add'>+}; /* CR_Pattern_Syntax */</div><div class='add'>+</div><div class='add'>+/* 'Prepended_Concatenation_Mark': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Prepended_Concatenation_Mark[] = {</div><div class='add'>+	7,</div><div class='add'>+	0x0600, 0x0605,</div><div class='add'>+	0x06dd, 0x06dd,</div><div class='add'>+	0x070f, 0x070f,</div><div class='add'>+	0x0890, 0x0891,</div><div class='add'>+	0x08e2, 0x08e2,</div><div class='add'>+	0x110bd, 0x110bd,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+}; /* CR_Prepended_Concatenation_Mark */</div><div class='add'>+</div><div class='add'>+/* 'Regional_Indicator': Binary Property */</div><div class='add'>+static const OnigCodePoint CR_Regional_Indicator[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f1e6, 0x1f1ff,</div><div class='add'>+}; /* CR_Regional_Indicator */</div><div class='add'>+</div><div class='add'>+/* 'Emoji': Emoji */</div><div class='add'>+static const OnigCodePoint CR_Emoji[] = {</div><div class='add'>+	151,</div><div class='add'>+	0x0023, 0x0023,</div><div class='add'>+	0x002a, 0x002a,</div><div class='add'>+	0x0030, 0x0039,</div><div class='add'>+	0x00a9, 0x00a9,</div><div class='add'>+	0x00ae, 0x00ae,</div><div class='add'>+	0x203c, 0x203c,</div><div class='add'>+	0x2049, 0x2049,</div><div class='add'>+	0x2122, 0x2122,</div><div class='add'>+	0x2139, 0x2139,</div><div class='add'>+	0x2194, 0x2199,</div><div class='add'>+	0x21a9, 0x21aa,</div><div class='add'>+	0x231a, 0x231b,</div><div class='add'>+	0x2328, 0x2328,</div><div class='add'>+	0x23cf, 0x23cf,</div><div class='add'>+	0x23e9, 0x23f3,</div><div class='add'>+	0x23f8, 0x23fa,</div><div class='add'>+	0x24c2, 0x24c2,</div><div class='add'>+	0x25aa, 0x25ab,</div><div class='add'>+	0x25b6, 0x25b6,</div><div class='add'>+	0x25c0, 0x25c0,</div><div class='add'>+	0x25fb, 0x25fe,</div><div class='add'>+	0x2600, 0x2604,</div><div class='add'>+	0x260e, 0x260e,</div><div class='add'>+	0x2611, 0x2611,</div><div class='add'>+	0x2614, 0x2615,</div><div class='add'>+	0x2618, 0x2618,</div><div class='add'>+	0x261d, 0x261d,</div><div class='add'>+	0x2620, 0x2620,</div><div class='add'>+	0x2622, 0x2623,</div><div class='add'>+	0x2626, 0x2626,</div><div class='add'>+	0x262a, 0x262a,</div><div class='add'>+	0x262e, 0x262f,</div><div class='add'>+	0x2638, 0x263a,</div><div class='add'>+	0x2640, 0x2640,</div><div class='add'>+	0x2642, 0x2642,</div><div class='add'>+	0x2648, 0x2653,</div><div class='add'>+	0x265f, 0x2660,</div><div class='add'>+	0x2663, 0x2663,</div><div class='add'>+	0x2665, 0x2666,</div><div class='add'>+	0x2668, 0x2668,</div><div class='add'>+	0x267b, 0x267b,</div><div class='add'>+	0x267e, 0x267f,</div><div class='add'>+	0x2692, 0x2697,</div><div class='add'>+	0x2699, 0x2699,</div><div class='add'>+	0x269b, 0x269c,</div><div class='add'>+	0x26a0, 0x26a1,</div><div class='add'>+	0x26a7, 0x26a7,</div><div class='add'>+	0x26aa, 0x26ab,</div><div class='add'>+	0x26b0, 0x26b1,</div><div class='add'>+	0x26bd, 0x26be,</div><div class='add'>+	0x26c4, 0x26c5,</div><div class='add'>+	0x26c8, 0x26c8,</div><div class='add'>+	0x26ce, 0x26cf,</div><div class='add'>+	0x26d1, 0x26d1,</div><div class='add'>+	0x26d3, 0x26d4,</div><div class='add'>+	0x26e9, 0x26ea,</div><div class='add'>+	0x26f0, 0x26f5,</div><div class='add'>+	0x26f7, 0x26fa,</div><div class='add'>+	0x26fd, 0x26fd,</div><div class='add'>+	0x2702, 0x2702,</div><div class='add'>+	0x2705, 0x2705,</div><div class='add'>+	0x2708, 0x270d,</div><div class='add'>+	0x270f, 0x270f,</div><div class='add'>+	0x2712, 0x2712,</div><div class='add'>+	0x2714, 0x2714,</div><div class='add'>+	0x2716, 0x2716,</div><div class='add'>+	0x271d, 0x271d,</div><div class='add'>+	0x2721, 0x2721,</div><div class='add'>+	0x2728, 0x2728,</div><div class='add'>+	0x2733, 0x2734,</div><div class='add'>+	0x2744, 0x2744,</div><div class='add'>+	0x2747, 0x2747,</div><div class='add'>+	0x274c, 0x274c,</div><div class='add'>+	0x274e, 0x274e,</div><div class='add'>+	0x2753, 0x2755,</div><div class='add'>+	0x2757, 0x2757,</div><div class='add'>+	0x2763, 0x2764,</div><div class='add'>+	0x2795, 0x2797,</div><div class='add'>+	0x27a1, 0x27a1,</div><div class='add'>+	0x27b0, 0x27b0,</div><div class='add'>+	0x27bf, 0x27bf,</div><div class='add'>+	0x2934, 0x2935,</div><div class='add'>+	0x2b05, 0x2b07,</div><div class='add'>+	0x2b1b, 0x2b1c,</div><div class='add'>+	0x2b50, 0x2b50,</div><div class='add'>+	0x2b55, 0x2b55,</div><div class='add'>+	0x3030, 0x3030,</div><div class='add'>+	0x303d, 0x303d,</div><div class='add'>+	0x3297, 0x3297,</div><div class='add'>+	0x3299, 0x3299,</div><div class='add'>+	0x1f004, 0x1f004,</div><div class='add'>+	0x1f0cf, 0x1f0cf,</div><div class='add'>+	0x1f170, 0x1f171,</div><div class='add'>+	0x1f17e, 0x1f17f,</div><div class='add'>+	0x1f18e, 0x1f18e,</div><div class='add'>+	0x1f191, 0x1f19a,</div><div class='add'>+	0x1f1e6, 0x1f1ff,</div><div class='add'>+	0x1f201, 0x1f202,</div><div class='add'>+	0x1f21a, 0x1f21a,</div><div class='add'>+	0x1f22f, 0x1f22f,</div><div class='add'>+	0x1f232, 0x1f23a,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f300, 0x1f321,</div><div class='add'>+	0x1f324, 0x1f393,</div><div class='add'>+	0x1f396, 0x1f397,</div><div class='add'>+	0x1f399, 0x1f39b,</div><div class='add'>+	0x1f39e, 0x1f3f0,</div><div class='add'>+	0x1f3f3, 0x1f3f5,</div><div class='add'>+	0x1f3f7, 0x1f4fd,</div><div class='add'>+	0x1f4ff, 0x1f53d,</div><div class='add'>+	0x1f549, 0x1f54e,</div><div class='add'>+	0x1f550, 0x1f567,</div><div class='add'>+	0x1f56f, 0x1f570,</div><div class='add'>+	0x1f573, 0x1f57a,</div><div class='add'>+	0x1f587, 0x1f587,</div><div class='add'>+	0x1f58a, 0x1f58d,</div><div class='add'>+	0x1f590, 0x1f590,</div><div class='add'>+	0x1f595, 0x1f596,</div><div class='add'>+	0x1f5a4, 0x1f5a5,</div><div class='add'>+	0x1f5a8, 0x1f5a8,</div><div class='add'>+	0x1f5b1, 0x1f5b2,</div><div class='add'>+	0x1f5bc, 0x1f5bc,</div><div class='add'>+	0x1f5c2, 0x1f5c4,</div><div class='add'>+	0x1f5d1, 0x1f5d3,</div><div class='add'>+	0x1f5dc, 0x1f5de,</div><div class='add'>+	0x1f5e1, 0x1f5e1,</div><div class='add'>+	0x1f5e3, 0x1f5e3,</div><div class='add'>+	0x1f5e8, 0x1f5e8,</div><div class='add'>+	0x1f5ef, 0x1f5ef,</div><div class='add'>+	0x1f5f3, 0x1f5f3,</div><div class='add'>+	0x1f5fa, 0x1f64f,</div><div class='add'>+	0x1f680, 0x1f6c5,</div><div class='add'>+	0x1f6cb, 0x1f6d2,</div><div class='add'>+	0x1f6d5, 0x1f6d7,</div><div class='add'>+	0x1f6dc, 0x1f6e5,</div><div class='add'>+	0x1f6e9, 0x1f6e9,</div><div class='add'>+	0x1f6eb, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6f0,</div><div class='add'>+	0x1f6f3, 0x1f6fc,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f7f0, 0x1f7f0,</div><div class='add'>+	0x1f90c, 0x1f93a,</div><div class='add'>+	0x1f93c, 0x1f945,</div><div class='add'>+	0x1f947, 0x1f9ff,</div><div class='add'>+	0x1fa70, 0x1fa7c,</div><div class='add'>+	0x1fa80, 0x1fa88,</div><div class='add'>+	0x1fa90, 0x1fabd,</div><div class='add'>+	0x1fabf, 0x1fac5,</div><div class='add'>+	0x1face, 0x1fadb,</div><div class='add'>+	0x1fae0, 0x1fae8,</div><div class='add'>+	0x1faf0, 0x1faf8,</div><div class='add'>+}; /* CR_Emoji */</div><div class='add'>+</div><div class='add'>+/* 'Emoji_Presentation': Emoji */</div><div class='add'>+static const OnigCodePoint CR_Emoji_Presentation[] = {</div><div class='add'>+	81,</div><div class='add'>+	0x231a, 0x231b,</div><div class='add'>+	0x23e9, 0x23ec,</div><div class='add'>+	0x23f0, 0x23f0,</div><div class='add'>+	0x23f3, 0x23f3,</div><div class='add'>+	0x25fd, 0x25fe,</div><div class='add'>+	0x2614, 0x2615,</div><div class='add'>+	0x2648, 0x2653,</div><div class='add'>+	0x267f, 0x267f,</div><div class='add'>+	0x2693, 0x2693,</div><div class='add'>+	0x26a1, 0x26a1,</div><div class='add'>+	0x26aa, 0x26ab,</div><div class='add'>+	0x26bd, 0x26be,</div><div class='add'>+	0x26c4, 0x26c5,</div><div class='add'>+	0x26ce, 0x26ce,</div><div class='add'>+	0x26d4, 0x26d4,</div><div class='add'>+	0x26ea, 0x26ea,</div><div class='add'>+	0x26f2, 0x26f3,</div><div class='add'>+	0x26f5, 0x26f5,</div><div class='add'>+	0x26fa, 0x26fa,</div><div class='add'>+	0x26fd, 0x26fd,</div><div class='add'>+	0x2705, 0x2705,</div><div class='add'>+	0x270a, 0x270b,</div><div class='add'>+	0x2728, 0x2728,</div><div class='add'>+	0x274c, 0x274c,</div><div class='add'>+	0x274e, 0x274e,</div><div class='add'>+	0x2753, 0x2755,</div><div class='add'>+	0x2757, 0x2757,</div><div class='add'>+	0x2795, 0x2797,</div><div class='add'>+	0x27b0, 0x27b0,</div><div class='add'>+	0x27bf, 0x27bf,</div><div class='add'>+	0x2b1b, 0x2b1c,</div><div class='add'>+	0x2b50, 0x2b50,</div><div class='add'>+	0x2b55, 0x2b55,</div><div class='add'>+	0x1f004, 0x1f004,</div><div class='add'>+	0x1f0cf, 0x1f0cf,</div><div class='add'>+	0x1f18e, 0x1f18e,</div><div class='add'>+	0x1f191, 0x1f19a,</div><div class='add'>+	0x1f1e6, 0x1f1ff,</div><div class='add'>+	0x1f201, 0x1f201,</div><div class='add'>+	0x1f21a, 0x1f21a,</div><div class='add'>+	0x1f22f, 0x1f22f,</div><div class='add'>+	0x1f232, 0x1f236,</div><div class='add'>+	0x1f238, 0x1f23a,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f300, 0x1f320,</div><div class='add'>+	0x1f32d, 0x1f335,</div><div class='add'>+	0x1f337, 0x1f37c,</div><div class='add'>+	0x1f37e, 0x1f393,</div><div class='add'>+	0x1f3a0, 0x1f3ca,</div><div class='add'>+	0x1f3cf, 0x1f3d3,</div><div class='add'>+	0x1f3e0, 0x1f3f0,</div><div class='add'>+	0x1f3f4, 0x1f3f4,</div><div class='add'>+	0x1f3f8, 0x1f43e,</div><div class='add'>+	0x1f440, 0x1f440,</div><div class='add'>+	0x1f442, 0x1f4fc,</div><div class='add'>+	0x1f4ff, 0x1f53d,</div><div class='add'>+	0x1f54b, 0x1f54e,</div><div class='add'>+	0x1f550, 0x1f567,</div><div class='add'>+	0x1f57a, 0x1f57a,</div><div class='add'>+	0x1f595, 0x1f596,</div><div class='add'>+	0x1f5a4, 0x1f5a4,</div><div class='add'>+	0x1f5fb, 0x1f64f,</div><div class='add'>+	0x1f680, 0x1f6c5,</div><div class='add'>+	0x1f6cc, 0x1f6cc,</div><div class='add'>+	0x1f6d0, 0x1f6d2,</div><div class='add'>+	0x1f6d5, 0x1f6d7,</div><div class='add'>+	0x1f6dc, 0x1f6df,</div><div class='add'>+	0x1f6eb, 0x1f6ec,</div><div class='add'>+	0x1f6f4, 0x1f6fc,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f7f0, 0x1f7f0,</div><div class='add'>+	0x1f90c, 0x1f93a,</div><div class='add'>+	0x1f93c, 0x1f945,</div><div class='add'>+	0x1f947, 0x1f9ff,</div><div class='add'>+	0x1fa70, 0x1fa7c,</div><div class='add'>+	0x1fa80, 0x1fa88,</div><div class='add'>+	0x1fa90, 0x1fabd,</div><div class='add'>+	0x1fabf, 0x1fac5,</div><div class='add'>+	0x1face, 0x1fadb,</div><div class='add'>+	0x1fae0, 0x1fae8,</div><div class='add'>+	0x1faf0, 0x1faf8,</div><div class='add'>+}; /* CR_Emoji_Presentation */</div><div class='add'>+</div><div class='add'>+/* 'Emoji_Modifier': Emoji */</div><div class='add'>+static const OnigCodePoint CR_Emoji_Modifier[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f3fb, 0x1f3ff,</div><div class='add'>+}; /* CR_Emoji_Modifier */</div><div class='add'>+</div><div class='add'>+/* 'Emoji_Modifier_Base': Emoji */</div><div class='add'>+static const OnigCodePoint CR_Emoji_Modifier_Base[] = {</div><div class='add'>+	40,</div><div class='add'>+	0x261d, 0x261d,</div><div class='add'>+	0x26f9, 0x26f9,</div><div class='add'>+	0x270a, 0x270d,</div><div class='add'>+	0x1f385, 0x1f385,</div><div class='add'>+	0x1f3c2, 0x1f3c4,</div><div class='add'>+	0x1f3c7, 0x1f3c7,</div><div class='add'>+	0x1f3ca, 0x1f3cc,</div><div class='add'>+	0x1f442, 0x1f443,</div><div class='add'>+	0x1f446, 0x1f450,</div><div class='add'>+	0x1f466, 0x1f478,</div><div class='add'>+	0x1f47c, 0x1f47c,</div><div class='add'>+	0x1f481, 0x1f483,</div><div class='add'>+	0x1f485, 0x1f487,</div><div class='add'>+	0x1f48f, 0x1f48f,</div><div class='add'>+	0x1f491, 0x1f491,</div><div class='add'>+	0x1f4aa, 0x1f4aa,</div><div class='add'>+	0x1f574, 0x1f575,</div><div class='add'>+	0x1f57a, 0x1f57a,</div><div class='add'>+	0x1f590, 0x1f590,</div><div class='add'>+	0x1f595, 0x1f596,</div><div class='add'>+	0x1f645, 0x1f647,</div><div class='add'>+	0x1f64b, 0x1f64f,</div><div class='add'>+	0x1f6a3, 0x1f6a3,</div><div class='add'>+	0x1f6b4, 0x1f6b6,</div><div class='add'>+	0x1f6c0, 0x1f6c0,</div><div class='add'>+	0x1f6cc, 0x1f6cc,</div><div class='add'>+	0x1f90c, 0x1f90c,</div><div class='add'>+	0x1f90f, 0x1f90f,</div><div class='add'>+	0x1f918, 0x1f91f,</div><div class='add'>+	0x1f926, 0x1f926,</div><div class='add'>+	0x1f930, 0x1f939,</div><div class='add'>+	0x1f93c, 0x1f93e,</div><div class='add'>+	0x1f977, 0x1f977,</div><div class='add'>+	0x1f9b5, 0x1f9b6,</div><div class='add'>+	0x1f9b8, 0x1f9b9,</div><div class='add'>+	0x1f9bb, 0x1f9bb,</div><div class='add'>+	0x1f9cd, 0x1f9cf,</div><div class='add'>+	0x1f9d1, 0x1f9dd,</div><div class='add'>+	0x1fac3, 0x1fac5,</div><div class='add'>+	0x1faf0, 0x1faf8,</div><div class='add'>+}; /* CR_Emoji_Modifier_Base */</div><div class='add'>+</div><div class='add'>+/* 'Emoji_Component': Emoji */</div><div class='add'>+static const OnigCodePoint CR_Emoji_Component[] = {</div><div class='add'>+	10,</div><div class='add'>+	0x0023, 0x0023,</div><div class='add'>+	0x002a, 0x002a,</div><div class='add'>+	0x0030, 0x0039,</div><div class='add'>+	0x200d, 0x200d,</div><div class='add'>+	0x20e3, 0x20e3,</div><div class='add'>+	0xfe0f, 0xfe0f,</div><div class='add'>+	0x1f1e6, 0x1f1ff,</div><div class='add'>+	0x1f3fb, 0x1f3ff,</div><div class='add'>+	0x1f9b0, 0x1f9b3,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+}; /* CR_Emoji_Component */</div><div class='add'>+</div><div class='add'>+/* 'Extended_Pictographic': Emoji */</div><div class='add'>+static const OnigCodePoint CR_Extended_Pictographic[] = {</div><div class='add'>+	78,</div><div class='add'>+	0x00a9, 0x00a9,</div><div class='add'>+	0x00ae, 0x00ae,</div><div class='add'>+	0x203c, 0x203c,</div><div class='add'>+	0x2049, 0x2049,</div><div class='add'>+	0x2122, 0x2122,</div><div class='add'>+	0x2139, 0x2139,</div><div class='add'>+	0x2194, 0x2199,</div><div class='add'>+	0x21a9, 0x21aa,</div><div class='add'>+	0x231a, 0x231b,</div><div class='add'>+	0x2328, 0x2328,</div><div class='add'>+	0x2388, 0x2388,</div><div class='add'>+	0x23cf, 0x23cf,</div><div class='add'>+	0x23e9, 0x23f3,</div><div class='add'>+	0x23f8, 0x23fa,</div><div class='add'>+	0x24c2, 0x24c2,</div><div class='add'>+	0x25aa, 0x25ab,</div><div class='add'>+	0x25b6, 0x25b6,</div><div class='add'>+	0x25c0, 0x25c0,</div><div class='add'>+	0x25fb, 0x25fe,</div><div class='add'>+	0x2600, 0x2605,</div><div class='add'>+	0x2607, 0x2612,</div><div class='add'>+	0x2614, 0x2685,</div><div class='add'>+	0x2690, 0x2705,</div><div class='add'>+	0x2708, 0x2712,</div><div class='add'>+	0x2714, 0x2714,</div><div class='add'>+	0x2716, 0x2716,</div><div class='add'>+	0x271d, 0x271d,</div><div class='add'>+	0x2721, 0x2721,</div><div class='add'>+	0x2728, 0x2728,</div><div class='add'>+	0x2733, 0x2734,</div><div class='add'>+	0x2744, 0x2744,</div><div class='add'>+	0x2747, 0x2747,</div><div class='add'>+	0x274c, 0x274c,</div><div class='add'>+	0x274e, 0x274e,</div><div class='add'>+	0x2753, 0x2755,</div><div class='add'>+	0x2757, 0x2757,</div><div class='add'>+	0x2763, 0x2767,</div><div class='add'>+	0x2795, 0x2797,</div><div class='add'>+	0x27a1, 0x27a1,</div><div class='add'>+	0x27b0, 0x27b0,</div><div class='add'>+	0x27bf, 0x27bf,</div><div class='add'>+	0x2934, 0x2935,</div><div class='add'>+	0x2b05, 0x2b07,</div><div class='add'>+	0x2b1b, 0x2b1c,</div><div class='add'>+	0x2b50, 0x2b50,</div><div class='add'>+	0x2b55, 0x2b55,</div><div class='add'>+	0x3030, 0x3030,</div><div class='add'>+	0x303d, 0x303d,</div><div class='add'>+	0x3297, 0x3297,</div><div class='add'>+	0x3299, 0x3299,</div><div class='add'>+	0x1f000, 0x1f0ff,</div><div class='add'>+	0x1f10d, 0x1f10f,</div><div class='add'>+	0x1f12f, 0x1f12f,</div><div class='add'>+	0x1f16c, 0x1f171,</div><div class='add'>+	0x1f17e, 0x1f17f,</div><div class='add'>+	0x1f18e, 0x1f18e,</div><div class='add'>+	0x1f191, 0x1f19a,</div><div class='add'>+	0x1f1ad, 0x1f1e5,</div><div class='add'>+	0x1f201, 0x1f20f,</div><div class='add'>+	0x1f21a, 0x1f21a,</div><div class='add'>+	0x1f22f, 0x1f22f,</div><div class='add'>+	0x1f232, 0x1f23a,</div><div class='add'>+	0x1f23c, 0x1f23f,</div><div class='add'>+	0x1f249, 0x1f3fa,</div><div class='add'>+	0x1f400, 0x1f53d,</div><div class='add'>+	0x1f546, 0x1f64f,</div><div class='add'>+	0x1f680, 0x1f6ff,</div><div class='add'>+	0x1f774, 0x1f77f,</div><div class='add'>+	0x1f7d5, 0x1f7ff,</div><div class='add'>+	0x1f80c, 0x1f80f,</div><div class='add'>+	0x1f848, 0x1f84f,</div><div class='add'>+	0x1f85a, 0x1f85f,</div><div class='add'>+	0x1f888, 0x1f88f,</div><div class='add'>+	0x1f8ae, 0x1f8ff,</div><div class='add'>+	0x1f90c, 0x1f93a,</div><div class='add'>+	0x1f93c, 0x1f945,</div><div class='add'>+	0x1f947, 0x1faff,</div><div class='add'>+	0x1fc00, 0x1fffd,</div><div class='add'>+}; /* CR_Extended_Pictographic */</div><div class='add'>+</div><div class='add'>+/* 'Unknown': Script */</div><div class='add'>+static const OnigCodePoint CR_Unknown[] = {</div><div class='add'>+	705,</div><div class='add'>+	0x0378, 0x0379,</div><div class='add'>+	0x0380, 0x0383,</div><div class='add'>+	0x038b, 0x038b,</div><div class='add'>+	0x038d, 0x038d,</div><div class='add'>+	0x03a2, 0x03a2,</div><div class='add'>+	0x0530, 0x0530,</div><div class='add'>+	0x0557, 0x0558,</div><div class='add'>+	0x058b, 0x058c,</div><div class='add'>+	0x0590, 0x0590,</div><div class='add'>+	0x05c8, 0x05cf,</div><div class='add'>+	0x05eb, 0x05ee,</div><div class='add'>+	0x05f5, 0x05ff,</div><div class='add'>+	0x070e, 0x070e,</div><div class='add'>+	0x074b, 0x074c,</div><div class='add'>+	0x07b2, 0x07bf,</div><div class='add'>+	0x07fb, 0x07fc,</div><div class='add'>+	0x082e, 0x082f,</div><div class='add'>+	0x083f, 0x083f,</div><div class='add'>+	0x085c, 0x085d,</div><div class='add'>+	0x085f, 0x085f,</div><div class='add'>+	0x086b, 0x086f,</div><div class='add'>+	0x088f, 0x088f,</div><div class='add'>+	0x0892, 0x0897,</div><div class='add'>+	0x0984, 0x0984,</div><div class='add'>+	0x098d, 0x098e,</div><div class='add'>+	0x0991, 0x0992,</div><div class='add'>+	0x09a9, 0x09a9,</div><div class='add'>+	0x09b1, 0x09b1,</div><div class='add'>+	0x09b3, 0x09b5,</div><div class='add'>+	0x09ba, 0x09bb,</div><div class='add'>+	0x09c5, 0x09c6,</div><div class='add'>+	0x09c9, 0x09ca,</div><div class='add'>+	0x09cf, 0x09d6,</div><div class='add'>+	0x09d8, 0x09db,</div><div class='add'>+	0x09de, 0x09de,</div><div class='add'>+	0x09e4, 0x09e5,</div><div class='add'>+	0x09ff, 0x0a00,</div><div class='add'>+	0x0a04, 0x0a04,</div><div class='add'>+	0x0a0b, 0x0a0e,</div><div class='add'>+	0x0a11, 0x0a12,</div><div class='add'>+	0x0a29, 0x0a29,</div><div class='add'>+	0x0a31, 0x0a31,</div><div class='add'>+	0x0a34, 0x0a34,</div><div class='add'>+	0x0a37, 0x0a37,</div><div class='add'>+	0x0a3a, 0x0a3b,</div><div class='add'>+	0x0a3d, 0x0a3d,</div><div class='add'>+	0x0a43, 0x0a46,</div><div class='add'>+	0x0a49, 0x0a4a,</div><div class='add'>+	0x0a4e, 0x0a50,</div><div class='add'>+	0x0a52, 0x0a58,</div><div class='add'>+	0x0a5d, 0x0a5d,</div><div class='add'>+	0x0a5f, 0x0a65,</div><div class='add'>+	0x0a77, 0x0a80,</div><div class='add'>+	0x0a84, 0x0a84,</div><div class='add'>+	0x0a8e, 0x0a8e,</div><div class='add'>+	0x0a92, 0x0a92,</div><div class='add'>+	0x0aa9, 0x0aa9,</div><div class='add'>+	0x0ab1, 0x0ab1,</div><div class='add'>+	0x0ab4, 0x0ab4,</div><div class='add'>+	0x0aba, 0x0abb,</div><div class='add'>+	0x0ac6, 0x0ac6,</div><div class='add'>+	0x0aca, 0x0aca,</div><div class='add'>+	0x0ace, 0x0acf,</div><div class='add'>+	0x0ad1, 0x0adf,</div><div class='add'>+	0x0ae4, 0x0ae5,</div><div class='add'>+	0x0af2, 0x0af8,</div><div class='add'>+	0x0b00, 0x0b00,</div><div class='add'>+	0x0b04, 0x0b04,</div><div class='add'>+	0x0b0d, 0x0b0e,</div><div class='add'>+	0x0b11, 0x0b12,</div><div class='add'>+	0x0b29, 0x0b29,</div><div class='add'>+	0x0b31, 0x0b31,</div><div class='add'>+	0x0b34, 0x0b34,</div><div class='add'>+	0x0b3a, 0x0b3b,</div><div class='add'>+	0x0b45, 0x0b46,</div><div class='add'>+	0x0b49, 0x0b4a,</div><div class='add'>+	0x0b4e, 0x0b54,</div><div class='add'>+	0x0b58, 0x0b5b,</div><div class='add'>+	0x0b5e, 0x0b5e,</div><div class='add'>+	0x0b64, 0x0b65,</div><div class='add'>+	0x0b78, 0x0b81,</div><div class='add'>+	0x0b84, 0x0b84,</div><div class='add'>+	0x0b8b, 0x0b8d,</div><div class='add'>+	0x0b91, 0x0b91,</div><div class='add'>+	0x0b96, 0x0b98,</div><div class='add'>+	0x0b9b, 0x0b9b,</div><div class='add'>+	0x0b9d, 0x0b9d,</div><div class='add'>+	0x0ba0, 0x0ba2,</div><div class='add'>+	0x0ba5, 0x0ba7,</div><div class='add'>+	0x0bab, 0x0bad,</div><div class='add'>+	0x0bba, 0x0bbd,</div><div class='add'>+	0x0bc3, 0x0bc5,</div><div class='add'>+	0x0bc9, 0x0bc9,</div><div class='add'>+	0x0bce, 0x0bcf,</div><div class='add'>+	0x0bd1, 0x0bd6,</div><div class='add'>+	0x0bd8, 0x0be5,</div><div class='add'>+	0x0bfb, 0x0bff,</div><div class='add'>+	0x0c0d, 0x0c0d,</div><div class='add'>+	0x0c11, 0x0c11,</div><div class='add'>+	0x0c29, 0x0c29,</div><div class='add'>+	0x0c3a, 0x0c3b,</div><div class='add'>+	0x0c45, 0x0c45,</div><div class='add'>+	0x0c49, 0x0c49,</div><div class='add'>+	0x0c4e, 0x0c54,</div><div class='add'>+	0x0c57, 0x0c57,</div><div class='add'>+	0x0c5b, 0x0c5c,</div><div class='add'>+	0x0c5e, 0x0c5f,</div><div class='add'>+	0x0c64, 0x0c65,</div><div class='add'>+	0x0c70, 0x0c76,</div><div class='add'>+	0x0c8d, 0x0c8d,</div><div class='add'>+	0x0c91, 0x0c91,</div><div class='add'>+	0x0ca9, 0x0ca9,</div><div class='add'>+	0x0cb4, 0x0cb4,</div><div class='add'>+	0x0cba, 0x0cbb,</div><div class='add'>+	0x0cc5, 0x0cc5,</div><div class='add'>+	0x0cc9, 0x0cc9,</div><div class='add'>+	0x0cce, 0x0cd4,</div><div class='add'>+	0x0cd7, 0x0cdc,</div><div class='add'>+	0x0cdf, 0x0cdf,</div><div class='add'>+	0x0ce4, 0x0ce5,</div><div class='add'>+	0x0cf0, 0x0cf0,</div><div class='add'>+	0x0cf4, 0x0cff,</div><div class='add'>+	0x0d0d, 0x0d0d,</div><div class='add'>+	0x0d11, 0x0d11,</div><div class='add'>+	0x0d45, 0x0d45,</div><div class='add'>+	0x0d49, 0x0d49,</div><div class='add'>+	0x0d50, 0x0d53,</div><div class='add'>+	0x0d64, 0x0d65,</div><div class='add'>+	0x0d80, 0x0d80,</div><div class='add'>+	0x0d84, 0x0d84,</div><div class='add'>+	0x0d97, 0x0d99,</div><div class='add'>+	0x0db2, 0x0db2,</div><div class='add'>+	0x0dbc, 0x0dbc,</div><div class='add'>+	0x0dbe, 0x0dbf,</div><div class='add'>+	0x0dc7, 0x0dc9,</div><div class='add'>+	0x0dcb, 0x0dce,</div><div class='add'>+	0x0dd5, 0x0dd5,</div><div class='add'>+	0x0dd7, 0x0dd7,</div><div class='add'>+	0x0de0, 0x0de5,</div><div class='add'>+	0x0df0, 0x0df1,</div><div class='add'>+	0x0df5, 0x0e00,</div><div class='add'>+	0x0e3b, 0x0e3e,</div><div class='add'>+	0x0e5c, 0x0e80,</div><div class='add'>+	0x0e83, 0x0e83,</div><div class='add'>+	0x0e85, 0x0e85,</div><div class='add'>+	0x0e8b, 0x0e8b,</div><div class='add'>+	0x0ea4, 0x0ea4,</div><div class='add'>+	0x0ea6, 0x0ea6,</div><div class='add'>+	0x0ebe, 0x0ebf,</div><div class='add'>+	0x0ec5, 0x0ec5,</div><div class='add'>+	0x0ec7, 0x0ec7,</div><div class='add'>+	0x0ecf, 0x0ecf,</div><div class='add'>+	0x0eda, 0x0edb,</div><div class='add'>+	0x0ee0, 0x0eff,</div><div class='add'>+	0x0f48, 0x0f48,</div><div class='add'>+	0x0f6d, 0x0f70,</div><div class='add'>+	0x0f98, 0x0f98,</div><div class='add'>+	0x0fbd, 0x0fbd,</div><div class='add'>+	0x0fcd, 0x0fcd,</div><div class='add'>+	0x0fdb, 0x0fff,</div><div class='add'>+	0x10c6, 0x10c6,</div><div class='add'>+	0x10c8, 0x10cc,</div><div class='add'>+	0x10ce, 0x10cf,</div><div class='add'>+	0x1249, 0x1249,</div><div class='add'>+	0x124e, 0x124f,</div><div class='add'>+	0x1257, 0x1257,</div><div class='add'>+	0x1259, 0x1259,</div><div class='add'>+	0x125e, 0x125f,</div><div class='add'>+	0x1289, 0x1289,</div><div class='add'>+	0x128e, 0x128f,</div><div class='add'>+	0x12b1, 0x12b1,</div><div class='add'>+	0x12b6, 0x12b7,</div><div class='add'>+	0x12bf, 0x12bf,</div><div class='add'>+	0x12c1, 0x12c1,</div><div class='add'>+	0x12c6, 0x12c7,</div><div class='add'>+	0x12d7, 0x12d7,</div><div class='add'>+	0x1311, 0x1311,</div><div class='add'>+	0x1316, 0x1317,</div><div class='add'>+	0x135b, 0x135c,</div><div class='add'>+	0x137d, 0x137f,</div><div class='add'>+	0x139a, 0x139f,</div><div class='add'>+	0x13f6, 0x13f7,</div><div class='add'>+	0x13fe, 0x13ff,</div><div class='add'>+	0x169d, 0x169f,</div><div class='add'>+	0x16f9, 0x16ff,</div><div class='add'>+	0x1716, 0x171e,</div><div class='add'>+	0x1737, 0x173f,</div><div class='add'>+	0x1754, 0x175f,</div><div class='add'>+	0x176d, 0x176d,</div><div class='add'>+	0x1771, 0x1771,</div><div class='add'>+	0x1774, 0x177f,</div><div class='add'>+	0x17de, 0x17df,</div><div class='add'>+	0x17ea, 0x17ef,</div><div class='add'>+	0x17fa, 0x17ff,</div><div class='add'>+	0x181a, 0x181f,</div><div class='add'>+	0x1879, 0x187f,</div><div class='add'>+	0x18ab, 0x18af,</div><div class='add'>+	0x18f6, 0x18ff,</div><div class='add'>+	0x191f, 0x191f,</div><div class='add'>+	0x192c, 0x192f,</div><div class='add'>+	0x193c, 0x193f,</div><div class='add'>+	0x1941, 0x1943,</div><div class='add'>+	0x196e, 0x196f,</div><div class='add'>+	0x1975, 0x197f,</div><div class='add'>+	0x19ac, 0x19af,</div><div class='add'>+	0x19ca, 0x19cf,</div><div class='add'>+	0x19db, 0x19dd,</div><div class='add'>+	0x1a1c, 0x1a1d,</div><div class='add'>+	0x1a5f, 0x1a5f,</div><div class='add'>+	0x1a7d, 0x1a7e,</div><div class='add'>+	0x1a8a, 0x1a8f,</div><div class='add'>+	0x1a9a, 0x1a9f,</div><div class='add'>+	0x1aae, 0x1aaf,</div><div class='add'>+	0x1acf, 0x1aff,</div><div class='add'>+	0x1b4d, 0x1b4f,</div><div class='add'>+	0x1b7f, 0x1b7f,</div><div class='add'>+	0x1bf4, 0x1bfb,</div><div class='add'>+	0x1c38, 0x1c3a,</div><div class='add'>+	0x1c4a, 0x1c4c,</div><div class='add'>+	0x1c89, 0x1c8f,</div><div class='add'>+	0x1cbb, 0x1cbc,</div><div class='add'>+	0x1cc8, 0x1ccf,</div><div class='add'>+	0x1cfb, 0x1cff,</div><div class='add'>+	0x1f16, 0x1f17,</div><div class='add'>+	0x1f1e, 0x1f1f,</div><div class='add'>+	0x1f46, 0x1f47,</div><div class='add'>+	0x1f4e, 0x1f4f,</div><div class='add'>+	0x1f58, 0x1f58,</div><div class='add'>+	0x1f5a, 0x1f5a,</div><div class='add'>+	0x1f5c, 0x1f5c,</div><div class='add'>+	0x1f5e, 0x1f5e,</div><div class='add'>+	0x1f7e, 0x1f7f,</div><div class='add'>+	0x1fb5, 0x1fb5,</div><div class='add'>+	0x1fc5, 0x1fc5,</div><div class='add'>+	0x1fd4, 0x1fd5,</div><div class='add'>+	0x1fdc, 0x1fdc,</div><div class='add'>+	0x1ff0, 0x1ff1,</div><div class='add'>+	0x1ff5, 0x1ff5,</div><div class='add'>+	0x1fff, 0x1fff,</div><div class='add'>+	0x2065, 0x2065,</div><div class='add'>+	0x2072, 0x2073,</div><div class='add'>+	0x208f, 0x208f,</div><div class='add'>+	0x209d, 0x209f,</div><div class='add'>+	0x20c1, 0x20cf,</div><div class='add'>+	0x20f1, 0x20ff,</div><div class='add'>+	0x218c, 0x218f,</div><div class='add'>+	0x2427, 0x243f,</div><div class='add'>+	0x244b, 0x245f,</div><div class='add'>+	0x2b74, 0x2b75,</div><div class='add'>+	0x2b96, 0x2b96,</div><div class='add'>+	0x2cf4, 0x2cf8,</div><div class='add'>+	0x2d26, 0x2d26,</div><div class='add'>+	0x2d28, 0x2d2c,</div><div class='add'>+	0x2d2e, 0x2d2f,</div><div class='add'>+	0x2d68, 0x2d6e,</div><div class='add'>+	0x2d71, 0x2d7e,</div><div class='add'>+	0x2d97, 0x2d9f,</div><div class='add'>+	0x2da7, 0x2da7,</div><div class='add'>+	0x2daf, 0x2daf,</div><div class='add'>+	0x2db7, 0x2db7,</div><div class='add'>+	0x2dbf, 0x2dbf,</div><div class='add'>+	0x2dc7, 0x2dc7,</div><div class='add'>+	0x2dcf, 0x2dcf,</div><div class='add'>+	0x2dd7, 0x2dd7,</div><div class='add'>+	0x2ddf, 0x2ddf,</div><div class='add'>+	0x2e5e, 0x2e7f,</div><div class='add'>+	0x2e9a, 0x2e9a,</div><div class='add'>+	0x2ef4, 0x2eff,</div><div class='add'>+	0x2fd6, 0x2fef,</div><div class='add'>+	0x2ffc, 0x2fff,</div><div class='add'>+	0x3040, 0x3040,</div><div class='add'>+	0x3097, 0x3098,</div><div class='add'>+	0x3100, 0x3104,</div><div class='add'>+	0x3130, 0x3130,</div><div class='add'>+	0x318f, 0x318f,</div><div class='add'>+	0x31e4, 0x31ef,</div><div class='add'>+	0x321f, 0x321f,</div><div class='add'>+	0xa48d, 0xa48f,</div><div class='add'>+	0xa4c7, 0xa4cf,</div><div class='add'>+	0xa62c, 0xa63f,</div><div class='add'>+	0xa6f8, 0xa6ff,</div><div class='add'>+	0xa7cb, 0xa7cf,</div><div class='add'>+	0xa7d2, 0xa7d2,</div><div class='add'>+	0xa7d4, 0xa7d4,</div><div class='add'>+	0xa7da, 0xa7f1,</div><div class='add'>+	0xa82d, 0xa82f,</div><div class='add'>+	0xa83a, 0xa83f,</div><div class='add'>+	0xa878, 0xa87f,</div><div class='add'>+	0xa8c6, 0xa8cd,</div><div class='add'>+	0xa8da, 0xa8df,</div><div class='add'>+	0xa954, 0xa95e,</div><div class='add'>+	0xa97d, 0xa97f,</div><div class='add'>+	0xa9ce, 0xa9ce,</div><div class='add'>+	0xa9da, 0xa9dd,</div><div class='add'>+	0xa9ff, 0xa9ff,</div><div class='add'>+	0xaa37, 0xaa3f,</div><div class='add'>+	0xaa4e, 0xaa4f,</div><div class='add'>+	0xaa5a, 0xaa5b,</div><div class='add'>+	0xaac3, 0xaada,</div><div class='add'>+	0xaaf7, 0xab00,</div><div class='add'>+	0xab07, 0xab08,</div><div class='add'>+	0xab0f, 0xab10,</div><div class='add'>+	0xab17, 0xab1f,</div><div class='add'>+	0xab27, 0xab27,</div><div class='add'>+	0xab2f, 0xab2f,</div><div class='add'>+	0xab6c, 0xab6f,</div><div class='add'>+	0xabee, 0xabef,</div><div class='add'>+	0xabfa, 0xabff,</div><div class='add'>+	0xd7a4, 0xd7af,</div><div class='add'>+	0xd7c7, 0xd7ca,</div><div class='add'>+	0xd7fc, 0xf8ff,</div><div class='add'>+	0xfa6e, 0xfa6f,</div><div class='add'>+	0xfada, 0xfaff,</div><div class='add'>+	0xfb07, 0xfb12,</div><div class='add'>+	0xfb18, 0xfb1c,</div><div class='add'>+	0xfb37, 0xfb37,</div><div class='add'>+	0xfb3d, 0xfb3d,</div><div class='add'>+	0xfb3f, 0xfb3f,</div><div class='add'>+	0xfb42, 0xfb42,</div><div class='add'>+	0xfb45, 0xfb45,</div><div class='add'>+	0xfbc3, 0xfbd2,</div><div class='add'>+	0xfd90, 0xfd91,</div><div class='add'>+	0xfdc8, 0xfdce,</div><div class='add'>+	0xfdd0, 0xfdef,</div><div class='add'>+	0xfe1a, 0xfe1f,</div><div class='add'>+	0xfe53, 0xfe53,</div><div class='add'>+	0xfe67, 0xfe67,</div><div class='add'>+	0xfe6c, 0xfe6f,</div><div class='add'>+	0xfe75, 0xfe75,</div><div class='add'>+	0xfefd, 0xfefe,</div><div class='add'>+	0xff00, 0xff00,</div><div class='add'>+	0xffbf, 0xffc1,</div><div class='add'>+	0xffc8, 0xffc9,</div><div class='add'>+	0xffd0, 0xffd1,</div><div class='add'>+	0xffd8, 0xffd9,</div><div class='add'>+	0xffdd, 0xffdf,</div><div class='add'>+	0xffe7, 0xffe7,</div><div class='add'>+	0xffef, 0xfff8,</div><div class='add'>+	0xfffe, 0xffff,</div><div class='add'>+	0x1000c, 0x1000c,</div><div class='add'>+	0x10027, 0x10027,</div><div class='add'>+	0x1003b, 0x1003b,</div><div class='add'>+	0x1003e, 0x1003e,</div><div class='add'>+	0x1004e, 0x1004f,</div><div class='add'>+	0x1005e, 0x1007f,</div><div class='add'>+	0x100fb, 0x100ff,</div><div class='add'>+	0x10103, 0x10106,</div><div class='add'>+	0x10134, 0x10136,</div><div class='add'>+	0x1018f, 0x1018f,</div><div class='add'>+	0x1019d, 0x1019f,</div><div class='add'>+	0x101a1, 0x101cf,</div><div class='add'>+	0x101fe, 0x1027f,</div><div class='add'>+	0x1029d, 0x1029f,</div><div class='add'>+	0x102d1, 0x102df,</div><div class='add'>+	0x102fc, 0x102ff,</div><div class='add'>+	0x10324, 0x1032c,</div><div class='add'>+	0x1034b, 0x1034f,</div><div class='add'>+	0x1037b, 0x1037f,</div><div class='add'>+	0x1039e, 0x1039e,</div><div class='add'>+	0x103c4, 0x103c7,</div><div class='add'>+	0x103d6, 0x103ff,</div><div class='add'>+	0x1049e, 0x1049f,</div><div class='add'>+	0x104aa, 0x104af,</div><div class='add'>+	0x104d4, 0x104d7,</div><div class='add'>+	0x104fc, 0x104ff,</div><div class='add'>+	0x10528, 0x1052f,</div><div class='add'>+	0x10564, 0x1056e,</div><div class='add'>+	0x1057b, 0x1057b,</div><div class='add'>+	0x1058b, 0x1058b,</div><div class='add'>+	0x10593, 0x10593,</div><div class='add'>+	0x10596, 0x10596,</div><div class='add'>+	0x105a2, 0x105a2,</div><div class='add'>+	0x105b2, 0x105b2,</div><div class='add'>+	0x105ba, 0x105ba,</div><div class='add'>+	0x105bd, 0x105ff,</div><div class='add'>+	0x10737, 0x1073f,</div><div class='add'>+	0x10756, 0x1075f,</div><div class='add'>+	0x10768, 0x1077f,</div><div class='add'>+	0x10786, 0x10786,</div><div class='add'>+	0x107b1, 0x107b1,</div><div class='add'>+	0x107bb, 0x107ff,</div><div class='add'>+	0x10806, 0x10807,</div><div class='add'>+	0x10809, 0x10809,</div><div class='add'>+	0x10836, 0x10836,</div><div class='add'>+	0x10839, 0x1083b,</div><div class='add'>+	0x1083d, 0x1083e,</div><div class='add'>+	0x10856, 0x10856,</div><div class='add'>+	0x1089f, 0x108a6,</div><div class='add'>+	0x108b0, 0x108df,</div><div class='add'>+	0x108f3, 0x108f3,</div><div class='add'>+	0x108f6, 0x108fa,</div><div class='add'>+	0x1091c, 0x1091e,</div><div class='add'>+	0x1093a, 0x1093e,</div><div class='add'>+	0x10940, 0x1097f,</div><div class='add'>+	0x109b8, 0x109bb,</div><div class='add'>+	0x109d0, 0x109d1,</div><div class='add'>+	0x10a04, 0x10a04,</div><div class='add'>+	0x10a07, 0x10a0b,</div><div class='add'>+	0x10a14, 0x10a14,</div><div class='add'>+	0x10a18, 0x10a18,</div><div class='add'>+	0x10a36, 0x10a37,</div><div class='add'>+	0x10a3b, 0x10a3e,</div><div class='add'>+	0x10a49, 0x10a4f,</div><div class='add'>+	0x10a59, 0x10a5f,</div><div class='add'>+	0x10aa0, 0x10abf,</div><div class='add'>+	0x10ae7, 0x10aea,</div><div class='add'>+	0x10af7, 0x10aff,</div><div class='add'>+	0x10b36, 0x10b38,</div><div class='add'>+	0x10b56, 0x10b57,</div><div class='add'>+	0x10b73, 0x10b77,</div><div class='add'>+	0x10b92, 0x10b98,</div><div class='add'>+	0x10b9d, 0x10ba8,</div><div class='add'>+	0x10bb0, 0x10bff,</div><div class='add'>+	0x10c49, 0x10c7f,</div><div class='add'>+	0x10cb3, 0x10cbf,</div><div class='add'>+	0x10cf3, 0x10cf9,</div><div class='add'>+	0x10d28, 0x10d2f,</div><div class='add'>+	0x10d3a, 0x10e5f,</div><div class='add'>+	0x10e7f, 0x10e7f,</div><div class='add'>+	0x10eaa, 0x10eaa,</div><div class='add'>+	0x10eae, 0x10eaf,</div><div class='add'>+	0x10eb2, 0x10efc,</div><div class='add'>+	0x10f28, 0x10f2f,</div><div class='add'>+	0x10f5a, 0x10f6f,</div><div class='add'>+	0x10f8a, 0x10faf,</div><div class='add'>+	0x10fcc, 0x10fdf,</div><div class='add'>+	0x10ff7, 0x10fff,</div><div class='add'>+	0x1104e, 0x11051,</div><div class='add'>+	0x11076, 0x1107e,</div><div class='add'>+	0x110c3, 0x110cc,</div><div class='add'>+	0x110ce, 0x110cf,</div><div class='add'>+	0x110e9, 0x110ef,</div><div class='add'>+	0x110fa, 0x110ff,</div><div class='add'>+	0x11135, 0x11135,</div><div class='add'>+	0x11148, 0x1114f,</div><div class='add'>+	0x11177, 0x1117f,</div><div class='add'>+	0x111e0, 0x111e0,</div><div class='add'>+	0x111f5, 0x111ff,</div><div class='add'>+	0x11212, 0x11212,</div><div class='add'>+	0x11242, 0x1127f,</div><div class='add'>+	0x11287, 0x11287,</div><div class='add'>+	0x11289, 0x11289,</div><div class='add'>+	0x1128e, 0x1128e,</div><div class='add'>+	0x1129e, 0x1129e,</div><div class='add'>+	0x112aa, 0x112af,</div><div class='add'>+	0x112eb, 0x112ef,</div><div class='add'>+	0x112fa, 0x112ff,</div><div class='add'>+	0x11304, 0x11304,</div><div class='add'>+	0x1130d, 0x1130e,</div><div class='add'>+	0x11311, 0x11312,</div><div class='add'>+	0x11329, 0x11329,</div><div class='add'>+	0x11331, 0x11331,</div><div class='add'>+	0x11334, 0x11334,</div><div class='add'>+	0x1133a, 0x1133a,</div><div class='add'>+	0x11345, 0x11346,</div><div class='add'>+	0x11349, 0x1134a,</div><div class='add'>+	0x1134e, 0x1134f,</div><div class='add'>+	0x11351, 0x11356,</div><div class='add'>+	0x11358, 0x1135c,</div><div class='add'>+	0x11364, 0x11365,</div><div class='add'>+	0x1136d, 0x1136f,</div><div class='add'>+	0x11375, 0x113ff,</div><div class='add'>+	0x1145c, 0x1145c,</div><div class='add'>+	0x11462, 0x1147f,</div><div class='add'>+	0x114c8, 0x114cf,</div><div class='add'>+	0x114da, 0x1157f,</div><div class='add'>+	0x115b6, 0x115b7,</div><div class='add'>+	0x115de, 0x115ff,</div><div class='add'>+	0x11645, 0x1164f,</div><div class='add'>+	0x1165a, 0x1165f,</div><div class='add'>+	0x1166d, 0x1167f,</div><div class='add'>+	0x116ba, 0x116bf,</div><div class='add'>+	0x116ca, 0x116ff,</div><div class='add'>+	0x1171b, 0x1171c,</div><div class='add'>+	0x1172c, 0x1172f,</div><div class='add'>+	0x11747, 0x117ff,</div><div class='add'>+	0x1183c, 0x1189f,</div><div class='add'>+	0x118f3, 0x118fe,</div><div class='add'>+	0x11907, 0x11908,</div><div class='add'>+	0x1190a, 0x1190b,</div><div class='add'>+	0x11914, 0x11914,</div><div class='add'>+	0x11917, 0x11917,</div><div class='add'>+	0x11936, 0x11936,</div><div class='add'>+	0x11939, 0x1193a,</div><div class='add'>+	0x11947, 0x1194f,</div><div class='add'>+	0x1195a, 0x1199f,</div><div class='add'>+	0x119a8, 0x119a9,</div><div class='add'>+	0x119d8, 0x119d9,</div><div class='add'>+	0x119e5, 0x119ff,</div><div class='add'>+	0x11a48, 0x11a4f,</div><div class='add'>+	0x11aa3, 0x11aaf,</div><div class='add'>+	0x11af9, 0x11aff,</div><div class='add'>+	0x11b0a, 0x11bff,</div><div class='add'>+	0x11c09, 0x11c09,</div><div class='add'>+	0x11c37, 0x11c37,</div><div class='add'>+	0x11c46, 0x11c4f,</div><div class='add'>+	0x11c6d, 0x11c6f,</div><div class='add'>+	0x11c90, 0x11c91,</div><div class='add'>+	0x11ca8, 0x11ca8,</div><div class='add'>+	0x11cb7, 0x11cff,</div><div class='add'>+	0x11d07, 0x11d07,</div><div class='add'>+	0x11d0a, 0x11d0a,</div><div class='add'>+	0x11d37, 0x11d39,</div><div class='add'>+	0x11d3b, 0x11d3b,</div><div class='add'>+	0x11d3e, 0x11d3e,</div><div class='add'>+	0x11d48, 0x11d4f,</div><div class='add'>+	0x11d5a, 0x11d5f,</div><div class='add'>+	0x11d66, 0x11d66,</div><div class='add'>+	0x11d69, 0x11d69,</div><div class='add'>+	0x11d8f, 0x11d8f,</div><div class='add'>+	0x11d92, 0x11d92,</div><div class='add'>+	0x11d99, 0x11d9f,</div><div class='add'>+	0x11daa, 0x11edf,</div><div class='add'>+	0x11ef9, 0x11eff,</div><div class='add'>+	0x11f11, 0x11f11,</div><div class='add'>+	0x11f3b, 0x11f3d,</div><div class='add'>+	0x11f5a, 0x11faf,</div><div class='add'>+	0x11fb1, 0x11fbf,</div><div class='add'>+	0x11ff2, 0x11ffe,</div><div class='add'>+	0x1239a, 0x123ff,</div><div class='add'>+	0x1246f, 0x1246f,</div><div class='add'>+	0x12475, 0x1247f,</div><div class='add'>+	0x12544, 0x12f8f,</div><div class='add'>+	0x12ff3, 0x12fff,</div><div class='add'>+	0x13456, 0x143ff,</div><div class='add'>+	0x14647, 0x167ff,</div><div class='add'>+	0x16a39, 0x16a3f,</div><div class='add'>+	0x16a5f, 0x16a5f,</div><div class='add'>+	0x16a6a, 0x16a6d,</div><div class='add'>+	0x16abf, 0x16abf,</div><div class='add'>+	0x16aca, 0x16acf,</div><div class='add'>+	0x16aee, 0x16aef,</div><div class='add'>+	0x16af6, 0x16aff,</div><div class='add'>+	0x16b46, 0x16b4f,</div><div class='add'>+	0x16b5a, 0x16b5a,</div><div class='add'>+	0x16b62, 0x16b62,</div><div class='add'>+	0x16b78, 0x16b7c,</div><div class='add'>+	0x16b90, 0x16e3f,</div><div class='add'>+	0x16e9b, 0x16eff,</div><div class='add'>+	0x16f4b, 0x16f4e,</div><div class='add'>+	0x16f88, 0x16f8e,</div><div class='add'>+	0x16fa0, 0x16fdf,</div><div class='add'>+	0x16fe5, 0x16fef,</div><div class='add'>+	0x16ff2, 0x16fff,</div><div class='add'>+	0x187f8, 0x187ff,</div><div class='add'>+	0x18cd6, 0x18cff,</div><div class='add'>+	0x18d09, 0x1afef,</div><div class='add'>+	0x1aff4, 0x1aff4,</div><div class='add'>+	0x1affc, 0x1affc,</div><div class='add'>+	0x1afff, 0x1afff,</div><div class='add'>+	0x1b123, 0x1b131,</div><div class='add'>+	0x1b133, 0x1b14f,</div><div class='add'>+	0x1b153, 0x1b154,</div><div class='add'>+	0x1b156, 0x1b163,</div><div class='add'>+	0x1b168, 0x1b16f,</div><div class='add'>+	0x1b2fc, 0x1bbff,</div><div class='add'>+	0x1bc6b, 0x1bc6f,</div><div class='add'>+	0x1bc7d, 0x1bc7f,</div><div class='add'>+	0x1bc89, 0x1bc8f,</div><div class='add'>+	0x1bc9a, 0x1bc9b,</div><div class='add'>+	0x1bca4, 0x1ceff,</div><div class='add'>+	0x1cf2e, 0x1cf2f,</div><div class='add'>+	0x1cf47, 0x1cf4f,</div><div class='add'>+	0x1cfc4, 0x1cfff,</div><div class='add'>+	0x1d0f6, 0x1d0ff,</div><div class='add'>+	0x1d127, 0x1d128,</div><div class='add'>+	0x1d1eb, 0x1d1ff,</div><div class='add'>+	0x1d246, 0x1d2bf,</div><div class='add'>+	0x1d2d4, 0x1d2df,</div><div class='add'>+	0x1d2f4, 0x1d2ff,</div><div class='add'>+	0x1d357, 0x1d35f,</div><div class='add'>+	0x1d379, 0x1d3ff,</div><div class='add'>+	0x1d455, 0x1d455,</div><div class='add'>+	0x1d49d, 0x1d49d,</div><div class='add'>+	0x1d4a0, 0x1d4a1,</div><div class='add'>+	0x1d4a3, 0x1d4a4,</div><div class='add'>+	0x1d4a7, 0x1d4a8,</div><div class='add'>+	0x1d4ad, 0x1d4ad,</div><div class='add'>+	0x1d4ba, 0x1d4ba,</div><div class='add'>+	0x1d4bc, 0x1d4bc,</div><div class='add'>+	0x1d4c4, 0x1d4c4,</div><div class='add'>+	0x1d506, 0x1d506,</div><div class='add'>+	0x1d50b, 0x1d50c,</div><div class='add'>+	0x1d515, 0x1d515,</div><div class='add'>+	0x1d51d, 0x1d51d,</div><div class='add'>+	0x1d53a, 0x1d53a,</div><div class='add'>+	0x1d53f, 0x1d53f,</div><div class='add'>+	0x1d545, 0x1d545,</div><div class='add'>+	0x1d547, 0x1d549,</div><div class='add'>+	0x1d551, 0x1d551,</div><div class='add'>+	0x1d6a6, 0x1d6a7,</div><div class='add'>+	0x1d7cc, 0x1d7cd,</div><div class='add'>+	0x1da8c, 0x1da9a,</div><div class='add'>+	0x1daa0, 0x1daa0,</div><div class='add'>+	0x1dab0, 0x1deff,</div><div class='add'>+	0x1df1f, 0x1df24,</div><div class='add'>+	0x1df2b, 0x1dfff,</div><div class='add'>+	0x1e007, 0x1e007,</div><div class='add'>+	0x1e019, 0x1e01a,</div><div class='add'>+	0x1e022, 0x1e022,</div><div class='add'>+	0x1e025, 0x1e025,</div><div class='add'>+	0x1e02b, 0x1e02f,</div><div class='add'>+	0x1e06e, 0x1e08e,</div><div class='add'>+	0x1e090, 0x1e0ff,</div><div class='add'>+	0x1e12d, 0x1e12f,</div><div class='add'>+	0x1e13e, 0x1e13f,</div><div class='add'>+	0x1e14a, 0x1e14d,</div><div class='add'>+	0x1e150, 0x1e28f,</div><div class='add'>+	0x1e2af, 0x1e2bf,</div><div class='add'>+	0x1e2fa, 0x1e2fe,</div><div class='add'>+	0x1e300, 0x1e4cf,</div><div class='add'>+	0x1e4fa, 0x1e7df,</div><div class='add'>+	0x1e7e7, 0x1e7e7,</div><div class='add'>+	0x1e7ec, 0x1e7ec,</div><div class='add'>+	0x1e7ef, 0x1e7ef,</div><div class='add'>+	0x1e7ff, 0x1e7ff,</div><div class='add'>+	0x1e8c5, 0x1e8c6,</div><div class='add'>+	0x1e8d7, 0x1e8ff,</div><div class='add'>+	0x1e94c, 0x1e94f,</div><div class='add'>+	0x1e95a, 0x1e95d,</div><div class='add'>+	0x1e960, 0x1ec70,</div><div class='add'>+	0x1ecb5, 0x1ed00,</div><div class='add'>+	0x1ed3e, 0x1edff,</div><div class='add'>+	0x1ee04, 0x1ee04,</div><div class='add'>+	0x1ee20, 0x1ee20,</div><div class='add'>+	0x1ee23, 0x1ee23,</div><div class='add'>+	0x1ee25, 0x1ee26,</div><div class='add'>+	0x1ee28, 0x1ee28,</div><div class='add'>+	0x1ee33, 0x1ee33,</div><div class='add'>+	0x1ee38, 0x1ee38,</div><div class='add'>+	0x1ee3a, 0x1ee3a,</div><div class='add'>+	0x1ee3c, 0x1ee41,</div><div class='add'>+	0x1ee43, 0x1ee46,</div><div class='add'>+	0x1ee48, 0x1ee48,</div><div class='add'>+	0x1ee4a, 0x1ee4a,</div><div class='add'>+	0x1ee4c, 0x1ee4c,</div><div class='add'>+	0x1ee50, 0x1ee50,</div><div class='add'>+	0x1ee53, 0x1ee53,</div><div class='add'>+	0x1ee55, 0x1ee56,</div><div class='add'>+	0x1ee58, 0x1ee58,</div><div class='add'>+	0x1ee5a, 0x1ee5a,</div><div class='add'>+	0x1ee5c, 0x1ee5c,</div><div class='add'>+	0x1ee5e, 0x1ee5e,</div><div class='add'>+	0x1ee60, 0x1ee60,</div><div class='add'>+	0x1ee63, 0x1ee63,</div><div class='add'>+	0x1ee65, 0x1ee66,</div><div class='add'>+	0x1ee6b, 0x1ee6b,</div><div class='add'>+	0x1ee73, 0x1ee73,</div><div class='add'>+	0x1ee78, 0x1ee78,</div><div class='add'>+	0x1ee7d, 0x1ee7d,</div><div class='add'>+	0x1ee7f, 0x1ee7f,</div><div class='add'>+	0x1ee8a, 0x1ee8a,</div><div class='add'>+	0x1ee9c, 0x1eea0,</div><div class='add'>+	0x1eea4, 0x1eea4,</div><div class='add'>+	0x1eeaa, 0x1eeaa,</div><div class='add'>+	0x1eebc, 0x1eeef,</div><div class='add'>+	0x1eef2, 0x1efff,</div><div class='add'>+	0x1f02c, 0x1f02f,</div><div class='add'>+	0x1f094, 0x1f09f,</div><div class='add'>+	0x1f0af, 0x1f0b0,</div><div class='add'>+	0x1f0c0, 0x1f0c0,</div><div class='add'>+	0x1f0d0, 0x1f0d0,</div><div class='add'>+	0x1f0f6, 0x1f0ff,</div><div class='add'>+	0x1f1ae, 0x1f1e5,</div><div class='add'>+	0x1f203, 0x1f20f,</div><div class='add'>+	0x1f23c, 0x1f23f,</div><div class='add'>+	0x1f249, 0x1f24f,</div><div class='add'>+	0x1f252, 0x1f25f,</div><div class='add'>+	0x1f266, 0x1f2ff,</div><div class='add'>+	0x1f6d8, 0x1f6db,</div><div class='add'>+	0x1f6ed, 0x1f6ef,</div><div class='add'>+	0x1f6fd, 0x1f6ff,</div><div class='add'>+	0x1f777, 0x1f77a,</div><div class='add'>+	0x1f7da, 0x1f7df,</div><div class='add'>+	0x1f7ec, 0x1f7ef,</div><div class='add'>+	0x1f7f1, 0x1f7ff,</div><div class='add'>+	0x1f80c, 0x1f80f,</div><div class='add'>+	0x1f848, 0x1f84f,</div><div class='add'>+	0x1f85a, 0x1f85f,</div><div class='add'>+	0x1f888, 0x1f88f,</div><div class='add'>+	0x1f8ae, 0x1f8af,</div><div class='add'>+	0x1f8b2, 0x1f8ff,</div><div class='add'>+	0x1fa54, 0x1fa5f,</div><div class='add'>+	0x1fa6e, 0x1fa6f,</div><div class='add'>+	0x1fa7d, 0x1fa7f,</div><div class='add'>+	0x1fa89, 0x1fa8f,</div><div class='add'>+	0x1fabe, 0x1fabe,</div><div class='add'>+	0x1fac6, 0x1facd,</div><div class='add'>+	0x1fadc, 0x1fadf,</div><div class='add'>+	0x1fae9, 0x1faef,</div><div class='add'>+	0x1faf9, 0x1faff,</div><div class='add'>+	0x1fb93, 0x1fb93,</div><div class='add'>+	0x1fbcb, 0x1fbef,</div><div class='add'>+	0x1fbfa, 0x1ffff,</div><div class='add'>+	0x2a6e0, 0x2a6ff,</div><div class='add'>+	0x2b73a, 0x2b73f,</div><div class='add'>+	0x2b81e, 0x2b81f,</div><div class='add'>+	0x2cea2, 0x2ceaf,</div><div class='add'>+	0x2ebe1, 0x2f7ff,</div><div class='add'>+	0x2fa1e, 0x2ffff,</div><div class='add'>+	0x3134b, 0x3134f,</div><div class='add'>+	0x323b0, 0xe0000,</div><div class='add'>+	0xe0002, 0xe001f,</div><div class='add'>+	0xe0080, 0xe00ff,</div><div class='add'>+	0xe01f0, 0x10ffff,</div><div class='add'>+}; /* CR_Unknown */</div><div class='add'>+</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+/* 'Age_1_1': Derived Age 1.1 */</div><div class='add'>+static const OnigCodePoint CR_Age_1_1[] = {</div><div class='add'>+	288,</div><div class='add'>+	0x0000, 0x01f5,</div><div class='add'>+	0x01fa, 0x0217,</div><div class='add'>+	0x0250, 0x02a8,</div><div class='add'>+	0x02b0, 0x02de,</div><div class='add'>+	0x02e0, 0x02e9,</div><div class='add'>+	0x0300, 0x0345,</div><div class='add'>+	0x0360, 0x0361,</div><div class='add'>+	0x0374, 0x0375,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ce,</div><div class='add'>+	0x03d0, 0x03d6,</div><div class='add'>+	0x03da, 0x03da,</div><div class='add'>+	0x03dc, 0x03dc,</div><div class='add'>+	0x03de, 0x03de,</div><div class='add'>+	0x03e0, 0x03e0,</div><div class='add'>+	0x03e2, 0x03f3,</div><div class='add'>+	0x0401, 0x040c,</div><div class='add'>+	0x040e, 0x044f,</div><div class='add'>+	0x0451, 0x045c,</div><div class='add'>+	0x045e, 0x0486,</div><div class='add'>+	0x0490, 0x04c4,</div><div class='add'>+	0x04c7, 0x04c8,</div><div class='add'>+	0x04cb, 0x04cc,</div><div class='add'>+	0x04d0, 0x04eb,</div><div class='add'>+	0x04ee, 0x04f5,</div><div class='add'>+	0x04f8, 0x04f9,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x0589,</div><div class='add'>+	0x05b0, 0x05b9,</div><div class='add'>+	0x05bb, 0x05c3,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x060c, 0x060c,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061f, 0x061f,</div><div class='add'>+	0x0621, 0x063a,</div><div class='add'>+	0x0640, 0x0652,</div><div class='add'>+	0x0660, 0x066d,</div><div class='add'>+	0x0670, 0x06b7,</div><div class='add'>+	0x06ba, 0x06be,</div><div class='add'>+	0x06c0, 0x06ce,</div><div class='add'>+	0x06d0, 0x06ed,</div><div class='add'>+	0x06f0, 0x06f9,</div><div class='add'>+	0x0901, 0x0903,</div><div class='add'>+	0x0905, 0x0939,</div><div class='add'>+	0x093c, 0x094d,</div><div class='add'>+	0x0950, 0x0954,</div><div class='add'>+	0x0958, 0x0970,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09be, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cd,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fa,</div><div class='add'>+	0x0a02, 0x0a02,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a74,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8b,</div><div class='add'>+	0x0a8d, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae0,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b36, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b43,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b66, 0x0b70,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb5,</div><div class='add'>+	0x0bb7, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be7, 0x0bf2,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3e, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbe, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d28,</div><div class='add'>+	0x0d2a, 0x0d39,</div><div class='add'>+	0x0d3e, 0x0d43,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d61,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10d0, 0x10f6,</div><div class='add'>+	0x10fb, 0x10fb,</div><div class='add'>+	0x1100, 0x1159,</div><div class='add'>+	0x115f, 0x11a2,</div><div class='add'>+	0x11a8, 0x11f9,</div><div class='add'>+	0x1e00, 0x1e9a,</div><div class='add'>+	0x1ea0, 0x1ef9,</div><div class='add'>+	0x1f00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x202e,</div><div class='add'>+	0x2030, 0x2046,</div><div class='add'>+	0x206a, 0x2070,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x20a0, 0x20aa,</div><div class='add'>+	0x20d0, 0x20e1,</div><div class='add'>+	0x2100, 0x2138,</div><div class='add'>+	0x2153, 0x2182,</div><div class='add'>+	0x2190, 0x21ea,</div><div class='add'>+	0x2200, 0x22f1,</div><div class='add'>+	0x2300, 0x2300,</div><div class='add'>+	0x2302, 0x237a,</div><div class='add'>+	0x2400, 0x2424,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x24ea,</div><div class='add'>+	0x2500, 0x2595,</div><div class='add'>+	0x25a0, 0x25ef,</div><div class='add'>+	0x2600, 0x2613,</div><div class='add'>+	0x261a, 0x266f,</div><div class='add'>+	0x2701, 0x2704,</div><div class='add'>+	0x2706, 0x2709,</div><div class='add'>+	0x270c, 0x2727,</div><div class='add'>+	0x2729, 0x274b,</div><div class='add'>+	0x274d, 0x274d,</div><div class='add'>+	0x274f, 0x2752,</div><div class='add'>+	0x2756, 0x2756,</div><div class='add'>+	0x2758, 0x275e,</div><div class='add'>+	0x2761, 0x2767,</div><div class='add'>+	0x2776, 0x2794,</div><div class='add'>+	0x2798, 0x27af,</div><div class='add'>+	0x27b1, 0x27be,</div><div class='add'>+	0x3000, 0x3037,</div><div class='add'>+	0x303f, 0x303f,</div><div class='add'>+	0x3041, 0x3094,</div><div class='add'>+	0x3099, 0x309e,</div><div class='add'>+	0x30a1, 0x30fe,</div><div class='add'>+	0x3105, 0x312c,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x319f,</div><div class='add'>+	0x3200, 0x321c,</div><div class='add'>+	0x3220, 0x3243,</div><div class='add'>+	0x3260, 0x327b,</div><div class='add'>+	0x327f, 0x32b0,</div><div class='add'>+	0x32c0, 0x32cb,</div><div class='add'>+	0x32d0, 0x32fe,</div><div class='add'>+	0x3300, 0x3376,</div><div class='add'>+	0x337b, 0x33dd,</div><div class='add'>+	0x33e0, 0x33fe,</div><div class='add'>+	0x4e00, 0x9fa5,</div><div class='add'>+	0xe000, 0xfa2d,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1e, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdfb,</div><div class='add'>+	0xfe20, 0xfe23,</div><div class='add'>+	0xfe30, 0xfe44,</div><div class='add'>+	0xfe49, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe72,</div><div class='add'>+	0xfe74, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xff5e,</div><div class='add'>+	0xff61, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfffd, 0xffff,</div><div class='add'>+}; /* CR_Age_1_1 */</div><div class='add'>+</div><div class='add'>+/* 'Age_2_0': Derived Age 2.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_2_0[] = {</div><div class='add'>+	312,</div><div class='add'>+	0x0000, 0x01f5,</div><div class='add'>+	0x01fa, 0x0217,</div><div class='add'>+	0x0250, 0x02a8,</div><div class='add'>+	0x02b0, 0x02de,</div><div class='add'>+	0x02e0, 0x02e9,</div><div class='add'>+	0x0300, 0x0345,</div><div class='add'>+	0x0360, 0x0361,</div><div class='add'>+	0x0374, 0x0375,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ce,</div><div class='add'>+	0x03d0, 0x03d6,</div><div class='add'>+	0x03da, 0x03da,</div><div class='add'>+	0x03dc, 0x03dc,</div><div class='add'>+	0x03de, 0x03de,</div><div class='add'>+	0x03e0, 0x03e0,</div><div class='add'>+	0x03e2, 0x03f3,</div><div class='add'>+	0x0401, 0x040c,</div><div class='add'>+	0x040e, 0x044f,</div><div class='add'>+	0x0451, 0x045c,</div><div class='add'>+	0x045e, 0x0486,</div><div class='add'>+	0x0490, 0x04c4,</div><div class='add'>+	0x04c7, 0x04c8,</div><div class='add'>+	0x04cb, 0x04cc,</div><div class='add'>+	0x04d0, 0x04eb,</div><div class='add'>+	0x04ee, 0x04f5,</div><div class='add'>+	0x04f8, 0x04f9,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x0589,</div><div class='add'>+	0x0591, 0x05a1,</div><div class='add'>+	0x05a3, 0x05b9,</div><div class='add'>+	0x05bb, 0x05c4,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x060c, 0x060c,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061f, 0x061f,</div><div class='add'>+	0x0621, 0x063a,</div><div class='add'>+	0x0640, 0x0652,</div><div class='add'>+	0x0660, 0x066d,</div><div class='add'>+	0x0670, 0x06b7,</div><div class='add'>+	0x06ba, 0x06be,</div><div class='add'>+	0x06c0, 0x06ce,</div><div class='add'>+	0x06d0, 0x06ed,</div><div class='add'>+	0x06f0, 0x06f9,</div><div class='add'>+	0x0901, 0x0903,</div><div class='add'>+	0x0905, 0x0939,</div><div class='add'>+	0x093c, 0x094d,</div><div class='add'>+	0x0950, 0x0954,</div><div class='add'>+	0x0958, 0x0970,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09be, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cd,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fa,</div><div class='add'>+	0x0a02, 0x0a02,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a74,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8b,</div><div class='add'>+	0x0a8d, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae0,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b36, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b43,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b66, 0x0b70,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb5,</div><div class='add'>+	0x0bb7, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be7, 0x0bf2,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3e, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbe, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d28,</div><div class='add'>+	0x0d2a, 0x0d39,</div><div class='add'>+	0x0d3e, 0x0d43,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d61,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f69,</div><div class='add'>+	0x0f71, 0x0f8b,</div><div class='add'>+	0x0f90, 0x0f95,</div><div class='add'>+	0x0f97, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fad,</div><div class='add'>+	0x0fb1, 0x0fb7,</div><div class='add'>+	0x0fb9, 0x0fb9,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10d0, 0x10f6,</div><div class='add'>+	0x10fb, 0x10fb,</div><div class='add'>+	0x1100, 0x1159,</div><div class='add'>+	0x115f, 0x11a2,</div><div class='add'>+	0x11a8, 0x11f9,</div><div class='add'>+	0x1e00, 0x1e9b,</div><div class='add'>+	0x1ea0, 0x1ef9,</div><div class='add'>+	0x1f00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x202e,</div><div class='add'>+	0x2030, 0x2046,</div><div class='add'>+	0x206a, 0x2070,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x20a0, 0x20ab,</div><div class='add'>+	0x20d0, 0x20e1,</div><div class='add'>+	0x2100, 0x2138,</div><div class='add'>+	0x2153, 0x2182,</div><div class='add'>+	0x2190, 0x21ea,</div><div class='add'>+	0x2200, 0x22f1,</div><div class='add'>+	0x2300, 0x2300,</div><div class='add'>+	0x2302, 0x237a,</div><div class='add'>+	0x2400, 0x2424,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x24ea,</div><div class='add'>+	0x2500, 0x2595,</div><div class='add'>+	0x25a0, 0x25ef,</div><div class='add'>+	0x2600, 0x2613,</div><div class='add'>+	0x261a, 0x266f,</div><div class='add'>+	0x2701, 0x2704,</div><div class='add'>+	0x2706, 0x2709,</div><div class='add'>+	0x270c, 0x2727,</div><div class='add'>+	0x2729, 0x274b,</div><div class='add'>+	0x274d, 0x274d,</div><div class='add'>+	0x274f, 0x2752,</div><div class='add'>+	0x2756, 0x2756,</div><div class='add'>+	0x2758, 0x275e,</div><div class='add'>+	0x2761, 0x2767,</div><div class='add'>+	0x2776, 0x2794,</div><div class='add'>+	0x2798, 0x27af,</div><div class='add'>+	0x27b1, 0x27be,</div><div class='add'>+	0x3000, 0x3037,</div><div class='add'>+	0x303f, 0x303f,</div><div class='add'>+	0x3041, 0x3094,</div><div class='add'>+	0x3099, 0x309e,</div><div class='add'>+	0x30a1, 0x30fe,</div><div class='add'>+	0x3105, 0x312c,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x319f,</div><div class='add'>+	0x3200, 0x321c,</div><div class='add'>+	0x3220, 0x3243,</div><div class='add'>+	0x3260, 0x327b,</div><div class='add'>+	0x327f, 0x32b0,</div><div class='add'>+	0x32c0, 0x32cb,</div><div class='add'>+	0x32d0, 0x32fe,</div><div class='add'>+	0x3300, 0x3376,</div><div class='add'>+	0x337b, 0x33dd,</div><div class='add'>+	0x33e0, 0x33fe,</div><div class='add'>+	0x4e00, 0x9fa5,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd800, 0xfa2d,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1e, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdfb,</div><div class='add'>+	0xfe20, 0xfe23,</div><div class='add'>+	0xfe30, 0xfe44,</div><div class='add'>+	0xfe49, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe72,</div><div class='add'>+	0xfe74, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xff5e,</div><div class='add'>+	0xff61, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfffd, 0xffff,</div><div class='add'>+	0x1fffe, 0x1ffff,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_2_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_2_1': Derived Age 2.1 */</div><div class='add'>+static const OnigCodePoint CR_Age_2_1[] = {</div><div class='add'>+	312,</div><div class='add'>+	0x0000, 0x01f5,</div><div class='add'>+	0x01fa, 0x0217,</div><div class='add'>+	0x0250, 0x02a8,</div><div class='add'>+	0x02b0, 0x02de,</div><div class='add'>+	0x02e0, 0x02e9,</div><div class='add'>+	0x0300, 0x0345,</div><div class='add'>+	0x0360, 0x0361,</div><div class='add'>+	0x0374, 0x0375,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ce,</div><div class='add'>+	0x03d0, 0x03d6,</div><div class='add'>+	0x03da, 0x03da,</div><div class='add'>+	0x03dc, 0x03dc,</div><div class='add'>+	0x03de, 0x03de,</div><div class='add'>+	0x03e0, 0x03e0,</div><div class='add'>+	0x03e2, 0x03f3,</div><div class='add'>+	0x0401, 0x040c,</div><div class='add'>+	0x040e, 0x044f,</div><div class='add'>+	0x0451, 0x045c,</div><div class='add'>+	0x045e, 0x0486,</div><div class='add'>+	0x0490, 0x04c4,</div><div class='add'>+	0x04c7, 0x04c8,</div><div class='add'>+	0x04cb, 0x04cc,</div><div class='add'>+	0x04d0, 0x04eb,</div><div class='add'>+	0x04ee, 0x04f5,</div><div class='add'>+	0x04f8, 0x04f9,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x0589,</div><div class='add'>+	0x0591, 0x05a1,</div><div class='add'>+	0x05a3, 0x05b9,</div><div class='add'>+	0x05bb, 0x05c4,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x060c, 0x060c,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061f, 0x061f,</div><div class='add'>+	0x0621, 0x063a,</div><div class='add'>+	0x0640, 0x0652,</div><div class='add'>+	0x0660, 0x066d,</div><div class='add'>+	0x0670, 0x06b7,</div><div class='add'>+	0x06ba, 0x06be,</div><div class='add'>+	0x06c0, 0x06ce,</div><div class='add'>+	0x06d0, 0x06ed,</div><div class='add'>+	0x06f0, 0x06f9,</div><div class='add'>+	0x0901, 0x0903,</div><div class='add'>+	0x0905, 0x0939,</div><div class='add'>+	0x093c, 0x094d,</div><div class='add'>+	0x0950, 0x0954,</div><div class='add'>+	0x0958, 0x0970,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09be, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cd,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fa,</div><div class='add'>+	0x0a02, 0x0a02,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a74,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8b,</div><div class='add'>+	0x0a8d, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae0,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b36, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b43,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b66, 0x0b70,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb5,</div><div class='add'>+	0x0bb7, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be7, 0x0bf2,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3e, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbe, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d28,</div><div class='add'>+	0x0d2a, 0x0d39,</div><div class='add'>+	0x0d3e, 0x0d43,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d61,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f69,</div><div class='add'>+	0x0f71, 0x0f8b,</div><div class='add'>+	0x0f90, 0x0f95,</div><div class='add'>+	0x0f97, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fad,</div><div class='add'>+	0x0fb1, 0x0fb7,</div><div class='add'>+	0x0fb9, 0x0fb9,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10d0, 0x10f6,</div><div class='add'>+	0x10fb, 0x10fb,</div><div class='add'>+	0x1100, 0x1159,</div><div class='add'>+	0x115f, 0x11a2,</div><div class='add'>+	0x11a8, 0x11f9,</div><div class='add'>+	0x1e00, 0x1e9b,</div><div class='add'>+	0x1ea0, 0x1ef9,</div><div class='add'>+	0x1f00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x202e,</div><div class='add'>+	0x2030, 0x2046,</div><div class='add'>+	0x206a, 0x2070,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x20a0, 0x20ac,</div><div class='add'>+	0x20d0, 0x20e1,</div><div class='add'>+	0x2100, 0x2138,</div><div class='add'>+	0x2153, 0x2182,</div><div class='add'>+	0x2190, 0x21ea,</div><div class='add'>+	0x2200, 0x22f1,</div><div class='add'>+	0x2300, 0x2300,</div><div class='add'>+	0x2302, 0x237a,</div><div class='add'>+	0x2400, 0x2424,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x24ea,</div><div class='add'>+	0x2500, 0x2595,</div><div class='add'>+	0x25a0, 0x25ef,</div><div class='add'>+	0x2600, 0x2613,</div><div class='add'>+	0x261a, 0x266f,</div><div class='add'>+	0x2701, 0x2704,</div><div class='add'>+	0x2706, 0x2709,</div><div class='add'>+	0x270c, 0x2727,</div><div class='add'>+	0x2729, 0x274b,</div><div class='add'>+	0x274d, 0x274d,</div><div class='add'>+	0x274f, 0x2752,</div><div class='add'>+	0x2756, 0x2756,</div><div class='add'>+	0x2758, 0x275e,</div><div class='add'>+	0x2761, 0x2767,</div><div class='add'>+	0x2776, 0x2794,</div><div class='add'>+	0x2798, 0x27af,</div><div class='add'>+	0x27b1, 0x27be,</div><div class='add'>+	0x3000, 0x3037,</div><div class='add'>+	0x303f, 0x303f,</div><div class='add'>+	0x3041, 0x3094,</div><div class='add'>+	0x3099, 0x309e,</div><div class='add'>+	0x30a1, 0x30fe,</div><div class='add'>+	0x3105, 0x312c,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x319f,</div><div class='add'>+	0x3200, 0x321c,</div><div class='add'>+	0x3220, 0x3243,</div><div class='add'>+	0x3260, 0x327b,</div><div class='add'>+	0x327f, 0x32b0,</div><div class='add'>+	0x32c0, 0x32cb,</div><div class='add'>+	0x32d0, 0x32fe,</div><div class='add'>+	0x3300, 0x3376,</div><div class='add'>+	0x337b, 0x33dd,</div><div class='add'>+	0x33e0, 0x33fe,</div><div class='add'>+	0x4e00, 0x9fa5,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd800, 0xfa2d,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1e, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdfb,</div><div class='add'>+	0xfe20, 0xfe23,</div><div class='add'>+	0xfe30, 0xfe44,</div><div class='add'>+	0xfe49, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe72,</div><div class='add'>+	0xfe74, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xff5e,</div><div class='add'>+	0xff61, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfffc, 0xffff,</div><div class='add'>+	0x1fffe, 0x1ffff,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_2_1 */</div><div class='add'>+</div><div class='add'>+/* 'Age_3_0': Derived Age 3.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_3_0[] = {</div><div class='add'>+	369,</div><div class='add'>+	0x0000, 0x021f,</div><div class='add'>+	0x0222, 0x0233,</div><div class='add'>+	0x0250, 0x02ad,</div><div class='add'>+	0x02b0, 0x02ee,</div><div class='add'>+	0x0300, 0x034e,</div><div class='add'>+	0x0360, 0x0362,</div><div class='add'>+	0x0374, 0x0375,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ce,</div><div class='add'>+	0x03d0, 0x03d7,</div><div class='add'>+	0x03da, 0x03f3,</div><div class='add'>+	0x0400, 0x0486,</div><div class='add'>+	0x0488, 0x0489,</div><div class='add'>+	0x048c, 0x04c4,</div><div class='add'>+	0x04c7, 0x04c8,</div><div class='add'>+	0x04cb, 0x04cc,</div><div class='add'>+	0x04d0, 0x04f5,</div><div class='add'>+	0x04f8, 0x04f9,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x0591, 0x05a1,</div><div class='add'>+	0x05a3, 0x05b9,</div><div class='add'>+	0x05bb, 0x05c4,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x060c, 0x060c,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061f, 0x061f,</div><div class='add'>+	0x0621, 0x063a,</div><div class='add'>+	0x0640, 0x0655,</div><div class='add'>+	0x0660, 0x066d,</div><div class='add'>+	0x0670, 0x06ed,</div><div class='add'>+	0x06f0, 0x06fe,</div><div class='add'>+	0x0700, 0x070d,</div><div class='add'>+	0x070f, 0x072c,</div><div class='add'>+	0x0730, 0x074a,</div><div class='add'>+	0x0780, 0x07b0,</div><div class='add'>+	0x0901, 0x0903,</div><div class='add'>+	0x0905, 0x0939,</div><div class='add'>+	0x093c, 0x094d,</div><div class='add'>+	0x0950, 0x0954,</div><div class='add'>+	0x0958, 0x0970,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09be, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cd,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fa,</div><div class='add'>+	0x0a02, 0x0a02,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a74,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8b,</div><div class='add'>+	0x0a8d, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae0,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b36, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b43,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b66, 0x0b70,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb5,</div><div class='add'>+	0x0bb7, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be7, 0x0bf2,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3e, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbe, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d28,</div><div class='add'>+	0x0d2a, 0x0d39,</div><div class='add'>+	0x0d3e, 0x0d43,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d61,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6a,</div><div class='add'>+	0x0f71, 0x0f8b,</div><div class='add'>+	0x0f90, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fcf, 0x0fcf,</div><div class='add'>+	0x1000, 0x1021,</div><div class='add'>+	0x1023, 0x1027,</div><div class='add'>+	0x1029, 0x102a,</div><div class='add'>+	0x102c, 0x1032,</div><div class='add'>+	0x1036, 0x1039,</div><div class='add'>+	0x1040, 0x1059,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10d0, 0x10f6,</div><div class='add'>+	0x10fb, 0x10fb,</div><div class='add'>+	0x1100, 0x1159,</div><div class='add'>+	0x115f, 0x11a2,</div><div class='add'>+	0x11a8, 0x11f9,</div><div class='add'>+	0x1200, 0x1206,</div><div class='add'>+	0x1208, 0x1246,</div><div class='add'>+	0x1248, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1286,</div><div class='add'>+	0x1288, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12ae,</div><div class='add'>+	0x12b0, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12ce,</div><div class='add'>+	0x12d0, 0x12d6,</div><div class='add'>+	0x12d8, 0x12ee,</div><div class='add'>+	0x12f0, 0x130e,</div><div class='add'>+	0x1310, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x131e,</div><div class='add'>+	0x1320, 0x1346,</div><div class='add'>+	0x1348, 0x135a,</div><div class='add'>+	0x1361, 0x137c,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1401, 0x1676,</div><div class='add'>+	0x1680, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1780, 0x17dc,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18a9,</div><div class='add'>+	0x1e00, 0x1e9b,</div><div class='add'>+	0x1ea0, 0x1ef9,</div><div class='add'>+	0x1f00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2046,</div><div class='add'>+	0x2048, 0x204d,</div><div class='add'>+	0x206a, 0x2070,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x20a0, 0x20af,</div><div class='add'>+	0x20d0, 0x20e3,</div><div class='add'>+	0x2100, 0x213a,</div><div class='add'>+	0x2153, 0x2183,</div><div class='add'>+	0x2190, 0x21f3,</div><div class='add'>+	0x2200, 0x22f1,</div><div class='add'>+	0x2300, 0x237b,</div><div class='add'>+	0x237d, 0x239a,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x24ea,</div><div class='add'>+	0x2500, 0x2595,</div><div class='add'>+	0x25a0, 0x25f7,</div><div class='add'>+	0x2600, 0x2613,</div><div class='add'>+	0x2619, 0x2671,</div><div class='add'>+	0x2701, 0x2704,</div><div class='add'>+	0x2706, 0x2709,</div><div class='add'>+	0x270c, 0x2727,</div><div class='add'>+	0x2729, 0x274b,</div><div class='add'>+	0x274d, 0x274d,</div><div class='add'>+	0x274f, 0x2752,</div><div class='add'>+	0x2756, 0x2756,</div><div class='add'>+	0x2758, 0x275e,</div><div class='add'>+	0x2761, 0x2767,</div><div class='add'>+	0x2776, 0x2794,</div><div class='add'>+	0x2798, 0x27af,</div><div class='add'>+	0x27b1, 0x27be,</div><div class='add'>+	0x2800, 0x28ff,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303a,</div><div class='add'>+	0x303e, 0x303f,</div><div class='add'>+	0x3041, 0x3094,</div><div class='add'>+	0x3099, 0x309e,</div><div class='add'>+	0x30a1, 0x30fe,</div><div class='add'>+	0x3105, 0x312c,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31b7,</div><div class='add'>+	0x3200, 0x321c,</div><div class='add'>+	0x3220, 0x3243,</div><div class='add'>+	0x3260, 0x327b,</div><div class='add'>+	0x327f, 0x32b0,</div><div class='add'>+	0x32c0, 0x32cb,</div><div class='add'>+	0x32d0, 0x32fe,</div><div class='add'>+	0x3300, 0x3376,</div><div class='add'>+	0x337b, 0x33dd,</div><div class='add'>+	0x33e0, 0x33fe,</div><div class='add'>+	0x3400, 0x4db5,</div><div class='add'>+	0x4e00, 0x9fa5,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4a1,</div><div class='add'>+	0xa4a4, 0xa4b3,</div><div class='add'>+	0xa4b5, 0xa4c0,</div><div class='add'>+	0xa4c2, 0xa4c4,</div><div class='add'>+	0xa4c6, 0xa4c6,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd800, 0xfa2d,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdf0, 0xfdfb,</div><div class='add'>+	0xfe20, 0xfe23,</div><div class='add'>+	0xfe30, 0xfe44,</div><div class='add'>+	0xfe49, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe72,</div><div class='add'>+	0xfe74, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xff5e,</div><div class='add'>+	0xff61, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0xffff,</div><div class='add'>+	0x1fffe, 0x1ffff,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_3_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_3_1': Derived Age 3.1 */</div><div class='add'>+static const OnigCodePoint CR_Age_3_1[] = {</div><div class='add'>+	402,</div><div class='add'>+	0x0000, 0x021f,</div><div class='add'>+	0x0222, 0x0233,</div><div class='add'>+	0x0250, 0x02ad,</div><div class='add'>+	0x02b0, 0x02ee,</div><div class='add'>+	0x0300, 0x034e,</div><div class='add'>+	0x0360, 0x0362,</div><div class='add'>+	0x0374, 0x0375,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ce,</div><div class='add'>+	0x03d0, 0x03d7,</div><div class='add'>+	0x03da, 0x03f5,</div><div class='add'>+	0x0400, 0x0486,</div><div class='add'>+	0x0488, 0x0489,</div><div class='add'>+	0x048c, 0x04c4,</div><div class='add'>+	0x04c7, 0x04c8,</div><div class='add'>+	0x04cb, 0x04cc,</div><div class='add'>+	0x04d0, 0x04f5,</div><div class='add'>+	0x04f8, 0x04f9,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x0591, 0x05a1,</div><div class='add'>+	0x05a3, 0x05b9,</div><div class='add'>+	0x05bb, 0x05c4,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x060c, 0x060c,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061f, 0x061f,</div><div class='add'>+	0x0621, 0x063a,</div><div class='add'>+	0x0640, 0x0655,</div><div class='add'>+	0x0660, 0x066d,</div><div class='add'>+	0x0670, 0x06ed,</div><div class='add'>+	0x06f0, 0x06fe,</div><div class='add'>+	0x0700, 0x070d,</div><div class='add'>+	0x070f, 0x072c,</div><div class='add'>+	0x0730, 0x074a,</div><div class='add'>+	0x0780, 0x07b0,</div><div class='add'>+	0x0901, 0x0903,</div><div class='add'>+	0x0905, 0x0939,</div><div class='add'>+	0x093c, 0x094d,</div><div class='add'>+	0x0950, 0x0954,</div><div class='add'>+	0x0958, 0x0970,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09be, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cd,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fa,</div><div class='add'>+	0x0a02, 0x0a02,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a74,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8b,</div><div class='add'>+	0x0a8d, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae0,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b36, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b43,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b66, 0x0b70,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb5,</div><div class='add'>+	0x0bb7, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be7, 0x0bf2,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3e, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbe, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d28,</div><div class='add'>+	0x0d2a, 0x0d39,</div><div class='add'>+	0x0d3e, 0x0d43,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d61,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6a,</div><div class='add'>+	0x0f71, 0x0f8b,</div><div class='add'>+	0x0f90, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fcf, 0x0fcf,</div><div class='add'>+	0x1000, 0x1021,</div><div class='add'>+	0x1023, 0x1027,</div><div class='add'>+	0x1029, 0x102a,</div><div class='add'>+	0x102c, 0x1032,</div><div class='add'>+	0x1036, 0x1039,</div><div class='add'>+	0x1040, 0x1059,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10d0, 0x10f6,</div><div class='add'>+	0x10fb, 0x10fb,</div><div class='add'>+	0x1100, 0x1159,</div><div class='add'>+	0x115f, 0x11a2,</div><div class='add'>+	0x11a8, 0x11f9,</div><div class='add'>+	0x1200, 0x1206,</div><div class='add'>+	0x1208, 0x1246,</div><div class='add'>+	0x1248, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1286,</div><div class='add'>+	0x1288, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12ae,</div><div class='add'>+	0x12b0, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12ce,</div><div class='add'>+	0x12d0, 0x12d6,</div><div class='add'>+	0x12d8, 0x12ee,</div><div class='add'>+	0x12f0, 0x130e,</div><div class='add'>+	0x1310, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x131e,</div><div class='add'>+	0x1320, 0x1346,</div><div class='add'>+	0x1348, 0x135a,</div><div class='add'>+	0x1361, 0x137c,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1401, 0x1676,</div><div class='add'>+	0x1680, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1780, 0x17dc,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18a9,</div><div class='add'>+	0x1e00, 0x1e9b,</div><div class='add'>+	0x1ea0, 0x1ef9,</div><div class='add'>+	0x1f00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2046,</div><div class='add'>+	0x2048, 0x204d,</div><div class='add'>+	0x206a, 0x2070,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x20a0, 0x20af,</div><div class='add'>+	0x20d0, 0x20e3,</div><div class='add'>+	0x2100, 0x213a,</div><div class='add'>+	0x2153, 0x2183,</div><div class='add'>+	0x2190, 0x21f3,</div><div class='add'>+	0x2200, 0x22f1,</div><div class='add'>+	0x2300, 0x237b,</div><div class='add'>+	0x237d, 0x239a,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x24ea,</div><div class='add'>+	0x2500, 0x2595,</div><div class='add'>+	0x25a0, 0x25f7,</div><div class='add'>+	0x2600, 0x2613,</div><div class='add'>+	0x2619, 0x2671,</div><div class='add'>+	0x2701, 0x2704,</div><div class='add'>+	0x2706, 0x2709,</div><div class='add'>+	0x270c, 0x2727,</div><div class='add'>+	0x2729, 0x274b,</div><div class='add'>+	0x274d, 0x274d,</div><div class='add'>+	0x274f, 0x2752,</div><div class='add'>+	0x2756, 0x2756,</div><div class='add'>+	0x2758, 0x275e,</div><div class='add'>+	0x2761, 0x2767,</div><div class='add'>+	0x2776, 0x2794,</div><div class='add'>+	0x2798, 0x27af,</div><div class='add'>+	0x27b1, 0x27be,</div><div class='add'>+	0x2800, 0x28ff,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303a,</div><div class='add'>+	0x303e, 0x303f,</div><div class='add'>+	0x3041, 0x3094,</div><div class='add'>+	0x3099, 0x309e,</div><div class='add'>+	0x30a1, 0x30fe,</div><div class='add'>+	0x3105, 0x312c,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31b7,</div><div class='add'>+	0x3200, 0x321c,</div><div class='add'>+	0x3220, 0x3243,</div><div class='add'>+	0x3260, 0x327b,</div><div class='add'>+	0x327f, 0x32b0,</div><div class='add'>+	0x32c0, 0x32cb,</div><div class='add'>+	0x32d0, 0x32fe,</div><div class='add'>+	0x3300, 0x3376,</div><div class='add'>+	0x337b, 0x33dd,</div><div class='add'>+	0x33e0, 0x33fe,</div><div class='add'>+	0x3400, 0x4db5,</div><div class='add'>+	0x4e00, 0x9fa5,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4a1,</div><div class='add'>+	0xa4a4, 0xa4b3,</div><div class='add'>+	0xa4b5, 0xa4c0,</div><div class='add'>+	0xa4c2, 0xa4c4,</div><div class='add'>+	0xa4c6, 0xa4c6,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd800, 0xfa2d,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfb,</div><div class='add'>+	0xfe20, 0xfe23,</div><div class='add'>+	0xfe30, 0xfe44,</div><div class='add'>+	0xfe49, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe72,</div><div class='add'>+	0xfe74, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xff5e,</div><div class='add'>+	0xff61, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0xffff,</div><div class='add'>+	0x10300, 0x1031e,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10400, 0x10425,</div><div class='add'>+	0x10428, 0x1044d,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d12a, 0x1d1dd,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c0,</div><div class='add'>+	0x1d4c2, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a3,</div><div class='add'>+	0x1d6a8, 0x1d7c9,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_3_1 */</div><div class='add'>+</div><div class='add'>+/* 'Age_3_2': Derived Age 3.2 */</div><div class='add'>+static const OnigCodePoint CR_Age_3_2[] = {</div><div class='add'>+	397,</div><div class='add'>+	0x0000, 0x0220,</div><div class='add'>+	0x0222, 0x0233,</div><div class='add'>+	0x0250, 0x02ad,</div><div class='add'>+	0x02b0, 0x02ee,</div><div class='add'>+	0x0300, 0x034f,</div><div class='add'>+	0x0360, 0x036f,</div><div class='add'>+	0x0374, 0x0375,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ce,</div><div class='add'>+	0x03d0, 0x03f6,</div><div class='add'>+	0x0400, 0x0486,</div><div class='add'>+	0x0488, 0x04ce,</div><div class='add'>+	0x04d0, 0x04f5,</div><div class='add'>+	0x04f8, 0x04f9,</div><div class='add'>+	0x0500, 0x050f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x0591, 0x05a1,</div><div class='add'>+	0x05a3, 0x05b9,</div><div class='add'>+	0x05bb, 0x05c4,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x060c, 0x060c,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061f, 0x061f,</div><div class='add'>+	0x0621, 0x063a,</div><div class='add'>+	0x0640, 0x0655,</div><div class='add'>+	0x0660, 0x06ed,</div><div class='add'>+	0x06f0, 0x06fe,</div><div class='add'>+	0x0700, 0x070d,</div><div class='add'>+	0x070f, 0x072c,</div><div class='add'>+	0x0730, 0x074a,</div><div class='add'>+	0x0780, 0x07b1,</div><div class='add'>+	0x0901, 0x0903,</div><div class='add'>+	0x0905, 0x0939,</div><div class='add'>+	0x093c, 0x094d,</div><div class='add'>+	0x0950, 0x0954,</div><div class='add'>+	0x0958, 0x0970,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09be, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cd,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fa,</div><div class='add'>+	0x0a02, 0x0a02,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a74,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8b,</div><div class='add'>+	0x0a8d, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae0,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b36, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b43,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b66, 0x0b70,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb5,</div><div class='add'>+	0x0bb7, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be7, 0x0bf2,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3e, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbe, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d28,</div><div class='add'>+	0x0d2a, 0x0d39,</div><div class='add'>+	0x0d3e, 0x0d43,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d61,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6a,</div><div class='add'>+	0x0f71, 0x0f8b,</div><div class='add'>+	0x0f90, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fcf, 0x0fcf,</div><div class='add'>+	0x1000, 0x1021,</div><div class='add'>+	0x1023, 0x1027,</div><div class='add'>+	0x1029, 0x102a,</div><div class='add'>+	0x102c, 0x1032,</div><div class='add'>+	0x1036, 0x1039,</div><div class='add'>+	0x1040, 0x1059,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10d0, 0x10f8,</div><div class='add'>+	0x10fb, 0x10fb,</div><div class='add'>+	0x1100, 0x1159,</div><div class='add'>+	0x115f, 0x11a2,</div><div class='add'>+	0x11a8, 0x11f9,</div><div class='add'>+	0x1200, 0x1206,</div><div class='add'>+	0x1208, 0x1246,</div><div class='add'>+	0x1248, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1286,</div><div class='add'>+	0x1288, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12ae,</div><div class='add'>+	0x12b0, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12ce,</div><div class='add'>+	0x12d0, 0x12d6,</div><div class='add'>+	0x12d8, 0x12ee,</div><div class='add'>+	0x12f0, 0x130e,</div><div class='add'>+	0x1310, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x131e,</div><div class='add'>+	0x1320, 0x1346,</div><div class='add'>+	0x1348, 0x135a,</div><div class='add'>+	0x1361, 0x137c,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1401, 0x1676,</div><div class='add'>+	0x1680, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dc,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18a9,</div><div class='add'>+	0x1e00, 0x1e9b,</div><div class='add'>+	0x1ea0, 0x1ef9,</div><div class='add'>+	0x1f00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2052,</div><div class='add'>+	0x2057, 0x2057,</div><div class='add'>+	0x205f, 0x2063,</div><div class='add'>+	0x206a, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x20a0, 0x20b1,</div><div class='add'>+	0x20d0, 0x20ea,</div><div class='add'>+	0x2100, 0x213a,</div><div class='add'>+	0x213d, 0x214b,</div><div class='add'>+	0x2153, 0x2183,</div><div class='add'>+	0x2190, 0x23ce,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x24fe,</div><div class='add'>+	0x2500, 0x2613,</div><div class='add'>+	0x2616, 0x2617,</div><div class='add'>+	0x2619, 0x267d,</div><div class='add'>+	0x2680, 0x2689,</div><div class='add'>+	0x2701, 0x2704,</div><div class='add'>+	0x2706, 0x2709,</div><div class='add'>+	0x270c, 0x2727,</div><div class='add'>+	0x2729, 0x274b,</div><div class='add'>+	0x274d, 0x274d,</div><div class='add'>+	0x274f, 0x2752,</div><div class='add'>+	0x2756, 0x2756,</div><div class='add'>+	0x2758, 0x275e,</div><div class='add'>+	0x2761, 0x2794,</div><div class='add'>+	0x2798, 0x27af,</div><div class='add'>+	0x27b1, 0x27be,</div><div class='add'>+	0x27d0, 0x27eb,</div><div class='add'>+	0x27f0, 0x2aff,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312c,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31b7,</div><div class='add'>+	0x31f0, 0x321c,</div><div class='add'>+	0x3220, 0x3243,</div><div class='add'>+	0x3251, 0x327b,</div><div class='add'>+	0x327f, 0x32cb,</div><div class='add'>+	0x32d0, 0x32fe,</div><div class='add'>+	0x3300, 0x3376,</div><div class='add'>+	0x337b, 0x33dd,</div><div class='add'>+	0x33e0, 0x33fe,</div><div class='add'>+	0x3400, 0x4db5,</div><div class='add'>+	0x4e00, 0x9fa5,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd800, 0xfa2d,</div><div class='add'>+	0xfa30, 0xfa6a,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfc,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfe20, 0xfe23,</div><div class='add'>+	0xfe30, 0xfe46,</div><div class='add'>+	0xfe49, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0xffff,</div><div class='add'>+	0x10300, 0x1031e,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10400, 0x10425,</div><div class='add'>+	0x10428, 0x1044d,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d12a, 0x1d1dd,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c0,</div><div class='add'>+	0x1d4c2, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a3,</div><div class='add'>+	0x1d6a8, 0x1d7c9,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_3_2 */</div><div class='add'>+</div><div class='add'>+/* 'Age_4_0': Derived Age 4.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_4_0[] = {</div><div class='add'>+	412,</div><div class='add'>+	0x0000, 0x0236,</div><div class='add'>+	0x0250, 0x0357,</div><div class='add'>+	0x035d, 0x036f,</div><div class='add'>+	0x0374, 0x0375,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ce,</div><div class='add'>+	0x03d0, 0x03fb,</div><div class='add'>+	0x0400, 0x0486,</div><div class='add'>+	0x0488, 0x04ce,</div><div class='add'>+	0x04d0, 0x04f5,</div><div class='add'>+	0x04f8, 0x04f9,</div><div class='add'>+	0x0500, 0x050f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x0591, 0x05a1,</div><div class='add'>+	0x05a3, 0x05b9,</div><div class='add'>+	0x05bb, 0x05c4,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x0603,</div><div class='add'>+	0x060c, 0x0615,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061f, 0x061f,</div><div class='add'>+	0x0621, 0x063a,</div><div class='add'>+	0x0640, 0x0658,</div><div class='add'>+	0x0660, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x074f,</div><div class='add'>+	0x0780, 0x07b1,</div><div class='add'>+	0x0901, 0x0939,</div><div class='add'>+	0x093c, 0x094d,</div><div class='add'>+	0x0950, 0x0954,</div><div class='add'>+	0x0958, 0x0970,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cd,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fa,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a74,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0af1, 0x0af1,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b43,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b66, 0x0b71,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb5,</div><div class='add'>+	0x0bb7, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be7, 0x0bfa,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3e, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d28,</div><div class='add'>+	0x0d2a, 0x0d39,</div><div class='add'>+	0x0d3e, 0x0d43,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d61,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6a,</div><div class='add'>+	0x0f71, 0x0f8b,</div><div class='add'>+	0x0f90, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fcf, 0x0fcf,</div><div class='add'>+	0x1000, 0x1021,</div><div class='add'>+	0x1023, 0x1027,</div><div class='add'>+	0x1029, 0x102a,</div><div class='add'>+	0x102c, 0x1032,</div><div class='add'>+	0x1036, 0x1039,</div><div class='add'>+	0x1040, 0x1059,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10d0, 0x10f8,</div><div class='add'>+	0x10fb, 0x10fb,</div><div class='add'>+	0x1100, 0x1159,</div><div class='add'>+	0x115f, 0x11a2,</div><div class='add'>+	0x11a8, 0x11f9,</div><div class='add'>+	0x1200, 0x1206,</div><div class='add'>+	0x1208, 0x1246,</div><div class='add'>+	0x1248, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1286,</div><div class='add'>+	0x1288, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12ae,</div><div class='add'>+	0x12b0, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12ce,</div><div class='add'>+	0x12d0, 0x12d6,</div><div class='add'>+	0x12d8, 0x12ee,</div><div class='add'>+	0x12f0, 0x130e,</div><div class='add'>+	0x1310, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x131e,</div><div class='add'>+	0x1320, 0x1346,</div><div class='add'>+	0x1348, 0x135a,</div><div class='add'>+	0x1361, 0x137c,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1401, 0x1676,</div><div class='add'>+	0x1680, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18a9,</div><div class='add'>+	0x1900, 0x191c,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x19e0, 0x19ff,</div><div class='add'>+	0x1d00, 0x1d6b,</div><div class='add'>+	0x1e00, 0x1e9b,</div><div class='add'>+	0x1ea0, 0x1ef9,</div><div class='add'>+	0x1f00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2054,</div><div class='add'>+	0x2057, 0x2057,</div><div class='add'>+	0x205f, 0x2063,</div><div class='add'>+	0x206a, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x20a0, 0x20b1,</div><div class='add'>+	0x20d0, 0x20ea,</div><div class='add'>+	0x2100, 0x213b,</div><div class='add'>+	0x213d, 0x214b,</div><div class='add'>+	0x2153, 0x2183,</div><div class='add'>+	0x2190, 0x23d0,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2617,</div><div class='add'>+	0x2619, 0x267d,</div><div class='add'>+	0x2680, 0x2691,</div><div class='add'>+	0x26a0, 0x26a1,</div><div class='add'>+	0x2701, 0x2704,</div><div class='add'>+	0x2706, 0x2709,</div><div class='add'>+	0x270c, 0x2727,</div><div class='add'>+	0x2729, 0x274b,</div><div class='add'>+	0x274d, 0x274d,</div><div class='add'>+	0x274f, 0x2752,</div><div class='add'>+	0x2756, 0x2756,</div><div class='add'>+	0x2758, 0x275e,</div><div class='add'>+	0x2761, 0x2794,</div><div class='add'>+	0x2798, 0x27af,</div><div class='add'>+	0x27b1, 0x27be,</div><div class='add'>+	0x27d0, 0x27eb,</div><div class='add'>+	0x27f0, 0x2b0d,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312c,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31b7,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x3243,</div><div class='add'>+	0x3250, 0x327d,</div><div class='add'>+	0x327f, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fa5,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd800, 0xfa2d,</div><div class='add'>+	0xfa30, 0xfa6a,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfe20, 0xfe23,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1013f,</div><div class='add'>+	0x10300, 0x1031e,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x1039f,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x1083f,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d12a, 0x1d1dd,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a3,</div><div class='add'>+	0x1d6a8, 0x1d7c9,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_4_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_4_1': Derived Age 4.1 */</div><div class='add'>+static const OnigCodePoint CR_Age_4_1[] = {</div><div class='add'>+	430,</div><div class='add'>+	0x0000, 0x0241,</div><div class='add'>+	0x0250, 0x036f,</div><div class='add'>+	0x0374, 0x0375,</div><div class='add'>+	0x037a, 0x037a,</div><div class='add'>+	0x037e, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ce,</div><div class='add'>+	0x03d0, 0x0486,</div><div class='add'>+	0x0488, 0x04ce,</div><div class='add'>+	0x04d0, 0x04f9,</div><div class='add'>+	0x0500, 0x050f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x0591, 0x05b9,</div><div class='add'>+	0x05bb, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x0603,</div><div class='add'>+	0x060b, 0x0615,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061e, 0x061f,</div><div class='add'>+	0x0621, 0x063a,</div><div class='add'>+	0x0640, 0x065e,</div><div class='add'>+	0x0660, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x076d,</div><div class='add'>+	0x0780, 0x07b1,</div><div class='add'>+	0x0901, 0x0939,</div><div class='add'>+	0x093c, 0x094d,</div><div class='add'>+	0x0950, 0x0954,</div><div class='add'>+	0x0958, 0x0970,</div><div class='add'>+	0x097d, 0x097d,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fa,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a74,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0af1, 0x0af1,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b43,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b66, 0x0b71,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3e, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce1,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d28,</div><div class='add'>+	0x0d2a, 0x0d39,</div><div class='add'>+	0x0d3e, 0x0d43,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d61,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6a,</div><div class='add'>+	0x0f71, 0x0f8b,</div><div class='add'>+	0x0f90, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fcf, 0x0fd1,</div><div class='add'>+	0x1000, 0x1021,</div><div class='add'>+	0x1023, 0x1027,</div><div class='add'>+	0x1029, 0x102a,</div><div class='add'>+	0x102c, 0x1032,</div><div class='add'>+	0x1036, 0x1039,</div><div class='add'>+	0x1040, 0x1059,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10d0, 0x10fc,</div><div class='add'>+	0x1100, 0x1159,</div><div class='add'>+	0x115f, 0x11a2,</div><div class='add'>+	0x11a8, 0x11f9,</div><div class='add'>+	0x1200, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135f, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1401, 0x1676,</div><div class='add'>+	0x1680, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18a9,</div><div class='add'>+	0x1900, 0x191c,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19a9,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19d9,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a1f,</div><div class='add'>+	0x1d00, 0x1dc3,</div><div class='add'>+	0x1e00, 0x1e9b,</div><div class='add'>+	0x1ea0, 0x1ef9,</div><div class='add'>+	0x1f00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2063,</div><div class='add'>+	0x206a, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x2094,</div><div class='add'>+	0x20a0, 0x20b5,</div><div class='add'>+	0x20d0, 0x20eb,</div><div class='add'>+	0x2100, 0x214c,</div><div class='add'>+	0x2153, 0x2183,</div><div class='add'>+	0x2190, 0x23db,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x269c,</div><div class='add'>+	0x26a0, 0x26b1,</div><div class='add'>+	0x2701, 0x2704,</div><div class='add'>+	0x2706, 0x2709,</div><div class='add'>+	0x270c, 0x2727,</div><div class='add'>+	0x2729, 0x274b,</div><div class='add'>+	0x274d, 0x274d,</div><div class='add'>+	0x274f, 0x2752,</div><div class='add'>+	0x2756, 0x2756,</div><div class='add'>+	0x2758, 0x275e,</div><div class='add'>+	0x2761, 0x2794,</div><div class='add'>+	0x2798, 0x27af,</div><div class='add'>+	0x27b1, 0x27be,</div><div class='add'>+	0x27c0, 0x27c6,</div><div class='add'>+	0x27d0, 0x27eb,</div><div class='add'>+	0x27f0, 0x2b13,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c80, 0x2cea,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d30, 0x2d65,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2e00, 0x2e17,</div><div class='add'>+	0x2e1c, 0x2e1d,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312c,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31b7,</div><div class='add'>+	0x31c0, 0x31cf,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x3243,</div><div class='add'>+	0x3250, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fbb,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa700, 0xa716,</div><div class='add'>+	0xa800, 0xa82b,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd800, 0xfa2d,</div><div class='add'>+	0xfa30, 0xfa6a,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe23,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018a,</div><div class='add'>+	0x10300, 0x1031e,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x1083f,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d12a, 0x1d1dd,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7c9,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_4_1 */</div><div class='add'>+</div><div class='add'>+/* 'Age_5_0': Derived Age 5.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_5_0[] = {</div><div class='add'>+	440,</div><div class='add'>+	0x0000, 0x036f,</div><div class='add'>+	0x0374, 0x0375,</div><div class='add'>+	0x037a, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x03ce,</div><div class='add'>+	0x03d0, 0x0486,</div><div class='add'>+	0x0488, 0x0513,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x0603,</div><div class='add'>+	0x060b, 0x0615,</div><div class='add'>+	0x061b, 0x061b,</div><div class='add'>+	0x061e, 0x061f,</div><div class='add'>+	0x0621, 0x063a,</div><div class='add'>+	0x0640, 0x065e,</div><div class='add'>+	0x0660, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x076d,</div><div class='add'>+	0x0780, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x0901, 0x0939,</div><div class='add'>+	0x093c, 0x094d,</div><div class='add'>+	0x0950, 0x0954,</div><div class='add'>+	0x0958, 0x0970,</div><div class='add'>+	0x097b, 0x097f,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fa,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a74,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0af1, 0x0af1,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b43,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b61,</div><div class='add'>+	0x0b66, 0x0b71,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3e, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c60, 0x0c61,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d28,</div><div class='add'>+	0x0d2a, 0x0d39,</div><div class='add'>+	0x0d3e, 0x0d43,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d61,</div><div class='add'>+	0x0d66, 0x0d6f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6a,</div><div class='add'>+	0x0f71, 0x0f8b,</div><div class='add'>+	0x0f90, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fcf, 0x0fd1,</div><div class='add'>+	0x1000, 0x1021,</div><div class='add'>+	0x1023, 0x1027,</div><div class='add'>+	0x1029, 0x102a,</div><div class='add'>+	0x102c, 0x1032,</div><div class='add'>+	0x1036, 0x1039,</div><div class='add'>+	0x1040, 0x1059,</div><div class='add'>+	0x10a0, 0x10c5,</div><div class='add'>+	0x10d0, 0x10fc,</div><div class='add'>+	0x1100, 0x1159,</div><div class='add'>+	0x115f, 0x11a2,</div><div class='add'>+	0x11a8, 0x11f9,</div><div class='add'>+	0x1200, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135f, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1401, 0x1676,</div><div class='add'>+	0x1680, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18a9,</div><div class='add'>+	0x1900, 0x191c,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19a9,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19d9,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a1f,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1d00, 0x1dca,</div><div class='add'>+	0x1dfe, 0x1e9b,</div><div class='add'>+	0x1ea0, 0x1ef9,</div><div class='add'>+	0x1f00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2063,</div><div class='add'>+	0x206a, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x2094,</div><div class='add'>+	0x20a0, 0x20b5,</div><div class='add'>+	0x20d0, 0x20ef,</div><div class='add'>+	0x2100, 0x214e,</div><div class='add'>+	0x2153, 0x2184,</div><div class='add'>+	0x2190, 0x23e7,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x269c,</div><div class='add'>+	0x26a0, 0x26b2,</div><div class='add'>+	0x2701, 0x2704,</div><div class='add'>+	0x2706, 0x2709,</div><div class='add'>+	0x270c, 0x2727,</div><div class='add'>+	0x2729, 0x274b,</div><div class='add'>+	0x274d, 0x274d,</div><div class='add'>+	0x274f, 0x2752,</div><div class='add'>+	0x2756, 0x2756,</div><div class='add'>+	0x2758, 0x275e,</div><div class='add'>+	0x2761, 0x2794,</div><div class='add'>+	0x2798, 0x27af,</div><div class='add'>+	0x27b1, 0x27be,</div><div class='add'>+	0x27c0, 0x27ca,</div><div class='add'>+	0x27d0, 0x27eb,</div><div class='add'>+	0x27f0, 0x2b1a,</div><div class='add'>+	0x2b20, 0x2b23,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2c6c,</div><div class='add'>+	0x2c74, 0x2c77,</div><div class='add'>+	0x2c80, 0x2cea,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d30, 0x2d65,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2e00, 0x2e17,</div><div class='add'>+	0x2e1c, 0x2e1d,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312c,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31b7,</div><div class='add'>+	0x31c0, 0x31cf,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x3243,</div><div class='add'>+	0x3250, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fbb,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa700, 0xa71a,</div><div class='add'>+	0xa720, 0xa721,</div><div class='add'>+	0xa800, 0xa82b,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd800, 0xfa2d,</div><div class='add'>+	0xfa30, 0xfa6a,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe23,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018a,</div><div class='add'>+	0x10300, 0x1031e,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x1083f,</div><div class='add'>+	0x10900, 0x10919,</div><div class='add'>+	0x1091f, 0x1091f,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x12000, 0x1236e,</div><div class='add'>+	0x12400, 0x12462,</div><div class='add'>+	0x12470, 0x12473,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d12a, 0x1d1dd,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d371,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_5_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_5_1': Derived Age 5.1 */</div><div class='add'>+static const OnigCodePoint CR_Age_5_1[] = {</div><div class='add'>+	455,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x0523,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x0603,</div><div class='add'>+	0x0606, 0x061b,</div><div class='add'>+	0x061e, 0x061f,</div><div class='add'>+	0x0621, 0x065e,</div><div class='add'>+	0x0660, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x0901, 0x0939,</div><div class='add'>+	0x093c, 0x094d,</div><div class='add'>+	0x0950, 0x0954,</div><div class='add'>+	0x0958, 0x0972,</div><div class='add'>+	0x097b, 0x097f,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fa,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0af1, 0x0af1,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b71,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c59,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c7f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d28,</div><div class='add'>+	0x0d2a, 0x0d39,</div><div class='add'>+	0x0d3d, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d75,</div><div class='add'>+	0x0d79, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f8b,</div><div class='add'>+	0x0f90, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fd4,</div><div class='add'>+	0x1000, 0x1099,</div><div class='add'>+	0x109e, 0x10c5,</div><div class='add'>+	0x10d0, 0x10fc,</div><div class='add'>+	0x1100, 0x1159,</div><div class='add'>+	0x115f, 0x11a2,</div><div class='add'>+	0x11a8, 0x11f9,</div><div class='add'>+	0x1200, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135f, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1401, 0x1676,</div><div class='add'>+	0x1680, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x1900, 0x191c,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19a9,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19d9,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a1f,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1baa,</div><div class='add'>+	0x1bae, 0x1bb9,</div><div class='add'>+	0x1c00, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7f,</div><div class='add'>+	0x1d00, 0x1de6,</div><div class='add'>+	0x1dfe, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x206a, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x2094,</div><div class='add'>+	0x20a0, 0x20b5,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x214f,</div><div class='add'>+	0x2153, 0x2188,</div><div class='add'>+	0x2190, 0x23e7,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x269d,</div><div class='add'>+	0x26a0, 0x26bc,</div><div class='add'>+	0x26c0, 0x26c3,</div><div class='add'>+	0x2701, 0x2704,</div><div class='add'>+	0x2706, 0x2709,</div><div class='add'>+	0x270c, 0x2727,</div><div class='add'>+	0x2729, 0x274b,</div><div class='add'>+	0x274d, 0x274d,</div><div class='add'>+	0x274f, 0x2752,</div><div class='add'>+	0x2756, 0x2756,</div><div class='add'>+	0x2758, 0x275e,</div><div class='add'>+	0x2761, 0x2794,</div><div class='add'>+	0x2798, 0x27af,</div><div class='add'>+	0x27b1, 0x27be,</div><div class='add'>+	0x27c0, 0x27ca,</div><div class='add'>+	0x27cc, 0x27cc,</div><div class='add'>+	0x27d0, 0x2b4c,</div><div class='add'>+	0x2b50, 0x2b54,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2c6f,</div><div class='add'>+	0x2c71, 0x2c7d,</div><div class='add'>+	0x2c80, 0x2cea,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d30, 0x2d65,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e30,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312d,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31b7,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x3243,</div><div class='add'>+	0x3250, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fc3,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa500, 0xa62b,</div><div class='add'>+	0xa640, 0xa65f,</div><div class='add'>+	0xa662, 0xa673,</div><div class='add'>+	0xa67c, 0xa697,</div><div class='add'>+	0xa700, 0xa78c,</div><div class='add'>+	0xa7fb, 0xa82b,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c4,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa900, 0xa953,</div><div class='add'>+	0xa95f, 0xa95f,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaa5f,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd800, 0xfa2d,</div><div class='add'>+	0xfa30, 0xfa6a,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe26,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018a,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031e,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x1083f,</div><div class='add'>+	0x10900, 0x10919,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x12000, 0x1236e,</div><div class='add'>+	0x12400, 0x12462,</div><div class='add'>+	0x12470, 0x12473,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1dd,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d371,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_5_1 */</div><div class='add'>+</div><div class='add'>+/* 'Age_5_2': Derived Age 5.2 */</div><div class='add'>+static const OnigCodePoint CR_Age_5_2[] = {</div><div class='add'>+	495,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x0525,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x0603,</div><div class='add'>+	0x0606, 0x061b,</div><div class='add'>+	0x061e, 0x061f,</div><div class='add'>+	0x0621, 0x065e,</div><div class='add'>+	0x0660, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0900, 0x0939,</div><div class='add'>+	0x093c, 0x094e,</div><div class='add'>+	0x0950, 0x0955,</div><div class='add'>+	0x0958, 0x0972,</div><div class='add'>+	0x0979, 0x097f,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fb,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0af1, 0x0af1,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b71,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c59,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c7f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d28,</div><div class='add'>+	0x0d2a, 0x0d39,</div><div class='add'>+	0x0d3d, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d75,</div><div class='add'>+	0x0d79, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f8b,</div><div class='add'>+	0x0f90, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fd8,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10d0, 0x10fc,</div><div class='add'>+	0x1100, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135f, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191c,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1baa,</div><div class='add'>+	0x1bae, 0x1bb9,</div><div class='add'>+	0x1c00, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7f,</div><div class='add'>+	0x1cd0, 0x1cf2,</div><div class='add'>+	0x1d00, 0x1de6,</div><div class='add'>+	0x1dfd, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x206a, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x2094,</div><div class='add'>+	0x20a0, 0x20b8,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x2189,</div><div class='add'>+	0x2190, 0x23e8,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x26cd,</div><div class='add'>+	0x26cf, 0x26e1,</div><div class='add'>+	0x26e3, 0x26e3,</div><div class='add'>+	0x26e8, 0x26ff,</div><div class='add'>+	0x2701, 0x2704,</div><div class='add'>+	0x2706, 0x2709,</div><div class='add'>+	0x270c, 0x2727,</div><div class='add'>+	0x2729, 0x274b,</div><div class='add'>+	0x274d, 0x274d,</div><div class='add'>+	0x274f, 0x2752,</div><div class='add'>+	0x2756, 0x275e,</div><div class='add'>+	0x2761, 0x2794,</div><div class='add'>+	0x2798, 0x27af,</div><div class='add'>+	0x27b1, 0x27be,</div><div class='add'>+	0x27c0, 0x27ca,</div><div class='add'>+	0x27cc, 0x27cc,</div><div class='add'>+	0x27d0, 0x2b4c,</div><div class='add'>+	0x2b50, 0x2b59,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf1,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d30, 0x2d65,</div><div class='add'>+	0x2d6f, 0x2d6f,</div><div class='add'>+	0x2d80, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e31,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312d,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31b7,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fcb,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa65f,</div><div class='add'>+	0xa662, 0xa673,</div><div class='add'>+	0xa67c, 0xa697,</div><div class='add'>+	0xa6a0, 0xa6f7,</div><div class='add'>+	0xa700, 0xa78c,</div><div class='add'>+	0xa7fb, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c4,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8fb,</div><div class='add'>+	0xa900, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9df,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaa7b,</div><div class='add'>+	0xaa80, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadf,</div><div class='add'>+	0xabc0, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa2d,</div><div class='add'>+	0xfa30, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbb1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe26,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018a,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031e,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1085f,</div><div class='add'>+	0x10900, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a7f,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b7f,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x11080, 0x110c1,</div><div class='add'>+	0x12000, 0x1236e,</div><div class='add'>+	0x12400, 0x12462,</div><div class='add'>+	0x12470, 0x12473,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1dd,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d371,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f100, 0x1f10a,</div><div class='add'>+	0x1f110, 0x1f12e,</div><div class='add'>+	0x1f131, 0x1f131,</div><div class='add'>+	0x1f13d, 0x1f13d,</div><div class='add'>+	0x1f13f, 0x1f13f,</div><div class='add'>+	0x1f142, 0x1f142,</div><div class='add'>+	0x1f146, 0x1f146,</div><div class='add'>+	0x1f14a, 0x1f14e,</div><div class='add'>+	0x1f157, 0x1f157,</div><div class='add'>+	0x1f15f, 0x1f15f,</div><div class='add'>+	0x1f179, 0x1f179,</div><div class='add'>+	0x1f17b, 0x1f17c,</div><div class='add'>+	0x1f17f, 0x1f17f,</div><div class='add'>+	0x1f18a, 0x1f18d,</div><div class='add'>+	0x1f190, 0x1f190,</div><div class='add'>+	0x1f200, 0x1f200,</div><div class='add'>+	0x1f210, 0x1f231,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_5_2 */</div><div class='add'>+</div><div class='add'>+/* 'Age_6_0': Derived Age 6.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_6_0[] = {</div><div class='add'>+	511,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x0527,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x0603,</div><div class='add'>+	0x0606, 0x061b,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0900, 0x0977,</div><div class='add'>+	0x0979, 0x097f,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fb,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0aef,</div><div class='add'>+	0x0af1, 0x0af1,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c59,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c7f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4e,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d75,</div><div class='add'>+	0x0d79, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edd,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10d0, 0x10fc,</div><div class='add'>+	0x1100, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191c,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1baa,</div><div class='add'>+	0x1bae, 0x1bb9,</div><div class='add'>+	0x1bc0, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7f,</div><div class='add'>+	0x1cd0, 0x1cf2,</div><div class='add'>+	0x1d00, 0x1de6,</div><div class='add'>+	0x1dfc, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x206a, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20b9,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x2189,</div><div class='add'>+	0x2190, 0x23f3,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x26ff,</div><div class='add'>+	0x2701, 0x27ca,</div><div class='add'>+	0x27cc, 0x27cc,</div><div class='add'>+	0x27ce, 0x2b4c,</div><div class='add'>+	0x2b50, 0x2b59,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf1,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d30, 0x2d65,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e31,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312d,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31ba,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fcb,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa673,</div><div class='add'>+	0xa67c, 0xa697,</div><div class='add'>+	0xa6a0, 0xa6f7,</div><div class='add'>+	0xa700, 0xa78e,</div><div class='add'>+	0xa790, 0xa791,</div><div class='add'>+	0xa7a0, 0xa7a9,</div><div class='add'>+	0xa7fa, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c4,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8fb,</div><div class='add'>+	0xa900, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9df,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaa7b,</div><div class='add'>+	0xaa80, 0xaac2,</div><div class='add'>+	0xaadb, 0xaadf,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xabc0, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa2d,</div><div class='add'>+	0xfa30, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe26,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018a,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031e,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1085f,</div><div class='add'>+	0x10900, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a7f,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b7f,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x11080, 0x110c1,</div><div class='add'>+	0x12000, 0x1236e,</div><div class='add'>+	0x12400, 0x12462,</div><div class='add'>+	0x12470, 0x12473,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x1b000, 0x1b001,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1dd,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d371,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0be,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0df,</div><div class='add'>+	0x1f100, 0x1f10a,</div><div class='add'>+	0x1f110, 0x1f12e,</div><div class='add'>+	0x1f130, 0x1f169,</div><div class='add'>+	0x1f170, 0x1f19a,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23a,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f300, 0x1f320,</div><div class='add'>+	0x1f330, 0x1f335,</div><div class='add'>+	0x1f337, 0x1f37c,</div><div class='add'>+	0x1f380, 0x1f393,</div><div class='add'>+	0x1f3a0, 0x1f3c4,</div><div class='add'>+	0x1f3c6, 0x1f3ca,</div><div class='add'>+	0x1f3e0, 0x1f3f0,</div><div class='add'>+	0x1f400, 0x1f43e,</div><div class='add'>+	0x1f440, 0x1f440,</div><div class='add'>+	0x1f442, 0x1f4f7,</div><div class='add'>+	0x1f4f9, 0x1f4fc,</div><div class='add'>+	0x1f500, 0x1f53d,</div><div class='add'>+	0x1f550, 0x1f567,</div><div class='add'>+	0x1f5fb, 0x1f5ff,</div><div class='add'>+	0x1f601, 0x1f610,</div><div class='add'>+	0x1f612, 0x1f614,</div><div class='add'>+	0x1f616, 0x1f616,</div><div class='add'>+	0x1f618, 0x1f618,</div><div class='add'>+	0x1f61a, 0x1f61a,</div><div class='add'>+	0x1f61c, 0x1f61e,</div><div class='add'>+	0x1f620, 0x1f625,</div><div class='add'>+	0x1f628, 0x1f62b,</div><div class='add'>+	0x1f62d, 0x1f62d,</div><div class='add'>+	0x1f630, 0x1f633,</div><div class='add'>+	0x1f635, 0x1f640,</div><div class='add'>+	0x1f645, 0x1f64f,</div><div class='add'>+	0x1f680, 0x1f6c5,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_6_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_6_1': Derived Age 6.1 */</div><div class='add'>+static const OnigCodePoint CR_Age_6_1[] = {</div><div class='add'>+	549,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x0527,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x058f, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x0604,</div><div class='add'>+	0x0606, 0x061b,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x08a0, 0x08a0,</div><div class='add'>+	0x08a2, 0x08ac,</div><div class='add'>+	0x08e4, 0x08fe,</div><div class='add'>+	0x0900, 0x0977,</div><div class='add'>+	0x0979, 0x097f,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fb,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c59,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c7f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4e,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d75,</div><div class='add'>+	0x0d79, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191c,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7f,</div><div class='add'>+	0x1cc0, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cf6,</div><div class='add'>+	0x1d00, 0x1de6,</div><div class='add'>+	0x1dfc, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x206a, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20b9,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x2189,</div><div class='add'>+	0x2190, 0x23f3,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x26ff,</div><div class='add'>+	0x2701, 0x2b4c,</div><div class='add'>+	0x2b50, 0x2b59,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e3b,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312d,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31ba,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fcc,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa697,</div><div class='add'>+	0xa69f, 0xa6f7,</div><div class='add'>+	0xa700, 0xa78e,</div><div class='add'>+	0xa790, 0xa793,</div><div class='add'>+	0xa7a0, 0xa7aa,</div><div class='add'>+	0xa7f8, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c4,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8fb,</div><div class='add'>+	0xa900, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9df,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaa7b,</div><div class='add'>+	0xaa80, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xabc0, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe26,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018a,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031e,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1085f,</div><div class='add'>+	0x10900, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a7f,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b7f,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x11080, 0x110c1,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11143,</div><div class='add'>+	0x11180, 0x111c8,</div><div class='add'>+	0x111d0, 0x111d9,</div><div class='add'>+	0x11680, 0x116b7,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x12000, 0x1236e,</div><div class='add'>+	0x12400, 0x12462,</div><div class='add'>+	0x12470, 0x12473,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16f00, 0x16f44,</div><div class='add'>+	0x16f50, 0x16f7e,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x1b000, 0x1b001,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1dd,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d371,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0be,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0df,</div><div class='add'>+	0x1f100, 0x1f10a,</div><div class='add'>+	0x1f110, 0x1f12e,</div><div class='add'>+	0x1f130, 0x1f16b,</div><div class='add'>+	0x1f170, 0x1f19a,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23a,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f300, 0x1f320,</div><div class='add'>+	0x1f330, 0x1f335,</div><div class='add'>+	0x1f337, 0x1f37c,</div><div class='add'>+	0x1f380, 0x1f393,</div><div class='add'>+	0x1f3a0, 0x1f3c4,</div><div class='add'>+	0x1f3c6, 0x1f3ca,</div><div class='add'>+	0x1f3e0, 0x1f3f0,</div><div class='add'>+	0x1f400, 0x1f43e,</div><div class='add'>+	0x1f440, 0x1f440,</div><div class='add'>+	0x1f442, 0x1f4f7,</div><div class='add'>+	0x1f4f9, 0x1f4fc,</div><div class='add'>+	0x1f500, 0x1f53d,</div><div class='add'>+	0x1f540, 0x1f543,</div><div class='add'>+	0x1f550, 0x1f567,</div><div class='add'>+	0x1f5fb, 0x1f640,</div><div class='add'>+	0x1f645, 0x1f64f,</div><div class='add'>+	0x1f680, 0x1f6c5,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_6_1 */</div><div class='add'>+</div><div class='add'>+/* 'Age_6_2': Derived Age 6.2 */</div><div class='add'>+static const OnigCodePoint CR_Age_6_2[] = {</div><div class='add'>+	549,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x0527,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x058f, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x0604,</div><div class='add'>+	0x0606, 0x061b,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x08a0, 0x08a0,</div><div class='add'>+	0x08a2, 0x08ac,</div><div class='add'>+	0x08e4, 0x08fe,</div><div class='add'>+	0x0900, 0x0977,</div><div class='add'>+	0x0979, 0x097f,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fb,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c59,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c7f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4e,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d75,</div><div class='add'>+	0x0d79, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191c,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7f,</div><div class='add'>+	0x1cc0, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cf6,</div><div class='add'>+	0x1d00, 0x1de6,</div><div class='add'>+	0x1dfc, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x206a, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20ba,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x2189,</div><div class='add'>+	0x2190, 0x23f3,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x26ff,</div><div class='add'>+	0x2701, 0x2b4c,</div><div class='add'>+	0x2b50, 0x2b59,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e3b,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312d,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31ba,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fcc,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa697,</div><div class='add'>+	0xa69f, 0xa6f7,</div><div class='add'>+	0xa700, 0xa78e,</div><div class='add'>+	0xa790, 0xa793,</div><div class='add'>+	0xa7a0, 0xa7aa,</div><div class='add'>+	0xa7f8, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c4,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8fb,</div><div class='add'>+	0xa900, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9df,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaa7b,</div><div class='add'>+	0xaa80, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xabc0, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe26,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018a,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031e,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1085f,</div><div class='add'>+	0x10900, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a7f,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b7f,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x11080, 0x110c1,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11143,</div><div class='add'>+	0x11180, 0x111c8,</div><div class='add'>+	0x111d0, 0x111d9,</div><div class='add'>+	0x11680, 0x116b7,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x12000, 0x1236e,</div><div class='add'>+	0x12400, 0x12462,</div><div class='add'>+	0x12470, 0x12473,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16f00, 0x16f44,</div><div class='add'>+	0x16f50, 0x16f7e,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x1b000, 0x1b001,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1dd,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d371,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0be,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0df,</div><div class='add'>+	0x1f100, 0x1f10a,</div><div class='add'>+	0x1f110, 0x1f12e,</div><div class='add'>+	0x1f130, 0x1f16b,</div><div class='add'>+	0x1f170, 0x1f19a,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23a,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f300, 0x1f320,</div><div class='add'>+	0x1f330, 0x1f335,</div><div class='add'>+	0x1f337, 0x1f37c,</div><div class='add'>+	0x1f380, 0x1f393,</div><div class='add'>+	0x1f3a0, 0x1f3c4,</div><div class='add'>+	0x1f3c6, 0x1f3ca,</div><div class='add'>+	0x1f3e0, 0x1f3f0,</div><div class='add'>+	0x1f400, 0x1f43e,</div><div class='add'>+	0x1f440, 0x1f440,</div><div class='add'>+	0x1f442, 0x1f4f7,</div><div class='add'>+	0x1f4f9, 0x1f4fc,</div><div class='add'>+	0x1f500, 0x1f53d,</div><div class='add'>+	0x1f540, 0x1f543,</div><div class='add'>+	0x1f550, 0x1f567,</div><div class='add'>+	0x1f5fb, 0x1f640,</div><div class='add'>+	0x1f645, 0x1f64f,</div><div class='add'>+	0x1f680, 0x1f6c5,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_6_2 */</div><div class='add'>+</div><div class='add'>+/* 'Age_6_3': Derived Age 6.3 */</div><div class='add'>+static const OnigCodePoint CR_Age_6_3[] = {</div><div class='add'>+	549,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037e,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x0527,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x058f, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x0604,</div><div class='add'>+	0x0606, 0x061c,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x08a0, 0x08a0,</div><div class='add'>+	0x08a2, 0x08ac,</div><div class='add'>+	0x08e4, 0x08fe,</div><div class='add'>+	0x0900, 0x0977,</div><div class='add'>+	0x0979, 0x097f,</div><div class='add'>+	0x0981, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fb,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c33,</div><div class='add'>+	0x0c35, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c59,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c7f,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4e,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d75,</div><div class='add'>+	0x0d79, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f0,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191c,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7f,</div><div class='add'>+	0x1cc0, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cf6,</div><div class='add'>+	0x1d00, 0x1de6,</div><div class='add'>+	0x1dfc, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20ba,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x2189,</div><div class='add'>+	0x2190, 0x23f3,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x26ff,</div><div class='add'>+	0x2701, 0x2b4c,</div><div class='add'>+	0x2b50, 0x2b59,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e3b,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312d,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31ba,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fcc,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa697,</div><div class='add'>+	0xa69f, 0xa6f7,</div><div class='add'>+	0xa700, 0xa78e,</div><div class='add'>+	0xa790, 0xa793,</div><div class='add'>+	0xa7a0, 0xa7aa,</div><div class='add'>+	0xa7f8, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c4,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8fb,</div><div class='add'>+	0xa900, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9df,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaa7b,</div><div class='add'>+	0xaa80, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xabc0, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe26,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018a,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x10300, 0x1031e,</div><div class='add'>+	0x10320, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1085f,</div><div class='add'>+	0x10900, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a7f,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b7f,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x11080, 0x110c1,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11143,</div><div class='add'>+	0x11180, 0x111c8,</div><div class='add'>+	0x111d0, 0x111d9,</div><div class='add'>+	0x11680, 0x116b7,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x12000, 0x1236e,</div><div class='add'>+	0x12400, 0x12462,</div><div class='add'>+	0x12470, 0x12473,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16f00, 0x16f44,</div><div class='add'>+	0x16f50, 0x16f7e,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x1b000, 0x1b001,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1dd,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d371,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0be,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0df,</div><div class='add'>+	0x1f100, 0x1f10a,</div><div class='add'>+	0x1f110, 0x1f12e,</div><div class='add'>+	0x1f130, 0x1f16b,</div><div class='add'>+	0x1f170, 0x1f19a,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23a,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f300, 0x1f320,</div><div class='add'>+	0x1f330, 0x1f335,</div><div class='add'>+	0x1f337, 0x1f37c,</div><div class='add'>+	0x1f380, 0x1f393,</div><div class='add'>+	0x1f3a0, 0x1f3c4,</div><div class='add'>+	0x1f3c6, 0x1f3ca,</div><div class='add'>+	0x1f3e0, 0x1f3f0,</div><div class='add'>+	0x1f400, 0x1f43e,</div><div class='add'>+	0x1f440, 0x1f440,</div><div class='add'>+	0x1f442, 0x1f4f7,</div><div class='add'>+	0x1f4f9, 0x1f4fc,</div><div class='add'>+	0x1f500, 0x1f53d,</div><div class='add'>+	0x1f540, 0x1f543,</div><div class='add'>+	0x1f550, 0x1f567,</div><div class='add'>+	0x1f5fb, 0x1f640,</div><div class='add'>+	0x1f645, 0x1f64f,</div><div class='add'>+	0x1f680, 0x1f6c5,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_6_3 */</div><div class='add'>+</div><div class='add'>+/* 'Age_7_0': Derived Age 7.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_7_0[] = {</div><div class='add'>+	610,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x061c,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x08a0, 0x08b2,</div><div class='add'>+	0x08e4, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fb,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c59,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c7f,</div><div class='add'>+	0x0c81, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d01, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4e,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d60, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d75,</div><div class='add'>+	0x0d79, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f4,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1abe,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7f,</div><div class='add'>+	0x1cc0, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cf6,</div><div class='add'>+	0x1cf8, 0x1cf9,</div><div class='add'>+	0x1d00, 0x1df5,</div><div class='add'>+	0x1dfc, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20bd,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x2189,</div><div class='add'>+	0x2190, 0x23fa,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b98, 0x2bb9,</div><div class='add'>+	0x2bbd, 0x2bc8,</div><div class='add'>+	0x2bca, 0x2bd1,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e42,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312d,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31ba,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fcc,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa69d,</div><div class='add'>+	0xa69f, 0xa6f7,</div><div class='add'>+	0xa700, 0xa78e,</div><div class='add'>+	0xa790, 0xa7ad,</div><div class='add'>+	0xa7b0, 0xa7b1,</div><div class='add'>+	0xa7f7, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c4,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8fb,</div><div class='add'>+	0xa900, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab5f,</div><div class='add'>+	0xab64, 0xab65,</div><div class='add'>+	0xabc0, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe2d,</div><div class='add'>+	0xfe30, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018c,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x10900, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109be, 0x109bf,</div><div class='add'>+	0x10a00, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x1107f, 0x110c1,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11143,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111c8,</div><div class='add'>+	0x111cd, 0x111cd,</div><div class='add'>+	0x111d0, 0x111da,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1123d,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11301, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133c, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115c9,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11680, 0x116b7,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x118ff,</div><div class='add'>+	0x11ac0, 0x11af8,</div><div class='add'>+	0x12000, 0x12398,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16f00, 0x16f44,</div><div class='add'>+	0x16f50, 0x16f7e,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x1b000, 0x1b001,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1dd,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d371,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1d7ff,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f10c,</div><div class='add'>+	0x1f110, 0x1f12e,</div><div class='add'>+	0x1f130, 0x1f16b,</div><div class='add'>+	0x1f170, 0x1f19a,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23a,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f300, 0x1f32c,</div><div class='add'>+	0x1f330, 0x1f37d,</div><div class='add'>+	0x1f380, 0x1f3ce,</div><div class='add'>+	0x1f3d4, 0x1f3f7,</div><div class='add'>+	0x1f400, 0x1f4fe,</div><div class='add'>+	0x1f500, 0x1f54a,</div><div class='add'>+	0x1f550, 0x1f579,</div><div class='add'>+	0x1f57b, 0x1f5a3,</div><div class='add'>+	0x1f5a5, 0x1f642,</div><div class='add'>+	0x1f645, 0x1f6cf,</div><div class='add'>+	0x1f6e0, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6f3,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1f780, 0x1f7d4,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_7_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_8_0': Derived Age 8.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_8_0[] = {</div><div class='add'>+	623,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x061c,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x08a0, 0x08b4,</div><div class='add'>+	0x08e3, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fb,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0af9,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c7f,</div><div class='add'>+	0x0c81, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d01, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4e,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d5f, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d75,</div><div class='add'>+	0x0d79, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1abe,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c7f,</div><div class='add'>+	0x1cc0, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cf6,</div><div class='add'>+	0x1cf8, 0x1cf9,</div><div class='add'>+	0x1d00, 0x1df5,</div><div class='add'>+	0x1dfc, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20be,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x23fa,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b98, 0x2bb9,</div><div class='add'>+	0x2bbd, 0x2bc8,</div><div class='add'>+	0x2bca, 0x2bd1,</div><div class='add'>+	0x2bec, 0x2bef,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e42,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312d,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31ba,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fd5,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7ad,</div><div class='add'>+	0xa7b0, 0xa7b7,</div><div class='add'>+	0xa7f7, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c4,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8fd,</div><div class='add'>+	0xa900, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab65,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018c,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10cff,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x1107f, 0x110c1,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11143,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111cd,</div><div class='add'>+	0x111d0, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1123d,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133c, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11680, 0x116b7,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x11719,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x1173f,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x118ff,</div><div class='add'>+	0x11ac0, 0x11af8,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16f00, 0x16f44,</div><div class='add'>+	0x16f50, 0x16f7e,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x1b000, 0x1b001,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1e8,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d371,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f10c,</div><div class='add'>+	0x1f110, 0x1f12e,</div><div class='add'>+	0x1f130, 0x1f16b,</div><div class='add'>+	0x1f170, 0x1f19a,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23a,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f300, 0x1f579,</div><div class='add'>+	0x1f57b, 0x1f5a3,</div><div class='add'>+	0x1f5a5, 0x1f6d0,</div><div class='add'>+	0x1f6e0, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6f3,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1f780, 0x1f7d4,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f910, 0x1f918,</div><div class='add'>+	0x1f980, 0x1f984,</div><div class='add'>+	0x1f9c0, 0x1f9c0,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_8_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_9_0': Derived Age 9.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_9_0[] = {</div><div class='add'>+	648,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x061c,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x08a0, 0x08b4,</div><div class='add'>+	0x08b6, 0x08bd,</div><div class='add'>+	0x08d4, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fb,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0af9,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d01, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d3a,</div><div class='add'>+	0x0d3d, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1abe,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1cc0, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cf6,</div><div class='add'>+	0x1cf8, 0x1cf9,</div><div class='add'>+	0x1d00, 0x1df5,</div><div class='add'>+	0x1dfb, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20be,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x23fe,</div><div class='add'>+	0x2400, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b98, 0x2bb9,</div><div class='add'>+	0x2bbd, 0x2bc8,</div><div class='add'>+	0x2bca, 0x2bd1,</div><div class='add'>+	0x2bec, 0x2bef,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e44,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312d,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31ba,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fd5,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7ae,</div><div class='add'>+	0xa7b0, 0xa7b7,</div><div class='add'>+	0xa7f7, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8fd,</div><div class='add'>+	0xa900, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab65,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x10330, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10cff,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x1107f, 0x110c1,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11143,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111cd,</div><div class='add'>+	0x111d0, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1123e,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133c, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x11459,</div><div class='add'>+	0x1145b, 0x1145b,</div><div class='add'>+	0x1145d, 0x1145d,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116b7,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x11719,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x1173f,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x118ff,</div><div class='add'>+	0x11ac0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16f00, 0x16f44,</div><div class='add'>+	0x16f50, 0x16f7e,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe0,</div><div class='add'>+	0x17000, 0x187ec,</div><div class='add'>+	0x18800, 0x18af2,</div><div class='add'>+	0x1b000, 0x1b001,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1e8,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d371,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94a,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f10c,</div><div class='add'>+	0x1f110, 0x1f12e,</div><div class='add'>+	0x1f130, 0x1f16b,</div><div class='add'>+	0x1f170, 0x1f1ac,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f300, 0x1f6d2,</div><div class='add'>+	0x1f6e0, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6f6,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1f780, 0x1f7d4,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f910, 0x1f91e,</div><div class='add'>+	0x1f920, 0x1f927,</div><div class='add'>+	0x1f930, 0x1f930,</div><div class='add'>+	0x1f933, 0x1f93e,</div><div class='add'>+	0x1f940, 0x1f94b,</div><div class='add'>+	0x1f950, 0x1f95e,</div><div class='add'>+	0x1f980, 0x1f991,</div><div class='add'>+	0x1f9c0, 0x1f9c0,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_9_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_10_0': Derived Age 10.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_10_0[] = {</div><div class='add'>+	659,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x055f,</div><div class='add'>+	0x0561, 0x0587,</div><div class='add'>+	0x0589, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05f0, 0x05f4,</div><div class='add'>+	0x0600, 0x061c,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x0800, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x08a0, 0x08b4,</div><div class='add'>+	0x08b6, 0x08bd,</div><div class='add'>+	0x08d4, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fd,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c03,</div><div class='add'>+	0x0c05, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c83,</div><div class='add'>+	0x0c85, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d00, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1877,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1abe,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1cc0, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cf9,</div><div class='add'>+	0x1d00, 0x1df9,</div><div class='add'>+	0x1dfb, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20bf,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b98, 0x2bb9,</div><div class='add'>+	0x2bbd, 0x2bc8,</div><div class='add'>+	0x2bca, 0x2bd2,</div><div class='add'>+	0x2bec, 0x2bef,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e49,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312e,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31ba,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fea,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7ae,</div><div class='add'>+	0xa7b0, 0xa7b7,</div><div class='add'>+	0xa7f7, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa8fd,</div><div class='add'>+	0xa900, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab65,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a33,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a47,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10cff,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x1107f, 0x110c1,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11143,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111cd,</div><div class='add'>+	0x111d0, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1123e,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133c, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x11459,</div><div class='add'>+	0x1145b, 0x1145b,</div><div class='add'>+	0x1145d, 0x1145d,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116b7,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x11719,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x1173f,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x118ff,</div><div class='add'>+	0x11a00, 0x11a47,</div><div class='add'>+	0x11a50, 0x11a83,</div><div class='add'>+	0x11a86, 0x11a9c,</div><div class='add'>+	0x11a9e, 0x11aa2,</div><div class='add'>+	0x11ac0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16f00, 0x16f44,</div><div class='add'>+	0x16f50, 0x16f7e,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x17000, 0x187ec,</div><div class='add'>+	0x18800, 0x18af2,</div><div class='add'>+	0x1b000, 0x1b11e,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1e8,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d371,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94a,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f10c,</div><div class='add'>+	0x1f110, 0x1f12e,</div><div class='add'>+	0x1f130, 0x1f16b,</div><div class='add'>+	0x1f170, 0x1f1ac,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d4,</div><div class='add'>+	0x1f6e0, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6f8,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1f780, 0x1f7d4,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f900, 0x1f90b,</div><div class='add'>+	0x1f910, 0x1f93e,</div><div class='add'>+	0x1f940, 0x1f94c,</div><div class='add'>+	0x1f950, 0x1f96b,</div><div class='add'>+	0x1f980, 0x1f997,</div><div class='add'>+	0x1f9c0, 0x1f9c0,</div><div class='add'>+	0x1f9d0, 0x1f9e6,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_10_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_11_0': Derived Age 11.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_11_0[] = {</div><div class='add'>+	668,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f4,</div><div class='add'>+	0x0600, 0x061c,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x07fd, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x08a0, 0x08b4,</div><div class='add'>+	0x08b6, 0x08bd,</div><div class='add'>+	0x08d3, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a76,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c78, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d00, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e87, 0x0e88,</div><div class='add'>+	0x0e8a, 0x0e8a,</div><div class='add'>+	0x0e8d, 0x0e8d,</div><div class='add'>+	0x0e94, 0x0e97,</div><div class='add'>+	0x0e99, 0x0e9f,</div><div class='add'>+	0x0ea1, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ea7,</div><div class='add'>+	0x0eaa, 0x0eab,</div><div class='add'>+	0x0ead, 0x0eb9,</div><div class='add'>+	0x0ebb, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1abe,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cf9,</div><div class='add'>+	0x1d00, 0x1df9,</div><div class='add'>+	0x1dfb, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20bf,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b98, 0x2bc8,</div><div class='add'>+	0x2bca, 0x2bfe,</div><div class='add'>+	0x2c00, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e4e,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31ba,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fef,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7b9,</div><div class='add'>+	0xa7f7, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab65,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a48,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10f00, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f59,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x1107f, 0x110c1,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11146,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111cd,</div><div class='add'>+	0x111d0, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1123e,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x11459,</div><div class='add'>+	0x1145b, 0x1145b,</div><div class='add'>+	0x1145d, 0x1145e,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116b7,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x1173f,</div><div class='add'>+	0x11800, 0x1183b,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x118ff,</div><div class='add'>+	0x11a00, 0x11a47,</div><div class='add'>+	0x11a50, 0x11a83,</div><div class='add'>+	0x11a86, 0x11aa2,</div><div class='add'>+	0x11ac0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef8,</div><div class='add'>+	0x12000, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e9a,</div><div class='add'>+	0x16f00, 0x16f44,</div><div class='add'>+	0x16f50, 0x16f7e,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe1,</div><div class='add'>+	0x17000, 0x187f1,</div><div class='add'>+	0x18800, 0x18af2,</div><div class='add'>+	0x1b000, 0x1b11e,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1e8,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94a,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ec71, 0x1ecb4,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f10c,</div><div class='add'>+	0x1f110, 0x1f16b,</div><div class='add'>+	0x1f170, 0x1f1ac,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d4,</div><div class='add'>+	0x1f6e0, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6f9,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1f780, 0x1f7d8,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f900, 0x1f90b,</div><div class='add'>+	0x1f910, 0x1f93e,</div><div class='add'>+	0x1f940, 0x1f970,</div><div class='add'>+	0x1f973, 0x1f976,</div><div class='add'>+	0x1f97a, 0x1f97a,</div><div class='add'>+	0x1f97c, 0x1f9a2,</div><div class='add'>+	0x1f9b0, 0x1f9b9,</div><div class='add'>+	0x1f9c0, 0x1f9c2,</div><div class='add'>+	0x1f9d0, 0x1f9ff,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_11_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_12_0': Derived Age 12.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_12_0[] = {</div><div class='add'>+	677,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f4,</div><div class='add'>+	0x0600, 0x061c,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x07fd, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x08a0, 0x08b4,</div><div class='add'>+	0x08b6, 0x08bd,</div><div class='add'>+	0x08d3, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a76,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c77, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d00, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1abe,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1df9,</div><div class='add'>+	0x1dfb, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20bf,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b98, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e4f,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31ba,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x32fe,</div><div class='add'>+	0x3300, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fef,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7bf,</div><div class='add'>+	0xa7c2, 0xa7c6,</div><div class='add'>+	0xa7f7, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab67,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a48,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10f00, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f59,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x1107f, 0x110c1,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11146,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111cd,</div><div class='add'>+	0x111d0, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1123e,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x11459,</div><div class='add'>+	0x1145b, 0x1145b,</div><div class='add'>+	0x1145d, 0x1145f,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116b8,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x1173f,</div><div class='add'>+	0x11800, 0x1183b,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x118ff,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a47,</div><div class='add'>+	0x11a50, 0x11aa2,</div><div class='add'>+	0x11ac0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef8,</div><div class='add'>+	0x11fc0, 0x11ff1,</div><div class='add'>+	0x11fff, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x13430, 0x13438,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e9a,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe3,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18af2,</div><div class='add'>+	0x1b000, 0x1b11e,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1e8,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14f,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ec71, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed3d,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f10c,</div><div class='add'>+	0x1f110, 0x1f16c,</div><div class='add'>+	0x1f170, 0x1f1ac,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d5,</div><div class='add'>+	0x1f6e0, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fa,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1f780, 0x1f7d8,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f900, 0x1f90b,</div><div class='add'>+	0x1f90d, 0x1f971,</div><div class='add'>+	0x1f973, 0x1f976,</div><div class='add'>+	0x1f97a, 0x1f9a2,</div><div class='add'>+	0x1f9a5, 0x1f9aa,</div><div class='add'>+	0x1f9ae, 0x1f9ca,</div><div class='add'>+	0x1f9cd, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa73,</div><div class='add'>+	0x1fa78, 0x1fa7a,</div><div class='add'>+	0x1fa80, 0x1fa82,</div><div class='add'>+	0x1fa90, 0x1fa95,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_12_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_12_1': Derived Age 12.1 */</div><div class='add'>+static const OnigCodePoint CR_Age_12_1[] = {</div><div class='add'>+	676,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f4,</div><div class='add'>+	0x0600, 0x061c,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x07fd, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x08a0, 0x08b4,</div><div class='add'>+	0x08b6, 0x08bd,</div><div class='add'>+	0x08d3, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a76,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b56, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c77, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d00, 0x0d03,</div><div class='add'>+	0x0d05, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1abe,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1df9,</div><div class='add'>+	0x1dfb, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20bf,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b98, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e4f,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31ba,</div><div class='add'>+	0x31c0, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x4db5,</div><div class='add'>+	0x4dc0, 0x9fef,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7bf,</div><div class='add'>+	0xa7c2, 0xa7c6,</div><div class='add'>+	0xa7f7, 0xa82b,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab67,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019b,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a48,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10f00, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f59,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x1107f, 0x110c1,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11146,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111cd,</div><div class='add'>+	0x111d0, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1123e,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x11459,</div><div class='add'>+	0x1145b, 0x1145b,</div><div class='add'>+	0x1145d, 0x1145f,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116b8,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x1173f,</div><div class='add'>+	0x11800, 0x1183b,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x118ff,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a47,</div><div class='add'>+	0x11a50, 0x11aa2,</div><div class='add'>+	0x11ac0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef8,</div><div class='add'>+	0x11fc0, 0x11ff1,</div><div class='add'>+	0x11fff, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x13430, 0x13438,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e9a,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe3,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18af2,</div><div class='add'>+	0x1b000, 0x1b11e,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1e8,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14f,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ec71, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed3d,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f10c,</div><div class='add'>+	0x1f110, 0x1f16c,</div><div class='add'>+	0x1f170, 0x1f1ac,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d5,</div><div class='add'>+	0x1f6e0, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fa,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1f780, 0x1f7d8,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f900, 0x1f90b,</div><div class='add'>+	0x1f90d, 0x1f971,</div><div class='add'>+	0x1f973, 0x1f976,</div><div class='add'>+	0x1f97a, 0x1f9a2,</div><div class='add'>+	0x1f9a5, 0x1f9aa,</div><div class='add'>+	0x1f9ae, 0x1f9ca,</div><div class='add'>+	0x1f9cd, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa73,</div><div class='add'>+	0x1fa78, 0x1fa7a,</div><div class='add'>+	0x1fa80, 0x1fa82,</div><div class='add'>+	0x1fa90, 0x1fa95,</div><div class='add'>+	0x1fffe, 0x2a6d6,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x2ffff,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_12_1 */</div><div class='add'>+</div><div class='add'>+/* 'Age_13_0': Derived Age 13.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_13_0[] = {</div><div class='add'>+	686,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f4,</div><div class='add'>+	0x0600, 0x061c,</div><div class='add'>+	0x061e, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x07fd, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x08a0, 0x08b4,</div><div class='add'>+	0x08b6, 0x08c7,</div><div class='add'>+	0x08d3, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a76,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3d, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c77, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cde, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x170c,</div><div class='add'>+	0x170e, 0x1714,</div><div class='add'>+	0x1720, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x180e,</div><div class='add'>+	0x1810, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1ac0,</div><div class='add'>+	0x1b00, 0x1b4b,</div><div class='add'>+	0x1b50, 0x1b7c,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1df9,</div><div class='add'>+	0x1dfb, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20bf,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b97, 0x2c2e,</div><div class='add'>+	0x2c30, 0x2c5e,</div><div class='add'>+	0x2c60, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e52,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0x9ffc,</div><div class='add'>+	0xa000, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7bf,</div><div class='add'>+	0xa7c2, 0xa7ca,</div><div class='add'>+	0xa7f5, 0xa82c,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab6b,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc1,</div><div class='add'>+	0xfbd3, 0xfd3f,</div><div class='add'>+	0xfd50, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdd0, 0xfdfd,</div><div class='add'>+	0xfe00, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019c,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1056f,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a48,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10ead,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10f00, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f59,</div><div class='add'>+	0x10fb0, 0x10fcb,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x1106f,</div><div class='add'>+	0x1107f, 0x110c1,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11147,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1123e,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x1145b,</div><div class='add'>+	0x1145d, 0x11461,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116b8,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x1173f,</div><div class='add'>+	0x11800, 0x1183b,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x11946,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a47,</div><div class='add'>+	0x11a50, 0x11aa2,</div><div class='add'>+	0x11ac0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef8,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x11fc0, 0x11ff1,</div><div class='add'>+	0x11fff, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x13430, 0x13438,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16a6f,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e9a,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe4,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1b000, 0x1b11e,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1e8,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14f,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ec71, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed3d,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f1ad,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d7,</div><div class='add'>+	0x1f6e0, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fc,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1f780, 0x1f7d8,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f8b0, 0x1f8b1,</div><div class='add'>+	0x1f900, 0x1f978,</div><div class='add'>+	0x1f97a, 0x1f9cb,</div><div class='add'>+	0x1f9cd, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa74,</div><div class='add'>+	0x1fa78, 0x1fa7a,</div><div class='add'>+	0x1fa80, 0x1fa86,</div><div class='add'>+	0x1fa90, 0x1faa8,</div><div class='add'>+	0x1fab0, 0x1fab6,</div><div class='add'>+	0x1fac0, 0x1fac2,</div><div class='add'>+	0x1fad0, 0x1fad6,</div><div class='add'>+	0x1fb00, 0x1fb92,</div><div class='add'>+	0x1fb94, 0x1fbca,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0x1fffe, 0x2a6dd,</div><div class='add'>+	0x2a700, 0x2b734,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x3134a,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_13_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_14_0': Derived Age 14.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_14_0[] = {</div><div class='add'>+	706,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f4,</div><div class='add'>+	0x0600, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x07fd, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x088e,</div><div class='add'>+	0x0890, 0x0891,</div><div class='add'>+	0x0898, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a76,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3c, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c77, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf2,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ecd,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x1715,</div><div class='add'>+	0x171f, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b4c,</div><div class='add'>+	0x1b50, 0x1b7e,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20c0,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b97, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e5d,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa82c,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab6b,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc2,</div><div class='add'>+	0xfbd3, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdcf, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019c,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a48,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10ead,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10f00, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f59,</div><div class='add'>+	0x10f70, 0x10f89,</div><div class='add'>+	0x10fb0, 0x10fcb,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x11075,</div><div class='add'>+	0x1107f, 0x110c2,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11147,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x1123e,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x1145b,</div><div class='add'>+	0x1145d, 0x11461,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116b9,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x11746,</div><div class='add'>+	0x11800, 0x1183b,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x11946,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a47,</div><div class='add'>+	0x11a50, 0x11aa2,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef8,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x11fc0, 0x11ff1,</div><div class='add'>+	0x11fff, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff2,</div><div class='add'>+	0x13000, 0x1342e,</div><div class='add'>+	0x13430, 0x13438,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16abe,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e9a,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe4,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1cf50, 0x1cfc3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1ea,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14f,</div><div class='add'>+	0x1e290, 0x1e2ae,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ec71, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed3d,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f1ad,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d7,</div><div class='add'>+	0x1f6dd, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fc,</div><div class='add'>+	0x1f700, 0x1f773,</div><div class='add'>+	0x1f780, 0x1f7d8,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f7f0, 0x1f7f0,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f8b0, 0x1f8b1,</div><div class='add'>+	0x1f900, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa74,</div><div class='add'>+	0x1fa78, 0x1fa7c,</div><div class='add'>+	0x1fa80, 0x1fa86,</div><div class='add'>+	0x1fa90, 0x1faac,</div><div class='add'>+	0x1fab0, 0x1faba,</div><div class='add'>+	0x1fac0, 0x1fac5,</div><div class='add'>+	0x1fad0, 0x1fad9,</div><div class='add'>+	0x1fae0, 0x1fae7,</div><div class='add'>+	0x1faf0, 0x1faf6,</div><div class='add'>+	0x1fb00, 0x1fb92,</div><div class='add'>+	0x1fb94, 0x1fbca,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0x1fffe, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b738,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x3134a,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_14_0 */</div><div class='add'>+</div><div class='add'>+/* 'Age_15_0': Derived Age 15.0 */</div><div class='add'>+static const OnigCodePoint CR_Age_15_0[] = {</div><div class='add'>+	715,</div><div class='add'>+	0x0000, 0x0377,</div><div class='add'>+	0x037a, 0x037f,</div><div class='add'>+	0x0384, 0x038a,</div><div class='add'>+	0x038c, 0x038c,</div><div class='add'>+	0x038e, 0x03a1,</div><div class='add'>+	0x03a3, 0x052f,</div><div class='add'>+	0x0531, 0x0556,</div><div class='add'>+	0x0559, 0x058a,</div><div class='add'>+	0x058d, 0x058f,</div><div class='add'>+	0x0591, 0x05c7,</div><div class='add'>+	0x05d0, 0x05ea,</div><div class='add'>+	0x05ef, 0x05f4,</div><div class='add'>+	0x0600, 0x070d,</div><div class='add'>+	0x070f, 0x074a,</div><div class='add'>+	0x074d, 0x07b1,</div><div class='add'>+	0x07c0, 0x07fa,</div><div class='add'>+	0x07fd, 0x082d,</div><div class='add'>+	0x0830, 0x083e,</div><div class='add'>+	0x0840, 0x085b,</div><div class='add'>+	0x085e, 0x085e,</div><div class='add'>+	0x0860, 0x086a,</div><div class='add'>+	0x0870, 0x088e,</div><div class='add'>+	0x0890, 0x0891,</div><div class='add'>+	0x0898, 0x0983,</div><div class='add'>+	0x0985, 0x098c,</div><div class='add'>+	0x098f, 0x0990,</div><div class='add'>+	0x0993, 0x09a8,</div><div class='add'>+	0x09aa, 0x09b0,</div><div class='add'>+	0x09b2, 0x09b2,</div><div class='add'>+	0x09b6, 0x09b9,</div><div class='add'>+	0x09bc, 0x09c4,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09ce,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09dc, 0x09dd,</div><div class='add'>+	0x09df, 0x09e3,</div><div class='add'>+	0x09e6, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a03,</div><div class='add'>+	0x0a05, 0x0a0a,</div><div class='add'>+	0x0a0f, 0x0a10,</div><div class='add'>+	0x0a13, 0x0a28,</div><div class='add'>+	0x0a2a, 0x0a30,</div><div class='add'>+	0x0a32, 0x0a33,</div><div class='add'>+	0x0a35, 0x0a36,</div><div class='add'>+	0x0a38, 0x0a39,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a3e, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a59, 0x0a5c,</div><div class='add'>+	0x0a5e, 0x0a5e,</div><div class='add'>+	0x0a66, 0x0a76,</div><div class='add'>+	0x0a81, 0x0a83,</div><div class='add'>+	0x0a85, 0x0a8d,</div><div class='add'>+	0x0a8f, 0x0a91,</div><div class='add'>+	0x0a93, 0x0aa8,</div><div class='add'>+	0x0aaa, 0x0ab0,</div><div class='add'>+	0x0ab2, 0x0ab3,</div><div class='add'>+	0x0ab5, 0x0ab9,</div><div class='add'>+	0x0abc, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acd,</div><div class='add'>+	0x0ad0, 0x0ad0,</div><div class='add'>+	0x0ae0, 0x0ae3,</div><div class='add'>+	0x0ae6, 0x0af1,</div><div class='add'>+	0x0af9, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b03,</div><div class='add'>+	0x0b05, 0x0b0c,</div><div class='add'>+	0x0b0f, 0x0b10,</div><div class='add'>+	0x0b13, 0x0b28,</div><div class='add'>+	0x0b2a, 0x0b30,</div><div class='add'>+	0x0b32, 0x0b33,</div><div class='add'>+	0x0b35, 0x0b39,</div><div class='add'>+	0x0b3c, 0x0b44,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b5c, 0x0b5d,</div><div class='add'>+	0x0b5f, 0x0b63,</div><div class='add'>+	0x0b66, 0x0b77,</div><div class='add'>+	0x0b82, 0x0b83,</div><div class='add'>+	0x0b85, 0x0b8a,</div><div class='add'>+	0x0b8e, 0x0b90,</div><div class='add'>+	0x0b92, 0x0b95,</div><div class='add'>+	0x0b99, 0x0b9a,</div><div class='add'>+	0x0b9c, 0x0b9c,</div><div class='add'>+	0x0b9e, 0x0b9f,</div><div class='add'>+	0x0ba3, 0x0ba4,</div><div class='add'>+	0x0ba8, 0x0baa,</div><div class='add'>+	0x0bae, 0x0bb9,</div><div class='add'>+	0x0bbe, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcd,</div><div class='add'>+	0x0bd0, 0x0bd0,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0be6, 0x0bfa,</div><div class='add'>+	0x0c00, 0x0c0c,</div><div class='add'>+	0x0c0e, 0x0c10,</div><div class='add'>+	0x0c12, 0x0c28,</div><div class='add'>+	0x0c2a, 0x0c39,</div><div class='add'>+	0x0c3c, 0x0c44,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c58, 0x0c5a,</div><div class='add'>+	0x0c5d, 0x0c5d,</div><div class='add'>+	0x0c60, 0x0c63,</div><div class='add'>+	0x0c66, 0x0c6f,</div><div class='add'>+	0x0c77, 0x0c8c,</div><div class='add'>+	0x0c8e, 0x0c90,</div><div class='add'>+	0x0c92, 0x0ca8,</div><div class='add'>+	0x0caa, 0x0cb3,</div><div class='add'>+	0x0cb5, 0x0cb9,</div><div class='add'>+	0x0cbc, 0x0cc4,</div><div class='add'>+	0x0cc6, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0cdd, 0x0cde,</div><div class='add'>+	0x0ce0, 0x0ce3,</div><div class='add'>+	0x0ce6, 0x0cef,</div><div class='add'>+	0x0cf1, 0x0cf3,</div><div class='add'>+	0x0d00, 0x0d0c,</div><div class='add'>+	0x0d0e, 0x0d10,</div><div class='add'>+	0x0d12, 0x0d44,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4f,</div><div class='add'>+	0x0d54, 0x0d63,</div><div class='add'>+	0x0d66, 0x0d7f,</div><div class='add'>+	0x0d81, 0x0d83,</div><div class='add'>+	0x0d85, 0x0d96,</div><div class='add'>+	0x0d9a, 0x0db1,</div><div class='add'>+	0x0db3, 0x0dbb,</div><div class='add'>+	0x0dbd, 0x0dbd,</div><div class='add'>+	0x0dc0, 0x0dc6,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0dd8, 0x0ddf,</div><div class='add'>+	0x0de6, 0x0def,</div><div class='add'>+	0x0df2, 0x0df4,</div><div class='add'>+	0x0e01, 0x0e3a,</div><div class='add'>+	0x0e3f, 0x0e5b,</div><div class='add'>+	0x0e81, 0x0e82,</div><div class='add'>+	0x0e84, 0x0e84,</div><div class='add'>+	0x0e86, 0x0e8a,</div><div class='add'>+	0x0e8c, 0x0ea3,</div><div class='add'>+	0x0ea5, 0x0ea5,</div><div class='add'>+	0x0ea7, 0x0ebd,</div><div class='add'>+	0x0ec0, 0x0ec4,</div><div class='add'>+	0x0ec6, 0x0ec6,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0ed0, 0x0ed9,</div><div class='add'>+	0x0edc, 0x0edf,</div><div class='add'>+	0x0f00, 0x0f47,</div><div class='add'>+	0x0f49, 0x0f6c,</div><div class='add'>+	0x0f71, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fbe, 0x0fcc,</div><div class='add'>+	0x0fce, 0x0fda,</div><div class='add'>+	0x1000, 0x10c5,</div><div class='add'>+	0x10c7, 0x10c7,</div><div class='add'>+	0x10cd, 0x10cd,</div><div class='add'>+	0x10d0, 0x1248,</div><div class='add'>+	0x124a, 0x124d,</div><div class='add'>+	0x1250, 0x1256,</div><div class='add'>+	0x1258, 0x1258,</div><div class='add'>+	0x125a, 0x125d,</div><div class='add'>+	0x1260, 0x1288,</div><div class='add'>+	0x128a, 0x128d,</div><div class='add'>+	0x1290, 0x12b0,</div><div class='add'>+	0x12b2, 0x12b5,</div><div class='add'>+	0x12b8, 0x12be,</div><div class='add'>+	0x12c0, 0x12c0,</div><div class='add'>+	0x12c2, 0x12c5,</div><div class='add'>+	0x12c8, 0x12d6,</div><div class='add'>+	0x12d8, 0x1310,</div><div class='add'>+	0x1312, 0x1315,</div><div class='add'>+	0x1318, 0x135a,</div><div class='add'>+	0x135d, 0x137c,</div><div class='add'>+	0x1380, 0x1399,</div><div class='add'>+	0x13a0, 0x13f5,</div><div class='add'>+	0x13f8, 0x13fd,</div><div class='add'>+	0x1400, 0x169c,</div><div class='add'>+	0x16a0, 0x16f8,</div><div class='add'>+	0x1700, 0x1715,</div><div class='add'>+	0x171f, 0x1736,</div><div class='add'>+	0x1740, 0x1753,</div><div class='add'>+	0x1760, 0x176c,</div><div class='add'>+	0x176e, 0x1770,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x1780, 0x17dd,</div><div class='add'>+	0x17e0, 0x17e9,</div><div class='add'>+	0x17f0, 0x17f9,</div><div class='add'>+	0x1800, 0x1819,</div><div class='add'>+	0x1820, 0x1878,</div><div class='add'>+	0x1880, 0x18aa,</div><div class='add'>+	0x18b0, 0x18f5,</div><div class='add'>+	0x1900, 0x191e,</div><div class='add'>+	0x1920, 0x192b,</div><div class='add'>+	0x1930, 0x193b,</div><div class='add'>+	0x1940, 0x1940,</div><div class='add'>+	0x1944, 0x196d,</div><div class='add'>+	0x1970, 0x1974,</div><div class='add'>+	0x1980, 0x19ab,</div><div class='add'>+	0x19b0, 0x19c9,</div><div class='add'>+	0x19d0, 0x19da,</div><div class='add'>+	0x19de, 0x1a1b,</div><div class='add'>+	0x1a1e, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a89,</div><div class='add'>+	0x1a90, 0x1a99,</div><div class='add'>+	0x1aa0, 0x1aad,</div><div class='add'>+	0x1ab0, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b4c,</div><div class='add'>+	0x1b50, 0x1b7e,</div><div class='add'>+	0x1b80, 0x1bf3,</div><div class='add'>+	0x1bfc, 0x1c37,</div><div class='add'>+	0x1c3b, 0x1c49,</div><div class='add'>+	0x1c4d, 0x1c88,</div><div class='add'>+	0x1c90, 0x1cba,</div><div class='add'>+	0x1cbd, 0x1cc7,</div><div class='add'>+	0x1cd0, 0x1cfa,</div><div class='add'>+	0x1d00, 0x1f15,</div><div class='add'>+	0x1f18, 0x1f1d,</div><div class='add'>+	0x1f20, 0x1f45,</div><div class='add'>+	0x1f48, 0x1f4d,</div><div class='add'>+	0x1f50, 0x1f57,</div><div class='add'>+	0x1f59, 0x1f59,</div><div class='add'>+	0x1f5b, 0x1f5b,</div><div class='add'>+	0x1f5d, 0x1f5d,</div><div class='add'>+	0x1f5f, 0x1f7d,</div><div class='add'>+	0x1f80, 0x1fb4,</div><div class='add'>+	0x1fb6, 0x1fc4,</div><div class='add'>+	0x1fc6, 0x1fd3,</div><div class='add'>+	0x1fd6, 0x1fdb,</div><div class='add'>+	0x1fdd, 0x1fef,</div><div class='add'>+	0x1ff2, 0x1ff4,</div><div class='add'>+	0x1ff6, 0x1ffe,</div><div class='add'>+	0x2000, 0x2064,</div><div class='add'>+	0x2066, 0x2071,</div><div class='add'>+	0x2074, 0x208e,</div><div class='add'>+	0x2090, 0x209c,</div><div class='add'>+	0x20a0, 0x20c0,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2100, 0x218b,</div><div class='add'>+	0x2190, 0x2426,</div><div class='add'>+	0x2440, 0x244a,</div><div class='add'>+	0x2460, 0x2b73,</div><div class='add'>+	0x2b76, 0x2b95,</div><div class='add'>+	0x2b97, 0x2cf3,</div><div class='add'>+	0x2cf9, 0x2d25,</div><div class='add'>+	0x2d27, 0x2d27,</div><div class='add'>+	0x2d2d, 0x2d2d,</div><div class='add'>+	0x2d30, 0x2d67,</div><div class='add'>+	0x2d6f, 0x2d70,</div><div class='add'>+	0x2d7f, 0x2d96,</div><div class='add'>+	0x2da0, 0x2da6,</div><div class='add'>+	0x2da8, 0x2dae,</div><div class='add'>+	0x2db0, 0x2db6,</div><div class='add'>+	0x2db8, 0x2dbe,</div><div class='add'>+	0x2dc0, 0x2dc6,</div><div class='add'>+	0x2dc8, 0x2dce,</div><div class='add'>+	0x2dd0, 0x2dd6,</div><div class='add'>+	0x2dd8, 0x2dde,</div><div class='add'>+	0x2de0, 0x2e5d,</div><div class='add'>+	0x2e80, 0x2e99,</div><div class='add'>+	0x2e9b, 0x2ef3,</div><div class='add'>+	0x2f00, 0x2fd5,</div><div class='add'>+	0x2ff0, 0x2ffb,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+	0x3041, 0x3096,</div><div class='add'>+	0x3099, 0x30ff,</div><div class='add'>+	0x3105, 0x312f,</div><div class='add'>+	0x3131, 0x318e,</div><div class='add'>+	0x3190, 0x31e3,</div><div class='add'>+	0x31f0, 0x321e,</div><div class='add'>+	0x3220, 0xa48c,</div><div class='add'>+	0xa490, 0xa4c6,</div><div class='add'>+	0xa4d0, 0xa62b,</div><div class='add'>+	0xa640, 0xa6f7,</div><div class='add'>+	0xa700, 0xa7ca,</div><div class='add'>+	0xa7d0, 0xa7d1,</div><div class='add'>+	0xa7d3, 0xa7d3,</div><div class='add'>+	0xa7d5, 0xa7d9,</div><div class='add'>+	0xa7f2, 0xa82c,</div><div class='add'>+	0xa830, 0xa839,</div><div class='add'>+	0xa840, 0xa877,</div><div class='add'>+	0xa880, 0xa8c5,</div><div class='add'>+	0xa8ce, 0xa8d9,</div><div class='add'>+	0xa8e0, 0xa953,</div><div class='add'>+	0xa95f, 0xa97c,</div><div class='add'>+	0xa980, 0xa9cd,</div><div class='add'>+	0xa9cf, 0xa9d9,</div><div class='add'>+	0xa9de, 0xa9fe,</div><div class='add'>+	0xaa00, 0xaa36,</div><div class='add'>+	0xaa40, 0xaa4d,</div><div class='add'>+	0xaa50, 0xaa59,</div><div class='add'>+	0xaa5c, 0xaac2,</div><div class='add'>+	0xaadb, 0xaaf6,</div><div class='add'>+	0xab01, 0xab06,</div><div class='add'>+	0xab09, 0xab0e,</div><div class='add'>+	0xab11, 0xab16,</div><div class='add'>+	0xab20, 0xab26,</div><div class='add'>+	0xab28, 0xab2e,</div><div class='add'>+	0xab30, 0xab6b,</div><div class='add'>+	0xab70, 0xabed,</div><div class='add'>+	0xabf0, 0xabf9,</div><div class='add'>+	0xac00, 0xd7a3,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+	0xd800, 0xfa6d,</div><div class='add'>+	0xfa70, 0xfad9,</div><div class='add'>+	0xfb00, 0xfb06,</div><div class='add'>+	0xfb13, 0xfb17,</div><div class='add'>+	0xfb1d, 0xfb36,</div><div class='add'>+	0xfb38, 0xfb3c,</div><div class='add'>+	0xfb3e, 0xfb3e,</div><div class='add'>+	0xfb40, 0xfb41,</div><div class='add'>+	0xfb43, 0xfb44,</div><div class='add'>+	0xfb46, 0xfbc2,</div><div class='add'>+	0xfbd3, 0xfd8f,</div><div class='add'>+	0xfd92, 0xfdc7,</div><div class='add'>+	0xfdcf, 0xfe19,</div><div class='add'>+	0xfe20, 0xfe52,</div><div class='add'>+	0xfe54, 0xfe66,</div><div class='add'>+	0xfe68, 0xfe6b,</div><div class='add'>+	0xfe70, 0xfe74,</div><div class='add'>+	0xfe76, 0xfefc,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xff01, 0xffbe,</div><div class='add'>+	0xffc2, 0xffc7,</div><div class='add'>+	0xffca, 0xffcf,</div><div class='add'>+	0xffd2, 0xffd7,</div><div class='add'>+	0xffda, 0xffdc,</div><div class='add'>+	0xffe0, 0xffe6,</div><div class='add'>+	0xffe8, 0xffee,</div><div class='add'>+	0xfff9, 0x1000b,</div><div class='add'>+	0x1000d, 0x10026,</div><div class='add'>+	0x10028, 0x1003a,</div><div class='add'>+	0x1003c, 0x1003d,</div><div class='add'>+	0x1003f, 0x1004d,</div><div class='add'>+	0x10050, 0x1005d,</div><div class='add'>+	0x10080, 0x100fa,</div><div class='add'>+	0x10100, 0x10102,</div><div class='add'>+	0x10107, 0x10133,</div><div class='add'>+	0x10137, 0x1018e,</div><div class='add'>+	0x10190, 0x1019c,</div><div class='add'>+	0x101a0, 0x101a0,</div><div class='add'>+	0x101d0, 0x101fd,</div><div class='add'>+	0x10280, 0x1029c,</div><div class='add'>+	0x102a0, 0x102d0,</div><div class='add'>+	0x102e0, 0x102fb,</div><div class='add'>+	0x10300, 0x10323,</div><div class='add'>+	0x1032d, 0x1034a,</div><div class='add'>+	0x10350, 0x1037a,</div><div class='add'>+	0x10380, 0x1039d,</div><div class='add'>+	0x1039f, 0x103c3,</div><div class='add'>+	0x103c8, 0x103d5,</div><div class='add'>+	0x10400, 0x1049d,</div><div class='add'>+	0x104a0, 0x104a9,</div><div class='add'>+	0x104b0, 0x104d3,</div><div class='add'>+	0x104d8, 0x104fb,</div><div class='add'>+	0x10500, 0x10527,</div><div class='add'>+	0x10530, 0x10563,</div><div class='add'>+	0x1056f, 0x1057a,</div><div class='add'>+	0x1057c, 0x1058a,</div><div class='add'>+	0x1058c, 0x10592,</div><div class='add'>+	0x10594, 0x10595,</div><div class='add'>+	0x10597, 0x105a1,</div><div class='add'>+	0x105a3, 0x105b1,</div><div class='add'>+	0x105b3, 0x105b9,</div><div class='add'>+	0x105bb, 0x105bc,</div><div class='add'>+	0x10600, 0x10736,</div><div class='add'>+	0x10740, 0x10755,</div><div class='add'>+	0x10760, 0x10767,</div><div class='add'>+	0x10780, 0x10785,</div><div class='add'>+	0x10787, 0x107b0,</div><div class='add'>+	0x107b2, 0x107ba,</div><div class='add'>+	0x10800, 0x10805,</div><div class='add'>+	0x10808, 0x10808,</div><div class='add'>+	0x1080a, 0x10835,</div><div class='add'>+	0x10837, 0x10838,</div><div class='add'>+	0x1083c, 0x1083c,</div><div class='add'>+	0x1083f, 0x10855,</div><div class='add'>+	0x10857, 0x1089e,</div><div class='add'>+	0x108a7, 0x108af,</div><div class='add'>+	0x108e0, 0x108f2,</div><div class='add'>+	0x108f4, 0x108f5,</div><div class='add'>+	0x108fb, 0x1091b,</div><div class='add'>+	0x1091f, 0x10939,</div><div class='add'>+	0x1093f, 0x1093f,</div><div class='add'>+	0x10980, 0x109b7,</div><div class='add'>+	0x109bc, 0x109cf,</div><div class='add'>+	0x109d2, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a13,</div><div class='add'>+	0x10a15, 0x10a17,</div><div class='add'>+	0x10a19, 0x10a35,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a48,</div><div class='add'>+	0x10a50, 0x10a58,</div><div class='add'>+	0x10a60, 0x10a9f,</div><div class='add'>+	0x10ac0, 0x10ae6,</div><div class='add'>+	0x10aeb, 0x10af6,</div><div class='add'>+	0x10b00, 0x10b35,</div><div class='add'>+	0x10b39, 0x10b55,</div><div class='add'>+	0x10b58, 0x10b72,</div><div class='add'>+	0x10b78, 0x10b91,</div><div class='add'>+	0x10b99, 0x10b9c,</div><div class='add'>+	0x10ba9, 0x10baf,</div><div class='add'>+	0x10c00, 0x10c48,</div><div class='add'>+	0x10c80, 0x10cb2,</div><div class='add'>+	0x10cc0, 0x10cf2,</div><div class='add'>+	0x10cfa, 0x10d27,</div><div class='add'>+	0x10d30, 0x10d39,</div><div class='add'>+	0x10e60, 0x10e7e,</div><div class='add'>+	0x10e80, 0x10ea9,</div><div class='add'>+	0x10eab, 0x10ead,</div><div class='add'>+	0x10eb0, 0x10eb1,</div><div class='add'>+	0x10efd, 0x10f27,</div><div class='add'>+	0x10f30, 0x10f59,</div><div class='add'>+	0x10f70, 0x10f89,</div><div class='add'>+	0x10fb0, 0x10fcb,</div><div class='add'>+	0x10fe0, 0x10ff6,</div><div class='add'>+	0x11000, 0x1104d,</div><div class='add'>+	0x11052, 0x11075,</div><div class='add'>+	0x1107f, 0x110c2,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x110d0, 0x110e8,</div><div class='add'>+	0x110f0, 0x110f9,</div><div class='add'>+	0x11100, 0x11134,</div><div class='add'>+	0x11136, 0x11147,</div><div class='add'>+	0x11150, 0x11176,</div><div class='add'>+	0x11180, 0x111df,</div><div class='add'>+	0x111e1, 0x111f4,</div><div class='add'>+	0x11200, 0x11211,</div><div class='add'>+	0x11213, 0x11241,</div><div class='add'>+	0x11280, 0x11286,</div><div class='add'>+	0x11288, 0x11288,</div><div class='add'>+	0x1128a, 0x1128d,</div><div class='add'>+	0x1128f, 0x1129d,</div><div class='add'>+	0x1129f, 0x112a9,</div><div class='add'>+	0x112b0, 0x112ea,</div><div class='add'>+	0x112f0, 0x112f9,</div><div class='add'>+	0x11300, 0x11303,</div><div class='add'>+	0x11305, 0x1130c,</div><div class='add'>+	0x1130f, 0x11310,</div><div class='add'>+	0x11313, 0x11328,</div><div class='add'>+	0x1132a, 0x11330,</div><div class='add'>+	0x11332, 0x11333,</div><div class='add'>+	0x11335, 0x11339,</div><div class='add'>+	0x1133b, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11350, 0x11350,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x1135d, 0x11363,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11400, 0x1145b,</div><div class='add'>+	0x1145d, 0x11461,</div><div class='add'>+	0x11480, 0x114c7,</div><div class='add'>+	0x114d0, 0x114d9,</div><div class='add'>+	0x11580, 0x115b5,</div><div class='add'>+	0x115b8, 0x115dd,</div><div class='add'>+	0x11600, 0x11644,</div><div class='add'>+	0x11650, 0x11659,</div><div class='add'>+	0x11660, 0x1166c,</div><div class='add'>+	0x11680, 0x116b9,</div><div class='add'>+	0x116c0, 0x116c9,</div><div class='add'>+	0x11700, 0x1171a,</div><div class='add'>+	0x1171d, 0x1172b,</div><div class='add'>+	0x11730, 0x11746,</div><div class='add'>+	0x11800, 0x1183b,</div><div class='add'>+	0x118a0, 0x118f2,</div><div class='add'>+	0x118ff, 0x11906,</div><div class='add'>+	0x11909, 0x11909,</div><div class='add'>+	0x1190c, 0x11913,</div><div class='add'>+	0x11915, 0x11916,</div><div class='add'>+	0x11918, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193b, 0x11946,</div><div class='add'>+	0x11950, 0x11959,</div><div class='add'>+	0x119a0, 0x119a7,</div><div class='add'>+	0x119aa, 0x119d7,</div><div class='add'>+	0x119da, 0x119e4,</div><div class='add'>+	0x11a00, 0x11a47,</div><div class='add'>+	0x11a50, 0x11aa2,</div><div class='add'>+	0x11ab0, 0x11af8,</div><div class='add'>+	0x11b00, 0x11b09,</div><div class='add'>+	0x11c00, 0x11c08,</div><div class='add'>+	0x11c0a, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c45,</div><div class='add'>+	0x11c50, 0x11c6c,</div><div class='add'>+	0x11c70, 0x11c8f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11ca9, 0x11cb6,</div><div class='add'>+	0x11d00, 0x11d06,</div><div class='add'>+	0x11d08, 0x11d09,</div><div class='add'>+	0x11d0b, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d47,</div><div class='add'>+	0x11d50, 0x11d59,</div><div class='add'>+	0x11d60, 0x11d65,</div><div class='add'>+	0x11d67, 0x11d68,</div><div class='add'>+	0x11d6a, 0x11d8e,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d93, 0x11d98,</div><div class='add'>+	0x11da0, 0x11da9,</div><div class='add'>+	0x11ee0, 0x11ef8,</div><div class='add'>+	0x11f00, 0x11f10,</div><div class='add'>+	0x11f12, 0x11f3a,</div><div class='add'>+	0x11f3e, 0x11f59,</div><div class='add'>+	0x11fb0, 0x11fb0,</div><div class='add'>+	0x11fc0, 0x11ff1,</div><div class='add'>+	0x11fff, 0x12399,</div><div class='add'>+	0x12400, 0x1246e,</div><div class='add'>+	0x12470, 0x12474,</div><div class='add'>+	0x12480, 0x12543,</div><div class='add'>+	0x12f90, 0x12ff2,</div><div class='add'>+	0x13000, 0x13455,</div><div class='add'>+	0x14400, 0x14646,</div><div class='add'>+	0x16800, 0x16a38,</div><div class='add'>+	0x16a40, 0x16a5e,</div><div class='add'>+	0x16a60, 0x16a69,</div><div class='add'>+	0x16a6e, 0x16abe,</div><div class='add'>+	0x16ac0, 0x16ac9,</div><div class='add'>+	0x16ad0, 0x16aed,</div><div class='add'>+	0x16af0, 0x16af5,</div><div class='add'>+	0x16b00, 0x16b45,</div><div class='add'>+	0x16b50, 0x16b59,</div><div class='add'>+	0x16b5b, 0x16b61,</div><div class='add'>+	0x16b63, 0x16b77,</div><div class='add'>+	0x16b7d, 0x16b8f,</div><div class='add'>+	0x16e40, 0x16e9a,</div><div class='add'>+	0x16f00, 0x16f4a,</div><div class='add'>+	0x16f4f, 0x16f87,</div><div class='add'>+	0x16f8f, 0x16f9f,</div><div class='add'>+	0x16fe0, 0x16fe4,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x17000, 0x187f7,</div><div class='add'>+	0x18800, 0x18cd5,</div><div class='add'>+	0x18d00, 0x18d08,</div><div class='add'>+	0x1aff0, 0x1aff3,</div><div class='add'>+	0x1aff5, 0x1affb,</div><div class='add'>+	0x1affd, 0x1affe,</div><div class='add'>+	0x1b000, 0x1b122,</div><div class='add'>+	0x1b132, 0x1b132,</div><div class='add'>+	0x1b150, 0x1b152,</div><div class='add'>+	0x1b155, 0x1b155,</div><div class='add'>+	0x1b164, 0x1b167,</div><div class='add'>+	0x1b170, 0x1b2fb,</div><div class='add'>+	0x1bc00, 0x1bc6a,</div><div class='add'>+	0x1bc70, 0x1bc7c,</div><div class='add'>+	0x1bc80, 0x1bc88,</div><div class='add'>+	0x1bc90, 0x1bc99,</div><div class='add'>+	0x1bc9c, 0x1bca3,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1cf50, 0x1cfc3,</div><div class='add'>+	0x1d000, 0x1d0f5,</div><div class='add'>+	0x1d100, 0x1d126,</div><div class='add'>+	0x1d129, 0x1d1ea,</div><div class='add'>+	0x1d200, 0x1d245,</div><div class='add'>+	0x1d2c0, 0x1d2d3,</div><div class='add'>+	0x1d2e0, 0x1d2f3,</div><div class='add'>+	0x1d300, 0x1d356,</div><div class='add'>+	0x1d360, 0x1d378,</div><div class='add'>+	0x1d400, 0x1d454,</div><div class='add'>+	0x1d456, 0x1d49c,</div><div class='add'>+	0x1d49e, 0x1d49f,</div><div class='add'>+	0x1d4a2, 0x1d4a2,</div><div class='add'>+	0x1d4a5, 0x1d4a6,</div><div class='add'>+	0x1d4a9, 0x1d4ac,</div><div class='add'>+	0x1d4ae, 0x1d4b9,</div><div class='add'>+	0x1d4bb, 0x1d4bb,</div><div class='add'>+	0x1d4bd, 0x1d4c3,</div><div class='add'>+	0x1d4c5, 0x1d505,</div><div class='add'>+	0x1d507, 0x1d50a,</div><div class='add'>+	0x1d50d, 0x1d514,</div><div class='add'>+	0x1d516, 0x1d51c,</div><div class='add'>+	0x1d51e, 0x1d539,</div><div class='add'>+	0x1d53b, 0x1d53e,</div><div class='add'>+	0x1d540, 0x1d544,</div><div class='add'>+	0x1d546, 0x1d546,</div><div class='add'>+	0x1d54a, 0x1d550,</div><div class='add'>+	0x1d552, 0x1d6a5,</div><div class='add'>+	0x1d6a8, 0x1d7cb,</div><div class='add'>+	0x1d7ce, 0x1da8b,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1df00, 0x1df1e,</div><div class='add'>+	0x1df25, 0x1df2a,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e030, 0x1e06d,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e100, 0x1e12c,</div><div class='add'>+	0x1e130, 0x1e13d,</div><div class='add'>+	0x1e140, 0x1e149,</div><div class='add'>+	0x1e14e, 0x1e14f,</div><div class='add'>+	0x1e290, 0x1e2ae,</div><div class='add'>+	0x1e2c0, 0x1e2f9,</div><div class='add'>+	0x1e2ff, 0x1e2ff,</div><div class='add'>+	0x1e4d0, 0x1e4f9,</div><div class='add'>+	0x1e7e0, 0x1e7e6,</div><div class='add'>+	0x1e7e8, 0x1e7eb,</div><div class='add'>+	0x1e7ed, 0x1e7ee,</div><div class='add'>+	0x1e7f0, 0x1e7fe,</div><div class='add'>+	0x1e800, 0x1e8c4,</div><div class='add'>+	0x1e8c7, 0x1e8d6,</div><div class='add'>+	0x1e900, 0x1e94b,</div><div class='add'>+	0x1e950, 0x1e959,</div><div class='add'>+	0x1e95e, 0x1e95f,</div><div class='add'>+	0x1ec71, 0x1ecb4,</div><div class='add'>+	0x1ed01, 0x1ed3d,</div><div class='add'>+	0x1ee00, 0x1ee03,</div><div class='add'>+	0x1ee05, 0x1ee1f,</div><div class='add'>+	0x1ee21, 0x1ee22,</div><div class='add'>+	0x1ee24, 0x1ee24,</div><div class='add'>+	0x1ee27, 0x1ee27,</div><div class='add'>+	0x1ee29, 0x1ee32,</div><div class='add'>+	0x1ee34, 0x1ee37,</div><div class='add'>+	0x1ee39, 0x1ee39,</div><div class='add'>+	0x1ee3b, 0x1ee3b,</div><div class='add'>+	0x1ee42, 0x1ee42,</div><div class='add'>+	0x1ee47, 0x1ee47,</div><div class='add'>+	0x1ee49, 0x1ee49,</div><div class='add'>+	0x1ee4b, 0x1ee4b,</div><div class='add'>+	0x1ee4d, 0x1ee4f,</div><div class='add'>+	0x1ee51, 0x1ee52,</div><div class='add'>+	0x1ee54, 0x1ee54,</div><div class='add'>+	0x1ee57, 0x1ee57,</div><div class='add'>+	0x1ee59, 0x1ee59,</div><div class='add'>+	0x1ee5b, 0x1ee5b,</div><div class='add'>+	0x1ee5d, 0x1ee5d,</div><div class='add'>+	0x1ee5f, 0x1ee5f,</div><div class='add'>+	0x1ee61, 0x1ee62,</div><div class='add'>+	0x1ee64, 0x1ee64,</div><div class='add'>+	0x1ee67, 0x1ee6a,</div><div class='add'>+	0x1ee6c, 0x1ee72,</div><div class='add'>+	0x1ee74, 0x1ee77,</div><div class='add'>+	0x1ee79, 0x1ee7c,</div><div class='add'>+	0x1ee7e, 0x1ee7e,</div><div class='add'>+	0x1ee80, 0x1ee89,</div><div class='add'>+	0x1ee8b, 0x1ee9b,</div><div class='add'>+	0x1eea1, 0x1eea3,</div><div class='add'>+	0x1eea5, 0x1eea9,</div><div class='add'>+	0x1eeab, 0x1eebb,</div><div class='add'>+	0x1eef0, 0x1eef1,</div><div class='add'>+	0x1f000, 0x1f02b,</div><div class='add'>+	0x1f030, 0x1f093,</div><div class='add'>+	0x1f0a0, 0x1f0ae,</div><div class='add'>+	0x1f0b1, 0x1f0bf,</div><div class='add'>+	0x1f0c1, 0x1f0cf,</div><div class='add'>+	0x1f0d1, 0x1f0f5,</div><div class='add'>+	0x1f100, 0x1f1ad,</div><div class='add'>+	0x1f1e6, 0x1f202,</div><div class='add'>+	0x1f210, 0x1f23b,</div><div class='add'>+	0x1f240, 0x1f248,</div><div class='add'>+	0x1f250, 0x1f251,</div><div class='add'>+	0x1f260, 0x1f265,</div><div class='add'>+	0x1f300, 0x1f6d7,</div><div class='add'>+	0x1f6dc, 0x1f6ec,</div><div class='add'>+	0x1f6f0, 0x1f6fc,</div><div class='add'>+	0x1f700, 0x1f776,</div><div class='add'>+	0x1f77b, 0x1f7d9,</div><div class='add'>+	0x1f7e0, 0x1f7eb,</div><div class='add'>+	0x1f7f0, 0x1f7f0,</div><div class='add'>+	0x1f800, 0x1f80b,</div><div class='add'>+	0x1f810, 0x1f847,</div><div class='add'>+	0x1f850, 0x1f859,</div><div class='add'>+	0x1f860, 0x1f887,</div><div class='add'>+	0x1f890, 0x1f8ad,</div><div class='add'>+	0x1f8b0, 0x1f8b1,</div><div class='add'>+	0x1f900, 0x1fa53,</div><div class='add'>+	0x1fa60, 0x1fa6d,</div><div class='add'>+	0x1fa70, 0x1fa7c,</div><div class='add'>+	0x1fa80, 0x1fa88,</div><div class='add'>+	0x1fa90, 0x1fabd,</div><div class='add'>+	0x1fabf, 0x1fac5,</div><div class='add'>+	0x1face, 0x1fadb,</div><div class='add'>+	0x1fae0, 0x1fae8,</div><div class='add'>+	0x1faf0, 0x1faf8,</div><div class='add'>+	0x1fb00, 0x1fb92,</div><div class='add'>+	0x1fb94, 0x1fbca,</div><div class='add'>+	0x1fbf0, 0x1fbf9,</div><div class='add'>+	0x1fffe, 0x2a6df,</div><div class='add'>+	0x2a700, 0x2b739,</div><div class='add'>+	0x2b740, 0x2b81d,</div><div class='add'>+	0x2b820, 0x2cea1,</div><div class='add'>+	0x2ceb0, 0x2ebe0,</div><div class='add'>+	0x2f800, 0x2fa1d,</div><div class='add'>+	0x2fffe, 0x3134a,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+	0x3fffe, 0x3ffff,</div><div class='add'>+	0x4fffe, 0x4ffff,</div><div class='add'>+	0x5fffe, 0x5ffff,</div><div class='add'>+	0x6fffe, 0x6ffff,</div><div class='add'>+	0x7fffe, 0x7ffff,</div><div class='add'>+	0x8fffe, 0x8ffff,</div><div class='add'>+	0x9fffe, 0x9ffff,</div><div class='add'>+	0xafffe, 0xaffff,</div><div class='add'>+	0xbfffe, 0xbffff,</div><div class='add'>+	0xcfffe, 0xcffff,</div><div class='add'>+	0xdfffe, 0xdffff,</div><div class='add'>+	0xe0001, 0xe0001,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+	0xefffe, 0x10ffff,</div><div class='add'>+}; /* CR_Age_15_0 */</div><div class='add'>+</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+/* 'Grapheme_Cluster_Break_Prepend': Grapheme_Cluster_Break=Prepend */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Cluster_Break_Prepend[] = {</div><div class='add'>+	15,</div><div class='add'>+	0x0600, 0x0605,</div><div class='add'>+	0x06dd, 0x06dd,</div><div class='add'>+	0x070f, 0x070f,</div><div class='add'>+	0x0890, 0x0891,</div><div class='add'>+	0x08e2, 0x08e2,</div><div class='add'>+	0x0d4e, 0x0d4e,</div><div class='add'>+	0x110bd, 0x110bd,</div><div class='add'>+	0x110cd, 0x110cd,</div><div class='add'>+	0x111c2, 0x111c3,</div><div class='add'>+	0x1193f, 0x1193f,</div><div class='add'>+	0x11941, 0x11941,</div><div class='add'>+	0x11a3a, 0x11a3a,</div><div class='add'>+	0x11a84, 0x11a89,</div><div class='add'>+	0x11d46, 0x11d46,</div><div class='add'>+	0x11f02, 0x11f02,</div><div class='add'>+}; /* CR_Grapheme_Cluster_Break_Prepend */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_CR': Grapheme_Cluster_Break=CR */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Cluster_Break_CR[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x000d, 0x000d,</div><div class='add'>+}; /* CR_Grapheme_Cluster_Break_CR */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_LF': Grapheme_Cluster_Break=LF */</div><div class='add'>+#define CR_Grapheme_Cluster_Break_LF CR_NEWLINE</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_Control': Grapheme_Cluster_Break=Control */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Cluster_Break_Control[] = {</div><div class='add'>+	19,</div><div class='add'>+	0x0000, 0x0009,</div><div class='add'>+	0x000b, 0x000c,</div><div class='add'>+	0x000e, 0x001f,</div><div class='add'>+	0x007f, 0x009f,</div><div class='add'>+	0x00ad, 0x00ad,</div><div class='add'>+	0x061c, 0x061c,</div><div class='add'>+	0x180e, 0x180e,</div><div class='add'>+	0x200b, 0x200b,</div><div class='add'>+	0x200e, 0x200f,</div><div class='add'>+	0x2028, 0x202e,</div><div class='add'>+	0x2060, 0x206f,</div><div class='add'>+	0xfeff, 0xfeff,</div><div class='add'>+	0xfff0, 0xfffb,</div><div class='add'>+	0x13430, 0x1343f,</div><div class='add'>+	0x1bca0, 0x1bca3,</div><div class='add'>+	0x1d173, 0x1d17a,</div><div class='add'>+	0xe0000, 0xe001f,</div><div class='add'>+	0xe0080, 0xe00ff,</div><div class='add'>+	0xe01f0, 0xe0fff,</div><div class='add'>+}; /* CR_Grapheme_Cluster_Break_Control */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_Extend': Grapheme_Cluster_Break=Extend */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Cluster_Break_Extend[] = {</div><div class='add'>+	364,</div><div class='add'>+	0x0300, 0x036f,</div><div class='add'>+	0x0483, 0x0489,</div><div class='add'>+	0x0591, 0x05bd,</div><div class='add'>+	0x05bf, 0x05bf,</div><div class='add'>+	0x05c1, 0x05c2,</div><div class='add'>+	0x05c4, 0x05c5,</div><div class='add'>+	0x05c7, 0x05c7,</div><div class='add'>+	0x0610, 0x061a,</div><div class='add'>+	0x064b, 0x065f,</div><div class='add'>+	0x0670, 0x0670,</div><div class='add'>+	0x06d6, 0x06dc,</div><div class='add'>+	0x06df, 0x06e4,</div><div class='add'>+	0x06e7, 0x06e8,</div><div class='add'>+	0x06ea, 0x06ed,</div><div class='add'>+	0x0711, 0x0711,</div><div class='add'>+	0x0730, 0x074a,</div><div class='add'>+	0x07a6, 0x07b0,</div><div class='add'>+	0x07eb, 0x07f3,</div><div class='add'>+	0x07fd, 0x07fd,</div><div class='add'>+	0x0816, 0x0819,</div><div class='add'>+	0x081b, 0x0823,</div><div class='add'>+	0x0825, 0x0827,</div><div class='add'>+	0x0829, 0x082d,</div><div class='add'>+	0x0859, 0x085b,</div><div class='add'>+	0x0898, 0x089f,</div><div class='add'>+	0x08ca, 0x08e1,</div><div class='add'>+	0x08e3, 0x0902,</div><div class='add'>+	0x093a, 0x093a,</div><div class='add'>+	0x093c, 0x093c,</div><div class='add'>+	0x0941, 0x0948,</div><div class='add'>+	0x094d, 0x094d,</div><div class='add'>+	0x0951, 0x0957,</div><div class='add'>+	0x0962, 0x0963,</div><div class='add'>+	0x0981, 0x0981,</div><div class='add'>+	0x09bc, 0x09bc,</div><div class='add'>+	0x09be, 0x09be,</div><div class='add'>+	0x09c1, 0x09c4,</div><div class='add'>+	0x09cd, 0x09cd,</div><div class='add'>+	0x09d7, 0x09d7,</div><div class='add'>+	0x09e2, 0x09e3,</div><div class='add'>+	0x09fe, 0x09fe,</div><div class='add'>+	0x0a01, 0x0a02,</div><div class='add'>+	0x0a3c, 0x0a3c,</div><div class='add'>+	0x0a41, 0x0a42,</div><div class='add'>+	0x0a47, 0x0a48,</div><div class='add'>+	0x0a4b, 0x0a4d,</div><div class='add'>+	0x0a51, 0x0a51,</div><div class='add'>+	0x0a70, 0x0a71,</div><div class='add'>+	0x0a75, 0x0a75,</div><div class='add'>+	0x0a81, 0x0a82,</div><div class='add'>+	0x0abc, 0x0abc,</div><div class='add'>+	0x0ac1, 0x0ac5,</div><div class='add'>+	0x0ac7, 0x0ac8,</div><div class='add'>+	0x0acd, 0x0acd,</div><div class='add'>+	0x0ae2, 0x0ae3,</div><div class='add'>+	0x0afa, 0x0aff,</div><div class='add'>+	0x0b01, 0x0b01,</div><div class='add'>+	0x0b3c, 0x0b3c,</div><div class='add'>+	0x0b3e, 0x0b3f,</div><div class='add'>+	0x0b41, 0x0b44,</div><div class='add'>+	0x0b4d, 0x0b4d,</div><div class='add'>+	0x0b55, 0x0b57,</div><div class='add'>+	0x0b62, 0x0b63,</div><div class='add'>+	0x0b82, 0x0b82,</div><div class='add'>+	0x0bbe, 0x0bbe,</div><div class='add'>+	0x0bc0, 0x0bc0,</div><div class='add'>+	0x0bcd, 0x0bcd,</div><div class='add'>+	0x0bd7, 0x0bd7,</div><div class='add'>+	0x0c00, 0x0c00,</div><div class='add'>+	0x0c04, 0x0c04,</div><div class='add'>+	0x0c3c, 0x0c3c,</div><div class='add'>+	0x0c3e, 0x0c40,</div><div class='add'>+	0x0c46, 0x0c48,</div><div class='add'>+	0x0c4a, 0x0c4d,</div><div class='add'>+	0x0c55, 0x0c56,</div><div class='add'>+	0x0c62, 0x0c63,</div><div class='add'>+	0x0c81, 0x0c81,</div><div class='add'>+	0x0cbc, 0x0cbc,</div><div class='add'>+	0x0cbf, 0x0cbf,</div><div class='add'>+	0x0cc2, 0x0cc2,</div><div class='add'>+	0x0cc6, 0x0cc6,</div><div class='add'>+	0x0ccc, 0x0ccd,</div><div class='add'>+	0x0cd5, 0x0cd6,</div><div class='add'>+	0x0ce2, 0x0ce3,</div><div class='add'>+	0x0d00, 0x0d01,</div><div class='add'>+	0x0d3b, 0x0d3c,</div><div class='add'>+	0x0d3e, 0x0d3e,</div><div class='add'>+	0x0d41, 0x0d44,</div><div class='add'>+	0x0d4d, 0x0d4d,</div><div class='add'>+	0x0d57, 0x0d57,</div><div class='add'>+	0x0d62, 0x0d63,</div><div class='add'>+	0x0d81, 0x0d81,</div><div class='add'>+	0x0dca, 0x0dca,</div><div class='add'>+	0x0dcf, 0x0dcf,</div><div class='add'>+	0x0dd2, 0x0dd4,</div><div class='add'>+	0x0dd6, 0x0dd6,</div><div class='add'>+	0x0ddf, 0x0ddf,</div><div class='add'>+	0x0e31, 0x0e31,</div><div class='add'>+	0x0e34, 0x0e3a,</div><div class='add'>+	0x0e47, 0x0e4e,</div><div class='add'>+	0x0eb1, 0x0eb1,</div><div class='add'>+	0x0eb4, 0x0ebc,</div><div class='add'>+	0x0ec8, 0x0ece,</div><div class='add'>+	0x0f18, 0x0f19,</div><div class='add'>+	0x0f35, 0x0f35,</div><div class='add'>+	0x0f37, 0x0f37,</div><div class='add'>+	0x0f39, 0x0f39,</div><div class='add'>+	0x0f71, 0x0f7e,</div><div class='add'>+	0x0f80, 0x0f84,</div><div class='add'>+	0x0f86, 0x0f87,</div><div class='add'>+	0x0f8d, 0x0f97,</div><div class='add'>+	0x0f99, 0x0fbc,</div><div class='add'>+	0x0fc6, 0x0fc6,</div><div class='add'>+	0x102d, 0x1030,</div><div class='add'>+	0x1032, 0x1037,</div><div class='add'>+	0x1039, 0x103a,</div><div class='add'>+	0x103d, 0x103e,</div><div class='add'>+	0x1058, 0x1059,</div><div class='add'>+	0x105e, 0x1060,</div><div class='add'>+	0x1071, 0x1074,</div><div class='add'>+	0x1082, 0x1082,</div><div class='add'>+	0x1085, 0x1086,</div><div class='add'>+	0x108d, 0x108d,</div><div class='add'>+	0x109d, 0x109d,</div><div class='add'>+	0x135d, 0x135f,</div><div class='add'>+	0x1712, 0x1714,</div><div class='add'>+	0x1732, 0x1733,</div><div class='add'>+	0x1752, 0x1753,</div><div class='add'>+	0x1772, 0x1773,</div><div class='add'>+	0x17b4, 0x17b5,</div><div class='add'>+	0x17b7, 0x17bd,</div><div class='add'>+	0x17c6, 0x17c6,</div><div class='add'>+	0x17c9, 0x17d3,</div><div class='add'>+	0x17dd, 0x17dd,</div><div class='add'>+	0x180b, 0x180d,</div><div class='add'>+	0x180f, 0x180f,</div><div class='add'>+	0x1885, 0x1886,</div><div class='add'>+	0x18a9, 0x18a9,</div><div class='add'>+	0x1920, 0x1922,</div><div class='add'>+	0x1927, 0x1928,</div><div class='add'>+	0x1932, 0x1932,</div><div class='add'>+	0x1939, 0x193b,</div><div class='add'>+	0x1a17, 0x1a18,</div><div class='add'>+	0x1a1b, 0x1a1b,</div><div class='add'>+	0x1a56, 0x1a56,</div><div class='add'>+	0x1a58, 0x1a5e,</div><div class='add'>+	0x1a60, 0x1a60,</div><div class='add'>+	0x1a62, 0x1a62,</div><div class='add'>+	0x1a65, 0x1a6c,</div><div class='add'>+	0x1a73, 0x1a7c,</div><div class='add'>+	0x1a7f, 0x1a7f,</div><div class='add'>+	0x1ab0, 0x1ace,</div><div class='add'>+	0x1b00, 0x1b03,</div><div class='add'>+	0x1b34, 0x1b3a,</div><div class='add'>+	0x1b3c, 0x1b3c,</div><div class='add'>+	0x1b42, 0x1b42,</div><div class='add'>+	0x1b6b, 0x1b73,</div><div class='add'>+	0x1b80, 0x1b81,</div><div class='add'>+	0x1ba2, 0x1ba5,</div><div class='add'>+	0x1ba8, 0x1ba9,</div><div class='add'>+	0x1bab, 0x1bad,</div><div class='add'>+	0x1be6, 0x1be6,</div><div class='add'>+	0x1be8, 0x1be9,</div><div class='add'>+	0x1bed, 0x1bed,</div><div class='add'>+	0x1bef, 0x1bf1,</div><div class='add'>+	0x1c2c, 0x1c33,</div><div class='add'>+	0x1c36, 0x1c37,</div><div class='add'>+	0x1cd0, 0x1cd2,</div><div class='add'>+	0x1cd4, 0x1ce0,</div><div class='add'>+	0x1ce2, 0x1ce8,</div><div class='add'>+	0x1ced, 0x1ced,</div><div class='add'>+	0x1cf4, 0x1cf4,</div><div class='add'>+	0x1cf8, 0x1cf9,</div><div class='add'>+	0x1dc0, 0x1dff,</div><div class='add'>+	0x200c, 0x200c,</div><div class='add'>+	0x20d0, 0x20f0,</div><div class='add'>+	0x2cef, 0x2cf1,</div><div class='add'>+	0x2d7f, 0x2d7f,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+	0x302a, 0x302f,</div><div class='add'>+	0x3099, 0x309a,</div><div class='add'>+	0xa66f, 0xa672,</div><div class='add'>+	0xa674, 0xa67d,</div><div class='add'>+	0xa69e, 0xa69f,</div><div class='add'>+	0xa6f0, 0xa6f1,</div><div class='add'>+	0xa802, 0xa802,</div><div class='add'>+	0xa806, 0xa806,</div><div class='add'>+	0xa80b, 0xa80b,</div><div class='add'>+	0xa825, 0xa826,</div><div class='add'>+	0xa82c, 0xa82c,</div><div class='add'>+	0xa8c4, 0xa8c5,</div><div class='add'>+	0xa8e0, 0xa8f1,</div><div class='add'>+	0xa8ff, 0xa8ff,</div><div class='add'>+	0xa926, 0xa92d,</div><div class='add'>+	0xa947, 0xa951,</div><div class='add'>+	0xa980, 0xa982,</div><div class='add'>+	0xa9b3, 0xa9b3,</div><div class='add'>+	0xa9b6, 0xa9b9,</div><div class='add'>+	0xa9bc, 0xa9bd,</div><div class='add'>+	0xa9e5, 0xa9e5,</div><div class='add'>+	0xaa29, 0xaa2e,</div><div class='add'>+	0xaa31, 0xaa32,</div><div class='add'>+	0xaa35, 0xaa36,</div><div class='add'>+	0xaa43, 0xaa43,</div><div class='add'>+	0xaa4c, 0xaa4c,</div><div class='add'>+	0xaa7c, 0xaa7c,</div><div class='add'>+	0xaab0, 0xaab0,</div><div class='add'>+	0xaab2, 0xaab4,</div><div class='add'>+	0xaab7, 0xaab8,</div><div class='add'>+	0xaabe, 0xaabf,</div><div class='add'>+	0xaac1, 0xaac1,</div><div class='add'>+	0xaaec, 0xaaed,</div><div class='add'>+	0xaaf6, 0xaaf6,</div><div class='add'>+	0xabe5, 0xabe5,</div><div class='add'>+	0xabe8, 0xabe8,</div><div class='add'>+	0xabed, 0xabed,</div><div class='add'>+	0xfb1e, 0xfb1e,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+	0xfe20, 0xfe2f,</div><div class='add'>+	0xff9e, 0xff9f,</div><div class='add'>+	0x101fd, 0x101fd,</div><div class='add'>+	0x102e0, 0x102e0,</div><div class='add'>+	0x10376, 0x1037a,</div><div class='add'>+	0x10a01, 0x10a03,</div><div class='add'>+	0x10a05, 0x10a06,</div><div class='add'>+	0x10a0c, 0x10a0f,</div><div class='add'>+	0x10a38, 0x10a3a,</div><div class='add'>+	0x10a3f, 0x10a3f,</div><div class='add'>+	0x10ae5, 0x10ae6,</div><div class='add'>+	0x10d24, 0x10d27,</div><div class='add'>+	0x10eab, 0x10eac,</div><div class='add'>+	0x10efd, 0x10eff,</div><div class='add'>+	0x10f46, 0x10f50,</div><div class='add'>+	0x10f82, 0x10f85,</div><div class='add'>+	0x11001, 0x11001,</div><div class='add'>+	0x11038, 0x11046,</div><div class='add'>+	0x11070, 0x11070,</div><div class='add'>+	0x11073, 0x11074,</div><div class='add'>+	0x1107f, 0x11081,</div><div class='add'>+	0x110b3, 0x110b6,</div><div class='add'>+	0x110b9, 0x110ba,</div><div class='add'>+	0x110c2, 0x110c2,</div><div class='add'>+	0x11100, 0x11102,</div><div class='add'>+	0x11127, 0x1112b,</div><div class='add'>+	0x1112d, 0x11134,</div><div class='add'>+	0x11173, 0x11173,</div><div class='add'>+	0x11180, 0x11181,</div><div class='add'>+	0x111b6, 0x111be,</div><div class='add'>+	0x111c9, 0x111cc,</div><div class='add'>+	0x111cf, 0x111cf,</div><div class='add'>+	0x1122f, 0x11231,</div><div class='add'>+	0x11234, 0x11234,</div><div class='add'>+	0x11236, 0x11237,</div><div class='add'>+	0x1123e, 0x1123e,</div><div class='add'>+	0x11241, 0x11241,</div><div class='add'>+	0x112df, 0x112df,</div><div class='add'>+	0x112e3, 0x112ea,</div><div class='add'>+	0x11300, 0x11301,</div><div class='add'>+	0x1133b, 0x1133c,</div><div class='add'>+	0x1133e, 0x1133e,</div><div class='add'>+	0x11340, 0x11340,</div><div class='add'>+	0x11357, 0x11357,</div><div class='add'>+	0x11366, 0x1136c,</div><div class='add'>+	0x11370, 0x11374,</div><div class='add'>+	0x11438, 0x1143f,</div><div class='add'>+	0x11442, 0x11444,</div><div class='add'>+	0x11446, 0x11446,</div><div class='add'>+	0x1145e, 0x1145e,</div><div class='add'>+	0x114b0, 0x114b0,</div><div class='add'>+	0x114b3, 0x114b8,</div><div class='add'>+	0x114ba, 0x114ba,</div><div class='add'>+	0x114bd, 0x114bd,</div><div class='add'>+	0x114bf, 0x114c0,</div><div class='add'>+	0x114c2, 0x114c3,</div><div class='add'>+	0x115af, 0x115af,</div><div class='add'>+	0x115b2, 0x115b5,</div><div class='add'>+	0x115bc, 0x115bd,</div><div class='add'>+	0x115bf, 0x115c0,</div><div class='add'>+	0x115dc, 0x115dd,</div><div class='add'>+	0x11633, 0x1163a,</div><div class='add'>+	0x1163d, 0x1163d,</div><div class='add'>+	0x1163f, 0x11640,</div><div class='add'>+	0x116ab, 0x116ab,</div><div class='add'>+	0x116ad, 0x116ad,</div><div class='add'>+	0x116b0, 0x116b5,</div><div class='add'>+	0x116b7, 0x116b7,</div><div class='add'>+	0x1171d, 0x1171f,</div><div class='add'>+	0x11722, 0x11725,</div><div class='add'>+	0x11727, 0x1172b,</div><div class='add'>+	0x1182f, 0x11837,</div><div class='add'>+	0x11839, 0x1183a,</div><div class='add'>+	0x11930, 0x11930,</div><div class='add'>+	0x1193b, 0x1193c,</div><div class='add'>+	0x1193e, 0x1193e,</div><div class='add'>+	0x11943, 0x11943,</div><div class='add'>+	0x119d4, 0x119d7,</div><div class='add'>+	0x119da, 0x119db,</div><div class='add'>+	0x119e0, 0x119e0,</div><div class='add'>+	0x11a01, 0x11a0a,</div><div class='add'>+	0x11a33, 0x11a38,</div><div class='add'>+	0x11a3b, 0x11a3e,</div><div class='add'>+	0x11a47, 0x11a47,</div><div class='add'>+	0x11a51, 0x11a56,</div><div class='add'>+	0x11a59, 0x11a5b,</div><div class='add'>+	0x11a8a, 0x11a96,</div><div class='add'>+	0x11a98, 0x11a99,</div><div class='add'>+	0x11c30, 0x11c36,</div><div class='add'>+	0x11c38, 0x11c3d,</div><div class='add'>+	0x11c3f, 0x11c3f,</div><div class='add'>+	0x11c92, 0x11ca7,</div><div class='add'>+	0x11caa, 0x11cb0,</div><div class='add'>+	0x11cb2, 0x11cb3,</div><div class='add'>+	0x11cb5, 0x11cb6,</div><div class='add'>+	0x11d31, 0x11d36,</div><div class='add'>+	0x11d3a, 0x11d3a,</div><div class='add'>+	0x11d3c, 0x11d3d,</div><div class='add'>+	0x11d3f, 0x11d45,</div><div class='add'>+	0x11d47, 0x11d47,</div><div class='add'>+	0x11d90, 0x11d91,</div><div class='add'>+	0x11d95, 0x11d95,</div><div class='add'>+	0x11d97, 0x11d97,</div><div class='add'>+	0x11ef3, 0x11ef4,</div><div class='add'>+	0x11f00, 0x11f01,</div><div class='add'>+	0x11f36, 0x11f3a,</div><div class='add'>+	0x11f40, 0x11f40,</div><div class='add'>+	0x11f42, 0x11f42,</div><div class='add'>+	0x13440, 0x13440,</div><div class='add'>+	0x13447, 0x13455,</div><div class='add'>+	0x16af0, 0x16af4,</div><div class='add'>+	0x16b30, 0x16b36,</div><div class='add'>+	0x16f4f, 0x16f4f,</div><div class='add'>+	0x16f8f, 0x16f92,</div><div class='add'>+	0x16fe4, 0x16fe4,</div><div class='add'>+	0x1bc9d, 0x1bc9e,</div><div class='add'>+	0x1cf00, 0x1cf2d,</div><div class='add'>+	0x1cf30, 0x1cf46,</div><div class='add'>+	0x1d165, 0x1d165,</div><div class='add'>+	0x1d167, 0x1d169,</div><div class='add'>+	0x1d16e, 0x1d172,</div><div class='add'>+	0x1d17b, 0x1d182,</div><div class='add'>+	0x1d185, 0x1d18b,</div><div class='add'>+	0x1d1aa, 0x1d1ad,</div><div class='add'>+	0x1d242, 0x1d244,</div><div class='add'>+	0x1da00, 0x1da36,</div><div class='add'>+	0x1da3b, 0x1da6c,</div><div class='add'>+	0x1da75, 0x1da75,</div><div class='add'>+	0x1da84, 0x1da84,</div><div class='add'>+	0x1da9b, 0x1da9f,</div><div class='add'>+	0x1daa1, 0x1daaf,</div><div class='add'>+	0x1e000, 0x1e006,</div><div class='add'>+	0x1e008, 0x1e018,</div><div class='add'>+	0x1e01b, 0x1e021,</div><div class='add'>+	0x1e023, 0x1e024,</div><div class='add'>+	0x1e026, 0x1e02a,</div><div class='add'>+	0x1e08f, 0x1e08f,</div><div class='add'>+	0x1e130, 0x1e136,</div><div class='add'>+	0x1e2ae, 0x1e2ae,</div><div class='add'>+	0x1e2ec, 0x1e2ef,</div><div class='add'>+	0x1e4ec, 0x1e4ef,</div><div class='add'>+	0x1e8d0, 0x1e8d6,</div><div class='add'>+	0x1e944, 0x1e94a,</div><div class='add'>+	0x1f3fb, 0x1f3ff,</div><div class='add'>+	0xe0020, 0xe007f,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+}; /* CR_Grapheme_Cluster_Break_Extend */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_Regional_Indicator': Grapheme_Cluster_Break=Regional_Indicator */</div><div class='add'>+#define CR_Grapheme_Cluster_Break_Regional_Indicator CR_Regional_Indicator</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_SpacingMark': Grapheme_Cluster_Break=SpacingMark */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Cluster_Break_SpacingMark[] = {</div><div class='add'>+	165,</div><div class='add'>+	0x0903, 0x0903,</div><div class='add'>+	0x093b, 0x093b,</div><div class='add'>+	0x093e, 0x0940,</div><div class='add'>+	0x0949, 0x094c,</div><div class='add'>+	0x094e, 0x094f,</div><div class='add'>+	0x0982, 0x0983,</div><div class='add'>+	0x09bf, 0x09c0,</div><div class='add'>+	0x09c7, 0x09c8,</div><div class='add'>+	0x09cb, 0x09cc,</div><div class='add'>+	0x0a03, 0x0a03,</div><div class='add'>+	0x0a3e, 0x0a40,</div><div class='add'>+	0x0a83, 0x0a83,</div><div class='add'>+	0x0abe, 0x0ac0,</div><div class='add'>+	0x0ac9, 0x0ac9,</div><div class='add'>+	0x0acb, 0x0acc,</div><div class='add'>+	0x0b02, 0x0b03,</div><div class='add'>+	0x0b40, 0x0b40,</div><div class='add'>+	0x0b47, 0x0b48,</div><div class='add'>+	0x0b4b, 0x0b4c,</div><div class='add'>+	0x0bbf, 0x0bbf,</div><div class='add'>+	0x0bc1, 0x0bc2,</div><div class='add'>+	0x0bc6, 0x0bc8,</div><div class='add'>+	0x0bca, 0x0bcc,</div><div class='add'>+	0x0c01, 0x0c03,</div><div class='add'>+	0x0c41, 0x0c44,</div><div class='add'>+	0x0c82, 0x0c83,</div><div class='add'>+	0x0cbe, 0x0cbe,</div><div class='add'>+	0x0cc0, 0x0cc1,</div><div class='add'>+	0x0cc3, 0x0cc4,</div><div class='add'>+	0x0cc7, 0x0cc8,</div><div class='add'>+	0x0cca, 0x0ccb,</div><div class='add'>+	0x0cf3, 0x0cf3,</div><div class='add'>+	0x0d02, 0x0d03,</div><div class='add'>+	0x0d3f, 0x0d40,</div><div class='add'>+	0x0d46, 0x0d48,</div><div class='add'>+	0x0d4a, 0x0d4c,</div><div class='add'>+	0x0d82, 0x0d83,</div><div class='add'>+	0x0dd0, 0x0dd1,</div><div class='add'>+	0x0dd8, 0x0dde,</div><div class='add'>+	0x0df2, 0x0df3,</div><div class='add'>+	0x0e33, 0x0e33,</div><div class='add'>+	0x0eb3, 0x0eb3,</div><div class='add'>+	0x0f3e, 0x0f3f,</div><div class='add'>+	0x0f7f, 0x0f7f,</div><div class='add'>+	0x1031, 0x1031,</div><div class='add'>+	0x103b, 0x103c,</div><div class='add'>+	0x1056, 0x1057,</div><div class='add'>+	0x1084, 0x1084,</div><div class='add'>+	0x1715, 0x1715,</div><div class='add'>+	0x1734, 0x1734,</div><div class='add'>+	0x17b6, 0x17b6,</div><div class='add'>+	0x17be, 0x17c5,</div><div class='add'>+	0x17c7, 0x17c8,</div><div class='add'>+	0x1923, 0x1926,</div><div class='add'>+	0x1929, 0x192b,</div><div class='add'>+	0x1930, 0x1931,</div><div class='add'>+	0x1933, 0x1938,</div><div class='add'>+	0x1a19, 0x1a1a,</div><div class='add'>+	0x1a55, 0x1a55,</div><div class='add'>+	0x1a57, 0x1a57,</div><div class='add'>+	0x1a6d, 0x1a72,</div><div class='add'>+	0x1b04, 0x1b04,</div><div class='add'>+	0x1b3b, 0x1b3b,</div><div class='add'>+	0x1b3d, 0x1b41,</div><div class='add'>+	0x1b43, 0x1b44,</div><div class='add'>+	0x1b82, 0x1b82,</div><div class='add'>+	0x1ba1, 0x1ba1,</div><div class='add'>+	0x1ba6, 0x1ba7,</div><div class='add'>+	0x1baa, 0x1baa,</div><div class='add'>+	0x1be7, 0x1be7,</div><div class='add'>+	0x1bea, 0x1bec,</div><div class='add'>+	0x1bee, 0x1bee,</div><div class='add'>+	0x1bf2, 0x1bf3,</div><div class='add'>+	0x1c24, 0x1c2b,</div><div class='add'>+	0x1c34, 0x1c35,</div><div class='add'>+	0x1ce1, 0x1ce1,</div><div class='add'>+	0x1cf7, 0x1cf7,</div><div class='add'>+	0xa823, 0xa824,</div><div class='add'>+	0xa827, 0xa827,</div><div class='add'>+	0xa880, 0xa881,</div><div class='add'>+	0xa8b4, 0xa8c3,</div><div class='add'>+	0xa952, 0xa953,</div><div class='add'>+	0xa983, 0xa983,</div><div class='add'>+	0xa9b4, 0xa9b5,</div><div class='add'>+	0xa9ba, 0xa9bb,</div><div class='add'>+	0xa9be, 0xa9c0,</div><div class='add'>+	0xaa2f, 0xaa30,</div><div class='add'>+	0xaa33, 0xaa34,</div><div class='add'>+	0xaa4d, 0xaa4d,</div><div class='add'>+	0xaaeb, 0xaaeb,</div><div class='add'>+	0xaaee, 0xaaef,</div><div class='add'>+	0xaaf5, 0xaaf5,</div><div class='add'>+	0xabe3, 0xabe4,</div><div class='add'>+	0xabe6, 0xabe7,</div><div class='add'>+	0xabe9, 0xabea,</div><div class='add'>+	0xabec, 0xabec,</div><div class='add'>+	0x11000, 0x11000,</div><div class='add'>+	0x11002, 0x11002,</div><div class='add'>+	0x11082, 0x11082,</div><div class='add'>+	0x110b0, 0x110b2,</div><div class='add'>+	0x110b7, 0x110b8,</div><div class='add'>+	0x1112c, 0x1112c,</div><div class='add'>+	0x11145, 0x11146,</div><div class='add'>+	0x11182, 0x11182,</div><div class='add'>+	0x111b3, 0x111b5,</div><div class='add'>+	0x111bf, 0x111c0,</div><div class='add'>+	0x111ce, 0x111ce,</div><div class='add'>+	0x1122c, 0x1122e,</div><div class='add'>+	0x11232, 0x11233,</div><div class='add'>+	0x11235, 0x11235,</div><div class='add'>+	0x112e0, 0x112e2,</div><div class='add'>+	0x11302, 0x11303,</div><div class='add'>+	0x1133f, 0x1133f,</div><div class='add'>+	0x11341, 0x11344,</div><div class='add'>+	0x11347, 0x11348,</div><div class='add'>+	0x1134b, 0x1134d,</div><div class='add'>+	0x11362, 0x11363,</div><div class='add'>+	0x11435, 0x11437,</div><div class='add'>+	0x11440, 0x11441,</div><div class='add'>+	0x11445, 0x11445,</div><div class='add'>+	0x114b1, 0x114b2,</div><div class='add'>+	0x114b9, 0x114b9,</div><div class='add'>+	0x114bb, 0x114bc,</div><div class='add'>+	0x114be, 0x114be,</div><div class='add'>+	0x114c1, 0x114c1,</div><div class='add'>+	0x115b0, 0x115b1,</div><div class='add'>+	0x115b8, 0x115bb,</div><div class='add'>+	0x115be, 0x115be,</div><div class='add'>+	0x11630, 0x11632,</div><div class='add'>+	0x1163b, 0x1163c,</div><div class='add'>+	0x1163e, 0x1163e,</div><div class='add'>+	0x116ac, 0x116ac,</div><div class='add'>+	0x116ae, 0x116af,</div><div class='add'>+	0x116b6, 0x116b6,</div><div class='add'>+	0x11726, 0x11726,</div><div class='add'>+	0x1182c, 0x1182e,</div><div class='add'>+	0x11838, 0x11838,</div><div class='add'>+	0x11931, 0x11935,</div><div class='add'>+	0x11937, 0x11938,</div><div class='add'>+	0x1193d, 0x1193d,</div><div class='add'>+	0x11940, 0x11940,</div><div class='add'>+	0x11942, 0x11942,</div><div class='add'>+	0x119d1, 0x119d3,</div><div class='add'>+	0x119dc, 0x119df,</div><div class='add'>+	0x119e4, 0x119e4,</div><div class='add'>+	0x11a39, 0x11a39,</div><div class='add'>+	0x11a57, 0x11a58,</div><div class='add'>+	0x11a97, 0x11a97,</div><div class='add'>+	0x11c2f, 0x11c2f,</div><div class='add'>+	0x11c3e, 0x11c3e,</div><div class='add'>+	0x11ca9, 0x11ca9,</div><div class='add'>+	0x11cb1, 0x11cb1,</div><div class='add'>+	0x11cb4, 0x11cb4,</div><div class='add'>+	0x11d8a, 0x11d8e,</div><div class='add'>+	0x11d93, 0x11d94,</div><div class='add'>+	0x11d96, 0x11d96,</div><div class='add'>+	0x11ef5, 0x11ef6,</div><div class='add'>+	0x11f03, 0x11f03,</div><div class='add'>+	0x11f34, 0x11f35,</div><div class='add'>+	0x11f3e, 0x11f3f,</div><div class='add'>+	0x11f41, 0x11f41,</div><div class='add'>+	0x16f51, 0x16f87,</div><div class='add'>+	0x16ff0, 0x16ff1,</div><div class='add'>+	0x1d166, 0x1d166,</div><div class='add'>+	0x1d16d, 0x1d16d,</div><div class='add'>+}; /* CR_Grapheme_Cluster_Break_SpacingMark */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_L': Grapheme_Cluster_Break=L */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Cluster_Break_L[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x1100, 0x115f,</div><div class='add'>+	0xa960, 0xa97c,</div><div class='add'>+}; /* CR_Grapheme_Cluster_Break_L */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_V': Grapheme_Cluster_Break=V */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Cluster_Break_V[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x1160, 0x11a7,</div><div class='add'>+	0xd7b0, 0xd7c6,</div><div class='add'>+}; /* CR_Grapheme_Cluster_Break_V */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_T': Grapheme_Cluster_Break=T */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Cluster_Break_T[] = {</div><div class='add'>+	2,</div><div class='add'>+	0x11a8, 0x11ff,</div><div class='add'>+	0xd7cb, 0xd7fb,</div><div class='add'>+}; /* CR_Grapheme_Cluster_Break_T */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_LV': Grapheme_Cluster_Break=LV */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Cluster_Break_LV[] = {</div><div class='add'>+	399,</div><div class='add'>+	0xac00, 0xac00,</div><div class='add'>+	0xac1c, 0xac1c,</div><div class='add'>+	0xac38, 0xac38,</div><div class='add'>+	0xac54, 0xac54,</div><div class='add'>+	0xac70, 0xac70,</div><div class='add'>+	0xac8c, 0xac8c,</div><div class='add'>+	0xaca8, 0xaca8,</div><div class='add'>+	0xacc4, 0xacc4,</div><div class='add'>+	0xace0, 0xace0,</div><div class='add'>+	0xacfc, 0xacfc,</div><div class='add'>+	0xad18, 0xad18,</div><div class='add'>+	0xad34, 0xad34,</div><div class='add'>+	0xad50, 0xad50,</div><div class='add'>+	0xad6c, 0xad6c,</div><div class='add'>+	0xad88, 0xad88,</div><div class='add'>+	0xada4, 0xada4,</div><div class='add'>+	0xadc0, 0xadc0,</div><div class='add'>+	0xaddc, 0xaddc,</div><div class='add'>+	0xadf8, 0xadf8,</div><div class='add'>+	0xae14, 0xae14,</div><div class='add'>+	0xae30, 0xae30,</div><div class='add'>+	0xae4c, 0xae4c,</div><div class='add'>+	0xae68, 0xae68,</div><div class='add'>+	0xae84, 0xae84,</div><div class='add'>+	0xaea0, 0xaea0,</div><div class='add'>+	0xaebc, 0xaebc,</div><div class='add'>+	0xaed8, 0xaed8,</div><div class='add'>+	0xaef4, 0xaef4,</div><div class='add'>+	0xaf10, 0xaf10,</div><div class='add'>+	0xaf2c, 0xaf2c,</div><div class='add'>+	0xaf48, 0xaf48,</div><div class='add'>+	0xaf64, 0xaf64,</div><div class='add'>+	0xaf80, 0xaf80,</div><div class='add'>+	0xaf9c, 0xaf9c,</div><div class='add'>+	0xafb8, 0xafb8,</div><div class='add'>+	0xafd4, 0xafd4,</div><div class='add'>+	0xaff0, 0xaff0,</div><div class='add'>+	0xb00c, 0xb00c,</div><div class='add'>+	0xb028, 0xb028,</div><div class='add'>+	0xb044, 0xb044,</div><div class='add'>+	0xb060, 0xb060,</div><div class='add'>+	0xb07c, 0xb07c,</div><div class='add'>+	0xb098, 0xb098,</div><div class='add'>+	0xb0b4, 0xb0b4,</div><div class='add'>+	0xb0d0, 0xb0d0,</div><div class='add'>+	0xb0ec, 0xb0ec,</div><div class='add'>+	0xb108, 0xb108,</div><div class='add'>+	0xb124, 0xb124,</div><div class='add'>+	0xb140, 0xb140,</div><div class='add'>+	0xb15c, 0xb15c,</div><div class='add'>+	0xb178, 0xb178,</div><div class='add'>+	0xb194, 0xb194,</div><div class='add'>+	0xb1b0, 0xb1b0,</div><div class='add'>+	0xb1cc, 0xb1cc,</div><div class='add'>+	0xb1e8, 0xb1e8,</div><div class='add'>+	0xb204, 0xb204,</div><div class='add'>+	0xb220, 0xb220,</div><div class='add'>+	0xb23c, 0xb23c,</div><div class='add'>+	0xb258, 0xb258,</div><div class='add'>+	0xb274, 0xb274,</div><div class='add'>+	0xb290, 0xb290,</div><div class='add'>+	0xb2ac, 0xb2ac,</div><div class='add'>+	0xb2c8, 0xb2c8,</div><div class='add'>+	0xb2e4, 0xb2e4,</div><div class='add'>+	0xb300, 0xb300,</div><div class='add'>+	0xb31c, 0xb31c,</div><div class='add'>+	0xb338, 0xb338,</div><div class='add'>+	0xb354, 0xb354,</div><div class='add'>+	0xb370, 0xb370,</div><div class='add'>+	0xb38c, 0xb38c,</div><div class='add'>+	0xb3a8, 0xb3a8,</div><div class='add'>+	0xb3c4, 0xb3c4,</div><div class='add'>+	0xb3e0, 0xb3e0,</div><div class='add'>+	0xb3fc, 0xb3fc,</div><div class='add'>+	0xb418, 0xb418,</div><div class='add'>+	0xb434, 0xb434,</div><div class='add'>+	0xb450, 0xb450,</div><div class='add'>+	0xb46c, 0xb46c,</div><div class='add'>+	0xb488, 0xb488,</div><div class='add'>+	0xb4a4, 0xb4a4,</div><div class='add'>+	0xb4c0, 0xb4c0,</div><div class='add'>+	0xb4dc, 0xb4dc,</div><div class='add'>+	0xb4f8, 0xb4f8,</div><div class='add'>+	0xb514, 0xb514,</div><div class='add'>+	0xb530, 0xb530,</div><div class='add'>+	0xb54c, 0xb54c,</div><div class='add'>+	0xb568, 0xb568,</div><div class='add'>+	0xb584, 0xb584,</div><div class='add'>+	0xb5a0, 0xb5a0,</div><div class='add'>+	0xb5bc, 0xb5bc,</div><div class='add'>+	0xb5d8, 0xb5d8,</div><div class='add'>+	0xb5f4, 0xb5f4,</div><div class='add'>+	0xb610, 0xb610,</div><div class='add'>+	0xb62c, 0xb62c,</div><div class='add'>+	0xb648, 0xb648,</div><div class='add'>+	0xb664, 0xb664,</div><div class='add'>+	0xb680, 0xb680,</div><div class='add'>+	0xb69c, 0xb69c,</div><div class='add'>+	0xb6b8, 0xb6b8,</div><div class='add'>+	0xb6d4, 0xb6d4,</div><div class='add'>+	0xb6f0, 0xb6f0,</div><div class='add'>+	0xb70c, 0xb70c,</div><div class='add'>+	0xb728, 0xb728,</div><div class='add'>+	0xb744, 0xb744,</div><div class='add'>+	0xb760, 0xb760,</div><div class='add'>+	0xb77c, 0xb77c,</div><div class='add'>+	0xb798, 0xb798,</div><div class='add'>+	0xb7b4, 0xb7b4,</div><div class='add'>+	0xb7d0, 0xb7d0,</div><div class='add'>+	0xb7ec, 0xb7ec,</div><div class='add'>+	0xb808, 0xb808,</div><div class='add'>+	0xb824, 0xb824,</div><div class='add'>+	0xb840, 0xb840,</div><div class='add'>+	0xb85c, 0xb85c,</div><div class='add'>+	0xb878, 0xb878,</div><div class='add'>+	0xb894, 0xb894,</div><div class='add'>+	0xb8b0, 0xb8b0,</div><div class='add'>+	0xb8cc, 0xb8cc,</div><div class='add'>+	0xb8e8, 0xb8e8,</div><div class='add'>+	0xb904, 0xb904,</div><div class='add'>+	0xb920, 0xb920,</div><div class='add'>+	0xb93c, 0xb93c,</div><div class='add'>+	0xb958, 0xb958,</div><div class='add'>+	0xb974, 0xb974,</div><div class='add'>+	0xb990, 0xb990,</div><div class='add'>+	0xb9ac, 0xb9ac,</div><div class='add'>+	0xb9c8, 0xb9c8,</div><div class='add'>+	0xb9e4, 0xb9e4,</div><div class='add'>+	0xba00, 0xba00,</div><div class='add'>+	0xba1c, 0xba1c,</div><div class='add'>+	0xba38, 0xba38,</div><div class='add'>+	0xba54, 0xba54,</div><div class='add'>+	0xba70, 0xba70,</div><div class='add'>+	0xba8c, 0xba8c,</div><div class='add'>+	0xbaa8, 0xbaa8,</div><div class='add'>+	0xbac4, 0xbac4,</div><div class='add'>+	0xbae0, 0xbae0,</div><div class='add'>+	0xbafc, 0xbafc,</div><div class='add'>+	0xbb18, 0xbb18,</div><div class='add'>+	0xbb34, 0xbb34,</div><div class='add'>+	0xbb50, 0xbb50,</div><div class='add'>+	0xbb6c, 0xbb6c,</div><div class='add'>+	0xbb88, 0xbb88,</div><div class='add'>+	0xbba4, 0xbba4,</div><div class='add'>+	0xbbc0, 0xbbc0,</div><div class='add'>+	0xbbdc, 0xbbdc,</div><div class='add'>+	0xbbf8, 0xbbf8,</div><div class='add'>+	0xbc14, 0xbc14,</div><div class='add'>+	0xbc30, 0xbc30,</div><div class='add'>+	0xbc4c, 0xbc4c,</div><div class='add'>+	0xbc68, 0xbc68,</div><div class='add'>+	0xbc84, 0xbc84,</div><div class='add'>+	0xbca0, 0xbca0,</div><div class='add'>+	0xbcbc, 0xbcbc,</div><div class='add'>+	0xbcd8, 0xbcd8,</div><div class='add'>+	0xbcf4, 0xbcf4,</div><div class='add'>+	0xbd10, 0xbd10,</div><div class='add'>+	0xbd2c, 0xbd2c,</div><div class='add'>+	0xbd48, 0xbd48,</div><div class='add'>+	0xbd64, 0xbd64,</div><div class='add'>+	0xbd80, 0xbd80,</div><div class='add'>+	0xbd9c, 0xbd9c,</div><div class='add'>+	0xbdb8, 0xbdb8,</div><div class='add'>+	0xbdd4, 0xbdd4,</div><div class='add'>+	0xbdf0, 0xbdf0,</div><div class='add'>+	0xbe0c, 0xbe0c,</div><div class='add'>+	0xbe28, 0xbe28,</div><div class='add'>+	0xbe44, 0xbe44,</div><div class='add'>+	0xbe60, 0xbe60,</div><div class='add'>+	0xbe7c, 0xbe7c,</div><div class='add'>+	0xbe98, 0xbe98,</div><div class='add'>+	0xbeb4, 0xbeb4,</div><div class='add'>+	0xbed0, 0xbed0,</div><div class='add'>+	0xbeec, 0xbeec,</div><div class='add'>+	0xbf08, 0xbf08,</div><div class='add'>+	0xbf24, 0xbf24,</div><div class='add'>+	0xbf40, 0xbf40,</div><div class='add'>+	0xbf5c, 0xbf5c,</div><div class='add'>+	0xbf78, 0xbf78,</div><div class='add'>+	0xbf94, 0xbf94,</div><div class='add'>+	0xbfb0, 0xbfb0,</div><div class='add'>+	0xbfcc, 0xbfcc,</div><div class='add'>+	0xbfe8, 0xbfe8,</div><div class='add'>+	0xc004, 0xc004,</div><div class='add'>+	0xc020, 0xc020,</div><div class='add'>+	0xc03c, 0xc03c,</div><div class='add'>+	0xc058, 0xc058,</div><div class='add'>+	0xc074, 0xc074,</div><div class='add'>+	0xc090, 0xc090,</div><div class='add'>+	0xc0ac, 0xc0ac,</div><div class='add'>+	0xc0c8, 0xc0c8,</div><div class='add'>+	0xc0e4, 0xc0e4,</div><div class='add'>+	0xc100, 0xc100,</div><div class='add'>+	0xc11c, 0xc11c,</div><div class='add'>+	0xc138, 0xc138,</div><div class='add'>+	0xc154, 0xc154,</div><div class='add'>+	0xc170, 0xc170,</div><div class='add'>+	0xc18c, 0xc18c,</div><div class='add'>+	0xc1a8, 0xc1a8,</div><div class='add'>+	0xc1c4, 0xc1c4,</div><div class='add'>+	0xc1e0, 0xc1e0,</div><div class='add'>+	0xc1fc, 0xc1fc,</div><div class='add'>+	0xc218, 0xc218,</div><div class='add'>+	0xc234, 0xc234,</div><div class='add'>+	0xc250, 0xc250,</div><div class='add'>+	0xc26c, 0xc26c,</div><div class='add'>+	0xc288, 0xc288,</div><div class='add'>+	0xc2a4, 0xc2a4,</div><div class='add'>+	0xc2c0, 0xc2c0,</div><div class='add'>+	0xc2dc, 0xc2dc,</div><div class='add'>+	0xc2f8, 0xc2f8,</div><div class='add'>+	0xc314, 0xc314,</div><div class='add'>+	0xc330, 0xc330,</div><div class='add'>+	0xc34c, 0xc34c,</div><div class='add'>+	0xc368, 0xc368,</div><div class='add'>+	0xc384, 0xc384,</div><div class='add'>+	0xc3a0, 0xc3a0,</div><div class='add'>+	0xc3bc, 0xc3bc,</div><div class='add'>+	0xc3d8, 0xc3d8,</div><div class='add'>+	0xc3f4, 0xc3f4,</div><div class='add'>+	0xc410, 0xc410,</div><div class='add'>+	0xc42c, 0xc42c,</div><div class='add'>+	0xc448, 0xc448,</div><div class='add'>+	0xc464, 0xc464,</div><div class='add'>+	0xc480, 0xc480,</div><div class='add'>+	0xc49c, 0xc49c,</div><div class='add'>+	0xc4b8, 0xc4b8,</div><div class='add'>+	0xc4d4, 0xc4d4,</div><div class='add'>+	0xc4f0, 0xc4f0,</div><div class='add'>+	0xc50c, 0xc50c,</div><div class='add'>+	0xc528, 0xc528,</div><div class='add'>+	0xc544, 0xc544,</div><div class='add'>+	0xc560, 0xc560,</div><div class='add'>+	0xc57c, 0xc57c,</div><div class='add'>+	0xc598, 0xc598,</div><div class='add'>+	0xc5b4, 0xc5b4,</div><div class='add'>+	0xc5d0, 0xc5d0,</div><div class='add'>+	0xc5ec, 0xc5ec,</div><div class='add'>+	0xc608, 0xc608,</div><div class='add'>+	0xc624, 0xc624,</div><div class='add'>+	0xc640, 0xc640,</div><div class='add'>+	0xc65c, 0xc65c,</div><div class='add'>+	0xc678, 0xc678,</div><div class='add'>+	0xc694, 0xc694,</div><div class='add'>+	0xc6b0, 0xc6b0,</div><div class='add'>+	0xc6cc, 0xc6cc,</div><div class='add'>+	0xc6e8, 0xc6e8,</div><div class='add'>+	0xc704, 0xc704,</div><div class='add'>+	0xc720, 0xc720,</div><div class='add'>+	0xc73c, 0xc73c,</div><div class='add'>+	0xc758, 0xc758,</div><div class='add'>+	0xc774, 0xc774,</div><div class='add'>+	0xc790, 0xc790,</div><div class='add'>+	0xc7ac, 0xc7ac,</div><div class='add'>+	0xc7c8, 0xc7c8,</div><div class='add'>+	0xc7e4, 0xc7e4,</div><div class='add'>+	0xc800, 0xc800,</div><div class='add'>+	0xc81c, 0xc81c,</div><div class='add'>+	0xc838, 0xc838,</div><div class='add'>+	0xc854, 0xc854,</div><div class='add'>+	0xc870, 0xc870,</div><div class='add'>+	0xc88c, 0xc88c,</div><div class='add'>+	0xc8a8, 0xc8a8,</div><div class='add'>+	0xc8c4, 0xc8c4,</div><div class='add'>+	0xc8e0, 0xc8e0,</div><div class='add'>+	0xc8fc, 0xc8fc,</div><div class='add'>+	0xc918, 0xc918,</div><div class='add'>+	0xc934, 0xc934,</div><div class='add'>+	0xc950, 0xc950,</div><div class='add'>+	0xc96c, 0xc96c,</div><div class='add'>+	0xc988, 0xc988,</div><div class='add'>+	0xc9a4, 0xc9a4,</div><div class='add'>+	0xc9c0, 0xc9c0,</div><div class='add'>+	0xc9dc, 0xc9dc,</div><div class='add'>+	0xc9f8, 0xc9f8,</div><div class='add'>+	0xca14, 0xca14,</div><div class='add'>+	0xca30, 0xca30,</div><div class='add'>+	0xca4c, 0xca4c,</div><div class='add'>+	0xca68, 0xca68,</div><div class='add'>+	0xca84, 0xca84,</div><div class='add'>+	0xcaa0, 0xcaa0,</div><div class='add'>+	0xcabc, 0xcabc,</div><div class='add'>+	0xcad8, 0xcad8,</div><div class='add'>+	0xcaf4, 0xcaf4,</div><div class='add'>+	0xcb10, 0xcb10,</div><div class='add'>+	0xcb2c, 0xcb2c,</div><div class='add'>+	0xcb48, 0xcb48,</div><div class='add'>+	0xcb64, 0xcb64,</div><div class='add'>+	0xcb80, 0xcb80,</div><div class='add'>+	0xcb9c, 0xcb9c,</div><div class='add'>+	0xcbb8, 0xcbb8,</div><div class='add'>+	0xcbd4, 0xcbd4,</div><div class='add'>+	0xcbf0, 0xcbf0,</div><div class='add'>+	0xcc0c, 0xcc0c,</div><div class='add'>+	0xcc28, 0xcc28,</div><div class='add'>+	0xcc44, 0xcc44,</div><div class='add'>+	0xcc60, 0xcc60,</div><div class='add'>+	0xcc7c, 0xcc7c,</div><div class='add'>+	0xcc98, 0xcc98,</div><div class='add'>+	0xccb4, 0xccb4,</div><div class='add'>+	0xccd0, 0xccd0,</div><div class='add'>+	0xccec, 0xccec,</div><div class='add'>+	0xcd08, 0xcd08,</div><div class='add'>+	0xcd24, 0xcd24,</div><div class='add'>+	0xcd40, 0xcd40,</div><div class='add'>+	0xcd5c, 0xcd5c,</div><div class='add'>+	0xcd78, 0xcd78,</div><div class='add'>+	0xcd94, 0xcd94,</div><div class='add'>+	0xcdb0, 0xcdb0,</div><div class='add'>+	0xcdcc, 0xcdcc,</div><div class='add'>+	0xcde8, 0xcde8,</div><div class='add'>+	0xce04, 0xce04,</div><div class='add'>+	0xce20, 0xce20,</div><div class='add'>+	0xce3c, 0xce3c,</div><div class='add'>+	0xce58, 0xce58,</div><div class='add'>+	0xce74, 0xce74,</div><div class='add'>+	0xce90, 0xce90,</div><div class='add'>+	0xceac, 0xceac,</div><div class='add'>+	0xcec8, 0xcec8,</div><div class='add'>+	0xcee4, 0xcee4,</div><div class='add'>+	0xcf00, 0xcf00,</div><div class='add'>+	0xcf1c, 0xcf1c,</div><div class='add'>+	0xcf38, 0xcf38,</div><div class='add'>+	0xcf54, 0xcf54,</div><div class='add'>+	0xcf70, 0xcf70,</div><div class='add'>+	0xcf8c, 0xcf8c,</div><div class='add'>+	0xcfa8, 0xcfa8,</div><div class='add'>+	0xcfc4, 0xcfc4,</div><div class='add'>+	0xcfe0, 0xcfe0,</div><div class='add'>+	0xcffc, 0xcffc,</div><div class='add'>+	0xd018, 0xd018,</div><div class='add'>+	0xd034, 0xd034,</div><div class='add'>+	0xd050, 0xd050,</div><div class='add'>+	0xd06c, 0xd06c,</div><div class='add'>+	0xd088, 0xd088,</div><div class='add'>+	0xd0a4, 0xd0a4,</div><div class='add'>+	0xd0c0, 0xd0c0,</div><div class='add'>+	0xd0dc, 0xd0dc,</div><div class='add'>+	0xd0f8, 0xd0f8,</div><div class='add'>+	0xd114, 0xd114,</div><div class='add'>+	0xd130, 0xd130,</div><div class='add'>+	0xd14c, 0xd14c,</div><div class='add'>+	0xd168, 0xd168,</div><div class='add'>+	0xd184, 0xd184,</div><div class='add'>+	0xd1a0, 0xd1a0,</div><div class='add'>+	0xd1bc, 0xd1bc,</div><div class='add'>+	0xd1d8, 0xd1d8,</div><div class='add'>+	0xd1f4, 0xd1f4,</div><div class='add'>+	0xd210, 0xd210,</div><div class='add'>+	0xd22c, 0xd22c,</div><div class='add'>+	0xd248, 0xd248,</div><div class='add'>+	0xd264, 0xd264,</div><div class='add'>+	0xd280, 0xd280,</div><div class='add'>+	0xd29c, 0xd29c,</div><div class='add'>+	0xd2b8, 0xd2b8,</div><div class='add'>+	0xd2d4, 0xd2d4,</div><div class='add'>+	0xd2f0, 0xd2f0,</div><div class='add'>+	0xd30c, 0xd30c,</div><div class='add'>+	0xd328, 0xd328,</div><div class='add'>+	0xd344, 0xd344,</div><div class='add'>+	0xd360, 0xd360,</div><div class='add'>+	0xd37c, 0xd37c,</div><div class='add'>+	0xd398, 0xd398,</div><div class='add'>+	0xd3b4, 0xd3b4,</div><div class='add'>+	0xd3d0, 0xd3d0,</div><div class='add'>+	0xd3ec, 0xd3ec,</div><div class='add'>+	0xd408, 0xd408,</div><div class='add'>+	0xd424, 0xd424,</div><div class='add'>+	0xd440, 0xd440,</div><div class='add'>+	0xd45c, 0xd45c,</div><div class='add'>+	0xd478, 0xd478,</div><div class='add'>+	0xd494, 0xd494,</div><div class='add'>+	0xd4b0, 0xd4b0,</div><div class='add'>+	0xd4cc, 0xd4cc,</div><div class='add'>+	0xd4e8, 0xd4e8,</div><div class='add'>+	0xd504, 0xd504,</div><div class='add'>+	0xd520, 0xd520,</div><div class='add'>+	0xd53c, 0xd53c,</div><div class='add'>+	0xd558, 0xd558,</div><div class='add'>+	0xd574, 0xd574,</div><div class='add'>+	0xd590, 0xd590,</div><div class='add'>+	0xd5ac, 0xd5ac,</div><div class='add'>+	0xd5c8, 0xd5c8,</div><div class='add'>+	0xd5e4, 0xd5e4,</div><div class='add'>+	0xd600, 0xd600,</div><div class='add'>+	0xd61c, 0xd61c,</div><div class='add'>+	0xd638, 0xd638,</div><div class='add'>+	0xd654, 0xd654,</div><div class='add'>+	0xd670, 0xd670,</div><div class='add'>+	0xd68c, 0xd68c,</div><div class='add'>+	0xd6a8, 0xd6a8,</div><div class='add'>+	0xd6c4, 0xd6c4,</div><div class='add'>+	0xd6e0, 0xd6e0,</div><div class='add'>+	0xd6fc, 0xd6fc,</div><div class='add'>+	0xd718, 0xd718,</div><div class='add'>+	0xd734, 0xd734,</div><div class='add'>+	0xd750, 0xd750,</div><div class='add'>+	0xd76c, 0xd76c,</div><div class='add'>+	0xd788, 0xd788,</div><div class='add'>+}; /* CR_Grapheme_Cluster_Break_LV */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_LVT': Grapheme_Cluster_Break=LVT */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Cluster_Break_LVT[] = {</div><div class='add'>+	399,</div><div class='add'>+	0xac01, 0xac1b,</div><div class='add'>+	0xac1d, 0xac37,</div><div class='add'>+	0xac39, 0xac53,</div><div class='add'>+	0xac55, 0xac6f,</div><div class='add'>+	0xac71, 0xac8b,</div><div class='add'>+	0xac8d, 0xaca7,</div><div class='add'>+	0xaca9, 0xacc3,</div><div class='add'>+	0xacc5, 0xacdf,</div><div class='add'>+	0xace1, 0xacfb,</div><div class='add'>+	0xacfd, 0xad17,</div><div class='add'>+	0xad19, 0xad33,</div><div class='add'>+	0xad35, 0xad4f,</div><div class='add'>+	0xad51, 0xad6b,</div><div class='add'>+	0xad6d, 0xad87,</div><div class='add'>+	0xad89, 0xada3,</div><div class='add'>+	0xada5, 0xadbf,</div><div class='add'>+	0xadc1, 0xaddb,</div><div class='add'>+	0xaddd, 0xadf7,</div><div class='add'>+	0xadf9, 0xae13,</div><div class='add'>+	0xae15, 0xae2f,</div><div class='add'>+	0xae31, 0xae4b,</div><div class='add'>+	0xae4d, 0xae67,</div><div class='add'>+	0xae69, 0xae83,</div><div class='add'>+	0xae85, 0xae9f,</div><div class='add'>+	0xaea1, 0xaebb,</div><div class='add'>+	0xaebd, 0xaed7,</div><div class='add'>+	0xaed9, 0xaef3,</div><div class='add'>+	0xaef5, 0xaf0f,</div><div class='add'>+	0xaf11, 0xaf2b,</div><div class='add'>+	0xaf2d, 0xaf47,</div><div class='add'>+	0xaf49, 0xaf63,</div><div class='add'>+	0xaf65, 0xaf7f,</div><div class='add'>+	0xaf81, 0xaf9b,</div><div class='add'>+	0xaf9d, 0xafb7,</div><div class='add'>+	0xafb9, 0xafd3,</div><div class='add'>+	0xafd5, 0xafef,</div><div class='add'>+	0xaff1, 0xb00b,</div><div class='add'>+	0xb00d, 0xb027,</div><div class='add'>+	0xb029, 0xb043,</div><div class='add'>+	0xb045, 0xb05f,</div><div class='add'>+	0xb061, 0xb07b,</div><div class='add'>+	0xb07d, 0xb097,</div><div class='add'>+	0xb099, 0xb0b3,</div><div class='add'>+	0xb0b5, 0xb0cf,</div><div class='add'>+	0xb0d1, 0xb0eb,</div><div class='add'>+	0xb0ed, 0xb107,</div><div class='add'>+	0xb109, 0xb123,</div><div class='add'>+	0xb125, 0xb13f,</div><div class='add'>+	0xb141, 0xb15b,</div><div class='add'>+	0xb15d, 0xb177,</div><div class='add'>+	0xb179, 0xb193,</div><div class='add'>+	0xb195, 0xb1af,</div><div class='add'>+	0xb1b1, 0xb1cb,</div><div class='add'>+	0xb1cd, 0xb1e7,</div><div class='add'>+	0xb1e9, 0xb203,</div><div class='add'>+	0xb205, 0xb21f,</div><div class='add'>+	0xb221, 0xb23b,</div><div class='add'>+	0xb23d, 0xb257,</div><div class='add'>+	0xb259, 0xb273,</div><div class='add'>+	0xb275, 0xb28f,</div><div class='add'>+	0xb291, 0xb2ab,</div><div class='add'>+	0xb2ad, 0xb2c7,</div><div class='add'>+	0xb2c9, 0xb2e3,</div><div class='add'>+	0xb2e5, 0xb2ff,</div><div class='add'>+	0xb301, 0xb31b,</div><div class='add'>+	0xb31d, 0xb337,</div><div class='add'>+	0xb339, 0xb353,</div><div class='add'>+	0xb355, 0xb36f,</div><div class='add'>+	0xb371, 0xb38b,</div><div class='add'>+	0xb38d, 0xb3a7,</div><div class='add'>+	0xb3a9, 0xb3c3,</div><div class='add'>+	0xb3c5, 0xb3df,</div><div class='add'>+	0xb3e1, 0xb3fb,</div><div class='add'>+	0xb3fd, 0xb417,</div><div class='add'>+	0xb419, 0xb433,</div><div class='add'>+	0xb435, 0xb44f,</div><div class='add'>+	0xb451, 0xb46b,</div><div class='add'>+	0xb46d, 0xb487,</div><div class='add'>+	0xb489, 0xb4a3,</div><div class='add'>+	0xb4a5, 0xb4bf,</div><div class='add'>+	0xb4c1, 0xb4db,</div><div class='add'>+	0xb4dd, 0xb4f7,</div><div class='add'>+	0xb4f9, 0xb513,</div><div class='add'>+	0xb515, 0xb52f,</div><div class='add'>+	0xb531, 0xb54b,</div><div class='add'>+	0xb54d, 0xb567,</div><div class='add'>+	0xb569, 0xb583,</div><div class='add'>+	0xb585, 0xb59f,</div><div class='add'>+	0xb5a1, 0xb5bb,</div><div class='add'>+	0xb5bd, 0xb5d7,</div><div class='add'>+	0xb5d9, 0xb5f3,</div><div class='add'>+	0xb5f5, 0xb60f,</div><div class='add'>+	0xb611, 0xb62b,</div><div class='add'>+	0xb62d, 0xb647,</div><div class='add'>+	0xb649, 0xb663,</div><div class='add'>+	0xb665, 0xb67f,</div><div class='add'>+	0xb681, 0xb69b,</div><div class='add'>+	0xb69d, 0xb6b7,</div><div class='add'>+	0xb6b9, 0xb6d3,</div><div class='add'>+	0xb6d5, 0xb6ef,</div><div class='add'>+	0xb6f1, 0xb70b,</div><div class='add'>+	0xb70d, 0xb727,</div><div class='add'>+	0xb729, 0xb743,</div><div class='add'>+	0xb745, 0xb75f,</div><div class='add'>+	0xb761, 0xb77b,</div><div class='add'>+	0xb77d, 0xb797,</div><div class='add'>+	0xb799, 0xb7b3,</div><div class='add'>+	0xb7b5, 0xb7cf,</div><div class='add'>+	0xb7d1, 0xb7eb,</div><div class='add'>+	0xb7ed, 0xb807,</div><div class='add'>+	0xb809, 0xb823,</div><div class='add'>+	0xb825, 0xb83f,</div><div class='add'>+	0xb841, 0xb85b,</div><div class='add'>+	0xb85d, 0xb877,</div><div class='add'>+	0xb879, 0xb893,</div><div class='add'>+	0xb895, 0xb8af,</div><div class='add'>+	0xb8b1, 0xb8cb,</div><div class='add'>+	0xb8cd, 0xb8e7,</div><div class='add'>+	0xb8e9, 0xb903,</div><div class='add'>+	0xb905, 0xb91f,</div><div class='add'>+	0xb921, 0xb93b,</div><div class='add'>+	0xb93d, 0xb957,</div><div class='add'>+	0xb959, 0xb973,</div><div class='add'>+	0xb975, 0xb98f,</div><div class='add'>+	0xb991, 0xb9ab,</div><div class='add'>+	0xb9ad, 0xb9c7,</div><div class='add'>+	0xb9c9, 0xb9e3,</div><div class='add'>+	0xb9e5, 0xb9ff,</div><div class='add'>+	0xba01, 0xba1b,</div><div class='add'>+	0xba1d, 0xba37,</div><div class='add'>+	0xba39, 0xba53,</div><div class='add'>+	0xba55, 0xba6f,</div><div class='add'>+	0xba71, 0xba8b,</div><div class='add'>+	0xba8d, 0xbaa7,</div><div class='add'>+	0xbaa9, 0xbac3,</div><div class='add'>+	0xbac5, 0xbadf,</div><div class='add'>+	0xbae1, 0xbafb,</div><div class='add'>+	0xbafd, 0xbb17,</div><div class='add'>+	0xbb19, 0xbb33,</div><div class='add'>+	0xbb35, 0xbb4f,</div><div class='add'>+	0xbb51, 0xbb6b,</div><div class='add'>+	0xbb6d, 0xbb87,</div><div class='add'>+	0xbb89, 0xbba3,</div><div class='add'>+	0xbba5, 0xbbbf,</div><div class='add'>+	0xbbc1, 0xbbdb,</div><div class='add'>+	0xbbdd, 0xbbf7,</div><div class='add'>+	0xbbf9, 0xbc13,</div><div class='add'>+	0xbc15, 0xbc2f,</div><div class='add'>+	0xbc31, 0xbc4b,</div><div class='add'>+	0xbc4d, 0xbc67,</div><div class='add'>+	0xbc69, 0xbc83,</div><div class='add'>+	0xbc85, 0xbc9f,</div><div class='add'>+	0xbca1, 0xbcbb,</div><div class='add'>+	0xbcbd, 0xbcd7,</div><div class='add'>+	0xbcd9, 0xbcf3,</div><div class='add'>+	0xbcf5, 0xbd0f,</div><div class='add'>+	0xbd11, 0xbd2b,</div><div class='add'>+	0xbd2d, 0xbd47,</div><div class='add'>+	0xbd49, 0xbd63,</div><div class='add'>+	0xbd65, 0xbd7f,</div><div class='add'>+	0xbd81, 0xbd9b,</div><div class='add'>+	0xbd9d, 0xbdb7,</div><div class='add'>+	0xbdb9, 0xbdd3,</div><div class='add'>+	0xbdd5, 0xbdef,</div><div class='add'>+	0xbdf1, 0xbe0b,</div><div class='add'>+	0xbe0d, 0xbe27,</div><div class='add'>+	0xbe29, 0xbe43,</div><div class='add'>+	0xbe45, 0xbe5f,</div><div class='add'>+	0xbe61, 0xbe7b,</div><div class='add'>+	0xbe7d, 0xbe97,</div><div class='add'>+	0xbe99, 0xbeb3,</div><div class='add'>+	0xbeb5, 0xbecf,</div><div class='add'>+	0xbed1, 0xbeeb,</div><div class='add'>+	0xbeed, 0xbf07,</div><div class='add'>+	0xbf09, 0xbf23,</div><div class='add'>+	0xbf25, 0xbf3f,</div><div class='add'>+	0xbf41, 0xbf5b,</div><div class='add'>+	0xbf5d, 0xbf77,</div><div class='add'>+	0xbf79, 0xbf93,</div><div class='add'>+	0xbf95, 0xbfaf,</div><div class='add'>+	0xbfb1, 0xbfcb,</div><div class='add'>+	0xbfcd, 0xbfe7,</div><div class='add'>+	0xbfe9, 0xc003,</div><div class='add'>+	0xc005, 0xc01f,</div><div class='add'>+	0xc021, 0xc03b,</div><div class='add'>+	0xc03d, 0xc057,</div><div class='add'>+	0xc059, 0xc073,</div><div class='add'>+	0xc075, 0xc08f,</div><div class='add'>+	0xc091, 0xc0ab,</div><div class='add'>+	0xc0ad, 0xc0c7,</div><div class='add'>+	0xc0c9, 0xc0e3,</div><div class='add'>+	0xc0e5, 0xc0ff,</div><div class='add'>+	0xc101, 0xc11b,</div><div class='add'>+	0xc11d, 0xc137,</div><div class='add'>+	0xc139, 0xc153,</div><div class='add'>+	0xc155, 0xc16f,</div><div class='add'>+	0xc171, 0xc18b,</div><div class='add'>+	0xc18d, 0xc1a7,</div><div class='add'>+	0xc1a9, 0xc1c3,</div><div class='add'>+	0xc1c5, 0xc1df,</div><div class='add'>+	0xc1e1, 0xc1fb,</div><div class='add'>+	0xc1fd, 0xc217,</div><div class='add'>+	0xc219, 0xc233,</div><div class='add'>+	0xc235, 0xc24f,</div><div class='add'>+	0xc251, 0xc26b,</div><div class='add'>+	0xc26d, 0xc287,</div><div class='add'>+	0xc289, 0xc2a3,</div><div class='add'>+	0xc2a5, 0xc2bf,</div><div class='add'>+	0xc2c1, 0xc2db,</div><div class='add'>+	0xc2dd, 0xc2f7,</div><div class='add'>+	0xc2f9, 0xc313,</div><div class='add'>+	0xc315, 0xc32f,</div><div class='add'>+	0xc331, 0xc34b,</div><div class='add'>+	0xc34d, 0xc367,</div><div class='add'>+	0xc369, 0xc383,</div><div class='add'>+	0xc385, 0xc39f,</div><div class='add'>+	0xc3a1, 0xc3bb,</div><div class='add'>+	0xc3bd, 0xc3d7,</div><div class='add'>+	0xc3d9, 0xc3f3,</div><div class='add'>+	0xc3f5, 0xc40f,</div><div class='add'>+	0xc411, 0xc42b,</div><div class='add'>+	0xc42d, 0xc447,</div><div class='add'>+	0xc449, 0xc463,</div><div class='add'>+	0xc465, 0xc47f,</div><div class='add'>+	0xc481, 0xc49b,</div><div class='add'>+	0xc49d, 0xc4b7,</div><div class='add'>+	0xc4b9, 0xc4d3,</div><div class='add'>+	0xc4d5, 0xc4ef,</div><div class='add'>+	0xc4f1, 0xc50b,</div><div class='add'>+	0xc50d, 0xc527,</div><div class='add'>+	0xc529, 0xc543,</div><div class='add'>+	0xc545, 0xc55f,</div><div class='add'>+	0xc561, 0xc57b,</div><div class='add'>+	0xc57d, 0xc597,</div><div class='add'>+	0xc599, 0xc5b3,</div><div class='add'>+	0xc5b5, 0xc5cf,</div><div class='add'>+	0xc5d1, 0xc5eb,</div><div class='add'>+	0xc5ed, 0xc607,</div><div class='add'>+	0xc609, 0xc623,</div><div class='add'>+	0xc625, 0xc63f,</div><div class='add'>+	0xc641, 0xc65b,</div><div class='add'>+	0xc65d, 0xc677,</div><div class='add'>+	0xc679, 0xc693,</div><div class='add'>+	0xc695, 0xc6af,</div><div class='add'>+	0xc6b1, 0xc6cb,</div><div class='add'>+	0xc6cd, 0xc6e7,</div><div class='add'>+	0xc6e9, 0xc703,</div><div class='add'>+	0xc705, 0xc71f,</div><div class='add'>+	0xc721, 0xc73b,</div><div class='add'>+	0xc73d, 0xc757,</div><div class='add'>+	0xc759, 0xc773,</div><div class='add'>+	0xc775, 0xc78f,</div><div class='add'>+	0xc791, 0xc7ab,</div><div class='add'>+	0xc7ad, 0xc7c7,</div><div class='add'>+	0xc7c9, 0xc7e3,</div><div class='add'>+	0xc7e5, 0xc7ff,</div><div class='add'>+	0xc801, 0xc81b,</div><div class='add'>+	0xc81d, 0xc837,</div><div class='add'>+	0xc839, 0xc853,</div><div class='add'>+	0xc855, 0xc86f,</div><div class='add'>+	0xc871, 0xc88b,</div><div class='add'>+	0xc88d, 0xc8a7,</div><div class='add'>+	0xc8a9, 0xc8c3,</div><div class='add'>+	0xc8c5, 0xc8df,</div><div class='add'>+	0xc8e1, 0xc8fb,</div><div class='add'>+	0xc8fd, 0xc917,</div><div class='add'>+	0xc919, 0xc933,</div><div class='add'>+	0xc935, 0xc94f,</div><div class='add'>+	0xc951, 0xc96b,</div><div class='add'>+	0xc96d, 0xc987,</div><div class='add'>+	0xc989, 0xc9a3,</div><div class='add'>+	0xc9a5, 0xc9bf,</div><div class='add'>+	0xc9c1, 0xc9db,</div><div class='add'>+	0xc9dd, 0xc9f7,</div><div class='add'>+	0xc9f9, 0xca13,</div><div class='add'>+	0xca15, 0xca2f,</div><div class='add'>+	0xca31, 0xca4b,</div><div class='add'>+	0xca4d, 0xca67,</div><div class='add'>+	0xca69, 0xca83,</div><div class='add'>+	0xca85, 0xca9f,</div><div class='add'>+	0xcaa1, 0xcabb,</div><div class='add'>+	0xcabd, 0xcad7,</div><div class='add'>+	0xcad9, 0xcaf3,</div><div class='add'>+	0xcaf5, 0xcb0f,</div><div class='add'>+	0xcb11, 0xcb2b,</div><div class='add'>+	0xcb2d, 0xcb47,</div><div class='add'>+	0xcb49, 0xcb63,</div><div class='add'>+	0xcb65, 0xcb7f,</div><div class='add'>+	0xcb81, 0xcb9b,</div><div class='add'>+	0xcb9d, 0xcbb7,</div><div class='add'>+	0xcbb9, 0xcbd3,</div><div class='add'>+	0xcbd5, 0xcbef,</div><div class='add'>+	0xcbf1, 0xcc0b,</div><div class='add'>+	0xcc0d, 0xcc27,</div><div class='add'>+	0xcc29, 0xcc43,</div><div class='add'>+	0xcc45, 0xcc5f,</div><div class='add'>+	0xcc61, 0xcc7b,</div><div class='add'>+	0xcc7d, 0xcc97,</div><div class='add'>+	0xcc99, 0xccb3,</div><div class='add'>+	0xccb5, 0xcccf,</div><div class='add'>+	0xccd1, 0xcceb,</div><div class='add'>+	0xcced, 0xcd07,</div><div class='add'>+	0xcd09, 0xcd23,</div><div class='add'>+	0xcd25, 0xcd3f,</div><div class='add'>+	0xcd41, 0xcd5b,</div><div class='add'>+	0xcd5d, 0xcd77,</div><div class='add'>+	0xcd79, 0xcd93,</div><div class='add'>+	0xcd95, 0xcdaf,</div><div class='add'>+	0xcdb1, 0xcdcb,</div><div class='add'>+	0xcdcd, 0xcde7,</div><div class='add'>+	0xcde9, 0xce03,</div><div class='add'>+	0xce05, 0xce1f,</div><div class='add'>+	0xce21, 0xce3b,</div><div class='add'>+	0xce3d, 0xce57,</div><div class='add'>+	0xce59, 0xce73,</div><div class='add'>+	0xce75, 0xce8f,</div><div class='add'>+	0xce91, 0xceab,</div><div class='add'>+	0xcead, 0xcec7,</div><div class='add'>+	0xcec9, 0xcee3,</div><div class='add'>+	0xcee5, 0xceff,</div><div class='add'>+	0xcf01, 0xcf1b,</div><div class='add'>+	0xcf1d, 0xcf37,</div><div class='add'>+	0xcf39, 0xcf53,</div><div class='add'>+	0xcf55, 0xcf6f,</div><div class='add'>+	0xcf71, 0xcf8b,</div><div class='add'>+	0xcf8d, 0xcfa7,</div><div class='add'>+	0xcfa9, 0xcfc3,</div><div class='add'>+	0xcfc5, 0xcfdf,</div><div class='add'>+	0xcfe1, 0xcffb,</div><div class='add'>+	0xcffd, 0xd017,</div><div class='add'>+	0xd019, 0xd033,</div><div class='add'>+	0xd035, 0xd04f,</div><div class='add'>+	0xd051, 0xd06b,</div><div class='add'>+	0xd06d, 0xd087,</div><div class='add'>+	0xd089, 0xd0a3,</div><div class='add'>+	0xd0a5, 0xd0bf,</div><div class='add'>+	0xd0c1, 0xd0db,</div><div class='add'>+	0xd0dd, 0xd0f7,</div><div class='add'>+	0xd0f9, 0xd113,</div><div class='add'>+	0xd115, 0xd12f,</div><div class='add'>+	0xd131, 0xd14b,</div><div class='add'>+	0xd14d, 0xd167,</div><div class='add'>+	0xd169, 0xd183,</div><div class='add'>+	0xd185, 0xd19f,</div><div class='add'>+	0xd1a1, 0xd1bb,</div><div class='add'>+	0xd1bd, 0xd1d7,</div><div class='add'>+	0xd1d9, 0xd1f3,</div><div class='add'>+	0xd1f5, 0xd20f,</div><div class='add'>+	0xd211, 0xd22b,</div><div class='add'>+	0xd22d, 0xd247,</div><div class='add'>+	0xd249, 0xd263,</div><div class='add'>+	0xd265, 0xd27f,</div><div class='add'>+	0xd281, 0xd29b,</div><div class='add'>+	0xd29d, 0xd2b7,</div><div class='add'>+	0xd2b9, 0xd2d3,</div><div class='add'>+	0xd2d5, 0xd2ef,</div><div class='add'>+	0xd2f1, 0xd30b,</div><div class='add'>+	0xd30d, 0xd327,</div><div class='add'>+	0xd329, 0xd343,</div><div class='add'>+	0xd345, 0xd35f,</div><div class='add'>+	0xd361, 0xd37b,</div><div class='add'>+	0xd37d, 0xd397,</div><div class='add'>+	0xd399, 0xd3b3,</div><div class='add'>+	0xd3b5, 0xd3cf,</div><div class='add'>+	0xd3d1, 0xd3eb,</div><div class='add'>+	0xd3ed, 0xd407,</div><div class='add'>+	0xd409, 0xd423,</div><div class='add'>+	0xd425, 0xd43f,</div><div class='add'>+	0xd441, 0xd45b,</div><div class='add'>+	0xd45d, 0xd477,</div><div class='add'>+	0xd479, 0xd493,</div><div class='add'>+	0xd495, 0xd4af,</div><div class='add'>+	0xd4b1, 0xd4cb,</div><div class='add'>+	0xd4cd, 0xd4e7,</div><div class='add'>+	0xd4e9, 0xd503,</div><div class='add'>+	0xd505, 0xd51f,</div><div class='add'>+	0xd521, 0xd53b,</div><div class='add'>+	0xd53d, 0xd557,</div><div class='add'>+	0xd559, 0xd573,</div><div class='add'>+	0xd575, 0xd58f,</div><div class='add'>+	0xd591, 0xd5ab,</div><div class='add'>+	0xd5ad, 0xd5c7,</div><div class='add'>+	0xd5c9, 0xd5e3,</div><div class='add'>+	0xd5e5, 0xd5ff,</div><div class='add'>+	0xd601, 0xd61b,</div><div class='add'>+	0xd61d, 0xd637,</div><div class='add'>+	0xd639, 0xd653,</div><div class='add'>+	0xd655, 0xd66f,</div><div class='add'>+	0xd671, 0xd68b,</div><div class='add'>+	0xd68d, 0xd6a7,</div><div class='add'>+	0xd6a9, 0xd6c3,</div><div class='add'>+	0xd6c5, 0xd6df,</div><div class='add'>+	0xd6e1, 0xd6fb,</div><div class='add'>+	0xd6fd, 0xd717,</div><div class='add'>+	0xd719, 0xd733,</div><div class='add'>+	0xd735, 0xd74f,</div><div class='add'>+	0xd751, 0xd76b,</div><div class='add'>+	0xd76d, 0xd787,</div><div class='add'>+	0xd789, 0xd7a3,</div><div class='add'>+}; /* CR_Grapheme_Cluster_Break_LVT */</div><div class='add'>+</div><div class='add'>+/* 'Grapheme_Cluster_Break_ZWJ': Grapheme_Cluster_Break=ZWJ */</div><div class='add'>+static const OnigCodePoint CR_Grapheme_Cluster_Break_ZWJ[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x200d, 0x200d,</div><div class='add'>+}; /* CR_Grapheme_Cluster_Break_ZWJ */</div><div class='add'>+</div><div class='add'>+/* 'In_Basic_Latin': Block */</div><div class='add'>+#define CR_In_Basic_Latin CR_ASCII</div><div class='add'>+</div><div class='add'>+/* 'In_Latin_1_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Latin_1_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0080, 0x00ff,</div><div class='add'>+}; /* CR_In_Latin_1_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Latin_Extended_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Latin_Extended_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0100, 0x017f,</div><div class='add'>+}; /* CR_In_Latin_Extended_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Latin_Extended_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Latin_Extended_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0180, 0x024f,</div><div class='add'>+}; /* CR_In_Latin_Extended_B */</div><div class='add'>+</div><div class='add'>+/* 'In_IPA_Extensions': Block */</div><div class='add'>+static const OnigCodePoint CR_In_IPA_Extensions[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0250, 0x02af,</div><div class='add'>+}; /* CR_In_IPA_Extensions */</div><div class='add'>+</div><div class='add'>+/* 'In_Spacing_Modifier_Letters': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Spacing_Modifier_Letters[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x02b0, 0x02ff,</div><div class='add'>+}; /* CR_In_Spacing_Modifier_Letters */</div><div class='add'>+</div><div class='add'>+/* 'In_Combining_Diacritical_Marks': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Combining_Diacritical_Marks[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0300, 0x036f,</div><div class='add'>+}; /* CR_In_Combining_Diacritical_Marks */</div><div class='add'>+</div><div class='add'>+/* 'In_Greek_and_Coptic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Greek_and_Coptic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0370, 0x03ff,</div><div class='add'>+}; /* CR_In_Greek_and_Coptic */</div><div class='add'>+</div><div class='add'>+/* 'In_Cyrillic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cyrillic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0400, 0x04ff,</div><div class='add'>+}; /* CR_In_Cyrillic */</div><div class='add'>+</div><div class='add'>+/* 'In_Cyrillic_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cyrillic_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0500, 0x052f,</div><div class='add'>+}; /* CR_In_Cyrillic_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Armenian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Armenian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0530, 0x058f,</div><div class='add'>+}; /* CR_In_Armenian */</div><div class='add'>+</div><div class='add'>+/* 'In_Hebrew': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Hebrew[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0590, 0x05ff,</div><div class='add'>+}; /* CR_In_Hebrew */</div><div class='add'>+</div><div class='add'>+/* 'In_Arabic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Arabic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0600, 0x06ff,</div><div class='add'>+}; /* CR_In_Arabic */</div><div class='add'>+</div><div class='add'>+/* 'In_Syriac': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Syriac[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0700, 0x074f,</div><div class='add'>+}; /* CR_In_Syriac */</div><div class='add'>+</div><div class='add'>+/* 'In_Arabic_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Arabic_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0750, 0x077f,</div><div class='add'>+}; /* CR_In_Arabic_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Thaana': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Thaana[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0780, 0x07bf,</div><div class='add'>+}; /* CR_In_Thaana */</div><div class='add'>+</div><div class='add'>+/* 'In_NKo': Block */</div><div class='add'>+static const OnigCodePoint CR_In_NKo[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x07c0, 0x07ff,</div><div class='add'>+}; /* CR_In_NKo */</div><div class='add'>+</div><div class='add'>+/* 'In_Samaritan': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Samaritan[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0800, 0x083f,</div><div class='add'>+}; /* CR_In_Samaritan */</div><div class='add'>+</div><div class='add'>+/* 'In_Mandaic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Mandaic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0840, 0x085f,</div><div class='add'>+}; /* CR_In_Mandaic */</div><div class='add'>+</div><div class='add'>+/* 'In_Syriac_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Syriac_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0860, 0x086f,</div><div class='add'>+}; /* CR_In_Syriac_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Arabic_Extended_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Arabic_Extended_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0870, 0x089f,</div><div class='add'>+}; /* CR_In_Arabic_Extended_B */</div><div class='add'>+</div><div class='add'>+/* 'In_Arabic_Extended_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Arabic_Extended_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x08a0, 0x08ff,</div><div class='add'>+}; /* CR_In_Arabic_Extended_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Devanagari': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Devanagari[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0900, 0x097f,</div><div class='add'>+}; /* CR_In_Devanagari */</div><div class='add'>+</div><div class='add'>+/* 'In_Bengali': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Bengali[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0980, 0x09ff,</div><div class='add'>+}; /* CR_In_Bengali */</div><div class='add'>+</div><div class='add'>+/* 'In_Gurmukhi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Gurmukhi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0a00, 0x0a7f,</div><div class='add'>+}; /* CR_In_Gurmukhi */</div><div class='add'>+</div><div class='add'>+/* 'In_Gujarati': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Gujarati[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0a80, 0x0aff,</div><div class='add'>+}; /* CR_In_Gujarati */</div><div class='add'>+</div><div class='add'>+/* 'In_Oriya': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Oriya[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0b00, 0x0b7f,</div><div class='add'>+}; /* CR_In_Oriya */</div><div class='add'>+</div><div class='add'>+/* 'In_Tamil': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tamil[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0b80, 0x0bff,</div><div class='add'>+}; /* CR_In_Tamil */</div><div class='add'>+</div><div class='add'>+/* 'In_Telugu': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Telugu[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0c00, 0x0c7f,</div><div class='add'>+}; /* CR_In_Telugu */</div><div class='add'>+</div><div class='add'>+/* 'In_Kannada': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Kannada[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0c80, 0x0cff,</div><div class='add'>+}; /* CR_In_Kannada */</div><div class='add'>+</div><div class='add'>+/* 'In_Malayalam': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Malayalam[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0d00, 0x0d7f,</div><div class='add'>+}; /* CR_In_Malayalam */</div><div class='add'>+</div><div class='add'>+/* 'In_Sinhala': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Sinhala[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0d80, 0x0dff,</div><div class='add'>+}; /* CR_In_Sinhala */</div><div class='add'>+</div><div class='add'>+/* 'In_Thai': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Thai[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0e00, 0x0e7f,</div><div class='add'>+}; /* CR_In_Thai */</div><div class='add'>+</div><div class='add'>+/* 'In_Lao': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Lao[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0e80, 0x0eff,</div><div class='add'>+}; /* CR_In_Lao */</div><div class='add'>+</div><div class='add'>+/* 'In_Tibetan': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tibetan[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x0f00, 0x0fff,</div><div class='add'>+}; /* CR_In_Tibetan */</div><div class='add'>+</div><div class='add'>+/* 'In_Myanmar': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Myanmar[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1000, 0x109f,</div><div class='add'>+}; /* CR_In_Myanmar */</div><div class='add'>+</div><div class='add'>+/* 'In_Georgian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Georgian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10a0, 0x10ff,</div><div class='add'>+}; /* CR_In_Georgian */</div><div class='add'>+</div><div class='add'>+/* 'In_Hangul_Jamo': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Hangul_Jamo[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1100, 0x11ff,</div><div class='add'>+}; /* CR_In_Hangul_Jamo */</div><div class='add'>+</div><div class='add'>+/* 'In_Ethiopic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ethiopic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1200, 0x137f,</div><div class='add'>+}; /* CR_In_Ethiopic */</div><div class='add'>+</div><div class='add'>+/* 'In_Ethiopic_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ethiopic_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1380, 0x139f,</div><div class='add'>+}; /* CR_In_Ethiopic_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Cherokee': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cherokee[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x13a0, 0x13ff,</div><div class='add'>+}; /* CR_In_Cherokee */</div><div class='add'>+</div><div class='add'>+/* 'In_Unified_Canadian_Aboriginal_Syllabics': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Unified_Canadian_Aboriginal_Syllabics[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1400, 0x167f,</div><div class='add'>+}; /* CR_In_Unified_Canadian_Aboriginal_Syllabics */</div><div class='add'>+</div><div class='add'>+/* 'In_Ogham': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ogham[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1680, 0x169f,</div><div class='add'>+}; /* CR_In_Ogham */</div><div class='add'>+</div><div class='add'>+/* 'In_Runic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Runic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x16a0, 0x16ff,</div><div class='add'>+}; /* CR_In_Runic */</div><div class='add'>+</div><div class='add'>+/* 'In_Tagalog': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tagalog[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1700, 0x171f,</div><div class='add'>+}; /* CR_In_Tagalog */</div><div class='add'>+</div><div class='add'>+/* 'In_Hanunoo': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Hanunoo[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1720, 0x173f,</div><div class='add'>+}; /* CR_In_Hanunoo */</div><div class='add'>+</div><div class='add'>+/* 'In_Buhid': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Buhid[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1740, 0x175f,</div><div class='add'>+}; /* CR_In_Buhid */</div><div class='add'>+</div><div class='add'>+/* 'In_Tagbanwa': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tagbanwa[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1760, 0x177f,</div><div class='add'>+}; /* CR_In_Tagbanwa */</div><div class='add'>+</div><div class='add'>+/* 'In_Khmer': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Khmer[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1780, 0x17ff,</div><div class='add'>+}; /* CR_In_Khmer */</div><div class='add'>+</div><div class='add'>+/* 'In_Mongolian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Mongolian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1800, 0x18af,</div><div class='add'>+}; /* CR_In_Mongolian */</div><div class='add'>+</div><div class='add'>+/* 'In_Unified_Canadian_Aboriginal_Syllabics_Extended': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x18b0, 0x18ff,</div><div class='add'>+}; /* CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended */</div><div class='add'>+</div><div class='add'>+/* 'In_Limbu': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Limbu[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1900, 0x194f,</div><div class='add'>+}; /* CR_In_Limbu */</div><div class='add'>+</div><div class='add'>+/* 'In_Tai_Le': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tai_Le[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1950, 0x197f,</div><div class='add'>+}; /* CR_In_Tai_Le */</div><div class='add'>+</div><div class='add'>+/* 'In_New_Tai_Lue': Block */</div><div class='add'>+static const OnigCodePoint CR_In_New_Tai_Lue[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1980, 0x19df,</div><div class='add'>+}; /* CR_In_New_Tai_Lue */</div><div class='add'>+</div><div class='add'>+/* 'In_Khmer_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Khmer_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x19e0, 0x19ff,</div><div class='add'>+}; /* CR_In_Khmer_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Buginese': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Buginese[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1a00, 0x1a1f,</div><div class='add'>+}; /* CR_In_Buginese */</div><div class='add'>+</div><div class='add'>+/* 'In_Tai_Tham': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tai_Tham[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1a20, 0x1aaf,</div><div class='add'>+}; /* CR_In_Tai_Tham */</div><div class='add'>+</div><div class='add'>+/* 'In_Combining_Diacritical_Marks_Extended': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Combining_Diacritical_Marks_Extended[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1ab0, 0x1aff,</div><div class='add'>+}; /* CR_In_Combining_Diacritical_Marks_Extended */</div><div class='add'>+</div><div class='add'>+/* 'In_Balinese': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Balinese[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1b00, 0x1b7f,</div><div class='add'>+}; /* CR_In_Balinese */</div><div class='add'>+</div><div class='add'>+/* 'In_Sundanese': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Sundanese[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1b80, 0x1bbf,</div><div class='add'>+}; /* CR_In_Sundanese */</div><div class='add'>+</div><div class='add'>+/* 'In_Batak': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Batak[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1bc0, 0x1bff,</div><div class='add'>+}; /* CR_In_Batak */</div><div class='add'>+</div><div class='add'>+/* 'In_Lepcha': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Lepcha[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1c00, 0x1c4f,</div><div class='add'>+}; /* CR_In_Lepcha */</div><div class='add'>+</div><div class='add'>+/* 'In_Ol_Chiki': Block */</div><div class='add'>+#define CR_In_Ol_Chiki CR_Ol_Chiki</div><div class='add'>+</div><div class='add'>+/* 'In_Cyrillic_Extended_C': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cyrillic_Extended_C[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1c80, 0x1c8f,</div><div class='add'>+}; /* CR_In_Cyrillic_Extended_C */</div><div class='add'>+</div><div class='add'>+/* 'In_Georgian_Extended': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Georgian_Extended[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1c90, 0x1cbf,</div><div class='add'>+}; /* CR_In_Georgian_Extended */</div><div class='add'>+</div><div class='add'>+/* 'In_Sundanese_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Sundanese_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1cc0, 0x1ccf,</div><div class='add'>+}; /* CR_In_Sundanese_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Vedic_Extensions': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Vedic_Extensions[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1cd0, 0x1cff,</div><div class='add'>+}; /* CR_In_Vedic_Extensions */</div><div class='add'>+</div><div class='add'>+/* 'In_Phonetic_Extensions': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Phonetic_Extensions[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1d00, 0x1d7f,</div><div class='add'>+}; /* CR_In_Phonetic_Extensions */</div><div class='add'>+</div><div class='add'>+/* 'In_Phonetic_Extensions_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Phonetic_Extensions_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1d80, 0x1dbf,</div><div class='add'>+}; /* CR_In_Phonetic_Extensions_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Combining_Diacritical_Marks_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Combining_Diacritical_Marks_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1dc0, 0x1dff,</div><div class='add'>+}; /* CR_In_Combining_Diacritical_Marks_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Latin_Extended_Additional': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Latin_Extended_Additional[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e00, 0x1eff,</div><div class='add'>+}; /* CR_In_Latin_Extended_Additional */</div><div class='add'>+</div><div class='add'>+/* 'In_Greek_Extended': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Greek_Extended[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f00, 0x1fff,</div><div class='add'>+}; /* CR_In_Greek_Extended */</div><div class='add'>+</div><div class='add'>+/* 'In_General_Punctuation': Block */</div><div class='add'>+static const OnigCodePoint CR_In_General_Punctuation[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2000, 0x206f,</div><div class='add'>+}; /* CR_In_General_Punctuation */</div><div class='add'>+</div><div class='add'>+/* 'In_Superscripts_and_Subscripts': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Superscripts_and_Subscripts[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2070, 0x209f,</div><div class='add'>+}; /* CR_In_Superscripts_and_Subscripts */</div><div class='add'>+</div><div class='add'>+/* 'In_Currency_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Currency_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x20a0, 0x20cf,</div><div class='add'>+}; /* CR_In_Currency_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Combining_Diacritical_Marks_for_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Combining_Diacritical_Marks_for_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x20d0, 0x20ff,</div><div class='add'>+}; /* CR_In_Combining_Diacritical_Marks_for_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Letterlike_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Letterlike_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2100, 0x214f,</div><div class='add'>+}; /* CR_In_Letterlike_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Number_Forms': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Number_Forms[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2150, 0x218f,</div><div class='add'>+}; /* CR_In_Number_Forms */</div><div class='add'>+</div><div class='add'>+/* 'In_Arrows': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Arrows[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2190, 0x21ff,</div><div class='add'>+}; /* CR_In_Arrows */</div><div class='add'>+</div><div class='add'>+/* 'In_Mathematical_Operators': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Mathematical_Operators[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2200, 0x22ff,</div><div class='add'>+}; /* CR_In_Mathematical_Operators */</div><div class='add'>+</div><div class='add'>+/* 'In_Miscellaneous_Technical': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Miscellaneous_Technical[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2300, 0x23ff,</div><div class='add'>+}; /* CR_In_Miscellaneous_Technical */</div><div class='add'>+</div><div class='add'>+/* 'In_Control_Pictures': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Control_Pictures[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2400, 0x243f,</div><div class='add'>+}; /* CR_In_Control_Pictures */</div><div class='add'>+</div><div class='add'>+/* 'In_Optical_Character_Recognition': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Optical_Character_Recognition[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2440, 0x245f,</div><div class='add'>+}; /* CR_In_Optical_Character_Recognition */</div><div class='add'>+</div><div class='add'>+/* 'In_Enclosed_Alphanumerics': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Enclosed_Alphanumerics[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2460, 0x24ff,</div><div class='add'>+}; /* CR_In_Enclosed_Alphanumerics */</div><div class='add'>+</div><div class='add'>+/* 'In_Box_Drawing': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Box_Drawing[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2500, 0x257f,</div><div class='add'>+}; /* CR_In_Box_Drawing */</div><div class='add'>+</div><div class='add'>+/* 'In_Block_Elements': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Block_Elements[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2580, 0x259f,</div><div class='add'>+}; /* CR_In_Block_Elements */</div><div class='add'>+</div><div class='add'>+/* 'In_Geometric_Shapes': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Geometric_Shapes[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x25a0, 0x25ff,</div><div class='add'>+}; /* CR_In_Geometric_Shapes */</div><div class='add'>+</div><div class='add'>+/* 'In_Miscellaneous_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Miscellaneous_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2600, 0x26ff,</div><div class='add'>+}; /* CR_In_Miscellaneous_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Dingbats': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Dingbats[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2700, 0x27bf,</div><div class='add'>+}; /* CR_In_Dingbats */</div><div class='add'>+</div><div class='add'>+/* 'In_Miscellaneous_Mathematical_Symbols_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Miscellaneous_Mathematical_Symbols_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x27c0, 0x27ef,</div><div class='add'>+}; /* CR_In_Miscellaneous_Mathematical_Symbols_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Supplemental_Arrows_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Supplemental_Arrows_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x27f0, 0x27ff,</div><div class='add'>+}; /* CR_In_Supplemental_Arrows_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Braille_Patterns': Block */</div><div class='add'>+#define CR_In_Braille_Patterns CR_Braille</div><div class='add'>+</div><div class='add'>+/* 'In_Supplemental_Arrows_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Supplemental_Arrows_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2900, 0x297f,</div><div class='add'>+}; /* CR_In_Supplemental_Arrows_B */</div><div class='add'>+</div><div class='add'>+/* 'In_Miscellaneous_Mathematical_Symbols_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Miscellaneous_Mathematical_Symbols_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2980, 0x29ff,</div><div class='add'>+}; /* CR_In_Miscellaneous_Mathematical_Symbols_B */</div><div class='add'>+</div><div class='add'>+/* 'In_Supplemental_Mathematical_Operators': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Supplemental_Mathematical_Operators[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2a00, 0x2aff,</div><div class='add'>+}; /* CR_In_Supplemental_Mathematical_Operators */</div><div class='add'>+</div><div class='add'>+/* 'In_Miscellaneous_Symbols_and_Arrows': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Miscellaneous_Symbols_and_Arrows[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2b00, 0x2bff,</div><div class='add'>+}; /* CR_In_Miscellaneous_Symbols_and_Arrows */</div><div class='add'>+</div><div class='add'>+/* 'In_Glagolitic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Glagolitic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2c00, 0x2c5f,</div><div class='add'>+}; /* CR_In_Glagolitic */</div><div class='add'>+</div><div class='add'>+/* 'In_Latin_Extended_C': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Latin_Extended_C[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2c60, 0x2c7f,</div><div class='add'>+}; /* CR_In_Latin_Extended_C */</div><div class='add'>+</div><div class='add'>+/* 'In_Coptic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Coptic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2c80, 0x2cff,</div><div class='add'>+}; /* CR_In_Coptic */</div><div class='add'>+</div><div class='add'>+/* 'In_Georgian_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Georgian_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2d00, 0x2d2f,</div><div class='add'>+}; /* CR_In_Georgian_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Tifinagh': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tifinagh[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2d30, 0x2d7f,</div><div class='add'>+}; /* CR_In_Tifinagh */</div><div class='add'>+</div><div class='add'>+/* 'In_Ethiopic_Extended': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ethiopic_Extended[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2d80, 0x2ddf,</div><div class='add'>+}; /* CR_In_Ethiopic_Extended */</div><div class='add'>+</div><div class='add'>+/* 'In_Cyrillic_Extended_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cyrillic_Extended_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2de0, 0x2dff,</div><div class='add'>+}; /* CR_In_Cyrillic_Extended_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Supplemental_Punctuation': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Supplemental_Punctuation[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2e00, 0x2e7f,</div><div class='add'>+}; /* CR_In_Supplemental_Punctuation */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Radicals_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Radicals_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2e80, 0x2eff,</div><div class='add'>+}; /* CR_In_CJK_Radicals_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Kangxi_Radicals': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Kangxi_Radicals[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2f00, 0x2fdf,</div><div class='add'>+}; /* CR_In_Kangxi_Radicals */</div><div class='add'>+</div><div class='add'>+/* 'In_Ideographic_Description_Characters': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ideographic_Description_Characters[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2ff0, 0x2fff,</div><div class='add'>+}; /* CR_In_Ideographic_Description_Characters */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Symbols_and_Punctuation': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Symbols_and_Punctuation[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x3000, 0x303f,</div><div class='add'>+}; /* CR_In_CJK_Symbols_and_Punctuation */</div><div class='add'>+</div><div class='add'>+/* 'In_Hiragana': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Hiragana[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x3040, 0x309f,</div><div class='add'>+}; /* CR_In_Hiragana */</div><div class='add'>+</div><div class='add'>+/* 'In_Katakana': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Katakana[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x30a0, 0x30ff,</div><div class='add'>+}; /* CR_In_Katakana */</div><div class='add'>+</div><div class='add'>+/* 'In_Bopomofo': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Bopomofo[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x3100, 0x312f,</div><div class='add'>+}; /* CR_In_Bopomofo */</div><div class='add'>+</div><div class='add'>+/* 'In_Hangul_Compatibility_Jamo': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Hangul_Compatibility_Jamo[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x3130, 0x318f,</div><div class='add'>+}; /* CR_In_Hangul_Compatibility_Jamo */</div><div class='add'>+</div><div class='add'>+/* 'In_Kanbun': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Kanbun[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x3190, 0x319f,</div><div class='add'>+}; /* CR_In_Kanbun */</div><div class='add'>+</div><div class='add'>+/* 'In_Bopomofo_Extended': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Bopomofo_Extended[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x31a0, 0x31bf,</div><div class='add'>+}; /* CR_In_Bopomofo_Extended */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Strokes': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Strokes[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x31c0, 0x31ef,</div><div class='add'>+}; /* CR_In_CJK_Strokes */</div><div class='add'>+</div><div class='add'>+/* 'In_Katakana_Phonetic_Extensions': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Katakana_Phonetic_Extensions[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x31f0, 0x31ff,</div><div class='add'>+}; /* CR_In_Katakana_Phonetic_Extensions */</div><div class='add'>+</div><div class='add'>+/* 'In_Enclosed_CJK_Letters_and_Months': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Enclosed_CJK_Letters_and_Months[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x3200, 0x32ff,</div><div class='add'>+}; /* CR_In_Enclosed_CJK_Letters_and_Months */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Compatibility': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Compatibility[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x3300, 0x33ff,</div><div class='add'>+}; /* CR_In_CJK_Compatibility */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Unified_Ideographs_Extension_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x3400, 0x4dbf,</div><div class='add'>+}; /* CR_In_CJK_Unified_Ideographs_Extension_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Yijing_Hexagram_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Yijing_Hexagram_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x4dc0, 0x4dff,</div><div class='add'>+}; /* CR_In_Yijing_Hexagram_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Unified_Ideographs': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Unified_Ideographs[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x4e00, 0x9fff,</div><div class='add'>+}; /* CR_In_CJK_Unified_Ideographs */</div><div class='add'>+</div><div class='add'>+/* 'In_Yi_Syllables': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Yi_Syllables[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa000, 0xa48f,</div><div class='add'>+}; /* CR_In_Yi_Syllables */</div><div class='add'>+</div><div class='add'>+/* 'In_Yi_Radicals': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Yi_Radicals[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa490, 0xa4cf,</div><div class='add'>+}; /* CR_In_Yi_Radicals */</div><div class='add'>+</div><div class='add'>+/* 'In_Lisu': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Lisu[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa4d0, 0xa4ff,</div><div class='add'>+}; /* CR_In_Lisu */</div><div class='add'>+</div><div class='add'>+/* 'In_Vai': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Vai[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa500, 0xa63f,</div><div class='add'>+}; /* CR_In_Vai */</div><div class='add'>+</div><div class='add'>+/* 'In_Cyrillic_Extended_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cyrillic_Extended_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa640, 0xa69f,</div><div class='add'>+}; /* CR_In_Cyrillic_Extended_B */</div><div class='add'>+</div><div class='add'>+/* 'In_Bamum': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Bamum[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa6a0, 0xa6ff,</div><div class='add'>+}; /* CR_In_Bamum */</div><div class='add'>+</div><div class='add'>+/* 'In_Modifier_Tone_Letters': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Modifier_Tone_Letters[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa700, 0xa71f,</div><div class='add'>+}; /* CR_In_Modifier_Tone_Letters */</div><div class='add'>+</div><div class='add'>+/* 'In_Latin_Extended_D': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Latin_Extended_D[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa720, 0xa7ff,</div><div class='add'>+}; /* CR_In_Latin_Extended_D */</div><div class='add'>+</div><div class='add'>+/* 'In_Syloti_Nagri': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Syloti_Nagri[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa800, 0xa82f,</div><div class='add'>+}; /* CR_In_Syloti_Nagri */</div><div class='add'>+</div><div class='add'>+/* 'In_Common_Indic_Number_Forms': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Common_Indic_Number_Forms[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa830, 0xa83f,</div><div class='add'>+}; /* CR_In_Common_Indic_Number_Forms */</div><div class='add'>+</div><div class='add'>+/* 'In_Phags_pa': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Phags_pa[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa840, 0xa87f,</div><div class='add'>+}; /* CR_In_Phags_pa */</div><div class='add'>+</div><div class='add'>+/* 'In_Saurashtra': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Saurashtra[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa880, 0xa8df,</div><div class='add'>+}; /* CR_In_Saurashtra */</div><div class='add'>+</div><div class='add'>+/* 'In_Devanagari_Extended': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Devanagari_Extended[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa8e0, 0xa8ff,</div><div class='add'>+}; /* CR_In_Devanagari_Extended */</div><div class='add'>+</div><div class='add'>+/* 'In_Kayah_Li': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Kayah_Li[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa900, 0xa92f,</div><div class='add'>+}; /* CR_In_Kayah_Li */</div><div class='add'>+</div><div class='add'>+/* 'In_Rejang': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Rejang[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa930, 0xa95f,</div><div class='add'>+}; /* CR_In_Rejang */</div><div class='add'>+</div><div class='add'>+/* 'In_Hangul_Jamo_Extended_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Hangul_Jamo_Extended_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa960, 0xa97f,</div><div class='add'>+}; /* CR_In_Hangul_Jamo_Extended_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Javanese': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Javanese[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa980, 0xa9df,</div><div class='add'>+}; /* CR_In_Javanese */</div><div class='add'>+</div><div class='add'>+/* 'In_Myanmar_Extended_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Myanmar_Extended_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xa9e0, 0xa9ff,</div><div class='add'>+}; /* CR_In_Myanmar_Extended_B */</div><div class='add'>+</div><div class='add'>+/* 'In_Cham': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cham[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xaa00, 0xaa5f,</div><div class='add'>+}; /* CR_In_Cham */</div><div class='add'>+</div><div class='add'>+/* 'In_Myanmar_Extended_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Myanmar_Extended_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xaa60, 0xaa7f,</div><div class='add'>+}; /* CR_In_Myanmar_Extended_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Tai_Viet': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tai_Viet[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xaa80, 0xaadf,</div><div class='add'>+}; /* CR_In_Tai_Viet */</div><div class='add'>+</div><div class='add'>+/* 'In_Meetei_Mayek_Extensions': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Meetei_Mayek_Extensions[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xaae0, 0xaaff,</div><div class='add'>+}; /* CR_In_Meetei_Mayek_Extensions */</div><div class='add'>+</div><div class='add'>+/* 'In_Ethiopic_Extended_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ethiopic_Extended_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xab00, 0xab2f,</div><div class='add'>+}; /* CR_In_Ethiopic_Extended_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Latin_Extended_E': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Latin_Extended_E[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xab30, 0xab6f,</div><div class='add'>+}; /* CR_In_Latin_Extended_E */</div><div class='add'>+</div><div class='add'>+/* 'In_Cherokee_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cherokee_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xab70, 0xabbf,</div><div class='add'>+}; /* CR_In_Cherokee_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Meetei_Mayek': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Meetei_Mayek[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xabc0, 0xabff,</div><div class='add'>+}; /* CR_In_Meetei_Mayek */</div><div class='add'>+</div><div class='add'>+/* 'In_Hangul_Syllables': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Hangul_Syllables[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xac00, 0xd7af,</div><div class='add'>+}; /* CR_In_Hangul_Syllables */</div><div class='add'>+</div><div class='add'>+/* 'In_Hangul_Jamo_Extended_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Hangul_Jamo_Extended_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xd7b0, 0xd7ff,</div><div class='add'>+}; /* CR_In_Hangul_Jamo_Extended_B */</div><div class='add'>+</div><div class='add'>+/* 'In_High_Surrogates': Block */</div><div class='add'>+static const OnigCodePoint CR_In_High_Surrogates[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xd800, 0xdb7f,</div><div class='add'>+}; /* CR_In_High_Surrogates */</div><div class='add'>+</div><div class='add'>+/* 'In_High_Private_Use_Surrogates': Block */</div><div class='add'>+static const OnigCodePoint CR_In_High_Private_Use_Surrogates[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xdb80, 0xdbff,</div><div class='add'>+}; /* CR_In_High_Private_Use_Surrogates */</div><div class='add'>+</div><div class='add'>+/* 'In_Low_Surrogates': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Low_Surrogates[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xdc00, 0xdfff,</div><div class='add'>+}; /* CR_In_Low_Surrogates */</div><div class='add'>+</div><div class='add'>+/* 'In_Private_Use_Area': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Private_Use_Area[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xe000, 0xf8ff,</div><div class='add'>+}; /* CR_In_Private_Use_Area */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Compatibility_Ideographs': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Compatibility_Ideographs[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xf900, 0xfaff,</div><div class='add'>+}; /* CR_In_CJK_Compatibility_Ideographs */</div><div class='add'>+</div><div class='add'>+/* 'In_Alphabetic_Presentation_Forms': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Alphabetic_Presentation_Forms[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xfb00, 0xfb4f,</div><div class='add'>+}; /* CR_In_Alphabetic_Presentation_Forms */</div><div class='add'>+</div><div class='add'>+/* 'In_Arabic_Presentation_Forms_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Arabic_Presentation_Forms_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xfb50, 0xfdff,</div><div class='add'>+}; /* CR_In_Arabic_Presentation_Forms_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Variation_Selectors': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Variation_Selectors[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xfe00, 0xfe0f,</div><div class='add'>+}; /* CR_In_Variation_Selectors */</div><div class='add'>+</div><div class='add'>+/* 'In_Vertical_Forms': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Vertical_Forms[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xfe10, 0xfe1f,</div><div class='add'>+}; /* CR_In_Vertical_Forms */</div><div class='add'>+</div><div class='add'>+/* 'In_Combining_Half_Marks': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Combining_Half_Marks[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xfe20, 0xfe2f,</div><div class='add'>+}; /* CR_In_Combining_Half_Marks */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Compatibility_Forms': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Compatibility_Forms[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xfe30, 0xfe4f,</div><div class='add'>+}; /* CR_In_CJK_Compatibility_Forms */</div><div class='add'>+</div><div class='add'>+/* 'In_Small_Form_Variants': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Small_Form_Variants[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xfe50, 0xfe6f,</div><div class='add'>+}; /* CR_In_Small_Form_Variants */</div><div class='add'>+</div><div class='add'>+/* 'In_Arabic_Presentation_Forms_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Arabic_Presentation_Forms_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xfe70, 0xfeff,</div><div class='add'>+}; /* CR_In_Arabic_Presentation_Forms_B */</div><div class='add'>+</div><div class='add'>+/* 'In_Halfwidth_and_Fullwidth_Forms': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Halfwidth_and_Fullwidth_Forms[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xff00, 0xffef,</div><div class='add'>+}; /* CR_In_Halfwidth_and_Fullwidth_Forms */</div><div class='add'>+</div><div class='add'>+/* 'In_Specials': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Specials[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xfff0, 0xffff,</div><div class='add'>+}; /* CR_In_Specials */</div><div class='add'>+</div><div class='add'>+/* 'In_Linear_B_Syllabary': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Linear_B_Syllabary[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10000, 0x1007f,</div><div class='add'>+}; /* CR_In_Linear_B_Syllabary */</div><div class='add'>+</div><div class='add'>+/* 'In_Linear_B_Ideograms': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Linear_B_Ideograms[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10080, 0x100ff,</div><div class='add'>+}; /* CR_In_Linear_B_Ideograms */</div><div class='add'>+</div><div class='add'>+/* 'In_Aegean_Numbers': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Aegean_Numbers[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10100, 0x1013f,</div><div class='add'>+}; /* CR_In_Aegean_Numbers */</div><div class='add'>+</div><div class='add'>+/* 'In_Ancient_Greek_Numbers': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ancient_Greek_Numbers[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10140, 0x1018f,</div><div class='add'>+}; /* CR_In_Ancient_Greek_Numbers */</div><div class='add'>+</div><div class='add'>+/* 'In_Ancient_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ancient_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10190, 0x101cf,</div><div class='add'>+}; /* CR_In_Ancient_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Phaistos_Disc': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Phaistos_Disc[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x101d0, 0x101ff,</div><div class='add'>+}; /* CR_In_Phaistos_Disc */</div><div class='add'>+</div><div class='add'>+/* 'In_Lycian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Lycian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10280, 0x1029f,</div><div class='add'>+}; /* CR_In_Lycian */</div><div class='add'>+</div><div class='add'>+/* 'In_Carian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Carian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x102a0, 0x102df,</div><div class='add'>+}; /* CR_In_Carian */</div><div class='add'>+</div><div class='add'>+/* 'In_Coptic_Epact_Numbers': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Coptic_Epact_Numbers[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x102e0, 0x102ff,</div><div class='add'>+}; /* CR_In_Coptic_Epact_Numbers */</div><div class='add'>+</div><div class='add'>+/* 'In_Old_Italic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Old_Italic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10300, 0x1032f,</div><div class='add'>+}; /* CR_In_Old_Italic */</div><div class='add'>+</div><div class='add'>+/* 'In_Gothic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Gothic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10330, 0x1034f,</div><div class='add'>+}; /* CR_In_Gothic */</div><div class='add'>+</div><div class='add'>+/* 'In_Old_Permic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Old_Permic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10350, 0x1037f,</div><div class='add'>+}; /* CR_In_Old_Permic */</div><div class='add'>+</div><div class='add'>+/* 'In_Ugaritic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ugaritic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10380, 0x1039f,</div><div class='add'>+}; /* CR_In_Ugaritic */</div><div class='add'>+</div><div class='add'>+/* 'In_Old_Persian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Old_Persian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x103a0, 0x103df,</div><div class='add'>+}; /* CR_In_Old_Persian */</div><div class='add'>+</div><div class='add'>+/* 'In_Deseret': Block */</div><div class='add'>+#define CR_In_Deseret CR_Deseret</div><div class='add'>+</div><div class='add'>+/* 'In_Shavian': Block */</div><div class='add'>+#define CR_In_Shavian CR_Shavian</div><div class='add'>+</div><div class='add'>+/* 'In_Osmanya': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Osmanya[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10480, 0x104af,</div><div class='add'>+}; /* CR_In_Osmanya */</div><div class='add'>+</div><div class='add'>+/* 'In_Osage': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Osage[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x104b0, 0x104ff,</div><div class='add'>+}; /* CR_In_Osage */</div><div class='add'>+</div><div class='add'>+/* 'In_Elbasan': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Elbasan[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10500, 0x1052f,</div><div class='add'>+}; /* CR_In_Elbasan */</div><div class='add'>+</div><div class='add'>+/* 'In_Caucasian_Albanian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Caucasian_Albanian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10530, 0x1056f,</div><div class='add'>+}; /* CR_In_Caucasian_Albanian */</div><div class='add'>+</div><div class='add'>+/* 'In_Vithkuqi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Vithkuqi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10570, 0x105bf,</div><div class='add'>+}; /* CR_In_Vithkuqi */</div><div class='add'>+</div><div class='add'>+/* 'In_Linear_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Linear_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10600, 0x1077f,</div><div class='add'>+}; /* CR_In_Linear_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Latin_Extended_F': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Latin_Extended_F[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10780, 0x107bf,</div><div class='add'>+}; /* CR_In_Latin_Extended_F */</div><div class='add'>+</div><div class='add'>+/* 'In_Cypriot_Syllabary': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cypriot_Syllabary[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10800, 0x1083f,</div><div class='add'>+}; /* CR_In_Cypriot_Syllabary */</div><div class='add'>+</div><div class='add'>+/* 'In_Imperial_Aramaic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Imperial_Aramaic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10840, 0x1085f,</div><div class='add'>+}; /* CR_In_Imperial_Aramaic */</div><div class='add'>+</div><div class='add'>+/* 'In_Palmyrene': Block */</div><div class='add'>+#define CR_In_Palmyrene CR_Palmyrene</div><div class='add'>+</div><div class='add'>+/* 'In_Nabataean': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Nabataean[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10880, 0x108af,</div><div class='add'>+}; /* CR_In_Nabataean */</div><div class='add'>+</div><div class='add'>+/* 'In_Hatran': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Hatran[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x108e0, 0x108ff,</div><div class='add'>+}; /* CR_In_Hatran */</div><div class='add'>+</div><div class='add'>+/* 'In_Phoenician': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Phoenician[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10900, 0x1091f,</div><div class='add'>+}; /* CR_In_Phoenician */</div><div class='add'>+</div><div class='add'>+/* 'In_Lydian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Lydian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10920, 0x1093f,</div><div class='add'>+}; /* CR_In_Lydian */</div><div class='add'>+</div><div class='add'>+/* 'In_Meroitic_Hieroglyphs': Block */</div><div class='add'>+#define CR_In_Meroitic_Hieroglyphs CR_Meroitic_Hieroglyphs</div><div class='add'>+</div><div class='add'>+/* 'In_Meroitic_Cursive': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Meroitic_Cursive[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x109a0, 0x109ff,</div><div class='add'>+}; /* CR_In_Meroitic_Cursive */</div><div class='add'>+</div><div class='add'>+/* 'In_Kharoshthi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Kharoshthi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10a00, 0x10a5f,</div><div class='add'>+}; /* CR_In_Kharoshthi */</div><div class='add'>+</div><div class='add'>+/* 'In_Old_South_Arabian': Block */</div><div class='add'>+#define CR_In_Old_South_Arabian CR_Old_South_Arabian</div><div class='add'>+</div><div class='add'>+/* 'In_Old_North_Arabian': Block */</div><div class='add'>+#define CR_In_Old_North_Arabian CR_Old_North_Arabian</div><div class='add'>+</div><div class='add'>+/* 'In_Manichaean': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Manichaean[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10ac0, 0x10aff,</div><div class='add'>+}; /* CR_In_Manichaean */</div><div class='add'>+</div><div class='add'>+/* 'In_Avestan': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Avestan[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10b00, 0x10b3f,</div><div class='add'>+}; /* CR_In_Avestan */</div><div class='add'>+</div><div class='add'>+/* 'In_Inscriptional_Parthian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Inscriptional_Parthian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10b40, 0x10b5f,</div><div class='add'>+}; /* CR_In_Inscriptional_Parthian */</div><div class='add'>+</div><div class='add'>+/* 'In_Inscriptional_Pahlavi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Inscriptional_Pahlavi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10b60, 0x10b7f,</div><div class='add'>+}; /* CR_In_Inscriptional_Pahlavi */</div><div class='add'>+</div><div class='add'>+/* 'In_Psalter_Pahlavi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Psalter_Pahlavi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10b80, 0x10baf,</div><div class='add'>+}; /* CR_In_Psalter_Pahlavi */</div><div class='add'>+</div><div class='add'>+/* 'In_Old_Turkic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Old_Turkic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10c00, 0x10c4f,</div><div class='add'>+}; /* CR_In_Old_Turkic */</div><div class='add'>+</div><div class='add'>+/* 'In_Old_Hungarian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Old_Hungarian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10c80, 0x10cff,</div><div class='add'>+}; /* CR_In_Old_Hungarian */</div><div class='add'>+</div><div class='add'>+/* 'In_Hanifi_Rohingya': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Hanifi_Rohingya[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10d00, 0x10d3f,</div><div class='add'>+}; /* CR_In_Hanifi_Rohingya */</div><div class='add'>+</div><div class='add'>+/* 'In_Rumi_Numeral_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Rumi_Numeral_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10e60, 0x10e7f,</div><div class='add'>+}; /* CR_In_Rumi_Numeral_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Yezidi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Yezidi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10e80, 0x10ebf,</div><div class='add'>+}; /* CR_In_Yezidi */</div><div class='add'>+</div><div class='add'>+/* 'In_Arabic_Extended_C': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Arabic_Extended_C[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10ec0, 0x10eff,</div><div class='add'>+}; /* CR_In_Arabic_Extended_C */</div><div class='add'>+</div><div class='add'>+/* 'In_Old_Sogdian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Old_Sogdian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10f00, 0x10f2f,</div><div class='add'>+}; /* CR_In_Old_Sogdian */</div><div class='add'>+</div><div class='add'>+/* 'In_Sogdian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Sogdian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10f30, 0x10f6f,</div><div class='add'>+}; /* CR_In_Sogdian */</div><div class='add'>+</div><div class='add'>+/* 'In_Old_Uyghur': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Old_Uyghur[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10f70, 0x10faf,</div><div class='add'>+}; /* CR_In_Old_Uyghur */</div><div class='add'>+</div><div class='add'>+/* 'In_Chorasmian': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Chorasmian[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10fb0, 0x10fdf,</div><div class='add'>+}; /* CR_In_Chorasmian */</div><div class='add'>+</div><div class='add'>+/* 'In_Elymaic': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Elymaic[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x10fe0, 0x10fff,</div><div class='add'>+}; /* CR_In_Elymaic */</div><div class='add'>+</div><div class='add'>+/* 'In_Brahmi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Brahmi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11000, 0x1107f,</div><div class='add'>+}; /* CR_In_Brahmi */</div><div class='add'>+</div><div class='add'>+/* 'In_Kaithi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Kaithi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11080, 0x110cf,</div><div class='add'>+}; /* CR_In_Kaithi */</div><div class='add'>+</div><div class='add'>+/* 'In_Sora_Sompeng': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Sora_Sompeng[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x110d0, 0x110ff,</div><div class='add'>+}; /* CR_In_Sora_Sompeng */</div><div class='add'>+</div><div class='add'>+/* 'In_Chakma': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Chakma[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11100, 0x1114f,</div><div class='add'>+}; /* CR_In_Chakma */</div><div class='add'>+</div><div class='add'>+/* 'In_Mahajani': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Mahajani[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11150, 0x1117f,</div><div class='add'>+}; /* CR_In_Mahajani */</div><div class='add'>+</div><div class='add'>+/* 'In_Sharada': Block */</div><div class='add'>+#define CR_In_Sharada CR_Sharada</div><div class='add'>+</div><div class='add'>+/* 'In_Sinhala_Archaic_Numbers': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Sinhala_Archaic_Numbers[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x111e0, 0x111ff,</div><div class='add'>+}; /* CR_In_Sinhala_Archaic_Numbers */</div><div class='add'>+</div><div class='add'>+/* 'In_Khojki': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Khojki[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11200, 0x1124f,</div><div class='add'>+}; /* CR_In_Khojki */</div><div class='add'>+</div><div class='add'>+/* 'In_Multani': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Multani[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11280, 0x112af,</div><div class='add'>+}; /* CR_In_Multani */</div><div class='add'>+</div><div class='add'>+/* 'In_Khudawadi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Khudawadi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x112b0, 0x112ff,</div><div class='add'>+}; /* CR_In_Khudawadi */</div><div class='add'>+</div><div class='add'>+/* 'In_Grantha': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Grantha[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11300, 0x1137f,</div><div class='add'>+}; /* CR_In_Grantha */</div><div class='add'>+</div><div class='add'>+/* 'In_Newa': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Newa[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11400, 0x1147f,</div><div class='add'>+}; /* CR_In_Newa */</div><div class='add'>+</div><div class='add'>+/* 'In_Tirhuta': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tirhuta[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11480, 0x114df,</div><div class='add'>+}; /* CR_In_Tirhuta */</div><div class='add'>+</div><div class='add'>+/* 'In_Siddham': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Siddham[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11580, 0x115ff,</div><div class='add'>+}; /* CR_In_Siddham */</div><div class='add'>+</div><div class='add'>+/* 'In_Modi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Modi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11600, 0x1165f,</div><div class='add'>+}; /* CR_In_Modi */</div><div class='add'>+</div><div class='add'>+/* 'In_Mongolian_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Mongolian_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11660, 0x1167f,</div><div class='add'>+}; /* CR_In_Mongolian_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Takri': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Takri[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11680, 0x116cf,</div><div class='add'>+}; /* CR_In_Takri */</div><div class='add'>+</div><div class='add'>+/* 'In_Ahom': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ahom[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11700, 0x1174f,</div><div class='add'>+}; /* CR_In_Ahom */</div><div class='add'>+</div><div class='add'>+/* 'In_Dogra': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Dogra[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11800, 0x1184f,</div><div class='add'>+}; /* CR_In_Dogra */</div><div class='add'>+</div><div class='add'>+/* 'In_Warang_Citi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Warang_Citi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x118a0, 0x118ff,</div><div class='add'>+}; /* CR_In_Warang_Citi */</div><div class='add'>+</div><div class='add'>+/* 'In_Dives_Akuru': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Dives_Akuru[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11900, 0x1195f,</div><div class='add'>+}; /* CR_In_Dives_Akuru */</div><div class='add'>+</div><div class='add'>+/* 'In_Nandinagari': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Nandinagari[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x119a0, 0x119ff,</div><div class='add'>+}; /* CR_In_Nandinagari */</div><div class='add'>+</div><div class='add'>+/* 'In_Zanabazar_Square': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Zanabazar_Square[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11a00, 0x11a4f,</div><div class='add'>+}; /* CR_In_Zanabazar_Square */</div><div class='add'>+</div><div class='add'>+/* 'In_Soyombo': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Soyombo[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11a50, 0x11aaf,</div><div class='add'>+}; /* CR_In_Soyombo */</div><div class='add'>+</div><div class='add'>+/* 'In_Unified_Canadian_Aboriginal_Syllabics_Extended_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11ab0, 0x11abf,</div><div class='add'>+}; /* CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Pau_Cin_Hau': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Pau_Cin_Hau[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11ac0, 0x11aff,</div><div class='add'>+}; /* CR_In_Pau_Cin_Hau */</div><div class='add'>+</div><div class='add'>+/* 'In_Devanagari_Extended_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Devanagari_Extended_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11b00, 0x11b5f,</div><div class='add'>+}; /* CR_In_Devanagari_Extended_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Bhaiksuki': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Bhaiksuki[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11c00, 0x11c6f,</div><div class='add'>+}; /* CR_In_Bhaiksuki */</div><div class='add'>+</div><div class='add'>+/* 'In_Marchen': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Marchen[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11c70, 0x11cbf,</div><div class='add'>+}; /* CR_In_Marchen */</div><div class='add'>+</div><div class='add'>+/* 'In_Masaram_Gondi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Masaram_Gondi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11d00, 0x11d5f,</div><div class='add'>+}; /* CR_In_Masaram_Gondi */</div><div class='add'>+</div><div class='add'>+/* 'In_Gunjala_Gondi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Gunjala_Gondi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11d60, 0x11daf,</div><div class='add'>+}; /* CR_In_Gunjala_Gondi */</div><div class='add'>+</div><div class='add'>+/* 'In_Makasar': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Makasar[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11ee0, 0x11eff,</div><div class='add'>+}; /* CR_In_Makasar */</div><div class='add'>+</div><div class='add'>+/* 'In_Kawi': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Kawi[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11f00, 0x11f5f,</div><div class='add'>+}; /* CR_In_Kawi */</div><div class='add'>+</div><div class='add'>+/* 'In_Lisu_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Lisu_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11fb0, 0x11fbf,</div><div class='add'>+}; /* CR_In_Lisu_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Tamil_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tamil_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x11fc0, 0x11fff,</div><div class='add'>+}; /* CR_In_Tamil_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Cuneiform': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cuneiform[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x12000, 0x123ff,</div><div class='add'>+}; /* CR_In_Cuneiform */</div><div class='add'>+</div><div class='add'>+/* 'In_Cuneiform_Numbers_and_Punctuation': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cuneiform_Numbers_and_Punctuation[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x12400, 0x1247f,</div><div class='add'>+}; /* CR_In_Cuneiform_Numbers_and_Punctuation */</div><div class='add'>+</div><div class='add'>+/* 'In_Early_Dynastic_Cuneiform': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Early_Dynastic_Cuneiform[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x12480, 0x1254f,</div><div class='add'>+}; /* CR_In_Early_Dynastic_Cuneiform */</div><div class='add'>+</div><div class='add'>+/* 'In_Cypro_Minoan': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cypro_Minoan[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x12f90, 0x12fff,</div><div class='add'>+}; /* CR_In_Cypro_Minoan */</div><div class='add'>+</div><div class='add'>+/* 'In_Egyptian_Hieroglyphs': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Egyptian_Hieroglyphs[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x13000, 0x1342f,</div><div class='add'>+}; /* CR_In_Egyptian_Hieroglyphs */</div><div class='add'>+</div><div class='add'>+/* 'In_Egyptian_Hieroglyph_Format_Controls': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Egyptian_Hieroglyph_Format_Controls[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x13430, 0x1345f,</div><div class='add'>+}; /* CR_In_Egyptian_Hieroglyph_Format_Controls */</div><div class='add'>+</div><div class='add'>+/* 'In_Anatolian_Hieroglyphs': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Anatolian_Hieroglyphs[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x14400, 0x1467f,</div><div class='add'>+}; /* CR_In_Anatolian_Hieroglyphs */</div><div class='add'>+</div><div class='add'>+/* 'In_Bamum_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Bamum_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x16800, 0x16a3f,</div><div class='add'>+}; /* CR_In_Bamum_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Mro': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Mro[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x16a40, 0x16a6f,</div><div class='add'>+}; /* CR_In_Mro */</div><div class='add'>+</div><div class='add'>+/* 'In_Tangsa': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tangsa[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x16a70, 0x16acf,</div><div class='add'>+}; /* CR_In_Tangsa */</div><div class='add'>+</div><div class='add'>+/* 'In_Bassa_Vah': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Bassa_Vah[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x16ad0, 0x16aff,</div><div class='add'>+}; /* CR_In_Bassa_Vah */</div><div class='add'>+</div><div class='add'>+/* 'In_Pahawh_Hmong': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Pahawh_Hmong[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x16b00, 0x16b8f,</div><div class='add'>+}; /* CR_In_Pahawh_Hmong */</div><div class='add'>+</div><div class='add'>+/* 'In_Medefaidrin': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Medefaidrin[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x16e40, 0x16e9f,</div><div class='add'>+}; /* CR_In_Medefaidrin */</div><div class='add'>+</div><div class='add'>+/* 'In_Miao': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Miao[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x16f00, 0x16f9f,</div><div class='add'>+}; /* CR_In_Miao */</div><div class='add'>+</div><div class='add'>+/* 'In_Ideographic_Symbols_and_Punctuation': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ideographic_Symbols_and_Punctuation[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x16fe0, 0x16fff,</div><div class='add'>+}; /* CR_In_Ideographic_Symbols_and_Punctuation */</div><div class='add'>+</div><div class='add'>+/* 'In_Tangut': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tangut[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x17000, 0x187ff,</div><div class='add'>+}; /* CR_In_Tangut */</div><div class='add'>+</div><div class='add'>+/* 'In_Tangut_Components': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tangut_Components[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x18800, 0x18aff,</div><div class='add'>+}; /* CR_In_Tangut_Components */</div><div class='add'>+</div><div class='add'>+/* 'In_Khitan_Small_Script': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Khitan_Small_Script[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x18b00, 0x18cff,</div><div class='add'>+}; /* CR_In_Khitan_Small_Script */</div><div class='add'>+</div><div class='add'>+/* 'In_Tangut_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tangut_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x18d00, 0x18d7f,</div><div class='add'>+}; /* CR_In_Tangut_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Kana_Extended_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Kana_Extended_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1aff0, 0x1afff,</div><div class='add'>+}; /* CR_In_Kana_Extended_B */</div><div class='add'>+</div><div class='add'>+/* 'In_Kana_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Kana_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1b000, 0x1b0ff,</div><div class='add'>+}; /* CR_In_Kana_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Kana_Extended_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Kana_Extended_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1b100, 0x1b12f,</div><div class='add'>+}; /* CR_In_Kana_Extended_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Small_Kana_Extension': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Small_Kana_Extension[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1b130, 0x1b16f,</div><div class='add'>+}; /* CR_In_Small_Kana_Extension */</div><div class='add'>+</div><div class='add'>+/* 'In_Nushu': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Nushu[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1b170, 0x1b2ff,</div><div class='add'>+}; /* CR_In_Nushu */</div><div class='add'>+</div><div class='add'>+/* 'In_Duployan': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Duployan[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1bc00, 0x1bc9f,</div><div class='add'>+}; /* CR_In_Duployan */</div><div class='add'>+</div><div class='add'>+/* 'In_Shorthand_Format_Controls': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Shorthand_Format_Controls[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1bca0, 0x1bcaf,</div><div class='add'>+}; /* CR_In_Shorthand_Format_Controls */</div><div class='add'>+</div><div class='add'>+/* 'In_Znamenny_Musical_Notation': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Znamenny_Musical_Notation[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1cf00, 0x1cfcf,</div><div class='add'>+}; /* CR_In_Znamenny_Musical_Notation */</div><div class='add'>+</div><div class='add'>+/* 'In_Byzantine_Musical_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Byzantine_Musical_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1d000, 0x1d0ff,</div><div class='add'>+}; /* CR_In_Byzantine_Musical_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Musical_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Musical_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1d100, 0x1d1ff,</div><div class='add'>+}; /* CR_In_Musical_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Ancient_Greek_Musical_Notation': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ancient_Greek_Musical_Notation[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1d200, 0x1d24f,</div><div class='add'>+}; /* CR_In_Ancient_Greek_Musical_Notation */</div><div class='add'>+</div><div class='add'>+/* 'In_Kaktovik_Numerals': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Kaktovik_Numerals[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1d2c0, 0x1d2df,</div><div class='add'>+}; /* CR_In_Kaktovik_Numerals */</div><div class='add'>+</div><div class='add'>+/* 'In_Mayan_Numerals': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Mayan_Numerals[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1d2e0, 0x1d2ff,</div><div class='add'>+}; /* CR_In_Mayan_Numerals */</div><div class='add'>+</div><div class='add'>+/* 'In_Tai_Xuan_Jing_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tai_Xuan_Jing_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1d300, 0x1d35f,</div><div class='add'>+}; /* CR_In_Tai_Xuan_Jing_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Counting_Rod_Numerals': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Counting_Rod_Numerals[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1d360, 0x1d37f,</div><div class='add'>+}; /* CR_In_Counting_Rod_Numerals */</div><div class='add'>+</div><div class='add'>+/* 'In_Mathematical_Alphanumeric_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Mathematical_Alphanumeric_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1d400, 0x1d7ff,</div><div class='add'>+}; /* CR_In_Mathematical_Alphanumeric_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Sutton_SignWriting': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Sutton_SignWriting[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1d800, 0x1daaf,</div><div class='add'>+}; /* CR_In_Sutton_SignWriting */</div><div class='add'>+</div><div class='add'>+/* 'In_Latin_Extended_G': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Latin_Extended_G[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1df00, 0x1dfff,</div><div class='add'>+}; /* CR_In_Latin_Extended_G */</div><div class='add'>+</div><div class='add'>+/* 'In_Glagolitic_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Glagolitic_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e000, 0x1e02f,</div><div class='add'>+}; /* CR_In_Glagolitic_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Cyrillic_Extended_D': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Cyrillic_Extended_D[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e030, 0x1e08f,</div><div class='add'>+}; /* CR_In_Cyrillic_Extended_D */</div><div class='add'>+</div><div class='add'>+/* 'In_Nyiakeng_Puachue_Hmong': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Nyiakeng_Puachue_Hmong[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e100, 0x1e14f,</div><div class='add'>+}; /* CR_In_Nyiakeng_Puachue_Hmong */</div><div class='add'>+</div><div class='add'>+/* 'In_Toto': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Toto[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e290, 0x1e2bf,</div><div class='add'>+}; /* CR_In_Toto */</div><div class='add'>+</div><div class='add'>+/* 'In_Wancho': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Wancho[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e2c0, 0x1e2ff,</div><div class='add'>+}; /* CR_In_Wancho */</div><div class='add'>+</div><div class='add'>+/* 'In_Nag_Mundari': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Nag_Mundari[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e4d0, 0x1e4ff,</div><div class='add'>+}; /* CR_In_Nag_Mundari */</div><div class='add'>+</div><div class='add'>+/* 'In_Ethiopic_Extended_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ethiopic_Extended_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e7e0, 0x1e7ff,</div><div class='add'>+}; /* CR_In_Ethiopic_Extended_B */</div><div class='add'>+</div><div class='add'>+/* 'In_Mende_Kikakui': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Mende_Kikakui[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e800, 0x1e8df,</div><div class='add'>+}; /* CR_In_Mende_Kikakui */</div><div class='add'>+</div><div class='add'>+/* 'In_Adlam': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Adlam[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1e900, 0x1e95f,</div><div class='add'>+}; /* CR_In_Adlam */</div><div class='add'>+</div><div class='add'>+/* 'In_Indic_Siyaq_Numbers': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Indic_Siyaq_Numbers[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1ec70, 0x1ecbf,</div><div class='add'>+}; /* CR_In_Indic_Siyaq_Numbers */</div><div class='add'>+</div><div class='add'>+/* 'In_Ottoman_Siyaq_Numbers': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ottoman_Siyaq_Numbers[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1ed00, 0x1ed4f,</div><div class='add'>+}; /* CR_In_Ottoman_Siyaq_Numbers */</div><div class='add'>+</div><div class='add'>+/* 'In_Arabic_Mathematical_Alphabetic_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Arabic_Mathematical_Alphabetic_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1ee00, 0x1eeff,</div><div class='add'>+}; /* CR_In_Arabic_Mathematical_Alphabetic_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Mahjong_Tiles': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Mahjong_Tiles[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f000, 0x1f02f,</div><div class='add'>+}; /* CR_In_Mahjong_Tiles */</div><div class='add'>+</div><div class='add'>+/* 'In_Domino_Tiles': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Domino_Tiles[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f030, 0x1f09f,</div><div class='add'>+}; /* CR_In_Domino_Tiles */</div><div class='add'>+</div><div class='add'>+/* 'In_Playing_Cards': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Playing_Cards[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f0a0, 0x1f0ff,</div><div class='add'>+}; /* CR_In_Playing_Cards */</div><div class='add'>+</div><div class='add'>+/* 'In_Enclosed_Alphanumeric_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Enclosed_Alphanumeric_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f100, 0x1f1ff,</div><div class='add'>+}; /* CR_In_Enclosed_Alphanumeric_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Enclosed_Ideographic_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Enclosed_Ideographic_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f200, 0x1f2ff,</div><div class='add'>+}; /* CR_In_Enclosed_Ideographic_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Miscellaneous_Symbols_and_Pictographs': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Miscellaneous_Symbols_and_Pictographs[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f300, 0x1f5ff,</div><div class='add'>+}; /* CR_In_Miscellaneous_Symbols_and_Pictographs */</div><div class='add'>+</div><div class='add'>+/* 'In_Emoticons': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Emoticons[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f600, 0x1f64f,</div><div class='add'>+}; /* CR_In_Emoticons */</div><div class='add'>+</div><div class='add'>+/* 'In_Ornamental_Dingbats': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Ornamental_Dingbats[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f650, 0x1f67f,</div><div class='add'>+}; /* CR_In_Ornamental_Dingbats */</div><div class='add'>+</div><div class='add'>+/* 'In_Transport_and_Map_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Transport_and_Map_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f680, 0x1f6ff,</div><div class='add'>+}; /* CR_In_Transport_and_Map_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Alchemical_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Alchemical_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f700, 0x1f77f,</div><div class='add'>+}; /* CR_In_Alchemical_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Geometric_Shapes_Extended': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Geometric_Shapes_Extended[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f780, 0x1f7ff,</div><div class='add'>+}; /* CR_In_Geometric_Shapes_Extended */</div><div class='add'>+</div><div class='add'>+/* 'In_Supplemental_Arrows_C': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Supplemental_Arrows_C[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f800, 0x1f8ff,</div><div class='add'>+}; /* CR_In_Supplemental_Arrows_C */</div><div class='add'>+</div><div class='add'>+/* 'In_Supplemental_Symbols_and_Pictographs': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Supplemental_Symbols_and_Pictographs[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1f900, 0x1f9ff,</div><div class='add'>+}; /* CR_In_Supplemental_Symbols_and_Pictographs */</div><div class='add'>+</div><div class='add'>+/* 'In_Chess_Symbols': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Chess_Symbols[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1fa00, 0x1fa6f,</div><div class='add'>+}; /* CR_In_Chess_Symbols */</div><div class='add'>+</div><div class='add'>+/* 'In_Symbols_and_Pictographs_Extended_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Symbols_and_Pictographs_Extended_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1fa70, 0x1faff,</div><div class='add'>+}; /* CR_In_Symbols_and_Pictographs_Extended_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Symbols_for_Legacy_Computing': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Symbols_for_Legacy_Computing[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x1fb00, 0x1fbff,</div><div class='add'>+}; /* CR_In_Symbols_for_Legacy_Computing */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Unified_Ideographs_Extension_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x20000, 0x2a6df,</div><div class='add'>+}; /* CR_In_CJK_Unified_Ideographs_Extension_B */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Unified_Ideographs_Extension_C': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_C[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2a700, 0x2b73f,</div><div class='add'>+}; /* CR_In_CJK_Unified_Ideographs_Extension_C */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Unified_Ideographs_Extension_D': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_D[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2b740, 0x2b81f,</div><div class='add'>+}; /* CR_In_CJK_Unified_Ideographs_Extension_D */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Unified_Ideographs_Extension_E': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_E[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2b820, 0x2ceaf,</div><div class='add'>+}; /* CR_In_CJK_Unified_Ideographs_Extension_E */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Unified_Ideographs_Extension_F': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_F[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2ceb0, 0x2ebef,</div><div class='add'>+}; /* CR_In_CJK_Unified_Ideographs_Extension_F */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Compatibility_Ideographs_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Compatibility_Ideographs_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x2f800, 0x2fa1f,</div><div class='add'>+}; /* CR_In_CJK_Compatibility_Ideographs_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Unified_Ideographs_Extension_G': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_G[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x30000, 0x3134f,</div><div class='add'>+}; /* CR_In_CJK_Unified_Ideographs_Extension_G */</div><div class='add'>+</div><div class='add'>+/* 'In_CJK_Unified_Ideographs_Extension_H': Block */</div><div class='add'>+static const OnigCodePoint CR_In_CJK_Unified_Ideographs_Extension_H[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x31350, 0x323af,</div><div class='add'>+}; /* CR_In_CJK_Unified_Ideographs_Extension_H */</div><div class='add'>+</div><div class='add'>+/* 'In_Tags': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Tags[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xe0000, 0xe007f,</div><div class='add'>+}; /* CR_In_Tags */</div><div class='add'>+</div><div class='add'>+/* 'In_Variation_Selectors_Supplement': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Variation_Selectors_Supplement[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xe0100, 0xe01ef,</div><div class='add'>+}; /* CR_In_Variation_Selectors_Supplement */</div><div class='add'>+</div><div class='add'>+/* 'In_Supplementary_Private_Use_Area_A': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Supplementary_Private_Use_Area_A[] = {</div><div class='add'>+	1,</div><div class='add'>+	0xf0000, 0xfffff,</div><div class='add'>+}; /* CR_In_Supplementary_Private_Use_Area_A */</div><div class='add'>+</div><div class='add'>+/* 'In_Supplementary_Private_Use_Area_B': Block */</div><div class='add'>+static const OnigCodePoint CR_In_Supplementary_Private_Use_Area_B[] = {</div><div class='add'>+	1,</div><div class='add'>+	0x100000, 0x10ffff,</div><div class='add'>+}; /* CR_In_Supplementary_Private_Use_Area_B */</div><div class='add'>+</div><div class='add'>+/* 'In_No_Block': Block */</div><div class='add'>+static const OnigCodePoint CR_In_No_Block[] = {</div><div class='add'>+	51,</div><div class='add'>+	0x2fe0, 0x2fef,</div><div class='add'>+	0x10200, 0x1027f,</div><div class='add'>+	0x103e0, 0x103ff,</div><div class='add'>+	0x105c0, 0x105ff,</div><div class='add'>+	0x107c0, 0x107ff,</div><div class='add'>+	0x108b0, 0x108df,</div><div class='add'>+	0x10940, 0x1097f,</div><div class='add'>+	0x10aa0, 0x10abf,</div><div class='add'>+	0x10bb0, 0x10bff,</div><div class='add'>+	0x10c50, 0x10c7f,</div><div class='add'>+	0x10d40, 0x10e5f,</div><div class='add'>+	0x11250, 0x1127f,</div><div class='add'>+	0x11380, 0x113ff,</div><div class='add'>+	0x114e0, 0x1157f,</div><div class='add'>+	0x116d0, 0x116ff,</div><div class='add'>+	0x11750, 0x117ff,</div><div class='add'>+	0x11850, 0x1189f,</div><div class='add'>+	0x11960, 0x1199f,</div><div class='add'>+	0x11b60, 0x11bff,</div><div class='add'>+	0x11cc0, 0x11cff,</div><div class='add'>+	0x11db0, 0x11edf,</div><div class='add'>+	0x11f60, 0x11faf,</div><div class='add'>+	0x12550, 0x12f8f,</div><div class='add'>+	0x13460, 0x143ff,</div><div class='add'>+	0x14680, 0x167ff,</div><div class='add'>+	0x16b90, 0x16e3f,</div><div class='add'>+	0x16ea0, 0x16eff,</div><div class='add'>+	0x16fa0, 0x16fdf,</div><div class='add'>+	0x18d80, 0x1afef,</div><div class='add'>+	0x1b300, 0x1bbff,</div><div class='add'>+	0x1bcb0, 0x1ceff,</div><div class='add'>+	0x1cfd0, 0x1cfff,</div><div class='add'>+	0x1d250, 0x1d2bf,</div><div class='add'>+	0x1d380, 0x1d3ff,</div><div class='add'>+	0x1dab0, 0x1deff,</div><div class='add'>+	0x1e090, 0x1e0ff,</div><div class='add'>+	0x1e150, 0x1e28f,</div><div class='add'>+	0x1e300, 0x1e4cf,</div><div class='add'>+	0x1e500, 0x1e7df,</div><div class='add'>+	0x1e8e0, 0x1e8ff,</div><div class='add'>+	0x1e960, 0x1ec6f,</div><div class='add'>+	0x1ecc0, 0x1ecff,</div><div class='add'>+	0x1ed50, 0x1edff,</div><div class='add'>+	0x1ef00, 0x1efff,</div><div class='add'>+	0x1fc00, 0x1ffff,</div><div class='add'>+	0x2a6e0, 0x2a6ff,</div><div class='add'>+	0x2ebf0, 0x2f7ff,</div><div class='add'>+	0x2fa20, 0x2ffff,</div><div class='add'>+	0x323b0, 0xdffff,</div><div class='add'>+	0xe0080, 0xe00ff,</div><div class='add'>+	0xe01f0, 0xeffff,</div><div class='add'>+}; /* CR_In_No_Block */</div><div class='add'>+</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+static const OnigCodePoint* const CodeRanges[] = {</div><div class='add'>+  CR_NEWLINE,</div><div class='add'>+  CR_Alpha,</div><div class='add'>+  CR_Blank,</div><div class='add'>+  CR_Cntrl,</div><div class='add'>+  CR_Digit,</div><div class='add'>+  CR_Graph,</div><div class='add'>+  CR_Lower,</div><div class='add'>+  CR_Print,</div><div class='add'>+  CR_XPosixPunct,</div><div class='add'>+  CR_Space,</div><div class='add'>+  CR_Upper,</div><div class='add'>+  CR_XDigit,</div><div class='add'>+  CR_Word,</div><div class='add'>+  CR_Alnum,</div><div class='add'>+  CR_ASCII,</div><div class='add'>+  CR_Punct,</div><div class='add'>+#ifdef USE_UNICODE_PROPERTIES</div><div class='add'>+  CR_Any,</div><div class='add'>+  CR_Assigned,</div><div class='add'>+  CR_C,</div><div class='add'>+  CR_Cc,</div><div class='add'>+  CR_Cf,</div><div class='add'>+  CR_Cn,</div><div class='add'>+  CR_Co,</div><div class='add'>+  CR_Cs,</div><div class='add'>+  CR_L,</div><div class='add'>+  CR_LC,</div><div class='add'>+  CR_Ll,</div><div class='add'>+  CR_Lm,</div><div class='add'>+  CR_Lo,</div><div class='add'>+  CR_Lt,</div><div class='add'>+  CR_Lu,</div><div class='add'>+  CR_M,</div><div class='add'>+  CR_Mc,</div><div class='add'>+  CR_Me,</div><div class='add'>+  CR_Mn,</div><div class='add'>+  CR_N,</div><div class='add'>+  CR_Nd,</div><div class='add'>+  CR_Nl,</div><div class='add'>+  CR_No,</div><div class='add'>+  CR_P,</div><div class='add'>+  CR_Pc,</div><div class='add'>+  CR_Pd,</div><div class='add'>+  CR_Pe,</div><div class='add'>+  CR_Pf,</div><div class='add'>+  CR_Pi,</div><div class='add'>+  CR_Po,</div><div class='add'>+  CR_Ps,</div><div class='add'>+  CR_S,</div><div class='add'>+  CR_Sc,</div><div class='add'>+  CR_Sk,</div><div class='add'>+  CR_Sm,</div><div class='add'>+  CR_So,</div><div class='add'>+  CR_Z,</div><div class='add'>+  CR_Zl,</div><div class='add'>+  CR_Zp,</div><div class='add'>+  CR_Zs,</div><div class='add'>+  CR_Math,</div><div class='add'>+  CR_Alphabetic,</div><div class='add'>+  CR_Lowercase,</div><div class='add'>+  CR_Uppercase,</div><div class='add'>+  CR_Cased,</div><div class='add'>+  CR_Case_Ignorable,</div><div class='add'>+  CR_Changes_When_Lowercased,</div><div class='add'>+  CR_Changes_When_Uppercased,</div><div class='add'>+  CR_Changes_When_Titlecased,</div><div class='add'>+  CR_Changes_When_Casefolded,</div><div class='add'>+  CR_Changes_When_Casemapped,</div><div class='add'>+  CR_ID_Start,</div><div class='add'>+  CR_ID_Continue,</div><div class='add'>+  CR_XID_Start,</div><div class='add'>+  CR_XID_Continue,</div><div class='add'>+  CR_Default_Ignorable_Code_Point,</div><div class='add'>+  CR_Grapheme_Extend,</div><div class='add'>+  CR_Grapheme_Base,</div><div class='add'>+  CR_Grapheme_Link,</div><div class='add'>+  CR_Common,</div><div class='add'>+  CR_Latin,</div><div class='add'>+  CR_Greek,</div><div class='add'>+  CR_Cyrillic,</div><div class='add'>+  CR_Armenian,</div><div class='add'>+  CR_Hebrew,</div><div class='add'>+  CR_Arabic,</div><div class='add'>+  CR_Syriac,</div><div class='add'>+  CR_Thaana,</div><div class='add'>+  CR_Devanagari,</div><div class='add'>+  CR_Bengali,</div><div class='add'>+  CR_Gurmukhi,</div><div class='add'>+  CR_Gujarati,</div><div class='add'>+  CR_Oriya,</div><div class='add'>+  CR_Tamil,</div><div class='add'>+  CR_Telugu,</div><div class='add'>+  CR_Kannada,</div><div class='add'>+  CR_Malayalam,</div><div class='add'>+  CR_Sinhala,</div><div class='add'>+  CR_Thai,</div><div class='add'>+  CR_Lao,</div><div class='add'>+  CR_Tibetan,</div><div class='add'>+  CR_Myanmar,</div><div class='add'>+  CR_Georgian,</div><div class='add'>+  CR_Hangul,</div><div class='add'>+  CR_Ethiopic,</div><div class='add'>+  CR_Cherokee,</div><div class='add'>+  CR_Canadian_Aboriginal,</div><div class='add'>+  CR_Ogham,</div><div class='add'>+  CR_Runic,</div><div class='add'>+  CR_Khmer,</div><div class='add'>+  CR_Mongolian,</div><div class='add'>+  CR_Hiragana,</div><div class='add'>+  CR_Katakana,</div><div class='add'>+  CR_Bopomofo,</div><div class='add'>+  CR_Han,</div><div class='add'>+  CR_Yi,</div><div class='add'>+  CR_Old_Italic,</div><div class='add'>+  CR_Gothic,</div><div class='add'>+  CR_Deseret,</div><div class='add'>+  CR_Inherited,</div><div class='add'>+  CR_Tagalog,</div><div class='add'>+  CR_Hanunoo,</div><div class='add'>+  CR_Buhid,</div><div class='add'>+  CR_Tagbanwa,</div><div class='add'>+  CR_Limbu,</div><div class='add'>+  CR_Tai_Le,</div><div class='add'>+  CR_Linear_B,</div><div class='add'>+  CR_Ugaritic,</div><div class='add'>+  CR_Shavian,</div><div class='add'>+  CR_Osmanya,</div><div class='add'>+  CR_Cypriot,</div><div class='add'>+  CR_Braille,</div><div class='add'>+  CR_Buginese,</div><div class='add'>+  CR_Coptic,</div><div class='add'>+  CR_New_Tai_Lue,</div><div class='add'>+  CR_Glagolitic,</div><div class='add'>+  CR_Tifinagh,</div><div class='add'>+  CR_Syloti_Nagri,</div><div class='add'>+  CR_Old_Persian,</div><div class='add'>+  CR_Kharoshthi,</div><div class='add'>+  CR_Balinese,</div><div class='add'>+  CR_Cuneiform,</div><div class='add'>+  CR_Phoenician,</div><div class='add'>+  CR_Phags_Pa,</div><div class='add'>+  CR_Nko,</div><div class='add'>+  CR_Sundanese,</div><div class='add'>+  CR_Lepcha,</div><div class='add'>+  CR_Ol_Chiki,</div><div class='add'>+  CR_Vai,</div><div class='add'>+  CR_Saurashtra,</div><div class='add'>+  CR_Kayah_Li,</div><div class='add'>+  CR_Rejang,</div><div class='add'>+  CR_Lycian,</div><div class='add'>+  CR_Carian,</div><div class='add'>+  CR_Lydian,</div><div class='add'>+  CR_Cham,</div><div class='add'>+  CR_Tai_Tham,</div><div class='add'>+  CR_Tai_Viet,</div><div class='add'>+  CR_Avestan,</div><div class='add'>+  CR_Egyptian_Hieroglyphs,</div><div class='add'>+  CR_Samaritan,</div><div class='add'>+  CR_Lisu,</div><div class='add'>+  CR_Bamum,</div><div class='add'>+  CR_Javanese,</div><div class='add'>+  CR_Meetei_Mayek,</div><div class='add'>+  CR_Imperial_Aramaic,</div><div class='add'>+  CR_Old_South_Arabian,</div><div class='add'>+  CR_Inscriptional_Parthian,</div><div class='add'>+  CR_Inscriptional_Pahlavi,</div><div class='add'>+  CR_Old_Turkic,</div><div class='add'>+  CR_Kaithi,</div><div class='add'>+  CR_Batak,</div><div class='add'>+  CR_Brahmi,</div><div class='add'>+  CR_Mandaic,</div><div class='add'>+  CR_Chakma,</div><div class='add'>+  CR_Meroitic_Cursive,</div><div class='add'>+  CR_Meroitic_Hieroglyphs,</div><div class='add'>+  CR_Miao,</div><div class='add'>+  CR_Sharada,</div><div class='add'>+  CR_Sora_Sompeng,</div><div class='add'>+  CR_Takri,</div><div class='add'>+  CR_Caucasian_Albanian,</div><div class='add'>+  CR_Bassa_Vah,</div><div class='add'>+  CR_Duployan,</div><div class='add'>+  CR_Elbasan,</div><div class='add'>+  CR_Grantha,</div><div class='add'>+  CR_Pahawh_Hmong,</div><div class='add'>+  CR_Khojki,</div><div class='add'>+  CR_Linear_A,</div><div class='add'>+  CR_Mahajani,</div><div class='add'>+  CR_Manichaean,</div><div class='add'>+  CR_Mende_Kikakui,</div><div class='add'>+  CR_Modi,</div><div class='add'>+  CR_Mro,</div><div class='add'>+  CR_Old_North_Arabian,</div><div class='add'>+  CR_Nabataean,</div><div class='add'>+  CR_Palmyrene,</div><div class='add'>+  CR_Pau_Cin_Hau,</div><div class='add'>+  CR_Old_Permic,</div><div class='add'>+  CR_Psalter_Pahlavi,</div><div class='add'>+  CR_Siddham,</div><div class='add'>+  CR_Khudawadi,</div><div class='add'>+  CR_Tirhuta,</div><div class='add'>+  CR_Warang_Citi,</div><div class='add'>+  CR_Ahom,</div><div class='add'>+  CR_Anatolian_Hieroglyphs,</div><div class='add'>+  CR_Hatran,</div><div class='add'>+  CR_Multani,</div><div class='add'>+  CR_Old_Hungarian,</div><div class='add'>+  CR_SignWriting,</div><div class='add'>+  CR_Adlam,</div><div class='add'>+  CR_Bhaiksuki,</div><div class='add'>+  CR_Marchen,</div><div class='add'>+  CR_Newa,</div><div class='add'>+  CR_Osage,</div><div class='add'>+  CR_Tangut,</div><div class='add'>+  CR_Masaram_Gondi,</div><div class='add'>+  CR_Nushu,</div><div class='add'>+  CR_Soyombo,</div><div class='add'>+  CR_Zanabazar_Square,</div><div class='add'>+  CR_Dogra,</div><div class='add'>+  CR_Gunjala_Gondi,</div><div class='add'>+  CR_Makasar,</div><div class='add'>+  CR_Medefaidrin,</div><div class='add'>+  CR_Hanifi_Rohingya,</div><div class='add'>+  CR_Sogdian,</div><div class='add'>+  CR_Old_Sogdian,</div><div class='add'>+  CR_Elymaic,</div><div class='add'>+  CR_Nandinagari,</div><div class='add'>+  CR_Nyiakeng_Puachue_Hmong,</div><div class='add'>+  CR_Wancho,</div><div class='add'>+  CR_Chorasmian,</div><div class='add'>+  CR_Dives_Akuru,</div><div class='add'>+  CR_Khitan_Small_Script,</div><div class='add'>+  CR_Yezidi,</div><div class='add'>+  CR_Cypro_Minoan,</div><div class='add'>+  CR_Old_Uyghur,</div><div class='add'>+  CR_Tangsa,</div><div class='add'>+  CR_Toto,</div><div class='add'>+  CR_Vithkuqi,</div><div class='add'>+  CR_Kawi,</div><div class='add'>+  CR_Nag_Mundari,</div><div class='add'>+  CR_White_Space,</div><div class='add'>+  CR_Bidi_Control,</div><div class='add'>+  CR_Join_Control,</div><div class='add'>+  CR_Dash,</div><div class='add'>+  CR_Hyphen,</div><div class='add'>+  CR_Quotation_Mark,</div><div class='add'>+  CR_Terminal_Punctuation,</div><div class='add'>+  CR_Other_Math,</div><div class='add'>+  CR_Hex_Digit,</div><div class='add'>+  CR_ASCII_Hex_Digit,</div><div class='add'>+  CR_Other_Alphabetic,</div><div class='add'>+  CR_Ideographic,</div><div class='add'>+  CR_Diacritic,</div><div class='add'>+  CR_Extender,</div><div class='add'>+  CR_Other_Lowercase,</div><div class='add'>+  CR_Other_Uppercase,</div><div class='add'>+  CR_Noncharacter_Code_Point,</div><div class='add'>+  CR_Other_Grapheme_Extend,</div><div class='add'>+  CR_IDS_Binary_Operator,</div><div class='add'>+  CR_IDS_Trinary_Operator,</div><div class='add'>+  CR_Radical,</div><div class='add'>+  CR_Unified_Ideograph,</div><div class='add'>+  CR_Other_Default_Ignorable_Code_Point,</div><div class='add'>+  CR_Deprecated,</div><div class='add'>+  CR_Soft_Dotted,</div><div class='add'>+  CR_Logical_Order_Exception,</div><div class='add'>+  CR_Other_ID_Start,</div><div class='add'>+  CR_Other_ID_Continue,</div><div class='add'>+  CR_Sentence_Terminal,</div><div class='add'>+  CR_Variation_Selector,</div><div class='add'>+  CR_Pattern_White_Space,</div><div class='add'>+  CR_Pattern_Syntax,</div><div class='add'>+  CR_Prepended_Concatenation_Mark,</div><div class='add'>+  CR_Regional_Indicator,</div><div class='add'>+  CR_Emoji,</div><div class='add'>+  CR_Emoji_Presentation,</div><div class='add'>+  CR_Emoji_Modifier,</div><div class='add'>+  CR_Emoji_Modifier_Base,</div><div class='add'>+  CR_Emoji_Component,</div><div class='add'>+  CR_Extended_Pictographic,</div><div class='add'>+  CR_Unknown,</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+  CR_Age_1_1,</div><div class='add'>+  CR_Age_2_0,</div><div class='add'>+  CR_Age_2_1,</div><div class='add'>+  CR_Age_3_0,</div><div class='add'>+  CR_Age_3_1,</div><div class='add'>+  CR_Age_3_2,</div><div class='add'>+  CR_Age_4_0,</div><div class='add'>+  CR_Age_4_1,</div><div class='add'>+  CR_Age_5_0,</div><div class='add'>+  CR_Age_5_1,</div><div class='add'>+  CR_Age_5_2,</div><div class='add'>+  CR_Age_6_0,</div><div class='add'>+  CR_Age_6_1,</div><div class='add'>+  CR_Age_6_2,</div><div class='add'>+  CR_Age_6_3,</div><div class='add'>+  CR_Age_7_0,</div><div class='add'>+  CR_Age_8_0,</div><div class='add'>+  CR_Age_9_0,</div><div class='add'>+  CR_Age_10_0,</div><div class='add'>+  CR_Age_11_0,</div><div class='add'>+  CR_Age_12_0,</div><div class='add'>+  CR_Age_12_1,</div><div class='add'>+  CR_Age_13_0,</div><div class='add'>+  CR_Age_14_0,</div><div class='add'>+  CR_Age_15_0,</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+  CR_Grapheme_Cluster_Break_Prepend,</div><div class='add'>+  CR_Grapheme_Cluster_Break_CR,</div><div class='add'>+  CR_Grapheme_Cluster_Break_LF,</div><div class='add'>+  CR_Grapheme_Cluster_Break_Control,</div><div class='add'>+  CR_Grapheme_Cluster_Break_Extend,</div><div class='add'>+  CR_Grapheme_Cluster_Break_Regional_Indicator,</div><div class='add'>+  CR_Grapheme_Cluster_Break_SpacingMark,</div><div class='add'>+  CR_Grapheme_Cluster_Break_L,</div><div class='add'>+  CR_Grapheme_Cluster_Break_V,</div><div class='add'>+  CR_Grapheme_Cluster_Break_T,</div><div class='add'>+  CR_Grapheme_Cluster_Break_LV,</div><div class='add'>+  CR_Grapheme_Cluster_Break_LVT,</div><div class='add'>+  CR_Grapheme_Cluster_Break_ZWJ,</div><div class='add'>+  CR_In_Basic_Latin,</div><div class='add'>+  CR_In_Latin_1_Supplement,</div><div class='add'>+  CR_In_Latin_Extended_A,</div><div class='add'>+  CR_In_Latin_Extended_B,</div><div class='add'>+  CR_In_IPA_Extensions,</div><div class='add'>+  CR_In_Spacing_Modifier_Letters,</div><div class='add'>+  CR_In_Combining_Diacritical_Marks,</div><div class='add'>+  CR_In_Greek_and_Coptic,</div><div class='add'>+  CR_In_Cyrillic,</div><div class='add'>+  CR_In_Cyrillic_Supplement,</div><div class='add'>+  CR_In_Armenian,</div><div class='add'>+  CR_In_Hebrew,</div><div class='add'>+  CR_In_Arabic,</div><div class='add'>+  CR_In_Syriac,</div><div class='add'>+  CR_In_Arabic_Supplement,</div><div class='add'>+  CR_In_Thaana,</div><div class='add'>+  CR_In_NKo,</div><div class='add'>+  CR_In_Samaritan,</div><div class='add'>+  CR_In_Mandaic,</div><div class='add'>+  CR_In_Syriac_Supplement,</div><div class='add'>+  CR_In_Arabic_Extended_B,</div><div class='add'>+  CR_In_Arabic_Extended_A,</div><div class='add'>+  CR_In_Devanagari,</div><div class='add'>+  CR_In_Bengali,</div><div class='add'>+  CR_In_Gurmukhi,</div><div class='add'>+  CR_In_Gujarati,</div><div class='add'>+  CR_In_Oriya,</div><div class='add'>+  CR_In_Tamil,</div><div class='add'>+  CR_In_Telugu,</div><div class='add'>+  CR_In_Kannada,</div><div class='add'>+  CR_In_Malayalam,</div><div class='add'>+  CR_In_Sinhala,</div><div class='add'>+  CR_In_Thai,</div><div class='add'>+  CR_In_Lao,</div><div class='add'>+  CR_In_Tibetan,</div><div class='add'>+  CR_In_Myanmar,</div><div class='add'>+  CR_In_Georgian,</div><div class='add'>+  CR_In_Hangul_Jamo,</div><div class='add'>+  CR_In_Ethiopic,</div><div class='add'>+  CR_In_Ethiopic_Supplement,</div><div class='add'>+  CR_In_Cherokee,</div><div class='add'>+  CR_In_Unified_Canadian_Aboriginal_Syllabics,</div><div class='add'>+  CR_In_Ogham,</div><div class='add'>+  CR_In_Runic,</div><div class='add'>+  CR_In_Tagalog,</div><div class='add'>+  CR_In_Hanunoo,</div><div class='add'>+  CR_In_Buhid,</div><div class='add'>+  CR_In_Tagbanwa,</div><div class='add'>+  CR_In_Khmer,</div><div class='add'>+  CR_In_Mongolian,</div><div class='add'>+  CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended,</div><div class='add'>+  CR_In_Limbu,</div><div class='add'>+  CR_In_Tai_Le,</div><div class='add'>+  CR_In_New_Tai_Lue,</div><div class='add'>+  CR_In_Khmer_Symbols,</div><div class='add'>+  CR_In_Buginese,</div><div class='add'>+  CR_In_Tai_Tham,</div><div class='add'>+  CR_In_Combining_Diacritical_Marks_Extended,</div><div class='add'>+  CR_In_Balinese,</div><div class='add'>+  CR_In_Sundanese,</div><div class='add'>+  CR_In_Batak,</div><div class='add'>+  CR_In_Lepcha,</div><div class='add'>+  CR_In_Ol_Chiki,</div><div class='add'>+  CR_In_Cyrillic_Extended_C,</div><div class='add'>+  CR_In_Georgian_Extended,</div><div class='add'>+  CR_In_Sundanese_Supplement,</div><div class='add'>+  CR_In_Vedic_Extensions,</div><div class='add'>+  CR_In_Phonetic_Extensions,</div><div class='add'>+  CR_In_Phonetic_Extensions_Supplement,</div><div class='add'>+  CR_In_Combining_Diacritical_Marks_Supplement,</div><div class='add'>+  CR_In_Latin_Extended_Additional,</div><div class='add'>+  CR_In_Greek_Extended,</div><div class='add'>+  CR_In_General_Punctuation,</div><div class='add'>+  CR_In_Superscripts_and_Subscripts,</div><div class='add'>+  CR_In_Currency_Symbols,</div><div class='add'>+  CR_In_Combining_Diacritical_Marks_for_Symbols,</div><div class='add'>+  CR_In_Letterlike_Symbols,</div><div class='add'>+  CR_In_Number_Forms,</div><div class='add'>+  CR_In_Arrows,</div><div class='add'>+  CR_In_Mathematical_Operators,</div><div class='add'>+  CR_In_Miscellaneous_Technical,</div><div class='add'>+  CR_In_Control_Pictures,</div><div class='add'>+  CR_In_Optical_Character_Recognition,</div><div class='add'>+  CR_In_Enclosed_Alphanumerics,</div><div class='add'>+  CR_In_Box_Drawing,</div><div class='add'>+  CR_In_Block_Elements,</div><div class='add'>+  CR_In_Geometric_Shapes,</div><div class='add'>+  CR_In_Miscellaneous_Symbols,</div><div class='add'>+  CR_In_Dingbats,</div><div class='add'>+  CR_In_Miscellaneous_Mathematical_Symbols_A,</div><div class='add'>+  CR_In_Supplemental_Arrows_A,</div><div class='add'>+  CR_In_Braille_Patterns,</div><div class='add'>+  CR_In_Supplemental_Arrows_B,</div><div class='add'>+  CR_In_Miscellaneous_Mathematical_Symbols_B,</div><div class='add'>+  CR_In_Supplemental_Mathematical_Operators,</div><div class='add'>+  CR_In_Miscellaneous_Symbols_and_Arrows,</div><div class='add'>+  CR_In_Glagolitic,</div><div class='add'>+  CR_In_Latin_Extended_C,</div><div class='add'>+  CR_In_Coptic,</div><div class='add'>+  CR_In_Georgian_Supplement,</div><div class='add'>+  CR_In_Tifinagh,</div><div class='add'>+  CR_In_Ethiopic_Extended,</div><div class='add'>+  CR_In_Cyrillic_Extended_A,</div><div class='add'>+  CR_In_Supplemental_Punctuation,</div><div class='add'>+  CR_In_CJK_Radicals_Supplement,</div><div class='add'>+  CR_In_Kangxi_Radicals,</div><div class='add'>+  CR_In_Ideographic_Description_Characters,</div><div class='add'>+  CR_In_CJK_Symbols_and_Punctuation,</div><div class='add'>+  CR_In_Hiragana,</div><div class='add'>+  CR_In_Katakana,</div><div class='add'>+  CR_In_Bopomofo,</div><div class='add'>+  CR_In_Hangul_Compatibility_Jamo,</div><div class='add'>+  CR_In_Kanbun,</div><div class='add'>+  CR_In_Bopomofo_Extended,</div><div class='add'>+  CR_In_CJK_Strokes,</div><div class='add'>+  CR_In_Katakana_Phonetic_Extensions,</div><div class='add'>+  CR_In_Enclosed_CJK_Letters_and_Months,</div><div class='add'>+  CR_In_CJK_Compatibility,</div><div class='add'>+  CR_In_CJK_Unified_Ideographs_Extension_A,</div><div class='add'>+  CR_In_Yijing_Hexagram_Symbols,</div><div class='add'>+  CR_In_CJK_Unified_Ideographs,</div><div class='add'>+  CR_In_Yi_Syllables,</div><div class='add'>+  CR_In_Yi_Radicals,</div><div class='add'>+  CR_In_Lisu,</div><div class='add'>+  CR_In_Vai,</div><div class='add'>+  CR_In_Cyrillic_Extended_B,</div><div class='add'>+  CR_In_Bamum,</div><div class='add'>+  CR_In_Modifier_Tone_Letters,</div><div class='add'>+  CR_In_Latin_Extended_D,</div><div class='add'>+  CR_In_Syloti_Nagri,</div><div class='add'>+  CR_In_Common_Indic_Number_Forms,</div><div class='add'>+  CR_In_Phags_pa,</div><div class='add'>+  CR_In_Saurashtra,</div><div class='add'>+  CR_In_Devanagari_Extended,</div><div class='add'>+  CR_In_Kayah_Li,</div><div class='add'>+  CR_In_Rejang,</div><div class='add'>+  CR_In_Hangul_Jamo_Extended_A,</div><div class='add'>+  CR_In_Javanese,</div><div class='add'>+  CR_In_Myanmar_Extended_B,</div><div class='add'>+  CR_In_Cham,</div><div class='add'>+  CR_In_Myanmar_Extended_A,</div><div class='add'>+  CR_In_Tai_Viet,</div><div class='add'>+  CR_In_Meetei_Mayek_Extensions,</div><div class='add'>+  CR_In_Ethiopic_Extended_A,</div><div class='add'>+  CR_In_Latin_Extended_E,</div><div class='add'>+  CR_In_Cherokee_Supplement,</div><div class='add'>+  CR_In_Meetei_Mayek,</div><div class='add'>+  CR_In_Hangul_Syllables,</div><div class='add'>+  CR_In_Hangul_Jamo_Extended_B,</div><div class='add'>+  CR_In_High_Surrogates,</div><div class='add'>+  CR_In_High_Private_Use_Surrogates,</div><div class='add'>+  CR_In_Low_Surrogates,</div><div class='add'>+  CR_In_Private_Use_Area,</div><div class='add'>+  CR_In_CJK_Compatibility_Ideographs,</div><div class='add'>+  CR_In_Alphabetic_Presentation_Forms,</div><div class='add'>+  CR_In_Arabic_Presentation_Forms_A,</div><div class='add'>+  CR_In_Variation_Selectors,</div><div class='add'>+  CR_In_Vertical_Forms,</div><div class='add'>+  CR_In_Combining_Half_Marks,</div><div class='add'>+  CR_In_CJK_Compatibility_Forms,</div><div class='add'>+  CR_In_Small_Form_Variants,</div><div class='add'>+  CR_In_Arabic_Presentation_Forms_B,</div><div class='add'>+  CR_In_Halfwidth_and_Fullwidth_Forms,</div><div class='add'>+  CR_In_Specials,</div><div class='add'>+  CR_In_Linear_B_Syllabary,</div><div class='add'>+  CR_In_Linear_B_Ideograms,</div><div class='add'>+  CR_In_Aegean_Numbers,</div><div class='add'>+  CR_In_Ancient_Greek_Numbers,</div><div class='add'>+  CR_In_Ancient_Symbols,</div><div class='add'>+  CR_In_Phaistos_Disc,</div><div class='add'>+  CR_In_Lycian,</div><div class='add'>+  CR_In_Carian,</div><div class='add'>+  CR_In_Coptic_Epact_Numbers,</div><div class='add'>+  CR_In_Old_Italic,</div><div class='add'>+  CR_In_Gothic,</div><div class='add'>+  CR_In_Old_Permic,</div><div class='add'>+  CR_In_Ugaritic,</div><div class='add'>+  CR_In_Old_Persian,</div><div class='add'>+  CR_In_Deseret,</div><div class='add'>+  CR_In_Shavian,</div><div class='add'>+  CR_In_Osmanya,</div><div class='add'>+  CR_In_Osage,</div><div class='add'>+  CR_In_Elbasan,</div><div class='add'>+  CR_In_Caucasian_Albanian,</div><div class='add'>+  CR_In_Vithkuqi,</div><div class='add'>+  CR_In_Linear_A,</div><div class='add'>+  CR_In_Latin_Extended_F,</div><div class='add'>+  CR_In_Cypriot_Syllabary,</div><div class='add'>+  CR_In_Imperial_Aramaic,</div><div class='add'>+  CR_In_Palmyrene,</div><div class='add'>+  CR_In_Nabataean,</div><div class='add'>+  CR_In_Hatran,</div><div class='add'>+  CR_In_Phoenician,</div><div class='add'>+  CR_In_Lydian,</div><div class='add'>+  CR_In_Meroitic_Hieroglyphs,</div><div class='add'>+  CR_In_Meroitic_Cursive,</div><div class='add'>+  CR_In_Kharoshthi,</div><div class='add'>+  CR_In_Old_South_Arabian,</div><div class='add'>+  CR_In_Old_North_Arabian,</div><div class='add'>+  CR_In_Manichaean,</div><div class='add'>+  CR_In_Avestan,</div><div class='add'>+  CR_In_Inscriptional_Parthian,</div><div class='add'>+  CR_In_Inscriptional_Pahlavi,</div><div class='add'>+  CR_In_Psalter_Pahlavi,</div><div class='add'>+  CR_In_Old_Turkic,</div><div class='add'>+  CR_In_Old_Hungarian,</div><div class='add'>+  CR_In_Hanifi_Rohingya,</div><div class='add'>+  CR_In_Rumi_Numeral_Symbols,</div><div class='add'>+  CR_In_Yezidi,</div><div class='add'>+  CR_In_Arabic_Extended_C,</div><div class='add'>+  CR_In_Old_Sogdian,</div><div class='add'>+  CR_In_Sogdian,</div><div class='add'>+  CR_In_Old_Uyghur,</div><div class='add'>+  CR_In_Chorasmian,</div><div class='add'>+  CR_In_Elymaic,</div><div class='add'>+  CR_In_Brahmi,</div><div class='add'>+  CR_In_Kaithi,</div><div class='add'>+  CR_In_Sora_Sompeng,</div><div class='add'>+  CR_In_Chakma,</div><div class='add'>+  CR_In_Mahajani,</div><div class='add'>+  CR_In_Sharada,</div><div class='add'>+  CR_In_Sinhala_Archaic_Numbers,</div><div class='add'>+  CR_In_Khojki,</div><div class='add'>+  CR_In_Multani,</div><div class='add'>+  CR_In_Khudawadi,</div><div class='add'>+  CR_In_Grantha,</div><div class='add'>+  CR_In_Newa,</div><div class='add'>+  CR_In_Tirhuta,</div><div class='add'>+  CR_In_Siddham,</div><div class='add'>+  CR_In_Modi,</div><div class='add'>+  CR_In_Mongolian_Supplement,</div><div class='add'>+  CR_In_Takri,</div><div class='add'>+  CR_In_Ahom,</div><div class='add'>+  CR_In_Dogra,</div><div class='add'>+  CR_In_Warang_Citi,</div><div class='add'>+  CR_In_Dives_Akuru,</div><div class='add'>+  CR_In_Nandinagari,</div><div class='add'>+  CR_In_Zanabazar_Square,</div><div class='add'>+  CR_In_Soyombo,</div><div class='add'>+  CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A,</div><div class='add'>+  CR_In_Pau_Cin_Hau,</div><div class='add'>+  CR_In_Devanagari_Extended_A,</div><div class='add'>+  CR_In_Bhaiksuki,</div><div class='add'>+  CR_In_Marchen,</div><div class='add'>+  CR_In_Masaram_Gondi,</div><div class='add'>+  CR_In_Gunjala_Gondi,</div><div class='add'>+  CR_In_Makasar,</div><div class='add'>+  CR_In_Kawi,</div><div class='add'>+  CR_In_Lisu_Supplement,</div><div class='add'>+  CR_In_Tamil_Supplement,</div><div class='add'>+  CR_In_Cuneiform,</div><div class='add'>+  CR_In_Cuneiform_Numbers_and_Punctuation,</div><div class='add'>+  CR_In_Early_Dynastic_Cuneiform,</div><div class='add'>+  CR_In_Cypro_Minoan,</div><div class='add'>+  CR_In_Egyptian_Hieroglyphs,</div><div class='add'>+  CR_In_Egyptian_Hieroglyph_Format_Controls,</div><div class='add'>+  CR_In_Anatolian_Hieroglyphs,</div><div class='add'>+  CR_In_Bamum_Supplement,</div><div class='add'>+  CR_In_Mro,</div><div class='add'>+  CR_In_Tangsa,</div><div class='add'>+  CR_In_Bassa_Vah,</div><div class='add'>+  CR_In_Pahawh_Hmong,</div><div class='add'>+  CR_In_Medefaidrin,</div><div class='add'>+  CR_In_Miao,</div><div class='add'>+  CR_In_Ideographic_Symbols_and_Punctuation,</div><div class='add'>+  CR_In_Tangut,</div><div class='add'>+  CR_In_Tangut_Components,</div><div class='add'>+  CR_In_Khitan_Small_Script,</div><div class='add'>+  CR_In_Tangut_Supplement,</div><div class='add'>+  CR_In_Kana_Extended_B,</div><div class='add'>+  CR_In_Kana_Supplement,</div><div class='add'>+  CR_In_Kana_Extended_A,</div><div class='add'>+  CR_In_Small_Kana_Extension,</div><div class='add'>+  CR_In_Nushu,</div><div class='add'>+  CR_In_Duployan,</div><div class='add'>+  CR_In_Shorthand_Format_Controls,</div><div class='add'>+  CR_In_Znamenny_Musical_Notation,</div><div class='add'>+  CR_In_Byzantine_Musical_Symbols,</div><div class='add'>+  CR_In_Musical_Symbols,</div><div class='add'>+  CR_In_Ancient_Greek_Musical_Notation,</div><div class='add'>+  CR_In_Kaktovik_Numerals,</div><div class='add'>+  CR_In_Mayan_Numerals,</div><div class='add'>+  CR_In_Tai_Xuan_Jing_Symbols,</div><div class='add'>+  CR_In_Counting_Rod_Numerals,</div><div class='add'>+  CR_In_Mathematical_Alphanumeric_Symbols,</div><div class='add'>+  CR_In_Sutton_SignWriting,</div><div class='add'>+  CR_In_Latin_Extended_G,</div><div class='add'>+  CR_In_Glagolitic_Supplement,</div><div class='add'>+  CR_In_Cyrillic_Extended_D,</div><div class='add'>+  CR_In_Nyiakeng_Puachue_Hmong,</div><div class='add'>+  CR_In_Toto,</div><div class='add'>+  CR_In_Wancho,</div><div class='add'>+  CR_In_Nag_Mundari,</div><div class='add'>+  CR_In_Ethiopic_Extended_B,</div><div class='add'>+  CR_In_Mende_Kikakui,</div><div class='add'>+  CR_In_Adlam,</div><div class='add'>+  CR_In_Indic_Siyaq_Numbers,</div><div class='add'>+  CR_In_Ottoman_Siyaq_Numbers,</div><div class='add'>+  CR_In_Arabic_Mathematical_Alphabetic_Symbols,</div><div class='add'>+  CR_In_Mahjong_Tiles,</div><div class='add'>+  CR_In_Domino_Tiles,</div><div class='add'>+  CR_In_Playing_Cards,</div><div class='add'>+  CR_In_Enclosed_Alphanumeric_Supplement,</div><div class='add'>+  CR_In_Enclosed_Ideographic_Supplement,</div><div class='add'>+  CR_In_Miscellaneous_Symbols_and_Pictographs,</div><div class='add'>+  CR_In_Emoticons,</div><div class='add'>+  CR_In_Ornamental_Dingbats,</div><div class='add'>+  CR_In_Transport_and_Map_Symbols,</div><div class='add'>+  CR_In_Alchemical_Symbols,</div><div class='add'>+  CR_In_Geometric_Shapes_Extended,</div><div class='add'>+  CR_In_Supplemental_Arrows_C,</div><div class='add'>+  CR_In_Supplemental_Symbols_and_Pictographs,</div><div class='add'>+  CR_In_Chess_Symbols,</div><div class='add'>+  CR_In_Symbols_and_Pictographs_Extended_A,</div><div class='add'>+  CR_In_Symbols_for_Legacy_Computing,</div><div class='add'>+  CR_In_CJK_Unified_Ideographs_Extension_B,</div><div class='add'>+  CR_In_CJK_Unified_Ideographs_Extension_C,</div><div class='add'>+  CR_In_CJK_Unified_Ideographs_Extension_D,</div><div class='add'>+  CR_In_CJK_Unified_Ideographs_Extension_E,</div><div class='add'>+  CR_In_CJK_Unified_Ideographs_Extension_F,</div><div class='add'>+  CR_In_CJK_Compatibility_Ideographs_Supplement,</div><div class='add'>+  CR_In_CJK_Unified_Ideographs_Extension_G,</div><div class='add'>+  CR_In_CJK_Unified_Ideographs_Extension_H,</div><div class='add'>+  CR_In_Tags,</div><div class='add'>+  CR_In_Variation_Selectors_Supplement,</div><div class='add'>+  CR_In_Supplementary_Private_Use_Area_A,</div><div class='add'>+  CR_In_Supplementary_Private_Use_Area_B,</div><div class='add'>+  CR_In_No_Block,</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+};</div><div class='add'>+struct uniname2ctype_struct {</div><div class='add'>+  short name;</div><div class='add'>+  unsigned short ctype;</div><div class='add'>+};</div><div class='add'>+#define uniname2ctype_offset(str) offsetof(struct uniname2ctype_pool_t, uniname2ctype_pool_##str)</div><div class='add'>+</div><div class='add'>+static const struct uniname2ctype_struct *uniname2ctype_p(register const char *str, register size_t len);</div><div class='add'>+</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+#define TOTAL_KEYWORDS 15</div><div class='add'>+#define MIN_WORD_LENGTH 4</div><div class='add'>+#define MAX_WORD_LENGTH 11</div><div class='add'>+#define MIN_HASH_VALUE 6</div><div class='add'>+#define MAX_HASH_VALUE 20</div><div class='add'>+/* maximum key range = 15, duplicates = 0 */</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+#define TOTAL_KEYWORDS 866</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+#define TOTAL_KEYWORDS 891</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+#define MIN_WORD_LENGTH 1</div><div class='add'>+#define MAX_WORD_LENGTH 45</div><div class='add'>+#define MIN_HASH_VALUE 11</div><div class='add'>+#define MAX_HASH_VALUE 6098</div><div class='add'>+/* maximum key range = 6088, duplicates = 0 */</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+</div><div class='add'>+#ifdef __GNUC__</div><div class='add'>+__inline</div><div class='add'>+#else</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+inline</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+static unsigned int</div><div class='add'>+uniname2ctype_hash (register const char *str, register size_t len)</div><div class='add'>+{</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+  static const unsigned char asso_values[] =</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+  static const unsigned short asso_values[] =</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    {</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='add'>+      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='add'>+      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='add'>+      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='add'>+      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='add'>+      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='add'>+      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='add'>+      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='add'>+      21, 21, 21, 21, 21, 21, 21, 21, 21, 21,</div><div class='add'>+      21, 21, 21, 21, 21, 21, 21,  3, 12,  5,</div><div class='add'>+       4, 21, 21, 10, 21,  1, 21, 21, 11, 21,</div><div class='add'>+       2,  1,  1, 21,  1,  7,  4,  6, 21,  1,</div><div class='add'>+       4, 21, 21, 21, 21, 21, 21, 21</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+      6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099,</div><div class='add'>+      6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099,</div><div class='add'>+      6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099,</div><div class='add'>+      6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099,</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+      6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099,</div><div class='add'>+      6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099,</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      6099, 6099, 6099, 6099, 6099, 6099,   12, 6099,    3,    1,</div><div class='add'>+         4,    8,   32,   26,   14,   17,   10,    7, 6099, 6099,</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099,</div><div class='add'>+      6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099,</div><div class='add'>+      6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099,</div><div class='add'>+      6099, 6099, 6099, 6099, 6099, 6099, 6099,    1, 1425,  113,</div><div class='add'>+       437,   37, 1086, 1071, 1051,    4, 1984,    9,  500,   88,</div><div class='add'>+         8,   18, 1371, 1287,   54,  203,  310,  619, 1958,  603,</div><div class='add'>+       275, 1624,   44,    1,   22, 6099, 6099, 6099, 6099, 6099</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    };</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+  return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]];</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+  register unsigned int hval = (unsigned int)len;</div><div class='add'>+</div><div class='add'>+  switch (hval)</div><div class='add'>+    {</div><div class='add'>+      default:</div><div class='add'>+        hval += asso_values[(unsigned char)str[15]];</div><div class='add'>+      /*FALLTHROUGH*/</div><div class='add'>+      case 15:</div><div class='add'>+      case 14:</div><div class='add'>+      case 13:</div><div class='add'>+      case 12:</div><div class='add'>+        hval += asso_values[(unsigned char)str[11]];</div><div class='add'>+      /*FALLTHROUGH*/</div><div class='add'>+      case 11:</div><div class='add'>+      case 10:</div><div class='add'>+      case 9:</div><div class='add'>+      case 8:</div><div class='add'>+      case 7:</div><div class='add'>+      case 6:</div><div class='add'>+        hval += asso_values[(unsigned char)str[5]];</div><div class='add'>+      /*FALLTHROUGH*/</div><div class='add'>+      case 5:</div><div class='add'>+        hval += asso_values[(unsigned char)str[4]];</div><div class='add'>+      /*FALLTHROUGH*/</div><div class='add'>+      case 4:</div><div class='add'>+      case 3:</div><div class='add'>+        hval += asso_values[(unsigned char)str[2]];</div><div class='add'>+      /*FALLTHROUGH*/</div><div class='add'>+      case 2:</div><div class='add'>+        hval += asso_values[(unsigned char)str[1]];</div><div class='add'>+      /*FALLTHROUGH*/</div><div class='add'>+      case 1:</div><div class='add'>+        hval += asso_values[(unsigned char)str[0]+2];</div><div class='add'>+        break;</div><div class='add'>+    }</div><div class='add'>+  return hval + asso_values[(unsigned char)str[len - 1]];</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct uniname2ctype_pool_t</div><div class='add'>+  {</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+    char uniname2ctype_pool_str6[sizeof("word")];</div><div class='add'>+    char uniname2ctype_pool_str7[sizeof("print")];</div><div class='add'>+    char uniname2ctype_pool_str8[sizeof("punct")];</div><div class='add'>+    char uniname2ctype_pool_str9[sizeof("alpha")];</div><div class='add'>+    char uniname2ctype_pool_str10[sizeof("alnum")];</div><div class='add'>+    char uniname2ctype_pool_str11[sizeof("xdigit")];</div><div class='add'>+    char uniname2ctype_pool_str12[sizeof("upper")];</div><div class='add'>+    char uniname2ctype_pool_str13[sizeof("ascii")];</div><div class='add'>+    char uniname2ctype_pool_str14[sizeof("cntrl")];</div><div class='add'>+    char uniname2ctype_pool_str15[sizeof("space")];</div><div class='add'>+    char uniname2ctype_pool_str16[sizeof("xposixpunct")];</div><div class='add'>+    char uniname2ctype_pool_str17[sizeof("lower")];</div><div class='add'>+    char uniname2ctype_pool_str18[sizeof("graph")];</div><div class='add'>+    char uniname2ctype_pool_str19[sizeof("digit")];</div><div class='add'>+    char uniname2ctype_pool_str20[sizeof("blank")];</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    char uniname2ctype_pool_str11[sizeof("yi")];</div><div class='add'>+    char uniname2ctype_pool_str17[sizeof("yiii")];</div><div class='add'>+    char uniname2ctype_pool_str22[sizeof("lana")];</div><div class='add'>+    char uniname2ctype_pool_str25[sizeof("lina")];</div><div class='add'>+    char uniname2ctype_pool_str33[sizeof("maka")];</div><div class='add'>+    char uniname2ctype_pool_str35[sizeof("mani")];</div><div class='add'>+    char uniname2ctype_pool_str36[sizeof("mn")];</div><div class='add'>+    char uniname2ctype_pool_str45[sizeof("miao")];</div><div class='add'>+    char uniname2ctype_pool_str46[sizeof("lo")];</div><div class='add'>+    char uniname2ctype_pool_str47[sizeof("ci")];</div><div class='add'>+    char uniname2ctype_pool_str48[sizeof("lao")];</div><div class='add'>+    char uniname2ctype_pool_str49[sizeof("laoo")];</div><div class='add'>+    char uniname2ctype_pool_str52[sizeof("inkannada")];</div><div class='add'>+    char uniname2ctype_pool_str55[sizeof("cn")];</div><div class='add'>+    char uniname2ctype_pool_str64[sizeof("pi")];</div><div class='add'>+    char uniname2ctype_pool_str66[sizeof("innko")];</div><div class='add'>+    char uniname2ctype_pool_str67[sizeof("z")];</div><div class='add'>+    char uniname2ctype_pool_str71[sizeof("gran")];</div><div class='add'>+    char uniname2ctype_pool_str75[sizeof("co")];</div><div class='add'>+    char uniname2ctype_pool_str83[sizeof("lineara")];</div><div class='add'>+    char uniname2ctype_pool_str86[sizeof("mark")];</div><div class='add'>+    char uniname2ctype_pool_str90[sizeof("yezi")];</div><div class='add'>+    char uniname2ctype_pool_str92[sizeof("po")];</div><div class='add'>+    char uniname2ctype_pool_str94[sizeof("me")];</div><div class='add'>+    char uniname2ctype_pool_str100[sizeof("cari")];</div><div class='add'>+    char uniname2ctype_pool_str101[sizeof("inkharoshthi")];</div><div class='add'>+    char uniname2ctype_pool_str102[sizeof("kana")];</div><div class='add'>+    char uniname2ctype_pool_str103[sizeof("loe")];</div><div class='add'>+    char uniname2ctype_pool_str107[sizeof("m")];</div><div class='add'>+    char uniname2ctype_pool_str108[sizeof("grek")];</div><div class='add'>+    char uniname2ctype_pool_str111[sizeof("mro")];</div><div class='add'>+    char uniname2ctype_pool_str112[sizeof("mroo")];</div><div class='add'>+    char uniname2ctype_pool_str115[sizeof("carian")];</div><div class='add'>+    char uniname2ctype_pool_str117[sizeof("geor")];</div><div class='add'>+    char uniname2ctype_pool_str118[sizeof("greek")];</div><div class='add'>+    char uniname2ctype_pool_str122[sizeof("gonm")];</div><div class='add'>+    char uniname2ctype_pool_str129[sizeof("mendekikakui")];</div><div class='add'>+    char uniname2ctype_pool_str130[sizeof("pe")];</div><div class='add'>+    char uniname2ctype_pool_str131[sizeof("mero")];</div><div class='add'>+    char uniname2ctype_pool_str134[sizeof("inosmanya")];</div><div class='add'>+    char uniname2ctype_pool_str139[sizeof("cakm")];</div><div class='add'>+    char uniname2ctype_pool_str145[sizeof("inmanichaean")];</div><div class='add'>+    char uniname2ctype_pool_str146[sizeof("inmro")];</div><div class='add'>+    char uniname2ctype_pool_str148[sizeof("inmiao")];</div><div class='add'>+    char uniname2ctype_pool_str149[sizeof("inchakma")];</div><div class='add'>+    char uniname2ctype_pool_str151[sizeof("c")];</div><div class='add'>+    char uniname2ctype_pool_str152[sizeof("mandaic")];</div><div class='add'>+    char uniname2ctype_pool_str153[sizeof("meeteimayek")];</div><div class='add'>+    char uniname2ctype_pool_str158[sizeof("zzzz")];</div><div class='add'>+    char uniname2ctype_pool_str161[sizeof("inarmenian")];</div><div class='add'>+    char uniname2ctype_pool_str177[sizeof("inmyanmar")];</div><div class='add'>+    char uniname2ctype_pool_str178[sizeof("inmakasar")];</div><div class='add'>+    char uniname2ctype_pool_str183[sizeof("common")];</div><div class='add'>+    char uniname2ctype_pool_str186[sizeof("lm")];</div><div class='add'>+    char uniname2ctype_pool_str190[sizeof("marc")];</div><div class='add'>+    char uniname2ctype_pool_str203[sizeof("inrunic")];</div><div class='add'>+    char uniname2ctype_pool_str204[sizeof("incarian")];</div><div class='add'>+    char uniname2ctype_pool_str210[sizeof("inideographicsymbolsandpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str212[sizeof("inkhmer")];</div><div class='add'>+    char uniname2ctype_pool_str213[sizeof("qaai")];</div><div class='add'>+    char uniname2ctype_pool_str218[sizeof("inahom")];</div><div class='add'>+    char uniname2ctype_pool_str226[sizeof("merc")];</div><div class='add'>+    char uniname2ctype_pool_str230[sizeof("inchorasmian")];</div><div class='add'>+    char uniname2ctype_pool_str231[sizeof("combiningmark")];</div><div class='add'>+    char uniname2ctype_pool_str236[sizeof("lc")];</div><div class='add'>+    char uniname2ctype_pool_str237[sizeof("perm")];</div><div class='add'>+    char uniname2ctype_pool_str246[sizeof("mc")];</div><div class='add'>+    char uniname2ctype_pool_str250[sizeof("connectorpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str253[sizeof("cans")];</div><div class='add'>+    char uniname2ctype_pool_str260[sizeof("incuneiformnumbersandpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str263[sizeof("armi")];</div><div class='add'>+    char uniname2ctype_pool_str265[sizeof("cc")];</div><div class='add'>+    char uniname2ctype_pool_str267[sizeof("armn")];</div><div class='add'>+    char uniname2ctype_pool_str268[sizeof("incherokee")];</div><div class='add'>+    char uniname2ctype_pool_str270[sizeof("prependedconcatenationmark")];</div><div class='add'>+    char uniname2ctype_pool_str274[sizeof("incuneiform")];</div><div class='add'>+    char uniname2ctype_pool_str275[sizeof("inavestan")];</div><div class='add'>+    char uniname2ctype_pool_str281[sizeof("inipaextensions")];</div><div class='add'>+    char uniname2ctype_pool_str282[sizeof("pc")];</div><div class='add'>+    char uniname2ctype_pool_str283[sizeof("armenian")];</div><div class='add'>+    char uniname2ctype_pool_str285[sizeof("insharada")];</div><div class='add'>+    char uniname2ctype_pool_str287[sizeof("vai")];</div><div class='add'>+    char uniname2ctype_pool_str288[sizeof("vaii")];</div><div class='add'>+    char uniname2ctype_pool_str289[sizeof("inmarchen")];</div><div class='add'>+    char uniname2ctype_pool_str293[sizeof("makasar")];</div><div class='add'>+    char uniname2ctype_pool_str297[sizeof("masaramgondi")];</div><div class='add'>+    char uniname2ctype_pool_str301[sizeof("inarrows")];</div><div class='add'>+    char uniname2ctype_pool_str311[sizeof("incyrillic")];</div><div class='add'>+    char uniname2ctype_pool_str313[sizeof("incham")];</div><div class='add'>+    char uniname2ctype_pool_str315[sizeof("qmark")];</div><div class='add'>+    char uniname2ctype_pool_str320[sizeof("ri")];</div><div class='add'>+    char uniname2ctype_pool_str322[sizeof("qaac")];</div><div class='add'>+    char uniname2ctype_pool_str328[sizeof("insamaritan")];</div><div class='add'>+    char uniname2ctype_pool_str331[sizeof("latn")];</div><div class='add'>+    char uniname2ctype_pool_str335[sizeof("inmasaramgondi")];</div><div class='add'>+    char uniname2ctype_pool_str338[sizeof("inthaana")];</div><div class='add'>+    char uniname2ctype_pool_str340[sizeof("latin")];</div><div class='add'>+    char uniname2ctype_pool_str342[sizeof("inthai")];</div><div class='add'>+    char uniname2ctype_pool_str345[sizeof("lineseparator")];</div><div class='add'>+    char uniname2ctype_pool_str346[sizeof("pcm")];</div><div class='add'>+    char uniname2ctype_pool_str348[sizeof("inkatakana")];</div><div class='add'>+    char uniname2ctype_pool_str352[sizeof("inkaithi")];</div><div class='add'>+    char uniname2ctype_pool_str362[sizeof("inscriptionalparthian")];</div><div class='add'>+    char uniname2ctype_pool_str366[sizeof("initialpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str373[sizeof("mtei")];</div><div class='add'>+    char uniname2ctype_pool_str381[sizeof("inzanabazarsquare")];</div><div class='add'>+    char uniname2ctype_pool_str386[sizeof("inkhmersymbols")];</div><div class='add'>+    char uniname2ctype_pool_str399[sizeof("insyriac")];</div><div class='add'>+    char uniname2ctype_pool_str401[sizeof("intakri")];</div><div class='add'>+    char uniname2ctype_pool_str404[sizeof("arabic")];</div><div class='add'>+    char uniname2ctype_pool_str418[sizeof("katakana")];</div><div class='add'>+    char uniname2ctype_pool_str426[sizeof("prti")];</div><div class='add'>+    char uniname2ctype_pool_str430[sizeof("zs")];</div><div class='add'>+    char uniname2ctype_pool_str442[sizeof("ascii")];</div><div class='add'>+    char uniname2ctype_pool_str445[sizeof("cs")];</div><div class='add'>+    char uniname2ctype_pool_str462[sizeof("ps")];</div><div class='add'>+    char uniname2ctype_pool_str468[sizeof("mand")];</div><div class='add'>+    char uniname2ctype_pool_str470[sizeof("privateuse")];</div><div class='add'>+    char uniname2ctype_pool_str475[sizeof("inruminumeralsymbols")];</div><div class='add'>+    char uniname2ctype_pool_str480[sizeof("inmyanmarextendeda")];</div><div class='add'>+    char uniname2ctype_pool_str481[sizeof("modi")];</div><div class='add'>+    char uniname2ctype_pool_str486[sizeof("incjkcompatibilityforms")];</div><div class='add'>+    char uniname2ctype_pool_str488[sizeof("inkanaextendeda")];</div><div class='add'>+    char uniname2ctype_pool_str491[sizeof("incjkcompatibilityideographs")];</div><div class='add'>+    char uniname2ctype_pool_str500[sizeof("brai")];</div><div class='add'>+    char uniname2ctype_pool_str504[sizeof("mend")];</div><div class='add'>+    char uniname2ctype_pool_str505[sizeof("ideo")];</div><div class='add'>+    char uniname2ctype_pool_str506[sizeof("letter")];</div><div class='add'>+    char uniname2ctype_pool_str509[sizeof("l")];</div><div class='add'>+    char uniname2ctype_pool_str511[sizeof("inmeeteimayek")];</div><div class='add'>+    char uniname2ctype_pool_str520[sizeof("inideographicdescriptioncharacters")];</div><div class='add'>+    char uniname2ctype_pool_str533[sizeof("yezidi")];</div><div class='add'>+    char uniname2ctype_pool_str538[sizeof("knda")];</div><div class='add'>+    char uniname2ctype_pool_str541[sizeof("innandinagari")];</div><div class='add'>+    char uniname2ctype_pool_str543[sizeof("kannada")];</div><div class='add'>+    char uniname2ctype_pool_str556[sizeof("inmodi")];</div><div class='add'>+    char uniname2ctype_pool_str558[sizeof("inlao")];</div><div class='add'>+    char uniname2ctype_pool_str559[sizeof("xidcontinue")];</div><div class='add'>+    char uniname2ctype_pool_str560[sizeof("inoldnortharabian")];</div><div class='add'>+    char uniname2ctype_pool_str565[sizeof("intransportandmapsymbols")];</div><div class='add'>+    char uniname2ctype_pool_str566[sizeof("letternumber")];</div><div class='add'>+    char uniname2ctype_pool_str568[sizeof("gothic")];</div><div class='add'>+    char uniname2ctype_pool_str572[sizeof("inlineara")];</div><div class='add'>+    char uniname2ctype_pool_str577[sizeof("inmendekikakui")];</div><div class='add'>+    char uniname2ctype_pool_str579[sizeof("mongolian")];</div><div class='add'>+    char uniname2ctype_pool_str582[sizeof("inmiscellaneousmathematicalsymbolsa")];</div><div class='add'>+    char uniname2ctype_pool_str583[sizeof("inspecials")];</div><div class='add'>+    char uniname2ctype_pool_str590[sizeof("grlink")];</div><div class='add'>+    char uniname2ctype_pool_str594[sizeof("brahmi")];</div><div class='add'>+    char uniname2ctype_pool_str596[sizeof("inemoticons")];</div><div class='add'>+    char uniname2ctype_pool_str597[sizeof("kali")];</div><div class='add'>+    char uniname2ctype_pool_str600[sizeof("inolditalic")];</div><div class='add'>+    char uniname2ctype_pool_str602[sizeof("xidc")];</div><div class='add'>+    char uniname2ctype_pool_str604[sizeof("inmedefaidrin")];</div><div class='add'>+    char uniname2ctype_pool_str605[sizeof("inchesssymbols")];</div><div class='add'>+    char uniname2ctype_pool_str608[sizeof("incjkcompatibilityideographssupplement")];</div><div class='add'>+    char uniname2ctype_pool_str609[sizeof("kits")];</div><div class='add'>+    char uniname2ctype_pool_str614[sizeof("inadlam")];</div><div class='add'>+    char uniname2ctype_pool_str624[sizeof("psalterpahlavi")];</div><div class='add'>+    char uniname2ctype_pool_str625[sizeof("incommonindicnumberforms")];</div><div class='add'>+    char uniname2ctype_pool_str630[sizeof("lt")];</div><div class='add'>+    char uniname2ctype_pool_str636[sizeof("innewa")];</div><div class='add'>+    char uniname2ctype_pool_str639[sizeof("sk")];</div><div class='add'>+    char uniname2ctype_pool_str642[sizeof("control")];</div><div class='add'>+    char uniname2ctype_pool_str643[sizeof("inkawi")];</div><div class='add'>+    char uniname2ctype_pool_str645[sizeof("inancientsymbols")];</div><div class='add'>+    char uniname2ctype_pool_str647[sizeof("palm")];</div><div class='add'>+    char uniname2ctype_pool_str650[sizeof("inlycian")];</div><div class='add'>+    char uniname2ctype_pool_str657[sizeof("so")];</div><div class='add'>+    char uniname2ctype_pool_str660[sizeof("patternwhitespace")];</div><div class='add'>+    char uniname2ctype_pool_str672[sizeof("inmandaic")];</div><div class='add'>+    char uniname2ctype_pool_str675[sizeof("idc")];</div><div class='add'>+    char uniname2ctype_pool_str678[sizeof("meroiticcursive")];</div><div class='add'>+    char uniname2ctype_pool_str679[sizeof("intoto")];</div><div class='add'>+    char uniname2ctype_pool_str683[sizeof("vs")];</div><div class='add'>+    char uniname2ctype_pool_str692[sizeof("xids")];</div><div class='add'>+    char uniname2ctype_pool_str695[sizeof("inwarangciti")];</div><div class='add'>+    char uniname2ctype_pool_str696[sizeof("sora")];</div><div class='add'>+    char uniname2ctype_pool_str697[sizeof("inopticalcharacterrecognition")];</div><div class='add'>+    char uniname2ctype_pool_str700[sizeof("kawi")];</div><div class='add'>+    char uniname2ctype_pool_str703[sizeof("inoldsogdian")];</div><div class='add'>+    char uniname2ctype_pool_str705[sizeof("inmalayalam")];</div><div class='add'>+    char uniname2ctype_pool_str707[sizeof("bamum")];</div><div class='add'>+    char uniname2ctype_pool_str708[sizeof("inkanasupplement")];</div><div class='add'>+    char uniname2ctype_pool_str713[sizeof("insundanese")];</div><div class='add'>+    char uniname2ctype_pool_str720[sizeof("grext")];</div><div class='add'>+    char uniname2ctype_pool_str737[sizeof("print")];</div><div class='add'>+    char uniname2ctype_pool_str738[sizeof("intaitham")];</div><div class='add'>+    char uniname2ctype_pool_str742[sizeof("lower")];</div><div class='add'>+    char uniname2ctype_pool_str745[sizeof("patternsyntax")];</div><div class='add'>+    char uniname2ctype_pool_str753[sizeof("joinc")];</div><div class='add'>+    char uniname2ctype_pool_str755[sizeof("inoldsoutharabian")];</div><div class='add'>+    char uniname2ctype_pool_str760[sizeof("incjkstrokes")];</div><div class='add'>+    char uniname2ctype_pool_str761[sizeof("batk")];</div><div class='add'>+    char uniname2ctype_pool_str766[sizeof("samr")];</div><div class='add'>+    char uniname2ctype_pool_str767[sizeof("inwancho")];</div><div class='add'>+    char uniname2ctype_pool_str771[sizeof("batak")];</div><div class='add'>+    char uniname2ctype_pool_str776[sizeof("patws")];</div><div class='add'>+    char uniname2ctype_pool_str783[sizeof("samaritan")];</div><div class='add'>+    char uniname2ctype_pool_str787[sizeof("idsbinaryoperator")];</div><div class='add'>+    char uniname2ctype_pool_str791[sizeof("pauc")];</div><div class='add'>+    char uniname2ctype_pool_str794[sizeof("insmallkanaextension")];</div><div class='add'>+    char uniname2ctype_pool_str797[sizeof("sm")];</div><div class='add'>+    char uniname2ctype_pool_str799[sizeof("indominotiles")];</div><div class='add'>+    char uniname2ctype_pool_str802[sizeof("alnum")];</div><div class='add'>+    char uniname2ctype_pool_str803[sizeof("inznamennymusicalnotation")];</div><div class='add'>+    char uniname2ctype_pool_str809[sizeof("insylotinagri")];</div><div class='add'>+    char uniname2ctype_pool_str814[sizeof("inugaritic")];</div><div class='add'>+    char uniname2ctype_pool_str818[sizeof("incontrolpictures")];</div><div class='add'>+    char uniname2ctype_pool_str821[sizeof("inlinearbideograms")];</div><div class='add'>+    char uniname2ctype_pool_str822[sizeof("inmusicalsymbols")];</div><div class='add'>+    char uniname2ctype_pool_str823[sizeof("s")];</div><div class='add'>+    char uniname2ctype_pool_str824[sizeof("ital")];</div><div class='add'>+    char uniname2ctype_pool_str825[sizeof("inmodifiertoneletters")];</div><div class='add'>+    char uniname2ctype_pool_str828[sizeof("inancientgreekmusicalnotation")];</div><div class='add'>+    char uniname2ctype_pool_str838[sizeof("lisu")];</div><div class='add'>+    char uniname2ctype_pool_str842[sizeof("lowercase")];</div><div class='add'>+    char uniname2ctype_pool_str845[sizeof("cwcm")];</div><div class='add'>+    char uniname2ctype_pool_str847[sizeof("sc")];</div><div class='add'>+    char uniname2ctype_pool_str848[sizeof("bass")];</div><div class='add'>+    char uniname2ctype_pool_str855[sizeof("ids")];</div><div class='add'>+    char uniname2ctype_pool_str857[sizeof("inlatinextendeda")];</div><div class='add'>+    char uniname2ctype_pool_str875[sizeof("intaile")];</div><div class='add'>+    char uniname2ctype_pool_str886[sizeof("inmiscellaneoussymbols")];</div><div class='add'>+    char uniname2ctype_pool_str895[sizeof("inmiscellaneoussymbolsandarrows")];</div><div class='add'>+    char uniname2ctype_pool_str898[sizeof("incaucasianalbanian")];</div><div class='add'>+    char uniname2ctype_pool_str900[sizeof("inmiscellaneoussymbolsandpictographs")];</div><div class='add'>+    char uniname2ctype_pool_str906[sizeof("inoldturkic")];</div><div class='add'>+    char uniname2ctype_pool_str907[sizeof("insaurashtra")];</div><div class='add'>+    char uniname2ctype_pool_str920[sizeof("incyrillicextendeda")];</div><div class='add'>+    char uniname2ctype_pool_str924[sizeof("idcontinue")];</div><div class='add'>+    char uniname2ctype_pool_str925[sizeof("intaixuanjingsymbols")];</div><div class='add'>+    char uniname2ctype_pool_str926[sizeof("intamil")];</div><div class='add'>+    char uniname2ctype_pool_str928[sizeof("inmultani")];</div><div class='add'>+    char uniname2ctype_pool_str929[sizeof("inlatinextendede")];</div><div class='add'>+    char uniname2ctype_pool_str930[sizeof("pd")];</div><div class='add'>+    char uniname2ctype_pool_str946[sizeof("bali")];</div><div class='add'>+    char uniname2ctype_pool_str961[sizeof("blank")];</div><div class='add'>+    char uniname2ctype_pool_str963[sizeof("idst")];</div><div class='add'>+    char uniname2ctype_pool_str974[sizeof("inlydian")];</div><div class='add'>+    char uniname2ctype_pool_str986[sizeof("innewtailue")];</div><div class='add'>+    char uniname2ctype_pool_str994[sizeof("bengali")];</div><div class='add'>+    char uniname2ctype_pool_str995[sizeof("runr")];</div><div class='add'>+    char uniname2ctype_pool_str1010[sizeof("ll")];</div><div class='add'>+    char uniname2ctype_pool_str1013[sizeof("indeseret")];</div><div class='add'>+    char uniname2ctype_pool_str1015[sizeof("inancientgreeknumbers")];</div><div class='add'>+    char uniname2ctype_pool_str1021[sizeof("idstart")];</div><div class='add'>+    char uniname2ctype_pool_str1024[sizeof("zl")];</div><div class='add'>+    char uniname2ctype_pool_str1025[sizeof("inmeeteimayekextensions")];</div><div class='add'>+    char uniname2ctype_pool_str1028[sizeof("balinese")];</div><div class='add'>+    char uniname2ctype_pool_str1032[sizeof("incyrillicextendedc")];</div><div class='add'>+    char uniname2ctype_pool_str1035[sizeof("inspacingmodifierletters")];</div><div class='add'>+    char uniname2ctype_pool_str1036[sizeof("inearlydynasticcuneiform")];</div><div class='add'>+    char uniname2ctype_pool_str1049[sizeof("plrd")];</div><div class='add'>+    char uniname2ctype_pool_str1067[sizeof("canadianaboriginal")];</div><div class='add'>+    char uniname2ctype_pool_str1072[sizeof("sind")];</div><div class='add'>+    char uniname2ctype_pool_str1081[sizeof("inlatinextendedc")];</div><div class='add'>+    char uniname2ctype_pool_str1085[sizeof("uideo")];</div><div class='add'>+    char uniname2ctype_pool_str1087[sizeof("incountingrodnumerals")];</div><div class='add'>+    char uniname2ctype_pool_str1089[sizeof("zinh")];</div><div class='add'>+    char uniname2ctype_pool_str1095[sizeof("dia")];</div><div class='add'>+    char uniname2ctype_pool_str1096[sizeof("di")];</div><div class='add'>+    char uniname2ctype_pool_str1097[sizeof("inkhudawadi")];</div><div class='add'>+    char uniname2ctype_pool_str1102[sizeof("inhanifirohingya")];</div><div class='add'>+    char uniname2ctype_pool_str1104[sizeof("diak")];</div><div class='add'>+    char uniname2ctype_pool_str1105[sizeof("gong")];</div><div class='add'>+    char uniname2ctype_pool_str1107[sizeof("ingrantha")];</div><div class='add'>+    char uniname2ctype_pool_str1109[sizeof("bidic")];</div><div class='add'>+    char uniname2ctype_pool_str1114[sizeof("xidstart")];</div><div class='add'>+    char uniname2ctype_pool_str1115[sizeof("xdigit")];</div><div class='add'>+    char uniname2ctype_pool_str1119[sizeof("mong")];</div><div class='add'>+    char uniname2ctype_pool_str1120[sizeof("cased")];</div><div class='add'>+    char uniname2ctype_pool_str1134[sizeof("inhiragana")];</div><div class='add'>+    char uniname2ctype_pool_str1140[sizeof("sinhala")];</div><div class='add'>+    char uniname2ctype_pool_str1142[sizeof("adlm")];</div><div class='add'>+    char uniname2ctype_pool_str1145[sizeof("xsux")];</div><div class='add'>+    char uniname2ctype_pool_str1146[sizeof("glagolitic")];</div><div class='add'>+    char uniname2ctype_pool_str1147[sizeof("sterm")];</div><div class='add'>+    char uniname2ctype_pool_str1149[sizeof("bamu")];</div><div class='add'>+    char uniname2ctype_pool_str1150[sizeof("georgian")];</div><div class='add'>+    char uniname2ctype_pool_str1151[sizeof("inosage")];</div><div class='add'>+    char uniname2ctype_pool_str1152[sizeof("gunjalagondi")];</div><div class='add'>+    char uniname2ctype_pool_str1153[sizeof("phoenician")];</div><div class='add'>+    char uniname2ctype_pool_str1156[sizeof("inolduyghur")];</div><div class='add'>+    char uniname2ctype_pool_str1157[sizeof("multani")];</div><div class='add'>+    char uniname2ctype_pool_str1158[sizeof("kaithi")];</div><div class='add'>+    char uniname2ctype_pool_str1164[sizeof("joincontrol")];</div><div class='add'>+    char uniname2ctype_pool_str1168[sizeof("runic")];</div><div class='add'>+    char uniname2ctype_pool_str1170[sizeof("ingeneralpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str1171[sizeof("inmahajani")];</div><div class='add'>+    char uniname2ctype_pool_str1174[sizeof("incyrillicsupplement")];</div><div class='add'>+    char uniname2ctype_pool_str1175[sizeof("lowercaseletter")];</div><div class='add'>+    char uniname2ctype_pool_str1176[sizeof("marchen")];</div><div class='add'>+    char uniname2ctype_pool_str1177[sizeof("graphemelink")];</div><div class='add'>+    char uniname2ctype_pool_str1178[sizeof("ingeorgian")];</div><div class='add'>+    char uniname2ctype_pool_str1180[sizeof("khojki")];</div><div class='add'>+    char uniname2ctype_pool_str1181[sizeof("cham")];</div><div class='add'>+    char uniname2ctype_pool_str1182[sizeof("inogham")];</div><div class='add'>+    char uniname2ctype_pool_str1183[sizeof("cher")];</div><div class='add'>+    char uniname2ctype_pool_str1185[sizeof("chakma")];</div><div class='add'>+    char uniname2ctype_pool_str1186[sizeof("inkaktoviknumerals")];</div><div class='add'>+    char uniname2ctype_pool_str1190[sizeof("emoji")];</div><div class='add'>+    char uniname2ctype_pool_str1191[sizeof("insiddham")];</div><div class='add'>+    char uniname2ctype_pool_str1197[sizeof("cherokee")];</div><div class='add'>+    char uniname2ctype_pool_str1198[sizeof("khar")];</div><div class='add'>+    char uniname2ctype_pool_str1203[sizeof("inmongolian")];</div><div class='add'>+    char uniname2ctype_pool_str1204[sizeof("innagmundari")];</div><div class='add'>+    char uniname2ctype_pool_str1207[sizeof("incherokeesupplement")];</div><div class='add'>+    char uniname2ctype_pool_str1209[sizeof("manichaean")];</div><div class='add'>+    char uniname2ctype_pool_str1212[sizeof("inolchiki")];</div><div class='add'>+    char uniname2ctype_pool_str1223[sizeof("inkhitansmallscript")];</div><div class='add'>+    char uniname2ctype_pool_str1227[sizeof("quotationmark")];</div><div class='add'>+    char uniname2ctype_pool_str1229[sizeof("vithkuqi")];</div><div class='add'>+    char uniname2ctype_pool_str1230[sizeof("variationselector")];</div><div class='add'>+    char uniname2ctype_pool_str1231[sizeof("adlam")];</div><div class='add'>+    char uniname2ctype_pool_str1232[sizeof("inethiopic")];</div><div class='add'>+    char uniname2ctype_pool_str1233[sizeof("graphemebase")];</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    char uniname2ctype_pool_str1234[sizeof("age=11.0")];</div><div class='add'>+    char uniname2ctype_pool_str1235[sizeof("age=12.1")];</div><div class='add'>+    char uniname2ctype_pool_str1236[sizeof("age=10.0")];</div><div class='add'>+    char uniname2ctype_pool_str1237[sizeof("age=12.0")];</div><div class='add'>+    char uniname2ctype_pool_str1241[sizeof("age=13.0")];</div><div class='add'>+    char uniname2ctype_pool_str1242[sizeof("age=1.1")];</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    char uniname2ctype_pool_str1243[sizeof("casedletter")];</div><div class='add'>+    char uniname2ctype_pool_str1244[sizeof("ingurmukhi")];</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    char uniname2ctype_pool_str1245[sizeof("age=2.1")];</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    char uniname2ctype_pool_str1246[sizeof("incjkunifiedideographsextensiona")];</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    char uniname2ctype_pool_str1247[sizeof("age=2.0")];</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    char uniname2ctype_pool_str1248[sizeof("lu")];</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    char uniname2ctype_pool_str1249[sizeof("age=3.1")];</div><div class='add'>+    char uniname2ctype_pool_str1250[sizeof("age=9.0")];</div><div class='add'>+    char uniname2ctype_pool_str1251[sizeof("age=3.0")];</div><div class='add'>+    char uniname2ctype_pool_str1252[sizeof("age=3.2")];</div><div class='add'>+    char uniname2ctype_pool_str1253[sizeof("age=8.0")];</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    char uniname2ctype_pool_str1254[sizeof("intamilsupplement")];</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    char uniname2ctype_pool_str1255[sizeof("age=6.1")];</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    char uniname2ctype_pool_str1256[sizeof("unknown")];</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    char uniname2ctype_pool_str1257[sizeof("age=6.0")];</div><div class='add'>+    char uniname2ctype_pool_str1258[sizeof("age=6.2")];</div><div class='add'>+    char uniname2ctype_pool_str1259[sizeof("age=15.0")];</div><div class='add'>+    char uniname2ctype_pool_str1260[sizeof("age=7.0")];</div><div class='add'>+    char uniname2ctype_pool_str1262[sizeof("age=6.3")];</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    char uniname2ctype_pool_str1263[sizeof("cwt")];</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    char uniname2ctype_pool_str1265[sizeof("age=14.0")];</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    char uniname2ctype_pool_str1266[sizeof("unassigned")];</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    char uniname2ctype_pool_str1267[sizeof("age=5.1")];</div><div class='add'>+    char uniname2ctype_pool_str1269[sizeof("age=5.0")];</div><div class='add'>+    char uniname2ctype_pool_str1270[sizeof("age=5.2")];</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    char uniname2ctype_pool_str1271[sizeof("diacritic")];</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    char uniname2ctype_pool_str1273[sizeof("age=4.1")];</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    char uniname2ctype_pool_str1274[sizeof("ahom")];</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    char uniname2ctype_pool_str1275[sizeof("age=4.0")];</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    char uniname2ctype_pool_str1282[sizeof("incjkunifiedideographsextensione")];</div><div class='add'>+    char uniname2ctype_pool_str1285[sizeof("khmr")];</div><div class='add'>+    char uniname2ctype_pool_str1289[sizeof("insinhala")];</div><div class='add'>+    char uniname2ctype_pool_str1292[sizeof("inmiscellaneoustechnical")];</div><div class='add'>+    char uniname2ctype_pool_str1297[sizeof("saur")];</div><div class='add'>+    char uniname2ctype_pool_str1300[sizeof("guru")];</div><div class='add'>+    char uniname2ctype_pool_str1301[sizeof("sundanese")];</div><div class='add'>+    char uniname2ctype_pool_str1306[sizeof("punct")];</div><div class='add'>+    char uniname2ctype_pool_str1314[sizeof("paucinhau")];</div><div class='add'>+    char uniname2ctype_pool_str1317[sizeof("gurmukhi")];</div><div class='add'>+    char uniname2ctype_pool_str1328[sizeof("chorasmian")];</div><div class='add'>+    char uniname2ctype_pool_str1331[sizeof("logicalorderexception")];</div><div class='add'>+    char uniname2ctype_pool_str1340[sizeof("khmer")];</div><div class='add'>+    char uniname2ctype_pool_str1343[sizeof("limbu")];</div><div class='add'>+    char uniname2ctype_pool_str1349[sizeof("chrs")];</div><div class='add'>+    char uniname2ctype_pool_str1352[sizeof("oriya")];</div><div class='add'>+    char uniname2ctype_pool_str1354[sizeof("inscriptionalpahlavi")];</div><div class='add'>+    char uniname2ctype_pool_str1356[sizeof("incyrillicextendedd")];</div><div class='add'>+    char uniname2ctype_pool_str1358[sizeof("incjkunifiedideographsextensionc")];</div><div class='add'>+    char uniname2ctype_pool_str1360[sizeof("cntrl")];</div><div class='add'>+    char uniname2ctype_pool_str1365[sizeof("inlatinextendedadditional")];</div><div class='add'>+    char uniname2ctype_pool_str1367[sizeof("insorasompeng")];</div><div class='add'>+    char uniname2ctype_pool_str1369[sizeof("radical")];</div><div class='add'>+    char uniname2ctype_pool_str1373[sizeof("emojimodifier")];</div><div class='add'>+    char uniname2ctype_pool_str1375[sizeof("kharoshthi")];</div><div class='add'>+    char uniname2ctype_pool_str1380[sizeof("n")];</div><div class='add'>+    char uniname2ctype_pool_str1384[sizeof("math")];</div><div class='add'>+    char uniname2ctype_pool_str1387[sizeof("goth")];</div><div class='add'>+    char uniname2ctype_pool_str1392[sizeof("phnx")];</div><div class='add'>+    char uniname2ctype_pool_str1400[sizeof("anatolianhieroglyphs")];</div><div class='add'>+    char uniname2ctype_pool_str1401[sizeof("inenclosedalphanumerics")];</div><div class='add'>+    char uniname2ctype_pool_str1407[sizeof("nandinagari")];</div><div class='add'>+    char uniname2ctype_pool_str1409[sizeof("no")];</div><div class='add'>+    char uniname2ctype_pool_str1415[sizeof("intangsa")];</div><div class='add'>+    char uniname2ctype_pool_str1419[sizeof("nko")];</div><div class='add'>+    char uniname2ctype_pool_str1420[sizeof("nkoo")];</div><div class='add'>+    char uniname2ctype_pool_str1422[sizeof("ingreekandcoptic")];</div><div class='add'>+    char uniname2ctype_pool_str1426[sizeof("p")];</div><div class='add'>+    char uniname2ctype_pool_str1428[sizeof("grantha")];</div><div class='add'>+    char uniname2ctype_pool_str1429[sizeof("decimalnumber")];</div><div class='add'>+    char uniname2ctype_pool_str1438[sizeof("incjkunifiedideographs")];</div><div class='add'>+    char uniname2ctype_pool_str1442[sizeof("intirhuta")];</div><div class='add'>+    char uniname2ctype_pool_str1448[sizeof("inhatran")];</div><div class='add'>+    char uniname2ctype_pool_str1449[sizeof("linb")];</div><div class='add'>+    char uniname2ctype_pool_str1451[sizeof("mult")];</div><div class='add'>+    char uniname2ctype_pool_str1454[sizeof("saurashtra")];</div><div class='add'>+    char uniname2ctype_pool_str1457[sizeof("kthi")];</div><div class='add'>+    char uniname2ctype_pool_str1460[sizeof("zanb")];</div><div class='add'>+    char uniname2ctype_pool_str1462[sizeof("inbhaiksuki")];</div><div class='add'>+    char uniname2ctype_pool_str1470[sizeof("innabataean")];</div><div class='add'>+    char uniname2ctype_pool_str1471[sizeof("inphoenician")];</div><div class='add'>+    char uniname2ctype_pool_str1474[sizeof("xpeo")];</div><div class='add'>+    char uniname2ctype_pool_str1475[sizeof("inkanbun")];</div><div class='add'>+    char uniname2ctype_pool_str1476[sizeof("inmeroitichieroglyphs")];</div><div class='add'>+    char uniname2ctype_pool_str1480[sizeof("ahex")];</div><div class='add'>+    char uniname2ctype_pool_str1489[sizeof("enclosingmark")];</div><div class='add'>+    char uniname2ctype_pool_str1495[sizeof("sd")];</div><div class='add'>+    char uniname2ctype_pool_str1497[sizeof("inelbasan")];</div><div class='add'>+    char uniname2ctype_pool_str1499[sizeof("inenclosedideographicsupplement")];</div><div class='add'>+    char uniname2ctype_pool_str1501[sizeof("sidd")];</div><div class='add'>+    char uniname2ctype_pool_str1507[sizeof("linearb")];</div><div class='add'>+    char uniname2ctype_pool_str1508[sizeof("cpmn")];</div><div class='add'>+    char uniname2ctype_pool_str1517[sizeof("inenclosedalphanumericsupplement")];</div><div class='add'>+    char uniname2ctype_pool_str1520[sizeof("bidicontrol")];</div><div class='add'>+    char uniname2ctype_pool_str1524[sizeof("inphaistosdisc")];</div><div class='add'>+    char uniname2ctype_pool_str1529[sizeof("limb")];</div><div class='add'>+    char uniname2ctype_pool_str1531[sizeof("inkangxiradicals")];</div><div class='add'>+    char uniname2ctype_pool_str1533[sizeof("lepc")];</div><div class='add'>+    char uniname2ctype_pool_str1536[sizeof("braille")];</div><div class='add'>+    char uniname2ctype_pool_str1537[sizeof("regionalindicator")];</div><div class='add'>+    char uniname2ctype_pool_str1542[sizeof("inlowsurrogates")];</div><div class='add'>+    char uniname2ctype_pool_str1547[sizeof("brah")];</div><div class='add'>+    char uniname2ctype_pool_str1549[sizeof("inoldhungarian")];</div><div class='add'>+    char uniname2ctype_pool_str1557[sizeof("beng")];</div><div class='add'>+    char uniname2ctype_pool_str1563[sizeof("emojimodifierbase")];</div><div class='add'>+    char uniname2ctype_pool_str1565[sizeof("inarabic")];</div><div class='add'>+    char uniname2ctype_pool_str1570[sizeof("osage")];</div><div class='add'>+    char uniname2ctype_pool_str1572[sizeof("inherited")];</div><div class='add'>+    char uniname2ctype_pool_str1577[sizeof("incyprominoan")];</div><div class='add'>+    char uniname2ctype_pool_str1580[sizeof("glag")];</div><div class='add'>+    char uniname2ctype_pool_str1582[sizeof("medf")];</div><div class='add'>+    char uniname2ctype_pool_str1583[sizeof("osma")];</div><div class='add'>+    char uniname2ctype_pool_str1587[sizeof("indogra")];</div><div class='add'>+    char uniname2ctype_pool_str1597[sizeof("arab")];</div><div class='add'>+    char uniname2ctype_pool_str1598[sizeof("medefaidrin")];</div><div class='add'>+    char uniname2ctype_pool_str1607[sizeof("inshorthandformatcontrols")];</div><div class='add'>+    char uniname2ctype_pool_str1613[sizeof("phli")];</div><div class='add'>+    char uniname2ctype_pool_str1617[sizeof("inimperialaramaic")];</div><div class='add'>+    char uniname2ctype_pool_str1618[sizeof("emod")];</div><div class='add'>+    char uniname2ctype_pool_str1622[sizeof("ingreekextended")];</div><div class='add'>+    char uniname2ctype_pool_str1623[sizeof("inanatolianhieroglyphs")];</div><div class='add'>+    char uniname2ctype_pool_str1629[sizeof("punctuation")];</div><div class='add'>+    char uniname2ctype_pool_str1635[sizeof("graphemeextend")];</div><div class='add'>+    char uniname2ctype_pool_str1643[sizeof("cwl")];</div><div class='add'>+    char uniname2ctype_pool_str1644[sizeof("vith")];</div><div class='add'>+    char uniname2ctype_pool_str1654[sizeof("ingeometricshapes")];</div><div class='add'>+    char uniname2ctype_pool_str1655[sizeof("emojicomponent")];</div><div class='add'>+    char uniname2ctype_pool_str1657[sizeof("dsrt")];</div><div class='add'>+    char uniname2ctype_pool_str1662[sizeof("coptic")];</div><div class='add'>+    char uniname2ctype_pool_str1664[sizeof("inkayahli")];</div><div class='add'>+    char uniname2ctype_pool_str1671[sizeof("inoriya")];</div><div class='add'>+    char uniname2ctype_pool_str1675[sizeof("inarabicpresentationformsa")];</div><div class='add'>+    char uniname2ctype_pool_str1677[sizeof("inbasiclatin")];</div><div class='add'>+    char uniname2ctype_pool_str1682[sizeof("incjkunifiedideographsextensiond")];</div><div class='add'>+    char uniname2ctype_pool_str1684[sizeof("wara")];</div><div class='add'>+    char uniname2ctype_pool_str1686[sizeof("sinh")];</div><div class='add'>+    char uniname2ctype_pool_str1687[sizeof("sund")];</div><div class='add'>+    char uniname2ctype_pool_str1691[sizeof("shavian")];</div><div class='add'>+    char uniname2ctype_pool_str1699[sizeof("insundanesesupplement")];</div><div class='add'>+    char uniname2ctype_pool_str1701[sizeof("inyezidi")];</div><div class='add'>+    char uniname2ctype_pool_str1704[sizeof("bhks")];</div><div class='add'>+    char uniname2ctype_pool_str1714[sizeof("bhaiksuki")];</div><div class='add'>+    char uniname2ctype_pool_str1722[sizeof("inhanunoo")];</div><div class='add'>+    char uniname2ctype_pool_str1724[sizeof("intangut")];</div><div class='add'>+    char uniname2ctype_pool_str1728[sizeof("sogdian")];</div><div class='add'>+    char uniname2ctype_pool_str1729[sizeof("inlatinextendedd")];</div><div class='add'>+    char uniname2ctype_pool_str1730[sizeof("sogo")];</div><div class='add'>+    char uniname2ctype_pool_str1731[sizeof("insinhalaarchaicnumbers")];</div><div class='add'>+    char uniname2ctype_pool_str1732[sizeof("ideographic")];</div><div class='add'>+    char uniname2ctype_pool_str1733[sizeof("ugar")];</div><div class='add'>+    char uniname2ctype_pool_str1734[sizeof("deseret")];</div><div class='add'>+    char uniname2ctype_pool_str1735[sizeof("odi")];</div><div class='add'>+    char uniname2ctype_pool_str1740[sizeof("copt")];</div><div class='add'>+    char uniname2ctype_pool_str1742[sizeof("imperialaramaic")];</div><div class='add'>+    char uniname2ctype_pool_str1745[sizeof("insogdian")];</div><div class='add'>+    char uniname2ctype_pool_str1746[sizeof("indingbats")];</div><div class='add'>+    char uniname2ctype_pool_str1750[sizeof("format")];</div><div class='add'>+    char uniname2ctype_pool_str1752[sizeof("ininscriptionalpahlavi")];</div><div class='add'>+    char uniname2ctype_pool_str1753[sizeof("lyci")];</div><div class='add'>+    char uniname2ctype_pool_str1757[sizeof("ininscriptionalparthian")];</div><div class='add'>+    char uniname2ctype_pool_str1766[sizeof("grbase")];</div><div class='add'>+    char uniname2ctype_pool_str1768[sizeof("lycian")];</div><div class='add'>+    char uniname2ctype_pool_str1769[sizeof("inbatak")];</div><div class='add'>+    char uniname2ctype_pool_str1776[sizeof("cprt")];</div><div class='add'>+    char uniname2ctype_pool_str1781[sizeof("inunifiedcanadianaboriginalsyllabicsextendeda")];</div><div class='add'>+    char uniname2ctype_pool_str1788[sizeof("mymr")];</div><div class='add'>+    char uniname2ctype_pool_str1793[sizeof("myanmar")];</div><div class='add'>+    char uniname2ctype_pool_str1806[sizeof("intibetan")];</div><div class='add'>+    char uniname2ctype_pool_str1810[sizeof("intags")];</div><div class='add'>+    char uniname2ctype_pool_str1811[sizeof("asciihexdigit")];</div><div class='add'>+    char uniname2ctype_pool_str1813[sizeof("sentenceterminal")];</div><div class='add'>+    char uniname2ctype_pool_str1821[sizeof("nand")];</div><div class='add'>+    char uniname2ctype_pool_str1828[sizeof("inblockelements")];</div><div class='add'>+    char uniname2ctype_pool_str1838[sizeof("inornamentaldingbats")];</div><div class='add'>+    char uniname2ctype_pool_str1841[sizeof("inethiopicextendeda")];</div><div class='add'>+    char uniname2ctype_pool_str1842[sizeof("innumberforms")];</div><div class='add'>+    char uniname2ctype_pool_str1843[sizeof("cwcf")];</div><div class='add'>+    char uniname2ctype_pool_str1845[sizeof("oidc")];</div><div class='add'>+    char uniname2ctype_pool_str1848[sizeof("bopo")];</div><div class='add'>+    char uniname2ctype_pool_str1851[sizeof("cuneiform")];</div><div class='add'>+    char uniname2ctype_pool_str1866[sizeof("caseignorable")];</div><div class='add'>+    char uniname2ctype_pool_str1871[sizeof("inoldpersian")];</div><div class='add'>+    char uniname2ctype_pool_str1881[sizeof("cwu")];</div><div class='add'>+    char uniname2ctype_pool_str1888[sizeof("inelymaic")];</div><div class='add'>+    char uniname2ctype_pool_str1889[sizeof("insoyombo")];</div><div class='add'>+    char uniname2ctype_pool_str1896[sizeof("ingeometricshapesextended")];</div><div class='add'>+    char uniname2ctype_pool_str1902[sizeof("incjkcompatibility")];</div><div class='add'>+    char uniname2ctype_pool_str1904[sizeof("inmyanmarextendedb")];</div><div class='add'>+    char uniname2ctype_pool_str1905[sizeof("innushu")];</div><div class='add'>+    char uniname2ctype_pool_str1912[sizeof("inkanaextendedb")];</div><div class='add'>+    char uniname2ctype_pool_str1913[sizeof("olck")];</div><div class='add'>+    char uniname2ctype_pool_str1916[sizeof("inbyzantinemusicalsymbols")];</div><div class='add'>+    char uniname2ctype_pool_str1924[sizeof("olchiki")];</div><div class='add'>+    char uniname2ctype_pool_str1929[sizeof("inkatakanaphoneticextensions")];</div><div class='add'>+    char uniname2ctype_pool_str1932[sizeof("incoptic")];</div><div class='add'>+    char uniname2ctype_pool_str1935[sizeof("oids")];</div><div class='add'>+    char uniname2ctype_pool_str1936[sizeof("inarabicextendeda")];</div><div class='add'>+    char uniname2ctype_pool_str1941[sizeof("modifierletter")];</div><div class='add'>+    char uniname2ctype_pool_str1950[sizeof("incjksymbolsandpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str1956[sizeof("olower")];</div><div class='add'>+    char uniname2ctype_pool_str1958[sizeof("bopomofo")];</div><div class='add'>+    char uniname2ctype_pool_str1964[sizeof("inlisu")];</div><div class='add'>+    char uniname2ctype_pool_str1967[sizeof("inoldpermic")];</div><div class='add'>+    char uniname2ctype_pool_str1968[sizeof("innoblock")];</div><div class='add'>+    char uniname2ctype_pool_str1969[sizeof("ext")];</div><div class='add'>+    char uniname2ctype_pool_str1974[sizeof("inunifiedcanadianaboriginalsyllabics")];</div><div class='add'>+    char uniname2ctype_pool_str1981[sizeof("takri")];</div><div class='add'>+    char uniname2ctype_pool_str1985[sizeof("inbraillepatterns")];</div><div class='add'>+    char uniname2ctype_pool_str1988[sizeof("invai")];</div><div class='add'>+    char uniname2ctype_pool_str1991[sizeof("alpha")];</div><div class='add'>+    char uniname2ctype_pool_str1993[sizeof("inbalinese")];</div><div class='add'>+    char uniname2ctype_pool_str1994[sizeof("sorasompeng")];</div><div class='add'>+    char uniname2ctype_pool_str1996[sizeof("closepunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str2001[sizeof("hani")];</div><div class='add'>+    char uniname2ctype_pool_str2002[sizeof("inmayannumerals")];</div><div class='add'>+    char uniname2ctype_pool_str2004[sizeof("han")];</div><div class='add'>+    char uniname2ctype_pool_str2006[sizeof("inmiscellaneousmathematicalsymbolsb")];</div><div class='add'>+    char uniname2ctype_pool_str2010[sizeof("inlepcha")];</div><div class='add'>+    char uniname2ctype_pool_str2011[sizeof("patsyn")];</div><div class='add'>+    char uniname2ctype_pool_str2012[sizeof("inlisusupplement")];</div><div class='add'>+    char uniname2ctype_pool_str2014[sizeof("insyriacsupplement")];</div><div class='add'>+    char uniname2ctype_pool_str2015[sizeof("hano")];</div><div class='add'>+    char uniname2ctype_pool_str2016[sizeof("newa")];</div><div class='add'>+    char uniname2ctype_pool_str2023[sizeof("spacingmark")];</div><div class='add'>+    char uniname2ctype_pool_str2024[sizeof("inpalmyrene")];</div><div class='add'>+    char uniname2ctype_pool_str2026[sizeof("takr")];</div><div class='add'>+    char uniname2ctype_pool_str2033[sizeof("xposixpunct")];</div><div class='add'>+    char uniname2ctype_pool_str2040[sizeof("inkhojki")];</div><div class='add'>+    char uniname2ctype_pool_str2042[sizeof("taile")];</div><div class='add'>+    char uniname2ctype_pool_str2043[sizeof("assigned")];</div><div class='add'>+    char uniname2ctype_pool_str2044[sizeof("hanunoo")];</div><div class='add'>+    char uniname2ctype_pool_str2047[sizeof("hira")];</div><div class='add'>+    char uniname2ctype_pool_str2048[sizeof("inarabicextendedc")];</div><div class='add'>+    char uniname2ctype_pool_str2062[sizeof("newtailue")];</div><div class='add'>+    char uniname2ctype_pool_str2070[sizeof("space")];</div><div class='add'>+    char uniname2ctype_pool_str2073[sizeof("intelugu")];</div><div class='add'>+    char uniname2ctype_pool_str2077[sizeof("lydi")];</div><div class='add'>+    char uniname2ctype_pool_str2078[sizeof("idsb")];</div><div class='add'>+    char uniname2ctype_pool_str2090[sizeof("extpict")];</div><div class='add'>+    char uniname2ctype_pool_str2092[sizeof("lydian")];</div><div class='add'>+    char uniname2ctype_pool_str2095[sizeof("inethiopicsupplement")];</div><div class='add'>+    char uniname2ctype_pool_str2103[sizeof("sarb")];</div><div class='add'>+    char uniname2ctype_pool_str2110[sizeof("ugaritic")];</div><div class='add'>+    char uniname2ctype_pool_str2114[sizeof("inyiradicals")];</div><div class='add'>+    char uniname2ctype_pool_str2115[sizeof("inphoneticextensions")];</div><div class='add'>+    char uniname2ctype_pool_str2117[sizeof("sharada")];</div><div class='add'>+    char uniname2ctype_pool_str2128[sizeof("zanabazarsquare")];</div><div class='add'>+    char uniname2ctype_pool_str2135[sizeof("bugi")];</div><div class='add'>+    char uniname2ctype_pool_str2137[sizeof("word")];</div><div class='add'>+    char uniname2ctype_pool_str2141[sizeof("term")];</div><div class='add'>+    char uniname2ctype_pool_str2145[sizeof("separator")];</div><div class='add'>+    char uniname2ctype_pool_str2146[sizeof("ingeorgiansupplement")];</div><div class='add'>+    char uniname2ctype_pool_str2149[sizeof("sogd")];</div><div class='add'>+    char uniname2ctype_pool_str2163[sizeof("extender")];</div><div class='add'>+    char uniname2ctype_pool_str2165[sizeof("shrd")];</div><div class='add'>+    char uniname2ctype_pool_str2166[sizeof("graph")];</div><div class='add'>+    char uniname2ctype_pool_str2174[sizeof("tnsa")];</div><div class='add'>+    char uniname2ctype_pool_str2178[sizeof("tangsa")];</div><div class='add'>+    char uniname2ctype_pool_str2181[sizeof("phag")];</div><div class='add'>+    char uniname2ctype_pool_str2182[sizeof("dogra")];</div><div class='add'>+    char uniname2ctype_pool_str2195[sizeof("inhanguljamo")];</div><div class='add'>+    char uniname2ctype_pool_str2196[sizeof("inshavian")];</div><div class='add'>+    char uniname2ctype_pool_str2207[sizeof("siddham")];</div><div class='add'>+    char uniname2ctype_pool_str2211[sizeof("cf")];</div><div class='add'>+    char uniname2ctype_pool_str2216[sizeof("inunifiedcanadianaboriginalsyllabicsextended")];</div><div class='add'>+    char uniname2ctype_pool_str2217[sizeof("buginese")];</div><div class='add'>+    char uniname2ctype_pool_str2218[sizeof("inmongoliansupplement")];</div><div class='add'>+    char uniname2ctype_pool_str2219[sizeof("cyrl")];</div><div class='add'>+    char uniname2ctype_pool_str2224[sizeof("inhanguljamoextendeda")];</div><div class='add'>+    char uniname2ctype_pool_str2228[sizeof("pf")];</div><div class='add'>+    char uniname2ctype_pool_str2229[sizeof("number")];</div><div class='add'>+    char uniname2ctype_pool_str2232[sizeof("inphoneticextensionssupplement")];</div><div class='add'>+    char uniname2ctype_pool_str2233[sizeof("dogr")];</div><div class='add'>+    char uniname2ctype_pool_str2234[sizeof("mlym")];</div><div class='add'>+    char uniname2ctype_pool_str2235[sizeof("incopticepactnumbers")];</div><div class='add'>+    char uniname2ctype_pool_str2241[sizeof("malayalam")];</div><div class='add'>+    char uniname2ctype_pool_str2244[sizeof("inbamum")];</div><div class='add'>+    char uniname2ctype_pool_str2247[sizeof("nd")];</div><div class='add'>+    char uniname2ctype_pool_str2248[sizeof("insuttonsignwriting")];</div><div class='add'>+    char uniname2ctype_pool_str2276[sizeof("inethiopicextended")];</div><div class='add'>+    char uniname2ctype_pool_str2278[sizeof("shaw")];</div><div class='add'>+    char uniname2ctype_pool_str2279[sizeof("palmyrene")];</div><div class='add'>+    char uniname2ctype_pool_str2283[sizeof("soyo")];</div><div class='add'>+    char uniname2ctype_pool_str2296[sizeof("incjkunifiedideographsextensionh")];</div><div class='add'>+    char uniname2ctype_pool_str2305[sizeof("sgnw")];</div><div class='add'>+    char uniname2ctype_pool_str2308[sizeof("toto")];</div><div class='add'>+    char uniname2ctype_pool_str2312[sizeof("caucasianalbanian")];</div><div class='add'>+    char uniname2ctype_pool_str2315[sizeof("inmathematicalalphanumericsymbols")];</div><div class='add'>+    char uniname2ctype_pool_str2316[sizeof("incjkunifiedideographsextensiong")];</div><div class='add'>+    char uniname2ctype_pool_str2318[sizeof("hatran")];</div><div class='add'>+    char uniname2ctype_pool_str2321[sizeof("taiviet")];</div><div class='add'>+    char uniname2ctype_pool_str2323[sizeof("meroitichieroglyphs")];</div><div class='add'>+    char uniname2ctype_pool_str2327[sizeof("ingeorgianextended")];</div><div class='add'>+    char uniname2ctype_pool_str2331[sizeof("incjkunifiedideographsextensionf")];</div><div class='add'>+    char uniname2ctype_pool_str2333[sizeof("oldpersian")];</div><div class='add'>+    char uniname2ctype_pool_str2343[sizeof("induployan")];</div><div class='add'>+    char uniname2ctype_pool_str2344[sizeof("incyrillicextendedb")];</div><div class='add'>+    char uniname2ctype_pool_str2345[sizeof("dash")];</div><div class='add'>+    char uniname2ctype_pool_str2353[sizeof("hatr")];</div><div class='add'>+    char uniname2ctype_pool_str2361[sizeof("innyiakengpuachuehmong")];</div><div class='add'>+    char uniname2ctype_pool_str2364[sizeof("incombiningdiacriticalmarks")];</div><div class='add'>+    char uniname2ctype_pool_str2373[sizeof("nl")];</div><div class='add'>+    char uniname2ctype_pool_str2374[sizeof("incombiningdiacriticalmarksforsymbols")];</div><div class='add'>+    char uniname2ctype_pool_str2375[sizeof("khudawadi")];</div><div class='add'>+    char uniname2ctype_pool_str2397[sizeof("incjkradicalssupplement")];</div><div class='add'>+    char uniname2ctype_pool_str2398[sizeof("inglagolitic")];</div><div class='add'>+    char uniname2ctype_pool_str2405[sizeof("orkh")];</div><div class='add'>+    char uniname2ctype_pool_str2414[sizeof("syrc")];</div><div class='add'>+    char uniname2ctype_pool_str2427[sizeof("surrogate")];</div><div class='add'>+    char uniname2ctype_pool_str2433[sizeof("indevanagari")];</div><div class='add'>+    char uniname2ctype_pool_str2434[sizeof("avestan")];</div><div class='add'>+    char uniname2ctype_pool_str2437[sizeof("oldpermic")];</div><div class='add'>+    char uniname2ctype_pool_str2440[sizeof("ethi")];</div><div class='add'>+    char uniname2ctype_pool_str2451[sizeof("ogam")];</div><div class='add'>+    char uniname2ctype_pool_str2454[sizeof("rohg")];</div><div class='add'>+    char uniname2ctype_pool_str2460[sizeof("idstrinaryoperator")];</div><div class='add'>+    char uniname2ctype_pool_str2464[sizeof("java")];</div><div class='add'>+    char uniname2ctype_pool_str2470[sizeof("inphagspa")];</div><div class='add'>+    char uniname2ctype_pool_str2475[sizeof("lepcha")];</div><div class='add'>+    char uniname2ctype_pool_str2476[sizeof("indevanagariextendeda")];</div><div class='add'>+    char uniname2ctype_pool_str2478[sizeof("intifinagh")];</div><div class='add'>+    char uniname2ctype_pool_str2479[sizeof("intagalog")];</div><div class='add'>+    char uniname2ctype_pool_str2481[sizeof("incombiningdiacriticalmarkssupplement")];</div><div class='add'>+    char uniname2ctype_pool_str2500[sizeof("tale")];</div><div class='add'>+    char uniname2ctype_pool_str2506[sizeof("inbrahmi")];</div><div class='add'>+    char uniname2ctype_pool_str2511[sizeof("terminalpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str2513[sizeof("insymbolsandpictographsextendeda")];</div><div class='add'>+    char uniname2ctype_pool_str2530[sizeof("syriac")];</div><div class='add'>+    char uniname2ctype_pool_str2534[sizeof("inbengali")];</div><div class='add'>+    char uniname2ctype_pool_str2535[sizeof("nagm")];</div><div class='add'>+    char uniname2ctype_pool_str2545[sizeof("extendedpictographic")];</div><div class='add'>+    char uniname2ctype_pool_str2548[sizeof("buhd")];</div><div class='add'>+    char uniname2ctype_pool_str2549[sizeof("javanese")];</div><div class='add'>+    char uniname2ctype_pool_str2551[sizeof("taml")];</div><div class='add'>+    char uniname2ctype_pool_str2564[sizeof("inbuginese")];</div><div class='add'>+    char uniname2ctype_pool_str2567[sizeof("inlatin1supplement")];</div><div class='add'>+    char uniname2ctype_pool_str2570[sizeof("ingothic")];</div><div class='add'>+    char uniname2ctype_pool_str2572[sizeof("invariationselectors")];</div><div class='add'>+    char uniname2ctype_pool_str2574[sizeof("hex")];</div><div class='add'>+    char uniname2ctype_pool_str2575[sizeof("inverticalforms")];</div><div class='add'>+    char uniname2ctype_pool_str2576[sizeof("ebase")];</div><div class='add'>+    char uniname2ctype_pool_str2582[sizeof("incurrencysymbols")];</div><div class='add'>+    char uniname2ctype_pool_str2588[sizeof("avst")];</div><div class='add'>+    char uniname2ctype_pool_str2602[sizeof("osge")];</div><div class='add'>+    char uniname2ctype_pool_str2606[sizeof("incombiningdiacriticalmarksextended")];</div><div class='add'>+    char uniname2ctype_pool_str2608[sizeof("intaiviet")];</div><div class='add'>+    char uniname2ctype_pool_str2609[sizeof("spaceseparator")];</div><div class='add'>+    char uniname2ctype_pool_str2625[sizeof("softdotted")];</div><div class='add'>+    char uniname2ctype_pool_str2648[sizeof("nchar")];</div><div class='add'>+    char uniname2ctype_pool_str2652[sizeof("invedicextensions")];</div><div class='add'>+    char uniname2ctype_pool_str2656[sizeof("inlimbu")];</div><div class='add'>+    char uniname2ctype_pool_str2657[sizeof("olditalic")];</div><div class='add'>+    char uniname2ctype_pool_str2665[sizeof("gujr")];</div><div class='add'>+    char uniname2ctype_pool_str2666[sizeof("mathsymbol")];</div><div class='add'>+    char uniname2ctype_pool_str2670[sizeof("incjkunifiedideographsextensionb")];</div><div class='add'>+    char uniname2ctype_pool_str2674[sizeof("gujarati")];</div><div class='add'>+    char uniname2ctype_pool_str2688[sizeof("phagspa")];</div><div class='add'>+    char uniname2ctype_pool_str2689[sizeof("invariationselectorssupplement")];</div><div class='add'>+    char uniname2ctype_pool_str2694[sizeof("currencysymbol")];</div><div class='add'>+    char uniname2ctype_pool_str2705[sizeof("inlinearbsyllabary")];</div><div class='add'>+    char uniname2ctype_pool_str2726[sizeof("wancho")];</div><div class='add'>+    char uniname2ctype_pool_str2750[sizeof("inpaucinhau")];</div><div class='add'>+    char uniname2ctype_pool_str2761[sizeof("other")];</div><div class='add'>+    char uniname2ctype_pool_str2762[sizeof("otheridcontinue")];</div><div class='add'>+    char uniname2ctype_pool_str2765[sizeof("sylo")];</div><div class='add'>+    char uniname2ctype_pool_str2766[sizeof("zp")];</div><div class='add'>+    char uniname2ctype_pool_str2769[sizeof("inaegeannumbers")];</div><div class='add'>+    char uniname2ctype_pool_str2772[sizeof("warangciti")];</div><div class='add'>+    char uniname2ctype_pool_str2775[sizeof("othernumber")];</div><div class='add'>+    char uniname2ctype_pool_str2786[sizeof("digit")];</div><div class='add'>+    char uniname2ctype_pool_str2793[sizeof("nonspacingmark")];</div><div class='add'>+    char uniname2ctype_pool_str2801[sizeof("titlecaseletter")];</div><div class='add'>+    char uniname2ctype_pool_str2808[sizeof("inmeroiticcursive")];</div><div class='add'>+    char uniname2ctype_pool_str2810[sizeof("wcho")];</div><div class='add'>+    char uniname2ctype_pool_str2816[sizeof("graphemeclusterbreak=spacingmark")];</div><div class='add'>+    char uniname2ctype_pool_str2821[sizeof("inletterlikesymbols")];</div><div class='add'>+    char uniname2ctype_pool_str2830[sizeof("inottomansiyaqnumbers")];</div><div class='add'>+    char uniname2ctype_pool_str2834[sizeof("intagbanwa")];</div><div class='add'>+    char uniname2ctype_pool_str2836[sizeof("cyrillic")];</div><div class='add'>+    char uniname2ctype_pool_str2847[sizeof("oalpha")];</div><div class='add'>+    char uniname2ctype_pool_str2852[sizeof("graphemeclusterbreak=cr")];</div><div class='add'>+    char uniname2ctype_pool_str2855[sizeof("narb")];</div><div class='add'>+    char uniname2ctype_pool_str2856[sizeof("changeswhencasemapped")];</div><div class='add'>+    char uniname2ctype_pool_str2859[sizeof("inbopomofo")];</div><div class='add'>+    char uniname2ctype_pool_str2867[sizeof("graphemeclusterbreak=regionalindicator")];</div><div class='add'>+    char uniname2ctype_pool_str2868[sizeof("otheralphabetic")];</div><div class='add'>+    char uniname2ctype_pool_str2871[sizeof("noncharactercodepoint")];</div><div class='add'>+    char uniname2ctype_pool_str2879[sizeof("oldhungarian")];</div><div class='add'>+    char uniname2ctype_pool_str2886[sizeof("insymbolsforlegacycomputing")];</div><div class='add'>+    char uniname2ctype_pool_str2902[sizeof("insmallformvariants")];</div><div class='add'>+    char uniname2ctype_pool_str2904[sizeof("inhangulsyllables")];</div><div class='add'>+    char uniname2ctype_pool_str2905[sizeof("emojipresentation")];</div><div class='add'>+    char uniname2ctype_pool_str2907[sizeof("epres")];</div><div class='add'>+    char uniname2ctype_pool_str2909[sizeof("inbassavah")];</div><div class='add'>+    char uniname2ctype_pool_str2911[sizeof("indevanagariextended")];</div><div class='add'>+    char uniname2ctype_pool_str2941[sizeof("inbuhid")];</div><div class='add'>+    char uniname2ctype_pool_str2953[sizeof("tirhuta")];</div><div class='add'>+    char uniname2ctype_pool_str2964[sizeof("inpsalterpahlavi")];</div><div class='add'>+    char uniname2ctype_pool_str2966[sizeof("whitespace")];</div><div class='add'>+    char uniname2ctype_pool_str2967[sizeof("finalpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str2970[sizeof("orya")];</div><div class='add'>+    char uniname2ctype_pool_str2980[sizeof("phlp")];</div><div class='add'>+    char uniname2ctype_pool_str2984[sizeof("inbamumsupplement")];</div><div class='add'>+    char uniname2ctype_pool_str2986[sizeof("buhid")];</div><div class='add'>+    char uniname2ctype_pool_str2987[sizeof("paragraphseparator")];</div><div class='add'>+    char uniname2ctype_pool_str2988[sizeof("inalphabeticpresentationforms")];</div><div class='add'>+    char uniname2ctype_pool_str2997[sizeof("inlatinextendedg")];</div><div class='add'>+    char uniname2ctype_pool_str3001[sizeof("elba")];</div><div class='add'>+    char uniname2ctype_pool_str3002[sizeof("changeswhentitlecased")];</div><div class='add'>+    char uniname2ctype_pool_str3005[sizeof("incombininghalfmarks")];</div><div class='add'>+    char uniname2ctype_pool_str3006[sizeof("intangutcomponents")];</div><div class='add'>+    char uniname2ctype_pool_str3015[sizeof("thaa")];</div><div class='add'>+    char uniname2ctype_pool_str3018[sizeof("thai")];</div><div class='add'>+    char uniname2ctype_pool_str3019[sizeof("oldturkic")];</div><div class='add'>+    char uniname2ctype_pool_str3026[sizeof("thaana")];</div><div class='add'>+    char uniname2ctype_pool_str3027[sizeof("inlatinextendedf")];</div><div class='add'>+    char uniname2ctype_pool_str3035[sizeof("ougr")];</div><div class='add'>+    char uniname2ctype_pool_str3042[sizeof("tang")];</div><div class='add'>+    char uniname2ctype_pool_str3045[sizeof("inarabicmathematicalalphabeticsymbols")];</div><div class='add'>+    char uniname2ctype_pool_str3048[sizeof("tagbanwa")];</div><div class='add'>+    char uniname2ctype_pool_str3052[sizeof("tamil")];</div><div class='add'>+    char uniname2ctype_pool_str3053[sizeof("khitansmallscript")];</div><div class='add'>+    char uniname2ctype_pool_str3058[sizeof("mahj")];</div><div class='add'>+    char uniname2ctype_pool_str3067[sizeof("mahajani")];</div><div class='add'>+    char uniname2ctype_pool_str3068[sizeof("hang")];</div><div class='add'>+    char uniname2ctype_pool_str3071[sizeof("tirh")];</div><div class='add'>+    char uniname2ctype_pool_str3072[sizeof("sylotinagri")];</div><div class='add'>+    char uniname2ctype_pool_str3082[sizeof("talu")];</div><div class='add'>+    char uniname2ctype_pool_str3084[sizeof("nagmundari")];</div><div class='add'>+    char uniname2ctype_pool_str3086[sizeof("deva")];</div><div class='add'>+    char uniname2ctype_pool_str3087[sizeof("ingujarati")];</div><div class='add'>+    char uniname2ctype_pool_str3091[sizeof("deprecated")];</div><div class='add'>+    char uniname2ctype_pool_str3099[sizeof("inarabicpresentationformsb")];</div><div class='add'>+    char uniname2ctype_pool_str3104[sizeof("devanagari")];</div><div class='add'>+    char uniname2ctype_pool_str3106[sizeof("ingunjalagondi")];</div><div class='add'>+    char uniname2ctype_pool_str3107[sizeof("graphemeclusterbreak=t")];</div><div class='add'>+    char uniname2ctype_pool_str3109[sizeof("graphemeclusterbreak=lvt")];</div><div class='add'>+    char uniname2ctype_pool_str3110[sizeof("taitham")];</div><div class='add'>+    char uniname2ctype_pool_str3111[sizeof("nbat")];</div><div class='add'>+    char uniname2ctype_pool_str3118[sizeof("telu")];</div><div class='add'>+    char uniname2ctype_pool_str3123[sizeof("hiragana")];</div><div class='add'>+    char uniname2ctype_pool_str3125[sizeof("nabataean")];</div><div class='add'>+    char uniname2ctype_pool_str3135[sizeof("inrejang")];</div><div class='add'>+    char uniname2ctype_pool_str3142[sizeof("intangutsupplement")];</div><div class='add'>+    char uniname2ctype_pool_str3145[sizeof("khoj")];</div><div class='add'>+    char uniname2ctype_pool_str3155[sizeof("hmng")];</div><div class='add'>+    char uniname2ctype_pool_str3157[sizeof("cyprominoan")];</div><div class='add'>+    char uniname2ctype_pool_str3158[sizeof("inhebrew")];</div><div class='add'>+    char uniname2ctype_pool_str3176[sizeof("inmathematicaloperators")];</div><div class='add'>+    char uniname2ctype_pool_str3180[sizeof("inarabicsupplement")];</div><div class='add'>+    char uniname2ctype_pool_str3193[sizeof("inenclosedcjklettersandmonths")];</div><div class='add'>+    char uniname2ctype_pool_str3209[sizeof("changeswhenlowercased")];</div><div class='add'>+    char uniname2ctype_pool_str3212[sizeof("tangut")];</div><div class='add'>+    char uniname2ctype_pool_str3215[sizeof("elbasan")];</div><div class='add'>+    char uniname2ctype_pool_str3218[sizeof("osmanya")];</div><div class='add'>+    char uniname2ctype_pool_str3237[sizeof("insuperscriptsandsubscripts")];</div><div class='add'>+    char uniname2ctype_pool_str3239[sizeof("graphemeclusterbreak=extend")];</div><div class='add'>+    char uniname2ctype_pool_str3240[sizeof("graphemeclusterbreak=prepend")];</div><div class='add'>+    char uniname2ctype_pool_str3248[sizeof("nshu")];</div><div class='add'>+    char uniname2ctype_pool_str3254[sizeof("otherlowercase")];</div><div class='add'>+    char uniname2ctype_pool_str3265[sizeof("inethiopicextendedb")];</div><div class='add'>+    char uniname2ctype_pool_str3267[sizeof("otherletter")];</div><div class='add'>+    char uniname2ctype_pool_str3275[sizeof("kayahli")];</div><div class='add'>+    char uniname2ctype_pool_str3284[sizeof("inplayingcards")];</div><div class='add'>+    char uniname2ctype_pool_str3287[sizeof("elym")];</div><div class='add'>+    char uniname2ctype_pool_str3297[sizeof("graphemeclusterbreak=l")];</div><div class='add'>+    char uniname2ctype_pool_str3303[sizeof("graphemeclusterbreak=control")];</div><div class='add'>+    char uniname2ctype_pool_str3313[sizeof("ogrext")];</div><div class='add'>+    char uniname2ctype_pool_str3320[sizeof("elymaic")];</div><div class='add'>+    char uniname2ctype_pool_str3328[sizeof("changeswhenuppercased")];</div><div class='add'>+    char uniname2ctype_pool_str3329[sizeof("inalchemicalsymbols")];</div><div class='add'>+    char uniname2ctype_pool_str3331[sizeof("oldsogdian")];</div><div class='add'>+    char uniname2ctype_pool_str3338[sizeof("otheridstart")];</div><div class='add'>+    char uniname2ctype_pool_str3348[sizeof("insupplementalarrowsa")];</div><div class='add'>+    char uniname2ctype_pool_str3350[sizeof("invithkuqi")];</div><div class='add'>+    char uniname2ctype_pool_str3355[sizeof("symbol")];</div><div class='add'>+    char uniname2ctype_pool_str3360[sizeof("inarabicextendedb")];</div><div class='add'>+    char uniname2ctype_pool_str3371[sizeof("cypriot")];</div><div class='add'>+    char uniname2ctype_pool_str3372[sizeof("any")];</div><div class='add'>+    char uniname2ctype_pool_str3373[sizeof("otheruppercase")];</div><div class='add'>+    char uniname2ctype_pool_str3377[sizeof("rjng")];</div><div class='add'>+    char uniname2ctype_pool_str3391[sizeof("wspace")];</div><div class='add'>+    char uniname2ctype_pool_str3396[sizeof("inindicsiyaqnumbers")];</div><div class='add'>+    char uniname2ctype_pool_str3405[sizeof("inprivateusearea")];</div><div class='add'>+    char uniname2ctype_pool_str3416[sizeof("othersymbol")];</div><div class='add'>+    char uniname2ctype_pool_str3428[sizeof("oupper")];</div><div class='add'>+    char uniname2ctype_pool_str3433[sizeof("signwriting")];</div><div class='add'>+    char uniname2ctype_pool_str3436[sizeof("nushu")];</div><div class='add'>+    char uniname2ctype_pool_str3455[sizeof("hmnp")];</div><div class='add'>+    char uniname2ctype_pool_str3458[sizeof("upper")];</div><div class='add'>+    char uniname2ctype_pool_str3460[sizeof("insupplementalarrowsc")];</div><div class='add'>+    char uniname2ctype_pool_str3483[sizeof("omath")];</div><div class='add'>+    char uniname2ctype_pool_str3502[sizeof("modifiersymbol")];</div><div class='add'>+    char uniname2ctype_pool_str3504[sizeof("hebr")];</div><div class='add'>+    char uniname2ctype_pool_str3505[sizeof("inhalfwidthandfullwidthforms")];</div><div class='add'>+    char uniname2ctype_pool_str3511[sizeof("insupplementalmathematicaloperators")];</div><div class='add'>+    char uniname2ctype_pool_str3532[sizeof("inpahawhhmong")];</div><div class='add'>+    char uniname2ctype_pool_str3533[sizeof("alphabetic")];</div><div class='add'>+    char uniname2ctype_pool_str3558[sizeof("uppercase")];</div><div class='add'>+    char uniname2ctype_pool_str3580[sizeof("dupl")];</div><div class='add'>+    char uniname2ctype_pool_str3590[sizeof("ogham")];</div><div class='add'>+    char uniname2ctype_pool_str3613[sizeof("dashpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str3618[sizeof("hangul")];</div><div class='add'>+    char uniname2ctype_pool_str3648[sizeof("inhanguljamoextendedb")];</div><div class='add'>+    char uniname2ctype_pool_str3659[sizeof("bassavah")];</div><div class='add'>+    char uniname2ctype_pool_str3664[sizeof("aghb")];</div><div class='add'>+    char uniname2ctype_pool_str3686[sizeof("hung")];</div><div class='add'>+    char uniname2ctype_pool_str3689[sizeof("hexdigit")];</div><div class='add'>+    char uniname2ctype_pool_str3698[sizeof("incypriotsyllabary")];</div><div class='add'>+    char uniname2ctype_pool_str3699[sizeof("indivesakuru")];</div><div class='add'>+    char uniname2ctype_pool_str3701[sizeof("tibt")];</div><div class='add'>+    char uniname2ctype_pool_str3705[sizeof("inlatinextendedb")];</div><div class='add'>+    char uniname2ctype_pool_str3710[sizeof("hluw")];</div><div class='add'>+    char uniname2ctype_pool_str3713[sizeof("tibetan")];</div><div class='add'>+    char uniname2ctype_pool_str3721[sizeof("inyisyllables")];</div><div class='add'>+    char uniname2ctype_pool_str3744[sizeof("oldnortharabian")];</div><div class='add'>+    char uniname2ctype_pool_str3754[sizeof("defaultignorablecodepoint")];</div><div class='add'>+    char uniname2ctype_pool_str3766[sizeof("inhighprivateusesurrogates")];</div><div class='add'>+    char uniname2ctype_pool_str3799[sizeof("soyombo")];</div><div class='add'>+    char uniname2ctype_pool_str3807[sizeof("otherdefaultignorablecodepoint")];</div><div class='add'>+    char uniname2ctype_pool_str3842[sizeof("pahawhhmong")];</div><div class='add'>+    char uniname2ctype_pool_str3845[sizeof("unifiedideograph")];</div><div class='add'>+    char uniname2ctype_pool_str3850[sizeof("othermath")];</div><div class='add'>+    char uniname2ctype_pool_str3854[sizeof("changeswhencasefolded")];</div><div class='add'>+    char uniname2ctype_pool_str3857[sizeof("inmahjongtiles")];</div><div class='add'>+    char uniname2ctype_pool_str3868[sizeof("dep")];</div><div class='add'>+    char uniname2ctype_pool_str3881[sizeof("divesakuru")];</div><div class='add'>+    char uniname2ctype_pool_str3884[sizeof("graphemeclusterbreak=lf")];</div><div class='add'>+    char uniname2ctype_pool_str3891[sizeof("uppercaseletter")];</div><div class='add'>+    char uniname2ctype_pool_str3924[sizeof("insupplementalpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str3942[sizeof("ethiopic")];</div><div class='add'>+    char uniname2ctype_pool_str3944[sizeof("inyijinghexagramsymbols")];</div><div class='add'>+    char uniname2ctype_pool_str3949[sizeof("ecomp")];</div><div class='add'>+    char uniname2ctype_pool_str3976[sizeof("inglagoliticsupplement")];</div><div class='add'>+    char uniname2ctype_pool_str3998[sizeof("inbopomofoextended")];</div><div class='add'>+    char uniname2ctype_pool_str4007[sizeof("injavanese")];</div><div class='add'>+    char uniname2ctype_pool_str4106[sizeof("otherpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str4116[sizeof("tifinagh")];</div><div class='add'>+    char uniname2ctype_pool_str4127[sizeof("tfng")];</div><div class='add'>+    char uniname2ctype_pool_str4169[sizeof("hanifirohingya")];</div><div class='add'>+    char uniname2ctype_pool_str4231[sizeof("tavt")];</div><div class='add'>+    char uniname2ctype_pool_str4308[sizeof("inboxdrawing")];</div><div class='add'>+    char uniname2ctype_pool_str4309[sizeof("oldsoutharabian")];</div><div class='add'>+    char uniname2ctype_pool_str4348[sizeof("inegyptianhieroglyphs")];</div><div class='add'>+    char uniname2ctype_pool_str4361[sizeof("inegyptianhieroglyphformatcontrols")];</div><div class='add'>+    char uniname2ctype_pool_str4459[sizeof("tagb")];</div><div class='add'>+    char uniname2ctype_pool_str4487[sizeof("rejang")];</div><div class='add'>+    char uniname2ctype_pool_str4604[sizeof("tglg")];</div><div class='add'>+    char uniname2ctype_pool_str4626[sizeof("tagalog")];</div><div class='add'>+    char uniname2ctype_pool_str4627[sizeof("othergraphemeextend")];</div><div class='add'>+    char uniname2ctype_pool_str4674[sizeof("insupplementaryprivateuseareaa")];</div><div class='add'>+    char uniname2ctype_pool_str4683[sizeof("inhighsurrogates")];</div><div class='add'>+    char uniname2ctype_pool_str4695[sizeof("hebrew")];</div><div class='add'>+    char uniname2ctype_pool_str4734[sizeof("duployan")];</div><div class='add'>+    char uniname2ctype_pool_str4755[sizeof("graphemeclusterbreak=v")];</div><div class='add'>+    char uniname2ctype_pool_str4756[sizeof("graphemeclusterbreak=lv")];</div><div class='add'>+    char uniname2ctype_pool_str4772[sizeof("insupplementalarrowsb")];</div><div class='add'>+    char uniname2ctype_pool_str4783[sizeof("graphemeclusterbreak=zwj")];</div><div class='add'>+    char uniname2ctype_pool_str4810[sizeof("telugu")];</div><div class='add'>+    char uniname2ctype_pool_str4898[sizeof("zyyy")];</div><div class='add'>+    char uniname2ctype_pool_str4982[sizeof("olduyghur")];</div><div class='add'>+    char uniname2ctype_pool_str4986[sizeof("inhangulcompatibilityjamo")];</div><div class='add'>+    char uniname2ctype_pool_str5018[sizeof("openpunctuation")];</div><div class='add'>+    char uniname2ctype_pool_str5038[sizeof("hyphen")];</div><div class='add'>+    char uniname2ctype_pool_str5134[sizeof("insupplementalsymbolsandpictographs")];</div><div class='add'>+    char uniname2ctype_pool_str5141[sizeof("egyp")];</div><div class='add'>+    char uniname2ctype_pool_str5300[sizeof("nyiakengpuachuehmong")];</div><div class='add'>+    char uniname2ctype_pool_str5980[sizeof("egyptianhieroglyphs")];</div><div class='add'>+    char uniname2ctype_pool_str6098[sizeof("insupplementaryprivateuseareab")];</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+  };</div><div class='add'>+static const struct uniname2ctype_pool_t uniname2ctype_pool_contents =</div><div class='add'>+  {</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+    "word",</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "yi",</div><div class='add'>+    "yiii",</div><div class='add'>+    "lana",</div><div class='add'>+    "lina",</div><div class='add'>+    "maka",</div><div class='add'>+    "mani",</div><div class='add'>+    "mn",</div><div class='add'>+    "miao",</div><div class='add'>+    "lo",</div><div class='add'>+    "ci",</div><div class='add'>+    "lao",</div><div class='add'>+    "laoo",</div><div class='add'>+    "inkannada",</div><div class='add'>+    "cn",</div><div class='add'>+    "pi",</div><div class='add'>+    "innko",</div><div class='add'>+    "z",</div><div class='add'>+    "gran",</div><div class='add'>+    "co",</div><div class='add'>+    "lineara",</div><div class='add'>+    "mark",</div><div class='add'>+    "yezi",</div><div class='add'>+    "po",</div><div class='add'>+    "me",</div><div class='add'>+    "cari",</div><div class='add'>+    "inkharoshthi",</div><div class='add'>+    "kana",</div><div class='add'>+    "loe",</div><div class='add'>+    "m",</div><div class='add'>+    "grek",</div><div class='add'>+    "mro",</div><div class='add'>+    "mroo",</div><div class='add'>+    "carian",</div><div class='add'>+    "geor",</div><div class='add'>+    "greek",</div><div class='add'>+    "gonm",</div><div class='add'>+    "mendekikakui",</div><div class='add'>+    "pe",</div><div class='add'>+    "mero",</div><div class='add'>+    "inosmanya",</div><div class='add'>+    "cakm",</div><div class='add'>+    "inmanichaean",</div><div class='add'>+    "inmro",</div><div class='add'>+    "inmiao",</div><div class='add'>+    "inchakma",</div><div class='add'>+    "c",</div><div class='add'>+    "mandaic",</div><div class='add'>+    "meeteimayek",</div><div class='add'>+    "zzzz",</div><div class='add'>+    "inarmenian",</div><div class='add'>+    "inmyanmar",</div><div class='add'>+    "inmakasar",</div><div class='add'>+    "common",</div><div class='add'>+    "lm",</div><div class='add'>+    "marc",</div><div class='add'>+    "inrunic",</div><div class='add'>+    "incarian",</div><div class='add'>+    "inideographicsymbolsandpunctuation",</div><div class='add'>+    "inkhmer",</div><div class='add'>+    "qaai",</div><div class='add'>+    "inahom",</div><div class='add'>+    "merc",</div><div class='add'>+    "inchorasmian",</div><div class='add'>+    "combiningmark",</div><div class='add'>+    "lc",</div><div class='add'>+    "perm",</div><div class='add'>+    "mc",</div><div class='add'>+    "connectorpunctuation",</div><div class='add'>+    "cans",</div><div class='add'>+    "incuneiformnumbersandpunctuation",</div><div class='add'>+    "armi",</div><div class='add'>+    "cc",</div><div class='add'>+    "armn",</div><div class='add'>+    "incherokee",</div><div class='add'>+    "prependedconcatenationmark",</div><div class='add'>+    "incuneiform",</div><div class='add'>+    "inavestan",</div><div class='add'>+    "inipaextensions",</div><div class='add'>+    "pc",</div><div class='add'>+    "armenian",</div><div class='add'>+    "insharada",</div><div class='add'>+    "vai",</div><div class='add'>+    "vaii",</div><div class='add'>+    "inmarchen",</div><div class='add'>+    "makasar",</div><div class='add'>+    "masaramgondi",</div><div class='add'>+    "inarrows",</div><div class='add'>+    "incyrillic",</div><div class='add'>+    "incham",</div><div class='add'>+    "qmark",</div><div class='add'>+    "ri",</div><div class='add'>+    "qaac",</div><div class='add'>+    "insamaritan",</div><div class='add'>+    "latn",</div><div class='add'>+    "inmasaramgondi",</div><div class='add'>+    "inthaana",</div><div class='add'>+    "latin",</div><div class='add'>+    "inthai",</div><div class='add'>+    "lineseparator",</div><div class='add'>+    "pcm",</div><div class='add'>+    "inkatakana",</div><div class='add'>+    "inkaithi",</div><div class='add'>+    "inscriptionalparthian",</div><div class='add'>+    "initialpunctuation",</div><div class='add'>+    "mtei",</div><div class='add'>+    "inzanabazarsquare",</div><div class='add'>+    "inkhmersymbols",</div><div class='add'>+    "insyriac",</div><div class='add'>+    "intakri",</div><div class='add'>+    "arabic",</div><div class='add'>+    "katakana",</div><div class='add'>+    "prti",</div><div class='add'>+    "zs",</div><div class='add'>+    "ascii",</div><div class='add'>+    "cs",</div><div class='add'>+    "ps",</div><div class='add'>+    "mand",</div><div class='add'>+    "privateuse",</div><div class='add'>+    "inruminumeralsymbols",</div><div class='add'>+    "inmyanmarextendeda",</div><div class='add'>+    "modi",</div><div class='add'>+    "incjkcompatibilityforms",</div><div class='add'>+    "inkanaextendeda",</div><div class='add'>+    "incjkcompatibilityideographs",</div><div class='add'>+    "brai",</div><div class='add'>+    "mend",</div><div class='add'>+    "ideo",</div><div class='add'>+    "letter",</div><div class='add'>+    "l",</div><div class='add'>+    "inmeeteimayek",</div><div class='add'>+    "inideographicdescriptioncharacters",</div><div class='add'>+    "yezidi",</div><div class='add'>+    "knda",</div><div class='add'>+    "innandinagari",</div><div class='add'>+    "kannada",</div><div class='add'>+    "inmodi",</div><div class='add'>+    "inlao",</div><div class='add'>+    "xidcontinue",</div><div class='add'>+    "inoldnortharabian",</div><div class='add'>+    "intransportandmapsymbols",</div><div class='add'>+    "letternumber",</div><div class='add'>+    "gothic",</div><div class='add'>+    "inlineara",</div><div class='add'>+    "inmendekikakui",</div><div class='add'>+    "mongolian",</div><div class='add'>+    "inmiscellaneousmathematicalsymbolsa",</div><div class='add'>+    "inspecials",</div><div class='add'>+    "grlink",</div><div class='add'>+    "brahmi",</div><div class='add'>+    "inemoticons",</div><div class='add'>+    "kali",</div><div class='add'>+    "inolditalic",</div><div class='add'>+    "xidc",</div><div class='add'>+    "inmedefaidrin",</div><div class='add'>+    "inchesssymbols",</div><div class='add'>+    "incjkcompatibilityideographssupplement",</div><div class='add'>+    "kits",</div><div class='add'>+    "inadlam",</div><div class='add'>+    "psalterpahlavi",</div><div class='add'>+    "incommonindicnumberforms",</div><div class='add'>+    "lt",</div><div class='add'>+    "innewa",</div><div class='add'>+    "sk",</div><div class='add'>+    "control",</div><div class='add'>+    "inkawi",</div><div class='add'>+    "inancientsymbols",</div><div class='add'>+    "palm",</div><div class='add'>+    "inlycian",</div><div class='add'>+    "so",</div><div class='add'>+    "patternwhitespace",</div><div class='add'>+    "inmandaic",</div><div class='add'>+    "idc",</div><div class='add'>+    "meroiticcursive",</div><div class='add'>+    "intoto",</div><div class='add'>+    "vs",</div><div class='add'>+    "xids",</div><div class='add'>+    "inwarangciti",</div><div class='add'>+    "sora",</div><div class='add'>+    "inopticalcharacterrecognition",</div><div class='add'>+    "kawi",</div><div class='add'>+    "inoldsogdian",</div><div class='add'>+    "inmalayalam",</div><div class='add'>+    "bamum",</div><div class='add'>+    "inkanasupplement",</div><div class='add'>+    "insundanese",</div><div class='add'>+    "grext",</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "print",</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+    "punct",</div><div class='add'>+    "alpha",</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "intaitham",</div><div class='add'>+    "lower",</div><div class='add'>+    "patternsyntax",</div><div class='add'>+    "joinc",</div><div class='add'>+    "inoldsoutharabian",</div><div class='add'>+    "incjkstrokes",</div><div class='add'>+    "batk",</div><div class='add'>+    "samr",</div><div class='add'>+    "inwancho",</div><div class='add'>+    "batak",</div><div class='add'>+    "patws",</div><div class='add'>+    "samaritan",</div><div class='add'>+    "idsbinaryoperator",</div><div class='add'>+    "pauc",</div><div class='add'>+    "insmallkanaextension",</div><div class='add'>+    "sm",</div><div class='add'>+    "indominotiles",</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "alnum",</div><div class='add'>+#ifdef USE_UNICODE_PROPERTIES</div><div class='add'>+    "inznamennymusicalnotation",</div><div class='add'>+    "insylotinagri",</div><div class='add'>+    "inugaritic",</div><div class='add'>+    "incontrolpictures",</div><div class='add'>+    "inlinearbideograms",</div><div class='add'>+    "inmusicalsymbols",</div><div class='add'>+    "s",</div><div class='add'>+    "ital",</div><div class='add'>+    "inmodifiertoneletters",</div><div class='add'>+    "inancientgreekmusicalnotation",</div><div class='add'>+    "lisu",</div><div class='add'>+    "lowercase",</div><div class='add'>+    "cwcm",</div><div class='add'>+    "sc",</div><div class='add'>+    "bass",</div><div class='add'>+    "ids",</div><div class='add'>+    "inlatinextendeda",</div><div class='add'>+    "intaile",</div><div class='add'>+    "inmiscellaneoussymbols",</div><div class='add'>+    "inmiscellaneoussymbolsandarrows",</div><div class='add'>+    "incaucasianalbanian",</div><div class='add'>+    "inmiscellaneoussymbolsandpictographs",</div><div class='add'>+    "inoldturkic",</div><div class='add'>+    "insaurashtra",</div><div class='add'>+    "incyrillicextendeda",</div><div class='add'>+    "idcontinue",</div><div class='add'>+    "intaixuanjingsymbols",</div><div class='add'>+    "intamil",</div><div class='add'>+    "inmultani",</div><div class='add'>+    "inlatinextendede",</div><div class='add'>+    "pd",</div><div class='add'>+    "bali",</div><div class='add'>+    "blank",</div><div class='add'>+    "idst",</div><div class='add'>+    "inlydian",</div><div class='add'>+    "innewtailue",</div><div class='add'>+    "bengali",</div><div class='add'>+    "runr",</div><div class='add'>+    "ll",</div><div class='add'>+    "indeseret",</div><div class='add'>+    "inancientgreeknumbers",</div><div class='add'>+    "idstart",</div><div class='add'>+    "zl",</div><div class='add'>+    "inmeeteimayekextensions",</div><div class='add'>+    "balinese",</div><div class='add'>+    "incyrillicextendedc",</div><div class='add'>+    "inspacingmodifierletters",</div><div class='add'>+    "inearlydynasticcuneiform",</div><div class='add'>+    "plrd",</div><div class='add'>+    "canadianaboriginal",</div><div class='add'>+    "sind",</div><div class='add'>+    "inlatinextendedc",</div><div class='add'>+    "uideo",</div><div class='add'>+    "incountingrodnumerals",</div><div class='add'>+    "zinh",</div><div class='add'>+    "dia",</div><div class='add'>+    "di",</div><div class='add'>+    "inkhudawadi",</div><div class='add'>+    "inhanifirohingya",</div><div class='add'>+    "diak",</div><div class='add'>+    "gong",</div><div class='add'>+    "ingrantha",</div><div class='add'>+    "bidic",</div><div class='add'>+    "xidstart",</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "xdigit",</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+    "upper",</div><div class='add'>+    "ascii",</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "mong",</div><div class='add'>+    "cased",</div><div class='add'>+    "inhiragana",</div><div class='add'>+    "sinhala",</div><div class='add'>+    "adlm",</div><div class='add'>+    "xsux",</div><div class='add'>+    "glagolitic",</div><div class='add'>+    "sterm",</div><div class='add'>+    "bamu",</div><div class='add'>+    "georgian",</div><div class='add'>+    "inosage",</div><div class='add'>+    "gunjalagondi",</div><div class='add'>+    "phoenician",</div><div class='add'>+    "inolduyghur",</div><div class='add'>+    "multani",</div><div class='add'>+    "kaithi",</div><div class='add'>+    "joincontrol",</div><div class='add'>+    "runic",</div><div class='add'>+    "ingeneralpunctuation",</div><div class='add'>+    "inmahajani",</div><div class='add'>+    "incyrillicsupplement",</div><div class='add'>+    "lowercaseletter",</div><div class='add'>+    "marchen",</div><div class='add'>+    "graphemelink",</div><div class='add'>+    "ingeorgian",</div><div class='add'>+    "khojki",</div><div class='add'>+    "cham",</div><div class='add'>+    "inogham",</div><div class='add'>+    "cher",</div><div class='add'>+    "chakma",</div><div class='add'>+    "inkaktoviknumerals",</div><div class='add'>+    "emoji",</div><div class='add'>+    "insiddham",</div><div class='add'>+    "cherokee",</div><div class='add'>+    "khar",</div><div class='add'>+    "inmongolian",</div><div class='add'>+    "innagmundari",</div><div class='add'>+    "incherokeesupplement",</div><div class='add'>+    "manichaean",</div><div class='add'>+    "inolchiki",</div><div class='add'>+    "inkhitansmallscript",</div><div class='add'>+    "quotationmark",</div><div class='add'>+    "vithkuqi",</div><div class='add'>+    "variationselector",</div><div class='add'>+    "adlam",</div><div class='add'>+    "inethiopic",</div><div class='add'>+    "graphemebase",</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    "age=11.0",</div><div class='add'>+    "age=12.1",</div><div class='add'>+    "age=10.0",</div><div class='add'>+    "age=12.0",</div><div class='add'>+    "age=13.0",</div><div class='add'>+    "age=1.1",</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    "casedletter",</div><div class='add'>+    "ingurmukhi",</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    "age=2.1",</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    "incjkunifiedideographsextensiona",</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    "age=2.0",</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    "lu",</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    "age=3.1",</div><div class='add'>+    "age=9.0",</div><div class='add'>+    "age=3.0",</div><div class='add'>+    "age=3.2",</div><div class='add'>+    "age=8.0",</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    "intamilsupplement",</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    "age=6.1",</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    "unknown",</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    "age=6.0",</div><div class='add'>+    "age=6.2",</div><div class='add'>+    "age=15.0",</div><div class='add'>+    "age=7.0",</div><div class='add'>+    "age=6.3",</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    "cwt",</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    "age=14.0",</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    "unassigned",</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    "age=5.1",</div><div class='add'>+    "age=5.0",</div><div class='add'>+    "age=5.2",</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    "diacritic",</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    "age=4.1",</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    "ahom",</div><div class='add'>+#ifdef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+    "age=4.0",</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+    "incjkunifiedideographsextensione",</div><div class='add'>+    "khmr",</div><div class='add'>+    "insinhala",</div><div class='add'>+    "inmiscellaneoustechnical",</div><div class='add'>+    "saur",</div><div class='add'>+    "guru",</div><div class='add'>+    "sundanese",</div><div class='add'>+    "punct",</div><div class='add'>+    "paucinhau",</div><div class='add'>+    "gurmukhi",</div><div class='add'>+    "chorasmian",</div><div class='add'>+    "logicalorderexception",</div><div class='add'>+    "khmer",</div><div class='add'>+    "limbu",</div><div class='add'>+    "chrs",</div><div class='add'>+    "oriya",</div><div class='add'>+    "inscriptionalpahlavi",</div><div class='add'>+    "incyrillicextendedd",</div><div class='add'>+    "incjkunifiedideographsextensionc",</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "cntrl",</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+    "space",</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "inlatinextendedadditional",</div><div class='add'>+    "insorasompeng",</div><div class='add'>+    "radical",</div><div class='add'>+    "emojimodifier",</div><div class='add'>+    "kharoshthi",</div><div class='add'>+    "n",</div><div class='add'>+    "math",</div><div class='add'>+    "goth",</div><div class='add'>+    "phnx",</div><div class='add'>+    "anatolianhieroglyphs",</div><div class='add'>+    "inenclosedalphanumerics",</div><div class='add'>+    "nandinagari",</div><div class='add'>+    "no",</div><div class='add'>+    "intangsa",</div><div class='add'>+    "nko",</div><div class='add'>+    "nkoo",</div><div class='add'>+    "ingreekandcoptic",</div><div class='add'>+    "p",</div><div class='add'>+    "grantha",</div><div class='add'>+    "decimalnumber",</div><div class='add'>+    "incjkunifiedideographs",</div><div class='add'>+    "intirhuta",</div><div class='add'>+    "inhatran",</div><div class='add'>+    "linb",</div><div class='add'>+    "mult",</div><div class='add'>+    "saurashtra",</div><div class='add'>+    "kthi",</div><div class='add'>+    "zanb",</div><div class='add'>+    "inbhaiksuki",</div><div class='add'>+    "innabataean",</div><div class='add'>+    "inphoenician",</div><div class='add'>+    "xpeo",</div><div class='add'>+    "inkanbun",</div><div class='add'>+    "inmeroitichieroglyphs",</div><div class='add'>+    "ahex",</div><div class='add'>+    "enclosingmark",</div><div class='add'>+    "sd",</div><div class='add'>+    "inelbasan",</div><div class='add'>+    "inenclosedideographicsupplement",</div><div class='add'>+    "sidd",</div><div class='add'>+    "linearb",</div><div class='add'>+    "cpmn",</div><div class='add'>+    "inenclosedalphanumericsupplement",</div><div class='add'>+    "bidicontrol",</div><div class='add'>+    "inphaistosdisc",</div><div class='add'>+    "limb",</div><div class='add'>+    "inkangxiradicals",</div><div class='add'>+    "lepc",</div><div class='add'>+    "braille",</div><div class='add'>+    "regionalindicator",</div><div class='add'>+    "inlowsurrogates",</div><div class='add'>+    "brah",</div><div class='add'>+    "inoldhungarian",</div><div class='add'>+    "beng",</div><div class='add'>+    "emojimodifierbase",</div><div class='add'>+    "inarabic",</div><div class='add'>+    "osage",</div><div class='add'>+    "inherited",</div><div class='add'>+    "incyprominoan",</div><div class='add'>+    "glag",</div><div class='add'>+    "medf",</div><div class='add'>+    "osma",</div><div class='add'>+    "indogra",</div><div class='add'>+    "arab",</div><div class='add'>+    "medefaidrin",</div><div class='add'>+    "inshorthandformatcontrols",</div><div class='add'>+    "phli",</div><div class='add'>+    "inimperialaramaic",</div><div class='add'>+    "emod",</div><div class='add'>+    "ingreekextended",</div><div class='add'>+    "inanatolianhieroglyphs",</div><div class='add'>+    "punctuation",</div><div class='add'>+    "graphemeextend",</div><div class='add'>+    "cwl",</div><div class='add'>+    "vith",</div><div class='add'>+    "ingeometricshapes",</div><div class='add'>+    "emojicomponent",</div><div class='add'>+    "dsrt",</div><div class='add'>+    "coptic",</div><div class='add'>+    "inkayahli",</div><div class='add'>+    "inoriya",</div><div class='add'>+    "inarabicpresentationformsa",</div><div class='add'>+    "inbasiclatin",</div><div class='add'>+    "incjkunifiedideographsextensiond",</div><div class='add'>+    "wara",</div><div class='add'>+    "sinh",</div><div class='add'>+    "sund",</div><div class='add'>+    "shavian",</div><div class='add'>+    "insundanesesupplement",</div><div class='add'>+    "inyezidi",</div><div class='add'>+    "bhks",</div><div class='add'>+    "bhaiksuki",</div><div class='add'>+    "inhanunoo",</div><div class='add'>+    "intangut",</div><div class='add'>+    "sogdian",</div><div class='add'>+    "inlatinextendedd",</div><div class='add'>+    "sogo",</div><div class='add'>+    "insinhalaarchaicnumbers",</div><div class='add'>+    "ideographic",</div><div class='add'>+    "ugar",</div><div class='add'>+    "deseret",</div><div class='add'>+    "odi",</div><div class='add'>+    "copt",</div><div class='add'>+    "imperialaramaic",</div><div class='add'>+    "insogdian",</div><div class='add'>+    "indingbats",</div><div class='add'>+    "format",</div><div class='add'>+    "ininscriptionalpahlavi",</div><div class='add'>+    "lyci",</div><div class='add'>+    "ininscriptionalparthian",</div><div class='add'>+    "grbase",</div><div class='add'>+    "lycian",</div><div class='add'>+    "inbatak",</div><div class='add'>+    "cprt",</div><div class='add'>+    "inunifiedcanadianaboriginalsyllabicsextendeda",</div><div class='add'>+    "mymr",</div><div class='add'>+    "myanmar",</div><div class='add'>+    "intibetan",</div><div class='add'>+    "intags",</div><div class='add'>+    "asciihexdigit",</div><div class='add'>+    "sentenceterminal",</div><div class='add'>+    "nand",</div><div class='add'>+    "inblockelements",</div><div class='add'>+    "inornamentaldingbats",</div><div class='add'>+    "inethiopicextendeda",</div><div class='add'>+    "innumberforms",</div><div class='add'>+    "cwcf",</div><div class='add'>+    "oidc",</div><div class='add'>+    "bopo",</div><div class='add'>+    "cuneiform",</div><div class='add'>+    "caseignorable",</div><div class='add'>+    "inoldpersian",</div><div class='add'>+    "cwu",</div><div class='add'>+    "inelymaic",</div><div class='add'>+    "insoyombo",</div><div class='add'>+    "ingeometricshapesextended",</div><div class='add'>+    "incjkcompatibility",</div><div class='add'>+    "inmyanmarextendedb",</div><div class='add'>+    "innushu",</div><div class='add'>+    "inkanaextendedb",</div><div class='add'>+    "olck",</div><div class='add'>+    "inbyzantinemusicalsymbols",</div><div class='add'>+    "olchiki",</div><div class='add'>+    "inkatakanaphoneticextensions",</div><div class='add'>+    "incoptic",</div><div class='add'>+    "oids",</div><div class='add'>+    "inarabicextendeda",</div><div class='add'>+    "modifierletter",</div><div class='add'>+    "incjksymbolsandpunctuation",</div><div class='add'>+    "olower",</div><div class='add'>+    "bopomofo",</div><div class='add'>+    "inlisu",</div><div class='add'>+    "inoldpermic",</div><div class='add'>+    "innoblock",</div><div class='add'>+    "ext",</div><div class='add'>+    "inunifiedcanadianaboriginalsyllabics",</div><div class='add'>+    "takri",</div><div class='add'>+    "inbraillepatterns",</div><div class='add'>+    "invai",</div><div class='add'>+    "alpha",</div><div class='add'>+    "inbalinese",</div><div class='add'>+    "sorasompeng",</div><div class='add'>+    "closepunctuation",</div><div class='add'>+    "hani",</div><div class='add'>+    "inmayannumerals",</div><div class='add'>+    "han",</div><div class='add'>+    "inmiscellaneousmathematicalsymbolsb",</div><div class='add'>+    "inlepcha",</div><div class='add'>+    "patsyn",</div><div class='add'>+    "inlisusupplement",</div><div class='add'>+    "insyriacsupplement",</div><div class='add'>+    "hano",</div><div class='add'>+    "newa",</div><div class='add'>+    "spacingmark",</div><div class='add'>+    "inpalmyrene",</div><div class='add'>+    "takr",</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "xposixpunct",</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+    "lower",</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "inkhojki",</div><div class='add'>+    "taile",</div><div class='add'>+    "assigned",</div><div class='add'>+    "hanunoo",</div><div class='add'>+    "hira",</div><div class='add'>+    "inarabicextendedc",</div><div class='add'>+    "newtailue",</div><div class='add'>+    "space",</div><div class='add'>+    "intelugu",</div><div class='add'>+    "lydi",</div><div class='add'>+    "idsb",</div><div class='add'>+    "extpict",</div><div class='add'>+    "lydian",</div><div class='add'>+    "inethiopicsupplement",</div><div class='add'>+    "sarb",</div><div class='add'>+    "ugaritic",</div><div class='add'>+    "inyiradicals",</div><div class='add'>+    "inphoneticextensions",</div><div class='add'>+    "sharada",</div><div class='add'>+    "zanabazarsquare",</div><div class='add'>+    "bugi",</div><div class='add'>+    "word",</div><div class='add'>+    "term",</div><div class='add'>+    "separator",</div><div class='add'>+    "ingeorgiansupplement",</div><div class='add'>+    "sogd",</div><div class='add'>+    "extender",</div><div class='add'>+    "shrd",</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "graph",</div><div class='add'>+#ifdef USE_UNICODE_PROPERTIES</div><div class='add'>+    "tnsa",</div><div class='add'>+    "tangsa",</div><div class='add'>+    "phag",</div><div class='add'>+    "dogra",</div><div class='add'>+    "inhanguljamo",</div><div class='add'>+    "inshavian",</div><div class='add'>+    "siddham",</div><div class='add'>+    "cf",</div><div class='add'>+    "inunifiedcanadianaboriginalsyllabicsextended",</div><div class='add'>+    "buginese",</div><div class='add'>+    "inmongoliansupplement",</div><div class='add'>+    "cyrl",</div><div class='add'>+    "inhanguljamoextendeda",</div><div class='add'>+    "pf",</div><div class='add'>+    "number",</div><div class='add'>+    "inphoneticextensionssupplement",</div><div class='add'>+    "dogr",</div><div class='add'>+    "mlym",</div><div class='add'>+    "incopticepactnumbers",</div><div class='add'>+    "malayalam",</div><div class='add'>+    "inbamum",</div><div class='add'>+    "nd",</div><div class='add'>+    "insuttonsignwriting",</div><div class='add'>+    "inethiopicextended",</div><div class='add'>+    "shaw",</div><div class='add'>+    "palmyrene",</div><div class='add'>+    "soyo",</div><div class='add'>+    "incjkunifiedideographsextensionh",</div><div class='add'>+    "sgnw",</div><div class='add'>+    "toto",</div><div class='add'>+    "caucasianalbanian",</div><div class='add'>+    "inmathematicalalphanumericsymbols",</div><div class='add'>+    "incjkunifiedideographsextensiong",</div><div class='add'>+    "hatran",</div><div class='add'>+    "taiviet",</div><div class='add'>+    "meroitichieroglyphs",</div><div class='add'>+    "ingeorgianextended",</div><div class='add'>+    "incjkunifiedideographsextensionf",</div><div class='add'>+    "oldpersian",</div><div class='add'>+    "induployan",</div><div class='add'>+    "incyrillicextendedb",</div><div class='add'>+    "dash",</div><div class='add'>+    "hatr",</div><div class='add'>+    "innyiakengpuachuehmong",</div><div class='add'>+    "incombiningdiacriticalmarks",</div><div class='add'>+    "nl",</div><div class='add'>+    "incombiningdiacriticalmarksforsymbols",</div><div class='add'>+    "khudawadi",</div><div class='add'>+    "incjkradicalssupplement",</div><div class='add'>+    "inglagolitic",</div><div class='add'>+    "orkh",</div><div class='add'>+    "syrc",</div><div class='add'>+    "surrogate",</div><div class='add'>+    "indevanagari",</div><div class='add'>+    "avestan",</div><div class='add'>+    "oldpermic",</div><div class='add'>+    "ethi",</div><div class='add'>+    "ogam",</div><div class='add'>+    "rohg",</div><div class='add'>+    "idstrinaryoperator",</div><div class='add'>+    "java",</div><div class='add'>+    "inphagspa",</div><div class='add'>+    "lepcha",</div><div class='add'>+    "indevanagariextendeda",</div><div class='add'>+    "intifinagh",</div><div class='add'>+    "intagalog",</div><div class='add'>+    "incombiningdiacriticalmarkssupplement",</div><div class='add'>+    "tale",</div><div class='add'>+    "inbrahmi",</div><div class='add'>+    "terminalpunctuation",</div><div class='add'>+    "insymbolsandpictographsextendeda",</div><div class='add'>+    "syriac",</div><div class='add'>+    "inbengali",</div><div class='add'>+    "nagm",</div><div class='add'>+    "extendedpictographic",</div><div class='add'>+    "buhd",</div><div class='add'>+    "javanese",</div><div class='add'>+    "taml",</div><div class='add'>+    "inbuginese",</div><div class='add'>+    "inlatin1supplement",</div><div class='add'>+    "ingothic",</div><div class='add'>+    "invariationselectors",</div><div class='add'>+    "hex",</div><div class='add'>+    "inverticalforms",</div><div class='add'>+    "ebase",</div><div class='add'>+    "incurrencysymbols",</div><div class='add'>+    "avst",</div><div class='add'>+    "osge",</div><div class='add'>+    "incombiningdiacriticalmarksextended",</div><div class='add'>+    "intaiviet",</div><div class='add'>+    "spaceseparator",</div><div class='add'>+    "softdotted",</div><div class='add'>+    "nchar",</div><div class='add'>+    "invedicextensions",</div><div class='add'>+    "inlimbu",</div><div class='add'>+    "olditalic",</div><div class='add'>+    "gujr",</div><div class='add'>+    "mathsymbol",</div><div class='add'>+    "incjkunifiedideographsextensionb",</div><div class='add'>+    "gujarati",</div><div class='add'>+    "phagspa",</div><div class='add'>+    "invariationselectorssupplement",</div><div class='add'>+    "currencysymbol",</div><div class='add'>+    "inlinearbsyllabary",</div><div class='add'>+    "wancho",</div><div class='add'>+    "inpaucinhau",</div><div class='add'>+    "other",</div><div class='add'>+    "otheridcontinue",</div><div class='add'>+    "sylo",</div><div class='add'>+    "zp",</div><div class='add'>+    "inaegeannumbers",</div><div class='add'>+    "warangciti",</div><div class='add'>+    "othernumber",</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "digit",</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+    "blank"</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    "nonspacingmark",</div><div class='add'>+    "titlecaseletter",</div><div class='add'>+    "inmeroiticcursive",</div><div class='add'>+    "wcho",</div><div class='add'>+    "graphemeclusterbreak=spacingmark",</div><div class='add'>+    "inletterlikesymbols",</div><div class='add'>+    "inottomansiyaqnumbers",</div><div class='add'>+    "intagbanwa",</div><div class='add'>+    "cyrillic",</div><div class='add'>+    "oalpha",</div><div class='add'>+    "graphemeclusterbreak=cr",</div><div class='add'>+    "narb",</div><div class='add'>+    "changeswhencasemapped",</div><div class='add'>+    "inbopomofo",</div><div class='add'>+    "graphemeclusterbreak=regionalindicator",</div><div class='add'>+    "otheralphabetic",</div><div class='add'>+    "noncharactercodepoint",</div><div class='add'>+    "oldhungarian",</div><div class='add'>+    "insymbolsforlegacycomputing",</div><div class='add'>+    "insmallformvariants",</div><div class='add'>+    "inhangulsyllables",</div><div class='add'>+    "emojipresentation",</div><div class='add'>+    "epres",</div><div class='add'>+    "inbassavah",</div><div class='add'>+    "indevanagariextended",</div><div class='add'>+    "inbuhid",</div><div class='add'>+    "tirhuta",</div><div class='add'>+    "inpsalterpahlavi",</div><div class='add'>+    "whitespace",</div><div class='add'>+    "finalpunctuation",</div><div class='add'>+    "orya",</div><div class='add'>+    "phlp",</div><div class='add'>+    "inbamumsupplement",</div><div class='add'>+    "buhid",</div><div class='add'>+    "paragraphseparator",</div><div class='add'>+    "inalphabeticpresentationforms",</div><div class='add'>+    "inlatinextendedg",</div><div class='add'>+    "elba",</div><div class='add'>+    "changeswhentitlecased",</div><div class='add'>+    "incombininghalfmarks",</div><div class='add'>+    "intangutcomponents",</div><div class='add'>+    "thaa",</div><div class='add'>+    "thai",</div><div class='add'>+    "oldturkic",</div><div class='add'>+    "thaana",</div><div class='add'>+    "inlatinextendedf",</div><div class='add'>+    "ougr",</div><div class='add'>+    "tang",</div><div class='add'>+    "inarabicmathematicalalphabeticsymbols",</div><div class='add'>+    "tagbanwa",</div><div class='add'>+    "tamil",</div><div class='add'>+    "khitansmallscript",</div><div class='add'>+    "mahj",</div><div class='add'>+    "mahajani",</div><div class='add'>+    "hang",</div><div class='add'>+    "tirh",</div><div class='add'>+    "sylotinagri",</div><div class='add'>+    "talu",</div><div class='add'>+    "nagmundari",</div><div class='add'>+    "deva",</div><div class='add'>+    "ingujarati",</div><div class='add'>+    "deprecated",</div><div class='add'>+    "inarabicpresentationformsb",</div><div class='add'>+    "devanagari",</div><div class='add'>+    "ingunjalagondi",</div><div class='add'>+    "graphemeclusterbreak=t",</div><div class='add'>+    "graphemeclusterbreak=lvt",</div><div class='add'>+    "taitham",</div><div class='add'>+    "nbat",</div><div class='add'>+    "telu",</div><div class='add'>+    "hiragana",</div><div class='add'>+    "nabataean",</div><div class='add'>+    "inrejang",</div><div class='add'>+    "intangutsupplement",</div><div class='add'>+    "khoj",</div><div class='add'>+    "hmng",</div><div class='add'>+    "cyprominoan",</div><div class='add'>+    "inhebrew",</div><div class='add'>+    "inmathematicaloperators",</div><div class='add'>+    "inarabicsupplement",</div><div class='add'>+    "inenclosedcjklettersandmonths",</div><div class='add'>+    "changeswhenlowercased",</div><div class='add'>+    "tangut",</div><div class='add'>+    "elbasan",</div><div class='add'>+    "osmanya",</div><div class='add'>+    "insuperscriptsandsubscripts",</div><div class='add'>+    "graphemeclusterbreak=extend",</div><div class='add'>+    "graphemeclusterbreak=prepend",</div><div class='add'>+    "nshu",</div><div class='add'>+    "otherlowercase",</div><div class='add'>+    "inethiopicextendedb",</div><div class='add'>+    "otherletter",</div><div class='add'>+    "kayahli",</div><div class='add'>+    "inplayingcards",</div><div class='add'>+    "elym",</div><div class='add'>+    "graphemeclusterbreak=l",</div><div class='add'>+    "graphemeclusterbreak=control",</div><div class='add'>+    "ogrext",</div><div class='add'>+    "elymaic",</div><div class='add'>+    "changeswhenuppercased",</div><div class='add'>+    "inalchemicalsymbols",</div><div class='add'>+    "oldsogdian",</div><div class='add'>+    "otheridstart",</div><div class='add'>+    "insupplementalarrowsa",</div><div class='add'>+    "invithkuqi",</div><div class='add'>+    "symbol",</div><div class='add'>+    "inarabicextendedb",</div><div class='add'>+    "cypriot",</div><div class='add'>+    "any",</div><div class='add'>+    "otheruppercase",</div><div class='add'>+    "rjng",</div><div class='add'>+    "wspace",</div><div class='add'>+    "inindicsiyaqnumbers",</div><div class='add'>+    "inprivateusearea",</div><div class='add'>+    "othersymbol",</div><div class='add'>+    "oupper",</div><div class='add'>+    "signwriting",</div><div class='add'>+    "nushu",</div><div class='add'>+    "hmnp",</div><div class='add'>+    "upper",</div><div class='add'>+    "insupplementalarrowsc",</div><div class='add'>+    "omath",</div><div class='add'>+    "modifiersymbol",</div><div class='add'>+    "hebr",</div><div class='add'>+    "inhalfwidthandfullwidthforms",</div><div class='add'>+    "insupplementalmathematicaloperators",</div><div class='add'>+    "inpahawhhmong",</div><div class='add'>+    "alphabetic",</div><div class='add'>+    "uppercase",</div><div class='add'>+    "dupl",</div><div class='add'>+    "ogham",</div><div class='add'>+    "dashpunctuation",</div><div class='add'>+    "hangul",</div><div class='add'>+    "inhanguljamoextendedb",</div><div class='add'>+    "bassavah",</div><div class='add'>+    "aghb",</div><div class='add'>+    "hung",</div><div class='add'>+    "hexdigit",</div><div class='add'>+    "incypriotsyllabary",</div><div class='add'>+    "indivesakuru",</div><div class='add'>+    "tibt",</div><div class='add'>+    "inlatinextendedb",</div><div class='add'>+    "hluw",</div><div class='add'>+    "tibetan",</div><div class='add'>+    "inyisyllables",</div><div class='add'>+    "oldnortharabian",</div><div class='add'>+    "defaultignorablecodepoint",</div><div class='add'>+    "inhighprivateusesurrogates",</div><div class='add'>+    "soyombo",</div><div class='add'>+    "otherdefaultignorablecodepoint",</div><div class='add'>+    "pahawhhmong",</div><div class='add'>+    "unifiedideograph",</div><div class='add'>+    "othermath",</div><div class='add'>+    "changeswhencasefolded",</div><div class='add'>+    "inmahjongtiles",</div><div class='add'>+    "dep",</div><div class='add'>+    "divesakuru",</div><div class='add'>+    "graphemeclusterbreak=lf",</div><div class='add'>+    "uppercaseletter",</div><div class='add'>+    "insupplementalpunctuation",</div><div class='add'>+    "ethiopic",</div><div class='add'>+    "inyijinghexagramsymbols",</div><div class='add'>+    "ecomp",</div><div class='add'>+    "inglagoliticsupplement",</div><div class='add'>+    "inbopomofoextended",</div><div class='add'>+    "injavanese",</div><div class='add'>+    "otherpunctuation",</div><div class='add'>+    "tifinagh",</div><div class='add'>+    "tfng",</div><div class='add'>+    "hanifirohingya",</div><div class='add'>+    "tavt",</div><div class='add'>+    "inboxdrawing",</div><div class='add'>+    "oldsoutharabian",</div><div class='add'>+    "inegyptianhieroglyphs",</div><div class='add'>+    "inegyptianhieroglyphformatcontrols",</div><div class='add'>+    "tagb",</div><div class='add'>+    "rejang",</div><div class='add'>+    "tglg",</div><div class='add'>+    "tagalog",</div><div class='add'>+    "othergraphemeextend",</div><div class='add'>+    "insupplementaryprivateuseareaa",</div><div class='add'>+    "inhighsurrogates",</div><div class='add'>+    "hebrew",</div><div class='add'>+    "duployan",</div><div class='add'>+    "graphemeclusterbreak=v",</div><div class='add'>+    "graphemeclusterbreak=lv",</div><div class='add'>+    "insupplementalarrowsb",</div><div class='add'>+    "graphemeclusterbreak=zwj",</div><div class='add'>+    "telugu",</div><div class='add'>+    "zyyy",</div><div class='add'>+    "olduyghur",</div><div class='add'>+    "inhangulcompatibilityjamo",</div><div class='add'>+    "openpunctuation",</div><div class='add'>+    "hyphen",</div><div class='add'>+    "insupplementalsymbolsandpictographs",</div><div class='add'>+    "egyp",</div><div class='add'>+    "nyiakengpuachuehmong",</div><div class='add'>+    "egyptianhieroglyphs",</div><div class='add'>+    "insupplementaryprivateuseareab"</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+  };</div><div class='add'>+#define uniname2ctype_pool ((const char *) &amp;uniname2ctype_pool_contents)</div><div class='add'>+const struct uniname2ctype_struct *</div><div class='add'>+uniname2ctype_p (register const char *str, register size_t len)</div><div class='add'>+{</div><div class='add'>+  static const struct uniname2ctype_struct wordlist[] =</div><div class='add'>+    {</div><div class='add'>+#ifdef USE_UNICODE_PROPERTIES</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str11), 111},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str17), 111},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str22), 152},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str25), 184},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str33), 218},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str35), 186},</div><div class='add'>+      {uniname2ctype_offset(str36), 34},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str45), 173},</div><div class='add'>+      {uniname2ctype_offset(str46), 28},</div><div class='add'>+      {uniname2ctype_offset(str47), 61},</div><div class='add'>+      {uniname2ctype_offset(str48), 95},</div><div class='add'>+      {uniname2ctype_offset(str49), 95},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str52), 346},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str55), 21},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str64), 44},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str66), 333},</div><div class='add'>+      {uniname2ctype_offset(str67), 52},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str71), 181},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str75), 22},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str83), 184},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str86), 31},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str90), 230},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str92), 45},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str94), 33},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str100), 149},</div><div class='add'>+      {uniname2ctype_offset(str101), 513},</div><div class='add'>+      {uniname2ctype_offset(str102), 108},</div><div class='add'>+      {uniname2ctype_offset(str103), 263},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str107), 31},</div><div class='add'>+      {uniname2ctype_offset(str108), 77},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str111), 189},</div><div class='add'>+      {uniname2ctype_offset(str112), 189},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str115), 149},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str117), 98},</div><div class='add'>+      {uniname2ctype_offset(str118), 77},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str122), 212},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str129), 187},</div><div class='add'>+      {uniname2ctype_offset(str130), 42},</div><div class='add'>+      {uniname2ctype_offset(str131), 172},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str134), 497},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str139), 170},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str145), 516},</div><div class='add'>+      {uniname2ctype_offset(str146), 575},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str148), 580},</div><div class='add'>+      {uniname2ctype_offset(str149), 535},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str151), 18},</div><div class='add'>+      {uniname2ctype_offset(str152), 169},</div><div class='add'>+      {uniname2ctype_offset(str153), 160},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str158), 278},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str161), 327},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str177), 352},</div><div class='add'>+      {uniname2ctype_offset(str178), 563},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str183), 75},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str186), 27},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str190), 208},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str203), 360},</div><div class='add'>+      {uniname2ctype_offset(str204), 488},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str210), 581},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str212), 365},</div><div class='add'>+      {uniname2ctype_offset(str213), 115},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str218), 549},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str226), 171},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str230), 530},</div><div class='add'>+      {uniname2ctype_offset(str231), 31},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str236), 25},</div><div class='add'>+      {uniname2ctype_offset(str237), 194},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str246), 32},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str250), 40},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str253), 102},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str260), 568},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str263), 161},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str265), 19},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str267), 79},</div><div class='add'>+      {uniname2ctype_offset(str268), 357},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str270), 270},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str274), 567},</div><div class='add'>+      {uniname2ctype_offset(str275), 517},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str281), 321},</div><div class='add'>+      {uniname2ctype_offset(str282), 40},</div><div class='add'>+      {uniname2ctype_offset(str283), 79},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str285), 537},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str287), 144},</div><div class='add'>+      {uniname2ctype_offset(str288), 144},</div><div class='add'>+      {uniname2ctype_offset(str289), 560},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str293), 218},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str297), 212},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str301), 395},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str311), 325},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str313), 456},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str315), 243},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str320), 271},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str322), 129},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str328), 334},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str331), 76},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str335), 561},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str338), 332},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str340), 76},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str342), 349},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str345), 53},</div><div class='add'>+      {uniname2ctype_offset(str346), 270},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str348), 426},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str352), 533},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str362), 163},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str366), 44},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str373), 160},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str381), 554},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str386), 371},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str399), 330},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str401), 548},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str404), 81},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str418), 108},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str426), 163},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str430), 55},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str442), 14},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str445), 23},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str462), 46},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str468), 169},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str470), 22},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str475), 524},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str480), 457},</div><div class='add'>+      {uniname2ctype_offset(str481), 188},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str486), 476},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str488), 588},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str491), 470},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str500), 127},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str504), 187},</div><div class='add'>+      {uniname2ctype_offset(str505), 249},</div><div class='add'>+      {uniname2ctype_offset(str506), 24},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str509), 24},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str511), 463},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str520), 423},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str533), 230},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str538), 91},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str541), 553},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str543), 91},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str556), 546},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str558), 350},</div><div class='add'>+      {uniname2ctype_offset(str559), 70},</div><div class='add'>+      {uniname2ctype_offset(str560), 515},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str565), 624},</div><div class='add'>+      {uniname2ctype_offset(str566), 37},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str568), 113},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str572), 502},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str577), 611},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str579), 106},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str582), 406},</div><div class='add'>+      {uniname2ctype_offset(str583), 480},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str590), 74},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str594), 168},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str596), 622},</div><div class='add'>+      {uniname2ctype_offset(str597), 146},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str600), 490},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str602), 70},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str604), 579},</div><div class='add'>+      {uniname2ctype_offset(str605), 629},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str608), 637},</div><div class='add'>+      {uniname2ctype_offset(str609), 229},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str614), 612},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str624), 195},</div><div class='add'>+      {uniname2ctype_offset(str625), 447},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str630), 29},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str636), 543},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str639), 49},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str642), 19},</div><div class='add'>+      {uniname2ctype_offset(str643), 564},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str645), 485},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str647), 192},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str650), 487},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str657), 51},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str660), 268},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str672), 335},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str675), 68},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str678), 171},</div><div class='add'>+      {uniname2ctype_offset(str679), 607},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str683), 267},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str692), 69},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str695), 551},</div><div class='add'>+      {uniname2ctype_offset(str696), 175},</div><div class='add'>+      {uniname2ctype_offset(str697), 399},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str700), 236},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str703), 527},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str705), 347},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str707), 158},</div><div class='add'>+      {uniname2ctype_offset(str708), 587},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str713), 376},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str720), 72},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str737), 7},</div><div class='add'>+      {uniname2ctype_offset(str738), 373},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str742), 6},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str745), 269},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str753), 240},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str755), 514},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str760), 431},</div><div class='add'>+      {uniname2ctype_offset(str761), 167},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str766), 156},</div><div class='add'>+      {uniname2ctype_offset(str767), 608},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str771), 167},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str776), 268},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str783), 156},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str787), 256},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str791), 193},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str794), 589},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str797), 50},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str799), 617},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str802), 13},</div><div class='add'>+      {uniname2ctype_offset(str803), 593},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str809), 446},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str814), 493},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str818), 398},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str821), 482},</div><div class='add'>+      {uniname2ctype_offset(str822), 595},</div><div class='add'>+      {uniname2ctype_offset(str823), 47},</div><div class='add'>+      {uniname2ctype_offset(str824), 112},</div><div class='add'>+      {uniname2ctype_offset(str825), 444},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str828), 596},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str838), 157},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str842), 58},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str845), 66},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str847), 48},</div><div class='add'>+      {uniname2ctype_offset(str848), 178},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str855), 67},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str857), 319},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str875), 369},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str886), 404},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str895), 412},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str898), 500},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str900), 621},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str906), 521},</div><div class='add'>+      {uniname2ctype_offset(str907), 449},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str920), 419},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str924), 68},</div><div class='add'>+      {uniname2ctype_offset(str925), 599},</div><div class='add'>+      {uniname2ctype_offset(str926), 344},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str928), 540},</div><div class='add'>+      {uniname2ctype_offset(str929), 461},</div><div class='add'>+      {uniname2ctype_offset(str930), 41},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str946), 136},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str961), 2},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str963), 257},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str974), 510},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str986), 370},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str994), 85},</div><div class='add'>+      {uniname2ctype_offset(str995), 104},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1010), 26},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1013), 495},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1015), 484},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1021), 67},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1024), 53},</div><div class='add'>+      {uniname2ctype_offset(str1025), 459},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1028), 136},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1032), 380},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1035), 322},</div><div class='add'>+      {uniname2ctype_offset(str1036), 569},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1049), 173},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1067), 102},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1072), 197},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1081), 414},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1085), 259},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1087), 600},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1089), 115},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1095), 250},</div><div class='add'>+      {uniname2ctype_offset(str1096), 71},</div><div class='add'>+      {uniname2ctype_offset(str1097), 541},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1102), 523},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1104), 228},</div><div class='add'>+      {uniname2ctype_offset(str1105), 217},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1107), 542},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1109), 239},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1114), 69},</div><div class='add'>+      {uniname2ctype_offset(str1115), 11},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1119), 106},</div><div class='add'>+      {uniname2ctype_offset(str1120), 60},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1134), 425},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1140), 93},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1142), 206},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1145), 137},</div><div class='add'>+      {uniname2ctype_offset(str1146), 131},</div><div class='add'>+      {uniname2ctype_offset(str1147), 266},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1149), 158},</div><div class='add'>+      {uniname2ctype_offset(str1150), 98},</div><div class='add'>+      {uniname2ctype_offset(str1151), 498},</div><div class='add'>+      {uniname2ctype_offset(str1152), 217},</div><div class='add'>+      {uniname2ctype_offset(str1153), 138},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1156), 529},</div><div class='add'>+      {uniname2ctype_offset(str1157), 203},</div><div class='add'>+      {uniname2ctype_offset(str1158), 166},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1164), 240},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1168), 104},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1170), 389},</div><div class='add'>+      {uniname2ctype_offset(str1171), 536},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1174), 326},</div><div class='add'>+      {uniname2ctype_offset(str1175), 26},</div><div class='add'>+      {uniname2ctype_offset(str1176), 208},</div><div class='add'>+      {uniname2ctype_offset(str1177), 74},</div><div class='add'>+      {uniname2ctype_offset(str1178), 353},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1180), 183},</div><div class='add'>+      {uniname2ctype_offset(str1181), 151},</div><div class='add'>+      {uniname2ctype_offset(str1182), 359},</div><div class='add'>+      {uniname2ctype_offset(str1183), 101},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1185), 170},</div><div class='add'>+      {uniname2ctype_offset(str1186), 597},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1190), 272},</div><div class='add'>+      {uniname2ctype_offset(str1191), 545},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1197), 101},</div><div class='add'>+      {uniname2ctype_offset(str1198), 135},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1203), 366},</div><div class='add'>+      {uniname2ctype_offset(str1204), 609},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1207), 462},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1209), 186},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1212), 379},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1223), 584},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1227), 243},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1229), 235},</div><div class='add'>+      {uniname2ctype_offset(str1230), 267},</div><div class='add'>+      {uniname2ctype_offset(str1231), 206},</div><div class='add'>+      {uniname2ctype_offset(str1232), 355},</div><div class='add'>+      {uniname2ctype_offset(str1233), 73},</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1234), 298},</div><div class='add'>+      {uniname2ctype_offset(str1235), 300},</div><div class='add'>+      {uniname2ctype_offset(str1236), 297},</div><div class='add'>+      {uniname2ctype_offset(str1237), 299},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1241), 301},</div><div class='add'>+      {uniname2ctype_offset(str1242), 279},</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1243), 25},</div><div class='add'>+      {uniname2ctype_offset(str1244), 341},</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+      {-1},</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1245), 281},</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1246), 435},</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+      {-1},</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1247), 280},</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1248), 30},</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1249), 283},</div><div class='add'>+      {uniname2ctype_offset(str1250), 296},</div><div class='add'>+      {uniname2ctype_offset(str1251), 282},</div><div class='add'>+      {uniname2ctype_offset(str1252), 284},</div><div class='add'>+      {uniname2ctype_offset(str1253), 295},</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1254), 566},</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+      {-1},</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1255), 291},</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1256), 278},</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1257), 290},</div><div class='add'>+      {uniname2ctype_offset(str1258), 292},</div><div class='add'>+      {uniname2ctype_offset(str1259), 303},</div><div class='add'>+      {uniname2ctype_offset(str1260), 294},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1262), 293},</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1263), 64},</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1265), 302},</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1266), 21},</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1267), 288},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1269), 287},</div><div class='add'>+      {uniname2ctype_offset(str1270), 289},</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1271), 250},</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1273), 286},</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1274), 200},</div><div class='add'>+#ifndef USE_UNICODE_AGE_PROPERTIES</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#else /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1275), 285},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#endif /* USE_UNICODE_AGE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str1282), 635},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1285), 105},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1289), 348},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1292), 397},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1297), 145},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1300), 86},</div><div class='add'>+      {uniname2ctype_offset(str1301), 141},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1306), 15},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1314), 193},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1317), 86},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1328), 227},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1331), 263},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1340), 105},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1343), 120},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1349), 227},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1352), 88},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1354), 164},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1356), 605},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1358), 633},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1360), 3},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1365), 387},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1367), 534},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1369), 258},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1373), 274},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1375), 135},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1380), 35},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1384), 56},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1387), 113},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1392), 138},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1400), 201},</div><div class='add'>+      {uniname2ctype_offset(str1401), 400},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1407), 224},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1409), 38},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1415), 576},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1419), 140},</div><div class='add'>+      {uniname2ctype_offset(str1420), 140},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1422), 324},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1426), 39},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1428), 181},</div><div class='add'>+      {uniname2ctype_offset(str1429), 36},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1438), 437},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1442), 544},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1448), 508},</div><div class='add'>+      {uniname2ctype_offset(str1449), 122},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1451), 203},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1454), 145},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1457), 166},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1460), 215},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1462), 559},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1470), 507},</div><div class='add'>+      {uniname2ctype_offset(str1471), 509},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1474), 134},</div><div class='add'>+      {uniname2ctype_offset(str1475), 429},</div><div class='add'>+      {uniname2ctype_offset(str1476), 511},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1480), 247},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1489), 33},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1495), 262},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1497), 499},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1499), 620},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1501), 196},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1507), 122},</div><div class='add'>+      {uniname2ctype_offset(str1508), 231},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1517), 619},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1520), 239},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1524), 486},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1529), 120},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1531), 422},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1533), 142},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1536), 127},</div><div class='add'>+      {uniname2ctype_offset(str1537), 271},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1542), 468},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1547), 168},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1549), 522},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1557), 85},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1563), 275},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1565), 329},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1570), 210},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1572), 115},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1577), 570},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1580), 131},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1582), 219},</div><div class='add'>+      {uniname2ctype_offset(str1583), 125},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1587), 550},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1597), 81},</div><div class='add'>+      {uniname2ctype_offset(str1598), 219},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1607), 592},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1613), 164},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1617), 505},</div><div class='add'>+      {uniname2ctype_offset(str1618), 274},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1622), 388},</div><div class='add'>+      {uniname2ctype_offset(str1623), 573},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1629), 39},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1635), 72},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1643), 62},</div><div class='add'>+      {uniname2ctype_offset(str1644), 235},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1654), 403},</div><div class='add'>+      {uniname2ctype_offset(str1655), 276},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1657), 114},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1662), 129},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1664), 451},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1671), 343},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1675), 472},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1677), 317},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1682), 634},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1684), 199},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1686), 93},</div><div class='add'>+      {uniname2ctype_offset(str1687), 141},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1691), 124},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1699), 382},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1701), 525},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1704), 207},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1714), 207},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1722), 362},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1724), 582},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1728), 221},</div><div class='add'>+      {uniname2ctype_offset(str1729), 445},</div><div class='add'>+      {uniname2ctype_offset(str1730), 222},</div><div class='add'>+      {uniname2ctype_offset(str1731), 538},</div><div class='add'>+      {uniname2ctype_offset(str1732), 249},</div><div class='add'>+      {uniname2ctype_offset(str1733), 123},</div><div class='add'>+      {uniname2ctype_offset(str1734), 114},</div><div class='add'>+      {uniname2ctype_offset(str1735), 260},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1740), 129},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1742), 161},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1745), 528},</div><div class='add'>+      {uniname2ctype_offset(str1746), 405},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1750), 20},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1752), 519},</div><div class='add'>+      {uniname2ctype_offset(str1753), 148},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1757), 518},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1766), 73},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1768), 148},</div><div class='add'>+      {uniname2ctype_offset(str1769), 377},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1776), 126},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1781), 556},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1788), 97},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1793), 97},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1806), 351},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1810), 640},</div><div class='add'>+      {uniname2ctype_offset(str1811), 247},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1813), 266},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1821), 224},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1828), 402},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1838), 623},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1841), 460},</div><div class='add'>+      {uniname2ctype_offset(str1842), 394},</div><div class='add'>+      {uniname2ctype_offset(str1843), 65},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1845), 265},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1848), 109},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1851), 137},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1866), 61},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1871), 494},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1881), 63},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1888), 531},</div><div class='add'>+      {uniname2ctype_offset(str1889), 555},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1896), 626},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1902), 434},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1904), 455},</div><div class='add'>+      {uniname2ctype_offset(str1905), 590},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1912), 586},</div><div class='add'>+      {uniname2ctype_offset(str1913), 143},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1916), 594},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1924), 143},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1929), 432},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1932), 415},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1935), 264},</div><div class='add'>+      {uniname2ctype_offset(str1936), 338},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1941), 27},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1950), 424},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1956), 252},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1958), 109},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1964), 440},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1967), 492},</div><div class='add'>+      {uniname2ctype_offset(str1968), 644},</div><div class='add'>+      {uniname2ctype_offset(str1969), 251},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1974), 358},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1981), 176},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1985), 408},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1988), 441},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str1991), 1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1993), 375},</div><div class='add'>+      {uniname2ctype_offset(str1994), 175},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str1996), 42},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2001), 110},</div><div class='add'>+      {uniname2ctype_offset(str2002), 598},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2004), 110},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2006), 410},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2010), 378},</div><div class='add'>+      {uniname2ctype_offset(str2011), 269},</div><div class='add'>+      {uniname2ctype_offset(str2012), 565},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2014), 336},</div><div class='add'>+      {uniname2ctype_offset(str2015), 117},</div><div class='add'>+      {uniname2ctype_offset(str2016), 209},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2023), 32},</div><div class='add'>+      {uniname2ctype_offset(str2024), 506},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2026), 176},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2033), 8},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2040), 539},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2042), 121},</div><div class='add'>+      {uniname2ctype_offset(str2043), 17},</div><div class='add'>+      {uniname2ctype_offset(str2044), 117},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2047), 107},</div><div class='add'>+      {uniname2ctype_offset(str2048), 526},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2062), 130},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2070), 9},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2073), 345},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2077), 150},</div><div class='add'>+      {uniname2ctype_offset(str2078), 256},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2090), 277},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2092), 150},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2095), 356},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2103), 162},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2110), 123},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2114), 439},</div><div class='add'>+      {uniname2ctype_offset(str2115), 384},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2117), 174},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2128), 215},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2135), 128},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2137), 12},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2141), 244},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2145), 52},</div><div class='add'>+      {uniname2ctype_offset(str2146), 416},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2149), 221},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2163), 251},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2165), 174},</div><div class='add'>+      {uniname2ctype_offset(str2166), 5},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2174), 233},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2178), 233},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2181), 139},</div><div class='add'>+      {uniname2ctype_offset(str2182), 216},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2195), 354},</div><div class='add'>+      {uniname2ctype_offset(str2196), 496},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2207), 196},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2211), 20},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2216), 367},</div><div class='add'>+      {uniname2ctype_offset(str2217), 128},</div><div class='add'>+      {uniname2ctype_offset(str2218), 547},</div><div class='add'>+      {uniname2ctype_offset(str2219), 78},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2224), 453},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2228), 43},</div><div class='add'>+      {uniname2ctype_offset(str2229), 35},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2232), 385},</div><div class='add'>+      {uniname2ctype_offset(str2233), 216},</div><div class='add'>+      {uniname2ctype_offset(str2234), 92},</div><div class='add'>+      {uniname2ctype_offset(str2235), 489},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2241), 92},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2244), 443},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2247), 36},</div><div class='add'>+      {uniname2ctype_offset(str2248), 602},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2276), 418},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2278), 124},</div><div class='add'>+      {uniname2ctype_offset(str2279), 192},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2283), 214},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2296), 639},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2305), 205},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2308), 234},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2312), 177},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2315), 601},</div><div class='add'>+      {uniname2ctype_offset(str2316), 638},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2318), 202},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2321), 153},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2323), 172},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2327), 381},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2331), 636},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2333), 134},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2343), 591},</div><div class='add'>+      {uniname2ctype_offset(str2344), 442},</div><div class='add'>+      {uniname2ctype_offset(str2345), 241},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2353), 202},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2361), 606},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2364), 323},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2373), 37},</div><div class='add'>+      {uniname2ctype_offset(str2374), 392},</div><div class='add'>+      {uniname2ctype_offset(str2375), 197},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2397), 421},</div><div class='add'>+      {uniname2ctype_offset(str2398), 413},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2405), 165},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2414), 82},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2427), 23},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2433), 339},</div><div class='add'>+      {uniname2ctype_offset(str2434), 154},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2437), 194},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2440), 100},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2451), 103},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2454), 220},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2460), 257},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2464), 159},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2470), 448},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2475), 142},</div><div class='add'>+      {uniname2ctype_offset(str2476), 558},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2478), 417},</div><div class='add'>+      {uniname2ctype_offset(str2479), 361},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2481), 386},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2500), 121},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2506), 532},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2511), 244},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2513), 630},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2530), 82},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2534), 340},</div><div class='add'>+      {uniname2ctype_offset(str2535), 237},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2545), 277},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2548), 118},</div><div class='add'>+      {uniname2ctype_offset(str2549), 159},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2551), 89},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2564), 372},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2567), 318},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2570), 491},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2572), 473},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2574), 246},</div><div class='add'>+      {uniname2ctype_offset(str2575), 474},</div><div class='add'>+      {uniname2ctype_offset(str2576), 275},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2582), 391},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2588), 154},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2602), 210},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2606), 374},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2608), 458},</div><div class='add'>+      {uniname2ctype_offset(str2609), 55},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2625), 262},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2648), 254},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2652), 383},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2656), 368},</div><div class='add'>+      {uniname2ctype_offset(str2657), 112},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2665), 87},</div><div class='add'>+      {uniname2ctype_offset(str2666), 50},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2670), 632},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2674), 87},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2688), 139},</div><div class='add'>+      {uniname2ctype_offset(str2689), 641},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2694), 48},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2705), 481},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2726), 226},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2750), 557},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2761), 18},</div><div class='add'>+      {uniname2ctype_offset(str2762), 265},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2765), 133},</div><div class='add'>+      {uniname2ctype_offset(str2766), 54},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2769), 483},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2772), 199},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2775), 38},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2786), 4},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2793), 34},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2801), 29},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2808), 512},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2810), 226},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2816), 310},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2821), 393},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2830), 614},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2834), 364},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2836), 78},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2847), 248},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2852), 305},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2855), 190},</div><div class='add'>+      {uniname2ctype_offset(str2856), 66},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2859), 427},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2867), 309},</div><div class='add'>+      {uniname2ctype_offset(str2868), 248},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2871), 254},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2879), 204},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2886), 631},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2902), 477},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2904), 464},</div><div class='add'>+      {uniname2ctype_offset(str2905), 273},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2907), 273},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2909), 577},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2911), 450},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2941), 363},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2953), 198},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2964), 520},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2966), 238},</div><div class='add'>+      {uniname2ctype_offset(str2967), 43},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2970), 88},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2980), 195},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2984), 574},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str2986), 118},</div><div class='add'>+      {uniname2ctype_offset(str2987), 54},</div><div class='add'>+      {uniname2ctype_offset(str2988), 471},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str2997), 603},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3001), 180},</div><div class='add'>+      {uniname2ctype_offset(str3002), 64},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3005), 475},</div><div class='add'>+      {uniname2ctype_offset(str3006), 583},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3015), 83},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3018), 94},</div><div class='add'>+      {uniname2ctype_offset(str3019), 165},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3026), 83},</div><div class='add'>+      {uniname2ctype_offset(str3027), 503},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3035), 232},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3042), 211},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3045), 615},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3048), 119},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3052), 89},</div><div class='add'>+      {uniname2ctype_offset(str3053), 229},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3058), 185},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3067), 185},</div><div class='add'>+      {uniname2ctype_offset(str3068), 99},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3071), 198},</div><div class='add'>+      {uniname2ctype_offset(str3072), 133},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3082), 130},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3084), 237},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3086), 84},</div><div class='add'>+      {uniname2ctype_offset(str3087), 342},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3091), 261},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3099), 478},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3104), 84},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3106), 562},</div><div class='add'>+      {uniname2ctype_offset(str3107), 313},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3109), 315},</div><div class='add'>+      {uniname2ctype_offset(str3110), 152},</div><div class='add'>+      {uniname2ctype_offset(str3111), 191},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3118), 90},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3123), 107},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3125), 191},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3135), 452},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3142), 585},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3145), 183},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3155), 182},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3157), 231},</div><div class='add'>+      {uniname2ctype_offset(str3158), 328},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3176), 396},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3180), 331},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3193), 433},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3209), 62},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3212), 211},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3215), 180},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3218), 125},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3237), 390},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3239), 308},</div><div class='add'>+      {uniname2ctype_offset(str3240), 304},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3248), 213},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3254), 252},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3265), 610},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3267), 28},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3275), 146},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3284), 618},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3287), 223},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3297), 311},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3303), 307},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3313), 255},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3320), 223},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3328), 63},</div><div class='add'>+      {uniname2ctype_offset(str3329), 625},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3331), 222},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3338), 264},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3348), 407},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3350), 501},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3355), 47},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3360), 337},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3371), 126},</div><div class='add'>+      {uniname2ctype_offset(str3372), 16},</div><div class='add'>+      {uniname2ctype_offset(str3373), 253},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3377), 147},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3391), 238},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3396), 613},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3405), 469},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3416), 51},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3428), 253},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3433), 205},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3436), 213},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3455), 225},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3458), 10},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3460), 627},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3483), 245},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3502), 49},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3504), 80},</div><div class='add'>+      {uniname2ctype_offset(str3505), 479},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3511), 411},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3532), 578},</div><div class='add'>+      {uniname2ctype_offset(str3533), 57},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3558), 59},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3580), 179},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3590), 103},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3613), 41},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3618), 99},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3648), 465},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3659), 178},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3664), 177},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3686), 204},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3689), 246},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3698), 504},</div><div class='add'>+      {uniname2ctype_offset(str3699), 552},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3701), 96},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3705), 320},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3710), 201},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3713), 96},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3721), 438},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3744), 190},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3754), 71},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3766), 467},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3799), 214},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3807), 260},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3842), 182},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3845), 259},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3850), 245},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3854), 65},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3857), 616},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3868), 261},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3881), 228},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3884), 306},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3891), 30},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3924), 420},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3942), 100},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str3944), 436},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3949), 276},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3976), 604},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str3998), 430},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4007), 454},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4106), 45},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4116), 132},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str4127), 132},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4169), 220},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4231), 153},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4308), 401},</div><div class='add'>+      {uniname2ctype_offset(str4309), 162},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4348), 571},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4361), 572},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4459), 119},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4487), 147},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4604), 116},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4626), 116},</div><div class='add'>+      {uniname2ctype_offset(str4627), 255},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str4674), 642},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4683), 466},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4695), 80},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4734), 179},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4755), 312},</div><div class='add'>+      {uniname2ctype_offset(str4756), 314},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4772), 409},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str4783), 316},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4810), 90},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4898), 75},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4982), 232},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str4986), 428},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str5018), 46},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1},</div><div class='add'>+      {uniname2ctype_offset(str5038), 242},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str5134), 628},</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#ifndef USE_UNICODE_PROPERTIES</div><div class='add'>+      {uniname2ctype_offset(str6), 12},</div><div class='add'>+      {uniname2ctype_offset(str7), 7},</div><div class='add'>+      {uniname2ctype_offset(str8), 15},</div><div class='add'>+      {uniname2ctype_offset(str9), 1},</div><div class='add'>+      {uniname2ctype_offset(str10), 13},</div><div class='add'>+      {uniname2ctype_offset(str11), 11},</div><div class='add'>+      {uniname2ctype_offset(str12), 10},</div><div class='add'>+      {uniname2ctype_offset(str13), 14},</div><div class='add'>+      {uniname2ctype_offset(str14), 3},</div><div class='add'>+      {uniname2ctype_offset(str15), 9},</div><div class='add'>+      {uniname2ctype_offset(str16), 8},</div><div class='add'>+      {uniname2ctype_offset(str17), 6},</div><div class='add'>+      {uniname2ctype_offset(str18), 5},</div><div class='add'>+      {uniname2ctype_offset(str19), 4},</div><div class='add'>+      {uniname2ctype_offset(str20), 2}</div><div class='add'>+#else /* USE_UNICODE_PROPERTIES */</div><div class='add'>+      {uniname2ctype_offset(str5141), 155},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str5300), 225},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str5980), 155},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {uniname2ctype_offset(str6098), 643}</div><div class='add'>+#endif /* USE_UNICODE_PROPERTIES */</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+  if (len &lt;= MAX_WORD_LENGTH &amp;&amp; len &gt;= MIN_WORD_LENGTH)</div><div class='add'>+    {</div><div class='add'>+      register unsigned int key = uniname2ctype_hash (str, len);</div><div class='add'>+</div><div class='add'>+      if (key &lt;= MAX_HASH_VALUE)</div><div class='add'>+        {</div><div class='add'>+          register int o = wordlist[key].name;</div><div class='add'>+          if (o &gt;= 0)</div><div class='add'>+            {</div><div class='add'>+              register const char *s = o + uniname2ctype_pool;</div><div class='add'>+</div><div class='add'>+              if (*str == *s &amp;&amp; !strncmp (str + 1, s + 1, len - 1) &amp;&amp; s[len] == '\0')</div><div class='add'>+                return &amp;wordlist[key];</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+  return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+uniname2ctype(const UChar *name, unsigned int len)</div><div class='add'>+{</div><div class='add'>+  const struct uniname2ctype_struct *p = uniname2ctype_p((const char *)name, len);</div><div class='add'>+  if (p) return p-&gt;ctype;</div><div class='add'>+  return -1;</div><div class='add'>+}</div><div class='add'>+#if defined ONIG_UNICODE_VERSION_STRING &amp;&amp; !( \</div><div class='add'>+      ONIG_UNICODE_VERSION_MAJOR == 15 &amp;&amp; \</div><div class='add'>+      ONIG_UNICODE_VERSION_MINOR == 0 &amp;&amp; \</div><div class='add'>+      ONIG_UNICODE_VERSION_TEENY == 0 &amp;&amp; \</div><div class='add'>+      1)</div><div class='add'>+# error ONIG_UNICODE_VERSION_STRING mismatch</div><div class='add'>+#endif</div><div class='add'>+#define ONIG_UNICODE_VERSION_STRING "15.0.0"</div><div class='add'>+#define ONIG_UNICODE_VERSION_MAJOR 15</div><div class='add'>+#define ONIG_UNICODE_VERSION_MINOR 0</div><div class='add'>+#define ONIG_UNICODE_VERSION_TEENY 0</div><div class='add'>+#if defined ONIG_UNICODE_EMOJI_VERSION_STRING &amp;&amp; !( \</div><div class='add'>+      ONIG_UNICODE_EMOJI_VERSION_MAJOR == 15 &amp;&amp; \</div><div class='add'>+      ONIG_UNICODE_EMOJI_VERSION_MINOR == 0 &amp;&amp; \</div><div class='add'>+      1)</div><div class='add'>+# error ONIG_UNICODE_EMOJI_VERSION_STRING mismatch</div><div class='add'>+#endif</div><div class='add'>+#define ONIG_UNICODE_EMOJI_VERSION_STRING "15.0"</div><div class='add'>+#define ONIG_UNICODE_EMOJI_VERSION_MAJOR 15</div><div class='add'>+#define ONIG_UNICODE_EMOJI_VERSION_MINOR 0</div><div class='head'>diff --git a/enc/unicode/case-folding.rb b/enc/unicode/case-folding.rb<br/>deleted file mode 100755<br/>index 362d6ebfd9..0000000000<br/>--- a/<a href='/ruby.git/tree/enc/unicode/case-folding.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/unicode/case-folding.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,418 +0,0 @@</div><div class='del'>-#!/usr/bin/ruby</div><div class='del'>-require 'stringio'</div><div class='del'>-</div><div class='del'>-# Usage (for case folding only):</div><div class='del'>-#   $ wget http://www.unicode.org/Public/UNIDATA/CaseFolding.txt</div><div class='del'>-#   $ ruby case-folding.rb CaseFolding.txt -o casefold.h</div><div class='del'>-#  or (for case folding and case mapping):</div><div class='del'>-#   $ wget http://www.unicode.org/Public/UNIDATA/CaseFolding.txt</div><div class='del'>-#   $ wget http://www.unicode.org/Public/UNIDATA/UnicodeData.txt</div><div class='del'>-#   $ wget http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt</div><div class='del'>-#   $ ruby case-folding.rb -m . -o casefold.h</div><div class='del'>-# using -d or --debug will include UTF-8 characters in comments for debugging</div><div class='del'>-</div><div class='del'>-class CaseFolding</div><div class='del'>-  module Util</div><div class='del'>-    module_function</div><div class='del'>-</div><div class='del'>-    def hex_seq(v)</div><div class='del'>-      v.map { |i| "0x%04x" % i }.join(", ")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def print_table_1(dest, type, mapping_data, data)</div><div class='del'>-      for k, v in data = data.sort</div><div class='del'>-        sk = (Array === k and k.length &gt; 1) ? "{#{hex_seq(k)}}" : ("0x%04x" % k)</div><div class='del'>-        if type=='CaseUnfold_11' and v.length&gt;1</div><div class='del'>-          # reorder CaseUnfold_11 entries to avoid special treatment for U+03B9/U+03BC/U+A64B</div><div class='del'>-          item = mapping_data.map("%04X" % k[0])</div><div class='del'>-          upper = item.upper if item</div><div class='del'>-          v = v.sort_by { |i| ("%04X"%i) == upper ? 0 : 1 }</div><div class='del'>-        end</div><div class='del'>-        ck = @debug ? ' /* ' + Array(k).pack("U*") + ' */' : ''</div><div class='del'>-        cv = @debug ? ' /* ' + Array(v).map{|c|[c].pack("U*")}.join(", ") + ' */' : ''</div><div class='del'>-        dest.print("  {#{sk}#{ck}, {#{v.length}#{mapping_data.flags(k, type, v)}, {#{hex_seq(v)}#{cv}}}},\n")</div><div class='del'>-      end</div><div class='del'>-      data</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def print_table(dest, type, mapping_data, data)</div><div class='del'>-      dest.print("static const #{type}_Type #{type}_Table[] = {\n")</div><div class='del'>-      i = 0</div><div class='del'>-      ret = data.inject([]) do |a, (n, d)|</div><div class='del'>-        dest.print("#define #{n} (*(#{type}_Type (*)[#{d.size}])(#{type}_Table+#{i}))\n")</div><div class='del'>-        i += d.size</div><div class='del'>-        a.concat(print_table_1(dest, type, mapping_data, d))</div><div class='del'>-      end</div><div class='del'>-      dest.print("};\n\n")</div><div class='del'>-      ret</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  include Util</div><div class='del'>-</div><div class='del'>-  attr_reader :fold, :fold_locale, :unfold, :unfold_locale, :version</div><div class='del'>-</div><div class='del'>-  def load(filename)</div><div class='del'>-    pattern = /([0-9A-F]{4,6}); ([CFT]); ([0-9A-F]{4,6})(?: ([0-9A-F]{4,6}))?(?: ([0-9A-F]{4,6}))?;/</div><div class='del'>-</div><div class='del'>-    @fold = fold = {}</div><div class='del'>-    @unfold = unfold = [{}, {}, {}]</div><div class='del'>-    @debug = false</div><div class='del'>-    @version = nil</div><div class='del'>-    turkic = []</div><div class='del'>-</div><div class='del'>-    IO.foreach(filename, mode: "rb") do |line|</div><div class='del'>-      @version ||= line[/-([0-9.]+).txt/, 1]</div><div class='del'>-      next unless res = pattern.match(line)</div><div class='del'>-      ch_from = res[1].to_i(16)</div><div class='del'>-</div><div class='del'>-      if res[2] == 'T'</div><div class='del'>-        # Turkic case folding</div><div class='del'>-        turkic &lt;&lt; ch_from</div><div class='del'>-        next</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # store folding data</div><div class='del'>-      ch_to = res[3..6].inject([]) do |a, i|</div><div class='del'>-        break a unless i</div><div class='del'>-        a &lt;&lt; i.to_i(16)</div><div class='del'>-      end</div><div class='del'>-      fold[ch_from] = ch_to</div><div class='del'>-</div><div class='del'>-      # store unfolding data</div><div class='del'>-      i = ch_to.length - 1</div><div class='del'>-      (unfold[i][ch_to] ||= []) &lt;&lt; ch_from</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # move locale dependent data to (un)fold_locale</div><div class='del'>-    @fold_locale = fold_locale = {}</div><div class='del'>-    @unfold_locale = unfold_locale = [{}, {}]</div><div class='del'>-    for ch_from in turkic</div><div class='del'>-      key = fold[ch_from]</div><div class='del'>-      i = key.length - 1</div><div class='del'>-      unfold_locale[i][i == 0 ? key[0] : key] = unfold[i].delete(key)</div><div class='del'>-      fold_locale[ch_from] = fold.delete(ch_from)</div><div class='del'>-    end</div><div class='del'>-    self</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def range_check(code)</div><div class='del'>-    "#{code} &lt;= MAX_CODE_VALUE &amp;&amp; #{code} &gt;= MIN_CODE_VALUE"</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def lookup_hash(key, type, data)</div><div class='del'>-    hash = "onigenc_unicode_#{key}_hash"</div><div class='del'>-    lookup = "onigenc_unicode_#{key}_lookup"</div><div class='del'>-    arity = Array(data[0][0]).size</div><div class='del'>-    gperf = %W"gperf -7 -k#{[*1..(arity*3)].join(',')} -F,-1 -c -j1 -i1 -t -T -E -C -H #{hash} -N #{lookup} -n"</div><div class='del'>-    argname = arity &gt; 1 ? "codes" : "code"</div><div class='del'>-    argdecl = "const OnigCodePoint #{arity &gt; 1 ? "*": ""}#{argname}"</div><div class='del'>-    n = 7</div><div class='del'>-    m = (1 &lt;&lt; n) - 1</div><div class='del'>-    min, max = data.map {|c, *|c}.flatten.minmax</div><div class='del'>-    src = IO.popen(gperf, "r+") {|f|</div><div class='del'>-      f &lt;&lt; "short\n%%\n"</div><div class='del'>-      data.each_with_index {|(k, _), i|</div><div class='del'>-        k = Array(k)</div><div class='del'>-        ks = k.map {|j| [(j &gt;&gt; n*2) &amp; m, (j &gt;&gt; n) &amp; m, (j) &amp; m]}.flatten.map {|c| "\\x%.2x" % c}.join("")</div><div class='del'>-        f.printf "\"%s\", ::::/*%s*/ %d\n", ks, k.map {|c| "0x%.4x" % c}.join(","), i</div><div class='del'>-      }</div><div class='del'>-      f &lt;&lt; "%%\n"</div><div class='del'>-      f.close_write</div><div class='del'>-      f.read</div><div class='del'>-    }</div><div class='del'>-    src.sub!(/^(#{hash})\s*\(.*?\).*?\n\{\n(.*)^\}/m) {</div><div class='del'>-      name = $1</div><div class='del'>-      body = $2</div><div class='del'>-      body.gsub!(/\(unsigned char\)str\[(\d+)\]/, "bits_#{arity &gt; 1 ? 'at' : 'of'}(#{argname}, \\1)")</div><div class='del'>-      "#{name}(#{argdecl})\n{\n#{body}}"</div><div class='del'>-    }</div><div class='del'>-    src.sub!(/const short *\*\n^(#{lookup})\s*\(.*?\).*?\n\{\n(.*)^\}/m) {</div><div class='del'>-      name = $1</div><div class='del'>-      body = $2</div><div class='del'>-      body.sub!(/\benum\s+\{(\n[ \t]+)/, "\\&amp;MIN_CODE_VALUE = 0x#{min.to_s(16)},\\1""MAX_CODE_VALUE = 0x#{max.to_s(16)},\\1")</div><div class='del'>-      body.gsub!(/(#{hash})\s*\(.*?\)/, "\\1(#{argname})")</div><div class='del'>-      body.gsub!(/\{"",-1}/, "-1")</div><div class='del'>-      body.gsub!(/\{"(?:[^"]|\\")+", *::::(.*)\}/, '\1')</div><div class='del'>-      body.sub!(/(\s+if\s)\(len\b.*\)/) do</div><div class='del'>-        "#$1(" &lt;&lt;</div><div class='del'>-          (arity &gt; 1 ? (0...arity).map {|i| range_check("#{argname}[#{i}]")}.join(" &amp;&amp;\n      ") : range_check(argname)) &lt;&lt;</div><div class='del'>-          ")"</div><div class='del'>-      end</div><div class='del'>-      v = nil</div><div class='del'>-      body.sub!(/(if\s*\(.*MAX_HASH_VALUE.*\)\n([ \t]*))\{(.*?)\n\2\}/m) {</div><div class='del'>-        pre = $1</div><div class='del'>-        indent = $2</div><div class='del'>-        s = $3</div><div class='del'>-        s.sub!(/const char *\* *(\w+)( *= *wordlist\[\w+\]).\w+/, 'short \1 = wordlist[key]')</div><div class='del'>-        v = $1</div><div class='del'>-        s.sub!(/\bif *\(.*\)/, "if (#{v} &gt;= 0 &amp;&amp; code#{arity}_equal(#{argname}, #{key}_Table[#{v}].from))")</div><div class='del'>-        "#{pre}{#{s}\n#{indent}}"</div><div class='del'>-      }</div><div class='del'>-      body.sub!(/\b(return\s+&amp;)([^;]+);/, '\1'"#{key}_Table[#{v}].to;")</div><div class='del'>-      "static const #{type} *\n#{name}(#{argdecl})\n{\n#{body}}"</div><div class='del'>-    }</div><div class='del'>-    src</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def display(dest, mapping_data)</div><div class='del'>-    # print the header</div><div class='del'>-    dest.print("/* DO NOT EDIT THIS FILE. */\n")</div><div class='del'>-    dest.print("/* Generated by enc/unicode/case-folding.rb */\n\n")</div><div class='del'>-</div><div class='del'>-    versions = version.scan(/\d+/)</div><div class='del'>-    dest.print("#if defined ONIG_UNICODE_VERSION_STRING &amp;&amp; !( \\\n")</div><div class='del'>-    %w[MAJOR MINOR TEENY].zip(versions) do |n, v|</div><div class='del'>-      dest.print("      ONIG_UNICODE_VERSION_#{n} == #{v} &amp;&amp; \\\n")</div><div class='del'>-    end</div><div class='del'>-    dest.print("      1)\n")</div><div class='del'>-    dest.print("# error ONIG_UNICODE_VERSION_STRING mismatch\n")</div><div class='del'>-    dest.print("#endif\n")</div><div class='del'>-    dest.print("#define ONIG_UNICODE_VERSION_STRING #{version.dump}\n")</div><div class='del'>-    %w[MAJOR MINOR TEENY].zip(versions) do |n, v|</div><div class='del'>-      dest.print("#define ONIG_UNICODE_VERSION_#{n} #{v}\n")</div><div class='del'>-    end</div><div class='del'>-    dest.print("\n")</div><div class='del'>-</div><div class='del'>-    # print folding data</div><div class='del'>-</div><div class='del'>-    # CaseFold + CaseFold_Locale</div><div class='del'>-    name = "CaseFold_11"</div><div class='del'>-    data = print_table(dest, name, mapping_data, "CaseFold"=&gt;fold, "CaseFold_Locale"=&gt;fold_locale)</div><div class='del'>-    dest.print lookup_hash(name, "CodePointList3", data)</div><div class='del'>-</div><div class='del'>-    # print unfolding data</div><div class='del'>-</div><div class='del'>-    # CaseUnfold_11 + CaseUnfold_11_Locale</div><div class='del'>-    name = "CaseUnfold_11"</div><div class='del'>-    data = print_table(dest, name, mapping_data, name=&gt;unfold[0], "#{name}_Locale"=&gt;unfold_locale[0])</div><div class='del'>-    dest.print lookup_hash(name, "CodePointList3", data)</div><div class='del'>-</div><div class='del'>-    # CaseUnfold_12 + CaseUnfold_12_Locale</div><div class='del'>-    name = "CaseUnfold_12"</div><div class='del'>-    data = print_table(dest, name, mapping_data, name=&gt;unfold[1], "#{name}_Locale"=&gt;unfold_locale[1])</div><div class='del'>-    dest.print lookup_hash(name, "CodePointList2", data)</div><div class='del'>-</div><div class='del'>-    # CaseUnfold_13</div><div class='del'>-    name = "CaseUnfold_13"</div><div class='del'>-    data = print_table(dest, name, mapping_data, name=&gt;unfold[2])</div><div class='del'>-    dest.print lookup_hash(name, "CodePointList2", data)</div><div class='del'>-</div><div class='del'>-    # TitleCase</div><div class='del'>-    dest.print mapping_data.specials_output</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def debug!</div><div class='del'>-    @debug = true</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def self.load(*args)</div><div class='del'>-    new.load(*args)</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-class MapItem</div><div class='del'>-  attr_accessor :upper, :lower, :title, :code</div><div class='del'>-</div><div class='del'>-  def initialize(code, upper, lower, title)</div><div class='del'>-    @code = code</div><div class='del'>-    @upper = upper unless upper == ''</div><div class='del'>-    @lower = lower unless lower == ''</div><div class='del'>-    @title = title unless title == ''</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-class CaseMapping</div><div class='del'>-  attr_reader :filename, :version</div><div class='del'>-</div><div class='del'>-  def initialize(mapping_directory)</div><div class='del'>-    @mappings = {}</div><div class='del'>-    @specials = []</div><div class='del'>-    @specials_length = 0</div><div class='del'>-    @version = nil</div><div class='del'>-    IO.foreach(File.join(mapping_directory, 'UnicodeData.txt'), mode: "rb") do |line|</div><div class='del'>-      next if line =~ /^&lt;/</div><div class='del'>-      code, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11, upper, lower, title = line.chomp.split ';'</div><div class='del'>-      unless upper and lower and title and (upper+lower+title)==''</div><div class='del'>-        @mappings[code] = MapItem.new(code, upper, lower, title)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @filename = File.join(mapping_directory, 'SpecialCasing.txt')</div><div class='del'>-    IO.foreach(@filename, mode: "rb") do |line|</div><div class='del'>-      @version ||= line[/-([0-9.]+).txt/, 1]</div><div class='del'>-      line.chomp!</div><div class='del'>-      line, comment = line.split(/ *#/)</div><div class='del'>-      next if not line or line == ''</div><div class='del'>-      code, lower, title, upper, conditions = line.split(/ *; */)</div><div class='del'>-      unless conditions</div><div class='del'>-        item = @mappings[code]</div><div class='del'>-        item.lower = lower</div><div class='del'>-        item.title = title</div><div class='del'>-        item.upper = upper</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def map (from)</div><div class='del'>-    @mappings[from]</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def flags(from, type, to)</div><div class='del'>-    # types: CaseFold_11, CaseUnfold_11, CaseUnfold_12, CaseUnfold_13</div><div class='del'>-    flags = ""</div><div class='del'>-    from = Array(from).map {|i| "%04X" % i}.join(" ")</div><div class='del'>-    to   = Array(to).map {|i| "%04X" % i}.join(" ")</div><div class='del'>-    item = map(from)</div><div class='del'>-    specials = []</div><div class='del'>-    case type</div><div class='del'>-    when 'CaseFold_11'</div><div class='del'>-      flags += '|F'</div><div class='del'>-      if item</div><div class='del'>-        flags += '|U'  if to==item.upper</div><div class='del'>-        flags += '|D'  if to==item.lower</div><div class='del'>-        unless item.upper == item.title</div><div class='del'>-          if item.code == item.title</div><div class='del'>-            flags += '|IT'</div><div class='del'>-            swap = case item.code</div><div class='del'>-            when '01C5' then '0064 017D'</div><div class='del'>-            when '01C8' then '006C 004A'</div><div class='del'>-            when '01CB' then '006E 004A'</div><div class='del'>-            when '01F2' then '0064 005A'</div><div class='del'>-            else # Greek</div><div class='del'>-              to.split(' ').first + ' 0399'</div><div class='del'>-            end</div><div class='del'>-            specials &lt;&lt; swap</div><div class='del'>-          else</div><div class='del'>-            flags += '|ST'</div><div class='del'>-            specials &lt;&lt; item.title</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        unless item.lower.nil? or item.lower==from or item.lower==to</div><div class='del'>-          specials &lt;&lt; item.lower</div><div class='del'>-          flags += '|SL'</div><div class='del'>-        end</div><div class='del'>-        unless item.upper.nil? or item.upper==from or item.upper==to</div><div class='del'>-          specials &lt;&lt; item.upper</div><div class='del'>-          flags += '|SU'</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    when 'CaseUnfold_11'</div><div class='del'>-      to = to.split(/ /)</div><div class='del'>-      if item</div><div class='del'>-        case to.first</div><div class='del'>-        when item.upper  then  flags += '|U'</div><div class='del'>-        when item.lower  then  flags += '|D'</div><div class='del'>-        else</div><div class='del'>-          raise "Unpredicted case 0 in enc/unicode/case_folding.rb. Please contact https://bugs.ruby-lang.org/."</div><div class='del'>-        end</div><div class='del'>-        unless item.upper == item.title</div><div class='del'>-          if item.code == item.title</div><div class='del'>-            flags += '|IT'   # was unpredicted case 1</div><div class='del'>-          elsif item.title==to[1]</div><div class='del'>-            flags += '|ST'</div><div class='del'>-          else</div><div class='del'>-            raise "Unpredicted case 2 in enc/unicode/case_folding.rb. Please contact https://bugs.ruby-lang.org/."</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    unless specials.empty?</div><div class='del'>-      flags += "|I(#{@specials_length})"</div><div class='del'>-      @specials_length += specials.map { |s| s.split(/ /).length }.reduce(:+)</div><div class='del'>-      @specials &lt;&lt; specials</div><div class='del'>-    end</div><div class='del'>-    flags</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def debug!</div><div class='del'>-    @debug = true</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def specials_output</div><div class='del'>-    "static const OnigCodePoint CaseMappingSpecials[] = {\n" +</div><div class='del'>-    @specials.map do |sps|</div><div class='del'>-      '   ' + sps.map do |sp|</div><div class='del'>-        chars = sp.split(/ /)</div><div class='del'>-        ct = ' /* ' + Array(chars).map{|c|[c.to_i(16)].pack("U*")}.join(", ") + ' */' if @debug</div><div class='del'>-        " L(#{chars.length})|#{chars.map {|c| "0x"+c }.join(', ')}#{ct},"</div><div class='del'>-      end.join + "\n"</div><div class='del'>-    end.join + "};\n"</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def self.load(*args)</div><div class='del'>-    new(*args)</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-class CaseMappingDummy</div><div class='del'>-  def flags(from, type, to)</div><div class='del'>-    ""</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def titlecase_output()  ''  end</div><div class='del'>-  def debug!()  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-if $0 == __FILE__</div><div class='del'>-  require 'optparse'</div><div class='del'>-  dest = nil</div><div class='del'>-  mapping_directory = nil</div><div class='del'>-  mapping_data = nil</div><div class='del'>-  debug = false</div><div class='del'>-  fold_1 = false</div><div class='del'>-  ARGV.options do |opt|</div><div class='del'>-    opt.banner &lt;&lt; " [INPUT]"</div><div class='del'>-    opt.on("--output-file=FILE", "-o", "output to the FILE instead of STDOUT") {|output|</div><div class='del'>-      dest = (output unless output == '-')</div><div class='del'>-    }</div><div class='del'>-    opt.on('--mapping-data-directory=DIRECTORY', '-m', 'data DIRECTORY of mapping files') { |directory|</div><div class='del'>-      mapping_directory = directory</div><div class='del'>-    }</div><div class='del'>-    opt.on('--debug', '-d') {</div><div class='del'>-      debug = true</div><div class='del'>-    }</div><div class='del'>-    opt.parse!</div><div class='del'>-    abort(opt.to_s) if ARGV.size &gt; 1</div><div class='del'>-  end</div><div class='del'>-  if mapping_directory</div><div class='del'>-    if ARGV[0]</div><div class='del'>-      warn "Either specify directory or individual file, but not both."</div><div class='del'>-      exit</div><div class='del'>-    end</div><div class='del'>-    filename = File.join(mapping_directory, 'CaseFolding.txt')</div><div class='del'>-    mapping_data = CaseMapping.load(mapping_directory)</div><div class='del'>-  end</div><div class='del'>-  filename ||= ARGV[0] || 'CaseFolding.txt'</div><div class='del'>-  data = CaseFolding.load(filename)</div><div class='del'>-  if mapping_data and data.version != mapping_data.version</div><div class='del'>-    abort "Unicode data version mismatch\n" \</div><div class='del'>-          "  #{filename} = #{data.version}\n" \</div><div class='del'>-          "  #{mapping_data.filename} = #{mapping_data.version}"</div><div class='del'>-  end</div><div class='del'>-  mapping_data ||= CaseMappingDummy.new</div><div class='del'>-</div><div class='del'>-  if debug</div><div class='del'>-    data.debug!</div><div class='del'>-    mapping_data.debug!</div><div class='del'>-  end</div><div class='del'>-  f = StringIO.new</div><div class='del'>-  begin</div><div class='del'>-    data.display(f, mapping_data)</div><div class='del'>-  rescue Errno::ENOENT =&gt; e</div><div class='del'>-    raise unless /gperf/ =~ e.message</div><div class='del'>-    warn e.message</div><div class='del'>-    abort unless dest</div><div class='del'>-    File.utime(nil, nil, dest) # assume existing file is OK</div><div class='del'>-    exit</div><div class='del'>-  else</div><div class='del'>-    s = f.string</div><div class='del'>-  end</div><div class='del'>-  if dest</div><div class='del'>-    open(dest, "wb") do |file|</div><div class='del'>-      file.print(s)</div><div class='del'>-    end</div><div class='del'>-  else</div><div class='del'>-    STDOUT.print(s)</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/enc/utf_16_32.h b/enc/utf_16_32.h<br/>index 9f9216d8ff..4d669019bf 100644<br/>--- a/<a href='/ruby.git/tree/enc/utf_16_32.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/utf_16_32.h</a><br/>+++ b/<a href='/ruby.git/tree/enc/utf_16_32.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/utf_16_32.h</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> #include "regenc.h"</div><div class='ctx'> /* dummy for unsupported, stateful encoding */</div><div class='del'>-#define ENC_DUMMY_UNICODE(name) ENC_REPLICATE(name, name "BE")</div><div class='add'>+#define ENC_DUMMY_UNICODE(name) ENC_DUMMY(name)</div><div class='ctx'> ENC_DUMMY_UNICODE("UTF-16");</div><div class='ctx'> ENC_DUMMY_UNICODE("UTF-32");</div><div class='head'>diff --git a/enc/windows_1250.c b/enc/windows_1250.c<br/>index d2cf7b16bc..daf23e9d1e 100644<br/>--- a/<a href='/ruby.git/tree/enc/windows_1250.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1250.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/windows_1250.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/windows_1250.c</a></div><div class='hunk'>@@ -266,6 +266,6 @@ OnigEncodingDefine(windows_1250, Windows_1250) = {</div><div class='ctx'>  * MIBenum: 2251</div><div class='ctx'>  * Link: http://www.iana.org/assignments/character-sets</div><div class='ctx'>  * Link: http://www.microsoft.com/globaldev/reference/sbcs/1250.mspx</div><div class='del'>- * Link: http://en.wikipedia.org/wiki/Windows-1250</div><div class='add'>+ * Link: https://en.wikipedia.org/wiki/Windows-1250</div><div class='ctx'>  */</div><div class='ctx'> ENC_ALIAS("CP1250", "Windows-1250")</div><div class='head'>diff --git a/enc/windows_1251.c b/enc/windows_1251.c<br/>index fcd0f1015d..6c892c1b8c 100644<br/>--- a/<a href='/ruby.git/tree/enc/windows_1251.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1251.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/windows_1251.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/windows_1251.c</a></div><div class='hunk'>@@ -248,6 +248,6 @@ OnigEncodingDefine(windows_1251, Windows_1251) = {</div><div class='ctx'>  * MIBenum: 2251</div><div class='ctx'>  * Link: http://www.iana.org/assignments/character-sets</div><div class='ctx'>  * Link: http://www.microsoft.com/globaldev/reference/sbcs/1251.mspx</div><div class='del'>- * Link: http://en.wikipedia.org/wiki/Windows-1251</div><div class='add'>+ * Link: https://en.wikipedia.org/wiki/Windows-1251</div><div class='ctx'>  */</div><div class='ctx'> ENC_ALIAS("CP1251", "Windows-1251")</div><div class='head'>diff --git a/enc/windows_1252.c b/enc/windows_1252.c<br/>index 5f90c15601..b685878d3f 100644<br/>--- a/<a href='/ruby.git/tree/enc/windows_1252.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1252.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/windows_1252.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/windows_1252.c</a></div><div class='hunk'>@@ -255,6 +255,6 @@ OnigEncodingDefine(windows_1252, Windows_1252) = {</div><div class='ctx'>  * MIBenum: 2251</div><div class='ctx'>  * Link: http://www.iana.org/assignments/character-sets</div><div class='ctx'>  * Link: http://www.microsoft.com/globaldev/reference/sbcs/1252.mspx</div><div class='del'>- * Link: http://en.wikipedia.org/wiki/Windows-1252</div><div class='add'>+ * Link: https://en.wikipedia.org/wiki/Windows-1252</div><div class='ctx'>  */</div><div class='ctx'> ENC_ALIAS("CP1252", "Windows-1252")</div><div class='head'>diff --git a/enc/windows_1253.c b/enc/windows_1253.c<br/>index 9e9c63a581..b2a43581c3 100644<br/>--- a/<a href='/ruby.git/tree/enc/windows_1253.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1253.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/windows_1253.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/windows_1253.c</a></div><div class='hunk'>@@ -32,7 +32,7 @@</div><div class='ctx'>  * MIBenum: 2253</div><div class='ctx'>  * Link: http://www.iana.org/assignments/character-sets</div><div class='ctx'>  * Link: http://www.microsoft.com/globaldev/reference/sbcs/1253.mspx</div><div class='del'>- * Link: http://en.wikipedia.org/wiki/Windows-1253</div><div class='add'>+ * Link: https://en.wikipedia.org/wiki/Windows-1253</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> #include "regenc.h"</div><div class='head'>diff --git a/enc/windows_1254.c b/enc/windows_1254.c<br/>index 9ae66978a2..5e6d92d3d2 100644<br/>--- a/<a href='/ruby.git/tree/enc/windows_1254.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1254.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/windows_1254.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/windows_1254.c</a></div><div class='hunk'>@@ -32,7 +32,7 @@</div><div class='ctx'>  * MIBenum: 2254</div><div class='ctx'>  * Link: http://www.iana.org/assignments/character-sets</div><div class='ctx'>  * Link: http://www.microsoft.com/globaldev/reference/sbcs/1254.mspx</div><div class='del'>- * Link: http://en.wikipedia.org/wiki/Windows-1254</div><div class='add'>+ * Link: https://en.wikipedia.org/wiki/Windows-1254</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> #include "regenc.h"</div><div class='head'>diff --git a/enc/windows_1257.c b/enc/windows_1257.c<br/>index 936a94ac76..ada03b72bf 100644<br/>--- a/<a href='/ruby.git/tree/enc/windows_1257.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_1257.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/windows_1257.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/windows_1257.c</a></div><div class='hunk'>@@ -35,7 +35,7 @@</div><div class='ctx'>  * MIBenum: 2257</div><div class='ctx'>  * Link: http://www.iana.org/assignments/character-sets</div><div class='ctx'>  * Link: http://www.microsoft.com/globaldev/reference/sbcs/1257.mspx</div><div class='del'>- * Link: http://en.wikipedia.org/wiki/Windows-1257</div><div class='add'>+ * Link: https://en.wikipedia.org/wiki/Windows-1257</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> #define ENC_CP1252_TO_LOWER_CASE(c) EncCP1252_ToLowerCaseTable[c]</div><div class='head'>diff --git a/enc/windows_31j.c b/enc/windows_31j.c<br/>index e3a468f414..1eb859596a 100644<br/>--- a/<a href='/ruby.git/tree/enc/windows_31j.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/windows_31j.c</a><br/>+++ b/<a href='/ruby.git/tree/enc/windows_31j.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/windows_31j.c</a></div><div class='hunk'>@@ -57,7 +57,7 @@ OnigEncodingDefine(windows_31j, Windows_31J) = {</div><div class='ctx'>  * MIBenum: 2024</div><div class='ctx'>  * Link: http://www.iana.org/assignments/character-sets</div><div class='ctx'>  * Link: http://www.microsoft.com/globaldev/reference/dbcs/932.mspx</div><div class='del'>- * Link: http://ja.wikipedia.org/wiki/Windows-31J</div><div class='add'>+ * Link: https://ja.wikipedia.org/wiki/Windows-31J</div><div class='ctx'>  * Link: http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-932-2000.ucm</div><div class='ctx'>  *</div><div class='ctx'>  * Windows Standard Character Set and its mapping to Unicode by Microsoft.</div><div class='head'>diff --git a/enc/x_emoji.h b/enc/x_emoji.h<br/>index 23efa1dd9e..c0a3613f1b 100644<br/>--- a/<a href='/ruby.git/tree/enc/x_emoji.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enc/x_emoji.h</a><br/>+++ b/<a href='/ruby.git/tree/enc/x_emoji.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enc/x_emoji.h</a></div><div class='hunk'>@@ -2,8 +2,8 @@</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Name: UTF8-DoCoMo, SJIS-DoCoMo</div><div class='del'>- * Link: https://www.nttdocomo.co.jp/english/service/developer/make/content/pictograph/basic/index.html</div><div class='del'>- * Link: https://www.nttdocomo.co.jp/english/service/developer/make/content/pictograph/extention/index.html</div><div class='add'>+ * Link: https://www.nttdocomo.co.jp/service/developer/make/content/pictograph/basic/index.html</div><div class='add'>+ * Link: https://www.nttdocomo.co.jp/service/developer/make/content/pictograph/extent%69on/index.html</div><div class='ctx'>  */</div><div class='ctx'> ENC_REPLICATE("UTF8-DoCoMo", "UTF-8")</div><div class='ctx'> ENC_REPLICATE("SJIS-DoCoMo", "Windows-31J")</div><div class='head'>diff --git a/encindex.h b/encindex.h<br/>index 658b60a9fd..e6ddb1b0c2 100644<br/>--- a/<a href='/ruby.git/tree/encindex.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>encindex.h</a><br/>+++ b/<a href='/ruby.git/tree/encindex.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>encindex.h</a></div><div class='hunk'>@@ -1,3 +1,5 @@</div><div class='add'>+#ifndef RUBY_ENCINDEX_H</div><div class='add'>+#define RUBY_ENCINDEX_H 1</div><div class='ctx'> /**********************************************************************</div><div class='ctx'> </div><div class='ctx'>   encindex.h -</div><div class='hunk'>@@ -9,8 +11,7 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#ifndef RUBY_ENCINDEX_H</div><div class='del'>-#define RUBY_ENCINDEX_H 1</div><div class='add'>+#include "ruby/encoding.h"      /* rb_ascii8bit_encindex etc. */</div><div class='ctx'> #if defined(__cplusplus)</div><div class='ctx'> extern "C" {</div><div class='ctx'> #if 0</div><div class='hunk'>@@ -19,7 +20,7 @@ extern "C" {</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> enum ruby_preserved_encindex {</div><div class='del'>-    RUBY_ENCINDEX_ASCII,</div><div class='add'>+    RUBY_ENCINDEX_ASCII_8BIT,</div><div class='ctx'>     RUBY_ENCINDEX_UTF_8,</div><div class='ctx'>     RUBY_ENCINDEX_US_ASCII,</div><div class='ctx'> </div><div class='hunk'>@@ -39,7 +40,7 @@ enum ruby_preserved_encindex {</div><div class='ctx'>     RUBY_ENCINDEX_BUILTIN_MAX</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-#define ENCINDEX_ASCII       RUBY_ENCINDEX_ASCII</div><div class='add'>+#define ENCINDEX_ASCII_8BIT  RUBY_ENCINDEX_ASCII_8BIT</div><div class='ctx'> #define ENCINDEX_UTF_8       RUBY_ENCINDEX_UTF_8</div><div class='ctx'> #define ENCINDEX_US_ASCII    RUBY_ENCINDEX_US_ASCII</div><div class='ctx'> #define ENCINDEX_UTF_16BE    RUBY_ENCINDEX_UTF_16BE</div><div class='hunk'>@@ -53,7 +54,7 @@ enum ruby_preserved_encindex {</div><div class='ctx'> #define ENCINDEX_Windows_31J RUBY_ENCINDEX_Windows_31J</div><div class='ctx'> #define ENCINDEX_BUILTIN_MAX RUBY_ENCINDEX_BUILTIN_MAX</div><div class='ctx'> </div><div class='del'>-#define rb_ascii8bit_encindex() RUBY_ENCINDEX_ASCII</div><div class='add'>+#define rb_ascii8bit_encindex() RUBY_ENCINDEX_ASCII_8BIT</div><div class='ctx'> #define rb_utf8_encindex()      RUBY_ENCINDEX_UTF_8</div><div class='ctx'> #define rb_usascii_encindex()   RUBY_ENCINDEX_US_ASCII</div><div class='ctx'> </div><div class='head'>diff --git a/encoding.c b/encoding.c<br/>index 10a0ab0371..2f4b47bdfa 100644<br/>--- a/<a href='/ruby.git/tree/encoding.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>encoding.c</a><br/>+++ b/<a href='/ruby.git/tree/encoding.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>encoding.c</a></div><div class='hunk'>@@ -9,18 +9,30 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby/encoding.h"</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#include &lt;ctype.h&gt;</div><div class='add'>+</div><div class='ctx'> #include "encindex.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/enc.h"</div><div class='add'>+#include "internal/encoding.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/inits.h"</div><div class='add'>+#include "internal/load.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/string.h"</div><div class='add'>+#include "internal/vm.h"</div><div class='ctx'> #include "regenc.h"</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='add'>+#include "ruby/encoding.h"</div><div class='ctx'> #include "ruby/util.h"</div><div class='del'>-</div><div class='ctx'> #include "ruby_assert.h"</div><div class='add'>+#include "vm_sync.h"</div><div class='add'>+</div><div class='ctx'> #ifndef ENC_DEBUG</div><div class='ctx'> #define ENC_DEBUG 0</div><div class='ctx'> #endif</div><div class='del'>-#define ENC_ASSERT (!ENC_DEBUG)?(void)0:assert</div><div class='add'>+#define ENC_ASSERT(expr) RUBY_ASSERT_WHEN(ENC_DEBUG, expr)</div><div class='ctx'> #define MUST_STRING(str) (ENC_ASSERT(RB_TYPE_P(str, T_STRING)), str)</div><div class='ctx'> </div><div class='ctx'> #undef rb_ascii8bit_encindex</div><div class='hunk'>@@ -38,12 +50,13 @@ void rb_encdb_declare(const char *name);</div><div class='ctx'> int rb_encdb_replicate(const char *name, const char *orig);</div><div class='ctx'> int rb_encdb_dummy(const char *name);</div><div class='ctx'> int rb_encdb_alias(const char *alias, const char *orig);</div><div class='del'>-void rb_encdb_set_unicode(int index);</div><div class='ctx'> #pragma GCC visibility pop</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static ID id_encoding;</div><div class='ctx'> VALUE rb_cEncoding;</div><div class='add'>+</div><div class='add'>+#define ENCODING_LIST_CAPA 256</div><div class='ctx'> static VALUE rb_encoding_list;</div><div class='ctx'> </div><div class='ctx'> struct rb_encoding_entry {</div><div class='hunk'>@@ -52,12 +65,26 @@ struct rb_encoding_entry {</div><div class='ctx'>     rb_encoding *base;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static struct {</div><div class='del'>-    struct rb_encoding_entry *list;</div><div class='add'>+static struct enc_table {</div><div class='add'>+    struct rb_encoding_entry list[ENCODING_LIST_CAPA];</div><div class='ctx'>     int count;</div><div class='del'>-    int size;</div><div class='ctx'>     st_table *names;</div><div class='del'>-} enc_table;</div><div class='add'>+} global_enc_table;</div><div class='add'>+</div><div class='add'>+static rb_encoding *global_enc_ascii,</div><div class='add'>+                   *global_enc_utf_8,</div><div class='add'>+                   *global_enc_us_ascii;</div><div class='add'>+</div><div class='add'>+#define GLOBAL_ENC_TABLE_ENTER(enc_table) struct enc_table *enc_table = &amp;global_enc_table; RB_VM_LOCK_ENTER()</div><div class='add'>+#define GLOBAL_ENC_TABLE_LEAVE()                                                           RB_VM_LOCK_LEAVE()</div><div class='add'>+#define GLOBAL_ENC_TABLE_EVAL(enc_table, expr) do { \</div><div class='add'>+    GLOBAL_ENC_TABLE_ENTER(enc_table); \</div><div class='add'>+    { \</div><div class='add'>+        expr; \</div><div class='add'>+    } \</div><div class='add'>+    GLOBAL_ENC_TABLE_LEAVE(); \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='ctx'> </div><div class='ctx'> #define ENC_DUMMY_FLAG (1&lt;&lt;24)</div><div class='ctx'> #define ENC_INDEX_MASK (~(~0U&lt;&lt;24))</div><div class='hunk'>@@ -66,18 +93,12 @@ static struct {</div><div class='ctx'> #define ENC_DUMMY_P(enc) ((enc)-&gt;ruby_encoding_index &amp; ENC_DUMMY_FLAG)</div><div class='ctx'> #define ENC_SET_DUMMY(enc) ((enc)-&gt;ruby_encoding_index |= ENC_DUMMY_FLAG)</div><div class='ctx'> </div><div class='del'>-void rb_enc_init(void);</div><div class='del'>-</div><div class='ctx'> #define ENCODING_COUNT ENCINDEX_BUILTIN_MAX</div><div class='ctx'> #define UNSPECIFIED_ENCODING INT_MAX</div><div class='ctx'> </div><div class='ctx'> #define ENCODING_NAMELEN_MAX 63</div><div class='ctx'> #define valid_encoding_name_p(name) ((name) &amp;&amp; strlen(name) &lt;= ENCODING_NAMELEN_MAX)</div><div class='ctx'> </div><div class='del'>-#define enc_autoload_p(enc) (!rb_enc_mbmaxlen(enc))</div><div class='del'>-</div><div class='del'>-static int load_encoding(const char *name);</div><div class='del'>-</div><div class='ctx'> static const rb_data_type_t encoding_data_type = {</div><div class='ctx'>     "encoding",</div><div class='ctx'>     {0, 0, 0,},</div><div class='hunk'>@@ -96,22 +117,47 @@ rb_data_is_encoding(VALUE obj)</div><div class='ctx'> static VALUE</div><div class='ctx'> enc_new(rb_encoding *encoding)</div><div class='ctx'> {</div><div class='del'>-    return TypedData_Wrap_Struct(rb_cEncoding, &amp;encoding_data_type, (void *)encoding);</div><div class='add'>+    VALUE enc = TypedData_Wrap_Struct(rb_cEncoding, &amp;encoding_data_type, (void *)encoding);</div><div class='add'>+    rb_obj_freeze(enc);</div><div class='add'>+    FL_SET_RAW(enc, RUBY_FL_SHAREABLE);</div><div class='add'>+    return enc;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+enc_list_update(int index, rb_raw_encoding *encoding)</div><div class='add'>+{</div><div class='add'>+    RUBY_ASSERT(index &lt; ENCODING_LIST_CAPA);</div><div class='add'>+</div><div class='add'>+    VALUE list = rb_encoding_list;</div><div class='add'>+    if (list &amp;&amp; NIL_P(rb_ary_entry(list, index))) {</div><div class='add'>+        /* initialize encoding data */</div><div class='add'>+        rb_ary_store(list, index, enc_new(encoding));</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_enc_from_encoding_index(int idx)</div><div class='add'>+enc_list_lookup(int idx)</div><div class='ctx'> {</div><div class='del'>-    VALUE list, enc;</div><div class='add'>+    VALUE list, enc = Qnil;</div><div class='ctx'> </div><div class='del'>-    if (!(list = rb_encoding_list)) {</div><div class='del'>-	rb_bug("rb_enc_from_encoding_index(%d): no rb_encoding_list", idx);</div><div class='add'>+    if (idx &lt; ENCODING_LIST_CAPA) {</div><div class='add'>+        list = rb_encoding_list;</div><div class='add'>+        RUBY_ASSERT(list);</div><div class='add'>+        enc = rb_ary_entry(list, idx);</div><div class='ctx'>     }</div><div class='del'>-    enc = rb_ary_entry(list, idx);</div><div class='add'>+</div><div class='ctx'>     if (NIL_P(enc)) {</div><div class='del'>-	rb_bug("rb_enc_from_encoding_index(%d): not created yet", idx);</div><div class='add'>+        rb_bug("rb_enc_from_encoding_index(%d): not created yet", idx);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return enc;</div><div class='ctx'>     }</div><div class='del'>-    return enc;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_enc_from_encoding_index(int idx)</div><div class='add'>+{</div><div class='add'>+    return enc_list_lookup(idx);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -135,16 +181,14 @@ rb_enc_dummy_p(rb_encoding *enc)</div><div class='ctx'>     return ENC_DUMMY_P(enc) != 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int enc_autoload(rb_encoding *);</div><div class='del'>-</div><div class='ctx'> static int</div><div class='ctx'> check_encoding(rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     int index = rb_enc_to_index(enc);</div><div class='ctx'>     if (rb_enc_from_index(index) != enc)</div><div class='del'>-	return -1;</div><div class='del'>-    if (enc_autoload_p(enc)) {</div><div class='del'>-	index = enc_autoload(enc);</div><div class='add'>+        return -1;</div><div class='add'>+    if (rb_enc_autoload_p(enc)) {</div><div class='add'>+        index = rb_enc_autoload(enc);</div><div class='ctx'>     }</div><div class='ctx'>     return index;</div><div class='ctx'> }</div><div class='hunk'>@@ -153,7 +197,7 @@ static int</div><div class='ctx'> enc_check_encoding(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (!is_obj_encoding(obj)) {</div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'>     }</div><div class='ctx'>     return check_encoding(RDATA(obj)-&gt;data);</div><div class='ctx'> }</div><div class='hunk'>@@ -163,7 +207,7 @@ static void</div><div class='ctx'> not_encoding(VALUE enc)</div><div class='ctx'> {</div><div class='ctx'>     rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (expected Encoding)",</div><div class='del'>-	     rb_obj_class(enc));</div><div class='add'>+             rb_obj_class(enc));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static rb_encoding *</div><div class='hunk'>@@ -171,7 +215,7 @@ must_encoding(VALUE enc)</div><div class='ctx'> {</div><div class='ctx'>     int index = enc_check_encoding(enc);</div><div class='ctx'>     if (index &lt; 0) {</div><div class='del'>-	not_encoding(enc);</div><div class='add'>+        not_encoding(enc);</div><div class='ctx'>     }</div><div class='ctx'>     return DATA_PTR(enc);</div><div class='ctx'> }</div><div class='hunk'>@@ -181,16 +225,16 @@ must_encindex(int index)</div><div class='ctx'> {</div><div class='ctx'>     rb_encoding *enc = rb_enc_from_index(index);</div><div class='ctx'>     if (!enc) {</div><div class='del'>-	rb_raise(rb_eEncodingError, "encoding index out of bound: %d",</div><div class='del'>-		 index);</div><div class='add'>+        rb_raise(rb_eEncodingError, "encoding index out of bound: %d",</div><div class='add'>+                 index);</div><div class='ctx'>     }</div><div class='ctx'>     if (ENC_TO_ENCINDEX(enc) != (int)(index &amp; ENC_INDEX_MASK)) {</div><div class='del'>-	rb_raise(rb_eEncodingError, "wrong encoding index %d for %s (expected %d)",</div><div class='del'>-		 index, rb_enc_name(enc), ENC_TO_ENCINDEX(enc));</div><div class='add'>+        rb_raise(rb_eEncodingError, "wrong encoding index %d for %s (expected %d)",</div><div class='add'>+                 index, rb_enc_name(enc), ENC_TO_ENCINDEX(enc));</div><div class='ctx'>     }</div><div class='del'>-    if (enc_autoload_p(enc) &amp;&amp; enc_autoload(enc) == -1) {</div><div class='del'>-	rb_loaderror("failed to load encoding (%s)",</div><div class='del'>-		     rb_enc_name(enc));</div><div class='add'>+    if (rb_enc_autoload_p(enc) &amp;&amp; rb_enc_autoload(enc) == -1) {</div><div class='add'>+        rb_loaderror("failed to load encoding (%s)",</div><div class='add'>+                     rb_enc_name(enc));</div><div class='ctx'>     }</div><div class='ctx'>     return enc;</div><div class='ctx'> }</div><div class='hunk'>@@ -199,31 +243,45 @@ int</div><div class='ctx'> rb_to_encoding_index(VALUE enc)</div><div class='ctx'> {</div><div class='ctx'>     int idx;</div><div class='add'>+    const char *name;</div><div class='ctx'> </div><div class='ctx'>     idx = enc_check_encoding(enc);</div><div class='ctx'>     if (idx &gt;= 0) {</div><div class='del'>-	return idx;</div><div class='add'>+        return idx;</div><div class='ctx'>     }</div><div class='ctx'>     else if (NIL_P(enc = rb_check_string_type(enc))) {</div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'>     }</div><div class='ctx'>     if (!rb_enc_asciicompat(rb_enc_get(enc))) {</div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'>     }</div><div class='del'>-    return rb_enc_find_index(StringValueCStr(enc));</div><div class='add'>+    if (!(name = rb_str_to_cstr(enc))) {</div><div class='add'>+        return -1;</div><div class='add'>+    }</div><div class='add'>+    return rb_enc_find_index(name);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const char *</div><div class='add'>+name_for_encoding(volatile VALUE *enc)</div><div class='add'>+{</div><div class='add'>+    VALUE name = StringValue(*enc);</div><div class='add'>+    const char *n;</div><div class='add'>+</div><div class='add'>+    if (!rb_enc_asciicompat(rb_enc_get(name))) {</div><div class='add'>+        rb_raise(rb_eArgError, "invalid encoding name (non ASCII)");</div><div class='add'>+    }</div><div class='add'>+    if (!(n = rb_str_to_cstr(name))) {</div><div class='add'>+        rb_raise(rb_eArgError, "invalid encoding name (NUL byte)");</div><div class='add'>+    }</div><div class='add'>+    return n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Returns encoding index or UNSPECIFIED_ENCODING */</div><div class='ctx'> static int</div><div class='ctx'> str_find_encindex(VALUE enc)</div><div class='ctx'> {</div><div class='del'>-    int idx;</div><div class='del'>-</div><div class='del'>-    StringValue(enc);</div><div class='del'>-    if (!rb_enc_asciicompat(rb_enc_get(enc))) {</div><div class='del'>-	rb_raise(rb_eArgError, "invalid name encoding (non ASCII)");</div><div class='del'>-    }</div><div class='del'>-    idx = rb_enc_find_index(StringValueCStr(enc));</div><div class='add'>+    int idx = rb_enc_find_index(name_for_encoding(&amp;enc));</div><div class='add'>+    RB_GC_GUARD(enc);</div><div class='ctx'>     return idx;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -232,7 +290,7 @@ str_to_encindex(VALUE enc)</div><div class='ctx'> {</div><div class='ctx'>     int idx = str_find_encindex(enc);</div><div class='ctx'>     if (idx &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "unknown encoding name - %"PRIsVALUE, enc);</div><div class='add'>+        rb_raise(rb_eArgError, "unknown encoding name - %"PRIsVALUE, enc);</div><div class='ctx'>     }</div><div class='ctx'>     return idx;</div><div class='ctx'> }</div><div class='hunk'>@@ -261,118 +319,148 @@ rb_find_encoding(VALUE enc)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-enc_table_expand(int newsize)</div><div class='add'>+enc_table_expand(struct enc_table *enc_table, int newsize)</div><div class='ctx'> {</div><div class='del'>-    struct rb_encoding_entry *ent;</div><div class='del'>-    int count = newsize;</div><div class='del'>-</div><div class='del'>-    if (enc_table.size &gt;= newsize) return newsize;</div><div class='del'>-    newsize = (newsize + 7) / 8 * 8;</div><div class='del'>-    ent = realloc(enc_table.list, sizeof(*enc_table.list) * newsize);</div><div class='del'>-    if (!ent) return -1;</div><div class='del'>-    memset(ent + enc_table.size, 0, sizeof(*ent)*(newsize - enc_table.size));</div><div class='del'>-    enc_table.list = ent;</div><div class='del'>-    enc_table.size = newsize;</div><div class='del'>-    return count;</div><div class='add'>+    if (newsize &gt; ENCODING_LIST_CAPA) {</div><div class='add'>+        rb_raise(rb_eEncodingError, "too many encoding (&gt; %d)", ENCODING_LIST_CAPA);</div><div class='add'>+    }</div><div class='add'>+    return newsize;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-enc_register_at(int index, const char *name, rb_encoding *base_encoding)</div><div class='add'>+enc_register_at(struct enc_table *enc_table, int index, const char *name, rb_encoding *base_encoding)</div><div class='ctx'> {</div><div class='del'>-    struct rb_encoding_entry *ent = &amp;enc_table.list[index];</div><div class='add'>+    struct rb_encoding_entry *ent = &amp;enc_table-&gt;list[index];</div><div class='ctx'>     rb_raw_encoding *encoding;</div><div class='del'>-    VALUE list;</div><div class='ctx'> </div><div class='ctx'>     if (!valid_encoding_name_p(name)) return -1;</div><div class='ctx'>     if (!ent-&gt;name) {</div><div class='del'>-	ent-&gt;name = name = strdup(name);</div><div class='add'>+        ent-&gt;name = name = strdup(name);</div><div class='ctx'>     }</div><div class='ctx'>     else if (STRCASECMP(name, ent-&gt;name)) {</div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'>     }</div><div class='ctx'>     encoding = (rb_raw_encoding *)ent-&gt;enc;</div><div class='ctx'>     if (!encoding) {</div><div class='del'>-	encoding = xmalloc(sizeof(rb_encoding));</div><div class='add'>+        encoding = xmalloc(sizeof(rb_encoding));</div><div class='ctx'>     }</div><div class='ctx'>     if (base_encoding) {</div><div class='del'>-	*encoding = *base_encoding;</div><div class='add'>+        *encoding = *base_encoding;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	memset(encoding, 0, sizeof(*ent-&gt;enc));</div><div class='add'>+        memset(encoding, 0, sizeof(*ent-&gt;enc));</div><div class='ctx'>     }</div><div class='ctx'>     encoding-&gt;name = name;</div><div class='ctx'>     encoding-&gt;ruby_encoding_index = index;</div><div class='ctx'>     ent-&gt;enc = encoding;</div><div class='del'>-    st_insert(enc_table.names, (st_data_t)name, (st_data_t)index);</div><div class='del'>-    list = rb_encoding_list;</div><div class='del'>-    if (list &amp;&amp; NIL_P(rb_ary_entry(list, index))) {</div><div class='del'>-	/* initialize encoding data */</div><div class='del'>-	rb_ary_store(list, index, enc_new(encoding));</div><div class='del'>-    }</div><div class='add'>+    st_insert(enc_table-&gt;names, (st_data_t)name, (st_data_t)index);</div><div class='add'>+</div><div class='add'>+    enc_list_update(index, encoding);</div><div class='ctx'>     return index;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-enc_register(const char *name, rb_encoding *encoding)</div><div class='add'>+enc_register(struct enc_table *enc_table, const char *name, rb_encoding *encoding)</div><div class='ctx'> {</div><div class='del'>-    int index = enc_table.count;</div><div class='add'>+    int index = enc_table-&gt;count;</div><div class='ctx'> </div><div class='del'>-    if ((index = enc_table_expand(index + 1)) &lt; 0) return -1;</div><div class='del'>-    enc_table.count = index;</div><div class='del'>-    return enc_register_at(index - 1, name, encoding);</div><div class='add'>+    enc_table-&gt;count = enc_table_expand(enc_table, index + 1);</div><div class='add'>+    return enc_register_at(enc_table, index, name, encoding);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void set_encoding_const(const char *, rb_encoding *);</div><div class='del'>-int rb_enc_registered(const char *name);</div><div class='add'>+static int enc_registered(struct enc_table *enc_table, const char *name);</div><div class='add'>+</div><div class='add'>+static rb_encoding *</div><div class='add'>+enc_from_index(struct enc_table *enc_table, int index)</div><div class='add'>+{</div><div class='add'>+    if (UNLIKELY(index &lt; 0 || enc_table-&gt;count &lt;= (index &amp;= ENC_INDEX_MASK))) {</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+    return enc_table-&gt;list[index].enc;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+rb_encoding *</div><div class='add'>+rb_enc_from_index(int index)</div><div class='add'>+{</div><div class='add'>+    return enc_from_index(&amp;global_enc_table, index);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> int</div><div class='ctx'> rb_enc_register(const char *name, rb_encoding *encoding)</div><div class='ctx'> {</div><div class='del'>-    int index = rb_enc_registered(name);</div><div class='add'>+    int index;</div><div class='add'>+</div><div class='add'>+    GLOBAL_ENC_TABLE_ENTER(enc_table);</div><div class='add'>+    {</div><div class='add'>+        index = enc_registered(enc_table, name);</div><div class='add'>+</div><div class='add'>+        if (index &gt;= 0) {</div><div class='add'>+            rb_encoding *oldenc = enc_from_index(enc_table, index);</div><div class='add'>+            if (STRCASECMP(name, rb_enc_name(oldenc))) {</div><div class='add'>+                index = enc_register(enc_table, name, encoding);</div><div class='add'>+            }</div><div class='add'>+            else if (rb_enc_autoload_p(oldenc) || !ENC_DUMMY_P(oldenc)) {</div><div class='add'>+                enc_register_at(enc_table, index, name, encoding);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rb_raise(rb_eArgError, "encoding %s is already registered", name);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            index = enc_register(enc_table, name, encoding);</div><div class='add'>+            set_encoding_const(name, rb_enc_from_index(index));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    GLOBAL_ENC_TABLE_LEAVE();</div><div class='add'>+    return index;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+enc_registered(struct enc_table *enc_table, const char *name)</div><div class='add'>+{</div><div class='add'>+    st_data_t idx = 0;</div><div class='ctx'> </div><div class='del'>-    if (index &gt;= 0) {</div><div class='del'>-	rb_encoding *oldenc = rb_enc_from_index(index);</div><div class='del'>-	if (STRCASECMP(name, rb_enc_name(oldenc))) {</div><div class='del'>-	    index = enc_register(name, encoding);</div><div class='del'>-	}</div><div class='del'>-	else if (enc_autoload_p(oldenc) || !ENC_DUMMY_P(oldenc)) {</div><div class='del'>-	    enc_register_at(index, name, encoding);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_raise(rb_eArgError, "encoding %s is already registered", name);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	index = enc_register(name, encoding);</div><div class='del'>-	set_encoding_const(name, rb_enc_from_index(index));</div><div class='add'>+    if (!name) return -1;</div><div class='add'>+    if (!enc_table-&gt;names) return -1;</div><div class='add'>+    if (st_lookup(enc_table-&gt;names, (st_data_t)name, &amp;idx)) {</div><div class='add'>+        return (int)idx;</div><div class='ctx'>     }</div><div class='del'>-    return index;</div><div class='add'>+    return -1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_encdb_declare(const char *name)</div><div class='ctx'> {</div><div class='del'>-    int idx = rb_enc_registered(name);</div><div class='del'>-    if (idx &lt; 0) {</div><div class='del'>-	idx = enc_register(name, 0);</div><div class='add'>+    GLOBAL_ENC_TABLE_ENTER(enc_table);</div><div class='add'>+    {</div><div class='add'>+        int idx = enc_registered(enc_table, name);</div><div class='add'>+        if (idx &lt; 0) {</div><div class='add'>+            idx = enc_register(enc_table, name, 0);</div><div class='add'>+        }</div><div class='add'>+        set_encoding_const(name, rb_enc_from_index(idx));</div><div class='ctx'>     }</div><div class='del'>-    set_encoding_const(name, rb_enc_from_index(idx));</div><div class='add'>+    GLOBAL_ENC_TABLE_LEAVE();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-enc_check_duplication(const char *name)</div><div class='add'>+enc_check_addable(struct enc_table *enc_table, const char *name)</div><div class='ctx'> {</div><div class='del'>-    if (rb_enc_registered(name) &gt;= 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "encoding %s is already registered", name);</div><div class='add'>+    if (enc_registered(enc_table, name) &gt;= 0) {</div><div class='add'>+        rb_raise(rb_eArgError, "encoding %s is already registered", name);</div><div class='add'>+    }</div><div class='add'>+    else if (!valid_encoding_name_p(name)) {</div><div class='add'>+        rb_raise(rb_eArgError, "invalid encoding name: %s", name);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static rb_encoding*</div><div class='del'>-set_base_encoding(int index, rb_encoding *base)</div><div class='add'>+set_base_encoding(struct enc_table *enc_table, int index, rb_encoding *base)</div><div class='ctx'> {</div><div class='del'>-    rb_encoding *enc = enc_table.list[index].enc;</div><div class='add'>+    rb_encoding *enc = enc_table-&gt;list[index].enc;</div><div class='ctx'> </div><div class='del'>-    enc_table.list[index].base = base;</div><div class='add'>+    ASSUME(enc);</div><div class='add'>+    enc_table-&gt;list[index].base = base;</div><div class='ctx'>     if (ENC_DUMMY_P(base)) ENC_SET_DUMMY((rb_raw_encoding *)enc);</div><div class='ctx'>     return enc;</div><div class='ctx'> }</div><div class='hunk'>@@ -384,9 +472,13 @@ set_base_encoding(int index, rb_encoding *base)</div><div class='ctx'> void</div><div class='ctx'> rb_enc_set_base(const char *name, const char *orig)</div><div class='ctx'> {</div><div class='del'>-    int idx = rb_enc_registered(name);</div><div class='del'>-    int origidx = rb_enc_registered(orig);</div><div class='del'>-    set_base_encoding(idx, rb_enc_from_index(origidx));</div><div class='add'>+    GLOBAL_ENC_TABLE_ENTER(enc_table);</div><div class='add'>+    {</div><div class='add'>+        int idx = enc_registered(enc_table, name);</div><div class='add'>+        int origidx = enc_registered(enc_table, orig);</div><div class='add'>+        set_base_encoding(enc_table, idx, rb_enc_from_index(origidx));</div><div class='add'>+    }</div><div class='add'>+    GLOBAL_ENC_TABLE_LEAVE();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* for encdb.h</div><div class='hunk'>@@ -395,24 +487,35 @@ rb_enc_set_base(const char *name, const char *orig)</div><div class='ctx'> int</div><div class='ctx'> rb_enc_set_dummy(int index)</div><div class='ctx'> {</div><div class='del'>-    rb_encoding *enc = enc_table.list[index].enc;</div><div class='del'>-</div><div class='add'>+    rb_encoding *enc = global_enc_table.list[index].enc;</div><div class='ctx'>     ENC_SET_DUMMY((rb_raw_encoding *)enc);</div><div class='ctx'>     return index;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-int</div><div class='del'>-rb_enc_replicate(const char *name, rb_encoding *encoding)</div><div class='add'>+static int</div><div class='add'>+enc_replicate(struct enc_table *enc_table, const char *name, rb_encoding *encoding)</div><div class='ctx'> {</div><div class='ctx'>     int idx;</div><div class='ctx'> </div><div class='del'>-    enc_check_duplication(name);</div><div class='del'>-    idx = enc_register(name, encoding);</div><div class='del'>-    set_base_encoding(idx, encoding);</div><div class='add'>+    enc_check_addable(enc_table, name);</div><div class='add'>+    idx = enc_register(enc_table, name, encoding);</div><div class='add'>+    if (idx &lt; 0) rb_raise(rb_eArgError, "invalid encoding name: %s", name);</div><div class='add'>+    set_base_encoding(enc_table, idx, encoding);</div><div class='ctx'>     set_encoding_const(name, rb_enc_from_index(idx));</div><div class='ctx'>     return idx;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+int</div><div class='add'>+rb_enc_replicate(const char *name, rb_encoding *encoding)</div><div class='add'>+{</div><div class='add'>+    int r;</div><div class='add'>+</div><div class='add'>+    GLOBAL_ENC_TABLE_EVAL(enc_table,</div><div class='add'>+                          r = enc_replicate(enc_table, name, encoding));</div><div class='add'>+</div><div class='add'>+    return r;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   enc.replicate(name) -&gt; encoding</div><div class='hunk'>@@ -423,25 +526,31 @@ rb_enc_replicate(const char *name, rb_encoding *encoding)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-enc_replicate(VALUE encoding, VALUE name)</div><div class='add'>+enc_replicate_m(VALUE encoding, VALUE name)</div><div class='ctx'> {</div><div class='del'>-    return rb_enc_from_encoding_index(</div><div class='del'>-	rb_enc_replicate(StringValueCStr(name),</div><div class='del'>-			 rb_to_encoding(encoding)));</div><div class='add'>+    int idx;</div><div class='add'>+    rb_warn_deprecated_to_remove("3.3", "Encoding#replicate", "the original encoding");</div><div class='add'>+</div><div class='add'>+    idx = rb_enc_replicate(name_for_encoding(&amp;name), rb_to_encoding(encoding));</div><div class='add'>+    RB_GC_GUARD(name);</div><div class='add'>+    return rb_enc_from_encoding_index(idx);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-enc_replicate_with_index(const char *name, rb_encoding *origenc, int idx)</div><div class='add'>+enc_replicate_with_index(struct enc_table *enc_table, const char *name, rb_encoding *origenc, int idx)</div><div class='ctx'> {</div><div class='ctx'>     if (idx &lt; 0) {</div><div class='del'>-	idx = enc_register(name, origenc);</div><div class='add'>+        idx = enc_register(enc_table, name, origenc);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	idx = enc_register_at(idx, name, origenc);</div><div class='add'>+        idx = enc_register_at(enc_table, idx, name, origenc);</div><div class='ctx'>     }</div><div class='ctx'>     if (idx &gt;= 0) {</div><div class='del'>-	set_base_encoding(idx, origenc);</div><div class='del'>-	set_encoding_const(name, rb_enc_from_index(idx));</div><div class='add'>+        set_base_encoding(enc_table, idx, origenc);</div><div class='add'>+        set_encoding_const(name, rb_enc_from_index(idx));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_raise(rb_eArgError, "failed to replicate encoding");</div><div class='ctx'>     }</div><div class='ctx'>     return idx;</div><div class='ctx'> }</div><div class='hunk'>@@ -449,33 +558,54 @@ enc_replicate_with_index(const char *name, rb_encoding *origenc, int idx)</div><div class='ctx'> int</div><div class='ctx'> rb_encdb_replicate(const char *name, const char *orig)</div><div class='ctx'> {</div><div class='del'>-    int origidx = rb_enc_registered(orig);</div><div class='del'>-    int idx = rb_enc_registered(name);</div><div class='add'>+    int r;</div><div class='add'>+</div><div class='add'>+    GLOBAL_ENC_TABLE_ENTER(enc_table);</div><div class='add'>+    {</div><div class='add'>+        int origidx = enc_registered(enc_table, orig);</div><div class='add'>+        int idx = enc_registered(enc_table, name);</div><div class='ctx'> </div><div class='del'>-    if (origidx &lt; 0) {</div><div class='del'>-	origidx = enc_register(orig, 0);</div><div class='add'>+        if (origidx &lt; 0) {</div><div class='add'>+            origidx = enc_register(enc_table, orig, 0);</div><div class='add'>+        }</div><div class='add'>+        r = enc_replicate_with_index(enc_table, name, rb_enc_from_index(origidx), idx);</div><div class='ctx'>     }</div><div class='del'>-    return enc_replicate_with_index(name, rb_enc_from_index(origidx), idx);</div><div class='add'>+    GLOBAL_ENC_TABLE_LEAVE();</div><div class='add'>+</div><div class='add'>+    return r;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='ctx'> rb_define_dummy_encoding(const char *name)</div><div class='ctx'> {</div><div class='del'>-    int index = rb_enc_replicate(name, rb_ascii8bit_encoding());</div><div class='del'>-    rb_encoding *enc = enc_table.list[index].enc;</div><div class='add'>+    int index;</div><div class='add'>+</div><div class='add'>+    GLOBAL_ENC_TABLE_ENTER(enc_table);</div><div class='add'>+    {</div><div class='add'>+        index = enc_replicate(enc_table, name, rb_ascii8bit_encoding());</div><div class='add'>+        rb_encoding *enc = enc_table-&gt;list[index].enc;</div><div class='add'>+        ENC_SET_DUMMY((rb_raw_encoding *)enc);</div><div class='add'>+    }</div><div class='add'>+    GLOBAL_ENC_TABLE_LEAVE();</div><div class='ctx'> </div><div class='del'>-    ENC_SET_DUMMY((rb_raw_encoding *)enc);</div><div class='ctx'>     return index;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='ctx'> rb_encdb_dummy(const char *name)</div><div class='ctx'> {</div><div class='del'>-    int index = enc_replicate_with_index(name, rb_ascii8bit_encoding(),</div><div class='del'>-					 rb_enc_registered(name));</div><div class='del'>-    rb_encoding *enc = enc_table.list[index].enc;</div><div class='add'>+    int index;</div><div class='add'>+</div><div class='add'>+    GLOBAL_ENC_TABLE_ENTER(enc_table);</div><div class='add'>+    {</div><div class='add'>+        index = enc_replicate_with_index(enc_table, name,</div><div class='add'>+                                         rb_ascii8bit_encoding(),</div><div class='add'>+                                         enc_registered(enc_table, name));</div><div class='add'>+        rb_encoding *enc = enc_table-&gt;list[index].enc;</div><div class='add'>+        ENC_SET_DUMMY((rb_raw_encoding *)enc);</div><div class='add'>+    }</div><div class='add'>+    GLOBAL_ENC_TABLE_LEAVE();</div><div class='ctx'> </div><div class='del'>-    ENC_SET_DUMMY((rb_raw_encoding *)enc);</div><div class='ctx'>     return index;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -495,7 +625,7 @@ rb_encdb_dummy(const char *name)</div><div class='ctx'> static VALUE</div><div class='ctx'> enc_dummy_p(VALUE enc)</div><div class='ctx'> {</div><div class='del'>-    return ENC_DUMMY_P(must_encoding(enc)) ? Qtrue : Qfalse;</div><div class='add'>+    return RBOOL(ENC_DUMMY_P(must_encoding(enc)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -511,7 +641,7 @@ enc_dummy_p(VALUE enc)</div><div class='ctx'> static VALUE</div><div class='ctx'> enc_ascii_compatible_p(VALUE enc)</div><div class='ctx'> {</div><div class='del'>-    return rb_enc_asciicompat(must_encoding(enc)) ? Qtrue : Qfalse;</div><div class='add'>+    return RBOOL(rb_enc_asciicompat(must_encoding(enc)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -534,66 +664,78 @@ enc_dup_name(st_data_t name)</div><div class='ctx'>  * else returns NULL.</div><div class='ctx'>  */</div><div class='ctx'> static int</div><div class='del'>-enc_alias_internal(const char *alias, int idx)</div><div class='add'>+enc_alias_internal(struct enc_table *enc_table, const char *alias, int idx)</div><div class='ctx'> {</div><div class='del'>-    return st_insert2(enc_table.names, (st_data_t)alias, (st_data_t)idx,</div><div class='del'>-		      enc_dup_name);</div><div class='add'>+    return st_insert2(enc_table-&gt;names, (st_data_t)alias, (st_data_t)idx,</div><div class='add'>+                      enc_dup_name);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-enc_alias(const char *alias, int idx)</div><div class='add'>+enc_alias(struct enc_table *enc_table, const char *alias, int idx)</div><div class='ctx'> {</div><div class='ctx'>     if (!valid_encoding_name_p(alias)) return -1;</div><div class='del'>-    if (!enc_alias_internal(alias, idx))</div><div class='del'>-	set_encoding_const(alias, rb_enc_from_index(idx));</div><div class='add'>+    if (!enc_alias_internal(enc_table, alias, idx))</div><div class='add'>+        set_encoding_const(alias, enc_from_index(enc_table, idx));</div><div class='ctx'>     return idx;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='ctx'> rb_enc_alias(const char *alias, const char *orig)</div><div class='ctx'> {</div><div class='del'>-    int idx;</div><div class='add'>+    int idx, r;</div><div class='ctx'> </div><div class='del'>-    enc_check_duplication(alias);</div><div class='del'>-    if (!enc_table.list) {</div><div class='del'>-	rb_enc_init();</div><div class='del'>-    }</div><div class='del'>-    if ((idx = rb_enc_find_index(orig)) &lt; 0) {</div><div class='del'>-	return -1;</div><div class='add'>+    GLOBAL_ENC_TABLE_ENTER(enc_table);</div><div class='add'>+    {</div><div class='add'>+        enc_check_addable(enc_table, alias);</div><div class='add'>+        if ((idx = rb_enc_find_index(orig)) &lt; 0) {</div><div class='add'>+            r =  -1;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            r = enc_alias(enc_table, alias, idx);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    return enc_alias(alias, idx);</div><div class='add'>+    GLOBAL_ENC_TABLE_LEAVE();</div><div class='add'>+</div><div class='add'>+    return r;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='ctx'> rb_encdb_alias(const char *alias, const char *orig)</div><div class='ctx'> {</div><div class='del'>-    int idx = rb_enc_registered(orig);</div><div class='add'>+    int r;</div><div class='ctx'> </div><div class='del'>-    if (idx &lt; 0) {</div><div class='del'>-	idx = enc_register(orig, 0);</div><div class='add'>+    GLOBAL_ENC_TABLE_ENTER(enc_table);</div><div class='add'>+    {</div><div class='add'>+        int idx = enc_registered(enc_table, orig);</div><div class='add'>+</div><div class='add'>+        if (idx &lt; 0) {</div><div class='add'>+            idx = enc_register(enc_table, orig, 0);</div><div class='add'>+        }</div><div class='add'>+        r = enc_alias(enc_table, alias, idx);</div><div class='ctx'>     }</div><div class='del'>-    return enc_alias(alias, idx);</div><div class='del'>-}</div><div class='add'>+    GLOBAL_ENC_TABLE_LEAVE();</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_encdb_set_unicode(int index)</div><div class='del'>-{</div><div class='del'>-    ((rb_raw_encoding *)rb_enc_from_index(index))-&gt;flags |= ONIGENC_FLAG_UNICODE;</div><div class='add'>+    return r;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_enc_init(void)</div><div class='add'>+static void</div><div class='add'>+rb_enc_init(struct enc_table *enc_table)</div><div class='ctx'> {</div><div class='del'>-    enc_table_expand(ENCODING_COUNT + 1);</div><div class='del'>-    if (!enc_table.names) {</div><div class='del'>-	enc_table.names = st_init_strcasetable();</div><div class='add'>+    enc_table_expand(enc_table, ENCODING_COUNT + 1);</div><div class='add'>+    if (!enc_table-&gt;names) {</div><div class='add'>+        enc_table-&gt;names = st_init_strcasetable_with_size(ENCODING_LIST_CAPA);</div><div class='ctx'>     }</div><div class='del'>-#define ENC_REGISTER(enc) enc_register_at(ENCINDEX_##enc, rb_enc_name(&amp;OnigEncoding##enc), &amp;OnigEncoding##enc)</div><div class='del'>-    ENC_REGISTER(ASCII);</div><div class='add'>+#define OnigEncodingASCII_8BIT OnigEncodingASCII</div><div class='add'>+#define ENC_REGISTER(enc) enc_register_at(enc_table, ENCINDEX_##enc, rb_enc_name(&amp;OnigEncoding##enc), &amp;OnigEncoding##enc)</div><div class='add'>+    ENC_REGISTER(ASCII_8BIT);</div><div class='ctx'>     ENC_REGISTER(UTF_8);</div><div class='ctx'>     ENC_REGISTER(US_ASCII);</div><div class='add'>+    global_enc_ascii = enc_table-&gt;list[ENCINDEX_ASCII_8BIT].enc;</div><div class='add'>+    global_enc_utf_8 = enc_table-&gt;list[ENCINDEX_UTF_8].enc;</div><div class='add'>+    global_enc_us_ascii = enc_table-&gt;list[ENCINDEX_US_ASCII].enc;</div><div class='ctx'> #undef ENC_REGISTER</div><div class='del'>-#define ENCDB_REGISTER(name, enc) enc_register_at(ENCINDEX_##enc, name, NULL)</div><div class='add'>+#undef OnigEncodingASCII_8BIT</div><div class='add'>+#define ENCDB_REGISTER(name, enc) enc_register_at(enc_table, ENCINDEX_##enc, name, NULL)</div><div class='ctx'>     ENCDB_REGISTER("UTF-16BE", UTF_16BE);</div><div class='ctx'>     ENCDB_REGISTER("UTF-16LE", UTF_16LE);</div><div class='ctx'>     ENCDB_REGISTER("UTF-32BE", UTF_32BE);</div><div class='hunk'>@@ -605,19 +747,7 @@ rb_enc_init(void)</div><div class='ctx'>     ENCDB_REGISTER("EUC-JP", EUC_JP);</div><div class='ctx'>     ENCDB_REGISTER("Windows-31J", Windows_31J);</div><div class='ctx'> #undef ENCDB_REGISTER</div><div class='del'>-    enc_table.count = ENCINDEX_BUILTIN_MAX;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-rb_encoding *</div><div class='del'>-rb_enc_from_index(int index)</div><div class='del'>-{</div><div class='del'>-    if (!enc_table.list) {</div><div class='del'>-	rb_enc_init();</div><div class='del'>-    }</div><div class='del'>-    if (index &lt; 0 || enc_table.count &lt;= (index &amp;= ENC_INDEX_MASK)) {</div><div class='del'>-	return 0;</div><div class='del'>-    }</div><div class='del'>-    return enc_table.list[index].enc;</div><div class='add'>+    enc_table-&gt;count = ENCINDEX_BUILTIN_MAX;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> rb_encoding *</div><div class='hunk'>@@ -626,24 +756,12 @@ rb_enc_get_from_index(int index)</div><div class='ctx'>     return must_encindex(index);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-int</div><div class='del'>-rb_enc_registered(const char *name)</div><div class='del'>-{</div><div class='del'>-    st_data_t idx = 0;</div><div class='del'>-</div><div class='del'>-    if (!name) return -1;</div><div class='del'>-    if (!enc_table.list) return -1;</div><div class='del'>-    if (st_lookup(enc_table.names, (st_data_t)name, &amp;idx)) {</div><div class='del'>-	return (int)idx;</div><div class='del'>-    }</div><div class='del'>-    return -1;</div><div class='del'>-}</div><div class='add'>+int rb_require_internal_silent(VALUE fname);</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> load_encoding(const char *name)</div><div class='ctx'> {</div><div class='ctx'>     VALUE enclib = rb_sprintf("enc/%s.so", name);</div><div class='del'>-    VALUE verbose = ruby_verbose;</div><div class='ctx'>     VALUE debug = ruby_debug;</div><div class='ctx'>     VALUE errinfo;</div><div class='ctx'>     char *s = RSTRING_PTR(enclib) + 4, *e = RSTRING_END(enclib) - 3;</div><div class='hunk'>@@ -651,46 +769,65 @@ load_encoding(const char *name)</div><div class='ctx'>     int idx;</div><div class='ctx'> </div><div class='ctx'>     while (s &lt; e) {</div><div class='del'>-	if (!ISALNUM(*s)) *s = '_';</div><div class='del'>-	else if (ISUPPER(*s)) *s = (char)TOLOWER(*s);</div><div class='del'>-	++s;</div><div class='add'>+        if (!ISALNUM(*s)) *s = '_';</div><div class='add'>+        else if (ISUPPER(*s)) *s = (char)TOLOWER(*s);</div><div class='add'>+        ++s;</div><div class='ctx'>     }</div><div class='del'>-    FL_UNSET(enclib, FL_TAINT);</div><div class='ctx'>     enclib = rb_fstring(enclib);</div><div class='del'>-    ruby_verbose = Qfalse;</div><div class='ctx'>     ruby_debug = Qfalse;</div><div class='ctx'>     errinfo = rb_errinfo();</div><div class='del'>-    loaded = rb_require_internal(enclib, rb_safe_level());</div><div class='del'>-    ruby_verbose = verbose;</div><div class='add'>+    loaded = rb_require_internal_silent(enclib);</div><div class='ctx'>     ruby_debug = debug;</div><div class='ctx'>     rb_set_errinfo(errinfo);</div><div class='del'>-    if (loaded &lt; 0 || 1 &lt; loaded) return -1;</div><div class='del'>-    if ((idx = rb_enc_registered(name)) &lt; 0) return -1;</div><div class='del'>-    if (enc_autoload_p(enc_table.list[idx].enc)) return -1;</div><div class='add'>+</div><div class='add'>+    GLOBAL_ENC_TABLE_ENTER(enc_table);</div><div class='add'>+    {</div><div class='add'>+        if (loaded &lt; 0 || 1 &lt; loaded) {</div><div class='add'>+            idx = -1;</div><div class='add'>+        }</div><div class='add'>+        else if ((idx = enc_registered(enc_table, name)) &lt; 0) {</div><div class='add'>+            idx = -1;</div><div class='add'>+        }</div><div class='add'>+        else if (rb_enc_autoload_p(enc_table-&gt;list[idx].enc)) {</div><div class='add'>+            idx = -1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    GLOBAL_ENC_TABLE_LEAVE();</div><div class='add'>+</div><div class='ctx'>     return idx;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-enc_autoload(rb_encoding *enc)</div><div class='add'>+enc_autoload_body(struct enc_table *enc_table, rb_encoding *enc)</div><div class='ctx'> {</div><div class='del'>-    int i;</div><div class='del'>-    rb_encoding *base = enc_table.list[ENC_TO_ENCINDEX(enc)].base;</div><div class='add'>+    rb_encoding *base = enc_table-&gt;list[ENC_TO_ENCINDEX(enc)].base;</div><div class='ctx'> </div><div class='ctx'>     if (base) {</div><div class='del'>-	i = 0;</div><div class='del'>-	do {</div><div class='del'>-	    if (i &gt;= enc_table.count) return -1;</div><div class='del'>-	} while (enc_table.list[i].enc != base &amp;&amp; (++i, 1));</div><div class='del'>-	if (enc_autoload_p(base)) {</div><div class='del'>-	    if (enc_autoload(base) &lt; 0) return -1;</div><div class='del'>-	}</div><div class='del'>-	i = enc-&gt;ruby_encoding_index;</div><div class='del'>-	enc_register_at(i &amp; ENC_INDEX_MASK, rb_enc_name(enc), base);</div><div class='del'>-	((rb_raw_encoding *)enc)-&gt;ruby_encoding_index = i;</div><div class='del'>-	i &amp;= ENC_INDEX_MASK;</div><div class='add'>+        int i = 0;</div><div class='add'>+        do {</div><div class='add'>+            if (i &gt;= enc_table-&gt;count) return -1;</div><div class='add'>+        } while (enc_table-&gt;list[i].enc != base &amp;&amp; (++i, 1));</div><div class='add'>+        if (rb_enc_autoload_p(base)) {</div><div class='add'>+            if (rb_enc_autoload(base) &lt; 0) return -1;</div><div class='add'>+        }</div><div class='add'>+        i = enc-&gt;ruby_encoding_index;</div><div class='add'>+        enc_register_at(enc_table, i &amp; ENC_INDEX_MASK, rb_enc_name(enc), base);</div><div class='add'>+        ((rb_raw_encoding *)enc)-&gt;ruby_encoding_index = i;</div><div class='add'>+        i &amp;= ENC_INDEX_MASK;</div><div class='add'>+        return i;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	i = load_encoding(rb_enc_name(enc));</div><div class='add'>+        return -2;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_enc_autoload(rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    GLOBAL_ENC_TABLE_EVAL(enc_table, i = enc_autoload_body(enc_table, enc));</div><div class='add'>+    if (i == -2) {</div><div class='add'>+        i = load_encoding(rb_enc_name(enc));</div><div class='ctx'>     }</div><div class='ctx'>     return i;</div><div class='ctx'> }</div><div class='hunk'>@@ -699,23 +836,23 @@ enc_autoload(rb_encoding *enc)</div><div class='ctx'> int</div><div class='ctx'> rb_enc_find_index(const char *name)</div><div class='ctx'> {</div><div class='del'>-    int i = rb_enc_registered(name);</div><div class='add'>+    int i = enc_registered(&amp;global_enc_table, name);</div><div class='ctx'>     rb_encoding *enc;</div><div class='ctx'> </div><div class='ctx'>     if (i &lt; 0) {</div><div class='del'>-	i = load_encoding(name);</div><div class='add'>+        i = load_encoding(name);</div><div class='ctx'>     }</div><div class='ctx'>     else if (!(enc = rb_enc_from_index(i))) {</div><div class='del'>-	if (i != UNSPECIFIED_ENCODING) {</div><div class='del'>-	    rb_raise(rb_eArgError, "encoding %s is not registered", name);</div><div class='del'>-	}</div><div class='add'>+        if (i != UNSPECIFIED_ENCODING) {</div><div class='add'>+            rb_raise(rb_eArgError, "encoding %s is not registered", name);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    else if (enc_autoload_p(enc)) {</div><div class='del'>-	if (enc_autoload(enc) &lt; 0) {</div><div class='del'>-	    rb_warn("failed to load encoding (%s); use ASCII-8BIT instead",</div><div class='del'>-		    name);</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='add'>+    else if (rb_enc_autoload_p(enc)) {</div><div class='add'>+        if (rb_enc_autoload(enc) &lt; 0) {</div><div class='add'>+            rb_warn("failed to load encoding (%s); use ASCII-8BIT instead",</div><div class='add'>+                    name);</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return i;</div><div class='ctx'> }</div><div class='hunk'>@@ -748,11 +885,11 @@ enc_capable(VALUE obj)</div><div class='ctx'>       case T_REGEXP:</div><div class='ctx'>       case T_FILE:</div><div class='ctx'>       case T_SYMBOL:</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>       case T_DATA:</div><div class='del'>-	if (is_data_encoding(obj)) return TRUE;</div><div class='add'>+        if (is_data_encoding(obj)) return TRUE;</div><div class='ctx'>       default:</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -774,10 +911,20 @@ enc_get_index_str(VALUE str)</div><div class='ctx'> {</div><div class='ctx'>     int i = ENCODING_GET_INLINED(str);</div><div class='ctx'>     if (i == ENCODING_INLINE_MAX) {</div><div class='del'>-	VALUE iv;</div><div class='del'>-</div><div class='del'>-	iv = rb_ivar_get(str, rb_id_encoding());</div><div class='del'>-	i = NUM2INT(iv);</div><div class='add'>+        VALUE iv;</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+        iv = rb_ivar_get(str, rb_id_encoding());</div><div class='add'>+        i = NUM2INT(iv);</div><div class='add'>+#else</div><div class='add'>+        /*</div><div class='add'>+         * Tentatively, assume ASCII-8BIT, if encoding index instance</div><div class='add'>+         * variable is not found.  This can happen when freeing after</div><div class='add'>+         * all instance variables are removed in `obj_free`.</div><div class='add'>+         */</div><div class='add'>+        iv = rb_attr_get(str, rb_id_encoding());</div><div class='add'>+        i = NIL_P(iv) ? ENCINDEX_ASCII_8BIT : NUM2INT(iv);</div><div class='add'>+#endif</div><div class='ctx'>     }</div><div class='ctx'>     return i;</div><div class='ctx'> }</div><div class='hunk'>@@ -789,31 +936,31 @@ rb_enc_get_index(VALUE obj)</div><div class='ctx'>     VALUE tmp;</div><div class='ctx'> </div><div class='ctx'>     if (SPECIAL_CONST_P(obj)) {</div><div class='del'>-	if (!SYMBOL_P(obj)) return -1;</div><div class='del'>-	obj = rb_sym2str(obj);</div><div class='add'>+        if (!SYMBOL_P(obj)) return -1;</div><div class='add'>+        obj = rb_sym2str(obj);</div><div class='ctx'>     }</div><div class='ctx'>     switch (BUILTIN_TYPE(obj)) {</div><div class='ctx'>       case T_STRING:</div><div class='ctx'>       case T_SYMBOL:</div><div class='ctx'>       case T_REGEXP:</div><div class='del'>-	i = enc_get_index_str(obj);</div><div class='del'>-	break;</div><div class='add'>+        i = enc_get_index_str(obj);</div><div class='add'>+        break;</div><div class='ctx'>       case T_FILE:</div><div class='del'>-	tmp = rb_funcallv(obj, rb_intern("internal_encoding"), 0, 0);</div><div class='del'>-	if (NIL_P(tmp)) {</div><div class='del'>-	    tmp = rb_funcallv(obj, rb_intern("external_encoding"), 0, 0);</div><div class='del'>-	}</div><div class='del'>-	if (is_obj_encoding(tmp)) {</div><div class='del'>-	    i = enc_check_encoding(tmp);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        tmp = rb_funcallv(obj, rb_intern("internal_encoding"), 0, 0);</div><div class='add'>+        if (NIL_P(tmp)) {</div><div class='add'>+            tmp = rb_funcallv(obj, rb_intern("external_encoding"), 0, 0);</div><div class='add'>+        }</div><div class='add'>+        if (is_obj_encoding(tmp)) {</div><div class='add'>+            i = enc_check_encoding(tmp);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case T_DATA:</div><div class='del'>-	if (is_data_encoding(obj)) {</div><div class='del'>-	    i = enc_check_encoding(obj);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (is_data_encoding(obj)) {</div><div class='add'>+            i = enc_check_encoding(obj);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'>     return i;</div><div class='ctx'> }</div><div class='hunk'>@@ -826,8 +973,8 @@ enc_set_index(VALUE obj, int idx)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (idx &lt; ENCODING_INLINE_MAX) {</div><div class='del'>-	ENCODING_SET_INLINED(obj, idx);</div><div class='del'>-	return;</div><div class='add'>+        ENCODING_SET_INLINED(obj, idx);</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='ctx'>     ENCODING_SET_INLINED(obj, ENCODING_INLINE_MAX);</div><div class='ctx'>     rb_ivar_set(obj, rb_id_encoding(), INT2NUM(idx));</div><div class='hunk'>@@ -851,19 +998,19 @@ rb_enc_associate_index(VALUE obj, int idx)</div><div class='ctx'>     rb_check_frozen(obj);</div><div class='ctx'>     oldidx = rb_enc_get_index(obj);</div><div class='ctx'>     if (oldidx == idx)</div><div class='del'>-	return obj;</div><div class='add'>+        return obj;</div><div class='ctx'>     if (SPECIAL_CONST_P(obj)) {</div><div class='del'>-	rb_raise(rb_eArgError, "cannot set encoding");</div><div class='add'>+        rb_raise(rb_eArgError, "cannot set encoding");</div><div class='ctx'>     }</div><div class='ctx'>     enc = must_encindex(idx);</div><div class='ctx'>     if (!ENC_CODERANGE_ASCIIONLY(obj) ||</div><div class='del'>-	!rb_enc_asciicompat(enc)) {</div><div class='del'>-	ENC_CODERANGE_CLEAR(obj);</div><div class='add'>+        !rb_enc_asciicompat(enc)) {</div><div class='add'>+        ENC_CODERANGE_CLEAR(obj);</div><div class='ctx'>     }</div><div class='ctx'>     termlen = rb_enc_mbminlen(enc);</div><div class='ctx'>     oldtermlen = rb_enc_mbminlen(rb_enc_from_index(oldidx));</div><div class='ctx'>     if (oldtermlen != termlen &amp;&amp; RB_TYPE_P(obj, T_STRING)) {</div><div class='del'>-	rb_str_change_terminator_length(obj, oldtermlen, termlen);</div><div class='add'>+        rb_str_change_terminator_length(obj, oldtermlen, termlen);</div><div class='ctx'>     }</div><div class='ctx'>     enc_set_index(obj, idx);</div><div class='ctx'>     return obj;</div><div class='hunk'>@@ -881,28 +1028,30 @@ rb_enc_get(VALUE obj)</div><div class='ctx'>     return rb_enc_from_index(rb_enc_get_index(obj));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static rb_encoding*</div><div class='add'>+rb_encoding_check(rb_encoding* enc, VALUE str1, VALUE str2)</div><div class='add'>+{</div><div class='add'>+    if (!enc)</div><div class='add'>+        rb_raise(rb_eEncCompatError, "incompatible character encodings: %s and %s",</div><div class='add'>+                 rb_enc_name(rb_enc_get(str1)),</div><div class='add'>+                 rb_enc_name(rb_enc_get(str2)));</div><div class='add'>+    return enc;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static rb_encoding* enc_compatible_str(VALUE str1, VALUE str2);</div><div class='ctx'> </div><div class='ctx'> rb_encoding*</div><div class='ctx'> rb_enc_check_str(VALUE str1, VALUE str2)</div><div class='ctx'> {</div><div class='ctx'>     rb_encoding *enc = enc_compatible_str(MUST_STRING(str1), MUST_STRING(str2));</div><div class='del'>-    if (!enc)</div><div class='del'>-	rb_raise(rb_eEncCompatError, "incompatible character encodings: %s and %s",</div><div class='del'>-		 rb_enc_name(rb_enc_get(str1)),</div><div class='del'>-		 rb_enc_name(rb_enc_get(str2)));</div><div class='del'>-    return enc;</div><div class='add'>+    return rb_encoding_check(enc, str1, str2);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> rb_encoding*</div><div class='ctx'> rb_enc_check(VALUE str1, VALUE str2)</div><div class='ctx'> {</div><div class='ctx'>     rb_encoding *enc = rb_enc_compatible(str1, str2);</div><div class='del'>-    if (!enc)</div><div class='del'>-	rb_raise(rb_eEncCompatError, "incompatible character encodings: %s and %s",</div><div class='del'>-		 rb_enc_name(rb_enc_get(str1)),</div><div class='del'>-		 rb_enc_name(rb_enc_get(str2)));</div><div class='del'>-    return enc;</div><div class='add'>+    return rb_encoding_check(enc, str1, str2);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static rb_encoding*</div><div class='hunk'>@@ -914,48 +1063,48 @@ enc_compatible_latter(VALUE str1, VALUE str2, int idx1, int idx2)</div><div class='ctx'> </div><div class='ctx'>     isstr2 = RB_TYPE_P(str2, T_STRING);</div><div class='ctx'>     if (isstr2 &amp;&amp; RSTRING_LEN(str2) == 0)</div><div class='del'>-	return enc1;</div><div class='add'>+        return enc1;</div><div class='ctx'>     isstr1 = RB_TYPE_P(str1, T_STRING);</div><div class='del'>-    if (isstr1 &amp;&amp; RSTRING_LEN(str1) == 0)</div><div class='del'>-	return (rb_enc_asciicompat(enc1) &amp;&amp; rb_enc_str_asciionly_p(str2)) ? enc1 : enc2;</div><div class='add'>+    if (isstr1 &amp;&amp; isstr2 &amp;&amp; RSTRING_LEN(str1) == 0)</div><div class='add'>+        return (rb_enc_asciicompat(enc1) &amp;&amp; rb_enc_str_asciionly_p(str2)) ? enc1 : enc2;</div><div class='ctx'>     if (!rb_enc_asciicompat(enc1) || !rb_enc_asciicompat(enc2)) {</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* objects whose encoding is the same of contents */</div><div class='ctx'>     if (!isstr2 &amp;&amp; idx2 == ENCINDEX_US_ASCII)</div><div class='del'>-	return enc1;</div><div class='add'>+        return enc1;</div><div class='ctx'>     if (!isstr1 &amp;&amp; idx1 == ENCINDEX_US_ASCII)</div><div class='del'>-	return enc2;</div><div class='add'>+        return enc2;</div><div class='ctx'> </div><div class='ctx'>     if (!isstr1) {</div><div class='del'>-	VALUE tmp = str1;</div><div class='del'>-	int idx0 = idx1;</div><div class='del'>-	str1 = str2;</div><div class='del'>-	str2 = tmp;</div><div class='del'>-	idx1 = idx2;</div><div class='del'>-	idx2 = idx0;</div><div class='del'>-	idx0 = isstr1;</div><div class='del'>-	isstr1 = isstr2;</div><div class='del'>-	isstr2 = idx0;</div><div class='add'>+        VALUE tmp = str1;</div><div class='add'>+        int idx0 = idx1;</div><div class='add'>+        str1 = str2;</div><div class='add'>+        str2 = tmp;</div><div class='add'>+        idx1 = idx2;</div><div class='add'>+        idx2 = idx0;</div><div class='add'>+        idx0 = isstr1;</div><div class='add'>+        isstr1 = isstr2;</div><div class='add'>+        isstr2 = idx0;</div><div class='ctx'>     }</div><div class='ctx'>     if (isstr1) {</div><div class='del'>-	int cr1, cr2;</div><div class='del'>-</div><div class='del'>-	cr1 = rb_enc_str_coderange(str1);</div><div class='del'>-	if (isstr2) {</div><div class='del'>-	    cr2 = rb_enc_str_coderange(str2);</div><div class='del'>-	    if (cr1 != cr2) {</div><div class='del'>-		/* may need to handle ENC_CODERANGE_BROKEN */</div><div class='del'>-		if (cr1 == ENC_CODERANGE_7BIT) return enc2;</div><div class='del'>-		if (cr2 == ENC_CODERANGE_7BIT) return enc1;</div><div class='del'>-	    }</div><div class='del'>-	    if (cr2 == ENC_CODERANGE_7BIT) {</div><div class='del'>-		return enc1;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (cr1 == ENC_CODERANGE_7BIT)</div><div class='del'>-	    return enc2;</div><div class='add'>+        int cr1, cr2;</div><div class='add'>+</div><div class='add'>+        cr1 = rb_enc_str_coderange(str1);</div><div class='add'>+        if (isstr2) {</div><div class='add'>+            cr2 = rb_enc_str_coderange(str2);</div><div class='add'>+            if (cr1 != cr2) {</div><div class='add'>+                /* may need to handle ENC_CODERANGE_BROKEN */</div><div class='add'>+                if (cr1 == ENC_CODERANGE_7BIT) return enc2;</div><div class='add'>+                if (cr2 == ENC_CODERANGE_7BIT) return enc1;</div><div class='add'>+            }</div><div class='add'>+            if (cr2 == ENC_CODERANGE_7BIT) {</div><div class='add'>+                return enc1;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (cr1 == ENC_CODERANGE_7BIT)</div><div class='add'>+            return enc2;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -970,10 +1119,10 @@ enc_compatible_str(VALUE str1, VALUE str2)</div><div class='ctx'>         return 0;</div><div class='ctx'> </div><div class='ctx'>     if (idx1 == idx2) {</div><div class='del'>-	return rb_enc_from_index(idx1);</div><div class='add'>+        return rb_enc_from_index(idx1);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return enc_compatible_latter(str1, str2, idx1, idx2);</div><div class='add'>+        return enc_compatible_latter(str1, str2, idx1, idx2);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -987,7 +1136,7 @@ rb_enc_compatible(VALUE str1, VALUE str2)</div><div class='ctx'>         return 0;</div><div class='ctx'> </div><div class='ctx'>     if (idx1 == idx2) {</div><div class='del'>-	return rb_enc_from_index(idx1);</div><div class='add'>+        return rb_enc_from_index(idx1);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return enc_compatible_latter(str1, str2, idx1, idx2);</div><div class='hunk'>@@ -1012,7 +1161,7 @@ rb_obj_encoding(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     int idx = rb_enc_get_index(obj);</div><div class='ctx'>     if (idx &lt; 0) {</div><div class='del'>-	rb_raise(rb_eTypeError, "unknown encoding");</div><div class='add'>+        rb_raise(rb_eTypeError, "unknown encoding");</div><div class='ctx'>     }</div><div class='ctx'>     return rb_enc_from_encoding_index(idx &amp; ENC_INDEX_MASK);</div><div class='ctx'> }</div><div class='hunk'>@@ -1079,36 +1228,22 @@ rb_enc_codepoint_len(const char *p, const char *e, int *len_p, rb_encoding *enc)</div><div class='ctx'>         rb_raise(rb_eArgError, "empty string");</div><div class='ctx'>     r = rb_enc_precise_mbclen(p, e, enc);</div><div class='ctx'>     if (!MBCLEN_CHARFOUND_P(r)) {</div><div class='del'>-	rb_raise(rb_eArgError, "invalid byte sequence in %s", rb_enc_name(enc));</div><div class='add'>+        rb_raise(rb_eArgError, "invalid byte sequence in %s", rb_enc_name(enc));</div><div class='ctx'>     }</div><div class='ctx'>     if (len_p) *len_p = MBCLEN_CHARFOUND_LEN(r);</div><div class='ctx'>     return rb_enc_mbc_to_codepoint(p, e, enc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#undef rb_enc_codepoint</div><div class='del'>-unsigned int</div><div class='del'>-rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc)</div><div class='del'>-{</div><div class='del'>-    return rb_enc_codepoint_len(p, e, 0, enc);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> int</div><div class='ctx'> rb_enc_codelen(int c, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     int n = ONIGENC_CODE_TO_MBCLEN(enc,c);</div><div class='ctx'>     if (n == 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "invalid codepoint 0x%x in %s", c, rb_enc_name(enc));</div><div class='add'>+        rb_raise(rb_eArgError, "invalid codepoint 0x%x in %s", c, rb_enc_name(enc));</div><div class='ctx'>     }</div><div class='ctx'>     return n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#undef rb_enc_code_to_mbclen</div><div class='del'>-int</div><div class='del'>-rb_enc_code_to_mbclen(int code, rb_encoding *enc)</div><div class='del'>-{</div><div class='del'>-    return ONIGENC_CODE_TO_MBCLEN(enc, code);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> int</div><div class='ctx'> rb_enc_toupper(int c, rb_encoding *enc)</div><div class='ctx'> {</div><div class='hunk'>@@ -1136,16 +1271,16 @@ enc_inspect(VALUE self)</div><div class='ctx'>     rb_encoding *enc;</div><div class='ctx'> </div><div class='ctx'>     if (!is_data_encoding(self)) {</div><div class='del'>-	not_encoding(self);</div><div class='add'>+        not_encoding(self);</div><div class='ctx'>     }</div><div class='ctx'>     if (!(enc = DATA_PTR(self)) || rb_enc_from_index(rb_enc_to_index(enc)) != enc) {</div><div class='del'>-	rb_raise(rb_eTypeError, "broken Encoding");</div><div class='add'>+        rb_raise(rb_eTypeError, "broken Encoding");</div><div class='ctx'>     }</div><div class='ctx'>     return rb_enc_sprintf(rb_usascii_encoding(),</div><div class='del'>-			  "#&lt;%"PRIsVALUE":%s%s%s&gt;", rb_obj_class(self),</div><div class='del'>-			  rb_enc_name(enc),</div><div class='del'>-			  (ENC_DUMMY_P(enc) ? " (dummy)" : ""),</div><div class='del'>-			  enc_autoload_p(enc) ? " (autoload)" : "");</div><div class='add'>+                          "#&lt;%"PRIsVALUE":%s%s%s&gt;", rb_obj_class(self),</div><div class='add'>+                          rb_enc_name(enc),</div><div class='add'>+                          (ENC_DUMMY_P(enc) ? " (dummy)" : ""),</div><div class='add'>+                          rb_enc_autoload_p(enc) ? " (autoload)" : "");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1169,8 +1304,8 @@ enc_names_i(st_data_t name, st_data_t idx, st_data_t args)</div><div class='ctx'>     VALUE *arg = (VALUE *)args;</div><div class='ctx'> </div><div class='ctx'>     if ((int)idx == (int)arg[0]) {</div><div class='del'>-	VALUE str = rb_fstring_cstr((char *)name);</div><div class='del'>-	rb_ary_push(arg[1], str);</div><div class='add'>+        VALUE str = rb_fstring_cstr((char *)name);</div><div class='add'>+        rb_ary_push(arg[1], str);</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -1181,7 +1316,7 @@ enc_names_i(st_data_t name, st_data_t idx, st_data_t args)</div><div class='ctx'>  *</div><div class='ctx'>  * Returns the list of name and aliases of the encoding.</div><div class='ctx'>  *</div><div class='del'>- *   Encoding::WINDOWS_31J.names  #=&gt; ["Windows-31J", "CP932", "csWindows31J"]</div><div class='add'>+ *   Encoding::WINDOWS_31J.names  #=&gt; ["Windows-31J", "CP932", "csWindows31J", "SJIS", "PCK"]</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> enc_names(VALUE self)</div><div class='hunk'>@@ -1190,7 +1325,7 @@ enc_names(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     args[0] = (VALUE)rb_to_encoding_index(self);</div><div class='ctx'>     args[1] = rb_ary_new2(0);</div><div class='del'>-    st_foreach(enc_table.names, enc_names_i, (st_data_t)args);</div><div class='add'>+    st_foreach(global_enc_table.names, enc_names_i, (st_data_t)args);</div><div class='ctx'>     return args[1];</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1247,7 +1382,7 @@ enc_find(VALUE klass, VALUE enc)</div><div class='ctx'> {</div><div class='ctx'>     int idx;</div><div class='ctx'>     if (is_obj_encoding(enc))</div><div class='del'>-	return enc;</div><div class='add'>+        return enc;</div><div class='ctx'>     idx = str_to_encindex(enc);</div><div class='ctx'>     if (idx == UNSPECIFIED_ENCODING) return Qnil;</div><div class='ctx'>     return rb_enc_from_encoding_index(idx);</div><div class='hunk'>@@ -1289,12 +1424,13 @@ enc_compatible_p(VALUE klass, VALUE str1, VALUE str2)</div><div class='ctx'>     return rb_enc_from_encoding(enc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+NORETURN(static VALUE enc_s_alloc(VALUE klass));</div><div class='ctx'> /* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> enc_s_alloc(VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     rb_undefined_alloc(klass);</div><div class='del'>-    return Qnil;</div><div class='add'>+    UNREACHABLE_RETURN(Qnil);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='hunk'>@@ -1322,25 +1458,19 @@ enc_m_loader(VALUE klass, VALUE str)</div><div class='ctx'> rb_encoding *</div><div class='ctx'> rb_ascii8bit_encoding(void)</div><div class='ctx'> {</div><div class='del'>-    if (!enc_table.list) {</div><div class='del'>-	rb_enc_init();</div><div class='del'>-    }</div><div class='del'>-    return enc_table.list[ENCINDEX_ASCII].enc;</div><div class='add'>+    return global_enc_ascii;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='ctx'> rb_ascii8bit_encindex(void)</div><div class='ctx'> {</div><div class='del'>-    return ENCINDEX_ASCII;</div><div class='add'>+    return ENCINDEX_ASCII_8BIT;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> rb_encoding *</div><div class='ctx'> rb_utf8_encoding(void)</div><div class='ctx'> {</div><div class='del'>-    if (!enc_table.list) {</div><div class='del'>-	rb_enc_init();</div><div class='del'>-    }</div><div class='del'>-    return enc_table.list[ENCINDEX_UTF_8].enc;</div><div class='add'>+    return global_enc_utf_8;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='hunk'>@@ -1352,10 +1482,7 @@ rb_utf8_encindex(void)</div><div class='ctx'> rb_encoding *</div><div class='ctx'> rb_usascii_encoding(void)</div><div class='ctx'> {</div><div class='del'>-    if (!enc_table.list) {</div><div class='del'>-	rb_enc_init();</div><div class='del'>-    }</div><div class='del'>-    return enc_table.list[ENCINDEX_US_ASCII].enc;</div><div class='add'>+    return global_enc_us_ascii;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='hunk'>@@ -1371,14 +1498,18 @@ rb_locale_encindex(void)</div><div class='ctx'> {</div><div class='ctx'>     int idx = rb_locale_charmap_index();</div><div class='ctx'> </div><div class='del'>-    if (idx &lt; 0) idx = ENCINDEX_ASCII;</div><div class='add'>+    if (idx &lt; 0) idx = ENCINDEX_UTF_8;</div><div class='ctx'> </div><div class='del'>-    if (rb_enc_registered("locale") &lt; 0) {</div><div class='add'>+    if (enc_registered(&amp;global_enc_table, "locale") &lt; 0) {</div><div class='ctx'> # if defined _WIN32</div><div class='del'>-	void Init_w32_codepage(void);</div><div class='del'>-	Init_w32_codepage();</div><div class='add'>+        void Init_w32_codepage(void);</div><div class='add'>+        Init_w32_codepage();</div><div class='ctx'> # endif</div><div class='del'>-	enc_alias_internal("locale", idx);</div><div class='add'>+        GLOBAL_ENC_TABLE_ENTER(enc_table);</div><div class='add'>+        {</div><div class='add'>+            enc_alias_internal(enc_table, "locale", idx);</div><div class='add'>+        }</div><div class='add'>+        GLOBAL_ENC_TABLE_LEAVE();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return idx;</div><div class='hunk'>@@ -1393,9 +1524,8 @@ rb_locale_encoding(void)</div><div class='ctx'> int</div><div class='ctx'> rb_filesystem_encindex(void)</div><div class='ctx'> {</div><div class='del'>-    int idx = rb_enc_registered("filesystem");</div><div class='del'>-    if (idx &lt; 0)</div><div class='del'>-	idx = ENCINDEX_ASCII;</div><div class='add'>+    int idx = enc_registered(&amp;global_enc_table, "filesystem");</div><div class='add'>+    if (idx &lt; 0) idx = ENCINDEX_ASCII_8BIT;</div><div class='ctx'>     return idx;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1418,23 +1548,35 @@ enc_set_default_encoding(struct default_encoding *def, VALUE encoding, const cha</div><div class='ctx'>     int overridden = FALSE;</div><div class='ctx'> </div><div class='ctx'>     if (def-&gt;index != -2)</div><div class='del'>-	/* Already set */</div><div class='del'>-	overridden = TRUE;</div><div class='del'>-</div><div class='del'>-    if (NIL_P(encoding)) {</div><div class='del'>-	def-&gt;index = -1;</div><div class='del'>-	def-&gt;enc = 0;</div><div class='del'>-	st_insert(enc_table.names, (st_data_t)strdup(name),</div><div class='del'>-		  (st_data_t)UNSPECIFIED_ENCODING);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	def-&gt;index = rb_enc_to_index(rb_to_encoding(encoding));</div><div class='del'>-	def-&gt;enc = 0;</div><div class='del'>-	enc_alias_internal(name, def-&gt;index);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (def == &amp;default_external)</div><div class='del'>-	enc_alias_internal("filesystem", Init_enc_set_filesystem_encoding());</div><div class='add'>+        /* Already set */</div><div class='add'>+        overridden = TRUE;</div><div class='add'>+</div><div class='add'>+    GLOBAL_ENC_TABLE_ENTER(enc_table);</div><div class='add'>+    {</div><div class='add'>+        if (NIL_P(encoding)) {</div><div class='add'>+            def-&gt;index = -1;</div><div class='add'>+            def-&gt;enc = 0;</div><div class='add'>+            char *name_dup = strdup(name);</div><div class='add'>+</div><div class='add'>+            st_data_t existing_name = (st_data_t)name_dup;</div><div class='add'>+            if (st_delete(enc_table-&gt;names, &amp;existing_name, NULL)) {</div><div class='add'>+                xfree((void *)existing_name);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            st_insert(enc_table-&gt;names, (st_data_t)name_dup,</div><div class='add'>+                      (st_data_t)UNSPECIFIED_ENCODING);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            def-&gt;index = rb_enc_to_index(rb_to_encoding(encoding));</div><div class='add'>+            def-&gt;enc = 0;</div><div class='add'>+            enc_alias_internal(enc_table, name, def-&gt;index);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (def == &amp;default_external) {</div><div class='add'>+            enc_alias_internal(enc_table, "filesystem", Init_enc_set_filesystem_encoding());</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    GLOBAL_ENC_TABLE_LEAVE();</div><div class='ctx'> </div><div class='ctx'>     return overridden;</div><div class='ctx'> }</div><div class='hunk'>@@ -1481,9 +1623,11 @@ rb_enc_default_external(void)</div><div class='ctx'>  * encoding may not be valid.  Be sure to check String#valid_encoding?.</div><div class='ctx'>  *</div><div class='ctx'>  * File data written to disk will be transcoded to the default external</div><div class='del'>- * encoding when written.</div><div class='add'>+ * encoding when written, if default_internal is not nil.</div><div class='ctx'>  *</div><div class='del'>- * The default external encoding is initialized by the locale or -E option.</div><div class='add'>+ * The default external encoding is initialized by the -E option.</div><div class='add'>+ * If -E isn't set, it is initialized to UTF-8 on Windows and the locale on</div><div class='add'>+ * other operating systems.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> get_default_external(VALUE klass)</div><div class='hunk'>@@ -1563,11 +1707,10 @@ rb_enc_default_internal(void)</div><div class='ctx'>  * Additionally String#encode and String#encode! use the default internal</div><div class='ctx'>  * encoding if no encoding is given.</div><div class='ctx'>  *</div><div class='del'>- * The locale encoding (__ENCODING__), not default_internal, is used as the</div><div class='add'>+ * The script encoding (__ENCODING__), not default_internal, is used as the</div><div class='ctx'>  * encoding of created strings.</div><div class='ctx'>  *</div><div class='del'>- * Encoding::default_internal is initialized by the source file's</div><div class='del'>- * internal_encoding or -E option.</div><div class='add'>+ * Encoding::default_internal is initialized with -E option or nil otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> get_default_internal(VALUE klass)</div><div class='hunk'>@@ -1612,45 +1755,45 @@ set_encoding_const(const char *name, rb_encoding *enc)</div><div class='ctx'> </div><div class='ctx'>     if (ISDIGIT(*s)) return;</div><div class='ctx'>     if (ISUPPER(*s)) {</div><div class='del'>-	hasupper = 1;</div><div class='del'>-	while (*++s &amp;&amp; (ISALNUM(*s) || *s == '_')) {</div><div class='del'>-	    if (ISLOWER(*s)) haslower = 1;</div><div class='del'>-	}</div><div class='add'>+        hasupper = 1;</div><div class='add'>+        while (*++s &amp;&amp; (ISALNUM(*s) || *s == '_')) {</div><div class='add'>+            if (ISLOWER(*s)) haslower = 1;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (!*s) {</div><div class='del'>-	if (s - name &gt; ENCODING_NAMELEN_MAX) return;</div><div class='del'>-	valid = 1;</div><div class='del'>-	rb_define_const(rb_cEncoding, name, encoding);</div><div class='add'>+        if (s - name &gt; ENCODING_NAMELEN_MAX) return;</div><div class='add'>+        valid = 1;</div><div class='add'>+        rb_define_const(rb_cEncoding, name, encoding);</div><div class='ctx'>     }</div><div class='ctx'>     if (!valid || haslower) {</div><div class='del'>-	size_t len = s - name;</div><div class='del'>-	if (len &gt; ENCODING_NAMELEN_MAX) return;</div><div class='del'>-	if (!haslower || !hasupper) {</div><div class='del'>-	    do {</div><div class='del'>-		if (ISLOWER(*s)) haslower = 1;</div><div class='del'>-		if (ISUPPER(*s)) hasupper = 1;</div><div class='del'>-	    } while (*++s &amp;&amp; (!haslower || !hasupper));</div><div class='del'>-	    len = s - name;</div><div class='del'>-	}</div><div class='del'>-	len += strlen(s);</div><div class='del'>-	if (len++ &gt; ENCODING_NAMELEN_MAX) return;</div><div class='del'>-	MEMCPY(s = ALLOCA_N(char, len), name, char, len);</div><div class='del'>-	name = s;</div><div class='del'>-	if (!valid) {</div><div class='del'>-	    if (ISLOWER(*s)) *s = ONIGENC_ASCII_CODE_TO_UPPER_CASE((int)*s);</div><div class='del'>-	    for (; *s; ++s) {</div><div class='del'>-		if (!ISALNUM(*s)) *s = '_';</div><div class='del'>-	    }</div><div class='del'>-	    if (hasupper) {</div><div class='del'>-		rb_define_const(rb_cEncoding, name, encoding);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (haslower) {</div><div class='del'>-	    for (s = (char *)name; *s; ++s) {</div><div class='del'>-		if (ISLOWER(*s)) *s = ONIGENC_ASCII_CODE_TO_UPPER_CASE((int)*s);</div><div class='del'>-	    }</div><div class='del'>-	    rb_define_const(rb_cEncoding, name, encoding);</div><div class='del'>-	}</div><div class='add'>+        size_t len = s - name;</div><div class='add'>+        if (len &gt; ENCODING_NAMELEN_MAX) return;</div><div class='add'>+        if (!haslower || !hasupper) {</div><div class='add'>+            do {</div><div class='add'>+                if (ISLOWER(*s)) haslower = 1;</div><div class='add'>+                if (ISUPPER(*s)) hasupper = 1;</div><div class='add'>+            } while (*++s &amp;&amp; (!haslower || !hasupper));</div><div class='add'>+            len = s - name;</div><div class='add'>+        }</div><div class='add'>+        len += strlen(s);</div><div class='add'>+        if (len++ &gt; ENCODING_NAMELEN_MAX) return;</div><div class='add'>+        MEMCPY(s = ALLOCA_N(char, len), name, char, len);</div><div class='add'>+        name = s;</div><div class='add'>+        if (!valid) {</div><div class='add'>+            if (ISLOWER(*s)) *s = ONIGENC_ASCII_CODE_TO_UPPER_CASE((int)*s);</div><div class='add'>+            for (; *s; ++s) {</div><div class='add'>+                if (!ISALNUM(*s)) *s = '_';</div><div class='add'>+            }</div><div class='add'>+            if (hasupper) {</div><div class='add'>+                rb_define_const(rb_cEncoding, name, encoding);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (haslower) {</div><div class='add'>+            for (s = (char *)name; *s; ++s) {</div><div class='add'>+                if (ISLOWER(*s)) *s = ONIGENC_ASCII_CODE_TO_UPPER_CASE((int)*s);</div><div class='add'>+            }</div><div class='add'>+            rb_define_const(rb_cEncoding, name, encoding);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1680,8 +1823,8 @@ rb_enc_name_list_i(st_data_t name, st_data_t idx, st_data_t arg)</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_enc_name_list(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary = rb_ary_new2(enc_table.names-&gt;num_entries);</div><div class='del'>-    st_foreach(enc_table.names, rb_enc_name_list_i, (st_data_t)ary);</div><div class='add'>+    VALUE ary = rb_ary_new2(global_enc_table.names-&gt;num_entries);</div><div class='add'>+    st_foreach(global_enc_table.names, rb_enc_name_list_i, (st_data_t)ary);</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1694,14 +1837,14 @@ rb_enc_aliases_enc_i(st_data_t name, st_data_t orig, st_data_t arg)</div><div class='ctx'>     VALUE key, str = rb_ary_entry(ary, idx);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(str)) {</div><div class='del'>-	rb_encoding *enc = rb_enc_from_index(idx);</div><div class='add'>+        rb_encoding *enc = rb_enc_from_index(idx);</div><div class='ctx'> </div><div class='del'>-	if (!enc) return ST_CONTINUE;</div><div class='del'>-	if (STRCASECMP((char*)name, rb_enc_name(enc)) == 0) {</div><div class='del'>-	    return ST_CONTINUE;</div><div class='del'>-	}</div><div class='del'>-	str = rb_fstring_cstr(rb_enc_name(enc));</div><div class='del'>-	rb_ary_store(ary, idx, str);</div><div class='add'>+        if (!enc) return ST_CONTINUE;</div><div class='add'>+        if (STRCASECMP((char*)name, rb_enc_name(enc)) == 0) {</div><div class='add'>+            return ST_CONTINUE;</div><div class='add'>+        }</div><div class='add'>+        str = rb_fstring_cstr(rb_enc_name(enc));</div><div class='add'>+        rb_ary_store(ary, idx, str);</div><div class='ctx'>     }</div><div class='ctx'>     key = rb_fstring_cstr((char *)name);</div><div class='ctx'>     rb_hash_aset(aliases, key, str);</div><div class='hunk'>@@ -1715,8 +1858,8 @@ rb_enc_aliases_enc_i(st_data_t name, st_data_t orig, st_data_t arg)</div><div class='ctx'>  * Returns the hash of available encoding alias and original encoding name.</div><div class='ctx'>  *</div><div class='ctx'>  *   Encoding.aliases</div><div class='del'>- *   #=&gt; {"BINARY"=&gt;"ASCII-8BIT", "ASCII"=&gt;"US-ASCII", "ANSI_X3.4-1986"=&gt;"US-ASCII",</div><div class='del'>- *         "SJIS"=&gt;"Shift_JIS", "eucJP"=&gt;"EUC-JP", "CP932"=&gt;"Windows-31J"}</div><div class='add'>+ *   #=&gt; {"BINARY"=&gt;"ASCII-8BIT", "ASCII"=&gt;"US-ASCII", "ANSI_X3.4-1968"=&gt;"US-ASCII",</div><div class='add'>+ *         "SJIS"=&gt;"Windows-31J", "eucJP"=&gt;"EUC-JP", "CP932"=&gt;"Windows-31J"}</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -1726,215 +1869,46 @@ rb_enc_aliases(VALUE klass)</div><div class='ctx'>     VALUE aliases[2];</div><div class='ctx'>     aliases[0] = rb_hash_new();</div><div class='ctx'>     aliases[1] = rb_ary_new();</div><div class='del'>-    st_foreach(enc_table.names, rb_enc_aliases_enc_i, (st_data_t)aliases);</div><div class='add'>+</div><div class='add'>+    st_foreach(global_enc_table.names, rb_enc_aliases_enc_i, (st_data_t)aliases);</div><div class='add'>+</div><div class='ctx'>     return aliases[0];</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * An Encoding instance represents a character encoding usable in Ruby. It is</div><div class='del'>- * defined as a constant under the Encoding namespace. It has a name and</div><div class='del'>- * optionally, aliases:</div><div class='del'>- *</div><div class='del'>- *   Encoding::ISO_8859_1.name</div><div class='del'>- *   #=&gt; "ISO-8859-1"</div><div class='del'>- *</div><div class='del'>- *   Encoding::ISO_8859_1.names</div><div class='del'>- *   #=&gt; ["ISO-8859-1", "ISO8859-1"]</div><div class='del'>- *</div><div class='del'>- * Ruby methods dealing with encodings return or accept Encoding instances as</div><div class='del'>- * arguments (when a method accepts an Encoding instance as an argument, it</div><div class='del'>- * can be passed an Encoding name or alias instead).</div><div class='del'>- *</div><div class='del'>- *   "some string".encoding</div><div class='del'>- *   #=&gt; #&lt;Encoding:UTF-8&gt;</div><div class='del'>- *</div><div class='del'>- *   string = "some string".encode(Encoding::ISO_8859_1)</div><div class='del'>- *   #=&gt; "some string"</div><div class='del'>- *   string.encoding</div><div class='del'>- *   #=&gt; #&lt;Encoding:ISO-8859-1&gt;</div><div class='del'>- *</div><div class='del'>- *   "some string".encode "ISO-8859-1"</div><div class='del'>- *   #=&gt; "some string"</div><div class='del'>- *</div><div class='del'>- * &lt;code&gt;Encoding::ASCII_8BIT&lt;/code&gt; is a special encoding that is usually</div><div class='del'>- * used for a byte string, not a character string. But as the name insists,</div><div class='del'>- * its characters in the range of ASCII are considered as ASCII characters.</div><div class='del'>- * This is useful when you use ASCII-8BIT characters with other ASCII</div><div class='del'>- * compatible characters.</div><div class='del'>- *</div><div class='del'>- * == Changing an encoding</div><div class='del'>- *</div><div class='del'>- * The associated Encoding of a String can be changed in two different ways.</div><div class='del'>- *</div><div class='del'>- * First, it is possible to set the Encoding of a string to a new Encoding</div><div class='del'>- * without changing the internal byte representation of the string, with</div><div class='del'>- * String#force_encoding. This is how you can tell Ruby the correct encoding</div><div class='del'>- * of a string.</div><div class='del'>- *</div><div class='del'>- *   string</div><div class='del'>- *   #=&gt; "R\xC3\xA9sum\xC3\xA9"</div><div class='del'>- *   string.encoding</div><div class='del'>- *   #=&gt; #&lt;Encoding:ISO-8859-1&gt;</div><div class='del'>- *   string.force_encoding(Encoding::UTF_8)</div><div class='del'>- *   #=&gt; "R\u00E9sum\u00E9"</div><div class='del'>- *</div><div class='del'>- * Second, it is possible to transcode a string, i.e. translate its internal</div><div class='del'>- * byte representation to another encoding. Its associated encoding is also</div><div class='del'>- * set to the other encoding. See String#encode for the various forms of</div><div class='del'>- * transcoding, and the Encoding::Converter class for additional control over</div><div class='del'>- * the transcoding process.</div><div class='del'>- *</div><div class='del'>- *   string</div><div class='del'>- *   #=&gt; "R\u00E9sum\u00E9"</div><div class='del'>- *   string.encoding</div><div class='del'>- *   #=&gt; #&lt;Encoding:UTF-8&gt;</div><div class='del'>- *   string = string.encode!(Encoding::ISO_8859_1)</div><div class='del'>- *   #=&gt; "R\xE9sum\xE9"</div><div class='del'>- *   string.encoding</div><div class='del'>- *   #=&gt; #&lt;Encoding::ISO-8859-1&gt;</div><div class='del'>- *</div><div class='del'>- * == Script encoding</div><div class='del'>- *</div><div class='del'>- * All Ruby script code has an associated Encoding which any String literal</div><div class='del'>- * created in the source code will be associated to.</div><div class='del'>- *</div><div class='del'>- * The default script encoding is &lt;code&gt;Encoding::UTF-8&lt;/code&gt; after v2.0, but it can</div><div class='del'>- * be changed by a magic comment on the first line of the source code file (or</div><div class='del'>- * second line, if there is a shebang line on the first). The comment must</div><div class='del'>- * contain the word &lt;code&gt;coding&lt;/code&gt; or &lt;code&gt;encoding&lt;/code&gt;, followed</div><div class='del'>- * by a colon, space and the Encoding name or alias:</div><div class='del'>- *</div><div class='del'>- *   # encoding: UTF-8</div><div class='del'>- *</div><div class='del'>- *   "some string".encoding</div><div class='del'>- *   #=&gt; #&lt;Encoding:UTF-8&gt;</div><div class='del'>- *</div><div class='del'>- * The &lt;code&gt;__ENCODING__&lt;/code&gt; keyword returns the script encoding of the file</div><div class='del'>- * which the keyword is written:</div><div class='del'>- *</div><div class='del'>- *   # encoding: ISO-8859-1</div><div class='del'>- *</div><div class='del'>- *   __ENCODING__</div><div class='del'>- *   #=&gt; #&lt;Encoding:ISO-8859-1&gt;</div><div class='del'>- *</div><div class='del'>- * &lt;code&gt;ruby -K&lt;/code&gt; will change the default locale encoding, but this is</div><div class='del'>- * not recommended. Ruby source files should declare its script encoding by a</div><div class='del'>- * magic comment even when they only depend on US-ASCII strings or regular</div><div class='del'>- * expressions.</div><div class='add'>+ * An \Encoding instance represents a character encoding usable in Ruby.</div><div class='add'>+ * It is defined as a constant under the \Encoding namespace.</div><div class='add'>+ * It has a name and, optionally, aliases:</div><div class='ctx'>  *</div><div class='del'>- * == Locale encoding</div><div class='add'>+ *   Encoding::US_ASCII.name  # =&gt; "US-ASCII"</div><div class='add'>+ *   Encoding::US_ASCII.names # =&gt; ["US-ASCII", "ASCII", "ANSI_X3.4-1968", "646"]</div><div class='ctx'>  *</div><div class='del'>- * The default encoding of the environment. Usually derived from locale.</div><div class='add'>+ * A Ruby method that accepts an encoding as an argument will accept:</div><div class='ctx'>  *</div><div class='del'>- * see Encoding.locale_charmap, Encoding.find('locale')</div><div class='add'>+ * - An \Encoding object.</div><div class='add'>+ * - The name of an encoding.</div><div class='add'>+ * - An alias for an encoding name.</div><div class='ctx'>  *</div><div class='del'>- * == Filesystem encoding</div><div class='add'>+ * These are equivalent:</div><div class='ctx'>  *</div><div class='del'>- * The default encoding of strings from the filesystem of the environment.</div><div class='del'>- * This is used for strings of file names or paths.</div><div class='add'>+ *   'foo'.encode(Encoding::US_ASCII) # Encoding object.</div><div class='add'>+ *   'foo'.encode('US-ASCII')         # Encoding name.</div><div class='add'>+ *   'foo'.encode('ASCII')            # Encoding alias.</div><div class='ctx'>  *</div><div class='del'>- * see Encoding.find('filesystem')</div><div class='add'>+ * For a full discussion of encodings and their uses,</div><div class='add'>+ * see {the Encodings document}[rdoc-ref:encodings.rdoc].</div><div class='ctx'>  *</div><div class='del'>- * == External encoding</div><div class='del'>- *</div><div class='del'>- * Each IO object has an external encoding which indicates the encoding that</div><div class='del'>- * Ruby will use to read its data. By default Ruby sets the external encoding</div><div class='del'>- * of an IO object to the default external encoding. The default external</div><div class='del'>- * encoding is set by locale encoding or the interpreter &lt;code&gt;-E&lt;/code&gt; option.</div><div class='del'>- * Encoding.default_external returns the current value of the external</div><div class='del'>- * encoding.</div><div class='del'>- *</div><div class='del'>- *   ENV["LANG"]</div><div class='del'>- *   #=&gt; "UTF-8"</div><div class='del'>- *   Encoding.default_external</div><div class='del'>- *   #=&gt; #&lt;Encoding:UTF-8&gt;</div><div class='del'>- *</div><div class='del'>- *   $ ruby -E ISO-8859-1 -e "p Encoding.default_external"</div><div class='del'>- *   #&lt;Encoding:ISO-8859-1&gt;</div><div class='del'>- *</div><div class='del'>- *   $ LANG=C ruby -e 'p Encoding.default_external'</div><div class='del'>- *   #&lt;Encoding:US-ASCII&gt;</div><div class='del'>- *</div><div class='del'>- * The default external encoding may also be set through</div><div class='del'>- * Encoding.default_external=, but you should not do this as strings created</div><div class='del'>- * before and after the change will have inconsistent encodings.  Instead use</div><div class='del'>- * &lt;code&gt;ruby -E&lt;/code&gt; to invoke ruby with the correct external encoding.</div><div class='del'>- *</div><div class='del'>- * When you know that the actual encoding of the data of an IO object is not</div><div class='del'>- * the default external encoding, you can reset its external encoding with</div><div class='del'>- * IO#set_encoding or set it at IO object creation (see IO.new options).</div><div class='del'>- *</div><div class='del'>- * == Internal encoding</div><div class='del'>- *</div><div class='del'>- * To process the data of an IO object which has an encoding different</div><div class='del'>- * from its external encoding, you can set its internal encoding. Ruby will use</div><div class='del'>- * this internal encoding to transcode the data when it is read from the IO</div><div class='del'>- * object.</div><div class='del'>- *</div><div class='del'>- * Conversely, when data is written to the IO object it is transcoded from the</div><div class='del'>- * internal encoding to the external encoding of the IO object.</div><div class='del'>- *</div><div class='del'>- * The internal encoding of an IO object can be set with</div><div class='del'>- * IO#set_encoding or at IO object creation (see IO.new options).</div><div class='del'>- *</div><div class='del'>- * The internal encoding is optional and when not set, the Ruby default</div><div class='del'>- * internal encoding is used. If not explicitly set this default internal</div><div class='del'>- * encoding is +nil+ meaning that by default, no transcoding occurs.</div><div class='del'>- *</div><div class='del'>- * The default internal encoding can be set with the interpreter option</div><div class='del'>- * &lt;code&gt;-E&lt;/code&gt;. Encoding.default_internal returns the current internal</div><div class='del'>- * encoding.</div><div class='del'>- *</div><div class='del'>- *    $ ruby -e 'p Encoding.default_internal'</div><div class='del'>- *    nil</div><div class='del'>- *</div><div class='del'>- *    $ ruby -E ISO-8859-1:UTF-8 -e "p [Encoding.default_external, \</div><div class='del'>- *      Encoding.default_internal]"</div><div class='del'>- *    [#&lt;Encoding:ISO-8859-1&gt;, #&lt;Encoding:UTF-8&gt;]</div><div class='del'>- *</div><div class='del'>- * The default internal encoding may also be set through</div><div class='del'>- * Encoding.default_internal=, but you should not do this as strings created</div><div class='del'>- * before and after the change will have inconsistent encodings.  Instead use</div><div class='del'>- * &lt;code&gt;ruby -E&lt;/code&gt; to invoke ruby with the correct internal encoding.</div><div class='del'>- *</div><div class='del'>- * == IO encoding example</div><div class='del'>- *</div><div class='del'>- * In the following example a UTF-8 encoded string "R\u00E9sum\u00E9" is transcoded for</div><div class='del'>- * output to ISO-8859-1 encoding, then read back in and transcoded to UTF-8:</div><div class='del'>- *</div><div class='del'>- *   string = "R\u00E9sum\u00E9"</div><div class='del'>- *</div><div class='del'>- *   open("transcoded.txt", "w:ISO-8859-1") do |io|</div><div class='del'>- *     io.write(string)</div><div class='del'>- *   end</div><div class='del'>- *</div><div class='del'>- *   puts "raw text:"</div><div class='del'>- *   p File.binread("transcoded.txt")</div><div class='del'>- *   puts</div><div class='del'>- *</div><div class='del'>- *   open("transcoded.txt", "r:ISO-8859-1:UTF-8") do |io|</div><div class='del'>- *     puts "transcoded text:"</div><div class='del'>- *     p io.read</div><div class='del'>- *   end</div><div class='del'>- *</div><div class='del'>- * While writing the file, the internal encoding is not specified as it is</div><div class='del'>- * only necessary for reading.  While reading the file both the internal and</div><div class='del'>- * external encoding must be specified to obtain the correct result.</div><div class='del'>- *</div><div class='del'>- *   $ ruby t.rb</div><div class='del'>- *   raw text:</div><div class='del'>- *   "R\xE9sum\xE9"</div><div class='del'>- *</div><div class='del'>- *   transcoded text:</div><div class='del'>- *   "R\u00E9sum\u00E9"</div><div class='add'>+ * Encoding::ASCII_8BIT is a special-purpose encoding that is usually used for</div><div class='add'>+ * a string of bytes, not a string of characters.</div><div class='add'>+ * But as the name indicates, its characters in the ASCII range</div><div class='add'>+ * are considered as ASCII characters.</div><div class='add'>+ * This is useful when you use other ASCII-compatible encodings.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_Encoding(void)</div><div class='ctx'> {</div><div class='del'>-#undef rb_intern</div><div class='del'>-#define rb_intern(str) rb_intern_const(str)</div><div class='ctx'>     VALUE list;</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='hunk'>@@ -1947,7 +1921,7 @@ Init_Encoding(void)</div><div class='ctx'>     rb_define_method(rb_cEncoding, "names", enc_names, 0);</div><div class='ctx'>     rb_define_method(rb_cEncoding, "dummy?", enc_dummy_p, 0);</div><div class='ctx'>     rb_define_method(rb_cEncoding, "ascii_compatible?", enc_ascii_compatible_p, 0);</div><div class='del'>-    rb_define_method(rb_cEncoding, "replicate", enc_replicate, 1);</div><div class='add'>+    rb_define_method(rb_cEncoding, "replicate", enc_replicate_m, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cEncoding, "list", enc_list, 0);</div><div class='ctx'>     rb_define_singleton_method(rb_cEncoding, "name_list", rb_enc_name_list, 0);</div><div class='ctx'>     rb_define_singleton_method(rb_cEncoding, "aliases", rb_enc_aliases, 0);</div><div class='hunk'>@@ -1963,16 +1937,23 @@ Init_Encoding(void)</div><div class='ctx'>     rb_define_singleton_method(rb_cEncoding, "default_internal=", set_default_internal, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cEncoding, "locale_charmap", rb_locale_charmap, 0); /* in localeinit.c */</div><div class='ctx'> </div><div class='del'>-    list = rb_ary_new2(enc_table.count);</div><div class='add'>+    struct enc_table *enc_table = &amp;global_enc_table;</div><div class='add'>+</div><div class='add'>+    list = rb_encoding_list = rb_ary_new2(ENCODING_LIST_CAPA);</div><div class='ctx'>     RBASIC_CLEAR_CLASS(list);</div><div class='del'>-    rb_encoding_list = list;</div><div class='ctx'>     rb_gc_register_mark_object(list);</div><div class='ctx'> </div><div class='del'>-    for (i = 0; i &lt; enc_table.count; ++i) {</div><div class='del'>-	rb_ary_push(list, enc_new(enc_table.list[i].enc));</div><div class='add'>+    for (i = 0; i &lt; enc_table-&gt;count; ++i) {</div><div class='add'>+        rb_ary_push(list, enc_new(enc_table-&gt;list[i].enc));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    rb_marshal_define_compat(rb_cEncoding, Qnil, NULL, enc_m_loader);</div><div class='add'>+    rb_marshal_define_compat(rb_cEncoding, Qnil, 0, enc_m_loader);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_encodings(void)</div><div class='add'>+{</div><div class='add'>+    rb_enc_init(&amp;global_enc_table);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* locale insensitive ctype functions */</div><div class='hunk'>@@ -1980,5 +1961,5 @@ Init_Encoding(void)</div><div class='ctx'> void</div><div class='ctx'> rb_enc_foreach_name(int (*func)(st_data_t name, st_data_t idx, st_data_t arg), st_data_t arg)</div><div class='ctx'> {</div><div class='del'>-    st_foreach(enc_table.names, func, arg);</div><div class='add'>+    st_foreach(global_enc_table.names, func, arg);</div><div class='ctx'> }</div><div class='head'>diff --git a/enum.c b/enum.c<br/>index a739d335a9..b3c715e0a1 100644<br/>--- a/<a href='/ruby.git/tree/enum.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enum.c</a><br/>+++ b/<a href='/ruby.git/tree/enum.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enum.c</a></div><div class='hunk'>@@ -9,20 +9,39 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby/encoding.h"</div><div class='add'>+#include "id.h"</div><div class='ctx'> #include "internal.h"</div><div class='add'>+#include "internal/compar.h"</div><div class='add'>+#include "internal/enum.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/imemo.h"</div><div class='add'>+#include "internal/numeric.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/proc.h"</div><div class='add'>+#include "internal/rational.h"</div><div class='add'>+#include "internal/re.h"</div><div class='ctx'> #include "ruby/util.h"</div><div class='del'>-#include "id.h"</div><div class='add'>+#include "ruby_assert.h"</div><div class='ctx'> #include "symbol.h"</div><div class='del'>-#include "transient_heap.h"</div><div class='del'>-</div><div class='del'>-#include &lt;assert.h&gt;</div><div class='ctx'> </div><div class='ctx'> VALUE rb_mEnumerable;</div><div class='ctx'> </div><div class='ctx'> static ID id_next;</div><div class='del'>-static ID id_div;</div><div class='del'>-</div><div class='add'>+static ID id__alone;</div><div class='add'>+static ID id__separator;</div><div class='add'>+static ID id_chunk_categorize;</div><div class='add'>+static ID id_chunk_enumerable;</div><div class='add'>+static ID id_sliceafter_enum;</div><div class='add'>+static ID id_sliceafter_pat;</div><div class='add'>+static ID id_sliceafter_pred;</div><div class='add'>+static ID id_slicebefore_enumerable;</div><div class='add'>+static ID id_slicebefore_sep_pat;</div><div class='add'>+static ID id_slicebefore_sep_pred;</div><div class='add'>+static ID id_slicewhen_enum;</div><div class='add'>+static ID id_slicewhen_inverted;</div><div class='add'>+static ID id_slicewhen_pred;</div><div class='add'>+</div><div class='add'>+#define id_div idDiv</div><div class='ctx'> #define id_each idEach</div><div class='ctx'> #define id_eqq  idEqq</div><div class='ctx'> #define id_cmp  idCmp</div><div class='hunk'>@@ -46,9 +65,9 @@ static VALUE</div><div class='ctx'> enum_yield(int argc, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     if (argc &gt; 1)</div><div class='del'>-	return rb_yield_force_blockarg(ary);</div><div class='add'>+        return rb_yield_force_blockarg(ary);</div><div class='ctx'>     if (argc == 1)</div><div class='del'>-	return rb_yield(ary);</div><div class='add'>+        return rb_yield(ary);</div><div class='ctx'>     return rb_yield_values2(0, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -58,9 +77,9 @@ enum_yield_array(VALUE ary)</div><div class='ctx'>     long len = RARRAY_LEN(ary);</div><div class='ctx'> </div><div class='ctx'>     if (len &gt; 1)</div><div class='del'>-	return rb_yield_force_blockarg(ary);</div><div class='add'>+        return rb_yield_force_blockarg(ary);</div><div class='ctx'>     if (len == 1)</div><div class='del'>-	return rb_yield(RARRAY_AREF(ary, 0));</div><div class='add'>+        return rb_yield(RARRAY_AREF(ary, 0));</div><div class='ctx'>     return rb_yield_values2(0, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -71,7 +90,23 @@ grep_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(rb_funcallv(memo-&gt;v1, id_eqq, 1, &amp;i)) == RTEST(memo-&gt;u3.value)) {</div><div class='del'>-	rb_ary_push(memo-&gt;v2, i);</div><div class='add'>+        rb_ary_push(memo-&gt;v2, i);</div><div class='add'>+    }</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+grep_regexp_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='add'>+{</div><div class='add'>+    struct MEMO *memo = MEMO_CAST(args);</div><div class='add'>+    VALUE converted_element, match;</div><div class='add'>+    ENUM_WANT_SVALUE();</div><div class='add'>+</div><div class='add'>+    /* In case element can't be converted to a Symbol or String: not a match (don't raise) */</div><div class='add'>+    converted_element = SYMBOL_P(i) ? i : rb_check_string_type(i);</div><div class='add'>+    match = NIL_P(converted_element) ? Qfalse : rb_reg_match_p(memo-&gt;v1, i, 0);</div><div class='add'>+    if (match == memo-&gt;u3.value) {</div><div class='add'>+        rb_ary_push(memo-&gt;v2, i);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -83,64 +118,93 @@ grep_iter_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(rb_funcallv(memo-&gt;v1, id_eqq, 1, &amp;i)) == RTEST(memo-&gt;u3.value)) {</div><div class='del'>-	rb_ary_push(memo-&gt;v2, enum_yield(argc, i));</div><div class='add'>+        rb_ary_push(memo-&gt;v2, enum_yield(argc, i));</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+enum_grep0(VALUE obj, VALUE pat, VALUE test)</div><div class='add'>+{</div><div class='add'>+    VALUE ary = rb_ary_new();</div><div class='add'>+    struct MEMO *memo = MEMO_NEW(pat, ary, test);</div><div class='add'>+    rb_block_call_func_t fn;</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+        fn = grep_iter_i;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(pat, T_REGEXP) &amp;&amp;</div><div class='add'>+      LIKELY(rb_method_basic_definition_p(CLASS_OF(pat), idEqq))) {</div><div class='add'>+        fn = grep_regexp_i;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        fn = grep_i;</div><div class='add'>+    }</div><div class='add'>+    rb_block_call(obj, id_each, 0, 0, fn, (VALUE)memo);</div><div class='add'>+</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     enum.grep(pattern)                  -&gt; array</div><div class='del'>- *     enum.grep(pattern) { |obj| block }  -&gt; array</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   grep(pattern) -&gt; array</div><div class='add'>+ *   grep(pattern) {|element| ... } -&gt; array</div><div class='add'>+ *</div><div class='add'>+ * Returns an array of objects based elements of +self+ that match the given pattern.</div><div class='ctx'>  *</div><div class='del'>- *  Returns an array of every element in &lt;i&gt;enum&lt;/i&gt; for which</div><div class='del'>- *  &lt;code&gt;Pattern === element&lt;/code&gt;. If the optional &lt;em&gt;block&lt;/em&gt; is</div><div class='del'>- *  supplied, each matching element is passed to it, and the block's</div><div class='del'>- *  result is stored in the output array.</div><div class='add'>+ * With no block given, returns an array containing each element</div><div class='add'>+ * for which &lt;tt&gt;pattern === element&lt;/tt&gt; is +true+:</div><div class='ctx'>  *</div><div class='del'>- *     (1..100).grep 38..44   #=&gt; [38, 39, 40, 41, 42, 43, 44]</div><div class='del'>- *     c = IO.constants</div><div class='del'>- *     c.grep(/SEEK/)         #=&gt; [:SEEK_SET, :SEEK_CUR, :SEEK_END]</div><div class='del'>- *     res = c.grep(/SEEK/) { |v| IO.const_get(v) }</div><div class='del'>- *     res                    #=&gt; [0, 1, 2]</div><div class='add'>+ *   a = ['foo', 'bar', 'car', 'moo']</div><div class='add'>+ *   a.grep(/ar/)                   # =&gt; ["bar", "car"]</div><div class='add'>+ *   (1..10).grep(3..8)             # =&gt; [3, 4, 5, 6, 7, 8]</div><div class='add'>+ *   ['a', 'b', 0, 1].grep(Integer) # =&gt; [0, 1]</div><div class='ctx'>  *</div><div class='add'>+ * With a block given,</div><div class='add'>+ * calls the block with each matching element and returns an array containing each</div><div class='add'>+ * object returned by the block:</div><div class='add'>+ *</div><div class='add'>+ *   a = ['foo', 'bar', 'car', 'moo']</div><div class='add'>+ *   a.grep(/ar/) {|element| element.upcase } # =&gt; ["BAR", "CAR"]</div><div class='add'>+ *</div><div class='add'>+ * Related: #grep_v.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> enum_grep(VALUE obj, VALUE pat)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary = rb_ary_new();</div><div class='del'>-    struct MEMO *memo = MEMO_NEW(pat, ary, Qtrue);</div><div class='del'>-</div><div class='del'>-    rb_block_call(obj, id_each, 0, 0, rb_block_given_p() ? grep_iter_i : grep_i, (VALUE)memo);</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='add'>+    return enum_grep0(obj, pat, Qtrue);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     enum.grep_v(pattern)                  -&gt; array</div><div class='del'>- *     enum.grep_v(pattern) { |obj| block }  -&gt; array</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   grep_v(pattern) -&gt; array</div><div class='add'>+ *   grep_v(pattern) {|element| ... } -&gt; array</div><div class='ctx'>  *</div><div class='del'>- *  Inverted version of Enumerable#grep.</div><div class='del'>- *  Returns an array of every element in &lt;i&gt;enum&lt;/i&gt; for which</div><div class='del'>- *  not &lt;code&gt;Pattern === element&lt;/code&gt;.</div><div class='add'>+ * Returns an array of objects based on elements of +self+</div><div class='add'>+ * that &lt;em&gt;don't&lt;/em&gt; match the given pattern.</div><div class='ctx'>  *</div><div class='del'>- *     (1..10).grep_v 2..5   #=&gt; [1, 6, 7, 8, 9, 10]</div><div class='del'>- *     res =(1..10).grep_v(2..5) { |v| v * 2 }</div><div class='del'>- *     res                    #=&gt; [2, 12, 14, 16, 18, 20]</div><div class='add'>+ * With no block given, returns an array containing each element</div><div class='add'>+ * for which &lt;tt&gt;pattern === element&lt;/tt&gt; is +false+:</div><div class='ctx'>  *</div><div class='add'>+ *   a = ['foo', 'bar', 'car', 'moo']</div><div class='add'>+ *   a.grep_v(/ar/)                   # =&gt; ["foo", "moo"]</div><div class='add'>+ *   (1..10).grep_v(3..8)             # =&gt; [1, 2, 9, 10]</div><div class='add'>+ *   ['a', 'b', 0, 1].grep_v(Integer) # =&gt; ["a", "b"]</div><div class='add'>+ *</div><div class='add'>+ * With a block given,</div><div class='add'>+ * calls the block with each non-matching element and returns an array containing each</div><div class='add'>+ * object returned by the block:</div><div class='add'>+ *</div><div class='add'>+ *   a = ['foo', 'bar', 'car', 'moo']</div><div class='add'>+ *   a.grep_v(/ar/) {|element| element.upcase } # =&gt; ["FOO", "MOO"]</div><div class='add'>+ *</div><div class='add'>+ * Related: #grep.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> enum_grep_v(VALUE obj, VALUE pat)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary = rb_ary_new();</div><div class='del'>-    struct MEMO *memo = MEMO_NEW(pat, ary, Qfalse);</div><div class='del'>-</div><div class='del'>-    rb_block_call(obj, id_each, 0, 0, rb_block_given_p() ? grep_iter_i : grep_i, (VALUE)memo);</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='add'>+    return enum_grep0(obj, pat, Qfalse);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define COUNT_BIGNUM IMEMO_FL_USER0</div><div class='hunk'>@@ -150,13 +214,13 @@ static void</div><div class='ctx'> imemo_count_up(struct MEMO *memo)</div><div class='ctx'> {</div><div class='ctx'>     if (memo-&gt;flags &amp; COUNT_BIGNUM) {</div><div class='del'>-	MEMO_V3_SET(memo, rb_int_succ(memo-&gt;u3.value));</div><div class='add'>+        MEMO_V3_SET(memo, rb_int_succ(memo-&gt;u3.value));</div><div class='ctx'>     }</div><div class='ctx'>     else if (++memo-&gt;u3.cnt == 0) {</div><div class='del'>-	/* overflow */</div><div class='del'>-	unsigned long buf[2] = {0, 1};</div><div class='del'>-	MEMO_V3_SET(memo, rb_big_unpack(buf, 2));</div><div class='del'>-	memo-&gt;flags |= COUNT_BIGNUM;</div><div class='add'>+        /* overflow */</div><div class='add'>+        unsigned long buf[2] = {0, 1};</div><div class='add'>+        MEMO_V3_SET(memo, rb_big_unpack(buf, 2));</div><div class='add'>+        memo-&gt;flags |= COUNT_BIGNUM;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -164,10 +228,10 @@ static VALUE</div><div class='ctx'> imemo_count_value(struct MEMO *memo)</div><div class='ctx'> {</div><div class='ctx'>     if (memo-&gt;flags &amp; COUNT_BIGNUM) {</div><div class='del'>-	return memo-&gt;u3.value;</div><div class='add'>+        return memo-&gt;u3.value;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return ULONG2NUM(memo-&gt;u3.cnt);</div><div class='add'>+        return ULONG2NUM(memo-&gt;u3.cnt);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -179,7 +243,7 @@ count_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, memop))</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     if (rb_equal(i, memo-&gt;v1)) {</div><div class='del'>-	imemo_count_up(memo);</div><div class='add'>+        imemo_count_up(memo);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -190,7 +254,7 @@ count_iter_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, memop))</div><div class='ctx'>     struct MEMO *memo = MEMO_CAST(memop);</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(rb_yield_values2(argc, argv))) {</div><div class='del'>-	imemo_count_up(memo);</div><div class='add'>+        imemo_count_up(memo);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -205,20 +269,28 @@ count_all_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, memop))</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     enum.count                 -&gt; int</div><div class='del'>- *     enum.count(item)           -&gt; int</div><div class='del'>- *     enum.count { |obj| block } -&gt; int</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   count -&gt; integer</div><div class='add'>+ *   count(object) -&gt; integer</div><div class='add'>+ *   count {|element| ... } -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ * Returns the count of elements, based on an argument or block criterion, if given.</div><div class='add'>+ *</div><div class='add'>+ * With no argument and no block given, returns the number of elements:</div><div class='add'>+ *</div><div class='add'>+ *   [0, 1, 2].count                # =&gt; 3</div><div class='add'>+ *   {foo: 0, bar: 1, baz: 2}.count # =&gt; 3</div><div class='ctx'>  *</div><div class='del'>- *  Returns the number of items in +enum+ through enumeration.</div><div class='del'>- *  If an argument is given, the number of items in +enum+ that</div><div class='del'>- *  are equal to +item+ are counted.  If a block is given, it</div><div class='del'>- *  counts the number of elements yielding a true value.</div><div class='add'>+ * With argument +object+ given,</div><div class='add'>+ * returns the number of elements that are &lt;tt&gt;==&lt;/tt&gt; to +object+:</div><div class='ctx'>  *</div><div class='del'>- *     ary = [1, 2, 4, 2]</div><div class='del'>- *     ary.count               #=&gt; 4</div><div class='del'>- *     ary.count(2)            #=&gt; 2</div><div class='del'>- *     ary.count{ |x| x%2==0 } #=&gt; 3</div><div class='add'>+ *   [0, 1, 2, 1].count(1)           # =&gt; 2</div><div class='add'>+ *</div><div class='add'>+ * With a block given, calls the block with each element</div><div class='add'>+ * and returns the number of elements for which the block returns a truthy value:</div><div class='add'>+ *</div><div class='add'>+ *   [0, 1, 2, 3].count {|element| element &lt; 2}              # =&gt; 2</div><div class='add'>+ *   {foo: 0, bar: 1, baz: 2}.count {|key, value| value &lt; 2} # =&gt; 2</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -230,18 +302,18 @@ enum_count(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     rb_block_call_func *func;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    func = count_iter_i;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    func = count_all_i;</div><div class='del'>-	}</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            func = count_iter_i;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            func = count_all_i;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_scan_args(argc, argv, "1", &amp;item);</div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    rb_warn("given block not used");</div><div class='del'>-	}</div><div class='add'>+        rb_scan_args(argc, argv, "1", &amp;item);</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            rb_warn("given block not used");</div><div class='add'>+        }</div><div class='ctx'>         func = count_i;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -256,38 +328,35 @@ find_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, memop))</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(enum_yield(argc, i))) {</div><div class='del'>-	struct MEMO *memo = MEMO_CAST(memop);</div><div class='del'>-	MEMO_V1_SET(memo, i);</div><div class='del'>-	memo-&gt;u3.cnt = 1;</div><div class='del'>-	rb_iter_break();</div><div class='add'>+        struct MEMO *memo = MEMO_CAST(memop);</div><div class='add'>+        MEMO_V1_SET(memo, i);</div><div class='add'>+        memo-&gt;u3.cnt = 1;</div><div class='add'>+        rb_iter_break();</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     enum.detect(ifnone = nil) { |obj| block } -&gt; obj or nil</div><div class='del'>- *     enum.find(ifnone = nil)   { |obj| block } -&gt; obj or nil</div><div class='del'>- *     enum.detect(ifnone = nil)                 -&gt; an_enumerator</div><div class='del'>- *     enum.find(ifnone = nil)                   -&gt; an_enumerator</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   find(if_none_proc = nil) {|element| ... } -&gt; object or nil</div><div class='add'>+ *   find(if_none_proc = nil) -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Passes each entry in &lt;i&gt;enum&lt;/i&gt; to &lt;em&gt;block&lt;/em&gt;. Returns the</div><div class='del'>- *  first for which &lt;em&gt;block&lt;/em&gt; is not false.  If no</div><div class='del'>- *  object matches, calls &lt;i&gt;ifnone&lt;/i&gt; and returns its result when it</div><div class='del'>- *  is specified, or returns &lt;code&gt;nil&lt;/code&gt; otherwise.</div><div class='add'>+ * Returns the first element for which the block returns a truthy value.</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ * With a block given, calls the block with successive elements of the collection;</div><div class='add'>+ * returns the first element for which the block returns a truthy value:</div><div class='ctx'>  *</div><div class='del'>- *     (1..100).detect  #=&gt; #&lt;Enumerator: 1..100:detect&gt;</div><div class='del'>- *     (1..100).find    #=&gt; #&lt;Enumerator: 1..100:find&gt;</div><div class='add'>+ *   (0..9).find {|element| element &gt; 2}                # =&gt; 3</div><div class='ctx'>  *</div><div class='del'>- *     (1..10).detect   { |i| i % 5 == 0 and i % 7 == 0 }   #=&gt; nil</div><div class='del'>- *     (1..10).find     { |i| i % 5 == 0 and i % 7 == 0 }   #=&gt; nil</div><div class='del'>- *     (1..100).detect  { |i| i % 5 == 0 and i % 7 == 0 }   #=&gt; 35</div><div class='del'>- *     (1..100).find    { |i| i % 5 == 0 and i % 7 == 0 }   #=&gt; 35</div><div class='add'>+ * If no such element is found, calls +if_none_proc+ and returns its return value.</div><div class='add'>+ *</div><div class='add'>+ *   (0..9).find(proc {false}) {|element| element &gt; 12} # =&gt; false</div><div class='add'>+ *   {foo: 0, bar: 1, baz: 2}.find {|key, value| key.start_with?('b') }            # =&gt; [:bar, 1]</div><div class='add'>+ *   {foo: 0, bar: 1, baz: 2}.find(proc {[]}) {|key, value| key.start_with?('c') } # =&gt; []</div><div class='add'>+ *</div><div class='add'>+ * With no block given, returns an \Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> enum_find(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -299,10 +368,10 @@ enum_find(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     memo = MEMO_NEW(Qundef, 0, 0);</div><div class='ctx'>     rb_block_call(obj, id_each, 0, 0, find_i, (VALUE)memo);</div><div class='ctx'>     if (memo-&gt;u3.cnt) {</div><div class='del'>-	return memo-&gt;v1;</div><div class='add'>+        return memo-&gt;v1;</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(if_none)) {</div><div class='del'>-	return rb_funcallv(if_none, id_call, 0, 0);</div><div class='add'>+        return rb_funcallv(if_none, id_call, 0, 0);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -315,8 +384,8 @@ find_index_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, memop))</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     if (rb_equal(i, memo-&gt;v2)) {</div><div class='del'>-	MEMO_V1_SET(memo, imemo_count_value(memo));</div><div class='del'>-	rb_iter_break();</div><div class='add'>+        MEMO_V1_SET(memo, imemo_count_value(memo));</div><div class='add'>+        rb_iter_break();</div><div class='ctx'>     }</div><div class='ctx'>     imemo_count_up(memo);</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -328,29 +397,34 @@ find_index_iter_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, memop))</div><div class='ctx'>     struct MEMO *memo = MEMO_CAST(memop);</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(rb_yield_values2(argc, argv))) {</div><div class='del'>-	MEMO_V1_SET(memo, imemo_count_value(memo));</div><div class='del'>-	rb_iter_break();</div><div class='add'>+        MEMO_V1_SET(memo, imemo_count_value(memo));</div><div class='add'>+        rb_iter_break();</div><div class='ctx'>     }</div><div class='ctx'>     imemo_count_up(memo);</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     enum.find_index(value)          -&gt; int or nil</div><div class='del'>- *     enum.find_index { |obj| block } -&gt; int or nil</div><div class='del'>- *     enum.find_index                 -&gt; an_enumerator</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   find_index(object) -&gt; integer or nil</div><div class='add'>+ *   find_index {|element| ... } -&gt; integer or nil</div><div class='add'>+ *   find_index -&gt; enumerator</div><div class='add'>+ *</div><div class='add'>+ * Returns the index of the first element that meets a specified criterion,</div><div class='add'>+ * or +nil+ if no such element is found.</div><div class='add'>+ *</div><div class='add'>+ * With argument +object+ given,</div><div class='add'>+ * returns the index of the first element that is &lt;tt&gt;==&lt;/tt&gt; +object+:</div><div class='ctx'>  *</div><div class='del'>- *  Compares each entry in &lt;i&gt;enum&lt;/i&gt; with &lt;em&gt;value&lt;/em&gt; or passes</div><div class='del'>- *  to &lt;em&gt;block&lt;/em&gt;.  Returns the index for the first for which the</div><div class='del'>- *  evaluated value is non-false.  If no object matches, returns</div><div class='del'>- *  &lt;code&gt;nil&lt;/code&gt;</div><div class='add'>+ *   ['a', 'b', 'c', 'b'].find_index('b') # =&gt; 1</div><div class='ctx'>  *</div><div class='del'>- *  If neither block nor argument is given, an enumerator is returned instead.</div><div class='add'>+ * With a block given, calls the block with successive elements;</div><div class='add'>+ * returns the first element for which the block returns a truthy value:</div><div class='ctx'>  *</div><div class='del'>- *     (1..10).find_index  { |i| i % 5 == 0 and i % 7 == 0 }  #=&gt; nil</div><div class='del'>- *     (1..100).find_index { |i| i % 5 == 0 and i % 7 == 0 }  #=&gt; 34</div><div class='del'>- *     (1..100).find_index(50)                                #=&gt; 49</div><div class='add'>+ *   ['a', 'b', 'c', 'b'].find_index {|element| element.start_with?('b') } # =&gt; 1</div><div class='add'>+ *   {foo: 0, bar: 1, baz: 2}.find_index {|key, value| value &gt; 1 }         # =&gt; 2</div><div class='add'>+ *</div><div class='add'>+ * With no argument and no block given, returns an \Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -366,10 +440,10 @@ enum_find_index(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>         func = find_index_iter_i;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_scan_args(argc, argv, "1", &amp;condition_value);</div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    rb_warn("given block not used");</div><div class='del'>-	}</div><div class='add'>+        rb_scan_args(argc, argv, "1", &amp;condition_value);</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            rb_warn("given block not used");</div><div class='add'>+        }</div><div class='ctx'>         func = find_index_i;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -384,7 +458,7 @@ find_all_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, ary))</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(enum_yield(argc, i))) {</div><div class='del'>-	rb_ary_push(ary, i);</div><div class='add'>+        rb_ary_push(ary, i);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -414,29 +488,23 @@ enum_size_over_p(VALUE obj, long n)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     enum.find_all { |obj| block } -&gt; array</div><div class='del'>- *     enum.select   { |obj| block } -&gt; array</div><div class='del'>- *     enum.filter   { |obj| block } -&gt; array</div><div class='del'>- *     enum.find_all                 -&gt; an_enumerator</div><div class='del'>- *     enum.select                   -&gt; an_enumerator</div><div class='del'>- *     enum.filter                   -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Returns an array containing all elements of +enum+</div><div class='del'>- *  for which the given +block+ returns a true value.</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   select {|element| ... } -&gt; array</div><div class='add'>+ *   select -&gt; enumerator</div><div class='ctx'>  *</div><div class='add'>+ * Returns an array containing elements selected by the block.</div><div class='ctx'>  *</div><div class='del'>- *     (1..10).find_all { |i|  i % 3 == 0 }   #=&gt; [3, 6, 9]</div><div class='add'>+ * With a block given, calls the block with successive elements;</div><div class='add'>+ * returns an array of those elements for which the block returns a truthy value:</div><div class='ctx'>  *</div><div class='del'>- *     [1,2,3,4,5].select { |num|  num.even?  }   #=&gt; [2, 4]</div><div class='add'>+ *   (0..9).select {|element| element % 3 == 0 } # =&gt; [0, 3, 6, 9]</div><div class='add'>+ *   a = {foo: 0, bar: 1, baz: 2}.select {|key, value| key.start_with?('b') }</div><div class='add'>+ *   a # =&gt; {:bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='del'>- *     [:foo, :bar].filter { |x| x == :foo }   #=&gt; [:foo]</div><div class='add'>+ * With no block given, returns an \Enumerator.</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#reject.</div><div class='add'>+ * Related: #reject.</div><div class='ctx'>  */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> enum_find_all(VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -451,31 +519,74 @@ enum_find_all(VALUE obj)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='add'>+filter_map_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, ary))</div><div class='add'>+{</div><div class='add'>+    i = rb_yield_values2(argc, argv);</div><div class='add'>+</div><div class='add'>+    if (RTEST(i)) {</div><div class='add'>+        rb_ary_push(ary, i);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   filter_map {|element| ... } -&gt; array</div><div class='add'>+ *   filter_map -&gt; enumerator</div><div class='add'>+ *</div><div class='add'>+ * Returns an array containing truthy elements returned by the block.</div><div class='add'>+ *</div><div class='add'>+ * With a block given, calls the block with successive elements;</div><div class='add'>+ * returns an array containing each truthy value returned by the block:</div><div class='add'>+ *</div><div class='add'>+ *   (0..9).filter_map {|i| i * 2 if i.even? }                              # =&gt; [0, 4, 8, 12, 16]</div><div class='add'>+ *   {foo: 0, bar: 1, baz: 2}.filter_map {|key, value| key if value.even? } # =&gt; [:foo, :baz]</div><div class='add'>+ *</div><div class='add'>+ * When no block given, returns an \Enumerator.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+enum_filter_map(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE ary;</div><div class='add'>+</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(obj, 0, 0, enum_size);</div><div class='add'>+</div><div class='add'>+    ary = rb_ary_new();</div><div class='add'>+    rb_block_call(obj, id_each, 0, 0, filter_map_i, ary);</div><div class='add'>+</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='ctx'> reject_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, ary))</div><div class='ctx'> {</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     if (!RTEST(enum_yield(argc, i))) {</div><div class='del'>-	rb_ary_push(ary, i);</div><div class='add'>+        rb_ary_push(ary, i);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     enum.reject { |obj| block } -&gt; array</div><div class='del'>- *     enum.reject                 -&gt; an_enumerator</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   reject {|element| ... } -&gt; array</div><div class='add'>+ *   reject -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Returns an array for all elements of +enum+ for which the given</div><div class='del'>- *  +block+ returns &lt;code&gt;false&lt;/code&gt;.</div><div class='add'>+ * Returns an array of objects rejected by the block.</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an Enumerator is returned instead.</div><div class='add'>+ * With a block given, calls the block with successive elements;</div><div class='add'>+ * returns an array of those elements for which the block returns +nil+ or +false+:</div><div class='ctx'>  *</div><div class='del'>- *     (1..10).reject { |i|  i % 3 == 0 }   #=&gt; [1, 2, 4, 5, 7, 8, 10]</div><div class='add'>+ *   (0..9).reject {|i| i * 2 if i.even? }                             # =&gt; [1, 3, 5, 7, 9]</div><div class='add'>+ *   {foo: 0, bar: 1, baz: 2}.reject {|key, value| key if value.odd? } # =&gt; {:foo=&gt;0, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='del'>- *     [1, 2, 3, 4, 5].reject { |num| num.even? } #=&gt; [1, 3, 5]</div><div class='add'>+ * When no block given, returns an \Enumerator.</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#find_all.</div><div class='add'>+ * Related: #select.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -502,29 +613,27 @@ collect_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, ary))</div><div class='ctx'> static VALUE</div><div class='ctx'> collect_all(RB_BLOCK_CALL_FUNC_ARGLIST(i, ary))</div><div class='ctx'> {</div><div class='del'>-    rb_thread_check_ints();</div><div class='ctx'>     rb_ary_push(ary, rb_enum_values_pack(argc, argv));</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     enum.collect { |obj| block } -&gt; array</div><div class='del'>- *     enum.map     { |obj| block } -&gt; array</div><div class='del'>- *     enum.collect                 -&gt; an_enumerator</div><div class='del'>- *     enum.map                     -&gt; an_enumerator</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   map {|element| ... } -&gt; array</div><div class='add'>+ *   map -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Returns a new array with the results of running &lt;em&gt;block&lt;/em&gt; once</div><div class='del'>- *  for every element in &lt;i&gt;enum&lt;/i&gt;.</div><div class='add'>+ * Returns an array of objects returned by the block.</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ * With a block given, calls the block with successive elements;</div><div class='add'>+ * returns an array of the objects returned by the block:</div><div class='ctx'>  *</div><div class='del'>- *     (1..4).map { |i| i*i }      #=&gt; [1, 4, 9, 16]</div><div class='del'>- *     (1..4).collect { "cat"  }   #=&gt; ["cat", "cat", "cat", "cat"]</div><div class='add'>+ *   (0..4).map {|i| i*i }                               # =&gt; [0, 1, 4, 9, 16]</div><div class='add'>+ *   {foo: 0, bar: 1, baz: 2}.map {|key, value| value*2} # =&gt; [0, 2, 4]</div><div class='add'>+ *</div><div class='add'>+ * With no block given, returns an \Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> enum_collect(VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -549,31 +658,33 @@ flat_map_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, ary))</div><div class='ctx'>     tmp = rb_check_array_type(i);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(tmp)) {</div><div class='del'>-	rb_ary_push(ary, i);</div><div class='add'>+        rb_ary_push(ary, i);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_ary_concat(ary, tmp);</div><div class='add'>+        rb_ary_concat(ary, tmp);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     enum.flat_map       { |obj| block } -&gt; array</div><div class='del'>- *     enum.collect_concat { |obj| block } -&gt; array</div><div class='del'>- *     enum.flat_map                       -&gt; an_enumerator</div><div class='del'>- *     enum.collect_concat                 -&gt; an_enumerator</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   flat_map {|element| ... } -&gt; array</div><div class='add'>+ *   flat_map -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Returns a new array with the concatenated results of running</div><div class='del'>- *  &lt;em&gt;block&lt;/em&gt; once for every element in &lt;i&gt;enum&lt;/i&gt;.</div><div class='add'>+ * Returns an array of flattened objects returned by the block.</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ * With a block given, calls the block with successive elements;</div><div class='add'>+ * returns a flattened array of objects returned by the block:</div><div class='ctx'>  *</div><div class='del'>- *     [1, 2, 3, 4].flat_map { |e| [e, -e] } #=&gt; [1, -1, 2, -2, 3, -3, 4, -4]</div><div class='del'>- *     [[1, 2], [3, 4]].flat_map { |e| e + [100] } #=&gt; [1, 2, 100, 3, 4, 100]</div><div class='add'>+ *   [0, 1, 2, 3].flat_map {|element| -element }                    # =&gt; [0, -1, -2, -3]</div><div class='add'>+ *   [0, 1, 2, 3].flat_map {|element| [element, -element] }         # =&gt; [0, 0, 1, -1, 2, -2, 3, -3]</div><div class='add'>+ *   [[0, 1], [2, 3]].flat_map {|e| e + [100] }                     # =&gt; [0, 1, 100, 2, 3, 100]</div><div class='add'>+ *   {foo: 0, bar: 1, baz: 2}.flat_map {|key, value| [key, value] } # =&gt; [:foo, 0, :bar, 1, :baz, 2]</div><div class='ctx'>  *</div><div class='add'>+ * With no block given, returns an \Enumerator.</div><div class='add'>+ *</div><div class='add'>+ * Alias: #collect_concat.</div><div class='ctx'>  */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> enum_flat_map(VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -589,69 +700,76 @@ enum_flat_map(VALUE obj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.to_a(*args)      -&gt; array</div><div class='del'>- *     enum.entries(*args)   -&gt; array</div><div class='add'>+ *    to_a -&gt; array</div><div class='ctx'>  *</div><div class='del'>- *  Returns an array containing the items in &lt;i&gt;enum&lt;/i&gt;.</div><div class='add'>+ *  Returns an array containing the items in +self+:</div><div class='ctx'>  *</div><div class='del'>- *     (1..7).to_a                       #=&gt; [1, 2, 3, 4, 5, 6, 7]</div><div class='del'>- *     { 'a'=&gt;1, 'b'=&gt;2, 'c'=&gt;3 }.to_a   #=&gt; [["a", 1], ["b", 2], ["c", 3]]</div><div class='add'>+ *    (0..4).to_a # =&gt; [0, 1, 2, 3, 4]</div><div class='ctx'>  *</div><div class='del'>- *     require 'prime'</div><div class='del'>- *     Prime.entries 10                  #=&gt; [2, 3, 5, 7]</div><div class='add'>+ *  Enumerable#entries is an alias for Enumerable#to_a.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> enum_to_a(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary = rb_ary_new();</div><div class='ctx'> </div><div class='del'>-    rb_block_call(obj, id_each, argc, argv, collect_all, ary);</div><div class='del'>-    OBJ_INFECT(ary, obj);</div><div class='add'>+    rb_block_call_kw(obj, id_each, argc, argv, collect_all, ary, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='add'>+enum_hashify_into(VALUE obj, int argc, const VALUE *argv, rb_block_call_func *iter, VALUE hash)</div><div class='add'>+{</div><div class='add'>+    rb_block_call(obj, id_each, argc, argv, iter, hash);</div><div class='add'>+    return hash;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+enum_hashify(VALUE obj, int argc, const VALUE *argv, rb_block_call_func *iter)</div><div class='add'>+{</div><div class='add'>+    return enum_hashify_into(obj, argc, argv, iter, rb_hash_new());</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='ctx'> enum_to_h_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, hash))</div><div class='ctx'> {</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='del'>-    rb_thread_check_ints();</div><div class='ctx'>     return rb_hash_set_pair(hash, i);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> enum_to_h_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, hash))</div><div class='ctx'> {</div><div class='del'>-    rb_thread_check_ints();</div><div class='ctx'>     return rb_hash_set_pair(hash, rb_yield_values2(argc, argv));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.to_h(*args)        -&gt; hash</div><div class='del'>- *     enum.to_h(*args) {...}  -&gt; hash</div><div class='add'>+ *    to_h -&gt; hash</div><div class='add'>+ *    to_h {|element| ... }  -&gt; hash</div><div class='ctx'>  *</div><div class='del'>- *  Returns the result of interpreting &lt;i&gt;enum&lt;/i&gt; as a list of</div><div class='del'>- *  &lt;tt&gt;[key, value]&lt;/tt&gt; pairs.</div><div class='add'>+ *  When +self+ consists of 2-element arrays,</div><div class='add'>+ *  returns a hash each of whose entries is the key-value pair</div><div class='add'>+ *  formed from one of those arrays:</div><div class='ctx'>  *</div><div class='del'>- *     %i[hello world].each_with_index.to_h</div><div class='del'>- *       # =&gt; {:hello =&gt; 0, :world =&gt; 1}</div><div class='add'>+ *    [[:foo, 0], [:bar, 1], [:baz, 2]].to_h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given, the results of the block on each element of</div><div class='del'>- *  the enum will be used as pairs.</div><div class='add'>+ *  When a block is given, the block is called with each element of +self+;</div><div class='add'>+ *  the block should return a 2-element array which becomes a key-value pair</div><div class='add'>+ *  in the returned hash:</div><div class='ctx'>  *</div><div class='del'>- *     (1..5).to_h {|x| [x, x ** 2]}</div><div class='del'>- *       #=&gt; {1=&gt;1, 2=&gt;4, 3=&gt;9, 4=&gt;16, 5=&gt;25}</div><div class='add'>+ *    (0..3).to_h {|i| [i, i ** 2]} # =&gt; {0=&gt;0, 1=&gt;1, 2=&gt;4, 3=&gt;9}</div><div class='add'>+ *</div><div class='add'>+ *  Raises an exception if an element of +self+ is not a 2-element array,</div><div class='add'>+ *  and a block is not passed.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> enum_to_h(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE hash = rb_hash_new();</div><div class='ctx'>     rb_block_call_func *iter = rb_block_given_p() ? enum_to_h_ii : enum_to_h_i;</div><div class='del'>-    rb_block_call(obj, id_each, argc, argv, iter, hash);</div><div class='del'>-    OBJ_INFECT(hash, obj);</div><div class='del'>-    return hash;</div><div class='add'>+    return enum_hashify(obj, argc, argv, iter);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -661,11 +779,11 @@ inject_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, p))</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;v1 == Qundef) {</div><div class='del'>-	MEMO_V1_SET(memo, i);</div><div class='add'>+    if (UNDEF_P(memo-&gt;v1)) {</div><div class='add'>+        MEMO_V1_SET(memo, i);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	MEMO_V1_SET(memo, rb_yield_values(2, memo-&gt;v1, i));</div><div class='add'>+        MEMO_V1_SET(memo, rb_yield_values(2, memo-&gt;v1, i));</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -678,18 +796,18 @@ inject_op_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, p))</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;v1 == Qundef) {</div><div class='del'>-	MEMO_V1_SET(memo, i);</div><div class='add'>+    if (UNDEF_P(memo-&gt;v1)) {</div><div class='add'>+        MEMO_V1_SET(memo, i);</div><div class='ctx'>     }</div><div class='ctx'>     else if (SYMBOL_P(name = memo-&gt;u3.value)) {</div><div class='del'>-	const ID mid = SYM2ID(name);</div><div class='del'>-	MEMO_V1_SET(memo, rb_funcallv(memo-&gt;v1, mid, 1, &amp;i));</div><div class='add'>+        const ID mid = SYM2ID(name);</div><div class='add'>+        MEMO_V1_SET(memo, rb_funcallv_public(memo-&gt;v1, mid, 1, &amp;i));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE args[2];</div><div class='del'>-	args[0] = name;</div><div class='del'>-	args[1] = i;</div><div class='del'>-	MEMO_V1_SET(memo, rb_f_send(numberof(args), args, memo-&gt;v1));</div><div class='add'>+        VALUE args[2];</div><div class='add'>+        args[0] = name;</div><div class='add'>+        args[1] = i;</div><div class='add'>+        MEMO_V1_SET(memo, rb_f_send(numberof(args), args, memo-&gt;v1));</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -702,9 +820,9 @@ ary_inject_op(VALUE ary, VALUE init, VALUE op)</div><div class='ctx'>     long i, n;</div><div class='ctx'> </div><div class='ctx'>     if (RARRAY_LEN(ary) == 0)</div><div class='del'>-        return init == Qundef ? Qnil : init;</div><div class='add'>+        return UNDEF_P(init) ? Qnil : init;</div><div class='ctx'> </div><div class='del'>-    if (init == Qundef) {</div><div class='add'>+    if (UNDEF_P(init)) {</div><div class='ctx'>         v = RARRAY_AREF(ary, 0);</div><div class='ctx'>         i = 1;</div><div class='ctx'>         if (RARRAY_LEN(ary) == 1)</div><div class='hunk'>@@ -717,20 +835,20 @@ ary_inject_op(VALUE ary, VALUE init, VALUE op)</div><div class='ctx'> </div><div class='ctx'>     id = SYM2ID(op);</div><div class='ctx'>     if (id == idPLUS) {</div><div class='del'>-	if (RB_INTEGER_TYPE_P(v) &amp;&amp;</div><div class='del'>-	    rb_method_basic_definition_p(rb_cInteger, idPLUS) &amp;&amp;</div><div class='del'>-	    rb_obj_respond_to(v, idPLUS, FALSE)) {</div><div class='add'>+        if (RB_INTEGER_TYPE_P(v) &amp;&amp;</div><div class='add'>+            rb_method_basic_definition_p(rb_cInteger, idPLUS) &amp;&amp;</div><div class='add'>+            rb_obj_respond_to(v, idPLUS, FALSE)) {</div><div class='ctx'>             n = 0;</div><div class='ctx'>             for (; i &lt; RARRAY_LEN(ary); i++) {</div><div class='ctx'>                 e = RARRAY_AREF(ary, i);</div><div class='ctx'>                 if (FIXNUM_P(e)) {</div><div class='ctx'>                     n += FIX2LONG(e); /* should not overflow long type */</div><div class='ctx'>                     if (!FIXABLE(n)) {</div><div class='del'>-                        v = rb_big_plus(ULONG2NUM(n), v);</div><div class='add'>+                        v = rb_big_plus(LONG2NUM(n), v);</div><div class='ctx'>                         n = 0;</div><div class='ctx'>                     }</div><div class='ctx'>                 }</div><div class='del'>-                else if (RB_TYPE_P(e, T_BIGNUM))</div><div class='add'>+                else if (RB_BIGNUM_TYPE_P(e))</div><div class='ctx'>                     v = rb_big_plus(e, v);</div><div class='ctx'>                 else</div><div class='ctx'>                     goto not_integer;</div><div class='hunk'>@@ -753,48 +871,136 @@ ary_inject_op(VALUE ary, VALUE init, VALUE op)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.inject(initial, sym) -&gt; obj</div><div class='del'>- *     enum.inject(sym)          -&gt; obj</div><div class='del'>- *     enum.inject(initial) { |memo, obj| block }  -&gt; obj</div><div class='del'>- *     enum.inject          { |memo, obj| block }  -&gt; obj</div><div class='del'>- *     enum.reduce(initial, sym) -&gt; obj</div><div class='del'>- *     enum.reduce(sym)          -&gt; obj</div><div class='del'>- *     enum.reduce(initial) { |memo, obj| block }  -&gt; obj</div><div class='del'>- *     enum.reduce          { |memo, obj| block }  -&gt; obj</div><div class='del'>- *</div><div class='del'>- *  Combines all elements of &lt;i&gt;enum&lt;/i&gt; by applying a binary</div><div class='del'>- *  operation, specified by a block or a symbol that names a</div><div class='del'>- *  method or operator.</div><div class='del'>- *</div><div class='del'>- *  The &lt;i&gt;inject&lt;/i&gt; and &lt;i&gt;reduce&lt;/i&gt; methods are aliases. There</div><div class='del'>- *  is no performance benefit to either.</div><div class='del'>- *</div><div class='del'>- *  If you specify a block, then for each element in &lt;i&gt;enum&lt;/i&gt;</div><div class='del'>- *  the block is passed an accumulator value (&lt;i&gt;memo&lt;/i&gt;) and the element.</div><div class='del'>- *  If you specify a symbol instead, then each element in the collection</div><div class='del'>- *  will be passed to the named method of &lt;i&gt;memo&lt;/i&gt;.</div><div class='del'>- *  In either case, the result becomes the new value for &lt;i&gt;memo&lt;/i&gt;.</div><div class='del'>- *  At the end of the iteration, the final value of &lt;i&gt;memo&lt;/i&gt; is the</div><div class='del'>- *  return value for the method.</div><div class='del'>- *</div><div class='del'>- *  If you do not explicitly specify an &lt;i&gt;initial&lt;/i&gt; value for &lt;i&gt;memo&lt;/i&gt;,</div><div class='del'>- *  then the first element of collection is used as the initial value</div><div class='del'>- *  of &lt;i&gt;memo&lt;/i&gt;.</div><div class='del'>- *</div><div class='del'>- *</div><div class='del'>- *     # Sum some numbers</div><div class='del'>- *     (5..10).reduce(:+)                             #=&gt; 45</div><div class='del'>- *     # Same using a block and inject</div><div class='del'>- *     (5..10).inject { |sum, n| sum + n }            #=&gt; 45</div><div class='del'>- *     # Multiply some numbers</div><div class='del'>- *     (5..10).reduce(1, :*)                          #=&gt; 151200</div><div class='del'>- *     # Same using a block</div><div class='del'>- *     (5..10).inject(1) { |product, n| product * n } #=&gt; 151200</div><div class='del'>- *     # find the longest word</div><div class='del'>- *     longest = %w{ cat sheep bear }.inject do |memo, word|</div><div class='del'>- *        memo.length &gt; word.length ? memo : word</div><div class='del'>- *     end</div><div class='del'>- *     longest                                        #=&gt; "sheep"</div><div class='add'>+ *    inject(symbol) -&gt; object</div><div class='add'>+ *    inject(initial_operand, symbol) -&gt; object</div><div class='add'>+ *    inject {|memo, operand| ... } -&gt; object</div><div class='add'>+ *    inject(initial_operand) {|memo, operand| ... } -&gt; object</div><div class='add'>+ *</div><div class='add'>+ *  Returns an object formed from operands via either:</div><div class='add'>+ *</div><div class='add'>+ *  - A method named by +symbol+.</div><div class='add'>+ *  - A block to which each operand is passed.</div><div class='add'>+ *</div><div class='add'>+ *  With method-name argument +symbol+,</div><div class='add'>+ *  combines operands using the method:</div><div class='add'>+ *</div><div class='add'>+ *    # Sum, without initial_operand.</div><div class='add'>+ *    (1..4).inject(:+)     # =&gt; 10</div><div class='add'>+ *    # Sum, with initial_operand.</div><div class='add'>+ *    (1..4).inject(10, :+) # =&gt; 20</div><div class='add'>+ *</div><div class='add'>+ *  With a block, passes each operand to the block:</div><div class='add'>+ *</div><div class='add'>+ *    # Sum of squares, without initial_operand.</div><div class='add'>+ *    (1..4).inject {|sum, n| sum + n*n }    # =&gt; 30</div><div class='add'>+ *    # Sum of squares, with initial_operand.</div><div class='add'>+ *    (1..4).inject(2) {|sum, n| sum + n*n } # =&gt; 32</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Operands&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  If argument +initial_operand+ is not given,</div><div class='add'>+ *  the operands for +inject+ are simply the elements of +self+.</div><div class='add'>+ *  Example calls and their operands:</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;(1..4).inject(:+)&lt;/tt&gt;:: &lt;tt&gt;[1, 2, 3, 4]&lt;/tt&gt;.</div><div class='add'>+ *  - &lt;tt&gt;(1...4).inject(:+)&lt;/tt&gt;:: &lt;tt&gt;[1, 2, 3]&lt;/tt&gt;.</div><div class='add'>+ *  - &lt;tt&gt;('a'..'d').inject(:+)&lt;/tt&gt;:: &lt;tt&gt;['a', 'b', 'c', 'd']&lt;/tt&gt;.</div><div class='add'>+ *  - &lt;tt&gt;('a'...'d').inject(:+)&lt;/tt&gt;:: &lt;tt&gt;['a', 'b', 'c']&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  Examples with first operand (which is &lt;tt&gt;self.first&lt;/tt&gt;) of various types:</div><div class='add'>+ *</div><div class='add'>+ *    # Integer.</div><div class='add'>+ *    (1..4).inject(:+)                # =&gt; 10</div><div class='add'>+ *    # Float.</div><div class='add'>+ *    [1.0, 2, 3, 4].inject(:+)        # =&gt; 10.0</div><div class='add'>+ *    # Character.</div><div class='add'>+ *    ('a'..'d').inject(:+)            # =&gt; "abcd"</div><div class='add'>+ *    # Complex.</div><div class='add'>+ *    [Complex(1, 2), 3, 4].inject(:+) # =&gt; (8+2i)</div><div class='add'>+ *</div><div class='add'>+ *  If argument +initial_operand+ is given,</div><div class='add'>+ *  the operands for +inject+ are that value plus the elements of +self+.</div><div class='add'>+ *  Example calls their operands:</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;(1..4).inject(10, :+)&lt;/tt&gt;:: &lt;tt&gt;[10, 1, 2, 3, 4]&lt;/tt&gt;.</div><div class='add'>+ *  - &lt;tt&gt;(1...4).inject(10, :+)&lt;/tt&gt;:: &lt;tt&gt;[10, 1, 2, 3]&lt;/tt&gt;.</div><div class='add'>+ *  - &lt;tt&gt;('a'..'d').inject('e', :+)&lt;/tt&gt;:: &lt;tt&gt;['e', 'a', 'b', 'c', 'd']&lt;/tt&gt;.</div><div class='add'>+ *  - &lt;tt&gt;('a'...'d').inject('e', :+)&lt;/tt&gt;:: &lt;tt&gt;['e', 'a', 'b', 'c']&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  Examples with +initial_operand+ of various types:</div><div class='add'>+ *</div><div class='add'>+ *    # Integer.</div><div class='add'>+ *    (1..4).inject(2, :+)               # =&gt; 12</div><div class='add'>+ *    # Float.</div><div class='add'>+ *    (1..4).inject(2.0, :+)             # =&gt; 12.0</div><div class='add'>+ *    # String.</div><div class='add'>+ *    ('a'..'d').inject('foo', :+)       # =&gt; "fooabcd"</div><div class='add'>+ *    # Array.</div><div class='add'>+ *    %w[a b c].inject(['x'], :push)     # =&gt; ["x", "a", "b", "c"]</div><div class='add'>+ *    # Complex.</div><div class='add'>+ *    (1..4).inject(Complex(2, 2), :+)   # =&gt; (12+2i)</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Combination by Given \Method&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  If the method-name argument +symbol+ is given,</div><div class='add'>+ *  the operands are combined by that method:</div><div class='add'>+ *</div><div class='add'>+ *  - The first and second operands are combined.</div><div class='add'>+ *  - That result is combined with the third operand.</div><div class='add'>+ *  - That result is combined with the fourth operand.</div><div class='add'>+ *  - And so on.</div><div class='add'>+ *</div><div class='add'>+ *  The return value from +inject+ is the result of the last combination.</div><div class='add'>+ *</div><div class='add'>+ *  This call to +inject+ computes the sum of the operands:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).inject(:+) # =&gt; 10</div><div class='add'>+ *</div><div class='add'>+ *  Examples with various methods:</div><div class='add'>+ *</div><div class='add'>+ *    # Integer addition.</div><div class='add'>+ *    (1..4).inject(:+)                # =&gt; 10</div><div class='add'>+ *    # Integer multiplication.</div><div class='add'>+ *    (1..4).inject(:*)                # =&gt; 24</div><div class='add'>+ *    # Character range concatenation.</div><div class='add'>+ *    ('a'..'d').inject('', :+)        # =&gt; "abcd"</div><div class='add'>+ *    # String array concatenation.</div><div class='add'>+ *    %w[foo bar baz].inject('', :+)   # =&gt; "foobarbaz"</div><div class='add'>+ *    # Hash update.</div><div class='add'>+ *    h = [{foo: 0, bar: 1}, {baz: 2}, {bat: 3}].inject(:update)</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2, :bat=&gt;3}</div><div class='add'>+ *    # Hash conversion to nested arrays.</div><div class='add'>+ *    h = {foo: 0, bar: 1}.inject([], :push)</div><div class='add'>+ *    h # =&gt; [[:foo, 0], [:bar, 1]]</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Combination by Given Block&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  If a block is given, the operands are passed to the block:</div><div class='add'>+ *</div><div class='add'>+ *  - The first call passes the first and second operands.</div><div class='add'>+ *  - The second call passes the result of the first call,</div><div class='add'>+ *    along with the third operand.</div><div class='add'>+ *  - The third call passes the result of the second call,</div><div class='add'>+ *    along with the fourth operand.</div><div class='add'>+ *  - And so on.</div><div class='add'>+ *</div><div class='add'>+ *  The return value from +inject+ is the return value from the last block call.</div><div class='add'>+ *</div><div class='add'>+ *  This call to +inject+ gives a block</div><div class='add'>+ *  that writes the memo and element, and also sums the elements:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).inject do |memo, element|</div><div class='add'>+ *      p "Memo: #{memo}; element: #{element}"</div><div class='add'>+ *      memo + element</div><div class='add'>+ *    end # =&gt; 10</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "Memo: 1; element: 2"</div><div class='add'>+ *    "Memo: 3; element: 3"</div><div class='add'>+ *    "Memo: 6; element: 4"</div><div class='add'>+ *</div><div class='add'>+ *  Enumerable#reduce is an alias for Enumerable#inject.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -804,28 +1010,36 @@ enum_inject(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     VALUE init, op;</div><div class='ctx'>     rb_block_call_func *iter = inject_i;</div><div class='ctx'>     ID id;</div><div class='add'>+    int num_args;</div><div class='add'>+</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+        num_args = rb_scan_args(argc, argv, "02", &amp;init, &amp;op);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        num_args = rb_scan_args(argc, argv, "11", &amp;init, &amp;op);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    switch (rb_scan_args(argc, argv, "02", &amp;init, &amp;op)) {</div><div class='add'>+    switch (num_args) {</div><div class='ctx'>       case 0:</div><div class='del'>-	init = Qundef;</div><div class='del'>-	break;</div><div class='add'>+        init = Qundef;</div><div class='add'>+        break;</div><div class='ctx'>       case 1:</div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	id = rb_check_id(&amp;init);</div><div class='del'>-	op = id ? ID2SYM(id) : init;</div><div class='del'>-	init = Qundef;</div><div class='del'>-	iter = inject_op_i;</div><div class='del'>-	break;</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        id = rb_check_id(&amp;init);</div><div class='add'>+        op = id ? ID2SYM(id) : init;</div><div class='add'>+        init = Qundef;</div><div class='add'>+        iter = inject_op_i;</div><div class='add'>+        break;</div><div class='ctx'>       case 2:</div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    rb_warning("given block not used");</div><div class='del'>-	}</div><div class='del'>-	id = rb_check_id(&amp;op);</div><div class='del'>-	if (id) op = ID2SYM(id);</div><div class='del'>-	iter = inject_op_i;</div><div class='del'>-	break;</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            rb_warning("given block not used");</div><div class='add'>+        }</div><div class='add'>+        id = rb_check_id(&amp;op);</div><div class='add'>+        if (id) op = ID2SYM(id);</div><div class='add'>+        iter = inject_op_i;</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (iter == inject_op_i &amp;&amp;</div><div class='hunk'>@@ -837,7 +1051,7 @@ enum_inject(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     memo = MEMO_NEW(init, Qnil, op);</div><div class='ctx'>     rb_block_call(obj, id_each, 0, 0, iter, (VALUE)memo);</div><div class='del'>-    if (memo-&gt;v1 == Qundef) return Qnil;</div><div class='add'>+    if (UNDEF_P(memo-&gt;v1)) return Qnil;</div><div class='ctx'>     return memo-&gt;v1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -849,10 +1063,10 @@ partition_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, arys))</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(enum_yield(argc, i))) {</div><div class='del'>-	ary = memo-&gt;v1;</div><div class='add'>+        ary = memo-&gt;v1;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ary = memo-&gt;v2;</div><div class='add'>+        ary = memo-&gt;v2;</div><div class='ctx'>     }</div><div class='ctx'>     rb_ary_push(ary, i);</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -860,16 +1074,29 @@ partition_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, arys))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.partition { |obj| block } -&gt; [ true_array, false_array ]</div><div class='del'>- *     enum.partition                 -&gt; an_enumerator</div><div class='add'>+ *    partition {|element| ... } -&gt; [true_array, false_array]</div><div class='add'>+ *    partition -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Returns two arrays, the first containing the elements of</div><div class='del'>- *  &lt;i&gt;enum&lt;/i&gt; for which the block evaluates to true, the second</div><div class='del'>- *  containing the rest.</div><div class='add'>+ *  With a block given, returns an array of two arrays:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *  - The first having those elements for which the block returns a truthy value.</div><div class='add'>+ *  - The other having all other elements.</div><div class='ctx'>  *</div><div class='del'>- *     (1..6).partition { |v| v.even? }  #=&gt; [[2, 4, 6], [1, 3, 5]]</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *    p = (1..4).partition {|i| i.even? }</div><div class='add'>+ *    p # =&gt; [[2, 4], [1, 3]]</div><div class='add'>+ *    p = ('a'..'d').partition {|c| c &lt; 'c' }</div><div class='add'>+ *    p # =&gt; [["a", "b"], ["c", "d"]]</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2, bat: 3}</div><div class='add'>+ *    p = h.partition {|key, value| key.start_with?('b') }</div><div class='add'>+ *    p # =&gt; [[[:bar, 1], [:baz, 2], [:bat, 3]], [[:foo, 0]]]</div><div class='add'>+ *    p = h.partition {|key, value| value &lt; 2 }</div><div class='add'>+ *    p # =&gt; [[[:foo, 0], [:bar, 1]], [[:baz, 2], [:bat, 3]]]</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns an Enumerator.</div><div class='add'>+ *</div><div class='add'>+ *  Related: Enumerable#group_by.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -897,45 +1124,126 @@ group_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, hash))</div><div class='ctx'>     group = enum_yield(argc, i);</div><div class='ctx'>     values = rb_hash_aref(hash, group);</div><div class='ctx'>     if (!RB_TYPE_P(values, T_ARRAY)) {</div><div class='del'>-	values = rb_ary_new3(1, i);</div><div class='del'>-	rb_hash_aset(hash, group, values);</div><div class='add'>+        values = rb_ary_new3(1, i);</div><div class='add'>+        rb_hash_aset(hash, group, values);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_ary_push(values, i);</div><div class='add'>+        rb_ary_push(values, i);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.group_by { |obj| block } -&gt; a_hash</div><div class='del'>- *     enum.group_by                 -&gt; an_enumerator</div><div class='add'>+ *    group_by {|element| ... } -&gt; hash</div><div class='add'>+ *    group_by                  -&gt; enumerator</div><div class='add'>+ *</div><div class='add'>+ *  With a block given returns a hash:</div><div class='ctx'>  *</div><div class='del'>- *  Groups the collection by result of the block.  Returns a hash where the</div><div class='del'>- *  keys are the evaluated result from the block and the values are</div><div class='del'>- *  arrays of elements in the collection that correspond to the key.</div><div class='add'>+ *  - Each key is a return value from the block.</div><div class='add'>+ *  - Each value is an array of those elements for which the block returned that key.</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given an enumerator is returned.</div><div class='add'>+ *  Examples:</div><div class='ctx'>  *</div><div class='del'>- *     (1..6).group_by { |i| i%3 }   #=&gt; {0=&gt;[3, 6], 1=&gt;[1, 4], 2=&gt;[2, 5]}</div><div class='add'>+ *    g = (1..6).group_by {|i| i%3 }</div><div class='add'>+ *    g # =&gt; {1=&gt;[1, 4], 2=&gt;[2, 5], 0=&gt;[3, 6]}</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 0, bat: 1}</div><div class='add'>+ *    g = h.group_by {|key, value| value }</div><div class='add'>+ *    g # =&gt; {0=&gt;[[:foo, 0], [:baz, 0]], 1=&gt;[[:bar, 1], [:bat, 1]]}</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns an Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> enum_group_by(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE hash;</div><div class='del'>-</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(obj, 0, 0, enum_size);</div><div class='ctx'> </div><div class='del'>-    hash = rb_hash_new();</div><div class='del'>-    rb_block_call(obj, id_each, 0, 0, group_by_i, hash);</div><div class='del'>-    OBJ_INFECT(hash, obj);</div><div class='add'>+    return enum_hashify(obj, 0, 0, group_by_i);</div><div class='add'>+}</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+tally_up(st_data_t *group, st_data_t *value, st_data_t arg, int existing)</div><div class='add'>+{</div><div class='add'>+    VALUE tally = (VALUE)*value;</div><div class='add'>+    VALUE hash = (VALUE)arg;</div><div class='add'>+    if (!existing) {</div><div class='add'>+        tally = INT2FIX(1);</div><div class='add'>+    }</div><div class='add'>+    else if (FIXNUM_P(tally) &amp;&amp; tally &lt; INT2FIX(FIXNUM_MAX)) {</div><div class='add'>+        tally += INT2FIX(1) &amp; ~FIXNUM_FLAG;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        Check_Type(tally, T_BIGNUM);</div><div class='add'>+        tally = rb_big_plus(tally, INT2FIX(1));</div><div class='add'>+        RB_OBJ_WRITTEN(hash, Qundef, tally);</div><div class='add'>+    }</div><div class='add'>+    *value = (st_data_t)tally;</div><div class='add'>+    if (!SPECIAL_CONST_P(*group)) RB_OBJ_WRITTEN(hash, Qundef, *group);</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_enum_tally_up(VALUE hash, VALUE group)</div><div class='add'>+{</div><div class='add'>+    rb_hash_stlike_update(hash, group, tally_up, (st_data_t)hash);</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='add'>+tally_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, hash))</div><div class='add'>+{</div><div class='add'>+    ENUM_WANT_SVALUE();</div><div class='add'>+    rb_enum_tally_up(hash, i);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    tally -&gt; new_hash</div><div class='add'>+ *    tally(hash) -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ *  Returns a hash containing the counts of equal elements:</div><div class='add'>+ *</div><div class='add'>+ *  - Each key is an element of +self+.</div><div class='add'>+ *  - Each value is the number elements equal to that key.</div><div class='add'>+ *</div><div class='add'>+ *  With no argument:</div><div class='add'>+ *</div><div class='add'>+ *    %w[a b c b c a c b].tally # =&gt; {"a"=&gt;2, "b"=&gt;3, "c"=&gt;3}</div><div class='add'>+ *</div><div class='add'>+ *  With a hash argument, that hash is used for the tally (instead of a new hash),</div><div class='add'>+ *  and is returned;</div><div class='add'>+ *  this may be useful for accumulating tallies across multiple enumerables:</div><div class='add'>+ *</div><div class='add'>+ *    hash = {}</div><div class='add'>+ *    hash = %w[a c d b c a].tally(hash)</div><div class='add'>+ *    hash # =&gt; {"a"=&gt;2, "c"=&gt;2, "d"=&gt;1, "b"=&gt;1}</div><div class='add'>+ *    hash = %w[b a z].tally(hash)</div><div class='add'>+ *    hash # =&gt; {"a"=&gt;3, "c"=&gt;2, "d"=&gt;1, "b"=&gt;2, "z"=&gt;1}</div><div class='add'>+ *    hash = %w[b a m].tally(hash)</div><div class='add'>+ *    hash # =&gt; {"a"=&gt;4, "c"=&gt;2, "d"=&gt;1, "b"=&gt;3, "z"=&gt;1, "m"=&gt; 1}</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+enum_tally(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE hash;</div><div class='add'>+    if (rb_check_arity(argc, 0, 1)) {</div><div class='add'>+        hash = rb_to_hash_type(argv[0]);</div><div class='add'>+        rb_check_frozen(hash);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        hash = rb_hash_new();</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return enum_hashify_into(obj, 0, 0, tally_i, hash);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NORETURN(static VALUE first_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, params)));</div><div class='add'>+static VALUE</div><div class='ctx'> first_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, params))</div><div class='ctx'> {</div><div class='ctx'>     struct MEMO *memo = MEMO_CAST(params);</div><div class='hunk'>@@ -951,18 +1259,26 @@ static VALUE enum_take(VALUE obj, VALUE n);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.first       -&gt;  obj or nil</div><div class='del'>- *     enum.first(n)    -&gt;  an_array</div><div class='add'>+ *    first    -&gt; element or nil</div><div class='add'>+ *    first(n) -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns the first element or elements.</div><div class='add'>+ *</div><div class='add'>+ *  With no argument, returns the first element, or +nil+ if there is none:</div><div class='ctx'>  *</div><div class='del'>- *  Returns the first element, or the first +n+ elements, of the enumerable.</div><div class='del'>- *  If the enumerable is empty, the first form returns &lt;code&gt;nil&lt;/code&gt;, and the</div><div class='del'>- *  second form returns an empty array.</div><div class='add'>+ *    (1..4).first                   # =&gt; 1</div><div class='add'>+ *    %w[a b c].first                # =&gt; "a"</div><div class='add'>+ *    {foo: 1, bar: 1, baz: 2}.first # =&gt; [:foo, 1]</div><div class='add'>+ *    [].first                       # =&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *    %w[foo bar baz].first     #=&gt; "foo"</div><div class='del'>- *    %w[foo bar baz].first(2)  #=&gt; ["foo", "bar"]</div><div class='del'>- *    %w[foo bar baz].first(10) #=&gt; ["foo", "bar", "baz"]</div><div class='del'>- *    [].first                  #=&gt; nil</div><div class='del'>- *    [].first(10)              #=&gt; []</div><div class='add'>+ *  With integer argument +n+, returns an array</div><div class='add'>+ *  containing the first +n+ elements that exist:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).first(2)                   # =&gt; [1, 2]</div><div class='add'>+ *    %w[a b c d].first(3)              # =&gt; ["a", "b", "c"]</div><div class='add'>+ *    %w[a b c d].first(50)             # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *    {foo: 1, bar: 1, baz: 2}.first(2) # =&gt; [[:foo, 1], [:bar, 1]]</div><div class='add'>+ *    [].first(2)                       # =&gt; []</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -972,37 +1288,44 @@ enum_first(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     struct MEMO *memo;</div><div class='ctx'>     rb_check_arity(argc, 0, 1);</div><div class='ctx'>     if (argc &gt; 0) {</div><div class='del'>-	return enum_take(obj, argv[0]);</div><div class='add'>+        return enum_take(obj, argv[0]);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	memo = MEMO_NEW(Qnil, 0, 0);</div><div class='del'>-	rb_block_call(obj, id_each, 0, 0, first_i, (VALUE)memo);</div><div class='del'>-	return memo-&gt;v1;</div><div class='add'>+        memo = MEMO_NEW(Qnil, 0, 0);</div><div class='add'>+        rb_block_call(obj, id_each, 0, 0, first_i, (VALUE)memo);</div><div class='add'>+        return memo-&gt;v1;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.sort                  -&gt; array</div><div class='del'>- *     enum.sort { |a, b| block } -&gt; array</div><div class='add'>+ *    sort               -&gt; array</div><div class='add'>+ *    sort {|a, b| ... } -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array containing the sorted elements of +self+.</div><div class='add'>+ *  The ordering of equal elements is indeterminate and may be unstable.</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, the sort compares</div><div class='add'>+ *  using the elements' own method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *  Returns an array containing the items in &lt;i&gt;enum&lt;/i&gt; sorted.</div><div class='add'>+ *    %w[b c a d].sort              # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.sort # =&gt; [[:bar, 1], [:baz, 2], [:foo, 0]]</div><div class='ctx'>  *</div><div class='del'>- *  Comparisons for the sort will be done using the items' own</div><div class='del'>- *  &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator or using an optional code block.</div><div class='add'>+ *  With a block given, comparisons in the block determine the ordering.</div><div class='add'>+ *  The block is called with two elements +a+ and +b+, and must return:</div><div class='ctx'>  *</div><div class='del'>- *  The block must implement a comparison between +a+ and +b+ and return</div><div class='del'>- *  an integer less than 0 when +b+ follows +a+, +0+ when +a+ and +b+</div><div class='del'>- *  are equivalent, or an integer greater than 0 when +a+ follows +b+.</div><div class='add'>+ *  - A negative integer if &lt;tt&gt;a &lt; b&lt;/tt&gt;.</div><div class='add'>+ *  - Zero if &lt;tt&gt;a == b&lt;/tt&gt;.</div><div class='add'>+ *  - A positive integer if &lt;tt&gt;a &gt; b&lt;/tt&gt;.</div><div class='ctx'>  *</div><div class='del'>- *  The result is not guaranteed to be stable.  When the comparison of two</div><div class='del'>- *  elements returns +0+, the order of the elements is unpredictable.</div><div class='add'>+ *  Examples:</div><div class='ctx'>  *</div><div class='del'>- *     %w(rhea kea flea).sort           #=&gt; ["flea", "kea", "rhea"]</div><div class='del'>- *     (1..10).sort { |a, b| b &lt;=&gt; a }  #=&gt; [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]</div><div class='add'>+ *     a = %w[b c a d]</div><div class='add'>+ *     a.sort {|a, b| b &lt;=&gt; a } # =&gt; ["d", "c", "b", "a"]</div><div class='add'>+ *     h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *     h.sort {|a, b| b &lt;=&gt; a } # =&gt; [[:foo, 0], [:baz, 2], [:bar, 1]]</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#sort_by. It implements a Schwartzian transform</div><div class='add'>+ *  See also #sort_by. It implements a Schwartzian transform</div><div class='ctx'>  *  which is useful when key computation or comparison is expensive.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -1031,18 +1354,18 @@ sort_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, _data))</div><div class='ctx'>     v = enum_yield(argc, i);</div><div class='ctx'> </div><div class='ctx'>     if (RBASIC(ary)-&gt;klass) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "sort_by reentered");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "sort_by reentered");</div><div class='ctx'>     }</div><div class='ctx'>     if (RARRAY_LEN(data-&gt;buf) != SORT_BY_BUFSIZE*2) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "sort_by reentered");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "sort_by reentered");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     RARRAY_ASET(data-&gt;buf, data-&gt;n*2, v);</div><div class='ctx'>     RARRAY_ASET(data-&gt;buf, data-&gt;n*2+1, i);</div><div class='ctx'>     data-&gt;n++;</div><div class='ctx'>     if (data-&gt;n == SORT_BY_BUFSIZE) {</div><div class='del'>-	rb_ary_concat(ary, data-&gt;buf);</div><div class='del'>-	data-&gt;n = 0;</div><div class='add'>+        rb_ary_concat(ary, data-&gt;buf);</div><div class='add'>+        data-&gt;n = 0;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -1050,41 +1373,44 @@ sort_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, _data))</div><div class='ctx'> static int</div><div class='ctx'> sort_by_cmp(const void *ap, const void *bp, void *data)</div><div class='ctx'> {</div><div class='del'>-    struct cmp_opt_data cmp_opt = { 0, 0 };</div><div class='ctx'>     VALUE a;</div><div class='ctx'>     VALUE b;</div><div class='ctx'>     VALUE ary = (VALUE)data;</div><div class='ctx'> </div><div class='ctx'>     if (RBASIC(ary)-&gt;klass) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "sort_by reentered");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "sort_by reentered");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     a = *(VALUE *)ap;</div><div class='ctx'>     b = *(VALUE *)bp;</div><div class='ctx'> </div><div class='del'>-    return OPTIMIZED_CMP(a, b, cmp_opt);</div><div class='add'>+    return OPTIMIZED_CMP(a, b);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.sort_by { |obj| block }   -&gt; array</div><div class='del'>- *     enum.sort_by                   -&gt; an_enumerator</div><div class='add'>+ *    sort_by {|element| ... } -&gt; array</div><div class='add'>+ *    sort_by                  -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Sorts &lt;i&gt;enum&lt;/i&gt; using a set of keys generated by mapping the</div><div class='del'>- *  values in &lt;i&gt;enum&lt;/i&gt; through the given block.</div><div class='add'>+ *  With a block given, returns an array of elements of +self+,</div><div class='add'>+ *  sorted according to the value returned by the block for each element.</div><div class='add'>+ *  The ordering of equal elements is indeterminate and may be unstable.</div><div class='ctx'>  *</div><div class='del'>- *  The result is not guaranteed to be stable.  When two keys are equal,</div><div class='del'>- *  the order of the corresponding elements is unpredictable.</div><div class='add'>+ *  Examples:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *    a = %w[xx xxx x xxxx]</div><div class='add'>+ *    a.sort_by {|s| s.size }        # =&gt; ["x", "xx", "xxx", "xxxx"]</div><div class='add'>+ *    a.sort_by {|s| -s.size }       # =&gt; ["xxxx", "xxx", "xx", "x"]</div><div class='add'>+ *    h = {foo: 2, bar: 1, baz: 0}</div><div class='add'>+ *    h.sort_by{|key, value| value } # =&gt; [[:baz, 0], [:bar, 1], [:foo, 2]]</div><div class='add'>+ *    h.sort_by{|key, value| key }   # =&gt; [[:bar, 1], [:baz, 0], [:foo, 2]]</div><div class='ctx'>  *</div><div class='del'>- *     %w{apple pear fig}.sort_by { |word| word.length }</div><div class='del'>- *                   #=&gt; ["fig", "pear", "apple"]</div><div class='add'>+ *  With no block given, returns an Enumerator.</div><div class='ctx'>  *</div><div class='del'>- *  The current implementation of &lt;code&gt;sort_by&lt;/code&gt; generates an</div><div class='del'>- *  array of tuples containing the original collection element and the</div><div class='del'>- *  mapped value. This makes &lt;code&gt;sort_by&lt;/code&gt; fairly expensive when</div><div class='del'>- *  the keysets are simple.</div><div class='add'>+ *  The current implementation of #sort_by generates an array of</div><div class='add'>+ *  tuples containing the original collection element and the mapped</div><div class='add'>+ *  value. This makes #sort_by fairly expensive when the keysets are</div><div class='add'>+ *  simple.</div><div class='ctx'>  *</div><div class='ctx'>  *     require 'benchmark'</div><div class='ctx'>  *</div><div class='hunk'>@@ -1103,15 +1429,15 @@ sort_by_cmp(const void *ap, const void *bp, void *data)</div><div class='ctx'>  *</div><div class='ctx'>  *  However, consider the case where comparing the keys is a non-trivial</div><div class='ctx'>  *  operation. The following code sorts some files on modification time</div><div class='del'>- *  using the basic &lt;code&gt;sort&lt;/code&gt; method.</div><div class='add'>+ *  using the basic #sort method.</div><div class='ctx'>  *</div><div class='ctx'>  *     files = Dir["*"]</div><div class='ctx'>  *     sorted = files.sort { |a, b| File.new(a).mtime &lt;=&gt; File.new(b).mtime }</div><div class='ctx'>  *     sorted   #=&gt; ["mon", "tues", "wed", "thurs"]</div><div class='ctx'>  *</div><div class='del'>- *  This sort is inefficient: it generates two new &lt;code&gt;File&lt;/code&gt;</div><div class='add'>+ *  This sort is inefficient: it generates two new File</div><div class='ctx'>  *  objects during every comparison. A slightly better technique is to</div><div class='del'>- *  use the &lt;code&gt;Kernel#test&lt;/code&gt; method to generate the modification</div><div class='add'>+ *  use the Kernel#test method to generate the modification</div><div class='ctx'>  *  times directly.</div><div class='ctx'>  *</div><div class='ctx'>  *     files = Dir["*"]</div><div class='hunk'>@@ -1120,23 +1446,27 @@ sort_by_cmp(const void *ap, const void *bp, void *data)</div><div class='ctx'>  *     }</div><div class='ctx'>  *     sorted   #=&gt; ["mon", "tues", "wed", "thurs"]</div><div class='ctx'>  *</div><div class='del'>- *  This still generates many unnecessary &lt;code&gt;Time&lt;/code&gt; objects. A</div><div class='del'>- *  more efficient technique is to cache the sort keys (modification</div><div class='del'>- *  times in this case) before the sort. Perl users often call this</div><div class='del'>- *  approach a Schwartzian transform, after Randal Schwartz. We</div><div class='del'>- *  construct a temporary array, where each element is an array</div><div class='del'>- *  containing our sort key along with the filename. We sort this array,</div><div class='del'>- *  and then extract the filename from the result.</div><div class='add'>+ *  This still generates many unnecessary Time objects. A more</div><div class='add'>+ *  efficient technique is to cache the sort keys (modification times</div><div class='add'>+ *  in this case) before the sort. Perl users often call this approach</div><div class='add'>+ *  a Schwartzian transform, after Randal Schwartz. We construct a</div><div class='add'>+ *  temporary array, where each element is an array containing our</div><div class='add'>+ *  sort key along with the filename. We sort this array, and then</div><div class='add'>+ *  extract the filename from the result.</div><div class='ctx'>  *</div><div class='ctx'>  *     sorted = Dir["*"].collect { |f|</div><div class='ctx'>  *        [test(?M, f), f]</div><div class='ctx'>  *     }.sort.collect { |f| f[1] }</div><div class='ctx'>  *     sorted   #=&gt; ["mon", "tues", "wed", "thurs"]</div><div class='ctx'>  *</div><div class='del'>- *  This is exactly what &lt;code&gt;sort_by&lt;/code&gt; does internally.</div><div class='add'>+ *  This is exactly what #sort_by does internally.</div><div class='ctx'>  *</div><div class='ctx'>  *     sorted = Dir["*"].sort_by { |f| test(?M, f) }</div><div class='ctx'>  *     sorted   #=&gt; ["mon", "tues", "wed", "thurs"]</div><div class='add'>+ *</div><div class='add'>+ *  To produce the reverse of a specific order, the following can be used:</div><div class='add'>+ *</div><div class='add'>+ *    ary.sort_by { ... }.reverse!</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1150,16 +1480,15 @@ enum_sort_by(VALUE obj)</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(obj, 0, 0, enum_size);</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(obj, T_ARRAY) &amp;&amp; RARRAY_LEN(obj) &lt;= LONG_MAX/2) {</div><div class='del'>-	ary = rb_ary_new2(RARRAY_LEN(obj)*2);</div><div class='add'>+        ary = rb_ary_new2(RARRAY_LEN(obj)*2);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ary = rb_ary_new();</div><div class='add'>+        ary = rb_ary_new();</div><div class='ctx'>     }</div><div class='ctx'>     RBASIC_CLEAR_CLASS(ary);</div><div class='del'>-    buf = rb_ary_tmp_new(SORT_BY_BUFSIZE*2);</div><div class='add'>+    buf = rb_ary_hidden_new(SORT_BY_BUFSIZE*2);</div><div class='ctx'>     rb_ary_store(buf, SORT_BY_BUFSIZE*2-1, Qnil);</div><div class='ctx'>     memo = MEMO_NEW(0, 0, 0);</div><div class='del'>-    OBJ_INFECT(memo, obj);</div><div class='ctx'>     data = (struct sort_by_data *)&amp;memo-&gt;v1;</div><div class='ctx'>     RB_OBJ_WRITE(memo, &amp;data-&gt;ary, ary);</div><div class='ctx'>     RB_OBJ_WRITE(memo, &amp;data-&gt;buf, buf);</div><div class='hunk'>@@ -1168,8 +1497,8 @@ enum_sort_by(VALUE obj)</div><div class='ctx'>     ary = data-&gt;ary;</div><div class='ctx'>     buf = data-&gt;buf;</div><div class='ctx'>     if (data-&gt;n) {</div><div class='del'>-	rb_ary_resize(buf, data-&gt;n*2);</div><div class='del'>-	rb_ary_concat(ary, buf);</div><div class='add'>+        rb_ary_resize(buf, data-&gt;n*2);</div><div class='add'>+        rb_ary_concat(ary, buf);</div><div class='ctx'>     }</div><div class='ctx'>     if (RARRAY_LEN(ary) &gt; 2) {</div><div class='ctx'>         RARRAY_PTR_USE(ary, ptr,</div><div class='hunk'>@@ -1177,14 +1506,13 @@ enum_sort_by(VALUE obj)</div><div class='ctx'>                                   sort_by_cmp, (void *)ary));</div><div class='ctx'>     }</div><div class='ctx'>     if (RBASIC(ary)-&gt;klass) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "sort_by reentered");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "sort_by reentered");</div><div class='ctx'>     }</div><div class='ctx'>     for (i=1; i&lt;RARRAY_LEN(ary); i+=2) {</div><div class='del'>-	RARRAY_ASET(ary, i/2, RARRAY_AREF(ary, i));</div><div class='add'>+        RARRAY_ASET(ary, i/2, RARRAY_AREF(ary, i));</div><div class='ctx'>     }</div><div class='ctx'>     rb_ary_resize(ary, RARRAY_LEN(ary)/2);</div><div class='ctx'>     RBASIC_SET_CLASS_RAW(ary, rb_cArray);</div><div class='del'>-    OBJ_INFECT(ary, memo);</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -1227,33 +1555,52 @@ enum_##name##_func(VALUE result, struct MEMO *memo)</div><div class='ctx'> DEFINE_ENUMFUNCS(all)</div><div class='ctx'> {</div><div class='ctx'>     if (!RTEST(result)) {</div><div class='del'>-	MEMO_V1_SET(memo, Qfalse);</div><div class='del'>-	rb_iter_break();</div><div class='add'>+        MEMO_V1_SET(memo, Qfalse);</div><div class='add'>+        rb_iter_break();</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.all? [{ |obj| block } ]   -&gt; true or false</div><div class='del'>- *     enum.all?(pattern)             -&gt; true or false</div><div class='del'>- *</div><div class='del'>- *  Passes each element of the collection to the given block. The method</div><div class='del'>- *  returns &lt;code&gt;true&lt;/code&gt; if the block never returns</div><div class='del'>- *  &lt;code&gt;false&lt;/code&gt; or &lt;code&gt;nil&lt;/code&gt;. If the block is not given,</div><div class='del'>- *  Ruby adds an implicit block of &lt;code&gt;{ |obj| obj }&lt;/code&gt; which will</div><div class='del'>- *  cause #all? to return +true+ when none of the collection members are</div><div class='del'>- *  +false+ or +nil+.</div><div class='del'>- *</div><div class='del'>- *  If instead a pattern is supplied, the method returns whether</div><div class='del'>- *  &lt;code&gt;pattern === element&lt;/code&gt; for every collection member.</div><div class='del'>- *</div><div class='del'>- *     %w[ant bear cat].all? { |word| word.length &gt;= 3 } #=&gt; true</div><div class='del'>- *     %w[ant bear cat].all? { |word| word.length &gt;= 4 } #=&gt; false</div><div class='del'>- *     %w[ant bear cat].all?(/t/)                        #=&gt; false</div><div class='del'>- *     [1, 2i, 3.14].all?(Numeric)                       #=&gt; true</div><div class='del'>- *     [nil, true, 99].all?                              #=&gt; false</div><div class='del'>- *     [].all?                                           #=&gt; true</div><div class='add'>+ *    all?                  -&gt; true or false</div><div class='add'>+ *    all?(pattern)         -&gt; true or false</div><div class='add'>+ *    all? {|element| ... } -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns whether every element meets a given criterion.</div><div class='add'>+ *</div><div class='add'>+ *  With no argument and no block,</div><div class='add'>+ *  returns whether every element is truthy:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).all?           # =&gt; true</div><div class='add'>+ *    %w[a b c d].all?      # =&gt; true</div><div class='add'>+ *    [1, 2, nil].all?      # =&gt; false</div><div class='add'>+ *    ['a','b', false].all? # =&gt; false</div><div class='add'>+ *    [].all?               # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ *  With argument +pattern+ and no block,</div><div class='add'>+ *  returns whether for each element +element+,</div><div class='add'>+ *  &lt;tt&gt;pattern === element&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).all?(Integer)                 # =&gt; true</div><div class='add'>+ *    (1..4).all?(Numeric)                 # =&gt; true</div><div class='add'>+ *    (1..4).all?(Float)                   # =&gt; false</div><div class='add'>+ *    %w[bar baz bat bam].all?(/ba/)       # =&gt; true</div><div class='add'>+ *    %w[bar baz bat bam].all?(/bar/)      # =&gt; false</div><div class='add'>+ *    %w[bar baz bat bam].all?('ba')       # =&gt; false</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.all?(Array) # =&gt; true</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.all?(Hash)  # =&gt; false</div><div class='add'>+ *    [].all?(Integer)                     # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ *  With a block given, returns whether the block returns a truthy value</div><div class='add'>+ *  for every element:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).all? {|element| element &lt; 5 }                    # =&gt; true</div><div class='add'>+ *    (1..4).all? {|element| element &lt; 4 }                    # =&gt; false</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.all? {|key, value| value &lt; 3 } # =&gt; true</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.all? {|key, value| value &lt; 2 } # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  Related: #any?, #none? #one?.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -1269,34 +1616,52 @@ enum_all(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> DEFINE_ENUMFUNCS(any)</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(result)) {</div><div class='del'>-	MEMO_V1_SET(memo, Qtrue);</div><div class='del'>-	rb_iter_break();</div><div class='add'>+        MEMO_V1_SET(memo, Qtrue);</div><div class='add'>+        rb_iter_break();</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.any? [{ |obj| block }]   -&gt; true or false</div><div class='del'>- *     enum.any?(pattern)            -&gt; true or false</div><div class='del'>- *</div><div class='del'>- *  Passes each element of the collection to the given block. The method</div><div class='del'>- *  returns &lt;code&gt;true&lt;/code&gt; if the block ever returns a value other</div><div class='del'>- *  than &lt;code&gt;false&lt;/code&gt; or &lt;code&gt;nil&lt;/code&gt;. If the block is not</div><div class='del'>- *  given, Ruby adds an implicit block of &lt;code&gt;{ |obj| obj }&lt;/code&gt; that</div><div class='del'>- *  will cause #any? to return +true+ if at least one of the collection</div><div class='del'>- *  members is not +false+ or +nil+.</div><div class='del'>- *</div><div class='del'>- *  If instead a pattern is supplied, the method returns whether</div><div class='del'>- *  &lt;code&gt;pattern === element&lt;/code&gt; for any collection member.</div><div class='del'>- *</div><div class='del'>- *     %w[ant bear cat].any? { |word| word.length &gt;= 3 } #=&gt; true</div><div class='del'>- *     %w[ant bear cat].any? { |word| word.length &gt;= 4 } #=&gt; true</div><div class='del'>- *     %w[ant bear cat].any?(/d/)                        #=&gt; false</div><div class='del'>- *     [nil, true, 99].any?(Integer)                     #=&gt; true</div><div class='del'>- *     [nil, true, 99].any?                              #=&gt; true</div><div class='del'>- *     [].any?                                           #=&gt; false</div><div class='add'>+ *    any?                  -&gt; true or false</div><div class='add'>+ *    any?(pattern)         -&gt; true or false</div><div class='add'>+ *    any? {|element| ... } -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns whether any element meets a given criterion.</div><div class='ctx'>  *</div><div class='add'>+ *  With no argument and no block,</div><div class='add'>+ *  returns whether any element is truthy:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).any?          # =&gt; true</div><div class='add'>+ *    %w[a b c d].any?     # =&gt; true</div><div class='add'>+ *    [1, false, nil].any? # =&gt; true</div><div class='add'>+ *    [].any?              # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  With argument +pattern+ and no block,</div><div class='add'>+ *  returns whether for any element +element+,</div><div class='add'>+ *  &lt;tt&gt;pattern === element&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    [nil, false, 0].any?(Integer)        # =&gt; true</div><div class='add'>+ *    [nil, false, 0].any?(Numeric)        # =&gt; true</div><div class='add'>+ *    [nil, false, 0].any?(Float)          # =&gt; false</div><div class='add'>+ *    %w[bar baz bat bam].any?(/m/)        # =&gt; true</div><div class='add'>+ *    %w[bar baz bat bam].any?(/foo/)      # =&gt; false</div><div class='add'>+ *    %w[bar baz bat bam].any?('ba')       # =&gt; false</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.any?(Array) # =&gt; true</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.any?(Hash)  # =&gt; false</div><div class='add'>+ *    [].any?(Integer)                     # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  With a block given, returns whether the block returns a truthy value</div><div class='add'>+ *  for any element:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).any? {|element| element &lt; 2 }                    # =&gt; true</div><div class='add'>+ *    (1..4).any? {|element| element &lt; 1 }                    # =&gt; false</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.any? {|key, value| value &lt; 1 } # =&gt; true</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.any? {|key, value| value &lt; 0 } # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *</div><div class='add'>+ *  Related: #all?, #none?, #one?.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1311,13 +1676,13 @@ enum_any(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> DEFINE_ENUMFUNCS(one)</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(result)) {</div><div class='del'>-	if (memo-&gt;v1 == Qundef) {</div><div class='del'>-	    MEMO_V1_SET(memo, Qtrue);</div><div class='del'>-	}</div><div class='del'>-	else if (memo-&gt;v1 == Qtrue) {</div><div class='del'>-	    MEMO_V1_SET(memo, Qfalse);</div><div class='del'>-	    rb_iter_break();</div><div class='del'>-	}</div><div class='add'>+        if (UNDEF_P(memo-&gt;v1)) {</div><div class='add'>+            MEMO_V1_SET(memo, Qtrue);</div><div class='add'>+        }</div><div class='add'>+        else if (memo-&gt;v1 == Qtrue) {</div><div class='add'>+            MEMO_V1_SET(memo, Qfalse);</div><div class='add'>+            rb_iter_break();</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -1347,11 +1712,10 @@ cmpint_reenter_check(struct nmin_data *data, VALUE val)</div><div class='ctx'> static int</div><div class='ctx'> nmin_cmp(const void *ap, const void *bp, void *_data)</div><div class='ctx'> {</div><div class='del'>-    struct cmp_opt_data cmp_opt = { 0, 0 };</div><div class='ctx'>     struct nmin_data *data = (struct nmin_data *)_data;</div><div class='ctx'>     VALUE a = *(const VALUE *)ap, b = *(const VALUE *)bp;</div><div class='ctx'> #define rb_cmpint(cmp, a, b) rb_cmpint(cmpint_reenter_check(data, (cmp)), a, b)</div><div class='del'>-    return OPTIMIZED_CMP(a, b, cmp_opt);</div><div class='add'>+    return OPTIMIZED_CMP(a, b);</div><div class='ctx'> #undef rb_cmpint</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1379,7 +1743,7 @@ nmin_filter(struct nmin_data *data)</div><div class='ctx'>     long i, j;</div><div class='ctx'> </div><div class='ctx'>     if (data-&gt;curlen &lt;= data-&gt;n)</div><div class='del'>-	return;</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='ctx'>     n = data-&gt;n;</div><div class='ctx'>     beg = RARRAY_PTR(data-&gt;buf);</div><div class='hunk'>@@ -1399,46 +1763,46 @@ nmin_filter(struct nmin_data *data)</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='ctx'>     while (1) {</div><div class='del'>-	long pivot_index = left + (right-left)/2;</div><div class='del'>-	long num_pivots = 1;</div><div class='del'>-</div><div class='del'>-	SWAP(pivot_index, right);</div><div class='del'>-	pivot_index = right;</div><div class='del'>-</div><div class='del'>-	store_index = left;</div><div class='del'>-	i = left;</div><div class='del'>-	while (i &lt;= right-num_pivots) {</div><div class='del'>-	    int c = data-&gt;cmpfunc(GETPTR(i), GETPTR(pivot_index), data);</div><div class='del'>-	    if (data-&gt;rev)</div><div class='del'>-		c = -c;</div><div class='del'>-	    if (c == 0) {</div><div class='del'>-	        SWAP(i, right-num_pivots);</div><div class='del'>-		num_pivots++;</div><div class='del'>-		continue;</div><div class='del'>-	    }</div><div class='del'>-	    if (c &lt; 0) {</div><div class='del'>-		SWAP(i, store_index);</div><div class='del'>-		store_index++;</div><div class='del'>-	    }</div><div class='del'>-	    i++;</div><div class='del'>-	}</div><div class='del'>-	j = store_index;</div><div class='del'>-	for (i = right; right-num_pivots &lt; i; i--) {</div><div class='del'>-	    if (i &lt;= j)</div><div class='del'>-	        break;</div><div class='del'>-	    SWAP(j, i);</div><div class='del'>-	    j++;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (store_index &lt;= n &amp;&amp; n &lt;= store_index+num_pivots)</div><div class='del'>-	    break;</div><div class='del'>-</div><div class='del'>-	if (n &lt; store_index) {</div><div class='del'>-	    right = store_index-1;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    left = store_index+num_pivots;</div><div class='del'>-	}</div><div class='add'>+        long pivot_index = left + (right-left)/2;</div><div class='add'>+        long num_pivots = 1;</div><div class='add'>+</div><div class='add'>+        SWAP(pivot_index, right);</div><div class='add'>+        pivot_index = right;</div><div class='add'>+</div><div class='add'>+        store_index = left;</div><div class='add'>+        i = left;</div><div class='add'>+        while (i &lt;= right-num_pivots) {</div><div class='add'>+            int c = data-&gt;cmpfunc(GETPTR(i), GETPTR(pivot_index), data);</div><div class='add'>+            if (data-&gt;rev)</div><div class='add'>+                c = -c;</div><div class='add'>+            if (c == 0) {</div><div class='add'>+                SWAP(i, right-num_pivots);</div><div class='add'>+                num_pivots++;</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            if (c &lt; 0) {</div><div class='add'>+                SWAP(i, store_index);</div><div class='add'>+                store_index++;</div><div class='add'>+            }</div><div class='add'>+            i++;</div><div class='add'>+        }</div><div class='add'>+        j = store_index;</div><div class='add'>+        for (i = right; right-num_pivots &lt; i; i--) {</div><div class='add'>+            if (i &lt;= j)</div><div class='add'>+                break;</div><div class='add'>+            SWAP(j, i);</div><div class='add'>+            j++;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (store_index &lt;= n &amp;&amp; n &lt;= store_index+num_pivots)</div><div class='add'>+            break;</div><div class='add'>+</div><div class='add'>+        if (n &lt; store_index) {</div><div class='add'>+            right = store_index-1;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            left = store_index+num_pivots;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #undef GETPTR</div><div class='ctx'> #undef SWAP</div><div class='hunk'>@@ -1449,7 +1813,7 @@ nmin_filter(struct nmin_data *data)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-nmin_i(VALUE i, VALUE *_data, int argc, VALUE *argv)</div><div class='add'>+nmin_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, _data))</div><div class='ctx'> {</div><div class='ctx'>     struct nmin_data *data = (struct nmin_data *)_data;</div><div class='ctx'>     VALUE cmpv;</div><div class='hunk'>@@ -1457,11 +1821,11 @@ nmin_i(VALUE i, VALUE *_data, int argc, VALUE *argv)</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     if (data-&gt;by)</div><div class='del'>-	cmpv = enum_yield(argc, i);</div><div class='add'>+        cmpv = enum_yield(argc, i);</div><div class='ctx'>     else</div><div class='del'>-	cmpv = i;</div><div class='add'>+        cmpv = i;</div><div class='ctx'> </div><div class='del'>-    if (data-&gt;limit != Qundef) {</div><div class='add'>+    if (!UNDEF_P(data-&gt;limit)) {</div><div class='ctx'>         int c = data-&gt;cmpfunc(&amp;cmpv, &amp;data-&gt;limit, data);</div><div class='ctx'>         if (data-&gt;rev)</div><div class='ctx'>             c = -c;</div><div class='hunk'>@@ -1470,13 +1834,13 @@ nmin_i(VALUE i, VALUE *_data, int argc, VALUE *argv)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (data-&gt;by)</div><div class='del'>-	rb_ary_push(data-&gt;buf, cmpv);</div><div class='add'>+        rb_ary_push(data-&gt;buf, cmpv);</div><div class='ctx'>     rb_ary_push(data-&gt;buf, i);</div><div class='ctx'> </div><div class='ctx'>     data-&gt;curlen++;</div><div class='ctx'> </div><div class='ctx'>     if (data-&gt;curlen == data-&gt;bufmax) {</div><div class='del'>-	nmin_filter(data);</div><div class='add'>+        nmin_filter(data);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -1497,28 +1861,28 @@ rb_nmin_run(VALUE obj, VALUE num, int by, int rev, int ary)</div><div class='ctx'>         rb_raise(rb_eArgError, "too big size");</div><div class='ctx'>     data.bufmax = data.n * 4;</div><div class='ctx'>     data.curlen = 0;</div><div class='del'>-    data.buf = rb_ary_tmp_new(data.bufmax * (by ? 2 : 1));</div><div class='add'>+    data.buf = rb_ary_hidden_new(data.bufmax * (by ? 2 : 1));</div><div class='ctx'>     data.limit = Qundef;</div><div class='ctx'>     data.cmpfunc = by ? nmin_cmp :</div><div class='ctx'>                    rb_block_given_p() ? nmin_block_cmp :</div><div class='del'>-		   nmin_cmp;</div><div class='add'>+                   nmin_cmp;</div><div class='ctx'>     data.rev = rev;</div><div class='ctx'>     data.by = by;</div><div class='ctx'>     if (ary) {</div><div class='del'>-	long i;</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(obj); i++) {</div><div class='del'>-	    VALUE args[1];</div><div class='del'>-	    args[0] = RARRAY_AREF(obj, i);</div><div class='del'>-	    nmin_i(obj, (VALUE*)&amp;data, 1, args);</div><div class='del'>-	}</div><div class='add'>+        long i;</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(obj); i++) {</div><div class='add'>+            VALUE args[1];</div><div class='add'>+            args[0] = RARRAY_AREF(obj, i);</div><div class='add'>+            nmin_i(obj, (VALUE)&amp;data, 1, args, Qundef);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_block_call(obj, id_each, 0, 0, nmin_i, (VALUE)&amp;data);</div><div class='add'>+        rb_block_call(obj, id_each, 0, 0, nmin_i, (VALUE)&amp;data);</div><div class='ctx'>     }</div><div class='ctx'>     nmin_filter(&amp;data);</div><div class='ctx'>     result = data.buf;</div><div class='ctx'>     if (by) {</div><div class='del'>-	long i;</div><div class='add'>+        long i;</div><div class='ctx'>         RARRAY_PTR_USE(result, ptr, {</div><div class='ctx'>             ruby_qsort(ptr,</div><div class='ctx'>                        RARRAY_LEN(result)/2,</div><div class='hunk'>@@ -1528,7 +1892,7 @@ rb_nmin_run(VALUE obj, VALUE num, int by, int rev, int ary)</div><div class='ctx'>                 ptr[i/2] = ptr[i];</div><div class='ctx'>             }</div><div class='ctx'>         });</div><div class='del'>-	rb_ary_resize(result, RARRAY_LEN(result)/2);</div><div class='add'>+        rb_ary_resize(result, RARRAY_LEN(result)/2);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         RARRAY_PTR_USE(result, ptr, {</div><div class='hunk'>@@ -1546,26 +1910,45 @@ rb_nmin_run(VALUE obj, VALUE num, int by, int rev, int ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.one? [{ |obj| block }]   -&gt; true or false</div><div class='del'>- *     enum.one?(pattern)            -&gt; true or false</div><div class='del'>- *</div><div class='del'>- *  Passes each element of the collection to the given block. The method</div><div class='del'>- *  returns &lt;code&gt;true&lt;/code&gt; if the block returns &lt;code&gt;true&lt;/code&gt;</div><div class='del'>- *  exactly once. If the block is not given, &lt;code&gt;one?&lt;/code&gt; will return</div><div class='del'>- *  &lt;code&gt;true&lt;/code&gt; only if exactly one of the collection members is</div><div class='del'>- *  true.</div><div class='del'>- *</div><div class='del'>- *  If instead a pattern is supplied, the method returns whether</div><div class='del'>- *  &lt;code&gt;pattern === element&lt;/code&gt; for exactly one collection member.</div><div class='del'>- *</div><div class='del'>- *     %w{ant bear cat}.one? { |word| word.length == 4 }  #=&gt; true</div><div class='del'>- *     %w{ant bear cat}.one? { |word| word.length &gt; 4 }   #=&gt; false</div><div class='del'>- *     %w{ant bear cat}.one? { |word| word.length &lt; 4 }   #=&gt; false</div><div class='del'>- *     %w{ant bear cat}.one?(/t/)                         #=&gt; false</div><div class='del'>- *     [ nil, true, 99 ].one?                             #=&gt; false</div><div class='del'>- *     [ nil, true, false ].one?                          #=&gt; true</div><div class='del'>- *     [ nil, true, 99 ].one?(Integer)                    #=&gt; true</div><div class='del'>- *     [].one?                                            #=&gt; false</div><div class='add'>+ *    one?                  -&gt; true or false</div><div class='add'>+ *    one?(pattern)         -&gt; true or false</div><div class='add'>+ *    one? {|element| ... } -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns whether exactly one element meets a given criterion.</div><div class='add'>+ *</div><div class='add'>+ *  With no argument and no block,</div><div class='add'>+ *  returns whether exactly one element is truthy:</div><div class='add'>+ *</div><div class='add'>+ *    (1..1).one?           # =&gt; true</div><div class='add'>+ *    [1, nil, false].one?  # =&gt; true</div><div class='add'>+ *    (1..4).one?           # =&gt; false</div><div class='add'>+ *    {foo: 0}.one?         # =&gt; true</div><div class='add'>+ *    {foo: 0, bar: 1}.one? # =&gt; false</div><div class='add'>+ *    [].one?               # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  With argument +pattern+ and no block,</div><div class='add'>+ *  returns whether for exactly one element +element+,</div><div class='add'>+ *  &lt;tt&gt;pattern === element&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    [nil, false, 0].one?(Integer)        # =&gt; true</div><div class='add'>+ *    [nil, false, 0].one?(Numeric)        # =&gt; true</div><div class='add'>+ *    [nil, false, 0].one?(Float)          # =&gt; false</div><div class='add'>+ *    %w[bar baz bat bam].one?(/m/)        # =&gt; true</div><div class='add'>+ *    %w[bar baz bat bam].one?(/foo/)      # =&gt; false</div><div class='add'>+ *    %w[bar baz bat bam].one?('ba')       # =&gt; false</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.one?(Array) # =&gt; false</div><div class='add'>+ *    {foo: 0}.one?(Array)                 # =&gt; true</div><div class='add'>+ *    [].one?(Integer)                     # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  With a block given, returns whether the block returns a truthy value</div><div class='add'>+ *  for exactly one element:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).one? {|element| element &lt; 2 }                     # =&gt; true</div><div class='add'>+ *    (1..4).one? {|element| element &lt; 1 }                     # =&gt; false</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.one? {|key, value| value &lt; 1 }  # =&gt; true</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.one? {|key, value| value &lt; 2 } # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  Related: #none?, #all?, #any?.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1577,40 +1960,58 @@ enum_one(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     WARN_UNUSED_BLOCK(argc);</div><div class='ctx'>     rb_block_call(obj, id_each, 0, 0, ENUMFUNC(one), (VALUE)memo);</div><div class='ctx'>     result = memo-&gt;v1;</div><div class='del'>-    if (result == Qundef) return Qfalse;</div><div class='add'>+    if (UNDEF_P(result)) return Qfalse;</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> DEFINE_ENUMFUNCS(none)</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(result)) {</div><div class='del'>-	MEMO_V1_SET(memo, Qfalse);</div><div class='del'>-	rb_iter_break();</div><div class='add'>+        MEMO_V1_SET(memo, Qfalse);</div><div class='add'>+        rb_iter_break();</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.none? [{ |obj| block }]   -&gt; true or false</div><div class='del'>- *     enum.none?(pattern)            -&gt; true or false</div><div class='del'>- *</div><div class='del'>- *  Passes each element of the collection to the given block. The method</div><div class='del'>- *  returns &lt;code&gt;true&lt;/code&gt; if the block never returns &lt;code&gt;true&lt;/code&gt;</div><div class='del'>- *  for all elements. If the block is not given, &lt;code&gt;none?&lt;/code&gt; will return</div><div class='del'>- *  &lt;code&gt;true&lt;/code&gt; only if none of the collection members is true.</div><div class='del'>- *</div><div class='del'>- *  If instead a pattern is supplied, the method returns whether</div><div class='del'>- *  &lt;code&gt;pattern === element&lt;/code&gt; for none of the collection members.</div><div class='del'>- *</div><div class='del'>- *     %w{ant bear cat}.none? { |word| word.length == 5 } #=&gt; true</div><div class='del'>- *     %w{ant bear cat}.none? { |word| word.length &gt;= 4 } #=&gt; false</div><div class='del'>- *     %w{ant bear cat}.none?(/d/)                        #=&gt; true</div><div class='del'>- *     [1, 3.14, 42].none?(Float)                         #=&gt; false</div><div class='del'>- *     [].none?                                           #=&gt; true</div><div class='del'>- *     [nil].none?                                        #=&gt; true</div><div class='del'>- *     [nil, false].none?                                 #=&gt; true</div><div class='del'>- *     [nil, false, true].none?                           #=&gt; false</div><div class='add'>+ *    none?                  -&gt; true or false</div><div class='add'>+ *    none?(pattern)         -&gt; true or false</div><div class='add'>+ *    none? {|element| ... } -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns whether no element meets a given criterion.</div><div class='add'>+ *</div><div class='add'>+ *  With no argument and no block,</div><div class='add'>+ *  returns whether no element is truthy:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).none?           # =&gt; false</div><div class='add'>+ *    [nil, false].none?     # =&gt; true</div><div class='add'>+ *    {foo: 0}.none?         # =&gt; false</div><div class='add'>+ *    {foo: 0, bar: 1}.none? # =&gt; false</div><div class='add'>+ *    [].none?               # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ *  With argument +pattern+ and no block,</div><div class='add'>+ *  returns whether for no element +element+,</div><div class='add'>+ *  &lt;tt&gt;pattern === element&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    [nil, false, 1.1].none?(Integer)      # =&gt; true</div><div class='add'>+ *    %w[bar baz bat bam].none?(/m/)        # =&gt; false</div><div class='add'>+ *    %w[bar baz bat bam].none?(/foo/)      # =&gt; true</div><div class='add'>+ *    %w[bar baz bat bam].none?('ba')       # =&gt; true</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.none?(Hash)  # =&gt; true</div><div class='add'>+ *    {foo: 0}.none?(Array)                 # =&gt; false</div><div class='add'>+ *    [].none?(Integer)                     # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ *  With a block given, returns whether the block returns a truthy value</div><div class='add'>+ *  for no element:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).none? {|element| element &lt; 1 }                     # =&gt; true</div><div class='add'>+ *    (1..4).none? {|element| element &lt; 2 }                     # =&gt; false</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.none? {|key, value| value &lt; 0 }  # =&gt; true</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.none? {|key, value| value &lt; 1 } # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  Related: #one?, #all?, #any?.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> enum_none(int argc, VALUE *argv, VALUE obj)</div><div class='hunk'>@@ -1624,7 +2025,6 @@ enum_none(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> </div><div class='ctx'> struct min_t {</div><div class='ctx'>     VALUE min;</div><div class='del'>-    struct cmp_opt_data cmp_opt;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1634,13 +2034,13 @@ min_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;min == Qundef) {</div><div class='del'>-	memo-&gt;min = i;</div><div class='add'>+    if (UNDEF_P(memo-&gt;min)) {</div><div class='add'>+        memo-&gt;min = i;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (OPTIMIZED_CMP(i, memo-&gt;min, memo-&gt;cmp_opt) &lt; 0) {</div><div class='del'>-	    memo-&gt;min = i;</div><div class='del'>-	}</div><div class='add'>+        if (OPTIMIZED_CMP(i, memo-&gt;min) &lt; 0) {</div><div class='add'>+            memo-&gt;min = i;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -1653,14 +2053,14 @@ min_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;min == Qundef) {</div><div class='del'>-	memo-&gt;min = i;</div><div class='add'>+    if (UNDEF_P(memo-&gt;min)) {</div><div class='add'>+        memo-&gt;min = i;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	cmp = rb_yield_values(2, i, memo-&gt;min);</div><div class='del'>-	if (rb_cmpint(cmp, i, memo-&gt;min) &lt; 0) {</div><div class='del'>-	    memo-&gt;min = i;</div><div class='del'>-	}</div><div class='add'>+        cmp = rb_yield_values(2, i, memo-&gt;min);</div><div class='add'>+        if (rb_cmpint(cmp, i, memo-&gt;min) &lt; 0) {</div><div class='add'>+            memo-&gt;min = i;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -1668,33 +2068,66 @@ min_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.min                     -&gt; obj</div><div class='del'>- *     enum.min { |a, b| block }    -&gt; obj</div><div class='del'>- *     enum.min(n)                  -&gt; array</div><div class='del'>- *     enum.min(n) { |a, b| block } -&gt; array</div><div class='del'>- *</div><div class='del'>- *  Returns the object in _enum_ with the minimum value. The</div><div class='del'>- *  first form assumes all objects implement &lt;code&gt;Comparable&lt;/code&gt;;</div><div class='del'>- *  the second uses the block to return &lt;em&gt;a &lt;=&gt; b&lt;/em&gt;.</div><div class='del'>- *</div><div class='del'>- *     a = %w(albatross dog horse)</div><div class='del'>- *     a.min                                   #=&gt; "albatross"</div><div class='del'>- *     a.min { |a, b| a.length &lt;=&gt; b.length }  #=&gt; "dog"</div><div class='del'>- *</div><div class='del'>- *  If the +n+ argument is given, minimum +n+ elements are returned</div><div class='del'>- *  as a sorted array.</div><div class='del'>- *</div><div class='del'>- *     a = %w[albatross dog horse]</div><div class='del'>- *     a.min(2)                                  #=&gt; ["albatross", "dog"]</div><div class='del'>- *     a.min(2) {|a, b| a.length &lt;=&gt; b.length }  #=&gt; ["dog", "horse"]</div><div class='del'>- *     [5, 1, 3, 4, 2].min(3)                    #=&gt; [1, 2, 3]</div><div class='add'>+ *    min                  -&gt; element</div><div class='add'>+ *    min(n)               -&gt; array</div><div class='add'>+ *    min {|a, b| ... }    -&gt; element</div><div class='add'>+ *    min(n) {|a, b| ... } -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns the element with the minimum element according to a given criterion.</div><div class='add'>+ *  The ordering of equal elements is indeterminate and may be unstable.</div><div class='add'>+ *</div><div class='add'>+ *  With no argument and no block, returns the minimum element,</div><div class='add'>+ *  using the elements' own method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; for comparison:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).min                   # =&gt; 1</div><div class='add'>+ *    (-4..-1).min                 # =&gt; -4</div><div class='add'>+ *    %w[d c b a].min              # =&gt; "a"</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.min # =&gt; [:bar, 1]</div><div class='add'>+ *    [].min                       # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  With positive integer argument +n+ given, and no block,</div><div class='add'>+ *  returns an array containing the first +n+ minimum elements that exist:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).min(2)                   # =&gt; [1, 2]</div><div class='add'>+ *    (-4..-1).min(2)                 # =&gt; [-4, -3]</div><div class='add'>+ *    %w[d c b a].min(2)              # =&gt; ["a", "b"]</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.min(2) # =&gt; [[:bar, 1], [:baz, 2]]</div><div class='add'>+ *    [].min(2)                       # =&gt; []</div><div class='add'>+ *</div><div class='add'>+ *  With a block given, the block determines the minimum elements.</div><div class='add'>+ *  The block is called with two elements +a+ and +b+, and must return:</div><div class='add'>+ *</div><div class='add'>+ *  - A negative integer if &lt;tt&gt;a &lt; b&lt;/tt&gt;.</div><div class='add'>+ *  - Zero if &lt;tt&gt;a == b&lt;/tt&gt;.</div><div class='add'>+ *  - A positive integer if &lt;tt&gt;a &gt; b&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  With a block given and no argument,</div><div class='add'>+ *  returns the minimum element as determined by the block:</div><div class='add'>+ *</div><div class='add'>+ *    %w[xxx x xxxx xx].min {|a, b| a.size &lt;=&gt; b.size } # =&gt; "x"</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.min {|pair1, pair2| pair1[1] &lt;=&gt; pair2[1] } # =&gt; [:foo, 0]</div><div class='add'>+ *    [].min {|a, b| a &lt;=&gt; b }                          # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  With a block given and positive integer argument +n+ given,</div><div class='add'>+ *  returns an array containing the first +n+ minimum elements that exist,</div><div class='add'>+ *  as determined by the block.</div><div class='add'>+ *</div><div class='add'>+ *    %w[xxx x xxxx xx].min(2) {|a, b| a.size &lt;=&gt; b.size } # =&gt; ["x", "xx"]</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.min(2) {|pair1, pair2| pair1[1] &lt;=&gt; pair2[1] }</div><div class='add'>+ *    # =&gt; [[:foo, 0], [:bar, 1]]</div><div class='add'>+ *    [].min(2) {|a, b| a &lt;=&gt; b }                          # =&gt; []</div><div class='add'>+ *</div><div class='add'>+ *  Related: #min_by, #minmax, #max.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> enum_min(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE memo;</div><div class='del'>-    struct min_t *m = NEW_CMP_OPT_MEMO(struct min_t, memo);</div><div class='add'>+    struct min_t *m = NEW_MEMO_FOR(struct min_t, memo);</div><div class='ctx'>     VALUE result;</div><div class='ctx'>     VALUE num;</div><div class='ctx'> </div><div class='hunk'>@@ -1702,22 +2135,19 @@ enum_min(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>        return rb_nmin_run(obj, num, 0, 0, 0);</div><div class='ctx'> </div><div class='ctx'>     m-&gt;min = Qundef;</div><div class='del'>-    m-&gt;cmp_opt.opt_methods = 0;</div><div class='del'>-    m-&gt;cmp_opt.opt_inited = 0;</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	rb_block_call(obj, id_each, 0, 0, min_ii, memo);</div><div class='add'>+        rb_block_call(obj, id_each, 0, 0, min_ii, memo);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_block_call(obj, id_each, 0, 0, min_i, memo);</div><div class='add'>+        rb_block_call(obj, id_each, 0, 0, min_i, memo);</div><div class='ctx'>     }</div><div class='ctx'>     result = m-&gt;min;</div><div class='del'>-    if (result == Qundef) return Qnil;</div><div class='add'>+    if (UNDEF_P(result)) return Qnil;</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct max_t {</div><div class='ctx'>     VALUE max;</div><div class='del'>-    struct cmp_opt_data cmp_opt;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1727,13 +2157,13 @@ max_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;max == Qundef) {</div><div class='del'>-	memo-&gt;max = i;</div><div class='add'>+    if (UNDEF_P(memo-&gt;max)) {</div><div class='add'>+        memo-&gt;max = i;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (OPTIMIZED_CMP(i, memo-&gt;max, memo-&gt;cmp_opt) &gt; 0) {</div><div class='del'>-	    memo-&gt;max = i;</div><div class='del'>-	}</div><div class='add'>+        if (OPTIMIZED_CMP(i, memo-&gt;max) &gt; 0) {</div><div class='add'>+            memo-&gt;max = i;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -1746,47 +2176,80 @@ max_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;max == Qundef) {</div><div class='del'>-	memo-&gt;max = i;</div><div class='add'>+    if (UNDEF_P(memo-&gt;max)) {</div><div class='add'>+        memo-&gt;max = i;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	cmp = rb_yield_values(2, i, memo-&gt;max);</div><div class='del'>-	if (rb_cmpint(cmp, i, memo-&gt;max) &gt; 0) {</div><div class='del'>-	    memo-&gt;max = i;</div><div class='del'>-	}</div><div class='add'>+        cmp = rb_yield_values(2, i, memo-&gt;max);</div><div class='add'>+        if (rb_cmpint(cmp, i, memo-&gt;max) &gt; 0) {</div><div class='add'>+            memo-&gt;max = i;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.max                     -&gt; obj</div><div class='del'>- *     enum.max { |a, b| block }    -&gt; obj</div><div class='del'>- *     enum.max(n)                  -&gt; array</div><div class='del'>- *     enum.max(n) { |a, b| block } -&gt; array</div><div class='del'>- *</div><div class='del'>- *  Returns the object in _enum_ with the maximum value. The</div><div class='del'>- *  first form assumes all objects implement &lt;code&gt;Comparable&lt;/code&gt;;</div><div class='del'>- *  the second uses the block to return &lt;em&gt;a &lt;=&gt; b&lt;/em&gt;.</div><div class='del'>- *</div><div class='del'>- *     a = %w(albatross dog horse)</div><div class='del'>- *     a.max                                   #=&gt; "horse"</div><div class='del'>- *     a.max { |a, b| a.length &lt;=&gt; b.length }  #=&gt; "albatross"</div><div class='del'>- *</div><div class='del'>- *  If the +n+ argument is given, maximum +n+ elements are returned</div><div class='del'>- *  as an array, sorted in descending order.</div><div class='del'>- *</div><div class='del'>- *     a = %w[albatross dog horse]</div><div class='del'>- *     a.max(2)                                  #=&gt; ["horse", "dog"]</div><div class='del'>- *     a.max(2) {|a, b| a.length &lt;=&gt; b.length }  #=&gt; ["albatross", "horse"]</div><div class='del'>- *     [5, 1, 3, 4, 2].max(3)                    #=&gt; [5, 4, 3]</div><div class='add'>+ *    max                  -&gt; element</div><div class='add'>+ *    max(n)               -&gt; array</div><div class='add'>+ *    max {|a, b| ... }    -&gt; element</div><div class='add'>+ *    max(n) {|a, b| ... } -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns the element with the maximum element according to a given criterion.</div><div class='add'>+ *  The ordering of equal elements is indeterminate and may be unstable.</div><div class='add'>+ *</div><div class='add'>+ *  With no argument and no block, returns the maximum element,</div><div class='add'>+ *  using the elements' own method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; for comparison:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).max                   # =&gt; 4</div><div class='add'>+ *    (-4..-1).max                 # =&gt; -1</div><div class='add'>+ *    %w[d c b a].max              # =&gt; "d"</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.max # =&gt; [:foo, 0]</div><div class='add'>+ *    [].max                       # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  With positive integer argument +n+ given, and no block,</div><div class='add'>+ *  returns an array containing the first +n+ maximum elements that exist:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).max(2)                   # =&gt; [4, 3]</div><div class='add'>+ *    (-4..-1).max(2)                # =&gt; [-1, -2]</div><div class='add'>+ *    %w[d c b a].max(2)              # =&gt; ["d", "c"]</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.max(2) # =&gt; [[:foo, 0], [:baz, 2]]</div><div class='add'>+ *    [].max(2)                       # =&gt; []</div><div class='add'>+ *</div><div class='add'>+ *  With a block given, the block determines the maximum elements.</div><div class='add'>+ *  The block is called with two elements +a+ and +b+, and must return:</div><div class='add'>+ *</div><div class='add'>+ *  - A negative integer if &lt;tt&gt;a &lt; b&lt;/tt&gt;.</div><div class='add'>+ *  - Zero if &lt;tt&gt;a == b&lt;/tt&gt;.</div><div class='add'>+ *  - A positive integer if &lt;tt&gt;a &gt; b&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  With a block given and no argument,</div><div class='add'>+ *  returns the maximum element as determined by the block:</div><div class='add'>+ *</div><div class='add'>+ *    %w[xxx x xxxx xx].max {|a, b| a.size &lt;=&gt; b.size } # =&gt; "xxxx"</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.max {|pair1, pair2| pair1[1] &lt;=&gt; pair2[1] }     # =&gt; [:baz, 2]</div><div class='add'>+ *    [].max {|a, b| a &lt;=&gt; b }                          # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  With a block given and positive integer argument +n+ given,</div><div class='add'>+ *  returns an array containing the first +n+ maximum elements that exist,</div><div class='add'>+ *  as determined by the block.</div><div class='add'>+ *</div><div class='add'>+ *    %w[xxx x xxxx xx].max(2) {|a, b| a.size &lt;=&gt; b.size } # =&gt; ["xxxx", "xxx"]</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.max(2) {|pair1, pair2| pair1[1] &lt;=&gt; pair2[1] }</div><div class='add'>+ *    # =&gt; [[:baz, 2], [:bar, 1]]</div><div class='add'>+ *    [].max(2) {|a, b| a &lt;=&gt; b }                          # =&gt; []</div><div class='add'>+ *</div><div class='add'>+ *  Related: #min, #minmax, #max_by.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> enum_max(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE memo;</div><div class='del'>-    struct max_t *m = NEW_CMP_OPT_MEMO(struct max_t, memo);</div><div class='add'>+    struct max_t *m = NEW_MEMO_FOR(struct max_t, memo);</div><div class='ctx'>     VALUE result;</div><div class='ctx'>     VALUE num;</div><div class='ctx'> </div><div class='hunk'>@@ -1794,16 +2257,14 @@ enum_max(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>        return rb_nmin_run(obj, num, 0, 1, 0);</div><div class='ctx'> </div><div class='ctx'>     m-&gt;max = Qundef;</div><div class='del'>-    m-&gt;cmp_opt.opt_methods = 0;</div><div class='del'>-    m-&gt;cmp_opt.opt_inited = 0;</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	rb_block_call(obj, id_each, 0, 0, max_ii, (VALUE)memo);</div><div class='add'>+        rb_block_call(obj, id_each, 0, 0, max_ii, (VALUE)memo);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_block_call(obj, id_each, 0, 0, max_i, (VALUE)memo);</div><div class='add'>+        rb_block_call(obj, id_each, 0, 0, max_i, (VALUE)memo);</div><div class='ctx'>     }</div><div class='ctx'>     result = m-&gt;max;</div><div class='del'>-    if (result == Qundef) return Qnil;</div><div class='add'>+    if (UNDEF_P(result)) return Qnil;</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1811,7 +2272,6 @@ struct minmax_t {</div><div class='ctx'>     VALUE min;</div><div class='ctx'>     VALUE max;</div><div class='ctx'>     VALUE last;</div><div class='del'>-    struct cmp_opt_data cmp_opt;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -1819,19 +2279,19 @@ minmax_i_update(VALUE i, VALUE j, struct minmax_t *memo)</div><div class='ctx'> {</div><div class='ctx'>     int n;</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;min == Qundef) {</div><div class='del'>-	memo-&gt;min = i;</div><div class='del'>-	memo-&gt;max = j;</div><div class='add'>+    if (UNDEF_P(memo-&gt;min)) {</div><div class='add'>+        memo-&gt;min = i;</div><div class='add'>+        memo-&gt;max = j;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	n = OPTIMIZED_CMP(i, memo-&gt;min, memo-&gt;cmp_opt);</div><div class='del'>-	if (n &lt; 0) {</div><div class='del'>-	    memo-&gt;min = i;</div><div class='del'>-	}</div><div class='del'>-	n = OPTIMIZED_CMP(j, memo-&gt;max, memo-&gt;cmp_opt);</div><div class='del'>-	if (n &gt; 0) {</div><div class='del'>-	    memo-&gt;max = j;</div><div class='del'>-	}</div><div class='add'>+        n = OPTIMIZED_CMP(i, memo-&gt;min);</div><div class='add'>+        if (n &lt; 0) {</div><div class='add'>+            memo-&gt;min = i;</div><div class='add'>+        }</div><div class='add'>+        n = OPTIMIZED_CMP(j, memo-&gt;max);</div><div class='add'>+        if (n &gt; 0) {</div><div class='add'>+            memo-&gt;max = j;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1844,14 +2304,14 @@ minmax_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo))</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;last == Qundef) {</div><div class='add'>+    if (UNDEF_P(memo-&gt;last)) {</div><div class='ctx'>         memo-&gt;last = i;</div><div class='ctx'>         return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     j = memo-&gt;last;</div><div class='ctx'>     memo-&gt;last = Qundef;</div><div class='ctx'> </div><div class='del'>-    n = OPTIMIZED_CMP(j, i, memo-&gt;cmp_opt);</div><div class='add'>+    n = OPTIMIZED_CMP(j, i);</div><div class='ctx'>     if (n == 0)</div><div class='ctx'>         i = j;</div><div class='ctx'>     else if (n &lt; 0) {</div><div class='hunk'>@@ -1871,19 +2331,19 @@ minmax_ii_update(VALUE i, VALUE j, struct minmax_t *memo)</div><div class='ctx'> {</div><div class='ctx'>     int n;</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;min == Qundef) {</div><div class='del'>-	memo-&gt;min = i;</div><div class='del'>-	memo-&gt;max = j;</div><div class='add'>+    if (UNDEF_P(memo-&gt;min)) {</div><div class='add'>+        memo-&gt;min = i;</div><div class='add'>+        memo-&gt;max = j;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	n = rb_cmpint(rb_yield_values(2, i, memo-&gt;min), i, memo-&gt;min);</div><div class='del'>-	if (n &lt; 0) {</div><div class='del'>-	    memo-&gt;min = i;</div><div class='del'>-	}</div><div class='del'>-	n = rb_cmpint(rb_yield_values(2, j, memo-&gt;max), j, memo-&gt;max);</div><div class='del'>-	if (n &gt; 0) {</div><div class='del'>-	    memo-&gt;max = j;</div><div class='del'>-	}</div><div class='add'>+        n = rb_cmpint(rb_yield_values(2, i, memo-&gt;min), i, memo-&gt;min);</div><div class='add'>+        if (n &lt; 0) {</div><div class='add'>+            memo-&gt;min = i;</div><div class='add'>+        }</div><div class='add'>+        n = rb_cmpint(rb_yield_values(2, j, memo-&gt;max), j, memo-&gt;max);</div><div class='add'>+        if (n &gt; 0) {</div><div class='add'>+            memo-&gt;max = j;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1896,7 +2356,7 @@ minmax_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo))</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;last == Qundef) {</div><div class='add'>+    if (UNDEF_P(memo-&gt;last)) {</div><div class='ctx'>         memo-&gt;last = i;</div><div class='ctx'>         return Qnil;</div><div class='ctx'>     }</div><div class='hunk'>@@ -1920,41 +2380,55 @@ minmax_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.minmax                  -&gt; [min, max]</div><div class='del'>- *     enum.minmax { |a, b| block } -&gt; [min, max]</div><div class='add'>+ *    minmax               -&gt; [minimum, maximum]</div><div class='add'>+ *    minmax {|a, b| ... } -&gt; [minimum, maximum]</div><div class='add'>+ *</div><div class='add'>+ *  Returns a 2-element array containing the minimum and maximum elements</div><div class='add'>+ *  according to a given criterion.</div><div class='add'>+ *  The ordering of equal elements is indeterminate and may be unstable.</div><div class='ctx'>  *</div><div class='del'>- *  Returns a two element array which contains the minimum and the</div><div class='del'>- *  maximum value in the enumerable.  The first form assumes all</div><div class='del'>- *  objects implement &lt;code&gt;Comparable&lt;/code&gt;; the second uses the</div><div class='del'>- *  block to return &lt;em&gt;a &lt;=&gt; b&lt;/em&gt;.</div><div class='add'>+ *  With no argument and no block, returns the minimum and maximum elements,</div><div class='add'>+ *  using the elements' own method &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; for comparison:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).minmax                   # =&gt; [1, 4]</div><div class='add'>+ *    (-4..-1).minmax                 # =&gt; [-4, -1]</div><div class='add'>+ *    %w[d c b a].minmax              # =&gt; ["a", "d"]</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.minmax # =&gt; [[:bar, 1], [:foo, 0]]</div><div class='add'>+ *    [].minmax                       # =&gt; [nil, nil]</div><div class='add'>+ *</div><div class='add'>+ *  With a block given, returns the minimum and maximum elements</div><div class='add'>+ *  as determined by the block:</div><div class='add'>+ *</div><div class='add'>+ *    %w[xxx x xxxx xx].minmax {|a, b| a.size &lt;=&gt; b.size } # =&gt; ["x", "xxxx"]</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.minmax {|pair1, pair2| pair1[1] &lt;=&gt; pair2[1] }</div><div class='add'>+ *    # =&gt; [[:foo, 0], [:baz, 2]]</div><div class='add'>+ *    [].minmax {|a, b| a &lt;=&gt; b }                          # =&gt; [nil, nil]</div><div class='add'>+ *</div><div class='add'>+ *  Related: #min, #max, #minmax_by.</div><div class='ctx'>  *</div><div class='del'>- *     a = %w(albatross dog horse)</div><div class='del'>- *     a.minmax                                  #=&gt; ["albatross", "horse"]</div><div class='del'>- *     a.minmax { |a, b| a.length &lt;=&gt; b.length } #=&gt; ["dog", "albatross"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> enum_minmax(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE memo;</div><div class='del'>-    struct minmax_t *m = NEW_CMP_OPT_MEMO(struct minmax_t, memo);</div><div class='add'>+    struct minmax_t *m = NEW_MEMO_FOR(struct minmax_t, memo);</div><div class='ctx'> </div><div class='ctx'>     m-&gt;min = Qundef;</div><div class='ctx'>     m-&gt;last = Qundef;</div><div class='del'>-    m-&gt;cmp_opt.opt_methods = 0;</div><div class='del'>-    m-&gt;cmp_opt.opt_inited = 0;</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	rb_block_call(obj, id_each, 0, 0, minmax_ii, memo);</div><div class='del'>-	if (m-&gt;last != Qundef)</div><div class='del'>-	    minmax_ii_update(m-&gt;last, m-&gt;last, m);</div><div class='add'>+        rb_block_call(obj, id_each, 0, 0, minmax_ii, memo);</div><div class='add'>+        if (!UNDEF_P(m-&gt;last))</div><div class='add'>+            minmax_ii_update(m-&gt;last, m-&gt;last, m);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_block_call(obj, id_each, 0, 0, minmax_i, memo);</div><div class='del'>-	if (m-&gt;last != Qundef)</div><div class='del'>-	    minmax_i_update(m-&gt;last, m-&gt;last, m);</div><div class='add'>+        rb_block_call(obj, id_each, 0, 0, minmax_i, memo);</div><div class='add'>+        if (!UNDEF_P(m-&gt;last))</div><div class='add'>+            minmax_i_update(m-&gt;last, m-&gt;last, m);</div><div class='ctx'>     }</div><div class='del'>-    if (m-&gt;min != Qundef) {</div><div class='del'>-	return rb_assoc_new(m-&gt;min, m-&gt;max);</div><div class='add'>+    if (!UNDEF_P(m-&gt;min)) {</div><div class='add'>+        return rb_assoc_new(m-&gt;min, m-&gt;max);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_assoc_new(Qnil, Qnil);</div><div class='ctx'> }</div><div class='hunk'>@@ -1962,45 +2436,57 @@ enum_minmax(VALUE obj)</div><div class='ctx'> static VALUE</div><div class='ctx'> min_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'> {</div><div class='del'>-    struct cmp_opt_data cmp_opt = { 0, 0 };</div><div class='ctx'>     struct MEMO *memo = MEMO_CAST(args);</div><div class='ctx'>     VALUE v;</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     v = enum_yield(argc, i);</div><div class='del'>-    if (memo-&gt;v1 == Qundef) {</div><div class='del'>-	MEMO_V1_SET(memo, v);</div><div class='del'>-	MEMO_V2_SET(memo, i);</div><div class='add'>+    if (UNDEF_P(memo-&gt;v1)) {</div><div class='add'>+        MEMO_V1_SET(memo, v);</div><div class='add'>+        MEMO_V2_SET(memo, i);</div><div class='ctx'>     }</div><div class='del'>-    else if (OPTIMIZED_CMP(v, memo-&gt;v1, cmp_opt) &lt; 0) {</div><div class='del'>-	MEMO_V1_SET(memo, v);</div><div class='del'>-	MEMO_V2_SET(memo, i);</div><div class='add'>+    else if (OPTIMIZED_CMP(v, memo-&gt;v1) &lt; 0) {</div><div class='add'>+        MEMO_V1_SET(memo, v);</div><div class='add'>+        MEMO_V2_SET(memo, i);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.min_by {|obj| block }      -&gt; obj</div><div class='del'>- *     enum.min_by                     -&gt; an_enumerator</div><div class='del'>- *     enum.min_by(n) {|obj| block }   -&gt; array</div><div class='del'>- *     enum.min_by(n)                  -&gt; an_enumerator</div><div class='add'>+ *    min_by {|element| ... }    -&gt; element</div><div class='add'>+ *    min_by(n) {|element| ... } -&gt; array</div><div class='add'>+ *    min_by                     -&gt; enumerator</div><div class='add'>+ *    min_by(n)                  -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Returns the object in &lt;i&gt;enum&lt;/i&gt; that gives the minimum</div><div class='del'>- *  value from the given block.</div><div class='add'>+ *  Returns the elements for which the block returns the minimum values.</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *  With a block given and no argument,</div><div class='add'>+ *  returns the element for which the block returns the minimum value:</div><div class='ctx'>  *</div><div class='del'>- *     a = %w(albatross dog horse)</div><div class='del'>- *     a.min_by { |x| x.length }   #=&gt; "dog"</div><div class='add'>+ *    (1..4).min_by {|element| -element }                    # =&gt; 4</div><div class='add'>+ *    %w[a b c d].min_by {|element| -element.ord }           # =&gt; "d"</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.min_by {|key, value| -value } # =&gt; [:baz, 2]</div><div class='add'>+ *    [].min_by {|element| -element }                        # =&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  If the +n+ argument is given, minimum +n+ elements are returned</div><div class='del'>- *  as an array. These +n+ elements are sorted by the value from the</div><div class='del'>- *  given block.</div><div class='add'>+ *  With a block given and positive integer argument +n+ given,</div><div class='add'>+ *  returns an array containing the +n+ elements</div><div class='add'>+ *  for which the block returns minimum values:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).min_by(2) {|element| -element }</div><div class='add'>+ *    # =&gt; [4, 3]</div><div class='add'>+ *    %w[a b c d].min_by(2) {|element| -element.ord }</div><div class='add'>+ *    # =&gt; ["d", "c"]</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.min_by(2) {|key, value| -value }</div><div class='add'>+ *    # =&gt; [[:baz, 2], [:bar, 1]]</div><div class='add'>+ *    [].min_by(2) {|element| -element }</div><div class='add'>+ *    # =&gt; []</div><div class='add'>+ *</div><div class='add'>+ *  Returns an Enumerator if no block is given.</div><div class='add'>+ *</div><div class='add'>+ *  Related: #min, #minmax, #max_by.</div><div class='ctx'>  *</div><div class='del'>- *     a = %w[albatross dog horse]</div><div class='del'>- *     p a.min_by(2) {|x| x.length } #=&gt; ["dog", "horse"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2024,89 +2510,56 @@ enum_min_by(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> static VALUE</div><div class='ctx'> max_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'> {</div><div class='del'>-    struct cmp_opt_data cmp_opt = { 0, 0 };</div><div class='ctx'>     struct MEMO *memo = MEMO_CAST(args);</div><div class='ctx'>     VALUE v;</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     v = enum_yield(argc, i);</div><div class='del'>-    if (memo-&gt;v1 == Qundef) {</div><div class='del'>-	MEMO_V1_SET(memo, v);</div><div class='del'>-	MEMO_V2_SET(memo, i);</div><div class='add'>+    if (UNDEF_P(memo-&gt;v1)) {</div><div class='add'>+        MEMO_V1_SET(memo, v);</div><div class='add'>+        MEMO_V2_SET(memo, i);</div><div class='ctx'>     }</div><div class='del'>-    else if (OPTIMIZED_CMP(v, memo-&gt;v1, cmp_opt) &gt; 0) {</div><div class='del'>-	MEMO_V1_SET(memo, v);</div><div class='del'>-	MEMO_V2_SET(memo, i);</div><div class='add'>+    else if (OPTIMIZED_CMP(v, memo-&gt;v1) &gt; 0) {</div><div class='add'>+        MEMO_V1_SET(memo, v);</div><div class='add'>+        MEMO_V2_SET(memo, i);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.max_by {|obj| block }      -&gt; obj</div><div class='del'>- *     enum.max_by                     -&gt; an_enumerator</div><div class='del'>- *     enum.max_by(n) {|obj| block }   -&gt; obj</div><div class='del'>- *     enum.max_by(n)                  -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Returns the object in &lt;i&gt;enum&lt;/i&gt; that gives the maximum</div><div class='del'>- *  value from the given block.</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='del'>- *</div><div class='del'>- *     a = %w(albatross dog horse)</div><div class='del'>- *     a.max_by { |x| x.length }   #=&gt; "albatross"</div><div class='del'>- *</div><div class='del'>- *  If the +n+ argument is given, maximum +n+ elements are returned</div><div class='del'>- *  as an array. These +n+ elements are sorted by the value from the</div><div class='del'>- *  given block, in descending order.</div><div class='del'>- *</div><div class='del'>- *     a = %w[albatross dog horse]</div><div class='del'>- *     a.max_by(2) {|x| x.length } #=&gt; ["albatross", "horse"]</div><div class='del'>- *</div><div class='del'>- *  enum.max_by(n) can be used to implement weighted random sampling.</div><div class='del'>- *  Following example implements and use Enumerable#wsample.</div><div class='del'>- *</div><div class='del'>- *     module Enumerable</div><div class='del'>- *       # weighted random sampling.</div><div class='del'>- *       #</div><div class='del'>- *       # Pavlos S. Efraimidis, Paul G. Spirakis</div><div class='del'>- *       # Weighted random sampling with a reservoir</div><div class='del'>- *       # Information Processing Letters</div><div class='del'>- *       # Volume 97, Issue 5 (16 March 2006)</div><div class='del'>- *       def wsample(n)</div><div class='del'>- *         self.max_by(n) {|v| rand ** (1.0/yield(v)) }</div><div class='del'>- *       end</div><div class='del'>- *     end</div><div class='del'>- *     e = (-20..20).to_a*10000</div><div class='del'>- *     a = e.wsample(20000) {|x|</div><div class='del'>- *       Math.exp(-(x/5.0)**2) # normal distribution</div><div class='del'>- *     }</div><div class='del'>- *     # a is 20000 samples from e.</div><div class='del'>- *     p a.length #=&gt; 20000</div><div class='del'>- *     h = a.group_by {|x| x }</div><div class='del'>- *     -10.upto(10) {|x| puts "*" * (h[x].length/30.0).to_i if h[x] }</div><div class='del'>- *     #=&gt; *</div><div class='del'>- *     #   ***</div><div class='del'>- *     #   ******</div><div class='del'>- *     #   ***********</div><div class='del'>- *     #   ******************</div><div class='del'>- *     #   *****************************</div><div class='del'>- *     #   *****************************************</div><div class='del'>- *     #   ****************************************************</div><div class='del'>- *     #   ***************************************************************</div><div class='del'>- *     #   ********************************************************************</div><div class='del'>- *     #   ***********************************************************************</div><div class='del'>- *     #   ***********************************************************************</div><div class='del'>- *     #   **************************************************************</div><div class='del'>- *     #   ****************************************************</div><div class='del'>- *     #   ***************************************</div><div class='del'>- *     #   ***************************</div><div class='del'>- *     #   ******************</div><div class='del'>- *     #   ***********</div><div class='del'>- *     #   *******</div><div class='del'>- *     #   ***</div><div class='del'>- *     #   *</div><div class='add'>+ *    max_by {|element| ... }    -&gt; element</div><div class='add'>+ *    max_by(n) {|element| ... } -&gt; array</div><div class='add'>+ *    max_by                     -&gt; enumerator</div><div class='add'>+ *    max_by(n)                  -&gt; enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns the elements for which the block returns the maximum values.</div><div class='add'>+ *</div><div class='add'>+ *  With a block given and no argument,</div><div class='add'>+ *  returns the element for which the block returns the maximum value:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).max_by {|element| -element }                    # =&gt; 1</div><div class='add'>+ *    %w[a b c d].max_by {|element| -element.ord }           # =&gt; "a"</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.max_by {|key, value| -value } # =&gt; [:foo, 0]</div><div class='add'>+ *    [].max_by {|element| -element }                        # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  With a block given and positive integer argument +n+ given,</div><div class='add'>+ *  returns an array containing the +n+ elements</div><div class='add'>+ *  for which the block returns maximum values:</div><div class='add'>+ *</div><div class='add'>+ *    (1..4).max_by(2) {|element| -element }</div><div class='add'>+ *    # =&gt; [1, 2]</div><div class='add'>+ *    %w[a b c d].max_by(2) {|element| -element.ord }</div><div class='add'>+ *    # =&gt; ["a", "b"]</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.max_by(2) {|key, value| -value }</div><div class='add'>+ *    # =&gt; [[:foo, 0], [:bar, 1]]</div><div class='add'>+ *    [].max_by(2) {|element| -element }</div><div class='add'>+ *    # =&gt; []</div><div class='add'>+ *</div><div class='add'>+ *  Returns an Enumerator if no block is given.</div><div class='add'>+ *</div><div class='add'>+ *  Related: #max, #minmax, #min_by.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -2140,30 +2593,27 @@ struct minmax_by_t {</div><div class='ctx'> static void</div><div class='ctx'> minmax_by_i_update(VALUE v1, VALUE v2, VALUE i1, VALUE i2, struct minmax_by_t *memo)</div><div class='ctx'> {</div><div class='del'>-    struct cmp_opt_data cmp_opt = { 0, 0 };</div><div class='del'>-</div><div class='del'>-    if (memo-&gt;min_bv == Qundef) {</div><div class='del'>-	memo-&gt;min_bv = v1;</div><div class='del'>-	memo-&gt;max_bv = v2;</div><div class='del'>-	memo-&gt;min = i1;</div><div class='del'>-	memo-&gt;max = i2;</div><div class='add'>+    if (UNDEF_P(memo-&gt;min_bv)) {</div><div class='add'>+        memo-&gt;min_bv = v1;</div><div class='add'>+        memo-&gt;max_bv = v2;</div><div class='add'>+        memo-&gt;min = i1;</div><div class='add'>+        memo-&gt;max = i2;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (OPTIMIZED_CMP(v1, memo-&gt;min_bv, cmp_opt) &lt; 0) {</div><div class='del'>-	    memo-&gt;min_bv = v1;</div><div class='del'>-	    memo-&gt;min = i1;</div><div class='del'>-	}</div><div class='del'>-	if (OPTIMIZED_CMP(v2, memo-&gt;max_bv, cmp_opt) &gt; 0) {</div><div class='del'>-	    memo-&gt;max_bv = v2;</div><div class='del'>-	    memo-&gt;max = i2;</div><div class='del'>-	}</div><div class='add'>+        if (OPTIMIZED_CMP(v1, memo-&gt;min_bv) &lt; 0) {</div><div class='add'>+            memo-&gt;min_bv = v1;</div><div class='add'>+            memo-&gt;min = i1;</div><div class='add'>+        }</div><div class='add'>+        if (OPTIMIZED_CMP(v2, memo-&gt;max_bv) &gt; 0) {</div><div class='add'>+            memo-&gt;max_bv = v2;</div><div class='add'>+            memo-&gt;max = i2;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> minmax_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo))</div><div class='ctx'> {</div><div class='del'>-    struct cmp_opt_data cmp_opt = { 0, 0 };</div><div class='ctx'>     struct minmax_by_t *memo = MEMO_FOR(struct minmax_by_t, _memo);</div><div class='ctx'>     VALUE vi, vj, j;</div><div class='ctx'>     int n;</div><div class='hunk'>@@ -2172,7 +2622,7 @@ minmax_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo))</div><div class='ctx'> </div><div class='ctx'>     vi = enum_yield(argc, i);</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;last_bv == Qundef) {</div><div class='add'>+    if (UNDEF_P(memo-&gt;last_bv)) {</div><div class='ctx'>         memo-&gt;last_bv = vi;</div><div class='ctx'>         memo-&gt;last = i;</div><div class='ctx'>         return Qnil;</div><div class='hunk'>@@ -2181,7 +2631,7 @@ minmax_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo))</div><div class='ctx'>     j = memo-&gt;last;</div><div class='ctx'>     memo-&gt;last_bv = Qundef;</div><div class='ctx'> </div><div class='del'>-    n = OPTIMIZED_CMP(vj, vi, cmp_opt);</div><div class='add'>+    n = OPTIMIZED_CMP(vj, vi);</div><div class='ctx'>     if (n == 0) {</div><div class='ctx'>         i = j;</div><div class='ctx'>         vi = vj;</div><div class='hunk'>@@ -2203,17 +2653,25 @@ minmax_by_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.minmax_by { |obj| block } -&gt; [min, max]</div><div class='del'>- *     enum.minmax_by                 -&gt; an_enumerator</div><div class='add'>+ *    minmax_by {|element| ... } -&gt; [minimum, maximum]</div><div class='add'>+ *    minmax_by                  -&gt; enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns a 2-element array containing the elements</div><div class='add'>+ *  for which the block returns minimum and maximum values:</div><div class='ctx'>  *</div><div class='del'>- *  Returns a two element array containing the objects in</div><div class='del'>- *  &lt;i&gt;enum&lt;/i&gt; that correspond to the minimum and maximum values respectively</div><div class='del'>- *  from the given block.</div><div class='add'>+ *    (1..4).minmax_by {|element| -element }</div><div class='add'>+ *    # =&gt; [4, 1]</div><div class='add'>+ *    %w[a b c d].minmax_by {|element| -element.ord }</div><div class='add'>+ *    # =&gt; ["d", "a"]</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.minmax_by {|key, value| -value }</div><div class='add'>+ *    # =&gt; [[:baz, 2], [:foo, 0]]</div><div class='add'>+ *    [].minmax_by {|element| -element }</div><div class='add'>+ *    # =&gt; [nil, nil]</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *  Returns an Enumerator if no block is given.</div><div class='add'>+ *</div><div class='add'>+ *  Related: #max_by, #minmax, #min_by.</div><div class='ctx'>  *</div><div class='del'>- *     a = %w(albatross dog horse)</div><div class='del'>- *     a.minmax_by { |x| x.length }   #=&gt; ["dog", "albatross"]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2231,7 +2689,7 @@ enum_minmax_by(VALUE obj)</div><div class='ctx'>     m-&gt;last_bv = Qundef;</div><div class='ctx'>     m-&gt;last = Qundef;</div><div class='ctx'>     rb_block_call(obj, id_each, 0, 0, minmax_by_i, memo);</div><div class='del'>-    if (m-&gt;last_bv != Qundef)</div><div class='add'>+    if (!UNDEF_P(m-&gt;last_bv))</div><div class='ctx'>         minmax_by_i_update(m-&gt;last_bv, m-&gt;last_bv, m-&gt;last, m-&gt;last, m);</div><div class='ctx'>     m = MEMO_FOR(struct minmax_by_t, memo);</div><div class='ctx'>     return rb_assoc_new(m-&gt;min, m-&gt;max);</div><div class='hunk'>@@ -2243,24 +2701,28 @@ member_i(RB_BLOCK_CALL_FUNC_ARGLIST(iter, args))</div><div class='ctx'>     struct MEMO *memo = MEMO_CAST(args);</div><div class='ctx'> </div><div class='ctx'>     if (rb_equal(rb_enum_values_pack(argc, argv), memo-&gt;v1)) {</div><div class='del'>-	MEMO_V2_SET(memo, Qtrue);</div><div class='del'>-	rb_iter_break();</div><div class='add'>+        MEMO_V2_SET(memo, Qtrue);</div><div class='add'>+        rb_iter_break();</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.include?(obj)     -&gt; true or false</div><div class='del'>- *     enum.member?(obj)      -&gt; true or false</div><div class='add'>+ *    include?(object) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns whether for any element &lt;tt&gt;object == element&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if any member of &lt;i&gt;enum&lt;/i&gt; equals</div><div class='del'>- *  &lt;i&gt;obj&lt;/i&gt;. Equality is tested using &lt;code&gt;==&lt;/code&gt;.</div><div class='add'>+ *    (1..4).include?(2)                       # =&gt; true</div><div class='add'>+ *    (1..4).include?(5)                       # =&gt; false</div><div class='add'>+ *    (1..4).include?('2')                     # =&gt; false</div><div class='add'>+ *    %w[a b c d].include?('b')                # =&gt; true</div><div class='add'>+ *    %w[a b c d].include?('2')                # =&gt; false</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.include?(:foo)  # =&gt; true</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.include?('foo') # =&gt; false</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.include?(0)     # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- *     IO.constants.include? :SEEK_SET          #=&gt; true</div><div class='del'>- *     IO.constants.include? :SEEK_NO_FURTHER   #=&gt; false</div><div class='del'>- *     IO.constants.member? :SEEK_SET          #=&gt; true</div><div class='del'>- *     IO.constants.member? :SEEK_NO_FURTHER   #=&gt; false</div><div class='add'>+ *  Enumerable#member? is an alias for Enumerable#include?.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -2285,20 +2747,28 @@ each_with_index_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, memo))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.each_with_index(*args) { |obj, i| block } -&gt;  enum</div><div class='del'>- *     enum.each_with_index(*args)                    -&gt;  an_enumerator</div><div class='add'>+ *    each_with_index(*args) {|element, i| ..... } -&gt; self</div><div class='add'>+ *    each_with_index(*args)                       -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Calls &lt;em&gt;block&lt;/em&gt; with two arguments, the item and its index,</div><div class='del'>- *  for each item in &lt;i&gt;enum&lt;/i&gt;.  Given arguments are passed through</div><div class='del'>- *  to #each().</div><div class='add'>+ *  With a block given, calls the block with each element and its index;</div><div class='add'>+ *  returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *    h = {}</div><div class='add'>+ *    (1..4).each_with_index {|element, i| h[element] = i } # =&gt; 1..4</div><div class='add'>+ *    h # =&gt; {1=&gt;0, 2=&gt;1, 3=&gt;2, 4=&gt;3}</div><div class='ctx'>  *</div><div class='del'>- *     hash = Hash.new</div><div class='del'>- *     %w(cat dog wombat).each_with_index { |item, index|</div><div class='del'>- *       hash[item] = index</div><div class='del'>- *     }</div><div class='del'>- *     hash   #=&gt; {"cat"=&gt;0, "dog"=&gt;1, "wombat"=&gt;2}</div><div class='add'>+ *    h = {}</div><div class='add'>+ *    %w[a b c d].each_with_index {|element, i| h[element] = i }</div><div class='add'>+ *    # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *    h # =&gt; {"a"=&gt;0, "b"=&gt;1, "c"=&gt;2, "d"=&gt;3}</div><div class='add'>+ *</div><div class='add'>+ *    a = []</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.each_with_index {|element, i| a.push([i, element]) }</div><div class='add'>+ *    # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *    a # =&gt; [[0, [:foo, 0]], [1, [:bar, 1]], [2, [:baz, 2]]]</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns an Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -2317,34 +2787,48 @@ enum_each_with_index(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.reverse_each(*args) { |item| block } -&gt;  enum</div><div class='del'>- *     enum.reverse_each(*args)                  -&gt;  an_enumerator</div><div class='add'>+ *    reverse_each(*args) {|element| ... } -&gt;  self</div><div class='add'>+ *    reverse_each(*args)                  -&gt;  enumerator</div><div class='add'>+ *</div><div class='add'>+ *  With a block given, calls the block with each element,</div><div class='add'>+ *  but in reverse order; returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *  Builds a temporary array and traverses that array in reverse order.</div><div class='add'>+ *    a = []</div><div class='add'>+ *    (1..4).reverse_each {|element| a.push(-element) } # =&gt; 1..4</div><div class='add'>+ *    a # =&gt; [-4, -3, -2, -1]</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *    a = []</div><div class='add'>+ *    %w[a b c d].reverse_each {|element| a.push(element) }</div><div class='add'>+ *    # =&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *    a # =&gt; ["d", "c", "b", "a"]</div><div class='ctx'>  *</div><div class='del'>- *     (1..3).reverse_each { |v| p v }</div><div class='add'>+ *    a = []</div><div class='add'>+ *    h.reverse_each {|element| a.push(element) }</div><div class='add'>+ *    # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *    a # =&gt; [[:baz, 2], [:bar, 1], [:foo, 0]]</div><div class='ctx'>  *</div><div class='del'>- *  produces:</div><div class='add'>+ *  With no block given, returns an Enumerator.</div><div class='ctx'>  *</div><div class='del'>- *     3</div><div class='del'>- *     2</div><div class='del'>- *     1</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> enum_reverse_each(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary;</div><div class='del'>-    long i;</div><div class='add'>+    long len;</div><div class='ctx'> </div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(obj, argc, argv, enum_size);</div><div class='ctx'> </div><div class='ctx'>     ary = enum_to_a(argc, argv, obj);</div><div class='ctx'> </div><div class='del'>-    for (i = RARRAY_LEN(ary); --i &gt;= 0; ) {</div><div class='del'>-	rb_yield(RARRAY_AREF(ary, i));</div><div class='add'>+    len = RARRAY_LEN(ary);</div><div class='add'>+    while (len--) {</div><div class='add'>+        long nlen;</div><div class='add'>+        rb_yield(RARRAY_AREF(ary, len));</div><div class='add'>+        nlen = RARRAY_LEN(ary);</div><div class='add'>+        if (nlen &lt; len) {</div><div class='add'>+            len = nlen;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return obj;</div><div class='hunk'>@@ -2361,30 +2845,39 @@ each_val_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, p))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.each_entry { |obj| block }  -&gt; enum</div><div class='del'>- *     enum.each_entry                  -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Calls &lt;i&gt;block&lt;/i&gt; once for each element in +self+, passing that</div><div class='del'>- *  element as a parameter, converting multiple values from yield to an</div><div class='del'>- *  array.</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='del'>- *</div><div class='del'>- *     class Foo</div><div class='del'>- *       include Enumerable</div><div class='del'>- *       def each</div><div class='del'>- *         yield 1</div><div class='del'>- *         yield 1, 2</div><div class='del'>- *         yield</div><div class='del'>- *       end</div><div class='del'>- *     end</div><div class='del'>- *     Foo.new.each_entry{ |o| p o }</div><div class='add'>+ *    each_entry(*args) {|element| ... } -&gt; self</div><div class='add'>+ *    each_entry(*args)                  -&gt; enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the given block with each element,</div><div class='add'>+ *  converting multiple values from yield to an array; returns +self+:</div><div class='add'>+ *</div><div class='add'>+ *    a = []</div><div class='add'>+ *    (1..4).each_entry {|element| a.push(element) } # =&gt; 1..4</div><div class='add'>+ *    a # =&gt; [1, 2, 3, 4]</div><div class='add'>+ *</div><div class='add'>+ *    a = []</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz:2}</div><div class='add'>+ *    h.each_entry {|element| a.push(element) }</div><div class='add'>+ *    # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *    a # =&gt; [[:foo, 0], [:bar, 1], [:baz, 2]]</div><div class='add'>+ *</div><div class='add'>+ *    class Foo</div><div class='add'>+ *      include Enumerable</div><div class='add'>+ *      def each</div><div class='add'>+ *        yield 1</div><div class='add'>+ *        yield 1, 2</div><div class='add'>+ *        yield</div><div class='add'>+ *      end</div><div class='add'>+ *    end</div><div class='add'>+ *    Foo.new.each_entry {|yielded| p yielded }</div><div class='ctx'>  *</div><div class='del'>- *  produces:</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *     1</div><div class='del'>- *     [1, 2]</div><div class='del'>- *     nil</div><div class='add'>+ *    1</div><div class='add'>+ *    [1, 2]</div><div class='add'>+ *    nil</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns an Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -2426,14 +2919,14 @@ each_slice_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, m))</div><div class='ctx'>     rb_ary_push(ary, i);</div><div class='ctx'> </div><div class='ctx'>     if (RARRAY_LEN(ary) == size) {</div><div class='del'>-	v = rb_yield(ary);</div><div class='add'>+        v = rb_yield(ary);</div><div class='ctx'> </div><div class='del'>-	if (memo-&gt;v2) {</div><div class='del'>-	    MEMO_V1_SET(memo, rb_ary_new2(size));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_ary_clear(ary);</div><div class='del'>-	}</div><div class='add'>+        if (memo-&gt;v2) {</div><div class='add'>+            MEMO_V1_SET(memo, rb_ary_new2(size));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_ary_clear(ary);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return v;</div><div class='hunk'>@@ -2444,10 +2937,15 @@ enum_each_slice_size(VALUE obj, VALUE args, VALUE eobj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE n, size;</div><div class='ctx'>     long slice_size = NUM2LONG(RARRAY_AREF(args, 0));</div><div class='add'>+    ID infinite_p;</div><div class='add'>+    CONST_ID(infinite_p, "infinite?");</div><div class='ctx'>     if (slice_size &lt;= 0) rb_raise(rb_eArgError, "invalid slice size");</div><div class='ctx'> </div><div class='ctx'>     size = enum_size(obj, 0, 0);</div><div class='del'>-    if (size == Qnil) return Qnil;</div><div class='add'>+    if (NIL_P(size)) return Qnil;</div><div class='add'>+    if (RB_FLOAT_TYPE_P(size) &amp;&amp; RTEST(rb_funcall(size, infinite_p, 0))) {</div><div class='add'>+        return size;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     n = add_int(size, slice_size-1);</div><div class='ctx'>     return div_int(n, slice_size);</div><div class='hunk'>@@ -2455,18 +2953,22 @@ enum_each_slice_size(VALUE obj, VALUE args, VALUE eobj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *    enum.each_slice(n) { ... }  -&gt;  nil</div><div class='del'>- *    enum.each_slice(n)          -&gt;  an_enumerator</div><div class='add'>+ *    each_slice(n) { ... }  -&gt;  self</div><div class='add'>+ *    each_slice(n)          -&gt;  enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block with each successive disjoint +n+-tuple of elements;</div><div class='add'>+ *  returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *  Iterates the given block for each slice of &lt;n&gt; elements.  If no</div><div class='del'>- *  block is given, returns an enumerator.</div><div class='add'>+ *    a = []</div><div class='add'>+ *    (1..10).each_slice(3) {|tuple| a.push(tuple) }</div><div class='add'>+ *    a # =&gt; [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]</div><div class='ctx'>  *</div><div class='del'>- *      (1..10).each_slice(3) { |a| p a }</div><div class='del'>- *      # outputs below</div><div class='del'>- *      [1, 2, 3]</div><div class='del'>- *      [4, 5, 6]</div><div class='del'>- *      [7, 8, 9]</div><div class='del'>- *      [10]</div><div class='add'>+ *    a = []</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2, bat: 3, bam: 4}</div><div class='add'>+ *    h.each_slice(2) {|tuple| a.push(tuple) }</div><div class='add'>+ *    a # =&gt; [[[:foo, 0], [:bar, 1]], [[:baz, 2], [:bat, 3]], [[:bam, 4]]]</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns an Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2487,7 +2989,7 @@ enum_each_slice(VALUE obj, VALUE n)</div><div class='ctx'>     ary = memo-&gt;v1;</div><div class='ctx'>     if (RARRAY_LEN(ary) &gt; 0) rb_yield(ary);</div><div class='ctx'> </div><div class='del'>-    return Qnil;</div><div class='add'>+    return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2500,14 +3002,14 @@ each_cons_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     if (RARRAY_LEN(ary) == size) {</div><div class='del'>-	rb_ary_shift(ary);</div><div class='add'>+        rb_ary_shift(ary);</div><div class='ctx'>     }</div><div class='ctx'>     rb_ary_push(ary, i);</div><div class='ctx'>     if (RARRAY_LEN(ary) == size) {</div><div class='del'>-	if (memo-&gt;v2) {</div><div class='del'>-	    ary = rb_ary_dup(ary);</div><div class='del'>-	}</div><div class='del'>-	v = rb_yield(ary);</div><div class='add'>+        if (memo-&gt;v2) {</div><div class='add'>+            ary = rb_ary_dup(ary);</div><div class='add'>+        }</div><div class='add'>+        v = rb_yield(ary);</div><div class='ctx'>     }</div><div class='ctx'>     return v;</div><div class='ctx'> }</div><div class='hunk'>@@ -2515,38 +3017,36 @@ each_cons_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'> static VALUE</div><div class='ctx'> enum_each_cons_size(VALUE obj, VALUE args, VALUE eobj)</div><div class='ctx'> {</div><div class='del'>-    struct cmp_opt_data cmp_opt = { 0, 0 };</div><div class='ctx'>     const VALUE zero = LONG2FIX(0);</div><div class='ctx'>     VALUE n, size;</div><div class='ctx'>     long cons_size = NUM2LONG(RARRAY_AREF(args, 0));</div><div class='ctx'>     if (cons_size &lt;= 0) rb_raise(rb_eArgError, "invalid size");</div><div class='ctx'> </div><div class='ctx'>     size = enum_size(obj, 0, 0);</div><div class='del'>-    if (size == Qnil) return Qnil;</div><div class='add'>+    if (NIL_P(size)) return Qnil;</div><div class='ctx'> </div><div class='ctx'>     n = add_int(size, 1 - cons_size);</div><div class='del'>-    return (OPTIMIZED_CMP(n, zero, cmp_opt) == -1) ? zero : n;</div><div class='add'>+    return (OPTIMIZED_CMP(n, zero) == -1) ? zero : n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *    enum.each_cons(n) { ... } -&gt;  nil</div><div class='del'>- *    enum.each_cons(n)         -&gt;  an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Iterates the given block for each array of consecutive &lt;n&gt;</div><div class='del'>- *  elements.  If no block is given, returns an enumerator.</div><div class='del'>- *</div><div class='del'>- *  e.g.:</div><div class='del'>- *      (1..10).each_cons(3) { |a| p a }</div><div class='del'>- *      # outputs below</div><div class='del'>- *      [1, 2, 3]</div><div class='del'>- *      [2, 3, 4]</div><div class='del'>- *      [3, 4, 5]</div><div class='del'>- *      [4, 5, 6]</div><div class='del'>- *      [5, 6, 7]</div><div class='del'>- *      [6, 7, 8]</div><div class='del'>- *      [7, 8, 9]</div><div class='del'>- *      [8, 9, 10]</div><div class='add'>+ *    each_cons(n) { ... } -&gt;  self</div><div class='add'>+ *    each_cons(n)         -&gt;  enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block with each successive overlapped +n+-tuple of elements;</div><div class='add'>+ *  returns +self+:</div><div class='add'>+ *</div><div class='add'>+ *    a = []</div><div class='add'>+ *    (1..5).each_cons(3) {|element| a.push(element) }</div><div class='add'>+ *    a # =&gt; [[1, 2, 3], [2, 3, 4], [3, 4, 5]]</div><div class='add'>+ *</div><div class='add'>+ *    a = []</div><div class='add'>+ *    h = {foo: 0,  bar: 1, baz: 2, bam: 3}</div><div class='add'>+ *    h.each_cons(2) {|element| a.push(element) }</div><div class='add'>+ *    a # =&gt; [[[:foo, 0], [:bar, 1]], [[:bar, 1], [:baz, 2]], [[:baz, 2], [:bam, 3]]]</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns an Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2559,11 +3059,11 @@ enum_each_cons(VALUE obj, VALUE n)</div><div class='ctx'>     if (size &lt;= 0) rb_raise(rb_eArgError, "invalid size");</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(obj, 1, &amp;n, enum_each_cons_size);</div><div class='ctx'>     arity = rb_block_arity();</div><div class='del'>-    if (enum_size_over_p(obj, size)) return Qnil;</div><div class='add'>+    if (enum_size_over_p(obj, size)) return obj;</div><div class='ctx'>     memo = MEMO_NEW(rb_ary_new2(size), dont_recycle_block_arg(arity), size);</div><div class='ctx'>     rb_block_call(obj, id_each, 0, 0, each_cons_i, (VALUE)memo);</div><div class='ctx'> </div><div class='del'>-    return Qnil;</div><div class='add'>+    return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2575,16 +3075,19 @@ each_with_object_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, memo))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *    enum.each_with_object(obj) { |(*args), memo_obj| ... }  -&gt;  obj</div><div class='del'>- *    enum.each_with_object(obj)                              -&gt;  an_enumerator</div><div class='add'>+ *    each_with_object(object) { |(*args), memo_object| ... }  -&gt;  object</div><div class='add'>+ *    each_with_object(object)                                 -&gt;  enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Iterates the given block for each element with an arbitrary</div><div class='del'>- *  object given, and returns the initially given object.</div><div class='add'>+ *  Calls the block once for each element, passing both the element</div><div class='add'>+ *  and the given object:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, returns an enumerator.</div><div class='add'>+ *    (1..4).each_with_object([]) {|i, a| a.push(i**2) }</div><div class='add'>+ *    # =&gt; [1, 4, 9, 16]</div><div class='ctx'>  *</div><div class='del'>- *      evens = (1..10).each_with_object([]) { |i, a| a &lt;&lt; i*2 }</div><div class='del'>- *      #=&gt; [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.each_with_object({}) {|(k, v), h| h[v] = k }</div><div class='add'>+ *    # =&gt; {0=&gt;:foo, 1=&gt;:bar, 2=&gt;:baz}</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns an Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2610,20 +3113,20 @@ zip_ary(RB_BLOCK_CALL_FUNC_ARGLIST(val, memoval))</div><div class='ctx'>     tmp = rb_ary_new2(RARRAY_LEN(args) + 1);</div><div class='ctx'>     rb_ary_store(tmp, 0, rb_enum_values_pack(argc, argv));</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(args); i++) {</div><div class='del'>-	VALUE e = RARRAY_AREF(args, i);</div><div class='add'>+        VALUE e = RARRAY_AREF(args, i);</div><div class='ctx'> </div><div class='del'>-	if (RARRAY_LEN(e) &lt;= n) {</div><div class='del'>-	    rb_ary_push(tmp, Qnil);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_ary_push(tmp, RARRAY_AREF(e, n));</div><div class='del'>-	}</div><div class='add'>+        if (RARRAY_LEN(e) &lt;= n) {</div><div class='add'>+            rb_ary_push(tmp, Qnil);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_ary_push(tmp, RARRAY_AREF(e, n));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(result)) {</div><div class='del'>-	enum_yield_array(tmp);</div><div class='add'>+        enum_yield_array(tmp);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_ary_push(result, tmp);</div><div class='add'>+        rb_ary_push(result, tmp);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     RB_GC_GUARD(args);</div><div class='hunk'>@@ -2632,14 +3135,16 @@ zip_ary(RB_BLOCK_CALL_FUNC_ARGLIST(val, memoval))</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-call_next(VALUE *v)</div><div class='add'>+call_next(VALUE w)</div><div class='ctx'> {</div><div class='add'>+    VALUE *v = (VALUE *)w;</div><div class='ctx'>     return v[0] = rb_funcallv(v[1], id_next, 0, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-call_stop(VALUE *v)</div><div class='add'>+call_stop(VALUE w, VALUE _)</div><div class='ctx'> {</div><div class='add'>+    VALUE *v = (VALUE *)w;</div><div class='ctx'>     return v[0] = Qundef;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2655,26 +3160,26 @@ zip_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, memoval))</div><div class='ctx'>     tmp = rb_ary_new2(RARRAY_LEN(args) + 1);</div><div class='ctx'>     rb_ary_store(tmp, 0, rb_enum_values_pack(argc, argv));</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(args); i++) {</div><div class='del'>-	if (NIL_P(RARRAY_AREF(args, i))) {</div><div class='del'>-	    rb_ary_push(tmp, Qnil);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    VALUE v[2];</div><div class='del'>-</div><div class='del'>-	    v[1] = RARRAY_AREF(args, i);</div><div class='del'>-	    rb_rescue2(call_next, (VALUE)v, call_stop, (VALUE)v, rb_eStopIteration, (VALUE)0);</div><div class='del'>-	    if (v[0] == Qundef) {</div><div class='del'>-		RARRAY_ASET(args, i, Qnil);</div><div class='del'>-		v[0] = Qnil;</div><div class='del'>-	    }</div><div class='del'>-	    rb_ary_push(tmp, v[0]);</div><div class='del'>-	}</div><div class='add'>+        if (NIL_P(RARRAY_AREF(args, i))) {</div><div class='add'>+            rb_ary_push(tmp, Qnil);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            VALUE v[2];</div><div class='add'>+</div><div class='add'>+            v[1] = RARRAY_AREF(args, i);</div><div class='add'>+            rb_rescue2(call_next, (VALUE)v, call_stop, (VALUE)v, rb_eStopIteration, (VALUE)0);</div><div class='add'>+            if (UNDEF_P(v[0])) {</div><div class='add'>+                RARRAY_ASET(args, i, Qnil);</div><div class='add'>+                v[0] = Qnil;</div><div class='add'>+            }</div><div class='add'>+            rb_ary_push(tmp, v[0]);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(result)) {</div><div class='del'>-	enum_yield_array(tmp);</div><div class='add'>+        enum_yield_array(tmp);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_ary_push(result, tmp);</div><div class='add'>+        rb_ary_push(result, tmp);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     RB_GC_GUARD(args);</div><div class='hunk'>@@ -2684,29 +3189,68 @@ zip_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, memoval))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.zip(arg, ...)                  -&gt; an_array_of_array</div><div class='del'>- *     enum.zip(arg, ...) { |arr| block }  -&gt; nil</div><div class='del'>- *</div><div class='del'>- *  Takes one element from &lt;i&gt;enum&lt;/i&gt; and merges corresponding</div><div class='del'>- *  elements from each &lt;i&gt;args&lt;/i&gt;.  This generates a sequence of</div><div class='del'>- *  &lt;em&gt;n&lt;/em&gt;-element arrays, where &lt;em&gt;n&lt;/em&gt; is one more than the</div><div class='del'>- *  count of arguments.  The length of the resulting sequence will be</div><div class='del'>- *  &lt;code&gt;enum#size&lt;/code&gt;.  If the size of any argument is less than</div><div class='del'>- *  &lt;code&gt;enum#size&lt;/code&gt;, &lt;code&gt;nil&lt;/code&gt; values are supplied. If</div><div class='del'>- *  a block is given, it is invoked for each output array, otherwise</div><div class='del'>- *  an array of arrays is returned.</div><div class='del'>- *</div><div class='del'>- *     a = [ 4, 5, 6 ]</div><div class='del'>- *     b = [ 7, 8, 9 ]</div><div class='del'>- *</div><div class='del'>- *     a.zip(b)                 #=&gt; [[4, 7], [5, 8], [6, 9]]</div><div class='del'>- *     [1, 2, 3].zip(a, b)      #=&gt; [[1, 4, 7], [2, 5, 8], [3, 6, 9]]</div><div class='del'>- *     [1, 2].zip(a, b)         #=&gt; [[1, 4, 7], [2, 5, 8]]</div><div class='del'>- *     a.zip([1, 2], [8])       #=&gt; [[4, 1, 8], [5, 2, nil], [6, nil, nil]]</div><div class='del'>- *</div><div class='del'>- *     c = []</div><div class='del'>- *     a.zip(b) { |x, y| c &lt;&lt; x + y }  #=&gt; nil</div><div class='del'>- *     c                               #=&gt; [11, 13, 15]</div><div class='add'>+ *    zip(*other_enums) -&gt; array</div><div class='add'>+ *    zip(*other_enums) {|array| ... } -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns a new array +new_array+ of size self.size</div><div class='add'>+ *  whose elements are arrays.</div><div class='add'>+ *  Each nested array &lt;tt&gt;new_array[n]&lt;/tt&gt;</div><div class='add'>+ *  is of size &lt;tt&gt;other_enums.size+1&lt;/tt&gt;, and contains:</div><div class='add'>+ *</div><div class='add'>+ *  - The +n+-th element of self.</div><div class='add'>+ *  - The +n+-th element of each of the +other_enums+.</div><div class='add'>+ *</div><div class='add'>+ *  If all +other_enums+ and self are the same size,</div><div class='add'>+ *  all elements are included in the result, and there is no +nil+-filling:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:a0, :a1, :a2, :a3]</div><div class='add'>+ *    b = [:b0, :b1, :b2, :b3]</div><div class='add'>+ *    c = [:c0, :c1, :c2, :c3]</div><div class='add'>+ *    d = a.zip(b, c)</div><div class='add'>+ *    d # =&gt; [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, :c2], [:a3, :b3, :c3]]</div><div class='add'>+ *</div><div class='add'>+ *    f = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    g = {goo: 3, gar: 4, gaz: 5}</div><div class='add'>+ *    h = {hoo: 6, har: 7, haz: 8}</div><div class='add'>+ *    d = f.zip(g, h)</div><div class='add'>+ *    d # =&gt; [</div><div class='add'>+ *      #      [[:foo, 0], [:goo, 3], [:hoo, 6]],</div><div class='add'>+ *      #      [[:bar, 1], [:gar, 4], [:har, 7]],</div><div class='add'>+ *      #      [[:baz, 2], [:gaz, 5], [:haz, 8]]</div><div class='add'>+ *      #    ]</div><div class='add'>+ *</div><div class='add'>+ *  If any enumerable in other_enums is smaller than self,</div><div class='add'>+ *  fills to &lt;tt&gt;self.size&lt;/tt&gt; with +nil+:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:a0, :a1, :a2, :a3]</div><div class='add'>+ *    b = [:b0, :b1, :b2]</div><div class='add'>+ *    c = [:c0, :c1]</div><div class='add'>+ *    d = a.zip(b, c)</div><div class='add'>+ *    d # =&gt; [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, nil], [:a3, nil, nil]]</div><div class='add'>+ *</div><div class='add'>+ *  If any enumerable in other_enums is larger than self,</div><div class='add'>+ *  its trailing elements are ignored:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:a0, :a1, :a2, :a3]</div><div class='add'>+ *    b = [:b0, :b1, :b2, :b3, :b4]</div><div class='add'>+ *    c = [:c0, :c1, :c2, :c3, :c4, :c5]</div><div class='add'>+ *    d = a.zip(b, c)</div><div class='add'>+ *    d # =&gt; [[:a0, :b0, :c0], [:a1, :b1, :c1], [:a2, :b2, :c2], [:a3, :b3, :c3]]</div><div class='add'>+ *</div><div class='add'>+ *  When a block is given, calls the block with each of the sub-arrays</div><div class='add'>+ *  (formed as above); returns nil:</div><div class='add'>+ *</div><div class='add'>+ *    a = [:a0, :a1, :a2, :a3]</div><div class='add'>+ *    b = [:b0, :b1, :b2, :b3]</div><div class='add'>+ *    c = [:c0, :c1, :c2, :c3]</div><div class='add'>+ *    a.zip(b, c) {|sub_array| p sub_array} # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    [:a0, :b0, :c0]</div><div class='add'>+ *    [:a1, :b1, :c1]</div><div class='add'>+ *    [:a2, :b2, :c2]</div><div class='add'>+ *    [:a3, :b3, :c3]</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -2722,26 +3266,26 @@ enum_zip(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     argv = RARRAY_PTR(args);</div><div class='ctx'>     for (i=0; i&lt;argc; i++) {</div><div class='del'>-	VALUE ary = rb_check_array_type(argv[i]);</div><div class='del'>-	if (NIL_P(ary)) {</div><div class='del'>-	    allary = FALSE;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	argv[i] = ary;</div><div class='add'>+        VALUE ary = rb_check_array_type(argv[i]);</div><div class='add'>+        if (NIL_P(ary)) {</div><div class='add'>+            allary = FALSE;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        argv[i] = ary;</div><div class='ctx'>     }</div><div class='ctx'>     if (!allary) {</div><div class='del'>-	static const VALUE sym_each = STATIC_ID2SYM(id_each);</div><div class='del'>-	CONST_ID(conv, "to_enum");</div><div class='del'>-	for (i=0; i&lt;argc; i++) {</div><div class='del'>-	    if (!rb_respond_to(argv[i], id_each)) {</div><div class='del'>-		rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (must respond to :each)",</div><div class='del'>-			 rb_obj_class(argv[i]));</div><div class='add'>+        static const VALUE sym_each = STATIC_ID2SYM(id_each);</div><div class='add'>+        CONST_ID(conv, "to_enum");</div><div class='add'>+        for (i=0; i&lt;argc; i++) {</div><div class='add'>+            if (!rb_respond_to(argv[i], id_each)) {</div><div class='add'>+                rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (must respond to :each)",</div><div class='add'>+                         rb_obj_class(argv[i]));</div><div class='ctx'>             }</div><div class='del'>-	    argv[i] = rb_funcallv(argv[i], conv, 1, &amp;sym_each);</div><div class='del'>-	}</div><div class='add'>+            argv[i] = rb_funcallv(argv[i], conv, 1, &amp;sym_each);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (!rb_block_given_p()) {</div><div class='del'>-	result = rb_ary_new();</div><div class='add'>+        result = rb_ary_new();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* TODO: use NODE_DOT2 as memo(v, v, -) */</div><div class='hunk'>@@ -2762,13 +3306,16 @@ take_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.take(n)               -&gt; array</div><div class='add'>+ *    take(n) -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  For non-negative integer +n+, returns the first +n+ elements:</div><div class='ctx'>  *</div><div class='del'>- *  Returns first n elements from &lt;i&gt;enum&lt;/i&gt;.</div><div class='add'>+ *    r = (1..4)</div><div class='add'>+ *    r.take(2) # =&gt; [1, 2]</div><div class='add'>+ *    r.take(0) # =&gt; []</div><div class='ctx'>  *</div><div class='del'>- *     a = [1, 2, 3, 4, 5, 0]</div><div class='del'>- *     a.take(3)             #=&gt; [1, 2, 3]</div><div class='del'>- *     a.take(30)            #=&gt; [1, 2, 3, 4, 5, 0]</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2, bat: 3}</div><div class='add'>+ *    h.take(2) # =&gt; [[:foo, 0], [:bar, 1]]</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -2780,7 +3327,7 @@ enum_take(VALUE obj, VALUE n)</div><div class='ctx'>     long len = NUM2LONG(n);</div><div class='ctx'> </div><div class='ctx'>     if (len &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "attempt to take negative size");</div><div class='add'>+        rb_raise(rb_eArgError, "attempt to take negative size");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (len == 0) return rb_ary_new2(0);</div><div class='hunk'>@@ -2801,16 +3348,20 @@ take_while_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, ary))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.take_while { |obj| block } -&gt; array</div><div class='del'>- *     enum.take_while                 -&gt; an_enumerator</div><div class='add'>+ *    take_while {|element| ... } -&gt; array</div><div class='add'>+ *    take_while                  -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Passes elements to the block until the block returns +nil+ or +false+,</div><div class='del'>- *  then stops iterating and returns an array of all prior elements.</div><div class='add'>+ *  Calls the block with successive elements as long as the block</div><div class='add'>+ *  returns a truthy value;</div><div class='add'>+ *  returns an array of all elements up to that point:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='ctx'>  *</div><div class='del'>- *     a = [1, 2, 3, 4, 5, 0]</div><div class='del'>- *     a.take_while { |i| i &lt; 3 }   #=&gt; [1, 2]</div><div class='add'>+ *    (1..4).take_while{|i| i &lt; 3 } # =&gt; [1, 2]</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.take_while{|element| key, value = *element; value &lt; 2 }</div><div class='add'>+ *    # =&gt; [[:foo, 0], [:bar, 1]]</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns an Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -2830,23 +3381,30 @@ drop_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'> {</div><div class='ctx'>     struct MEMO *memo = MEMO_CAST(args);</div><div class='ctx'>     if (memo-&gt;u3.cnt == 0) {</div><div class='del'>-	rb_ary_push(memo-&gt;v1, rb_enum_values_pack(argc, argv));</div><div class='add'>+        rb_ary_push(memo-&gt;v1, rb_enum_values_pack(argc, argv));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	memo-&gt;u3.cnt--;</div><div class='add'>+        memo-&gt;u3.cnt--;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.drop(n)               -&gt; array</div><div class='add'>+ *    drop(n) -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  For positive integer +n+, returns an array containing</div><div class='add'>+ *  all but the first +n+ elements:</div><div class='ctx'>  *</div><div class='del'>- *  Drops first n elements from &lt;i&gt;enum&lt;/i&gt;, and returns rest elements</div><div class='del'>- *  in an array.</div><div class='add'>+ *    r = (1..4)</div><div class='add'>+ *    r.drop(3)  # =&gt; [4]</div><div class='add'>+ *    r.drop(2)  # =&gt; [3, 4]</div><div class='add'>+ *    r.drop(1)  # =&gt; [2, 3, 4]</div><div class='add'>+ *    r.drop(0)  # =&gt; [1, 2, 3, 4]</div><div class='add'>+ *    r.drop(50) # =&gt; []</div><div class='ctx'>  *</div><div class='del'>- *     a = [1, 2, 3, 4, 5, 0]</div><div class='del'>- *     a.drop(3)             #=&gt; [4, 5, 0]</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2, bat: 3}</div><div class='add'>+ *    h.drop(2) # =&gt; [[:baz, 2], [:bat, 3]]</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -2858,7 +3416,7 @@ enum_drop(VALUE obj, VALUE n)</div><div class='ctx'>     long len = NUM2LONG(n);</div><div class='ctx'> </div><div class='ctx'>     if (len &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "attempt to drop negative size");</div><div class='add'>+        rb_raise(rb_eArgError, "attempt to drop negative size");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     result = rb_ary_new();</div><div class='hunk'>@@ -2875,27 +3433,30 @@ drop_while_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, args))</div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='ctx'>     if (!memo-&gt;u3.state &amp;&amp; !RTEST(enum_yield(argc, i))) {</div><div class='del'>-	memo-&gt;u3.state = TRUE;</div><div class='add'>+        memo-&gt;u3.state = TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     if (memo-&gt;u3.state) {</div><div class='del'>-	rb_ary_push(memo-&gt;v1, i);</div><div class='add'>+        rb_ary_push(memo-&gt;v1, i);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.drop_while { |obj| block }  -&gt; array</div><div class='del'>- *     enum.drop_while                  -&gt; an_enumerator</div><div class='add'>+ *    drop_while {|element| ... } -&gt; array</div><div class='add'>+ *    drop_while                  -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Drops elements up to, but not including, the first element for</div><div class='del'>- *  which the block returns +nil+ or +false+ and returns an array</div><div class='del'>- *  containing the remaining elements.</div><div class='add'>+ *  Calls the block with successive elements as long as the block</div><div class='add'>+ *  returns a truthy value;</div><div class='add'>+ *  returns an array of all elements after that point:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='ctx'>  *</div><div class='del'>- *     a = [1, 2, 3, 4, 5, 0]</div><div class='del'>- *     a.drop_while { |i| i &lt; 3 }   #=&gt; [3, 4, 5, 0]</div><div class='add'>+ *    (1..4).drop_while{|i| i &lt; 3 } # =&gt; [3, 4]</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    a = h.drop_while{|element| key, value = *element; value &lt; 2 }</div><div class='add'>+ *    a # =&gt; [[:baz, 2]]</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns an Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -2930,8 +3491,8 @@ enum_cycle_size(VALUE self, VALUE args, VALUE eobj)</div><div class='ctx'>     VALUE size;</div><div class='ctx'> </div><div class='ctx'>     if (args &amp;&amp; (RARRAY_LEN(args) &gt; 0)) {</div><div class='del'>-	n = RARRAY_AREF(args, 0);</div><div class='del'>-	if (!NIL_P(n)) mul = NUM2LONG(n);</div><div class='add'>+        n = RARRAY_AREF(args, 0);</div><div class='add'>+        if (!NIL_P(n)) mul = NUM2LONG(n);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     size = enum_size(self, args, 0);</div><div class='hunk'>@@ -2945,22 +3506,28 @@ enum_cycle_size(VALUE self, VALUE args, VALUE eobj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.cycle(n=nil) { |obj| block }  -&gt;  nil</div><div class='del'>- *     enum.cycle(n=nil)                  -&gt;  an_enumerator</div><div class='add'>+ *    cycle(n = nil) {|element| ...} -&gt;  nil</div><div class='add'>+ *    cycle(n = nil)                 -&gt;  enumerator</div><div class='add'>+ *</div><div class='add'>+ *  When called with positive integer argument +n+ and a block,</div><div class='add'>+ *  calls the block with each element, then does so again,</div><div class='add'>+ *  until it has done so +n+ times; returns +nil+:</div><div class='ctx'>  *</div><div class='del'>- *  Calls &lt;i&gt;block&lt;/i&gt; for each element of &lt;i&gt;enum&lt;/i&gt; repeatedly _n_</div><div class='del'>- *  times or forever if none or +nil+ is given.  If a non-positive</div><div class='del'>- *  number is given or the collection is empty, does nothing.  Returns</div><div class='del'>- *  +nil+ if the loop has finished without getting interrupted.</div><div class='add'>+ *    a = []</div><div class='add'>+ *    (1..4).cycle(3) {|element| a.push(element) } # =&gt; nil</div><div class='add'>+ *    a # =&gt; [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]</div><div class='add'>+ *    a = []</div><div class='add'>+ *    ('a'..'d').cycle(2) {|element| a.push(element) }</div><div class='add'>+ *    a # =&gt; ["a", "b", "c", "d", "a", "b", "c", "d"]</div><div class='add'>+ *    a = []</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.cycle(2) {|element| a.push(element) }</div><div class='add'>+ *    a # =&gt; [[:foo, 0], [:bar, 1], [:baz, 2], [:foo, 0], [:bar, 1], [:baz, 2]]</div><div class='ctx'>  *</div><div class='del'>- *  Enumerable#cycle saves elements in an internal array so changes</div><div class='del'>- *  to &lt;i&gt;enum&lt;/i&gt; after the first pass have no effect.</div><div class='add'>+ *  If count is zero or negative, does not call the block.</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *  When called with a block and +n+ is +nil+, cycles forever.</div><div class='ctx'>  *</div><div class='del'>- *     a = ["a", "b", "c"]</div><div class='del'>- *     a.cycle { |x| puts x }  # print, a, b, c, a, b, c,.. forever.</div><div class='del'>- *     a.cycle(2) { |x| puts x }  # print, a, b, c, a, b, c.</div><div class='add'>+ *  When no block is given, returns an Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -2988,7 +3555,7 @@ enum_cycle(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     if (len == 0) return Qnil;</div><div class='ctx'>     while (n &lt; 0 || 0 &lt; --n) {</div><div class='ctx'>         for (i=0; i&lt;len; i++) {</div><div class='del'>-	    enum_yield_array(RARRAY_AREF(ary, i));</div><div class='add'>+            enum_yield_array(RARRAY_AREF(ary, i));</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -3006,8 +3573,8 @@ chunk_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, _argp))</div><div class='ctx'> {</div><div class='ctx'>     struct chunk_arg *argp = MEMO_FOR(struct chunk_arg, _argp);</div><div class='ctx'>     VALUE v, s;</div><div class='del'>-    VALUE alone = ID2SYM(rb_intern("_alone"));</div><div class='del'>-    VALUE separator = ID2SYM(rb_intern("_separator"));</div><div class='add'>+    VALUE alone = ID2SYM(id__alone);</div><div class='add'>+    VALUE separator = ID2SYM(id__separator);</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='hunk'>@@ -3015,22 +3582,22 @@ chunk_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, _argp))</div><div class='ctx'> </div><div class='ctx'>     if (v == alone) {</div><div class='ctx'>         if (!NIL_P(argp-&gt;prev_value)) {</div><div class='del'>-	    s = rb_assoc_new(argp-&gt;prev_value, argp-&gt;prev_elts);</div><div class='add'>+            s = rb_assoc_new(argp-&gt;prev_value, argp-&gt;prev_elts);</div><div class='ctx'>             rb_funcallv(argp-&gt;yielder, id_lshift, 1, &amp;s);</div><div class='ctx'>             argp-&gt;prev_value = argp-&gt;prev_elts = Qnil;</div><div class='ctx'>         }</div><div class='del'>-	v = rb_assoc_new(v, rb_ary_new3(1, i));</div><div class='add'>+        v = rb_assoc_new(v, rb_ary_new3(1, i));</div><div class='ctx'>         rb_funcallv(argp-&gt;yielder, id_lshift, 1, &amp;v);</div><div class='ctx'>     }</div><div class='ctx'>     else if (NIL_P(v) || v == separator) {</div><div class='ctx'>         if (!NIL_P(argp-&gt;prev_value)) {</div><div class='del'>-	    v = rb_assoc_new(argp-&gt;prev_value, argp-&gt;prev_elts);</div><div class='add'>+            v = rb_assoc_new(argp-&gt;prev_value, argp-&gt;prev_elts);</div><div class='ctx'>             rb_funcallv(argp-&gt;yielder, id_lshift, 1, &amp;v);</div><div class='ctx'>             argp-&gt;prev_value = argp-&gt;prev_elts = Qnil;</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     else if (SYMBOL_P(v) &amp;&amp; (s = rb_sym2str(v), RSTRING_PTR(s)[0] == '_')) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "symbols beginning with an underscore are reserved");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "symbols beginning with an underscore are reserved");</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         if (NIL_P(argp-&gt;prev_value)) {</div><div class='hunk'>@@ -3042,7 +3609,7 @@ chunk_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, _argp))</div><div class='ctx'>                 rb_ary_push(argp-&gt;prev_elts, i);</div><div class='ctx'>             }</div><div class='ctx'>             else {</div><div class='del'>-		s = rb_assoc_new(argp-&gt;prev_value, argp-&gt;prev_elts);</div><div class='add'>+                s = rb_assoc_new(argp-&gt;prev_value, argp-&gt;prev_elts);</div><div class='ctx'>                 rb_funcallv(argp-&gt;yielder, id_lshift, 1, &amp;s);</div><div class='ctx'>                 argp-&gt;prev_value = v;</div><div class='ctx'>                 argp-&gt;prev_elts = rb_ary_new3(1, i);</div><div class='hunk'>@@ -3059,8 +3626,8 @@ chunk_i(RB_BLOCK_CALL_FUNC_ARGLIST(yielder, enumerator))</div><div class='ctx'>     VALUE arg;</div><div class='ctx'>     struct chunk_arg *memo = NEW_MEMO_FOR(struct chunk_arg, arg);</div><div class='ctx'> </div><div class='del'>-    enumerable = rb_ivar_get(enumerator, rb_intern("chunk_enumerable"));</div><div class='del'>-    memo-&gt;categorize = rb_ivar_get(enumerator, rb_intern("chunk_categorize"));</div><div class='add'>+    enumerable = rb_ivar_get(enumerator, id_chunk_enumerable);</div><div class='add'>+    memo-&gt;categorize = rb_ivar_get(enumerator, id_chunk_categorize);</div><div class='ctx'>     memo-&gt;prev_value = Qnil;</div><div class='ctx'>     memo-&gt;prev_elts = Qnil;</div><div class='ctx'>     memo-&gt;yielder = yielder;</div><div class='hunk'>@@ -3068,58 +3635,86 @@ chunk_i(RB_BLOCK_CALL_FUNC_ARGLIST(yielder, enumerator))</div><div class='ctx'>     rb_block_call(enumerable, id_each, 0, 0, chunk_ii, arg);</div><div class='ctx'>     memo = MEMO_FOR(struct chunk_arg, arg);</div><div class='ctx'>     if (!NIL_P(memo-&gt;prev_elts)) {</div><div class='del'>-	arg = rb_assoc_new(memo-&gt;prev_value, memo-&gt;prev_elts);</div><div class='del'>-	rb_funcallv(memo-&gt;yielder, id_lshift, 1, &amp;arg);</div><div class='add'>+        arg = rb_assoc_new(memo-&gt;prev_value, memo-&gt;prev_elts);</div><div class='add'>+        rb_funcallv(memo-&gt;yielder, id_lshift, 1, &amp;arg);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.chunk { |elt| ... }                       -&gt; an_enumerator</div><div class='add'>+ *    chunk {|array| ... } -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Enumerates over the items, chunking them together based on the return</div><div class='del'>- *  value of the block.</div><div class='add'>+ *  Each element in the returned enumerator is a 2-element array consisting of:</div><div class='ctx'>  *</div><div class='del'>- *  Consecutive elements which return the same block value are chunked together.</div><div class='add'>+ *  - A value returned by the block.</div><div class='add'>+ *  - An array ("chunk") containing the element for which that value was returned,</div><div class='add'>+ *    and all following elements for which the block returned the same value:</div><div class='ctx'>  *</div><div class='del'>- *  For example, consecutive even numbers and odd numbers can be</div><div class='del'>- *  chunked as follows.</div><div class='add'>+ *  So that:</div><div class='ctx'>  *</div><div class='del'>- *    [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5].chunk { |n|</div><div class='del'>- *      n.even?</div><div class='del'>- *    }.each { |even, ary|</div><div class='del'>- *      p [even, ary]</div><div class='del'>- *    }</div><div class='del'>- *    #=&gt; [false, [3, 1]]</div><div class='del'>- *    #   [true, [4]]</div><div class='del'>- *    #   [false, [1, 5, 9]]</div><div class='del'>- *    #   [true, [2, 6]]</div><div class='del'>- *    #   [false, [5, 3, 5]]</div><div class='add'>+ *  - Each block return value that is different from its predecessor</div><div class='add'>+ *    begins a new chunk.</div><div class='add'>+ *  - Each block return value that is the same as its predecessor</div><div class='add'>+ *    continues the same chunk.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    e = (0..10).chunk {|i| (i / 3).floor } # =&gt; #&lt;Enumerator: ...&gt;</div><div class='add'>+ *    # The enumerator elements.</div><div class='add'>+ *    e.next # =&gt; [0, [0, 1, 2]]</div><div class='add'>+ *    e.next # =&gt; [1, [3, 4, 5]]</div><div class='add'>+ *    e.next # =&gt; [2, [6, 7, 8]]</div><div class='add'>+ *    e.next # =&gt; [3, [9, 10]]</div><div class='add'>+ *</div><div class='add'>+ *  \Method +chunk+ is especially useful for an enumerable that is already sorted.</div><div class='add'>+ *  This example counts words for each initial letter in a large array of words:</div><div class='add'>+ *</div><div class='add'>+ *    # Get sorted words from a web page.</div><div class='add'>+ *    url = 'https://raw.githubusercontent.com/eneko/data-repository/master/data/words.txt'</div><div class='add'>+ *    words = URI::open(url).readlines</div><div class='add'>+ *    # Make chunks, one for each letter.</div><div class='add'>+ *    e = words.chunk {|word| word.upcase[0] } # =&gt; #&lt;Enumerator: ...&gt;</div><div class='add'>+ *    # Display 'A' through 'F'.</div><div class='add'>+ *    e.each {|c, words| p [c, words.length]; break if c == 'F' }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    ["A", 17096]</div><div class='add'>+ *    ["B", 11070]</div><div class='add'>+ *    ["C", 19901]</div><div class='add'>+ *    ["D", 10896]</div><div class='add'>+ *    ["E", 8736]</div><div class='add'>+ *    ["F", 6860]</div><div class='add'>+ *</div><div class='add'>+ *  You can use the special symbol &lt;tt&gt;:_alone&lt;/tt&gt; to force an element</div><div class='add'>+ *  into its own separate chuck:</div><div class='ctx'>  *</div><div class='del'>- *  This method is especially useful for sorted series of elements.</div><div class='del'>- *  The following example counts words for each initial letter.</div><div class='add'>+ *    a = [0, 0, 1, 1]</div><div class='add'>+ *    e = a.chunk{|i| i.even? ? :_alone : true }</div><div class='add'>+ *    e.to_a # =&gt; [[:_alone, [0]], [:_alone, [0]], [true, [1, 1]]]</div><div class='ctx'>  *</div><div class='del'>- *    open("/usr/share/dict/words", "r:iso-8859-1") { |f|</div><div class='del'>- *      f.chunk { |line| line.ord }.each { |ch, lines| p [ch.chr, lines.length] }</div><div class='add'>+ *  For example, you can put each line that contains a URL into its own chunk:</div><div class='add'>+ *</div><div class='add'>+ *    pattern = /http/</div><div class='add'>+ *    open(filename) { |f|</div><div class='add'>+ *      f.chunk { |line| line =~ pattern ? :_alone : true }.each { |key, lines|</div><div class='add'>+ *        pp lines</div><div class='add'>+ *      }</div><div class='ctx'>  *    }</div><div class='del'>- *    #=&gt; ["\n", 1]</div><div class='del'>- *    #   ["A", 1327]</div><div class='del'>- *    #   ["B", 1372]</div><div class='del'>- *    #   ["C", 1507]</div><div class='del'>- *    #   ["D", 791]</div><div class='del'>- *    #   ...</div><div class='ctx'>  *</div><div class='del'>- *  The following key values have special meaning:</div><div class='del'>- *  - +nil+ and +:_separator+ specifies that the elements should be dropped.</div><div class='del'>- *  - +:_alone+ specifies that the element should be chunked by itself.</div><div class='add'>+ *  You can use the special symbol &lt;tt&gt;:_separator&lt;/tt&gt; or +nil+</div><div class='add'>+ *  to force an element to be ignored (not included in any chunk):</div><div class='ctx'>  *</div><div class='del'>- *  Any other symbols that begin with an underscore will raise an error:</div><div class='add'>+ *    a = [0, 0, -1, 1, 1]</div><div class='add'>+ *    e = a.chunk{|i| i &lt; 0 ? :_separator : true }</div><div class='add'>+ *    e.to_a # =&gt; [[true, [0, 0]], [true, [1, 1]]]</div><div class='ctx'>  *</div><div class='del'>- *    items.chunk { |item| :_underscore }</div><div class='del'>- *    #=&gt; RuntimeError: symbols beginning with an underscore are reserved</div><div class='add'>+ *  Note that the separator does end the chunk:</div><div class='ctx'>  *</div><div class='del'>- *  +nil+ and +:_separator+ can be used to ignore some elements.</div><div class='add'>+ *    a = [0, 0, -1, 1, -1, 1]</div><div class='add'>+ *    e = a.chunk{|i| i &lt; 0 ? :_separator : true }</div><div class='add'>+ *    e.to_a # =&gt; [[true, [0, 0]], [true, [1]], [true, [1]]]</div><div class='ctx'>  *</div><div class='ctx'>  *  For example, the sequence of hyphens in svn log can be eliminated as follows:</div><div class='ctx'>  *</div><div class='hunk'>@@ -3149,18 +3744,6 @@ chunk_i(RB_BLOCK_CALL_FUNC_ARGLIST(yielder, enumerator))</div><div class='ctx'>  *      pp lines</div><div class='ctx'>  *    }</div><div class='ctx'>  *</div><div class='del'>- *  +:_alone+ can be used to force items into their own chunk.</div><div class='del'>- *  For example, you can put lines that contain a URL by themselves,</div><div class='del'>- *  and chunk the rest of the lines together, like this:</div><div class='del'>- *</div><div class='del'>- *    pattern = /http/</div><div class='del'>- *    open(filename) { |f|</div><div class='del'>- *      f.chunk { |line| line =~ pattern ? :_alone : true }.each { |key, lines|</div><div class='del'>- *        pp lines</div><div class='del'>- *      }</div><div class='del'>- *    }</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator to `chunk` is returned instead.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> enum_chunk(VALUE enumerable)</div><div class='hunk'>@@ -3170,8 +3753,8 @@ enum_chunk(VALUE enumerable)</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(enumerable, 0, 0, enum_size);</div><div class='ctx'> </div><div class='ctx'>     enumerator = rb_obj_alloc(rb_cEnumerator);</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("chunk_enumerable"), enumerable);</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("chunk_categorize"), rb_block_proc());</div><div class='add'>+    rb_ivar_set(enumerator, id_chunk_enumerable, enumerable);</div><div class='add'>+    rb_ivar_set(enumerator, id_chunk_categorize, rb_block_proc());</div><div class='ctx'>     rb_block_call(enumerator, idInitialize, 0, 0, chunk_i, enumerator);</div><div class='ctx'>     return enumerator;</div><div class='ctx'> }</div><div class='hunk'>@@ -3218,9 +3801,9 @@ slicebefore_i(RB_BLOCK_CALL_FUNC_ARGLIST(yielder, enumerator))</div><div class='ctx'>     VALUE arg;</div><div class='ctx'>     struct slicebefore_arg *memo = NEW_MEMO_FOR(struct slicebefore_arg, arg);</div><div class='ctx'> </div><div class='del'>-    enumerable = rb_ivar_get(enumerator, rb_intern("slicebefore_enumerable"));</div><div class='del'>-    memo-&gt;sep_pred = rb_attr_get(enumerator, rb_intern("slicebefore_sep_pred"));</div><div class='del'>-    memo-&gt;sep_pat = NIL_P(memo-&gt;sep_pred) ? rb_ivar_get(enumerator, rb_intern("slicebefore_sep_pat")) : Qnil;</div><div class='add'>+    enumerable = rb_ivar_get(enumerator, id_slicebefore_enumerable);</div><div class='add'>+    memo-&gt;sep_pred = rb_attr_get(enumerator, id_slicebefore_sep_pred);</div><div class='add'>+    memo-&gt;sep_pat = NIL_P(memo-&gt;sep_pred) ? rb_ivar_get(enumerator, id_slicebefore_sep_pat) : Qnil;</div><div class='ctx'>     memo-&gt;prev_elts = Qnil;</div><div class='ctx'>     memo-&gt;yielder = yielder;</div><div class='ctx'> </div><div class='hunk'>@@ -3233,24 +3816,41 @@ slicebefore_i(RB_BLOCK_CALL_FUNC_ARGLIST(yielder, enumerator))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.slice_before(pattern)                             -&gt; an_enumerator</div><div class='del'>- *     enum.slice_before { |elt| bool }                       -&gt; an_enumerator</div><div class='add'>+ *    slice_before(pattern)       -&gt; enumerator</div><div class='add'>+ *    slice_before {|elt| ... } -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Creates an enumerator for each chunked elements.</div><div class='del'>- *  The beginnings of chunks are defined by _pattern_ and the block.</div><div class='del'>-</div><div class='del'>- *  If &lt;code&gt;_pattern_ === _elt_&lt;/code&gt; returns &lt;code&gt;true&lt;/code&gt; or the block</div><div class='del'>- *  returns &lt;code&gt;true&lt;/code&gt; for the element, the element is beginning of a</div><div class='del'>- *  chunk.</div><div class='del'>-</div><div class='del'>- *  The &lt;code&gt;===&lt;/code&gt; and _block_ is called from the first element to the last</div><div class='del'>- *  element of _enum_.  The result for the first element is ignored.</div><div class='del'>-</div><div class='del'>- *  The result enumerator yields the chunked elements as an array.</div><div class='del'>- *  So +each+ method can be called as follows:</div><div class='add'>+ *  With argument +pattern+, returns an enumerator that uses the pattern</div><div class='add'>+ *  to partition elements into arrays ("slices").</div><div class='add'>+ *  An element begins a new slice if &lt;tt&gt;element === pattern&lt;/tt&gt;</div><div class='add'>+ *  (or if it is the first element).</div><div class='add'>+ *</div><div class='add'>+ *    a = %w[foo bar fop for baz fob fog bam foy]</div><div class='add'>+ *    e = a.slice_before(/ba/) # =&gt; #&lt;Enumerator: ...&gt;</div><div class='add'>+ *    e.each {|array| p array }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    ["foo"]</div><div class='add'>+ *    ["bar", "fop", "for"]</div><div class='add'>+ *    ["baz", "fob", "fog"]</div><div class='add'>+ *    ["bam", "foy"]</div><div class='ctx'>  *</div><div class='del'>- *    enum.slice_before(pattern).each { |ary| ... }</div><div class='del'>- *    enum.slice_before { |elt| bool }.each { |ary| ... }</div><div class='add'>+ *  With a block, returns an enumerator that uses the block</div><div class='add'>+ *  to partition elements into arrays.</div><div class='add'>+ *  An element begins a new slice if its block return is a truthy value</div><div class='add'>+ *  (or if it is the first element):</div><div class='add'>+ *</div><div class='add'>+ *    e = (1..20).slice_before {|i| i % 4 == 2 } # =&gt; #&lt;Enumerator: ...&gt;</div><div class='add'>+ *    e.each {|array| p array }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    [1]</div><div class='add'>+ *    [2, 3, 4, 5]</div><div class='add'>+ *    [6, 7, 8, 9]</div><div class='add'>+ *    [10, 11, 12, 13]</div><div class='add'>+ *    [14, 15, 16, 17]</div><div class='add'>+ *    [18, 19, 20]</div><div class='ctx'>  *</div><div class='ctx'>  *  Other methods of the Enumerator class and Enumerable module,</div><div class='ctx'>  *  such as +to_a+, +map+, etc., are also usable.</div><div class='hunk'>@@ -3268,7 +3868,6 @@ slicebefore_i(RB_BLOCK_CALL_FUNC_ARGLIST(yielder, enumerator))</div><div class='ctx'>  *      f.slice_before { |line| /\A\S/ === line }.each { |e| pp e }</div><div class='ctx'>  *    }</div><div class='ctx'>  *</div><div class='del'>- *</div><div class='ctx'>  *  "svn proplist -R" produces multiline output for each file.</div><div class='ctx'>  *  They can be chunked as follows:</div><div class='ctx'>  *</div><div class='hunk'>@@ -3384,15 +3983,15 @@ enum_slice_before(int argc, VALUE *argv, VALUE enumerable)</div><div class='ctx'>         if (argc != 0)</div><div class='ctx'>             rb_error_arity(argc, 0, 0);</div><div class='ctx'>         enumerator = rb_obj_alloc(rb_cEnumerator);</div><div class='del'>-        rb_ivar_set(enumerator, rb_intern("slicebefore_sep_pred"), rb_block_proc());</div><div class='add'>+        rb_ivar_set(enumerator, id_slicebefore_sep_pred, rb_block_proc());</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         VALUE sep_pat;</div><div class='ctx'>         rb_scan_args(argc, argv, "1", &amp;sep_pat);</div><div class='ctx'>         enumerator = rb_obj_alloc(rb_cEnumerator);</div><div class='del'>-        rb_ivar_set(enumerator, rb_intern("slicebefore_sep_pat"), sep_pat);</div><div class='add'>+        rb_ivar_set(enumerator, id_slicebefore_sep_pat, sep_pat);</div><div class='ctx'>     }</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("slicebefore_enumerable"), enumerable);</div><div class='add'>+    rb_ivar_set(enumerator, id_slicebefore_enumerable, enumerable);</div><div class='ctx'>     rb_block_call(enumerator, idInitialize, 0, 0, slicebefore_i, enumerator);</div><div class='ctx'>     return enumerator;</div><div class='ctx'> }</div><div class='hunk'>@@ -3448,9 +4047,9 @@ sliceafter_i(RB_BLOCK_CALL_FUNC_ARGLIST(yielder, enumerator))</div><div class='ctx'>     VALUE arg;</div><div class='ctx'>     struct sliceafter_arg *memo = NEW_MEMO_FOR(struct sliceafter_arg, arg);</div><div class='ctx'> </div><div class='del'>-    enumerable = rb_ivar_get(enumerator, rb_intern("sliceafter_enum"));</div><div class='del'>-    memo-&gt;pat = rb_ivar_get(enumerator, rb_intern("sliceafter_pat"));</div><div class='del'>-    memo-&gt;pred = rb_attr_get(enumerator, rb_intern("sliceafter_pred"));</div><div class='add'>+    enumerable = rb_ivar_get(enumerator, id_sliceafter_enum);</div><div class='add'>+    memo-&gt;pat = rb_ivar_get(enumerator, id_sliceafter_pat);</div><div class='add'>+    memo-&gt;pred = rb_attr_get(enumerator, id_sliceafter_pred);</div><div class='ctx'>     memo-&gt;prev_elts = Qnil;</div><div class='ctx'>     memo-&gt;yielder = yielder;</div><div class='ctx'> </div><div class='hunk'>@@ -3513,9 +4112,9 @@ enum_slice_after(int argc, VALUE *argv, VALUE enumerable)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     enumerator = rb_obj_alloc(rb_cEnumerator);</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("sliceafter_enum"), enumerable);</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("sliceafter_pat"), pat);</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("sliceafter_pred"), pred);</div><div class='add'>+    rb_ivar_set(enumerator, id_sliceafter_enum, enumerable);</div><div class='add'>+    rb_ivar_set(enumerator, id_sliceafter_pat, pat);</div><div class='add'>+    rb_ivar_set(enumerator, id_sliceafter_pred, pred);</div><div class='ctx'> </div><div class='ctx'>     rb_block_call(enumerator, idInitialize, 0, 0, sliceafter_i, enumerator);</div><div class='ctx'>     return enumerator;</div><div class='hunk'>@@ -3539,15 +4138,15 @@ slicewhen_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, _memo))</div><div class='ctx'> </div><div class='ctx'>     ENUM_WANT_SVALUE();</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;prev_elt == Qundef) {</div><div class='add'>+    if (UNDEF_P(memo-&gt;prev_elt)) {</div><div class='ctx'>         /* The first element */</div><div class='ctx'>         memo-&gt;prev_elt = i;</div><div class='ctx'>         memo-&gt;prev_elts = rb_ary_new3(1, i);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE args[2];</div><div class='del'>-	args[0] = memo-&gt;prev_elt;</div><div class='del'>-	args[1] = i;</div><div class='add'>+        VALUE args[2];</div><div class='add'>+        args[0] = memo-&gt;prev_elt;</div><div class='add'>+        args[1] = i;</div><div class='ctx'>         split_p = RTEST(rb_funcallv(memo-&gt;pred, id_call, 2, args));</div><div class='ctx'>         UPDATE_MEMO;</div><div class='ctx'> </div><div class='hunk'>@@ -3576,14 +4175,14 @@ slicewhen_i(RB_BLOCK_CALL_FUNC_ARGLIST(yielder, enumerator))</div><div class='ctx'>     VALUE enumerable;</div><div class='ctx'>     VALUE arg;</div><div class='ctx'>     struct slicewhen_arg *memo =</div><div class='del'>-	NEW_PARTIAL_MEMO_FOR(struct slicewhen_arg, arg, inverted);</div><div class='add'>+        NEW_PARTIAL_MEMO_FOR(struct slicewhen_arg, arg, inverted);</div><div class='ctx'> </div><div class='del'>-    enumerable = rb_ivar_get(enumerator, rb_intern("slicewhen_enum"));</div><div class='del'>-    memo-&gt;pred = rb_attr_get(enumerator, rb_intern("slicewhen_pred"));</div><div class='add'>+    enumerable = rb_ivar_get(enumerator, id_slicewhen_enum);</div><div class='add'>+    memo-&gt;pred = rb_attr_get(enumerator, id_slicewhen_pred);</div><div class='ctx'>     memo-&gt;prev_elt = Qundef;</div><div class='ctx'>     memo-&gt;prev_elts = Qnil;</div><div class='ctx'>     memo-&gt;yielder = yielder;</div><div class='del'>-    memo-&gt;inverted = RTEST(rb_attr_get(enumerator, rb_intern("slicewhen_inverted")));</div><div class='add'>+    memo-&gt;inverted = RTEST(rb_attr_get(enumerator, id_slicewhen_inverted));</div><div class='ctx'> </div><div class='ctx'>     rb_block_call(enumerable, id_each, 0, 0, slicewhen_ii, arg);</div><div class='ctx'>     memo = MEMO_FOR(struct slicewhen_arg, arg);</div><div class='hunk'>@@ -3599,7 +4198,7 @@ slicewhen_i(RB_BLOCK_CALL_FUNC_ARGLIST(yielder, enumerator))</div><div class='ctx'>  *  Creates an enumerator for each chunked elements.</div><div class='ctx'>  *  The beginnings of chunks are defined by the block.</div><div class='ctx'>  *</div><div class='del'>- *  This method split each chunk using adjacent elements,</div><div class='add'>+ *  This method splits each chunk using adjacent elements,</div><div class='ctx'>  *  _elt_before_ and _elt_after_,</div><div class='ctx'>  *  in the receiver enumerator.</div><div class='ctx'>  *  This method split chunks between _elt_before_ and _elt_after_ where</div><div class='hunk'>@@ -3663,9 +4262,9 @@ enum_slice_when(VALUE enumerable)</div><div class='ctx'>     pred = rb_block_proc();</div><div class='ctx'> </div><div class='ctx'>     enumerator = rb_obj_alloc(rb_cEnumerator);</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("slicewhen_enum"), enumerable);</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("slicewhen_pred"), pred);</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("slicewhen_inverted"), Qfalse);</div><div class='add'>+    rb_ivar_set(enumerator, id_slicewhen_enum, enumerable);</div><div class='add'>+    rb_ivar_set(enumerator, id_slicewhen_pred, pred);</div><div class='add'>+    rb_ivar_set(enumerator, id_slicewhen_inverted, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     rb_block_call(enumerator, idInitialize, 0, 0, slicewhen_i, enumerator);</div><div class='ctx'>     return enumerator;</div><div class='hunk'>@@ -3678,7 +4277,7 @@ enum_slice_when(VALUE enumerable)</div><div class='ctx'>  *  Creates an enumerator for each chunked elements.</div><div class='ctx'>  *  The beginnings of chunks are defined by the block.</div><div class='ctx'>  *</div><div class='del'>- *  This method split each chunk using adjacent elements,</div><div class='add'>+ *  This method splits each chunk using adjacent elements,</div><div class='ctx'>  *  _elt_before_ and _elt_after_,</div><div class='ctx'>  *  in the receiver enumerator.</div><div class='ctx'>  *  This method split chunks between _elt_before_ and _elt_after_ where</div><div class='hunk'>@@ -3729,9 +4328,9 @@ enum_chunk_while(VALUE enumerable)</div><div class='ctx'>     pred = rb_block_proc();</div><div class='ctx'> </div><div class='ctx'>     enumerator = rb_obj_alloc(rb_cEnumerator);</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("slicewhen_enum"), enumerable);</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("slicewhen_pred"), pred);</div><div class='del'>-    rb_ivar_set(enumerator, rb_intern("slicewhen_inverted"), Qtrue);</div><div class='add'>+    rb_ivar_set(enumerator, id_slicewhen_enum, enumerable);</div><div class='add'>+    rb_ivar_set(enumerator, id_slicewhen_pred, pred);</div><div class='add'>+    rb_ivar_set(enumerator, id_slicewhen_inverted, Qtrue);</div><div class='ctx'> </div><div class='ctx'>     rb_block_call(enumerator, idInitialize, 0, 0, slicewhen_i, enumerator);</div><div class='ctx'>     return enumerator;</div><div class='hunk'>@@ -3746,122 +4345,141 @@ struct enum_sum_memo {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-sum_iter(VALUE i, struct enum_sum_memo *memo)</div><div class='add'>+sum_iter_normalize_memo(struct enum_sum_memo *memo)</div><div class='ctx'> {</div><div class='del'>-    const int unused = (assert(memo != NULL), 0);</div><div class='add'>+    assert(FIXABLE(memo-&gt;n));</div><div class='add'>+    memo-&gt;v = rb_fix_plus(LONG2FIX(memo-&gt;n), memo-&gt;v);</div><div class='add'>+    memo-&gt;n = 0;</div><div class='ctx'> </div><div class='del'>-    long n = memo-&gt;n;</div><div class='del'>-    VALUE v = memo-&gt;v;</div><div class='del'>-    VALUE r = memo-&gt;r;</div><div class='del'>-    double f = memo-&gt;f;</div><div class='del'>-    double c = memo-&gt;c;</div><div class='add'>+    switch (TYPE(memo-&gt;r)) {</div><div class='add'>+      case T_RATIONAL: memo-&gt;v = rb_rational_plus(memo-&gt;r, memo-&gt;v); break;</div><div class='add'>+      case T_UNDEF:    break;</div><div class='add'>+      default:         UNREACHABLE; /* or ...? */</div><div class='add'>+    }</div><div class='add'>+    memo-&gt;r = Qundef;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;block_given)</div><div class='del'>-        i = rb_yield(i);</div><div class='add'>+static void</div><div class='add'>+sum_iter_fixnum(VALUE i, struct enum_sum_memo *memo)</div><div class='add'>+{</div><div class='add'>+    memo-&gt;n += FIX2LONG(i); /* should not overflow long type */</div><div class='add'>+    if (! FIXABLE(memo-&gt;n)) {</div><div class='add'>+        memo-&gt;v = rb_big_plus(LONG2NUM(memo-&gt;n), memo-&gt;v);</div><div class='add'>+        memo-&gt;n = 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (memo-&gt;float_value)</div><div class='del'>-        goto float_value;</div><div class='add'>+static void</div><div class='add'>+sum_iter_bignum(VALUE i, struct enum_sum_memo *memo)</div><div class='add'>+{</div><div class='add'>+    memo-&gt;v = rb_big_plus(i, memo-&gt;v);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(v) || RB_TYPE_P(v, T_BIGNUM) || RB_TYPE_P(v, T_RATIONAL)) {</div><div class='del'>-        if (FIXNUM_P(i)) {</div><div class='del'>-            n += FIX2LONG(i); /* should not overflow long type */</div><div class='del'>-            if (!FIXABLE(n)) {</div><div class='del'>-                v = rb_big_plus(LONG2NUM(n), v);</div><div class='del'>-                n = 0;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        else if (RB_TYPE_P(i, T_BIGNUM))</div><div class='del'>-            v = rb_big_plus(i, v);</div><div class='del'>-        else if (RB_TYPE_P(i, T_RATIONAL)) {</div><div class='del'>-            if (r == Qundef)</div><div class='del'>-                r = i;</div><div class='del'>-            else</div><div class='del'>-                r = rb_rational_plus(r, i);</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            if (n != 0) {</div><div class='del'>-                v = rb_fix_plus(LONG2FIX(n), v);</div><div class='del'>-                n = 0;</div><div class='del'>-            }</div><div class='del'>-            if (r != Qundef) {</div><div class='del'>-                /* r can be an Integer when mathn is loaded */</div><div class='del'>-                if (FIXNUM_P(r))</div><div class='del'>-                    v = rb_fix_plus(r, v);</div><div class='del'>-                else if (RB_TYPE_P(r, T_BIGNUM))</div><div class='del'>-                    v = rb_big_plus(r, v);</div><div class='del'>-                else</div><div class='del'>-                    v = rb_rational_plus(r, v);</div><div class='del'>-                r = Qundef;</div><div class='del'>-            }</div><div class='del'>-            if (RB_FLOAT_TYPE_P(i)) {</div><div class='del'>-                f = NUM2DBL(v);</div><div class='del'>-                c = 0.0;</div><div class='del'>-                memo-&gt;float_value = 1;</div><div class='del'>-                goto float_value;</div><div class='del'>-            }</div><div class='del'>-            else</div><div class='del'>-                goto some_value;</div><div class='del'>-        }</div><div class='add'>+static void</div><div class='add'>+sum_iter_rational(VALUE i, struct enum_sum_memo *memo)</div><div class='add'>+{</div><div class='add'>+    if (UNDEF_P(memo-&gt;r)) {</div><div class='add'>+        memo-&gt;r = i;</div><div class='ctx'>     }</div><div class='del'>-    else if (RB_FLOAT_TYPE_P(v)) {</div><div class='del'>-        /*</div><div class='del'>-         * Kahan-Babuska balancing compensated summation algorithm</div><div class='del'>-         * See http://link.springer.com/article/10.1007/s00607-005-0139-x</div><div class='del'>-         */</div><div class='del'>-        double x, t;</div><div class='del'>-</div><div class='del'>-      float_value:</div><div class='del'>-        if (RB_FLOAT_TYPE_P(i))</div><div class='del'>-            x = RFLOAT_VALUE(i);</div><div class='del'>-        else if (FIXNUM_P(i))</div><div class='del'>-            x = FIX2LONG(i);</div><div class='del'>-        else if (RB_TYPE_P(i, T_BIGNUM))</div><div class='del'>-            x = rb_big2dbl(i);</div><div class='del'>-        else if (RB_TYPE_P(i, T_RATIONAL))</div><div class='del'>-            x = rb_num2dbl(i);</div><div class='del'>-        else {</div><div class='del'>-            v = DBL2NUM(f);</div><div class='del'>-            memo-&gt;float_value = 0;</div><div class='del'>-            goto some_value;</div><div class='del'>-        }</div><div class='add'>+    else {</div><div class='add'>+        memo-&gt;r = rb_rational_plus(memo-&gt;r, i);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-        if (isnan(f)) return;</div><div class='del'>-        if (isnan(x)) {</div><div class='del'>-            memo-&gt;v = i;</div><div class='del'>-            memo-&gt;f = x;</div><div class='del'>-            return;</div><div class='del'>-        }</div><div class='del'>-        if (isinf(x)) {</div><div class='del'>-            if (isinf(f) &amp;&amp; signbit(x) != signbit(f)) {</div><div class='del'>-                memo-&gt;f = NAN;</div><div class='del'>-                memo-&gt;v = DBL2NUM(f);</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                memo-&gt;f = x;</div><div class='del'>-                memo-&gt;v = i;</div><div class='del'>-            }</div><div class='del'>-            return;</div><div class='add'>+static void</div><div class='add'>+sum_iter_some_value(VALUE i, struct enum_sum_memo *memo)</div><div class='add'>+{</div><div class='add'>+    memo-&gt;v = rb_funcallv(memo-&gt;v, idPLUS, 1, &amp;i);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+sum_iter_Kahan_Babuska(VALUE i, struct enum_sum_memo *memo)</div><div class='add'>+{</div><div class='add'>+    /*</div><div class='add'>+     * Kahan-Babuska balancing compensated summation algorithm</div><div class='add'>+     * See https://link.springer.com/article/10.1007/s00607-005-0139-x</div><div class='add'>+     */</div><div class='add'>+    double x;</div><div class='add'>+</div><div class='add'>+    switch (TYPE(i)) {</div><div class='add'>+      case T_FLOAT:    x = RFLOAT_VALUE(i); break;</div><div class='add'>+      case T_FIXNUM:   x = FIX2LONG(i);     break;</div><div class='add'>+      case T_BIGNUM:   x = rb_big2dbl(i);   break;</div><div class='add'>+      case T_RATIONAL: x = rb_num2dbl(i);   break;</div><div class='add'>+      default:</div><div class='add'>+        memo-&gt;v = DBL2NUM(memo-&gt;f);</div><div class='add'>+        memo-&gt;float_value = 0;</div><div class='add'>+        sum_iter_some_value(i, memo);</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    double f = memo-&gt;f;</div><div class='add'>+</div><div class='add'>+    if (isnan(f)) {</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+    else if (! isfinite(x)) {</div><div class='add'>+        if (isinf(x) &amp;&amp; isinf(f) &amp;&amp; signbit(x) != signbit(f)) {</div><div class='add'>+            i = DBL2NUM(f);</div><div class='add'>+            x = nan("");</div><div class='ctx'>         }</div><div class='del'>-        if (isinf(f)) return;</div><div class='add'>+        memo-&gt;v = i;</div><div class='add'>+        memo-&gt;f = x;</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+    else if (isinf(f)) {</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-        t = f + x;</div><div class='del'>-        if (fabs(f) &gt;= fabs(x))</div><div class='del'>-            c += ((f - t) + x);</div><div class='del'>-        else</div><div class='del'>-            c += ((x - t) + f);</div><div class='del'>-        f = t;</div><div class='add'>+    double c = memo-&gt;c;</div><div class='add'>+    double t = f + x;</div><div class='add'>+</div><div class='add'>+    if (fabs(f) &gt;= fabs(x)) {</div><div class='add'>+        c += ((f - t) + x);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-      some_value:</div><div class='del'>-        v = rb_funcallv(v, idPLUS, 1, &amp;i);</div><div class='add'>+        c += ((x - t) + f);</div><div class='ctx'>     }</div><div class='add'>+    f = t;</div><div class='ctx'> </div><div class='del'>-    memo-&gt;v = v;</div><div class='del'>-    memo-&gt;n = n;</div><div class='del'>-    memo-&gt;r = r;</div><div class='ctx'>     memo-&gt;f = f;</div><div class='ctx'>     memo-&gt;c = c;</div><div class='del'>-    (void)unused;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+sum_iter(VALUE i, struct enum_sum_memo *memo)</div><div class='add'>+{</div><div class='add'>+    assert(memo != NULL);</div><div class='add'>+    if (memo-&gt;block_given) {</div><div class='add'>+        i = rb_yield(i);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (memo-&gt;float_value) {</div><div class='add'>+        sum_iter_Kahan_Babuska(i, memo);</div><div class='add'>+    }</div><div class='add'>+    else switch (TYPE(memo-&gt;v)) {</div><div class='add'>+      default:      sum_iter_some_value(i, memo);    return;</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+      case T_RATIONAL:</div><div class='add'>+        switch (TYPE(i)) {</div><div class='add'>+          case T_FIXNUM:   sum_iter_fixnum(i, memo);   return;</div><div class='add'>+          case T_BIGNUM:   sum_iter_bignum(i, memo);   return;</div><div class='add'>+          case T_RATIONAL: sum_iter_rational(i, memo); return;</div><div class='add'>+          case T_FLOAT:</div><div class='add'>+            sum_iter_normalize_memo(memo);</div><div class='add'>+            memo-&gt;f = NUM2DBL(memo-&gt;v);</div><div class='add'>+            memo-&gt;c = 0.0;</div><div class='add'>+            memo-&gt;float_value = 1;</div><div class='add'>+            sum_iter_Kahan_Babuska(i, memo);</div><div class='add'>+            return;</div><div class='add'>+          default:</div><div class='add'>+            sum_iter_normalize_memo(memo);</div><div class='add'>+            sum_iter_some_value(i, memo);</div><div class='add'>+            return;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3910,32 +4528,35 @@ int_range_sum(VALUE beg, VALUE end, int excl, VALUE init)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   enum.sum(init=0)                   -&gt; number</div><div class='del'>- *   enum.sum(init=0) {|e| expr }       -&gt; number</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    sum(initial_value = 0)                  -&gt; number</div><div class='add'>+ *    sum(initial_value = 0) {|element| ... } -&gt; object</div><div class='ctx'>  *</div><div class='del'>- * Returns the sum of elements in an Enumerable.</div><div class='add'>+ *  With no block given,</div><div class='add'>+ *  returns the sum of +initial_value+ and the elements:</div><div class='ctx'>  *</div><div class='del'>- * If a block is given, the block is applied to each element</div><div class='del'>- * before addition.</div><div class='add'>+ *    (1..100).sum          # =&gt; 5050</div><div class='add'>+ *    (1..100).sum(1)       # =&gt; 5051</div><div class='add'>+ *    ('a'..'d').sum('foo') # =&gt; "fooabcd"</div><div class='ctx'>  *</div><div class='del'>- * If &lt;i&gt;enum&lt;/i&gt; is empty, it returns &lt;i&gt;init&lt;/i&gt;.</div><div class='add'>+ *  Generally, the sum is computed using methods &lt;tt&gt;+&lt;/tt&gt; and +each+;</div><div class='add'>+ *  for performance optimizations, those methods may not be used,</div><div class='add'>+ *  and so any redefinition of those methods may not have effect here.</div><div class='ctx'>  *</div><div class='del'>- * For example:</div><div class='add'>+ *  One such optimization: When possible, computes using Gauss's summation</div><div class='add'>+ *  formula &lt;em&gt;n(n+1)/2&lt;/em&gt;:</div><div class='ctx'>  *</div><div class='del'>- *   { 1 =&gt; 10, 2 =&gt; 20 }.sum {|k, v| k * v }  #=&gt; 50</div><div class='del'>- *   (1..10).sum                               #=&gt; 55</div><div class='del'>- *   (1..10).sum {|v| v * 2 }                  #=&gt; 110</div><div class='del'>- *   [Object.new].each.sum                     #=&gt; TypeError</div><div class='add'>+ *    100 * (100 + 1) / 2 # =&gt; 5050</div><div class='ctx'>  *</div><div class='del'>- * This method can be used for non-numeric objects by</div><div class='del'>- * explicit &lt;i&gt;init&lt;/i&gt; argument.</div><div class='add'>+ *  With a block given, calls the block with each element;</div><div class='add'>+ *  returns the sum of +initial_value+ and the block return values:</div><div class='ctx'>  *</div><div class='del'>- *   { 1 =&gt; 10, 2 =&gt; 20 }.sum([])                   #=&gt; [1, 10, 2, 20]</div><div class='del'>- *   "a\nb\nc".each_line.lazy.map(&amp;:chomp).sum("")  #=&gt; "abc"</div><div class='add'>+ *    (1..4).sum {|i| i*i }                        # =&gt; 30</div><div class='add'>+ *    (1..4).sum(100) {|i| i*i }                   # =&gt; 130</div><div class='add'>+ *    h = {a: 0, b: 1, c: 2, d: 3, e: 4, f: 5}</div><div class='add'>+ *    h.sum {|key, value| value.odd? ? value : 0 } # =&gt; 9</div><div class='add'>+ *    ('a'..'f').sum('x') {|c| c &lt; 'd' ? c : '' }  # =&gt; "xabc"</div><div class='ctx'>  *</div><div class='del'>- * Enumerable#sum method may not respect method redefinition of "+"</div><div class='del'>- * methods such as Integer#+.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> enum_sum(int argc, VALUE* argv, VALUE obj)</div><div class='hunk'>@@ -3953,11 +4574,15 @@ enum_sum(int argc, VALUE* argv, VALUE obj)</div><div class='ctx'>         memo.f = RFLOAT_VALUE(memo.v);</div><div class='ctx'>         memo.c = 0.0;</div><div class='ctx'>     }</div><div class='add'>+    else {</div><div class='add'>+        memo.f = 0.0;</div><div class='add'>+        memo.c = 0.0;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(rb_range_values(obj, &amp;beg, &amp;end, &amp;excl))) {</div><div class='ctx'>         if (!memo.block_given &amp;&amp; !memo.float_value &amp;&amp;</div><div class='del'>-                (FIXNUM_P(beg) || RB_TYPE_P(beg, T_BIGNUM)) &amp;&amp;</div><div class='del'>-                (FIXNUM_P(end) || RB_TYPE_P(end, T_BIGNUM))) {</div><div class='add'>+                (FIXNUM_P(beg) || RB_BIGNUM_TYPE_P(beg)) &amp;&amp;</div><div class='add'>+                (FIXNUM_P(end) || RB_BIGNUM_TYPE_P(end))) {</div><div class='ctx'>             return int_range_sum(beg, end, excl, memo.v);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='hunk'>@@ -3974,14 +4599,8 @@ enum_sum(int argc, VALUE* argv, VALUE obj)</div><div class='ctx'>     else {</div><div class='ctx'>         if (memo.n != 0)</div><div class='ctx'>             memo.v = rb_fix_plus(LONG2FIX(memo.n), memo.v);</div><div class='del'>-        if (memo.r != Qundef) {</div><div class='del'>-            /* r can be an Integer when mathn is loaded */</div><div class='del'>-            if (FIXNUM_P(memo.r))</div><div class='del'>-                memo.v = rb_fix_plus(memo.r, memo.v);</div><div class='del'>-            else if (RB_TYPE_P(memo.r, T_BIGNUM))</div><div class='del'>-                memo.v = rb_big_plus(memo.r, memo.v);</div><div class='del'>-            else</div><div class='del'>-                memo.v = rb_rational_plus(memo.r, memo.v);</div><div class='add'>+        if (!UNDEF_P(memo.r)) {</div><div class='add'>+            memo.v = rb_rational_plus(memo.r, memo.v);</div><div class='ctx'>         }</div><div class='ctx'>         return memo.v;</div><div class='ctx'>     }</div><div class='hunk'>@@ -4005,12 +4624,23 @@ uniq_iter(RB_BLOCK_CALL_FUNC_ARGLIST(i, hash))</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     enum.uniq                -&gt; new_ary</div><div class='del'>- *     enum.uniq { |item| ... } -&gt; new_ary</div><div class='add'>+ *    uniq                  -&gt; array</div><div class='add'>+ *    uniq {|element| ... } -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  With no block, returns a new array containing only unique elements;</div><div class='add'>+ *  the array has no two elements +e0+ and +e1+ such that &lt;tt&gt;e0.eql?(e1)&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    %w[a b c c b a a b c].uniq       # =&gt; ["a", "b", "c"]</div><div class='add'>+ *    [0, 1, 2, 2, 1, 0, 0, 1, 2].uniq # =&gt; [0, 1, 2]</div><div class='ctx'>  *</div><div class='del'>- *  Returns a new array by removing duplicate values in +self+.</div><div class='add'>+ *  With a block, returns a new array containing only for which the block</div><div class='add'>+ *  returns a unique value:</div><div class='add'>+ *</div><div class='add'>+ *    a = [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1]</div><div class='add'>+ *    a.uniq {|i| i.even? ? i : 0 } # =&gt; [0, 2, 4]</div><div class='add'>+ *    a = %w[a b c d e e d c b a a b c d e]</div><div class='add'>+      a.uniq {|c| c &lt; 'c' }         # =&gt; ["a", "c"]</div><div class='ctx'>  *</div><div class='del'>- *  See also Array#uniq.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4018,7 +4648,7 @@ enum_uniq(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE hash, ret;</div><div class='ctx'>     rb_block_call_func *const func =</div><div class='del'>-	rb_block_given_p() ? uniq_iter : uniq_func;</div><div class='add'>+        rb_block_given_p() ? uniq_iter : uniq_func;</div><div class='ctx'> </div><div class='ctx'>     hash = rb_obj_hide(rb_hash_new());</div><div class='ctx'>     rb_block_call(obj, id_each, 0, 0, func, hash);</div><div class='hunk'>@@ -4027,23 +4657,216 @@ enum_uniq(VALUE obj)</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+compact_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, ary))</div><div class='add'>+{</div><div class='add'>+    ENUM_WANT_SVALUE();</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(i)) {</div><div class='add'>+        rb_ary_push(ary, i);</div><div class='add'>+    }</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    compact -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array of all non-+nil+ elements:</div><div class='add'>+ *</div><div class='add'>+ *    a = [nil, 0, nil, 'a', false, nil, false, nil, 'a', nil, 0, nil]</div><div class='add'>+ *    a.compact # =&gt; [0, "a", false, false, "a", 0]</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+enum_compact(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE ary;</div><div class='add'>+</div><div class='add'>+    ary = rb_ary_new();</div><div class='add'>+    rb_block_call(obj, id_each, 0, 0, compact_i, ary);</div><div class='add'>+</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'> /*</div><div class='del'>- *  The &lt;code&gt;Enumerable&lt;/code&gt; mixin provides collection classes with</div><div class='del'>- *  several traversal and searching methods, and with the ability to</div><div class='del'>- *  sort. The class must provide a method &lt;code&gt;each&lt;/code&gt;, which</div><div class='del'>- *  yields successive members of the collection. If</div><div class='del'>- *  &lt;code&gt;Enumerable#max&lt;/code&gt;, &lt;code&gt;#min&lt;/code&gt;, or</div><div class='del'>- *  &lt;code&gt;#sort&lt;/code&gt; is used, the objects in the collection must also</div><div class='del'>- *  implement a meaningful &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator, as these methods</div><div class='del'>- *  rely on an ordering between members of the collection.</div><div class='add'>+ * == What's Here</div><div class='add'>+ *</div><div class='add'>+ * \Module \Enumerable provides methods that are useful to a collection class for:</div><div class='add'>+ *</div><div class='add'>+ * - {Querying}[rdoc-ref:Enumerable@Methods+for+Querying]</div><div class='add'>+ * - {Fetching}[rdoc-ref:Enumerable@Methods+for+Fetching]</div><div class='add'>+ * - {Searching}[rdoc-ref:Enumerable@Methods+for+Searching]</div><div class='add'>+ * - {Sorting}[rdoc-ref:Enumerable@Methods+for+Sorting]</div><div class='add'>+ * - {Iterating}[rdoc-ref:Enumerable@Methods+for+Iterating]</div><div class='add'>+ * - {And more....}[rdoc-ref:Enumerable@Other+Methods]</div><div class='add'>+ *</div><div class='add'>+ * === Methods for Querying</div><div class='add'>+ *</div><div class='add'>+ * These methods return information about the \Enumerable other than the elements themselves:</div><div class='add'>+ *</div><div class='add'>+ * - #include?, #member?: Returns +true+ if &lt;tt&gt;self == object&lt;/tt&gt;, +false+ otherwise.</div><div class='add'>+ * - #all?: Returns +true+ if all elements meet a specified criterion; +false+ otherwise.</div><div class='add'>+ * - #any?: Returns +true+ if any element meets a specified criterion; +false+ otherwise.</div><div class='add'>+ * - #none?: Returns +true+ if no element meets a specified criterion; +false+ otherwise.</div><div class='add'>+ * - #one?: Returns +true+ if exactly one element meets a specified criterion; +false+ otherwise.</div><div class='add'>+ * - #count: Returns the count of elements,</div><div class='add'>+ *   based on an argument or block criterion, if given.</div><div class='add'>+ * - #tally: Returns a new \Hash containing the counts of occurrences of each element.</div><div class='add'>+ *</div><div class='add'>+ * === Methods for Fetching</div><div class='add'>+ *</div><div class='add'>+ * These methods return entries from the \Enumerable, without modifying it:</div><div class='add'>+ *</div><div class='add'>+ * &lt;i&gt;Leading, trailing, or all elements&lt;/i&gt;:</div><div class='add'>+ *</div><div class='add'>+ * - #entries, #to_a: Returns all elements.</div><div class='add'>+ * - #first: Returns the first element or leading elements.</div><div class='add'>+ * - #take: Returns a specified number of leading elements.</div><div class='add'>+ * - #drop: Returns a specified number of trailing elements.</div><div class='add'>+ * - #take_while: Returns leading elements as specified by the given block.</div><div class='add'>+ * - #drop_while: Returns trailing elements as specified by the given block.</div><div class='add'>+ *</div><div class='add'>+ * &lt;i&gt;Minimum and maximum value elements&lt;/i&gt;:</div><div class='add'>+ *</div><div class='add'>+ * - #min: Returns the elements whose values are smallest among the elements,</div><div class='add'>+ *   as determined by &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; or a given block.</div><div class='add'>+ * - #max: Returns the elements whose values are largest among the elements,</div><div class='add'>+ *   as determined by &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; or a given block.</div><div class='add'>+ * - #minmax: Returns a 2-element \Array containing the smallest and largest elements.</div><div class='add'>+ * - #min_by: Returns the smallest element, as determined by the given block.</div><div class='add'>+ * - #max_by: Returns the largest element, as determined by the given block.</div><div class='add'>+ * - #minmax_by: Returns the smallest and largest elements, as determined by the given block.</div><div class='add'>+ *</div><div class='add'>+ * &lt;i&gt;Groups, slices, and partitions&lt;/i&gt;:</div><div class='add'>+ *</div><div class='add'>+ * - #group_by: Returns a \Hash that partitions the elements into groups.</div><div class='add'>+ * - #partition: Returns elements partitioned into two new Arrays, as determined by the given block.</div><div class='add'>+ * - #slice_after: Returns a new \Enumerator whose entries are a partition of +self+,</div><div class='add'>+     based either on a given +object+ or a given block.</div><div class='add'>+ * - #slice_before: Returns a new \Enumerator whose entries are a partition of +self+,</div><div class='add'>+     based either on a given +object+ or a given block.</div><div class='add'>+ * - #slice_when: Returns a new \Enumerator whose entries are a partition of +self+</div><div class='add'>+     based on the given block.</div><div class='add'>+ * - #chunk: Returns elements organized into chunks as specified by the given block.</div><div class='add'>+ * - #chunk_while: Returns elements organized into chunks as specified by the given block.</div><div class='add'>+ *</div><div class='add'>+ * === Methods for Searching and Filtering</div><div class='add'>+ *</div><div class='add'>+ * These methods return elements that meet a specified criterion:</div><div class='add'>+ *</div><div class='add'>+ * - #find, #detect: Returns an element selected by the block.</div><div class='add'>+ * - #find_all, #filter, #select: Returns elements selected by the block.</div><div class='add'>+ * - #find_index: Returns the index of an element selected by a given object or block.</div><div class='add'>+ * - #reject: Returns elements not rejected by the block.</div><div class='add'>+ * - #uniq: Returns elements that are not duplicates.</div><div class='add'>+ *</div><div class='add'>+ * === Methods for Sorting</div><div class='add'>+ *</div><div class='add'>+ * These methods return elements in sorted order:</div><div class='add'>+ *</div><div class='add'>+ * - #sort: Returns the elements, sorted by &lt;tt&gt;&lt;=&gt;&lt;/tt&gt; or the given block.</div><div class='add'>+ * - #sort_by: Returns the elements, sorted by the given block.</div><div class='add'>+ *</div><div class='add'>+ * === Methods for Iterating</div><div class='add'>+ *</div><div class='add'>+ * - #each_entry: Calls the block with each successive element</div><div class='add'>+ *   (slightly different from #each).</div><div class='add'>+ * - #each_with_index: Calls the block with each successive element and its index.</div><div class='add'>+ * - #each_with_object: Calls the block with each successive element and a given object.</div><div class='add'>+ * - #each_slice: Calls the block with successive non-overlapping slices.</div><div class='add'>+ * - #each_cons: Calls the block with successive overlapping slices.</div><div class='add'>+ *   (different from #each_slice).</div><div class='add'>+ * - #reverse_each: Calls the block with each successive element, in reverse order.</div><div class='add'>+ *</div><div class='add'>+ * === Other Methods</div><div class='add'>+ *</div><div class='add'>+ * - #map, #collect: Returns objects returned by the block.</div><div class='add'>+ * - #filter_map: Returns truthy objects returned by the block.</div><div class='add'>+ * - #flat_map, #collect_concat: Returns flattened objects returned by the block.</div><div class='add'>+ * - #grep: Returns elements selected by a given object</div><div class='add'>+ *   or objects returned by a given block.</div><div class='add'>+ * - #grep_v: Returns elements selected by a given object</div><div class='add'>+ *   or objects returned by a given block.</div><div class='add'>+ * - #reduce, #inject: Returns the object formed by combining all elements.</div><div class='add'>+ * - #sum: Returns the sum of the elements, using method &lt;tt&gt;+&lt;/tt&gt;.</div><div class='add'>+ * - #zip: Combines each element with elements from other enumerables;</div><div class='add'>+ *   returns the n-tuples or calls the block with each.</div><div class='add'>+ * - #cycle: Calls the block with each element, cycling repeatedly.</div><div class='add'>+ *</div><div class='add'>+ * == Usage</div><div class='add'>+ *</div><div class='add'>+ * To use module \Enumerable in a collection class:</div><div class='add'>+ *</div><div class='add'>+ * - Include it:</div><div class='add'>+ *</div><div class='add'>+ *     include Enumerable</div><div class='add'>+ *</div><div class='add'>+ * - Implement method &lt;tt&gt;#each&lt;/tt&gt;</div><div class='add'>+ *   which must yield successive elements of the collection.</div><div class='add'>+ *   The method will be called by almost any \Enumerable method.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *</div><div class='add'>+ *   class Foo</div><div class='add'>+ *     include Enumerable</div><div class='add'>+ *     def each</div><div class='add'>+ *       yield 1</div><div class='add'>+ *       yield 1, 2</div><div class='add'>+ *       yield</div><div class='add'>+ *     end</div><div class='add'>+ *   end</div><div class='add'>+ *   Foo.new.each_entry{ |element| p element }</div><div class='add'>+ *</div><div class='add'>+ * Output:</div><div class='add'>+ *</div><div class='add'>+ *   1</div><div class='add'>+ *   [1, 2]</div><div class='add'>+ *   nil</div><div class='add'>+ *</div><div class='add'>+ * == \Enumerable in Ruby Classes</div><div class='add'>+ *</div><div class='add'>+ * These Ruby core classes include (or extend) \Enumerable:</div><div class='add'>+ *</div><div class='add'>+ * - ARGF</div><div class='add'>+ * - Array</div><div class='add'>+ * - Dir</div><div class='add'>+ * - Enumerator</div><div class='add'>+ * - ENV (extends)</div><div class='add'>+ * - Hash</div><div class='add'>+ * - IO</div><div class='add'>+ * - Range</div><div class='add'>+ * - Struct</div><div class='add'>+ *</div><div class='add'>+ * These Ruby standard library classes include \Enumerable:</div><div class='add'>+ *</div><div class='add'>+ * - CSV</div><div class='add'>+ * - CSV::Table</div><div class='add'>+ * - CSV::Row</div><div class='add'>+ * - Set</div><div class='add'>+ *</div><div class='add'>+ * Virtually all methods in \Enumerable call method +#each+ in the including class:</div><div class='add'>+ *</div><div class='add'>+ * - &lt;tt&gt;Hash#each&lt;/tt&gt; yields the next key-value pair as a 2-element \Array.</div><div class='add'>+ * - &lt;tt&gt;Struct#each&lt;/tt&gt; yields the next name-value pair as a 2-element \Array.</div><div class='add'>+ * - For the other classes above, +#each+ yields the next object from the collection.</div><div class='add'>+ *</div><div class='add'>+ * == About the Examples</div><div class='add'>+ *</div><div class='add'>+ * The example code snippets for the \Enumerable methods:</div><div class='add'>+ *</div><div class='add'>+ * - Always show the use of one or more \Array-like classes (often \Array itself).</div><div class='add'>+ * - Sometimes show the use of a \Hash-like class.</div><div class='add'>+ *   For some methods, though, the usage would not make sense,</div><div class='add'>+ *   and so it is not shown.  Example: #tally would find exactly one of each \Hash entry.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_Enumerable(void)</div><div class='ctx'> {</div><div class='del'>-#undef rb_intern</div><div class='del'>-#define rb_intern(str) rb_intern_const(str)</div><div class='del'>-</div><div class='ctx'>     rb_mEnumerable = rb_define_module("Enumerable");</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_mEnumerable, "to_a", enum_to_a, -1);</div><div class='hunk'>@@ -4061,6 +4884,7 @@ Init_Enumerable(void)</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "find_all", enum_find_all, 0);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "select", enum_find_all, 0);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "filter", enum_find_all, 0);</div><div class='add'>+    rb_define_method(rb_mEnumerable, "filter_map", enum_filter_map, 0);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "reject", enum_reject, 0);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "collect", enum_collect, 0);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "map", enum_collect, 0);</div><div class='hunk'>@@ -4070,6 +4894,7 @@ Init_Enumerable(void)</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "reduce", enum_inject, -1);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "partition", enum_partition, 0);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "group_by", enum_group_by, 0);</div><div class='add'>+    rb_define_method(rb_mEnumerable, "tally", enum_tally, -1);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "first", enum_first, -1);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "all?", enum_all, -1);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "any?", enum_any, -1);</div><div class='hunk'>@@ -4102,7 +4927,20 @@ Init_Enumerable(void)</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "chunk_while", enum_chunk_while, 0);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "sum", enum_sum, -1);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "uniq", enum_uniq, 0);</div><div class='del'>-</div><div class='del'>-    id_next = rb_intern("next");</div><div class='del'>-    id_div = rb_intern("div");</div><div class='add'>+    rb_define_method(rb_mEnumerable, "compact", enum_compact, 0);</div><div class='add'>+</div><div class='add'>+    id__alone = rb_intern_const("_alone");</div><div class='add'>+    id__separator = rb_intern_const("_separator");</div><div class='add'>+    id_chunk_categorize = rb_intern_const("chunk_categorize");</div><div class='add'>+    id_chunk_enumerable = rb_intern_const("chunk_enumerable");</div><div class='add'>+    id_next = rb_intern_const("next");</div><div class='add'>+    id_sliceafter_enum = rb_intern_const("sliceafter_enum");</div><div class='add'>+    id_sliceafter_pat = rb_intern_const("sliceafter_pat");</div><div class='add'>+    id_sliceafter_pred = rb_intern_const("sliceafter_pred");</div><div class='add'>+    id_slicebefore_enumerable = rb_intern_const("slicebefore_enumerable");</div><div class='add'>+    id_slicebefore_sep_pat = rb_intern_const("slicebefore_sep_pat");</div><div class='add'>+    id_slicebefore_sep_pred = rb_intern_const("slicebefore_sep_pred");</div><div class='add'>+    id_slicewhen_enum = rb_intern_const("slicewhen_enum");</div><div class='add'>+    id_slicewhen_inverted = rb_intern_const("slicewhen_inverted");</div><div class='add'>+    id_slicewhen_pred = rb_intern_const("slicewhen_pred");</div><div class='ctx'> }</div><div class='head'>diff --git a/enumerator.c b/enumerator.c<br/>index 021daeba59..d587b63d32 100644<br/>--- a/<a href='/ruby.git/tree/enumerator.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>enumerator.c</a><br/>+++ b/<a href='/ruby.git/tree/enumerator.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>enumerator.c</a></div><div class='hunk'>@@ -12,22 +12,32 @@</div><div class='ctx'> </div><div class='ctx'> ************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby/ruby.h"</div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "id.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_FLOAT_H</div><div class='ctx'> #include &lt;float.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#include "id.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/class.h"</div><div class='add'>+#include "internal/enumerator.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/imemo.h"</div><div class='add'>+#include "internal/numeric.h"</div><div class='add'>+#include "internal/range.h"</div><div class='add'>+#include "internal/rational.h"</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * Document-class: Enumerator</div><div class='ctx'>  *</div><div class='ctx'>  * A class which allows both internal and external iteration.</div><div class='ctx'>  *</div><div class='ctx'>  * An Enumerator can be created by the following methods.</div><div class='del'>- * - Kernel#to_enum</div><div class='del'>- * - Kernel#enum_for</div><div class='add'>+ * - Object#to_enum</div><div class='add'>+ * - Object#enum_for</div><div class='ctx'>  * - Enumerator.new</div><div class='ctx'>  *</div><div class='ctx'>  * Most methods have two forms: a block form where the contents</div><div class='hunk'>@@ -63,6 +73,8 @@</div><div class='ctx'>  *   puts %w[foo bar baz].map.with_index { |w, i| "#{i}:#{w}" }</div><div class='ctx'>  *   # =&gt; ["0:foo", "1:bar", "2:baz"]</div><div class='ctx'>  *</div><div class='add'>+ *  == External Iteration</div><div class='add'>+ *</div><div class='ctx'>  * An Enumerator can also be used as an external iterator.</div><div class='ctx'>  * For example, Enumerator#next returns the next value of the iterator</div><div class='ctx'>  * or raises StopIteration if the Enumerator is at the end.</div><div class='hunk'>@@ -73,7 +85,44 @@</div><div class='ctx'>  *   puts e.next   # =&gt; 3</div><div class='ctx'>  *   puts e.next   # raises StopIteration</div><div class='ctx'>  *</div><div class='del'>- * You can use this to implement an internal iterator as follows:</div><div class='add'>+ * +next+, +next_values+, +peek+ and +peek_values+ are the only methods</div><div class='add'>+ * which use external iteration (and Array#zip(Enumerable-not-Array) which uses +next+).</div><div class='add'>+ *</div><div class='add'>+ * These methods do not affect other internal enumeration methods,</div><div class='add'>+ * unless the underlying iteration method itself has side-effect, e.g. IO#each_line.</div><div class='add'>+ *</div><div class='add'>+ * External iteration differs *significantly* from internal iteration</div><div class='add'>+ * due to using a Fiber:</div><div class='add'>+ *  - The Fiber adds some overhead compared to internal enumeration.</div><div class='add'>+ *  - The stacktrace will only include the stack from the Enumerator, not above.</div><div class='add'>+ *  - Fiber-local variables are *not* inherited inside the Enumerator Fiber,</div><div class='add'>+ *    which instead starts with no Fiber-local variables.</div><div class='add'>+ *  - Fiber storage variables *are* inherited and are designed</div><div class='add'>+ *    to handle Enumerator Fibers. Assigning to a Fiber storage variable</div><div class='add'>+ *    only affects the current Fiber, so if you want to change state</div><div class='add'>+ *    in the caller Fiber of the Enumerator Fiber, you need to use an</div><div class='add'>+ *    extra indirection (e.g., use some object in the Fiber storage</div><div class='add'>+ *    variable and mutate some ivar of it).</div><div class='add'>+ *</div><div class='add'>+ * Concretely:</div><div class='add'>+ *   Thread.current[:fiber_local] = 1</div><div class='add'>+ *   Fiber[:storage_var] = 1</div><div class='add'>+ *   e = Enumerator.new do |y|</div><div class='add'>+ *     p Thread.current[:fiber_local] # for external iteration: nil, for internal iteration: 1</div><div class='add'>+ *     p Fiber[:storage_var] # =&gt; 1, inherited</div><div class='add'>+ *     Fiber[:storage_var] += 1</div><div class='add'>+ *     y &lt;&lt; 42</div><div class='add'>+ *   end</div><div class='add'>+ *</div><div class='add'>+ *   p e.next # =&gt; 42</div><div class='add'>+ *   p Fiber[:storage_var] # =&gt; 1 (it ran in a different Fiber)</div><div class='add'>+ *</div><div class='add'>+ *   e.each { p _1 }</div><div class='add'>+ *   p Fiber[:storage_var] # =&gt; 2 (it ran in the same Fiber/"stack" as the current Fiber)</div><div class='add'>+ *</div><div class='add'>+ *  == Convert External Iteration to Internal Iteration</div><div class='add'>+ *</div><div class='add'>+ * You can use an external iterator to implement an internal iterator as follows:</div><div class='ctx'>  *</div><div class='ctx'>  *   def ext_each(e)</div><div class='ctx'>  *     while true</div><div class='hunk'>@@ -108,12 +157,17 @@</div><div class='ctx'>  */</div><div class='ctx'> VALUE rb_cEnumerator;</div><div class='ctx'> static VALUE rb_cLazy;</div><div class='del'>-static ID id_rewind, id_new, id_to_enum;</div><div class='add'>+static ID id_rewind, id_new, id_to_enum, id_each_entry;</div><div class='ctx'> static ID id_next, id_result, id_receiver, id_arguments, id_memo, id_method, id_force;</div><div class='ctx'> static ID id_begin, id_end, id_step, id_exclude_end;</div><div class='del'>-static VALUE sym_each, sym_cycle;</div><div class='add'>+static VALUE sym_each, sym_cycle, sym_yield;</div><div class='add'>+</div><div class='add'>+static VALUE lazy_use_super_method;</div><div class='add'>+</div><div class='add'>+extern ID ruby_static_id_cause;</div><div class='ctx'> </div><div class='ctx'> #define id_call idCall</div><div class='add'>+#define id_cause ruby_static_id_cause</div><div class='ctx'> #define id_each idEach</div><div class='ctx'> #define id_eqq idEqq</div><div class='ctx'> #define id_initialize idInitialize</div><div class='hunk'>@@ -133,9 +187,10 @@ struct enumerator {</div><div class='ctx'>     VALUE size;</div><div class='ctx'>     VALUE procs;</div><div class='ctx'>     rb_enumerator_size_func *size_fn;</div><div class='add'>+    int kw_splat;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static VALUE rb_cGenerator, rb_cYielder;</div><div class='add'>+static VALUE rb_cGenerator, rb_cYielder, rb_cEnumProducer;</div><div class='ctx'> </div><div class='ctx'> struct generator {</div><div class='ctx'>     VALUE proc;</div><div class='hunk'>@@ -146,11 +201,18 @@ struct yielder {</div><div class='ctx'>     VALUE proc;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+struct producer {</div><div class='add'>+    VALUE init;</div><div class='add'>+    VALUE proc;</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> typedef struct MEMO *lazyenum_proc_func(VALUE, struct MEMO *, VALUE, long);</div><div class='ctx'> typedef VALUE lazyenum_size_func(VALUE, VALUE);</div><div class='add'>+typedef int lazyenum_precheck_func(VALUE proc_entry);</div><div class='ctx'> typedef struct {</div><div class='ctx'>     lazyenum_proc_func *proc;</div><div class='ctx'>     lazyenum_size_func *size;</div><div class='add'>+    lazyenum_precheck_func *precheck;</div><div class='ctx'> } lazyenum_funcs;</div><div class='ctx'> </div><div class='ctx'> struct proc_entry {</div><div class='hunk'>@@ -169,6 +231,12 @@ struct enum_chain {</div><div class='ctx'>     long pos;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+static VALUE rb_cEnumProduct;</div><div class='add'>+</div><div class='add'>+struct enum_product {</div><div class='add'>+    VALUE enums;</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> VALUE rb_cArithSeq;</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -178,15 +246,30 @@ static void</div><div class='ctx'> enumerator_mark(void *p)</div><div class='ctx'> {</div><div class='ctx'>     struct enumerator *ptr = p;</div><div class='del'>-    rb_gc_mark(ptr-&gt;obj);</div><div class='del'>-    rb_gc_mark(ptr-&gt;args);</div><div class='del'>-    rb_gc_mark(ptr-&gt;fib);</div><div class='del'>-    rb_gc_mark(ptr-&gt;dst);</div><div class='del'>-    rb_gc_mark(ptr-&gt;lookahead);</div><div class='del'>-    rb_gc_mark(ptr-&gt;feedvalue);</div><div class='del'>-    rb_gc_mark(ptr-&gt;stop_exc);</div><div class='del'>-    rb_gc_mark(ptr-&gt;size);</div><div class='del'>-    rb_gc_mark(ptr-&gt;procs);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;obj);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;args);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;fib);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;dst);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;lookahead);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;feedvalue);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;stop_exc);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;size);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;procs);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+enumerator_compact(void *p)</div><div class='add'>+{</div><div class='add'>+    struct enumerator *ptr = p;</div><div class='add'>+    ptr-&gt;obj = rb_gc_location(ptr-&gt;obj);</div><div class='add'>+    ptr-&gt;args = rb_gc_location(ptr-&gt;args);</div><div class='add'>+    ptr-&gt;fib = rb_gc_location(ptr-&gt;fib);</div><div class='add'>+    ptr-&gt;dst = rb_gc_location(ptr-&gt;dst);</div><div class='add'>+    ptr-&gt;lookahead = rb_gc_location(ptr-&gt;lookahead);</div><div class='add'>+    ptr-&gt;feedvalue = rb_gc_location(ptr-&gt;feedvalue);</div><div class='add'>+    ptr-&gt;stop_exc = rb_gc_location(ptr-&gt;stop_exc);</div><div class='add'>+    ptr-&gt;size = rb_gc_location(ptr-&gt;size);</div><div class='add'>+    ptr-&gt;procs = rb_gc_location(ptr-&gt;procs);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define enumerator_free RUBY_TYPED_DEFAULT_FREE</div><div class='hunk'>@@ -200,9 +283,10 @@ enumerator_memsize(const void *p)</div><div class='ctx'> static const rb_data_type_t enumerator_data_type = {</div><div class='ctx'>     "enumerator",</div><div class='ctx'>     {</div><div class='del'>-	enumerator_mark,</div><div class='del'>-	enumerator_free,</div><div class='del'>-	enumerator_memsize,</div><div class='add'>+        enumerator_mark,</div><div class='add'>+        enumerator_free,</div><div class='add'>+        enumerator_memsize,</div><div class='add'>+        enumerator_compact,</div><div class='ctx'>     },</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'> };</div><div class='hunk'>@@ -213,8 +297,8 @@ enumerator_ptr(VALUE obj)</div><div class='ctx'>     struct enumerator *ptr;</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(obj, struct enumerator, &amp;enumerator_data_type, ptr);</div><div class='del'>-    if (!ptr || ptr-&gt;obj == Qundef) {</div><div class='del'>-	rb_raise(rb_eArgError, "uninitialized enumerator");</div><div class='add'>+    if (!ptr || UNDEF_P(ptr-&gt;obj)) {</div><div class='add'>+        rb_raise(rb_eArgError, "uninitialized enumerator");</div><div class='ctx'>     }</div><div class='ctx'>     return ptr;</div><div class='ctx'> }</div><div class='hunk'>@@ -223,8 +307,16 @@ static void</div><div class='ctx'> proc_entry_mark(void *p)</div><div class='ctx'> {</div><div class='ctx'>     struct proc_entry *ptr = p;</div><div class='del'>-    rb_gc_mark(ptr-&gt;proc);</div><div class='del'>-    rb_gc_mark(ptr-&gt;memo);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;proc);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;memo);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+proc_entry_compact(void *p)</div><div class='add'>+{</div><div class='add'>+    struct proc_entry *ptr = p;</div><div class='add'>+    ptr-&gt;proc = rb_gc_location(ptr-&gt;proc);</div><div class='add'>+    ptr-&gt;memo = rb_gc_location(ptr-&gt;memo);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define proc_entry_free RUBY_TYPED_DEFAULT_FREE</div><div class='hunk'>@@ -238,9 +330,10 @@ proc_entry_memsize(const void *p)</div><div class='ctx'> static const rb_data_type_t proc_entry_data_type = {</div><div class='ctx'>     "proc_entry",</div><div class='ctx'>     {</div><div class='del'>-	proc_entry_mark,</div><div class='del'>-	proc_entry_free,</div><div class='del'>-	proc_entry_memsize,</div><div class='add'>+        proc_entry_mark,</div><div class='add'>+        proc_entry_free,</div><div class='add'>+        proc_entry_memsize,</div><div class='add'>+        proc_entry_compact,</div><div class='ctx'>     },</div><div class='ctx'> };</div><div class='ctx'> </div><div class='hunk'>@@ -262,7 +355,8 @@ proc_entry_ptr(VALUE proc_entry)</div><div class='ctx'>  *   obj.enum_for(method = :each, *args){|*args| block} -&gt; enum</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new Enumerator which will enumerate by calling +method+ on</div><div class='del'>- * +obj+, passing +args+ if any.</div><div class='add'>+ * +obj+, passing +args+ if any. What was _yielded_ by method becomes</div><div class='add'>+ * values of enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  * If a block is given, it will be used to calculate the size of</div><div class='ctx'>  * the enumerator without the need to iterate it (see Enumerator#size).</div><div class='hunk'>@@ -281,6 +375,11 @@ proc_entry_ptr(VALUE proc_entry)</div><div class='ctx'>  *   a = [1, 2, 3]</div><div class='ctx'>  *   some_method(a.to_enum)</div><div class='ctx'>  *</div><div class='add'>+ *   # String#split in block form is more memory-effective:</div><div class='add'>+ *   very_large_string.split("|") { |chunk| return chunk if chunk.include?('DATE') }</div><div class='add'>+ *   # This could be rewritten more idiomatically with to_enum:</div><div class='add'>+ *   very_large_string.to_enum(:split, "|").lazy.grep(/DATE/).first</div><div class='add'>+ *</div><div class='ctx'>  * It is typical to call to_enum when defining methods for</div><div class='ctx'>  * a generic Enumerable, in case no block is passed.</div><div class='ctx'>  *</div><div class='hunk'>@@ -315,12 +414,12 @@ obj_to_enum(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     VALUE enumerator, meth = sym_each;</div><div class='ctx'> </div><div class='ctx'>     if (argc &gt; 0) {</div><div class='del'>-	--argc;</div><div class='del'>-	meth = *argv++;</div><div class='add'>+        --argc;</div><div class='add'>+        meth = *argv++;</div><div class='ctx'>     }</div><div class='ctx'>     enumerator = rb_enumeratorize_with_size(obj, meth, argc, argv, 0);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	enumerator_ptr(enumerator)-&gt;size = rb_block_proc();</div><div class='add'>+        enumerator_ptr(enumerator)-&gt;size = rb_block_proc();</div><div class='ctx'>     }</div><div class='ctx'>     return enumerator;</div><div class='ctx'> }</div><div class='hunk'>@@ -338,7 +437,7 @@ enumerator_allocate(VALUE klass)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-enumerator_init(VALUE enum_obj, VALUE obj, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *size_fn, VALUE size)</div><div class='add'>+enumerator_init(VALUE enum_obj, VALUE obj, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *size_fn, VALUE size, int kw_splat)</div><div class='ctx'> {</div><div class='ctx'>     struct enumerator *ptr;</div><div class='ctx'> </div><div class='hunk'>@@ -346,7 +445,7 @@ enumerator_init(VALUE enum_obj, VALUE obj, VALUE meth, int argc, const VALUE *ar</div><div class='ctx'>     TypedData_Get_Struct(enum_obj, struct enumerator, &amp;enumerator_data_type, ptr);</div><div class='ctx'> </div><div class='ctx'>     if (!ptr) {</div><div class='del'>-	rb_raise(rb_eArgError, "unallocated enumerator");</div><div class='add'>+        rb_raise(rb_eArgError, "unallocated enumerator");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ptr-&gt;obj  = obj;</div><div class='hunk'>@@ -359,21 +458,38 @@ enumerator_init(VALUE enum_obj, VALUE obj, VALUE meth, int argc, const VALUE *ar</div><div class='ctx'>     ptr-&gt;stop_exc = Qfalse;</div><div class='ctx'>     ptr-&gt;size = size;</div><div class='ctx'>     ptr-&gt;size_fn = size_fn;</div><div class='add'>+    ptr-&gt;kw_splat = kw_splat;</div><div class='ctx'> </div><div class='ctx'>     return enum_obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+convert_to_feasible_size_value(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (NIL_P(obj)) {</div><div class='add'>+        return obj;</div><div class='add'>+    }</div><div class='add'>+    else if (rb_respond_to(obj, id_call)) {</div><div class='add'>+        return obj;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(obj) &amp;&amp; RFLOAT_VALUE(obj) == HUGE_VAL) {</div><div class='add'>+        return obj;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_to_int(obj);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   Enumerator.new(size = nil) { |yielder| ... }</div><div class='del'>- *   Enumerator.new(obj, method = :each, *args)</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new Enumerator object, which can be used as an</div><div class='ctx'>  * Enumerable.</div><div class='ctx'>  *</div><div class='del'>- * In the first form, iteration is defined by the given block, in</div><div class='add'>+ * Iteration is defined by the given block, in</div><div class='ctx'>  * which a "yielder" object, given as block parameter, can be used to</div><div class='del'>- * yield a value by calling the +yield+ method (aliased as +&lt;&lt;+):</div><div class='add'>+ * yield a value by calling the +yield+ method (aliased as &lt;code&gt;&lt;&lt;&lt;/code&gt;):</div><div class='ctx'>  *</div><div class='ctx'>  *   fib = Enumerator.new do |y|</div><div class='ctx'>  *     a = b = 1</div><div class='hunk'>@@ -383,55 +499,21 @@ enumerator_init(VALUE enum_obj, VALUE obj, VALUE meth, int argc, const VALUE *ar</div><div class='ctx'>  *     end</div><div class='ctx'>  *   end</div><div class='ctx'>  *</div><div class='del'>- *   p fib.take(10) # =&gt; [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]</div><div class='add'>+ *   fib.take(10) # =&gt; [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]</div><div class='ctx'>  *</div><div class='ctx'>  * The optional parameter can be used to specify how to calculate the size</div><div class='ctx'>  * in a lazy fashion (see Enumerator#size). It can either be a value or</div><div class='ctx'>  * a callable object.</div><div class='del'>- *</div><div class='del'>- * In the second, deprecated, form, a generated Enumerator iterates over the</div><div class='del'>- * given object using the given method with the given arguments passed.</div><div class='del'>- *</div><div class='del'>- * Use of this form is discouraged.  Use Kernel#enum_for or Kernel#to_enum</div><div class='del'>- * instead.</div><div class='del'>- *</div><div class='del'>- *   e = Enumerator.new(ObjectSpace, :each_object)</div><div class='del'>- *       #-&gt; ObjectSpace.enum_for(:each_object)</div><div class='del'>- *</div><div class='del'>- *   e.select { |obj| obj.is_a?(Class) }  #=&gt; array of all classes</div><div class='del'>- *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> enumerator_initialize(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE recv, meth = sym_each;</div><div class='del'>-    VALUE size = Qnil;</div><div class='del'>-</div><div class='del'>-    if (rb_block_given_p()) {</div><div class='del'>-	rb_check_arity(argc, 0, 1);</div><div class='del'>-	recv = generator_init(generator_allocate(rb_cGenerator), rb_block_proc());</div><div class='del'>-	if (argc) {</div><div class='del'>-            if (NIL_P(argv[0]) || rb_respond_to(argv[0], id_call) ||</div><div class='del'>-                (RB_TYPE_P(argv[0], T_FLOAT) &amp;&amp; RFLOAT_VALUE(argv[0]) == HUGE_VAL)) {</div><div class='del'>-                size = argv[0];</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                size = rb_to_int(argv[0]);</div><div class='del'>-            }</div><div class='del'>-            argc = 0;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);</div><div class='del'>-	rb_warn("Enumerator.new without a block is deprecated; use Object#to_enum");</div><div class='del'>-	recv = *argv++;</div><div class='del'>-	if (--argc) {</div><div class='del'>-	    meth = *argv++;</div><div class='del'>-	    --argc;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='add'>+    VALUE iter = rb_block_proc();</div><div class='add'>+    VALUE recv = generator_init(generator_allocate(rb_cGenerator), iter);</div><div class='add'>+    VALUE arg0 = rb_check_arity(argc, 0, 1) ? argv[0] : Qnil;</div><div class='add'>+    VALUE size = convert_to_feasible_size_value(arg0);</div><div class='ctx'> </div><div class='del'>-    return enumerator_init(obj, recv, meth, argc, argv, 0, size);</div><div class='add'>+    return enumerator_init(obj, recv, sym_each, 0, 0, 0, size, false);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='hunk'>@@ -443,14 +525,14 @@ enumerator_init_copy(VALUE obj, VALUE orig)</div><div class='ctx'>     if (!OBJ_INIT_COPY(obj, orig)) return obj;</div><div class='ctx'>     ptr0 = enumerator_ptr(orig);</div><div class='ctx'>     if (ptr0-&gt;fib) {</div><div class='del'>-	/* Fibers cannot be copied */</div><div class='del'>-	rb_raise(rb_eTypeError, "can't copy execution context");</div><div class='add'>+        /* Fibers cannot be copied */</div><div class='add'>+        rb_raise(rb_eTypeError, "can't copy execution context");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(obj, struct enumerator, &amp;enumerator_data_type, ptr1);</div><div class='ctx'> </div><div class='ctx'>     if (!ptr1) {</div><div class='del'>-	rb_raise(rb_eArgError, "unallocated enumerator");</div><div class='add'>+        rb_raise(rb_eArgError, "unallocated enumerator");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ptr1-&gt;obj  = ptr0-&gt;obj;</div><div class='hunk'>@@ -474,19 +556,29 @@ rb_enumeratorize(VALUE obj, VALUE meth, int argc, const VALUE *argv)</div><div class='ctx'>     return rb_enumeratorize_with_size(obj, meth, argc, argv, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-lazy_to_enum_i(VALUE self, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *size_fn);</div><div class='add'>+static VALUE lazy_to_enum_i(VALUE self, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *size_fn, int kw_splat);</div><div class='add'>+static int lazy_precheck(VALUE procs);</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_enumeratorize_with_size_kw(VALUE obj, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *size_fn, int kw_splat)</div><div class='add'>+{</div><div class='add'>+    VALUE base_class = rb_cEnumerator;</div><div class='add'>+</div><div class='add'>+    if (RTEST(rb_obj_is_kind_of(obj, rb_cLazy))) {</div><div class='add'>+        base_class = rb_cLazy;</div><div class='add'>+    }</div><div class='add'>+    else if (RTEST(rb_obj_is_kind_of(obj, rb_cEnumChain))) {</div><div class='add'>+        obj = enumerator_init(enumerator_allocate(rb_cEnumerator), obj, sym_each, 0, 0, 0, Qnil, false);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return enumerator_init(enumerator_allocate(base_class),</div><div class='add'>+                           obj, meth, argc, argv, size_fn, Qnil, kw_splat);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_enumeratorize_with_size(VALUE obj, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *size_fn)</div><div class='ctx'> {</div><div class='del'>-    /* Similar effect as calling obj.to_enum, i.e. dispatching to either</div><div class='del'>-       Kernel#to_enum vs Lazy#to_enum */</div><div class='del'>-    if (RTEST(rb_obj_is_kind_of(obj, rb_cLazy)))</div><div class='del'>-	return lazy_to_enum_i(obj, meth, argc, argv, size_fn);</div><div class='del'>-    else</div><div class='del'>-	return enumerator_init(enumerator_allocate(rb_cEnumerator),</div><div class='del'>-			       obj, meth, argc, argv, size_fn, Qnil);</div><div class='add'>+    return rb_enumeratorize_with_size_kw(obj, meth, argc, argv, size_fn, rb_keyword_given_p());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -498,10 +590,10 @@ enumerator_block_call(VALUE obj, rb_block_call_func *func, VALUE arg)</div><div class='ctx'>     ID meth = e-&gt;meth;</div><div class='ctx'> </div><div class='ctx'>     if (e-&gt;args) {</div><div class='del'>-	argc = RARRAY_LENINT(e-&gt;args);</div><div class='del'>-	argv = RARRAY_CONST_PTR(e-&gt;args);</div><div class='add'>+        argc = RARRAY_LENINT(e-&gt;args);</div><div class='add'>+        argv = RARRAY_CONST_PTR(e-&gt;args);</div><div class='ctx'>     }</div><div class='del'>-    return rb_block_call(e-&gt;obj, meth, argc, argv, func, arg);</div><div class='add'>+    return rb_block_call_kw(e-&gt;obj, meth, argc, argv, func, arg, e-&gt;kw_splat);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -543,25 +635,29 @@ enumerator_block_call(VALUE obj, rb_block_call_func *func, VALUE arg)</div><div class='ctx'> static VALUE</div><div class='ctx'> enumerator_each(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='add'>+    struct enumerator *e = enumerator_ptr(obj);</div><div class='add'>+</div><div class='ctx'>     if (argc &gt; 0) {</div><div class='del'>-	struct enumerator *e = enumerator_ptr(obj = rb_obj_dup(obj));</div><div class='del'>-	VALUE args = e-&gt;args;</div><div class='del'>-	if (args) {</div><div class='add'>+        VALUE args = (e = enumerator_ptr(obj = rb_obj_dup(obj)))-&gt;args;</div><div class='add'>+        if (args) {</div><div class='ctx'> #if SIZEOF_INT &lt; SIZEOF_LONG</div><div class='del'>-	    /* check int range overflow */</div><div class='del'>-	    rb_long2int(RARRAY_LEN(args) + argc);</div><div class='add'>+            /* check int range overflow */</div><div class='add'>+            rb_long2int(RARRAY_LEN(args) + argc);</div><div class='ctx'> #endif</div><div class='del'>-	    args = rb_ary_dup(args);</div><div class='del'>-	    rb_ary_cat(args, argv, argc);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    args = rb_ary_new4(argc, argv);</div><div class='del'>-	}</div><div class='del'>-	e-&gt;args = args;</div><div class='add'>+            args = rb_ary_dup(args);</div><div class='add'>+            rb_ary_cat(args, argv, argc);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            args = rb_ary_new4(argc, argv);</div><div class='add'>+        }</div><div class='add'>+        e-&gt;args = args;</div><div class='ctx'>         e-&gt;size = Qnil;</div><div class='ctx'>         e-&gt;size_fn = 0;</div><div class='ctx'>     }</div><div class='ctx'>     if (!rb_block_given_p()) return obj;</div><div class='add'>+</div><div class='add'>+    if (!lazy_precheck(e-&gt;procs)) return Qnil;</div><div class='add'>+</div><div class='ctx'>     return enumerator_block_call(obj, 0, obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -573,7 +669,7 @@ enumerator_with_index_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, m))</div><div class='ctx'>     MEMO_V1_SET(memo, rb_int_succ(idx));</div><div class='ctx'> </div><div class='ctx'>     if (argc &lt;= 1)</div><div class='del'>-	return rb_yield_values(2, val, idx);</div><div class='add'>+        return rb_yield_values(2, val, idx);</div><div class='ctx'> </div><div class='ctx'>     return rb_yield_values(2, rb_ary_new4(argc, argv), idx);</div><div class='ctx'> }</div><div class='hunk'>@@ -630,7 +726,7 @@ static VALUE</div><div class='ctx'> enumerator_with_object_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, memo))</div><div class='ctx'> {</div><div class='ctx'>     if (argc &lt;= 1)</div><div class='del'>-	return rb_yield_values(2, val, memo);</div><div class='add'>+        return rb_yield_values(2, val, memo);</div><div class='ctx'> </div><div class='ctx'>     return rb_yield_values(2, rb_ary_new4(argc, argv), memo);</div><div class='ctx'> }</div><div class='hunk'>@@ -660,9 +756,9 @@ enumerator_with_object_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, memo))</div><div class='ctx'>  *     puts "#{string}: #{x}"</div><div class='ctx'>  *   end</div><div class='ctx'>  *</div><div class='del'>- *   # =&gt; foo:0</div><div class='del'>- *   # =&gt; foo:1</div><div class='del'>- *   # =&gt; foo:2</div><div class='add'>+ *   # =&gt; foo: 0</div><div class='add'>+ *   # =&gt; foo: 1</div><div class='add'>+ *   # =&gt; foo: 2</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> enumerator_with_object(VALUE obj, VALUE memo)</div><div class='hunk'>@@ -680,7 +776,7 @@ next_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, obj))</div><div class='ctx'>     VALUE feedvalue = Qnil;</div><div class='ctx'>     VALUE args = rb_ary_new4(argc, argv);</div><div class='ctx'>     rb_fiber_yield(1, &amp;args);</div><div class='del'>-    if (e-&gt;feedvalue != Qundef) {</div><div class='add'>+    if (!UNDEF_P(e-&gt;feedvalue)) {</div><div class='ctx'>         feedvalue = e-&gt;feedvalue;</div><div class='ctx'>         e-&gt;feedvalue = Qundef;</div><div class='ctx'>     }</div><div class='hunk'>@@ -688,7 +784,7 @@ next_ii(RB_BLOCK_CALL_FUNC_ARGLIST(i, obj))</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-next_i(VALUE curr, VALUE obj)</div><div class='add'>+next_i(RB_BLOCK_CALL_FUNC_ARGLIST(_, obj))</div><div class='ctx'> {</div><div class='ctx'>     struct enumerator *e = enumerator_ptr(obj);</div><div class='ctx'>     VALUE nil = Qnil;</div><div class='hunk'>@@ -714,22 +810,30 @@ get_next_values(VALUE obj, struct enumerator *e)</div><div class='ctx'> {</div><div class='ctx'>     VALUE curr, vs;</div><div class='ctx'> </div><div class='del'>-    if (e-&gt;stop_exc)</div><div class='del'>-	rb_exc_raise(e-&gt;stop_exc);</div><div class='add'>+    if (e-&gt;stop_exc) {</div><div class='add'>+        VALUE exc = e-&gt;stop_exc;</div><div class='add'>+        VALUE result = rb_attr_get(exc, id_result);</div><div class='add'>+        VALUE mesg = rb_attr_get(exc, idMesg);</div><div class='add'>+        if (!NIL_P(mesg)) mesg = rb_str_dup(mesg);</div><div class='add'>+        VALUE stop_exc = rb_exc_new_str(rb_eStopIteration, mesg);</div><div class='add'>+        rb_ivar_set(stop_exc, id_cause, exc);</div><div class='add'>+        rb_ivar_set(stop_exc, id_result, result);</div><div class='add'>+        rb_exc_raise(stop_exc);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     curr = rb_fiber_current();</div><div class='ctx'> </div><div class='ctx'>     if (!e-&gt;fib || !rb_fiber_alive_p(e-&gt;fib)) {</div><div class='del'>-	next_init(obj, e);</div><div class='add'>+        next_init(obj, e);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     vs = rb_fiber_resume(e-&gt;fib, 1, &amp;curr);</div><div class='ctx'>     if (e-&gt;stop_exc) {</div><div class='del'>-	e-&gt;fib = 0;</div><div class='del'>-	e-&gt;dst = Qnil;</div><div class='del'>-	e-&gt;lookahead = Qundef;</div><div class='del'>-	e-&gt;feedvalue = Qundef;</div><div class='del'>-	rb_exc_raise(e-&gt;stop_exc);</div><div class='add'>+        e-&gt;fib = 0;</div><div class='add'>+        e-&gt;dst = Qnil;</div><div class='add'>+        e-&gt;lookahead = Qundef;</div><div class='add'>+        e-&gt;feedvalue = Qundef;</div><div class='add'>+        rb_exc_raise(e-&gt;stop_exc);</div><div class='ctx'>     }</div><div class='ctx'>     return vs;</div><div class='ctx'> }</div><div class='hunk'>@@ -742,6 +846,8 @@ get_next_values(VALUE obj, struct enumerator *e)</div><div class='ctx'>  * internal position forward.  When the position reached at the end,</div><div class='ctx'>  * StopIteration is raised.</div><div class='ctx'>  *</div><div class='add'>+ * See class-level notes about external iterators.</div><div class='add'>+ *</div><div class='ctx'>  * This method can be used to distinguish &lt;code&gt;yield&lt;/code&gt; and &lt;code&gt;yield</div><div class='ctx'>  * nil&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='hunk'>@@ -775,10 +881,6 @@ get_next_values(VALUE obj, struct enumerator *e)</div><div class='ctx'>  *   #  yield nil        [nil]            nil</div><div class='ctx'>  *   #  yield [1, 2]     [[1, 2]]         [1, 2]</div><div class='ctx'>  *</div><div class='del'>- * Note that +next_values+ does not affect other non-external enumeration</div><div class='del'>- * methods unless underlying iteration method itself has side-effect, e.g.</div><div class='del'>- * IO#each_line.</div><div class='del'>- *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -787,7 +889,7 @@ enumerator_next_values(VALUE obj)</div><div class='ctx'>     struct enumerator *e = enumerator_ptr(obj);</div><div class='ctx'>     VALUE vs;</div><div class='ctx'> </div><div class='del'>-    if (e-&gt;lookahead != Qundef) {</div><div class='add'>+    if (!UNDEF_P(e-&gt;lookahead)) {</div><div class='ctx'>         vs = e-&gt;lookahead;</div><div class='ctx'>         e-&gt;lookahead = Qundef;</div><div class='ctx'>         return vs;</div><div class='hunk'>@@ -832,9 +934,7 @@ ary2sv(VALUE args, int dup)</div><div class='ctx'>  *   p e.next   #=&gt; 3</div><div class='ctx'>  *   p e.next   #raises StopIteration</div><div class='ctx'>  *</div><div class='del'>- * Note that enumeration sequence by +next+ does not affect other non-external</div><div class='del'>- * enumeration methods, unless the underlying iteration methods itself has</div><div class='del'>- * side-effect, e.g. IO#each_line.</div><div class='add'>+ * See class-level notes about external iterators.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -850,7 +950,7 @@ enumerator_peek_values(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     struct enumerator *e = enumerator_ptr(obj);</div><div class='ctx'> </div><div class='del'>-    if (e-&gt;lookahead == Qundef) {</div><div class='add'>+    if (UNDEF_P(e-&gt;lookahead)) {</div><div class='ctx'>         e-&gt;lookahead = get_next_values(obj, e);</div><div class='ctx'>     }</div><div class='ctx'>     return e-&gt;lookahead;</div><div class='hunk'>@@ -864,6 +964,8 @@ enumerator_peek_values(VALUE obj)</div><div class='ctx'>  * doesn't move the internal position forward.  If the position is already at</div><div class='ctx'>  * the end, StopIteration is raised.</div><div class='ctx'>  *</div><div class='add'>+ * See class-level notes about external iterators.</div><div class='add'>+ *</div><div class='ctx'>  * === Example</div><div class='ctx'>  *</div><div class='ctx'>  *   o = Object.new</div><div class='hunk'>@@ -898,6 +1000,8 @@ enumerator_peek_values_m(VALUE obj)</div><div class='ctx'>  * position forward.  If the position is already at the end, StopIteration</div><div class='ctx'>  * is raised.</div><div class='ctx'>  *</div><div class='add'>+ * See class-level notes about external iterators.</div><div class='add'>+ *</div><div class='ctx'>  * === Example</div><div class='ctx'>  *</div><div class='ctx'>  *   a = [1,2,3]</div><div class='hunk'>@@ -970,8 +1074,8 @@ enumerator_feed(VALUE obj, VALUE v)</div><div class='ctx'> {</div><div class='ctx'>     struct enumerator *e = enumerator_ptr(obj);</div><div class='ctx'> </div><div class='del'>-    if (e-&gt;feedvalue != Qundef) {</div><div class='del'>-	rb_raise(rb_eTypeError, "feed value already set");</div><div class='add'>+    if (!UNDEF_P(e-&gt;feedvalue)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "feed value already set");</div><div class='ctx'>     }</div><div class='ctx'>     e-&gt;feedvalue = v;</div><div class='ctx'> </div><div class='hunk'>@@ -1015,38 +1119,37 @@ inspect_enumerator(VALUE obj, VALUE dummy, int recur)</div><div class='ctx'> </div><div class='ctx'>     cname = rb_obj_class(obj);</div><div class='ctx'> </div><div class='del'>-    if (!e || e-&gt;obj == Qundef) {</div><div class='del'>-	return rb_sprintf("#&lt;%"PRIsVALUE": uninitialized&gt;", rb_class_path(cname));</div><div class='add'>+    if (!e || UNDEF_P(e-&gt;obj)) {</div><div class='add'>+        return rb_sprintf("#&lt;%"PRIsVALUE": uninitialized&gt;", rb_class_path(cname));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (recur) {</div><div class='del'>-	str = rb_sprintf("#&lt;%"PRIsVALUE": ...&gt;", rb_class_path(cname));</div><div class='del'>-	OBJ_TAINT(str);</div><div class='del'>-	return str;</div><div class='add'>+        str = rb_sprintf("#&lt;%"PRIsVALUE": ...&gt;", rb_class_path(cname));</div><div class='add'>+        return str;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (e-&gt;procs) {</div><div class='del'>-	long i;</div><div class='del'>-</div><div class='del'>-	eobj = generator_ptr(e-&gt;obj)-&gt;obj;</div><div class='del'>-	/* In case procs chained enumerator traversing all proc entries manually */</div><div class='del'>-	if (rb_obj_class(eobj) == cname) {</div><div class='del'>-	    str = rb_inspect(eobj);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    str = rb_sprintf("#&lt;%"PRIsVALUE": %+"PRIsVALUE"&gt;", rb_class_path(cname), eobj);</div><div class='del'>-	}</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(e-&gt;procs); i++) {</div><div class='del'>-	    str = rb_sprintf("#&lt;%"PRIsVALUE": %"PRIsVALUE, cname, str);</div><div class='del'>-	    append_method(RARRAY_AREF(e-&gt;procs, i), str, e-&gt;meth, e-&gt;args);</div><div class='del'>-	    rb_str_buf_cat2(str, "&gt;");</div><div class='del'>-	}</div><div class='del'>-	return str;</div><div class='add'>+        long i;</div><div class='add'>+</div><div class='add'>+        eobj = generator_ptr(e-&gt;obj)-&gt;obj;</div><div class='add'>+        /* In case procs chained enumerator traversing all proc entries manually */</div><div class='add'>+        if (rb_obj_class(eobj) == cname) {</div><div class='add'>+            str = rb_inspect(eobj);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            str = rb_sprintf("#&lt;%"PRIsVALUE": %+"PRIsVALUE"&gt;", rb_class_path(cname), eobj);</div><div class='add'>+        }</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(e-&gt;procs); i++) {</div><div class='add'>+            str = rb_sprintf("#&lt;%"PRIsVALUE": %"PRIsVALUE, cname, str);</div><div class='add'>+            append_method(RARRAY_AREF(e-&gt;procs, i), str, e-&gt;meth, e-&gt;args);</div><div class='add'>+            rb_str_buf_cat2(str, "&gt;");</div><div class='add'>+        }</div><div class='add'>+        return str;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     eobj = rb_attr_get(obj, id_receiver);</div><div class='ctx'>     if (NIL_P(eobj)) {</div><div class='del'>-	eobj = e-&gt;obj;</div><div class='add'>+        eobj = e-&gt;obj;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* (1..100).each_cons(2) =&gt; "#&lt;Enumerator: 1..100:each_cons(2)&gt;" */</div><div class='hunk'>@@ -1081,49 +1184,48 @@ append_method(VALUE obj, VALUE str, ID default_method, VALUE default_args)</div><div class='ctx'> </div><div class='ctx'>     method = rb_attr_get(obj, id_method);</div><div class='ctx'>     if (method != Qfalse) {</div><div class='del'>-	if (!NIL_P(method)) {</div><div class='del'>-	    Check_Type(method, T_SYMBOL);</div><div class='del'>-	    method = rb_sym2str(method);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    method = rb_id2str(default_method);</div><div class='del'>-	}</div><div class='del'>-	rb_str_buf_cat2(str, ":");</div><div class='del'>-	rb_str_buf_append(str, method);</div><div class='add'>+        if (!NIL_P(method)) {</div><div class='add'>+            Check_Type(method, T_SYMBOL);</div><div class='add'>+            method = rb_sym2str(method);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            method = rb_id2str(default_method);</div><div class='add'>+        }</div><div class='add'>+        rb_str_buf_cat2(str, ":");</div><div class='add'>+        rb_str_buf_append(str, method);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     eargs = rb_attr_get(obj, id_arguments);</div><div class='ctx'>     if (NIL_P(eargs)) {</div><div class='del'>-	eargs = default_args;</div><div class='add'>+        eargs = default_args;</div><div class='ctx'>     }</div><div class='ctx'>     if (eargs != Qfalse) {</div><div class='del'>-	long   argc = RARRAY_LEN(eargs);</div><div class='del'>-	const VALUE *argv = RARRAY_CONST_PTR(eargs); /* WB: no new reference */</div><div class='add'>+        long   argc = RARRAY_LEN(eargs);</div><div class='add'>+        const VALUE *argv = RARRAY_CONST_PTR(eargs); /* WB: no new reference */</div><div class='ctx'> </div><div class='del'>-	if (argc &gt; 0) {</div><div class='del'>-	    VALUE kwds = Qnil;</div><div class='add'>+        if (argc &gt; 0) {</div><div class='add'>+            VALUE kwds = Qnil;</div><div class='ctx'> </div><div class='del'>-	    rb_str_buf_cat2(str, "(");</div><div class='add'>+            rb_str_buf_cat2(str, "(");</div><div class='ctx'> </div><div class='del'>-	    if (RB_TYPE_P(argv[argc-1], T_HASH)) {</div><div class='del'>-		int all_key = TRUE;</div><div class='del'>-		rb_hash_foreach(argv[argc-1], key_symbol_p, (VALUE)&amp;all_key);</div><div class='del'>-		if (all_key) kwds = argv[--argc];</div><div class='del'>-	    }</div><div class='add'>+            if (RB_TYPE_P(argv[argc-1], T_HASH) &amp;&amp; !RHASH_EMPTY_P(argv[argc-1])) {</div><div class='add'>+                int all_key = TRUE;</div><div class='add'>+                rb_hash_foreach(argv[argc-1], key_symbol_p, (VALUE)&amp;all_key);</div><div class='add'>+                if (all_key) kwds = argv[--argc];</div><div class='add'>+            }</div><div class='ctx'> </div><div class='del'>-	    while (argc--) {</div><div class='del'>-		VALUE arg = *argv++;</div><div class='add'>+            while (argc--) {</div><div class='add'>+                VALUE arg = *argv++;</div><div class='ctx'> </div><div class='del'>-		rb_str_append(str, rb_inspect(arg));</div><div class='del'>-		rb_str_buf_cat2(str, ", ");</div><div class='del'>-		OBJ_INFECT(str, arg);</div><div class='del'>-	    }</div><div class='del'>-	    if (!NIL_P(kwds)) {</div><div class='del'>-		rb_hash_foreach(kwds, kwd_append, str);</div><div class='del'>-	    }</div><div class='del'>-	    rb_str_set_len(str, RSTRING_LEN(str)-2);</div><div class='del'>-	    rb_str_buf_cat2(str, ")");</div><div class='del'>-	}</div><div class='add'>+                rb_str_append(str, rb_inspect(arg));</div><div class='add'>+                rb_str_buf_cat2(str, ", ");</div><div class='add'>+            }</div><div class='add'>+            if (!NIL_P(kwds)) {</div><div class='add'>+                rb_hash_foreach(kwds, kwd_append, str);</div><div class='add'>+            }</div><div class='add'>+            rb_str_set_len(str, RSTRING_LEN(str)-2);</div><div class='add'>+            rb_str_buf_cat2(str, ")");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='hunk'>@@ -1162,31 +1264,31 @@ enumerator_size(VALUE obj)</div><div class='ctx'>     VALUE size;</div><div class='ctx'> </div><div class='ctx'>     if (e-&gt;procs) {</div><div class='del'>-	struct generator *g = generator_ptr(e-&gt;obj);</div><div class='del'>-	VALUE receiver = rb_check_funcall(g-&gt;obj, id_size, 0, 0);</div><div class='del'>-	long i = 0;</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(e-&gt;procs); i++) {</div><div class='del'>-	    VALUE proc = RARRAY_AREF(e-&gt;procs, i);</div><div class='del'>-	    struct proc_entry *entry = proc_entry_ptr(proc);</div><div class='del'>-	    lazyenum_size_func *size_fn = entry-&gt;fn-&gt;size;</div><div class='del'>-	    if (!size_fn) {</div><div class='del'>-		return Qnil;</div><div class='del'>-	    }</div><div class='del'>-	    receiver = (*size_fn)(proc, receiver);</div><div class='del'>-	}</div><div class='del'>-	return receiver;</div><div class='add'>+        struct generator *g = generator_ptr(e-&gt;obj);</div><div class='add'>+        VALUE receiver = rb_check_funcall(g-&gt;obj, id_size, 0, 0);</div><div class='add'>+        long i = 0;</div><div class='add'>+</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(e-&gt;procs); i++) {</div><div class='add'>+            VALUE proc = RARRAY_AREF(e-&gt;procs, i);</div><div class='add'>+            struct proc_entry *entry = proc_entry_ptr(proc);</div><div class='add'>+            lazyenum_size_func *size_fn = entry-&gt;fn-&gt;size;</div><div class='add'>+            if (!size_fn) {</div><div class='add'>+                return Qnil;</div><div class='add'>+            }</div><div class='add'>+            receiver = (*size_fn)(proc, receiver);</div><div class='add'>+        }</div><div class='add'>+        return receiver;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (e-&gt;size_fn) {</div><div class='del'>-	return (*e-&gt;size_fn)(e-&gt;obj, e-&gt;args, obj);</div><div class='add'>+        return (*e-&gt;size_fn)(e-&gt;obj, e-&gt;args, obj);</div><div class='ctx'>     }</div><div class='ctx'>     if (e-&gt;args) {</div><div class='del'>-	argc = (int)RARRAY_LEN(e-&gt;args);</div><div class='del'>-	argv = RARRAY_CONST_PTR(e-&gt;args);</div><div class='add'>+        argc = (int)RARRAY_LEN(e-&gt;args);</div><div class='add'>+        argv = RARRAY_CONST_PTR(e-&gt;args);</div><div class='ctx'>     }</div><div class='del'>-    size = rb_check_funcall(e-&gt;size, id_call, argc, argv);</div><div class='del'>-    if (size != Qundef) return size;</div><div class='add'>+    size = rb_check_funcall_kw(e-&gt;size, id_call, argc, argv, e-&gt;kw_splat);</div><div class='add'>+    if (!UNDEF_P(size)) return size;</div><div class='ctx'>     return e-&gt;size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1197,7 +1299,14 @@ static void</div><div class='ctx'> yielder_mark(void *p)</div><div class='ctx'> {</div><div class='ctx'>     struct yielder *ptr = p;</div><div class='del'>-    rb_gc_mark(ptr-&gt;proc);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;proc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+yielder_compact(void *p)</div><div class='add'>+{</div><div class='add'>+    struct yielder *ptr = p;</div><div class='add'>+    ptr-&gt;proc = rb_gc_location(ptr-&gt;proc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define yielder_free RUBY_TYPED_DEFAULT_FREE</div><div class='hunk'>@@ -1211,9 +1320,10 @@ yielder_memsize(const void *p)</div><div class='ctx'> static const rb_data_type_t yielder_data_type = {</div><div class='ctx'>     "yielder",</div><div class='ctx'>     {</div><div class='del'>-	yielder_mark,</div><div class='del'>-	yielder_free,</div><div class='del'>-	yielder_memsize,</div><div class='add'>+        yielder_mark,</div><div class='add'>+        yielder_free,</div><div class='add'>+        yielder_memsize,</div><div class='add'>+        yielder_compact,</div><div class='ctx'>     },</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'> };</div><div class='hunk'>@@ -1224,8 +1334,8 @@ yielder_ptr(VALUE obj)</div><div class='ctx'>     struct yielder *ptr;</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(obj, struct yielder, &amp;yielder_data_type, ptr);</div><div class='del'>-    if (!ptr || ptr-&gt;proc == Qundef) {</div><div class='del'>-	rb_raise(rb_eArgError, "uninitialized yielder");</div><div class='add'>+    if (!ptr || UNDEF_P(ptr-&gt;proc)) {</div><div class='add'>+        rb_raise(rb_eArgError, "uninitialized yielder");</div><div class='ctx'>     }</div><div class='ctx'>     return ptr;</div><div class='ctx'> }</div><div class='hunk'>@@ -1251,7 +1361,7 @@ yielder_init(VALUE obj, VALUE proc)</div><div class='ctx'>     TypedData_Get_Struct(obj, struct yielder, &amp;yielder_data_type, ptr);</div><div class='ctx'> </div><div class='ctx'>     if (!ptr) {</div><div class='del'>-	rb_raise(rb_eArgError, "unallocated yielder");</div><div class='add'>+        rb_raise(rb_eArgError, "unallocated yielder");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ptr-&gt;proc = proc;</div><div class='hunk'>@@ -1274,7 +1384,7 @@ yielder_yield(VALUE obj, VALUE args)</div><div class='ctx'> {</div><div class='ctx'>     struct yielder *ptr = yielder_ptr(obj);</div><div class='ctx'> </div><div class='del'>-    return rb_proc_call(ptr-&gt;proc, args);</div><div class='add'>+    return rb_proc_call_kw(ptr-&gt;proc, args, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='hunk'>@@ -1288,10 +1398,30 @@ yielder_yield_push(VALUE obj, VALUE arg)</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * Returns a Proc object that takes arguments and yields them.</div><div class='add'>+ *</div><div class='add'>+ * This method is implemented so that a Yielder object can be directly</div><div class='add'>+ * passed to another method as a block argument.</div><div class='add'>+ *</div><div class='add'>+ *   enum = Enumerator.new { |y|</div><div class='add'>+ *     Dir.glob("*.rb") { |file|</div><div class='add'>+ *       File.open(file) { |f| f.each_line(&amp;y) }</div><div class='add'>+ *     }</div><div class='add'>+ *   }</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+yielder_to_proc(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE method = rb_obj_method(obj, sym_yield);</div><div class='add'>+</div><div class='add'>+    return rb_funcall(method, idTo_proc, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> yielder_yield_i(RB_BLOCK_CALL_FUNC_ARGLIST(obj, memo))</div><div class='ctx'> {</div><div class='del'>-    return rb_yield_values2(argc, argv);</div><div class='add'>+    return rb_yield_values_kw(argc, argv, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1307,8 +1437,16 @@ static void</div><div class='ctx'> generator_mark(void *p)</div><div class='ctx'> {</div><div class='ctx'>     struct generator *ptr = p;</div><div class='del'>-    rb_gc_mark(ptr-&gt;proc);</div><div class='del'>-    rb_gc_mark(ptr-&gt;obj);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;proc);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+generator_compact(void *p)</div><div class='add'>+{</div><div class='add'>+    struct generator *ptr = p;</div><div class='add'>+    ptr-&gt;proc = rb_gc_location(ptr-&gt;proc);</div><div class='add'>+    ptr-&gt;obj = rb_gc_location(ptr-&gt;obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define generator_free RUBY_TYPED_DEFAULT_FREE</div><div class='hunk'>@@ -1322,9 +1460,10 @@ generator_memsize(const void *p)</div><div class='ctx'> static const rb_data_type_t generator_data_type = {</div><div class='ctx'>     "generator",</div><div class='ctx'>     {</div><div class='del'>-	generator_mark,</div><div class='del'>-	generator_free,</div><div class='del'>-	generator_memsize,</div><div class='add'>+        generator_mark,</div><div class='add'>+        generator_free,</div><div class='add'>+        generator_memsize,</div><div class='add'>+        generator_compact,</div><div class='ctx'>     },</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'> };</div><div class='hunk'>@@ -1335,8 +1474,8 @@ generator_ptr(VALUE obj)</div><div class='ctx'>     struct generator *ptr;</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(obj, struct generator, &amp;generator_data_type, ptr);</div><div class='del'>-    if (!ptr || ptr-&gt;proc == Qundef) {</div><div class='del'>-	rb_raise(rb_eArgError, "uninitialized generator");</div><div class='add'>+    if (!ptr || UNDEF_P(ptr-&gt;proc)) {</div><div class='add'>+        rb_raise(rb_eArgError, "uninitialized generator");</div><div class='ctx'>     }</div><div class='ctx'>     return ptr;</div><div class='ctx'> }</div><div class='hunk'>@@ -1363,7 +1502,7 @@ generator_init(VALUE obj, VALUE proc)</div><div class='ctx'>     TypedData_Get_Struct(obj, struct generator, &amp;generator_data_type, ptr);</div><div class='ctx'> </div><div class='ctx'>     if (!ptr) {</div><div class='del'>-	rb_raise(rb_eArgError, "unallocated generator");</div><div class='add'>+        rb_raise(rb_eArgError, "unallocated generator");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ptr-&gt;proc = proc;</div><div class='hunk'>@@ -1378,21 +1517,21 @@ generator_initialize(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     VALUE proc;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	rb_need_block();</div><div class='add'>+        rb_need_block();</div><div class='ctx'> </div><div class='del'>-	proc = rb_block_proc();</div><div class='add'>+        proc = rb_block_proc();</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_scan_args(argc, argv, "1", &amp;proc);</div><div class='add'>+        rb_scan_args(argc, argv, "1", &amp;proc);</div><div class='ctx'> </div><div class='del'>-	if (!rb_obj_is_proc(proc))</div><div class='del'>-	    rb_raise(rb_eTypeError,</div><div class='del'>-		     "wrong argument type %"PRIsVALUE" (expected Proc)",</div><div class='del'>-		     rb_obj_class(proc));</div><div class='add'>+        if (!rb_obj_is_proc(proc))</div><div class='add'>+            rb_raise(rb_eTypeError,</div><div class='add'>+                     "wrong argument type %"PRIsVALUE" (expected Proc)",</div><div class='add'>+                     rb_obj_class(proc));</div><div class='ctx'> </div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    rb_warn("given block not used");</div><div class='del'>-	}</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            rb_warn("given block not used");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return generator_init(obj, proc);</div><div class='hunk'>@@ -1411,7 +1550,7 @@ generator_init_copy(VALUE obj, VALUE orig)</div><div class='ctx'>     TypedData_Get_Struct(obj, struct generator, &amp;generator_data_type, ptr1);</div><div class='ctx'> </div><div class='ctx'>     if (!ptr1) {</div><div class='del'>-	rb_raise(rb_eArgError, "unallocated generator");</div><div class='add'>+        rb_raise(rb_eArgError, "unallocated generator");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ptr1-&gt;proc = ptr0-&gt;proc;</div><div class='hunk'>@@ -1428,10 +1567,10 @@ generator_each(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     rb_ary_push(args, yielder_new());</div><div class='ctx'>     if (argc &gt; 0) {</div><div class='del'>-	rb_ary_cat(args, argv, argc);</div><div class='add'>+        rb_ary_cat(args, argv, argc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return rb_proc_call(ptr-&gt;proc, args);</div><div class='add'>+    return rb_proc_call_kw(ptr-&gt;proc, args, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Lazy Enumerator methods */</div><div class='hunk'>@@ -1439,7 +1578,7 @@ static VALUE</div><div class='ctx'> enum_size(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     VALUE r = rb_check_funcall(self, id_size, 0, 0);</div><div class='del'>-    return (r == Qundef) ? Qnil : r;</div><div class='add'>+    return UNDEF_P(r) ? Qnil : r;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1448,41 +1587,31 @@ lazyenum_size(VALUE self, VALUE args, VALUE eobj)</div><div class='ctx'>     return enum_size(self);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-lazy_size(VALUE self)</div><div class='del'>-{</div><div class='del'>-    return enum_size(rb_ivar_get(self, id_receiver));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-lazy_receiver_size(VALUE generator, VALUE args, VALUE lazy)</div><div class='del'>-{</div><div class='del'>-    return lazy_size(lazy);</div><div class='del'>-}</div><div class='add'>+#define lazy_receiver_size lazy_map_size</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_init_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(val, m))</div><div class='ctx'> {</div><div class='ctx'>     VALUE result;</div><div class='ctx'>     if (argc == 1) {</div><div class='del'>-	VALUE args[2];</div><div class='del'>-	args[0] = m;</div><div class='del'>-	args[1] = val;</div><div class='del'>-	result = rb_yield_values2(2, args);</div><div class='add'>+        VALUE args[2];</div><div class='add'>+        args[0] = m;</div><div class='add'>+        args[1] = val;</div><div class='add'>+        result = rb_yield_values2(2, args);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE args;</div><div class='del'>-	int len = rb_long2int((long)argc + 1);</div><div class='del'>-	VALUE *nargv = ALLOCV_N(VALUE, args, len);</div><div class='del'>-</div><div class='del'>-	nargv[0] = m;</div><div class='del'>-	if (argc &gt; 0) {</div><div class='del'>-	    MEMCPY(nargv + 1, argv, VALUE, argc);</div><div class='del'>-	}</div><div class='del'>-	result = rb_yield_values2(len, nargv);</div><div class='del'>-	ALLOCV_END(args);</div><div class='del'>-    }</div><div class='del'>-    if (result == Qundef) rb_iter_break();</div><div class='add'>+        VALUE args;</div><div class='add'>+        int len = rb_long2int((long)argc + 1);</div><div class='add'>+        VALUE *nargv = ALLOCV_N(VALUE, args, len);</div><div class='add'>+</div><div class='add'>+        nargv[0] = m;</div><div class='add'>+        if (argc &gt; 0) {</div><div class='add'>+            MEMCPY(nargv + 1, argv, VALUE, argc);</div><div class='add'>+        }</div><div class='add'>+        result = rb_yield_values2(len, nargv);</div><div class='add'>+        ALLOCV_END(args);</div><div class='add'>+    }</div><div class='add'>+    if (UNDEF_P(result)) rb_iter_break();</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1500,49 +1629,72 @@ lazy_init_block_i(RB_BLOCK_CALL_FUNC_ARGLIST(val, m))</div><div class='ctx'> #define LAZY_MEMO_BREAK_P(memo) ((memo)-&gt;memo_flags &amp; LAZY_MEMO_BREAK)</div><div class='ctx'> #define LAZY_MEMO_PACKED_P(memo) ((memo)-&gt;memo_flags &amp; LAZY_MEMO_PACKED)</div><div class='ctx'> #define LAZY_MEMO_SET_BREAK(memo) ((memo)-&gt;memo_flags |= LAZY_MEMO_BREAK)</div><div class='add'>+#define LAZY_MEMO_RESET_BREAK(memo) ((memo)-&gt;memo_flags &amp;= ~LAZY_MEMO_BREAK)</div><div class='ctx'> #define LAZY_MEMO_SET_VALUE(memo, value) MEMO_V2_SET(memo, value)</div><div class='ctx'> #define LAZY_MEMO_SET_PACKED(memo) ((memo)-&gt;memo_flags |= LAZY_MEMO_PACKED)</div><div class='ctx'> #define LAZY_MEMO_RESET_PACKED(memo) ((memo)-&gt;memo_flags &amp;= ~LAZY_MEMO_PACKED)</div><div class='ctx'> </div><div class='add'>+static VALUE lazy_yielder_result(struct MEMO *result, VALUE yielder, VALUE procs_array, VALUE memos, long i);</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-lazy_init_yielder(VALUE val, VALUE m, int argc, VALUE *argv)</div><div class='add'>+lazy_init_yielder(RB_BLOCK_CALL_FUNC_ARGLIST(_, m))</div><div class='ctx'> {</div><div class='ctx'>     VALUE yielder = RARRAY_AREF(m, 0);</div><div class='ctx'>     VALUE procs_array = RARRAY_AREF(m, 1);</div><div class='ctx'>     VALUE memos = rb_attr_get(yielder, id_memo);</div><div class='del'>-    long i = 0;</div><div class='ctx'>     struct MEMO *result;</div><div class='del'>-    int cont = 1;</div><div class='ctx'> </div><div class='del'>-    result = MEMO_NEW(Qnil, rb_enum_values_pack(argc, argv),</div><div class='del'>-		      argc &gt; 1 ? LAZY_MEMO_PACKED : 0);</div><div class='add'>+    result = MEMO_NEW(m, rb_enum_values_pack(argc, argv),</div><div class='add'>+                      argc &gt; 1 ? LAZY_MEMO_PACKED : 0);</div><div class='add'>+    return lazy_yielder_result(result, yielder, procs_array, memos, 0);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    for (i = 0; i &lt; RARRAY_LEN(procs_array); i++) {</div><div class='del'>-	VALUE proc = RARRAY_AREF(procs_array, i);</div><div class='del'>-	struct proc_entry *entry = proc_entry_ptr(proc);</div><div class='del'>-	if (!(*entry-&gt;fn-&gt;proc)(proc, result, memos, i)) {</div><div class='del'>-	    cont = 0;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+static VALUE</div><div class='add'>+lazy_yielder_yield(struct MEMO *result, long memo_index, int argc, const VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    VALUE m = result-&gt;v1;</div><div class='add'>+    VALUE yielder = RARRAY_AREF(m, 0);</div><div class='add'>+    VALUE procs_array = RARRAY_AREF(m, 1);</div><div class='add'>+    VALUE memos = rb_attr_get(yielder, id_memo);</div><div class='add'>+    LAZY_MEMO_SET_VALUE(result, rb_enum_values_pack(argc, argv));</div><div class='add'>+    if (argc &gt; 1)</div><div class='add'>+        LAZY_MEMO_SET_PACKED(result);</div><div class='add'>+    else</div><div class='add'>+        LAZY_MEMO_RESET_PACKED(result);</div><div class='add'>+    return lazy_yielder_result(result, yielder, procs_array, memos, memo_index);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+lazy_yielder_result(struct MEMO *result, VALUE yielder, VALUE procs_array, VALUE memos, long i)</div><div class='add'>+{</div><div class='add'>+    int cont = 1;</div><div class='add'>+</div><div class='add'>+    for (; i &lt; RARRAY_LEN(procs_array); i++) {</div><div class='add'>+        VALUE proc = RARRAY_AREF(procs_array, i);</div><div class='add'>+        struct proc_entry *entry = proc_entry_ptr(proc);</div><div class='add'>+        if (!(*entry-&gt;fn-&gt;proc)(proc, result, memos, i)) {</div><div class='add'>+            cont = 0;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (cont) {</div><div class='del'>-	rb_funcall2(yielder, idLTLT, 1, &amp;(result-&gt;memo_value));</div><div class='add'>+        rb_funcall2(yielder, idLTLT, 1, &amp;(result-&gt;memo_value));</div><div class='ctx'>     }</div><div class='ctx'>     if (LAZY_MEMO_BREAK_P(result)) {</div><div class='del'>-	rb_iter_break();</div><div class='add'>+        rb_iter_break();</div><div class='ctx'>     }</div><div class='ctx'>     return result-&gt;memo_value;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-lazy_init_block(VALUE val, VALUE m, int argc, VALUE *argv)</div><div class='add'>+lazy_init_block(RB_BLOCK_CALL_FUNC_ARGLIST(val, m))</div><div class='ctx'> {</div><div class='ctx'>     VALUE procs = RARRAY_AREF(m, 1);</div><div class='ctx'> </div><div class='ctx'>     rb_ivar_set(val, id_memo, rb_ary_new2(RARRAY_LEN(procs)));</div><div class='ctx'>     rb_block_call(RARRAY_AREF(m, 0), id_each, 0, 0,</div><div class='del'>-		  lazy_init_yielder, rb_ary_new3(2, val, procs));</div><div class='add'>+                  lazy_init_yielder, rb_ary_new3(2, val, procs));</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1555,17 +1707,17 @@ lazy_generator_init(VALUE enumerator, VALUE procs)</div><div class='ctx'>     struct enumerator *e = enumerator_ptr(enumerator);</div><div class='ctx'> </div><div class='ctx'>     if (RARRAY_LEN(procs) &gt; 0) {</div><div class='del'>-	struct generator *old_gen_ptr = generator_ptr(e-&gt;obj);</div><div class='del'>-	obj = old_gen_ptr-&gt;obj;</div><div class='add'>+        struct generator *old_gen_ptr = generator_ptr(e-&gt;obj);</div><div class='add'>+        obj = old_gen_ptr-&gt;obj;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	obj = enumerator;</div><div class='add'>+        obj = enumerator;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     generator = generator_allocate(rb_cGenerator);</div><div class='ctx'> </div><div class='ctx'>     rb_block_call(generator, id_initialize, 0, 0,</div><div class='del'>-		  lazy_init_block, rb_ary_new3(2, obj, procs));</div><div class='add'>+                  lazy_init_block, rb_ary_new3(2, obj, procs));</div><div class='ctx'> </div><div class='ctx'>     gen_ptr = generator_ptr(generator);</div><div class='ctx'>     gen_ptr-&gt;obj = obj;</div><div class='hunk'>@@ -1573,33 +1725,110 @@ lazy_generator_init(VALUE enumerator, VALUE procs)</div><div class='ctx'>     return generator;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+lazy_precheck(VALUE procs)</div><div class='add'>+{</div><div class='add'>+    if (RTEST(procs)) {</div><div class='add'>+        long num_procs = RARRAY_LEN(procs), i = num_procs;</div><div class='add'>+        while (i-- &gt; 0) {</div><div class='add'>+            VALUE proc = RARRAY_AREF(procs, i);</div><div class='add'>+            struct proc_entry *entry = proc_entry_ptr(proc);</div><div class='add'>+            lazyenum_precheck_func *precheck = entry-&gt;fn-&gt;precheck;</div><div class='add'>+            if (precheck &amp;&amp; !precheck(proc)) return FALSE;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return TRUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-class: Enumerator::Lazy</div><div class='add'>+ *</div><div class='add'>+ * Enumerator::Lazy is a special type of Enumerator, that allows constructing</div><div class='add'>+ * chains of operations without evaluating them immediately, and evaluating</div><div class='add'>+ * values on as-needed basis. In order to do so it redefines most of Enumerable</div><div class='add'>+ * methods so that they just construct another lazy enumerator.</div><div class='add'>+ *</div><div class='add'>+ * Enumerator::Lazy can be constructed from any Enumerable with the</div><div class='add'>+ * Enumerable#lazy method.</div><div class='add'>+ *</div><div class='add'>+ *    lazy = (1..Float::INFINITY).lazy.select(&amp;:odd?).drop(10).take_while { |i| i &lt; 30 }</div><div class='add'>+ *    # =&gt; #&lt;Enumerator::Lazy: #&lt;Enumerator::Lazy: #&lt;Enumerator::Lazy: #&lt;Enumerator::Lazy: 1..Infinity&gt;:select&gt;:drop(10)&gt;:take_while&gt;</div><div class='add'>+ *</div><div class='add'>+ * The real enumeration is performed when any non-redefined Enumerable method</div><div class='add'>+ * is called, like Enumerable#first or Enumerable#to_a (the latter is aliased</div><div class='add'>+ * as #force for more semantic code):</div><div class='add'>+ *</div><div class='add'>+ *    lazy.first(2)</div><div class='add'>+ *    #=&gt; [21, 23]</div><div class='add'>+ *</div><div class='add'>+ *    lazy.force</div><div class='add'>+ *    #=&gt; [21, 23, 25, 27, 29]</div><div class='add'>+ *</div><div class='add'>+ * Note that most Enumerable methods that could be called with or without</div><div class='add'>+ * a block, on Enumerator::Lazy will always require a block:</div><div class='add'>+ *</div><div class='add'>+ *    [1, 2, 3].map       #=&gt; #&lt;Enumerator: [1, 2, 3]:map&gt;</div><div class='add'>+ *    [1, 2, 3].lazy.map  # ArgumentError: tried to call lazy map without a block</div><div class='add'>+ *</div><div class='add'>+ * This class allows idiomatic calculations on long or infinite sequences, as well</div><div class='add'>+ * as chaining of calculations without constructing intermediate arrays.</div><div class='add'>+ *</div><div class='add'>+ * Example for working with a slowly calculated sequence:</div><div class='add'>+ *</div><div class='add'>+ *    require 'open-uri'</div><div class='add'>+ *</div><div class='add'>+ *    # This will fetch all URLs before selecting</div><div class='add'>+ *    # necessary data</div><div class='add'>+ *    URLS.map { |u| JSON.parse(URI.open(u).read) }</div><div class='add'>+ *      .select { |data| data.key?('stats') }</div><div class='add'>+ *      .first(5)</div><div class='add'>+ *</div><div class='add'>+ *    # This will fetch URLs one-by-one, only till</div><div class='add'>+ *    # there is enough data to satisfy the condition</div><div class='add'>+ *    URLS.lazy.map { |u| JSON.parse(URI.open(u).read) }</div><div class='add'>+ *      .select { |data| data.key?('stats') }</div><div class='add'>+ *      .first(5)</div><div class='add'>+ *</div><div class='add'>+ * Ending a chain with ".eager" generates a non-lazy enumerator, which</div><div class='add'>+ * is suitable for returning or passing to another method that expects</div><div class='add'>+ * a normal enumerator.</div><div class='add'>+ *</div><div class='add'>+ *    def active_items</div><div class='add'>+ *      groups</div><div class='add'>+ *        .lazy</div><div class='add'>+ *        .flat_map(&amp;:items)</div><div class='add'>+ *        .reject(&amp;:disabled)</div><div class='add'>+ *        .eager</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *    # This works lazily; if a checked item is found, it stops</div><div class='add'>+ *    # iteration and does not look into remaining groups.</div><div class='add'>+ *    first_checked = active_items.find(&amp;:checked)</div><div class='add'>+ *</div><div class='add'>+ *    # This returns an array of items like a normal enumerator does.</div><div class='add'>+ *    all_checked = active_items.select(&amp;:checked)</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   Lazy.new(obj, size=nil) { |yielder, *values| ... }</div><div class='add'>+ *   Lazy.new(obj, size=nil) { |yielder, *values| block }</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new Lazy enumerator. When the enumerator is actually enumerated</div><div class='ctx'>  * (e.g. by calling #force), +obj+ will be enumerated and each value passed</div><div class='ctx'>  * to the given block. The block can yield values back using +yielder+.</div><div class='del'>- * For example, to create a method +filter_map+ in both lazy and</div><div class='del'>- * non-lazy fashions:</div><div class='add'>+ * For example, to create a "filter+map" enumerator:</div><div class='ctx'>  *</div><div class='del'>- *   module Enumerable</div><div class='del'>- *     def filter_map(&amp;block)</div><div class='del'>- *       map(&amp;block).compact</div><div class='add'>+ *   def filter_map(sequence)</div><div class='add'>+ *     Lazy.new(sequence) do |yielder, *values|</div><div class='add'>+ *       result = yield *values</div><div class='add'>+ *       yielder &lt;&lt; result if result</div><div class='ctx'>  *     end</div><div class='ctx'>  *   end</div><div class='ctx'>  *</div><div class='del'>- *   class Enumerator::Lazy</div><div class='del'>- *     def filter_map</div><div class='del'>- *       Lazy.new(self) do |yielder, *values|</div><div class='del'>- *         result = yield *values</div><div class='del'>- *         yielder &lt;&lt; result if result</div><div class='del'>- *       end</div><div class='del'>- *     end</div><div class='del'>- *   end</div><div class='del'>- *</div><div class='del'>- *   (1..Float::INFINITY).lazy.filter_map{|i| i*i if i.even?}.first(5)</div><div class='del'>- *       # =&gt; [4, 16, 36, 64, 100]</div><div class='add'>+ *   filter_map(1..Float::INFINITY) {|i| i*i if i.even?}.first(5)</div><div class='add'>+ *   #=&gt; [4, 16, 36, 64, 100]</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_initialize(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -1609,15 +1838,15 @@ lazy_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     rb_check_arity(argc, 1, 2);</div><div class='ctx'>     if (!rb_block_given_p()) {</div><div class='del'>-	rb_raise(rb_eArgError, "tried to call lazy new without a block");</div><div class='add'>+        rb_raise(rb_eArgError, "tried to call lazy new without a block");</div><div class='ctx'>     }</div><div class='ctx'>     obj = argv[0];</div><div class='ctx'>     if (argc &gt; 1) {</div><div class='del'>-	size = argv[1];</div><div class='add'>+        size = argv[1];</div><div class='ctx'>     }</div><div class='ctx'>     generator = generator_allocate(rb_cGenerator);</div><div class='ctx'>     rb_block_call(generator, id_initialize, 0, 0, lazy_init_block_i, obj);</div><div class='del'>-    enumerator_init(self, generator, sym_each, 0, 0, 0, size);</div><div class='add'>+    enumerator_init(self, generator, sym_each, 0, 0, 0, size, 0);</div><div class='ctx'>     rb_ivar_set(self, id_receiver, obj);</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='hunk'>@@ -1632,7 +1861,8 @@ lazy_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  * Expands +lazy+ enumerator to an array.</div><div class='ctx'>  * See Enumerable#to_a.</div><div class='ctx'>  */</div><div class='del'>-static VALUE lazy_to_a(VALUE self)</div><div class='add'>+static VALUE</div><div class='add'>+lazy_to_a(VALUE self)</div><div class='ctx'> {</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -1643,14 +1873,15 @@ lazy_set_args(VALUE lazy, VALUE args)</div><div class='ctx'>     ID id = rb_frame_this_func();</div><div class='ctx'>     rb_ivar_set(lazy, id_method, ID2SYM(id));</div><div class='ctx'>     if (NIL_P(args)) {</div><div class='del'>-	/* Qfalse indicates that the arguments are empty */</div><div class='del'>-	rb_ivar_set(lazy, id_arguments, Qfalse);</div><div class='add'>+        /* Qfalse indicates that the arguments are empty */</div><div class='add'>+        rb_ivar_set(lazy, id_arguments, Qfalse);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_ivar_set(lazy, id_arguments, args);</div><div class='add'>+        rb_ivar_set(lazy, id_arguments, args);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if 0</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_set_method(VALUE lazy, VALUE args, rb_enumerator_size_func *size_fn)</div><div class='ctx'> {</div><div class='hunk'>@@ -1659,10 +1890,11 @@ lazy_set_method(VALUE lazy, VALUE args, rb_enumerator_size_func *size_fn)</div><div class='ctx'>     e-&gt;size_fn = size_fn;</div><div class='ctx'>     return lazy;</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_add_method(VALUE obj, int argc, VALUE *argv, VALUE args, VALUE memo,</div><div class='del'>-		const lazyenum_funcs *fn)</div><div class='add'>+                const lazyenum_funcs *fn)</div><div class='ctx'> {</div><div class='ctx'>     struct enumerator *new_e;</div><div class='ctx'>     VALUE new_obj;</div><div class='hunk'>@@ -1671,9 +1903,9 @@ lazy_add_method(VALUE obj, int argc, VALUE *argv, VALUE args, VALUE memo,</div><div class='ctx'>     struct enumerator *e = enumerator_ptr(obj);</div><div class='ctx'>     struct proc_entry *entry;</div><div class='ctx'>     VALUE entry_obj = TypedData_Make_Struct(rb_cObject, struct proc_entry,</div><div class='del'>-					    &amp;proc_entry_data_type, entry);</div><div class='add'>+                                            &amp;proc_entry_data_type, entry);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	entry-&gt;proc = rb_block_proc();</div><div class='add'>+        entry-&gt;proc = rb_block_proc();</div><div class='ctx'>     }</div><div class='ctx'>     entry-&gt;fn = fn;</div><div class='ctx'>     entry-&gt;memo = args;</div><div class='hunk'>@@ -1690,11 +1922,11 @@ lazy_add_method(VALUE obj, int argc, VALUE *argv, VALUE args, VALUE memo,</div><div class='ctx'>     new_e-&gt;procs = new_procs;</div><div class='ctx'> </div><div class='ctx'>     if (argc &gt; 0) {</div><div class='del'>-	new_e-&gt;meth = rb_to_id(*argv++);</div><div class='del'>-	--argc;</div><div class='add'>+        new_e-&gt;meth = rb_to_id(*argv++);</div><div class='add'>+        --argc;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	new_e-&gt;meth = id_each;</div><div class='add'>+        new_e-&gt;meth = id_each;</div><div class='ctx'>     }</div><div class='ctx'>     new_e-&gt;args = rb_ary_new4(argc, argv);</div><div class='ctx'>     return new_obj;</div><div class='hunk'>@@ -1704,11 +1936,9 @@ lazy_add_method(VALUE obj, int argc, VALUE *argv, VALUE args, VALUE memo,</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   e.lazy -&gt; lazy_enumerator</div><div class='ctx'>  *</div><div class='del'>- * Returns a lazy enumerator, whose methods map/collect,</div><div class='del'>- * flat_map/collect_concat, select/find_all, reject, grep, grep_v, zip, take,</div><div class='del'>- * take_while, drop, and drop_while enumerate values only on an</div><div class='del'>- * as-needed basis.  However, if a block is given to zip, values</div><div class='del'>- * are enumerated immediately.</div><div class='add'>+ * Returns an Enumerator::Lazy, which redefines most Enumerable</div><div class='add'>+ * methods to postpone enumeration and enumerate values only on an</div><div class='add'>+ * as-needed basis.</div><div class='ctx'>  *</div><div class='ctx'>  * === Example</div><div class='ctx'>  *</div><div class='hunk'>@@ -1734,33 +1964,33 @@ lazy_add_method(VALUE obj, int argc, VALUE *argv, VALUE args, VALUE memo,</div><div class='ctx'> static VALUE</div><div class='ctx'> enumerable_lazy(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE result = lazy_to_enum_i(obj, sym_each, 0, 0, lazyenum_size);</div><div class='add'>+    VALUE result = lazy_to_enum_i(obj, sym_each, 0, 0, lazyenum_size, rb_keyword_given_p());</div><div class='ctx'>     /* Qfalse indicates that the Enumerator::Lazy has no method name */</div><div class='ctx'>     rb_ivar_set(result, id_method, Qfalse);</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-lazy_to_enum_i(VALUE obj, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *size_fn)</div><div class='add'>+lazy_to_enum_i(VALUE obj, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *size_fn, int kw_splat)</div><div class='ctx'> {</div><div class='ctx'>     return enumerator_init(enumerator_allocate(rb_cLazy),</div><div class='del'>-			   obj, meth, argc, argv, size_fn, Qnil);</div><div class='add'>+                           obj, meth, argc, argv, size_fn, Qnil, kw_splat);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   lzy.to_enum(method = :each, *args)                 -&gt; lazy_enum</div><div class='del'>- *   lzy.enum_for(method = :each, *args)                -&gt; lazy_enum</div><div class='del'>- *   lzy.to_enum(method = :each, *args) {|*args| block} -&gt; lazy_enum</div><div class='del'>- *   lzy.enum_for(method = :each, *args){|*args| block} -&gt; lazy_enum</div><div class='add'>+ *   lzy.to_enum(method = :each, *args)                   -&gt; lazy_enum</div><div class='add'>+ *   lzy.enum_for(method = :each, *args)                  -&gt; lazy_enum</div><div class='add'>+ *   lzy.to_enum(method = :each, *args) {|*args| block }  -&gt; lazy_enum</div><div class='add'>+ *   lzy.enum_for(method = :each, *args) {|*args| block } -&gt; lazy_enum</div><div class='ctx'>  *</div><div class='del'>- * Similar to Kernel#to_enum, except it returns a lazy enumerator.</div><div class='add'>+ * Similar to Object#to_enum, except it returns a lazy enumerator.</div><div class='ctx'>  * This makes it easy to define Enumerable methods that will</div><div class='ctx'>  * naturally remain lazy if called from a lazy enumerator.</div><div class='ctx'>  *</div><div class='del'>- * For example, continuing from the example in Kernel#to_enum:</div><div class='add'>+ * For example, continuing from the example in Object#to_enum:</div><div class='ctx'>  *</div><div class='del'>- *   # See Kernel#to_enum for the definition of repeat</div><div class='add'>+ *   # See Object#to_enum for the definition of repeat</div><div class='ctx'>  *   r = 1..Float::INFINITY</div><div class='ctx'>  *   r.repeat(2).first(5) # =&gt; [1, 1, 2, 2, 3]</div><div class='ctx'>  *   r.repeat(2).class # =&gt; Enumerator</div><div class='hunk'>@@ -1773,20 +2003,43 @@ lazy_to_enum_i(VALUE obj, VALUE meth, int argc, const VALUE *argv, rb_enumerator</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_to_enum(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    VALUE lazy, meth = sym_each;</div><div class='add'>+    VALUE lazy, meth = sym_each, super_meth;</div><div class='ctx'> </div><div class='ctx'>     if (argc &gt; 0) {</div><div class='del'>-	--argc;</div><div class='del'>-	meth = *argv++;</div><div class='add'>+        --argc;</div><div class='add'>+        meth = *argv++;</div><div class='ctx'>     }</div><div class='del'>-    lazy = lazy_to_enum_i(self, meth, argc, argv, 0);</div><div class='add'>+    if (RTEST((super_meth = rb_hash_aref(lazy_use_super_method, meth)))) {</div><div class='add'>+        meth = super_meth;</div><div class='add'>+    }</div><div class='add'>+    lazy = lazy_to_enum_i(self, meth, argc, argv, 0, rb_keyword_given_p());</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	enumerator_ptr(lazy)-&gt;size = rb_block_proc();</div><div class='add'>+        enumerator_ptr(lazy)-&gt;size = rb_block_proc();</div><div class='ctx'>     }</div><div class='ctx'>     return lazy;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='add'>+lazy_eager_size(VALUE self, VALUE args, VALUE eobj)</div><div class='add'>+{</div><div class='add'>+    return enum_size(self);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   lzy.eager -&gt; enum</div><div class='add'>+ *</div><div class='add'>+ * Returns a non-lazy Enumerator converted from the lazy enumerator.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+lazy_eager(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return enumerator_init(enumerator_allocate(rb_cEnumerator),</div><div class='add'>+                           self, sym_each, 0, 0, lazy_eager_size, Qnil, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='ctx'> lazyenum_yield(VALUE proc_entry, struct MEMO *result)</div><div class='ctx'> {</div><div class='ctx'>     struct proc_entry *entry = proc_entry_ptr(proc_entry);</div><div class='hunk'>@@ -1800,9 +2053,9 @@ lazyenum_yield_values(VALUE proc_entry, struct MEMO *result)</div><div class='ctx'>     int argc = 1;</div><div class='ctx'>     const VALUE *argv = &amp;result-&gt;memo_value;</div><div class='ctx'>     if (LAZY_MEMO_PACKED_P(result)) {</div><div class='del'>-	const VALUE args = *argv;</div><div class='del'>-	argc = RARRAY_LENINT(args);</div><div class='del'>-	argv = RARRAY_CONST_PTR(args);</div><div class='add'>+        const VALUE args = *argv;</div><div class='add'>+        argc = RARRAY_LENINT(args);</div><div class='add'>+        argv = RARRAY_CONST_PTR(args);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_proc_call_with_block(entry-&gt;proc, argc, argv, Qnil);</div><div class='ctx'> }</div><div class='hunk'>@@ -1826,87 +2079,100 @@ static const lazyenum_funcs lazy_map_funcs = {</div><div class='ctx'>     lazy_map_proc, lazy_map_size,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.collect { |obj| block } -&gt; lazy_enumerator</div><div class='add'>+ *     lazy.map     { |obj| block } -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#map, but chains operation to be lazy-evaluated.</div><div class='add'>+ *</div><div class='add'>+ *     (1..Float::INFINITY).lazy.map {|i| i**2 }</div><div class='add'>+ *     #=&gt; #&lt;Enumerator::Lazy: #&lt;Enumerator::Lazy: 1..Infinity&gt;:map&gt;</div><div class='add'>+ *     (1..Float::INFINITY).lazy.map {|i| i**2 }.first(3)</div><div class='add'>+ *     #=&gt; [1, 4, 9]</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_map(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (!rb_block_given_p()) {</div><div class='del'>-	rb_raise(rb_eArgError, "tried to call lazy map without a block");</div><div class='add'>+        rb_raise(rb_eArgError, "tried to call lazy map without a block");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return lazy_add_method(obj, 0, 0, Qnil, Qnil, &amp;lazy_map_funcs);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+struct flat_map_i_arg {</div><div class='add'>+    struct MEMO *result;</div><div class='add'>+    long index;</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-lazy_flat_map_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, yielder))</div><div class='add'>+lazy_flat_map_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, y))</div><div class='ctx'> {</div><div class='del'>-    VALUE arg = rb_enum_values_pack(argc, argv);</div><div class='add'>+    struct flat_map_i_arg *arg = (struct flat_map_i_arg *)y;</div><div class='ctx'> </div><div class='del'>-    return rb_funcallv(yielder, idLTLT, 1, &amp;arg);</div><div class='add'>+    return lazy_yielder_yield(arg-&gt;result, arg-&gt;index, argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-lazy_flat_map_each(VALUE obj, VALUE yielder)</div><div class='add'>+static struct MEMO *</div><div class='add'>+lazy_flat_map_proc(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_index)</div><div class='ctx'> {</div><div class='del'>-    rb_block_call(obj, id_each, 0, 0, lazy_flat_map_i, yielder);</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='add'>+    VALUE value = lazyenum_yield_values(proc_entry, result);</div><div class='add'>+    VALUE ary = 0;</div><div class='add'>+    const long proc_index = memo_index + 1;</div><div class='add'>+    int break_p = LAZY_MEMO_BREAK_P(result);</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-lazy_flat_map_to_ary(VALUE obj, VALUE yielder)</div><div class='del'>-{</div><div class='del'>-    VALUE ary = rb_check_array_type(obj);</div><div class='del'>-    if (NIL_P(ary)) {</div><div class='del'>-	rb_funcall(yielder, idLTLT, 1, obj);</div><div class='add'>+    if (RB_TYPE_P(value, T_ARRAY)) {</div><div class='add'>+        ary = value;</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	long i;</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	    rb_funcall(yielder, idLTLT, 1, RARRAY_AREF(ary, i));</div><div class='del'>-	}</div><div class='add'>+    else if (rb_respond_to(value, id_force) &amp;&amp; rb_respond_to(value, id_each)) {</div><div class='add'>+        struct flat_map_i_arg arg = {.result = result, .index = proc_index};</div><div class='add'>+        LAZY_MEMO_RESET_BREAK(result);</div><div class='add'>+        rb_block_call(value, id_each, 0, 0, lazy_flat_map_i, (VALUE)&amp;arg);</div><div class='add'>+        if (break_p) LAZY_MEMO_SET_BREAK(result);</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-lazy_flat_map_proc(RB_BLOCK_CALL_FUNC_ARGLIST(val, m))</div><div class='del'>-{</div><div class='del'>-    VALUE result = rb_yield_values2(argc - 1, &amp;argv[1]);</div><div class='del'>-    if (RB_TYPE_P(result, T_ARRAY)) {</div><div class='del'>-	long i;</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(result); i++) {</div><div class='del'>-	    rb_funcall(argv[0], idLTLT, 1, RARRAY_AREF(result, i));</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	if (rb_respond_to(result, id_force) &amp;&amp; rb_respond_to(result, id_each)) {</div><div class='del'>-	    lazy_flat_map_each(result, argv[0]);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    lazy_flat_map_to_ary(result, argv[0]);</div><div class='del'>-	}</div><div class='add'>+    if (ary || !NIL_P(ary = rb_check_array_type(value))) {</div><div class='add'>+        long i;</div><div class='add'>+        LAZY_MEMO_RESET_BREAK(result);</div><div class='add'>+        for (i = 0; i + 1 &lt; RARRAY_LEN(ary); i++) {</div><div class='add'>+            const VALUE argv = RARRAY_AREF(ary, i);</div><div class='add'>+            lazy_yielder_yield(result, proc_index, 1, &amp;argv);</div><div class='add'>+        }</div><div class='add'>+        if (break_p) LAZY_MEMO_SET_BREAK(result);</div><div class='add'>+        if (i &gt;= RARRAY_LEN(ary)) return 0;</div><div class='add'>+        value = RARRAY_AREF(ary, i);</div><div class='ctx'>     }</div><div class='del'>-    return Qnil;</div><div class='add'>+    LAZY_MEMO_SET_VALUE(result, value);</div><div class='add'>+    LAZY_MEMO_RESET_PACKED(result);</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const lazyenum_funcs lazy_flat_map_funcs = {</div><div class='add'>+    lazy_flat_map_proc, 0,</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     lazy.collect_concat { |obj| block } -&gt; a_lazy_enumerator</div><div class='ctx'>  *     lazy.flat_map       { |obj| block } -&gt; a_lazy_enumerator</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns a new lazy enumerator with the concatenated results of running</div><div class='del'>- *  &lt;i&gt;block&lt;/i&gt; once for every element in &lt;i&gt;lazy&lt;/i&gt;.</div><div class='add'>+ *  +block+ once for every element in the lazy enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  *    ["foo", "bar"].lazy.flat_map {|i| i.each_char.lazy}.force</div><div class='ctx'>  *    #=&gt; ["f", "o", "o", "b", "a", "r"]</div><div class='ctx'>  *</div><div class='del'>- *  A value &lt;i&gt;x&lt;/i&gt; returned by &lt;i&gt;block&lt;/i&gt; is decomposed if either of</div><div class='add'>+ *  A value +x+ returned by +block+ is decomposed if either of</div><div class='ctx'>  *  the following conditions is true:</div><div class='ctx'>  *</div><div class='del'>- *    a) &lt;i&gt;x&lt;/i&gt; responds to both each and force, which means that</div><div class='del'>- *       &lt;i&gt;x&lt;/i&gt; is a lazy enumerator.</div><div class='del'>- *    b) &lt;i&gt;x&lt;/i&gt; is an array or responds to to_ary.</div><div class='add'>+ *  * +x+ responds to both each and force, which means that</div><div class='add'>+ *    +x+ is a lazy enumerator.</div><div class='add'>+ *  * +x+ is an array or responds to to_ary.</div><div class='ctx'>  *</div><div class='del'>- *  Otherwise, &lt;i&gt;x&lt;/i&gt; is contained as-is in the return value.</div><div class='add'>+ *  Otherwise, +x+ is contained as-is in the return value.</div><div class='ctx'>  *</div><div class='ctx'>  *    [{a:1}, {b:2}].lazy.flat_map {|i| i}.force</div><div class='ctx'>  *    #=&gt; [{:a=&gt;1}, {:b=&gt;2}]</div><div class='hunk'>@@ -1915,12 +2181,10 @@ static VALUE</div><div class='ctx'> lazy_flat_map(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (!rb_block_given_p()) {</div><div class='del'>-	rb_raise(rb_eArgError, "tried to call lazy flat_map without a block");</div><div class='add'>+        rb_raise(rb_eArgError, "tried to call lazy flat_map without a block");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return lazy_set_method(rb_block_call(rb_cLazy, id_new, 1, &amp;obj,</div><div class='del'>-					 lazy_flat_map_proc, 0),</div><div class='del'>-			   Qnil, 0);</div><div class='add'>+    return lazy_add_method(obj, 0, 0, Qnil, Qnil, &amp;lazy_flat_map_funcs);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct MEMO *</div><div class='hunk'>@@ -1935,17 +2199,59 @@ static const lazyenum_funcs lazy_select_funcs = {</div><div class='ctx'>     lazy_select_proc, 0,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.find_all { |obj| block } -&gt; lazy_enumerator</div><div class='add'>+ *     lazy.select   { |obj| block } -&gt; lazy_enumerator</div><div class='add'>+ *     lazy.filter   { |obj| block } -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#select, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_select(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (!rb_block_given_p()) {</div><div class='del'>-	rb_raise(rb_eArgError, "tried to call lazy select without a block");</div><div class='add'>+        rb_raise(rb_eArgError, "tried to call lazy select without a block");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return lazy_add_method(obj, 0, 0, Qnil, Qnil, &amp;lazy_select_funcs);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct MEMO *</div><div class='add'>+lazy_filter_map_proc(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_index)</div><div class='add'>+{</div><div class='add'>+    VALUE value = lazyenum_yield_values(proc_entry, result);</div><div class='add'>+    if (!RTEST(value)) return 0;</div><div class='add'>+    LAZY_MEMO_SET_VALUE(result, value);</div><div class='add'>+    LAZY_MEMO_RESET_PACKED(result);</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const lazyenum_funcs lazy_filter_map_funcs = {</div><div class='add'>+    lazy_filter_map_proc, 0,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.filter_map { |obj| block } -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#filter_map, but chains operation to be lazy-evaluated.</div><div class='add'>+ *</div><div class='add'>+ *    (1..).lazy.filter_map { |i| i * 2 if i.even? }.first(5)</div><div class='add'>+ *    #=&gt; [4, 8, 12, 16, 20]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+lazy_filter_map(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (!rb_block_given_p()) {</div><div class='add'>+        rb_raise(rb_eArgError, "tried to call lazy filter_map without a block");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return lazy_add_method(obj, 0, 0, Qnil, Qnil, &amp;lazy_filter_map_funcs);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct MEMO *</div><div class='ctx'> lazy_reject_proc(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_index)</div><div class='ctx'> {</div><div class='ctx'>     VALUE chain = lazyenum_yield(proc_entry, result);</div><div class='hunk'>@@ -1957,11 +2263,18 @@ static const lazyenum_funcs lazy_reject_funcs = {</div><div class='ctx'>     lazy_reject_proc, 0,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.reject { |obj| block } -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#reject, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_reject(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (!rb_block_given_p()) {</div><div class='del'>-	rb_raise(rb_eArgError, "tried to call lazy reject without a block");</div><div class='add'>+        rb_raise(rb_eArgError, "tried to call lazy reject without a block");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return lazy_add_method(obj, 0, 0, Qnil, Qnil, &amp;lazy_reject_funcs);</div><div class='hunk'>@@ -1998,11 +2311,19 @@ static const lazyenum_funcs lazy_grep_funcs = {</div><div class='ctx'>     lazy_grep_proc, 0,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.grep(pattern)                  -&gt; lazy_enumerator</div><div class='add'>+ *     lazy.grep(pattern) { |obj| block }  -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#grep, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_grep(VALUE obj, VALUE pattern)</div><div class='ctx'> {</div><div class='ctx'>     const lazyenum_funcs *const funcs = rb_block_given_p() ?</div><div class='del'>-	&amp;lazy_grep_iter_funcs : &amp;lazy_grep_funcs;</div><div class='add'>+        &amp;lazy_grep_iter_funcs : &amp;lazy_grep_funcs;</div><div class='ctx'>     return lazy_add_method(obj, 0, 0, pattern, rb_ary_new3(1, pattern), funcs);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2037,6 +2358,14 @@ static const lazyenum_funcs lazy_grep_v_funcs = {</div><div class='ctx'>     lazy_grep_v_proc, 0,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.grep_v(pattern)                  -&gt; lazy_enumerator</div><div class='add'>+ *     lazy.grep_v(pattern) { |obj| block }  -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#grep_v, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_grep_v(VALUE obj, VALUE pattern)</div><div class='ctx'> {</div><div class='hunk'>@@ -2052,94 +2381,101 @@ call_next(VALUE obj)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-next_stopped(VALUE obj)</div><div class='add'>+next_stopped(VALUE obj, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-lazy_zip_arrays_func(RB_BLOCK_CALL_FUNC_ARGLIST(val, arrays))</div><div class='add'>+static struct MEMO *</div><div class='add'>+lazy_zip_arrays_func(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_index)</div><div class='ctx'> {</div><div class='del'>-    VALUE yielder, ary, memo;</div><div class='del'>-    long i, count;</div><div class='del'>-</div><div class='del'>-    yielder = argv[0];</div><div class='del'>-    memo = rb_attr_get(yielder, id_memo);</div><div class='del'>-    count = NIL_P(memo) ? 0 : NUM2LONG(memo);</div><div class='add'>+    struct proc_entry *entry = proc_entry_ptr(proc_entry);</div><div class='add'>+    VALUE ary, arrays = entry-&gt;memo;</div><div class='add'>+    VALUE memo = rb_ary_entry(memos, memo_index);</div><div class='add'>+    long i, count = NIL_P(memo) ? 0 : NUM2LONG(memo);</div><div class='ctx'> </div><div class='ctx'>     ary = rb_ary_new2(RARRAY_LEN(arrays) + 1);</div><div class='del'>-    rb_ary_push(ary, argv[1]);</div><div class='add'>+    rb_ary_push(ary, result-&gt;memo_value);</div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(arrays); i++) {</div><div class='del'>-	rb_ary_push(ary, rb_ary_entry(RARRAY_AREF(arrays, i), count));</div><div class='add'>+        rb_ary_push(ary, rb_ary_entry(RARRAY_AREF(arrays, i), count));</div><div class='ctx'>     }</div><div class='del'>-    rb_funcall(yielder, idLTLT, 1, ary);</div><div class='del'>-    rb_ivar_set(yielder, id_memo, LONG2NUM(++count));</div><div class='del'>-    return Qnil;</div><div class='add'>+    LAZY_MEMO_SET_VALUE(result, ary);</div><div class='add'>+    LAZY_MEMO_SET_PACKED(result);</div><div class='add'>+    rb_ary_store(memos, memo_index, LONG2NUM(++count));</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-lazy_zip_func(RB_BLOCK_CALL_FUNC_ARGLIST(val, zip_args))</div><div class='add'>+static struct MEMO *</div><div class='add'>+lazy_zip_func(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_index)</div><div class='ctx'> {</div><div class='del'>-    VALUE yielder, ary, arg, v;</div><div class='add'>+    struct proc_entry *entry = proc_entry_ptr(proc_entry);</div><div class='add'>+    VALUE arg = rb_ary_entry(memos, memo_index);</div><div class='add'>+    VALUE zip_args = entry-&gt;memo;</div><div class='add'>+    VALUE ary, v;</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='del'>-    yielder = argv[0];</div><div class='del'>-    arg = rb_attr_get(yielder, id_memo);</div><div class='ctx'>     if (NIL_P(arg)) {</div><div class='del'>-	arg = rb_ary_new2(RARRAY_LEN(zip_args));</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(zip_args); i++) {</div><div class='del'>-	    rb_ary_push(arg, rb_funcall(RARRAY_AREF(zip_args, i), id_to_enum, 0));</div><div class='del'>-	}</div><div class='del'>-	rb_ivar_set(yielder, id_memo, arg);</div><div class='add'>+        arg = rb_ary_new2(RARRAY_LEN(zip_args));</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(zip_args); i++) {</div><div class='add'>+            rb_ary_push(arg, rb_funcall(RARRAY_AREF(zip_args, i), id_to_enum, 0));</div><div class='add'>+        }</div><div class='add'>+        rb_ary_store(memos, memo_index, arg);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ary = rb_ary_new2(RARRAY_LEN(arg) + 1);</div><div class='del'>-    v = Qnil;</div><div class='del'>-    if (--argc &gt; 0) {</div><div class='del'>-	++argv;</div><div class='del'>-	v = argc &gt; 1 ? rb_ary_new_from_values(argc, argv) : *argv;</div><div class='del'>-    }</div><div class='del'>-    rb_ary_push(ary, v);</div><div class='add'>+    rb_ary_push(ary, result-&gt;memo_value);</div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(arg); i++) {</div><div class='del'>-	v = rb_rescue2(call_next, RARRAY_AREF(arg, i), next_stopped, 0,</div><div class='del'>-		       rb_eStopIteration, (VALUE)0);</div><div class='del'>-	rb_ary_push(ary, v);</div><div class='add'>+        v = rb_rescue2(call_next, RARRAY_AREF(arg, i), next_stopped, 0,</div><div class='add'>+                       rb_eStopIteration, (VALUE)0);</div><div class='add'>+        rb_ary_push(ary, v);</div><div class='ctx'>     }</div><div class='del'>-    rb_funcall(yielder, idLTLT, 1, ary);</div><div class='del'>-    return Qnil;</div><div class='add'>+    LAZY_MEMO_SET_VALUE(result, ary);</div><div class='add'>+    LAZY_MEMO_SET_PACKED(result);</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const lazyenum_funcs lazy_zip_funcs[] = {</div><div class='add'>+    {lazy_zip_func, lazy_receiver_size,},</div><div class='add'>+    {lazy_zip_arrays_func, lazy_receiver_size,},</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.zip(arg, ...)                  -&gt; lazy_enumerator</div><div class='add'>+ *     lazy.zip(arg, ...) { |arr| block }  -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#zip, but chains operation to be lazy-evaluated.</div><div class='add'>+ *  However, if a block is given to zip, values are enumerated immediately.</div><div class='add'>+ */</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_zip(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary, v;</div><div class='ctx'>     long i;</div><div class='del'>-    rb_block_call_func *func = lazy_zip_arrays_func;</div><div class='add'>+    const lazyenum_funcs *funcs = &amp;lazy_zip_funcs[1];</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	return rb_call_super(argc, argv);</div><div class='add'>+        return rb_call_super(argc, argv);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ary = rb_ary_new2(argc);</div><div class='ctx'>     for (i = 0; i &lt; argc; i++) {</div><div class='del'>-	v = rb_check_array_type(argv[i]);</div><div class='del'>-	if (NIL_P(v)) {</div><div class='del'>-	    for (; i &lt; argc; i++) {</div><div class='del'>-		if (!rb_respond_to(argv[i], id_each)) {</div><div class='del'>-		    rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (must respond to :each)",</div><div class='del'>-			     rb_obj_class(argv[i]));</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    ary = rb_ary_new4(argc, argv);</div><div class='del'>-	    func = lazy_zip_func;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	rb_ary_push(ary, v);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return lazy_set_method(rb_block_call(rb_cLazy, id_new, 1, &amp;obj,</div><div class='del'>-					 func, ary),</div><div class='del'>-			   ary, lazy_receiver_size);</div><div class='add'>+        v = rb_check_array_type(argv[i]);</div><div class='add'>+        if (NIL_P(v)) {</div><div class='add'>+            for (; i &lt; argc; i++) {</div><div class='add'>+                if (!rb_respond_to(argv[i], id_each)) {</div><div class='add'>+                    rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (must respond to :each)",</div><div class='add'>+                             rb_obj_class(argv[i]));</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            ary = rb_ary_new4(argc, argv);</div><div class='add'>+            funcs = &amp;lazy_zip_funcs[0];</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        rb_ary_push(ary, v);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return lazy_add_method(obj, 0, 0, ary, ary, funcs);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct MEMO *</div><div class='hunk'>@@ -2150,17 +2486,12 @@ lazy_take_proc(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_ind</div><div class='ctx'>     VALUE memo = rb_ary_entry(memos, memo_index);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(memo)) {</div><div class='del'>-	memo = entry-&gt;memo;</div><div class='add'>+        memo = entry-&gt;memo;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     remain = NUM2LONG(memo);</div><div class='del'>-    if (remain == 0) {</div><div class='del'>-	LAZY_MEMO_SET_BREAK(result);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	if (--remain == 0) LAZY_MEMO_SET_BREAK(result);</div><div class='del'>-	rb_ary_store(memos, memo_index, LONG2NUM(remain));</div><div class='del'>-    }</div><div class='add'>+    if (--remain == 0) LAZY_MEMO_SET_BREAK(result);</div><div class='add'>+    rb_ary_store(memos, memo_index, LONG2NUM(remain));</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2169,32 +2500,40 @@ lazy_take_size(VALUE entry, VALUE receiver)</div><div class='ctx'> {</div><div class='ctx'>     long len = NUM2LONG(RARRAY_AREF(rb_ivar_get(entry, id_arguments), 0));</div><div class='ctx'>     if (NIL_P(receiver) || (FIXNUM_P(receiver) &amp;&amp; FIX2LONG(receiver) &lt; len))</div><div class='del'>-	return receiver;</div><div class='add'>+        return receiver;</div><div class='ctx'>     return LONG2NUM(len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+lazy_take_precheck(VALUE proc_entry)</div><div class='add'>+{</div><div class='add'>+    struct proc_entry *entry = proc_entry_ptr(proc_entry);</div><div class='add'>+    return entry-&gt;memo != INT2FIX(0);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static const lazyenum_funcs lazy_take_funcs = {</div><div class='del'>-    lazy_take_proc, lazy_take_size,</div><div class='add'>+    lazy_take_proc, lazy_take_size, lazy_take_precheck,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.take(n)               -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#take, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_take(VALUE obj, VALUE n)</div><div class='ctx'> {</div><div class='ctx'>     long len = NUM2LONG(n);</div><div class='del'>-    int argc = 0;</div><div class='del'>-    VALUE argv[2];</div><div class='ctx'> </div><div class='ctx'>     if (len &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "attempt to take negative size");</div><div class='add'>+        rb_raise(rb_eArgError, "attempt to take negative size");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (len == 0) {</div><div class='del'>-       argv[0] = sym_cycle;</div><div class='del'>-       argv[1] = INT2NUM(0);</div><div class='del'>-       argc = 2;</div><div class='del'>-    }</div><div class='add'>+    n = LONG2NUM(len);          /* no more conversion */</div><div class='ctx'> </div><div class='del'>-    return lazy_add_method(obj, argc, argv, n, rb_ary_new3(1, n), &amp;lazy_take_funcs);</div><div class='add'>+    return lazy_add_method(obj, 0, 0, n, rb_ary_new3(1, n), &amp;lazy_take_funcs);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct MEMO *</div><div class='hunk'>@@ -2202,8 +2541,8 @@ lazy_take_while_proc(VALUE proc_entry, struct MEMO *result, VALUE memos, long me</div><div class='ctx'> {</div><div class='ctx'>     VALUE take = lazyenum_yield_values(proc_entry, result);</div><div class='ctx'>     if (!RTEST(take)) {</div><div class='del'>-	LAZY_MEMO_SET_BREAK(result);</div><div class='del'>-	return 0;</div><div class='add'>+        LAZY_MEMO_SET_BREAK(result);</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='hunk'>@@ -2212,11 +2551,18 @@ static const lazyenum_funcs lazy_take_while_funcs = {</div><div class='ctx'>     lazy_take_while_proc, 0,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.take_while { |obj| block } -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#take_while, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_take_while(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (!rb_block_given_p()) {</div><div class='del'>-	rb_raise(rb_eArgError, "tried to call lazy take_while without a block");</div><div class='add'>+        rb_raise(rb_eArgError, "tried to call lazy take_while without a block");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return lazy_add_method(obj, 0, 0, Qnil, Qnil, &amp;lazy_take_while_funcs);</div><div class='hunk'>@@ -2227,10 +2573,10 @@ lazy_drop_size(VALUE proc_entry, VALUE receiver)</div><div class='ctx'> {</div><div class='ctx'>     long len = NUM2LONG(RARRAY_AREF(rb_ivar_get(proc_entry, id_arguments), 0));</div><div class='ctx'>     if (NIL_P(receiver))</div><div class='del'>-	return receiver;</div><div class='add'>+        return receiver;</div><div class='ctx'>     if (FIXNUM_P(receiver)) {</div><div class='del'>-	len = FIX2LONG(receiver) - len;</div><div class='del'>-	return LONG2FIX(len &lt; 0 ? 0 : len);</div><div class='add'>+        len = FIX2LONG(receiver) - len;</div><div class='add'>+        return LONG2FIX(len &lt; 0 ? 0 : len);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_funcall(receiver, '-', 1, LONG2NUM(len));</div><div class='ctx'> }</div><div class='hunk'>@@ -2243,13 +2589,13 @@ lazy_drop_proc(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_ind</div><div class='ctx'>     VALUE memo = rb_ary_entry(memos, memo_index);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(memo)) {</div><div class='del'>-	memo = entry-&gt;memo;</div><div class='add'>+        memo = entry-&gt;memo;</div><div class='ctx'>     }</div><div class='ctx'>     remain = NUM2LONG(memo);</div><div class='ctx'>     if (remain &gt; 0) {</div><div class='del'>-	--remain;</div><div class='del'>-	rb_ary_store(memos, memo_index, LONG2NUM(remain));</div><div class='del'>-	return 0;</div><div class='add'>+        --remain;</div><div class='add'>+        rb_ary_store(memos, memo_index, LONG2NUM(remain));</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='hunk'>@@ -2259,6 +2605,13 @@ static const lazyenum_funcs lazy_drop_funcs = {</div><div class='ctx'>     lazy_drop_proc, lazy_drop_size,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.drop(n)               -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#drop, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_drop(VALUE obj, VALUE n)</div><div class='ctx'> {</div><div class='hunk'>@@ -2268,7 +2621,7 @@ lazy_drop(VALUE obj, VALUE n)</div><div class='ctx'>     argv[1] = n;</div><div class='ctx'> </div><div class='ctx'>     if (len &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "attempt to drop negative size");</div><div class='add'>+        rb_raise(rb_eArgError, "attempt to drop negative size");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return lazy_add_method(obj, 2, argv, n, rb_ary_new3(1, n), &amp;lazy_drop_funcs);</div><div class='hunk'>@@ -2281,13 +2634,13 @@ lazy_drop_while_proc(VALUE proc_entry, struct MEMO* result, VALUE memos, long me</div><div class='ctx'>     VALUE memo = rb_ary_entry(memos, memo_index);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(memo)) {</div><div class='del'>-	memo = entry-&gt;memo;</div><div class='add'>+        memo = entry-&gt;memo;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!RTEST(memo)) {</div><div class='del'>-	VALUE drop = lazyenum_yield_values(proc_entry, result);</div><div class='del'>-	if (RTEST(drop)) return 0;</div><div class='del'>-	rb_ary_store(memos, memo_index, Qtrue);</div><div class='add'>+        VALUE drop = lazyenum_yield_values(proc_entry, result);</div><div class='add'>+        if (RTEST(drop)) return 0;</div><div class='add'>+        rb_ary_store(memos, memo_index, Qtrue);</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='hunk'>@@ -2296,11 +2649,18 @@ static const lazyenum_funcs lazy_drop_while_funcs = {</div><div class='ctx'>     lazy_drop_while_proc, 0,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.drop_while { |obj| block }  -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#drop_while, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_drop_while(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (!rb_block_given_p()) {</div><div class='del'>-	rb_raise(rb_eArgError, "tried to call lazy drop_while without a block");</div><div class='add'>+        rb_raise(rb_eArgError, "tried to call lazy drop_while without a block");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return lazy_add_method(obj, 0, 0, Qfalse, Qnil, &amp;lazy_drop_while_funcs);</div><div class='hunk'>@@ -2343,6 +2703,14 @@ static const lazyenum_funcs lazy_uniq_funcs = {</div><div class='ctx'>     lazy_uniq_proc, 0,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.uniq                  -&gt; lazy_enumerator</div><div class='add'>+ *     lazy.uniq { |item| block } -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#uniq, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_uniq(VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -2351,12 +2719,167 @@ lazy_uniq(VALUE obj)</div><div class='ctx'>     return lazy_add_method(obj, 0, 0, Qnil, Qnil, funcs);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static struct MEMO *</div><div class='add'>+lazy_compact_proc(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_index)</div><div class='add'>+{</div><div class='add'>+    if (NIL_P(result-&gt;memo_value)) return 0;</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const lazyenum_funcs lazy_compact_funcs = {</div><div class='add'>+    lazy_compact_proc, 0,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.compact                  -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#compact, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+lazy_compact(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return lazy_add_method(obj, 0, 0, Qnil, Qnil, &amp;lazy_compact_funcs);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct MEMO *</div><div class='add'>+lazy_with_index_proc(VALUE proc_entry, struct MEMO* result, VALUE memos, long memo_index)</div><div class='add'>+{</div><div class='add'>+    struct proc_entry *entry = proc_entry_ptr(proc_entry);</div><div class='add'>+    VALUE memo = rb_ary_entry(memos, memo_index);</div><div class='add'>+    VALUE argv[2];</div><div class='add'>+</div><div class='add'>+    if (NIL_P(memo)) {</div><div class='add'>+        memo = entry-&gt;memo;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    argv[0] = result-&gt;memo_value;</div><div class='add'>+    argv[1] = memo;</div><div class='add'>+    if (entry-&gt;proc) {</div><div class='add'>+        rb_proc_call_with_block(entry-&gt;proc, 2, argv, Qnil);</div><div class='add'>+        LAZY_MEMO_RESET_PACKED(result);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        LAZY_MEMO_SET_VALUE(result, rb_ary_new_from_values(2, argv));</div><div class='add'>+        LAZY_MEMO_SET_PACKED(result);</div><div class='add'>+    }</div><div class='add'>+    rb_ary_store(memos, memo_index, LONG2NUM(NUM2LONG(memo) + 1));</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+lazy_with_index_size(VALUE proc, VALUE receiver)</div><div class='add'>+{</div><div class='add'>+    return receiver;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const lazyenum_funcs lazy_with_index_funcs = {</div><div class='add'>+    lazy_with_index_proc, lazy_with_index_size,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   lazy.with_index(offset = 0) {|(*args), idx| block }</div><div class='add'>+ *   lazy.with_index(offset = 0)</div><div class='add'>+ *</div><div class='add'>+ * If a block is given, returns a lazy enumerator that will</div><div class='add'>+ * iterate over the given block for each element</div><div class='add'>+ * with an index, which starts from +offset+, and returns a</div><div class='add'>+ * lazy enumerator that yields the same values (without the index).</div><div class='add'>+ *</div><div class='add'>+ * If a block is not given, returns a new lazy enumerator that</div><div class='add'>+ * includes the index, starting from +offset+.</div><div class='add'>+ *</div><div class='add'>+ * +offset+:: the starting index to use</div><div class='add'>+ *</div><div class='add'>+ * See Enumerator#with_index.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+lazy_with_index(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE memo;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "01", &amp;memo);</div><div class='add'>+    if (NIL_P(memo))</div><div class='add'>+        memo = LONG2NUM(0);</div><div class='add'>+</div><div class='add'>+    return lazy_add_method(obj, 0, 0, memo, rb_ary_new_from_values(1, &amp;memo), &amp;lazy_with_index_funcs);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0 /* for RDoc */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.chunk { |elt| ... }                       -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#chunk, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+lazy_chunk(VALUE self)</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.chunk_while {|elt_before, elt_after| bool } -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#chunk_while, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+lazy_chunk_while(VALUE self)</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.slice_after(pattern)       -&gt; lazy_enumerator</div><div class='add'>+ *     lazy.slice_after { |elt| bool } -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#slice_after, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+lazy_slice_after(VALUE self)</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.slice_before(pattern)       -&gt; lazy_enumerator</div><div class='add'>+ *     lazy.slice_before { |elt| bool } -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#slice_before, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+lazy_slice_before(VALUE self)</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     lazy.slice_when {|elt_before, elt_after| bool } -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Like Enumerable#slice_when, but chains operation to be lazy-evaluated.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+lazy_slice_when(VALUE self)</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+# endif</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_super(int argc, VALUE *argv, VALUE lazy)</div><div class='ctx'> {</div><div class='ctx'>     return enumerable_lazy(rb_call_super(argc, argv));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     enum.lazy -&gt; lazy_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns self.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> lazy_lazy(VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -2417,6 +2940,188 @@ stop_result(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ * Producer</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+producer_mark(void *p)</div><div class='add'>+{</div><div class='add'>+    struct producer *ptr = p;</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;init);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;proc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+producer_compact(void *p)</div><div class='add'>+{</div><div class='add'>+    struct producer *ptr = p;</div><div class='add'>+    ptr-&gt;init = rb_gc_location(ptr-&gt;init);</div><div class='add'>+    ptr-&gt;proc = rb_gc_location(ptr-&gt;proc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define producer_free RUBY_TYPED_DEFAULT_FREE</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+producer_memsize(const void *p)</div><div class='add'>+{</div><div class='add'>+    return sizeof(struct producer);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t producer_data_type = {</div><div class='add'>+    "producer",</div><div class='add'>+    {</div><div class='add'>+        producer_mark,</div><div class='add'>+        producer_free,</div><div class='add'>+        producer_memsize,</div><div class='add'>+        producer_compact,</div><div class='add'>+    },</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static struct producer *</div><div class='add'>+producer_ptr(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct producer *ptr;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(obj, struct producer, &amp;producer_data_type, ptr);</div><div class='add'>+    if (!ptr || UNDEF_P(ptr-&gt;proc)) {</div><div class='add'>+        rb_raise(rb_eArgError, "uninitialized producer");</div><div class='add'>+    }</div><div class='add'>+    return ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+producer_allocate(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    struct producer *ptr;</div><div class='add'>+    VALUE obj;</div><div class='add'>+</div><div class='add'>+    obj = TypedData_Make_Struct(klass, struct producer, &amp;producer_data_type, ptr);</div><div class='add'>+    ptr-&gt;init = Qundef;</div><div class='add'>+    ptr-&gt;proc = Qundef;</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+producer_init(VALUE obj, VALUE init, VALUE proc)</div><div class='add'>+{</div><div class='add'>+    struct producer *ptr;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(obj, struct producer, &amp;producer_data_type, ptr);</div><div class='add'>+</div><div class='add'>+    if (!ptr) {</div><div class='add'>+        rb_raise(rb_eArgError, "unallocated producer");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ptr-&gt;init = init;</div><div class='add'>+    ptr-&gt;proc = proc;</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+producer_each_stop(VALUE dummy, VALUE exc)</div><div class='add'>+{</div><div class='add'>+    return rb_attr_get(exc, id_result);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NORETURN(static VALUE producer_each_i(VALUE obj));</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+producer_each_i(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct producer *ptr;</div><div class='add'>+    VALUE init, proc, curr;</div><div class='add'>+</div><div class='add'>+    ptr = producer_ptr(obj);</div><div class='add'>+    init = ptr-&gt;init;</div><div class='add'>+    proc = ptr-&gt;proc;</div><div class='add'>+</div><div class='add'>+    if (UNDEF_P(init)) {</div><div class='add'>+        curr = Qnil;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_yield(init);</div><div class='add'>+        curr = init;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    for (;;) {</div><div class='add'>+        curr = rb_funcall(proc, id_call, 1, curr);</div><div class='add'>+        rb_yield(curr);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    UNREACHABLE_RETURN(Qnil);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+producer_each(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    rb_need_block();</div><div class='add'>+</div><div class='add'>+    return rb_rescue2(producer_each_i, obj, producer_each_stop, (VALUE)0, rb_eStopIteration, (VALUE)0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+producer_size(VALUE obj, VALUE args, VALUE eobj)</div><div class='add'>+{</div><div class='add'>+    return DBL2NUM(HUGE_VAL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Enumerator.produce(initial = nil) { |prev| block } -&gt; enumerator</div><div class='add'>+ *</div><div class='add'>+ * Creates an infinite enumerator from any block, just called over and</div><div class='add'>+ * over.  The result of the previous iteration is passed to the next one.</div><div class='add'>+ * If +initial+ is provided, it is passed to the first iteration, and</div><div class='add'>+ * becomes the first element of the enumerator; if it is not provided,</div><div class='add'>+ * the first iteration receives +nil+, and its result becomes the first</div><div class='add'>+ * element of the iterator.</div><div class='add'>+ *</div><div class='add'>+ * Raising StopIteration from the block stops an iteration.</div><div class='add'>+ *</div><div class='add'>+ *   Enumerator.produce(1, &amp;:succ)   # =&gt; enumerator of 1, 2, 3, 4, ....</div><div class='add'>+ *</div><div class='add'>+ *   Enumerator.produce { rand(10) } # =&gt; infinite random number sequence</div><div class='add'>+ *</div><div class='add'>+ *   ancestors = Enumerator.produce(node) { |prev| node = prev.parent or raise StopIteration }</div><div class='add'>+ *   enclosing_section = ancestors.find { |n| n.type == :section }</div><div class='add'>+ *</div><div class='add'>+ * Using ::produce together with Enumerable methods like Enumerable#detect,</div><div class='add'>+ * Enumerable#slice_after, Enumerable#take_while can provide Enumerator-based alternatives</div><div class='add'>+ * for +while+ and +until+ cycles:</div><div class='add'>+ *</div><div class='add'>+ *   # Find next Tuesday</div><div class='add'>+ *   require "date"</div><div class='add'>+ *   Enumerator.produce(Date.today, &amp;:succ).detect(&amp;:tuesday?)</div><div class='add'>+ *</div><div class='add'>+ *   # Simple lexer:</div><div class='add'>+ *   require "strscan"</div><div class='add'>+ *   scanner = StringScanner.new("7+38/6")</div><div class='add'>+ *   PATTERN = %r{\d+|[-/+*]}</div><div class='add'>+ *   Enumerator.produce { scanner.scan(PATTERN) }.slice_after { scanner.eos? }.first</div><div class='add'>+ *   # =&gt; ["7", "+", "38", "/", "6"]</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+enumerator_s_produce(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE init, producer;</div><div class='add'>+</div><div class='add'>+    if (!rb_block_given_p()) rb_raise(rb_eArgError, "no block given");</div><div class='add'>+</div><div class='add'>+    if (rb_scan_args(argc, argv, "01", &amp;init) == 0) {</div><div class='add'>+        init = Qundef;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    producer = producer_init(producer_allocate(rb_cEnumProducer), init, rb_block_proc());</div><div class='add'>+</div><div class='add'>+    return rb_enumeratorize_with_size_kw(producer, sym_each, 0, 0, producer_size, RB_NO_KEYWORDS);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  * Document-class: Enumerator::Chain</div><div class='ctx'>  *</div><div class='ctx'>  * Enumerator::Chain is a subclass of Enumerator, which represents a</div><div class='hunk'>@@ -2430,7 +3135,14 @@ static void</div><div class='ctx'> enum_chain_mark(void *p)</div><div class='ctx'> {</div><div class='ctx'>     struct enum_chain *ptr = p;</div><div class='del'>-    rb_gc_mark(ptr-&gt;enums);</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;enums);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+enum_chain_compact(void *p)</div><div class='add'>+{</div><div class='add'>+    struct enum_chain *ptr = p;</div><div class='add'>+    ptr-&gt;enums = rb_gc_location(ptr-&gt;enums);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define enum_chain_free RUBY_TYPED_DEFAULT_FREE</div><div class='hunk'>@@ -2447,6 +3159,7 @@ static const rb_data_type_t enum_chain_data_type = {</div><div class='ctx'>         enum_chain_mark,</div><div class='ctx'>         enum_chain_free,</div><div class='ctx'>         enum_chain_memsize,</div><div class='add'>+        enum_chain_compact,</div><div class='ctx'>     },</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'> };</div><div class='hunk'>@@ -2457,7 +3170,7 @@ enum_chain_ptr(VALUE obj)</div><div class='ctx'>     struct enum_chain *ptr;</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(obj, struct enum_chain, &amp;enum_chain_data_type, ptr);</div><div class='del'>-    if (!ptr || ptr-&gt;enums == Qundef) {</div><div class='add'>+    if (!ptr || UNDEF_P(ptr-&gt;enums)) {</div><div class='ctx'>         rb_raise(rb_eArgError, "uninitialized chain");</div><div class='ctx'>     }</div><div class='ctx'>     return ptr;</div><div class='hunk'>@@ -2504,6 +3217,21 @@ enum_chain_initialize(VALUE obj, VALUE enums)</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+new_enum_chain(VALUE enums)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+    VALUE obj = enum_chain_initialize(enum_chain_allocate(rb_cEnumChain), enums);</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(enums); i++) {</div><div class='add'>+        if (RTEST(rb_obj_is_kind_of(RARRAY_AREF(enums, i), rb_cLazy))) {</div><div class='add'>+            return enumerable_lazy(obj);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> enum_chain_init_copy(VALUE obj, VALUE orig)</div><div class='hunk'>@@ -2532,7 +3260,7 @@ enum_chain_total_size(VALUE enums)</div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(enums); i++) {</div><div class='ctx'>         VALUE size = enum_size(RARRAY_AREF(enums, i));</div><div class='ctx'> </div><div class='del'>-        if (NIL_P(size) || (RB_TYPE_P(size, T_FLOAT) &amp;&amp; isinf(NUM2DBL(size)))) {</div><div class='add'>+        if (NIL_P(size) || (RB_FLOAT_TYPE_P(size) &amp;&amp; isinf(NUM2DBL(size)))) {</div><div class='ctx'>             return size;</div><div class='ctx'>         }</div><div class='ctx'>         if (!RB_INTEGER_TYPE_P(size)) {</div><div class='hunk'>@@ -2567,12 +3295,6 @@ enum_chain_enum_size(VALUE obj, VALUE args, VALUE eobj)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-enum_chain_yield_block(VALUE arg, VALUE block, int argc, VALUE *argv)</div><div class='del'>-{</div><div class='del'>-    return rb_funcallv(block, id_call, argc, argv);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='ctx'> enum_chain_enum_no_size(VALUE obj, VALUE args, VALUE eobj)</div><div class='ctx'> {</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -2603,10 +3325,9 @@ enum_chain_each(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     enums = objptr-&gt;enums;</div><div class='ctx'>     block = rb_block_proc();</div><div class='ctx'> </div><div class='del'>-</div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(enums); i++) {</div><div class='ctx'>         objptr-&gt;pos = i;</div><div class='del'>-        rb_block_call(RARRAY_AREF(enums, i), id_each, argc, argv, enum_chain_yield_block, block);</div><div class='add'>+        rb_funcall_with_block(RARRAY_AREF(enums, i), id_each, argc, argv, block);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return obj;</div><div class='hunk'>@@ -2642,7 +3363,7 @@ inspect_enum_chain(VALUE obj, VALUE dummy, int recur)</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(obj, struct enum_chain, &amp;enum_chain_data_type, ptr);</div><div class='ctx'> </div><div class='del'>-    if (!ptr || ptr-&gt;enums == Qundef) {</div><div class='add'>+    if (!ptr || UNDEF_P(ptr-&gt;enums)) {</div><div class='ctx'>         return rb_sprintf("#&lt;%"PRIsVALUE": uninitialized&gt;", rb_class_path(klass));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -2680,8 +3401,7 @@ enum_chain(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE enums = rb_ary_new_from_values(1, &amp;obj);</div><div class='ctx'>     rb_ary_cat(enums, argv, argc);</div><div class='del'>-</div><div class='del'>-    return enum_chain_initialize(enum_chain_allocate(rb_cEnumChain), enums);</div><div class='add'>+    return new_enum_chain(enums);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -2697,9 +3417,357 @@ enum_chain(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> static VALUE</div><div class='ctx'> enumerator_plus(VALUE obj, VALUE eobj)</div><div class='ctx'> {</div><div class='del'>-    VALUE enums = rb_ary_new_from_args(2, obj, eobj);</div><div class='add'>+    return new_enum_chain(rb_ary_new_from_args(2, obj, eobj));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-class: Enumerator::Product</div><div class='add'>+ *</div><div class='add'>+ * Enumerator::Product generates a Cartesian product of any number of</div><div class='add'>+ * enumerable objects.  Iterating over the product of enumerable</div><div class='add'>+ * objects is roughly equivalent to nested each_entry loops where the</div><div class='add'>+ * loop for the rightmost object is put innermost.</div><div class='add'>+ *</div><div class='add'>+ *   innings = Enumerator::Product.new(1..9, ['top', 'bottom'])</div><div class='add'>+ *</div><div class='add'>+ *   innings.each do |i, h|</div><div class='add'>+ *     p [i, h]</div><div class='add'>+ *   end</div><div class='add'>+ *   # [1, "top"]</div><div class='add'>+ *   # [1, "bottom"]</div><div class='add'>+ *   # [2, "top"]</div><div class='add'>+ *   # [2, "bottom"]</div><div class='add'>+ *   # [3, "top"]</div><div class='add'>+ *   # [3, "bottom"]</div><div class='add'>+ *   # ...</div><div class='add'>+ *   # [9, "top"]</div><div class='add'>+ *   # [9, "bottom"]</div><div class='add'>+ *</div><div class='add'>+ * The method used against each enumerable object is `each_entry`</div><div class='add'>+ * instead of `each` so that the product of N enumerable objects</div><div class='add'>+ * yields an array of exactly N elements in each iteration.</div><div class='add'>+ *</div><div class='add'>+ * When no enumerator is given, it calls a given block once yielding</div><div class='add'>+ * an empty argument list.</div><div class='add'>+ *</div><div class='add'>+ * This type of objects can be created by Enumerator.product.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+enum_product_mark(void *p)</div><div class='add'>+{</div><div class='add'>+    struct enum_product *ptr = p;</div><div class='add'>+    rb_gc_mark_movable(ptr-&gt;enums);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+enum_product_compact(void *p)</div><div class='add'>+{</div><div class='add'>+    struct enum_product *ptr = p;</div><div class='add'>+    ptr-&gt;enums = rb_gc_location(ptr-&gt;enums);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define enum_product_free RUBY_TYPED_DEFAULT_FREE</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+enum_product_memsize(const void *p)</div><div class='add'>+{</div><div class='add'>+    return sizeof(struct enum_product);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t enum_product_data_type = {</div><div class='add'>+    "product",</div><div class='add'>+    {</div><div class='add'>+        enum_product_mark,</div><div class='add'>+        enum_product_free,</div><div class='add'>+        enum_product_memsize,</div><div class='add'>+        enum_product_compact,</div><div class='add'>+    },</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static struct enum_product *</div><div class='add'>+enum_product_ptr(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct enum_product *ptr;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(obj, struct enum_product, &amp;enum_product_data_type, ptr);</div><div class='add'>+    if (!ptr || UNDEF_P(ptr-&gt;enums)) {</div><div class='add'>+        rb_raise(rb_eArgError, "uninitialized product");</div><div class='add'>+    }</div><div class='add'>+    return ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+enum_product_allocate(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    struct enum_product *ptr;</div><div class='add'>+    VALUE obj;</div><div class='add'>+</div><div class='add'>+    obj = TypedData_Make_Struct(klass, struct enum_product, &amp;enum_product_data_type, ptr);</div><div class='add'>+    ptr-&gt;enums = Qundef;</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   Enumerator::Product.new(*enums) -&gt; enum</div><div class='add'>+ *</div><div class='add'>+ * Generates a new enumerator object that generates a Cartesian</div><div class='add'>+ * product of given enumerable objects.</div><div class='add'>+ *</div><div class='add'>+ *   e = Enumerator::Product.new(1..3, [4, 5])</div><div class='add'>+ *   e.to_a #=&gt; [[1, 4], [1, 5], [2, 4], [2, 5], [3, 4], [3, 5]]</div><div class='add'>+ *   e.size #=&gt; 6</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+enum_product_initialize(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct enum_product *ptr;</div><div class='add'>+    VALUE enums = Qnil, options = Qnil;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "*:", &amp;enums, &amp;options);</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(options) &amp;&amp; !RHASH_EMPTY_P(options)) {</div><div class='add'>+        rb_exc_raise(rb_keyword_error_new("unknown", rb_hash_keys(options)));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_check_frozen(obj);</div><div class='add'>+    TypedData_Get_Struct(obj, struct enum_product, &amp;enum_product_data_type, ptr);</div><div class='add'>+</div><div class='add'>+    if (!ptr) rb_raise(rb_eArgError, "unallocated product");</div><div class='add'>+</div><div class='add'>+    ptr-&gt;enums = rb_obj_freeze(enums);</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+enum_product_init_copy(VALUE obj, VALUE orig)</div><div class='add'>+{</div><div class='add'>+    struct enum_product *ptr0, *ptr1;</div><div class='ctx'> </div><div class='del'>-    return enum_chain_initialize(enum_chain_allocate(rb_cEnumChain), enums);</div><div class='add'>+    if (!OBJ_INIT_COPY(obj, orig)) return obj;</div><div class='add'>+    ptr0 = enum_product_ptr(orig);</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(obj, struct enum_product, &amp;enum_product_data_type, ptr1);</div><div class='add'>+</div><div class='add'>+    if (!ptr1) rb_raise(rb_eArgError, "unallocated product");</div><div class='add'>+</div><div class='add'>+    ptr1-&gt;enums = ptr0-&gt;enums;</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+enum_product_total_size(VALUE enums)</div><div class='add'>+{</div><div class='add'>+    VALUE total = INT2FIX(1);</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(enums); i++) {</div><div class='add'>+        VALUE size = enum_size(RARRAY_AREF(enums, i));</div><div class='add'>+</div><div class='add'>+        if (NIL_P(size) || (RB_TYPE_P(size, T_FLOAT) &amp;&amp; isinf(NUM2DBL(size)))) {</div><div class='add'>+            return size;</div><div class='add'>+        }</div><div class='add'>+        if (!RB_INTEGER_TYPE_P(size)) {</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        total = rb_funcall(total, '*', 1, size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return total;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   obj.size -&gt; int, Float::INFINITY or nil</div><div class='add'>+ *</div><div class='add'>+ * Returns the total size of the enumerator product calculated by</div><div class='add'>+ * multiplying the sizes of enumerables in the product.  If any of the</div><div class='add'>+ * enumerables reports its size as nil or Float::INFINITY, that value</div><div class='add'>+ * is returned as the size.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+enum_product_size(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return enum_product_total_size(enum_product_ptr(obj)-&gt;enums);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+enum_product_enum_size(VALUE obj, VALUE args, VALUE eobj)</div><div class='add'>+{</div><div class='add'>+    return enum_product_size(obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct product_state {</div><div class='add'>+    VALUE  obj;</div><div class='add'>+    VALUE  block;</div><div class='add'>+    int    argc;</div><div class='add'>+    VALUE *argv;</div><div class='add'>+    int    index;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE product_each(VALUE, struct product_state *);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+product_each_i(RB_BLOCK_CALL_FUNC_ARGLIST(value, state))</div><div class='add'>+{</div><div class='add'>+    struct product_state *pstate = (struct product_state *)state;</div><div class='add'>+    pstate-&gt;argv[pstate-&gt;index++] = value;</div><div class='add'>+</div><div class='add'>+    VALUE val = product_each(pstate-&gt;obj, pstate);</div><div class='add'>+    pstate-&gt;index--;</div><div class='add'>+    return val;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+product_each(VALUE obj, struct product_state *pstate)</div><div class='add'>+{</div><div class='add'>+    struct enum_product *ptr = enum_product_ptr(obj);</div><div class='add'>+    VALUE enums = ptr-&gt;enums;</div><div class='add'>+</div><div class='add'>+    if (pstate-&gt;index &lt; pstate-&gt;argc) {</div><div class='add'>+        VALUE eobj = RARRAY_AREF(enums, pstate-&gt;index);</div><div class='add'>+</div><div class='add'>+        rb_block_call(eobj, id_each_entry, 0, NULL, product_each_i, (VALUE)pstate);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_funcall(pstate-&gt;block, id_call, 1, rb_ary_new_from_values(pstate-&gt;argc, pstate-&gt;argv));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+enum_product_run(VALUE obj, VALUE block)</div><div class='add'>+{</div><div class='add'>+    struct enum_product *ptr = enum_product_ptr(obj);</div><div class='add'>+    int argc = RARRAY_LENINT(ptr-&gt;enums);</div><div class='add'>+    struct product_state state = {</div><div class='add'>+        .obj = obj,</div><div class='add'>+        .block = block,</div><div class='add'>+        .index = 0,</div><div class='add'>+        .argc = argc,</div><div class='add'>+        .argv = ALLOCA_N(VALUE, argc),</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    return product_each(obj, &amp;state);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   obj.each { |...| ... } -&gt; obj</div><div class='add'>+ *   obj.each -&gt; enumerator</div><div class='add'>+ *</div><div class='add'>+ * Iterates over the elements of the first enumerable by calling the</div><div class='add'>+ * "each_entry" method on it with the given arguments, then proceeds</div><div class='add'>+ * to the following enumerables in sequence until all of the</div><div class='add'>+ * enumerables are exhausted.</div><div class='add'>+ *</div><div class='add'>+ * If no block is given, returns an enumerator.  Otherwise, returns self.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+enum_product_each(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(obj, 0, 0, enum_product_enum_size);</div><div class='add'>+</div><div class='add'>+    return enum_product_run(obj, rb_block_proc());</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   obj.rewind -&gt; obj</div><div class='add'>+ *</div><div class='add'>+ * Rewinds the product enumerator by calling the "rewind" method on</div><div class='add'>+ * each enumerable in reverse order.  Each call is performed only if</div><div class='add'>+ * the enumerable responds to the method.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+enum_product_rewind(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct enum_product *ptr = enum_product_ptr(obj);</div><div class='add'>+    VALUE enums = ptr-&gt;enums;</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(enums); i++) {</div><div class='add'>+        rb_check_funcall(RARRAY_AREF(enums, i), id_rewind, 0, 0);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+inspect_enum_product(VALUE obj, VALUE dummy, int recur)</div><div class='add'>+{</div><div class='add'>+    VALUE klass = rb_obj_class(obj);</div><div class='add'>+    struct enum_product *ptr;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(obj, struct enum_product, &amp;enum_product_data_type, ptr);</div><div class='add'>+</div><div class='add'>+    if (!ptr || UNDEF_P(ptr-&gt;enums)) {</div><div class='add'>+        return rb_sprintf("#&lt;%"PRIsVALUE": uninitialized&gt;", rb_class_path(klass));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (recur) {</div><div class='add'>+        return rb_sprintf("#&lt;%"PRIsVALUE": ...&gt;", rb_class_path(klass));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return rb_sprintf("#&lt;%"PRIsVALUE": %+"PRIsVALUE"&gt;", rb_class_path(klass), ptr-&gt;enums);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   obj.inspect -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Returns a printable version of the product enumerator.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+enum_product_inspect(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return rb_exec_recursive(inspect_enum_product, obj, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   Enumerator.product(*enums) -&gt; enumerator</div><div class='add'>+ *   Enumerator.product(*enums) { |elts| ... } -&gt; enumerator</div><div class='add'>+ *</div><div class='add'>+ * Generates a new enumerator object that generates a Cartesian</div><div class='add'>+ * product of given enumerable objects.  This is equivalent to</div><div class='add'>+ * Enumerator::Product.new.</div><div class='add'>+ *</div><div class='add'>+ *   e = Enumerator.product(1..3, [4, 5])</div><div class='add'>+ *   e.to_a #=&gt; [[1, 4], [1, 5], [2, 4], [2, 5], [3, 4], [3, 5]]</div><div class='add'>+ *   e.size #=&gt; 6</div><div class='add'>+ *</div><div class='add'>+ * When a block is given, calls the block with each N-element array</div><div class='add'>+ * generated and returns +nil+.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+enumerator_s_product(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE enums = Qnil, options = Qnil, block = Qnil;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "*:&amp;", &amp;enums, &amp;options, &amp;block);</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(options) &amp;&amp; !RHASH_EMPTY_P(options)) {</div><div class='add'>+        rb_exc_raise(rb_keyword_error_new("unknown", rb_hash_keys(options)));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE obj = enum_product_initialize(argc, argv, enum_product_allocate(rb_cEnumProduct));</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(block)) {</div><div class='add'>+        enum_product_run(obj, block);</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -2709,6 +3777,9 @@ enumerator_plus(VALUE obj, VALUE eobj)</div><div class='ctx'>  * that is a representation of sequences of numbers with common difference.</div><div class='ctx'>  * Instances of this class can be generated by the Range#step and Numeric#step</div><div class='ctx'>  * methods.</div><div class='add'>+ *</div><div class='add'>+ * The class can be used for slicing Array (see Array#slice) or custom</div><div class='add'>+ * collections.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -2717,16 +3788,16 @@ rb_arith_seq_new(VALUE obj, VALUE meth, int argc, VALUE const *argv,</div><div class='ctx'>                  VALUE beg, VALUE end, VALUE step, int excl)</div><div class='ctx'> {</div><div class='ctx'>     VALUE aseq = enumerator_init(enumerator_allocate(rb_cArithSeq),</div><div class='del'>-                                 obj, meth, argc, argv, size_fn, Qnil);</div><div class='add'>+                                 obj, meth, argc, argv, size_fn, Qnil, rb_keyword_given_p());</div><div class='ctx'>     rb_ivar_set(aseq, id_begin, beg);</div><div class='ctx'>     rb_ivar_set(aseq, id_end, end);</div><div class='ctx'>     rb_ivar_set(aseq, id_step, step);</div><div class='del'>-    rb_ivar_set(aseq, id_exclude_end, excl ? Qtrue : Qfalse);</div><div class='add'>+    rb_ivar_set(aseq, id_exclude_end, RBOOL(excl));</div><div class='ctx'>     return aseq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq: aseq.begin -&gt; num</div><div class='add'>+ * call-seq: aseq.begin -&gt; num or nil</div><div class='ctx'>  *</div><div class='ctx'>  * Returns the number that defines the first element of this arithmetic</div><div class='ctx'>  * sequence.</div><div class='hunk'>@@ -2787,17 +3858,60 @@ rb_arithmetic_sequence_extract(VALUE obj, rb_arithmetic_sequence_components_t *c</div><div class='ctx'>         component-&gt;exclude_end = arith_seq_exclude_end_p(obj);</div><div class='ctx'>         return 1;</div><div class='ctx'>     }</div><div class='del'>-    else if (rb_obj_is_kind_of(obj, rb_cRange)) {</div><div class='del'>-        component-&gt;begin = RANGE_BEG(obj);</div><div class='del'>-        component-&gt;end   = RANGE_END(obj);</div><div class='add'>+    else if (rb_range_values(obj, &amp;component-&gt;begin, &amp;component-&gt;end, &amp;component-&gt;exclude_end)) {</div><div class='ctx'>         component-&gt;step  = INT2FIX(1);</div><div class='del'>-        component-&gt;exclude_end = RTEST(RANGE_EXCL(obj));</div><div class='ctx'>         return 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_arithmetic_sequence_beg_len_step(VALUE obj, long *begp, long *lenp, long *stepp, long len, int err)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_NONNULL_ARG(begp);</div><div class='add'>+    RBIMPL_NONNULL_ARG(lenp);</div><div class='add'>+    RBIMPL_NONNULL_ARG(stepp);</div><div class='add'>+</div><div class='add'>+    rb_arithmetic_sequence_components_t aseq;</div><div class='add'>+    if (!rb_arithmetic_sequence_extract(obj, &amp;aseq)) {</div><div class='add'>+        return Qfalse;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    long step = NIL_P(aseq.step) ? 1 : NUM2LONG(aseq.step);</div><div class='add'>+    *stepp = step;</div><div class='add'>+</div><div class='add'>+    if (step &lt; 0) {</div><div class='add'>+        if (aseq.exclude_end &amp;&amp; !NIL_P(aseq.end)) {</div><div class='add'>+            /* Handle exclusion before range reversal */</div><div class='add'>+            aseq.end = LONG2NUM(NUM2LONG(aseq.end) + 1);</div><div class='add'>+</div><div class='add'>+            /* Don't exclude the previous beginning */</div><div class='add'>+            aseq.exclude_end = 0;</div><div class='add'>+        }</div><div class='add'>+        VALUE tmp = aseq.begin;</div><div class='add'>+        aseq.begin = aseq.end;</div><div class='add'>+        aseq.end = tmp;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (err == 0 &amp;&amp; (step &lt; -1 || step &gt; 1)) {</div><div class='add'>+        if (rb_range_component_beg_len(aseq.begin, aseq.end, aseq.exclude_end, begp, lenp, len, 1) == Qtrue) {</div><div class='add'>+            if (*begp &gt; len)</div><div class='add'>+                goto out_of_range;</div><div class='add'>+            if (*lenp &gt; len)</div><div class='add'>+                goto out_of_range;</div><div class='add'>+            return Qtrue;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_range_component_beg_len(aseq.begin, aseq.end, aseq.exclude_end, begp, lenp, len, err);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+  out_of_range:</div><div class='add'>+    rb_raise(rb_eRangeError, "%+"PRIsVALUE" out of range", obj);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   aseq.first -&gt; num or nil</div><div class='hunk'>@@ -2809,31 +3923,221 @@ rb_arithmetic_sequence_extract(VALUE obj, rb_arithmetic_sequence_components_t *c</div><div class='ctx'> static VALUE</div><div class='ctx'> arith_seq_first(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    VALUE b, e, s, len_1;</div><div class='add'>+    VALUE b, e, s, ary;</div><div class='add'>+    long n;</div><div class='add'>+    int x;</div><div class='add'>+</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='ctx'> </div><div class='ctx'>     b = arith_seq_begin(self);</div><div class='ctx'>     e = arith_seq_end(self);</div><div class='ctx'>     s = arith_seq_step(self);</div><div class='del'>-</div><div class='del'>-    if (!NIL_P(e)) {</div><div class='del'>-        len_1 = rb_int_idiv(rb_int_minus(e, b), s);</div><div class='del'>-        if (rb_num_negative_int_p(len_1)) {</div><div class='del'>-            if (argc == 0) {</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+        if (NIL_P(b)) {</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='add'>+        if (!NIL_P(e)) {</div><div class='add'>+            VALUE zero = INT2FIX(0);</div><div class='add'>+            int r = rb_cmpint(rb_num_coerce_cmp(s, zero, idCmp), s, zero);</div><div class='add'>+            if (r &gt; 0 &amp;&amp; RTEST(rb_funcall(b, '&gt;', 1, e))) {</div><div class='add'>+                return Qnil;</div><div class='add'>+            }</div><div class='add'>+            if (r &lt; 0 &amp;&amp; RTEST(rb_funcall(b, '&lt;', 1, e))) {</div><div class='ctx'>                 return Qnil;</div><div class='ctx'>             }</div><div class='del'>-            return rb_ary_new_capa(0);</div><div class='ctx'>         }</div><div class='add'>+        return b;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (argc == 0) {</div><div class='del'>-        return b;</div><div class='add'>+    // TODO: the following code should be extracted as arith_seq_take</div><div class='add'>+</div><div class='add'>+    n = NUM2LONG(argv[0]);</div><div class='add'>+    if (n &lt; 0) {</div><div class='add'>+        rb_raise(rb_eArgError, "attempt to take negative size");</div><div class='add'>+    }</div><div class='add'>+    if (n == 0) {</div><div class='add'>+        return rb_ary_new_capa(0);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    /* TODO: optimization */</div><div class='add'>+    x = arith_seq_exclude_end_p(self);</div><div class='add'>+</div><div class='add'>+    if (FIXNUM_P(b) &amp;&amp; NIL_P(e) &amp;&amp; FIXNUM_P(s)) {</div><div class='add'>+        long i = FIX2LONG(b), unit = FIX2LONG(s);</div><div class='add'>+        ary = rb_ary_new_capa(n);</div><div class='add'>+        while (n &gt; 0 &amp;&amp; FIXABLE(i)) {</div><div class='add'>+            rb_ary_push(ary, LONG2FIX(i));</div><div class='add'>+            i += unit;  // FIXABLE + FIXABLE never overflow;</div><div class='add'>+            --n;</div><div class='add'>+        }</div><div class='add'>+        if (n &gt; 0) {</div><div class='add'>+            b = LONG2NUM(i);</div><div class='add'>+            while (n &gt; 0) {</div><div class='add'>+                rb_ary_push(ary, b);</div><div class='add'>+                b = rb_big_plus(b, s);</div><div class='add'>+                --n;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        return ary;</div><div class='add'>+    }</div><div class='add'>+    else if (FIXNUM_P(b) &amp;&amp; FIXNUM_P(e) &amp;&amp; FIXNUM_P(s)) {</div><div class='add'>+        long i = FIX2LONG(b);</div><div class='add'>+        long end = FIX2LONG(e);</div><div class='add'>+        long unit = FIX2LONG(s);</div><div class='add'>+        long len;</div><div class='add'>+</div><div class='add'>+        if (unit &gt;= 0) {</div><div class='add'>+            if (!x) end += 1;</div><div class='add'>+</div><div class='add'>+            len = end - i;</div><div class='add'>+            if (len &lt; 0) len = 0;</div><div class='add'>+            ary = rb_ary_new_capa((n &lt; len) ? n : len);</div><div class='add'>+            while (n &gt; 0 &amp;&amp; i &lt; end) {</div><div class='add'>+                rb_ary_push(ary, LONG2FIX(i));</div><div class='add'>+                if (i + unit &lt; i) break;</div><div class='add'>+                i += unit;</div><div class='add'>+                --n;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (!x) end -= 1;</div><div class='add'>+</div><div class='add'>+            len = i - end;</div><div class='add'>+            if (len &lt; 0) len = 0;</div><div class='add'>+            ary = rb_ary_new_capa((n &lt; len) ? n : len);</div><div class='add'>+            while (n &gt; 0 &amp;&amp; i &gt; end) {</div><div class='add'>+                rb_ary_push(ary, LONG2FIX(i));</div><div class='add'>+                if (i + unit &gt; i) break;</div><div class='add'>+                i += unit;</div><div class='add'>+                --n;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        return ary;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(b) || RB_FLOAT_TYPE_P(e) || RB_FLOAT_TYPE_P(s)) {</div><div class='add'>+        /* generate values like ruby_float_step */</div><div class='add'>+</div><div class='add'>+        double unit = NUM2DBL(s);</div><div class='add'>+        double beg = NUM2DBL(b);</div><div class='add'>+        double end = NIL_P(e) ? (unit &lt; 0 ? -1 : 1)*HUGE_VAL : NUM2DBL(e);</div><div class='add'>+        double len = ruby_float_step_size(beg, end, unit, x);</div><div class='add'>+        long i;</div><div class='add'>+</div><div class='add'>+        if (n &gt; len)</div><div class='add'>+            n = (long)len;</div><div class='add'>+</div><div class='add'>+        if (isinf(unit)) {</div><div class='add'>+            if (len &gt; 0) {</div><div class='add'>+                ary = rb_ary_new_capa(1);</div><div class='add'>+                rb_ary_push(ary, DBL2NUM(beg));</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ary = rb_ary_new_capa(0);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else if (unit == 0) {</div><div class='add'>+            VALUE val = DBL2NUM(beg);</div><div class='add'>+            ary = rb_ary_new_capa(n);</div><div class='add'>+            for (i = 0; i &lt; len; ++i) {</div><div class='add'>+                rb_ary_push(ary, val);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ary = rb_ary_new_capa(n);</div><div class='add'>+            for (i = 0; i &lt; n; ++i) {</div><div class='add'>+                double d = i*unit+beg;</div><div class='add'>+                if (unit &gt;= 0 ? end &lt; d : d &lt; end) d = end;</div><div class='add'>+                rb_ary_push(ary, DBL2NUM(d));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        return ary;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     return rb_call_super(argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static inline VALUE</div><div class='add'>+num_plus(VALUE a, VALUE b)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(a)) {</div><div class='add'>+        return rb_int_plus(a, b);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(a)) {</div><div class='add'>+        return rb_float_plus(a, b);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(a, T_RATIONAL)) {</div><div class='add'>+        return rb_rational_plus(a, b);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_funcallv(a, '+', 1, &amp;b);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+num_minus(VALUE a, VALUE b)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(a)) {</div><div class='add'>+        return rb_int_minus(a, b);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(a)) {</div><div class='add'>+        return rb_float_minus(a, b);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(a, T_RATIONAL)) {</div><div class='add'>+        return rb_rational_minus(a, b);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_funcallv(a, '-', 1, &amp;b);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+num_mul(VALUE a, VALUE b)</div><div class='add'>+{</div><div class='add'>+    if (RB_INTEGER_TYPE_P(a)) {</div><div class='add'>+        return rb_int_mul(a, b);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(a)) {</div><div class='add'>+        return rb_float_mul(a, b);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(a, T_RATIONAL)) {</div><div class='add'>+        return rb_rational_mul(a, b);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_funcallv(a, '*', 1, &amp;b);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+num_idiv(VALUE a, VALUE b)</div><div class='add'>+{</div><div class='add'>+    VALUE q;</div><div class='add'>+    if (RB_INTEGER_TYPE_P(a)) {</div><div class='add'>+        q = rb_int_idiv(a, b);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(a)) {</div><div class='add'>+        q = rb_float_div(a, b);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(a, T_RATIONAL)) {</div><div class='add'>+        q = rb_rational_div(a, b);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        q = rb_funcallv(a, idDiv, 1, &amp;b);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RB_INTEGER_TYPE_P(q)) {</div><div class='add'>+        return q;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(q)) {</div><div class='add'>+        return rb_float_floor(q, 0);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(q, T_RATIONAL)) {</div><div class='add'>+        return rb_rational_floor(q, 0);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_funcall(q, rb_intern("floor"), 0);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   aseq.last    -&gt; num or nil</div><div class='hunk'>@@ -2858,7 +4162,7 @@ arith_seq_last(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     b = arith_seq_begin(self);</div><div class='ctx'>     s = arith_seq_step(self);</div><div class='ctx'> </div><div class='del'>-    len_1 = rb_int_idiv(rb_int_minus(e, b), s);</div><div class='add'>+    len_1 = num_idiv(num_minus(e, b), s);</div><div class='ctx'>     if (rb_num_negative_int_p(len_1)) {</div><div class='ctx'>         if (argc == 0) {</div><div class='ctx'>             return Qnil;</div><div class='hunk'>@@ -2866,9 +4170,9 @@ arith_seq_last(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>         return rb_ary_new_capa(0);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    last = rb_int_plus(b, rb_int_mul(s, len_1));</div><div class='add'>+    last = num_plus(b, num_mul(s, len_1));</div><div class='ctx'>     if ((last_is_adjusted = arith_seq_exclude_end_p(self) &amp;&amp; rb_equal(last, e))) {</div><div class='del'>-        last = rb_int_minus(last, s);</div><div class='add'>+        last = num_minus(last, s);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) {</div><div class='hunk'>@@ -2954,7 +4258,6 @@ arith_seq_inspect(VALUE self)</div><div class='ctx'> </div><div class='ctx'>                 rb_str_append(str, rb_inspect(arg));</div><div class='ctx'>                 rb_str_buf_cat2(str, ", ");</div><div class='del'>-                OBJ_INFECT(str, arg);</div><div class='ctx'>             }</div><div class='ctx'>             if (!NIL_P(kwds)) {</div><div class='ctx'>                 rb_hash_foreach(kwds, kwd_append, str);</div><div class='hunk'>@@ -3027,7 +4330,7 @@ arith_seq_hash(VALUE self)</div><div class='ctx'>     hash = rb_hash_uint(hash, NUM2LONG(v));</div><div class='ctx'>     hash = rb_hash_end(hash);</div><div class='ctx'> </div><div class='del'>-    return LONG2FIX(hash);</div><div class='add'>+    return ST2FIX(hash);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define NUM_GE(x, y) RTEST(rb_num_coerce_relop((x), (y), idGE))</div><div class='hunk'>@@ -3078,57 +4381,28 @@ arith_seq_each(VALUE self)</div><div class='ctx'>         return self;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    len_1 = rb_int_idiv(rb_int_minus(e, c), s);</div><div class='del'>-    last = rb_int_plus(c, rb_int_mul(s, len_1));</div><div class='add'>+    len_1 = num_idiv(num_minus(e, c), s);</div><div class='add'>+    last = num_plus(c, num_mul(s, len_1));</div><div class='ctx'>     if (x &amp;&amp; rb_equal(last, e)) {</div><div class='del'>-        last = rb_int_minus(last, s);</div><div class='add'>+        last = num_minus(last, s);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (rb_num_negative_int_p(s)) {</div><div class='ctx'>         while (NUM_GE(c, last)) {</div><div class='ctx'>             rb_yield(c);</div><div class='del'>-            c = rb_int_plus(c, s);</div><div class='add'>+            c = num_plus(c, s);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         while (NUM_GE(last, c)) {</div><div class='ctx'>             rb_yield(c);</div><div class='del'>-            c = rb_int_plus(c, s);</div><div class='add'>+            c = num_plus(c, s);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static double</div><div class='del'>-arith_seq_float_step_size(double beg, double end, double step, int excl)</div><div class='del'>-{</div><div class='del'>-    double const epsilon = DBL_EPSILON;</div><div class='del'>-    double n, err;</div><div class='del'>-</div><div class='del'>-    if (step == 0) {</div><div class='del'>-        return HUGE_VAL;</div><div class='del'>-    }</div><div class='del'>-    n = (end - beg) / step;</div><div class='del'>-    err = (fabs(beg) + fabs(end) + fabs(end - beg)) / fabs(step) * epsilon;</div><div class='del'>-    if (isinf(step)) {</div><div class='del'>-        return step &gt; 0 ? beg &lt;= end : beg &gt;= end;</div><div class='del'>-    }</div><div class='del'>-    if (err &gt; 0.5) err = 0.5;</div><div class='del'>-    if (excl) {</div><div class='del'>-        if (n &lt;= 0) return 0;</div><div class='del'>-        if (n &lt; 1)</div><div class='del'>-            n = 0;</div><div class='del'>-        else</div><div class='del'>-            n = floor(n - err);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        if (n &lt; 0) return 0;</div><div class='del'>-        n = floor(n + err);</div><div class='del'>-    }</div><div class='del'>-    return n + 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   aseq.size -&gt; num or nil</div><div class='hunk'>@@ -3162,9 +4436,9 @@ arith_seq_size(VALUE self)</div><div class='ctx'>             ee = NUM2DBL(e);</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='del'>-        n = arith_seq_float_step_size(NUM2DBL(b), ee, NUM2DBL(s), x);</div><div class='add'>+        n = ruby_float_step_size(NUM2DBL(b), ee, NUM2DBL(s), x);</div><div class='ctx'>         if (isinf(n)) return DBL2NUM(n);</div><div class='del'>-        if (POSFIXABLE(n)) return LONG2FIX(n);</div><div class='add'>+        if (POSFIXABLE(n)) return LONG2FIX((long)n);</div><div class='ctx'>         return rb_dbl2big(n);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -3196,9 +4470,12 @@ arith_seq_size(VALUE self)</div><div class='ctx'>     return len;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#define sym(name) ID2SYM(rb_intern_const(name))</div><div class='ctx'> void</div><div class='ctx'> InitVM_Enumerator(void)</div><div class='ctx'> {</div><div class='add'>+    ID id_private = rb_intern_const("private");</div><div class='add'>+</div><div class='ctx'>     rb_define_method(rb_mKernel, "to_enum", obj_to_enum, -1);</div><div class='ctx'>     rb_define_method(rb_mKernel, "enum_for", obj_to_enum, -1);</div><div class='ctx'> </div><div class='hunk'>@@ -3227,9 +4504,48 @@ InitVM_Enumerator(void)</div><div class='ctx'>     /* Lazy */</div><div class='ctx'>     rb_cLazy = rb_define_class_under(rb_cEnumerator, "Lazy", rb_cEnumerator);</div><div class='ctx'>     rb_define_method(rb_mEnumerable, "lazy", enumerable_lazy, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_map", "map");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_collect", "collect");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_flat_map", "flat_map");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_collect_concat", "collect_concat");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_select", "select");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_find_all", "find_all");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_filter", "filter");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_filter_map", "filter_map");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_reject", "reject");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_grep", "grep");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_grep_v", "grep_v");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_zip", "zip");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_take", "take");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_take_while", "take_while");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_drop", "drop");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_drop_while", "drop_while");</div><div class='add'>+    rb_define_alias(rb_cLazy, "_enumerable_uniq", "uniq");</div><div class='add'>+    rb_define_private_method(rb_cLazy, "_enumerable_with_index", enumerator_with_index, -1);</div><div class='add'>+</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_map"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_collect"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_flat_map"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_collect_concat"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_select"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_find_all"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_filter"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_filter_map"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_reject"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_grep"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_grep_v"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_zip"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_take"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_take_while"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_drop"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_drop_while"));</div><div class='add'>+    rb_funcall(rb_cLazy, id_private, 1, sym("_enumerable_uniq"));</div><div class='add'>+</div><div class='ctx'>     rb_define_method(rb_cLazy, "initialize", lazy_initialize, -1);</div><div class='ctx'>     rb_define_method(rb_cLazy, "to_enum", lazy_to_enum, -1);</div><div class='ctx'>     rb_define_method(rb_cLazy, "enum_for", lazy_to_enum, -1);</div><div class='add'>+    rb_define_method(rb_cLazy, "eager", lazy_eager, 0);</div><div class='ctx'>     rb_define_method(rb_cLazy, "map", lazy_map, 0);</div><div class='ctx'>     rb_define_method(rb_cLazy, "collect", lazy_map, 0);</div><div class='ctx'>     rb_define_method(rb_cLazy, "flat_map", lazy_flat_map, 0);</div><div class='hunk'>@@ -3237,6 +4553,7 @@ InitVM_Enumerator(void)</div><div class='ctx'>     rb_define_method(rb_cLazy, "select", lazy_select, 0);</div><div class='ctx'>     rb_define_method(rb_cLazy, "find_all", lazy_select, 0);</div><div class='ctx'>     rb_define_method(rb_cLazy, "filter", lazy_select, 0);</div><div class='add'>+    rb_define_method(rb_cLazy, "filter_map", lazy_filter_map, 0);</div><div class='ctx'>     rb_define_method(rb_cLazy, "reject", lazy_reject, 0);</div><div class='ctx'>     rb_define_method(rb_cLazy, "grep", lazy_grep, 1);</div><div class='ctx'>     rb_define_method(rb_cLazy, "grep_v", lazy_grep_v, 1);</div><div class='hunk'>@@ -3252,9 +4569,38 @@ InitVM_Enumerator(void)</div><div class='ctx'>     rb_define_method(rb_cLazy, "slice_when", lazy_super, -1);</div><div class='ctx'>     rb_define_method(rb_cLazy, "chunk_while", lazy_super, -1);</div><div class='ctx'>     rb_define_method(rb_cLazy, "uniq", lazy_uniq, 0);</div><div class='add'>+    rb_define_method(rb_cLazy, "compact", lazy_compact, 0);</div><div class='add'>+    rb_define_method(rb_cLazy, "with_index", lazy_with_index, -1);</div><div class='add'>+</div><div class='add'>+    lazy_use_super_method = rb_hash_new_with_size(18);</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("map"), sym("_enumerable_map"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("collect"), sym("_enumerable_collect"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("flat_map"), sym("_enumerable_flat_map"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("collect_concat"), sym("_enumerable_collect_concat"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("select"), sym("_enumerable_select"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("find_all"), sym("_enumerable_find_all"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("filter"), sym("_enumerable_filter"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("filter_map"), sym("_enumerable_filter_map"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("reject"), sym("_enumerable_reject"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("grep"), sym("_enumerable_grep"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("grep_v"), sym("_enumerable_grep_v"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("zip"), sym("_enumerable_zip"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("take"), sym("_enumerable_take"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("take_while"), sym("_enumerable_take_while"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("drop"), sym("_enumerable_drop"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("drop_while"), sym("_enumerable_drop_while"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("uniq"), sym("_enumerable_uniq"));</div><div class='add'>+    rb_hash_aset(lazy_use_super_method, sym("with_index"), sym("_enumerable_with_index"));</div><div class='add'>+    rb_obj_freeze(lazy_use_super_method);</div><div class='add'>+    rb_gc_register_mark_object(lazy_use_super_method);</div><div class='ctx'> </div><div class='ctx'> #if 0 /* for RDoc */</div><div class='ctx'>     rb_define_method(rb_cLazy, "to_a", lazy_to_a, 0);</div><div class='add'>+    rb_define_method(rb_cLazy, "chunk", lazy_chunk, 0);</div><div class='add'>+    rb_define_method(rb_cLazy, "chunk_while", lazy_chunk_while, 0);</div><div class='add'>+    rb_define_method(rb_cLazy, "slice_after", lazy_slice_after, 0);</div><div class='add'>+    rb_define_method(rb_cLazy, "slice_before", lazy_slice_before, 0);</div><div class='add'>+    rb_define_method(rb_cLazy, "slice_when", lazy_slice_when, 0);</div><div class='ctx'> #endif</div><div class='ctx'>     rb_define_alias(rb_cLazy, "force", "to_a");</div><div class='ctx'> </div><div class='hunk'>@@ -3275,6 +4621,13 @@ InitVM_Enumerator(void)</div><div class='ctx'>     rb_define_method(rb_cYielder, "initialize", yielder_initialize, 0);</div><div class='ctx'>     rb_define_method(rb_cYielder, "yield", yielder_yield, -2);</div><div class='ctx'>     rb_define_method(rb_cYielder, "&lt;&lt;", yielder_yield_push, 1);</div><div class='add'>+    rb_define_method(rb_cYielder, "to_proc", yielder_to_proc, 0);</div><div class='add'>+</div><div class='add'>+    /* Producer */</div><div class='add'>+    rb_cEnumProducer = rb_define_class_under(rb_cEnumerator, "Producer", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(rb_cEnumProducer, producer_allocate);</div><div class='add'>+    rb_define_method(rb_cEnumProducer, "each", producer_each, 0);</div><div class='add'>+    rb_define_singleton_method(rb_cEnumerator, "produce", enumerator_s_produce, -1);</div><div class='ctx'> </div><div class='ctx'>     /* Chain */</div><div class='ctx'>     rb_cEnumChain = rb_define_class_under(rb_cEnumerator, "Chain", rb_cEnumerator);</div><div class='hunk'>@@ -3285,6 +4638,27 @@ InitVM_Enumerator(void)</div><div class='ctx'>     rb_define_method(rb_cEnumChain, "size", enum_chain_size, 0);</div><div class='ctx'>     rb_define_method(rb_cEnumChain, "rewind", enum_chain_rewind, 0);</div><div class='ctx'>     rb_define_method(rb_cEnumChain, "inspect", enum_chain_inspect, 0);</div><div class='add'>+    rb_undef_method(rb_cEnumChain, "feed");</div><div class='add'>+    rb_undef_method(rb_cEnumChain, "next");</div><div class='add'>+    rb_undef_method(rb_cEnumChain, "next_values");</div><div class='add'>+    rb_undef_method(rb_cEnumChain, "peek");</div><div class='add'>+    rb_undef_method(rb_cEnumChain, "peek_values");</div><div class='add'>+</div><div class='add'>+    /* Product */</div><div class='add'>+    rb_cEnumProduct = rb_define_class_under(rb_cEnumerator, "Product", rb_cEnumerator);</div><div class='add'>+    rb_define_alloc_func(rb_cEnumProduct, enum_product_allocate);</div><div class='add'>+    rb_define_method(rb_cEnumProduct, "initialize", enum_product_initialize, -1);</div><div class='add'>+    rb_define_method(rb_cEnumProduct, "initialize_copy", enum_product_init_copy, 1);</div><div class='add'>+    rb_define_method(rb_cEnumProduct, "each", enum_product_each, 0);</div><div class='add'>+    rb_define_method(rb_cEnumProduct, "size", enum_product_size, 0);</div><div class='add'>+    rb_define_method(rb_cEnumProduct, "rewind", enum_product_rewind, 0);</div><div class='add'>+    rb_define_method(rb_cEnumProduct, "inspect", enum_product_inspect, 0);</div><div class='add'>+    rb_undef_method(rb_cEnumProduct, "feed");</div><div class='add'>+    rb_undef_method(rb_cEnumProduct, "next");</div><div class='add'>+    rb_undef_method(rb_cEnumProduct, "next_values");</div><div class='add'>+    rb_undef_method(rb_cEnumProduct, "peek");</div><div class='add'>+    rb_undef_method(rb_cEnumProduct, "peek_values");</div><div class='add'>+    rb_define_singleton_method(rb_cEnumerator, "product", enumerator_s_product, -1);</div><div class='ctx'> </div><div class='ctx'>     /* ArithmeticSequence */</div><div class='ctx'>     rb_cArithSeq = rb_define_class_under(rb_cEnumerator, "ArithmeticSequence", rb_cEnumerator);</div><div class='hunk'>@@ -3306,27 +4680,29 @@ InitVM_Enumerator(void)</div><div class='ctx'> </div><div class='ctx'>     rb_provide("enumerator.so");	/* for backward compatibility */</div><div class='ctx'> }</div><div class='add'>+#undef sym</div><div class='ctx'> </div><div class='del'>-#undef rb_intern</div><div class='ctx'> void</div><div class='ctx'> Init_Enumerator(void)</div><div class='ctx'> {</div><div class='del'>-    id_rewind = rb_intern("rewind");</div><div class='del'>-    id_new = rb_intern("new");</div><div class='del'>-    id_next = rb_intern("next");</div><div class='del'>-    id_result = rb_intern("result");</div><div class='del'>-    id_receiver = rb_intern("receiver");</div><div class='del'>-    id_arguments = rb_intern("arguments");</div><div class='del'>-    id_memo = rb_intern("memo");</div><div class='del'>-    id_method = rb_intern("method");</div><div class='del'>-    id_force = rb_intern("force");</div><div class='del'>-    id_to_enum = rb_intern("to_enum");</div><div class='del'>-    id_begin = rb_intern("begin");</div><div class='del'>-    id_end = rb_intern("end");</div><div class='del'>-    id_step = rb_intern("step");</div><div class='del'>-    id_exclude_end = rb_intern("exclude_end");</div><div class='add'>+    id_rewind = rb_intern_const("rewind");</div><div class='add'>+    id_new = rb_intern_const("new");</div><div class='add'>+    id_next = rb_intern_const("next");</div><div class='add'>+    id_result = rb_intern_const("result");</div><div class='add'>+    id_receiver = rb_intern_const("receiver");</div><div class='add'>+    id_arguments = rb_intern_const("arguments");</div><div class='add'>+    id_memo = rb_intern_const("memo");</div><div class='add'>+    id_method = rb_intern_const("method");</div><div class='add'>+    id_force = rb_intern_const("force");</div><div class='add'>+    id_to_enum = rb_intern_const("to_enum");</div><div class='add'>+    id_each_entry = rb_intern_const("each_entry");</div><div class='add'>+    id_begin = rb_intern_const("begin");</div><div class='add'>+    id_end = rb_intern_const("end");</div><div class='add'>+    id_step = rb_intern_const("step");</div><div class='add'>+    id_exclude_end = rb_intern_const("exclude_end");</div><div class='ctx'>     sym_each = ID2SYM(id_each);</div><div class='del'>-    sym_cycle = ID2SYM(rb_intern("cycle"));</div><div class='add'>+    sym_cycle = ID2SYM(rb_intern_const("cycle"));</div><div class='add'>+    sym_yield = ID2SYM(rb_intern_const("yield"));</div><div class='ctx'> </div><div class='ctx'>     InitVM(Enumerator);</div><div class='ctx'> }</div><div class='head'>diff --git a/error.c b/error.c<br/>index a085afd800..726f57a4c0 100644<br/>--- a/<a href='/ruby.git/tree/error.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>error.c</a><br/>+++ b/<a href='/ruby.git/tree/error.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>error.c</a></div><div class='hunk'>@@ -9,28 +9,44 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby/encoding.h"</div><div class='del'>-#include "ruby/st.h"</div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "ruby_assert.h"</div><div class='del'>-#include "vm_core.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> </div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='add'>+#include &lt;errno.h&gt;</div><div class='ctx'> #include &lt;stdarg.h&gt;</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_STDLIB_H</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='add'>+# include &lt;stdlib.h&gt;</div><div class='ctx'> #endif</div><div class='del'>-#include &lt;errno.h&gt;</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_UNISTD_H</div><div class='del'>-#include &lt;unistd.h&gt;</div><div class='add'>+# include &lt;unistd.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if defined __APPLE__</div><div class='ctx'> # include &lt;AvailabilityMacros.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/eval.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/io.h"</div><div class='add'>+#include "internal/load.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/string.h"</div><div class='add'>+#include "internal/symbol.h"</div><div class='add'>+#include "internal/thread.h"</div><div class='add'>+#include "internal/variable.h"</div><div class='add'>+#include "ruby/encoding.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+#include "ruby_assert.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+</div><div class='add'>+#include "builtin.h"</div><div class='add'>+</div><div class='ctx'> /*!</div><div class='del'>- * \defgroup exception Exception handlings</div><div class='add'>+ * \addtogroup exception</div><div class='ctx'>  * \{</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -50,6 +66,7 @@ VALUE rb_iseqw_local_variables(VALUE iseqval);</div><div class='ctx'> VALUE rb_iseqw_new(const rb_iseq_t *);</div><div class='ctx'> int rb_str_end_with_asciichar(VALUE str, int c);</div><div class='ctx'> </div><div class='add'>+long rb_backtrace_length_limit = -1;</div><div class='ctx'> VALUE rb_eEAGAIN;</div><div class='ctx'> VALUE rb_eEWOULDBLOCK;</div><div class='ctx'> VALUE rb_eEINPROGRESS;</div><div class='hunk'>@@ -57,17 +74,16 @@ static VALUE rb_mWarning;</div><div class='ctx'> static VALUE rb_cWarningBuffer;</div><div class='ctx'> </div><div class='ctx'> static ID id_warn;</div><div class='add'>+static ID id_category;</div><div class='add'>+static ID id_deprecated;</div><div class='add'>+static ID id_experimental;</div><div class='add'>+static VALUE sym_category;</div><div class='add'>+static VALUE sym_highlight;</div><div class='add'>+static struct {</div><div class='add'>+    st_table *id2enum, *enum2id;</div><div class='add'>+} warning_categories;</div><div class='ctx'> </div><div class='del'>-extern const char ruby_description[];</div><div class='del'>-</div><div class='del'>-static const char REPORTBUG_MSG[] =</div><div class='del'>-	"[NOTE]\n" \</div><div class='del'>-	"You may have encountered a bug in the Ruby interpreter" \</div><div class='del'>-	" or extension libraries.\n" \</div><div class='del'>-	"Bug reports are welcome.\n" \</div><div class='del'>-	""</div><div class='del'>-	"For details: https://www.ruby-lang.org/bugreport.html\n\n" \</div><div class='del'>-    ;</div><div class='add'>+extern const char *rb_dynamic_description;</div><div class='ctx'> </div><div class='ctx'> static const char *</div><div class='ctx'> rb_strerrno(int err)</div><div class='hunk'>@@ -84,78 +100,171 @@ static int</div><div class='ctx'> err_position_0(char *buf, long len, const char *file, int line)</div><div class='ctx'> {</div><div class='ctx'>     if (!file) {</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'>     else if (line == 0) {</div><div class='del'>-	return snprintf(buf, len, "%s: ", file);</div><div class='add'>+        return snprintf(buf, len, "%s: ", file);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return snprintf(buf, len, "%s:%d: ", file, line);</div><div class='add'>+        return snprintf(buf, len, "%s:%d: ", file, line);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 5, 0)</div><div class='ctx'> static VALUE</div><div class='ctx'> err_vcatf(VALUE str, const char *pre, const char *file, int line,</div><div class='del'>-	  const char *fmt, va_list args)</div><div class='add'>+          const char *fmt, va_list args)</div><div class='ctx'> {</div><div class='ctx'>     if (file) {</div><div class='del'>-	rb_str_cat2(str, file);</div><div class='del'>-	if (line) rb_str_catf(str, ":%d", line);</div><div class='del'>-	rb_str_cat2(str, ": ");</div><div class='add'>+        rb_str_cat2(str, file);</div><div class='add'>+        if (line) rb_str_catf(str, ":%d", line);</div><div class='add'>+        rb_str_cat2(str, ": ");</div><div class='ctx'>     }</div><div class='ctx'>     if (pre) rb_str_cat2(str, pre);</div><div class='ctx'>     rb_str_vcatf(str, fmt, args);</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE syntax_error_with_path(VALUE, VALUE, VALUE*, rb_encoding*);</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='ctx'> rb_syntax_error_append(VALUE exc, VALUE file, int line, int column,</div><div class='del'>-		       rb_encoding *enc, const char *fmt, va_list args)</div><div class='add'>+                       rb_encoding *enc, const char *fmt, va_list args)</div><div class='ctx'> {</div><div class='ctx'>     const char *fn = NIL_P(file) ? NULL : RSTRING_PTR(file);</div><div class='ctx'>     if (!exc) {</div><div class='del'>-	VALUE mesg = rb_enc_str_new(0, 0, enc);</div><div class='del'>-	err_vcatf(mesg, NULL, fn, line, fmt, args);</div><div class='del'>-	rb_str_cat2(mesg, "\n");</div><div class='del'>-	rb_write_error_str(mesg);</div><div class='add'>+        VALUE mesg = rb_enc_str_new(0, 0, enc);</div><div class='add'>+        err_vcatf(mesg, NULL, fn, line, fmt, args);</div><div class='add'>+        rb_str_cat2(mesg, "\n");</div><div class='add'>+        rb_write_error_str(mesg);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE mesg;</div><div class='del'>-	if (NIL_P(exc)) {</div><div class='del'>-	    mesg = rb_enc_str_new(0, 0, enc);</div><div class='del'>-	    exc = rb_class_new_instance(1, &amp;mesg, rb_eSyntaxError);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    mesg = rb_attr_get(exc, idMesg);</div><div class='del'>-	    if (RSTRING_LEN(mesg) &gt; 0 &amp;&amp; *(RSTRING_END(mesg)-1) != '\n')</div><div class='del'>-		rb_str_cat_cstr(mesg, "\n");</div><div class='del'>-	}</div><div class='del'>-	err_vcatf(mesg, NULL, fn, line, fmt, args);</div><div class='add'>+        VALUE mesg;</div><div class='add'>+        exc = syntax_error_with_path(exc, file, &amp;mesg, enc);</div><div class='add'>+        err_vcatf(mesg, NULL, fn, line, fmt, args);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return exc;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static unsigned int warning_disabled_categories = (</div><div class='add'>+    1U &lt;&lt; RB_WARN_CATEGORY_DEPRECATED |</div><div class='add'>+    0);</div><div class='add'>+</div><div class='add'>+static unsigned int</div><div class='add'>+rb_warning_category_mask(VALUE category)</div><div class='add'>+{</div><div class='add'>+    return 1U &lt;&lt; rb_warning_category_from_name(category);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+rb_warning_category_t</div><div class='add'>+rb_warning_category_from_name(VALUE category)</div><div class='add'>+{</div><div class='add'>+    st_data_t cat_value;</div><div class='add'>+    ID cat_id;</div><div class='add'>+    Check_Type(category, T_SYMBOL);</div><div class='add'>+    if (!(cat_id = rb_check_id(&amp;category)) ||</div><div class='add'>+        !st_lookup(warning_categories.id2enum, cat_id, &amp;cat_value)) {</div><div class='add'>+        rb_raise(rb_eArgError, "unknown category: %"PRIsVALUE, category);</div><div class='add'>+    }</div><div class='add'>+    return (rb_warning_category_t)cat_value;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_warning_category_to_name(rb_warning_category_t category)</div><div class='add'>+{</div><div class='add'>+    st_data_t id;</div><div class='add'>+    if (!st_lookup(warning_categories.enum2id, category, &amp;id)) {</div><div class='add'>+        rb_raise(rb_eArgError, "invalid category: %d", (int)category);</div><div class='add'>+    }</div><div class='add'>+    return id ? ID2SYM(id) : Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='del'>-ruby_deprecated_internal_feature(const char *func)</div><div class='add'>+rb_warning_category_update(unsigned int mask, unsigned int bits)</div><div class='ctx'> {</div><div class='del'>-    rb_print_backtrace();</div><div class='del'>-    rb_fatal("%s is only for internal use and deprecated; do not use", func);</div><div class='add'>+    warning_disabled_categories &amp;= ~mask;</div><div class='add'>+    warning_disabled_categories |= mask &amp; ~bits;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+MJIT_FUNC_EXPORTED bool</div><div class='add'>+rb_warning_category_enabled_p(rb_warning_category_t category)</div><div class='add'>+{</div><div class='add'>+    return !(warning_disabled_categories &amp; (1U &lt;&lt; category));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    warn(msg)  -&gt; nil</div><div class='add'>+ *    Warning[category]  -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns the flag to show the warning messages for +category+.</div><div class='add'>+ * Supported categories are:</div><div class='add'>+ *</div><div class='add'>+ * +:deprecated+ :: deprecation warnings</div><div class='add'>+ * * assignment of non-nil value to &lt;code&gt;$,&lt;/code&gt; and &lt;code&gt;$;&lt;/code&gt;</div><div class='add'>+ * * keyword arguments</div><div class='add'>+ * * proc/lambda without block</div><div class='add'>+ * etc.</div><div class='add'>+ *</div><div class='add'>+ * +:experimental+ :: experimental features</div><div class='add'>+ * * Pattern matching</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_warning_s_aref(VALUE mod, VALUE category)</div><div class='add'>+{</div><div class='add'>+    rb_warning_category_t cat = rb_warning_category_from_name(category);</div><div class='add'>+    return RBOOL(rb_warning_category_enabled_p(cat));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Warning[category] = flag -&gt; flag</div><div class='add'>+ *</div><div class='add'>+ * Sets the warning flags for +category+.</div><div class='add'>+ * See Warning.[] for the categories.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_warning_s_aset(VALUE mod, VALUE category, VALUE flag)</div><div class='add'>+{</div><div class='add'>+    unsigned int mask = rb_warning_category_mask(category);</div><div class='add'>+    unsigned int disabled = warning_disabled_categories;</div><div class='add'>+    if (!RTEST(flag))</div><div class='add'>+        disabled |= mask;</div><div class='add'>+    else</div><div class='add'>+        disabled &amp;= ~mask;</div><div class='add'>+    warning_disabled_categories = disabled;</div><div class='add'>+    return flag;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    warn(msg, category: nil)  -&gt; nil</div><div class='ctx'>  *</div><div class='ctx'>  * Writes warning message +msg+ to $stderr. This method is called by</div><div class='del'>- * Ruby for all emitted warnings.</div><div class='add'>+ * Ruby for all emitted warnings. A +category+ may be included with</div><div class='add'>+ * the warning.</div><div class='add'>+ *</div><div class='add'>+ * See the documentation of the Warning module for how to customize this.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_warning_s_warn(VALUE mod, VALUE str)</div><div class='add'>+rb_warning_s_warn(int argc, VALUE *argv, VALUE mod)</div><div class='ctx'> {</div><div class='add'>+    VALUE str;</div><div class='add'>+    VALUE opt;</div><div class='add'>+    VALUE category = Qnil;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "1:", &amp;str, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) rb_get_kwargs(opt, &amp;id_category, 0, 1, &amp;category);</div><div class='add'>+</div><div class='ctx'>     Check_Type(str, T_STRING);</div><div class='ctx'>     rb_must_asciicompat(str);</div><div class='add'>+    if (!NIL_P(category)) {</div><div class='add'>+        rb_warning_category_t cat = rb_warning_category_from_name(category);</div><div class='add'>+        if (!rb_warning_category_enabled_p(cat)) return Qnil;</div><div class='add'>+    }</div><div class='ctx'>     rb_write_error_str(str);</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -164,29 +273,76 @@ rb_warning_s_warn(VALUE mod, VALUE str)</div><div class='ctx'>  *  Document-module: Warning</div><div class='ctx'>  *</div><div class='ctx'>  *  The Warning module contains a single method named #warn, and the</div><div class='del'>- *  module extends itself, making &lt;code&gt;Warning.warn&lt;/code&gt; available.</div><div class='add'>+ *  module extends itself, making Warning.warn available.</div><div class='ctx'>  *  Warning.warn is called for all warnings issued by Ruby.</div><div class='ctx'>  *  By default, warnings are printed to $stderr.</div><div class='ctx'>  *</div><div class='del'>- *  By overriding Warning.warn, you can change how warnings are</div><div class='del'>- *  handled by Ruby, either filtering some warnings, and/or outputting</div><div class='del'>- *  warnings somewhere other than $stderr.  When Warning.warn is</div><div class='del'>- *  overridden, super can be called to get the default behavior of</div><div class='del'>- *  printing the warning to $stderr.</div><div class='add'>+ *  Changing the behavior of Warning.warn is useful to customize how warnings are</div><div class='add'>+ *  handled by Ruby, for instance by filtering some warnings, and/or outputting</div><div class='add'>+ *  warnings somewhere other than $stderr.</div><div class='add'>+ *</div><div class='add'>+ *  If you want to change the behavior of Warning.warn you should use</div><div class='add'>+ *  +Warning.extend(MyNewModuleWithWarnMethod)+ and you can use `super`</div><div class='add'>+ *  to get the default behavior of printing the warning to $stderr.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *    module MyWarningFilter</div><div class='add'>+ *      def warn(message, category: nil, **kwargs)</div><div class='add'>+ *        if /some warning I want to ignore/.match?(message)</div><div class='add'>+ *          # ignore</div><div class='add'>+ *        else</div><div class='add'>+ *          super</div><div class='add'>+ *        end</div><div class='add'>+ *      end</div><div class='add'>+ *    end</div><div class='add'>+ *    Warning.extend MyWarningFilter</div><div class='add'>+ *</div><div class='add'>+ *  You should never redefine Warning#warn (the instance method), as that will</div><div class='add'>+ *  then no longer provide a way to use the default behavior.</div><div class='add'>+ *</div><div class='add'>+ *  The +warning+ gem provides convenient ways to customize Warning.warn.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_warning_warn(VALUE mod, VALUE str)</div><div class='ctx'> {</div><div class='ctx'>     return rb_funcallv(mod, id_warn, 1, &amp;str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+rb_warning_warn_arity(void)</div><div class='add'>+{</div><div class='add'>+    const rb_method_entry_t *me = rb_method_entry(rb_singleton_class(rb_mWarning), id_warn);</div><div class='add'>+    return me ? rb_method_entry_arity(me) : 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_warn_category(VALUE str, VALUE category)</div><div class='add'>+{</div><div class='add'>+    if (RUBY_DEBUG &amp;&amp; !NIL_P(category)) {</div><div class='add'>+        rb_warning_category_from_name(category);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (rb_warning_warn_arity() == 1) {</div><div class='add'>+        return rb_warning_warn(rb_mWarning, str);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        VALUE args[2];</div><div class='add'>+        args[0] = str;</div><div class='add'>+        args[1] = rb_hash_new();</div><div class='add'>+        rb_hash_aset(args[1], sym_category, category);</div><div class='add'>+        return rb_funcallv_kw(rb_mWarning, id_warn, 2, args, RB_PASS_KEYWORDS);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> rb_write_warning_str(VALUE str)</div><div class='ctx'> {</div><div class='ctx'>     rb_warning_warn(rb_mWarning, str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 4, 0)</div><div class='ctx'> static VALUE</div><div class='ctx'> warn_vsprintf(rb_encoding *enc, const char *file, int line, const char *fmt, va_list args)</div><div class='ctx'> {</div><div class='hunk'>@@ -196,35 +352,45 @@ warn_vsprintf(rb_encoding *enc, const char *file, int line, const char *fmt, va_</div><div class='ctx'>     return rb_str_cat2(str, "\n");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#define with_warn_vsprintf(file, line, fmt) \</div><div class='add'>+    VALUE str; \</div><div class='add'>+    va_list args; \</div><div class='add'>+    va_start(args, fmt); \</div><div class='add'>+    str = warn_vsprintf(NULL, file, line, fmt, args); \</div><div class='add'>+    va_end(args);</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> rb_compile_warn(const char *file, int line, const char *fmt, ...)</div><div class='ctx'> {</div><div class='del'>-    VALUE str;</div><div class='del'>-    va_list args;</div><div class='del'>-</div><div class='del'>-    if (NIL_P(ruby_verbose)) return;</div><div class='del'>-</div><div class='del'>-    va_start(args, fmt);</div><div class='del'>-    str = warn_vsprintf(NULL, file, line, fmt, args);</div><div class='del'>-    va_end(args);</div><div class='del'>-    rb_write_warning_str(str);</div><div class='add'>+    if (!NIL_P(ruby_verbose)) {</div><div class='add'>+        with_warn_vsprintf(file, line, fmt) {</div><div class='add'>+            rb_write_warning_str(str);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* rb_compile_warning() reports only in verbose mode */</div><div class='ctx'> void</div><div class='ctx'> rb_compile_warning(const char *file, int line, const char *fmt, ...)</div><div class='ctx'> {</div><div class='del'>-    VALUE str;</div><div class='del'>-    va_list args;</div><div class='del'>-</div><div class='del'>-    if (!RTEST(ruby_verbose)) return;</div><div class='add'>+    if (RTEST(ruby_verbose)) {</div><div class='add'>+        with_warn_vsprintf(file, line, fmt) {</div><div class='add'>+            rb_write_warning_str(str);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    va_start(args, fmt);</div><div class='del'>-    str = warn_vsprintf(NULL, file, line, fmt, args);</div><div class='del'>-    va_end(args);</div><div class='del'>-    rb_write_warning_str(str);</div><div class='add'>+void</div><div class='add'>+rb_category_compile_warn(rb_warning_category_t category, const char *file, int line, const char *fmt, ...)</div><div class='add'>+{</div><div class='add'>+    if (!NIL_P(ruby_verbose)) {</div><div class='add'>+        with_warn_vsprintf(file, line, fmt) {</div><div class='add'>+            rb_warn_category(str, rb_warning_category_to_name(category));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0)</div><div class='ctx'> static VALUE</div><div class='ctx'> warning_string(rb_encoding *enc, const char *fmt, va_list args)</div><div class='ctx'> {</div><div class='hunk'>@@ -234,8 +400,10 @@ warning_string(rb_encoding *enc, const char *fmt, va_list args)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define with_warning_string(mesg, enc, fmt) \</div><div class='add'>+    with_warning_string_from(mesg, enc, fmt, fmt)</div><div class='add'>+#define with_warning_string_from(mesg, enc, fmt, last_arg) \</div><div class='ctx'>     VALUE mesg; \</div><div class='del'>-    va_list args; va_start(args, fmt); \</div><div class='add'>+    va_list args; va_start(args, last_arg); \</div><div class='ctx'>     mesg = warning_string(enc, fmt, args); \</div><div class='ctx'>     va_end(args);</div><div class='ctx'> </div><div class='hunk'>@@ -243,9 +411,19 @@ void</div><div class='ctx'> rb_warn(const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (!NIL_P(ruby_verbose)) {</div><div class='del'>-	with_warning_string(mesg, 0, fmt) {</div><div class='del'>-	    rb_write_warning_str(mesg);</div><div class='del'>-	}</div><div class='add'>+        with_warning_string(mesg, 0, fmt) {</div><div class='add'>+            rb_write_warning_str(mesg);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_category_warn(rb_warning_category_t category, const char *fmt, ...)</div><div class='add'>+{</div><div class='add'>+    if (!NIL_P(ruby_verbose) &amp;&amp; rb_warning_category_enabled_p(category)) {</div><div class='add'>+        with_warning_string(mesg, 0, fmt) {</div><div class='add'>+            rb_warn_category(mesg, rb_warning_category_to_name(category));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -253,9 +431,9 @@ void</div><div class='ctx'> rb_enc_warn(rb_encoding *enc, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (!NIL_P(ruby_verbose)) {</div><div class='del'>-	with_warning_string(mesg, enc, fmt) {</div><div class='del'>-	    rb_write_warning_str(mesg);</div><div class='del'>-	}</div><div class='add'>+        with_warning_string(mesg, enc, fmt) {</div><div class='add'>+            rb_write_warning_str(mesg);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -264,9 +442,20 @@ void</div><div class='ctx'> rb_warning(const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(ruby_verbose)) {</div><div class='del'>-	with_warning_string(mesg, 0, fmt) {</div><div class='del'>-	    rb_write_warning_str(mesg);</div><div class='del'>-	}</div><div class='add'>+        with_warning_string(mesg, 0, fmt) {</div><div class='add'>+            rb_write_warning_str(mesg);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* rb_category_warning() reports only in verbose mode */</div><div class='add'>+void</div><div class='add'>+rb_category_warning(rb_warning_category_t category, const char *fmt, ...)</div><div class='add'>+{</div><div class='add'>+    if (RTEST(ruby_verbose) &amp;&amp; rb_warning_category_enabled_p(category)) {</div><div class='add'>+        with_warning_string(mesg, 0, fmt) {</div><div class='add'>+            rb_warn_category(mesg, rb_warning_category_to_name(category));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -283,18 +472,59 @@ void</div><div class='ctx'> rb_enc_warning(rb_encoding *enc, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(ruby_verbose)) {</div><div class='del'>-	with_warning_string(mesg, enc, fmt) {</div><div class='del'>-	    rb_write_warning_str(mesg);</div><div class='del'>-	}</div><div class='add'>+        with_warning_string(mesg, enc, fmt) {</div><div class='add'>+            rb_write_warning_str(mesg);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+static bool</div><div class='add'>+deprecation_warning_enabled(void)</div><div class='add'>+{</div><div class='add'>+    if (NIL_P(ruby_verbose)) return false;</div><div class='add'>+    if (!rb_warning_category_enabled_p(RB_WARN_CATEGORY_DEPRECATED)) return false;</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+warn_deprecated(VALUE mesg, const char *removal, const char *suggest)</div><div class='add'>+{</div><div class='add'>+    rb_str_set_len(mesg, RSTRING_LEN(mesg) - 1);</div><div class='add'>+    rb_str_cat_cstr(mesg, " is deprecated");</div><div class='add'>+    if (removal) {</div><div class='add'>+        rb_str_catf(mesg, " and will be removed in Ruby %s", removal);</div><div class='add'>+    }</div><div class='add'>+    if (suggest) rb_str_catf(mesg, "; use %s instead", suggest);</div><div class='add'>+    rb_str_cat_cstr(mesg, "\n");</div><div class='add'>+    rb_warn_category(mesg, ID2SYM(id_deprecated));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_warn_deprecated(const char *fmt, const char *suggest, ...)</div><div class='add'>+{</div><div class='add'>+    if (!deprecation_warning_enabled()) return;</div><div class='add'>+</div><div class='add'>+    with_warning_string_from(mesg, 0, fmt, suggest) {</div><div class='add'>+        warn_deprecated(mesg, NULL, suggest);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_warn_deprecated_to_remove(const char *removal, const char *fmt, const char *suggest, ...)</div><div class='add'>+{</div><div class='add'>+    if (!deprecation_warning_enabled()) return;</div><div class='add'>+</div><div class='add'>+    with_warning_string_from(mesg, 0, fmt, suggest) {</div><div class='add'>+        warn_deprecated(mesg, removal, suggest);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static inline int</div><div class='ctx'> end_with_asciichar(VALUE str, int c)</div><div class='ctx'> {</div><div class='ctx'>     return RB_TYPE_P(str, T_STRING) &amp;&amp;</div><div class='del'>-	rb_str_end_with_asciichar(str, c);</div><div class='add'>+        rb_str_end_with_asciichar(str, c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='hunk'>@@ -302,104 +532,63 @@ static VALUE</div><div class='ctx'> warning_write(int argc, VALUE *argv, VALUE buf)</div><div class='ctx'> {</div><div class='ctx'>     while (argc-- &gt; 0) {</div><div class='del'>-	rb_str_append(buf, *argv++);</div><div class='add'>+        rb_str_append(buf, *argv++);</div><div class='ctx'>     }</div><div class='ctx'>     return buf;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *    warn(msg, ...)   -&gt; nil</div><div class='del'>- *</div><div class='del'>- * If warnings have been disabled (for example with the</div><div class='del'>- * &lt;code&gt;-W0&lt;/code&gt; flag), does nothing.  Otherwise,</div><div class='del'>- * converts each of the messages to strings, appends a newline</div><div class='del'>- * character to the string if the string does not end in a newline,</div><div class='del'>- * and calls &lt;code&gt;Warning.warn&lt;/code&gt; with the string.</div><div class='del'>- *</div><div class='del'>- *    warn("warning 1", "warning 2")</div><div class='del'>- *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='del'>- *</div><div class='del'>- *    warning 1</div><div class='del'>- *    warning 2</div><div class='del'>- *</div><div class='del'>- * If the &lt;code&gt;uplevel&lt;/code&gt; keyword argument is given, the string will</div><div class='del'>- * be prepended with information for the given caller frame in</div><div class='del'>- * the same format used by the &lt;code&gt;rb_warn&lt;/code&gt; C function.</div><div class='del'>- *</div><div class='del'>- *    # In baz.rb</div><div class='del'>- *    def foo</div><div class='del'>- *      warn("invalid call to foo", uplevel: 1)</div><div class='del'>- *    end</div><div class='del'>- *</div><div class='del'>- *    def bar</div><div class='del'>- *      foo</div><div class='del'>- *    end</div><div class='del'>- *</div><div class='del'>- *    bar</div><div class='del'>- *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='del'>- *</div><div class='del'>- *    baz.rb:6: warning: invalid call to foo</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_warn_m(int argc, VALUE *argv, VALUE exc)</div><div class='del'>-{</div><div class='del'>-    VALUE opts, location = Qnil;</div><div class='del'>-</div><div class='del'>-    if (!NIL_P(ruby_verbose) &amp;&amp; argc &gt; 0 &amp;&amp;</div><div class='del'>-	    (argc = rb_scan_args(argc, argv, "*:", NULL, &amp;opts)) &gt; 0) {</div><div class='del'>-	VALUE str = argv[0], uplevel = Qnil;</div><div class='del'>-	if (!NIL_P(opts)) {</div><div class='del'>-	    static ID kwds[1];</div><div class='del'>-	    if (!kwds[0]) {</div><div class='del'>-		CONST_ID(kwds[0], "uplevel");</div><div class='del'>-	    }</div><div class='del'>-	    rb_get_kwargs(opts, kwds, 0, 1, &amp;uplevel);</div><div class='del'>-	    if (uplevel == Qundef) {</div><div class='del'>-		uplevel = Qnil;</div><div class='del'>-	    }</div><div class='del'>-	    else if (!NIL_P(uplevel)) {</div><div class='del'>-		VALUE args[2];</div><div class='del'>-		long lev = NUM2LONG(uplevel);</div><div class='del'>-		if (lev &lt; 0) {</div><div class='del'>-		    rb_raise(rb_eArgError, "negative level (%ld)", lev);</div><div class='del'>-		}</div><div class='del'>-		args[0] = LONG2NUM(lev + 1);</div><div class='del'>-		args[1] = INT2FIX(1);</div><div class='del'>-		location = rb_vm_thread_backtrace_locations(2, args, GET_THREAD()-&gt;self);</div><div class='del'>-		if (!NIL_P(location)) {</div><div class='del'>-		    location = rb_ary_entry(location, 0);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (argc &gt; 1 || !NIL_P(uplevel) || !end_with_asciichar(str, '\n')) {</div><div class='del'>-	    VALUE path;</div><div class='del'>-	    if (NIL_P(uplevel)) {</div><div class='del'>-		str = rb_str_tmp_new(0);</div><div class='del'>-	    }</div><div class='del'>-	    else if (NIL_P(location) ||</div><div class='del'>-		     NIL_P(path = rb_funcall(location, rb_intern("path"), 0))) {</div><div class='del'>-		str = rb_str_new_cstr("warning: ");</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		str = rb_sprintf("%s:%ld: warning: ",</div><div class='del'>-		    rb_string_value_ptr(&amp;path),</div><div class='del'>-		    NUM2LONG(rb_funcall(location, rb_intern("lineno"), 0)));</div><div class='del'>-	    }</div><div class='del'>-	    RBASIC_SET_CLASS(str, rb_cWarningBuffer);</div><div class='del'>-	    rb_io_puts(argc, argv, str);</div><div class='del'>-	    RBASIC_SET_CLASS(str, rb_cString);</div><div class='del'>-	}</div><div class='del'>-	if (exc == rb_mWarning) {</div><div class='del'>-	    rb_must_asciicompat(str);</div><div class='del'>-	    rb_write_error_str(str);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_write_warning_str(str);</div><div class='del'>-	}</div><div class='add'>+VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n, bool skip_internal);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_warn_m(rb_execution_context_t *ec, VALUE exc, VALUE msgs, VALUE uplevel, VALUE category)</div><div class='add'>+{</div><div class='add'>+    VALUE location = Qnil;</div><div class='add'>+    int argc = RARRAY_LENINT(msgs);</div><div class='add'>+    const VALUE *argv = RARRAY_CONST_PTR(msgs);</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(ruby_verbose) &amp;&amp; argc &gt; 0) {</div><div class='add'>+        VALUE str = argv[0];</div><div class='add'>+        if (!NIL_P(uplevel)) {</div><div class='add'>+            long lev = NUM2LONG(uplevel);</div><div class='add'>+            if (lev &lt; 0) {</div><div class='add'>+                rb_raise(rb_eArgError, "negative level (%ld)", lev);</div><div class='add'>+            }</div><div class='add'>+            location = rb_ec_backtrace_location_ary(ec, lev + 1, 1, TRUE);</div><div class='add'>+            if (!NIL_P(location)) {</div><div class='add'>+                location = rb_ary_entry(location, 0);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (argc &gt; 1 || !NIL_P(uplevel) || !end_with_asciichar(str, '\n')) {</div><div class='add'>+            VALUE path;</div><div class='add'>+            if (NIL_P(uplevel)) {</div><div class='add'>+                str = rb_str_tmp_new(0);</div><div class='add'>+            }</div><div class='add'>+            else if (NIL_P(location) ||</div><div class='add'>+                     NIL_P(path = rb_funcall(location, rb_intern("path"), 0))) {</div><div class='add'>+                str = rb_str_new_cstr("warning: ");</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                str = rb_sprintf("%s:%ld: warning: ",</div><div class='add'>+                    rb_string_value_ptr(&amp;path),</div><div class='add'>+                    NUM2LONG(rb_funcall(location, rb_intern("lineno"), 0)));</div><div class='add'>+            }</div><div class='add'>+            RBASIC_SET_CLASS(str, rb_cWarningBuffer);</div><div class='add'>+            rb_io_puts(argc, argv, str);</div><div class='add'>+            RBASIC_SET_CLASS(str, rb_cString);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (!NIL_P(category)) {</div><div class='add'>+            category = rb_to_symbol_type(category);</div><div class='add'>+            rb_warning_category_from_name(category);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (exc == rb_mWarning) {</div><div class='add'>+            rb_must_asciicompat(str);</div><div class='add'>+            rb_write_error_str(str);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_warn_category(str, category);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -418,7 +607,7 @@ rb_bug_reporter_add(void (*func)(FILE *, void *), void *data)</div><div class='ctx'> {</div><div class='ctx'>     struct bug_reporters *reporter;</div><div class='ctx'>     if (bug_reporters_size &gt;= MAX_BUG_REPORTERS) {</div><div class='del'>-	return 0; /* failed to register */</div><div class='add'>+        return 0; /* failed to register */</div><div class='ctx'>     }</div><div class='ctx'>     reporter = &amp;bug_reporters[bug_reporters_size++];</div><div class='ctx'>     reporter-&gt;func = func;</div><div class='hunk'>@@ -437,9 +626,10 @@ bug_report_file(const char *file, int line)</div><div class='ctx'>     int len = err_position_0(buf, sizeof(buf), file, line);</div><div class='ctx'> </div><div class='ctx'>     if ((ssize_t)fwrite(buf, 1, len, out) == (ssize_t)len ||</div><div class='del'>-	(ssize_t)fwrite(buf, 1, len, (out = stdout)) == (ssize_t)len) {</div><div class='del'>-	return out;</div><div class='add'>+        (ssize_t)fwrite(buf, 1, len, (out = stdout)) == (ssize_t)len) {</div><div class='add'>+        return out;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     return NULL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -453,40 +643,45 @@ bug_important_message(FILE *out, const char *const msg, size_t len)</div><div class='ctx'> </div><div class='ctx'>     if (!len) return;</div><div class='ctx'>     if (isatty(fileno(out))) {</div><div class='del'>-	static const char red[] = "\033[;31;1;7m";</div><div class='del'>-	static const char green[] = "\033[;32;7m";</div><div class='del'>-	static const char reset[] = "\033[m";</div><div class='del'>-	const char *e = strchr(p, '\n');</div><div class='del'>-	const int w = (int)(e - p);</div><div class='del'>-	do {</div><div class='del'>-	    int i = (int)(e - p);</div><div class='del'>-	    fputs(*p == ' ' ? green : red, out);</div><div class='del'>-	    fwrite(p, 1, e - p, out);</div><div class='del'>-	    for (; i &lt; w; ++i) fputc(' ', out);</div><div class='del'>-	    fputs(reset, out);</div><div class='del'>-	    fputc('\n', out);</div><div class='del'>-	} while ((p = e + 1) &lt; endmsg &amp;&amp; (e = strchr(p, '\n')) != 0 &amp;&amp; e &gt; p + 1);</div><div class='add'>+        static const char red[] = "\033[;31;1;7m";</div><div class='add'>+        static const char green[] = "\033[;32;7m";</div><div class='add'>+        static const char reset[] = "\033[m";</div><div class='add'>+        const char *e = strchr(p, '\n');</div><div class='add'>+        const int w = (int)(e - p);</div><div class='add'>+        do {</div><div class='add'>+            int i = (int)(e - p);</div><div class='add'>+            fputs(*p == ' ' ? green : red, out);</div><div class='add'>+            fwrite(p, 1, e - p, out);</div><div class='add'>+            for (; i &lt; w; ++i) fputc(' ', out);</div><div class='add'>+            fputs(reset, out);</div><div class='add'>+            fputc('\n', out);</div><div class='add'>+        } while ((p = e + 1) &lt; endmsg &amp;&amp; (e = strchr(p, '\n')) != 0 &amp;&amp; e &gt; p + 1);</div><div class='ctx'>     }</div><div class='ctx'>     fwrite(p, 1, endmsg - p, out);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#undef CRASH_REPORTER_MAY_BE_CREATED</div><div class='add'>+#if defined(__APPLE__) &amp;&amp; \</div><div class='add'>+    (!defined(MAC_OS_X_VERSION_10_6) || MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_10_6 || defined(__POWERPC__)) /* 10.6 PPC case */</div><div class='add'>+# define CRASH_REPORTER_MAY_BE_CREATED</div><div class='add'>+#endif</div><div class='ctx'> static void</div><div class='ctx'> preface_dump(FILE *out)</div><div class='ctx'> {</div><div class='ctx'> #if defined __APPLE__</div><div class='ctx'>     static const char msg[] = ""</div><div class='del'>-	"-- Crash Report log information "</div><div class='del'>-	"--------------------------------------------\n"</div><div class='del'>-	"   See Crash Report log file under the one of following:\n"</div><div class='del'>-# if MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_10_6</div><div class='del'>-	"     * ~/Library/Logs/CrashReporter\n"</div><div class='del'>-	"     * /Library/Logs/CrashReporter\n"</div><div class='add'>+        "-- Crash Report log information "</div><div class='add'>+        "--------------------------------------------\n"</div><div class='add'>+        "   See Crash Report log file in one of the following locations:\n"</div><div class='add'>+# ifdef CRASH_REPORTER_MAY_BE_CREATED</div><div class='add'>+        "     * ~/Library/Logs/CrashReporter\n"</div><div class='add'>+        "     * /Library/Logs/CrashReporter\n"</div><div class='ctx'> # endif</div><div class='del'>-	"     * ~/Library/Logs/DiagnosticReports\n"</div><div class='del'>-	"     * /Library/Logs/DiagnosticReports\n"</div><div class='del'>-	"   for more details.\n"</div><div class='del'>-	"Don't forget to include the above Crash Report log file in bug reports.\n"</div><div class='del'>-	"\n";</div><div class='add'>+        "     * ~/Library/Logs/DiagnosticReports\n"</div><div class='add'>+        "     * /Library/Logs/DiagnosticReports\n"</div><div class='add'>+        "   for more details.\n"</div><div class='add'>+        "Don't forget to include the above Crash Report log file in bug reports.\n"</div><div class='add'>+        "\n";</div><div class='ctx'>     const size_t msglen = sizeof(msg) - 1;</div><div class='ctx'> #else</div><div class='ctx'>     const char *msg = NULL;</div><div class='hunk'>@@ -500,15 +695,15 @@ postscript_dump(FILE *out)</div><div class='ctx'> {</div><div class='ctx'> #if defined __APPLE__</div><div class='ctx'>     static const char msg[] = ""</div><div class='del'>-	"[IMPORTANT]"</div><div class='del'>-	/*" ------------------------------------------------"*/</div><div class='del'>-	"\n""Don't forget to include the Crash Report log file under\n"</div><div class='del'>-# if MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_10_6</div><div class='del'>-	"CrashReporter or "</div><div class='add'>+        "[IMPORTANT]"</div><div class='add'>+        /*" ------------------------------------------------"*/</div><div class='add'>+        "\n""Don't forget to include the Crash Report log file under\n"</div><div class='add'>+# ifdef CRASH_REPORTER_MAY_BE_CREATED</div><div class='add'>+        "CrashReporter or "</div><div class='ctx'> # endif</div><div class='del'>-	"DiagnosticReports directory in bug reports.\n"</div><div class='del'>-	/*"------------------------------------------------------------\n"*/</div><div class='del'>-	"\n";</div><div class='add'>+        "DiagnosticReports directory in bug reports.\n"</div><div class='add'>+        /*"------------------------------------------------------------\n"*/</div><div class='add'>+        "\n";</div><div class='ctx'>     const size_t msglen = sizeof(msg) - 1;</div><div class='ctx'> #else</div><div class='ctx'>     const char *msg = NULL;</div><div class='hunk'>@@ -517,6 +712,7 @@ postscript_dump(FILE *out)</div><div class='ctx'>     bug_important_message(out, msg, msglen);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0)</div><div class='ctx'> static void</div><div class='ctx'> bug_report_begin_valist(FILE *out, const char *fmt, va_list args)</div><div class='ctx'> {</div><div class='hunk'>@@ -525,7 +721,7 @@ bug_report_begin_valist(FILE *out, const char *fmt, va_list args)</div><div class='ctx'>     fputs("[BUG] ", out);</div><div class='ctx'>     vsnprintf(buf, sizeof(buf), fmt, args);</div><div class='ctx'>     fputs(buf, out);</div><div class='del'>-    snprintf(buf, sizeof(buf), "\n%s\n\n", ruby_description);</div><div class='add'>+    snprintf(buf, sizeof(buf), "\n%s\n\n", rb_dynamic_description);</div><div class='ctx'>     fputs(buf, out);</div><div class='ctx'>     preface_dump(out);</div><div class='ctx'> }</div><div class='hunk'>@@ -542,31 +738,30 @@ bug_report_end(FILE *out)</div><div class='ctx'> {</div><div class='ctx'>     /* call additional bug reporters */</div><div class='ctx'>     {</div><div class='del'>-	int i;</div><div class='del'>-	for (i=0; i&lt;bug_reporters_size; i++) {</div><div class='del'>-	    struct bug_reporters *reporter = &amp;bug_reporters[i];</div><div class='del'>-	    (*reporter-&gt;func)(out, reporter-&gt;data);</div><div class='del'>-	}</div><div class='add'>+        int i;</div><div class='add'>+        for (i=0; i&lt;bug_reporters_size; i++) {</div><div class='add'>+            struct bug_reporters *reporter = &amp;bug_reporters[i];</div><div class='add'>+            (*reporter-&gt;func)(out, reporter-&gt;data);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    fputs(REPORTBUG_MSG, out);</div><div class='ctx'>     postscript_dump(out);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define report_bug(file, line, fmt, ctx) do { \</div><div class='ctx'>     FILE *out = bug_report_file(file, line); \</div><div class='ctx'>     if (out) { \</div><div class='del'>-	bug_report_begin(out, fmt); \</div><div class='del'>-	rb_vm_bugreport(ctx); \</div><div class='del'>-	bug_report_end(out); \</div><div class='add'>+        bug_report_begin(out, fmt); \</div><div class='add'>+        rb_vm_bugreport(ctx); \</div><div class='add'>+        bug_report_end(out); \</div><div class='ctx'>     } \</div><div class='ctx'> } while (0) \</div><div class='ctx'> </div><div class='ctx'> #define report_bug_valist(file, line, fmt, ctx, args) do { \</div><div class='ctx'>     FILE *out = bug_report_file(file, line); \</div><div class='ctx'>     if (out) { \</div><div class='del'>-	bug_report_begin_valist(out, fmt, args); \</div><div class='del'>-	rb_vm_bugreport(ctx); \</div><div class='del'>-	bug_report_end(out); \</div><div class='add'>+        bug_report_begin_valist(out, fmt, args); \</div><div class='add'>+        rb_vm_bugreport(ctx); \</div><div class='add'>+        bug_report_end(out); \</div><div class='ctx'>     } \</div><div class='ctx'> } while (0) \</div><div class='ctx'> </div><div class='hunk'>@@ -581,33 +776,44 @@ die(void)</div><div class='ctx'>     abort();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 0)</div><div class='ctx'> void</div><div class='del'>-rb_bug(const char *fmt, ...)</div><div class='add'>+rb_bug_without_die(const char *fmt, va_list args)</div><div class='ctx'> {</div><div class='ctx'>     const char *file = NULL;</div><div class='ctx'>     int line = 0;</div><div class='ctx'> </div><div class='ctx'>     if (GET_EC()) {</div><div class='del'>-	file = rb_source_location_cstr(&amp;line);</div><div class='add'>+        file = rb_source_location_cstr(&amp;line);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    report_bug(file, line, fmt, NULL);</div><div class='add'>+    report_bug_valist(file, line, fmt, NULL, args);</div><div class='add'>+}</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+rb_bug(const char *fmt, ...)</div><div class='add'>+{</div><div class='add'>+    va_list args;</div><div class='add'>+    va_start(args, fmt);</div><div class='add'>+    rb_bug_without_die(fmt, args);</div><div class='add'>+    va_end(args);</div><div class='ctx'>     die();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_bug_context(const void *ctx, const char *fmt, ...)</div><div class='add'>+rb_bug_for_fatal_signal(ruby_sighandler_t default_sighandler, int sig, const void *ctx, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     const char *file = NULL;</div><div class='ctx'>     int line = 0;</div><div class='ctx'> </div><div class='ctx'>     if (GET_EC()) {</div><div class='del'>-	file = rb_source_location_cstr(&amp;line);</div><div class='add'>+        file = rb_source_location_cstr(&amp;line);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     report_bug(file, line, fmt, ctx);</div><div class='ctx'> </div><div class='add'>+    if (default_sighandler) default_sighandler(sig);</div><div class='add'>+</div><div class='ctx'>     die();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -641,19 +847,17 @@ rb_async_bug_errno(const char *mesg, int errno_arg)</div><div class='ctx'>     WRITE_CONST(2, "\n");</div><div class='ctx'> </div><div class='ctx'>     if (errno_arg == 0) {</div><div class='del'>-	WRITE_CONST(2, "errno == 0 (NOERROR)\n");</div><div class='add'>+        WRITE_CONST(2, "errno == 0 (NOERROR)\n");</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	const char *errno_str = rb_strerrno(errno_arg);</div><div class='add'>+        const char *errno_str = rb_strerrno(errno_arg);</div><div class='ctx'> </div><div class='del'>-	if (!errno_str)</div><div class='del'>-	    errno_str = "undefined errno";</div><div class='del'>-	write_or_abort(2, errno_str, strlen(errno_str));</div><div class='add'>+        if (!errno_str)</div><div class='add'>+            errno_str = "undefined errno";</div><div class='add'>+        write_or_abort(2, errno_str, strlen(errno_str));</div><div class='ctx'>     }</div><div class='ctx'>     WRITE_CONST(2, "\n\n");</div><div class='del'>-    write_or_abort(2, ruby_description, strlen(ruby_description));</div><div class='del'>-    WRITE_CONST(2, "\n\n");</div><div class='del'>-    WRITE_CONST(2, REPORTBUG_MSG);</div><div class='add'>+    write_or_abort(2, rb_dynamic_description, strlen(rb_dynamic_description));</div><div class='ctx'>     abort();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -669,7 +873,7 @@ rb_assert_failure(const char *file, int line, const char *name, const char *expr</div><div class='ctx'>     FILE *out = stderr;</div><div class='ctx'>     fprintf(out, "Assertion Failed: %s:%d:", file, line);</div><div class='ctx'>     if (name) fprintf(out, "%s:", name);</div><div class='del'>-    fprintf(out, "%s\n%s\n\n", expr, ruby_description);</div><div class='add'>+    fprintf(out, "%s\n%s\n\n", expr, rb_dynamic_description);</div><div class='ctx'>     preface_dump(out);</div><div class='ctx'>     rb_vm_bugreport(NULL);</div><div class='ctx'>     bug_report_end(out);</div><div class='hunk'>@@ -687,7 +891,7 @@ static const char builtin_types[][10] = {</div><div class='ctx'>     "Array",</div><div class='ctx'>     "Hash",</div><div class='ctx'>     "Struct",</div><div class='del'>-    "Bignum",</div><div class='add'>+    "Integer",</div><div class='ctx'>     "File",</div><div class='ctx'>     "Data",			/* internal use: wrapped C pointers */</div><div class='ctx'>     "MatchData",		/* data of $~ */</div><div class='hunk'>@@ -698,14 +902,14 @@ static const char builtin_types[][10] = {</div><div class='ctx'>     "true",</div><div class='ctx'>     "false",</div><div class='ctx'>     "Symbol",			/* :symbol */</div><div class='del'>-    "Fixnum",</div><div class='add'>+    "Integer",</div><div class='ctx'>     "undef",			/* internal use: #undef; should not happen */</div><div class='ctx'>     "",				/* 0x17 */</div><div class='ctx'>     "",				/* 0x18 */</div><div class='ctx'>     "",				/* 0x19 */</div><div class='del'>-    "Memo",			/* internal use: general memo */</div><div class='del'>-    "Node",			/* internal use: syntax tree node */</div><div class='del'>-    "iClass",			/* internal use: mixed-in module holder */</div><div class='add'>+    "&lt;Memo&gt;",			/* internal use: general memo */</div><div class='add'>+    "&lt;Node&gt;",			/* internal use: syntax tree node */</div><div class='add'>+    "&lt;iClass&gt;", 		/* internal use: mixed-in module holder */</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> const char *</div><div class='hunk'>@@ -718,28 +922,39 @@ rb_builtin_type_name(int t)</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+displaying_class_of(VALUE x)</div><div class='add'>+{</div><div class='add'>+    switch (x) {</div><div class='add'>+      case Qfalse: return rb_fstring_cstr("false");</div><div class='add'>+      case Qnil:   return rb_fstring_cstr("nil");</div><div class='add'>+      case Qtrue:  return rb_fstring_cstr("true");</div><div class='add'>+      default:     return rb_obj_class(x);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static const char *</div><div class='ctx'> builtin_class_name(VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     const char *etype;</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(x)) {</div><div class='del'>-	etype = "nil";</div><div class='add'>+        etype = "nil";</div><div class='ctx'>     }</div><div class='ctx'>     else if (FIXNUM_P(x)) {</div><div class='del'>-	etype = "Integer";</div><div class='add'>+        etype = "Integer";</div><div class='ctx'>     }</div><div class='ctx'>     else if (SYMBOL_P(x)) {</div><div class='del'>-	etype = "Symbol";</div><div class='add'>+        etype = "Symbol";</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(x, T_TRUE)) {</div><div class='del'>-	etype = "true";</div><div class='add'>+        etype = "true";</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(x, T_FALSE)) {</div><div class='del'>-	etype = "false";</div><div class='add'>+        etype = "false";</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	etype = NULL;</div><div class='add'>+        etype = NULL;</div><div class='ctx'>     }</div><div class='ctx'>     return etype;</div><div class='ctx'> }</div><div class='hunk'>@@ -750,12 +965,12 @@ rb_builtin_class_name(VALUE x)</div><div class='ctx'>     const char *etype = builtin_class_name(x);</div><div class='ctx'> </div><div class='ctx'>     if (!etype) {</div><div class='del'>-	etype = rb_obj_classname(x);</div><div class='add'>+        etype = rb_obj_classname(x);</div><div class='ctx'>     }</div><div class='ctx'>     return etype;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-NORETURN(static void unexpected_type(VALUE, int, int));</div><div class='add'>+COLDFUNC NORETURN(static void unexpected_type(VALUE, int, int));</div><div class='ctx'> #define UNDEF_LEAKED "undef leaked to the Ruby space"</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -765,21 +980,16 @@ unexpected_type(VALUE x, int xt, int t)</div><div class='ctx'>     VALUE mesg, exc = rb_eFatal;</div><div class='ctx'> </div><div class='ctx'>     if (tname) {</div><div class='del'>-	const char *cname = builtin_class_name(x);</div><div class='del'>-	if (cname)</div><div class='del'>-	    mesg = rb_sprintf("wrong argument type %s (expected %s)",</div><div class='del'>-			      cname, tname);</div><div class='del'>-	else</div><div class='del'>-	    mesg = rb_sprintf("wrong argument type %"PRIsVALUE" (expected %s)",</div><div class='del'>-			      rb_obj_class(x), tname);</div><div class='del'>-	exc = rb_eTypeError;</div><div class='add'>+        mesg = rb_sprintf("wrong argument type %"PRIsVALUE" (expected %s)",</div><div class='add'>+                          displaying_class_of(x), tname);</div><div class='add'>+        exc = rb_eTypeError;</div><div class='ctx'>     }</div><div class='ctx'>     else if (xt &gt; T_MASK &amp;&amp; xt &lt;= 0x3f) {</div><div class='del'>-	mesg = rb_sprintf("unknown type 0x%x (0x%x given, probably comes"</div><div class='del'>-			  " from extension library for ruby 1.8)", t, xt);</div><div class='add'>+        mesg = rb_sprintf("unknown type 0x%x (0x%x given, probably comes"</div><div class='add'>+                          " from extension library for ruby 1.8)", t, xt);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	mesg = rb_sprintf("unknown type 0x%x (0x%x given)", t, xt);</div><div class='add'>+        mesg = rb_sprintf("unknown type 0x%x (0x%x given)", t, xt);</div><div class='ctx'>     }</div><div class='ctx'>     rb_exc_raise(rb_exc_new_str(exc, mesg));</div><div class='ctx'> }</div><div class='hunk'>@@ -789,21 +999,29 @@ rb_check_type(VALUE x, int t)</div><div class='ctx'> {</div><div class='ctx'>     int xt;</div><div class='ctx'> </div><div class='del'>-    if (x == Qundef) {</div><div class='del'>-	rb_bug(UNDEF_LEAKED);</div><div class='add'>+    if (RB_UNLIKELY(UNDEF_P(x))) {</div><div class='add'>+        rb_bug(UNDEF_LEAKED);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     xt = TYPE(x);</div><div class='del'>-    if (xt != t || (xt == T_DATA &amp;&amp; RTYPEDDATA_P(x))) {</div><div class='del'>-	unexpected_type(x, xt, t);</div><div class='add'>+    if (xt != t || (xt == T_DATA &amp;&amp; rbimpl_rtypeddata_p(x))) {</div><div class='add'>+        /*</div><div class='add'>+         * Typed data is not simple `T_DATA`, but in a sense an</div><div class='add'>+         * extension of `struct RVALUE`, which are incompatible with</div><div class='add'>+         * each other except when inherited.</div><div class='add'>+         *</div><div class='add'>+         * So it is not enough to just check `T_DATA`, it must be</div><div class='add'>+         * identified by its `type` using `Check_TypedStruct` instead.</div><div class='add'>+         */</div><div class='add'>+        unexpected_type(x, xt, t);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_unexpected_type(VALUE x, int t)</div><div class='ctx'> {</div><div class='del'>-    if (x == Qundef) {</div><div class='del'>-	rb_bug(UNDEF_LEAKED);</div><div class='add'>+    if (RB_UNLIKELY(UNDEF_P(x))) {</div><div class='add'>+        rb_bug(UNDEF_LEAKED);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     unexpected_type(x, TYPE(x), t);</div><div class='hunk'>@@ -813,8 +1031,8 @@ int</div><div class='ctx'> rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent)</div><div class='ctx'> {</div><div class='ctx'>     while (child) {</div><div class='del'>-	if (child == parent) return 1;</div><div class='del'>-	child = child-&gt;parent;</div><div class='add'>+        if (child == parent) return 1;</div><div class='add'>+        child = child-&gt;parent;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -823,8 +1041,8 @@ int</div><div class='ctx'> rb_typeddata_is_kind_of(VALUE obj, const rb_data_type_t *data_type)</div><div class='ctx'> {</div><div class='ctx'>     if (!RB_TYPE_P(obj, T_DATA) ||</div><div class='del'>-	!RTYPEDDATA_P(obj) || !rb_typeddata_inherited_p(RTYPEDDATA_TYPE(obj), data_type)) {</div><div class='del'>-	return 0;</div><div class='add'>+        !RTYPEDDATA_P(obj) || !rb_typeddata_inherited_p(RTYPEDDATA_TYPE(obj), data_type)) {</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='hunk'>@@ -839,26 +1057,26 @@ rb_typeddata_is_instance_of(VALUE obj, const rb_data_type_t *data_type)</div><div class='ctx'> void *</div><div class='ctx'> rb_check_typeddata(VALUE obj, const rb_data_type_t *data_type)</div><div class='ctx'> {</div><div class='del'>-    const char *etype;</div><div class='add'>+    VALUE actual;</div><div class='ctx'> </div><div class='ctx'>     if (!RB_TYPE_P(obj, T_DATA)) {</div><div class='del'>-      wrong_type:</div><div class='del'>-	etype = builtin_class_name(obj);</div><div class='del'>-	if (!etype)</div><div class='del'>-	    rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (expected %s)",</div><div class='del'>-		     rb_obj_class(obj), data_type-&gt;wrap_struct_name);</div><div class='del'>-      wrong_datatype:</div><div class='del'>-	rb_raise(rb_eTypeError, "wrong argument type %s (expected %s)",</div><div class='del'>-		 etype, data_type-&gt;wrap_struct_name);</div><div class='del'>-    }</div><div class='del'>-    if (!RTYPEDDATA_P(obj)) {</div><div class='del'>-	goto wrong_type;</div><div class='add'>+        actual = displaying_class_of(obj);</div><div class='add'>+    }</div><div class='add'>+    else if (!RTYPEDDATA_P(obj)) {</div><div class='add'>+        actual = displaying_class_of(obj);</div><div class='ctx'>     }</div><div class='ctx'>     else if (!rb_typeddata_inherited_p(RTYPEDDATA_TYPE(obj), data_type)) {</div><div class='del'>-	etype = RTYPEDDATA_TYPE(obj)-&gt;wrap_struct_name;</div><div class='del'>-	goto wrong_datatype;</div><div class='add'>+        const char *name = RTYPEDDATA_TYPE(obj)-&gt;wrap_struct_name;</div><div class='add'>+        actual = rb_str_new_cstr(name); /* or rb_fstring_cstr? not sure... */</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return DATA_PTR(obj);</div><div class='ctx'>     }</div><div class='del'>-    return DATA_PTR(obj);</div><div class='add'>+</div><div class='add'>+    const char *expected = data_type-&gt;wrap_struct_name;</div><div class='add'>+    rb_raise(rb_eTypeError, "wrong argument type %"PRIsVALUE" (expected %s)",</div><div class='add'>+             actual, expected);</div><div class='add'>+    UNREACHABLE_RETURN(NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* exception classes */</div><div class='hunk'>@@ -883,6 +1101,8 @@ VALUE rb_eSecurityError;</div><div class='ctx'> VALUE rb_eNotImpError;</div><div class='ctx'> VALUE rb_eNoMemError;</div><div class='ctx'> VALUE rb_cNameErrorMesg;</div><div class='add'>+VALUE rb_eNoMatchingPatternError;</div><div class='add'>+VALUE rb_eNoMatchingPatternKeyError;</div><div class='ctx'> </div><div class='ctx'> VALUE rb_eScriptError;</div><div class='ctx'> VALUE rb_eSyntaxError;</div><div class='hunk'>@@ -894,13 +1114,14 @@ static VALUE rb_eNOERROR;</div><div class='ctx'> </div><div class='ctx'> ID ruby_static_id_cause;</div><div class='ctx'> #define id_cause ruby_static_id_cause</div><div class='del'>-static ID id_message, id_backtrace;</div><div class='del'>-static ID id_name, id_key, id_args, id_Errno, id_errno, id_i_path;</div><div class='add'>+static ID id_message, id_detailed_message, id_backtrace;</div><div class='add'>+static ID id_key, id_matchee, id_args, id_Errno, id_errno, id_i_path;</div><div class='ctx'> static ID id_receiver, id_recv, id_iseq, id_local_variables;</div><div class='ctx'> static ID id_private_call_p, id_top, id_bottom;</div><div class='ctx'> #define id_bt idBt</div><div class='ctx'> #define id_bt_locations idBt_locations</div><div class='ctx'> #define id_mesg idMesg</div><div class='add'>+#define id_name idName</div><div class='ctx'> </div><div class='ctx'> #undef rb_exc_new_cstr</div><div class='ctx'> </div><div class='hunk'>@@ -935,7 +1156,8 @@ exc_init(VALUE exc, VALUE mesg)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Exception.new(msg = nil)   -&gt;  exception</div><div class='add'>+ *    Exception.new(msg = nil)        -&gt;  exception</div><div class='add'>+ *    Exception.exception(msg = nil)  -&gt;  exception</div><div class='ctx'>  *</div><div class='ctx'>  *  Construct a new Exception object, optionally passing in</div><div class='ctx'>  *  a message.</div><div class='hunk'>@@ -954,7 +1176,7 @@ exc_initialize(int argc, VALUE *argv, VALUE exc)</div><div class='ctx'>  *  Document-method: exception</div><div class='ctx'>  *</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     exc.exception(string)  -&gt;  an_exception or exc</div><div class='add'>+ *     exc.exception([string])  -&gt;  an_exception or exc</div><div class='ctx'>  *</div><div class='ctx'>  *  With no argument, or if the argument is the same as the receiver,</div><div class='ctx'>  *  return the receiver. Otherwise, create a new</div><div class='hunk'>@@ -968,11 +1190,11 @@ exc_exception(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     VALUE exc;</div><div class='ctx'> </div><div class='add'>+    argc = rb_check_arity(argc, 0, 1);</div><div class='ctx'>     if (argc == 0) return self;</div><div class='ctx'>     if (argc == 1 &amp;&amp; self == argv[0]) return self;</div><div class='ctx'>     exc = rb_obj_clone(self);</div><div class='del'>-    exc_initialize(argc, argv, exc);</div><div class='del'>-</div><div class='add'>+    rb_ivar_set(exc, id_mesg, argv[0]);</div><div class='ctx'>     return exc;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -994,13 +1216,28 @@ exc_to_s(VALUE exc)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* FIXME: Include eval_error.c */</div><div class='del'>-void rb_error_write(VALUE errinfo, VALUE emesg, VALUE errat, VALUE str, VALUE highlight, VALUE reverse);</div><div class='add'>+void rb_error_write(VALUE errinfo, VALUE emesg, VALUE errat, VALUE str, VALUE opt, VALUE highlight, VALUE reverse);</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_get_message(VALUE exc)</div><div class='ctx'> {</div><div class='ctx'>     VALUE e = rb_check_funcall(exc, id_message, 0, 0);</div><div class='del'>-    if (e == Qundef) return Qnil;</div><div class='add'>+    if (UNDEF_P(e)) return Qnil;</div><div class='add'>+    if (!RB_TYPE_P(e, T_STRING)) e = rb_check_string_type(e);</div><div class='add'>+    return e;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_get_detailed_message(VALUE exc, VALUE opt)</div><div class='add'>+{</div><div class='add'>+    VALUE e;</div><div class='add'>+    if (NIL_P(opt)) {</div><div class='add'>+        e = rb_check_funcall(exc, id_detailed_message, 0, 0);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        e = rb_check_funcall_kw(exc, id_detailed_message, 1, &amp;opt, 1);</div><div class='add'>+    }</div><div class='add'>+    if (UNDEF_P(e)) return Qnil;</div><div class='ctx'>     if (!RB_TYPE_P(e, T_STRING)) e = rb_check_string_type(e);</div><div class='ctx'>     return e;</div><div class='ctx'> }</div><div class='hunk'>@@ -1014,7 +1251,57 @@ rb_get_message(VALUE exc)</div><div class='ctx'> static VALUE</div><div class='ctx'> exc_s_to_tty_p(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    return rb_stderr_tty_p() ? Qtrue : Qfalse;</div><div class='add'>+    return RBOOL(rb_stderr_tty_p());</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+check_highlight_keyword(VALUE opt, int auto_tty_detect)</div><div class='add'>+{</div><div class='add'>+    VALUE highlight = Qnil;</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(opt)) {</div><div class='add'>+        highlight = rb_hash_lookup(opt, sym_highlight);</div><div class='add'>+</div><div class='add'>+        switch (highlight) {</div><div class='add'>+          default:</div><div class='add'>+            rb_bool_expected(highlight, "highlight", TRUE);</div><div class='add'>+            UNREACHABLE;</div><div class='add'>+          case Qtrue: case Qfalse: case Qnil: break;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (NIL_P(highlight)) {</div><div class='add'>+        highlight = RBOOL(auto_tty_detect &amp;&amp; rb_stderr_tty_p());</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return highlight;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+check_order_keyword(VALUE opt)</div><div class='add'>+{</div><div class='add'>+    VALUE order = Qnil;</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(opt)) {</div><div class='add'>+        static VALUE kw_order;</div><div class='add'>+        if (!kw_order) kw_order = ID2SYM(rb_intern_const("order"));</div><div class='add'>+</div><div class='add'>+        order = rb_hash_lookup(opt, kw_order);</div><div class='add'>+</div><div class='add'>+        if (order != Qnil) {</div><div class='add'>+            ID id = rb_check_id(&amp;order);</div><div class='add'>+            if (id == id_bottom) order = Qtrue;</div><div class='add'>+            else if (id == id_top) order = Qfalse;</div><div class='add'>+            else {</div><div class='add'>+                rb_raise(rb_eArgError, "expected :top or :bottom as "</div><div class='add'>+                        "order: %+"PRIsVALUE, order);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (NIL_P(order)) order = Qfalse;</div><div class='add'>+</div><div class='add'>+    return order;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1039,44 +1326,23 @@ static VALUE</div><div class='ctx'> exc_full_message(int argc, VALUE *argv, VALUE exc)</div><div class='ctx'> {</div><div class='ctx'>     VALUE opt, str, emesg, errat;</div><div class='del'>-    enum {kw_highlight, kw_order, kw_max_};</div><div class='del'>-    static ID kw[kw_max_];</div><div class='del'>-    VALUE args[kw_max_] = {Qnil, Qnil};</div><div class='add'>+    VALUE highlight, order;</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "0:", &amp;opt);</div><div class='del'>-    if (!NIL_P(opt)) {</div><div class='del'>-	if (!kw[0]) {</div><div class='del'>-#define INIT_KW(n) kw[kw_##n] = rb_intern_const(#n)</div><div class='del'>-	    INIT_KW(highlight);</div><div class='del'>-	    INIT_KW(order);</div><div class='del'>-#undef INIT_KW</div><div class='del'>-	}</div><div class='del'>-	rb_get_kwargs(opt, kw, 0, kw_max_, args);</div><div class='del'>-	switch (args[kw_highlight]) {</div><div class='del'>-	  default:</div><div class='del'>-	    rb_raise(rb_eArgError, "expected true or false as "</div><div class='del'>-		     "highlight: %+"PRIsVALUE, args[kw_highlight]);</div><div class='del'>-	  case Qundef: args[kw_highlight] = Qnil; break;</div><div class='del'>-	  case Qtrue: case Qfalse: case Qnil: break;</div><div class='del'>-	}</div><div class='del'>-	if (args[kw_order] == Qundef) {</div><div class='del'>-	    args[kw_order] = Qnil;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ID id = rb_check_id(&amp;args[kw_order]);</div><div class='del'>-	    if (id == id_bottom) args[kw_order] = Qtrue;</div><div class='del'>-	    else if (id == id_top) args[kw_order] = Qfalse;</div><div class='del'>-	    else {</div><div class='del'>-		rb_raise(rb_eArgError, "expected :top or :bottom as "</div><div class='del'>-			 "order: %+"PRIsVALUE, args[kw_order]);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+</div><div class='add'>+    highlight = check_highlight_keyword(opt, 1);</div><div class='add'>+    order = check_order_keyword(opt);</div><div class='add'>+</div><div class='add'>+    {</div><div class='add'>+        if (NIL_P(opt)) opt = rb_hash_new();</div><div class='add'>+        rb_hash_aset(opt, sym_highlight, highlight);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     str = rb_str_new2("");</div><div class='ctx'>     errat = rb_get_backtrace(exc);</div><div class='del'>-    emesg = rb_get_message(exc);</div><div class='add'>+    emesg = rb_get_detailed_message(exc, opt);</div><div class='ctx'> </div><div class='del'>-    rb_error_write(exc, emesg, errat, str, args[kw_highlight], args[kw_order]);</div><div class='add'>+    rb_error_write(exc, emesg, errat, str, opt, highlight, order);</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1096,6 +1362,60 @@ exc_message(VALUE exc)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='add'>+ *   exception.detailed_message(highlight: bool, **opt)   -&gt;  string</div><div class='add'>+ *</div><div class='add'>+ * Processes a string returned by #message.</div><div class='add'>+ *</div><div class='add'>+ * It may add the class name of the exception to the end of the first line.</div><div class='add'>+ * Also, when +highlight+ keyword is true, it adds ANSI escape sequences to</div><div class='add'>+ * make the message bold.</div><div class='add'>+ *</div><div class='add'>+ * If you override this method, it must be tolerant for unknown keyword</div><div class='add'>+ * arguments. All keyword arguments passed to #full_message are delegated</div><div class='add'>+ * to this method.</div><div class='add'>+ *</div><div class='add'>+ * This method is overridden by did_you_mean and error_highlight to add</div><div class='add'>+ * their information.</div><div class='add'>+ *</div><div class='add'>+ * A user-defined exception class can also define their own</div><div class='add'>+ * +detailed_message+ method to add supplemental information.</div><div class='add'>+ * When +highlight+ is true, it can return a string containing escape</div><div class='add'>+ * sequences, but use widely-supported ones. It is recommended to limit</div><div class='add'>+ * the following codes:</div><div class='add'>+ *</div><div class='add'>+ * - Reset (+\e[0m+)</div><div class='add'>+ * - Bold (+\e[1m+)</div><div class='add'>+ * - Underline (+\e[4m+)</div><div class='add'>+ * - Foreground color except white and black</div><div class='add'>+ *   - Red (+\e[31m+)</div><div class='add'>+ *   - Green (+\e[32m+)</div><div class='add'>+ *   - Yellow (+\e[33m+)</div><div class='add'>+ *   - Blue (+\e[34m+)</div><div class='add'>+ *   - Magenta (+\e[35m+)</div><div class='add'>+ *   - Cyan (+\e[36m+)</div><div class='add'>+ *</div><div class='add'>+ * Use escape sequences carefully even if +highlight+ is true.</div><div class='add'>+ * Do not use escape sequences to express essential information;</div><div class='add'>+ * the message should be readable even if all escape sequences are</div><div class='add'>+ * ignored.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+exc_detailed_message(int argc, VALUE *argv, VALUE exc)</div><div class='add'>+{</div><div class='add'>+    VALUE opt;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "0:", &amp;opt);</div><div class='add'>+</div><div class='add'>+    VALUE highlight = check_highlight_keyword(opt, 0);</div><div class='add'>+</div><div class='add'>+    extern VALUE rb_decorate_message(const VALUE eclass, const VALUE emesg, int highlight);</div><div class='add'>+</div><div class='add'>+    return rb_decorate_message(CLASS_OF(exc), rb_get_message(exc), RTEST(highlight));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='ctx'>  *   exception.inspect   -&gt; string</div><div class='ctx'>  *</div><div class='ctx'>  * Return this exception's class name and message.</div><div class='hunk'>@@ -1109,14 +1429,21 @@ exc_inspect(VALUE exc)</div><div class='ctx'>     klass = CLASS_OF(exc);</div><div class='ctx'>     exc = rb_obj_as_string(exc);</div><div class='ctx'>     if (RSTRING_LEN(exc) == 0) {</div><div class='del'>-	return rb_str_dup(rb_class_name(klass));</div><div class='add'>+        return rb_class_name(klass);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     str = rb_str_buf_new2("#&lt;");</div><div class='ctx'>     klass = rb_class_name(klass);</div><div class='ctx'>     rb_str_buf_append(str, klass);</div><div class='del'>-    rb_str_buf_cat(str, ": ", 2);</div><div class='del'>-    rb_str_buf_append(str, exc);</div><div class='add'>+</div><div class='add'>+    if (RTEST(rb_str_include(exc, rb_str_new2("\n")))) {</div><div class='add'>+        rb_str_catf(str, ":%+"PRIsVALUE, exc);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_str_buf_cat(str, ": ", 2);</div><div class='add'>+        rb_str_buf_append(str, exc);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     rb_str_buf_cat(str, "&gt;", 1);</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='hunk'>@@ -1124,7 +1451,7 @@ exc_inspect(VALUE exc)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     exception.backtrace    -&gt; array</div><div class='add'>+ *     exception.backtrace    -&gt; array or nil</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns any backtrace associated with the exception. The backtrace</div><div class='ctx'>  *  is an array of strings, each containing either ``filename:lineNo: in</div><div class='hunk'>@@ -1149,6 +1476,12 @@ exc_inspect(VALUE exc)</div><div class='ctx'>  *     prog.rb:2:in `a'</div><div class='ctx'>  *     prog.rb:6:in `b'</div><div class='ctx'>  *     prog.rb:10</div><div class='add'>+ *</div><div class='add'>+ *  In the case no backtrace has been set, +nil+ is returned</div><div class='add'>+ *</div><div class='add'>+ *    ex = StandardError.new</div><div class='add'>+ *    ex.backtrace</div><div class='add'>+ *    #=&gt; nil</div><div class='ctx'> */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1159,29 +1492,31 @@ exc_backtrace(VALUE exc)</div><div class='ctx'>     obj = rb_attr_get(exc, id_bt);</div><div class='ctx'> </div><div class='ctx'>     if (rb_backtrace_p(obj)) {</div><div class='del'>-	obj = rb_backtrace_to_str_ary(obj);</div><div class='del'>-	/* rb_ivar_set(exc, id_bt, obj); */</div><div class='add'>+        obj = rb_backtrace_to_str_ary(obj);</div><div class='add'>+        /* rb_ivar_set(exc, id_bt, obj); */</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE rb_check_backtrace(VALUE);</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='ctx'> rb_get_backtrace(VALUE exc)</div><div class='ctx'> {</div><div class='ctx'>     ID mid = id_backtrace;</div><div class='ctx'>     VALUE info;</div><div class='ctx'>     if (rb_method_basic_definition_p(CLASS_OF(exc), id_backtrace)) {</div><div class='del'>-	VALUE klass = rb_eException;</div><div class='del'>-	rb_execution_context_t *ec = GET_EC();</div><div class='del'>-	if (NIL_P(exc))</div><div class='del'>-	    return Qnil;</div><div class='del'>-	EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_CALL, exc, mid, mid, klass, Qundef);</div><div class='del'>-	info = exc_backtrace(exc);</div><div class='del'>-	EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_RETURN, exc, mid, mid, klass, info);</div><div class='add'>+        VALUE klass = rb_eException;</div><div class='add'>+        rb_execution_context_t *ec = GET_EC();</div><div class='add'>+        if (NIL_P(exc))</div><div class='add'>+            return Qnil;</div><div class='add'>+        EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_CALL, exc, mid, mid, klass, Qundef);</div><div class='add'>+        info = exc_backtrace(exc);</div><div class='add'>+        EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_RETURN, exc, mid, mid, klass, info);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	info = rb_funcallv(exc, mid, 0, 0);</div><div class='add'>+        info = rb_funcallv(exc, mid, 0, 0);</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(info)) return Qnil;</div><div class='ctx'>     return rb_check_backtrace(info);</div><div class='hunk'>@@ -1189,13 +1524,13 @@ rb_get_backtrace(VALUE exc)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     exception.backtrace_locations    -&gt; array</div><div class='add'>+ *     exception.backtrace_locations    -&gt; array or nil</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns any backtrace associated with the exception. This method is</div><div class='ctx'>  *  similar to Exception#backtrace, but the backtrace is an array of</div><div class='ctx'>  *  Thread::Backtrace::Location.</div><div class='ctx'>  *</div><div class='del'>- *  Now, this method is not affected by Exception#set_backtrace().</div><div class='add'>+ *  This method is not affected by Exception#set_backtrace().</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> exc_backtrace_locations(VALUE exc)</div><div class='hunk'>@@ -1204,29 +1539,29 @@ exc_backtrace_locations(VALUE exc)</div><div class='ctx'> </div><div class='ctx'>     obj = rb_attr_get(exc, id_bt_locations);</div><div class='ctx'>     if (!NIL_P(obj)) {</div><div class='del'>-	obj = rb_backtrace_to_location_ary(obj);</div><div class='add'>+        obj = rb_backtrace_to_location_ary(obj);</div><div class='ctx'>     }</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_check_backtrace(VALUE bt)</div><div class='ctx'> {</div><div class='ctx'>     long i;</div><div class='ctx'>     static const char err[] = "backtrace must be Array of String";</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(bt)) {</div><div class='del'>-	if (RB_TYPE_P(bt, T_STRING)) return rb_ary_new3(1, bt);</div><div class='del'>-	if (rb_backtrace_p(bt)) return bt;</div><div class='del'>-	if (!RB_TYPE_P(bt, T_ARRAY)) {</div><div class='del'>-	    rb_raise(rb_eTypeError, err);</div><div class='del'>-	}</div><div class='del'>-	for (i=0;i&lt;RARRAY_LEN(bt);i++) {</div><div class='del'>-	    VALUE e = RARRAY_AREF(bt, i);</div><div class='del'>-	    if (!RB_TYPE_P(e, T_STRING)) {</div><div class='del'>-		rb_raise(rb_eTypeError, err);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        if (RB_TYPE_P(bt, T_STRING)) return rb_ary_new3(1, bt);</div><div class='add'>+        if (rb_backtrace_p(bt)) return bt;</div><div class='add'>+        if (!RB_TYPE_P(bt, T_ARRAY)) {</div><div class='add'>+            rb_raise(rb_eTypeError, err);</div><div class='add'>+        }</div><div class='add'>+        for (i=0;i&lt;RARRAY_LEN(bt);i++) {</div><div class='add'>+            VALUE e = RARRAY_AREF(bt, i);</div><div class='add'>+            if (!RB_TYPE_P(e, T_STRING)) {</div><div class='add'>+                rb_raise(rb_eTypeError, err);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return bt;</div><div class='ctx'> }</div><div class='hunk'>@@ -1278,7 +1613,7 @@ try_convert_to_exception(VALUE obj)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     exc == obj   -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Equality---If &lt;i&gt;obj&lt;/i&gt; is not an &lt;code&gt;Exception&lt;/code&gt;, returns</div><div class='add'>+ *  Equality---If &lt;i&gt;obj&lt;/i&gt; is not an Exception, returns</div><div class='ctx'>  *  &lt;code&gt;false&lt;/code&gt;. Otherwise, returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;exc&lt;/i&gt; and</div><div class='ctx'>  *  &lt;i&gt;obj&lt;/i&gt; share same class, messages, and backtrace.</div><div class='ctx'>  */</div><div class='hunk'>@@ -1291,29 +1626,27 @@ exc_equal(VALUE exc, VALUE obj)</div><div class='ctx'>     if (exc == obj) return Qtrue;</div><div class='ctx'> </div><div class='ctx'>     if (rb_obj_class(exc) != rb_obj_class(obj)) {</div><div class='del'>-	int state;</div><div class='del'>-</div><div class='del'>-	obj = rb_protect(try_convert_to_exception, obj, &amp;state);</div><div class='del'>-	if (state || obj == Qundef) {</div><div class='del'>-	    rb_set_errinfo(Qnil);</div><div class='del'>-	    return Qfalse;</div><div class='del'>-	}</div><div class='del'>-	if (rb_obj_class(exc) != rb_obj_class(obj)) return Qfalse;</div><div class='del'>-	mesg = rb_check_funcall(obj, id_message, 0, 0);</div><div class='del'>-	if (mesg == Qundef) return Qfalse;</div><div class='del'>-	backtrace = rb_check_funcall(obj, id_backtrace, 0, 0);</div><div class='del'>-	if (backtrace == Qundef) return Qfalse;</div><div class='add'>+        int state;</div><div class='add'>+</div><div class='add'>+        obj = rb_protect(try_convert_to_exception, obj, &amp;state);</div><div class='add'>+        if (state || UNDEF_P(obj)) {</div><div class='add'>+            rb_set_errinfo(Qnil);</div><div class='add'>+            return Qfalse;</div><div class='add'>+        }</div><div class='add'>+        if (rb_obj_class(exc) != rb_obj_class(obj)) return Qfalse;</div><div class='add'>+        mesg = rb_check_funcall(obj, id_message, 0, 0);</div><div class='add'>+        if (UNDEF_P(mesg)) return Qfalse;</div><div class='add'>+        backtrace = rb_check_funcall(obj, id_backtrace, 0, 0);</div><div class='add'>+        if (UNDEF_P(backtrace)) return Qfalse;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	mesg = rb_attr_get(obj, id_mesg);</div><div class='del'>-	backtrace = exc_backtrace(obj);</div><div class='add'>+        mesg = rb_attr_get(obj, id_mesg);</div><div class='add'>+        backtrace = exc_backtrace(obj);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!rb_equal(rb_attr_get(exc, id_mesg), mesg))</div><div class='del'>-	return Qfalse;</div><div class='del'>-    if (!rb_equal(exc_backtrace(exc), backtrace))</div><div class='del'>-	return Qfalse;</div><div class='del'>-    return Qtrue;</div><div class='add'>+        return Qfalse;</div><div class='add'>+    return rb_equal(exc_backtrace(exc), backtrace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1333,37 +1666,37 @@ exit_initialize(int argc, VALUE *argv, VALUE exc)</div><div class='ctx'> {</div><div class='ctx'>     VALUE status;</div><div class='ctx'>     if (argc &gt; 0) {</div><div class='del'>-	status = *argv;</div><div class='del'>-</div><div class='del'>-	switch (status) {</div><div class='del'>-	  case Qtrue:</div><div class='del'>-	    status = INT2FIX(EXIT_SUCCESS);</div><div class='del'>-	    ++argv;</div><div class='del'>-	    --argc;</div><div class='del'>-	    break;</div><div class='del'>-	  case Qfalse:</div><div class='del'>-	    status = INT2FIX(EXIT_FAILURE);</div><div class='del'>-	    ++argv;</div><div class='del'>-	    --argc;</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    status = rb_check_to_int(status);</div><div class='del'>-	    if (NIL_P(status)) {</div><div class='del'>-		status = INT2FIX(EXIT_SUCCESS);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='add'>+        status = *argv;</div><div class='add'>+</div><div class='add'>+        switch (status) {</div><div class='add'>+          case Qtrue:</div><div class='add'>+            status = INT2FIX(EXIT_SUCCESS);</div><div class='add'>+            ++argv;</div><div class='add'>+            --argc;</div><div class='add'>+            break;</div><div class='add'>+          case Qfalse:</div><div class='add'>+            status = INT2FIX(EXIT_FAILURE);</div><div class='add'>+            ++argv;</div><div class='add'>+            --argc;</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            status = rb_check_to_int(status);</div><div class='add'>+            if (NIL_P(status)) {</div><div class='add'>+                status = INT2FIX(EXIT_SUCCESS);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='ctx'> #if EXIT_SUCCESS != 0</div><div class='del'>-		if (status == INT2FIX(0))</div><div class='del'>-		    status = INT2FIX(EXIT_SUCCESS);</div><div class='add'>+                if (status == INT2FIX(0))</div><div class='add'>+                    status = INT2FIX(EXIT_SUCCESS);</div><div class='ctx'> #endif</div><div class='del'>-		++argv;</div><div class='del'>-		--argc;</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+                ++argv;</div><div class='add'>+                --argc;</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	status = INT2FIX(EXIT_SUCCESS);</div><div class='add'>+        status = INT2FIX(EXIT_SUCCESS);</div><div class='ctx'>     }</div><div class='ctx'>     rb_call_super(argc, argv);</div><div class='ctx'>     rb_ivar_set(exc, id_status, status);</div><div class='hunk'>@@ -1399,14 +1732,54 @@ exit_success_p(VALUE exc)</div><div class='ctx'>     int status;</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(status_val))</div><div class='del'>-	return Qtrue;</div><div class='add'>+        return Qtrue;</div><div class='ctx'>     status = NUM2INT(status_val);</div><div class='del'>-    if (WIFEXITED(status) &amp;&amp; WEXITSTATUS(status) == EXIT_SUCCESS)</div><div class='del'>-	return Qtrue;</div><div class='add'>+    return RBOOL(WIFEXITED(status) &amp;&amp; WEXITSTATUS(status) == EXIT_SUCCESS);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return Qfalse;</div><div class='add'>+static VALUE</div><div class='add'>+err_init_recv(VALUE exc, VALUE recv)</div><div class='add'>+{</div><div class='add'>+    if (!UNDEF_P(recv)) rb_ivar_set(exc, id_recv, recv);</div><div class='add'>+    return exc;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   FrozenError.new(msg=nil, receiver: nil)  -&gt; frozen_error</div><div class='add'>+ *</div><div class='add'>+ * Construct a new FrozenError exception. If given the &lt;i&gt;receiver&lt;/i&gt;</div><div class='add'>+ * parameter may subsequently be examined using the FrozenError#receiver</div><div class='add'>+ * method.</div><div class='add'>+ *</div><div class='add'>+ *    a = [].freeze</div><div class='add'>+ *    raise FrozenError.new("can't modify frozen array", receiver: a)</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+frozen_err_initialize(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    ID keywords[1];</div><div class='add'>+    VALUE values[numberof(keywords)], options;</div><div class='add'>+</div><div class='add'>+    argc = rb_scan_args(argc, argv, "*:", NULL, &amp;options);</div><div class='add'>+    keywords[0] = id_receiver;</div><div class='add'>+    rb_get_kwargs(options, keywords, 0, numberof(values), values);</div><div class='add'>+    rb_call_super(argc, argv);</div><div class='add'>+    err_init_recv(self, values[0]);</div><div class='add'>+    return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * Document-method: FrozenError#receiver</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   frozen_error.receiver  -&gt; object</div><div class='add'>+ *</div><div class='add'>+ * Return the receiver associated with this FrozenError exception.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#define frozen_err_receiver name_err_receiver</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> rb_name_error(ID id, const char *fmt, ...)</div><div class='ctx'> {</div><div class='hunk'>@@ -1444,19 +1817,24 @@ name_err_init_attr(VALUE exc, VALUE recv, VALUE method)</div><div class='ctx'>     rb_control_frame_t *cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(ec-&gt;cfp);</div><div class='ctx'>     cfp = rb_vm_get_ruby_level_next_cfp(ec, cfp);</div><div class='ctx'>     rb_ivar_set(exc, id_name, method);</div><div class='del'>-    if (recv != Qundef) rb_ivar_set(exc, id_recv, recv);</div><div class='del'>-    if (cfp) rb_ivar_set(exc, id_iseq, rb_iseqw_new(cfp-&gt;iseq));</div><div class='add'>+    err_init_recv(exc, recv);</div><div class='add'>+    if (cfp &amp;&amp; VM_FRAME_TYPE(cfp) != VM_FRAME_MAGIC_DUMMY) {</div><div class='add'>+        rb_ivar_set(exc, id_iseq, rb_iseqw_new(cfp-&gt;iseq));</div><div class='add'>+    }</div><div class='ctx'>     return exc;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   NameError.new(msg [, name])  -&gt; name_error</div><div class='del'>- *   NameError.new(msg [, name], receiver:)  -&gt; name_error</div><div class='add'>+ *   NameError.new(msg=nil, name=nil, receiver: nil)  -&gt; name_error</div><div class='ctx'>  *</div><div class='ctx'>  * Construct a new NameError exception. If given the &lt;i&gt;name&lt;/i&gt;</div><div class='del'>- * parameter may subsequently be examined using the &lt;code&gt;NameError#name&lt;/code&gt;</div><div class='del'>- * method.</div><div class='add'>+ * parameter may subsequently be examined using the NameError#name</div><div class='add'>+ * method. &lt;i&gt;receiver&lt;/i&gt; parameter allows to pass object in</div><div class='add'>+ * context of which the error happened. Example:</div><div class='add'>+ *</div><div class='add'>+ *    [1, 2, 3].method(:rject) # NameError with name "rject" and receiver: Array</div><div class='add'>+ *    [1, 2, 3].singleton_method(:rject) # NameError with name "rject" and receiver: [1, 2, 3]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1474,6 +1852,8 @@ name_err_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE rb_name_err_mesg_new(VALUE mesg, VALUE recv, VALUE method);</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> name_err_init(VALUE exc, VALUE mesg, VALUE recv, VALUE method)</div><div class='ctx'> {</div><div class='hunk'>@@ -1517,10 +1897,10 @@ name_err_local_variables(VALUE self)</div><div class='ctx'>     VALUE vars = rb_attr_get(self, id_local_variables);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(vars)) {</div><div class='del'>-	VALUE iseqw = rb_attr_get(self, id_iseq);</div><div class='del'>-	if (!NIL_P(iseqw)) vars = rb_iseqw_local_variables(iseqw);</div><div class='del'>-	if (NIL_P(vars)) vars = rb_ary_new();</div><div class='del'>-	rb_ivar_set(self, id_local_variables, vars);</div><div class='add'>+        VALUE iseqw = rb_attr_get(self, id_iseq);</div><div class='add'>+        if (!NIL_P(iseqw)) vars = rb_iseqw_local_variables(iseqw);</div><div class='add'>+        if (NIL_P(vars)) vars = rb_ary_new();</div><div class='add'>+        rb_ivar_set(self, id_local_variables, vars);</div><div class='ctx'>     }</div><div class='ctx'>     return vars;</div><div class='ctx'> }</div><div class='hunk'>@@ -1529,18 +1909,24 @@ static VALUE</div><div class='ctx'> nometh_err_init_attr(VALUE exc, VALUE args, int priv)</div><div class='ctx'> {</div><div class='ctx'>     rb_ivar_set(exc, id_args, args);</div><div class='del'>-    rb_ivar_set(exc, id_private_call_p, priv ? Qtrue : Qfalse);</div><div class='add'>+    rb_ivar_set(exc, id_private_call_p, RBOOL(priv));</div><div class='ctx'>     return exc;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   NoMethodError.new([msg, *, name [, args [, priv]]])  -&gt; no_method_error</div><div class='add'>+ *   NoMethodError.new(msg=nil, name=nil, args=nil, private=false, receiver: nil)  -&gt; no_method_error</div><div class='ctx'>  *</div><div class='ctx'>  * Construct a NoMethodError exception for a method of the given name</div><div class='ctx'>  * called with the given arguments. The name may be accessed using</div><div class='ctx'>  * the &lt;code&gt;#name&lt;/code&gt; method on the resulting object, and the</div><div class='ctx'>  * arguments using the &lt;code&gt;#args&lt;/code&gt; method.</div><div class='add'>+ *</div><div class='add'>+ * If &lt;i&gt;private&lt;/i&gt; argument were passed, it designates method was</div><div class='add'>+ * attempted to call in private context, and can be accessed with</div><div class='add'>+ * &lt;code&gt;#private_call?&lt;/code&gt; method.</div><div class='add'>+ *</div><div class='add'>+ * &lt;i&gt;receiver&lt;/i&gt; argument stores an object whose method was called.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1552,7 +1938,7 @@ nometh_err_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     priv = (argc &gt; 3) &amp;&amp; (--argc, RTEST(argv[argc]));</div><div class='ctx'>     args = (argc &gt; 2) ? argv[--argc] : Qnil;</div><div class='ctx'>     if (!NIL_P(options)) argv[argc++] = options;</div><div class='del'>-    rb_call_super(argc, argv);</div><div class='add'>+    rb_call_super_kw(argc, argv, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'>     return nometh_err_init_attr(self, args, priv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1590,18 +1976,18 @@ name_err_mesg_memsize(const void *p)</div><div class='ctx'> static const rb_data_type_t name_err_mesg_data_type = {</div><div class='ctx'>     "name_err_mesg",</div><div class='ctx'>     {</div><div class='del'>-	name_err_mesg_mark,</div><div class='del'>-	name_err_mesg_free,</div><div class='del'>-	name_err_mesg_memsize,</div><div class='add'>+        name_err_mesg_mark,</div><div class='add'>+        name_err_mesg_free,</div><div class='add'>+        name_err_mesg_memsize,</div><div class='ctx'>     },</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='del'>-VALUE</div><div class='del'>-rb_name_err_mesg_new(VALUE mesg, VALUE recv, VALUE method)</div><div class='add'>+static VALUE</div><div class='add'>+rb_name_err_mesg_init(VALUE klass, VALUE mesg, VALUE recv, VALUE method)</div><div class='ctx'> {</div><div class='del'>-    VALUE result = TypedData_Wrap_Struct(rb_cNameErrorMesg, &amp;name_err_mesg_data_type, 0);</div><div class='add'>+    VALUE result = TypedData_Wrap_Struct(klass, &amp;name_err_mesg_data_type, 0);</div><div class='ctx'>     VALUE *ptr = ALLOC_N(VALUE, NAME_ERR_MESG_COUNT);</div><div class='ctx'> </div><div class='ctx'>     ptr[NAME_ERR_MESG__MESG] = mesg;</div><div class='hunk'>@@ -1613,6 +1999,35 @@ rb_name_err_mesg_new(VALUE mesg, VALUE recv, VALUE method)</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='add'>+rb_name_err_mesg_new(VALUE mesg, VALUE recv, VALUE method)</div><div class='add'>+{</div><div class='add'>+    return rb_name_err_mesg_init(rb_cNameErrorMesg, mesg, recv, method);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+name_err_mesg_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return rb_name_err_mesg_init(klass, Qnil, Qnil, Qnil);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+name_err_mesg_init_copy(VALUE obj1, VALUE obj2)</div><div class='add'>+{</div><div class='add'>+    VALUE *ptr1, *ptr2;</div><div class='add'>+</div><div class='add'>+    if (obj1 == obj2) return obj1;</div><div class='add'>+    rb_obj_init_copy(obj1, obj2);</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(obj1, VALUE, &amp;name_err_mesg_data_type, ptr1);</div><div class='add'>+    TypedData_Get_Struct(obj2, VALUE, &amp;name_err_mesg_data_type, ptr2);</div><div class='add'>+    MEMCPY(ptr1, ptr2, VALUE, NAME_ERR_MESG_COUNT);</div><div class='add'>+    return obj1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='ctx'> name_err_mesg_equal(VALUE obj1, VALUE obj2)</div><div class='ctx'> {</div><div class='ctx'>     VALUE *ptr1, *ptr2;</div><div class='hunk'>@@ -1620,19 +2035,30 @@ name_err_mesg_equal(VALUE obj1, VALUE obj2)</div><div class='ctx'> </div><div class='ctx'>     if (obj1 == obj2) return Qtrue;</div><div class='ctx'>     if (rb_obj_class(obj2) != rb_cNameErrorMesg)</div><div class='del'>-	return Qfalse;</div><div class='add'>+        return Qfalse;</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(obj1, VALUE, &amp;name_err_mesg_data_type, ptr1);</div><div class='ctx'>     TypedData_Get_Struct(obj2, VALUE, &amp;name_err_mesg_data_type, ptr2);</div><div class='ctx'>     for (i=0; i&lt;NAME_ERR_MESG_COUNT; i++) {</div><div class='del'>-	if (!rb_equal(ptr1[i], ptr2[i]))</div><div class='del'>-	    return Qfalse;</div><div class='add'>+        if (!rb_equal(ptr1[i], ptr2[i]))</div><div class='add'>+            return Qfalse;</div><div class='ctx'>     }</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='add'>+name_err_mesg_receiver_name(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (RB_SPECIAL_CONST_P(obj)) return Qundef;</div><div class='add'>+    if (RB_BUILTIN_TYPE(obj) == T_MODULE || RB_BUILTIN_TYPE(obj) == T_CLASS) {</div><div class='add'>+        return rb_check_funcall(obj, rb_intern("name"), 0, 0);</div><div class='add'>+    }</div><div class='add'>+    return Qundef;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='ctx'> name_err_mesg_to_str(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE *ptr, mesg;</div><div class='hunk'>@@ -1641,46 +2067,49 @@ name_err_mesg_to_str(VALUE obj)</div><div class='ctx'>     mesg = ptr[NAME_ERR_MESG__MESG];</div><div class='ctx'>     if (NIL_P(mesg)) return Qnil;</div><div class='ctx'>     else {</div><div class='del'>-	struct RString s_str, d_str;</div><div class='del'>-	VALUE c, s, d = 0, args[4];</div><div class='del'>-	int state = 0, singleton = 0;</div><div class='del'>-	rb_encoding *usascii = rb_usascii_encoding();</div><div class='add'>+        struct RString s_str, d_str;</div><div class='add'>+        VALUE c, s, d = 0, args[4];</div><div class='add'>+        int state = 0, singleton = 0;</div><div class='add'>+        rb_encoding *usascii = rb_usascii_encoding();</div><div class='ctx'> </div><div class='ctx'> #define FAKE_CSTR(v, str) rb_setup_fake_str((v), (str), rb_strlen_lit(str), usascii)</div><div class='del'>-	obj = ptr[NAME_ERR_MESG__RECV];</div><div class='del'>-	switch (obj) {</div><div class='del'>-	  case Qnil:</div><div class='del'>-	    d = FAKE_CSTR(&amp;d_str, "nil");</div><div class='del'>-	    break;</div><div class='del'>-	  case Qtrue:</div><div class='del'>-	    d = FAKE_CSTR(&amp;d_str, "true");</div><div class='del'>-	    break;</div><div class='del'>-	  case Qfalse:</div><div class='del'>-	    d = FAKE_CSTR(&amp;d_str, "false");</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    d = rb_protect(rb_inspect, obj, &amp;state);</div><div class='del'>-	    if (state)</div><div class='del'>-		rb_set_errinfo(Qnil);</div><div class='del'>-	    if (NIL_P(d) || RSTRING_LEN(d) &gt; 65) {</div><div class='del'>-		d = rb_any_to_s(obj);</div><div class='del'>-	    }</div><div class='del'>-	    singleton = (RSTRING_LEN(d) &gt; 0 &amp;&amp; RSTRING_PTR(d)[0] == '#');</div><div class='del'>-	    d = QUOTE(d);</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	if (!singleton) {</div><div class='del'>-	    s = FAKE_CSTR(&amp;s_str, ":");</div><div class='del'>-	    c = rb_class_name(CLASS_OF(obj));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    c = s = FAKE_CSTR(&amp;s_str, "");</div><div class='del'>-	}</div><div class='del'>-	args[0] = QUOTE(rb_obj_as_string(ptr[NAME_ERR_MESG__NAME]));</div><div class='del'>-	args[1] = d;</div><div class='del'>-	args[2] = s;</div><div class='del'>-	args[3] = c;</div><div class='del'>-	mesg = rb_str_format(4, args, mesg);</div><div class='add'>+        obj = ptr[NAME_ERR_MESG__RECV];</div><div class='add'>+        switch (obj) {</div><div class='add'>+          case Qnil:</div><div class='add'>+            d = FAKE_CSTR(&amp;d_str, "nil");</div><div class='add'>+            break;</div><div class='add'>+          case Qtrue:</div><div class='add'>+            d = FAKE_CSTR(&amp;d_str, "true");</div><div class='add'>+            break;</div><div class='add'>+          case Qfalse:</div><div class='add'>+            d = FAKE_CSTR(&amp;d_str, "false");</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            d = rb_protect(name_err_mesg_receiver_name, obj, &amp;state);</div><div class='add'>+            if (state || NIL_OR_UNDEF_P(d))</div><div class='add'>+                d = rb_protect(rb_inspect, obj, &amp;state);</div><div class='add'>+            if (state) {</div><div class='add'>+                rb_set_errinfo(Qnil);</div><div class='add'>+            }</div><div class='add'>+            d = rb_check_string_type(d);</div><div class='add'>+            if (NIL_P(d)) {</div><div class='add'>+                d = rb_any_to_s(obj);</div><div class='add'>+            }</div><div class='add'>+            singleton = (RSTRING_LEN(d) &gt; 0 &amp;&amp; RSTRING_PTR(d)[0] == '#');</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        if (!singleton) {</div><div class='add'>+            s = FAKE_CSTR(&amp;s_str, ":");</div><div class='add'>+            c = rb_class_name(CLASS_OF(obj));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            c = s = FAKE_CSTR(&amp;s_str, "");</div><div class='add'>+        }</div><div class='add'>+        args[0] = rb_obj_as_string(ptr[NAME_ERR_MESG__NAME]);</div><div class='add'>+        args[1] = d;</div><div class='add'>+        args[2] = s;</div><div class='add'>+        args[3] = c;</div><div class='add'>+        mesg = rb_str_format(4, args, mesg);</div><div class='ctx'>     }</div><div class='ctx'>     return mesg;</div><div class='ctx'> }</div><div class='hunk'>@@ -1712,11 +2141,11 @@ name_err_receiver(VALUE self)</div><div class='ctx'>     VALUE *ptr, recv, mesg;</div><div class='ctx'> </div><div class='ctx'>     recv = rb_ivar_lookup(self, id_recv, Qundef);</div><div class='del'>-    if (recv != Qundef) return recv;</div><div class='add'>+    if (!UNDEF_P(recv)) return recv;</div><div class='ctx'> </div><div class='ctx'>     mesg = rb_attr_get(self, id_mesg);</div><div class='ctx'>     if (!rb_typeddata_is_kind_of(mesg, &amp;name_err_mesg_data_type)) {</div><div class='del'>-	rb_raise(rb_eArgError, "no receiver is available");</div><div class='add'>+        rb_raise(rb_eArgError, "no receiver is available");</div><div class='ctx'>     }</div><div class='ctx'>     ptr = DATA_PTR(mesg);</div><div class='ctx'>     return ptr[NAME_ERR_MESG__RECV];</div><div class='hunk'>@@ -1770,7 +2199,7 @@ key_err_receiver(VALUE self)</div><div class='ctx'>     VALUE recv;</div><div class='ctx'> </div><div class='ctx'>     recv = rb_ivar_lookup(self, id_receiver, Qundef);</div><div class='del'>-    if (recv != Qundef) return recv;</div><div class='add'>+    if (!UNDEF_P(recv)) return recv;</div><div class='ctx'>     rb_raise(rb_eArgError, "no receiver is available");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1787,7 +2216,7 @@ key_err_key(VALUE self)</div><div class='ctx'>     VALUE key;</div><div class='ctx'> </div><div class='ctx'>     key = rb_ivar_lookup(self, id_key, Qundef);</div><div class='del'>-    if (key != Qundef) return key;</div><div class='add'>+    if (!UNDEF_P(key)) return key;</div><div class='ctx'>     rb_raise(rb_eArgError, "no key is available");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1818,17 +2247,17 @@ key_err_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     rb_call_super(rb_scan_args(argc, argv, "01:", NULL, &amp;options), argv);</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(options)) {</div><div class='del'>-	ID keywords[2];</div><div class='del'>-	VALUE values[numberof(keywords)];</div><div class='del'>-	int i;</div><div class='del'>-	keywords[0] = id_receiver;</div><div class='del'>-	keywords[1] = id_key;</div><div class='del'>-	rb_get_kwargs(options, keywords, 0, numberof(values), values);</div><div class='del'>-	for (i = 0; i &lt; numberof(values); ++i) {</div><div class='del'>-	    if (values[i] != Qundef) {</div><div class='del'>-		rb_ivar_set(self, keywords[i], values[i]);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        ID keywords[2];</div><div class='add'>+        VALUE values[numberof(keywords)];</div><div class='add'>+        int i;</div><div class='add'>+        keywords[0] = id_receiver;</div><div class='add'>+        keywords[1] = id_key;</div><div class='add'>+        rb_get_kwargs(options, keywords, 0, numberof(values), values);</div><div class='add'>+        for (i = 0; i &lt; numberof(values); ++i) {</div><div class='add'>+            if (!UNDEF_P(values[i])) {</div><div class='add'>+                rb_ivar_set(self, keywords[i], values[i]);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='hunk'>@@ -1836,6 +2265,73 @@ key_err_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='add'>+ *   no_matching_pattern_key_error.matchee  -&gt; object</div><div class='add'>+ *</div><div class='add'>+ * Return the matchee associated with this NoMatchingPatternKeyError exception.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+no_matching_pattern_key_err_matchee(VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE matchee;</div><div class='add'>+</div><div class='add'>+    matchee = rb_ivar_lookup(self, id_matchee, Qundef);</div><div class='add'>+    if (!UNDEF_P(matchee)) return matchee;</div><div class='add'>+    rb_raise(rb_eArgError, "no matchee is available");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   no_matching_pattern_key_error.key  -&gt; object</div><div class='add'>+ *</div><div class='add'>+ * Return the key caused this NoMatchingPatternKeyError exception.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+no_matching_pattern_key_err_key(VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE key;</div><div class='add'>+</div><div class='add'>+    key = rb_ivar_lookup(self, id_key, Qundef);</div><div class='add'>+    if (!UNDEF_P(key)) return key;</div><div class='add'>+    rb_raise(rb_eArgError, "no key is available");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   NoMatchingPatternKeyError.new(message=nil, matchee: nil, key: nil) -&gt; no_matching_pattern_key_error</div><div class='add'>+ *</div><div class='add'>+ * Construct a new +NoMatchingPatternKeyError+ exception with the given message,</div><div class='add'>+ * matchee and key.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+no_matching_pattern_key_err_initialize(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE options;</div><div class='add'>+</div><div class='add'>+    rb_call_super(rb_scan_args(argc, argv, "01:", NULL, &amp;options), argv);</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(options)) {</div><div class='add'>+        ID keywords[2];</div><div class='add'>+        VALUE values[numberof(keywords)];</div><div class='add'>+        int i;</div><div class='add'>+        keywords[0] = id_matchee;</div><div class='add'>+        keywords[1] = id_key;</div><div class='add'>+        rb_get_kwargs(options, keywords, 0, numberof(values), values);</div><div class='add'>+        for (i = 0; i &lt; numberof(values); ++i) {</div><div class='add'>+            if (!UNDEF_P(values[i])) {</div><div class='add'>+                rb_ivar_set(self, keywords[i], values[i]);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='ctx'>  *   SyntaxError.new([msg])  -&gt; syntax_error</div><div class='ctx'>  *</div><div class='ctx'>  * Construct a SyntaxError exception.</div><div class='hunk'>@@ -1846,29 +2342,47 @@ syntax_error_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mesg;</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	mesg = rb_fstring_lit("compile error");</div><div class='del'>-	argc = 1;</div><div class='del'>-	argv = &amp;mesg;</div><div class='add'>+        mesg = rb_fstring_lit("compile error");</div><div class='add'>+        argc = 1;</div><div class='add'>+        argv = &amp;mesg;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_call_super(argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+syntax_error_with_path(VALUE exc, VALUE path, VALUE *mesg, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    if (NIL_P(exc)) {</div><div class='add'>+        *mesg = rb_enc_str_new(0, 0, enc);</div><div class='add'>+        exc = rb_class_new_instance(1, mesg, rb_eSyntaxError);</div><div class='add'>+        rb_ivar_set(exc, id_i_path, path);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (rb_attr_get(exc, id_i_path) != path) {</div><div class='add'>+            rb_raise(rb_eArgError, "SyntaxError#path changed");</div><div class='add'>+        }</div><div class='add'>+        VALUE s = *mesg = rb_attr_get(exc, idMesg);</div><div class='add'>+        if (RSTRING_LEN(s) &gt; 0 &amp;&amp; *(RSTRING_END(s)-1) != '\n')</div><div class='add'>+            rb_str_cat_cstr(s, "\n");</div><div class='add'>+    }</div><div class='add'>+    return exc;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  Document-module: Errno</div><div class='ctx'>  *</div><div class='del'>- *  Ruby exception objects are subclasses of &lt;code&gt;Exception&lt;/code&gt;.</div><div class='del'>- *  However, operating systems typically report errors using plain</div><div class='del'>- *  integers. Module &lt;code&gt;Errno&lt;/code&gt; is created dynamically to map</div><div class='del'>- *  these operating system errors to Ruby classes, with each error</div><div class='del'>- *  number generating its own subclass of &lt;code&gt;SystemCallError&lt;/code&gt;.</div><div class='del'>- *  As the subclass is created in module &lt;code&gt;Errno&lt;/code&gt;, its name</div><div class='del'>- *  will start &lt;code&gt;Errno::&lt;/code&gt;.</div><div class='add'>+ *  Ruby exception objects are subclasses of Exception.  However,</div><div class='add'>+ *  operating systems typically report errors using plain</div><div class='add'>+ *  integers. Module Errno is created dynamically to map these</div><div class='add'>+ *  operating system errors to Ruby classes, with each error number</div><div class='add'>+ *  generating its own subclass of SystemCallError.  As the subclass</div><div class='add'>+ *  is created in module Errno, its name will start</div><div class='add'>+ *  &lt;code&gt;Errno::&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='del'>- *  The names of the &lt;code&gt;Errno::&lt;/code&gt; classes depend on</div><div class='del'>- *  the environment in which Ruby runs. On a typical Unix or Windows</div><div class='del'>- *  platform, there are &lt;code&gt;Errno&lt;/code&gt; classes such as</div><div class='del'>- *  &lt;code&gt;Errno::EACCES&lt;/code&gt;, &lt;code&gt;Errno::EAGAIN&lt;/code&gt;,</div><div class='del'>- *  &lt;code&gt;Errno::EINTR&lt;/code&gt;, and so on.</div><div class='add'>+ *  The names of the &lt;code&gt;Errno::&lt;/code&gt; classes depend on the</div><div class='add'>+ *  environment in which Ruby runs. On a typical Unix or Windows</div><div class='add'>+ *  platform, there are Errno classes such as Errno::EACCES,</div><div class='add'>+ *  Errno::EAGAIN, Errno::EINTR, and so on.</div><div class='ctx'>  *</div><div class='ctx'>  *  The integer operating system error number corresponding to a</div><div class='ctx'>  *  particular error is available as the class constant</div><div class='hunk'>@@ -1879,7 +2393,7 @@ syntax_error_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *     Errno::EINTR::Errno    #=&gt; 4</div><div class='ctx'>  *</div><div class='ctx'>  *  The full list of operating system errors on your particular platform</div><div class='del'>- *  are available as the constants of &lt;code&gt;Errno&lt;/code&gt;.</div><div class='add'>+ *  are available as the constants of Errno.</div><div class='ctx'>  *</div><div class='ctx'>  *     Errno.constants   #=&gt; :E2BIG, :EACCES, :EADDRINUSE, :EADDRNOTAVAIL, ...</div><div class='ctx'>  */</div><div class='hunk'>@@ -1892,30 +2406,30 @@ set_syserr(int n, const char *name)</div><div class='ctx'>     st_data_t error;</div><div class='ctx'> </div><div class='ctx'>     if (!st_lookup(syserr_tbl, n, &amp;error)) {</div><div class='del'>-	error = rb_define_class_under(rb_mErrno, name, rb_eSystemCallError);</div><div class='add'>+        error = rb_define_class_under(rb_mErrno, name, rb_eSystemCallError);</div><div class='ctx'> </div><div class='del'>-	/* capture nonblock errnos for WaitReadable/WaitWritable subclasses */</div><div class='del'>-	switch (n) {</div><div class='del'>-	  case EAGAIN:</div><div class='del'>-	    rb_eEAGAIN = error;</div><div class='add'>+        /* capture nonblock errnos for WaitReadable/WaitWritable subclasses */</div><div class='add'>+        switch (n) {</div><div class='add'>+          case EAGAIN:</div><div class='add'>+            rb_eEAGAIN = error;</div><div class='ctx'> </div><div class='ctx'> #if defined(EWOULDBLOCK) &amp;&amp; EWOULDBLOCK != EAGAIN</div><div class='del'>-	    break;</div><div class='del'>-	  case EWOULDBLOCK:</div><div class='add'>+            break;</div><div class='add'>+          case EWOULDBLOCK:</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-	    rb_eEWOULDBLOCK = error;</div><div class='del'>-	    break;</div><div class='del'>-	  case EINPROGRESS:</div><div class='del'>-	    rb_eEINPROGRESS = error;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+            rb_eEWOULDBLOCK = error;</div><div class='add'>+            break;</div><div class='add'>+          case EINPROGRESS:</div><div class='add'>+            rb_eEINPROGRESS = error;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	rb_define_const(error, "Errno", INT2NUM(n));</div><div class='del'>-	st_add_direct(syserr_tbl, n, error);</div><div class='add'>+        rb_define_const(error, "Errno", INT2NUM(n));</div><div class='add'>+        st_add_direct(syserr_tbl, n, error);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_define_const(rb_mErrno, name, error);</div><div class='add'>+        rb_define_const(rb_mErrno, name, error);</div><div class='ctx'>     }</div><div class='ctx'>     return error;</div><div class='ctx'> }</div><div class='hunk'>@@ -1926,10 +2440,10 @@ get_syserr(int n)</div><div class='ctx'>     st_data_t error;</div><div class='ctx'> </div><div class='ctx'>     if (!st_lookup(syserr_tbl, n, &amp;error)) {</div><div class='del'>-	char name[8];	/* some Windows' errno have 5 digits. */</div><div class='add'>+        char name[8];	/* some Windows' errno have 5 digits. */</div><div class='ctx'> </div><div class='del'>-	snprintf(name, sizeof(name), "E%03d", n);</div><div class='del'>-	error = set_syserr(n, name);</div><div class='add'>+        snprintf(name, sizeof(name), "E%03d", n);</div><div class='add'>+        error = set_syserr(n, name);</div><div class='ctx'>     }</div><div class='ctx'>     return error;</div><div class='ctx'> }</div><div class='hunk'>@@ -1938,52 +2452,47 @@ get_syserr(int n)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   SystemCallError.new(msg, errno)  -&gt; system_call_error_subclass</div><div class='ctx'>  *</div><div class='del'>- * If _errno_ corresponds to a known system error code, constructs</div><div class='del'>- * the appropriate &lt;code&gt;Errno&lt;/code&gt; class for that error, otherwise</div><div class='del'>- * constructs a generic &lt;code&gt;SystemCallError&lt;/code&gt; object. The</div><div class='del'>- * error number is subsequently available via the &lt;code&gt;errno&lt;/code&gt;</div><div class='del'>- * method.</div><div class='add'>+ * If _errno_ corresponds to a known system error code, constructs the</div><div class='add'>+ * appropriate Errno class for that error, otherwise constructs a</div><div class='add'>+ * generic SystemCallError object. The error number is subsequently</div><div class='add'>+ * available via the #errno method.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> syserr_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-#if !defined(_WIN32)</div><div class='del'>-    char *strerror();</div><div class='del'>-#endif</div><div class='ctx'>     const char *err;</div><div class='ctx'>     VALUE mesg, error, func, errmsg;</div><div class='ctx'>     VALUE klass = rb_obj_class(self);</div><div class='ctx'> </div><div class='ctx'>     if (klass == rb_eSystemCallError) {</div><div class='del'>-	st_data_t data = (st_data_t)klass;</div><div class='del'>-	rb_scan_args(argc, argv, "12", &amp;mesg, &amp;error, &amp;func);</div><div class='del'>-	if (argc == 1 &amp;&amp; FIXNUM_P(mesg)) {</div><div class='del'>-	    error = mesg; mesg = Qnil;</div><div class='del'>-	}</div><div class='del'>-	if (!NIL_P(error) &amp;&amp; st_lookup(syserr_tbl, NUM2LONG(error), &amp;data)) {</div><div class='del'>-	    klass = (VALUE)data;</div><div class='del'>-	    /* change class */</div><div class='del'>-	    if (!RB_TYPE_P(self, T_OBJECT)) { /* insurance to avoid type crash */</div><div class='del'>-		rb_raise(rb_eTypeError, "invalid instance type");</div><div class='del'>-	    }</div><div class='del'>-	    RBASIC_SET_CLASS(self, klass);</div><div class='del'>-	}</div><div class='add'>+        st_data_t data = (st_data_t)klass;</div><div class='add'>+        rb_scan_args(argc, argv, "12", &amp;mesg, &amp;error, &amp;func);</div><div class='add'>+        if (argc == 1 &amp;&amp; FIXNUM_P(mesg)) {</div><div class='add'>+            error = mesg; mesg = Qnil;</div><div class='add'>+        }</div><div class='add'>+        if (!NIL_P(error) &amp;&amp; st_lookup(syserr_tbl, NUM2LONG(error), &amp;data)) {</div><div class='add'>+            klass = (VALUE)data;</div><div class='add'>+            /* change class */</div><div class='add'>+            if (!RB_TYPE_P(self, T_OBJECT)) { /* insurance to avoid type crash */</div><div class='add'>+                rb_raise(rb_eTypeError, "invalid instance type");</div><div class='add'>+            }</div><div class='add'>+            RBASIC_SET_CLASS(self, klass);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_scan_args(argc, argv, "02", &amp;mesg, &amp;func);</div><div class='del'>-	error = rb_const_get(klass, id_Errno);</div><div class='add'>+        rb_scan_args(argc, argv, "02", &amp;mesg, &amp;func);</div><div class='add'>+        error = rb_const_get(klass, id_Errno);</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(error)) err = strerror(NUM2INT(error));</div><div class='ctx'>     else err = "unknown error";</div><div class='ctx'> </div><div class='ctx'>     errmsg = rb_enc_str_new_cstr(err, rb_locale_encoding());</div><div class='ctx'>     if (!NIL_P(mesg)) {</div><div class='del'>-	VALUE str = StringValue(mesg);</div><div class='add'>+        VALUE str = StringValue(mesg);</div><div class='ctx'> </div><div class='del'>-	if (!NIL_P(func)) rb_str_catf(errmsg, " @ %"PRIsVALUE, func);</div><div class='del'>-	rb_str_catf(errmsg, " - %"PRIsVALUE, str);</div><div class='del'>-	OBJ_INFECT(errmsg, mesg);</div><div class='add'>+        if (!NIL_P(func)) rb_str_catf(errmsg, " @ %"PRIsVALUE, func);</div><div class='add'>+        rb_str_catf(errmsg, " - %"PRIsVALUE, str);</div><div class='ctx'>     }</div><div class='ctx'>     mesg = errmsg;</div><div class='ctx'> </div><div class='hunk'>@@ -2019,18 +2528,16 @@ syserr_eqq(VALUE self, VALUE exc)</div><div class='ctx'>     VALUE num, e;</div><div class='ctx'> </div><div class='ctx'>     if (!rb_obj_is_kind_of(exc, rb_eSystemCallError)) {</div><div class='del'>-	if (!rb_respond_to(exc, id_errno)) return Qfalse;</div><div class='add'>+        if (!rb_respond_to(exc, id_errno)) return Qfalse;</div><div class='ctx'>     }</div><div class='ctx'>     else if (self == rb_eSystemCallError) return Qtrue;</div><div class='ctx'> </div><div class='ctx'>     num = rb_attr_get(exc, id_errno);</div><div class='ctx'>     if (NIL_P(num)) {</div><div class='del'>-	num = rb_funcallv(exc, id_errno, 0, 0);</div><div class='add'>+        num = rb_funcallv(exc, id_errno, 0, 0);</div><div class='ctx'>     }</div><div class='ctx'>     e = rb_const_get(self, id_Errno);</div><div class='del'>-    if (FIXNUM_P(num) ? num == e : rb_equal(num, e))</div><div class='del'>-	return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(FIXNUM_P(num) ? num == e : rb_equal(num, e));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -2284,19 +2791,7 @@ syserr_eqq(VALUE self, VALUE exc)</div><div class='ctx'> /*</div><div class='ctx'>  *  Document-class: SecurityError</div><div class='ctx'>  *</div><div class='del'>- *  Raised when attempting a potential unsafe operation, typically when</div><div class='del'>- *  the $SAFE level is raised above 0.</div><div class='del'>- *</div><div class='del'>- *     foo = "bar"</div><div class='del'>- *     proc = Proc.new do</div><div class='del'>- *       $SAFE = 3</div><div class='del'>- *       foo.untaint</div><div class='del'>- *     end</div><div class='del'>- *     proc.call</div><div class='del'>- *</div><div class='del'>- *  &lt;em&gt;raises the exception:&lt;/em&gt;</div><div class='del'>- *</div><div class='del'>- *     SecurityError: Insecure: Insecure operation `untaint' at level 3</div><div class='add'>+ *  No longer used by internal code.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -2338,7 +2833,7 @@ syserr_eqq(VALUE self, VALUE exc)</div><div class='ctx'>  * Document-class: fatal</div><div class='ctx'>  *</div><div class='ctx'>  * fatal is an Exception that is raised when Ruby has encountered a fatal</div><div class='del'>- * error and must exit.  You are not able to rescue fatal.</div><div class='add'>+ * error and must exit.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -2347,32 +2842,48 @@ syserr_eqq(VALUE self, VALUE exc)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  Descendants of class Exception are used to communicate between</div><div class='add'>+ *  Document-class: Exception</div><div class='add'>+ *</div><div class='add'>+ *  \Class Exception and its subclasses are used to communicate between</div><div class='ctx'>  *  Kernel#raise and +rescue+ statements in &lt;code&gt;begin ... end&lt;/code&gt; blocks.</div><div class='del'>- *  Exception objects carry information about the exception -- its type (the</div><div class='del'>- *  exception's class name), an optional descriptive string, and optional</div><div class='del'>- *  traceback information.  Exception subclasses may add additional</div><div class='del'>- *  information like NameError#name.</div><div class='ctx'>  *</div><div class='del'>- *  Programs may make subclasses of Exception, typically of StandardError or</div><div class='del'>- *  RuntimeError, to provide custom classes and add additional information.</div><div class='del'>- *  See the subclass list below for defaults for +raise+ and +rescue+.</div><div class='add'>+ *  An Exception object carries information about an exception:</div><div class='add'>+ *  - Its type (the exception's class).</div><div class='add'>+ *  - An optional descriptive message.</div><div class='add'>+ *  - Optional backtrace information.</div><div class='add'>+ *</div><div class='add'>+ *  Some built-in subclasses of Exception have additional methods: e.g., NameError#name.</div><div class='add'>+ *</div><div class='add'>+ *  == Defaults</div><div class='add'>+ *</div><div class='add'>+ *  Two Ruby statements have default exception classes:</div><div class='add'>+ *  - +raise+: defaults to RuntimeError.</div><div class='add'>+ *  - +rescue+: defaults to StandardError.</div><div class='add'>+ *</div><div class='add'>+ *  == Global Variables</div><div class='ctx'>  *</div><div class='ctx'>  *  When an exception has been raised but not yet handled (in +rescue+,</div><div class='del'>- *  +ensure+, +at_exit+ and +END+ blocks) the global variable &lt;code&gt;$!&lt;/code&gt;</div><div class='del'>- *  will contain the current exception and &lt;code&gt;$@&lt;/code&gt; contains the</div><div class='del'>- *  current exception's backtrace.</div><div class='add'>+ *  +ensure+, +at_exit+ and +END+ blocks), two global variables are set:</div><div class='add'>+ *  - &lt;code&gt;$!&lt;/code&gt; contains the current exception.</div><div class='add'>+ *  - &lt;code&gt;$@&lt;/code&gt; contains its backtrace.</div><div class='ctx'>  *</div><div class='del'>- *  It is recommended that a library should have one subclass of StandardError</div><div class='del'>- *  or RuntimeError and have specific exception types inherit from it.  This</div><div class='del'>- *  allows the user to rescue a generic exception type to catch all exceptions</div><div class='add'>+ *  == Custom Exceptions</div><div class='add'>+ *</div><div class='add'>+ *  To provide additional or alternate information,</div><div class='add'>+ *  a program may create custom exception classes</div><div class='add'>+ *  that derive from the built-in exception classes.</div><div class='add'>+ *</div><div class='add'>+ *  A good practice is for a library to create a single "generic" exception class</div><div class='add'>+ *  (typically a subclass of StandardError or RuntimeError)</div><div class='add'>+ *  and have its other exception classes derive from that class.</div><div class='add'>+ *  This allows the user to rescue the generic exception, thus catching all exceptions</div><div class='ctx'>  *  the library may raise even if future versions of the library add new</div><div class='ctx'>  *  exception subclasses.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='ctx'>  *</div><div class='ctx'>  *    class MyLibrary</div><div class='del'>- *      class Error &lt; RuntimeError</div><div class='add'>+ *      class Error &lt; ::StandardError</div><div class='ctx'>  *      end</div><div class='ctx'>  *</div><div class='ctx'>  *      class WidgetError &lt; Error</div><div class='hunk'>@@ -2383,8 +2894,10 @@ syserr_eqq(VALUE self, VALUE exc)</div><div class='ctx'>  *</div><div class='ctx'>  *    end</div><div class='ctx'>  *</div><div class='del'>- *  To handle both WidgetError and FrobError the library user can rescue</div><div class='del'>- *  MyLibrary::Error.</div><div class='add'>+ *  To handle both MyLibrary::WidgetError and MyLibrary::FrobError the library</div><div class='add'>+ *  user can rescue MyLibrary::Error.</div><div class='add'>+ *</div><div class='add'>+ *  == Built-In Exception Classes</div><div class='ctx'>  *</div><div class='ctx'>  *  The built-in subclasses of Exception are:</div><div class='ctx'>  *</div><div class='hunk'>@@ -2396,7 +2909,7 @@ syserr_eqq(VALUE self, VALUE exc)</div><div class='ctx'>  *  * SecurityError</div><div class='ctx'>  *  * SignalException</div><div class='ctx'>  *    * Interrupt</div><div class='del'>- *  * StandardError -- default for +rescue+</div><div class='add'>+ *  * StandardError</div><div class='ctx'>  *    * ArgumentError</div><div class='ctx'>  *      * UncaughtThrowError</div><div class='ctx'>  *    * EncodingError</div><div class='hunk'>@@ -2406,13 +2919,14 @@ syserr_eqq(VALUE self, VALUE exc)</div><div class='ctx'>  *    * IndexError</div><div class='ctx'>  *      * KeyError</div><div class='ctx'>  *      * StopIteration</div><div class='add'>+ *        * ClosedQueueError</div><div class='ctx'>  *    * LocalJumpError</div><div class='ctx'>  *    * NameError</div><div class='ctx'>  *      * NoMethodError</div><div class='ctx'>  *    * RangeError</div><div class='ctx'>  *      * FloatDomainError</div><div class='ctx'>  *    * RegexpError</div><div class='del'>- *    * RuntimeError -- default for +raise+</div><div class='add'>+ *    * RuntimeError</div><div class='ctx'>  *      * FrozenError</div><div class='ctx'>  *    * SystemCallError</div><div class='ctx'>  *      * Errno::*</div><div class='hunk'>@@ -2421,13 +2935,63 @@ syserr_eqq(VALUE self, VALUE exc)</div><div class='ctx'>  *    * ZeroDivisionError</div><div class='ctx'>  *  * SystemExit</div><div class='ctx'>  *  * SystemStackError</div><div class='del'>- *  * fatal -- impossible to rescue</div><div class='add'>+ *  * fatal</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+exception_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return rb_class_allocate_instance(klass);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+exception_dumper(VALUE exc)</div><div class='add'>+{</div><div class='add'>+    // TODO: Currently, the instance variables "bt" and "bt_locations"</div><div class='add'>+    // refers to the same object (Array of String). But "bt_locations"</div><div class='add'>+    // should have an Array of Thread::Backtrace::Locations.</div><div class='add'>+</div><div class='add'>+    return exc;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ivar_copy_i(st_data_t key, st_data_t val, st_data_t exc)</div><div class='add'>+{</div><div class='add'>+    rb_ivar_set((VALUE) exc, (ID) key, (VALUE) val);</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void rb_exc_check_circular_cause(VALUE exc);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+exception_loader(VALUE exc, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    // The loader function of rb_marshal_define_compat seems to be called for two events:</div><div class='add'>+    // one is for fixup (r_fixup_compat), the other is for TYPE_USERDEF.</div><div class='add'>+    // In the former case, the first argument is an instance of Exception (because</div><div class='add'>+    // we pass rb_eException to rb_marshal_define_compat). In the latter case, the first</div><div class='add'>+    // argument is a class object (see TYPE_USERDEF case in r_object0).</div><div class='add'>+    // We want to copy all instance variables (but "bt_locations") from obj to exc.</div><div class='add'>+    // But we do not want to do so in the second case, so the following branch is for that.</div><div class='add'>+    if (RB_TYPE_P(exc, T_CLASS)) return obj; // maybe called from Marshal's TYPE_USERDEF</div><div class='add'>+</div><div class='add'>+    rb_ivar_foreach(obj, ivar_copy_i, exc);</div><div class='add'>+</div><div class='add'>+    rb_exc_check_circular_cause(exc);</div><div class='add'>+</div><div class='add'>+    if (rb_attr_get(exc, id_bt) == rb_attr_get(exc, id_bt_locations)) {</div><div class='add'>+        rb_ivar_set(exc, id_bt_locations, Qnil);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return exc;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_Exception(void)</div><div class='ctx'> {</div><div class='ctx'>     rb_eException   = rb_define_class("Exception", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(rb_eException, exception_alloc);</div><div class='add'>+    rb_marshal_define_compat(rb_eException, rb_eException, exception_dumper, exception_loader);</div><div class='ctx'>     rb_define_singleton_method(rb_eException, "exception", rb_class_new_instance, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_eException, "to_tty?", exc_s_to_tty_p, 0);</div><div class='ctx'>     rb_define_method(rb_eException, "exception", exc_exception, -1);</div><div class='hunk'>@@ -2435,6 +2999,7 @@ Init_Exception(void)</div><div class='ctx'>     rb_define_method(rb_eException, "==", exc_equal, 1);</div><div class='ctx'>     rb_define_method(rb_eException, "to_s", exc_to_s, 0);</div><div class='ctx'>     rb_define_method(rb_eException, "message", exc_message, 0);</div><div class='add'>+    rb_define_method(rb_eException, "detailed_message", exc_detailed_message, -1);</div><div class='ctx'>     rb_define_method(rb_eException, "full_message", exc_full_message, -1);</div><div class='ctx'>     rb_define_method(rb_eException, "inspect", exc_inspect, 0);</div><div class='ctx'>     rb_define_method(rb_eException, "backtrace", exc_backtrace, 0);</div><div class='hunk'>@@ -2465,9 +3030,16 @@ Init_Exception(void)</div><div class='ctx'>     rb_eSyntaxError = rb_define_class("SyntaxError", rb_eScriptError);</div><div class='ctx'>     rb_define_method(rb_eSyntaxError, "initialize", syntax_error_initialize, -1);</div><div class='ctx'> </div><div class='add'>+    /* RDoc will use literal name value while parsing rb_attr,</div><div class='add'>+    *  and will render `idPath` as an attribute name without this trick */</div><div class='add'>+    ID path = idPath;</div><div class='add'>+</div><div class='add'>+    /* the path failed to parse */</div><div class='add'>+    rb_attr(rb_eSyntaxError, path, TRUE, FALSE, FALSE);</div><div class='add'>+</div><div class='ctx'>     rb_eLoadError   = rb_define_class("LoadError", rb_eScriptError);</div><div class='ctx'>     /* the path failed to load */</div><div class='del'>-    rb_attr(rb_eLoadError, rb_intern_const("path"), 1, 0, Qfalse);</div><div class='add'>+    rb_attr(rb_eLoadError, path, TRUE, FALSE, FALSE);</div><div class='ctx'> </div><div class='ctx'>     rb_eNotImpError = rb_define_class("NotImplementedError", rb_eScriptError);</div><div class='ctx'> </div><div class='hunk'>@@ -2476,7 +3048,9 @@ Init_Exception(void)</div><div class='ctx'>     rb_define_method(rb_eNameError, "name", name_err_name, 0);</div><div class='ctx'>     rb_define_method(rb_eNameError, "receiver", name_err_receiver, 0);</div><div class='ctx'>     rb_define_method(rb_eNameError, "local_variables", name_err_local_variables, 0);</div><div class='del'>-    rb_cNameErrorMesg = rb_define_class_under(rb_eNameError, "message", rb_cData);</div><div class='add'>+    rb_cNameErrorMesg = rb_define_class_under(rb_eNameError, "message", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(rb_cNameErrorMesg, name_err_mesg_alloc);</div><div class='add'>+    rb_define_method(rb_cNameErrorMesg, "initialize_copy", name_err_mesg_init_copy, 1);</div><div class='ctx'>     rb_define_method(rb_cNameErrorMesg, "==", name_err_mesg_equal, 1);</div><div class='ctx'>     rb_define_method(rb_cNameErrorMesg, "to_str", name_err_mesg_to_str, 0);</div><div class='ctx'>     rb_define_method(rb_cNameErrorMesg, "_dump", name_err_mesg_dump, 1);</div><div class='hunk'>@@ -2488,10 +3062,17 @@ Init_Exception(void)</div><div class='ctx'> </div><div class='ctx'>     rb_eRuntimeError = rb_define_class("RuntimeError", rb_eStandardError);</div><div class='ctx'>     rb_eFrozenError = rb_define_class("FrozenError", rb_eRuntimeError);</div><div class='add'>+    rb_define_method(rb_eFrozenError, "initialize", frozen_err_initialize, -1);</div><div class='add'>+    rb_define_method(rb_eFrozenError, "receiver", frozen_err_receiver, 0);</div><div class='ctx'>     rb_eSecurityError = rb_define_class("SecurityError", rb_eException);</div><div class='ctx'>     rb_eNoMemError = rb_define_class("NoMemoryError", rb_eException);</div><div class='ctx'>     rb_eEncodingError = rb_define_class("EncodingError", rb_eStandardError);</div><div class='ctx'>     rb_eEncCompatError = rb_define_class_under(rb_cEncoding, "CompatibilityError", rb_eEncodingError);</div><div class='add'>+    rb_eNoMatchingPatternError = rb_define_class("NoMatchingPatternError", rb_eStandardError);</div><div class='add'>+    rb_eNoMatchingPatternKeyError = rb_define_class("NoMatchingPatternKeyError", rb_eNoMatchingPatternError);</div><div class='add'>+    rb_define_method(rb_eNoMatchingPatternKeyError, "initialize", no_matching_pattern_key_err_initialize, -1);</div><div class='add'>+    rb_define_method(rb_eNoMatchingPatternKeyError, "matchee", no_matching_pattern_key_err_matchee, 0);</div><div class='add'>+    rb_define_method(rb_eNoMatchingPatternKeyError, "key", no_matching_pattern_key_err_key, 0);</div><div class='ctx'> </div><div class='ctx'>     syserr_tbl = st_init_numtable();</div><div class='ctx'>     rb_eSystemCallError = rb_define_class("SystemCallError", rb_eStandardError);</div><div class='hunk'>@@ -2502,20 +3083,21 @@ Init_Exception(void)</div><div class='ctx'>     rb_mErrno = rb_define_module("Errno");</div><div class='ctx'> </div><div class='ctx'>     rb_mWarning = rb_define_module("Warning");</div><div class='del'>-    rb_define_method(rb_mWarning, "warn", rb_warning_s_warn, 1);</div><div class='add'>+    rb_define_singleton_method(rb_mWarning, "[]", rb_warning_s_aref, 1);</div><div class='add'>+    rb_define_singleton_method(rb_mWarning, "[]=", rb_warning_s_aset, 2);</div><div class='add'>+    rb_define_method(rb_mWarning, "warn", rb_warning_s_warn, -1);</div><div class='ctx'>     rb_extend_object(rb_mWarning, rb_mWarning);</div><div class='ctx'> </div><div class='ctx'>     /* :nodoc: */</div><div class='ctx'>     rb_cWarningBuffer = rb_define_class_under(rb_mWarning, "buffer", rb_cString);</div><div class='ctx'>     rb_define_method(rb_cWarningBuffer, "write", warning_write, -1);</div><div class='ctx'> </div><div class='del'>-    rb_define_global_function("warn", rb_warn_m, -1);</div><div class='del'>-</div><div class='ctx'>     id_cause = rb_intern_const("cause");</div><div class='ctx'>     id_message = rb_intern_const("message");</div><div class='add'>+    id_detailed_message = rb_intern_const("detailed_message");</div><div class='ctx'>     id_backtrace = rb_intern_const("backtrace");</div><div class='del'>-    id_name = rb_intern_const("name");</div><div class='ctx'>     id_key = rb_intern_const("key");</div><div class='add'>+    id_matchee = rb_intern_const("matchee");</div><div class='ctx'>     id_args = rb_intern_const("args");</div><div class='ctx'>     id_receiver = rb_intern_const("receiver");</div><div class='ctx'>     id_private_call_p = rb_intern_const("private_call?");</div><div class='hunk'>@@ -2524,10 +3106,25 @@ Init_Exception(void)</div><div class='ctx'>     id_errno = rb_intern_const("errno");</div><div class='ctx'>     id_i_path = rb_intern_const("@path");</div><div class='ctx'>     id_warn = rb_intern_const("warn");</div><div class='add'>+    id_category = rb_intern_const("category");</div><div class='add'>+    id_deprecated = rb_intern_const("deprecated");</div><div class='add'>+    id_experimental = rb_intern_const("experimental");</div><div class='ctx'>     id_top = rb_intern_const("top");</div><div class='ctx'>     id_bottom = rb_intern_const("bottom");</div><div class='ctx'>     id_iseq = rb_make_internal_id();</div><div class='ctx'>     id_recv = rb_make_internal_id();</div><div class='add'>+</div><div class='add'>+    sym_category = ID2SYM(id_category);</div><div class='add'>+    sym_highlight = ID2SYM(rb_intern_const("highlight"));</div><div class='add'>+</div><div class='add'>+    warning_categories.id2enum = rb_init_identtable();</div><div class='add'>+    st_add_direct(warning_categories.id2enum, id_deprecated, RB_WARN_CATEGORY_DEPRECATED);</div><div class='add'>+    st_add_direct(warning_categories.id2enum, id_experimental, RB_WARN_CATEGORY_EXPERIMENTAL);</div><div class='add'>+</div><div class='add'>+    warning_categories.enum2id = rb_init_identtable();</div><div class='add'>+    st_add_direct(warning_categories.enum2id, RB_WARN_CATEGORY_NONE, 0);</div><div class='add'>+    st_add_direct(warning_categories.enum2id, RB_WARN_CATEGORY_DEPRECATED, id_deprecated);</div><div class='add'>+    st_add_direct(warning_categories.enum2id, RB_WARN_CATEGORY_EXPERIMENTAL, id_experimental);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -2544,15 +3141,18 @@ rb_enc_raise(rb_encoding *enc, VALUE exc, const char *fmt, ...)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='add'>+rb_vraise(VALUE exc, const char *fmt, va_list ap)</div><div class='add'>+{</div><div class='add'>+    rb_exc_raise(rb_exc_new3(exc, rb_vsprintf(fmt, ap)));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='ctx'> rb_raise(VALUE exc, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     va_list args;</div><div class='del'>-    VALUE mesg;</div><div class='del'>-</div><div class='ctx'>     va_start(args, fmt);</div><div class='del'>-    mesg = rb_vsprintf(fmt, args);</div><div class='add'>+    rb_vraise(exc, fmt, args);</div><div class='ctx'>     va_end(args);</div><div class='del'>-    rb_exc_raise(rb_exc_new3(exc, mesg));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> NORETURN(static void raise_loaderror(VALUE path, VALUE mesg));</div><div class='hunk'>@@ -2593,8 +3193,8 @@ void</div><div class='ctx'> rb_notimplement(void)</div><div class='ctx'> {</div><div class='ctx'>     rb_raise(rb_eNotImpError,</div><div class='del'>-	     "%"PRIsVALUE"() function is unimplemented on this machine",</div><div class='del'>-	     rb_id2str(rb_frame_this_func()));</div><div class='add'>+             "%"PRIsVALUE"() function is unimplemented on this machine",</div><div class='add'>+             rb_id2str(rb_frame_this_func()));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -2603,6 +3203,14 @@ rb_fatal(const char *fmt, ...)</div><div class='ctx'>     va_list args;</div><div class='ctx'>     VALUE mesg;</div><div class='ctx'> </div><div class='add'>+    if (! ruby_thread_has_gvl_p()) {</div><div class='add'>+        /* The thread has no GVL.  Object allocation impossible (cant run GC),</div><div class='add'>+         * thus no message can be printed out. */</div><div class='add'>+        fprintf(stderr, "[FATAL] rb_fatal() outside of GVL\n");</div><div class='add'>+        rb_print_backtrace();</div><div class='add'>+        die();</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     va_start(args, fmt);</div><div class='ctx'>     mesg = rb_vsprintf(fmt, args);</div><div class='ctx'>     va_end(args);</div><div class='hunk'>@@ -2617,7 +3225,7 @@ make_errno_exc(const char *mesg)</div><div class='ctx'> </div><div class='ctx'>     errno = 0;</div><div class='ctx'>     if (n == 0) {</div><div class='del'>-	rb_bug("rb_sys_fail(%s) - errno == 0", mesg ? mesg : "");</div><div class='add'>+        rb_bug("rb_sys_fail(%s) - errno == 0", mesg ? mesg : "");</div><div class='ctx'>     }</div><div class='ctx'>     return rb_syserr_new(n, mesg);</div><div class='ctx'> }</div><div class='hunk'>@@ -2630,8 +3238,8 @@ make_errno_exc_str(VALUE mesg)</div><div class='ctx'>     errno = 0;</div><div class='ctx'>     if (!mesg) mesg = Qnil;</div><div class='ctx'>     if (n == 0) {</div><div class='del'>-	const char *s = !NIL_P(mesg) ? RSTRING_PTR(mesg) : "";</div><div class='del'>-	rb_bug("rb_sys_fail_str(%s) - errno == 0", s);</div><div class='add'>+        const char *s = !NIL_P(mesg) ? RSTRING_PTR(mesg) : "";</div><div class='add'>+        rb_bug("rb_sys_fail_str(%s) - errno == 0", s);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_syserr_new_str(n, mesg);</div><div class='ctx'> }</div><div class='hunk'>@@ -2687,51 +3295,62 @@ rb_sys_fail_path_in(const char *func_name, VALUE path)</div><div class='ctx'> void</div><div class='ctx'> rb_syserr_fail_path_in(const char *func_name, int n, VALUE path)</div><div class='ctx'> {</div><div class='add'>+    rb_exc_raise(rb_syserr_new_path_in(func_name, n, path));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_syserr_new_path_in(const char *func_name, int n, VALUE path)</div><div class='add'>+{</div><div class='ctx'>     VALUE args[2];</div><div class='ctx'> </div><div class='ctx'>     if (!path) path = Qnil;</div><div class='ctx'>     if (n == 0) {</div><div class='del'>-	const char *s = !NIL_P(path) ? RSTRING_PTR(path) : "";</div><div class='del'>-	if (!func_name) func_name = "(null)";</div><div class='del'>-	rb_bug("rb_sys_fail_path_in(%s, %s) - errno == 0",</div><div class='del'>-	       func_name, s);</div><div class='add'>+        const char *s = !NIL_P(path) ? RSTRING_PTR(path) : "";</div><div class='add'>+        if (!func_name) func_name = "(null)";</div><div class='add'>+        rb_bug("rb_sys_fail_path_in(%s, %s) - errno == 0",</div><div class='add'>+               func_name, s);</div><div class='ctx'>     }</div><div class='ctx'>     args[0] = path;</div><div class='ctx'>     args[1] = rb_str_new_cstr(func_name);</div><div class='del'>-    rb_exc_raise(rb_class_new_instance(2, args, get_syserr(n)));</div><div class='add'>+    return rb_class_new_instance(2, args, get_syserr(n));</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+NORETURN(static void rb_mod_exc_raise(VALUE exc, VALUE mod));</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_mod_exc_raise(VALUE exc, VALUE mod)</div><div class='add'>+{</div><div class='add'>+    rb_extend_object(exc, mod);</div><div class='add'>+    rb_exc_raise(exc);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> rb_mod_sys_fail(VALUE mod, const char *mesg)</div><div class='ctx'> {</div><div class='ctx'>     VALUE exc = make_errno_exc(mesg);</div><div class='del'>-    rb_extend_object(exc, mod);</div><div class='del'>-    rb_exc_raise(exc);</div><div class='add'>+    rb_mod_exc_raise(exc, mod);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_mod_sys_fail_str(VALUE mod, VALUE mesg)</div><div class='ctx'> {</div><div class='ctx'>     VALUE exc = make_errno_exc_str(mesg);</div><div class='del'>-    rb_extend_object(exc, mod);</div><div class='del'>-    rb_exc_raise(exc);</div><div class='add'>+    rb_mod_exc_raise(exc, mod);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_mod_syserr_fail(VALUE mod, int e, const char *mesg)</div><div class='ctx'> {</div><div class='ctx'>     VALUE exc = rb_syserr_new(e, mesg);</div><div class='del'>-    rb_extend_object(exc, mod);</div><div class='del'>-    rb_exc_raise(exc);</div><div class='add'>+    rb_mod_exc_raise(exc, mod);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_mod_syserr_fail_str(VALUE mod, int e, VALUE mesg)</div><div class='ctx'> {</div><div class='ctx'>     VALUE exc = rb_syserr_new_str(e, mesg);</div><div class='del'>-    rb_extend_object(exc, mod);</div><div class='del'>-    rb_exc_raise(exc);</div><div class='add'>+    rb_mod_exc_raise(exc, mod);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -2747,11 +3366,11 @@ void</div><div class='ctx'> rb_sys_warn(const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (!NIL_P(ruby_verbose)) {</div><div class='del'>-	int errno_save = errno;</div><div class='del'>-	with_warning_string(mesg, 0, fmt) {</div><div class='del'>-	    syserr_warning(mesg, errno_save);</div><div class='del'>-	}</div><div class='del'>-	errno = errno_save;</div><div class='add'>+        int errno_save = errno;</div><div class='add'>+        with_warning_string(mesg, 0, fmt) {</div><div class='add'>+            syserr_warning(mesg, errno_save);</div><div class='add'>+        }</div><div class='add'>+        errno = errno_save;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2759,9 +3378,9 @@ void</div><div class='ctx'> rb_syserr_warn(int err, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (!NIL_P(ruby_verbose)) {</div><div class='del'>-	with_warning_string(mesg, 0, fmt) {</div><div class='del'>-	    syserr_warning(mesg, err);</div><div class='del'>-	}</div><div class='add'>+        with_warning_string(mesg, 0, fmt) {</div><div class='add'>+            syserr_warning(mesg, err);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2769,11 +3388,11 @@ void</div><div class='ctx'> rb_sys_enc_warn(rb_encoding *enc, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (!NIL_P(ruby_verbose)) {</div><div class='del'>-	int errno_save = errno;</div><div class='del'>-	with_warning_string(mesg, enc, fmt) {</div><div class='del'>-	    syserr_warning(mesg, errno_save);</div><div class='del'>-	}</div><div class='del'>-	errno = errno_save;</div><div class='add'>+        int errno_save = errno;</div><div class='add'>+        with_warning_string(mesg, enc, fmt) {</div><div class='add'>+            syserr_warning(mesg, errno_save);</div><div class='add'>+        }</div><div class='add'>+        errno = errno_save;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2781,9 +3400,9 @@ void</div><div class='ctx'> rb_syserr_enc_warn(int err, rb_encoding *enc, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (!NIL_P(ruby_verbose)) {</div><div class='del'>-	with_warning_string(mesg, enc, fmt) {</div><div class='del'>-	    syserr_warning(mesg, err);</div><div class='del'>-	}</div><div class='add'>+        with_warning_string(mesg, enc, fmt) {</div><div class='add'>+            syserr_warning(mesg, err);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -2792,11 +3411,11 @@ void</div><div class='ctx'> rb_sys_warning(const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(ruby_verbose)) {</div><div class='del'>-	int errno_save = errno;</div><div class='del'>-	with_warning_string(mesg, 0, fmt) {</div><div class='del'>-	    syserr_warning(mesg, errno_save);</div><div class='del'>-	}</div><div class='del'>-	errno = errno_save;</div><div class='add'>+        int errno_save = errno;</div><div class='add'>+        with_warning_string(mesg, 0, fmt) {</div><div class='add'>+            syserr_warning(mesg, errno_save);</div><div class='add'>+        }</div><div class='add'>+        errno = errno_save;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2805,9 +3424,9 @@ void</div><div class='ctx'> rb_syserr_warning(int err, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(ruby_verbose)) {</div><div class='del'>-	with_warning_string(mesg, 0, fmt) {</div><div class='del'>-	    syserr_warning(mesg, err);</div><div class='del'>-	}</div><div class='add'>+        with_warning_string(mesg, 0, fmt) {</div><div class='add'>+            syserr_warning(mesg, err);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -2816,11 +3435,11 @@ void</div><div class='ctx'> rb_sys_enc_warning(rb_encoding *enc, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(ruby_verbose)) {</div><div class='del'>-	int errno_save = errno;</div><div class='del'>-	with_warning_string(mesg, enc, fmt) {</div><div class='del'>-	    syserr_warning(mesg, errno_save);</div><div class='del'>-	}</div><div class='del'>-	errno = errno_save;</div><div class='add'>+        int errno_save = errno;</div><div class='add'>+        with_warning_string(mesg, enc, fmt) {</div><div class='add'>+            syserr_warning(mesg, errno_save);</div><div class='add'>+        }</div><div class='add'>+        errno = errno_save;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2828,9 +3447,9 @@ void</div><div class='ctx'> rb_syserr_enc_warning(int err, rb_encoding *enc, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(ruby_verbose)) {</div><div class='del'>-	with_warning_string(mesg, enc, fmt) {</div><div class='del'>-	    syserr_warning(mesg, err);</div><div class='del'>-	}</div><div class='add'>+        with_warning_string(mesg, enc, fmt) {</div><div class='add'>+            syserr_warning(mesg, err);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2850,40 +3469,57 @@ rb_error_frozen(const char *what)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_error_frozen_object(VALUE frozen_obj)</div><div class='add'>+rb_frozen_error_raise(VALUE frozen_obj, const char *fmt, ...)</div><div class='ctx'> {</div><div class='del'>-    VALUE debug_info;</div><div class='del'>-    const ID created_info = id_debug_created_info;</div><div class='add'>+    va_list args;</div><div class='add'>+    VALUE exc, mesg;</div><div class='ctx'> </div><div class='del'>-    if (!NIL_P(debug_info = rb_attr_get(frozen_obj, created_info))) {</div><div class='del'>-	VALUE path = rb_ary_entry(debug_info, 0);</div><div class='del'>-	VALUE line = rb_ary_entry(debug_info, 1);</div><div class='add'>+    va_start(args, fmt);</div><div class='add'>+    mesg = rb_vsprintf(fmt, args);</div><div class='add'>+    va_end(args);</div><div class='add'>+    exc = rb_exc_new3(rb_eFrozenError, mesg);</div><div class='add'>+    rb_ivar_set(exc, id_recv, frozen_obj);</div><div class='add'>+    rb_exc_raise(exc);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-	rb_raise(rb_eFrozenError, "can't modify frozen %"PRIsVALUE", created at %"PRIsVALUE":%"PRIsVALUE,</div><div class='del'>-		 CLASS_OF(frozen_obj), path, line);</div><div class='add'>+static VALUE</div><div class='add'>+inspect_frozen_obj(VALUE obj, VALUE mesg, int recur)</div><div class='add'>+{</div><div class='add'>+    if (recur) {</div><div class='add'>+        rb_str_cat_cstr(mesg, " ...");</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_raise(rb_eFrozenError, "can't modify frozen %"PRIsVALUE,</div><div class='del'>-		 CLASS_OF(frozen_obj));</div><div class='add'>+        rb_str_append(mesg, rb_inspect(obj));</div><div class='ctx'>     }</div><div class='add'>+    return mesg;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#undef rb_check_frozen</div><div class='ctx'> void</div><div class='del'>-rb_check_frozen(VALUE obj)</div><div class='add'>+rb_error_frozen_object(VALUE frozen_obj)</div><div class='ctx'> {</div><div class='del'>-    rb_check_frozen_internal(obj);</div><div class='del'>-}</div><div class='add'>+    VALUE debug_info;</div><div class='add'>+    const ID created_info = id_debug_created_info;</div><div class='add'>+    VALUE mesg = rb_sprintf("can't modify frozen %"PRIsVALUE": ",</div><div class='add'>+                            CLASS_OF(frozen_obj));</div><div class='add'>+    VALUE exc = rb_exc_new_str(rb_eFrozenError, mesg);</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_error_untrusted(VALUE obj)</div><div class='del'>-{</div><div class='add'>+    rb_ivar_set(exc, id_recv, frozen_obj);</div><div class='add'>+    rb_exec_recursive(inspect_frozen_obj, frozen_obj, mesg);</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(debug_info = rb_attr_get(frozen_obj, created_info))) {</div><div class='add'>+        VALUE path = rb_ary_entry(debug_info, 0);</div><div class='add'>+        VALUE line = rb_ary_entry(debug_info, 1);</div><div class='add'>+</div><div class='add'>+        rb_str_catf(mesg, ", created at %"PRIsVALUE":%"PRIsVALUE, path, line);</div><div class='add'>+    }</div><div class='add'>+    rb_exc_raise(exc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#undef rb_check_trusted</div><div class='add'>+#undef rb_check_frozen</div><div class='ctx'> void</div><div class='del'>-rb_check_trusted(VALUE obj)</div><div class='add'>+rb_check_frozen(VALUE obj)</div><div class='ctx'> {</div><div class='add'>+    rb_check_frozen_internal(obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -2892,12 +3528,6 @@ rb_check_copyable(VALUE obj, VALUE orig)</div><div class='ctx'>     if (!FL_ABLE(obj)) return;</div><div class='ctx'>     rb_check_frozen_internal(obj);</div><div class='ctx'>     if (!FL_ABLE(orig)) return;</div><div class='del'>-    if ((~RBASIC(obj)-&gt;flags &amp; RBASIC(orig)-&gt;flags) &amp; FL_TAINT) {</div><div class='del'>-	if (rb_safe_level() &gt; 0) {</div><div class='del'>-	    rb_raise(rb_eSecurityError, "Insecure: can't modify %"PRIsVALUE,</div><div class='del'>-		     RBASIC(obj)-&gt;klass);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -2911,6 +3541,8 @@ Init_syserr(void)</div><div class='ctx'> #undef undefined_error</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#include "warning.rbinc"</div><div class='add'>+</div><div class='ctx'> /*!</div><div class='ctx'>  * \}</div><div class='ctx'>  */</div><div class='head'>diff --git a/eval.c b/eval.c<br/>index ecb79ccdcb..a61dfb1289 100644<br/>--- a/<a href='/ruby.git/tree/eval.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>eval.c</a><br/>+++ b/<a href='/ruby.git/tree/eval.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>eval.c</a></div><div class='hunk'>@@ -11,20 +11,40 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SYS_PRCTL_H</div><div class='add'>+#include &lt;sys/prctl.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #include "eval_intern.h"</div><div class='del'>-#include "iseq.h"</div><div class='ctx'> #include "gc.h"</div><div class='del'>-#include "ruby/vm.h"</div><div class='del'>-#include "vm_core.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/class.h"</div><div class='add'>+#include "internal/cont.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/eval.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/inits.h"</div><div class='add'>+#include "internal/io.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/thread.h"</div><div class='add'>+#include "internal/variable.h"</div><div class='add'>+#include "ruby/fiber/scheduler.h"</div><div class='add'>+#include "iseq.h"</div><div class='ctx'> #include "mjit.h"</div><div class='ctx'> #include "probes.h"</div><div class='ctx'> #include "probes_helper.h"</div><div class='del'>-#ifdef HAVE_SYS_PRCTL_H</div><div class='del'>-#include &lt;sys/prctl.h&gt;</div><div class='del'>-#endif</div><div class='add'>+#include "ruby/vm.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "ractor_core.h"</div><div class='add'>+</div><div class='add'>+NORETURN(static void rb_raise_jump(VALUE, VALUE));</div><div class='add'>+void rb_ec_clear_current_thread_trace_func(const rb_execution_context_t *ec);</div><div class='add'>+void rb_ec_clear_all_trace_func(const rb_execution_context_t *ec);</div><div class='ctx'> </div><div class='del'>-NORETURN(void rb_raise_jump(VALUE, VALUE));</div><div class='add'>+static int rb_ec_cleanup(rb_execution_context_t *ec, enum ruby_tag_type ex);</div><div class='add'>+static int rb_ec_exec_node(rb_execution_context_t *ec, void *n);</div><div class='ctx'> </div><div class='ctx'> VALUE rb_eLocalJumpError;</div><div class='ctx'> VALUE rb_eSysStackError;</div><div class='hunk'>@@ -42,18 +62,13 @@ extern ID ruby_static_id_cause;</div><div class='ctx'>     (!SPECIAL_CONST_P(obj) &amp;&amp; \</div><div class='ctx'>      (BUILTIN_TYPE(obj) == T_CLASS || BUILTIN_TYPE(obj) == T_MODULE))</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Initializes the Ruby VM and builtin libraries.</div><div class='del'>- * @retval 0 if succeeded.</div><div class='del'>- * @retval non-zero an error occurred.</div><div class='del'>- */</div><div class='ctx'> int</div><div class='ctx'> ruby_setup(void)</div><div class='ctx'> {</div><div class='ctx'>     enum ruby_tag_type state;</div><div class='ctx'> </div><div class='ctx'>     if (GET_VM())</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'> </div><div class='ctx'>     ruby_init_stack((void *)&amp;state);</div><div class='ctx'> </div><div class='hunk'>@@ -71,220 +86,220 @@ ruby_setup(void)</div><div class='ctx'> </div><div class='ctx'>     EC_PUSH_TAG(GET_EC());</div><div class='ctx'>     if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='del'>-	rb_call_inits();</div><div class='del'>-	ruby_prog_init();</div><div class='del'>-	GET_VM()-&gt;running = 1;</div><div class='add'>+        rb_call_inits();</div><div class='add'>+        ruby_prog_init();</div><div class='add'>+        GET_VM()-&gt;running = 1;</div><div class='ctx'>     }</div><div class='ctx'>     EC_POP_TAG();</div><div class='ctx'> </div><div class='ctx'>     return state;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Calls ruby_setup() and check error.</div><div class='del'>- *</div><div class='del'>- * Prints errors and calls exit(3) if an error occurred.</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> ruby_init(void)</div><div class='ctx'> {</div><div class='ctx'>     int state = ruby_setup();</div><div class='ctx'>     if (state) {</div><div class='del'>-        if (RTEST(ruby_debug))</div><div class='del'>-            error_print(GET_EC());</div><div class='del'>-	exit(EXIT_FAILURE);</div><div class='add'>+        if (RTEST(ruby_debug)) {</div><div class='add'>+            rb_execution_context_t *ec = GET_EC();</div><div class='add'>+            rb_ec_error_print(ec, ec-&gt;errinfo);</div><div class='add'>+        }</div><div class='add'>+        exit(EXIT_FAILURE);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! Processes command line arguments and compiles the Ruby source to execute.</div><div class='del'>- *</div><div class='del'>- * This function does:</div><div class='del'>- * \li Processes the given command line flags and arguments for ruby(1)</div><div class='del'>- * \li compiles the source code from the given argument, -e or stdin, and</div><div class='del'>- * \li returns the compiled source as an opaque pointer to an internal data structure</div><div class='del'>- *</div><div class='del'>- * @return an opaque pointer to the compiled source or an internal special value.</div><div class='del'>- * @sa ruby_executable_node().</div><div class='del'>- */</div><div class='ctx'> void *</div><div class='ctx'> ruby_options(int argc, char **argv)</div><div class='ctx'> {</div><div class='add'>+    rb_execution_context_t *ec = GET_EC();</div><div class='ctx'>     enum ruby_tag_type state;</div><div class='ctx'>     void *volatile iseq = 0;</div><div class='ctx'> </div><div class='ctx'>     ruby_init_stack((void *)&amp;iseq);</div><div class='del'>-    EC_PUSH_TAG(GET_EC());</div><div class='add'>+    EC_PUSH_TAG(ec);</div><div class='ctx'>     if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='del'>-	SAVE_ROOT_JMPBUF(GET_THREAD(), iseq = ruby_process_options(argc, argv));</div><div class='add'>+        SAVE_ROOT_JMPBUF(GET_THREAD(), iseq = ruby_process_options(argc, argv));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_clear_trace_func();</div><div class='del'>-	state = error_handle(state);</div><div class='del'>-	iseq = (void *)INT2FIX(state);</div><div class='add'>+        rb_ec_clear_current_thread_trace_func(ec);</div><div class='add'>+        int exitcode = error_handle(ec, ec-&gt;errinfo, state);</div><div class='add'>+        ec-&gt;errinfo = Qnil; /* just been handled */</div><div class='add'>+        iseq = (void *)INT2FIX(exitcode);</div><div class='ctx'>     }</div><div class='ctx'>     EC_POP_TAG();</div><div class='ctx'>     return iseq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-ruby_finalize_0(void)</div><div class='add'>+rb_ec_fiber_scheduler_finalize(rb_execution_context_t *ec)</div><div class='ctx'> {</div><div class='del'>-    EC_PUSH_TAG(GET_EC());</div><div class='add'>+    enum ruby_tag_type state;</div><div class='add'>+</div><div class='add'>+    EC_PUSH_TAG(ec);</div><div class='add'>+    if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='add'>+        rb_fiber_scheduler_set(Qnil);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        state = error_handle(ec, ec-&gt;errinfo, state);</div><div class='add'>+    }</div><div class='add'>+    EC_POP_TAG();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_ec_teardown(rb_execution_context_t *ec)</div><div class='add'>+{</div><div class='add'>+    // If the user code defined a scheduler for the top level thread, run it:</div><div class='add'>+    rb_ec_fiber_scheduler_finalize(ec);</div><div class='add'>+</div><div class='add'>+    EC_PUSH_TAG(ec);</div><div class='ctx'>     if (EC_EXEC_TAG() == TAG_NONE) {</div><div class='del'>-	rb_trap_exit();</div><div class='add'>+        rb_vm_trap_exit(rb_ec_vm_ptr(ec));</div><div class='ctx'>     }</div><div class='ctx'>     EC_POP_TAG();</div><div class='del'>-    rb_exec_end_proc();</div><div class='del'>-    rb_clear_trace_func();</div><div class='add'>+    rb_ec_exec_end_proc(ec);</div><div class='add'>+    rb_ec_clear_all_trace_func(ec);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-ruby_finalize_1(void)</div><div class='add'>+rb_ec_finalize(rb_execution_context_t *ec)</div><div class='ctx'> {</div><div class='ctx'>     ruby_sig_finalize();</div><div class='del'>-    GET_EC()-&gt;errinfo = Qnil;</div><div class='del'>-    rb_gc_call_finalizer_at_exit();</div><div class='add'>+    ec-&gt;errinfo = Qnil;</div><div class='add'>+    rb_objspace_call_finalizer(rb_ec_vm_ptr(ec)-&gt;objspace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/** Runs the VM finalization processes.</div><div class='del'>- *</div><div class='del'>- * &lt;code&gt;END{}&lt;/code&gt; and procs registered by &lt;code&gt;Kernel.#at_exit&lt;/code&gt; are</div><div class='del'>- * executed here. See the Ruby language spec for more details.</div><div class='del'>- *</div><div class='del'>- * @note This function is allowed to raise an exception if an error occurred.</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> ruby_finalize(void)</div><div class='ctx'> {</div><div class='del'>-    ruby_finalize_0();</div><div class='del'>-    ruby_finalize_1();</div><div class='add'>+    rb_execution_context_t *ec = GET_EC();</div><div class='add'>+    rb_ec_teardown(ec);</div><div class='add'>+    rb_ec_finalize(ec);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/** Destructs the VM.</div><div class='del'>- *</div><div class='del'>- * Runs the VM finalization processes as well as ruby_finalize(), and frees</div><div class='del'>- * resources used by the VM.</div><div class='del'>- *</div><div class='del'>- * @param ex Default value to the return value.</div><div class='del'>- * @return If an error occurred returns a non-zero. If otherwise, returns the</div><div class='del'>- *         given ex.</div><div class='del'>- * @note This function does not raise any exception.</div><div class='del'>- */</div><div class='ctx'> int</div><div class='del'>-ruby_cleanup(volatile int ex)</div><div class='add'>+ruby_cleanup(int ex)</div><div class='add'>+{</div><div class='add'>+    return rb_ec_cleanup(GET_EC(), (enum ruby_tag_type)ex);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+rb_ec_cleanup(rb_execution_context_t *ec, enum ruby_tag_type ex)</div><div class='ctx'> {</div><div class='ctx'>     int state;</div><div class='del'>-    volatile VALUE errs[2];</div><div class='del'>-    rb_thread_t *th = GET_THREAD();</div><div class='del'>-    int nerr;</div><div class='add'>+    volatile VALUE save_error = Qundef;</div><div class='ctx'>     volatile int sysex = EXIT_SUCCESS;</div><div class='add'>+    volatile int signaled = 0;</div><div class='add'>+    rb_thread_t *th = rb_ec_thread_ptr(ec);</div><div class='add'>+    rb_thread_t *const volatile th0 = th;</div><div class='ctx'>     volatile int step = 0;</div><div class='add'>+    volatile VALUE message = Qnil;</div><div class='add'>+    VALUE buf;</div><div class='ctx'> </div><div class='ctx'>     rb_threadptr_interrupt(th);</div><div class='ctx'>     rb_threadptr_check_signal(th);</div><div class='del'>-    EC_PUSH_TAG(th-&gt;ec);</div><div class='add'>+</div><div class='add'>+    EC_PUSH_TAG(ec);</div><div class='ctx'>     if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='del'>-	SAVE_ROOT_JMPBUF(th, { RUBY_VM_CHECK_INTS(th-&gt;ec); });</div><div class='add'>+        SAVE_ROOT_JMPBUF(th, { RUBY_VM_CHECK_INTS(ec); });</div><div class='ctx'> </div><div class='ctx'>       step_0: step++;</div><div class='del'>-	errs[1] = th-&gt;ec-&gt;errinfo;</div><div class='del'>-	rb_set_safe_level_force(0);</div><div class='del'>-	ruby_init_stack(&amp;errs[STACK_UPPER(errs, 0, 1)]);</div><div class='add'>+        save_error = ec-&gt;errinfo;</div><div class='add'>+        if (THROW_DATA_P(ec-&gt;errinfo)) ec-&gt;errinfo = Qnil;</div><div class='add'>+        ruby_init_stack(&amp;message);</div><div class='ctx'> </div><div class='del'>-	SAVE_ROOT_JMPBUF(th, ruby_finalize_0());</div><div class='add'>+        /* exits with failure but silently when an exception raised</div><div class='add'>+         * here */</div><div class='add'>+        SAVE_ROOT_JMPBUF(th, rb_ec_teardown(ec));</div><div class='ctx'> </div><div class='ctx'>       step_1: step++;</div><div class='del'>-	/* protect from Thread#raise */</div><div class='del'>-	th-&gt;status = THREAD_KILLED;</div><div class='del'>-</div><div class='del'>-	errs[0] = th-&gt;ec-&gt;errinfo;</div><div class='del'>-	SAVE_ROOT_JMPBUF(th, rb_thread_terminate_all());</div><div class='add'>+        VALUE err = ec-&gt;errinfo;</div><div class='add'>+        volatile int mode0 = 0, mode1 = 0;</div><div class='add'>+        if (err != save_error &amp;&amp; !NIL_P(err)) {</div><div class='add'>+            mode0 = exiting_split(err, &amp;sysex, &amp;signaled);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* exceptions after here will be ignored */</div><div class='add'>+</div><div class='add'>+        /* build error message including causes */</div><div class='add'>+        err = ATOMIC_VALUE_EXCHANGE(save_error, Qnil);</div><div class='add'>+</div><div class='add'>+        if (!NIL_P(err) &amp;&amp; !THROW_DATA_P(err)) {</div><div class='add'>+            mode1 = exiting_split(err, (mode0 &amp; EXITING_WITH_STATUS) ? NULL : &amp;sysex, &amp;signaled);</div><div class='add'>+            if (mode1 &amp; EXITING_WITH_MESSAGE) {</div><div class='add'>+                buf = rb_str_new(NULL, 0);</div><div class='add'>+                SAVE_ROOT_JMPBUF(th, rb_ec_error_print_detailed(ec, err, buf, Qundef));</div><div class='add'>+                message = buf;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+      step_2: step++;</div><div class='add'>+        /* protect from Thread#raise */</div><div class='add'>+        th-&gt;status = THREAD_KILLED;</div><div class='add'>+</div><div class='add'>+        SAVE_ROOT_JMPBUF(th, rb_ractor_terminate_all());</div><div class='add'>+</div><div class='add'>+      step_3: step++;</div><div class='add'>+        if (!NIL_P(buf = message)) {</div><div class='add'>+            warn_print_str(buf);</div><div class='add'>+        }</div><div class='add'>+        else if (!NIL_OR_UNDEF_P(err = save_error) ||</div><div class='add'>+                 (ex != TAG_NONE &amp;&amp; !((mode0|mode1) &amp; EXITING_WITH_STATUS))) {</div><div class='add'>+            sysex = error_handle(ec, err, ex);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	switch (step) {</div><div class='del'>-	  case 0: goto step_0;</div><div class='del'>-	  case 1: goto step_1;</div><div class='del'>-	}</div><div class='del'>-	if (ex == 0) ex = state;</div><div class='add'>+        th = th0;</div><div class='add'>+        switch (step) {</div><div class='add'>+          case 0: goto step_0;</div><div class='add'>+          case 1: goto step_1;</div><div class='add'>+          case 2: goto step_2;</div><div class='add'>+          case 3: goto step_3;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    th-&gt;ec-&gt;errinfo = errs[1];</div><div class='del'>-    sysex = error_handle(ex);</div><div class='del'>-</div><div class='del'>-    state = 0;</div><div class='del'>-    for (nerr = 0; nerr &lt; numberof(errs); ++nerr) {</div><div class='del'>-	VALUE err = ATOMIC_VALUE_EXCHANGE(errs[nerr], Qnil);</div><div class='ctx'> </div><div class='del'>-	if (!RTEST(err)) continue;</div><div class='add'>+    mjit_finish(true); // We still need ISeqs here, so it's before rb_ec_finalize().</div><div class='ctx'> </div><div class='del'>-	/* th-&gt;ec-&gt;errinfo contains a NODE while break'ing */</div><div class='del'>-	if (THROW_DATA_P(err)) continue;</div><div class='del'>-</div><div class='del'>-	if (rb_obj_is_kind_of(err, rb_eSystemExit)) {</div><div class='del'>-	    sysex = sysexit_status(err);</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	else if (rb_obj_is_kind_of(err, rb_eSignal)) {</div><div class='del'>-	    VALUE sig = rb_ivar_get(err, id_signo);</div><div class='del'>-	    state = NUM2INT(sig);</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	else if (sysex == EXIT_SUCCESS) {</div><div class='del'>-	    sysex = EXIT_FAILURE;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    mjit_finish(TRUE); /* We still need ISeqs here. */</div><div class='del'>-</div><div class='del'>-    ruby_finalize_1();</div><div class='add'>+    rb_ec_finalize(ec);</div><div class='ctx'> </div><div class='ctx'>     /* unlock again if finalizer took mutexes. */</div><div class='del'>-    rb_threadptr_unlock_all_locking_mutexes(GET_THREAD());</div><div class='add'>+    rb_threadptr_unlock_all_locking_mutexes(th);</div><div class='add'>+    th = th0;</div><div class='ctx'>     EC_POP_TAG();</div><div class='add'>+    th = th0;</div><div class='ctx'>     rb_thread_stop_timer_thread();</div><div class='del'>-    ruby_vm_destruct(GET_VM());</div><div class='del'>-    if (state) ruby_default_signal(state);</div><div class='add'>+    ruby_vm_destruct(th-&gt;vm);</div><div class='add'>+    // For YJIT, call this after ruby_vm_destruct() frees jit_cont for the root fiber.</div><div class='add'>+    rb_jit_cont_finish();</div><div class='add'>+</div><div class='add'>+    if (signaled) ruby_default_signal(signaled);</div><div class='ctx'> </div><div class='ctx'>     return sysex;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ruby_exec_internal(void *n)</div><div class='add'>+rb_ec_exec_node(rb_execution_context_t *ec, void *n)</div><div class='ctx'> {</div><div class='ctx'>     volatile int state;</div><div class='ctx'>     rb_iseq_t *iseq = (rb_iseq_t *)n;</div><div class='del'>-    rb_thread_t * volatile th = GET_THREAD();</div><div class='del'>-</div><div class='ctx'>     if (!n) return 0;</div><div class='ctx'> </div><div class='del'>-    EC_PUSH_TAG(th-&gt;ec);</div><div class='add'>+    EC_PUSH_TAG(ec);</div><div class='ctx'>     if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='del'>-	SAVE_ROOT_JMPBUF(th, {</div><div class='del'>-	    rb_iseq_eval_main(iseq);</div><div class='del'>-	});</div><div class='add'>+        rb_thread_t *const th = rb_ec_thread_ptr(ec);</div><div class='add'>+        SAVE_ROOT_JMPBUF(th, {</div><div class='add'>+            rb_iseq_eval_main(iseq);</div><div class='add'>+        });</div><div class='ctx'>     }</div><div class='ctx'>     EC_POP_TAG();</div><div class='ctx'>     return state;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! Calls ruby_cleanup() and exits the process */</div><div class='ctx'> void</div><div class='ctx'> ruby_stop(int ex)</div><div class='ctx'> {</div><div class='ctx'>     exit(ruby_cleanup(ex));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! Checks the return value of ruby_options().</div><div class='del'>- * @param n return value of ruby_options().</div><div class='del'>- * @param status pointer to the exit status of this process.</div><div class='del'>- *</div><div class='del'>- * ruby_options() sometimes returns a special value to indicate this process</div><div class='del'>- * should immediately exit. This function checks if the case. Also stores the</div><div class='del'>- * exit status that the caller have to pass to exit(3) into</div><div class='del'>- * &lt;code&gt;*status&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- * @retval non-zero if the given opaque pointer is actually a compiled source.</div><div class='del'>- * @retval 0 if the given value is such a special value.</div><div class='del'>- */</div><div class='ctx'> int</div><div class='ctx'> ruby_executable_node(void *n, int *status)</div><div class='ctx'> {</div><div class='hunk'>@@ -295,34 +310,31 @@ ruby_executable_node(void *n, int *status)</div><div class='ctx'>       case Qtrue:  s = EXIT_SUCCESS; break;</div><div class='ctx'>       case Qfalse: s = EXIT_FAILURE; break;</div><div class='ctx'>       default:</div><div class='del'>-	if (!FIXNUM_P(v)) return TRUE;</div><div class='del'>-	s = FIX2INT(v);</div><div class='add'>+        if (!FIXNUM_P(v)) return TRUE;</div><div class='add'>+        s = FIX2INT(v);</div><div class='ctx'>     }</div><div class='ctx'>     if (status) *status = s;</div><div class='ctx'>     return FALSE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! Runs the given compiled source and exits this process.</div><div class='del'>- * @retval 0 if successfully run the source</div><div class='del'>- * @retval non-zero if an error occurred.</div><div class='del'>-*/</div><div class='ctx'> int</div><div class='ctx'> ruby_run_node(void *n)</div><div class='ctx'> {</div><div class='add'>+    rb_execution_context_t *ec = GET_EC();</div><div class='ctx'>     int status;</div><div class='ctx'>     if (!ruby_executable_node(n, &amp;status)) {</div><div class='del'>-	ruby_cleanup(0);</div><div class='del'>-	return status;</div><div class='add'>+        rb_ec_cleanup(ec, (NIL_P(ec-&gt;errinfo) ? TAG_NONE : TAG_RAISE));</div><div class='add'>+        return status;</div><div class='ctx'>     }</div><div class='del'>-    return ruby_cleanup(ruby_exec_node(n));</div><div class='add'>+    ruby_init_stack((void *)&amp;status);</div><div class='add'>+    return rb_ec_cleanup(ec, rb_ec_exec_node(ec, n));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! Runs the given compiled source */</div><div class='ctx'> int</div><div class='ctx'> ruby_exec_node(void *n)</div><div class='ctx'> {</div><div class='ctx'>     ruby_init_stack((void *)&amp;n);</div><div class='del'>-    return ruby_exec_internal(n);</div><div class='add'>+    return rb_ec_exec_node(GET_EC(), n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -341,18 +353,18 @@ ruby_exec_node(void *n)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_mod_nesting(void)</div><div class='add'>+rb_mod_nesting(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary = rb_ary_new();</div><div class='ctx'>     const rb_cref_t *cref = rb_vm_cref();</div><div class='ctx'> </div><div class='ctx'>     while (cref &amp;&amp; CREF_NEXT(cref)) {</div><div class='del'>-	VALUE klass = CREF_CLASS(cref);</div><div class='del'>-	if (!CREF_PUSHED_BY_EVAL(cref) &amp;&amp;</div><div class='del'>-	    !NIL_P(klass)) {</div><div class='del'>-	    rb_ary_push(ary, klass);</div><div class='del'>-	}</div><div class='del'>-	cref = CREF_NEXT(cref);</div><div class='add'>+        VALUE klass = CREF_CLASS(cref);</div><div class='add'>+        if (!CREF_PUSHED_BY_EVAL(cref) &amp;&amp;</div><div class='add'>+            !NIL_P(klass)) {</div><div class='add'>+            rb_ary_push(ary, klass);</div><div class='add'>+        }</div><div class='add'>+        cref = CREF_NEXT(cref);</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -388,23 +400,23 @@ rb_mod_s_constants(int argc, VALUE *argv, VALUE mod)</div><div class='ctx'>     void *data = 0;</div><div class='ctx'> </div><div class='ctx'>     if (argc &gt; 0 || mod != rb_cModule) {</div><div class='del'>-	return rb_mod_constants(argc, argv, mod);</div><div class='add'>+        return rb_mod_constants(argc, argv, mod);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (cref) {</div><div class='del'>-	klass = CREF_CLASS(cref);</div><div class='del'>-	if (!CREF_PUSHED_BY_EVAL(cref) &amp;&amp;</div><div class='del'>-	    !NIL_P(klass)) {</div><div class='del'>-	    data = rb_mod_const_at(CREF_CLASS(cref), data);</div><div class='del'>-	    if (!cbase) {</div><div class='del'>-		cbase = klass;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	cref = CREF_NEXT(cref);</div><div class='add'>+        klass = CREF_CLASS(cref);</div><div class='add'>+        if (!CREF_PUSHED_BY_EVAL(cref) &amp;&amp;</div><div class='add'>+            !NIL_P(klass)) {</div><div class='add'>+            data = rb_mod_const_at(CREF_CLASS(cref), data);</div><div class='add'>+            if (!cbase) {</div><div class='add'>+                cbase = klass;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        cref = CREF_NEXT(cref);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (cbase) {</div><div class='del'>-	data = rb_mod_const_of(cbase, data);</div><div class='add'>+        data = rb_mod_const_of(cbase, data);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_const_list(data);</div><div class='ctx'> }</div><div class='hunk'>@@ -419,70 +431,75 @@ void</div><div class='ctx'> rb_class_modify_check(VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     if (SPECIAL_CONST_P(klass)) {</div><div class='del'>-      noclass:</div><div class='del'>-	Check_Type(klass, T_CLASS);</div><div class='add'>+        Check_Type(klass, T_CLASS);</div><div class='add'>+    }</div><div class='add'>+    if (RB_TYPE_P(klass, T_MODULE)) {</div><div class='add'>+        rb_module_set_initialized(klass);</div><div class='ctx'>     }</div><div class='ctx'>     if (OBJ_FROZEN(klass)) {</div><div class='del'>-	const char *desc;</div><div class='del'>-</div><div class='del'>-	if (FL_TEST(klass, FL_SINGLETON)) {</div><div class='del'>-	    desc = "object";</div><div class='del'>-	    klass = rb_ivar_get(klass, id__attached__);</div><div class='del'>-	    if (!SPECIAL_CONST_P(klass)) {</div><div class='del'>-		switch (BUILTIN_TYPE(klass)) {</div><div class='del'>-		  case T_MODULE:</div><div class='del'>-		  case T_ICLASS:</div><div class='del'>-		    desc = "Module";</div><div class='del'>-		    break;</div><div class='del'>-		  case T_CLASS:</div><div class='del'>-		    desc = "Class";</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    switch (BUILTIN_TYPE(klass)) {</div><div class='del'>-	      case T_MODULE:</div><div class='del'>-	      case T_ICLASS:</div><div class='del'>-		desc = "module";</div><div class='del'>-		break;</div><div class='del'>-	      case T_CLASS:</div><div class='del'>-		desc = "class";</div><div class='del'>-		break;</div><div class='del'>-	      default:</div><div class='del'>-		goto noclass;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	rb_error_frozen(desc);</div><div class='add'>+        const char *desc;</div><div class='add'>+</div><div class='add'>+        if (FL_TEST(klass, FL_SINGLETON)) {</div><div class='add'>+            desc = "object";</div><div class='add'>+            klass = rb_ivar_get(klass, id__attached__);</div><div class='add'>+            if (!SPECIAL_CONST_P(klass)) {</div><div class='add'>+                switch (BUILTIN_TYPE(klass)) {</div><div class='add'>+                  case T_MODULE:</div><div class='add'>+                  case T_ICLASS:</div><div class='add'>+                    desc = "Module";</div><div class='add'>+                    break;</div><div class='add'>+                  case T_CLASS:</div><div class='add'>+                    desc = "Class";</div><div class='add'>+                    break;</div><div class='add'>+                  default:</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            switch (BUILTIN_TYPE(klass)) {</div><div class='add'>+              case T_MODULE:</div><div class='add'>+              case T_ICLASS:</div><div class='add'>+                desc = "module";</div><div class='add'>+                break;</div><div class='add'>+              case T_CLASS:</div><div class='add'>+                desc = "class";</div><div class='add'>+                break;</div><div class='add'>+              default:</div><div class='add'>+                Check_Type(klass, T_CLASS);</div><div class='add'>+                UNREACHABLE;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        rb_frozen_error_raise(klass, "can't modify frozen %s: %"PRIsVALUE, desc, klass);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> NORETURN(static void rb_longjmp(rb_execution_context_t *, int, volatile VALUE, VALUE));</div><div class='ctx'> static VALUE get_errinfo(void);</div><div class='del'>-static VALUE get_ec_errinfo(const rb_execution_context_t *ec);</div><div class='add'>+#define get_ec_errinfo(ec) rb_ec_get_errinfo(ec)</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> exc_setup_cause(VALUE exc, VALUE cause)</div><div class='ctx'> {</div><div class='del'>-#if SUPPORT_JOKE</div><div class='add'>+#if OPT_SUPPORT_JOKE</div><div class='ctx'>     if (NIL_P(cause)) {</div><div class='del'>-	ID id_true_cause;</div><div class='del'>-	CONST_ID(id_true_cause, "true_cause");</div><div class='add'>+        ID id_true_cause;</div><div class='add'>+        CONST_ID(id_true_cause, "true_cause");</div><div class='ctx'> </div><div class='del'>-	cause = rb_attr_get(rb_eFatal, id_true_cause);</div><div class='del'>-	if (NIL_P(cause)) {</div><div class='del'>-	    cause = rb_exc_new_cstr(rb_eFatal, "because using such Ruby");</div><div class='del'>-	    rb_ivar_set(cause, id_cause, INT2FIX(42)); /* the answer */</div><div class='del'>-	    OBJ_FREEZE(cause);</div><div class='del'>-	    rb_ivar_set(rb_eFatal, id_true_cause, cause);</div><div class='del'>-	}</div><div class='add'>+        cause = rb_attr_get(rb_eFatal, id_true_cause);</div><div class='add'>+        if (NIL_P(cause)) {</div><div class='add'>+            cause = rb_exc_new_cstr(rb_eFatal, "because using such Ruby");</div><div class='add'>+            rb_ivar_set(cause, id_cause, INT2FIX(42)); /* the answer */</div><div class='add'>+            OBJ_FREEZE(cause);</div><div class='add'>+            rb_ivar_set(rb_eFatal, id_true_cause, cause);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     if (!NIL_P(cause) &amp;&amp; cause != exc) {</div><div class='del'>-	rb_ivar_set(exc, id_cause, cause);</div><div class='del'>-	if (!rb_ivar_defined(cause, id_cause)) {</div><div class='del'>-	    rb_ivar_set(cause, id_cause, Qnil);</div><div class='del'>-	}</div><div class='add'>+        rb_ivar_set(exc, id_cause, cause);</div><div class='add'>+        if (!rb_ivar_defined(cause, id_cause)) {</div><div class='add'>+            rb_ivar_set(cause, id_cause, Qnil);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return exc;</div><div class='ctx'> }</div><div class='hunk'>@@ -491,23 +508,45 @@ static inline VALUE</div><div class='ctx'> exc_setup_message(const rb_execution_context_t *ec, VALUE mesg, VALUE *cause)</div><div class='ctx'> {</div><div class='ctx'>     int nocause = 0;</div><div class='add'>+    int nocircular = 0;</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(mesg)) {</div><div class='del'>-	mesg = ec-&gt;errinfo;</div><div class='del'>-	if (INTERNAL_EXCEPTION_P(mesg)) EC_JUMP_TAG(ec, TAG_FATAL);</div><div class='del'>-	nocause = 1;</div><div class='add'>+        mesg = ec-&gt;errinfo;</div><div class='add'>+        if (INTERNAL_EXCEPTION_P(mesg)) EC_JUMP_TAG(ec, TAG_FATAL);</div><div class='add'>+        nocause = 1;</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(mesg)) {</div><div class='del'>-	mesg = rb_exc_new(rb_eRuntimeError, 0, 0);</div><div class='del'>-	nocause = 0;</div><div class='del'>-    }</div><div class='del'>-    if (*cause == Qundef) {</div><div class='del'>-	if (nocause) {</div><div class='del'>-	    *cause = Qnil;</div><div class='del'>-	}</div><div class='del'>-	else if (!rb_ivar_defined(mesg, id_cause)) {</div><div class='del'>-	    *cause = get_ec_errinfo(ec);</div><div class='del'>-	}</div><div class='add'>+        mesg = rb_exc_new(rb_eRuntimeError, 0, 0);</div><div class='add'>+        nocause = 0;</div><div class='add'>+        nocircular = 1;</div><div class='add'>+    }</div><div class='add'>+    if (UNDEF_P(*cause)) {</div><div class='add'>+        if (nocause) {</div><div class='add'>+            *cause = Qnil;</div><div class='add'>+            nocircular = 1;</div><div class='add'>+        }</div><div class='add'>+        else if (!rb_ivar_defined(mesg, id_cause)) {</div><div class='add'>+            *cause = get_ec_errinfo(ec);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            nocircular = 1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else if (!NIL_P(*cause) &amp;&amp; !rb_obj_is_kind_of(*cause, rb_eException)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "exception object expected");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!nocircular &amp;&amp; !NIL_P(*cause) &amp;&amp; !UNDEF_P(*cause) &amp;&amp; *cause != mesg) {</div><div class='add'>+#if 0 /* maybe critical for some cases */</div><div class='add'>+        rb_exc_check_circular_cause(*cause);</div><div class='add'>+#else</div><div class='add'>+        VALUE c = *cause;</div><div class='add'>+        while (!NIL_P(c = rb_attr_get(c, id_cause))) {</div><div class='add'>+            if (c == mesg) {</div><div class='add'>+                rb_raise(rb_eArgError, "circular causes");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='ctx'>     }</div><div class='ctx'>     return mesg;</div><div class='ctx'> }</div><div class='hunk'>@@ -516,95 +555,103 @@ static void</div><div class='ctx'> setup_exception(rb_execution_context_t *ec, int tag, volatile VALUE mesg, VALUE cause)</div><div class='ctx'> {</div><div class='ctx'>     VALUE e;</div><div class='del'>-    const char *file = 0;</div><div class='ctx'>     int line;</div><div class='del'>-</div><div class='del'>-    file = rb_source_location_cstr(&amp;line);</div><div class='del'>-    if ((file &amp;&amp; !NIL_P(mesg)) || (cause != Qundef))  {</div><div class='del'>-	volatile int state = 0;</div><div class='del'>-</div><div class='del'>-	EC_PUSH_TAG(ec);</div><div class='del'>-	if (EC_EXEC_TAG() == TAG_NONE &amp;&amp; !(state = rb_ec_set_raised(ec))) {</div><div class='del'>-	    VALUE bt = rb_get_backtrace(mesg);</div><div class='del'>-	    if (!NIL_P(bt) || cause == Qundef) {</div><div class='del'>-		if (OBJ_FROZEN(mesg)) {</div><div class='del'>-		    mesg = rb_obj_dup(mesg);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-            if (cause != Qundef &amp;&amp; !THROW_DATA_P(cause)) {</div><div class='del'>-		exc_setup_cause(mesg, cause);</div><div class='del'>-	    }</div><div class='del'>-	    if (NIL_P(bt)) {</div><div class='del'>-		VALUE at = rb_ec_backtrace_object(ec);</div><div class='del'>-		rb_ivar_set(mesg, idBt_locations, at);</div><div class='del'>-		set_backtrace(mesg, at);</div><div class='del'>-	    }</div><div class='del'>-	    rb_ec_reset_raised(ec);</div><div class='del'>-	}</div><div class='del'>-	EC_POP_TAG();</div><div class='del'>-	if (state) goto fatal;</div><div class='add'>+    const char *file = rb_source_location_cstr(&amp;line);</div><div class='add'>+    const char *const volatile file0 = file;</div><div class='add'>+</div><div class='add'>+    if ((file &amp;&amp; !NIL_P(mesg)) || !UNDEF_P(cause))  {</div><div class='add'>+        volatile int state = 0;</div><div class='add'>+</div><div class='add'>+        EC_PUSH_TAG(ec);</div><div class='add'>+        if (EC_EXEC_TAG() == TAG_NONE &amp;&amp; !(state = rb_ec_set_raised(ec))) {</div><div class='add'>+            VALUE bt = rb_get_backtrace(mesg);</div><div class='add'>+            if (!NIL_P(bt) || UNDEF_P(cause)) {</div><div class='add'>+                if (OBJ_FROZEN(mesg)) {</div><div class='add'>+                    mesg = rb_obj_dup(mesg);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            if (!UNDEF_P(cause) &amp;&amp; !THROW_DATA_P(cause)) {</div><div class='add'>+                exc_setup_cause(mesg, cause);</div><div class='add'>+            }</div><div class='add'>+            if (NIL_P(bt)) {</div><div class='add'>+                VALUE at = rb_ec_backtrace_object(ec);</div><div class='add'>+                rb_ivar_set(mesg, idBt_locations, at);</div><div class='add'>+                set_backtrace(mesg, at);</div><div class='add'>+            }</div><div class='add'>+            rb_ec_reset_raised(ec);</div><div class='add'>+        }</div><div class='add'>+        EC_POP_TAG();</div><div class='add'>+        file = file0;</div><div class='add'>+        if (state) goto fatal;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(mesg)) {</div><div class='del'>-	ec-&gt;errinfo = mesg;</div><div class='add'>+        ec-&gt;errinfo = mesg;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(ruby_debug) &amp;&amp; !NIL_P(e = ec-&gt;errinfo) &amp;&amp;</div><div class='del'>-	!rb_obj_is_kind_of(e, rb_eSystemExit)) {</div><div class='del'>-	enum ruby_tag_type state;</div><div class='del'>-</div><div class='del'>-	mesg = e;</div><div class='del'>-	EC_PUSH_TAG(ec);</div><div class='del'>-	if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='del'>-	    ec-&gt;errinfo = Qnil;</div><div class='del'>-	    e = rb_obj_as_string(mesg);</div><div class='del'>-	    ec-&gt;errinfo = mesg;</div><div class='del'>-	    if (file &amp;&amp; line) {</div><div class='del'>-		e = rb_sprintf("Exception `%"PRIsVALUE"' at %s:%d - %"PRIsVALUE"\n",</div><div class='del'>-			       rb_obj_class(mesg), file, line, e);</div><div class='del'>-	    }</div><div class='del'>-	    else if (file) {</div><div class='del'>-		e = rb_sprintf("Exception `%"PRIsVALUE"' at %s - %"PRIsVALUE"\n",</div><div class='del'>-			       rb_obj_class(mesg), file, e);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		e = rb_sprintf("Exception `%"PRIsVALUE"' - %"PRIsVALUE"\n",</div><div class='del'>-			       rb_obj_class(mesg), e);</div><div class='del'>-	    }</div><div class='del'>-	    warn_print_str(e);</div><div class='del'>-	}</div><div class='del'>-	EC_POP_TAG();</div><div class='del'>-	if (state == TAG_FATAL &amp;&amp; ec-&gt;errinfo == exception_error) {</div><div class='del'>-	    ec-&gt;errinfo = mesg;</div><div class='del'>-	}</div><div class='del'>-	else if (state) {</div><div class='del'>-	    rb_ec_reset_raised(ec);</div><div class='del'>-	    EC_JUMP_TAG(ec, state);</div><div class='del'>-	}</div><div class='add'>+        !rb_obj_is_kind_of(e, rb_eSystemExit)) {</div><div class='add'>+        enum ruby_tag_type state;</div><div class='add'>+</div><div class='add'>+        mesg = e;</div><div class='add'>+        EC_PUSH_TAG(ec);</div><div class='add'>+        if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='add'>+            ec-&gt;errinfo = Qnil;</div><div class='add'>+            e = rb_obj_as_string(mesg);</div><div class='add'>+            ec-&gt;errinfo = mesg;</div><div class='add'>+            if (file &amp;&amp; line) {</div><div class='add'>+                e = rb_sprintf("Exception `%"PRIsVALUE"' at %s:%d - %"PRIsVALUE"\n",</div><div class='add'>+                               rb_obj_class(mesg), file, line, e);</div><div class='add'>+            }</div><div class='add'>+            else if (file) {</div><div class='add'>+                e = rb_sprintf("Exception `%"PRIsVALUE"' at %s - %"PRIsVALUE"\n",</div><div class='add'>+                               rb_obj_class(mesg), file, e);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                e = rb_sprintf("Exception `%"PRIsVALUE"' - %"PRIsVALUE"\n",</div><div class='add'>+                               rb_obj_class(mesg), e);</div><div class='add'>+            }</div><div class='add'>+            warn_print_str(e);</div><div class='add'>+        }</div><div class='add'>+        EC_POP_TAG();</div><div class='add'>+        if (state == TAG_FATAL &amp;&amp; ec-&gt;errinfo == exception_error) {</div><div class='add'>+            ec-&gt;errinfo = mesg;</div><div class='add'>+        }</div><div class='add'>+        else if (state) {</div><div class='add'>+            rb_ec_reset_raised(ec);</div><div class='add'>+            EC_JUMP_TAG(ec, state);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (rb_ec_set_raised(ec)) {</div><div class='del'>-      fatal:</div><div class='del'>-	ec-&gt;errinfo = exception_error;</div><div class='del'>-	rb_ec_reset_raised(ec);</div><div class='del'>-	EC_JUMP_TAG(ec, TAG_FATAL);</div><div class='add'>+        goto fatal;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (tag != TAG_FATAL) {</div><div class='del'>-	RUBY_DTRACE_HOOK(RAISE, rb_obj_classname(ec-&gt;errinfo));</div><div class='del'>-	EXEC_EVENT_HOOK(ec, RUBY_EVENT_RAISE, ec-&gt;cfp-&gt;self, 0, 0, 0, mesg);</div><div class='add'>+        RUBY_DTRACE_HOOK(RAISE, rb_obj_classname(ec-&gt;errinfo));</div><div class='add'>+        EXEC_EVENT_HOOK(ec, RUBY_EVENT_RAISE, ec-&gt;cfp-&gt;self, 0, 0, 0, mesg);</div><div class='ctx'>     }</div><div class='add'>+    return;</div><div class='add'>+</div><div class='add'>+  fatal:</div><div class='add'>+    ec-&gt;errinfo = exception_error;</div><div class='add'>+    rb_ec_reset_raised(ec);</div><div class='add'>+    EC_JUMP_TAG(ec, TAG_FATAL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*! \private */</div><div class='ctx'> void</div><div class='ctx'> rb_ec_setup_exception(const rb_execution_context_t *ec, VALUE mesg, VALUE cause)</div><div class='ctx'> {</div><div class='del'>-    if (cause == Qundef) {</div><div class='del'>-	cause = get_ec_errinfo(ec);</div><div class='add'>+    if (UNDEF_P(cause)) {</div><div class='add'>+        cause = get_ec_errinfo(ec);</div><div class='ctx'>     }</div><div class='ctx'>     if (cause != mesg) {</div><div class='del'>-	rb_ivar_set(mesg, id_cause, cause);</div><div class='add'>+        if (THROW_DATA_P(cause)) {</div><div class='add'>+            cause = Qnil;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        rb_ivar_set(mesg, id_cause, cause);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -619,6 +666,17 @@ rb_longjmp(rb_execution_context_t *ec, int tag, volatile VALUE mesg, VALUE cause</div><div class='ctx'> </div><div class='ctx'> static VALUE make_exception(int argc, const VALUE *argv, int isstr);</div><div class='ctx'> </div><div class='add'>+NORETURN(static void rb_exc_exception(VALUE mesg, int tag, VALUE cause));</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_exc_exception(VALUE mesg, int tag, VALUE cause)</div><div class='add'>+{</div><div class='add'>+    if (!NIL_P(mesg)) {</div><div class='add'>+        mesg = make_exception(1, &amp;mesg, FALSE);</div><div class='add'>+    }</div><div class='add'>+    rb_longjmp(GET_EC(), tag, mesg, cause);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*!</div><div class='ctx'>  * Raises an exception in the current thread.</div><div class='ctx'>  * \param[in] mesg an Exception class or an \c Exception object.</div><div class='hunk'>@@ -629,10 +687,7 @@ static VALUE make_exception(int argc, const VALUE *argv, int isstr);</div><div class='ctx'> void</div><div class='ctx'> rb_exc_raise(VALUE mesg)</div><div class='ctx'> {</div><div class='del'>-    if (!NIL_P(mesg)) {</div><div class='del'>-	mesg = make_exception(1, &amp;mesg, FALSE);</div><div class='del'>-    }</div><div class='del'>-    rb_longjmp(GET_EC(), TAG_RAISE, mesg, Qundef);</div><div class='add'>+    rb_exc_exception(mesg, TAG_RAISE, Qundef);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*!</div><div class='hunk'>@@ -645,16 +700,9 @@ rb_exc_raise(VALUE mesg)</div><div class='ctx'> void</div><div class='ctx'> rb_exc_fatal(VALUE mesg)</div><div class='ctx'> {</div><div class='del'>-    if (!NIL_P(mesg)) {</div><div class='del'>-	mesg = make_exception(1, &amp;mesg, FALSE);</div><div class='del'>-    }</div><div class='del'>-    rb_longjmp(GET_EC(), TAG_FATAL, mesg, Qnil);</div><div class='add'>+    rb_exc_exception(mesg, TAG_FATAL, Qnil);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Raises an \c Interrupt exception.</div><div class='del'>- * \ingroup exception</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> rb_interrupt(void)</div><div class='ctx'> {</div><div class='hunk'>@@ -664,141 +712,125 @@ rb_interrupt(void)</div><div class='ctx'> enum {raise_opt_cause, raise_max_opt}; /*&lt; \private */</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-extract_raise_opts(int argc, const VALUE *argv, VALUE *opts)</div><div class='add'>+extract_raise_opts(int argc, VALUE *argv, VALUE *opts)</div><div class='ctx'> {</div><div class='ctx'>     int i;</div><div class='ctx'>     if (argc &gt; 0) {</div><div class='del'>-	VALUE opt = argv[argc-1];</div><div class='del'>-	if (RB_TYPE_P(opt, T_HASH)) {</div><div class='del'>-	    if (!RHASH_EMPTY_P(opt)) {</div><div class='del'>-		ID keywords[1];</div><div class='del'>-		CONST_ID(keywords[0], "cause");</div><div class='del'>-		rb_get_kwargs(opt, keywords, 0, -1-raise_max_opt, opts);</div><div class='del'>-		if (RHASH_EMPTY_P(opt)) --argc;</div><div class='del'>-		return argc;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        VALUE opt;</div><div class='add'>+        argc = rb_scan_args(argc, argv, "*:", NULL, &amp;opt);</div><div class='add'>+        if (!NIL_P(opt)) {</div><div class='add'>+            if (!RHASH_EMPTY_P(opt)) {</div><div class='add'>+                ID keywords[1];</div><div class='add'>+                CONST_ID(keywords[0], "cause");</div><div class='add'>+                rb_get_kwargs(opt, keywords, 0, -1-raise_max_opt, opts);</div><div class='add'>+                if (!RHASH_EMPTY_P(opt)) argv[argc++] = opt;</div><div class='add'>+                return argc;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     for (i = 0; i &lt; raise_max_opt; ++i) {</div><div class='del'>-	opts[i] = Qundef;</div><div class='add'>+        opts[i] = Qundef;</div><div class='ctx'>     }</div><div class='ctx'>     return argc;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_f_raise(int argc, VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    VALUE err;</div><div class='add'>+    VALUE opts[raise_max_opt], *const cause = &amp;opts[raise_opt_cause];</div><div class='add'>+</div><div class='add'>+    argc = extract_raise_opts(argc, argv, opts);</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+        if (!UNDEF_P(*cause)) {</div><div class='add'>+            rb_raise(rb_eArgError, "only cause is given with no arguments");</div><div class='add'>+        }</div><div class='add'>+        err = get_errinfo();</div><div class='add'>+        if (!NIL_P(err)) {</div><div class='add'>+            argc = 1;</div><div class='add'>+            argv = &amp;err;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    rb_raise_jump(rb_make_exception(argc, argv), *cause);</div><div class='add'>+</div><div class='add'>+    UNREACHABLE_RETURN(Qnil);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     raise</div><div class='del'>- *     raise(string)</div><div class='del'>- *     raise(exception [, string [, array]])</div><div class='add'>+ *     raise(string, cause: $!)</div><div class='add'>+ *     raise(exception [, string [, array]], cause: $!)</div><div class='ctx'>  *     fail</div><div class='del'>- *     fail(string)</div><div class='del'>- *     fail(exception [, string [, array]])</div><div class='add'>+ *     fail(string, cause: $!)</div><div class='add'>+ *     fail(exception [, string [, array]], cause: $!)</div><div class='ctx'>  *</div><div class='ctx'>  *  With no arguments, raises the exception in &lt;code&gt;$!&lt;/code&gt; or raises</div><div class='del'>- *  a &lt;code&gt;RuntimeError&lt;/code&gt; if &lt;code&gt;$!&lt;/code&gt; is +nil+.</div><div class='del'>- *  With a single +String+ argument, raises a</div><div class='del'>- *  +RuntimeError+ with the string as a message. Otherwise,</div><div class='del'>- *  the first parameter should be the name of an +Exception+</div><div class='del'>- *  class (or an object that returns an +Exception+ object when sent</div><div class='del'>- *  an +exception+ message). The optional second parameter sets the</div><div class='del'>- *  message associated with the exception, and the third parameter is an</div><div class='del'>- *  array of callback information. Exceptions are caught by the</div><div class='del'>- *  +rescue+ clause of &lt;code&gt;begin...end&lt;/code&gt; blocks.</div><div class='add'>+ *  a RuntimeError if &lt;code&gt;$!&lt;/code&gt; is +nil+.  With a single +String+</div><div class='add'>+ *  argument, raises a +RuntimeError+ with the string as a message. Otherwise,</div><div class='add'>+ *  the first parameter should be an +Exception+ class (or another</div><div class='add'>+ *  object that returns an +Exception+ object when sent an +exception+</div><div class='add'>+ *  message).  The optional second parameter sets the message associated with</div><div class='add'>+ *  the exception (accessible via Exception#message), and the third parameter</div><div class='add'>+ *  is an array of callback information (accessible via Exception#backtrace).</div><div class='add'>+ *  The +cause+ of the generated exception (accessible via Exception#cause)</div><div class='add'>+ *  is automatically set to the "current" exception (&lt;code&gt;$!&lt;/code&gt;), if any.</div><div class='add'>+ *  An alternative value, either an +Exception+ object or +nil+, can be</div><div class='add'>+ *  specified via the +:cause+ argument.</div><div class='add'>+ *</div><div class='add'>+ *  Exceptions are caught by the +rescue+ clause of</div><div class='add'>+ *  &lt;code&gt;begin...end&lt;/code&gt; blocks.</div><div class='ctx'>  *</div><div class='ctx'>  *     raise "Failed to create socket"</div><div class='ctx'>  *     raise ArgumentError, "No parameters", caller</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_f_raise(int argc, VALUE *argv)</div><div class='add'>+f_raise(int c, VALUE *v, VALUE _)</div><div class='ctx'> {</div><div class='del'>-    VALUE err;</div><div class='del'>-    VALUE opts[raise_max_opt], *const cause = &amp;opts[raise_opt_cause];</div><div class='del'>-</div><div class='del'>-    argc = extract_raise_opts(argc, argv, opts);</div><div class='del'>-    if (argc == 0) {</div><div class='del'>-	if (*cause != Qundef) {</div><div class='del'>-	    rb_raise(rb_eArgError, "only cause is given with no arguments");</div><div class='del'>-	}</div><div class='del'>-	err = get_errinfo();</div><div class='del'>-	if (!NIL_P(err)) {</div><div class='del'>-	    argc = 1;</div><div class='del'>-	    argv = &amp;err;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    rb_raise_jump(rb_make_exception(argc, argv), *cause);</div><div class='del'>-</div><div class='del'>-    UNREACHABLE_RETURN(Qnil);</div><div class='add'>+    return rb_f_raise(c, v);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> make_exception(int argc, const VALUE *argv, int isstr)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mesg, exc;</div><div class='del'>-    int n;</div><div class='ctx'> </div><div class='ctx'>     mesg = Qnil;</div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='del'>-	break;</div><div class='add'>+        return Qnil;</div><div class='ctx'>       case 1:</div><div class='del'>-	exc = argv[0];</div><div class='del'>-	if (NIL_P(exc))</div><div class='del'>-	    break;</div><div class='del'>-	if (isstr) {</div><div class='del'>-	    mesg = rb_check_string_type(exc);</div><div class='del'>-	    if (!NIL_P(mesg)) {</div><div class='del'>-		mesg = rb_exc_new3(rb_eRuntimeError, mesg);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	n = 0;</div><div class='del'>-	goto exception_call;</div><div class='add'>+        exc = argv[0];</div><div class='add'>+        if (isstr &amp;&amp;! NIL_P(exc)) {</div><div class='add'>+            mesg = rb_check_string_type(exc);</div><div class='add'>+            if (!NIL_P(mesg)) {</div><div class='add'>+                return rb_exc_new3(rb_eRuntimeError, mesg);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> </div><div class='ctx'>       case 2:</div><div class='ctx'>       case 3:</div><div class='del'>-	exc = argv[0];</div><div class='del'>-	n = 1;</div><div class='del'>-      exception_call:</div><div class='del'>-	mesg = rb_check_funcall(exc, idException, n, argv+1);</div><div class='del'>-	if (mesg == Qundef) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "exception class/object expected");</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	rb_check_arity(argc, 0, 3);</div><div class='del'>-	break;</div><div class='add'>+        rb_error_arity(argc, 0, 3);</div><div class='ctx'>     }</div><div class='del'>-    if (argc &gt; 0) {</div><div class='del'>-	if (!rb_obj_is_kind_of(mesg, rb_eException))</div><div class='del'>-	    rb_raise(rb_eTypeError, "exception object expected");</div><div class='del'>-	if (argc &gt; 2)</div><div class='del'>-	    set_backtrace(mesg, argv[2]);</div><div class='add'>+    if (NIL_P(mesg)) {</div><div class='add'>+        mesg = rb_check_funcall(argv[0], idException, argc != 1, &amp;argv[1]);</div><div class='add'>+    }</div><div class='add'>+    if (UNDEF_P(mesg)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "exception class/object expected");</div><div class='add'>+    }</div><div class='add'>+    if (!rb_obj_is_kind_of(mesg, rb_eException)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "exception object expected");</div><div class='add'>+    }</div><div class='add'>+    if (argc == 3) {</div><div class='add'>+        set_backtrace(mesg, argv[2]);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return mesg;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Make an \c Exception object from the list of arguments in a manner</div><div class='del'>- * similar to \c Kernel\#raise.</div><div class='del'>- *</div><div class='del'>- * \param[in] argc the number of arguments</div><div class='del'>- * \param[in] argv a pointer to the array of arguments.</div><div class='del'>- *</div><div class='del'>- * The first form of this function takes a \c String argument. Then</div><div class='del'>- * it returns a \c RuntimeError whose error message is the given value.</div><div class='del'>- *</div><div class='del'>- * The second from of this function takes an \c Exception object. Then</div><div class='del'>- * it just returns the given value.</div><div class='del'>- *</div><div class='del'>- * The last form takes an exception class, an optional error message and</div><div class='del'>- * an optional array of backtrace. Then it passes the optional arguments</div><div class='del'>- * to \c #exception method of the exception class.</div><div class='del'>- *</div><div class='del'>- * \return the exception object, or \c Qnil if \c argc is 0.</div><div class='del'>- * \ingroup exception</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_make_exception(int argc, const VALUE *argv)</div><div class='ctx'> {</div><div class='hunk'>@@ -806,9 +838,8 @@ rb_make_exception(int argc, const VALUE *argv)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*! \private</div><div class='del'>- * \todo can be static?</div><div class='ctx'>  */</div><div class='del'>-void</div><div class='add'>+static void</div><div class='ctx'> rb_raise_jump(VALUE mesg, VALUE cause)</div><div class='ctx'> {</div><div class='ctx'>     rb_execution_context_t *ec = GET_EC();</div><div class='hunk'>@@ -824,173 +855,123 @@ rb_raise_jump(VALUE mesg, VALUE cause)</div><div class='ctx'>     rb_longjmp(ec, TAG_RAISE, mesg, cause);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Continues the exception caught by rb_protect() and rb_eval_string_protect().</div><div class='del'>- *</div><div class='del'>- * This function never return to the caller.</div><div class='del'>- * \param[in] the value of \c *state which the protect function has set to the</div><div class='del'>- *   their last parameter.</div><div class='del'>- * \ingroup exception</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> rb_jump_tag(int tag)</div><div class='ctx'> {</div><div class='ctx'>     if (UNLIKELY(tag &lt; TAG_RETURN || tag &gt; TAG_FATAL)) {</div><div class='del'>-	unknown_longjmp_status(tag);</div><div class='add'>+        unknown_longjmp_status(tag);</div><div class='ctx'>     }</div><div class='ctx'>     EC_JUMP_TAG(GET_EC(), tag);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! Determines if the current method is given a block.</div><div class='del'>- * \retval zero if not given</div><div class='del'>- * \retval non-zero if given</div><div class='del'>- * \ingroup defmethod</div><div class='del'>- */</div><div class='ctx'> int</div><div class='ctx'> rb_block_given_p(void)</div><div class='ctx'> {</div><div class='ctx'>     if (rb_vm_frame_block_handler(GET_EC()-&gt;cfp) == VM_BLOCK_HANDLER_NONE) {</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+int rb_vm_cframe_keyword_p(const rb_control_frame_t *cfp);</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_keyword_given_p(void)</div><div class='add'>+{</div><div class='add'>+    return rb_vm_cframe_keyword_p(GET_EC()-&gt;cfp);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE rb_eThreadError;</div><div class='ctx'> </div><div class='del'>-/*! Declares that the current method needs a block.</div><div class='del'>- *</div><div class='del'>- * Raises a \c LocalJumpError if not given a block.</div><div class='del'>- * \ingroup defmethod</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> rb_need_block(void)</div><div class='ctx'> {</div><div class='ctx'>     if (!rb_block_given_p()) {</div><div class='del'>-	rb_vm_localjump_error("no block given", Qnil, 0);</div><div class='add'>+        rb_vm_localjump_error("no block given", Qnil, 0);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! An equivalent of \c rescue clause.</div><div class='del'>- *</div><div class='del'>- * Equivalent to &lt;code&gt;begin .. rescue err_type .. end&lt;/code&gt;</div><div class='del'>- *</div><div class='del'>- * \param[in] b_proc a function which potentially raises an exception.</div><div class='del'>- * \param[in] data1 the argument of \a b_proc</div><div class='del'>- * \param[in] r_proc a function which rescues an exception in \a b_proc.</div><div class='del'>- * \param[in] data2 the first argument of \a r_proc</div><div class='del'>- * \param[in] ... 1 or more exception classes. Must be terminated by \c (VALUE)0.</div><div class='del'>- *</div><div class='del'>- * First it calls the function \a b_proc, with \a data1 as the argument.</div><div class='del'>- * When \a b_proc raises an exception, it calls \a r_proc with \a data2 and</div><div class='del'>- * the exception object if the exception is a kind of one of the given</div><div class='del'>- * exception classes.</div><div class='del'>- *</div><div class='del'>- * \return the return value of \a b_proc if no exception occurs,</div><div class='del'>- *   or the return value of \a r_proc if otherwise.</div><div class='del'>- * \sa rb_rescue</div><div class='del'>- * \sa rb_ensure</div><div class='del'>- * \sa rb_protect</div><div class='del'>- * \ingroup exception</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='del'>-rb_rescue2(VALUE (* b_proc) (ANYARGS), VALUE data1,</div><div class='del'>-	   VALUE (* r_proc) (ANYARGS), VALUE data2, ...)</div><div class='add'>+rb_rescue2(VALUE (* b_proc) (VALUE), VALUE data1,</div><div class='add'>+           VALUE (* r_proc) (VALUE, VALUE), VALUE data2, ...)</div><div class='add'>+{</div><div class='add'>+    va_list ap;</div><div class='add'>+    va_start(ap, data2);</div><div class='add'>+    VALUE ret = rb_vrescue2(b_proc, data1, r_proc, data2, ap);</div><div class='add'>+    va_end(ap);</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_vrescue2(VALUE (* b_proc) (VALUE), VALUE data1,</div><div class='add'>+            VALUE (* r_proc) (VALUE, VALUE), VALUE data2,</div><div class='add'>+            va_list args)</div><div class='ctx'> {</div><div class='ctx'>     enum ruby_tag_type state;</div><div class='ctx'>     rb_execution_context_t * volatile ec = GET_EC();</div><div class='ctx'>     rb_control_frame_t *volatile cfp = ec-&gt;cfp;</div><div class='ctx'>     volatile VALUE result = Qfalse;</div><div class='ctx'>     volatile VALUE e_info = ec-&gt;errinfo;</div><div class='del'>-    va_list args;</div><div class='ctx'> </div><div class='ctx'>     EC_PUSH_TAG(ec);</div><div class='ctx'>     if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='ctx'>       retry_entry:</div><div class='del'>-	result = (*b_proc) (data1);</div><div class='add'>+        result = (*b_proc) (data1);</div><div class='ctx'>     }</div><div class='ctx'>     else if (result) {</div><div class='del'>-	/* escape from r_proc */</div><div class='del'>-	if (state == TAG_RETRY) {</div><div class='del'>-	    state = 0;</div><div class='del'>-	    ec-&gt;errinfo = Qnil;</div><div class='del'>-	    result = Qfalse;</div><div class='del'>-	    goto retry_entry;</div><div class='del'>-	}</div><div class='add'>+        /* escape from r_proc */</div><div class='add'>+        if (state == TAG_RETRY) {</div><div class='add'>+            state = TAG_NONE;</div><div class='add'>+            ec-&gt;errinfo = Qnil;</div><div class='add'>+            result = Qfalse;</div><div class='add'>+            goto retry_entry;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_vm_rewind_cfp(ec, cfp);</div><div class='del'>-</div><div class='del'>-	if (state == TAG_RAISE) {</div><div class='del'>-	    int handle = FALSE;</div><div class='del'>-	    VALUE eclass;</div><div class='del'>-</div><div class='del'>-	    va_init_list(args, data2);</div><div class='del'>-	    while ((eclass = va_arg(args, VALUE)) != 0) {</div><div class='del'>-		if (rb_obj_is_kind_of(ec-&gt;errinfo, eclass)) {</div><div class='del'>-		    handle = TRUE;</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    va_end(args);</div><div class='del'>-</div><div class='del'>-	    if (handle) {</div><div class='del'>-		result = Qnil;</div><div class='del'>-		state = 0;</div><div class='del'>-		if (r_proc) {</div><div class='del'>-		    result = (*r_proc) (data2, ec-&gt;errinfo);</div><div class='del'>-		}</div><div class='del'>-		ec-&gt;errinfo = e_info;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        rb_vm_rewind_cfp(ec, cfp);</div><div class='add'>+</div><div class='add'>+        if (state == TAG_RAISE) {</div><div class='add'>+            int handle = FALSE;</div><div class='add'>+            VALUE eclass;</div><div class='add'>+            va_list ap;</div><div class='add'>+</div><div class='add'>+            result = Qnil;</div><div class='add'>+            /* reuses args when raised again after retrying in r_proc */</div><div class='add'>+            va_copy(ap, args);</div><div class='add'>+            while ((eclass = va_arg(ap, VALUE)) != 0) {</div><div class='add'>+                if (rb_obj_is_kind_of(ec-&gt;errinfo, eclass)) {</div><div class='add'>+                    handle = TRUE;</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            va_end(ap);</div><div class='add'>+</div><div class='add'>+            if (handle) {</div><div class='add'>+                state = TAG_NONE;</div><div class='add'>+                if (r_proc) {</div><div class='add'>+                    result = (*r_proc) (data2, ec-&gt;errinfo);</div><div class='add'>+                }</div><div class='add'>+                ec-&gt;errinfo = e_info;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     EC_POP_TAG();</div><div class='ctx'>     if (state)</div><div class='del'>-	EC_JUMP_TAG(ec, state);</div><div class='add'>+        EC_JUMP_TAG(ec, state);</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! An equivalent of \c rescue clause.</div><div class='del'>- *</div><div class='del'>- * Equivalent to &lt;code&gt;begin .. rescue .. end&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- * It is same as</div><div class='del'>- * \code{cpp}</div><div class='del'>- * rb_rescue2(b_proc, data1, r_proc, data2, rb_eStandardError, (VALUE)0);</div><div class='del'>- * \endcode</div><div class='del'>- *</div><div class='del'>- * \sa rb_rescue2</div><div class='del'>- * \sa rb_ensure</div><div class='del'>- * \sa rb_protect</div><div class='del'>- * \ingroup exception</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='del'>-rb_rescue(VALUE (* b_proc)(ANYARGS), VALUE data1,</div><div class='del'>-	  VALUE (* r_proc)(ANYARGS), VALUE data2)</div><div class='add'>+rb_rescue(VALUE (* b_proc)(VALUE), VALUE data1,</div><div class='add'>+          VALUE (* r_proc)(VALUE, VALUE), VALUE data2)</div><div class='ctx'> {</div><div class='ctx'>     return rb_rescue2(b_proc, data1, r_proc, data2, rb_eStandardError,</div><div class='del'>-		      (VALUE)0);</div><div class='add'>+                      (VALUE)0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! Protects a function call from potential global escapes from the function.</div><div class='del'>- *</div><div class='del'>- * Such global escapes include exceptions, \c Kernel\#throw, \c break in</div><div class='del'>- * an iterator, for example.</div><div class='del'>- * It first calls the function func with arg as the argument.</div><div class='del'>- * If no exception occurred during func, it returns the result of func and</div><div class='del'>- * *state is zero.</div><div class='del'>- * Otherwise, it returns Qnil and sets *state to nonzero.</div><div class='del'>- * If state is NULL, it is not set in both cases.</div><div class='del'>- *</div><div class='del'>- * You have to clear the error info with rb_set_errinfo(Qnil) when</div><div class='del'>- * ignoring the caught exception.</div><div class='del'>- * \ingroup exception</div><div class='del'>- * \sa rb_rescue</div><div class='del'>- * \sa rb_rescue2</div><div class='del'>- * \sa rb_ensure</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_protect(VALUE (* proc) (VALUE), VALUE data, int *pstate)</div><div class='ctx'> {</div><div class='hunk'>@@ -998,44 +979,22 @@ rb_protect(VALUE (* proc) (VALUE), VALUE data, int *pstate)</div><div class='ctx'>     volatile enum ruby_tag_type state;</div><div class='ctx'>     rb_execution_context_t * volatile ec = GET_EC();</div><div class='ctx'>     rb_control_frame_t *volatile cfp = ec-&gt;cfp;</div><div class='del'>-    struct rb_vm_protect_tag protect_tag;</div><div class='del'>-    rb_jmpbuf_t org_jmpbuf;</div><div class='del'>-</div><div class='del'>-    protect_tag.prev = ec-&gt;protect_tag;</div><div class='ctx'> </div><div class='ctx'>     EC_PUSH_TAG(ec);</div><div class='del'>-    ec-&gt;protect_tag = &amp;protect_tag;</div><div class='del'>-    MEMCPY(&amp;org_jmpbuf, &amp;rb_ec_thread_ptr(ec)-&gt;root_jmpbuf, rb_jmpbuf_t, 1);</div><div class='ctx'>     if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='del'>-	SAVE_ROOT_JMPBUF(rb_ec_thread_ptr(ec), result = (*proc) (data));</div><div class='add'>+        SAVE_ROOT_JMPBUF(rb_ec_thread_ptr(ec), result = (*proc) (data));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_vm_rewind_cfp(ec, cfp);</div><div class='add'>+        rb_vm_rewind_cfp(ec, cfp);</div><div class='ctx'>     }</div><div class='del'>-    MEMCPY(&amp;rb_ec_thread_ptr(ec)-&gt;root_jmpbuf, &amp;org_jmpbuf, rb_jmpbuf_t, 1);</div><div class='del'>-    ec-&gt;protect_tag = protect_tag.prev;</div><div class='ctx'>     EC_POP_TAG();</div><div class='ctx'> </div><div class='ctx'>     if (pstate != NULL) *pstate = state;</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * An equivalent to \c ensure clause.</div><div class='del'>- *</div><div class='del'>- * Equivalent to &lt;code&gt;begin .. ensure .. end&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- * Calls the function \a b_proc with \a data1 as the argument,</div><div class='del'>- * then calls \a e_proc with \a data2 when execution terminated.</div><div class='del'>- * \return The return value of \a b_proc if no exception occurred,</div><div class='del'>- *   or \c Qnil if otherwise.</div><div class='del'>- * \sa rb_rescue</div><div class='del'>- * \sa rb_rescue2</div><div class='del'>- * \sa rb_protect</div><div class='del'>- * \ingroup exception</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='del'>-rb_ensure(VALUE (*b_proc)(ANYARGS), VALUE data1, VALUE (*e_proc)(ANYARGS), VALUE data2)</div><div class='add'>+rb_ensure(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*e_proc)(VALUE), VALUE data2)</div><div class='ctx'> {</div><div class='ctx'>     int state;</div><div class='ctx'>     volatile VALUE result = Qnil;</div><div class='hunk'>@@ -1049,18 +1008,18 @@ rb_ensure(VALUE (*b_proc)(ANYARGS), VALUE data1, VALUE (*e_proc)(ANYARGS), VALUE</div><div class='ctx'>     ec-&gt;ensure_list = &amp;ensure_list;</div><div class='ctx'>     EC_PUSH_TAG(ec);</div><div class='ctx'>     if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='del'>-	result = (*b_proc) (data1);</div><div class='add'>+        result = (*b_proc) (data1);</div><div class='ctx'>     }</div><div class='ctx'>     EC_POP_TAG();</div><div class='ctx'>     errinfo = ec-&gt;errinfo;</div><div class='ctx'>     if (!NIL_P(errinfo) &amp;&amp; !RB_TYPE_P(errinfo, T_OBJECT)) {</div><div class='del'>-	ec-&gt;errinfo = Qnil;</div><div class='add'>+        ec-&gt;errinfo = Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     ec-&gt;ensure_list=ensure_list.next;</div><div class='ctx'>     (*ensure_list.entry.e_proc)(ensure_list.entry.data2);</div><div class='ctx'>     ec-&gt;errinfo = errinfo;</div><div class='ctx'>     if (state)</div><div class='del'>-	EC_JUMP_TAG(ec, state);</div><div class='add'>+        EC_JUMP_TAG(ec, state);</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1070,10 +1029,10 @@ frame_func_id(const rb_control_frame_t *cfp)</div><div class='ctx'>     const rb_callable_method_entry_t *me = rb_vm_frame_method_entry(cfp);</div><div class='ctx'> </div><div class='ctx'>     if (me) {</div><div class='del'>-	return me-&gt;def-&gt;original_id;</div><div class='add'>+        return me-&gt;def-&gt;original_id;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1083,42 +1042,19 @@ frame_called_id(rb_control_frame_t *cfp)</div><div class='ctx'>     const rb_callable_method_entry_t *me = rb_vm_frame_method_entry(cfp);</div><div class='ctx'> </div><div class='ctx'>     if (me) {</div><div class='del'>-	return me-&gt;called_id;</div><div class='add'>+        return me-&gt;called_id;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * The original name of the current method.</div><div class='del'>- *</div><div class='del'>- * The function returns the original name of the method even if</div><div class='del'>- * an alias of the method is called.</div><div class='del'>- * The function can also return 0 if it is not in a method. This</div><div class='del'>- * case can happen in a toplevel of a source file, for example.</div><div class='del'>- *</div><div class='del'>- * \returns the ID of the name or 0</div><div class='del'>- * \sa rb_frame_callee</div><div class='del'>- * \ingroup defmethod</div><div class='del'>- */</div><div class='ctx'> ID</div><div class='ctx'> rb_frame_this_func(void)</div><div class='ctx'> {</div><div class='ctx'>     return frame_func_id(GET_EC()-&gt;cfp);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * The name of the current method.</div><div class='del'>- *</div><div class='del'>- * The function returns the alias if an alias of the method is called.</div><div class='del'>- * The function can also return 0 if it is not in a method. This</div><div class='del'>- * case can happen in a toplevel of a source file, for example.</div><div class='del'>- *</div><div class='del'>- * \returns the ID of the name or 0.</div><div class='del'>- * \sa rb_frame_this_func</div><div class='del'>- * \ingroup defmethod</div><div class='del'>- */</div><div class='ctx'> ID</div><div class='ctx'> rb_frame_callee(void)</div><div class='ctx'> {</div><div class='hunk'>@@ -1166,8 +1102,8 @@ rb_frame_last_func(void)</div><div class='ctx'>     ID mid;</div><div class='ctx'> </div><div class='ctx'>     while (!(mid = frame_func_id(cfp)) &amp;&amp;</div><div class='del'>-	   (cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp),</div><div class='del'>-	    !RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(ec, cfp)));</div><div class='add'>+           (cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp),</div><div class='add'>+            !RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(ec, cfp)));</div><div class='ctx'>     return mid;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1176,18 +1112,18 @@ rb_frame_last_func(void)</div><div class='ctx'>  *     append_features(mod)   -&gt; mod</div><div class='ctx'>  *</div><div class='ctx'>  *  When this module is included in another, Ruby calls</div><div class='del'>- *  &lt;code&gt;append_features&lt;/code&gt; in this module, passing it the</div><div class='del'>- *  receiving module in _mod_. Ruby's default implementation is</div><div class='del'>- *  to add the constants, methods, and module variables of this module</div><div class='del'>- *  to _mod_ if this module has not already been added to</div><div class='del'>- *  _mod_ or one of its ancestors. See also &lt;code&gt;Module#include&lt;/code&gt;.</div><div class='add'>+ *  #append_features in this module, passing it the receiving module</div><div class='add'>+ *  in _mod_. Ruby's default implementation is to add the constants,</div><div class='add'>+ *  methods, and module variables of this module to _mod_ if this</div><div class='add'>+ *  module has not already been added to _mod_ or one of its</div><div class='add'>+ *  ancestors. See also Module#include.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_mod_append_features(VALUE module, VALUE include)</div><div class='ctx'> {</div><div class='ctx'>     if (!CLASS_OR_MODULE_P(include)) {</div><div class='del'>-	Check_Type(include, T_CLASS);</div><div class='add'>+        Check_Type(include, T_CLASS);</div><div class='ctx'>     }</div><div class='ctx'>     rb_include_module(include, module);</div><div class='ctx'> </div><div class='hunk'>@@ -1198,7 +1134,7 @@ rb_mod_append_features(VALUE module, VALUE include)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     include(module, ...)    -&gt; self</div><div class='ctx'>  *</div><div class='del'>- *  Invokes &lt;code&gt;Module.append_features&lt;/code&gt; on each parameter in reverse order.</div><div class='add'>+ *  Invokes Module.append_features on each parameter in reverse order.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1210,12 +1146,20 @@ rb_mod_include(int argc, VALUE *argv, VALUE module)</div><div class='ctx'>     CONST_ID(id_append_features, "append_features");</div><div class='ctx'>     CONST_ID(id_included, "included");</div><div class='ctx'> </div><div class='add'>+    if (BUILTIN_TYPE(module) == T_MODULE &amp;&amp; FL_TEST(module, RMODULE_IS_REFINEMENT)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "Refinement#include has been removed");</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);</div><div class='del'>-    for (i = 0; i &lt; argc; i++)</div><div class='del'>-	Check_Type(argv[i], T_MODULE);</div><div class='add'>+    for (i = 0; i &lt; argc; i++) {</div><div class='add'>+        Check_Type(argv[i], T_MODULE);</div><div class='add'>+        if (FL_TEST(argv[i], RMODULE_IS_REFINEMENT)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "Cannot include refinement");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'>     while (argc--) {</div><div class='del'>-	rb_funcall(argv[argc], id_append_features, 1, module);</div><div class='del'>-	rb_funcall(argv[argc], id_included, 1, module);</div><div class='add'>+        rb_funcall(argv[argc], id_append_features, 1, module);</div><div class='add'>+        rb_funcall(argv[argc], id_included, 1, module);</div><div class='ctx'>     }</div><div class='ctx'>     return module;</div><div class='ctx'> }</div><div class='hunk'>@@ -1225,18 +1169,18 @@ rb_mod_include(int argc, VALUE *argv, VALUE module)</div><div class='ctx'>  *     prepend_features(mod)   -&gt; mod</div><div class='ctx'>  *</div><div class='ctx'>  *  When this module is prepended in another, Ruby calls</div><div class='del'>- *  &lt;code&gt;prepend_features&lt;/code&gt; in this module, passing it the</div><div class='del'>- *  receiving module in _mod_. Ruby's default implementation is</div><div class='del'>- *  to overlay the constants, methods, and module variables of this module</div><div class='del'>- *  to _mod_ if this module has not already been added to</div><div class='del'>- *  _mod_ or one of its ancestors. See also &lt;code&gt;Module#prepend&lt;/code&gt;.</div><div class='add'>+ *  #prepend_features in this module, passing it the receiving module</div><div class='add'>+ *  in _mod_. Ruby's default implementation is to overlay the</div><div class='add'>+ *  constants, methods, and module variables of this module to _mod_</div><div class='add'>+ *  if this module has not already been added to _mod_ or one of its</div><div class='add'>+ *  ancestors. See also Module#prepend.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_mod_prepend_features(VALUE module, VALUE prepend)</div><div class='ctx'> {</div><div class='ctx'>     if (!CLASS_OR_MODULE_P(prepend)) {</div><div class='del'>-	Check_Type(prepend, T_CLASS);</div><div class='add'>+        Check_Type(prepend, T_CLASS);</div><div class='ctx'>     }</div><div class='ctx'>     rb_prepend_module(prepend, module);</div><div class='ctx'> </div><div class='hunk'>@@ -1247,7 +1191,7 @@ rb_mod_prepend_features(VALUE module, VALUE prepend)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     prepend(module, ...)    -&gt; self</div><div class='ctx'>  *</div><div class='del'>- *  Invokes &lt;code&gt;Module.prepend_features&lt;/code&gt; on each parameter in reverse order.</div><div class='add'>+ *  Invokes Module.prepend_features on each parameter in reverse order.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1256,15 +1200,23 @@ rb_mod_prepend(int argc, VALUE *argv, VALUE module)</div><div class='ctx'>     int i;</div><div class='ctx'>     ID id_prepend_features, id_prepended;</div><div class='ctx'> </div><div class='add'>+    if (BUILTIN_TYPE(module) == T_MODULE &amp;&amp; FL_TEST(module, RMODULE_IS_REFINEMENT)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "Refinement#prepend has been removed");</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     CONST_ID(id_prepend_features, "prepend_features");</div><div class='ctx'>     CONST_ID(id_prepended, "prepended");</div><div class='ctx'> </div><div class='ctx'>     rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);</div><div class='del'>-    for (i = 0; i &lt; argc; i++)</div><div class='del'>-	Check_Type(argv[i], T_MODULE);</div><div class='add'>+    for (i = 0; i &lt; argc; i++) {</div><div class='add'>+        Check_Type(argv[i], T_MODULE);</div><div class='add'>+        if (FL_TEST(argv[i], RMODULE_IS_REFINEMENT)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "Cannot prepend refinement");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'>     while (argc--) {</div><div class='del'>-	rb_funcall(argv[argc], id_prepend_features, 1, module);</div><div class='del'>-	rb_funcall(argv[argc], id_prepended, 1, module);</div><div class='add'>+        rb_funcall(argv[argc], id_prepend_features, 1, module);</div><div class='add'>+        rb_funcall(argv[argc], id_prepended, 1, module);</div><div class='ctx'>     }</div><div class='ctx'>     return module;</div><div class='ctx'> }</div><div class='hunk'>@@ -1273,9 +1225,9 @@ static void</div><div class='ctx'> ensure_class_or_module(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (!RB_TYPE_P(obj, T_CLASS) &amp;&amp; !RB_TYPE_P(obj, T_MODULE)) {</div><div class='del'>-	rb_raise(rb_eTypeError,</div><div class='del'>-		 "wrong argument type %"PRIsVALUE" (expected Class or Module)",</div><div class='del'>-		 rb_obj_class(obj));</div><div class='add'>+        rb_raise(rb_eTypeError,</div><div class='add'>+                 "wrong argument type %"PRIsVALUE" (expected Class or Module)",</div><div class='add'>+                 rb_obj_class(obj));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1292,19 +1244,18 @@ static VALUE</div><div class='ctx'> refinement_superclass(VALUE superclass)</div><div class='ctx'> {</div><div class='ctx'>     if (RB_TYPE_P(superclass, T_MODULE)) {</div><div class='del'>-	/* FIXME: Should ancestors of superclass be used here? */</div><div class='del'>-	return rb_include_class_new(superclass, rb_cBasicObject);</div><div class='add'>+        /* FIXME: Should ancestors of superclass be used here? */</div><div class='add'>+        return rb_include_class_new(RCLASS_ORIGIN(superclass), rb_cBasicObject);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return superclass;</div><div class='add'>+        return superclass;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*!</div><div class='ctx'>  * \private</div><div class='del'>- * \todo can be static?</div><div class='ctx'>  */</div><div class='del'>-void</div><div class='add'>+static void</div><div class='ctx'> rb_using_refinement(rb_cref_t *cref, VALUE klass, VALUE module)</div><div class='ctx'> {</div><div class='ctx'>     VALUE iclass, c, superclass = klass;</div><div class='hunk'>@@ -1312,38 +1263,35 @@ rb_using_refinement(rb_cref_t *cref, VALUE klass, VALUE module)</div><div class='ctx'>     ensure_class_or_module(klass);</div><div class='ctx'>     Check_Type(module, T_MODULE);</div><div class='ctx'>     if (NIL_P(CREF_REFINEMENTS(cref))) {</div><div class='del'>-	CREF_REFINEMENTS_SET(cref, hidden_identity_hash_new());</div><div class='add'>+        CREF_REFINEMENTS_SET(cref, hidden_identity_hash_new());</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (CREF_OMOD_SHARED(cref)) {</div><div class='del'>-	    CREF_REFINEMENTS_SET(cref, rb_hash_dup(CREF_REFINEMENTS(cref)));</div><div class='del'>-	    CREF_OMOD_SHARED_UNSET(cref);</div><div class='del'>-	}</div><div class='del'>-	if (!NIL_P(c = rb_hash_lookup(CREF_REFINEMENTS(cref), klass))) {</div><div class='del'>-	    superclass = c;</div><div class='del'>-	    while (c &amp;&amp; RB_TYPE_P(c, T_ICLASS)) {</div><div class='del'>-		if (RBASIC(c)-&gt;klass == module) {</div><div class='del'>-		    /* already used refinement */</div><div class='del'>-		    return;</div><div class='del'>-		}</div><div class='del'>-		c = RCLASS_SUPER(c);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    FL_SET(module, RMODULE_IS_OVERLAID);</div><div class='add'>+        if (CREF_OMOD_SHARED(cref)) {</div><div class='add'>+            CREF_REFINEMENTS_SET(cref, rb_hash_dup(CREF_REFINEMENTS(cref)));</div><div class='add'>+            CREF_OMOD_SHARED_UNSET(cref);</div><div class='add'>+        }</div><div class='add'>+        if (!NIL_P(c = rb_hash_lookup(CREF_REFINEMENTS(cref), klass))) {</div><div class='add'>+            superclass = c;</div><div class='add'>+            while (c &amp;&amp; RB_TYPE_P(c, T_ICLASS)) {</div><div class='add'>+                if (RBASIC(c)-&gt;klass == module) {</div><div class='add'>+                    /* already used refinement */</div><div class='add'>+                    return;</div><div class='add'>+                }</div><div class='add'>+                c = RCLASS_SUPER(c);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'>     superclass = refinement_superclass(superclass);</div><div class='ctx'>     c = iclass = rb_include_class_new(module, superclass);</div><div class='del'>-    RCLASS_REFINED_CLASS(c) = klass;</div><div class='add'>+    RB_OBJ_WRITE(c, &amp;RCLASS_REFINED_CLASS(c), klass);</div><div class='ctx'> </div><div class='del'>-    RCLASS_M_TBL(OBJ_WB_UNPROTECT(c)) =</div><div class='del'>-      RCLASS_M_TBL(OBJ_WB_UNPROTECT(module)); /* TODO: check unprotecting */</div><div class='add'>+    RCLASS_M_TBL(c) = RCLASS_M_TBL(module);</div><div class='ctx'> </div><div class='ctx'>     module = RCLASS_SUPER(module);</div><div class='ctx'>     while (module &amp;&amp; module != klass) {</div><div class='del'>-	FL_SET(module, RMODULE_IS_OVERLAID);</div><div class='del'>-	c = RCLASS_SET_SUPER(c, rb_include_class_new(module, RCLASS_SUPER(c)));</div><div class='del'>-	RCLASS_REFINED_CLASS(c) = klass;</div><div class='del'>-	module = RCLASS_SUPER(module);</div><div class='add'>+        c = RCLASS_SET_SUPER(c, rb_include_class_new(module, RCLASS_SUPER(c)));</div><div class='add'>+        RB_OBJ_WRITE(c, &amp;RCLASS_REFINED_CLASS(c), klass);</div><div class='add'>+        module = RCLASS_SUPER(module);</div><div class='ctx'>     }</div><div class='ctx'>     rb_hash_aset(CREF_REFINEMENTS(cref), klass, iclass);</div><div class='ctx'> }</div><div class='hunk'>@@ -1365,21 +1313,21 @@ using_module_recursive(const rb_cref_t *cref, VALUE klass)</div><div class='ctx'> </div><div class='ctx'>     super = RCLASS_SUPER(klass);</div><div class='ctx'>     if (super) {</div><div class='del'>-	using_module_recursive(cref, super);</div><div class='add'>+        using_module_recursive(cref, super);</div><div class='ctx'>     }</div><div class='ctx'>     switch (BUILTIN_TYPE(klass)) {</div><div class='ctx'>       case T_MODULE:</div><div class='del'>-	module = klass;</div><div class='del'>-	break;</div><div class='add'>+        module = klass;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_ICLASS:</div><div class='del'>-	module = RBASIC(klass)-&gt;klass;</div><div class='del'>-	break;</div><div class='add'>+        module = RBASIC(klass)-&gt;klass;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	rb_raise(rb_eTypeError, "wrong argument type %s (expected Module)",</div><div class='del'>-		 rb_obj_classname(klass));</div><div class='del'>-	break;</div><div class='add'>+        rb_raise(rb_eTypeError, "wrong argument type %s (expected Module)",</div><div class='add'>+                 rb_obj_classname(klass));</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'>     CONST_ID(id_refinements, "__refinements__");</div><div class='ctx'>     refinements = rb_attr_get(module, id_refinements);</div><div class='hunk'>@@ -1389,17 +1337,21 @@ using_module_recursive(const rb_cref_t *cref, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*!</div><div class='ctx'>  * \private</div><div class='del'>- * \todo can be static?</div><div class='ctx'>  */</div><div class='del'>-void</div><div class='add'>+static void</div><div class='ctx'> rb_using_module(const rb_cref_t *cref, VALUE module)</div><div class='ctx'> {</div><div class='ctx'>     Check_Type(module, T_MODULE);</div><div class='ctx'>     using_module_recursive(cref, module);</div><div class='del'>-    rb_clear_method_cache_by_class(rb_cObject);</div><div class='add'>+    rb_clear_method_cache_all();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! \private */</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     refined_class    -&gt; class</div><div class='add'>+ *</div><div class='add'>+ *  Return the class refined by the receiver.</div><div class='add'>+ */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_refinement_module_get_refined_class(VALUE module)</div><div class='ctx'> {</div><div class='hunk'>@@ -1411,30 +1363,28 @@ rb_refinement_module_get_refined_class(VALUE module)</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> add_activated_refinement(VALUE activated_refinements,</div><div class='del'>-			 VALUE klass, VALUE refinement)</div><div class='add'>+                         VALUE klass, VALUE refinement)</div><div class='ctx'> {</div><div class='ctx'>     VALUE iclass, c, superclass = klass;</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(c = rb_hash_lookup(activated_refinements, klass))) {</div><div class='del'>-	superclass = c;</div><div class='del'>-	while (c &amp;&amp; RB_TYPE_P(c, T_ICLASS)) {</div><div class='del'>-	    if (RBASIC(c)-&gt;klass == refinement) {</div><div class='del'>-		/* already used refinement */</div><div class='del'>-		return;</div><div class='del'>-	    }</div><div class='del'>-	    c = RCLASS_SUPER(c);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    FL_SET(refinement, RMODULE_IS_OVERLAID);</div><div class='add'>+        superclass = c;</div><div class='add'>+        while (c &amp;&amp; RB_TYPE_P(c, T_ICLASS)) {</div><div class='add'>+            if (RBASIC(c)-&gt;klass == refinement) {</div><div class='add'>+                /* already used refinement */</div><div class='add'>+                return;</div><div class='add'>+            }</div><div class='add'>+            c = RCLASS_SUPER(c);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'>     superclass = refinement_superclass(superclass);</div><div class='ctx'>     c = iclass = rb_include_class_new(refinement, superclass);</div><div class='del'>-    RCLASS_REFINED_CLASS(c) = klass;</div><div class='add'>+    RB_OBJ_WRITE(c, &amp;RCLASS_REFINED_CLASS(c), klass);</div><div class='ctx'>     refinement = RCLASS_SUPER(refinement);</div><div class='ctx'>     while (refinement &amp;&amp; refinement != klass) {</div><div class='del'>-	FL_SET(refinement, RMODULE_IS_OVERLAID);</div><div class='del'>-	c = RCLASS_SET_SUPER(c, rb_include_class_new(refinement, RCLASS_SUPER(c)));</div><div class='del'>-	RCLASS_REFINED_CLASS(c) = klass;</div><div class='del'>-	refinement = RCLASS_SUPER(refinement);</div><div class='add'>+        c = RCLASS_SET_SUPER(c, rb_include_class_new(refinement, RCLASS_SUPER(c)));</div><div class='add'>+        RB_OBJ_WRITE(c, &amp;RCLASS_REFINED_CLASS(c), klass);</div><div class='add'>+        refinement = RCLASS_SUPER(refinement);</div><div class='ctx'>     }</div><div class='ctx'>     rb_hash_aset(activated_refinements, klass, iclass);</div><div class='ctx'> }</div><div class='hunk'>@@ -1459,38 +1409,39 @@ rb_mod_refine(VALUE module, VALUE klass)</div><div class='ctx'>     VALUE block_handler = rb_vm_frame_block_handler(th-&gt;ec-&gt;cfp);</div><div class='ctx'> </div><div class='ctx'>     if (block_handler == VM_BLOCK_HANDLER_NONE) {</div><div class='del'>-	rb_raise(rb_eArgError, "no block given");</div><div class='add'>+        rb_raise(rb_eArgError, "no block given");</div><div class='ctx'>     }</div><div class='ctx'>     if (vm_block_handler_type(block_handler) != block_handler_type_iseq) {</div><div class='del'>-	rb_raise(rb_eArgError, "can't pass a Proc as a block to Module#refine");</div><div class='add'>+        rb_raise(rb_eArgError, "can't pass a Proc as a block to Module#refine");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ensure_class_or_module(klass);</div><div class='ctx'>     CONST_ID(id_refinements, "__refinements__");</div><div class='ctx'>     refinements = rb_attr_get(module, id_refinements);</div><div class='ctx'>     if (NIL_P(refinements)) {</div><div class='del'>-	refinements = hidden_identity_hash_new();</div><div class='del'>-	rb_ivar_set(module, id_refinements, refinements);</div><div class='add'>+        refinements = hidden_identity_hash_new();</div><div class='add'>+        rb_ivar_set(module, id_refinements, refinements);</div><div class='ctx'>     }</div><div class='ctx'>     CONST_ID(id_activated_refinements, "__activated_refinements__");</div><div class='ctx'>     activated_refinements = rb_attr_get(module, id_activated_refinements);</div><div class='ctx'>     if (NIL_P(activated_refinements)) {</div><div class='del'>-	activated_refinements = hidden_identity_hash_new();</div><div class='del'>-	rb_ivar_set(module, id_activated_refinements,</div><div class='del'>-		    activated_refinements);</div><div class='add'>+        activated_refinements = hidden_identity_hash_new();</div><div class='add'>+        rb_ivar_set(module, id_activated_refinements,</div><div class='add'>+                    activated_refinements);</div><div class='ctx'>     }</div><div class='ctx'>     refinement = rb_hash_lookup(refinements, klass);</div><div class='ctx'>     if (NIL_P(refinement)) {</div><div class='del'>-	VALUE superclass = refinement_superclass(klass);</div><div class='del'>-	refinement = rb_module_new();</div><div class='del'>-	RCLASS_SET_SUPER(refinement, superclass);</div><div class='del'>-	FL_SET(refinement, RMODULE_IS_REFINEMENT);</div><div class='del'>-	CONST_ID(id_refined_class, "__refined_class__");</div><div class='del'>-	rb_ivar_set(refinement, id_refined_class, klass);</div><div class='del'>-	CONST_ID(id_defined_at, "__defined_at__");</div><div class='del'>-	rb_ivar_set(refinement, id_defined_at, module);</div><div class='del'>-	rb_hash_aset(refinements, klass, refinement);</div><div class='del'>-	add_activated_refinement(activated_refinements, klass, refinement);</div><div class='add'>+        VALUE superclass = refinement_superclass(klass);</div><div class='add'>+        refinement = rb_refinement_new();</div><div class='add'>+        RCLASS_SET_SUPER(refinement, superclass);</div><div class='add'>+        RUBY_ASSERT(BUILTIN_TYPE(refinement) == T_MODULE);</div><div class='add'>+        FL_SET(refinement, RMODULE_IS_REFINEMENT);</div><div class='add'>+        CONST_ID(id_refined_class, "__refined_class__");</div><div class='add'>+        rb_ivar_set(refinement, id_refined_class, klass);</div><div class='add'>+        CONST_ID(id_defined_at, "__defined_at__");</div><div class='add'>+        rb_ivar_set(refinement, id_defined_at, module);</div><div class='add'>+        rb_hash_aset(refinements, klass, refinement);</div><div class='add'>+        add_activated_refinement(activated_refinements, klass, refinement);</div><div class='ctx'>     }</div><div class='ctx'>     rb_yield_refine_block(refinement, activated_refinements);</div><div class='ctx'>     return refinement;</div><div class='hunk'>@@ -1502,7 +1453,7 @@ ignored_block(VALUE module, const char *klass)</div><div class='ctx'>     const char *anon = "";</div><div class='ctx'>     Check_Type(module, T_MODULE);</div><div class='ctx'>     if (!RTEST(rb_search_class_path(module))) {</div><div class='del'>-	anon = ", maybe for Module.new";</div><div class='add'>+        anon = ", maybe for Module.new";</div><div class='ctx'>     }</div><div class='ctx'>     rb_warn("%s""using doesn't call the given block""%s.", klass, anon);</div><div class='ctx'> }</div><div class='hunk'>@@ -1521,27 +1472,62 @@ mod_using(VALUE self, VALUE module)</div><div class='ctx'>     rb_control_frame_t *prev_cfp = previous_frame(GET_EC());</div><div class='ctx'> </div><div class='ctx'>     if (prev_frame_func()) {</div><div class='del'>-	rb_raise(rb_eRuntimeError,</div><div class='del'>-		 "Module#using is not permitted in methods");</div><div class='add'>+        rb_raise(rb_eRuntimeError,</div><div class='add'>+                 "Module#using is not permitted in methods");</div><div class='ctx'>     }</div><div class='ctx'>     if (prev_cfp &amp;&amp; prev_cfp-&gt;self != self) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "Module#using is not called on self");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "Module#using is not called on self");</div><div class='ctx'>     }</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	ignored_block(module, "Module#");</div><div class='add'>+        ignored_block(module, "Module#");</div><div class='ctx'>     }</div><div class='ctx'>     rb_using_module(rb_vm_cref_replace_with_duplicated_cref(), module);</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     refinements -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array of modules defined within the receiver.</div><div class='add'>+ *</div><div class='add'>+ *     module A</div><div class='add'>+ *       refine Integer do</div><div class='add'>+ *       end</div><div class='add'>+ *</div><div class='add'>+ *       refine String do</div><div class='add'>+ *       end</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     p A.refinements</div><div class='add'>+ *</div><div class='add'>+ *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *</div><div class='add'>+ *     [#&lt;refinement:Integer@A&gt;, #&lt;refinement:String@A&gt;]</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+mod_refinements(VALUE self)</div><div class='add'>+{</div><div class='add'>+    ID id_refinements;</div><div class='add'>+    VALUE refinements;</div><div class='add'>+</div><div class='add'>+    CONST_ID(id_refinements, "__refinements__");</div><div class='add'>+    refinements = rb_attr_get(self, id_refinements);</div><div class='add'>+    if (NIL_P(refinements)) {</div><div class='add'>+        return rb_ary_new();</div><div class='add'>+    }</div><div class='add'>+    return rb_hash_values(refinements);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> used_modules_i(VALUE _, VALUE mod, VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     ID id_defined_at;</div><div class='ctx'>     CONST_ID(id_defined_at, "__defined_at__");</div><div class='del'>-    while (FL_TEST(rb_class_of(mod), RMODULE_IS_REFINEMENT)) {</div><div class='del'>-	rb_ary_push(ary, rb_attr_get(rb_class_of(mod), id_defined_at));</div><div class='del'>-	mod = RCLASS_SUPER(mod);</div><div class='add'>+    while (BUILTIN_TYPE(rb_class_of(mod)) == T_MODULE &amp;&amp; FL_TEST(rb_class_of(mod), RMODULE_IS_REFINEMENT)) {</div><div class='add'>+        rb_ary_push(ary, rb_attr_get(rb_class_of(mod), id_defined_at));</div><div class='add'>+        mod = RCLASS_SUPER(mod);</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -1572,44 +1558,137 @@ used_modules_i(VALUE _, VALUE mod, VALUE ary)</div><div class='ctx'>  *     [B, A]</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_mod_s_used_modules(void)</div><div class='add'>+rb_mod_s_used_modules(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     const rb_cref_t *cref = rb_vm_cref();</div><div class='ctx'>     VALUE ary = rb_ary_new();</div><div class='ctx'> </div><div class='del'>-    while(cref) {</div><div class='del'>-	if(!NIL_P(CREF_REFINEMENTS(cref))) {</div><div class='del'>-	    rb_hash_foreach(CREF_REFINEMENTS(cref), used_modules_i, ary);</div><div class='del'>-	}</div><div class='del'>-	cref = CREF_NEXT(cref);</div><div class='add'>+    while (cref) {</div><div class='add'>+        if (!NIL_P(CREF_REFINEMENTS(cref))) {</div><div class='add'>+            rb_hash_foreach(CREF_REFINEMENTS(cref), used_modules_i, ary);</div><div class='add'>+        }</div><div class='add'>+        cref = CREF_NEXT(cref);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return rb_funcall(ary, rb_intern("uniq"), 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Calls \c #initialize method of \a obj with the given arguments.</div><div class='add'>+static int</div><div class='add'>+used_refinements_i(VALUE _, VALUE mod, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    while (BUILTIN_TYPE(rb_class_of(mod)) == T_MODULE &amp;&amp; FL_TEST(rb_class_of(mod), RMODULE_IS_REFINEMENT)) {</div><div class='add'>+        rb_ary_push(ary, rb_class_of(mod));</div><div class='add'>+        mod = RCLASS_SUPER(mod);</div><div class='add'>+    }</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     used_refinements -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array of all modules used in the current scope. The ordering</div><div class='add'>+ *  of modules in the resulting array is not defined.</div><div class='ctx'>  *</div><div class='del'>- * It also forwards the given block to \c #initialize if given.</div><div class='add'>+ *     module A</div><div class='add'>+ *       refine Object do</div><div class='add'>+ *       end</div><div class='add'>+ *     end</div><div class='ctx'>  *</div><div class='del'>- * \param[in] obj the receiver object</div><div class='del'>- * \param[in] argc the number of arguments</div><div class='del'>- * \param[in] argv a pointer to the array of arguments</div><div class='del'>- * \ingroup object</div><div class='add'>+ *     module B</div><div class='add'>+ *       refine Object do</div><div class='add'>+ *       end</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     using A</div><div class='add'>+ *     using B</div><div class='add'>+ *     p Module.used_refinements</div><div class='add'>+ *</div><div class='add'>+ *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *</div><div class='add'>+ *     [#&lt;refinement:Object@B&gt;, #&lt;refinement:Object@A&gt;]</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_mod_s_used_refinements(VALUE _)</div><div class='add'>+{</div><div class='add'>+    const rb_cref_t *cref = rb_vm_cref();</div><div class='add'>+    VALUE ary = rb_ary_new();</div><div class='add'>+</div><div class='add'>+    while (cref) {</div><div class='add'>+        if (!NIL_P(CREF_REFINEMENTS(cref))) {</div><div class='add'>+            rb_hash_foreach(CREF_REFINEMENTS(cref), used_refinements_i, ary);</div><div class='add'>+        }</div><div class='add'>+        cref = CREF_NEXT(cref);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct refinement_import_methods_arg {</div><div class='add'>+    rb_cref_t *cref;</div><div class='add'>+    VALUE refinement;</div><div class='add'>+    VALUE module;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* vm.c */</div><div class='add'>+rb_cref_t *rb_vm_cref_dup_without_refinements(const rb_cref_t *cref);</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+refinement_import_methods_i(ID key, VALUE value, void *data)</div><div class='add'>+{</div><div class='add'>+    const rb_method_entry_t *me = (const rb_method_entry_t *)value;</div><div class='add'>+    struct refinement_import_methods_arg *arg = (struct refinement_import_methods_arg *)data;</div><div class='add'>+</div><div class='add'>+    if (me-&gt;def-&gt;type != VM_METHOD_TYPE_ISEQ) {</div><div class='add'>+        rb_raise(rb_eArgError, "Can't import method which is not defined with Ruby code: %"PRIsVALUE"#%"PRIsVALUE, rb_class_path(arg-&gt;module), rb_id2str(key));</div><div class='add'>+    }</div><div class='add'>+    rb_cref_t *new_cref = rb_vm_cref_dup_without_refinements(me-&gt;def-&gt;body.iseq.cref);</div><div class='add'>+    CREF_REFINEMENTS_SET(new_cref, CREF_REFINEMENTS(arg-&gt;cref));</div><div class='add'>+    rb_add_method_iseq(arg-&gt;refinement, key, me-&gt;def-&gt;body.iseq.iseqptr, new_cref, METHOD_ENTRY_VISI(me));</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Note: docs for the method are in class.c</div><div class='ctx'>  */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+refinement_import_methods(int argc, VALUE *argv, VALUE refinement)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    struct refinement_import_methods_arg arg;</div><div class='add'>+</div><div class='add'>+    rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);</div><div class='add'>+    for (i = 0; i &lt; argc; i++) {</div><div class='add'>+        Check_Type(argv[i], T_MODULE);</div><div class='add'>+        if (RCLASS_SUPER(argv[i])) {</div><div class='add'>+            rb_warn("%"PRIsVALUE" has ancestors, but Refinement#import_methods doesn't import their methods", rb_class_path(argv[i]));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    arg.cref = rb_vm_cref_replace_with_duplicated_cref();</div><div class='add'>+    arg.refinement = refinement;</div><div class='add'>+    for (i = 0; i &lt; argc; i++) {</div><div class='add'>+        arg.module = argv[i];</div><div class='add'>+        struct rb_id_table *m_tbl = RCLASS_M_TBL(argv[i]);</div><div class='add'>+        if (!m_tbl) continue;</div><div class='add'>+        rb_id_table_foreach(m_tbl, refinement_import_methods_i, &amp;arg);</div><div class='add'>+    }</div><div class='add'>+    return refinement;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> rb_obj_call_init(VALUE obj, int argc, const VALUE *argv)</div><div class='ctx'> {</div><div class='add'>+    rb_obj_call_init_kw(obj, argc, argv, RB_NO_KEYWORDS);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_obj_call_init_kw(VALUE obj, int argc, const VALUE *argv, int kw_splat)</div><div class='add'>+{</div><div class='ctx'>     PASS_PASSED_BLOCK_HANDLER();</div><div class='del'>-    rb_funcallv(obj, idInitialize, argc, argv);</div><div class='add'>+    rb_funcallv_kw(obj, idInitialize, argc, argv, kw_splat);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * Extend the object with the module.</div><div class='del'>- *</div><div class='del'>- * Same as \c Module\#extend_object.</div><div class='del'>- * \ingroup class</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> rb_extend_object(VALUE obj, VALUE module)</div><div class='ctx'> {</div><div class='hunk'>@@ -1622,7 +1701,7 @@ rb_extend_object(VALUE obj, VALUE module)</div><div class='ctx'>  *</div><div class='ctx'>  *  Extends the specified object by adding this module's constants and</div><div class='ctx'>  *  methods (which are added as singleton methods). This is the callback</div><div class='del'>- *  method used by &lt;code&gt;Object#extend&lt;/code&gt;.</div><div class='add'>+ *  method used by Object#extend.</div><div class='ctx'>  *</div><div class='ctx'>  *     module Picky</div><div class='ctx'>  *       def Picky.extend_object(o)</div><div class='hunk'>@@ -1685,34 +1764,42 @@ rb_obj_extend(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     CONST_ID(id_extended, "extended");</div><div class='ctx'> </div><div class='ctx'>     rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);</div><div class='del'>-    for (i = 0; i &lt; argc; i++)</div><div class='del'>-	Check_Type(argv[i], T_MODULE);</div><div class='add'>+    for (i = 0; i &lt; argc; i++) {</div><div class='add'>+        Check_Type(argv[i], T_MODULE);</div><div class='add'>+        if (FL_TEST(argv[i], RMODULE_IS_REFINEMENT)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "Cannot extend object with refinement");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'>     while (argc--) {</div><div class='del'>-	rb_funcall(argv[argc], id_extend_object, 1, obj);</div><div class='del'>-	rb_funcall(argv[argc], id_extended, 1, obj);</div><div class='add'>+        rb_funcall(argv[argc], id_extend_object, 1, obj);</div><div class='add'>+        rb_funcall(argv[argc], id_extended, 1, obj);</div><div class='ctx'>     }</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_top_main_class(const char *method)</div><div class='add'>+{</div><div class='add'>+    VALUE klass = GET_THREAD()-&gt;top_wrapper;</div><div class='add'>+</div><div class='add'>+    if (!klass) return rb_cObject;</div><div class='add'>+    rb_warning("main.%s in the wrapped load is effective only in wrapper module", method);</div><div class='add'>+    return klass;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     include(module, ...)   -&gt; self</div><div class='ctx'>  *</div><div class='del'>- *  Invokes &lt;code&gt;Module.append_features&lt;/code&gt;</div><div class='del'>- *  on each parameter in turn. Effectively adds the methods and constants</div><div class='del'>- *  in each module to the receiver.</div><div class='add'>+ *  Invokes Module.append_features on each parameter in turn.</div><div class='add'>+ *  Effectively adds the methods and constants in each module to the</div><div class='add'>+ *  receiver.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> top_include(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    rb_thread_t *th = GET_THREAD();</div><div class='del'>-</div><div class='del'>-    if (th-&gt;top_wrapper) {</div><div class='del'>-	rb_warning("main.include in the wrapped load is effective only in wrapper module");</div><div class='del'>-	return rb_mod_include(argc, argv, th-&gt;top_wrapper);</div><div class='del'>-    }</div><div class='del'>-    return rb_mod_include(argc, argv, rb_cObject);</div><div class='add'>+    return rb_mod_include(argc, argv, rb_top_main_class("include"));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1720,20 +1807,22 @@ top_include(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *     using(module)    -&gt; self</div><div class='ctx'>  *</div><div class='ctx'>  *  Import class refinements from &lt;i&gt;module&lt;/i&gt; into the scope where</div><div class='del'>- *  &lt;code&gt;using&lt;/code&gt; is called.</div><div class='add'>+ *  #using is called.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> top_using(VALUE self, VALUE module)</div><div class='ctx'> {</div><div class='del'>-    const rb_cref_t *cref = rb_vm_cref();</div><div class='add'>+    const rb_cref_t *cref = CREF_NEXT(rb_vm_cref());;</div><div class='ctx'>     rb_control_frame_t *prev_cfp = previous_frame(GET_EC());</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='ctx'> </div><div class='del'>-    if (CREF_NEXT(cref) || (prev_cfp &amp;&amp; rb_vm_frame_method_entry(prev_cfp))) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "main.using is permitted only at toplevel");</div><div class='add'>+    if ((th-&gt;top_wrapper ? CREF_NEXT(cref) : cref) ||</div><div class='add'>+        (prev_cfp &amp;&amp; rb_vm_frame_method_entry(prev_cfp))) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "main.using is permitted only at toplevel");</div><div class='ctx'>     }</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	ignored_block(module, "main.");</div><div class='add'>+        ignored_block(module, "main.");</div><div class='ctx'>     }</div><div class='ctx'>     rb_using_module(rb_vm_cref_replace_with_duplicated_cref(), module);</div><div class='ctx'>     return self;</div><div class='hunk'>@@ -1746,30 +1835,30 @@ errinfo_place(const rb_execution_context_t *ec)</div><div class='ctx'>     const rb_control_frame_t *end_cfp = RUBY_VM_END_CONTROL_FRAME(ec);</div><div class='ctx'> </div><div class='ctx'>     while (RUBY_VM_VALID_CONTROL_FRAME_P(cfp, end_cfp)) {</div><div class='del'>-	if (VM_FRAME_RUBYFRAME_P(cfp)) {</div><div class='del'>-	    if (cfp-&gt;iseq-&gt;body-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='del'>-		return &amp;cfp-&gt;ep[VM_ENV_INDEX_LAST_LVAR];</div><div class='del'>-	    }</div><div class='del'>-	    else if (cfp-&gt;iseq-&gt;body-&gt;type == ISEQ_TYPE_ENSURE &amp;&amp;</div><div class='del'>-		     !THROW_DATA_P(cfp-&gt;ep[VM_ENV_INDEX_LAST_LVAR]) &amp;&amp;</div><div class='del'>-		     !FIXNUM_P(cfp-&gt;ep[VM_ENV_INDEX_LAST_LVAR])) {</div><div class='del'>-		return &amp;cfp-&gt;ep[VM_ENV_INDEX_LAST_LVAR];</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);</div><div class='add'>+        if (VM_FRAME_RUBYFRAME_P(cfp)) {</div><div class='add'>+            if (ISEQ_BODY(cfp-&gt;iseq)-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='add'>+                return &amp;cfp-&gt;ep[VM_ENV_INDEX_LAST_LVAR];</div><div class='add'>+            }</div><div class='add'>+            else if (ISEQ_BODY(cfp-&gt;iseq)-&gt;type == ISEQ_TYPE_ENSURE &amp;&amp;</div><div class='add'>+                     !THROW_DATA_P(cfp-&gt;ep[VM_ENV_INDEX_LAST_LVAR]) &amp;&amp;</div><div class='add'>+                     !FIXNUM_P(cfp-&gt;ep[VM_ENV_INDEX_LAST_LVAR])) {</div><div class='add'>+                return &amp;cfp-&gt;ep[VM_ENV_INDEX_LAST_LVAR];</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-get_ec_errinfo(const rb_execution_context_t *ec)</div><div class='add'>+VALUE</div><div class='add'>+rb_ec_get_errinfo(const rb_execution_context_t *ec)</div><div class='ctx'> {</div><div class='ctx'>     const VALUE *ptr = errinfo_place(ec);</div><div class='ctx'>     if (ptr) {</div><div class='del'>-	return *ptr;</div><div class='add'>+        return *ptr;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return ec-&gt;errinfo;</div><div class='add'>+        return ec-&gt;errinfo;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1780,49 +1869,35 @@ get_errinfo(void)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-errinfo_getter(ID id)</div><div class='add'>+errinfo_getter(ID id, VALUE *_)</div><div class='ctx'> {</div><div class='ctx'>     return get_errinfo();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! The current exception in the current thread.</div><div class='del'>- *</div><div class='del'>- * Same as \c $! in Ruby.</div><div class='del'>- * \return the current exception or \c Qnil</div><div class='del'>- * \ingroup exception</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_errinfo(void)</div><div class='ctx'> {</div><div class='ctx'>     return GET_EC()-&gt;errinfo;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*! Sets the current exception (\c $!) to the given value</div><div class='del'>- *</div><div class='del'>- * \param[in] err an \c Exception object or \c Qnil.</div><div class='del'>- * \exception TypeError if \a err is neither an exception nor \c nil.</div><div class='del'>- * \note this function does not raise the exception.</div><div class='del'>- *   Use \c rb_raise() when you want to raise.</div><div class='del'>- * \ingroup exception</div><div class='del'>- */</div><div class='ctx'> void</div><div class='ctx'> rb_set_errinfo(VALUE err)</div><div class='ctx'> {</div><div class='ctx'>     if (!NIL_P(err) &amp;&amp; !rb_obj_is_kind_of(err, rb_eException)) {</div><div class='del'>-	rb_raise(rb_eTypeError, "assigning non-exception to $!");</div><div class='add'>+        rb_raise(rb_eTypeError, "assigning non-exception to $!");</div><div class='ctx'>     }</div><div class='ctx'>     GET_EC()-&gt;errinfo = err;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-errat_getter(ID id)</div><div class='add'>+errat_getter(ID id, VALUE *_)</div><div class='ctx'> {</div><div class='ctx'>     VALUE err = get_errinfo();</div><div class='ctx'>     if (!NIL_P(err)) {</div><div class='del'>-	return rb_get_backtrace(err);</div><div class='add'>+        return rb_get_backtrace(err);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1831,7 +1906,7 @@ errat_setter(VALUE val, ID id, VALUE *var)</div><div class='ctx'> {</div><div class='ctx'>     VALUE err = get_errinfo();</div><div class='ctx'>     if (NIL_P(err)) {</div><div class='del'>-	rb_raise(rb_eArgError, "$! not set");</div><div class='add'>+        rb_raise(rb_eArgError, "$! not set");</div><div class='ctx'>     }</div><div class='ctx'>     set_backtrace(err, val);</div><div class='ctx'> }</div><div class='hunk'>@@ -1847,15 +1922,15 @@ errat_setter(VALUE val, ID id, VALUE *var)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_f_method_name(void)</div><div class='add'>+rb_f_method_name(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     ID fname = prev_frame_func(); /* need *method* ID */</div><div class='ctx'> </div><div class='ctx'>     if (fname) {</div><div class='del'>-	return ID2SYM(fname);</div><div class='add'>+        return ID2SYM(fname);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1869,15 +1944,15 @@ rb_f_method_name(void)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_f_callee_name(void)</div><div class='add'>+rb_f_callee_name(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     ID fname = prev_frame_callee(); /* need *callee* ID */</div><div class='ctx'> </div><div class='ctx'>     if (fname) {</div><div class='del'>-	return ID2SYM(fname);</div><div class='add'>+        return ID2SYM(fname);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1892,26 +1967,92 @@ rb_f_callee_name(void)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-f_current_dirname(void)</div><div class='add'>+f_current_dirname(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE base = rb_current_realfilepath();</div><div class='ctx'>     if (NIL_P(base)) {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     base = rb_file_dirname(base);</div><div class='ctx'>     return base;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     global_variables    -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array of the names of global variables. This includes</div><div class='add'>+ *  special regexp global variables such as &lt;tt&gt;$~&lt;/tt&gt; and &lt;tt&gt;$+&lt;/tt&gt;,</div><div class='add'>+ *  but does not include the numbered regexp global variables (&lt;tt&gt;$1&lt;/tt&gt;,</div><div class='add'>+ *  &lt;tt&gt;$2&lt;/tt&gt;, etc.).</div><div class='add'>+ *</div><div class='add'>+ *     global_variables.grep /std/   #=&gt; [:$stdin, :$stdout, :$stderr]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+f_global_variables(VALUE _)</div><div class='add'>+{</div><div class='add'>+    return rb_f_global_variables();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     trace_var(symbol, cmd )             -&gt; nil</div><div class='add'>+ *     trace_var(symbol) {|val| block }    -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Controls tracing of assignments to global variables. The parameter</div><div class='add'>+ *  +symbol+ identifies the variable (as either a string name or a</div><div class='add'>+ *  symbol identifier). _cmd_ (which may be a string or a</div><div class='add'>+ *  +Proc+ object) or block is executed whenever the variable</div><div class='add'>+ *  is assigned. The block or +Proc+ object receives the</div><div class='add'>+ *  variable's new value as a parameter. Also see</div><div class='add'>+ *  Kernel::untrace_var.</div><div class='add'>+ *</div><div class='add'>+ *     trace_var :$_, proc {|v| puts "$_ is now '#{v}'" }</div><div class='add'>+ *     $_ = "hello"</div><div class='add'>+ *     $_ = ' there'</div><div class='add'>+ *</div><div class='add'>+ *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *</div><div class='add'>+ *     $_ is now 'hello'</div><div class='add'>+ *     $_ is now ' there'</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+f_trace_var(int c, const VALUE *a, VALUE _)</div><div class='add'>+{</div><div class='add'>+    return rb_f_trace_var(c, a);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     untrace_var(symbol [, cmd] )   -&gt; array or nil</div><div class='add'>+ *</div><div class='add'>+ *  Removes tracing for the specified command on the given global</div><div class='add'>+ *  variable and returns +nil+. If no command is specified,</div><div class='add'>+ *  removes all tracing for that variable and returns an array</div><div class='add'>+ *  containing the commands actually removed.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+f_untrace_var(int c, const VALUE *a, VALUE _)</div><div class='add'>+{</div><div class='add'>+    return rb_f_untrace_var(c, a);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_eval(void)</div><div class='ctx'> {</div><div class='ctx'>     rb_define_virtual_variable("$@", errat_getter, errat_setter);</div><div class='ctx'>     rb_define_virtual_variable("$!", errinfo_getter, 0);</div><div class='ctx'> </div><div class='del'>-    rb_define_global_function("raise", rb_f_raise, -1);</div><div class='del'>-    rb_define_global_function("fail", rb_f_raise, -1);</div><div class='add'>+    rb_gvar_ractor_local("$@");</div><div class='add'>+    rb_gvar_ractor_local("$!");</div><div class='add'>+</div><div class='add'>+    rb_define_global_function("raise", f_raise, -1);</div><div class='add'>+    rb_define_global_function("fail", f_raise, -1);</div><div class='ctx'> </div><div class='del'>-    rb_define_global_function("global_variables", rb_f_global_variables, 0);	/* in variable.c */</div><div class='add'>+    rb_define_global_function("global_variables", f_global_variables, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_global_function("__method__", rb_f_method_name, 0);</div><div class='ctx'>     rb_define_global_function("__callee__", rb_f_callee_name, 0);</div><div class='hunk'>@@ -1925,9 +2066,17 @@ Init_eval(void)</div><div class='ctx'>     rb_define_private_method(rb_cModule, "prepend_features", rb_mod_prepend_features, 1);</div><div class='ctx'>     rb_define_private_method(rb_cModule, "refine", rb_mod_refine, 1);</div><div class='ctx'>     rb_define_private_method(rb_cModule, "using", mod_using, 1);</div><div class='add'>+    rb_define_method(rb_cModule, "refinements", mod_refinements, 0);</div><div class='ctx'>     rb_define_singleton_method(rb_cModule, "used_modules",</div><div class='del'>-			       rb_mod_s_used_modules, 0);</div><div class='add'>+                               rb_mod_s_used_modules, 0);</div><div class='add'>+    rb_define_singleton_method(rb_cModule, "used_refinements",</div><div class='add'>+                               rb_mod_s_used_refinements, 0);</div><div class='ctx'>     rb_undef_method(rb_cClass, "refine");</div><div class='add'>+    rb_define_private_method(rb_cRefinement, "import_methods", refinement_import_methods, -1);</div><div class='add'>+    rb_define_method(rb_cRefinement, "refined_class", rb_refinement_module_get_refined_class, 0);</div><div class='add'>+    rb_undef_method(rb_cRefinement, "append_features");</div><div class='add'>+    rb_undef_method(rb_cRefinement, "prepend_features");</div><div class='add'>+    rb_undef_method(rb_cRefinement, "extend_object");</div><div class='ctx'> </div><div class='ctx'>     rb_undef_method(rb_cClass, "module_function");</div><div class='ctx'> </div><div class='hunk'>@@ -1938,14 +2087,14 @@ Init_eval(void)</div><div class='ctx'>     rb_define_singleton_method(rb_cModule, "constants", rb_mod_s_constants, -1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_private_method(rb_singleton_class(rb_vm_top_self()),</div><div class='del'>-			     "include", top_include, -1);</div><div class='add'>+                             "include", top_include, -1);</div><div class='ctx'>     rb_define_private_method(rb_singleton_class(rb_vm_top_self()),</div><div class='del'>-			     "using", top_using, 1);</div><div class='add'>+                             "using", top_using, 1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_mKernel, "extend", rb_obj_extend, -1);</div><div class='ctx'> </div><div class='del'>-    rb_define_global_function("trace_var", rb_f_trace_var, -1);	/* in variable.c */</div><div class='del'>-    rb_define_global_function("untrace_var", rb_f_untrace_var, -1);	/* in variable.c */</div><div class='add'>+    rb_define_global_function("trace_var", f_trace_var, -1);</div><div class='add'>+    rb_define_global_function("untrace_var", f_untrace_var, -1);</div><div class='ctx'> </div><div class='ctx'>     rb_vm_register_special_exception(ruby_error_reenter, rb_eFatal, "exception reentered");</div><div class='ctx'>     rb_vm_register_special_exception(ruby_error_stackfatal, rb_eFatal, "machine stack overflow in critical region");</div><div class='head'>diff --git a/eval_error.c b/eval_error.c<br/>index f9756f65ac..9806683000 100644<br/>--- a/<a href='/ruby.git/tree/eval_error.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>eval_error.c</a><br/>+++ b/<a href='/ruby.git/tree/eval_error.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>eval_error.c</a></div><div class='hunk'>@@ -10,8 +10,8 @@</div><div class='ctx'> #ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P</div><div class='ctx'> #define warn_print(x) RB_GNUC_EXTENSION_BLOCK(	\</div><div class='ctx'>     (__builtin_constant_p(x)) ? 		\</div><div class='del'>-	rb_write_error2((x), (long)strlen(x)) : \</div><div class='del'>-	rb_write_error(x)			\</div><div class='add'>+        rb_write_error2((x), (long)strlen(x)) : \</div><div class='add'>+        rb_write_error(x)			\</div><div class='ctx'> )</div><div class='ctx'> #else</div><div class='ctx'> #define warn_print(x) rb_write_error(x)</div><div class='hunk'>@@ -29,7 +29,7 @@ error_pos(const VALUE str)</div><div class='ctx'> {</div><div class='ctx'>     VALUE pos = error_pos_str();</div><div class='ctx'>     if (!NIL_P(pos)) {</div><div class='del'>-	write_warn_str(str, pos);</div><div class='add'>+        write_warn_str(str, pos);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -40,18 +40,18 @@ error_pos_str(void)</div><div class='ctx'>     VALUE sourcefile = rb_source_location(&amp;sourceline);</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(sourcefile)) {</div><div class='del'>-	ID caller_name;</div><div class='del'>-	if (sourceline == 0) {</div><div class='del'>-	    return rb_sprintf("%"PRIsVALUE": ", sourcefile);</div><div class='del'>-	}</div><div class='del'>-	else if ((caller_name = rb_frame_callee()) != 0) {</div><div class='del'>-	    return rb_sprintf("%"PRIsVALUE":%d:in `%"PRIsVALUE"': ",</div><div class='del'>-			      sourcefile, sourceline,</div><div class='del'>-			      rb_id2str(caller_name));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    return rb_sprintf("%"PRIsVALUE":%d: ", sourcefile, sourceline);</div><div class='del'>-	}</div><div class='add'>+        ID caller_name;</div><div class='add'>+        if (sourceline == 0) {</div><div class='add'>+            return rb_sprintf("%"PRIsVALUE": ", sourcefile);</div><div class='add'>+        }</div><div class='add'>+        else if ((caller_name = rb_frame_callee()) != 0) {</div><div class='add'>+            return rb_sprintf("%"PRIsVALUE":%d:in `%"PRIsVALUE"': ",</div><div class='add'>+                              sourcefile, sourceline,</div><div class='add'>+                              rb_id2str(caller_name));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return rb_sprintf("%"PRIsVALUE":%d: ", sourcefile, sourceline);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -62,23 +62,17 @@ set_backtrace(VALUE info, VALUE bt)</div><div class='ctx'>     ID set_backtrace = rb_intern("set_backtrace");</div><div class='ctx'> </div><div class='ctx'>     if (rb_backtrace_p(bt)) {</div><div class='del'>-	if (rb_method_basic_definition_p(CLASS_OF(info), set_backtrace)) {</div><div class='del'>-	    rb_exc_set_backtrace(info, bt);</div><div class='del'>-	    return;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    bt = rb_backtrace_to_str_ary(bt);</div><div class='del'>-	}</div><div class='add'>+        if (rb_method_basic_definition_p(CLASS_OF(info), set_backtrace)) {</div><div class='add'>+            rb_exc_set_backtrace(info, bt);</div><div class='add'>+            return;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            bt = rb_backtrace_to_str_ary(bt);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     rb_check_funcall(info, set_backtrace, 1, &amp;bt);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-error_print(rb_execution_context_t *ec)</div><div class='del'>-{</div><div class='del'>-    rb_ec_error_print(ec, ec-&gt;errinfo);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> #define CSI_BEGIN "\033["</div><div class='ctx'> #define CSI_SGR "m"</div><div class='ctx'> </div><div class='hunk'>@@ -89,237 +83,312 @@ static const char reset[] = CSI_BEGIN""CSI_SGR;</div><div class='ctx'> static void</div><div class='ctx'> print_errinfo(const VALUE eclass, const VALUE errat, const VALUE emesg, const VALUE str, int highlight)</div><div class='ctx'> {</div><div class='del'>-    const char *einfo = "";</div><div class='ctx'>     long elen = 0;</div><div class='ctx'>     VALUE mesg;</div><div class='ctx'> </div><div class='del'>-    if (emesg != Qundef) {</div><div class='del'>-	if (NIL_P(errat) || RARRAY_LEN(errat) == 0 ||</div><div class='del'>-	    NIL_P(mesg = RARRAY_AREF(errat, 0))) {</div><div class='del'>-	    error_pos(str);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    write_warn_str(str, mesg);</div><div class='del'>-	    write_warn(str, ": ");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (highlight) write_warn(str, bold);</div><div class='del'>-</div><div class='del'>-	if (!NIL_P(emesg)) {</div><div class='del'>-	    einfo = RSTRING_PTR(emesg);</div><div class='del'>-            elen = RSTRING_LEN(emesg);</div><div class='del'>-	}</div><div class='add'>+    if (NIL_P(errat) || RARRAY_LEN(errat) == 0 ||</div><div class='add'>+        NIL_P(mesg = RARRAY_AREF(errat, 0))) {</div><div class='add'>+        error_pos(str);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        write_warn_str(str, mesg);</div><div class='add'>+        write_warn(str, ": ");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(emesg)) {</div><div class='add'>+        elen = RSTRING_LEN(emesg);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (eclass == rb_eRuntimeError &amp;&amp; elen == 0) {</div><div class='add'>+        if (highlight) write_warn(str, underline);</div><div class='add'>+        write_warn(str, "unhandled exception");</div><div class='add'>+        if (highlight) write_warn(str, reset);</div><div class='add'>+        write_warn2(str, "\n", 1);</div><div class='ctx'>     }</div><div class='add'>+    else {</div><div class='add'>+        VALUE epath;</div><div class='add'>+</div><div class='add'>+        epath = rb_class_name(eclass);</div><div class='add'>+        if (elen == 0) {</div><div class='add'>+            if (highlight) write_warn(str, underline);</div><div class='add'>+            write_warn_str(str, epath);</div><div class='add'>+            if (highlight) write_warn(str, reset);</div><div class='add'>+            write_warn(str, "\n");</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            write_warn_str(str, emesg);</div><div class='add'>+            write_warn(str, "\n");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_decorate_message(const VALUE eclass, const VALUE emesg, int highlight)</div><div class='add'>+{</div><div class='add'>+    const char *einfo = "";</div><div class='add'>+    long elen = 0;</div><div class='ctx'> </div><div class='add'>+    VALUE str = rb_str_new2("");</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(emesg)) {</div><div class='add'>+        einfo = RSTRING_PTR(emesg);</div><div class='add'>+        elen = RSTRING_LEN(emesg);</div><div class='add'>+    }</div><div class='ctx'>     if (eclass == rb_eRuntimeError &amp;&amp; elen == 0) {</div><div class='del'>-	if (highlight) write_warn(str, underline);</div><div class='del'>-	write_warn(str, "unhandled exception");</div><div class='del'>-	if (highlight) write_warn(str, reset);</div><div class='del'>-	write_warn2(str, "\n", 1);</div><div class='add'>+        if (highlight) write_warn(str, underline);</div><div class='add'>+        write_warn(str, "unhandled exception");</div><div class='add'>+        if (highlight) write_warn(str, reset);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE epath;</div><div class='del'>-</div><div class='del'>-	epath = rb_class_name(eclass);</div><div class='del'>-	if (elen == 0) {</div><div class='del'>-	    if (highlight) write_warn(str, underline);</div><div class='del'>-	    write_warn_str(str, epath);</div><div class='del'>-	    if (highlight) write_warn(str, reset);</div><div class='del'>-	    write_warn(str, "\n");</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    const char *tail = 0;</div><div class='del'>-</div><div class='del'>-	    if (emesg == Qundef &amp;&amp; highlight) write_warn(str, bold);</div><div class='del'>-	    if (RSTRING_PTR(epath)[0] == '#')</div><div class='del'>-		epath = 0;</div><div class='del'>-	    if ((tail = memchr(einfo, '\n', elen)) != 0) {</div><div class='del'>-		write_warn2(str, einfo, tail - einfo);</div><div class='del'>-		tail++;		/* skip newline */</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		write_warn_str(str, emesg);</div><div class='del'>-	    }</div><div class='del'>-	    if (epath) {</div><div class='del'>-		write_warn(str, " (");</div><div class='del'>-		if (highlight) write_warn(str, underline);</div><div class='add'>+        VALUE epath;</div><div class='add'>+</div><div class='add'>+        epath = rb_class_name(eclass);</div><div class='add'>+        if (elen == 0) {</div><div class='add'>+            if (highlight) write_warn(str, underline);</div><div class='add'>+            write_warn_str(str, epath);</div><div class='add'>+            if (highlight) write_warn(str, reset);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* emesg is a String instance */</div><div class='add'>+            const char *tail = 0;</div><div class='add'>+</div><div class='add'>+            if (highlight) write_warn(str, bold);</div><div class='add'>+            if (RSTRING_PTR(epath)[0] == '#')</div><div class='add'>+                epath = 0;</div><div class='add'>+            if ((tail = memchr(einfo, '\n', elen)) != 0) {</div><div class='add'>+                write_warn2(str, einfo, tail - einfo);</div><div class='add'>+                tail++;		/* skip newline */</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                write_warn_str(str, emesg);</div><div class='add'>+            }</div><div class='add'>+            if (epath) {</div><div class='add'>+                write_warn(str, " (");</div><div class='add'>+                if (highlight) write_warn(str, underline);</div><div class='ctx'>                 write_warn_str(str, epath);</div><div class='del'>-		if (highlight) {</div><div class='del'>-		    write_warn(str, reset);</div><div class='del'>-		    write_warn(str, bold);</div><div class='del'>-		}</div><div class='del'>-		write_warn2(str, ")", 1);</div><div class='del'>-		if (highlight) write_warn(str, reset);</div><div class='del'>-		write_warn2(str, "\n", 1);</div><div class='del'>-	    }</div><div class='del'>-	    if (tail &amp;&amp; einfo+elen &gt; tail) {</div><div class='del'>-		if (!highlight) {</div><div class='del'>-		    write_warn2(str, tail, einfo+elen-tail);</div><div class='del'>-		    if (einfo[elen-1] != '\n') write_warn2(str, "\n", 1);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    elen -= tail - einfo;</div><div class='del'>-		    einfo = tail;</div><div class='del'>-		    while (elen &gt; 0) {</div><div class='del'>-			tail = memchr(einfo, '\n', elen);</div><div class='del'>-			if (!tail || tail &gt; einfo) {</div><div class='del'>-			    write_warn(str, bold);</div><div class='del'>-			    write_warn2(str, einfo, tail ? tail-einfo : elen);</div><div class='del'>-			    write_warn(str, reset);</div><div class='del'>-			    if (!tail) {</div><div class='del'>-				write_warn2(str, "\n", 1);</div><div class='del'>-				break;</div><div class='del'>-			    }</div><div class='del'>-			}</div><div class='del'>-			elen -= tail - einfo;</div><div class='del'>-			einfo = tail;</div><div class='del'>-			do ++tail; while (tail &lt; einfo+elen &amp;&amp; *tail == '\n');</div><div class='del'>-			write_warn2(str, einfo, tail-einfo);</div><div class='del'>-			elen -= tail - einfo;</div><div class='del'>-			einfo = tail;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else if (!epath) {</div><div class='del'>-		write_warn2(str, "\n", 1);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+                if (highlight) {</div><div class='add'>+                    write_warn(str, reset);</div><div class='add'>+                    write_warn(str, bold);</div><div class='add'>+                }</div><div class='add'>+                write_warn2(str, ")", 1);</div><div class='add'>+                if (highlight) write_warn(str, reset);</div><div class='add'>+            }</div><div class='add'>+            if (tail &amp;&amp; einfo+elen &gt; tail) {</div><div class='add'>+                if (!highlight) {</div><div class='add'>+                    write_warn2(str, "\n", 1);</div><div class='add'>+                    write_warn2(str, tail, einfo+elen-tail);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    elen -= tail - einfo;</div><div class='add'>+                    einfo = tail;</div><div class='add'>+                    write_warn2(str, "\n", 1);</div><div class='add'>+                    while (elen &gt; 0) {</div><div class='add'>+                        tail = memchr(einfo, '\n', elen);</div><div class='add'>+                        if (!tail || tail &gt; einfo) {</div><div class='add'>+                            write_warn(str, bold);</div><div class='add'>+                            write_warn2(str, einfo, tail ? tail-einfo : elen);</div><div class='add'>+                            write_warn(str, reset);</div><div class='add'>+                            if (!tail) {</div><div class='add'>+                                break;</div><div class='add'>+                            }</div><div class='add'>+                        }</div><div class='add'>+                        elen -= tail - einfo;</div><div class='add'>+                        einfo = tail;</div><div class='add'>+                        do ++tail; while (tail &lt; einfo+elen &amp;&amp; *tail == '\n');</div><div class='add'>+                        write_warn2(str, einfo, tail-einfo);</div><div class='add'>+                        elen -= tail - einfo;</div><div class='add'>+                        einfo = tail;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-print_backtrace(const VALUE eclass, const VALUE errat, const VALUE str, int reverse)</div><div class='add'>+print_backtrace(const VALUE eclass, const VALUE errat, const VALUE str, int reverse, long backtrace_limit)</div><div class='ctx'> {</div><div class='ctx'>     if (!NIL_P(errat)) {</div><div class='del'>-	long i;</div><div class='del'>-	long len = RARRAY_LEN(errat);</div><div class='del'>-        int skip = eclass == rb_eSysStackError;</div><div class='del'>-	const int threshold = 1000000000;</div><div class='add'>+        long i;</div><div class='add'>+        long len = RARRAY_LEN(errat);</div><div class='add'>+        const int threshold = 1000000000;</div><div class='ctx'>         int width = (len &lt;= 1) ? INT_MIN : ((int)log10((double)(len &gt; threshold ?</div><div class='del'>-					 ((len - 1) / threshold) :</div><div class='del'>-					 len - 1)) +</div><div class='del'>-		     (len &lt; threshold ? 0 : 9) + 1);</div><div class='del'>-</div><div class='del'>-#define TRACE_MAX (TRACE_HEAD+TRACE_TAIL+5)</div><div class='del'>-#define TRACE_HEAD 8</div><div class='del'>-#define TRACE_TAIL 5</div><div class='del'>-</div><div class='del'>-	for (i = 1; i &lt; len; i++) {</div><div class='del'>-	    VALUE line = RARRAY_AREF(errat, reverse ? len - i : i);</div><div class='del'>-	    if (RB_TYPE_P(line, T_STRING)) {</div><div class='del'>-		VALUE bt = rb_str_new_cstr("\t");</div><div class='del'>-		if (reverse) rb_str_catf(bt, "%*ld: ", width, len - i);</div><div class='del'>-		write_warn_str(str, rb_str_catf(bt, "from %"PRIsVALUE"\n", line));</div><div class='del'>-	    }</div><div class='del'>-	    if (skip &amp;&amp; i == TRACE_HEAD &amp;&amp; len &gt; TRACE_MAX) {</div><div class='del'>-		write_warn_str(str, rb_sprintf("\t ... %ld levels...\n",</div><div class='del'>-					  len - TRACE_HEAD - TRACE_TAIL));</div><div class='del'>-		i = len - TRACE_TAIL;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+                                         ((len - 1) / threshold) :</div><div class='add'>+                                         len - 1)) +</div><div class='add'>+                     (len &lt; threshold ? 0 : 9) + 1);</div><div class='add'>+</div><div class='add'>+        long skip_start = -1, skip_len = 0;</div><div class='add'>+</div><div class='add'>+        // skip for stackoverflow</div><div class='add'>+        if (eclass == rb_eSysStackError) {</div><div class='add'>+            long trace_head = 9;</div><div class='add'>+            long trace_tail = 4;</div><div class='add'>+            long trace_max = trace_head + trace_tail + 5;</div><div class='add'>+            if (len &gt; trace_max) {</div><div class='add'>+                skip_start = trace_head;</div><div class='add'>+                skip_len = len - trace_max + 5;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // skip for explicit limit</div><div class='add'>+        if (backtrace_limit &gt;= 0 &amp;&amp; len &gt; backtrace_limit + 2) {</div><div class='add'>+            skip_start = backtrace_limit + 1;</div><div class='add'>+            skip_len = len - skip_start;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        for (i = 1; i &lt; len; i++) {</div><div class='add'>+            if (i == skip_start) {</div><div class='add'>+                write_warn_str(str, rb_sprintf("\t ... %ld levels...\n", skip_len));</div><div class='add'>+                i += skip_len;</div><div class='add'>+                if (i &gt;= len) break;</div><div class='add'>+            }</div><div class='add'>+            VALUE line = RARRAY_AREF(errat, reverse ? len - i : i);</div><div class='add'>+            if (RB_TYPE_P(line, T_STRING)) {</div><div class='add'>+                VALUE bt = rb_str_new_cstr("\t");</div><div class='add'>+                if (reverse) rb_str_catf(bt, "%*ld: ", width, len - i);</div><div class='add'>+                write_warn_str(str, rb_str_catf(bt, "from %"PRIsVALUE"\n", line));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE rb_get_message(VALUE exc);</div><div class='add'>+VALUE rb_get_detailed_message(VALUE exc, VALUE opt);</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+shown_cause_p(VALUE cause, VALUE *shown_causes)</div><div class='add'>+{</div><div class='add'>+    VALUE shown = *shown_causes;</div><div class='add'>+    if (!shown) {</div><div class='add'>+        *shown_causes = shown = rb_obj_hide(rb_ident_hash_new());</div><div class='add'>+    }</div><div class='add'>+    if (rb_hash_has_key(shown, cause)) return TRUE;</div><div class='add'>+    rb_hash_aset(shown, cause, Qtrue);</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-show_cause(VALUE errinfo, VALUE str, VALUE highlight, VALUE reverse)</div><div class='add'>+show_cause(VALUE errinfo, VALUE str, VALUE opt, VALUE highlight, VALUE reverse, long backtrace_limit, VALUE *shown_causes)</div><div class='ctx'> {</div><div class='ctx'>     VALUE cause = rb_attr_get(errinfo, id_cause);</div><div class='del'>-    if (!NIL_P(cause) &amp;&amp; rb_obj_is_kind_of(cause, rb_eException)) {</div><div class='add'>+    if (!NIL_P(cause) &amp;&amp; rb_obj_is_kind_of(cause, rb_eException) &amp;&amp;</div><div class='add'>+        !shown_cause_p(cause, shown_causes)) {</div><div class='ctx'>         volatile VALUE eclass = CLASS_OF(cause);</div><div class='ctx'>         VALUE errat = rb_get_backtrace(cause);</div><div class='del'>-        VALUE emesg = rb_get_message(cause);</div><div class='add'>+        VALUE emesg = rb_get_detailed_message(cause, opt);</div><div class='ctx'>         if (reverse) {</div><div class='del'>-            show_cause(cause, str, highlight, reverse);</div><div class='del'>-            print_backtrace(eclass, errat, str, TRUE);</div><div class='del'>-            print_errinfo(eclass, errat, emesg, str, highlight!=0);</div><div class='add'>+            show_cause(cause, str, opt, highlight, reverse, backtrace_limit, shown_causes);</div><div class='add'>+            print_backtrace(eclass, errat, str, TRUE, backtrace_limit);</div><div class='add'>+            print_errinfo(eclass, errat, emesg, str, RTEST(highlight));</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-            print_errinfo(eclass, errat, emesg, str, highlight!=0);</div><div class='del'>-            print_backtrace(eclass, errat, str, FALSE);</div><div class='del'>-            show_cause(cause, str, highlight, reverse);</div><div class='add'>+            print_errinfo(eclass, errat, emesg, str, RTEST(highlight));</div><div class='add'>+            print_backtrace(eclass, errat, str, FALSE, backtrace_limit);</div><div class='add'>+            show_cause(cause, str, opt, highlight, reverse, backtrace_limit, shown_causes);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_error_write(VALUE errinfo, VALUE emesg, VALUE errat, VALUE str, VALUE highlight, VALUE reverse)</div><div class='add'>+rb_exc_check_circular_cause(VALUE exc)</div><div class='add'>+{</div><div class='add'>+    VALUE cause = exc, shown_causes = 0;</div><div class='add'>+    do {</div><div class='add'>+        if (shown_cause_p(cause, &amp;shown_causes)) {</div><div class='add'>+            rb_raise(rb_eArgError, "circular causes");</div><div class='add'>+        }</div><div class='add'>+    } while (!NIL_P(cause = rb_attr_get(cause, id_cause)));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_error_write(VALUE errinfo, VALUE emesg, VALUE errat, VALUE str, VALUE opt, VALUE highlight, VALUE reverse)</div><div class='ctx'> {</div><div class='ctx'>     volatile VALUE eclass;</div><div class='add'>+    VALUE shown_causes = 0;</div><div class='add'>+    long backtrace_limit = rb_backtrace_length_limit;</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(errinfo))</div><div class='del'>-	return;</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='del'>-    if (errat == Qundef) {</div><div class='del'>-	errat = Qnil;</div><div class='add'>+    if (UNDEF_P(errat)) {</div><div class='add'>+        errat = Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     eclass = CLASS_OF(errinfo);</div><div class='del'>-    if (NIL_P(reverse) || NIL_P(highlight)) {</div><div class='del'>-	VALUE tty = (VALUE)rb_stderr_tty_p();</div><div class='del'>-	if (NIL_P(reverse)) reverse = tty;</div><div class='del'>-	if (NIL_P(highlight)) highlight = tty;</div><div class='del'>-    }</div><div class='ctx'>     if (reverse) {</div><div class='del'>-	static const char traceback[] = "Traceback "</div><div class='del'>-	    "(most recent call last):\n";</div><div class='del'>-	const int bold_part = rb_strlen_lit("Traceback");</div><div class='del'>-	char buff[sizeof(traceback)+sizeof(bold)+sizeof(reset)-2], *p = buff;</div><div class='del'>-	const char *msg = traceback;</div><div class='del'>-	long len = sizeof(traceback) - 1;</div><div class='del'>-	if (highlight) {</div><div class='add'>+        static const char traceback[] = "Traceback "</div><div class='add'>+            "(most recent call last):\n";</div><div class='add'>+        const int bold_part = rb_strlen_lit("Traceback");</div><div class='add'>+        char buff[sizeof(traceback)+sizeof(bold)+sizeof(reset)-2], *p = buff;</div><div class='add'>+        const char *msg = traceback;</div><div class='add'>+        long len = sizeof(traceback) - 1;</div><div class='add'>+        if (RTEST(highlight)) {</div><div class='ctx'> #define APPEND(s, l) (memcpy(p, s, l), p += (l))</div><div class='del'>-	    APPEND(bold, sizeof(bold)-1);</div><div class='del'>-	    APPEND(traceback, bold_part);</div><div class='del'>-	    APPEND(reset, sizeof(reset)-1);</div><div class='del'>-	    APPEND(traceback + bold_part, sizeof(traceback)-bold_part-1);</div><div class='add'>+            APPEND(bold, sizeof(bold)-1);</div><div class='add'>+            APPEND(traceback, bold_part);</div><div class='add'>+            APPEND(reset, sizeof(reset)-1);</div><div class='add'>+            APPEND(traceback + bold_part, sizeof(traceback)-bold_part-1);</div><div class='ctx'> #undef APPEND</div><div class='del'>-	    len = p - (msg = buff);</div><div class='del'>-	}</div><div class='del'>-	write_warn2(str, msg, len);</div><div class='del'>-        show_cause(errinfo, str, highlight, reverse);</div><div class='del'>-	print_backtrace(eclass, errat, str, TRUE);</div><div class='del'>-	print_errinfo(eclass, errat, emesg, str, highlight!=0);</div><div class='add'>+            len = p - (msg = buff);</div><div class='add'>+        }</div><div class='add'>+        write_warn2(str, msg, len);</div><div class='add'>+        show_cause(errinfo, str, opt, highlight, reverse, backtrace_limit, &amp;shown_causes);</div><div class='add'>+        print_backtrace(eclass, errat, str, TRUE, backtrace_limit);</div><div class='add'>+        print_errinfo(eclass, errat, emesg, str, RTEST(highlight));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	print_errinfo(eclass, errat, emesg, str, highlight!=0);</div><div class='del'>-	print_backtrace(eclass, errat, str, FALSE);</div><div class='del'>-        show_cause(errinfo, str, highlight, reverse);</div><div class='add'>+        print_errinfo(eclass, errat, emesg, str, RTEST(highlight));</div><div class='add'>+        print_backtrace(eclass, errat, str, FALSE, backtrace_limit);</div><div class='add'>+        show_cause(errinfo, str, opt, highlight, reverse, backtrace_limit, &amp;shown_causes);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_ec_error_print(rb_execution_context_t * volatile ec, volatile VALUE errinfo)</div><div class='add'>+static void</div><div class='add'>+rb_ec_error_print_detailed(rb_execution_context_t *const ec, const VALUE errinfo, const VALUE str, VALUE emesg0)</div><div class='ctx'> {</div><div class='ctx'>     volatile uint8_t raised_flag = ec-&gt;raised_flag;</div><div class='ctx'>     volatile VALUE errat = Qundef;</div><div class='del'>-    volatile VALUE emesg = Qundef;</div><div class='add'>+    volatile bool written = false;</div><div class='add'>+    volatile VALUE emesg = emesg0;</div><div class='add'>+</div><div class='add'>+    VALUE opt = rb_hash_new();</div><div class='add'>+    VALUE highlight = rb_stderr_tty_p() ? Qtrue : Qfalse;</div><div class='add'>+    rb_hash_aset(opt, ID2SYM(rb_intern_const("highlight")), highlight);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(errinfo))</div><div class='del'>-	return;</div><div class='add'>+        return;</div><div class='ctx'>     rb_ec_raised_clear(ec);</div><div class='ctx'> </div><div class='ctx'>     EC_PUSH_TAG(ec);</div><div class='ctx'>     if (EC_EXEC_TAG() == TAG_NONE) {</div><div class='del'>-	errat = rb_get_backtrace(errinfo);</div><div class='add'>+        errat = rb_get_backtrace(errinfo);</div><div class='ctx'>     }</div><div class='del'>-    if (emesg == Qundef) {</div><div class='del'>-	emesg = Qnil;</div><div class='del'>-	emesg = rb_get_message(errinfo);</div><div class='add'>+    if (UNDEF_P(emesg)) {</div><div class='add'>+        emesg = Qnil;</div><div class='add'>+        emesg = rb_get_detailed_message(errinfo, opt);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    rb_error_write(errinfo, emesg, errat, Qnil, Qnil, Qnil);</div><div class='add'>+    if (!written) {</div><div class='add'>+        written = true;</div><div class='add'>+        rb_error_write(errinfo, emesg, errat, str, opt, highlight, Qfalse);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     EC_POP_TAG();</div><div class='ctx'>     ec-&gt;errinfo = errinfo;</div><div class='ctx'>     rb_ec_raised_set(ec, raised_flag);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+rb_ec_error_print(rb_execution_context_t *volatile ec, volatile VALUE errinfo)</div><div class='add'>+{</div><div class='add'>+    rb_ec_error_print_detailed(ec, errinfo, Qnil, Qundef);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #define undef_mesg_for(v, k) rb_fstring_lit("undefined"v" method `%1$s' for "k" `%2$s'")</div><div class='ctx'> #define undef_mesg(v) ( \</div><div class='del'>-	is_mod ? \</div><div class='del'>-	undef_mesg_for(v, "module") : \</div><div class='del'>-	undef_mesg_for(v, "class"))</div><div class='add'>+        is_mod ? \</div><div class='add'>+        undef_mesg_for(v, "module") : \</div><div class='add'>+        undef_mesg_for(v, "class"))</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_print_undef(VALUE klass, ID id, rb_method_visibility_t visi)</div><div class='hunk'>@@ -345,9 +414,9 @@ rb_print_undef_str(VALUE klass, VALUE name)</div><div class='ctx'> </div><div class='ctx'> #define inaccessible_mesg_for(v, k) rb_fstring_lit("method `%1$s' for "k" `%2$s' is "v)</div><div class='ctx'> #define inaccessible_mesg(v) ( \</div><div class='del'>-	is_mod ? \</div><div class='del'>-	inaccessible_mesg_for(v, "module") : \</div><div class='del'>-	inaccessible_mesg_for(v, "class"))</div><div class='add'>+        is_mod ? \</div><div class='add'>+        inaccessible_mesg_for(v, "module") : \</div><div class='add'>+        inaccessible_mesg_for(v, "class"))</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_print_inaccessible(VALUE klass, ID id, rb_method_visibility_t visi)</div><div class='hunk'>@@ -357,8 +426,8 @@ rb_print_inaccessible(VALUE klass, ID id, rb_method_visibility_t visi)</div><div class='ctx'>     switch (visi &amp; METHOD_VISI_MASK) {</div><div class='ctx'>       case METHOD_VISI_UNDEF:</div><div class='ctx'>       case METHOD_VISI_PUBLIC:    mesg = inaccessible_mesg(""); break;</div><div class='del'>-      case METHOD_VISI_PRIVATE:   mesg = inaccessible_mesg(" private"); break;</div><div class='del'>-      case METHOD_VISI_PROTECTED: mesg = inaccessible_mesg(" protected"); break;</div><div class='add'>+      case METHOD_VISI_PRIVATE:   mesg = inaccessible_mesg("private"); break;</div><div class='add'>+      case METHOD_VISI_PROTECTED: mesg = inaccessible_mesg("protected"); break;</div><div class='ctx'>       default: UNREACHABLE;</div><div class='ctx'>     }</div><div class='ctx'>     rb_name_err_raise_str(mesg, klass, ID2SYM(id));</div><div class='hunk'>@@ -371,67 +440,109 @@ sysexit_status(VALUE err)</div><div class='ctx'>     return NUM2INT(st);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+enum {</div><div class='add'>+    EXITING_WITH_MESSAGE = 1,</div><div class='add'>+    EXITING_WITH_STATUS = 2,</div><div class='add'>+    EXITING_WITH_SIGNAL = 4</div><div class='add'>+};</div><div class='add'>+static int</div><div class='add'>+exiting_split(VALUE errinfo, volatile int *exitcode, volatile int *sigstatus)</div><div class='add'>+{</div><div class='add'>+    int ex = EXIT_SUCCESS;</div><div class='add'>+    VALUE signo;</div><div class='add'>+    int sig = 0;</div><div class='add'>+    int result = 0;</div><div class='add'>+</div><div class='add'>+    if (NIL_P(errinfo)) return 0;</div><div class='add'>+</div><div class='add'>+    if (THROW_DATA_P(errinfo)) {</div><div class='add'>+        int throw_state = ((const struct vm_throw_data *)errinfo)-&gt;throw_state;</div><div class='add'>+        ex = throw_state &amp; VM_THROW_STATE_MASK;</div><div class='add'>+        result |= EXITING_WITH_STATUS;</div><div class='add'>+    }</div><div class='add'>+    else if (rb_obj_is_kind_of(errinfo, rb_eSystemExit)) {</div><div class='add'>+        ex = sysexit_status(errinfo);</div><div class='add'>+        result |= EXITING_WITH_STATUS;</div><div class='add'>+    }</div><div class='add'>+    else if (rb_obj_is_kind_of(errinfo, rb_eSignal)) {</div><div class='add'>+        signo = rb_ivar_get(errinfo, id_signo);</div><div class='add'>+        sig = FIX2INT(signo);</div><div class='add'>+        result |= EXITING_WITH_SIGNAL;</div><div class='add'>+        /* no message when exiting by signal */</div><div class='add'>+        if (signo == INT2FIX(SIGSEGV) || !rb_obj_is_instance_of(errinfo, rb_eSignal))</div><div class='add'>+            /* except for SEGV and subclasses */</div><div class='add'>+            result |= EXITING_WITH_MESSAGE;</div><div class='add'>+    }</div><div class='add'>+    else if (rb_obj_is_kind_of(errinfo, rb_eSystemCallError) &amp;&amp;</div><div class='add'>+        FIXNUM_P(signo = rb_attr_get(errinfo, id_signo))) {</div><div class='add'>+        sig = FIX2INT(signo);</div><div class='add'>+        result |= EXITING_WITH_SIGNAL;</div><div class='add'>+        /* no message when exiting by error to be mapped to signal */</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ex = EXIT_FAILURE;</div><div class='add'>+        result |= EXITING_WITH_STATUS | EXITING_WITH_MESSAGE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (exitcode &amp;&amp; (result &amp; EXITING_WITH_STATUS))</div><div class='add'>+        *exitcode = ex;</div><div class='add'>+    if (sigstatus &amp;&amp; (result &amp; EXITING_WITH_SIGNAL))</div><div class='add'>+        *sigstatus = sig;</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #define unknown_longjmp_status(status) \</div><div class='ctx'>     rb_bug("Unknown longjmp status %d", status)</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-error_handle(int ex)</div><div class='add'>+error_handle(rb_execution_context_t *ec, VALUE errinfo, enum ruby_tag_type ex)</div><div class='ctx'> {</div><div class='ctx'>     int status = EXIT_FAILURE;</div><div class='del'>-    rb_execution_context_t *ec = GET_EC();</div><div class='ctx'> </div><div class='ctx'>     if (rb_ec_set_raised(ec))</div><div class='del'>-	return EXIT_FAILURE;</div><div class='add'>+        return EXIT_FAILURE;</div><div class='ctx'>     switch (ex &amp; TAG_MASK) {</div><div class='ctx'>       case 0:</div><div class='del'>-	status = EXIT_SUCCESS;</div><div class='del'>-	break;</div><div class='add'>+        status = EXIT_SUCCESS;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case TAG_RETURN:</div><div class='del'>-	error_pos(Qnil);</div><div class='del'>-	warn_print("unexpected return\n");</div><div class='del'>-	break;</div><div class='add'>+        error_pos(Qnil);</div><div class='add'>+        warn_print("unexpected return\n");</div><div class='add'>+        break;</div><div class='ctx'>       case TAG_NEXT:</div><div class='del'>-	error_pos(Qnil);</div><div class='del'>-	warn_print("unexpected next\n");</div><div class='del'>-	break;</div><div class='add'>+        error_pos(Qnil);</div><div class='add'>+        warn_print("unexpected next\n");</div><div class='add'>+        break;</div><div class='ctx'>       case TAG_BREAK:</div><div class='del'>-	error_pos(Qnil);</div><div class='del'>-	warn_print("unexpected break\n");</div><div class='del'>-	break;</div><div class='add'>+        error_pos(Qnil);</div><div class='add'>+        warn_print("unexpected break\n");</div><div class='add'>+        break;</div><div class='ctx'>       case TAG_REDO:</div><div class='del'>-	error_pos(Qnil);</div><div class='del'>-	warn_print("unexpected redo\n");</div><div class='del'>-	break;</div><div class='add'>+        error_pos(Qnil);</div><div class='add'>+        warn_print("unexpected redo\n");</div><div class='add'>+        break;</div><div class='ctx'>       case TAG_RETRY:</div><div class='del'>-	error_pos(Qnil);</div><div class='del'>-	warn_print("retry outside of rescue clause\n");</div><div class='del'>-	break;</div><div class='add'>+        error_pos(Qnil);</div><div class='add'>+        warn_print("retry outside of rescue clause\n");</div><div class='add'>+        break;</div><div class='ctx'>       case TAG_THROW:</div><div class='del'>-	/* TODO: fix me */</div><div class='del'>-	error_pos(Qnil);</div><div class='del'>-	warn_print("unexpected throw\n");</div><div class='del'>-	break;</div><div class='del'>-      case TAG_RAISE: {</div><div class='del'>-	VALUE errinfo = ec-&gt;errinfo;</div><div class='del'>-	if (rb_obj_is_kind_of(errinfo, rb_eSystemExit)) {</div><div class='del'>-	    status = sysexit_status(errinfo);</div><div class='del'>-	}</div><div class='del'>-	else if (rb_obj_is_instance_of(errinfo, rb_eSignal) &amp;&amp;</div><div class='del'>-		 rb_ivar_get(errinfo, id_signo) != INT2FIX(SIGSEGV)) {</div><div class='del'>-	    /* no message when exiting by signal */</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_ec_error_print(ec, errinfo);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-      }</div><div class='add'>+        /* TODO: fix me */</div><div class='add'>+        error_pos(Qnil);</div><div class='add'>+        warn_print("unexpected throw\n");</div><div class='add'>+        break;</div><div class='add'>+      case TAG_RAISE:</div><div class='add'>+        if (!(exiting_split(errinfo, &amp;status, NULL) &amp; EXITING_WITH_MESSAGE)) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        /* fallthrough */</div><div class='ctx'>       case TAG_FATAL:</div><div class='del'>-	error_print(ec);</div><div class='del'>-	break;</div><div class='add'>+        rb_ec_error_print(ec, errinfo);</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	unknown_longjmp_status(ex);</div><div class='del'>-	break;</div><div class='add'>+        unknown_longjmp_status(ex);</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'>     rb_ec_reset_raised(ec);</div><div class='ctx'>     return status;</div><div class='head'>diff --git a/eval_intern.h b/eval_intern.h<br/>index f4a48d8171..6cbaa51361 100644<br/>--- a/<a href='/ruby.git/tree/eval_intern.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>eval_intern.h</a><br/>+++ b/<a href='/ruby.git/tree/eval_intern.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>eval_intern.h</a></div><div class='hunk'>@@ -33,7 +33,11 @@ pass_passed_block_handler(rb_execution_context_t *ec)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;setjmp.h&gt;</div><div class='add'>+#if defined(__wasm__) &amp;&amp; !defined(__EMSCRIPTEN__)</div><div class='add'>+# include "wasm/setjmp.h"</div><div class='add'>+#else</div><div class='add'>+# include &lt;setjmp.h&gt;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #ifdef __APPLE__</div><div class='ctx'> # ifdef HAVE_CRT_EXTERNS_H</div><div class='hunk'>@@ -91,40 +95,12 @@ extern int select_large_fdset(int, fd_set *, fd_set *, fd_set *, struct timeval</div><div class='ctx'> </div><div class='ctx'> #include &lt;sys/stat.h&gt;</div><div class='ctx'> </div><div class='del'>-#ifdef _MSC_VER</div><div class='del'>-#define SAVE_ROOT_JMPBUF_BEFORE_STMT \</div><div class='del'>-    __try {</div><div class='del'>-#define SAVE_ROOT_JMPBUF_AFTER_STMT \</div><div class='del'>-    } \</div><div class='del'>-    __except (GetExceptionCode() == EXCEPTION_STACK_OVERFLOW ? \</div><div class='del'>-	      (rb_ec_raised_set(GET_EC(), RAISED_STACKOVERFLOW), \</div><div class='del'>-	       raise(SIGSEGV), \</div><div class='del'>-	       EXCEPTION_EXECUTE_HANDLER) : \</div><div class='del'>-	      EXCEPTION_CONTINUE_SEARCH) { \</div><div class='del'>-	/* never reaches here */ \</div><div class='del'>-    }</div><div class='del'>-#elif defined(__MINGW32__)</div><div class='del'>-LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);</div><div class='del'>-#define SAVE_ROOT_JMPBUF_BEFORE_STMT \</div><div class='del'>-    do { \</div><div class='del'>-	PVOID _handler = AddVectoredExceptionHandler(1, rb_w32_stack_overflow_handler);</div><div class='del'>-</div><div class='del'>-#define SAVE_ROOT_JMPBUF_AFTER_STMT \</div><div class='del'>-	RemoveVectoredExceptionHandler(_handler); \</div><div class='del'>-    } while (0);</div><div class='del'>-#else</div><div class='del'>-#define SAVE_ROOT_JMPBUF_BEFORE_STMT</div><div class='del'>-#define SAVE_ROOT_JMPBUF_AFTER_STMT</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> #define SAVE_ROOT_JMPBUF(th, stmt) do \</div><div class='del'>-  if (ruby_setjmp((th)-&gt;root_jmpbuf) == 0) { \</div><div class='del'>-      SAVE_ROOT_JMPBUF_BEFORE_STMT \</div><div class='add'>+  if (true) { \</div><div class='ctx'>       stmt; \</div><div class='del'>-      SAVE_ROOT_JMPBUF_AFTER_STMT \</div><div class='ctx'>   } \</div><div class='del'>-  else { \</div><div class='del'>-      rb_fiber_start(); \</div><div class='add'>+  else if (th) { /* suppress unused-variable warning */ \</div><div class='ctx'>   } while (0)</div><div class='ctx'> </div><div class='ctx'> #define EC_PUSH_TAG(ec) do { \</div><div class='hunk'>@@ -132,7 +108,8 @@ LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);</div><div class='ctx'>   struct rb_vm_tag _tag; \</div><div class='ctx'>   _tag.state = TAG_NONE; \</div><div class='ctx'>   _tag.tag = Qundef; \</div><div class='del'>-  _tag.prev = _ec-&gt;tag;</div><div class='add'>+  _tag.prev = _ec-&gt;tag; \</div><div class='add'>+  _tag.lock_rec = rb_ec_vm_lock_rec(_ec); \</div><div class='ctx'> </div><div class='ctx'> #define EC_POP_TAG() \</div><div class='ctx'>   _ec-&gt;tag = _tag.prev; \</div><div class='hunk'>@@ -143,7 +120,7 @@ LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);</div><div class='ctx'> </div><div class='ctx'> #define EC_REPUSH_TAG() (void)(_ec-&gt;tag = &amp;_tag)</div><div class='ctx'> </div><div class='del'>-#if defined __GNUC__ &amp;&amp; __GNUC__ == 4 &amp;&amp; (__GNUC_MINOR__ &gt;= 6 &amp;&amp; __GNUC_MINOR__ &lt;= 8) || __clang__</div><div class='add'>+#if defined __GNUC__ &amp;&amp; __GNUC__ == 4 &amp;&amp; (__GNUC_MINOR__ &gt;= 6 &amp;&amp; __GNUC_MINOR__ &lt;= 8) || defined __clang__</div><div class='ctx'> /* This macro prevents GCC 4.6--4.8 from emitting maybe-uninitialized warnings.</div><div class='ctx'>  * This macro also prevents Clang from dumping core in EC_EXEC_TAG().</div><div class='ctx'>  * (I confirmed Clang 4.0.1 and 5.0.0.)</div><div class='hunk'>@@ -157,29 +134,23 @@ LONG WINAPI rb_w32_stack_overflow_handler(struct _EXCEPTION_POINTERS *);</div><div class='ctx'> # define VAR_NOCLOBBERED(var) var</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(USE_UNALIGNED_MEMBER_ACCESS) &amp;&amp; USE_UNALIGNED_MEMBER_ACCESS &amp;&amp; \</div><div class='del'>-    defined(__clang__)</div><div class='del'>-# define UNALIGNED_MEMBER_ACCESS(expr) __extension__({ \</div><div class='del'>-    COMPILER_WARNING_PUSH; \</div><div class='del'>-    COMPILER_WARNING_IGNORED(-Waddress-of-packed-member); \</div><div class='del'>-    typeof(expr) unaligned_member_access_result = (expr); \</div><div class='del'>-    COMPILER_WARNING_POP; \</div><div class='del'>-    unaligned_member_access_result; \</div><div class='del'>-})</div><div class='del'>-#else</div><div class='del'>-# define UNALIGNED_MEMBER_ACCESS(expr) expr</div><div class='del'>-#endif</div><div class='del'>-#define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&amp;(ptr)-&gt;mem)</div><div class='del'>-</div><div class='del'>-#undef RB_OBJ_WRITE</div><div class='del'>-#define RB_OBJ_WRITE(a, slot, b) UNALIGNED_MEMBER_ACCESS(rb_obj_write((VALUE)(a), (VALUE *)(slot), (VALUE)(b), __FILE__, __LINE__))</div><div class='add'>+static inline void</div><div class='add'>+rb_ec_vm_lock_rec_check(const rb_execution_context_t *ec, unsigned int recorded_lock_rec)</div><div class='add'>+{</div><div class='add'>+    unsigned int current_lock_rec = rb_ec_vm_lock_rec(ec);</div><div class='add'>+    if (current_lock_rec != recorded_lock_rec) {</div><div class='add'>+        rb_ec_vm_lock_rec_release(ec, recorded_lock_rec, current_lock_rec);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> /* clear ec-&gt;tag-&gt;state, and return the value */</div><div class='ctx'> static inline int</div><div class='ctx'> rb_ec_tag_state(const rb_execution_context_t *ec)</div><div class='ctx'> {</div><div class='del'>-    enum ruby_tag_type state = ec-&gt;tag-&gt;state;</div><div class='del'>-    ec-&gt;tag-&gt;state = TAG_NONE;</div><div class='add'>+    struct rb_vm_tag *tag = ec-&gt;tag;</div><div class='add'>+    enum ruby_tag_type state = tag-&gt;state;</div><div class='add'>+    tag-&gt;state = TAG_NONE;</div><div class='add'>+    rb_ec_vm_lock_rec_check(ec, tag-&gt;lock_rec);</div><div class='ctx'>     return state;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -206,11 +177,30 @@ rb_ec_tag_jump(const rb_execution_context_t *ec, enum ruby_tag_type st)</div><div class='ctx'> </div><div class='ctx'> #define CREF_FL_PUSHED_BY_EVAL IMEMO_FL_USER1</div><div class='ctx'> #define CREF_FL_OMOD_SHARED    IMEMO_FL_USER2</div><div class='add'>+#define CREF_FL_SINGLETON      IMEMO_FL_USER3</div><div class='add'>+</div><div class='add'>+static inline int CREF_SINGLETON(const rb_cref_t *cref);</div><div class='ctx'> </div><div class='ctx'> static inline VALUE</div><div class='ctx'> CREF_CLASS(const rb_cref_t *cref)</div><div class='ctx'> {</div><div class='del'>-    return cref-&gt;klass;</div><div class='add'>+    if (CREF_SINGLETON(cref)) {</div><div class='add'>+        return CLASS_OF(cref-&gt;klass_or_self);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return cref-&gt;klass_or_self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+CREF_CLASS_FOR_DEFINITION(const rb_cref_t *cref)</div><div class='add'>+{</div><div class='add'>+    if (CREF_SINGLETON(cref)) {</div><div class='add'>+        return rb_singleton_class(cref-&gt;klass_or_self);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return cref-&gt;klass_or_self;</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline rb_cref_t *</div><div class='hunk'>@@ -250,6 +240,18 @@ CREF_PUSHED_BY_EVAL_SET(rb_cref_t *cref)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline int</div><div class='add'>+CREF_SINGLETON(const rb_cref_t *cref)</div><div class='add'>+{</div><div class='add'>+    return cref-&gt;flags &amp; CREF_FL_SINGLETON;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+CREF_SINGLETON_SET(rb_cref_t *cref)</div><div class='add'>+{</div><div class='add'>+    cref-&gt;flags |= CREF_FL_SINGLETON;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='ctx'> CREF_OMOD_SHARED(const rb_cref_t *cref)</div><div class='ctx'> {</div><div class='ctx'>     return cref-&gt;flags &amp; CREF_FL_OMOD_SHARED;</div><div class='hunk'>@@ -267,9 +269,6 @@ CREF_OMOD_SHARED_UNSET(rb_cref_t *cref)</div><div class='ctx'>     cref-&gt;flags &amp;= ~CREF_FL_OMOD_SHARED;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void rb_thread_cleanup(void);</div><div class='del'>-void rb_thread_wait_other_threads(void);</div><div class='del'>-</div><div class='ctx'> enum {</div><div class='ctx'>     RAISED_EXCEPTION = 1,</div><div class='ctx'>     RAISED_STACKOVERFLOW = 2,</div><div class='hunk'>@@ -288,31 +287,38 @@ VALUE rb_make_exception(int argc, const VALUE *argv);</div><div class='ctx'> </div><div class='ctx'> NORETURN(void rb_method_name_error(VALUE, VALUE));</div><div class='ctx'> </div><div class='del'>-NORETURN(void rb_fiber_start(void));</div><div class='add'>+NORETURN(void rb_fiber_start(rb_fiber_t*));</div><div class='ctx'> </div><div class='ctx'> NORETURN(void rb_print_undef(VALUE, ID, rb_method_visibility_t));</div><div class='ctx'> NORETURN(void rb_print_undef_str(VALUE, VALUE));</div><div class='ctx'> NORETURN(void rb_print_inaccessible(VALUE, ID, rb_method_visibility_t));</div><div class='ctx'> NORETURN(void rb_vm_localjump_error(const char *,VALUE, int));</div><div class='del'>-#if 0</div><div class='ctx'> NORETURN(void rb_vm_jump_tag_but_local_jump(int));</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> VALUE rb_vm_make_jump_tag_but_local_jump(int state, VALUE val);</div><div class='ctx'> rb_cref_t *rb_vm_cref(void);</div><div class='ctx'> rb_cref_t *rb_vm_cref_replace_with_duplicated_cref(void);</div><div class='ctx'> VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, VALUE block_handler, VALUE filename);</div><div class='ctx'> void rb_vm_set_progname(VALUE filename);</div><div class='del'>-void rb_thread_terminate_all(void);</div><div class='ctx'> VALUE rb_vm_cbase(void);</div><div class='ctx'> </div><div class='ctx'> /* vm_backtrace.c */</div><div class='ctx'> VALUE rb_ec_backtrace_object(const rb_execution_context_t *ec);</div><div class='ctx'> VALUE rb_ec_backtrace_str_ary(const rb_execution_context_t *ec, long lev, long n);</div><div class='add'>+VALUE rb_ec_backtrace_location_ary(const rb_execution_context_t *ec, long lev, long n, bool skip_internal);</div><div class='ctx'> </div><div class='ctx'> #ifndef CharNext		/* defined as CharNext[AW] on Windows. */</div><div class='ctx'> # ifdef HAVE_MBLEN</div><div class='del'>-#  define CharNext(p) ((p) + mblen((p), RUBY_MBCHAR_MAXSIZE))</div><div class='add'>+#  define CharNext(p) rb_char_next(p)</div><div class='add'>+static inline char *</div><div class='add'>+rb_char_next(const char *p)</div><div class='add'>+{</div><div class='add'>+    if (p) {</div><div class='add'>+        int len = mblen(p, RUBY_MBCHAR_MAXSIZE);</div><div class='add'>+        p += len &gt; 0 ? len : 1;</div><div class='add'>+    }</div><div class='add'>+    return (char *)p;</div><div class='add'>+}</div><div class='ctx'> # else</div><div class='ctx'> #  define CharNext(p) ((p) + 1)</div><div class='ctx'> # endif</div><div class='hunk'>@@ -323,9 +329,9 @@ static inline void</div><div class='ctx'> translit_char(char *p, int from, int to)</div><div class='ctx'> {</div><div class='ctx'>     while (*p) {</div><div class='del'>-	if ((unsigned char)*p == from)</div><div class='del'>-	    *p = to;</div><div class='del'>-	p = CharNext(p);</div><div class='add'>+        if ((unsigned char)*p == from)</div><div class='add'>+            *p = to;</div><div class='add'>+        p = CharNext(p);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='head'>diff --git a/eval_jump.c b/eval_jump.c<br/>index a74aed959e..e8e74f4e70 100644<br/>--- a/<a href='/ruby.git/tree/eval_jump.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>eval_jump.c</a><br/>+++ b/<a href='/ruby.git/tree/eval_jump.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>eval_jump.c</a></div><div class='hunk'>@@ -35,12 +35,12 @@ rb_call_end_proc(VALUE data)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_f_at_exit(void)</div><div class='add'>+rb_f_at_exit(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE proc;</div><div class='ctx'> </div><div class='ctx'>     if (!rb_block_given_p()) {</div><div class='del'>-	rb_raise(rb_eArgError, "called without a block");</div><div class='add'>+        rb_raise(rb_eArgError, "called without a block");</div><div class='ctx'>     }</div><div class='ctx'>     proc = rb_block_proc();</div><div class='ctx'>     rb_set_end_proc(rb_call_end_proc, proc);</div><div class='hunk'>@@ -48,7 +48,7 @@ rb_f_at_exit(void)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct end_proc_data {</div><div class='del'>-    void (*func) ();</div><div class='add'>+    void (*func) (VALUE);</div><div class='ctx'>     VALUE data;</div><div class='ctx'>     struct end_proc_data *next;</div><div class='ctx'> };</div><div class='hunk'>@@ -63,10 +63,10 @@ rb_set_end_proc(void (*func)(VALUE), VALUE data)</div><div class='ctx'>     rb_thread_t *th = GET_THREAD();</div><div class='ctx'> </div><div class='ctx'>     if (th-&gt;top_wrapper) {</div><div class='del'>-	list = &amp;ephemeral_end_procs;</div><div class='add'>+        list = &amp;ephemeral_end_procs;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	list = &amp;end_procs;</div><div class='add'>+        list = &amp;end_procs;</div><div class='ctx'>     }</div><div class='ctx'>     link-&gt;next = *list;</div><div class='ctx'>     link-&gt;func = func;</div><div class='hunk'>@@ -81,13 +81,13 @@ rb_mark_end_proc(void)</div><div class='ctx'> </div><div class='ctx'>     link = end_procs;</div><div class='ctx'>     while (link) {</div><div class='del'>-	rb_gc_mark(link-&gt;data);</div><div class='del'>-	link = link-&gt;next;</div><div class='add'>+        rb_gc_mark(link-&gt;data);</div><div class='add'>+        link = link-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'>     link = ephemeral_end_procs;</div><div class='ctx'>     while (link) {</div><div class='del'>-	rb_gc_mark(link-&gt;data);</div><div class='del'>-	link = link-&gt;next;</div><div class='add'>+        rb_gc_mark(link-&gt;data);</div><div class='add'>+        link = link-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -99,33 +99,32 @@ exec_end_procs_chain(struct end_proc_data *volatile *procs, VALUE *errp)</div><div class='ctx'>     VALUE errinfo = *errp;</div><div class='ctx'> </div><div class='ctx'>     while ((link = *procs) != 0) {</div><div class='del'>-	*procs = link-&gt;next;</div><div class='del'>-	endproc = *link;</div><div class='del'>-	xfree(link);</div><div class='del'>-	(*endproc.func) (endproc.data);</div><div class='del'>-	*errp = errinfo;</div><div class='add'>+        *procs = link-&gt;next;</div><div class='add'>+        endproc = *link;</div><div class='add'>+        xfree(link);</div><div class='add'>+        (*endproc.func) (endproc.data);</div><div class='add'>+        *errp = errinfo;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_exec_end_proc(void)</div><div class='add'>+static void</div><div class='add'>+rb_ec_exec_end_proc(rb_execution_context_t * ec)</div><div class='ctx'> {</div><div class='ctx'>     enum ruby_tag_type state;</div><div class='del'>-    rb_execution_context_t * volatile ec = GET_EC();</div><div class='ctx'>     volatile VALUE errinfo = ec-&gt;errinfo;</div><div class='ctx'> </div><div class='ctx'>     EC_PUSH_TAG(ec);</div><div class='ctx'>     if ((state = EC_EXEC_TAG()) == TAG_NONE) {</div><div class='ctx'>       again:</div><div class='del'>-	exec_end_procs_chain(&amp;ephemeral_end_procs, &amp;ec-&gt;errinfo);</div><div class='del'>-	exec_end_procs_chain(&amp;end_procs, &amp;ec-&gt;errinfo);</div><div class='add'>+        exec_end_procs_chain(&amp;ephemeral_end_procs, &amp;ec-&gt;errinfo);</div><div class='add'>+        exec_end_procs_chain(&amp;end_procs, &amp;ec-&gt;errinfo);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	EC_TMPPOP_TAG();</div><div class='del'>-	error_handle(state);</div><div class='del'>-	if (!NIL_P(ec-&gt;errinfo)) errinfo = ec-&gt;errinfo;</div><div class='del'>-	EC_REPUSH_TAG();</div><div class='del'>-	goto again;</div><div class='add'>+        EC_TMPPOP_TAG();</div><div class='add'>+        error_handle(ec, ec-&gt;errinfo, state);</div><div class='add'>+        if (!NIL_P(ec-&gt;errinfo)) errinfo = ec-&gt;errinfo;</div><div class='add'>+        EC_REPUSH_TAG();</div><div class='add'>+        goto again;</div><div class='ctx'>     }</div><div class='ctx'>     EC_POP_TAG();</div><div class='ctx'> </div><div class='head'>diff --git a/ext/-test-/RUBY_ALIGNOF/c.c b/ext/-test-/RUBY_ALIGNOF/c.c<br/>new file mode 100644<br/>index 0000000000..7a9f7cb498<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/RUBY_ALIGNOF/c.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/RUBY_ALIGNOF/c.c</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+#include "ruby.h"</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+</div><div class='add'>+struct T {</div><div class='add'>+    char _;</div><div class='add'>+    double t;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_STATIC_ASSERT(RUBY_ALIGNOF, RUBY_ALIGNOF(double) == offsetof(struct T, t));</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_RUBY_ALIGNOF(void)</div><div class='add'>+{</div><div class='add'>+    // Windows linker mandates this symbol to exist.</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/RUBY_ALIGNOF/cpp.cpp b/ext/-test-/RUBY_ALIGNOF/cpp.cpp<br/>new file mode 100644<br/>index 0000000000..ed76d49b9f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/RUBY_ALIGNOF/cpp.cpp?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/RUBY_ALIGNOF/cpp.cpp</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+#include "ruby.h"</div><div class='add'>+#include &lt;cstddef&gt;</div><div class='add'>+</div><div class='add'>+struct T {</div><div class='add'>+    char _;</div><div class='add'>+    double t;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_STATIC_ASSERT(RUBY_ALIGNOF, RUBY_ALIGNOF(double) == offsetof(T, t));</div><div class='head'>diff --git a/ext/-test-/RUBY_ALIGNOF/depend b/ext/-test-/RUBY_ALIGNOF/depend<br/>new file mode 100644<br/>index 0000000000..21ef8c6dd0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/RUBY_ALIGNOF/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/RUBY_ALIGNOF/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+c.o: $(RUBY_EXTCONF_H)</div><div class='add'>+c.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+c.o: $(hdrdir)/ruby.h</div><div class='add'>+c.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+c.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+c.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+c.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+c.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+c.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+c.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+c.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+c.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+c.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+c.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+c.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+c.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+c.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+c.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+c.o: $(hdrdir)/ruby/st.h</div><div class='add'>+c.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+c.o: c.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/RUBY_ALIGNOF/extconf.rb b/ext/-test-/RUBY_ALIGNOF/extconf.rb<br/>new file mode 100644<br/>index 0000000000..98a370e987<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/RUBY_ALIGNOF/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/RUBY_ALIGNOF/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+$objs = %W"c.#$OBJEXT"</div><div class='add'>+</div><div class='add'>+$objs &lt;&lt; "cpp.#$OBJEXT" if MakeMakefile['C++'].have_devel?</div><div class='add'>+</div><div class='add'>+create_makefile("-test-/RUBY_ALIGNOF")</div><div class='head'>diff --git a/ext/-test-/abi/abi.c b/ext/-test-/abi/abi.c<br/>new file mode 100644<br/>index 0000000000..923e0f67b8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/abi/abi.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/abi/abi.c</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+#include &lt;limits.h&gt;</div><div class='add'>+</div><div class='add'>+unsigned long long</div><div class='add'>+ruby_abi_version(void)</div><div class='add'>+{</div><div class='add'>+    return ULONG_MAX;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_abi(void)</div><div class='add'>+{}</div><div class='head'>diff --git a/ext/-test-/abi/extconf.rb b/ext/-test-/abi/extconf.rb<br/>new file mode 100644<br/>index 0000000000..3b090b7553<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/abi/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/abi/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+return unless RUBY_PATCHLEVEL &lt; 0</div><div class='add'>+require_relative "../auto_ext.rb"</div><div class='add'>+auto_ext(inc: true)</div><div class='head'>diff --git a/ext/-test-/arith_seq/beg_len_step/beg_len_step.c b/ext/-test-/arith_seq/beg_len_step/beg_len_step.c<br/>new file mode 100644<br/>index 0000000000..40c8cbee82<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/arith_seq/beg_len_step/beg_len_step.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/arith_seq/beg_len_step/beg_len_step.c</a></div><div class='hunk'>@@ -0,0 +1,19 @@</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+arith_seq_s_beg_len_step(VALUE mod, VALUE obj, VALUE len, VALUE err)</div><div class='add'>+{</div><div class='add'>+  VALUE r;</div><div class='add'>+  long beg, len2, step;</div><div class='add'>+</div><div class='add'>+  r = rb_arithmetic_sequence_beg_len_step(obj, &amp;beg, &amp;len2, &amp;step, NUM2LONG(len), NUM2INT(err));</div><div class='add'>+</div><div class='add'>+  return rb_ary_new_from_args(4, r, LONG2NUM(beg), LONG2NUM(len2), LONG2NUM(step));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_beg_len_step(void)</div><div class='add'>+{</div><div class='add'>+    VALUE cArithSeq = rb_path2class("Enumerator::ArithmeticSequence");</div><div class='add'>+    rb_define_singleton_method(cArithSeq, "__beg_len_step__", arith_seq_s_beg_len_step, 3);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/arith_seq/beg_len_step/depend b/ext/-test-/arith_seq/beg_len_step/depend<br/>new file mode 100644<br/>index 0000000000..36a2c4c71b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/arith_seq/beg_len_step/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/arith_seq/beg_len_step/depend</a></div><div class='hunk'>@@ -0,0 +1,161 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+beg_len_step.o: $(RUBY_EXTCONF_H)</div><div class='add'>+beg_len_step.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/st.h</div><div class='add'>+beg_len_step.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+beg_len_step.o: beg_len_step.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/arith_seq/beg_len_step/extconf.rb b/ext/-test-/arith_seq/beg_len_step/extconf.rb<br/>new file mode 100644<br/>index 0000000000..e72b3ad01f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/arith_seq/beg_len_step/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/arith_seq/beg_len_step/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+create_makefile("-test-/arith_seq/beg_len_step")</div><div class='head'>diff --git a/ext/-test-/arith_seq/extract/depend b/ext/-test-/arith_seq/extract/depend<br/>new file mode 100644<br/>index 0000000000..57cbaa9a0c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/arith_seq/extract/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/arith_seq/extract/depend</a></div><div class='hunk'>@@ -0,0 +1,161 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+extract.o: $(RUBY_EXTCONF_H)</div><div class='add'>+extract.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/st.h</div><div class='add'>+extract.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+extract.o: extract.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/array/concat/depend b/ext/-test-/array/concat/depend<br/>new file mode 100644<br/>index 0000000000..79c833738e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/array/concat/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/array/concat/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+to_ary_concat.o: $(RUBY_EXTCONF_H)</div><div class='add'>+to_ary_concat.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/st.h</div><div class='add'>+to_ary_concat.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+to_ary_concat.o: to_ary_concat.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/array/concat/extconf.rb b/ext/-test-/array/concat/extconf.rb<br/>new file mode 100644<br/>index 0000000000..cdd79126c9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/array/concat/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/array/concat/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+create_makefile("-test-/array/to_ary_concat")</div><div class='head'>diff --git a/ext/-test-/array/concat/to_ary_concat.c b/ext/-test-/array/concat/to_ary_concat.c<br/>new file mode 100644<br/>index 0000000000..07a96d3907<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/array/concat/to_ary_concat.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/array/concat/to_ary_concat.c</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+#include "ruby.h"</div><div class='add'>+</div><div class='add'>+// Bar</div><div class='add'>+</div><div class='add'>+typedef struct {</div><div class='add'>+    int dummy;</div><div class='add'>+} Bar;</div><div class='add'>+</div><div class='add'>+static rb_data_type_t Bar_type = {</div><div class='add'>+    "Bar",</div><div class='add'>+    {NULL, RUBY_TYPED_DEFAULT_FREE, NULL },</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+Bar_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return TypedData_Wrap_Struct(klass, &amp;Bar_type, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+Bar_to_ary(VALUE _self)</div><div class='add'>+{</div><div class='add'>+    VALUE ary = rb_ary_new2(2);</div><div class='add'>+    VALUE foo = rb_ary_new2(0);</div><div class='add'>+    rb_ary_push(ary, foo);</div><div class='add'>+    rb_ary_push(ary, foo);</div><div class='add'>+    rb_ary_push(ary, foo);</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_to_ary_concat(void)</div><div class='add'>+{</div><div class='add'>+    VALUE mBug = rb_define_module("Bug");</div><div class='add'>+    VALUE bar = rb_define_class_under(mBug, "Bar", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(bar, Bar_alloc);</div><div class='add'>+    rb_define_method(bar, "to_ary", Bar_to_ary, 0);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/array/resize/depend b/ext/-test-/array/resize/depend<br/>index 177c527db2..49e0f346d3 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/array/resize/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/array/resize/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/array/resize/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/array/resize/depend</a></div><div class='hunk'>@@ -1,9 +1,158 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> resize.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> resize.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> resize.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> resize.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> resize.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+resize.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> resize.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> resize.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> resize.o: $(hdrdir)/ruby/st.h</div><div class='head'>diff --git a/ext/-test-/array/resize/resize.c b/ext/-test-/array/resize/resize.c<br/>index 08bcee3e7a..cfe910ebed 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/array/resize/resize.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/array/resize/resize.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/array/resize/resize.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/array/resize/resize.c</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> #include "ruby/ruby.h"</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ary_resize(VALUE ary, VALUE len)</div><div class='add'>+ary_resize(VALUE klass, VALUE ary, VALUE len)</div><div class='ctx'> {</div><div class='ctx'>     rb_ary_resize(ary, NUM2LONG(len));</div><div class='ctx'>     return ary;</div><div class='hunk'>@@ -10,5 +10,7 @@ ary_resize(VALUE ary, VALUE len)</div><div class='ctx'> void</div><div class='ctx'> Init_resize(void)</div><div class='ctx'> {</div><div class='del'>-    rb_define_method(rb_cArray, "__resize__", ary_resize, 1);</div><div class='add'>+    VALUE mBug = rb_define_module("Bug");</div><div class='add'>+    VALUE klass = rb_define_class_under(mBug, "Array", rb_cObject);</div><div class='add'>+    rb_define_singleton_method(klass, "__resize__", ary_resize, 2);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/auto_ext.rb b/ext/-test-/auto_ext.rb<br/>index 71606a9dd1..58c49c177b 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/auto_ext.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/auto_ext.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/auto_ext.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/auto_ext.rb</a></div><div class='hunk'>@@ -6,5 +6,6 @@ def auto_ext(feat = $0[%r[/ext/(-test-/.*)/extconf.rb\z], 1], inc: false)</div><div class='ctx'>   inits.delete("init")</div><div class='ctx'>   inits.map! {|s|"X(#{s})"}</div><div class='ctx'>   $defs &lt;&lt; "-DTEST_INIT_FUNCS(X)=\"#{inits.join(' ')}\""</div><div class='add'>+  create_header</div><div class='ctx'>   create_makefile(feat)</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/-test-/bignum/big2str.c b/ext/-test-/bignum/big2str.c<br/>index ec4bde2915..255e8ad729 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/bignum/big2str.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/big2str.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bignum/big2str.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bignum/big2str.c</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/bignum.h"</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> big(VALUE x)</div><div class='hunk'>@@ -12,7 +12,7 @@ big(VALUE x)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-big2str_generic(VALUE x, VALUE vbase)</div><div class='add'>+big2str_generic(VALUE klass, VALUE x, VALUE vbase)</div><div class='ctx'> {</div><div class='ctx'>     int base = NUM2INT(vbase);</div><div class='ctx'>     if (base &lt; 2 || 36 &lt; base)</div><div class='hunk'>@@ -23,7 +23,7 @@ big2str_generic(VALUE x, VALUE vbase)</div><div class='ctx'> #define POW2_P(x) (((x)&amp;((x)-1))==0)</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-big2str_poweroftwo(VALUE x, VALUE vbase)</div><div class='add'>+big2str_poweroftwo(VALUE klass, VALUE x, VALUE vbase)</div><div class='ctx'> {</div><div class='ctx'>     int base = NUM2INT(vbase);</div><div class='ctx'>     if (base &lt; 2 || 36 &lt; base || !POW2_P(base))</div><div class='hunk'>@@ -33,7 +33,7 @@ big2str_poweroftwo(VALUE x, VALUE vbase)</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='ctx'> static VALUE</div><div class='del'>-big2str_gmp(VALUE x, VALUE vbase)</div><div class='add'>+big2str_gmp(VALUE klass, VALUE x, VALUE vbase)</div><div class='ctx'> {</div><div class='ctx'>     int base = NUM2INT(vbase);</div><div class='ctx'>     if (base &lt; 2 || 36 &lt; base)</div><div class='hunk'>@@ -47,7 +47,7 @@ big2str_gmp(VALUE x, VALUE vbase)</div><div class='ctx'> void</div><div class='ctx'> Init_big2str(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    rb_define_method(rb_cInteger, "big2str_generic", big2str_generic, 1);</div><div class='del'>-    rb_define_method(rb_cInteger, "big2str_poweroftwo", big2str_poweroftwo, 1);</div><div class='del'>-    rb_define_method(rb_cInteger, "big2str_gmp", big2str_gmp, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "big2str_generic", big2str_generic, 2);</div><div class='add'>+    rb_define_singleton_method(klass, "big2str_poweroftwo", big2str_poweroftwo, 2);</div><div class='add'>+    rb_define_singleton_method(klass, "big2str_gmp", big2str_gmp, 2);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/bignum/bigzero.c b/ext/-test-/bignum/bigzero.c<br/>index 35117db7ae..e2bfebcd3e 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/bignum/bigzero.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/bigzero.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bignum/bigzero.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bignum/bigzero.c</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/bignum.h"</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> bug_big_zero(VALUE self, VALUE length)</div><div class='head'>diff --git a/ext/-test-/bignum/depend b/ext/-test-/bignum/depend<br/>index 60e711489c..d4072fb35c 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/bignum/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bignum/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bignum/depend</a></div><div class='hunk'>@@ -1,115 +1,1122 @@</div><div class='del'>-big2str.o: big2str.c</div><div class='del'>-div.o: div.c</div><div class='del'>-intpack.o: intpack.c</div><div class='del'>-mul.o: mul.c</div><div class='del'>-str2big.o: str2big.c</div><div class='del'>-</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> big2str.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> big2str.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> big2str.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> big2str.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-big2str.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> big2str.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-big2str.o: $(hdrdir)/ruby/io.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+big2str.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> big2str.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-big2str.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-big2str.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> big2str.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> big2str.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> big2str.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-big2str.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-big2str.o: $(top_srcdir)/internal.h</div><div class='add'>+big2str.o: $(top_srcdir)/internal/bignum.h</div><div class='ctx'> big2str.o: big2str.c</div><div class='ctx'> bigzero.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> bigzero.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> bigzero.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> bigzero.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-bigzero.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> bigzero.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-bigzero.o: $(hdrdir)/ruby/io.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+bigzero.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> bigzero.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-bigzero.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-bigzero.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> bigzero.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> bigzero.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> bigzero.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-bigzero.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-bigzero.o: $(top_srcdir)/internal.h</div><div class='add'>+bigzero.o: $(top_srcdir)/internal/bignum.h</div><div class='ctx'> bigzero.o: bigzero.c</div><div class='ctx'> div.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> div.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+div.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> div.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+div.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+div.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+div.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+div.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+div.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+div.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+div.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+div.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> div.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-div.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> div.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-div.o: $(hdrdir)/ruby/io.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+div.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> div.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-div.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-div.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> div.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> div.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> div.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-div.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-div.o: $(top_srcdir)/internal.h</div><div class='add'>+div.o: $(top_srcdir)/internal/bignum.h</div><div class='ctx'> div.o: div.c</div><div class='ctx'> init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-init.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> init.o: init.c</div><div class='ctx'> intpack.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> intpack.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> intpack.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> intpack.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-intpack.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> intpack.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-intpack.o: $(hdrdir)/ruby/io.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+intpack.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> intpack.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-intpack.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-intpack.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> intpack.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> intpack.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> intpack.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-intpack.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-intpack.o: $(top_srcdir)/internal.h</div><div class='add'>+intpack.o: $(top_srcdir)/internal/bignum.h</div><div class='ctx'> intpack.o: intpack.c</div><div class='ctx'> mul.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> mul.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> mul.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> mul.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-mul.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> mul.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-mul.o: $(hdrdir)/ruby/io.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+mul.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> mul.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-mul.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-mul.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> mul.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> mul.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> mul.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-mul.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-mul.o: $(top_srcdir)/internal.h</div><div class='add'>+mul.o: $(top_srcdir)/internal/bignum.h</div><div class='ctx'> mul.o: mul.c</div><div class='ctx'> str2big.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> str2big.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> str2big.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> str2big.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-str2big.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> str2big.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-str2big.o: $(hdrdir)/ruby/io.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+str2big.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> str2big.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-str2big.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-str2big.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> str2big.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> str2big.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> str2big.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-str2big.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-str2big.o: $(top_srcdir)/internal.h</div><div class='add'>+str2big.o: $(top_srcdir)/internal/bignum.h</div><div class='ctx'> str2big.o: str2big.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/bignum/div.c b/ext/-test-/bignum/div.c<br/>index a1db21dc30..85ee0677fa 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/bignum/div.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/div.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bignum/div.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bignum/div.c</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/bignum.h"</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> big(VALUE x)</div><div class='hunk'>@@ -12,14 +12,14 @@ big(VALUE x)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-divrem_normal(VALUE x, VALUE y)</div><div class='add'>+divrem_normal(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     return rb_big_norm(rb_big_divrem_normal(big(x), big(y)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='ctx'> static VALUE</div><div class='del'>-divrem_gmp(VALUE x, VALUE y)</div><div class='add'>+divrem_gmp(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     return rb_big_norm(rb_big_divrem_gmp(big(x), big(y)));</div><div class='ctx'> }</div><div class='hunk'>@@ -30,6 +30,6 @@ divrem_gmp(VALUE x, VALUE y)</div><div class='ctx'> void</div><div class='ctx'> Init_div(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    rb_define_method(rb_cInteger, "big_divrem_normal", divrem_normal, 1);</div><div class='del'>-    rb_define_method(rb_cInteger, "big_divrem_gmp", divrem_gmp, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "big_divrem_normal", divrem_normal, 2);</div><div class='add'>+    rb_define_singleton_method(klass, "big_divrem_gmp", divrem_gmp, 2);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/bignum/intpack.c b/ext/-test-/bignum/intpack.c<br/>index 2d19442cf2..d5591505e5 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/bignum/intpack.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/intpack.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bignum/intpack.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bignum/intpack.c</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/bignum.h"</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_integer_pack_raw_m(VALUE val, VALUE buf, VALUE numwords_arg, VALUE wordsize_arg, VALUE nails, VALUE flags)</div><div class='add'>+rb_integer_pack_raw_m(VALUE klass, VALUE val, VALUE buf, VALUE numwords_arg, VALUE wordsize_arg, VALUE nails, VALUE flags)</div><div class='ctx'> {</div><div class='ctx'>   int sign;</div><div class='ctx'>   size_t numwords = 0;</div><div class='hunk'>@@ -17,7 +17,7 @@ rb_integer_pack_raw_m(VALUE val, VALUE buf, VALUE numwords_arg, VALUE wordsize_a</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_integer_pack_m(VALUE val, VALUE numwords_arg, VALUE wordsize_arg, VALUE nails, VALUE flags)</div><div class='add'>+rb_integer_pack_m(VALUE klass, VALUE val, VALUE numwords_arg, VALUE wordsize_arg, VALUE nails, VALUE flags)</div><div class='ctx'> {</div><div class='ctx'>   int sign;</div><div class='ctx'>   size_t numwords = NUM2SIZET(numwords_arg);</div><div class='hunk'>@@ -45,7 +45,7 @@ rb_integer_unpack_m(VALUE klass, VALUE buf, VALUE numwords, VALUE wordsize, VALU</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_integer_test_numbits_2comp_without_sign(VALUE val)</div><div class='add'>+rb_integer_test_numbits_2comp_without_sign(VALUE klass, VALUE val)</div><div class='ctx'> {</div><div class='ctx'>   size_t size;</div><div class='ctx'>   int neg = FIXNUM_P(val) ? FIX2LONG(val) &lt; 0 : BIGNUM_NEGATIVE_P(val);</div><div class='hunk'>@@ -54,7 +54,7 @@ rb_integer_test_numbits_2comp_without_sign(VALUE val)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_integer_test_numbytes_2comp_with_sign(VALUE val)</div><div class='add'>+rb_integer_test_numbytes_2comp_with_sign(VALUE klass, VALUE val)</div><div class='ctx'> {</div><div class='ctx'>   int neg = FIXNUM_P(val) ? FIX2LONG(val) &lt; 0 : BIGNUM_NEGATIVE_P(val);</div><div class='ctx'>   int nlz_bits;</div><div class='hunk'>@@ -67,21 +67,21 @@ rb_integer_test_numbytes_2comp_with_sign(VALUE val)</div><div class='ctx'> void</div><div class='ctx'> Init_intpack(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    rb_define_method(rb_cInteger, "test_pack_raw", rb_integer_pack_raw_m, 5);</div><div class='del'>-    rb_define_method(rb_cInteger, "test_pack", rb_integer_pack_m, 4);</div><div class='del'>-    rb_define_singleton_method(rb_cInteger, "test_unpack", rb_integer_unpack_m, 5);</div><div class='del'>-    rb_define_const(rb_cInteger, "INTEGER_PACK_MSWORD_FIRST", INT2NUM(INTEGER_PACK_MSWORD_FIRST));</div><div class='del'>-    rb_define_const(rb_cInteger, "INTEGER_PACK_LSWORD_FIRST", INT2NUM(INTEGER_PACK_LSWORD_FIRST));</div><div class='del'>-    rb_define_const(rb_cInteger, "INTEGER_PACK_MSBYTE_FIRST", INT2NUM(INTEGER_PACK_MSBYTE_FIRST));</div><div class='del'>-    rb_define_const(rb_cInteger, "INTEGER_PACK_LSBYTE_FIRST", INT2NUM(INTEGER_PACK_LSBYTE_FIRST));</div><div class='del'>-    rb_define_const(rb_cInteger, "INTEGER_PACK_NATIVE_BYTE_ORDER", INT2NUM(INTEGER_PACK_NATIVE_BYTE_ORDER));</div><div class='del'>-    rb_define_const(rb_cInteger, "INTEGER_PACK_2COMP", INT2NUM(INTEGER_PACK_2COMP));</div><div class='del'>-    rb_define_const(rb_cInteger, "INTEGER_PACK_LITTLE_ENDIAN", INT2NUM(INTEGER_PACK_LITTLE_ENDIAN));</div><div class='del'>-    rb_define_const(rb_cInteger, "INTEGER_PACK_BIG_ENDIAN", INT2NUM(INTEGER_PACK_BIG_ENDIAN));</div><div class='del'>-    rb_define_const(rb_cInteger, "INTEGER_PACK_FORCE_BIGNUM", INT2NUM(INTEGER_PACK_FORCE_BIGNUM));</div><div class='del'>-    rb_define_const(rb_cInteger, "INTEGER_PACK_NEGATIVE", INT2NUM(INTEGER_PACK_NEGATIVE));</div><div class='del'>-    rb_define_const(rb_cInteger, "INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION", INT2NUM(INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION));</div><div class='add'>+    rb_define_singleton_method(klass, "test_pack_raw", rb_integer_pack_raw_m, 6);</div><div class='add'>+    rb_define_singleton_method(klass, "test_pack", rb_integer_pack_m, 5);</div><div class='add'>+    rb_define_singleton_method(klass, "test_unpack", rb_integer_unpack_m, 5);</div><div class='add'>+    rb_define_const(klass, "INTEGER_PACK_MSWORD_FIRST", INT2NUM(INTEGER_PACK_MSWORD_FIRST));</div><div class='add'>+    rb_define_const(klass, "INTEGER_PACK_LSWORD_FIRST", INT2NUM(INTEGER_PACK_LSWORD_FIRST));</div><div class='add'>+    rb_define_const(klass, "INTEGER_PACK_MSBYTE_FIRST", INT2NUM(INTEGER_PACK_MSBYTE_FIRST));</div><div class='add'>+    rb_define_const(klass, "INTEGER_PACK_LSBYTE_FIRST", INT2NUM(INTEGER_PACK_LSBYTE_FIRST));</div><div class='add'>+    rb_define_const(klass, "INTEGER_PACK_NATIVE_BYTE_ORDER", INT2NUM(INTEGER_PACK_NATIVE_BYTE_ORDER));</div><div class='add'>+    rb_define_const(klass, "INTEGER_PACK_2COMP", INT2NUM(INTEGER_PACK_2COMP));</div><div class='add'>+    rb_define_const(klass, "INTEGER_PACK_LITTLE_ENDIAN", INT2NUM(INTEGER_PACK_LITTLE_ENDIAN));</div><div class='add'>+    rb_define_const(klass, "INTEGER_PACK_BIG_ENDIAN", INT2NUM(INTEGER_PACK_BIG_ENDIAN));</div><div class='add'>+    rb_define_const(klass, "INTEGER_PACK_FORCE_BIGNUM", INT2NUM(INTEGER_PACK_FORCE_BIGNUM));</div><div class='add'>+    rb_define_const(klass, "INTEGER_PACK_NEGATIVE", INT2NUM(INTEGER_PACK_NEGATIVE));</div><div class='add'>+    rb_define_const(klass, "INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION", INT2NUM(INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION));</div><div class='ctx'> </div><div class='del'>-    rb_define_method(rb_cInteger, "test_numbits_2comp_without_sign", rb_integer_test_numbits_2comp_without_sign, 0);</div><div class='del'>-    rb_define_method(rb_cInteger, "test_numbytes_2comp_with_sign", rb_integer_test_numbytes_2comp_with_sign, 0);</div><div class='add'>+    rb_define_singleton_method(klass, "test_numbits_2comp_without_sign", rb_integer_test_numbits_2comp_without_sign, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "test_numbytes_2comp_with_sign", rb_integer_test_numbytes_2comp_with_sign, 1);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/bignum/mul.c b/ext/-test-/bignum/mul.c<br/>index b922f34437..05ba103c44 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/bignum/mul.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/mul.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bignum/mul.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bignum/mul.c</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/bignum.h"</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> big(VALUE x)</div><div class='hunk'>@@ -12,38 +12,38 @@ big(VALUE x)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-mul_normal(VALUE x, VALUE y)</div><div class='add'>+mul_normal(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     return rb_big_norm(rb_big_mul_normal(big(x), big(y)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-sq_fast(VALUE x)</div><div class='add'>+sq_fast(VALUE klass, VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     return rb_big_norm(rb_big_sq_fast(big(x)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-mul_balance(VALUE x, VALUE y)</div><div class='add'>+mul_balance(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     return rb_big_norm(rb_big_mul_balance(big(x), big(y)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-mul_karatsuba(VALUE x, VALUE y)</div><div class='add'>+mul_karatsuba(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     return rb_big_norm(rb_big_mul_karatsuba(big(x), big(y)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-mul_toom3(VALUE x, VALUE y)</div><div class='add'>+mul_toom3(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     return rb_big_norm(rb_big_mul_toom3(big(x), big(y)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='ctx'> static VALUE</div><div class='del'>-mul_gmp(VALUE x, VALUE y)</div><div class='add'>+mul_gmp(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     return rb_big_norm(rb_big_mul_gmp(big(x), big(y)));</div><div class='ctx'> }</div><div class='hunk'>@@ -54,12 +54,12 @@ mul_gmp(VALUE x, VALUE y)</div><div class='ctx'> void</div><div class='ctx'> Init_mul(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    rb_define_const(rb_cInteger, "SIZEOF_BDIGIT", INT2NUM(SIZEOF_BDIGIT));</div><div class='del'>-    rb_define_const(rb_cInteger, "BITSPERDIG", INT2NUM(SIZEOF_BDIGIT * CHAR_BIT));</div><div class='del'>-    rb_define_method(rb_cInteger, "big_mul_normal", mul_normal, 1);</div><div class='del'>-    rb_define_method(rb_cInteger, "big_sq_fast", sq_fast, 0);</div><div class='del'>-    rb_define_method(rb_cInteger, "big_mul_balance", mul_balance, 1);</div><div class='del'>-    rb_define_method(rb_cInteger, "big_mul_karatsuba", mul_karatsuba, 1);</div><div class='del'>-    rb_define_method(rb_cInteger, "big_mul_toom3", mul_toom3, 1);</div><div class='del'>-    rb_define_method(rb_cInteger, "big_mul_gmp", mul_gmp, 1);</div><div class='add'>+    rb_define_const(klass, "SIZEOF_BDIGIT", INT2NUM(SIZEOF_BDIGIT));</div><div class='add'>+    rb_define_const(klass, "BITSPERDIG", INT2NUM(SIZEOF_BDIGIT * CHAR_BIT));</div><div class='add'>+    rb_define_singleton_method(klass, "big_mul_normal", mul_normal, 2);</div><div class='add'>+    rb_define_singleton_method(klass, "big_sq_fast", sq_fast, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "big_mul_balance", mul_balance, 2);</div><div class='add'>+    rb_define_singleton_method(klass, "big_mul_karatsuba", mul_karatsuba, 2);</div><div class='add'>+    rb_define_singleton_method(klass, "big_mul_toom3", mul_toom3, 2);</div><div class='add'>+    rb_define_singleton_method(klass, "big_mul_gmp", mul_gmp, 2);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/bignum/str2big.c b/ext/-test-/bignum/str2big.c<br/>index bc79ef0329..337cf8fb6d 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/bignum/str2big.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bignum/str2big.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bignum/str2big.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bignum/str2big.c</a></div><div class='hunk'>@@ -1,26 +1,26 @@</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/bignum.h"</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-str2big_poweroftwo(VALUE str, VALUE vbase, VALUE badcheck)</div><div class='add'>+str2big_poweroftwo(VALUE klass, VALUE str, VALUE vbase, VALUE badcheck)</div><div class='ctx'> {</div><div class='ctx'>     return rb_str2big_poweroftwo(str, NUM2INT(vbase), RTEST(badcheck));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-str2big_normal(VALUE str, VALUE vbase, VALUE badcheck)</div><div class='add'>+str2big_normal(VALUE klass, VALUE str, VALUE vbase, VALUE badcheck)</div><div class='ctx'> {</div><div class='ctx'>     return rb_str2big_normal(str, NUM2INT(vbase), RTEST(badcheck));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-str2big_karatsuba(VALUE str, VALUE vbase, VALUE badcheck)</div><div class='add'>+str2big_karatsuba(VALUE klass, VALUE str, VALUE vbase, VALUE badcheck)</div><div class='ctx'> {</div><div class='ctx'>     return rb_str2big_karatsuba(str, NUM2INT(vbase), RTEST(badcheck));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='ctx'> static VALUE</div><div class='del'>-str2big_gmp(VALUE str, VALUE vbase, VALUE badcheck)</div><div class='add'>+str2big_gmp(VALUE klass, VALUE str, VALUE vbase, VALUE badcheck)</div><div class='ctx'> {</div><div class='ctx'>     return rb_str2big_gmp(str, NUM2INT(vbase), RTEST(badcheck));</div><div class='ctx'> }</div><div class='hunk'>@@ -31,8 +31,8 @@ str2big_gmp(VALUE str, VALUE vbase, VALUE badcheck)</div><div class='ctx'> void</div><div class='ctx'> Init_str2big(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    rb_define_method(rb_cString, "str2big_poweroftwo", str2big_poweroftwo, 2);</div><div class='del'>-    rb_define_method(rb_cString, "str2big_normal", str2big_normal, 2);</div><div class='del'>-    rb_define_method(rb_cString, "str2big_karatsuba", str2big_karatsuba, 2);</div><div class='del'>-    rb_define_method(rb_cString, "str2big_gmp", str2big_gmp, 2);</div><div class='add'>+    rb_define_singleton_method(klass, "str2big_poweroftwo", str2big_poweroftwo, 3);</div><div class='add'>+    rb_define_singleton_method(klass, "str2big_normal", str2big_normal, 3);</div><div class='add'>+    rb_define_singleton_method(klass, "str2big_karatsuba", str2big_karatsuba, 3);</div><div class='add'>+    rb_define_singleton_method(klass, "str2big_gmp", str2big_gmp, 3);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/bug-14834/bug-14384.c b/ext/-test-/bug-14834/bug-14384.c<br/>new file mode 100644<br/>index 0000000000..3a16a2d222<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bug-14834/bug-14384.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bug-14834/bug-14384.c</a></div><div class='hunk'>@@ -0,0 +1,39 @@</div><div class='add'>+#include &lt;ruby/ruby.h&gt;</div><div class='add'>+#include &lt;ruby/debug.h&gt;</div><div class='add'>+</div><div class='add'>+#ifndef MAYBE_UNUSED</div><div class='add'>+# define MAYBE_UNUSED(x) x</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static NOINLINE(VALUE f(VALUE));</div><div class='add'>+static NOINLINE(void g(VALUE, void*));</div><div class='add'>+extern NOINLINE(void Init_bug_14384(void));</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_bug_14834(void)</div><div class='add'>+{</div><div class='add'>+    VALUE q = rb_define_module("Bug");</div><div class='add'>+    rb_define_module_function(q, "bug_14834", f, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+f(VALUE q)</div><div class='add'>+{</div><div class='add'>+    int   w[] = { 0, 1024 };</div><div class='add'>+    VALUE e   = rb_tracepoint_new(Qnil, RUBY_INTERNAL_EVENT_NEWOBJ, g, w);</div><div class='add'>+</div><div class='add'>+    rb_tracepoint_enable(e);</div><div class='add'>+    return rb_ensure(rb_yield, q, rb_tracepoint_disable, e);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+g(MAYBE_UNUSED(VALUE q), void* w)</div><div class='add'>+{</div><div class='add'>+    const int *e = (const int *)w;</div><div class='add'>+    const int  r = *e++;</div><div class='add'>+    const int  t = *e++;</div><div class='add'>+    VALUE     *y = ALLOCA_N(VALUE, t);</div><div class='add'>+    int       *u = ALLOCA_N(int, t);</div><div class='add'>+</div><div class='add'>+    rb_profile_frames(r, t, y, u);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/bug-14834/depend b/ext/-test-/bug-14834/depend<br/>new file mode 100644<br/>index 0000000000..7bac8409e8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bug-14834/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bug-14834/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+bug-14384.o: $(RUBY_EXTCONF_H)</div><div class='add'>+bug-14384.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/debug.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/st.h</div><div class='add'>+bug-14384.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+bug-14384.o: bug-14384.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/bug-14834/extconf.rb b/ext/-test-/bug-14834/extconf.rb<br/>new file mode 100644<br/>index 0000000000..e8f3f1f437<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bug-14834/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bug-14834/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+create_makefile("-test-/bug_14834")</div><div class='head'>diff --git a/ext/-test-/bug-3571/bug.c b/ext/-test-/bug-3571/bug.c<br/>index a64f054740..dd3c85cd79 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/bug-3571/bug.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/bug-3571/bug.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bug-3571/bug.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bug-3571/bug.c</a></div><div class='hunk'>@@ -8,7 +8,7 @@ bug_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, arg))</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-bug_start(VALUE self, VALUE hash)</div><div class='add'>+bug_start(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary = rb_ary_new3(1, Qnil);</div><div class='ctx'>     rb_block_call(ary, rb_intern("map"), 0, 0, bug_i, self);</div><div class='head'>diff --git a/ext/-test-/bug-3571/depend b/ext/-test-/bug-3571/depend<br/>new file mode 100644<br/>index 0000000000..2303f47594<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bug-3571/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bug-3571/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+bug.o: $(RUBY_EXTCONF_H)</div><div class='add'>+bug.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+bug.o: $(hdrdir)/ruby.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/st.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+bug.o: bug.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/bug-5832/depend b/ext/-test-/bug-5832/depend<br/>new file mode 100644<br/>index 0000000000..2303f47594<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bug-5832/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bug-5832/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+bug.o: $(RUBY_EXTCONF_H)</div><div class='add'>+bug.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+bug.o: $(hdrdir)/ruby.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/st.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+bug.o: bug.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/bug_reporter/depend b/ext/-test-/bug_reporter/depend<br/>new file mode 100644<br/>index 0000000000..603dd53ebf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/bug_reporter/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/bug_reporter/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+bug_reporter.o: $(RUBY_EXTCONF_H)</div><div class='add'>+bug_reporter.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/st.h</div><div class='add'>+bug_reporter.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+bug_reporter.o: bug_reporter.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/class/depend b/ext/-test-/class/depend<br/>index 40f3d7ab6d..a615eacd74 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/class/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/class/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/class/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/class/depend</a></div><div class='hunk'>@@ -1,9 +1,158 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> class2name.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> class2name.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> class2name.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> class2name.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> class2name.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+class2name.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> class2name.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> class2name.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> class2name.o: $(hdrdir)/ruby/st.h</div><div class='hunk'>@@ -11,13 +160,162 @@ class2name.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> class2name.o: class2name.c</div><div class='ctx'> init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-init.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> init.o: init.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/cxxanyargs/cxxanyargs.cpp b/ext/-test-/cxxanyargs/cxxanyargs.cpp<br/>new file mode 100644<br/>index 0000000000..eded13e2ee<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/cxxanyargs/cxxanyargs.cpp?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/cxxanyargs/cxxanyargs.cpp</a></div><div class='hunk'>@@ -0,0 +1,961 @@</div><div class='add'>+#include &lt;ruby/ruby.h&gt;</div><div class='add'>+</div><div class='add'>+#if 0 // Warnings expected, should just suppress them</div><div class='add'>+</div><div class='add'>+#elif defined(_MSC_VER)</div><div class='add'>+#pragma warning(disable : 4996)</div><div class='add'>+</div><div class='add'>+#elif defined(__INTEL_COMPILER)</div><div class='add'>+#pragma warning(disable : 1786)</div><div class='add'>+</div><div class='add'>+#elif defined(__clang__)</div><div class='add'>+#pragma clang diagnostic ignored "-Wdeprecated-declarations"</div><div class='add'>+</div><div class='add'>+#elif defined(__GNUC__)</div><div class='add'>+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"</div><div class='add'>+</div><div class='add'>+#elif defined(__SUNPRO_CC)</div><div class='add'>+#pragma error_messages (off,symdeprecated)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+// :FIXME: improve here for your compiler.</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+namespace test_rb_define_virtual_variable {</div><div class='add'>+    VALUE</div><div class='add'>+    getter(ID, VALUE *data)</div><div class='add'>+    {</div><div class='add'>+        return *data;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    void</div><div class='add'>+    setter(VALUE val, ID, VALUE *data)</div><div class='add'>+    {</div><div class='add'>+        *data = val;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        rb_define_virtual_variable("test",</div><div class='add'>+            RUBY_METHOD_FUNC(getter),</div><div class='add'>+            reinterpret_cast&lt;void(*)(ANYARGS)&gt;(setter)); // old</div><div class='add'>+        rb_define_virtual_variable("test", getter, setter); // new</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        rb_define_virtual_variable("test", nullptr, reinterpret_cast&lt;void(*)(ANYARGS)&gt;(setter));</div><div class='add'>+        rb_define_virtual_variable("test", nullptr, setter);</div><div class='add'>+</div><div class='add'>+        rb_define_virtual_variable("test", RUBY_METHOD_FUNC(getter), nullptr);</div><div class='add'>+        rb_define_virtual_variable("test", getter, nullptr);</div><div class='add'>+</div><div class='add'>+        // It doesn't make any sense for both function pointers be nullptr at</div><div class='add'>+        // the same time.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct test_rb_define_hooked_variable {</div><div class='add'>+    static VALUE v;</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    getter(ID, VALUE *data)</div><div class='add'>+    {</div><div class='add'>+        return *data;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static void</div><div class='add'>+    setter(VALUE val, ID, VALUE *data)</div><div class='add'>+    {</div><div class='add'>+        *data = val;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        rb_define_hooked_variable("test", &amp;v,</div><div class='add'>+            RUBY_METHOD_FUNC(getter),</div><div class='add'>+            reinterpret_cast&lt;void(*)(ANYARGS)&gt;(setter)); // old</div><div class='add'>+        rb_define_hooked_variable("test", &amp;v, getter, setter); // new</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        rb_define_hooked_variable("test", &amp;v, nullptr, reinterpret_cast&lt;void(*)(ANYARGS)&gt;(setter));</div><div class='add'>+        rb_define_hooked_variable("test", &amp;v, nullptr, setter);</div><div class='add'>+</div><div class='add'>+        rb_define_hooked_variable("test", &amp;v, RUBY_METHOD_FUNC(getter), nullptr);</div><div class='add'>+        rb_define_hooked_variable("test", &amp;v, getter, nullptr);</div><div class='add'>+</div><div class='add'>+        // It doesn't make any sense for both function pointers be nullptr at</div><div class='add'>+        // the same time.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+};</div><div class='add'>+VALUE test_rb_define_hooked_variable::v = Qundef;</div><div class='add'>+</div><div class='add'>+namespace test_rb_iterate {</div><div class='add'>+    VALUE</div><div class='add'>+    iter(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        return rb_funcall(self, rb_intern("yield"), 0);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    block(RB_BLOCK_CALL_FUNC_ARGLIST(arg, param))</div><div class='add'>+    {</div><div class='add'>+        return rb_funcall(arg, rb_intern("=="), 1, param);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        rb_iterate(iter, self, nullptr, self);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_iterate(iter, self, RUBY_METHOD_FUNC(block), self); // old</div><div class='add'>+        return rb_iterate(iter, self, block, self); // new</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_block_call {</div><div class='add'>+    VALUE</div><div class='add'>+    block(RB_BLOCK_CALL_FUNC_ARGLIST(arg, param))</div><div class='add'>+    {</div><div class='add'>+        return rb_funcall(arg, rb_intern("=="), 1, param);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        const ID mid = rb_intern("each");</div><div class='add'>+        const VALUE argv[] = { Qundef };</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        rb_block_call(self, mid, 0, argv, nullptr, self);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_block_call(self, mid, 0, argv, RUBY_METHOD_FUNC(block), self); // old</div><div class='add'>+        return rb_block_call(self, mid, 0, argv, block, self); // new</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_rescue {</div><div class='add'>+    VALUE</div><div class='add'>+    begin(VALUE arg)</div><div class='add'>+    {</div><div class='add'>+        return arg;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    rescue(VALUE arg, VALUE exc)</div><div class='add'>+    {</div><div class='add'>+        return exc;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        rb_rescue(RUBY_METHOD_FUNC(begin), self, nullptr, self);</div><div class='add'>+        rb_rescue(begin, self, nullptr, self);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_rescue(RUBY_METHOD_FUNC(begin), self, RUBY_METHOD_FUNC(rescue), self); // old</div><div class='add'>+        return rb_rescue(begin, self, rescue, self); // new</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_rescue2 {</div><div class='add'>+    VALUE</div><div class='add'>+    begin(VALUE arg)</div><div class='add'>+    {</div><div class='add'>+        return arg;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    rescue(VALUE arg, VALUE exc)</div><div class='add'>+    {</div><div class='add'>+        return exc;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        rb_rescue2(RUBY_METHOD_FUNC(begin), self, nullptr, self, rb_eStandardError, rb_eFatal, (VALUE)0);</div><div class='add'>+        rb_rescue2(begin, self, nullptr, self, rb_eStandardError, rb_eFatal, (VALUE)0);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_rescue2(RUBY_METHOD_FUNC(begin), self, RUBY_METHOD_FUNC(rescue), self,</div><div class='add'>+                   rb_eStandardError, rb_eFatal, (VALUE)0); // old</div><div class='add'>+        return rb_rescue2(begin, self, rescue, self, rb_eStandardError, rb_eFatal, (VALUE)0); // new</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_ensure {</div><div class='add'>+    VALUE</div><div class='add'>+    begin(VALUE arg)</div><div class='add'>+    {</div><div class='add'>+        return arg;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    ensure(VALUE arg)</div><div class='add'>+    {</div><div class='add'>+        return arg;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        rb_ensure(RUBY_METHOD_FUNC(begin), self, nullptr, self);</div><div class='add'>+        rb_ensure(begin, self, nullptr, self);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_ensure(RUBY_METHOD_FUNC(begin), self, RUBY_METHOD_FUNC(ensure), self); // old</div><div class='add'>+        return rb_ensure(begin, self, ensure, self); // new</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_catch {</div><div class='add'>+    VALUE</div><div class='add'>+    catcher(RB_BLOCK_CALL_FUNC_ARGLIST(arg, param))</div><div class='add'>+    {</div><div class='add'>+        return arg;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        static const char *zero = 0;</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a catcher.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_catch(zero, RUBY_METHOD_FUNC(catcher), self); // old</div><div class='add'>+        return rb_catch(zero, catcher, self); // new</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_catch_obj {</div><div class='add'>+    VALUE</div><div class='add'>+    catcher(RB_BLOCK_CALL_FUNC_ARGLIST(arg, param))</div><div class='add'>+    {</div><div class='add'>+        return arg;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a catcher.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_catch_obj(self, RUBY_METHOD_FUNC(catcher), self); // old</div><div class='add'>+        return rb_catch_obj(self, catcher, self); // new</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_fiber_new {</div><div class='add'>+    VALUE</div><div class='add'>+    fiber(RB_BLOCK_CALL_FUNC_ARGLIST(arg, param))</div><div class='add'>+    {</div><div class='add'>+        return arg;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a fiber.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_fiber_new(RUBY_METHOD_FUNC(fiber), self); // old</div><div class='add'>+        return rb_fiber_new(fiber, self); // new</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_proc_new {</div><div class='add'>+    VALUE</div><div class='add'>+    proc(RB_BLOCK_CALL_FUNC_ARGLIST(arg, param))</div><div class='add'>+    {</div><div class='add'>+        return arg;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a proc.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_fiber_new(RUBY_METHOD_FUNC(proc), self); // old</div><div class='add'>+        return rb_fiber_new(proc, self); // new</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct test_rb_thread_create {</div><div class='add'>+    static VALUE v;</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    thread(void *ptr)</div><div class='add'>+    {</div><div class='add'>+        const VALUE *w = reinterpret_cast&lt;const VALUE*&gt;(ptr);</div><div class='add'>+        return *w;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        v = self;</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a thread.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_thread_create(RUBY_METHOD_FUNC(thread), &amp;v); // old</div><div class='add'>+        return rb_thread_create(thread, &amp;v); // new</div><div class='add'>+    }</div><div class='add'>+};</div><div class='add'>+VALUE test_rb_thread_create::v = Qundef;</div><div class='add'>+</div><div class='add'>+namespace test_st_foreach {</div><div class='add'>+    static int</div><div class='add'>+    iter(st_data_t, st_data_t, st_data_t)</div><div class='add'>+    {</div><div class='add'>+        return ST_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        st_data_t data = 0;</div><div class='add'>+        st_table *st = st_init_numtable();</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as an iterator.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        st_foreach(st, reinterpret_cast&lt;int(*)(ANYARGS)&gt;(iter), data); // old</div><div class='add'>+        st_foreach(st, iter, data); // new</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_st_foreach_check {</div><div class='add'>+    static int</div><div class='add'>+    iter(st_data_t, st_data_t, st_data_t, int x)</div><div class='add'>+    {</div><div class='add'>+        return x ? ST_STOP : ST_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        st_data_t data = 0;</div><div class='add'>+        st_table *st = st_init_numtable();</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as an iterator.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        st_foreach_check(st, reinterpret_cast&lt;int(*)(ANYARGS)&gt;(iter), data, data); // old</div><div class='add'>+        st_foreach_check(st, iter, data, data); // new</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_st_foreach_safe {</div><div class='add'>+    static int</div><div class='add'>+    iter(st_data_t, st_data_t, st_data_t)</div><div class='add'>+    {</div><div class='add'>+        return ST_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        st_data_t data = 0;</div><div class='add'>+        st_table *st = st_init_numtable();</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as an iterator.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        st_foreach_safe(st, reinterpret_cast&lt;int(*)(ANYARGS)&gt;(iter), data); // old</div><div class='add'>+        st_foreach_safe(st, iter, data); // new</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_hash_foreach {</div><div class='add'>+    static int</div><div class='add'>+    iter(VALUE, VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return ST_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        VALUE h = rb_hash_new();</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as an iterator.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_hash_foreach(h, reinterpret_cast&lt;int(*)(ANYARGS)&gt;(iter), self); // old</div><div class='add'>+        rb_hash_foreach(h, iter, self); // new</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_ivar_foreach {</div><div class='add'>+    static int</div><div class='add'>+    iter(VALUE, VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return ST_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as an iterator.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        rb_ivar_foreach(self, reinterpret_cast&lt;int(*)(ANYARGS)&gt;(iter), self); // old</div><div class='add'>+        rb_ivar_foreach(self, iter, self); // new</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_define_method {</div><div class='add'>+    static VALUE</div><div class='add'>+    m1(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    m2(VALUE, VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    ma(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mv(int, VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mc(int, const VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        // No cast</div><div class='add'>+        rb_define_method(self, "m1", m1, 1);</div><div class='add'>+        rb_define_method(self, "m2", m2, 2);</div><div class='add'>+        rb_define_method(self, "ma", ma, -2);</div><div class='add'>+        rb_define_method(self, "mv", mv, -1);</div><div class='add'>+        rb_define_method(self, "mc", mc, -1);</div><div class='add'>+</div><div class='add'>+        // Cast by RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_method(self, "m1", RUBY_METHOD_FUNC(m1), 1);</div><div class='add'>+        rb_define_method(self, "m2", RUBY_METHOD_FUNC(m2), 2);</div><div class='add'>+        rb_define_method(self, "ma", RUBY_METHOD_FUNC(ma), -2);</div><div class='add'>+        rb_define_method(self, "mv", RUBY_METHOD_FUNC(mv), -1);</div><div class='add'>+        rb_define_method(self, "mc", RUBY_METHOD_FUNC(mc), -1);</div><div class='add'>+</div><div class='add'>+        // Explicit cast instead of RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_method(self, "m1", (VALUE (*)(...))(m1), 1);</div><div class='add'>+        rb_define_method(self, "m2", (VALUE (*)(...))(m2), 2);</div><div class='add'>+        rb_define_method(self, "ma", (VALUE (*)(...))(ma), -2);</div><div class='add'>+        rb_define_method(self, "mv", (VALUE (*)(...))(mv), -1);</div><div class='add'>+        rb_define_method(self, "mc", (VALUE (*)(...))(mc), -1);</div><div class='add'>+</div><div class='add'>+        // rb_f_notimplement</div><div class='add'>+        rb_define_method(self, "m1", rb_f_notimplement, 1);</div><div class='add'>+        rb_define_method(self, "m2", rb_f_notimplement, 2);</div><div class='add'>+        rb_define_method(self, "ma", rb_f_notimplement, -2);</div><div class='add'>+        rb_define_method(self, "mv", rb_f_notimplement, -1);</div><div class='add'>+        rb_define_method(self, "mc", rb_f_notimplement, -1);</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a method.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_define_method_id {</div><div class='add'>+    static VALUE</div><div class='add'>+    m1(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    m2(VALUE, VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    ma(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mv(int, VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mc(int, const VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        // No cast</div><div class='add'>+        rb_define_method_id(self, rb_intern("m1"), m1, 1);</div><div class='add'>+        rb_define_method_id(self, rb_intern("m2"), m2, 2);</div><div class='add'>+        rb_define_method_id(self, rb_intern("ma"), ma, -2);</div><div class='add'>+        rb_define_method_id(self, rb_intern("mv"), mv, -1);</div><div class='add'>+        rb_define_method_id(self, rb_intern("mc"), mc, -1);</div><div class='add'>+</div><div class='add'>+        // Cast by RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_method_id(self, rb_intern("m1"), RUBY_METHOD_FUNC(m1), 1);</div><div class='add'>+        rb_define_method_id(self, rb_intern("m2"), RUBY_METHOD_FUNC(m2), 2);</div><div class='add'>+        rb_define_method_id(self, rb_intern("ma"), RUBY_METHOD_FUNC(ma), -2);</div><div class='add'>+        rb_define_method_id(self, rb_intern("mv"), RUBY_METHOD_FUNC(mv), -1);</div><div class='add'>+        rb_define_method_id(self, rb_intern("mc"), RUBY_METHOD_FUNC(mc), -1);</div><div class='add'>+</div><div class='add'>+        // Explicit cast instead of RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_method_id(self, rb_intern("m1"), (VALUE (*)(...))(m1), 1);</div><div class='add'>+        rb_define_method_id(self, rb_intern("m2"), (VALUE (*)(...))(m2), 2);</div><div class='add'>+        rb_define_method_id(self, rb_intern("ma"), (VALUE (*)(...))(ma), -2);</div><div class='add'>+        rb_define_method_id(self, rb_intern("mv"), (VALUE (*)(...))(mv), -1);</div><div class='add'>+        rb_define_method_id(self, rb_intern("mc"), (VALUE (*)(...))(mc), -1);</div><div class='add'>+</div><div class='add'>+        // rb_f_notimplement</div><div class='add'>+        rb_define_method_id(self, rb_intern("m1"), rb_f_notimplement, 1);</div><div class='add'>+        rb_define_method_id(self, rb_intern("m2"), rb_f_notimplement, 2);</div><div class='add'>+        rb_define_method_id(self, rb_intern("ma"), rb_f_notimplement, -2);</div><div class='add'>+        rb_define_method_id(self, rb_intern("mv"), rb_f_notimplement, -1);</div><div class='add'>+        rb_define_method_id(self, rb_intern("mc"), rb_f_notimplement, -1);</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a method.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_define_module_function {</div><div class='add'>+    static VALUE</div><div class='add'>+    m1(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    m2(VALUE, VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    ma(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mv(int, VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mc(int, const VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        // No cast</div><div class='add'>+        rb_define_module_function(self, "m1", m1, 1);</div><div class='add'>+        rb_define_module_function(self, "m2", m2, 2);</div><div class='add'>+        rb_define_module_function(self, "ma", ma, -2);</div><div class='add'>+        rb_define_module_function(self, "mv", mv, -1);</div><div class='add'>+        rb_define_module_function(self, "mc", mc, -1);</div><div class='add'>+</div><div class='add'>+        // Cast by RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_module_function(self, "m1", RUBY_METHOD_FUNC(m1), 1);</div><div class='add'>+        rb_define_module_function(self, "m2", RUBY_METHOD_FUNC(m2), 2);</div><div class='add'>+        rb_define_module_function(self, "ma", RUBY_METHOD_FUNC(ma), -2);</div><div class='add'>+        rb_define_module_function(self, "mv", RUBY_METHOD_FUNC(mv), -1);</div><div class='add'>+        rb_define_module_function(self, "mc", RUBY_METHOD_FUNC(mc), -1);</div><div class='add'>+</div><div class='add'>+        // Explicit cast instead of RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_module_function(self, "m1", (VALUE (*)(...))(m1), 1);</div><div class='add'>+        rb_define_module_function(self, "m2", (VALUE (*)(...))(m2), 2);</div><div class='add'>+        rb_define_module_function(self, "ma", (VALUE (*)(...))(ma), -2);</div><div class='add'>+        rb_define_module_function(self, "mv", (VALUE (*)(...))(mv), -1);</div><div class='add'>+        rb_define_module_function(self, "mc", (VALUE (*)(...))(mc), -1);</div><div class='add'>+</div><div class='add'>+        // rb_f_notimplement</div><div class='add'>+        rb_define_module_function(self, "m1", rb_f_notimplement, 1);</div><div class='add'>+        rb_define_module_function(self, "m2", rb_f_notimplement, 2);</div><div class='add'>+        rb_define_module_function(self, "ma", rb_f_notimplement, -2);</div><div class='add'>+        rb_define_module_function(self, "mv", rb_f_notimplement, -1);</div><div class='add'>+        rb_define_module_function(self, "mc", rb_f_notimplement, -1);</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a method.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_define_singleton_method {</div><div class='add'>+    static VALUE</div><div class='add'>+    m1(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    m2(VALUE, VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    ma(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mv(int, VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mc(int, const VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        // No cast</div><div class='add'>+        rb_define_singleton_method(self, "m1", m1, 1);</div><div class='add'>+        rb_define_singleton_method(self, "m2", m2, 2);</div><div class='add'>+        rb_define_singleton_method(self, "ma", ma, -2);</div><div class='add'>+        rb_define_singleton_method(self, "mv", mv, -1);</div><div class='add'>+        rb_define_singleton_method(self, "mc", mc, -1);</div><div class='add'>+</div><div class='add'>+        // Cast by RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_singleton_method(self, "m1", RUBY_METHOD_FUNC(m1), 1);</div><div class='add'>+        rb_define_singleton_method(self, "m2", RUBY_METHOD_FUNC(m2), 2);</div><div class='add'>+        rb_define_singleton_method(self, "ma", RUBY_METHOD_FUNC(ma), -2);</div><div class='add'>+        rb_define_singleton_method(self, "mv", RUBY_METHOD_FUNC(mv), -1);</div><div class='add'>+        rb_define_singleton_method(self, "mc", RUBY_METHOD_FUNC(mc), -1);</div><div class='add'>+</div><div class='add'>+        // Explicit cast instead of RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_singleton_method(self, "m1", (VALUE (*)(...))(m1), 1);</div><div class='add'>+        rb_define_singleton_method(self, "m2", (VALUE (*)(...))(m2), 2);</div><div class='add'>+        rb_define_singleton_method(self, "ma", (VALUE (*)(...))(ma), -2);</div><div class='add'>+        rb_define_singleton_method(self, "mv", (VALUE (*)(...))(mv), -1);</div><div class='add'>+        rb_define_singleton_method(self, "mc", (VALUE (*)(...))(mc), -1);</div><div class='add'>+</div><div class='add'>+        // rb_f_notimplement</div><div class='add'>+        rb_define_singleton_method(self, "m1", rb_f_notimplement, 1);</div><div class='add'>+        rb_define_singleton_method(self, "m2", rb_f_notimplement, 2);</div><div class='add'>+        rb_define_singleton_method(self, "ma", rb_f_notimplement, -2);</div><div class='add'>+        rb_define_singleton_method(self, "mv", rb_f_notimplement, -1);</div><div class='add'>+        rb_define_singleton_method(self, "mc", rb_f_notimplement, -1);</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a method.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_define_protected_method {</div><div class='add'>+    static VALUE</div><div class='add'>+    m1(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    m2(VALUE, VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    ma(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mv(int, VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mc(int, const VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        // No cast</div><div class='add'>+        rb_define_protected_method(self, "m1", m1, 1);</div><div class='add'>+        rb_define_protected_method(self, "m2", m2, 2);</div><div class='add'>+        rb_define_protected_method(self, "ma", ma, -2);</div><div class='add'>+        rb_define_protected_method(self, "mv", mv, -1);</div><div class='add'>+        rb_define_protected_method(self, "mc", mc, -1);</div><div class='add'>+</div><div class='add'>+        // Cast by RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_protected_method(self, "m1", RUBY_METHOD_FUNC(m1), 1);</div><div class='add'>+        rb_define_protected_method(self, "m2", RUBY_METHOD_FUNC(m2), 2);</div><div class='add'>+        rb_define_protected_method(self, "ma", RUBY_METHOD_FUNC(ma), -2);</div><div class='add'>+        rb_define_protected_method(self, "mv", RUBY_METHOD_FUNC(mv), -1);</div><div class='add'>+        rb_define_protected_method(self, "mc", RUBY_METHOD_FUNC(mc), -1);</div><div class='add'>+</div><div class='add'>+        // Explicit cast instead of RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_protected_method(self, "m1", (VALUE (*)(...))(m1), 1);</div><div class='add'>+        rb_define_protected_method(self, "m2", (VALUE (*)(...))(m2), 2);</div><div class='add'>+        rb_define_protected_method(self, "ma", (VALUE (*)(...))(ma), -2);</div><div class='add'>+        rb_define_protected_method(self, "mv", (VALUE (*)(...))(mv), -1);</div><div class='add'>+        rb_define_protected_method(self, "mc", (VALUE (*)(...))(mc), -1);</div><div class='add'>+</div><div class='add'>+        // rb_f_notimplement</div><div class='add'>+        rb_define_protected_method(self, "m1", rb_f_notimplement, 1);</div><div class='add'>+        rb_define_protected_method(self, "m2", rb_f_notimplement, 2);</div><div class='add'>+        rb_define_protected_method(self, "ma", rb_f_notimplement, -2);</div><div class='add'>+        rb_define_protected_method(self, "mv", rb_f_notimplement, -1);</div><div class='add'>+        rb_define_protected_method(self, "mc", rb_f_notimplement, -1);</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a method.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_define_private_method {</div><div class='add'>+    static VALUE</div><div class='add'>+    m1(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    m2(VALUE, VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    ma(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mv(int, VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mc(int, const VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        // No cast</div><div class='add'>+        rb_define_private_method(self, "m1", m1, 1);</div><div class='add'>+        rb_define_private_method(self, "m2", m2, 2);</div><div class='add'>+        rb_define_private_method(self, "ma", ma, -2);</div><div class='add'>+        rb_define_private_method(self, "mv", mv, -1);</div><div class='add'>+        rb_define_private_method(self, "mc", mc, -1);</div><div class='add'>+</div><div class='add'>+        // Cast by RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_private_method(self, "m1", RUBY_METHOD_FUNC(m1), 1);</div><div class='add'>+        rb_define_private_method(self, "m2", RUBY_METHOD_FUNC(m2), 2);</div><div class='add'>+        rb_define_private_method(self, "ma", RUBY_METHOD_FUNC(ma), -2);</div><div class='add'>+        rb_define_private_method(self, "mv", RUBY_METHOD_FUNC(mv), -1);</div><div class='add'>+        rb_define_private_method(self, "mc", RUBY_METHOD_FUNC(mc), -1);</div><div class='add'>+</div><div class='add'>+        // Explicit cast instead of RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_private_method(self, "m1", (VALUE (*)(...))(m1), 1);</div><div class='add'>+        rb_define_private_method(self, "m2", (VALUE (*)(...))(m2), 2);</div><div class='add'>+        rb_define_private_method(self, "ma", (VALUE (*)(...))(ma), -2);</div><div class='add'>+        rb_define_private_method(self, "mv", (VALUE (*)(...))(mv), -1);</div><div class='add'>+        rb_define_private_method(self, "mc", (VALUE (*)(...))(mc), -1);</div><div class='add'>+</div><div class='add'>+        // rb_f_notimplement</div><div class='add'>+        rb_define_private_method(self, "m1", rb_f_notimplement, 1);</div><div class='add'>+        rb_define_private_method(self, "m2", rb_f_notimplement, 2);</div><div class='add'>+        rb_define_private_method(self, "ma", rb_f_notimplement, -2);</div><div class='add'>+        rb_define_private_method(self, "mv", rb_f_notimplement, -1);</div><div class='add'>+        rb_define_private_method(self, "mc", rb_f_notimplement, -1);</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a method.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+namespace test_rb_define_global_function {</div><div class='add'>+    static VALUE</div><div class='add'>+    m1(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    m2(VALUE, VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    ma(VALUE, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mv(int, VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    static VALUE</div><div class='add'>+    mc(int, const VALUE*, VALUE)</div><div class='add'>+    {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE</div><div class='add'>+    test(VALUE self)</div><div class='add'>+    {</div><div class='add'>+        // No cast</div><div class='add'>+        rb_define_global_function("m1", m1, 1);</div><div class='add'>+        rb_define_global_function("m2", m2, 2);</div><div class='add'>+        rb_define_global_function("ma", ma, -2);</div><div class='add'>+        rb_define_global_function("mv", mv, -1);</div><div class='add'>+        rb_define_global_function("mc", mc, -1);</div><div class='add'>+</div><div class='add'>+        // Cast by RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_global_function("m1", RUBY_METHOD_FUNC(m1), 1);</div><div class='add'>+        rb_define_global_function("m2", RUBY_METHOD_FUNC(m2), 2);</div><div class='add'>+        rb_define_global_function("ma", RUBY_METHOD_FUNC(ma), -2);</div><div class='add'>+        rb_define_global_function("mv", RUBY_METHOD_FUNC(mv), -1);</div><div class='add'>+        rb_define_global_function("mc", RUBY_METHOD_FUNC(mc), -1);</div><div class='add'>+</div><div class='add'>+        // Explicit cast instead of RUBY_METHOD_FUNC</div><div class='add'>+        rb_define_global_function("m1", (VALUE (*)(...))(m1), 1);</div><div class='add'>+        rb_define_global_function("m2", (VALUE (*)(...))(m2), 2);</div><div class='add'>+        rb_define_global_function("ma", (VALUE (*)(...))(ma), -2);</div><div class='add'>+        rb_define_global_function("mv", (VALUE (*)(...))(mv), -1);</div><div class='add'>+        rb_define_global_function("mc", (VALUE (*)(...))(mc), -1);</div><div class='add'>+</div><div class='add'>+        // rb_f_notimplement</div><div class='add'>+        rb_define_global_function("m1", rb_f_notimplement, 1);</div><div class='add'>+        rb_define_global_function("m2", rb_f_notimplement, 2);</div><div class='add'>+        rb_define_global_function("ma", rb_f_notimplement, -2);</div><div class='add'>+        rb_define_global_function("mv", rb_f_notimplement, -1);</div><div class='add'>+        rb_define_global_function("mc", rb_f_notimplement, -1);</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+        // It doesn't make any sense at all to pass nullptr as a method.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+extern "C" void</div><div class='add'>+Init_cxxanyargs(void)</div><div class='add'>+{</div><div class='add'>+    VALUE b = rb_define_module("Bug");</div><div class='add'>+#define test(sym) \</div><div class='add'>+    rb_define_module_function(b, #sym, RUBY_METHOD_FUNC(test_ ## sym::test), 0)</div><div class='add'>+</div><div class='add'>+    test(rb_define_virtual_variable);</div><div class='add'>+    test(rb_define_hooked_variable);</div><div class='add'>+    test(rb_iterate);</div><div class='add'>+    test(rb_block_call);</div><div class='add'>+    test(rb_rescue);</div><div class='add'>+    test(rb_rescue2);</div><div class='add'>+    test(rb_ensure);</div><div class='add'>+    test(rb_catch);</div><div class='add'>+    test(rb_catch_obj);</div><div class='add'>+    test(rb_fiber_new);</div><div class='add'>+    test(rb_proc_new);</div><div class='add'>+    test(rb_thread_create);</div><div class='add'>+    test(st_foreach);</div><div class='add'>+    test(st_foreach_check);</div><div class='add'>+    test(st_foreach_safe);</div><div class='add'>+    test(rb_hash_foreach);</div><div class='add'>+    test(rb_ivar_foreach);</div><div class='add'>+    test(rb_define_method);</div><div class='add'>+    test(rb_define_method_id);</div><div class='add'>+    test(rb_define_module_function);</div><div class='add'>+    test(rb_define_singleton_method);</div><div class='add'>+    test(rb_define_protected_method);</div><div class='add'>+    test(rb_define_private_method);</div><div class='add'>+    test(rb_define_global_function);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/cxxanyargs/depend b/ext/-test-/cxxanyargs/depend<br/>new file mode 100644<br/>index 0000000000..fc3d8e45d9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/cxxanyargs/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/cxxanyargs/depend</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+$(TARGET_SO) $(STATIC_LIB): $(FAILURES:.cpp=.failed)</div><div class='add'>+</div><div class='add'>+.SUFFIXES: .failed</div><div class='add'>+</div><div class='add'>+.cpp.failed:</div><div class='add'>+	$(Q)$(RUBY) -rfileutils \</div><div class='add'>+	  -e "t = ARGV.shift" \</div><div class='add'>+	  -e "err = IO.popen(ARGV, err:[:child, :out], &amp;:read)" \</div><div class='add'>+	  -e "abort err unless /rb_define_method/ =~ err.b" \</div><div class='add'>+	  -e "File.write(t, err)" $@ $(MAKE) $(*F).o</div><div class='add'>+</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/cxxanyargs/extconf.rb b/ext/-test-/cxxanyargs/extconf.rb<br/>new file mode 100644<br/>index 0000000000..9749f42068<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/cxxanyargs/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/cxxanyargs/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,46 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+</div><div class='add'>+cxx = MakeMakefile["C++"]</div><div class='add'>+</div><div class='add'>+# #### have_devel hack ####</div><div class='add'>+# cxx.try_compile tries to detect compilers, but the try_compile below is</div><div class='add'>+# trying to detect a compiler in a different way.  We need to prevent the</div><div class='add'>+# default detection routine.</div><div class='add'>+</div><div class='add'>+cxx.instance_variable_set(:'@have_devel', true)</div><div class='add'>+</div><div class='add'>+ok = cxx.try_link(&lt;&lt;~'begin', "") do |x|</div><div class='add'>+  #include "ruby/config.h"</div><div class='add'>+</div><div class='add'>+  #ifdef RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='add'>+  # include RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='add'>+  #endif</div><div class='add'>+</div><div class='add'>+  namespace {</div><div class='add'>+      typedef int conftest1[SIZEOF_LONG == sizeof(long) ? 1 : -1];</div><div class='add'>+      typedef int conftest2[SIZEOF_VOIDP == sizeof(void*) ? 1 : -1];</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  int</div><div class='add'>+  main(int argc, const char** argv)</div><div class='add'>+  {</div><div class='add'>+      return !!argv[argc];</div><div class='add'>+  }</div><div class='add'>+begin</div><div class='add'>+  # We are wiping ruby.h from the source because that header file is the</div><div class='add'>+  # subject we are going to test in this extension library.</div><div class='add'>+  x.sub! %&lt;#include "ruby.h"&gt;, ''</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+cxx.instance_variable_set(:'@have_devel', ok)</div><div class='add'>+</div><div class='add'>+if ok</div><div class='add'>+  $srcs = %w[cxxanyargs.cpp]</div><div class='add'>+  failures = Dir.glob($srcdir + "/failure*.cpp").map {|n| File.basename(n)}</div><div class='add'>+  $cleanfiles &lt;&lt; "$(FAILURES:.cpp=.failed)"</div><div class='add'>+  create_makefile("-test-/cxxanyargs") do |mk|</div><div class='add'>+    mk &lt;&lt; "FAILURES #{['=', failures].join(' ')}\n"</div><div class='add'>+    mk &lt;&lt; ".IGNORE: $(FAILURES:.cpp=.o)\n" unless $mswin</div><div class='add'>+    mk</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/ext/-test-/cxxanyargs/failure.cpp b/ext/-test-/cxxanyargs/failure.cpp<br/>new file mode 100644<br/>index 0000000000..039beb1633<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/cxxanyargs/failure.cpp?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/cxxanyargs/failure.cpp</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+#include &lt;ruby/ruby.h&gt;</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+func_arg1(VALUE self, VALUE arg1)</div><div class='add'>+{</div><div class='add'>+    return arg1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+extern "C" void</div><div class='add'>+Init_failure(void)</div><div class='add'>+{</div><div class='add'>+    rb_define_method(rb_cObject, "arg1", func_arg1, 0);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/cxxanyargs/failurem1.cpp b/ext/-test-/cxxanyargs/failurem1.cpp<br/>new file mode 100644<br/>index 0000000000..e58a0f4e0d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/cxxanyargs/failurem1.cpp?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/cxxanyargs/failurem1.cpp</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+#include &lt;ruby/ruby.h&gt;</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+func_argm1(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    return argc &gt; 0 ? argv[0] : Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+extern "C" void</div><div class='add'>+Init_failure(void)</div><div class='add'>+{</div><div class='add'>+    rb_define_method(rb_cObject, "argm1", func_argm1, 0);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/debug/depend b/ext/-test-/debug/depend<br/>index 392677239a..c3a0c278aa 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/debug/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/debug/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/debug/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/debug/depend</a></div><div class='hunk'>@@ -1,21 +1,319 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-init.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> init.o: init.c</div><div class='ctx'> inspector.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> inspector.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> inspector.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> inspector.o: $(hdrdir)/ruby/debug.h</div><div class='ctx'> inspector.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> inspector.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+inspector.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> inspector.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> inspector.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> inspector.o: $(hdrdir)/ruby/st.h</div><div class='hunk'>@@ -23,10 +321,159 @@ inspector.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> inspector.o: inspector.c</div><div class='ctx'> profile_frames.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> profile_frames.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> profile_frames.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> profile_frames.o: $(hdrdir)/ruby/debug.h</div><div class='ctx'> profile_frames.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> profile_frames.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+profile_frames.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> profile_frames.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> profile_frames.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> profile_frames.o: $(hdrdir)/ruby/st.h</div><div class='head'>diff --git a/ext/-test-/debug/inspector.c b/ext/-test-/debug/inspector.c<br/>index f0c58e59f9..25f9d894d3 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/debug/inspector.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/debug/inspector.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/debug/inspector.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/debug/inspector.c</a></div><div class='hunk'>@@ -8,13 +8,13 @@ callback(const rb_debug_inspector_t *dbg_context, void *data)</div><div class='ctx'>     long i, len = RARRAY_LEN(locs);</div><div class='ctx'>     VALUE binds = rb_ary_new();</div><div class='ctx'>     for (i = 0; i &lt; len; ++i) {</div><div class='del'>-	VALUE entry = rb_ary_new();</div><div class='del'>-	rb_ary_push(binds, entry);</div><div class='del'>-	rb_ary_push(entry, rb_debug_inspector_frame_self_get(dbg_context, i));</div><div class='del'>-	rb_ary_push(entry, rb_debug_inspector_frame_binding_get(dbg_context, i));</div><div class='del'>-	rb_ary_push(entry, rb_debug_inspector_frame_class_get(dbg_context, i));</div><div class='del'>-	rb_ary_push(entry, rb_debug_inspector_frame_iseq_get(dbg_context, i));</div><div class='del'>-	rb_ary_push(entry, rb_ary_entry(locs, i));</div><div class='add'>+        VALUE entry = rb_ary_new();</div><div class='add'>+        rb_ary_push(binds, entry);</div><div class='add'>+        rb_ary_push(entry, rb_debug_inspector_frame_self_get(dbg_context, i));</div><div class='add'>+        rb_ary_push(entry, rb_debug_inspector_frame_binding_get(dbg_context, i));</div><div class='add'>+        rb_ary_push(entry, rb_debug_inspector_frame_class_get(dbg_context, i));</div><div class='add'>+        rb_ary_push(entry, rb_debug_inspector_frame_iseq_get(dbg_context, i));</div><div class='add'>+        rb_ary_push(entry, rb_ary_entry(locs, i));</div><div class='ctx'>     }</div><div class='ctx'>     return binds;</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/debug/profile_frames.c b/ext/-test-/debug/profile_frames.c<br/>index 1656ff7d4b..d2bba7d183 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/debug/profile_frames.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/debug/profile_frames.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/debug/profile_frames.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/debug/profile_frames.c</a></div><div class='hunk'>@@ -18,19 +18,20 @@ profile_frames(VALUE self, VALUE start_v, VALUE num_v)</div><div class='ctx'>     collected_size = rb_profile_frames(start, buff_size, buff, lines);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;collected_size; i++) {</div><div class='del'>-	VALUE ary = rb_ary_new();</div><div class='del'>-	rb_ary_push(ary, rb_profile_frame_path(buff[i]));</div><div class='del'>-	rb_ary_push(ary, rb_profile_frame_absolute_path(buff[i]));</div><div class='del'>-	rb_ary_push(ary, rb_profile_frame_label(buff[i]));</div><div class='del'>-	rb_ary_push(ary, rb_profile_frame_base_label(buff[i]));</div><div class='del'>-	rb_ary_push(ary, rb_profile_frame_full_label(buff[i]));</div><div class='del'>-	rb_ary_push(ary, rb_profile_frame_first_lineno(buff[i]));</div><div class='del'>-	rb_ary_push(ary, rb_profile_frame_classpath(buff[i]));</div><div class='del'>-	rb_ary_push(ary, rb_profile_frame_singleton_method_p(buff[i]));</div><div class='del'>-	rb_ary_push(ary, rb_profile_frame_method_name(buff[i]));</div><div class='del'>-	rb_ary_push(ary, rb_profile_frame_qualified_method_name(buff[i]));</div><div class='del'>-</div><div class='del'>-	rb_ary_push(result, ary);</div><div class='add'>+        VALUE ary = rb_ary_new();</div><div class='add'>+        rb_ary_push(ary, rb_profile_frame_path(buff[i]));</div><div class='add'>+        rb_ary_push(ary, rb_profile_frame_absolute_path(buff[i]));</div><div class='add'>+        rb_ary_push(ary, rb_profile_frame_label(buff[i]));</div><div class='add'>+        rb_ary_push(ary, rb_profile_frame_base_label(buff[i]));</div><div class='add'>+        rb_ary_push(ary, rb_profile_frame_full_label(buff[i]));</div><div class='add'>+        rb_ary_push(ary, rb_profile_frame_first_lineno(buff[i]));</div><div class='add'>+        rb_ary_push(ary, rb_profile_frame_classpath(buff[i]));</div><div class='add'>+        rb_ary_push(ary, rb_profile_frame_singleton_method_p(buff[i]));</div><div class='add'>+        rb_ary_push(ary, rb_profile_frame_method_name(buff[i]));</div><div class='add'>+        rb_ary_push(ary, rb_profile_frame_qualified_method_name(buff[i]));</div><div class='add'>+        rb_ary_push(ary, INT2NUM(lines[i]));</div><div class='add'>+</div><div class='add'>+        rb_ary_push(result, ary);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='head'>diff --git a/ext/-test-/dln/empty/depend b/ext/-test-/dln/empty/depend<br/>index 99151fa055..e16082a7dc 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/dln/empty/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/dln/empty/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/dln/empty/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/dln/empty/depend</a></div><div class='hunk'>@@ -1,3 +1,162 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='add'>+empty.o: $(RUBY_EXTCONF_H)</div><div class='add'>+empty.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+empty.o: $(hdrdir)/ruby.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/st.h</div><div class='add'>+empty.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> empty.o: empty.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/dln/empty/empty.c b/ext/-test-/dln/empty/empty.c<br/>index c4f94f1644..2b4fd42cd2 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/dln/empty/empty.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/dln/empty/empty.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/dln/empty/empty.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/dln/empty/empty.c</a></div><div class='hunk'>@@ -1,3 +1,5 @@</div><div class='add'>+#include "ruby.h"</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_empty(void)</div><div class='ctx'> {</div><div class='head'>diff --git a/ext/-test-/econv/append.c b/ext/-test-/econv/append.c<br/>new file mode 100644<br/>index 0000000000..724cd136c0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/econv/append.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/econv/append.c</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/encoding.h"</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+econv_append(VALUE self, VALUE src, VALUE dst)</div><div class='add'>+{</div><div class='add'>+    rb_econv_t *ec = DATA_PTR(self);</div><div class='add'>+    return rb_econv_str_append(ec, src, dst, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_econv_append(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_define_method(klass, "append", econv_append, 2);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/econv/extconf.rb b/ext/-test-/econv/extconf.rb<br/>new file mode 100644<br/>index 0000000000..d786b15db9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/econv/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/econv/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+require_relative "../auto_ext.rb"</div><div class='add'>+auto_ext(inc: true)</div><div class='head'>diff --git a/ext/-test-/econv/init.c b/ext/-test-/econv/init.c<br/>new file mode 100644<br/>index 0000000000..9772ebe71c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/econv/init.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/econv/init.c</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+#include "ruby.h"</div><div class='add'>+</div><div class='add'>+#define init(n) {void Init_econv_##n(VALUE klass); Init_econv_##n(klass);}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_econv(void)</div><div class='add'>+{</div><div class='add'>+    VALUE mBug = rb_define_module("Bug");</div><div class='add'>+    VALUE klass = rb_define_class_under(mBug, "EConv", rb_path2class("Encoding::Converter"));</div><div class='add'>+    TEST_INIT_FUNCS(init);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/enumerator_kw/depend b/ext/-test-/enumerator_kw/depend<br/>new file mode 100644<br/>index 0000000000..14a9557e41<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/enumerator_kw/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/enumerator_kw/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+enumerator_kw.o: $(RUBY_EXTCONF_H)</div><div class='add'>+enumerator_kw.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/st.h</div><div class='add'>+enumerator_kw.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+enumerator_kw.o: enumerator_kw.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/enumerator_kw/enumerator_kw.c b/ext/-test-/enumerator_kw/enumerator_kw.c<br/>new file mode 100644<br/>index 0000000000..9104c51869<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/enumerator_kw/enumerator_kw.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/enumerator_kw/enumerator_kw.c</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+#include &lt;ruby.h&gt;</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+enumerator_kw(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE opt, enum_args[4];</div><div class='add'>+    enum_args[0] = Qnil;</div><div class='add'>+    enum_args[1] = Qnil;</div><div class='add'>+    rb_scan_args(argc, argv, "01*:", enum_args, enum_args+1, &amp;opt);</div><div class='add'>+    enum_args[3] = self;</div><div class='add'>+    enum_args[2] = opt;</div><div class='add'>+    RETURN_SIZED_ENUMERATOR_KW(self, 4, enum_args, 0, RB_NO_KEYWORDS);</div><div class='add'>+    return rb_yield_values_kw(4, enum_args, RB_NO_KEYWORDS);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_enumerator_kw(void)</div><div class='add'>+{</div><div class='add'>+    VALUE module = rb_define_module("Bug");</div><div class='add'>+    module = rb_define_module_under(module, "EnumeratorKw");</div><div class='add'>+    rb_define_method(module, "m", enumerator_kw, -1);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/enumerator_kw/extconf.rb b/ext/-test-/enumerator_kw/extconf.rb<br/>new file mode 100644<br/>index 0000000000..ab2be73fa8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/enumerator_kw/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/enumerator_kw/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+create_makefile("-test-/enumerator_kw")</div><div class='head'>diff --git a/ext/-test-/eval/eval.c b/ext/-test-/eval/eval.c<br/>new file mode 100644<br/>index 0000000000..983468fc34<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/eval/eval.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/eval/eval.c</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+eval_string(VALUE self, VALUE str)</div><div class='add'>+{</div><div class='add'>+    return rb_eval_string(StringValueCStr(str));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_eval(void)</div><div class='add'>+{</div><div class='add'>+    rb_define_global_function("rb_eval_string", eval_string, 1);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/eval/extconf.rb b/ext/-test-/eval/extconf.rb<br/>new file mode 100644<br/>index 0000000000..cdbf6a8597<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/eval/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/eval/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+require 'mkmf'</div><div class='add'>+create_makefile('-test-/eval')</div><div class='head'>diff --git a/ext/-test-/exception/depend b/ext/-test-/exception/depend<br/>index 9e5ccff274..e00f0b279d 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/exception/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/exception/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/exception/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/exception/depend</a></div><div class='hunk'>@@ -1,9 +1,158 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> dataerror.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> dataerror.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> dataerror.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> dataerror.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> dataerror.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+dataerror.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> dataerror.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> dataerror.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> dataerror.o: $(hdrdir)/ruby/st.h</div><div class='hunk'>@@ -11,38 +160,494 @@ dataerror.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> dataerror.o: dataerror.c</div><div class='ctx'> enc_raise.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> enc_raise.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> enc_raise.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> enc_raise.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> enc_raise.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> enc_raise.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+enc_raise.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> enc_raise.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> enc_raise.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> enc_raise.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> enc_raise.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc_raise.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> enc_raise.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-enc_raise.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> enc_raise.o: enc_raise.c</div><div class='ctx'> ensured.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ensured.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ensured.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ensured.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ensured.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ensured.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ensured.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ensured.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ensured.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ensured.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-ensured.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ensured.o: ensured.c</div><div class='ctx'> init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-init.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> init.o: init.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/fatal/depend b/ext/-test-/fatal/depend<br/>new file mode 100644<br/>index 0000000000..5b1adb6607<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/fatal/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/fatal/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+rb_fatal.o: $(RUBY_EXTCONF_H)</div><div class='add'>+rb_fatal.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/st.h</div><div class='add'>+rb_fatal.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+rb_fatal.o: rb_fatal.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/fatal/rb_fatal.c b/ext/-test-/fatal/rb_fatal.c<br/>index 71aef4658a..eedbc51f8b 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/fatal/rb_fatal.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/fatal/rb_fatal.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/fatal/rb_fatal.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/fatal/rb_fatal.c</a></div><div class='hunk'>@@ -15,5 +15,6 @@ ruby_fatal(VALUE obj, VALUE msg)</div><div class='ctx'> void</div><div class='ctx'> Init_rb_fatal(void)</div><div class='ctx'> {</div><div class='del'>-    rb_define_method(rb_mKernel, "rb_fatal", ruby_fatal, 1);</div><div class='add'>+    VALUE mBug = rb_define_module("Bug");</div><div class='add'>+    rb_define_singleton_method(mBug, "rb_fatal", ruby_fatal, 1);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/file/depend b/ext/-test-/file/depend<br/>index 0eea6063dd..f0fffc2485 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/file/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/file/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/file/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/file/depend</a></div><div class='hunk'>@@ -1,10 +1,168 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> fs.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> fs.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> fs.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> fs.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> fs.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> fs.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+fs.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> fs.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> fs.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> fs.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -15,21 +173,328 @@ fs.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> fs.o: fs.c</div><div class='ctx'> init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-init.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> init.o: init.c</div><div class='ctx'> stat.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> stat.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> stat.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> stat.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> stat.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> stat.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+stat.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> stat.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> stat.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> stat.o: $(hdrdir)/ruby/onigmo.h</div><div class='head'>diff --git a/ext/-test-/file/fs.c b/ext/-test-/file/fs.c<br/>index c9c3473257..eb17e9768e 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/file/fs.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/file/fs.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/file/fs.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/file/fs.c</a></div><div class='hunk'>@@ -28,7 +28,7 @@ typedef struct statvfs statfs_t;</div><div class='ctx'> # if defined HAVE_STRUCT_STATVFS_F_TYPE</div><div class='ctx'> #   define HAVE_STRUCT_STATFS_T_F_TYPE 1</div><div class='ctx'> # endif</div><div class='del'>-#elif defined(HAVE_STRUCT_STATVFS_F_BASETYPE) /* AIX, HP-UX, Solaris */</div><div class='add'>+#elif defined(HAVE_STRUCT_STATVFS_F_BASETYPE) /* AIX, Solaris */</div><div class='ctx'> typedef struct statvfs statfs_t;</div><div class='ctx'> # define STATFS(f, s) statvfs((f), (s))</div><div class='ctx'> # define HAVE_STRUCT_STATFS_T_F_FSTYPENAME 1</div><div class='hunk'>@@ -54,24 +54,24 @@ get_fsname(VALUE self, VALUE str)</div><div class='ctx'>     FilePathValue(str);</div><div class='ctx'>     str = rb_str_encode_ospath(str);</div><div class='ctx'>     if (STATFS(StringValueCStr(str), &amp;st) == -1) {</div><div class='del'>-	rb_sys_fail_str(str);</div><div class='add'>+        rb_sys_fail_str(str);</div><div class='ctx'>     }</div><div class='ctx'> # ifdef HAVE_STRUCT_STATFS_T_F_FSTYPENAME</div><div class='ctx'>     if (st.f_fstypename[0])</div><div class='del'>-	return CSTR(st.f_fstypename);</div><div class='add'>+        return CSTR(st.f_fstypename);</div><div class='ctx'> # endif</div><div class='ctx'> # ifdef HAVE_STRUCT_STATFS_T_F_TYPE</div><div class='ctx'>     switch (st.f_type) {</div><div class='ctx'>       case 0x9123683E: /* BTRFS_SUPER_MAGIC */</div><div class='del'>-	return CSTR("btrfs");</div><div class='add'>+        return CSTR("btrfs");</div><div class='ctx'>       case 0x7461636f: /* OCFS2_SUPER_MAGIC */</div><div class='del'>-	return CSTR("ocfs");</div><div class='add'>+        return CSTR("ocfs");</div><div class='ctx'>       case 0xEF53: /* EXT2_SUPER_MAGIC EXT3_SUPER_MAGIC EXT4_SUPER_MAGIC */</div><div class='del'>-	return CSTR("ext4");</div><div class='add'>+        return CSTR("ext4");</div><div class='ctx'>       case 0x58465342: /* XFS_SUPER_MAGIC */</div><div class='del'>-	return CSTR("xfs");</div><div class='add'>+        return CSTR("xfs");</div><div class='ctx'>       case 0x01021994: /* TMPFS_MAGIC */</div><div class='del'>-	return CSTR("tmpfs");</div><div class='add'>+        return CSTR("tmpfs");</div><div class='ctx'>     }</div><div class='ctx'> # endif</div><div class='ctx'> #endif</div><div class='hunk'>@@ -89,6 +89,9 @@ get_noatime_p(VALUE self, VALUE str)</div><div class='ctx'>        rb_sys_fail_str(str);</div><div class='ctx'>     }</div><div class='ctx'> # ifdef HAVE_STRUCT_STATFS_F_FLAGS</div><div class='add'>+#  ifdef MNT_STRICTATIME</div><div class='add'>+    if (!(st.f_flags &amp; MNT_STRICTATIME)) return Qtrue;</div><div class='add'>+#  endif</div><div class='ctx'> #  ifdef MNT_NOATIME</div><div class='ctx'>     return st.f_flags &amp; MNT_NOATIME ? Qtrue : Qfalse;</div><div class='ctx'> #  elif defined(ST_NOATIME)</div><div class='head'>diff --git a/ext/-test-/float/depend b/ext/-test-/float/depend<br/>index dff14550f7..9391a445a3 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/float/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/float/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/float/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/float/depend</a></div><div class='hunk'>@@ -1,3 +1,326 @@</div><div class='del'>-$(OBJS): $(HDRS) $(ruby_headers)</div><div class='del'>-</div><div class='add'>+# for FreeBSD make</div><div class='ctx'> nextafter.o: nextafter.c $(top_srcdir)/missing/nextafter.c</div><div class='add'>+</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+init.o: $(RUBY_EXTCONF_H)</div><div class='add'>+init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+init.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+init.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/st.h</div><div class='add'>+init.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+init.o: init.c</div><div class='add'>+nextafter.o: $(RUBY_EXTCONF_H)</div><div class='add'>+nextafter.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/st.h</div><div class='add'>+nextafter.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+nextafter.o: $(top_srcdir)/missing/nextafter.c</div><div class='add'>+nextafter.o: nextafter.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/funcall/depend b/ext/-test-/funcall/depend<br/>new file mode 100644<br/>index 0000000000..24e8c54bd9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/funcall/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/funcall/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+funcall.o: $(RUBY_EXTCONF_H)</div><div class='add'>+funcall.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/st.h</div><div class='add'>+funcall.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+funcall.o: funcall.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/funcall/funcall.c b/ext/-test-/funcall/funcall.c<br/>index 4e13c952e5..a68d6de255 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/funcall/funcall.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/funcall/funcall.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/funcall/funcall.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/funcall/funcall.c</a></div><div class='hunk'>@@ -1,7 +1,5 @@</div><div class='ctx'> #include "ruby.h"</div><div class='ctx'> </div><div class='del'>-VALUE rb_funcall_passing_block(VALUE, ID, int, const VALUE*);</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> with_funcall2(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -15,6 +13,24 @@ with_funcall_passing_block(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='add'>+with_funcall_passing_block_kw(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    return rb_funcall_passing_block_kw(self, rb_intern("target"), argc-1, argv+1, FIX2INT(argv[0]));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+with_funcallv_public_kw(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    return rb_funcallv_public_kw(argv[0], SYM2ID(argv[1]), argc-3, argv+3, FIX2INT(argv[2]));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+with_yield_splat_kw(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    return rb_yield_splat_kw(argv[1], FIX2INT(argv[0]));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='ctx'> extra_args_name(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     /*</div><div class='hunk'>@@ -31,13 +47,25 @@ Init_funcall(void)</div><div class='ctx'>     VALUE cRelay = rb_define_module_under(cTestFuncall, "Relay");</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(cRelay,</div><div class='del'>-			       "with_funcall2",</div><div class='del'>-			       with_funcall2,</div><div class='del'>-			       -1);</div><div class='add'>+                               "with_funcall2",</div><div class='add'>+                               with_funcall2,</div><div class='add'>+                               -1);</div><div class='add'>+    rb_define_singleton_method(cRelay,</div><div class='add'>+                               "with_funcall_passing_block_kw",</div><div class='add'>+                               with_funcall_passing_block_kw,</div><div class='add'>+                               -1);</div><div class='add'>+    rb_define_singleton_method(cRelay,</div><div class='add'>+                               "with_funcall_passing_block",</div><div class='add'>+                               with_funcall_passing_block,</div><div class='add'>+                               -1);</div><div class='add'>+    rb_define_singleton_method(cRelay,</div><div class='add'>+                               "with_funcallv_public_kw",</div><div class='add'>+                               with_funcallv_public_kw,</div><div class='add'>+                               -1);</div><div class='ctx'>     rb_define_singleton_method(cRelay,</div><div class='del'>-			       "with_funcall_passing_block",</div><div class='del'>-			       with_funcall_passing_block,</div><div class='del'>-			       -1);</div><div class='add'>+                               "with_yield_splat_kw",</div><div class='add'>+                               with_yield_splat_kw,</div><div class='add'>+                               -1);</div><div class='ctx'>     rb_define_singleton_method(cTestFuncall, "extra_args_name",</div><div class='ctx'>                                 extra_args_name,</div><div class='ctx'>                                 0);</div><div class='head'>diff --git a/ext/-test-/gvl/call_without_gvl/call_without_gvl.c b/ext/-test-/gvl/call_without_gvl/call_without_gvl.c<br/>index f3071d5768..97946e925d 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/gvl/call_without_gvl/call_without_gvl.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/gvl/call_without_gvl/call_without_gvl.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/gvl/call_without_gvl/call_without_gvl.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/gvl/call_without_gvl/call_without_gvl.c</a></div><div class='hunk'>@@ -17,18 +17,62 @@ thread_runnable_sleep(VALUE thread, VALUE timeout)</div><div class='ctx'>     struct timeval timeval;</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(timeout)) {</div><div class='del'>-	rb_raise(rb_eArgError, "timeout must be non nil");</div><div class='add'>+        rb_raise(rb_eArgError, "timeout must be non nil");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     timeval = rb_time_interval(timeout);</div><div class='ctx'> </div><div class='ctx'>     rb_thread_call_without_gvl(native_sleep_callback, &amp;timeval, RUBY_UBF_IO, NULL);</div><div class='ctx'> </div><div class='del'>-    return thread;</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct loop_ctl {</div><div class='add'>+    int notify_fd;</div><div class='add'>+    volatile int stop;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+do_loop(void *p)</div><div class='add'>+{</div><div class='add'>+    struct loop_ctl *ctl = p;</div><div class='add'>+</div><div class='add'>+    /* tell the waiting process they can interrupt us, now */</div><div class='add'>+    ssize_t err = write(ctl-&gt;notify_fd, "", 1);</div><div class='add'>+    if (err == -1) rb_bug("write error");</div><div class='add'>+</div><div class='add'>+    while (!ctl-&gt;stop) {</div><div class='add'>+        struct timeval tv = { 0, 10000 };</div><div class='add'>+        select(0, NULL, NULL, NULL, &amp;tv);</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+stop_set(void *p)</div><div class='add'>+{</div><div class='add'>+    struct loop_ctl *ctl = p;</div><div class='add'>+</div><div class='add'>+    ctl-&gt;stop = 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+thread_ubf_async_safe(VALUE thread, VALUE notify_fd)</div><div class='add'>+{</div><div class='add'>+    struct loop_ctl ctl;</div><div class='add'>+</div><div class='add'>+    ctl.notify_fd = NUM2INT(notify_fd);</div><div class='add'>+    ctl.stop = 0;</div><div class='add'>+</div><div class='add'>+    rb_nogvl(do_loop, &amp;ctl, stop_set, &amp;ctl, RB_NOGVL_UBF_ASYNC_SAFE);</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_call_without_gvl(void)</div><div class='ctx'> {</div><div class='del'>-    rb_define_method(rb_cThread, "__runnable_sleep__", thread_runnable_sleep, 1);</div><div class='add'>+    VALUE mBug = rb_define_module("Bug");</div><div class='add'>+    VALUE klass = rb_define_module_under(mBug, "Thread");</div><div class='add'>+    rb_define_singleton_method(klass, "runnable_sleep", thread_runnable_sleep, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "ubf_async_safe", thread_ubf_async_safe, 1);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/gvl/call_without_gvl/depend b/ext/-test-/gvl/call_without_gvl/depend<br/>index 1f7443898d..cd184aa01c 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/gvl/call_without_gvl/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/gvl/call_without_gvl/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/gvl/call_without_gvl/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/gvl/call_without_gvl/depend</a></div><div class='hunk'>@@ -1,9 +1,158 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> call_without_gvl.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> call_without_gvl.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> call_without_gvl.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> call_without_gvl.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> call_without_gvl.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+call_without_gvl.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> call_without_gvl.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> call_without_gvl.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> call_without_gvl.o: $(hdrdir)/ruby/st.h</div><div class='head'>diff --git a/ext/-test-/hash/depend b/ext/-test-/hash/depend<br/>new file mode 100644<br/>index 0000000000..a8bc47e640<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/hash/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/hash/depend</a></div><div class='hunk'>@@ -0,0 +1,322 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+delete.o: $(RUBY_EXTCONF_H)</div><div class='add'>+delete.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+delete.o: $(hdrdir)/ruby.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/st.h</div><div class='add'>+delete.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+delete.o: delete.c</div><div class='add'>+init.o: $(RUBY_EXTCONF_H)</div><div class='add'>+init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+init.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+init.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/st.h</div><div class='add'>+init.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+init.o: init.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/integer/core_ext.c b/ext/-test-/integer/core_ext.c<br/>index 6d64cdb0c2..e364aa4b40 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/integer/core_ext.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/integer/core_ext.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/integer/core_ext.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/integer/core_ext.c</a></div><div class='hunk'>@@ -1,29 +1,36 @@</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/numeric.h"</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-int_bignum_p(VALUE self)</div><div class='add'>+int_bignum_p(VALUE klass, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     return RB_TYPE_P(self, T_BIGNUM) ? Qtrue : Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-int_fixnum_p(VALUE self)</div><div class='add'>+int_fixnum_p(VALUE klass, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     return FIXNUM_P(self) ? Qtrue : Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_int_to_bignum(VALUE x)</div><div class='add'>+rb_int_to_bignum(VALUE klass, VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     if (FIXNUM_P(x))</div><div class='ctx'>         x = rb_int2big(FIX2LONG(x));</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+positive_pow(VALUE klass, VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return rb_int_positive_pow(NUM2LONG(x), NUM2ULONG(y));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_core_ext(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    rb_define_method(rb_cInteger, "bignum?", int_bignum_p, 0);</div><div class='del'>-    rb_define_method(rb_cInteger, "fixnum?", int_fixnum_p, 0);</div><div class='del'>-    rb_define_method(rb_cInteger, "to_bignum", rb_int_to_bignum, 0);</div><div class='add'>+    rb_define_singleton_method(klass, "bignum?", int_bignum_p, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "fixnum?", int_fixnum_p, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "to_bignum", rb_int_to_bignum, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "positive_pow", positive_pow, 2);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/integer/depend b/ext/-test-/integer/depend<br/>index 48f04d9ca0..b12159f308 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/integer/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/integer/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/integer/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/integer/depend</a></div><div class='hunk'>@@ -1,40 +1,490 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> core_ext.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> core_ext.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> core_ext.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> core_ext.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-core_ext.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> core_ext.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-core_ext.o: $(hdrdir)/ruby/io.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+core_ext.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> core_ext.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-core_ext.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-core_ext.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> core_ext.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> core_ext.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> core_ext.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-core_ext.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-core_ext.o: $(top_srcdir)/internal.h</div><div class='add'>+core_ext.o: $(top_srcdir)/internal/bignum.h</div><div class='add'>+core_ext.o: $(top_srcdir)/internal/bits.h</div><div class='add'>+core_ext.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+core_ext.o: $(top_srcdir)/internal/fixnum.h</div><div class='add'>+core_ext.o: $(top_srcdir)/internal/numeric.h</div><div class='add'>+core_ext.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+core_ext.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+core_ext.o: $(top_srcdir)/internal/vm.h</div><div class='ctx'> core_ext.o: core_ext.c</div><div class='ctx'> init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-init.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> init.o: init.c</div><div class='ctx'> my_integer.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> my_integer.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> my_integer.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> my_integer.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> my_integer.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+my_integer.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> my_integer.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> my_integer.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> my_integer.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> my_integer.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-my_integer.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> my_integer.o: my_integer.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/iseq_load/depend b/ext/-test-/iseq_load/depend<br/>new file mode 100644<br/>index 0000000000..308956550c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/iseq_load/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/iseq_load/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+iseq_load.o: $(RUBY_EXTCONF_H)</div><div class='add'>+iseq_load.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/st.h</div><div class='add'>+iseq_load.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+iseq_load.o: iseq_load.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/iter/depend b/ext/-test-/iter/depend<br/>new file mode 100644<br/>index 0000000000..d14c164cd4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/iter/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/iter/depend</a></div><div class='hunk'>@@ -0,0 +1,482 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+break.o: $(RUBY_EXTCONF_H)</div><div class='add'>+break.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+break.o: $(hdrdir)/ruby.h</div><div class='add'>+break.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+break.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+break.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+break.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+break.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+break.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+break.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+break.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+break.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+break.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+break.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+break.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+break.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+break.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+break.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+break.o: $(hdrdir)/ruby/st.h</div><div class='add'>+break.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+break.o: break.c</div><div class='add'>+init.o: $(RUBY_EXTCONF_H)</div><div class='add'>+init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+init.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+init.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/st.h</div><div class='add'>+init.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+init.o: init.c</div><div class='add'>+yield.o: $(RUBY_EXTCONF_H)</div><div class='add'>+yield.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+yield.o: $(hdrdir)/ruby.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/st.h</div><div class='add'>+yield.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+yield.o: yield.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/iter/yield.c b/ext/-test-/iter/yield.c<br/>index 3cd408a928..0f6f3e87eb 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/iter/yield.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/iter/yield.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/iter/yield.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/iter/yield.c</a></div><div class='hunk'>@@ -4,7 +4,7 @@ static VALUE</div><div class='ctx'> yield_block(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);</div><div class='del'>-    return rb_block_call(self, rb_to_id(argv[0]), argc-1, argv+1, rb_yield_block, 0);</div><div class='add'>+    return rb_block_call_kw(self, rb_to_id(argv[0]), argc-1, argv+1, rb_yield_block, 0, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='head'>diff --git a/ext/-test-/load/dot.dot/depend b/ext/-test-/load/dot.dot/depend<br/>index a0445e288b..d8b8937c3c 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/load/dot.dot/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/load/dot.dot/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/load/dot.dot/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/load/dot.dot/depend</a></div><div class='hunk'>@@ -1,3 +1,162 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='add'>+dot.dot.o: $(RUBY_EXTCONF_H)</div><div class='add'>+dot.dot.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/st.h</div><div class='add'>+dot.dot.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> dot.dot.o: dot.dot.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/load/dot.dot/dot.dot.c b/ext/-test-/load/dot.dot/dot.dot.c<br/>index 936d28931a..ce7563bf8d 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/load/dot.dot/dot.dot.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/load/dot.dot/dot.dot.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/load/dot.dot/dot.dot.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/load/dot.dot/dot.dot.c</a></div><div class='hunk'>@@ -1 +1,3 @@</div><div class='add'>+#include "ruby.h"</div><div class='add'>+</div><div class='ctx'> void Init_dot(void) {}</div><div class='head'>diff --git a/ext/-test-/load/protect/depend b/ext/-test-/load/protect/depend<br/>new file mode 100644<br/>index 0000000000..dd4ee71b62<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/load/protect/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/load/protect/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+protect.o: $(RUBY_EXTCONF_H)</div><div class='add'>+protect.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+protect.o: $(hdrdir)/ruby.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/st.h</div><div class='add'>+protect.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+protect.o: protect.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/marshal/compat/depend b/ext/-test-/marshal/compat/depend<br/>new file mode 100644<br/>index 0000000000..2c3ecf1ab9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/marshal/compat/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/marshal/compat/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+usrcompat.o: $(RUBY_EXTCONF_H)</div><div class='add'>+usrcompat.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/st.h</div><div class='add'>+usrcompat.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+usrcompat.o: usrcompat.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/marshal/internal_ivar/depend b/ext/-test-/marshal/internal_ivar/depend<br/>new file mode 100644<br/>index 0000000000..cacb54a1a7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/marshal/internal_ivar/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/marshal/internal_ivar/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+internal_ivar.o: $(RUBY_EXTCONF_H)</div><div class='add'>+internal_ivar.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/st.h</div><div class='add'>+internal_ivar.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+internal_ivar.o: internal_ivar.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/marshal/internal_ivar/internal_ivar.c b/ext/-test-/marshal/internal_ivar/internal_ivar.c<br/>index 299da27f23..b2188f737a 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/marshal/internal_ivar/internal_ivar.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/marshal/internal_ivar/internal_ivar.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/marshal/internal_ivar/internal_ivar.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/marshal/internal_ivar/internal_ivar.c</a></div><div class='hunk'>@@ -1,12 +1,13 @@</div><div class='ctx'> #include &lt;ruby.h&gt;</div><div class='ctx'> </div><div class='del'>-static ID id_normal_ivar, id_internal_ivar;</div><div class='add'>+static ID id_normal_ivar, id_internal_ivar, id_encoding_short;</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-init(VALUE self, VALUE arg1, VALUE arg2)</div><div class='add'>+init(VALUE self, VALUE arg1, VALUE arg2, VALUE arg3)</div><div class='ctx'> {</div><div class='ctx'>     rb_ivar_set(self, id_normal_ivar, arg1);</div><div class='ctx'>     rb_ivar_set(self, id_internal_ivar, arg2);</div><div class='add'>+    rb_ivar_set(self, id_encoding_short, arg3);</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -22,6 +23,12 @@ get_internal(VALUE self)</div><div class='ctx'>     return rb_attr_get(self, id_internal_ivar);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+get_encoding_short(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return rb_attr_get(self, id_encoding_short);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_internal_ivar(void)</div><div class='ctx'> {</div><div class='hunk'>@@ -29,11 +36,10 @@ Init_internal_ivar(void)</div><div class='ctx'>     VALUE newclass = rb_define_class_under(mMarshal, "InternalIVar", rb_cObject);</div><div class='ctx'> </div><div class='ctx'>     id_normal_ivar = rb_intern_const("normal");</div><div class='del'>-#if 0</div><div class='del'>-    /* leave id_internal_ivar being 0 */</div><div class='del'>-    id_internal_ivar = rb_make_internal_id();</div><div class='del'>-#endif</div><div class='del'>-    rb_define_method(newclass, "initialize", init, 2);</div><div class='add'>+    id_internal_ivar = rb_intern_const("K");</div><div class='add'>+    id_encoding_short = rb_intern_const("E");</div><div class='add'>+    rb_define_method(newclass, "initialize", init, 3);</div><div class='ctx'>     rb_define_method(newclass, "normal", get_normal, 0);</div><div class='ctx'>     rb_define_method(newclass, "internal", get_internal, 0);</div><div class='add'>+    rb_define_method(newclass, "encoding_short", get_encoding_short, 0);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/marshal/usr/depend b/ext/-test-/marshal/usr/depend<br/>new file mode 100644<br/>index 0000000000..717101cbcf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/marshal/usr/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/marshal/usr/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+usrmarshal.o: $(RUBY_EXTCONF_H)</div><div class='add'>+usrmarshal.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/st.h</div><div class='add'>+usrmarshal.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+usrmarshal.o: usrmarshal.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/memory_status/depend b/ext/-test-/memory_status/depend<br/>new file mode 100644<br/>index 0000000000..a65fe66ae3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/memory_status/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/memory_status/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+memory_status.o: $(RUBY_EXTCONF_H)</div><div class='add'>+memory_status.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/st.h</div><div class='add'>+memory_status.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+memory_status.o: memory_status.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/memory_status/memory_status.c b/ext/-test-/memory_status/memory_status.c<br/>index 5775fa56f3..f124c97ca1 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/memory_status/memory_status.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/memory_status/memory_status.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/memory_status/memory_status.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/memory_status/memory_status.c</a></div><div class='hunk'>@@ -10,11 +10,15 @@</div><div class='ctx'> </div><div class='ctx'> static VALUE cMemoryStatus;</div><div class='ctx'> </div><div class='add'>+#undef HAVE_RSS</div><div class='add'>+#undef HAVE_PEAK</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> read_status(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     VALUE size = INT2FIX(0);</div><div class='ctx'> #if defined __APPLE__</div><div class='add'>+# define HAVE_RSS 1</div><div class='ctx'>     VALUE rss;</div><div class='ctx'>     kern_return_t error;</div><div class='ctx'> # if defined MACH_TASK_BASIC_INFO</div><div class='hunk'>@@ -30,7 +34,7 @@ read_status(VALUE self)</div><div class='ctx'>     taskinfo.virtual_size = 0;</div><div class='ctx'>     taskinfo.resident_size = 0;</div><div class='ctx'>     error = task_info(mach_task_self(), flavor,</div><div class='del'>-		      (task_info_t)&amp;taskinfo, &amp;out_count);</div><div class='add'>+                      (task_info_t)&amp;taskinfo, &amp;out_count);</div><div class='ctx'>     if (error != KERN_SUCCESS) return Qnil;</div><div class='ctx'> #ifndef ULL2NUM</div><div class='ctx'> /* "long long" does not exist here, use size_t instead.  */</div><div class='hunk'>@@ -40,14 +44,20 @@ read_status(VALUE self)</div><div class='ctx'>     rss = ULL2NUM(taskinfo.resident_size);</div><div class='ctx'>     rb_struct_aset(self, INT2FIX(1), rss);</div><div class='ctx'> #elif defined _WIN32</div><div class='del'>-    VALUE peak;</div><div class='add'>+# define HAVE_RSS 1</div><div class='add'>+# define HAVE_PEAK 1</div><div class='add'>+    VALUE rss, peak;</div><div class='ctx'>     PROCESS_MEMORY_COUNTERS c;</div><div class='ctx'>     c.cb = sizeof(c);</div><div class='ctx'>     if (!GetProcessMemoryInfo(GetCurrentProcess(), &amp;c, c.cb))</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     size = SIZET2NUM(c.PagefileUsage);</div><div class='add'>+    rss = SIZET2NUM(c.WorkingSetSize);</div><div class='ctx'>     peak = SIZET2NUM(c.PeakWorkingSetSize);</div><div class='del'>-    rb_struct_aset(self, INT2FIX(1), peak);</div><div class='add'>+    rb_struct_aset(self, INT2FIX(2), peak);</div><div class='add'>+#endif</div><div class='add'>+#ifdef HAVE_RSS</div><div class='add'>+    rb_struct_aset(self, INT2FIX(1), rss);</div><div class='ctx'> #endif</div><div class='ctx'>     rb_struct_aset(self, INT2FIX(0), size);</div><div class='ctx'>     return self;</div><div class='hunk'>@@ -58,12 +68,13 @@ Init_memory_status(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mMemory = rb_define_module("Memory");</div><div class='ctx'>     cMemoryStatus =</div><div class='del'>-	rb_struct_define_under(mMemory, "Status", "size",</div><div class='del'>-#if defined __APPLE__</div><div class='del'>-			       "rss",</div><div class='del'>-#elif defined _WIN32</div><div class='del'>-			       "peak",</div><div class='add'>+        rb_struct_define_under(mMemory, "Status", "size",</div><div class='add'>+#ifdef HAVE_RSS</div><div class='add'>+                               "rss",</div><div class='add'>+#endif</div><div class='add'>+#ifdef HAVE_PEAK</div><div class='add'>+                               "peak",</div><div class='ctx'> #endif</div><div class='del'>-			       (char *)NULL);</div><div class='add'>+                               (char *)NULL);</div><div class='ctx'>     rb_define_method(cMemoryStatus, "_update", read_status, 0);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/memory_view/depend b/ext/-test-/memory_view/depend<br/>new file mode 100644<br/>index 0000000000..7ce2d0374c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/memory_view/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/memory_view/depend</a></div><div class='hunk'>@@ -0,0 +1,163 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+memory_view.o: $(RUBY_EXTCONF_H)</div><div class='add'>+memory_view.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/memory_view.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/st.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+memory_view.o: memory_view.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/memory_view/extconf.rb b/ext/-test-/memory_view/extconf.rb<br/>new file mode 100644<br/>index 0000000000..123b80b8d0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/memory_view/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/memory_view/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+require "mkmf"</div><div class='add'>+</div><div class='add'>+require_relative "../auto_ext.rb"</div><div class='add'>+auto_ext(inc: true)</div><div class='head'>diff --git a/ext/-test-/memory_view/memory_view.c b/ext/-test-/memory_view/memory_view.c<br/>new file mode 100644<br/>index 0000000000..c1df0353cf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/memory_view/memory_view.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/memory_view/memory_view.c</a></div><div class='hunk'>@@ -0,0 +1,450 @@</div><div class='add'>+#include "ruby.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_RUBY_MEMORY_VIEW_H</div><div class='add'>+#include "ruby/memory_view.h"</div><div class='add'>+</div><div class='add'>+#define STRUCT_ALIGNOF(T, result) do { \</div><div class='add'>+    (result) = RUBY_ALIGNOF(T); \</div><div class='add'>+} while(0)</div><div class='add'>+</div><div class='add'>+static ID id_str;</div><div class='add'>+static VALUE sym_format;</div><div class='add'>+static VALUE sym_native_size_p;</div><div class='add'>+static VALUE sym_offset;</div><div class='add'>+static VALUE sym_size;</div><div class='add'>+static VALUE sym_repeat;</div><div class='add'>+static VALUE sym_obj;</div><div class='add'>+static VALUE sym_byte_size;</div><div class='add'>+static VALUE sym_readonly;</div><div class='add'>+static VALUE sym_format;</div><div class='add'>+static VALUE sym_item_size;</div><div class='add'>+static VALUE sym_ndim;</div><div class='add'>+static VALUE sym_shape;</div><div class='add'>+static VALUE sym_strides;</div><div class='add'>+static VALUE sym_sub_offsets;</div><div class='add'>+static VALUE sym_endianness;</div><div class='add'>+static VALUE sym_little_endian;</div><div class='add'>+static VALUE sym_big_endian;</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+exportable_string_get_memory_view(VALUE obj, rb_memory_view_t *view, int flags)</div><div class='add'>+{</div><div class='add'>+    VALUE str = rb_ivar_get(obj, id_str);</div><div class='add'>+    rb_memory_view_init_as_byte_array(view, obj, RSTRING_PTR(str), RSTRING_LEN(str), true);</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+exportable_string_memory_view_available_p(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE str = rb_ivar_get(obj, id_str);</div><div class='add'>+    return !NIL_P(str);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_memory_view_entry_t exportable_string_memory_view_entry = {</div><div class='add'>+    exportable_string_get_memory_view,</div><div class='add'>+    NULL,</div><div class='add'>+    exportable_string_memory_view_available_p</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+memory_view_available_p(VALUE mod, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return rb_memory_view_available_p(obj) ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+memory_view_register(VALUE mod, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return rb_memory_view_register(obj, &amp;exportable_string_memory_view_entry) ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+memory_view_item_size_from_format(VALUE mod, VALUE format)</div><div class='add'>+{</div><div class='add'>+    const char *c_str = NULL;</div><div class='add'>+    if (!NIL_P(format))</div><div class='add'>+        c_str = StringValueCStr(format);</div><div class='add'>+    const char *err = NULL;</div><div class='add'>+    ssize_t item_size = rb_memory_view_item_size_from_format(c_str, &amp;err);</div><div class='add'>+    if (!err)</div><div class='add'>+        return rb_assoc_new(SSIZET2NUM(item_size), Qnil);</div><div class='add'>+    else</div><div class='add'>+        return rb_assoc_new(SSIZET2NUM(item_size), rb_str_new_cstr(err));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+memory_view_parse_item_format(VALUE mod, VALUE format)</div><div class='add'>+{</div><div class='add'>+    const char *c_str = NULL;</div><div class='add'>+    if (!NIL_P(format))</div><div class='add'>+        c_str = StringValueCStr(format);</div><div class='add'>+    const char *err = NULL;</div><div class='add'>+</div><div class='add'>+    rb_memory_view_item_component_t *members;</div><div class='add'>+    size_t n_members;</div><div class='add'>+    ssize_t item_size = rb_memory_view_parse_item_format(c_str, &amp;members, &amp;n_members, &amp;err);</div><div class='add'>+</div><div class='add'>+    VALUE result = rb_ary_new_capa(3);</div><div class='add'>+    rb_ary_push(result, SSIZET2NUM(item_size));</div><div class='add'>+</div><div class='add'>+    if (!err) {</div><div class='add'>+        VALUE ary = rb_ary_new_capa((long)n_members);</div><div class='add'>+        size_t i;</div><div class='add'>+        for (i = 0; i &lt; n_members; ++i) {</div><div class='add'>+            VALUE member = rb_hash_new();</div><div class='add'>+            rb_hash_aset(member, sym_format, rb_str_new(&amp;members[i].format, 1));</div><div class='add'>+            rb_hash_aset(member, sym_native_size_p, members[i].native_size_p ? Qtrue : Qfalse);</div><div class='add'>+            rb_hash_aset(member, sym_endianness, members[i].little_endian_p ? sym_little_endian : sym_big_endian);</div><div class='add'>+            rb_hash_aset(member, sym_offset, SSIZET2NUM(members[i].offset));</div><div class='add'>+            rb_hash_aset(member, sym_size, SSIZET2NUM(members[i].size));</div><div class='add'>+            rb_hash_aset(member, sym_repeat, SSIZET2NUM(members[i].repeat));</div><div class='add'>+            rb_ary_push(ary, member);</div><div class='add'>+        }</div><div class='add'>+        xfree(members);</div><div class='add'>+        rb_ary_push(result, ary);</div><div class='add'>+        rb_ary_push(result, Qnil);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_ary_push(result, Qnil); // members</div><div class='add'>+        rb_ary_push(result, rb_str_new_cstr(err));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+memory_view_get_memory_view_info(VALUE mod, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    rb_memory_view_t view;</div><div class='add'>+</div><div class='add'>+    if (!rb_memory_view_get(obj, &amp;view, 0)) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE hash = rb_hash_new();</div><div class='add'>+    rb_hash_aset(hash, sym_obj, view.obj);</div><div class='add'>+    rb_hash_aset(hash, sym_byte_size, SSIZET2NUM(view.byte_size));</div><div class='add'>+    rb_hash_aset(hash, sym_readonly, view.readonly ? Qtrue : Qfalse);</div><div class='add'>+    rb_hash_aset(hash, sym_format, view.format ? rb_str_new_cstr(view.format) : Qnil);</div><div class='add'>+    rb_hash_aset(hash, sym_item_size, SSIZET2NUM(view.item_size));</div><div class='add'>+    rb_hash_aset(hash, sym_ndim, SSIZET2NUM(view.ndim));</div><div class='add'>+</div><div class='add'>+    if (view.shape) {</div><div class='add'>+        VALUE shape = rb_ary_new_capa(view.ndim);</div><div class='add'>+        rb_hash_aset(hash, sym_shape, shape);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_hash_aset(hash, sym_shape, Qnil);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (view.strides) {</div><div class='add'>+        VALUE strides = rb_ary_new_capa(view.ndim);</div><div class='add'>+        rb_hash_aset(hash, sym_strides, strides);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_hash_aset(hash, sym_strides, Qnil);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (view.sub_offsets) {</div><div class='add'>+        VALUE sub_offsets = rb_ary_new_capa(view.ndim);</div><div class='add'>+        rb_hash_aset(hash, sym_sub_offsets, sub_offsets);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_hash_aset(hash, sym_sub_offsets, Qnil);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_memory_view_release(&amp;view);</div><div class='add'>+</div><div class='add'>+    return hash;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+memory_view_fill_contiguous_strides(VALUE mod, VALUE ndim_v, VALUE item_size_v, VALUE shape_v, VALUE row_major_p)</div><div class='add'>+{</div><div class='add'>+    ssize_t i, ndim = NUM2SSIZET(ndim_v);</div><div class='add'>+</div><div class='add'>+    Check_Type(shape_v, T_ARRAY);</div><div class='add'>+    ssize_t *shape = ALLOC_N(ssize_t, ndim);</div><div class='add'>+    for (i = 0; i &lt; ndim; ++i) {</div><div class='add'>+        shape[i] = NUM2SSIZET(RARRAY_AREF(shape_v, i));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ssize_t *strides = ALLOC_N(ssize_t, ndim);</div><div class='add'>+    rb_memory_view_fill_contiguous_strides(ndim, NUM2SSIZET(item_size_v), shape, RTEST(row_major_p), strides);</div><div class='add'>+</div><div class='add'>+    VALUE result = rb_ary_new_capa(ndim);</div><div class='add'>+    for (i = 0; i &lt; ndim; ++i) {</div><div class='add'>+        rb_ary_push(result, SSIZET2NUM(strides[i]));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    xfree(strides);</div><div class='add'>+    xfree(shape);</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+memory_view_get_ref_count(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (rb_memory_view_exported_object_registry == Qundef) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    st_table *table;</div><div class='add'>+    TypedData_Get_Struct(rb_memory_view_exported_object_registry, st_table,</div><div class='add'>+                         &amp;rb_memory_view_exported_object_registry_data_type,</div><div class='add'>+                         table);</div><div class='add'>+</div><div class='add'>+    st_data_t count;</div><div class='add'>+    if (st_lookup(table, (st_data_t)obj, &amp;count)) {</div><div class='add'>+        return ULL2NUM(count);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+memory_view_ref_count_while_exporting_i(VALUE obj, long n)</div><div class='add'>+{</div><div class='add'>+    if (n == 0) {</div><div class='add'>+        return memory_view_get_ref_count(obj);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_memory_view_t view;</div><div class='add'>+    if (!rb_memory_view_get(obj, &amp;view, 0)) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE ref_count = memory_view_ref_count_while_exporting_i(obj, n-1);</div><div class='add'>+    rb_memory_view_release(&amp;view);</div><div class='add'>+</div><div class='add'>+    return ref_count;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+memory_view_ref_count_while_exporting(VALUE mod, VALUE obj, VALUE n)</div><div class='add'>+{</div><div class='add'>+    Check_Type(n, T_FIXNUM);</div><div class='add'>+    return memory_view_ref_count_while_exporting_i(obj, FIX2LONG(n));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+memory_view_extract_item_members(VALUE mod, VALUE str, VALUE format)</div><div class='add'>+{</div><div class='add'>+    StringValue(str);</div><div class='add'>+    StringValue(format);</div><div class='add'>+</div><div class='add'>+    rb_memory_view_item_component_t *members;</div><div class='add'>+    size_t n_members;</div><div class='add'>+    const char *err = NULL;</div><div class='add'>+    (void)rb_memory_view_parse_item_format(RSTRING_PTR(format), &amp;members, &amp;n_members, &amp;err);</div><div class='add'>+    if (err != NULL) {</div><div class='add'>+        rb_raise(rb_eArgError, "Unable to parse item format");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE item = rb_memory_view_extract_item_members(RSTRING_PTR(str), members, n_members);</div><div class='add'>+    xfree(members);</div><div class='add'>+</div><div class='add'>+    return item;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+expstr_initialize(VALUE obj, VALUE s)</div><div class='add'>+{</div><div class='add'>+    if (!NIL_P(s)) {</div><div class='add'>+        Check_Type(s, T_STRING);</div><div class='add'>+    }</div><div class='add'>+    rb_ivar_set(obj, id_str, s);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+mdview_get_memory_view(VALUE obj, rb_memory_view_t *view, int flags)</div><div class='add'>+{</div><div class='add'>+    VALUE buf_v = rb_ivar_get(obj, id_str);</div><div class='add'>+    VALUE format_v = rb_ivar_get(obj, SYM2ID(sym_format));</div><div class='add'>+    VALUE shape_v = rb_ivar_get(obj, SYM2ID(sym_shape));</div><div class='add'>+    VALUE strides_v = rb_ivar_get(obj, SYM2ID(sym_strides));</div><div class='add'>+</div><div class='add'>+    const char *err;</div><div class='add'>+    const ssize_t item_size = rb_memory_view_item_size_from_format(RSTRING_PTR(format_v), &amp;err);</div><div class='add'>+    if (item_size &lt; 0) {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ssize_t ndim = RARRAY_LEN(shape_v);</div><div class='add'>+    if (!NIL_P(strides_v) &amp;&amp; RARRAY_LEN(strides_v) != ndim) {</div><div class='add'>+        rb_raise(rb_eArgError, "strides has an invalid dimension");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ssize_t *shape = ALLOC_N(ssize_t, ndim);</div><div class='add'>+    ssize_t *strides = ALLOC_N(ssize_t, ndim);</div><div class='add'>+    ssize_t i;</div><div class='add'>+    if (!NIL_P(strides_v)) {</div><div class='add'>+        for (i = 0; i &lt; ndim; ++i) {</div><div class='add'>+            shape[i] = NUM2SSIZET(RARRAY_AREF(shape_v, i));</div><div class='add'>+            strides[i] = NUM2SSIZET(RARRAY_AREF(strides_v, i));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        for (i = 0; i &lt; ndim; ++i) {</div><div class='add'>+            shape[i] = NUM2SSIZET(RARRAY_AREF(shape_v, i));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        i = ndim - 1;</div><div class='add'>+        strides[i] = item_size;</div><div class='add'>+        for (; i &gt; 0; --i) {</div><div class='add'>+            strides[i-1] = strides[i] * shape[i];</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_memory_view_init_as_byte_array(view, obj, RSTRING_PTR(buf_v), RSTRING_LEN(buf_v), true);</div><div class='add'>+    view-&gt;format = RSTRING_PTR(format_v);</div><div class='add'>+    view-&gt;item_size = item_size;</div><div class='add'>+    view-&gt;ndim = ndim;</div><div class='add'>+    view-&gt;shape = shape;</div><div class='add'>+    view-&gt;strides = strides;</div><div class='add'>+    view-&gt;sub_offsets = NULL;</div><div class='add'>+</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+mdview_release_memory_view(VALUE obj, rb_memory_view_t *view)</div><div class='add'>+{</div><div class='add'>+    if (view-&gt;shape) xfree((void *)view-&gt;shape);</div><div class='add'>+    if (view-&gt;strides) xfree((void *)view-&gt;strides);</div><div class='add'>+</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+mdview_memory_view_available_p(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_memory_view_entry_t mdview_memory_view_entry = {</div><div class='add'>+    mdview_get_memory_view,</div><div class='add'>+    mdview_release_memory_view,</div><div class='add'>+    mdview_memory_view_available_p</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+mdview_initialize(VALUE obj, VALUE buf, VALUE format, VALUE shape, VALUE strides)</div><div class='add'>+{</div><div class='add'>+    Check_Type(buf, T_STRING);</div><div class='add'>+    StringValue(format);</div><div class='add'>+    Check_Type(shape, T_ARRAY);</div><div class='add'>+    if (!NIL_P(strides)) Check_Type(strides, T_ARRAY);</div><div class='add'>+</div><div class='add'>+    rb_ivar_set(obj, id_str, buf);</div><div class='add'>+    rb_ivar_set(obj, SYM2ID(sym_format), format);</div><div class='add'>+    rb_ivar_set(obj, SYM2ID(sym_shape), shape);</div><div class='add'>+    rb_ivar_set(obj, SYM2ID(sym_strides), strides);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+mdview_aref(VALUE obj, VALUE indices_v)</div><div class='add'>+{</div><div class='add'>+    Check_Type(indices_v, T_ARRAY);</div><div class='add'>+</div><div class='add'>+    rb_memory_view_t view;</div><div class='add'>+    if (!rb_memory_view_get(obj, &amp;view, 0)) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "rb_memory_view_get: failed");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RARRAY_LEN(indices_v) != view.ndim) {</div><div class='add'>+        rb_raise(rb_eKeyError, "Indices has an invalid dimension");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE buf_indices;</div><div class='add'>+    ssize_t *indices = ALLOCV_N(ssize_t, buf_indices, view.ndim);</div><div class='add'>+</div><div class='add'>+    ssize_t i;</div><div class='add'>+    for (i = 0; i &lt; view.ndim; ++i) {</div><div class='add'>+        indices[i] = NUM2SSIZET(RARRAY_AREF(indices_v, i));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE result = rb_memory_view_get_item(&amp;view, indices);</div><div class='add'>+    ALLOCV_END(buf_indices);</div><div class='add'>+    rb_memory_view_release(&amp;view);</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* HAVE_RUBY_MEMORY_VIEW_H */</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_memory_view(void)</div><div class='add'>+{</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#ifdef HAVE_RUBY_MEMORY_VIEW_H</div><div class='add'>+    VALUE mMemoryViewTestUtils = rb_define_module("MemoryViewTestUtils");</div><div class='add'>+</div><div class='add'>+    rb_define_module_function(mMemoryViewTestUtils, "available?", memory_view_available_p, 1);</div><div class='add'>+    rb_define_module_function(mMemoryViewTestUtils, "register", memory_view_register, 1);</div><div class='add'>+    rb_define_module_function(mMemoryViewTestUtils, "item_size_from_format", memory_view_item_size_from_format, 1);</div><div class='add'>+    rb_define_module_function(mMemoryViewTestUtils, "parse_item_format", memory_view_parse_item_format, 1);</div><div class='add'>+    rb_define_module_function(mMemoryViewTestUtils, "get_memory_view_info", memory_view_get_memory_view_info, 1);</div><div class='add'>+    rb_define_module_function(mMemoryViewTestUtils, "fill_contiguous_strides", memory_view_fill_contiguous_strides, 4);</div><div class='add'>+    rb_define_module_function(mMemoryViewTestUtils, "ref_count_while_exporting", memory_view_ref_count_while_exporting, 2);</div><div class='add'>+    rb_define_module_function(mMemoryViewTestUtils, "extract_item_members", memory_view_extract_item_members, 2);</div><div class='add'>+</div><div class='add'>+    VALUE cExportableString = rb_define_class_under(mMemoryViewTestUtils, "ExportableString", rb_cObject);</div><div class='add'>+    rb_define_method(cExportableString, "initialize", expstr_initialize, 1);</div><div class='add'>+    rb_memory_view_register(cExportableString, &amp;exportable_string_memory_view_entry);</div><div class='add'>+</div><div class='add'>+    VALUE cMDView = rb_define_class_under(mMemoryViewTestUtils, "MultiDimensionalView", rb_cObject);</div><div class='add'>+    rb_define_method(cMDView, "initialize", mdview_initialize, 4);</div><div class='add'>+    rb_define_method(cMDView, "[]", mdview_aref, 1);</div><div class='add'>+    rb_memory_view_register(cMDView, &amp;mdview_memory_view_entry);</div><div class='add'>+</div><div class='add'>+    id_str = rb_intern_const("__str__");</div><div class='add'>+    sym_format = ID2SYM(rb_intern_const("format"));</div><div class='add'>+    sym_native_size_p = ID2SYM(rb_intern_const("native_size_p"));</div><div class='add'>+    sym_offset = ID2SYM(rb_intern_const("offset"));</div><div class='add'>+    sym_size = ID2SYM(rb_intern_const("size"));</div><div class='add'>+    sym_repeat = ID2SYM(rb_intern_const("repeat"));</div><div class='add'>+    sym_obj = ID2SYM(rb_intern_const("obj"));</div><div class='add'>+    sym_byte_size = ID2SYM(rb_intern_const("byte_size"));</div><div class='add'>+    sym_readonly = ID2SYM(rb_intern_const("readonly"));</div><div class='add'>+    sym_format = ID2SYM(rb_intern_const("format"));</div><div class='add'>+    sym_item_size = ID2SYM(rb_intern_const("item_size"));</div><div class='add'>+    sym_ndim = ID2SYM(rb_intern_const("ndim"));</div><div class='add'>+    sym_shape = ID2SYM(rb_intern_const("shape"));</div><div class='add'>+    sym_strides = ID2SYM(rb_intern_const("strides"));</div><div class='add'>+    sym_sub_offsets = ID2SYM(rb_intern_const("sub_offsets"));</div><div class='add'>+    sym_endianness = ID2SYM(rb_intern_const("endianness"));</div><div class='add'>+    sym_little_endian = ID2SYM(rb_intern_const("little_endian"));</div><div class='add'>+    sym_big_endian = ID2SYM(rb_intern_const("big_endian"));</div><div class='add'>+</div><div class='add'>+#ifdef WORDS_BIGENDIAN</div><div class='add'>+    rb_const_set(mMemoryViewTestUtils, rb_intern_const("NATIVE_ENDIAN"), sym_big_endian);</div><div class='add'>+#else</div><div class='add'>+    rb_const_set(mMemoryViewTestUtils, rb_intern_const("NATIVE_ENDIAN"), sym_little_endian);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define DEF_ALIGNMENT_CONST(type, TYPE) do { \</div><div class='add'>+    int alignment; \</div><div class='add'>+    STRUCT_ALIGNOF(type, alignment); \</div><div class='add'>+    rb_const_set(mMemoryViewTestUtils, rb_intern_const(#TYPE "_ALIGNMENT"), INT2FIX(alignment)); \</div><div class='add'>+} while(0)</div><div class='add'>+</div><div class='add'>+    DEF_ALIGNMENT_CONST(short, SHORT);</div><div class='add'>+    DEF_ALIGNMENT_CONST(int, INT);</div><div class='add'>+    DEF_ALIGNMENT_CONST(long, LONG);</div><div class='add'>+    DEF_ALIGNMENT_CONST(LONG_LONG, LONG_LONG);</div><div class='add'>+    DEF_ALIGNMENT_CONST(int16_t, INT16);</div><div class='add'>+    DEF_ALIGNMENT_CONST(int32_t, INT32);</div><div class='add'>+    DEF_ALIGNMENT_CONST(int64_t, INT64);</div><div class='add'>+    DEF_ALIGNMENT_CONST(intptr_t, INTPTR);</div><div class='add'>+    DEF_ALIGNMENT_CONST(float, FLOAT);</div><div class='add'>+    DEF_ALIGNMENT_CONST(double, DOUBLE);</div><div class='add'>+</div><div class='add'>+#undef DEF_ALIGNMENT_CONST</div><div class='add'>+</div><div class='add'>+#endif /* HAVE_RUBY_MEMORY_VIEW_H */</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/method/depend b/ext/-test-/method/depend<br/>new file mode 100644<br/>index 0000000000..85cf4d174a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/method/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/method/depend</a></div><div class='hunk'>@@ -0,0 +1,322 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+arity.o: $(RUBY_EXTCONF_H)</div><div class='add'>+arity.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+arity.o: $(hdrdir)/ruby.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/st.h</div><div class='add'>+arity.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+arity.o: arity.c</div><div class='add'>+init.o: $(RUBY_EXTCONF_H)</div><div class='add'>+init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+init.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+init.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/st.h</div><div class='add'>+init.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+init.o: init.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/notimplement/depend b/ext/-test-/notimplement/depend<br/>new file mode 100644<br/>index 0000000000..2303f47594<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/notimplement/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/notimplement/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+bug.o: $(RUBY_EXTCONF_H)</div><div class='add'>+bug.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+bug.o: $(hdrdir)/ruby.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/st.h</div><div class='add'>+bug.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+bug.o: bug.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/num2int/depend b/ext/-test-/num2int/depend<br/>new file mode 100644<br/>index 0000000000..a3283838dd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/num2int/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/num2int/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+num2int.o: $(RUBY_EXTCONF_H)</div><div class='add'>+num2int.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/st.h</div><div class='add'>+num2int.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+num2int.o: num2int.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/num2int/num2int.c b/ext/-test-/num2int/num2int.c<br/>index 3aec3ccf3b..63a441fda6 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/num2int/num2int.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/num2int/num2int.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/num2int/num2int.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/num2int/num2int.c</a></div><div class='hunk'>@@ -4,7 +4,7 @@ static VALUE</div><div class='ctx'> test_num2short(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%d", NUM2SHORT(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%d", NUM2SHORT(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -12,7 +12,7 @@ static VALUE</div><div class='ctx'> test_num2ushort(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%u", NUM2USHORT(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%u", NUM2USHORT(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -20,7 +20,7 @@ static VALUE</div><div class='ctx'> test_num2int(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%d", NUM2INT(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%d", NUM2INT(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -28,7 +28,7 @@ static VALUE</div><div class='ctx'> test_num2uint(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%u", NUM2UINT(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%u", NUM2UINT(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -36,7 +36,7 @@ static VALUE</div><div class='ctx'> test_num2long(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%ld", NUM2LONG(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%ld", NUM2LONG(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -44,7 +44,7 @@ static VALUE</div><div class='ctx'> test_num2ulong(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%lu", NUM2ULONG(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%lu", NUM2ULONG(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -53,7 +53,7 @@ static VALUE</div><div class='ctx'> test_num2ll(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%"PRI_LL_PREFIX"d", NUM2LL(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%"PRI_LL_PREFIX"d", NUM2LL(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -61,7 +61,7 @@ static VALUE</div><div class='ctx'> test_num2ull(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%"PRI_LL_PREFIX"u", NUM2ULL(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%"PRI_LL_PREFIX"u", NUM2ULL(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -70,7 +70,7 @@ static VALUE</div><div class='ctx'> test_fix2short(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%d", FIX2SHORT(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%d", FIX2SHORT(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -78,7 +78,7 @@ static VALUE</div><div class='ctx'> test_fix2int(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%d", FIX2INT(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%d", FIX2INT(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -86,7 +86,7 @@ static VALUE</div><div class='ctx'> test_fix2uint(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%u", FIX2UINT(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%u", FIX2UINT(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -94,7 +94,7 @@ static VALUE</div><div class='ctx'> test_fix2long(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%ld", FIX2LONG(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%ld", FIX2LONG(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -102,7 +102,7 @@ static VALUE</div><div class='ctx'> test_fix2ulong(VALUE obj, VALUE num)</div><div class='ctx'> {</div><div class='ctx'>     char buf[128];</div><div class='del'>-    sprintf(buf, "%lu", FIX2ULONG(num));</div><div class='add'>+    snprintf(buf, sizeof(buf), "%lu", FIX2ULONG(num));</div><div class='ctx'>     return rb_str_new_cstr(buf);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='head'>diff --git a/ext/-test-/path_to_class/depend b/ext/-test-/path_to_class/depend<br/>new file mode 100644<br/>index 0000000000..17f8e957c3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/path_to_class/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/path_to_class/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+path_to_class.o: $(RUBY_EXTCONF_H)</div><div class='add'>+path_to_class.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/st.h</div><div class='add'>+path_to_class.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+path_to_class.o: path_to_class.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/popen_deadlock/depend b/ext/-test-/popen_deadlock/depend<br/>new file mode 100644<br/>index 0000000000..22da87f2fe<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/popen_deadlock/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/popen_deadlock/depend</a></div><div class='hunk'>@@ -0,0 +1,163 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+infinite_loop_dlsym.o: $(RUBY_EXTCONF_H)</div><div class='add'>+infinite_loop_dlsym.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/st.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+infinite_loop_dlsym.o: $(hdrdir)/ruby/thread.h</div><div class='add'>+infinite_loop_dlsym.o: infinite_loop_dlsym.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/popen_deadlock/extconf.rb b/ext/-test-/popen_deadlock/extconf.rb<br/>index 24a7d79931..6b6ee7a6b8 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/popen_deadlock/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/popen_deadlock/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/popen_deadlock/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/popen_deadlock/extconf.rb</a></div><div class='hunk'>@@ -1,5 +1,6 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> case RUBY_PLATFORM</div><div class='ctx'> when /solaris/i, /linux/i</div><div class='add'>+  $LDFLAGS &lt;&lt; " -ldl"</div><div class='ctx'>   create_makefile("-test-/popen_deadlock/infinite_loop_dlsym")</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/-test-/postponed_job/depend b/ext/-test-/postponed_job/depend<br/>index d672e53f00..35aca7f2b0 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/postponed_job/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/postponed_job/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/postponed_job/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/postponed_job/depend</a></div><div class='hunk'>@@ -1 +1,163 @@</div><div class='del'>-postponed_job.o: $(HDRS) $(ruby_headers) $(hdrdir)/ruby/debug.h</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+postponed_job.o: $(RUBY_EXTCONF_H)</div><div class='add'>+postponed_job.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/debug.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/st.h</div><div class='add'>+postponed_job.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+postponed_job.o: postponed_job.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/postponed_job/postponed_job.c b/ext/-test-/postponed_job/postponed_job.c<br/>index 157230e33b..fa57bef6f5 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/postponed_job/postponed_job.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/postponed_job/postponed_job.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/postponed_job/postponed_job.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/postponed_job/postponed_job.c</a></div><div class='hunk'>@@ -1,19 +1,28 @@</div><div class='ctx'> #include "ruby.h"</div><div class='ctx'> #include "ruby/debug.h"</div><div class='ctx'> </div><div class='add'>+static int counter;</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> pjob_callback(void *data)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary = (VALUE)data;</div><div class='ctx'>     Check_Type(ary, T_ARRAY);</div><div class='ctx'> </div><div class='del'>-    rb_ary_replace(ary, rb_funcall(Qnil, rb_intern("caller"), 0));</div><div class='add'>+    rb_ary_push(ary, INT2FIX(counter));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> pjob_register(VALUE self, VALUE obj)</div><div class='ctx'> {</div><div class='add'>+    counter = 0;</div><div class='ctx'>     rb_postponed_job_register(0, pjob_callback, (void *)obj);</div><div class='add'>+    rb_gc_start();</div><div class='add'>+    counter++;</div><div class='add'>+    rb_gc_start();</div><div class='add'>+    counter++;</div><div class='add'>+    rb_gc_start();</div><div class='add'>+    counter++;</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -38,10 +47,45 @@ pjob_register_one(VALUE self, VALUE obj)</div><div class='ctx'> static VALUE</div><div class='ctx'> pjob_call_direct(VALUE self, VALUE obj)</div><div class='ctx'> {</div><div class='add'>+    counter = 0;</div><div class='ctx'>     pjob_callback((void *)obj);</div><div class='add'>+    rb_gc_start();</div><div class='add'>+    counter++;</div><div class='add'>+    rb_gc_start();</div><div class='add'>+    counter++;</div><div class='add'>+    rb_gc_start();</div><div class='add'>+    counter++;</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_PTHREAD_H</div><div class='add'>+#include &lt;pthread.h&gt;</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+pjob_register_in_c_thread_i(void *obj)</div><div class='add'>+{</div><div class='add'>+    rb_postponed_job_register_one(0, pjob_one_callback, (void *)obj);</div><div class='add'>+    rb_postponed_job_register_one(0, pjob_one_callback, (void *)obj);</div><div class='add'>+    rb_postponed_job_register_one(0, pjob_one_callback, (void *)obj);</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+pjob_register_in_c_thread(VALUE self, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    pthread_t thread;</div><div class='add'>+    if (pthread_create(&amp;thread, NULL, pjob_register_in_c_thread_i, (void *)obj)) {</div><div class='add'>+        return Qfalse;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (pthread_join(thread, NULL)) {</div><div class='add'>+        return Qfalse;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return Qtrue;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_postponed_job(VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -49,5 +93,8 @@ Init_postponed_job(VALUE self)</div><div class='ctx'>     rb_define_module_function(mBug, "postponed_job_register", pjob_register, 1);</div><div class='ctx'>     rb_define_module_function(mBug, "postponed_job_register_one", pjob_register_one, 1);</div><div class='ctx'>     rb_define_module_function(mBug, "postponed_job_call_direct", pjob_call_direct, 1);</div><div class='add'>+#ifdef HAVE_PTHREAD_H</div><div class='add'>+    rb_define_module_function(mBug, "postponed_job_register_in_c_thread", pjob_register_in_c_thread, 1);</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='head'>diff --git a/ext/-test-/printf/depend b/ext/-test-/printf/depend<br/>index 79b6c53f50..6dfe1fe03d 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/printf/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/printf/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/printf/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/printf/depend</a></div><div class='hunk'>@@ -1,3 +1,174 @@</div><div class='del'>-$(OBJS): $(HDRS) $(ruby_headers) \</div><div class='del'>-  $(hdrdir)/ruby/encoding.h \</div><div class='del'>-  $(hdrdir)/ruby/oniguruma.h</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+printf.o: $(RUBY_EXTCONF_H)</div><div class='add'>+printf.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+printf.o: $(hdrdir)/ruby.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/onigmo.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/oniguruma.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/st.h</div><div class='add'>+printf.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+printf.o: printf.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/printf/printf.c b/ext/-test-/printf/printf.c<br/>index e793bb7a48..889c0d9f0d 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/printf/printf.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/printf/printf.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/printf/printf.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/printf/printf.c</a></div><div class='hunk'>@@ -25,7 +25,7 @@ uint_to_str(char *p, char *e, unsigned int x)</div><div class='ctx'>     char *e0 = e;</div><div class='ctx'>     if (e &lt;= p) return p;</div><div class='ctx'>     do {</div><div class='del'>-	*--e = x % 10 + '0';</div><div class='add'>+        *--e = x % 10 + '0';</div><div class='ctx'>     } while ((x /= 10) != 0 &amp;&amp; e &gt; p);</div><div class='ctx'>     memmove(p, e, e0 - e);</div><div class='ctx'>     return p + (e0 - e);</div><div class='hunk'>@@ -44,48 +44,48 @@ printf_test_call(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     if (RSTRING_LEN(type) != 1) rb_raise(rb_eArgError, "wrong length(%ld)", RSTRING_LEN(type));</div><div class='ctx'>     switch (cnv = RSTRING_PTR(type)[0]) {</div><div class='ctx'>       case 'd': case 'x': case 'o': case 'X':</div><div class='del'>-	n = NUM2INT(num);</div><div class='del'>-	break;</div><div class='add'>+        n = NUM2INT(num);</div><div class='add'>+        break;</div><div class='ctx'>       case 's':</div><div class='del'>-	s = StringValueCStr(num);</div><div class='del'>-	break;</div><div class='add'>+        s = StringValueCStr(num);</div><div class='add'>+        break;</div><div class='ctx'>       default: rb_raise(rb_eArgError, "wrong conversion(%c)", cnv);</div><div class='ctx'>     }</div><div class='ctx'>     *p++ = '%';</div><div class='ctx'>     if (!NIL_P(opt)) {</div><div class='del'>-	VALUE v;</div><div class='del'>-	Check_Type(opt, T_HASH);</div><div class='del'>-	if (RTEST(rb_hash_aref(opt, ID2SYM(rb_intern("space"))))) {</div><div class='del'>-	    *p++ = ' ';</div><div class='del'>-	}</div><div class='del'>-	if (RTEST(rb_hash_aref(opt, ID2SYM(rb_intern("hash"))))) {</div><div class='del'>-	    *p++ = '#';</div><div class='del'>-	}</div><div class='del'>-	if (RTEST(rb_hash_aref(opt, ID2SYM(rb_intern("plus"))))) {</div><div class='del'>-	    *p++ = '+';</div><div class='del'>-	}</div><div class='del'>-	if (RTEST(rb_hash_aref(opt, ID2SYM(rb_intern("minus"))))) {</div><div class='del'>-	    *p++ = '-';</div><div class='del'>-	}</div><div class='del'>-	if (RTEST(rb_hash_aref(opt, ID2SYM(rb_intern("zero"))))) {</div><div class='del'>-	    *p++ = '0';</div><div class='del'>-	}</div><div class='del'>-	if (!NIL_P(v = rb_hash_aref(opt, ID2SYM(rb_intern("width"))))) {</div><div class='del'>-	    p = uint_to_str(p, format + sizeof(format), NUM2UINT(v));</div><div class='del'>-	}</div><div class='del'>-	if (!NIL_P(v = rb_hash_aref(opt, ID2SYM(rb_intern("prec"))))) {</div><div class='del'>-	    *p++ = '.';</div><div class='del'>-	    if (FIXNUM_P(v))</div><div class='del'>-		p = uint_to_str(p, format + sizeof(format), NUM2UINT(v));</div><div class='del'>-	}</div><div class='add'>+        VALUE v;</div><div class='add'>+        Check_Type(opt, T_HASH);</div><div class='add'>+        if (RTEST(rb_hash_aref(opt, ID2SYM(rb_intern("space"))))) {</div><div class='add'>+            *p++ = ' ';</div><div class='add'>+        }</div><div class='add'>+        if (RTEST(rb_hash_aref(opt, ID2SYM(rb_intern("hash"))))) {</div><div class='add'>+            *p++ = '#';</div><div class='add'>+        }</div><div class='add'>+        if (RTEST(rb_hash_aref(opt, ID2SYM(rb_intern("plus"))))) {</div><div class='add'>+            *p++ = '+';</div><div class='add'>+        }</div><div class='add'>+        if (RTEST(rb_hash_aref(opt, ID2SYM(rb_intern("minus"))))) {</div><div class='add'>+            *p++ = '-';</div><div class='add'>+        }</div><div class='add'>+        if (RTEST(rb_hash_aref(opt, ID2SYM(rb_intern("zero"))))) {</div><div class='add'>+            *p++ = '0';</div><div class='add'>+        }</div><div class='add'>+        if (!NIL_P(v = rb_hash_aref(opt, ID2SYM(rb_intern("width"))))) {</div><div class='add'>+            p = uint_to_str(p, format + sizeof(format), NUM2UINT(v));</div><div class='add'>+        }</div><div class='add'>+        if (!NIL_P(v = rb_hash_aref(opt, ID2SYM(rb_intern("prec"))))) {</div><div class='add'>+            *p++ = '.';</div><div class='add'>+            if (FIXNUM_P(v))</div><div class='add'>+                p = uint_to_str(p, format + sizeof(format), NUM2UINT(v));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     *p++ = cnv;</div><div class='ctx'>     *p++ = '\0';</div><div class='ctx'>     if (cnv == 's') {</div><div class='del'>-	result = rb_enc_sprintf(rb_usascii_encoding(), format, s);</div><div class='add'>+        result = rb_enc_sprintf(rb_usascii_encoding(), format, s);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	result = rb_enc_sprintf(rb_usascii_encoding(), format, n);</div><div class='add'>+        result = rb_enc_sprintf(rb_usascii_encoding(), format, n);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_assoc_new(result, rb_usascii_str_new_cstr(format));</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/proc/depend b/ext/-test-/proc/depend<br/>new file mode 100644<br/>index 0000000000..e3f1cf6ce9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/proc/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/proc/depend</a></div><div class='hunk'>@@ -0,0 +1,482 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+init.o: $(RUBY_EXTCONF_H)</div><div class='add'>+init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+init.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+init.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/st.h</div><div class='add'>+init.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+init.o: init.c</div><div class='add'>+receiver.o: $(RUBY_EXTCONF_H)</div><div class='add'>+receiver.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/st.h</div><div class='add'>+receiver.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+receiver.o: receiver.c</div><div class='add'>+super.o: $(RUBY_EXTCONF_H)</div><div class='add'>+super.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+super.o: $(hdrdir)/ruby.h</div><div class='add'>+super.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+super.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+super.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+super.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+super.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+super.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+super.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+super.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+super.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+super.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+super.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+super.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+super.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+super.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+super.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+super.o: $(hdrdir)/ruby/st.h</div><div class='add'>+super.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+super.o: super.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/proc/super.c b/ext/-test-/proc/super.c<br/>index dbe8af08f1..816520e1df 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/proc/super.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/proc/super.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/proc/super.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/proc/super.c</a></div><div class='hunk'>@@ -9,7 +9,7 @@ bug_proc_call_super(RB_BLOCK_CALL_FUNC_ARGLIST(yieldarg, procarg))</div><div class='ctx'>     args[1] = procarg;</div><div class='ctx'>     ret = rb_call_super(2, args);</div><div class='ctx'>     if (!NIL_P(blockarg)) {</div><div class='del'>-	ret = rb_proc_call(blockarg, ret);</div><div class='add'>+        ret = rb_proc_call(blockarg, ret);</div><div class='ctx'>     }</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/random/bad_version.c b/ext/-test-/random/bad_version.c<br/>new file mode 100644<br/>index 0000000000..dae63a6d19<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/random/bad_version.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/random/bad_version.c</a></div><div class='hunk'>@@ -0,0 +1,135 @@</div><div class='add'>+#include "ruby/random.h"</div><div class='add'>+</div><div class='add'>+#if RUBY_RANDOM_INTERFACE_VERSION_MAJOR &lt; RUBY_RANDOM_INTERFACE_VERSION_MAJOR_MAX</div><div class='add'>+# define DEFINE_VERSION_MAX 1</div><div class='add'>+#else</div><div class='add'>+# define DEFINE_VERSION_MAX 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+NORETURN(static void must_not_reach(void));</div><div class='add'>+static void</div><div class='add'>+must_not_reach(void)</div><div class='add'>+{</div><div class='add'>+    rb_raise(rb_eTypeError, "must not reach");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NORETURN(static void bad_version_init(rb_random_t *, const uint32_t *, size_t));</div><div class='add'>+static void</div><div class='add'>+bad_version_init(rb_random_t *rnd, const uint32_t *buf, size_t len)</div><div class='add'>+{</div><div class='add'>+    must_not_reach();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NORETURN(static void bad_version_init_int32(rb_random_t *, uint32_t));</div><div class='add'>+RB_RANDOM_DEFINE_INIT_INT32_FUNC(bad_version)</div><div class='add'>+</div><div class='add'>+NORETURN(static void bad_version_get_bytes(rb_random_t *, void *, size_t));</div><div class='add'>+static void</div><div class='add'>+bad_version_get_bytes(rb_random_t *rnd, void *p, size_t n)</div><div class='add'>+{</div><div class='add'>+    must_not_reach();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NORETURN(static uint32_t bad_version_get_int32(rb_random_t *));</div><div class='add'>+static uint32_t</div><div class='add'>+bad_version_get_int32(rb_random_t *rnd)</div><div class='add'>+{</div><div class='add'>+    must_not_reach();</div><div class='add'>+    UNREACHABLE_RETURN(0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bad_version_alloc(VALUE klass, const rb_data_type_t *type)</div><div class='add'>+{</div><div class='add'>+    rb_random_t *rnd;</div><div class='add'>+    VALUE obj = TypedData_Make_Struct(klass, rb_random_t, type, rnd);</div><div class='add'>+    rb_random_base_init(rnd);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* version 0 */</div><div class='add'>+static const rb_random_interface_t random_version_zero_if;</div><div class='add'>+</div><div class='add'>+static rb_random_data_type_t version_zero_type = {</div><div class='add'>+    "random/version_zero",</div><div class='add'>+    {</div><div class='add'>+        rb_random_mark,</div><div class='add'>+        RUBY_TYPED_DEFAULT_FREE,</div><div class='add'>+    },</div><div class='add'>+    RB_RANDOM_PARENT,</div><div class='add'>+    (void *)&amp;random_version_zero_if,</div><div class='add'>+    RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+version_zero_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return bad_version_alloc(klass, &amp;version_zero_type);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+init_version_zero(VALUE mod, VALUE base)</div><div class='add'>+{</div><div class='add'>+    VALUE c = rb_define_class_under(mod, "VersionZero", base);</div><div class='add'>+    rb_define_alloc_func(c, version_zero_alloc);</div><div class='add'>+    RB_RANDOM_DATA_INIT_PARENT(version_zero_type);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if DEFINE_VERSION_MAX</div><div class='add'>+/* version max */</div><div class='add'>+static const rb_random_interface_t random_version_max_if;</div><div class='add'>+static rb_random_data_type_t version_max_type = {</div><div class='add'>+    "random/version_max",</div><div class='add'>+    {</div><div class='add'>+        rb_random_mark,</div><div class='add'>+        RUBY_TYPED_DEFAULT_FREE,</div><div class='add'>+    },</div><div class='add'>+    RB_RANDOM_PARENT,</div><div class='add'>+    (void *)&amp;random_version_max_if,</div><div class='add'>+    RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+version_max_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return bad_version_alloc(klass, &amp;version_max_type);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+init_version_max(VALUE mod, VALUE base)</div><div class='add'>+{</div><div class='add'>+    VALUE c = rb_define_class_under(mod, "VersionMax", base);</div><div class='add'>+    rb_define_alloc_func(c, version_max_alloc);</div><div class='add'>+    RB_RANDOM_DATA_INIT_PARENT(version_max_type);</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+static void</div><div class='add'>+init_version_max(mod, base)</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_random_bad_version(VALUE mod, VALUE base)</div><div class='add'>+{</div><div class='add'>+    init_version_zero(mod, base);</div><div class='add'>+    init_version_max(mod, base);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#undef RUBY_RANDOM_INTERFACE_VERSION_MAJOR</div><div class='add'>+</div><div class='add'>+#define RUBY_RANDOM_INTERFACE_VERSION_MAJOR 0</div><div class='add'>+static const rb_random_interface_t random_version_zero_if = {</div><div class='add'>+    0,</div><div class='add'>+    RB_RANDOM_INTERFACE_DEFINE(bad_version)</div><div class='add'>+};</div><div class='add'>+#undef RUBY_RANDOM_INTERFACE_VERSION_MAJOR</div><div class='add'>+</div><div class='add'>+#if DEFINE_VERSION_MAX</div><div class='add'>+#define RUBY_RANDOM_INTERFACE_VERSION_MAJOR RUBY_RANDOM_INTERFACE_VERSION_MAJOR_MAX</div><div class='add'>+static const rb_random_interface_t random_version_max_if = {</div><div class='add'>+    0,</div><div class='add'>+    RB_RANDOM_INTERFACE_DEFINE(bad_version)</div><div class='add'>+};</div><div class='add'>+#undef RUBY_RANDOM_INTERFACE_VERSION_MAJOR</div><div class='add'>+#endif</div><div class='head'>diff --git a/ext/-test-/random/depend b/ext/-test-/random/depend<br/>new file mode 100644<br/>index 0000000000..f2cbf7fc14<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/random/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/random/depend</a></div><div class='hunk'>@@ -0,0 +1,482 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+bad_version.o: $(RUBY_EXTCONF_H)</div><div class='add'>+bad_version.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/random.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/st.h</div><div class='add'>+bad_version.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+bad_version.o: bad_version.c</div><div class='add'>+init.o: $(RUBY_EXTCONF_H)</div><div class='add'>+init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+init.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+init.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/st.h</div><div class='add'>+init.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+init.o: init.c</div><div class='add'>+loop.o: $(RUBY_EXTCONF_H)</div><div class='add'>+loop.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/random.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/st.h</div><div class='add'>+loop.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+loop.o: loop.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/random/extconf.rb b/ext/-test-/random/extconf.rb<br/>new file mode 100644<br/>index 0000000000..d786b15db9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/random/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/random/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+require_relative "../auto_ext.rb"</div><div class='add'>+auto_ext(inc: true)</div><div class='head'>diff --git a/ext/-test-/random/init.c b/ext/-test-/random/init.c<br/>new file mode 100644<br/>index 0000000000..320cba0ad6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/random/init.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/random/init.c</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+#include "ruby.h"</div><div class='add'>+</div><div class='add'>+#define init(n) {void Init_random_##n(VALUE mod, VALUE base); Init_random_##n(mod, base);}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_random(void)</div><div class='add'>+{</div><div class='add'>+    VALUE base = rb_const_get(rb_cRandom, rb_intern_const("Base"));</div><div class='add'>+    VALUE mod = rb_define_module_under(rb_define_module("Bug"), "Random");</div><div class='add'>+    TEST_INIT_FUNCS(init);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/random/loop.c b/ext/-test-/random/loop.c<br/>new file mode 100644<br/>index 0000000000..b789ab1d01<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/random/loop.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/random/loop.c</a></div><div class='hunk'>@@ -0,0 +1,111 @@</div><div class='add'>+#include "ruby/random.h"</div><div class='add'>+</div><div class='add'>+static const uint32_t max_seeds = 1024;</div><div class='add'>+</div><div class='add'>+typedef struct {</div><div class='add'>+    rb_random_t base;</div><div class='add'>+    uint32_t num, idx, *buf;</div><div class='add'>+} rand_loop_t;</div><div class='add'>+</div><div class='add'>+RB_RANDOM_INTERFACE_DECLARE_WITH_REAL(loop);</div><div class='add'>+static const rb_random_interface_t random_loop_if = {</div><div class='add'>+    32,</div><div class='add'>+    RB_RANDOM_INTERFACE_DEFINE_WITH_REAL(loop)</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RB_RANDOM_DEFINE_INIT_INT32_FUNC(loop)</div><div class='add'>+static size_t</div><div class='add'>+random_loop_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    const rand_loop_t *r = ptr;</div><div class='add'>+    return sizeof(*r) + r-&gt;num * sizeof(r-&gt;buf[0]);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static rb_random_data_type_t random_loop_type = {</div><div class='add'>+    "random/loop",</div><div class='add'>+    {</div><div class='add'>+        rb_random_mark,</div><div class='add'>+        RUBY_TYPED_DEFAULT_FREE,</div><div class='add'>+        random_loop_memsize,</div><div class='add'>+    },</div><div class='add'>+    RB_RANDOM_PARENT,</div><div class='add'>+    (void *)&amp;random_loop_if,</div><div class='add'>+    RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+loop_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rand_loop_t *rnd;</div><div class='add'>+    VALUE obj = TypedData_Make_Struct(klass, rand_loop_t, &amp;random_loop_type, rnd);</div><div class='add'>+    rb_random_base_init(&amp;rnd-&gt;base);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+loop_init(rb_random_t *rnd, const uint32_t *buf, size_t len)</div><div class='add'>+{</div><div class='add'>+    rand_loop_t *r = (rand_loop_t *)rnd;</div><div class='add'>+</div><div class='add'>+    if (len &gt; max_seeds) len = max_seeds;</div><div class='add'>+</div><div class='add'>+    REALLOC_N(r-&gt;buf, uint32_t, len);</div><div class='add'>+    MEMCPY(r-&gt;buf, buf, uint32_t, (r-&gt;num = (uint32_t)len));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+loop_get_bytes(rb_random_t *rnd, void *p, size_t n)</div><div class='add'>+{</div><div class='add'>+    uint8_t *buf = p;</div><div class='add'>+    while (n &gt; 0) {</div><div class='add'>+        uint32_t x = loop_get_int32(rnd);</div><div class='add'>+        switch (n % 4) {</div><div class='add'>+          case 0:</div><div class='add'>+            *buf++ = (uint8_t)x;</div><div class='add'>+            n--;</div><div class='add'>+            /* FALLTHROUGH */</div><div class='add'>+          case 3:</div><div class='add'>+            *buf++ = (uint8_t)x;</div><div class='add'>+            n--;</div><div class='add'>+            /* FALLTHROUGH */</div><div class='add'>+          case 2:</div><div class='add'>+            *buf++ = (uint8_t)x;</div><div class='add'>+            n--;</div><div class='add'>+            /* FALLTHROUGH */</div><div class='add'>+          case 1:</div><div class='add'>+            *buf++ = (uint8_t)x;</div><div class='add'>+            n--;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static uint32_t</div><div class='add'>+loop_get_int32(rb_random_t *rnd)</div><div class='add'>+{</div><div class='add'>+    rand_loop_t *r = (rand_loop_t *)rnd;</div><div class='add'>+    if (r-&gt;idx &lt; r-&gt;num) {</div><div class='add'>+        uint32_t x = r-&gt;buf[r-&gt;idx++];</div><div class='add'>+        if (r-&gt;idx &gt;= r-&gt;num) r-&gt;idx = 0;</div><div class='add'>+        return x;</div><div class='add'>+    }</div><div class='add'>+    else if (r-&gt;num) {</div><div class='add'>+        return r-&gt;buf[r-&gt;idx = 0];</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static double</div><div class='add'>+loop_get_real(rb_random_t *rnd, int excl)</div><div class='add'>+{</div><div class='add'>+    uint32_t a = loop_get_int32(rnd);</div><div class='add'>+    return ldexp(a, -16);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_random_loop(VALUE mod, VALUE base)</div><div class='add'>+{</div><div class='add'>+    VALUE c = rb_define_class_under(mod, "Loop", base);</div><div class='add'>+    rb_define_alloc_func(c, loop_alloc);</div><div class='add'>+    RB_RANDOM_DATA_INIT_PARENT(random_loop_type);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/rational/depend b/ext/-test-/rational/depend<br/>index 4f7c4e4900..ce977821b8 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/rational/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/rational/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/rational/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/rational/depend</a></div><div class='hunk'>@@ -5,18 +5,175 @@ rat.o: rat.c $(top_srcdir)/internal.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> rat.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> rat.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> rat.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> rat.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-rat.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> rat.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-rat.o: $(hdrdir)/ruby/io.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+rat.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> rat.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-rat.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-rat.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> rat.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> rat.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> rat.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-rat.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-rat.o: $(top_srcdir)/internal.h</div><div class='add'>+rat.o: $(top_srcdir)/internal/bignum.h</div><div class='add'>+rat.o: $(top_srcdir)/internal/bits.h</div><div class='add'>+rat.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+rat.o: $(top_srcdir)/internal/fixnum.h</div><div class='add'>+rat.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+rat.o: $(top_srcdir)/internal/numeric.h</div><div class='add'>+rat.o: $(top_srcdir)/internal/rational.h</div><div class='add'>+rat.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+rat.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+rat.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+rat.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+rat.o: $(top_srcdir)/ruby_assert.h</div><div class='add'>+rat.o: $(top_srcdir)/shape.h</div><div class='ctx'> rat.o: rat.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/rational/rat.c b/ext/-test-/rational/rat.c<br/>index 772546fca8..6489fe3d7c 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/rational/rat.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/rational/rat.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/rational/rat.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/rational/rat.c</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/rational.h"</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -14,14 +14,14 @@ big(VALUE x)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-gcd_normal(VALUE x, VALUE y)</div><div class='add'>+gcd_normal(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     return rb_big_norm(rb_gcd_normal(rb_to_int(x), rb_to_int(y)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='ctx'> static VALUE</div><div class='del'>-gcd_gmp(VALUE x, VALUE y)</div><div class='add'>+gcd_gmp(VALUE klass, VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     return rb_big_norm(rb_gcd_gmp(big(x), big(y)));</div><div class='ctx'> }</div><div class='hunk'>@@ -29,9 +29,20 @@ gcd_gmp(VALUE x, VALUE y)</div><div class='ctx'> #define gcd_gmp rb_f_notimplement</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+s_rational_raw(VALUE klass, VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return rb_rational_raw(x, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='del'>-Init_rational(VALUE klass)</div><div class='add'>+Init_rational(void)</div><div class='ctx'> {</div><div class='del'>-    rb_define_method(rb_cInteger, "gcd_normal", gcd_normal, 1);</div><div class='del'>-    rb_define_method(rb_cInteger, "gcd_gmp", gcd_gmp, 1);</div><div class='add'>+    VALUE mBug = rb_define_module("Bug");</div><div class='add'>+    VALUE klass = rb_define_module_under(mBug, "Rational");</div><div class='add'>+</div><div class='add'>+    rb_define_singleton_method(klass, "gcd_normal", gcd_normal, 2);</div><div class='add'>+    rb_define_singleton_method(klass, "gcd_gmp", gcd_gmp, 2);</div><div class='add'>+</div><div class='add'>+    rb_define_singleton_method(klass, "raw", s_rational_raw, 2);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/rb_call_super_kw/depend b/ext/-test-/rb_call_super_kw/depend<br/>new file mode 100644<br/>index 0000000000..3512a081c9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/rb_call_super_kw/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/rb_call_super_kw/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+rb_call_super_kw.o: $(RUBY_EXTCONF_H)</div><div class='add'>+rb_call_super_kw.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/st.h</div><div class='add'>+rb_call_super_kw.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+rb_call_super_kw.o: rb_call_super_kw.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/rb_call_super_kw/extconf.rb b/ext/-test-/rb_call_super_kw/extconf.rb<br/>new file mode 100644<br/>index 0000000000..c6a5c720d7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/rb_call_super_kw/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/rb_call_super_kw/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+create_makefile("-test-/rb_call_super_kw")</div><div class='head'>diff --git a/ext/-test-/rb_call_super_kw/rb_call_super_kw.c b/ext/-test-/rb_call_super_kw/rb_call_super_kw.c<br/>new file mode 100644<br/>index 0000000000..61681ed733<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/rb_call_super_kw/rb_call_super_kw.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/rb_call_super_kw/rb_call_super_kw.c</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+#include &lt;ruby.h&gt;</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_call_super_kw_m(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    return rb_call_super_kw(argc, argv, RB_PASS_CALLED_KEYWORDS);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_rb_call_super_kw(void)</div><div class='add'>+{</div><div class='add'>+    VALUE module = rb_define_module("Bug");</div><div class='add'>+    module = rb_define_module_under(module, "RbCallSuperKw");</div><div class='add'>+    rb_define_method(module, "m", rb_call_super_kw_m, -1);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/recursion/depend b/ext/-test-/recursion/depend<br/>new file mode 100644<br/>index 0000000000..e499f95e73<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/recursion/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/recursion/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+recursion.o: $(RUBY_EXTCONF_H)</div><div class='add'>+recursion.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/st.h</div><div class='add'>+recursion.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+recursion.o: recursion.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/regexp/depend b/ext/-test-/regexp/depend<br/>new file mode 100644<br/>index 0000000000..fa431e013a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/regexp/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/regexp/depend</a></div><div class='hunk'>@@ -0,0 +1,323 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+init.o: $(RUBY_EXTCONF_H)</div><div class='add'>+init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+init.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+init.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/st.h</div><div class='add'>+init.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+init.o: init.c</div><div class='add'>+parse_depth_limit.o: $(RUBY_EXTCONF_H)</div><div class='add'>+parse_depth_limit.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/onigmo.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/st.h</div><div class='add'>+parse_depth_limit.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+parse_depth_limit.o: parse_depth_limit.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/scan_args/depend b/ext/-test-/scan_args/depend<br/>new file mode 100644<br/>index 0000000000..2194936b04<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/scan_args/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/scan_args/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+scan_args.o: $(RUBY_EXTCONF_H)</div><div class='add'>+scan_args.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/st.h</div><div class='add'>+scan_args.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+scan_args.o: scan_args.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/scan_args/extconf.rb b/ext/-test-/scan_args/extconf.rb<br/>index 6cae9c2779..6cae9c2779 100755..100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/scan_args/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/scan_args/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/scan_args/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/scan_args/extconf.rb</a></div><div class='head'>diff --git a/ext/-test-/scan_args/scan_args.c b/ext/-test-/scan_args/scan_args.c<br/>index dca353f643..8696aad3c7 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/scan_args/scan_args.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/scan_args/scan_args.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/scan_args/scan_args.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/scan_args/scan_args.c</a></div><div class='hunk'>@@ -250,6 +250,24 @@ scan_args_lead_opt_var_trail_hash(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     return rb_ary_new_from_values(numberof(args), args);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+scan_args_k_lead_opt_hash(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE args[4];</div><div class='add'>+    int n = rb_scan_args_kw(RB_SCAN_ARGS_KEYWORDS, argc, argv, "11:", args+1, args+2, args+3);</div><div class='add'>+    args[0] = INT2NUM(n);</div><div class='add'>+    return rb_ary_new_from_values(numberof(args), args);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+scan_args_n_lead_opt_hash(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE args[4];</div><div class='add'>+    int n = rb_scan_args_kw(RB_SCAN_ARGS_LAST_HASH_KEYWORDS, argc, argv, "11:", args+1, args+2, args+3);</div><div class='add'>+    args[0] = INT2NUM(n);</div><div class='add'>+    return rb_ary_new_from_values(numberof(args), args);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_scan_args(void)</div><div class='ctx'> {</div><div class='hunk'>@@ -282,5 +300,6 @@ Init_scan_args(void)</div><div class='ctx'>     rb_define_singleton_method(module, "lead_var_trail_hash", scan_args_lead_var_trail_hash, -1);</div><div class='ctx'>     rb_define_singleton_method(module, "opt_var_trail_hash", scan_args_opt_var_trail_hash, -1);</div><div class='ctx'>     rb_define_singleton_method(module, "lead_opt_var_trail_hash", scan_args_lead_opt_var_trail_hash, -1);</div><div class='add'>+    rb_define_singleton_method(module, "k_lead_opt_hash", scan_args_k_lead_opt_hash, -1);</div><div class='add'>+    rb_define_singleton_method(module, "n_lead_opt_hash", scan_args_n_lead_opt_hash, -1);</div><div class='ctx'> }</div><div class='del'>-</div><div class='head'>diff --git a/ext/-test-/st/foreach/depend b/ext/-test-/st/foreach/depend<br/>new file mode 100644<br/>index 0000000000..0464ee3c53<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/st/foreach/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/st/foreach/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+foreach.o: $(RUBY_EXTCONF_H)</div><div class='add'>+foreach.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/st.h</div><div class='add'>+foreach.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+foreach.o: foreach.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/st/foreach/foreach.c b/ext/-test-/st/foreach/foreach.c<br/>index 209b535503..cde49fb26d 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/st/foreach/foreach.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/st/foreach/foreach.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/st/foreach/foreach.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/st/foreach/foreach.c</a></div><div class='hunk'>@@ -12,22 +12,22 @@ static void</div><div class='ctx'> force_unpack_check(struct checker *c, st_data_t key, st_data_t val)</div><div class='ctx'> {</div><div class='ctx'>     if (c-&gt;nr == 0) {</div><div class='del'>-	st_data_t i;</div><div class='add'>+        st_data_t i;</div><div class='ctx'> </div><div class='del'>-	if (c-&gt;tbl-&gt;bins != NULL) rb_bug("should be packed\n");</div><div class='add'>+        if (c-&gt;tbl-&gt;bins != NULL) rb_bug("should be packed\n");</div><div class='ctx'> </div><div class='del'>-	/* force unpacking during iteration: */</div><div class='del'>-	for (i = 1; i &lt; expect_size; i++)</div><div class='del'>-	    st_add_direct(c-&gt;tbl, i, i);</div><div class='add'>+        /* force unpacking during iteration: */</div><div class='add'>+        for (i = 1; i &lt; expect_size; i++)</div><div class='add'>+            st_add_direct(c-&gt;tbl, i, i);</div><div class='ctx'> </div><div class='del'>-	if (c-&gt;tbl-&gt;bins == NULL) rb_bug("should be unpacked\n");</div><div class='add'>+        if (c-&gt;tbl-&gt;bins == NULL) rb_bug("should be unpacked\n");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (key != c-&gt;nr) {</div><div class='del'>-	rb_bug("unexpected key: %"PRIuVALUE" (expected %"PRIuVALUE")\n", (VALUE)key, (VALUE)c-&gt;nr);</div><div class='add'>+        rb_bug("unexpected key: %"PRIuVALUE" (expected %"PRIuVALUE")\n", (VALUE)key, (VALUE)c-&gt;nr);</div><div class='ctx'>     }</div><div class='ctx'>     if (val != c-&gt;nr) {</div><div class='del'>-	rb_bug("unexpected val: %"PRIuVALUE" (expected %"PRIuVALUE")\n", (VALUE)val, (VALUE)c-&gt;nr);</div><div class='add'>+        rb_bug("unexpected val: %"PRIuVALUE" (expected %"PRIuVALUE")\n", (VALUE)val, (VALUE)c-&gt;nr);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     c-&gt;nr++;</div><div class='hunk'>@@ -39,34 +39,34 @@ unp_fec_i(st_data_t key, st_data_t val, st_data_t args, int error)</div><div class='ctx'>     struct checker *c = (struct checker *)args;</div><div class='ctx'> </div><div class='ctx'>     if (error) {</div><div class='del'>-	if (c-&gt;test == ID2SYM(rb_intern("delete2")))</div><div class='del'>-	    return ST_STOP;</div><div class='add'>+        if (c-&gt;test == ID2SYM(rb_intern("delete2")))</div><div class='add'>+            return ST_STOP;</div><div class='ctx'> </div><div class='del'>-	rb_bug("unexpected error");</div><div class='add'>+        rb_bug("unexpected error");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     force_unpack_check(c, key, val);</div><div class='ctx'> </div><div class='ctx'>     if (c-&gt;test == ID2SYM(rb_intern("check"))) {</div><div class='del'>-	return ST_CHECK;</div><div class='add'>+        return ST_CHECK;</div><div class='ctx'>     }</div><div class='ctx'>     if (c-&gt;test == ID2SYM(rb_intern("delete1"))) {</div><div class='del'>-	if (c-&gt;nr == 1) return ST_DELETE;</div><div class='del'>-	return ST_CHECK;</div><div class='add'>+        if (c-&gt;nr == 1) return ST_DELETE;</div><div class='add'>+        return ST_CHECK;</div><div class='ctx'>     }</div><div class='ctx'>     if (c-&gt;test == ID2SYM(rb_intern("delete2"))) {</div><div class='del'>-	if (c-&gt;nr == 1) {</div><div class='del'>-	    st_data_t k = 0;</div><div class='del'>-	    st_data_t v;</div><div class='del'>-</div><div class='del'>-	    if (!st_delete(c-&gt;tbl, &amp;k, &amp;v)) {</div><div class='del'>-		rb_bug("failed to delete\n");</div><div class='del'>-	    }</div><div class='del'>-	    if (v != 0) {</div><div class='del'>-		rb_bug("unexpected value deleted: %"PRIuVALUE" (expected 0)", (VALUE)v);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	return ST_CHECK;</div><div class='add'>+        if (c-&gt;nr == 1) {</div><div class='add'>+            st_data_t k = 0;</div><div class='add'>+            st_data_t v;</div><div class='add'>+</div><div class='add'>+            if (!st_delete(c-&gt;tbl, &amp;k, &amp;v)) {</div><div class='add'>+                rb_bug("failed to delete\n");</div><div class='add'>+            }</div><div class='add'>+            if (v != 0) {</div><div class='add'>+                rb_bug("unexpected value deleted: %"PRIuVALUE" (expected 0)", (VALUE)v);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        return ST_CHECK;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_raise(rb_eArgError, "unexpected arg: %+"PRIsVALUE, c-&gt;test);</div><div class='hunk'>@@ -89,13 +89,13 @@ unp_fec(VALUE self, VALUE test)</div><div class='ctx'>     st_foreach_check(tbl, unp_fec_i, (st_data_t)&amp;c, -1);</div><div class='ctx'> </div><div class='ctx'>     if (c.test == ID2SYM(rb_intern("delete2"))) {</div><div class='del'>-	if (c.nr != 1) {</div><div class='del'>-	    rb_bug("mismatched iteration: %"PRIuVALUE" (expected 1)\n", (VALUE)c.nr);</div><div class='del'>-	}</div><div class='add'>+        if (c.nr != 1) {</div><div class='add'>+            rb_bug("mismatched iteration: %"PRIuVALUE" (expected 1)\n", (VALUE)c.nr);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (c.nr != expect_size) {</div><div class='del'>-	rb_bug("mismatched iteration: %"PRIuVALUE" (expected %"PRIuVALUE")\n",</div><div class='del'>-		(VALUE)c.nr, (VALUE)expect_size);</div><div class='add'>+        rb_bug("mismatched iteration: %"PRIuVALUE" (expected %"PRIuVALUE")\n",</div><div class='add'>+                (VALUE)c.nr, (VALUE)expect_size);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (tbl-&gt;bins == NULL) rb_bug("should be unpacked\n");</div><div class='hunk'>@@ -106,28 +106,28 @@ unp_fec(VALUE self, VALUE test)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-unp_fe_i(st_data_t key, st_data_t val, st_data_t args, int error)</div><div class='add'>+unp_fe_i(st_data_t key, st_data_t val, st_data_t args)</div><div class='ctx'> {</div><div class='ctx'>     struct checker *c = (struct checker *)args;</div><div class='ctx'> </div><div class='ctx'>     force_unpack_check(c, key, val);</div><div class='ctx'>     if (c-&gt;test == ID2SYM(rb_intern("unpacked"))) {</div><div class='del'>-	return ST_CONTINUE;</div><div class='add'>+        return ST_CONTINUE;</div><div class='ctx'>     }</div><div class='ctx'>     else if (c-&gt;test == ID2SYM(rb_intern("unpack_delete"))) {</div><div class='del'>-	if (c-&gt;nr == 1) {</div><div class='del'>-	    st_data_t k = 0;</div><div class='del'>-	    st_data_t v;</div><div class='del'>-</div><div class='del'>-	    if (!st_delete(c-&gt;tbl, &amp;k, &amp;v)) {</div><div class='del'>-		rb_bug("failed to delete\n");</div><div class='del'>-	    }</div><div class='del'>-	    if (v != 0) {</div><div class='del'>-		rb_bug("unexpected value deleted: %"PRIuVALUE" (expected 0)", (VALUE)v);</div><div class='del'>-	    }</div><div class='del'>-	    return ST_CONTINUE;</div><div class='del'>-	}</div><div class='del'>-	rb_bug("should never get here\n");</div><div class='add'>+        if (c-&gt;nr == 1) {</div><div class='add'>+            st_data_t k = 0;</div><div class='add'>+            st_data_t v;</div><div class='add'>+</div><div class='add'>+            if (!st_delete(c-&gt;tbl, &amp;k, &amp;v)) {</div><div class='add'>+                rb_bug("failed to delete\n");</div><div class='add'>+            }</div><div class='add'>+            if (v != 0) {</div><div class='add'>+                rb_bug("unexpected value deleted: %"PRIuVALUE" (expected 0)", (VALUE)v);</div><div class='add'>+            }</div><div class='add'>+            return ST_CONTINUE;</div><div class='add'>+        }</div><div class='add'>+        rb_bug("should never get here\n");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_raise(rb_eArgError, "unexpected arg: %+"PRIsVALUE, c-&gt;test);</div><div class='hunk'>@@ -150,13 +150,13 @@ unp_fe(VALUE self, VALUE test)</div><div class='ctx'>     st_foreach(tbl, unp_fe_i, (st_data_t)&amp;c);</div><div class='ctx'> </div><div class='ctx'>     if (c.test == ID2SYM(rb_intern("unpack_delete"))) {</div><div class='del'>-	if (c.nr != 1) {</div><div class='del'>-	    rb_bug("mismatched iteration: %"PRIuVALUE" (expected 1)\n", (VALUE)c.nr);</div><div class='del'>-	}</div><div class='add'>+        if (c.nr != 1) {</div><div class='add'>+            rb_bug("mismatched iteration: %"PRIuVALUE" (expected 1)\n", (VALUE)c.nr);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (c.nr != expect_size) {</div><div class='del'>-	rb_bug("mismatched iteration: %"PRIuVALUE" (expected %"PRIuVALUE"o)\n",</div><div class='del'>-		(VALUE)c.nr, (VALUE)expect_size);</div><div class='add'>+        rb_bug("mismatched iteration: %"PRIuVALUE" (expected %"PRIuVALUE"o)\n",</div><div class='add'>+                (VALUE)c.nr, (VALUE)expect_size);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (tbl-&gt;bins == NULL) rb_bug("should be unpacked\n");</div><div class='head'>diff --git a/ext/-test-/st/numhash/depend b/ext/-test-/st/numhash/depend<br/>new file mode 100644<br/>index 0000000000..9665ed6e39<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/st/numhash/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/st/numhash/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+numhash.o: $(RUBY_EXTCONF_H)</div><div class='add'>+numhash.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/st.h</div><div class='add'>+numhash.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+numhash.o: numhash.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/st/numhash/numhash.c b/ext/-test-/st/numhash/numhash.c<br/>index fc35f476cd..7e8d5d9fe2 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/st/numhash/numhash.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/st/numhash/numhash.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/st/numhash/numhash.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/st/numhash/numhash.c</a></div><div class='hunk'>@@ -42,7 +42,7 @@ numhash_aref(VALUE self, VALUE key)</div><div class='ctx'>     st_table *tbl = (st_table *)Check_TypedStruct(self, &amp;numhash_type);</div><div class='ctx'>     if (!SPECIAL_CONST_P(key)) rb_raise(rb_eArgError, "not a special const");</div><div class='ctx'>     if (st_lookup(tbl, (st_data_t)key, &amp;data))</div><div class='del'>-	return (VALUE)data;</div><div class='add'>+        return (VALUE)data;</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -57,7 +57,7 @@ numhash_aset(VALUE self, VALUE key, VALUE data)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-numhash_i(st_data_t key, st_data_t value, st_data_t arg)</div><div class='add'>+numhash_i(st_data_t key, st_data_t value, st_data_t arg, int _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ret;</div><div class='ctx'>     ret = rb_yield_values(3, (VALUE)key, (VALUE)value, (VALUE)arg);</div><div class='hunk'>@@ -79,12 +79,12 @@ update_func(st_data_t *key, st_data_t *value, st_data_t arg, int existing)</div><div class='ctx'>     VALUE ret = rb_yield_values(existing ? 2 : 1, (VALUE)*key, (VALUE)*value);</div><div class='ctx'>     switch (ret) {</div><div class='ctx'>       case Qfalse:</div><div class='del'>-	return ST_STOP;</div><div class='add'>+        return ST_STOP;</div><div class='ctx'>       case Qnil:</div><div class='del'>-	return ST_DELETE;</div><div class='add'>+        return ST_DELETE;</div><div class='ctx'>       default:</div><div class='del'>-	*value = ret;</div><div class='del'>-	return ST_CONTINUE;</div><div class='add'>+        *value = ret;</div><div class='add'>+        return ST_CONTINUE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -93,9 +93,9 @@ numhash_update(VALUE self, VALUE key)</div><div class='ctx'> {</div><div class='ctx'>     st_table *table = (st_table *)Check_TypedStruct(self, &amp;numhash_type);</div><div class='ctx'>     if (st_update(table, (st_data_t)key, update_func, 0))</div><div class='del'>-	return Qtrue;</div><div class='add'>+        return Qtrue;</div><div class='ctx'>     else</div><div class='del'>-	return Qfalse;</div><div class='add'>+        return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if SIZEOF_LONG == SIZEOF_VOIDP</div><div class='hunk'>@@ -117,7 +117,7 @@ numhash_delete_safe(VALUE self, VALUE key)</div><div class='ctx'>     st_table *table = (st_table *)Check_TypedStruct(self, &amp;numhash_type);</div><div class='ctx'>     st_data_t val, k = (st_data_t)key;</div><div class='ctx'>     if (st_delete_safe(table, &amp;k, &amp;val, (st_data_t)self)) {</div><div class='del'>-	return val;</div><div class='add'>+        return val;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -125,7 +125,7 @@ numhash_delete_safe(VALUE self, VALUE key)</div><div class='ctx'> void</div><div class='ctx'> Init_numhash(void)</div><div class='ctx'> {</div><div class='del'>-    VALUE st = rb_define_class_under(rb_define_module("Bug"), "StNumHash", rb_cData);</div><div class='add'>+    VALUE st = rb_define_class_under(rb_define_module("Bug"), "StNumHash", rb_cObject);</div><div class='ctx'>     rb_define_alloc_func(st, numhash_alloc);</div><div class='ctx'>     rb_define_method(st, "initialize", numhash_init, 0);</div><div class='ctx'>     rb_define_method(st, "[]", numhash_aref, 1);</div><div class='hunk'>@@ -135,4 +135,3 @@ Init_numhash(void)</div><div class='ctx'>     rb_define_method(st, "size", numhash_size, 0);</div><div class='ctx'>     rb_define_method(st, "delete_safe", numhash_delete_safe, 1);</div><div class='ctx'> }</div><div class='del'>-</div><div class='head'>diff --git a/ext/-test-/st/update/depend b/ext/-test-/st/update/depend<br/>new file mode 100644<br/>index 0000000000..01960df965<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/st/update/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/st/update/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+update.o: $(RUBY_EXTCONF_H)</div><div class='add'>+update.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+update.o: $(hdrdir)/ruby.h</div><div class='add'>+update.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+update.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+update.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+update.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+update.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+update.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+update.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+update.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+update.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+update.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+update.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+update.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+update.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+update.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+update.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+update.o: $(hdrdir)/ruby/st.h</div><div class='add'>+update.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+update.o: update.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/st/update/update.c b/ext/-test-/st/update/update.c<br/>index 979ad3e334..ea7fab12e1 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/st/update/update.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/st/update/update.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/st/update/update.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/st/update/update.c</a></div><div class='hunk'>@@ -7,12 +7,12 @@ update_func(st_data_t *key, st_data_t *value, st_data_t arg, int existing)</div><div class='ctx'>     VALUE ret = rb_yield_values(existing ? 2 : 1, (VALUE)*key, (VALUE)*value);</div><div class='ctx'>     switch (ret) {</div><div class='ctx'>       case Qfalse:</div><div class='del'>-	return ST_STOP;</div><div class='add'>+        return ST_STOP;</div><div class='ctx'>       case Qnil:</div><div class='del'>-	return ST_DELETE;</div><div class='add'>+        return ST_DELETE;</div><div class='ctx'>       default:</div><div class='del'>-	*value = ret;</div><div class='del'>-	return ST_CONTINUE;</div><div class='add'>+        *value = ret;</div><div class='add'>+        return ST_CONTINUE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -20,9 +20,9 @@ static VALUE</div><div class='ctx'> test_st_update(VALUE self, VALUE key)</div><div class='ctx'> {</div><div class='ctx'>     if (st_update(RHASH_TBL(self), (st_data_t)key, update_func, 0))</div><div class='del'>-	return Qtrue;</div><div class='add'>+        return Qtrue;</div><div class='ctx'>     else</div><div class='del'>-	return Qfalse;</div><div class='add'>+        return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='head'>diff --git a/ext/-test-/string/capacity.c b/ext/-test-/string/capacity.c<br/>index f5277bf4e6..33b2023fd3 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/string/capacity.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/capacity.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/string/capacity.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/string/capacity.c</a></div><div class='hunk'>@@ -1,13 +1,14 @@</div><div class='ctx'> #include "ruby.h"</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/string.h"</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> bug_str_capacity(VALUE klass, VALUE str)</div><div class='ctx'> {</div><div class='del'>-    return</div><div class='del'>-	STR_EMBED_P(str) ? INT2FIX(RSTRING_EMBED_LEN_MAX) : \</div><div class='del'>-	STR_SHARED_P(str) ? INT2FIX(0) : \</div><div class='del'>-	LONG2FIX(RSTRING(str)-&gt;as.heap.aux.capa);</div><div class='add'>+    if (!STR_EMBED_P(str) &amp;&amp; STR_SHARED_P(str)) {</div><div class='add'>+        return INT2FIX(0);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return LONG2FIX(rb_str_capacity(str));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='head'>diff --git a/ext/-test-/string/coderange.c b/ext/-test-/string/coderange.c<br/>index 1342ce20da..4197ecca9f 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/string/coderange.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/coderange.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/string/coderange.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/string/coderange.c</a></div><div class='hunk'>@@ -8,13 +8,13 @@ coderange_int2sym(int coderange)</div><div class='ctx'> {</div><div class='ctx'>     switch (coderange) {</div><div class='ctx'>       case ENC_CODERANGE_7BIT:</div><div class='del'>-	return sym_7bit;</div><div class='add'>+        return sym_7bit;</div><div class='ctx'>       case ENC_CODERANGE_VALID:</div><div class='del'>-	return sym_valid;</div><div class='add'>+        return sym_valid;</div><div class='ctx'>       case ENC_CODERANGE_UNKNOWN:</div><div class='del'>-	return sym_unknown;</div><div class='add'>+        return sym_unknown;</div><div class='ctx'>       case ENC_CODERANGE_BROKEN:</div><div class='del'>-	return sym_broken;</div><div class='add'>+        return sym_broken;</div><div class='ctx'>     }</div><div class='ctx'>     rb_bug("wrong condition of coderange");</div><div class='ctx'>     UNREACHABLE_RETURN(Qnil);</div><div class='hunk'>@@ -38,10 +38,10 @@ str_coderange_scan(VALUE str)</div><div class='ctx'> void</div><div class='ctx'> Init_string_coderange(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    sym_7bit = ID2SYM(rb_intern("7bit"));</div><div class='del'>-    sym_valid = ID2SYM(rb_intern("valid"));</div><div class='del'>-    sym_unknown = ID2SYM(rb_intern("unknown"));</div><div class='del'>-    sym_broken = ID2SYM(rb_intern("broken"));</div><div class='add'>+    sym_7bit = ID2SYM(rb_intern_const("7bit"));</div><div class='add'>+    sym_valid = ID2SYM(rb_intern_const("valid"));</div><div class='add'>+    sym_unknown = ID2SYM(rb_intern_const("unknown"));</div><div class='add'>+    sym_broken = ID2SYM(rb_intern_const("broken"));</div><div class='ctx'>     rb_define_method(klass, "coderange", str_coderange, 0);</div><div class='ctx'>     rb_define_method(klass, "coderange_scan", str_coderange_scan, 0);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/string/cstr.c b/ext/-test-/string/cstr.c<br/>index 71eafdb703..468ee7a3b1 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/string/cstr.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/cstr.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/string/cstr.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/string/cstr.c</a></div><div class='hunk'>@@ -1,5 +1,6 @@</div><div class='del'>-#include "ruby/encoding.h"</div><div class='ctx'> #include "internal.h"</div><div class='add'>+#include "internal/string.h"</div><div class='add'>+#include "ruby/encoding.h"</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> bug_str_cstr_term(VALUE str)</div><div class='hunk'>@@ -41,11 +42,11 @@ bug_str_cstr_term_char(VALUE str)</div><div class='ctx'>     len = rb_enc_mbminlen(enc);</div><div class='ctx'>     c = rb_enc_precise_mbclen(s, s + len, enc);</div><div class='ctx'>     if (!MBCLEN_CHARFOUND_P(c)) {</div><div class='del'>-	c = (unsigned char)*s;</div><div class='add'>+        c = (unsigned char)*s;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	c = rb_enc_mbc_to_codepoint(s, s + len, enc);</div><div class='del'>-	if (!c) return Qnil;</div><div class='add'>+        c = rb_enc_mbc_to_codepoint(s, s + len, enc);</div><div class='add'>+        if (!c) return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_enc_uint_chr((unsigned int)c, enc);</div><div class='ctx'> }</div><div class='hunk'>@@ -61,13 +62,17 @@ bug_str_unterminated_substring(VALUE str, VALUE vbeg, VALUE vlen)</div><div class='ctx'>     if (RSTRING_LEN(str) &lt; beg + len) rb_raise(rb_eIndexError, "end: %ld", beg + len);</div><div class='ctx'>     str = rb_str_new_shared(str);</div><div class='ctx'>     if (STR_EMBED_P(str)) {</div><div class='del'>-	RSTRING(str)-&gt;basic.flags &amp;= ~RSTRING_EMBED_LEN_MASK;</div><div class='del'>-	RSTRING(str)-&gt;basic.flags |= len &lt;&lt; RSTRING_EMBED_LEN_SHIFT;</div><div class='del'>-	memmove(RSTRING(str)-&gt;as.ary, RSTRING(str)-&gt;as.ary + beg, len);</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+        RSTRING(str)-&gt;as.embed.len = (short)len;</div><div class='add'>+#else</div><div class='add'>+        RSTRING(str)-&gt;basic.flags &amp;= ~RSTRING_EMBED_LEN_MASK;</div><div class='add'>+        RSTRING(str)-&gt;basic.flags |= len &lt;&lt; RSTRING_EMBED_LEN_SHIFT;</div><div class='add'>+#endif</div><div class='add'>+        memmove(RSTRING(str)-&gt;as.embed.ary, RSTRING(str)-&gt;as.embed.ary + beg, len);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	RSTRING(str)-&gt;as.heap.ptr += beg;</div><div class='del'>-	RSTRING(str)-&gt;as.heap.len = len;</div><div class='add'>+        RSTRING(str)-&gt;as.heap.ptr += beg;</div><div class='add'>+        RSTRING(str)-&gt;as.heap.len = len;</div><div class='ctx'>     }</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='hunk'>@@ -99,7 +104,7 @@ bug_str_s_cstr_term_char(VALUE self, VALUE str)</div><div class='ctx'>     const int term_fill_len = (termlen);\</div><div class='ctx'>     *term_fill_ptr = '\0';\</div><div class='ctx'>     if (UNLIKELY(term_fill_len &gt; 1))\</div><div class='del'>-	memset(term_fill_ptr, 0, term_fill_len);\</div><div class='add'>+        memset(term_fill_ptr, 0, term_fill_len);\</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -111,7 +116,11 @@ bug_str_s_cstr_noembed(VALUE self, VALUE str)</div><div class='ctx'>     Check_Type(str, T_STRING);</div><div class='ctx'>     FL_SET((str2), STR_NOEMBED);</div><div class='ctx'>     memcpy(buf, RSTRING_PTR(str), capacity);</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    RBASIC(str2)-&gt;flags &amp;= ~(STR_SHARED | FL_USER5 | FL_USER6);</div><div class='add'>+#else</div><div class='ctx'>     RBASIC(str2)-&gt;flags &amp;= ~RSTRING_EMBED_LEN_MASK;</div><div class='add'>+#endif</div><div class='ctx'>     RSTRING(str2)-&gt;as.heap.aux.capa = capacity;</div><div class='ctx'>     RSTRING(str2)-&gt;as.heap.ptr = buf;</div><div class='ctx'>     RSTRING(str2)-&gt;as.heap.len = RSTRING_LEN(str);</div><div class='head'>diff --git a/ext/-test-/string/depend b/ext/-test-/string/depend<br/>index 8e7ee2a55a..773231047e 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/string/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/string/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/string/depend</a></div><div class='hunk'>@@ -1,26 +1,343 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> capacity.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> capacity.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> capacity.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> capacity.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> capacity.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> capacity.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-capacity.o: $(hdrdir)/ruby/io.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+capacity.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> capacity.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> capacity.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> capacity.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> capacity.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> capacity.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> capacity.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-capacity.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-capacity.o: $(top_srcdir)/internal.h</div><div class='add'>+capacity.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+capacity.o: $(top_srcdir)/internal/string.h</div><div class='ctx'> capacity.o: capacity.c</div><div class='ctx'> coderange.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> coderange.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> coderange.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> coderange.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> coderange.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> coderange.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+coderange.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> coderange.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> coderange.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> coderange.o: $(hdrdir)/ruby/oniguruma.h</div><div class='hunk'>@@ -30,51 +347,675 @@ coderange.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> coderange.o: coderange.c</div><div class='ctx'> cstr.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> cstr.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> cstr.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> cstr.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> cstr.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> cstr.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-cstr.o: $(hdrdir)/ruby/io.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+cstr.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> cstr.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> cstr.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> cstr.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> cstr.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> cstr.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> cstr.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-cstr.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> cstr.o: $(top_srcdir)/internal.h</div><div class='add'>+cstr.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+cstr.o: $(top_srcdir)/internal/string.h</div><div class='ctx'> cstr.o: cstr.c</div><div class='ctx'> ellipsize.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ellipsize.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ellipsize.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ellipsize.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ellipsize.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ellipsize.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ellipsize.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ellipsize.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ellipsize.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ellipsize.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-ellipsize.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ellipsize.o: ellipsize.c</div><div class='ctx'> enc_associate.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> enc_associate.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> enc_associate.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> enc_associate.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> enc_associate.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> enc_associate.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+enc_associate.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> enc_associate.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> enc_associate.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> enc_associate.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> enc_associate.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> enc_associate.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> enc_associate.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-enc_associate.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> enc_associate.o: enc_associate.c</div><div class='ctx'> enc_str_buf_cat.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> enc_str_buf_cat.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> enc_str_buf_cat.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> enc_str_buf_cat.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> enc_str_buf_cat.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> enc_str_buf_cat.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+enc_str_buf_cat.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> enc_str_buf_cat.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> enc_str_buf_cat.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> enc_str_buf_cat.o: $(hdrdir)/ruby/oniguruma.h</div><div class='hunk'>@@ -84,86 +1025,1165 @@ enc_str_buf_cat.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> enc_str_buf_cat.o: enc_str_buf_cat.c</div><div class='ctx'> fstring.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> fstring.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> fstring.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> fstring.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> fstring.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> fstring.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/onigmo.h</div><div class='add'>+fstring.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> fstring.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> fstring.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> fstring.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-fstring.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> fstring.o: fstring.c</div><div class='ctx'> init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-init.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> init.o: init.c</div><div class='ctx'> modify.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> modify.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+modify.o: $(hdrdir)/ruby.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> modify.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> modify.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> modify.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+modify.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> modify.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> modify.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> modify.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> modify.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-modify.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> modify.o: modify.c</div><div class='ctx'> new.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> new.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+new.o: $(hdrdir)/ruby.h</div><div class='add'>+new.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-new.o: $(hdrdir)/ruby/io.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-new.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-new.o: $(top_srcdir)/internal.h</div><div class='ctx'> new.o: new.c</div><div class='ctx'> nofree.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> nofree.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> nofree.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> nofree.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> nofree.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+nofree.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> nofree.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> nofree.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> nofree.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> nofree.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-nofree.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> nofree.o: nofree.c</div><div class='ctx'> normalize.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> normalize.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> normalize.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> normalize.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> normalize.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> normalize.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-normalize.o: $(hdrdir)/ruby/io.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+normalize.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> normalize.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> normalize.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> normalize.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> normalize.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> normalize.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> normalize.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-normalize.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-normalize.o: $(top_srcdir)/internal.h</div><div class='add'>+normalize.o: $(top_srcdir)/internal/file.h</div><div class='ctx'> normalize.o: normalize.c</div><div class='ctx'> qsort.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> qsort.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> qsort.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> qsort.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> qsort.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> qsort.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+qsort.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> qsort.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> qsort.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> qsort.o: $(hdrdir)/ruby/oniguruma.h</div><div class='hunk'>@@ -171,17 +2191,485 @@ qsort.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> qsort.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> qsort.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> qsort.o: $(hdrdir)/ruby/util.h</div><div class='del'>-qsort.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> qsort.o: qsort.c</div><div class='add'>+rb_interned_str.o: $(RUBY_EXTCONF_H)</div><div class='add'>+rb_interned_str.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/st.h</div><div class='add'>+rb_interned_str.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+rb_interned_str.o: rb_interned_str.c</div><div class='add'>+rb_str_dup.o: $(RUBY_EXTCONF_H)</div><div class='add'>+rb_str_dup.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/st.h</div><div class='add'>+rb_str_dup.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+rb_str_dup.o: rb_str_dup.c</div><div class='ctx'> set_len.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> set_len.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> set_len.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> set_len.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> set_len.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+set_len.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> set_len.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> set_len.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> set_len.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> set_len.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-set_len.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> set_len.o: set_len.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/string/enc_str_buf_cat.c b/ext/-test-/string/enc_str_buf_cat.c<br/>index 9ac4a298be..4c1b262e1e 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/string/enc_str_buf_cat.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/enc_str_buf_cat.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/string/enc_str_buf_cat.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/string/enc_str_buf_cat.c</a></div><div class='hunk'>@@ -7,8 +7,22 @@ enc_str_buf_cat(VALUE str, VALUE str2)</div><div class='ctx'>     return rb_enc_str_buf_cat(str, RSTRING_PTR(str2), RSTRING_LEN(str2), rb_enc_get(str2));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+str_conv_enc_opts(VALUE str, VALUE from, VALUE to, VALUE ecflags, VALUE ecopts)</div><div class='add'>+{</div><div class='add'>+    rb_encoding *from_enc = NIL_P(from) ? NULL : rb_to_encoding(from);</div><div class='add'>+    rb_encoding *to_enc = NIL_P(to) ? NULL : rb_to_encoding(to);</div><div class='add'>+    int flags = NUM2INT(ecflags);</div><div class='add'>+    if (!NIL_P(ecopts)) {</div><div class='add'>+        Check_Type(ecopts, T_HASH);</div><div class='add'>+        OBJ_FREEZE(ecopts);</div><div class='add'>+    }</div><div class='add'>+    return rb_str_conv_enc_opts(str, from_enc, to_enc, flags, ecopts);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_string_enc_str_buf_cat(VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     rb_define_method(klass, "enc_str_buf_cat", enc_str_buf_cat, 1);</div><div class='add'>+    rb_define_method(klass, "str_conv_enc_opts", str_conv_enc_opts, 4);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/string/fstring.c b/ext/-test-/string/fstring.c<br/>index 30120b42f6..64f079251d 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/string/fstring.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/fstring.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/string/fstring.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/string/fstring.c</a></div><div class='hunk'>@@ -1,4 +1,5 @@</div><div class='ctx'> #include "ruby.h"</div><div class='add'>+#include "ruby/encoding.h"</div><div class='ctx'> </div><div class='ctx'> VALUE rb_fstring(VALUE str);</div><div class='ctx'> </div><div class='hunk'>@@ -8,8 +9,22 @@ bug_s_fstring(VALUE self, VALUE str)</div><div class='ctx'>     return rb_fstring(str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+bug_s_rb_enc_interned_str(VALUE self, VALUE encoding)</div><div class='add'>+{</div><div class='add'>+    return rb_enc_interned_str("foo", 3, NIL_P(encoding) ? NULL : RDATA(encoding)-&gt;data);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+bug_s_rb_enc_str_new(VALUE self, VALUE encoding)</div><div class='add'>+{</div><div class='add'>+    return rb_enc_str_new("foo", 3, NIL_P(encoding) ? NULL : RDATA(encoding)-&gt;data);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_string_fstring(VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     rb_define_singleton_method(klass, "fstring", bug_s_fstring, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "rb_enc_interned_str", bug_s_rb_enc_interned_str, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "rb_enc_str_new", bug_s_rb_enc_str_new, 1);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/string/normalize.c b/ext/-test-/string/normalize.c<br/>index 0ba1797631..a069288ee8 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/string/normalize.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/normalize.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/string/normalize.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/string/normalize.c</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/file.h"</div><div class='ctx'> </div><div class='ctx'> #ifdef __APPLE__</div><div class='ctx'> static VALUE</div><div class='head'>diff --git a/ext/-test-/string/qsort.c b/ext/-test-/string/qsort.c<br/>index fb7ea3d8cb..4a641e74e3 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/string/qsort.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/qsort.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/string/qsort.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/string/qsort.c</a></div><div class='hunk'>@@ -35,22 +35,22 @@ bug_str_qsort_bang(int argc, VALUE *argv, VALUE str)</div><div class='ctx'>     rb_scan_args(argc, argv, "03", &amp;beg, &amp;len, &amp;size);</div><div class='ctx'>     l = RSTRING_LEN(str);</div><div class='ctx'>     if (!NIL_P(beg) &amp;&amp; (b = NUM2INT(beg)) &lt; 0 &amp;&amp; (b += l) &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "out of bounds");</div><div class='add'>+        rb_raise(rb_eArgError, "out of bounds");</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(size) &amp;&amp; (s = NUM2INT(size)) &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "negative size");</div><div class='add'>+        rb_raise(rb_eArgError, "negative size");</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(len) ||</div><div class='del'>-	(((n = NUM2INT(len)) &lt; 0) ?</div><div class='del'>-	 (rb_raise(rb_eArgError, "negative length"), 0) :</div><div class='del'>-	 (b + n * s &gt; l))) {</div><div class='del'>-	n = (l - b) / s;</div><div class='add'>+        (((n = NUM2INT(len)) &lt; 0) ?</div><div class='add'>+         (rb_raise(rb_eArgError, "negative length"), 0) :</div><div class='add'>+         (b + n * s &gt; l))) {</div><div class='add'>+        n = (l - b) / s;</div><div class='ctx'>     }</div><div class='ctx'>     rb_str_modify(str);</div><div class='ctx'>     d.enc = rb_enc_get(str);</div><div class='ctx'>     d.elsize = s;</div><div class='ctx'>     ruby_qsort(RSTRING_PTR(str) + b, n, s,</div><div class='del'>-	       rb_block_given_p() ? cmp_1 : cmp_2, &amp;d);</div><div class='add'>+               rb_block_given_p() ? cmp_1 : cmp_2, &amp;d);</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='head'>diff --git a/ext/-test-/string/rb_interned_str.c b/ext/-test-/string/rb_interned_str.c<br/>new file mode 100644<br/>index 0000000000..47643ec249<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/string/rb_interned_str.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/string/rb_interned_str.c</a></div><div class='hunk'>@@ -0,0 +1,14 @@</div><div class='add'>+#include "ruby.h"</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bug_rb_interned_str_dup(VALUE self, VALUE str)</div><div class='add'>+{</div><div class='add'>+    Check_Type(str, T_STRING);</div><div class='add'>+    return rb_interned_str(RSTRING_PTR(str), RSTRING_LEN(str));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_string_rb_interned_str(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_define_singleton_method(klass, "rb_interned_str_dup", bug_rb_interned_str_dup, 1);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/string/rb_str_dup.c b/ext/-test-/string/rb_str_dup.c<br/>new file mode 100644<br/>index 0000000000..a0bd65820f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/string/rb_str_dup.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/string/rb_str_dup.c</a></div><div class='hunk'>@@ -0,0 +1,35 @@</div><div class='add'>+#include "ruby.h"</div><div class='add'>+</div><div class='add'>+VALUE rb_str_dup(VALUE str);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bug_rb_str_dup(VALUE self, VALUE str)</div><div class='add'>+{</div><div class='add'>+    rb_check_type(str, T_STRING);</div><div class='add'>+    return rb_str_dup(str);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bug_shared_string_p(VALUE self, VALUE str)</div><div class='add'>+{</div><div class='add'>+    rb_check_type(str, T_STRING);</div><div class='add'>+    return RB_FL_TEST(str, RUBY_ELTS_SHARED) &amp;&amp; RB_FL_TEST(str, RSTRING_NOEMBED) ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bug_sharing_with_shared_p(VALUE self, VALUE str)</div><div class='add'>+{</div><div class='add'>+    rb_check_type(str, T_STRING);</div><div class='add'>+    if (bug_shared_string_p(self, str)) {</div><div class='add'>+        return bug_shared_string_p(self, RSTRING(str)-&gt;as.heap.aux.shared);</div><div class='add'>+    }</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_string_rb_str_dup(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_define_singleton_method(klass, "rb_str_dup", bug_rb_str_dup, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "shared_string?", bug_shared_string_p, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "sharing_with_shared?", bug_sharing_with_shared_p, 1);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/string/set_len.c b/ext/-test-/string/set_len.c<br/>index 219cea404c..049da2cdb5 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/string/set_len.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/string/set_len.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/string/set_len.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/string/set_len.c</a></div><div class='hunk'>@@ -7,8 +7,18 @@ bug_str_set_len(VALUE str, VALUE len)</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+bug_str_append(VALUE str, VALUE addendum)</div><div class='add'>+{</div><div class='add'>+    StringValue(addendum);</div><div class='add'>+    rb_str_modify_expand(str, RSTRING_LEN(addendum));</div><div class='add'>+    memcpy(RSTRING_END(str), RSTRING_PTR(addendum), RSTRING_LEN(addendum));</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_string_set_len(VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     rb_define_method(klass, "set_len", bug_str_set_len, 1);</div><div class='add'>+    rb_define_method(klass, "append", bug_str_append, 1);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/struct/depend b/ext/-test-/struct/depend<br/>index 58ededbff9..920a065216 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/struct/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/struct/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/struct/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/struct/depend</a></div><div class='hunk'>@@ -1,46 +1,642 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> duplicate.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> duplicate.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> duplicate.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> duplicate.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> duplicate.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+duplicate.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> duplicate.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> duplicate.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> duplicate.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> duplicate.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-duplicate.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> duplicate.o: duplicate.c</div><div class='ctx'> init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-init.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> init.o: init.c</div><div class='ctx'> len.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> len.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+len.o: $(hdrdir)/ruby.h</div><div class='add'>+len.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> len.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+len.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+len.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+len.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+len.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+len.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+len.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+len.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+len.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> len.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> len.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+len.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> len.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> len.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> len.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> len.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-len.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> len.o: len.c</div><div class='ctx'> member.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> member.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+member.o: $(hdrdir)/ruby.h</div><div class='add'>+member.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> member.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+member.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+member.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+member.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+member.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+member.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+member.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+member.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+member.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> member.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> member.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+member.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> member.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> member.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> member.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> member.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-member.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> member.o: member.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/struct/member.c b/ext/-test-/struct/member.c<br/>index 1d404039b4..f5400fe477 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/struct/member.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/struct/member.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/struct/member.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/struct/member.c</a></div><div class='hunk'>@@ -6,7 +6,7 @@ bug_struct_get(VALUE obj, VALUE name)</div><div class='ctx'>     ID id = rb_check_id(&amp;name);</div><div class='ctx'> </div><div class='ctx'>     if (!id) {</div><div class='del'>-	rb_name_error_str(name, "`%"PRIsVALUE"' is not a struct member", name);</div><div class='add'>+        rb_name_error_str(name, "`%"PRIsVALUE"' is not a struct member", name);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_struct_getmember(obj, id);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/symbol/depend b/ext/-test-/symbol/depend<br/>new file mode 100644<br/>index 0000000000..b94e4ce821<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/symbol/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/symbol/depend</a></div><div class='hunk'>@@ -0,0 +1,322 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+init.o: $(RUBY_EXTCONF_H)</div><div class='add'>+init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+init.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+init.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/st.h</div><div class='add'>+init.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+init.o: init.c</div><div class='add'>+type.o: $(RUBY_EXTCONF_H)</div><div class='add'>+type.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+type.o: $(hdrdir)/ruby.h</div><div class='add'>+type.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+type.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+type.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+type.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+type.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+type.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+type.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+type.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+type.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+type.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+type.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+type.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+type.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+type.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+type.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+type.o: $(hdrdir)/ruby/st.h</div><div class='add'>+type.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+type.o: type.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/symbol/init.c b/ext/-test-/symbol/init.c<br/>index 20cf2fa079..4038701ac9 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/symbol/init.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/symbol/init.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/symbol/init.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/symbol/init.c</a></div><div class='hunk'>@@ -20,6 +20,13 @@ sym_pinneddown_p(VALUE dummy, VALUE sym)</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+sym_iv_get(VALUE dummy, VALUE obj, VALUE name)</div><div class='add'>+{</div><div class='add'>+    const char *n = StringValueCStr(name);</div><div class='add'>+    return rb_iv_get(obj, n);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_symbol(void)</div><div class='ctx'> {</div><div class='hunk'>@@ -27,5 +34,6 @@ Init_symbol(void)</div><div class='ctx'>     VALUE klass = rb_define_class_under(mBug, "Symbol", rb_cSymbol);</div><div class='ctx'>     rb_define_singleton_method(klass, "find", sym_find, 1);</div><div class='ctx'>     rb_define_singleton_method(klass, "pinneddown?", sym_pinneddown_p, 1);</div><div class='add'>+    rb_define_singleton_method(klass, "iv_get", sym_iv_get, 2);</div><div class='ctx'>     TEST_INIT_FUNCS(init);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/symbol/type.c b/ext/-test-/symbol/type.c<br/>index e51e09eb26..8d0e647340 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/symbol/type.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/symbol/type.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/symbol/type.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/symbol/type.c</a></div><div class='hunk'>@@ -2,12 +2,12 @@</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_RB_IS_CONST_NAME</div><div class='ctx'> # define get_symbol_type(type, t, name) do { \</div><div class='del'>-	ID id = rb_check_id(&amp;name); \</div><div class='del'>-	t = (id ? rb_is_##type##_id(id) : rb_is_##type##_name(name)); \</div><div class='add'>+        ID id = rb_check_id(&amp;name); \</div><div class='add'>+        t = (id ? rb_is_##type##_id(id) : rb_is_##type##_name(name)); \</div><div class='ctx'>     } while (0)</div><div class='ctx'> #else</div><div class='ctx'> # define get_symbol_type(type, t, name) do { \</div><div class='del'>-	t = rb_is_##type##_id(rb_to_id(name)); \</div><div class='add'>+        t = rb_is_##type##_id(rb_to_id(name)); \</div><div class='ctx'>     } while (0)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='head'>diff --git a/ext/-test-/thread/instrumentation/depend b/ext/-test-/thread/instrumentation/depend<br/>new file mode 100644<br/>index 0000000000..e2fcd060d8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/thread/instrumentation/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/thread/instrumentation/depend</a></div><div class='hunk'>@@ -0,0 +1,164 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+instrumentation.o: $(RUBY_EXTCONF_H)</div><div class='add'>+instrumentation.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/atomic.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/st.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/thread.h</div><div class='add'>+instrumentation.o: $(hdrdir)/ruby/thread_native.h</div><div class='add'>+instrumentation.o: instrumentation.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/thread/instrumentation/extconf.rb b/ext/-test-/thread/instrumentation/extconf.rb<br/>new file mode 100644<br/>index 0000000000..a48ba3c045<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/thread/instrumentation/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/thread/instrumentation/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+create_makefile("-test-/thread/instrumentation")</div><div class='head'>diff --git a/ext/-test-/thread/instrumentation/instrumentation.c b/ext/-test-/thread/instrumentation/instrumentation.c<br/>new file mode 100644<br/>index 0000000000..d2a2c2740b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/thread/instrumentation/instrumentation.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/thread/instrumentation/instrumentation.c</a></div><div class='hunk'>@@ -0,0 +1,141 @@</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/atomic.h"</div><div class='add'>+#include "ruby/thread.h"</div><div class='add'>+</div><div class='add'>+static rb_atomic_t started_count = 0;</div><div class='add'>+static rb_atomic_t ready_count = 0;</div><div class='add'>+static rb_atomic_t resumed_count = 0;</div><div class='add'>+static rb_atomic_t suspended_count = 0;</div><div class='add'>+static rb_atomic_t exited_count = 0;</div><div class='add'>+</div><div class='add'>+#if __STDC_VERSION__ &gt;= 201112</div><div class='add'>+  #define RB_THREAD_LOCAL_SPECIFIER _Thread_local</div><div class='add'>+#elif defined(__GNUC__) &amp;&amp; !defined(RB_THREAD_LOCAL_SPECIFIER_IS_UNSUPPORTED)</div><div class='add'>+  /* note that ICC (linux) and Clang are covered by __GNUC__ */</div><div class='add'>+  #define RB_THREAD_LOCAL_SPECIFIER __thread</div><div class='add'>+#else</div><div class='add'>+  #define RB_THREAD_LOCAL_SPECIFIER</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static RB_THREAD_LOCAL_SPECIFIER unsigned int local_ready_count = 0;</div><div class='add'>+static RB_THREAD_LOCAL_SPECIFIER unsigned int local_resumed_count = 0;</div><div class='add'>+static RB_THREAD_LOCAL_SPECIFIER unsigned int local_suspended_count = 0;</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ex_callback(rb_event_flag_t event, const rb_internal_thread_event_data_t *event_data, void *user_data)</div><div class='add'>+{</div><div class='add'>+    switch (event) {</div><div class='add'>+      case RUBY_INTERNAL_THREAD_EVENT_STARTED:</div><div class='add'>+        RUBY_ATOMIC_INC(started_count);</div><div class='add'>+        break;</div><div class='add'>+      case RUBY_INTERNAL_THREAD_EVENT_READY:</div><div class='add'>+        RUBY_ATOMIC_INC(ready_count);</div><div class='add'>+        local_ready_count++;</div><div class='add'>+        break;</div><div class='add'>+      case RUBY_INTERNAL_THREAD_EVENT_RESUMED:</div><div class='add'>+        RUBY_ATOMIC_INC(resumed_count);</div><div class='add'>+        local_resumed_count++;</div><div class='add'>+        break;</div><div class='add'>+      case RUBY_INTERNAL_THREAD_EVENT_SUSPENDED:</div><div class='add'>+        RUBY_ATOMIC_INC(suspended_count);</div><div class='add'>+        local_suspended_count++;</div><div class='add'>+        break;</div><div class='add'>+      case RUBY_INTERNAL_THREAD_EVENT_EXITED:</div><div class='add'>+        RUBY_ATOMIC_INC(exited_count);</div><div class='add'>+        break;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static rb_internal_thread_event_hook_t * single_hook = NULL;</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+thread_counters(VALUE thread)</div><div class='add'>+{</div><div class='add'>+    VALUE array = rb_ary_new2(5);</div><div class='add'>+    rb_ary_push(array, UINT2NUM(started_count));</div><div class='add'>+    rb_ary_push(array, UINT2NUM(ready_count));</div><div class='add'>+    rb_ary_push(array, UINT2NUM(resumed_count));</div><div class='add'>+    rb_ary_push(array, UINT2NUM(suspended_count));</div><div class='add'>+    rb_ary_push(array, UINT2NUM(exited_count));</div><div class='add'>+    return array;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+thread_local_counters(VALUE thread)</div><div class='add'>+{</div><div class='add'>+    VALUE array = rb_ary_new2(3);</div><div class='add'>+    rb_ary_push(array, UINT2NUM(local_ready_count));</div><div class='add'>+    rb_ary_push(array, UINT2NUM(local_resumed_count));</div><div class='add'>+    rb_ary_push(array, UINT2NUM(local_suspended_count));</div><div class='add'>+    return array;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+thread_reset_counters(VALUE thread)</div><div class='add'>+{</div><div class='add'>+    RUBY_ATOMIC_SET(started_count, 0);</div><div class='add'>+    RUBY_ATOMIC_SET(ready_count, 0);</div><div class='add'>+    RUBY_ATOMIC_SET(resumed_count, 0);</div><div class='add'>+    RUBY_ATOMIC_SET(suspended_count, 0);</div><div class='add'>+    RUBY_ATOMIC_SET(exited_count, 0);</div><div class='add'>+    local_ready_count = 0;</div><div class='add'>+    local_resumed_count = 0;</div><div class='add'>+    local_suspended_count = 0;</div><div class='add'>+    return Qtrue;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+thread_register_callback(VALUE thread)</div><div class='add'>+{</div><div class='add'>+    single_hook = rb_internal_thread_add_event_hook(</div><div class='add'>+        ex_callback,</div><div class='add'>+        RUBY_INTERNAL_THREAD_EVENT_STARTED |</div><div class='add'>+        RUBY_INTERNAL_THREAD_EVENT_READY |</div><div class='add'>+        RUBY_INTERNAL_THREAD_EVENT_RESUMED |</div><div class='add'>+        RUBY_INTERNAL_THREAD_EVENT_SUSPENDED |</div><div class='add'>+        RUBY_INTERNAL_THREAD_EVENT_EXITED,</div><div class='add'>+        NULL</div><div class='add'>+    );</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+thread_unregister_callback(VALUE thread)</div><div class='add'>+{</div><div class='add'>+    if (single_hook) {</div><div class='add'>+        rb_internal_thread_remove_event_hook(single_hook);</div><div class='add'>+        single_hook = NULL;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+thread_register_and_unregister_callback(VALUE thread)</div><div class='add'>+{</div><div class='add'>+    rb_internal_thread_event_hook_t * hooks[5];</div><div class='add'>+    for (int i = 0; i &lt; 5; i++) {</div><div class='add'>+        hooks[i] = rb_internal_thread_add_event_hook(ex_callback, RUBY_INTERNAL_THREAD_EVENT_READY, NULL);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!rb_internal_thread_remove_event_hook(hooks[4])) return Qfalse;</div><div class='add'>+    if (!rb_internal_thread_remove_event_hook(hooks[0])) return Qfalse;</div><div class='add'>+    if (!rb_internal_thread_remove_event_hook(hooks[3])) return Qfalse;</div><div class='add'>+    if (!rb_internal_thread_remove_event_hook(hooks[2])) return Qfalse;</div><div class='add'>+    if (!rb_internal_thread_remove_event_hook(hooks[1])) return Qfalse;</div><div class='add'>+    return Qtrue;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_instrumentation(void)</div><div class='add'>+{</div><div class='add'>+    VALUE mBug = rb_define_module("Bug");</div><div class='add'>+    VALUE klass = rb_define_module_under(mBug, "ThreadInstrumentation");</div><div class='add'>+    rb_define_singleton_method(klass, "counters", thread_counters, 0);</div><div class='add'>+    rb_define_singleton_method(klass, "local_counters", thread_local_counters, 0);</div><div class='add'>+    rb_define_singleton_method(klass, "reset_counters", thread_reset_counters, 0);</div><div class='add'>+    rb_define_singleton_method(klass, "register_callback", thread_register_callback, 0);</div><div class='add'>+    rb_define_singleton_method(klass, "unregister_callback", thread_unregister_callback, 0);</div><div class='add'>+    rb_define_singleton_method(klass, "register_and_unregister_callbacks", thread_register_and_unregister_callback, 0);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/thread_fd/depend b/ext/-test-/thread_fd/depend<br/>new file mode 100644<br/>index 0000000000..ecf738108a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/thread_fd/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/thread_fd/depend</a></div><div class='hunk'>@@ -0,0 +1,161 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+thread_fd.o: $(RUBY_EXTCONF_H)</div><div class='add'>+thread_fd.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/st.h</div><div class='add'>+thread_fd.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+thread_fd.o: thread_fd.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/thread_fd/extconf.rb b/ext/-test-/thread_fd/extconf.rb<br/>new file mode 100644<br/>index 0000000000..a8bbe9d169<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/thread_fd/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/thread_fd/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+create_makefile('-test-/thread_fd')</div><div class='head'>diff --git a/ext/-test-/thread_fd/thread_fd.c b/ext/-test-/thread_fd/thread_fd.c<br/>new file mode 100644<br/>index 0000000000..042b799dc8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/thread_fd/thread_fd.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/thread_fd/thread_fd.c</a></div><div class='hunk'>@@ -0,0 +1,30 @@</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+thread_fd_close(VALUE ign, VALUE fd)</div><div class='add'>+{</div><div class='add'>+    rb_thread_fd_close(NUM2INT(fd));</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+thread_fd_wait(VALUE ign, VALUE fd)</div><div class='add'>+{</div><div class='add'>+    int ret = rb_thread_wait_fd(NUM2INT(fd));</div><div class='add'>+    return INT2NUM(ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+thread_fd_writable(VALUE ign, VALUE fd)</div><div class='add'>+{</div><div class='add'>+    int ret = rb_thread_fd_writable(NUM2INT(fd));</div><div class='add'>+    return INT2NUM(ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_thread_fd(void)</div><div class='add'>+{</div><div class='add'>+    rb_define_singleton_method(rb_cIO, "thread_fd_close", thread_fd_close, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cIO, "thread_fd_wait", thread_fd_wait, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cIO, "thread_fd_writable", thread_fd_writable, 1);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/thread_fd_close/depend b/ext/-test-/thread_fd_close/depend<br/>deleted file mode 100644<br/>index 7bc04c3db3..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/-test-/thread_fd_close/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread_fd_close/depend</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,16 +0,0 @@</div><div class='del'>-# AUTOGENERATED DEPENDENCIES START</div><div class='del'>-thread_fd_close.o: $(RUBY_EXTCONF_H)</div><div class='del'>-thread_fd_close.o: $(arch_hdrdir)/ruby/config.h</div><div class='del'>-thread_fd_close.o: $(hdrdir)/ruby/backward.h</div><div class='del'>-thread_fd_close.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-thread_fd_close.o: $(hdrdir)/ruby/encoding.h</div><div class='del'>-thread_fd_close.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-thread_fd_close.o: $(hdrdir)/ruby/io.h</div><div class='del'>-thread_fd_close.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-thread_fd_close.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-thread_fd_close.o: $(hdrdir)/ruby/oniguruma.h</div><div class='del'>-thread_fd_close.o: $(hdrdir)/ruby/ruby.h</div><div class='del'>-thread_fd_close.o: $(hdrdir)/ruby/st.h</div><div class='del'>-thread_fd_close.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-thread_fd_close.o: thread_fd_close.c</div><div class='del'>-# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/thread_fd_close/extconf.rb b/ext/-test-/thread_fd_close/extconf.rb<br/>deleted file mode 100644<br/>index 0d9694539c..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/-test-/thread_fd_close/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread_fd_close/extconf.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,2 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-create_makefile('-test-/thread_fd_close')</div><div class='head'>diff --git a/ext/-test-/thread_fd_close/thread_fd_close.c b/ext/-test-/thread_fd_close/thread_fd_close.c<br/>deleted file mode 100644<br/>index 4fd967c5b3..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/-test-/thread_fd_close/thread_fd_close.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/thread_fd_close/thread_fd_close.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,14 +0,0 @@</div><div class='del'>-#include "ruby/ruby.h"</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-thread_fd_close(VALUE ign, VALUE fd)</div><div class='del'>-{</div><div class='del'>-    rb_thread_fd_close(NUM2INT(fd));</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-Init_thread_fd_close(void)</div><div class='del'>-{</div><div class='del'>-    rb_define_singleton_method(rb_cIO, "thread_fd_close", thread_fd_close, 1);</div><div class='del'>-}</div><div class='head'>diff --git a/ext/-test-/time/depend b/ext/-test-/time/depend<br/>index a9a770ba1e..b7d1a2b114 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/time/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/time/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/time/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/time/depend</a></div><div class='hunk'>@@ -1,35 +1,487 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-init.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> init.o: init.c</div><div class='ctx'> leap_second.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> leap_second.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> leap_second.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> leap_second.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> leap_second.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+leap_second.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> leap_second.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> leap_second.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> leap_second.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> leap_second.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-leap_second.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+leap_second.o: $(top_srcdir)/internal/bits.h</div><div class='add'>+leap_second.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+leap_second.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+leap_second.o: $(top_srcdir)/internal/time.h</div><div class='ctx'> leap_second.o: leap_second.c</div><div class='ctx'> new.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> new.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+new.o: $(hdrdir)/ruby.h</div><div class='add'>+new.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+new.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+new.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> new.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-new.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> new.o: new.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/time/leap_second.c b/ext/-test-/time/leap_second.c<br/>index 7eed421b73..ee7011fa97 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/time/leap_second.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/time/leap_second.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/time/leap_second.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/time/leap_second.c</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> #include "ruby.h"</div><div class='add'>+#include "internal/time.h"</div><div class='ctx'> </div><div class='del'>-void ruby_reset_leap_second_info(void);</div><div class='ctx'> static VALUE</div><div class='ctx'> bug_time_s_reset_leap_second_info(VALUE klass)</div><div class='ctx'> {</div><div class='head'>diff --git a/ext/-test-/tracepoint/depend b/ext/-test-/tracepoint/depend<br/>index 5b2b2f7369..8e2aa7eab6 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/tracepoint/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/tracepoint/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/tracepoint/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/tracepoint/depend</a></div><div class='hunk'>@@ -1,10 +1,159 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> gc_hook.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> gc_hook.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> gc_hook.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> gc_hook.o: $(hdrdir)/ruby/debug.h</div><div class='ctx'> gc_hook.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> gc_hook.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+gc_hook.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> gc_hook.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> gc_hook.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> gc_hook.o: $(hdrdir)/ruby/st.h</div><div class='hunk'>@@ -12,10 +161,159 @@ gc_hook.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> gc_hook.o: gc_hook.c</div><div class='ctx'> tracepoint.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> tracepoint.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> tracepoint.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> tracepoint.o: $(hdrdir)/ruby/debug.h</div><div class='ctx'> tracepoint.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> tracepoint.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+tracepoint.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> tracepoint.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> tracepoint.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> tracepoint.o: $(hdrdir)/ruby/st.h</div><div class='head'>diff --git a/ext/-test-/tracepoint/gc_hook.c b/ext/-test-/tracepoint/gc_hook.c<br/>index 6d8485ecb1..a3f4e7f68a 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/tracepoint/gc_hook.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/tracepoint/gc_hook.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/tracepoint/gc_hook.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/tracepoint/gc_hook.c</a></div><div class='hunk'>@@ -4,7 +4,7 @@</div><div class='ctx'> static int invoking; /* TODO: should not be global variable */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-invoke_proc_ensure(void *dmy)</div><div class='add'>+invoke_proc_ensure(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     invoking = 0;</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -28,12 +28,12 @@ static void</div><div class='ctx'> gc_start_end_i(VALUE tpval, void *data)</div><div class='ctx'> {</div><div class='ctx'>     if (0) {</div><div class='del'>-	rb_trace_arg_t *tparg = rb_tracearg_from_tracepoint(tpval);</div><div class='del'>-	fprintf(stderr, "trace: %s\n", rb_tracearg_event_flag(tparg) == RUBY_INTERNAL_EVENT_GC_START ? "gc_start" : "gc_end");</div><div class='add'>+        rb_trace_arg_t *tparg = rb_tracearg_from_tracepoint(tpval);</div><div class='add'>+        fprintf(stderr, "trace: %s\n", rb_tracearg_event_flag(tparg) == RUBY_INTERNAL_EVENT_GC_START ? "gc_start" : "gc_end");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (invoking == 0) {</div><div class='del'>-	rb_postponed_job_register(0, invoke_proc, data);</div><div class='add'>+        rb_postponed_job_register(0, invoke_proc, data);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -42,25 +42,22 @@ set_gc_hook(VALUE module, VALUE proc, rb_event_flag_t event, const char *tp_str,</div><div class='ctx'> {</div><div class='ctx'>     VALUE tpval;</div><div class='ctx'>     ID tp_key = rb_intern(tp_str);</div><div class='del'>-    ID proc_key = rb_intern(proc_str);</div><div class='ctx'> </div><div class='ctx'>     /* disable previous keys */</div><div class='ctx'>     if (rb_ivar_defined(module, tp_key) != 0 &amp;&amp;</div><div class='del'>-	RTEST(tpval = rb_ivar_get(module, tp_key))) {</div><div class='del'>-	rb_tracepoint_disable(tpval);</div><div class='del'>-	rb_ivar_set(module, tp_key, Qnil);</div><div class='del'>-	rb_ivar_set(module, proc_key, Qnil);</div><div class='add'>+        RTEST(tpval = rb_ivar_get(module, tp_key))) {</div><div class='add'>+        rb_tracepoint_disable(tpval);</div><div class='add'>+        rb_ivar_set(module, tp_key, Qnil);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(proc)) {</div><div class='del'>-	if (!rb_obj_is_proc(proc)) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "trace_func needs to be Proc");</div><div class='del'>-	}</div><div class='add'>+        if (!rb_obj_is_proc(proc)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "trace_func needs to be Proc");</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	tpval = rb_tracepoint_new(0, event, gc_start_end_i, (void *)proc);</div><div class='del'>-	rb_ivar_set(module, tp_key, tpval);</div><div class='del'>-	rb_ivar_set(module, proc_key, proc); /* GC guard */</div><div class='del'>-	rb_tracepoint_enable(tpval);</div><div class='add'>+        tpval = rb_tracepoint_new(0, event, gc_start_end_i, (void *)proc);</div><div class='add'>+        rb_ivar_set(module, tp_key, tpval);</div><div class='add'>+        rb_tracepoint_enable(tpval);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return proc;</div><div class='hunk'>@@ -70,11 +67,19 @@ static VALUE</div><div class='ctx'> set_after_gc_start(VALUE module, VALUE proc)</div><div class='ctx'> {</div><div class='ctx'>     return set_gc_hook(module, proc, RUBY_INTERNAL_EVENT_GC_START,</div><div class='del'>-		       "__set_after_gc_start_tpval__", "__set_after_gc_start_proc__");</div><div class='add'>+                       "__set_after_gc_start_tpval__", "__set_after_gc_start_proc__");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+start_after_gc_exit(VALUE module, VALUE proc)</div><div class='add'>+{</div><div class='add'>+    return set_gc_hook(module, proc, RUBY_INTERNAL_EVENT_GC_EXIT,</div><div class='add'>+                       "__set_after_gc_exit_tpval__", "__set_after_gc_exit_proc__");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_gc_hook(VALUE module)</div><div class='ctx'> {</div><div class='ctx'>     rb_define_module_function(module, "after_gc_start_hook=", set_after_gc_start, 1);</div><div class='add'>+    rb_define_module_function(module, "after_gc_exit_hook=", start_after_gc_exit, 1);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/tracepoint/tracepoint.c b/ext/-test-/tracepoint/tracepoint.c<br/>index aa8c212f99..2826cc038c 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/tracepoint/tracepoint.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/tracepoint/tracepoint.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/tracepoint/tracepoint.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/tracepoint/tracepoint.c</a></div><div class='hunk'>@@ -21,35 +21,35 @@ tracepoint_track_objspace_events_i(VALUE tpval, void *data)</div><div class='ctx'> </div><div class='ctx'>     switch (rb_tracearg_event_flag(tparg)) {</div><div class='ctx'>       case RUBY_INTERNAL_EVENT_NEWOBJ:</div><div class='del'>-	{</div><div class='del'>-	    VALUE obj = rb_tracearg_object(tparg);</div><div class='del'>-	    if (track-&gt;objects_count &lt; objects_max)</div><div class='del'>-		track-&gt;objects[track-&gt;objects_count++] = obj;</div><div class='del'>-	    track-&gt;newobj_count++;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        {</div><div class='add'>+            VALUE obj = rb_tracearg_object(tparg);</div><div class='add'>+            if (track-&gt;objects_count &lt; objects_max)</div><div class='add'>+                track-&gt;objects[track-&gt;objects_count++] = obj;</div><div class='add'>+            track-&gt;newobj_count++;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>       case RUBY_INTERNAL_EVENT_FREEOBJ:</div><div class='del'>-	{</div><div class='del'>-	    track-&gt;free_count++;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        {</div><div class='add'>+            track-&gt;free_count++;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>       case RUBY_INTERNAL_EVENT_GC_START:</div><div class='del'>-	{</div><div class='del'>-	    track-&gt;gc_start_count++;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        {</div><div class='add'>+            track-&gt;gc_start_count++;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>       case RUBY_INTERNAL_EVENT_GC_END_MARK:</div><div class='del'>-	{</div><div class='del'>-	    track-&gt;gc_end_mark_count++;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        {</div><div class='add'>+            track-&gt;gc_end_mark_count++;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>       case RUBY_INTERNAL_EVENT_GC_END_SWEEP:</div><div class='del'>-	{</div><div class='del'>-	    track-&gt;gc_end_sweep_count++;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        {</div><div class='add'>+            track-&gt;gc_end_sweep_count++;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>       default:</div><div class='del'>-	rb_raise(rb_eRuntimeError, "unknown event");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "unknown event");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -58,9 +58,9 @@ tracepoint_track_objspace_events(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     struct tracepoint_track track = {0, 0, 0, 0, 0,};</div><div class='ctx'>     VALUE tpval = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_NEWOBJ | RUBY_INTERNAL_EVENT_FREEOBJ |</div><div class='del'>-				    RUBY_INTERNAL_EVENT_GC_START | RUBY_INTERNAL_EVENT_GC_END_MARK |</div><div class='del'>-				    RUBY_INTERNAL_EVENT_GC_END_SWEEP,</div><div class='del'>-				    tracepoint_track_objspace_events_i, &amp;track);</div><div class='add'>+                                    RUBY_INTERNAL_EVENT_GC_START | RUBY_INTERNAL_EVENT_GC_END_MARK |</div><div class='add'>+                                    RUBY_INTERNAL_EVENT_GC_END_SWEEP,</div><div class='add'>+                                    tracepoint_track_objspace_events_i, &amp;track);</div><div class='ctx'>     VALUE result = rb_ary_new();</div><div class='ctx'> </div><div class='ctx'>     rb_tracepoint_enable(tpval);</div><div class='head'>diff --git a/ext/-test-/typeddata/depend b/ext/-test-/typeddata/depend<br/>new file mode 100644<br/>index 0000000000..02f6de6e20<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/typeddata/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/typeddata/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+typeddata.o: $(RUBY_EXTCONF_H)</div><div class='add'>+typeddata.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/st.h</div><div class='add'>+typeddata.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+typeddata.o: typeddata.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/typeddata/typeddata.c b/ext/-test-/typeddata/typeddata.c<br/>index ae060960cd..cf3178fd18 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/typeddata/typeddata.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/typeddata/typeddata.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/typeddata/typeddata.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/typeddata/typeddata.c</a></div><div class='hunk'>@@ -2,7 +2,7 @@</div><div class='ctx'> </div><div class='ctx'> static const rb_data_type_t test_data = {</div><div class='ctx'>     "typed_data",</div><div class='del'>-    {NULL, ruby_xfree, NULL},</div><div class='add'>+    {0, ruby_xfree, 0},</div><div class='ctx'>     NULL, NULL,</div><div class='ctx'>     0/* deferred free */,</div><div class='ctx'> };</div><div class='hunk'>@@ -27,7 +27,7 @@ test_make(VALUE klass, VALUE num)</div><div class='ctx'>     unsigned long i, n = NUM2UINT(num);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; n; i++) {</div><div class='del'>-	test_alloc(klass);</div><div class='add'>+        test_alloc(klass);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -37,7 +37,7 @@ void</div><div class='ctx'> Init_typeddata(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mBug = rb_define_module("Bug");</div><div class='del'>-    VALUE klass = rb_define_class_under(mBug, "TypedData", rb_cData);</div><div class='add'>+    VALUE klass = rb_define_class_under(mBug, "TypedData", rb_cObject);</div><div class='ctx'>     rb_define_alloc_func(klass, test_alloc);</div><div class='ctx'>     rb_define_singleton_method(klass, "check", test_check, 1);</div><div class='ctx'>     rb_define_singleton_method(klass, "make", test_make, 1);</div><div class='head'>diff --git a/ext/-test-/vm/at_exit.c b/ext/-test-/vm/at_exit.c<br/>index 6cfbfafa9e..efc439b26a 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/vm/at_exit.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/vm/at_exit.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/vm/at_exit.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/vm/at_exit.c</a></div><div class='hunk'>@@ -23,14 +23,14 @@ register_at_exit(VALUE self, VALUE t)</div><div class='ctx'> {</div><div class='ctx'>     switch (t) {</div><div class='ctx'>       case Qtrue:</div><div class='del'>-	ruby_vm_at_exit(print_begin);</div><div class='del'>-	break;</div><div class='add'>+        ruby_vm_at_exit(print_begin);</div><div class='add'>+        break;</div><div class='ctx'>       case Qfalse:</div><div class='del'>-	ruby_vm_at_exit(print_end);</div><div class='del'>-	break;</div><div class='add'>+        ruby_vm_at_exit(print_end);</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	ruby_vm_at_exit(do_nothing);</div><div class='del'>-	break;</div><div class='add'>+        ruby_vm_at_exit(do_nothing);</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/-test-/vm/depend b/ext/-test-/vm/depend<br/>index dd56dd0e0d..7f110d48eb 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/vm/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/vm/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/vm/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/vm/depend</a></div><div class='hunk'>@@ -1,9 +1,158 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> at_exit.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> at_exit.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> at_exit.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> at_exit.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> at_exit.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+at_exit.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> at_exit.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> at_exit.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> at_exit.o: $(hdrdir)/ruby/st.h</div><div class='head'>diff --git a/ext/-test-/wait/depend b/ext/-test-/wait/depend<br/>new file mode 100644<br/>index 0000000000..e71bda9968<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/wait/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/wait/depend</a></div><div class='hunk'>@@ -0,0 +1,174 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+wait.o: $(RUBY_EXTCONF_H)</div><div class='add'>+wait.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/io.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/onigmo.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/oniguruma.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/st.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+wait.o: wait.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/wait/extconf.rb b/ext/-test-/wait/extconf.rb<br/>new file mode 100644<br/>index 0000000000..92787876ad<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/wait/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/wait/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+create_makefile("-test-/wait")</div><div class='head'>diff --git a/ext/-test-/wait/wait.c b/ext/-test-/wait/wait.c<br/>new file mode 100644<br/>index 0000000000..b73ee35809<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/-test-/wait/wait.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/wait/wait.c</a></div><div class='hunk'>@@ -0,0 +1,39 @@</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/io.h"</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_wait(VALUE klass, VALUE io, VALUE events, VALUE timeout)</div><div class='add'>+{</div><div class='add'>+    return rb_io_wait(io, events, timeout);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_maybe_wait(VALUE klass, VALUE error, VALUE io, VALUE events, VALUE timeout)</div><div class='add'>+{</div><div class='add'>+    return rb_io_maybe_wait(RB_NUM2INT(error), io, events, timeout);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_maybe_wait_readable(VALUE klass, VALUE error, VALUE io, VALUE timeout)</div><div class='add'>+{</div><div class='add'>+    return RB_INT2NUM(</div><div class='add'>+        rb_io_maybe_wait_readable(RB_NUM2INT(error), io, timeout)</div><div class='add'>+    );</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_maybe_wait_writable(VALUE klass, VALUE error, VALUE io, VALUE timeout)</div><div class='add'>+{</div><div class='add'>+    return RB_INT2NUM(</div><div class='add'>+        rb_io_maybe_wait_writable(RB_NUM2INT(error), io, timeout)</div><div class='add'>+    );</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_wait(void)</div><div class='add'>+{</div><div class='add'>+    rb_define_singleton_method(rb_cIO, "io_wait", io_wait, 3);</div><div class='add'>+    rb_define_singleton_method(rb_cIO, "io_maybe_wait", io_maybe_wait, 4);</div><div class='add'>+    rb_define_singleton_method(rb_cIO, "io_maybe_wait_readable", io_maybe_wait_readable, 3);</div><div class='add'>+    rb_define_singleton_method(rb_cIO, "io_maybe_wait_writable", io_maybe_wait_writable, 3);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/-test-/wait_for_single_fd/depend b/ext/-test-/wait_for_single_fd/depend<br/>deleted file mode 100644<br/>index edd2f88dcf..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/-test-/wait_for_single_fd/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/wait_for_single_fd/depend</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,16 +0,0 @@</div><div class='del'>-# AUTOGENERATED DEPENDENCIES START</div><div class='del'>-wait_for_single_fd.o: $(RUBY_EXTCONF_H)</div><div class='del'>-wait_for_single_fd.o: $(arch_hdrdir)/ruby/config.h</div><div class='del'>-wait_for_single_fd.o: $(hdrdir)/ruby/backward.h</div><div class='del'>-wait_for_single_fd.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-wait_for_single_fd.o: $(hdrdir)/ruby/encoding.h</div><div class='del'>-wait_for_single_fd.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-wait_for_single_fd.o: $(hdrdir)/ruby/io.h</div><div class='del'>-wait_for_single_fd.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-wait_for_single_fd.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-wait_for_single_fd.o: $(hdrdir)/ruby/oniguruma.h</div><div class='del'>-wait_for_single_fd.o: $(hdrdir)/ruby/ruby.h</div><div class='del'>-wait_for_single_fd.o: $(hdrdir)/ruby/st.h</div><div class='del'>-wait_for_single_fd.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-wait_for_single_fd.o: wait_for_single_fd.c</div><div class='del'>-# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/-test-/wait_for_single_fd/extconf.rb b/ext/-test-/wait_for_single_fd/extconf.rb<br/>deleted file mode 100644<br/>index 2a976c8f4b..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/-test-/wait_for_single_fd/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/wait_for_single_fd/extconf.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-headers = %w(sys/types.h sys/time.h sys/event.h).select { |h| have_header(h) }</div><div class='del'>-have_func('kqueue', headers)</div><div class='del'>-create_makefile("-test-/wait_for_single_fd")</div><div class='head'>diff --git a/ext/-test-/wait_for_single_fd/wait_for_single_fd.c b/ext/-test-/wait_for_single_fd/wait_for_single_fd.c<br/>deleted file mode 100644<br/>index b8a33979bc..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/-test-/wait_for_single_fd/wait_for_single_fd.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/wait_for_single_fd/wait_for_single_fd.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,94 +0,0 @@</div><div class='del'>-#include "ruby/ruby.h"</div><div class='del'>-#include "ruby/io.h"</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-wait_for_single_fd(VALUE ign, VALUE fd, VALUE events, VALUE timeout)</div><div class='del'>-{</div><div class='del'>-    struct timeval tv;</div><div class='del'>-    struct timeval *tvp = NULL;</div><div class='del'>-    int rc;</div><div class='del'>-</div><div class='del'>-    if (!NIL_P(timeout)) {</div><div class='del'>-	tv = rb_time_timeval(timeout);</div><div class='del'>-	tvp = &amp;tv;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    rc = rb_wait_for_single_fd(NUM2INT(fd), NUM2INT(events), tvp);</div><div class='del'>-    if (rc == -1)</div><div class='del'>-	rb_sys_fail("rb_wait_for_single_fd");</div><div class='del'>-    return INT2NUM(rc);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_KQUEUE</div><div class='del'>-/* ensure rb_wait_for_single_fd works on kqueue descriptors */</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;sys/time.h&gt;</div><div class='del'>-#include &lt;sys/event.h&gt;</div><div class='del'>-static VALUE</div><div class='del'>-kqueue_test_wait(VALUE klass)</div><div class='del'>-{</div><div class='del'>-    int kqfd = -1;</div><div class='del'>-    int p[2] = { -1, -1 };</div><div class='del'>-    struct timeval tv = { 0, 0 };</div><div class='del'>-    const struct timespec ts = { 1, 0 };</div><div class='del'>-    struct kevent kev;</div><div class='del'>-    const char *msg;</div><div class='del'>-    VALUE ret = Qfalse;</div><div class='del'>-    int e = 0;</div><div class='del'>-    int n;</div><div class='del'>-</div><div class='del'>-    msg = "pipe";</div><div class='del'>-    if (rb_cloexec_pipe(p) &lt; 0) goto err;</div><div class='del'>-</div><div class='del'>-    msg = "kqueue";</div><div class='del'>-    kqfd = kqueue();</div><div class='del'>-    if (kqfd &lt; 0) goto err;</div><div class='del'>-</div><div class='del'>-    n = rb_wait_for_single_fd(kqfd, RB_WAITFD_IN, &amp;tv);</div><div class='del'>-    if (n != 0) {</div><div class='del'>-        msg = "spurious wakeup";</div><div class='del'>-        errno = 0;</div><div class='del'>-        goto err;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    msg = "write";</div><div class='del'>-    if (write(p[1], "", 1) &lt; 0) goto err;</div><div class='del'>-</div><div class='del'>-    EV_SET(&amp;kev, p[0], EVFILT_READ, EV_ADD, 0, 0, 0);</div><div class='del'>-</div><div class='del'>-    msg = "kevent";</div><div class='del'>-    n = kevent(kqfd, &amp;kev, 1, &amp;kev, 1, &amp;ts);</div><div class='del'>-    if (n &lt; 0) goto err;</div><div class='del'>-    msg = NULL;</div><div class='del'>-    if (n == 1) {</div><div class='del'>-        n = rb_wait_for_single_fd(kqfd, RB_WAITFD_IN, &amp;tv);</div><div class='del'>-        ret = INT2NUM(n);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        rb_warn("kevent did not return readiness");</div><div class='del'>-    }</div><div class='del'>-err:</div><div class='del'>-    if (msg) e = errno;</div><div class='del'>-    if (p[0] &gt;= 0) close(p[0]);</div><div class='del'>-    if (p[1] &gt;= 0) close(p[1]);</div><div class='del'>-    if (kqfd &gt;= 0) close(kqfd);</div><div class='del'>-    if (msg) {</div><div class='del'>-        if (e) rb_syserr_fail(e, msg);</div><div class='del'>-        rb_raise(rb_eRuntimeError, "%s", msg);</div><div class='del'>-    }</div><div class='del'>-    return ret;</div><div class='del'>-}</div><div class='del'>-#endif /* HAVE_KQUEUE */</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-Init_wait_for_single_fd(void)</div><div class='del'>-{</div><div class='del'>-    rb_define_const(rb_cObject, "RB_WAITFD_IN", INT2NUM(RB_WAITFD_IN));</div><div class='del'>-    rb_define_const(rb_cObject, "RB_WAITFD_OUT", INT2NUM(RB_WAITFD_OUT));</div><div class='del'>-    rb_define_const(rb_cObject, "RB_WAITFD_PRI", INT2NUM(RB_WAITFD_PRI));</div><div class='del'>-    rb_define_singleton_method(rb_cIO, "wait_for_single_fd",</div><div class='del'>-                               wait_for_single_fd, 3);</div><div class='del'>-#ifdef HAVE_KQUEUE</div><div class='del'>-    rb_define_singleton_method(rb_cIO, "kqueue_test_wait", kqueue_test_wait, 0);</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='head'>diff --git a/ext/-test-/win32/console/attribute.c b/ext/-test-/win32/console/attribute.c<br/>index a5f80fcaff..b43ba23a5c 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/win32/console/attribute.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/win32/console/attribute.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/win32/console/attribute.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/win32/console/attribute.c</a></div><div class='hunk'>@@ -13,23 +13,23 @@ io_handle(VALUE io)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-console_info(VALUE io)</div><div class='add'>+console_info(VALUE klass, VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     HANDLE h = io_handle(io);</div><div class='ctx'>     CONSOLE_SCREEN_BUFFER_INFO csbi;</div><div class='ctx'> </div><div class='ctx'>     if (!GetConsoleScreenBufferInfo(h, &amp;csbi))</div><div class='del'>-	rb_syserr_fail(rb_w32_map_errno(GetLastError()), "not console");</div><div class='add'>+        rb_syserr_fail(rb_w32_map_errno(GetLastError()), "not console");</div><div class='ctx'>     return rb_struct_new(rb_cConsoleScreenBufferInfo,</div><div class='del'>-			 INT2FIX(csbi.dwSize.X),</div><div class='del'>-			 INT2FIX(csbi.dwSize.Y),</div><div class='del'>-			 INT2FIX(csbi.dwCursorPosition.X),</div><div class='del'>-			 INT2FIX(csbi.dwCursorPosition.Y),</div><div class='del'>-			 INT2FIX(csbi.wAttributes));</div><div class='add'>+                         INT2FIX(csbi.dwSize.X),</div><div class='add'>+                         INT2FIX(csbi.dwSize.Y),</div><div class='add'>+                         INT2FIX(csbi.dwCursorPosition.X),</div><div class='add'>+                         INT2FIX(csbi.dwCursorPosition.Y),</div><div class='add'>+                         INT2FIX(csbi.wAttributes));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-console_set_attribute(VALUE io, VALUE attr)</div><div class='add'>+console_set_attribute(VALUE klass, VALUE io, VALUE attr)</div><div class='ctx'> {</div><div class='ctx'>     HANDLE h = io_handle(io);</div><div class='ctx'> </div><div class='hunk'>@@ -44,11 +44,11 @@ void</div><div class='ctx'> Init_attribute(VALUE m)</div><div class='ctx'> {</div><div class='ctx'>     rb_cConsoleScreenBufferInfo = rb_struct_define_under(m, "ConsoleScreenBufferInfo",</div><div class='del'>-							 "size_x", "size_y",</div><div class='del'>-							 "cur_x", "cur_y",</div><div class='del'>-							 "attr", NULL);</div><div class='del'>-    rb_define_method(rb_cIO, "console_info", console_info, 0);</div><div class='del'>-    rb_define_method(rb_cIO, "console_attribute", console_set_attribute, 1);</div><div class='add'>+                                                         "size_x", "size_y",</div><div class='add'>+                                                         "cur_x", "cur_y",</div><div class='add'>+                                                         "attr", NULL);</div><div class='add'>+    rb_define_singleton_method(m, "console_info", console_info, 1);</div><div class='add'>+    rb_define_singleton_method(m, "console_attribute", console_set_attribute, 2);</div><div class='ctx'> </div><div class='ctx'>     rb_define_const(m, "FOREGROUND_MASK", INT2FIX(FOREGROUND_MASK));</div><div class='ctx'>     rb_define_const(m, "FOREGROUND_BLUE", INT2FIX(FOREGROUND_BLUE));</div><div class='head'>diff --git a/ext/-test-/win32/fd_setsize/fd_setsize.c b/ext/-test-/win32/fd_setsize/fd_setsize.c<br/>index 8da8b1eaa0..e29114a0ca 100644<br/>--- a/<a href='/ruby.git/tree/ext/-test-/win32/fd_setsize/fd_setsize.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/-test-/win32/fd_setsize/fd_setsize.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/-test-/win32/fd_setsize/fd_setsize.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/-test-/win32/fd_setsize/fd_setsize.c</a></div><div class='hunk'>@@ -37,11 +37,11 @@ test_fdset(VALUE self)</div><div class='ctx'>     FD_ZERO(&amp;set);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; FD_SETSIZE * 2; i++) {</div><div class='del'>-	int sd = socket(AF_INET, SOCK_DGRAM, 0);</div><div class='del'>-	FD_SET(sd, &amp;set);</div><div class='del'>-	if (set.fd_count &gt; FD_SETSIZE) {</div><div class='del'>-	    return Qfalse;</div><div class='del'>-	}</div><div class='add'>+        int sd = socket(AF_INET, SOCK_DGRAM, 0);</div><div class='add'>+        FD_SET(sd, &amp;set);</div><div class='add'>+        if (set.fd_count &gt; FD_SETSIZE) {</div><div class='add'>+            return Qfalse;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/.document b/ext/.document<br/>index 6a491576a1..aeb40c60fb 100644<br/>--- a/<a href='/ruby.git/tree/ext/.document?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/.document</a><br/>+++ b/<a href='/ruby.git/tree/ext/.document?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/.document</a></div><div class='hunk'>@@ -2,9 +2,15 @@</div><div class='ctx'> </div><div class='ctx'> bigdecimal/bigdecimal.c</div><div class='ctx'> bigdecimal/lib</div><div class='add'>+cgi/escape/escape.c</div><div class='ctx'> continuation/continuation.c</div><div class='ctx'> coverage/coverage.c</div><div class='add'>+coverage/lib</div><div class='ctx'> date/date_core.c</div><div class='add'>+date/date_parse.c</div><div class='add'>+date/date_strftime.c</div><div class='add'>+date/date_strptime.c</div><div class='add'>+date/lib</div><div class='ctx'> dbm/dbm.c</div><div class='ctx'> digest/bubblebabble/bubblebabble.c</div><div class='ctx'> digest/digest.c</div><div class='hunk'>@@ -13,6 +19,7 @@ digest/md5/md5init.c</div><div class='ctx'> digest/rmd160/rmd160init.c</div><div class='ctx'> digest/sha1/sha1init.c</div><div class='ctx'> digest/sha2/sha2init.c</div><div class='add'>+digest/sha2/lib</div><div class='ctx'> etc/etc.c</div><div class='ctx'> fcntl/fcntl.c</div><div class='ctx'> fiber/fiber.c</div><div class='hunk'>@@ -20,21 +27,26 @@ fiddle/closure.c</div><div class='ctx'> fiddle/conversions.c</div><div class='ctx'> fiddle/fiddle.c</div><div class='ctx'> fiddle/function.c</div><div class='add'>+fiddle/pinned.c</div><div class='ctx'> fiddle/pointer.c</div><div class='ctx'> fiddle/handle.c</div><div class='ctx'> fiddle/lib</div><div class='ctx'> gdbm/gdbm.c</div><div class='ctx'> io/console/console.c</div><div class='add'>+io/console/lib</div><div class='ctx'> io/nonblock/nonblock.c</div><div class='ctx'> io/wait/wait.c</div><div class='ctx'> json/generator/generator.c</div><div class='ctx'> json/lib</div><div class='ctx'> json/parser/parser.c</div><div class='add'>+monitor/lib</div><div class='add'>+monitor/monitor.c</div><div class='ctx'> nkf/lib</div><div class='ctx'> nkf/nkf.c</div><div class='ctx'> objspace/objspace.c</div><div class='ctx'> objspace/objspace_dump.c</div><div class='ctx'> objspace/object_tracing.c</div><div class='add'>+objspace/lib</div><div class='ctx'> openssl/lib</div><div class='ctx'> openssl/ossl.c</div><div class='ctx'> openssl/ossl_asn1.c</div><div class='hunk'>@@ -58,6 +70,7 @@ openssl/ossl_pkey_rsa.c</div><div class='ctx'> openssl/ossl_rand.c</div><div class='ctx'> openssl/ossl_ssl.c</div><div class='ctx'> openssl/ossl_ssl_session.c</div><div class='add'>+openssl/ossl_ts.c</div><div class='ctx'> openssl/ossl_x509.c</div><div class='ctx'> openssl/ossl_x509attr.c</div><div class='ctx'> openssl/ossl_x509cert.c</div><div class='hunk'>@@ -78,14 +91,16 @@ psych/psych_yaml_tree.c</div><div class='ctx'> pty/lib</div><div class='ctx'> pty/pty.c</div><div class='ctx'> racc/cparse/cparse.c</div><div class='add'>+rbconfig/sizeof/*.c</div><div class='ctx'> readline/readline.c</div><div class='ctx'> ripper/lib</div><div class='del'>-sdbm/init.c</div><div class='ctx'> socket</div><div class='ctx'> stringio/stringio.c</div><div class='ctx'> strscan/strscan.c</div><div class='ctx'> syslog/syslog.c</div><div class='ctx'> syslog/lib</div><div class='add'>+win32/lib</div><div class='add'>+win32/resolv/*.c</div><div class='ctx'> win32ole/lib</div><div class='ctx'> win32ole/*.c</div><div class='ctx'> zlib/zlib.c</div><div class='head'>diff --git a/ext/Setup b/ext/Setup<br/>index ac79c86f84..0376e2fc6c 100644<br/>--- a/<a href='/ruby.git/tree/ext/Setup?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/Setup</a><br/>+++ b/<a href='/ruby.git/tree/ext/Setup?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/Setup</a></div><div class='hunk'>@@ -33,7 +33,6 @@</div><div class='ctx'> #rbconfig/sizeof</div><div class='ctx'> #readline</div><div class='ctx'> #ripper</div><div class='del'>-#sdbm</div><div class='ctx'> #socket</div><div class='ctx'> #stringio</div><div class='ctx'> #strscan</div><div class='head'>diff --git a/ext/Setup.atheos b/ext/Setup.atheos<br/>index 90a7d01348..3f6263b1e2 100644<br/>--- a/<a href='/ruby.git/tree/ext/Setup.atheos?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/Setup.atheos</a><br/>+++ b/<a href='/ruby.git/tree/ext/Setup.atheos?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/Setup.atheos</a></div><div class='hunk'>@@ -20,7 +20,6 @@ pty</div><div class='ctx'> racc/parse</div><div class='ctx'> readline</div><div class='ctx'> ripper</div><div class='del'>-sdbm</div><div class='ctx'> socket</div><div class='ctx'> stringio</div><div class='ctx'> strscan</div><div class='head'>diff --git a/ext/Setup.nt b/ext/Setup.nt<br/>index fb5989b87f..dc36aa8688 100644<br/>--- a/<a href='/ruby.git/tree/ext/Setup.nt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/Setup.nt</a><br/>+++ b/<a href='/ruby.git/tree/ext/Setup.nt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/Setup.nt</a></div><div class='hunk'>@@ -21,7 +21,6 @@ nkf</div><div class='ctx'> racc/cparse</div><div class='ctx'> #readline</div><div class='ctx'> #ripper</div><div class='del'>-sdbm</div><div class='ctx'> socket</div><div class='ctx'> stringio</div><div class='ctx'> strscan</div><div class='head'>diff --git a/ext/bigdecimal/bigdecimal.c b/ext/bigdecimal/bigdecimal.c<br/>index 052fdc57b9..d6ea35c615 100644<br/>--- a/<a href='/ruby.git/tree/ext/bigdecimal/bigdecimal.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/bigdecimal.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/bigdecimal.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/bigdecimal.c</a></div><div class='hunk'>@@ -7,13 +7,12 @@</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> /* #define BIGDECIMAL_DEBUG 1 */</div><div class='del'>-#ifdef BIGDECIMAL_DEBUG</div><div class='del'>-# define BIGDECIMAL_ENABLE_VPRINT 1</div><div class='del'>-#endif</div><div class='add'>+</div><div class='ctx'> #include "bigdecimal.h"</div><div class='ctx'> #include "ruby/util.h"</div><div class='ctx'> </div><div class='ctx'> #ifndef BIGDECIMAL_DEBUG</div><div class='add'>+# undef NDEBUG</div><div class='ctx'> # define NDEBUG</div><div class='ctx'> #endif</div><div class='ctx'> #include &lt;assert.h&gt;</div><div class='hunk'>@@ -24,20 +23,16 @@</div><div class='ctx'> #include &lt;string.h&gt;</div><div class='ctx'> #include &lt;errno.h&gt;</div><div class='ctx'> #include &lt;math.h&gt;</div><div class='del'>-#include "math.h"</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_IEEEFP_H</div><div class='ctx'> #include &lt;ieeefp.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#include "bits.h"</div><div class='add'>+#include "static_assert.h"</div><div class='add'>+</div><div class='ctx'> /* #define ENABLE_NUMERIC_STRING */</div><div class='ctx'> </div><div class='del'>-#define MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, min, max) ( \</div><div class='del'>-    (a) == 0 ? 0 : \</div><div class='del'>-    (a) == -1 ? (b) &lt; -(max) : \</div><div class='del'>-    (a) &gt; 0 ? \</div><div class='del'>-      ((b) &gt; 0 ? (max) / (a) &lt; (b) : (min) / (a) &gt; (b)) : \</div><div class='del'>-      ((b) &gt; 0 ? (min) / (a) &lt; (b) : (max) / (a) &gt; (b)))</div><div class='ctx'> #define SIGNED_VALUE_MAX INTPTR_MAX</div><div class='ctx'> #define SIGNED_VALUE_MIN INTPTR_MIN</div><div class='ctx'> #define MUL_OVERFLOW_SIGNED_VALUE_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, SIGNED_VALUE_MIN, SIGNED_VALUE_MAX)</div><div class='hunk'>@@ -64,21 +59,30 @@ static ID id_to_r;</div><div class='ctx'> static ID id_eq;</div><div class='ctx'> static ID id_half;</div><div class='ctx'> </div><div class='add'>+#define RBD_NUM_ROUNDING_MODES 11</div><div class='add'>+</div><div class='add'>+static struct {</div><div class='add'>+    ID id;</div><div class='add'>+    uint8_t mode;</div><div class='add'>+} rbd_rounding_modes[RBD_NUM_ROUNDING_MODES];</div><div class='add'>+</div><div class='ctx'> /* MACRO's to guard objects from GC by keeping them in stack */</div><div class='add'>+#ifdef RBIMPL_ATTR_MAYBE_UNUSED</div><div class='add'>+#define ENTER(n) RBIMPL_ATTR_MAYBE_UNUSED() volatile VALUE vStack[n];int iStack=0</div><div class='add'>+#else</div><div class='ctx'> #define ENTER(n) volatile VALUE RB_UNUSED_VAR(vStack[n]);int iStack=0</div><div class='add'>+#endif</div><div class='ctx'> #define PUSH(x)  (vStack[iStack++] = (VALUE)(x))</div><div class='ctx'> #define SAVE(p)  PUSH((p)-&gt;obj)</div><div class='ctx'> #define GUARD_OBJ(p,y) ((p)=(y), SAVE(p))</div><div class='ctx'> </div><div class='del'>-#define BASE_FIG  RMPD_COMPONENT_FIGURES</div><div class='del'>-#define BASE      RMPD_BASE</div><div class='add'>+#define BASE_FIG  BIGDECIMAL_COMPONENT_FIGURES</div><div class='add'>+#define BASE      BIGDECIMAL_BASE</div><div class='ctx'> </div><div class='ctx'> #define HALF_BASE (BASE/2)</div><div class='ctx'> #define BASE1 (BASE/10)</div><div class='ctx'> </div><div class='del'>-#ifndef DBLE_FIG</div><div class='del'>-#define DBLE_FIG (DBL_DIG+1)    /* figure of double */</div><div class='del'>-#endif</div><div class='add'>+#define LOG10_2 0.3010299956639812</div><div class='ctx'> </div><div class='ctx'> #ifndef RRATIONAL_ZERO_P</div><div class='ctx'> # define RRATIONAL_ZERO_P(x) (FIXNUM_P(rb_rational_num(x)) &amp;&amp; \</div><div class='hunk'>@@ -103,32 +107,162 @@ static ID id_half;</div><div class='ctx'> # define RB_OBJ_STRING(obj) StringValueCStr(obj)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef HAVE_RB_RATIONAL_NUM</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_rational_num(VALUE rat)</div><div class='add'>+#ifndef MAYBE_UNUSED</div><div class='add'>+# define MAYBE_UNUSED(x) x</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define BIGDECIMAL_POSITIVE_P(bd) ((bd)-&gt;sign &gt; 0)</div><div class='add'>+#define BIGDECIMAL_NEGATIVE_P(bd) ((bd)-&gt;sign &lt; 0)</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * ================== Memory allocation ============================</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#ifdef BIGDECIMAL_DEBUG</div><div class='add'>+static size_t rbd_allocation_count = 0;   /* Memory allocation counter */</div><div class='add'>+static inline void</div><div class='add'>+atomic_allocation_count_inc(void)</div><div class='add'>+{</div><div class='add'>+    RUBY_ATOMIC_SIZE_INC(rbd_allocation_count);</div><div class='add'>+}</div><div class='add'>+static inline void</div><div class='add'>+atomic_allocation_count_dec_nounderflow(void)</div><div class='add'>+{</div><div class='add'>+    if (rbd_allocation_count == 0) return;</div><div class='add'>+    RUBY_ATOMIC_SIZE_DEC(rbd_allocation_count);</div><div class='add'>+}</div><div class='add'>+static void</div><div class='add'>+check_allocation_count_nonzero(void)</div><div class='ctx'> {</div><div class='del'>-#ifdef HAVE_TYPE_STRUCT_RRATIONAL</div><div class='del'>-    return RRATIONAL(rat)-&gt;num;</div><div class='add'>+    if (rbd_allocation_count != 0) return;</div><div class='add'>+    rb_bug("[bigdecimal][rbd_free_struct] Too many memory free calls");</div><div class='add'>+}</div><div class='ctx'> #else</div><div class='del'>-    return rb_funcall(rat, rb_intern("numerator"), 0);</div><div class='del'>-#endif</div><div class='add'>+#   define atomic_allocation_count_inc() /* nothing */</div><div class='add'>+#   define atomic_allocation_count_dec_nounderflow() /* nothing */</div><div class='add'>+#   define check_allocation_count_nonzero() /* nothing */</div><div class='add'>+#endif /* BIGDECIMAL_DEBUG */</div><div class='add'>+</div><div class='add'>+PUREFUNC(static inline size_t rbd_struct_size(size_t const));</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+rbd_struct_size(size_t const internal_digits)</div><div class='add'>+{</div><div class='add'>+    size_t const frac_len = (internal_digits == 0) ? 1 : internal_digits;</div><div class='add'>+    return offsetof(Real, frac) + frac_len * sizeof(DECDIG);</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-#ifndef HAVE_RB_RATIONAL_DEN</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_rational_den(VALUE rat)</div><div class='add'>+static inline Real *</div><div class='add'>+rbd_allocate_struct(size_t const internal_digits)</div><div class='ctx'> {</div><div class='del'>-#ifdef HAVE_TYPE_STRUCT_RRATIONAL</div><div class='del'>-    return RRATIONAL(rat)-&gt;den;</div><div class='del'>-#else</div><div class='del'>-    return rb_funcall(rat, rb_intern("denominator"), 0);</div><div class='del'>-#endif</div><div class='add'>+    size_t const size = rbd_struct_size(internal_digits);</div><div class='add'>+    Real *real = ruby_xcalloc(1, size);</div><div class='add'>+    atomic_allocation_count_inc();</div><div class='add'>+    real-&gt;MaxPrec = internal_digits;</div><div class='add'>+    return real;</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-#define BIGDECIMAL_POSITIVE_P(bd) ((bd)-&gt;sign &gt; 0)</div><div class='del'>-#define BIGDECIMAL_NEGATIVE_P(bd) ((bd)-&gt;sign &lt; 0)</div><div class='add'>+static size_t</div><div class='add'>+rbd_calculate_internal_digits(size_t const digits, bool limit_precision)</div><div class='add'>+{</div><div class='add'>+    size_t const len = roomof(digits, BASE_FIG);</div><div class='add'>+    if (limit_precision) {</div><div class='add'>+        size_t const prec_limit = VpGetPrecLimit();</div><div class='add'>+        if (prec_limit &gt; 0) {</div><div class='add'>+            /* NOTE: 2 more digits for rounding and division */</div><div class='add'>+            size_t const max_len = roomof(prec_limit, BASE_FIG) + 2;</div><div class='add'>+            if (len &gt; max_len)</div><div class='add'>+                return max_len;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return len;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline Real *</div><div class='add'>+rbd_allocate_struct_decimal_digits(size_t const decimal_digits, bool limit_precision)</div><div class='add'>+{</div><div class='add'>+    size_t const internal_digits = rbd_calculate_internal_digits(decimal_digits, limit_precision);</div><div class='add'>+    return rbd_allocate_struct(internal_digits);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE BigDecimal_wrap_struct(VALUE obj, Real *vp);</div><div class='add'>+</div><div class='add'>+static Real *</div><div class='add'>+rbd_reallocate_struct(Real *real, size_t const internal_digits)</div><div class='add'>+{</div><div class='add'>+    size_t const size = rbd_struct_size(internal_digits);</div><div class='add'>+    VALUE obj = real ? real-&gt;obj : 0;</div><div class='add'>+    Real *new_real = (Real *)ruby_xrealloc(real, size);</div><div class='add'>+    new_real-&gt;MaxPrec = internal_digits;</div><div class='add'>+    if (obj) {</div><div class='add'>+        new_real-&gt;obj = 0;</div><div class='add'>+        BigDecimal_wrap_struct(obj, new_real);</div><div class='add'>+    }</div><div class='add'>+    return new_real;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rbd_free_struct(Real *real)</div><div class='add'>+{</div><div class='add'>+    if (real != NULL) {</div><div class='add'>+        check_allocation_count_nonzero();</div><div class='add'>+        ruby_xfree(real);</div><div class='add'>+        atomic_allocation_count_dec_nounderflow();</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define NewZero rbd_allocate_struct_zero</div><div class='add'>+static Real *</div><div class='add'>+rbd_allocate_struct_zero(int sign, size_t const digits, bool limit_precision)</div><div class='add'>+{</div><div class='add'>+    Real *real = rbd_allocate_struct_decimal_digits(digits, limit_precision);</div><div class='add'>+    VpSetZero(real, sign);</div><div class='add'>+    return real;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+MAYBE_UNUSED(static inline Real * rbd_allocate_struct_zero_limited(int sign, size_t const digits));</div><div class='add'>+#define NewZeroLimited rbd_allocate_struct_zero_limited</div><div class='add'>+static inline Real *</div><div class='add'>+rbd_allocate_struct_zero_limited(int sign, size_t const digits)</div><div class='add'>+{</div><div class='add'>+    return rbd_allocate_struct_zero(sign, digits, true);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+MAYBE_UNUSED(static inline Real * rbd_allocate_struct_zero_nolimit(int sign, size_t const digits));</div><div class='add'>+#define NewZeroNolimit rbd_allocate_struct_zero_nolimit</div><div class='add'>+static inline Real *</div><div class='add'>+rbd_allocate_struct_zero_nolimit(int sign, size_t const digits)</div><div class='add'>+{</div><div class='add'>+    return rbd_allocate_struct_zero(sign, digits, false);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define NewOne rbd_allocate_struct_one</div><div class='add'>+static Real *</div><div class='add'>+rbd_allocate_struct_one(int sign, size_t const digits, bool limit_precision)</div><div class='add'>+{</div><div class='add'>+    Real *real = rbd_allocate_struct_decimal_digits(digits, limit_precision);</div><div class='add'>+    VpSetOne(real);</div><div class='add'>+    if (sign &lt; 0)</div><div class='add'>+        VpSetSign(real, VP_SIGN_NEGATIVE_FINITE);</div><div class='add'>+    return real;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+MAYBE_UNUSED(static inline Real * rbd_allocate_struct_one_limited(int sign, size_t const digits));</div><div class='add'>+#define NewOneLimited rbd_allocate_struct_one_limited</div><div class='add'>+static inline Real *</div><div class='add'>+rbd_allocate_struct_one_limited(int sign, size_t const digits)</div><div class='add'>+{</div><div class='add'>+    return rbd_allocate_struct_one(sign, digits, true);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+MAYBE_UNUSED(static inline Real * rbd_allocate_struct_one_nolimit(int sign, size_t const digits));</div><div class='add'>+#define NewOneNolimit rbd_allocate_struct_one_nolimit</div><div class='add'>+static inline Real *</div><div class='add'>+rbd_allocate_struct_one_nolimit(int sign, size_t const digits)</div><div class='add'>+{</div><div class='add'>+    return rbd_allocate_struct_one(sign, digits, false);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * ================== Ruby Interface part ==========================</div><div class='hunk'>@@ -140,58 +274,107 @@ rb_rational_den(VALUE rat)</div><div class='ctx'>  */</div><div class='ctx'> static unsigned short VpGetException(void);</div><div class='ctx'> static void  VpSetException(unsigned short f);</div><div class='del'>-static void  VpInternalRound(Real *c, size_t ixDigit, BDIGIT vPrev, BDIGIT v);</div><div class='add'>+static void VpCheckException(Real *p, bool always);</div><div class='add'>+static VALUE VpCheckGetValue(Real *p);</div><div class='add'>+static void  VpInternalRound(Real *c, size_t ixDigit, DECDIG vPrev, DECDIG v);</div><div class='ctx'> static int   VpLimitRound(Real *c, size_t ixDigit);</div><div class='ctx'> static Real *VpCopy(Real *pv, Real const* const x);</div><div class='del'>-</div><div class='del'>-#ifdef BIGDECIMAL_ENABLE_VPRINT</div><div class='ctx'> static int VPrint(FILE *fp,const char *cntl_chr,Real *a);</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  **** BigDecimal part ****</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='add'>+static VALUE BigDecimal_nan(void);</div><div class='add'>+static VALUE BigDecimal_positive_infinity(void);</div><div class='add'>+static VALUE BigDecimal_negative_infinity(void);</div><div class='add'>+static VALUE BigDecimal_positive_zero(void);</div><div class='add'>+static VALUE BigDecimal_negative_zero(void);</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> BigDecimal_delete(void *pv)</div><div class='ctx'> {</div><div class='del'>-    VpFree(pv);</div><div class='add'>+    rbd_free_struct(pv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static size_t</div><div class='ctx'> BigDecimal_memsize(const void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     const Real *pv = ptr;</div><div class='del'>-    return (sizeof(*pv) + pv-&gt;MaxPrec * sizeof(BDIGIT));</div><div class='add'>+    return (sizeof(*pv) + pv-&gt;MaxPrec * sizeof(DECDIG));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifndef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+#   undef RUBY_TYPED_FROZEN_SHAREABLE</div><div class='add'>+#   define RUBY_TYPED_FROZEN_SHAREABLE 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static const rb_data_type_t BigDecimal_data_type = {</div><div class='ctx'>     "BigDecimal",</div><div class='ctx'>     { 0, BigDecimal_delete, BigDecimal_memsize, },</div><div class='ctx'> #ifdef RUBY_TYPED_FREE_IMMEDIATELY</div><div class='del'>-    0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE</div><div class='ctx'> #endif</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static inline int</div><div class='del'>-is_kind_of_BigDecimal(VALUE const v)</div><div class='add'>+static Real *</div><div class='add'>+rbd_allocate_struct_zero_wrap_klass(VALUE klass, int sign, size_t const digits, bool limit_precision)</div><div class='ctx'> {</div><div class='del'>-    return rb_typeddata_is_kind_of(v, &amp;BigDecimal_data_type);</div><div class='add'>+    Real *real = rbd_allocate_struct_zero(sign, digits, limit_precision);</div><div class='add'>+    if (real != NULL) {</div><div class='add'>+        VALUE obj = TypedData_Wrap_Struct(klass, &amp;BigDecimal_data_type, 0);</div><div class='add'>+        BigDecimal_wrap_struct(obj, real);</div><div class='add'>+    }</div><div class='add'>+    return real;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-ToValue(Real *p)</div><div class='add'>+MAYBE_UNUSED(static inline Real * rbd_allocate_struct_zero_limited_wrap(int sign, size_t const digits));</div><div class='add'>+#define NewZeroWrapLimited rbd_allocate_struct_zero_limited_wrap</div><div class='add'>+static inline Real *</div><div class='add'>+rbd_allocate_struct_zero_limited_wrap(int sign, size_t const digits)</div><div class='ctx'> {</div><div class='del'>-    if (VpIsNaN(p)) {</div><div class='del'>-        VpException(VP_EXCEPTION_NaN, "Computation results to 'NaN'(Not a Number)", 0);</div><div class='del'>-    }</div><div class='del'>-    else if (VpIsPosInf(p)) {</div><div class='del'>-        VpException(VP_EXCEPTION_INFINITY, "Computation results to 'Infinity'", 0);</div><div class='del'>-    }</div><div class='del'>-    else if (VpIsNegInf(p)) {</div><div class='del'>-        VpException(VP_EXCEPTION_INFINITY, "Computation results to '-Infinity'", 0);</div><div class='add'>+    return rbd_allocate_struct_zero_wrap_klass(rb_cBigDecimal, sign, digits, true);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+MAYBE_UNUSED(static inline Real * rbd_allocate_struct_zero_nolimit_wrap(int sign, size_t const digits));</div><div class='add'>+#define NewZeroWrapNolimit rbd_allocate_struct_zero_nolimit_wrap</div><div class='add'>+static inline Real *</div><div class='add'>+rbd_allocate_struct_zero_nolimit_wrap(int sign, size_t const digits)</div><div class='add'>+{</div><div class='add'>+    return rbd_allocate_struct_zero_wrap_klass(rb_cBigDecimal, sign, digits, false);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static Real *</div><div class='add'>+rbd_allocate_struct_one_wrap_klass(VALUE klass, int sign, size_t const digits, bool limit_precision)</div><div class='add'>+{</div><div class='add'>+    Real *real = rbd_allocate_struct_one(sign, digits, limit_precision);</div><div class='add'>+    if (real != NULL) {</div><div class='add'>+        VALUE obj = TypedData_Wrap_Struct(klass, &amp;BigDecimal_data_type, 0);</div><div class='add'>+        BigDecimal_wrap_struct(obj, real);</div><div class='ctx'>     }</div><div class='del'>-    return p-&gt;obj;</div><div class='add'>+    return real;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+MAYBE_UNUSED(static inline Real * rbd_allocate_struct_one_limited_wrap(int sign, size_t const digits));</div><div class='add'>+#define NewOneWrapLimited rbd_allocate_struct_one_limited_wrap</div><div class='add'>+static inline Real *</div><div class='add'>+rbd_allocate_struct_one_limited_wrap(int sign, size_t const digits)</div><div class='add'>+{</div><div class='add'>+    return rbd_allocate_struct_one_wrap_klass(rb_cBigDecimal, sign, digits, true);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+MAYBE_UNUSED(static inline Real * rbd_allocate_struct_one_nolimit_wrap(int sign, size_t const digits));</div><div class='add'>+#define NewOneWrapNolimit rbd_allocate_struct_one_nolimit_wrap</div><div class='add'>+static inline Real *</div><div class='add'>+rbd_allocate_struct_one_nolimit_wrap(int sign, size_t const digits)</div><div class='add'>+{</div><div class='add'>+    return rbd_allocate_struct_one_wrap_klass(rb_cBigDecimal, sign, digits, false);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+is_kind_of_BigDecimal(VALUE const v)</div><div class='add'>+{</div><div class='add'>+    return rb_typeddata_is_kind_of(v, &amp;BigDecimal_data_type);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> NORETURN(static void cannot_be_coerced_into_BigDecimal(VALUE, VALUE));</div><div class='hunk'>@@ -213,127 +396,101 @@ cannot_be_coerced_into_BigDecimal(VALUE exc_class, VALUE v)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline VALUE BigDecimal_div2(VALUE, VALUE, VALUE);</div><div class='add'>+static VALUE rb_inum_convert_to_BigDecimal(VALUE val, size_t digs, int raise_exception);</div><div class='add'>+static VALUE rb_float_convert_to_BigDecimal(VALUE val, size_t digs, int raise_exception);</div><div class='add'>+static VALUE rb_rational_convert_to_BigDecimal(VALUE val, size_t digs, int raise_exception);</div><div class='add'>+static VALUE rb_cstr_convert_to_BigDecimal(const char *c_str, size_t digs, int raise_exception);</div><div class='add'>+static VALUE rb_convert_to_BigDecimal(VALUE val, size_t digs, int raise_exception);</div><div class='ctx'> </div><div class='ctx'> static Real*</div><div class='ctx'> GetVpValueWithPrec(VALUE v, long prec, int must)</div><div class='ctx'> {</div><div class='del'>-    ENTER(1);</div><div class='del'>-    Real *pv;</div><div class='del'>-    VALUE num, bg;</div><div class='del'>-    char szD[128];</div><div class='del'>-    VALUE orig = Qundef;</div><div class='del'>-    double d;</div><div class='add'>+    const size_t digs = prec &lt; 0 ? SIZE_MAX : (size_t)prec;</div><div class='ctx'> </div><div class='del'>-again:</div><div class='ctx'>     switch(TYPE(v)) {</div><div class='ctx'>       case T_FLOAT:</div><div class='del'>-	if (prec &lt; 0) goto unable_to_coerce_without_prec;</div><div class='del'>-	if (prec &gt; DBL_DIG+1) goto SomeOneMayDoIt;</div><div class='del'>-	d = RFLOAT_VALUE(v);</div><div class='del'>-	if (!isfinite(d)) {</div><div class='del'>-	    pv = VpCreateRbObject(1, NULL);</div><div class='del'>-	    VpDtoV(pv, d);</div><div class='del'>-	    return pv;</div><div class='del'>-	}</div><div class='del'>-	if (d != 0.0) {</div><div class='del'>-	    v = rb_funcall(v, id_to_r, 0);</div><div class='del'>-	    goto again;</div><div class='del'>-	}</div><div class='del'>-	if (1/d &lt; 0.0) {</div><div class='del'>-	    return VpCreateRbObject(prec, "-0");</div><div class='del'>-	}</div><div class='del'>-	return VpCreateRbObject(prec, "0");</div><div class='add'>+        v = rb_float_convert_to_BigDecimal(v, digs, must);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_RATIONAL:</div><div class='del'>-	if (prec &lt; 0) goto unable_to_coerce_without_prec;</div><div class='del'>-</div><div class='del'>-	if (orig == Qundef ? (orig = v, 1) : orig != v) {</div><div class='del'>-	    num = rb_rational_num(v);</div><div class='del'>-	    pv = GetVpValueWithPrec(num, -1, must);</div><div class='del'>-	    if (pv == NULL) goto SomeOneMayDoIt;</div><div class='del'>-</div><div class='del'>-	    v = BigDecimal_div2(ToValue(pv), rb_rational_den(v), LONG2NUM(prec));</div><div class='del'>-	    goto again;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	v = orig;</div><div class='del'>-	goto SomeOneMayDoIt;</div><div class='add'>+        v = rb_rational_convert_to_BigDecimal(v, digs, must);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_DATA:</div><div class='del'>-	if (is_kind_of_BigDecimal(v)) {</div><div class='del'>-	    pv = DATA_PTR(v);</div><div class='del'>-	    return pv;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    goto SomeOneMayDoIt;</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (!is_kind_of_BigDecimal(v)) {</div><div class='add'>+            goto SomeOneMayDoIt;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='del'>-      case T_FIXNUM:</div><div class='del'>-	sprintf(szD, "%ld", FIX2LONG(v));</div><div class='del'>-	return VpCreateRbObject(VpBaseFig() * 2 + 1, szD);</div><div class='add'>+      case T_FIXNUM: {</div><div class='add'>+        char szD[128];</div><div class='add'>+        snprintf(szD, 128, "%ld", FIX2LONG(v));</div><div class='add'>+        v = rb_cstr_convert_to_BigDecimal(szD, VpBaseFig() * 2 + 1, must);</div><div class='add'>+        break;</div><div class='add'>+      }</div><div class='ctx'> </div><div class='ctx'> #ifdef ENABLE_NUMERIC_STRING</div><div class='del'>-      case T_STRING:</div><div class='del'>-	StringValueCStr(v);</div><div class='del'>-	rb_check_safe_obj(v);</div><div class='del'>-	return VpCreateRbObject(RSTRING_LEN(v) + VpBaseFig() + 1,</div><div class='del'>-				RSTRING_PTR(v));</div><div class='add'>+      case T_STRING: {</div><div class='add'>+        const char *c_str = StringValueCStr(v);</div><div class='add'>+        v = rb_cstr_convert_to_BigDecimal(c_str, RSTRING_LEN(v) + VpBaseFig() + 1, must);</div><div class='add'>+        break;</div><div class='add'>+      }</div><div class='ctx'> #endif /* ENABLE_NUMERIC_STRING */</div><div class='ctx'> </div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	bg = rb_big2str(v, 10);</div><div class='del'>-	PUSH(bg);</div><div class='del'>-	return VpCreateRbObject(strlen(RSTRING_PTR(bg)) + VpBaseFig() + 1,</div><div class='del'>-				RSTRING_PTR(bg));</div><div class='add'>+      case T_BIGNUM: {</div><div class='add'>+	VALUE bg = rb_big2str(v, 10);</div><div class='add'>+        v = rb_cstr_convert_to_BigDecimal(RSTRING_PTR(bg), RSTRING_LEN(bg) + VpBaseFig() + 1, must);</div><div class='add'>+        RB_GC_GUARD(bg);</div><div class='add'>+        break;</div><div class='add'>+      }</div><div class='add'>+</div><div class='ctx'>       default:</div><div class='ctx'> 	goto SomeOneMayDoIt;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    Real *vp;</div><div class='add'>+    TypedData_Get_Struct(v, Real, &amp;BigDecimal_data_type, vp);</div><div class='add'>+    return vp;</div><div class='add'>+</div><div class='ctx'> SomeOneMayDoIt:</div><div class='ctx'>     if (must) {</div><div class='ctx'> 	cannot_be_coerced_into_BigDecimal(rb_eTypeError, v);</div><div class='ctx'>     }</div><div class='ctx'>     return NULL; /* NULL means to coerce */</div><div class='del'>-</div><div class='del'>-unable_to_coerce_without_prec:</div><div class='del'>-    if (must) {</div><div class='del'>-	rb_raise(rb_eArgError,</div><div class='del'>-		 "%"PRIsVALUE" can't be coerced into BigDecimal without a precision",</div><div class='del'>-		 RB_OBJ_CLASSNAME(v));</div><div class='del'>-    }</div><div class='del'>-    return NULL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static Real*</div><div class='add'>+static inline Real*</div><div class='ctx'> GetVpValue(VALUE v, int must)</div><div class='ctx'> {</div><div class='ctx'>     return GetVpValueWithPrec(v, -1, must);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* call-seq:</div><div class='del'>- * BigDecimal.double_fig</div><div class='add'>+ *   BigDecimal.double_fig -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns the number of digits a Float object is allowed to have;</div><div class='add'>+ *  the result is system-dependent:</div><div class='add'>+ *</div><div class='add'>+ *    BigDecimal.double_fig # =&gt; 16</div><div class='ctx'>  *</div><div class='del'>- * The BigDecimal.double_fig class method returns the number of digits a</div><div class='del'>- * Float number is allowed to have. The result depends upon the CPU and OS</div><div class='del'>- * in use.</div><div class='ctx'>  */</div><div class='del'>-static VALUE</div><div class='add'>+static inline VALUE</div><div class='ctx'> BigDecimal_double_fig(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     return INT2FIX(VpDblFig());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*  call-seq:</div><div class='del'>- *     big_decimal.precs  -&gt;  array</div><div class='add'>+ *    precs -&gt; array</div><div class='ctx'>  *</div><div class='del'>- *  Returns an Array of two Integer values.</div><div class='add'>+ *  Returns an Array of two Integer values that represent platform-dependent</div><div class='add'>+ *  internal storage properties.</div><div class='ctx'>  *</div><div class='del'>- *  The first value is the current number of significant digits in the</div><div class='del'>- *  BigDecimal. The second value is the maximum number of significant digits</div><div class='del'>- *  for the BigDecimal.</div><div class='add'>+ *  This method is deprecated and will be removed in the future.</div><div class='add'>+ *  Instead, use BigDecimal#n_significant_digits for obtaining the number of</div><div class='add'>+ *  significant digits in scientific notation, and BigDecimal#precision for</div><div class='add'>+ *  obtaining the number of digits in decimal notation.</div><div class='ctx'>  *</div><div class='del'>- *     BigDecimal('5').precs #=&gt; [9, 18]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -343,19 +500,251 @@ BigDecimal_prec(VALUE self)</div><div class='ctx'>     Real *p;</div><div class='ctx'>     VALUE obj;</div><div class='ctx'> </div><div class='add'>+    rb_category_warn(RB_WARN_CATEGORY_DEPRECATED,</div><div class='add'>+                     "BigDecimal#precs is deprecated and will be removed in the future; "</div><div class='add'>+                     "use BigDecimal#precision instead.");</div><div class='add'>+</div><div class='ctx'>     GUARD_OBJ(p, GetVpValue(self, 1));</div><div class='del'>-    obj = rb_assoc_new(INT2NUM(p-&gt;Prec*VpBaseFig()),</div><div class='del'>-		       INT2NUM(p-&gt;MaxPrec*VpBaseFig()));</div><div class='add'>+    obj = rb_assoc_new(SIZET2NUM(p-&gt;Prec*VpBaseFig()),</div><div class='add'>+		       SIZET2NUM(p-&gt;MaxPrec*VpBaseFig()));</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+BigDecimal_count_precision_and_scale(VALUE self, ssize_t *out_precision, ssize_t *out_scale)</div><div class='add'>+{</div><div class='add'>+    ENTER(1);</div><div class='add'>+</div><div class='add'>+    if (out_precision == NULL &amp;&amp; out_scale == NULL)</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+    Real *p;</div><div class='add'>+    GUARD_OBJ(p, GetVpValue(self, 1));</div><div class='add'>+    if (VpIsZero(p) || !VpIsDef(p)) {</div><div class='add'>+      zero:</div><div class='add'>+        if (out_precision) *out_precision = 0;</div><div class='add'>+        if (out_scale) *out_scale = 0;</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    DECDIG x;</div><div class='add'>+</div><div class='add'>+    ssize_t n = p-&gt;Prec; /* The length of frac without zeros. */</div><div class='add'>+    while (n &gt; 0 &amp;&amp; p-&gt;frac[n-1] == 0) --n;</div><div class='add'>+    if (n == 0) goto zero;</div><div class='add'>+</div><div class='add'>+    int nlz = BASE_FIG;</div><div class='add'>+    for (x = p-&gt;frac[0]; x &gt; 0; x /= 10) --nlz;</div><div class='add'>+</div><div class='add'>+    int ntz = 0;</div><div class='add'>+    for (x = p-&gt;frac[n-1]; x &gt; 0 &amp;&amp; x % 10 == 0; x /= 10) ++ntz;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Calculate the precision and the scale</div><div class='add'>+     * -------------------------------------</div><div class='add'>+     *</div><div class='add'>+     * The most significant digit is frac[0], and the least significant digit</div><div class='add'>+     * is frac[Prec-1].  When the exponent is zero, the decimal point is</div><div class='add'>+     * located just before frac[0].</div><div class='add'>+     *</div><div class='add'>+     * When the exponent is negative, the decimal point moves to leftward.</div><div class='add'>+     * In this case, the precision can be calculated by</div><div class='add'>+     *</div><div class='add'>+     *   precision = BASE_FIG * (-exponent + n) - ntz,</div><div class='add'>+     *</div><div class='add'>+     * and the scale is the same as precision.</div><div class='add'>+     *</div><div class='add'>+     *       0 . 0000 0000 | frac[0] ... frac[n-1] |</div><div class='add'>+     *         |&lt;----------| exponent == -2        |</div><div class='add'>+     *         |----------------------------------&gt;| precision</div><div class='add'>+     *         |----------------------------------&gt;| scale</div><div class='add'>+     *</div><div class='add'>+     *</div><div class='add'>+     * Conversely, when the exponent is positive, the decimal point moves to</div><div class='add'>+     * rightward.  In this case, the scale equals to</div><div class='add'>+     *</div><div class='add'>+     *   BASE_FIG * (n - exponent) - ntz.</div><div class='add'>+     *</div><div class='add'>+     * the precision equals to</div><div class='add'>+     *</div><div class='add'>+     *   scale + BASE_FIG * exponent - nlz.</div><div class='add'>+     *</div><div class='add'>+     *       | frac[0] frac[1] . frac[2] ... frac[n-1] |</div><div class='add'>+     *       |----------------&gt;| exponent == 2         |</div><div class='add'>+     *       |                 |----------------------&gt;| scale</div><div class='add'>+     *       |----------------------------------------&gt;| precision</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    ssize_t ex = p-&gt;exponent;</div><div class='add'>+</div><div class='add'>+    /* Count the number of decimal digits before frac[1]. */</div><div class='add'>+    ssize_t n_digits_head = BASE_FIG;</div><div class='add'>+    if (ex &lt; 0) {</div><div class='add'>+      n_digits_head += (-ex) * BASE_FIG;  /* The number of leading zeros before frac[0]. */</div><div class='add'>+      ex = 0;</div><div class='add'>+    }</div><div class='add'>+    else if (ex &gt; 0) {</div><div class='add'>+      /* Count the number of decimal digits without the leading zeros in</div><div class='add'>+       * the most significant digit in the integral part.</div><div class='add'>+       */</div><div class='add'>+      n_digits_head -= nlz;  /* Make the number of digits */</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (out_precision) {</div><div class='add'>+        ssize_t precision = n_digits_head;</div><div class='add'>+</div><div class='add'>+        /* Count the number of decimal digits after frac[0]. */</div><div class='add'>+        if (ex &gt; (ssize_t)n) {</div><div class='add'>+          /* In this case the number is an integer with some trailing zeros. */</div><div class='add'>+          precision += (ex - 1) * BASE_FIG;</div><div class='add'>+        }</div><div class='add'>+        else if (n &gt; 0) {</div><div class='add'>+          precision += (n - 1) * BASE_FIG;</div><div class='add'>+</div><div class='add'>+          if (ex &lt; (ssize_t)n) {</div><div class='add'>+            precision -= ntz;</div><div class='add'>+          }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        *out_precision = precision;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (out_scale) {</div><div class='add'>+        ssize_t scale = 0;</div><div class='add'>+</div><div class='add'>+        if (p-&gt;exponent &lt; 0) {</div><div class='add'>+            scale = n_digits_head + (n - 1) * BASE_FIG - ntz;</div><div class='add'>+        }</div><div class='add'>+        else if (n &gt; p-&gt;exponent) {</div><div class='add'>+            scale = (n - p-&gt;exponent) * BASE_FIG - ntz;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        *out_scale = scale;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='del'>- * call-seq: hash</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    precision -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns the number of decimal digits in +self+:</div><div class='ctx'>  *</div><div class='del'>- * Creates a hash for this BigDecimal.</div><div class='add'>+ *    BigDecimal("0").precision         # =&gt; 0</div><div class='add'>+ *    BigDecimal("1").precision         # =&gt; 1</div><div class='add'>+ *    BigDecimal("1.1").precision       # =&gt; 2</div><div class='add'>+ *    BigDecimal("3.1415").precision    # =&gt; 5</div><div class='add'>+ *    BigDecimal("-1e20").precision     # =&gt; 21</div><div class='add'>+ *    BigDecimal("1e-20").precision     # =&gt; 20</div><div class='add'>+ *    BigDecimal("Infinity").precision  # =&gt; 0</div><div class='add'>+ *    BigDecimal("-Infinity").precision # =&gt; 0</div><div class='add'>+ *    BigDecimal("NaN").precision       # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_precision(VALUE self)</div><div class='add'>+{</div><div class='add'>+    ssize_t precision;</div><div class='add'>+    BigDecimal_count_precision_and_scale(self, &amp;precision, NULL);</div><div class='add'>+    return SSIZET2NUM(precision);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    scale -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns the number of decimal digits following the decimal digits in +self+.</div><div class='add'>+ *</div><div class='add'>+ *    BigDecimal("0").scale         # =&gt; 0</div><div class='add'>+ *    BigDecimal("1").scale         # =&gt; 1</div><div class='add'>+ *    BigDecimal("1.1").scale       # =&gt; 1</div><div class='add'>+ *    BigDecimal("3.1415").scale    # =&gt; 4</div><div class='add'>+ *    BigDecimal("-1e20").precision # =&gt; 0</div><div class='add'>+ *    BigDecimal("1e-20").precision # =&gt; 20</div><div class='add'>+ *    BigDecimal("Infinity").scale  # =&gt; 0</div><div class='add'>+ *    BigDecimal("-Infinity").scale # =&gt; 0</div><div class='add'>+ *    BigDecimal("NaN").scale       # =&gt; 0</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_scale(VALUE self)</div><div class='add'>+{</div><div class='add'>+    ssize_t scale;</div><div class='add'>+    BigDecimal_count_precision_and_scale(self, NULL, &amp;scale);</div><div class='add'>+    return SSIZET2NUM(scale);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    precision_scale -&gt; [integer, integer]</div><div class='add'>+ *</div><div class='add'>+ *  Returns a 2-length array; the first item is the result of</div><div class='add'>+ *  BigDecimal#precision and the second one is of BigDecimal#scale.</div><div class='add'>+ *</div><div class='add'>+ *  See BigDecimal#precision.</div><div class='add'>+ *  See BigDecimal#scale.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_precision_scale(VALUE self)</div><div class='add'>+{</div><div class='add'>+    ssize_t precision, scale;</div><div class='add'>+    BigDecimal_count_precision_and_scale(self, &amp;precision, &amp;scale);</div><div class='add'>+    return rb_assoc_new(SSIZET2NUM(precision), SSIZET2NUM(scale));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    n_significant_digits -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns the number of decimal significant digits in +self+.</div><div class='add'>+ *</div><div class='add'>+ *    BigDecimal("0").n_significant_digits         # =&gt; 0</div><div class='add'>+ *    BigDecimal("1").n_significant_digits         # =&gt; 1</div><div class='add'>+ *    BigDecimal("1.1").n_significant_digits       # =&gt; 2</div><div class='add'>+ *    BigDecimal("3.1415").n_significant_digits    # =&gt; 5</div><div class='add'>+ *    BigDecimal("-1e20").n_significant_digits     # =&gt; 1</div><div class='add'>+ *    BigDecimal("1e-20").n_significant_digits     # =&gt; 1</div><div class='add'>+ *    BigDecimal("Infinity").n_significant_digits  # =&gt; 0</div><div class='add'>+ *    BigDecimal("-Infinity").n_significant_digits # =&gt; 0</div><div class='add'>+ *    BigDecimal("NaN").n_significant_digits       # =&gt; 0</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_n_significant_digits(VALUE self)</div><div class='add'>+{</div><div class='add'>+    ENTER(1);</div><div class='add'>+</div><div class='add'>+    Real *p;</div><div class='add'>+    GUARD_OBJ(p, GetVpValue(self, 1));</div><div class='add'>+    if (VpIsZero(p) || !VpIsDef(p)) {</div><div class='add'>+        return INT2FIX(0);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ssize_t n = p-&gt;Prec;  /* The length of frac without trailing zeros. */</div><div class='add'>+    for (n = p-&gt;Prec; n &gt; 0 &amp;&amp; p-&gt;frac[n-1] == 0; --n);</div><div class='add'>+    if (n == 0) return INT2FIX(0);</div><div class='add'>+</div><div class='add'>+    DECDIG x;</div><div class='add'>+    int nlz = BASE_FIG;</div><div class='add'>+    for (x = p-&gt;frac[0]; x &gt; 0; x /= 10) --nlz;</div><div class='add'>+</div><div class='add'>+    int ntz = 0;</div><div class='add'>+    for (x = p-&gt;frac[n-1]; x &gt; 0 &amp;&amp; x % 10 == 0; x /= 10) ++ntz;</div><div class='add'>+</div><div class='add'>+    ssize_t n_significant_digits = BASE_FIG*n - nlz - ntz;</div><div class='add'>+    return SSIZET2NUM(n_significant_digits);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    hash -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns the integer hash value for +self+.</div><div class='add'>+ *</div><div class='add'>+ *  Two instances of \BigDecimal have the same hash value if and only if</div><div class='add'>+ *  they have equal:</div><div class='add'>+ *</div><div class='add'>+ *  - Sign.</div><div class='add'>+ *  - Fractional part.</div><div class='add'>+ *  - Exponent.</div><div class='ctx'>  *</div><div class='del'>- * Two BigDecimals with equal sign,</div><div class='del'>- * fractional part and exponent have the same hash.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_hash(VALUE self)</div><div class='hunk'>@@ -368,23 +757,23 @@ BigDecimal_hash(VALUE self)</div><div class='ctx'>     hash = (st_index_t)p-&gt;sign;</div><div class='ctx'>     /* hash!=2: the case for 0(1),NaN(0) or +-Infinity(3) is sign itself */</div><div class='ctx'>     if(hash == 2 || hash == (st_index_t)-2) {</div><div class='del'>-	hash ^= rb_memhash(p-&gt;frac, sizeof(BDIGIT)*p-&gt;Prec);</div><div class='del'>-	hash += p-&gt;exponent;</div><div class='add'>+        hash ^= rb_memhash(p-&gt;frac, sizeof(DECDIG)*p-&gt;Prec);</div><div class='add'>+        hash += p-&gt;exponent;</div><div class='ctx'>     }</div><div class='ctx'>     return ST2FIX(hash);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq: _dump</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    _dump -&gt; string</div><div class='ctx'>  *</div><div class='del'>- * Method used to provide marshalling support.</div><div class='add'>+ *  Returns a string representing the marshalling of +self+.</div><div class='add'>+ *  See module Marshal.</div><div class='ctx'>  *</div><div class='del'>- *      inf = BigDecimal('Infinity')</div><div class='del'>- *        #=&gt; Infinity</div><div class='del'>- *      BigDecimal._load(inf._dump)</div><div class='del'>- *        #=&gt; Infinity</div><div class='add'>+ *    inf = BigDecimal('Infinity') # =&gt; Infinity</div><div class='add'>+ *    dumped = inf._dump           # =&gt; "9:Infinity"</div><div class='add'>+ *    BigDecimal._load(dumped)     # =&gt; Infinity</div><div class='ctx'>  *</div><div class='del'>- * See the Marshal module.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_dump(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -394,13 +783,15 @@ BigDecimal_dump(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     char *psz;</div><div class='ctx'>     VALUE dummy;</div><div class='ctx'>     volatile VALUE dump;</div><div class='add'>+    size_t len;</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "01", &amp;dummy);</div><div class='ctx'>     GUARD_OBJ(vp,GetVpValue(self, 1));</div><div class='ctx'>     dump = rb_str_new(0, VpNumOfChars(vp, "E")+50);</div><div class='ctx'>     psz = RSTRING_PTR(dump);</div><div class='del'>-    sprintf(psz, "%"PRIuSIZE":", VpMaxPrec(vp)*VpBaseFig());</div><div class='del'>-    VpToString(vp, psz+strlen(psz), 0, 0);</div><div class='add'>+    snprintf(psz, RSTRING_LEN(dump), "%"PRIuSIZE":", VpMaxPrec(vp)*VpBaseFig());</div><div class='add'>+    len = strlen(psz);</div><div class='add'>+    VpToString(vp, psz+len, RSTRING_LEN(dump)-len, 0, 0);</div><div class='ctx'>     rb_str_resize(dump, strlen(psz));</div><div class='ctx'>     return dump;</div><div class='ctx'> }</div><div class='hunk'>@@ -418,7 +809,6 @@ BigDecimal_load(VALUE self, VALUE str)</div><div class='ctx'>     unsigned long m=0;</div><div class='ctx'> </div><div class='ctx'>     pch = (unsigned char *)StringValueCStr(str);</div><div class='del'>-    rb_check_safe_obj(str);</div><div class='ctx'>     /* First get max prec */</div><div class='ctx'>     while((*pch) != (unsigned char)'\0' &amp;&amp; (ch = *pch++) != (unsigned char)':') {</div><div class='ctx'>         if(!ISDIGIT(ch)) {</div><div class='hunk'>@@ -427,12 +817,12 @@ BigDecimal_load(VALUE self, VALUE str)</div><div class='ctx'>         m = m*10 + (unsigned long)(ch-'0');</div><div class='ctx'>     }</div><div class='ctx'>     if (m &gt; VpBaseFig()) m -= VpBaseFig();</div><div class='del'>-    GUARD_OBJ(pv, VpNewRbClass(m, (char *)pch, self));</div><div class='add'>+    GUARD_OBJ(pv, VpNewRbClass(m, (char *)pch, self, true, true));</div><div class='ctx'>     m /= VpBaseFig();</div><div class='ctx'>     if (m &amp;&amp; pv-&gt;MaxPrec &gt; m) {</div><div class='ctx'> 	pv-&gt;MaxPrec = m+1;</div><div class='ctx'>     }</div><div class='del'>-    return ToValue(pv);</div><div class='add'>+    return VpCheckGetValue(pv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static unsigned short</div><div class='hunk'>@@ -445,18 +835,19 @@ check_rounding_mode_option(VALUE const opts)</div><div class='ctx'>     assert(RB_TYPE_P(opts, T_HASH));</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(opts))</div><div class='del'>-        goto noopt;</div><div class='add'>+        goto no_opt;</div><div class='ctx'> </div><div class='ctx'>     mode = rb_hash_lookup2(opts, ID2SYM(id_half), Qundef);</div><div class='ctx'>     if (mode == Qundef || NIL_P(mode))</div><div class='del'>-        goto noopt;</div><div class='add'>+        goto no_opt;</div><div class='ctx'> </div><div class='ctx'>     if (SYMBOL_P(mode))</div><div class='ctx'>         mode = rb_sym2str(mode);</div><div class='ctx'>     else if (!RB_TYPE_P(mode, T_STRING)) {</div><div class='del'>-	VALUE str_mode = rb_check_string_type(mode);</div><div class='del'>-	if (NIL_P(str_mode)) goto invalid;</div><div class='del'>-	mode = str_mode;</div><div class='add'>+        VALUE str_mode = rb_check_string_type(mode);</div><div class='add'>+        if (NIL_P(str_mode))</div><div class='add'>+            goto invalid;</div><div class='add'>+        mode = str_mode;</div><div class='ctx'>     }</div><div class='ctx'>     s = RSTRING_PTR(mode);</div><div class='ctx'>     l = RSTRING_LEN(mode);</div><div class='hunk'>@@ -474,13 +865,11 @@ check_rounding_mode_option(VALUE const opts)</div><div class='ctx'>       default:</div><div class='ctx'>         break;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>   invalid:</div><div class='del'>-    if (NIL_P(mode))</div><div class='del'>-	rb_raise(rb_eArgError, "invalid rounding mode: nil");</div><div class='del'>-    else</div><div class='del'>-	rb_raise(rb_eArgError, "invalid rounding mode: %"PRIsVALUE, mode);</div><div class='add'>+    rb_raise(rb_eArgError, "invalid rounding mode (%"PRIsVALUE")", mode);</div><div class='ctx'> </div><div class='del'>-  noopt:</div><div class='add'>+  no_opt:</div><div class='ctx'>     return VpGetRoundMode();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -489,72 +878,185 @@ check_rounding_mode(VALUE const v)</div><div class='ctx'> {</div><div class='ctx'>     unsigned short sw;</div><div class='ctx'>     ID id;</div><div class='del'>-    switch (TYPE(v)) {</div><div class='del'>-      case T_SYMBOL:</div><div class='del'>-	id = SYM2ID(v);</div><div class='del'>-	if (id == id_up)</div><div class='del'>-	    return VP_ROUND_UP;</div><div class='del'>-	if (id == id_down || id == id_truncate)</div><div class='del'>-	    return VP_ROUND_DOWN;</div><div class='del'>-	if (id == id_half_up || id == id_default)</div><div class='del'>-	    return VP_ROUND_HALF_UP;</div><div class='del'>-	if (id == id_half_down)</div><div class='del'>-	    return VP_ROUND_HALF_DOWN;</div><div class='del'>-	if (id == id_half_even || id == id_banker)</div><div class='del'>-	    return VP_ROUND_HALF_EVEN;</div><div class='del'>-	if (id == id_ceiling || id == id_ceil)</div><div class='del'>-	    return VP_ROUND_CEIL;</div><div class='del'>-	if (id == id_floor)</div><div class='del'>-	    return VP_ROUND_FLOOR;</div><div class='del'>-	rb_raise(rb_eArgError, "invalid rounding mode");</div><div class='del'>-</div><div class='del'>-      default:</div><div class='del'>-	break;</div><div class='add'>+    if (RB_TYPE_P(v, T_SYMBOL)) {</div><div class='add'>+        int i;</div><div class='add'>+        id = SYM2ID(v);</div><div class='add'>+        for (i = 0; i &lt; RBD_NUM_ROUNDING_MODES; ++i) {</div><div class='add'>+            if (rbd_rounding_modes[i].id == id) {</div><div class='add'>+                return rbd_rounding_modes[i].mode;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        rb_raise(rb_eArgError, "invalid rounding mode (%"PRIsVALUE")", v);</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    sw = NUM2USHORT(v);</div><div class='del'>-    if (!VpIsRoundMode(sw)) {</div><div class='del'>-	rb_raise(rb_eArgError, "invalid rounding mode");</div><div class='add'>+    else {</div><div class='add'>+        sw = NUM2USHORT(v);</div><div class='add'>+        if (!VpIsRoundMode(sw)) {</div><div class='add'>+            rb_raise(rb_eArgError, "invalid rounding mode (%"PRIsVALUE")", v);</div><div class='add'>+        }</div><div class='add'>+        return sw;</div><div class='ctx'>     }</div><div class='del'>-    return sw;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* call-seq:</div><div class='del'>- * BigDecimal.mode(mode, value)</div><div class='del'>- *</div><div class='del'>- * Controls handling of arithmetic exceptions and rounding. If no value</div><div class='del'>- * is supplied, the current value is returned.</div><div class='del'>- *</div><div class='del'>- * Six values of the mode parameter control the handling of arithmetic</div><div class='del'>- * exceptions:</div><div class='del'>- *</div><div class='del'>- * BigDecimal::EXCEPTION_NaN</div><div class='del'>- * BigDecimal::EXCEPTION_INFINITY</div><div class='del'>- * BigDecimal::EXCEPTION_UNDERFLOW</div><div class='del'>- * BigDecimal::EXCEPTION_OVERFLOW</div><div class='del'>- * BigDecimal::EXCEPTION_ZERODIVIDE</div><div class='del'>- * BigDecimal::EXCEPTION_ALL</div><div class='del'>- *</div><div class='del'>- * For each mode parameter above, if the value set is false, computation</div><div class='del'>- * continues after an arithmetic exception of the appropriate type.</div><div class='del'>- * When computation continues, results are as follows:</div><div class='del'>- *</div><div class='del'>- * EXCEPTION_NaN:: NaN</div><div class='del'>- * EXCEPTION_INFINITY:: +Infinity or -Infinity</div><div class='del'>- * EXCEPTION_UNDERFLOW:: 0</div><div class='del'>- * EXCEPTION_OVERFLOW:: +Infinity or -Infinity</div><div class='del'>- * EXCEPTION_ZERODIVIDE:: +Infinity or -Infinity</div><div class='del'>- *</div><div class='del'>- * One value of the mode parameter controls the rounding of numeric values:</div><div class='del'>- * BigDecimal::ROUND_MODE. The values it can take are:</div><div class='del'>- *</div><div class='del'>- * ROUND_UP, :up:: round away from zero</div><div class='del'>- * ROUND_DOWN, :down, :truncate:: round towards zero (truncate)</div><div class='del'>- * ROUND_HALF_UP, :half_up, :default:: round towards the nearest neighbor, unless both neighbors are equidistant, in which case round away from zero. (default)</div><div class='del'>- * ROUND_HALF_DOWN, :half_down:: round towards the nearest neighbor, unless both neighbors are equidistant, in which case round towards zero.</div><div class='del'>- * ROUND_HALF_EVEN, :half_even, :banker:: round towards the nearest neighbor, unless both neighbors are equidistant, in which case round towards the even neighbor (Banker's rounding)</div><div class='del'>- * ROUND_CEILING, :ceiling, :ceil:: round towards positive infinity (ceil)</div><div class='del'>- * ROUND_FLOOR, :floor:: round towards negative infinity (floor)</div><div class='add'>+/*  call-seq:</div><div class='add'>+ *    BigDecimal.mode(mode, setting = nil) -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns an integer representing the mode settings</div><div class='add'>+ *  for exception handling and rounding.</div><div class='add'>+ *</div><div class='add'>+ *  These modes control exception handling:</div><div class='add'>+ *</div><div class='add'>+ *  - \BigDecimal::EXCEPTION_NaN.</div><div class='add'>+ *  - \BigDecimal::EXCEPTION_INFINITY.</div><div class='add'>+ *  - \BigDecimal::EXCEPTION_UNDERFLOW.</div><div class='add'>+ *  - \BigDecimal::EXCEPTION_OVERFLOW.</div><div class='add'>+ *  - \BigDecimal::EXCEPTION_ZERODIVIDE.</div><div class='add'>+ *  - \BigDecimal::EXCEPTION_ALL.</div><div class='add'>+ *</div><div class='add'>+ *  Values for +setting+ for exception handling:</div><div class='add'>+ *</div><div class='add'>+ *  - +true+: sets the given +mode+ to +true+.</div><div class='add'>+ *  - +false+: sets the given +mode+ to +false+.</div><div class='add'>+ *  - +nil+: does not modify the mode settings.</div><div class='add'>+ *</div><div class='add'>+ *  You can use method BigDecimal.save_exception_mode</div><div class='add'>+ *  to temporarily change, and then automatically restore, exception modes.</div><div class='add'>+ *</div><div class='add'>+ *  For clarity, some examples below begin by setting all</div><div class='add'>+ *  exception modes to +false+.</div><div class='add'>+ *</div><div class='add'>+ *  This mode controls the way rounding is to be performed:</div><div class='add'>+ *</div><div class='add'>+ *  - \BigDecimal::ROUND_MODE</div><div class='add'>+ *</div><div class='add'>+ *  You can use method BigDecimal.save_rounding_mode</div><div class='add'>+ *  to temporarily change, and then automatically restore, the rounding mode.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;NaNs&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Mode \BigDecimal::EXCEPTION_NaN controls behavior</div><div class='add'>+ *  when a \BigDecimal NaN is created.</div><div class='add'>+ *</div><div class='add'>+ *  Settings:</div><div class='add'>+ *</div><div class='add'>+ *  - +false+ (default): Returns &lt;tt&gt;BigDecimal('NaN')&lt;/tt&gt;.</div><div class='add'>+ *  - +true+: Raises FloatDomainError.</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_ALL, false) # =&gt; 0</div><div class='add'>+ *    BigDecimal('NaN')                                 # =&gt; NaN</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_NaN, true)  # =&gt; 2</div><div class='add'>+ *    BigDecimal('NaN') # Raises FloatDomainError</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Infinities&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Mode \BigDecimal::EXCEPTION_INFINITY controls behavior</div><div class='add'>+ *  when a \BigDecimal Infinity or -Infinity is created.</div><div class='add'>+ *  Settings:</div><div class='add'>+ *</div><div class='add'>+ *  - +false+ (default): Returns &lt;tt&gt;BigDecimal('Infinity')&lt;/tt&gt;</div><div class='add'>+ *    or &lt;tt&gt;BigDecimal('-Infinity')&lt;/tt&gt;.</div><div class='add'>+ *  - +true+: Raises FloatDomainError.</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_ALL, false)     # =&gt; 0</div><div class='add'>+ *    BigDecimal('Infinity')                                # =&gt; Infinity</div><div class='add'>+ *    BigDecimal('-Infinity')                               # =&gt; -Infinity</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_INFINITY, true) # =&gt; 1</div><div class='add'>+ *    BigDecimal('Infinity')  # Raises FloatDomainError</div><div class='add'>+ *    BigDecimal('-Infinity') # Raises FloatDomainError</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Underflow&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Mode \BigDecimal::EXCEPTION_UNDERFLOW controls behavior</div><div class='add'>+ *  when a \BigDecimal underflow occurs.</div><div class='add'>+ *  Settings:</div><div class='add'>+ *</div><div class='add'>+ *  - +false+ (default): Returns &lt;tt&gt;BigDecimal('0')&lt;/tt&gt;</div><div class='add'>+ *    or &lt;tt&gt;BigDecimal('-Infinity')&lt;/tt&gt;.</div><div class='add'>+ *  - +true+: Raises FloatDomainError.</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_ALL, false)      # =&gt; 0</div><div class='add'>+ *    def flow_under</div><div class='add'>+ *      x = BigDecimal('0.1')</div><div class='add'>+ *      100.times { x *= x }</div><div class='add'>+ *    end</div><div class='add'>+ *    flow_under                                             # =&gt; 100</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_UNDERFLOW, true) # =&gt; 4</div><div class='add'>+ *    flow_under # Raises FloatDomainError</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Overflow&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Mode \BigDecimal::EXCEPTION_OVERFLOW controls behavior</div><div class='add'>+ *  when a \BigDecimal overflow occurs.</div><div class='add'>+ *  Settings:</div><div class='add'>+ *</div><div class='add'>+ *  - +false+ (default): Returns &lt;tt&gt;BigDecimal('Infinity')&lt;/tt&gt;</div><div class='add'>+ *    or &lt;tt&gt;BigDecimal('-Infinity')&lt;/tt&gt;.</div><div class='add'>+ *  - +true+: Raises FloatDomainError.</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_ALL, false)     # =&gt; 0</div><div class='add'>+ *    def flow_over</div><div class='add'>+ *      x = BigDecimal('10')</div><div class='add'>+ *      100.times { x *= x }</div><div class='add'>+ *    end</div><div class='add'>+ *    flow_over                                             # =&gt; 100</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_OVERFLOW, true) # =&gt; 1</div><div class='add'>+ *    flow_over # Raises FloatDomainError</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Zero Division&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Mode \BigDecimal::EXCEPTION_ZERODIVIDE controls behavior</div><div class='add'>+ *  when a zero-division occurs.</div><div class='add'>+ *  Settings:</div><div class='add'>+ *</div><div class='add'>+ *  - +false+ (default): Returns &lt;tt&gt;BigDecimal('Infinity')&lt;/tt&gt;</div><div class='add'>+ *    or &lt;tt&gt;BigDecimal('-Infinity')&lt;/tt&gt;.</div><div class='add'>+ *  - +true+: Raises FloatDomainError.</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_ALL, false)       # =&gt; 0</div><div class='add'>+ *    one = BigDecimal('1')</div><div class='add'>+ *    zero = BigDecimal('0')</div><div class='add'>+ *    one / zero                                              # =&gt; Infinity</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_ZERODIVIDE, true) # =&gt; 16</div><div class='add'>+ *    one / zero # Raises FloatDomainError</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;All Exceptions&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Mode \BigDecimal::EXCEPTION_ALL controls all of the above:</div><div class='add'>+ *</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_ALL, false) # =&gt; 0</div><div class='add'>+ *    BigDecimal.mode(BigDecimal::EXCEPTION_ALL, true)  # =&gt; 23</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Rounding&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Mode \BigDecimal::ROUND_MODE controls the way rounding is to be performed;</div><div class='add'>+ *  its +setting+ values are:</div><div class='add'>+ *</div><div class='add'>+ *  - +ROUND_UP+: Round away from zero.</div><div class='add'>+ *    Aliased as +:up+.</div><div class='add'>+ *  - +ROUND_DOWN+: Round toward zero.</div><div class='add'>+ *    Aliased as +:down+ and +:truncate+.</div><div class='add'>+ *  - +ROUND_HALF_UP+: Round toward the nearest neighbor;</div><div class='add'>+ *    if the neighbors are equidistant, round away from zero.</div><div class='add'>+ *    Aliased as +:half_up+ and +:default+.</div><div class='add'>+ *  - +ROUND_HALF_DOWN+: Round toward the nearest neighbor;</div><div class='add'>+ *    if the neighbors are equidistant, round toward zero.</div><div class='add'>+ *    Aliased as +:half_down+.</div><div class='add'>+ *  - +ROUND_HALF_EVEN+ (Banker's rounding): Round toward the nearest neighbor;</div><div class='add'>+ *    if the neighbors are equidistant, round toward the even neighbor.</div><div class='add'>+ *    Aliased as +:half_even+ and +:banker+.</div><div class='add'>+ *  - +ROUND_CEILING+: Round toward positive infinity.</div><div class='add'>+ *    Aliased as +:ceiling+ and +:ceil+.</div><div class='add'>+ *  - +ROUND_FLOOR+: Round toward negative infinity.</div><div class='add'>+ *    Aliased as +:floor:+.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -631,49 +1133,70 @@ GetAddSubPrec(Real *a, Real *b)</div><div class='ctx'>     return mx;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static SIGNED_VALUE</div><div class='del'>-GetPrecisionInt(VALUE v)</div><div class='add'>+static inline SIGNED_VALUE</div><div class='add'>+check_int_precision(VALUE v)</div><div class='ctx'> {</div><div class='ctx'>     SIGNED_VALUE n;</div><div class='del'>-    n = NUM2INT(v);</div><div class='add'>+#if SIZEOF_VALUE &lt;= SIZEOF_LONG</div><div class='add'>+    n = (SIGNED_VALUE)NUM2LONG(v);</div><div class='add'>+#elif SIZEOF_VALUE &lt;= SIZEOF_LONG_LONG</div><div class='add'>+    n = (SIGNED_VALUE)NUM2LL(v);</div><div class='add'>+#else</div><div class='add'>+#   error SIZEOF_VALUE is too large</div><div class='add'>+#endif</div><div class='ctx'>     if (n &lt; 0) {</div><div class='ctx'> 	rb_raise(rb_eArgError, "negative precision");</div><div class='ctx'>     }</div><div class='ctx'>     return n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_wrap_struct(VALUE obj, Real *vp)</div><div class='add'>+{</div><div class='add'>+    assert(is_kind_of_BigDecimal(obj));</div><div class='add'>+    assert(vp != NULL);</div><div class='add'>+</div><div class='add'>+    if (vp-&gt;obj == obj &amp;&amp; RTYPEDDATA_DATA(obj) == vp)</div><div class='add'>+        return obj;</div><div class='add'>+</div><div class='add'>+    assert(RTYPEDDATA_DATA(obj) == NULL);</div><div class='add'>+    assert(vp-&gt;obj == 0);</div><div class='add'>+</div><div class='add'>+    RTYPEDDATA_DATA(obj) = vp;</div><div class='add'>+    vp-&gt;obj = obj;</div><div class='add'>+    RB_OBJ_FREEZE(obj);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VP_EXPORT Real *</div><div class='del'>-VpNewRbClass(size_t mx, const char *str, VALUE klass)</div><div class='add'>+VpNewRbClass(size_t mx, const char *str, VALUE klass, bool strict_p, bool raise_exception)</div><div class='ctx'> {</div><div class='ctx'>     VALUE obj = TypedData_Wrap_Struct(klass, &amp;BigDecimal_data_type, 0);</div><div class='del'>-    Real *pv = VpAlloc(mx, str, 1, 1);</div><div class='del'>-    RTYPEDDATA_DATA(obj) = pv;</div><div class='del'>-    pv-&gt;obj = obj;</div><div class='del'>-    RB_OBJ_FREEZE(obj);</div><div class='add'>+    Real *pv = VpAlloc(mx, str, strict_p, raise_exception);</div><div class='add'>+    if (!pv)</div><div class='add'>+        return NULL;</div><div class='add'>+    BigDecimal_wrap_struct(obj, pv);</div><div class='ctx'>     return pv;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VP_EXPORT Real *</div><div class='del'>-VpCreateRbObject(size_t mx, const char *str)</div><div class='add'>+VpCreateRbObject(size_t mx, const char *str, bool raise_exception)</div><div class='ctx'> {</div><div class='del'>-    return VpNewRbClass(mx, str, rb_cBigDecimal);</div><div class='add'>+    return VpNewRbClass(mx, str, rb_cBigDecimal, true, raise_exception);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define VpAllocReal(prec) (Real *)VpMemAlloc(offsetof(Real, frac) + (prec) * sizeof(BDIGIT))</div><div class='del'>-#define VpReallocReal(ptr, prec) (Real *)VpMemRealloc((ptr), offsetof(Real, frac) + (prec) * sizeof(BDIGIT))</div><div class='del'>-</div><div class='ctx'> static Real *</div><div class='ctx'> VpCopy(Real *pv, Real const* const x)</div><div class='ctx'> {</div><div class='ctx'>     assert(x != NULL);</div><div class='ctx'> </div><div class='del'>-    pv = VpReallocReal(pv, x-&gt;MaxPrec);</div><div class='add'>+    pv = rbd_reallocate_struct(pv, x-&gt;MaxPrec);</div><div class='ctx'>     pv-&gt;MaxPrec = x-&gt;MaxPrec;</div><div class='ctx'>     pv-&gt;Prec = x-&gt;Prec;</div><div class='ctx'>     pv-&gt;exponent = x-&gt;exponent;</div><div class='ctx'>     pv-&gt;sign = x-&gt;sign;</div><div class='ctx'>     pv-&gt;flag = x-&gt;flag;</div><div class='del'>-    MEMCPY(pv-&gt;frac, x-&gt;frac, BDIGIT, pv-&gt;MaxPrec);</div><div class='add'>+    MEMCPY(pv-&gt;frac, x-&gt;frac, DECDIG, pv-&gt;MaxPrec);</div><div class='ctx'> </div><div class='ctx'>     return pv;</div><div class='ctx'> }</div><div class='hunk'>@@ -712,15 +1235,7 @@ BigDecimal_IsFinite(VALUE self)</div><div class='ctx'> static void</div><div class='ctx'> BigDecimal_check_num(Real *p)</div><div class='ctx'> {</div><div class='del'>-    if (VpIsNaN(p)) {</div><div class='del'>-	VpException(VP_EXCEPTION_NaN, "Computation results to 'NaN'(Not a Number)", 1);</div><div class='del'>-    }</div><div class='del'>-    else if (VpIsPosInf(p)) {</div><div class='del'>-	VpException(VP_EXCEPTION_INFINITY, "Computation results to 'Infinity'", 1);</div><div class='del'>-    }</div><div class='del'>-    else if (VpIsNegInf(p)) {</div><div class='del'>-	VpException(VP_EXCEPTION_INFINITY, "Computation results to '-Infinity'", 1);</div><div class='del'>-    }</div><div class='add'>+    VpCheckException(p, true);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE BigDecimal_split(VALUE self);</div><div class='hunk'>@@ -743,7 +1258,7 @@ BigDecimal_to_i(VALUE self)</div><div class='ctx'>     if (e &lt;= 0) return INT2FIX(0);</div><div class='ctx'>     nf = VpBaseFig();</div><div class='ctx'>     if (e &lt;= nf) {</div><div class='del'>-        return LONG2NUM((long)(VpGetSign(p) * (BDIGIT_DBL_SIGNED)p-&gt;frac[0]));</div><div class='add'>+        return LONG2NUM((long)(VpGetSign(p) * (DECDIG_DBL_SIGNED)p-&gt;frac[0]));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	VALUE a = BigDecimal_split(self);</div><div class='hunk'>@@ -796,7 +1311,7 @@ BigDecimal_to_f(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     str = rb_str_new(0, VpNumOfChars(p, "E"));</div><div class='ctx'>     buf = RSTRING_PTR(str);</div><div class='del'>-    VpToString(p, buf, 0, 0);</div><div class='add'>+    VpToString(p, buf, RSTRING_LEN(str), 0, 0);</div><div class='ctx'>     errno = 0;</div><div class='ctx'>     d = strtod(buf, 0);</div><div class='ctx'>     if (errno == ERANGE) {</div><div class='hunk'>@@ -877,8 +1392,8 @@ BigDecimal_coerce(VALUE self, VALUE other)</div><div class='ctx'>     Real *b;</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(other, T_FLOAT)) {</div><div class='del'>-	GUARD_OBJ(b, GetVpValueWithPrec(other, DBL_DIG+1, 1));</div><div class='del'>-	obj = rb_assoc_new(ToValue(b), self);</div><div class='add'>+	GUARD_OBJ(b, GetVpValueWithPrec(other, 0, 1));</div><div class='add'>+        obj = rb_assoc_new(VpCheckGetValue(b), self);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	if (RB_TYPE_P(other, T_RATIONAL)) {</div><div class='hunk'>@@ -895,12 +1410,14 @@ BigDecimal_coerce(VALUE self, VALUE other)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *    +big_decimal  -&gt;  big_decimal</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    +big_decimal -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Returns +self+:</div><div class='ctx'>  *</div><div class='del'>- * Return self.</div><div class='add'>+ *     +BigDecimal(5)  # =&gt; 0.5e1</div><div class='add'>+ *     +BigDecimal(-5) # =&gt; -0.5e1</div><div class='ctx'>  *</div><div class='del'>- *     +BigDecimal('5')  #=&gt; 0.5e1</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -910,22 +1427,21 @@ BigDecimal_uplus(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'>  /*</div><div class='del'>-  * Document-method: BigDecimal#add</div><div class='del'>-  * Document-method: BigDecimal#+</div><div class='add'>+  *  call-seq:</div><div class='add'>+  *    self + value -&gt; bigdecimal</div><div class='ctx'>   *</div><div class='del'>-  * call-seq:</div><div class='del'>-  * add(value, digits)</div><div class='add'>+  *  Returns the \BigDecimal sum of +self+ and +value+:</div><div class='ctx'>   *</div><div class='del'>-  * Add the specified value.</div><div class='add'>+  *    b = BigDecimal('111111.111') # =&gt; 0.111111111e6</div><div class='add'>+  *    b + 2                        # =&gt; 0.111113111e6</div><div class='add'>+  *    b + 2.0                      # =&gt; 0.111113111e6</div><div class='add'>+  *    b + Rational(2, 1)           # =&gt; 0.111113111e6</div><div class='add'>+  *    b + Complex(2, 0)            # =&gt; (0.111113111e6+0i)</div><div class='ctx'>   *</div><div class='del'>-  * e.g.</div><div class='del'>-  *   c = a.add(b,n)</div><div class='del'>-  *   c = a + b</div><div class='add'>+  *  See the {Note About Precision}[BigDecimal.html#class-BigDecimal-label-A+Note+About+Precision].</div><div class='ctx'>   *</div><div class='del'>-  * digits:: If specified and less than the number of significant digits of the</div><div class='del'>-  *          result, the result is rounded to that number of digits, according</div><div class='del'>-  *          to BigDecimal.mode.</div><div class='ctx'>   */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_add(VALUE self, VALUE r)</div><div class='ctx'> {</div><div class='hunk'>@@ -935,7 +1451,7 @@ BigDecimal_add(VALUE self, VALUE r)</div><div class='ctx'> </div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='ctx'>     if (RB_TYPE_P(r, T_FLOAT)) {</div><div class='del'>-	b = GetVpValueWithPrec(r, DBL_DIG+1, 1);</div><div class='add'>+	b = GetVpValueWithPrec(r, 0, 1);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(r, T_RATIONAL)) {</div><div class='ctx'> 	b = GetVpValueWithPrec(r, a-&gt;Prec*VpBaseFig(), 1);</div><div class='hunk'>@@ -952,36 +1468,33 @@ BigDecimal_add(VALUE self, VALUE r)</div><div class='ctx'> </div><div class='ctx'>     mx = GetAddSubPrec(a, b);</div><div class='ctx'>     if (mx == (size_t)-1L) {</div><div class='del'>-	GUARD_OBJ(c,VpCreateRbObject(VpBaseFig() + 1, "0"));</div><div class='del'>-	VpAddSub(c, a, b, 1);</div><div class='add'>+        GUARD_OBJ(c, NewZeroWrapLimited(1, VpBaseFig() + 1));</div><div class='add'>+        VpAddSub(c, a, b, 1);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	GUARD_OBJ(c, VpCreateRbObject(mx * (VpBaseFig() + 1), "0"));</div><div class='del'>-	if(!mx) {</div><div class='del'>-	    VpSetInf(c, VpGetSign(a));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    VpAddSub(c, a, b, 1);</div><div class='del'>-	}</div><div class='add'>+        GUARD_OBJ(c, NewZeroWrapLimited(1, mx * (VpBaseFig() + 1)));</div><div class='add'>+        if (!mx) {</div><div class='add'>+            VpSetInf(c, VpGetSign(a));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            VpAddSub(c, a, b, 1);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>- /* call-seq:</div><div class='del'>-  * a - b   -&gt; bigdecimal</div><div class='del'>-  *</div><div class='del'>-  * Subtract the specified value.</div><div class='add'>+ /*  call-seq:</div><div class='add'>+  *    self - value -&gt; bigdecimal</div><div class='ctx'>   *</div><div class='del'>-  * e.g.</div><div class='del'>-  *   c = a - b</div><div class='add'>+  *  Returns the \BigDecimal difference of +self+ and +value+:</div><div class='ctx'>   *</div><div class='del'>-  * The precision of the result value depends on the type of +b+.</div><div class='add'>+  *    b = BigDecimal('333333.333') # =&gt; 0.333333333e6</div><div class='add'>+  *    b - 2                        # =&gt; 0.333331333e6</div><div class='add'>+  *    b - 2.0                      # =&gt; 0.333331333e6</div><div class='add'>+  *    b - Rational(2, 1)           # =&gt; 0.333331333e6</div><div class='add'>+  *    b - Complex(2, 0)            # =&gt; (0.333331333e6+0i)</div><div class='ctx'>   *</div><div class='del'>-  * If +b+ is a Float, the precision of the result is Float::DIG+1.</div><div class='del'>-  *</div><div class='del'>-  * If +b+ is a BigDecimal, the precision of the result is +b+'s precision of</div><div class='del'>-  * internal representation from platform. So, it's return value is platform</div><div class='del'>-  * dependent.</div><div class='add'>+  *  See the {Note About Precision}[BigDecimal.html#class-BigDecimal-label-A+Note+About+Precision].</div><div class='ctx'>   *</div><div class='ctx'>   */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -993,7 +1506,7 @@ BigDecimal_sub(VALUE self, VALUE r)</div><div class='ctx'> </div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self,1));</div><div class='ctx'>     if (RB_TYPE_P(r, T_FLOAT)) {</div><div class='del'>-	b = GetVpValueWithPrec(r, DBL_DIG+1, 1);</div><div class='add'>+	b = GetVpValueWithPrec(r, 0, 1);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(r, T_RATIONAL)) {</div><div class='ctx'> 	b = GetVpValueWithPrec(r, a-&gt;Prec*VpBaseFig(), 1);</div><div class='hunk'>@@ -1010,19 +1523,19 @@ BigDecimal_sub(VALUE self, VALUE r)</div><div class='ctx'> </div><div class='ctx'>     mx = GetAddSubPrec(a,b);</div><div class='ctx'>     if (mx == (size_t)-1L) {</div><div class='del'>-	GUARD_OBJ(c,VpCreateRbObject(VpBaseFig() + 1, "0"));</div><div class='del'>-	VpAddSub(c, a, b, -1);</div><div class='add'>+        GUARD_OBJ(c, NewZeroWrapLimited(1, VpBaseFig() + 1));</div><div class='add'>+        VpAddSub(c, a, b, -1);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	GUARD_OBJ(c,VpCreateRbObject(mx *(VpBaseFig() + 1), "0"));</div><div class='del'>-	if (!mx) {</div><div class='del'>-	    VpSetInf(c,VpGetSign(a));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    VpAddSub(c, a, b, -1);</div><div class='del'>-	}</div><div class='add'>+        GUARD_OBJ(c, NewZeroWrapLimited(1, mx *(VpBaseFig() + 1)));</div><div class='add'>+        if (!mx) {</div><div class='add'>+            VpSetInf(c,VpGetSign(a));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            VpAddSub(c, a, b, -1);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1043,7 +1556,7 @@ BigDecimalCmp(VALUE self, VALUE r,char op)</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>     case T_FLOAT:</div><div class='del'>-	GUARD_OBJ(b, GetVpValueWithPrec(r, DBL_DIG+1, 0));</div><div class='add'>+	GUARD_OBJ(b, GetVpValueWithPrec(r, 0, 0));</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>     case T_RATIONAL:</div><div class='hunk'>@@ -1160,12 +1673,19 @@ BigDecimal_eq(VALUE self, VALUE r)</div><div class='ctx'>     return BigDecimalCmp(self, r, '=');</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* call-seq:</div><div class='del'>- * a &lt; b</div><div class='add'>+/*  call-seq:</div><div class='add'>+ *    self &lt; other -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if +self+ is less than +other+, +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- * Returns true if a is less than b.</div><div class='add'>+ *    b = BigDecimal('1.5') # =&gt; 0.15e1</div><div class='add'>+ *    b &lt; 2                 # =&gt; true</div><div class='add'>+ *    b &lt; 2.0               # =&gt; true</div><div class='add'>+ *    b &lt; Rational(2, 1)    # =&gt; true</div><div class='add'>+ *    b &lt; 1.5               # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  Raises an exception if the comparison cannot be made.</div><div class='ctx'>  *</div><div class='del'>- * Values may be coerced to perform the comparison (see ==, BigDecimal#coerce).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_lt(VALUE self, VALUE r)</div><div class='hunk'>@@ -1173,12 +1693,20 @@ BigDecimal_lt(VALUE self, VALUE r)</div><div class='ctx'>     return BigDecimalCmp(self, r, '&lt;');</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* call-seq:</div><div class='del'>- * a &lt;= b</div><div class='add'>+/*  call-seq:</div><div class='add'>+ *    self &lt;= other -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns true if a is less than or equal to b.</div><div class='add'>+ *  Returns +true+ if +self+ is less or equal to than +other+, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    b = BigDecimal('1.5') # =&gt; 0.15e1</div><div class='add'>+ *    b &lt;= 2                # =&gt; true</div><div class='add'>+ *    b &lt;= 2.0              # =&gt; true</div><div class='add'>+ *    b &lt;= Rational(2, 1)   # =&gt; true</div><div class='add'>+ *    b &lt;= 1.5              # =&gt; true</div><div class='add'>+ *    b &lt; 1                 # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  Raises an exception if the comparison cannot be made.</div><div class='ctx'>  *</div><div class='del'>- * Values may be coerced to perform the comparison (see ==, BigDecimal#coerce).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_le(VALUE self, VALUE r)</div><div class='hunk'>@@ -1186,12 +1714,19 @@ BigDecimal_le(VALUE self, VALUE r)</div><div class='ctx'>     return BigDecimalCmp(self, r, 'L');</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* call-seq:</div><div class='del'>- * a &gt; b</div><div class='add'>+/*  call-seq:</div><div class='add'>+ *    self &gt; other -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns true if a is greater than b.</div><div class='add'>+ *  Returns +true+ if +self+ is greater than +other+, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    b = BigDecimal('1.5')</div><div class='add'>+ *    b &gt; 1              # =&gt; true</div><div class='add'>+ *    b &gt; 1.0            # =&gt; true</div><div class='add'>+ *    b &gt; Rational(1, 1) # =&gt; true</div><div class='add'>+ *    b &gt; 2              # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  Raises an exception if the comparison cannot be made.</div><div class='ctx'>  *</div><div class='del'>- * Values may be coerced to perform the comparison (see ==, BigDecimal#coerce).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_gt(VALUE self, VALUE r)</div><div class='hunk'>@@ -1199,12 +1734,20 @@ BigDecimal_gt(VALUE self, VALUE r)</div><div class='ctx'>     return BigDecimalCmp(self, r, '&gt;');</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* call-seq:</div><div class='del'>- * a &gt;= b</div><div class='add'>+/*  call-seq:</div><div class='add'>+ *    self &gt;= other -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if +self+ is greater than or equal to +other+, +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- * Returns true if a is greater than or equal to b.</div><div class='add'>+ *    b = BigDecimal('1.5')</div><div class='add'>+ *    b &gt;= 1              # =&gt; true</div><div class='add'>+ *    b &gt;= 1.0            # =&gt; true</div><div class='add'>+ *    b &gt;= Rational(1, 1) # =&gt; true</div><div class='add'>+ *    b &gt;= 1.5            # =&gt; true</div><div class='add'>+ *    b &gt; 2               # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  Raises an exception if the comparison cannot be made.</div><div class='ctx'>  *</div><div class='del'>- * Values may be coerced to perform the comparison (see ==, BigDecimal#coerce)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_ge(VALUE self, VALUE r)</div><div class='hunk'>@@ -1214,11 +1757,14 @@ BigDecimal_ge(VALUE self, VALUE r)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     -big_decimal  -&gt;  big_decimal</div><div class='add'>+ *    -self -&gt; bigdecimal</div><div class='add'>+ *</div><div class='add'>+ *  Returns the \BigDecimal negation of self:</div><div class='ctx'>  *</div><div class='del'>- *  Return the negation of self.</div><div class='add'>+ *    b0 = BigDecimal('1.5')</div><div class='add'>+ *    b1 = -b0 # =&gt; -0.15e1</div><div class='add'>+ *    b2 = -b1 # =&gt; 0.15e1</div><div class='ctx'>  *</div><div class='del'>- *    -BigDecimal('5')  #=&gt; -0.5e1</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1227,26 +1773,11 @@ BigDecimal_neg(VALUE self)</div><div class='ctx'>     ENTER(5);</div><div class='ctx'>     Real *c, *a;</div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(a-&gt;Prec *(VpBaseFig() + 1), "0"));</div><div class='add'>+    GUARD_OBJ(c, NewZeroWrapLimited(1, a-&gt;Prec *(VpBaseFig() + 1)));</div><div class='ctx'>     VpAsgn(c, a, -1);</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>- /*</div><div class='del'>-  * Document-method: BigDecimal#mult</div><div class='del'>-  *</div><div class='del'>-  * call-seq: mult(value, digits)</div><div class='del'>-  *</div><div class='del'>-  * Multiply by the specified value.</div><div class='del'>-  *</div><div class='del'>-  * e.g.</div><div class='del'>-  *   c = a.mult(b,n)</div><div class='del'>-  *   c = a * b</div><div class='del'>-  *</div><div class='del'>-  * digits:: If specified and less than the number of significant digits of the</div><div class='del'>-  *          result, the result is rounded to that number of digits, according</div><div class='del'>-  *          to BigDecimal.mode.</div><div class='del'>-  */</div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_mult(VALUE self, VALUE r)</div><div class='ctx'> {</div><div class='hunk'>@@ -1256,7 +1787,7 @@ BigDecimal_mult(VALUE self, VALUE r)</div><div class='ctx'> </div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='ctx'>     if (RB_TYPE_P(r, T_FLOAT)) {</div><div class='del'>-	b = GetVpValueWithPrec(r, DBL_DIG+1, 1);</div><div class='add'>+        b = GetVpValueWithPrec(r, 0, 1);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(r, T_RATIONAL)) {</div><div class='ctx'> 	b = GetVpValueWithPrec(r, a-&gt;Prec*VpBaseFig(), 1);</div><div class='hunk'>@@ -1269,52 +1800,72 @@ BigDecimal_mult(VALUE self, VALUE r)</div><div class='ctx'>     SAVE(b);</div><div class='ctx'> </div><div class='ctx'>     mx = a-&gt;Prec + b-&gt;Prec;</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(mx *(VpBaseFig() + 1), "0"));</div><div class='add'>+    GUARD_OBJ(c, NewZeroWrapLimited(1, mx * (VpBaseFig() + 1)));</div><div class='ctx'>     VpMult(c, a, b);</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-BigDecimal_divide(Real **c, Real **res, Real **div, VALUE self, VALUE r)</div><div class='add'>+BigDecimal_divide(VALUE self, VALUE r, Real **c, Real **res, Real **div)</div><div class='ctx'> /* For c = self.div(r): with round operation */</div><div class='ctx'> {</div><div class='ctx'>     ENTER(5);</div><div class='ctx'>     Real *a, *b;</div><div class='add'>+    ssize_t a_prec, b_prec;</div><div class='ctx'>     size_t mx;</div><div class='ctx'> </div><div class='del'>-    GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='del'>-    if (RB_TYPE_P(r, T_FLOAT)) {</div><div class='del'>-	b = GetVpValueWithPrec(r, DBL_DIG+1, 1);</div><div class='add'>+    TypedData_Get_Struct(self, Real, &amp;BigDecimal_data_type, a);</div><div class='add'>+    SAVE(a);</div><div class='add'>+</div><div class='add'>+    VALUE rr = r;</div><div class='add'>+    if (is_kind_of_BigDecimal(rr)) {</div><div class='add'>+        /* do nothing */</div><div class='add'>+    }</div><div class='add'>+    else if (RB_INTEGER_TYPE_P(r)) {</div><div class='add'>+        rr = rb_inum_convert_to_BigDecimal(r, 0, true);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(r, T_FLOAT)) {</div><div class='add'>+        rr = rb_float_convert_to_BigDecimal(r, 0, true);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(r, T_RATIONAL)) {</div><div class='del'>-	b = GetVpValueWithPrec(r, a-&gt;Prec*VpBaseFig(), 1);</div><div class='del'>-     }</div><div class='del'>-    else {</div><div class='del'>-	b = GetVpValue(r, 0);</div><div class='add'>+        rr = rb_rational_convert_to_BigDecimal(r, a-&gt;Prec*BASE_FIG, true);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (!b) return DoSomeOne(self, r, '/');</div><div class='del'>-    SAVE(b);</div><div class='add'>+    if (!is_kind_of_BigDecimal(rr)) {</div><div class='add'>+        return DoSomeOne(self, r, '/');</div><div class='add'>+    }</div><div class='ctx'> </div><div class='add'>+    TypedData_Get_Struct(rr, Real, &amp;BigDecimal_data_type, b);</div><div class='add'>+    SAVE(b);</div><div class='ctx'>     *div = b;</div><div class='del'>-    mx = a-&gt;Prec + vabs(a-&gt;exponent);</div><div class='del'>-    if (mx &lt; b-&gt;Prec + vabs(b-&gt;exponent)) mx = b-&gt;Prec + vabs(b-&gt;exponent);</div><div class='del'>-    mx++; /* NOTE: An additional digit is needed for the compatibility to</div><div class='del'>-                   the version 1.2.1 and the former.  */</div><div class='del'>-    mx = (mx + 1) * VpBaseFig();</div><div class='del'>-    GUARD_OBJ((*c), VpCreateRbObject(mx, "#0"));</div><div class='del'>-    GUARD_OBJ((*res), VpCreateRbObject((mx+1) * 2 +(VpBaseFig() + 1), "#0"));</div><div class='add'>+</div><div class='add'>+    BigDecimal_count_precision_and_scale(self, &amp;a_prec, NULL);</div><div class='add'>+    BigDecimal_count_precision_and_scale(rr, &amp;b_prec, NULL);</div><div class='add'>+    mx = (a_prec &gt; b_prec) ? a_prec : b_prec;</div><div class='add'>+    mx *= 2;</div><div class='add'>+</div><div class='add'>+    if (2*BIGDECIMAL_DOUBLE_FIGURES &gt; mx)</div><div class='add'>+        mx = 2*BIGDECIMAL_DOUBLE_FIGURES;</div><div class='add'>+</div><div class='add'>+    GUARD_OBJ((*c), NewZeroWrapNolimit(1, mx + 2*BASE_FIG));</div><div class='add'>+    GUARD_OBJ((*res), NewZeroWrapNolimit(1, (mx + 1)*2 + 2*BASE_FIG));</div><div class='ctx'>     VpDivd(*c, *res, a, b);</div><div class='add'>+</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE BigDecimal_DoDivmod(VALUE self, VALUE r, Real **div, Real **mod);</div><div class='add'>+</div><div class='ctx'> /* call-seq:</div><div class='del'>- *   a / b       -&gt; bigdecimal</div><div class='del'>- *   quo(value)  -&gt; bigdecimal</div><div class='add'>+ *   a / b   -&gt; bigdecimal</div><div class='ctx'>  *</div><div class='ctx'>  * Divide by the specified value.</div><div class='ctx'>  *</div><div class='add'>+ * The result precision will be the precision of the larger operand,</div><div class='add'>+ * but its minimum is 2*Float::DIG.</div><div class='add'>+ *</div><div class='ctx'>  * See BigDecimal#div.</div><div class='add'>+ * See BigDecimal#quo.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_div(VALUE self, VALUE r)</div><div class='hunk'>@@ -1322,7 +1873,7 @@ BigDecimal_div(VALUE self, VALUE r)</div><div class='ctx'> {</div><div class='ctx'>     ENTER(5);</div><div class='ctx'>     Real *c=NULL, *res=NULL, *div = NULL;</div><div class='del'>-    r = BigDecimal_divide(&amp;c, &amp;res, &amp;div, self, r);</div><div class='add'>+    r = BigDecimal_divide(self, r, &amp;c, &amp;res, &amp;div);</div><div class='ctx'>     if (!NIL_P(r)) return r; /* coerced by other */</div><div class='ctx'>     SAVE(c); SAVE(res); SAVE(div);</div><div class='ctx'>     /* a/b = c + r/b */</div><div class='hunk'>@@ -1331,9 +1882,48 @@ BigDecimal_div(VALUE self, VALUE r)</div><div class='ctx'>      */</div><div class='ctx'>     /* Round */</div><div class='ctx'>     if (VpHasVal(div)) { /* frac[0] must be zero for NaN,INF,Zero */</div><div class='del'>-	VpInternalRound(c, 0, c-&gt;frac[c-&gt;Prec-1], (BDIGIT)(VpBaseVal() * (BDIGIT_DBL)res-&gt;frac[0] / div-&gt;frac[0]));</div><div class='add'>+        VpInternalRound(c, 0, c-&gt;frac[c-&gt;Prec-1], (DECDIG)(VpBaseVal() * (DECDIG_DBL)res-&gt;frac[0] / div-&gt;frac[0]));</div><div class='ctx'>     }</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE BigDecimal_round(int argc, VALUE *argv, VALUE self);</div><div class='add'>+</div><div class='add'>+/* call-seq:</div><div class='add'>+ *   quo(value)  -&gt; bigdecimal</div><div class='add'>+ *   quo(value, digits)  -&gt; bigdecimal</div><div class='add'>+ *</div><div class='add'>+ * Divide by the specified value.</div><div class='add'>+ *</div><div class='add'>+ * digits:: If specified and less than the number of significant digits of</div><div class='add'>+ *          the result, the result is rounded to the given number of digits,</div><div class='add'>+ *          according to the rounding mode indicated by BigDecimal.mode.</div><div class='add'>+ *</div><div class='add'>+ *          If digits is 0 or omitted, the result is the same as for the</div><div class='add'>+ *          / operator.</div><div class='add'>+ *</div><div class='add'>+ * See BigDecimal#/.</div><div class='add'>+ * See BigDecimal#div.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_quo(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE value, digits, result;</div><div class='add'>+    SIGNED_VALUE n = -1;</div><div class='add'>+</div><div class='add'>+    argc = rb_scan_args(argc, argv, "11", &amp;value, &amp;digits);</div><div class='add'>+    if (argc &gt; 1) {</div><div class='add'>+        n = check_int_precision(digits);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (n &gt; 0) {</div><div class='add'>+        result = BigDecimal_div2(self, value, digits);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        result = BigDecimal_div(self, value);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1346,77 +1936,106 @@ BigDecimal_DoDivmod(VALUE self, VALUE r, Real **div, Real **mod)</div><div class='ctx'>     ENTER(8);</div><div class='ctx'>     Real *c=NULL, *d=NULL, *res=NULL;</div><div class='ctx'>     Real *a, *b;</div><div class='add'>+    ssize_t a_prec, b_prec;</div><div class='ctx'>     size_t mx;</div><div class='ctx'> </div><div class='del'>-    GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='del'>-    if (RB_TYPE_P(r, T_FLOAT)) {</div><div class='del'>-	b = GetVpValueWithPrec(r, DBL_DIG+1, 1);</div><div class='add'>+    TypedData_Get_Struct(self, Real, &amp;BigDecimal_data_type, a);</div><div class='add'>+    SAVE(a);</div><div class='add'>+</div><div class='add'>+    VALUE rr = r;</div><div class='add'>+    if (is_kind_of_BigDecimal(rr)) {</div><div class='add'>+        /* do nothing */</div><div class='add'>+    }</div><div class='add'>+    else if (RB_INTEGER_TYPE_P(r)) {</div><div class='add'>+        rr = rb_inum_convert_to_BigDecimal(r, 0, true);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(r, T_FLOAT)) {</div><div class='add'>+        rr = rb_float_convert_to_BigDecimal(r, 0, true);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(r, T_RATIONAL)) {</div><div class='del'>-	b = GetVpValueWithPrec(r, a-&gt;Prec*VpBaseFig(), 1);</div><div class='add'>+        rr = rb_rational_convert_to_BigDecimal(r, a-&gt;Prec*BASE_FIG, true);</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	b = GetVpValue(r, 0);</div><div class='add'>+</div><div class='add'>+    if (!is_kind_of_BigDecimal(rr)) {</div><div class='add'>+        return Qfalse;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (!b) return Qfalse;</div><div class='add'>+    TypedData_Get_Struct(rr, Real, &amp;BigDecimal_data_type, b);</div><div class='ctx'>     SAVE(b);</div><div class='ctx'> </div><div class='ctx'>     if (VpIsNaN(a) || VpIsNaN(b)) goto NaN;</div><div class='ctx'>     if (VpIsInf(a) &amp;&amp; VpIsInf(b)) goto NaN;</div><div class='ctx'>     if (VpIsZero(b)) {</div><div class='del'>-	rb_raise(rb_eZeroDivError, "divided by 0");</div><div class='add'>+        rb_raise(rb_eZeroDivError, "divided by 0");</div><div class='ctx'>     }</div><div class='ctx'>     if (VpIsInf(a)) {</div><div class='del'>-	GUARD_OBJ(d, VpCreateRbObject(1, "0"));</div><div class='del'>-	VpSetInf(d, (SIGNED_VALUE)(VpGetSign(a) == VpGetSign(b) ? 1 : -1));</div><div class='del'>-	GUARD_OBJ(c, VpCreateRbObject(1, "NaN"));</div><div class='del'>-	*div = d;</div><div class='del'>-	*mod = c;</div><div class='del'>-	return Qtrue;</div><div class='add'>+        if (VpGetSign(a) == VpGetSign(b)) {</div><div class='add'>+            VALUE inf = BigDecimal_positive_infinity();</div><div class='add'>+            TypedData_Get_Struct(inf, Real, &amp;BigDecimal_data_type, *div);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            VALUE inf = BigDecimal_negative_infinity();</div><div class='add'>+            TypedData_Get_Struct(inf, Real, &amp;BigDecimal_data_type, *div);</div><div class='add'>+        }</div><div class='add'>+        VALUE nan = BigDecimal_nan();</div><div class='add'>+        TypedData_Get_Struct(nan, Real, &amp;BigDecimal_data_type, *mod);</div><div class='add'>+        return Qtrue;</div><div class='ctx'>     }</div><div class='ctx'>     if (VpIsInf(b)) {</div><div class='del'>-	GUARD_OBJ(d, VpCreateRbObject(1, "0"));</div><div class='del'>-	*div = d;</div><div class='del'>-	*mod = a;</div><div class='del'>-	return Qtrue;</div><div class='add'>+        VALUE zero = BigDecimal_positive_zero();</div><div class='add'>+        TypedData_Get_Struct(zero, Real, &amp;BigDecimal_data_type, *div);</div><div class='add'>+        *mod = a;</div><div class='add'>+        return Qtrue;</div><div class='ctx'>     }</div><div class='ctx'>     if (VpIsZero(a)) {</div><div class='del'>-	GUARD_OBJ(c, VpCreateRbObject(1, "0"));</div><div class='del'>-	GUARD_OBJ(d, VpCreateRbObject(1, "0"));</div><div class='del'>-	*div = d;</div><div class='del'>-	*mod = c;</div><div class='del'>-	return Qtrue;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    mx = a-&gt;Prec + vabs(a-&gt;exponent);</div><div class='del'>-    if (mx&lt;b-&gt;Prec + vabs(b-&gt;exponent)) mx = b-&gt;Prec + vabs(b-&gt;exponent);</div><div class='del'>-    mx = (mx + 1) * VpBaseFig();</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(mx, "0"));</div><div class='del'>-    GUARD_OBJ(res, VpCreateRbObject((mx+1) * 2 +(VpBaseFig() + 1), "#0"));</div><div class='add'>+        VALUE zero = BigDecimal_positive_zero();</div><div class='add'>+        TypedData_Get_Struct(zero, Real, &amp;BigDecimal_data_type, *div);</div><div class='add'>+        TypedData_Get_Struct(zero, Real, &amp;BigDecimal_data_type, *mod);</div><div class='add'>+        return Qtrue;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    BigDecimal_count_precision_and_scale(self, &amp;a_prec, NULL);</div><div class='add'>+    BigDecimal_count_precision_and_scale(rr, &amp;b_prec, NULL);</div><div class='add'>+</div><div class='add'>+    mx = (a_prec &gt; b_prec) ? a_prec : b_prec;</div><div class='add'>+    mx *= 2;</div><div class='add'>+</div><div class='add'>+    if (2*BIGDECIMAL_DOUBLE_FIGURES &gt; mx)</div><div class='add'>+        mx = 2*BIGDECIMAL_DOUBLE_FIGURES;</div><div class='add'>+</div><div class='add'>+    GUARD_OBJ(c, NewZeroWrapLimited(1, mx + 2*BASE_FIG));</div><div class='add'>+    GUARD_OBJ(res, NewZeroWrapNolimit(1, mx*2 + 2*BASE_FIG));</div><div class='ctx'>     VpDivd(c, res, a, b);</div><div class='del'>-    mx = c-&gt;Prec * (VpBaseFig() + 1);</div><div class='del'>-    GUARD_OBJ(d, VpCreateRbObject(mx, "0"));</div><div class='add'>+</div><div class='add'>+    mx = c-&gt;Prec * BASE_FIG;</div><div class='add'>+    GUARD_OBJ(d, NewZeroWrapLimited(1, mx));</div><div class='ctx'>     VpActiveRound(d, c, VP_ROUND_DOWN, 0);</div><div class='add'>+</div><div class='ctx'>     VpMult(res, d, b);</div><div class='ctx'>     VpAddSub(c, a, res, -1);</div><div class='add'>+</div><div class='ctx'>     if (!VpIsZero(c) &amp;&amp; (VpGetSign(a) * VpGetSign(b) &lt; 0)) {</div><div class='del'>-	VpAddSub(res, d, VpOne(), -1);</div><div class='del'>-	GUARD_OBJ(d, VpCreateRbObject(GetAddSubPrec(c, b)*(VpBaseFig() + 1), "0"));</div><div class='del'>-	VpAddSub(d, c, b, 1);</div><div class='del'>-	*div = res;</div><div class='del'>-	*mod = d;</div><div class='del'>-    } else {</div><div class='del'>-	*div = d;</div><div class='del'>-	*mod = c;</div><div class='add'>+        /* result adjustment for negative case */</div><div class='add'>+        res = rbd_reallocate_struct(res, d-&gt;MaxPrec);</div><div class='add'>+        res-&gt;MaxPrec = d-&gt;MaxPrec;</div><div class='add'>+        VpAddSub(res, d, VpOne(), -1);</div><div class='add'>+        GUARD_OBJ(d, NewZeroWrapLimited(1, GetAddSubPrec(c, b) * 2*BASE_FIG));</div><div class='add'>+        VpAddSub(d, c, b, 1);</div><div class='add'>+        *div = res;</div><div class='add'>+        *mod = d;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        *div = d;</div><div class='add'>+        *mod = c;</div><div class='ctx'>     }</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> </div><div class='del'>-NaN:</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(1, "NaN"));</div><div class='del'>-    GUARD_OBJ(d, VpCreateRbObject(1, "NaN"));</div><div class='del'>-    *div = d;</div><div class='del'>-    *mod = c;</div><div class='add'>+  NaN:</div><div class='add'>+    {</div><div class='add'>+        VALUE nan = BigDecimal_nan();</div><div class='add'>+        TypedData_Get_Struct(nan, Real, &amp;BigDecimal_data_type, *div);</div><div class='add'>+        TypedData_Get_Struct(nan, Real, &amp;BigDecimal_data_type, *mod);</div><div class='add'>+    }</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1436,7 +2055,7 @@ BigDecimal_mod(VALUE self, VALUE r) /* %: a%b = a - (a.to_f/b).floor * b */</div><div class='ctx'> </div><div class='ctx'>     if (BigDecimal_DoDivmod(self, r, &amp;div, &amp;mod)) {</div><div class='ctx'> 	SAVE(div); SAVE(mod);</div><div class='del'>-	return ToValue(mod);</div><div class='add'>+        return VpCheckGetValue(mod);</div><div class='ctx'>     }</div><div class='ctx'>     return DoSomeOne(self, r, '%');</div><div class='ctx'> }</div><div class='hunk'>@@ -1451,7 +2070,7 @@ BigDecimal_divremain(VALUE self, VALUE r, Real **dv, Real **rv)</div><div class='ctx'> </div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='ctx'>     if (RB_TYPE_P(r, T_FLOAT)) {</div><div class='del'>-	b = GetVpValueWithPrec(r, DBL_DIG+1, 1);</div><div class='add'>+	b = GetVpValueWithPrec(r, 0, 1);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(r, T_RATIONAL)) {</div><div class='ctx'> 	b = GetVpValueWithPrec(r, a-&gt;Prec*VpBaseFig(), 1);</div><div class='hunk'>@@ -1464,17 +2083,17 @@ BigDecimal_divremain(VALUE self, VALUE r, Real **dv, Real **rv)</div><div class='ctx'>     SAVE(b);</div><div class='ctx'> </div><div class='ctx'>     mx = (a-&gt;MaxPrec + b-&gt;MaxPrec) *VpBaseFig();</div><div class='del'>-    GUARD_OBJ(c,   VpCreateRbObject(mx, "0"));</div><div class='del'>-    GUARD_OBJ(res, VpCreateRbObject((mx+1) * 2 + (VpBaseFig() + 1), "#0"));</div><div class='del'>-    GUARD_OBJ(rr,  VpCreateRbObject((mx+1) * 2 + (VpBaseFig() + 1), "#0"));</div><div class='del'>-    GUARD_OBJ(ff,  VpCreateRbObject((mx+1) * 2 + (VpBaseFig() + 1), "#0"));</div><div class='add'>+    GUARD_OBJ(c,   NewZeroWrapLimited(1, mx));</div><div class='add'>+    GUARD_OBJ(res, NewZeroWrapNolimit(1, (mx+1) * 2 + (VpBaseFig() + 1)));</div><div class='add'>+    GUARD_OBJ(rr,  NewZeroWrapNolimit(1, (mx+1) * 2 + (VpBaseFig() + 1)));</div><div class='add'>+    GUARD_OBJ(ff,  NewZeroWrapNolimit(1, (mx+1) * 2 + (VpBaseFig() + 1)));</div><div class='ctx'> </div><div class='ctx'>     VpDivd(c, res, a, b);</div><div class='ctx'> </div><div class='ctx'>     mx = c-&gt;Prec *(VpBaseFig() + 1);</div><div class='ctx'> </div><div class='del'>-    GUARD_OBJ(d, VpCreateRbObject(mx, "0"));</div><div class='del'>-    GUARD_OBJ(f, VpCreateRbObject(mx, "0"));</div><div class='add'>+    GUARD_OBJ(d, NewZeroWrapLimited(1, mx));</div><div class='add'>+    GUARD_OBJ(f, NewZeroWrapLimited(1, mx));</div><div class='ctx'> </div><div class='ctx'>     VpActiveRound(d, c, VP_ROUND_DOWN, 0); /* 0: round off */</div><div class='ctx'> </div><div class='hunk'>@@ -1501,7 +2120,7 @@ BigDecimal_remainder(VALUE self, VALUE r) /* remainder */</div><div class='ctx'>     Real  *d, *rv = 0;</div><div class='ctx'>     f = BigDecimal_divremain(self, r, &amp;d, &amp;rv);</div><div class='ctx'>     if (!NIL_P(f)) return f;</div><div class='del'>-    return ToValue(rv);</div><div class='add'>+    return VpCheckGetValue(rv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* call-seq:</div><div class='hunk'>@@ -1534,13 +2153,14 @@ BigDecimal_divmod(VALUE self, VALUE r)</div><div class='ctx'> </div><div class='ctx'>     if (BigDecimal_DoDivmod(self, r, &amp;div, &amp;mod)) {</div><div class='ctx'> 	SAVE(div); SAVE(mod);</div><div class='del'>-	return rb_assoc_new(ToValue(div), ToValue(mod));</div><div class='add'>+        return rb_assoc_new(VpCheckGetValue(div), VpCheckGetValue(mod));</div><div class='ctx'>     }</div><div class='ctx'>     return DoSomeOne(self,r,rb_intern("divmod"));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * See BigDecimal#quo</div><div class='add'>+ * Do the same manner as Float#div when n is nil.</div><div class='add'>+ * Do the same manner as BigDecimal#quo when n is 0.</div><div class='ctx'>  */</div><div class='ctx'> static inline VALUE</div><div class='ctx'> BigDecimal_div2(VALUE self, VALUE b, VALUE n)</div><div class='hunk'>@@ -1552,13 +2172,13 @@ BigDecimal_div2(VALUE self, VALUE b, VALUE n)</div><div class='ctx'>         Real *div = NULL;</div><div class='ctx'>         Real *mod;</div><div class='ctx'>         if (BigDecimal_DoDivmod(self, b, &amp;div, &amp;mod)) {</div><div class='del'>-            return BigDecimal_to_i(ToValue(div));</div><div class='add'>+            return BigDecimal_to_i(VpCheckGetValue(div));</div><div class='ctx'>         }</div><div class='ctx'>         return DoSomeOne(self, b, rb_intern("div"));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* div in BigDecimal sense */</div><div class='del'>-    ix = GetPrecisionInt(n);</div><div class='add'>+    ix = check_int_precision(n);</div><div class='ctx'>     if (ix == 0) {</div><div class='ctx'>         return BigDecimal_div(self, b);</div><div class='ctx'>     }</div><div class='hunk'>@@ -1566,18 +2186,25 @@ BigDecimal_div2(VALUE self, VALUE b, VALUE n)</div><div class='ctx'>         Real *res = NULL;</div><div class='ctx'>         Real *av = NULL, *bv = NULL, *cv = NULL;</div><div class='ctx'>         size_t mx = ix + VpBaseFig()*2;</div><div class='add'>+        size_t b_prec = ix;</div><div class='ctx'>         size_t pl = VpSetPrecLimit(0);</div><div class='ctx'> </div><div class='del'>-        GUARD_OBJ(cv, VpCreateRbObject(mx + VpBaseFig(), "0"));</div><div class='add'>+        GUARD_OBJ(cv, NewZeroWrapLimited(1, mx + VpBaseFig()));</div><div class='ctx'>         GUARD_OBJ(av, GetVpValue(self, 1));</div><div class='del'>-        GUARD_OBJ(bv, GetVpValue(b, 1));</div><div class='add'>+        /* TODO: I want to refactor this precision control for a float value later</div><div class='add'>+         *       by introducing an implicit conversion function instead of</div><div class='add'>+         *       GetVpValueWithPrec.  */</div><div class='add'>+        if (RB_FLOAT_TYPE_P(b) &amp;&amp; b_prec &gt; BIGDECIMAL_DOUBLE_FIGURES) {</div><div class='add'>+            b_prec = BIGDECIMAL_DOUBLE_FIGURES;</div><div class='add'>+        }</div><div class='add'>+        GUARD_OBJ(bv, GetVpValueWithPrec(b, b_prec, 1));</div><div class='ctx'>         mx = av-&gt;Prec + bv-&gt;Prec + 2;</div><div class='ctx'>         if (mx &lt;= cv-&gt;MaxPrec) mx = cv-&gt;MaxPrec + 1;</div><div class='del'>-        GUARD_OBJ(res, VpCreateRbObject((mx * 2  + 2)*VpBaseFig(), "#0"));</div><div class='add'>+        GUARD_OBJ(res, NewZeroWrapNolimit(1, (mx * 2  + 2)*VpBaseFig()));</div><div class='ctx'>         VpDivd(cv, res, av, bv);</div><div class='ctx'>         VpSetPrecLimit(pl);</div><div class='ctx'>         VpLeftRound(cv, VpGetRoundMode(), ix);</div><div class='del'>-        return ToValue(cv);</div><div class='add'>+        return VpCheckGetValue(cv);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1585,6 +2212,7 @@ BigDecimal_div2(VALUE self, VALUE b, VALUE n)</div><div class='ctx'>   * Document-method: BigDecimal#div</div><div class='ctx'>   *</div><div class='ctx'>   * call-seq:</div><div class='add'>+  *   div(value)  -&gt; integer</div><div class='ctx'>   *   div(value, digits)  -&gt; bigdecimal or integer</div><div class='ctx'>   *</div><div class='ctx'>   * Divide by the specified value.</div><div class='hunk'>@@ -1599,6 +2227,9 @@ BigDecimal_div2(VALUE self, VALUE b, VALUE n)</div><div class='ctx'>   *          If digits is not specified, the result is an integer,</div><div class='ctx'>   *          by analogy with Float#div; see also BigDecimal#divmod.</div><div class='ctx'>   *</div><div class='add'>+  * See BigDecimal#/.</div><div class='add'>+  * See BigDecimal#quo.</div><div class='add'>+  *</div><div class='ctx'>   * Examples:</div><div class='ctx'>   *</div><div class='ctx'>   *   a = BigDecimal("4")</div><div class='hunk'>@@ -1622,12 +2253,37 @@ BigDecimal_div3(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     return BigDecimal_div2(self, b, n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+ /*</div><div class='add'>+  *  call-seq:</div><div class='add'>+  *    add(value, ndigits) -&gt; new_bigdecimal</div><div class='add'>+  *</div><div class='add'>+  *  Returns the \BigDecimal sum of +self+ and +value+</div><div class='add'>+  *  with a precision of +ndigits+ decimal digits.</div><div class='add'>+  *</div><div class='add'>+  *  When +ndigits+ is less than the number of significant digits</div><div class='add'>+  *  in the sum, the sum is rounded to that number of digits,</div><div class='add'>+  *  according to the current rounding mode; see BigDecimal.mode.</div><div class='add'>+  *</div><div class='add'>+  *  Examples:</div><div class='add'>+  *</div><div class='add'>+  *    # Set the rounding mode.</div><div class='add'>+  *    BigDecimal.mode(BigDecimal::ROUND_MODE, :half_up)</div><div class='add'>+  *    b = BigDecimal('111111.111')</div><div class='add'>+  *    b.add(1, 0)               # =&gt; 0.111112111e6</div><div class='add'>+  *    b.add(1, 3)               # =&gt; 0.111e6</div><div class='add'>+  *    b.add(1, 6)               # =&gt; 0.111112e6</div><div class='add'>+  *    b.add(1, 15)              # =&gt; 0.111112111e6</div><div class='add'>+  *    b.add(1.0, 15)            # =&gt; 0.111112111e6</div><div class='add'>+  *    b.add(Rational(1, 1), 15) # =&gt; 0.111112111e6</div><div class='add'>+  *</div><div class='add'>+  */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_add2(VALUE self, VALUE b, VALUE n)</div><div class='ctx'> {</div><div class='ctx'>     ENTER(2);</div><div class='ctx'>     Real *cv;</div><div class='del'>-    SIGNED_VALUE mx = GetPrecisionInt(n);</div><div class='add'>+    SIGNED_VALUE mx = check_int_precision(n);</div><div class='ctx'>     if (mx == 0) return BigDecimal_add(self, b);</div><div class='ctx'>     else {</div><div class='ctx'> 	size_t pl = VpSetPrecLimit(0);</div><div class='hunk'>@@ -1635,7 +2291,7 @@ BigDecimal_add2(VALUE self, VALUE b, VALUE n)</div><div class='ctx'> 	VpSetPrecLimit(pl);</div><div class='ctx'> 	GUARD_OBJ(cv, GetVpValue(c, 1));</div><div class='ctx'> 	VpLeftRound(cv, VpGetRoundMode(), mx);</div><div class='del'>-	return ToValue(cv);</div><div class='add'>+        return VpCheckGetValue(cv);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1657,7 +2313,7 @@ BigDecimal_sub2(VALUE self, VALUE b, VALUE n)</div><div class='ctx'> {</div><div class='ctx'>     ENTER(2);</div><div class='ctx'>     Real *cv;</div><div class='del'>-    SIGNED_VALUE mx = GetPrecisionInt(n);</div><div class='add'>+    SIGNED_VALUE mx = check_int_precision(n);</div><div class='ctx'>     if (mx == 0) return BigDecimal_sub(self, b);</div><div class='ctx'>     else {</div><div class='ctx'> 	size_t pl = VpSetPrecLimit(0);</div><div class='hunk'>@@ -1665,17 +2321,42 @@ BigDecimal_sub2(VALUE self, VALUE b, VALUE n)</div><div class='ctx'> 	VpSetPrecLimit(pl);</div><div class='ctx'> 	GUARD_OBJ(cv, GetVpValue(c, 1));</div><div class='ctx'> 	VpLeftRound(cv, VpGetRoundMode(), mx);</div><div class='del'>-	return ToValue(cv);</div><div class='add'>+        return VpCheckGetValue(cv);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+ /*</div><div class='add'>+  *  call-seq:</div><div class='add'>+  *    mult(other, ndigits) -&gt; bigdecimal</div><div class='add'>+  *</div><div class='add'>+  *  Returns the \BigDecimal product of +self+ and +value+</div><div class='add'>+  *  with a precision of +ndigits+ decimal digits.</div><div class='add'>+  *</div><div class='add'>+  *  When +ndigits+ is less than the number of significant digits</div><div class='add'>+  *  in the sum, the sum is rounded to that number of digits,</div><div class='add'>+  *  according to the current rounding mode; see BigDecimal.mode.</div><div class='add'>+  *</div><div class='add'>+  *  Examples:</div><div class='add'>+  *</div><div class='add'>+  *    # Set the rounding mode.</div><div class='add'>+  *    BigDecimal.mode(BigDecimal::ROUND_MODE, :half_up)</div><div class='add'>+  *    b = BigDecimal('555555.555')</div><div class='add'>+  *    b.mult(3, 0)              # =&gt; 0.1666666665e7</div><div class='add'>+  *    b.mult(3, 3)              # =&gt; 0.167e7</div><div class='add'>+  *    b.mult(3, 6)              # =&gt; 0.166667e7</div><div class='add'>+  *    b.mult(3, 15)             # =&gt; 0.1666666665e7</div><div class='add'>+  *    b.mult(3.0, 0)            # =&gt; 0.1666666665e7</div><div class='add'>+  *    b.mult(Rational(3, 1), 0) # =&gt; 0.1666666665e7</div><div class='add'>+  *    b.mult(Complex(3, 0), 0)  # =&gt; (0.1666666665e7+0.0i)</div><div class='add'>+  *</div><div class='add'>+  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_mult2(VALUE self, VALUE b, VALUE n)</div><div class='ctx'> {</div><div class='ctx'>     ENTER(2);</div><div class='ctx'>     Real *cv;</div><div class='del'>-    SIGNED_VALUE mx = GetPrecisionInt(n);</div><div class='add'>+    SIGNED_VALUE mx = check_int_precision(n);</div><div class='ctx'>     if (mx == 0) return BigDecimal_mult(self, b);</div><div class='ctx'>     else {</div><div class='ctx'> 	size_t pl = VpSetPrecLimit(0);</div><div class='hunk'>@@ -1683,18 +2364,19 @@ BigDecimal_mult2(VALUE self, VALUE b, VALUE n)</div><div class='ctx'> 	VpSetPrecLimit(pl);</div><div class='ctx'> 	GUARD_OBJ(cv, GetVpValue(c, 1));</div><div class='ctx'> 	VpLeftRound(cv, VpGetRoundMode(), mx);</div><div class='del'>-	return ToValue(cv);</div><div class='add'>+        return VpCheckGetValue(cv);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     big_decimal.abs  -&gt;  big_decimal</div><div class='add'>+ *    abs -&gt; bigdecimal</div><div class='add'>+ *</div><div class='add'>+ *  Returns the \BigDecimal absolute value of +self+:</div><div class='ctx'>  *</div><div class='del'>- *  Returns the absolute value, as a BigDecimal.</div><div class='add'>+ *    BigDecimal('5').abs  # =&gt; 0.5e1</div><div class='add'>+ *    BigDecimal('-3').abs # =&gt; 0.3e1</div><div class='ctx'>  *</div><div class='del'>- *     BigDecimal('5').abs  #=&gt; 0.5e1</div><div class='del'>- *     BigDecimal('-3').abs #=&gt; 0.3e1</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1706,10 +2388,10 @@ BigDecimal_abs(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='ctx'>     mx = a-&gt;Prec *(VpBaseFig() + 1);</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(mx, "0"));</div><div class='add'>+    GUARD_OBJ(c, NewZeroWrapLimited(1, mx));</div><div class='ctx'>     VpAsgn(c, a, 1);</div><div class='ctx'>     VpChangeSign(c, 1);</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* call-seq:</div><div class='hunk'>@@ -1729,11 +2411,12 @@ BigDecimal_sqrt(VALUE self, VALUE nFig)</div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='ctx'>     mx = a-&gt;Prec * (VpBaseFig() + 1);</div><div class='ctx'> </div><div class='del'>-    n = GetPrecisionInt(nFig) + VpDblFig() + BASE_FIG;</div><div class='add'>+    n = check_int_precision(nFig);</div><div class='add'>+    n += VpDblFig() + VpBaseFig();</div><div class='ctx'>     if (mx &lt;= n) mx = n;</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(mx, "0"));</div><div class='add'>+    GUARD_OBJ(c, NewZeroWrapLimited(1, mx));</div><div class='ctx'>     VpSqrt(c, a);</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Return the integer part of the number, as a BigDecimal.</div><div class='hunk'>@@ -1747,29 +2430,32 @@ BigDecimal_fix(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='ctx'>     mx = a-&gt;Prec *(VpBaseFig() + 1);</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(mx, "0"));</div><div class='add'>+    GUARD_OBJ(c, NewZeroWrapLimited(1, mx));</div><div class='ctx'>     VpActiveRound(c, a, VP_ROUND_DOWN, 0); /* 0: round off */</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* call-seq:</div><div class='ctx'>  * round(n, mode)</div><div class='ctx'>  *</div><div class='ctx'>  * Round to the nearest integer (by default), returning the result as a</div><div class='del'>- * BigDecimal.</div><div class='add'>+ * BigDecimal if n is specified, or as an Integer if it isn't.</div><div class='ctx'>  *</div><div class='ctx'>  *	BigDecimal('3.14159').round #=&gt; 3</div><div class='ctx'>  *	BigDecimal('8.7').round #=&gt; 9</div><div class='ctx'>  *	BigDecimal('-9.9').round #=&gt; -10</div><div class='ctx'>  *</div><div class='add'>+ *	BigDecimal('3.14159').round(2).class.name #=&gt; "BigDecimal"</div><div class='add'>+ *	BigDecimal('3.14159').round.class.name #=&gt; "Integer"</div><div class='add'>+ *</div><div class='ctx'>  * If n is specified and positive, the fractional part of the result has no</div><div class='ctx'>  * more than that many digits.</div><div class='ctx'>  *</div><div class='ctx'>  * If n is specified and negative, at least that many digits to the left of the</div><div class='del'>- * decimal point will be 0 in the result.</div><div class='add'>+ * decimal point will be 0 in the result, and return value will be an Integer.</div><div class='ctx'>  *</div><div class='ctx'>  *	BigDecimal('3.14159').round(3) #=&gt; 3.142</div><div class='del'>- *	BigDecimal('13345.234').round(-2) #=&gt; 13300.0</div><div class='add'>+ *	BigDecimal('13345.234').round(-2) #=&gt; 13300</div><div class='ctx'>  *</div><div class='ctx'>  * The value of the optional mode argument can be used to determine how</div><div class='ctx'>  * rounding is performed; see BigDecimal.mode.</div><div class='hunk'>@@ -1782,6 +2468,7 @@ BigDecimal_round(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     int    iLoc = 0;</div><div class='ctx'>     VALUE  vLoc;</div><div class='ctx'>     VALUE  vRound;</div><div class='add'>+    int    round_to_int = 0;</div><div class='ctx'>     size_t mx, pl;</div><div class='ctx'> </div><div class='ctx'>     unsigned short sw = VpGetRoundMode();</div><div class='hunk'>@@ -1789,6 +2476,7 @@ BigDecimal_round(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     switch (rb_scan_args(argc, argv, "02", &amp;vLoc, &amp;vRound)) {</div><div class='ctx'>       case 0:</div><div class='ctx'> 	iLoc = 0;</div><div class='add'>+        round_to_int = 1;</div><div class='ctx'> 	break;</div><div class='ctx'>       case 1:</div><div class='ctx'>         if (RB_TYPE_P(vLoc, T_HASH)) {</div><div class='hunk'>@@ -1796,6 +2484,7 @@ BigDecimal_round(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='ctx'> 	    iLoc = NUM2INT(vLoc);</div><div class='add'>+            if (iLoc &lt; 1) round_to_int = 1;</div><div class='ctx'> 	}</div><div class='ctx'> 	break;</div><div class='ctx'>       case 2:</div><div class='hunk'>@@ -1814,13 +2503,13 @@ BigDecimal_round(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     pl = VpSetPrecLimit(0);</div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='ctx'>     mx = a-&gt;Prec * (VpBaseFig() + 1);</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(mx, "0"));</div><div class='add'>+    GUARD_OBJ(c, NewZeroWrapLimited(1, mx));</div><div class='ctx'>     VpSetPrecLimit(pl);</div><div class='ctx'>     VpActiveRound(c, a, sw, iLoc);</div><div class='del'>-    if (argc == 0) {</div><div class='del'>-	return BigDecimal_to_i(ToValue(c));</div><div class='add'>+    if (round_to_int) {</div><div class='add'>+        return BigDecimal_to_i(VpCheckGetValue(c));</div><div class='ctx'>     }</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* call-seq:</div><div class='hunk'>@@ -1860,13 +2549,13 @@ BigDecimal_truncate(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='ctx'>     mx = a-&gt;Prec * (VpBaseFig() + 1);</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(mx, "0"));</div><div class='add'>+    GUARD_OBJ(c, NewZeroWrapLimited(1, mx));</div><div class='ctx'>     VpSetPrecLimit(pl);</div><div class='ctx'>     VpActiveRound(c, a, VP_ROUND_DOWN, iLoc); /* 0: truncate */</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	return BigDecimal_to_i(ToValue(c));</div><div class='add'>+        return BigDecimal_to_i(VpCheckGetValue(c));</div><div class='ctx'>     }</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Return the fractional part of the number, as a BigDecimal.</div><div class='hunk'>@@ -1880,9 +2569,9 @@ BigDecimal_frac(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='ctx'>     mx = a-&gt;Prec * (VpBaseFig() + 1);</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(mx, "0"));</div><div class='add'>+    GUARD_OBJ(c, NewZeroWrapLimited(1, mx));</div><div class='ctx'>     VpFrac(c, a);</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* call-seq:</div><div class='hunk'>@@ -1920,16 +2609,16 @@ BigDecimal_floor(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='ctx'>     mx = a-&gt;Prec * (VpBaseFig() + 1);</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(mx, "0"));</div><div class='add'>+    GUARD_OBJ(c, NewZeroWrapLimited(1, mx));</div><div class='ctx'>     VpSetPrecLimit(pl);</div><div class='ctx'>     VpActiveRound(c, a, VP_ROUND_FLOOR, iLoc);</div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='ctx'>     VPrint(stderr, "floor: c=%\n", c);</div><div class='ctx'> #endif</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	return BigDecimal_to_i(ToValue(c));</div><div class='add'>+        return BigDecimal_to_i(VpCheckGetValue(c));</div><div class='ctx'>     }</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* call-seq:</div><div class='hunk'>@@ -1966,13 +2655,13 @@ BigDecimal_ceil(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GUARD_OBJ(a, GetVpValue(self, 1));</div><div class='ctx'>     mx = a-&gt;Prec * (VpBaseFig() + 1);</div><div class='del'>-    GUARD_OBJ(c, VpCreateRbObject(mx, "0"));</div><div class='add'>+    GUARD_OBJ(c, NewZeroWrapLimited(1, mx));</div><div class='ctx'>     VpSetPrecLimit(pl);</div><div class='ctx'>     VpActiveRound(c, a, VP_ROUND_CEIL, iLoc);</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	return BigDecimal_to_i(ToValue(c));</div><div class='add'>+        return BigDecimal_to_i(VpCheckGetValue(c));</div><div class='ctx'>     }</div><div class='del'>-    return ToValue(c);</div><div class='add'>+    return VpCheckGetValue(c);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* call-seq:</div><div class='hunk'>@@ -2027,7 +2716,6 @@ BigDecimal_to_s(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     if (rb_scan_args(argc, argv, "01", &amp;f) == 1) {</div><div class='ctx'> 	if (RB_TYPE_P(f, T_STRING)) {</div><div class='ctx'> 	    psz = StringValueCStr(f);</div><div class='del'>-	    rb_check_safe_obj(f);</div><div class='ctx'> 	    if (*psz == ' ') {</div><div class='ctx'> 		fPlus = 1;</div><div class='ctx'> 		psz++;</div><div class='hunk'>@@ -2067,14 +2755,14 @@ BigDecimal_to_s(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	nc += (nc + mc - 1) / mc + 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    str = rb_str_new(0, nc);</div><div class='add'>+    str = rb_usascii_str_new(0, nc);</div><div class='ctx'>     psz = RSTRING_PTR(str);</div><div class='ctx'> </div><div class='ctx'>     if (fmt) {</div><div class='del'>-	VpToFString(vp, psz, mc, fPlus);</div><div class='add'>+	VpToFString(vp, psz, RSTRING_LEN(str), mc, fPlus);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VpToString (vp, psz, mc, fPlus);</div><div class='add'>+	VpToString (vp, psz, RSTRING_LEN(str), mc, fPlus);</div><div class='ctx'>     }</div><div class='ctx'>     rb_str_resize(str, strlen(psz));</div><div class='ctx'>     return str;</div><div class='hunk'>@@ -2116,7 +2804,7 @@ BigDecimal_split(VALUE self)</div><div class='ctx'>     GUARD_OBJ(vp, GetVpValue(self, 1));</div><div class='ctx'>     str = rb_str_new(0, VpNumOfChars(vp, "E"));</div><div class='ctx'>     psz1 = RSTRING_PTR(str);</div><div class='del'>-    VpSzMantissa(vp, psz1);</div><div class='add'>+    VpSzMantissa(vp, psz1, RSTRING_LEN(str));</div><div class='ctx'>     s = 1;</div><div class='ctx'>     if(psz1[0] == '-') {</div><div class='ctx'> 	size_t len = strlen(psz1 + 1);</div><div class='hunk'>@@ -2132,7 +2820,7 @@ BigDecimal_split(VALUE self)</div><div class='ctx'>     rb_ary_push(obj, str);</div><div class='ctx'>     rb_str_resize(str, strlen(psz1));</div><div class='ctx'>     rb_ary_push(obj, INT2FIX(10));</div><div class='del'>-    rb_ary_push(obj, INT2NUM(e));</div><div class='add'>+    rb_ary_push(obj, SSIZET2NUM(e));</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2145,7 +2833,7 @@ static VALUE</div><div class='ctx'> BigDecimal_exponent(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     ssize_t e = VpExponent10(GetVpValue(self, 1));</div><div class='del'>-    return INT2NUM(e);</div><div class='add'>+    return SSIZET2NUM(e);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Returns a string representation of self.</div><div class='hunk'>@@ -2165,7 +2853,7 @@ BigDecimal_inspect(VALUE self)</div><div class='ctx'>     nc = VpNumOfChars(vp, "E");</div><div class='ctx'> </div><div class='ctx'>     str = rb_str_new(0, nc);</div><div class='del'>-    VpToString(vp, RSTRING_PTR(str), 0, 0);</div><div class='add'>+    VpToString(vp, RSTRING_PTR(str), RSTRING_LEN(str), 0, 0);</div><div class='ctx'>     rb_str_resize(str, strlen(RSTRING_PTR(str)));</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='hunk'>@@ -2269,13 +2957,13 @@ is_even(VALUE x)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rmpd_power_by_big_decimal(Real const* x, Real const* exp, ssize_t const n)</div><div class='add'>+bigdecimal_power_by_bigdecimal(Real const* x, Real const* exp, ssize_t const n)</div><div class='ctx'> {</div><div class='ctx'>     VALUE log_x, multiplied, y;</div><div class='ctx'>     volatile VALUE obj = exp-&gt;obj;</div><div class='ctx'> </div><div class='ctx'>     if (VpIsZero(exp)) {</div><div class='del'>-	return ToValue(VpCreateRbObject(n, "1"));</div><div class='add'>+        return VpCheckGetValue(NewOneWrapLimited(1, n));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     log_x = BigMath_log(x-&gt;obj, SSIZET2NUM(n+1));</div><div class='hunk'>@@ -2313,10 +3001,10 @@ BigDecimal_power(int argc, VALUE*argv, VALUE self)</div><div class='ctx'>     n = NIL_P(prec) ? (ssize_t)(x-&gt;Prec*VpBaseFig()) : NUM2SSIZET(prec);</div><div class='ctx'> </div><div class='ctx'>     if (VpIsNaN(x)) {</div><div class='del'>-	y = VpCreateRbObject(n, "0");</div><div class='del'>-	RB_GC_GUARD(y-&gt;obj);</div><div class='del'>-	VpSetNaN(y);</div><div class='del'>-	return ToValue(y);</div><div class='add'>+        y = NewZeroWrapLimited(1, n);</div><div class='add'>+        VpSetNaN(y);</div><div class='add'>+        RB_GC_GUARD(y-&gt;obj);</div><div class='add'>+        return VpCheckGetValue(y);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>   retry:</div><div class='hunk'>@@ -2338,7 +3026,10 @@ BigDecimal_power(int argc, VALUE*argv, VALUE self)</div><div class='ctx'> 	    }</div><div class='ctx'> 	    goto retry;</div><div class='ctx'> 	}</div><div class='del'>-	exp = GetVpValueWithPrec(vexp, DBL_DIG+1, 1);</div><div class='add'>+        if (NIL_P(prec)) {</div><div class='add'>+            n += BIGDECIMAL_DOUBLE_FIGURES;</div><div class='add'>+        }</div><div class='add'>+        exp = GetVpValueWithPrec(vexp, 0, 1);</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       case T_RATIONAL:</div><div class='hunk'>@@ -2353,6 +3044,9 @@ BigDecimal_power(int argc, VALUE*argv, VALUE self)</div><div class='ctx'> 	    goto retry;</div><div class='ctx'> 	}</div><div class='ctx'> 	exp = GetVpValueWithPrec(vexp, n, 1);</div><div class='add'>+        if (NIL_P(prec)) {</div><div class='add'>+            n += n;</div><div class='add'>+        }</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       case T_DATA:</div><div class='hunk'>@@ -2363,6 +3057,10 @@ BigDecimal_power(int argc, VALUE*argv, VALUE self)</div><div class='ctx'> 		vexp = BigDecimal_to_i(vexp);</div><div class='ctx'> 		goto retry;</div><div class='ctx'> 	    }</div><div class='add'>+            if (NIL_P(prec)) {</div><div class='add'>+                GUARD_OBJ(y, GetVpValue(vexp, 1));</div><div class='add'>+                n += y-&gt;Prec*VpBaseFig();</div><div class='add'>+            }</div><div class='ctx'> 	    exp = DATA_PTR(vexp);</div><div class='ctx'> 	    break;</div><div class='ctx'> 	}</div><div class='hunk'>@@ -2374,136 +3072,126 @@ BigDecimal_power(int argc, VALUE*argv, VALUE self)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (VpIsZero(x)) {</div><div class='del'>-	if (is_negative(vexp)) {</div><div class='del'>-	    y = VpCreateRbObject(n, "#0");</div><div class='del'>-	    RB_GC_GUARD(y-&gt;obj);</div><div class='del'>-	    if (BIGDECIMAL_NEGATIVE_P(x)) {</div><div class='del'>-		if (is_integer(vexp)) {</div><div class='del'>-		    if (is_even(vexp)) {</div><div class='del'>-			/* (-0) ** (-even_integer)  -&gt; Infinity */</div><div class='del'>-			VpSetPosInf(y);</div><div class='del'>-		    }</div><div class='del'>-		    else {</div><div class='del'>-			/* (-0) ** (-odd_integer)  -&gt; -Infinity */</div><div class='del'>-			VpSetNegInf(y);</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    /* (-0) ** (-non_integer)  -&gt; Infinity */</div><div class='del'>-		    VpSetPosInf(y);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		/* (+0) ** (-num)  -&gt; Infinity */</div><div class='del'>-		VpSetPosInf(y);</div><div class='del'>-	    }</div><div class='del'>-	    return ToValue(y);</div><div class='del'>-	}</div><div class='del'>-	else if (is_zero(vexp)) {</div><div class='del'>-	    return ToValue(VpCreateRbObject(n, "1"));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    return ToValue(VpCreateRbObject(n, "0"));</div><div class='del'>-	}</div><div class='add'>+        if (is_negative(vexp)) {</div><div class='add'>+            y = NewZeroWrapNolimit(1, n);</div><div class='add'>+            if (BIGDECIMAL_NEGATIVE_P(x)) {</div><div class='add'>+                if (is_integer(vexp)) {</div><div class='add'>+                    if (is_even(vexp)) {</div><div class='add'>+                        /* (-0) ** (-even_integer)  -&gt; Infinity */</div><div class='add'>+                        VpSetPosInf(y);</div><div class='add'>+                    }</div><div class='add'>+                    else {</div><div class='add'>+                        /* (-0) ** (-odd_integer)  -&gt; -Infinity */</div><div class='add'>+                        VpSetNegInf(y);</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    /* (-0) ** (-non_integer)  -&gt; Infinity */</div><div class='add'>+                    VpSetPosInf(y);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                /* (+0) ** (-num)  -&gt; Infinity */</div><div class='add'>+                VpSetPosInf(y);</div><div class='add'>+            }</div><div class='add'>+            RB_GC_GUARD(y-&gt;obj);</div><div class='add'>+            return VpCheckGetValue(y);</div><div class='add'>+        }</div><div class='add'>+        else if (is_zero(vexp)) {</div><div class='add'>+            return VpCheckGetValue(NewOneWrapLimited(1, n));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return VpCheckGetValue(NewZeroWrapLimited(1, n));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (is_zero(vexp)) {</div><div class='del'>-	return ToValue(VpCreateRbObject(n, "1"));</div><div class='add'>+        return VpCheckGetValue(NewOneWrapLimited(1, n));</div><div class='ctx'>     }</div><div class='ctx'>     else if (is_one(vexp)) {</div><div class='del'>-	return self;</div><div class='add'>+        return self;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (VpIsInf(x)) {</div><div class='del'>-	if (is_negative(vexp)) {</div><div class='del'>-	    if (BIGDECIMAL_NEGATIVE_P(x)) {</div><div class='del'>-		if (is_integer(vexp)) {</div><div class='del'>-		    if (is_even(vexp)) {</div><div class='del'>-			/* (-Infinity) ** (-even_integer) -&gt; +0 */</div><div class='del'>-			return ToValue(VpCreateRbObject(n, "0"));</div><div class='del'>-		    }</div><div class='del'>-		    else {</div><div class='del'>-			/* (-Infinity) ** (-odd_integer) -&gt; -0 */</div><div class='del'>-			return ToValue(VpCreateRbObject(n, "-0"));</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    /* (-Infinity) ** (-non_integer) -&gt; -0 */</div><div class='del'>-		    return ToValue(VpCreateRbObject(n, "-0"));</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		return ToValue(VpCreateRbObject(n, "0"));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    y = VpCreateRbObject(n, "0");</div><div class='del'>-	    if (BIGDECIMAL_NEGATIVE_P(x)) {</div><div class='del'>-		if (is_integer(vexp)) {</div><div class='del'>-		    if (is_even(vexp)) {</div><div class='del'>-			VpSetPosInf(y);</div><div class='del'>-		    }</div><div class='del'>-		    else {</div><div class='del'>-			VpSetNegInf(y);</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    /* TODO: support complex */</div><div class='del'>-		    rb_raise(rb_eMathDomainError,</div><div class='del'>-			     "a non-integral exponent for a negative base");</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		VpSetPosInf(y);</div><div class='del'>-	    }</div><div class='del'>-	    return ToValue(y);</div><div class='del'>-	}</div><div class='add'>+        if (is_negative(vexp)) {</div><div class='add'>+            if (BIGDECIMAL_NEGATIVE_P(x)) {</div><div class='add'>+                if (is_integer(vexp)) {</div><div class='add'>+                    if (is_even(vexp)) {</div><div class='add'>+                        /* (-Infinity) ** (-even_integer) -&gt; +0 */</div><div class='add'>+                        return VpCheckGetValue(NewZeroWrapLimited(1, n));</div><div class='add'>+                    }</div><div class='add'>+                    else {</div><div class='add'>+                        /* (-Infinity) ** (-odd_integer) -&gt; -0 */</div><div class='add'>+                        return VpCheckGetValue(NewZeroWrapLimited(-1, n));</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    /* (-Infinity) ** (-non_integer) -&gt; -0 */</div><div class='add'>+                    return VpCheckGetValue(NewZeroWrapLimited(-1, n));</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                return VpCheckGetValue(NewZeroWrapLimited(1, n));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            y = NewZeroWrapLimited(1, n);</div><div class='add'>+            if (BIGDECIMAL_NEGATIVE_P(x)) {</div><div class='add'>+                if (is_integer(vexp)) {</div><div class='add'>+                    if (is_even(vexp)) {</div><div class='add'>+                        VpSetPosInf(y);</div><div class='add'>+                    }</div><div class='add'>+                    else {</div><div class='add'>+                        VpSetNegInf(y);</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    /* TODO: support complex */</div><div class='add'>+                    rb_raise(rb_eMathDomainError,</div><div class='add'>+                            "a non-integral exponent for a negative base");</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                VpSetPosInf(y);</div><div class='add'>+            }</div><div class='add'>+            return VpCheckGetValue(y);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (exp != NULL) {</div><div class='del'>-	return rmpd_power_by_big_decimal(x, exp, n);</div><div class='add'>+        return bigdecimal_power_by_bigdecimal(x, exp, n);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(vexp, T_BIGNUM)) {</div><div class='del'>-	VALUE abs_value = BigDecimal_abs(self);</div><div class='del'>-	if (is_one(abs_value)) {</div><div class='del'>-	    return ToValue(VpCreateRbObject(n, "1"));</div><div class='del'>-	}</div><div class='del'>-	else if (RTEST(rb_funcall(abs_value, '&lt;', 1, INT2FIX(1)))) {</div><div class='del'>-	    if (is_negative(vexp)) {</div><div class='del'>-		y = VpCreateRbObject(n, "0");</div><div class='del'>-		if (is_even(vexp)) {</div><div class='del'>-		    VpSetInf(y, VpGetSign(x));</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    VpSetInf(y, -VpGetSign(x));</div><div class='del'>-		}</div><div class='del'>-		return ToValue(y);</div><div class='del'>-	    }</div><div class='del'>-	    else if (BIGDECIMAL_NEGATIVE_P(x) &amp;&amp; is_even(vexp)) {</div><div class='del'>-		return ToValue(VpCreateRbObject(n, "-0"));</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		return ToValue(VpCreateRbObject(n, "0"));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (is_positive(vexp)) {</div><div class='del'>-		y = VpCreateRbObject(n, "0");</div><div class='del'>-		if (is_even(vexp)) {</div><div class='del'>-		    VpSetInf(y, VpGetSign(x));</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    VpSetInf(y, -VpGetSign(x));</div><div class='del'>-		}</div><div class='del'>-		return ToValue(y);</div><div class='del'>-	    }</div><div class='del'>-	    else if (BIGDECIMAL_NEGATIVE_P(x) &amp;&amp; is_even(vexp)) {</div><div class='del'>-		return ToValue(VpCreateRbObject(n, "-0"));</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		return ToValue(VpCreateRbObject(n, "0"));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        VALUE abs_value = BigDecimal_abs(self);</div><div class='add'>+        if (is_one(abs_value)) {</div><div class='add'>+            return VpCheckGetValue(NewOneWrapLimited(1, n));</div><div class='add'>+        }</div><div class='add'>+        else if (RTEST(rb_funcall(abs_value, '&lt;', 1, INT2FIX(1)))) {</div><div class='add'>+            if (is_negative(vexp)) {</div><div class='add'>+                y = NewZeroWrapLimited(1, n);</div><div class='add'>+                VpSetInf(y, (is_even(vexp) ? 1 : -1) * VpGetSign(x));</div><div class='add'>+                return VpCheckGetValue(y);</div><div class='add'>+            }</div><div class='add'>+            else if (BIGDECIMAL_NEGATIVE_P(x) &amp;&amp; is_even(vexp)) {</div><div class='add'>+                return VpCheckGetValue(NewZeroWrapLimited(-1, n));</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                return VpCheckGetValue(NewZeroWrapLimited(1, n));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (is_positive(vexp)) {</div><div class='add'>+                y = NewZeroWrapLimited(1, n);</div><div class='add'>+                VpSetInf(y, (is_even(vexp) ? 1 : -1) * VpGetSign(x));</div><div class='add'>+                return VpCheckGetValue(y);</div><div class='add'>+            }</div><div class='add'>+            else if (BIGDECIMAL_NEGATIVE_P(x) &amp;&amp; is_even(vexp)) {</div><div class='add'>+                return VpCheckGetValue(NewZeroWrapLimited(-1, n));</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                return VpCheckGetValue(NewZeroWrapLimited(1, n));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     int_exp = FIX2LONG(vexp);</div><div class='hunk'>@@ -2512,25 +3200,31 @@ BigDecimal_power(int argc, VALUE*argv, VALUE self)</div><div class='ctx'>     if (ma == 0) ma = 1;</div><div class='ctx'> </div><div class='ctx'>     if (VpIsDef(x)) {</div><div class='del'>-	mp = x-&gt;Prec * (VpBaseFig() + 1);</div><div class='del'>-	GUARD_OBJ(y, VpCreateRbObject(mp * (ma + 1), "0"));</div><div class='add'>+        mp = x-&gt;Prec * (VpBaseFig() + 1);</div><div class='add'>+        GUARD_OBJ(y, NewZeroWrapLimited(1, mp * (ma + 1)));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	GUARD_OBJ(y, VpCreateRbObject(1, "0"));</div><div class='add'>+        GUARD_OBJ(y, NewZeroWrapLimited(1, 1));</div><div class='ctx'>     }</div><div class='del'>-    VpPower(y, x, int_exp);</div><div class='add'>+    VpPowerByInt(y, x, int_exp);</div><div class='ctx'>     if (!NIL_P(prec) &amp;&amp; VpIsDef(y)) {</div><div class='del'>-	VpMidRound(y, VpGetRoundMode(), n);</div><div class='add'>+        VpMidRound(y, VpGetRoundMode(), n);</div><div class='ctx'>     }</div><div class='del'>-    return ToValue(y);</div><div class='add'>+    return VpCheckGetValue(y);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* call-seq:</div><div class='del'>- *   a ** n  -&gt; bigdecimal</div><div class='add'>+/*  call-seq:</div><div class='add'>+ *    self ** other -&gt; bigdecimal</div><div class='ctx'>  *</div><div class='del'>- * Returns the value raised to the power of n.</div><div class='add'>+ *  Returns the \BigDecimal value of +self+ raised to power +other+:</div><div class='add'>+ *</div><div class='add'>+ *    b = BigDecimal('3.14')</div><div class='add'>+ *    b ** 2              # =&gt; 0.98596e1</div><div class='add'>+ *    b ** 2.0            # =&gt; 0.98596e1</div><div class='add'>+ *    b ** Rational(2, 1) # =&gt; 0.98596e1</div><div class='add'>+ *</div><div class='add'>+ *  Related: BigDecimal#power.</div><div class='ctx'>  *</div><div class='del'>- * See BigDecimal#power.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> BigDecimal_power_op(VALUE self, VALUE exp)</div><div class='hunk'>@@ -2560,6 +3254,10 @@ BigDecimal_clone(VALUE self)</div><div class='ctx'>   return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RB_OPTS_EXCEPTION_P</div><div class='add'>+int rb_opts_exception_p(VALUE opts, int default_value);</div><div class='add'>+#define opts_exception_p(opts) rb_opts_exception_p((opts), 1)</div><div class='add'>+#else</div><div class='ctx'> static int</div><div class='ctx'> opts_exception_p(VALUE opts)</div><div class='ctx'> {</div><div class='hunk'>@@ -2568,151 +3266,498 @@ opts_exception_p(VALUE opts)</div><div class='ctx'>     if (!kwds[0]) {</div><div class='ctx'>         kwds[0] = rb_intern_const("exception");</div><div class='ctx'>     }</div><div class='del'>-    rb_get_kwargs(opts, kwds, 0, 1, &amp;exception);</div><div class='add'>+    if (!rb_get_kwargs(opts, kwds, 0, 1, &amp;exception)) return 1;</div><div class='add'>+    switch (exception) {</div><div class='add'>+      case Qtrue: case Qfalse:</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        rb_raise(rb_eArgError, "true or false is expected as exception: %+"PRIsVALUE,</div><div class='add'>+                 exception);</div><div class='add'>+    }</div><div class='ctx'>     return exception != Qfalse;</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-static Real *</div><div class='del'>-BigDecimal_new(int argc, VALUE *argv)</div><div class='add'>+static VALUE</div><div class='add'>+check_exception(VALUE bd)</div><div class='ctx'> {</div><div class='del'>-    size_t mf;</div><div class='del'>-    VALUE  opts = Qnil;</div><div class='del'>-    VALUE  nFig;</div><div class='del'>-    VALUE  iniValue;</div><div class='del'>-    double d;</div><div class='del'>-    int    exc;</div><div class='add'>+    assert(is_kind_of_BigDecimal(bd));</div><div class='ctx'> </div><div class='del'>-    argc = rb_scan_args(argc, argv, "11:", &amp;iniValue, &amp;nFig, &amp;opts);</div><div class='del'>-    exc = opts_exception_p(opts);</div><div class='add'>+    Real *vp;</div><div class='add'>+    TypedData_Get_Struct(bd, Real, &amp;BigDecimal_data_type, vp);</div><div class='add'>+    VpCheckGetValue(vp); /* VpCheckGetValue performs exception check */</div><div class='add'>+</div><div class='add'>+    return bd;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (argc == 1) {</div><div class='del'>-        mf = 0;</div><div class='add'>+static VALUE</div><div class='add'>+rb_uint64_convert_to_BigDecimal(uint64_t uval, RB_UNUSED_VAR(size_t digs), int raise_exception)</div><div class='add'>+{</div><div class='add'>+    VALUE obj = TypedData_Wrap_Struct(rb_cBigDecimal, &amp;BigDecimal_data_type, 0);</div><div class='add'>+</div><div class='add'>+    Real *vp;</div><div class='add'>+    if (uval == 0) {</div><div class='add'>+        vp = rbd_allocate_struct(1);</div><div class='add'>+        vp-&gt;MaxPrec = 1;</div><div class='add'>+        vp-&gt;Prec = 1;</div><div class='add'>+        vp-&gt;exponent = 1;</div><div class='add'>+        VpSetZero(vp, 1);</div><div class='add'>+        vp-&gt;frac[0] = 0;</div><div class='add'>+    }</div><div class='add'>+    else if (uval &lt; BASE) {</div><div class='add'>+        vp = rbd_allocate_struct(1);</div><div class='add'>+        vp-&gt;MaxPrec = 1;</div><div class='add'>+        vp-&gt;Prec = 1;</div><div class='add'>+        vp-&gt;exponent = 1;</div><div class='add'>+        VpSetSign(vp, 1);</div><div class='add'>+        vp-&gt;frac[0] = (DECDIG)uval;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        /* expand GetPrecisionInt for exception suppression */</div><div class='del'>-        ssize_t n = NUM2INT(nFig);</div><div class='del'>-        if (n &lt; 0) {</div><div class='del'>-            if (!exc) {</div><div class='del'>-                return NULL;</div><div class='add'>+        DECDIG buf[BIGDECIMAL_INT64_MAX_LENGTH] = {0,};</div><div class='add'>+        DECDIG r = uval % BASE;</div><div class='add'>+        size_t len = 0, ntz = 0;</div><div class='add'>+        if (r == 0) {</div><div class='add'>+            // Count and skip trailing zeros</div><div class='add'>+            for (; r == 0 &amp;&amp; uval &gt; 0; ++ntz) {</div><div class='add'>+                uval /= BASE;</div><div class='add'>+                r = uval % BASE;</div><div class='ctx'>             }</div><div class='del'>-            rb_raise(rb_eArgError, "negative precision");</div><div class='ctx'>         }</div><div class='del'>-        mf = (size_t)n;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (SPECIAL_CONST_P(iniValue)) {</div><div class='del'>-        switch (iniValue) {</div><div class='del'>-          case Qnil:</div><div class='del'>-            if (!exc) return NULL;</div><div class='del'>-            rb_raise(rb_eTypeError, "can't convert nil into BigDecimal");</div><div class='del'>-          case Qtrue:</div><div class='del'>-            if (!exc) return NULL;</div><div class='del'>-            rb_raise(rb_eTypeError, "can't convert true into BigDecimal");</div><div class='del'>-          case Qfalse:</div><div class='del'>-            if (!exc) return NULL;</div><div class='del'>-            rb_raise(rb_eTypeError, "can't convert false into BigDecimal");</div><div class='del'>-          default:</div><div class='del'>-            break;</div><div class='add'>+        for (; uval &gt; 0; ++len) {</div><div class='add'>+            // Store digits</div><div class='add'>+            buf[BIGDECIMAL_INT64_MAX_LENGTH - len - 1] = r;</div><div class='add'>+            uval /= BASE;</div><div class='add'>+            r = uval % BASE;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        const size_t exp = len + ntz;</div><div class='add'>+        vp = rbd_allocate_struct(len);</div><div class='add'>+        vp-&gt;MaxPrec = len;</div><div class='add'>+        vp-&gt;Prec = len;</div><div class='add'>+        vp-&gt;exponent = exp;</div><div class='add'>+        VpSetSign(vp, 1);</div><div class='add'>+        MEMCPY(vp-&gt;frac, buf + BIGDECIMAL_INT64_MAX_LENGTH - len, DECDIG, len);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return BigDecimal_wrap_struct(obj, vp);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_int64_convert_to_BigDecimal(int64_t ival, size_t digs, int raise_exception)</div><div class='add'>+{</div><div class='add'>+    const uint64_t uval = (ival &lt; 0) ? (((uint64_t)-(ival+1))+1) : (uint64_t)ival;</div><div class='add'>+    VALUE bd = rb_uint64_convert_to_BigDecimal(uval, digs, raise_exception);</div><div class='add'>+    if (ival &lt; 0) {</div><div class='add'>+        Real *vp;</div><div class='add'>+        TypedData_Get_Struct(bd, Real, &amp;BigDecimal_data_type, vp);</div><div class='add'>+        VpSetSign(vp, -1);</div><div class='add'>+    }</div><div class='add'>+    return bd;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_big_convert_to_BigDecimal(VALUE val, RB_UNUSED_VAR(size_t digs), int raise_exception)</div><div class='add'>+{</div><div class='add'>+    assert(RB_TYPE_P(val, T_BIGNUM));</div><div class='add'>+</div><div class='add'>+    int leading_zeros;</div><div class='add'>+    size_t size = rb_absint_size(val, &amp;leading_zeros);</div><div class='add'>+    int sign = FIX2INT(rb_big_cmp(val, INT2FIX(0)));</div><div class='add'>+    if (sign &lt; 0 &amp;&amp; leading_zeros == 0) {</div><div class='add'>+        size += 1;</div><div class='add'>+    }</div><div class='add'>+    if (size &lt;= sizeof(long)) {</div><div class='add'>+        if (sign &lt; 0) {</div><div class='add'>+            return rb_int64_convert_to_BigDecimal(NUM2LONG(val), digs, raise_exception);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return rb_uint64_convert_to_BigDecimal(NUM2ULONG(val), digs, raise_exception);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#if defined(SIZEOF_LONG_LONG) &amp;&amp; SIZEOF_LONG &lt; SIZEOF_LONG_LONG</div><div class='add'>+    else if (size &lt;= sizeof(LONG_LONG)) {</div><div class='add'>+        if (sign &lt; 0) {</div><div class='add'>+            return rb_int64_convert_to_BigDecimal(NUM2LL(val), digs, raise_exception);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return rb_uint64_convert_to_BigDecimal(NUM2ULL(val), digs, raise_exception);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='add'>+#endif</div><div class='add'>+    else {</div><div class='add'>+        VALUE str = rb_big2str(val, 10);</div><div class='add'>+        Real *vp = VpCreateRbObject(RSTRING_LEN(str) + BASE_FIG + 1,</div><div class='add'>+                                    RSTRING_PTR(str), true);</div><div class='add'>+        RB_GC_GUARD(str);</div><div class='add'>+        return check_exception(vp-&gt;obj);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    switch (TYPE(iniValue)) {</div><div class='del'>-      case T_DATA:</div><div class='del'>-	if (is_kind_of_BigDecimal(iniValue)) {</div><div class='del'>-	    return DATA_PTR(iniValue);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+static VALUE</div><div class='add'>+rb_inum_convert_to_BigDecimal(VALUE val, RB_UNUSED_VAR(size_t digs), int raise_exception)</div><div class='add'>+{</div><div class='add'>+    assert(RB_INTEGER_TYPE_P(val));</div><div class='add'>+    if (FIXNUM_P(val)) {</div><div class='add'>+        return rb_int64_convert_to_BigDecimal(FIX2LONG(val), digs, raise_exception);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_big_convert_to_BigDecimal(val, digs, raise_exception);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-      case T_FIXNUM:</div><div class='del'>-	/* fall through */</div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	return GetVpValue(iniValue, 1);</div><div class='add'>+static VALUE</div><div class='add'>+rb_float_convert_to_BigDecimal(VALUE val, size_t digs, int raise_exception)</div><div class='add'>+{</div><div class='add'>+    assert(RB_FLOAT_TYPE_P(val));</div><div class='ctx'> </div><div class='del'>-      case T_FLOAT:</div><div class='del'>-        d = RFLOAT_VALUE(iniValue);</div><div class='del'>-        if (!isfinite(d)) {</div><div class='del'>-            Real *pv = VpCreateRbObject(1, NULL);</div><div class='del'>-            VpDtoV(pv, d);</div><div class='del'>-            return pv;</div><div class='add'>+    double d = RFLOAT_VALUE(val);</div><div class='add'>+</div><div class='add'>+    if (isnan(d)) {</div><div class='add'>+        VALUE obj = BigDecimal_nan();</div><div class='add'>+        return check_exception(obj);</div><div class='add'>+    }</div><div class='add'>+    else if (isinf(d)) {</div><div class='add'>+        VALUE obj;</div><div class='add'>+        if (d &gt; 0) {</div><div class='add'>+            obj = BigDecimal_positive_infinity();</div><div class='ctx'>         }</div><div class='del'>-	if (mf &gt; DBL_DIG+1) {</div><div class='del'>-            if (!exc) {</div><div class='del'>-                return NULL;</div><div class='del'>-            }</div><div class='del'>-	    rb_raise(rb_eArgError, "precision too large.");</div><div class='del'>-	}</div><div class='del'>-	/* fall through */</div><div class='del'>-      case T_RATIONAL:</div><div class='del'>-	if (NIL_P(nFig)) {</div><div class='del'>-            if (!exc) {</div><div class='del'>-                return NULL;</div><div class='del'>-            }</div><div class='del'>-	    rb_raise(rb_eArgError,</div><div class='del'>-		     "can't omit precision for a %"PRIsVALUE".",</div><div class='del'>-		     RB_OBJ_CLASSNAME(iniValue));</div><div class='del'>-	}</div><div class='del'>-	return GetVpValueWithPrec(iniValue, mf, 1);</div><div class='add'>+        else {</div><div class='add'>+            obj = BigDecimal_negative_infinity();</div><div class='add'>+        }</div><div class='add'>+        return check_exception(obj);</div><div class='add'>+    }</div><div class='add'>+    else if (d == 0.0) {</div><div class='add'>+        if (1/d &lt; 0.0) {</div><div class='add'>+            return BigDecimal_negative_zero();</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return BigDecimal_positive_zero();</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (digs == SIZE_MAX) {</div><div class='add'>+        if (!raise_exception)</div><div class='add'>+            return Qnil;</div><div class='add'>+        rb_raise(rb_eArgError,</div><div class='add'>+                 "can't omit precision for a %"PRIsVALUE".",</div><div class='add'>+                 CLASS_OF(val));</div><div class='add'>+    }</div><div class='add'>+    else if (digs &gt; BIGDECIMAL_DOUBLE_FIGURES) {</div><div class='add'>+        if (!raise_exception)</div><div class='add'>+            return Qnil;</div><div class='add'>+        rb_raise(rb_eArgError, "precision too large.");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* Use the same logic in flo_to_s to convert a float to a decimal string */</div><div class='add'>+    char buf[BIGDECIMAL_DOUBLE_FIGURES + BASE_FIG + 2 + 1];  /* sizeof(buf) == 28 in the typical case */</div><div class='add'>+    int decpt, negative_p;</div><div class='add'>+    char *e;</div><div class='add'>+    const int mode = digs == 0 ? 0 : 2;</div><div class='add'>+    char *p = BigDecimal_dtoa(d, mode, (int)digs, &amp;decpt, &amp;negative_p, &amp;e);</div><div class='add'>+    int len10 = (int)(e - p);</div><div class='add'>+    if (len10 &gt; BIGDECIMAL_DOUBLE_FIGURES) {</div><div class='add'>+        /* TODO: Presumably, rounding should be done here. */</div><div class='add'>+        len10 = BIGDECIMAL_DOUBLE_FIGURES;</div><div class='add'>+    }</div><div class='add'>+    memcpy(buf, p, len10);</div><div class='add'>+    xfree(p);</div><div class='add'>+</div><div class='add'>+    VALUE inum;</div><div class='add'>+    size_t RB_UNUSED_VAR(prec) = 0;</div><div class='add'>+    SIGNED_VALUE exp = 0;</div><div class='add'>+    if (decpt &gt; 0) {</div><div class='add'>+        if (decpt &lt; len10) {</div><div class='add'>+            /*</div><div class='add'>+             *     len10 |---------------|</div><div class='add'>+             *           :       |-------| frac_len10 = len10 - decpt</div><div class='add'>+             *     decpt |-------|       |--| ntz10 = BASE_FIG - frac_len10 % BASE_FIG</div><div class='add'>+             *           :       :       :</div><div class='add'>+             *         00 dd dddd.dddd dd 00</div><div class='add'>+             *   prec |-----.----.----.-----| prec = exp + roomof(frac_len, BASE_FIG)</div><div class='add'>+             *   exp  |-----.----| exp = roomof(decpt, BASE_FIG)</div><div class='add'>+             */</div><div class='add'>+            const size_t frac_len10 = len10 - decpt;</div><div class='add'>+            const size_t ntz10 = BASE_FIG - frac_len10 % BASE_FIG;</div><div class='add'>+            memset(buf + len10, '0', ntz10);</div><div class='add'>+            buf[len10 + ntz10] = '\0';</div><div class='add'>+            inum = rb_cstr_to_inum(buf, 10, false);</div><div class='add'>+</div><div class='add'>+            exp = roomof(decpt, BASE_FIG);</div><div class='add'>+            prec = exp + roomof(frac_len10, BASE_FIG);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /*</div><div class='add'>+             *      decpt |-----------------------|</div><div class='add'>+             *      len10 |----------|            :</div><div class='add'>+             *            :          |------------| exp10</div><div class='add'>+             *            :          :            :</div><div class='add'>+             *          00 dd dddd dd 00 0000 0000.0</div><div class='add'>+             *         :             :  :         :</div><div class='add'>+             *         :             |--| ntz10 = exp10 % BASE_FIG</div><div class='add'>+             *    prec |-----.----.-----|         :</div><div class='add'>+             *         :                |----.----| exp10 / BASE_FIG</div><div class='add'>+             *     exp |-----.----.-----.----.----|</div><div class='add'>+             */</div><div class='add'>+            const size_t exp10 = decpt - len10;</div><div class='add'>+            const size_t ntz10 = exp10 % BASE_FIG;</div><div class='add'>+</div><div class='add'>+            memset(buf + len10, '0', ntz10);</div><div class='add'>+            buf[len10 + ntz10] = '\0';</div><div class='add'>+            inum = rb_cstr_to_inum(buf, 10, false);</div><div class='add'>+</div><div class='add'>+            prec = roomof(len10 + ntz10, BASE_FIG);</div><div class='add'>+            exp = prec + exp10 / BASE_FIG;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else if (decpt == 0) {</div><div class='add'>+        /*</div><div class='add'>+         *   len10 |------------|</div><div class='add'>+         *         :            :</div><div class='add'>+         *        0.dddd dddd dd 00</div><div class='add'>+         *         :            :  :</div><div class='add'>+         *         :            |--| ntz10 = prec * BASE_FIG - len10</div><div class='add'>+         *    prec |----.----.-----| roomof(len10, BASE_FIG)</div><div class='add'>+         */</div><div class='add'>+        prec = roomof(len10, BASE_FIG);</div><div class='add'>+        const size_t ntz10 = prec * BASE_FIG - len10;</div><div class='add'>+</div><div class='add'>+        memset(buf + len10, '0', ntz10);</div><div class='add'>+        buf[len10 + ntz10] = '\0';</div><div class='add'>+        inum = rb_cstr_to_inum(buf, 10, false);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        /*</div><div class='add'>+         *           len10 |---------------|</div><div class='add'>+         *                 :               :</div><div class='add'>+         *   decpt |-------|               |--| ntz10 = prec * BASE_FIG - nlz10 - len10</div><div class='add'>+         *         :       :               :</div><div class='add'>+         *        0.0000 00 dd dddd dddd dd 00</div><div class='add'>+         *              :  :                  :</div><div class='add'>+         *        nlz10 |--|                  : decpt % BASE_FIG</div><div class='add'>+         *         prec |-----.----.----.-----| roomof(decpt + len10, BASE_FIG) - exp</div><div class='add'>+         *    exp  |----| decpt / BASE_FIG</div><div class='add'>+         */</div><div class='add'>+        decpt = -decpt;</div><div class='add'>+</div><div class='add'>+        const size_t nlz10 = decpt % BASE_FIG;</div><div class='add'>+        exp = decpt / BASE_FIG;</div><div class='add'>+        prec = roomof(decpt + len10, BASE_FIG) - exp;</div><div class='add'>+        const size_t ntz10 = prec * BASE_FIG - nlz10 - len10;</div><div class='add'>+</div><div class='add'>+        if (nlz10 &gt; 0) {</div><div class='add'>+            memmove(buf + nlz10, buf, len10);</div><div class='add'>+            memset(buf, '0', nlz10);</div><div class='add'>+        }</div><div class='add'>+        memset(buf + nlz10 + len10, '0', ntz10);</div><div class='add'>+        buf[nlz10 + len10 + ntz10] = '\0';</div><div class='add'>+        inum = rb_cstr_to_inum(buf, 10, false);</div><div class='add'>+</div><div class='add'>+        exp = -exp;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE bd = rb_inum_convert_to_BigDecimal(inum, SIZE_MAX, raise_exception);</div><div class='add'>+    Real *vp;</div><div class='add'>+    TypedData_Get_Struct(bd, Real, &amp;BigDecimal_data_type, vp);</div><div class='add'>+    assert(vp-&gt;Prec == prec);</div><div class='add'>+    vp-&gt;exponent = exp;</div><div class='add'>+</div><div class='add'>+    if (negative_p) VpSetSign(vp, -1);</div><div class='add'>+    return bd;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_rational_convert_to_BigDecimal(VALUE val, size_t digs, int raise_exception)</div><div class='add'>+{</div><div class='add'>+    assert(RB_TYPE_P(val, T_RATIONAL));</div><div class='add'>+</div><div class='add'>+    if (digs == SIZE_MAX) {</div><div class='add'>+        if (!raise_exception)</div><div class='add'>+            return Qnil;</div><div class='add'>+        rb_raise(rb_eArgError,</div><div class='add'>+                 "can't omit precision for a %"PRIsVALUE".",</div><div class='add'>+                 CLASS_OF(val));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE num = rb_inum_convert_to_BigDecimal(rb_rational_num(val), 0, raise_exception);</div><div class='add'>+    VALUE d = BigDecimal_div2(num, rb_rational_den(val), SIZET2NUM(digs));</div><div class='add'>+    return d;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_cstr_convert_to_BigDecimal(const char *c_str, size_t digs, int raise_exception)</div><div class='add'>+{</div><div class='add'>+    if (digs == SIZE_MAX)</div><div class='add'>+        digs = 0;</div><div class='add'>+</div><div class='add'>+    Real *vp = VpCreateRbObject(digs, c_str, raise_exception);</div><div class='add'>+    if (!vp)</div><div class='add'>+        return Qnil;</div><div class='add'>+    return VpCheckGetValue(vp);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_str_convert_to_BigDecimal(VALUE val, size_t digs, int raise_exception)</div><div class='add'>+{</div><div class='add'>+    const char *c_str = StringValueCStr(val);</div><div class='add'>+    return rb_cstr_convert_to_BigDecimal(c_str, digs, raise_exception);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_convert_to_BigDecimal(VALUE val, size_t digs, int raise_exception)</div><div class='add'>+{</div><div class='add'>+    switch (val) {</div><div class='add'>+      case Qnil:</div><div class='add'>+      case Qtrue:</div><div class='add'>+      case Qfalse:</div><div class='add'>+        if (raise_exception) {</div><div class='add'>+            const char *cname = NIL_P(val)    ? "nil"   :</div><div class='add'>+                                val == Qtrue  ? "true"  :</div><div class='add'>+                                val == Qfalse ? "false" :</div><div class='add'>+                                NULL;</div><div class='add'>+            rb_raise(rb_eTypeError,</div><div class='add'>+                       "can't convert %s into BigDecimal", cname);</div><div class='add'>+        }</div><div class='add'>+        return Qnil;</div><div class='ctx'> </div><div class='del'>-      case T_STRING:</div><div class='del'>-	/* fall through */</div><div class='ctx'>       default:</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (is_kind_of_BigDecimal(val)) {</div><div class='add'>+        if (digs == SIZE_MAX)</div><div class='add'>+            return check_exception(val);</div><div class='add'>+</div><div class='add'>+        Real *vp;</div><div class='add'>+        TypedData_Get_Struct(val, Real, &amp;BigDecimal_data_type, vp);</div><div class='add'>+</div><div class='add'>+        VALUE copy = TypedData_Wrap_Struct(rb_cBigDecimal, &amp;BigDecimal_data_type, 0);</div><div class='add'>+        vp = VpCopy(NULL, vp);</div><div class='add'>+        /* TODO: rounding */</div><div class='add'>+        BigDecimal_wrap_struct(copy, vp);</div><div class='add'>+        return VpCheckGetValue(vp);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_INTEGER_TYPE_P(val)) {</div><div class='add'>+        return rb_inum_convert_to_BigDecimal(val, digs, raise_exception);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLOAT_TYPE_P(val)) {</div><div class='add'>+        return rb_float_convert_to_BigDecimal(val, digs, raise_exception);</div><div class='ctx'>     }</div><div class='del'>-    /* TODO: support to_d */</div><div class='del'>-    if (!exc) {</div><div class='del'>-        iniValue = rb_check_convert_type(iniValue, T_STRING, "String", "to_str");</div><div class='del'>-        if (NIL_P(iniValue)) return NULL;</div><div class='add'>+    else if (RB_TYPE_P(val, T_RATIONAL)) {</div><div class='add'>+        return rb_rational_convert_to_BigDecimal(val, digs, raise_exception);</div><div class='ctx'>     }</div><div class='del'>-    StringValueCStr(iniValue);</div><div class='del'>-    return VpAlloc(mf, RSTRING_PTR(iniValue), 1, exc);</div><div class='add'>+    else if (RB_TYPE_P(val, T_COMPLEX)) {</div><div class='add'>+        VALUE im = rb_complex_imag(val);</div><div class='add'>+        if (!is_zero(im)) {</div><div class='add'>+            /* TODO: handle raise_exception */</div><div class='add'>+            rb_raise(rb_eArgError,</div><div class='add'>+                     "Unable to make a BigDecimal from non-zero imaginary number");</div><div class='add'>+        }</div><div class='add'>+        return rb_convert_to_BigDecimal(rb_complex_real(val), digs, raise_exception);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(val, T_STRING)) {</div><div class='add'>+        return rb_str_convert_to_BigDecimal(val, digs, raise_exception);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* TODO: chheck to_d */</div><div class='add'>+    /* TODO: chheck to_int */</div><div class='add'>+</div><div class='add'>+    VALUE str = rb_check_convert_type(val, T_STRING, "String", "to_str");</div><div class='add'>+    if (!RB_TYPE_P(str, T_STRING)) {</div><div class='add'>+        if (raise_exception) {</div><div class='add'>+            rb_raise(rb_eTypeError,</div><div class='add'>+                     "can't convert %"PRIsVALUE" into BigDecimal", rb_obj_class(val));</div><div class='add'>+        }</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+    return rb_str_convert_to_BigDecimal(str, digs, raise_exception);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* call-seq:</div><div class='del'>- *   BigDecimal(initial, digits)</div><div class='add'>+/*  call-seq:</div><div class='add'>+ *    BigDecimal(value, exception: true) -&gt; bigdecimal</div><div class='add'>+ *    BigDecimal(value, ndigits, exception: true) -&gt; bigdecimal</div><div class='add'>+ *</div><div class='add'>+ *  Returns the \BigDecimal converted from +value+</div><div class='add'>+ *  with a precision of +ndigits+ decimal digits.</div><div class='ctx'>  *</div><div class='del'>- * Create a new BigDecimal object.</div><div class='add'>+ *  When +ndigits+ is less than the number of significant digits</div><div class='add'>+ *  in the value, the result is rounded to that number of digits,</div><div class='add'>+ *  according to the current rounding mode; see BigDecimal.mode.</div><div class='ctx'>  *</div><div class='del'>- * initial:: The initial value, as an Integer, a Float, a Rational,</div><div class='del'>- *           a BigDecimal, or a String.</div><div class='add'>+ *  When +ndigits+ is 0, the number of digits to correctly represent a float number</div><div class='add'>+ *  is determined automatically.</div><div class='ctx'>  *</div><div class='del'>- *           If it is a String, spaces are ignored and unrecognized characters</div><div class='del'>- *           terminate the value.</div><div class='add'>+ *  Returns +value+ converted to a \BigDecimal, depending on the type of +value+:</div><div class='ctx'>  *</div><div class='del'>- * digits:: The number of significant digits, as an Integer. If omitted or 0,</div><div class='del'>- *          the number of significant digits is determined from the initial</div><div class='del'>- *          value.</div><div class='add'>+ *  - Integer, Float, Rational, Complex, or BigDecimal: converted directly:</div><div class='ctx'>  *</div><div class='del'>- * The actual number of significant digits used in computation is usually</div><div class='del'>- * larger than the specified number.</div><div class='add'>+ *      # Integer, Complex, or BigDecimal value does not require ndigits; ignored if given.</div><div class='add'>+ *      BigDecimal(2)                     # =&gt; 0.2e1</div><div class='add'>+ *      BigDecimal(Complex(2, 0))         # =&gt; 0.2e1</div><div class='add'>+ *      BigDecimal(BigDecimal(2))         # =&gt; 0.2e1</div><div class='add'>+ *      # Float or Rational value requires ndigits.</div><div class='add'>+ *      BigDecimal(2.0, 0)                # =&gt; 0.2e1</div><div class='add'>+ *      BigDecimal(Rational(2, 1), 0)     # =&gt; 0.2e1</div><div class='ctx'>  *</div><div class='del'>- * ==== Exceptions</div><div class='add'>+ *  - String: converted by parsing if it contains an integer or floating-point literal;</div><div class='add'>+ *    leading and trailing whitespace is ignored:</div><div class='ctx'>  *</div><div class='del'>- * TypeError:: If the +initial+ type is neither Integer, Float,</div><div class='del'>- *             Rational, nor BigDecimal, this exception is raised.</div><div class='add'>+ *      # String does not require ndigits; ignored if given.</div><div class='add'>+ *      BigDecimal('2')     # =&gt; 0.2e1</div><div class='add'>+ *      BigDecimal('2.0')   # =&gt; 0.2e1</div><div class='add'>+ *      BigDecimal('0.2e1') # =&gt; 0.2e1</div><div class='add'>+ *      BigDecimal(' 2.0 ') # =&gt; 0.2e1</div><div class='ctx'>  *</div><div class='del'>- * TypeError:: If the +digits+ is not an Integer, this exception is raised.</div><div class='add'>+ *  - Other type that responds to method &lt;tt&gt;:to_str&lt;/tt&gt;:</div><div class='add'>+ *    first converted to a string, then converted to a \BigDecimal, as above.</div><div class='ctx'>  *</div><div class='del'>- * ArgumentError:: If +initial+ is a Float, and the +digits+ is larger than</div><div class='del'>- *                 Float::DIG + 1, this exception is raised.</div><div class='add'>+ *  - Other type:</div><div class='add'>+ *</div><div class='add'>+ *    - Raises an exception if keyword argument +exception+ is +true+.</div><div class='add'>+ *    - Returns +nil+ if keyword argument +exception+ is +true+.</div><div class='add'>+ *</div><div class='add'>+ *  Raises an exception if +value+ evaluates to a Float</div><div class='add'>+ *  and +digits+ is larger than Float::DIG + 1.</div><div class='ctx'>  *</div><div class='del'>- * ArgumentError:: If the +initial+ is a Float or Rational, and the +digits+</div><div class='del'>- *                 value is omitted, this exception is raised.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> f_BigDecimal(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    ENTER(1);</div><div class='del'>-    Real *pv;</div><div class='del'>-    VALUE obj;</div><div class='add'>+    VALUE val, digs_v, opts = Qnil;</div><div class='add'>+    argc = rb_scan_args(argc, argv, "11:", &amp;val, &amp;digs_v, &amp;opts);</div><div class='add'>+    int exception = opts_exception_p(opts);</div><div class='add'>+</div><div class='add'>+    size_t digs = SIZE_MAX; /* this means digs is omitted */</div><div class='add'>+    if (argc &gt; 1) {</div><div class='add'>+        digs_v = rb_to_int(digs_v);</div><div class='add'>+        if (FIXNUM_P(digs_v)) {</div><div class='add'>+            long n = FIX2LONG(digs_v);</div><div class='add'>+            if (n &lt; 0)</div><div class='add'>+                goto negative_digs;</div><div class='add'>+            digs = (size_t)n;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (RBIGNUM_NEGATIVE_P(digs_v)) {</div><div class='add'>+              negative_digs:</div><div class='add'>+                if (!exception)</div><div class='add'>+                    return Qnil;</div><div class='add'>+                rb_raise(rb_eArgError, "negative precision");</div><div class='add'>+            }</div><div class='add'>+            digs = NUM2SIZET(digs_v);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    obj = TypedData_Wrap_Struct(rb_cBigDecimal, &amp;BigDecimal_data_type, 0);</div><div class='del'>-    pv = BigDecimal_new(argc, argv);</div><div class='del'>-    if (pv == NULL) return Qnil;</div><div class='del'>-    SAVE(pv);</div><div class='del'>-    if (ToValue(pv)) pv = VpCopy(NULL, pv);</div><div class='del'>-    RTYPEDDATA_DATA(obj) = pv;</div><div class='del'>-    RB_OBJ_FREEZE(obj);</div><div class='del'>-    return pv-&gt;obj = obj;</div><div class='add'>+    return rb_convert_to_BigDecimal(val, digs, exception);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_s_interpret_loosely(VALUE klass, VALUE str)</div><div class='add'>+{</div><div class='add'>+    char const *c_str = StringValueCStr(str);</div><div class='add'>+    Real *vp = VpNewRbClass(0, c_str, klass, false, true);</div><div class='add'>+    if (!vp)</div><div class='add'>+        return Qnil;</div><div class='add'>+    else</div><div class='add'>+        return VpCheckGetValue(vp);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'>  /* call-seq:</div><div class='hunk'>@@ -2731,7 +3776,7 @@ static VALUE</div><div class='ctx'> BigDecimal_limit(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     VALUE  nFig;</div><div class='del'>-    VALUE  nCur = INT2NUM(VpGetPrecLimit());</div><div class='add'>+    VALUE  nCur = SIZET2NUM(VpGetPrecLimit());</div><div class='ctx'> </div><div class='ctx'>     if (rb_scan_args(argc, argv, "01", &amp;nFig) == 1) {</div><div class='ctx'> 	int nf;</div><div class='hunk'>@@ -2747,8 +3792,10 @@ BigDecimal_limit(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /* Returns the sign of the value.</div><div class='ctx'>  *</div><div class='del'>- * Returns a positive value if &gt; 0, a negative value if &lt; 0, and a</div><div class='del'>- * zero if == 0.</div><div class='add'>+ * Returns a positive value if &gt; 0, a negative value if &lt; 0.</div><div class='add'>+ * It behaves the same with zeros -</div><div class='add'>+ * it returns a positive value for a positive zero (BigDecimal('0')) and</div><div class='add'>+ * a negative value for a negative zero (BigDecimal('-0')).</div><div class='ctx'>  *</div><div class='ctx'>  * The specific value returned indicates the type and sign of the BigDecimal,</div><div class='ctx'>  * as follows:</div><div class='hunk'>@@ -2896,7 +3943,7 @@ BigMath_s_exp(VALUE klass, VALUE x, VALUE vprec)</div><div class='ctx'> 	infinite = isinf(flo);</div><div class='ctx'> 	nan = isnan(flo);</div><div class='ctx'> 	if (!infinite &amp;&amp; !nan) {</div><div class='del'>-	    vx = GetVpValueWithPrec(x, DBL_DIG+1, 0);</div><div class='add'>+	    vx = GetVpValueWithPrec(x, 0, 0);</div><div class='ctx'> 	}</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='hunk'>@@ -2909,35 +3956,37 @@ BigMath_s_exp(VALUE klass, VALUE x, VALUE vprec)</div><div class='ctx'>     }</div><div class='ctx'>     if (infinite) {</div><div class='ctx'> 	if (negative) {</div><div class='del'>-	    return ToValue(GetVpValueWithPrec(INT2FIX(0), prec, 1));</div><div class='add'>+            return VpCheckGetValue(GetVpValueWithPrec(INT2FIX(0), prec, 1));</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='del'>-	    Real* vy;</div><div class='del'>-	    vy = VpCreateRbObject(prec, "#0");</div><div class='add'>+	    Real* vy = NewZeroWrapNolimit(1, prec);</div><div class='ctx'> 	    VpSetInf(vy, VP_SIGN_POSITIVE_INFINITE);</div><div class='ctx'> 	    RB_GC_GUARD(vy-&gt;obj);</div><div class='del'>-	    return ToValue(vy);</div><div class='add'>+            return VpCheckGetValue(vy);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     else if (nan) {</div><div class='del'>-	Real* vy;</div><div class='del'>-	vy = VpCreateRbObject(prec, "#0");</div><div class='del'>-	VpSetNaN(vy);</div><div class='del'>-	RB_GC_GUARD(vy-&gt;obj);</div><div class='del'>-	return ToValue(vy);</div><div class='add'>+        Real* vy = NewZeroWrapNolimit(1, prec);</div><div class='add'>+        VpSetNaN(vy);</div><div class='add'>+        RB_GC_GUARD(vy-&gt;obj);</div><div class='add'>+        return VpCheckGetValue(vy);</div><div class='ctx'>     }</div><div class='ctx'>     else if (vx == NULL) {</div><div class='ctx'> 	cannot_be_coerced_into_BigDecimal(rb_eArgError, x);</div><div class='ctx'>     }</div><div class='ctx'>     x = vx-&gt;obj;</div><div class='ctx'> </div><div class='del'>-    n = prec + rmpd_double_figures();</div><div class='add'>+    n = prec + BIGDECIMAL_DOUBLE_FIGURES;</div><div class='ctx'>     negative = BIGDECIMAL_NEGATIVE_P(vx);</div><div class='ctx'>     if (negative) {</div><div class='add'>+        VALUE x_zero = INT2NUM(1);</div><div class='add'>+        VALUE x_copy = f_BigDecimal(1, &amp;x_zero, klass);</div><div class='add'>+        x = BigDecimal_initialize_copy(x_copy, x);</div><div class='add'>+        vx = DATA_PTR(x);</div><div class='ctx'> 	VpSetSign(vx, 1);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    one = ToValue(VpCreateRbObject(1, "1"));</div><div class='add'>+    one = VpCheckGetValue(NewOneWrapLimited(1, 1));</div><div class='ctx'>     y   = one;</div><div class='ctx'>     d   = y;</div><div class='ctx'>     i   = 1;</div><div class='hunk'>@@ -2952,8 +4001,8 @@ BigMath_s_exp(VALUE klass, VALUE x, VALUE vprec)</div><div class='ctx'> 	if (m &lt;= 0) {</div><div class='ctx'> 	    break;</div><div class='ctx'> 	}</div><div class='del'>-	else if ((size_t)m &lt; rmpd_double_figures()) {</div><div class='del'>-	    m = rmpd_double_figures();</div><div class='add'>+	else if ((size_t)m &lt; BIGDECIMAL_DOUBLE_FIGURES) {</div><div class='add'>+	    m = BIGDECIMAL_DOUBLE_FIGURES;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='ctx'> 	d = BigDecimal_mult(d, x);                             /* d &lt;- d * x */</div><div class='hunk'>@@ -3045,7 +4094,7 @@ get_vp_value:</div><div class='ctx'> 	infinite = isinf(flo);</div><div class='ctx'> 	nan = isnan(flo);</div><div class='ctx'> 	if (!zero &amp;&amp; !negative &amp;&amp; !infinite &amp;&amp; !nan) {</div><div class='del'>-	    vx = GetVpValueWithPrec(x, DBL_DIG+1, 1);</div><div class='add'>+	    vx = GetVpValueWithPrec(x, 0, 1);</div><div class='ctx'> 	}</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='hunk'>@@ -3064,18 +4113,16 @@ get_vp_value:</div><div class='ctx'> 	break;</div><div class='ctx'>     }</div><div class='ctx'>     if (infinite &amp;&amp; !negative) {</div><div class='del'>-	Real* vy;</div><div class='del'>-	vy = VpCreateRbObject(prec, "#0");</div><div class='add'>+        Real *vy = NewZeroWrapNolimit(1, prec);</div><div class='ctx'> 	RB_GC_GUARD(vy-&gt;obj);</div><div class='ctx'> 	VpSetInf(vy, VP_SIGN_POSITIVE_INFINITE);</div><div class='del'>-	return ToValue(vy);</div><div class='add'>+        return VpCheckGetValue(vy);</div><div class='ctx'>     }</div><div class='ctx'>     else if (nan) {</div><div class='del'>-	Real* vy;</div><div class='del'>-	vy = VpCreateRbObject(prec, "#0");</div><div class='add'>+	Real* vy = NewZeroWrapNolimit(1, prec);</div><div class='ctx'> 	RB_GC_GUARD(vy-&gt;obj);</div><div class='ctx'> 	VpSetNaN(vy);</div><div class='del'>-	return ToValue(vy);</div><div class='add'>+        return VpCheckGetValue(vy);</div><div class='ctx'>     }</div><div class='ctx'>     else if (zero || negative) {</div><div class='ctx'> 	rb_raise(rb_eMathDomainError,</div><div class='hunk'>@@ -3084,18 +4131,18 @@ get_vp_value:</div><div class='ctx'>     else if (vx == NULL) {</div><div class='ctx'> 	cannot_be_coerced_into_BigDecimal(rb_eArgError, x);</div><div class='ctx'>     }</div><div class='del'>-    x = ToValue(vx);</div><div class='add'>+    x = VpCheckGetValue(vx);</div><div class='ctx'> </div><div class='del'>-    RB_GC_GUARD(one) = ToValue(VpCreateRbObject(1, "1"));</div><div class='del'>-    RB_GC_GUARD(two) = ToValue(VpCreateRbObject(1, "2"));</div><div class='add'>+    RB_GC_GUARD(one) = VpCheckGetValue(NewOneWrapLimited(1, 1));</div><div class='add'>+    RB_GC_GUARD(two) = VpCheckGetValue(VpCreateRbObject(1, "2", true));</div><div class='ctx'> </div><div class='del'>-    n = prec + rmpd_double_figures();</div><div class='add'>+    n = prec + BIGDECIMAL_DOUBLE_FIGURES;</div><div class='ctx'>     RB_GC_GUARD(vn) = SSIZET2NUM(n);</div><div class='ctx'>     expo = VpExponent10(vx);</div><div class='ctx'>     if (expo &lt; 0 || expo &gt;= 3) {</div><div class='ctx'> 	char buf[DECIMAL_SIZE_OF_BITS(SIZEOF_VALUE * CHAR_BIT) + 4];</div><div class='ctx'> 	snprintf(buf, sizeof(buf), "1E%"PRIdVALUE, -expo);</div><div class='del'>-	x = BigDecimal_mult2(x, ToValue(VpCreateRbObject(1, buf)), vn);</div><div class='add'>+        x = BigDecimal_mult2(x, VpCheckGetValue(VpCreateRbObject(1, buf, true)), vn);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	expo = 0;</div><div class='hunk'>@@ -3113,8 +4160,8 @@ get_vp_value:</div><div class='ctx'> 	if (m &lt;= 0) {</div><div class='ctx'> 	    break;</div><div class='ctx'> 	}</div><div class='del'>-	else if ((size_t)m &lt; rmpd_double_figures()) {</div><div class='del'>-	    m = rmpd_double_figures();</div><div class='add'>+	else if ((size_t)m &lt; BIGDECIMAL_DOUBLE_FIGURES) {</div><div class='add'>+	    m = BIGDECIMAL_DOUBLE_FIGURES;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='ctx'> 	x = BigDecimal_mult2(x2, x, vn);</div><div class='hunk'>@@ -3127,7 +4174,7 @@ get_vp_value:</div><div class='ctx'>     if (expo != 0) {</div><div class='ctx'> 	VALUE log10, vexpo, dy;</div><div class='ctx'> 	log10 = BigMath_s_log(klass, INT2FIX(10), vprec);</div><div class='del'>-	vexpo = ToValue(GetVpValue(SSIZET2NUM(expo), 1));</div><div class='add'>+        vexpo = VpCheckGetValue(GetVpValue(SSIZET2NUM(expo), 1));</div><div class='ctx'> 	dy = BigDecimal_mult(log10, vexpo);</div><div class='ctx'> 	y = BigDecimal_add(y, dy);</div><div class='ctx'>     }</div><div class='hunk'>@@ -3135,18 +4182,44 @@ get_vp_value:</div><div class='ctx'>     return y;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rmpd_util_str_to_d(VALUE str)</div><div class='add'>+static VALUE BIGDECIMAL_NAN = Qnil;</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_nan(void)</div><div class='add'>+{</div><div class='add'>+    return BIGDECIMAL_NAN;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE BIGDECIMAL_POSITIVE_INFINITY = Qnil;</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_positive_infinity(void)</div><div class='add'>+{</div><div class='add'>+    return BIGDECIMAL_POSITIVE_INFINITY;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE BIGDECIMAL_NEGATIVE_INFINITY = Qnil;</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_negative_infinity(void)</div><div class='add'>+{</div><div class='add'>+    return BIGDECIMAL_NEGATIVE_INFINITY;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE BIGDECIMAL_POSITIVE_ZERO = Qnil;</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_positive_zero(void)</div><div class='ctx'> {</div><div class='del'>-  ENTER(1);</div><div class='del'>-  char const *c_str;</div><div class='del'>-  Real *pv;</div><div class='add'>+    return BIGDECIMAL_POSITIVE_ZERO;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE BIGDECIMAL_NEGATIVE_ZERO = Qnil;</div><div class='ctx'> </div><div class='del'>-  c_str = StringValueCStr(str);</div><div class='del'>-  GUARD_OBJ(pv, VpAlloc(0, c_str, 0, 1));</div><div class='del'>-  pv-&gt;obj = TypedData_Wrap_Struct(rb_cBigDecimal, &amp;BigDecimal_data_type, pv);</div><div class='del'>-  RB_OBJ_FREEZE(pv-&gt;obj);</div><div class='del'>-  return pv-&gt;obj;</div><div class='add'>+static VALUE</div><div class='add'>+BigDecimal_negative_zero(void)</div><div class='add'>+{</div><div class='add'>+    return BIGDECIMAL_NEGATIVE_ZERO;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Document-class: BigDecimal</div><div class='hunk'>@@ -3192,6 +4265,18 @@ rmpd_util_str_to_d(VALUE str)</div><div class='ctx'>  *</div><div class='ctx'>  *	(1.2 - 1.0) == 0.2 #=&gt; false</div><div class='ctx'>  *</div><div class='add'>+ * == A Note About Precision</div><div class='add'>+ *</div><div class='add'>+ * For a calculation using a \BigDecimal and another +value+,</div><div class='add'>+ * the precision of the result depends on the type of +value+:</div><div class='add'>+ *</div><div class='add'>+ * - If +value+ is a \Float,</div><div class='add'>+ *   the precision is Float::DIG + 1.</div><div class='add'>+ * - If +value+ is a \Rational, the precision is larger than Float::DIG + 1.</div><div class='add'>+ * - If +value+ is a \BigDecimal, the precision is +value+'s precision in the</div><div class='add'>+ *   internal representation, which is platform-dependent.</div><div class='add'>+ * - If +value+ is other object, the precision is determined by the result of +BigDecimal(value)+.</div><div class='add'>+ *</div><div class='ctx'>  * == Special features of accurate decimal arithmetic</div><div class='ctx'>  *</div><div class='ctx'>  * Because BigDecimal is more accurate than normal binary floating point</div><div class='hunk'>@@ -3277,6 +4362,9 @@ rmpd_util_str_to_d(VALUE str)</div><div class='ctx'> void</div><div class='ctx'> Init_bigdecimal(void)</div><div class='ctx'> {</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='ctx'>     VALUE arg;</div><div class='ctx'> </div><div class='ctx'>     id_BigDecimal_exception_mode = rb_intern_const("BigDecimal.exception_mode");</div><div class='hunk'>@@ -3293,8 +4381,9 @@ Init_bigdecimal(void)</div><div class='ctx'>     rb_define_global_function("BigDecimal", f_BigDecimal, -1);</div><div class='ctx'> </div><div class='ctx'>     /* Class methods */</div><div class='del'>-    rb_undef_method(CLASS_OF(rb_cBigDecimal), "allocate");</div><div class='add'>+    rb_undef_alloc_func(rb_cBigDecimal);</div><div class='ctx'>     rb_undef_method(CLASS_OF(rb_cBigDecimal), "new");</div><div class='add'>+    rb_define_singleton_method(rb_cBigDecimal, "interpret_loosely", BigDecimal_s_interpret_loosely, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cBigDecimal, "mode", BigDecimal_mode, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cBigDecimal, "limit", BigDecimal_limit, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cBigDecimal, "double_fig", BigDecimal_double_fig, 0);</div><div class='hunk'>@@ -3416,17 +4505,41 @@ Init_bigdecimal(void)</div><div class='ctx'>     /* -3: Indicates that a value is negative and infinite. See BigDecimal.sign. */</div><div class='ctx'>     rb_define_const(rb_cBigDecimal, "SIGN_NEGATIVE_INFINITE", INT2FIX(VP_SIGN_NEGATIVE_INFINITE));</div><div class='ctx'> </div><div class='del'>-    arg = rb_str_new2("+Infinity");</div><div class='add'>+    /* Positive zero value. */</div><div class='add'>+    arg = rb_str_new2("+0");</div><div class='add'>+    BIGDECIMAL_POSITIVE_ZERO = f_BigDecimal(1, &amp;arg, rb_cBigDecimal);</div><div class='add'>+    rb_gc_register_mark_object(BIGDECIMAL_POSITIVE_ZERO);</div><div class='add'>+</div><div class='add'>+    /* Negative zero value. */</div><div class='add'>+    arg = rb_str_new2("-0");</div><div class='add'>+    BIGDECIMAL_NEGATIVE_ZERO = f_BigDecimal(1, &amp;arg, rb_cBigDecimal);</div><div class='add'>+    rb_gc_register_mark_object(BIGDECIMAL_NEGATIVE_ZERO);</div><div class='add'>+</div><div class='ctx'>     /* Positive infinity value. */</div><div class='del'>-    rb_define_const(rb_cBigDecimal, "INFINITY", f_BigDecimal(1, &amp;arg, rb_cBigDecimal));</div><div class='del'>-    arg = rb_str_new2("NaN");</div><div class='add'>+    arg = rb_str_new2("+Infinity");</div><div class='add'>+    BIGDECIMAL_POSITIVE_INFINITY = f_BigDecimal(1, &amp;arg, rb_cBigDecimal);</div><div class='add'>+    rb_gc_register_mark_object(BIGDECIMAL_POSITIVE_INFINITY);</div><div class='add'>+</div><div class='add'>+    /* Negative infinity value. */</div><div class='add'>+    arg = rb_str_new2("-Infinity");</div><div class='add'>+    BIGDECIMAL_NEGATIVE_INFINITY = f_BigDecimal(1, &amp;arg, rb_cBigDecimal);</div><div class='add'>+    rb_gc_register_mark_object(BIGDECIMAL_NEGATIVE_INFINITY);</div><div class='add'>+</div><div class='ctx'>     /* 'Not a Number' value. */</div><div class='del'>-    rb_define_const(rb_cBigDecimal, "NAN", f_BigDecimal(1, &amp;arg, rb_cBigDecimal));</div><div class='add'>+    arg = rb_str_new2("NaN");</div><div class='add'>+    BIGDECIMAL_NAN = f_BigDecimal(1, &amp;arg, rb_cBigDecimal);</div><div class='add'>+    rb_gc_register_mark_object(BIGDECIMAL_NAN);</div><div class='ctx'> </div><div class='add'>+    /* Special value constants */</div><div class='add'>+    rb_define_const(rb_cBigDecimal, "INFINITY", BIGDECIMAL_POSITIVE_INFINITY);</div><div class='add'>+    rb_define_const(rb_cBigDecimal, "NAN", BIGDECIMAL_NAN);</div><div class='ctx'> </div><div class='ctx'>     /* instance methods */</div><div class='del'>-    rb_define_method(rb_cBigDecimal, "initialize_copy", BigDecimal_initialize_copy, 1);</div><div class='ctx'>     rb_define_method(rb_cBigDecimal, "precs", BigDecimal_prec, 0);</div><div class='add'>+    rb_define_method(rb_cBigDecimal, "precision", BigDecimal_precision, 0);</div><div class='add'>+    rb_define_method(rb_cBigDecimal, "scale", BigDecimal_scale, 0);</div><div class='add'>+    rb_define_method(rb_cBigDecimal, "precision_scale", BigDecimal_precision_scale, 0);</div><div class='add'>+    rb_define_method(rb_cBigDecimal, "n_significant_digits", BigDecimal_n_significant_digits, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cBigDecimal, "add", BigDecimal_add2, 2);</div><div class='ctx'>     rb_define_method(rb_cBigDecimal, "sub", BigDecimal_sub2, 2);</div><div class='hunk'>@@ -3444,7 +4557,7 @@ Init_bigdecimal(void)</div><div class='ctx'>     rb_define_method(rb_cBigDecimal, "-@", BigDecimal_neg, 0);</div><div class='ctx'>     rb_define_method(rb_cBigDecimal, "*", BigDecimal_mult, 1);</div><div class='ctx'>     rb_define_method(rb_cBigDecimal, "/", BigDecimal_div, 1);</div><div class='del'>-    rb_define_method(rb_cBigDecimal, "quo", BigDecimal_div, 1);</div><div class='add'>+    rb_define_method(rb_cBigDecimal, "quo", BigDecimal_quo, -1);</div><div class='ctx'>     rb_define_method(rb_cBigDecimal, "%", BigDecimal_mod, 1);</div><div class='ctx'>     rb_define_method(rb_cBigDecimal, "modulo", BigDecimal_mod, 1);</div><div class='ctx'>     rb_define_method(rb_cBigDecimal, "remainder", BigDecimal_remainder, 1);</div><div class='hunk'>@@ -3485,20 +4598,31 @@ Init_bigdecimal(void)</div><div class='ctx'>     rb_define_singleton_method(rb_mBigMath, "exp", BigMath_s_exp, 2);</div><div class='ctx'>     rb_define_singleton_method(rb_mBigMath, "log", BigMath_s_log, 2);</div><div class='ctx'> </div><div class='del'>-    id_up = rb_intern_const("up");</div><div class='del'>-    id_down = rb_intern_const("down");</div><div class='del'>-    id_truncate = rb_intern_const("truncate");</div><div class='del'>-    id_half_up = rb_intern_const("half_up");</div><div class='del'>-    id_default = rb_intern_const("default");</div><div class='del'>-    id_half_down = rb_intern_const("half_down");</div><div class='del'>-    id_half_even = rb_intern_const("half_even");</div><div class='del'>-    id_banker = rb_intern_const("banker");</div><div class='del'>-    id_ceiling = rb_intern_const("ceiling");</div><div class='del'>-    id_ceil = rb_intern_const("ceil");</div><div class='del'>-    id_floor = rb_intern_const("floor");</div><div class='add'>+#define ROUNDING_MODE(i, name, value) \</div><div class='add'>+    id_##name = rb_intern_const(#name); \</div><div class='add'>+    rbd_rounding_modes[i].id   = id_##name; \</div><div class='add'>+    rbd_rounding_modes[i].mode = value;</div><div class='add'>+</div><div class='add'>+    ROUNDING_MODE(0, up,        RBD_ROUND_UP);</div><div class='add'>+    ROUNDING_MODE(1, down,      RBD_ROUND_DOWN);</div><div class='add'>+    ROUNDING_MODE(2, half_up,   RBD_ROUND_HALF_UP);</div><div class='add'>+    ROUNDING_MODE(3, half_down, RBD_ROUND_HALF_DOWN);</div><div class='add'>+    ROUNDING_MODE(4, ceil,      RBD_ROUND_CEIL);</div><div class='add'>+    ROUNDING_MODE(5, floor,     RBD_ROUND_FLOOR);</div><div class='add'>+    ROUNDING_MODE(6, half_even, RBD_ROUND_HALF_EVEN);</div><div class='add'>+</div><div class='add'>+    ROUNDING_MODE(7,  default,   RBD_ROUND_DEFAULT);</div><div class='add'>+    ROUNDING_MODE(8,  truncate,  RBD_ROUND_TRUNCATE);</div><div class='add'>+    ROUNDING_MODE(9,  banker,    RBD_ROUND_BANKER);</div><div class='add'>+    ROUNDING_MODE(10, ceiling,   RBD_ROUND_CEILING);</div><div class='add'>+</div><div class='add'>+#undef ROUNDING_MODE</div><div class='add'>+</div><div class='ctx'>     id_to_r = rb_intern_const("to_r");</div><div class='ctx'>     id_eq = rb_intern_const("==");</div><div class='ctx'>     id_half = rb_intern_const("half");</div><div class='add'>+</div><div class='add'>+    (void)VPrint;  /* suppress unused warning */</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -3518,7 +4642,7 @@ static int gfCheckVal = 1;      /* Value checking flag in VpNmlz()  */</div><div class='ctx'> #endif /* BIGDECIMAL_DEBUG */</div><div class='ctx'> </div><div class='ctx'> static Real *VpConstOne;    /* constant 1.0 */</div><div class='del'>-static Real *VpPt5;        /* constant 0.5 */</div><div class='add'>+static Real *VpConstPt5;    /* constant 0.5 */</div><div class='ctx'> #define maxnr 100UL    /* Maximum iterations for calculating sqrt. */</div><div class='ctx'>                 /* used in VpSqrt() */</div><div class='ctx'> </div><div class='hunk'>@@ -3535,65 +4659,25 @@ enum op_sw {</div><div class='ctx'> </div><div class='ctx'> static int VpIsDefOP(Real *c, Real *a, Real *b, enum op_sw sw);</div><div class='ctx'> static int AddExponent(Real *a, SIGNED_VALUE n);</div><div class='del'>-static BDIGIT VpAddAbs(Real *a,Real *b,Real *c);</div><div class='del'>-static BDIGIT VpSubAbs(Real *a,Real *b,Real *c);</div><div class='del'>-static size_t VpSetPTR(Real *a, Real *b, Real *c, size_t *a_pos, size_t *b_pos, size_t *c_pos, BDIGIT *av, BDIGIT *bv);</div><div class='add'>+static DECDIG VpAddAbs(Real *a,Real *b,Real *c);</div><div class='add'>+static DECDIG VpSubAbs(Real *a,Real *b,Real *c);</div><div class='add'>+static size_t VpSetPTR(Real *a, Real *b, Real *c, size_t *a_pos, size_t *b_pos, size_t *c_pos, DECDIG *av, DECDIG *bv);</div><div class='ctx'> static int VpNmlz(Real *a);</div><div class='ctx'> static void VpFormatSt(char *psz, size_t fFmt);</div><div class='ctx'> static int VpRdup(Real *m, size_t ind_m);</div><div class='ctx'> </div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='add'>+# ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+#  error Need to make rewiting gnAlloc atomic</div><div class='add'>+# endif</div><div class='ctx'> static int gnAlloc = 0; /* Memory allocation counter */</div><div class='ctx'> #endif /* BIGDECIMAL_DEBUG */</div><div class='ctx'> </div><div class='del'>-VP_EXPORT void *</div><div class='del'>-VpMemAlloc(size_t mb)</div><div class='del'>-{</div><div class='del'>-    void *p = xmalloc(mb);</div><div class='del'>-    if (!p) {</div><div class='del'>-	VpException(VP_EXCEPTION_MEMORY, "failed to allocate memory", 1);</div><div class='del'>-    }</div><div class='del'>-    memset(p, 0, mb);</div><div class='del'>-#ifdef BIGDECIMAL_DEBUG</div><div class='del'>-    gnAlloc++; /* Count allocation call */</div><div class='del'>-#endif /* BIGDECIMAL_DEBUG */</div><div class='del'>-    return p;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-VP_EXPORT void *</div><div class='del'>-VpMemRealloc(void *ptr, size_t mb)</div><div class='del'>-{</div><div class='del'>-    void *p = xrealloc(ptr, mb);</div><div class='del'>-    if (!p) {</div><div class='del'>-	VpException(VP_EXCEPTION_MEMORY, "failed to allocate memory", 1);</div><div class='del'>-    }</div><div class='del'>-    return p;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-VP_EXPORT void</div><div class='del'>-VpFree(Real *pv)</div><div class='del'>-{</div><div class='del'>-    if (pv != NULL) {</div><div class='del'>-	xfree(pv);</div><div class='del'>-#ifdef BIGDECIMAL_DEBUG</div><div class='del'>-	gnAlloc--; /* Decrement allocation count */</div><div class='del'>-	if (gnAlloc == 0) {</div><div class='del'>-	    printf(" *************** All memories allocated freed ****************\n");</div><div class='del'>-	    /*getchar();*/</div><div class='del'>-	}</div><div class='del'>-	if (gnAlloc &lt;  0) {</div><div class='del'>-	    printf(" ??????????? Too many memory free calls(%d) ?????????????\n", gnAlloc);</div><div class='del'>-	    /*getchar();*/</div><div class='del'>-	}</div><div class='del'>-#endif /* BIGDECIMAL_DEBUG */</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  * EXCEPTION Handling.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-#define rmpd_set_thread_local_exception_mode(mode) \</div><div class='add'>+#define bigdecimal_set_thread_local_exception_mode(mode) \</div><div class='ctx'>     rb_thread_local_aset( \</div><div class='ctx'> 	rb_thread_current(), \</div><div class='ctx'> 	id_BigDecimal_exception_mode, \</div><div class='hunk'>@@ -3609,8 +4693,8 @@ VpGetException (void)</div><div class='ctx'>     );</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(vmode)) {</div><div class='del'>-	rmpd_set_thread_local_exception_mode(RMPD_EXCEPTION_MODE_DEFAULT);</div><div class='del'>-	return RMPD_EXCEPTION_MODE_DEFAULT;</div><div class='add'>+	bigdecimal_set_thread_local_exception_mode(BIGDECIMAL_EXCEPTION_MODE_DEFAULT);</div><div class='add'>+	return BIGDECIMAL_EXCEPTION_MODE_DEFAULT;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return NUM2USHORT(vmode);</div><div class='hunk'>@@ -3619,20 +4703,41 @@ VpGetException (void)</div><div class='ctx'> static void</div><div class='ctx'> VpSetException(unsigned short f)</div><div class='ctx'> {</div><div class='del'>-    rmpd_set_thread_local_exception_mode(f);</div><div class='add'>+    bigdecimal_set_thread_local_exception_mode(f);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+VpCheckException(Real *p, bool always)</div><div class='add'>+{</div><div class='add'>+    if (VpIsNaN(p)) {</div><div class='add'>+        VpException(VP_EXCEPTION_NaN, "Computation results in 'NaN' (Not a Number)", always);</div><div class='add'>+    }</div><div class='add'>+    else if (VpIsPosInf(p)) {</div><div class='add'>+        VpException(VP_EXCEPTION_INFINITY, "Computation results in 'Infinity'", always);</div><div class='add'>+    }</div><div class='add'>+    else if (VpIsNegInf(p)) {</div><div class='add'>+        VpException(VP_EXCEPTION_INFINITY, "Computation results in '-Infinity'", always);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+VpCheckGetValue(Real *p)</div><div class='add'>+{</div><div class='add'>+    VpCheckException(p, false);</div><div class='add'>+    return p-&gt;obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Precision limit.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-#define rmpd_set_thread_local_precision_limit(limit) \</div><div class='add'>+#define bigdecimal_set_thread_local_precision_limit(limit) \</div><div class='ctx'>     rb_thread_local_aset( \</div><div class='ctx'> 	rb_thread_current(), \</div><div class='ctx'> 	id_BigDecimal_precision_limit, \</div><div class='ctx'> 	SIZET2NUM(limit) \</div><div class='ctx'>     )</div><div class='del'>-#define RMPD_PRECISION_LIMIT_DEFAULT ((size_t)0)</div><div class='add'>+#define BIGDECIMAL_PRECISION_LIMIT_DEFAULT ((size_t)0)</div><div class='ctx'> </div><div class='ctx'> /* These 2 functions added at v1.1.7 */</div><div class='ctx'> VP_EXPORT size_t</div><div class='hunk'>@@ -3644,8 +4749,8 @@ VpGetPrecLimit(void)</div><div class='ctx'>     );</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(vlimit)) {</div><div class='del'>-	rmpd_set_thread_local_precision_limit(RMPD_PRECISION_LIMIT_DEFAULT);</div><div class='del'>-	return RMPD_PRECISION_LIMIT_DEFAULT;</div><div class='add'>+	bigdecimal_set_thread_local_precision_limit(BIGDECIMAL_PRECISION_LIMIT_DEFAULT);</div><div class='add'>+	return BIGDECIMAL_PRECISION_LIMIT_DEFAULT;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return NUM2SIZET(vlimit);</div><div class='hunk'>@@ -3655,7 +4760,7 @@ VP_EXPORT size_t</div><div class='ctx'> VpSetPrecLimit(size_t n)</div><div class='ctx'> {</div><div class='ctx'>     size_t const s = VpGetPrecLimit();</div><div class='del'>-    rmpd_set_thread_local_precision_limit(n);</div><div class='add'>+    bigdecimal_set_thread_local_precision_limit(n);</div><div class='ctx'>     return s;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3663,7 +4768,7 @@ VpSetPrecLimit(size_t n)</div><div class='ctx'>  * Rounding mode.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-#define rmpd_set_thread_local_rounding_mode(mode) \</div><div class='add'>+#define bigdecimal_set_thread_local_rounding_mode(mode) \</div><div class='ctx'>     rb_thread_local_aset( \</div><div class='ctx'> 	rb_thread_current(), \</div><div class='ctx'> 	id_BigDecimal_rounding_mode, \</div><div class='hunk'>@@ -3679,8 +4784,8 @@ VpGetRoundMode(void)</div><div class='ctx'>     );</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(vmode)) {</div><div class='del'>-	rmpd_set_thread_local_rounding_mode(RMPD_ROUNDING_MODE_DEFAULT);</div><div class='del'>-	return RMPD_ROUNDING_MODE_DEFAULT;</div><div class='add'>+	bigdecimal_set_thread_local_rounding_mode(BIGDECIMAL_ROUNDING_MODE_DEFAULT);</div><div class='add'>+	return BIGDECIMAL_ROUNDING_MODE_DEFAULT;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return NUM2USHORT(vmode);</div><div class='hunk'>@@ -3708,7 +4813,7 @@ VP_EXPORT unsigned short</div><div class='ctx'> VpSetRoundMode(unsigned short n)</div><div class='ctx'> {</div><div class='ctx'>     if (VpIsRoundMode(n)) {</div><div class='del'>-	rmpd_set_thread_local_rounding_mode(n);</div><div class='add'>+	bigdecimal_set_thread_local_rounding_mode(n);</div><div class='ctx'> 	return n;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -3785,7 +4890,7 @@ VpException(unsigned short f, const char *str,int always)</div><div class='ctx'> {</div><div class='ctx'>     unsigned short const exception_mode = VpGetException();</div><div class='ctx'> </div><div class='del'>-    if (f == VP_EXCEPTION_OP || f == VP_EXCEPTION_MEMORY) always = 1;</div><div class='add'>+    if (f == VP_EXCEPTION_OP) always = 1;</div><div class='ctx'> </div><div class='ctx'>     if (always || (exception_mode &amp; f)) {</div><div class='ctx'> 	switch(f) {</div><div class='hunk'>@@ -3797,7 +4902,6 @@ VpException(unsigned short f, const char *str,int always)</div><div class='ctx'> 	  case VP_EXCEPTION_OP:</div><div class='ctx'> 	    rb_raise(rb_eFloatDomainError, "%s", str);</div><div class='ctx'> 	    break;</div><div class='del'>-	  case VP_EXCEPTION_MEMORY:</div><div class='ctx'> 	  default:</div><div class='ctx'> 	    rb_fatal("%s", str);</div><div class='ctx'> 	}</div><div class='hunk'>@@ -3946,23 +5050,24 @@ VpNumOfChars(Real *vp,const char *pszFmt)</div><div class='ctx'>  *   that BASE is as large as possible satisfying the</div><div class='ctx'>  *   relation MaxVal &lt;= BASE*(BASE+1). Where the value</div><div class='ctx'>  *   MaxVal is the largest value which can be represented</div><div class='del'>- *   by one BDIGIT word in the computer used.</div><div class='add'>+ *   by one DECDIG word in the computer used.</div><div class='ctx'>  *</div><div class='ctx'>  * [Returns]</div><div class='del'>- * 1+DBL_DIG   ... OK</div><div class='add'>+ *   BIGDECIMAL_DOUBLE_FIGURES  ... OK</div><div class='ctx'>  */</div><div class='ctx'> VP_EXPORT size_t</div><div class='del'>-VpInit(BDIGIT BaseVal)</div><div class='add'>+VpInit(DECDIG BaseVal)</div><div class='ctx'> {</div><div class='ctx'>     /* Setup +/- Inf  NaN -0 */</div><div class='del'>-    VpGetDoubleNaN();</div><div class='del'>-    VpGetDoublePosInf();</div><div class='del'>-    VpGetDoubleNegInf();</div><div class='ctx'>     VpGetDoubleNegZero();</div><div class='ctx'> </div><div class='del'>-    /* Allocates Vp constants. */</div><div class='del'>-    VpConstOne = VpAlloc(1UL, "1", 1, 1);</div><div class='del'>-    VpPt5 = VpAlloc(1UL, ".5", 1, 1);</div><div class='add'>+    /* Const 1.0 */</div><div class='add'>+    VpConstOne = NewOneNolimit(1, 1);</div><div class='add'>+</div><div class='add'>+    /* Const 0.5 */</div><div class='add'>+    VpConstPt5 = NewOneNolimit(1, 1);</div><div class='add'>+    VpConstPt5-&gt;exponent = 0;</div><div class='add'>+    VpConstPt5-&gt;frac[0] = 5*BASE1;</div><div class='ctx'> </div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='ctx'>     gnAlloc = 0;</div><div class='hunk'>@@ -3970,16 +5075,16 @@ VpInit(BDIGIT BaseVal)</div><div class='ctx'> </div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='ctx'>     if (gfDebug) {</div><div class='del'>-	printf("VpInit: BaseVal   = %"PRIuBDIGIT"\n", BaseVal);</div><div class='del'>-	printf("\tBASE      = %"PRIuBDIGIT"\n", BASE);</div><div class='del'>-	printf("\tHALF_BASE = %"PRIuBDIGIT"\n", HALF_BASE);</div><div class='del'>-	printf("\tBASE1     = %"PRIuBDIGIT"\n", BASE1);</div><div class='del'>-	printf("\tBASE_FIG  = %u\n", BASE_FIG);</div><div class='del'>-	printf("\tDBLE_FIG  = %d\n", DBLE_FIG);</div><div class='add'>+        printf("VpInit: BaseVal = %"PRIuDECDIG"\n", BaseVal);</div><div class='add'>+        printf("\tBASE      = %"PRIuDECDIG"\n", BASE);</div><div class='add'>+        printf("\tHALF_BASE = %"PRIuDECDIG"\n", HALF_BASE);</div><div class='add'>+        printf("\tBASE1     = %"PRIuDECDIG"\n", BASE1);</div><div class='add'>+        printf("\tBASE_FIG  = %u\n", BASE_FIG);</div><div class='add'>+        printf("\tBIGDECIMAL_DOUBLE_FIGURES = %d\n", BIGDECIMAL_DOUBLE_FIGURES);</div><div class='ctx'>     }</div><div class='ctx'> #endif /* BIGDECIMAL_DEBUG */</div><div class='ctx'> </div><div class='del'>-    return rmpd_double_figures();</div><div class='add'>+    return BIGDECIMAL_DOUBLE_FIGURES;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VP_EXPORT Real *</div><div class='hunk'>@@ -4027,7 +5132,7 @@ overflow:</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> Real *</div><div class='del'>-rmpd_parse_special_string(const char *str)</div><div class='add'>+bigdecimal_parse_special_string(const char *str)</div><div class='ctx'> {</div><div class='ctx'>     static const struct {</div><div class='ctx'>         const char *str;</div><div class='hunk'>@@ -4051,7 +5156,7 @@ rmpd_parse_special_string(const char *str)</div><div class='ctx'>         p = str + table[i].len;</div><div class='ctx'>         while (*p &amp;&amp; ISSPACE(*p)) ++p;</div><div class='ctx'>         if (*p == '\0') {</div><div class='del'>-            Real *vp = VpAllocReal(1);</div><div class='add'>+            Real *vp = rbd_allocate_struct(1);</div><div class='ctx'>             vp-&gt;MaxPrec = 1;</div><div class='ctx'>             switch (table[i].sign) {</div><div class='ctx'>               default:</div><div class='hunk'>@@ -4075,11 +5180,11 @@ rmpd_parse_special_string(const char *str)</div><div class='ctx'> /*</div><div class='ctx'>  * Allocates variable.</div><div class='ctx'>  * [Input]</div><div class='del'>- *   mx ... allocation unit, if zero then mx is determined by szVal.</div><div class='del'>- *    The mx is the number of effective digits can to be stored.</div><div class='del'>- *   szVal ... value assigned(char). If szVal==NULL,then zero is assumed.</div><div class='del'>- *            If szVal[0]=='#' then Max. Prec. will not be considered(1.1.7),</div><div class='del'>- *            full precision specified by szVal is allocated.</div><div class='add'>+ *   mx ... The number of decimal digits to be allocated, if zero then mx is determined by szVal.</div><div class='add'>+ *          The mx will be the number of significant digits can to be stored.</div><div class='add'>+ *   szVal ... The value assigned(char). If szVal==NULL, then zero is assumed.</div><div class='add'>+ *             If szVal[0]=='#' then MaxPrec is not affected by the precision limit</div><div class='add'>+ *             so that the full precision specified by szVal is allocated.</div><div class='ctx'>  *</div><div class='ctx'>  * [Returns]</div><div class='ctx'>  *   Pointer to the newly allocated variable, or</div><div class='hunk'>@@ -4090,49 +5195,40 @@ VpAlloc(size_t mx, const char *szVal, int strict_p, int exc)</div><div class='ctx'> {</div><div class='ctx'>     const char *orig_szVal = szVal;</div><div class='ctx'>     size_t i, j, ni, ipf, nf, ipe, ne, dot_seen, exp_seen, nalloc;</div><div class='add'>+    size_t len;</div><div class='ctx'>     char v, *psz;</div><div class='ctx'>     int  sign=1;</div><div class='ctx'>     Real *vp = NULL;</div><div class='del'>-    size_t mf = VpGetPrecLimit();</div><div class='ctx'>     VALUE buf;</div><div class='ctx'> </div><div class='del'>-    mx = (mx + BASE_FIG - 1) / BASE_FIG;    /* Determine allocation unit. */</div><div class='del'>-    if (mx == 0) ++mx;</div><div class='del'>-</div><div class='del'>-    if (szVal) {</div><div class='del'>-        /* Skipping leading spaces */</div><div class='del'>-        while (ISSPACE(*szVal)) szVal++;</div><div class='del'>-</div><div class='del'>-        /* Processing the leading one `#` */</div><div class='del'>-        if (*szVal != '#') {</div><div class='del'>-            if (mf) {</div><div class='del'>-                mf = (mf + BASE_FIG - 1) / BASE_FIG + 2; /* Needs 1 more for div */</div><div class='del'>-                if (mx &gt; mf) {</div><div class='del'>-                    mx = mf;</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            ++szVal;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='add'>+    if (szVal == NULL) {</div><div class='ctx'>       return_zero:</div><div class='ctx'>         /* necessary to be able to store */</div><div class='ctx'>         /* at least mx digits. */</div><div class='ctx'>         /* szVal==NULL ==&gt; allocate zero value. */</div><div class='del'>-        vp = VpAllocReal(mx);</div><div class='del'>-        /* xmalloc() alway returns(or throw interruption) */</div><div class='del'>-        vp-&gt;MaxPrec = mx;    /* set max precision */</div><div class='add'>+        vp = rbd_allocate_struct(mx);</div><div class='add'>+        vp-&gt;MaxPrec = rbd_calculate_internal_digits(mx, false);  /* Must false */</div><div class='ctx'>         VpSetZero(vp, 1);    /* initialize vp to zero. */</div><div class='ctx'>         return vp;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    /* Skipping leading spaces */</div><div class='add'>+    while (ISSPACE(*szVal)) szVal++;</div><div class='add'>+</div><div class='ctx'>     /* Check on Inf &amp; NaN */</div><div class='del'>-    if ((vp = rmpd_parse_special_string(szVal)) != NULL) {</div><div class='add'>+    if ((vp = bigdecimal_parse_special_string(szVal)) != NULL) {</div><div class='ctx'>         return vp;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    /* Processing the leading one `#` */</div><div class='add'>+    if (*szVal != '#') {</div><div class='add'>+        len = rbd_calculate_internal_digits(mx, true);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        len = rbd_calculate_internal_digits(mx, false);</div><div class='add'>+        ++szVal;</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     /* Scanning digits */</div><div class='ctx'> </div><div class='ctx'>     /* A buffer for keeping scanned digits */</div><div class='hunk'>@@ -4279,7 +5375,7 @@ VpAlloc(size_t mx, const char *szVal, int strict_p, int exc)</div><div class='ctx'> </div><div class='ctx'>     psz[i] = '\0';</div><div class='ctx'> </div><div class='del'>-    if (((ni == 0 || dot_seen) &amp;&amp; nf == 0) || (exp_seen &amp;&amp; ne == 0)) {</div><div class='add'>+    if (strict_p &amp;&amp; (((ni == 0 || dot_seen) &amp;&amp; nf == 0) || (exp_seen &amp;&amp; ne == 0))) {</div><div class='ctx'>         VALUE str;</div><div class='ctx'>       invalid_value:</div><div class='ctx'>         if (!strict_p) {</div><div class='hunk'>@@ -4294,12 +5390,11 @@ VpAlloc(size_t mx, const char *szVal, int strict_p, int exc)</div><div class='ctx'> </div><div class='ctx'>     nalloc = (ni + nf + BASE_FIG - 1) / BASE_FIG + 1;    /* set effective allocation  */</div><div class='ctx'>     /* units for szVal[]  */</div><div class='del'>-    if (mx == 0) mx = 1;</div><div class='del'>-    nalloc = Max(nalloc, mx);</div><div class='del'>-    mx = nalloc;</div><div class='del'>-    vp = VpAllocReal(mx);</div><div class='del'>-    /* xmalloc() alway returns(or throw interruption) */</div><div class='del'>-    vp-&gt;MaxPrec = mx;        /* set max precision */</div><div class='add'>+    if (len == 0) len = 1;</div><div class='add'>+    nalloc = Max(nalloc, len);</div><div class='add'>+    len = nalloc;</div><div class='add'>+    vp = rbd_allocate_struct(len);</div><div class='add'>+    vp-&gt;MaxPrec = len;        /* set max precision */</div><div class='ctx'>     VpSetZero(vp, sign);</div><div class='ctx'>     VpCtoV(vp, psz, ni, psz + ipf, nf, psz + ipe, ne);</div><div class='ctx'>     rb_str_resize(buf, 0);</div><div class='hunk'>@@ -4337,7 +5432,7 @@ VpAsgn(Real *c, Real *a, int isw)</div><div class='ctx'> 	VpSetSign(c, isw * VpGetSign(a));    /* set sign */</div><div class='ctx'> 	n = (a-&gt;Prec &lt; c-&gt;MaxPrec) ? (a-&gt;Prec) : (c-&gt;MaxPrec);</div><div class='ctx'> 	c-&gt;Prec = n;</div><div class='del'>-	memcpy(c-&gt;frac, a-&gt;frac, n * sizeof(BDIGIT));</div><div class='add'>+        memcpy(c-&gt;frac, a-&gt;frac, n * sizeof(DECDIG));</div><div class='ctx'> 	/* Needs round ? */</div><div class='ctx'> 	if (isw != 10) {</div><div class='ctx'> 	    /* Not in ActiveRound */</div><div class='hunk'>@@ -4368,7 +5463,7 @@ VpAddSub(Real *c, Real *a, Real *b, int operation)</div><div class='ctx'>     short sw, isw;</div><div class='ctx'>     Real *a_ptr, *b_ptr;</div><div class='ctx'>     size_t n, na, nb, i;</div><div class='del'>-    BDIGIT mrv;</div><div class='add'>+    DECDIG mrv;</div><div class='ctx'> </div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='ctx'>     if (gfDebug) {</div><div class='hunk'>@@ -4496,7 +5591,7 @@ end_if:</div><div class='ctx'>  * a and b assuming abs(a)&gt;abs(b).</div><div class='ctx'>  *   c = abs(a) + abs(b) ; where |a|&gt;=|b|</div><div class='ctx'>  */</div><div class='del'>-static BDIGIT</div><div class='add'>+static DECDIG</div><div class='ctx'> VpAddAbs(Real *a, Real *b, Real *c)</div><div class='ctx'> {</div><div class='ctx'>     size_t word_shift;</div><div class='hunk'>@@ -4506,7 +5601,7 @@ VpAddAbs(Real *a, Real *b, Real *c)</div><div class='ctx'>     size_t a_pos;</div><div class='ctx'>     size_t b_pos, b_pos_with_word_shift;</div><div class='ctx'>     size_t c_pos;</div><div class='del'>-    BDIGIT av, bv, carry, mrv;</div><div class='add'>+    DECDIG av, bv, carry, mrv;</div><div class='ctx'> </div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='ctx'>     if (gfDebug) {</div><div class='hunk'>@@ -4591,7 +5686,7 @@ Exit:</div><div class='ctx'> /*</div><div class='ctx'>  * c = abs(a) - abs(b)</div><div class='ctx'>  */</div><div class='del'>-static BDIGIT</div><div class='add'>+static DECDIG</div><div class='ctx'> VpSubAbs(Real *a, Real *b, Real *c)</div><div class='ctx'> {</div><div class='ctx'>     size_t word_shift;</div><div class='hunk'>@@ -4601,7 +5696,7 @@ VpSubAbs(Real *a, Real *b, Real *c)</div><div class='ctx'>     size_t a_pos;</div><div class='ctx'>     size_t b_pos, b_pos_with_word_shift;</div><div class='ctx'>     size_t c_pos;</div><div class='del'>-    BDIGIT av, bv, borrow, mrv;</div><div class='add'>+    DECDIG av, bv, borrow, mrv;</div><div class='ctx'> </div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='ctx'>     if (gfDebug) {</div><div class='hunk'>@@ -4708,7 +5803,7 @@ Exit:</div><div class='ctx'>  *      c_pos      =      |</div><div class='ctx'>  */</div><div class='ctx'> static size_t</div><div class='del'>-VpSetPTR(Real *a, Real *b, Real *c, size_t *a_pos, size_t *b_pos, size_t *c_pos, BDIGIT *av, BDIGIT *bv)</div><div class='add'>+VpSetPTR(Real *a, Real *b, Real *c, size_t *a_pos, size_t *b_pos, size_t *c_pos, DECDIG *av, DECDIG *bv)</div><div class='ctx'> {</div><div class='ctx'>     size_t left_word, right_word, word_shift;</div><div class='ctx'> </div><div class='hunk'>@@ -4823,8 +5918,8 @@ VpMult(Real *c, Real *a, Real *b)</div><div class='ctx'>     size_t MxIndA, MxIndB, MxIndAB, MxIndC;</div><div class='ctx'>     size_t ind_c, i, ii, nc;</div><div class='ctx'>     size_t ind_as, ind_ae, ind_bs;</div><div class='del'>-    BDIGIT carry;</div><div class='del'>-    BDIGIT_DBL s;</div><div class='add'>+    DECDIG carry;</div><div class='add'>+    DECDIG_DBL s;</div><div class='ctx'>     Real *w;</div><div class='ctx'> </div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='hunk'>@@ -4864,7 +5959,7 @@ VpMult(Real *c, Real *a, Real *b)</div><div class='ctx'> </div><div class='ctx'>     if (MxIndC &lt; MxIndAB) {    /* The Max. prec. of c &lt; Prec(a)+Prec(b) */</div><div class='ctx'> 	w = c;</div><div class='del'>-	c = VpAlloc((size_t)((MxIndAB + 1) * BASE_FIG), "#0", 1, 1);</div><div class='add'>+        c = NewZeroNolimit(1, (size_t)((MxIndAB + 1) * BASE_FIG));</div><div class='ctx'> 	MxIndC = MxIndAB;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -4872,13 +5967,13 @@ VpMult(Real *c, Real *a, Real *b)</div><div class='ctx'> </div><div class='ctx'>     c-&gt;exponent = a-&gt;exponent;    /* set exponent */</div><div class='ctx'>     if (!AddExponent(c, b-&gt;exponent)) {</div><div class='del'>-	if (w) VpFree(c);</div><div class='del'>-	return 0;</div><div class='add'>+        if (w) rbd_free_struct(c);</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'>     VpSetSign(c, VpGetSign(a) * VpGetSign(b));    /* set sign  */</div><div class='ctx'>     carry = 0;</div><div class='ctx'>     nc = ind_c = MxIndAB;</div><div class='del'>-    memset(c-&gt;frac, 0, (nc + 1) * sizeof(BDIGIT));        /* Initialize c  */</div><div class='add'>+    memset(c-&gt;frac, 0, (nc + 1) * sizeof(DECDIG));        /* Initialize c  */</div><div class='ctx'>     c-&gt;Prec = nc + 1;        /* set precision */</div><div class='ctx'>     for (nc = 0; nc &lt; MxIndAB; ++nc, --ind_c) {</div><div class='ctx'> 	if (nc &lt; MxIndB) {    /* The left triangle of the Fig. */</div><div class='hunk'>@@ -4898,15 +5993,15 @@ VpMult(Real *c, Real *a, Real *b)</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='ctx'> 	for (i = ind_as; i &lt;= ind_ae; ++i) {</div><div class='del'>-	    s = (BDIGIT_DBL)a-&gt;frac[i] * b-&gt;frac[ind_bs--];</div><div class='del'>-	    carry = (BDIGIT)(s / BASE);</div><div class='del'>-	    s -= (BDIGIT_DBL)carry * BASE;</div><div class='del'>-	    c-&gt;frac[ind_c] += (BDIGIT)s;</div><div class='del'>-	    if (c-&gt;frac[ind_c] &gt;= BASE) {</div><div class='del'>-		s = c-&gt;frac[ind_c] / BASE;</div><div class='del'>-		carry += (BDIGIT)s;</div><div class='del'>-		c-&gt;frac[ind_c] -= (BDIGIT)(s * BASE);</div><div class='del'>-	    }</div><div class='add'>+            s = (DECDIG_DBL)a-&gt;frac[i] * b-&gt;frac[ind_bs--];</div><div class='add'>+            carry = (DECDIG)(s / BASE);</div><div class='add'>+            s -= (DECDIG_DBL)carry * BASE;</div><div class='add'>+            c-&gt;frac[ind_c] += (DECDIG)s;</div><div class='add'>+            if (c-&gt;frac[ind_c] &gt;= BASE) {</div><div class='add'>+                s = c-&gt;frac[ind_c] / BASE;</div><div class='add'>+                carry += (DECDIG)s;</div><div class='add'>+                c-&gt;frac[ind_c] -= (DECDIG)(s * BASE);</div><div class='add'>+            }</div><div class='ctx'> 	    if (carry) {</div><div class='ctx'> 		ii = ind_c;</div><div class='ctx'> 		while (ii-- &gt; 0) {</div><div class='hunk'>@@ -4923,10 +6018,10 @@ VpMult(Real *c, Real *a, Real *b)</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     if (w != NULL) {        /* free work variable */</div><div class='del'>-	VpNmlz(c);</div><div class='del'>-	VpAsgn(w, c, 1);</div><div class='del'>-	VpFree(c);</div><div class='del'>-	c = w;</div><div class='add'>+        VpNmlz(c);</div><div class='add'>+        VpAsgn(w, c, 1);</div><div class='add'>+        rbd_free_struct(c);</div><div class='add'>+        c = w;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	VpLimitRound(c,0);</div><div class='hunk'>@@ -4952,9 +6047,9 @@ VpDivd(Real *c, Real *r, Real *a, Real *b)</div><div class='ctx'>     size_t word_a, word_b, word_c, word_r;</div><div class='ctx'>     size_t i, n, ind_a, ind_b, ind_c, ind_r;</div><div class='ctx'>     size_t nLoop;</div><div class='del'>-    BDIGIT_DBL q, b1, b1p1, b1b2, b1b2p1, r1r2;</div><div class='del'>-    BDIGIT borrow, borrow1, borrow2;</div><div class='del'>-    BDIGIT_DBL qb;</div><div class='add'>+    DECDIG_DBL q, b1, b1p1, b1b2, b1b2p1, r1r2;</div><div class='add'>+    DECDIG borrow, borrow1, borrow2;</div><div class='add'>+    DECDIG_DBL qb;</div><div class='ctx'> </div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='ctx'>     if (gfDebug) {</div><div class='hunk'>@@ -4991,18 +6086,17 @@ VpDivd(Real *c, Real *r, Real *a, Real *b)</div><div class='ctx'>     word_c = c-&gt;MaxPrec;</div><div class='ctx'>     word_r = r-&gt;MaxPrec;</div><div class='ctx'> </div><div class='del'>-    ind_c = 0;</div><div class='del'>-    ind_r = 1;</div><div class='del'>-</div><div class='ctx'>     if (word_a &gt;= word_r) goto space_error;</div><div class='ctx'> </div><div class='add'>+    ind_r = 1;</div><div class='ctx'>     r-&gt;frac[0] = 0;</div><div class='ctx'>     while (ind_r &lt;= word_a) {</div><div class='ctx'> 	r-&gt;frac[ind_r] = a-&gt;frac[ind_r - 1];</div><div class='ctx'> 	++ind_r;</div><div class='ctx'>     }</div><div class='del'>-</div><div class='ctx'>     while (ind_r &lt; word_r) r-&gt;frac[ind_r++] = 0;</div><div class='add'>+</div><div class='add'>+    ind_c = 0;</div><div class='ctx'>     while (ind_c &lt; word_c) c-&gt;frac[ind_c++] = 0;</div><div class='ctx'> </div><div class='ctx'>     /* initial procedure */</div><div class='hunk'>@@ -5026,7 +6120,7 @@ VpDivd(Real *c, Real *r, Real *a, Real *b)</div><div class='ctx'> 	    ++ind_c;</div><div class='ctx'> 	    continue;</div><div class='ctx'> 	}</div><div class='del'>-	r1r2 = (BDIGIT_DBL)r-&gt;frac[ind_c] * BASE + r-&gt;frac[ind_c + 1];</div><div class='add'>+        r1r2 = (DECDIG_DBL)r-&gt;frac[ind_c] * BASE + r-&gt;frac[ind_c + 1];</div><div class='ctx'> 	if (r1r2 == b1b2) {</div><div class='ctx'> 	    /* The first two word digits is the same */</div><div class='ctx'> 	    ind_b = 2;</div><div class='hunk'>@@ -5063,17 +6157,17 @@ VpDivd(Real *c, Real *r, Real *a, Real *b)</div><div class='ctx'> 	/* The first two word digits is not the same, */</div><div class='ctx'> 	/* then compare magnitude, and divide actually. */</div><div class='ctx'> 	if (r1r2 &gt;= b1b2p1) {</div><div class='del'>-	    q = r1r2 / b1b2p1;  /* q == (BDIGIT)q  */</div><div class='del'>-	    c-&gt;frac[ind_c] += (BDIGIT)q;</div><div class='del'>-	    ind_r = b-&gt;Prec + ind_c - 1;</div><div class='del'>-	    goto sub_mult;</div><div class='add'>+            q = r1r2 / b1b2p1;  /* q == (DECDIG)q  */</div><div class='add'>+            c-&gt;frac[ind_c] += (DECDIG)q;</div><div class='add'>+            ind_r = b-&gt;Prec + ind_c - 1;</div><div class='add'>+            goto sub_mult;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='ctx'> div_b1p1:</div><div class='del'>-	if (ind_c + 1 &gt;= word_c) goto out_side;</div><div class='del'>-	q = r1r2 / b1p1;  /* q == (BDIGIT)q */</div><div class='del'>-	c-&gt;frac[ind_c + 1] += (BDIGIT)q;</div><div class='del'>-	ind_r = b-&gt;Prec + ind_c;</div><div class='add'>+        if (ind_c + 1 &gt;= word_c) goto out_side;</div><div class='add'>+        q = r1r2 / b1p1;  /* q == (DECDIG)q */</div><div class='add'>+        c-&gt;frac[ind_c + 1] += (DECDIG)q;</div><div class='add'>+        ind_r = b-&gt;Prec + ind_c;</div><div class='ctx'> </div><div class='ctx'> sub_mult:</div><div class='ctx'> 	borrow1 = borrow2 = 0;</div><div class='hunk'>@@ -5085,16 +6179,16 @@ sub_mult:</div><div class='ctx'> 	    qb = q * b-&gt;frac[ind_b];</div><div class='ctx'> 	    if (qb &lt; BASE) borrow1 = 0;</div><div class='ctx'> 	    else {</div><div class='del'>-		borrow1 = (BDIGIT)(qb / BASE);</div><div class='del'>-		qb -= (BDIGIT_DBL)borrow1 * BASE;	/* get qb &lt; BASE */</div><div class='add'>+                borrow1 = (DECDIG)(qb / BASE);</div><div class='add'>+                qb -= (DECDIG_DBL)borrow1 * BASE;	/* get qb &lt; BASE */</div><div class='ctx'> 	    }</div><div class='ctx'> 	    if(r-&gt;frac[ind_r] &lt; qb) {</div><div class='del'>-		r-&gt;frac[ind_r] += (BDIGIT)(BASE - qb);</div><div class='del'>-		borrow2 = borrow2 + borrow1 + 1;</div><div class='add'>+                r-&gt;frac[ind_r] += (DECDIG)(BASE - qb);</div><div class='add'>+                borrow2 = borrow2 + borrow1 + 1;</div><div class='ctx'> 	    }</div><div class='ctx'> 	    else {</div><div class='del'>-		r-&gt;frac[ind_r] -= (BDIGIT)qb;</div><div class='del'>-		borrow2 += borrow1;</div><div class='add'>+                r-&gt;frac[ind_r] -= (DECDIG)qb;</div><div class='add'>+                borrow2 += borrow1;</div><div class='ctx'> 	    }</div><div class='ctx'> 	    if (borrow2) {</div><div class='ctx'> 		if(r-&gt;frac[ind_r - 1] &lt; borrow2) {</div><div class='hunk'>@@ -5176,9 +6270,9 @@ VpNmlz(Real *a)</div><div class='ctx'> 	    i = 0;</div><div class='ctx'> 	    while (a-&gt;frac[i] == 0) ++i;        /* skip the first few zeros */</div><div class='ctx'> 	    if (i) {</div><div class='del'>-		a-&gt;Prec -= i;</div><div class='del'>-		if (!AddExponent(a, -(SIGNED_VALUE)i)) return 0;</div><div class='del'>-		memmove(&amp;a-&gt;frac[0], &amp;a-&gt;frac[i], a-&gt;Prec*sizeof(BDIGIT));</div><div class='add'>+                a-&gt;Prec -= i;</div><div class='add'>+                if (!AddExponent(a, -(SIGNED_VALUE)i)) return 0;</div><div class='add'>+                memmove(&amp;a-&gt;frac[0], &amp;a-&gt;frac[i], a-&gt;Prec*sizeof(DECDIG));</div><div class='ctx'> 	    }</div><div class='ctx'> 	    return 1;</div><div class='ctx'> 	}</div><div class='hunk'>@@ -5296,12 +6390,11 @@ Exit:</div><div class='ctx'>  *     Note: % must not appear more than once</div><div class='ctx'>  *    a  ... VP variable to be printed</div><div class='ctx'>  */</div><div class='del'>-#ifdef BIGDECIMAL_ENABLE_VPRINT</div><div class='ctx'> static int</div><div class='ctx'> VPrint(FILE *fp, const char *cntl_chr, Real *a)</div><div class='ctx'> {</div><div class='ctx'>     size_t i, j, nc, nd, ZeroSup, sep = 10;</div><div class='del'>-    BDIGIT m, e, nn;</div><div class='add'>+    DECDIG m, e, nn;</div><div class='ctx'> </div><div class='ctx'>     j = 0;</div><div class='ctx'>     nd = nc = 0;        /*  nd : number of digits in fraction part(every 10 digits, */</div><div class='hunk'>@@ -5309,95 +6402,94 @@ VPrint(FILE *fp, const char *cntl_chr, Real *a)</div><div class='ctx'>     /*  nc : number of characters printed  */</div><div class='ctx'>     ZeroSup = 1;        /* Flag not to print the leading zeros as 0.00xxxxEnn */</div><div class='ctx'>     while (*(cntl_chr + j)) {</div><div class='del'>-	if (*(cntl_chr + j) == '%' &amp;&amp; *(cntl_chr + j + 1) != '%') {</div><div class='del'>-	    nc = 0;</div><div class='del'>-	    if (VpIsNaN(a)) {</div><div class='del'>-		fprintf(fp, SZ_NaN);</div><div class='del'>-		nc += 8;</div><div class='del'>-	    }</div><div class='del'>-	    else if (VpIsPosInf(a)) {</div><div class='del'>-		fprintf(fp, SZ_INF);</div><div class='del'>-		nc += 8;</div><div class='del'>-	    }</div><div class='del'>-	    else if (VpIsNegInf(a)) {</div><div class='del'>-		fprintf(fp, SZ_NINF);</div><div class='del'>-		nc += 9;</div><div class='del'>-	    }</div><div class='del'>-	    else if (!VpIsZero(a)) {</div><div class='del'>-		if (BIGDECIMAL_NEGATIVE_P(a)) {</div><div class='del'>-		    fprintf(fp, "-");</div><div class='del'>-		    ++nc;</div><div class='del'>-		}</div><div class='del'>-		nc += fprintf(fp, "0.");</div><div class='del'>-		switch (*(cntl_chr + j + 1)) {</div><div class='del'>-		default:</div><div class='del'>-		    break;</div><div class='add'>+        if (*(cntl_chr + j) == '%' &amp;&amp; *(cntl_chr + j + 1) != '%') {</div><div class='add'>+            nc = 0;</div><div class='add'>+            if (VpIsNaN(a)) {</div><div class='add'>+                fprintf(fp, SZ_NaN);</div><div class='add'>+                nc += 8;</div><div class='add'>+            }</div><div class='add'>+            else if (VpIsPosInf(a)) {</div><div class='add'>+                fprintf(fp, SZ_INF);</div><div class='add'>+                nc += 8;</div><div class='add'>+            }</div><div class='add'>+            else if (VpIsNegInf(a)) {</div><div class='add'>+                fprintf(fp, SZ_NINF);</div><div class='add'>+                nc += 9;</div><div class='add'>+            }</div><div class='add'>+            else if (!VpIsZero(a)) {</div><div class='add'>+                if (BIGDECIMAL_NEGATIVE_P(a)) {</div><div class='add'>+                    fprintf(fp, "-");</div><div class='add'>+                    ++nc;</div><div class='add'>+                }</div><div class='add'>+                nc += fprintf(fp, "0.");</div><div class='add'>+                switch (*(cntl_chr + j + 1)) {</div><div class='add'>+                  default:</div><div class='add'>+                    break;</div><div class='ctx'> </div><div class='del'>-		case '0': case 'z':</div><div class='del'>-		    ZeroSup = 0;</div><div class='del'>-		    ++j;</div><div class='del'>-		    sep = cntl_chr[j] == 'z' ? RMPD_COMPONENT_FIGURES : 10;</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-		for (i = 0; i &lt; a-&gt;Prec; ++i) {</div><div class='del'>-		    m = BASE1;</div><div class='del'>-		    e = a-&gt;frac[i];</div><div class='del'>-		    while (m) {</div><div class='del'>-			nn = e / m;</div><div class='del'>-			if (!ZeroSup || nn) {</div><div class='del'>-			    nc += fprintf(fp, "%lu", (unsigned long)nn);    /* The leading zero(s) */</div><div class='del'>-			    /* as 0.00xx will not */</div><div class='del'>-			    /* be printed. */</div><div class='del'>-			    ++nd;</div><div class='del'>-			    ZeroSup = 0;    /* Set to print succeeding zeros */</div><div class='del'>-			}</div><div class='del'>-			if (nd &gt;= sep) {    /* print ' ' after every 10 digits */</div><div class='del'>-			    nd = 0;</div><div class='del'>-			    nc += fprintf(fp, " ");</div><div class='del'>-			}</div><div class='del'>-			e = e - nn * m;</div><div class='del'>-			m /= 10;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		nc += fprintf(fp, "E%"PRIdSIZE, VpExponent10(a));</div><div class='del'>-		nc += fprintf(fp, " (%"PRIdVALUE", %lu, %lu)", a-&gt;exponent, a-&gt;Prec, a-&gt;MaxPrec);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		nc += fprintf(fp, "0.0");</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ++nc;</div><div class='del'>-	    if (*(cntl_chr + j) == '\\') {</div><div class='del'>-		switch (*(cntl_chr + j + 1)) {</div><div class='del'>-		  case 'n':</div><div class='del'>-		    fprintf(fp, "\n");</div><div class='del'>-		    ++j;</div><div class='del'>-		    break;</div><div class='del'>-		  case 't':</div><div class='del'>-		    fprintf(fp, "\t");</div><div class='del'>-		    ++j;</div><div class='del'>-		    break;</div><div class='del'>-		  case 'b':</div><div class='del'>-		    fprintf(fp, "\n");</div><div class='del'>-		    ++j;</div><div class='del'>-		    break;</div><div class='del'>-		  default:</div><div class='del'>-		    fprintf(fp, "%c", *(cntl_chr + j));</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		fprintf(fp, "%c", *(cntl_chr + j));</div><div class='del'>-		if (*(cntl_chr + j) == '%') ++j;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	j++;</div><div class='add'>+                  case '0': case 'z':</div><div class='add'>+                    ZeroSup = 0;</div><div class='add'>+                    ++j;</div><div class='add'>+                    sep = cntl_chr[j] == 'z' ? BIGDECIMAL_COMPONENT_FIGURES : 10;</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+                for (i = 0; i &lt; a-&gt;Prec; ++i) {</div><div class='add'>+                    m = BASE1;</div><div class='add'>+                    e = a-&gt;frac[i];</div><div class='add'>+                    while (m) {</div><div class='add'>+                        nn = e / m;</div><div class='add'>+                        if (!ZeroSup || nn) {</div><div class='add'>+                            nc += fprintf(fp, "%lu", (unsigned long)nn);    /* The leading zero(s) */</div><div class='add'>+                            /* as 0.00xx will not */</div><div class='add'>+                            /* be printed. */</div><div class='add'>+                            ++nd;</div><div class='add'>+                            ZeroSup = 0;    /* Set to print succeeding zeros */</div><div class='add'>+                        }</div><div class='add'>+                        if (nd &gt;= sep) {    /* print ' ' after every 10 digits */</div><div class='add'>+                            nd = 0;</div><div class='add'>+                            nc += fprintf(fp, " ");</div><div class='add'>+                        }</div><div class='add'>+                        e = e - nn * m;</div><div class='add'>+                        m /= 10;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                nc += fprintf(fp, "E%"PRIdSIZE, VpExponent10(a));</div><div class='add'>+                nc += fprintf(fp, " (%"PRIdVALUE", %lu, %lu)", a-&gt;exponent, a-&gt;Prec, a-&gt;MaxPrec);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                nc += fprintf(fp, "0.0");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ++nc;</div><div class='add'>+            if (*(cntl_chr + j) == '\\') {</div><div class='add'>+                switch (*(cntl_chr + j + 1)) {</div><div class='add'>+                  case 'n':</div><div class='add'>+                    fprintf(fp, "\n");</div><div class='add'>+                    ++j;</div><div class='add'>+                    break;</div><div class='add'>+                  case 't':</div><div class='add'>+                    fprintf(fp, "\t");</div><div class='add'>+                    ++j;</div><div class='add'>+                    break;</div><div class='add'>+                  case 'b':</div><div class='add'>+                    fprintf(fp, "\n");</div><div class='add'>+                    ++j;</div><div class='add'>+                    break;</div><div class='add'>+                  default:</div><div class='add'>+                    fprintf(fp, "%c", *(cntl_chr + j));</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                fprintf(fp, "%c", *(cntl_chr + j));</div><div class='add'>+                if (*(cntl_chr + j) == '%') ++j;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        j++;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return (int)nc;</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> VpFormatSt(char *psz, size_t fFmt)</div><div class='hunk'>@@ -5442,188 +6534,254 @@ VpExponent10(Real *a)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VP_EXPORT void</div><div class='del'>-VpSzMantissa(Real *a,char *psz)</div><div class='add'>+VpSzMantissa(Real *a, char *buf, size_t buflen)</div><div class='ctx'> {</div><div class='ctx'>     size_t i, n, ZeroSup;</div><div class='del'>-    BDIGIT_DBL m, e, nn;</div><div class='add'>+    DECDIG_DBL m, e, nn;</div><div class='ctx'> </div><div class='ctx'>     if (VpIsNaN(a)) {</div><div class='del'>-	sprintf(psz, SZ_NaN);</div><div class='del'>-	return;</div><div class='add'>+        snprintf(buf, buflen, SZ_NaN);</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='ctx'>     if (VpIsPosInf(a)) {</div><div class='del'>-	sprintf(psz, SZ_INF);</div><div class='add'>+	snprintf(buf, buflen, SZ_INF);</div><div class='ctx'> 	return;</div><div class='ctx'>     }</div><div class='ctx'>     if (VpIsNegInf(a)) {</div><div class='del'>-	sprintf(psz, SZ_NINF);</div><div class='add'>+	snprintf(buf, buflen, SZ_NINF);</div><div class='ctx'> 	return;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ZeroSup = 1;        /* Flag not to print the leading zeros as 0.00xxxxEnn */</div><div class='ctx'>     if (!VpIsZero(a)) {</div><div class='del'>-	if (BIGDECIMAL_NEGATIVE_P(a)) *psz++ = '-';</div><div class='del'>-	n = a-&gt;Prec;</div><div class='del'>-	for (i = 0; i &lt; n; ++i) {</div><div class='del'>-	    m = BASE1;</div><div class='del'>-	    e = a-&gt;frac[i];</div><div class='del'>-	    while (m) {</div><div class='del'>-		nn = e / m;</div><div class='del'>-		if (!ZeroSup || nn) {</div><div class='del'>-		    sprintf(psz, "%lu", (unsigned long)nn); /* The leading zero(s) */</div><div class='del'>-		    psz += strlen(psz);</div><div class='del'>-		    /* as 0.00xx will be ignored. */</div><div class='del'>-		    ZeroSup = 0; /* Set to print succeeding zeros */</div><div class='del'>-		}</div><div class='del'>-		e = e - nn * m;</div><div class='del'>-		m /= 10;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	*psz = 0;</div><div class='del'>-	while (psz[-1] == '0') *(--psz) = 0;</div><div class='add'>+        if (BIGDECIMAL_NEGATIVE_P(a)) *buf++ = '-';</div><div class='add'>+        n = a-&gt;Prec;</div><div class='add'>+        for (i = 0; i &lt; n; ++i) {</div><div class='add'>+            m = BASE1;</div><div class='add'>+            e = a-&gt;frac[i];</div><div class='add'>+            while (m) {</div><div class='add'>+                nn = e / m;</div><div class='add'>+                if (!ZeroSup || nn) {</div><div class='add'>+                    snprintf(buf, buflen, "%lu", (unsigned long)nn); /* The leading zero(s) */</div><div class='add'>+                    buf += strlen(buf);</div><div class='add'>+                    /* as 0.00xx will be ignored. */</div><div class='add'>+                    ZeroSup = 0; /* Set to print succeeding zeros */</div><div class='add'>+                }</div><div class='add'>+                e = e - nn * m;</div><div class='add'>+                m /= 10;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        *buf = 0;</div><div class='add'>+        while (buf[-1] == '0') *(--buf) = 0;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (VpIsPosZero(a)) sprintf(psz, "0");</div><div class='del'>-	else                sprintf(psz, "-0");</div><div class='add'>+	if (VpIsPosZero(a)) snprintf(buf, buflen, "0");</div><div class='add'>+	else                snprintf(buf, buflen, "-0");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VP_EXPORT int</div><div class='del'>-VpToSpecialString(Real *a,char *psz,int fPlus)</div><div class='add'>+VpToSpecialString(Real *a, char *buf, size_t buflen, int fPlus)</div><div class='ctx'> /* fPlus = 0: default, 1: set ' ' before digits, 2: set '+' before digits. */</div><div class='ctx'> {</div><div class='ctx'>     if (VpIsNaN(a)) {</div><div class='del'>-	sprintf(psz,SZ_NaN);</div><div class='del'>-	return 1;</div><div class='add'>+        snprintf(buf, buflen, SZ_NaN);</div><div class='add'>+        return 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (VpIsPosInf(a)) {</div><div class='del'>-	if (fPlus == 1) {</div><div class='del'>-	    *psz++ = ' ';</div><div class='del'>-	}</div><div class='del'>-	else if (fPlus == 2) {</div><div class='del'>-	    *psz++ = '+';</div><div class='del'>-	}</div><div class='del'>-	sprintf(psz, SZ_INF);</div><div class='del'>-	return 1;</div><div class='add'>+        if (fPlus == 1) {</div><div class='add'>+            *buf++ = ' ';</div><div class='add'>+        }</div><div class='add'>+        else if (fPlus == 2) {</div><div class='add'>+            *buf++ = '+';</div><div class='add'>+        }</div><div class='add'>+        snprintf(buf, buflen, SZ_INF);</div><div class='add'>+        return 1;</div><div class='ctx'>     }</div><div class='ctx'>     if (VpIsNegInf(a)) {</div><div class='del'>-	sprintf(psz, SZ_NINF);</div><div class='del'>-	return 1;</div><div class='add'>+        snprintf(buf, buflen, SZ_NINF);</div><div class='add'>+        return 1;</div><div class='ctx'>     }</div><div class='ctx'>     if (VpIsZero(a)) {</div><div class='del'>-	if (VpIsPosZero(a)) {</div><div class='del'>-	    if (fPlus == 1)      sprintf(psz, " 0.0");</div><div class='del'>-	    else if (fPlus == 2) sprintf(psz, "+0.0");</div><div class='del'>-	    else                 sprintf(psz,  "0.0");</div><div class='del'>-	}</div><div class='del'>-	else                     sprintf(psz, "-0.0");</div><div class='del'>-	return 1;</div><div class='add'>+        if (VpIsPosZero(a)) {</div><div class='add'>+            if (fPlus == 1)      snprintf(buf, buflen, " 0.0");</div><div class='add'>+            else if (fPlus == 2) snprintf(buf, buflen, "+0.0");</div><div class='add'>+            else                 snprintf(buf, buflen,  "0.0");</div><div class='add'>+        }</div><div class='add'>+        else                     snprintf(buf, buflen, "-0.0");</div><div class='add'>+        return 1;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VP_EXPORT void</div><div class='del'>-VpToString(Real *a, char *psz, size_t fFmt, int fPlus)</div><div class='add'>+VpToString(Real *a, char *buf, size_t buflen, size_t fFmt, int fPlus)</div><div class='ctx'> /* fPlus = 0: default, 1: set ' ' before digits, 2: set '+' before digits. */</div><div class='ctx'> {</div><div class='ctx'>     size_t i, n, ZeroSup;</div><div class='del'>-    BDIGIT shift, m, e, nn;</div><div class='del'>-    char *pszSav = psz;</div><div class='add'>+    DECDIG shift, m, e, nn;</div><div class='add'>+    char *p = buf;</div><div class='add'>+    size_t plen = buflen;</div><div class='ctx'>     ssize_t ex;</div><div class='ctx'> </div><div class='del'>-    if (VpToSpecialString(a, psz, fPlus)) return;</div><div class='add'>+    if (VpToSpecialString(a, buf, buflen, fPlus)) return;</div><div class='ctx'> </div><div class='ctx'>     ZeroSup = 1;    /* Flag not to print the leading zeros as 0.00xxxxEnn */</div><div class='ctx'> </div><div class='del'>-    if (BIGDECIMAL_NEGATIVE_P(a)) *psz++ = '-';</div><div class='del'>-    else if (fPlus == 1)  *psz++ = ' ';</div><div class='del'>-    else if (fPlus == 2)  *psz++ = '+';</div><div class='add'>+#define ADVANCE(n) do { \</div><div class='add'>+    if (plen &lt; n) goto overflow; \</div><div class='add'>+    p += n; \</div><div class='add'>+    plen -= n; \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+    if (BIGDECIMAL_NEGATIVE_P(a)) {</div><div class='add'>+        *p = '-';</div><div class='add'>+        ADVANCE(1);</div><div class='add'>+    }</div><div class='add'>+    else if (fPlus == 1) {</div><div class='add'>+        *p = ' ';</div><div class='add'>+        ADVANCE(1);</div><div class='add'>+    }</div><div class='add'>+    else if (fPlus == 2) {</div><div class='add'>+        *p = '+';</div><div class='add'>+        ADVANCE(1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    *p = '0'; ADVANCE(1);</div><div class='add'>+    *p = '.'; ADVANCE(1);</div><div class='ctx'> </div><div class='del'>-    *psz++ = '0';</div><div class='del'>-    *psz++ = '.';</div><div class='ctx'>     n = a-&gt;Prec;</div><div class='ctx'>     for (i = 0; i &lt; n; ++i) {</div><div class='del'>-	m = BASE1;</div><div class='del'>-	e = a-&gt;frac[i];</div><div class='del'>-	while (m) {</div><div class='del'>-	    nn = e / m;</div><div class='del'>-	    if (!ZeroSup || nn) {</div><div class='del'>-		sprintf(psz, "%lu", (unsigned long)nn);    /* The reading zero(s) */</div><div class='del'>-		psz += strlen(psz);</div><div class='del'>-		/* as 0.00xx will be ignored. */</div><div class='del'>-		ZeroSup = 0;    /* Set to print succeeding zeros */</div><div class='del'>-	    }</div><div class='del'>-	    e = e - nn * m;</div><div class='del'>-	    m /= 10;</div><div class='del'>-	}</div><div class='add'>+        m = BASE1;</div><div class='add'>+        e = a-&gt;frac[i];</div><div class='add'>+        while (m) {</div><div class='add'>+            nn = e / m;</div><div class='add'>+            if (!ZeroSup || nn) {</div><div class='add'>+                /* The reading zero(s) */</div><div class='add'>+                size_t n = (size_t)snprintf(p, plen, "%lu", (unsigned long)nn);</div><div class='add'>+                if (n &gt; plen) goto overflow;</div><div class='add'>+                ADVANCE(n);</div><div class='add'>+                /* as 0.00xx will be ignored. */</div><div class='add'>+                ZeroSup = 0;    /* Set to print succeeding zeros */</div><div class='add'>+            }</div><div class='add'>+            e = e - nn * m;</div><div class='add'>+            m /= 10;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     ex = a-&gt;exponent * (ssize_t)BASE_FIG;</div><div class='ctx'>     shift = BASE1;</div><div class='ctx'>     while (a-&gt;frac[0] / shift == 0) {</div><div class='del'>-	--ex;</div><div class='del'>-	shift /= 10;</div><div class='add'>+        --ex;</div><div class='add'>+        shift /= 10;</div><div class='ctx'>     }</div><div class='del'>-    while (psz[-1] == '0') {</div><div class='del'>-	*(--psz) = 0;</div><div class='add'>+    while (p - 1 &gt; buf &amp;&amp; p[-1] == '0') {</div><div class='add'>+        *(--p) = '\0';</div><div class='add'>+        ++plen;</div><div class='ctx'>     }</div><div class='del'>-    sprintf(psz, "e%"PRIdSIZE, ex);</div><div class='del'>-    if (fFmt) VpFormatSt(pszSav, fFmt);</div><div class='add'>+    snprintf(p, plen, "e%"PRIdSIZE, ex);</div><div class='add'>+    if (fFmt) VpFormatSt(buf, fFmt);</div><div class='add'>+</div><div class='add'>+  overflow:</div><div class='add'>+    return;</div><div class='add'>+#undef ADVANCE</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VP_EXPORT void</div><div class='del'>-VpToFString(Real *a, char *psz, size_t fFmt, int fPlus)</div><div class='add'>+VpToFString(Real *a, char *buf, size_t buflen, size_t fFmt, int fPlus)</div><div class='ctx'> /* fPlus = 0: default, 1: set ' ' before digits, 2: set '+' before digits. */</div><div class='ctx'> {</div><div class='ctx'>     size_t i, n;</div><div class='del'>-    BDIGIT m, e, nn;</div><div class='del'>-    char *pszSav = psz;</div><div class='add'>+    DECDIG m, e, nn;</div><div class='add'>+    char *p = buf;</div><div class='add'>+    size_t plen = buflen;</div><div class='ctx'>     ssize_t ex;</div><div class='ctx'> </div><div class='del'>-    if (VpToSpecialString(a, psz, fPlus)) return;</div><div class='add'>+    if (VpToSpecialString(a, buf, buflen, fPlus)) return;</div><div class='add'>+</div><div class='add'>+#define ADVANCE(n) do { \</div><div class='add'>+    if (plen &lt; n) goto overflow; \</div><div class='add'>+    p += n; \</div><div class='add'>+    plen -= n; \</div><div class='add'>+} while (0)</div><div class='ctx'> </div><div class='del'>-    if (BIGDECIMAL_NEGATIVE_P(a)) *psz++ = '-';</div><div class='del'>-    else if (fPlus == 1)  *psz++ = ' ';</div><div class='del'>-    else if (fPlus == 2)  *psz++ = '+';</div><div class='add'>+</div><div class='add'>+    if (BIGDECIMAL_NEGATIVE_P(a)) {</div><div class='add'>+        *p = '-';</div><div class='add'>+        ADVANCE(1);</div><div class='add'>+    }</div><div class='add'>+    else if (fPlus == 1) {</div><div class='add'>+        *p = ' ';</div><div class='add'>+        ADVANCE(1);</div><div class='add'>+    }</div><div class='add'>+    else if (fPlus == 2) {</div><div class='add'>+        *p = '+';</div><div class='add'>+        ADVANCE(1);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     n  = a-&gt;Prec;</div><div class='ctx'>     ex = a-&gt;exponent;</div><div class='ctx'>     if (ex &lt;= 0) {</div><div class='del'>-	*psz++ = '0';*psz++ = '.';</div><div class='del'>-	while (ex &lt; 0) {</div><div class='del'>-	    for (i=0; i &lt; BASE_FIG; ++i) *psz++ = '0';</div><div class='del'>-	    ++ex;</div><div class='del'>-	}</div><div class='del'>-	ex = -1;</div><div class='add'>+        *p = '0'; ADVANCE(1);</div><div class='add'>+        *p = '.'; ADVANCE(1);</div><div class='add'>+        while (ex &lt; 0) {</div><div class='add'>+            for (i=0; i &lt; BASE_FIG; ++i) {</div><div class='add'>+                *p = '0'; ADVANCE(1);</div><div class='add'>+            }</div><div class='add'>+            ++ex;</div><div class='add'>+        }</div><div class='add'>+        ex = -1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; n; ++i) {</div><div class='del'>-	--ex;</div><div class='del'>-	if (i == 0 &amp;&amp; ex &gt;= 0) {</div><div class='del'>-	    sprintf(psz, "%lu", (unsigned long)a-&gt;frac[i]);</div><div class='del'>-	    psz += strlen(psz);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    m = BASE1;</div><div class='del'>-	    e = a-&gt;frac[i];</div><div class='del'>-	    while (m) {</div><div class='del'>-		nn = e / m;</div><div class='del'>-		*psz++ = (char)(nn + '0');</div><div class='del'>-		e = e - nn * m;</div><div class='del'>-		m /= 10;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (ex == 0) *psz++ = '.';</div><div class='add'>+        --ex;</div><div class='add'>+        if (i == 0 &amp;&amp; ex &gt;= 0) {</div><div class='add'>+            size_t n = snprintf(p, plen, "%lu", (unsigned long)a-&gt;frac[i]);</div><div class='add'>+            if (n &gt; plen) goto overflow;</div><div class='add'>+            ADVANCE(n);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            m = BASE1;</div><div class='add'>+            e = a-&gt;frac[i];</div><div class='add'>+            while (m) {</div><div class='add'>+                nn = e / m;</div><div class='add'>+                *p = (char)(nn + '0');</div><div class='add'>+                ADVANCE(1);</div><div class='add'>+                e = e - nn * m;</div><div class='add'>+                m /= 10;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (ex == 0) {</div><div class='add'>+            *p = '.';</div><div class='add'>+            ADVANCE(1);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     while (--ex&gt;=0) {</div><div class='del'>-	m = BASE;</div><div class='del'>-	while (m /= 10) *psz++ = '0';</div><div class='del'>-	if (ex == 0)    *psz++ = '.';</div><div class='add'>+        m = BASE;</div><div class='add'>+        while (m /= 10) {</div><div class='add'>+            *p = '0';</div><div class='add'>+            ADVANCE(1);</div><div class='add'>+        }</div><div class='add'>+        if (ex == 0) {</div><div class='add'>+            *p = '.';</div><div class='add'>+            ADVANCE(1);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    *p = '\0';</div><div class='add'>+    while (p - 1 &gt; buf &amp;&amp; p[-1] == '0') {</div><div class='add'>+        *(--p) = '\0';</div><div class='add'>+        ++plen;</div><div class='ctx'>     }</div><div class='del'>-    *psz = 0;</div><div class='del'>-    while (psz[-1] == '0') *(--psz) = 0;</div><div class='del'>-    if (psz[-1] == '.') sprintf(psz, "0");</div><div class='del'>-    if (fFmt) VpFormatSt(pszSav, fFmt);</div><div class='add'>+    if (p - 1 &gt; buf &amp;&amp; p[-1] == '.') {</div><div class='add'>+        snprintf(p, plen, "0");</div><div class='add'>+    }</div><div class='add'>+    if (fFmt) VpFormatSt(buf, fFmt);</div><div class='add'>+</div><div class='add'>+  overflow:</div><div class='add'>+    return;</div><div class='add'>+#undef ADVANCE</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -5651,7 +6809,7 @@ VpCtoV(Real *a, const char *int_chr, size_t ni, const char *frac, size_t nf, con</div><div class='ctx'>     me = ne;</div><div class='ctx'>     signe = 1;</div><div class='ctx'>     exponent_overflow = 0;</div><div class='del'>-    memset(a-&gt;frac, 0, ma * sizeof(BDIGIT));</div><div class='add'>+    memset(a-&gt;frac, 0, ma * sizeof(DECDIG));</div><div class='ctx'>     if (ne &gt; 0) {</div><div class='ctx'> 	i = 0;</div><div class='ctx'> 	if (exp_chr[0] == '-') {</div><div class='hunk'>@@ -5788,7 +6946,7 @@ Final:</div><div class='ctx'>  * [Output]</div><div class='ctx'>  *   *d  ... fraction part of m(d = 0.xxxxxxx). where # of 'x's is fig.</div><div class='ctx'>  *   *e  ... exponent of m.</div><div class='del'>- * DBLE_FIG ... Number of digits in a double variable.</div><div class='add'>+ * BIGDECIMAL_DOUBLE_FIGURES ... Number of digits in a double variable.</div><div class='ctx'>  *</div><div class='ctx'>  *  m -&gt; d*10**e, 0&lt;d&lt;BASE</div><div class='ctx'>  * [Returns]</div><div class='hunk'>@@ -5835,7 +6993,7 @@ VpVtoD(double *d, SIGNED_VALUE *e, Real *m)</div><div class='ctx'> 	goto Exit;</div><div class='ctx'>     }</div><div class='ctx'>     /* Normal number */</div><div class='del'>-    fig = (DBLE_FIG + BASE_FIG - 1) / BASE_FIG;</div><div class='add'>+    fig = roomof(BIGDECIMAL_DOUBLE_FIGURES, BASE_FIG);</div><div class='ctx'>     ind_m = 0;</div><div class='ctx'>     mm = Min(fig, m-&gt;Prec);</div><div class='ctx'>     *d = 0.0;</div><div class='hunk'>@@ -5852,7 +7010,7 @@ Exit:</div><div class='ctx'>     if (gfDebug) {</div><div class='ctx'> 	VPrint(stdout, " VpVtoD: m=%\n", m);</div><div class='ctx'> 	printf("   d=%e * 10 **%ld\n", *d, *e);</div><div class='del'>-	printf("   DBLE_FIG = %d\n", DBLE_FIG);</div><div class='add'>+	printf("   BIGDECIMAL_DOUBLE_FIGURES = %d\n", BIGDECIMAL_DOUBLE_FIGURES);</div><div class='ctx'>     }</div><div class='ctx'> #endif /*BIGDECIMAL_DEBUG */</div><div class='ctx'>     return f;</div><div class='hunk'>@@ -5866,7 +7024,7 @@ VpDtoV(Real *m, double d)</div><div class='ctx'> {</div><div class='ctx'>     size_t ind_m, mm;</div><div class='ctx'>     SIGNED_VALUE ne;</div><div class='del'>-    BDIGIT i;</div><div class='add'>+    DECDIG i;</div><div class='ctx'>     double  val, val2;</div><div class='ctx'> </div><div class='ctx'>     if (isnan(d)) {</div><div class='hunk'>@@ -5901,12 +7059,12 @@ VpDtoV(Real *m, double d)</div><div class='ctx'>     /* Now val = 0.xxxxx*BASE**ne */</div><div class='ctx'> </div><div class='ctx'>     mm = m-&gt;MaxPrec;</div><div class='del'>-    memset(m-&gt;frac, 0, mm * sizeof(BDIGIT));</div><div class='add'>+    memset(m-&gt;frac, 0, mm * sizeof(DECDIG));</div><div class='ctx'>     for (ind_m = 0; val &gt; 0.0 &amp;&amp; ind_m &lt; mm; ind_m++) {</div><div class='del'>-	val *= (double)BASE;</div><div class='del'>-	i = (BDIGIT)val;</div><div class='del'>-	val -= (double)i;</div><div class='del'>-	m-&gt;frac[ind_m] = i;</div><div class='add'>+        val *= (double)BASE;</div><div class='add'>+        i = (DECDIG)val;</div><div class='add'>+        val -= (double)i;</div><div class='add'>+        m-&gt;frac[ind_m] = i;</div><div class='ctx'>     }</div><div class='ctx'>     if (ind_m &gt;= mm) ind_m = mm - 1;</div><div class='ctx'>     VpSetSign(m, (d &gt; 0.0) ? 1 : -1);</div><div class='hunk'>@@ -5914,7 +7072,7 @@ VpDtoV(Real *m, double d)</div><div class='ctx'>     m-&gt;exponent = ne;</div><div class='ctx'> </div><div class='ctx'>     VpInternalRound(m, 0, (m-&gt;Prec &gt; 0) ? m-&gt;frac[m-&gt;Prec-1] : 0,</div><div class='del'>-		    (BDIGIT)(val*(double)BASE));</div><div class='add'>+                    (DECDIG)(val*(double)BASE));</div><div class='ctx'> </div><div class='ctx'> Exit:</div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='hunk'>@@ -6032,8 +7190,9 @@ VpSqrt(Real *y, Real *x)</div><div class='ctx'>     if (x-&gt;MaxPrec &gt; (size_t)n) n = (ssize_t)x-&gt;MaxPrec;</div><div class='ctx'> </div><div class='ctx'>     /* allocate temporally variables  */</div><div class='del'>-    f = VpAlloc(y-&gt;MaxPrec * (BASE_FIG + 2), "#1", 1, 1);</div><div class='del'>-    r = VpAlloc((n + n) * (BASE_FIG + 2), "#1", 1, 1);</div><div class='add'>+    /* TODO: reconsider MaxPrec of f and r */</div><div class='add'>+    f = NewOneNolimit(1, y-&gt;MaxPrec * (BASE_FIG + 2));</div><div class='add'>+    r = NewOneNolimit(1, (n + n) * (BASE_FIG + 2));</div><div class='ctx'> </div><div class='ctx'>     nr = 0;</div><div class='ctx'>     y_prec = y-&gt;MaxPrec;</div><div class='hunk'>@@ -6053,21 +7212,26 @@ VpSqrt(Real *y, Real *x)</div><div class='ctx'>     }</div><div class='ctx'>     VpDtoV(y, sqrt(val));    /* y &lt;- sqrt(val) */</div><div class='ctx'>     y-&gt;exponent += n;</div><div class='del'>-    n = (SIGNED_VALUE)((DBLE_FIG + BASE_FIG - 1) / BASE_FIG);</div><div class='add'>+    n = (SIGNED_VALUE)roomof(BIGDECIMAL_DOUBLE_FIGURES, BASE_FIG);</div><div class='ctx'>     y-&gt;MaxPrec = Min((size_t)n , y_prec);</div><div class='ctx'>     f-&gt;MaxPrec = y-&gt;MaxPrec + 1;</div><div class='ctx'>     n = (SIGNED_VALUE)(y_prec * BASE_FIG);</div><div class='ctx'>     if (n &lt; (SIGNED_VALUE)maxnr) n = (SIGNED_VALUE)maxnr;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Perform: y_{n+1} = (y_n - x/y_n) / 2</div><div class='add'>+     */</div><div class='ctx'>     do {</div><div class='del'>-	y-&gt;MaxPrec *= 2;</div><div class='del'>-	if (y-&gt;MaxPrec &gt; y_prec) y-&gt;MaxPrec = y_prec;</div><div class='del'>-	f-&gt;MaxPrec = y-&gt;MaxPrec;</div><div class='del'>-	VpDivd(f, r, x, y);      /* f = x/y    */</div><div class='del'>-	VpAddSub(r, f, y, -1);   /* r = f - y  */</div><div class='del'>-	VpMult(f, VpPt5, r);     /* f = 0.5*r  */</div><div class='del'>-	if (VpIsZero(f))         goto converge;</div><div class='del'>-	VpAddSub(r, f, y, 1);    /* r = y + f  */</div><div class='del'>-	VpAsgn(y, r, 1);         /* y = r      */</div><div class='add'>+        y-&gt;MaxPrec *= 2;</div><div class='add'>+        if (y-&gt;MaxPrec &gt; y_prec) y-&gt;MaxPrec = y_prec;</div><div class='add'>+        f-&gt;MaxPrec = y-&gt;MaxPrec;</div><div class='add'>+        VpDivd(f, r, x, y);        /* f = x/y    */</div><div class='add'>+        VpAddSub(r, f, y, -1);     /* r = f - y  */</div><div class='add'>+        VpMult(f, VpConstPt5, r);  /* f = 0.5*r  */</div><div class='add'>+        if (VpIsZero(f))</div><div class='add'>+            goto converge;</div><div class='add'>+        VpAddSub(r, f, y, 1);      /* r = y + f  */</div><div class='add'>+        VpAsgn(y, r, 1);           /* y = r      */</div><div class='ctx'>     } while (++nr &lt; n);</div><div class='ctx'> </div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='hunk'>@@ -6092,8 +7256,8 @@ converge:</div><div class='ctx'>     y-&gt;MaxPrec = y_prec;</div><div class='ctx'> </div><div class='ctx'> Exit:</div><div class='del'>-    VpFree(f);</div><div class='del'>-    VpFree(r);</div><div class='add'>+    rbd_free_struct(f);</div><div class='add'>+    rbd_free_struct(r);</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6110,8 +7274,8 @@ VpMidRound(Real *y, unsigned short f, ssize_t nf)</div><div class='ctx'>     /* exptoadd: number of digits needed to compensate negative nf */</div><div class='ctx'>     int fracf, fracf_1further;</div><div class='ctx'>     ssize_t n,i,ix,ioffset, exptoadd;</div><div class='del'>-    BDIGIT v, shifter;</div><div class='del'>-    BDIGIT div;</div><div class='add'>+    DECDIG v, shifter;</div><div class='add'>+    DECDIG div;</div><div class='ctx'> </div><div class='ctx'>     nf += y-&gt;exponent * (ssize_t)BASE_FIG;</div><div class='ctx'>     exptoadd=0;</div><div class='hunk'>@@ -6133,8 +7297,8 @@ VpMidRound(Real *y, unsigned short f, ssize_t nf)</div><div class='ctx'>     n = (ssize_t)BASE_FIG - ioffset - 1;</div><div class='ctx'>     for (shifter = 1, i = 0; i &lt; n; ++i) shifter *= 10;</div><div class='ctx'> </div><div class='del'>-    /* so the representation used (in y-&gt;frac) is an array of BDIGIT, where</div><div class='del'>-       each BDIGIT contains a value between 0 and BASE-1, consisting of BASE_FIG</div><div class='add'>+    /* so the representation used (in y-&gt;frac) is an array of DECDIG, where</div><div class='add'>+       each DECDIG contains a value between 0 and BASE-1, consisting of BASE_FIG</div><div class='ctx'>        decimal places.</div><div class='ctx'> </div><div class='ctx'>        (that numbers of decimal places are typed as ssize_t is somewhat confusing)</div><div class='hunk'>@@ -6142,10 +7306,10 @@ VpMidRound(Real *y, unsigned short f, ssize_t nf)</div><div class='ctx'>        nf is now position (in decimal places) of the digit from the start of</div><div class='ctx'>        the array.</div><div class='ctx'> </div><div class='del'>-       ix is the position (in BDIGITS) of the BDIGIT containing the decimal digit,</div><div class='add'>+       ix is the position (in DECDIGs) of the DECDIG containing the decimal digit,</div><div class='ctx'>        from the start of the array.</div><div class='ctx'> </div><div class='del'>-       v is the value of this BDIGIT</div><div class='add'>+       v is the value of this DECDIG</div><div class='ctx'> </div><div class='ctx'>        ioffset is the number of extra decimal places along of this decimal digit</div><div class='ctx'>        within v.</div><div class='hunk'>@@ -6171,7 +7335,7 @@ VpMidRound(Real *y, unsigned short f, ssize_t nf)</div><div class='ctx'>        now fracf_1further is whether any of the remaining digits within v are non-zero</div><div class='ctx'>        */</div><div class='ctx'> </div><div class='del'>-    /* now check all the remaining BDIGITS for zero-ness a whole BDIGIT at a time.</div><div class='add'>+    /* now check all the remaining DECDIGs for zero-ness a whole DECDIG at a time.</div><div class='ctx'>        if we spot any non-zeroness, that means that we found a positive digit under</div><div class='ctx'>        rounding position, and we also found a positive digit under one further than</div><div class='ctx'>        the rounding position, so both searches (to see if any such non-zero digit exists)</div><div class='hunk'>@@ -6190,7 +7354,7 @@ VpMidRound(Real *y, unsigned short f, ssize_t nf)</div><div class='ctx'>        now v = the first digit under the rounding position */</div><div class='ctx'> </div><div class='ctx'>     /* drop digits after pointed digit */</div><div class='del'>-    memset(y-&gt;frac + ix + 1, 0, (y-&gt;Prec - (ix + 1)) * sizeof(BDIGIT));</div><div class='add'>+    memset(y-&gt;frac + ix + 1, 0, (y-&gt;Prec - (ix + 1)) * sizeof(DECDIG));</div><div class='ctx'> </div><div class='ctx'>     switch (f) {</div><div class='ctx'>       case VP_ROUND_DOWN: /* Truncate */</div><div class='hunk'>@@ -6218,11 +7382,11 @@ VpMidRound(Real *y, unsigned short f, ssize_t nf)</div><div class='ctx'> 	    }</div><div class='ctx'> 	    else {</div><div class='ctx'> 		if (ioffset == 0) {</div><div class='del'>-		    /* v is the first decimal digit of its BDIGIT;</div><div class='del'>-		       need to grab the previous BDIGIT if present</div><div class='del'>-		       to check for evenness of the previous decimal</div><div class='del'>-		       digit (which is same as that of the BDIGIT since</div><div class='del'>-		       base 10 has a factor of 2) */</div><div class='add'>+                    /* v is the first decimal digit of its DECDIG;</div><div class='add'>+                       need to grab the previous DECDIG if present</div><div class='add'>+                       to check for evenness of the previous decimal</div><div class='add'>+                       digit (which is same as that of the DECDIG since</div><div class='add'>+                       base 10 has a factor of 2) */</div><div class='ctx'> 		    if (ix &amp;&amp; (y-&gt;frac[ix-1] % 2)) ++div;</div><div class='ctx'> 		}</div><div class='ctx'> 		else {</div><div class='hunk'>@@ -6270,7 +7434,7 @@ VpLeftRound(Real *y, unsigned short f, ssize_t nf)</div><div class='ctx'>  * Round from the left hand side of the digits.</div><div class='ctx'>  */</div><div class='ctx'> {</div><div class='del'>-    BDIGIT v;</div><div class='add'>+    DECDIG v;</div><div class='ctx'>     if (!VpHasVal(y)) return 0; /* Unable to round */</div><div class='ctx'>     v = y-&gt;frac[0];</div><div class='ctx'>     nf -= VpExponent(y) * (ssize_t)BASE_FIG;</div><div class='hunk'>@@ -6301,7 +7465,7 @@ VpLimitRound(Real *c, size_t ixDigit)</div><div class='ctx'> /* If I understand correctly, this is only ever used to round off the final decimal</div><div class='ctx'>    digit of precision */</div><div class='ctx'> static void</div><div class='del'>-VpInternalRound(Real *c, size_t ixDigit, BDIGIT vPrev, BDIGIT v)</div><div class='add'>+VpInternalRound(Real *c, size_t ixDigit, DECDIG vPrev, DECDIG v)</div><div class='ctx'> {</div><div class='ctx'>     int f = 0;</div><div class='ctx'> </div><div class='hunk'>@@ -6351,7 +7515,7 @@ VpInternalRound(Real *c, size_t ixDigit, BDIGIT vPrev, BDIGIT v)</div><div class='ctx'> static int</div><div class='ctx'> VpRdup(Real *m, size_t ind_m)</div><div class='ctx'> {</div><div class='del'>-    BDIGIT carry;</div><div class='add'>+    DECDIG carry;</div><div class='ctx'> </div><div class='ctx'>     if (!ind_m) ind_m = m-&gt;Prec;</div><div class='ctx'> </div><div class='hunk'>@@ -6423,7 +7587,7 @@ Exit:</div><div class='ctx'>  *   y = x ** n</div><div class='ctx'>  */</div><div class='ctx'> VP_EXPORT int</div><div class='del'>-VpPower(Real *y, Real *x, SIGNED_VALUE n)</div><div class='add'>+VpPowerByInt(Real *y, Real *x, SIGNED_VALUE n)</div><div class='ctx'> {</div><div class='ctx'>     size_t s, ss;</div><div class='ctx'>     ssize_t sign;</div><div class='hunk'>@@ -6484,9 +7648,10 @@ VpPower(Real *y, Real *x, SIGNED_VALUE n)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* Allocate working variables  */</div><div class='add'>+    /* TODO: reconsider MaxPrec of w1 and w2 */</div><div class='add'>+    w1 = NewZeroNolimit(1, (y-&gt;MaxPrec + 2) * BASE_FIG);</div><div class='add'>+    w2 = NewZeroNolimit(1, (w1-&gt;MaxPrec * 2 + 1) * BASE_FIG);</div><div class='ctx'> </div><div class='del'>-    w1 = VpAlloc((y-&gt;MaxPrec + 2) * BASE_FIG, "#0", 1, 1);</div><div class='del'>-    w2 = VpAlloc((w1-&gt;MaxPrec * 2 + 1) * BASE_FIG, "#0", 1, 1);</div><div class='ctx'>     /* calculation start */</div><div class='ctx'> </div><div class='ctx'>     VpAsgn(y, x, 1);</div><div class='hunk'>@@ -6510,13 +7675,13 @@ VpPower(Real *y, Real *x, SIGNED_VALUE n)</div><div class='ctx'> Exit:</div><div class='ctx'> #ifdef BIGDECIMAL_DEBUG</div><div class='ctx'>     if (gfDebug) {</div><div class='del'>-	VPrint(stdout, "VpPower y=%\n", y);</div><div class='del'>-	VPrint(stdout, "VpPower x=%\n", x);</div><div class='add'>+	VPrint(stdout, "VpPowerByInt y=%\n", y);</div><div class='add'>+	VPrint(stdout, "VpPowerByInt x=%\n", x);</div><div class='ctx'> 	printf("  n=%"PRIdVALUE"\n", n);</div><div class='ctx'>     }</div><div class='ctx'> #endif /* BIGDECIMAL_DEBUG */</div><div class='del'>-    VpFree(w2);</div><div class='del'>-    VpFree(w1);</div><div class='add'>+    rbd_free_struct(w2);</div><div class='add'>+    rbd_free_struct(w1);</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6546,12 +7711,12 @@ VpVarCheck(Real * v)</div><div class='ctx'>     }</div><div class='ctx'>     for (i = 0; i &lt; v-&gt;Prec; ++i) {</div><div class='ctx'> 	if (v-&gt;frac[i] &gt;= BASE) {</div><div class='del'>-	    printf("ERROR(VpVarCheck): Illegal fraction\n");</div><div class='del'>-	    printf("       Frac[%"PRIuSIZE"]=%"PRIuBDIGIT"\n", i, v-&gt;frac[i]);</div><div class='del'>-	    printf("       Prec.   =%"PRIuSIZE"\n", v-&gt;Prec);</div><div class='del'>-	    printf("       Exp. =%"PRIdVALUE"\n", v-&gt;exponent);</div><div class='del'>-	    printf("       BASE =%"PRIuBDIGIT"\n", BASE);</div><div class='del'>-	    return 3;</div><div class='add'>+            printf("ERROR(VpVarCheck): Illegal fraction\n");</div><div class='add'>+            printf("       Frac[%"PRIuSIZE"]=%"PRIuDECDIG"\n", i, v-&gt;frac[i]);</div><div class='add'>+            printf("       Prec.   =%"PRIuSIZE"\n", v-&gt;Prec);</div><div class='add'>+            printf("       Exp. =%"PRIdVALUE"\n", v-&gt;exponent);</div><div class='add'>+            printf("       BASE =%"PRIuDECDIG"\n", BASE);</div><div class='add'>+            return 3;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='head'>diff --git a/ext/bigdecimal/bigdecimal.def b/ext/bigdecimal/bigdecimal.def<br/>deleted file mode 100644<br/>index 615bf72e20..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/bigdecimal/bigdecimal.def?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/bigdecimal.def</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,3 +0,0 @@</div><div class='del'>-EXPORTS</div><div class='del'>-rmpd_util_str_to_d</div><div class='del'>-Init_bigdecimal</div><div class='head'>diff --git a/ext/bigdecimal/bigdecimal.gemspec b/ext/bigdecimal/bigdecimal.gemspec<br/>index c20dada329..d215757188 100644<br/>--- a/<a href='/ruby.git/tree/ext/bigdecimal/bigdecimal.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/bigdecimal.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/bigdecimal.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/bigdecimal.gemspec</a></div><div class='hunk'>@@ -1,29 +1,29 @@</div><div class='ctx'> # coding: utf-8</div><div class='ctx'> </div><div class='del'>-bigdecimal_version = '1.4.0.pre.20181220a'</div><div class='del'>-</div><div class='ctx'> Gem::Specification.new do |s|</div><div class='ctx'>   s.name          = "bigdecimal"</div><div class='del'>-  s.version       = bigdecimal_version</div><div class='add'>+  s.version       = "3.1.3"</div><div class='ctx'>   s.authors       = ["Kenta Murata", "Zachary Scott", "Shigeo Kobayashi"]</div><div class='ctx'>   s.email         = ["mrkn@mrkn.jp"]</div><div class='ctx'> </div><div class='ctx'>   s.summary       = "Arbitrary-precision decimal floating-point number library."</div><div class='ctx'>   s.description   = "This library provides arbitrary-precision decimal floating-point number class."</div><div class='ctx'>   s.homepage      = "https://github.com/ruby/bigdecimal"</div><div class='del'>-  s.license       = "ruby"</div><div class='add'>+  s.licenses       = ["Ruby", "bsd-2-clause"]</div><div class='ctx'> </div><div class='ctx'>   s.require_paths = %w[lib]</div><div class='del'>-  s.extensions    = %w[ext/bigdecimal/extconf.rb ext/bigdecimal/util/extconf.rb]</div><div class='add'>+  s.extensions    = %w[ext/bigdecimal/extconf.rb]</div><div class='ctx'>   s.files         = %w[</div><div class='ctx'>     bigdecimal.gemspec</div><div class='ctx'>     ext/bigdecimal/bigdecimal.c</div><div class='del'>-    ext/bigdecimal/bigdecimal.def</div><div class='ctx'>     ext/bigdecimal/bigdecimal.h</div><div class='del'>-    ext/bigdecimal/depend</div><div class='del'>-    ext/bigdecimal/extconf.rb</div><div class='del'>-    ext/bigdecimal/util/extconf.rb</div><div class='del'>-    ext/bigdecimal/util/util.c</div><div class='add'>+    ext/bigdecimal/bits.h</div><div class='add'>+    ext/bigdecimal/feature.h</div><div class='add'>+    ext/bigdecimal/missing.c</div><div class='add'>+    ext/bigdecimal/missing.h</div><div class='add'>+    ext/bigdecimal/missing/dtoa.c</div><div class='add'>+    ext/bigdecimal/static_assert.h</div><div class='add'>+    lib/bigdecimal.rb</div><div class='ctx'>     lib/bigdecimal/jacobian.rb</div><div class='ctx'>     lib/bigdecimal/ludcmp.rb</div><div class='ctx'>     lib/bigdecimal/math.rb</div><div class='hunk'>@@ -34,11 +34,5 @@ Gem::Specification.new do |s|</div><div class='ctx'>     sample/pi.rb</div><div class='ctx'>   ]</div><div class='ctx'> </div><div class='del'>-  s.required_ruby_version = Gem::Requirement.new("&gt;= 2.3.0".freeze)</div><div class='del'>-</div><div class='del'>-  s.add_development_dependency "rake", "~&gt; 10.0"</div><div class='del'>-  s.add_development_dependency "rake-compiler", "&gt;= 0.9"</div><div class='del'>-  s.add_development_dependency "rake-compiler-dock", "&gt;= 0.6.1"</div><div class='del'>-  s.add_development_dependency "minitest", "&lt; 5.0.0"</div><div class='del'>-  s.add_development_dependency "pry"</div><div class='add'>+  s.required_ruby_version = Gem::Requirement.new("&gt;= 2.5.0")</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/bigdecimal/bigdecimal.h b/ext/bigdecimal/bigdecimal.h<br/>index e3eae06e67..54fed811fb 100644<br/>--- a/<a href='/ruby.git/tree/ext/bigdecimal/bigdecimal.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/bigdecimal.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/bigdecimal.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/bigdecimal.h</a></div><div class='hunk'>@@ -10,62 +10,74 @@</div><div class='ctx'> #define  RUBY_BIG_DECIMAL_H 1</div><div class='ctx'> </div><div class='ctx'> #define RUBY_NO_OLD_COMPATIBILITY</div><div class='del'>-</div><div class='ctx'> #include "ruby/ruby.h"</div><div class='del'>-#include &lt;float.h&gt;</div><div class='del'>-</div><div class='del'>-#ifndef RB_UNUSED_VAR</div><div class='del'>-# ifdef __GNUC__</div><div class='del'>-#  define RB_UNUSED_VAR(x) x __attribute__ ((unused))</div><div class='del'>-# else</div><div class='del'>-#  define RB_UNUSED_VAR(x) x</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='add'>+#include "missing.h"</div><div class='ctx'> </div><div class='del'>-#ifndef UNREACHABLE</div><div class='del'>-# define UNREACHABLE		/* unreachable */</div><div class='add'>+#ifdef HAVE_FLOAT_H</div><div class='add'>+# include &lt;float.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#undef BDIGIT</div><div class='del'>-#undef SIZEOF_BDIGITS</div><div class='del'>-#undef BDIGIT_DBL</div><div class='del'>-#undef BDIGIT_DBL_SIGNED</div><div class='del'>-#undef PRI_BDIGIT_PREFIX</div><div class='del'>-#undef PRI_BDIGIT_DBL_PREFIX</div><div class='del'>-</div><div class='ctx'> #ifdef HAVE_INT64_T</div><div class='del'>-# define BDIGIT uint32_t</div><div class='del'>-# define BDIGIT_DBL uint64_t</div><div class='del'>-# define BDIGIT_DBL_SIGNED int64_t</div><div class='del'>-# define SIZEOF_BDIGITS 4</div><div class='del'>-# define PRI_BDIGIT_PREFIX ""</div><div class='add'>+# define DECDIG uint32_t</div><div class='add'>+# define DECDIG_DBL uint64_t</div><div class='add'>+# define DECDIG_DBL_SIGNED int64_t</div><div class='add'>+# define SIZEOF_DECDIG 4</div><div class='add'>+# define PRI_DECDIG_PREFIX ""</div><div class='ctx'> # ifdef PRI_LL_PREFIX</div><div class='del'>-# define PRI_BDIGIT_DBL_PREFIX PRI_LL_PREFIX</div><div class='add'>+#  define PRI_DECDIG_DBL_PREFIX PRI_LL_PREFIX</div><div class='ctx'> # else</div><div class='del'>-# define PRI_BDIGIT_DBL_PREFIX "l"</div><div class='add'>+#  define PRI_DECDIG_DBL_PREFIX "l"</div><div class='ctx'> # endif</div><div class='ctx'> #else</div><div class='del'>-# define BDIGIT uint16_t</div><div class='del'>-# define BDIGIT_DBL uint32_t</div><div class='del'>-# define BDIGIT_DBL_SIGNED int32_t</div><div class='del'>-# define SIZEOF_BDIGITS 2</div><div class='del'>-# define PRI_BDIGIT_PREFIX "h"</div><div class='del'>-# define PRI_BDIGIT_DBL_PREFIX ""</div><div class='add'>+# define DECDIG uint16_t</div><div class='add'>+# define DECDIG_DBL uint32_t</div><div class='add'>+# define DECDIG_DBL_SIGNED int32_t</div><div class='add'>+# define SIZEOF_DECDIG 2</div><div class='add'>+# define PRI_DECDIG_PREFIX "h"</div><div class='add'>+# define PRI_DECDIG_DBL_PREFIX ""</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define PRIdBDIGIT PRI_BDIGIT_PREFIX"d"</div><div class='del'>-#define PRIiBDIGIT PRI_BDIGIT_PREFIX"i"</div><div class='del'>-#define PRIoBDIGIT PRI_BDIGIT_PREFIX"o"</div><div class='del'>-#define PRIuBDIGIT PRI_BDIGIT_PREFIX"u"</div><div class='del'>-#define PRIxBDIGIT PRI_BDIGIT_PREFIX"x"</div><div class='del'>-#define PRIXBDIGIT PRI_BDIGIT_PREFIX"X"</div><div class='add'>+#define PRIdDECDIG PRI_DECDIG_PREFIX"d"</div><div class='add'>+#define PRIiDECDIG PRI_DECDIG_PREFIX"i"</div><div class='add'>+#define PRIoDECDIG PRI_DECDIG_PREFIX"o"</div><div class='add'>+#define PRIuDECDIG PRI_DECDIG_PREFIX"u"</div><div class='add'>+#define PRIxDECDIG PRI_DECDIG_PREFIX"x"</div><div class='add'>+#define PRIXDECDIG PRI_DECDIG_PREFIX"X"</div><div class='add'>+</div><div class='add'>+#define PRIdDECDIG_DBL PRI_DECDIG_DBL_PREFIX"d"</div><div class='add'>+#define PRIiDECDIG_DBL PRI_DECDIG_DBL_PREFIX"i"</div><div class='add'>+#define PRIoDECDIG_DBL PRI_DECDIG_DBL_PREFIX"o"</div><div class='add'>+#define PRIuDECDIG_DBL PRI_DECDIG_DBL_PREFIX"u"</div><div class='add'>+#define PRIxDECDIG_DBL PRI_DECDIG_DBL_PREFIX"x"</div><div class='add'>+#define PRIXDECDIG_DBL PRI_DECDIG_DBL_PREFIX"X"</div><div class='add'>+</div><div class='add'>+#if SIZEOF_DECDIG == 4</div><div class='add'>+# define BIGDECIMAL_BASE ((DECDIG)1000000000U)</div><div class='add'>+# define BIGDECIMAL_COMPONENT_FIGURES 9</div><div class='add'>+/*</div><div class='add'>+ * The number of components required for a 64-bit integer.</div><div class='add'>+ *</div><div class='add'>+ *   INT64_MAX:   9_223372036_854775807</div><div class='add'>+ *   UINT64_MAX: 18_446744073_709551615</div><div class='add'>+ */</div><div class='add'>+# define BIGDECIMAL_INT64_MAX_LENGTH 3</div><div class='add'>+</div><div class='add'>+#elif SIZEOF_DECDIG == 2</div><div class='add'>+# define BIGDECIMAL_BASE ((DECDIG)10000U)</div><div class='add'>+# define BIGDECIMAL_COMPONENT_FIGURES 4</div><div class='add'>+/*</div><div class='add'>+ * The number of components required for a 64-bit integer.</div><div class='add'>+ *</div><div class='add'>+ *   INT64_MAX:   922_3372_0368_5477_5807</div><div class='add'>+ *   UINT64_MAX: 1844_6744_0737_0955_1615</div><div class='add'>+ */</div><div class='add'>+# define BIGDECIMAL_INT64_MAX_LENGTH 5</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# error Unknown size of DECDIG</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-#define PRIdBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"d"</div><div class='del'>-#define PRIiBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"i"</div><div class='del'>-#define PRIoBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"o"</div><div class='del'>-#define PRIuBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"u"</div><div class='del'>-#define PRIxBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"x"</div><div class='del'>-#define PRIXBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"X"</div><div class='add'>+#define BIGDECIMAL_DOUBLE_FIGURES (1+DBL_DIG)</div><div class='ctx'> </div><div class='ctx'> #if defined(__cplusplus)</div><div class='ctx'> extern "C" {</div><div class='hunk'>@@ -74,111 +86,8 @@ extern "C" {</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef HAVE_LABS</div><div class='del'>-static inline long</div><div class='del'>-labs(long const x)</div><div class='del'>-{</div><div class='del'>-    if (x &lt; 0) return -x;</div><div class='del'>-    return x;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef HAVE_LLABS</div><div class='del'>-static inline LONG_LONG</div><div class='del'>-llabs(LONG_LONG const x)</div><div class='del'>-{</div><div class='del'>-    if (x &lt; 0) return -x;</div><div class='del'>-    return x;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef HAVE_FINITE</div><div class='del'>-static int</div><div class='del'>-finite(double)</div><div class='del'>-{</div><div class='del'>-    return !isnan(n) &amp;&amp; !isinf(n);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef isfinite</div><div class='del'>-# ifndef HAVE_ISFINITE</div><div class='del'>-#  define HAVE_ISFINITE 1</div><div class='del'>-#  define isfinite(x) finite(x)</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef FIX_CONST_VALUE_PTR</div><div class='del'>-# if defined(__fcc__) || defined(__fcc_version) || \</div><div class='del'>-    defined(__FCC__) || defined(__FCC_VERSION)</div><div class='del'>-/* workaround for old version of Fujitsu C Compiler (fcc) */</div><div class='del'>-#  define FIX_CONST_VALUE_PTR(x) ((const VALUE *)(x))</div><div class='del'>-# else</div><div class='del'>-#  define FIX_CONST_VALUE_PTR(x) (x)</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef HAVE_RB_ARRAY_CONST_PTR</div><div class='del'>-static inline const VALUE *</div><div class='del'>-rb_array_const_ptr(VALUE a)</div><div class='del'>-{</div><div class='del'>-    return FIX_CONST_VALUE_PTR((RBASIC(a)-&gt;flags &amp; RARRAY_EMBED_FLAG) ?</div><div class='del'>-	RARRAY(a)-&gt;as.ary : RARRAY(a)-&gt;as.heap.ptr);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RARRAY_CONST_PTR</div><div class='del'>-# define RARRAY_CONST_PTR(a) rb_array_const_ptr(a)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RARRAY_AREF</div><div class='del'>-# define RARRAY_AREF(a, i) (RARRAY_CONST_PTR(a)[i])</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef HAVE_RB_SYM2STR</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_sym2str(VALUE sym)</div><div class='del'>-{</div><div class='del'>-    return rb_id2str(SYM2ID(sym));</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef ST2FIX</div><div class='del'>-# undef RB_ST2FIX</div><div class='del'>-# define RB_ST2FIX(h) LONG2FIX((long)(h))</div><div class='del'>-# define ST2FIX(h) RB_ST2FIX(h)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef vabs</div><div class='del'>-# undef vabs</div><div class='del'>-#endif</div><div class='del'>-#if SIZEOF_VALUE &lt;= SIZEOF_INT</div><div class='del'>-# define vabs abs</div><div class='del'>-#elif SIZEOF_VALUE &lt;= SIZEOF_LONG</div><div class='del'>-# define vabs labs</div><div class='del'>-#elif SIZEOF_VALUE &lt;= SIZEOF_LONG_LONG</div><div class='del'>-# define vabs llabs</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> extern VALUE rb_cBigDecimal;</div><div class='ctx'> </div><div class='del'>-#if 0 || SIZEOF_BDIGITS &gt;= 16</div><div class='del'>-# define RMPD_COMPONENT_FIGURES 38</div><div class='del'>-# define RMPD_BASE ((BDIGIT)100000000000000000000000000000000000000U)</div><div class='del'>-#elif SIZEOF_BDIGITS &gt;= 8</div><div class='del'>-# define RMPD_COMPONENT_FIGURES 19</div><div class='del'>-# define RMPD_BASE ((BDIGIT)10000000000000000000U)</div><div class='del'>-#elif SIZEOF_BDIGITS &gt;= 4</div><div class='del'>-# define RMPD_COMPONENT_FIGURES 9</div><div class='del'>-# define RMPD_BASE ((BDIGIT)1000000000U)</div><div class='del'>-#elif SIZEOF_BDIGITS &gt;= 2</div><div class='del'>-# define RMPD_COMPONENT_FIGURES 4</div><div class='del'>-# define RMPD_BASE ((BDIGIT)10000U)</div><div class='del'>-#else</div><div class='del'>-# define RMPD_COMPONENT_FIGURES 2</div><div class='del'>-# define RMPD_BASE ((BDIGIT)100U)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  NaN &amp; Infinity</div><div class='ctx'>  */</div><div class='hunk'>@@ -193,7 +102,7 @@ extern VALUE rb_cBigDecimal;</div><div class='ctx'>  */</div><div class='ctx'> #define VP_EXPORT static</div><div class='ctx'> </div><div class='del'>-/* Exception codes */</div><div class='add'>+/* Exception mode */</div><div class='ctx'> #define VP_EXCEPTION_ALL        ((unsigned short)0x00FF)</div><div class='ctx'> #define VP_EXCEPTION_INFINITY   ((unsigned short)0x0001)</div><div class='ctx'> #define VP_EXCEPTION_NaN        ((unsigned short)0x0002)</div><div class='hunk'>@@ -203,22 +112,39 @@ extern VALUE rb_cBigDecimal;</div><div class='ctx'> </div><div class='ctx'> /* Following 2 exceptions can't controlled by user */</div><div class='ctx'> #define VP_EXCEPTION_OP         ((unsigned short)0x0020)</div><div class='del'>-#define VP_EXCEPTION_MEMORY     ((unsigned short)0x0040)</div><div class='ctx'> </div><div class='del'>-#define RMPD_EXCEPTION_MODE_DEFAULT 0U</div><div class='add'>+#define BIGDECIMAL_EXCEPTION_MODE_DEFAULT 0U</div><div class='ctx'> </div><div class='del'>-/* Computation mode */</div><div class='add'>+/* This is used in BigDecimal#mode */</div><div class='ctx'> #define VP_ROUND_MODE            ((unsigned short)0x0100)</div><div class='del'>-#define VP_ROUND_UP         1</div><div class='del'>-#define VP_ROUND_DOWN       2</div><div class='del'>-#define VP_ROUND_HALF_UP    3</div><div class='del'>-#define VP_ROUND_HALF_DOWN  4</div><div class='del'>-#define VP_ROUND_CEIL       5</div><div class='del'>-#define VP_ROUND_FLOOR      6</div><div class='del'>-#define VP_ROUND_HALF_EVEN  7</div><div class='del'>-</div><div class='del'>-#define RMPD_ROUNDING_MODE_DEFAULT  VP_ROUND_HALF_UP</div><div class='ctx'> </div><div class='add'>+/* Rounding mode */</div><div class='add'>+#define VP_ROUND_UP         RBD_ROUND_UP</div><div class='add'>+#define VP_ROUND_DOWN       RBD_ROUND_DOWN</div><div class='add'>+#define VP_ROUND_HALF_UP    RBD_ROUND_HALF_UP</div><div class='add'>+#define VP_ROUND_HALF_DOWN  RBD_ROUND_HALF_DOWN</div><div class='add'>+#define VP_ROUND_CEIL       RBD_ROUND_CEIL</div><div class='add'>+#define VP_ROUND_FLOOR      RBD_ROUND_FLOOR</div><div class='add'>+#define VP_ROUND_HALF_EVEN  RBD_ROUND_HALF_EVEN</div><div class='add'>+</div><div class='add'>+enum rbd_rounding_mode {</div><div class='add'>+    RBD_ROUND_UP          = 1,</div><div class='add'>+    RBD_ROUND_DOWN        = 2,</div><div class='add'>+    RBD_ROUND_HALF_UP     = 3,</div><div class='add'>+    RBD_ROUND_HALF_DOWN   = 4,</div><div class='add'>+    RBD_ROUND_CEIL        = 5,</div><div class='add'>+    RBD_ROUND_FLOOR       = 6,</div><div class='add'>+    RBD_ROUND_HALF_EVEN   = 7,</div><div class='add'>+</div><div class='add'>+    RBD_ROUND_DEFAULT  = RBD_ROUND_HALF_UP,</div><div class='add'>+    RBD_ROUND_TRUNCATE = RBD_ROUND_DOWN,</div><div class='add'>+    RBD_ROUND_BANKER   = RBD_ROUND_HALF_EVEN,</div><div class='add'>+    RBD_ROUND_CEILING  = RBD_ROUND_CEIL</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define BIGDECIMAL_ROUNDING_MODE_DEFAULT  VP_ROUND_HALF_UP</div><div class='add'>+</div><div class='add'>+/* Sign flag */</div><div class='ctx'> #define VP_SIGN_NaN                0 /* NaN                      */</div><div class='ctx'> #define VP_SIGN_POSITIVE_ZERO      1 /* Positive zero            */</div><div class='ctx'> #define VP_SIGN_NEGATIVE_ZERO     -1 /* Negative zero            */</div><div class='hunk'>@@ -227,6 +153,7 @@ extern VALUE rb_cBigDecimal;</div><div class='ctx'> #define VP_SIGN_POSITIVE_INFINITE  3 /* Positive infinite number */</div><div class='ctx'> #define VP_SIGN_NEGATIVE_INFINITE -3 /* Negative infinite number */</div><div class='ctx'> </div><div class='add'>+/* The size of fraction part array */</div><div class='ctx'> #if defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)</div><div class='ctx'> #define	FLEXIBLE_ARRAY_SIZE /* */</div><div class='ctx'> #elif defined(__GNUC__) &amp;&amp; !defined(__STRICT_ANSI__)</div><div class='hunk'>@@ -259,7 +186,7 @@ typedef struct {</div><div class='ctx'>                      *         -3 : Negative infinite number</div><div class='ctx'>                      */</div><div class='ctx'>     short  flag;    /* Not used in vp_routines,space for user.  */</div><div class='del'>-    BDIGIT frac[FLEXIBLE_ARRAY_SIZE]; /* Array of fraction part. */</div><div class='add'>+    DECDIG frac[FLEXIBLE_ARRAY_SIZE]; /* Array of fraction part. */</div><div class='ctx'> } Real;</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -268,21 +195,13 @@ typedef struct {</div><div class='ctx'>  *  ------------------</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VP_EXPORT  Real *</div><div class='del'>-VpNewRbClass(size_t mx, char const *str, VALUE klass);</div><div class='del'>-</div><div class='del'>-VP_EXPORT  Real *VpCreateRbObject(size_t mx,const char *str);</div><div class='add'>+VP_EXPORT Real *VpNewRbClass(size_t mx, char const *str, VALUE klass, bool strict_p, bool raise_exception);</div><div class='ctx'> </div><div class='del'>-static inline BDIGIT</div><div class='del'>-rmpd_base_value(void) { return RMPD_BASE; }</div><div class='del'>-static inline size_t</div><div class='del'>-rmpd_component_figures(void) { return RMPD_COMPONENT_FIGURES; }</div><div class='del'>-static inline size_t</div><div class='del'>-rmpd_double_figures(void) { return 1+DBL_DIG; }</div><div class='add'>+VP_EXPORT Real *VpCreateRbObject(size_t mx, const char *str, bool raise_exception);</div><div class='ctx'> </div><div class='del'>-#define VpBaseFig() rmpd_component_figures()</div><div class='del'>-#define VpDblFig() rmpd_double_figures()</div><div class='del'>-#define VpBaseVal() rmpd_base_value()</div><div class='add'>+#define VpBaseFig() BIGDECIMAL_COMPONENT_FIGURES</div><div class='add'>+#define VpDblFig() BIGDECIMAL_DOUBLE_FIGURES</div><div class='add'>+#define VpBaseVal() BIGDECIMAL_BASE</div><div class='ctx'> </div><div class='ctx'> /* Zero,Inf,NaN (isinf(),isnan() used to check) */</div><div class='ctx'> VP_EXPORT double VpGetDoubleNaN(void);</div><div class='hunk'>@@ -304,10 +223,7 @@ VP_EXPORT int VpException(unsigned short f,const char *str,int always);</div><div class='ctx'> VP_EXPORT int VpIsNegDoubleZero(double v);</div><div class='ctx'> #endif</div><div class='ctx'> VP_EXPORT size_t VpNumOfChars(Real *vp,const char *pszFmt);</div><div class='del'>-VP_EXPORT size_t VpInit(BDIGIT BaseVal);</div><div class='del'>-VP_EXPORT void *VpMemAlloc(size_t mb);</div><div class='del'>-VP_EXPORT void *VpMemRealloc(void *ptr, size_t mb);</div><div class='del'>-VP_EXPORT void VpFree(Real *pv);</div><div class='add'>+VP_EXPORT size_t VpInit(DECDIG BaseVal);</div><div class='ctx'> VP_EXPORT Real *VpAlloc(size_t mx, const char *szVal, int strict_p, int exc);</div><div class='ctx'> VP_EXPORT size_t VpAsgn(Real *c, Real *a, int isw);</div><div class='ctx'> VP_EXPORT size_t VpAddSub(Real *c,Real *a,Real *b,int operation);</div><div class='hunk'>@@ -315,10 +231,10 @@ VP_EXPORT size_t VpMult(Real *c,Real *a,Real *b);</div><div class='ctx'> VP_EXPORT size_t VpDivd(Real *c,Real *r,Real *a,Real *b);</div><div class='ctx'> VP_EXPORT int VpComp(Real *a,Real *b);</div><div class='ctx'> VP_EXPORT ssize_t VpExponent10(Real *a);</div><div class='del'>-VP_EXPORT void VpSzMantissa(Real *a,char *psz);</div><div class='del'>-VP_EXPORT int VpToSpecialString(Real *a,char *psz,int fPlus);</div><div class='del'>-VP_EXPORT void VpToString(Real *a, char *psz, size_t fFmt, int fPlus);</div><div class='del'>-VP_EXPORT void VpToFString(Real *a, char *psz, size_t fFmt, int fPlus);</div><div class='add'>+VP_EXPORT void VpSzMantissa(Real *a, char *buf, size_t bufsize);</div><div class='add'>+VP_EXPORT int VpToSpecialString(Real *a, char *buf, size_t bufsize, int fPlus);</div><div class='add'>+VP_EXPORT void VpToString(Real *a, char *buf, size_t bufsize, size_t fFmt, int fPlus);</div><div class='add'>+VP_EXPORT void VpToFString(Real *a, char *buf, size_t bufsize, size_t fFmt, int fPlus);</div><div class='ctx'> VP_EXPORT int VpCtoV(Real *a, const char *int_chr, size_t ni, const char *frac, size_t nf, const char *exp_chr, size_t ne);</div><div class='ctx'> VP_EXPORT int VpVtoD(double *d, SIGNED_VALUE *e, Real *m);</div><div class='ctx'> VP_EXPORT void VpDtoV(Real *m,double d);</div><div class='hunk'>@@ -330,7 +246,8 @@ VP_EXPORT int VpActiveRound(Real *y, Real *x, unsigned short f, ssize_t il);</div><div class='ctx'> VP_EXPORT int VpMidRound(Real *y, unsigned short f, ssize_t nf);</div><div class='ctx'> VP_EXPORT int VpLeftRound(Real *y, unsigned short f, ssize_t nf);</div><div class='ctx'> VP_EXPORT void VpFrac(Real *y, Real *x);</div><div class='del'>-VP_EXPORT int VpPower(Real *y, Real *x, SIGNED_VALUE n);</div><div class='add'>+VP_EXPORT int VpPowerByInt(Real *y, Real *x, SIGNED_VALUE n);</div><div class='add'>+#define VpPower VpPowerByInt</div><div class='ctx'> </div><div class='ctx'> /* VP constants */</div><div class='ctx'> VP_EXPORT Real *VpOne(void);</div><div class='head'>diff --git a/ext/bigdecimal/bits.h b/ext/bigdecimal/bits.h<br/>new file mode 100644<br/>index 0000000000..6e1e4776e3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/bits.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/bits.h</a></div><div class='hunk'>@@ -0,0 +1,141 @@</div><div class='add'>+#ifndef BIGDECIMAL_BITS_H</div><div class='add'>+#define BIGDECIMAL_BITS_H</div><div class='add'>+</div><div class='add'>+#include "feature.h"</div><div class='add'>+#include "static_assert.h"</div><div class='add'>+</div><div class='add'>+#if defined(__x86_64__) &amp;&amp; defined(HAVE_X86INTRIN_H)</div><div class='add'>+# include &lt;x86intrin.h&gt;         /* for _lzcnt_u64, etc. */</div><div class='add'>+#elif defined(_MSC_VER) &amp;&amp; defined(HAVE_INTRIN_H)</div><div class='add'>+# include &lt;intrin.h&gt;            /* for the following intrinsics */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(_MSC_VER) &amp;&amp; defined(__AVX2__)</div><div class='add'>+# pragma intrinsic(__lzcnt)</div><div class='add'>+# pragma intrinsic(__lzcnt64)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define numberof(array) ((int)(sizeof(array) / sizeof((array)[0])))</div><div class='add'>+#define roomof(x, y) (((x) + (y) - 1) / (y))</div><div class='add'>+#define type_roomof(x, y) roomof(sizeof(x), sizeof(y))</div><div class='add'>+</div><div class='add'>+#define MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, min, max) ( \</div><div class='add'>+    (a) == 0 ? 0 : \</div><div class='add'>+    (a) == -1 ? (b) &lt; -(max) : \</div><div class='add'>+    (a) &gt; 0 ? \</div><div class='add'>+      ((b) &gt; 0 ? (max) / (a) &lt; (b) : (min) / (a) &gt; (b)) : \</div><div class='add'>+      ((b) &gt; 0 ? (min) / (a) &lt; (b) : (max) / (a) &gt; (b)))</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_UINT128_T</div><div class='add'>+# define bit_length(x) \</div><div class='add'>+    (unsigned int) \</div><div class='add'>+    (sizeof(x) &lt;= sizeof(int32_t) ? 32 - nlz_int32((uint32_t)(x)) : \</div><div class='add'>+     sizeof(x) &lt;= sizeof(int64_t) ? 64 - nlz_int64((uint64_t)(x)) : \</div><div class='add'>+                                   128 - nlz_int128((uint128_t)(x)))</div><div class='add'>+#else</div><div class='add'>+# define bit_length(x) \</div><div class='add'>+    (unsigned int) \</div><div class='add'>+    (sizeof(x) &lt;= sizeof(int32_t) ? 32 - nlz_int32((uint32_t)(x)) : \</div><div class='add'>+                                    64 - nlz_int64((uint64_t)(x)))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static inline unsigned nlz_int32(uint32_t x);</div><div class='add'>+static inline unsigned nlz_int64(uint64_t x);</div><div class='add'>+#ifdef HAVE_UINT128_T</div><div class='add'>+static inline unsigned nlz_int128(uint128_t x);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static inline unsigned int</div><div class='add'>+nlz_int32(uint32_t x)</div><div class='add'>+{</div><div class='add'>+#if defined(_MSC_VER) &amp;&amp; defined(__AVX2__) &amp;&amp; defined(HAVE___LZCNT)</div><div class='add'>+    /* Note: It seems there is no such thing like __LZCNT__ predefined in MSVC.</div><div class='add'>+     * AMD  CPUs have  had this  instruction for  decades (since  K10) but  for</div><div class='add'>+     * Intel, Haswell is  the oldest one.  We need to  use __AVX2__ for maximum</div><div class='add'>+     * safety. */</div><div class='add'>+    return (unsigned int)__lzcnt(x);</div><div class='add'>+</div><div class='add'>+#elif defined(__x86_64__) &amp;&amp; defined(__LZCNT__) &amp;&amp; defined(HAVE__LZCNT_U32)</div><div class='add'>+    return (unsigned int)_lzcnt_u32(x);</div><div class='add'>+</div><div class='add'>+#elif defined(_MSC_VER) &amp;&amp; defined(HAVE__BITSCANREVERSE)</div><div class='add'>+    unsigned long r;</div><div class='add'>+    return _BitScanReverse(&amp;r, x) ? (31 - (int)r) : 32;</div><div class='add'>+</div><div class='add'>+#elif __has_builtin(__builtin_clz)</div><div class='add'>+    STATIC_ASSERT(sizeof_int, sizeof(int) * CHAR_BIT == 32);</div><div class='add'>+    return x ? (unsigned int)__builtin_clz(x) : 32;</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    uint32_t y;</div><div class='add'>+    unsigned n = 32;</div><div class='add'>+    y = x &gt;&gt; 16; if (y) {n -= 16; x = y;}</div><div class='add'>+    y = x &gt;&gt;  8; if (y) {n -=  8; x = y;}</div><div class='add'>+    y = x &gt;&gt;  4; if (y) {n -=  4; x = y;}</div><div class='add'>+    y = x &gt;&gt;  2; if (y) {n -=  2; x = y;}</div><div class='add'>+    y = x &gt;&gt;  1; if (y) {return n - 2;}</div><div class='add'>+    return (unsigned int)(n - x);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline unsigned int</div><div class='add'>+nlz_int64(uint64_t x)</div><div class='add'>+{</div><div class='add'>+#if defined(_MSC_VER) &amp;&amp; defined(__AVX2__) &amp;&amp; defined(HAVE___LZCNT64)</div><div class='add'>+    return (unsigned int)__lzcnt64(x);</div><div class='add'>+</div><div class='add'>+#elif defined(__x86_64__) &amp;&amp; defined(__LZCNT__) &amp;&amp; defined(HAVE__LZCNT_U64)</div><div class='add'>+    return (unsigned int)_lzcnt_u64(x);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN64) &amp;&amp; defined(_MSC_VER) &amp;&amp; defined(HAVE__BITSCANREVERSE64)</div><div class='add'>+    unsigned long r;</div><div class='add'>+    return _BitScanReverse64(&amp;r, x) ? (63u - (unsigned int)r) : 64;</div><div class='add'>+</div><div class='add'>+#elif __has_builtin(__builtin_clzl) &amp;&amp; __has_builtin(__builtin_clzll) &amp;&amp; !(defined(__sun) &amp;&amp; defined(__sparc))</div><div class='add'>+    if (x == 0) {</div><div class='add'>+        return 64;</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(long) * CHAR_BIT == 64) {</div><div class='add'>+        return (unsigned int)__builtin_clzl((unsigned long)x);</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(long long) * CHAR_BIT == 64) {</div><div class='add'>+        return (unsigned int)__builtin_clzll((unsigned long long)x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        /* :FIXME: Is there a way to make this branch a compile-time error? */</div><div class='add'>+        __builtin_unreachable();</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    uint64_t y;</div><div class='add'>+    unsigned int n = 64;</div><div class='add'>+    y = x &gt;&gt; 32; if (y) {n -= 32; x = y;}</div><div class='add'>+    y = x &gt;&gt; 16; if (y) {n -= 16; x = y;}</div><div class='add'>+    y = x &gt;&gt;  8; if (y) {n -=  8; x = y;}</div><div class='add'>+    y = x &gt;&gt;  4; if (y) {n -=  4; x = y;}</div><div class='add'>+    y = x &gt;&gt;  2; if (y) {n -=  2; x = y;}</div><div class='add'>+    y = x &gt;&gt;  1; if (y) {return n - 2;}</div><div class='add'>+    return (unsigned int)(n - x);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_UINT128_T</div><div class='add'>+static inline unsigned int</div><div class='add'>+nlz_int128(uint128_t x)</div><div class='add'>+{</div><div class='add'>+    uint64_t y = (uint64_t)(x &gt;&gt; 64);</div><div class='add'>+</div><div class='add'>+    if (x == 0) {</div><div class='add'>+        return 128;</div><div class='add'>+    }</div><div class='add'>+    else if (y == 0) {</div><div class='add'>+        return (unsigned int)nlz_int64(x) + 64;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return (unsigned int)nlz_int64(y);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* BIGDECIMAL_BITS_H */</div><div class='head'>diff --git a/ext/bigdecimal/depend b/ext/bigdecimal/depend<br/>index 943bd6c38c..ee892162f2 100644<br/>--- a/<a href='/ruby.git/tree/ext/bigdecimal/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/depend</a></div><div class='hunk'>@@ -4,8 +4,157 @@ Makefile: $(BIGDECIMAL_RB)</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> bigdecimal.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> bigdecimal.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> bigdecimal.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> bigdecimal.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+bigdecimal.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> bigdecimal.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> bigdecimal.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> bigdecimal.o: $(hdrdir)/ruby/st.h</div><div class='hunk'>@@ -13,4 +162,169 @@ bigdecimal.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> bigdecimal.o: $(hdrdir)/ruby/util.h</div><div class='ctx'> bigdecimal.o: bigdecimal.c</div><div class='ctx'> bigdecimal.o: bigdecimal.h</div><div class='add'>+bigdecimal.o: bits.h</div><div class='add'>+bigdecimal.o: feature.h</div><div class='add'>+bigdecimal.o: missing.h</div><div class='add'>+bigdecimal.o: static_assert.h</div><div class='add'>+missing.o: $(RUBY_EXTCONF_H)</div><div class='add'>+missing.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/atomic.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/st.h</div><div class='add'>+missing.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+missing.o: missing.c</div><div class='add'>+missing.o: missing/dtoa.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/bigdecimal/extconf.rb b/ext/bigdecimal/extconf.rb<br/>index a6a36304cc..17e7905dd6 100644<br/>--- a/<a href='/ruby.git/tree/ext/bigdecimal/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/extconf.rb</a></div><div class='hunk'>@@ -1,6 +1,32 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> require 'mkmf'</div><div class='ctx'> </div><div class='add'>+def check_bigdecimal_version(gemspec_path)</div><div class='add'>+  message "checking RUBY_BIGDECIMAL_VERSION... "</div><div class='add'>+  bigdecimal_version = File.read(gemspec_path).match(/^\s*s\.version\s+=\s+['"]([^'"]+)['"]\s*$/)[1]</div><div class='add'>+</div><div class='add'>+  version_components = bigdecimal_version.split('.')</div><div class='add'>+  bigdecimal_version = version_components[0, 3].join('.')</div><div class='add'>+  bigdecimal_version &lt;&lt; "-#{version_components[3]}" if version_components[3]</div><div class='add'>+  $defs &lt;&lt; %Q[-DRUBY_BIGDECIMAL_VERSION=\\"#{bigdecimal_version}\\"]</div><div class='add'>+</div><div class='add'>+  message "#{bigdecimal_version}\n"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def have_builtin_func(name, check_expr, opt = "", &amp;b)</div><div class='add'>+  checking_for checking_message(name.funcall_style, nil, opt) do</div><div class='add'>+    if try_compile(&lt;&lt;SRC, opt, &amp;b)</div><div class='add'>+int foo;</div><div class='add'>+int main() { #{check_expr}; return 0; }</div><div class='add'>+SRC</div><div class='add'>+      $defs.push(format("-DHAVE_BUILTIN_%s", name.tr_cpp))</div><div class='add'>+      true</div><div class='add'>+    else</div><div class='add'>+      false</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='ctx'> gemspec_name = gemspec_path = nil</div><div class='ctx'> unless ['', '../../'].any? {|dir|</div><div class='ctx'>          gemspec_name = "#{dir}bigdecimal.gemspec"</div><div class='hunk'>@@ -11,22 +37,43 @@ unless ['', '../../'].any? {|dir|</div><div class='ctx'>   abort</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-bigdecimal_version =</div><div class='del'>-  IO.readlines(gemspec_path)</div><div class='del'>-    .grep(/\Abigdecimal_version\s+=\s+/)[0][/\'([\d\.]+)\'/, 1]</div><div class='add'>+check_bigdecimal_version(gemspec_path)</div><div class='add'>+</div><div class='add'>+have_builtin_func("__builtin_clz", "__builtin_clz(0)")</div><div class='add'>+have_builtin_func("__builtin_clzl", "__builtin_clzl(0)")</div><div class='add'>+have_builtin_func("__builtin_clzll", "__builtin_clzll(0)")</div><div class='add'>+</div><div class='add'>+have_header("float.h")</div><div class='add'>+have_header("math.h")</div><div class='add'>+have_header("stdbool.h")</div><div class='add'>+have_header("stdlib.h")</div><div class='ctx'> </div><div class='del'>-$defs &lt;&lt; %Q[-DRUBY_BIGDECIMAL_VERSION=\\"#{bigdecimal_version}\\"]</div><div class='add'>+have_header("x86intrin.h")</div><div class='add'>+have_func("_lzcnt_u32", "x86intrin.h")</div><div class='add'>+have_func("_lzcnt_u64", "x86intrin.h")</div><div class='add'>+</div><div class='add'>+have_header("intrin.h")</div><div class='add'>+have_func("__lzcnt", "intrin.h")</div><div class='add'>+have_func("__lzcnt64", "intrin.h")</div><div class='add'>+have_func("_BitScanReverse", "intrin.h")</div><div class='add'>+have_func("_BitScanReverse64", "intrin.h")</div><div class='ctx'> </div><div class='ctx'> have_func("labs", "stdlib.h")</div><div class='ctx'> have_func("llabs", "stdlib.h")</div><div class='ctx'> have_func("finite", "math.h")</div><div class='ctx'> have_func("isfinite", "math.h")</div><div class='ctx'> </div><div class='del'>-have_type("struct RRational", "ruby.h")</div><div class='add'>+have_header("ruby/atomic.h")</div><div class='add'>+have_header("ruby/internal/has/builtin.h")</div><div class='add'>+have_header("ruby/internal/static_assert.h")</div><div class='add'>+</div><div class='ctx'> have_func("rb_rational_num", "ruby.h")</div><div class='ctx'> have_func("rb_rational_den", "ruby.h")</div><div class='del'>-have_func("rb_array_const_ptr", "ruby.h")</div><div class='del'>-have_func("rb_sym2str", "ruby.h")</div><div class='add'>+have_func("rb_complex_real", "ruby.h")</div><div class='add'>+have_func("rb_complex_imag", "ruby.h")</div><div class='add'>+have_func("rb_opts_exception_p", "ruby.h")</div><div class='add'>+have_func("rb_category_warn", "ruby.h")</div><div class='add'>+have_const("RB_WARN_CATEGORY_DEPRECATED", "ruby.h")</div><div class='ctx'> </div><div class='ctx'> if File.file?(File.expand_path('../lib/bigdecimal.rb', __FILE__))</div><div class='ctx'>   bigdecimal_rb = "$(srcdir)/lib/bigdecimal.rb"</div><div class='head'>diff --git a/ext/bigdecimal/feature.h b/ext/bigdecimal/feature.h<br/>new file mode 100644<br/>index 0000000000..f628514500<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/feature.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/feature.h</a></div><div class='hunk'>@@ -0,0 +1,68 @@</div><div class='add'>+#ifndef BIGDECIMAL_HAS_FEATURE_H</div><div class='add'>+#define BIGDECIMAL_HAS_FEATURE_H</div><div class='add'>+</div><div class='add'>+/* ======== __has_feature ======== */</div><div class='add'>+</div><div class='add'>+#ifndef __has_feature</div><div class='add'>+# define __has_feature(_) 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* ======== __has_extension ======== */</div><div class='add'>+</div><div class='add'>+#ifndef __has_extension</div><div class='add'>+# define __has_extension __has_feature</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* ======== __has_builtin ======== */</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_RUBY_INTERNAL_HAS_BUILTIN_H</div><div class='add'>+# include &lt;ruby/internal/has/builtin.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef RBIMPL_HAS_BUILTIN</div><div class='add'>+# define BIGDECIMAL_HAS_BUILTIN(...) RBIMPL_HAS_BUILTIN(__VA_ARGS__)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# /* The following section is copied from CRuby's builtin.h */</div><div class='add'>+#</div><div class='add'>+# ifdef __has_builtin</div><div class='add'>+#  if defined(__INTEL_COMPILER)</div><div class='add'>+#  /* :TODO: Intel  C Compiler  has __has_builtin (since  19.1 maybe?),  and is</div><div class='add'>+#   * reportedly  broken.  We  have to  skip them.   However the  situation can</div><div class='add'>+#   * change.  They might improve someday.  We need to revisit here later. */</div><div class='add'>+#  elif defined(__GNUC__) &amp;&amp; ! __has_builtin(__builtin_alloca)</div><div class='add'>+#  /* FreeBSD's   &lt;sys/cdefs.h&gt;   defines   its   own   *broken*   version   of</div><div class='add'>+#   * __has_builtin.   Cygwin  copied  that  content  to be  a  victim  of  the</div><div class='add'>+#   * broken-ness.  We don't take them into account. */</div><div class='add'>+#  else</div><div class='add'>+#   define HAVE___HAS_BUILTIN 1</div><div class='add'>+#  endif</div><div class='add'>+# endif</div><div class='add'>+#</div><div class='add'>+# if defined(HAVE___HAS_BUILTIN)</div><div class='add'>+#  define BIGDECIMAL_HAS_BUILTIN(_) __has_builtin(_)</div><div class='add'>+#</div><div class='add'>+# elif defined(__GNUC__)</div><div class='add'>+#  define BIGDECIMAL_HAS_BUILTIN(_) BIGDECIMAL_HAS_BUILTIN_ ## _</div><div class='add'>+#  if defined(__GNUC__) &amp;&amp; (__GNUC__ &gt; 3 || (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ &gt;= 6))</div><div class='add'>+#   define BIGDECIMAL_HAS_BUILTIN___builtin_clz  1</div><div class='add'>+#   define BIGDECIMAL_HAS_BUILTIN___builtin_clzl 1</div><div class='add'>+#  else</div><div class='add'>+#   define BIGDECIMAL_HAS_BUILTIN___builtin_clz  0</div><div class='add'>+#   define BIGDECIMAL_HAS_BUILTIN___builtin_clzl 0</div><div class='add'>+#  endif</div><div class='add'>+# elif defined(_MSC_VER)</div><div class='add'>+#  define BIGDECIMAL_HAS_BUILTIN(_) 0</div><div class='add'>+#</div><div class='add'>+# else</div><div class='add'>+#  define BIGDECIMAL_HAS_BUILTIN(_) BIGDECIMAL_HAS_BUILTIN_ ## _</div><div class='add'>+#  define BIGDECIMAL_HAS_BUILTIN___builtin_clz   HAVE_BUILTIN___BUILTIN_CLZ</div><div class='add'>+#  define BIGDECIMAL_HAS_BUILTIN___builtin_clzl  HAVE_BUILTIN___BUILTIN_CLZL</div><div class='add'>+# endif</div><div class='add'>+#endif /* RBIMPL_HAS_BUILTIN */</div><div class='add'>+</div><div class='add'>+#ifndef __has_builtin</div><div class='add'>+# define __has_builtin(...) BIGDECIMAL_HAS_BUILTIN(__VA_ARGS__)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* BIGDECIMAL_HAS_FEATURE_H */</div><div class='head'>diff --git a/ext/bigdecimal/lib/bigdecimal.rb b/ext/bigdecimal/lib/bigdecimal.rb<br/>index 96995a32b3..8fd2587c84 100644<br/>--- a/<a href='/ruby.git/tree/ext/bigdecimal/lib/bigdecimal.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/lib/bigdecimal.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/lib/bigdecimal.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/lib/bigdecimal.rb</a></div><div class='hunk'>@@ -1,6 +1 @@</div><div class='ctx'> require 'bigdecimal.so'</div><div class='del'>-</div><div class='del'>-def BigDecimal.new(*args, **kwargs)</div><div class='del'>-  warn "BigDecimal.new is deprecated; use BigDecimal() method instead.", uplevel: 1</div><div class='del'>-  BigDecimal(*args, **kwargs)</div><div class='del'>-end</div><div class='head'>diff --git a/ext/bigdecimal/lib/bigdecimal/jacobian.rb b/ext/bigdecimal/lib/bigdecimal/jacobian.rb<br/>index 84c50248b7..4448024c74 100644<br/>--- a/<a href='/ruby.git/tree/ext/bigdecimal/lib/bigdecimal/jacobian.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/lib/bigdecimal/jacobian.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/lib/bigdecimal/jacobian.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/lib/bigdecimal/jacobian.rb</a></div><div class='hunk'>@@ -1,5 +1,7 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='del'>-#</div><div class='add'>+</div><div class='add'>+require 'bigdecimal'</div><div class='add'>+</div><div class='ctx'> # require 'bigdecimal/jacobian'</div><div class='ctx'> #</div><div class='ctx'> # Provides methods to compute the Jacobian matrix of a set of equations at a</div><div class='hunk'>@@ -21,9 +23,6 @@</div><div class='ctx'> #</div><div class='ctx'> # fx is f.values(x).</div><div class='ctx'> #</div><div class='del'>-</div><div class='del'>-require 'bigdecimal'</div><div class='del'>-</div><div class='ctx'> module Jacobian</div><div class='ctx'>   module_function</div><div class='ctx'> </div><div class='hunk'>@@ -43,8 +42,8 @@ module Jacobian</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-  # Computes the derivative of f[i] at x[i].</div><div class='del'>-  # fx is the value of f at x.</div><div class='add'>+  # Computes the derivative of +f[i]+ at +x[i]+.</div><div class='add'>+  # +fx+ is the value of +f+ at +x+.</div><div class='ctx'>   def dfdxi(f,fx,x,i)</div><div class='ctx'>     nRetry = 0</div><div class='ctx'>     n = x.size</div><div class='hunk'>@@ -76,7 +75,7 @@ module Jacobian</div><div class='ctx'>     deriv</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Computes the Jacobian of f at x. fx is the value of f at x.</div><div class='add'>+  # Computes the Jacobian of +f+ at +x+. +fx+ is the value of +f+ at +x+.</div><div class='ctx'>   def jacobian(f,fx,x)</div><div class='ctx'>     n = x.size</div><div class='ctx'>     dfdx = Array.new(n*n)</div><div class='head'>diff --git a/ext/bigdecimal/lib/bigdecimal/util.rb b/ext/bigdecimal/lib/bigdecimal/util.rb<br/>index 88f490cb45..ad92f7cfe6 100644<br/>--- a/<a href='/ruby.git/tree/ext/bigdecimal/lib/bigdecimal/util.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/lib/bigdecimal/util.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/lib/bigdecimal/util.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/lib/bigdecimal/util.rb</a></div><div class='hunk'>@@ -6,7 +6,6 @@</div><div class='ctx'> #++</div><div class='ctx'> </div><div class='ctx'> require 'bigdecimal'</div><div class='del'>-require 'bigdecimal/util.so'</div><div class='ctx'> </div><div class='ctx'> class Integer &lt; Numeric</div><div class='ctx'>   # call-seq:</div><div class='hunk'>@@ -34,17 +33,21 @@ class Float &lt; Numeric</div><div class='ctx'>   #</div><div class='ctx'>   # Returns the value of +float+ as a BigDecimal.</div><div class='ctx'>   # The +precision+ parameter is used to determine the number of</div><div class='del'>-  # significant digits for the result (the default is Float::DIG).</div><div class='add'>+  # significant digits for the result. When +precision+ is set to +0+,</div><div class='add'>+  # the number of digits to represent the float being converted is determined</div><div class='add'>+  # automatically.</div><div class='add'>+  # The default +precision+ is +0+.</div><div class='ctx'>   #</div><div class='ctx'>   #     require 'bigdecimal'</div><div class='ctx'>   #     require 'bigdecimal/util'</div><div class='ctx'>   #</div><div class='ctx'>   #     0.5.to_d         # =&gt; 0.5e0</div><div class='add'>+  #     1.234.to_d       # =&gt; 0.1234e1</div><div class='ctx'>   #     1.234.to_d(2)    # =&gt; 0.12e1</div><div class='ctx'>   #</div><div class='ctx'>   # See also BigDecimal::new.</div><div class='ctx'>   #</div><div class='del'>-  def to_d(precision=Float::DIG)</div><div class='add'>+  def to_d(precision=0)</div><div class='ctx'>     BigDecimal(self, precision)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='hunk'>@@ -66,6 +69,9 @@ class String</div><div class='ctx'>   #</div><div class='ctx'>   # See also BigDecimal::new.</div><div class='ctx'>   #</div><div class='add'>+  def to_d</div><div class='add'>+    BigDecimal.interpret_loosely(self)</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -129,6 +135,39 @@ class Rational &lt; Numeric</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> </div><div class='add'>+class Complex &lt; Numeric</div><div class='add'>+  # call-seq:</div><div class='add'>+  #     cmp.to_d             -&gt; bigdecimal</div><div class='add'>+  #     cmp.to_d(precision)  -&gt; bigdecimal</div><div class='add'>+  #</div><div class='add'>+  # Returns the value as a BigDecimal.</div><div class='add'>+  #</div><div class='add'>+  # The +precision+ parameter is required for a rational complex number.</div><div class='add'>+  # This parameter is used to determine the number of significant digits</div><div class='add'>+  # for the result.</div><div class='add'>+  #</div><div class='add'>+  #     require 'bigdecimal'</div><div class='add'>+  #     require 'bigdecimal/util'</div><div class='add'>+  #</div><div class='add'>+  #     Complex(0.1234567, 0).to_d(4)   # =&gt; 0.1235e0</div><div class='add'>+  #     Complex(Rational(22, 7), 0).to_d(3)   # =&gt; 0.314e1</div><div class='add'>+  #</div><div class='add'>+  # See also BigDecimal::new.</div><div class='add'>+  #</div><div class='add'>+  def to_d(*args)</div><div class='add'>+    BigDecimal(self) unless self.imag.zero? # to raise eerror</div><div class='add'>+</div><div class='add'>+    if args.length == 0</div><div class='add'>+      case self.real</div><div class='add'>+      when Rational</div><div class='add'>+        BigDecimal(self.real) # to raise error</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    self.real.to_d(*args)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'> class NilClass</div><div class='ctx'>   # call-seq:</div><div class='ctx'>   #     nil.to_d -&gt; bigdecimal</div><div class='head'>diff --git a/ext/bigdecimal/missing.c b/ext/bigdecimal/missing.c<br/>new file mode 100644<br/>index 0000000000..703232d92f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/missing.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/missing.c</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+#include &lt;ruby/ruby.h&gt;</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_RUBY_ATOMIC_H</div><div class='add'>+# include &lt;ruby/atomic.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef RUBY_ATOMIC_PTR_CAS</div><div class='add'>+# define ATOMIC_PTR_CAS(var, old, new) RUBY_ATOMIC_PTR_CAS(var, old, new)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(__GNUC__) &amp;&amp; (__GNUC__ &gt; 4 || (__GNUC__ == 4 &amp;&amp; __GNUC_MINOR__ &gt;= 6))</div><div class='add'>+/* GCC warns about unknown sanitizer, which is annoying. */</div><div class='add'>+# undef NO_SANITIZE</div><div class='add'>+# define NO_SANITIZE(x, y) \</div><div class='add'>+    _Pragma("GCC diagnostic push") \</div><div class='add'>+    _Pragma("GCC diagnostic ignored \"-Wattributes\"") \</div><div class='add'>+    __attribute__((__no_sanitize__(x))) y; \</div><div class='add'>+    _Pragma("GCC diagnostic pop")</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef strtod</div><div class='add'>+#define strtod BigDecimal_strtod</div><div class='add'>+#undef dtoa</div><div class='add'>+#define dtoa BigDecimal_dtoa</div><div class='add'>+#undef hdtoa</div><div class='add'>+#define hdtoa BigDecimal_hdtoa</div><div class='add'>+#include "missing/dtoa.c"</div><div class='head'>diff --git a/ext/bigdecimal/missing.h b/ext/bigdecimal/missing.h<br/>new file mode 100644<br/>index 0000000000..325554b5f5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/missing.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/missing.h</a></div><div class='hunk'>@@ -0,0 +1,196 @@</div><div class='add'>+#ifndef MISSING_H</div><div class='add'>+#define MISSING_H 1</div><div class='add'>+</div><div class='add'>+#if defined(__cplusplus)</div><div class='add'>+extern "C" {</div><div class='add'>+#if 0</div><div class='add'>+} /* satisfy cc-mode */</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STDLIB_H</div><div class='add'>+# include &lt;stdlib.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_MATH_H</div><div class='add'>+# include &lt;math.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef RB_UNUSED_VAR</div><div class='add'>+# if defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1911</div><div class='add'>+#  define RB_UNUSED_VAR(x) x [[maybe_unused]]</div><div class='add'>+</div><div class='add'>+# elif defined(__has_cpp_attribute) &amp;&amp; __has_cpp_attribute(maybe_unused)</div><div class='add'>+#  define RB_UNUSED_VAR(x) x [[maybe_unused]]</div><div class='add'>+</div><div class='add'>+# elif defined(__has_c_attribute) &amp;&amp; __has_c_attribute(maybe_unused)</div><div class='add'>+#  define RB_UNUSED_VAR(x) x [[maybe_unused]]</div><div class='add'>+</div><div class='add'>+# elif defined(__GNUC__)</div><div class='add'>+#  define RB_UNUSED_VAR(x) x __attribute__ ((unused))</div><div class='add'>+</div><div class='add'>+# else</div><div class='add'>+#  define RB_UNUSED_VAR(x) x</div><div class='add'>+# endif</div><div class='add'>+#endif /* RB_UNUSED_VAR */</div><div class='add'>+</div><div class='add'>+#if defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1310</div><div class='add'>+# define HAVE___ASSUME 1</div><div class='add'>+</div><div class='add'>+#elif defined(__INTEL_COMPILER) &amp;&amp; __INTEL_COMPILER &gt;= 1300</div><div class='add'>+# define HAVE___ASSUME 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef UNREACHABLE</div><div class='add'>+# if __has_builtin(__builtin_unreachable)</div><div class='add'>+#  define UNREACHABLE __builtin_unreachable()</div><div class='add'>+</div><div class='add'>+# elif defined(HAVE___ASSUME)</div><div class='add'>+#  define UNREACHABLE __assume(0)</div><div class='add'>+</div><div class='add'>+# else</div><div class='add'>+#  define UNREACHABLE		/* unreachable */</div><div class='add'>+# endif</div><div class='add'>+#endif /* UNREACHABLE */</div><div class='add'>+</div><div class='add'>+/* bool */</div><div class='add'>+</div><div class='add'>+#if defined(__bool_true_false_are_defined)</div><div class='add'>+# /* Take that. */</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_STDBOOL_H)</div><div class='add'>+# include &lt;stdbool.h&gt;</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+typedef unsigned char _Bool;</div><div class='add'>+# define bool _Bool</div><div class='add'>+# define true  ((_Bool)+1)</div><div class='add'>+# define false ((_Bool)-1)</div><div class='add'>+# define __bool_true_false_are_defined</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* abs */</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_LABS</div><div class='add'>+static inline long</div><div class='add'>+labs(long const x)</div><div class='add'>+{</div><div class='add'>+    if (x &lt; 0) return -x;</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_LLABS</div><div class='add'>+static inline LONG_LONG</div><div class='add'>+llabs(LONG_LONG const x)</div><div class='add'>+{</div><div class='add'>+    if (x &lt; 0) return -x;</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef vabs</div><div class='add'>+# undef vabs</div><div class='add'>+#endif</div><div class='add'>+#if SIZEOF_VALUE &lt;= SIZEOF_INT</div><div class='add'>+# define vabs abs</div><div class='add'>+#elif SIZEOF_VALUE &lt;= SIZEOF_LONG</div><div class='add'>+# define vabs labs</div><div class='add'>+#elif SIZEOF_VALUE &lt;= SIZEOF_LONG_LONG</div><div class='add'>+# define vabs llabs</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* finite */</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_FINITE</div><div class='add'>+static int</div><div class='add'>+finite(double)</div><div class='add'>+{</div><div class='add'>+    return !isnan(n) &amp;&amp; !isinf(n);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef isfinite</div><div class='add'>+# ifndef HAVE_ISFINITE</div><div class='add'>+#  define HAVE_ISFINITE 1</div><div class='add'>+#  define isfinite(x) finite(x)</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* dtoa */</div><div class='add'>+char *BigDecimal_dtoa(double d_, int mode, int ndigits, int *decpt, int *sign, char **rve);</div><div class='add'>+</div><div class='add'>+/* rational */</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_RB_RATIONAL_NUM</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_rational_num(VALUE rat)</div><div class='add'>+{</div><div class='add'>+#ifdef RRATIONAL</div><div class='add'>+    return RRATIONAL(rat)-&gt;num;</div><div class='add'>+#else</div><div class='add'>+    return rb_funcall(rat, rb_intern("numerator"), 0);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_RB_RATIONAL_DEN</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_rational_den(VALUE rat)</div><div class='add'>+{</div><div class='add'>+#ifdef RRATIONAL</div><div class='add'>+    return RRATIONAL(rat)-&gt;den;</div><div class='add'>+#else</div><div class='add'>+    return rb_funcall(rat, rb_intern("denominator"), 0);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* complex */</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_RB_COMPLEX_REAL</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_complex_real(VALUE cmp)</div><div class='add'>+{</div><div class='add'>+#ifdef RCOMPLEX</div><div class='add'>+  return RCOMPLEX(cmp)-&gt;real;</div><div class='add'>+#else</div><div class='add'>+  return rb_funcall(cmp, rb_intern("real"), 0);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_RB_COMPLEX_IMAG</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_complex_imag(VALUE cmp)</div><div class='add'>+{</div><div class='add'>+# ifdef RCOMPLEX</div><div class='add'>+  return RCOMPLEX(cmp)-&gt;imag;</div><div class='add'>+# else</div><div class='add'>+  return rb_funcall(cmp, rb_intern("imag"), 0);</div><div class='add'>+# endif</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* st */</div><div class='add'>+</div><div class='add'>+#ifndef ST2FIX</div><div class='add'>+# undef RB_ST2FIX</div><div class='add'>+# define RB_ST2FIX(h) LONG2FIX((long)(h))</div><div class='add'>+# define ST2FIX(h) RB_ST2FIX(h)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* warning */</div><div class='add'>+</div><div class='add'>+#if !defined(HAVE_RB_CATEGORY_WARN) || !defined(HAVE_CONST_RB_WARN_CATEGORY_DEPRECATED)</div><div class='add'>+#   define rb_category_warn(category, ...) rb_warn(__VA_ARGS__)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(__cplusplus)</div><div class='add'>+#if 0</div><div class='add'>+{ /* satisfy cc-mode */</div><div class='add'>+#endif</div><div class='add'>+}  /* extern "C" { */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* MISSING_H */</div><div class='head'>diff --git a/ext/bigdecimal/missing/dtoa.c b/ext/bigdecimal/missing/dtoa.c<br/>new file mode 100644<br/>index 0000000000..41b0a221d1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/missing/dtoa.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/missing/dtoa.c</a></div><div class='hunk'>@@ -0,0 +1,3462 @@</div><div class='add'>+/****************************************************************</div><div class='add'>+ *</div><div class='add'>+ * The author of this software is David M. Gay.</div><div class='add'>+ *</div><div class='add'>+ * Copyright (c) 1991, 2000, 2001 by Lucent Technologies.</div><div class='add'>+ *</div><div class='add'>+ * Permission to use, copy, modify, and distribute this software for any</div><div class='add'>+ * purpose without fee is hereby granted, provided that this entire notice</div><div class='add'>+ * is included in all copies of any software which is or includes a copy</div><div class='add'>+ * or modification of this software and in all copies of the supporting</div><div class='add'>+ * documentation for such software.</div><div class='add'>+ *</div><div class='add'>+ * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED</div><div class='add'>+ * WARRANTY.  IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY</div><div class='add'>+ * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY</div><div class='add'>+ * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.</div><div class='add'>+ *</div><div class='add'>+ ***************************************************************/</div><div class='add'>+</div><div class='add'>+/* Please send bug reports to David M. Gay (dmg at acm dot org,</div><div class='add'>+ * with " at " changed at "@" and " dot " changed to ".").	*/</div><div class='add'>+</div><div class='add'>+/* On a machine with IEEE extended-precision registers, it is</div><div class='add'>+ * necessary to specify double-precision (53-bit) rounding precision</div><div class='add'>+ * before invoking strtod or dtoa.  If the machine uses (the equivalent</div><div class='add'>+ * of) Intel 80x87 arithmetic, the call</div><div class='add'>+ *	_control87(PC_53, MCW_PC);</div><div class='add'>+ * does this with many compilers.  Whether this or another call is</div><div class='add'>+ * appropriate depends on the compiler; for this to work, it may be</div><div class='add'>+ * necessary to #include "float.h" or another system-dependent header</div><div class='add'>+ * file.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/* strtod for IEEE-, VAX-, and IBM-arithmetic machines.</div><div class='add'>+ *</div><div class='add'>+ * This strtod returns a nearest machine number to the input decimal</div><div class='add'>+ * string (or sets errno to ERANGE).  With IEEE arithmetic, ties are</div><div class='add'>+ * broken by the IEEE round-even rule.  Otherwise ties are broken by</div><div class='add'>+ * biased rounding (add half and chop).</div><div class='add'>+ *</div><div class='add'>+ * Inspired loosely by William D. Clinger's paper "How to Read Floating</div><div class='add'>+ * Point Numbers Accurately" [Proc. ACM SIGPLAN '90, pp. 92-101].</div><div class='add'>+ *</div><div class='add'>+ * Modifications:</div><div class='add'>+ *</div><div class='add'>+ *	1. We only require IEEE, IBM, or VAX double-precision</div><div class='add'>+ *		arithmetic (not IEEE double-extended).</div><div class='add'>+ *	2. We get by with floating-point arithmetic in a case that</div><div class='add'>+ *		Clinger missed -- when we're computing d * 10^n</div><div class='add'>+ *		for a small integer d and the integer n is not too</div><div class='add'>+ *		much larger than 22 (the maximum integer k for which</div><div class='add'>+ *		we can represent 10^k exactly), we may be able to</div><div class='add'>+ *		compute (d*10^k) * 10^(e-k) with just one roundoff.</div><div class='add'>+ *	3. Rather than a bit-at-a-time adjustment of the binary</div><div class='add'>+ *		result in the hard case, we use floating-point</div><div class='add'>+ *		arithmetic to determine the adjustment to within</div><div class='add'>+ *		one bit; only in really hard cases do we need to</div><div class='add'>+ *		compute a second residual.</div><div class='add'>+ *	4. Because of 3., we don't need a large table of powers of 10</div><div class='add'>+ *		for ten-to-e (just some small tables, e.g. of 10^k</div><div class='add'>+ *		for 0 &lt;= k &lt;= 22).</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * #define IEEE_LITTLE_ENDIAN for IEEE-arithmetic machines where the least</div><div class='add'>+ *	significant byte has the lowest address.</div><div class='add'>+ * #define IEEE_BIG_ENDIAN for IEEE-arithmetic machines where the most</div><div class='add'>+ *	significant byte has the lowest address.</div><div class='add'>+ * #define Long int on machines with 32-bit ints and 64-bit longs.</div><div class='add'>+ * #define IBM for IBM mainframe-style floating-point arithmetic.</div><div class='add'>+ * #define VAX for VAX-style floating-point arithmetic (D_floating).</div><div class='add'>+ * #define No_leftright to omit left-right logic in fast floating-point</div><div class='add'>+ *	computation of dtoa.</div><div class='add'>+ * #define Honor_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3</div><div class='add'>+ *	and strtod and dtoa should round accordingly.</div><div class='add'>+ * #define Check_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3</div><div class='add'>+ *	and Honor_FLT_ROUNDS is not #defined.</div><div class='add'>+ * #define RND_PRODQUOT to use rnd_prod and rnd_quot (assembly routines</div><div class='add'>+ *	that use extended-precision instructions to compute rounded</div><div class='add'>+ *	products and quotients) with IBM.</div><div class='add'>+ * #define ROUND_BIASED for IEEE-format with biased rounding.</div><div class='add'>+ * #define Inaccurate_Divide for IEEE-format with correctly rounded</div><div class='add'>+ *	products but inaccurate quotients, e.g., for Intel i860.</div><div class='add'>+ * #define NO_LONG_LONG on machines that do not have a "long long"</div><div class='add'>+ *	integer type (of &gt;= 64 bits).  On such machines, you can</div><div class='add'>+ *	#define Just_16 to store 16 bits per 32-bit Long when doing</div><div class='add'>+ *	high-precision integer arithmetic.  Whether this speeds things</div><div class='add'>+ *	up or slows things down depends on the machine and the number</div><div class='add'>+ *	being converted.  If long long is available and the name is</div><div class='add'>+ *	something other than "long long", #define Llong to be the name,</div><div class='add'>+ *	and if "unsigned Llong" does not work as an unsigned version of</div><div class='add'>+ *	Llong, #define #ULLong to be the corresponding unsigned type.</div><div class='add'>+ * #define KR_headers for old-style C function headers.</div><div class='add'>+ * #define Bad_float_h if your system lacks a float.h or if it does not</div><div class='add'>+ *	define some or all of DBL_DIG, DBL_MAX_10_EXP, DBL_MAX_EXP,</div><div class='add'>+ *	FLT_RADIX, FLT_ROUNDS, and DBL_MAX.</div><div class='add'>+ * #define MALLOC your_malloc, where your_malloc(n) acts like malloc(n)</div><div class='add'>+ *	if memory is available and otherwise does something you deem</div><div class='add'>+ *	appropriate.  If MALLOC is undefined, malloc will be invoked</div><div class='add'>+ *	directly -- and assumed always to succeed.</div><div class='add'>+ * #define Omit_Private_Memory to omit logic (added Jan. 1998) for making</div><div class='add'>+ *	memory allocations from a private pool of memory when possible.</div><div class='add'>+ *	When used, the private pool is PRIVATE_MEM bytes long:  2304 bytes,</div><div class='add'>+ *	unless #defined to be a different length.  This default length</div><div class='add'>+ *	suffices to get rid of MALLOC calls except for unusual cases,</div><div class='add'>+ *	such as decimal-to-binary conversion of a very long string of</div><div class='add'>+ *	digits.  The longest string dtoa can return is about 751 bytes</div><div class='add'>+ *	long.  For conversions by strtod of strings of 800 digits and</div><div class='add'>+ *	all dtoa conversions in single-threaded executions with 8-byte</div><div class='add'>+ *	pointers, PRIVATE_MEM &gt;= 7400 appears to suffice; with 4-byte</div><div class='add'>+ *	pointers, PRIVATE_MEM &gt;= 7112 appears adequate.</div><div class='add'>+ * #define INFNAN_CHECK on IEEE systems to cause strtod to check for</div><div class='add'>+ *	Infinity and NaN (case insensitively).  On some systems (e.g.,</div><div class='add'>+ *	some HP systems), it may be necessary to #define NAN_WORD0</div><div class='add'>+ *	appropriately -- to the most significant word of a quiet NaN.</div><div class='add'>+ *	(On HP Series 700/800 machines, -DNAN_WORD0=0x7ff40000 works.)</div><div class='add'>+ *	When INFNAN_CHECK is #defined and No_Hex_NaN is not #defined,</div><div class='add'>+ *	strtod also accepts (case insensitively) strings of the form</div><div class='add'>+ *	NaN(x), where x is a string of hexadecimal digits and spaces;</div><div class='add'>+ *	if there is only one string of hexadecimal digits, it is taken</div><div class='add'>+ *	for the 52 fraction bits of the resulting NaN; if there are two</div><div class='add'>+ *	or more strings of hex digits, the first is for the high 20 bits,</div><div class='add'>+ *	the second and subsequent for the low 32 bits, with intervening</div><div class='add'>+ *	white space ignored; but if this results in none of the 52</div><div class='add'>+ *	fraction bits being on (an IEEE Infinity symbol), then NAN_WORD0</div><div class='add'>+ *	and NAN_WORD1 are used instead.</div><div class='add'>+ * #define MULTIPLE_THREADS if the system offers preemptively scheduled</div><div class='add'>+ *	multiple threads.  In this case, you must provide (or suitably</div><div class='add'>+ *	#define) two locks, acquired by ACQUIRE_DTOA_LOCK(n) and freed</div><div class='add'>+ *	by FREE_DTOA_LOCK(n) for n = 0 or 1.  (The second lock, accessed</div><div class='add'>+ *	in pow5mult, ensures lazy evaluation of only one copy of high</div><div class='add'>+ *	powers of 5; omitting this lock would introduce a small</div><div class='add'>+ *	probability of wasting memory, but would otherwise be harmless.)</div><div class='add'>+ *	You must also invoke freedtoa(s) to free the value s returned by</div><div class='add'>+ *	dtoa.  You may do so whether or not MULTIPLE_THREADS is #defined.</div><div class='add'>+ * #define NO_IEEE_Scale to disable new (Feb. 1997) logic in strtod that</div><div class='add'>+ *	avoids underflows on inputs whose result does not underflow.</div><div class='add'>+ *	If you #define NO_IEEE_Scale on a machine that uses IEEE-format</div><div class='add'>+ *	floating-point numbers and flushes underflows to zero rather</div><div class='add'>+ *	than implementing gradual underflow, then you must also #define</div><div class='add'>+ *	Sudden_Underflow.</div><div class='add'>+ * #define YES_ALIAS to permit aliasing certain double values with</div><div class='add'>+ *	arrays of ULongs.  This leads to slightly better code with</div><div class='add'>+ *	some compilers and was always used prior to 19990916, but it</div><div class='add'>+ *	is not strictly legal and can cause trouble with aggressively</div><div class='add'>+ *	optimizing compilers (e.g., gcc 2.95.1 under -O2).</div><div class='add'>+ * #define USE_LOCALE to use the current locale's decimal_point value.</div><div class='add'>+ * #define SET_INEXACT if IEEE arithmetic is being used and extra</div><div class='add'>+ *	computation should be done to set the inexact flag when the</div><div class='add'>+ *	result is inexact and avoid setting inexact when the result</div><div class='add'>+ *	is exact.  In this case, dtoa.c must be compiled in</div><div class='add'>+ *	an environment, perhaps provided by #include "dtoa.c" in a</div><div class='add'>+ *	suitable wrapper, that defines two functions,</div><div class='add'>+ *		int get_inexact(void);</div><div class='add'>+ *		void clear_inexact(void);</div><div class='add'>+ *	such that get_inexact() returns a nonzero value if the</div><div class='add'>+ *	inexact bit is already set, and clear_inexact() sets the</div><div class='add'>+ *	inexact bit to 0.  When SET_INEXACT is #defined, strtod</div><div class='add'>+ *	also does extra computations to set the underflow and overflow</div><div class='add'>+ *	flags when appropriate (i.e., when the result is tiny and</div><div class='add'>+ *	inexact or when it is a numeric value rounded to +-infinity).</div><div class='add'>+ * #define NO_ERRNO if strtod should not assign errno = ERANGE when</div><div class='add'>+ *	the result overflows to +-Infinity or underflows to 0.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#ifdef WORDS_BIGENDIAN</div><div class='add'>+#define IEEE_BIG_ENDIAN</div><div class='add'>+#else</div><div class='add'>+#define IEEE_LITTLE_ENDIAN</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef __vax__</div><div class='add'>+#define VAX</div><div class='add'>+#undef IEEE_BIG_ENDIAN</div><div class='add'>+#undef IEEE_LITTLE_ENDIAN</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(__arm__) &amp;&amp; !defined(__VFP_FP__)</div><div class='add'>+#define IEEE_BIG_ENDIAN</div><div class='add'>+#undef IEEE_LITTLE_ENDIAN</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef Long</div><div class='add'>+#undef ULong</div><div class='add'>+</div><div class='add'>+#include &lt;limits.h&gt;</div><div class='add'>+</div><div class='add'>+#if (INT_MAX &gt;&gt; 30) &amp;&amp; !(INT_MAX &gt;&gt; 31)</div><div class='add'>+#define Long int</div><div class='add'>+#define ULong unsigned int</div><div class='add'>+#elif (LONG_MAX &gt;&gt; 30) &amp;&amp; !(LONG_MAX &gt;&gt; 31)</div><div class='add'>+#define Long long int</div><div class='add'>+#define ULong unsigned long int</div><div class='add'>+#else</div><div class='add'>+#error No 32bit integer</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if HAVE_LONG_LONG</div><div class='add'>+#define Llong LONG_LONG</div><div class='add'>+#else</div><div class='add'>+#define NO_LONG_LONG</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef DEBUG</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+#define Bug(x) {fprintf(stderr, "%s\n", (x)); exit(EXIT_FAILURE);}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef ISDIGIT</div><div class='add'>+#include &lt;ctype.h&gt;</div><div class='add'>+#define ISDIGIT(c) isdigit(c)</div><div class='add'>+#endif</div><div class='add'>+#include &lt;errno.h&gt;</div><div class='add'>+#include &lt;stdlib.h&gt;</div><div class='add'>+#include &lt;string.h&gt;</div><div class='add'>+</div><div class='add'>+#ifdef USE_LOCALE</div><div class='add'>+#include &lt;locale.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef MALLOC</div><div class='add'>+extern void *MALLOC(size_t);</div><div class='add'>+#else</div><div class='add'>+#define MALLOC xmalloc</div><div class='add'>+#endif</div><div class='add'>+#ifdef FREE</div><div class='add'>+extern void FREE(void*);</div><div class='add'>+#else</div><div class='add'>+#define FREE xfree</div><div class='add'>+#endif</div><div class='add'>+#ifndef NO_SANITIZE</div><div class='add'>+#define NO_SANITIZE(x, y) y</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef Omit_Private_Memory</div><div class='add'>+#ifndef PRIVATE_MEM</div><div class='add'>+#define PRIVATE_MEM 2304</div><div class='add'>+#endif</div><div class='add'>+#define PRIVATE_mem ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double))</div><div class='add'>+static double private_mem[PRIVATE_mem], *pmem_next = private_mem;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef IEEE_Arith</div><div class='add'>+#undef Avoid_Underflow</div><div class='add'>+#ifdef IEEE_BIG_ENDIAN</div><div class='add'>+#define IEEE_Arith</div><div class='add'>+#endif</div><div class='add'>+#ifdef IEEE_LITTLE_ENDIAN</div><div class='add'>+#define IEEE_Arith</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef Bad_float_h</div><div class='add'>+</div><div class='add'>+#ifdef IEEE_Arith</div><div class='add'>+#define DBL_DIG 15</div><div class='add'>+#define DBL_MAX_10_EXP 308</div><div class='add'>+#define DBL_MAX_EXP 1024</div><div class='add'>+#define FLT_RADIX 2</div><div class='add'>+#endif /*IEEE_Arith*/</div><div class='add'>+</div><div class='add'>+#ifdef IBM</div><div class='add'>+#define DBL_DIG 16</div><div class='add'>+#define DBL_MAX_10_EXP 75</div><div class='add'>+#define DBL_MAX_EXP 63</div><div class='add'>+#define FLT_RADIX 16</div><div class='add'>+#define DBL_MAX 7.2370055773322621e+75</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef VAX</div><div class='add'>+#define DBL_DIG 16</div><div class='add'>+#define DBL_MAX_10_EXP 38</div><div class='add'>+#define DBL_MAX_EXP 127</div><div class='add'>+#define FLT_RADIX 2</div><div class='add'>+#define DBL_MAX 1.7014118346046923e+38</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef LONG_MAX</div><div class='add'>+#define LONG_MAX 2147483647</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#else /* ifndef Bad_float_h */</div><div class='add'>+#include &lt;float.h&gt;</div><div class='add'>+#endif /* Bad_float_h */</div><div class='add'>+</div><div class='add'>+#include &lt;math.h&gt;</div><div class='add'>+</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+extern "C" {</div><div class='add'>+#if 0</div><div class='add'>+} /* satisfy cc-mode */</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef hexdigit</div><div class='add'>+static const char hexdigit[] = "0123456789abcdef0123456789ABCDEF";</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(IEEE_LITTLE_ENDIAN) + defined(IEEE_BIG_ENDIAN) + defined(VAX) + defined(IBM) != 1</div><div class='add'>+Exactly one of IEEE_LITTLE_ENDIAN, IEEE_BIG_ENDIAN, VAX, or IBM should be defined.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+typedef union { double d; ULong L[2]; } U;</div><div class='add'>+</div><div class='add'>+#ifdef YES_ALIAS</div><div class='add'>+typedef double double_u;</div><div class='add'>+#  define dval(x) (x)</div><div class='add'>+#  ifdef IEEE_LITTLE_ENDIAN</div><div class='add'>+#    define word0(x) (((ULong *)&amp;(x))[1])</div><div class='add'>+#    define word1(x) (((ULong *)&amp;(x))[0])</div><div class='add'>+#  else</div><div class='add'>+#    define word0(x) (((ULong *)&amp;(x))[0])</div><div class='add'>+#    define word1(x) (((ULong *)&amp;(x))[1])</div><div class='add'>+#  endif</div><div class='add'>+#else</div><div class='add'>+typedef U double_u;</div><div class='add'>+#  ifdef IEEE_LITTLE_ENDIAN</div><div class='add'>+#    define word0(x) ((x).L[1])</div><div class='add'>+#    define word1(x) ((x).L[0])</div><div class='add'>+#  else</div><div class='add'>+#    define word0(x) ((x).L[0])</div><div class='add'>+#    define word1(x) ((x).L[1])</div><div class='add'>+#  endif</div><div class='add'>+#  define dval(x) ((x).d)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* The following definition of Storeinc is appropriate for MIPS processors.</div><div class='add'>+ * An alternative that might be better on some machines is</div><div class='add'>+ * #define Storeinc(a,b,c) (*a++ = b &lt;&lt; 16 | c &amp; 0xffff)</div><div class='add'>+ */</div><div class='add'>+#if defined(IEEE_LITTLE_ENDIAN) + defined(VAX) + defined(__arm__)</div><div class='add'>+#define Storeinc(a,b,c) (((unsigned short *)(a))[1] = (unsigned short)(b), \</div><div class='add'>+((unsigned short *)(a))[0] = (unsigned short)(c), (a)++)</div><div class='add'>+#else</div><div class='add'>+#define Storeinc(a,b,c) (((unsigned short *)(a))[0] = (unsigned short)(b), \</div><div class='add'>+((unsigned short *)(a))[1] = (unsigned short)(c), (a)++)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* #define P DBL_MANT_DIG */</div><div class='add'>+/* Ten_pmax = floor(P*log(2)/log(5)) */</div><div class='add'>+/* Bletch = (highest power of 2 &lt; DBL_MAX_10_EXP) / 16 */</div><div class='add'>+/* Quick_max = floor((P-1)*log(FLT_RADIX)/log(10) - 1) */</div><div class='add'>+/* Int_max = floor(P*log(FLT_RADIX)/log(10) - 1) */</div><div class='add'>+</div><div class='add'>+#ifdef IEEE_Arith</div><div class='add'>+#define Exp_shift  20</div><div class='add'>+#define Exp_shift1 20</div><div class='add'>+#define Exp_msk1    0x100000</div><div class='add'>+#define Exp_msk11   0x100000</div><div class='add'>+#define Exp_mask  0x7ff00000</div><div class='add'>+#define P 53</div><div class='add'>+#define Bias 1023</div><div class='add'>+#define Emin (-1022)</div><div class='add'>+#define Exp_1  0x3ff00000</div><div class='add'>+#define Exp_11 0x3ff00000</div><div class='add'>+#define Ebits 11</div><div class='add'>+#define Frac_mask  0xfffff</div><div class='add'>+#define Frac_mask1 0xfffff</div><div class='add'>+#define Ten_pmax 22</div><div class='add'>+#define Bletch 0x10</div><div class='add'>+#define Bndry_mask  0xfffff</div><div class='add'>+#define Bndry_mask1 0xfffff</div><div class='add'>+#define LSB 1</div><div class='add'>+#define Sign_bit 0x80000000</div><div class='add'>+#define Log2P 1</div><div class='add'>+#define Tiny0 0</div><div class='add'>+#define Tiny1 1</div><div class='add'>+#define Quick_max 14</div><div class='add'>+#define Int_max 14</div><div class='add'>+#ifndef NO_IEEE_Scale</div><div class='add'>+#define Avoid_Underflow</div><div class='add'>+#ifdef Flush_Denorm	/* debugging option */</div><div class='add'>+#undef Sudden_Underflow</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef Flt_Rounds</div><div class='add'>+#ifdef FLT_ROUNDS</div><div class='add'>+#define Flt_Rounds FLT_ROUNDS</div><div class='add'>+#else</div><div class='add'>+#define Flt_Rounds 1</div><div class='add'>+#endif</div><div class='add'>+#endif /*Flt_Rounds*/</div><div class='add'>+</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+#define Rounding rounding</div><div class='add'>+#undef Check_FLT_ROUNDS</div><div class='add'>+#define Check_FLT_ROUNDS</div><div class='add'>+#else</div><div class='add'>+#define Rounding Flt_Rounds</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#else /* ifndef IEEE_Arith */</div><div class='add'>+#undef Check_FLT_ROUNDS</div><div class='add'>+#undef Honor_FLT_ROUNDS</div><div class='add'>+#undef SET_INEXACT</div><div class='add'>+#undef  Sudden_Underflow</div><div class='add'>+#define Sudden_Underflow</div><div class='add'>+#ifdef IBM</div><div class='add'>+#undef Flt_Rounds</div><div class='add'>+#define Flt_Rounds 0</div><div class='add'>+#define Exp_shift  24</div><div class='add'>+#define Exp_shift1 24</div><div class='add'>+#define Exp_msk1   0x1000000</div><div class='add'>+#define Exp_msk11  0x1000000</div><div class='add'>+#define Exp_mask  0x7f000000</div><div class='add'>+#define P 14</div><div class='add'>+#define Bias 65</div><div class='add'>+#define Exp_1  0x41000000</div><div class='add'>+#define Exp_11 0x41000000</div><div class='add'>+#define Ebits 8	/* exponent has 7 bits, but 8 is the right value in b2d */</div><div class='add'>+#define Frac_mask  0xffffff</div><div class='add'>+#define Frac_mask1 0xffffff</div><div class='add'>+#define Bletch 4</div><div class='add'>+#define Ten_pmax 22</div><div class='add'>+#define Bndry_mask  0xefffff</div><div class='add'>+#define Bndry_mask1 0xffffff</div><div class='add'>+#define LSB 1</div><div class='add'>+#define Sign_bit 0x80000000</div><div class='add'>+#define Log2P 4</div><div class='add'>+#define Tiny0 0x100000</div><div class='add'>+#define Tiny1 0</div><div class='add'>+#define Quick_max 14</div><div class='add'>+#define Int_max 15</div><div class='add'>+#else /* VAX */</div><div class='add'>+#undef Flt_Rounds</div><div class='add'>+#define Flt_Rounds 1</div><div class='add'>+#define Exp_shift  23</div><div class='add'>+#define Exp_shift1 7</div><div class='add'>+#define Exp_msk1    0x80</div><div class='add'>+#define Exp_msk11   0x800000</div><div class='add'>+#define Exp_mask  0x7f80</div><div class='add'>+#define P 56</div><div class='add'>+#define Bias 129</div><div class='add'>+#define Exp_1  0x40800000</div><div class='add'>+#define Exp_11 0x4080</div><div class='add'>+#define Ebits 8</div><div class='add'>+#define Frac_mask  0x7fffff</div><div class='add'>+#define Frac_mask1 0xffff007f</div><div class='add'>+#define Ten_pmax 24</div><div class='add'>+#define Bletch 2</div><div class='add'>+#define Bndry_mask  0xffff007f</div><div class='add'>+#define Bndry_mask1 0xffff007f</div><div class='add'>+#define LSB 0x10000</div><div class='add'>+#define Sign_bit 0x8000</div><div class='add'>+#define Log2P 1</div><div class='add'>+#define Tiny0 0x80</div><div class='add'>+#define Tiny1 0</div><div class='add'>+#define Quick_max 15</div><div class='add'>+#define Int_max 15</div><div class='add'>+#endif /* IBM, VAX */</div><div class='add'>+#endif /* IEEE_Arith */</div><div class='add'>+</div><div class='add'>+#ifndef IEEE_Arith</div><div class='add'>+#define ROUND_BIASED</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef RND_PRODQUOT</div><div class='add'>+#define rounded_product(a,b) ((a) = rnd_prod((a), (b)))</div><div class='add'>+#define rounded_quotient(a,b) ((a) = rnd_quot((a), (b)))</div><div class='add'>+extern double rnd_prod(double, double), rnd_quot(double, double);</div><div class='add'>+#else</div><div class='add'>+#define rounded_product(a,b) ((a) *= (b))</div><div class='add'>+#define rounded_quotient(a,b) ((a) /= (b))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1))</div><div class='add'>+#define Big1 0xffffffff</div><div class='add'>+</div><div class='add'>+#ifndef Pack_32</div><div class='add'>+#define Pack_32</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define FFFFFFFF 0xffffffffUL</div><div class='add'>+</div><div class='add'>+#ifdef NO_LONG_LONG</div><div class='add'>+#undef ULLong</div><div class='add'>+#ifdef Just_16</div><div class='add'>+#undef Pack_32</div><div class='add'>+/* When Pack_32 is not defined, we store 16 bits per 32-bit Long.</div><div class='add'>+ * This makes some inner loops simpler and sometimes saves work</div><div class='add'>+ * during multiplications, but it often seems to make things slightly</div><div class='add'>+ * slower.  Hence the default is now to store 32 bits per Long.</div><div class='add'>+ */</div><div class='add'>+#endif</div><div class='add'>+#else	/* long long available */</div><div class='add'>+#ifndef Llong</div><div class='add'>+#define Llong long long</div><div class='add'>+#endif</div><div class='add'>+#ifndef ULLong</div><div class='add'>+#define ULLong unsigned Llong</div><div class='add'>+#endif</div><div class='add'>+#endif /* NO_LONG_LONG */</div><div class='add'>+</div><div class='add'>+#define MULTIPLE_THREADS 1</div><div class='add'>+</div><div class='add'>+#ifndef MULTIPLE_THREADS</div><div class='add'>+#define ACQUIRE_DTOA_LOCK(n)	/*nothing*/</div><div class='add'>+#define FREE_DTOA_LOCK(n)	/*nothing*/</div><div class='add'>+#else</div><div class='add'>+#define ACQUIRE_DTOA_LOCK(n)	/*unused right now*/</div><div class='add'>+#define FREE_DTOA_LOCK(n)	/*unused right now*/</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef ATOMIC_PTR_CAS</div><div class='add'>+#define ATOMIC_PTR_CAS(var, old, new) ((var) = (new), (old))</div><div class='add'>+#endif</div><div class='add'>+#ifndef LIKELY</div><div class='add'>+#define LIKELY(x) (x)</div><div class='add'>+#endif</div><div class='add'>+#ifndef UNLIKELY</div><div class='add'>+#define UNLIKELY(x) (x)</div><div class='add'>+#endif</div><div class='add'>+#ifndef ASSUME</div><div class='add'>+#define ASSUME(x) (void)(x)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define Kmax 15</div><div class='add'>+</div><div class='add'>+struct Bigint {</div><div class='add'>+    struct Bigint *next;</div><div class='add'>+    int k, maxwds, sign, wds;</div><div class='add'>+    ULong x[1];</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef struct Bigint Bigint;</div><div class='add'>+</div><div class='add'>+static Bigint *freelist[Kmax+1];</div><div class='add'>+</div><div class='add'>+static Bigint *</div><div class='add'>+Balloc(int k)</div><div class='add'>+{</div><div class='add'>+    int x;</div><div class='add'>+    Bigint *rv;</div><div class='add'>+#ifndef Omit_Private_Memory</div><div class='add'>+    size_t len;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    rv = 0;</div><div class='add'>+    ACQUIRE_DTOA_LOCK(0);</div><div class='add'>+    if (k &lt;= Kmax) {</div><div class='add'>+        rv = freelist[k];</div><div class='add'>+        while (rv) {</div><div class='add'>+            Bigint *rvn = rv;</div><div class='add'>+            rv = ATOMIC_PTR_CAS(freelist[k], rv, rv-&gt;next);</div><div class='add'>+            if (LIKELY(rvn == rv)) {</div><div class='add'>+                ASSUME(rv);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (!rv) {</div><div class='add'>+        x = 1 &lt;&lt; k;</div><div class='add'>+#ifdef Omit_Private_Memory</div><div class='add'>+        rv = (Bigint *)MALLOC(sizeof(Bigint) + (x-1)*sizeof(ULong));</div><div class='add'>+#else</div><div class='add'>+        len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1)</div><div class='add'>+                /sizeof(double);</div><div class='add'>+        if (k &lt;= Kmax) {</div><div class='add'>+            double *pnext = pmem_next;</div><div class='add'>+            while (pnext - private_mem + len &lt;= PRIVATE_mem) {</div><div class='add'>+                double *p = pnext;</div><div class='add'>+                pnext = ATOMIC_PTR_CAS(pmem_next, pnext, pnext + len);</div><div class='add'>+                if (LIKELY(p == pnext)) {</div><div class='add'>+                    rv = (Bigint*)pnext;</div><div class='add'>+                    ASSUME(rv);</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (!rv)</div><div class='add'>+            rv = (Bigint*)MALLOC(len*sizeof(double));</div><div class='add'>+#endif</div><div class='add'>+        rv-&gt;k = k;</div><div class='add'>+        rv-&gt;maxwds = x;</div><div class='add'>+    }</div><div class='add'>+    FREE_DTOA_LOCK(0);</div><div class='add'>+    rv-&gt;sign = rv-&gt;wds = 0;</div><div class='add'>+    return rv;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+Bfree(Bigint *v)</div><div class='add'>+{</div><div class='add'>+    Bigint *vn;</div><div class='add'>+    if (v) {</div><div class='add'>+        if (v-&gt;k &gt; Kmax) {</div><div class='add'>+            FREE(v);</div><div class='add'>+            return;</div><div class='add'>+        }</div><div class='add'>+        ACQUIRE_DTOA_LOCK(0);</div><div class='add'>+        do {</div><div class='add'>+            vn = v-&gt;next = freelist[v-&gt;k];</div><div class='add'>+        } while (UNLIKELY(ATOMIC_PTR_CAS(freelist[v-&gt;k], vn, v) != vn));</div><div class='add'>+        FREE_DTOA_LOCK(0);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define Bcopy(x,y) memcpy((char *)&amp;(x)-&gt;sign, (char *)&amp;(y)-&gt;sign, \</div><div class='add'>+(y)-&gt;wds*sizeof(Long) + 2*sizeof(int))</div><div class='add'>+</div><div class='add'>+static Bigint *</div><div class='add'>+multadd(Bigint *b, int m, int a)   /* multiply by m and add a */</div><div class='add'>+{</div><div class='add'>+    int i, wds;</div><div class='add'>+    ULong *x;</div><div class='add'>+#ifdef ULLong</div><div class='add'>+    ULLong carry, y;</div><div class='add'>+#else</div><div class='add'>+    ULong carry, y;</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    ULong xi, z;</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+    Bigint *b1;</div><div class='add'>+</div><div class='add'>+    wds = b-&gt;wds;</div><div class='add'>+    x = b-&gt;x;</div><div class='add'>+    i = 0;</div><div class='add'>+    carry = a;</div><div class='add'>+    do {</div><div class='add'>+#ifdef ULLong</div><div class='add'>+        y = *x * (ULLong)m + carry;</div><div class='add'>+        carry = y &gt;&gt; 32;</div><div class='add'>+        *x++ = (ULong)(y &amp; FFFFFFFF);</div><div class='add'>+#else</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+        xi = *x;</div><div class='add'>+        y = (xi &amp; 0xffff) * m + carry;</div><div class='add'>+        z = (xi &gt;&gt; 16) * m + (y &gt;&gt; 16);</div><div class='add'>+        carry = z &gt;&gt; 16;</div><div class='add'>+        *x++ = (z &lt;&lt; 16) + (y &amp; 0xffff);</div><div class='add'>+#else</div><div class='add'>+        y = *x * m + carry;</div><div class='add'>+        carry = y &gt;&gt; 16;</div><div class='add'>+        *x++ = y &amp; 0xffff;</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+    } while (++i &lt; wds);</div><div class='add'>+    if (carry) {</div><div class='add'>+        if (wds &gt;= b-&gt;maxwds) {</div><div class='add'>+            b1 = Balloc(b-&gt;k+1);</div><div class='add'>+            Bcopy(b1, b);</div><div class='add'>+            Bfree(b);</div><div class='add'>+            b = b1;</div><div class='add'>+        }</div><div class='add'>+        b-&gt;x[wds++] = (ULong)carry;</div><div class='add'>+        b-&gt;wds = wds;</div><div class='add'>+    }</div><div class='add'>+    return b;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static Bigint *</div><div class='add'>+s2b(const char *s, int nd0, int nd, ULong y9)</div><div class='add'>+{</div><div class='add'>+    Bigint *b;</div><div class='add'>+    int i, k;</div><div class='add'>+    Long x, y;</div><div class='add'>+</div><div class='add'>+    x = (nd + 8) / 9;</div><div class='add'>+    for (k = 0, y = 1; x &gt; y; y &lt;&lt;= 1, k++) ;</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    b = Balloc(k);</div><div class='add'>+    b-&gt;x[0] = y9;</div><div class='add'>+    b-&gt;wds = 1;</div><div class='add'>+#else</div><div class='add'>+    b = Balloc(k+1);</div><div class='add'>+    b-&gt;x[0] = y9 &amp; 0xffff;</div><div class='add'>+    b-&gt;wds = (b-&gt;x[1] = y9 &gt;&gt; 16) ? 2 : 1;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    i = 9;</div><div class='add'>+    if (9 &lt; nd0) {</div><div class='add'>+        s += 9;</div><div class='add'>+        do {</div><div class='add'>+            b = multadd(b, 10, *s++ - '0');</div><div class='add'>+        } while (++i &lt; nd0);</div><div class='add'>+        s++;</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+        s += 10;</div><div class='add'>+    for (; i &lt; nd; i++)</div><div class='add'>+        b = multadd(b, 10, *s++ - '0');</div><div class='add'>+    return b;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+hi0bits(register ULong x)</div><div class='add'>+{</div><div class='add'>+    register int k = 0;</div><div class='add'>+</div><div class='add'>+    if (!(x &amp; 0xffff0000)) {</div><div class='add'>+        k = 16;</div><div class='add'>+        x &lt;&lt;= 16;</div><div class='add'>+    }</div><div class='add'>+    if (!(x &amp; 0xff000000)) {</div><div class='add'>+        k += 8;</div><div class='add'>+        x &lt;&lt;= 8;</div><div class='add'>+    }</div><div class='add'>+    if (!(x &amp; 0xf0000000)) {</div><div class='add'>+        k += 4;</div><div class='add'>+        x &lt;&lt;= 4;</div><div class='add'>+    }</div><div class='add'>+    if (!(x &amp; 0xc0000000)) {</div><div class='add'>+        k += 2;</div><div class='add'>+        x &lt;&lt;= 2;</div><div class='add'>+    }</div><div class='add'>+    if (!(x &amp; 0x80000000)) {</div><div class='add'>+        k++;</div><div class='add'>+        if (!(x &amp; 0x40000000))</div><div class='add'>+            return 32;</div><div class='add'>+    }</div><div class='add'>+    return k;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+lo0bits(ULong *y)</div><div class='add'>+{</div><div class='add'>+    register int k;</div><div class='add'>+    register ULong x = *y;</div><div class='add'>+</div><div class='add'>+    if (x &amp; 7) {</div><div class='add'>+        if (x &amp; 1)</div><div class='add'>+            return 0;</div><div class='add'>+        if (x &amp; 2) {</div><div class='add'>+            *y = x &gt;&gt; 1;</div><div class='add'>+            return 1;</div><div class='add'>+        }</div><div class='add'>+        *y = x &gt;&gt; 2;</div><div class='add'>+        return 2;</div><div class='add'>+    }</div><div class='add'>+    k = 0;</div><div class='add'>+    if (!(x &amp; 0xffff)) {</div><div class='add'>+        k = 16;</div><div class='add'>+        x &gt;&gt;= 16;</div><div class='add'>+    }</div><div class='add'>+    if (!(x &amp; 0xff)) {</div><div class='add'>+        k += 8;</div><div class='add'>+        x &gt;&gt;= 8;</div><div class='add'>+    }</div><div class='add'>+    if (!(x &amp; 0xf)) {</div><div class='add'>+        k += 4;</div><div class='add'>+        x &gt;&gt;= 4;</div><div class='add'>+    }</div><div class='add'>+    if (!(x &amp; 0x3)) {</div><div class='add'>+        k += 2;</div><div class='add'>+        x &gt;&gt;= 2;</div><div class='add'>+    }</div><div class='add'>+    if (!(x &amp; 1)) {</div><div class='add'>+        k++;</div><div class='add'>+        x &gt;&gt;= 1;</div><div class='add'>+        if (!x)</div><div class='add'>+            return 32;</div><div class='add'>+    }</div><div class='add'>+    *y = x;</div><div class='add'>+    return k;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static Bigint *</div><div class='add'>+i2b(int i)</div><div class='add'>+{</div><div class='add'>+    Bigint *b;</div><div class='add'>+</div><div class='add'>+    b = Balloc(1);</div><div class='add'>+    b-&gt;x[0] = i;</div><div class='add'>+    b-&gt;wds = 1;</div><div class='add'>+    return b;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static Bigint *</div><div class='add'>+mult(Bigint *a, Bigint *b)</div><div class='add'>+{</div><div class='add'>+    Bigint *c;</div><div class='add'>+    int k, wa, wb, wc;</div><div class='add'>+    ULong *x, *xa, *xae, *xb, *xbe, *xc, *xc0;</div><div class='add'>+    ULong y;</div><div class='add'>+#ifdef ULLong</div><div class='add'>+    ULLong carry, z;</div><div class='add'>+#else</div><div class='add'>+    ULong carry, z;</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    ULong z2;</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (a-&gt;wds &lt; b-&gt;wds) {</div><div class='add'>+        c = a;</div><div class='add'>+        a = b;</div><div class='add'>+        b = c;</div><div class='add'>+    }</div><div class='add'>+    k = a-&gt;k;</div><div class='add'>+    wa = a-&gt;wds;</div><div class='add'>+    wb = b-&gt;wds;</div><div class='add'>+    wc = wa + wb;</div><div class='add'>+    if (wc &gt; a-&gt;maxwds)</div><div class='add'>+        k++;</div><div class='add'>+    c = Balloc(k);</div><div class='add'>+    for (x = c-&gt;x, xa = x + wc; x &lt; xa; x++)</div><div class='add'>+        *x = 0;</div><div class='add'>+    xa = a-&gt;x;</div><div class='add'>+    xae = xa + wa;</div><div class='add'>+    xb = b-&gt;x;</div><div class='add'>+    xbe = xb + wb;</div><div class='add'>+    xc0 = c-&gt;x;</div><div class='add'>+#ifdef ULLong</div><div class='add'>+    for (; xb &lt; xbe; xc0++) {</div><div class='add'>+        if ((y = *xb++) != 0) {</div><div class='add'>+            x = xa;</div><div class='add'>+            xc = xc0;</div><div class='add'>+            carry = 0;</div><div class='add'>+            do {</div><div class='add'>+                z = *x++ * (ULLong)y + *xc + carry;</div><div class='add'>+                carry = z &gt;&gt; 32;</div><div class='add'>+                *xc++ = (ULong)(z &amp; FFFFFFFF);</div><div class='add'>+            } while (x &lt; xae);</div><div class='add'>+            *xc = (ULong)carry;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    for (; xb &lt; xbe; xb++, xc0++) {</div><div class='add'>+        if ((y = *xb &amp; 0xffff) != 0) {</div><div class='add'>+            x = xa;</div><div class='add'>+            xc = xc0;</div><div class='add'>+            carry = 0;</div><div class='add'>+            do {</div><div class='add'>+                z = (*x &amp; 0xffff) * y + (*xc &amp; 0xffff) + carry;</div><div class='add'>+                carry = z &gt;&gt; 16;</div><div class='add'>+                z2 = (*x++ &gt;&gt; 16) * y + (*xc &gt;&gt; 16) + carry;</div><div class='add'>+                carry = z2 &gt;&gt; 16;</div><div class='add'>+                Storeinc(xc, z2, z);</div><div class='add'>+            } while (x &lt; xae);</div><div class='add'>+            *xc = (ULong)carry;</div><div class='add'>+        }</div><div class='add'>+        if ((y = *xb &gt;&gt; 16) != 0) {</div><div class='add'>+            x = xa;</div><div class='add'>+            xc = xc0;</div><div class='add'>+            carry = 0;</div><div class='add'>+            z2 = *xc;</div><div class='add'>+            do {</div><div class='add'>+                z = (*x &amp; 0xffff) * y + (*xc &gt;&gt; 16) + carry;</div><div class='add'>+                carry = z &gt;&gt; 16;</div><div class='add'>+                Storeinc(xc, z, z2);</div><div class='add'>+                z2 = (*x++ &gt;&gt; 16) * y + (*xc &amp; 0xffff) + carry;</div><div class='add'>+                carry = z2 &gt;&gt; 16;</div><div class='add'>+            } while (x &lt; xae);</div><div class='add'>+            *xc = z2;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    for (; xb &lt; xbe; xc0++) {</div><div class='add'>+        if (y = *xb++) {</div><div class='add'>+            x = xa;</div><div class='add'>+            xc = xc0;</div><div class='add'>+            carry = 0;</div><div class='add'>+            do {</div><div class='add'>+                z = *x++ * y + *xc + carry;</div><div class='add'>+                carry = z &gt;&gt; 16;</div><div class='add'>+                *xc++ = z &amp; 0xffff;</div><div class='add'>+            } while (x &lt; xae);</div><div class='add'>+            *xc = (ULong)carry;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+    for (xc0 = c-&gt;x, xc = xc0 + wc; wc &gt; 0 &amp;&amp; !*--xc; --wc) ;</div><div class='add'>+    c-&gt;wds = wc;</div><div class='add'>+    return c;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static Bigint *p5s;</div><div class='add'>+</div><div class='add'>+static Bigint *</div><div class='add'>+pow5mult(Bigint *b, int k)</div><div class='add'>+{</div><div class='add'>+    Bigint *b1, *p5, *p51;</div><div class='add'>+    Bigint *p5tmp;</div><div class='add'>+    int i;</div><div class='add'>+    static const int p05[3] = { 5, 25, 125 };</div><div class='add'>+</div><div class='add'>+    if ((i = k &amp; 3) != 0)</div><div class='add'>+        b = multadd(b, p05[i-1], 0);</div><div class='add'>+</div><div class='add'>+    if (!(k &gt;&gt;= 2))</div><div class='add'>+        return b;</div><div class='add'>+    if (!(p5 = p5s)) {</div><div class='add'>+        /* first time */</div><div class='add'>+        ACQUIRE_DTOA_LOCK(1);</div><div class='add'>+        if (!(p5 = p5s)) {</div><div class='add'>+            p5 = i2b(625);</div><div class='add'>+            p5-&gt;next = 0;</div><div class='add'>+            p5tmp = ATOMIC_PTR_CAS(p5s, NULL, p5);</div><div class='add'>+            if (UNLIKELY(p5tmp)) {</div><div class='add'>+                Bfree(p5);</div><div class='add'>+                p5 = p5tmp;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        FREE_DTOA_LOCK(1);</div><div class='add'>+    }</div><div class='add'>+    for (;;) {</div><div class='add'>+        if (k &amp; 1) {</div><div class='add'>+            b1 = mult(b, p5);</div><div class='add'>+            Bfree(b);</div><div class='add'>+            b = b1;</div><div class='add'>+        }</div><div class='add'>+        if (!(k &gt;&gt;= 1))</div><div class='add'>+            break;</div><div class='add'>+        if (!(p51 = p5-&gt;next)) {</div><div class='add'>+            ACQUIRE_DTOA_LOCK(1);</div><div class='add'>+            if (!(p51 = p5-&gt;next)) {</div><div class='add'>+                p51 = mult(p5,p5);</div><div class='add'>+                p51-&gt;next = 0;</div><div class='add'>+                p5tmp = ATOMIC_PTR_CAS(p5-&gt;next, NULL, p51);</div><div class='add'>+                if (UNLIKELY(p5tmp)) {</div><div class='add'>+                    Bfree(p51);</div><div class='add'>+                    p51 = p5tmp;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            FREE_DTOA_LOCK(1);</div><div class='add'>+        }</div><div class='add'>+        p5 = p51;</div><div class='add'>+    }</div><div class='add'>+    return b;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static Bigint *</div><div class='add'>+lshift(Bigint *b, int k)</div><div class='add'>+{</div><div class='add'>+    int i, k1, n, n1;</div><div class='add'>+    Bigint *b1;</div><div class='add'>+    ULong *x, *x1, *xe, z;</div><div class='add'>+</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    n = k &gt;&gt; 5;</div><div class='add'>+#else</div><div class='add'>+    n = k &gt;&gt; 4;</div><div class='add'>+#endif</div><div class='add'>+    k1 = b-&gt;k;</div><div class='add'>+    n1 = n + b-&gt;wds + 1;</div><div class='add'>+    for (i = b-&gt;maxwds; n1 &gt; i; i &lt;&lt;= 1)</div><div class='add'>+        k1++;</div><div class='add'>+    b1 = Balloc(k1);</div><div class='add'>+    x1 = b1-&gt;x;</div><div class='add'>+    for (i = 0; i &lt; n; i++)</div><div class='add'>+        *x1++ = 0;</div><div class='add'>+    x = b-&gt;x;</div><div class='add'>+    xe = x + b-&gt;wds;</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    if (k &amp;= 0x1f) {</div><div class='add'>+        k1 = 32 - k;</div><div class='add'>+        z = 0;</div><div class='add'>+        do {</div><div class='add'>+            *x1++ = *x &lt;&lt; k | z;</div><div class='add'>+            z = *x++ &gt;&gt; k1;</div><div class='add'>+        } while (x &lt; xe);</div><div class='add'>+        if ((*x1 = z) != 0)</div><div class='add'>+            ++n1;</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    if (k &amp;= 0xf) {</div><div class='add'>+        k1 = 16 - k;</div><div class='add'>+        z = 0;</div><div class='add'>+        do {</div><div class='add'>+            *x1++ = *x &lt;&lt; k  &amp; 0xffff | z;</div><div class='add'>+            z = *x++ &gt;&gt; k1;</div><div class='add'>+        } while (x &lt; xe);</div><div class='add'>+        if (*x1 = z)</div><div class='add'>+            ++n1;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    else</div><div class='add'>+        do {</div><div class='add'>+            *x1++ = *x++;</div><div class='add'>+        } while (x &lt; xe);</div><div class='add'>+    b1-&gt;wds = n1 - 1;</div><div class='add'>+    Bfree(b);</div><div class='add'>+    return b1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+cmp(Bigint *a, Bigint *b)</div><div class='add'>+{</div><div class='add'>+    ULong *xa, *xa0, *xb, *xb0;</div><div class='add'>+    int i, j;</div><div class='add'>+</div><div class='add'>+    i = a-&gt;wds;</div><div class='add'>+    j = b-&gt;wds;</div><div class='add'>+#ifdef DEBUG</div><div class='add'>+    if (i &gt; 1 &amp;&amp; !a-&gt;x[i-1])</div><div class='add'>+        Bug("cmp called with a-&gt;x[a-&gt;wds-1] == 0");</div><div class='add'>+    if (j &gt; 1 &amp;&amp; !b-&gt;x[j-1])</div><div class='add'>+        Bug("cmp called with b-&gt;x[b-&gt;wds-1] == 0");</div><div class='add'>+#endif</div><div class='add'>+    if (i -= j)</div><div class='add'>+        return i;</div><div class='add'>+    xa0 = a-&gt;x;</div><div class='add'>+    xa = xa0 + j;</div><div class='add'>+    xb0 = b-&gt;x;</div><div class='add'>+    xb = xb0 + j;</div><div class='add'>+    for (;;) {</div><div class='add'>+        if (*--xa != *--xb)</div><div class='add'>+            return *xa &lt; *xb ? -1 : 1;</div><div class='add'>+        if (xa &lt;= xa0)</div><div class='add'>+            break;</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NO_SANITIZE("unsigned-integer-overflow", static Bigint * diff(Bigint *a, Bigint *b));</div><div class='add'>+static Bigint *</div><div class='add'>+diff(Bigint *a, Bigint *b)</div><div class='add'>+{</div><div class='add'>+    Bigint *c;</div><div class='add'>+    int i, wa, wb;</div><div class='add'>+    ULong *xa, *xae, *xb, *xbe, *xc;</div><div class='add'>+#ifdef ULLong</div><div class='add'>+    ULLong borrow, y;</div><div class='add'>+#else</div><div class='add'>+    ULong borrow, y;</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    ULong z;</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    i = cmp(a,b);</div><div class='add'>+    if (!i) {</div><div class='add'>+        c = Balloc(0);</div><div class='add'>+        c-&gt;wds = 1;</div><div class='add'>+        c-&gt;x[0] = 0;</div><div class='add'>+        return c;</div><div class='add'>+    }</div><div class='add'>+    if (i &lt; 0) {</div><div class='add'>+        c = a;</div><div class='add'>+        a = b;</div><div class='add'>+        b = c;</div><div class='add'>+        i = 1;</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+        i = 0;</div><div class='add'>+    c = Balloc(a-&gt;k);</div><div class='add'>+    c-&gt;sign = i;</div><div class='add'>+    wa = a-&gt;wds;</div><div class='add'>+    xa = a-&gt;x;</div><div class='add'>+    xae = xa + wa;</div><div class='add'>+    wb = b-&gt;wds;</div><div class='add'>+    xb = b-&gt;x;</div><div class='add'>+    xbe = xb + wb;</div><div class='add'>+    xc = c-&gt;x;</div><div class='add'>+    borrow = 0;</div><div class='add'>+#ifdef ULLong</div><div class='add'>+    do {</div><div class='add'>+        y = (ULLong)*xa++ - *xb++ - borrow;</div><div class='add'>+        borrow = y &gt;&gt; 32 &amp; (ULong)1;</div><div class='add'>+        *xc++ = (ULong)(y &amp; FFFFFFFF);</div><div class='add'>+    } while (xb &lt; xbe);</div><div class='add'>+    while (xa &lt; xae) {</div><div class='add'>+        y = *xa++ - borrow;</div><div class='add'>+        borrow = y &gt;&gt; 32 &amp; (ULong)1;</div><div class='add'>+        *xc++ = (ULong)(y &amp; FFFFFFFF);</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    do {</div><div class='add'>+        y = (*xa &amp; 0xffff) - (*xb &amp; 0xffff) - borrow;</div><div class='add'>+        borrow = (y &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+        z = (*xa++ &gt;&gt; 16) - (*xb++ &gt;&gt; 16) - borrow;</div><div class='add'>+        borrow = (z &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+        Storeinc(xc, z, y);</div><div class='add'>+    } while (xb &lt; xbe);</div><div class='add'>+    while (xa &lt; xae) {</div><div class='add'>+        y = (*xa &amp; 0xffff) - borrow;</div><div class='add'>+        borrow = (y &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+        z = (*xa++ &gt;&gt; 16) - borrow;</div><div class='add'>+        borrow = (z &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+        Storeinc(xc, z, y);</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    do {</div><div class='add'>+        y = *xa++ - *xb++ - borrow;</div><div class='add'>+        borrow = (y &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+        *xc++ = y &amp; 0xffff;</div><div class='add'>+    } while (xb &lt; xbe);</div><div class='add'>+    while (xa &lt; xae) {</div><div class='add'>+        y = *xa++ - borrow;</div><div class='add'>+        borrow = (y &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+        *xc++ = y &amp; 0xffff;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+    while (!*--xc)</div><div class='add'>+        wa--;</div><div class='add'>+    c-&gt;wds = wa;</div><div class='add'>+    return c;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static double</div><div class='add'>+ulp(double x_)</div><div class='add'>+{</div><div class='add'>+    register Long L;</div><div class='add'>+    double_u x, a;</div><div class='add'>+    dval(x) = x_;</div><div class='add'>+</div><div class='add'>+    L = (word0(x) &amp; Exp_mask) - (P-1)*Exp_msk1;</div><div class='add'>+#ifndef Avoid_Underflow</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+    if (L &gt; 0) {</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+#ifdef IBM</div><div class='add'>+        L |= Exp_msk1 &gt;&gt; 4;</div><div class='add'>+#endif</div><div class='add'>+        word0(a) = L;</div><div class='add'>+        word1(a) = 0;</div><div class='add'>+#ifndef Avoid_Underflow</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        L = -L &gt;&gt; Exp_shift;</div><div class='add'>+        if (L &lt; Exp_shift) {</div><div class='add'>+            word0(a) = 0x80000 &gt;&gt; L;</div><div class='add'>+            word1(a) = 0;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            word0(a) = 0;</div><div class='add'>+            L -= Exp_shift;</div><div class='add'>+            word1(a) = L &gt;= 31 ? 1 : 1 &lt;&lt; 31 - L;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+    return dval(a);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static double</div><div class='add'>+b2d(Bigint *a, int *e)</div><div class='add'>+{</div><div class='add'>+    ULong *xa, *xa0, w, y, z;</div><div class='add'>+    int k;</div><div class='add'>+    double_u d;</div><div class='add'>+#ifdef VAX</div><div class='add'>+    ULong d0, d1;</div><div class='add'>+#else</div><div class='add'>+#define d0 word0(d)</div><div class='add'>+#define d1 word1(d)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    xa0 = a-&gt;x;</div><div class='add'>+    xa = xa0 + a-&gt;wds;</div><div class='add'>+    y = *--xa;</div><div class='add'>+#ifdef DEBUG</div><div class='add'>+    if (!y) Bug("zero y in b2d");</div><div class='add'>+#endif</div><div class='add'>+    k = hi0bits(y);</div><div class='add'>+    *e = 32 - k;</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    if (k &lt; Ebits) {</div><div class='add'>+        d0 = Exp_1 | y &gt;&gt; (Ebits - k);</div><div class='add'>+        w = xa &gt; xa0 ? *--xa : 0;</div><div class='add'>+        d1 = y &lt;&lt; ((32-Ebits) + k) | w &gt;&gt; (Ebits - k);</div><div class='add'>+        goto ret_d;</div><div class='add'>+    }</div><div class='add'>+    z = xa &gt; xa0 ? *--xa : 0;</div><div class='add'>+    if (k -= Ebits) {</div><div class='add'>+        d0 = Exp_1 | y &lt;&lt; k | z &gt;&gt; (32 - k);</div><div class='add'>+        y = xa &gt; xa0 ? *--xa : 0;</div><div class='add'>+        d1 = z &lt;&lt; k | y &gt;&gt; (32 - k);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        d0 = Exp_1 | y;</div><div class='add'>+        d1 = z;</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    if (k &lt; Ebits + 16) {</div><div class='add'>+        z = xa &gt; xa0 ? *--xa : 0;</div><div class='add'>+        d0 = Exp_1 | y &lt;&lt; k - Ebits | z &gt;&gt; Ebits + 16 - k;</div><div class='add'>+        w = xa &gt; xa0 ? *--xa : 0;</div><div class='add'>+        y = xa &gt; xa0 ? *--xa : 0;</div><div class='add'>+        d1 = z &lt;&lt; k + 16 - Ebits | w &lt;&lt; k - Ebits | y &gt;&gt; 16 + Ebits - k;</div><div class='add'>+        goto ret_d;</div><div class='add'>+    }</div><div class='add'>+    z = xa &gt; xa0 ? *--xa : 0;</div><div class='add'>+    w = xa &gt; xa0 ? *--xa : 0;</div><div class='add'>+    k -= Ebits + 16;</div><div class='add'>+    d0 = Exp_1 | y &lt;&lt; k + 16 | z &lt;&lt; k | w &gt;&gt; 16 - k;</div><div class='add'>+    y = xa &gt; xa0 ? *--xa : 0;</div><div class='add'>+    d1 = w &lt;&lt; k + 16 | y &lt;&lt; k;</div><div class='add'>+#endif</div><div class='add'>+ret_d:</div><div class='add'>+#ifdef VAX</div><div class='add'>+    word0(d) = d0 &gt;&gt; 16 | d0 &lt;&lt; 16;</div><div class='add'>+    word1(d) = d1 &gt;&gt; 16 | d1 &lt;&lt; 16;</div><div class='add'>+#else</div><div class='add'>+#undef d0</div><div class='add'>+#undef d1</div><div class='add'>+#endif</div><div class='add'>+    return dval(d);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static Bigint *</div><div class='add'>+d2b(double d_, int *e, int *bits)</div><div class='add'>+{</div><div class='add'>+    double_u d;</div><div class='add'>+    Bigint *b;</div><div class='add'>+    int de, k;</div><div class='add'>+    ULong *x, y, z;</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+    int i;</div><div class='add'>+#endif</div><div class='add'>+#ifdef VAX</div><div class='add'>+    ULong d0, d1;</div><div class='add'>+#endif</div><div class='add'>+    dval(d) = d_;</div><div class='add'>+#ifdef VAX</div><div class='add'>+    d0 = word0(d) &gt;&gt; 16 | word0(d) &lt;&lt; 16;</div><div class='add'>+    d1 = word1(d) &gt;&gt; 16 | word1(d) &lt;&lt; 16;</div><div class='add'>+#else</div><div class='add'>+#define d0 word0(d)</div><div class='add'>+#define d1 word1(d)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    b = Balloc(1);</div><div class='add'>+#else</div><div class='add'>+    b = Balloc(2);</div><div class='add'>+#endif</div><div class='add'>+    x = b-&gt;x;</div><div class='add'>+</div><div class='add'>+    z = d0 &amp; Frac_mask;</div><div class='add'>+    d0 &amp;= 0x7fffffff;   /* clear sign bit, which we ignore */</div><div class='add'>+#ifdef Sudden_Underflow</div><div class='add'>+    de = (int)(d0 &gt;&gt; Exp_shift);</div><div class='add'>+#ifndef IBM</div><div class='add'>+    z |= Exp_msk11;</div><div class='add'>+#endif</div><div class='add'>+#else</div><div class='add'>+    if ((de = (int)(d0 &gt;&gt; Exp_shift)) != 0)</div><div class='add'>+        z |= Exp_msk1;</div><div class='add'>+#endif</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    if ((y = d1) != 0) {</div><div class='add'>+        if ((k = lo0bits(&amp;y)) != 0) {</div><div class='add'>+            x[0] = y | z &lt;&lt; (32 - k);</div><div class='add'>+            z &gt;&gt;= k;</div><div class='add'>+        }</div><div class='add'>+        else</div><div class='add'>+            x[0] = y;</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+        i =</div><div class='add'>+#endif</div><div class='add'>+        b-&gt;wds = (x[1] = z) ? 2 : 1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+#ifdef DEBUG</div><div class='add'>+        if (!z)</div><div class='add'>+            Bug("Zero passed to d2b");</div><div class='add'>+#endif</div><div class='add'>+        k = lo0bits(&amp;z);</div><div class='add'>+        x[0] = z;</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+        i =</div><div class='add'>+#endif</div><div class='add'>+        b-&gt;wds = 1;</div><div class='add'>+        k += 32;</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    if (y = d1) {</div><div class='add'>+        if (k = lo0bits(&amp;y))</div><div class='add'>+            if (k &gt;= 16) {</div><div class='add'>+                x[0] = y | z &lt;&lt; 32 - k &amp; 0xffff;</div><div class='add'>+                x[1] = z &gt;&gt; k - 16 &amp; 0xffff;</div><div class='add'>+                x[2] = z &gt;&gt; k;</div><div class='add'>+                i = 2;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                x[0] = y &amp; 0xffff;</div><div class='add'>+                x[1] = y &gt;&gt; 16 | z &lt;&lt; 16 - k &amp; 0xffff;</div><div class='add'>+                x[2] = z &gt;&gt; k &amp; 0xffff;</div><div class='add'>+                x[3] = z &gt;&gt; k+16;</div><div class='add'>+                i = 3;</div><div class='add'>+            }</div><div class='add'>+        else {</div><div class='add'>+            x[0] = y &amp; 0xffff;</div><div class='add'>+            x[1] = y &gt;&gt; 16;</div><div class='add'>+            x[2] = z &amp; 0xffff;</div><div class='add'>+            x[3] = z &gt;&gt; 16;</div><div class='add'>+            i = 3;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+#ifdef DEBUG</div><div class='add'>+        if (!z)</div><div class='add'>+            Bug("Zero passed to d2b");</div><div class='add'>+#endif</div><div class='add'>+        k = lo0bits(&amp;z);</div><div class='add'>+        if (k &gt;= 16) {</div><div class='add'>+            x[0] = z;</div><div class='add'>+            i = 0;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            x[0] = z &amp; 0xffff;</div><div class='add'>+            x[1] = z &gt;&gt; 16;</div><div class='add'>+            i = 1;</div><div class='add'>+        }</div><div class='add'>+        k += 32;</div><div class='add'>+    }</div><div class='add'>+    while (!x[i])</div><div class='add'>+        --i;</div><div class='add'>+    b-&gt;wds = i + 1;</div><div class='add'>+#endif</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+    if (de) {</div><div class='add'>+#endif</div><div class='add'>+#ifdef IBM</div><div class='add'>+        *e = (de - Bias - (P-1) &lt;&lt; 2) + k;</div><div class='add'>+        *bits = 4*P + 8 - k - hi0bits(word0(d) &amp; Frac_mask);</div><div class='add'>+#else</div><div class='add'>+        *e = de - Bias - (P-1) + k;</div><div class='add'>+        *bits = P - k;</div><div class='add'>+#endif</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        *e = de - Bias - (P-1) + 1 + k;</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+        *bits = 32*i - hi0bits(x[i-1]);</div><div class='add'>+#else</div><div class='add'>+        *bits = (i+2)*16 - hi0bits(x[i]);</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return b;</div><div class='add'>+}</div><div class='add'>+#undef d0</div><div class='add'>+#undef d1</div><div class='add'>+</div><div class='add'>+static double</div><div class='add'>+ratio(Bigint *a, Bigint *b)</div><div class='add'>+{</div><div class='add'>+    double_u da, db;</div><div class='add'>+    int k, ka, kb;</div><div class='add'>+</div><div class='add'>+    dval(da) = b2d(a, &amp;ka);</div><div class='add'>+    dval(db) = b2d(b, &amp;kb);</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    k = ka - kb + 32*(a-&gt;wds - b-&gt;wds);</div><div class='add'>+#else</div><div class='add'>+    k = ka - kb + 16*(a-&gt;wds - b-&gt;wds);</div><div class='add'>+#endif</div><div class='add'>+#ifdef IBM</div><div class='add'>+    if (k &gt; 0) {</div><div class='add'>+        word0(da) += (k &gt;&gt; 2)*Exp_msk1;</div><div class='add'>+        if (k &amp;= 3)</div><div class='add'>+            dval(da) *= 1 &lt;&lt; k;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        k = -k;</div><div class='add'>+        word0(db) += (k &gt;&gt; 2)*Exp_msk1;</div><div class='add'>+        if (k &amp;= 3)</div><div class='add'>+            dval(db) *= 1 &lt;&lt; k;</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    if (k &gt; 0)</div><div class='add'>+        word0(da) += k*Exp_msk1;</div><div class='add'>+    else {</div><div class='add'>+        k = -k;</div><div class='add'>+        word0(db) += k*Exp_msk1;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return dval(da) / dval(db);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const double</div><div class='add'>+tens[] = {</div><div class='add'>+    1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,</div><div class='add'>+    1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,</div><div class='add'>+    1e20, 1e21, 1e22</div><div class='add'>+#ifdef VAX</div><div class='add'>+    , 1e23, 1e24</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const double</div><div class='add'>+#ifdef IEEE_Arith</div><div class='add'>+bigtens[] = { 1e16, 1e32, 1e64, 1e128, 1e256 };</div><div class='add'>+static const double tinytens[] = { 1e-16, 1e-32, 1e-64, 1e-128,</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+    9007199254740992.*9007199254740992.e-256</div><div class='add'>+    /* = 2^106 * 1e-53 */</div><div class='add'>+#else</div><div class='add'>+    1e-256</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+/* The factor of 2^53 in tinytens[4] helps us avoid setting the underflow */</div><div class='add'>+/* flag unnecessarily.  It leads to a song and dance at the end of strtod. */</div><div class='add'>+#define Scale_Bit 0x10</div><div class='add'>+#define n_bigtens 5</div><div class='add'>+#else</div><div class='add'>+#ifdef IBM</div><div class='add'>+bigtens[] = { 1e16, 1e32, 1e64 };</div><div class='add'>+static const double tinytens[] = { 1e-16, 1e-32, 1e-64 };</div><div class='add'>+#define n_bigtens 3</div><div class='add'>+#else</div><div class='add'>+bigtens[] = { 1e16, 1e32 };</div><div class='add'>+static const double tinytens[] = { 1e-16, 1e-32 };</div><div class='add'>+#define n_bigtens 2</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef IEEE_Arith</div><div class='add'>+#undef INFNAN_CHECK</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef INFNAN_CHECK</div><div class='add'>+</div><div class='add'>+#ifndef NAN_WORD0</div><div class='add'>+#define NAN_WORD0 0x7ff80000</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef NAN_WORD1</div><div class='add'>+#define NAN_WORD1 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+match(const char **sp, char *t)</div><div class='add'>+{</div><div class='add'>+    int c, d;</div><div class='add'>+    const char *s = *sp;</div><div class='add'>+</div><div class='add'>+    while (d = *t++) {</div><div class='add'>+        if ((c = *++s) &gt;= 'A' &amp;&amp; c &lt;= 'Z')</div><div class='add'>+            c += 'a' - 'A';</div><div class='add'>+        if (c != d)</div><div class='add'>+            return 0;</div><div class='add'>+    }</div><div class='add'>+    *sp = s + 1;</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifndef No_Hex_NaN</div><div class='add'>+static void</div><div class='add'>+hexnan(double *rvp, const char **sp)</div><div class='add'>+{</div><div class='add'>+    ULong c, x[2];</div><div class='add'>+    const char *s;</div><div class='add'>+    int havedig, udx0, xshift;</div><div class='add'>+</div><div class='add'>+    x[0] = x[1] = 0;</div><div class='add'>+    havedig = xshift = 0;</div><div class='add'>+    udx0 = 1;</div><div class='add'>+    s = *sp;</div><div class='add'>+    while (c = *(const unsigned char*)++s) {</div><div class='add'>+        if (c &gt;= '0' &amp;&amp; c &lt;= '9')</div><div class='add'>+            c -= '0';</div><div class='add'>+        else if (c &gt;= 'a' &amp;&amp; c &lt;= 'f')</div><div class='add'>+            c += 10 - 'a';</div><div class='add'>+        else if (c &gt;= 'A' &amp;&amp; c &lt;= 'F')</div><div class='add'>+            c += 10 - 'A';</div><div class='add'>+        else if (c &lt;= ' ') {</div><div class='add'>+            if (udx0 &amp;&amp; havedig) {</div><div class='add'>+                udx0 = 0;</div><div class='add'>+                xshift = 1;</div><div class='add'>+            }</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        else if (/*(*/ c == ')' &amp;&amp; havedig) {</div><div class='add'>+            *sp = s + 1;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        else</div><div class='add'>+            return; /* invalid form: don't change *sp */</div><div class='add'>+        havedig = 1;</div><div class='add'>+        if (xshift) {</div><div class='add'>+            xshift = 0;</div><div class='add'>+            x[0] = x[1];</div><div class='add'>+            x[1] = 0;</div><div class='add'>+        }</div><div class='add'>+        if (udx0)</div><div class='add'>+            x[0] = (x[0] &lt;&lt; 4) | (x[1] &gt;&gt; 28);</div><div class='add'>+        x[1] = (x[1] &lt;&lt; 4) | c;</div><div class='add'>+    }</div><div class='add'>+    if ((x[0] &amp;= 0xfffff) || x[1]) {</div><div class='add'>+        word0(*rvp) = Exp_mask | x[0];</div><div class='add'>+        word1(*rvp) = x[1];</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif /*No_Hex_NaN*/</div><div class='add'>+#endif /* INFNAN_CHECK */</div><div class='add'>+</div><div class='add'>+NO_SANITIZE("unsigned-integer-overflow", double strtod(const char *s00, char **se));</div><div class='add'>+double</div><div class='add'>+strtod(const char *s00, char **se)</div><div class='add'>+{</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+    int scale;</div><div class='add'>+#endif</div><div class='add'>+    int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, dsign,</div><div class='add'>+         e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign;</div><div class='add'>+    const char *s, *s0, *s1;</div><div class='add'>+    double aadj, adj;</div><div class='add'>+    double_u aadj1, rv, rv0;</div><div class='add'>+    Long L;</div><div class='add'>+    ULong y, z;</div><div class='add'>+    Bigint *bb, *bb1, *bd, *bd0, *bs, *delta;</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+    int inexact, oldinexact;</div><div class='add'>+#endif</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+    int rounding;</div><div class='add'>+#endif</div><div class='add'>+#ifdef USE_LOCALE</div><div class='add'>+    const char *s2;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    errno = 0;</div><div class='add'>+    sign = nz0 = nz = 0;</div><div class='add'>+    dval(rv) = 0.;</div><div class='add'>+    for (s = s00;;s++)</div><div class='add'>+        switch (*s) {</div><div class='add'>+          case '-':</div><div class='add'>+            sign = 1;</div><div class='add'>+            /* no break */</div><div class='add'>+          case '+':</div><div class='add'>+            if (*++s)</div><div class='add'>+                goto break2;</div><div class='add'>+            /* no break */</div><div class='add'>+          case 0:</div><div class='add'>+            goto ret0;</div><div class='add'>+          case '\t':</div><div class='add'>+          case '\n':</div><div class='add'>+          case '\v':</div><div class='add'>+          case '\f':</div><div class='add'>+          case '\r':</div><div class='add'>+          case ' ':</div><div class='add'>+            continue;</div><div class='add'>+          default:</div><div class='add'>+            goto break2;</div><div class='add'>+        }</div><div class='add'>+break2:</div><div class='add'>+    if (*s == '0') {</div><div class='add'>+	if (s[1] == 'x' || s[1] == 'X') {</div><div class='add'>+	    s0 = ++s;</div><div class='add'>+	    adj = 0;</div><div class='add'>+	    aadj = 1.0;</div><div class='add'>+	    nd0 = -4;</div><div class='add'>+</div><div class='add'>+	    if (!*++s || !(s1 = strchr(hexdigit, *s))) goto ret0;</div><div class='add'>+	    if (*s == '0') {</div><div class='add'>+		while (*++s == '0');</div><div class='add'>+		s1 = strchr(hexdigit, *s);</div><div class='add'>+	    }</div><div class='add'>+	    if (s1 != NULL) {</div><div class='add'>+		do {</div><div class='add'>+		    adj += aadj * ((s1 - hexdigit) &amp; 15);</div><div class='add'>+		    nd0 += 4;</div><div class='add'>+		    aadj /= 16;</div><div class='add'>+		} while (*++s &amp;&amp; (s1 = strchr(hexdigit, *s)));</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (*s == '.') {</div><div class='add'>+		dsign = 1;</div><div class='add'>+		if (!*++s || !(s1 = strchr(hexdigit, *s))) goto ret0;</div><div class='add'>+		if (nd0 &lt; 0) {</div><div class='add'>+		    while (*s == '0') {</div><div class='add'>+			s++;</div><div class='add'>+			nd0 -= 4;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		for (; *s &amp;&amp; (s1 = strchr(hexdigit, *s)); ++s) {</div><div class='add'>+		    adj += aadj * ((s1 - hexdigit) &amp; 15);</div><div class='add'>+		    if ((aadj /= 16) == 0.0) {</div><div class='add'>+			while (strchr(hexdigit, *++s));</div><div class='add'>+			break;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		dsign = 0;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (*s == 'P' || *s == 'p') {</div><div class='add'>+		dsign = 0x2C - *++s; /* +: 2B, -: 2D */</div><div class='add'>+		if (abs(dsign) == 1) s++;</div><div class='add'>+		else dsign = 1;</div><div class='add'>+</div><div class='add'>+		nd = 0;</div><div class='add'>+		c = *s;</div><div class='add'>+		if (c &lt; '0' || '9' &lt; c) goto ret0;</div><div class='add'>+		do {</div><div class='add'>+		    nd *= 10;</div><div class='add'>+		    nd += c;</div><div class='add'>+		    nd -= '0';</div><div class='add'>+		    c = *++s;</div><div class='add'>+		    /* Float("0x0."+("0"*267)+"1fp2095") */</div><div class='add'>+		    if (nd + dsign * nd0 &gt; 2095) {</div><div class='add'>+			while ('0' &lt;= c &amp;&amp; c &lt;= '9') c = *++s;</div><div class='add'>+			break;</div><div class='add'>+		    }</div><div class='add'>+		} while ('0' &lt;= c &amp;&amp; c &lt;= '9');</div><div class='add'>+		nd0 += nd * dsign;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		if (dsign) goto ret0;</div><div class='add'>+	    }</div><div class='add'>+	    dval(rv) = ldexp(adj, nd0);</div><div class='add'>+	    goto ret;</div><div class='add'>+	}</div><div class='add'>+        nz0 = 1;</div><div class='add'>+        while (*++s == '0') ;</div><div class='add'>+        if (!*s)</div><div class='add'>+            goto ret;</div><div class='add'>+    }</div><div class='add'>+    s0 = s;</div><div class='add'>+    y = z = 0;</div><div class='add'>+    for (nd = nf = 0; (c = *s) &gt;= '0' &amp;&amp; c &lt;= '9'; nd++, s++)</div><div class='add'>+        if (nd &lt; 9)</div><div class='add'>+            y = 10*y + c - '0';</div><div class='add'>+        else if (nd &lt; DBL_DIG + 2)</div><div class='add'>+            z = 10*z + c - '0';</div><div class='add'>+    nd0 = nd;</div><div class='add'>+#ifdef USE_LOCALE</div><div class='add'>+    s1 = localeconv()-&gt;decimal_point;</div><div class='add'>+    if (c == *s1) {</div><div class='add'>+        c = '.';</div><div class='add'>+        if (*++s1) {</div><div class='add'>+            s2 = s;</div><div class='add'>+            for (;;) {</div><div class='add'>+                if (*++s2 != *s1) {</div><div class='add'>+                    c = 0;</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+                if (!*++s1) {</div><div class='add'>+                    s = s2;</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    if (c == '.') {</div><div class='add'>+        if (!ISDIGIT(s[1]))</div><div class='add'>+            goto dig_done;</div><div class='add'>+        c = *++s;</div><div class='add'>+        if (!nd) {</div><div class='add'>+            for (; c == '0'; c = *++s)</div><div class='add'>+                nz++;</div><div class='add'>+            if (c &gt; '0' &amp;&amp; c &lt;= '9') {</div><div class='add'>+                s0 = s;</div><div class='add'>+                nf += nz;</div><div class='add'>+                nz = 0;</div><div class='add'>+                goto have_dig;</div><div class='add'>+            }</div><div class='add'>+            goto dig_done;</div><div class='add'>+        }</div><div class='add'>+        for (; c &gt;= '0' &amp;&amp; c &lt;= '9'; c = *++s) {</div><div class='add'>+have_dig:</div><div class='add'>+            nz++;</div><div class='add'>+            if (nd &gt; DBL_DIG * 4) {</div><div class='add'>+		continue;</div><div class='add'>+	    }</div><div class='add'>+            if (c -= '0') {</div><div class='add'>+                nf += nz;</div><div class='add'>+                for (i = 1; i &lt; nz; i++)</div><div class='add'>+                    if (nd++ &lt; 9)</div><div class='add'>+                        y *= 10;</div><div class='add'>+                    else if (nd &lt;= DBL_DIG + 2)</div><div class='add'>+                        z *= 10;</div><div class='add'>+                if (nd++ &lt; 9)</div><div class='add'>+                    y = 10*y + c;</div><div class='add'>+                else if (nd &lt;= DBL_DIG + 2)</div><div class='add'>+                    z = 10*z + c;</div><div class='add'>+                nz = 0;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+dig_done:</div><div class='add'>+    e = 0;</div><div class='add'>+    if (c == 'e' || c == 'E') {</div><div class='add'>+        if (!nd &amp;&amp; !nz &amp;&amp; !nz0) {</div><div class='add'>+            goto ret0;</div><div class='add'>+        }</div><div class='add'>+        s00 = s;</div><div class='add'>+        esign = 0;</div><div class='add'>+        switch (c = *++s) {</div><div class='add'>+          case '-':</div><div class='add'>+            esign = 1;</div><div class='add'>+          case '+':</div><div class='add'>+            c = *++s;</div><div class='add'>+        }</div><div class='add'>+        if (c &gt;= '0' &amp;&amp; c &lt;= '9') {</div><div class='add'>+            while (c == '0')</div><div class='add'>+                c = *++s;</div><div class='add'>+            if (c &gt; '0' &amp;&amp; c &lt;= '9') {</div><div class='add'>+                L = c - '0';</div><div class='add'>+                s1 = s;</div><div class='add'>+                while ((c = *++s) &gt;= '0' &amp;&amp; c &lt;= '9')</div><div class='add'>+                    L = 10*L + c - '0';</div><div class='add'>+                if (s - s1 &gt; 8 || L &gt; 19999)</div><div class='add'>+                    /* Avoid confusion from exponents</div><div class='add'>+                     * so large that e might overflow.</div><div class='add'>+                     */</div><div class='add'>+                    e = 19999; /* safe for 16 bit ints */</div><div class='add'>+                else</div><div class='add'>+                    e = (int)L;</div><div class='add'>+                if (esign)</div><div class='add'>+                    e = -e;</div><div class='add'>+            }</div><div class='add'>+            else</div><div class='add'>+                e = 0;</div><div class='add'>+        }</div><div class='add'>+        else</div><div class='add'>+            s = s00;</div><div class='add'>+    }</div><div class='add'>+    if (!nd) {</div><div class='add'>+        if (!nz &amp;&amp; !nz0) {</div><div class='add'>+#ifdef INFNAN_CHECK</div><div class='add'>+            /* Check for Nan and Infinity */</div><div class='add'>+            switch (c) {</div><div class='add'>+              case 'i':</div><div class='add'>+              case 'I':</div><div class='add'>+                if (match(&amp;s,"nf")) {</div><div class='add'>+                    --s;</div><div class='add'>+                    if (!match(&amp;s,"inity"))</div><div class='add'>+                        ++s;</div><div class='add'>+                    word0(rv) = 0x7ff00000;</div><div class='add'>+                    word1(rv) = 0;</div><div class='add'>+                    goto ret;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case 'n':</div><div class='add'>+              case 'N':</div><div class='add'>+                if (match(&amp;s, "an")) {</div><div class='add'>+                    word0(rv) = NAN_WORD0;</div><div class='add'>+                    word1(rv) = NAN_WORD1;</div><div class='add'>+#ifndef No_Hex_NaN</div><div class='add'>+                    if (*s == '(') /*)*/</div><div class='add'>+                        hexnan(&amp;rv, &amp;s);</div><div class='add'>+#endif</div><div class='add'>+                    goto ret;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+#endif /* INFNAN_CHECK */</div><div class='add'>+ret0:</div><div class='add'>+            s = s00;</div><div class='add'>+            sign = 0;</div><div class='add'>+        }</div><div class='add'>+        goto ret;</div><div class='add'>+    }</div><div class='add'>+    e1 = e -= nf;</div><div class='add'>+</div><div class='add'>+    /* Now we have nd0 digits, starting at s0, followed by a</div><div class='add'>+     * decimal point, followed by nd-nd0 digits.  The number we're</div><div class='add'>+     * after is the integer represented by those digits times</div><div class='add'>+     * 10**e */</div><div class='add'>+</div><div class='add'>+    if (!nd0)</div><div class='add'>+        nd0 = nd;</div><div class='add'>+    k = nd &lt; DBL_DIG + 2 ? nd : DBL_DIG + 2;</div><div class='add'>+    dval(rv) = y;</div><div class='add'>+    if (k &gt; 9) {</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+        if (k &gt; DBL_DIG)</div><div class='add'>+            oldinexact = get_inexact();</div><div class='add'>+#endif</div><div class='add'>+        dval(rv) = tens[k - 9] * dval(rv) + z;</div><div class='add'>+    }</div><div class='add'>+    bd0 = bb = bd = bs = delta = 0;</div><div class='add'>+    if (nd &lt;= DBL_DIG</div><div class='add'>+#ifndef RND_PRODQUOT</div><div class='add'>+#ifndef Honor_FLT_ROUNDS</div><div class='add'>+        &amp;&amp; Flt_Rounds == 1</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+    ) {</div><div class='add'>+        if (!e)</div><div class='add'>+            goto ret;</div><div class='add'>+        if (e &gt; 0) {</div><div class='add'>+            if (e &lt;= Ten_pmax) {</div><div class='add'>+#ifdef VAX</div><div class='add'>+                goto vax_ovfl_check;</div><div class='add'>+#else</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+                /* round correctly FLT_ROUNDS = 2 or 3 */</div><div class='add'>+                if (sign) {</div><div class='add'>+                    dval(rv) = -dval(rv);</div><div class='add'>+                    sign = 0;</div><div class='add'>+                }</div><div class='add'>+#endif</div><div class='add'>+                /* rv = */ rounded_product(dval(rv), tens[e]);</div><div class='add'>+                goto ret;</div><div class='add'>+#endif</div><div class='add'>+            }</div><div class='add'>+            i = DBL_DIG - nd;</div><div class='add'>+            if (e &lt;= Ten_pmax + i) {</div><div class='add'>+                /* A fancier test would sometimes let us do</div><div class='add'>+                 * this for larger i values.</div><div class='add'>+                 */</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+                /* round correctly FLT_ROUNDS = 2 or 3 */</div><div class='add'>+                if (sign) {</div><div class='add'>+                    dval(rv) = -dval(rv);</div><div class='add'>+                    sign = 0;</div><div class='add'>+                }</div><div class='add'>+#endif</div><div class='add'>+                e -= i;</div><div class='add'>+                dval(rv) *= tens[i];</div><div class='add'>+#ifdef VAX</div><div class='add'>+                /* VAX exponent range is so narrow we must</div><div class='add'>+                 * worry about overflow here...</div><div class='add'>+                 */</div><div class='add'>+vax_ovfl_check:</div><div class='add'>+                word0(rv) -= P*Exp_msk1;</div><div class='add'>+                /* rv = */ rounded_product(dval(rv), tens[e]);</div><div class='add'>+                if ((word0(rv) &amp; Exp_mask)</div><div class='add'>+                        &gt; Exp_msk1*(DBL_MAX_EXP+Bias-1-P))</div><div class='add'>+                    goto ovfl;</div><div class='add'>+                word0(rv) += P*Exp_msk1;</div><div class='add'>+#else</div><div class='add'>+                /* rv = */ rounded_product(dval(rv), tens[e]);</div><div class='add'>+#endif</div><div class='add'>+                goto ret;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+#ifndef Inaccurate_Divide</div><div class='add'>+        else if (e &gt;= -Ten_pmax) {</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+            /* round correctly FLT_ROUNDS = 2 or 3 */</div><div class='add'>+            if (sign) {</div><div class='add'>+                dval(rv) = -dval(rv);</div><div class='add'>+                sign = 0;</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+            /* rv = */ rounded_quotient(dval(rv), tens[-e]);</div><div class='add'>+            goto ret;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    e1 += nd - k;</div><div class='add'>+</div><div class='add'>+#ifdef IEEE_Arith</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+    inexact = 1;</div><div class='add'>+    if (k &lt;= DBL_DIG)</div><div class='add'>+        oldinexact = get_inexact();</div><div class='add'>+#endif</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+    scale = 0;</div><div class='add'>+#endif</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+    if ((rounding = Flt_Rounds) &gt;= 2) {</div><div class='add'>+        if (sign)</div><div class='add'>+            rounding = rounding == 2 ? 0 : 2;</div><div class='add'>+        else</div><div class='add'>+            if (rounding != 2)</div><div class='add'>+                rounding = 0;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+#endif /*IEEE_Arith*/</div><div class='add'>+</div><div class='add'>+    /* Get starting approximation = rv * 10**e1 */</div><div class='add'>+</div><div class='add'>+    if (e1 &gt; 0) {</div><div class='add'>+        if ((i = e1 &amp; 15) != 0)</div><div class='add'>+            dval(rv) *= tens[i];</div><div class='add'>+        if (e1 &amp;= ~15) {</div><div class='add'>+            if (e1 &gt; DBL_MAX_10_EXP) {</div><div class='add'>+ovfl:</div><div class='add'>+#ifndef NO_ERRNO</div><div class='add'>+                errno = ERANGE;</div><div class='add'>+#endif</div><div class='add'>+                /* Can't trust HUGE_VAL */</div><div class='add'>+#ifdef IEEE_Arith</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+                switch (rounding) {</div><div class='add'>+                  case 0: /* toward 0 */</div><div class='add'>+                  case 3: /* toward -infinity */</div><div class='add'>+                    word0(rv) = Big0;</div><div class='add'>+                    word1(rv) = Big1;</div><div class='add'>+                    break;</div><div class='add'>+                  default:</div><div class='add'>+                    word0(rv) = Exp_mask;</div><div class='add'>+                    word1(rv) = 0;</div><div class='add'>+                }</div><div class='add'>+#else /*Honor_FLT_ROUNDS*/</div><div class='add'>+                word0(rv) = Exp_mask;</div><div class='add'>+                word1(rv) = 0;</div><div class='add'>+#endif /*Honor_FLT_ROUNDS*/</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+                /* set overflow bit */</div><div class='add'>+                dval(rv0) = 1e300;</div><div class='add'>+                dval(rv0) *= dval(rv0);</div><div class='add'>+#endif</div><div class='add'>+#else /*IEEE_Arith*/</div><div class='add'>+                word0(rv) = Big0;</div><div class='add'>+                word1(rv) = Big1;</div><div class='add'>+#endif /*IEEE_Arith*/</div><div class='add'>+                if (bd0)</div><div class='add'>+                    goto retfree;</div><div class='add'>+                goto ret;</div><div class='add'>+            }</div><div class='add'>+            e1 &gt;&gt;= 4;</div><div class='add'>+            for (j = 0; e1 &gt; 1; j++, e1 &gt;&gt;= 1)</div><div class='add'>+                if (e1 &amp; 1)</div><div class='add'>+                    dval(rv) *= bigtens[j];</div><div class='add'>+            /* The last multiplication could overflow. */</div><div class='add'>+            word0(rv) -= P*Exp_msk1;</div><div class='add'>+            dval(rv) *= bigtens[j];</div><div class='add'>+            if ((z = word0(rv) &amp; Exp_mask)</div><div class='add'>+                    &gt; Exp_msk1*(DBL_MAX_EXP+Bias-P))</div><div class='add'>+                goto ovfl;</div><div class='add'>+            if (z &gt; Exp_msk1*(DBL_MAX_EXP+Bias-1-P)) {</div><div class='add'>+                /* set to largest number */</div><div class='add'>+                /* (Can't trust DBL_MAX) */</div><div class='add'>+                word0(rv) = Big0;</div><div class='add'>+                word1(rv) = Big1;</div><div class='add'>+            }</div><div class='add'>+            else</div><div class='add'>+                word0(rv) += P*Exp_msk1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else if (e1 &lt; 0) {</div><div class='add'>+        e1 = -e1;</div><div class='add'>+        if ((i = e1 &amp; 15) != 0)</div><div class='add'>+            dval(rv) /= tens[i];</div><div class='add'>+        if (e1 &gt;&gt;= 4) {</div><div class='add'>+            if (e1 &gt;= 1 &lt;&lt; n_bigtens)</div><div class='add'>+                goto undfl;</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+            if (e1 &amp; Scale_Bit)</div><div class='add'>+                scale = 2*P;</div><div class='add'>+            for (j = 0; e1 &gt; 0; j++, e1 &gt;&gt;= 1)</div><div class='add'>+                if (e1 &amp; 1)</div><div class='add'>+                    dval(rv) *= tinytens[j];</div><div class='add'>+            if (scale &amp;&amp; (j = 2*P + 1 - ((word0(rv) &amp; Exp_mask)</div><div class='add'>+                    &gt;&gt; Exp_shift)) &gt; 0) {</div><div class='add'>+                /* scaled rv is denormal; zap j low bits */</div><div class='add'>+                if (j &gt;= 32) {</div><div class='add'>+                    word1(rv) = 0;</div><div class='add'>+                    if (j &gt;= 53)</div><div class='add'>+                        word0(rv) = (P+2)*Exp_msk1;</div><div class='add'>+                    else</div><div class='add'>+                        word0(rv) &amp;= 0xffffffff &lt;&lt; (j-32);</div><div class='add'>+                }</div><div class='add'>+                else</div><div class='add'>+                    word1(rv) &amp;= 0xffffffff &lt;&lt; j;</div><div class='add'>+            }</div><div class='add'>+#else</div><div class='add'>+            for (j = 0; e1 &gt; 1; j++, e1 &gt;&gt;= 1)</div><div class='add'>+                if (e1 &amp; 1)</div><div class='add'>+                    dval(rv) *= tinytens[j];</div><div class='add'>+            /* The last multiplication could underflow. */</div><div class='add'>+            dval(rv0) = dval(rv);</div><div class='add'>+            dval(rv) *= tinytens[j];</div><div class='add'>+            if (!dval(rv)) {</div><div class='add'>+                dval(rv) = 2.*dval(rv0);</div><div class='add'>+                dval(rv) *= tinytens[j];</div><div class='add'>+#endif</div><div class='add'>+                if (!dval(rv)) {</div><div class='add'>+undfl:</div><div class='add'>+                    dval(rv) = 0.;</div><div class='add'>+#ifndef NO_ERRNO</div><div class='add'>+                    errno = ERANGE;</div><div class='add'>+#endif</div><div class='add'>+                    if (bd0)</div><div class='add'>+                        goto retfree;</div><div class='add'>+                    goto ret;</div><div class='add'>+                }</div><div class='add'>+#ifndef Avoid_Underflow</div><div class='add'>+                word0(rv) = Tiny0;</div><div class='add'>+                word1(rv) = Tiny1;</div><div class='add'>+                /* The refinement below will clean</div><div class='add'>+                 * this approximation up.</div><div class='add'>+                 */</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* Now the hard part -- adjusting rv to the correct value.*/</div><div class='add'>+</div><div class='add'>+    /* Put digits into bd: true value = bd * 10^e */</div><div class='add'>+</div><div class='add'>+    bd0 = s2b(s0, nd0, nd, y);</div><div class='add'>+</div><div class='add'>+    for (;;) {</div><div class='add'>+        bd = Balloc(bd0-&gt;k);</div><div class='add'>+        Bcopy(bd, bd0);</div><div class='add'>+        bb = d2b(dval(rv), &amp;bbe, &amp;bbbits);  /* rv = bb * 2^bbe */</div><div class='add'>+        bs = i2b(1);</div><div class='add'>+</div><div class='add'>+        if (e &gt;= 0) {</div><div class='add'>+            bb2 = bb5 = 0;</div><div class='add'>+            bd2 = bd5 = e;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            bb2 = bb5 = -e;</div><div class='add'>+            bd2 = bd5 = 0;</div><div class='add'>+        }</div><div class='add'>+        if (bbe &gt;= 0)</div><div class='add'>+            bb2 += bbe;</div><div class='add'>+        else</div><div class='add'>+            bd2 -= bbe;</div><div class='add'>+        bs2 = bb2;</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+        if (rounding != 1)</div><div class='add'>+            bs2++;</div><div class='add'>+#endif</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+        j = bbe - scale;</div><div class='add'>+        i = j + bbbits - 1; /* logb(rv) */</div><div class='add'>+        if (i &lt; Emin)   /* denormal */</div><div class='add'>+            j += P - Emin;</div><div class='add'>+        else</div><div class='add'>+            j = P + 1 - bbbits;</div><div class='add'>+#else /*Avoid_Underflow*/</div><div class='add'>+#ifdef Sudden_Underflow</div><div class='add'>+#ifdef IBM</div><div class='add'>+        j = 1 + 4*P - 3 - bbbits + ((bbe + bbbits - 1) &amp; 3);</div><div class='add'>+#else</div><div class='add'>+        j = P + 1 - bbbits;</div><div class='add'>+#endif</div><div class='add'>+#else /*Sudden_Underflow*/</div><div class='add'>+        j = bbe;</div><div class='add'>+        i = j + bbbits - 1; /* logb(rv) */</div><div class='add'>+        if (i &lt; Emin)   /* denormal */</div><div class='add'>+            j += P - Emin;</div><div class='add'>+        else</div><div class='add'>+            j = P + 1 - bbbits;</div><div class='add'>+#endif /*Sudden_Underflow*/</div><div class='add'>+#endif /*Avoid_Underflow*/</div><div class='add'>+        bb2 += j;</div><div class='add'>+        bd2 += j;</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+        bd2 += scale;</div><div class='add'>+#endif</div><div class='add'>+        i = bb2 &lt; bd2 ? bb2 : bd2;</div><div class='add'>+        if (i &gt; bs2)</div><div class='add'>+            i = bs2;</div><div class='add'>+        if (i &gt; 0) {</div><div class='add'>+            bb2 -= i;</div><div class='add'>+            bd2 -= i;</div><div class='add'>+            bs2 -= i;</div><div class='add'>+        }</div><div class='add'>+        if (bb5 &gt; 0) {</div><div class='add'>+            bs = pow5mult(bs, bb5);</div><div class='add'>+            bb1 = mult(bs, bb);</div><div class='add'>+            Bfree(bb);</div><div class='add'>+            bb = bb1;</div><div class='add'>+        }</div><div class='add'>+        if (bb2 &gt; 0)</div><div class='add'>+            bb = lshift(bb, bb2);</div><div class='add'>+        if (bd5 &gt; 0)</div><div class='add'>+            bd = pow5mult(bd, bd5);</div><div class='add'>+        if (bd2 &gt; 0)</div><div class='add'>+            bd = lshift(bd, bd2);</div><div class='add'>+        if (bs2 &gt; 0)</div><div class='add'>+            bs = lshift(bs, bs2);</div><div class='add'>+        delta = diff(bb, bd);</div><div class='add'>+        dsign = delta-&gt;sign;</div><div class='add'>+        delta-&gt;sign = 0;</div><div class='add'>+        i = cmp(delta, bs);</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+        if (rounding != 1) {</div><div class='add'>+            if (i &lt; 0) {</div><div class='add'>+                /* Error is less than an ulp */</div><div class='add'>+                if (!delta-&gt;x[0] &amp;&amp; delta-&gt;wds &lt;= 1) {</div><div class='add'>+                    /* exact */</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+                    inexact = 0;</div><div class='add'>+#endif</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+                if (rounding) {</div><div class='add'>+                    if (dsign) {</div><div class='add'>+                        adj = 1.;</div><div class='add'>+                        goto apply_adj;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                else if (!dsign) {</div><div class='add'>+                    adj = -1.;</div><div class='add'>+                    if (!word1(rv)</div><div class='add'>+                     &amp;&amp; !(word0(rv) &amp; Frac_mask)) {</div><div class='add'>+                        y = word0(rv) &amp; Exp_mask;</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+                        if (!scale || y &gt; 2*P*Exp_msk1)</div><div class='add'>+#else</div><div class='add'>+                        if (y)</div><div class='add'>+#endif</div><div class='add'>+                        {</div><div class='add'>+                            delta = lshift(delta,Log2P);</div><div class='add'>+                            if (cmp(delta, bs) &lt;= 0)</div><div class='add'>+                                adj = -0.5;</div><div class='add'>+                        }</div><div class='add'>+                    }</div><div class='add'>+apply_adj:</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+                    if (scale &amp;&amp; (y = word0(rv) &amp; Exp_mask)</div><div class='add'>+                            &lt;= 2*P*Exp_msk1)</div><div class='add'>+                        word0(adj) += (2*P+1)*Exp_msk1 - y;</div><div class='add'>+#else</div><div class='add'>+#ifdef Sudden_Underflow</div><div class='add'>+                    if ((word0(rv) &amp; Exp_mask) &lt;=</div><div class='add'>+                            P*Exp_msk1) {</div><div class='add'>+                        word0(rv) += P*Exp_msk1;</div><div class='add'>+                        dval(rv) += adj*ulp(dval(rv));</div><div class='add'>+                        word0(rv) -= P*Exp_msk1;</div><div class='add'>+                    }</div><div class='add'>+                    else</div><div class='add'>+#endif /*Sudden_Underflow*/</div><div class='add'>+#endif /*Avoid_Underflow*/</div><div class='add'>+                    dval(rv) += adj*ulp(dval(rv));</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            adj = ratio(delta, bs);</div><div class='add'>+            if (adj &lt; 1.)</div><div class='add'>+                adj = 1.;</div><div class='add'>+            if (adj &lt;= 0x7ffffffe) {</div><div class='add'>+                /* adj = rounding ? ceil(adj) : floor(adj); */</div><div class='add'>+                y = adj;</div><div class='add'>+                if (y != adj) {</div><div class='add'>+                    if (!((rounding&gt;&gt;1) ^ dsign))</div><div class='add'>+                        y++;</div><div class='add'>+                    adj = y;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+            if (scale &amp;&amp; (y = word0(rv) &amp; Exp_mask) &lt;= 2*P*Exp_msk1)</div><div class='add'>+                word0(adj) += (2*P+1)*Exp_msk1 - y;</div><div class='add'>+#else</div><div class='add'>+#ifdef Sudden_Underflow</div><div class='add'>+            if ((word0(rv) &amp; Exp_mask) &lt;= P*Exp_msk1) {</div><div class='add'>+                word0(rv) += P*Exp_msk1;</div><div class='add'>+                adj *= ulp(dval(rv));</div><div class='add'>+                if (dsign)</div><div class='add'>+                    dval(rv) += adj;</div><div class='add'>+                else</div><div class='add'>+                    dval(rv) -= adj;</div><div class='add'>+                word0(rv) -= P*Exp_msk1;</div><div class='add'>+                goto cont;</div><div class='add'>+            }</div><div class='add'>+#endif /*Sudden_Underflow*/</div><div class='add'>+#endif /*Avoid_Underflow*/</div><div class='add'>+            adj *= ulp(dval(rv));</div><div class='add'>+            if (dsign)</div><div class='add'>+                dval(rv) += adj;</div><div class='add'>+            else</div><div class='add'>+                dval(rv) -= adj;</div><div class='add'>+            goto cont;</div><div class='add'>+        }</div><div class='add'>+#endif /*Honor_FLT_ROUNDS*/</div><div class='add'>+</div><div class='add'>+        if (i &lt; 0) {</div><div class='add'>+            /* Error is less than half an ulp -- check for</div><div class='add'>+             * special case of mantissa a power of two.</div><div class='add'>+             */</div><div class='add'>+            if (dsign || word1(rv) || word0(rv) &amp; Bndry_mask</div><div class='add'>+#ifdef IEEE_Arith</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+                || (word0(rv) &amp; Exp_mask) &lt;= (2*P+1)*Exp_msk1</div><div class='add'>+#else</div><div class='add'>+                || (word0(rv) &amp; Exp_mask) &lt;= Exp_msk1</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+            ) {</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+                if (!delta-&gt;x[0] &amp;&amp; delta-&gt;wds &lt;= 1)</div><div class='add'>+                    inexact = 0;</div><div class='add'>+#endif</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            if (!delta-&gt;x[0] &amp;&amp; delta-&gt;wds &lt;= 1) {</div><div class='add'>+                /* exact result */</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+                inexact = 0;</div><div class='add'>+#endif</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            delta = lshift(delta,Log2P);</div><div class='add'>+            if (cmp(delta, bs) &gt; 0)</div><div class='add'>+                goto drop_down;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        if (i == 0) {</div><div class='add'>+            /* exactly half-way between */</div><div class='add'>+            if (dsign) {</div><div class='add'>+                if ((word0(rv) &amp; Bndry_mask1) == Bndry_mask1</div><div class='add'>+                        &amp;&amp;  word1(rv) == (</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+                        (scale &amp;&amp; (y = word0(rv) &amp; Exp_mask) &lt;= 2*P*Exp_msk1)</div><div class='add'>+                        ? (0xffffffff &amp; (0xffffffff &lt;&lt; (2*P+1-(y&gt;&gt;Exp_shift)))) :</div><div class='add'>+#endif</div><div class='add'>+                        0xffffffff)) {</div><div class='add'>+                    /*boundary case -- increment exponent*/</div><div class='add'>+                    word0(rv) = (word0(rv) &amp; Exp_mask)</div><div class='add'>+                                + Exp_msk1</div><div class='add'>+#ifdef IBM</div><div class='add'>+                                | Exp_msk1 &gt;&gt; 4</div><div class='add'>+#endif</div><div class='add'>+                    ;</div><div class='add'>+                    word1(rv) = 0;</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+                    dsign = 0;</div><div class='add'>+#endif</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else if (!(word0(rv) &amp; Bndry_mask) &amp;&amp; !word1(rv)) {</div><div class='add'>+drop_down:</div><div class='add'>+                /* boundary case -- decrement exponent */</div><div class='add'>+#ifdef Sudden_Underflow /*{{*/</div><div class='add'>+                L = word0(rv) &amp; Exp_mask;</div><div class='add'>+#ifdef IBM</div><div class='add'>+                if (L &lt;  Exp_msk1)</div><div class='add'>+#else</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+                if (L &lt;= (scale ? (2*P+1)*Exp_msk1 : Exp_msk1))</div><div class='add'>+#else</div><div class='add'>+                if (L &lt;= Exp_msk1)</div><div class='add'>+#endif /*Avoid_Underflow*/</div><div class='add'>+#endif /*IBM*/</div><div class='add'>+                    goto undfl;</div><div class='add'>+                L -= Exp_msk1;</div><div class='add'>+#else /*Sudden_Underflow}{*/</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+                if (scale) {</div><div class='add'>+                    L = word0(rv) &amp; Exp_mask;</div><div class='add'>+                    if (L &lt;= (2*P+1)*Exp_msk1) {</div><div class='add'>+                        if (L &gt; (P+2)*Exp_msk1)</div><div class='add'>+                            /* round even ==&gt; */</div><div class='add'>+                            /* accept rv */</div><div class='add'>+                            break;</div><div class='add'>+                        /* rv = smallest denormal */</div><div class='add'>+                        goto undfl;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+#endif /*Avoid_Underflow*/</div><div class='add'>+                L = (word0(rv) &amp; Exp_mask) - Exp_msk1;</div><div class='add'>+#endif /*Sudden_Underflow}}*/</div><div class='add'>+                word0(rv) = L | Bndry_mask1;</div><div class='add'>+                word1(rv) = 0xffffffff;</div><div class='add'>+#ifdef IBM</div><div class='add'>+                goto cont;</div><div class='add'>+#else</div><div class='add'>+                break;</div><div class='add'>+#endif</div><div class='add'>+            }</div><div class='add'>+#ifndef ROUND_BIASED</div><div class='add'>+            if (!(word1(rv) &amp; LSB))</div><div class='add'>+                break;</div><div class='add'>+#endif</div><div class='add'>+            if (dsign)</div><div class='add'>+                dval(rv) += ulp(dval(rv));</div><div class='add'>+#ifndef ROUND_BIASED</div><div class='add'>+            else {</div><div class='add'>+                dval(rv) -= ulp(dval(rv));</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+                if (!dval(rv))</div><div class='add'>+                    goto undfl;</div><div class='add'>+#endif</div><div class='add'>+            }</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+            dsign = 1 - dsign;</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        if ((aadj = ratio(delta, bs)) &lt;= 2.) {</div><div class='add'>+            if (dsign)</div><div class='add'>+                aadj = dval(aadj1) = 1.;</div><div class='add'>+            else if (word1(rv) || word0(rv) &amp; Bndry_mask) {</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+                if (word1(rv) == Tiny1 &amp;&amp; !word0(rv))</div><div class='add'>+                    goto undfl;</div><div class='add'>+#endif</div><div class='add'>+                aadj = 1.;</div><div class='add'>+                dval(aadj1) = -1.;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                /* special case -- power of FLT_RADIX to be */</div><div class='add'>+                /* rounded down... */</div><div class='add'>+</div><div class='add'>+                if (aadj &lt; 2./FLT_RADIX)</div><div class='add'>+                    aadj = 1./FLT_RADIX;</div><div class='add'>+                else</div><div class='add'>+                    aadj *= 0.5;</div><div class='add'>+                dval(aadj1) = -aadj;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            aadj *= 0.5;</div><div class='add'>+            dval(aadj1) = dsign ? aadj : -aadj;</div><div class='add'>+#ifdef Check_FLT_ROUNDS</div><div class='add'>+            switch (Rounding) {</div><div class='add'>+              case 2: /* towards +infinity */</div><div class='add'>+                dval(aadj1) -= 0.5;</div><div class='add'>+                break;</div><div class='add'>+              case 0: /* towards 0 */</div><div class='add'>+              case 3: /* towards -infinity */</div><div class='add'>+                dval(aadj1) += 0.5;</div><div class='add'>+            }</div><div class='add'>+#else</div><div class='add'>+            if (Flt_Rounds == 0)</div><div class='add'>+                dval(aadj1) += 0.5;</div><div class='add'>+#endif /*Check_FLT_ROUNDS*/</div><div class='add'>+        }</div><div class='add'>+        y = word0(rv) &amp; Exp_mask;</div><div class='add'>+</div><div class='add'>+        /* Check for overflow */</div><div class='add'>+</div><div class='add'>+        if (y == Exp_msk1*(DBL_MAX_EXP+Bias-1)) {</div><div class='add'>+            dval(rv0) = dval(rv);</div><div class='add'>+            word0(rv) -= P*Exp_msk1;</div><div class='add'>+            adj = dval(aadj1) * ulp(dval(rv));</div><div class='add'>+            dval(rv) += adj;</div><div class='add'>+            if ((word0(rv) &amp; Exp_mask) &gt;=</div><div class='add'>+                    Exp_msk1*(DBL_MAX_EXP+Bias-P)) {</div><div class='add'>+                if (word0(rv0) == Big0 &amp;&amp; word1(rv0) == Big1)</div><div class='add'>+                    goto ovfl;</div><div class='add'>+                word0(rv) = Big0;</div><div class='add'>+                word1(rv) = Big1;</div><div class='add'>+                goto cont;</div><div class='add'>+            }</div><div class='add'>+            else</div><div class='add'>+                word0(rv) += P*Exp_msk1;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+            if (scale &amp;&amp; y &lt;= 2*P*Exp_msk1) {</div><div class='add'>+                if (aadj &lt;= 0x7fffffff) {</div><div class='add'>+                    if ((z = (int)aadj) &lt;= 0)</div><div class='add'>+                        z = 1;</div><div class='add'>+                    aadj = z;</div><div class='add'>+                    dval(aadj1) = dsign ? aadj : -aadj;</div><div class='add'>+                }</div><div class='add'>+                word0(aadj1) += (2*P+1)*Exp_msk1 - y;</div><div class='add'>+            }</div><div class='add'>+            adj = dval(aadj1) * ulp(dval(rv));</div><div class='add'>+            dval(rv) += adj;</div><div class='add'>+#else</div><div class='add'>+#ifdef Sudden_Underflow</div><div class='add'>+            if ((word0(rv) &amp; Exp_mask) &lt;= P*Exp_msk1) {</div><div class='add'>+                dval(rv0) = dval(rv);</div><div class='add'>+                word0(rv) += P*Exp_msk1;</div><div class='add'>+                adj = dval(aadj1) * ulp(dval(rv));</div><div class='add'>+                dval(rv) += adj;</div><div class='add'>+#ifdef IBM</div><div class='add'>+                if ((word0(rv) &amp; Exp_mask) &lt;  P*Exp_msk1)</div><div class='add'>+#else</div><div class='add'>+                if ((word0(rv) &amp; Exp_mask) &lt;= P*Exp_msk1)</div><div class='add'>+#endif</div><div class='add'>+                {</div><div class='add'>+                    if (word0(rv0) == Tiny0 &amp;&amp; word1(rv0) == Tiny1)</div><div class='add'>+                        goto undfl;</div><div class='add'>+                    word0(rv) = Tiny0;</div><div class='add'>+                    word1(rv) = Tiny1;</div><div class='add'>+                    goto cont;</div><div class='add'>+                }</div><div class='add'>+                else</div><div class='add'>+                    word0(rv) -= P*Exp_msk1;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                adj = dval(aadj1) * ulp(dval(rv));</div><div class='add'>+                dval(rv) += adj;</div><div class='add'>+            }</div><div class='add'>+#else /*Sudden_Underflow*/</div><div class='add'>+            /* Compute adj so that the IEEE rounding rules will</div><div class='add'>+             * correctly round rv + adj in some half-way cases.</div><div class='add'>+             * If rv * ulp(rv) is denormalized (i.e.,</div><div class='add'>+             * y &lt;= (P-1)*Exp_msk1), we must adjust aadj to avoid</div><div class='add'>+             * trouble from bits lost to denormalization;</div><div class='add'>+             * example: 1.2e-307 .</div><div class='add'>+             */</div><div class='add'>+            if (y &lt;= (P-1)*Exp_msk1 &amp;&amp; aadj &gt; 1.) {</div><div class='add'>+                dval(aadj1) = (double)(int)(aadj + 0.5);</div><div class='add'>+                if (!dsign)</div><div class='add'>+                    dval(aadj1) = -dval(aadj1);</div><div class='add'>+            }</div><div class='add'>+            adj = dval(aadj1) * ulp(dval(rv));</div><div class='add'>+            dval(rv) += adj;</div><div class='add'>+#endif /*Sudden_Underflow*/</div><div class='add'>+#endif /*Avoid_Underflow*/</div><div class='add'>+        }</div><div class='add'>+        z = word0(rv) &amp; Exp_mask;</div><div class='add'>+#ifndef SET_INEXACT</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+        if (!scale)</div><div class='add'>+#endif</div><div class='add'>+        if (y == z) {</div><div class='add'>+            /* Can we stop now? */</div><div class='add'>+            L = (Long)aadj;</div><div class='add'>+            aadj -= L;</div><div class='add'>+            /* The tolerances below are conservative. */</div><div class='add'>+            if (dsign || word1(rv) || word0(rv) &amp; Bndry_mask) {</div><div class='add'>+                if (aadj &lt; .4999999 || aadj &gt; .5000001)</div><div class='add'>+                    break;</div><div class='add'>+            }</div><div class='add'>+            else if (aadj &lt; .4999999/FLT_RADIX)</div><div class='add'>+                break;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+cont:</div><div class='add'>+        Bfree(bb);</div><div class='add'>+        Bfree(bd);</div><div class='add'>+        Bfree(bs);</div><div class='add'>+        Bfree(delta);</div><div class='add'>+    }</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+    if (inexact) {</div><div class='add'>+        if (!oldinexact) {</div><div class='add'>+            word0(rv0) = Exp_1 + (70 &lt;&lt; Exp_shift);</div><div class='add'>+            word1(rv0) = 0;</div><div class='add'>+            dval(rv0) += 1.;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else if (!oldinexact)</div><div class='add'>+        clear_inexact();</div><div class='add'>+#endif</div><div class='add'>+#ifdef Avoid_Underflow</div><div class='add'>+    if (scale) {</div><div class='add'>+        word0(rv0) = Exp_1 - 2*P*Exp_msk1;</div><div class='add'>+        word1(rv0) = 0;</div><div class='add'>+        dval(rv) *= dval(rv0);</div><div class='add'>+#ifndef NO_ERRNO</div><div class='add'>+        /* try to avoid the bug of testing an 8087 register value */</div><div class='add'>+        if (word0(rv) == 0 &amp;&amp; word1(rv) == 0)</div><div class='add'>+            errno = ERANGE;</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+#endif /* Avoid_Underflow */</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+    if (inexact &amp;&amp; !(word0(rv) &amp; Exp_mask)) {</div><div class='add'>+        /* set underflow bit */</div><div class='add'>+        dval(rv0) = 1e-300;</div><div class='add'>+        dval(rv0) *= dval(rv0);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+retfree:</div><div class='add'>+    Bfree(bb);</div><div class='add'>+    Bfree(bd);</div><div class='add'>+    Bfree(bs);</div><div class='add'>+    Bfree(bd0);</div><div class='add'>+    Bfree(delta);</div><div class='add'>+ret:</div><div class='add'>+    if (se)</div><div class='add'>+        *se = (char *)s;</div><div class='add'>+    return sign ? -dval(rv) : dval(rv);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NO_SANITIZE("unsigned-integer-overflow", static int quorem(Bigint *b, Bigint *S));</div><div class='add'>+static int</div><div class='add'>+quorem(Bigint *b, Bigint *S)</div><div class='add'>+{</div><div class='add'>+    int n;</div><div class='add'>+    ULong *bx, *bxe, q, *sx, *sxe;</div><div class='add'>+#ifdef ULLong</div><div class='add'>+    ULLong borrow, carry, y, ys;</div><div class='add'>+#else</div><div class='add'>+    ULong borrow, carry, y, ys;</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    ULong si, z, zs;</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    n = S-&gt;wds;</div><div class='add'>+#ifdef DEBUG</div><div class='add'>+    /*debug*/ if (b-&gt;wds &gt; n)</div><div class='add'>+    /*debug*/   Bug("oversize b in quorem");</div><div class='add'>+#endif</div><div class='add'>+    if (b-&gt;wds &lt; n)</div><div class='add'>+        return 0;</div><div class='add'>+    sx = S-&gt;x;</div><div class='add'>+    sxe = sx + --n;</div><div class='add'>+    bx = b-&gt;x;</div><div class='add'>+    bxe = bx + n;</div><div class='add'>+    q = *bxe / (*sxe + 1);  /* ensure q &lt;= true quotient */</div><div class='add'>+#ifdef DEBUG</div><div class='add'>+    /*debug*/ if (q &gt; 9)</div><div class='add'>+    /*debug*/   Bug("oversized quotient in quorem");</div><div class='add'>+#endif</div><div class='add'>+    if (q) {</div><div class='add'>+        borrow = 0;</div><div class='add'>+        carry = 0;</div><div class='add'>+        do {</div><div class='add'>+#ifdef ULLong</div><div class='add'>+            ys = *sx++ * (ULLong)q + carry;</div><div class='add'>+            carry = ys &gt;&gt; 32;</div><div class='add'>+            y = *bx - (ys &amp; FFFFFFFF) - borrow;</div><div class='add'>+            borrow = y &gt;&gt; 32 &amp; (ULong)1;</div><div class='add'>+            *bx++ = (ULong)(y &amp; FFFFFFFF);</div><div class='add'>+#else</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+            si = *sx++;</div><div class='add'>+            ys = (si &amp; 0xffff) * q + carry;</div><div class='add'>+            zs = (si &gt;&gt; 16) * q + (ys &gt;&gt; 16);</div><div class='add'>+            carry = zs &gt;&gt; 16;</div><div class='add'>+            y = (*bx &amp; 0xffff) - (ys &amp; 0xffff) - borrow;</div><div class='add'>+            borrow = (y &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+            z = (*bx &gt;&gt; 16) - (zs &amp; 0xffff) - borrow;</div><div class='add'>+            borrow = (z &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+            Storeinc(bx, z, y);</div><div class='add'>+#else</div><div class='add'>+            ys = *sx++ * q + carry;</div><div class='add'>+            carry = ys &gt;&gt; 16;</div><div class='add'>+            y = *bx - (ys &amp; 0xffff) - borrow;</div><div class='add'>+            borrow = (y &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+            *bx++ = y &amp; 0xffff;</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+        } while (sx &lt;= sxe);</div><div class='add'>+        if (!*bxe) {</div><div class='add'>+            bx = b-&gt;x;</div><div class='add'>+            while (--bxe &gt; bx &amp;&amp; !*bxe)</div><div class='add'>+                --n;</div><div class='add'>+            b-&gt;wds = n;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (cmp(b, S) &gt;= 0) {</div><div class='add'>+        q++;</div><div class='add'>+        borrow = 0;</div><div class='add'>+        carry = 0;</div><div class='add'>+        bx = b-&gt;x;</div><div class='add'>+        sx = S-&gt;x;</div><div class='add'>+        do {</div><div class='add'>+#ifdef ULLong</div><div class='add'>+            ys = *sx++ + carry;</div><div class='add'>+            carry = ys &gt;&gt; 32;</div><div class='add'>+            y = *bx - (ys &amp; FFFFFFFF) - borrow;</div><div class='add'>+            borrow = y &gt;&gt; 32 &amp; (ULong)1;</div><div class='add'>+            *bx++ = (ULong)(y &amp; FFFFFFFF);</div><div class='add'>+#else</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+            si = *sx++;</div><div class='add'>+            ys = (si &amp; 0xffff) + carry;</div><div class='add'>+            zs = (si &gt;&gt; 16) + (ys &gt;&gt; 16);</div><div class='add'>+            carry = zs &gt;&gt; 16;</div><div class='add'>+            y = (*bx &amp; 0xffff) - (ys &amp; 0xffff) - borrow;</div><div class='add'>+            borrow = (y &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+            z = (*bx &gt;&gt; 16) - (zs &amp; 0xffff) - borrow;</div><div class='add'>+            borrow = (z &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+            Storeinc(bx, z, y);</div><div class='add'>+#else</div><div class='add'>+            ys = *sx++ + carry;</div><div class='add'>+            carry = ys &gt;&gt; 16;</div><div class='add'>+            y = *bx - (ys &amp; 0xffff) - borrow;</div><div class='add'>+            borrow = (y &amp; 0x10000) &gt;&gt; 16;</div><div class='add'>+            *bx++ = y &amp; 0xffff;</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+        } while (sx &lt;= sxe);</div><div class='add'>+        bx = b-&gt;x;</div><div class='add'>+        bxe = bx + n;</div><div class='add'>+        if (!*bxe) {</div><div class='add'>+            while (--bxe &gt; bx &amp;&amp; !*bxe)</div><div class='add'>+                --n;</div><div class='add'>+            b-&gt;wds = n;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return q;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifndef MULTIPLE_THREADS</div><div class='add'>+static char *dtoa_result;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef MULTIPLE_THREADS</div><div class='add'>+static char *</div><div class='add'>+rv_alloc(int i)</div><div class='add'>+{</div><div class='add'>+    return dtoa_result = MALLOC(i);</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+#define rv_alloc(i) MALLOC(i)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static char *</div><div class='add'>+nrv_alloc(const char *s, char **rve, size_t n)</div><div class='add'>+{</div><div class='add'>+    char *rv, *t;</div><div class='add'>+</div><div class='add'>+    t = rv = rv_alloc(n);</div><div class='add'>+    while ((*t = *s++) != 0) t++;</div><div class='add'>+    if (rve)</div><div class='add'>+        *rve = t;</div><div class='add'>+    return rv;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define rv_strdup(s, rve) nrv_alloc((s), (rve), strlen(s)+1)</div><div class='add'>+</div><div class='add'>+#ifndef MULTIPLE_THREADS</div><div class='add'>+/* freedtoa(s) must be used to free values s returned by dtoa</div><div class='add'>+ * when MULTIPLE_THREADS is #defined.  It should be used in all cases,</div><div class='add'>+ * but for consistency with earlier versions of dtoa, it is optional</div><div class='add'>+ * when MULTIPLE_THREADS is not defined.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+freedtoa(char *s)</div><div class='add'>+{</div><div class='add'>+    FREE(s);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static const char INFSTR[] = "Infinity";</div><div class='add'>+static const char NANSTR[] = "NaN";</div><div class='add'>+static const char ZEROSTR[] = "0";</div><div class='add'>+</div><div class='add'>+/* dtoa for IEEE arithmetic (dmg): convert double to ASCII string.</div><div class='add'>+ *</div><div class='add'>+ * Inspired by "How to Print Floating-Point Numbers Accurately" by</div><div class='add'>+ * Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 112-126].</div><div class='add'>+ *</div><div class='add'>+ * Modifications:</div><div class='add'>+ *  1. Rather than iterating, we use a simple numeric overestimate</div><div class='add'>+ *     to determine k = floor(log10(d)).  We scale relevant</div><div class='add'>+ *     quantities using O(log2(k)) rather than O(k) multiplications.</div><div class='add'>+ *  2. For some modes &gt; 2 (corresponding to ecvt and fcvt), we don't</div><div class='add'>+ *     try to generate digits strictly left to right.  Instead, we</div><div class='add'>+ *     compute with fewer bits and propagate the carry if necessary</div><div class='add'>+ *     when rounding the final digit up.  This is often faster.</div><div class='add'>+ *  3. Under the assumption that input will be rounded nearest,</div><div class='add'>+ *     mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22.</div><div class='add'>+ *     That is, we allow equality in stopping tests when the</div><div class='add'>+ *     round-nearest rule will give the same floating-point value</div><div class='add'>+ *     as would satisfaction of the stopping test with strict</div><div class='add'>+ *     inequality.</div><div class='add'>+ *  4. We remove common factors of powers of 2 from relevant</div><div class='add'>+ *     quantities.</div><div class='add'>+ *  5. When converting floating-point integers less than 1e16,</div><div class='add'>+ *     we use floating-point arithmetic rather than resorting</div><div class='add'>+ *     to multiple-precision integers.</div><div class='add'>+ *  6. When asked to produce fewer than 15 digits, we first try</div><div class='add'>+ *     to get by with floating-point arithmetic; we resort to</div><div class='add'>+ *     multiple-precision integer arithmetic only if we cannot</div><div class='add'>+ *     guarantee that the floating-point calculation has given</div><div class='add'>+ *     the correctly rounded result.  For k requested digits and</div><div class='add'>+ *     "uniformly" distributed input, the probability is</div><div class='add'>+ *     something like 10^(k-15) that we must resort to the Long</div><div class='add'>+ *     calculation.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+char *</div><div class='add'>+dtoa(double d_, int mode, int ndigits, int *decpt, int *sign, char **rve)</div><div class='add'>+{</div><div class='add'>+ /* Arguments ndigits, decpt, sign are similar to those</div><div class='add'>+    of ecvt and fcvt; trailing zeros are suppressed from</div><div class='add'>+    the returned string.  If not null, *rve is set to point</div><div class='add'>+    to the end of the return value.  If d is +-Infinity or NaN,</div><div class='add'>+    then *decpt is set to 9999.</div><div class='add'>+</div><div class='add'>+    mode:</div><div class='add'>+        0 ==&gt; shortest string that yields d when read in</div><div class='add'>+            and rounded to nearest.</div><div class='add'>+        1 ==&gt; like 0, but with Steele &amp; White stopping rule;</div><div class='add'>+            e.g. with IEEE P754 arithmetic , mode 0 gives</div><div class='add'>+            1e23 whereas mode 1 gives 9.999999999999999e22.</div><div class='add'>+        2 ==&gt; max(1,ndigits) significant digits.  This gives a</div><div class='add'>+            return value similar to that of ecvt, except</div><div class='add'>+            that trailing zeros are suppressed.</div><div class='add'>+        3 ==&gt; through ndigits past the decimal point.  This</div><div class='add'>+            gives a return value similar to that from fcvt,</div><div class='add'>+            except that trailing zeros are suppressed, and</div><div class='add'>+            ndigits can be negative.</div><div class='add'>+        4,5 ==&gt; similar to 2 and 3, respectively, but (in</div><div class='add'>+            round-nearest mode) with the tests of mode 0 to</div><div class='add'>+            possibly return a shorter string that rounds to d.</div><div class='add'>+            With IEEE arithmetic and compilation with</div><div class='add'>+            -DHonor_FLT_ROUNDS, modes 4 and 5 behave the same</div><div class='add'>+            as modes 2 and 3 when FLT_ROUNDS != 1.</div><div class='add'>+        6-9 ==&gt; Debugging modes similar to mode - 4:  don't try</div><div class='add'>+            fast floating-point estimate (if applicable).</div><div class='add'>+</div><div class='add'>+        Values of mode other than 0-9 are treated as mode 0.</div><div class='add'>+</div><div class='add'>+        Sufficient space is allocated to the return value</div><div class='add'>+        to hold the suppressed trailing zeros.</div><div class='add'>+    */</div><div class='add'>+</div><div class='add'>+    int bbits, b2, b5, be, dig, i, ieps, ilim, ilim0, ilim1,</div><div class='add'>+        j, j1, k, k0, k_check, leftright, m2, m5, s2, s5,</div><div class='add'>+        spec_case, try_quick, half = 0;</div><div class='add'>+    Long L;</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+    int denorm;</div><div class='add'>+    ULong x;</div><div class='add'>+#endif</div><div class='add'>+    Bigint *b, *b1, *delta, *mlo = 0, *mhi = 0, *S;</div><div class='add'>+    double ds;</div><div class='add'>+    double_u d, d2, eps;</div><div class='add'>+    char *s, *s0;</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+    int rounding;</div><div class='add'>+#endif</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+    int inexact, oldinexact;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    dval(d) = d_;</div><div class='add'>+</div><div class='add'>+#ifndef MULTIPLE_THREADS</div><div class='add'>+    if (dtoa_result) {</div><div class='add'>+        freedtoa(dtoa_result);</div><div class='add'>+        dtoa_result = 0;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (word0(d) &amp; Sign_bit) {</div><div class='add'>+        /* set sign for everything, including 0's and NaNs */</div><div class='add'>+        *sign = 1;</div><div class='add'>+        word0(d) &amp;= ~Sign_bit;  /* clear sign bit */</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+        *sign = 0;</div><div class='add'>+</div><div class='add'>+#if defined(IEEE_Arith) + defined(VAX)</div><div class='add'>+#ifdef IEEE_Arith</div><div class='add'>+    if ((word0(d) &amp; Exp_mask) == Exp_mask)</div><div class='add'>+#else</div><div class='add'>+    if (word0(d)  == 0x8000)</div><div class='add'>+#endif</div><div class='add'>+    {</div><div class='add'>+        /* Infinity or NaN */</div><div class='add'>+        *decpt = 9999;</div><div class='add'>+#ifdef IEEE_Arith</div><div class='add'>+        if (!word1(d) &amp;&amp; !(word0(d) &amp; 0xfffff))</div><div class='add'>+            return rv_strdup(INFSTR, rve);</div><div class='add'>+#endif</div><div class='add'>+        return rv_strdup(NANSTR, rve);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+#ifdef IBM</div><div class='add'>+    dval(d) += 0; /* normalize */</div><div class='add'>+#endif</div><div class='add'>+    if (!dval(d)) {</div><div class='add'>+        *decpt = 1;</div><div class='add'>+        return rv_strdup(ZEROSTR, rve);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+    try_quick = oldinexact = get_inexact();</div><div class='add'>+    inexact = 1;</div><div class='add'>+#endif</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+    if ((rounding = Flt_Rounds) &gt;= 2) {</div><div class='add'>+        if (*sign)</div><div class='add'>+            rounding = rounding == 2 ? 0 : 2;</div><div class='add'>+        else</div><div class='add'>+            if (rounding != 2)</div><div class='add'>+                rounding = 0;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    b = d2b(dval(d), &amp;be, &amp;bbits);</div><div class='add'>+#ifdef Sudden_Underflow</div><div class='add'>+    i = (int)(word0(d) &gt;&gt; Exp_shift1 &amp; (Exp_mask&gt;&gt;Exp_shift1));</div><div class='add'>+#else</div><div class='add'>+    if ((i = (int)(word0(d) &gt;&gt; Exp_shift1 &amp; (Exp_mask&gt;&gt;Exp_shift1))) != 0) {</div><div class='add'>+#endif</div><div class='add'>+        dval(d2) = dval(d);</div><div class='add'>+        word0(d2) &amp;= Frac_mask1;</div><div class='add'>+        word0(d2) |= Exp_11;</div><div class='add'>+#ifdef IBM</div><div class='add'>+        if (j = 11 - hi0bits(word0(d2) &amp; Frac_mask))</div><div class='add'>+            dval(d2) /= 1 &lt;&lt; j;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        /* log(x)   ~=~ log(1.5) + (x-1.5)/1.5</div><div class='add'>+         * log10(x)  =  log(x) / log(10)</div><div class='add'>+         *      ~=~ log(1.5)/log(10) + (x-1.5)/(1.5*log(10))</div><div class='add'>+         * log10(d) = (i-Bias)*log(2)/log(10) + log10(d2)</div><div class='add'>+         *</div><div class='add'>+         * This suggests computing an approximation k to log10(d) by</div><div class='add'>+         *</div><div class='add'>+         * k = (i - Bias)*0.301029995663981</div><div class='add'>+         *  + ( (d2-1.5)*0.289529654602168 + 0.176091259055681 );</div><div class='add'>+         *</div><div class='add'>+         * We want k to be too large rather than too small.</div><div class='add'>+         * The error in the first-order Taylor series approximation</div><div class='add'>+         * is in our favor, so we just round up the constant enough</div><div class='add'>+         * to compensate for any error in the multiplication of</div><div class='add'>+         * (i - Bias) by 0.301029995663981; since |i - Bias| &lt;= 1077,</div><div class='add'>+         * and 1077 * 0.30103 * 2^-52 ~=~ 7.2e-14,</div><div class='add'>+         * adding 1e-13 to the constant term more than suffices.</div><div class='add'>+         * Hence we adjust the constant term to 0.1760912590558.</div><div class='add'>+         * (We could get a more accurate k by invoking log10,</div><div class='add'>+         *  but this is probably not worthwhile.)</div><div class='add'>+         */</div><div class='add'>+</div><div class='add'>+        i -= Bias;</div><div class='add'>+#ifdef IBM</div><div class='add'>+        i &lt;&lt;= 2;</div><div class='add'>+        i += j;</div><div class='add'>+#endif</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+        denorm = 0;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        /* d is denormalized */</div><div class='add'>+</div><div class='add'>+        i = bbits + be + (Bias + (P-1) - 1);</div><div class='add'>+        x = i &gt; 32  ? word0(d) &lt;&lt; (64 - i) | word1(d) &gt;&gt; (i - 32)</div><div class='add'>+	    : word1(d) &lt;&lt; (32 - i);</div><div class='add'>+        dval(d2) = x;</div><div class='add'>+        word0(d2) -= 31*Exp_msk1; /* adjust exponent */</div><div class='add'>+        i -= (Bias + (P-1) - 1) + 1;</div><div class='add'>+        denorm = 1;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    ds = (dval(d2)-1.5)*0.289529654602168 + 0.1760912590558 + i*0.301029995663981;</div><div class='add'>+    k = (int)ds;</div><div class='add'>+    if (ds &lt; 0. &amp;&amp; ds != k)</div><div class='add'>+        k--;    /* want k = floor(ds) */</div><div class='add'>+    k_check = 1;</div><div class='add'>+    if (k &gt;= 0 &amp;&amp; k &lt;= Ten_pmax) {</div><div class='add'>+        if (dval(d) &lt; tens[k])</div><div class='add'>+            k--;</div><div class='add'>+        k_check = 0;</div><div class='add'>+    }</div><div class='add'>+    j = bbits - i - 1;</div><div class='add'>+    if (j &gt;= 0) {</div><div class='add'>+        b2 = 0;</div><div class='add'>+        s2 = j;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        b2 = -j;</div><div class='add'>+        s2 = 0;</div><div class='add'>+    }</div><div class='add'>+    if (k &gt;= 0) {</div><div class='add'>+        b5 = 0;</div><div class='add'>+        s5 = k;</div><div class='add'>+        s2 += k;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        b2 -= k;</div><div class='add'>+        b5 = -k;</div><div class='add'>+        s5 = 0;</div><div class='add'>+    }</div><div class='add'>+    if (mode &lt; 0 || mode &gt; 9)</div><div class='add'>+        mode = 0;</div><div class='add'>+</div><div class='add'>+#ifndef SET_INEXACT</div><div class='add'>+#ifdef Check_FLT_ROUNDS</div><div class='add'>+    try_quick = Rounding == 1;</div><div class='add'>+#else</div><div class='add'>+    try_quick = 1;</div><div class='add'>+#endif</div><div class='add'>+#endif /*SET_INEXACT*/</div><div class='add'>+</div><div class='add'>+    if (mode &gt; 5) {</div><div class='add'>+        mode -= 4;</div><div class='add'>+        try_quick = 0;</div><div class='add'>+    }</div><div class='add'>+    leftright = 1;</div><div class='add'>+    ilim = ilim1 = -1;</div><div class='add'>+    switch (mode) {</div><div class='add'>+      case 0:</div><div class='add'>+      case 1:</div><div class='add'>+        i = 18;</div><div class='add'>+        ndigits = 0;</div><div class='add'>+        break;</div><div class='add'>+      case 2:</div><div class='add'>+        leftright = 0;</div><div class='add'>+        /* no break */</div><div class='add'>+      case 4:</div><div class='add'>+        if (ndigits &lt;= 0)</div><div class='add'>+            ndigits = 1;</div><div class='add'>+        ilim = ilim1 = i = ndigits;</div><div class='add'>+        break;</div><div class='add'>+      case 3:</div><div class='add'>+        leftright = 0;</div><div class='add'>+        /* no break */</div><div class='add'>+      case 5:</div><div class='add'>+        i = ndigits + k + 1;</div><div class='add'>+        ilim = i;</div><div class='add'>+        ilim1 = i - 1;</div><div class='add'>+        if (i &lt;= 0)</div><div class='add'>+            i = 1;</div><div class='add'>+    }</div><div class='add'>+    s = s0 = rv_alloc(i+1);</div><div class='add'>+</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+    if (mode &gt; 1 &amp;&amp; rounding != 1)</div><div class='add'>+        leftright = 0;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (ilim &gt;= 0 &amp;&amp; ilim &lt;= Quick_max &amp;&amp; try_quick) {</div><div class='add'>+</div><div class='add'>+        /* Try to get by with floating-point arithmetic. */</div><div class='add'>+</div><div class='add'>+        i = 0;</div><div class='add'>+        dval(d2) = dval(d);</div><div class='add'>+        k0 = k;</div><div class='add'>+        ilim0 = ilim;</div><div class='add'>+        ieps = 2; /* conservative */</div><div class='add'>+        if (k &gt; 0) {</div><div class='add'>+            ds = tens[k&amp;0xf];</div><div class='add'>+            j = k &gt;&gt; 4;</div><div class='add'>+            if (j &amp; Bletch) {</div><div class='add'>+                /* prevent overflows */</div><div class='add'>+                j &amp;= Bletch - 1;</div><div class='add'>+                dval(d) /= bigtens[n_bigtens-1];</div><div class='add'>+                ieps++;</div><div class='add'>+            }</div><div class='add'>+            for (; j; j &gt;&gt;= 1, i++)</div><div class='add'>+                if (j &amp; 1) {</div><div class='add'>+                    ieps++;</div><div class='add'>+                    ds *= bigtens[i];</div><div class='add'>+                }</div><div class='add'>+            dval(d) /= ds;</div><div class='add'>+        }</div><div class='add'>+        else if ((j1 = -k) != 0) {</div><div class='add'>+            dval(d) *= tens[j1 &amp; 0xf];</div><div class='add'>+            for (j = j1 &gt;&gt; 4; j; j &gt;&gt;= 1, i++)</div><div class='add'>+                if (j &amp; 1) {</div><div class='add'>+                    ieps++;</div><div class='add'>+                    dval(d) *= bigtens[i];</div><div class='add'>+                }</div><div class='add'>+        }</div><div class='add'>+        if (k_check &amp;&amp; dval(d) &lt; 1. &amp;&amp; ilim &gt; 0) {</div><div class='add'>+            if (ilim1 &lt;= 0)</div><div class='add'>+                goto fast_failed;</div><div class='add'>+            ilim = ilim1;</div><div class='add'>+            k--;</div><div class='add'>+            dval(d) *= 10.;</div><div class='add'>+            ieps++;</div><div class='add'>+        }</div><div class='add'>+        dval(eps) = ieps*dval(d) + 7.;</div><div class='add'>+        word0(eps) -= (P-1)*Exp_msk1;</div><div class='add'>+        if (ilim == 0) {</div><div class='add'>+            S = mhi = 0;</div><div class='add'>+            dval(d) -= 5.;</div><div class='add'>+            if (dval(d) &gt; dval(eps))</div><div class='add'>+                goto one_digit;</div><div class='add'>+            if (dval(d) &lt; -dval(eps))</div><div class='add'>+                goto no_digits;</div><div class='add'>+            goto fast_failed;</div><div class='add'>+        }</div><div class='add'>+#ifndef No_leftright</div><div class='add'>+        if (leftright) {</div><div class='add'>+            /* Use Steele &amp; White method of only</div><div class='add'>+             * generating digits needed.</div><div class='add'>+             */</div><div class='add'>+            dval(eps) = 0.5/tens[ilim-1] - dval(eps);</div><div class='add'>+            for (i = 0;;) {</div><div class='add'>+                L = (int)dval(d);</div><div class='add'>+                dval(d) -= L;</div><div class='add'>+                *s++ = '0' + (int)L;</div><div class='add'>+                if (dval(d) &lt; dval(eps))</div><div class='add'>+                    goto ret1;</div><div class='add'>+                if (1. - dval(d) &lt; dval(eps))</div><div class='add'>+                    goto bump_up;</div><div class='add'>+                if (++i &gt;= ilim)</div><div class='add'>+                    break;</div><div class='add'>+                dval(eps) *= 10.;</div><div class='add'>+                dval(d) *= 10.;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+#endif</div><div class='add'>+            /* Generate ilim digits, then fix them up. */</div><div class='add'>+            dval(eps) *= tens[ilim-1];</div><div class='add'>+            for (i = 1;; i++, dval(d) *= 10.) {</div><div class='add'>+                L = (Long)(dval(d));</div><div class='add'>+                if (!(dval(d) -= L))</div><div class='add'>+                    ilim = i;</div><div class='add'>+                *s++ = '0' + (int)L;</div><div class='add'>+                if (i == ilim) {</div><div class='add'>+                    if (dval(d) &gt; 0.5 + dval(eps))</div><div class='add'>+                        goto bump_up;</div><div class='add'>+                    else if (dval(d) &lt; 0.5 - dval(eps)) {</div><div class='add'>+                        while (*--s == '0') ;</div><div class='add'>+                        s++;</div><div class='add'>+                        goto ret1;</div><div class='add'>+                    }</div><div class='add'>+                    half = 1;</div><div class='add'>+                    if ((*(s-1) - '0') &amp; 1) {</div><div class='add'>+                        goto bump_up;</div><div class='add'>+                    }</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+#ifndef No_leftright</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+fast_failed:</div><div class='add'>+        s = s0;</div><div class='add'>+        dval(d) = dval(d2);</div><div class='add'>+        k = k0;</div><div class='add'>+        ilim = ilim0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* Do we have a "small" integer? */</div><div class='add'>+</div><div class='add'>+    if (be &gt;= 0 &amp;&amp; k &lt;= Int_max) {</div><div class='add'>+        /* Yes. */</div><div class='add'>+        ds = tens[k];</div><div class='add'>+        if (ndigits &lt; 0 &amp;&amp; ilim &lt;= 0) {</div><div class='add'>+            S = mhi = 0;</div><div class='add'>+            if (ilim &lt; 0 || dval(d) &lt;= 5*ds)</div><div class='add'>+                goto no_digits;</div><div class='add'>+            goto one_digit;</div><div class='add'>+        }</div><div class='add'>+        for (i = 1;; i++, dval(d) *= 10.) {</div><div class='add'>+            L = (Long)(dval(d) / ds);</div><div class='add'>+            dval(d) -= L*ds;</div><div class='add'>+#ifdef Check_FLT_ROUNDS</div><div class='add'>+            /* If FLT_ROUNDS == 2, L will usually be high by 1 */</div><div class='add'>+            if (dval(d) &lt; 0) {</div><div class='add'>+                L--;</div><div class='add'>+                dval(d) += ds;</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+            *s++ = '0' + (int)L;</div><div class='add'>+            if (!dval(d)) {</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+                inexact = 0;</div><div class='add'>+#endif</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            if (i == ilim) {</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+                if (mode &gt; 1)</div><div class='add'>+                switch (rounding) {</div><div class='add'>+                  case 0: goto ret1;</div><div class='add'>+                  case 2: goto bump_up;</div><div class='add'>+                }</div><div class='add'>+#endif</div><div class='add'>+                dval(d) += dval(d);</div><div class='add'>+                if (dval(d) &gt; ds || (dval(d) == ds &amp;&amp; (L &amp; 1))) {</div><div class='add'>+bump_up:</div><div class='add'>+                    while (*--s == '9')</div><div class='add'>+                        if (s == s0) {</div><div class='add'>+                            k++;</div><div class='add'>+                            *s = '0';</div><div class='add'>+                            break;</div><div class='add'>+                        }</div><div class='add'>+                    ++*s++;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        goto ret1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    m2 = b2;</div><div class='add'>+    m5 = b5;</div><div class='add'>+    if (leftright) {</div><div class='add'>+        i =</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+            denorm ? be + (Bias + (P-1) - 1 + 1) :</div><div class='add'>+#endif</div><div class='add'>+#ifdef IBM</div><div class='add'>+            1 + 4*P - 3 - bbits + ((bbits + be - 1) &amp; 3);</div><div class='add'>+#else</div><div class='add'>+            1 + P - bbits;</div><div class='add'>+#endif</div><div class='add'>+        b2 += i;</div><div class='add'>+        s2 += i;</div><div class='add'>+        mhi = i2b(1);</div><div class='add'>+    }</div><div class='add'>+    if (m2 &gt; 0 &amp;&amp; s2 &gt; 0) {</div><div class='add'>+        i = m2 &lt; s2 ? m2 : s2;</div><div class='add'>+        b2 -= i;</div><div class='add'>+        m2 -= i;</div><div class='add'>+        s2 -= i;</div><div class='add'>+    }</div><div class='add'>+    if (b5 &gt; 0) {</div><div class='add'>+        if (leftright) {</div><div class='add'>+            if (m5 &gt; 0) {</div><div class='add'>+                mhi = pow5mult(mhi, m5);</div><div class='add'>+                b1 = mult(mhi, b);</div><div class='add'>+                Bfree(b);</div><div class='add'>+                b = b1;</div><div class='add'>+            }</div><div class='add'>+            if ((j = b5 - m5) != 0)</div><div class='add'>+                b = pow5mult(b, j);</div><div class='add'>+        }</div><div class='add'>+        else</div><div class='add'>+            b = pow5mult(b, b5);</div><div class='add'>+    }</div><div class='add'>+    S = i2b(1);</div><div class='add'>+    if (s5 &gt; 0)</div><div class='add'>+        S = pow5mult(S, s5);</div><div class='add'>+</div><div class='add'>+    /* Check for special case that d is a normalized power of 2. */</div><div class='add'>+</div><div class='add'>+    spec_case = 0;</div><div class='add'>+    if ((mode &lt; 2 || leftright)</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+            &amp;&amp; rounding == 1</div><div class='add'>+#endif</div><div class='add'>+    ) {</div><div class='add'>+        if (!word1(d) &amp;&amp; !(word0(d) &amp; Bndry_mask)</div><div class='add'>+#ifndef Sudden_Underflow</div><div class='add'>+            &amp;&amp; word0(d) &amp; (Exp_mask &amp; ~Exp_msk1)</div><div class='add'>+#endif</div><div class='add'>+        ) {</div><div class='add'>+            /* The special case */</div><div class='add'>+            b2 += Log2P;</div><div class='add'>+            s2 += Log2P;</div><div class='add'>+            spec_case = 1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* Arrange for convenient computation of quotients:</div><div class='add'>+     * shift left if necessary so divisor has 4 leading 0 bits.</div><div class='add'>+     *</div><div class='add'>+     * Perhaps we should just compute leading 28 bits of S once</div><div class='add'>+     * and for all and pass them and a shift to quorem, so it</div><div class='add'>+     * can do shifts and ors to compute the numerator for q.</div><div class='add'>+     */</div><div class='add'>+#ifdef Pack_32</div><div class='add'>+    if ((i = ((s5 ? 32 - hi0bits(S-&gt;x[S-&gt;wds-1]) : 1) + s2) &amp; 0x1f) != 0)</div><div class='add'>+        i = 32 - i;</div><div class='add'>+#else</div><div class='add'>+    if ((i = ((s5 ? 32 - hi0bits(S-&gt;x[S-&gt;wds-1]) : 1) + s2) &amp; 0xf) != 0)</div><div class='add'>+        i = 16 - i;</div><div class='add'>+#endif</div><div class='add'>+    if (i &gt; 4) {</div><div class='add'>+        i -= 4;</div><div class='add'>+        b2 += i;</div><div class='add'>+        m2 += i;</div><div class='add'>+        s2 += i;</div><div class='add'>+    }</div><div class='add'>+    else if (i &lt; 4) {</div><div class='add'>+        i += 28;</div><div class='add'>+        b2 += i;</div><div class='add'>+        m2 += i;</div><div class='add'>+        s2 += i;</div><div class='add'>+    }</div><div class='add'>+    if (b2 &gt; 0)</div><div class='add'>+        b = lshift(b, b2);</div><div class='add'>+    if (s2 &gt; 0)</div><div class='add'>+        S = lshift(S, s2);</div><div class='add'>+    if (k_check) {</div><div class='add'>+        if (cmp(b,S) &lt; 0) {</div><div class='add'>+            k--;</div><div class='add'>+            b = multadd(b, 10, 0);  /* we botched the k estimate */</div><div class='add'>+            if (leftright)</div><div class='add'>+                mhi = multadd(mhi, 10, 0);</div><div class='add'>+            ilim = ilim1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (ilim &lt;= 0 &amp;&amp; (mode == 3 || mode == 5)) {</div><div class='add'>+        if (ilim &lt; 0 || cmp(b,S = multadd(S,5,0)) &lt;= 0) {</div><div class='add'>+            /* no digits, fcvt style */</div><div class='add'>+no_digits:</div><div class='add'>+            k = -1 - ndigits;</div><div class='add'>+            goto ret;</div><div class='add'>+        }</div><div class='add'>+one_digit:</div><div class='add'>+        *s++ = '1';</div><div class='add'>+        k++;</div><div class='add'>+        goto ret;</div><div class='add'>+    }</div><div class='add'>+    if (leftright) {</div><div class='add'>+        if (m2 &gt; 0)</div><div class='add'>+            mhi = lshift(mhi, m2);</div><div class='add'>+</div><div class='add'>+        /* Compute mlo -- check for special case</div><div class='add'>+         * that d is a normalized power of 2.</div><div class='add'>+         */</div><div class='add'>+</div><div class='add'>+        mlo = mhi;</div><div class='add'>+        if (spec_case) {</div><div class='add'>+            mhi = Balloc(mhi-&gt;k);</div><div class='add'>+            Bcopy(mhi, mlo);</div><div class='add'>+            mhi = lshift(mhi, Log2P);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        for (i = 1;;i++) {</div><div class='add'>+            dig = quorem(b,S) + '0';</div><div class='add'>+            /* Do we yet have the shortest decimal string</div><div class='add'>+             * that will round to d?</div><div class='add'>+             */</div><div class='add'>+            j = cmp(b, mlo);</div><div class='add'>+            delta = diff(S, mhi);</div><div class='add'>+            j1 = delta-&gt;sign ? 1 : cmp(b, delta);</div><div class='add'>+            Bfree(delta);</div><div class='add'>+#ifndef ROUND_BIASED</div><div class='add'>+            if (j1 == 0 &amp;&amp; mode != 1 &amp;&amp; !(word1(d) &amp; 1)</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+                &amp;&amp; rounding &gt;= 1</div><div class='add'>+#endif</div><div class='add'>+            ) {</div><div class='add'>+                if (dig == '9')</div><div class='add'>+                    goto round_9_up;</div><div class='add'>+                if (j &gt; 0)</div><div class='add'>+                    dig++;</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+                else if (!b-&gt;x[0] &amp;&amp; b-&gt;wds &lt;= 1)</div><div class='add'>+                    inexact = 0;</div><div class='add'>+#endif</div><div class='add'>+                *s++ = dig;</div><div class='add'>+                goto ret;</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+            if (j &lt; 0 || (j == 0 &amp;&amp; mode != 1</div><div class='add'>+#ifndef ROUND_BIASED</div><div class='add'>+                &amp;&amp; !(word1(d) &amp; 1)</div><div class='add'>+#endif</div><div class='add'>+            )) {</div><div class='add'>+                if (!b-&gt;x[0] &amp;&amp; b-&gt;wds &lt;= 1) {</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+                    inexact = 0;</div><div class='add'>+#endif</div><div class='add'>+                    goto accept_dig;</div><div class='add'>+                }</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+                if (mode &gt; 1)</div><div class='add'>+                    switch (rounding) {</div><div class='add'>+                      case 0: goto accept_dig;</div><div class='add'>+                      case 2: goto keep_dig;</div><div class='add'>+                    }</div><div class='add'>+#endif /*Honor_FLT_ROUNDS*/</div><div class='add'>+                if (j1 &gt; 0) {</div><div class='add'>+                    b = lshift(b, 1);</div><div class='add'>+                    j1 = cmp(b, S);</div><div class='add'>+                    if ((j1 &gt; 0 || (j1 == 0 &amp;&amp; (dig &amp; 1))) &amp;&amp; dig++ == '9')</div><div class='add'>+                        goto round_9_up;</div><div class='add'>+                }</div><div class='add'>+accept_dig:</div><div class='add'>+                *s++ = dig;</div><div class='add'>+                goto ret;</div><div class='add'>+            }</div><div class='add'>+            if (j1 &gt; 0) {</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+                if (!rounding)</div><div class='add'>+                    goto accept_dig;</div><div class='add'>+#endif</div><div class='add'>+                if (dig == '9') { /* possible if i == 1 */</div><div class='add'>+round_9_up:</div><div class='add'>+                    *s++ = '9';</div><div class='add'>+                    goto roundoff;</div><div class='add'>+                }</div><div class='add'>+                *s++ = dig + 1;</div><div class='add'>+                goto ret;</div><div class='add'>+            }</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+keep_dig:</div><div class='add'>+#endif</div><div class='add'>+            *s++ = dig;</div><div class='add'>+            if (i == ilim)</div><div class='add'>+                break;</div><div class='add'>+            b = multadd(b, 10, 0);</div><div class='add'>+            if (mlo == mhi)</div><div class='add'>+                mlo = mhi = multadd(mhi, 10, 0);</div><div class='add'>+            else {</div><div class='add'>+                mlo = multadd(mlo, 10, 0);</div><div class='add'>+                mhi = multadd(mhi, 10, 0);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+        for (i = 1;; i++) {</div><div class='add'>+            *s++ = dig = quorem(b,S) + '0';</div><div class='add'>+            if (!b-&gt;x[0] &amp;&amp; b-&gt;wds &lt;= 1) {</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+                inexact = 0;</div><div class='add'>+#endif</div><div class='add'>+                goto ret;</div><div class='add'>+            }</div><div class='add'>+            if (i &gt;= ilim)</div><div class='add'>+                break;</div><div class='add'>+            b = multadd(b, 10, 0);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+    /* Round off last digit */</div><div class='add'>+</div><div class='add'>+#ifdef Honor_FLT_ROUNDS</div><div class='add'>+    switch (rounding) {</div><div class='add'>+      case 0: goto trimzeros;</div><div class='add'>+      case 2: goto roundoff;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    b = lshift(b, 1);</div><div class='add'>+    j = cmp(b, S);</div><div class='add'>+    if (j &gt; 0 || (j == 0 &amp;&amp; (dig &amp; 1))) {</div><div class='add'>+ roundoff:</div><div class='add'>+        while (*--s == '9')</div><div class='add'>+            if (s == s0) {</div><div class='add'>+                k++;</div><div class='add'>+                *s++ = '1';</div><div class='add'>+                goto ret;</div><div class='add'>+            }</div><div class='add'>+        if (!half || (*s - '0') &amp; 1)</div><div class='add'>+            ++*s;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        while (*--s == '0') ;</div><div class='add'>+    }</div><div class='add'>+    s++;</div><div class='add'>+ret:</div><div class='add'>+    Bfree(S);</div><div class='add'>+    if (mhi) {</div><div class='add'>+        if (mlo &amp;&amp; mlo != mhi)</div><div class='add'>+            Bfree(mlo);</div><div class='add'>+        Bfree(mhi);</div><div class='add'>+    }</div><div class='add'>+ret1:</div><div class='add'>+#ifdef SET_INEXACT</div><div class='add'>+    if (inexact) {</div><div class='add'>+        if (!oldinexact) {</div><div class='add'>+            word0(d) = Exp_1 + (70 &lt;&lt; Exp_shift);</div><div class='add'>+            word1(d) = 0;</div><div class='add'>+            dval(d) += 1.;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else if (!oldinexact)</div><div class='add'>+        clear_inexact();</div><div class='add'>+#endif</div><div class='add'>+    Bfree(b);</div><div class='add'>+    *s = 0;</div><div class='add'>+    *decpt = k + 1;</div><div class='add'>+    if (rve)</div><div class='add'>+        *rve = s;</div><div class='add'>+    return s0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2004-2008 David Schultz &lt;das@FreeBSD.ORG&gt;</div><div class='add'>+ * All rights reserved.</div><div class='add'>+ *</div><div class='add'>+ * Redistribution and use in source and binary forms, with or without</div><div class='add'>+ * modification, are permitted provided that the following conditions</div><div class='add'>+ * are met:</div><div class='add'>+ * 1. Redistributions of source code must retain the above copyright</div><div class='add'>+ *    notice, this list of conditions and the following disclaimer.</div><div class='add'>+ * 2. Redistributions in binary form must reproduce the above copyright</div><div class='add'>+ *    notice, this list of conditions and the following disclaimer in the</div><div class='add'>+ *    documentation and/or other materials provided with the distribution.</div><div class='add'>+ *</div><div class='add'>+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</div><div class='add'>+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</div><div class='add'>+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</div><div class='add'>+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</div><div class='add'>+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</div><div class='add'>+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</div><div class='add'>+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</div><div class='add'>+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</div><div class='add'>+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</div><div class='add'>+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</div><div class='add'>+ * SUCH DAMAGE.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#define	DBL_MANH_SIZE	20</div><div class='add'>+#define	DBL_MANL_SIZE	32</div><div class='add'>+#define	DBL_ADJ	(DBL_MAX_EXP - 2)</div><div class='add'>+#define	SIGFIGS	((DBL_MANT_DIG + 3) / 4 + 1)</div><div class='add'>+#define dexp_get(u) ((int)(word0(u) &gt;&gt; Exp_shift) &amp; ~Exp_msk1)</div><div class='add'>+#define dexp_set(u,v) (word0(u) = (((int)(word0(u)) &amp; ~Exp_mask) | ((v) &lt;&lt; Exp_shift)))</div><div class='add'>+#define dmanh_get(u) ((uint32_t)(word0(u) &amp; Frac_mask))</div><div class='add'>+#define dmanl_get(u) ((uint32_t)word1(u))</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * This procedure converts a double-precision number in IEEE format</div><div class='add'>+ * into a string of hexadecimal digits and an exponent of 2.  Its</div><div class='add'>+ * behavior is bug-for-bug compatible with dtoa() in mode 2, with the</div><div class='add'>+ * following exceptions:</div><div class='add'>+ *</div><div class='add'>+ * - An ndigits &lt; 0 causes it to use as many digits as necessary to</div><div class='add'>+ *   represent the number exactly.</div><div class='add'>+ * - The additional xdigs argument should point to either the string</div><div class='add'>+ *   "0123456789ABCDEF" or the string "0123456789abcdef", depending on</div><div class='add'>+ *   which case is desired.</div><div class='add'>+ * - This routine does not repeat dtoa's mistake of setting decpt</div><div class='add'>+ *   to 9999 in the case of an infinity or NaN.  INT_MAX is used</div><div class='add'>+ *   for this purpose instead.</div><div class='add'>+ *</div><div class='add'>+ * Note that the C99 standard does not specify what the leading digit</div><div class='add'>+ * should be for non-zero numbers.  For instance, 0x1.3p3 is the same</div><div class='add'>+ * as 0x2.6p2 is the same as 0x4.cp3.  This implementation always makes</div><div class='add'>+ * the leading digit a 1. This ensures that the exponent printed is the</div><div class='add'>+ * actual base-2 exponent, i.e., ilogb(d).</div><div class='add'>+ *</div><div class='add'>+ * Inputs:	d, xdigs, ndigits</div><div class='add'>+ * Outputs:	decpt, sign, rve</div><div class='add'>+ */</div><div class='add'>+char *</div><div class='add'>+hdtoa(double d, const char *xdigs, int ndigits, int *decpt, int *sign, char **rve)</div><div class='add'>+{</div><div class='add'>+	U u;</div><div class='add'>+	char *s, *s0;</div><div class='add'>+	int bufsize;</div><div class='add'>+	uint32_t manh, manl;</div><div class='add'>+</div><div class='add'>+	u.d = d;</div><div class='add'>+	if (word0(u) &amp; Sign_bit) {</div><div class='add'>+	    /* set sign for everything, including 0's and NaNs */</div><div class='add'>+	    *sign = 1;</div><div class='add'>+	    word0(u) &amp;= ~Sign_bit;  /* clear sign bit */</div><div class='add'>+	}</div><div class='add'>+	else</div><div class='add'>+	    *sign = 0;</div><div class='add'>+</div><div class='add'>+	if (isinf(d)) { /* FP_INFINITE */</div><div class='add'>+	    *decpt = INT_MAX;</div><div class='add'>+	    return rv_strdup(INFSTR, rve);</div><div class='add'>+	}</div><div class='add'>+	else if (isnan(d)) { /* FP_NAN */</div><div class='add'>+	    *decpt = INT_MAX;</div><div class='add'>+	    return rv_strdup(NANSTR, rve);</div><div class='add'>+	}</div><div class='add'>+	else if (d == 0.0) { /* FP_ZERO */</div><div class='add'>+	    *decpt = 1;</div><div class='add'>+	    return rv_strdup(ZEROSTR, rve);</div><div class='add'>+	}</div><div class='add'>+	else if (dexp_get(u)) { /* FP_NORMAL */</div><div class='add'>+	    *decpt = dexp_get(u) - DBL_ADJ;</div><div class='add'>+	}</div><div class='add'>+	else { /* FP_SUBNORMAL */</div><div class='add'>+	    u.d *= 5.363123171977039e+154 /* 0x1p514 */;</div><div class='add'>+	    *decpt = dexp_get(u) - (514 + DBL_ADJ);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (ndigits == 0)		/* dtoa() compatibility */</div><div class='add'>+		ndigits = 1;</div><div class='add'>+</div><div class='add'>+	/*</div><div class='add'>+	 * If ndigits &lt; 0, we are expected to auto-size, so we allocate</div><div class='add'>+	 * enough space for all the digits.</div><div class='add'>+	 */</div><div class='add'>+	bufsize = (ndigits &gt; 0) ? ndigits : SIGFIGS;</div><div class='add'>+	s0 = rv_alloc(bufsize+1);</div><div class='add'>+</div><div class='add'>+	/* Round to the desired number of digits. */</div><div class='add'>+	if (SIGFIGS &gt; ndigits &amp;&amp; ndigits &gt; 0) {</div><div class='add'>+		float redux = 1.0f;</div><div class='add'>+		int offset = 4 * ndigits + DBL_MAX_EXP - 4 - DBL_MANT_DIG;</div><div class='add'>+		dexp_set(u, offset);</div><div class='add'>+		u.d += redux;</div><div class='add'>+		u.d -= redux;</div><div class='add'>+		*decpt += dexp_get(u) - offset;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	manh = dmanh_get(u);</div><div class='add'>+	manl = dmanl_get(u);</div><div class='add'>+	*s0 = '1';</div><div class='add'>+	for (s = s0 + 1; s &lt; s0 + bufsize; s++) {</div><div class='add'>+		*s = xdigs[(manh &gt;&gt; (DBL_MANH_SIZE - 4)) &amp; 0xf];</div><div class='add'>+		manh = (manh &lt;&lt; 4) | (manl &gt;&gt; (DBL_MANL_SIZE - 4));</div><div class='add'>+		manl &lt;&lt;= 4;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/* If ndigits &lt; 0, we are expected to auto-size the precision. */</div><div class='add'>+	if (ndigits &lt; 0) {</div><div class='add'>+		for (ndigits = SIGFIGS; s0[ndigits - 1] == '0'; ndigits--)</div><div class='add'>+			;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	s = s0 + ndigits;</div><div class='add'>+	*s = '\0';</div><div class='add'>+	if (rve != NULL)</div><div class='add'>+		*rve = s;</div><div class='add'>+	return (s0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+#if 0</div><div class='add'>+{ /* satisfy cc-mode */</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='head'>diff --git a/ext/bigdecimal/static_assert.h b/ext/bigdecimal/static_assert.h<br/>new file mode 100644<br/>index 0000000000..9295729bf6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/bigdecimal/static_assert.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/bigdecimal/static_assert.h</a></div><div class='hunk'>@@ -0,0 +1,54 @@</div><div class='add'>+#ifndef BIGDECIMAL_STATIC_ASSERT_H</div><div class='add'>+#define BIGDECIMAL_STATIC_ASSERT_H</div><div class='add'>+</div><div class='add'>+#include "feature.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_RUBY_INTERNAL_STATIC_ASSERT_H</div><div class='add'>+# include &lt;ruby/internal/static_assert.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef RBIMPL_STATIC_ASSERT</div><div class='add'>+# define STATIC_ASSERT RBIMPL_STATIC_ASSERT</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef STATIC_ASSERT</div><div class='add'>+# /* The following section is copied from CRuby's static_assert.h */</div><div class='add'>+</div><div class='add'>+# if defined(__cplusplus) &amp;&amp; defined(__cpp_static_assert)</div><div class='add'>+#  /* https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations */</div><div class='add'>+#  define BIGDECIMAL_STATIC_ASSERT0 static_assert</div><div class='add'>+</div><div class='add'>+# elif defined(__cplusplus) &amp;&amp; defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1600</div><div class='add'>+#  define BIGDECIMAL_STATIC_ASSERT0 static_assert</div><div class='add'>+</div><div class='add'>+# elif defined(__INTEL_CXX11_MODE__)</div><div class='add'>+#  define BIGDECIMAL_STATIC_ASSERT0 static_assert</div><div class='add'>+</div><div class='add'>+# elif defined(__cplusplus) &amp;&amp; __cplusplus &gt;= 201103L</div><div class='add'>+#  define BIGDECIMAL_STATIC_ASSERT0 static_assert</div><div class='add'>+</div><div class='add'>+# elif defined(__cplusplus) &amp;&amp; __has_extension(cxx_static_assert)</div><div class='add'>+#  define BIGDECIMAL_STATIC_ASSERT0 __extension__ static_assert</div><div class='add'>+</div><div class='add'>+# elif defined(__STDC_VERSION__) &amp;&amp; __has_extension(c_static_assert)</div><div class='add'>+#  define BIGDECIMAL_STATIC_ASSERT0 __extension__ _Static_assert</div><div class='add'>+</div><div class='add'>+# elif defined(__STDC_VERSION__) &amp;&amp; defined(__GNUC__) &amp;&amp; (__GNUC__ &gt; 4 || (__GNUC__ == 4 &amp;&amp; __GNUC_MINOR__ &gt;= 6))</div><div class='add'>+#  define BIGDECIMAL_STATIC_ASSERT0 __extension__ _Static_assert</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+# if defined(__DOXYGEN__)</div><div class='add'>+#  define STATIC_ASSERT static_assert</div><div class='add'>+</div><div class='add'>+# elif defined(BIGDECIMAL_STATIC_ASSERT0)</div><div class='add'>+#  define STATIC_ASSERT(name, expr) \</div><div class='add'>+    BIGDECIMAL_STATIC_ASSERT0(expr, #name ": " #expr)</div><div class='add'>+</div><div class='add'>+# else</div><div class='add'>+#  define STATIC_ASSERT(name, expr) \</div><div class='add'>+    typedef int static_assert_ ## name ## _check[1 - 2 * !(expr)]</div><div class='add'>+# endif</div><div class='add'>+#endif /* STATIC_ASSERT */</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#endif /* BIGDECIMAL_STATIC_ASSERT_H */</div><div class='head'>diff --git a/ext/bigdecimal/util/extconf.rb b/ext/bigdecimal/util/extconf.rb<br/>deleted file mode 100644<br/>index 8750db1c52..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/bigdecimal/util/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/util/extconf.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,24 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-require 'mkmf'</div><div class='del'>-</div><div class='del'>-checking_for(checking_message("Windows")) do</div><div class='del'>-  case RUBY_PLATFORM</div><div class='del'>-  when /cygwin|mingw/</div><div class='del'>-    if defined?($extlist)</div><div class='del'>-      build_dir = "$(TARGET_SO_DIR)../"</div><div class='del'>-    else</div><div class='del'>-      base_dir = File.expand_path('../../../..', __FILE__)</div><div class='del'>-      build_dir = File.join(base_dir, "tmp", RUBY_PLATFORM, "bigdecimal", RUBY_VERSION, "")</div><div class='del'>-    end</div><div class='del'>-    $libs &lt;&lt; " #{build_dir}bigdecimal.so"</div><div class='del'>-    true</div><div class='del'>-  when /mswin/</div><div class='del'>-    $DLDFLAGS &lt;&lt; " -libpath:.."</div><div class='del'>-    $libs &lt;&lt; " bigdecimal-$(arch).lib"</div><div class='del'>-    true</div><div class='del'>-  else</div><div class='del'>-    false</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-create_makefile('bigdecimal/util')</div><div class='head'>diff --git a/ext/bigdecimal/util/util.c b/ext/bigdecimal/util/util.c<br/>deleted file mode 100644<br/>index 8d38d87852..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/bigdecimal/util/util.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/bigdecimal/util/util.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,9 +0,0 @@</div><div class='del'>-#include "ruby.h"</div><div class='del'>-</div><div class='del'>-RUBY_EXTERN VALUE rmpd_util_str_to_d(VALUE str);</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-Init_util(void)</div><div class='del'>-{</div><div class='del'>-  rb_define_method(rb_cString, "to_d", rmpd_util_str_to_d, 0);</div><div class='del'>-}</div><div class='head'>diff --git a/ext/cgi/escape/depend b/ext/cgi/escape/depend<br/>index 099bb3f14b..e3904d0695 100644<br/>--- a/<a href='/ruby.git/tree/ext/cgi/escape/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/cgi/escape/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/cgi/escape/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/cgi/escape/depend</a></div><div class='hunk'>@@ -1,16 +1,174 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> escape.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> escape.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+escape.o: $(hdrdir)/ruby.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> escape.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> escape.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> escape.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> escape.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+escape.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> escape.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> escape.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> escape.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> escape.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> escape.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> escape.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-escape.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> escape.o: escape.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/cgi/escape/escape.c b/ext/cgi/escape/escape.c<br/>index ced1b182eb..c5b76de596 100644<br/>--- a/<a href='/ruby.git/tree/ext/cgi/escape/escape.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/cgi/escape/escape.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/cgi/escape/escape.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/cgi/escape/escape.c</a></div><div class='hunk'>@@ -11,73 +11,68 @@ RUBY_EXTERN const signed char ruby_digit36_to_number_table[];</div><div class='ctx'> static VALUE rb_cCGI, rb_mUtil, rb_mEscape;</div><div class='ctx'> static ID id_accept_charset;</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-html_escaped_cat(VALUE str, char c)</div><div class='del'>-{</div><div class='del'>-    switch (c) {</div><div class='del'>-      case '\'':</div><div class='del'>-	rb_str_cat_cstr(str, "&amp;#39;");</div><div class='del'>-	break;</div><div class='del'>-      case '&amp;':</div><div class='del'>-	rb_str_cat_cstr(str, "&amp;amp;");</div><div class='del'>-	break;</div><div class='del'>-      case '"':</div><div class='del'>-	rb_str_cat_cstr(str, "&amp;quot;");</div><div class='del'>-	break;</div><div class='del'>-      case '&lt;':</div><div class='del'>-	rb_str_cat_cstr(str, "&amp;lt;");</div><div class='del'>-	break;</div><div class='del'>-      case '&gt;':</div><div class='del'>-	rb_str_cat_cstr(str, "&amp;gt;");</div><div class='del'>-	break;</div><div class='del'>-    }</div><div class='del'>-}</div><div class='add'>+#define HTML_ESCAPE_MAX_LEN 6</div><div class='add'>+</div><div class='add'>+static const struct {</div><div class='add'>+    uint8_t len;</div><div class='add'>+    char str[HTML_ESCAPE_MAX_LEN+1];</div><div class='add'>+} html_escape_table[UCHAR_MAX+1] = {</div><div class='add'>+#define HTML_ESCAPE(c, str) [c] = {rb_strlen_lit(str), str}</div><div class='add'>+    HTML_ESCAPE('\'', "&amp;#39;"),</div><div class='add'>+    HTML_ESCAPE('&amp;', "&amp;amp;"),</div><div class='add'>+    HTML_ESCAPE('"', "&amp;quot;"),</div><div class='add'>+    HTML_ESCAPE('&lt;', "&amp;lt;"),</div><div class='add'>+    HTML_ESCAPE('&gt;', "&amp;gt;"),</div><div class='add'>+#undef HTML_ESCAPE</div><div class='add'>+};</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='ctx'> preserve_original_state(VALUE orig, VALUE dest)</div><div class='ctx'> {</div><div class='ctx'>     rb_enc_associate(dest, rb_enc_get(orig));</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    RB_OBJ_INFECT_RAW(dest, orig);</div><div class='add'>+static inline long</div><div class='add'>+escaped_length(VALUE str)</div><div class='add'>+{</div><div class='add'>+    const long len = RSTRING_LEN(str);</div><div class='add'>+    if (len &gt;= LONG_MAX / HTML_ESCAPE_MAX_LEN) {</div><div class='add'>+        ruby_malloc_size_overflow(len, HTML_ESCAPE_MAX_LEN);</div><div class='add'>+    }</div><div class='add'>+    return len * HTML_ESCAPE_MAX_LEN;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> optimized_escape_html(VALUE str)</div><div class='ctx'> {</div><div class='del'>-    long i, len, beg = 0;</div><div class='del'>-    VALUE dest = 0;</div><div class='del'>-    const char *cstr;</div><div class='del'>-</div><div class='del'>-    len  = RSTRING_LEN(str);</div><div class='del'>-    cstr = RSTRING_PTR(str);</div><div class='del'>-</div><div class='del'>-    for (i = 0; i &lt; len; i++) {</div><div class='del'>-	switch (cstr[i]) {</div><div class='del'>-	  case '\'':</div><div class='del'>-	  case '&amp;':</div><div class='del'>-	  case '"':</div><div class='del'>-	  case '&lt;':</div><div class='del'>-	  case '&gt;':</div><div class='del'>-	    if (!dest) {</div><div class='del'>-		dest = rb_str_buf_new(len);</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    rb_str_cat(dest, cstr + beg, i - beg);</div><div class='del'>-	    beg = i + 1;</div><div class='del'>-</div><div class='del'>-	    html_escaped_cat(dest, cstr[i]);</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+    VALUE vbuf;</div><div class='add'>+    char *buf = ALLOCV_N(char, vbuf, escaped_length(str));</div><div class='add'>+    const char *cstr = RSTRING_PTR(str);</div><div class='add'>+    const char *end = cstr + RSTRING_LEN(str);</div><div class='add'>+</div><div class='add'>+    char *dest = buf;</div><div class='add'>+    while (cstr &lt; end) {</div><div class='add'>+        const unsigned char c = *cstr++;</div><div class='add'>+        uint8_t len = html_escape_table[c].len;</div><div class='add'>+        if (len) {</div><div class='add'>+            memcpy(dest, html_escape_table[c].str, len);</div><div class='add'>+            dest += len;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            *dest++ = c;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (dest) {</div><div class='del'>-	rb_str_cat(dest, cstr + beg, len - beg);</div><div class='del'>-	preserve_original_state(str, dest);</div><div class='del'>-	return dest;</div><div class='add'>+    VALUE escaped;</div><div class='add'>+    if (RSTRING_LEN(str) &lt; (dest - buf)) {</div><div class='add'>+        escaped = rb_str_new(buf, dest - buf);</div><div class='add'>+        preserve_original_state(str, escaped);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_str_dup(str);</div><div class='add'>+        escaped = rb_str_dup(str);</div><div class='ctx'>     }</div><div class='add'>+    ALLOCV_END(vbuf);</div><div class='add'>+    return escaped;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -86,8 +81,8 @@ optimized_unescape_html(VALUE str)</div><div class='ctx'>     enum {UNICODE_MAX = 0x10ffff};</div><div class='ctx'>     rb_encoding *enc = rb_enc_get(str);</div><div class='ctx'>     unsigned long charlimit = (strcasecmp(rb_enc_name(enc), "UTF-8") == 0 ? UNICODE_MAX :</div><div class='del'>-			       strcasecmp(rb_enc_name(enc), "ISO-8859-1") == 0 ? 256 :</div><div class='del'>-			       128);</div><div class='add'>+                               strcasecmp(rb_enc_name(enc), "ISO-8859-1") == 0 ? 256 :</div><div class='add'>+                               128);</div><div class='ctx'>     long i, len, beg = 0;</div><div class='ctx'>     size_t clen, plen;</div><div class='ctx'>     int overflow;</div><div class='hunk'>@@ -99,89 +94,89 @@ optimized_unescape_html(VALUE str)</div><div class='ctx'>     cstr = RSTRING_PTR(str);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; len; i++) {</div><div class='del'>-	unsigned long cc;</div><div class='del'>-	char c = cstr[i];</div><div class='del'>-	if (c != '&amp;') continue;</div><div class='del'>-	plen = i - beg;</div><div class='del'>-	if (++i &gt;= len) break;</div><div class='del'>-	c = (unsigned char)cstr[i];</div><div class='add'>+        unsigned long cc;</div><div class='add'>+        char c = cstr[i];</div><div class='add'>+        if (c != '&amp;') continue;</div><div class='add'>+        plen = i - beg;</div><div class='add'>+        if (++i &gt;= len) break;</div><div class='add'>+        c = (unsigned char)cstr[i];</div><div class='ctx'> #define MATCH(s) (len - i &gt;= (int)rb_strlen_lit(s) &amp;&amp; \</div><div class='del'>-		  memcmp(&amp;cstr[i], s, rb_strlen_lit(s)) == 0 &amp;&amp; \</div><div class='del'>-		  (i += rb_strlen_lit(s) - 1, 1))</div><div class='del'>-	switch (c) {</div><div class='del'>-	  case 'a':</div><div class='del'>-	    ++i;</div><div class='del'>-	    if (MATCH("pos;")) {</div><div class='del'>-		c = '\'';</div><div class='del'>-	    }</div><div class='del'>-	    else if (MATCH("mp;")) {</div><div class='del'>-		c = '&amp;';</div><div class='del'>-	    }</div><div class='del'>-	    else continue;</div><div class='del'>-	    break;</div><div class='del'>-	  case 'q':</div><div class='del'>-	    ++i;</div><div class='del'>-	    if (MATCH("uot;")) {</div><div class='del'>-		c = '"';</div><div class='del'>-	    }</div><div class='del'>-	    else continue;</div><div class='del'>-	    break;</div><div class='del'>-	  case 'g':</div><div class='del'>-	    ++i;</div><div class='del'>-	    if (MATCH("t;")) {</div><div class='del'>-		c = '&gt;';</div><div class='del'>-	    }</div><div class='del'>-	    else continue;</div><div class='del'>-	    break;</div><div class='del'>-	  case 'l':</div><div class='del'>-	    ++i;</div><div class='del'>-	    if (MATCH("t;")) {</div><div class='del'>-		c = '&lt;';</div><div class='del'>-	    }</div><div class='del'>-	    else continue;</div><div class='del'>-	    break;</div><div class='del'>-	  case '#':</div><div class='del'>-	    if (len - ++i &gt;= 2 &amp;&amp; ISDIGIT(cstr[i])) {</div><div class='del'>-		cc = ruby_scan_digits(&amp;cstr[i], len-i, 10, &amp;clen, &amp;overflow);</div><div class='del'>-	    }</div><div class='del'>-	    else if ((cstr[i] == 'x' || cstr[i] == 'X') &amp;&amp; len - ++i &gt;= 2 &amp;&amp; ISXDIGIT(cstr[i])) {</div><div class='del'>-		cc = ruby_scan_digits(&amp;cstr[i], len-i, 16, &amp;clen, &amp;overflow);</div><div class='del'>-	    }</div><div class='del'>-	    else continue;</div><div class='del'>-	    i += clen;</div><div class='del'>-	    if (overflow || cc &gt;= charlimit || cstr[i] != ';') continue;</div><div class='del'>-	    if (!dest) {</div><div class='del'>-		dest = rb_str_buf_new(len);</div><div class='del'>-	    }</div><div class='del'>-	    rb_str_cat(dest, cstr + beg, plen);</div><div class='del'>-	    if (charlimit &gt; 256) {</div><div class='del'>-		rb_str_cat(dest, buf, rb_enc_mbcput((OnigCodePoint)cc, buf, enc));</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		c = (unsigned char)cc;</div><div class='del'>-		rb_str_cat(dest, &amp;c, 1);</div><div class='del'>-	    }</div><div class='del'>-	    beg = i + 1;</div><div class='del'>-	    continue;</div><div class='del'>-	  default:</div><div class='del'>-	    --i;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	if (!dest) {</div><div class='del'>-	    dest = rb_str_buf_new(len);</div><div class='del'>-	}</div><div class='del'>-	rb_str_cat(dest, cstr + beg, plen);</div><div class='del'>-	rb_str_cat(dest, &amp;c, 1);</div><div class='del'>-	beg = i + 1;</div><div class='add'>+                  memcmp(&amp;cstr[i], s, rb_strlen_lit(s)) == 0 &amp;&amp; \</div><div class='add'>+                  (i += rb_strlen_lit(s) - 1, 1))</div><div class='add'>+        switch (c) {</div><div class='add'>+          case 'a':</div><div class='add'>+            ++i;</div><div class='add'>+            if (MATCH("pos;")) {</div><div class='add'>+                c = '\'';</div><div class='add'>+            }</div><div class='add'>+            else if (MATCH("mp;")) {</div><div class='add'>+                c = '&amp;';</div><div class='add'>+            }</div><div class='add'>+            else continue;</div><div class='add'>+            break;</div><div class='add'>+          case 'q':</div><div class='add'>+            ++i;</div><div class='add'>+            if (MATCH("uot;")) {</div><div class='add'>+                c = '"';</div><div class='add'>+            }</div><div class='add'>+            else continue;</div><div class='add'>+            break;</div><div class='add'>+          case 'g':</div><div class='add'>+            ++i;</div><div class='add'>+            if (MATCH("t;")) {</div><div class='add'>+                c = '&gt;';</div><div class='add'>+            }</div><div class='add'>+            else continue;</div><div class='add'>+            break;</div><div class='add'>+          case 'l':</div><div class='add'>+            ++i;</div><div class='add'>+            if (MATCH("t;")) {</div><div class='add'>+                c = '&lt;';</div><div class='add'>+            }</div><div class='add'>+            else continue;</div><div class='add'>+            break;</div><div class='add'>+          case '#':</div><div class='add'>+            if (len - ++i &gt;= 2 &amp;&amp; ISDIGIT(cstr[i])) {</div><div class='add'>+                cc = ruby_scan_digits(&amp;cstr[i], len-i, 10, &amp;clen, &amp;overflow);</div><div class='add'>+            }</div><div class='add'>+            else if ((cstr[i] == 'x' || cstr[i] == 'X') &amp;&amp; len - ++i &gt;= 2 &amp;&amp; ISXDIGIT(cstr[i])) {</div><div class='add'>+                cc = ruby_scan_digits(&amp;cstr[i], len-i, 16, &amp;clen, &amp;overflow);</div><div class='add'>+            }</div><div class='add'>+            else continue;</div><div class='add'>+            i += clen;</div><div class='add'>+            if (overflow || cc &gt;= charlimit || cstr[i] != ';') continue;</div><div class='add'>+            if (!dest) {</div><div class='add'>+                dest = rb_str_buf_new(len);</div><div class='add'>+            }</div><div class='add'>+            rb_str_cat(dest, cstr + beg, plen);</div><div class='add'>+            if (charlimit &gt; 256) {</div><div class='add'>+                rb_str_cat(dest, buf, rb_enc_mbcput((OnigCodePoint)cc, buf, enc));</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                c = (unsigned char)cc;</div><div class='add'>+                rb_str_cat(dest, &amp;c, 1);</div><div class='add'>+            }</div><div class='add'>+            beg = i + 1;</div><div class='add'>+            continue;</div><div class='add'>+          default:</div><div class='add'>+            --i;</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        if (!dest) {</div><div class='add'>+            dest = rb_str_buf_new(len);</div><div class='add'>+        }</div><div class='add'>+        rb_str_cat(dest, cstr + beg, plen);</div><div class='add'>+        rb_str_cat(dest, &amp;c, 1);</div><div class='add'>+        beg = i + 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (dest) {</div><div class='del'>-	rb_str_cat(dest, cstr + beg, len - beg);</div><div class='del'>-	preserve_original_state(str, dest);</div><div class='del'>-	return dest;</div><div class='add'>+        rb_str_cat(dest, cstr + beg, len - beg);</div><div class='add'>+        preserve_original_state(str, dest);</div><div class='add'>+        return dest;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_str_dup(str);</div><div class='add'>+        return rb_str_dup(str);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -205,7 +200,7 @@ url_unreserved_char(unsigned char c)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-optimized_escape(VALUE str)</div><div class='add'>+optimized_escape(VALUE str, int plus_escape)</div><div class='ctx'> {</div><div class='ctx'>     long i, len, beg = 0;</div><div class='ctx'>     VALUE dest = 0;</div><div class='hunk'>@@ -216,38 +211,38 @@ optimized_escape(VALUE str)</div><div class='ctx'>     cstr = RSTRING_PTR(str);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; len; ++i) {</div><div class='del'>-	const unsigned char c = (unsigned char)cstr[i];</div><div class='del'>-	if (!url_unreserved_char(c)) {</div><div class='del'>-	    if (!dest) {</div><div class='del'>-		dest = rb_str_buf_new(len);</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    rb_str_cat(dest, cstr + beg, i - beg);</div><div class='del'>-	    beg = i + 1;</div><div class='del'>-</div><div class='del'>-	    if (c == ' ') {</div><div class='del'>-		rb_str_cat_cstr(dest, "+");</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		buf[1] = upper_hexdigits[(c &gt;&gt; 4) &amp; 0xf];</div><div class='del'>-		buf[2] = upper_hexdigits[c &amp; 0xf];</div><div class='del'>-		rb_str_cat(dest, buf, 3);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        const unsigned char c = (unsigned char)cstr[i];</div><div class='add'>+        if (!url_unreserved_char(c)) {</div><div class='add'>+            if (!dest) {</div><div class='add'>+                dest = rb_str_buf_new(len);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            rb_str_cat(dest, cstr + beg, i - beg);</div><div class='add'>+            beg = i + 1;</div><div class='add'>+</div><div class='add'>+            if (plus_escape &amp;&amp; c == ' ') {</div><div class='add'>+                rb_str_cat_cstr(dest, "+");</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                buf[1] = upper_hexdigits[(c &gt;&gt; 4) &amp; 0xf];</div><div class='add'>+                buf[2] = upper_hexdigits[c &amp; 0xf];</div><div class='add'>+                rb_str_cat(dest, buf, 3);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (dest) {</div><div class='del'>-	rb_str_cat(dest, cstr + beg, len - beg);</div><div class='del'>-	preserve_original_state(str, dest);</div><div class='del'>-	return dest;</div><div class='add'>+        rb_str_cat(dest, cstr + beg, len - beg);</div><div class='add'>+        preserve_original_state(str, dest);</div><div class='add'>+        return dest;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_str_dup(str);</div><div class='add'>+        return rb_str_dup(str);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-optimized_unescape(VALUE str, VALUE encoding)</div><div class='add'>+optimized_unescape(VALUE str, VALUE encoding, int unescape_plus)</div><div class='ctx'> {</div><div class='ctx'>     long i, len, beg = 0;</div><div class='ctx'>     VALUE dest = 0;</div><div class='hunk'>@@ -259,52 +254,52 @@ optimized_unescape(VALUE str, VALUE encoding)</div><div class='ctx'>     cstr = RSTRING_PTR(str);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; len; ++i) {</div><div class='del'>-	char buf[1];</div><div class='del'>-	const char c = cstr[i];</div><div class='del'>-	int clen = 0;</div><div class='del'>-	if (c == '%') {</div><div class='del'>-	    if (i + 3 &gt; len) break;</div><div class='del'>-	    if (!ISXDIGIT(cstr[i+1])) continue;</div><div class='del'>-	    if (!ISXDIGIT(cstr[i+2])) continue;</div><div class='del'>-	    buf[0] = ((char_to_number(cstr[i+1]) &lt;&lt; 4)</div><div class='del'>-		      | char_to_number(cstr[i+2]));</div><div class='del'>-	    clen = 2;</div><div class='del'>-	}</div><div class='del'>-	else if (c == '+') {</div><div class='del'>-	    buf[0] = ' ';</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (!dest) {</div><div class='del'>-	    dest = rb_str_buf_new(len);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	rb_str_cat(dest, cstr + beg, i - beg);</div><div class='del'>-	i += clen;</div><div class='del'>-	beg = i + 1;</div><div class='del'>-</div><div class='del'>-	rb_str_cat(dest, buf, 1);</div><div class='add'>+        char buf[1];</div><div class='add'>+        const char c = cstr[i];</div><div class='add'>+        int clen = 0;</div><div class='add'>+        if (c == '%') {</div><div class='add'>+            if (i + 3 &gt; len) break;</div><div class='add'>+            if (!ISXDIGIT(cstr[i+1])) continue;</div><div class='add'>+            if (!ISXDIGIT(cstr[i+2])) continue;</div><div class='add'>+            buf[0] = ((char_to_number(cstr[i+1]) &lt;&lt; 4)</div><div class='add'>+                      | char_to_number(cstr[i+2]));</div><div class='add'>+            clen = 2;</div><div class='add'>+        }</div><div class='add'>+        else if (unescape_plus &amp;&amp; c == '+') {</div><div class='add'>+            buf[0] = ' ';</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (!dest) {</div><div class='add'>+            dest = rb_str_buf_new(len);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        rb_str_cat(dest, cstr + beg, i - beg);</div><div class='add'>+        i += clen;</div><div class='add'>+        beg = i + 1;</div><div class='add'>+</div><div class='add'>+        rb_str_cat(dest, buf, 1);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (dest) {</div><div class='del'>-	rb_str_cat(dest, cstr + beg, len - beg);</div><div class='del'>-	preserve_original_state(str, dest);</div><div class='del'>-	cr = ENC_CODERANGE_UNKNOWN;</div><div class='add'>+        rb_str_cat(dest, cstr + beg, len - beg);</div><div class='add'>+        preserve_original_state(str, dest);</div><div class='add'>+        cr = ENC_CODERANGE_UNKNOWN;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	dest = rb_str_dup(str);</div><div class='del'>-	cr = ENC_CODERANGE(str);</div><div class='add'>+        dest = rb_str_dup(str);</div><div class='add'>+        cr = ENC_CODERANGE(str);</div><div class='ctx'>     }</div><div class='ctx'>     origenc = rb_enc_get_index(str);</div><div class='ctx'>     if (origenc != encidx) {</div><div class='del'>-	rb_enc_associate_index(dest, encidx);</div><div class='del'>-	if (!ENC_CODERANGE_CLEAN_P(rb_enc_str_coderange(dest))) {</div><div class='del'>-	    rb_enc_associate_index(dest, origenc);</div><div class='del'>-	    if (cr != ENC_CODERANGE_UNKNOWN)</div><div class='del'>-		ENC_CODERANGE_SET(dest, cr);</div><div class='del'>-	}</div><div class='add'>+        rb_enc_associate_index(dest, encidx);</div><div class='add'>+        if (!ENC_CODERANGE_CLEAN_P(rb_enc_str_coderange(dest))) {</div><div class='add'>+            rb_enc_associate_index(dest, origenc);</div><div class='add'>+            if (cr != ENC_CODERANGE_UNKNOWN)</div><div class='add'>+                ENC_CODERANGE_SET(dest, cr);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return dest;</div><div class='ctx'> }</div><div class='hunk'>@@ -322,10 +317,10 @@ cgiesc_escape_html(VALUE self, VALUE str)</div><div class='ctx'>     StringValue(str);</div><div class='ctx'> </div><div class='ctx'>     if (rb_enc_str_asciicompat_p(str)) {</div><div class='del'>-	return optimized_escape_html(str);</div><div class='add'>+        return optimized_escape_html(str);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_call_super(1, &amp;str);</div><div class='add'>+        return rb_call_super(1, &amp;str);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -342,10 +337,10 @@ cgiesc_unescape_html(VALUE self, VALUE str)</div><div class='ctx'>     StringValue(str);</div><div class='ctx'> </div><div class='ctx'>     if (rb_enc_str_asciicompat_p(str)) {</div><div class='del'>-	return optimized_unescape_html(str);</div><div class='add'>+        return optimized_unescape_html(str);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_call_super(1, &amp;str);</div><div class='add'>+        return rb_call_super(1, &amp;str);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -353,7 +348,7 @@ cgiesc_unescape_html(VALUE self, VALUE str)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     CGI.escape(string) -&gt; string</div><div class='ctx'>  *</div><div class='del'>- *  Returns URL-escaped string.</div><div class='add'>+ *  Returns URL-escaped string (+application/x-www-form-urlencoded+).</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -362,10 +357,10 @@ cgiesc_escape(VALUE self, VALUE str)</div><div class='ctx'>     StringValue(str);</div><div class='ctx'> </div><div class='ctx'>     if (rb_enc_str_asciicompat_p(str)) {</div><div class='del'>-	return optimized_escape(str);</div><div class='add'>+        return optimized_escape(str, 1);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_call_super(1, &amp;str);</div><div class='add'>+        return rb_call_super(1, &amp;str);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -373,7 +368,7 @@ static VALUE</div><div class='ctx'> accept_charset(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     if (argc &gt; 0)</div><div class='del'>-	return argv[0];</div><div class='add'>+        return argv[0];</div><div class='ctx'>     return rb_cvar_get(CLASS_OF(self), id_accept_charset);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -381,7 +376,7 @@ accept_charset(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     CGI.unescape(string, encoding=@@accept_charset) -&gt; string</div><div class='ctx'>  *</div><div class='del'>- *  Returns URL-unescaped string.</div><div class='add'>+ *  Returns URL-unescaped string (+application/x-www-form-urlencoded+).</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -392,17 +387,64 @@ cgiesc_unescape(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     StringValue(str);</div><div class='ctx'> </div><div class='ctx'>     if (rb_enc_str_asciicompat_p(str)) {</div><div class='del'>-	VALUE enc = accept_charset(argc-1, argv+1, self);</div><div class='del'>-	return optimized_unescape(str, enc);</div><div class='add'>+        VALUE enc = accept_charset(argc-1, argv+1, self);</div><div class='add'>+        return optimized_unescape(str, enc, 1);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_call_super(argc, argv);</div><div class='add'>+        return rb_call_super(argc, argv);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     CGI.escapeURIComponent(string) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Returns URL-escaped string following RFC 3986.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+cgiesc_escape_uri_component(VALUE self, VALUE str)</div><div class='add'>+{</div><div class='add'>+    StringValue(str);</div><div class='add'>+</div><div class='add'>+    if (rb_enc_str_asciicompat_p(str)) {</div><div class='add'>+        return optimized_escape(str, 0);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_call_super(1, &amp;str);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     CGI.unescapeURIComponent(string, encoding=@@accept_charset) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Returns URL-unescaped string following RFC 3986.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+cgiesc_unescape_uri_component(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE str = (rb_check_arity(argc, 1, 2), argv[0]);</div><div class='add'>+</div><div class='add'>+    StringValue(str);</div><div class='add'>+</div><div class='add'>+    if (rb_enc_str_asciicompat_p(str)) {</div><div class='add'>+        VALUE enc = accept_charset(argc-1, argv+1, self);</div><div class='add'>+        return optimized_unescape(str, enc, 0);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_call_super(argc, argv);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_escape(void)</div><div class='ctx'> {</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     id_accept_charset = rb_intern_const("@@accept_charset");</div><div class='ctx'>     InitVM(escape);</div><div class='ctx'> }</div><div class='hunk'>@@ -415,6 +457,8 @@ InitVM_escape(void)</div><div class='ctx'>     rb_mUtil   = rb_define_module_under(rb_cCGI, "Util");</div><div class='ctx'>     rb_define_method(rb_mEscape, "escapeHTML", cgiesc_escape_html, 1);</div><div class='ctx'>     rb_define_method(rb_mEscape, "unescapeHTML", cgiesc_unescape_html, 1);</div><div class='add'>+    rb_define_method(rb_mEscape, "escapeURIComponent", cgiesc_escape_uri_component, 1);</div><div class='add'>+    rb_define_method(rb_mEscape, "unescapeURIComponent", cgiesc_unescape_uri_component, -1);</div><div class='ctx'>     rb_define_method(rb_mEscape, "escape", cgiesc_escape, 1);</div><div class='ctx'>     rb_define_method(rb_mEscape, "unescape", cgiesc_unescape, -1);</div><div class='ctx'>     rb_prepend_module(rb_mUtil, rb_mEscape);</div><div class='head'>diff --git a/ext/continuation/depend b/ext/continuation/depend<br/>index 9e47f27f3a..81218f9965 100644<br/>--- a/<a href='/ruby.git/tree/ext/continuation/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/continuation/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/continuation/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/continuation/depend</a></div><div class='hunk'>@@ -1,9 +1,158 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> continuation.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> continuation.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> continuation.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> continuation.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> continuation.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+continuation.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> continuation.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> continuation.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> continuation.o: $(hdrdir)/ruby/st.h</div><div class='head'>diff --git a/ext/coverage/coverage.c b/ext/coverage/coverage.c<br/>index c7f5a5e34b..4578de54e4 100644<br/>--- a/<a href='/ruby.git/tree/ext/coverage/coverage.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/coverage/coverage.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/coverage/coverage.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/coverage/coverage.c</a></div><div class='hunk'>@@ -8,102 +8,222 @@</div><div class='ctx'> </div><div class='ctx'> ************************************************/</div><div class='ctx'> </div><div class='add'>+#include "gc.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/thread.h"</div><div class='add'>+#include "internal/sanitizers.h"</div><div class='ctx'> #include "ruby.h"</div><div class='ctx'> #include "vm_core.h"</div><div class='del'>-#include "gc.h"</div><div class='ctx'> </div><div class='add'>+static enum {</div><div class='add'>+    IDLE,</div><div class='add'>+    SUSPENDED,</div><div class='add'>+    RUNNING</div><div class='add'>+} current_state = IDLE;</div><div class='ctx'> static int current_mode;</div><div class='ctx'> static VALUE me2counter = Qnil;</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ *  call-seq: Coverage.supported?(mode) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns true if coverage measurement is supported for the given mode.</div><div class='add'>+ *</div><div class='add'>+ *  The mode should be one of the following symbols:</div><div class='add'>+ *  +:lines+, +:branches+, +:methods+, +:eval+.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    Coverage.supported?(:lines)  #=&gt; true</div><div class='add'>+ *    Coverage.supported?(:all)    #=&gt; false</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_coverage_supported(VALUE self, VALUE _mode)</div><div class='add'>+{</div><div class='add'>+    ID mode = RB_SYM2ID(_mode);</div><div class='add'>+</div><div class='add'>+    return RBOOL(</div><div class='add'>+        mode == rb_intern("lines") ||</div><div class='add'>+        mode == rb_intern("branches") ||</div><div class='add'>+        mode == rb_intern("methods") ||</div><div class='add'>+        mode == rb_intern("eval")</div><div class='add'>+    );</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Coverage.start  =&gt; nil</div><div class='add'>+ *    Coverage.setup                                                          =&gt; nil</div><div class='add'>+ *    Coverage.setup(:all)                                                    =&gt; nil</div><div class='add'>+ *    Coverage.setup(lines: bool, branches: bool, methods: bool, eval: bool)  =&gt; nil</div><div class='add'>+ *    Coverage.setup(oneshot_lines: true)                                     =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ * Set up the coverage measurement.</div><div class='ctx'>  *</div><div class='del'>- * Enables coverage measurement.</div><div class='add'>+ * Note that this method does not start the measurement itself.</div><div class='add'>+ * Use Coverage.resume to start the measurement.</div><div class='add'>+ *</div><div class='add'>+ * You may want to use Coverage.start to setup and then start the measurement.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_coverage_start(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+rb_coverage_setup(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     VALUE coverages, opt;</div><div class='ctx'>     int mode;</div><div class='ctx'> </div><div class='add'>+    if (current_state != IDLE) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "coverage measurement is already setup");</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     rb_scan_args(argc, argv, "01", &amp;opt);</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	mode = 0; /* compatible mode */</div><div class='add'>+        mode = 0; /* compatible mode */</div><div class='ctx'>     }</div><div class='ctx'>     else if (opt == ID2SYM(rb_intern("all"))) {</div><div class='del'>-	mode = COVERAGE_TARGET_LINES | COVERAGE_TARGET_BRANCHES | COVERAGE_TARGET_METHODS;</div><div class='add'>+        mode = COVERAGE_TARGET_LINES | COVERAGE_TARGET_BRANCHES | COVERAGE_TARGET_METHODS | COVERAGE_TARGET_EVAL;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	mode = 0;</div><div class='del'>-	opt = rb_convert_type(opt, T_HASH, "Hash", "to_hash");</div><div class='del'>-</div><div class='del'>-	if (RTEST(rb_hash_lookup(opt, ID2SYM(rb_intern("lines")))))</div><div class='del'>-	    mode |= COVERAGE_TARGET_LINES;</div><div class='del'>-	if (RTEST(rb_hash_lookup(opt, ID2SYM(rb_intern("branches")))))</div><div class='del'>-	    mode |= COVERAGE_TARGET_BRANCHES;</div><div class='del'>-	if (RTEST(rb_hash_lookup(opt, ID2SYM(rb_intern("methods")))))</div><div class='del'>-	    mode |= COVERAGE_TARGET_METHODS;</div><div class='add'>+        mode = 0;</div><div class='add'>+        opt = rb_convert_type(opt, T_HASH, "Hash", "to_hash");</div><div class='add'>+</div><div class='add'>+        if (RTEST(rb_hash_lookup(opt, ID2SYM(rb_intern("lines")))))</div><div class='add'>+            mode |= COVERAGE_TARGET_LINES;</div><div class='add'>+        if (RTEST(rb_hash_lookup(opt, ID2SYM(rb_intern("branches")))))</div><div class='add'>+            mode |= COVERAGE_TARGET_BRANCHES;</div><div class='add'>+        if (RTEST(rb_hash_lookup(opt, ID2SYM(rb_intern("methods")))))</div><div class='add'>+            mode |= COVERAGE_TARGET_METHODS;</div><div class='ctx'>         if (RTEST(rb_hash_lookup(opt, ID2SYM(rb_intern("oneshot_lines"))))) {</div><div class='ctx'>             if (mode &amp; COVERAGE_TARGET_LINES)</div><div class='ctx'>                 rb_raise(rb_eRuntimeError, "cannot enable lines and oneshot_lines simultaneously");</div><div class='ctx'>             mode |= COVERAGE_TARGET_LINES;</div><div class='ctx'>             mode |= COVERAGE_TARGET_ONESHOT_LINES;</div><div class='ctx'>         }</div><div class='add'>+        if (RTEST(rb_hash_lookup(opt, ID2SYM(rb_intern("eval")))))</div><div class='add'>+            mode |= COVERAGE_TARGET_EVAL;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (mode &amp; COVERAGE_TARGET_METHODS) {</div><div class='del'>-	me2counter = rb_hash_new_compare_by_id();</div><div class='add'>+        me2counter = rb_ident_hash_new();</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	me2counter = Qnil;</div><div class='add'>+        me2counter = Qnil;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     coverages = rb_get_coverages();</div><div class='ctx'>     if (!RTEST(coverages)) {</div><div class='del'>-	coverages = rb_hash_new();</div><div class='del'>-	rb_obj_hide(coverages);</div><div class='del'>-	current_mode = mode;</div><div class='del'>-	if (mode == 0) mode = COVERAGE_TARGET_LINES;</div><div class='del'>-	rb_set_coverages(coverages, mode, me2counter);</div><div class='add'>+        coverages = rb_hash_new();</div><div class='add'>+        rb_obj_hide(coverages);</div><div class='add'>+        current_mode = mode;</div><div class='add'>+        if (mode == 0) mode = COVERAGE_TARGET_LINES;</div><div class='add'>+        rb_set_coverages(coverages, mode, me2counter);</div><div class='add'>+        current_state = SUSPENDED;</div><div class='ctx'>     }</div><div class='ctx'>     else if (current_mode != mode) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "cannot change the measuring target during coverage measurement");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "cannot change the measuring target during coverage measurement");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Coverage.resume  =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ * Start/resume the coverage measurement.</div><div class='add'>+ *</div><div class='add'>+ * Caveat: Currently, only process-global coverage measurement is supported.</div><div class='add'>+ * You cannot measure per-thread coverage. If your process has multiple thread,</div><div class='add'>+ * using Coverage.resume/suspend to capture code coverage executed from only</div><div class='add'>+ * a limited code block, may yield misleading results.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_coverage_resume(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    if (current_state == IDLE) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "coverage measurement is not set up yet");</div><div class='add'>+    }</div><div class='add'>+    if (current_state == RUNNING) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "coverage measurement is already running");</div><div class='ctx'>     }</div><div class='add'>+    rb_resume_coverages();</div><div class='add'>+    current_state = RUNNING;</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Coverage.start                                                          =&gt; nil</div><div class='add'>+ *    Coverage.start(:all)                                                    =&gt; nil</div><div class='add'>+ *    Coverage.start(lines: bool, branches: bool, methods: bool, eval: bool)  =&gt; nil</div><div class='add'>+ *    Coverage.start(oneshot_lines: true)                                     =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ * Enables the coverage measurement.</div><div class='add'>+ * See the documentation of Coverage class in detail.</div><div class='add'>+ * This is equivalent to Coverage.setup and Coverage.resume.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_coverage_start(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_coverage_setup(argc, argv, klass);</div><div class='add'>+    rb_coverage_resume(klass);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct branch_coverage_result_builder</div><div class='add'>+{</div><div class='add'>+    int id;</div><div class='add'>+    VALUE result;</div><div class='add'>+    VALUE children;</div><div class='add'>+    VALUE counters;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+branch_coverage_ii(VALUE _key, VALUE branch, VALUE v)</div><div class='add'>+{</div><div class='add'>+    struct branch_coverage_result_builder *b = (struct branch_coverage_result_builder *) v;</div><div class='add'>+</div><div class='add'>+    VALUE target_label = RARRAY_AREF(branch, 0);</div><div class='add'>+    VALUE target_first_lineno = RARRAY_AREF(branch, 1);</div><div class='add'>+    VALUE target_first_column = RARRAY_AREF(branch, 2);</div><div class='add'>+    VALUE target_last_lineno = RARRAY_AREF(branch, 3);</div><div class='add'>+    VALUE target_last_column = RARRAY_AREF(branch, 4);</div><div class='add'>+    long counter_idx = FIX2LONG(RARRAY_AREF(branch, 5));</div><div class='add'>+    rb_hash_aset(b-&gt;children, rb_ary_new_from_args(6, target_label, LONG2FIX(b-&gt;id++), target_first_lineno, target_first_column, target_last_lineno, target_last_column), RARRAY_AREF(b-&gt;counters, counter_idx));</div><div class='add'>+</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+branch_coverage_i(VALUE _key, VALUE branch_base, VALUE v)</div><div class='add'>+{</div><div class='add'>+    struct branch_coverage_result_builder *b = (struct branch_coverage_result_builder *) v;</div><div class='add'>+</div><div class='add'>+    VALUE base_type = RARRAY_AREF(branch_base, 0);</div><div class='add'>+    VALUE base_first_lineno = RARRAY_AREF(branch_base, 1);</div><div class='add'>+    VALUE base_first_column = RARRAY_AREF(branch_base, 2);</div><div class='add'>+    VALUE base_last_lineno = RARRAY_AREF(branch_base, 3);</div><div class='add'>+    VALUE base_last_column = RARRAY_AREF(branch_base, 4);</div><div class='add'>+    VALUE branches = RARRAY_AREF(branch_base, 5);</div><div class='add'>+    VALUE children = rb_hash_new();</div><div class='add'>+    rb_hash_aset(b-&gt;result, rb_ary_new_from_args(6, base_type, LONG2FIX(b-&gt;id++), base_first_lineno, base_first_column, base_last_lineno, base_last_column), children);</div><div class='add'>+    b-&gt;children = children;</div><div class='add'>+    rb_hash_foreach(branches, branch_coverage_ii, v);</div><div class='add'>+</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> branch_coverage(VALUE branches)</div><div class='ctx'> {</div><div class='del'>-    VALUE ret = rb_hash_new();</div><div class='del'>-    VALUE structure = rb_ary_dup(RARRAY_AREF(branches, 0));</div><div class='del'>-    VALUE counters = rb_ary_dup(RARRAY_AREF(branches, 1));</div><div class='del'>-    int i, j;</div><div class='del'>-    long id = 0;</div><div class='del'>-</div><div class='del'>-    for (i = 0; i &lt; RARRAY_LEN(structure); i++) {</div><div class='del'>-	VALUE branches = RARRAY_AREF(structure, i);</div><div class='del'>-	VALUE base_type = RARRAY_AREF(branches, 0);</div><div class='del'>-	VALUE base_first_lineno = RARRAY_AREF(branches, 1);</div><div class='del'>-	VALUE base_first_column = RARRAY_AREF(branches, 2);</div><div class='del'>-	VALUE base_last_lineno = RARRAY_AREF(branches, 3);</div><div class='del'>-	VALUE base_last_column = RARRAY_AREF(branches, 4);</div><div class='del'>-	VALUE children = rb_hash_new();</div><div class='del'>-	rb_hash_aset(ret, rb_ary_new_from_args(6, base_type, LONG2FIX(id++), base_first_lineno, base_first_column, base_last_lineno, base_last_column), children);</div><div class='del'>-	for (j = 5; j &lt; RARRAY_LEN(branches); j += 6) {</div><div class='del'>-	    VALUE target_label = RARRAY_AREF(branches, j);</div><div class='del'>-	    VALUE target_first_lineno = RARRAY_AREF(branches, j + 1);</div><div class='del'>-	    VALUE target_first_column = RARRAY_AREF(branches, j + 2);</div><div class='del'>-	    VALUE target_last_lineno = RARRAY_AREF(branches, j + 3);</div><div class='del'>-	    VALUE target_last_column = RARRAY_AREF(branches, j + 4);</div><div class='del'>-	    int idx = FIX2INT(RARRAY_AREF(branches, j + 5));</div><div class='del'>-	    rb_hash_aset(children, rb_ary_new_from_args(6, target_label, LONG2FIX(id++), target_first_lineno, target_first_column, target_last_lineno, target_last_column), RARRAY_AREF(counters, idx));</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='add'>+    VALUE structure = RARRAY_AREF(branches, 0);</div><div class='add'>+</div><div class='add'>+    struct branch_coverage_result_builder b;</div><div class='add'>+    b.id = 0;</div><div class='add'>+    b.result = rb_hash_new();</div><div class='add'>+    b.counters = RARRAY_AREF(branches, 1);</div><div class='ctx'> </div><div class='del'>-    return ret;</div><div class='add'>+    rb_hash_foreach(structure, branch_coverage_i, (VALUE)&amp;b);</div><div class='add'>+</div><div class='add'>+    return b.result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -122,45 +242,52 @@ method_coverage_i(void *vstart, void *vend, size_t stride, void *data)</div><div class='ctx'>     VALUE ncoverages = *(VALUE*)data, v;</div><div class='ctx'> </div><div class='ctx'>     for (v = (VALUE)vstart; v != (VALUE)vend; v += stride) {</div><div class='del'>-	if (RB_TYPE_P(v, T_IMEMO) &amp;&amp; imemo_type(v) == imemo_ment) {</div><div class='del'>-	    const rb_method_entry_t *me = (rb_method_entry_t *) v;</div><div class='del'>-	    VALUE path, first_lineno, first_column, last_lineno, last_column;</div><div class='del'>-	    VALUE data[5], ncoverage, methods;</div><div class='del'>-	    VALUE methods_id = ID2SYM(rb_intern("methods"));</div><div class='del'>-	    VALUE klass;</div><div class='del'>-	    const rb_method_entry_t *me2 = rb_resolve_me_location(me, data);</div><div class='del'>-	    if (me != me2) continue;</div><div class='del'>-	    klass = me-&gt;owner;</div><div class='del'>-	    if (RB_TYPE_P(klass, T_ICLASS)) {</div><div class='del'>-		rb_bug("T_ICLASS");</div><div class='del'>-	    }</div><div class='del'>-	    path = data[0];</div><div class='del'>-	    first_lineno = data[1];</div><div class='del'>-	    first_column = data[2];</div><div class='del'>-	    last_lineno = data[3];</div><div class='del'>-	    last_column = data[4];</div><div class='del'>-	    if (FIX2LONG(first_lineno) &lt;= 0) continue;</div><div class='del'>-	    ncoverage = rb_hash_aref(ncoverages, path);</div><div class='del'>-	    if (NIL_P(ncoverage)) continue;</div><div class='del'>-	    methods = rb_hash_aref(ncoverage, methods_id);</div><div class='del'>-</div><div class='del'>-	    {</div><div class='del'>-		VALUE method_id = ID2SYM(me-&gt;def-&gt;original_id);</div><div class='del'>-		VALUE rcount = rb_hash_aref(me2counter, (VALUE) me);</div><div class='del'>-		VALUE key = rb_ary_new_from_args(6, klass, method_id, first_lineno, first_column, last_lineno, last_column);</div><div class='del'>-		VALUE rcount2 = rb_hash_aref(methods, key);</div><div class='del'>-</div><div class='del'>-		if (NIL_P(rcount)) rcount = LONG2FIX(0);</div><div class='del'>-		if (NIL_P(rcount2)) rcount2 = LONG2FIX(0);</div><div class='del'>-		if (!POSFIXABLE(FIX2LONG(rcount) + FIX2LONG(rcount2))) {</div><div class='del'>-		    rcount = LONG2FIX(FIXNUM_MAX);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    rcount = LONG2FIX(FIX2LONG(rcount) + FIX2LONG(rcount2));</div><div class='del'>-		}</div><div class='del'>-		rb_hash_aset(methods, key, rcount);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        void *poisoned = asan_poisoned_object_p(v);</div><div class='add'>+        asan_unpoison_object(v, false);</div><div class='add'>+</div><div class='add'>+        if (RB_TYPE_P(v, T_IMEMO) &amp;&amp; imemo_type(v) == imemo_ment) {</div><div class='add'>+            const rb_method_entry_t *me = (rb_method_entry_t *) v;</div><div class='add'>+            VALUE path, first_lineno, first_column, last_lineno, last_column;</div><div class='add'>+            VALUE data[5], ncoverage, methods;</div><div class='add'>+            VALUE methods_id = ID2SYM(rb_intern("methods"));</div><div class='add'>+            VALUE klass;</div><div class='add'>+            const rb_method_entry_t *me2 = rb_resolve_me_location(me, data);</div><div class='add'>+            if (me != me2) continue;</div><div class='add'>+            klass = me-&gt;owner;</div><div class='add'>+            if (RB_TYPE_P(klass, T_ICLASS)) {</div><div class='add'>+                rb_bug("T_ICLASS");</div><div class='add'>+            }</div><div class='add'>+            path = data[0];</div><div class='add'>+            first_lineno = data[1];</div><div class='add'>+            first_column = data[2];</div><div class='add'>+            last_lineno = data[3];</div><div class='add'>+            last_column = data[4];</div><div class='add'>+            if (FIX2LONG(first_lineno) &lt;= 0) continue;</div><div class='add'>+            ncoverage = rb_hash_aref(ncoverages, path);</div><div class='add'>+            if (NIL_P(ncoverage)) continue;</div><div class='add'>+            methods = rb_hash_aref(ncoverage, methods_id);</div><div class='add'>+</div><div class='add'>+            {</div><div class='add'>+                VALUE method_id = ID2SYM(me-&gt;def-&gt;original_id);</div><div class='add'>+                VALUE rcount = rb_hash_aref(me2counter, (VALUE) me);</div><div class='add'>+                VALUE key = rb_ary_new_from_args(6, klass, method_id, first_lineno, first_column, last_lineno, last_column);</div><div class='add'>+                VALUE rcount2 = rb_hash_aref(methods, key);</div><div class='add'>+</div><div class='add'>+                if (NIL_P(rcount)) rcount = LONG2FIX(0);</div><div class='add'>+                if (NIL_P(rcount2)) rcount2 = LONG2FIX(0);</div><div class='add'>+                if (!POSFIXABLE(FIX2LONG(rcount) + FIX2LONG(rcount2))) {</div><div class='add'>+                    rcount = LONG2FIX(FIXNUM_MAX);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    rcount = LONG2FIX(FIX2LONG(rcount) + FIX2LONG(rcount2));</div><div class='add'>+                }</div><div class='add'>+                rb_hash_aset(methods, key, rcount);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (poisoned) {</div><div class='add'>+            asan_poison_object(v);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -172,32 +299,32 @@ coverage_peek_result_i(st_data_t key, st_data_t val, st_data_t h)</div><div class='ctx'>     VALUE coverage = (VALUE)val;</div><div class='ctx'>     VALUE coverages = (VALUE)h;</div><div class='ctx'>     if (current_mode == 0) {</div><div class='del'>-	/* compatible mode */</div><div class='del'>-	VALUE lines = rb_ary_dup(RARRAY_AREF(coverage, COVERAGE_INDEX_LINES));</div><div class='del'>-	rb_ary_freeze(lines);</div><div class='del'>-	coverage = lines;</div><div class='add'>+        /* compatible mode */</div><div class='add'>+        VALUE lines = rb_ary_dup(RARRAY_AREF(coverage, COVERAGE_INDEX_LINES));</div><div class='add'>+        rb_ary_freeze(lines);</div><div class='add'>+        coverage = lines;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE h = rb_hash_new();</div><div class='add'>+        VALUE h = rb_hash_new();</div><div class='ctx'> </div><div class='del'>-	if (current_mode &amp; COVERAGE_TARGET_LINES) {</div><div class='del'>-	    VALUE lines = RARRAY_AREF(coverage, COVERAGE_INDEX_LINES);</div><div class='add'>+        if (current_mode &amp; COVERAGE_TARGET_LINES) {</div><div class='add'>+            VALUE lines = RARRAY_AREF(coverage, COVERAGE_INDEX_LINES);</div><div class='ctx'>             const char *kw = (current_mode &amp; COVERAGE_TARGET_ONESHOT_LINES) ? "oneshot_lines" : "lines";</div><div class='del'>-	    lines = rb_ary_dup(lines);</div><div class='del'>-	    rb_ary_freeze(lines);</div><div class='add'>+            lines = rb_ary_dup(lines);</div><div class='add'>+            rb_ary_freeze(lines);</div><div class='ctx'>             rb_hash_aset(h, ID2SYM(rb_intern(kw)), lines);</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	if (current_mode &amp; COVERAGE_TARGET_BRANCHES) {</div><div class='del'>-	    VALUE branches = RARRAY_AREF(coverage, COVERAGE_INDEX_BRANCHES);</div><div class='del'>-	    rb_hash_aset(h, ID2SYM(rb_intern("branches")), branch_coverage(branches));</div><div class='del'>-	}</div><div class='add'>+        if (current_mode &amp; COVERAGE_TARGET_BRANCHES) {</div><div class='add'>+            VALUE branches = RARRAY_AREF(coverage, COVERAGE_INDEX_BRANCHES);</div><div class='add'>+            rb_hash_aset(h, ID2SYM(rb_intern("branches")), branch_coverage(branches));</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	if (current_mode &amp; COVERAGE_TARGET_METHODS) {</div><div class='del'>-	    rb_hash_aset(h, ID2SYM(rb_intern("methods")), rb_hash_new());</div><div class='del'>-	}</div><div class='add'>+        if (current_mode &amp; COVERAGE_TARGET_METHODS) {</div><div class='add'>+            rb_hash_aset(h, ID2SYM(rb_intern("methods")), rb_hash_new());</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	coverage = h;</div><div class='add'>+        coverage = h;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_hash_aset(coverages, path, coverage);</div><div class='hunk'>@@ -222,12 +349,13 @@ rb_coverage_peek_result(VALUE klass)</div><div class='ctx'>     VALUE coverages = rb_get_coverages();</div><div class='ctx'>     VALUE ncoverages = rb_hash_new();</div><div class='ctx'>     if (!RTEST(coverages)) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "coverage measurement is not enabled");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "coverage measurement is not enabled");</div><div class='ctx'>     }</div><div class='del'>-    st_foreach(RHASH_TBL(coverages), coverage_peek_result_i, ncoverages);</div><div class='add'>+    OBJ_WB_UNPROTECT(coverages);</div><div class='add'>+    st_foreach(RHASH_TBL_RAW(coverages), coverage_peek_result_i, ncoverages);</div><div class='ctx'> </div><div class='ctx'>     if (current_mode &amp; COVERAGE_TARGET_METHODS) {</div><div class='del'>-	rb_objspace_each_objects(method_coverage_i, &amp;ncoverages);</div><div class='add'>+        rb_objspace_each_objects(method_coverage_i, &amp;ncoverages);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_hash_freeze(ncoverages);</div><div class='hunk'>@@ -243,6 +371,24 @@ clear_me2counter_i(VALUE key, VALUE value, VALUE unused)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Coverage.suspend  =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ * Suspend the coverage measurement.</div><div class='add'>+ * You can use Coverage.resume to restart the measurement.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_coverage_suspend(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    if (current_state != RUNNING) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "coverage measurement is not running");</div><div class='add'>+    }</div><div class='add'>+    rb_suspend_coverages();</div><div class='add'>+    current_state = SUSPENDED;</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     Coverage.result(stop: true, clear: true)  =&gt; hash</div><div class='ctx'>  *</div><div class='hunk'>@@ -257,6 +403,10 @@ rb_coverage_result(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     VALUE opt;</div><div class='ctx'>     int stop = 1, clear = 1;</div><div class='ctx'> </div><div class='add'>+    if (current_state == IDLE) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "coverage measurement is not enabled");</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     rb_scan_args(argc, argv, "01", &amp;opt);</div><div class='ctx'> </div><div class='ctx'>     if (argc == 1) {</div><div class='hunk'>@@ -275,8 +425,12 @@ rb_coverage_result(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>         if (!NIL_P(me2counter)) rb_hash_foreach(me2counter, clear_me2counter_i, Qnil);</div><div class='ctx'>     }</div><div class='ctx'>     if (stop) {</div><div class='add'>+        if (current_state == RUNNING) {</div><div class='add'>+            rb_coverage_suspend(klass);</div><div class='add'>+        }</div><div class='ctx'>         rb_reset_coverages();</div><div class='ctx'>         me2counter = Qnil;</div><div class='add'>+        current_state = IDLE;</div><div class='ctx'>     }</div><div class='ctx'>     return ncoverages;</div><div class='ctx'> }</div><div class='hunk'>@@ -284,6 +438,23 @@ rb_coverage_result(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='add'>+ *     Coverage.state  =&gt; :idle, :suspended, :running</div><div class='add'>+ *</div><div class='add'>+ * Returns the state of the coverage measurement.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_coverage_state(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    switch (current_state) {</div><div class='add'>+        case IDLE: return ID2SYM(rb_intern("idle"));</div><div class='add'>+        case SUSPENDED: return ID2SYM(rb_intern("suspended"));</div><div class='add'>+        case RUNNING: return ID2SYM(rb_intern("running"));</div><div class='add'>+    }</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='ctx'>  *     Coverage.running?  =&gt; bool</div><div class='ctx'>  *</div><div class='ctx'>  * Returns true if coverage stats are currently being collected (after</div><div class='hunk'>@@ -292,13 +463,15 @@ rb_coverage_result(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_coverage_running(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE coverages = rb_get_coverages();</div><div class='del'>-    return RTEST(coverages) ? Qtrue : Qfalse;</div><div class='add'>+    return current_state == RUNNING ? Qtrue : Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Coverage provides coverage measurement feature for Ruby.</div><div class='ctx'>  * This feature is experimental, so these APIs may be changed in future.</div><div class='ctx'>  *</div><div class='add'>+ * Caveat: Currently, only process-global coverage measurement is supported.</div><div class='add'>+ * You cannot measure per-thread coverage.</div><div class='add'>+ *</div><div class='ctx'>  * = Usage</div><div class='ctx'>  *</div><div class='ctx'>  * 1. require "coverage"</div><div class='hunk'>@@ -309,7 +482,7 @@ rb_coverage_running(VALUE klass)</div><div class='ctx'>  *    number of line execution by the interpreter. A +nil+ value means</div><div class='ctx'>  *    coverage is disabled for this line (lines like +else+ and +end+).</div><div class='ctx'>  *</div><div class='del'>- * = Example</div><div class='add'>+ * = Examples</div><div class='ctx'>  *</div><div class='ctx'>  *   [foo.rb]</div><div class='ctx'>  *   s = 0</div><div class='hunk'>@@ -328,14 +501,131 @@ rb_coverage_running(VALUE klass)</div><div class='ctx'>  *   Coverage.start</div><div class='ctx'>  *   require "foo.rb"</div><div class='ctx'>  *   p Coverage.result  #=&gt; {"foo.rb"=&gt;[1, 1, 10, nil, nil, 1, 1, nil, 0, nil]}</div><div class='add'>+ *</div><div class='add'>+ * == Lines Coverage</div><div class='add'>+ *</div><div class='add'>+ * If a coverage mode is not explicitly specified when starting coverage, lines</div><div class='add'>+ * coverage is what will run. It reports the number of line executions for each</div><div class='add'>+ * line.</div><div class='add'>+ *</div><div class='add'>+ *   require "coverage"</div><div class='add'>+ *   Coverage.start(lines: true)</div><div class='add'>+ *   require "foo.rb"</div><div class='add'>+ *   p Coverage.result #=&gt; {"foo.rb"=&gt;{:lines=&gt;[1, 1, 10, nil, nil, 1, 1, nil, 0, nil]}}</div><div class='add'>+ *</div><div class='add'>+ * The value of the lines coverage result is an array containing how many times</div><div class='add'>+ * each line was executed. Order in this array is important. For example, the</div><div class='add'>+ * first item in this array, at index 0, reports how many times line 1 of this</div><div class='add'>+ * file was executed while coverage was run (which, in this example, is one</div><div class='add'>+ * time).</div><div class='add'>+ *</div><div class='add'>+ * A +nil+ value means coverage is disabled for this line (lines like +else+</div><div class='add'>+ * and +end+).</div><div class='add'>+ *</div><div class='add'>+ * == Oneshot Lines Coverage</div><div class='add'>+ *</div><div class='add'>+ * Oneshot lines coverage tracks and reports on the executed lines while</div><div class='add'>+ * coverage is running. It will not report how many times a line was executed,</div><div class='add'>+ * only that it was executed.</div><div class='add'>+ *</div><div class='add'>+ *   require "coverage"</div><div class='add'>+ *   Coverage.start(oneshot_lines: true)</div><div class='add'>+ *   require "foo.rb"</div><div class='add'>+ *   p Coverage.result #=&gt; {"foo.rb"=&gt;{:oneshot_lines=&gt;[1, 2, 3, 6, 7]}}</div><div class='add'>+ *</div><div class='add'>+ * The value of the oneshot lines coverage result is an array containing the</div><div class='add'>+ * line numbers that were executed.</div><div class='add'>+ *</div><div class='add'>+ * == Branches Coverage</div><div class='add'>+ *</div><div class='add'>+ * Branches coverage reports how many times each branch within each conditional</div><div class='add'>+ * was executed.</div><div class='add'>+ *</div><div class='add'>+ *   require "coverage"</div><div class='add'>+ *   Coverage.start(branches: true)</div><div class='add'>+ *   require "foo.rb"</div><div class='add'>+ *   p Coverage.result #=&gt; {"foo.rb"=&gt;{:branches=&gt;{[:if, 0, 6, 0, 10, 3]=&gt;{[:then, 1, 7, 2, 7, 7]=&gt;1, [:else, 2, 9, 2, 9, 7]=&gt;0}}}}</div><div class='add'>+ *</div><div class='add'>+ * Each entry within the branches hash is a conditional, the value of which is</div><div class='add'>+ * another hash where each entry is a branch in that conditional. The values</div><div class='add'>+ * are the number of times the method was executed, and the keys are identifying</div><div class='add'>+ * information about the branch.</div><div class='add'>+ *</div><div class='add'>+ * The information that makes up each key identifying branches or conditionals</div><div class='add'>+ * is the following, from left to right:</div><div class='add'>+ *</div><div class='add'>+ * 1. A label for the type of branch or conditional.</div><div class='add'>+ * 2. A unique identifier.</div><div class='add'>+ * 3. The starting line number it appears on in the file.</div><div class='add'>+ * 4. The starting column number it appears on in the file.</div><div class='add'>+ * 5. The ending line number it appears on in the file.</div><div class='add'>+ * 6. The ending column number it appears on in the file.</div><div class='add'>+ *</div><div class='add'>+ * == Methods Coverage</div><div class='add'>+ *</div><div class='add'>+ * Methods coverage reports how many times each method was executed.</div><div class='add'>+ *</div><div class='add'>+ *   [foo_method.rb]</div><div class='add'>+ *   class Greeter</div><div class='add'>+ *     def greet</div><div class='add'>+ *       "welcome!"</div><div class='add'>+ *     end</div><div class='add'>+ *   end</div><div class='add'>+ *</div><div class='add'>+ *   def hello</div><div class='add'>+ *     "Hi"</div><div class='add'>+ *   end</div><div class='add'>+ *</div><div class='add'>+ *   hello()</div><div class='add'>+ *   Greeter.new.greet()</div><div class='add'>+ *   [EOF]</div><div class='add'>+ *</div><div class='add'>+ *   require "coverage"</div><div class='add'>+ *   Coverage.start(methods: true)</div><div class='add'>+ *   require "foo_method.rb"</div><div class='add'>+ *   p Coverage.result #=&gt; {"foo_method.rb"=&gt;{:methods=&gt;{[Object, :hello, 7, 0, 9, 3]=&gt;1, [Greeter, :greet, 2, 2, 4, 5]=&gt;1}}}</div><div class='add'>+ *</div><div class='add'>+ * Each entry within the methods hash represents a method. The values in this</div><div class='add'>+ * hash are the number of times the method was executed, and the keys are</div><div class='add'>+ * identifying information about the method.</div><div class='add'>+ *</div><div class='add'>+ * The information that makes up each key identifying a method is the following,</div><div class='add'>+ * from left to right:</div><div class='add'>+ *</div><div class='add'>+ * 1. The class.</div><div class='add'>+ * 2. The method name.</div><div class='add'>+ * 3. The starting line number the method appears on in the file.</div><div class='add'>+ * 4. The starting column number the method appears on in the file.</div><div class='add'>+ * 5. The ending line number the method appears on in the file.</div><div class='add'>+ * 6. The ending column number the method appears on in the file.</div><div class='add'>+ *</div><div class='add'>+ * == All Coverage Modes</div><div class='add'>+ *</div><div class='add'>+ * You can also run all modes of coverage simultaneously with this shortcut.</div><div class='add'>+ * Note that running all coverage modes does not run both lines and oneshot</div><div class='add'>+ * lines. Those modes cannot be run simultaneously. Lines coverage is run in</div><div class='add'>+ * this case, because you can still use it to determine whether or not a line</div><div class='add'>+ * was executed.</div><div class='add'>+ *</div><div class='add'>+ *   require "coverage"</div><div class='add'>+ *   Coverage.start(:all)</div><div class='add'>+ *   require "foo.rb"</div><div class='add'>+ *   p Coverage.result #=&gt; {"foo.rb"=&gt;{:lines=&gt;[1, 1, 10, nil, nil, 1, 1, nil, 0, nil], :branches=&gt;{[:if, 0, 6, 0, 10, 3]=&gt;{[:then, 1, 7, 2, 7, 7]=&gt;1, [:else, 2, 9, 2, 9, 7]=&gt;0}}, :methods=&gt;{}}}</div><div class='ctx'>  */</div><div class='ctx'> void</div><div class='ctx'> Init_coverage(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE rb_mCoverage = rb_define_module("Coverage");</div><div class='add'>+</div><div class='add'>+    rb_define_singleton_method(rb_mCoverage, "supported?", rb_coverage_supported, 1);</div><div class='add'>+</div><div class='add'>+    rb_define_module_function(rb_mCoverage, "setup", rb_coverage_setup, -1);</div><div class='ctx'>     rb_define_module_function(rb_mCoverage, "start", rb_coverage_start, -1);</div><div class='add'>+    rb_define_module_function(rb_mCoverage, "resume", rb_coverage_resume, 0);</div><div class='add'>+    rb_define_module_function(rb_mCoverage, "suspend", rb_coverage_suspend, 0);</div><div class='ctx'>     rb_define_module_function(rb_mCoverage, "result", rb_coverage_result, -1);</div><div class='ctx'>     rb_define_module_function(rb_mCoverage, "peek_result", rb_coverage_peek_result, 0);</div><div class='add'>+    rb_define_module_function(rb_mCoverage, "state", rb_coverage_state, 0);</div><div class='ctx'>     rb_define_module_function(rb_mCoverage, "running?", rb_coverage_running, 0);</div><div class='ctx'>     rb_global_variable(&amp;me2counter);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/coverage/depend b/ext/coverage/depend<br/>index 146f694cd5..e7fab16484 100644<br/>--- a/<a href='/ruby.git/tree/ext/coverage/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/coverage/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/coverage/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/coverage/depend</a></div><div class='hunk'>@@ -1,26 +1,162 @@</div><div class='del'>-$(OBJS): $(HDRS) $(ruby_headers) \</div><div class='del'>-  $(top_srcdir)/vm_core.h \</div><div class='del'>-  $(top_srcdir)/node.h \</div><div class='del'>-  $(top_srcdir)/vm_debug.h \</div><div class='del'>-  $(top_srcdir)/vm_opts.h \</div><div class='del'>-  {$(VPATH)}id.h \</div><div class='del'>-  $(top_srcdir)/method.h \</div><div class='del'>-  $(top_srcdir)/ruby_atomic.h \</div><div class='del'>-  $(top_srcdir)/thread_pthread.h \</div><div class='del'>-  $(top_srcdir)/internal.h \</div><div class='del'>-  $(top_srcdir)/include/ruby/thread_native.h</div><div class='del'>-</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> coverage.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> coverage.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/atomic.h</div><div class='ctx'> coverage.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> coverage.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-coverage.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> coverage.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-coverage.o: $(hdrdir)/ruby/io.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+coverage.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> coverage.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-coverage.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-coverage.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> coverage.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> coverage.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> coverage.o: $(hdrdir)/ruby/subst.h</div><div class='hunk'>@@ -29,16 +165,30 @@ coverage.o: $(top_srcdir)/ccan/check_type/check_type.h</div><div class='ctx'> coverage.o: $(top_srcdir)/ccan/container_of/container_of.h</div><div class='ctx'> coverage.o: $(top_srcdir)/ccan/list/list.h</div><div class='ctx'> coverage.o: $(top_srcdir)/ccan/str/str.h</div><div class='add'>+coverage.o: $(top_srcdir)/constant.h</div><div class='ctx'> coverage.o: $(top_srcdir)/gc.h</div><div class='del'>-coverage.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+coverage.o: $(top_srcdir)/id_table.h</div><div class='ctx'> coverage.o: $(top_srcdir)/internal.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/array.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/hash.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/imemo.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/variable.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+coverage.o: $(top_srcdir)/internal/warnings.h</div><div class='ctx'> coverage.o: $(top_srcdir)/method.h</div><div class='ctx'> coverage.o: $(top_srcdir)/node.h</div><div class='ctx'> coverage.o: $(top_srcdir)/ruby_assert.h</div><div class='ctx'> coverage.o: $(top_srcdir)/ruby_atomic.h</div><div class='add'>+coverage.o: $(top_srcdir)/shape.h</div><div class='ctx'> coverage.o: $(top_srcdir)/thread_pthread.h</div><div class='ctx'> coverage.o: $(top_srcdir)/vm_core.h</div><div class='del'>-coverage.o: $(top_srcdir)/vm_debug.h</div><div class='ctx'> coverage.o: $(top_srcdir)/vm_opts.h</div><div class='ctx'> coverage.o: coverage.c</div><div class='ctx'> coverage.o: {$(VPATH)}id.h</div><div class='head'>diff --git a/ext/date/date.gemspec b/ext/date/date.gemspec<br/>index 0407a0c60b..660353ebc5 100644<br/>--- a/<a href='/ruby.git/tree/ext/date/date.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/date.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/date/date.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/date.gemspec</a></div><div class='hunk'>@@ -1,23 +1,34 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+version = File.foreach(File.expand_path("../lib/date.rb", __FILE__)).find do |line|</div><div class='add'>+  /^\s*VERSION\s*=\s*["'](.*)["']/ =~ line and break $1</div><div class='add'>+end</div><div class='add'>+</div><div class='ctx'> Gem::Specification.new do |s|</div><div class='ctx'>   s.name = "date"</div><div class='del'>-  s.version = '1.0.0'</div><div class='add'>+  s.version = version</div><div class='ctx'>   s.summary = "A subclass of Object includes Comparable module for handling dates."</div><div class='ctx'>   s.description = "A subclass of Object includes Comparable module for handling dates."</div><div class='ctx'> </div><div class='del'>-  s.require_path = %w{lib}</div><div class='del'>-  s.files = [</div><div class='del'>-    "lib/date.rb", "ext/date/date_core.c", "ext/date/date_parse.c", "ext/date/date_strftime.c",</div><div class='del'>-    "ext/date/date_strptime.c", "ext/date/date_tmx.h", "ext/date/extconf.rb", "ext/date/prereq.mk",</div><div class='del'>-    "ext/date/zonetab.h", "ext/date/zonetab.list"</div><div class='del'>-  ]</div><div class='del'>-  s.extensions = "ext/date/extconf.rb"</div><div class='del'>-  s.required_ruby_version = "&gt;= 2.4.0"</div><div class='add'>+  if Gem::Platform === s.platform and s.platform =~ 'java' or RUBY_ENGINE == 'jruby'</div><div class='add'>+    s.platform = 'java'</div><div class='add'>+    # No files shipped, no require path, no-op for now on JRuby</div><div class='add'>+  else</div><div class='add'>+    s.require_path = %w{lib}</div><div class='add'>+</div><div class='add'>+    s.files = [</div><div class='add'>+      "README.md",</div><div class='add'>+      "lib/date.rb", "ext/date/date_core.c", "ext/date/date_parse.c", "ext/date/date_strftime.c",</div><div class='add'>+      "ext/date/date_strptime.c", "ext/date/date_tmx.h", "ext/date/extconf.rb", "ext/date/prereq.mk",</div><div class='add'>+      "ext/date/zonetab.h", "ext/date/zonetab.list"</div><div class='add'>+    ]</div><div class='add'>+    s.extensions = "ext/date/extconf.rb"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  s.required_ruby_version = "&gt;= 2.6.0"</div><div class='ctx'> </div><div class='ctx'>   s.authors = ["Tadayoshi Funaba"]</div><div class='ctx'>   s.email = [nil]</div><div class='ctx'>   s.homepage = "https://github.com/ruby/date"</div><div class='del'>-  s.license = "BSD-2-Clause"</div><div class='del'>-</div><div class='del'>-  s.add_development_dependency "rake-compiler"</div><div class='add'>+  s.licenses = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/date/date_core.c b/ext/date/date_core.c<br/>index 49027e92b1..21367c0ddf 100644<br/>--- a/<a href='/ruby.git/tree/ext/date/date_core.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/date_core.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/date/date_core.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/date_core.c</a></div><div class='hunk'>@@ -11,6 +11,7 @@</div><div class='ctx'> #include &lt;sys/time.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#undef NDEBUG</div><div class='ctx'> #define NDEBUG</div><div class='ctx'> #include &lt;assert.h&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -22,9 +23,14 @@</div><div class='ctx'> </div><div class='ctx'> static ID id_cmp, id_le_p, id_ge_p, id_eqeq_p;</div><div class='ctx'> static VALUE cDate, cDateTime;</div><div class='add'>+static VALUE eDateError;</div><div class='ctx'> static VALUE half_days_in_day, day_in_nanoseconds;</div><div class='ctx'> static double positive_inf, negative_inf;</div><div class='ctx'> </div><div class='add'>+// used by deconstruct_keys</div><div class='add'>+static VALUE sym_year, sym_month, sym_day, sym_yday, sym_wday;</div><div class='add'>+static VALUE sym_hour, sym_min, sym_sec, sym_sec_fraction, sym_zone;</div><div class='add'>+</div><div class='ctx'> #define f_boolcast(x) ((x) ? Qtrue : Qfalse)</div><div class='ctx'> </div><div class='ctx'> #define f_abs(x) rb_funcall(x, rb_intern("abs"), 0)</div><div class='hunk'>@@ -51,9 +57,20 @@ static double positive_inf, negative_inf;</div><div class='ctx'> #define f_add3(x,y,z) f_add(f_add(x, y), z)</div><div class='ctx'> #define f_sub3(x,y,z) f_sub(f_sub(x, y), z)</div><div class='ctx'> </div><div class='add'>+#define f_frozen_ary(...) rb_obj_freeze(rb_ary_new3(__VA_ARGS__))</div><div class='add'>+</div><div class='ctx'> static VALUE date_initialize(int argc, VALUE *argv, VALUE self);</div><div class='ctx'> static VALUE datetime_initialize(int argc, VALUE *argv, VALUE self);</div><div class='ctx'> </div><div class='add'>+#define RETURN_FALSE_UNLESS_NUMERIC(obj) if(!RTEST(rb_obj_is_kind_of((obj), rb_cNumeric))) return Qfalse</div><div class='add'>+inline static void</div><div class='add'>+check_numeric(VALUE obj, const char* field)</div><div class='add'>+{</div><div class='add'>+    if(!RTEST(rb_obj_is_kind_of(obj, rb_cNumeric))) {</div><div class='add'>+        rb_raise(rb_eTypeError, "invalid %s (not numeric)", field);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> inline static int</div><div class='ctx'> f_cmp(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='hunk'>@@ -453,6 +470,7 @@ c_find_ldoy(int y, double sg, int *rjd, int *ns)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static int</div><div class='ctx'> c_find_fdom(int y, int m, double sg, int *rjd, int *ns)</div><div class='ctx'> {</div><div class='hunk'>@@ -609,6 +627,7 @@ c_jd_to_weeknum(int jd, int f, double sg, int *ry, int *rw, int *rd)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static void</div><div class='ctx'> c_nth_kday_to_jd(int y, int m, int n, int k, double sg, int *rjd, int *ns)</div><div class='ctx'> {</div><div class='hunk'>@@ -634,6 +653,7 @@ c_jd_to_wday(int jd)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static void</div><div class='ctx'> c_jd_to_nth_kday(int jd, double sg, int *ry, int *rm, int *rn, int *rk)</div><div class='ctx'> {</div><div class='hunk'>@@ -746,6 +766,8 @@ c_valid_civil_p(int y, int m, int d, double sg,</div><div class='ctx'> </div><div class='ctx'>     if (m &lt; 0)</div><div class='ctx'> 	m += 13;</div><div class='add'>+    if (m &lt; 1 || m &gt; 12)</div><div class='add'>+	return 0;</div><div class='ctx'>     if (d &lt; 0) {</div><div class='ctx'> 	if (!c_find_ldom(y, m, sg, rjd, ns))</div><div class='ctx'> 	    return 0;</div><div class='hunk'>@@ -810,6 +832,7 @@ c_valid_weeknum_p(int y, int w, int d, int f, double sg,</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static int</div><div class='ctx'> c_valid_nth_kday_p(int y, int m, int n, int k, double sg,</div><div class='ctx'> 		   int *rm, int *rn, int *rk, int *rjd, int *ns)</div><div class='hunk'>@@ -951,6 +974,7 @@ ns_to_day(VALUE n)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> ms_to_sec(VALUE m)</div><div class='ctx'> {</div><div class='hunk'>@@ -969,6 +993,7 @@ ns_to_sec(VALUE n)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> inline static VALUE</div><div class='ctx'> ins_to_day(int n)</div><div class='ctx'> {</div><div class='hunk'>@@ -1004,6 +1029,7 @@ day_to_sec(VALUE d)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> day_to_ns(VALUE d)</div><div class='ctx'> {</div><div class='hunk'>@@ -1028,6 +1054,7 @@ sec_to_ns(VALUE s)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> isec_to_ns(int s)</div><div class='ctx'> {</div><div class='hunk'>@@ -1054,6 +1081,7 @@ div_df(VALUE d, VALUE *f)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> div_sf(VALUE s, VALUE *f)</div><div class='ctx'> {</div><div class='hunk'>@@ -1488,6 +1516,7 @@ m_df(union DateData *x)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> m_df_in_day(union DateData *x)</div><div class='ctx'> {</div><div class='hunk'>@@ -1985,6 +2014,7 @@ expect_numeric(VALUE x)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static void</div><div class='ctx'> civil_to_jd(VALUE y, int m, int d, double sg,</div><div class='ctx'> 	    VALUE *nth, int *ry,</div><div class='hunk'>@@ -2297,6 +2327,7 @@ valid_weeknum_p(VALUE y, int w, int d, int f, double sg,</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static int</div><div class='ctx'> valid_nth_kday_p(VALUE y, int m, int n, int k, double sg,</div><div class='ctx'> 		 VALUE *nth, int *ry,</div><div class='hunk'>@@ -2434,6 +2465,7 @@ valid_jd_sub(int argc, VALUE *argv, VALUE klass, int need_jd)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s__valid_jd_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -2454,13 +2486,16 @@ date_s__valid_jd_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.valid_jd?(jd[, start=Date::ITALY])  -&gt;  bool</div><div class='add'>+ *   Date.valid_jd?(jd, start = Date::ITALY) -&gt; true</div><div class='add'>+ *</div><div class='add'>+ * Implemented for compatibility;</div><div class='add'>+ * returns +true+ unless +jd+ is invalid (i.e., not a Numeric).</div><div class='ctx'>  *</div><div class='del'>- * Just returns true.  It's nonsense, but is for symmetry.</div><div class='add'>+ *   Date.valid_jd?(2451944) # =&gt; true</div><div class='ctx'>  *</div><div class='del'>- *    Date.valid_jd?(2451944)		#=&gt; true</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='ctx'>  *</div><div class='del'>- * See also ::jd.</div><div class='add'>+ * Related: Date.jd.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_valid_jd_p(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -2470,6 +2505,7 @@ date_s_valid_jd_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "11", &amp;vjd, &amp;vsg);</div><div class='ctx'> </div><div class='add'>+    RETURN_FALSE_UNLESS_NUMERIC(vjd);</div><div class='ctx'>     argv2[0] = vjd;</div><div class='ctx'>     if (argc &lt; 2)</div><div class='ctx'> 	argv2[1] = INT2FIX(DEFAULT_SG);</div><div class='hunk'>@@ -2519,6 +2555,7 @@ valid_civil_sub(int argc, VALUE *argv, VALUE klass, int need_jd)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s__valid_civil_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -2541,15 +2578,20 @@ date_s__valid_civil_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.valid_civil?(year, month, mday[, start=Date::ITALY])  -&gt;  bool</div><div class='del'>- *    Date.valid_date?(year, month, mday[, start=Date::ITALY])   -&gt;  bool</div><div class='add'>+ *   Date.valid_civil?(year, month, mday, start = Date::ITALY) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if the arguments define a valid ordinal date,</div><div class='add'>+ * +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *   Date.valid_date?(2001, 2, 3)  # =&gt; true</div><div class='add'>+ *   Date.valid_date?(2001, 2, 29) # =&gt; false</div><div class='add'>+ *   Date.valid_date?(2001, 2, -1) # =&gt; true</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the given calendar date is valid, and false if not.</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='ctx'>  *</div><div class='del'>- *    Date.valid_date?(2001,2,3)	#=&gt; true</div><div class='del'>- *    Date.valid_date?(2001,2,29)	#=&gt; false</div><div class='add'>+ * Date.valid_date? is an alias for Date.valid_civil?.</div><div class='ctx'>  *</div><div class='del'>- * See also ::jd and ::civil.</div><div class='add'>+ * Related: Date.jd, Date.new.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_valid_civil_p(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -2559,6 +2601,9 @@ date_s_valid_civil_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "31", &amp;vy, &amp;vm, &amp;vd, &amp;vsg);</div><div class='ctx'> </div><div class='add'>+    RETURN_FALSE_UNLESS_NUMERIC(vy);</div><div class='add'>+    RETURN_FALSE_UNLESS_NUMERIC(vm);</div><div class='add'>+    RETURN_FALSE_UNLESS_NUMERIC(vd);</div><div class='ctx'>     argv2[0] = vy;</div><div class='ctx'>     argv2[1] = vm;</div><div class='ctx'>     argv2[2] = vd;</div><div class='hunk'>@@ -2602,6 +2647,7 @@ valid_ordinal_sub(int argc, VALUE *argv, VALUE klass, int need_jd)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s__valid_ordinal_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -2623,14 +2669,17 @@ date_s__valid_ordinal_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.valid_ordinal?(year, yday[, start=Date::ITALY])  -&gt;  bool</div><div class='add'>+ *   Date.valid_ordinal?(year, yday, start = Date::ITALY) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if the arguments define a valid ordinal date,</div><div class='add'>+ * +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the given ordinal date is valid, and false if not.</div><div class='add'>+ *   Date.valid_ordinal?(2001, 34)  # =&gt; true</div><div class='add'>+ *   Date.valid_ordinal?(2001, 366) # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- *    Date.valid_ordinal?(2001,34)	#=&gt; true</div><div class='del'>- *    Date.valid_ordinal?(2001,366)	#=&gt; false</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='ctx'>  *</div><div class='del'>- * See also ::jd and ::ordinal.</div><div class='add'>+ * Related: Date.jd, Date.ordinal.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_valid_ordinal_p(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -2640,6 +2689,8 @@ date_s_valid_ordinal_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "21", &amp;vy, &amp;vd, &amp;vsg);</div><div class='ctx'> </div><div class='add'>+    RETURN_FALSE_UNLESS_NUMERIC(vy);</div><div class='add'>+    RETURN_FALSE_UNLESS_NUMERIC(vd);</div><div class='ctx'>     argv2[0] = vy;</div><div class='ctx'>     argv2[1] = vd;</div><div class='ctx'>     if (argc &lt; 3)</div><div class='hunk'>@@ -2683,6 +2734,7 @@ valid_commercial_sub(int argc, VALUE *argv, VALUE klass, int need_jd)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s__valid_commercial_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -2705,14 +2757,19 @@ date_s__valid_commercial_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.valid_commercial?(cwyear, cweek, cwday[, start=Date::ITALY])  -&gt;  bool</div><div class='add'>+ *   Date.valid_commercial?(cwyear, cweek, cwday, start = Date::ITALY) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if the arguments define a valid commercial date,</div><div class='add'>+ * +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the given week date is valid, and false if not.</div><div class='add'>+ *   Date.valid_commercial?(2001, 5, 6) # =&gt; true</div><div class='add'>+ *   Date.valid_commercial?(2001, 5, 8) # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- *    Date.valid_commercial?(2001,5,6)	#=&gt; true</div><div class='del'>- *    Date.valid_commercial?(2001,5,8)	#=&gt; false</div><div class='add'>+ * See Date.commercial.</div><div class='ctx'>  *</div><div class='del'>- * See also ::jd and ::commercial.</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.jd, Date.commercial.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_valid_commercial_p(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -2722,6 +2779,9 @@ date_s_valid_commercial_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "31", &amp;vy, &amp;vw, &amp;vd, &amp;vsg);</div><div class='ctx'> </div><div class='add'>+    RETURN_FALSE_UNLESS_NUMERIC(vy);</div><div class='add'>+    RETURN_FALSE_UNLESS_NUMERIC(vw);</div><div class='add'>+    RETURN_FALSE_UNLESS_NUMERIC(vd);</div><div class='ctx'>     argv2[0] = vy;</div><div class='ctx'>     argv2[1] = vw;</div><div class='ctx'>     argv2[2] = vd;</div><div class='hunk'>@@ -2736,6 +2796,7 @@ date_s_valid_commercial_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> valid_weeknum_sub(int argc, VALUE *argv, VALUE klass, int need_jd)</div><div class='ctx'> {</div><div class='hunk'>@@ -2767,6 +2828,7 @@ valid_weeknum_sub(int argc, VALUE *argv, VALUE klass, int need_jd)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s__valid_weeknum_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -2787,6 +2849,7 @@ date_s__valid_weeknum_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     return valid_weeknum_sub(5, argv2, klass, 1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_valid_weeknum_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -2838,6 +2901,7 @@ valid_nth_kday_sub(int argc, VALUE *argv, VALUE klass, int need_jd)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s__valid_nth_kday_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -2858,6 +2922,7 @@ date_s__valid_nth_kday_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     return valid_nth_kday_sub(5, argv2, klass, 1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_valid_nth_kday_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -2880,6 +2945,7 @@ date_s_valid_nth_kday_p(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_zone_to_diff(VALUE klass, VALUE str)</div><div class='ctx'> {</div><div class='hunk'>@@ -2889,13 +2955,15 @@ date_s_zone_to_diff(VALUE klass, VALUE str)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.julian_leap?(year)  -&gt;  bool</div><div class='add'>+ *   Date.julian_leap?(year) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if the given year is a leap year</div><div class='add'>+ * in the {proleptic Julian calendar}[https://en.wikipedia.org/wiki/Proleptic_Julian_calendar], +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the given year is a leap year of the proleptic</div><div class='del'>- * Julian calendar.</div><div class='add'>+ *   Date.julian_leap?(1900) # =&gt; true</div><div class='add'>+ *   Date.julian_leap?(1901) # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- *    Date.julian_leap?(1900)		#=&gt; true</div><div class='del'>- *    Date.julian_leap?(1901)		#=&gt; false</div><div class='add'>+ * Related: Date.gregorian_leap?.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_julian_leap_p(VALUE klass, VALUE y)</div><div class='hunk'>@@ -2903,20 +2971,24 @@ date_s_julian_leap_p(VALUE klass, VALUE y)</div><div class='ctx'>     VALUE nth;</div><div class='ctx'>     int ry;</div><div class='ctx'> </div><div class='add'>+    check_numeric(y, "year");</div><div class='ctx'>     decode_year(y, +1, &amp;nth, &amp;ry);</div><div class='ctx'>     return f_boolcast(c_julian_leap_p(ry));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.gregorian_leap?(year)  -&gt;  bool</div><div class='del'>- *    Date.leap?(year)            -&gt;  bool</div><div class='add'>+ *   Date.gregorian_leap?(year) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if the given year is a leap year</div><div class='add'>+ * in the {proleptic Gregorian calendar}[https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar], +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the given year is a leap year of the proleptic</div><div class='del'>- * Gregorian calendar.</div><div class='add'>+ *   Date.gregorian_leap?(2000) # =&gt; true</div><div class='add'>+ *   Date.gregorian_leap?(2001) # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- *    Date.gregorian_leap?(1900)	#=&gt; false</div><div class='del'>- *    Date.gregorian_leap?(2000)	#=&gt; true</div><div class='add'>+ * Date.leap? is an alias for Date.gregorian_leap?.</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.julian_leap?.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_gregorian_leap_p(VALUE klass, VALUE y)</div><div class='hunk'>@@ -2924,6 +2996,7 @@ date_s_gregorian_leap_p(VALUE klass, VALUE y)</div><div class='ctx'>     VALUE nth;</div><div class='ctx'>     int ry;</div><div class='ctx'> </div><div class='add'>+    check_numeric(y, "year");</div><div class='ctx'>     decode_year(y, -1, &amp;nth, &amp;ry);</div><div class='ctx'>     return f_boolcast(c_gregorian_leap_p(ry));</div><div class='ctx'> }</div><div class='hunk'>@@ -2947,11 +3020,15 @@ d_lite_memsize(const void *ptr)</div><div class='ctx'>     return complex_dat_p(dat) ? sizeof(struct ComplexDateData) : sizeof(struct SimpleDateData);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifndef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+#   define RUBY_TYPED_FROZEN_SHAREABLE 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static const rb_data_type_t d_lite_type = {</div><div class='ctx'>     "Date",</div><div class='ctx'>     {d_lite_gc_mark, RUBY_TYPED_DEFAULT_FREE, d_lite_memsize,},</div><div class='ctx'>     0, 0,</div><div class='del'>-    RUBY_TYPED_FREE_IMMEDIATELY|RUBY_TYPED_WB_PROTECTED,</div><div class='add'>+    RUBY_TYPED_FREE_IMMEDIATELY|RUBY_TYPED_WB_PROTECTED|RUBY_TYPED_FROZEN_SHAREABLE,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> inline static VALUE</div><div class='hunk'>@@ -3047,7 +3124,7 @@ old_to_new(VALUE ajd, VALUE of, VALUE sg,</div><div class='ctx'>     *rsg = NUM2DBL(sg);</div><div class='ctx'> </div><div class='ctx'>     if (*rdf &lt; 0 || *rdf &gt;= DAY_IN_SECONDS)</div><div class='del'>-	rb_raise(rb_eArgError, "invalid day fraction");</div><div class='add'>+	rb_raise(eDateError, "invalid day fraction");</div><div class='ctx'> </div><div class='ctx'>     if (f_lt_p(*rsf, INT2FIX(0)) ||</div><div class='ctx'> 	f_ge_p(*rsf, INT2FIX(SECOND_IN_NANOSECONDS)))</div><div class='hunk'>@@ -3064,6 +3141,7 @@ old_to_new(VALUE ajd, VALUE of, VALUE sg,</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_new_bang(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -3209,7 +3287,7 @@ do {\</div><div class='ctx'>     s = s##_trunc(v##s, &amp;fr);\</div><div class='ctx'>     if (f_nonzero_p(fr)) {\</div><div class='ctx'> 	if (argc &gt; n)\</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid fraction");\</div><div class='add'>+	    rb_raise(eDateError, "invalid fraction");\</div><div class='ctx'> 	fr2 = fr;\</div><div class='ctx'>     }\</div><div class='ctx'> } while (0)</div><div class='hunk'>@@ -3219,7 +3297,7 @@ do {\</div><div class='ctx'>     s = NUM2INT(s##_trunc(v##s, &amp;fr));\</div><div class='ctx'>     if (f_nonzero_p(fr)) {\</div><div class='ctx'> 	if (argc &gt; n)\</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid fraction");\</div><div class='add'>+	    rb_raise(eDateError, "invalid fraction");\</div><div class='ctx'> 	fr2 = fr;\</div><div class='ctx'>     }\</div><div class='ctx'> } while (0)</div><div class='hunk'>@@ -3251,16 +3329,29 @@ static VALUE d_lite_plus(VALUE, VALUE);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.jd([jd=0[, start=Date::ITALY]])  -&gt;  date</div><div class='add'>+ *   Date.jd(jd = 0, start = Date::ITALY) -&gt; date</div><div class='add'>+ *</div><div class='add'>+ * Returns a new \Date object formed from the arguments:</div><div class='add'>+ *</div><div class='add'>+ *   Date.jd(2451944).to_s # =&gt; "2001-02-03"</div><div class='add'>+ *   Date.jd(2451945).to_s # =&gt; "2001-02-04"</div><div class='add'>+ *   Date.jd(0).to_s       # =&gt; "-4712-01-01"</div><div class='add'>+ *</div><div class='add'>+ * The returned date is:</div><div class='ctx'>  *</div><div class='del'>- * Creates a date object denoting the given chronological Julian day</div><div class='del'>- * number.</div><div class='add'>+ * - Gregorian, if the argument is greater than or equal to +start+:</div><div class='ctx'>  *</div><div class='del'>- *    Date.jd(2451944)		#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.jd(2451945)		#=&gt; #&lt;Date: 2001-02-04 ...&gt;</div><div class='del'>- *    Date.jd(0)		#=&gt; #&lt;Date: -4712-01-01 ...&gt;</div><div class='add'>+ *     Date::ITALY                         # =&gt; 2299161</div><div class='add'>+ *     Date.jd(Date::ITALY).gregorian?     # =&gt; true</div><div class='add'>+ *     Date.jd(Date::ITALY + 1).gregorian? # =&gt; true</div><div class='ctx'>  *</div><div class='del'>- * See also ::new.</div><div class='add'>+ * - Julian, otherwise</div><div class='add'>+ *</div><div class='add'>+ *     Date.jd(Date::ITALY - 1).julian?    # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.new.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_jd(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -3278,6 +3369,7 @@ date_s_jd(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>       case 2:</div><div class='ctx'> 	val2sg(vsg, sg);</div><div class='ctx'>       case 1:</div><div class='add'>+        check_numeric(vjd, "jd");</div><div class='ctx'> 	num2num_with_frac(jd, positive_inf);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -3298,19 +3390,33 @@ date_s_jd(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.ordinal([year=-4712[, yday=1[, start=Date::ITALY]]])  -&gt;  date</div><div class='add'>+ *   Date.ordinal(year = -4712, yday = 1, start = Date::ITALY) -&gt; date</div><div class='add'>+ *</div><div class='add'>+ * Returns a new \Date object formed fom the arguments.</div><div class='add'>+ *</div><div class='add'>+ * With no arguments, returns the date for January 1, -4712:</div><div class='add'>+ *</div><div class='add'>+ *   Date.ordinal.to_s # =&gt; "-4712-01-01"</div><div class='ctx'>  *</div><div class='del'>- * Creates a date object denoting the given ordinal date.</div><div class='add'>+ * With argument +year+, returns the date for January 1 of that year:</div><div class='ctx'>  *</div><div class='del'>- * The day of year should be a negative or a positive number (as a</div><div class='del'>- * relative day from the end of year when negative).  It should not be</div><div class='del'>- * zero.</div><div class='add'>+ *   Date.ordinal(2001).to_s  # =&gt; "2001-01-01"</div><div class='add'>+ *   Date.ordinal(-2001).to_s # =&gt; "-2001-01-01"</div><div class='ctx'>  *</div><div class='del'>- *    Date.ordinal(2001)	#=&gt; #&lt;Date: 2001-01-01 ...&gt;</div><div class='del'>- *    Date.ordinal(2001,34)	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.ordinal(2001,-1)	#=&gt; #&lt;Date: 2001-12-31 ...&gt;</div><div class='add'>+ * With positive argument +yday+ == +n+,</div><div class='add'>+ * returns the date for the +nth+ day of the given year:</div><div class='ctx'>  *</div><div class='del'>- * See also ::jd and ::new.</div><div class='add'>+ *   Date.ordinal(2001, 14).to_s # =&gt; "2001-01-14"</div><div class='add'>+ *</div><div class='add'>+ * With negative argument +yday+, counts backward from the end of the year:</div><div class='add'>+ *</div><div class='add'>+ *   Date.ordinal(2001, -14).to_s # =&gt; "2001-12-18"</div><div class='add'>+ *</div><div class='add'>+ * Raises an exception if +yday+ is zero or out of range.</div><div class='add'>+ *</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.jd, Date.new.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_ordinal(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -3330,8 +3436,10 @@ date_s_ordinal(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>       case 3:</div><div class='ctx'> 	val2sg(vsg, sg);</div><div class='ctx'>       case 2:</div><div class='add'>+        check_numeric(vd, "yday");</div><div class='ctx'> 	num2int_with_frac(d, positive_inf);</div><div class='ctx'>       case 1:</div><div class='add'>+        check_numeric(vy, "year");</div><div class='ctx'> 	y = vy;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -3343,7 +3451,7 @@ date_s_ordinal(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> 			     &amp;nth, &amp;ry,</div><div class='ctx'> 			     &amp;rd, &amp;rjd,</div><div class='ctx'> 			     &amp;ns))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> </div><div class='ctx'> 	ret = d_simple_new_internal(klass,</div><div class='ctx'> 				     nth, rjd,</div><div class='hunk'>@@ -3356,29 +3464,7 @@ date_s_ordinal(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *    Date.civil([year=-4712[, month=1[, mday=1[, start=Date::ITALY]]]])  -&gt;  date</div><div class='del'>- *    Date.new([year=-4712[, month=1[, mday=1[, start=Date::ITALY]]]])    -&gt;  date</div><div class='del'>- *</div><div class='del'>- * Creates a date object denoting the given calendar date.</div><div class='del'>- *</div><div class='del'>- * In this class, BCE years are counted astronomically.  Thus, the</div><div class='del'>- * year before the year 1 is the year zero, and the year preceding the</div><div class='del'>- * year zero is the year -1.  The month and the day of month should be</div><div class='del'>- * a negative or a positive number (as a relative month/day from the</div><div class='del'>- * end of year/month when negative).  They should not be zero.</div><div class='del'>- *</div><div class='del'>- * The last argument should be a Julian day number which denotes the</div><div class='del'>- * day of calendar reform.  Date::ITALY (2299161=1582-10-15),</div><div class='del'>- * Date::ENGLAND (2361222=1752-09-14), Date::GREGORIAN (the proleptic</div><div class='del'>- * Gregorian calendar) and Date::JULIAN (the proleptic Julian</div><div class='del'>- * calendar) can be specified as a day of calendar reform.</div><div class='del'>- *</div><div class='del'>- *    Date.new(2001)		#=&gt; #&lt;Date: 2001-01-01 ...&gt;</div><div class='del'>- *    Date.new(2001,2,3)	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.new(2001,2,-1)	#=&gt; #&lt;Date: 2001-02-28 ...&gt;</div><div class='del'>- *</div><div class='del'>- * See also ::jd.</div><div class='add'>+ * Same as Date.new.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_civil(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -3386,6 +3472,31 @@ date_s_civil(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     return date_initialize(argc, argv, d_lite_s_alloc_simple(klass));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   Date.new(year = -4712, month = 1, mday = 1, start = Date::ITALY) -&gt; date</div><div class='add'>+ *</div><div class='add'>+ * Returns a new \Date object constructed from the given arguments:</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2022).to_s        # =&gt; "2022-01-01"</div><div class='add'>+ *   Date.new(2022, 2).to_s     # =&gt; "2022-02-01"</div><div class='add'>+ *   Date.new(2022, 2, 4).to_s  # =&gt; "2022-02-04"</div><div class='add'>+ *</div><div class='add'>+ * Argument +month+ should be in range (1..12) or range (-12..-1);</div><div class='add'>+ * when the argument is negative, counts backward from the end of the year:</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2022, -11, 4).to_s # =&gt; "2022-02-04"</div><div class='add'>+ *</div><div class='add'>+ * Argument +mday+ should be in range (1..n) or range (-n..-1)</div><div class='add'>+ * where +n+ is the number of days in the month;</div><div class='add'>+ * when the argument is negative, counts backward from the end of the month.</div><div class='add'>+ *</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ *</div><div class='add'>+ * Date.civil is an alias for Date.new.</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.jd.</div><div class='add'>+ */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -3410,10 +3521,13 @@ date_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>       case 4:</div><div class='ctx'> 	val2sg(vsg, sg);</div><div class='ctx'>       case 3:</div><div class='add'>+        check_numeric(vd, "day");</div><div class='ctx'> 	num2int_with_frac(d, positive_inf);</div><div class='ctx'>       case 2:</div><div class='add'>+        check_numeric(vm, "month");</div><div class='ctx'> 	m = NUM2INT(vm);</div><div class='ctx'>       case 1:</div><div class='add'>+        check_numeric(vy, "year");</div><div class='ctx'> 	y = vy;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -3424,7 +3538,7 @@ date_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	if (!valid_gregorian_p(y, m, d,</div><div class='ctx'> 			       &amp;nth, &amp;ry,</div><div class='ctx'> 			       &amp;rm, &amp;rd))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> </div><div class='ctx'> 	set_to_simple(self, dat, nth, 0, sg, ry, rm, rd, HAVE_CIVIL);</div><div class='ctx'>     }</div><div class='hunk'>@@ -3436,7 +3550,7 @@ date_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 			   &amp;nth, &amp;ry,</div><div class='ctx'> 			   &amp;rm, &amp;rd, &amp;rjd,</div><div class='ctx'> 			   &amp;ns))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> </div><div class='ctx'> 	set_to_simple(self, dat, nth, rjd, sg, ry, rm, rd, HAVE_JD | HAVE_CIVIL);</div><div class='ctx'>     }</div><div class='hunk'>@@ -3447,19 +3561,47 @@ date_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.commercial([cwyear=-4712[, cweek=1[, cwday=1[, start=Date::ITALY]]]])  -&gt;  date</div><div class='add'>+ *   Date.commercial(cwyear = -4712, cweek = 1, cwday = 1, start = Date::ITALY) -&gt; date</div><div class='add'>+ *</div><div class='add'>+ * Returns a new \Date object constructed from the arguments.</div><div class='add'>+ *</div><div class='add'>+ * Argument +cwyear+ gives the year, and should be an integer.</div><div class='add'>+ *</div><div class='add'>+ * Argument +cweek+ gives the index of the week within the year,</div><div class='add'>+ * and should be in range (1..53) or (-53..-1);</div><div class='add'>+ * in some years, 53 or -53 will be out-of-range;</div><div class='add'>+ * if negative, counts backward from the end of the year:</div><div class='add'>+ *</div><div class='add'>+ *   Date.commercial(2022, 1, 1).to_s  # =&gt; "2022-01-03"</div><div class='add'>+ *   Date.commercial(2022, 52, 1).to_s # =&gt; "2022-12-26"</div><div class='ctx'>  *</div><div class='del'>- * Creates a date object denoting the given week date.</div><div class='add'>+ * Argument +cwday+ gives the indes of the weekday within the week,</div><div class='add'>+ * and should be in range (1..7) or (-7..-1);</div><div class='add'>+ * 1 or -7 is Monday;</div><div class='add'>+ * if negative, counts backward from the end of the week:</div><div class='ctx'>  *</div><div class='del'>- * The week and the day of week should be a negative or a positive</div><div class='del'>- * number (as a relative week/day from the end of year/week when</div><div class='del'>- * negative).  They should not be zero.</div><div class='add'>+ *   Date.commercial(2022, 1, 1).to_s  # =&gt; "2022-01-03"</div><div class='add'>+ *   Date.commercial(2022, 1, -7).to_s # =&gt; "2022-01-03"</div><div class='ctx'>  *</div><div class='del'>- *    Date.commercial(2001)	#=&gt; #&lt;Date: 2001-01-01 ...&gt;</div><div class='del'>- *    Date.commercial(2002)	#=&gt; #&lt;Date: 2001-12-31 ...&gt;</div><div class='del'>- *    Date.commercial(2001,5,6)	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='add'>+ * When +cweek+ is 1:</div><div class='ctx'>  *</div><div class='del'>- * See also ::jd and ::new.</div><div class='add'>+ * - If January 1 is a Friday, Saturday, or Sunday,</div><div class='add'>+ *   the first week begins in the week after:</div><div class='add'>+ *</div><div class='add'>+ *     Date::ABBR_DAYNAMES[Date.new(2023, 1, 1).wday] # =&gt; "Sun"</div><div class='add'>+ *     Date.commercial(2023, 1, 1).to_s # =&gt; "2023-01-02"</div><div class='add'>+       Date.commercial(2023, 1, 7).to_s # =&gt; "2023-01-08"</div><div class='add'>+ *</div><div class='add'>+ * - Otherwise, the first week is the week of January 1,</div><div class='add'>+ *   which may mean some of the days fall on the year before:</div><div class='add'>+ *</div><div class='add'>+ *     Date::ABBR_DAYNAMES[Date.new(2020, 1, 1).wday] # =&gt; "Wed"</div><div class='add'>+ *     Date.commercial(2020, 1, 1).to_s # =&gt; "2019-12-30"</div><div class='add'>+       Date.commercial(2020, 1, 7).to_s # =&gt; "2020-01-05"</div><div class='add'>+ *</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.jd, Date.new, Date.ordinal.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_commercial(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -3480,10 +3622,13 @@ date_s_commercial(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>       case 4:</div><div class='ctx'> 	val2sg(vsg, sg);</div><div class='ctx'>       case 3:</div><div class='add'>+        check_numeric(vd, "cwday");</div><div class='ctx'> 	num2int_with_frac(d, positive_inf);</div><div class='ctx'>       case 2:</div><div class='add'>+        check_numeric(vw, "cweek");</div><div class='ctx'> 	w = NUM2INT(vw);</div><div class='ctx'>       case 1:</div><div class='add'>+        check_numeric(vy, "year");</div><div class='ctx'> 	y = vy;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -3495,7 +3640,7 @@ date_s_commercial(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> 				&amp;nth, &amp;ry,</div><div class='ctx'> 				&amp;rw, &amp;rd, &amp;rjd,</div><div class='ctx'> 				&amp;ns))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> </div><div class='ctx'> 	ret = d_simple_new_internal(klass,</div><div class='ctx'> 				    nth, rjd,</div><div class='hunk'>@@ -3508,6 +3653,7 @@ date_s_commercial(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_weeknum(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -3545,7 +3691,7 @@ date_s_weeknum(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> 			     &amp;nth, &amp;ry,</div><div class='ctx'> 			     &amp;rw, &amp;rd, &amp;rjd,</div><div class='ctx'> 			     &amp;ns))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> </div><div class='ctx'> 	ret = d_simple_new_internal(klass,</div><div class='ctx'> 				    nth, rjd,</div><div class='hunk'>@@ -3557,6 +3703,7 @@ date_s_weeknum(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_nth_kday(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -3594,7 +3741,7 @@ date_s_nth_kday(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> 			      &amp;nth, &amp;ry,</div><div class='ctx'> 			      &amp;rm, &amp;rn, &amp;rk, &amp;rjd,</div><div class='ctx'> 			      &amp;ns))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> </div><div class='ctx'> 	ret = d_simple_new_internal(klass,</div><div class='ctx'> 				    nth, rjd,</div><div class='hunk'>@@ -3631,11 +3778,14 @@ static void set_sg(union DateData *, double);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.today([start=Date::ITALY])  -&gt;  date</div><div class='add'>+ *   Date.today(start = Date::ITALY) -&gt; date</div><div class='ctx'>  *</div><div class='del'>- * Creates a date object denoting the present day.</div><div class='add'>+ * Returns a new \Date object constructed from the present date:</div><div class='add'>+ *</div><div class='add'>+ *   Date.today.to_s # =&gt; "2022-07-06"</div><div class='add'>+ *</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='ctx'>  *</div><div class='del'>- *    Date.today   #=&gt; #&lt;Date: 2011-06-11 ...&gt;</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_today(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -3692,7 +3842,7 @@ rt_rewrite_frags(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     VALUE seconds;</div><div class='ctx'> </div><div class='del'>-    seconds = ref_hash("seconds");</div><div class='add'>+    seconds = del_hash("seconds");</div><div class='ctx'>     if (!NIL_P(seconds)) {</div><div class='ctx'> 	VALUE offset, d, h, min, s, fr;</div><div class='ctx'> </div><div class='hunk'>@@ -3717,7 +3867,6 @@ rt_rewrite_frags(VALUE hash)</div><div class='ctx'> 	set_hash("min", min);</div><div class='ctx'> 	set_hash("sec", s);</div><div class='ctx'> 	set_hash("sec_fraction", fr);</div><div class='del'>-	del_hash("seconds");</div><div class='ctx'>     }</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='hunk'>@@ -3735,89 +3884,89 @@ rt_complete_frags(VALUE klass, VALUE hash)</div><div class='ctx'>     VALUE k, a, d;</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(tab)) {</div><div class='del'>-	tab = rb_ary_new3(11,</div><div class='del'>-			  rb_ary_new3(2,</div><div class='add'>+	tab = f_frozen_ary(11,</div><div class='add'>+			  f_frozen_ary(2,</div><div class='ctx'> 				      sym("time"),</div><div class='del'>-				      rb_ary_new3(3,</div><div class='add'>+				      f_frozen_ary(3,</div><div class='ctx'> 						  sym("hour"),</div><div class='ctx'> 						  sym("min"),</div><div class='ctx'> 						  sym("sec"))),</div><div class='del'>-			  rb_ary_new3(2,</div><div class='add'>+			  f_frozen_ary(2,</div><div class='ctx'> 				      Qnil,</div><div class='del'>-				      rb_ary_new3(1,</div><div class='add'>+				      f_frozen_ary(1,</div><div class='ctx'> 						  sym("jd"))),</div><div class='del'>-			  rb_ary_new3(2,</div><div class='add'>+			  f_frozen_ary(2,</div><div class='ctx'> 				      sym("ordinal"),</div><div class='del'>-				      rb_ary_new3(5,</div><div class='add'>+				      f_frozen_ary(5,</div><div class='ctx'> 						  sym("year"),</div><div class='ctx'> 						  sym("yday"),</div><div class='ctx'> 						  sym("hour"),</div><div class='ctx'> 						  sym("min"),</div><div class='ctx'> 						  sym("sec"))),</div><div class='del'>-			  rb_ary_new3(2,</div><div class='add'>+			  f_frozen_ary(2,</div><div class='ctx'> 				      sym("civil"),</div><div class='del'>-				      rb_ary_new3(6,</div><div class='add'>+				      f_frozen_ary(6,</div><div class='ctx'> 						  sym("year"),</div><div class='ctx'> 						  sym("mon"),</div><div class='ctx'> 						  sym("mday"),</div><div class='ctx'> 						  sym("hour"),</div><div class='ctx'> 						  sym("min"),</div><div class='ctx'> 						  sym("sec"))),</div><div class='del'>-			  rb_ary_new3(2,</div><div class='add'>+			  f_frozen_ary(2,</div><div class='ctx'> 				      sym("commercial"),</div><div class='del'>-				      rb_ary_new3(6,</div><div class='add'>+				      f_frozen_ary(6,</div><div class='ctx'> 						  sym("cwyear"),</div><div class='ctx'> 						  sym("cweek"),</div><div class='ctx'> 						  sym("cwday"),</div><div class='ctx'> 						  sym("hour"),</div><div class='ctx'> 						  sym("min"),</div><div class='ctx'> 						  sym("sec"))),</div><div class='del'>-			  rb_ary_new3(2,</div><div class='add'>+			  f_frozen_ary(2,</div><div class='ctx'> 				      sym("wday"),</div><div class='del'>-				      rb_ary_new3(4,</div><div class='add'>+				      f_frozen_ary(4,</div><div class='ctx'> 						  sym("wday"),</div><div class='ctx'> 						  sym("hour"),</div><div class='ctx'> 						  sym("min"),</div><div class='ctx'> 						  sym("sec"))),</div><div class='del'>-			  rb_ary_new3(2,</div><div class='add'>+			  f_frozen_ary(2,</div><div class='ctx'> 				      sym("wnum0"),</div><div class='del'>-				      rb_ary_new3(6,</div><div class='add'>+				      f_frozen_ary(6,</div><div class='ctx'> 						  sym("year"),</div><div class='ctx'> 						  sym("wnum0"),</div><div class='ctx'> 						  sym("wday"),</div><div class='ctx'> 						  sym("hour"),</div><div class='ctx'> 						  sym("min"),</div><div class='ctx'> 						  sym("sec"))),</div><div class='del'>-			  rb_ary_new3(2,</div><div class='add'>+			  f_frozen_ary(2,</div><div class='ctx'> 				      sym("wnum1"),</div><div class='del'>-				      rb_ary_new3(6,</div><div class='add'>+				      f_frozen_ary(6,</div><div class='ctx'> 						  sym("year"),</div><div class='ctx'> 						  sym("wnum1"),</div><div class='ctx'> 						  sym("wday"),</div><div class='ctx'> 						  sym("hour"),</div><div class='ctx'> 						  sym("min"),</div><div class='ctx'> 						  sym("sec"))),</div><div class='del'>-			  rb_ary_new3(2,</div><div class='add'>+			  f_frozen_ary(2,</div><div class='ctx'> 				      Qnil,</div><div class='del'>-				      rb_ary_new3(6,</div><div class='add'>+				      f_frozen_ary(6,</div><div class='ctx'> 						  sym("cwyear"),</div><div class='ctx'> 						  sym("cweek"),</div><div class='ctx'> 						  sym("wday"),</div><div class='ctx'> 						  sym("hour"),</div><div class='ctx'> 						  sym("min"),</div><div class='ctx'> 						  sym("sec"))),</div><div class='del'>-			  rb_ary_new3(2,</div><div class='add'>+			  f_frozen_ary(2,</div><div class='ctx'> 				      Qnil,</div><div class='del'>-				      rb_ary_new3(6,</div><div class='add'>+				      f_frozen_ary(6,</div><div class='ctx'> 						  sym("year"),</div><div class='ctx'> 						  sym("wnum0"),</div><div class='ctx'> 						  sym("cwday"),</div><div class='ctx'> 						  sym("hour"),</div><div class='ctx'> 						  sym("min"),</div><div class='ctx'> 						  sym("sec"))),</div><div class='del'>-			  rb_ary_new3(2,</div><div class='add'>+			  f_frozen_ary(2,</div><div class='ctx'> 				      Qnil,</div><div class='del'>-				      rb_ary_new3(6,</div><div class='add'>+				      f_frozen_ary(6,</div><div class='ctx'> 						  sym("year"),</div><div class='ctx'> 						  sym("wnum1"),</div><div class='ctx'> 						  sym("cwday"),</div><div class='hunk'>@@ -4142,7 +4291,7 @@ d_new_by_frags(VALUE klass, VALUE hash, VALUE sg)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(hash))</div><div class='del'>-	rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	rb_raise(eDateError, "invalid date");</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(ref_hash("jd")) &amp;&amp;</div><div class='ctx'> 	NIL_P(ref_hash("yday")) &amp;&amp;</div><div class='hunk'>@@ -4159,7 +4308,7 @@ d_new_by_frags(VALUE klass, VALUE hash, VALUE sg)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(jd))</div><div class='del'>-	rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	rb_raise(eDateError, "invalid date");</div><div class='ctx'>     {</div><div class='ctx'> 	VALUE nth;</div><div class='ctx'> 	int rjd;</div><div class='hunk'>@@ -4214,12 +4363,10 @@ date_s__strptime_internal(int argc, VALUE *argv, VALUE klass,</div><div class='ctx'> </div><div class='ctx'> 	if (!NIL_P(zone)) {</div><div class='ctx'> 	    rb_enc_copy(zone, vstr);</div><div class='del'>-	    OBJ_INFECT(zone, vstr);</div><div class='ctx'> 	    set_hash("zone", zone);</div><div class='ctx'> 	}</div><div class='ctx'> 	if (!NIL_P(left)) {</div><div class='ctx'> 	    rb_enc_copy(left, vstr);</div><div class='del'>-	    OBJ_INFECT(left, vstr);</div><div class='ctx'> 	    set_hash("leftover", left);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='hunk'>@@ -4229,16 +4376,20 @@ date_s__strptime_internal(int argc, VALUE *argv, VALUE klass,</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date._strptime(string[, format='%F'])  -&gt;  hash</div><div class='add'>+ *   Date._strptime(string, format = '%F') -&gt; hash</div><div class='ctx'>  *</div><div class='del'>- * Parses the given representation of date and time with the given</div><div class='del'>- * template, and returns a hash of parsed elements.  _strptime does</div><div class='del'>- * not support specification of flags and width unlike strftime.</div><div class='add'>+ * Returns a hash of values parsed from +string+</div><div class='add'>+ * according to the given +format+:</div><div class='ctx'>  *</div><div class='del'>- *    Date._strptime('2001-02-03', '%Y-%m-%d')</div><div class='del'>- *				#=&gt; {:year=&gt;2001, :mon=&gt;2, :mday=&gt;3}</div><div class='add'>+ *   Date._strptime('2001-02-03', '%Y-%m-%d') # =&gt; {:year=&gt;2001, :mon=&gt;2, :mday=&gt;3}</div><div class='ctx'>  *</div><div class='del'>- * See also strptime(3) and #strftime.</div><div class='add'>+ * For other formats, see</div><div class='add'>+ * {Formats for Dates and Times}[rdoc-ref:strftime_formatting.rdoc].</div><div class='add'>+ * (Unlike Date.strftime, does not support flags and width.)</div><div class='add'>+ *</div><div class='add'>+ * See also {strptime(3)}[https://man7.org/linux/man-pages/man3/strptime.3.html].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.strptime (returns a \Date object).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s__strptime(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -4248,21 +4399,28 @@ date_s__strptime(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.strptime([string='-4712-01-01'[, format='%F'[, start=Date::ITALY]]])  -&gt;  date</div><div class='add'>+ *   Date.strptime(string = '-4712-01-01', format = '%F', start = Date::ITALY) -&gt; date</div><div class='ctx'>  *</div><div class='del'>- * Parses the given representation of date and time with the given</div><div class='del'>- * template, and creates a date object.  strptime does not support</div><div class='del'>- * specification of flags and width unlike strftime.</div><div class='add'>+ * Returns a new \Date object with values parsed from +string+,</div><div class='add'>+ * according to the given +format+:</div><div class='ctx'>  *</div><div class='del'>- *    Date.strptime('2001-02-03', '%Y-%m-%d')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.strptime('03-02-2001', '%d-%m-%Y')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.strptime('2001-034', '%Y-%j')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.strptime('2001-W05-6', '%G-W%V-%u')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.strptime('2001 04 6', '%Y %U %w')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.strptime('2001 05 6', '%Y %W %u')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.strptime('sat3feb01', '%a%d%b%y')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='add'>+ *   Date.strptime('2001-02-03', '%Y-%m-%d')  # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *   Date.strptime('03-02-2001', '%d-%m-%Y')  # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *   Date.strptime('2001-034', '%Y-%j')       # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *   Date.strptime('2001-W05-6', '%G-W%V-%u') # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *   Date.strptime('2001 04 6', '%Y %U %w')   # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *   Date.strptime('2001 05 6', '%Y %W %u')   # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *   Date.strptime('sat3feb01', '%a%d%b%y')   # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='ctx'>  *</div><div class='del'>- * See also strptime(3) and #strftime.</div><div class='add'>+ * For other formats, see</div><div class='add'>+ * {Formats for Dates and Times}[rdoc-ref:strftime_formatting.rdoc].</div><div class='add'>+ * (Unlike Date.strftime, does not support flags and width.)</div><div class='add'>+ *</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ *</div><div class='add'>+ * See also {strptime(3)}[https://man7.org/linux/man-pages/man3/strptime.3.html].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date._strptime (returns a hash).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_strptime(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -4292,12 +4450,49 @@ date_s_strptime(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> VALUE date__parse(VALUE str, VALUE comp);</div><div class='ctx'> </div><div class='add'>+static size_t</div><div class='add'>+get_limit(VALUE opt)</div><div class='add'>+{</div><div class='add'>+    if (!NIL_P(opt)) {</div><div class='add'>+        VALUE limit = rb_hash_aref(opt, ID2SYM(rb_intern("limit")));</div><div class='add'>+        if (NIL_P(limit)) return SIZE_MAX;</div><div class='add'>+        return NUM2SIZET(limit);</div><div class='add'>+    }</div><div class='add'>+    return 128;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_RB_CATEGORY_WARN</div><div class='add'>+#define rb_category_warn(category, fmt) rb_warn(fmt)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+check_limit(VALUE str, VALUE opt)</div><div class='add'>+{</div><div class='add'>+    size_t slen, limit;</div><div class='add'>+    if (NIL_P(str)) return;</div><div class='add'>+    if (SYMBOL_P(str)) {</div><div class='add'>+	rb_category_warn(RB_WARN_CATEGORY_DEPRECATED,</div><div class='add'>+			 "The ability to parse Symbol is an unintentional bug and is deprecated");</div><div class='add'>+	str = rb_sym2str(str);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    StringValue(str);</div><div class='add'>+    slen = RSTRING_LEN(str);</div><div class='add'>+    limit = get_limit(opt);</div><div class='add'>+    if (slen &gt; limit) {</div><div class='add'>+	rb_raise(rb_eArgError,</div><div class='add'>+		 "string length (%"PRI_SIZE_PREFIX"u) exceeds the limit %"PRI_SIZE_PREFIX"u", slen, limit);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s__parse_internal(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE vstr, vcomp, hash;</div><div class='add'>+    VALUE vstr, vcomp, hash, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "11", &amp;vstr, &amp;vcomp);</div><div class='add'>+    rb_scan_args(argc, argv, "11:", &amp;vstr, &amp;vcomp, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='add'>+    check_limit(vstr, opt);</div><div class='ctx'>     StringValue(vstr);</div><div class='ctx'>     if (!rb_enc_str_asciicompat_p(vstr))</div><div class='ctx'> 	rb_raise(rb_eArgError,</div><div class='hunk'>@@ -4307,32 +4502,37 @@ date_s__parse_internal(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'>     hash = date__parse(vstr, vcomp);</div><div class='ctx'> </div><div class='del'>-    {</div><div class='del'>-	VALUE zone = ref_hash("zone");</div><div class='del'>-</div><div class='del'>-	if (!NIL_P(zone)) {</div><div class='del'>-	    rb_enc_copy(zone, vstr);</div><div class='del'>-	    OBJ_INFECT(zone, vstr);</div><div class='del'>-	    set_hash("zone", zone);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date._parse(string[, comp=true])  -&gt;  hash</div><div class='add'>+ *   Date._parse(string, comp = true, limit: 128) -&gt; hash</div><div class='ctx'>  *</div><div class='del'>- * Parses the given representation of date and time, and returns a</div><div class='del'>- * hash of parsed elements.  This method does not function as a</div><div class='del'>- * validator.</div><div class='add'>+ * &lt;b&gt;Note&lt;/b&gt;:</div><div class='add'>+ * This method recognizes many forms in +string+,</div><div class='add'>+ * but it is not a validator.</div><div class='add'>+ * For formats, see</div><div class='add'>+ * {"Specialized Format Strings" in Formats for Dates and Times}[rdoc-ref:strftime_formatting.rdoc@Specialized+Format+Strings]</div><div class='ctx'>  *</div><div class='del'>- * If the optional second argument is true and the detected year is in</div><div class='del'>- * the range "00" to "99", considers the year a 2-digit form and makes</div><div class='del'>- * it full.</div><div class='add'>+ * If +string+ does not specify a valid date,</div><div class='add'>+ * the result is unpredictable;</div><div class='add'>+ * consider using Date._strptime instead.</div><div class='add'>+ *</div><div class='add'>+ * Returns a hash of values parsed from +string+:</div><div class='add'>+ *</div><div class='add'>+ *   Date._parse('2001-02-03') # =&gt; {:year=&gt;2001, :mon=&gt;2, :mday=&gt;3}</div><div class='add'>+ *</div><div class='add'>+ * If +comp+ is +true+ and the given year is in the range &lt;tt&gt;(0..99)&lt;/tt&gt;,</div><div class='add'>+ * the current century is supplied;</div><div class='add'>+ * otherwise, the year is taken as given:</div><div class='add'>+ *</div><div class='add'>+ *   Date._parse('01-02-03', true)  # =&gt; {:year=&gt;2001, :mon=&gt;2, :mday=&gt;3}</div><div class='add'>+ *   Date._parse('01-02-03', false) # =&gt; {:year=&gt;1, :mon=&gt;2, :mday=&gt;3}</div><div class='add'>+ *</div><div class='add'>+ * See argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='ctx'>  *</div><div class='del'>- *    Date._parse('2001-02-03')	#=&gt; {:year=&gt;2001, :mon=&gt;2, :mday=&gt;3}</div><div class='add'>+ * Related: Date.parse(returns a \Date object).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s__parse(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -4342,25 +4542,44 @@ date_s__parse(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.parse(string='-4712-01-01'[, comp=true[, start=Date::ITALY]])  -&gt;  date</div><div class='add'>+ *   Date.parse(string = '-4712-01-01', comp = true, start = Date::ITALY, limit: 128) -&gt; date</div><div class='ctx'>  *</div><div class='del'>- * Parses the given representation of date and time, and creates a</div><div class='del'>- * date object.  This method does not function as a validator.</div><div class='add'>+ * &lt;b&gt;Note&lt;/b&gt;:</div><div class='add'>+ * This method recognizes many forms in +string+,</div><div class='add'>+ * but it is not a validator.</div><div class='add'>+ * For formats, see</div><div class='add'>+ * {"Specialized Format Strings" in Formats for Dates and Times}[rdoc-ref:strftime_formatting.rdoc@Specialized+Format+Strings]</div><div class='add'>+ * If +string+ does not specify a valid date,</div><div class='add'>+ * the result is unpredictable;</div><div class='add'>+ * consider using Date._strptime instead.</div><div class='ctx'>  *</div><div class='del'>- * If the optional second argument is true and the detected year is in</div><div class='del'>- * the range "00" to "99", considers the year a 2-digit form and makes</div><div class='del'>- * it full.</div><div class='add'>+ * Returns a new \Date object with values parsed from +string+:</div><div class='add'>+ *</div><div class='add'>+ *   Date.parse('2001-02-03')   # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *   Date.parse('20010203')     # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *   Date.parse('3rd Feb 2001') # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *</div><div class='add'>+ * If +comp+ is +true+ and the given year is in the range &lt;tt&gt;(0..99)&lt;/tt&gt;,</div><div class='add'>+ * the current century is supplied;</div><div class='add'>+ * otherwise, the year is taken as given:</div><div class='add'>+ *</div><div class='add'>+ *   Date.parse('01-02-03', true)  # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *   Date.parse('01-02-03', false) # =&gt; #&lt;Date: 0001-02-03&gt;</div><div class='add'>+ *</div><div class='add'>+ * See:</div><div class='add'>+ *</div><div class='add'>+ * - Argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ * - Argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='ctx'>  *</div><div class='del'>- *    Date.parse('2001-02-03')		#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.parse('20010203')		#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.parse('3rd Feb 2001')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='add'>+ * Related: Date._parse (returns a hash).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_parse(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, comp, sg;</div><div class='add'>+    VALUE str, comp, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "03", &amp;str, &amp;comp, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "03:", &amp;str, &amp;comp, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -4372,11 +4591,12 @@ date_s_parse(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE argv2[2], hash;</div><div class='del'>-</div><div class='del'>-	argv2[0] = str;</div><div class='del'>-	argv2[1] = comp;</div><div class='del'>-	hash = date_s__parse(2, argv2, klass);</div><div class='add'>+        int argc2 = 2;</div><div class='add'>+	VALUE argv2[3], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        argv2[1] = comp;</div><div class='add'>+        if (!NIL_P(opt)) argv2[argc2++] = opt;</div><div class='add'>+	hash = date_s__parse(argc2, argv2, klass);</div><div class='ctx'> 	return d_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -4390,33 +4610,56 @@ VALUE date__jisx0301(VALUE);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date._iso8601(string)  -&gt;  hash</div><div class='add'>+ *   Date._iso8601(string, limit: 128) -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ * Returns a hash of values parsed from +string+, which should contain</div><div class='add'>+ * an {ISO 8601 formatted date}[rdoc-ref:strftime_formatting.rdoc@ISO+8601+Format+Specifications]:</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   s = d.iso8601    # =&gt; "2001-02-03"</div><div class='add'>+ *   Date._iso8601(s) # =&gt; {:mday=&gt;3, :year=&gt;2001, :mon=&gt;2}</div><div class='add'>+ *</div><div class='add'>+ * See argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='ctx'>  *</div><div class='del'>- * Returns a hash of parsed elements.</div><div class='add'>+ * Related: Date.iso8601 (returns a \Date object).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-date_s__iso8601(VALUE klass, VALUE str)</div><div class='add'>+date_s__iso8601(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='add'>+    VALUE str, opt;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "1:", &amp;str, &amp;opt);</div><div class='add'>+    check_limit(str, opt);</div><div class='add'>+</div><div class='ctx'>     return date__iso8601(str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.iso8601(string='-4712-01-01'[, start=Date::ITALY])  -&gt;  date</div><div class='add'>+ *   Date.iso8601(string = '-4712-01-01', start = Date::ITALY, limit: 128) -&gt; date</div><div class='ctx'>  *</div><div class='del'>- * Creates a new Date object by parsing from a string according to</div><div class='del'>- * some typical ISO 8601 formats.</div><div class='add'>+ * Returns a new \Date object with values parsed from +string+,</div><div class='add'>+ * which should contain</div><div class='add'>+ * an {ISO 8601 formatted date}[rdoc-ref:strftime_formatting.rdoc@ISO+8601+Format+Specifications]:</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   s = d.iso8601   # =&gt; "2001-02-03"</div><div class='add'>+ *   Date.iso8601(s) # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *</div><div class='add'>+ * See:</div><div class='add'>+ *</div><div class='add'>+ * - Argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ * - Argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='ctx'>  *</div><div class='del'>- *    Date.iso8601('2001-02-03')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.iso8601('20010203')		#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>- *    Date.iso8601('2001-W05-6')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='add'>+ * Related: Date._iso8601 (returns a hash).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_iso8601(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -4426,38 +4669,68 @@ date_s_iso8601(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__iso8601(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        if (!NIL_P(opt)) argv2[argc2++] = opt;</div><div class='add'>+	hash = date_s__iso8601(argc2, argv2, klass);</div><div class='ctx'> 	return d_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date._rfc3339(string)  -&gt;  hash</div><div class='add'>+ *   Date._rfc3339(string, limit: 128) -&gt; hash</div><div class='ctx'>  *</div><div class='del'>- * Returns a hash of parsed elements.</div><div class='add'>+ * Returns a hash of values parsed from +string+, which should be a valid</div><div class='add'>+ * {RFC 3339 format}[rdoc-ref:strftime_formatting.rdoc@RFC+3339+Format]:</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   s = d.rfc3339     # =&gt; "2001-02-03T00:00:00+00:00"</div><div class='add'>+ *   Date._rfc3339(s)</div><div class='add'>+ *   # =&gt; {:year=&gt;2001, :mon=&gt;2, :mday=&gt;3, :hour=&gt;0, :min=&gt;0, :sec=&gt;0, :zone=&gt;"+00:00", :offset=&gt;0}</div><div class='add'>+ *</div><div class='add'>+ * See argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.rfc3339 (returns a \Date object).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-date_s__rfc3339(VALUE klass, VALUE str)</div><div class='add'>+date_s__rfc3339(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='add'>+    VALUE str, opt;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "1:", &amp;str, &amp;opt);</div><div class='add'>+    check_limit(str, opt);</div><div class='add'>+</div><div class='ctx'>     return date__rfc3339(str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.rfc3339(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY])  -&gt;  date</div><div class='add'>+ *   Date.rfc3339(string = '-4712-01-01T00:00:00+00:00', start = Date::ITALY, limit: 128) -&gt; date</div><div class='ctx'>  *</div><div class='del'>- * Creates a new Date object by parsing from a string according to</div><div class='del'>- * some typical RFC 3339 formats.</div><div class='add'>+ * Returns a new \Date object with values parsed from +string+,</div><div class='add'>+ * which should be a valid</div><div class='add'>+ * {RFC 3339 format}[rdoc-ref:strftime_formatting.rdoc@RFC+3339+Format]:</div><div class='ctx'>  *</div><div class='del'>- *    Date.rfc3339('2001-02-03T04:05:06+07:00')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   s = d.rfc3339   # =&gt; "2001-02-03T00:00:00+00:00"</div><div class='add'>+ *   Date.rfc3339(s) # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *</div><div class='add'>+ * See:</div><div class='add'>+ *</div><div class='add'>+ * - Argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ * - Argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date._rfc3339 (returns a hash).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_rfc3339(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -4467,38 +4740,66 @@ date_s_rfc3339(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__rfc3339(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        if (!NIL_P(opt)) argv2[argc2++] = opt;</div><div class='add'>+	hash = date_s__rfc3339(argc2, argv2, klass);</div><div class='ctx'> 	return d_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date._xmlschema(string)  -&gt;  hash</div><div class='add'>+ *   Date._xmlschema(string, limit: 128) -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ * Returns a hash of values parsed from +string+, which should be a valid</div><div class='add'>+ * XML date format:</div><div class='ctx'>  *</div><div class='del'>- * Returns a hash of parsed elements.</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   s = d.xmlschema    # =&gt; "2001-02-03"</div><div class='add'>+ *   Date._xmlschema(s) # =&gt; {:year=&gt;2001, :mon=&gt;2, :mday=&gt;3}</div><div class='add'>+ *</div><div class='add'>+ * See argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.xmlschema (returns a \Date object).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-date_s__xmlschema(VALUE klass, VALUE str)</div><div class='add'>+date_s__xmlschema(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='add'>+    VALUE str, opt;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "1:", &amp;str, &amp;opt);</div><div class='add'>+    check_limit(str, opt);</div><div class='add'>+</div><div class='ctx'>     return date__xmlschema(str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.xmlschema(string='-4712-01-01'[, start=Date::ITALY])  -&gt;  date</div><div class='add'>+ *   Date.xmlschema(string = '-4712-01-01', start = Date::ITALY, limit: 128)  -&gt;  date</div><div class='ctx'>  *</div><div class='del'>- * Creates a new Date object by parsing from a string according to</div><div class='del'>- * some typical XML Schema formats.</div><div class='add'>+ * Returns a new \Date object with values parsed from +string+,</div><div class='add'>+ * which should be a valid XML date format:</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   s = d.xmlschema   # =&gt; "2001-02-03"</div><div class='add'>+ *   Date.xmlschema(s) # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='ctx'>  *</div><div class='del'>- *    Date.xmlschema('2001-02-03')	#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='add'>+ * See:</div><div class='add'>+ *</div><div class='add'>+ * - Argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ * - Argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date._xmlschema (returns a hash).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_xmlschema(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -4508,41 +4809,71 @@ date_s_xmlschema(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__xmlschema(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        if (!NIL_P(opt)) argv2[argc2++] = opt;</div><div class='add'>+	hash = date_s__xmlschema(argc2, argv2, klass);</div><div class='ctx'> 	return d_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date._rfc2822(string)  -&gt;  hash</div><div class='del'>- *    Date._rfc822(string)   -&gt;  hash</div><div class='add'>+ *   Date._rfc2822(string, limit: 128) -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ * Returns a hash of values parsed from +string+, which should be a valid</div><div class='add'>+ * {RFC 2822 date format}[rdoc-ref:strftime_formatting.rdoc@RFC+2822+Format]:</div><div class='ctx'>  *</div><div class='del'>- * Returns a hash of parsed elements.</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   s = d.rfc2822 # =&gt; "Sat, 3 Feb 2001 00:00:00 +0000"</div><div class='add'>+ *   Date._rfc2822(s)</div><div class='add'>+ *   # =&gt; {:wday=&gt;6, :mday=&gt;3, :mon=&gt;2, :year=&gt;2001, :hour=&gt;0, :min=&gt;0, :sec=&gt;0, :zone=&gt;"+0000", :offset=&gt;0}</div><div class='add'>+ *</div><div class='add'>+ * See argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='add'>+ *</div><div class='add'>+ * Date._rfc822 is an alias for Date._rfc2822.</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.rfc2822 (returns a \Date object).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-date_s__rfc2822(VALUE klass, VALUE str)</div><div class='add'>+date_s__rfc2822(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='add'>+    VALUE str, opt;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "1:", &amp;str, &amp;opt);</div><div class='add'>+    check_limit(str, opt);</div><div class='add'>+</div><div class='ctx'>     return date__rfc2822(str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.rfc2822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY])  -&gt;  date</div><div class='del'>- *    Date.rfc822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY])   -&gt;  date</div><div class='add'>+ *   Date.rfc2822(string = 'Mon, 1 Jan -4712 00:00:00 +0000', start = Date::ITALY, limit: 128) -&gt; date</div><div class='ctx'>  *</div><div class='del'>- * Creates a new Date object by parsing from a string according to</div><div class='del'>- * some typical RFC 2822 formats.</div><div class='add'>+ * Returns a new \Date object with values parsed from +string+,</div><div class='add'>+ * which should be a valid</div><div class='add'>+ * {RFC 2822 date format}[rdoc-ref:strftime_formatting.rdoc@RFC+2822+Format]:</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   s = d.rfc2822   # =&gt; "Sat, 3 Feb 2001 00:00:00 +0000"</div><div class='add'>+ *   Date.rfc2822(s) # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='ctx'>  *</div><div class='del'>- *    Date.rfc2822('Sat, 3 Feb 2001 00:00:00 +0000')</div><div class='del'>- *						#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='add'>+ * See:</div><div class='add'>+ *</div><div class='add'>+ * - Argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ * - Argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='add'>+ *</div><div class='add'>+ * Date.rfc822 is an alias for Date.rfc2822.</div><div class='add'>+ *</div><div class='add'>+ * Related: Date._rfc2822 (returns a hash).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_rfc2822(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -4552,39 +4883,65 @@ date_s_rfc2822(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__rfc2822(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        if (!NIL_P(opt)) argv2[argc2++] = opt;</div><div class='add'>+	hash = date_s__rfc2822(argc2, argv2, klass);</div><div class='ctx'> 	return d_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date._httpdate(string)  -&gt;  hash</div><div class='add'>+ *   Date._httpdate(string, limit: 128) -&gt; hash</div><div class='ctx'>  *</div><div class='del'>- * Returns a hash of parsed elements.</div><div class='add'>+ * Returns a hash of values parsed from +string+, which should be a valid</div><div class='add'>+ * {HTTP date format}[rdoc-ref:strftime_formatting.rdoc@HTTP+Format]:</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   s = d.httpdate # =&gt; "Sat, 03 Feb 2001 00:00:00 GMT"</div><div class='add'>+ *   Date._httpdate(s)</div><div class='add'>+ *   # =&gt; {:wday=&gt;6, :mday=&gt;3, :mon=&gt;2, :year=&gt;2001, :hour=&gt;0, :min=&gt;0, :sec=&gt;0, :zone=&gt;"GMT", :offset=&gt;0}</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.httpdate (returns a \Date object).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-date_s__httpdate(VALUE klass, VALUE str)</div><div class='add'>+date_s__httpdate(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='add'>+    VALUE str, opt;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "1:", &amp;str, &amp;opt);</div><div class='add'>+    check_limit(str, opt);</div><div class='add'>+</div><div class='ctx'>     return date__httpdate(str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.httpdate(string='Mon, 01 Jan -4712 00:00:00 GMT'[, start=Date::ITALY])  -&gt;  date</div><div class='add'>+ *   Date.httpdate(string = 'Mon, 01 Jan -4712 00:00:00 GMT', start = Date::ITALY, limit: 128) -&gt; date</div><div class='ctx'>  *</div><div class='del'>- * Creates a new Date object by parsing from a string according to</div><div class='del'>- * some RFC 2616 format.</div><div class='add'>+ * Returns a new \Date object with values parsed from +string+,</div><div class='add'>+ * which should be a valid</div><div class='add'>+ * {HTTP date format}[rdoc-ref:strftime_formatting.rdoc@HTTP+Format]:</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+     s = d.httpdate   # =&gt; "Sat, 03 Feb 2001 00:00:00 GMT"</div><div class='add'>+     Date.httpdate(s) # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *</div><div class='add'>+ * See:</div><div class='ctx'>  *</div><div class='del'>- *    Date.httpdate('Sat, 03 Feb 2001 00:00:00 GMT')</div><div class='del'>- *						#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='add'>+ * - Argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ * - Argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date._httpdate (returns a hash).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_httpdate(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -4594,38 +4951,70 @@ date_s_httpdate(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__httpdate(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        if (!NIL_P(opt)) argv2[argc2++] = opt;</div><div class='add'>+	hash = date_s__httpdate(argc2, argv2, klass);</div><div class='ctx'> 	return d_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date._jisx0301(string)  -&gt;  hash</div><div class='add'>+ *   Date._jisx0301(string, limit: 128) -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ * Returns a hash of values parsed from +string+, which should be a valid</div><div class='add'>+ * {JIS X 0301 date format}[rdoc-ref:strftime_formatting.rdoc@JIS+X+0301+Format]:</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   s = d.jisx0301    # =&gt; "H13.02.03"</div><div class='add'>+ *   Date._jisx0301(s) # =&gt; {:year=&gt;2001, :mon=&gt;2, :mday=&gt;3}</div><div class='ctx'>  *</div><div class='del'>- * Returns a hash of parsed elements.</div><div class='add'>+ * See argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date.jisx0301 (returns a \Date object).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-date_s__jisx0301(VALUE klass, VALUE str)</div><div class='add'>+date_s__jisx0301(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='add'>+    VALUE str, opt;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "1:", &amp;str, &amp;opt);</div><div class='add'>+    check_limit(str, opt);</div><div class='add'>+</div><div class='ctx'>     return date__jisx0301(str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    Date.jisx0301(string='-4712-01-01'[, start=Date::ITALY])  -&gt;  date</div><div class='add'>+ *   Date.jisx0301(string = '-4712-01-01', start = Date::ITALY, limit: 128) -&gt; date</div><div class='ctx'>  *</div><div class='del'>- * Creates a new Date object by parsing from a string according to</div><div class='del'>- * some typical JIS X 0301 formats.</div><div class='add'>+ * Returns a new \Date object with values parsed from +string+,</div><div class='add'>+ * which should be a valid {JIS X 0301 format}[rdoc-ref:strftime_formatting.rdoc@JIS+X+0301+Format]:</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   s = d.jisx0301   # =&gt; "H13.02.03"</div><div class='add'>+ *   Date.jisx0301(s) # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *</div><div class='add'>+ * For no-era year, legacy format, Heisei is assumed.</div><div class='ctx'>  *</div><div class='del'>- *    Date.jisx0301('H13.02.03')		#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='add'>+ *   Date.jisx0301('13.02.03') # =&gt; #&lt;Date: 2001-02-03&gt;</div><div class='add'>+ *</div><div class='add'>+ * See:</div><div class='add'>+ *</div><div class='add'>+ * - Argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='add'>+ * - Argument {limit}[rdoc-ref:Date@Argument+limit].</div><div class='add'>+ *</div><div class='add'>+ * Related: Date._jisx0301 (returns a hash).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_jisx0301(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -4635,7 +5024,11 @@ date_s_jisx0301(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__jisx0301(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        if (!NIL_P(opt)) argv2[argc2++] = opt;</div><div class='add'>+	hash = date_s__jisx0301(argc2, argv2, klass);</div><div class='ctx'> 	return d_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -4709,7 +5102,6 @@ d_lite_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     double sg;</div><div class='ctx'> </div><div class='ctx'>     rb_check_frozen(self);</div><div class='del'>-    rb_check_trusted(self);</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "05", &amp;vjd, &amp;vdf, &amp;vsf, &amp;vof, &amp;vsg);</div><div class='ctx'> </div><div class='hunk'>@@ -4728,11 +5120,11 @@ d_lite_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	sf = vsf;</div><div class='ctx'> 	if (f_lt_p(sf, INT2FIX(0)) ||</div><div class='ctx'> 	    f_ge_p(sf, INT2FIX(SECOND_IN_NANOSECONDS)))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid second fraction");</div><div class='add'>+	    rb_raise(eDateError, "invalid second fraction");</div><div class='ctx'>       case 2:</div><div class='ctx'> 	df = NUM2INT(vdf);</div><div class='ctx'> 	if (df &lt; 0 || df &gt;= DAY_IN_SECONDS)</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid day fraction");</div><div class='add'>+	    rb_raise(eDateError, "invalid day fraction");</div><div class='ctx'>       case 1:</div><div class='ctx'> 	jd = vjd;</div><div class='ctx'>     }</div><div class='hunk'>@@ -4765,7 +5157,6 @@ static VALUE</div><div class='ctx'> d_lite_initialize_copy(VALUE copy, VALUE date)</div><div class='ctx'> {</div><div class='ctx'>     rb_check_frozen(copy);</div><div class='del'>-    rb_check_trusted(copy);</div><div class='ctx'> </div><div class='ctx'>     if (copy == date)</div><div class='ctx'> 	return copy;</div><div class='hunk'>@@ -4807,6 +5198,7 @@ d_lite_initialize_copy(VALUE copy, VALUE date)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_fill(VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -4896,12 +5288,15 @@ d_lite_mjd(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.ld  -&gt;  integer</div><div class='add'>+ *   ld -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- * Returns the Lilian day number.  This is a whole number, which is</div><div class='del'>- * adjusted by the offset as the local time.</div><div class='add'>+ * Returns the</div><div class='add'>+ * {Lilian day number}[https://en.wikipedia.org/wiki/Lilian_date],</div><div class='add'>+ * which is the number of days since the beginning of the Gregorian</div><div class='add'>+ * calendar, October 15, 1582.</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).ld # =&gt; 152784</div><div class='ctx'>  *</div><div class='del'>- *     Date.new(2001,2,3).ld		#=&gt; 152784</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_ld(VALUE self)</div><div class='hunk'>@@ -4912,12 +5307,13 @@ d_lite_ld(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.year  -&gt;  integer</div><div class='add'>+ *   year -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- * Returns the year.</div><div class='add'>+ * Returns the year:</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).year    # =&gt; 2001</div><div class='add'>+ *   (Date.new(1, 1, 1) - 1).year # =&gt; 0</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3).year		#=&gt; 2001</div><div class='del'>- *    (Date.new(1,1,1) - 1).year	#=&gt; 0</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_year(VALUE self)</div><div class='hunk'>@@ -4928,11 +5324,12 @@ d_lite_year(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.yday  -&gt;  fixnum</div><div class='add'>+ *   yday -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ * Returns the day of the year, in range (1..366):</div><div class='ctx'>  *</div><div class='del'>- * Returns the day of the year (1-366).</div><div class='add'>+ *   Date.new(2001, 2, 3).yday # =&gt; 34</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3).yday		#=&gt; 34</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_yday(VALUE self)</div><div class='hunk'>@@ -4943,12 +5340,13 @@ d_lite_yday(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.mon    -&gt;  fixnum</div><div class='del'>- *    d.month  -&gt;  fixnum</div><div class='add'>+ *   mon -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ * Returns the month in range (1..12):</div><div class='ctx'>  *</div><div class='del'>- * Returns the month (1-12).</div><div class='add'>+ *   Date.new(2001, 2, 3).mon # =&gt; 2</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3).mon		#=&gt; 2</div><div class='add'>+ * Date#month is an alias for Date#mon.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_mon(VALUE self)</div><div class='hunk'>@@ -4959,12 +5357,13 @@ d_lite_mon(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.mday  -&gt;  fixnum</div><div class='del'>- *    d.day   -&gt;  fixnum</div><div class='add'>+ *   mday -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- * Returns the day of the month (1-31).</div><div class='add'>+ * Returns the day of the month in range (1..31):</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3).mday		#=&gt; 3</div><div class='add'>+ *   Date.new(2001, 2, 3).mday # =&gt; 3</div><div class='add'>+ *</div><div class='add'>+ * Date#day is an alias for Date#mday.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_mday(VALUE self)</div><div class='hunk'>@@ -4975,11 +5374,12 @@ d_lite_mday(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.day_fraction  -&gt;  rational</div><div class='add'>+ *   day_fraction -&gt; rational</div><div class='add'>+ *</div><div class='add'>+ * Returns the fractional part of the day in range (Rational(0, 1)...Rational(1, 1)):</div><div class='ctx'>  *</div><div class='del'>- * Returns the fractional part of the day.</div><div class='add'>+ *   DateTime.new(2001,2,3,12).day_fraction # =&gt; (1/2)</div><div class='ctx'>  *</div><div class='del'>- *    DateTime.new(2001,2,3,12).day_fraction	#=&gt; (1/2)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_day_fraction(VALUE self)</div><div class='hunk'>@@ -4992,12 +5392,14 @@ d_lite_day_fraction(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.cwyear  -&gt;  integer</div><div class='add'>+ *   cwyear -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ * Returns commercial-date year for +self+</div><div class='add'>+ * (see Date.commercial):</div><div class='ctx'>  *</div><div class='del'>- * Returns the calendar week based year.</div><div class='add'>+ *   Date.new(2001, 2, 3).cwyear # =&gt; 2001</div><div class='add'>+ *   Date.new(2000, 1, 1).cwyear # =&gt; 1999</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3).cwyear		#=&gt; 2001</div><div class='del'>- *    Date.new(2000,1,1).cwyear		#=&gt; 1999</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_cwyear(VALUE self)</div><div class='hunk'>@@ -5008,11 +5410,13 @@ d_lite_cwyear(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.cweek  -&gt;  fixnum</div><div class='add'>+ *   cweek -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- * Returns the calendar week number (1-53).</div><div class='add'>+ * Returns commercial-date week index for +self+</div><div class='add'>+ * (see Date.commercial):</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).cweek # =&gt; 5</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3).cweek		#=&gt; 5</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_cweek(VALUE self)</div><div class='hunk'>@@ -5023,11 +5427,14 @@ d_lite_cweek(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.cwday  -&gt;  fixnum</div><div class='add'>+ *   cwday -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ * Returns the commercial-date weekday index for +self+</div><div class='add'>+ * (see Date.commercial);</div><div class='add'>+ * 1 is Monday:</div><div class='ctx'>  *</div><div class='del'>- * Returns the day of calendar week (1-7, Monday is 1).</div><div class='add'>+ *   Date.new(2001, 2, 3).cwday # =&gt; 6</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3).cwday		#=&gt; 6</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_cwday(VALUE self)</div><div class='hunk'>@@ -5037,6 +5444,7 @@ d_lite_cwday(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_wnum0(VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -5044,6 +5452,7 @@ d_lite_wnum0(VALUE self)</div><div class='ctx'>     return INT2FIX(m_wnum0(dat));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_wnum1(VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -5054,11 +5463,12 @@ d_lite_wnum1(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.wday  -&gt;  fixnum</div><div class='add'>+ *   wday -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- * Returns the day of week (0-6, Sunday is zero).</div><div class='add'>+ * Returns the day of week in range (0..6); Sunday is 0:</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).wday # =&gt; 6</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3).wday		#=&gt; 6</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_wday(VALUE self)</div><div class='hunk'>@@ -5069,9 +5479,9 @@ d_lite_wday(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.sunday?  -&gt;  bool</div><div class='add'>+ *   sunday? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the date is Sunday.</div><div class='add'>+ * Returns +true+ if +self+ is a Sunday, +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_sunday_p(VALUE self)</div><div class='hunk'>@@ -5082,9 +5492,9 @@ d_lite_sunday_p(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.monday?  -&gt;  bool</div><div class='add'>+ *   monday? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the date is Monday.</div><div class='add'>+ * Returns +true+ if +self+ is a Monday, +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_monday_p(VALUE self)</div><div class='hunk'>@@ -5095,9 +5505,9 @@ d_lite_monday_p(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.tuesday?  -&gt;  bool</div><div class='add'>+ *   tuesday? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the date is Tuesday.</div><div class='add'>+ * Returns +true+ if +self+ is a Tuesday, +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_tuesday_p(VALUE self)</div><div class='hunk'>@@ -5108,9 +5518,9 @@ d_lite_tuesday_p(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.wednesday?  -&gt;  bool</div><div class='add'>+ *   wednesday? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the date is Wednesday.</div><div class='add'>+ * Returns +true+ if +self+ is a Wednesday, +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_wednesday_p(VALUE self)</div><div class='hunk'>@@ -5121,9 +5531,9 @@ d_lite_wednesday_p(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.thursday?  -&gt;  bool</div><div class='add'>+ *   thursday? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the date is Thursday.</div><div class='add'>+ * Returns +true+ if +self+ is a Thursday, +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_thursday_p(VALUE self)</div><div class='hunk'>@@ -5134,9 +5544,9 @@ d_lite_thursday_p(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.friday?  -&gt;  bool</div><div class='add'>+ *   friday? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the date is Friday.</div><div class='add'>+ * Returns +true+ if +self+ is a Friday, +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_friday_p(VALUE self)</div><div class='hunk'>@@ -5147,9 +5557,9 @@ d_lite_friday_p(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.saturday?  -&gt;  bool</div><div class='add'>+ *   saturday? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the date is Saturday.</div><div class='add'>+ * Returns +true+ if +self+ is a Saturday, +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_saturday_p(VALUE self)</div><div class='hunk'>@@ -5159,6 +5569,7 @@ d_lite_saturday_p(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_nth_kday_p(VALUE self, VALUE n, VALUE k)</div><div class='ctx'> {</div><div class='hunk'>@@ -5180,11 +5591,12 @@ d_lite_nth_kday_p(VALUE self, VALUE n, VALUE k)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.hour  -&gt;  fixnum</div><div class='add'>+ *   hour -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ * Returns the hour in range (0..23):</div><div class='ctx'>  *</div><div class='del'>- * Returns the hour (0-23).</div><div class='add'>+ *   DateTime.new(2001, 2, 3, 4, 5, 6).hour # =&gt; 4</div><div class='ctx'>  *</div><div class='del'>- *    DateTime.new(2001,2,3,4,5,6).hour		#=&gt; 4</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_hour(VALUE self)</div><div class='hunk'>@@ -5195,12 +5607,13 @@ d_lite_hour(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.min     -&gt;  fixnum</div><div class='del'>- *    d.minute  -&gt;  fixnum</div><div class='add'>+ *   min -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- * Returns the minute (0-59).</div><div class='add'>+ * Returns the minute in range (0..59):</div><div class='ctx'>  *</div><div class='del'>- *    DateTime.new(2001,2,3,4,5,6).min		#=&gt; 5</div><div class='add'>+ *   DateTime.new(2001, 2, 3, 4, 5, 6).min # =&gt; 5</div><div class='add'>+ *</div><div class='add'>+ * Date#minute is an alias for Date#min.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_min(VALUE self)</div><div class='hunk'>@@ -5211,12 +5624,13 @@ d_lite_min(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.sec     -&gt;  fixnum</div><div class='del'>- *    d.second  -&gt;  fixnum</div><div class='add'>+ *   sec -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ * Returns the second in range (0..59):</div><div class='ctx'>  *</div><div class='del'>- * Returns the second (0-59).</div><div class='add'>+ *   DateTime.new(2001, 2, 3, 4, 5, 6).sec # =&gt; 6</div><div class='ctx'>  *</div><div class='del'>- *    DateTime.new(2001,2,3,4,5,6).sec		#=&gt; 6</div><div class='add'>+ * Date#second is an alias for Date#sec.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_sec(VALUE self)</div><div class='hunk'>@@ -5227,12 +5641,14 @@ d_lite_sec(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.sec_fraction     -&gt;  rational</div><div class='del'>- *    d.second_fraction  -&gt;  rational</div><div class='add'>+ *   sec_fraction -&gt; rational</div><div class='add'>+ *</div><div class='add'>+ * Returns the fractional part of the second in range</div><div class='add'>+ * (Rational(0, 1)...Rational(1, 1)):</div><div class='ctx'>  *</div><div class='del'>- * Returns the fractional part of the second.</div><div class='add'>+ *   DateTime.new(2001, 2, 3, 4, 5, 6.5).sec_fraction # =&gt; (1/2)</div><div class='ctx'>  *</div><div class='del'>- *    DateTime.new(2001,2,3,4,5,6.5).sec_fraction	#=&gt; (1/2)</div><div class='add'>+ * Date#second_fraction is an alias for Date#sec_fraction.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_sec_fraction(VALUE self)</div><div class='hunk'>@@ -5273,12 +5689,14 @@ d_lite_zone(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.julian?  -&gt;  bool</div><div class='add'>+ *   d.julian? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the date is before the day of calendar reform.</div><div class='add'>+ * Returns +true+ if the date is before the date of calendar reform,</div><div class='add'>+ * +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *   (Date.new(1582, 10, 15) - 1).julian? # =&gt; true</div><div class='add'>+ *   Date.new(1582, 10, 15).julian?       # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- *     Date.new(1582,10,15).julian?		#=&gt; false</div><div class='del'>- *     (Date.new(1582,10,15) - 1).julian?	#=&gt; true</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_julian_p(VALUE self)</div><div class='hunk'>@@ -5289,12 +5707,14 @@ d_lite_julian_p(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.gregorian?  -&gt;  bool</div><div class='add'>+ *   gregorian? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if the date is on or after</div><div class='add'>+ * the date of calendar reform, +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the date is on or after the day of calendar reform.</div><div class='add'>+ *   Date.new(1582, 10, 15).gregorian?       # =&gt; true</div><div class='add'>+ *   (Date.new(1582, 10, 15) - 1).gregorian? # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- *     Date.new(1582,10,15).gregorian?		#=&gt; true</div><div class='del'>- *     (Date.new(1582,10,15) - 1).gregorian?	#=&gt; false</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_gregorian_p(VALUE self)</div><div class='hunk'>@@ -5305,12 +5725,13 @@ d_lite_gregorian_p(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.leap?  -&gt;  bool</div><div class='add'>+ *   leap? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if the year is a leap year, +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- * Returns true if the year is a leap year.</div><div class='add'>+ *   Date.new(2000).leap? # =&gt; true</div><div class='add'>+ *   Date.new(2001).leap? # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2000).leap?	#=&gt; true</div><div class='del'>- *    Date.new(2001).leap?	#=&gt; false</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_leap_p(VALUE self)</div><div class='hunk'>@@ -5329,12 +5750,25 @@ d_lite_leap_p(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.start  -&gt;  float</div><div class='add'>+ *   start -&gt; float</div><div class='ctx'>  *</div><div class='del'>- * Returns the Julian day number denoting the day of calendar reform.</div><div class='add'>+ * Returns the Julian start date for calendar reform;</div><div class='add'>+ * if not an infinity, the returned value is suitable</div><div class='add'>+ * for passing to Date#jd:</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3, Date::ITALY)</div><div class='add'>+ *   s = d.start     # =&gt; 2299161.0</div><div class='add'>+ *   Date.jd(s).to_s # =&gt; "1582-10-15"</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3, Date::ENGLAND)</div><div class='add'>+ *   s = d.start     # =&gt; 2361222.0</div><div class='add'>+ *   Date.jd(s).to_s # =&gt; "1752-09-14"</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3, Date::GREGORIAN).start # =&gt; -Infinity</div><div class='add'>+ *   Date.new(2001, 2, 3, Date::JULIAN).start    # =&gt; Infinity</div><div class='add'>+ *</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3).start			#=&gt; 2299161.0</div><div class='del'>- *    Date.new(2001,2,3,Date::GREGORIAN).start	#=&gt; -Infinity</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_start(VALUE self)</div><div class='hunk'>@@ -5399,12 +5833,17 @@ dup_obj_with_new_start(VALUE obj, double sg)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.new_start([start=Date::ITALY])  -&gt;  date</div><div class='add'>+ *   new_start(start = Date::ITALY]) -&gt; new_date</div><div class='ctx'>  *</div><div class='del'>- * Duplicates self and resets its day of calendar reform.</div><div class='add'>+ * Returns a copy of +self+ with the given +start+ value:</div><div class='add'>+ *</div><div class='add'>+ *   d0 = Date.new(2000, 2, 3)</div><div class='add'>+ *   d0.julian? # =&gt; false</div><div class='add'>+ *   d1 = d0.new_start(Date::JULIAN)</div><div class='add'>+ *   d1.julian? # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ * See argument {start}[rdoc-ref:calendars.rdoc@Argument+start].</div><div class='ctx'>  *</div><div class='del'>- *    d = Date.new(1582,10,15)</div><div class='del'>- *    d.new_start(Date::JULIAN)		#=&gt; #&lt;Date: 1582-10-05 ...&gt;</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_new_start(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -5423,9 +5862,10 @@ d_lite_new_start(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.italy  -&gt;  date</div><div class='add'>+ *   italy -&gt; new_date</div><div class='add'>+ *</div><div class='add'>+ * Equivalent to Date#new_start with argument Date::ITALY.</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to new_start(Date::ITALY).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_italy(VALUE self)</div><div class='hunk'>@@ -5435,9 +5875,9 @@ d_lite_italy(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.england  -&gt;  date</div><div class='add'>+ *   england -&gt; new_date</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to new_start(Date::ENGLAND).</div><div class='add'>+ * Equivalent to Date#new_start with argument Date::ENGLAND.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_england(VALUE self)</div><div class='hunk'>@@ -5447,9 +5887,9 @@ d_lite_england(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.julian  -&gt;  date</div><div class='add'>+ *   julian -&gt; new_date</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to new_start(Date::JULIAN).</div><div class='add'>+ * Equivalent to Date#new_start with argument Date::JULIAN.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_julian(VALUE self)</div><div class='hunk'>@@ -5459,9 +5899,9 @@ d_lite_julian(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.gregorian  -&gt;  date</div><div class='add'>+ *   gregorian -&gt; new_date</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to new_start(Date::GREGORIAN).</div><div class='add'>+ * Equivalent to Date#new_start with argument Date::GREGORIAN.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_gregorian(VALUE self)</div><div class='hunk'>@@ -5942,9 +6382,9 @@ d_lite_minus(VALUE self, VALUE other)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.next_day([n=1])  -&gt;  date</div><div class='add'>+ *   next_day(n = 1) -&gt; new_date</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to d + n.</div><div class='add'>+ * Equivalent to Date#+ with argument +n+.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_next_day(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -5959,9 +6399,9 @@ d_lite_next_day(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.prev_day([n=1])  -&gt;  date</div><div class='add'>+ *   prev_day(n = 1) -&gt; new_date</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to d - n.</div><div class='add'>+ * Equivalent to Date#- with argument +n+.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_prev_day(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -5976,10 +6416,15 @@ d_lite_prev_day(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.succ  -&gt;  date</div><div class='del'>- *    d.next  -&gt;  date</div><div class='add'>+ *   d.next -&gt; new_date</div><div class='ctx'>  *</div><div class='del'>- * Returns a date object denoting the following day.</div><div class='add'>+ * Returns a new \Date object representing the following day:</div><div class='add'>+ *</div><div class='add'>+ *   d = Date.new(2001, 2, 3)</div><div class='add'>+ *   d.to_s      # =&gt; "2001-02-03"</div><div class='add'>+ *   d.next.to_s # =&gt; "2001-02-04"</div><div class='add'>+ *</div><div class='add'>+ * Date#succ is an alias for Date#next.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_next(VALUE self)</div><div class='hunk'>@@ -5989,26 +6434,30 @@ d_lite_next(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d &gt;&gt; n  -&gt;  date</div><div class='add'>+ *   d &gt;&gt; n -&gt; new_date</div><div class='add'>+ *</div><div class='add'>+ * Returns a new \Date object representing the date</div><div class='add'>+ * +n+ months later; +n+ should be a numeric:</div><div class='ctx'>  *</div><div class='del'>- * Returns a date object pointing +n+ months after self.</div><div class='del'>- * The argument +n+ should be a numeric value.</div><div class='add'>+ *   (Date.new(2001, 2, 3) &gt;&gt; 1).to_s  # =&gt; "2001-03-03"</div><div class='add'>+ *   (Date.new(2001, 2, 3) &gt;&gt; -2).to_s # =&gt; "2000-12-03"</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3)  &gt;&gt;  1   #=&gt; #&lt;Date: 2001-03-03 ...&gt;</div><div class='del'>- *    Date.new(2001,2,3)  &gt;&gt; -2   #=&gt; #&lt;Date: 2000-12-03 ...&gt;</div><div class='add'>+ * When the same day does not exist for the new month,</div><div class='add'>+ * the last day of that month is used instead:</div><div class='ctx'>  *</div><div class='del'>- * When the same day does not exist for the corresponding month,</div><div class='del'>- * the last day of the month is used instead:</div><div class='add'>+ *   (Date.new(2001, 1, 31) &gt;&gt; 1).to_s  # =&gt; "2001-02-28"</div><div class='add'>+ *   (Date.new(2001, 1, 31) &gt;&gt; -4).to_s # =&gt; "2000-09-30"</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,1,28) &gt;&gt; 1   #=&gt; #&lt;Date: 2001-02-28 ...&gt;</div><div class='del'>- *    Date.new(2001,1,31) &gt;&gt; 1   #=&gt; #&lt;Date: 2001-02-28 ...&gt;</div><div class='add'>+ * This results in the following, possibly unexpected, behaviors:</div><div class='ctx'>  *</div><div class='del'>- * This also results in the following, possibly unexpected, behavior:</div><div class='add'>+ *   d0 = Date.new(2001, 1, 31)</div><div class='add'>+ *   d1 = d0 &gt;&gt; 1 # =&gt; #&lt;Date: 2001-02-28&gt;</div><div class='add'>+ *   d2 = d1 &gt;&gt; 1 # =&gt; #&lt;Date: 2001-03-28&gt;</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,1,31) &gt;&gt; 2         #=&gt; #&lt;Date: 2001-03-31 ...&gt;</div><div class='del'>- *    Date.new(2001,1,31) &gt;&gt; 1 &gt;&gt; 1    #=&gt; #&lt;Date: 2001-03-28 ...&gt;</div><div class='add'>+ *   d0 = Date.new(2001, 1, 31)</div><div class='add'>+ *   d1 = d0 &gt;&gt; 1  # =&gt; #&lt;Date: 2001-02-28&gt;</div><div class='add'>+ *   d2 = d1 &gt;&gt; -1 # =&gt; #&lt;Date: 2001-01-28&gt;</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,1,31) &gt;&gt; 1 &gt;&gt; -1   #=&gt; #&lt;Date: 2001-01-28 ...&gt;</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_rshift(VALUE self, VALUE other)</div><div class='hunk'>@@ -6043,7 +6492,7 @@ d_lite_rshift(VALUE self, VALUE other)</div><div class='ctx'> 			  &amp;rm, &amp;rd, &amp;rjd, &amp;ns))</div><div class='ctx'> 	    break;</div><div class='ctx'> 	if (--d &lt; 1)</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'>     }</div><div class='ctx'>     encode_jd(nth, rjd, &amp;rjd2);</div><div class='ctx'>     return d_lite_plus(self, f_sub(rjd2, m_real_local_jd(dat)));</div><div class='hunk'>@@ -6053,24 +6502,28 @@ d_lite_rshift(VALUE self, VALUE other)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    d &lt;&lt; n  -&gt;  date</div><div class='ctx'>  *</div><div class='del'>- * Returns a date object pointing +n+ months before self.</div><div class='del'>- * The argument +n+ should be a numeric value.</div><div class='add'>+ * Returns a new \Date object representing the date</div><div class='add'>+ * +n+ months earlier; +n+ should be a numeric:</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3)  &lt;&lt;  1   #=&gt; #&lt;Date: 2001-01-03 ...&gt;</div><div class='del'>- *    Date.new(2001,2,3)  &lt;&lt; -2   #=&gt; #&lt;Date: 2001-04-03 ...&gt;</div><div class='add'>+ *   (Date.new(2001, 2, 3) &lt;&lt; 1).to_s  # =&gt; "2001-01-03"</div><div class='add'>+ *   (Date.new(2001, 2, 3) &lt;&lt; -2).to_s # =&gt; "2001-04-03"</div><div class='ctx'>  *</div><div class='del'>- * When the same day does not exist for the corresponding month,</div><div class='del'>- * the last day of the month is used instead:</div><div class='add'>+ * When the same day does not exist for the new month,</div><div class='add'>+ * the last day of that month is used instead:</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,3,28) &lt;&lt; 1   #=&gt; #&lt;Date: 2001-02-28 ...&gt;</div><div class='del'>- *    Date.new(2001,3,31) &lt;&lt; 1   #=&gt; #&lt;Date: 2001-02-28 ...&gt;</div><div class='add'>+ *   (Date.new(2001, 3, 31) &lt;&lt; 1).to_s  # =&gt; "2001-02-28"</div><div class='add'>+ *   (Date.new(2001, 3, 31) &lt;&lt; -6).to_s # =&gt; "2001-09-30"</div><div class='ctx'>  *</div><div class='del'>- * This also results in the following, possibly unexpected, behavior:</div><div class='add'>+ * This results in the following, possibly unexpected, behaviors:</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,3,31) &lt;&lt; 2         #=&gt; #&lt;Date: 2001-01-31 ...&gt;</div><div class='del'>- *    Date.new(2001,3,31) &lt;&lt; 1 &lt;&lt; 1    #=&gt; #&lt;Date: 2001-01-28 ...&gt;</div><div class='add'>+ *   d0 = Date.new(2001, 3, 31)</div><div class='add'>+ *   d0 &lt;&lt; 2      # =&gt; #&lt;Date: 2001-01-31&gt;</div><div class='add'>+ *   d0 &lt;&lt; 1 &lt;&lt; 1 # =&gt; #&lt;Date: 2001-01-28&gt;</div><div class='add'>+ *</div><div class='add'>+ *   d0 = Date.new(2001, 3, 31)</div><div class='add'>+ *   d1 = d0 &lt;&lt; 1  # =&gt; #&lt;Date: 2001-02-28&gt;</div><div class='add'>+ *   d2 = d1 &lt;&lt; -1 # =&gt; #&lt;Date: 2001-03-28&gt;</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,3,31) &lt;&lt; 1 &lt;&lt; -1   #=&gt; #&lt;Date: 2001-03-28 ...&gt;</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_lshift(VALUE self, VALUE other)</div><div class='hunk'>@@ -6081,11 +6534,9 @@ d_lite_lshift(VALUE self, VALUE other)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.next_month([n=1])  -&gt;  date</div><div class='del'>- *</div><div class='del'>- * This method is equivalent to d &gt;&gt; n.</div><div class='add'>+ *   next_month(n = 1) -&gt; new_date</div><div class='ctx'>  *</div><div class='del'>- * See Date#&gt;&gt; for examples.</div><div class='add'>+ * Equivalent to #&gt;&gt; with argument +n+.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_next_month(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -6100,11 +6551,9 @@ d_lite_next_month(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.prev_month([n=1])  -&gt;  date</div><div class='del'>- *</div><div class='del'>- * This method is equivalent to d &lt;&lt; n.</div><div class='add'>+ *   prev_month(n = 1) -&gt; new_date</div><div class='ctx'>  *</div><div class='del'>- * See Date#&lt;&lt; for examples.</div><div class='add'>+ * Equivalent to #&lt;&lt; with argument +n+.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_prev_month(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -6119,15 +6568,9 @@ d_lite_prev_month(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.next_year([n=1])  -&gt;  date</div><div class='add'>+ *   next_year(n = 1) -&gt; new_date</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to d &gt;&gt; (n * 12).</div><div class='del'>- *</div><div class='del'>- *    Date.new(2001,2,3).next_year      #=&gt; #&lt;Date: 2002-02-03 ...&gt;</div><div class='del'>- *    Date.new(2008,2,29).next_year     #=&gt; #&lt;Date: 2009-02-28 ...&gt;</div><div class='del'>- *    Date.new(2008,2,29).next_year(4)  #=&gt; #&lt;Date: 2012-02-29 ...&gt;</div><div class='del'>- *</div><div class='del'>- * See also Date#&gt;&gt;.</div><div class='add'>+ * Equivalent to #&gt;&gt; with argument &lt;tt&gt;n * 12&lt;/tt&gt;.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_next_year(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -6142,15 +6585,9 @@ d_lite_next_year(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.prev_year([n=1])  -&gt;  date</div><div class='del'>- *</div><div class='del'>- * This method is equivalent to d &lt;&lt; (n * 12).</div><div class='del'>- *</div><div class='del'>- *    Date.new(2001,2,3).prev_year      #=&gt; #&lt;Date: 2000-02-03 ...&gt;</div><div class='del'>- *    Date.new(2008,2,29).prev_year     #=&gt; #&lt;Date: 2007-02-28 ...&gt;</div><div class='del'>- *    Date.new(2008,2,29).prev_year(4)  #=&gt; #&lt;Date: 2004-02-29 ...&gt;</div><div class='add'>+ *   prev_year(n = 1) -&gt; new_date</div><div class='ctx'>  *</div><div class='del'>- * See also Date#&lt;&lt;.</div><div class='add'>+ * Equivalent to #&lt;&lt; with argument &lt;tt&gt;n * 12&lt;/tt&gt;.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_prev_year(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -6167,14 +6604,33 @@ static VALUE d_lite_cmp(VALUE, VALUE);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.step(limit[, step=1])              -&gt;  enumerator</div><div class='del'>- *    d.step(limit[, step=1]){|date| ...}  -&gt;  self</div><div class='add'>+ *   step(limit, step = 1){|date| ... } -&gt; self</div><div class='add'>+ *</div><div class='add'>+ * Calls the block with specified dates;</div><div class='add'>+ * returns +self+.</div><div class='add'>+ *</div><div class='add'>+ * - The first +date+ is +self+.</div><div class='add'>+ * - Each successive +date+ is &lt;tt&gt;date + step&lt;/tt&gt;,</div><div class='add'>+ *   where +step+ is the numeric step size in days.</div><div class='add'>+ * - The last date is the last one that is before or equal to +limit+,</div><div class='add'>+ *   which should be a \Date object.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='ctx'>  *</div><div class='del'>- * Iterates evaluation of the given block, which takes a date object.</div><div class='del'>- * The limit should be a date object.</div><div class='add'>+ *   limit = Date.new(2001, 12, 31)</div><div class='add'>+ *   Date.new(2001).step(limit){|date| p date.to_s if date.mday == 31 }</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001).step(Date.new(2001,-1,-1)).select{|d| d.sunday?}.size</div><div class='del'>- *				#=&gt; 52</div><div class='add'>+ * Output:</div><div class='add'>+ *</div><div class='add'>+ *   "2001-01-31"</div><div class='add'>+ *   "2001-03-31"</div><div class='add'>+ *   "2001-05-31"</div><div class='add'>+ *   "2001-07-31"</div><div class='add'>+ *   "2001-08-31"</div><div class='add'>+ *   "2001-10-31"</div><div class='add'>+ *   "2001-12-31"</div><div class='add'>+ *</div><div class='add'>+ * Returns an Enumerator if no block is given.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_step(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -6217,10 +6673,9 @@ d_lite_step(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.upto(max)              -&gt;  enumerator</div><div class='del'>- *    d.upto(max){|date| ...}  -&gt;  self</div><div class='add'>+ *   upto(max){|date| ... } -&gt; self</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to step(max, 1){|date| ...}.</div><div class='add'>+ * Equivalent to #step with arguments +max+ and +1+.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_upto(VALUE self, VALUE max)</div><div class='hunk'>@@ -6239,10 +6694,9 @@ d_lite_upto(VALUE self, VALUE max)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.downto(min)              -&gt;  enumerator</div><div class='del'>- *    d.downto(min){|date| ...}  -&gt;  self</div><div class='add'>+ *   downto(min){|date| ... } -&gt; self</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to step(min, -1){|date| ...}.</div><div class='add'>+ * Equivalent to #step with arguments +min+ and &lt;tt&gt;-1&lt;/tt&gt;.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_downto(VALUE self, VALUE min)</div><div class='hunk'>@@ -6330,19 +6784,43 @@ cmp_dd(VALUE self, VALUE other)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d &lt;=&gt; other  -&gt; -1, 0, +1 or nil</div><div class='add'>+ *   self &lt;=&gt; other  -&gt; -1, 0, 1 or nil</div><div class='add'>+ *</div><div class='add'>+ * Compares +self+ and +other+, returning:</div><div class='add'>+ *</div><div class='add'>+ * - &lt;tt&gt;-1&lt;/tt&gt; if +other+ is larger.</div><div class='add'>+ * - &lt;tt&gt;0&lt;/tt&gt; if the two are equal.</div><div class='add'>+ * - &lt;tt&gt;1&lt;/tt&gt; if +other+ is smaller.</div><div class='add'>+ * - +nil+ if the two are incomparable.</div><div class='add'>+ *</div><div class='add'>+ * Argument +other+ may be:</div><div class='add'>+ *</div><div class='add'>+ * - Another \Date object:</div><div class='ctx'>  *</div><div class='del'>- * Compares the two dates and returns -1, zero, 1 or nil.  The other</div><div class='del'>- * should be a date object or a numeric value as an astronomical</div><div class='del'>- * Julian day number.</div><div class='add'>+ *     d = Date.new(2022, 7, 27) # =&gt; #&lt;Date: 2022-07-27 ((2459788j,0s,0n),+0s,2299161j)&gt;</div><div class='add'>+ *     prev_date = d.prev_day    # =&gt; #&lt;Date: 2022-07-26 ((2459787j,0s,0n),+0s,2299161j)&gt;</div><div class='add'>+ *     next_date = d.next_day    # =&gt; #&lt;Date: 2022-07-28 ((2459789j,0s,0n),+0s,2299161j)&gt;</div><div class='add'>+ *     d &lt;=&gt; next_date           # =&gt; -1</div><div class='add'>+ *     d &lt;=&gt; d                   # =&gt; 0</div><div class='add'>+ *     d &lt;=&gt; prev_date           # =&gt; 1</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3) &lt;=&gt; Date.new(2001,2,4)   #=&gt; -1</div><div class='del'>- *    Date.new(2001,2,3) &lt;=&gt; Date.new(2001,2,3)   #=&gt; 0</div><div class='del'>- *    Date.new(2001,2,3) &lt;=&gt; Date.new(2001,2,2)   #=&gt; 1</div><div class='del'>- *    Date.new(2001,2,3) &lt;=&gt; Object.new           #=&gt; nil</div><div class='del'>- *    Date.new(2001,2,3) &lt;=&gt; Rational(4903887,2)  #=&gt; 0</div><div class='add'>+ * - A DateTime object:</div><div class='add'>+ *</div><div class='add'>+ *     d &lt;=&gt; DateTime.new(2022, 7, 26) # =&gt; 1</div><div class='add'>+ *     d &lt;=&gt; DateTime.new(2022, 7, 27) # =&gt; 0</div><div class='add'>+ *     d &lt;=&gt; DateTime.new(2022, 7, 28) # =&gt; -1</div><div class='add'>+ *</div><div class='add'>+ * - A numeric (compares &lt;tt&gt;self.ajd&lt;/tt&gt; to +other+):</div><div class='add'>+ *</div><div class='add'>+ *     d &lt;=&gt; 2459788 # =&gt; -1</div><div class='add'>+ *     d &lt;=&gt; 2459787 # =&gt; 1</div><div class='add'>+ *     d &lt;=&gt; 2459786 # =&gt; 1</div><div class='add'>+ *     d &lt;=&gt; d.ajd   # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ * - Any other object:</div><div class='add'>+ *</div><div class='add'>+ *     d &lt;=&gt; Object.new # =&gt; nil</div><div class='ctx'>  *</div><div class='del'>- * See also Comparable.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_cmp(VALUE self, VALUE other)</div><div class='hunk'>@@ -6402,20 +6880,39 @@ equal_gen(VALUE self, VALUE other)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d === other  -&gt;  bool</div><div class='del'>- *</div><div class='del'>- * Returns true if they are the same day.</div><div class='del'>- *</div><div class='del'>- *    Date.new(2001,2,3) === Date.new(2001,2,3)</div><div class='del'>- * 					#=&gt; true</div><div class='del'>- *    Date.new(2001,2,3) === Date.new(2001,2,4)</div><div class='del'>- *					#=&gt; false</div><div class='del'>- *    DateTime.new(2001,2,3) === DateTime.new(2001,2,3,12)</div><div class='del'>- *					#=&gt; true</div><div class='del'>- *    DateTime.new(2001,2,3) === DateTime.new(2001,2,3,0,0,0,'+24:00')</div><div class='del'>- *					#=&gt; true</div><div class='del'>- *    DateTime.new(2001,2,3) === DateTime.new(2001,2,4,0,0,0,'+24:00')</div><div class='del'>- *					#=&gt; false</div><div class='add'>+ *   self === other -&gt; true, false, or nil.</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if +self+ and +other+ represent the same date,</div><div class='add'>+ * +false+ if not, +nil+ if the two are not comparable.</div><div class='add'>+ *</div><div class='add'>+ * Argument +other+ may be:</div><div class='add'>+ *</div><div class='add'>+ * - Another \Date object:</div><div class='add'>+ *</div><div class='add'>+ *     d = Date.new(2022, 7, 27) # =&gt; #&lt;Date: 2022-07-27 ((2459788j,0s,0n),+0s,2299161j)&gt;</div><div class='add'>+ *     prev_date = d.prev_day    # =&gt; #&lt;Date: 2022-07-26 ((2459787j,0s,0n),+0s,2299161j)&gt;</div><div class='add'>+ *     next_date = d.next_day    # =&gt; #&lt;Date: 2022-07-28 ((2459789j,0s,0n),+0s,2299161j)&gt;</div><div class='add'>+ *     d === prev_date           # =&gt; false</div><div class='add'>+ *     d === d                   # =&gt; true</div><div class='add'>+ *     d === next_date           # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ * - A DateTime object:</div><div class='add'>+ *</div><div class='add'>+ *     d === DateTime.new(2022, 7, 26) # =&gt; false</div><div class='add'>+ *     d === DateTime.new(2022, 7, 27) # =&gt; true</div><div class='add'>+ *     d === DateTime.new(2022, 7, 28) # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ * - A numeric (compares &lt;tt&gt;self.jd&lt;/tt&gt; to +other+):</div><div class='add'>+ *</div><div class='add'>+ *     d === 2459788 # =&gt; true</div><div class='add'>+ *     d === 2459787 # =&gt; false</div><div class='add'>+ *     d === 2459786 # =&gt; false</div><div class='add'>+ *     d === d.jd    # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ * - An object not comparable:</div><div class='add'>+ *</div><div class='add'>+ *     d === Object.new # =&gt; nil</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_equal(VALUE self, VALUE other)</div><div class='hunk'>@@ -6478,12 +6975,14 @@ static VALUE strftimev(const char *, VALUE,</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.to_s  -&gt;  string</div><div class='add'>+ *   to_s -&gt; string</div><div class='ctx'>  *</div><div class='del'>- * Returns a string in an ISO 8601 format. (This method doesn't use the</div><div class='del'>- * expanded representations.)</div><div class='add'>+ * Returns a string representation of the date in +self+</div><div class='add'>+ * in {ISO 8601 extended date format}[rdoc-ref:strftime_formatting.rdoc@ISO+8601+Format+Specifications]</div><div class='add'>+ * (&lt;tt&gt;'%Y-%m-%d'&lt;/tt&gt;):</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).to_s # =&gt; "2001-02-03"</div><div class='ctx'>  *</div><div class='del'>- *     Date.new(2001,2,3).to_s	#=&gt; "2001-02-03"</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_to_s(VALUE self)</div><div class='hunk'>@@ -6492,6 +6991,7 @@ d_lite_to_s(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> mk_inspect_raw(union DateData *x, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -6541,6 +7041,7 @@ mk_inspect_raw(union DateData *x, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_inspect_raw(VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -6562,14 +7063,13 @@ mk_inspect(union DateData *x, VALUE klass, VALUE to_s)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.inspect  -&gt;  string</div><div class='add'>+ *   inspect -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Returns a string representation of +self+:</div><div class='ctx'>  *</div><div class='del'>- * Returns the value as a string for inspection.</div><div class='add'>+ *   Date.new(2001, 2, 3).inspect</div><div class='add'>+ *   # =&gt; "#&lt;Date: 2001-02-03 ((2451944j,0s,0n),+0s,2299161j)&gt;"</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3).inspect</div><div class='del'>- *		#=&gt; "#&lt;Date: 2001-02-03 ((2451944j,0s,0n),+0s,2299161j)&gt;"</div><div class='del'>- *    DateTime.new(2001,2,3,4,5,6,'-7').inspect</div><div class='del'>- *		#=&gt; "#&lt;DateTime: 2001-02-03T04:05:06-07:00 ((2451944j,39906s,0n),-25200s,2299161j)&gt;"</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_inspect(VALUE self)</div><div class='hunk'>@@ -6738,7 +7238,6 @@ date_strftime_internal(int argc, VALUE *argv, VALUE self,</div><div class='ctx'> 	    if (p &gt; fmt) rb_str_cat(str, fmt, p - fmt);</div><div class='ctx'> 	}</div><div class='ctx'> 	rb_enc_copy(str, vfmt);</div><div class='del'>-	OBJ_INFECT(str, vfmt);</div><div class='ctx'> 	return str;</div><div class='ctx'>     }</div><div class='ctx'>     else</div><div class='hunk'>@@ -6747,186 +7246,21 @@ date_strftime_internal(int argc, VALUE *argv, VALUE self,</div><div class='ctx'>     str = rb_str_new(buf, len);</div><div class='ctx'>     if (buf != buffer) xfree(buf);</div><div class='ctx'>     rb_enc_copy(str, vfmt);</div><div class='del'>-    OBJ_INFECT(str, vfmt);</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.strftime([format='%F'])  -&gt;  string</div><div class='del'>- *</div><div class='del'>- * Formats date according to the directives in the given format</div><div class='del'>- * string.</div><div class='del'>- * The directives begin with a percent (%) character.</div><div class='del'>- * Any text not listed as a directive will be passed through to the</div><div class='del'>- * output string.</div><div class='del'>- *</div><div class='del'>- * A directive consists of a percent (%) character,</div><div class='del'>- * zero or more flags, an optional minimum field width,</div><div class='del'>- * an optional modifier, and a conversion specifier</div><div class='del'>- * as follows.</div><div class='del'>- *</div><div class='del'>- *    %&lt;flags&gt;&lt;width&gt;&lt;modifier&gt;&lt;conversion&gt;</div><div class='del'>- *</div><div class='del'>- * Flags:</div><div class='del'>- *    -  don't pad a numerical output.</div><div class='del'>- *    _  use spaces for padding.</div><div class='del'>- *    0  use zeros for padding.</div><div class='del'>- *    ^  upcase the result string.</div><div class='del'>- *    #  change case.</div><div class='del'>- *</div><div class='del'>- * The minimum field width specifies the minimum width.</div><div class='del'>- *</div><div class='del'>- * The modifiers are "E", "O", ":", "::" and ":::".</div><div class='del'>- * "E" and "O" are ignored.  No effect to result currently.</div><div class='del'>- *</div><div class='del'>- * Format directives:</div><div class='del'>- *</div><div class='del'>- *    Date (Year, Month, Day):</div><div class='del'>- *      %Y - Year with century (can be negative, 4 digits at least)</div><div class='del'>- *              -0001, 0000, 1995, 2009, 14292, etc.</div><div class='del'>- *      %C - year / 100 (round down.  20 in 2009)</div><div class='del'>- *      %y - year % 100 (00..99)</div><div class='del'>- *</div><div class='del'>- *      %m - Month of the year, zero-padded (01..12)</div><div class='del'>- *              %_m  blank-padded ( 1..12)</div><div class='del'>- *              %-m  no-padded (1..12)</div><div class='del'>- *      %B - The full month name (``January'')</div><div class='del'>- *              %^B  uppercased (``JANUARY'')</div><div class='del'>- *      %b - The abbreviated month name (``Jan'')</div><div class='del'>- *              %^b  uppercased (``JAN'')</div><div class='del'>- *      %h - Equivalent to %b</div><div class='del'>- *</div><div class='del'>- *      %d - Day of the month, zero-padded (01..31)</div><div class='del'>- *              %-d  no-padded (1..31)</div><div class='del'>- *      %e - Day of the month, blank-padded ( 1..31)</div><div class='del'>- *</div><div class='del'>- *      %j - Day of the year (001..366)</div><div class='del'>- *</div><div class='del'>- *    Time (Hour, Minute, Second, Subsecond):</div><div class='del'>- *      %H - Hour of the day, 24-hour clock, zero-padded (00..23)</div><div class='del'>- *      %k - Hour of the day, 24-hour clock, blank-padded ( 0..23)</div><div class='del'>- *      %I - Hour of the day, 12-hour clock, zero-padded (01..12)</div><div class='del'>- *      %l - Hour of the day, 12-hour clock, blank-padded ( 1..12)</div><div class='del'>- *      %P - Meridian indicator, lowercase (``am'' or ``pm'')</div><div class='del'>- *      %p - Meridian indicator, uppercase (``AM'' or ``PM'')</div><div class='del'>- *</div><div class='del'>- *      %M - Minute of the hour (00..59)</div><div class='del'>- *</div><div class='del'>- *      %S - Second of the minute (00..60)</div><div class='del'>- *</div><div class='del'>- *      %L - Millisecond of the second (000..999)</div><div class='del'>- *      %N - Fractional seconds digits, default is 9 digits (nanosecond)</div><div class='del'>- *              %3N  millisecond (3 digits)   %15N femtosecond (15 digits)</div><div class='del'>- *              %6N  microsecond (6 digits)   %18N attosecond  (18 digits)</div><div class='del'>- *              %9N  nanosecond  (9 digits)   %21N zeptosecond (21 digits)</div><div class='del'>- *              %12N picosecond (12 digits)   %24N yoctosecond (24 digits)</div><div class='del'>- *</div><div class='del'>- *    Time zone:</div><div class='del'>- *      %z - Time zone as hour and minute offset from UTC (e.g. +0900)</div><div class='del'>- *              %:z - hour and minute offset from UTC with a colon (e.g. +09:00)</div><div class='del'>- *              %::z - hour, minute and second offset from UTC (e.g. +09:00:00)</div><div class='del'>- *              %:::z - hour, minute and second offset from UTC</div><div class='del'>- *                                                (e.g. +09, +09:30, +09:30:30)</div><div class='del'>- *      %Z - Equivalent to %:z (e.g. +09:00)</div><div class='del'>- *</div><div class='del'>- *    Weekday:</div><div class='del'>- *      %A - The full weekday name (``Sunday'')</div><div class='del'>- *              %^A  uppercased (``SUNDAY'')</div><div class='del'>- *      %a - The abbreviated name (``Sun'')</div><div class='del'>- *              %^a  uppercased (``SUN'')</div><div class='del'>- *      %u - Day of the week (Monday is 1, 1..7)</div><div class='del'>- *      %w - Day of the week (Sunday is 0, 0..6)</div><div class='del'>- *</div><div class='del'>- *    ISO 8601 week-based year and week number:</div><div class='del'>- *    The week 1 of YYYY starts with a Monday and includes YYYY-01-04.</div><div class='del'>- *    The days in the year before the first week are in the last week of</div><div class='del'>- *    the previous year.</div><div class='del'>- *      %G - The week-based year</div><div class='del'>- *      %g - The last 2 digits of the week-based year (00..99)</div><div class='del'>- *      %V - Week number of the week-based year (01..53)</div><div class='del'>- *</div><div class='del'>- *    Week number:</div><div class='del'>- *    The week 1 of YYYY starts with a Sunday or Monday (according to %U</div><div class='del'>- *    or %W).  The days in the year before the first week are in week 0.</div><div class='del'>- *      %U - Week number of the year.  The week starts with Sunday.  (00..53)</div><div class='del'>- *      %W - Week number of the year.  The week starts with Monday.  (00..53)</div><div class='del'>- *</div><div class='del'>- *    Seconds since the Unix Epoch:</div><div class='del'>- *      %s - Number of seconds since 1970-01-01 00:00:00 UTC.</div><div class='del'>- *      %Q - Number of milliseconds since 1970-01-01 00:00:00 UTC.</div><div class='del'>- *</div><div class='del'>- *    Literal string:</div><div class='del'>- *      %n - Newline character (\n)</div><div class='del'>- *      %t - Tab character (\t)</div><div class='del'>- *      %% - Literal ``%'' character</div><div class='del'>- *</div><div class='del'>- *    Combination:</div><div class='del'>- *      %c - date and time (%a %b %e %T %Y)</div><div class='del'>- *      %D - Date (%m/%d/%y)</div><div class='del'>- *      %F - The ISO 8601 date format (%Y-%m-%d)</div><div class='del'>- *      %v - VMS date (%e-%b-%Y)</div><div class='del'>- *      %x - Same as %D</div><div class='del'>- *      %X - Same as %T</div><div class='del'>- *      %r - 12-hour time (%I:%M:%S %p)</div><div class='del'>- *      %R - 24-hour time (%H:%M)</div><div class='del'>- *      %T - 24-hour time (%H:%M:%S)</div><div class='del'>- *      %+ - date(1) (%a %b %e %H:%M:%S %Z %Y)</div><div class='del'>- *</div><div class='del'>- * This method is similar to the strftime() function defined in ISO C</div><div class='del'>- * and POSIX.</div><div class='del'>- * Several directives (%a, %A, %b, %B, %c, %p, %r, %x, %X, %E*, %O* and %Z)</div><div class='del'>- * are locale dependent in the function.</div><div class='del'>- * However, this method is locale independent.</div><div class='del'>- * So, the result may differ even if the same format string is used in other</div><div class='del'>- * systems such as C.</div><div class='del'>- * It is good practice to avoid %x and %X because there are corresponding</div><div class='del'>- * locale independent representations, %D and %T.</div><div class='del'>- *</div><div class='del'>- * Examples:</div><div class='del'>- *</div><div class='del'>- *    d = DateTime.new(2007,11,19,8,37,48,"-06:00")</div><div class='del'>- *				#=&gt; #&lt;DateTime: 2007-11-19T08:37:48-0600 ...&gt;</div><div class='del'>- *    d.strftime("Printed on %m/%d/%Y")   #=&gt; "Printed on 11/19/2007"</div><div class='del'>- *    d.strftime("at %I:%M%p")            #=&gt; "at 08:37AM"</div><div class='del'>- *</div><div class='del'>- * Various ISO 8601 formats:</div><div class='del'>- *    %Y%m%d           =&gt; 20071119                  Calendar date (basic)</div><div class='del'>- *    %F               =&gt; 2007-11-19                Calendar date (extended)</div><div class='del'>- *    %Y-%m            =&gt; 2007-11                   Calendar date, reduced accuracy, specific month</div><div class='del'>- *    %Y               =&gt; 2007                      Calendar date, reduced accuracy, specific year</div><div class='del'>- *    %C               =&gt; 20                        Calendar date, reduced accuracy, specific century</div><div class='del'>- *    %Y%j             =&gt; 2007323                   Ordinal date (basic)</div><div class='del'>- *    %Y-%j            =&gt; 2007-323                  Ordinal date (extended)</div><div class='del'>- *    %GW%V%u          =&gt; 2007W471                  Week date (basic)</div><div class='del'>- *    %G-W%V-%u        =&gt; 2007-W47-1                Week date (extended)</div><div class='del'>- *    %GW%V            =&gt; 2007W47                   Week date, reduced accuracy, specific week (basic)</div><div class='del'>- *    %G-W%V           =&gt; 2007-W47                  Week date, reduced accuracy, specific week (extended)</div><div class='del'>- *    %H%M%S           =&gt; 083748                    Local time (basic)</div><div class='del'>- *    %T               =&gt; 08:37:48                  Local time (extended)</div><div class='del'>- *    %H%M             =&gt; 0837                      Local time, reduced accuracy, specific minute (basic)</div><div class='del'>- *    %H:%M            =&gt; 08:37                     Local time, reduced accuracy, specific minute (extended)</div><div class='del'>- *    %H               =&gt; 08                        Local time, reduced accuracy, specific hour</div><div class='del'>- *    %H%M%S,%L        =&gt; 083748,000                Local time with decimal fraction, comma as decimal sign (basic)</div><div class='del'>- *    %T,%L            =&gt; 08:37:48,000              Local time with decimal fraction, comma as decimal sign (extended)</div><div class='del'>- *    %H%M%S.%L        =&gt; 083748.000                Local time with decimal fraction, full stop as decimal sign (basic)</div><div class='del'>- *    %T.%L            =&gt; 08:37:48.000              Local time with decimal fraction, full stop as decimal sign (extended)</div><div class='del'>- *    %H%M%S%z         =&gt; 083748-0600               Local time and the difference from UTC (basic)</div><div class='del'>- *    %T%:z            =&gt; 08:37:48-06:00            Local time and the difference from UTC (extended)</div><div class='del'>- *    %Y%m%dT%H%M%S%z  =&gt; 20071119T083748-0600      Date and time of day for calendar date (basic)</div><div class='del'>- *    %FT%T%:z         =&gt; 2007-11-19T08:37:48-06:00 Date and time of day for calendar date (extended)</div><div class='del'>- *    %Y%jT%H%M%S%z    =&gt; 2007323T083748-0600       Date and time of day for ordinal date (basic)</div><div class='del'>- *    %Y-%jT%T%:z      =&gt; 2007-323T08:37:48-06:00   Date and time of day for ordinal date (extended)</div><div class='del'>- *    %GW%V%uT%H%M%S%z =&gt; 2007W471T083748-0600      Date and time of day for week date (basic)</div><div class='del'>- *    %G-W%V-%uT%T%:z  =&gt; 2007-W47-1T08:37:48-06:00 Date and time of day for week date (extended)</div><div class='del'>- *    %Y%m%dT%H%M      =&gt; 20071119T0837             Calendar date and local time (basic)</div><div class='del'>- *    %FT%R            =&gt; 2007-11-19T08:37          Calendar date and local time (extended)</div><div class='del'>- *    %Y%jT%H%MZ       =&gt; 2007323T0837Z             Ordinal date and UTC of day (basic)</div><div class='del'>- *    %Y-%jT%RZ        =&gt; 2007-323T08:37Z           Ordinal date and UTC of day (extended)</div><div class='del'>- *    %GW%V%uT%H%M%z   =&gt; 2007W471T0837-0600        Week date and local time and difference from UTC (basic)</div><div class='del'>- *    %G-W%V-%uT%R%:z  =&gt; 2007-W47-1T08:37-06:00    Week date and local time and difference from UTC (extended)</div><div class='del'>- *</div><div class='del'>- * See also strftime(3) and ::strptime.</div><div class='add'>+ *   strftime(format = '%F') -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Returns a string representation of the date in +self+,</div><div class='add'>+ * formatted according the given +format+:</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).strftime # =&gt; "2001-02-03"</div><div class='add'>+ *</div><div class='add'>+ * For other formats, see</div><div class='add'>+ * {Formats for Dates and Times}[rdoc-ref:strftime_formatting.rdoc].</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_strftime(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -6954,13 +7288,17 @@ strftimev(const char *fmt, VALUE self,</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.asctime  -&gt;  string</div><div class='del'>- *    d.ctime    -&gt;  string</div><div class='add'>+ *   asctime -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Equivalent to #strftime with argument &lt;tt&gt;'%a %b %e %T %Y'&lt;/tt&gt;</div><div class='add'>+ * (or its {shorthand form}[rdoc-ref:strftime_formatting.rdoc@Shorthand+Conversion+Specifiers]</div><div class='add'>+ * &lt;tt&gt;'%c'&lt;/tt&gt;):</div><div class='ctx'>  *</div><div class='del'>- * Returns a string in asctime(3) format (but without "\n\0" at the</div><div class='del'>- * end).  This method is equivalent to strftime('%c').</div><div class='add'>+ *   Date.new(2001, 2, 3).asctime # =&gt; "Sat Feb  3 00:00:00 2001"</div><div class='ctx'>  *</div><div class='del'>- * See also asctime(3) or ctime(3).</div><div class='add'>+ * See {asctime}[https://linux.die.net/man/3/asctime].</div><div class='add'>+ *</div><div class='add'>+ * Date#ctime is an alias for Date#asctime.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_asctime(VALUE self)</div><div class='hunk'>@@ -6970,10 +7308,15 @@ d_lite_asctime(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.iso8601    -&gt;  string</div><div class='del'>- *    d.xmlschema  -&gt;  string</div><div class='add'>+ *   iso8601    -&gt;  string</div><div class='add'>+ *</div><div class='add'>+ * Equivalent to #strftime with argument &lt;tt&gt;'%Y-%m-%d'&lt;/tt&gt;</div><div class='add'>+ * (or its {shorthand form}[rdoc-ref:strftime_formatting.rdoc@Shorthand+Conversion+Specifiers]</div><div class='add'>+ * &lt;tt&gt;'%F'&lt;/tt&gt;);</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to strftime('%F').</div><div class='add'>+ *   Date.new(2001, 2, 3).iso8601 # =&gt; "2001-02-03"</div><div class='add'>+ *</div><div class='add'>+ * Date#xmlschema is an alias for Date#iso8601.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_iso8601(VALUE self)</div><div class='hunk'>@@ -6983,9 +7326,13 @@ d_lite_iso8601(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.rfc3339  -&gt;  string</div><div class='add'>+ *   rfc3339 -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Equivalent to #strftime with argument &lt;tt&gt;'%FT%T%:z'&lt;/tt&gt;;</div><div class='add'>+ * see {Formats for Dates and Times}[rdoc-ref:strftime_formatting.rdoc]:</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).rfc3339 # =&gt; "2001-02-03T00:00:00+00:00"</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to strftime('%FT%T%:z').</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_rfc3339(VALUE self)</div><div class='hunk'>@@ -6995,10 +7342,14 @@ d_lite_rfc3339(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.rfc2822  -&gt;  string</div><div class='del'>- *    d.rfc822   -&gt;  string</div><div class='add'>+ *   rfc2822 -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Equivalent to #strftime with argument &lt;tt&gt;'%a, %-d %b %Y %T %z'&lt;/tt&gt;;</div><div class='add'>+ * see {Formats for Dates and Times}[rdoc-ref:strftime_formatting.rdoc]:</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).rfc2822 # =&gt; "Sat, 3 Feb 2001 00:00:00 +0000"</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to strftime('%a, %-d %b %Y %T %z').</div><div class='add'>+ * Date#rfc822 is an alias for Date#rfc2822.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_rfc2822(VALUE self)</div><div class='hunk'>@@ -7008,10 +7359,13 @@ d_lite_rfc2822(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.httpdate  -&gt;  string</div><div class='add'>+ *   httpdate -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Equivalent to #strftime with argument &lt;tt&gt;'%a, %d %b %Y %T GMT'&lt;/tt&gt;;</div><div class='add'>+ * see {Formats for Dates and Times}[rdoc-ref:strftime_formatting.rdoc]:</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).httpdate # =&gt; "Sat, 03 Feb 2001 00:00:00 GMT"</div><div class='ctx'>  *</div><div class='del'>- * This method is equivalent to strftime('%a, %d %b %Y %T GMT').</div><div class='del'>- * See also RFC 2616.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_httpdate(VALUE self)</div><div class='hunk'>@@ -7046,10 +7400,14 @@ jisx0301_date_format(char *fmt, size_t size, VALUE jd, VALUE y)</div><div class='ctx'> 	    c = 'S';</div><div class='ctx'> 	    s = 1925;</div><div class='ctx'> 	}</div><div class='del'>-	else {</div><div class='add'>+	else if (d &lt; 2458605) {</div><div class='ctx'> 	    c = 'H';</div><div class='ctx'> 	    s = 1988;</div><div class='ctx'> 	}</div><div class='add'>+	else {</div><div class='add'>+	    c = 'R';</div><div class='add'>+	    s = 2018;</div><div class='add'>+	}</div><div class='ctx'> 	snprintf(fmt, size, "%c%02ld" ".%%m.%%d", c, FIX2INT(y) - s);</div><div class='ctx'> 	return fmt;</div><div class='ctx'>     }</div><div class='hunk'>@@ -7058,11 +7416,13 @@ jisx0301_date_format(char *fmt, size_t size, VALUE jd, VALUE y)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.jisx0301  -&gt;  string</div><div class='add'>+ *   jisx0301 -&gt; string</div><div class='ctx'>  *</div><div class='del'>- * Returns a string in a JIS X 0301 format.</div><div class='add'>+ * Returns a string representation of the date in +self+</div><div class='add'>+ * in JIS X 0301 format.</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).jisx0301 # =&gt; "H13.02.03"</div><div class='ctx'>  *</div><div class='del'>- *    Date.new(2001,2,3).jisx0301	#=&gt; "H13.02.03"</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_jisx0301(VALUE self)</div><div class='hunk'>@@ -7077,7 +7437,98 @@ d_lite_jisx0301(VALUE self)</div><div class='ctx'>     return strftimev(fmt, self, set_tmx);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+deconstruct_keys(VALUE self, VALUE keys, int is_datetime)</div><div class='add'>+{</div><div class='add'>+    VALUE h = rb_hash_new();</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    get_d1(self);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(keys)) {</div><div class='add'>+        rb_hash_aset(h, sym_year, m_real_year(dat));</div><div class='add'>+        rb_hash_aset(h, sym_month, INT2FIX(m_mon(dat)));</div><div class='add'>+        rb_hash_aset(h, sym_day, INT2FIX(m_mday(dat)));</div><div class='add'>+        rb_hash_aset(h, sym_yday, INT2FIX(m_yday(dat)));</div><div class='add'>+        rb_hash_aset(h, sym_wday, INT2FIX(m_wday(dat)));</div><div class='add'>+        if (is_datetime) {</div><div class='add'>+            rb_hash_aset(h, sym_hour, INT2FIX(m_hour(dat)));</div><div class='add'>+            rb_hash_aset(h, sym_min, INT2FIX(m_min(dat)));</div><div class='add'>+            rb_hash_aset(h, sym_sec, INT2FIX(m_sec(dat)));</div><div class='add'>+            rb_hash_aset(h, sym_sec_fraction, m_sf_in_sec(dat));</div><div class='add'>+            rb_hash_aset(h, sym_zone, m_zone(dat));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        return h;</div><div class='add'>+    }</div><div class='add'>+    if (!RB_TYPE_P(keys, T_ARRAY)) {</div><div class='add'>+        rb_raise(rb_eTypeError,</div><div class='add'>+                 "wrong argument type %"PRIsVALUE" (expected Array or nil)",</div><div class='add'>+                 rb_obj_class(keys));</div><div class='add'>+</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(keys); i++) {</div><div class='add'>+        VALUE key = RARRAY_AREF(keys, i);</div><div class='add'>+</div><div class='add'>+        if (sym_year == key) rb_hash_aset(h, key, m_real_year(dat));</div><div class='add'>+        if (sym_month == key) rb_hash_aset(h, key, INT2FIX(m_mon(dat)));</div><div class='add'>+        if (sym_day == key) rb_hash_aset(h, key, INT2FIX(m_mday(dat)));</div><div class='add'>+        if (sym_yday == key) rb_hash_aset(h, key, INT2FIX(m_yday(dat)));</div><div class='add'>+        if (sym_wday == key) rb_hash_aset(h, key, INT2FIX(m_wday(dat)));</div><div class='add'>+        if (is_datetime) {</div><div class='add'>+            if (sym_hour == key) rb_hash_aset(h, key, INT2FIX(m_hour(dat)));</div><div class='add'>+            if (sym_min == key) rb_hash_aset(h, key, INT2FIX(m_min(dat)));</div><div class='add'>+            if (sym_sec == key) rb_hash_aset(h, key, INT2FIX(m_sec(dat)));</div><div class='add'>+            if (sym_sec_fraction == key) rb_hash_aset(h, key, m_sf_in_sec(dat));</div><div class='add'>+            if (sym_zone == key) rb_hash_aset(h, key, m_zone(dat));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return h;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    deconstruct_keys(array_of_names_or_nil) -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ *  Returns a hash of the name/value pairs, to use in pattern matching.</div><div class='add'>+ *  Possible keys are: &lt;tt&gt;:year&lt;/tt&gt;, &lt;tt&gt;:month&lt;/tt&gt;, &lt;tt&gt;:day&lt;/tt&gt;,</div><div class='add'>+ *  &lt;tt&gt;:wday&lt;/tt&gt;, &lt;tt&gt;:yday&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  Possible usages:</div><div class='add'>+ *</div><div class='add'>+ *    d = Date.new(2022, 10, 5)</div><div class='add'>+ *</div><div class='add'>+ *    if d in wday: 3, day: ..7  # uses deconstruct_keys underneath</div><div class='add'>+ *      puts "first Wednesday of the month"</div><div class='add'>+ *    end</div><div class='add'>+ *    #=&gt; prints "first Wednesday of the month"</div><div class='add'>+ *</div><div class='add'>+ *    case d</div><div class='add'>+ *    in year: ...2022</div><div class='add'>+ *      puts "too old"</div><div class='add'>+ *    in month: ..9</div><div class='add'>+ *      puts "quarter 1-3"</div><div class='add'>+ *    in wday: 1..5, month:</div><div class='add'>+ *      puts "working day in month #{month}"</div><div class='add'>+ *    end</div><div class='add'>+ *    #=&gt; prints "working day in month 10"</div><div class='add'>+ *</div><div class='add'>+ *  Note that deconstruction by pattern can also be combined with class check:</div><div class='add'>+ *</div><div class='add'>+ *    if d in Date(wday: 3, day: ..7)</div><div class='add'>+ *      puts "first Wednesday of the month"</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+d_lite_deconstruct_keys(VALUE self, VALUE keys)</div><div class='add'>+{</div><div class='add'>+    return deconstruct_keys(self, keys, /* is_datetime=false */ 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_marshal_dump_old(VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -7134,7 +7585,6 @@ d_lite_marshal_load(VALUE self, VALUE a)</div><div class='ctx'>     get_d1(self);</div><div class='ctx'> </div><div class='ctx'>     rb_check_frozen(self);</div><div class='del'>-    rb_check_trusted(self);</div><div class='ctx'> </div><div class='ctx'>     if (!RB_TYPE_P(a, T_ARRAY))</div><div class='ctx'> 	rb_raise(rb_eTypeError, "expected an array");</div><div class='hunk'>@@ -7179,11 +7629,14 @@ d_lite_marshal_load(VALUE self, VALUE a)</div><div class='ctx'> </div><div class='ctx'>     if (simple_dat_p(dat)) {</div><div class='ctx'> 	if (df || !f_zero_p(sf) || of) {</div><div class='del'>-	    rb_raise(rb_eArgError,</div><div class='del'>-		     "cannot load complex into simple");</div><div class='add'>+	    /* loading a fractional date; promote to complex */</div><div class='add'>+	    dat = ruby_xrealloc(dat, sizeof(struct ComplexDateData));</div><div class='add'>+	    RTYPEDDATA(self)-&gt;data = dat;</div><div class='add'>+	    goto complex_data;</div><div class='ctx'> 	}</div><div class='ctx'> 	set_to_simple(self, &amp;dat-&gt;s, nth, jd, sg, 0, 0, 0, HAVE_JD);</div><div class='ctx'>     } else {</div><div class='add'>+      complex_data:</div><div class='ctx'> 	set_to_complex(self, &amp;dat-&gt;c, nth, jd, df, sf, of, sg,</div><div class='ctx'> 		       0, 0, 0, 0, 0, 0,</div><div class='ctx'> 		       HAVE_JD | HAVE_DF);</div><div class='hunk'>@@ -7244,12 +7697,16 @@ datetime_s_jd(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>       case 5:</div><div class='ctx'> 	val2off(vof, rof);</div><div class='ctx'>       case 4:</div><div class='add'>+        check_numeric(vs, "second");</div><div class='ctx'> 	num2int_with_frac(s, positive_inf);</div><div class='ctx'>       case 3:</div><div class='add'>+        check_numeric(vmin, "minute");</div><div class='ctx'> 	num2int_with_frac(min, 3);</div><div class='ctx'>       case 2:</div><div class='add'>+        check_numeric(vh, "hour");</div><div class='ctx'> 	num2int_with_frac(h, 2);</div><div class='ctx'>       case 1:</div><div class='add'>+        check_numeric(vjd, "jd");</div><div class='ctx'> 	num2num_with_frac(jd, 1);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -7258,7 +7715,7 @@ datetime_s_jd(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> 	int rh, rmin, rs, rjd, rjd2;</div><div class='ctx'> </div><div class='ctx'> 	if (!c_valid_time_p(h, min, s, &amp;rh, &amp;rmin, &amp;rs))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	canon24oc();</div><div class='ctx'> </div><div class='ctx'> 	decode_jd(jd, &amp;nth, &amp;rjd);</div><div class='hunk'>@@ -7313,14 +7770,19 @@ datetime_s_ordinal(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>       case 6:</div><div class='ctx'> 	val2off(vof, rof);</div><div class='ctx'>       case 5:</div><div class='add'>+        check_numeric(vs, "second");</div><div class='ctx'> 	num2int_with_frac(s, positive_inf);</div><div class='ctx'>       case 4:</div><div class='add'>+        check_numeric(vmin, "minute");</div><div class='ctx'> 	num2int_with_frac(min, 4);</div><div class='ctx'>       case 3:</div><div class='add'>+        check_numeric(vh, "hour");</div><div class='ctx'> 	num2int_with_frac(h, 3);</div><div class='ctx'>       case 2:</div><div class='add'>+        check_numeric(vd, "yday");</div><div class='ctx'> 	num2int_with_frac(d, 2);</div><div class='ctx'>       case 1:</div><div class='add'>+        check_numeric(vy, "year");</div><div class='ctx'> 	y = vy;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -7332,9 +7794,9 @@ datetime_s_ordinal(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> 			     &amp;nth, &amp;ry,</div><div class='ctx'> 			     &amp;rd, &amp;rjd,</div><div class='ctx'> 			     &amp;ns))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	if (!c_valid_time_p(h, min, s, &amp;rh, &amp;rmin, &amp;rs))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	canon24oc();</div><div class='ctx'> </div><div class='ctx'> 	rjd2 = jd_local_to_utc(rjd,</div><div class='hunk'>@@ -7354,17 +7816,7 @@ datetime_s_ordinal(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *    DateTime.civil([year=-4712[, month=1[, mday=1[, hour=0[, minute=0[, second=0[, offset=0[, start=Date::ITALY]]]]]]]])  -&gt;  datetime</div><div class='del'>- *    DateTime.new([year=-4712[, month=1[, mday=1[, hour=0[, minute=0[, second=0[, offset=0[, start=Date::ITALY]]]]]]]])    -&gt;  datetime</div><div class='del'>- *</div><div class='del'>- * Creates a DateTime object denoting the given calendar date.</div><div class='del'>- *</div><div class='del'>- *    DateTime.new(2001,2,3)	#=&gt; #&lt;DateTime: 2001-02-03T00:00:00+00:00 ...&gt;</div><div class='del'>- *    DateTime.new(2001,2,3,4,5,6,'+7')</div><div class='del'>- *				#=&gt; #&lt;DateTime: 2001-02-03T04:05:06+07:00 ...&gt;</div><div class='del'>- *    DateTime.new(2001,-11,-26,-20,-55,-54,'+7')</div><div class='del'>- *				#=&gt; #&lt;DateTime: 2001-02-03T04:05:06+07:00 ...&gt;</div><div class='add'>+ * Same as DateTime.new.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> datetime_s_civil(int argc, VALUE *argv, VALUE klass)</div><div class='hunk'>@@ -7401,16 +7853,22 @@ datetime_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>       case 7:</div><div class='ctx'> 	val2off(vof, rof);</div><div class='ctx'>       case 6:</div><div class='add'>+        check_numeric(vs, "second");</div><div class='ctx'> 	num2int_with_frac(s, positive_inf);</div><div class='ctx'>       case 5:</div><div class='add'>+        check_numeric(vmin, "minute");</div><div class='ctx'> 	num2int_with_frac(min, 5);</div><div class='ctx'>       case 4:</div><div class='add'>+        check_numeric(vh, "hour");</div><div class='ctx'> 	num2int_with_frac(h, 4);</div><div class='ctx'>       case 3:</div><div class='add'>+        check_numeric(vd, "day");</div><div class='ctx'> 	num2int_with_frac(d, 3);</div><div class='ctx'>       case 2:</div><div class='add'>+        check_numeric(vm, "month");</div><div class='ctx'> 	m = NUM2INT(vm);</div><div class='ctx'>       case 1:</div><div class='add'>+        check_numeric(vy, "year");</div><div class='ctx'> 	y = vy;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -7421,9 +7879,9 @@ datetime_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	if (!valid_gregorian_p(y, m, d,</div><div class='ctx'> 			       &amp;nth, &amp;ry,</div><div class='ctx'> 			       &amp;rm, &amp;rd))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	if (!c_valid_time_p(h, min, s, &amp;rh, &amp;rmin, &amp;rs))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	canon24oc();</div><div class='ctx'> </div><div class='ctx'> 	set_to_complex(self, dat,</div><div class='hunk'>@@ -7442,9 +7900,9 @@ datetime_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 			   &amp;nth, &amp;ry,</div><div class='ctx'> 			   &amp;rm, &amp;rd, &amp;rjd,</div><div class='ctx'> 			   &amp;ns))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	if (!c_valid_time_p(h, min, s, &amp;rh, &amp;rmin, &amp;rs))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	canon24oc();</div><div class='ctx'> </div><div class='ctx'> 	rjd2 = jd_local_to_utc(rjd,</div><div class='hunk'>@@ -7499,16 +7957,22 @@ datetime_s_commercial(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>       case 7:</div><div class='ctx'> 	val2off(vof, rof);</div><div class='ctx'>       case 6:</div><div class='add'>+        check_numeric(vs, "second");</div><div class='ctx'> 	num2int_with_frac(s, positive_inf);</div><div class='ctx'>       case 5:</div><div class='add'>+        check_numeric(vmin, "minute");</div><div class='ctx'> 	num2int_with_frac(min, 5);</div><div class='ctx'>       case 4:</div><div class='add'>+        check_numeric(vh, "hour");</div><div class='ctx'> 	num2int_with_frac(h, 4);</div><div class='ctx'>       case 3:</div><div class='add'>+        check_numeric(vd, "cwday");</div><div class='ctx'> 	num2int_with_frac(d, 3);</div><div class='ctx'>       case 2:</div><div class='add'>+        check_numeric(vw, "cweek");</div><div class='ctx'> 	w = NUM2INT(vw);</div><div class='ctx'>       case 1:</div><div class='add'>+        check_numeric(vy, "year");</div><div class='ctx'> 	y = vy;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -7520,9 +7984,9 @@ datetime_s_commercial(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> 				&amp;nth, &amp;ry,</div><div class='ctx'> 				&amp;rw, &amp;rd, &amp;rjd,</div><div class='ctx'> 				&amp;ns))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	if (!c_valid_time_p(h, min, s, &amp;rh, &amp;rmin, &amp;rs))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	canon24oc();</div><div class='ctx'> </div><div class='ctx'> 	rjd2 = jd_local_to_utc(rjd,</div><div class='hunk'>@@ -7542,6 +8006,7 @@ datetime_s_commercial(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef NDEBUG</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> datetime_s_weeknum(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -7591,9 +8056,9 @@ datetime_s_weeknum(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> 			     &amp;nth, &amp;ry,</div><div class='ctx'> 			     &amp;rw, &amp;rd, &amp;rjd,</div><div class='ctx'> 			     &amp;ns))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	if (!c_valid_time_p(h, min, s, &amp;rh, &amp;rmin, &amp;rs))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	canon24oc();</div><div class='ctx'> </div><div class='ctx'> 	rjd2 = jd_local_to_utc(rjd,</div><div class='hunk'>@@ -7611,6 +8076,7 @@ datetime_s_weeknum(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> datetime_s_nth_kday(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -7660,9 +8126,9 @@ datetime_s_nth_kday(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> 			      &amp;nth, &amp;ry,</div><div class='ctx'> 			      &amp;rm, &amp;rn, &amp;rk, &amp;rjd,</div><div class='ctx'> 			      &amp;ns))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	if (!c_valid_time_p(h, min, s, &amp;rh, &amp;rmin, &amp;rs))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> 	canon24oc();</div><div class='ctx'> </div><div class='ctx'> 	rjd2 = jd_local_to_utc(rjd,</div><div class='hunk'>@@ -7735,7 +8201,7 @@ datetime_s_now(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> #ifdef HAVE_STRUCT_TM_TM_GMTOFF</div><div class='ctx'>     of = tm.tm_gmtoff;</div><div class='ctx'> #elif defined(HAVE_TIMEZONE)</div><div class='del'>-#ifdef HAVE_ALTZONE</div><div class='add'>+#if defined(HAVE_ALTZONE) &amp;&amp; !defined(_AIX)</div><div class='ctx'>     of = (long)-((tm.tm_isdst &gt; 0) ? altzone : timezone);</div><div class='ctx'> #else</div><div class='ctx'>     of = (long)-timezone;</div><div class='hunk'>@@ -7805,7 +8271,7 @@ dt_new_by_frags(VALUE klass, VALUE hash, VALUE sg)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(hash))</div><div class='del'>-	rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	rb_raise(eDateError, "invalid date");</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(ref_hash("jd")) &amp;&amp;</div><div class='ctx'> 	NIL_P(ref_hash("yday")) &amp;&amp;</div><div class='hunk'>@@ -7832,7 +8298,7 @@ dt_new_by_frags(VALUE klass, VALUE hash, VALUE sg)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(jd))</div><div class='del'>-	rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	rb_raise(eDateError, "invalid date");</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='ctx'> 	int rh, rmin, rs;</div><div class='hunk'>@@ -7841,7 +8307,7 @@ dt_new_by_frags(VALUE klass, VALUE hash, VALUE sg)</div><div class='ctx'> 			    NUM2INT(ref_hash("min")),</div><div class='ctx'> 			    NUM2INT(ref_hash("sec")),</div><div class='ctx'> 			    &amp;rh, &amp;rmin, &amp;rs))</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid date");</div><div class='add'>+	    rb_raise(eDateError, "invalid date");</div><div class='ctx'> </div><div class='ctx'> 	df = time_to_df(rh, rmin, rs);</div><div class='ctx'>     }</div><div class='hunk'>@@ -7951,10 +8417,15 @@ datetime_s_strptime(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    DateTime.parse(string='-4712-01-01T00:00:00+00:00'[, comp=true[, start=Date::ITALY]])  -&gt;  datetime</div><div class='add'>+ *    DateTime.parse(string='-4712-01-01T00:00:00+00:00'[, comp=true[, start=Date::ITALY]], limit: 128)  -&gt;  datetime</div><div class='ctx'>  *</div><div class='ctx'>  * Parses the given representation of date and time, and creates a</div><div class='del'>- * DateTime object.  This method does not function as a validator.</div><div class='add'>+ * DateTime object.</div><div class='add'>+ *</div><div class='add'>+ * This method *does* *not* function as a validator.  If the input</div><div class='add'>+ * string does not match valid formats strictly, you may get a cryptic</div><div class='add'>+ * result.  Should consider to use DateTime.strptime instead of this</div><div class='add'>+ * method as possible.</div><div class='ctx'>  *</div><div class='ctx'>  * If the optional second argument is true and the detected year is in</div><div class='ctx'>  * the range "00" to "99", makes it full.</div><div class='hunk'>@@ -7965,13 +8436,18 @@ datetime_s_strptime(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>  *				#=&gt; #&lt;DateTime: 2001-02-03T04:05:06+07:00 ...&gt;</div><div class='ctx'>  *    DateTime.parse('3rd Feb 2001 04:05:06 PM')</div><div class='ctx'>  *				#=&gt; #&lt;DateTime: 2001-02-03T16:05:06+00:00 ...&gt;</div><div class='add'>+ *</div><div class='add'>+ * Raise an ArgumentError when the string length is longer than _limit_.</div><div class='add'>+ * You can stop this check by passing &lt;code&gt;limit: nil&lt;/code&gt;, but note</div><div class='add'>+ * that it may take a long time to parse.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> datetime_s_parse(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, comp, sg;</div><div class='add'>+    VALUE str, comp, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "03", &amp;str, &amp;comp, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "03:", &amp;str, &amp;comp, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -7983,18 +8459,20 @@ datetime_s_parse(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE argv2[2], hash;</div><div class='del'>-</div><div class='del'>-	argv2[0] = str;</div><div class='del'>-	argv2[1] = comp;</div><div class='del'>-	hash = date_s__parse(2, argv2, klass);</div><div class='add'>+        int argc2 = 2;</div><div class='add'>+        VALUE argv2[3], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        argv2[1] = comp;</div><div class='add'>+        argv2[2] = opt;</div><div class='add'>+        if (!NIL_P(opt)) argc2++;</div><div class='add'>+	hash = date_s__parse(argc2, argv2, klass);</div><div class='ctx'> 	return dt_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    DateTime.iso8601(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY])  -&gt;  datetime</div><div class='add'>+ *    DateTime.iso8601(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128)  -&gt;  datetime</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new DateTime object by parsing from a string according to</div><div class='ctx'>  * some typical ISO 8601 formats.</div><div class='hunk'>@@ -8005,13 +8483,18 @@ datetime_s_parse(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>  *				#=&gt; #&lt;DateTime: 2001-02-03T04:05:06+07:00 ...&gt;</div><div class='ctx'>  *    DateTime.iso8601('2001-W05-6T04:05:06+07:00')</div><div class='ctx'>  *				#=&gt; #&lt;DateTime: 2001-02-03T04:05:06+07:00 ...&gt;</div><div class='add'>+ *</div><div class='add'>+ * Raise an ArgumentError when the string length is longer than _limit_.</div><div class='add'>+ * You can stop this check by passing &lt;code&gt;limit: nil&lt;/code&gt;, but note</div><div class='add'>+ * that it may take a long time to parse.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> datetime_s_iso8601(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -8021,27 +8504,37 @@ datetime_s_iso8601(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__iso8601(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        argv2[1] = opt;</div><div class='add'>+        if (!NIL_P(opt)) argc2--;</div><div class='add'>+	hash = date_s__iso8601(argc2, argv2, klass);</div><div class='ctx'> 	return dt_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    DateTime.rfc3339(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY])  -&gt;  datetime</div><div class='add'>+ *    DateTime.rfc3339(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128)  -&gt;  datetime</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new DateTime object by parsing from a string according to</div><div class='ctx'>  * some typical RFC 3339 formats.</div><div class='ctx'>  *</div><div class='ctx'>  *    DateTime.rfc3339('2001-02-03T04:05:06+07:00')</div><div class='ctx'>  *				#=&gt; #&lt;DateTime: 2001-02-03T04:05:06+07:00 ...&gt;</div><div class='add'>+ *</div><div class='add'>+ * Raise an ArgumentError when the string length is longer than _limit_.</div><div class='add'>+ * You can stop this check by passing &lt;code&gt;limit: nil&lt;/code&gt;, but note</div><div class='add'>+ * that it may take a long time to parse.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> datetime_s_rfc3339(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -8051,27 +8544,37 @@ datetime_s_rfc3339(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__rfc3339(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        argv2[1] = opt;</div><div class='add'>+        if (!NIL_P(opt)) argc2++;</div><div class='add'>+	hash = date_s__rfc3339(argc2, argv2, klass);</div><div class='ctx'> 	return dt_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    DateTime.xmlschema(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY])  -&gt;  datetime</div><div class='add'>+ *    DateTime.xmlschema(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128)  -&gt;  datetime</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new DateTime object by parsing from a string according to</div><div class='ctx'>  * some typical XML Schema formats.</div><div class='ctx'>  *</div><div class='ctx'>  *    DateTime.xmlschema('2001-02-03T04:05:06+07:00')</div><div class='ctx'>  *				#=&gt; #&lt;DateTime: 2001-02-03T04:05:06+07:00 ...&gt;</div><div class='add'>+ *</div><div class='add'>+ * Raise an ArgumentError when the string length is longer than _limit_.</div><div class='add'>+ * You can stop this check by passing &lt;code&gt;limit: nil&lt;/code&gt;, but note</div><div class='add'>+ * that it may take a long time to parse.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> datetime_s_xmlschema(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -8081,28 +8584,38 @@ datetime_s_xmlschema(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__xmlschema(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        argv2[1] = opt;</div><div class='add'>+        if (!NIL_P(opt)) argc2++;</div><div class='add'>+	hash = date_s__xmlschema(argc2, argv2, klass);</div><div class='ctx'> 	return dt_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    DateTime.rfc2822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY])  -&gt;  datetime</div><div class='del'>- *    DateTime.rfc822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY])   -&gt;  datetime</div><div class='add'>+ *    DateTime.rfc2822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY], limit: 128)  -&gt;  datetime</div><div class='add'>+ *    DateTime.rfc822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY], limit: 128)   -&gt;  datetime</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new DateTime object by parsing from a string according to</div><div class='ctx'>  * some typical RFC 2822 formats.</div><div class='ctx'>  *</div><div class='ctx'>  *     DateTime.rfc2822('Sat, 3 Feb 2001 04:05:06 +0700')</div><div class='ctx'>  *				#=&gt; #&lt;DateTime: 2001-02-03T04:05:06+07:00 ...&gt;</div><div class='add'>+ *</div><div class='add'>+ * Raise an ArgumentError when the string length is longer than _limit_.</div><div class='add'>+ * You can stop this check by passing &lt;code&gt;limit: nil&lt;/code&gt;, but note</div><div class='add'>+ * that it may take a long time to parse.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> datetime_s_rfc2822(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -8112,7 +8625,12 @@ datetime_s_rfc2822(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__rfc2822(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        argv2[1] = opt;</div><div class='add'>+        if (!NIL_P(opt)) argc2++;</div><div class='add'>+	hash = date_s__rfc2822(argc2, argv2, klass);</div><div class='ctx'> 	return dt_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -8126,13 +8644,18 @@ datetime_s_rfc2822(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>  *</div><div class='ctx'>  *    DateTime.httpdate('Sat, 03 Feb 2001 04:05:06 GMT')</div><div class='ctx'>  *				#=&gt; #&lt;DateTime: 2001-02-03T04:05:06+00:00 ...&gt;</div><div class='add'>+ *</div><div class='add'>+ * Raise an ArgumentError when the string length is longer than _limit_.</div><div class='add'>+ * You can stop this check by passing &lt;code&gt;limit: nil&lt;/code&gt;, but note</div><div class='add'>+ * that it may take a long time to parse.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> datetime_s_httpdate(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -8142,27 +8665,42 @@ datetime_s_httpdate(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__httpdate(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        argv2[1] = opt;</div><div class='add'>+        if (!NIL_P(opt)) argc2++;</div><div class='add'>+	hash = date_s__httpdate(argc2, argv2, klass);</div><div class='ctx'> 	return dt_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    DateTime.jisx0301(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY])  -&gt;  datetime</div><div class='add'>+ *    DateTime.jisx0301(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128)  -&gt;  datetime</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new DateTime object by parsing from a string according to</div><div class='ctx'>  * some typical JIS X 0301 formats.</div><div class='ctx'>  *</div><div class='ctx'>  *    DateTime.jisx0301('H13.02.03T04:05:06+07:00')</div><div class='ctx'>  *				#=&gt; #&lt;DateTime: 2001-02-03T04:05:06+07:00 ...&gt;</div><div class='add'>+ *</div><div class='add'>+ * For no-era year, legacy format, Heisei is assumed.</div><div class='add'>+ *</div><div class='add'>+ *    DateTime.jisx0301('13.02.03T04:05:06+07:00')</div><div class='add'>+ *				#=&gt; #&lt;DateTime: 2001-02-03T04:05:06+07:00 ...&gt;</div><div class='add'>+ *</div><div class='add'>+ * Raise an ArgumentError when the string length is longer than _limit_.</div><div class='add'>+ * You can stop this check by passing &lt;code&gt;limit: nil&lt;/code&gt;, but note</div><div class='add'>+ * that it may take a long time to parse.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> datetime_s_jisx0301(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str, sg;</div><div class='add'>+    VALUE str, sg, opt;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;str, &amp;sg);</div><div class='add'>+    rb_scan_args(argc, argv, "02:", &amp;str, &amp;sg, &amp;opt);</div><div class='add'>+    if (!NIL_P(opt)) argc--;</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='hunk'>@@ -8172,7 +8710,12 @@ datetime_s_jisx0301(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE hash = date_s__jisx0301(klass, str);</div><div class='add'>+        int argc2 = 1;</div><div class='add'>+        VALUE argv2[2], hash;</div><div class='add'>+        argv2[0] = str;</div><div class='add'>+        argv2[1] = opt;</div><div class='add'>+        if (!NIL_P(opt)) argc2++;</div><div class='add'>+	hash = date_s__jisx0301(argc2, argv2, klass);</div><div class='ctx'> 	return dt_new_by_frags(klass, hash, sg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -8195,181 +8738,16 @@ dt_lite_to_s(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    dt.strftime([format='%FT%T%:z'])  -&gt;  string</div><div class='del'>- *</div><div class='del'>- * Formats date according to the directives in the given format</div><div class='del'>- * string.</div><div class='del'>- * The directives begin with a percent (%) character.</div><div class='del'>- * Any text not listed as a directive will be passed through to the</div><div class='del'>- * output string.</div><div class='del'>- *</div><div class='del'>- * A directive consists of a percent (%) character,</div><div class='del'>- * zero or more flags, an optional minimum field width,</div><div class='del'>- * an optional modifier, and a conversion specifier</div><div class='del'>- * as follows.</div><div class='del'>- *</div><div class='del'>- *    %&lt;flags&gt;&lt;width&gt;&lt;modifier&gt;&lt;conversion&gt;</div><div class='del'>- *</div><div class='del'>- * Flags:</div><div class='del'>- *    -  don't pad a numerical output.</div><div class='del'>- *    _  use spaces for padding.</div><div class='del'>- *    0  use zeros for padding.</div><div class='del'>- *    ^  upcase the result string.</div><div class='del'>- *    #  change case.</div><div class='del'>- *    :  use colons for %z.</div><div class='del'>- *</div><div class='del'>- * The minimum field width specifies the minimum width.</div><div class='del'>- *</div><div class='del'>- * The modifiers are "E" and "O".</div><div class='del'>- * They are ignored.</div><div class='del'>- *</div><div class='del'>- * Format directives:</div><div class='del'>- *</div><div class='del'>- *    Date (Year, Month, Day):</div><div class='del'>- *      %Y - Year with century (can be negative, 4 digits at least)</div><div class='del'>- *              -0001, 0000, 1995, 2009, 14292, etc.</div><div class='del'>- *      %C - year / 100 (round down.  20 in 2009)</div><div class='del'>- *      %y - year % 100 (00..99)</div><div class='del'>- *</div><div class='del'>- *      %m - Month of the year, zero-padded (01..12)</div><div class='del'>- *              %_m  blank-padded ( 1..12)</div><div class='del'>- *              %-m  no-padded (1..12)</div><div class='del'>- *      %B - The full month name (``January'')</div><div class='del'>- *              %^B  uppercased (``JANUARY'')</div><div class='del'>- *      %b - The abbreviated month name (``Jan'')</div><div class='del'>- *              %^b  uppercased (``JAN'')</div><div class='del'>- *      %h - Equivalent to %b</div><div class='del'>- *</div><div class='del'>- *      %d - Day of the month, zero-padded (01..31)</div><div class='del'>- *              %-d  no-padded (1..31)</div><div class='del'>- *      %e - Day of the month, blank-padded ( 1..31)</div><div class='del'>- *</div><div class='del'>- *      %j - Day of the year (001..366)</div><div class='del'>- *</div><div class='del'>- *    Time (Hour, Minute, Second, Subsecond):</div><div class='del'>- *      %H - Hour of the day, 24-hour clock, zero-padded (00..23)</div><div class='del'>- *      %k - Hour of the day, 24-hour clock, blank-padded ( 0..23)</div><div class='del'>- *      %I - Hour of the day, 12-hour clock, zero-padded (01..12)</div><div class='del'>- *      %l - Hour of the day, 12-hour clock, blank-padded ( 1..12)</div><div class='del'>- *      %P - Meridian indicator, lowercase (``am'' or ``pm'')</div><div class='del'>- *      %p - Meridian indicator, uppercase (``AM'' or ``PM'')</div><div class='del'>- *</div><div class='del'>- *      %M - Minute of the hour (00..59)</div><div class='del'>- *</div><div class='del'>- *      %S - Second of the minute (00..60)</div><div class='del'>- *</div><div class='del'>- *      %L - Millisecond of the second (000..999)</div><div class='del'>- *      %N - Fractional seconds digits, default is 9 digits (nanosecond)</div><div class='del'>- *              %3N  millisecond (3 digits)   %15N femtosecond (15 digits)</div><div class='del'>- *              %6N  microsecond (6 digits)   %18N attosecond  (18 digits)</div><div class='del'>- *              %9N  nanosecond  (9 digits)   %21N zeptosecond (21 digits)</div><div class='del'>- *              %12N picosecond (12 digits)   %24N yoctosecond (24 digits)</div><div class='del'>- *</div><div class='del'>- *    Time zone:</div><div class='del'>- *      %z - Time zone as hour and minute offset from UTC (e.g. +0900)</div><div class='del'>- *              %:z - hour and minute offset from UTC with a colon (e.g. +09:00)</div><div class='del'>- *              %::z - hour, minute and second offset from UTC (e.g. +09:00:00)</div><div class='del'>- *              %:::z - hour, minute and second offset from UTC</div><div class='del'>- *                                                (e.g. +09, +09:30, +09:30:30)</div><div class='del'>- *      %Z - Equivalent to %:z (e.g. +09:00)</div><div class='del'>- *</div><div class='del'>- *    Weekday:</div><div class='del'>- *      %A - The full weekday name (``Sunday'')</div><div class='del'>- *              %^A  uppercased (``SUNDAY'')</div><div class='del'>- *      %a - The abbreviated name (``Sun'')</div><div class='del'>- *              %^a  uppercased (``SUN'')</div><div class='del'>- *      %u - Day of the week (Monday is 1, 1..7)</div><div class='del'>- *      %w - Day of the week (Sunday is 0, 0..6)</div><div class='del'>- *</div><div class='del'>- *    ISO 8601 week-based year and week number:</div><div class='del'>- *    The week 1 of YYYY starts with a Monday and includes YYYY-01-04.</div><div class='del'>- *    The days in the year before the first week are in the last week of</div><div class='del'>- *    the previous year.</div><div class='del'>- *      %G - The week-based year</div><div class='del'>- *      %g - The last 2 digits of the week-based year (00..99)</div><div class='del'>- *      %V - Week number of the week-based year (01..53)</div><div class='del'>- *</div><div class='del'>- *    Week number:</div><div class='del'>- *    The week 1 of YYYY starts with a Sunday or Monday (according to %U</div><div class='del'>- *    or %W).  The days in the year before the first week are in week 0.</div><div class='del'>- *      %U - Week number of the year.  The week starts with Sunday.  (00..53)</div><div class='del'>- *      %W - Week number of the year.  The week starts with Monday.  (00..53)</div><div class='del'>- *</div><div class='del'>- *    Seconds since the Unix Epoch:</div><div class='del'>- *      %s - Number of seconds since 1970-01-01 00:00:00 UTC.</div><div class='del'>- *      %Q - Number of milliseconds since 1970-01-01 00:00:00 UTC.</div><div class='del'>- *</div><div class='del'>- *    Literal string:</div><div class='del'>- *      %n - Newline character (\n)</div><div class='del'>- *      %t - Tab character (\t)</div><div class='del'>- *      %% - Literal ``%'' character</div><div class='del'>- *</div><div class='del'>- *    Combination:</div><div class='del'>- *      %c - date and time (%a %b %e %T %Y)</div><div class='del'>- *      %D - Date (%m/%d/%y)</div><div class='del'>- *      %F - The ISO 8601 date format (%Y-%m-%d)</div><div class='del'>- *      %v - VMS date (%e-%b-%Y)</div><div class='del'>- *      %x - Same as %D</div><div class='del'>- *      %X - Same as %T</div><div class='del'>- *      %r - 12-hour time (%I:%M:%S %p)</div><div class='del'>- *      %R - 24-hour time (%H:%M)</div><div class='del'>- *      %T - 24-hour time (%H:%M:%S)</div><div class='del'>- *      %+ - date(1) (%a %b %e %H:%M:%S %Z %Y)</div><div class='del'>- *</div><div class='del'>- * This method is similar to the strftime() function defined in ISO C</div><div class='del'>- * and POSIX.</div><div class='del'>- * Several directives (%a, %A, %b, %B, %c, %p, %r, %x, %X, %E*, %O* and %Z)</div><div class='del'>- * are locale dependent in the function.</div><div class='del'>- * However, this method is locale independent.</div><div class='del'>- * So, the result may differ even if the same format string is used in other</div><div class='del'>- * systems such as C.</div><div class='del'>- * It is good practice to avoid %x and %X because there are corresponding</div><div class='del'>- * locale independent representations, %D and %T.</div><div class='del'>- *</div><div class='del'>- * Examples:</div><div class='del'>- *</div><div class='del'>- *    d = DateTime.new(2007,11,19,8,37,48,"-06:00")</div><div class='del'>- *				#=&gt; #&lt;DateTime: 2007-11-19T08:37:48-0600 ...&gt;</div><div class='del'>- *    d.strftime("Printed on %m/%d/%Y")   #=&gt; "Printed on 11/19/2007"</div><div class='del'>- *    d.strftime("at %I:%M%p")            #=&gt; "at 08:37AM"</div><div class='del'>- *</div><div class='del'>- * Various ISO 8601 formats:</div><div class='del'>- *    %Y%m%d           =&gt; 20071119                  Calendar date (basic)</div><div class='del'>- *    %F               =&gt; 2007-11-19                Calendar date (extended)</div><div class='del'>- *    %Y-%m            =&gt; 2007-11                   Calendar date, reduced accuracy, specific month</div><div class='del'>- *    %Y               =&gt; 2007                      Calendar date, reduced accuracy, specific year</div><div class='del'>- *    %C               =&gt; 20                        Calendar date, reduced accuracy, specific century</div><div class='del'>- *    %Y%j             =&gt; 2007323                   Ordinal date (basic)</div><div class='del'>- *    %Y-%j            =&gt; 2007-323                  Ordinal date (extended)</div><div class='del'>- *    %GW%V%u          =&gt; 2007W471                  Week date (basic)</div><div class='del'>- *    %G-W%V-%u        =&gt; 2007-W47-1                Week date (extended)</div><div class='del'>- *    %GW%V            =&gt; 2007W47                   Week date, reduced accuracy, specific week (basic)</div><div class='del'>- *    %G-W%V           =&gt; 2007-W47                  Week date, reduced accuracy, specific week (extended)</div><div class='del'>- *    %H%M%S           =&gt; 083748                    Local time (basic)</div><div class='del'>- *    %T               =&gt; 08:37:48                  Local time (extended)</div><div class='del'>- *    %H%M             =&gt; 0837                      Local time, reduced accuracy, specific minute (basic)</div><div class='del'>- *    %H:%M            =&gt; 08:37                     Local time, reduced accuracy, specific minute (extended)</div><div class='del'>- *    %H               =&gt; 08                        Local time, reduced accuracy, specific hour</div><div class='del'>- *    %H%M%S,%L        =&gt; 083748,000                Local time with decimal fraction, comma as decimal sign (basic)</div><div class='del'>- *    %T,%L            =&gt; 08:37:48,000              Local time with decimal fraction, comma as decimal sign (extended)</div><div class='del'>- *    %H%M%S.%L        =&gt; 083748.000                Local time with decimal fraction, full stop as decimal sign (basic)</div><div class='del'>- *    %T.%L            =&gt; 08:37:48.000              Local time with decimal fraction, full stop as decimal sign (extended)</div><div class='del'>- *    %H%M%S%z         =&gt; 083748-0600               Local time and the difference from UTC (basic)</div><div class='del'>- *    %T%:z            =&gt; 08:37:48-06:00            Local time and the difference from UTC (extended)</div><div class='del'>- *    %Y%m%dT%H%M%S%z  =&gt; 20071119T083748-0600      Date and time of day for calendar date (basic)</div><div class='del'>- *    %FT%T%:z         =&gt; 2007-11-19T08:37:48-06:00 Date and time of day for calendar date (extended)</div><div class='del'>- *    %Y%jT%H%M%S%z    =&gt; 2007323T083748-0600       Date and time of day for ordinal date (basic)</div><div class='del'>- *    %Y-%jT%T%:z      =&gt; 2007-323T08:37:48-06:00   Date and time of day for ordinal date (extended)</div><div class='del'>- *    %GW%V%uT%H%M%S%z =&gt; 2007W471T083748-0600      Date and time of day for week date (basic)</div><div class='del'>- *    %G-W%V-%uT%T%:z  =&gt; 2007-W47-1T08:37:48-06:00 Date and time of day for week date (extended)</div><div class='del'>- *    %Y%m%dT%H%M      =&gt; 20071119T0837             Calendar date and local time (basic)</div><div class='del'>- *    %FT%R            =&gt; 2007-11-19T08:37          Calendar date and local time (extended)</div><div class='del'>- *    %Y%jT%H%MZ       =&gt; 2007323T0837Z             Ordinal date and UTC of day (basic)</div><div class='del'>- *    %Y-%jT%RZ        =&gt; 2007-323T08:37Z           Ordinal date and UTC of day (extended)</div><div class='del'>- *    %GW%V%uT%H%M%z   =&gt; 2007W471T0837-0600        Week date and local time and difference from UTC (basic)</div><div class='del'>- *    %G-W%V-%uT%R%:z  =&gt; 2007-W47-1T08:37-06:00    Week date and local time and difference from UTC (extended)</div><div class='del'>- *</div><div class='del'>- * See also strftime(3) and ::strptime.</div><div class='add'>+ *   strftime(format = '%FT%T%:z') -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Returns a string representation of +self+,</div><div class='add'>+ * formatted according the given +format:</div><div class='add'>+ *</div><div class='add'>+ *   DateTime.now.strftime # =&gt; "2022-07-01T11:03:19-05:00"</div><div class='add'>+ *</div><div class='add'>+ * For other formats, see</div><div class='add'>+ * {Formats for Dates and Times}[doc/strftime_formatting.rdoc].</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> dt_lite_strftime(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -8457,6 +8835,47 @@ dt_lite_jisx0301(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 			 iso8601_timediv(self, n));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    deconstruct_keys(array_of_names_or_nil) -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ *  Returns a hash of the name/value pairs, to use in pattern matching.</div><div class='add'>+ *  Possible keys are: &lt;tt&gt;:year&lt;/tt&gt;, &lt;tt&gt;:month&lt;/tt&gt;, &lt;tt&gt;:day&lt;/tt&gt;,</div><div class='add'>+ *  &lt;tt&gt;:wday&lt;/tt&gt;, &lt;tt&gt;:yday&lt;/tt&gt;, &lt;tt&gt;:hour&lt;/tt&gt;, &lt;tt&gt;:min&lt;/tt&gt;,</div><div class='add'>+ *  &lt;tt&gt;:sec&lt;/tt&gt;, &lt;tt&gt;:sec_fraction&lt;/tt&gt;, &lt;tt&gt;:zone&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  Possible usages:</div><div class='add'>+ *</div><div class='add'>+ *    dt = DateTime.new(2022, 10, 5, 13, 30)</div><div class='add'>+ *</div><div class='add'>+ *    if d in wday: 1..5, hour: 10..18  # uses deconstruct_keys underneath</div><div class='add'>+ *      puts "Working time"</div><div class='add'>+ *    end</div><div class='add'>+ *    #=&gt; prints "Working time"</div><div class='add'>+ *</div><div class='add'>+ *    case dt</div><div class='add'>+ *    in year: ...2022</div><div class='add'>+ *      puts "too old"</div><div class='add'>+ *    in month: ..9</div><div class='add'>+ *      puts "quarter 1-3"</div><div class='add'>+ *    in wday: 1..5, month:</div><div class='add'>+ *      puts "working day in month #{month}"</div><div class='add'>+ *    end</div><div class='add'>+ *    #=&gt; prints "working day in month 10"</div><div class='add'>+ *</div><div class='add'>+ *  Note that deconstruction by pattern can also be combined with class check:</div><div class='add'>+ *</div><div class='add'>+ *    if d in DateTime(wday: 1..5, hour: 10..18, day: ..7)</div><div class='add'>+ *      puts "Working time, first week of the month"</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dt_lite_deconstruct_keys(VALUE self, VALUE keys)</div><div class='add'>+{</div><div class='add'>+    return deconstruct_keys(self, keys, /* is_datetime=true */ 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* conversions */</div><div class='ctx'> </div><div class='ctx'> #define f_subsec(x) rb_funcall(x, rb_intern("subsec"), 0)</div><div class='hunk'>@@ -8535,7 +8954,7 @@ time_to_datetime(VALUE self)</div><div class='ctx'>     ret = d_complex_new_internal(cDateTime,</div><div class='ctx'> 				 nth, 0,</div><div class='ctx'> 				 0, sf,</div><div class='del'>-				 of, DEFAULT_SG,</div><div class='add'>+				 of, GREGORIAN,</div><div class='ctx'> 				 ry, m, d,</div><div class='ctx'> 				 h, min, s,</div><div class='ctx'> 				 HAVE_CIVIL | HAVE_TIME);</div><div class='hunk'>@@ -8548,26 +8967,38 @@ time_to_datetime(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.to_time  -&gt;  time</div><div class='add'>+ *   to_time -&gt; time</div><div class='add'>+ *</div><div class='add'>+ * Returns a new Time object with the same value as +self+;</div><div class='add'>+ * if +self+ is a Julian date, derives its Gregorian date</div><div class='add'>+ * for conversion to the \Time object:</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).to_time               # =&gt; 2001-02-03 00:00:00 -0600</div><div class='add'>+ *   Date.new(2001, 2, 3, Date::JULIAN).to_time # =&gt; 2001-02-16 00:00:00 -0600</div><div class='ctx'>  *</div><div class='del'>- * Returns a Time object which denotes self.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_to_time(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    get_d1(self);</div><div class='add'>+    get_d1a(self);</div><div class='add'>+</div><div class='add'>+    if (m_julian_p(adat)) {</div><div class='add'>+        VALUE tmp = d_lite_gregorian(self);</div><div class='add'>+        get_d1b(tmp);</div><div class='add'>+        adat = bdat;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     return f_local3(rb_cTime,</div><div class='del'>-		    m_real_year(dat),</div><div class='del'>-		    INT2FIX(m_mon(dat)),</div><div class='del'>-		    INT2FIX(m_mday(dat)));</div><div class='add'>+        m_real_year(adat),</div><div class='add'>+        INT2FIX(m_mon(adat)),</div><div class='add'>+        INT2FIX(m_mday(adat)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    d.to_date  -&gt;  self</div><div class='add'>+ *   to_date -&gt; self</div><div class='ctx'>  *</div><div class='del'>- * Returns self.</div><div class='add'>+ * Returns +self+.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_to_date(VALUE self)</div><div class='hunk'>@@ -8579,7 +9010,10 @@ date_to_date(VALUE self)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    d.to_datetime  -&gt; datetime</div><div class='ctx'>  *</div><div class='del'>- * Returns a DateTime object which denotes self.</div><div class='add'>+ * Returns a DateTime whose value is the same as +self+:</div><div class='add'>+ *</div><div class='add'>+ *   Date.new(2001, 2, 3).to_datetime # =&gt; #&lt;DateTime: 2001-02-03T00:00:00+00:00&gt;</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_to_datetime(VALUE self)</div><div class='hunk'>@@ -8624,12 +9058,17 @@ date_to_datetime(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> datetime_to_time(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    volatile VALUE dup = dup_obj(self);</div><div class='add'>+    get_d1(self);</div><div class='add'>+</div><div class='add'>+    if (m_julian_p(dat)) {</div><div class='add'>+	self = d_lite_gregorian(self);</div><div class='add'>+	get_d1a(self);</div><div class='add'>+	dat = adat;</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     {</div><div class='ctx'> 	VALUE t;</div><div class='ctx'> </div><div class='del'>-	get_d1(dup);</div><div class='del'>-</div><div class='ctx'> 	t = rb_funcall(rb_cTime,</div><div class='ctx'> 		   rb_intern("new"),</div><div class='ctx'>                    7,</div><div class='hunk'>@@ -8697,6 +9136,7 @@ datetime_to_datetime(VALUE self)</div><div class='ctx'> #define MIN_JD -327</div><div class='ctx'> #define MAX_JD 366963925</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static int</div><div class='ctx'> test_civil(int from, int to, double sg)</div><div class='ctx'> {</div><div class='hunk'>@@ -8717,6 +9157,7 @@ test_civil(int from, int to, double sg)</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_test_civil(VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -8737,6 +9178,7 @@ date_s_test_civil(VALUE klass)</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static int</div><div class='ctx'> test_ordinal(int from, int to, double sg)</div><div class='ctx'> {</div><div class='hunk'>@@ -8757,6 +9199,7 @@ test_ordinal(int from, int to, double sg)</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_test_ordinal(VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -8777,6 +9220,7 @@ date_s_test_ordinal(VALUE klass)</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static int</div><div class='ctx'> test_commercial(int from, int to, double sg)</div><div class='ctx'> {</div><div class='hunk'>@@ -8797,6 +9241,7 @@ test_commercial(int from, int to, double sg)</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_test_commercial(VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -8817,6 +9262,7 @@ date_s_test_commercial(VALUE klass)</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static int</div><div class='ctx'> test_weeknum(int from, int to, int f, double sg)</div><div class='ctx'> {</div><div class='hunk'>@@ -8837,6 +9283,7 @@ test_weeknum(int from, int to, int f, double sg)</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_test_weeknum(VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -8861,6 +9308,7 @@ date_s_test_weeknum(VALUE klass)</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static int</div><div class='ctx'> test_nth_kday(int from, int to, double sg)</div><div class='ctx'> {</div><div class='hunk'>@@ -8881,6 +9329,7 @@ test_nth_kday(int from, int to, double sg)</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_test_nth_kday(VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -8901,6 +9350,7 @@ date_s_test_nth_kday(VALUE klass)</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static int</div><div class='ctx'> test_unit_v2v(VALUE i,</div><div class='ctx'> 	      VALUE (* conv1)(VALUE),</div><div class='hunk'>@@ -8912,6 +9362,7 @@ test_unit_v2v(VALUE i,</div><div class='ctx'>     return f_eqeq_p(o, i);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static int</div><div class='ctx'> test_unit_v2v_iter2(VALUE (* conv1)(VALUE),</div><div class='ctx'> 		    VALUE (* conv2)(VALUE))</div><div class='hunk'>@@ -8943,6 +9394,7 @@ test_unit_v2v_iter2(VALUE (* conv1)(VALUE),</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static int</div><div class='ctx'> test_unit_v2v_iter(VALUE (* conv1)(VALUE),</div><div class='ctx'> 		   VALUE (* conv2)(VALUE))</div><div class='hunk'>@@ -8954,6 +9406,7 @@ test_unit_v2v_iter(VALUE (* conv1)(VALUE),</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_test_unit_conv(VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -8968,6 +9421,7 @@ date_s_test_unit_conv(VALUE klass)</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> date_s_test_all(VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -9034,6 +9488,7 @@ mk_ary_of_str(long len, const char *a[])</div><div class='ctx'>     return o;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='ctx'> d_lite_zero(VALUE x)</div><div class='ctx'> {</div><div class='hunk'>@@ -9043,13 +9498,24 @@ d_lite_zero(VALUE x)</div><div class='ctx'> void</div><div class='ctx'> Init_date_core(void)</div><div class='ctx'> {</div><div class='del'>-#undef rb_intern</div><div class='del'>-#define rb_intern(str) rb_intern_const(str)</div><div class='del'>-</div><div class='del'>-    id_cmp = rb_intern("&lt;=&gt;");</div><div class='del'>-    id_le_p = rb_intern("&lt;=");</div><div class='del'>-    id_ge_p = rb_intern("&gt;=");</div><div class='del'>-    id_eqeq_p = rb_intern("==");</div><div class='add'>+    #ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+	RB_EXT_RACTOR_SAFE(true);</div><div class='add'>+    #endif</div><div class='add'>+    id_cmp = rb_intern_const("&lt;=&gt;");</div><div class='add'>+    id_le_p = rb_intern_const("&lt;=");</div><div class='add'>+    id_ge_p = rb_intern_const("&gt;=");</div><div class='add'>+    id_eqeq_p = rb_intern_const("==");</div><div class='add'>+</div><div class='add'>+    sym_year = ID2SYM(rb_intern_const("year"));</div><div class='add'>+    sym_month = ID2SYM(rb_intern_const("month"));</div><div class='add'>+    sym_yday = ID2SYM(rb_intern_const("yday"));</div><div class='add'>+    sym_wday = ID2SYM(rb_intern_const("wday"));</div><div class='add'>+    sym_day = ID2SYM(rb_intern_const("day"));</div><div class='add'>+    sym_hour = ID2SYM(rb_intern_const("hour"));</div><div class='add'>+    sym_min = ID2SYM(rb_intern_const("min"));</div><div class='add'>+    sym_sec = ID2SYM(rb_intern_const("sec"));</div><div class='add'>+    sym_sec_fraction = ID2SYM(rb_intern_const("sec_fraction"));</div><div class='add'>+    sym_zone = ID2SYM(rb_intern_const("zone"));</div><div class='ctx'> </div><div class='ctx'>     half_days_in_day = rb_rational_new2(INT2FIX(1), INT2FIX(2));</div><div class='ctx'> </div><div class='hunk'>@@ -9071,153 +9537,83 @@ Init_date_core(void)</div><div class='ctx'>     negative_inf = -INFINITY;</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='del'>-     * date and datetime class - Tadayoshi Funaba 1998-2011</div><div class='del'>-     *</div><div class='del'>-     * 'date' provides two classes: Date and DateTime.</div><div class='add'>+     * \Class \Date provides methods for storing and manipulating</div><div class='add'>+     * calendar dates.</div><div class='ctx'>      *</div><div class='del'>-     * == Terms and Definitions</div><div class='add'>+     * Consider using</div><div class='add'>+     * {class Time}[rdoc-ref:Time]</div><div class='add'>+     * instead of class \Date if:</div><div class='ctx'>      *</div><div class='del'>-     * Some terms and definitions are based on ISO 8601 and JIS X 0301.</div><div class='add'>+     * - You need both dates and times; \Date handles only dates.</div><div class='add'>+     * - You need only Gregorian dates (and not Julian dates);</div><div class='add'>+     *   see {Julian and Gregorian Calendars}[rdoc-ref:calendars.rdoc].</div><div class='ctx'>      *</div><div class='del'>-     * === Calendar Date</div><div class='add'>+     * A \Date object, once created, is immutable, and cannot be modified.</div><div class='ctx'>      *</div><div class='del'>-     * The calendar date is a particular day of a calendar year,</div><div class='del'>-     * identified by its ordinal number within a calendar month within</div><div class='del'>-     * that year.</div><div class='add'>+     * == Creating a \Date</div><div class='ctx'>      *</div><div class='del'>-     * In those classes, this is so-called "civil".</div><div class='add'>+     * You can create a date for the current date, using Date.today:</div><div class='ctx'>      *</div><div class='del'>-     * === Ordinal Date</div><div class='add'>+     *   Date.today # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='ctx'>      *</div><div class='del'>-     * The ordinal date is a particular day of a calendar year identified</div><div class='del'>-     * by its ordinal number within the year.</div><div class='add'>+     * You can create a specific date from various combinations of arguments:</div><div class='ctx'>      *</div><div class='del'>-     * In those classes, this is so-called "ordinal".</div><div class='add'>+     * - Date.new takes integer year, month, and day-of-month:</div><div class='ctx'>      *</div><div class='del'>-     * === Week Date</div><div class='add'>+     *     Date.new(1999, 12, 31) # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='ctx'>      *</div><div class='del'>-     * The week date is a date identified by calendar week and day numbers.</div><div class='add'>+     * - Date.ordinal takes integer year and day-of-year:</div><div class='ctx'>      *</div><div class='del'>-     * The calendar week is a seven day period within a calendar year,</div><div class='del'>-     * starting on a Monday and identified by its ordinal number within</div><div class='del'>-     * the year; the first calendar week of the year is the one that</div><div class='del'>-     * includes the first Thursday of that year. In the Gregorian</div><div class='del'>-     * calendar, this is equivalent to the week which includes January 4.</div><div class='add'>+     *     Date.ordinal(1999, 365) # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='ctx'>      *</div><div class='del'>-     * In those classes, this is so-called "commercial".</div><div class='add'>+     * - Date.jd takes integer Julian day:</div><div class='ctx'>      *</div><div class='del'>-     * === Julian Day Number</div><div class='add'>+     *     Date.jd(2451544) # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='ctx'>      *</div><div class='del'>-     * The Julian day number is in elapsed days since noon (Greenwich Mean</div><div class='del'>-     * Time) on January 1, 4713 BCE (in the Julian calendar).</div><div class='add'>+     * - Date.commercial takes integer commercial data (year, week, day-of-week):</div><div class='ctx'>      *</div><div class='del'>-     * In this document, the astronomical Julian day number is the same as</div><div class='del'>-     * the original Julian day number. And the chronological Julian day</div><div class='del'>-     * number is a variation of the Julian day number. Its days begin at</div><div class='del'>-     * midnight on local time.</div><div class='add'>+     *     Date.commercial(1999, 52, 5) # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='ctx'>      *</div><div class='del'>-     * In this document, when the term "Julian day number" simply appears,</div><div class='del'>-     * it just refers to "chronological Julian day number", not the</div><div class='del'>-     * original.</div><div class='add'>+     * - Date.parse takes a string, which it parses heuristically:</div><div class='ctx'>      *</div><div class='del'>-     * In those classes, those are so-called "ajd" and "jd".</div><div class='add'>+     *     Date.parse('1999-12-31')    # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='add'>+     *     Date.parse('31-12-1999')    # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='add'>+     *     Date.parse('1999-365')      # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='add'>+     *     Date.parse('1999-W52-5')    # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='ctx'>      *</div><div class='del'>-     * === Modified Julian Day Number</div><div class='add'>+     * - Date.strptime takes a date string and a format string,</div><div class='add'>+     *   then parses the date string according to the format string:</div><div class='ctx'>      *</div><div class='del'>-     * The modified Julian day number is in elapsed days since midnight</div><div class='del'>-     * (Coordinated Universal Time) on November 17, 1858 CE (in the</div><div class='del'>-     * Gregorian calendar).</div><div class='add'>+     *     Date.strptime('1999-12-31', '%Y-%m-%d')  # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='add'>+     *     Date.strptime('31-12-1999', '%d-%m-%Y')  # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='add'>+     *     Date.strptime('1999-365', '%Y-%j')       # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='add'>+     *     Date.strptime('1999-W52-5', '%G-W%V-%u') # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='add'>+     *     Date.strptime('1999 52 5', '%Y %U %w')   # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='add'>+     *     Date.strptime('1999 52 5', '%Y %W %u')   # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='add'>+     *     Date.strptime('fri31dec99', '%a%d%b%y')  # =&gt; #&lt;Date: 1999-12-31&gt;</div><div class='ctx'>      *</div><div class='del'>-     * In this document, the astronomical modified Julian day number is</div><div class='del'>-     * the same as the original modified Julian day number. And the</div><div class='del'>-     * chronological modified Julian day number is a variation of the</div><div class='del'>-     * modified Julian day number. Its days begin at midnight on local</div><div class='del'>-     * time.</div><div class='add'>+     * See also the specialized methods in</div><div class='add'>+     * {"Specialized Format Strings" in Formats for Dates and Times}[rdoc-ref:strftime_formatting.rdoc@Specialized+Format+Strings]</div><div class='ctx'>      *</div><div class='del'>-     * In this document, when the term "modified Julian day number" simply</div><div class='del'>-     * appears, it just refers to "chronological modified Julian day</div><div class='del'>-     * number", not the original.</div><div class='del'>-     *</div><div class='del'>-     * In those classes, those are so-called "amjd" and "mjd".</div><div class='del'>-     *</div><div class='del'>-     * == Date</div><div class='del'>-     *</div><div class='del'>-     * A subclass of Object that includes the Comparable module and</div><div class='del'>-     * easily handles date.</div><div class='del'>-     *</div><div class='del'>-     * A Date object is created with Date::new, Date::jd, Date::ordinal,</div><div class='del'>-     * Date::commercial, Date::parse, Date::strptime, Date::today,</div><div class='del'>-     * Time#to_date, etc.</div><div class='del'>-     *</div><div class='del'>-     *     require 'date'</div><div class='add'>+     * == Argument +limit+</div><div class='ctx'>      *</div><div class='del'>-     *     Date.new(2001,2,3)</div><div class='del'>-     *	    #=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>-     *     Date.jd(2451944)</div><div class='del'>-     *	    #=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>-     *     Date.ordinal(2001,34)</div><div class='del'>-     *	    #=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>-     *     Date.commercial(2001,5,6)</div><div class='del'>-     *	    #=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>-     *     Date.parse('2001-02-03')</div><div class='del'>-     *	    #=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>-     *     Date.strptime('03-02-2001', '%d-%m-%Y')</div><div class='del'>-     *	    #=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>-     *     Time.new(2001,2,3).to_date</div><div class='del'>-     *	    #=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='add'>+     * Certain singleton methods in \Date that parse string arguments</div><div class='add'>+     * also take optional keyword argument +limit+,</div><div class='add'>+     * which can limit the length of the string argument.</div><div class='ctx'>      *</div><div class='del'>-     * All date objects are immutable; hence cannot modify themselves.</div><div class='add'>+     * When +limit+ is:</div><div class='ctx'>      *</div><div class='del'>-     * The concept of a date object can be represented as a tuple</div><div class='del'>-     * of the day count, the offset and the day of calendar reform.</div><div class='del'>-     *</div><div class='del'>-     * The day count denotes the absolute position of a temporal</div><div class='del'>-     * dimension. The offset is relative adjustment, which determines</div><div class='del'>-     * decoded local time with the day count. The day of calendar</div><div class='del'>-     * reform denotes the start day of the new style. The old style</div><div class='del'>-     * of the West is the Julian calendar which was adopted by</div><div class='del'>-     * Caesar. The new style is the Gregorian calendar, which is the</div><div class='del'>-     * current civil calendar of many countries.</div><div class='del'>-     *</div><div class='del'>-     * The day count is virtually the astronomical Julian day number.</div><div class='del'>-     * The offset in this class is usually zero, and cannot be</div><div class='del'>-     * specified directly.</div><div class='del'>-     *</div><div class='del'>-     * A Date object can be created with an optional argument,</div><div class='del'>-     * the day of calendar reform as a Julian day number, which</div><div class='del'>-     * should be 2298874 to 2426355 or negative/positive infinity.</div><div class='del'>-     * The default value is +Date::ITALY+ (2299161=1582-10-15).</div><div class='del'>-     * See also sample/cal.rb.</div><div class='del'>-     *</div><div class='del'>-     *     $ ruby sample/cal.rb -c it 10 1582</div><div class='del'>-     *         October 1582</div><div class='del'>-     *      S  M Tu  W Th  F  S</div><div class='del'>-     *         1  2  3  4 15 16</div><div class='del'>-     *     17 18 19 20 21 22 23</div><div class='del'>-     *     24 25 26 27 28 29 30</div><div class='del'>-     *     31</div><div class='del'>-     *</div><div class='del'>-     *     $ ruby sample/cal.rb -c gb  9 1752</div><div class='del'>-     *        September 1752</div><div class='del'>-     *      S  M Tu  W Th  F  S</div><div class='del'>-     *            1  2 14 15 16</div><div class='del'>-     *     17 18 19 20 21 22 23</div><div class='del'>-     *     24 25 26 27 28 29 30</div><div class='del'>-     *</div><div class='del'>-     * A Date object has various methods. See each reference.</div><div class='del'>-     *</div><div class='del'>-     *     d = Date.parse('3rd Feb 2001')</div><div class='del'>-     *					#=&gt; #&lt;Date: 2001-02-03 ...&gt;</div><div class='del'>-     *     d.year			#=&gt; 2001</div><div class='del'>-     *     d.mon			#=&gt; 2</div><div class='del'>-     *     d.mday			#=&gt; 3</div><div class='del'>-     *     d.wday			#=&gt; 6</div><div class='del'>-     *     d += 1			#=&gt; #&lt;Date: 2001-02-04 ...&gt;</div><div class='del'>-     *     d.strftime('%a %d %b %Y')	#=&gt; "Sun 04 Feb 2001"</div><div class='add'>+     * - Non-negative:</div><div class='add'>+     *   raises ArgumentError if the string length is greater than _limit_.</div><div class='add'>+     * - Other numeric or +nil+: ignores +limit+.</div><div class='add'>+     * - Other non-numeric: raises TypeError.</div><div class='ctx'>      *</div><div class='ctx'>      */</div><div class='ctx'>     cDate = rb_define_class("Date", rb_cObject);</div><div class='ctx'> </div><div class='add'>+    /* Exception for invalid date/time */</div><div class='add'>+    eDateError = rb_define_class_under(cDate, "Error", rb_eArgError);</div><div class='add'>+</div><div class='ctx'>     rb_include_module(cDate, rb_mComparable);</div><div class='ctx'> </div><div class='ctx'>     /* An array of strings of full month names in English.  The first</div><div class='hunk'>@@ -9323,19 +9719,19 @@ Init_date_core(void)</div><div class='ctx'>     rb_define_singleton_method(cDate, "strptime", date_s_strptime, -1);</div><div class='ctx'>     rb_define_singleton_method(cDate, "_parse", date_s__parse, -1);</div><div class='ctx'>     rb_define_singleton_method(cDate, "parse", date_s_parse, -1);</div><div class='del'>-    rb_define_singleton_method(cDate, "_iso8601", date_s__iso8601, 1);</div><div class='add'>+    rb_define_singleton_method(cDate, "_iso8601", date_s__iso8601, -1);</div><div class='ctx'>     rb_define_singleton_method(cDate, "iso8601", date_s_iso8601, -1);</div><div class='del'>-    rb_define_singleton_method(cDate, "_rfc3339", date_s__rfc3339, 1);</div><div class='add'>+    rb_define_singleton_method(cDate, "_rfc3339", date_s__rfc3339, -1);</div><div class='ctx'>     rb_define_singleton_method(cDate, "rfc3339", date_s_rfc3339, -1);</div><div class='del'>-    rb_define_singleton_method(cDate, "_xmlschema", date_s__xmlschema, 1);</div><div class='add'>+    rb_define_singleton_method(cDate, "_xmlschema", date_s__xmlschema, -1);</div><div class='ctx'>     rb_define_singleton_method(cDate, "xmlschema", date_s_xmlschema, -1);</div><div class='del'>-    rb_define_singleton_method(cDate, "_rfc2822", date_s__rfc2822, 1);</div><div class='del'>-    rb_define_singleton_method(cDate, "_rfc822", date_s__rfc2822, 1);</div><div class='add'>+    rb_define_singleton_method(cDate, "_rfc2822", date_s__rfc2822, -1);</div><div class='add'>+    rb_define_singleton_method(cDate, "_rfc822", date_s__rfc2822, -1);</div><div class='ctx'>     rb_define_singleton_method(cDate, "rfc2822", date_s_rfc2822, -1);</div><div class='ctx'>     rb_define_singleton_method(cDate, "rfc822", date_s_rfc2822, -1);</div><div class='del'>-    rb_define_singleton_method(cDate, "_httpdate", date_s__httpdate, 1);</div><div class='add'>+    rb_define_singleton_method(cDate, "_httpdate", date_s__httpdate, -1);</div><div class='ctx'>     rb_define_singleton_method(cDate, "httpdate", date_s_httpdate, -1);</div><div class='del'>-    rb_define_singleton_method(cDate, "_jisx0301", date_s__jisx0301, 1);</div><div class='add'>+    rb_define_singleton_method(cDate, "_jisx0301", date_s__jisx0301, -1);</div><div class='ctx'>     rb_define_singleton_method(cDate, "jisx0301", date_s_jisx0301, -1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(cDate, "initialize", date_initialize, -1);</div><div class='hunk'>@@ -9442,6 +9838,8 @@ Init_date_core(void)</div><div class='ctx'>     rb_define_method(cDate, "httpdate", d_lite_httpdate, 0);</div><div class='ctx'>     rb_define_method(cDate, "jisx0301", d_lite_jisx0301, 0);</div><div class='ctx'> </div><div class='add'>+    rb_define_method(cDate, "deconstruct_keys", d_lite_deconstruct_keys, 1);</div><div class='add'>+</div><div class='ctx'> #ifndef NDEBUG</div><div class='ctx'>     rb_define_method(cDate, "marshal_dump_old", d_lite_marshal_dump_old, 0);</div><div class='ctx'> #endif</div><div class='hunk'>@@ -9455,6 +9853,8 @@ Init_date_core(void)</div><div class='ctx'>      * A subclass of Date that easily handles date, hour, minute, second,</div><div class='ctx'>      * and offset.</div><div class='ctx'>      *</div><div class='add'>+     * DateTime class is considered deprecated. Use Time class.</div><div class='add'>+     *</div><div class='ctx'>      * DateTime does not consider any leap seconds, does not track</div><div class='ctx'>      * any summer time rules.</div><div class='ctx'>      *</div><div class='hunk'>@@ -9515,18 +9915,18 @@ Init_date_core(void)</div><div class='ctx'>      * === When should you use DateTime and when should you use Time?</div><div class='ctx'>      *</div><div class='ctx'>      * It's a common misconception that</div><div class='del'>-     * {William Shakespeare}[http://en.wikipedia.org/wiki/William_Shakespeare]</div><div class='add'>+     * {William Shakespeare}[https://en.wikipedia.org/wiki/William_Shakespeare]</div><div class='ctx'>      * and</div><div class='del'>-     * {Miguel de Cervantes}[http://en.wikipedia.org/wiki/Miguel_de_Cervantes]</div><div class='add'>+     * {Miguel de Cervantes}[https://en.wikipedia.org/wiki/Miguel_de_Cervantes]</div><div class='ctx'>      * died on the same day in history -</div><div class='ctx'>      * so much so that UNESCO named April 23 as</div><div class='del'>-     * {World Book Day because of this fact}[http://en.wikipedia.org/wiki/World_Book_Day].</div><div class='add'>+     * {World Book Day because of this fact}[https://en.wikipedia.org/wiki/World_Book_Day].</div><div class='ctx'>      * However, because England hadn't yet adopted the</div><div class='del'>-     * {Gregorian Calendar Reform}[http://en.wikipedia.org/wiki/Gregorian_calendar#Gregorian_reform]</div><div class='del'>-     * (and wouldn't until {1752}[http://en.wikipedia.org/wiki/Calendar_(New_Style)_Act_1750])</div><div class='add'>+     * {Gregorian Calendar Reform}[https://en.wikipedia.org/wiki/Gregorian_calendar#Gregorian_reform]</div><div class='add'>+     * (and wouldn't until {1752}[https://en.wikipedia.org/wiki/Calendar_(New_Style)_Act_1750])</div><div class='ctx'>      * their deaths are actually 10 days apart.</div><div class='ctx'>      * Since Ruby's Time class implements a</div><div class='del'>-     * {proleptic Gregorian calendar}[http://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar]</div><div class='add'>+     * {proleptic Gregorian calendar}[https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar]</div><div class='ctx'>      * and has no concept of calendar reform there's no way</div><div class='ctx'>      * to express this with Time objects. This is where DateTime steps in:</div><div class='ctx'>      *</div><div class='hunk'>@@ -9570,7 +9970,7 @@ Init_date_core(void)</div><div class='ctx'>      *      #=&gt; Fri, 04 May 1753 00:00:00 +0000</div><div class='ctx'>      *</div><div class='ctx'>      * As you can see, if we're accurately tracking the number of</div><div class='del'>-     * {solar years}[http://en.wikipedia.org/wiki/Tropical_year]</div><div class='add'>+     * {solar years}[https://en.wikipedia.org/wiki/Tropical_year]</div><div class='ctx'>      * since Shakespeare's birthday then the correct anniversary date</div><div class='ctx'>      * would be the 4th May and not the 23rd April.</div><div class='ctx'>      *</div><div class='hunk'>@@ -9582,10 +9982,10 @@ Init_date_core(void)</div><div class='ctx'>      * making the same mistakes as UNESCO. If you also have to deal</div><div class='ctx'>      * with timezones then best of luck - just bear in mind that</div><div class='ctx'>      * you'll probably be dealing with</div><div class='del'>-     * {local solar times}[http://en.wikipedia.org/wiki/Solar_time],</div><div class='add'>+     * {local solar times}[https://en.wikipedia.org/wiki/Solar_time],</div><div class='ctx'>      * since it wasn't until the 19th century that the introduction</div><div class='ctx'>      * of the railways necessitated the need for</div><div class='del'>-     * {Standard Time}[http://en.wikipedia.org/wiki/Standard_time#Great_Britain]</div><div class='add'>+     * {Standard Time}[https://en.wikipedia.org/wiki/Standard_time#Great_Britain]</div><div class='ctx'>      * and eventually timezones.</div><div class='ctx'>      */</div><div class='ctx'> </div><div class='hunk'>@@ -9650,6 +10050,8 @@ Init_date_core(void)</div><div class='ctx'>     rb_define_method(cDateTime, "rfc3339", dt_lite_rfc3339, -1);</div><div class='ctx'>     rb_define_method(cDateTime, "jisx0301", dt_lite_jisx0301, -1);</div><div class='ctx'> </div><div class='add'>+    rb_define_method(cDateTime, "deconstruct_keys", dt_lite_deconstruct_keys, 1);</div><div class='add'>+</div><div class='ctx'>     /* conversions */</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cTime, "to_time", time_to_time, 0);</div><div class='head'>diff --git a/ext/date/date_parse.c b/ext/date/date_parse.c<br/>index 69ac37f0a3..c6f26ecb91 100644<br/>--- a/<a href='/ruby.git/tree/ext/date/date_parse.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/date_parse.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/date/date_parse.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/date_parse.c</a></div><div class='hunk'>@@ -70,7 +70,7 @@ static size_t</div><div class='ctx'> digit_span(const char *s, const char *e)</div><div class='ctx'> {</div><div class='ctx'>     size_t i = 0;</div><div class='del'>-    while (s + i &lt; e &amp;&amp; isdigit(s[i])) i++;</div><div class='add'>+    while (s + i &lt; e &amp;&amp; isdigit((unsigned char)s[i])) i++;</div><div class='ctx'>     return i;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -110,7 +110,7 @@ s3e(VALUE hash, VALUE y, VALUE m, VALUE d, int bc)</div><div class='ctx'> </div><div class='ctx'> 	s = RSTRING_PTR(y);</div><div class='ctx'> 	ep = RSTRING_END(y);</div><div class='del'>-	while (s &lt; ep &amp;&amp; !issign(*s) &amp;&amp; !isdigit(*s))</div><div class='add'>+	while (s &lt; ep &amp;&amp; !issign(*s) &amp;&amp; !isdigit((unsigned char)*s))</div><div class='ctx'> 	    s++;</div><div class='ctx'> 	if (s &gt;= ep) goto no_date;</div><div class='ctx'> 	bp = s;</div><div class='hunk'>@@ -162,7 +162,7 @@ s3e(VALUE hash, VALUE y, VALUE m, VALUE d, int bc)</div><div class='ctx'> </div><div class='ctx'> 	s = RSTRING_PTR(y);</div><div class='ctx'> 	ep = RSTRING_END(y);</div><div class='del'>-	while (s &lt; ep &amp;&amp; !issign(*s) &amp;&amp; !isdigit(*s))</div><div class='add'>+	while (s &lt; ep &amp;&amp; !issign(*s) &amp;&amp; !isdigit((unsigned char)*s))</div><div class='ctx'> 	    s++;</div><div class='ctx'> 	if (s &gt;= ep) goto no_year;</div><div class='ctx'> 	bp = s;</div><div class='hunk'>@@ -199,7 +199,7 @@ s3e(VALUE hash, VALUE y, VALUE m, VALUE d, int bc)</div><div class='ctx'> </div><div class='ctx'> 	s = RSTRING_PTR(m);</div><div class='ctx'> 	ep = RSTRING_END(m);</div><div class='del'>-	while (s &lt; ep &amp;&amp; !isdigit(*s))</div><div class='add'>+	while (s &lt; ep &amp;&amp; !isdigit((unsigned char)*s))</div><div class='ctx'> 	    s++;</div><div class='ctx'> 	if (s &gt;= ep) goto no_month;</div><div class='ctx'> 	bp = s;</div><div class='hunk'>@@ -225,7 +225,7 @@ s3e(VALUE hash, VALUE y, VALUE m, VALUE d, int bc)</div><div class='ctx'> </div><div class='ctx'> 	s = RSTRING_PTR(d);</div><div class='ctx'> 	ep = RSTRING_END(d);</div><div class='del'>-	while (s &lt; ep &amp;&amp; !isdigit(*s))</div><div class='add'>+	while (s &lt; ep &amp;&amp; !isdigit((unsigned char)*s))</div><div class='ctx'> 	    s++;</div><div class='ctx'> 	if (s &gt;= ep) goto no_mday;</div><div class='ctx'> 	bp = s;</div><div class='hunk'>@@ -253,6 +253,8 @@ s3e(VALUE hash, VALUE y, VALUE m, VALUE d, int bc)</div><div class='ctx'> #define ABBR_DAYS "sun|mon|tue|wed|thu|fri|sat"</div><div class='ctx'> #define ABBR_MONTHS "jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec"</div><div class='ctx'> </div><div class='add'>+#define NUMBER "(?&lt;!\\d)\\d"</div><div class='add'>+</div><div class='ctx'> #ifdef TIGHT_PARSER</div><div class='ctx'> #define VALID_DAYS "(?:" DAYS ")" "|(?:tues|wednes|thurs|thur|" ABBR_DAYS ")\\.?"</div><div class='ctx'> #define VALID_MONTHS "(?:" MONTHS ")" "|(?:sept|" ABBR_MONTHS ")\\.?"</div><div class='hunk'>@@ -276,6 +278,7 @@ regcomp(const char *source, long len, int opt)</div><div class='ctx'>     VALUE pat;</div><div class='ctx'> </div><div class='ctx'>     pat = rb_reg_new(source, len, opt);</div><div class='add'>+    rb_obj_freeze(pat);</div><div class='ctx'>     rb_gc_register_mark_object(pat);</div><div class='ctx'>     return pat;</div><div class='ctx'> }</div><div class='hunk'>@@ -361,67 +364,100 @@ do { \</div><div class='ctx'> #include "zonetab.h"</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-str_end_with(const char *s, long l, const char *w)</div><div class='add'>+str_end_with_word(const char *s, long l, const char *w)</div><div class='ctx'> {</div><div class='ctx'>     int n = (int)strlen(w);</div><div class='del'>-    return (l &gt;= n &amp;&amp; strncmp(s - n, w, n) == 0);</div><div class='add'>+    if (l &lt;= n || !isspace((unsigned char)s[l - n - 1])) return 0;</div><div class='add'>+    if (strncasecmp(&amp;s[l - n], w, n)) return 0;</div><div class='add'>+    do ++n; while (l &gt; n &amp;&amp; isspace((unsigned char)s[l - n - 1]));</div><div class='add'>+    return n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-date_zone_to_diff(VALUE str)</div><div class='add'>+static long</div><div class='add'>+shrunk_size(const char *s, long l)</div><div class='ctx'> {</div><div class='del'>-    VALUE offset = Qnil;</div><div class='del'>-    VALUE vbuf = 0;</div><div class='del'>-</div><div class='del'>-    long l, i;</div><div class='del'>-    char *s, *dest, *d;</div><div class='del'>-    int sp = 1;</div><div class='del'>-</div><div class='del'>-    l = RSTRING_LEN(str);</div><div class='del'>-    s = RSTRING_PTR(str);</div><div class='del'>-</div><div class='del'>-    dest = d = ALLOCV_N(char, vbuf, l + 1);</div><div class='del'>-</div><div class='del'>-    for (i = 0; i &lt; l; i++) {</div><div class='del'>-	if (isspace((unsigned char)s[i]) || s[i] == '\0') {</div><div class='del'>-	    if (!sp)</div><div class='del'>-		*d++ = ' ';</div><div class='del'>-	    sp = 1;</div><div class='add'>+    long i, ni;</div><div class='add'>+    int sp = 0;</div><div class='add'>+    for (i = ni = 0; i &lt; l; ++i) {</div><div class='add'>+	if (!isspace((unsigned char)s[i])) {</div><div class='add'>+	    if (sp) ni++;</div><div class='add'>+	    sp = 0;</div><div class='add'>+	    ni++;</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='del'>-	    if (isalpha((unsigned char)s[i]))</div><div class='del'>-		*d++ = tolower((unsigned char)s[i]);</div><div class='del'>-	    else</div><div class='del'>-		*d++ = s[i];</div><div class='del'>-	    sp = 0;</div><div class='add'>+	    sp = 1;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='del'>-    if (d &gt; dest) {</div><div class='del'>-	if (*(d - 1) == ' ')</div><div class='del'>-	    --d;</div><div class='del'>-	*d = '\0';</div><div class='add'>+    return ni &lt; l ? ni : 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static long</div><div class='add'>+shrink_space(char *d, const char *s, long l)</div><div class='add'>+{</div><div class='add'>+    long i, ni;</div><div class='add'>+    int sp = 0;</div><div class='add'>+    for (i = ni = 0; i &lt; l; ++i) {</div><div class='add'>+	if (!isspace((unsigned char)s[i])) {</div><div class='add'>+	    if (sp) d[ni++] = ' ';</div><div class='add'>+	    sp = 0;</div><div class='add'>+	    d[ni++] = s[i];</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    sp = 1;</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='del'>-    l = d - dest;</div><div class='del'>-    s = dest;</div><div class='add'>+    return ni;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+date_zone_to_diff(VALUE str)</div><div class='add'>+{</div><div class='add'>+    VALUE offset = Qnil;</div><div class='add'>+    long l = RSTRING_LEN(str);</div><div class='add'>+    const char *s = RSTRING_PTR(str);</div><div class='add'>+</div><div class='ctx'>     {</div><div class='del'>-	static const char STD[] = " standard time";</div><div class='del'>-	static const char DST1[] = " daylight time";</div><div class='del'>-	static const char DST2[] = " dst";</div><div class='ctx'> 	int dst = 0;</div><div class='add'>+	int w;</div><div class='ctx'> </div><div class='del'>-	if (str_end_with(d, l, STD)) {</div><div class='del'>-	    l -= sizeof(STD) - 1;</div><div class='del'>-	}</div><div class='del'>-	else if (str_end_with(d, l, DST1)) {</div><div class='del'>-	    l -= sizeof(DST1) - 1;</div><div class='del'>-	    dst = 1;</div><div class='add'>+	if ((w = str_end_with_word(s, l, "time")) &gt; 0) {</div><div class='add'>+	    int wtime = w;</div><div class='add'>+	    l -= w;</div><div class='add'>+	    if ((w = str_end_with_word(s, l, "standard")) &gt; 0) {</div><div class='add'>+		l -= w;</div><div class='add'>+	    }</div><div class='add'>+	    else if ((w = str_end_with_word(s, l, "daylight")) &gt; 0) {</div><div class='add'>+		l -= w;</div><div class='add'>+		dst = 1;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		l += wtime;</div><div class='add'>+	    }</div><div class='ctx'> 	}</div><div class='del'>-	else if (str_end_with(d, l, DST2)) {</div><div class='del'>-	    l -= sizeof(DST2) - 1;</div><div class='add'>+	else if ((w = str_end_with_word(s, l, "dst")) &gt; 0) {</div><div class='add'>+	    l -= w;</div><div class='ctx'> 	    dst = 1;</div><div class='ctx'> 	}</div><div class='add'>+</div><div class='ctx'> 	{</div><div class='del'>-	    const struct zone *z = zonetab(s, (unsigned int)l);</div><div class='add'>+	    const char *zn = s;</div><div class='add'>+	    long sl = shrunk_size(s, l);</div><div class='add'>+	    char shrunk_buff[MAX_WORD_LENGTH]; /* no terminator to be added */</div><div class='add'>+	    const struct zone *z = 0;</div><div class='add'>+</div><div class='add'>+	    if (sl &lt;= 0) {</div><div class='add'>+		sl = l;</div><div class='add'>+	    }</div><div class='add'>+	    else if (sl &lt;= MAX_WORD_LENGTH) {</div><div class='add'>+		char *d = shrunk_buff;</div><div class='add'>+		sl = shrink_space(d, s, l);</div><div class='add'>+		zn = d;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (sl &gt; 0 &amp;&amp; sl &lt;= MAX_WORD_LENGTH) {</div><div class='add'>+		z = zonetab(zn, (unsigned int)sl);</div><div class='add'>+	    }</div><div class='add'>+</div><div class='ctx'> 	    if (z) {</div><div class='ctx'> 		int d = z-&gt;offset;</div><div class='ctx'> 		if (dst)</div><div class='hunk'>@@ -430,14 +466,15 @@ date_zone_to_diff(VALUE str)</div><div class='ctx'> 		goto ok;</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='add'>+</div><div class='ctx'> 	{</div><div class='ctx'> 	    char *p;</div><div class='ctx'> 	    int sign = 0;</div><div class='ctx'> 	    long hour = 0, min = 0, sec = 0;</div><div class='ctx'> </div><div class='ctx'> 	    if (l &gt; 3 &amp;&amp;</div><div class='del'>-		(strncmp(s, "gmt", 3) == 0 ||</div><div class='del'>-		 strncmp(s, "utc", 3) == 0)) {</div><div class='add'>+		(strncasecmp(s, "gmt", 3) == 0 ||</div><div class='add'>+		 strncasecmp(s, "utc", 3) == 0)) {</div><div class='ctx'> 		s += 3;</div><div class='ctx'> 		l -= 3;</div><div class='ctx'> 	    }</div><div class='hunk'>@@ -446,27 +483,53 @@ date_zone_to_diff(VALUE str)</div><div class='ctx'> 		s++;</div><div class='ctx'> 		l--;</div><div class='ctx'> </div><div class='add'>+#define out_of_range(v, min, max) ((v) &lt; (min) || (max) &lt; (v))</div><div class='ctx'> 		hour = STRTOUL(s, &amp;p, 10);</div><div class='ctx'> 		if (*p == ':') {</div><div class='add'>+		    if (out_of_range(hour, 0, 23)) return Qnil;</div><div class='ctx'> 		    s = ++p;</div><div class='ctx'> 		    min = STRTOUL(s, &amp;p, 10);</div><div class='add'>+		    if (out_of_range(min, 0, 59)) return Qnil;</div><div class='ctx'> 		    if (*p == ':') {</div><div class='ctx'> 			s = ++p;</div><div class='ctx'> 			sec = STRTOUL(s, &amp;p, 10);</div><div class='add'>+			if (out_of_range(sec, 0, 59)) return Qnil;</div><div class='ctx'> 		    }</div><div class='del'>-		    goto num;</div><div class='ctx'> 		}</div><div class='del'>-		if (*p == ',' || *p == '.') {</div><div class='del'>-		    char *e = 0;</div><div class='del'>-		    p++;</div><div class='del'>-		    min = STRTOUL(p, &amp;e, 10) * 3600;</div><div class='add'>+		else if (*p == ',' || *p == '.') {</div><div class='add'>+		    /* fractional hour */</div><div class='add'>+		    size_t n;</div><div class='add'>+		    int ov;</div><div class='add'>+		    /* no over precision for offset; 10**-7 hour = 0.36</div><div class='add'>+		     * milliseconds should be enough. */</div><div class='add'>+		    const size_t max_digits = 7; /* 36 * 10**7 &lt; 32-bit FIXNUM_MAX */</div><div class='add'>+</div><div class='add'>+		    if (out_of_range(hour, 0, 23)) return Qnil;</div><div class='add'>+</div><div class='add'>+		    n = (s + l) - ++p;</div><div class='add'>+		    if (n &gt; max_digits) n = max_digits;</div><div class='add'>+		    sec = ruby_scan_digits(p, n, 10, &amp;n, &amp;ov);</div><div class='add'>+		    if ((p += n) &lt; s + l &amp;&amp; *p &gt;= ('5' + !(sec &amp; 1)) &amp;&amp; *p &lt;= '9') {</div><div class='add'>+			/* round half to even */</div><div class='add'>+			sec++;</div><div class='add'>+		    }</div><div class='add'>+		    sec *= 36;</div><div class='ctx'> 		    if (sign) {</div><div class='ctx'> 			hour = -hour;</div><div class='del'>-			min = -min;</div><div class='add'>+			sec = -sec;</div><div class='add'>+		    }</div><div class='add'>+		    if (n &lt;= 2) {</div><div class='add'>+			/* HH.nn or HH.n */</div><div class='add'>+			if (n == 1) sec *= 10;</div><div class='add'>+			offset = INT2FIX(sec + hour * 3600);</div><div class='add'>+		    }</div><div class='add'>+		    else {</div><div class='add'>+			VALUE denom = rb_int_positive_pow(10, (int)(n - 2));</div><div class='add'>+			offset = f_add(rb_rational_new(INT2FIX(sec), denom), INT2FIX(hour * 3600));</div><div class='add'>+			if (rb_rational_den(offset) == INT2FIX(1)) {</div><div class='add'>+			    offset = rb_rational_num(offset);</div><div class='add'>+			}</div><div class='ctx'> 		    }</div><div class='del'>-		    offset = rb_rational_new(INT2FIX(min),</div><div class='del'>-					     rb_int_positive_pow(10, (int)(e - p)));</div><div class='del'>-		    offset = f_add(INT2FIX(hour * 3600), offset);</div><div class='ctx'> 		    goto ok;</div><div class='ctx'> 		}</div><div class='ctx'> 		else if (l &gt; 2) {</div><div class='hunk'>@@ -479,18 +542,16 @@ date_zone_to_diff(VALUE str)</div><div class='ctx'> 			min  = ruby_scan_digits(&amp;s[2 - l % 2], 2, 10, &amp;n, &amp;ov);</div><div class='ctx'> 		    if (l &gt;= 5)</div><div class='ctx'> 			sec  = ruby_scan_digits(&amp;s[4 - l % 2], 2, 10, &amp;n, &amp;ov);</div><div class='del'>-		    goto num;</div><div class='ctx'> 		}</div><div class='del'>-	      num:</div><div class='ctx'> 		sec += min * 60 + hour * 3600;</div><div class='ctx'> 		if (sign) sec = -sec;</div><div class='ctx'> 		offset = INT2FIX(sec);</div><div class='add'>+#undef out_of_range</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     RB_GC_GUARD(str);</div><div class='ctx'>   ok:</div><div class='del'>-    ALLOCV_END(vbuf);</div><div class='ctx'>     return offset;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -627,24 +688,27 @@ parse_time(VALUE str, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     static const char pat_source[] =</div><div class='ctx'> 		"("</div><div class='add'>+		   "" NUMBER "+\\s*"</div><div class='ctx'> 		   "(?:"</div><div class='del'>-		     "\\d+\\s*:\\s*\\d+"</div><div class='ctx'> 		     "(?:"</div><div class='add'>+		       ":\\s*\\d+"</div><div class='add'>+		       "(?:"</div><div class='ctx'> #ifndef TIGHT_PARSER</div><div class='del'>-		       "\\s*:\\s*\\d+(?:[,.]\\d*)?"</div><div class='add'>+		         "\\s*:\\s*\\d+(?:[,.]\\d*)?"</div><div class='ctx'> #else</div><div class='del'>-		       "\\s*:\\s*\\d+(?:[,.]\\d+)?"</div><div class='add'>+		         "\\s*:\\s*\\d+(?:[,.]\\d+)?"</div><div class='ctx'> #endif</div><div class='add'>+		       ")?"</div><div class='add'>+		     "|"</div><div class='add'>+		       "h(?:\\s*\\d+m?(?:\\s*\\d+s?)?)?"</div><div class='add'>+		     ")"</div><div class='add'>+		     "(?:"</div><div class='add'>+		       "\\s*"</div><div class='add'>+		       "[ap](?:m\\b|\\.m\\.)"</div><div class='ctx'> 		     ")?"</div><div class='ctx'> 		   "|"</div><div class='del'>-		     "\\d+\\s*h(?:\\s*\\d+m?(?:\\s*\\d+s?)?)?"</div><div class='del'>-		   ")"</div><div class='del'>-		   "(?:"</div><div class='del'>-		     "\\s*"</div><div class='ctx'> 		     "[ap](?:m\\b|\\.m\\.)"</div><div class='del'>-		   ")?"</div><div class='del'>-		 "|"</div><div class='del'>-		   "\\d+\\s*[ap](?:m\\b|\\.m\\.)"</div><div class='add'>+		   ")"</div><div class='ctx'> 		 ")"</div><div class='ctx'> 		 "(?:"</div><div class='ctx'> 		   "\\s*"</div><div class='hunk'>@@ -666,6 +730,9 @@ parse_time(VALUE str, VALUE hash)</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#define BEGIN_ERA "\\b"</div><div class='add'>+#define END_ERA "(?!(?&lt;!\\.)[a-z])"</div><div class='add'>+</div><div class='ctx'> #ifdef TIGHT_PARSER</div><div class='ctx'> static int</div><div class='ctx'> parse_era1_cb(VALUE m, VALUE hash)</div><div class='hunk'>@@ -677,7 +744,7 @@ static int</div><div class='ctx'> parse_era1(VALUE str, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     static const char pat_source[] =</div><div class='del'>-	"(a(?:d|\\.d\\.))";</div><div class='add'>+	BEGIN_ERA "(a(?:d\\b|\\.d\\.))" END_ERA;</div><div class='ctx'>     static VALUE pat = Qnil;</div><div class='ctx'> </div><div class='ctx'>     REGCOMP_I(pat);</div><div class='hunk'>@@ -699,8 +766,9 @@ parse_era2_cb(VALUE m, VALUE hash)</div><div class='ctx'> static int</div><div class='ctx'> parse_era2(VALUE str, VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    static const char pat_source[] =</div><div class='del'>-	"(c(?:e|\\.e\\.)|b(?:ce|\\.c\\.e\\.)|b(?:c|\\.c\\.))";</div><div class='add'>+    static const char pat_source[] = BEGIN_ERA</div><div class='add'>+	"(c(?:e\\b|\\.e\\.)|b(?:ce\\b|\\.c\\.e\\.)|b(?:c\\b|\\.c\\.))"</div><div class='add'>+	END_ERA;</div><div class='ctx'>     static VALUE pat = Qnil;</div><div class='ctx'> </div><div class='ctx'>     REGCOMP_I(pat);</div><div class='hunk'>@@ -730,8 +798,8 @@ check_year_width(VALUE y)</div><div class='ctx'>     l = RSTRING_LEN(y);</div><div class='ctx'>     if (l &lt; 2) return 0;</div><div class='ctx'>     s = RSTRING_PTR(y);</div><div class='del'>-    if (!isdigit(s[1])) return 0;</div><div class='del'>-    return (l == 2 || !isdigit(s[2]));</div><div class='add'>+    if (!isdigit((unsigned char)s[1])) return 0;</div><div class='add'>+    return (l == 2 || !isdigit((unsigned char)s[2]));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -804,7 +872,7 @@ parse_eu(VALUE str, VALUE hash)</div><div class='ctx'> 		FPW_COM FPT_COM</div><div class='ctx'> #endif</div><div class='ctx'> #ifndef TIGHT_PARSER</div><div class='del'>-		"('?\\d+)[^-\\d\\s]*"</div><div class='add'>+		"('?" NUMBER "+)[^-\\d\\s]*"</div><div class='ctx'> #else</div><div class='ctx'> 		"(\\d+)(?:(?:st|nd|rd|th)\\b)?"</div><div class='ctx'> #endif</div><div class='hunk'>@@ -817,7 +885,11 @@ parse_eu(VALUE str, VALUE hash)</div><div class='ctx'> 		 "(?:"</div><div class='ctx'> 		   "\\s*"</div><div class='ctx'> #ifndef TIGHT_PARSER</div><div class='del'>-		   "(c(?:e|\\.e\\.)|b(?:ce|\\.c\\.e\\.)|a(?:d|\\.d\\.)|b(?:c|\\.c\\.))?"</div><div class='add'>+		   "(?:"</div><div class='add'>+		     BEGIN_ERA</div><div class='add'>+		     "(c(?:e|\\.e\\.)|b(?:ce|\\.c\\.e\\.)|a(?:d|\\.d\\.)|b(?:c|\\.c\\.))"</div><div class='add'>+		     END_ERA</div><div class='add'>+		   ")?"</div><div class='ctx'> 		   "\\s*"</div><div class='ctx'> 		   "('?-?\\d+(?:(?:st|nd|rd|th)\\b)?)"</div><div class='ctx'> #else</div><div class='hunk'>@@ -894,8 +966,8 @@ parse_us(VALUE str, VALUE hash)</div><div class='ctx'> 		COM_FPT</div><div class='ctx'> #endif</div><div class='ctx'> 		 "(?:"</div><div class='del'>-		   "\\s*,?"</div><div class='del'>-		   "\\s*"</div><div class='add'>+		   "\\s*+,?"</div><div class='add'>+		   "\\s*+"</div><div class='ctx'> #ifndef TIGHT_PARSER</div><div class='ctx'> 		   "(c(?:e|\\.e\\.)|b(?:ce|\\.c\\.e\\.)|a(?:d|\\.d\\.)|b(?:c|\\.c\\.))?"</div><div class='ctx'> 		   "\\s*"</div><div class='hunk'>@@ -942,7 +1014,7 @@ parse_iso(VALUE str, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     static const char pat_source[] =</div><div class='ctx'> #ifndef TIGHT_PARSER</div><div class='del'>-	"('?[-+]?\\d+)-(\\d+)-('?-?\\d+)"</div><div class='add'>+	"('?[-+]?" NUMBER "+)-(\\d+)-('?-?\\d+)"</div><div class='ctx'> #else</div><div class='ctx'> 	BOS</div><div class='ctx'> 	FPW_COM FPT_COM</div><div class='hunk'>@@ -1212,6 +1284,9 @@ parse_iso2(VALUE str, VALUE hash)</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#define JISX0301_ERA_INITIALS "mtshr"</div><div class='add'>+#define JISX0301_DEFAULT_ERA 'H' /* obsolete */</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> gengo(int c)</div><div class='ctx'> {</div><div class='hunk'>@@ -1222,6 +1297,7 @@ gengo(int c)</div><div class='ctx'>       case 'T': case 't': e = 1911; break;</div><div class='ctx'>       case 'S': case 's': e = 1925; break;</div><div class='ctx'>       case 'H': case 'h': e = 1988; break;</div><div class='add'>+      case 'R': case 'r': e = 2018; break;</div><div class='ctx'>       default:  e = 0; break;</div><div class='ctx'>     }</div><div class='ctx'>     return e;</div><div class='hunk'>@@ -1252,11 +1328,11 @@ parse_jis(VALUE str, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     static const char pat_source[] =</div><div class='ctx'> #ifndef TIGHT_PARSER</div><div class='del'>-	"\\b([mtsh])(\\d+)\\.(\\d+)\\.(\\d+)"</div><div class='add'>+        "\\b([" JISX0301_ERA_INITIALS "])(\\d+)\\.(\\d+)\\.(\\d+)"</div><div class='ctx'> #else</div><div class='ctx'> 	BOS</div><div class='ctx'> 	FPW_COM FPT_COM</div><div class='del'>-	"([mtsh])(\\d+)\\.(\\d+)\\.(\\d+)"</div><div class='add'>+        "([" JISX0301_ERA_INITIALS "])(\\d+)\\.(\\d+)\\.(\\d+)"</div><div class='ctx'> 	TEE_FPT COM_FPW</div><div class='ctx'> 	EOS</div><div class='ctx'> #endif</div><div class='hunk'>@@ -1292,7 +1368,7 @@ parse_vms11(VALUE str, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     static const char pat_source[] =</div><div class='ctx'> #ifndef TIGHT_PARSER</div><div class='del'>-	"('?-?\\d+)-(" ABBR_MONTHS ")[^-/.]*"</div><div class='add'>+	"('?-?" NUMBER "+)-(" ABBR_MONTHS ")[^-/.]*"</div><div class='ctx'> 	"-('?-?\\d+)"</div><div class='ctx'> #else</div><div class='ctx'> 	BOS</div><div class='hunk'>@@ -1387,7 +1463,7 @@ parse_sla(VALUE str, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     static const char pat_source[] =</div><div class='ctx'> #ifndef TIGHT_PARSER</div><div class='del'>-	"('?-?\\d+)/\\s*('?\\d+)(?:\\D\\s*('?-?\\d+))?"</div><div class='add'>+	"('?-?" NUMBER "+)/\\s*('?\\d+)(?:\\D\\s*('?-?\\d+))?"</div><div class='ctx'> #else</div><div class='ctx'> 	BOS</div><div class='ctx'> 	FPW_COM FPT_COM</div><div class='hunk'>@@ -1495,7 +1571,7 @@ parse_dot(VALUE str, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     static const char pat_source[] =</div><div class='ctx'> #ifndef TIGHT_PARSER</div><div class='del'>-	"('?-?\\d+)\\.\\s*('?\\d+)\\.\\s*('?-?\\d+)"</div><div class='add'>+	"('?-?" NUMBER "+)\\.\\s*('?\\d+)\\.\\s*('?-?\\d+)"</div><div class='ctx'> #else</div><div class='ctx'> 	BOS</div><div class='ctx'> 	FPW_COM FPT_COM</div><div class='hunk'>@@ -1655,7 +1731,7 @@ parse_mday(VALUE str, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     static const char pat_source[] =</div><div class='ctx'> #ifndef TIGHT_PARSER</div><div class='del'>-	"(\\d+)(st|nd|rd|th)\\b"</div><div class='add'>+	"(" NUMBER "+)(st|nd|rd|th)\\b"</div><div class='ctx'> #else</div><div class='ctx'> 	BOS</div><div class='ctx'> 	FPW_COM FPT_COM</div><div class='hunk'>@@ -1859,30 +1935,26 @@ parse_ddd_cb(VALUE m, VALUE hash)</div><div class='ctx'> 	set_hash("zone", s5);</div><div class='ctx'> </div><div class='ctx'> 	if (*cs5 == '[') {</div><div class='del'>-	    VALUE vbuf = 0;</div><div class='del'>-	    char *buf = ALLOCV_N(char, vbuf, l5 + 1);</div><div class='del'>-	    char *s1, *s2, *s3;</div><div class='add'>+            const char *s1, *s2;</div><div class='ctx'> 	    VALUE zone;</div><div class='ctx'> </div><div class='del'>-	    memcpy(buf, cs5, l5);</div><div class='del'>-	    buf[l5 - 1] = '\0';</div><div class='del'>-</div><div class='del'>-	    s1 = buf + 1;</div><div class='del'>-	    s2 = strchr(buf, ':');</div><div class='add'>+            l5 -= 2;</div><div class='add'>+            s1 = cs5 + 1;</div><div class='add'>+            s2 = memchr(s1, ':', l5);</div><div class='ctx'> 	    if (s2) {</div><div class='del'>-		*s2 = '\0';</div><div class='ctx'> 		s2++;</div><div class='add'>+                zone = rb_str_subseq(s5, s2 - cs5, l5 - (s2 - s1));</div><div class='add'>+                s5 = rb_str_subseq(s5, 1, s2 - s1);</div><div class='ctx'> 	    }</div><div class='del'>-	    if (s2)</div><div class='del'>-		s3 = s2;</div><div class='del'>-	    else</div><div class='del'>-		s3 = s1;</div><div class='del'>-	    zone = rb_str_new2(s3);</div><div class='add'>+            else {</div><div class='add'>+                zone = rb_str_subseq(s5, 1, l5);</div><div class='add'>+                if (isdigit((unsigned char)*s1))</div><div class='add'>+                    s5 = rb_str_append(rb_str_new_cstr("+"), zone);</div><div class='add'>+                else</div><div class='add'>+                    s5 = zone;</div><div class='add'>+            }</div><div class='ctx'> 	    set_hash("zone", zone);</div><div class='del'>-	    if (isdigit((unsigned char)*s1))</div><div class='del'>-		*--s1 = '+';</div><div class='del'>-	    set_hash("offset", date_zone_to_diff(rb_str_new2(s1)));</div><div class='del'>-	    ALLOCV_END(vbuf);</div><div class='add'>+            set_hash("offset", date_zone_to_diff(s5));</div><div class='ctx'> 	}</div><div class='ctx'> 	RB_GC_GUARD(s5);</div><div class='ctx'>     }</div><div class='hunk'>@@ -1897,7 +1969,7 @@ parse_ddd(VALUE str, VALUE hash)</div><div class='ctx'> #ifdef TIGHT_PARSER</div><div class='ctx'> 		BOS</div><div class='ctx'> #endif</div><div class='del'>-		"([-+]?)(\\d{2,14})"</div><div class='add'>+		"([-+]?)(" NUMBER "{2,14})"</div><div class='ctx'> 		  "(?:"</div><div class='ctx'> 		    "\\s*"</div><div class='ctx'> 		    "t?"</div><div class='hunk'>@@ -2175,7 +2247,7 @@ date__parse(VALUE str, VALUE comp)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	if (RTEST(ref_hash("_bc"))) {</div><div class='add'>+        if (RTEST(del_hash("_bc"))) {</div><div class='ctx'> 	    VALUE y;</div><div class='ctx'> </div><div class='ctx'> 	    y = ref_hash("cwyear");</div><div class='hunk'>@@ -2190,7 +2262,7 @@ date__parse(VALUE str, VALUE comp)</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-	if (RTEST(ref_hash("_comp"))) {</div><div class='add'>+        if (RTEST(del_hash("_comp"))) {</div><div class='ctx'> 	    VALUE y;</div><div class='ctx'> </div><div class='ctx'> 	    y = ref_hash("cwyear");</div><div class='hunk'>@@ -2213,9 +2285,6 @@ date__parse(VALUE str, VALUE comp)</div><div class='ctx'> </div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    del_hash("_bc");</div><div class='del'>-    del_hash("_comp");</div><div class='del'>-</div><div class='ctx'>     {</div><div class='ctx'> 	VALUE zone = ref_hash("zone");</div><div class='ctx'> 	if (!NIL_P(zone) &amp;&amp; NIL_P(ref_hash("offset")))</div><div class='hunk'>@@ -2265,8 +2334,8 @@ iso8601_ext_datetime_cb(VALUE m, VALUE hash)</div><div class='ctx'> 	    s[i] = rb_reg_nth_match(i, m);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (!NIL_P(s[3])) {</div><div class='del'>-	set_hash("mday", str2num(s[3]));</div><div class='add'>+    if (!NIL_P(s[1])) {</div><div class='add'>+	if (!NIL_P(s[3])) set_hash("mday", str2num(s[3]));</div><div class='ctx'> 	if (strcmp(RSTRING_PTR(s[1]), "-") != 0) {</div><div class='ctx'> 	    y = str2num(s[1]);</div><div class='ctx'> 	    if (RSTRING_LEN(s[1]) &lt; 4)</div><div class='hunk'>@@ -2323,7 +2392,7 @@ static int</div><div class='ctx'> iso8601_ext_datetime(VALUE str, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     static const char pat_source[] =</div><div class='del'>-	"\\A\\s*(?:([-+]?\\d{2,}|-)-(\\d{2})?-(\\d{2})|"</div><div class='add'>+	"\\A\\s*(?:([-+]?\\d{2,}|-)-(\\d{2})?(?:-(\\d{2}))?|"</div><div class='ctx'> 		"([-+]?\\d{2,})?-(\\d{3})|"</div><div class='ctx'> 		"(\\d{4}|\\d{2})?-w(\\d{2})-(\\d)|"</div><div class='ctx'> 		"-w-(\\d))"</div><div class='hunk'>@@ -2954,7 +3023,7 @@ jisx0301_cb(VALUE m, VALUE hash)</div><div class='ctx'> 	    s[i] = rb_reg_nth_match(i, m);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    ep = gengo(NIL_P(s[1]) ? 'h' : *RSTRING_PTR(s[1]));</div><div class='add'>+    ep = gengo(NIL_P(s[1]) ? JISX0301_DEFAULT_ERA : *RSTRING_PTR(s[1]));</div><div class='ctx'>     set_hash("year", f_add(str2num(s[2]), INT2FIX(ep)));</div><div class='ctx'>     set_hash("mon", str2num(s[3]));</div><div class='ctx'>     set_hash("mday", str2num(s[4]));</div><div class='hunk'>@@ -2979,7 +3048,7 @@ static int</div><div class='ctx'> jisx0301(VALUE str, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     static const char pat_source[] =</div><div class='del'>-	"\\A\\s*([mtsh])?(\\d{2})\\.(\\d{2})\\.(\\d{2})"</div><div class='add'>+        "\\A\\s*([" JISX0301_ERA_INITIALS "])?(\\d{2})\\.(\\d{2})\\.(\\d{2})"</div><div class='ctx'> 	"(?:t"</div><div class='ctx'> 	"(?:(\\d{2}):(\\d{2})(?::(\\d{2})(?:[,.](\\d*))?)?"</div><div class='ctx'> 	"(z|[-+]\\d{2}(?::?\\d{2})?)?)?)?\\s*\\z";</div><div class='head'>diff --git a/ext/date/date_strftime.c b/ext/date/date_strftime.c<br/>index 9d8167b612..d7f28989d6 100644<br/>--- a/<a href='/ruby.git/tree/ext/date/date_strftime.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/date_strftime.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/date/date_strftime.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/date_strftime.c</a></div><div class='hunk'>@@ -393,7 +393,7 @@ date_strftime_with_tmx(char *s, const size_t maxsize, const char *format,</div><div class='ctx'> 	    continue;</div><div class='ctx'> </div><div class='ctx'> 	  case 'v':</div><div class='del'>-	    STRFTIME("%e-%b-%Y");</div><div class='add'>+	    STRFTIME("%e-%^b-%Y");</div><div class='ctx'> 	    continue;</div><div class='ctx'> </div><div class='ctx'> 	  case 'w':	/* weekday, Sunday == 0, 0 - 6 */</div><div class='head'>diff --git a/ext/date/date_strptime.c b/ext/date/date_strptime.c<br/>index 4383eb6fa1..f731629df1 100644<br/>--- a/<a href='/ruby.git/tree/ext/date/date_strptime.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/date_strptime.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/date/date_strptime.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/date_strptime.c</a></div><div class='hunk'>@@ -10,28 +10,15 @@</div><div class='ctx'> static const char *day_names[] = {</div><div class='ctx'>     "Sunday", "Monday", "Tuesday", "Wednesday",</div><div class='ctx'>     "Thursday", "Friday", "Saturday",</div><div class='del'>-    "Sun", "Mon", "Tue", "Wed",</div><div class='del'>-    "Thu", "Fri", "Sat"</div><div class='ctx'> };</div><div class='add'>+static const int ABBREVIATED_DAY_NAME_LENGTH = 3;</div><div class='ctx'> </div><div class='ctx'> static const char *month_names[] = {</div><div class='ctx'>     "January", "February", "March", "April",</div><div class='ctx'>     "May", "June", "July", "August", "September",</div><div class='ctx'>     "October", "November", "December",</div><div class='del'>-    "Jan", "Feb", "Mar", "Apr", "May", "Jun",</div><div class='del'>-    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static const char *merid_names[] = {</div><div class='del'>-    "am", "pm",</div><div class='del'>-    "a.m.", "p.m."</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static const char *extz_pats[] = {</div><div class='del'>-    ":z",</div><div class='del'>-    "::z",</div><div class='del'>-    ":::z"</div><div class='ctx'> };</div><div class='add'>+static const int ABBREVIATED_MONTH_NAME_LENGTH = 3;</div><div class='ctx'> </div><div class='ctx'> #define sizeof_array(o) (sizeof o / sizeof o[0])</div><div class='ctx'> </div><div class='hunk'>@@ -75,7 +62,7 @@ num_pattern_p(const char *s)</div><div class='ctx'> #define NUM_PATTERN_P() num_pattern_p(&amp;fmt[fi + 1])</div><div class='ctx'> </div><div class='ctx'> static long</div><div class='del'>-read_digits(const char *s, VALUE *n, size_t width)</div><div class='add'>+read_digits(const char *s, size_t slen, VALUE *n, size_t width)</div><div class='ctx'> {</div><div class='ctx'>     size_t l;</div><div class='ctx'> </div><div class='hunk'>@@ -83,7 +70,7 @@ read_digits(const char *s, VALUE *n, size_t width)</div><div class='ctx'>         return 0;</div><div class='ctx'> </div><div class='ctx'>     l = 0;</div><div class='del'>-    while (ISDIGIT(s[l])) {</div><div class='add'>+    while (l &lt; slen &amp;&amp; ISDIGIT(s[l])) {</div><div class='ctx'>         if (++l == width) break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -131,7 +118,7 @@ do { \</div><div class='ctx'> #define READ_DIGITS(n,w) \</div><div class='ctx'> do { \</div><div class='ctx'>     size_t l; \</div><div class='del'>-    l = read_digits(&amp;str[si], &amp;n, w); \</div><div class='add'>+    l = read_digits(&amp;str[si], slen - si, &amp;n, w); \</div><div class='ctx'>     if (l == 0) \</div><div class='ctx'> 	fail();	\</div><div class='ctx'>     si += l; \</div><div class='hunk'>@@ -161,6 +148,12 @@ do { \</div><div class='ctx'> </div><div class='ctx'> VALUE date_zone_to_diff(VALUE);</div><div class='ctx'> </div><div class='add'>+static inline int</div><div class='add'>+head_match_p(size_t len, const char *name, const char *str, size_t slen, size_t si)</div><div class='add'>+{</div><div class='add'>+    return slen - si &gt;= len &amp;&amp; strncasecmp(name, &amp;str[si], len) == 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static size_t</div><div class='ctx'> date__strptime_internal(const char *str, size_t slen,</div><div class='ctx'> 			const char *fmt, size_t flen, VALUE hash)</div><div class='hunk'>@@ -168,9 +161,18 @@ date__strptime_internal(const char *str, size_t slen,</div><div class='ctx'>     size_t si, fi;</div><div class='ctx'>     int c;</div><div class='ctx'> </div><div class='add'>+#define HEAD_MATCH_P(len, name) head_match_p(len, name, str, slen, si)</div><div class='ctx'>     si = fi = 0;</div><div class='ctx'> </div><div class='ctx'>     while (fi &lt; flen) {</div><div class='add'>+	if (isspace((unsigned char)fmt[fi])) {</div><div class='add'>+	    while (si &lt; slen &amp;&amp; isspace((unsigned char)str[si]))</div><div class='add'>+		si++;</div><div class='add'>+	    while (++fi &lt; flen &amp;&amp; isspace((unsigned char)fmt[fi]));</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (si &gt;= slen) fail();</div><div class='ctx'> </div><div class='ctx'> 	switch (fmt[fi]) {</div><div class='ctx'> 	  case '%':</div><div class='hunk'>@@ -194,12 +196,11 @@ date__strptime_internal(const char *str, size_t slen,</div><div class='ctx'> 		{</div><div class='ctx'> 		    int i;</div><div class='ctx'> </div><div class='del'>-		    for (i = 0; i &lt; (int)sizeof_array(extz_pats); i++)</div><div class='del'>-			if (strncmp(extz_pats[i], &amp;fmt[fi],</div><div class='del'>-					strlen(extz_pats[i])) == 0) {</div><div class='del'>-			    fi += i;</div><div class='del'>-			    goto again;</div><div class='del'>-			}</div><div class='add'>+		    for (i = 1; i &lt; 3 &amp;&amp; fi + i &lt; flen &amp;&amp; fmt[fi+i] == ':'; ++i);</div><div class='add'>+		    if (fmt[fi+i] == 'z') {</div><div class='add'>+			fi += i - 1;</div><div class='add'>+			goto again;</div><div class='add'>+		    }</div><div class='ctx'> 		    fail();</div><div class='ctx'> 		}</div><div class='ctx'> </div><div class='hunk'>@@ -209,10 +210,12 @@ date__strptime_internal(const char *str, size_t slen,</div><div class='ctx'> 		    int i;</div><div class='ctx'> </div><div class='ctx'> 		    for (i = 0; i &lt; (int)sizeof_array(day_names); i++) {</div><div class='del'>-			size_t l = strlen(day_names[i]);</div><div class='del'>-			if (strncasecmp(day_names[i], &amp;str[si], l) == 0) {</div><div class='add'>+			const char *day_name = day_names[i];</div><div class='add'>+			size_t l = strlen(day_name);</div><div class='add'>+			if (HEAD_MATCH_P(l, day_name) ||</div><div class='add'>+			    HEAD_MATCH_P(l = ABBREVIATED_DAY_NAME_LENGTH, day_name)) {</div><div class='ctx'> 			    si += l;</div><div class='del'>-			    set_hash("wday", INT2FIX(i % 7));</div><div class='add'>+			    set_hash("wday", INT2FIX(i));</div><div class='ctx'> 			    goto matched;</div><div class='ctx'> 			}</div><div class='ctx'> 		    }</div><div class='hunk'>@@ -225,10 +228,12 @@ date__strptime_internal(const char *str, size_t slen,</div><div class='ctx'> 		    int i;</div><div class='ctx'> </div><div class='ctx'> 		    for (i = 0; i &lt; (int)sizeof_array(month_names); i++) {</div><div class='del'>-			size_t l = strlen(month_names[i]);</div><div class='del'>-			if (strncasecmp(month_names[i], &amp;str[si], l) == 0) {</div><div class='add'>+			const char *month_name = month_names[i];</div><div class='add'>+			size_t l = strlen(month_name);</div><div class='add'>+			if (HEAD_MATCH_P(l, month_name) ||</div><div class='add'>+			    HEAD_MATCH_P(l = ABBREVIATED_MONTH_NAME_LENGTH, month_name)) {</div><div class='ctx'> 			    si += l;</div><div class='del'>-			    set_hash("mon", INT2FIX((i % 12) + 1));</div><div class='add'>+			    set_hash("mon", INT2FIX(i + 1));</div><div class='ctx'> 			    goto matched;</div><div class='ctx'> 			}</div><div class='ctx'> 		    }</div><div class='hunk'>@@ -402,18 +407,19 @@ date__strptime_internal(const char *str, size_t slen,</div><div class='ctx'> </div><div class='ctx'> 	      case 'P':</div><div class='ctx'> 	      case 'p':</div><div class='add'>+		if (slen - si &lt; 2) fail();</div><div class='ctx'> 		{</div><div class='del'>-		    int i;</div><div class='del'>-</div><div class='del'>-		    for (i = 0; i &lt; 4; i++) {</div><div class='del'>-			size_t l = strlen(merid_names[i]);</div><div class='del'>-			if (strncasecmp(merid_names[i], &amp;str[si], l) == 0) {</div><div class='del'>-			    si += l;</div><div class='del'>-			    set_hash("_merid", INT2FIX((i % 2) == 0 ? 0 : 12));</div><div class='del'>-			    goto matched;</div><div class='del'>-			}</div><div class='add'>+		    char c = str[si];</div><div class='add'>+		    const int hour = (c == 'P' || c == 'p') ? 12 : 0;</div><div class='add'>+		    if (!hour &amp;&amp; !(c == 'A' || c == 'a')) fail();</div><div class='add'>+		    if ((c = str[si+1]) == '.') {</div><div class='add'>+			if (slen - si &lt; 4 || str[si+3] != '.') fail();</div><div class='add'>+			c = str[si += 2];</div><div class='ctx'> 		    }</div><div class='del'>-		    fail();</div><div class='add'>+		    if (!(c == 'M' || c == 'm')) fail();</div><div class='add'>+		    si += 2;</div><div class='add'>+		    set_hash("_merid", INT2FIX(hour));</div><div class='add'>+		    goto matched;</div><div class='ctx'> 		}</div><div class='ctx'> </div><div class='ctx'> 	      case 'Q':</div><div class='hunk'>@@ -581,12 +587,13 @@ date__strptime_internal(const char *str, size_t slen,</div><div class='ctx'> 		    if (NIL_P(pat)) {</div><div class='ctx'> 			pat = rb_reg_new(pat_source, sizeof pat_source - 1,</div><div class='ctx'> 					 ONIG_OPTION_IGNORECASE);</div><div class='add'>+			rb_obj_freeze(pat);</div><div class='ctx'> 			rb_gc_register_mark_object(pat);</div><div class='ctx'> 		    }</div><div class='ctx'> </div><div class='ctx'> 		    b = rb_backref_get();</div><div class='ctx'> 		    rb_match_busy(b);</div><div class='del'>-		    m = f_match(pat, rb_usascii_str_new2(&amp;str[si]));</div><div class='add'>+		    m = f_match(pat, rb_usascii_str_new(&amp;str[si], slen - si));</div><div class='ctx'> </div><div class='ctx'> 		    if (!NIL_P(m)) {</div><div class='ctx'> 			VALUE s, l, o;</div><div class='hunk'>@@ -618,22 +625,13 @@ date__strptime_internal(const char *str, size_t slen,</div><div class='ctx'> 		if (str[si] != '%')</div><div class='ctx'> 		    fail();</div><div class='ctx'> 		si++;</div><div class='del'>-		if (fi &lt; flen)</div><div class='del'>-		    if (str[si] != fmt[fi])</div><div class='add'>+		if (fi &lt; flen) {</div><div class='add'>+		    if (si &gt;= slen || str[si] != fmt[fi])</div><div class='ctx'> 			fail();</div><div class='del'>-		si++;</div><div class='add'>+		    si++;</div><div class='add'>+		}</div><div class='ctx'> 		goto matched;</div><div class='ctx'> 	    }</div><div class='del'>-	  case ' ':</div><div class='del'>-	  case '\t':</div><div class='del'>-	  case '\n':</div><div class='del'>-	  case '\v':</div><div class='del'>-	  case '\f':</div><div class='del'>-	  case '\r':</div><div class='del'>-	    while (isspace((unsigned char)str[si]))</div><div class='del'>-		si++;</div><div class='del'>-	    fi++;</div><div class='del'>-	    break;</div><div class='ctx'> 	  default:</div><div class='ctx'> 	  ordinal:</div><div class='ctx'> 	    if (str[si] != fmt[fi])</div><div class='hunk'>@@ -669,7 +667,7 @@ date__strptime(const char *str, size_t slen,</div><div class='ctx'>     if (fail_p())</div><div class='ctx'> 	return Qnil;</div><div class='ctx'> </div><div class='del'>-    cent = ref_hash("_cent");</div><div class='add'>+    cent = del_hash("_cent");</div><div class='ctx'>     if (!NIL_P(cent)) {</div><div class='ctx'> 	VALUE year;</div><div class='ctx'> </div><div class='hunk'>@@ -679,10 +677,9 @@ date__strptime(const char *str, size_t slen,</div><div class='ctx'> 	year = ref_hash("year");</div><div class='ctx'> 	if (!NIL_P(year))</div><div class='ctx'> 	    set_hash("year", f_add(year, f_mul(cent, INT2FIX(100))));</div><div class='del'>-	del_hash("_cent");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    merid = ref_hash("_merid");</div><div class='add'>+    merid = del_hash("_merid");</div><div class='ctx'>     if (!NIL_P(merid)) {</div><div class='ctx'> 	VALUE hour;</div><div class='ctx'> </div><div class='hunk'>@@ -691,7 +688,6 @@ date__strptime(const char *str, size_t slen,</div><div class='ctx'> 	    hour = f_mod(hour, INT2FIX(12));</div><div class='ctx'> 	    set_hash("hour", f_add(hour, merid));</div><div class='ctx'> 	}</div><div class='del'>-	del_hash("_merid");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return hash;</div><div class='head'>diff --git a/ext/date/depend b/ext/date/depend<br/>index 864fcc5302..3f550cd0a7 100644<br/>--- a/<a href='/ruby.git/tree/ext/date/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/date/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/depend</a></div><div class='hunk'>@@ -1,10 +1,169 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> date_core.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> date_core.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> date_core.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> date_core.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> date_core.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> date_core.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+date_core.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> date_core.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> date_core.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> date_core.o: $(hdrdir)/ruby/oniguruma.h</div><div class='hunk'>@@ -12,15 +171,174 @@ date_core.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> date_core.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> date_core.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> date_core.o: $(hdrdir)/ruby/util.h</div><div class='del'>-date_core.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> date_core.o: date_core.c</div><div class='ctx'> date_core.o: date_tmx.h</div><div class='ctx'> date_parse.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> date_parse.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> date_parse.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> date_parse.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> date_parse.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> date_parse.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rmatch.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+date_parse.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> date_parse.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> date_parse.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> date_parse.o: $(hdrdir)/ruby/oniguruma.h</div><div class='hunk'>@@ -29,15 +347,163 @@ date_parse.o: $(hdrdir)/ruby/regex.h</div><div class='ctx'> date_parse.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> date_parse.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> date_parse.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-date_parse.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> date_parse.o: date_parse.c</div><div class='ctx'> date_parse.o: zonetab.h</div><div class='ctx'> date_parse.o: zonetab.list</div><div class='ctx'> date_strftime.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> date_strftime.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> date_strftime.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> date_strftime.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> date_strftime.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+date_strftime.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> date_strftime.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> date_strftime.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> date_strftime.o: $(hdrdir)/ruby/st.h</div><div class='hunk'>@@ -46,10 +512,170 @@ date_strftime.o: date_strftime.c</div><div class='ctx'> date_strftime.o: date_tmx.h</div><div class='ctx'> date_strptime.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> date_strptime.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> date_strptime.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> date_strptime.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> date_strptime.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> date_strptime.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rmatch.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+date_strptime.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> date_strptime.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> date_strptime.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> date_strptime.o: $(hdrdir)/ruby/oniguruma.h</div><div class='hunk'>@@ -58,6 +684,5 @@ date_strptime.o: $(hdrdir)/ruby/regex.h</div><div class='ctx'> date_strptime.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> date_strptime.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> date_strptime.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-date_strptime.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> date_strptime.o: date_strptime.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/date/extconf.rb b/ext/date/extconf.rb<br/>index 8938df13b3..358f64173a 100644<br/>--- a/<a href='/ruby.git/tree/ext/date/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/date/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/extconf.rb</a></div><div class='hunk'>@@ -3,7 +3,10 @@ require 'mkmf'</div><div class='ctx'> </div><div class='ctx'> config_string("strict_warnflags") {|w| $warnflags += " #{w}"}</div><div class='ctx'> </div><div class='del'>-have_var("timezone", "time.h")</div><div class='del'>-have_var("altzone", "time.h")</div><div class='add'>+have_func("rb_category_warn")</div><div class='add'>+with_werror("", {:werror =&gt; true}) do |opt, |</div><div class='add'>+  have_var("timezone", "time.h", opt)</div><div class='add'>+  have_var("altzone", "time.h", opt)</div><div class='add'>+end</div><div class='ctx'> </div><div class='ctx'> create_makefile('date_core')</div><div class='head'>diff --git a/ext/date/lib/date.rb b/ext/date/lib/date.rb<br/>index 9170a99ae9..a9fe3ce4b0 100644<br/>--- a/<a href='/ruby.git/tree/ext/date/lib/date.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/lib/date.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/date/lib/date.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/lib/date.rb</a></div><div class='hunk'>@@ -4,10 +4,17 @@</div><div class='ctx'> require 'date_core'</div><div class='ctx'> </div><div class='ctx'> class Date</div><div class='add'>+  VERSION = "3.3.3" # :nodoc:</div><div class='ctx'> </div><div class='del'>-  class Infinity &lt; Numeric # :nodoc:</div><div class='add'>+  # call-seq:</div><div class='add'>+  #   infinite? -&gt; false</div><div class='add'>+  #</div><div class='add'>+  # Returns +false+</div><div class='add'>+  def infinite?</div><div class='add'>+    false</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-    include Comparable</div><div class='add'>+  class Infinity &lt; Numeric # :nodoc:</div><div class='ctx'> </div><div class='ctx'>     def initialize(d=1) @d = d &lt;=&gt; 0 end</div><div class='ctx'> </div><div class='hunk'>@@ -28,6 +35,8 @@ class Date</div><div class='ctx'>     def &lt;=&gt;(other)</div><div class='ctx'>       case other</div><div class='ctx'>       when Infinity; return d &lt;=&gt; other.d</div><div class='add'>+      when Float::INFINITY; return d &lt;=&gt; 1</div><div class='add'>+      when -Float::INFINITY; return d &lt;=&gt; -1</div><div class='ctx'>       when Numeric; return d</div><div class='ctx'>       else</div><div class='ctx'>         begin</div><div class='head'>diff --git a/ext/date/prereq.mk b/ext/date/prereq.mk<br/>index c0c55d2c27..cee7685975 100644<br/>--- a/<a href='/ruby.git/tree/ext/date/prereq.mk?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/prereq.mk</a><br/>+++ b/<a href='/ruby.git/tree/ext/date/prereq.mk?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/prereq.mk</a></div><div class='hunk'>@@ -1,8 +1,19 @@</div><div class='ctx'> .SUFFIXES: .list</div><div class='ctx'> </div><div class='ctx'> .list.h:</div><div class='del'>-	gperf -E -C -c -P -p -j1 -i 1 -g -o -t -N $(*F) $&lt; \</div><div class='add'>+	gperf --ignore-case -C -c -P -p -j1 -i 1 -g -o -t -N $(*F) $&lt; \</div><div class='ctx'> 	| sed -f $(top_srcdir)/tool/gperf.sed \</div><div class='ctx'> 	&gt; $(@F)</div><div class='ctx'> </div><div class='ctx'> zonetab.h: zonetab.list</div><div class='add'>+</div><div class='add'>+.PHONY: update-zonetab</div><div class='add'>+update-zonetab:</div><div class='add'>+	$(RUBY) -C $(srcdir) update-abbr</div><div class='add'>+</div><div class='add'>+.PHONY: update-nothing</div><div class='add'>+update-nothing:</div><div class='add'>+</div><div class='add'>+update = nothing</div><div class='add'>+</div><div class='add'>+zonetab.list: update-$(update)</div><div class='head'>diff --git a/ext/date/update-abbr b/ext/date/update-abbr<br/>new file mode 100644<br/>index 0000000000..7fe9734e6d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/date/update-abbr?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/update-abbr</a></div><div class='hunk'>@@ -0,0 +1,52 @@</div><div class='add'>+# -*- mode: ruby -*-</div><div class='add'>+require 'nokogiri'</div><div class='add'>+require 'open-uri'</div><div class='add'>+</div><div class='add'>+doc = Nokogiri::HTML(URI.open(ARGV[0] || 'https://www.timeanddate.com/time/zones/'))</div><div class='add'>+</div><div class='add'>+h = {}</div><div class='add'>+</div><div class='add'>+doc.css('#tz-abb tbody tr').each do |tr|</div><div class='add'>+  tds = tr.css('td')</div><div class='add'>+  abbr = tds[0].text.strip.downcase</div><div class='add'>+  offset = tds[3].text.strip.gsub(/UTC\s*/, '')</div><div class='add'>+  next if offset.include?('/') # skip ambiguous timezones</div><div class='add'>+  next if offset.empty?</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+  hour, min = offset.split(':', 2)</div><div class='add'>+  offset = (Integer(hour) * 60 + (Integer(min || 0)))*60</div><div class='add'>+  if h.has_key?(abbr)</div><div class='add'>+    h[abbr] = false</div><div class='add'>+  else</div><div class='add'>+    h[abbr] = offset</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+h.delete_if{|_,v| !v}</div><div class='add'>+</div><div class='add'>+lines = File.readlines('zonetab.list')</div><div class='add'>+lines.map! do |l|</div><div class='add'>+  if (sep = /^%%/ =~ l)...(sep = /^%%/ =~ l) and !sep</div><div class='add'>+    z, o = l.split(/,\s*/, 2)</div><div class='add'>+    o.strip!</div><div class='add'>+    if ho = h.delete(z) and ho != eval(o)</div><div class='add'>+      warn "offset of #{z}: #{o} -&gt; #{ho}"</div><div class='add'>+      l = l.sub(/,\s*\K.*/) {</div><div class='add'>+        if o.include?("*")</div><div class='add'>+          o1, o2 = ho.abs.divmod(3600)</div><div class='add'>+          o1 = "#{o1}*3600"</div><div class='add'>+          o1 = "(#{o1}+#{o2})" if o2 != 0</div><div class='add'>+          ho &lt; 0 ? "-#{o1}" : o1</div><div class='add'>+        else</div><div class='add'>+          ho.to_s</div><div class='add'>+        end</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  l</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+lines.insert(-2, h.sort.map{|k,v| "#{k},#{v}\n"})</div><div class='add'>+lines.flatten!</div><div class='add'>+File.write('zonetab.list', lines.join)</div><div class='head'>diff --git a/ext/date/zonetab.h b/ext/date/zonetab.h<br/>index 2dfa9b988a..7ced9e0308 100644<br/>--- a/<a href='/ruby.git/tree/ext/date/zonetab.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/zonetab.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/date/zonetab.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/zonetab.h</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> /* ANSI-C code produced by gperf version 3.1 */</div><div class='del'>-/* Command-line: gperf -E -C -c -P -p -j1 -i 1 -g -o -t -N zonetab zonetab.list  */</div><div class='del'>-/* Computed positions: -k'1-4,$' */</div><div class='add'>+/* Command-line: gperf --ignore-case -C -c -P -p -j1 -i 1 -g -o -t -N zonetab zonetab.list  */</div><div class='add'>+/* Computed positions: -k'1-4,9' */</div><div class='ctx'> </div><div class='ctx'> #if !((' ' == 32) &amp;&amp; ('!' == 33) &amp;&amp; ('"' == 34) &amp;&amp; ('#' == 35) \</div><div class='ctx'>       &amp;&amp; ('%' == 37) &amp;&amp; ('&amp;' == 38) &amp;&amp; ('\'' == 39) &amp;&amp; ('(' == 40) \</div><div class='hunk'>@@ -36,10 +36,61 @@ struct zone {</div><div class='ctx'>     int name;</div><div class='ctx'>     int offset;</div><div class='ctx'> };</div><div class='del'>-static const struct zone *zonetab();</div><div class='add'>+static const struct zone *zonetab(register const char *str, register size_t len);</div><div class='ctx'> #line 9 "zonetab.list"</div><div class='ctx'> struct zone;</div><div class='del'>-/* maximum key range = 434, duplicates = 0 */</div><div class='add'>+</div><div class='add'>+#define TOTAL_KEYWORDS 316</div><div class='add'>+#define MIN_WORD_LENGTH 1</div><div class='add'>+#define MAX_WORD_LENGTH 17</div><div class='add'>+#define MIN_HASH_VALUE 2</div><div class='add'>+#define MAX_HASH_VALUE 619</div><div class='add'>+/* maximum key range = 618, duplicates = 0 */</div><div class='add'>+</div><div class='add'>+#ifndef GPERF_DOWNCASE</div><div class='add'>+#define GPERF_DOWNCASE 1</div><div class='add'>+static const unsigned char gperf_downcase[256] =</div><div class='add'>+  {</div><div class='add'>+      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,</div><div class='add'>+     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,</div><div class='add'>+     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,</div><div class='add'>+     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,</div><div class='add'>+     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,</div><div class='add'>+    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,</div><div class='add'>+    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,</div><div class='add'>+    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,</div><div class='add'>+    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,</div><div class='add'>+    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,</div><div class='add'>+    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,</div><div class='add'>+    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,</div><div class='add'>+    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,</div><div class='add'>+    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,</div><div class='add'>+    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,</div><div class='add'>+    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,</div><div class='add'>+    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,</div><div class='add'>+    255</div><div class='add'>+  };</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef GPERF_CASE_STRNCMP</div><div class='add'>+#define GPERF_CASE_STRNCMP 1</div><div class='add'>+static int</div><div class='add'>+gperf_case_strncmp (register const char *s1, register const char *s2, register size_t n)</div><div class='add'>+{</div><div class='add'>+  for (; n &gt; 0;)</div><div class='add'>+    {</div><div class='add'>+      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];</div><div class='add'>+      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];</div><div class='add'>+      if (c1 != 0 &amp;&amp; c1 == c2)</div><div class='add'>+        {</div><div class='add'>+          n--;</div><div class='add'>+          continue;</div><div class='add'>+        }</div><div class='add'>+      return (int)c1 - (int)c2;</div><div class='add'>+    }</div><div class='add'>+  return 0;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #ifdef __GNUC__</div><div class='ctx'> __inline</div><div class='hunk'>@@ -53,824 +104,1440 @@ hash (register const char *str, register size_t len)</div><div class='ctx'> {</div><div class='ctx'>   static const unsigned short asso_values[] =</div><div class='ctx'>     {</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439,  19, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439,   2,   4, 439, 439, 439,</div><div class='del'>-      439, 439,   8,   6,   3, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439,   7,  63,  53,</div><div class='del'>-        2,   4,  32, 110,  88,  78,  90,  68,  47, 108,</div><div class='del'>-       10,  73,  81, 124,   3,   1,   4,  77, 116,  88,</div><div class='del'>-       15,  96,  45,   5, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439, 439, 439, 439,</div><div class='del'>-      439, 439, 439, 439, 439, 439, 439</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620,  17, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620,   3,   2, 620, 620, 620,</div><div class='add'>+      620, 620,  70,   8,   3, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620,  39, 176, 207,  70, 168,</div><div class='add'>+        1,   5,  18,  74, 218,   2, 117, 130,  48,  88,</div><div class='add'>+      125, 225,  92,   1,   1,  12,  54,  30,  36,  13,</div><div class='add'>+       48, 168, 263,  59, 114, 166, 109,  39, 176, 207,</div><div class='add'>+       70, 168,   1,   5,  18,  74, 218,   2, 117, 130,</div><div class='add'>+       48,  88, 125, 225,  92,   1,   1,  12,  54,  30,</div><div class='add'>+       36,  13,  48, 168, 263,  59, 114, 166, 109,  27,</div><div class='add'>+      104,   1,   9,   4, 309, 190, 188, 177, 255, 108,</div><div class='add'>+        2, 341,   3, 620, 620, 620, 620, 620, 620,  12,</div><div class='add'>+       54,  30,  36,  13,  48, 168, 263,  59, 114, 166,</div><div class='add'>+      109,  27, 104,   1,   9,   4, 309, 190, 188, 177,</div><div class='add'>+      255, 108,   2, 341,   3, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,</div><div class='add'>+      620, 620, 620, 620, 620, 620, 620, 620</div><div class='ctx'>     };</div><div class='ctx'>   register unsigned int hval = (unsigned int)len;</div><div class='ctx'> </div><div class='ctx'>   switch (hval)</div><div class='ctx'>     {</div><div class='ctx'>       default:</div><div class='add'>+        hval += asso_values[(unsigned char)str[8]];</div><div class='add'>+      /*FALLTHROUGH*/</div><div class='add'>+      case 8:</div><div class='add'>+      case 7:</div><div class='add'>+      case 6:</div><div class='add'>+      case 5:</div><div class='add'>+      case 4:</div><div class='ctx'>         hval += asso_values[(unsigned char)str[3]];</div><div class='ctx'>       /*FALLTHROUGH*/</div><div class='ctx'>       case 3:</div><div class='ctx'>         hval += asso_values[(unsigned char)str[2]];</div><div class='ctx'>       /*FALLTHROUGH*/</div><div class='ctx'>       case 2:</div><div class='del'>-        hval += asso_values[(unsigned char)str[1]];</div><div class='add'>+        hval += asso_values[(unsigned char)str[1]+6];</div><div class='ctx'>       /*FALLTHROUGH*/</div><div class='ctx'>       case 1:</div><div class='del'>-        hval += asso_values[(unsigned char)str[0]+1];</div><div class='add'>+        hval += asso_values[(unsigned char)str[0]+52];</div><div class='ctx'>         break;</div><div class='ctx'>     }</div><div class='del'>-  return (unsigned int)hval + asso_values[(unsigned char)str[len - 1]];</div><div class='add'>+  return (unsigned int)hval;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct stringpool_t</div><div class='ctx'>   {</div><div class='del'>-    char stringpool_str5[sizeof("r")];</div><div class='del'>-    char stringpool_str6[sizeof("s")];</div><div class='del'>-    char stringpool_str7[sizeof("d")];</div><div class='del'>-    char stringpool_str14[sizeof("cst")];</div><div class='del'>-    char stringpool_str15[sizeof("cdt")];</div><div class='del'>-    char stringpool_str16[sizeof("sst")];</div><div class='del'>-    char stringpool_str17[sizeof("cet")];</div><div class='del'>-    char stringpool_str18[sizeof("msd")];</div><div class='del'>-    char stringpool_str19[sizeof("cest")];</div><div class='del'>-    char stringpool_str20[sizeof("cat")];</div><div class='del'>-    char stringpool_str22[sizeof("mst")];</div><div class='del'>-    char stringpool_str23[sizeof("mdt")];</div><div class='del'>-    char stringpool_str24[sizeof("sast")];</div><div class='del'>-    char stringpool_str25[sizeof("met")];</div><div class='del'>-    char stringpool_str27[sizeof("mest")];</div><div class='del'>-    char stringpool_str30[sizeof("wet")];</div><div class='del'>-    char stringpool_str31[sizeof("dateline")];</div><div class='del'>-    char stringpool_str32[sizeof("west")];</div><div class='del'>-    char stringpool_str33[sizeof("wat")];</div><div class='del'>-    char stringpool_str35[sizeof("wast")];</div><div class='del'>-    char stringpool_str36[sizeof("wadt")];</div><div class='del'>-    char stringpool_str37[sizeof("e")];</div><div class='del'>-    char stringpool_str38[sizeof("central europe")];</div><div class='del'>-    char stringpool_str39[sizeof("central asia")];</div><div class='del'>-    char stringpool_str40[sizeof("west asia")];</div><div class='del'>-    char stringpool_str41[sizeof("cen. australia")];</div><div class='del'>-    char stringpool_str42[sizeof("central america")];</div><div class='del'>-    char stringpool_str44[sizeof("est")];</div><div class='del'>-    char stringpool_str45[sizeof("edt")];</div><div class='del'>-    char stringpool_str46[sizeof("central european")];</div><div class='del'>-    char stringpool_str47[sizeof("eet")];</div><div class='del'>-    char stringpool_str48[sizeof("se asia")];</div><div class='del'>-    char stringpool_str49[sizeof("eest")];</div><div class='del'>-    char stringpool_str50[sizeof("eat")];</div><div class='del'>-    char stringpool_str51[sizeof("z")];</div><div class='del'>-    char stringpool_str52[sizeof("east")];</div><div class='del'>-    char stringpool_str53[sizeof("eadt")];</div><div class='del'>-    char stringpool_str54[sizeof("sa eastern")];</div><div class='del'>-    char stringpool_str55[sizeof("w. europe")];</div><div class='del'>-    char stringpool_str56[sizeof("c")];</div><div class='del'>-    char stringpool_str57[sizeof("yst")];</div><div class='del'>-    char stringpool_str58[sizeof("ydt")];</div><div class='del'>-    char stringpool_str59[sizeof("kst")];</div><div class='del'>-    char stringpool_str60[sizeof("clt")];</div><div class='del'>-    char stringpool_str61[sizeof("eastern")];</div><div class='del'>-    char stringpool_str62[sizeof("clst")];</div><div class='del'>-    char stringpool_str63[sizeof("bt")];</div><div class='del'>-    char stringpool_str64[sizeof("w. australia")];</div><div class='del'>-    char stringpool_str65[sizeof("bst")];</div><div class='del'>-    char stringpool_str66[sizeof("cct")];</div><div class='del'>-    char stringpool_str67[sizeof("brt")];</div><div class='del'>-    char stringpool_str69[sizeof("brst")];</div><div class='del'>-    char stringpool_str71[sizeof("a")];</div><div class='del'>-    char stringpool_str72[sizeof("e. europe")];</div><div class='del'>-    char stringpool_str73[sizeof("at")];</div><div class='del'>-    char stringpool_str74[sizeof("central")];</div><div class='del'>-    char stringpool_str75[sizeof("ast")];</div><div class='del'>-    char stringpool_str76[sizeof("adt")];</div><div class='del'>-    char stringpool_str77[sizeof("art")];</div><div class='del'>-    char stringpool_str78[sizeof("e. africa")];</div><div class='del'>-    char stringpool_str79[sizeof("e. south america")];</div><div class='del'>-    char stringpool_str80[sizeof("jst")];</div><div class='del'>-    char stringpool_str81[sizeof("e. australia")];</div><div class='del'>-    char stringpool_str82[sizeof("t")];</div><div class='del'>-    char stringpool_str83[sizeof("nt")];</div><div class='del'>-    char stringpool_str84[sizeof("n")];</div><div class='del'>-    char stringpool_str85[sizeof("nst")];</div><div class='del'>-    char stringpool_str86[sizeof("ndt")];</div><div class='del'>-    char stringpool_str87[sizeof("canada central")];</div><div class='del'>-    char stringpool_str88[sizeof("central pacific")];</div><div class='del'>-    char stringpool_str89[sizeof("west pacific")];</div><div class='del'>-    char stringpool_str90[sizeof("hst")];</div><div class='del'>-    char stringpool_str91[sizeof("hdt")];</div><div class='del'>-    char stringpool_str93[sizeof("malay peninsula")];</div><div class='del'>-    char stringpool_str95[sizeof("zp6")];</div><div class='del'>-    char stringpool_str97[sizeof("russian")];</div><div class='del'>-    char stringpool_str98[sizeof("hast")];</div><div class='del'>-    char stringpool_str99[sizeof("hadt")];</div><div class='del'>-    char stringpool_str100[sizeof("gst")];</div><div class='del'>-    char stringpool_str101[sizeof("zp5")];</div><div class='del'>-    char stringpool_str102[sizeof("ist")];</div><div class='del'>-    char stringpool_str103[sizeof("swt")];</div><div class='del'>-    char stringpool_str104[sizeof("w")];</div><div class='del'>-    char stringpool_str105[sizeof("zp4")];</div><div class='del'>-    char stringpool_str107[sizeof("mez")];</div><div class='del'>-    char stringpool_str108[sizeof("cape verde")];</div><div class='del'>-    char stringpool_str109[sizeof("mesz")];</div><div class='del'>-    char stringpool_str110[sizeof("greenland")];</div><div class='del'>-    char stringpool_str112[sizeof("x")];</div><div class='del'>-    char stringpool_str114[sizeof("mewt")];</div><div class='del'>-    char stringpool_str115[sizeof("w. central africa")];</div><div class='del'>-    char stringpool_str116[sizeof("k")];</div><div class='del'>-    char stringpool_str117[sizeof("b")];</div><div class='del'>-    char stringpool_str119[sizeof("m")];</div><div class='del'>-    char stringpool_str120[sizeof("sri lanka")];</div><div class='del'>-    char stringpool_str122[sizeof("fst")];</div><div class='del'>-    char stringpool_str124[sizeof("iran")];</div><div class='del'>-    char stringpool_str125[sizeof("sgt")];</div><div class='del'>-    char stringpool_str126[sizeof("ut")];</div><div class='del'>-    char stringpool_str128[sizeof("q")];</div><div class='del'>-    char stringpool_str129[sizeof("nzt")];</div><div class='del'>-    char stringpool_str131[sizeof("nzst")];</div><div class='del'>-    char stringpool_str132[sizeof("nzdt")];</div><div class='del'>-    char stringpool_str133[sizeof("myanmar")];</div><div class='del'>-    char stringpool_str135[sizeof("alaskan")];</div><div class='del'>-    char stringpool_str136[sizeof("pst")];</div><div class='del'>-    char stringpool_str137[sizeof("pdt")];</div><div class='del'>-    char stringpool_str138[sizeof("sa western")];</div><div class='del'>-    char stringpool_str139[sizeof("korea")];</div><div class='del'>-    char stringpool_str142[sizeof("y")];</div><div class='del'>-    char stringpool_str143[sizeof("f")];</div><div class='del'>-    char stringpool_str144[sizeof("akst")];</div><div class='del'>-    char stringpool_str145[sizeof("akdt")];</div><div class='del'>-    char stringpool_str148[sizeof("caucasus")];</div><div class='del'>-    char stringpool_str150[sizeof("msk")];</div><div class='del'>-    char stringpool_str151[sizeof("idle")];</div><div class='del'>-    char stringpool_str153[sizeof("arabian")];</div><div class='del'>-    char stringpool_str155[sizeof("o")];</div><div class='del'>-    char stringpool_str156[sizeof("l")];</div><div class='del'>-    char stringpool_str157[sizeof("mid-atlantic")];</div><div class='del'>-    char stringpool_str160[sizeof("us eastern")];</div><div class='del'>-    char stringpool_str164[sizeof("ahst")];</div><div class='del'>-    char stringpool_str167[sizeof("h")];</div><div class='del'>-    char stringpool_str168[sizeof("fle")];</div><div class='del'>-    char stringpool_str169[sizeof("i")];</div><div class='del'>-    char stringpool_str170[sizeof("north asia")];</div><div class='del'>-    char stringpool_str171[sizeof("n. central asia")];</div><div class='del'>-    char stringpool_str172[sizeof("north asia east")];</div><div class='del'>-    char stringpool_str174[sizeof("sa pacific")];</div><div class='del'>-    char stringpool_str177[sizeof("south africa")];</div><div class='del'>-    char stringpool_str181[sizeof("aus eastern")];</div><div class='del'>-    char stringpool_str182[sizeof("atlantic")];</div><div class='del'>-    char stringpool_str186[sizeof("mexico")];</div><div class='del'>-    char stringpool_str188[sizeof("mountain")];</div><div class='del'>-    char stringpool_str190[sizeof("china")];</div><div class='del'>-    char stringpool_str191[sizeof("azores")];</div><div class='del'>-    char stringpool_str192[sizeof("india")];</div><div class='del'>-    char stringpool_str194[sizeof("u")];</div><div class='del'>-    char stringpool_str195[sizeof("arabic")];</div><div class='del'>-    char stringpool_str196[sizeof("greenwich")];</div><div class='del'>-    char stringpool_str197[sizeof("new zealand")];</div><div class='del'>-    char stringpool_str198[sizeof("hawaiian")];</div><div class='del'>-    char stringpool_str199[sizeof("g")];</div><div class='del'>-    char stringpool_str200[sizeof("romance")];</div><div class='del'>-    char stringpool_str203[sizeof("arab")];</div><div class='del'>-    char stringpool_str204[sizeof("samoa")];</div><div class='del'>-    char stringpool_str205[sizeof("v")];</div><div class='del'>-    char stringpool_str206[sizeof("p")];</div><div class='del'>-    char stringpool_str207[sizeof("gmt")];</div><div class='del'>-    char stringpool_str208[sizeof("tasmania")];</div><div class='del'>-    char stringpool_str209[sizeof("fwt")];</div><div class='del'>-    char stringpool_str211[sizeof("newfoundland")];</div><div class='del'>-    char stringpool_str217[sizeof("nepal")];</div><div class='del'>-    char stringpool_str218[sizeof("aus central")];</div><div class='del'>-    char stringpool_str221[sizeof("gtb")];</div><div class='del'>-    char stringpool_str223[sizeof("vladivostok")];</div><div class='del'>-    char stringpool_str229[sizeof("utc")];</div><div class='del'>-    char stringpool_str233[sizeof("ekaterinburg")];</div><div class='del'>-    char stringpool_str265[sizeof("us mountain")];</div><div class='del'>-    char stringpool_str269[sizeof("jerusalem")];</div><div class='del'>-    char stringpool_str272[sizeof("yakutsk")];</div><div class='del'>-    char stringpool_str279[sizeof("pacific sa")];</div><div class='del'>-    char stringpool_str282[sizeof("tonga")];</div><div class='del'>-    char stringpool_str314[sizeof("afghanistan")];</div><div class='del'>-    char stringpool_str319[sizeof("idlw")];</div><div class='del'>-    char stringpool_str322[sizeof("pacific")];</div><div class='del'>-    char stringpool_str327[sizeof("taipei")];</div><div class='del'>-    char stringpool_str328[sizeof("egypt")];</div><div class='del'>-    char stringpool_str392[sizeof("tokyo")];</div><div class='del'>-    char stringpool_str438[sizeof("fiji")];</div><div class='add'>+    char stringpool_str2[sizeof("o")];</div><div class='add'>+    char stringpool_str3[sizeof("x")];</div><div class='add'>+    char stringpool_str4[sizeof("z")];</div><div class='add'>+    char stringpool_str5[sizeof("q")];</div><div class='add'>+    char stringpool_str8[sizeof("omst")];</div><div class='add'>+    char stringpool_str9[sizeof("omsst")];</div><div class='add'>+    char stringpool_str10[sizeof("p")];</div><div class='add'>+    char stringpool_str13[sizeof("a")];</div><div class='add'>+    char stringpool_str14[sizeof("e")];</div><div class='add'>+    char stringpool_str15[sizeof("pet")];</div><div class='add'>+    char stringpool_str16[sizeof("pmst")];</div><div class='add'>+    char stringpool_str17[sizeof("pett")];</div><div class='add'>+    char stringpool_str18[sizeof("petst")];</div><div class='add'>+    char stringpool_str19[sizeof("eet")];</div><div class='add'>+    char stringpool_str20[sizeof("aest")];</div><div class='add'>+    char stringpool_str21[sizeof("eest")];</div><div class='add'>+    char stringpool_str22[sizeof("eat")];</div><div class='add'>+    char stringpool_str24[sizeof("east")];</div><div class='add'>+    char stringpool_str25[sizeof("easst")];</div><div class='add'>+    char stringpool_str26[sizeof("pst")];</div><div class='add'>+    char stringpool_str27[sizeof("eastern")];</div><div class='add'>+    char stringpool_str28[sizeof("m")];</div><div class='add'>+    char stringpool_str29[sizeof("ast")];</div><div class='add'>+    char stringpool_str30[sizeof("est")];</div><div class='add'>+    char stringpool_str31[sizeof("c")];</div><div class='add'>+    char stringpool_str32[sizeof("mmt")];</div><div class='add'>+    char stringpool_str33[sizeof("met")];</div><div class='add'>+    char stringpool_str35[sizeof("mest")];</div><div class='add'>+    char stringpool_str36[sizeof("cet")];</div><div class='add'>+    char stringpool_str37[sizeof("d")];</div><div class='add'>+    char stringpool_str38[sizeof("cest")];</div><div class='add'>+    char stringpool_str39[sizeof("cat")];</div><div class='add'>+    char stringpool_str41[sizeof("cast")];</div><div class='add'>+    char stringpool_str42[sizeof("magt")];</div><div class='add'>+    char stringpool_str43[sizeof("magst")];</div><div class='add'>+    char stringpool_str44[sizeof("mst")];</div><div class='add'>+    char stringpool_str45[sizeof("msk")];</div><div class='add'>+    char stringpool_str46[sizeof("cot")];</div><div class='add'>+    char stringpool_str47[sizeof("cst")];</div><div class='add'>+    char stringpool_str48[sizeof("aqtt")];</div><div class='add'>+    char stringpool_str49[sizeof("f")];</div><div class='add'>+    char stringpool_str52[sizeof("art")];</div><div class='add'>+    char stringpool_str53[sizeof("fnt")];</div><div class='add'>+    char stringpool_str54[sizeof("fet")];</div><div class='add'>+    char stringpool_str55[sizeof("b")];</div><div class='add'>+    char stringpool_str57[sizeof("anat")];</div><div class='add'>+    char stringpool_str58[sizeof("anast")];</div><div class='add'>+    char stringpool_str59[sizeof("bnt")];</div><div class='add'>+    char stringpool_str60[sizeof("i")];</div><div class='add'>+    char stringpool_str61[sizeof("pht")];</div><div class='add'>+    char stringpool_str62[sizeof("at")];</div><div class='add'>+    char stringpool_str63[sizeof("zp6")];</div><div class='add'>+    char stringpool_str64[sizeof("mewt")];</div><div class='add'>+    char stringpool_str65[sizeof("fst")];</div><div class='add'>+    char stringpool_str66[sizeof("ahst")];</div><div class='add'>+    char stringpool_str67[sizeof("mawt")];</div><div class='add'>+    char stringpool_str68[sizeof("zp5")];</div><div class='add'>+    char stringpool_str70[sizeof("bot")];</div><div class='add'>+    char stringpool_str71[sizeof("bst")];</div><div class='add'>+    char stringpool_str72[sizeof("pwt")];</div><div class='add'>+    char stringpool_str74[sizeof("pont")];</div><div class='add'>+    char stringpool_str75[sizeof("iot")];</div><div class='add'>+    char stringpool_str76[sizeof("ist")];</div><div class='add'>+    char stringpool_str77[sizeof("awst")];</div><div class='add'>+    char stringpool_str79[sizeof("mht")];</div><div class='add'>+    char stringpool_str80[sizeof("mez")];</div><div class='add'>+    char stringpool_str81[sizeof("orat")];</div><div class='add'>+    char stringpool_str82[sizeof("mesz")];</div><div class='add'>+    char stringpool_str84[sizeof("chst")];</div><div class='add'>+    char stringpool_str85[sizeof("pmdt")];</div><div class='add'>+    char stringpool_str88[sizeof("central")];</div><div class='add'>+    char stringpool_str89[sizeof("aedt")];</div><div class='add'>+    char stringpool_str90[sizeof("act")];</div><div class='add'>+    char stringpool_str91[sizeof("ect")];</div><div class='add'>+    char stringpool_str92[sizeof("acst")];</div><div class='add'>+    char stringpool_str93[sizeof("eadt")];</div><div class='add'>+    char stringpool_str94[sizeof("brt")];</div><div class='add'>+    char stringpool_str95[sizeof("chut")];</div><div class='add'>+    char stringpool_str96[sizeof("brst")];</div><div class='add'>+    char stringpool_str97[sizeof("cen. australia")];</div><div class='add'>+    char stringpool_str100[sizeof("davt")];</div><div class='add'>+    char stringpool_str101[sizeof("irst")];</div><div class='add'>+    char stringpool_str102[sizeof("irkt")];</div><div class='add'>+    char stringpool_str103[sizeof("irkst")];</div><div class='add'>+    char stringpool_str104[sizeof("bt")];</div><div class='add'>+    char stringpool_str105[sizeof("n")];</div><div class='add'>+    char stringpool_str106[sizeof("btt")];</div><div class='add'>+    char stringpool_str107[sizeof("mountain")];</div><div class='add'>+    char stringpool_str108[sizeof("cct")];</div><div class='add'>+    char stringpool_str109[sizeof("w")];</div><div class='add'>+    char stringpool_str110[sizeof("l")];</div><div class='add'>+    char stringpool_str111[sizeof("fwt")];</div><div class='add'>+    char stringpool_str113[sizeof("msd")];</div><div class='add'>+    char stringpool_str114[sizeof("wet")];</div><div class='add'>+    char stringpool_str116[sizeof("west")];</div><div class='add'>+    char stringpool_str117[sizeof("wat")];</div><div class='add'>+    char stringpool_str119[sizeof("wast")];</div><div class='add'>+    char stringpool_str120[sizeof("wakt")];</div><div class='add'>+    char stringpool_str121[sizeof("nst")];</div><div class='add'>+    char stringpool_str122[sizeof("acwst")];</div><div class='add'>+    char stringpool_str123[sizeof("chast")];</div><div class='add'>+    char stringpool_str124[sizeof("cist")];</div><div class='add'>+    char stringpool_str125[sizeof("azt")];</div><div class='add'>+    char stringpool_str126[sizeof("clt")];</div><div class='add'>+    char stringpool_str127[sizeof("azst")];</div><div class='add'>+    char stringpool_str128[sizeof("clst")];</div><div class='add'>+    char stringpool_str129[sizeof("mart")];</div><div class='add'>+    char stringpool_str130[sizeof("zp4")];</div><div class='add'>+    char stringpool_str131[sizeof("jst")];</div><div class='add'>+    char stringpool_str132[sizeof("central asia")];</div><div class='add'>+    char stringpool_str133[sizeof("aft")];</div><div class='add'>+    char stringpool_str134[sizeof("e. south america")];</div><div class='add'>+    char stringpool_str135[sizeof("central america")];</div><div class='add'>+    char stringpool_str137[sizeof("ict")];</div><div class='add'>+    char stringpool_str143[sizeof("pgt")];</div><div class='add'>+    char stringpool_str144[sizeof("nrt")];</div><div class='add'>+    char stringpool_str145[sizeof("mexico")];</div><div class='add'>+    char stringpool_str146[sizeof("awdt")];</div><div class='add'>+    char stringpool_str147[sizeof("egt")];</div><div class='add'>+    char stringpool_str148[sizeof("cxt")];</div><div class='add'>+    char stringpool_str149[sizeof("egst")];</div><div class='add'>+    char stringpool_str150[sizeof("phot")];</div><div class='add'>+    char stringpool_str151[sizeof("alaskan")];</div><div class='add'>+    char stringpool_str154[sizeof("nt")];</div><div class='add'>+    char stringpool_str158[sizeof("wt")];</div><div class='add'>+    char stringpool_str160[sizeof("west asia")];</div><div class='add'>+    char stringpool_str161[sizeof("acdt")];</div><div class='add'>+    char stringpool_str162[sizeof("npt")];</div><div class='add'>+    char stringpool_str163[sizeof("lhst")];</div><div class='add'>+    char stringpool_str164[sizeof("afghanistan")];</div><div class='add'>+    char stringpool_str167[sizeof("k")];</div><div class='add'>+    char stringpool_str169[sizeof("g")];</div><div class='add'>+    char stringpool_str170[sizeof("irdt")];</div><div class='add'>+    char stringpool_str171[sizeof("chot")];</div><div class='add'>+    char stringpool_str172[sizeof("chost")];</div><div class='add'>+    char stringpool_str173[sizeof("gmt")];</div><div class='add'>+    char stringpool_str174[sizeof("get")];</div><div class='add'>+    char stringpool_str175[sizeof("novt")];</div><div class='add'>+    char stringpool_str176[sizeof("novst")];</div><div class='add'>+    char stringpool_str177[sizeof("fjt")];</div><div class='add'>+    char stringpool_str178[sizeof("u")];</div><div class='add'>+    char stringpool_str179[sizeof("fjst")];</div><div class='add'>+    char stringpool_str181[sizeof("pyst")];</div><div class='add'>+    char stringpool_str182[sizeof("nct")];</div><div class='add'>+    char stringpool_str183[sizeof("kst")];</div><div class='add'>+    char stringpool_str184[sizeof("kost")];</div><div class='add'>+    char stringpool_str185[sizeof("gst")];</div><div class='add'>+    char stringpool_str186[sizeof("iran")];</div><div class='add'>+    char stringpool_str187[sizeof("e. africa")];</div><div class='add'>+    char stringpool_str188[sizeof("wadt")];</div><div class='add'>+    char stringpool_str189[sizeof("t")];</div><div class='add'>+    char stringpool_str190[sizeof("e. australia")];</div><div class='add'>+    char stringpool_str191[sizeof("s")];</div><div class='add'>+    char stringpool_str192[sizeof("chadt")];</div><div class='add'>+    char stringpool_str193[sizeof("tmt")];</div><div class='add'>+    char stringpool_str194[sizeof("cidst")];</div><div class='add'>+    char stringpool_str195[sizeof("aoe")];</div><div class='add'>+    char stringpool_str197[sizeof("myt")];</div><div class='add'>+    char stringpool_str198[sizeof("west pacific")];</div><div class='add'>+    char stringpool_str199[sizeof("mut")];</div><div class='add'>+    char stringpool_str200[sizeof("wit")];</div><div class='add'>+    char stringpool_str201[sizeof("sast")];</div><div class='add'>+    char stringpool_str202[sizeof("sakt")];</div><div class='add'>+    char stringpool_str203[sizeof("new zealand")];</div><div class='add'>+    char stringpool_str204[sizeof("tot")];</div><div class='add'>+    char stringpool_str205[sizeof("china")];</div><div class='add'>+    char stringpool_str206[sizeof("tost")];</div><div class='add'>+    char stringpool_str207[sizeof("sst")];</div><div class='add'>+    char stringpool_str209[sizeof("india")];</div><div class='add'>+    char stringpool_str211[sizeof("warst")];</div><div class='add'>+    char stringpool_str212[sizeof("sbt")];</div><div class='add'>+    char stringpool_str214[sizeof("azot")];</div><div class='add'>+    char stringpool_str215[sizeof("azost")];</div><div class='add'>+    char stringpool_str216[sizeof("taht")];</div><div class='add'>+    char stringpool_str217[sizeof("nzt")];</div><div class='add'>+    char stringpool_str218[sizeof("dateline")];</div><div class='add'>+    char stringpool_str219[sizeof("nzst")];</div><div class='add'>+    char stringpool_str220[sizeof("tokyo")];</div><div class='add'>+    char stringpool_str221[sizeof("central pacific")];</div><div class='add'>+    char stringpool_str223[sizeof("qyzt")];</div><div class='add'>+    char stringpool_str224[sizeof("atlantic")];</div><div class='add'>+    char stringpool_str225[sizeof("nft")];</div><div class='add'>+    char stringpool_str227[sizeof("ut")];</div><div class='add'>+    char stringpool_str228[sizeof("trt")];</div><div class='add'>+    char stringpool_str229[sizeof("wft")];</div><div class='add'>+    char stringpool_str230[sizeof("srt")];</div><div class='add'>+    char stringpool_str231[sizeof("pdt")];</div><div class='add'>+    char stringpool_str232[sizeof("lhdt")];</div><div class='add'>+    char stringpool_str234[sizeof("adt")];</div><div class='add'>+    char stringpool_str235[sizeof("edt")];</div><div class='add'>+    char stringpool_str238[sizeof("pkt")];</div><div class='add'>+    char stringpool_str239[sizeof("almt")];</div><div class='add'>+    char stringpool_str240[sizeof("wita")];</div><div class='add'>+    char stringpool_str242[sizeof("wgt")];</div><div class='add'>+    char stringpool_str243[sizeof("akst")];</div><div class='add'>+    char stringpool_str244[sizeof("wgst")];</div><div class='add'>+    char stringpool_str246[sizeof("krat")];</div><div class='add'>+    char stringpool_str247[sizeof("krast")];</div><div class='add'>+    char stringpool_str248[sizeof("mid-atlantic")];</div><div class='add'>+    char stringpool_str249[sizeof("mdt")];</div><div class='add'>+    char stringpool_str250[sizeof("lint")];</div><div class='add'>+    char stringpool_str251[sizeof("malay peninsula")];</div><div class='add'>+    char stringpool_str252[sizeof("cdt")];</div><div class='add'>+    char stringpool_str253[sizeof("swt")];</div><div class='add'>+    char stringpool_str255[sizeof("se asia")];</div><div class='add'>+    char stringpool_str256[sizeof("v")];</div><div class='add'>+    char stringpool_str258[sizeof("tonga")];</div><div class='add'>+    char stringpool_str259[sizeof("ckt")];</div><div class='add'>+    char stringpool_str261[sizeof("vet")];</div><div class='add'>+    char stringpool_str262[sizeof("caucasus")];</div><div class='add'>+    char stringpool_str263[sizeof("central europe")];</div><div class='add'>+    char stringpool_str264[sizeof("h")];</div><div class='add'>+    char stringpool_str265[sizeof("central european")];</div><div class='add'>+    char stringpool_str266[sizeof("newfoundland")];</div><div class='add'>+    char stringpool_str267[sizeof("arab")];</div><div class='add'>+    char stringpool_str268[sizeof("sct")];</div><div class='add'>+    char stringpool_str269[sizeof("arabic")];</div><div class='add'>+    char stringpool_str270[sizeof("arabian")];</div><div class='add'>+    char stringpool_str271[sizeof("ddut")];</div><div class='add'>+    char stringpool_str273[sizeof("vost")];</div><div class='add'>+    char stringpool_str274[sizeof("hast")];</div><div class='add'>+    char stringpool_str275[sizeof("nepal")];</div><div class='add'>+    char stringpool_str276[sizeof("nut")];</div><div class='add'>+    char stringpool_str277[sizeof("fkt")];</div><div class='add'>+    char stringpool_str279[sizeof("fkst")];</div><div class='add'>+    char stringpool_str280[sizeof("hst")];</div><div class='add'>+    char stringpool_str281[sizeof("idt")];</div><div class='add'>+    char stringpool_str284[sizeof("tlt")];</div><div class='add'>+    char stringpool_str285[sizeof("w. australia")];</div><div class='add'>+    char stringpool_str286[sizeof("egypt")];</div><div class='add'>+    char stringpool_str287[sizeof("myanmar")];</div><div class='add'>+    char stringpool_str288[sizeof("nzdt")];</div><div class='add'>+    char stringpool_str289[sizeof("gft")];</div><div class='add'>+    char stringpool_str290[sizeof("uzt")];</div><div class='add'>+    char stringpool_str293[sizeof("north asia")];</div><div class='add'>+    char stringpool_str294[sizeof("mvt")];</div><div class='add'>+    char stringpool_str295[sizeof("galt")];</div><div class='add'>+    char stringpool_str296[sizeof("nfdt")];</div><div class='add'>+    char stringpool_str297[sizeof("cvt")];</div><div class='add'>+    char stringpool_str298[sizeof("north asia east")];</div><div class='add'>+    char stringpool_str300[sizeof("kgt")];</div><div class='add'>+    char stringpool_str301[sizeof("aus central")];</div><div class='add'>+    char stringpool_str302[sizeof("pacific")];</div><div class='add'>+    char stringpool_str304[sizeof("canada central")];</div><div class='add'>+    char stringpool_str306[sizeof("pacific sa")];</div><div class='add'>+    char stringpool_str307[sizeof("azores")];</div><div class='add'>+    char stringpool_str308[sizeof("gamt")];</div><div class='add'>+    char stringpool_str309[sizeof("tft")];</div><div class='add'>+    char stringpool_str310[sizeof("r")];</div><div class='add'>+    char stringpool_str311[sizeof("fle")];</div><div class='add'>+    char stringpool_str312[sizeof("akdt")];</div><div class='add'>+    char stringpool_str313[sizeof("ulat")];</div><div class='add'>+    char stringpool_str314[sizeof("ulast")];</div><div class='add'>+    char stringpool_str315[sizeof("ret")];</div><div class='add'>+    char stringpool_str317[sizeof("tjt")];</div><div class='add'>+    char stringpool_str319[sizeof("south africa")];</div><div class='add'>+    char stringpool_str324[sizeof("sgt")];</div><div class='add'>+    char stringpool_str326[sizeof("ndt")];</div><div class='add'>+    char stringpool_str327[sizeof("rott")];</div><div class='add'>+    char stringpool_str330[sizeof("samt")];</div><div class='add'>+    char stringpool_str332[sizeof("tasmania")];</div><div class='add'>+    char stringpool_str334[sizeof("hovt")];</div><div class='add'>+    char stringpool_str335[sizeof("hovst")];</div><div class='add'>+    char stringpool_str338[sizeof("gyt")];</div><div class='add'>+    char stringpool_str342[sizeof("y")];</div><div class='add'>+    char stringpool_str343[sizeof("hadt")];</div><div class='add'>+    char stringpool_str344[sizeof("sa western")];</div><div class='add'>+    char stringpool_str345[sizeof("hawaiian")];</div><div class='add'>+    char stringpool_str347[sizeof("uyt")];</div><div class='add'>+    char stringpool_str349[sizeof("uyst")];</div><div class='add'>+    char stringpool_str350[sizeof("yekt")];</div><div class='add'>+    char stringpool_str351[sizeof("yekst")];</div><div class='add'>+    char stringpool_str352[sizeof("kuyt")];</div><div class='add'>+    char stringpool_str353[sizeof("yakt")];</div><div class='add'>+    char stringpool_str354[sizeof("yakst")];</div><div class='add'>+    char stringpool_str358[sizeof("yst")];</div><div class='add'>+    char stringpool_str359[sizeof("jerusalem")];</div><div class='add'>+    char stringpool_str365[sizeof("sri lanka")];</div><div class='add'>+    char stringpool_str367[sizeof("yakutsk")];</div><div class='add'>+    char stringpool_str375[sizeof("wib")];</div><div class='add'>+    char stringpool_str377[sizeof("aus eastern")];</div><div class='add'>+    char stringpool_str378[sizeof("gilt")];</div><div class='add'>+    char stringpool_str387[sizeof("us mountain")];</div><div class='add'>+    char stringpool_str391[sizeof("vlat")];</div><div class='add'>+    char stringpool_str392[sizeof("vlast")];</div><div class='add'>+    char stringpool_str395[sizeof("gtb")];</div><div class='add'>+    char stringpool_str398[sizeof("taipei")];</div><div class='add'>+    char stringpool_str399[sizeof("sret")];</div><div class='add'>+    char stringpool_str408[sizeof("cape verde")];</div><div class='add'>+    char stringpool_str417[sizeof("tkt")];</div><div class='add'>+    char stringpool_str418[sizeof("samoa")];</div><div class='add'>+    char stringpool_str421[sizeof("sa pacific")];</div><div class='add'>+    char stringpool_str427[sizeof("vut")];</div><div class='add'>+    char stringpool_str428[sizeof("idlw")];</div><div class='add'>+    char stringpool_str432[sizeof("fiji")];</div><div class='add'>+    char stringpool_str435[sizeof("utc")];</div><div class='add'>+    char stringpool_str443[sizeof("korea")];</div><div class='add'>+    char stringpool_str445[sizeof("e. europe")];</div><div class='add'>+    char stringpool_str449[sizeof("syot")];</div><div class='add'>+    char stringpool_str452[sizeof("n. central asia")];</div><div class='add'>+    char stringpool_str455[sizeof("tvt")];</div><div class='add'>+    char stringpool_str458[sizeof("w. central africa")];</div><div class='add'>+    char stringpool_str466[sizeof("ekaterinburg")];</div><div class='add'>+    char stringpool_str468[sizeof("vladivostok")];</div><div class='add'>+    char stringpool_str476[sizeof("yapt")];</div><div class='add'>+    char stringpool_str477[sizeof("us eastern")];</div><div class='add'>+    char stringpool_str482[sizeof("sa eastern")];</div><div class='add'>+    char stringpool_str485[sizeof("hdt")];</div><div class='add'>+    char stringpool_str486[sizeof("russian")];</div><div class='add'>+    char stringpool_str492[sizeof("hkt")];</div><div class='add'>+    char stringpool_str497[sizeof("romance")];</div><div class='add'>+    char stringpool_str540[sizeof("w. europe")];</div><div class='add'>+    char stringpool_str563[sizeof("ydt")];</div><div class='add'>+    char stringpool_str566[sizeof("idle")];</div><div class='add'>+    char stringpool_str567[sizeof("greenwich")];</div><div class='add'>+    char stringpool_str619[sizeof("greenland")];</div><div class='ctx'>   };</div><div class='ctx'> static const struct stringpool_t stringpool_contents =</div><div class='ctx'>   {</div><div class='del'>-    "r",</div><div class='del'>-    "s",</div><div class='del'>-    "d",</div><div class='del'>-    "cst",</div><div class='del'>-    "cdt",</div><div class='del'>-    "sst",</div><div class='del'>-    "cet",</div><div class='del'>-    "msd",</div><div class='del'>-    "cest",</div><div class='del'>-    "cat",</div><div class='del'>-    "mst",</div><div class='del'>-    "mdt",</div><div class='del'>-    "sast",</div><div class='del'>-    "met",</div><div class='del'>-    "mest",</div><div class='del'>-    "wet",</div><div class='del'>-    "dateline",</div><div class='del'>-    "west",</div><div class='del'>-    "wat",</div><div class='del'>-    "wast",</div><div class='del'>-    "wadt",</div><div class='add'>+    "o",</div><div class='add'>+    "x",</div><div class='add'>+    "z",</div><div class='add'>+    "q",</div><div class='add'>+    "omst",</div><div class='add'>+    "omsst",</div><div class='add'>+    "p",</div><div class='add'>+    "a",</div><div class='ctx'>     "e",</div><div class='del'>-    "central europe",</div><div class='del'>-    "central asia",</div><div class='del'>-    "west asia",</div><div class='del'>-    "cen. australia",</div><div class='del'>-    "central america",</div><div class='del'>-    "est",</div><div class='del'>-    "edt",</div><div class='del'>-    "central european",</div><div class='add'>+    "pet",</div><div class='add'>+    "pmst",</div><div class='add'>+    "pett",</div><div class='add'>+    "petst",</div><div class='ctx'>     "eet",</div><div class='del'>-    "se asia",</div><div class='add'>+    "aest",</div><div class='ctx'>     "eest",</div><div class='ctx'>     "eat",</div><div class='del'>-    "z",</div><div class='ctx'>     "east",</div><div class='del'>-    "eadt",</div><div class='del'>-    "sa eastern",</div><div class='del'>-    "w. europe",</div><div class='del'>-    "c",</div><div class='del'>-    "yst",</div><div class='del'>-    "ydt",</div><div class='del'>-    "kst",</div><div class='del'>-    "clt",</div><div class='add'>+    "easst",</div><div class='add'>+    "pst",</div><div class='ctx'>     "eastern",</div><div class='del'>-    "clst",</div><div class='del'>-    "bt",</div><div class='del'>-    "w. australia",</div><div class='del'>-    "bst",</div><div class='del'>-    "cct",</div><div class='del'>-    "brt",</div><div class='del'>-    "brst",</div><div class='del'>-    "a",</div><div class='del'>-    "e. europe",</div><div class='del'>-    "at",</div><div class='del'>-    "central",</div><div class='add'>+    "m",</div><div class='ctx'>     "ast",</div><div class='del'>-    "adt",</div><div class='add'>+    "est",</div><div class='add'>+    "c",</div><div class='add'>+    "mmt",</div><div class='add'>+    "met",</div><div class='add'>+    "mest",</div><div class='add'>+    "cet",</div><div class='add'>+    "d",</div><div class='add'>+    "cest",</div><div class='add'>+    "cat",</div><div class='add'>+    "cast",</div><div class='add'>+    "magt",</div><div class='add'>+    "magst",</div><div class='add'>+    "mst",</div><div class='add'>+    "msk",</div><div class='add'>+    "cot",</div><div class='add'>+    "cst",</div><div class='add'>+    "aqtt",</div><div class='add'>+    "f",</div><div class='ctx'>     "art",</div><div class='del'>-    "e. africa",</div><div class='del'>-    "e. south america",</div><div class='del'>-    "jst",</div><div class='del'>-    "e. australia",</div><div class='del'>-    "t",</div><div class='del'>-    "nt",</div><div class='del'>-    "n",</div><div class='del'>-    "nst",</div><div class='del'>-    "ndt",</div><div class='del'>-    "canada central",</div><div class='del'>-    "central pacific",</div><div class='del'>-    "west pacific",</div><div class='del'>-    "hst",</div><div class='del'>-    "hdt",</div><div class='del'>-    "malay peninsula",</div><div class='add'>+    "fnt",</div><div class='add'>+    "fet",</div><div class='add'>+    "b",</div><div class='add'>+    "anat",</div><div class='add'>+    "anast",</div><div class='add'>+    "bnt",</div><div class='add'>+    "i",</div><div class='add'>+    "pht",</div><div class='add'>+    "at",</div><div class='ctx'>     "zp6",</div><div class='del'>-    "russian",</div><div class='del'>-    "hast",</div><div class='del'>-    "hadt",</div><div class='del'>-    "gst",</div><div class='add'>+    "mewt",</div><div class='add'>+    "fst",</div><div class='add'>+    "ahst",</div><div class='add'>+    "mawt",</div><div class='ctx'>     "zp5",</div><div class='add'>+    "bot",</div><div class='add'>+    "bst",</div><div class='add'>+    "pwt",</div><div class='add'>+    "pont",</div><div class='add'>+    "iot",</div><div class='ctx'>     "ist",</div><div class='del'>-    "swt",</div><div class='del'>-    "w",</div><div class='del'>-    "zp4",</div><div class='add'>+    "awst",</div><div class='add'>+    "mht",</div><div class='ctx'>     "mez",</div><div class='del'>-    "cape verde",</div><div class='add'>+    "orat",</div><div class='ctx'>     "mesz",</div><div class='del'>-    "greenland",</div><div class='del'>-    "x",</div><div class='del'>-    "mewt",</div><div class='del'>-    "w. central africa",</div><div class='add'>+    "chst",</div><div class='add'>+    "pmdt",</div><div class='add'>+    "central",</div><div class='add'>+    "aedt",</div><div class='add'>+    "act",</div><div class='add'>+    "ect",</div><div class='add'>+    "acst",</div><div class='add'>+    "eadt",</div><div class='add'>+    "brt",</div><div class='add'>+    "chut",</div><div class='add'>+    "brst",</div><div class='add'>+    "cen. australia",</div><div class='add'>+    "davt",</div><div class='add'>+    "irst",</div><div class='add'>+    "irkt",</div><div class='add'>+    "irkst",</div><div class='add'>+    "bt",</div><div class='add'>+    "n",</div><div class='add'>+    "btt",</div><div class='add'>+    "mountain",</div><div class='add'>+    "cct",</div><div class='add'>+    "w",</div><div class='add'>+    "l",</div><div class='add'>+    "fwt",</div><div class='add'>+    "msd",</div><div class='add'>+    "wet",</div><div class='add'>+    "west",</div><div class='add'>+    "wat",</div><div class='add'>+    "wast",</div><div class='add'>+    "wakt",</div><div class='add'>+    "nst",</div><div class='add'>+    "acwst",</div><div class='add'>+    "chast",</div><div class='add'>+    "cist",</div><div class='add'>+    "azt",</div><div class='add'>+    "clt",</div><div class='add'>+    "azst",</div><div class='add'>+    "clst",</div><div class='add'>+    "mart",</div><div class='add'>+    "zp4",</div><div class='add'>+    "jst",</div><div class='add'>+    "central asia",</div><div class='add'>+    "aft",</div><div class='add'>+    "e. south america",</div><div class='add'>+    "central america",</div><div class='add'>+    "ict",</div><div class='add'>+    "pgt",</div><div class='add'>+    "nrt",</div><div class='add'>+    "mexico",</div><div class='add'>+    "awdt",</div><div class='add'>+    "egt",</div><div class='add'>+    "cxt",</div><div class='add'>+    "egst",</div><div class='add'>+    "phot",</div><div class='add'>+    "alaskan",</div><div class='add'>+    "nt",</div><div class='add'>+    "wt",</div><div class='add'>+    "west asia",</div><div class='add'>+    "acdt",</div><div class='add'>+    "npt",</div><div class='add'>+    "lhst",</div><div class='add'>+    "afghanistan",</div><div class='ctx'>     "k",</div><div class='del'>-    "b",</div><div class='del'>-    "m",</div><div class='del'>-    "sri lanka",</div><div class='del'>-    "fst",</div><div class='add'>+    "g",</div><div class='add'>+    "irdt",</div><div class='add'>+    "chot",</div><div class='add'>+    "chost",</div><div class='add'>+    "gmt",</div><div class='add'>+    "get",</div><div class='add'>+    "novt",</div><div class='add'>+    "novst",</div><div class='add'>+    "fjt",</div><div class='add'>+    "u",</div><div class='add'>+    "fjst",</div><div class='add'>+    "pyst",</div><div class='add'>+    "nct",</div><div class='add'>+    "kst",</div><div class='add'>+    "kost",</div><div class='add'>+    "gst",</div><div class='ctx'>     "iran",</div><div class='del'>-    "sgt",</div><div class='del'>-    "ut",</div><div class='del'>-    "q",</div><div class='add'>+    "e. africa",</div><div class='add'>+    "wadt",</div><div class='add'>+    "t",</div><div class='add'>+    "e. australia",</div><div class='add'>+    "s",</div><div class='add'>+    "chadt",</div><div class='add'>+    "tmt",</div><div class='add'>+    "cidst",</div><div class='add'>+    "aoe",</div><div class='add'>+    "myt",</div><div class='add'>+    "west pacific",</div><div class='add'>+    "mut",</div><div class='add'>+    "wit",</div><div class='add'>+    "sast",</div><div class='add'>+    "sakt",</div><div class='add'>+    "new zealand",</div><div class='add'>+    "tot",</div><div class='add'>+    "china",</div><div class='add'>+    "tost",</div><div class='add'>+    "sst",</div><div class='add'>+    "india",</div><div class='add'>+    "warst",</div><div class='add'>+    "sbt",</div><div class='add'>+    "azot",</div><div class='add'>+    "azost",</div><div class='add'>+    "taht",</div><div class='ctx'>     "nzt",</div><div class='add'>+    "dateline",</div><div class='ctx'>     "nzst",</div><div class='del'>-    "nzdt",</div><div class='del'>-    "myanmar",</div><div class='del'>-    "alaskan",</div><div class='del'>-    "pst",</div><div class='add'>+    "tokyo",</div><div class='add'>+    "central pacific",</div><div class='add'>+    "qyzt",</div><div class='add'>+    "atlantic",</div><div class='add'>+    "nft",</div><div class='add'>+    "ut",</div><div class='add'>+    "trt",</div><div class='add'>+    "wft",</div><div class='add'>+    "srt",</div><div class='ctx'>     "pdt",</div><div class='del'>-    "sa western",</div><div class='del'>-    "korea",</div><div class='del'>-    "y",</div><div class='del'>-    "f",</div><div class='add'>+    "lhdt",</div><div class='add'>+    "adt",</div><div class='add'>+    "edt",</div><div class='add'>+    "pkt",</div><div class='add'>+    "almt",</div><div class='add'>+    "wita",</div><div class='add'>+    "wgt",</div><div class='ctx'>     "akst",</div><div class='del'>-    "akdt",</div><div class='del'>-    "caucasus",</div><div class='del'>-    "msk",</div><div class='del'>-    "idle",</div><div class='del'>-    "arabian",</div><div class='del'>-    "o",</div><div class='del'>-    "l",</div><div class='add'>+    "wgst",</div><div class='add'>+    "krat",</div><div class='add'>+    "krast",</div><div class='ctx'>     "mid-atlantic",</div><div class='del'>-    "us eastern",</div><div class='del'>-    "ahst",</div><div class='add'>+    "mdt",</div><div class='add'>+    "lint",</div><div class='add'>+    "malay peninsula",</div><div class='add'>+    "cdt",</div><div class='add'>+    "swt",</div><div class='add'>+    "se asia",</div><div class='add'>+    "v",</div><div class='add'>+    "tonga",</div><div class='add'>+    "ckt",</div><div class='add'>+    "vet",</div><div class='add'>+    "caucasus",</div><div class='add'>+    "central europe",</div><div class='ctx'>     "h",</div><div class='del'>-    "fle",</div><div class='del'>-    "i",</div><div class='add'>+    "central european",</div><div class='add'>+    "newfoundland",</div><div class='add'>+    "arab",</div><div class='add'>+    "sct",</div><div class='add'>+    "arabic",</div><div class='add'>+    "arabian",</div><div class='add'>+    "ddut",</div><div class='add'>+    "vost",</div><div class='add'>+    "hast",</div><div class='add'>+    "nepal",</div><div class='add'>+    "nut",</div><div class='add'>+    "fkt",</div><div class='add'>+    "fkst",</div><div class='add'>+    "hst",</div><div class='add'>+    "idt",</div><div class='add'>+    "tlt",</div><div class='add'>+    "w. australia",</div><div class='add'>+    "egypt",</div><div class='add'>+    "myanmar",</div><div class='add'>+    "nzdt",</div><div class='add'>+    "gft",</div><div class='add'>+    "uzt",</div><div class='ctx'>     "north asia",</div><div class='del'>-    "n. central asia",</div><div class='add'>+    "mvt",</div><div class='add'>+    "galt",</div><div class='add'>+    "nfdt",</div><div class='add'>+    "cvt",</div><div class='ctx'>     "north asia east",</div><div class='del'>-    "sa pacific",</div><div class='del'>-    "south africa",</div><div class='del'>-    "aus eastern",</div><div class='del'>-    "atlantic",</div><div class='del'>-    "mexico",</div><div class='del'>-    "mountain",</div><div class='del'>-    "china",</div><div class='add'>+    "kgt",</div><div class='add'>+    "aus central",</div><div class='add'>+    "pacific",</div><div class='add'>+    "canada central",</div><div class='add'>+    "pacific sa",</div><div class='ctx'>     "azores",</div><div class='del'>-    "india",</div><div class='del'>-    "u",</div><div class='del'>-    "arabic",</div><div class='del'>-    "greenwich",</div><div class='del'>-    "new zealand",</div><div class='del'>-    "hawaiian",</div><div class='del'>-    "g",</div><div class='del'>-    "romance",</div><div class='del'>-    "arab",</div><div class='del'>-    "samoa",</div><div class='del'>-    "v",</div><div class='del'>-    "p",</div><div class='del'>-    "gmt",</div><div class='add'>+    "gamt",</div><div class='add'>+    "tft",</div><div class='add'>+    "r",</div><div class='add'>+    "fle",</div><div class='add'>+    "akdt",</div><div class='add'>+    "ulat",</div><div class='add'>+    "ulast",</div><div class='add'>+    "ret",</div><div class='add'>+    "tjt",</div><div class='add'>+    "south africa",</div><div class='add'>+    "sgt",</div><div class='add'>+    "ndt",</div><div class='add'>+    "rott",</div><div class='add'>+    "samt",</div><div class='ctx'>     "tasmania",</div><div class='del'>-    "fwt",</div><div class='del'>-    "newfoundland",</div><div class='del'>-    "nepal",</div><div class='del'>-    "aus central",</div><div class='del'>-    "gtb",</div><div class='del'>-    "vladivostok",</div><div class='del'>-    "utc",</div><div class='del'>-    "ekaterinburg",</div><div class='del'>-    "us mountain",</div><div class='add'>+    "hovt",</div><div class='add'>+    "hovst",</div><div class='add'>+    "gyt",</div><div class='add'>+    "y",</div><div class='add'>+    "hadt",</div><div class='add'>+    "sa western",</div><div class='add'>+    "hawaiian",</div><div class='add'>+    "uyt",</div><div class='add'>+    "uyst",</div><div class='add'>+    "yekt",</div><div class='add'>+    "yekst",</div><div class='add'>+    "kuyt",</div><div class='add'>+    "yakt",</div><div class='add'>+    "yakst",</div><div class='add'>+    "yst",</div><div class='ctx'>     "jerusalem",</div><div class='add'>+    "sri lanka",</div><div class='ctx'>     "yakutsk",</div><div class='del'>-    "pacific sa",</div><div class='del'>-    "tonga",</div><div class='del'>-    "afghanistan",</div><div class='del'>-    "idlw",</div><div class='del'>-    "pacific",</div><div class='add'>+    "wib",</div><div class='add'>+    "aus eastern",</div><div class='add'>+    "gilt",</div><div class='add'>+    "us mountain",</div><div class='add'>+    "vlat",</div><div class='add'>+    "vlast",</div><div class='add'>+    "gtb",</div><div class='ctx'>     "taipei",</div><div class='del'>-    "egypt",</div><div class='del'>-    "tokyo",</div><div class='del'>-    "fiji"</div><div class='add'>+    "sret",</div><div class='add'>+    "cape verde",</div><div class='add'>+    "tkt",</div><div class='add'>+    "samoa",</div><div class='add'>+    "sa pacific",</div><div class='add'>+    "vut",</div><div class='add'>+    "idlw",</div><div class='add'>+    "fiji",</div><div class='add'>+    "utc",</div><div class='add'>+    "korea",</div><div class='add'>+    "e. europe",</div><div class='add'>+    "syot",</div><div class='add'>+    "n. central asia",</div><div class='add'>+    "tvt",</div><div class='add'>+    "w. central africa",</div><div class='add'>+    "ekaterinburg",</div><div class='add'>+    "vladivostok",</div><div class='add'>+    "yapt",</div><div class='add'>+    "us eastern",</div><div class='add'>+    "sa eastern",</div><div class='add'>+    "hdt",</div><div class='add'>+    "russian",</div><div class='add'>+    "hkt",</div><div class='add'>+    "romance",</div><div class='add'>+    "w. europe",</div><div class='add'>+    "ydt",</div><div class='add'>+    "idle",</div><div class='add'>+    "greenwich",</div><div class='add'>+    "greenland"</div><div class='ctx'>   };</div><div class='ctx'> #define stringpool ((const char *) &amp;stringpool_contents)</div><div class='ctx'> const struct zone *</div><div class='ctx'> zonetab (register const char *str, register size_t len)</div><div class='ctx'> {</div><div class='del'>-  enum</div><div class='del'>-    {</div><div class='del'>-      TOTAL_KEYWORDS = 170,</div><div class='del'>-      MIN_WORD_LENGTH = 1,</div><div class='del'>-      MAX_WORD_LENGTH = 17,</div><div class='del'>-      MIN_HASH_VALUE = 5,</div><div class='del'>-      MAX_HASH_VALUE = 438</div><div class='del'>-    };</div><div class='del'>-</div><div class='ctx'>   static const struct zone wordlist[] =</div><div class='ctx'>     {</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#line 37 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 5),   -5*3600},</div><div class='del'>-#line 38 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 6),   -6*3600},</div><div class='del'>-#line 24 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 7),    4*3600},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#line 15 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 14), -6*3600},</div><div class='del'>-#line 16 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 15), -5*3600},</div><div class='del'>-#line 85 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 16),  2*3600},</div><div class='del'>-#line 71 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 17),  1*3600},</div><div class='del'>-#line 90 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 18),  4*3600},</div><div class='del'>-#line 79 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 19), 2*3600},</div><div class='del'>-#line 65 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 20),-10*3600},</div><div class='del'>-      {-1},</div><div class='del'>-#line 17 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 22), -7*3600},</div><div class='del'>-#line 18 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 23), -6*3600},</div><div class='del'>-#line 84 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 24), 2*3600},</div><div class='del'>-#line 73 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 25),  1*3600},</div><div class='del'>-      {-1},</div><div class='del'>-#line 82 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 27), 2*3600},</div><div class='ctx'>       {-1}, {-1},</div><div class='del'>-#line 47 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 30),  0*3600},</div><div class='del'>-#line 128 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 31),               -43200},</div><div class='del'>-#line 78 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 32), 1*3600},</div><div class='del'>-#line 77 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 33),  1*3600},</div><div class='del'>-      {-1},</div><div class='del'>-#line 95 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 35), 7*3600},</div><div class='del'>-#line 98 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 36), 8*3600},</div><div class='add'>+#line 34 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 2),   -2*3600},</div><div class='add'>+#line 43 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 3),  -11*3600},</div><div class='add'>+#line 45 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 4),    0*3600},</div><div class='add'>+#line 36 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 5),   -4*3600},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 269 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 8),21600},</div><div class='add'>+#line 268 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 9),25200},</div><div class='add'>+#line 35 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 10),   -3*3600},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 21 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 13),    1*3600},</div><div class='ctx'> #line 25 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 37),    5*3600},</div><div class='del'>-#line 123 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 38),           3600},</div><div class='del'>-#line 122 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 39),            21600},</div><div class='del'>-#line 178 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 40),               18000},</div><div class='del'>-#line 120 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 41),          34200},</div><div class='del'>-#line 121 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 42),        -21600},</div><div class='del'>-      {-1},</div><div class='del'>-#line 13 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 44), -5*3600},</div><div class='del'>-#line 14 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 45), -4*3600},</div><div class='del'>-#line 124 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 46),         3600},</div><div class='add'>+      {gperf_offsetof(stringpool, 14),    5*3600},</div><div class='add'>+#line 271 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 15),-18000},</div><div class='add'>+#line 279 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 16),-10800},</div><div class='add'>+#line 273 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 17),43200},</div><div class='add'>+#line 272 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 18),43200},</div><div class='ctx'> #line 80 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 47),  2*3600},</div><div class='del'>-#line 164 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 48),                 25200},</div><div class='add'>+      {gperf_offsetof(stringpool, 19),  2*3600},</div><div class='add'>+#line 186 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 20),36000},</div><div class='ctx'> #line 88 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 49), 3*3600},</div><div class='add'>+      {gperf_offsetof(stringpool, 21), 3*3600},</div><div class='ctx'> #line 87 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 50),  3*3600},</div><div class='del'>-#line 45 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 51),    0*3600},</div><div class='add'>+      {gperf_offsetof(stringpool, 22),  3*3600},</div><div class='add'>+      {-1},</div><div class='ctx'> #line 101 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 52),10*3600},</div><div class='del'>-#line 103 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 53),11*3600},</div><div class='del'>-#line 160 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 54),             -10800},</div><div class='del'>-#line 177 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 55),                3600},</div><div class='del'>-#line 23 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 56),    3*3600},</div><div class='del'>-#line 63 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 57), -9*3600},</div><div class='del'>-#line 59 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 58), -8*3600},</div><div class='del'>-#line 100 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 59),  9*3600},</div><div class='del'>-#line 57 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 60), -4*3600},</div><div class='add'>+      {gperf_offsetof(stringpool, 24),-6*3600},</div><div class='add'>+#line 217 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 25),-18000},</div><div class='add'>+#line 19 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 26), -8*3600},</div><div class='ctx'> #line 133 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 61),                -18000},</div><div class='del'>-#line 54 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 62),-3*3600},</div><div class='del'>-#line 86 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 63),   3*3600},</div><div class='del'>-#line 175 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 64),            28800},</div><div class='del'>-#line 70 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 65),  1*3600},</div><div class='del'>-#line 96 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 66),  8*3600},</div><div class='del'>-#line 53 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 67), -3*3600},</div><div class='add'>+      {gperf_offsetof(stringpool, 27),                -18000},</div><div class='add'>+#line 32 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 28),   12*3600},</div><div class='add'>+#line 56 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 29), -4*3600},</div><div class='add'>+#line 13 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 30), -5*3600},</div><div class='add'>+#line 23 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 31),    3*3600},</div><div class='add'>+#line 256 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 32),23400},</div><div class='add'>+#line 73 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 33),  1*3600},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 49 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 69),-2*3600},</div><div class='add'>+#line 82 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 35), 2*3600},</div><div class='add'>+#line 71 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 36),  1*3600},</div><div class='add'>+#line 24 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 37),    4*3600},</div><div class='add'>+#line 79 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 38), 2*3600},</div><div class='add'>+#line 65 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 39),2*3600},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 21 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 71),    1*3600},</div><div class='del'>-#line 131 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 72),                7200},</div><div class='del'>-#line 48 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 73),  -2*3600},</div><div class='del'>-#line 126 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 74),                -21600},</div><div class='del'>-#line 56 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 75), -4*3600},</div><div class='del'>-#line 52 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 76), -3*3600},</div><div class='add'>+#line 202 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 41),28800},</div><div class='add'>+#line 252 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 42),39600},</div><div class='add'>+#line 251 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 43),43200},</div><div class='add'>+#line 17 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 44), -7*3600},</div><div class='add'>+#line 89 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 45),  3*3600},</div><div class='add'>+#line 212 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 46),-18000},</div><div class='add'>+#line 15 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 47), -6*3600},</div><div class='add'>+#line 192 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 48),18000},</div><div class='add'>+#line 26 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 49),    6*3600},</div><div class='add'>+      {-1}, {-1},</div><div class='ctx'> #line 51 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 77), -3*3600},</div><div class='del'>-#line 129 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 78),               10800},</div><div class='del'>-#line 132 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 79),       -10800},</div><div class='del'>-#line 99 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 80),  9*3600},</div><div class='del'>-#line 130 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 81),            36000},</div><div class='del'>-#line 39 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 82),   -7*3600},</div><div class='del'>-#line 68 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 83),  -11*3600},</div><div class='del'>-#line 33 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 84),   -1*3600},</div><div class='del'>-#line 55 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 85), -(3*3600+1800)},</div><div class='del'>-#line 50 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 86), -(2*3600+1800)},</div><div class='del'>-#line 117 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 87),         -21600},</div><div class='del'>-#line 125 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 88),         39600},</div><div class='del'>-#line 179 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 89),            36000},</div><div class='del'>-#line 67 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 90),-10*3600},</div><div class='del'>-#line 62 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 91), -9*3600},</div><div class='del'>-      {-1},</div><div class='del'>-#line 165 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 93),         28800},</div><div class='add'>+      {gperf_offsetof(stringpool, 52), -3*3600},</div><div class='add'>+#line 226 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 53),-7200},</div><div class='add'>+#line 221 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 54),10800},</div><div class='add'>+#line 22 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 55),    2*3600},</div><div class='ctx'>       {-1},</div><div class='add'>+#line 190 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 57),43200},</div><div class='add'>+#line 189 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 58),43200},</div><div class='add'>+#line 199 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 59),28800},</div><div class='add'>+#line 29 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 60),    9*3600},</div><div class='add'>+#line 276 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 61),28800},</div><div class='add'>+#line 48 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 62),  -2*3600},</div><div class='ctx'> #line 94 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 95),  6*3600},</div><div class='del'>-      {-1},</div><div class='del'>-#line 159 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 97),                 10800},</div><div class='del'>-#line 66 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 98),-10*3600},</div><div class='del'>-#line 61 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 99),-9*3600},</div><div class='del'>-#line 102 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 100), 10*3600},</div><div class='add'>+      {gperf_offsetof(stringpool, 63),  6*3600},</div><div class='add'>+#line 74 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 64), 1*3600},</div><div class='add'>+#line 81 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 65),  2*3600},</div><div class='add'>+#line 64 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 66),-10*3600},</div><div class='add'>+#line 254 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 67),18000},</div><div class='ctx'> #line 92 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 101),  5*3600},</div><div class='add'>+      {gperf_offsetof(stringpool, 68),  5*3600},</div><div class='add'>+      {-1},</div><div class='add'>+#line 200 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 70),-14400},</div><div class='add'>+#line 70 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 71),  1*3600},</div><div class='add'>+#line 281 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 72),32400},</div><div class='add'>+      {-1},</div><div class='add'>+#line 280 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 74),39600},</div><div class='add'>+#line 238 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 75),21600},</div><div class='ctx'> #line 93 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 102),  (5*3600+1800)},</div><div class='del'>-#line 76 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 103),  1*3600},</div><div class='del'>-#line 42 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 104),  -10*3600},</div><div class='del'>-#line 91 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 105),  4*3600},</div><div class='add'>+      {gperf_offsetof(stringpool, 76),  (5*3600+1800)},</div><div class='add'>+#line 194 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 77),28800},</div><div class='ctx'>       {-1},</div><div class='add'>+#line 255 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 79),43200},</div><div class='ctx'> #line 75 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 107),  1*3600},</div><div class='del'>-#line 118 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 108),              -3600},</div><div class='add'>+      {gperf_offsetof(stringpool, 80),  1*3600},</div><div class='add'>+#line 270 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 81),18000},</div><div class='ctx'> #line 83 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 109), 2*3600},</div><div class='del'>-#line 138 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 110),              -10800},</div><div class='add'>+      {gperf_offsetof(stringpool, 82), 2*3600},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 43 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 112),  -11*3600},</div><div class='add'>+#line 207 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 84),36000},</div><div class='add'>+#line 278 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 85),-7200},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 126 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 88),                -21600},</div><div class='add'>+#line 185 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 89),39600},</div><div class='add'>+#line 183 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 90),-18000},</div><div class='add'>+#line 218 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 91),-18000},</div><div class='add'>+#line 182 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 92),34200},</div><div class='add'>+#line 103 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 93),11*3600},</div><div class='add'>+#line 53 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 94), -3*3600},</div><div class='add'>+#line 208 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 95),36000},</div><div class='add'>+#line 49 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 96),-2*3600},</div><div class='add'>+#line 120 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 97),          34200},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 215 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 100),25200},</div><div class='add'>+#line 242 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 101),12600},</div><div class='add'>+#line 241 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 102),28800},</div><div class='add'>+#line 240 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 103),32400},</div><div class='add'>+#line 86 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 104),   3*3600},</div><div class='add'>+#line 33 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 105),   -1*3600},</div><div class='add'>+#line 201 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 106),21600},</div><div class='add'>+#line 148 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 107),               -25200},</div><div class='add'>+#line 96 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 108),  (6*3600+1800)},</div><div class='add'>+#line 42 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 109),  -10*3600},</div><div class='add'>+#line 31 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 110),   11*3600},</div><div class='add'>+#line 72 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 111),  1*3600},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 74 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 114), 1*3600},</div><div class='del'>-#line 176 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 115),        3600},</div><div class='del'>-#line 30 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 116),   10*3600},</div><div class='del'>-#line 22 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 117),    2*3600},</div><div class='add'>+#line 90 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 113),  4*3600},</div><div class='add'>+#line 47 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 114),  0*3600},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 32 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 119),   12*3600},</div><div class='del'>-#line 167 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 120),               21600},</div><div class='add'>+#line 78 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 116), 1*3600},</div><div class='add'>+#line 77 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 117),  1*3600},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 81 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 122),  2*3600},</div><div class='add'>+#line 95 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 119), 2*3600},</div><div class='add'>+#line 313 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 120),43200},</div><div class='add'>+#line 55 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 121), -(2*3600+1800)},</div><div class='add'>+#line 184 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 122),31500},</div><div class='add'>+#line 204 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 123),45900},</div><div class='add'>+#line 210 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 124),-18000},</div><div class='add'>+#line 198 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 125),14400},</div><div class='add'>+#line 57 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 126), -4*3600},</div><div class='add'>+#line 197 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 127),18000},</div><div class='add'>+#line 54 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 128),-3*3600},</div><div class='add'>+#line 253 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 129),-30600},</div><div class='add'>+#line 91 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 130),  4*3600},</div><div class='add'>+#line 99 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 131),  9*3600},</div><div class='add'>+#line 122 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 132),            21600},</div><div class='add'>+#line 187 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 133),16200},</div><div class='add'>+#line 132 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 134),       -10800},</div><div class='add'>+#line 121 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 135),        -21600},</div><div class='add'>+      {-1},</div><div class='add'>+#line 236 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 137),25200},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 274 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 143),36000},</div><div class='add'>+#line 266 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 144),43200},</div><div class='add'>+#line 146 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 145),                 -21600},</div><div class='add'>+#line 193 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 146),32400},</div><div class='add'>+#line 220 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 147),-3600},</div><div class='add'>+#line 214 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 148),25200},</div><div class='add'>+#line 219 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 149),0},</div><div class='add'>+#line 275 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 150),46800},</div><div class='add'>+#line 109 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 151),                -32400},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 68 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 154),  -11*3600},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+#line 321 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 158),0},</div><div class='ctx'>       {-1},</div><div class='add'>+#line 178 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 160),               18000},</div><div class='add'>+#line 181 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 161),37800},</div><div class='add'>+#line 265 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 162),20700},</div><div class='add'>+#line 249 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 163),37800},</div><div class='add'>+#line 108 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 164),             16200},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 30 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 167),   10*3600},</div><div class='add'>+      {-1},</div><div class='add'>+#line 27 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 169),    7*3600},</div><div class='add'>+#line 239 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 170),16200},</div><div class='add'>+#line 206 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 171),28800},</div><div class='add'>+#line 205 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 172),32400},</div><div class='add'>+#line 12 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 173),  0*3600},</div><div class='add'>+#line 229 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 174),14400},</div><div class='add'>+#line 264 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 175),25200},</div><div class='add'>+#line 263 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 176),25200},</div><div class='add'>+#line 223 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 177),43200},</div><div class='add'>+#line 40 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 178),   -8*3600},</div><div class='add'>+#line 222 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 179),46800},</div><div class='add'>+      {-1},</div><div class='add'>+#line 282 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 181),-10800},</div><div class='add'>+#line 260 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 182),39600},</div><div class='add'>+#line 100 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 183),  9*3600},</div><div class='add'>+#line 244 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 184),39600},</div><div class='add'>+#line 102 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 185), 10*3600},</div><div class='ctx'> #line 143 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 124),                    12600},</div><div class='del'>-#line 97 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 125),  8*3600},</div><div class='del'>-#line 11 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 126),   0*3600},</div><div class='add'>+      {gperf_offsetof(stringpool, 186),                    12600},</div><div class='add'>+#line 129 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 187),               10800},</div><div class='add'>+#line 98 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 188), 8*3600},</div><div class='add'>+#line 39 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 189),   -7*3600},</div><div class='add'>+#line 130 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 190),            36000},</div><div class='add'>+#line 38 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 191),   -6*3600},</div><div class='add'>+#line 203 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 192),49500},</div><div class='add'>+#line 298 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 193),18000},</div><div class='add'>+#line 209 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 194),-14400},</div><div class='add'>+#line 191 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 195),-43200},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 36 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 128),   -4*3600},</div><div class='del'>-#line 106 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 129), 12*3600},</div><div class='add'>+#line 259 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 197),28800},</div><div class='add'>+#line 179 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 198),            36000},</div><div class='add'>+#line 257 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 199),14400},</div><div class='add'>+#line 319 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 200),32400},</div><div class='add'>+#line 84 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 201), 2*3600},</div><div class='add'>+#line 286 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 202),39600},</div><div class='add'>+#line 152 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 203),             43200},</div><div class='add'>+#line 300 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 204),46800},</div><div class='add'>+#line 127 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 205),                   28800},</div><div class='add'>+#line 299 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 206),50400},</div><div class='add'>+#line 85 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 207),  -11*3600},</div><div class='ctx'>       {-1},</div><div class='add'>+#line 142 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 209),                   19800},</div><div class='add'>+      {-1},</div><div class='add'>+#line 314 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 211),-10800},</div><div class='add'>+#line 288 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 212),39600},</div><div class='add'>+      {-1},</div><div class='add'>+#line 196 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 214),-3600},</div><div class='add'>+#line 195 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 215),0},</div><div class='add'>+#line 293 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 216),-36000},</div><div class='add'>+#line 106 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 217), 12*3600},</div><div class='add'>+#line 128 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 218),               -43200},</div><div class='ctx'> #line 105 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 131),12*3600},</div><div class='del'>-#line 107 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 132),13*3600},</div><div class='del'>-#line 149 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 133),                 23400},</div><div class='add'>+      {gperf_offsetof(stringpool, 219),12*3600},</div><div class='add'>+#line 170 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 220),                   32400},</div><div class='add'>+#line 125 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 221),         39600},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 109 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 135),                -32400},</div><div class='del'>-#line 19 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 136), -8*3600},</div><div class='add'>+#line 283 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 223),21600},</div><div class='add'>+#line 113 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 224),               -14400},</div><div class='add'>+#line 262 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 225),39600},</div><div class='add'>+      {-1},</div><div class='add'>+#line 11 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 227),   0*3600},</div><div class='add'>+#line 301 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 228),10800},</div><div class='add'>+#line 315 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 229),43200},</div><div class='add'>+#line 291 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 230),-10800},</div><div class='ctx'> #line 20 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 137), -7*3600},</div><div class='del'>-#line 162 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 138),             -14400},</div><div class='del'>-#line 145 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 139),                   32400},</div><div class='add'>+      {gperf_offsetof(stringpool, 231), -7*3600},</div><div class='add'>+#line 248 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 232),39600},</div><div class='add'>+      {-1},</div><div class='add'>+#line 52 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 234), -3*3600},</div><div class='add'>+#line 14 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 235), -4*3600},</div><div class='ctx'>       {-1}, {-1},</div><div class='del'>-#line 44 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 142),  -12*3600},</div><div class='del'>-#line 26 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 143),    6*3600},</div><div class='add'>+#line 277 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 238),18000},</div><div class='add'>+#line 188 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 239),21600},</div><div class='add'>+#line 320 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 240),28800},</div><div class='add'>+      {-1},</div><div class='add'>+#line 317 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 242),-10800},</div><div class='ctx'> #line 60 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 144),-9*3600},</div><div class='del'>-#line 58 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 145),-8*3600},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-#line 119 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 148),                14400},</div><div class='add'>+      {gperf_offsetof(stringpool, 243),-9*3600},</div><div class='add'>+#line 316 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 244),-7200},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 89 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 150),  3*3600},</div><div class='del'>-#line 104 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 151),12*3600},</div><div class='add'>+#line 246 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 246),25200},</div><div class='add'>+#line 245 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 247),28800},</div><div class='add'>+#line 147 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 248),            -7200},</div><div class='add'>+#line 18 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 249), -6*3600},</div><div class='add'>+#line 250 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 250),50400},</div><div class='add'>+#line 165 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 251),         28800},</div><div class='add'>+#line 16 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 252), -5*3600},</div><div class='add'>+#line 76 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 253),  1*3600},</div><div class='add'>+      {-1},</div><div class='add'>+#line 164 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 255),                 25200},</div><div class='add'>+#line 41 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 256),   -9*3600},</div><div class='add'>+      {-1},</div><div class='add'>+#line 171 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 258),                   46800},</div><div class='add'>+#line 211 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 259),-36000},</div><div class='ctx'>       {-1},</div><div class='add'>+#line 308 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 261),-14400},</div><div class='add'>+#line 119 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 262),                14400},</div><div class='add'>+#line 123 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 263),           3600},</div><div class='add'>+#line 28 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 264),    8*3600},</div><div class='add'>+#line 124 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 265),         3600},</div><div class='add'>+#line 153 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 266),           -12600},</div><div class='add'>+#line 110 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 267),                    10800},</div><div class='add'>+#line 289 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 268),14400},</div><div class='add'>+#line 112 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 269),                  10800},</div><div class='ctx'> #line 111 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 153),                 14400},</div><div class='add'>+      {gperf_offsetof(stringpool, 270),                 14400},</div><div class='add'>+#line 216 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 271),36000},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 34 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 155),   -2*3600},</div><div class='del'>-#line 31 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 156),   11*3600},</div><div class='del'>-#line 147 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 157),            -7200},</div><div class='add'>+#line 311 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 273),21600},</div><div class='add'>+#line 66 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 274),-10*3600},</div><div class='add'>+#line 151 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 275),                   20700},</div><div class='add'>+#line 267 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 276),-39600},</div><div class='add'>+#line 225 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 277),-14400},</div><div class='add'>+      {-1},</div><div class='add'>+#line 224 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 279),-10800},</div><div class='add'>+#line 67 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 280),-10*3600},</div><div class='add'>+#line 237 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 281),10800},</div><div class='ctx'>       {-1}, {-1},</div><div class='del'>-#line 172 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 160),             -18000},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-#line 64 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 164),-10*3600},</div><div class='add'>+#line 297 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 284),32400},</div><div class='add'>+#line 175 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 285),            28800},</div><div class='add'>+#line 134 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 286),                    7200},</div><div class='add'>+#line 149 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 287),                 23400},</div><div class='add'>+#line 107 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 288),13*3600},</div><div class='add'>+#line 230 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 289),-10800},</div><div class='add'>+#line 307 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 290),18000},</div><div class='ctx'>       {-1}, {-1},</div><div class='del'>-#line 28 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 167),    8*3600},</div><div class='del'>-#line 137 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 168),                      7200},</div><div class='del'>-#line 29 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 169),    9*3600},</div><div class='ctx'> #line 155 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 170),              25200},</div><div class='del'>-#line 150 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 171),         21600},</div><div class='add'>+      {gperf_offsetof(stringpool, 293),              25200},</div><div class='add'>+#line 258 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 294),18000},</div><div class='add'>+#line 227 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 295),-21600},</div><div class='add'>+#line 261 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 296),43200},</div><div class='add'>+#line 213 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 297),-3600},</div><div class='ctx'> #line 154 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 172),         28800},</div><div class='add'>+      {gperf_offsetof(stringpool, 298),         28800},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 161 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 174),             -18000},</div><div class='del'>-      {-1}, {-1},</div><div class='del'>-#line 166 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 177),             7200},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-#line 115 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 181),             36000},</div><div class='del'>-#line 113 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 182),               -14400},</div><div class='del'>-      {-1}, {-1}, {-1},</div><div class='del'>-#line 146 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 186),                 -21600},</div><div class='add'>+#line 243 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 300),21600},</div><div class='add'>+#line 114 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 301),             34200},</div><div class='add'>+#line 157 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 302),                -28800},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 148 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 188),               -25200},</div><div class='add'>+#line 117 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 304),         -21600},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 127 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 190),                   28800},</div><div class='add'>+#line 156 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 306),             -14400},</div><div class='ctx'> #line 116 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 191),                  -3600},</div><div class='del'>-#line 142 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 192),                   19800},</div><div class='add'>+      {gperf_offsetof(stringpool, 307),                  -3600},</div><div class='add'>+#line 228 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 308),-32400},</div><div class='add'>+#line 294 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 309),18000},</div><div class='add'>+#line 37 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 310),   -5*3600},</div><div class='add'>+#line 137 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 311),                      7200},</div><div class='add'>+#line 58 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 312),-8*3600},</div><div class='add'>+#line 304 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 313),28800},</div><div class='add'>+#line 303 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 314),32400},</div><div class='add'>+#line 284 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 315),14400},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 40 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 194),   -8*3600},</div><div class='del'>-#line 112 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 195),                  10800},</div><div class='del'>-#line 139 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 196),                   0},</div><div class='del'>-#line 152 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 197),             43200},</div><div class='del'>-#line 141 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 198),               -36000},</div><div class='del'>-#line 27 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 199),    7*3600},</div><div class='del'>-#line 158 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 200),                  3600},</div><div class='add'>+#line 295 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 317),18000},</div><div class='add'>+      {-1},</div><div class='add'>+#line 166 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 319),             7200},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 97 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 324),  8*3600},</div><div class='add'>+      {-1},</div><div class='add'>+#line 50 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 326), -(1*3600+1800)},</div><div class='add'>+#line 285 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 327),-10800},</div><div class='ctx'>       {-1}, {-1},</div><div class='del'>-#line 110 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 203),                    10800},</div><div class='del'>-#line 163 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 204),                  -39600},</div><div class='del'>-#line 41 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 205),   -9*3600},</div><div class='del'>-#line 35 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 206),   -3*3600},</div><div class='del'>-#line 12 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 207),  0*3600},</div><div class='add'>+#line 287 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 330),14400},</div><div class='add'>+      {-1},</div><div class='ctx'> #line 169 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 208),                36000},</div><div class='del'>-#line 72 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 209),  1*3600},</div><div class='add'>+      {gperf_offsetof(stringpool, 332),                36000},</div><div class='ctx'>       {-1},</div><div class='del'>-#line 153 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 211),           -12600},</div><div class='add'>+#line 235 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 334),25200},</div><div class='add'>+#line 234 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 335),28800},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 232 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 338),-14400},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+#line 44 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 342),  -12*3600},</div><div class='add'>+#line 61 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 343),-9*3600},</div><div class='add'>+#line 162 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 344),             -14400},</div><div class='add'>+#line 141 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 345),               -36000},</div><div class='add'>+      {-1},</div><div class='add'>+#line 306 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 347),-10800},</div><div class='add'>+      {-1},</div><div class='add'>+#line 305 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 349),-7200},</div><div class='add'>+#line 326 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 350),18000},</div><div class='add'>+#line 325 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 351),21600},</div><div class='add'>+#line 247 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 352),14400},</div><div class='add'>+#line 323 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 353),32400},</div><div class='add'>+#line 322 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 354),36000},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+#line 63 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 358), -9*3600},</div><div class='add'>+#line 144 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 359),                7200},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#line 151 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 217),                   20700},</div><div class='del'>-#line 114 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 218),             34200},</div><div class='add'>+#line 167 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 365),               21600},</div><div class='add'>+      {-1},</div><div class='add'>+#line 180 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 367),                 32400},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 318 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 375),25200},</div><div class='add'>+      {-1},</div><div class='add'>+#line 115 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 377),             36000},</div><div class='add'>+#line 231 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 378),43200},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 173 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 387),            -25200},</div><div class='add'>+      {-1}, {-1}, {-1},</div><div class='add'>+#line 310 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 391),36000},</div><div class='add'>+#line 309 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 392),39600},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 140 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 221),                      7200},</div><div class='del'>-      {-1},</div><div class='del'>-#line 174 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 223),             36000},</div><div class='add'>+      {gperf_offsetof(stringpool, 395),                      7200},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 168 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 398),                  28800},</div><div class='add'>+#line 290 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 399),39600},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 118 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 408),              -3600},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 296 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 417),46800},</div><div class='add'>+#line 163 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 418),                  -39600},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 161 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 421),             -18000},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#line 46 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 229),  0*3600},</div><div class='add'>+#line 312 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 427),39600},</div><div class='add'>+#line 69 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 428),-12*3600},</div><div class='ctx'>       {-1}, {-1}, {-1},</div><div class='del'>-#line 135 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 233),            18000},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#line 173 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 265),            -25200},</div><div class='add'>+#line 136 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 432),                    43200},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 46 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 435),  0*3600},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 145 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 443),                   32400},</div><div class='add'>+      {-1},</div><div class='add'>+#line 131 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 445),                7200},</div><div class='ctx'>       {-1}, {-1}, {-1},</div><div class='del'>-#line 144 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 269),                7200},</div><div class='add'>+#line 292 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 449),10800},</div><div class='ctx'>       {-1}, {-1},</div><div class='del'>-#line 180 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 272),                 32400},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#line 156 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 279),             -14400},</div><div class='add'>+#line 150 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 452),         21600},</div><div class='ctx'>       {-1}, {-1},</div><div class='del'>-#line 171 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 282),                   46800},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#line 108 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 314),             16200},</div><div class='add'>+#line 302 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 455),43200},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 176 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 458),        3600},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 135 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 466),            18000},</div><div class='add'>+      {-1},</div><div class='add'>+#line 174 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 468),             36000},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 324 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 476),36000},</div><div class='add'>+#line 172 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 477),             -18000},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#line 69 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 319),-12*3600},</div><div class='add'>+#line 160 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 482),             -10800},</div><div class='ctx'>       {-1}, {-1},</div><div class='del'>-#line 157 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 322),                -28800},</div><div class='add'>+#line 62 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 485), -9*3600},</div><div class='add'>+#line 159 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 486),                 10800},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 233 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 492),28800},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#line 168 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 327),                  28800},</div><div class='del'>-#line 134 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 328),                    7200},</div><div class='del'>-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 158 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 497),                  3600},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 177 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 540),                3600},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#line 170 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 392),                   32400},</div><div class='add'>+      {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 59 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 563), -8*3600},</div><div class='add'>+      {-1}, {-1},</div><div class='add'>+#line 104 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 566),12*3600},</div><div class='add'>+#line 139 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 567),                   0},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='del'>-#line 136 "zonetab.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 438),                    43200}</div><div class='add'>+      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='add'>+#line 138 "zonetab.list"</div><div class='add'>+      {gperf_offsetof(stringpool, 619),              -10800}</div><div class='ctx'>     };</div><div class='ctx'> </div><div class='ctx'>   if (len &lt;= MAX_WORD_LENGTH &amp;&amp; len &gt;= MIN_WORD_LENGTH)</div><div class='hunk'>@@ -884,12 +1551,12 @@ zonetab (register const char *str, register size_t len)</div><div class='ctx'>             {</div><div class='ctx'>               register const char *s = o + stringpool;</div><div class='ctx'> </div><div class='del'>-              if (*str == *s &amp;&amp; !strncmp (str + 1, s + 1, len - 1) &amp;&amp; s[len] == '\0')</div><div class='add'>+              if ((((unsigned char)*str ^ (unsigned char)*s) &amp; ~32) == 0 &amp;&amp; !gperf_case_strncmp (str, s, len) &amp;&amp; s[len] == '\0')</div><div class='ctx'>                 return &amp;wordlist[key];</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>   return 0;</div><div class='ctx'> }</div><div class='del'>-#line 181 "zonetab.list"</div><div class='add'>+#line 327 "zonetab.list"</div><div class='ctx'> </div><div class='head'>diff --git a/ext/date/zonetab.list b/ext/date/zonetab.list<br/>index 3a4d121d2e..748aec1d8a 100644<br/>--- a/<a href='/ruby.git/tree/ext/date/zonetab.list?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/date/zonetab.list</a><br/>+++ b/<a href='/ruby.git/tree/ext/date/zonetab.list?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/date/zonetab.list</a></div><div class='hunk'>@@ -3,7 +3,7 @@ struct zone {</div><div class='ctx'>     int name;</div><div class='ctx'>     int offset;</div><div class='ctx'> };</div><div class='del'>-static const struct zone *zonetab();</div><div class='add'>+static const struct zone *zonetab(register const char *str, register size_t len);</div><div class='ctx'> %}</div><div class='ctx'> </div><div class='ctx'> struct zone;</div><div class='hunk'>@@ -47,12 +47,12 @@ utc,  0*3600</div><div class='ctx'> wet,  0*3600</div><div class='ctx'> at,  -2*3600</div><div class='ctx'> brst,-2*3600</div><div class='del'>-ndt, -(2*3600+1800)</div><div class='add'>+ndt, -(1*3600+1800)</div><div class='ctx'> art, -3*3600</div><div class='ctx'> adt, -3*3600</div><div class='ctx'> brt, -3*3600</div><div class='ctx'> clst,-3*3600</div><div class='del'>-nst, -(3*3600+1800)</div><div class='add'>+nst, -(2*3600+1800)</div><div class='ctx'> ast, -4*3600</div><div class='ctx'> clt, -4*3600</div><div class='ctx'> akdt,-8*3600</div><div class='hunk'>@@ -62,7 +62,7 @@ hadt,-9*3600</div><div class='ctx'> hdt, -9*3600</div><div class='ctx'> yst, -9*3600</div><div class='ctx'> ahst,-10*3600</div><div class='del'>-cat,-10*3600</div><div class='add'>+cat,2*3600</div><div class='ctx'> hast,-10*3600</div><div class='ctx'> hst,-10*3600</div><div class='ctx'> nt,  -11*3600</div><div class='hunk'>@@ -82,7 +82,7 @@ fst,  2*3600</div><div class='ctx'> mest, 2*3600</div><div class='ctx'> mesz, 2*3600</div><div class='ctx'> sast, 2*3600</div><div class='del'>-sst,  2*3600</div><div class='add'>+sst,  -11*3600</div><div class='ctx'> bt,   3*3600</div><div class='ctx'> eat,  3*3600</div><div class='ctx'> eest, 3*3600</div><div class='hunk'>@@ -92,13 +92,13 @@ zp4,  4*3600</div><div class='ctx'> zp5,  5*3600</div><div class='ctx'> ist,  (5*3600+1800)</div><div class='ctx'> zp6,  6*3600</div><div class='del'>-wast, 7*3600</div><div class='del'>-cct,  8*3600</div><div class='add'>+wast, 2*3600</div><div class='add'>+cct,  (6*3600+1800)</div><div class='ctx'> sgt,  8*3600</div><div class='ctx'> wadt, 8*3600</div><div class='ctx'> jst,  9*3600</div><div class='ctx'> kst,  9*3600</div><div class='del'>-east,10*3600</div><div class='add'>+east,-6*3600</div><div class='ctx'> gst, 10*3600</div><div class='ctx'> eadt,11*3600</div><div class='ctx'> idle,12*3600</div><div class='hunk'>@@ -178,4 +178,150 @@ w. europe,                3600</div><div class='ctx'> west asia,               18000</div><div class='ctx'> west pacific,            36000</div><div class='ctx'> yakutsk,                 32400</div><div class='add'>+acdt,37800</div><div class='add'>+acst,34200</div><div class='add'>+act,-18000</div><div class='add'>+acwst,31500</div><div class='add'>+aedt,39600</div><div class='add'>+aest,36000</div><div class='add'>+aft,16200</div><div class='add'>+almt,21600</div><div class='add'>+anast,43200</div><div class='add'>+anat,43200</div><div class='add'>+aoe,-43200</div><div class='add'>+aqtt,18000</div><div class='add'>+awdt,32400</div><div class='add'>+awst,28800</div><div class='add'>+azost,0</div><div class='add'>+azot,-3600</div><div class='add'>+azst,18000</div><div class='add'>+azt,14400</div><div class='add'>+bnt,28800</div><div class='add'>+bot,-14400</div><div class='add'>+btt,21600</div><div class='add'>+cast,28800</div><div class='add'>+chadt,49500</div><div class='add'>+chast,45900</div><div class='add'>+chost,32400</div><div class='add'>+chot,28800</div><div class='add'>+chst,36000</div><div class='add'>+chut,36000</div><div class='add'>+cidst,-14400</div><div class='add'>+cist,-18000</div><div class='add'>+ckt,-36000</div><div class='add'>+cot,-18000</div><div class='add'>+cvt,-3600</div><div class='add'>+cxt,25200</div><div class='add'>+davt,25200</div><div class='add'>+ddut,36000</div><div class='add'>+easst,-18000</div><div class='add'>+ect,-18000</div><div class='add'>+egst,0</div><div class='add'>+egt,-3600</div><div class='add'>+fet,10800</div><div class='add'>+fjst,46800</div><div class='add'>+fjt,43200</div><div class='add'>+fkst,-10800</div><div class='add'>+fkt,-14400</div><div class='add'>+fnt,-7200</div><div class='add'>+galt,-21600</div><div class='add'>+gamt,-32400</div><div class='add'>+get,14400</div><div class='add'>+gft,-10800</div><div class='add'>+gilt,43200</div><div class='add'>+gyt,-14400</div><div class='add'>+hkt,28800</div><div class='add'>+hovst,28800</div><div class='add'>+hovt,25200</div><div class='add'>+ict,25200</div><div class='add'>+idt,10800</div><div class='add'>+iot,21600</div><div class='add'>+irdt,16200</div><div class='add'>+irkst,32400</div><div class='add'>+irkt,28800</div><div class='add'>+irst,12600</div><div class='add'>+kgt,21600</div><div class='add'>+kost,39600</div><div class='add'>+krast,28800</div><div class='add'>+krat,25200</div><div class='add'>+kuyt,14400</div><div class='add'>+lhdt,39600</div><div class='add'>+lhst,37800</div><div class='add'>+lint,50400</div><div class='add'>+magst,43200</div><div class='add'>+magt,39600</div><div class='add'>+mart,-30600</div><div class='add'>+mawt,18000</div><div class='add'>+mht,43200</div><div class='add'>+mmt,23400</div><div class='add'>+mut,14400</div><div class='add'>+mvt,18000</div><div class='add'>+myt,28800</div><div class='add'>+nct,39600</div><div class='add'>+nfdt,43200</div><div class='add'>+nft,39600</div><div class='add'>+novst,25200</div><div class='add'>+novt,25200</div><div class='add'>+npt,20700</div><div class='add'>+nrt,43200</div><div class='add'>+nut,-39600</div><div class='add'>+omsst,25200</div><div class='add'>+omst,21600</div><div class='add'>+orat,18000</div><div class='add'>+pet,-18000</div><div class='add'>+petst,43200</div><div class='add'>+pett,43200</div><div class='add'>+pgt,36000</div><div class='add'>+phot,46800</div><div class='add'>+pht,28800</div><div class='add'>+pkt,18000</div><div class='add'>+pmdt,-7200</div><div class='add'>+pmst,-10800</div><div class='add'>+pont,39600</div><div class='add'>+pwt,32400</div><div class='add'>+pyst,-10800</div><div class='add'>+qyzt,21600</div><div class='add'>+ret,14400</div><div class='add'>+rott,-10800</div><div class='add'>+sakt,39600</div><div class='add'>+samt,14400</div><div class='add'>+sbt,39600</div><div class='add'>+sct,14400</div><div class='add'>+sret,39600</div><div class='add'>+srt,-10800</div><div class='add'>+syot,10800</div><div class='add'>+taht,-36000</div><div class='add'>+tft,18000</div><div class='add'>+tjt,18000</div><div class='add'>+tkt,46800</div><div class='add'>+tlt,32400</div><div class='add'>+tmt,18000</div><div class='add'>+tost,50400</div><div class='add'>+tot,46800</div><div class='add'>+trt,10800</div><div class='add'>+tvt,43200</div><div class='add'>+ulast,32400</div><div class='add'>+ulat,28800</div><div class='add'>+uyst,-7200</div><div class='add'>+uyt,-10800</div><div class='add'>+uzt,18000</div><div class='add'>+vet,-14400</div><div class='add'>+vlast,39600</div><div class='add'>+vlat,36000</div><div class='add'>+vost,21600</div><div class='add'>+vut,39600</div><div class='add'>+wakt,43200</div><div class='add'>+warst,-10800</div><div class='add'>+wft,43200</div><div class='add'>+wgst,-7200</div><div class='add'>+wgt,-10800</div><div class='add'>+wib,25200</div><div class='add'>+wit,32400</div><div class='add'>+wita,28800</div><div class='add'>+wt,0</div><div class='add'>+yakst,36000</div><div class='add'>+yakt,32400</div><div class='add'>+yapt,36000</div><div class='add'>+yekst,21600</div><div class='add'>+yekt,18000</div><div class='ctx'> %%</div><div class='head'>diff --git a/ext/dbm/dbm.c b/ext/dbm/dbm.c<br/>deleted file mode 100644<br/>index df69b9fb50..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/dbm/dbm.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/dbm/dbm.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1157 +0,0 @@</div><div class='del'>-/************************************************</div><div class='del'>-</div><div class='del'>-  dbm.c -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Mon Jan 24 15:59:52 JST 1994</div><div class='del'>-</div><div class='del'>-  Copyright (C) 1995-2001 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-************************************************/</div><div class='del'>-</div><div class='del'>-#include "ruby.h"</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_CDEFS_H</div><div class='del'>-# include &lt;cdefs.h&gt;</div><div class='del'>-#endif</div><div class='del'>-#ifdef HAVE_SYS_CDEFS_H</div><div class='del'>-# include &lt;sys/cdefs.h&gt;</div><div class='del'>-#endif</div><div class='del'>-#include DBM_HDR</div><div class='del'>-#include &lt;fcntl.h&gt;</div><div class='del'>-#include &lt;errno.h&gt;</div><div class='del'>-</div><div class='del'>-#define DSIZE_TYPE TYPEOF_DATUM_DSIZE</div><div class='del'>-#if SIZEOF_DATUM_DSIZE &gt; SIZEOF_INT</div><div class='del'>-# define RSTRING_DSIZE(s) RSTRING_LEN(s)</div><div class='del'>-# define TOO_LONG(n) ((void)(n),0)</div><div class='del'>-#else</div><div class='del'>-# define RSTRING_DSIZE(s) RSTRING_LENINT(s)</div><div class='del'>-# define TOO_LONG(n) ((long)(+(DSIZE_TYPE)(n)) != (n))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static VALUE rb_cDBM, rb_eDBMError;</div><div class='del'>-</div><div class='del'>-#define RUBY_DBM_RW_BIT 0x20000000</div><div class='del'>-</div><div class='del'>-struct dbmdata {</div><div class='del'>-    long di_size;</div><div class='del'>-    DBM *di_dbm;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-NORETURN(static void closed_dbm(void));</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-closed_dbm(void)</div><div class='del'>-{</div><div class='del'>-    rb_raise(rb_eDBMError, "closed DBM file");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define GetDBM(obj, dbmp) do {\</div><div class='del'>-    TypedData_Get_Struct((obj), struct dbmdata, &amp;dbm_type, (dbmp));\</div><div class='del'>-    if ((dbmp)-&gt;di_dbm == 0) closed_dbm();\</div><div class='del'>-} while (0)</div><div class='del'>-</div><div class='del'>-#define GetDBM2(obj, dbmp, dbm) do {\</div><div class='del'>-    GetDBM((obj), (dbmp));\</div><div class='del'>-    (dbm) = (dbmp)-&gt;di_dbm;\</div><div class='del'>-} while (0)</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-free_dbm(void *ptr)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp = ptr;</div><div class='del'>-    if (dbmp-&gt;di_dbm)</div><div class='del'>-	dbm_close(dbmp-&gt;di_dbm);</div><div class='del'>-    xfree(dbmp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static size_t</div><div class='del'>-memsize_dbm(const void *ptr)</div><div class='del'>-{</div><div class='del'>-    const struct dbmdata *dbmp = ptr;</div><div class='del'>-    size_t size = sizeof(*dbmp);</div><div class='del'>-    if (dbmp-&gt;di_dbm)</div><div class='del'>-	size += DBM_SIZEOF_DBM;</div><div class='del'>-    return size;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const rb_data_type_t dbm_type = {</div><div class='del'>-    "dbm",</div><div class='del'>-    {0, free_dbm, memsize_dbm,},</div><div class='del'>-    0, 0,</div><div class='del'>-    RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.close</div><div class='del'>- *</div><div class='del'>- * Closes the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_close(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-</div><div class='del'>-    GetDBM(obj, dbmp);</div><div class='del'>-    dbm_close(dbmp-&gt;di_dbm);</div><div class='del'>-    dbmp-&gt;di_dbm = 0;</div><div class='del'>-</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.closed? -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns true if the database is closed, false otherwise.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_closed(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-</div><div class='del'>-    TypedData_Get_Struct(obj, struct dbmdata, &amp;dbm_type, dbmp);</div><div class='del'>-    if (dbmp-&gt;di_dbm == 0)</div><div class='del'>-	return Qtrue;</div><div class='del'>-</div><div class='del'>-    return Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_alloc(VALUE klass)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-</div><div class='del'>-    return TypedData_Make_Struct(klass, struct dbmdata, &amp;dbm_type, dbmp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   DBM.new(filename[, mode[, flags]]) -&gt; dbm</div><div class='del'>- *</div><div class='del'>- * Open a dbm database with the specified name, which can include a directory</div><div class='del'>- * path. Any file extensions needed will be supplied automatically by the dbm</div><div class='del'>- * library. For example, Berkeley DB appends '.db', and GNU gdbm uses two</div><div class='del'>- * physical files with extensions '.dir' and '.pag'.</div><div class='del'>- *</div><div class='del'>- * The mode should be an integer, as for Unix chmod.</div><div class='del'>- *</div><div class='del'>- * Flags should be one of READER, WRITER, WRCREAT or NEWDB.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_initialize(int argc, VALUE *argv, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE file, vmode, vflags;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    int mode, flags = 0;</div><div class='del'>-</div><div class='del'>-    TypedData_Get_Struct(obj, struct dbmdata, &amp;dbm_type, dbmp);</div><div class='del'>-    if (rb_scan_args(argc, argv, "12", &amp;file, &amp;vmode, &amp;vflags) == 1) {</div><div class='del'>-	mode = 0666;		/* default value */</div><div class='del'>-    }</div><div class='del'>-    else if (NIL_P(vmode)) {</div><div class='del'>-	mode = -1;		/* return nil if DB not exist */</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	mode = NUM2INT(vmode);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!NIL_P(vflags))</div><div class='del'>-        flags = NUM2INT(vflags);</div><div class='del'>-</div><div class='del'>-    FilePathValue(file);</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * Note:</div><div class='del'>-     * gdbm 1.10 works with O_CLOEXEC.  gdbm 1.9.1 silently ignore it.</div><div class='del'>-     */</div><div class='del'>-#ifndef O_CLOEXEC</div><div class='del'>-#   define O_CLOEXEC 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    if (flags &amp; RUBY_DBM_RW_BIT) {</div><div class='del'>-        flags &amp;= ~RUBY_DBM_RW_BIT;</div><div class='del'>-        dbm = dbm_open(RSTRING_PTR(file), flags|O_CLOEXEC, mode);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        dbm = 0;</div><div class='del'>-        if (mode &gt;= 0) {</div><div class='del'>-            dbm = dbm_open(RSTRING_PTR(file), O_RDWR|O_CREAT|O_CLOEXEC, mode);</div><div class='del'>-        }</div><div class='del'>-        if (!dbm) {</div><div class='del'>-            dbm = dbm_open(RSTRING_PTR(file), O_RDWR|O_CLOEXEC, 0);</div><div class='del'>-        }</div><div class='del'>-        if (!dbm) {</div><div class='del'>-            dbm = dbm_open(RSTRING_PTR(file), O_RDONLY|O_CLOEXEC, 0);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (dbm) {</div><div class='del'>-	/*</div><div class='del'>-	 * History of dbm_pagfno() and dbm_dirfno() in ndbm and its compatibles.</div><div class='del'>-	 * (dbm_pagfno() and dbm_dirfno() is not standardized.)</div><div class='del'>-	 *</div><div class='del'>-	 * 1986: 4.3BSD provides ndbm.</div><div class='del'>-	 *       It provides dbm_pagfno() and dbm_dirfno() as macros.</div><div class='del'>-	 * 1991: gdbm-1.5 provides them as functions.</div><div class='del'>-	 *       They returns a same descriptor.</div><div class='del'>-	 *       (Earlier releases may have the functions too.)</div><div class='del'>-	 * 1991: Net/2 provides Berkeley DB.</div><div class='del'>-	 *       It doesn't provide dbm_pagfno() and dbm_dirfno().</div><div class='del'>-	 * 1992: 4.4BSD Alpha provides Berkeley DB with dbm_dirfno() as a function.</div><div class='del'>-	 *       dbm_pagfno() is a macro as DBM_PAGFNO_NOT_AVAILABLE.</div><div class='del'>-	 * 1997: Berkeley DB 2.0 is released by Sleepycat Software, Inc.</div><div class='del'>-	 *       It defines dbm_pagfno() and dbm_dirfno() as macros.</div><div class='del'>-	 * 2011: gdbm-1.9 creates a separate dir file.</div><div class='del'>-	 *       dbm_pagfno() and dbm_dirfno() returns different descriptors.</div><div class='del'>-	 */</div><div class='del'>-#if defined(HAVE_DBM_PAGFNO)</div><div class='del'>-        rb_fd_fix_cloexec(dbm_pagfno(dbm));</div><div class='del'>-#endif</div><div class='del'>-#if defined(HAVE_DBM_DIRFNO)</div><div class='del'>-        rb_fd_fix_cloexec(dbm_dirfno(dbm));</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(RUBYDBM_DB_HEADER) &amp;&amp; defined(HAVE_TYPE_DBC)</div><div class='del'>-	/* Disable Berkeley DB error messages such as:</div><div class='del'>-	 * DB-&gt;put: attempt to modify a read-only database */</div><div class='del'>-        ((DBC*)dbm)-&gt;dbp-&gt;set_errfile(((DBC*)dbm)-&gt;dbp, NULL);</div><div class='del'>-#endif</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!dbm) {</div><div class='del'>-	if (mode == -1) return Qnil;</div><div class='del'>-	rb_sys_fail_str(file);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (dbmp-&gt;di_dbm)</div><div class='del'>-	dbm_close(dbmp-&gt;di_dbm);</div><div class='del'>-    dbmp-&gt;di_dbm = dbm;</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   DBM.open(filename[, mode[, flags]]) -&gt; dbm</div><div class='del'>- *   DBM.open(filename[, mode[, flags]]) {|dbm| block}</div><div class='del'>- *</div><div class='del'>- * Open a dbm database and yields it if a block is given. See also</div><div class='del'>- * &lt;code&gt;DBM.new&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='del'>-{</div><div class='del'>-    VALUE obj = fdbm_alloc(klass);</div><div class='del'>-</div><div class='del'>-    if (NIL_P(fdbm_initialize(argc, argv, obj))) {</div><div class='del'>-	return Qnil;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (rb_block_given_p()) {</div><div class='del'>-        return rb_ensure(rb_yield, obj, fdbm_close, obj);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_fetch(VALUE obj, VALUE keystr, VALUE ifnone)</div><div class='del'>-{</div><div class='del'>-    datum key, value;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    long len;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(keystr);</div><div class='del'>-    len = RSTRING_LEN(keystr);</div><div class='del'>-    if (TOO_LONG(len)) goto not_found;</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = (DSIZE_TYPE)len;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    value = dbm_fetch(dbm, key);</div><div class='del'>-    if (value.dptr == 0) {</div><div class='del'>-      not_found:</div><div class='del'>-	if (NIL_P(ifnone) &amp;&amp; rb_block_given_p()) {</div><div class='del'>-	    keystr = rb_str_dup(keystr);</div><div class='del'>-	    OBJ_TAINT(keystr);</div><div class='del'>-	    return rb_yield(keystr);</div><div class='del'>-	}</div><div class='del'>-	return ifnone;</div><div class='del'>-    }</div><div class='del'>-    return rb_tainted_str_new(value.dptr, value.dsize);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm[key] -&gt; string value or nil</div><div class='del'>- *</div><div class='del'>- * Return a value from the database by locating the key string</div><div class='del'>- * provided.  If the key is not found, returns nil.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_aref(VALUE obj, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    return fdbm_fetch(obj, keystr, Qnil);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.fetch(key[, ifnone]) -&gt; value</div><div class='del'>- *</div><div class='del'>- * Return a value from the database by locating the key string</div><div class='del'>- * provided.  If the key is not found, returns +ifnone+. If +ifnone+</div><div class='del'>- * is not given, raises IndexError.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_fetch_m(int argc, VALUE *argv, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE keystr, valstr, ifnone;</div><div class='del'>-</div><div class='del'>-    rb_scan_args(argc, argv, "11", &amp;keystr, &amp;ifnone);</div><div class='del'>-    valstr = fdbm_fetch(obj, keystr, ifnone);</div><div class='del'>-    if (argc == 1 &amp;&amp; !rb_block_given_p() &amp;&amp; NIL_P(valstr))</div><div class='del'>-	rb_raise(rb_eIndexError, "key not found");</div><div class='del'>-</div><div class='del'>-    return valstr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.key(value) -&gt; string</div><div class='del'>- *</div><div class='del'>- * Returns the key for the specified value.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_key(VALUE obj, VALUE valstr)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    long len;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(valstr);</div><div class='del'>-    len = RSTRING_LEN(valstr);</div><div class='del'>-    if (TOO_LONG(len)) return Qnil;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	val = dbm_fetch(dbm, key);</div><div class='del'>-	if ((long)val.dsize == RSTRING_LEN(valstr) &amp;&amp;</div><div class='del'>-	    memcmp(val.dptr, RSTRING_PTR(valstr), val.dsize) == 0) {</div><div class='del'>-	    return rb_tainted_str_new(key.dptr, key.dsize);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* :nodoc: */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_index(VALUE hash, VALUE value)</div><div class='del'>-{</div><div class='del'>-    rb_warn("DBM#index is deprecated; use DBM#key");</div><div class='del'>-    return fdbm_key(hash, value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.select {|key, value| block} -&gt; array</div><div class='del'>- *</div><div class='del'>- * Returns a new array consisting of the [key, value] pairs for which the code</div><div class='del'>- * block returns true.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_select(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE new = rb_ary_new();</div><div class='del'>-    datum key, val;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	VALUE assoc, v;</div><div class='del'>-	val = dbm_fetch(dbm, key);</div><div class='del'>-	assoc = rb_assoc_new(rb_tainted_str_new(key.dptr, key.dsize),</div><div class='del'>-			     rb_tainted_str_new(val.dptr, val.dsize));</div><div class='del'>-	v = rb_yield(assoc);</div><div class='del'>-	if (RTEST(v)) {</div><div class='del'>-	    rb_ary_push(new, assoc);</div><div class='del'>-	}</div><div class='del'>-	GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return new;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.values_at(key, ...) -&gt; Array</div><div class='del'>- *</div><div class='del'>- * Returns an array containing the values associated with the given keys.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_values_at(int argc, VALUE *argv, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE new = rb_ary_new2(argc);</div><div class='del'>-    int i;</div><div class='del'>-</div><div class='del'>-    for (i=0; i&lt;argc; i++) {</div><div class='del'>-        rb_ary_push(new, fdbm_fetch(obj, argv[i], Qnil));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return new;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fdbm_modify(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    if (OBJ_FROZEN(obj)) rb_error_frozen("DBM");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.delete(key)</div><div class='del'>- *</div><div class='del'>- * Deletes an entry from the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_delete(VALUE obj, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    datum key, value;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE valstr;</div><div class='del'>-    long len;</div><div class='del'>-</div><div class='del'>-    fdbm_modify(obj);</div><div class='del'>-    ExportStringValue(keystr);</div><div class='del'>-    len = RSTRING_LEN(keystr);</div><div class='del'>-    if (TOO_LONG(len)) goto not_found;</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = (DSIZE_TYPE)len;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-</div><div class='del'>-    value = dbm_fetch(dbm, key);</div><div class='del'>-    if (value.dptr == 0) {</div><div class='del'>-      not_found:</div><div class='del'>-	if (rb_block_given_p()) return rb_yield(keystr);</div><div class='del'>-	return Qnil;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* need to save value before dbm_delete() */</div><div class='del'>-    valstr = rb_tainted_str_new(value.dptr, value.dsize);</div><div class='del'>-</div><div class='del'>-    if (dbm_delete(dbm, key)) {</div><div class='del'>-	dbmp-&gt;di_size = -1;</div><div class='del'>-	rb_raise(rb_eDBMError, "dbm_delete failed");</div><div class='del'>-    }</div><div class='del'>-    else if (dbmp-&gt;di_size &gt;= 0) {</div><div class='del'>-	dbmp-&gt;di_size--;</div><div class='del'>-    }</div><div class='del'>-    return valstr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.shift() -&gt; [key, value]</div><div class='del'>- *</div><div class='del'>- * Removes a [key, value] pair from the database, and returns it.</div><div class='del'>- * If the database is empty, returns nil.</div><div class='del'>- * The order in which values are removed/returned is not guaranteed.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_shift(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE keystr, valstr;</div><div class='del'>-</div><div class='del'>-    fdbm_modify(obj);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-</div><div class='del'>-    key = dbm_firstkey(dbm);</div><div class='del'>-    if (!key.dptr) return Qnil;</div><div class='del'>-    val = dbm_fetch(dbm, key);</div><div class='del'>-    keystr = rb_tainted_str_new(key.dptr, key.dsize);</div><div class='del'>-    valstr = rb_tainted_str_new(val.dptr, val.dsize);</div><div class='del'>-    dbm_delete(dbm, key);</div><div class='del'>-</div><div class='del'>-    return rb_assoc_new(keystr, valstr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.reject! {|key, value| block} -&gt; self</div><div class='del'>- *   dbm.delete_if {|key, value| block} -&gt; self</div><div class='del'>- *</div><div class='del'>- * Deletes all entries for which the code block returns true.</div><div class='del'>- * Returns self.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_delete_if(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE keystr, valstr;</div><div class='del'>-    VALUE ret, ary = rb_ary_tmp_new(0);</div><div class='del'>-    int status = 0;</div><div class='del'>-    long i, n;</div><div class='del'>-</div><div class='del'>-    fdbm_modify(obj);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    n = dbmp-&gt;di_size;</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	val = dbm_fetch(dbm, key);</div><div class='del'>-	keystr = rb_tainted_str_new(key.dptr, key.dsize);</div><div class='del'>-	OBJ_FREEZE(keystr);</div><div class='del'>-	valstr = rb_tainted_str_new(val.dptr, val.dsize);</div><div class='del'>-        ret = rb_protect(rb_yield, rb_assoc_new(rb_str_dup(keystr), valstr), &amp;status);</div><div class='del'>-        if (status != 0) break;</div><div class='del'>-	if (RTEST(ret)) rb_ary_push(ary, keystr);</div><div class='del'>-	GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	keystr = RARRAY_AREF(ary, i);</div><div class='del'>-	key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-	key.dsize = (DSIZE_TYPE)RSTRING_LEN(keystr);</div><div class='del'>-	if (dbm_delete(dbm, key)) {</div><div class='del'>-	    rb_raise(rb_eDBMError, "dbm_delete failed");</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    if (status) rb_jump_tag(status);</div><div class='del'>-    if (n &gt; 0) dbmp-&gt;di_size = n - RARRAY_LEN(ary);</div><div class='del'>-    rb_ary_clear(ary);</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.clear</div><div class='del'>- *</div><div class='del'>- * Deletes all data from the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_clear(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    fdbm_modify(obj);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-    while (key = dbm_firstkey(dbm), key.dptr) {</div><div class='del'>-	if (dbm_delete(dbm, key)) {</div><div class='del'>-	    rb_raise(rb_eDBMError, "dbm_delete failed");</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    dbmp-&gt;di_size = 0;</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.invert -&gt; hash</div><div class='del'>- *</div><div class='del'>- * Returns a Hash (not a DBM database) created by using each value in the</div><div class='del'>- * database as a key, with the corresponding key as its value.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_invert(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE keystr, valstr;</div><div class='del'>-    VALUE hash = rb_hash_new();</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	val = dbm_fetch(dbm, key);</div><div class='del'>-	keystr = rb_tainted_str_new(key.dptr, key.dsize);</div><div class='del'>-	valstr = rb_tainted_str_new(val.dptr, val.dsize);</div><div class='del'>-	rb_hash_aset(hash, valstr, keystr);</div><div class='del'>-    }</div><div class='del'>-    return hash;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE fdbm_store(VALUE,VALUE,VALUE);</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-update_i(RB_BLOCK_CALL_FUNC_ARGLIST(pair, dbm))</div><div class='del'>-{</div><div class='del'>-    const VALUE *ptr;</div><div class='del'>-    Check_Type(pair, T_ARRAY);</div><div class='del'>-    if (RARRAY_LEN(pair) &lt; 2) {</div><div class='del'>-	rb_raise(rb_eArgError, "pair must be [key, value]");</div><div class='del'>-    }</div><div class='del'>-    ptr = RARRAY_CONST_PTR(pair);</div><div class='del'>-    fdbm_store(dbm, ptr[0], ptr[1]);</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.update(obj)</div><div class='del'>- *</div><div class='del'>- * Updates the database with multiple values from the specified object.</div><div class='del'>- * Takes any object which implements the each_pair method, including</div><div class='del'>- * Hash and DBM objects.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_update(VALUE obj, VALUE other)</div><div class='del'>-{</div><div class='del'>-    rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj);</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.replace(obj)</div><div class='del'>- *</div><div class='del'>- * Replaces the contents of the database with the contents of the specified</div><div class='del'>- * object. Takes any object which implements the each_pair method, including</div><div class='del'>- * Hash and DBM objects.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_replace(VALUE obj, VALUE other)</div><div class='del'>-{</div><div class='del'>-    fdbm_clear(obj);</div><div class='del'>-    rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj);</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.store(key, value) -&gt; value</div><div class='del'>- *   dbm[key] = value</div><div class='del'>- *</div><div class='del'>- * Stores the specified string value in the database, indexed via the</div><div class='del'>- * string key provided.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_store(VALUE obj, VALUE keystr, VALUE valstr)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    fdbm_modify(obj);</div><div class='del'>-    keystr = rb_obj_as_string(keystr);</div><div class='del'>-    valstr = rb_obj_as_string(valstr);</div><div class='del'>-</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = RSTRING_DSIZE(keystr);</div><div class='del'>-</div><div class='del'>-    val.dptr = RSTRING_PTR(valstr);</div><div class='del'>-    val.dsize = RSTRING_DSIZE(valstr);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-    if (dbm_store(dbm, key, val, DBM_REPLACE)) {</div><div class='del'>-	dbm_clearerr(dbm);</div><div class='del'>-	if (errno == EPERM) rb_sys_fail(0);</div><div class='del'>-	rb_raise(rb_eDBMError, "dbm_store failed");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return valstr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.length -&gt; integer</div><div class='del'>- *   dbm.size -&gt; integer</div><div class='del'>- *</div><div class='del'>- * Returns the number of entries in the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_length(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    int i = 0;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    if (dbmp-&gt;di_size &gt; 0) return INT2FIX(dbmp-&gt;di_size);</div><div class='del'>-</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	i++;</div><div class='del'>-    }</div><div class='del'>-    dbmp-&gt;di_size = i;</div><div class='del'>-</div><div class='del'>-    return INT2FIX(i);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.empty?</div><div class='del'>- *</div><div class='del'>- * Returns true if the database is empty, false otherwise.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_empty_p(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    if (dbmp-&gt;di_size &lt; 0) {</div><div class='del'>-	dbm = dbmp-&gt;di_dbm;</div><div class='del'>-</div><div class='del'>-	for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	    return Qfalse;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	if (dbmp-&gt;di_size)</div><div class='del'>-	    return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    return Qtrue;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.each_value {|value| block} -&gt; self</div><div class='del'>- *</div><div class='del'>- * Calls the block once for each value string in the database. Returns self.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_each_value(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    RETURN_ENUMERATOR(obj, 0, 0);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	val = dbm_fetch(dbm, key);</div><div class='del'>-	rb_yield(rb_tainted_str_new(val.dptr, val.dsize));</div><div class='del'>-	GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.each_key {|key| block} -&gt; self</div><div class='del'>- *</div><div class='del'>- * Calls the block once for each key string in the database. Returns self.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_each_key(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    RETURN_ENUMERATOR(obj, 0, 0);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	rb_yield(rb_tainted_str_new(key.dptr, key.dsize));</div><div class='del'>-	GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.each_pair {|key,value| block} -&gt; self</div><div class='del'>- *</div><div class='del'>- * Calls the block once for each [key, value] pair in the database.</div><div class='del'>- * Returns self.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_each_pair(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    VALUE keystr, valstr;</div><div class='del'>-</div><div class='del'>-    RETURN_ENUMERATOR(obj, 0, 0);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	val = dbm_fetch(dbm, key);</div><div class='del'>-	keystr = rb_tainted_str_new(key.dptr, key.dsize);</div><div class='del'>-	valstr = rb_tainted_str_new(val.dptr, val.dsize);</div><div class='del'>-	rb_yield(rb_assoc_new(keystr, valstr));</div><div class='del'>-	GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.keys -&gt; array</div><div class='del'>- *</div><div class='del'>- * Returns an array of all the string keys in the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_keys(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE ary;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-</div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	rb_ary_push(ary, rb_tainted_str_new(key.dptr, key.dsize));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.values -&gt; array</div><div class='del'>- *</div><div class='del'>- * Returns an array of all the string values in the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_values(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE ary;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	val = dbm_fetch(dbm, key);</div><div class='del'>-	rb_ary_push(ary, rb_tainted_str_new(val.dptr, val.dsize));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.include?(key) -&gt; boolean</div><div class='del'>- *   dbm.has_key?(key) -&gt; boolean</div><div class='del'>- *   dbm.member?(key) -&gt; boolean</div><div class='del'>- *   dbm.key?(key) -&gt; boolean</div><div class='del'>- *</div><div class='del'>- * Returns true if the database contains the specified key, false otherwise.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_has_key(VALUE obj, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    long len;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(keystr);</div><div class='del'>-    len = RSTRING_LEN(keystr);</div><div class='del'>-    if (TOO_LONG(len)) return Qfalse;</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = (DSIZE_TYPE)len;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    val = dbm_fetch(dbm, key);</div><div class='del'>-    if (val.dptr) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.has_value?(value) -&gt; boolean</div><div class='del'>- *   dbm.value?(value) -&gt; boolean</div><div class='del'>- *</div><div class='del'>- * Returns true if the database contains the specified string value, false</div><div class='del'>- * otherwise.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_has_value(VALUE obj, VALUE valstr)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    long len;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(valstr);</div><div class='del'>-    len = RSTRING_LEN(valstr);</div><div class='del'>-    if (TOO_LONG(len)) return Qfalse;</div><div class='del'>-    val.dptr = RSTRING_PTR(valstr);</div><div class='del'>-    val.dsize = (DSIZE_TYPE)len;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	val = dbm_fetch(dbm, key);</div><div class='del'>-	if ((DSIZE_TYPE)val.dsize == (DSIZE_TYPE)RSTRING_LEN(valstr) &amp;&amp;</div><div class='del'>-	    memcmp(val.dptr, RSTRING_PTR(valstr), val.dsize) == 0)</div><div class='del'>-	    return Qtrue;</div><div class='del'>-    }</div><div class='del'>-    return Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.to_a -&gt; array</div><div class='del'>- *</div><div class='del'>- * Converts the contents of the database to an array of [key, value] arrays,</div><div class='del'>- * and returns it.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_to_a(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE ary;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	val = dbm_fetch(dbm, key);</div><div class='del'>-	rb_ary_push(ary, rb_assoc_new(rb_tainted_str_new(key.dptr, key.dsize),</div><div class='del'>-				      rb_tainted_str_new(val.dptr, val.dsize)));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.to_hash -&gt; hash</div><div class='del'>- *</div><div class='del'>- * Converts the contents of the database to an in-memory Hash object, and</div><div class='del'>- * returns it.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_to_hash(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE hash;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    hash = rb_hash_new();</div><div class='del'>-    for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {</div><div class='del'>-	val = dbm_fetch(dbm, key);</div><div class='del'>-	rb_hash_aset(hash, rb_tainted_str_new(key.dptr, key.dsize),</div><div class='del'>-		           rb_tainted_str_new(val.dptr, val.dsize));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return hash;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   dbm.reject {|key,value| block} -&gt; Hash</div><div class='del'>- *</div><div class='del'>- * Converts the contents of the database to an in-memory Hash, then calls</div><div class='del'>- * Hash#reject with the specified code block, returning a new Hash.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fdbm_reject(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    return rb_hash_delete_if(fdbm_to_hash(obj));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * == Introduction</div><div class='del'>- *</div><div class='del'>- * The DBM class provides a wrapper to a Unix-style</div><div class='del'>- * {dbm}[http://en.wikipedia.org/wiki/Dbm] or Database Manager library.</div><div class='del'>- *</div><div class='del'>- * Dbm databases do not have tables or columns; they are simple key-value</div><div class='del'>- * data stores, like a Ruby Hash except not resident in RAM. Keys and values</div><div class='del'>- * must be strings.</div><div class='del'>- *</div><div class='del'>- * The exact library used depends on how Ruby was compiled. It could be any</div><div class='del'>- * of the following:</div><div class='del'>- *</div><div class='del'>- * - The original ndbm library is released in 4.3BSD.</div><div class='del'>- *   It is based on dbm library in Unix Version 7 but has different API to</div><div class='del'>- *   support multiple databases in a process.</div><div class='del'>- * - {Berkeley DB}[http://en.wikipedia.org/wiki/Berkeley_DB] versions</div><div class='del'>- *   1 thru 6, also known as BDB and Sleepycat DB, now owned by Oracle</div><div class='del'>- *   Corporation.</div><div class='del'>- * - Berkeley DB 1.x, still found in 4.4BSD derivatives (FreeBSD, OpenBSD, etc).</div><div class='del'>- * - {gdbm}[http://www.gnu.org/software/gdbm/], the GNU implementation of dbm.</div><div class='del'>- * - {qdbm}[http://fallabs.com/qdbm/index.html], another open source</div><div class='del'>- *   reimplementation of dbm.</div><div class='del'>- *</div><div class='del'>- * All of these dbm implementations have their own Ruby interfaces</div><div class='del'>- * available, which provide richer (but varying) APIs.</div><div class='del'>- *</div><div class='del'>- * == Cautions</div><div class='del'>- *</div><div class='del'>- * Before you decide to use DBM, there are some issues you should consider:</div><div class='del'>- *</div><div class='del'>- * - Each implementation of dbm has its own file format. Generally, dbm</div><div class='del'>- *   libraries will not read each other's files. This makes dbm files</div><div class='del'>- *   a bad choice for data exchange.</div><div class='del'>- *</div><div class='del'>- * - Even running the same OS and the same dbm implementation, the database</div><div class='del'>- *   file format may depend on the CPU architecture. For example, files may</div><div class='del'>- *   not be portable between PowerPC and 386, or between 32 and 64 bit Linux.</div><div class='del'>- *</div><div class='del'>- * - Different versions of Berkeley DB use different file formats. A change to</div><div class='del'>- *   the OS may therefore break DBM access to existing files.</div><div class='del'>- *</div><div class='del'>- * - Data size limits vary between implementations. Original Berkeley DB was</div><div class='del'>- *   limited to 2GB of data. Dbm libraries also sometimes limit the total</div><div class='del'>- *   size of a key/value pair, and the total size of all the keys that hash</div><div class='del'>- *   to the same value. These limits can be as little as 512 bytes. That said,</div><div class='del'>- *   gdbm and recent versions of Berkeley DB do away with these limits.</div><div class='del'>- *</div><div class='del'>- * Given the above cautions, DBM is not a good choice for long term storage of</div><div class='del'>- * important data. It is probably best used as a fast and easy alternative</div><div class='del'>- * to a Hash for processing large amounts of data.</div><div class='del'>- *</div><div class='del'>- * == Example</div><div class='del'>- *</div><div class='del'>- *  require 'dbm'</div><div class='del'>- *  db = DBM.open('rfcs', 0666, DBM::WRCREAT)</div><div class='del'>- *  db['822'] = 'Standard for the Format of ARPA Internet Text Messages'</div><div class='del'>- *  db['1123'] = 'Requirements for Internet Hosts - Application and Support'</div><div class='del'>- *  db['3068'] = 'An Anycast Prefix for 6to4 Relay Routers'</div><div class='del'>- *  puts db['822']</div><div class='del'>- */</div><div class='del'>-void</div><div class='del'>-Init_dbm(void)</div><div class='del'>-{</div><div class='del'>-    rb_cDBM = rb_define_class("DBM", rb_cObject);</div><div class='del'>-    /* Document-class: DBMError</div><div class='del'>-     * Exception class used to return errors from the dbm library.</div><div class='del'>-     */</div><div class='del'>-    rb_eDBMError = rb_define_class("DBMError", rb_eStandardError);</div><div class='del'>-    rb_include_module(rb_cDBM, rb_mEnumerable);</div><div class='del'>-</div><div class='del'>-    rb_define_alloc_func(rb_cDBM, fdbm_alloc);</div><div class='del'>-    rb_define_singleton_method(rb_cDBM, "open", fdbm_s_open, -1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cDBM, "initialize", fdbm_initialize, -1);</div><div class='del'>-    rb_define_method(rb_cDBM, "close", fdbm_close, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "closed?", fdbm_closed, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "[]", fdbm_aref, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "fetch", fdbm_fetch_m, -1);</div><div class='del'>-    rb_define_method(rb_cDBM, "[]=", fdbm_store, 2);</div><div class='del'>-    rb_define_method(rb_cDBM, "store", fdbm_store, 2);</div><div class='del'>-    rb_define_method(rb_cDBM, "index",  fdbm_index, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "key",  fdbm_key, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "select",  fdbm_select, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "values_at", fdbm_values_at, -1);</div><div class='del'>-    rb_define_method(rb_cDBM, "length", fdbm_length, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "size", fdbm_length, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "empty?", fdbm_empty_p, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "each", fdbm_each_pair, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "each_value", fdbm_each_value, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "each_key", fdbm_each_key, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "each_pair", fdbm_each_pair, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "keys", fdbm_keys, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "values", fdbm_values, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "shift", fdbm_shift, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "delete", fdbm_delete, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "delete_if", fdbm_delete_if, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "reject!", fdbm_delete_if, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "reject", fdbm_reject, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "clear", fdbm_clear, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "invert", fdbm_invert, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "update", fdbm_update, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "replace", fdbm_replace, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cDBM, "include?", fdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "has_key?", fdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "member?", fdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "has_value?", fdbm_has_value, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "key?", fdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "value?", fdbm_has_value, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cDBM, "to_a", fdbm_to_a, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "to_hash", fdbm_to_hash, 0);</div><div class='del'>-</div><div class='del'>-    /* Indicates that dbm_open() should open the database in read-only mode */</div><div class='del'>-    rb_define_const(rb_cDBM, "READER",  INT2FIX(O_RDONLY|RUBY_DBM_RW_BIT));</div><div class='del'>-</div><div class='del'>-    /* Indicates that dbm_open() should open the database in read/write mode */</div><div class='del'>-    rb_define_const(rb_cDBM, "WRITER",  INT2FIX(O_RDWR|RUBY_DBM_RW_BIT));</div><div class='del'>-</div><div class='del'>-    /* Indicates that dbm_open() should open the database in read/write mode,</div><div class='del'>-     * and create it if it does not already exist</div><div class='del'>-     */</div><div class='del'>-    rb_define_const(rb_cDBM, "WRCREAT", INT2FIX(O_RDWR|O_CREAT|RUBY_DBM_RW_BIT));</div><div class='del'>-</div><div class='del'>-    /* Indicates that dbm_open() should open the database in read/write mode,</div><div class='del'>-     * create it if it does not already exist, and delete all contents if it</div><div class='del'>-     * does already exist.</div><div class='del'>-     */</div><div class='del'>-    rb_define_const(rb_cDBM, "NEWDB",   INT2FIX(O_RDWR|O_CREAT|O_TRUNC|RUBY_DBM_RW_BIT));</div><div class='del'>-</div><div class='del'>-    {</div><div class='del'>-        VALUE version;</div><div class='del'>-#if defined(_DBM_IOERR)</div><div class='del'>-        version = rb_str_new2("ndbm (4.3BSD)");</div><div class='del'>-#elif defined(RUBYDBM_GDBM_HEADER)</div><div class='del'>-#  if defined(HAVE_DECLARED_LIBVAR_GDBM_VERSION)</div><div class='del'>-        /* since gdbm 1.9 */</div><div class='del'>-        version = rb_str_new2(gdbm_version);</div><div class='del'>-#  elif defined(HAVE_UNDECLARED_LIBVAR_GDBM_VERSION)</div><div class='del'>-        /* ndbm.h doesn't declare gdbm_version until gdbm 1.8.3.</div><div class='del'>-         * See extconf.rb for more information. */</div><div class='del'>-        RUBY_EXTERN char *gdbm_version;</div><div class='del'>-        version = rb_str_new2(gdbm_version);</div><div class='del'>-#  else</div><div class='del'>-        version = rb_str_new2("GDBM (unknown)");</div><div class='del'>-#  endif</div><div class='del'>-#elif defined(RUBYDBM_DB_HEADER)</div><div class='del'>-#  if defined(HAVE_DB_VERSION)</div><div class='del'>-        /* The version of the dbm library, if using Berkeley DB */</div><div class='del'>-        version = rb_str_new2(db_version(NULL, NULL, NULL));</div><div class='del'>-#  else</div><div class='del'>-        version = rb_str_new2("Berkeley DB (unknown)");</div><div class='del'>-#  endif</div><div class='del'>-#elif defined(_RELIC_H)</div><div class='del'>-#  if defined(HAVE_DPVERSION)</div><div class='del'>-        version = rb_sprintf("QDBM %s", dpversion);</div><div class='del'>-#  else</div><div class='del'>-        version = rb_str_new2("QDBM (unknown)");</div><div class='del'>-#  endif</div><div class='del'>-#else</div><div class='del'>-        version = rb_str_new2("ndbm (unknown)");</div><div class='del'>-#endif</div><div class='del'>-        /*</div><div class='del'>-         * Identifies ndbm library version.</div><div class='del'>-         *</div><div class='del'>-         * Examples:</div><div class='del'>-         *</div><div class='del'>-         * - "ndbm (4.3BSD)"</div><div class='del'>-         * - "Berkeley DB 4.8.30: (April  9, 2010)"</div><div class='del'>-         * - "Berkeley DB (unknown)" (4.4BSD, maybe)</div><div class='del'>-         * - "GDBM version 1.8.3. 10/15/2002 (built Jul  1 2011 12:32:45)"</div><div class='del'>-         * - "QDBM 1.8.78"</div><div class='del'>-         *</div><div class='del'>-         */</div><div class='del'>-        rb_define_const(rb_cDBM, "VERSION", version);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='head'>diff --git a/ext/dbm/dbm.gemspec b/ext/dbm/dbm.gemspec<br/>deleted file mode 100644<br/>index 9ab444b9c7..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/dbm/dbm.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/dbm/dbm.gemspec</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,20 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-Gem::Specification.new do |s|</div><div class='del'>-  s.name = "dbm"</div><div class='del'>-  s.version = '1.0.0'</div><div class='del'>-  s.summary = "Provides a wrapper for the UNIX-style Database Manager Library"</div><div class='del'>-  s.description = "Provides a wrapper for the UNIX-style Database Manager Library"</div><div class='del'>-</div><div class='del'>-  s.require_path = %w{lib}</div><div class='del'>-  s.files = %w{ext/dbm/extconf.rb ext/dbm/dbm.c}</div><div class='del'>-  s.extensions = %w{ext/dbm/extconf.rb}</div><div class='del'>-  s.required_ruby_version = "&gt;= 2.3.0"</div><div class='del'>-</div><div class='del'>-  s.authors = ["Yukihiro Matsumoto"]</div><div class='del'>-  s.email = ["matz@ruby-lang.org"]</div><div class='del'>-  s.homepage = "https://github.com/ruby/dbm"</div><div class='del'>-  s.license = "BSD-2-Clause"</div><div class='del'>-</div><div class='del'>-  s.add_development_dependency "rake-compiler"</div><div class='del'>-  s.add_development_dependency "test-unit"</div><div class='del'>-end</div><div class='head'>diff --git a/ext/dbm/depend b/ext/dbm/depend<br/>deleted file mode 100644<br/>index b0de2ae2ee..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/dbm/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/dbm/depend</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,13 +0,0 @@</div><div class='del'>-# AUTOGENERATED DEPENDENCIES START</div><div class='del'>-dbm.o: $(RUBY_EXTCONF_H)</div><div class='del'>-dbm.o: $(arch_hdrdir)/ruby/config.h</div><div class='del'>-dbm.o: $(hdrdir)/ruby/backward.h</div><div class='del'>-dbm.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-dbm.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-dbm.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-dbm.o: $(hdrdir)/ruby/ruby.h</div><div class='del'>-dbm.o: $(hdrdir)/ruby/st.h</div><div class='del'>-dbm.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-dbm.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-dbm.o: dbm.c</div><div class='del'>-# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/dbm/extconf.rb b/ext/dbm/extconf.rb<br/>deleted file mode 100644<br/>index c9a5518bf6..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/dbm/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/dbm/extconf.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,292 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-# configure option:</div><div class='del'>-#   --with-dbm-type=COMMA-SEPARATED-NDBM-TYPES</div><div class='del'>-#</div><div class='del'>-# ndbm type:</div><div class='del'>-#   libc        ndbm compatible library in libc.</div><div class='del'>-#   db          Berkeley DB (libdb)</div><div class='del'>-#   db2         Berkeley DB (libdb2)</div><div class='del'>-#   db1         Berkeley DB (libdb1)</div><div class='del'>-#   db6         Berkeley DB (libdb6)</div><div class='del'>-#   db5         Berkeley DB (libdb5)</div><div class='del'>-#   db4         Berkeley DB (libdb4)</div><div class='del'>-#   db3         Berkeley DB (libdb3)</div><div class='del'>-#   gdbm_compat GDBM since 1.8.1 (libgdbm_compat)</div><div class='del'>-#   gdbm        GDBM until 1.8.0 (libgdbm)</div><div class='del'>-#   qdbm        QDBM (libqdbm)</div><div class='del'>-#   ndbm        Some legacy OS may have libndbm.</div><div class='del'>-</div><div class='del'>-# :stopdoc:</div><div class='del'>-require 'mkmf'</div><div class='del'>-</div><div class='del'>-dir_config("dbm")</div><div class='del'>-</div><div class='del'>-if dblib = with_config("dbm-type", nil)</div><div class='del'>-  dblib = dblib.split(/[ ,]+/)</div><div class='del'>-else</div><div class='del'>-  dblib = %w(libc db db2 db1 db6 db5 db4 db3 gdbm_compat gdbm qdbm)</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-headers = {</div><div class='del'>-  "libc" =&gt; ["ndbm.h"], # 4.3BSD original ndbm, Berkeley DB 1 in 4.4BSD libc.</div><div class='del'>-  "db" =&gt; ["db.h"],</div><div class='del'>-  "db1" =&gt; ["db1/ndbm.h", "db1.h", "ndbm.h"],</div><div class='del'>-  "db2" =&gt; ["db2/db.h", "db2.h", "db.h"],</div><div class='del'>-  "db3" =&gt; ["db3/db.h", "db3.h", "db.h"],</div><div class='del'>-  "db4" =&gt; ["db4/db.h", "db4.h", "db.h"],</div><div class='del'>-  "db5" =&gt; ["db5/db.h", "db5.h", "db.h"],</div><div class='del'>-  "db6" =&gt; ["db6/db.h", "db6.h", "db.h"],</div><div class='del'>-  "gdbm_compat" =&gt; ["gdbm-ndbm.h", "gdbm/ndbm.h", "ndbm.h"], # GDBM since 1.8.1</div><div class='del'>-  "gdbm" =&gt; ["gdbm-ndbm.h", "gdbm/ndbm.h", "ndbm.h"], # GDBM until 1.8.0</div><div class='del'>-  "qdbm" =&gt; ["qdbm/relic.h", "relic.h"],</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-class &lt;&lt; headers</div><div class='del'>-  attr_accessor :found</div><div class='del'>-  attr_accessor :defs</div><div class='del'>-end</div><div class='del'>-headers.found = []</div><div class='del'>-headers.defs = nil</div><div class='del'>-</div><div class='del'>-def headers.db_check(db, hdr)</div><div class='del'>-  old_libs = $libs.dup</div><div class='del'>-  old_defs = $defs.dup</div><div class='del'>-  result = db_check2(db, hdr)</div><div class='del'>-  if !result</div><div class='del'>-    $libs = old_libs</div><div class='del'>-    $defs = old_defs</div><div class='del'>-  end</div><div class='del'>-  result</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def have_declared_libvar(var, headers = nil, opt = "", &amp;b)</div><div class='del'>-  checking_for checking_message([*var].compact.join(' '), headers, opt) do</div><div class='del'>-    try_declared_libvar(var, headers, opt, &amp;b)</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def try_declared_libvar(var, headers = nil, opt = "", &amp;b)</div><div class='del'>-  if try_link(&lt;&lt;"SRC", opt, &amp;b)</div><div class='del'>-#{cpp_include(headers)}</div><div class='del'>-/*top*/</div><div class='del'>-int main(int argc, char *argv[]) {</div><div class='del'>-  void *conftest_var = &amp;#{var};</div><div class='del'>-  return 0;</div><div class='del'>-}</div><div class='del'>-SRC</div><div class='del'>-    $defs.push(format("-DHAVE_DECLARED_LIBVAR_%s", var.tr_cpp))</div><div class='del'>-    true</div><div class='del'>-  else</div><div class='del'>-    false</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def have_undeclared_libvar(var, headers = nil, opt = "", &amp;b)</div><div class='del'>-  checking_for checking_message([*var].compact.join(' '), headers, opt) do</div><div class='del'>-    try_undeclared_libvar(var, headers, opt, &amp;b)</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def try_undeclared_libvar(var, headers = nil, opt = "", &amp;b)</div><div class='del'>-  var, type = *var</div><div class='del'>-  if try_link(&lt;&lt;"SRC", opt, &amp;b)</div><div class='del'>-#{cpp_include(headers)}</div><div class='del'>-/*top*/</div><div class='del'>-int main(int argc, char *argv[]) {</div><div class='del'>-  typedef #{type || 'int'} conftest_type;</div><div class='del'>-  extern conftest_type #{var};</div><div class='del'>-  conftest_type *conftest_var = &amp;#{var};</div><div class='del'>-  return 0;</div><div class='del'>-}</div><div class='del'>-SRC</div><div class='del'>-    $defs.push(format("-DHAVE_UNDECLARED_LIBVAR_%s", var.tr_cpp))</div><div class='del'>-    true</div><div class='del'>-  else</div><div class='del'>-    false</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def have_empty_macro_dbm_clearerr(headers = nil, opt = "", &amp;b)</div><div class='del'>-  checking_for checking_message('empty macro of dbm_clearerr(foobarbaz)',</div><div class='del'>-                                headers, opt) do</div><div class='del'>-    try_toplevel('dbm_clearerr(foobarbaz)', headers, opt, &amp;b)</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def try_toplevel(src, headers = nil, opt = "", &amp;b)</div><div class='del'>-  if try_compile(&lt;&lt;"SRC", opt, &amp;b)</div><div class='del'>-#{cpp_include(headers)}</div><div class='del'>-/*top*/</div><div class='del'>-#{src}</div><div class='del'>-SRC</div><div class='del'>-    true</div><div class='del'>-  else</div><div class='del'>-    false</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-def headers.db_check2(db, hdr)</div><div class='del'>-  $defs.push(%{-DRUBYDBM_DBM_HEADER='"#{hdr}"'})</div><div class='del'>-  $defs.push(%{-DRUBYDBM_DBM_TYPE='"#{db}"'})</div><div class='del'>-</div><div class='del'>-  hsearch = nil</div><div class='del'>-</div><div class='del'>-  case db</div><div class='del'>-  when /^db[2-6]?$/</div><div class='del'>-    hsearch = "-DDB_DBM_HSEARCH"</div><div class='del'>-  when "gdbm_compat"</div><div class='del'>-    have_library("gdbm") or return false</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  if !have_type("DBM", hdr, hsearch)</div><div class='del'>-    return false</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # 'libc' means ndbm is provided by libc.</div><div class='del'>-  # 4.3BSD original ndbm is contained in libc.</div><div class='del'>-  # 4.4BSD (and its derivatives such as NetBSD) contains Berkeley DB 1 in libc.</div><div class='del'>-  if !(db == 'libc' ? have_func('dbm_open("", 0, 0)', hdr, hsearch) :</div><div class='del'>-                      have_library(db, 'dbm_open("", 0, 0)', hdr, hsearch))</div><div class='del'>-    return false</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Skip a mismatch of Berkeley DB's ndbm.h and old GDBM library.</div><div class='del'>-  #</div><div class='del'>-  # dbm_clearerr() should be available for any ndbm implementation.</div><div class='del'>-  # It is available since the original (4.3BSD) ndbm and standardized by POSIX.</div><div class='del'>-  #</div><div class='del'>-  # However "can't resolve symbol 'dbm_clearerr'" problem may be caused by</div><div class='del'>-  # header/library mismatch: Berkeley DB ndbm.h and GDBM library until 1.8.3.</div><div class='del'>-  # GDBM (until 1.8.3) provides dbm_clearerr() as a empty macro in the header</div><div class='del'>-  # and the library don't provide dbm_clearerr().</div><div class='del'>-  # Berkeley DB provides dbm_clearerr() as a usual function.</div><div class='del'>-  # So Berkeley DB header with GDBM library causes the problem.</div><div class='del'>-  #</div><div class='del'>-  if !have_func('dbm_clearerr((DBM *)0)', hdr, hsearch)</div><div class='del'>-    return false</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Berkeley DB's ndbm.h (since 1.85 at least) defines DBM_SUFFIX.</div><div class='del'>-  # Note that _DB_H_ is not defined on Mac OS X because</div><div class='del'>-  # it uses Berkeley DB 1 but ndbm.h doesn't include db.h.</div><div class='del'>-  have_db_header = have_macro('DBM_SUFFIX', hdr, hsearch)</div><div class='del'>-</div><div class='del'>-  # Old GDBM's ndbm.h, until 1.8.3, defines dbm_clearerr as a macro which</div><div class='del'>-  # expands to no tokens.</div><div class='del'>-  have_gdbm_header1 = have_empty_macro_dbm_clearerr(hdr, hsearch)</div><div class='del'>-</div><div class='del'>-  # Recent GDBM's ndbm.h, since 1.9, includes gdbm.h and it defines _GDBM_H_.</div><div class='del'>-  # ndbm compatibility layer of GDBM is provided by libgdbm (until 1.8.0)</div><div class='del'>-  # and libgdbm_compat (since 1.8.1).</div><div class='del'>-  have_gdbm_header2 = have_macro('_GDBM_H_', hdr, hsearch)</div><div class='del'>-</div><div class='del'>-  # 4.3BSD's ndbm.h defines _DBM_IOERR.</div><div class='del'>-  # The original ndbm is provided by libc in 4.3BSD.</div><div class='del'>-  have_ndbm_header = have_macro('_DBM_IOERR', hdr, hsearch)</div><div class='del'>-</div><div class='del'>-  # GDBM provides ndbm functions in libgdbm_compat since GDBM 1.8.1.</div><div class='del'>-  # GDBM's ndbm.h defines _GDBM_H_ since GDBM 1.9.</div><div class='del'>-  # If _GDBM_H_ is defined, 'gdbm_compat' is required and reject 'gdbm'.</div><div class='del'>-  if have_gdbm_header2 &amp;&amp; db == 'gdbm'</div><div class='del'>-    return false</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  if have_db_header</div><div class='del'>-    $defs.push('-DRUBYDBM_DB_HEADER')</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  have_gdbm_header = have_gdbm_header1 | have_gdbm_header2</div><div class='del'>-  if have_gdbm_header</div><div class='del'>-    $defs.push('-DRUBYDBM_GDBM_HEADER')</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # ndbm.h is provided by the original (4.3BSD) ndbm,</div><div class='del'>-  # Berkeley DB 1 in libc of 4.4BSD and</div><div class='del'>-  # ndbm compatibility layer of GDBM.</div><div class='del'>-  # So, try to check header/library mismatch.</div><div class='del'>-  #</div><div class='del'>-  # Several (possibly historical) distributions provides libndbm.</div><div class='del'>-  # It may be Berkeley DB, GDBM or 4.3BSD ndbm.</div><div class='del'>-  # So mismatch check is not performed for that.</div><div class='del'>-  # Note that libndbm is searched only when --with-dbm-type=ndbm is</div><div class='del'>-  # given for configure.</div><div class='del'>-  #</div><div class='del'>-  if hdr == 'ndbm.h' &amp;&amp; db != 'libc' &amp;&amp; db != 'ndbm'</div><div class='del'>-    if /\Adb\d?\z/ !~ db &amp;&amp; have_db_header</div><div class='del'>-      return false</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    if /\Agdbm/ !~ db &amp;&amp; have_gdbm_header</div><div class='del'>-      return false</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    if have_ndbm_header</div><div class='del'>-      return false</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Berkeley DB</div><div class='del'>-  have_func('db_version((int *)0, (int *)0, (int *)0)', hdr, hsearch)</div><div class='del'>-</div><div class='del'>-  # GDBM</div><div class='del'>-  have_gdbm_version = have_declared_libvar("gdbm_version", hdr, hsearch)</div><div class='del'>-  # gdbm_version is available since very old version (GDBM 1.5 at least).</div><div class='del'>-  # However it is not declared by ndbm.h until GDBM 1.8.3.</div><div class='del'>-  # We can't include both ndbm.h and gdbm.h because they both define datum type.</div><div class='del'>-  # ndbm.h includes gdbm.h and gdbm_version is declared since GDBM 1.9.</div><div class='del'>-  have_gdbm_version |= have_undeclared_libvar(["gdbm_version", "char *"], hdr, hsearch)</div><div class='del'>-</div><div class='del'>-  # QDBM</div><div class='del'>-  have_var("dpversion", hdr, hsearch)</div><div class='del'>-</div><div class='del'>-  # detect mismatch between GDBM header and other library.</div><div class='del'>-  # If GDBM header is included, GDBM library should be linked.</div><div class='del'>-  if have_gdbm_header &amp;&amp; !have_gdbm_version</div><div class='del'>-    return false</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # DBC type is required to disable error messages by Berkeley DB 2 or later.</div><div class='del'>-  if have_db_header</div><div class='del'>-    have_type("DBC", hdr, hsearch)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  if hsearch</div><div class='del'>-    $defs &lt;&lt; hsearch</div><div class='del'>-    @defs = hsearch</div><div class='del'>-  end</div><div class='del'>-  $defs &lt;&lt; '-DDBM_HDR="&lt;'+hdr+'&gt;"'</div><div class='del'>-  @found &lt;&lt; hdr</div><div class='del'>-</div><div class='del'>-  puts "header: #{hdr}"</div><div class='del'>-  puts "library: #{db}"</div><div class='del'>-</div><div class='del'>-  true</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-if dblib.any? {|db| headers.fetch(db, ["ndbm.h"]).any? {|hdr| headers.db_check(db, hdr) } }</div><div class='del'>-  have_header("cdefs.h")</div><div class='del'>-  have_header("sys/cdefs.h")</div><div class='del'>-  have_func("dbm_pagfno((DBM *)0)", headers.found, headers.defs)</div><div class='del'>-  have_func("dbm_dirfno((DBM *)0)", headers.found, headers.defs)</div><div class='del'>-  convertible_int("datum.dsize", headers.found, headers.defs)</div><div class='del'>-  checking_for("sizeof(DBM) is available") {</div><div class='del'>-    if try_compile(&lt;&lt;SRC)</div><div class='del'>-#ifdef HAVE_CDEFS_H</div><div class='del'>-# include &lt;cdefs.h&gt;</div><div class='del'>-#endif</div><div class='del'>-#ifdef HAVE_SYS_CDEFS_H</div><div class='del'>-# include &lt;sys/cdefs.h&gt;</div><div class='del'>-#endif</div><div class='del'>-#include DBM_HDR</div><div class='del'>-</div><div class='del'>-const int sizeof_DBM = (int)sizeof(DBM);</div><div class='del'>-SRC</div><div class='del'>-      $defs &lt;&lt; '-DDBM_SIZEOF_DBM=sizeof(DBM)'</div><div class='del'>-    else</div><div class='del'>-      $defs &lt;&lt; '-DDBM_SIZEOF_DBM=0'</div><div class='del'>-    end</div><div class='del'>-  }</div><div class='del'>-  create_makefile("dbm")</div><div class='del'>-end</div><div class='del'>-# :startdoc:</div><div class='head'>diff --git a/ext/digest/bubblebabble/bubblebabble.c b/ext/digest/bubblebabble/bubblebabble.c<br/>index 6557e43c9d..358ab416b9 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/bubblebabble/bubblebabble.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/bubblebabble/bubblebabble.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/bubblebabble/bubblebabble.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/bubblebabble/bubblebabble.c</a></div><div class='hunk'>@@ -37,7 +37,7 @@ bubblebabble_str_new(VALUE str_digest)</div><div class='ctx'>     digest_len = RSTRING_LEN(str_digest);</div><div class='ctx'> </div><div class='ctx'>     if ((LONG_MAX - 2) / 3 &lt; (digest_len | 1)) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "digest string too long");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "digest string too long");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     str = rb_str_new(0, (digest_len | 1) * 3 + 2);</div><div class='head'>diff --git a/ext/digest/bubblebabble/depend b/ext/digest/bubblebabble/depend<br/>index c0550f3180..38f5ddb1e2 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/bubblebabble/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/bubblebabble/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/bubblebabble/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/bubblebabble/depend</a></div><div class='hunk'>@@ -1,14 +1,163 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> bubblebabble.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> bubblebabble.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> bubblebabble.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> bubblebabble.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> bubblebabble.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+bubblebabble.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> bubblebabble.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> bubblebabble.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> bubblebabble.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> bubblebabble.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-bubblebabble.o: $(top_srcdir)/ext/digest/digest.h</div><div class='del'>-bubblebabble.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+bubblebabble.o: $(srcdir)/../digest.h</div><div class='ctx'> bubblebabble.o: bubblebabble.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/digest/bubblebabble/extconf.rb b/ext/digest/bubblebabble/extconf.rb<br/>index 21feed57fb..8fb001c61d 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/bubblebabble/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/bubblebabble/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/bubblebabble/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/bubblebabble/extconf.rb</a></div><div class='hunk'>@@ -1,6 +1,4 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> require 'mkmf'</div><div class='ctx'> </div><div class='del'>-$defs &lt;&lt; "-DHAVE_CONFIG_H"</div><div class='del'>-</div><div class='ctx'> create_makefile('digest/bubblebabble')</div><div class='head'>diff --git a/ext/digest/depend b/ext/digest/depend<br/>index 8e3b4691e8..5a84fd53ec 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/depend</a></div><div class='hunk'>@@ -1,14 +1,163 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> digest.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> digest.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+digest.o: $(hdrdir)/ruby.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> digest.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> digest.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> digest.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+digest.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> digest.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> digest.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> digest.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> digest.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-digest.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> digest.o: digest.c</div><div class='ctx'> digest.o: digest.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/digest/digest.c b/ext/digest/digest.c<br/>index 7d285cfe74..68837a674c 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/digest.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/digest.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/digest.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/digest.c</a></div><div class='hunk'>@@ -154,7 +154,7 @@ static void</div><div class='ctx'> rb_digest_instance_method_unimpl(VALUE self, const char *method)</div><div class='ctx'> {</div><div class='ctx'>     rb_raise(rb_eRuntimeError, "%s does not implement %s()",</div><div class='del'>-	     rb_obj_classname(self), method);</div><div class='add'>+             rb_obj_classname(self), method);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -383,8 +383,8 @@ rb_digest_instance_equal(VALUE self, VALUE other)</div><div class='ctx'>     StringValue(str2);</div><div class='ctx'> </div><div class='ctx'>     if (RSTRING_LEN(str1) == RSTRING_LEN(str2) &amp;&amp;</div><div class='del'>-	rb_str_cmp(str1, str2) == 0) {</div><div class='del'>-	return Qtrue;</div><div class='add'>+        rb_str_cmp(str1, str2) == 0) {</div><div class='add'>+        return Qtrue;</div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -406,7 +406,7 @@ rb_digest_instance_digest_length(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     /* never blindly assume that #digest() returns a string */</div><div class='ctx'>     StringValue(digest);</div><div class='del'>-    return INT2NUM(RSTRING_LEN(digest));</div><div class='add'>+    return LONG2NUM(RSTRING_LEN(digest));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -554,10 +554,22 @@ get_digest_base_metadata(VALUE klass)</div><div class='ctx'>     if (NIL_P(p))</div><div class='ctx'>         rb_raise(rb_eRuntimeError, "Digest::Base cannot be directly inherited in Ruby");</div><div class='ctx'> </div><div class='add'>+    if (!RB_TYPE_P(obj, T_DATA) || RTYPEDDATA_P(obj)) {</div><div class='add'>+      wrong:</div><div class='add'>+        if (p == klass)</div><div class='add'>+            rb_raise(rb_eTypeError, "%"PRIsVALUE"::metadata is not initialized properly",</div><div class='add'>+                     klass);</div><div class='add'>+        else</div><div class='add'>+            rb_raise(rb_eTypeError, "%"PRIsVALUE"(%"PRIsVALUE")::metadata is not initialized properly",</div><div class='add'>+                     klass, p);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'> #undef RUBY_UNTYPED_DATA_WARNING</div><div class='ctx'> #define RUBY_UNTYPED_DATA_WARNING 0</div><div class='ctx'>     Data_Get_Struct(obj, rb_digest_metadata_t, algo);</div><div class='ctx'> </div><div class='add'>+    if (!algo) goto wrong;</div><div class='add'>+</div><div class='ctx'>     switch (algo-&gt;api_version) {</div><div class='ctx'>       case 3:</div><div class='ctx'>         break;</div><div class='hunk'>@@ -573,6 +585,12 @@ get_digest_base_metadata(VALUE klass)</div><div class='ctx'>     return algo;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static rb_digest_metadata_t *</div><div class='add'>+get_digest_obj_metadata(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return get_digest_base_metadata(rb_obj_class(obj));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static const rb_data_type_t digest_type = {</div><div class='ctx'>     "digest",</div><div class='ctx'>     {0, RUBY_TYPED_DEFAULT_FREE, 0,},</div><div class='hunk'>@@ -584,7 +602,7 @@ static inline void</div><div class='ctx'> algo_init(const rb_digest_metadata_t *algo, void *pctx)</div><div class='ctx'> {</div><div class='ctx'>     if (algo-&gt;init_func(pctx) != 1) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "Digest initialization failed.");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "Digest initialization failed.");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -596,7 +614,7 @@ rb_digest_base_alloc(VALUE klass)</div><div class='ctx'>     void *pctx;</div><div class='ctx'> </div><div class='ctx'>     if (klass == rb_cDigest_Base) {</div><div class='del'>-	rb_raise(rb_eNotImpError, "Digest::Base is an abstract class");</div><div class='add'>+        rb_raise(rb_eNotImpError, "Digest::Base is an abstract class");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     algo = get_digest_base_metadata(klass);</div><div class='hunk'>@@ -619,9 +637,9 @@ rb_digest_base_copy(VALUE copy, VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     rb_check_frozen(copy);</div><div class='ctx'> </div><div class='del'>-    algo = get_digest_base_metadata(rb_obj_class(copy));</div><div class='del'>-    if (algo != get_digest_base_metadata(rb_obj_class(obj)))</div><div class='del'>-	rb_raise(rb_eTypeError, "different algorithms");</div><div class='add'>+    algo = get_digest_obj_metadata(copy);</div><div class='add'>+    if (algo != get_digest_obj_metadata(obj))</div><div class='add'>+        rb_raise(rb_eTypeError, "different algorithms");</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(obj, void, &amp;digest_type, pctx1);</div><div class='ctx'>     TypedData_Get_Struct(copy, void, &amp;digest_type, pctx2);</div><div class='hunk'>@@ -641,7 +659,7 @@ rb_digest_base_reset(VALUE self)</div><div class='ctx'>     rb_digest_metadata_t *algo;</div><div class='ctx'>     void *pctx;</div><div class='ctx'> </div><div class='del'>-    algo = get_digest_base_metadata(rb_obj_class(self));</div><div class='add'>+    algo = get_digest_obj_metadata(self);</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, void, &amp;digest_type, pctx);</div><div class='ctx'> </div><div class='hunk'>@@ -663,7 +681,7 @@ rb_digest_base_update(VALUE self, VALUE str)</div><div class='ctx'>     rb_digest_metadata_t *algo;</div><div class='ctx'>     void *pctx;</div><div class='ctx'> </div><div class='del'>-    algo = get_digest_base_metadata(rb_obj_class(self));</div><div class='add'>+    algo = get_digest_obj_metadata(self);</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, void, &amp;digest_type, pctx);</div><div class='ctx'> </div><div class='hunk'>@@ -682,7 +700,7 @@ rb_digest_base_finish(VALUE self)</div><div class='ctx'>     void *pctx;</div><div class='ctx'>     VALUE str;</div><div class='ctx'> </div><div class='del'>-    algo = get_digest_base_metadata(rb_obj_class(self));</div><div class='add'>+    algo = get_digest_obj_metadata(self);</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, void, &amp;digest_type, pctx);</div><div class='ctx'> </div><div class='hunk'>@@ -705,9 +723,9 @@ rb_digest_base_digest_length(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     rb_digest_metadata_t *algo;</div><div class='ctx'> </div><div class='del'>-    algo = get_digest_base_metadata(rb_obj_class(self));</div><div class='add'>+    algo = get_digest_obj_metadata(self);</div><div class='ctx'> </div><div class='del'>-    return INT2NUM(algo-&gt;digest_len);</div><div class='add'>+    return SIZET2NUM(algo-&gt;digest_len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -720,9 +738,9 @@ rb_digest_base_block_length(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     rb_digest_metadata_t *algo;</div><div class='ctx'> </div><div class='del'>-    algo = get_digest_base_metadata(rb_obj_class(self));</div><div class='add'>+    algo = get_digest_obj_metadata(self);</div><div class='ctx'> </div><div class='del'>-    return INT2NUM(algo-&gt;block_len);</div><div class='add'>+    return SIZET2NUM(algo-&gt;block_len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -735,12 +753,22 @@ Init_digest(void)</div><div class='ctx'>     id_digest          = rb_intern("digest");</div><div class='ctx'>     id_hexdigest       = rb_intern("hexdigest");</div><div class='ctx'>     id_digest_length   = rb_intern("digest_length");</div><div class='add'>+    id_metadata        = rb_id_metadata();</div><div class='add'>+    InitVM(digest);</div><div class='add'>+}</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+InitVM_digest(void)</div><div class='add'>+{</div><div class='ctx'>     /*</div><div class='ctx'>      * module Digest</div><div class='ctx'>      */</div><div class='ctx'>     rb_mDigest = rb_define_module("Digest");</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     /* module functions */</div><div class='ctx'>     rb_define_module_function(rb_mDigest, "hexencode", rb_digest_s_hexencode, 1);</div><div class='ctx'> </div><div class='hunk'>@@ -782,8 +810,6 @@ Init_digest(void)</div><div class='ctx'>     rb_define_singleton_method(rb_cDigest_Class, "digest", rb_digest_class_s_digest, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cDigest_Class, "hexdigest", rb_digest_class_s_hexdigest, -1);</div><div class='ctx'> </div><div class='del'>-    id_metadata = rb_intern("metadata");</div><div class='del'>-</div><div class='ctx'>     /* class Digest::Base &lt; Digest::Class */</div><div class='ctx'>     rb_cDigest_Base = rb_define_class_under(rb_mDigest, "Base", rb_cDigest_Class);</div><div class='ctx'> </div><div class='head'>diff --git a/ext/digest/digest.gemspec b/ext/digest/digest.gemspec<br/>new file mode 100644<br/>index 0000000000..4a01c5fde1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/digest/digest.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/digest.gemspec</a></div><div class='hunk'>@@ -0,0 +1,44 @@</div><div class='add'>+# coding: utf-8</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  version_module = Module.new do</div><div class='add'>+    version_rb = File.join(__dir__, "lib/digest/version.rb")</div><div class='add'>+    module_eval(File.read(version_rb), version_rb)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  spec.name          = "digest"</div><div class='add'>+  spec.version       = version_module::Digest::VERSION</div><div class='add'>+  spec.authors       = ["Akinori MUSHA"]</div><div class='add'>+  spec.email         = ["knu@idaemons.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Provides a framework for message digest libraries.}</div><div class='add'>+  spec.description   = %q{Provides a framework for message digest libraries.}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/digest"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.files = [</div><div class='add'>+    "LICENSE.txt",</div><div class='add'>+    "README.md",</div><div class='add'>+    *Dir["lib/digest{.rb,/**/*.rb}"],</div><div class='add'>+  ]</div><div class='add'>+</div><div class='add'>+  spec.required_ruby_version = "&gt;= 2.5.0"</div><div class='add'>+</div><div class='add'>+  spec.bindir        = "exe"</div><div class='add'>+  spec.executables   = []</div><div class='add'>+</div><div class='add'>+  if Gem::Platform === spec.platform and spec.platform =~ 'java' or RUBY_ENGINE == 'jruby'</div><div class='add'>+    spec.platform = 'java'</div><div class='add'>+</div><div class='add'>+    spec.files += Dir["ext/java/**/*.{rb,java}", "lib/digest.jar"]</div><div class='add'>+    spec.require_paths = %w[lib ext/java/org/jruby/ext/digest/lib]</div><div class='add'>+  else</div><div class='add'>+    spec.extensions = Dir["ext/digest/**/extconf.rb"]</div><div class='add'>+</div><div class='add'>+    spec.files += Dir["ext/digest/**/{*.{rb,c,h,sh},depend}"]</div><div class='add'>+    spec.require_paths = %w[lib]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  spec.metadata["msys2_mingw_dependencies"] = "openssl"</div><div class='add'>+end</div><div class='head'>diff --git a/ext/digest/digest.h b/ext/digest/digest.h<br/>index 30359ad348..8a4c5b7e4e 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/digest.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/digest.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/digest.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/digest.h</a></div><div class='hunk'>@@ -38,7 +38,7 @@ rb_digest_##name##_update(void *ctx, unsigned char *ptr, size_t size) \</div><div class='ctx'>     const unsigned int stride = 16384; \</div><div class='ctx'>  \</div><div class='ctx'>     for (; size &gt; stride; size -= stride, ptr += stride) { \</div><div class='del'>-	name##_Update(ctx, ptr, stride); \</div><div class='add'>+        name##_Update(ctx, ptr, stride); \</div><div class='ctx'>     } \</div><div class='ctx'>     if (size &gt; 0) name##_Update(ctx, ptr, size); \</div><div class='ctx'> }</div><div class='hunk'>@@ -49,3 +49,24 @@ rb_digest_##name##_finish(void *ctx, unsigned char *ptr) \</div><div class='ctx'> { \</div><div class='ctx'>     return name##_Final(ptr, ctx); \</div><div class='ctx'> }</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_digest_namespace(void)</div><div class='add'>+{</div><div class='add'>+    rb_require("digest");</div><div class='add'>+    return rb_path2class("Digest");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline ID</div><div class='add'>+rb_id_metadata(void)</div><div class='add'>+{</div><div class='add'>+    return rb_intern_const("metadata");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_digest_make_metadata(const rb_digest_metadata_t *meta)</div><div class='add'>+{</div><div class='add'>+#undef RUBY_UNTYPED_DATA_WARNING</div><div class='add'>+#define RUBY_UNTYPED_DATA_WARNING 0</div><div class='add'>+    return rb_obj_freeze(Data_Wrap_Struct(0, 0, 0, (void *)meta));</div><div class='add'>+}</div><div class='head'>diff --git a/ext/digest/digest_conf.rb b/ext/digest/digest_conf.rb<br/>index 915b61877f..36a7d75289 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/digest_conf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/digest_conf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/digest_conf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/digest_conf.rb</a></div><div class='hunk'>@@ -1,60 +1,9 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> </div><div class='del'>-# Copy from ext/openssl/extconf.rb</div><div class='del'>-def find_openssl_library</div><div class='del'>-  if $mswin || $mingw</div><div class='del'>-    # required for static OpenSSL libraries</div><div class='del'>-    have_library("gdi32") # OpenSSL &lt;= 1.0.2 (for RAND_screen())</div><div class='del'>-    have_library("crypt32")</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  return false unless have_header("openssl/ssl.h")</div><div class='del'>-</div><div class='del'>-  ret = have_library("crypto", "CRYPTO_malloc") &amp;&amp;</div><div class='del'>-    have_library("ssl", "SSL_new")</div><div class='del'>-  return ret if ret</div><div class='del'>-</div><div class='del'>-  if $mswin</div><div class='del'>-    # OpenSSL &gt;= 1.1.0: libcrypto.lib and libssl.lib.</div><div class='del'>-    if have_library("libcrypto", "CRYPTO_malloc") &amp;&amp;</div><div class='del'>-        have_library("libssl", "SSL_new")</div><div class='del'>-      return true</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # OpenSSL &lt;= 1.0.2: libeay32.lib and ssleay32.lib.</div><div class='del'>-    if have_library("libeay32", "CRYPTO_malloc") &amp;&amp;</div><div class='del'>-        have_library("ssleay32", "SSL_new")</div><div class='del'>-      return true</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # LibreSSL: libcrypto-##.lib and libssl-##.lib, where ## is the ABI version</div><div class='del'>-    # number. We have to find the version number out by scanning libpath.</div><div class='del'>-    libpath = $LIBPATH.dup</div><div class='del'>-    libpath |= ENV["LIB"].split(File::PATH_SEPARATOR)</div><div class='del'>-    libpath.map! { |d| d.tr(File::ALT_SEPARATOR, File::SEPARATOR) }</div><div class='del'>-</div><div class='del'>-    ret = [</div><div class='del'>-      ["crypto", "CRYPTO_malloc"],</div><div class='del'>-      ["ssl", "SSL_new"]</div><div class='del'>-    ].all? do |base, func|</div><div class='del'>-      result = false</div><div class='del'>-      libs = ["lib#{base}-[0-9][0-9]", "lib#{base}-[0-9][0-9][0-9]"]</div><div class='del'>-      libs = Dir.glob(libs.map{|l| libpath.map{|d| File.join(d, l + ".*")}}.flatten).map{|path| File.basename(path, ".*")}.uniq</div><div class='del'>-      libs.each do |lib|</div><div class='del'>-        result = have_library(lib, func)</div><div class='del'>-        break if result</div><div class='del'>-      end</div><div class='del'>-      result</div><div class='del'>-    end</div><div class='del'>-    return ret if ret</div><div class='del'>-  end</div><div class='del'>-  return false</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-def digest_conf(name, hdr = name, funcs = nil, types = nil)</div><div class='add'>+def digest_conf(name)</div><div class='ctx'>   unless with_config("bundled-#{name}")</div><div class='ctx'>     cc = with_config("common-digest")</div><div class='del'>-    if cc == true or /\b#{name}\b/ =~ cc</div><div class='add'>+    if cc != false or /\b#{name}\b/ =~ cc</div><div class='ctx'>       if File.exist?("#$srcdir/#{name}cc.h") and</div><div class='ctx'>         have_header("CommonCrypto/CommonDigest.h")</div><div class='ctx'>         $defs &lt;&lt; "-D#{name.upcase}_USE_COMMONDIGEST"</div><div class='hunk'>@@ -62,22 +11,6 @@ def digest_conf(name, hdr = name, funcs = nil, types = nil)</div><div class='ctx'>         return :commondigest</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='del'>-</div><div class='del'>-    dir_config("openssl")</div><div class='del'>-    pkg_config("openssl")</div><div class='del'>-    require File.expand_path('../../openssl/deprecation', __FILE__)</div><div class='del'>-    if find_openssl_library</div><div class='del'>-      funcs ||= name.upcase</div><div class='del'>-      funcs = Array(funcs)</div><div class='del'>-      types ||= funcs</div><div class='del'>-      hdr = "openssl/#{hdr}.h"</div><div class='del'>-      if funcs.all? {|func| OpenSSL.check_func("#{func}_Transform", hdr)} &amp;&amp;</div><div class='del'>-         types.all? {|type| have_type("#{type}_CTX", hdr)}</div><div class='del'>-        $defs &lt;&lt; "-D#{name.upcase}_USE_OPENSSL"</div><div class='del'>-        $headers &lt;&lt; "#{name}ossl.h"</div><div class='del'>-        return :ossl</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='ctx'>   end</div><div class='ctx'>   $objs &lt;&lt; "#{name}.#{$OBJEXT}"</div><div class='ctx'>   return</div><div class='head'>diff --git a/ext/digest/extconf.rb b/ext/digest/extconf.rb<br/>index a8c68850a2..0e5f08d794 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/extconf.rb</a></div><div class='hunk'>@@ -6,6 +6,6 @@ require "mkmf"</div><div class='ctx'> </div><div class='ctx'> $INSTALLFILES = {</div><div class='ctx'>   "digest.h" =&gt; "$(HDRDIR)"</div><div class='del'>-}</div><div class='add'>+} if $extmk</div><div class='ctx'> </div><div class='ctx'> create_makefile("digest")</div><div class='head'>diff --git a/ext/digest/lib/digest.rb b/ext/digest/lib/digest.rb<br/>index ba0637af32..e995adb450 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/lib/digest.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/lib/digest.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/lib/digest.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/lib/digest.rb</a></div><div class='hunk'>@@ -1,5 +1,19 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='del'>-require 'digest.so'</div><div class='add'>+</div><div class='add'>+if defined?(Digest) &amp;&amp;</div><div class='add'>+    /\A(?:2\.|3\.0\.[0-2]\z)/.match?(RUBY_VERSION) &amp;&amp;</div><div class='add'>+    caller_locations.any? { |l|</div><div class='add'>+      %r{/(rubygems/gem_runner|bundler/cli)\.rb}.match?(l.path)</div><div class='add'>+    }</div><div class='add'>+  # Before Ruby 3.0.3/3.1.0, the gem and bundle commands used to load</div><div class='add'>+  # the digest library before loading additionally installed gems, so</div><div class='add'>+  # you will get constant redefinition warnings and unexpected</div><div class='add'>+  # implementation overwriting if we proceed here.  Avoid that.</div><div class='add'>+  return</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+require 'digest/version'</div><div class='add'>+require 'digest/loader'</div><div class='ctx'> </div><div class='ctx'> module Digest</div><div class='ctx'>   # A mutex for Digest().</div><div class='hunk'>@@ -8,7 +22,7 @@ module Digest</div><div class='ctx'>   def self.const_missing(name) # :nodoc:</div><div class='ctx'>     case name</div><div class='ctx'>     when :SHA256, :SHA384, :SHA512</div><div class='del'>-      lib = 'digest/sha2.so'</div><div class='add'>+      lib = 'digest/sha2'</div><div class='ctx'>     else</div><div class='ctx'>       lib = File.join('digest', name.to_s.downcase)</div><div class='ctx'>     end</div><div class='head'>diff --git a/ext/digest/lib/digest/loader.rb b/ext/digest/lib/digest/loader.rb<br/>new file mode 100644<br/>index 0000000000..6b989e07be<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/digest/lib/digest/loader.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/lib/digest/loader.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require 'digest.so'</div><div class='head'>diff --git a/ext/digest/lib/digest/version.rb b/ext/digest/lib/digest/version.rb<br/>new file mode 100644<br/>index 0000000000..42fd7acf6e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/digest/lib/digest/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/lib/digest/version.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Digest</div><div class='add'>+  VERSION = "3.1.1"</div><div class='add'>+end</div><div class='head'>diff --git a/ext/digest/md5/depend b/ext/digest/md5/depend<br/>index 03c4cc8640..ea1ceec7fd 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/md5/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/md5/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/md5/depend</a></div><div class='hunk'>@@ -2,17 +2,330 @@ md5.o: md5.c md5.h $(srcdir)/../defs.h</div><div class='ctx'> md5init.o: $(LOCAL_HDRS)</div><div class='ctx'> </div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='add'>+md5.o: $(RUBY_EXTCONF_H)</div><div class='add'>+md5.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+md5.o: $(hdrdir)/ruby.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/st.h</div><div class='add'>+md5.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+md5.o: $(srcdir)/../defs.h</div><div class='add'>+md5.o: md5.c</div><div class='add'>+md5.o: md5.h</div><div class='ctx'> md5init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> md5init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> md5init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> md5init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> md5init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+md5init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> md5init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> md5init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> md5init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> md5init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-md5init.o: $(top_srcdir)/ext/digest/digest.h</div><div class='del'>-md5init.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+md5init.o: $(srcdir)/../defs.h</div><div class='add'>+md5init.o: $(srcdir)/../digest.h</div><div class='add'>+md5init.o: md5.h</div><div class='add'>+md5init.o: md5cc.h</div><div class='ctx'> md5init.o: md5init.c</div><div class='del'>-md5init.o: md5ossl.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/digest/md5/extconf.rb b/ext/digest/md5/extconf.rb<br/>index dead9a228b..01658e1b60 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/md5/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/md5/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/md5/extconf.rb</a></div><div class='hunk'>@@ -6,8 +6,6 @@</div><div class='ctx'> require "mkmf"</div><div class='ctx'> require File.expand_path("../../digest_conf", __FILE__)</div><div class='ctx'> </div><div class='del'>-$defs &lt;&lt; "-DHAVE_CONFIG_H"</div><div class='del'>-</div><div class='ctx'> $objs = [ "md5init.#{$OBJEXT}" ]</div><div class='ctx'> </div><div class='ctx'> digest_conf("md5")</div><div class='head'>diff --git a/ext/digest/md5/md5.c b/ext/digest/md5/md5.c<br/>index 19fe54a693..3a7fe2cdad 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/md5/md5.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/md5.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/md5/md5.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/md5/md5.c</a></div><div class='hunk'>@@ -225,7 +225,7 @@ md5_process(MD5_CTX *pms, const uint8_t *data /*[64]*/)</div><div class='ctx'>     uint32_t xbuf[16];</div><div class='ctx'>     const uint32_t *X;</div><div class='ctx'> </div><div class='del'>-    if (!((data - (const uint8_t *)0) &amp; 3)) {</div><div class='add'>+    if (!(((uintptr_t)data) &amp; 3)) {</div><div class='ctx'> 	/* data are properly aligned */</div><div class='ctx'> 	X = (const uint32_t *)data;</div><div class='ctx'>     } else {</div><div class='head'>diff --git a/ext/digest/md5/md5cc.h b/ext/digest/md5/md5cc.h<br/>index 35652eac6a..e34d7d5c11 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/md5/md5cc.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/md5cc.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/md5/md5cc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/md5/md5cc.h</a></div><div class='hunk'>@@ -1,6 +1,13 @@</div><div class='ctx'> #define COMMON_DIGEST_FOR_OPENSSL 1</div><div class='ctx'> #include &lt;CommonCrypto/CommonDigest.h&gt;</div><div class='ctx'> </div><div class='add'>+#ifdef __clang__</div><div class='add'>+# pragma clang diagnostic ignored "-Wdeprecated-declarations"</div><div class='add'>+/* Suppress deprecation warnings of MD5 from Xcode 11.1 */</div><div class='add'>+/* Although we know MD5 is deprecated too, provide just for backward</div><div class='add'>+ * compatibility, as well as Apple does. */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #define MD5_BLOCK_LENGTH	CC_MD5_BLOCK_BYTES</div><div class='ctx'> </div><div class='ctx'> static DEFINE_UPDATE_FUNC_FOR_UINT(MD5)</div><div class='head'>diff --git a/ext/digest/md5/md5init.c b/ext/digest/md5/md5init.c<br/>index fdd8b36c5d..52cba78bf1 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/md5/md5init.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/md5init.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/md5/md5init.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/md5/md5init.c</a></div><div class='hunk'>@@ -3,9 +3,7 @@</div><div class='ctx'> </div><div class='ctx'> #include &lt;ruby/ruby.h&gt;</div><div class='ctx'> #include "../digest.h"</div><div class='del'>-#if defined(MD5_USE_OPENSSL)</div><div class='del'>-#include "md5ossl.h"</div><div class='del'>-#elif defined(MD5_USE_COMMONDIGEST)</div><div class='add'>+#if defined(MD5_USE_COMMONDIGEST)</div><div class='ctx'> #include "md5cc.h"</div><div class='ctx'> #else</div><div class='ctx'> #include "md5.h"</div><div class='hunk'>@@ -51,18 +49,13 @@ Init_md5(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mDigest, cDigest_Base, cDigest_MD5;</div><div class='ctx'> </div><div class='del'>-    rb_require("digest");</div><div class='del'>-</div><div class='ctx'> #if 0</div><div class='ctx'>     mDigest = rb_define_module("Digest"); /* let rdoc know */</div><div class='ctx'> #endif</div><div class='del'>-    mDigest = rb_path2class("Digest");</div><div class='add'>+    mDigest = rb_digest_namespace();</div><div class='ctx'>     cDigest_Base = rb_path2class("Digest::Base");</div><div class='ctx'> </div><div class='ctx'>     cDigest_MD5 = rb_define_class_under(mDigest, "MD5", cDigest_Base);</div><div class='ctx'> </div><div class='del'>-#undef RUBY_UNTYPED_DATA_WARNING</div><div class='del'>-#define RUBY_UNTYPED_DATA_WARNING 0</div><div class='del'>-    rb_iv_set(cDigest_MD5, "metadata",</div><div class='del'>-	      Data_Wrap_Struct(0, 0, 0, (void *)&amp;md5));</div><div class='add'>+    rb_iv_set(cDigest_MD5, "metadata", rb_digest_make_metadata(&amp;md5));</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/digest/md5/md5ossl.h b/ext/digest/md5/md5ossl.h<br/>deleted file mode 100644<br/>index 94aa7ae77b..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/digest/md5/md5ossl.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/md5/md5ossl.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,15 +0,0 @@</div><div class='del'>-/* $Id$ */</div><div class='del'>-</div><div class='del'>-#ifndef MD5OSSL_H_INCLUDED</div><div class='del'>-#define MD5OSSL_H_INCLUDED</div><div class='del'>-</div><div class='del'>-#include &lt;stddef.h&gt;</div><div class='del'>-#include &lt;openssl/md5.h&gt;</div><div class='del'>-</div><div class='del'>-#define MD5_BLOCK_LENGTH	MD5_CBLOCK</div><div class='del'>-</div><div class='del'>-static DEFINE_FINISH_FUNC_FROM_FINAL(MD5)</div><div class='del'>-#undef MD5_Finish</div><div class='del'>-#define MD5_Finish rb_digest_MD5_finish</div><div class='del'>-</div><div class='del'>-#endif</div><div class='head'>diff --git a/ext/digest/rmd160/depend b/ext/digest/rmd160/depend<br/>index 2dfeecf034..3a0ed72732 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/rmd160/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/rmd160/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/rmd160/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/rmd160/depend</a></div><div class='hunk'>@@ -2,17 +2,329 @@ rmd160.o: rmd160.c rmd160.h $(srcdir)/../defs.h</div><div class='ctx'> rmd160init.o: $(LOCAL_HDRS)</div><div class='ctx'> </div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='add'>+rmd160.o: $(RUBY_EXTCONF_H)</div><div class='add'>+rmd160.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/st.h</div><div class='add'>+rmd160.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+rmd160.o: $(srcdir)/../defs.h</div><div class='add'>+rmd160.o: rmd160.c</div><div class='add'>+rmd160.o: rmd160.h</div><div class='ctx'> rmd160init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> rmd160init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> rmd160init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> rmd160init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> rmd160init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+rmd160init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> rmd160init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> rmd160init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> rmd160init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> rmd160init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-rmd160init.o: $(top_srcdir)/ext/digest/digest.h</div><div class='del'>-rmd160init.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+rmd160init.o: $(srcdir)/../defs.h</div><div class='add'>+rmd160init.o: $(srcdir)/../digest.h</div><div class='add'>+rmd160init.o: rmd160.h</div><div class='ctx'> rmd160init.o: rmd160init.c</div><div class='del'>-rmd160init.o: rmd160ossl.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/digest/rmd160/extconf.rb b/ext/digest/rmd160/extconf.rb<br/>index a02ba56169..8b894da0c8 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/rmd160/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/rmd160/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/rmd160/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/rmd160/extconf.rb</a></div><div class='hunk'>@@ -6,11 +6,13 @@</div><div class='ctx'> require "mkmf"</div><div class='ctx'> require File.expand_path("../../digest_conf", __FILE__)</div><div class='ctx'> </div><div class='del'>-$defs &lt;&lt; "-DNDEBUG" &lt;&lt; "-DHAVE_CONFIG_H"</div><div class='add'>+if try_static_assert("RUBY_API_VERSION_MAJOR &lt; 3", "ruby/version.h")</div><div class='add'>+  $defs &lt;&lt; "-DNDEBUG"</div><div class='add'>+end</div><div class='ctx'> </div><div class='ctx'> $objs = [ "rmd160init.#{$OBJEXT}" ]</div><div class='ctx'> </div><div class='del'>-digest_conf("rmd160", "ripemd", "RIPEMD160")</div><div class='add'>+digest_conf("rmd160")</div><div class='ctx'> </div><div class='ctx'> have_header("sys/cdefs.h")</div><div class='ctx'> </div><div class='head'>diff --git a/ext/digest/rmd160/rmd160init.c b/ext/digest/rmd160/rmd160init.c<br/>index 10d9370163..2ae81ec4d6 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/rmd160/rmd160init.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/rmd160/rmd160init.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/rmd160/rmd160init.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/rmd160/rmd160init.c</a></div><div class='hunk'>@@ -3,11 +3,7 @@</div><div class='ctx'> </div><div class='ctx'> #include &lt;ruby/ruby.h&gt;</div><div class='ctx'> #include "../digest.h"</div><div class='del'>-#if defined(RMD160_USE_OPENSSL)</div><div class='del'>-#include "rmd160ossl.h"</div><div class='del'>-#else</div><div class='ctx'> #include "rmd160.h"</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> static const rb_digest_metadata_t rmd160 = {</div><div class='ctx'>     RUBY_DIGEST_API_VERSION,</div><div class='hunk'>@@ -49,18 +45,13 @@ Init_rmd160(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mDigest, cDigest_Base, cDigest_RMD160;</div><div class='ctx'> </div><div class='del'>-    rb_require("digest");</div><div class='del'>-</div><div class='ctx'> #if 0</div><div class='ctx'>     mDigest = rb_define_module("Digest"); /* let rdoc know */</div><div class='ctx'> #endif</div><div class='del'>-    mDigest = rb_path2class("Digest");</div><div class='add'>+    mDigest = rb_digest_namespace();</div><div class='ctx'>     cDigest_Base = rb_path2class("Digest::Base");</div><div class='ctx'> </div><div class='ctx'>     cDigest_RMD160 = rb_define_class_under(mDigest, "RMD160", cDigest_Base);</div><div class='ctx'> </div><div class='del'>-#undef RUBY_UNTYPED_DATA_WARNING</div><div class='del'>-#define RUBY_UNTYPED_DATA_WARNING 0</div><div class='del'>-    rb_iv_set(cDigest_RMD160, "metadata",</div><div class='del'>-	      Data_Wrap_Struct(0, 0, 0, (void *)&amp;rmd160));</div><div class='add'>+    rb_iv_set(cDigest_RMD160, "metadata", rb_digest_make_metadata(&amp;rmd160));</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/digest/rmd160/rmd160ossl.h b/ext/digest/rmd160/rmd160ossl.h<br/>deleted file mode 100644<br/>index e6bf5ea8d0..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/digest/rmd160/rmd160ossl.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/rmd160/rmd160ossl.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,20 +0,0 @@</div><div class='del'>-/* $Id$ */</div><div class='del'>-</div><div class='del'>-#ifndef RMD160OSSL_H_INCLUDED</div><div class='del'>-#define RMD160OSSL_H_INCLUDED</div><div class='del'>-</div><div class='del'>-#include &lt;stddef.h&gt;</div><div class='del'>-#include &lt;openssl/ripemd.h&gt;</div><div class='del'>-</div><div class='del'>-#define RMD160_CTX	RIPEMD160_CTX</div><div class='del'>-</div><div class='del'>-#define RMD160_Init	RIPEMD160_Init</div><div class='del'>-#define RMD160_Update	RIPEMD160_Update</div><div class='del'>-</div><div class='del'>-#define RMD160_BLOCK_LENGTH		RIPEMD160_CBLOCK</div><div class='del'>-#define RMD160_DIGEST_LENGTH		RIPEMD160_DIGEST_LENGTH</div><div class='del'>-</div><div class='del'>-static DEFINE_FINISH_FUNC_FROM_FINAL(RIPEMD160)</div><div class='del'>-#define RMD160_Finish rb_digest_RIPEMD160_finish</div><div class='del'>-</div><div class='del'>-#endif</div><div class='head'>diff --git a/ext/digest/sha1/depend b/ext/digest/sha1/depend<br/>index 5139f44ff4..48aaef158b 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/sha1/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha1/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/sha1/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/sha1/depend</a></div><div class='hunk'>@@ -2,17 +2,330 @@ sha1.o: sha1.c sha1.h $(srcdir)/../defs.h</div><div class='ctx'> sha1init.o: $(LOCAL_HDRS)</div><div class='ctx'> </div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='add'>+sha1.o: $(RUBY_EXTCONF_H)</div><div class='add'>+sha1.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/st.h</div><div class='add'>+sha1.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+sha1.o: $(srcdir)/../defs.h</div><div class='add'>+sha1.o: sha1.c</div><div class='add'>+sha1.o: sha1.h</div><div class='ctx'> sha1init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> sha1init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> sha1init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> sha1init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> sha1init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+sha1init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> sha1init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> sha1init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> sha1init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> sha1init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-sha1init.o: $(top_srcdir)/ext/digest/digest.h</div><div class='del'>-sha1init.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+sha1init.o: $(srcdir)/../defs.h</div><div class='add'>+sha1init.o: $(srcdir)/../digest.h</div><div class='add'>+sha1init.o: sha1.h</div><div class='add'>+sha1init.o: sha1cc.h</div><div class='ctx'> sha1init.o: sha1init.c</div><div class='del'>-sha1init.o: sha1ossl.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/digest/sha1/extconf.rb b/ext/digest/sha1/extconf.rb<br/>index 0ff4158bef..7582cd9ab5 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/sha1/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha1/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/sha1/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/sha1/extconf.rb</a></div><div class='hunk'>@@ -6,11 +6,9 @@</div><div class='ctx'> require "mkmf"</div><div class='ctx'> require File.expand_path("../../digest_conf", __FILE__)</div><div class='ctx'> </div><div class='del'>-$defs &lt;&lt; "-DHAVE_CONFIG_H"</div><div class='del'>-</div><div class='ctx'> $objs = [ "sha1init.#{$OBJEXT}" ]</div><div class='ctx'> </div><div class='del'>-digest_conf("sha1", "sha", nil, %w[SHA])</div><div class='add'>+digest_conf("sha1")</div><div class='ctx'> </div><div class='ctx'> have_header("sys/cdefs.h")</div><div class='ctx'> </div><div class='head'>diff --git a/ext/digest/sha1/sha1init.c b/ext/digest/sha1/sha1init.c<br/>index e12d297699..f7047bc6d3 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/sha1/sha1init.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha1/sha1init.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/sha1/sha1init.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/sha1/sha1init.c</a></div><div class='hunk'>@@ -3,9 +3,7 @@</div><div class='ctx'> </div><div class='ctx'> #include &lt;ruby/ruby.h&gt;</div><div class='ctx'> #include "../digest.h"</div><div class='del'>-#if defined(SHA1_USE_OPENSSL)</div><div class='del'>-#include "sha1ossl.h"</div><div class='del'>-#elif defined(SHA1_USE_COMMONDIGEST)</div><div class='add'>+#if defined(SHA1_USE_COMMONDIGEST)</div><div class='ctx'> #include "sha1cc.h"</div><div class='ctx'> #else</div><div class='ctx'> #include "sha1.h"</div><div class='hunk'>@@ -53,18 +51,13 @@ Init_sha1(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mDigest, cDigest_Base, cDigest_SHA1;</div><div class='ctx'> </div><div class='del'>-    rb_require("digest");</div><div class='del'>-</div><div class='ctx'> #if 0</div><div class='ctx'>     mDigest = rb_define_module("Digest"); /* let rdoc know */</div><div class='ctx'> #endif</div><div class='del'>-    mDigest = rb_path2class("Digest");</div><div class='add'>+    mDigest = rb_digest_namespace();</div><div class='ctx'>     cDigest_Base = rb_path2class("Digest::Base");</div><div class='ctx'> </div><div class='ctx'>     cDigest_SHA1 = rb_define_class_under(mDigest, "SHA1", cDigest_Base);</div><div class='ctx'> </div><div class='del'>-#undef RUBY_UNTYPED_DATA_WARNING</div><div class='del'>-#define RUBY_UNTYPED_DATA_WARNING 0</div><div class='del'>-    rb_iv_set(cDigest_SHA1, "metadata",</div><div class='del'>-	      Data_Wrap_Struct(0, 0, 0, (void *)&amp;sha1));</div><div class='add'>+    rb_iv_set(cDigest_SHA1, "metadata", rb_digest_make_metadata(&amp;sha1));</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/digest/sha1/sha1ossl.h b/ext/digest/sha1/sha1ossl.h<br/>deleted file mode 100644<br/>index 599efe9a2f..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/digest/sha1/sha1ossl.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha1/sha1ossl.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,22 +0,0 @@</div><div class='del'>-/* $Id$ */</div><div class='del'>-</div><div class='del'>-#ifndef SHA1OSSL_H_INCLUDED</div><div class='del'>-#define SHA1OSSL_H_INCLUDED</div><div class='del'>-</div><div class='del'>-#include &lt;stddef.h&gt;</div><div class='del'>-#include &lt;openssl/sha.h&gt;</div><div class='del'>-</div><div class='del'>-#define SHA1_CTX	SHA_CTX</div><div class='del'>-</div><div class='del'>-#ifdef SHA_BLOCK_LENGTH</div><div class='del'>-#define SHA1_BLOCK_LENGTH	SHA_BLOCK_LENGTH</div><div class='del'>-#else</div><div class='del'>-#define SHA1_BLOCK_LENGTH	SHA_CBLOCK</div><div class='del'>-#endif</div><div class='del'>-#define SHA1_DIGEST_LENGTH	SHA_DIGEST_LENGTH</div><div class='del'>-</div><div class='del'>-static DEFINE_FINISH_FUNC_FROM_FINAL(SHA1)</div><div class='del'>-#undef SHA1_Finish</div><div class='del'>-#define SHA1_Finish rb_digest_SHA1_finish</div><div class='del'>-</div><div class='del'>-#endif</div><div class='head'>diff --git a/ext/digest/sha2/depend b/ext/digest/sha2/depend<br/>index 1152fe4dac..47a859068c 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/sha2/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/sha2/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/sha2/depend</a></div><div class='hunk'>@@ -2,17 +2,329 @@ sha2.o: sha2.c sha2.h $(srcdir)/../defs.h</div><div class='ctx'> sha2init.o: $(LOCAL_HDRS)</div><div class='ctx'> </div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='add'>+sha2.o: $(RUBY_EXTCONF_H)</div><div class='add'>+sha2.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/st.h</div><div class='add'>+sha2.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+sha2.o: $(srcdir)/../defs.h</div><div class='add'>+sha2.o: sha2.c</div><div class='add'>+sha2.o: sha2.h</div><div class='ctx'> sha2init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> sha2init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> sha2init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> sha2init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> sha2init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+sha2init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> sha2init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> sha2init.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> sha2init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> sha2init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-sha2init.o: $(top_srcdir)/ext/digest/digest.h</div><div class='del'>-sha2init.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+sha2init.o: $(srcdir)/../digest.h</div><div class='add'>+sha2init.o: sha2.h</div><div class='add'>+sha2init.o: sha2cc.h</div><div class='ctx'> sha2init.o: sha2init.c</div><div class='del'>-sha2init.o: sha2ossl.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/digest/sha2/extconf.rb b/ext/digest/sha2/extconf.rb<br/>index 5c7f76c7f3..3b772675e1 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/sha2/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/sha2/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/sha2/extconf.rb</a></div><div class='hunk'>@@ -6,11 +6,9 @@</div><div class='ctx'> require "mkmf"</div><div class='ctx'> require File.expand_path("../../digest_conf", __FILE__)</div><div class='ctx'> </div><div class='del'>-$defs &lt;&lt; "-DHAVE_CONFIG_H"</div><div class='del'>-</div><div class='ctx'> $objs = [ "sha2init.#{$OBJEXT}" ]</div><div class='ctx'> </div><div class='del'>-unless digest_conf("sha2", "sha", %w[SHA256 SHA512])</div><div class='add'>+unless digest_conf("sha2")</div><div class='ctx'>   have_type("u_int8_t")</div><div class='ctx'> end</div><div class='ctx'> </div><div class='head'>diff --git a/ext/digest/sha2/lib/sha2.rb b/ext/digest/sha2/lib/sha2.rb<br/>index 61a0734850..f17593a206 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/sha2/lib/sha2.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/lib/sha2.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/sha2/lib/sha2.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/sha2/lib/sha2.rb</a></div><div class='hunk'>@@ -11,7 +11,7 @@</div><div class='ctx'> #   $Id$</div><div class='ctx'> </div><div class='ctx'> require 'digest'</div><div class='del'>-require 'digest/sha2.so'</div><div class='add'>+require 'digest/sha2/loader'</div><div class='ctx'> </div><div class='ctx'> module Digest</div><div class='ctx'>   #</div><div class='head'>diff --git a/ext/digest/sha2/lib/sha2/loader.rb b/ext/digest/sha2/lib/sha2/loader.rb<br/>new file mode 100644<br/>index 0000000000..7d6d04a59c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/digest/sha2/lib/sha2/loader.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/sha2/lib/sha2/loader.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require 'digest/sha2.so'</div><div class='head'>diff --git a/ext/digest/sha2/sha2.c b/ext/digest/sha2/sha2.c<br/>index c86eab37a0..21d5acbe96 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/sha2/sha2.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/sha2.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/sha2/sha2.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/sha2/sha2.c</a></div><div class='hunk'>@@ -94,7 +94,7 @@</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Define the followingsha2_* types to types of the correct length on</div><div class='del'>- * the native archtecture.   Most BSD systems and Linux define u_intXX_t</div><div class='add'>+ * the native architecture.  Most BSD systems and Linux define u_intXX_t</div><div class='ctx'>  * types.  Machines with very recent ANSI C headers, can use the</div><div class='ctx'>  * uintXX_t definintions from inttypes.h by defining SHA2_USE_INTTYPES_H</div><div class='ctx'>  * during compile or in the sha.h header file.</div><div class='hunk'>@@ -128,7 +128,7 @@ typedef u_int64_t sha2_word64;	/* Exactly 8 bytes */</div><div class='ctx'> #define SHA512_SHORT_BLOCK_LENGTH	(SHA512_BLOCK_LENGTH - 16)</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#if (defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)) || defined(__GNUC__) || defined(_HPUX_SOURCE) || defined(__IBMC__)</div><div class='add'>+#if (defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)) || defined(__GNUC__) || defined(__IBMC__)</div><div class='ctx'> #define ULL(number)	number##ULL</div><div class='ctx'> #else</div><div class='ctx'> #define ULL(number)	(uint64_t)(number)</div><div class='hunk'>@@ -575,7 +575,7 @@ void SHA256_Update(SHA256_CTX* context, const sha2_byte *data, size_t len) {</div><div class='ctx'> 	usedspace = freespace = 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-int SHA256_Final(sha2_byte digest[], SHA256_CTX* context) {</div><div class='add'>+int SHA256_Final(sha2_byte digest[SHA256_DIGEST_LENGTH], SHA256_CTX* context) {</div><div class='ctx'> 	sha2_word32	*d = (sha2_word32*)digest;</div><div class='ctx'> 	unsigned int	usedspace;</div><div class='ctx'> </div><div class='hunk'>@@ -640,7 +640,7 @@ int SHA256_Final(sha2_byte digest[], SHA256_CTX* context) {</div><div class='ctx'> 	return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-char *SHA256_End(SHA256_CTX* context, char buffer[]) {</div><div class='add'>+char *SHA256_End(SHA256_CTX* context, char buffer[SHA256_DIGEST_STRING_LENGTH]) {</div><div class='ctx'> 	sha2_byte	digest[SHA256_DIGEST_LENGTH], *d = digest;</div><div class='ctx'> 	int		i;</div><div class='ctx'> </div><div class='hunk'>@@ -943,7 +943,7 @@ void SHA512_Last(SHA512_CTX* context) {</div><div class='ctx'> 	SHA512_Transform(context, (sha2_word64*)context-&gt;buffer);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-int SHA512_Final(sha2_byte digest[], SHA512_CTX* context) {</div><div class='add'>+int SHA512_Final(sha2_byte digest[SHA512_DIGEST_LENGTH], SHA512_CTX* context) {</div><div class='ctx'> 	sha2_word64	*d = (sha2_word64*)digest;</div><div class='ctx'> </div><div class='ctx'> 	/* Sanity check: */</div><div class='hunk'>@@ -973,7 +973,7 @@ int SHA512_Final(sha2_byte digest[], SHA512_CTX* context) {</div><div class='ctx'> 	return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-char *SHA512_End(SHA512_CTX* context, char buffer[]) {</div><div class='add'>+char *SHA512_End(SHA512_CTX* context, char buffer[SHA512_DIGEST_STRING_LENGTH]) {</div><div class='ctx'> 	sha2_byte	digest[SHA512_DIGEST_LENGTH], *d = digest;</div><div class='ctx'> 	int		i;</div><div class='ctx'> </div><div class='hunk'>@@ -1019,7 +1019,7 @@ void SHA384_Update(SHA384_CTX* context, const sha2_byte* data, size_t len) {</div><div class='ctx'> 	SHA512_Update((SHA512_CTX*)context, data, len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-int SHA384_Final(sha2_byte digest[], SHA384_CTX* context) {</div><div class='add'>+int SHA384_Final(sha2_byte digest[SHA384_DIGEST_LENGTH], SHA384_CTX* context) {</div><div class='ctx'> 	sha2_word64	*d = (sha2_word64*)digest;</div><div class='ctx'> </div><div class='ctx'> 	/* Sanity check: */</div><div class='hunk'>@@ -1049,7 +1049,7 @@ int SHA384_Final(sha2_byte digest[], SHA384_CTX* context) {</div><div class='ctx'> 	return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-char *SHA384_End(SHA384_CTX* context, char buffer[]) {</div><div class='add'>+char *SHA384_End(SHA384_CTX* context, char buffer[SHA384_DIGEST_STRING_LENGTH]) {</div><div class='ctx'> 	sha2_byte	digest[SHA384_DIGEST_LENGTH], *d = digest;</div><div class='ctx'> 	int		i;</div><div class='ctx'> </div><div class='head'>diff --git a/ext/digest/sha2/sha2init.c b/ext/digest/sha2/sha2init.c<br/>index 9fd8ece7fe..94cccf3feb 100644<br/>--- a/<a href='/ruby.git/tree/ext/digest/sha2/sha2init.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/sha2init.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/digest/sha2/sha2init.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/digest/sha2/sha2init.c</a></div><div class='hunk'>@@ -3,9 +3,7 @@</div><div class='ctx'> </div><div class='ctx'> #include &lt;ruby/ruby.h&gt;</div><div class='ctx'> #include "../digest.h"</div><div class='del'>-#if defined(SHA2_USE_OPENSSL)</div><div class='del'>-#include "sha2ossl.h"</div><div class='del'>-#elif defined(SHA2_USE_COMMONDIGEST)</div><div class='add'>+#if defined(SHA2_USE_COMMONDIGEST)</div><div class='ctx'> #include "sha2cc.h"</div><div class='ctx'> #else</div><div class='ctx'> #include "sha2.h"</div><div class='hunk'>@@ -35,27 +33,21 @@ void</div><div class='ctx'> Init_sha2(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mDigest, cDigest_Base;</div><div class='del'>-    ID id_metadata;</div><div class='add'>+    ID id_metadata = rb_id_metadata();</div><div class='ctx'> </div><div class='ctx'> #define DECLARE_ALGO_CLASS(bitlen) \</div><div class='ctx'>     VALUE cDigest_SHA##bitlen;</div><div class='ctx'> </div><div class='ctx'>     FOREACH_BITLEN(DECLARE_ALGO_CLASS)</div><div class='ctx'> </div><div class='del'>-    rb_require("digest");</div><div class='del'>-</div><div class='del'>-    id_metadata = rb_intern_const("metadata");</div><div class='del'>-</div><div class='del'>-    mDigest = rb_path2class("Digest");</div><div class='add'>+    mDigest = rb_digest_namespace();</div><div class='ctx'>     cDigest_Base = rb_path2class("Digest::Base");</div><div class='ctx'> </div><div class='ctx'> #define DEFINE_ALGO_CLASS(bitlen) \</div><div class='ctx'>     cDigest_SHA##bitlen = rb_define_class_under(mDigest, "SHA" #bitlen, cDigest_Base); \</div><div class='ctx'> \</div><div class='ctx'>     rb_ivar_set(cDigest_SHA##bitlen, id_metadata, \</div><div class='del'>-		Data_Wrap_Struct(0, 0, 0, (void *)&amp;sha##bitlen));</div><div class='add'>+                rb_digest_make_metadata(&amp;sha##bitlen));</div><div class='ctx'> </div><div class='del'>-#undef RUBY_UNTYPED_DATA_WARNING</div><div class='del'>-#define RUBY_UNTYPED_DATA_WARNING 0</div><div class='ctx'>     FOREACH_BITLEN(DEFINE_ALGO_CLASS)</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/digest/sha2/sha2ossl.h b/ext/digest/sha2/sha2ossl.h<br/>deleted file mode 100644<br/>index 8dd0530107..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/digest/sha2/sha2ossl.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/digest/sha2/sha2ossl.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,27 +0,0 @@</div><div class='del'>-#ifndef SHA2OSSL_H_INCLUDED</div><div class='del'>-#define SHA2OSSL_H_INCLUDED</div><div class='del'>-</div><div class='del'>-#include &lt;stddef.h&gt;</div><div class='del'>-#include &lt;openssl/sha.h&gt;</div><div class='del'>-</div><div class='del'>-#define SHA256_BLOCK_LENGTH	SHA256_CBLOCK</div><div class='del'>-#define SHA384_BLOCK_LENGTH	SHA512_CBLOCK</div><div class='del'>-#define SHA512_BLOCK_LENGTH	SHA512_CBLOCK</div><div class='del'>-</div><div class='del'>-#ifndef __DragonFly__</div><div class='del'>-#define SHA384_Final SHA512_Final</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-typedef SHA512_CTX SHA384_CTX;</div><div class='del'>-</div><div class='del'>-#undef SHA256_Finish</div><div class='del'>-#undef SHA384_Finish</div><div class='del'>-#undef SHA512_Finish</div><div class='del'>-#define SHA256_Finish rb_digest_SHA256_finish</div><div class='del'>-#define SHA384_Finish rb_digest_SHA384_finish</div><div class='del'>-#define SHA512_Finish rb_digest_SHA512_finish</div><div class='del'>-static DEFINE_FINISH_FUNC_FROM_FINAL(SHA256)</div><div class='del'>-static DEFINE_FINISH_FUNC_FROM_FINAL(SHA384)</div><div class='del'>-static DEFINE_FINISH_FUNC_FROM_FINAL(SHA512)</div><div class='del'>-</div><div class='del'>-#endif</div><div class='head'>diff --git a/ext/erb/escape/escape.c b/ext/erb/escape/escape.c<br/>new file mode 100644<br/>index 0000000000..67b2d1ef34<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/erb/escape/escape.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/erb/escape/escape.c</a></div><div class='hunk'>@@ -0,0 +1,95 @@</div><div class='add'>+#include "ruby.h"</div><div class='add'>+#include "ruby/encoding.h"</div><div class='add'>+</div><div class='add'>+static VALUE rb_cERB, rb_mEscape, rb_cCGI;</div><div class='add'>+static ID id_escapeHTML;</div><div class='add'>+</div><div class='add'>+#define HTML_ESCAPE_MAX_LEN 6</div><div class='add'>+</div><div class='add'>+static const struct {</div><div class='add'>+    uint8_t len;</div><div class='add'>+    char str[HTML_ESCAPE_MAX_LEN+1];</div><div class='add'>+} html_escape_table[UCHAR_MAX+1] = {</div><div class='add'>+#define HTML_ESCAPE(c, str) [c] = {rb_strlen_lit(str), str}</div><div class='add'>+    HTML_ESCAPE('\'', "&amp;#39;"),</div><div class='add'>+    HTML_ESCAPE('&amp;', "&amp;amp;"),</div><div class='add'>+    HTML_ESCAPE('"', "&amp;quot;"),</div><div class='add'>+    HTML_ESCAPE('&lt;', "&amp;lt;"),</div><div class='add'>+    HTML_ESCAPE('&gt;', "&amp;gt;"),</div><div class='add'>+#undef HTML_ESCAPE</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+preserve_original_state(VALUE orig, VALUE dest)</div><div class='add'>+{</div><div class='add'>+    rb_enc_associate(dest, rb_enc_get(orig));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline long</div><div class='add'>+escaped_length(VALUE str)</div><div class='add'>+{</div><div class='add'>+    const long len = RSTRING_LEN(str);</div><div class='add'>+    if (len &gt;= LONG_MAX / HTML_ESCAPE_MAX_LEN) {</div><div class='add'>+        ruby_malloc_size_overflow(len, HTML_ESCAPE_MAX_LEN);</div><div class='add'>+    }</div><div class='add'>+    return len * HTML_ESCAPE_MAX_LEN;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+optimized_escape_html(VALUE str)</div><div class='add'>+{</div><div class='add'>+    VALUE vbuf;</div><div class='add'>+    char *buf = ALLOCV_N(char, vbuf, escaped_length(str));</div><div class='add'>+    const char *cstr = RSTRING_PTR(str);</div><div class='add'>+    const char *end = cstr + RSTRING_LEN(str);</div><div class='add'>+</div><div class='add'>+    char *dest = buf;</div><div class='add'>+    while (cstr &lt; end) {</div><div class='add'>+        const unsigned char c = *cstr++;</div><div class='add'>+        uint8_t len = html_escape_table[c].len;</div><div class='add'>+        if (len) {</div><div class='add'>+            memcpy(dest, html_escape_table[c].str, len);</div><div class='add'>+            dest += len;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            *dest++ = c;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE escaped = str;</div><div class='add'>+    if (RSTRING_LEN(str) &lt; (dest - buf)) {</div><div class='add'>+        escaped = rb_str_new(buf, dest - buf);</div><div class='add'>+        preserve_original_state(str, escaped);</div><div class='add'>+    }</div><div class='add'>+    ALLOCV_END(vbuf);</div><div class='add'>+    return escaped;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// ERB::Util.html_escape is different from CGI.escapeHTML in the following two parts:</div><div class='add'>+//   * ERB::Util.html_escape converts an argument with #to_s first (only if it's not T_STRING)</div><div class='add'>+//   * ERB::Util.html_escape does not allocate a new string when nothing needs to be escaped</div><div class='add'>+static VALUE</div><div class='add'>+erb_escape_html(VALUE self, VALUE str)</div><div class='add'>+{</div><div class='add'>+    if (!RB_TYPE_P(str, T_STRING)) {</div><div class='add'>+        str = rb_convert_type(str, T_STRING, "String", "to_s");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (rb_enc_str_asciicompat_p(str)) {</div><div class='add'>+        return optimized_escape_html(str);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_funcall(rb_cCGI, id_escapeHTML, 1, str);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_escape(void)</div><div class='add'>+{</div><div class='add'>+    rb_cERB = rb_define_class("ERB", rb_cObject);</div><div class='add'>+    rb_mEscape = rb_define_module_under(rb_cERB, "Escape");</div><div class='add'>+    rb_define_module_function(rb_mEscape, "html_escape", erb_escape_html, 1);</div><div class='add'>+</div><div class='add'>+    rb_cCGI = rb_define_class("CGI", rb_cObject);</div><div class='add'>+    id_escapeHTML = rb_intern("escapeHTML");</div><div class='add'>+}</div><div class='head'>diff --git a/ext/erb/escape/extconf.rb b/ext/erb/escape/extconf.rb<br/>new file mode 100644<br/>index 0000000000..c1002548ad<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/erb/escape/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/erb/escape/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+require 'mkmf'</div><div class='add'>+</div><div class='add'>+if RUBY_ENGINE == 'truffleruby'</div><div class='add'>+  File.write('Makefile', dummy_makefile($srcdir).join)</div><div class='add'>+else</div><div class='add'>+  create_makefile 'erb/escape'</div><div class='add'>+end</div><div class='head'>diff --git a/ext/etc/depend b/ext/etc/depend<br/>index 2d986c5913..a541db6db6 100644<br/>--- a/<a href='/ruby.git/tree/ext/etc/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/etc/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/etc/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/etc/depend</a></div><div class='hunk'>@@ -5,10 +5,170 @@ constdefs.h : $(srcdir)/mkconstants.rb</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> etc.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> etc.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+etc.o: $(hdrdir)/ruby.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/atomic.h</div><div class='ctx'> etc.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> etc.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> etc.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> etc.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+etc.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> etc.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> etc.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> etc.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -16,7 +176,6 @@ etc.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> etc.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> etc.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> etc.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-etc.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> etc.o: constdefs.h</div><div class='ctx'> etc.o: etc.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/etc/etc.c b/ext/etc/etc.c<br/>index 2dd4ed673e..6c7145b40b 100644<br/>--- a/<a href='/ruby.git/tree/ext/etc/etc.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/etc/etc.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/etc/etc.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/etc/etc.c</a></div><div class='hunk'>@@ -47,13 +47,42 @@ static VALUE sGroup;</div><div class='ctx'> #define HAVE_UNAME 1</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef _WIN32</div><div class='del'>-char *getenv();</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stdlib.h&gt;</div><div class='add'>+#else</div><div class='add'>+# ifdef HAVE_STDLIB_H</div><div class='add'>+#  include &lt;stdlib.h&gt;</div><div class='add'>+# endif</div><div class='ctx'> #endif</div><div class='ctx'> char *getlogin();</div><div class='ctx'> </div><div class='add'>+#define RUBY_ETC_VERSION "1.4.2"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_RB_DEPRECATE_CONSTANT</div><div class='add'>+void rb_deprecate_constant(VALUE mod, const char *name);</div><div class='add'>+#else</div><div class='add'>+# define rb_deprecate_constant(mod,name) ((void)(mod),(void)(name))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #include "constdefs.h"</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RUBY_ATOMIC_H</div><div class='add'>+# include "ruby/atomic.h"</div><div class='add'>+#else</div><div class='add'>+typedef int rb_atomic_t;</div><div class='add'>+# define RUBY_ATOMIC_CAS(var, oldval, newval) \</div><div class='add'>+    ((var) == (oldval) ? ((var) = (newval), (oldval)) : (var))</div><div class='add'>+# define RUBY_ATOMIC_EXCHANGE(var, newval) \</div><div class='add'>+    atomic_exchange(&amp;var, newval)</div><div class='add'>+static inline rb_atomic_t</div><div class='add'>+atomic_exchange(volatile rb_atomic_t *var, rb_atomic_t newval)</div><div class='add'>+{</div><div class='add'>+    rb_atomic_t oldval = *var;</div><div class='add'>+    *var = newval;</div><div class='add'>+    return oldval;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> /* call-seq:</div><div class='ctx'>  *	getlogin	-&gt;  String</div><div class='ctx'>  *</div><div class='hunk'>@@ -98,7 +127,7 @@ static VALUE</div><div class='ctx'> safe_setup_str(const char *str)</div><div class='ctx'> {</div><div class='ctx'>     if (str == 0) str = "";</div><div class='del'>-    return rb_tainted_str_new2(str);</div><div class='add'>+    return rb_str_new2(str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -117,6 +146,12 @@ safe_setup_filesystem_str(const char *str)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_GETPWENT</div><div class='add'>+# ifdef __APPLE__</div><div class='add'>+#   define PW_TIME2VAL(t) INT2NUM((int)(t))</div><div class='add'>+# else</div><div class='add'>+#   define PW_TIME2VAL(t) TIMET2NUM(t)</div><div class='add'>+# endif</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> setup_passwd(struct passwd *pwd)</div><div class='ctx'> {</div><div class='hunk'>@@ -134,7 +169,7 @@ setup_passwd(struct passwd *pwd)</div><div class='ctx'> 			 safe_setup_filesystem_str(pwd-&gt;pw_dir),</div><div class='ctx'> 			 safe_setup_filesystem_str(pwd-&gt;pw_shell),</div><div class='ctx'> #ifdef HAVE_STRUCT_PASSWD_PW_CHANGE</div><div class='del'>-			 INT2NUM(pwd-&gt;pw_change),</div><div class='add'>+			 PW_TIME2VAL(pwd-&gt;pw_change),</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef HAVE_STRUCT_PASSWD_PW_QUOTA</div><div class='ctx'> 			 INT2NUM(pwd-&gt;pw_quota),</div><div class='hunk'>@@ -149,7 +184,7 @@ setup_passwd(struct passwd *pwd)</div><div class='ctx'> 			 safe_setup_locale_str(pwd-&gt;pw_comment),</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef HAVE_STRUCT_PASSWD_PW_EXPIRE</div><div class='del'>-			 INT2NUM(pwd-&gt;pw_expire),</div><div class='add'>+			 PW_TIME2VAL(pwd-&gt;pw_expire),</div><div class='ctx'> #endif</div><div class='ctx'> 			 0		/*dummy*/</div><div class='ctx'> 	);</div><div class='hunk'>@@ -159,7 +194,8 @@ setup_passwd(struct passwd *pwd)</div><div class='ctx'> /* call-seq:</div><div class='ctx'>  *	getpwuid(uid)	-&gt;  Passwd</div><div class='ctx'>  *</div><div class='del'>- * Returns the /etc/passwd information for the user with the given integer +uid+.</div><div class='add'>+ * Returns the &lt;tt&gt;/etc/passwd&lt;/tt&gt; information for the user with the given</div><div class='add'>+ * integer +uid+.</div><div class='ctx'>  *</div><div class='ctx'>  * The information is returned as a Passwd struct.</div><div class='ctx'>  *</div><div class='hunk'>@@ -198,8 +234,8 @@ etc_getpwuid(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> /* call-seq:</div><div class='ctx'>  *	getpwnam(name)	-&gt;  Passwd</div><div class='ctx'>  *</div><div class='del'>- * Returns the /etc/passwd information for the user with specified login</div><div class='del'>- * +name+.</div><div class='add'>+ * Returns the &lt;tt&gt;/etc/passwd&lt;/tt&gt; information for the user with specified</div><div class='add'>+ * login +name+.</div><div class='ctx'>  *</div><div class='ctx'>  * The information is returned as a Passwd struct.</div><div class='ctx'>  *</div><div class='hunk'>@@ -217,7 +253,6 @@ etc_getpwnam(VALUE obj, VALUE nam)</div><div class='ctx'>     struct passwd *pwd;</div><div class='ctx'>     const char *p = StringValueCStr(nam);</div><div class='ctx'> </div><div class='del'>-    rb_check_safe_obj(nam);</div><div class='ctx'>     pwd = getpwnam(p);</div><div class='ctx'>     if (pwd == 0) rb_raise(rb_eArgError, "can't find user for %"PRIsVALUE, nam);</div><div class='ctx'>     return setup_passwd(pwd);</div><div class='hunk'>@@ -227,17 +262,19 @@ etc_getpwnam(VALUE obj, VALUE nam)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_GETPWENT</div><div class='del'>-static int passwd_blocking = 0;</div><div class='add'>+static rb_atomic_t passwd_blocking;</div><div class='ctx'> static VALUE</div><div class='del'>-passwd_ensure(void)</div><div class='add'>+passwd_ensure(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     endpwent();</div><div class='del'>-    passwd_blocking = (int)Qfalse;</div><div class='add'>+    if (RUBY_ATOMIC_EXCHANGE(passwd_blocking, 0) != 1) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "unexpected passwd_blocking");</div><div class='add'>+    }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-passwd_iterate(void)</div><div class='add'>+passwd_iterate(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     struct passwd *pw;</div><div class='ctx'> </div><div class='hunk'>@@ -251,10 +288,9 @@ passwd_iterate(void)</div><div class='ctx'> static void</div><div class='ctx'> each_passwd(void)</div><div class='ctx'> {</div><div class='del'>-    if (passwd_blocking) {</div><div class='add'>+    if (RUBY_ATOMIC_CAS(passwd_blocking, 0, 1)) {</div><div class='ctx'> 	rb_raise(rb_eRuntimeError, "parallel passwd iteration");</div><div class='ctx'>     }</div><div class='del'>-    passwd_blocking = (int)Qtrue;</div><div class='ctx'>     rb_ensure(passwd_iterate, 0, passwd_ensure, 0);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -264,7 +300,7 @@ each_passwd(void)</div><div class='ctx'>  *	Etc.passwd			-&gt;  Passwd</div><div class='ctx'>  *</div><div class='ctx'>  * Provides a convenient Ruby iterator which executes a block for each entry</div><div class='del'>- * in the /etc/passwd file.</div><div class='add'>+ * in the &lt;tt&gt;/etc/passwd&lt;/tt&gt; file.</div><div class='ctx'>  *</div><div class='ctx'>  * The code block is passed an Passwd struct.</div><div class='ctx'>  *</div><div class='hunk'>@@ -299,13 +335,14 @@ etc_passwd(VALUE obj)</div><div class='ctx'>  *	Etc::Passwd.each { |struct| block }	-&gt;  Passwd</div><div class='ctx'>  *	Etc::Passwd.each			-&gt;  Enumerator</div><div class='ctx'>  *</div><div class='del'>- * Iterates for each entry in the /etc/passwd file if a block is given.</div><div class='add'>+ * Iterates for each entry in the &lt;tt&gt;/etc/passwd&lt;/tt&gt; file if a block is</div><div class='add'>+ * given.</div><div class='ctx'>  *</div><div class='ctx'>  * If no block is given, returns the Enumerator.</div><div class='ctx'>  *</div><div class='ctx'>  * The code block is passed an Passwd struct.</div><div class='ctx'>  *</div><div class='del'>- * See ::getpwent above for details.</div><div class='add'>+ * See Etc.getpwent above for details.</div><div class='ctx'>  *</div><div class='ctx'>  * Example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -329,8 +366,8 @@ etc_each_passwd(VALUE obj)</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* Resets the process of reading the /etc/passwd file, so that the next call</div><div class='del'>- * to ::getpwent will return the first entry again.</div><div class='add'>+/* Resets the process of reading the &lt;tt&gt;/etc/passwd&lt;/tt&gt; file, so that the</div><div class='add'>+ * next call to ::getpwent will return the first entry again.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> etc_setpwent(VALUE obj)</div><div class='hunk'>@@ -341,8 +378,8 @@ etc_setpwent(VALUE obj)</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* Ends the process of scanning through the /etc/passwd file begun with</div><div class='del'>- * ::getpwent, and closes the file.</div><div class='add'>+/* Ends the process of scanning through the &lt;tt&gt;/etc/passwd&lt;/tt&gt; file begun</div><div class='add'>+ * with ::getpwent, and closes the file.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> etc_endpwent(VALUE obj)</div><div class='hunk'>@@ -353,7 +390,7 @@ etc_endpwent(VALUE obj)</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* Returns an entry from the /etc/passwd file.</div><div class='add'>+/* Returns an entry from the &lt;tt&gt;/etc/passwd&lt;/tt&gt; file.</div><div class='ctx'>  *</div><div class='ctx'>  * The first time it is called it opens the file and returns the first entry;</div><div class='ctx'>  * each successive call returns the next entry, or +nil+ if the end of the file</div><div class='hunk'>@@ -404,7 +441,7 @@ setup_group(struct group *grp)</div><div class='ctx'>  *	getgrgid(group_id)  -&gt;	Group</div><div class='ctx'>  *</div><div class='ctx'>  * Returns information about the group with specified integer +group_id+,</div><div class='del'>- * as found in /etc/group.</div><div class='add'>+ * as found in &lt;tt&gt;/etc/group&lt;/tt&gt;.</div><div class='ctx'>  *</div><div class='ctx'>  * The information is returned as a Group struct.</div><div class='ctx'>  *</div><div class='hunk'>@@ -442,7 +479,7 @@ etc_getgrgid(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>  *	getgrnam(name)	-&gt;  Group</div><div class='ctx'>  *</div><div class='ctx'>  * Returns information about the group with specified +name+, as found in</div><div class='del'>- * /etc/group.</div><div class='add'>+ * &lt;tt&gt;/etc/group&lt;/tt&gt;.</div><div class='ctx'>  *</div><div class='ctx'>  * The information is returned as a Group struct.</div><div class='ctx'>  *</div><div class='hunk'>@@ -461,7 +498,6 @@ etc_getgrnam(VALUE obj, VALUE nam)</div><div class='ctx'>     struct group *grp;</div><div class='ctx'>     const char *p = StringValueCStr(nam);</div><div class='ctx'> </div><div class='del'>-    rb_check_safe_obj(nam);</div><div class='ctx'>     grp = getgrnam(p);</div><div class='ctx'>     if (grp == 0) rb_raise(rb_eArgError, "can't find group for %"PRIsVALUE, nam);</div><div class='ctx'>     return setup_group(grp);</div><div class='hunk'>@@ -471,18 +507,20 @@ etc_getgrnam(VALUE obj, VALUE nam)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_GETGRENT</div><div class='del'>-static int group_blocking = 0;</div><div class='add'>+static rb_atomic_t group_blocking;</div><div class='ctx'> static VALUE</div><div class='del'>-group_ensure(void)</div><div class='add'>+group_ensure(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     endgrent();</div><div class='del'>-    group_blocking = (int)Qfalse;</div><div class='add'>+    if (RUBY_ATOMIC_EXCHANGE(group_blocking, 0) != 1) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "unexpected group_blocking");</div><div class='add'>+    }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-group_iterate(void)</div><div class='add'>+group_iterate(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     struct group *pw;</div><div class='ctx'> </div><div class='hunk'>@@ -496,16 +534,15 @@ group_iterate(void)</div><div class='ctx'> static void</div><div class='ctx'> each_group(void)</div><div class='ctx'> {</div><div class='del'>-    if (group_blocking) {</div><div class='add'>+    if (RUBY_ATOMIC_CAS(group_blocking, 0, 1)) {</div><div class='ctx'> 	rb_raise(rb_eRuntimeError, "parallel group iteration");</div><div class='ctx'>     }</div><div class='del'>-    group_blocking = (int)Qtrue;</div><div class='ctx'>     rb_ensure(group_iterate, 0, group_ensure, 0);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> /* Provides a convenient Ruby iterator which executes a block for each entry</div><div class='del'>- * in the /etc/group file.</div><div class='add'>+ * in the &lt;tt&gt;/etc/group&lt;/tt&gt; file.</div><div class='ctx'>  *</div><div class='ctx'>  * The code block is passed an Group struct.</div><div class='ctx'>  *</div><div class='hunk'>@@ -541,7 +578,8 @@ etc_group(VALUE obj)</div><div class='ctx'>  *	Etc::Group.each { |group| block }   -&gt;	obj</div><div class='ctx'>  *	Etc::Group.each			    -&gt;	Enumerator</div><div class='ctx'>  *</div><div class='del'>- * Iterates for each entry in the /etc/group file if a block is given.</div><div class='add'>+ * Iterates for each entry in the &lt;tt&gt;/etc/group&lt;/tt&gt; file if a block is</div><div class='add'>+ * given.</div><div class='ctx'>  *</div><div class='ctx'>  * If no block is given, returns the Enumerator.</div><div class='ctx'>  *</div><div class='hunk'>@@ -568,8 +606,8 @@ etc_each_group(VALUE obj)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-/* Resets the process of reading the /etc/group file, so that the next call</div><div class='del'>- * to ::getgrent will return the first entry again.</div><div class='add'>+/* Resets the process of reading the &lt;tt&gt;/etc/group&lt;/tt&gt; file, so that the</div><div class='add'>+ * next call to ::getgrent will return the first entry again.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> etc_setgrent(VALUE obj)</div><div class='hunk'>@@ -580,8 +618,8 @@ etc_setgrent(VALUE obj)</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* Ends the process of scanning through the /etc/group file begun by</div><div class='del'>- * ::getgrent, and closes the file.</div><div class='add'>+/* Ends the process of scanning through the &lt;tt&gt;/etc/group&lt;/tt&gt; file begun</div><div class='add'>+ * by ::getgrent, and closes the file.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> etc_endgrent(VALUE obj)</div><div class='hunk'>@@ -592,7 +630,7 @@ etc_endgrent(VALUE obj)</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* Returns an entry from the /etc/group file.</div><div class='add'>+/* Returns an entry from the &lt;tt&gt;/etc/group&lt;/tt&gt; file.</div><div class='ctx'>  *</div><div class='ctx'>  * The first time it is called it opens the file and returns the first entry;</div><div class='ctx'>  * each successive call returns the next entry, or +nil+ if the end of the file</div><div class='hunk'>@@ -626,9 +664,11 @@ VALUE rb_w32_conv_from_wchar(const WCHAR *wstr, rb_encoding *enc);</div><div class='ctx'> /*</div><div class='ctx'>  * Returns system configuration directory.</div><div class='ctx'>  *</div><div class='del'>- * This is typically "/etc", but is modified by the prefix used when Ruby was</div><div class='del'>- * compiled. For example, if Ruby is built and installed in /usr/local,</div><div class='del'>- * returns "/usr/local/etc" on other platforms than Windows.</div><div class='add'>+ * This is typically &lt;code&gt;"/etc"&lt;/code&gt;, but is modified by the prefix used</div><div class='add'>+ * when Ruby was compiled. For example, if Ruby is built and installed in</div><div class='add'>+ * &lt;tt&gt;/usr/local&lt;/tt&gt;, returns &lt;code&gt;"/usr/local/etc"&lt;/code&gt; on other</div><div class='add'>+ * platforms than Windows.</div><div class='add'>+ *</div><div class='ctx'>  * On Windows, this always returns the directory provided by the system.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -645,7 +685,7 @@ etc_sysconfdir(VALUE obj)</div><div class='ctx'>  * Returns system temporary directory; typically "/tmp".</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-etc_systmpdir(void)</div><div class='add'>+etc_systmpdir(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE tmpdir;</div><div class='ctx'> #ifdef _WIN32</div><div class='hunk'>@@ -677,7 +717,10 @@ etc_systmpdir(void)</div><div class='ctx'>     }</div><div class='ctx'> # endif</div><div class='ctx'> #endif</div><div class='add'>+#ifndef RB_PASS_KEYWORDS</div><div class='add'>+    /* untaint on Ruby &lt; 2.7 */</div><div class='ctx'>     FL_UNSET(tmpdir, FL_TAINT);</div><div class='add'>+#endif</div><div class='ctx'>     return tmpdir;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -754,9 +797,6 @@ etc_uname(VALUE obj)</div><div class='ctx'> # ifndef PROCESSOR_ARCHITECTURE_AMD64</div><div class='ctx'> #   define PROCESSOR_ARCHITECTURE_AMD64 9</div><div class='ctx'> # endif</div><div class='del'>-# ifndef PROCESSOR_ARCHITECTURE_IA64</div><div class='del'>-#   define PROCESSOR_ARCHITECTURE_IA64 6</div><div class='del'>-# endif</div><div class='ctx'> # ifndef PROCESSOR_ARCHITECTURE_INTEL</div><div class='ctx'> #   define PROCESSOR_ARCHITECTURE_INTEL 0</div><div class='ctx'> # endif</div><div class='hunk'>@@ -768,9 +808,6 @@ etc_uname(VALUE obj)</div><div class='ctx'>       case PROCESSOR_ARCHITECTURE_ARM:</div><div class='ctx'> 	mach = "ARM";</div><div class='ctx'> 	break;</div><div class='del'>-      case PROCESSOR_ARCHITECTURE_IA64:</div><div class='del'>-	mach = "IA64";</div><div class='del'>-	break;</div><div class='ctx'>       case PROCESSOR_ARCHITECTURE_INTEL:</div><div class='ctx'> 	mach = "x86";</div><div class='ctx'> 	break;</div><div class='hunk'>@@ -929,11 +966,13 @@ io_pathconf(VALUE io, VALUE arg)</div><div class='ctx'> static int</div><div class='ctx'> etc_nprocessors_affin(void)</div><div class='ctx'> {</div><div class='del'>-    cpu_set_t *cpuset;</div><div class='add'>+    cpu_set_t *cpuset, cpuset_buff[1024 / sizeof(cpu_set_t)];</div><div class='ctx'>     size_t size;</div><div class='ctx'>     int ret;</div><div class='ctx'>     int n;</div><div class='ctx'> </div><div class='add'>+    CPU_ZERO_S(sizeof(cpuset_buff), cpuset_buff);</div><div class='add'>+</div><div class='ctx'>     /*</div><div class='ctx'>      * XXX:</div><div class='ctx'>      * man page says CPU_ALLOC takes number of cpus. But it is not accurate</div><div class='hunk'>@@ -952,13 +991,12 @@ etc_nprocessors_affin(void)</div><div class='ctx'>      */</div><div class='ctx'>     for (n=64; n &lt;= 16384; n *= 2) {</div><div class='ctx'> 	size = CPU_ALLOC_SIZE(n);</div><div class='del'>-	if (size &gt;= 1024) {</div><div class='add'>+	if (size &gt;= sizeof(cpuset_buff)) {</div><div class='ctx'> 	    cpuset = xcalloc(1, size);</div><div class='ctx'> 	    if (!cpuset)</div><div class='ctx'> 		return -1;</div><div class='ctx'> 	} else {</div><div class='del'>-	    cpuset = alloca(size);</div><div class='del'>-	    CPU_ZERO_S(size, cpuset);</div><div class='add'>+	    cpuset = cpuset_buff;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='ctx'> 	ret = sched_getaffinity(0, size, cpuset);</div><div class='hunk'>@@ -967,10 +1005,10 @@ etc_nprocessors_affin(void)</div><div class='ctx'> 	    ret = CPU_COUNT_S(size, cpuset);</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-	if (size &gt;= 1024) {</div><div class='add'>+	if (size &gt;= sizeof(cpuset_buff)) {</div><div class='ctx'> 	    xfree(cpuset);</div><div class='ctx'> 	}</div><div class='del'>-	if (ret &gt; 0) {</div><div class='add'>+	if (ret &gt; 0 || errno != EINVAL) {</div><div class='ctx'> 	    return ret;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='hunk'>@@ -1038,11 +1076,12 @@ etc_nprocessors(VALUE obj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * The Etc module provides access to information typically stored in</div><div class='del'>- * files in the /etc directory on Unix systems.</div><div class='add'>+ * files in the &lt;tt&gt;/etc&lt;/tt&gt; directory on Unix systems.</div><div class='ctx'>  *</div><div class='ctx'>  * The information accessible consists of the information found in the</div><div class='del'>- * /etc/passwd and /etc/group files, plus information about the system's</div><div class='del'>- * temporary directory (/tmp) and configuration directory (/etc).</div><div class='add'>+ * &lt;tt&gt;/etc/passwd&lt;/tt&gt; and &lt;tt&gt;/etc/group&lt;/tt&gt; files, plus information</div><div class='add'>+ * about the system's temporary directory (&lt;tt&gt;/tmp&lt;/tt&gt;) and configuration</div><div class='add'>+ * directory (&lt;tt&gt;/etc&lt;/tt&gt;).</div><div class='ctx'>  *</div><div class='ctx'>  * The Etc module provides a more reliable way to access information about</div><div class='ctx'>  * the logged in user than environment variables such as +$USER+.</div><div class='hunk'>@@ -1067,7 +1106,11 @@ Init_etc(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE mEtc;</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    RB_EXT_RACTOR_SAFE(true);</div><div class='add'>+#endif</div><div class='ctx'>     mEtc = rb_define_module("Etc");</div><div class='add'>+    rb_define_const(mEtc, "VERSION", rb_str_new_cstr(RUBY_ETC_VERSION));</div><div class='ctx'>     init_constants(mEtc);</div><div class='ctx'> </div><div class='ctx'>     rb_define_module_function(mEtc, "getlogin", etc_getlogin, 0);</div><div class='hunk'>@@ -1125,16 +1168,18 @@ Init_etc(void)</div><div class='ctx'> #endif</div><div class='ctx'> 				      NULL);</div><div class='ctx'> #if 0</div><div class='del'>-    /* Define-const: Passwd</div><div class='add'>+    /*</div><div class='add'>+     * Passwd is a placeholder Struct for user database on Unix systems.</div><div class='ctx'>      *</div><div class='del'>-     * Passwd is a Struct that contains the following members:</div><div class='add'>+     * === The struct contains the following members</div><div class='ctx'>      *</div><div class='ctx'>      * name::</div><div class='ctx'>      *	    contains the short login name of the user as a String.</div><div class='ctx'>      * passwd::</div><div class='ctx'>      *	    contains the encrypted password of the user as a String.</div><div class='del'>-     *	    an 'x' is returned if shadow passwords are in use. An '*' is returned</div><div class='del'>-     *      if the user cannot log in using a password.</div><div class='add'>+     *	    an &lt;code&gt;'x'&lt;/code&gt; is returned if shadow passwords are in</div><div class='add'>+     *	    use. An &lt;code&gt;'*'&lt;/code&gt; is returned if the user cannot</div><div class='add'>+     *	    log in using a password.</div><div class='ctx'>      * uid::</div><div class='ctx'>      *	    contains the integer user ID (uid) of the user.</div><div class='ctx'>      * gid::</div><div class='hunk'>@@ -1144,29 +1189,27 @@ Init_etc(void)</div><div class='ctx'>      * shell::</div><div class='ctx'>      *	    contains the path to the login shell of the user as a String.</div><div class='ctx'>      *</div><div class='del'>-     * === The following members below are optional, and must be compiled with special flags:</div><div class='add'>+     * === The following members below are system-dependent</div><div class='ctx'>      *</div><div class='ctx'>      * gecos::</div><div class='ctx'>      *     contains a longer String description of the user, such as</div><div class='ctx'>      *	   a full name. Some Unix systems provide structured information in the</div><div class='ctx'>      *     gecos field, but this is system-dependent.</div><div class='del'>-     *     must be compiled with +HAVE_STRUCT_PASSWD_PW_GECOS+</div><div class='ctx'>      * change::</div><div class='del'>-     *     password change time(integer) must be compiled with +HAVE_STRUCT_PASSWD_PW_CHANGE+</div><div class='add'>+     *     password change time(integer).</div><div class='ctx'>      * quota::</div><div class='del'>-     *     quota value(integer) must be compiled with +HAVE_STRUCT_PASSWD_PW_QUOTA+</div><div class='add'>+     *     quota value(integer).</div><div class='ctx'>      * age::</div><div class='del'>-     *     password age(integer) must be compiled with +HAVE_STRUCT_PASSWD_PW_AGE+</div><div class='add'>+     *     password age(integer).</div><div class='ctx'>      * class::</div><div class='del'>-     *     user access class(string) must be compiled with +HAVE_STRUCT_PASSWD_PW_CLASS+</div><div class='add'>+     *     user access class(string).</div><div class='ctx'>      * comment::</div><div class='del'>-     *     comment(string) must be compiled with +HAVE_STRUCT_PASSWD_PW_COMMENT+</div><div class='add'>+     *     comment(string).</div><div class='ctx'>      * expire::</div><div class='del'>-     *	    account expiration time(integer) must be compiled with +HAVE_STRUCT_PASSWD_PW_EXPIRE+</div><div class='add'>+     *	    account expiration time(integer).</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mEtc, "Passwd", sPasswd);</div><div class='add'>+    sPasswd = rb_define_class_under(mEtc, "Passwd", rb_cStruct);</div><div class='ctx'> #endif</div><div class='del'>-    rb_define_const(rb_cStruct, "Passwd", sPasswd); /* deprecated name */</div><div class='ctx'>     rb_extend_object(sPasswd, rb_mEnumerable);</div><div class='ctx'>     rb_define_singleton_method(sPasswd, "each", etc_each_passwd, 0);</div><div class='ctx'> </div><div class='hunk'>@@ -1178,30 +1221,27 @@ Init_etc(void)</div><div class='ctx'> 				    "gid", "mem", NULL);</div><div class='ctx'> </div><div class='ctx'> #if 0</div><div class='del'>-    /* Define-const: Group</div><div class='del'>-     *</div><div class='del'>-     * Group is a Struct that is only available when compiled with +HAVE_GETGRENT+.</div><div class='add'>+    /*</div><div class='add'>+     * Group is a placeholder Struct for user group database on Unix systems.</div><div class='ctx'>      *</div><div class='del'>-     * The struct contains the following members:</div><div class='add'>+     * === The struct contains the following members</div><div class='ctx'>      *</div><div class='ctx'>      * name::</div><div class='ctx'>      *	    contains the name of the group as a String.</div><div class='ctx'>      * passwd::</div><div class='del'>-     *	    contains the encrypted password as a String. An 'x' is</div><div class='add'>+     *	    contains the encrypted password as a String. An &lt;code&gt;'x'&lt;/code&gt; is</div><div class='ctx'>      *	    returned if password access to the group is not available; an empty</div><div class='ctx'>      *	    string is returned if no password is needed to obtain membership of</div><div class='ctx'>      *	    the group.</div><div class='del'>-     *</div><div class='del'>-     *	    Must be compiled with +HAVE_STRUCT_GROUP_GR_PASSWD+.</div><div class='add'>+     *	    This is system-dependent.</div><div class='ctx'>      * gid::</div><div class='ctx'>      *	    contains the group's numeric ID as an integer.</div><div class='ctx'>      * mem::</div><div class='ctx'>      *	    is an Array of Strings containing the short login names of the</div><div class='ctx'>      *	    members of the group.</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mEtc, "Group", sGroup);</div><div class='add'>+    sGroup = rb_define_class_under(mEtc, "Group", rb_cStruct);</div><div class='ctx'> #endif</div><div class='del'>-    rb_define_const(rb_cStruct, "Group", sGroup); /* deprecated name */</div><div class='ctx'>     rb_extend_object(sGroup, rb_mEnumerable);</div><div class='ctx'>     rb_define_singleton_method(sGroup, "each", etc_each_group, 0);</div><div class='ctx'> #endif</div><div class='head'>diff --git a/ext/etc/etc.gemspec b/ext/etc/etc.gemspec<br/>index 322fd41e8b..98c6d66faa 100644<br/>--- a/<a href='/ruby.git/tree/ext/etc/etc.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/etc/etc.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/etc/etc.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/etc/etc.gemspec</a></div><div class='hunk'>@@ -1,40 +1,43 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='add'>+version = ["", "ext/etc/"].find do |dir|</div><div class='add'>+  begin</div><div class='add'>+    break File.open(File.expand_path("../#{dir}/etc.c", __FILE__)) do |f|</div><div class='add'>+      f.gets "\n#define RUBY_ETC_VERSION "</div><div class='add'>+      f.gets[/"(.+)"/, 1]</div><div class='add'>+    end</div><div class='add'>+  rescue</div><div class='add'>+    next</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='ctx'> Gem::Specification.new do |spec|</div><div class='ctx'>   spec.name          = "etc"</div><div class='del'>-  spec.version       = "1.0.1"</div><div class='add'>+  spec.version       = version</div><div class='ctx'>   spec.authors       = ["Yukihiro Matsumoto"]</div><div class='ctx'>   spec.email         = ["matz@ruby-lang.org"]</div><div class='ctx'> </div><div class='ctx'>   spec.summary       = %q{Provides access to information typically stored in UNIX /etc directory.}</div><div class='del'>-  spec.description   = %q{Provides access to information typically stored in UNIX /etc directory.}</div><div class='add'>+  spec.description   = spec.summary</div><div class='ctx'>   spec.homepage      = "https://github.com/ruby/etc"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> </div><div class='add'>+  changelogs = Dir.glob("logs/ChangeLog-[1-9]*[^~]", base: __dir__)</div><div class='ctx'>   spec.files         = %w[</div><div class='del'>-    .gitignore</div><div class='del'>-    .travis.yml</div><div class='del'>-    Gemfile</div><div class='ctx'>     LICENSE.txt</div><div class='ctx'>     README.md</div><div class='del'>-    Rakefile</div><div class='del'>-    bin/console</div><div class='del'>-    bin/setup</div><div class='del'>-    etc.gemspec</div><div class='add'>+    ChangeLog</div><div class='add'>+    ext/etc/constdefs.h</div><div class='ctx'>     ext/etc/etc.c</div><div class='ctx'>     ext/etc/extconf.rb</div><div class='ctx'>     ext/etc/mkconstants.rb</div><div class='ctx'>     test/etc/test_etc.rb</div><div class='del'>-  ]</div><div class='add'>+  ] + changelogs</div><div class='add'>+  spec.rdoc_options = ["--main", "README.md"]</div><div class='add'>+  spec.extra_rdoc_files = spec.files.grep_v(/\.{rb,[ch]}\z/)</div><div class='ctx'>   spec.bindir        = "exe"</div><div class='del'>-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='ctx'>   spec.require_paths = ["lib"]</div><div class='ctx'>   spec.extensions    = %w{ext/etc/extconf.rb}</div><div class='ctx'> </div><div class='del'>-  spec.required_ruby_version = "&gt;= 2.3.0"</div><div class='del'>-</div><div class='del'>-  spec.add_development_dependency "bundler"</div><div class='del'>-  spec.add_development_dependency "rake"</div><div class='del'>-  spec.add_development_dependency "rake-compiler"</div><div class='del'>-  spec.add_development_dependency "test-unit"</div><div class='add'>+  spec.required_ruby_version = "&gt;= 2.6.0"</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/etc/extconf.rb b/ext/etc/extconf.rb<br/>index 435fbe7f3d..159b1614b7 100644<br/>--- a/<a href='/ruby.git/tree/ext/etc/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/etc/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/etc/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/etc/extconf.rb</a></div><div class='hunk'>@@ -47,6 +47,9 @@ if !File.exist?("#{srcdir}/depend")</div><div class='ctx'>   %x[#{RbConfig.ruby} #{srcdir}/mkconstants.rb -o #{srcdir}/constdefs.h]</div><div class='ctx'> end</div><div class='ctx'> </div><div class='add'>+# TODO: remove when dropping 2.7 support, as exported since 3.0</div><div class='add'>+have_func('rb_deprecate_constant(Qnil, "None")')</div><div class='add'>+</div><div class='ctx'> $distcleanfiles &lt;&lt; "constdefs.h"</div><div class='ctx'> </div><div class='ctx'> create_makefile("etc")</div><div class='head'>diff --git a/ext/extmk.rb b/ext/extmk.rb<br/>index 1389dc4117..4e77a7167b 100755<br/>--- a/<a href='/ruby.git/tree/ext/extmk.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/extmk.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/extmk.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/extmk.rb</a></div><div class='hunk'>@@ -2,6 +2,9 @@</div><div class='ctx'> # -*- mode: ruby; coding: us-ascii -*-</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> </div><div class='add'>+module Gem; end # only needs Gem::Platform</div><div class='add'>+require 'rubygems/platform'</div><div class='add'>+</div><div class='ctx'> # :stopdoc:</div><div class='ctx'> $extension = nil</div><div class='ctx'> $extstatic = nil</div><div class='hunk'>@@ -34,6 +37,7 @@ require 'rbconfig'</div><div class='ctx'> </div><div class='ctx'> $topdir = "."</div><div class='ctx'> $top_srcdir = srcdir</div><div class='add'>+inplace = File.identical?($top_srcdir, $topdir)</div><div class='ctx'> </div><div class='ctx'> $" &lt;&lt; "mkmf.rb"</div><div class='ctx'> load File.expand_path("lib/mkmf.rb", srcdir)</div><div class='hunk'>@@ -62,12 +66,17 @@ end</div><div class='ctx'> </div><div class='ctx'> def atomic_write_open(filename)</div><div class='ctx'>   filename_new = filename + ".new.#$$"</div><div class='del'>-  open(filename_new, "wb") do |f|</div><div class='add'>+  clean = false</div><div class='add'>+  File.open(filename_new, "wbx") do |f|</div><div class='add'>+    clean = true</div><div class='ctx'>     yield f</div><div class='ctx'>   end</div><div class='ctx'>   if File.binread(filename_new) != (File.binread(filename) rescue nil)</div><div class='ctx'>     File.rename(filename_new, filename)</div><div class='del'>-  else</div><div class='add'>+    clean = false</div><div class='add'>+  end</div><div class='add'>+ensure</div><div class='add'>+  if clean</div><div class='ctx'>     File.unlink(filename_new)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='hunk'>@@ -127,6 +136,14 @@ def extract_makefile(makefile, keep = true)</div><div class='ctx'>   true</div><div class='ctx'> end</div><div class='ctx'> </div><div class='add'>+def create_makefile(target, srcprefix = nil)</div><div class='add'>+  if $static and target.include?("/")</div><div class='add'>+    base = File.basename(target)</div><div class='add'>+    $defs &lt;&lt; "-DInit_#{base}=Init_#{target.tr('/', '_')}"</div><div class='add'>+  end</div><div class='add'>+  super</div><div class='add'>+end</div><div class='add'>+</div><div class='ctx'> def extmake(target, basedir = 'ext', maybestatic = true)</div><div class='ctx'>   FileUtils.mkpath target unless File.directory?(target)</div><div class='ctx'>   begin</div><div class='hunk'>@@ -135,7 +152,7 @@ def extmake(target, basedir = 'ext', maybestatic = true)</div><div class='ctx'>     d = target</div><div class='ctx'>     until (d = File.dirname(d)) == '.'</div><div class='ctx'>       if File.exist?("#{$top_srcdir}/#{basedir}/#{d}/extconf.rb")</div><div class='del'>-        parent = (/^all:\s*install/ =~ IO.read("#{d}/Makefile") rescue false)</div><div class='add'>+        parent = (/^all:\s*install/ =~ File.read("#{d}/Makefile") rescue false)</div><div class='ctx'>         break</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -146,7 +163,7 @@ def extmake(target, basedir = 'ext', maybestatic = true)</div><div class='ctx'>     top_srcdir = $top_srcdir</div><div class='ctx'>     topdir = $topdir</div><div class='ctx'>     hdrdir = $hdrdir</div><div class='del'>-    prefix = "../" * (target.count("/")+1)</div><div class='add'>+    prefix = "../" * (basedir.count("/")+target.count("/")+1)</div><div class='ctx'>     $top_srcdir = relative_from(top_srcdir, prefix)</div><div class='ctx'>     $hdrdir = relative_from(hdrdir, prefix)</div><div class='ctx'>     $topdir = prefix + $topdir</div><div class='hunk'>@@ -154,8 +171,6 @@ def extmake(target, basedir = 'ext', maybestatic = true)</div><div class='ctx'>     $mdir = target</div><div class='ctx'>     $srcdir = File.join($top_srcdir, basedir, $mdir)</div><div class='ctx'>     $preload = nil</div><div class='del'>-    $objs = []</div><div class='del'>-    $srcs = []</div><div class='ctx'>     $extso = []</div><div class='ctx'>     makefile = "./Makefile"</div><div class='ctx'>     static = $static</div><div class='hunk'>@@ -189,7 +204,7 @@ def extmake(target, basedir = 'ext', maybestatic = true)</div><div class='ctx'>       begin</div><div class='ctx'> 	$extconf_h = nil</div><div class='ctx'> 	ok &amp;&amp;= extract_makefile(makefile)</div><div class='del'>-	old_objs = $objs</div><div class='add'>+	old_objs = $objs || []</div><div class='ctx'> 	old_cleanfiles = $distcleanfiles | $cleanfiles</div><div class='ctx'> 	conf = ["#{$srcdir}/makefile.rb", "#{$srcdir}/extconf.rb"].find {|f| File.exist?(f)}</div><div class='ctx'> 	if (!ok || ($extconf_h &amp;&amp; !File.exist?($extconf_h)) ||</div><div class='hunk'>@@ -252,6 +267,8 @@ def extmake(target, basedir = 'ext', maybestatic = true)</div><div class='ctx'>     unless $destdir.to_s.empty? or $mflags.defined?("DESTDIR")</div><div class='ctx'>       args += ["DESTDIR=" + relative_from($destdir, "../"+prefix)]</div><div class='ctx'>     end</div><div class='add'>+    $objs ||= []</div><div class='add'>+    $srcs ||= []</div><div class='ctx'>     if $static and ok and !$objs.empty? and !noinstall</div><div class='ctx'>       args += ["static"]</div><div class='ctx'>       $extlist.push [(maybestatic ? $static : false), target, $target, $preload]</div><div class='hunk'>@@ -408,8 +425,10 @@ if CROSS_COMPILING</div><div class='ctx'>   $ruby = $mflags.defined?("MINIRUBY") || CONFIG['MINIRUBY']</div><div class='ctx'> elsif sep = config_string('BUILD_FILE_SEPARATOR')</div><div class='ctx'>   $ruby = "$(topdir:/=#{sep})#{sep}miniruby" + EXEEXT</div><div class='del'>-else</div><div class='add'>+elsif CONFIG['EXTSTATIC']</div><div class='ctx'>   $ruby = '$(topdir)/miniruby' + EXEEXT</div><div class='add'>+else</div><div class='add'>+  $ruby = '$(topdir)/ruby' + EXEEXT</div><div class='ctx'> end</div><div class='ctx'> $ruby = [$ruby]</div><div class='ctx'> $ruby &lt;&lt; "-I'$(topdir)'"</div><div class='hunk'>@@ -421,6 +440,7 @@ end</div><div class='ctx'> topruby = $ruby</div><div class='ctx'> $ruby = topruby.join(' ')</div><div class='ctx'> $mflags &lt;&lt; "ruby=#$ruby"</div><div class='add'>+$builtruby = '$(topdir)/miniruby' + EXEEXT # Must be an executable path</div><div class='ctx'> </div><div class='ctx'> MTIMES = [__FILE__, 'rbconfig.rb', srcdir+'/lib/mkmf.rb'].collect {|f| File.mtime(f)}</div><div class='ctx'> </div><div class='hunk'>@@ -435,9 +455,8 @@ if $extstatic</div><div class='ctx'> end</div><div class='ctx'> for dir in ["ext", File::join($top_srcdir, "ext")]</div><div class='ctx'>   setup = File::join(dir, CONFIG['setup'])</div><div class='del'>-  if File.file? setup</div><div class='del'>-    f = open(setup)</div><div class='del'>-    while line = f.gets()</div><div class='add'>+  if (f = File.stat(setup) and f.file? rescue next)</div><div class='add'>+    File.foreach(setup) do |line|</div><div class='ctx'>       line.chomp!</div><div class='ctx'>       line.sub!(/#.*$/, '')</div><div class='ctx'>       next if /^\s*$/ =~ line</div><div class='hunk'>@@ -454,16 +473,20 @@ for dir in ["ext", File::join($top_srcdir, "ext")]</div><div class='ctx'>     end</div><div class='ctx'>     MTIMES &lt;&lt; f.mtime</div><div class='ctx'>     $setup = setup</div><div class='del'>-    f.close</div><div class='ctx'>     break</div><div class='ctx'>   end</div><div class='ctx'> end unless $extstatic</div><div class='ctx'> </div><div class='ctx'> @gemname = nil</div><div class='del'>-if ARGV[0]</div><div class='del'>-  ext_prefix, exts = ARGV.shift.split('/', 2)</div><div class='add'>+if exts = ARGV.shift</div><div class='add'>+  ext_prefix = exts[%r[\A(?&gt;\.bundle/)?[^/]+(?:/(?=(.+)?)|\z)]]</div><div class='add'>+  exts = $1</div><div class='ctx'>   $extension = [exts] if exts</div><div class='del'>-  @gemname = exts if ext_prefix == 'gems'</div><div class='add'>+  if ext_prefix.start_with?('.')</div><div class='add'>+    @gemname = exts</div><div class='add'>+  elsif exts</div><div class='add'>+    $static_ext.delete_if {|t, *| !File.fnmatch(t, exts)}</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> ext_prefix = "#{$top_srcdir}/#{ext_prefix || 'ext'}"</div><div class='ctx'> exts = $static_ext.sort_by {|t, i| i}.collect {|t, i| t}</div><div class='hunk'>@@ -511,14 +534,22 @@ cond = proc {|ext, *|</div><div class='ctx'>     exts.delete_if {|d| File.fnmatch?("-*", d)}</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-ext_prefix = File.basename(ext_prefix)</div><div class='add'>+ext_prefix = ext_prefix[$top_srcdir.size+1..-2]</div><div class='ctx'> </div><div class='add'>+@ext_prefix = ext_prefix</div><div class='add'>+@inplace = inplace</div><div class='ctx'> extend Module.new {</div><div class='add'>+</div><div class='ctx'>   def timestamp_file(name, target_prefix = nil)</div><div class='ctx'>     if @gemname and name == '$(TARGET_SO_DIR)'</div><div class='del'>-      name = "$(arch)/gems/#{@gemname}#{target_prefix}"</div><div class='add'>+      gem = true</div><div class='add'>+      name = "$(gem_platform)/$(ruby_version)/gems/#{@gemname}#{target_prefix}"</div><div class='add'>+    end</div><div class='add'>+    path = super.sub(%r[/\.extout\.(?:-\.)?], '/.')</div><div class='add'>+    if gem</div><div class='add'>+      nil while path.sub!(%r[/\.(gem_platform|ruby_version)\.-(?=\.)], '/$(\1)/')</div><div class='ctx'>     end</div><div class='del'>-    super.sub(%r[/\.extout\.(?:-\.)?], '/.')</div><div class='add'>+    path</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def configuration(srcdir)</div><div class='hunk'>@@ -526,28 +557,81 @@ extend Module.new {</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def create_makefile(*args, &amp;block)</div><div class='del'>-    return super unless @gemname</div><div class='add'>+    unless @gemname</div><div class='add'>+      if $static and (target = args.first).include?("/")</div><div class='add'>+        base = File.basename(target)</div><div class='add'>+        $defs &lt;&lt; "-DInit_#{base}=Init_#{target.tr('/', '_')}"</div><div class='add'>+      end</div><div class='add'>+      return super</div><div class='add'>+    end</div><div class='ctx'>     super(*args) do |conf|</div><div class='ctx'>       conf.find do |s|</div><div class='add'>+        s.sub!(%r(^(srcdir *= *)\$\(top_srcdir\)/\.bundle/gems/[^/]+(?=/))) {</div><div class='add'>+          "gem_#{$&amp;}\n" "#{$1}$(gem_srcdir)"</div><div class='add'>+        }</div><div class='add'>+        s.sub!(/^(TIMESTAMP_DIR *= *)\$\(extout\)/) {</div><div class='add'>+          "TARGET_TOPDIR = $(topdir)/.bundle\n" "#{$1}$(TARGET_TOPDIR)"</div><div class='add'>+        }</div><div class='ctx'>         s.sub!(/^(TARGET_SO_DIR *= *)\$\(RUBYARCHDIR\)/) {</div><div class='del'>-          "TARGET_GEM_DIR = $(extout)/gems/$(arch)/#{@gemname}\n"\</div><div class='add'>+          "TARGET_GEM_DIR = $(TARGET_TOPDIR)/extensions/$(gem_platform)"\</div><div class='add'>+          "/$(ruby_version)#{$enable_shared ? '' : '-static'}/#{@gemname}\n"\</div><div class='ctx'>           "#{$1}$(TARGET_GEM_DIR)$(target_prefix)"</div><div class='ctx'>         }</div><div class='ctx'>       end</div><div class='del'>-      conf.any? {|s| /^TARGET *= *\S/ =~ s} and conf &lt;&lt; %{</div><div class='add'>+</div><div class='add'>+      gemlib = File.directory?("#{$top_srcdir}/#{@ext_prefix}/#{@gemname}/lib")</div><div class='add'>+      if conf.any? {|s| /^TARGET *= *\S/ =~ s}</div><div class='add'>+        conf &lt;&lt; %{</div><div class='add'>+gem_platform = #{Gem::Platform.local}</div><div class='ctx'> </div><div class='ctx'> # default target</div><div class='ctx'> all:</div><div class='ctx'> </div><div class='add'>+gem = #{@gemname}</div><div class='add'>+</div><div class='ctx'> build_complete = $(TARGET_GEM_DIR)/gem.build_complete</div><div class='ctx'> install-so: build_complete</div><div class='add'>+clean-so:: clean-build_complete</div><div class='add'>+</div><div class='ctx'> build_complete: $(build_complete)</div><div class='ctx'> $(build_complete): $(TARGET_SO)</div><div class='ctx'> 	$(Q) $(TOUCH) $@</div><div class='ctx'> </div><div class='del'>-clean-so::</div><div class='add'>+clean-build_complete:</div><div class='ctx'> 	-$(Q)$(RM) $(build_complete)</div><div class='add'>+</div><div class='add'>+install: gemspec</div><div class='add'>+clean: clean-gemspec</div><div class='add'>+</div><div class='add'>+gemspec = $(TARGET_TOPDIR)/specifications/$(gem).gemspec</div><div class='add'>+$(gemspec): $(gem_srcdir)/.bundled.$(gem).gemspec</div><div class='add'>+	$(Q) $(MAKEDIRS) $(@D)</div><div class='add'>+	$(Q) $(COPY) $(gem_srcdir)/.bundled.$(gem).gemspec $@</div><div class='add'>+</div><div class='add'>+gemspec: $(gemspec)</div><div class='add'>+</div><div class='add'>+clean-gemspec:</div><div class='add'>+	-$(Q)$(RM) $(gemspec)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+        if gemlib</div><div class='add'>+          conf &lt;&lt; %{</div><div class='add'>+install-rb: gemlib</div><div class='add'>+clean-rb:: clean-gemlib</div><div class='add'>+</div><div class='add'>+LN_S = #{config_string('LN_S')}</div><div class='add'>+CP_R = #{config_string('CP')} -r</div><div class='add'>+</div><div class='add'>+gemlib = $(TARGET_TOPDIR)/gems/$(gem)/lib</div><div class='add'>+gemlib:#{%{ $(gemlib)\n$(gemlib): $(gem_srcdir)/lib} if $nmake}</div><div class='add'>+	$(Q) #{@inplace ? '$(NULLCMD) ' : ''}$(RUBY) $(top_srcdir)/tool/ln_sr.rb -q -f -T $(gem_srcdir)/lib $(gemlib)</div><div class='add'>+</div><div class='add'>+clean-gemlib:</div><div class='add'>+	$(Q) $(#{@inplace ? 'NULLCMD' : 'RM_RF'}) $(gemlib)</div><div class='ctx'> }</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       conf</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='hunk'>@@ -630,7 +714,7 @@ rubies = []</div><div class='ctx'>   end</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-Dir.chdir ".."</div><div class='add'>+Dir.chdir dir</div><div class='ctx'> unless $destdir.to_s.empty?</div><div class='ctx'>   $mflags.defined?("DESTDIR") or $mflags &lt;&lt; "DESTDIR=#{$destdir}"</div><div class='ctx'> end</div><div class='hunk'>@@ -643,11 +727,14 @@ FileUtils.makedirs(File.dirname($command_output))</div><div class='ctx'> begin</div><div class='ctx'>   atomic_write_open($command_output) do |mf|</div><div class='ctx'>     mf.puts "V = 0"</div><div class='add'>+    mf.puts "V0 = $(V:0=)"</div><div class='ctx'>     mf.puts "Q1 = $(V:1=)"</div><div class='ctx'>     mf.puts "Q = $(Q1:0=@)"</div><div class='ctx'>     mf.puts "ECHO1 = $(V:1=@:)"</div><div class='ctx'>     mf.puts "ECHO = $(ECHO1:0=@echo)"</div><div class='ctx'>     mf.puts "MFLAGS = -$(MAKEFLAGS)" if $nmake</div><div class='add'>+    mf.puts "override MFLAGS := $(filter-out -j%,$(MFLAGS))" if $gnumake</div><div class='add'>+    mf.puts "ext_build_dir = #{File.dirname($command_output)}"</div><div class='ctx'>     mf.puts</div><div class='ctx'> </div><div class='ctx'>     def mf.macro(name, values, max = 70)</div><div class='hunk'>@@ -688,8 +775,9 @@ begin</div><div class='ctx'>     submakeopts &lt;&lt; 'UPDATE_LIBRARIES="$(UPDATE_LIBRARIES)"'</div><div class='ctx'>     submakeopts &lt;&lt; 'SHOWFLAGS='</div><div class='ctx'>     mf.macro "SUBMAKEOPTS", submakeopts</div><div class='del'>-    mf.macro "NOTE_MESG", %w[$(RUBY) $(top_srcdir)/tool/colorize.rb skip]</div><div class='del'>-    mf.macro "NOTE_NAME", %w[$(RUBY) $(top_srcdir)/tool/colorize.rb fail]</div><div class='add'>+    mf.macro "NOTE_MESG", %w[$(RUBY) $(top_srcdir)/tool/lib/colorize.rb skip]</div><div class='add'>+    mf.macro "NOTE_NAME", %w[$(RUBY) $(top_srcdir)/tool/lib/colorize.rb fail]</div><div class='add'>+    %w[RM RMDIRS RMDIR RMALL].each {|w| mf.macro w, [RbConfig::CONFIG[w]]}</div><div class='ctx'>     mf.puts</div><div class='ctx'>     targets = %w[all install static install-so install-rb clean distclean realclean]</div><div class='ctx'>     targets.each do |tgt|</div><div class='hunk'>@@ -724,16 +812,20 @@ begin</div><div class='ctx'>       exts.each do |d|</div><div class='ctx'>         d = d[0..-2]</div><div class='ctx'>         t = "#{d}#{tgt}"</div><div class='del'>-        if  /^(dist|real)?clean$/ =~ tgt</div><div class='add'>+        if clean = /^(dist|real)?clean$/.match(tgt)</div><div class='ctx'>           deps = exts.select {|e|e.start_with?(d)}.map {|e|"#{e[0..-2]}#{tgt}"} - [t]</div><div class='del'>-          pd = ' ' + deps.join(' ') unless deps.empty?</div><div class='add'>+          pd = [' clean-local', *deps].join(' ')</div><div class='ctx'>         else</div><div class='ctx'>           pext = File.dirname(d)</div><div class='ctx'>           pd = " #{pext}/#{tgt}" if exts.include?("#{pext}/.")</div><div class='ctx'>         end</div><div class='ctx'>         mf.puts "#{t}:#{pd}\n\t$(Q)#{submake} $(MFLAGS) V=$(V) $(@F)"</div><div class='add'>+        if clean and clean.begin(1)</div><div class='add'>+          mf.puts "\t$(Q)$(RM) $(ext_build_dir)/exts.mk\n\t$(Q)$(RMDIRS) -p $(@D)"</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='add'>+    mf.puts "\n""clean-local:\n\t$(Q)$(RM) $(ext_build_dir)/*~ $(ext_build_dir)/*.bak $(ext_build_dir)/core"</div><div class='ctx'>     mf.puts "\n""extso:\n"</div><div class='ctx'>     mf.puts "\t@echo EXTSO=$(EXTSO)"</div><div class='ctx'> </div><div class='head'>diff --git a/ext/fcntl/depend b/ext/fcntl/depend<br/>index 61d7dc20ee..718de62e26 100644<br/>--- a/<a href='/ruby.git/tree/ext/fcntl/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fcntl/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/fcntl/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fcntl/depend</a></div><div class='hunk'>@@ -1,13 +1,162 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> fcntl.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> fcntl.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> fcntl.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> fcntl.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> fcntl.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+fcntl.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> fcntl.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> fcntl.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> fcntl.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> fcntl.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-fcntl.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> fcntl.o: fcntl.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/fcntl/fcntl.c b/ext/fcntl/fcntl.c<br/>index c93694c431..3bccc41e4c 100644<br/>--- a/<a href='/ruby.git/tree/ext/fcntl/fcntl.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fcntl/fcntl.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/fcntl/fcntl.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fcntl/fcntl.c</a></div><div class='hunk'>@@ -159,6 +159,20 @@ Init_fcntl(void)</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_const(mFcntl, "F_WRLCK", INT2NUM(F_WRLCK));</div><div class='ctx'> #endif</div><div class='add'>+#ifdef F_SETPIPE_SZ</div><div class='add'>+    /* Document-const: F_SETPIPE_SZ</div><div class='add'>+     *</div><div class='add'>+     * Change the capacity of the pipe referred to by fd to be at least arg bytes.</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFcntl, "F_SETPIPE_SZ", INT2NUM(F_SETPIPE_SZ));</div><div class='add'>+#endif</div><div class='add'>+#ifdef F_GETPIPE_SZ</div><div class='add'>+    /* Document-const: F_GETPIPE_SZ</div><div class='add'>+     *</div><div class='add'>+     * Return (as the function result) the capacity of the pipe referred to by fd.</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFcntl, "F_GETPIPE_SZ", INT2NUM(F_GETPIPE_SZ));</div><div class='add'>+#endif</div><div class='ctx'> #ifdef O_CREAT</div><div class='ctx'>     /* Document-const: O_CREAT</div><div class='ctx'>      *</div><div class='hunk'>@@ -242,4 +256,21 @@ Init_fcntl(void)</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_const(mFcntl, "O_ACCMODE", INT2FIX(O_RDONLY | O_WRONLY | O_RDWR));</div><div class='ctx'> #endif</div><div class='add'>+#ifdef F_DUP2FD</div><div class='add'>+    /* Document-const: F_DUP2FD</div><div class='add'>+     *</div><div class='add'>+     * It is a FreeBSD specific constant and equivalent</div><div class='add'>+     * to dup2 call.</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFcntl, "F_DUP2FD", INT2NUM(F_DUP2FD));</div><div class='add'>+#endif</div><div class='add'>+#ifdef F_DUP2FD_CLOEXEC</div><div class='add'>+    /* Document-const: F_DUP2FD_CLOEXEC</div><div class='add'>+     *</div><div class='add'>+     * It is a FreeBSD specific constant and acts</div><div class='add'>+     * similarly as F_DUP2FD but set the FD_CLOEXEC</div><div class='add'>+     * flag in addition.</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFcntl, "F_DUP2FD_CLOEXEC", INT2NUM(F_DUP2FD_CLOEXEC));</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/fcntl/fcntl.gemspec b/ext/fcntl/fcntl.gemspec<br/>index 0e3194fbdc..09d3fc2568 100644<br/>--- a/<a href='/ruby.git/tree/ext/fcntl/fcntl.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fcntl/fcntl.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/fcntl/fcntl.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fcntl/fcntl.gemspec</a></div><div class='hunk'>@@ -3,14 +3,14 @@</div><div class='ctx'> </div><div class='ctx'> Gem::Specification.new do |spec|</div><div class='ctx'>   spec.name          = "fcntl"</div><div class='del'>-  spec.version       = "1.0.0"</div><div class='add'>+  spec.version       = "1.0.2"</div><div class='ctx'>   spec.authors       = ["Yukihiro Matsumoto"]</div><div class='ctx'>   spec.email         = ["matz@ruby-lang.org"]</div><div class='ctx'> </div><div class='ctx'>   spec.summary       = "Loads constants defined in the OS fcntl.h C header file"</div><div class='ctx'>   spec.description   = "Loads constants defined in the OS fcntl.h C header file"</div><div class='ctx'>   spec.homepage      = "https://github.com/ruby/fcntl"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> </div><div class='ctx'>   spec.files         = ["ext/fcntl/extconf.rb", "ext/fcntl/fcntl.c"]</div><div class='ctx'>   spec.bindir        = "exe"</div><div class='hunk'>@@ -18,8 +18,4 @@ Gem::Specification.new do |spec|</div><div class='ctx'>   spec.require_paths = ["lib"]</div><div class='ctx'>   spec.extensions    = "ext/fcntl/extconf.rb"</div><div class='ctx'>   spec.required_ruby_version = "&gt;= 2.3.0"</div><div class='del'>-</div><div class='del'>-  spec.add_development_dependency "bundler", "~&gt; 1.14"</div><div class='del'>-  spec.add_development_dependency "rake", "~&gt; 12"</div><div class='del'>-  spec.add_development_dependency "rake-compiler"</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/fiber/depend b/ext/fiber/depend<br/>deleted file mode 100644<br/>index 85cac2f03c..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/fiber/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiber/depend</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1 +0,0 @@</div><div class='del'>-fiber.o: fiber.c</div><div class='head'>diff --git a/ext/fiber/extconf.rb b/ext/fiber/extconf.rb<br/>deleted file mode 100644<br/>index 7f11e0dafa..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/fiber/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiber/extconf.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-require 'mkmf'</div><div class='del'>-create_makefile('fiber')</div><div class='del'>-</div><div class='head'>diff --git a/ext/fiber/fiber.c b/ext/fiber/fiber.c<br/>deleted file mode 100644<br/>index 12fcaad73b..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/fiber/fiber.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiber/fiber.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-</div><div class='del'>-void ruby_Init_Fiber_as_Coroutine(void);</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-Init_fiber(void)</div><div class='del'>-{</div><div class='del'>-    ruby_Init_Fiber_as_Coroutine();</div><div class='del'>-}</div><div class='head'>diff --git a/ext/fiddle/closure.c b/ext/fiddle/closure.c<br/>index 1a80b2b02a..892f522a62 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/closure.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/closure.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/closure.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/closure.c</a></div><div class='hunk'>@@ -13,11 +13,12 @@ typedef struct {</div><div class='ctx'>     ffi_type **argv;</div><div class='ctx'> } fiddle_closure;</div><div class='ctx'> </div><div class='del'>-#if defined(USE_FFI_CLOSURE_ALLOC)</div><div class='del'>-#elif defined(__OpenBSD__) || defined(__APPLE__) || defined(__linux__)</div><div class='add'>+#if defined(__OpenBSD__)</div><div class='ctx'> # define USE_FFI_CLOSURE_ALLOC 0</div><div class='del'>-#elif defined(RUBY_LIBFFI_MODVERSION) &amp;&amp; RUBY_LIBFFI_MODVERSION &lt; 3000005 &amp;&amp; \</div><div class='del'>-	(defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || defined(_M_AMD64))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(USE_FFI_CLOSURE_ALLOC)</div><div class='add'>+#elif !defined(HAVE_FFI_CLOSURE_ALLOC)</div><div class='ctx'> # define USE_FFI_CLOSURE_ALLOC 0</div><div class='ctx'> #else</div><div class='ctx'> # define USE_FFI_CLOSURE_ALLOC 1</div><div class='hunk'>@@ -55,6 +56,8 @@ closure_memsize(const void * ptr)</div><div class='ctx'> const rb_data_type_t closure_data_type = {</div><div class='ctx'>     "fiddle/closure",</div><div class='ctx'>     {0, dealloc, closure_memsize,},</div><div class='add'>+    0, 0,</div><div class='add'>+    RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> struct callback_args {</div><div class='hunk'>@@ -89,7 +92,7 @@ with_gvl_callback(void *ptr)</div><div class='ctx'> 	  case TYPE_INT:</div><div class='ctx'> 	    rb_ary_push(params, INT2NUM(*(int *)x-&gt;args[i]));</div><div class='ctx'> 	    break;</div><div class='del'>-	  case -TYPE_INT:</div><div class='add'>+	  case TYPE_UINT:</div><div class='ctx'> 	    rb_ary_push(params, UINT2NUM(*(unsigned int *)x-&gt;args[i]));</div><div class='ctx'> 	    break;</div><div class='ctx'> 	  case TYPE_VOIDP:</div><div class='hunk'>@@ -100,19 +103,19 @@ with_gvl_callback(void *ptr)</div><div class='ctx'> 	  case TYPE_LONG:</div><div class='ctx'> 	    rb_ary_push(params, LONG2NUM(*(long *)x-&gt;args[i]));</div><div class='ctx'> 	    break;</div><div class='del'>-	  case -TYPE_LONG:</div><div class='add'>+	  case TYPE_ULONG:</div><div class='ctx'> 	    rb_ary_push(params, ULONG2NUM(*(unsigned long *)x-&gt;args[i]));</div><div class='ctx'> 	    break;</div><div class='ctx'> 	  case TYPE_CHAR:</div><div class='ctx'> 	    rb_ary_push(params, INT2NUM(*(signed char *)x-&gt;args[i]));</div><div class='ctx'> 	    break;</div><div class='del'>-	  case -TYPE_CHAR:</div><div class='add'>+	  case TYPE_UCHAR:</div><div class='ctx'> 	    rb_ary_push(params, UINT2NUM(*(unsigned char *)x-&gt;args[i]));</div><div class='ctx'> 	    break;</div><div class='ctx'> 	  case TYPE_SHORT:</div><div class='ctx'> 	    rb_ary_push(params, INT2NUM(*(signed short *)x-&gt;args[i]));</div><div class='ctx'> 	    break;</div><div class='del'>-	  case -TYPE_SHORT:</div><div class='add'>+	  case TYPE_USHORT:</div><div class='ctx'> 	    rb_ary_push(params, UINT2NUM(*(unsigned short *)x-&gt;args[i]));</div><div class='ctx'> 	    break;</div><div class='ctx'> 	  case TYPE_DOUBLE:</div><div class='hunk'>@@ -125,10 +128,14 @@ with_gvl_callback(void *ptr)</div><div class='ctx'> 	  case TYPE_LONG_LONG:</div><div class='ctx'> 	    rb_ary_push(params, LL2NUM(*(LONG_LONG *)x-&gt;args[i]));</div><div class='ctx'> 	    break;</div><div class='del'>-	  case -TYPE_LONG_LONG:</div><div class='add'>+	  case TYPE_ULONG_LONG:</div><div class='ctx'> 	    rb_ary_push(params, ULL2NUM(*(unsigned LONG_LONG *)x-&gt;args[i]));</div><div class='ctx'> 	    break;</div><div class='ctx'> #endif</div><div class='add'>+	  case TYPE_CONST_STRING:</div><div class='add'>+	    rb_ary_push(params,</div><div class='add'>+                        rb_str_new_cstr(*((const char **)(x-&gt;args[i]))));</div><div class='add'>+	    break;</div><div class='ctx'> 	  default:</div><div class='ctx'> 	    rb_raise(rb_eRuntimeError, "closure args: %d", type);</div><div class='ctx'>         }</div><div class='hunk'>@@ -144,7 +151,7 @@ with_gvl_callback(void *ptr)</div><div class='ctx'>       case TYPE_LONG:</div><div class='ctx'> 	*(long *)x-&gt;resp = NUM2LONG(ret);</div><div class='ctx'> 	break;</div><div class='del'>-      case -TYPE_LONG:</div><div class='add'>+      case TYPE_ULONG:</div><div class='ctx'> 	*(unsigned long *)x-&gt;resp = NUM2ULONG(ret);</div><div class='ctx'> 	break;</div><div class='ctx'>       case TYPE_CHAR:</div><div class='hunk'>@@ -152,9 +159,9 @@ with_gvl_callback(void *ptr)</div><div class='ctx'>       case TYPE_INT:</div><div class='ctx'> 	*(ffi_sarg *)x-&gt;resp = NUM2INT(ret);</div><div class='ctx'> 	break;</div><div class='del'>-      case -TYPE_CHAR:</div><div class='del'>-      case -TYPE_SHORT:</div><div class='del'>-      case -TYPE_INT:</div><div class='add'>+      case TYPE_UCHAR:</div><div class='add'>+      case TYPE_USHORT:</div><div class='add'>+      case TYPE_UINT:</div><div class='ctx'> 	*(ffi_arg *)x-&gt;resp = NUM2UINT(ret);</div><div class='ctx'> 	break;</div><div class='ctx'>       case TYPE_VOIDP:</div><div class='hunk'>@@ -170,10 +177,14 @@ with_gvl_callback(void *ptr)</div><div class='ctx'>       case TYPE_LONG_LONG:</div><div class='ctx'> 	*(LONG_LONG *)x-&gt;resp = NUM2LL(ret);</div><div class='ctx'> 	break;</div><div class='del'>-      case -TYPE_LONG_LONG:</div><div class='add'>+      case TYPE_ULONG_LONG:</div><div class='ctx'> 	*(unsigned LONG_LONG *)x-&gt;resp = NUM2ULL(ret);</div><div class='ctx'> 	break;</div><div class='ctx'> #endif</div><div class='add'>+      case TYPE_CONST_STRING:</div><div class='add'>+        /* Dangerous. Callback must keep reference of the String. */</div><div class='add'>+        *((const char **)(x-&gt;resp)) = StringValueCStr(ret);</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='ctx'> 	rb_raise(rb_eRuntimeError, "closure retval: %d", type);</div><div class='ctx'>     }</div><div class='hunk'>@@ -215,11 +226,30 @@ allocate(VALUE klass)</div><div class='ctx'>     return i;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static fiddle_closure *</div><div class='add'>+get_raw(VALUE self)</div><div class='add'>+{</div><div class='add'>+    fiddle_closure *closure;</div><div class='add'>+    TypedData_Get_Struct(self, fiddle_closure, &amp;closure_data_type, closure);</div><div class='add'>+    if (!closure) {</div><div class='add'>+        rb_raise(rb_eArgError, "already freed: %+"PRIsVALUE, self);</div><div class='add'>+    }</div><div class='add'>+    return closure;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+typedef struct {</div><div class='add'>+    VALUE self;</div><div class='add'>+    int argc;</div><div class='add'>+    VALUE *argv;</div><div class='add'>+} initialize_data;</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-initialize(int rbargc, VALUE argv[], VALUE self)</div><div class='add'>+initialize_body(VALUE user_data)</div><div class='ctx'> {</div><div class='add'>+    initialize_data *data = (initialize_data *)user_data;</div><div class='ctx'>     VALUE ret;</div><div class='ctx'>     VALUE args;</div><div class='add'>+    VALUE normalized_args;</div><div class='ctx'>     VALUE abi;</div><div class='ctx'>     fiddle_closure * cl;</div><div class='ctx'>     ffi_cif * cif;</div><div class='hunk'>@@ -227,65 +257,107 @@ initialize(int rbargc, VALUE argv[], VALUE self)</div><div class='ctx'>     ffi_status result;</div><div class='ctx'>     int i, argc;</div><div class='ctx'> </div><div class='del'>-    if (2 == rb_scan_args(rbargc, argv, "21", &amp;ret, &amp;args, &amp;abi))</div><div class='del'>-	abi = INT2NUM(FFI_DEFAULT_ABI);</div><div class='add'>+    if (2 == rb_scan_args(data-&gt;argc, data-&gt;argv, "21", &amp;ret, &amp;args, &amp;abi))</div><div class='add'>+        abi = INT2NUM(FFI_DEFAULT_ABI);</div><div class='ctx'> </div><div class='ctx'>     Check_Type(args, T_ARRAY);</div><div class='ctx'> </div><div class='ctx'>     argc = RARRAY_LENINT(args);</div><div class='ctx'> </div><div class='del'>-    TypedData_Get_Struct(self, fiddle_closure, &amp;closure_data_type, cl);</div><div class='add'>+    TypedData_Get_Struct(data-&gt;self, fiddle_closure, &amp;closure_data_type, cl);</div><div class='ctx'> </div><div class='ctx'>     cl-&gt;argv = (ffi_type **)xcalloc(argc + 1, sizeof(ffi_type *));</div><div class='ctx'> </div><div class='add'>+    normalized_args = rb_ary_new_capa(argc);</div><div class='ctx'>     for (i = 0; i &lt; argc; i++) {</div><div class='del'>-        int type = NUM2INT(RARRAY_AREF(args, i));</div><div class='del'>-        cl-&gt;argv[i] = INT2FFI_TYPE(type);</div><div class='add'>+        VALUE arg = rb_fiddle_type_ensure(RARRAY_AREF(args, i));</div><div class='add'>+        rb_ary_push(normalized_args, arg);</div><div class='add'>+        cl-&gt;argv[i] = rb_fiddle_int_to_ffi_type(NUM2INT(arg));</div><div class='ctx'>     }</div><div class='ctx'>     cl-&gt;argv[argc] = NULL;</div><div class='ctx'> </div><div class='del'>-    rb_iv_set(self, "@ctype", ret);</div><div class='del'>-    rb_iv_set(self, "@args", args);</div><div class='add'>+    ret = rb_fiddle_type_ensure(ret);</div><div class='add'>+    rb_iv_set(data-&gt;self, "@ctype", ret);</div><div class='add'>+    rb_iv_set(data-&gt;self, "@args", normalized_args);</div><div class='ctx'> </div><div class='ctx'>     cif = &amp;cl-&gt;cif;</div><div class='ctx'>     pcl = cl-&gt;pcl;</div><div class='ctx'> </div><div class='del'>-    result = ffi_prep_cif(cif, NUM2INT(abi), argc,</div><div class='del'>-                INT2FFI_TYPE(NUM2INT(ret)),</div><div class='del'>-		cl-&gt;argv);</div><div class='add'>+    result = ffi_prep_cif(cif,</div><div class='add'>+                          NUM2INT(abi),</div><div class='add'>+                          argc,</div><div class='add'>+                          rb_fiddle_int_to_ffi_type(NUM2INT(ret)),</div><div class='add'>+                          cl-&gt;argv);</div><div class='ctx'> </div><div class='del'>-    if (FFI_OK != result)</div><div class='del'>-	rb_raise(rb_eRuntimeError, "error prepping CIF %d", result);</div><div class='add'>+    if (FFI_OK != result) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "error prepping CIF %d", result);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'> #if USE_FFI_CLOSURE_ALLOC</div><div class='ctx'>     result = ffi_prep_closure_loc(pcl, cif, callback,</div><div class='del'>-		(void *)self, cl-&gt;code);</div><div class='add'>+                                  (void *)(data-&gt;self), cl-&gt;code);</div><div class='ctx'> #else</div><div class='del'>-    result = ffi_prep_closure(pcl, cif, callback, (void *)self);</div><div class='add'>+    result = ffi_prep_closure(pcl, cif, callback, (void *)(data-&gt;self));</div><div class='ctx'>     cl-&gt;code = (void *)pcl;</div><div class='ctx'>     i = mprotect(pcl, sizeof(*pcl), PROT_READ | PROT_EXEC);</div><div class='ctx'>     if (i) {</div><div class='del'>-	rb_sys_fail("mprotect");</div><div class='add'>+        rb_sys_fail("mprotect");</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    if (FFI_OK != result)</div><div class='del'>-	rb_raise(rb_eRuntimeError, "error prepping closure %d", result);</div><div class='add'>+    if (FFI_OK != result) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "error prepping closure %d", result);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    return self;</div><div class='add'>+    return data-&gt;self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-to_i(VALUE self)</div><div class='add'>+initialize_rescue(VALUE user_data, VALUE exception)</div><div class='ctx'> {</div><div class='del'>-    fiddle_closure * cl;</div><div class='del'>-    void *code;</div><div class='add'>+    initialize_data *data = (initialize_data *)user_data;</div><div class='add'>+    dealloc(RTYPEDDATA_DATA(data-&gt;self));</div><div class='add'>+    RTYPEDDATA_DATA(data-&gt;self) = NULL;</div><div class='add'>+    rb_exc_raise(exception);</div><div class='add'>+    return data-&gt;self;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    TypedData_Get_Struct(self, fiddle_closure, &amp;closure_data_type, cl);</div><div class='add'>+static VALUE</div><div class='add'>+initialize(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    initialize_data data;</div><div class='add'>+    data.self = self;</div><div class='add'>+    data.argc = argc;</div><div class='add'>+    data.argv = argv;</div><div class='add'>+    return rb_rescue(initialize_body, (VALUE)&amp;data,</div><div class='add'>+                     initialize_rescue, (VALUE)&amp;data);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    code = cl-&gt;code;</div><div class='add'>+static VALUE</div><div class='add'>+to_i(VALUE self)</div><div class='add'>+{</div><div class='add'>+    fiddle_closure *closure = get_raw(self);</div><div class='add'>+    return PTR2NUM(closure-&gt;code);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+closure_free(VALUE self)</div><div class='add'>+{</div><div class='add'>+    fiddle_closure *closure;</div><div class='add'>+    TypedData_Get_Struct(self, fiddle_closure, &amp;closure_data_type, closure);</div><div class='add'>+    if (closure) {</div><div class='add'>+        dealloc(closure);</div><div class='add'>+        RTYPEDDATA_DATA(self) = NULL;</div><div class='add'>+    }</div><div class='add'>+    return RUBY_Qnil;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return PTR2NUM(code);</div><div class='add'>+static VALUE</div><div class='add'>+closure_freed_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    fiddle_closure *closure;</div><div class='add'>+    TypedData_Get_Struct(self, fiddle_closure, &amp;closure_data_type, closure);</div><div class='add'>+    return closure ? RUBY_Qfalse : RUBY_Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -338,8 +410,24 @@ Init_fiddle_closure(void)</div><div class='ctx'>     /*</div><div class='ctx'>      * Document-method: to_i</div><div class='ctx'>      *</div><div class='del'>-     * Returns the memory address for this closure</div><div class='add'>+     * Returns the memory address for this closure.</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_method(cFiddleClosure, "to_i", to_i, 0);</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Document-method: free</div><div class='add'>+     *</div><div class='add'>+     * Free this closure explicitly. You can't use this closure anymore.</div><div class='add'>+     *</div><div class='add'>+     * If this closure is already freed, this does nothing.</div><div class='add'>+     */</div><div class='add'>+    rb_define_method(cFiddleClosure, "free", closure_free, 0);</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Document-method: freed?</div><div class='add'>+     *</div><div class='add'>+     * Whether this closure was freed explicitly.</div><div class='add'>+     */</div><div class='add'>+    rb_define_method(cFiddleClosure, "freed?", closure_freed_p, 0);</div><div class='ctx'> }</div><div class='ctx'> /* vim: set noet sw=4 sts=4 */</div><div class='head'>diff --git a/ext/fiddle/conversions.c b/ext/fiddle/conversions.c<br/>index d40ddc1f38..3b70f7de4c 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/conversions.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/conversions.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/conversions.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/conversions.c</a></div><div class='hunk'>@@ -1,7 +1,159 @@</div><div class='ctx'> #include &lt;fiddle.h&gt;</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_fiddle_type_ensure(VALUE type)</div><div class='add'>+{</div><div class='add'>+    VALUE original_type = type;</div><div class='add'>+</div><div class='add'>+    if (!RB_SYMBOL_P(type)) {</div><div class='add'>+        VALUE type_string = rb_check_string_type(type);</div><div class='add'>+        if (!NIL_P(type_string)) {</div><div class='add'>+            type = rb_to_symbol(type_string);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RB_SYMBOL_P(type)) {</div><div class='add'>+        ID type_id = rb_sym2id(type);</div><div class='add'>+        ID void_id;</div><div class='add'>+        ID voidp_id;</div><div class='add'>+        ID char_id;</div><div class='add'>+        ID short_id;</div><div class='add'>+        ID int_id;</div><div class='add'>+        ID long_id;</div><div class='add'>+#ifdef TYPE_LONG_LONG</div><div class='add'>+        ID long_long_id;</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT8_T</div><div class='add'>+        ID int8_t_id;</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT16_T</div><div class='add'>+        ID int16_t_id;</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT32_T</div><div class='add'>+        ID int32_t_id;</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT64_T</div><div class='add'>+        ID int64_t_id;</div><div class='add'>+#endif</div><div class='add'>+        ID float_id;</div><div class='add'>+        ID double_id;</div><div class='add'>+        ID variadic_id;</div><div class='add'>+        ID const_string_id;</div><div class='add'>+        ID size_t_id;</div><div class='add'>+        ID ssize_t_id;</div><div class='add'>+        ID ptrdiff_t_id;</div><div class='add'>+        ID intptr_t_id;</div><div class='add'>+        ID uintptr_t_id;</div><div class='add'>+        RUBY_CONST_ID(void_id, "void");</div><div class='add'>+        RUBY_CONST_ID(voidp_id, "voidp");</div><div class='add'>+        RUBY_CONST_ID(char_id, "char");</div><div class='add'>+        RUBY_CONST_ID(short_id, "short");</div><div class='add'>+        RUBY_CONST_ID(int_id, "int");</div><div class='add'>+        RUBY_CONST_ID(long_id, "long");</div><div class='add'>+#ifdef TYPE_LONG_LONG</div><div class='add'>+        RUBY_CONST_ID(long_long_id, "long_long");</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT8_T</div><div class='add'>+        RUBY_CONST_ID(int8_t_id, "int8_t");</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT16_T</div><div class='add'>+        RUBY_CONST_ID(int16_t_id, "int16_t");</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT32_T</div><div class='add'>+        RUBY_CONST_ID(int32_t_id, "int32_t");</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT64_T</div><div class='add'>+        RUBY_CONST_ID(int64_t_id, "int64_t");</div><div class='add'>+#endif</div><div class='add'>+        RUBY_CONST_ID(float_id, "float");</div><div class='add'>+        RUBY_CONST_ID(double_id, "double");</div><div class='add'>+        RUBY_CONST_ID(variadic_id, "variadic");</div><div class='add'>+        RUBY_CONST_ID(const_string_id, "const_string");</div><div class='add'>+        RUBY_CONST_ID(size_t_id, "size_t");</div><div class='add'>+        RUBY_CONST_ID(ssize_t_id, "ssize_t");</div><div class='add'>+        RUBY_CONST_ID(ptrdiff_t_id, "ptrdiff_t");</div><div class='add'>+        RUBY_CONST_ID(intptr_t_id, "intptr_t");</div><div class='add'>+        RUBY_CONST_ID(uintptr_t_id, "uintptr_t");</div><div class='add'>+        if (type_id == void_id) {</div><div class='add'>+            return INT2NUM(TYPE_VOID);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == voidp_id) {</div><div class='add'>+            return INT2NUM(TYPE_VOIDP);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == char_id) {</div><div class='add'>+            return INT2NUM(TYPE_CHAR);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == short_id) {</div><div class='add'>+            return INT2NUM(TYPE_SHORT);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == int_id) {</div><div class='add'>+            return INT2NUM(TYPE_INT);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == long_id) {</div><div class='add'>+            return INT2NUM(TYPE_LONG);</div><div class='add'>+        }</div><div class='add'>+#ifdef TYPE_LONG_LONG</div><div class='add'>+        else if (type_id == long_long_id) {</div><div class='add'>+            return INT2NUM(TYPE_LONG_LONG);</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT8_T</div><div class='add'>+        else if (type_id == int8_t_id) {</div><div class='add'>+            return INT2NUM(TYPE_INT8_T);</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT16_T</div><div class='add'>+        else if (type_id == int16_t_id) {</div><div class='add'>+            return INT2NUM(TYPE_INT16_T);</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT32_T</div><div class='add'>+        else if (type_id == int32_t_id) {</div><div class='add'>+            return INT2NUM(TYPE_INT32_T);</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+#ifdef TYPE_INT64_T</div><div class='add'>+        else if (type_id == int64_t_id) {</div><div class='add'>+            return INT2NUM(TYPE_INT64_T);</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        else if (type_id == float_id) {</div><div class='add'>+            return INT2NUM(TYPE_FLOAT);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == double_id) {</div><div class='add'>+            return INT2NUM(TYPE_DOUBLE);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == variadic_id) {</div><div class='add'>+            return INT2NUM(TYPE_VARIADIC);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == const_string_id) {</div><div class='add'>+            return INT2NUM(TYPE_CONST_STRING);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == size_t_id) {</div><div class='add'>+            return INT2NUM(TYPE_SIZE_T);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == ssize_t_id) {</div><div class='add'>+            return INT2NUM(TYPE_SSIZE_T);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == ptrdiff_t_id) {</div><div class='add'>+            return INT2NUM(TYPE_PTRDIFF_T);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == intptr_t_id) {</div><div class='add'>+            return INT2NUM(TYPE_INTPTR_T);</div><div class='add'>+        }</div><div class='add'>+        else if (type_id == uintptr_t_id) {</div><div class='add'>+            return INT2NUM(TYPE_UINTPTR_T);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            type = original_type;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return rb_to_int(type);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> ffi_type *</div><div class='del'>-int_to_ffi_type(int type)</div><div class='add'>+rb_fiddle_int_to_ffi_type(int type)</div><div class='ctx'> {</div><div class='ctx'>     int signed_p = 1;</div><div class='ctx'> </div><div class='hunk'>@@ -33,66 +185,90 @@ int_to_ffi_type(int type)</div><div class='ctx'> 	return &amp;ffi_type_float;</div><div class='ctx'>       case TYPE_DOUBLE:</div><div class='ctx'> 	return &amp;ffi_type_double;</div><div class='add'>+      case TYPE_CONST_STRING:</div><div class='add'>+	return &amp;ffi_type_pointer;</div><div class='ctx'>       default:</div><div class='ctx'> 	rb_raise(rb_eRuntimeError, "unknown type %d", type);</div><div class='ctx'>     }</div><div class='ctx'>     return &amp;ffi_type_pointer;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+ffi_type *</div><div class='add'>+int_to_ffi_type(int type)</div><div class='add'>+{</div><div class='add'>+    return rb_fiddle_int_to_ffi_type(type);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='del'>-value_to_generic(int type, VALUE src, fiddle_generic * dst)</div><div class='add'>+rb_fiddle_value_to_generic(int type, VALUE *src, fiddle_generic *dst)</div><div class='ctx'> {</div><div class='ctx'>     switch (type) {</div><div class='ctx'>       case TYPE_VOID:</div><div class='ctx'> 	break;</div><div class='ctx'>       case TYPE_VOIDP:</div><div class='del'>-	dst-&gt;pointer = NUM2PTR(rb_Integer(src));</div><div class='add'>+	dst-&gt;pointer = NUM2PTR(rb_Integer(*src));</div><div class='ctx'> 	break;</div><div class='ctx'>       case TYPE_CHAR:</div><div class='del'>-	dst-&gt;schar = (signed char)NUM2INT(src);</div><div class='add'>+	dst-&gt;schar = (signed char)NUM2INT(*src);</div><div class='ctx'> 	break;</div><div class='del'>-      case -TYPE_CHAR:</div><div class='del'>-	dst-&gt;uchar = (unsigned char)NUM2UINT(src);</div><div class='add'>+      case TYPE_UCHAR:</div><div class='add'>+	dst-&gt;uchar = (unsigned char)NUM2UINT(*src);</div><div class='ctx'> 	break;</div><div class='ctx'>       case TYPE_SHORT:</div><div class='del'>-	dst-&gt;sshort = (unsigned short)NUM2INT(src);</div><div class='add'>+	dst-&gt;sshort = (unsigned short)NUM2INT(*src);</div><div class='ctx'> 	break;</div><div class='del'>-      case -TYPE_SHORT:</div><div class='del'>-	dst-&gt;sshort = (signed short)NUM2UINT(src);</div><div class='add'>+      case TYPE_USHORT:</div><div class='add'>+	dst-&gt;sshort = (signed short)NUM2UINT(*src);</div><div class='ctx'> 	break;</div><div class='ctx'>       case TYPE_INT:</div><div class='del'>-	dst-&gt;sint = NUM2INT(src);</div><div class='add'>+	dst-&gt;sint = NUM2INT(*src);</div><div class='ctx'> 	break;</div><div class='del'>-      case -TYPE_INT:</div><div class='del'>-	dst-&gt;uint = NUM2UINT(src);</div><div class='add'>+      case TYPE_UINT:</div><div class='add'>+	dst-&gt;uint = NUM2UINT(*src);</div><div class='ctx'> 	break;</div><div class='ctx'>       case TYPE_LONG:</div><div class='del'>-	dst-&gt;slong = NUM2LONG(src);</div><div class='add'>+	dst-&gt;slong = NUM2LONG(*src);</div><div class='ctx'> 	break;</div><div class='del'>-      case -TYPE_LONG:</div><div class='del'>-	dst-&gt;ulong = NUM2ULONG(src);</div><div class='add'>+      case TYPE_ULONG:</div><div class='add'>+	dst-&gt;ulong = NUM2ULONG(*src);</div><div class='ctx'> 	break;</div><div class='ctx'> #if HAVE_LONG_LONG</div><div class='ctx'>       case TYPE_LONG_LONG:</div><div class='del'>-	dst-&gt;slong_long = NUM2LL(src);</div><div class='add'>+	dst-&gt;slong_long = NUM2LL(*src);</div><div class='ctx'> 	break;</div><div class='del'>-      case -TYPE_LONG_LONG:</div><div class='del'>-	dst-&gt;ulong_long = NUM2ULL(src);</div><div class='add'>+      case TYPE_ULONG_LONG:</div><div class='add'>+	dst-&gt;ulong_long = NUM2ULL(*src);</div><div class='ctx'> 	break;</div><div class='ctx'> #endif</div><div class='ctx'>       case TYPE_FLOAT:</div><div class='del'>-	dst-&gt;ffloat = (float)NUM2DBL(src);</div><div class='add'>+	dst-&gt;ffloat = (float)NUM2DBL(*src);</div><div class='ctx'> 	break;</div><div class='ctx'>       case TYPE_DOUBLE:</div><div class='del'>-	dst-&gt;ddouble = NUM2DBL(src);</div><div class='add'>+	dst-&gt;ddouble = NUM2DBL(*src);</div><div class='add'>+	break;</div><div class='add'>+      case TYPE_CONST_STRING:</div><div class='add'>+        if (NIL_P(*src)) {</div><div class='add'>+            dst-&gt;pointer = NULL;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            dst-&gt;pointer = rb_string_value_cstr(src);</div><div class='add'>+        }</div><div class='ctx'> 	break;</div><div class='ctx'>       default:</div><div class='ctx'> 	rb_raise(rb_eRuntimeError, "unknown type %d", type);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+value_to_generic(int type, VALUE src, fiddle_generic *dst)</div><div class='add'>+{</div><div class='add'>+    /* src isn't safe from GC when type is TYPE_CONST_STRING and src</div><div class='add'>+     * isn't String. */</div><div class='add'>+    rb_fiddle_value_to_generic(type, &amp;src, dst);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-generic_to_value(VALUE rettype, fiddle_generic retval)</div><div class='add'>+rb_fiddle_generic_to_value(VALUE rettype, fiddle_generic retval)</div><div class='ctx'> {</div><div class='ctx'>     int type = NUM2INT(rettype);</div><div class='ctx'>     VALUE cPointer;</div><div class='hunk'>@@ -107,30 +283,37 @@ generic_to_value(VALUE rettype, fiddle_generic retval)</div><div class='ctx'>           PTR2NUM((void *)retval.pointer));</div><div class='ctx'>       case TYPE_CHAR:</div><div class='ctx'> 	return INT2NUM((signed char)retval.fffi_sarg);</div><div class='del'>-      case -TYPE_CHAR:</div><div class='add'>+      case TYPE_UCHAR:</div><div class='ctx'> 	return INT2NUM((unsigned char)retval.fffi_arg);</div><div class='ctx'>       case TYPE_SHORT:</div><div class='ctx'> 	return INT2NUM((signed short)retval.fffi_sarg);</div><div class='del'>-      case -TYPE_SHORT:</div><div class='add'>+      case TYPE_USHORT:</div><div class='ctx'> 	return INT2NUM((unsigned short)retval.fffi_arg);</div><div class='ctx'>       case TYPE_INT:</div><div class='ctx'> 	return INT2NUM((signed int)retval.fffi_sarg);</div><div class='del'>-      case -TYPE_INT:</div><div class='add'>+      case TYPE_UINT:</div><div class='ctx'> 	return UINT2NUM((unsigned int)retval.fffi_arg);</div><div class='ctx'>       case TYPE_LONG:</div><div class='ctx'> 	return LONG2NUM(retval.slong);</div><div class='del'>-      case -TYPE_LONG:</div><div class='add'>+      case TYPE_ULONG:</div><div class='ctx'> 	return ULONG2NUM(retval.ulong);</div><div class='ctx'> #if HAVE_LONG_LONG</div><div class='ctx'>       case TYPE_LONG_LONG:</div><div class='ctx'> 	return LL2NUM(retval.slong_long);</div><div class='del'>-      case -TYPE_LONG_LONG:</div><div class='add'>+      case TYPE_ULONG_LONG:</div><div class='ctx'> 	return ULL2NUM(retval.ulong_long);</div><div class='ctx'> #endif</div><div class='ctx'>       case TYPE_FLOAT:</div><div class='ctx'> 	return rb_float_new(retval.ffloat);</div><div class='ctx'>       case TYPE_DOUBLE:</div><div class='ctx'> 	return rb_float_new(retval.ddouble);</div><div class='add'>+      case TYPE_CONST_STRING:</div><div class='add'>+        if (retval.pointer) {</div><div class='add'>+            return rb_str_new_cstr(retval.pointer);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='ctx'>       default:</div><div class='ctx'> 	rb_raise(rb_eRuntimeError, "unknown type %d", type);</div><div class='ctx'>     }</div><div class='hunk'>@@ -138,4 +321,10 @@ generic_to_value(VALUE rettype, fiddle_generic retval)</div><div class='ctx'>     UNREACHABLE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+generic_to_value(VALUE rettype, fiddle_generic retval)</div><div class='add'>+{</div><div class='add'>+    return rb_fiddle_generic_to_value(rettype, retval);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* vim: set noet sw=4 sts=4 */</div><div class='head'>diff --git a/ext/fiddle/conversions.h b/ext/fiddle/conversions.h<br/>index cbc610bad2..c7c12a9234 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/conversions.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/conversions.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/conversions.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/conversions.h</a></div><div class='hunk'>@@ -24,13 +24,22 @@ typedef union</div><div class='ctx'>     void * pointer;        /* ffi_type_pointer */</div><div class='ctx'> } fiddle_generic;</div><div class='ctx'> </div><div class='add'>+VALUE rb_fiddle_type_ensure(VALUE type);</div><div class='add'>+ffi_type * rb_fiddle_int_to_ffi_type(int type);</div><div class='add'>+void rb_fiddle_value_to_generic(int type, VALUE *src, fiddle_generic *dst);</div><div class='add'>+VALUE rb_fiddle_generic_to_value(VALUE rettype, fiddle_generic retval);</div><div class='add'>+</div><div class='add'>+/* Deprecated. Use rb_fiddle_*() version. */</div><div class='ctx'> ffi_type * int_to_ffi_type(int type);</div><div class='del'>-void value_to_generic(int type, VALUE src, fiddle_generic * dst);</div><div class='add'>+void value_to_generic(int type, VALUE src, fiddle_generic *dst);</div><div class='ctx'> VALUE generic_to_value(VALUE rettype, fiddle_generic retval);</div><div class='ctx'> </div><div class='del'>-#define VALUE2GENERIC(_type, _src, _dst) value_to_generic((_type), (_src), (_dst))</div><div class='del'>-#define INT2FFI_TYPE(_type) int_to_ffi_type(_type)</div><div class='del'>-#define GENERIC2VALUE(_type, _retval) generic_to_value((_type), (_retval))</div><div class='add'>+#define VALUE2GENERIC(_type, _src, _dst)        \</div><div class='add'>+    rb_fiddle_value_to_generic((_type), &amp;(_src), (_dst))</div><div class='add'>+#define INT2FFI_TYPE(_type)                     \</div><div class='add'>+    rb_fiddle_int_to_ffi_type(_type)</div><div class='add'>+#define GENERIC2VALUE(_type, _retval)           \</div><div class='add'>+    rb_fiddle_generic_to_value((_type), (_retval))</div><div class='ctx'> </div><div class='ctx'> #if SIZEOF_VOIDP == SIZEOF_LONG</div><div class='ctx'> # define PTR2NUM(x)   (LONG2NUM((long)(x)))</div><div class='head'>diff --git a/ext/fiddle/depend b/ext/fiddle/depend<br/>index 7209469260..d6a053f05b 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/depend</a></div><div class='hunk'>@@ -54,20 +54,164 @@ realclean: realclean-$(LIBFFI_CLEAN)</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> closure.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> closure.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+closure.o: $(hdrdir)/ruby.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> closure.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> closure.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-closure.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> closure.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-closure.o: $(hdrdir)/ruby/io.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+closure.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> closure.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-closure.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-closure.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> closure.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> closure.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> closure.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> closure.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-closure.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-closure.o: $(top_srcdir)/internal.h</div><div class='ctx'> closure.o: closure.c</div><div class='ctx'> closure.o: closure.h</div><div class='ctx'> closure.o: conversions.h</div><div class='hunk'>@@ -75,14 +219,163 @@ closure.o: fiddle.h</div><div class='ctx'> closure.o: function.h</div><div class='ctx'> conversions.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> conversions.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> conversions.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> conversions.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> conversions.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+conversions.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> conversions.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> conversions.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> conversions.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> conversions.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-conversions.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> conversions.o: closure.h</div><div class='ctx'> conversions.o: conversions.c</div><div class='ctx'> conversions.o: conversions.h</div><div class='hunk'>@@ -90,14 +383,163 @@ conversions.o: fiddle.h</div><div class='ctx'> conversions.o: function.h</div><div class='ctx'> fiddle.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> fiddle.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> fiddle.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> fiddle.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> fiddle.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+fiddle.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> fiddle.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> fiddle.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> fiddle.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> fiddle.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-fiddle.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> fiddle.o: closure.h</div><div class='ctx'> fiddle.o: conversions.h</div><div class='ctx'> fiddle.o: fiddle.c</div><div class='hunk'>@@ -105,15 +547,164 @@ fiddle.o: fiddle.h</div><div class='ctx'> fiddle.o: function.h</div><div class='ctx'> function.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> function.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+function.o: $(hdrdir)/ruby.h</div><div class='add'>+function.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> function.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+function.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+function.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+function.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+function.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+function.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+function.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+function.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+function.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> function.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> function.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+function.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> function.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> function.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> function.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> function.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> function.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-function.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> function.o: closure.h</div><div class='ctx'> function.o: conversions.h</div><div class='ctx'> function.o: fiddle.h</div><div class='hunk'>@@ -121,33 +712,682 @@ function.o: function.c</div><div class='ctx'> function.o: function.h</div><div class='ctx'> handle.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> handle.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+handle.o: $(hdrdir)/ruby.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> handle.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> handle.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> handle.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+handle.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> handle.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> handle.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> handle.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> handle.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-handle.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> handle.o: closure.h</div><div class='ctx'> handle.o: conversions.h</div><div class='ctx'> handle.o: fiddle.h</div><div class='ctx'> handle.o: function.h</div><div class='ctx'> handle.o: handle.c</div><div class='add'>+memory_view.o: $(RUBY_EXTCONF_H)</div><div class='add'>+memory_view.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/memory_view.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/onigmo.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/oniguruma.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/st.h</div><div class='add'>+memory_view.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+memory_view.o: closure.h</div><div class='add'>+memory_view.o: conversions.h</div><div class='add'>+memory_view.o: fiddle.h</div><div class='add'>+memory_view.o: function.h</div><div class='add'>+memory_view.o: memory_view.c</div><div class='add'>+pinned.o: $(RUBY_EXTCONF_H)</div><div class='add'>+pinned.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/st.h</div><div class='add'>+pinned.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+pinned.o: closure.h</div><div class='add'>+pinned.o: conversions.h</div><div class='add'>+pinned.o: fiddle.h</div><div class='add'>+pinned.o: function.h</div><div class='add'>+pinned.o: pinned.c</div><div class='ctx'> pointer.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> pointer.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> pointer.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> pointer.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> pointer.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> pointer.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> pointer.o: $(hdrdir)/ruby/io.h</div><div class='add'>+pointer.o: $(hdrdir)/ruby/memory_view.h</div><div class='ctx'> pointer.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> pointer.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> pointer.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> pointer.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> pointer.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> pointer.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-pointer.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> pointer.o: closure.h</div><div class='ctx'> pointer.o: conversions.h</div><div class='ctx'> pointer.o: fiddle.h</div><div class='head'>diff --git a/ext/fiddle/extconf.rb b/ext/fiddle/extconf.rb<br/>index fce0cb4079..cf8b5223bb 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/extconf.rb</a></div><div class='hunk'>@@ -3,56 +3,91 @@ require 'mkmf'</div><div class='ctx'> </div><div class='ctx'> # :stopdoc:</div><div class='ctx'> </div><div class='del'>-bundle = enable_config('bundled-libffi')</div><div class='del'>-if ! bundle</div><div class='add'>+def gcc?</div><div class='add'>+  RbConfig::CONFIG["GCC"] == "yes"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def disable_optimization_build_flag(flags)</div><div class='add'>+  if gcc?</div><div class='add'>+    expanded_flags = RbConfig.expand(flags.dup)</div><div class='add'>+    optimization_option_pattern = /(^|\s)?-O\d(\s|$)?/</div><div class='add'>+    if optimization_option_pattern.match?(expanded_flags)</div><div class='add'>+      expanded_flags.gsub(optimization_option_pattern, '\\1-Og\\2')</div><div class='add'>+    else</div><div class='add'>+      flags + " -Og"</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+    flags</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+def enable_debug_build_flag(flags)</div><div class='add'>+  if gcc?</div><div class='add'>+    expanded_flags = RbConfig.expand(flags.dup)</div><div class='add'>+    debug_option_pattern = /(^|\s)-g(?:gdb)?\d?(\s|$)/</div><div class='add'>+    if debug_option_pattern.match?(expanded_flags)</div><div class='add'>+      expanded_flags.gsub(debug_option_pattern, '\\1-ggdb3\\2')</div><div class='add'>+    else</div><div class='add'>+      flags + " -ggdb3"</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+    flags</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+checking_for(checking_message("--enable-debug-build option")) do</div><div class='add'>+  enable_debug_build = enable_config("debug-build", false)</div><div class='add'>+  if enable_debug_build</div><div class='add'>+    $CFLAGS = disable_optimization_build_flag($CFLAGS)</div><div class='add'>+    $CFLAGS = enable_debug_build_flag($CFLAGS)</div><div class='add'>+  end</div><div class='add'>+  enable_debug_build</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+libffi_version = nil</div><div class='add'>+have_libffi = false</div><div class='add'>+bundle = with_config("libffi-source-dir")</div><div class='add'>+unless bundle</div><div class='ctx'>   dir_config 'libffi'</div><div class='ctx'> </div><div class='del'>-  pkg_config("libffi") and</div><div class='del'>-    ver = pkg_config("libffi", "modversion")</div><div class='add'>+  if pkg_config("libffi")</div><div class='add'>+    libffi_version = pkg_config("libffi", "modversion")</div><div class='add'>+  end</div><div class='ctx'> </div><div class='add'>+  have_ffi_header = false</div><div class='ctx'>   if have_header(ffi_header = 'ffi.h')</div><div class='del'>-    true</div><div class='add'>+    have_ffi_header = true</div><div class='ctx'>   elsif have_header(ffi_header = 'ffi/ffi.h')</div><div class='del'>-    $defs.push(format('-DUSE_HEADER_HACKS'))</div><div class='del'>-    true</div><div class='del'>-  end and (have_library('ffi') || have_library('libffi'))</div><div class='del'>-end or</div><div class='del'>-begin</div><div class='del'>-  # for https://github.com/ruby/fiddle</div><div class='del'>-  if bundle &amp;&amp; File.exist?("../../bin/extlibs.rb")</div><div class='del'>-    require "fileutils"</div><div class='del'>-    require_relative "../../bin/extlibs"</div><div class='del'>-    extlibs = ExtLibs.new</div><div class='del'>-    cache_dir = File.expand_path("../../tmp/.download_cache", $srcdir)</div><div class='del'>-    ext_dir = File.expand_path("../../ext", $srcdir)</div><div class='del'>-    Dir.glob("#{$srcdir}/libffi-*/").each{|dir| FileUtils.rm_rf(dir)}</div><div class='del'>-    extlibs.run(["--cache=#{cache_dir}", ext_dir])</div><div class='del'>-  end</div><div class='del'>-  ver = bundle != false &amp;&amp;</div><div class='del'>-        Dir.glob("#{$srcdir}/libffi-*/")</div><div class='del'>-        .map {|n| File.basename(n)}</div><div class='del'>-        .max_by {|n| n.scan(/\d+/).map(&amp;:to_i)}</div><div class='del'>-  unless ver</div><div class='del'>-    raise "missing libffi. Please install libffi."</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  srcdir = "#{$srcdir}/#{ver}"</div><div class='add'>+    $defs.push('-DUSE_HEADER_HACKS')</div><div class='add'>+    have_ffi_header = true</div><div class='add'>+  end</div><div class='add'>+  if have_ffi_header &amp;&amp; (have_library('ffi') || have_library('libffi'))</div><div class='add'>+    have_libffi = true</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+unless have_libffi</div><div class='add'>+  if bundle</div><div class='add'>+    libffi_srcdir = libffi_package_name = bundle</div><div class='add'>+  else</div><div class='add'>+    raise "missing libffi. Please install libffi or use --with-libffi-source-dir with libffi source location."</div><div class='add'>+  end</div><div class='ctx'>   ffi_header = 'ffi.h'</div><div class='ctx'>   libffi = Struct.new(*%I[dir srcdir builddir include lib a cflags ldflags opt arch]).new</div><div class='del'>-  libffi.dir = ver</div><div class='add'>+  libffi.dir = libffi_package_name</div><div class='ctx'>   if $srcdir == "."</div><div class='del'>-    libffi.builddir = "#{ver}/#{RUBY_PLATFORM}"</div><div class='add'>+    libffi.builddir = libffi_package_name</div><div class='ctx'>     libffi.srcdir = "."</div><div class='ctx'>   else</div><div class='ctx'>     libffi.builddir = libffi.dir</div><div class='del'>-    libffi.srcdir = relative_from(srcdir, "..")</div><div class='add'>+    libffi.srcdir = relative_from(libffi_srcdir, "..")</div><div class='ctx'>   end</div><div class='ctx'>   libffi.include = "#{libffi.builddir}/include"</div><div class='ctx'>   libffi.lib = "#{libffi.builddir}/.libs"</div><div class='ctx'>   libffi.a = "#{libffi.lib}/libffi_convenience.#{$LIBEXT}"</div><div class='ctx'>   nowarn = CONFIG.merge("warnflags"=&gt;"")</div><div class='ctx'>   libffi.cflags = RbConfig.expand("$(CFLAGS)".dup, nowarn)</div><div class='del'>-  ver = ver[/libffi-(.*)/, 1]</div><div class='add'>+  libffi_version = libffi_package_name[/libffi-(.*)/, 1]</div><div class='ctx'> </div><div class='ctx'>   FileUtils.mkdir_p(libffi.dir)</div><div class='ctx'>   libffi.opt = CONFIG['configure_args'][/'(-C)'/, 1]</div><div class='hunk'>@@ -81,7 +116,6 @@ begin</div><div class='ctx'>   args.concat %W[</div><div class='ctx'>     --srcdir=#{libffi.srcdir}</div><div class='ctx'>     --host=#{libffi.arch}</div><div class='del'>-    --enable-builddir=#{RUBY_PLATFORM}</div><div class='ctx'>   ]</div><div class='ctx'>   args &lt;&lt; ($enable_shared || !$static ? '--enable-shared' : '--enable-static')</div><div class='ctx'>   args &lt;&lt; libffi.opt if libffi.opt</div><div class='hunk'>@@ -98,7 +132,7 @@ begin</div><div class='ctx'>       begin</div><div class='ctx'>         IO.copy_stream(libffi.dir + "/config.log", Logging.instance_variable_get(:@logfile))</div><div class='ctx'>       rescue SystemCallError =&gt; e</div><div class='del'>-        Logfile.message("%s\n", e.message)</div><div class='add'>+        Logging.message("%s\n", e.message)</div><div class='ctx'>       end</div><div class='ctx'>       raise "failed to configure libffi. Please install libffi."</div><div class='ctx'>     end</div><div class='hunk'>@@ -107,18 +141,37 @@ begin</div><div class='ctx'>     FileUtils.rm_f("#{libffi.include}/ffitarget.h")</div><div class='ctx'>   end</div><div class='ctx'>   unless File.file?("#{libffi.include}/ffitarget.h")</div><div class='del'>-    FileUtils.cp("#{srcdir}/src/x86/ffitarget.h", libffi.include, preserve: true)</div><div class='add'>+    FileUtils.cp("#{libffi_srcdir}/src/x86/ffitarget.h", libffi.include, preserve: true)</div><div class='ctx'>   end</div><div class='ctx'>   $INCFLAGS &lt;&lt; " -I" &lt;&lt; libffi.include</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-if ver</div><div class='del'>-  ver = ver.gsub(/-rc\d+/, '') # If ver contains rc version, just ignored.</div><div class='del'>-  ver = (ver.split('.') + [0,0])[0,3]</div><div class='del'>-  $defs.push(%{-DRUBY_LIBFFI_MODVERSION=#{ '%d%03d%03d' % ver }})</div><div class='add'>+if libffi_version</div><div class='add'>+  # If libffi_version contains rc version, just ignored.</div><div class='add'>+  libffi_version = libffi_version.gsub(/-rc\d+/, '')</div><div class='add'>+  libffi_version = (libffi_version.split('.').map(&amp;:to_i) + [0,0])[0,3]</div><div class='add'>+  $defs.push(%{-DRUBY_LIBFFI_MODVERSION=#{ '%d%03d%03d' % libffi_version }})</div><div class='add'>+  warn "libffi_version: #{libffi_version.join('.')}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+case</div><div class='add'>+when $mswin, $mingw, (libffi_version &amp;&amp; (libffi_version &lt;=&gt; [3, 2]) &gt;= 0)</div><div class='add'>+  $defs &lt;&lt; "-DUSE_FFI_CLOSURE_ALLOC=1"</div><div class='add'>+when (libffi_version &amp;&amp; (libffi_version &lt;=&gt; [3, 2]) &lt; 0)</div><div class='add'>+else</div><div class='add'>+  have_func('ffi_closure_alloc', ffi_header)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+if libffi_version</div><div class='add'>+  if (libffi_version &lt;=&gt; [3, 0, 11]) &gt;= 0</div><div class='add'>+    $defs &lt;&lt; "-DHAVE_FFI_PREP_CIF_VAR"</div><div class='add'>+  end</div><div class='add'>+else</div><div class='add'>+  have_func('ffi_prep_cif_var', ffi_header)</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> have_header 'sys/mman.h'</div><div class='add'>+have_header 'link.h'</div><div class='ctx'> </div><div class='ctx'> if have_header "dlfcn.h"</div><div class='ctx'>   have_library "dl"</div><div class='hunk'>@@ -128,10 +181,14 @@ if have_header "dlfcn.h"</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   have_func "dlerror"</div><div class='add'>+  have_func "dlinfo"</div><div class='add'>+  have_const("RTLD_DI_LINKMAP", "dlfcn.h")</div><div class='ctx'> elsif have_header "windows.h"</div><div class='del'>-  %w{ LoadLibrary FreeLibrary GetProcAddress }.each do |func|</div><div class='add'>+  %w{ LoadLibrary FreeLibrary GetProcAddress GetModuleFileName }.each do |func|</div><div class='ctx'>     abort "missing function #{func}" unless have_func(func)</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  have_library "ws2_32"</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> have_const('FFI_STDCALL', ffi_header)</div><div class='hunk'>@@ -142,19 +199,20 @@ types.each do |type, signed|</div><div class='ctx'>   if /^\#define\s+SIZEOF_#{type}\s+(SIZEOF_(.+)|\d+)/ =~ config</div><div class='ctx'>     if size = $2 and size != 'VOIDP'</div><div class='ctx'>       size = types.fetch(size) {size}</div><div class='del'>-      $defs &lt;&lt; format("-DTYPE_%s=TYPE_%s", signed||type, size)</div><div class='add'>+      $defs &lt;&lt; "-DTYPE_#{signed||type}=TYPE_#{size}"</div><div class='ctx'>     end</div><div class='ctx'>     if signed</div><div class='ctx'>       check_signedness(type.downcase, "stddef.h")</div><div class='ctx'>     end</div><div class='add'>+  else</div><div class='add'>+    check_signedness(type.downcase, "stddef.h")</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> if libffi</div><div class='del'>-  $LOCAL_LIBS.prepend("./#{libffi.a} ").strip! # to exts.mk</div><div class='add'>+  $LOCAL_LIBS.prepend("#{libffi.a} ").strip! # to exts.mk</div><div class='ctx'>   $INCFLAGS.gsub!(/-I#{libffi.dir}/, '-I$(LIBFFI_DIR)')</div><div class='ctx'> end</div><div class='del'>-$INCFLAGS &lt;&lt; " -I$(top_srcdir)"</div><div class='ctx'> create_makefile 'fiddle' do |conf|</div><div class='ctx'>   if !libffi</div><div class='ctx'>     next conf &lt;&lt; "LIBFFI_CLEAN = none\n"</div><div class='head'>diff --git a/ext/fiddle/extlibs b/ext/fiddle/extlibs<br/>deleted file mode 100644<br/>index 290b814590..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/extlibs?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/extlibs</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,5 +0,0 @@</div><div class='del'>-http://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz \</div><div class='del'>-  md5:83b89587607e3eb65c70d361f13bab43 \</div><div class='del'>-  sha512:980ca30a8d76f963fca722432b1fe5af77d7a4e4d2eac5144fbc5374d4c596609a293440573f4294207e1bdd9fda80ad1e1cafb2ffb543df5a275bc3bd546483 \</div><div class='del'>-  #</div><div class='del'>-	win32/libffi-3.2.1-mswin.patch -p0</div><div class='head'>diff --git a/ext/fiddle/fiddle.c b/ext/fiddle/fiddle.c<br/>index 9f3d1537d6..c06cd5634a 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/fiddle.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/fiddle.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/fiddle.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/fiddle.c</a></div><div class='hunk'>@@ -1,41 +1,15 @@</div><div class='ctx'> #include &lt;fiddle.h&gt;</div><div class='ctx'> </div><div class='ctx'> VALUE mFiddle;</div><div class='add'>+VALUE rb_eFiddleDLError;</div><div class='ctx'> VALUE rb_eFiddleError;</div><div class='ctx'> </div><div class='del'>-#ifndef TYPE_SSIZE_T</div><div class='del'>-# if SIZEOF_SIZE_T == SIZEOF_INT</div><div class='del'>-#   define TYPE_SSIZE_T TYPE_INT</div><div class='del'>-# elif SIZEOF_SIZE_T == SIZEOF_LONG</div><div class='del'>-#   define TYPE_SSIZE_T TYPE_LONG</div><div class='del'>-# elif defined HAVE_LONG_LONG &amp;&amp; SIZEOF_SIZE_T == SIZEOF_LONG_LONG</div><div class='del'>-#   define TYPE_SSIZE_T TYPE_LONG_LONG</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-#define TYPE_SIZE_T (-1*SIGNEDNESS_OF_SIZE_T*TYPE_SSIZE_T)</div><div class='del'>-</div><div class='del'>-#ifndef TYPE_PTRDIFF_T</div><div class='del'>-# if SIZEOF_PTRDIFF_T == SIZEOF_INT</div><div class='del'>-#   define TYPE_PTRDIFF_T TYPE_INT</div><div class='del'>-# elif SIZEOF_PTRDIFF_T == SIZEOF_LONG</div><div class='del'>-#   define TYPE_PTRDIFF_T TYPE_LONG</div><div class='del'>-# elif defined HAVE_LONG_LONG &amp;&amp; SIZEOF_PTRDIFF_T == SIZEOF_LONG_LONG</div><div class='del'>-#   define TYPE_PTRDIFF_T TYPE_LONG_LONG</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='add'>+void Init_fiddle_pointer(void);</div><div class='add'>+void Init_fiddle_pinned(void);</div><div class='ctx'> </div><div class='del'>-#ifndef TYPE_INTPTR_T</div><div class='del'>-# if SIZEOF_INTPTR_T == SIZEOF_INT</div><div class='del'>-#   define TYPE_INTPTR_T TYPE_INT</div><div class='del'>-# elif SIZEOF_INTPTR_T == SIZEOF_LONG</div><div class='del'>-#   define TYPE_INTPTR_T TYPE_LONG</div><div class='del'>-# elif defined HAVE_LONG_LONG &amp;&amp; SIZEOF_INTPTR_T == SIZEOF_LONG_LONG</div><div class='del'>-#   define TYPE_INTPTR_T TYPE_LONG_LONG</div><div class='del'>-# endif</div><div class='add'>+#ifdef HAVE_RUBY_MEMORY_VIEW_H</div><div class='add'>+void Init_fiddle_memory_view(void);</div><div class='ctx'> #endif</div><div class='del'>-#define TYPE_UINTPTR_T (-TYPE_INTPTR_T)</div><div class='del'>-</div><div class='del'>-void Init_fiddle_pointer(void);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq: Fiddle.malloc(size)</div><div class='hunk'>@@ -47,8 +21,7 @@ static VALUE</div><div class='ctx'> rb_fiddle_malloc(VALUE self, VALUE size)</div><div class='ctx'> {</div><div class='ctx'>     void *ptr;</div><div class='del'>-</div><div class='del'>-    ptr = (void*)ruby_xmalloc(NUM2SIZET(size));</div><div class='add'>+    ptr = (void*)ruby_xcalloc(1, NUM2SIZET(size));</div><div class='ctx'>     return PTR2NUM(ptr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -164,97 +137,220 @@ Init_fiddle(void)</div><div class='ctx'>     mFiddle = rb_define_module("Fiddle");</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='add'>+     * Document-class: Fiddle::Error</div><div class='add'>+     *</div><div class='add'>+     * Generic error class for Fiddle</div><div class='add'>+     */</div><div class='add'>+    rb_eFiddleError = rb_define_class_under(mFiddle, "Error", rb_eStandardError);</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Ruby installed by RubyInstaller for Windows always require</div><div class='add'>+     * bundled Fiddle because ruby_installer/runtime/dll_directory.rb</div><div class='add'>+     * requires Fiddle. It's used by</div><div class='add'>+     * rubygems/defaults/operating_system.rb. It means that the</div><div class='add'>+     * bundled Fiddle is always required on initialization.</div><div class='add'>+     *</div><div class='add'>+     * We just remove existing Fiddle::DLError here to override</div><div class='add'>+     * the bundled Fiddle.</div><div class='add'>+     */</div><div class='add'>+    if (rb_const_defined(mFiddle, rb_intern("DLError"))) {</div><div class='add'>+        rb_const_remove(mFiddle, rb_intern("DLError"));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /*</div><div class='ctx'>      * Document-class: Fiddle::DLError</div><div class='ctx'>      *</div><div class='ctx'>      * standard dynamic load exception</div><div class='ctx'>      */</div><div class='del'>-    rb_eFiddleError = rb_define_class_under(mFiddle, "DLError", rb_eStandardError);</div><div class='add'>+    rb_eFiddleDLError = rb_define_class_under(mFiddle, "DLError", rb_eFiddleError);</div><div class='add'>+</div><div class='add'>+    VALUE mFiddleTypes = rb_define_module_under(mFiddle, "Types");</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_VOID</div><div class='add'>+    /* Document-const: Fiddle::Types::VOID</div><div class='ctx'>      *</div><div class='ctx'>      * C type - void</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_VOID",      INT2NUM(TYPE_VOID));</div><div class='add'>+    rb_define_const(mFiddleTypes, "VOID",      INT2NUM(TYPE_VOID));</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_VOIDP</div><div class='add'>+    /* Document-const: Fiddle::Types::VOIDP</div><div class='ctx'>      *</div><div class='ctx'>      * C type - void*</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_VOIDP",     INT2NUM(TYPE_VOIDP));</div><div class='add'>+    rb_define_const(mFiddleTypes, "VOIDP",     INT2NUM(TYPE_VOIDP));</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_CHAR</div><div class='add'>+    /* Document-const: Fiddle::Types::CHAR</div><div class='ctx'>      *</div><div class='ctx'>      * C type - char</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_CHAR",      INT2NUM(TYPE_CHAR));</div><div class='add'>+    rb_define_const(mFiddleTypes, "CHAR",      INT2NUM(TYPE_CHAR));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Fiddle::Types::UCHAR</div><div class='add'>+     *</div><div class='add'>+     * C type - unsigned char</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "UCHAR",      INT2NUM(TYPE_UCHAR));</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_SHORT</div><div class='add'>+    /* Document-const: Fiddle::Types::SHORT</div><div class='ctx'>      *</div><div class='ctx'>      * C type - short</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_SHORT",     INT2NUM(TYPE_SHORT));</div><div class='add'>+    rb_define_const(mFiddleTypes, "SHORT",     INT2NUM(TYPE_SHORT));</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_INT</div><div class='add'>+    /* Document-const: Fiddle::Types::USHORT</div><div class='add'>+     *</div><div class='add'>+     * C type - unsigned short</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "USHORT",     INT2NUM(TYPE_USHORT));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Fiddle::Types::INT</div><div class='ctx'>      *</div><div class='ctx'>      * C type - int</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_INT",       INT2NUM(TYPE_INT));</div><div class='add'>+    rb_define_const(mFiddleTypes, "INT",       INT2NUM(TYPE_INT));</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_LONG</div><div class='add'>+    /* Document-const: Fiddle::Types::UINT</div><div class='add'>+     *</div><div class='add'>+     * C type - unsigned int</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "UINT",       INT2NUM(TYPE_UINT));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Fiddle::Types::LONG</div><div class='ctx'>      *</div><div class='ctx'>      * C type - long</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_LONG",      INT2NUM(TYPE_LONG));</div><div class='add'>+    rb_define_const(mFiddleTypes, "LONG",      INT2NUM(TYPE_LONG));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Fiddle::Types::ULONG</div><div class='add'>+     *</div><div class='add'>+     * C type - long</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "ULONG",      INT2NUM(TYPE_ULONG));</div><div class='ctx'> </div><div class='ctx'> #if HAVE_LONG_LONG</div><div class='del'>-    /* Document-const: TYPE_LONG_LONG</div><div class='add'>+    /* Document-const: Fiddle::Types::LONG_LONG</div><div class='add'>+     *</div><div class='add'>+     * C type - long long</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "LONG_LONG", INT2NUM(TYPE_LONG_LONG));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Fiddle::Types::ULONG_LONG</div><div class='ctx'>      *</div><div class='ctx'>      * C type - long long</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_LONG_LONG", INT2NUM(TYPE_LONG_LONG));</div><div class='add'>+    rb_define_const(mFiddleTypes, "ULONG_LONG", INT2NUM(TYPE_ULONG_LONG));</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef TYPE_INT8_T</div><div class='add'>+    /* Document-const: Fiddle::Types::INT8_T</div><div class='add'>+     *</div><div class='add'>+     * C type - int8_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "INT8_T",    INT2NUM(TYPE_INT8_T));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Fiddle::Types::UINT8_T</div><div class='add'>+     *</div><div class='add'>+     * C type - uint8_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "UINT8_T",    INT2NUM(TYPE_UINT8_T));</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef TYPE_INT16_T</div><div class='add'>+    /* Document-const: Fiddle::Types::INT16_T</div><div class='add'>+     *</div><div class='add'>+     * C type - int16_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "INT16_T",   INT2NUM(TYPE_INT16_T));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Fiddle::Types::UINT16_T</div><div class='add'>+     *</div><div class='add'>+     * C type - uint16_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "UINT16_T",   INT2NUM(TYPE_UINT16_T));</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef TYPE_INT32_T</div><div class='add'>+    /* Document-const: Fiddle::Types::INT32_T</div><div class='add'>+     *</div><div class='add'>+     * C type - int32_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "INT32_T",   INT2NUM(TYPE_INT32_T));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Fiddle::Types::UINT32_T</div><div class='add'>+     *</div><div class='add'>+     * C type - uint32_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "UINT32_T",   INT2NUM(TYPE_UINT32_T));</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef TYPE_INT64_T</div><div class='add'>+    /* Document-const: Fiddle::Types::INT64_T</div><div class='add'>+     *</div><div class='add'>+     * C type - int64_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "INT64_T",   INT2NUM(TYPE_INT64_T));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Fiddle::Types::UINT64_T</div><div class='add'>+     *</div><div class='add'>+     * C type - uint64_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "UINT64_T",   INT2NUM(TYPE_UINT64_T));</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_FLOAT</div><div class='add'>+    /* Document-const: Fiddle::Types::FLOAT</div><div class='ctx'>      *</div><div class='ctx'>      * C type - float</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_FLOAT",     INT2NUM(TYPE_FLOAT));</div><div class='add'>+    rb_define_const(mFiddleTypes, "FLOAT",     INT2NUM(TYPE_FLOAT));</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_DOUBLE</div><div class='add'>+    /* Document-const: Fiddle::Types::DOUBLE</div><div class='ctx'>      *</div><div class='ctx'>      * C type - double</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_DOUBLE",    INT2NUM(TYPE_DOUBLE));</div><div class='add'>+    rb_define_const(mFiddleTypes, "DOUBLE",    INT2NUM(TYPE_DOUBLE));</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_SIZE_T</div><div class='add'>+#ifdef HAVE_FFI_PREP_CIF_VAR</div><div class='add'>+    /* Document-const: Fiddle::Types::VARIADIC</div><div class='add'>+     *</div><div class='add'>+     * C type - ...</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "VARIADIC",  INT2NUM(TYPE_VARIADIC));</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    /* Document-const: Fiddle::Types::CONST_STRING</div><div class='add'>+     *</div><div class='add'>+     * C type - const char* ('\0' terminated const char*)</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddleTypes, "CONST_STRING",  INT2NUM(TYPE_CONST_STRING));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Fiddle::Types::SIZE_T</div><div class='ctx'>      *</div><div class='ctx'>      * C type - size_t</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_SIZE_T",   INT2NUM(TYPE_SIZE_T));</div><div class='add'>+    rb_define_const(mFiddleTypes, "SIZE_T",   INT2NUM(TYPE_SIZE_T));</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_SSIZE_T</div><div class='add'>+    /* Document-const: Fiddle::Types::SSIZE_T</div><div class='ctx'>      *</div><div class='ctx'>      * C type - ssize_t</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_SSIZE_T",   INT2NUM(TYPE_SSIZE_T));</div><div class='add'>+    rb_define_const(mFiddleTypes, "SSIZE_T",   INT2NUM(TYPE_SSIZE_T));</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_PTRDIFF_T</div><div class='add'>+    /* Document-const: Fiddle::Types::PTRDIFF_T</div><div class='ctx'>      *</div><div class='ctx'>      * C type - ptrdiff_t</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_PTRDIFF_T", INT2NUM(TYPE_PTRDIFF_T));</div><div class='add'>+    rb_define_const(mFiddleTypes, "PTRDIFF_T", INT2NUM(TYPE_PTRDIFF_T));</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_INTPTR_T</div><div class='add'>+    /* Document-const: Fiddle::Types::INTPTR_T</div><div class='ctx'>      *</div><div class='ctx'>      * C type - intptr_t</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_INTPTR_T",  INT2NUM(TYPE_INTPTR_T));</div><div class='add'>+    rb_define_const(mFiddleTypes, "INTPTR_T",  INT2NUM(TYPE_INTPTR_T));</div><div class='ctx'> </div><div class='del'>-    /* Document-const: TYPE_UINTPTR_T</div><div class='add'>+    /* Document-const: Fiddle::Types::UINTPTR_T</div><div class='ctx'>      *</div><div class='ctx'>      * C type - uintptr_t</div><div class='ctx'>      */</div><div class='del'>-    rb_define_const(mFiddle, "TYPE_UINTPTR_T",  INT2NUM(TYPE_UINTPTR_T));</div><div class='add'>+    rb_define_const(mFiddleTypes, "UINTPTR_T",  INT2NUM(TYPE_UINTPTR_T));</div><div class='ctx'> </div><div class='ctx'>     /* Document-const: ALIGN_VOIDP</div><div class='ctx'>      *</div><div class='hunk'>@@ -294,6 +390,30 @@ Init_fiddle(void)</div><div class='ctx'>     rb_define_const(mFiddle, "ALIGN_LONG_LONG",  INT2NUM(ALIGN_LONG_LONG));</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+    /* Document-const: ALIGN_INT8_T</div><div class='add'>+     *</div><div class='add'>+     * The alignment size of a int8_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "ALIGN_INT8_T",  INT2NUM(ALIGN_INT8_T));</div><div class='add'>+</div><div class='add'>+    /* Document-const: ALIGN_INT16_T</div><div class='add'>+     *</div><div class='add'>+     * The alignment size of a int16_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "ALIGN_INT16_T", INT2NUM(ALIGN_INT16_T));</div><div class='add'>+</div><div class='add'>+    /* Document-const: ALIGN_INT32_T</div><div class='add'>+     *</div><div class='add'>+     * The alignment size of a int32_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "ALIGN_INT32_T", INT2NUM(ALIGN_INT32_T));</div><div class='add'>+</div><div class='add'>+    /* Document-const: ALIGN_INT64_T</div><div class='add'>+     *</div><div class='add'>+     * The alignment size of a int64_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "ALIGN_INT64_T", INT2NUM(ALIGN_INT64_T));</div><div class='add'>+</div><div class='ctx'>     /* Document-const: ALIGN_FLOAT</div><div class='ctx'>      *</div><div class='ctx'>      * The alignment size of a float</div><div class='hunk'>@@ -358,32 +478,110 @@ Init_fiddle(void)</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_const(mFiddle, "SIZEOF_CHAR",  INT2NUM(sizeof(char)));</div><div class='ctx'> </div><div class='add'>+    /* Document-const: SIZEOF_UCHAR</div><div class='add'>+     *</div><div class='add'>+     * size of a unsigned char</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_UCHAR",  INT2NUM(sizeof(unsigned char)));</div><div class='add'>+</div><div class='ctx'>     /* Document-const: SIZEOF_SHORT</div><div class='ctx'>      *</div><div class='ctx'>      * size of a short</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_const(mFiddle, "SIZEOF_SHORT", INT2NUM(sizeof(short)));</div><div class='ctx'> </div><div class='add'>+    /* Document-const: SIZEOF_USHORT</div><div class='add'>+     *</div><div class='add'>+     * size of a unsigned short</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_USHORT", INT2NUM(sizeof(unsigned short)));</div><div class='add'>+</div><div class='ctx'>     /* Document-const: SIZEOF_INT</div><div class='ctx'>      *</div><div class='ctx'>      * size of an int</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_const(mFiddle, "SIZEOF_INT",   INT2NUM(sizeof(int)));</div><div class='ctx'> </div><div class='add'>+    /* Document-const: SIZEOF_UINT</div><div class='add'>+     *</div><div class='add'>+     * size of an unsigned int</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_UINT",   INT2NUM(sizeof(unsigned int)));</div><div class='add'>+</div><div class='ctx'>     /* Document-const: SIZEOF_LONG</div><div class='ctx'>      *</div><div class='ctx'>      * size of a long</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_const(mFiddle, "SIZEOF_LONG",  INT2NUM(sizeof(long)));</div><div class='ctx'> </div><div class='add'>+    /* Document-const: SIZEOF_ULONG</div><div class='add'>+     *</div><div class='add'>+     * size of a unsigned long</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_ULONG",  INT2NUM(sizeof(unsigned long)));</div><div class='add'>+</div><div class='ctx'> #if HAVE_LONG_LONG</div><div class='ctx'>     /* Document-const: SIZEOF_LONG_LONG</div><div class='ctx'>      *</div><div class='ctx'>      * size of a long long</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_const(mFiddle, "SIZEOF_LONG_LONG",  INT2NUM(sizeof(LONG_LONG)));</div><div class='add'>+</div><div class='add'>+    /* Document-const: SIZEOF_ULONG_LONG</div><div class='add'>+     *</div><div class='add'>+     * size of a unsigned long long</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_ULONG_LONG",  INT2NUM(sizeof(unsigned LONG_LONG)));</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+    /* Document-const: SIZEOF_INT8_T</div><div class='add'>+     *</div><div class='add'>+     * size of a int8_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_INT8_T",  INT2NUM(sizeof(int8_t)));</div><div class='add'>+</div><div class='add'>+    /* Document-const: SIZEOF_UINT8_T</div><div class='add'>+     *</div><div class='add'>+     * size of a uint8_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_UINT8_T",  INT2NUM(sizeof(uint8_t)));</div><div class='add'>+</div><div class='add'>+    /* Document-const: SIZEOF_INT16_T</div><div class='add'>+     *</div><div class='add'>+     * size of a int16_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_INT16_T", INT2NUM(sizeof(int16_t)));</div><div class='add'>+</div><div class='add'>+    /* Document-const: SIZEOF_UINT16_T</div><div class='add'>+     *</div><div class='add'>+     * size of a uint16_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_UINT16_T", INT2NUM(sizeof(uint16_t)));</div><div class='add'>+</div><div class='add'>+    /* Document-const: SIZEOF_INT32_T</div><div class='add'>+     *</div><div class='add'>+     * size of a int32_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_INT32_T", INT2NUM(sizeof(int32_t)));</div><div class='add'>+</div><div class='add'>+    /* Document-const: SIZEOF_UINT32_T</div><div class='add'>+     *</div><div class='add'>+     * size of a uint32_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_UINT32_T", INT2NUM(sizeof(uint32_t)));</div><div class='add'>+</div><div class='add'>+    /* Document-const: SIZEOF_INT64_T</div><div class='add'>+     *</div><div class='add'>+     * size of a int64_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_INT64_T", INT2NUM(sizeof(int64_t)));</div><div class='add'>+</div><div class='add'>+    /* Document-const: SIZEOF_UINT64_T</div><div class='add'>+     *</div><div class='add'>+     * size of a uint64_t</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_UINT64_T", INT2NUM(sizeof(uint64_t)));</div><div class='add'>+</div><div class='ctx'>     /* Document-const: SIZEOF_FLOAT</div><div class='ctx'>      *</div><div class='ctx'>      * size of a float</div><div class='hunk'>@@ -426,6 +624,12 @@ Init_fiddle(void)</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_const(mFiddle, "SIZEOF_UINTPTR_T",  INT2NUM(sizeof(uintptr_t)));</div><div class='ctx'> </div><div class='add'>+    /* Document-const: SIZEOF_CONST_STRING</div><div class='add'>+     *</div><div class='add'>+     * size of a const char*</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "SIZEOF_CONST_STRING", INT2NUM(sizeof(const char*)));</div><div class='add'>+</div><div class='ctx'>     /* Document-const: RUBY_FREE</div><div class='ctx'>      *</div><div class='ctx'>      * Address of the ruby_xfree() function</div><div class='hunk'>@@ -446,9 +650,38 @@ Init_fiddle(void)</div><div class='ctx'>     rb_define_module_function(mFiddle, "realloc", rb_fiddle_realloc, 2);</div><div class='ctx'>     rb_define_module_function(mFiddle, "free", rb_fiddle_free, 1);</div><div class='ctx'> </div><div class='add'>+    /* Document-const: Qtrue</div><div class='add'>+     *</div><div class='add'>+     * The value of Qtrue</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "Qtrue", INT2NUM(Qtrue));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Qfalse</div><div class='add'>+     *</div><div class='add'>+     * The value of Qfalse</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "Qfalse", INT2NUM(Qfalse));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Qnil</div><div class='add'>+     *</div><div class='add'>+     * The value of Qnil</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "Qnil", INT2NUM(Qnil));</div><div class='add'>+</div><div class='add'>+    /* Document-const: Qundef</div><div class='add'>+     *</div><div class='add'>+     * The value of Qundef</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(mFiddle, "Qundef", INT2NUM(Qundef));</div><div class='add'>+</div><div class='ctx'>     Init_fiddle_function();</div><div class='ctx'>     Init_fiddle_closure();</div><div class='ctx'>     Init_fiddle_handle();</div><div class='ctx'>     Init_fiddle_pointer();</div><div class='add'>+    Init_fiddle_pinned();</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_RUBY_MEMORY_VIEW_H</div><div class='add'>+    Init_fiddle_memory_view();</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> /* vim: set noet sws=4 sw=4: */</div><div class='head'>diff --git a/ext/fiddle/fiddle.gemspec b/ext/fiddle/fiddle.gemspec<br/>index b29f4ec788..878109395b 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/fiddle.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/fiddle.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/fiddle.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/fiddle.gemspec</a></div><div class='hunk'>@@ -1,23 +1,59 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+version_module = Module.new do</div><div class='add'>+  version_rb = File.join(__dir__, "lib/fiddle/version.rb")</div><div class='add'>+  module_eval(File.read(version_rb), version_rb, __LINE__)</div><div class='add'>+end</div><div class='add'>+</div><div class='ctx'> Gem::Specification.new do |spec|</div><div class='ctx'>   spec.name          = "fiddle"</div><div class='del'>-  spec.version       = '1.0.0'</div><div class='add'>+  spec.version       = version_module::Fiddle::VERSION</div><div class='ctx'>   spec.authors       = ["Aaron Patterson", "SHIBATA Hiroshi"]</div><div class='ctx'>   spec.email         = ["aaron@tenderlovemaking.com", "hsbt@ruby-lang.org"]</div><div class='ctx'> </div><div class='ctx'>   spec.summary       = %q{A libffi wrapper for Ruby.}</div><div class='ctx'>   spec.description   = %q{A libffi wrapper for Ruby.}</div><div class='ctx'>   spec.homepage      = "https://github.com/ruby/fiddle"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> </div><div class='del'>-  spec.files         = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "ext/fiddle/closure.c", "ext/fiddle/closure.h", "ext/fiddle/conversions.c", "ext/fiddle/conversions.h", "ext/fiddle/extconf.rb", "ext/fiddle/extlibs", "ext/fiddle/fiddle.c", "ext/fiddle/fiddle.h", "ext/fiddle/function.c", "ext/fiddle/function.h", "ext/fiddle/handle.c", "ext/fiddle/pointer.c", "ext/fiddle/win32/fficonfig.h", "ext/fiddle/win32/libffi-3.2.1-mswin.patch", "ext/fiddle/win32/libffi-config.rb", "ext/fiddle/win32/libffi.mk.tmpl", "fiddle.gemspec", "lib/fiddle.rb", "lib/fiddle/closure.rb", "lib/fiddle/cparser.rb", "lib/fiddle/function.rb", "lib/fiddle/import.rb", "lib/fiddle/pack.rb", "lib/fiddle/struct.rb", "lib/fiddle/types.rb", "lib/fiddle/value.rb"]</div><div class='del'>-  spec.bindir        = "exe"</div><div class='del'>-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='add'>+  spec.files         = [</div><div class='add'>+    "LICENSE.txt",</div><div class='add'>+    "README.md",</div><div class='add'>+    "Rakefile",</div><div class='add'>+    "ext/fiddle/closure.c",</div><div class='add'>+    "ext/fiddle/closure.h",</div><div class='add'>+    "ext/fiddle/conversions.c",</div><div class='add'>+    "ext/fiddle/conversions.h",</div><div class='add'>+    "ext/fiddle/depend",</div><div class='add'>+    "ext/fiddle/extconf.rb",</div><div class='add'>+    "ext/fiddle/fiddle.c",</div><div class='add'>+    "ext/fiddle/fiddle.h",</div><div class='add'>+    "ext/fiddle/function.c",</div><div class='add'>+    "ext/fiddle/function.h",</div><div class='add'>+    "ext/fiddle/handle.c",</div><div class='add'>+    "ext/fiddle/memory_view.c",</div><div class='add'>+    "ext/fiddle/pinned.c",</div><div class='add'>+    "ext/fiddle/pointer.c",</div><div class='add'>+    "ext/fiddle/win32/fficonfig.h",</div><div class='add'>+    "ext/fiddle/win32/libffi-3.2.1-mswin.patch",</div><div class='add'>+    "ext/fiddle/win32/libffi-config.rb",</div><div class='add'>+    "ext/fiddle/win32/libffi.mk.tmpl",</div><div class='add'>+    "fiddle.gemspec",</div><div class='add'>+    "lib/fiddle.rb",</div><div class='add'>+    "lib/fiddle/closure.rb",</div><div class='add'>+    "lib/fiddle/cparser.rb",</div><div class='add'>+    "lib/fiddle/function.rb",</div><div class='add'>+    "lib/fiddle/import.rb",</div><div class='add'>+    "lib/fiddle/pack.rb",</div><div class='add'>+    "lib/fiddle/struct.rb",</div><div class='add'>+    "lib/fiddle/types.rb",</div><div class='add'>+    "lib/fiddle/value.rb",</div><div class='add'>+    "lib/fiddle/version.rb",</div><div class='add'>+  ]</div><div class='ctx'>   spec.require_paths = ["lib"]</div><div class='add'>+  spec.extensions = ["ext/fiddle/extconf.rb"]</div><div class='ctx'> </div><div class='del'>-  spec.required_ruby_version = "&gt;= 2.3.0"</div><div class='add'>+  spec.required_ruby_version = "&gt;= 2.5.0"</div><div class='ctx'> </div><div class='del'>-  spec.add_development_dependency "bundler"</div><div class='del'>-  spec.add_development_dependency "rake"</div><div class='del'>-  spec.add_development_dependency "rake-compiler"</div><div class='add'>+  spec.metadata["msys2_mingw_dependencies"] = "libffi"</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/fiddle/fiddle.h b/ext/fiddle/fiddle.h<br/>index d2583c1cbf..10eb9ceedb 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/fiddle.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/fiddle.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/fiddle.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/fiddle.h</a></div><div class='hunk'>@@ -12,6 +12,10 @@</div><div class='ctx'> #include &lt;sys/mman.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#if defined(HAVE_LINK_H)</div><div class='add'>+# include &lt;link.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #if defined(HAVE_DLFCN_H)</div><div class='ctx'> # include &lt;dlfcn.h&gt;</div><div class='ctx'> # /* some stranger systems may not define all of these */</div><div class='hunk'>@@ -58,38 +62,38 @@</div><div class='ctx'> # error "CHAR_BIT not supported"</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-# if SIZEOF_SHORT == 2</div><div class='del'>-#  define ffi_type_ushort ffi_type_uint16</div><div class='del'>-#  define ffi_type_sshort ffi_type_sint16</div><div class='del'>-# elif SIZEOF_SHORT == 4</div><div class='del'>-#  define ffi_type_ushort ffi_type_uint32</div><div class='del'>-#  define ffi_type_sshort ffi_type_sint32</div><div class='del'>-# else</div><div class='del'>-#  error "short size not supported"</div><div class='del'>-# endif</div><div class='add'>+#if SIZEOF_SHORT == 2</div><div class='add'>+# define ffi_type_ushort ffi_type_uint16</div><div class='add'>+# define ffi_type_sshort ffi_type_sint16</div><div class='add'>+#elif SIZEOF_SHORT == 4</div><div class='add'>+# define ffi_type_ushort ffi_type_uint32</div><div class='add'>+# define ffi_type_sshort ffi_type_sint32</div><div class='add'>+#else</div><div class='add'>+# error "short size not supported"</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-# if SIZEOF_INT == 2</div><div class='del'>-#  define ffi_type_uint	ffi_type_uint16</div><div class='del'>-#  define ffi_type_sint	ffi_type_sint16</div><div class='del'>-# elif SIZEOF_INT == 4</div><div class='del'>-#  define ffi_type_uint	ffi_type_uint32</div><div class='del'>-#  define ffi_type_sint	ffi_type_sint32</div><div class='del'>-# elif SIZEOF_INT == 8</div><div class='del'>-#  define ffi_type_uint	ffi_type_uint64</div><div class='del'>-#  define ffi_type_sint	ffi_type_sint64</div><div class='del'>-# else</div><div class='del'>-#  error "int size not supported"</div><div class='del'>-# endif</div><div class='add'>+#if SIZEOF_INT == 2</div><div class='add'>+# define ffi_type_uint	ffi_type_uint16</div><div class='add'>+# define ffi_type_sint	ffi_type_sint16</div><div class='add'>+#elif SIZEOF_INT == 4</div><div class='add'>+# define ffi_type_uint	ffi_type_uint32</div><div class='add'>+# define ffi_type_sint	ffi_type_sint32</div><div class='add'>+#elif SIZEOF_INT == 8</div><div class='add'>+# define ffi_type_uint	ffi_type_uint64</div><div class='add'>+# define ffi_type_sint	ffi_type_sint64</div><div class='add'>+#else</div><div class='add'>+# error "int size not supported"</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-# if SIZEOF_LONG == 4</div><div class='del'>-#  define ffi_type_ulong ffi_type_uint32</div><div class='del'>-#  define ffi_type_slong ffi_type_sint32</div><div class='del'>-# elif SIZEOF_LONG == 8</div><div class='del'>-#  define ffi_type_ulong ffi_type_uint64</div><div class='del'>-#  define ffi_type_slong ffi_type_sint64</div><div class='del'>-# else</div><div class='del'>-#  error "long size not supported"</div><div class='del'>-# endif</div><div class='add'>+#if SIZEOF_LONG == 4</div><div class='add'>+# define ffi_type_ulong ffi_type_uint32</div><div class='add'>+# define ffi_type_slong ffi_type_sint32</div><div class='add'>+#elif SIZEOF_LONG == 8</div><div class='add'>+# define ffi_type_ulong ffi_type_uint64</div><div class='add'>+# define ffi_type_slong ffi_type_sint64</div><div class='add'>+#else</div><div class='add'>+# error "long size not supported"</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #if HAVE_LONG_LONG</div><div class='ctx'> # if SIZEOF_LONG_LONG == 8</div><div class='hunk'>@@ -107,20 +111,96 @@</div><div class='ctx'> #define TYPE_VOID  0</div><div class='ctx'> #define TYPE_VOIDP 1</div><div class='ctx'> #define TYPE_CHAR  2</div><div class='add'>+#define TYPE_UCHAR  -TYPE_CHAR</div><div class='ctx'> #define TYPE_SHORT 3</div><div class='add'>+#define TYPE_USHORT -TYPE_SHORT</div><div class='ctx'> #define TYPE_INT   4</div><div class='add'>+#define TYPE_UINT   -TYPE_INT</div><div class='ctx'> #define TYPE_LONG  5</div><div class='add'>+#define TYPE_ULONG  -TYPE_LONG</div><div class='ctx'> #if HAVE_LONG_LONG</div><div class='ctx'> #define TYPE_LONG_LONG 6</div><div class='add'>+#define TYPE_ULONG_LONG -TYPE_LONG_LONG</div><div class='ctx'> #endif</div><div class='ctx'> #define TYPE_FLOAT 7</div><div class='ctx'> #define TYPE_DOUBLE 8</div><div class='add'>+#define TYPE_VARIADIC 9</div><div class='add'>+#define TYPE_CONST_STRING 10</div><div class='add'>+</div><div class='add'>+#define TYPE_INT8_T TYPE_CHAR</div><div class='add'>+#define TYPE_UINT8_T -TYPE_INT8_T</div><div class='add'>+</div><div class='add'>+#if SIZEOF_SHORT == 2</div><div class='add'>+# define TYPE_INT16_T TYPE_SHORT</div><div class='add'>+#elif SIZEOF_INT == 2</div><div class='add'>+# define TYPE_INT16_T TYPE_INT</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef TYPE_INT16_T</div><div class='add'>+# define TYPE_UINT16_T -TYPE_INT16_T</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if SIZEOF_SHORT == 4</div><div class='add'>+# define TYPE_INT32_T TYPE_SHORT</div><div class='add'>+#elif SIZEOF_INT == 4</div><div class='add'>+# define TYPE_INT32_T TYPE_INT</div><div class='add'>+#elif SIZEOF_LONG == 4</div><div class='add'>+# define TYPE_INT32_T TYPE_LONG</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef TYPE_INT32_T</div><div class='add'>+#define TYPE_UINT32_T -TYPE_INT32_T</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if SIZEOF_INT == 8</div><div class='add'>+# define TYPE_INT64_T TYPE_INT</div><div class='add'>+#elif SIZEOF_LONG == 8</div><div class='add'>+# define TYPE_INT64_T TYPE_LONG</div><div class='add'>+#elif defined(TYPE_LONG_LONG)</div><div class='add'>+# define TYPE_INT64_T TYPE_LONG_LONG</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef TYPE_INT64_T</div><div class='add'>+#define TYPE_UINT64_T -TYPE_INT64_T</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef TYPE_SSIZE_T</div><div class='add'>+# if SIZEOF_SIZE_T == SIZEOF_INT</div><div class='add'>+#   define TYPE_SSIZE_T TYPE_INT</div><div class='add'>+# elif SIZEOF_SIZE_T == SIZEOF_LONG</div><div class='add'>+#   define TYPE_SSIZE_T TYPE_LONG</div><div class='add'>+# elif defined HAVE_LONG_LONG &amp;&amp; SIZEOF_SIZE_T == SIZEOF_LONG_LONG</div><div class='add'>+#   define TYPE_SSIZE_T TYPE_LONG_LONG</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+#define TYPE_SIZE_T (-1*SIGNEDNESS_OF_SIZE_T*TYPE_SSIZE_T)</div><div class='add'>+</div><div class='add'>+#ifndef TYPE_PTRDIFF_T</div><div class='add'>+# if SIZEOF_PTRDIFF_T == SIZEOF_INT</div><div class='add'>+#   define TYPE_PTRDIFF_T TYPE_INT</div><div class='add'>+# elif SIZEOF_PTRDIFF_T == SIZEOF_LONG</div><div class='add'>+#   define TYPE_PTRDIFF_T TYPE_LONG</div><div class='add'>+# elif defined HAVE_LONG_LONG &amp;&amp; SIZEOF_PTRDIFF_T == SIZEOF_LONG_LONG</div><div class='add'>+#   define TYPE_PTRDIFF_T TYPE_LONG_LONG</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef TYPE_INTPTR_T</div><div class='add'>+# if SIZEOF_INTPTR_T == SIZEOF_INT</div><div class='add'>+#   define TYPE_INTPTR_T TYPE_INT</div><div class='add'>+# elif SIZEOF_INTPTR_T == SIZEOF_LONG</div><div class='add'>+#   define TYPE_INTPTR_T TYPE_LONG</div><div class='add'>+# elif defined HAVE_LONG_LONG &amp;&amp; SIZEOF_INTPTR_T == SIZEOF_LONG_LONG</div><div class='add'>+#   define TYPE_INTPTR_T TYPE_LONG_LONG</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+#define TYPE_UINTPTR_T (-TYPE_INTPTR_T)</div><div class='ctx'> </div><div class='ctx'> #define ALIGN_OF(type) offsetof(struct {char align_c; type align_x;}, align_x)</div><div class='ctx'> </div><div class='ctx'> #define ALIGN_VOIDP  ALIGN_OF(void*)</div><div class='del'>-#define ALIGN_SHORT  ALIGN_OF(short)</div><div class='ctx'> #define ALIGN_CHAR   ALIGN_OF(char)</div><div class='add'>+#define ALIGN_SHORT  ALIGN_OF(short)</div><div class='ctx'> #define ALIGN_INT    ALIGN_OF(int)</div><div class='ctx'> #define ALIGN_LONG   ALIGN_OF(long)</div><div class='ctx'> #if HAVE_LONG_LONG</div><div class='hunk'>@@ -129,10 +209,18 @@</div><div class='ctx'> #define ALIGN_FLOAT  ALIGN_OF(float)</div><div class='ctx'> #define ALIGN_DOUBLE ALIGN_OF(double)</div><div class='ctx'> </div><div class='add'>+#define ALIGN_INT8_T  ALIGN_OF(int8_t)</div><div class='add'>+#define ALIGN_INT16_T ALIGN_OF(int16_t)</div><div class='add'>+#define ALIGN_INT32_T ALIGN_OF(int32_t)</div><div class='add'>+#define ALIGN_INT64_T ALIGN_OF(int64_t)</div><div class='add'>+</div><div class='ctx'> extern VALUE mFiddle;</div><div class='del'>-extern VALUE rb_eFiddleError;</div><div class='add'>+extern VALUE rb_eFiddleDLError;</div><div class='ctx'> </div><div class='ctx'> VALUE rb_fiddle_new_function(VALUE address, VALUE arg_types, VALUE ret_type);</div><div class='ctx'> </div><div class='add'>+typedef void (*rb_fiddle_freefunc_t)(void*);</div><div class='add'>+VALUE rb_fiddle_ptr_new_wrap(void *ptr, long size, rb_fiddle_freefunc_t func, VALUE wrap0, VALUE wrap1);</div><div class='add'>+</div><div class='ctx'> #endif</div><div class='ctx'> /* vim: set noet sws=4 sw=4: */</div><div class='head'>diff --git a/ext/fiddle/function.c b/ext/fiddle/function.c<br/>index bbd73e0f0a..274d181d17 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/function.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/function.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/function.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/function.c</a></div><div class='hunk'>@@ -1,6 +1,8 @@</div><div class='ctx'> #include &lt;fiddle.h&gt;</div><div class='ctx'> #include &lt;ruby/thread.h&gt;</div><div class='ctx'> </div><div class='add'>+#include &lt;stdbool.h&gt;</div><div class='add'>+</div><div class='ctx'> #ifdef PRIsVALUE</div><div class='ctx'> # define RB_OBJ_CLASSNAME(obj) rb_obj_class(obj)</div><div class='ctx'> # define RB_OBJ_STRING(obj) (obj)</div><div class='hunk'>@@ -19,21 +21,21 @@ VALUE cFiddleFunction;</div><div class='ctx'> #define Check_Max_Args_Long(name, len) \</div><div class='ctx'>     Check_Max_Args_(name, len, "l")</div><div class='ctx'> #define Check_Max_Args_(name, len, fmt) \</div><div class='del'>-    if ((size_t)(len) &lt; MAX_ARGS) { \</div><div class='del'>-	/* OK */ \</div><div class='del'>-    } \</div><div class='del'>-    else { \</div><div class='del'>-	rb_raise(rb_eTypeError, \</div><div class='del'>-		 name" is so large that it can cause integer overflow (%"fmt"d)", \</div><div class='del'>-		 (len)); \</div><div class='del'>-    }</div><div class='add'>+    do { \</div><div class='add'>+        if ((size_t)(len) &gt;= MAX_ARGS) { \</div><div class='add'>+            rb_raise(rb_eTypeError, \</div><div class='add'>+                     "%s is so large " \</div><div class='add'>+                     "that it can cause integer overflow (%"fmt"d)", \</div><div class='add'>+                     (name), (len)); \</div><div class='add'>+        } \</div><div class='add'>+    } while (0)</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> deallocate(void *p)</div><div class='ctx'> {</div><div class='del'>-    ffi_cif *ptr = p;</div><div class='del'>-    if (ptr-&gt;arg_types) xfree(ptr-&gt;arg_types);</div><div class='del'>-    xfree(ptr);</div><div class='add'>+    ffi_cif *cif = p;</div><div class='add'>+    if (cif-&gt;arg_types) xfree(cif-&gt;arg_types);</div><div class='add'>+    xfree(cif);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static size_t</div><div class='hunk'>@@ -75,72 +77,114 @@ rb_fiddle_new_function(VALUE address, VALUE arg_types, VALUE ret_type)</div><div class='ctx'>     return rb_class_new_instance(3, argv, cFiddleFunction);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-parse_keyword_arg_i(VALUE key, VALUE value, VALUE self)</div><div class='add'>+static VALUE</div><div class='add'>+normalize_argument_types(const char *name,</div><div class='add'>+                         VALUE arg_types,</div><div class='add'>+                         bool *is_variadic)</div><div class='ctx'> {</div><div class='del'>-    if (key == ID2SYM(rb_intern("name"))) {</div><div class='del'>-	rb_iv_set(self, "@name", value);</div><div class='del'>-    } else {</div><div class='del'>-	rb_raise(rb_eArgError, "unknown keyword: %"PRIsVALUE,</div><div class='del'>-		 RB_OBJ_STRING(key));</div><div class='add'>+    VALUE normalized_arg_types;</div><div class='add'>+    int i;</div><div class='add'>+    int n_arg_types;</div><div class='add'>+    *is_variadic = false;</div><div class='add'>+</div><div class='add'>+    Check_Type(arg_types, T_ARRAY);</div><div class='add'>+    n_arg_types = RARRAY_LENINT(arg_types);</div><div class='add'>+    Check_Max_Args(name, n_arg_types);</div><div class='add'>+</div><div class='add'>+    normalized_arg_types = rb_ary_new_capa(n_arg_types);</div><div class='add'>+    for (i = 0; i &lt; n_arg_types; i++) {</div><div class='add'>+        VALUE arg_type = RARRAY_AREF(arg_types, i);</div><div class='add'>+        int c_arg_type;</div><div class='add'>+        arg_type = rb_fiddle_type_ensure(arg_type);</div><div class='add'>+        c_arg_type = NUM2INT(arg_type);</div><div class='add'>+        if (c_arg_type == TYPE_VARIADIC) {</div><div class='add'>+            if (i != n_arg_types - 1) {</div><div class='add'>+                rb_raise(rb_eArgError,</div><div class='add'>+                         "Fiddle::TYPE_VARIADIC must be the last argument type: "</div><div class='add'>+                         "%"PRIsVALUE,</div><div class='add'>+                         arg_types);</div><div class='add'>+            }</div><div class='add'>+            *is_variadic = true;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            (void)INT2FFI_TYPE(c_arg_type); /* raise */</div><div class='add'>+        }</div><div class='add'>+        rb_ary_push(normalized_arg_types, INT2FIX(c_arg_type));</div><div class='ctx'>     }</div><div class='del'>-    return ST_CONTINUE;</div><div class='add'>+</div><div class='add'>+    /* freeze to prevent inconsistency at calling #to_int later */</div><div class='add'>+    OBJ_FREEZE(normalized_arg_types);</div><div class='add'>+    return normalized_arg_types;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> initialize(int argc, VALUE argv[], VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     ffi_cif * cif;</div><div class='del'>-    ffi_type **arg_types, *rtype;</div><div class='del'>-    ffi_status result;</div><div class='del'>-    VALUE ptr, args, ret_type, abi, kwds, ary;</div><div class='del'>-    int i, len;</div><div class='del'>-    int nabi;</div><div class='add'>+    VALUE ptr, arg_types, ret_type, abi, kwargs;</div><div class='add'>+    VALUE name = Qnil;</div><div class='add'>+    VALUE need_gvl = Qfalse;</div><div class='add'>+    int c_ret_type;</div><div class='add'>+    bool is_variadic = false;</div><div class='add'>+    ffi_abi c_ffi_abi;</div><div class='ctx'>     void *cfunc;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "31:", &amp;ptr, &amp;args, &amp;ret_type, &amp;abi, &amp;kwds);</div><div class='add'>+    rb_scan_args(argc, argv, "31:", &amp;ptr, &amp;arg_types, &amp;ret_type, &amp;abi, &amp;kwargs);</div><div class='add'>+    rb_iv_set(self, "@closure", ptr);</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(kwargs)) {</div><div class='add'>+        enum {</div><div class='add'>+            kw_name,</div><div class='add'>+            kw_need_gvl,</div><div class='add'>+            kw_max_,</div><div class='add'>+        };</div><div class='add'>+        static ID kw[kw_max_];</div><div class='add'>+        VALUE args[kw_max_];</div><div class='add'>+        if (!kw[0]) {</div><div class='add'>+            kw[kw_name] = rb_intern_const("name");</div><div class='add'>+            kw[kw_need_gvl] = rb_intern_const("need_gvl");</div><div class='add'>+        }</div><div class='add'>+        rb_get_kwargs(kwargs, kw, 0, kw_max_, args);</div><div class='add'>+        if (args[kw_name] != Qundef) {</div><div class='add'>+            name = args[kw_name];</div><div class='add'>+        }</div><div class='add'>+        if (args[kw_need_gvl] != Qundef) {</div><div class='add'>+            need_gvl = args[kw_need_gvl];</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    rb_iv_set(self, "@name", name);</div><div class='add'>+    rb_iv_set(self, "@need_gvl", need_gvl);</div><div class='add'>+</div><div class='ctx'>     ptr = rb_Integer(ptr);</div><div class='ctx'>     cfunc = NUM2PTR(ptr);</div><div class='ctx'>     PTR2NUM(cfunc);</div><div class='del'>-    nabi = NIL_P(abi) ? FFI_DEFAULT_ABI : NUM2INT(abi);</div><div class='del'>-    abi = INT2FIX(nabi);</div><div class='del'>-    i = NUM2INT(ret_type);</div><div class='del'>-    rtype = INT2FFI_TYPE(i);</div><div class='del'>-    ret_type = INT2FIX(i);</div><div class='del'>-</div><div class='del'>-    Check_Type(args, T_ARRAY);</div><div class='del'>-    len = RARRAY_LENINT(args);</div><div class='del'>-    Check_Max_Args("args", len);</div><div class='del'>-    ary = rb_ary_subseq(args, 0, len);</div><div class='del'>-    for (i = 0; i &lt; RARRAY_LEN(args); i++) {</div><div class='del'>-        VALUE a = RARRAY_AREF(args, i);</div><div class='del'>-	int type = NUM2INT(a);</div><div class='del'>-	(void)INT2FFI_TYPE(type); /* raise */</div><div class='del'>-	if (INT2FIX(type) != a) rb_ary_store(ary, i, INT2FIX(type));</div><div class='add'>+    c_ffi_abi = NIL_P(abi) ? FFI_DEFAULT_ABI : NUM2INT(abi);</div><div class='add'>+    abi = INT2FIX(c_ffi_abi);</div><div class='add'>+    ret_type = rb_fiddle_type_ensure(ret_type);</div><div class='add'>+    c_ret_type = NUM2INT(ret_type);</div><div class='add'>+    (void)INT2FFI_TYPE(c_ret_type); /* raise */</div><div class='add'>+    ret_type = INT2FIX(c_ret_type);</div><div class='add'>+</div><div class='add'>+    arg_types = normalize_argument_types("argument types",</div><div class='add'>+                                         arg_types,</div><div class='add'>+                                         &amp;is_variadic);</div><div class='add'>+#ifndef HAVE_FFI_PREP_CIF_VAR</div><div class='add'>+    if (is_variadic) {</div><div class='add'>+        rb_raise(rb_eNotImpError,</div><div class='add'>+                 "ffi_prep_cif_var() is required in libffi "</div><div class='add'>+                 "for variadic arguments");</div><div class='ctx'>     }</div><div class='del'>-    OBJ_FREEZE(ary);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     rb_iv_set(self, "@ptr", ptr);</div><div class='del'>-    rb_iv_set(self, "@args", args);</div><div class='add'>+    rb_iv_set(self, "@argument_types", arg_types);</div><div class='ctx'>     rb_iv_set(self, "@return_type", ret_type);</div><div class='ctx'>     rb_iv_set(self, "@abi", abi);</div><div class='del'>-</div><div class='del'>-    if (!NIL_P(kwds)) rb_hash_foreach(kwds, parse_keyword_arg_i, self);</div><div class='add'>+    rb_iv_set(self, "@is_variadic", is_variadic ? Qtrue : Qfalse);</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, ffi_cif, &amp;function_data_type, cif);</div><div class='del'>-</div><div class='del'>-    arg_types = xcalloc(len + 1, sizeof(ffi_type *));</div><div class='del'>-</div><div class='del'>-    for (i = 0; i &lt; RARRAY_LEN(args); i++) {</div><div class='del'>-	int type = NUM2INT(RARRAY_AREF(args, i));</div><div class='del'>-	arg_types[i] = INT2FFI_TYPE(type);</div><div class='del'>-    }</div><div class='del'>-    arg_types[len] = NULL;</div><div class='del'>-</div><div class='del'>-    result = ffi_prep_cif(cif, nabi, len, rtype, arg_types);</div><div class='del'>-</div><div class='del'>-    if (result)</div><div class='del'>-	rb_raise(rb_eRuntimeError, "error creating CIF %d", result);</div><div class='add'>+    cif-&gt;arg_types = NULL;</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -167,61 +211,182 @@ function_call(int argc, VALUE argv[], VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     struct nogvl_ffi_call_args args = { 0 };</div><div class='ctx'>     fiddle_generic *generic_args;</div><div class='del'>-    VALUE cfunc, types, cPointer;</div><div class='add'>+    VALUE cfunc;</div><div class='add'>+    VALUE abi;</div><div class='add'>+    VALUE arg_types;</div><div class='add'>+    VALUE cPointer;</div><div class='add'>+    VALUE is_variadic;</div><div class='add'>+    VALUE need_gvl;</div><div class='add'>+    int n_arg_types;</div><div class='add'>+    int n_fixed_args = 0;</div><div class='add'>+    int n_call_args = 0;</div><div class='ctx'>     int i;</div><div class='add'>+    int i_call;</div><div class='add'>+    VALUE converted_args = Qnil;</div><div class='ctx'>     VALUE alloc_buffer = 0;</div><div class='ctx'> </div><div class='ctx'>     cfunc    = rb_iv_get(self, "@ptr");</div><div class='del'>-    types    = rb_iv_get(self, "@args");</div><div class='add'>+    abi      = rb_iv_get(self, "@abi");</div><div class='add'>+    arg_types = rb_iv_get(self, "@argument_types");</div><div class='ctx'>     cPointer = rb_const_get(mFiddle, rb_intern("Pointer"));</div><div class='del'>-</div><div class='del'>-    Check_Max_Args("number of arguments", argc);</div><div class='del'>-    if (argc != (i = RARRAY_LENINT(types))) {</div><div class='del'>-	rb_error_arity(argc, i, i);</div><div class='add'>+    is_variadic = rb_iv_get(self, "@is_variadic");</div><div class='add'>+    need_gvl = rb_iv_get(self, "@need_gvl");</div><div class='add'>+</div><div class='add'>+    n_arg_types = RARRAY_LENINT(arg_types);</div><div class='add'>+    n_fixed_args = n_arg_types;</div><div class='add'>+    if (RTEST(is_variadic)) {</div><div class='add'>+        if (argc &lt; n_arg_types) {</div><div class='add'>+            rb_error_arity(argc, n_arg_types, UNLIMITED_ARGUMENTS);</div><div class='add'>+        }</div><div class='add'>+        if (((argc - n_arg_types) % 2) != 0) {</div><div class='add'>+            rb_raise(rb_eArgError,</div><div class='add'>+                     "variadic arguments must be type and value pairs: "</div><div class='add'>+                     "%"PRIsVALUE,</div><div class='add'>+                     rb_ary_new_from_values(argc, argv));</div><div class='add'>+        }</div><div class='add'>+        n_call_args = n_arg_types + ((argc - n_arg_types) / 2);</div><div class='ctx'>     }</div><div class='add'>+    else {</div><div class='add'>+        if (argc != n_arg_types) {</div><div class='add'>+            rb_error_arity(argc, n_arg_types, n_arg_types);</div><div class='add'>+        }</div><div class='add'>+        n_call_args = n_arg_types;</div><div class='add'>+    }</div><div class='add'>+    Check_Max_Args("the number of arguments", n_call_args);</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, ffi_cif, &amp;function_data_type, args.cif);</div><div class='ctx'> </div><div class='del'>-    if (rb_safe_level() &gt;= 1) {</div><div class='del'>-	for (i = 0; i &lt; argc; i++) {</div><div class='del'>-	    VALUE src = argv[i];</div><div class='del'>-	    if (OBJ_TAINTED(src)) {</div><div class='del'>-		rb_raise(rb_eSecurityError, "tainted parameter not allowed");</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+    if (is_variadic &amp;&amp; args.cif-&gt;arg_types) {</div><div class='add'>+        xfree(args.cif-&gt;arg_types);</div><div class='add'>+        args.cif-&gt;arg_types = NULL;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!args.cif-&gt;arg_types) {</div><div class='add'>+        VALUE fixed_arg_types = arg_types;</div><div class='add'>+        VALUE return_type;</div><div class='add'>+        int c_return_type;</div><div class='add'>+        ffi_type *ffi_return_type;</div><div class='add'>+        ffi_type **ffi_arg_types;</div><div class='add'>+        ffi_status result;</div><div class='add'>+</div><div class='add'>+        arg_types = rb_ary_dup(fixed_arg_types);</div><div class='add'>+        for (i = n_fixed_args; i &lt; argc; i += 2) {</div><div class='add'>+          VALUE arg_type = argv[i];</div><div class='add'>+          int c_arg_type;</div><div class='add'>+          arg_type = rb_fiddle_type_ensure(arg_type);</div><div class='add'>+          c_arg_type = NUM2INT(arg_type);</div><div class='add'>+          (void)INT2FFI_TYPE(c_arg_type); /* raise */</div><div class='add'>+          rb_ary_push(arg_types, INT2FIX(c_arg_type));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        return_type = rb_iv_get(self, "@return_type");</div><div class='add'>+        c_return_type = FIX2INT(return_type);</div><div class='add'>+        ffi_return_type = INT2FFI_TYPE(c_return_type);</div><div class='add'>+</div><div class='add'>+        ffi_arg_types = xcalloc(n_call_args + 1, sizeof(ffi_type *));</div><div class='add'>+        for (i_call = 0; i_call &lt; n_call_args; i_call++) {</div><div class='add'>+            VALUE arg_type;</div><div class='add'>+            int c_arg_type;</div><div class='add'>+            arg_type = RARRAY_AREF(arg_types, i_call);</div><div class='add'>+            c_arg_type = FIX2INT(arg_type);</div><div class='add'>+            ffi_arg_types[i_call] = INT2FFI_TYPE(c_arg_type);</div><div class='add'>+        }</div><div class='add'>+        ffi_arg_types[i_call] = NULL;</div><div class='add'>+</div><div class='add'>+        if (is_variadic) {</div><div class='add'>+#ifdef HAVE_FFI_PREP_CIF_VAR</div><div class='add'>+            result = ffi_prep_cif_var(args.cif,</div><div class='add'>+                                      FIX2INT(abi),</div><div class='add'>+                                      n_fixed_args,</div><div class='add'>+                                      n_call_args,</div><div class='add'>+                                      ffi_return_type,</div><div class='add'>+                                      ffi_arg_types);</div><div class='add'>+#else</div><div class='add'>+            /* This code is never used because ffi_prep_cif_var()</div><div class='add'>+             * availability check is done in #initialize. */</div><div class='add'>+            result = FFI_BAD_TYPEDEF;</div><div class='add'>+#endif</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            result = ffi_prep_cif(args.cif,</div><div class='add'>+                                  FIX2INT(abi),</div><div class='add'>+                                  n_call_args,</div><div class='add'>+                                  ffi_return_type,</div><div class='add'>+                                  ffi_arg_types);</div><div class='add'>+        }</div><div class='add'>+        if (result != FFI_OK) {</div><div class='add'>+            xfree(ffi_arg_types);</div><div class='add'>+            args.cif-&gt;arg_types = NULL;</div><div class='add'>+            rb_raise(rb_eRuntimeError, "error creating CIF %d", result);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     generic_args = ALLOCV(alloc_buffer,</div><div class='del'>-	(size_t)(argc + 1) * sizeof(void *) + (size_t)argc * sizeof(fiddle_generic));</div><div class='add'>+                          sizeof(fiddle_generic) * n_call_args +</div><div class='add'>+                          sizeof(void *) * (n_call_args + 1));</div><div class='ctx'>     args.values = (void **)((char *)generic_args +</div><div class='del'>-			    (size_t)argc * sizeof(fiddle_generic));</div><div class='del'>-</div><div class='del'>-    for (i = 0; i &lt; argc; i++) {</div><div class='del'>-	VALUE type = RARRAY_AREF(types, i);</div><div class='del'>-	VALUE src = argv[i];</div><div class='del'>-	int argtype = FIX2INT(type);</div><div class='del'>-</div><div class='del'>-	if (argtype == TYPE_VOIDP) {</div><div class='del'>-	    if(NIL_P(src)) {</div><div class='del'>-		src = INT2FIX(0);</div><div class='del'>-	    } else if(cPointer != CLASS_OF(src)) {</div><div class='del'>-		src = rb_funcall(cPointer, rb_intern("[]"), 1, src);</div><div class='del'>-	    }</div><div class='del'>-	    src = rb_Integer(src);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	VALUE2GENERIC(argtype, src, &amp;generic_args[i]);</div><div class='del'>-	args.values[i] = (void *)&amp;generic_args[i];</div><div class='add'>+                            sizeof(fiddle_generic) * n_call_args);</div><div class='add'>+</div><div class='add'>+    for (i = 0, i_call = 0;</div><div class='add'>+         i &lt; argc &amp;&amp; i_call &lt; n_call_args;</div><div class='add'>+         i++, i_call++) {</div><div class='add'>+        VALUE arg_type;</div><div class='add'>+        int c_arg_type;</div><div class='add'>+        VALUE original_src;</div><div class='add'>+        VALUE src;</div><div class='add'>+        arg_type = RARRAY_AREF(arg_types, i_call);</div><div class='add'>+        c_arg_type = FIX2INT(arg_type);</div><div class='add'>+        if (i &gt;= n_fixed_args) {</div><div class='add'>+            i++;</div><div class='add'>+        }</div><div class='add'>+        src = argv[i];</div><div class='add'>+</div><div class='add'>+        if (c_arg_type == TYPE_VOIDP) {</div><div class='add'>+            if (NIL_P(src)) {</div><div class='add'>+                src = INT2FIX(0);</div><div class='add'>+            }</div><div class='add'>+            else if (cPointer != CLASS_OF(src)) {</div><div class='add'>+                src = rb_funcall(cPointer, rb_intern("[]"), 1, src);</div><div class='add'>+                if (NIL_P(converted_args)) {</div><div class='add'>+                    converted_args = rb_ary_new();</div><div class='add'>+                }</div><div class='add'>+                rb_ary_push(converted_args, src);</div><div class='add'>+            }</div><div class='add'>+            src = rb_Integer(src);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        original_src = src;</div><div class='add'>+        VALUE2GENERIC(c_arg_type, src, &amp;generic_args[i_call]);</div><div class='add'>+        if (src != original_src) {</div><div class='add'>+            if (NIL_P(converted_args)) {</div><div class='add'>+                converted_args = rb_ary_new();</div><div class='add'>+            }</div><div class='add'>+            rb_ary_push(converted_args, src);</div><div class='add'>+        }</div><div class='add'>+        args.values[i_call] = (void *)&amp;generic_args[i_call];</div><div class='ctx'>     }</div><div class='del'>-    args.values[argc] = NULL;</div><div class='add'>+    args.values[i_call] = NULL;</div><div class='ctx'>     args.fn = (void(*)(void))NUM2PTR(cfunc);</div><div class='ctx'> </div><div class='del'>-    (void)rb_thread_call_without_gvl(nogvl_ffi_call, &amp;args, 0, 0);</div><div class='add'>+    if (RTEST(need_gvl)) {</div><div class='add'>+        ffi_call(args.cif, args.fn, &amp;(args.retval), args.values);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        (void)rb_thread_call_without_gvl(nogvl_ffi_call, &amp;args, 0, 0);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    rb_funcall(mFiddle, rb_intern("last_error="), 1, INT2NUM(errno));</div><div class='add'>+    {</div><div class='add'>+        int errno_keep = errno;</div><div class='ctx'> #if defined(_WIN32)</div><div class='del'>-    rb_funcall(mFiddle, rb_intern("win32_last_error="), 1, INT2NUM(errno));</div><div class='add'>+        DWORD error = WSAGetLastError();</div><div class='add'>+        int socket_error = WSAGetLastError();</div><div class='add'>+        rb_funcall(mFiddle, rb_intern("win32_last_error="), 1,</div><div class='add'>+                   ULONG2NUM(error));</div><div class='add'>+        rb_funcall(mFiddle, rb_intern("win32_last_socket_error="), 1,</div><div class='add'>+                   INT2NUM(socket_error));</div><div class='ctx'> #endif</div><div class='add'>+        rb_funcall(mFiddle, rb_intern("last_error="), 1, INT2NUM(errno_keep));</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     ALLOCV_END(alloc_buffer);</div><div class='ctx'> </div><div class='hunk'>@@ -294,6 +459,10 @@ Init_fiddle_function(void)</div><div class='ctx'>      * Caller must ensure the underlying function is called in a</div><div class='ctx'>      * thread-safe manner if running in a multi-threaded process.</div><div class='ctx'>      *</div><div class='add'>+     * Note that it is not thread-safe to use this method to</div><div class='add'>+     * directly or indirectly call many Ruby C-extension APIs unless</div><div class='add'>+     * you don't pass +need_gvl: true+ to Fiddle::Function#new.</div><div class='add'>+     *</div><div class='ctx'>      * For an example see Fiddle::Function</div><div class='ctx'>      *</div><div class='ctx'>      */</div><div class='hunk'>@@ -301,13 +470,20 @@ Init_fiddle_function(void)</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * Document-method: new</div><div class='del'>-     * call-seq: new(ptr, args, ret_type, abi = DEFAULT)</div><div class='add'>+     * call-seq: new(ptr,</div><div class='add'>+     *               args,</div><div class='add'>+     *               ret_type,</div><div class='add'>+     *               abi = DEFAULT,</div><div class='add'>+     *               name: nil,</div><div class='add'>+     *               need_gvl: false)</div><div class='ctx'>      *</div><div class='ctx'>      * Constructs a Function object.</div><div class='ctx'>      * * +ptr+ is a referenced function, of a Fiddle::Handle</div><div class='ctx'>      * * +args+ is an Array of arguments, passed to the +ptr+ function</div><div class='ctx'>      * * +ret_type+ is the return type of the function</div><div class='ctx'>      * * +abi+ is the ABI of the function</div><div class='add'>+     * * +name+ is the name of the function</div><div class='add'>+     * * +need_gvl+ is whether GVL is needed to call the function</div><div class='ctx'>      *</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_method(cFiddleFunction, "initialize", initialize, -1);</div><div class='head'>diff --git a/ext/fiddle/handle.c b/ext/fiddle/handle.c<br/>index e727ccfd00..ae8cc3a581 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/handle.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/handle.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/handle.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/handle.c</a></div><div class='hunk'>@@ -1,8 +1,6 @@</div><div class='ctx'> #include &lt;ruby.h&gt;</div><div class='ctx'> #include &lt;fiddle.h&gt;</div><div class='ctx'> </div><div class='del'>-#define SafeStringValueCStr(v) (rb_check_safe_obj(rb_string_value(&amp;v)), StringValueCStr(v))</div><div class='del'>-</div><div class='ctx'> VALUE rb_cHandle;</div><div class='ctx'> </div><div class='ctx'> struct dl_handle {</div><div class='hunk'>@@ -76,14 +74,14 @@ rb_fiddle_handle_close(VALUE self)</div><div class='ctx'> 	/* Check dlclose for successful return value */</div><div class='ctx'> 	if(ret) {</div><div class='ctx'> #if defined(HAVE_DLERROR)</div><div class='del'>-	    rb_raise(rb_eFiddleError, "%s", dlerror());</div><div class='add'>+	    rb_raise(rb_eFiddleDLError, "%s", dlerror());</div><div class='ctx'> #else</div><div class='del'>-	    rb_raise(rb_eFiddleError, "could not close handle");</div><div class='add'>+	    rb_raise(rb_eFiddleDLError, "could not close handle");</div><div class='ctx'> #endif</div><div class='ctx'> 	}</div><div class='ctx'> 	return INT2NUM(ret);</div><div class='ctx'>     }</div><div class='del'>-    rb_raise(rb_eFiddleError, "dlclose() called too many times");</div><div class='add'>+    rb_raise(rb_eFiddleDLError, "dlclose() called too many times");</div><div class='ctx'> </div><div class='ctx'>     UNREACHABLE;</div><div class='ctx'> }</div><div class='hunk'>@@ -145,11 +143,11 @@ rb_fiddle_handle_initialize(int argc, VALUE argv[], VALUE self)</div><div class='ctx'> 	cflag = RTLD_LAZY | RTLD_GLOBAL;</div><div class='ctx'> 	break;</div><div class='ctx'>       case 1:</div><div class='del'>-	clib = NIL_P(lib) ? NULL : SafeStringValueCStr(lib);</div><div class='add'>+	clib = NIL_P(lib) ? NULL : StringValueCStr(lib);</div><div class='ctx'> 	cflag = RTLD_LAZY | RTLD_GLOBAL;</div><div class='ctx'> 	break;</div><div class='ctx'>       case 2:</div><div class='del'>-	clib = NIL_P(lib) ? NULL : SafeStringValueCStr(lib);</div><div class='add'>+	clib = NIL_P(lib) ? NULL : StringValueCStr(lib);</div><div class='ctx'> 	cflag = NUM2INT(flag);</div><div class='ctx'> 	break;</div><div class='ctx'>       default:</div><div class='hunk'>@@ -179,12 +177,12 @@ rb_fiddle_handle_initialize(int argc, VALUE argv[], VALUE self)</div><div class='ctx'> 	ptr = dlopen(clib, cflag);</div><div class='ctx'> #if defined(HAVE_DLERROR)</div><div class='ctx'>     if( !ptr &amp;&amp; (err = dlerror()) ){</div><div class='del'>-	rb_raise(rb_eFiddleError, "%s", err);</div><div class='add'>+	rb_raise(rb_eFiddleDLError, "%s", err);</div><div class='ctx'>     }</div><div class='ctx'> #else</div><div class='ctx'>     if( !ptr ){</div><div class='ctx'> 	err = dlerror();</div><div class='del'>-	rb_raise(rb_eFiddleError, "%s", err);</div><div class='add'>+	rb_raise(rb_eFiddleDLError, "%s", err);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     TypedData_Get_Struct(self, struct dl_handle, &amp;fiddle_handle_data_type, fiddle_handle);</div><div class='hunk'>@@ -261,7 +259,21 @@ rb_fiddle_handle_to_i(VALUE self)</div><div class='ctx'>     struct dl_handle *fiddle_handle;</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, struct dl_handle, &amp;fiddle_handle_data_type, fiddle_handle);</div><div class='del'>-    return PTR2NUM(fiddle_handle);</div><div class='add'>+    return PTR2NUM(fiddle_handle-&gt;ptr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq: to_ptr</div><div class='add'>+ *</div><div class='add'>+ * Returns the Fiddle::Pointer of this handle.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_handle_to_ptr(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct dl_handle *fiddle_handle;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(self, struct dl_handle, &amp;fiddle_handle_data_type, fiddle_handle);</div><div class='add'>+    return rb_fiddle_ptr_new_wrap(fiddle_handle-&gt;ptr, 0, 0, self, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE fiddle_handle_sym(void *handle, VALUE symbol);</div><div class='hunk'>@@ -280,7 +292,7 @@ rb_fiddle_handle_sym(VALUE self, VALUE sym)</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, struct dl_handle, &amp;fiddle_handle_data_type, fiddle_handle);</div><div class='ctx'>     if( ! fiddle_handle-&gt;open ){</div><div class='del'>-	rb_raise(rb_eFiddleError, "closed handle");</div><div class='add'>+	rb_raise(rb_eFiddleDLError, "closed handle");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return fiddle_handle_sym(fiddle_handle-&gt;ptr, sym);</div><div class='hunk'>@@ -309,8 +321,10 @@ rb_fiddle_handle_s_sym(VALUE self, VALUE sym)</div><div class='ctx'>     return fiddle_handle_sym(RTLD_NEXT, sym);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-fiddle_handle_sym(void *handle, VALUE symbol)</div><div class='add'>+typedef void (*fiddle_void_func)(void);</div><div class='add'>+</div><div class='add'>+static fiddle_void_func</div><div class='add'>+fiddle_handle_find_func(void *handle, VALUE symbol)</div><div class='ctx'> {</div><div class='ctx'> #if defined(HAVE_DLERROR)</div><div class='ctx'>     const char *err;</div><div class='hunk'>@@ -318,13 +332,13 @@ fiddle_handle_sym(void *handle, VALUE symbol)</div><div class='ctx'> #else</div><div class='ctx'> # define CHECK_DLERROR</div><div class='ctx'> #endif</div><div class='del'>-    void (*func)();</div><div class='del'>-    const char *name = SafeStringValueCStr(symbol);</div><div class='add'>+    fiddle_void_func func;</div><div class='add'>+    const char *name = StringValueCStr(symbol);</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_DLERROR</div><div class='ctx'>     dlerror();</div><div class='ctx'> #endif</div><div class='del'>-    func = (void (*)())(VALUE)dlsym(handle, name);</div><div class='add'>+    func = (fiddle_void_func)(VALUE)dlsym(handle, name);</div><div class='ctx'>     CHECK_DLERROR;</div><div class='ctx'> #if defined(FUNC_STDCALL)</div><div class='ctx'>     if( !func ){</div><div class='hunk'>@@ -367,13 +381,102 @@ fiddle_handle_sym(void *handle, VALUE symbol)</div><div class='ctx'> 	xfree(name_n);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='add'>+    return func;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_handle_s_sym_defined(VALUE self, VALUE sym)</div><div class='add'>+{</div><div class='add'>+    fiddle_void_func func;</div><div class='add'>+</div><div class='add'>+    func = fiddle_handle_find_func(RTLD_NEXT, sym);</div><div class='add'>+</div><div class='add'>+    if( func ) {</div><div class='add'>+	return PTR2NUM(func);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return Qnil;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_handle_sym_defined(VALUE self, VALUE sym)</div><div class='add'>+{</div><div class='add'>+    struct dl_handle *fiddle_handle;</div><div class='add'>+    fiddle_void_func func;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(self, struct dl_handle, &amp;fiddle_handle_data_type, fiddle_handle);</div><div class='add'>+    if( ! fiddle_handle-&gt;open ){</div><div class='add'>+	rb_raise(rb_eFiddleDLError, "closed handle");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    func = fiddle_handle_find_func(fiddle_handle-&gt;ptr, sym);</div><div class='add'>+</div><div class='add'>+    if( func ) {</div><div class='add'>+	return PTR2NUM(func);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return Qnil;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+fiddle_handle_sym(void *handle, VALUE symbol)</div><div class='add'>+{</div><div class='add'>+    fiddle_void_func func;</div><div class='add'>+</div><div class='add'>+    func = fiddle_handle_find_func(handle, symbol);</div><div class='add'>+</div><div class='ctx'>     if( !func ){</div><div class='del'>-	rb_raise(rb_eFiddleError, "unknown symbol \"%"PRIsVALUE"\"", symbol);</div><div class='add'>+	rb_raise(rb_eFiddleDLError, "unknown symbol \"%"PRIsVALUE"\"", symbol);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return PTR2NUM(func);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * call-seq: file_name</div><div class='add'>+ *</div><div class='add'>+ * Returns the file name of this handle.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_handle_file_name(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct dl_handle *fiddle_handle;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(self, struct dl_handle, &amp;fiddle_handle_data_type, fiddle_handle);</div><div class='add'>+</div><div class='add'>+#if defined(HAVE_DLINFO) &amp;&amp; defined(HAVE_CONST_RTLD_DI_LINKMAP)</div><div class='add'>+    {</div><div class='add'>+	struct link_map *lm = NULL;</div><div class='add'>+	int res = dlinfo(fiddle_handle-&gt;ptr, RTLD_DI_LINKMAP, &amp;lm);</div><div class='add'>+	if (res == 0 &amp;&amp; lm != NULL) {</div><div class='add'>+	    return rb_str_new_cstr(lm-&gt;l_name);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+#if defined(HAVE_DLERROR)</div><div class='add'>+	    rb_raise(rb_eFiddleDLError, "could not get handle file name: %s", dlerror());</div><div class='add'>+#else</div><div class='add'>+	    rb_raise(rb_eFiddleDLError, "could not get handle file name");</div><div class='add'>+#endif</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+#elif defined(HAVE_GETMODULEFILENAME)</div><div class='add'>+    {</div><div class='add'>+	char filename[MAX_PATH];</div><div class='add'>+	DWORD res = GetModuleFileName(fiddle_handle-&gt;ptr, filename, MAX_PATH);</div><div class='add'>+	if (res == 0) {</div><div class='add'>+	    rb_raise(rb_eFiddleDLError, "could not get handle file name: %s", dlerror());</div><div class='add'>+	}</div><div class='add'>+	return rb_str_new_cstr(filename);</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    (void)fiddle_handle;</div><div class='add'>+    return Qnil;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_fiddle_handle(void)</div><div class='ctx'> {</div><div class='hunk'>@@ -414,6 +517,7 @@ Init_fiddle_handle(void)</div><div class='ctx'>     rb_cHandle = rb_define_class_under(mFiddle, "Handle", rb_cObject);</div><div class='ctx'>     rb_define_alloc_func(rb_cHandle, rb_fiddle_handle_s_allocate);</div><div class='ctx'>     rb_define_singleton_method(rb_cHandle, "sym", rb_fiddle_handle_s_sym, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cHandle, "sym_defined?", rb_fiddle_handle_s_sym_defined, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cHandle, "[]", rb_fiddle_handle_s_sym,  1);</div><div class='ctx'> </div><div class='ctx'>     /* Document-const: NEXT</div><div class='hunk'>@@ -468,9 +572,12 @@ Init_fiddle_handle(void)</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cHandle, "initialize", rb_fiddle_handle_initialize, -1);</div><div class='ctx'>     rb_define_method(rb_cHandle, "to_i", rb_fiddle_handle_to_i, 0);</div><div class='add'>+    rb_define_method(rb_cHandle, "to_ptr", rb_fiddle_handle_to_ptr, 0);</div><div class='ctx'>     rb_define_method(rb_cHandle, "close", rb_fiddle_handle_close, 0);</div><div class='ctx'>     rb_define_method(rb_cHandle, "sym",  rb_fiddle_handle_sym, 1);</div><div class='ctx'>     rb_define_method(rb_cHandle, "[]",  rb_fiddle_handle_sym,  1);</div><div class='add'>+    rb_define_method(rb_cHandle, "sym_defined?", rb_fiddle_handle_sym_defined, 1);</div><div class='add'>+    rb_define_method(rb_cHandle, "file_name", rb_fiddle_handle_file_name, 0);</div><div class='ctx'>     rb_define_method(rb_cHandle, "disable_close", rb_fiddle_handle_disable_close, 0);</div><div class='ctx'>     rb_define_method(rb_cHandle, "enable_close", rb_fiddle_handle_enable_close, 0);</div><div class='ctx'>     rb_define_method(rb_cHandle, "close_enabled?", rb_fiddle_handle_close_enabled_p, 0);</div><div class='head'>diff --git a/ext/fiddle/lib/fiddle.rb b/ext/fiddle/lib/fiddle.rb<br/>index e9aa7e50ae..6137c487c6 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/lib/fiddle.rb</a></div><div class='hunk'>@@ -1,7 +1,9 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='add'>+</div><div class='ctx'> require 'fiddle.so'</div><div class='del'>-require 'fiddle/function'</div><div class='ctx'> require 'fiddle/closure'</div><div class='add'>+require 'fiddle/function'</div><div class='add'>+require 'fiddle/version'</div><div class='ctx'> </div><div class='ctx'> module Fiddle</div><div class='ctx'>   if WINDOWS</div><div class='hunk'>@@ -15,6 +17,18 @@ module Fiddle</div><div class='ctx'>     def self.win32_last_error= error</div><div class='ctx'>       Thread.current[:__FIDDLE_WIN32_LAST_ERROR__] = error</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    # Returns the last win32 socket +Error+ of the current executing</div><div class='add'>+    # +Thread+ or nil if none</div><div class='add'>+    def self.win32_last_socket_error</div><div class='add'>+      Thread.current[:__FIDDLE_WIN32_LAST_SOCKET_ERROR__]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Sets the last win32 socket +Error+ of the current executing</div><div class='add'>+    # +Thread+ to +error+</div><div class='add'>+    def self.win32_last_socket_error= error</div><div class='add'>+      Thread.current[:__FIDDLE_WIN32_LAST_SOCKET_ERROR__] = error</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Returns the last +Error+ of the current executing +Thread+ or nil if none</div><div class='hunk'>@@ -44,7 +58,36 @@ module Fiddle</div><div class='ctx'>   #</div><div class='ctx'>   # See Fiddle::Handle.new for more.</div><div class='ctx'>   def dlopen library</div><div class='del'>-    Fiddle::Handle.new library</div><div class='add'>+    begin</div><div class='add'>+      Fiddle::Handle.new(library)</div><div class='add'>+    rescue DLError =&gt; error</div><div class='add'>+      case RUBY_PLATFORM</div><div class='add'>+      when /linux/</div><div class='add'>+        case error.message</div><div class='add'>+        when /\A(\/.+?): (?:invalid ELF header|file too short)/</div><div class='add'>+          # This may be a linker script:</div><div class='add'>+          # https://sourceware.org/binutils/docs/ld.html#Scripts</div><div class='add'>+          path = $1</div><div class='add'>+        else</div><div class='add'>+          raise</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        raise</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      File.open(path) do |input|</div><div class='add'>+        input.each_line do |line|</div><div class='add'>+          case line</div><div class='add'>+          when /\A\s*(?:INPUT|GROUP)\s*\(\s*([^\s,\)]+)/</div><div class='add'>+            # TODO: Should we support multiple files?</div><div class='add'>+            return dlopen($1)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Not found</div><div class='add'>+      raise</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'>   module_function :dlopen</div><div class='ctx'> </div><div class='hunk'>@@ -53,4 +96,8 @@ module Fiddle</div><div class='ctx'>   RTLD_GLOBAL = Handle::RTLD_GLOBAL # :nodoc:</div><div class='ctx'>   RTLD_LAZY   = Handle::RTLD_LAZY   # :nodoc:</div><div class='ctx'>   RTLD_NOW    = Handle::RTLD_NOW    # :nodoc:</div><div class='add'>+</div><div class='add'>+  Fiddle::Types.constants.each do |type|</div><div class='add'>+    const_set "TYPE_#{type}", Fiddle::Types.const_get(type)</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/fiddle/lib/fiddle/closure.rb b/ext/fiddle/lib/fiddle/closure.rb<br/>index c865a63c20..7e0077ea52 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/closure.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/closure.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/closure.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/lib/fiddle/closure.rb</a></div><div class='hunk'>@@ -1,6 +1,31 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> module Fiddle</div><div class='ctx'>   class Closure</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      # Create a new closure. If a block is given, the created closure</div><div class='add'>+      # is automatically freed after the given block is executed.</div><div class='add'>+      #</div><div class='add'>+      # The all given arguments are passed to Fiddle::Closure.new. So</div><div class='add'>+      # using this method without block equals to Fiddle::Closure.new.</div><div class='add'>+      #</div><div class='add'>+      # == Example</div><div class='add'>+      #</div><div class='add'>+      #   Fiddle::Closure.create(TYPE_INT, [TYPE_INT]) do |closure|</div><div class='add'>+      #     # closure is freed automatically when this block is finished.</div><div class='add'>+      #   end</div><div class='add'>+      def create(*args)</div><div class='add'>+        if block_given?</div><div class='add'>+          closure = new(*args)</div><div class='add'>+          begin</div><div class='add'>+            yield(closure)</div><div class='add'>+          ensure</div><div class='add'>+            closure.free</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          new(*args)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     # the C type of the return of the FFI closure</div><div class='ctx'>     attr_reader :ctype</div><div class='head'>diff --git a/ext/fiddle/lib/fiddle/cparser.rb b/ext/fiddle/lib/fiddle/cparser.rb<br/>index cd0a64fef5..9a70402953 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/cparser.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/cparser.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/cparser.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/lib/fiddle/cparser.rb</a></div><div class='hunk'>@@ -35,12 +35,37 @@ module Fiddle</div><div class='ctx'>     def parse_struct_signature(signature, tymap=nil)</div><div class='ctx'>       if signature.is_a?(String)</div><div class='ctx'>         signature = split_arguments(signature, /[,;]/)</div><div class='add'>+      elsif signature.is_a?(Hash)</div><div class='add'>+        signature = [signature]</div><div class='ctx'>       end</div><div class='ctx'>       mems = []</div><div class='ctx'>       tys  = []</div><div class='ctx'>       signature.each{|msig|</div><div class='del'>-        msig = compact(msig)</div><div class='add'>+        msig = compact(msig) if msig.is_a?(String)</div><div class='ctx'>         case msig</div><div class='add'>+        when Hash</div><div class='add'>+          msig.each do |struct_name, struct_signature|</div><div class='add'>+            struct_name = struct_name.to_s if struct_name.is_a?(Symbol)</div><div class='add'>+            struct_name = compact(struct_name)</div><div class='add'>+            struct_count = nil</div><div class='add'>+            if struct_name =~ /^([\w\*\s]+)\[(\d+)\]$/</div><div class='add'>+              struct_count = $2.to_i</div><div class='add'>+              struct_name = $1</div><div class='add'>+            end</div><div class='add'>+            if struct_signature.respond_to?(:entity_class)</div><div class='add'>+              struct_type = struct_signature</div><div class='add'>+            else</div><div class='add'>+              parsed_struct = parse_struct_signature(struct_signature, tymap)</div><div class='add'>+              struct_type = CStructBuilder.create(CStruct, *parsed_struct)</div><div class='add'>+            end</div><div class='add'>+            if struct_count</div><div class='add'>+              ty = [struct_type, struct_count]</div><div class='add'>+            else</div><div class='add'>+              ty = struct_type</div><div class='add'>+            end</div><div class='add'>+            mems.push([struct_name, struct_type.members])</div><div class='add'>+            tys.push(ty)</div><div class='add'>+          end</div><div class='ctx'>         when /^[\w\*\s]+[\*\s](\w+)$/</div><div class='ctx'>           mems.push($1)</div><div class='ctx'>           tys.push(parse_ctype(msig, tymap))</div><div class='hunk'>@@ -123,55 +148,97 @@ module Fiddle</div><div class='ctx'>     #</div><div class='ctx'>     def parse_ctype(ty, tymap=nil)</div><div class='ctx'>       tymap ||= {}</div><div class='del'>-      case ty</div><div class='del'>-      when Array</div><div class='add'>+      if ty.is_a?(Array)</div><div class='ctx'>         return [parse_ctype(ty[0], tymap), ty[1]]</div><div class='add'>+      end</div><div class='add'>+      ty = ty.gsub(/\Aconst\s+/, "")</div><div class='add'>+      case ty</div><div class='ctx'>       when 'void'</div><div class='ctx'>         return TYPE_VOID</div><div class='del'>-      when /^(?:(?:signed\s+)?long\s+long(?:\s+int\s+)?|int64_t)(?:\s+\w+)?$/</div><div class='del'>-        if( defined?(TYPE_LONG_LONG) )</div><div class='del'>-          return TYPE_LONG_LONG</div><div class='del'>-        else</div><div class='add'>+      when /\A(?:(?:signed\s+)?long\s+long(?:\s+int\s+)?|int64_t)(?:\s+\w+)?\z/</div><div class='add'>+        unless Fiddle.const_defined?(:TYPE_LONG_LONG)</div><div class='ctx'>           raise(RuntimeError, "unsupported type: #{ty}")</div><div class='ctx'>         end</div><div class='del'>-      when /^(?:unsigned\s+long\s+long(?:\s+int\s+)?|uint64_t)(?:\s+\w+)?$/</div><div class='del'>-        if( defined?(TYPE_LONG_LONG) )</div><div class='del'>-          return -TYPE_LONG_LONG</div><div class='del'>-        else</div><div class='add'>+        return TYPE_LONG_LONG</div><div class='add'>+      when /\A(?:unsigned\s+long\s+long(?:\s+int\s+)?|uint64_t)(?:\s+\w+)?\z/</div><div class='add'>+        unless Fiddle.const_defined?(:TYPE_LONG_LONG)</div><div class='ctx'>           raise(RuntimeError, "unsupported type: #{ty}")</div><div class='ctx'>         end</div><div class='del'>-      when /^(?:signed\s+)?long(?:\s+int\s+)?(?:\s+\w+)?$/</div><div class='add'>+        return TYPE_ULONG_LONG</div><div class='add'>+      when /\A(?:signed\s+)?long(?:\s+int\s+)?(?:\s+\w+)?\z/</div><div class='ctx'>         return TYPE_LONG</div><div class='del'>-      when /^unsigned\s+long(?:\s+int\s+)?(?:\s+\w+)?$/</div><div class='del'>-        return -TYPE_LONG</div><div class='del'>-      when /^(?:signed\s+)?int(?:\s+\w+)?$/</div><div class='add'>+      when /\Aunsigned\s+long(?:\s+int\s+)?(?:\s+\w+)?\z/</div><div class='add'>+        return TYPE_ULONG</div><div class='add'>+      when /\A(?:signed\s+)?int(?:\s+\w+)?\z/</div><div class='ctx'>         return TYPE_INT</div><div class='del'>-      when /^(?:unsigned\s+int|uint)(?:\s+\w+)?$/</div><div class='del'>-        return -TYPE_INT</div><div class='del'>-      when /^(?:signed\s+)?short(?:\s+int\s+)?(?:\s+\w+)?$/</div><div class='add'>+      when /\A(?:unsigned\s+int|uint)(?:\s+\w+)?\z/</div><div class='add'>+        return TYPE_UINT</div><div class='add'>+      when /\A(?:signed\s+)?short(?:\s+int\s+)?(?:\s+\w+)?\z/</div><div class='ctx'>         return TYPE_SHORT</div><div class='del'>-      when /^unsigned\s+short(?:\s+int\s+)?(?:\s+\w+)?$/</div><div class='del'>-        return -TYPE_SHORT</div><div class='del'>-      when /^(?:signed\s+)?char(?:\s+\w+)?$/</div><div class='add'>+      when /\Aunsigned\s+short(?:\s+int\s+)?(?:\s+\w+)?\z/</div><div class='add'>+        return TYPE_USHORT</div><div class='add'>+      when /\A(?:signed\s+)?char(?:\s+\w+)?\z/</div><div class='ctx'>         return TYPE_CHAR</div><div class='del'>-      when /^unsigned\s+char(?:\s+\w+)?$/</div><div class='del'>-        return  -TYPE_CHAR</div><div class='del'>-      when /^float(?:\s+\w+)?$/</div><div class='add'>+      when /\Aunsigned\s+char(?:\s+\w+)?\z/</div><div class='add'>+        return  TYPE_UCHAR</div><div class='add'>+      when /\Aint8_t(?:\s+\w+)?\z/</div><div class='add'>+        unless Fiddle.const_defined?(:TYPE_INT8_T)</div><div class='add'>+          raise(RuntimeError, "unsupported type: #{ty}")</div><div class='add'>+        end</div><div class='add'>+        return TYPE_INT8_T</div><div class='add'>+      when /\Auint8_t(?:\s+\w+)?\z/</div><div class='add'>+        unless Fiddle.const_defined?(:TYPE_INT8_T)</div><div class='add'>+          raise(RuntimeError, "unsupported type: #{ty}")</div><div class='add'>+        end</div><div class='add'>+        return TYPE_UINT8_T</div><div class='add'>+      when /\Aint16_t(?:\s+\w+)?\z/</div><div class='add'>+        unless Fiddle.const_defined?(:TYPE_INT16_T)</div><div class='add'>+          raise(RuntimeError, "unsupported type: #{ty}")</div><div class='add'>+        end</div><div class='add'>+        return TYPE_INT16_T</div><div class='add'>+      when /\Auint16_t(?:\s+\w+)?\z/</div><div class='add'>+        unless Fiddle.const_defined?(:TYPE_INT16_T)</div><div class='add'>+          raise(RuntimeError, "unsupported type: #{ty}")</div><div class='add'>+        end</div><div class='add'>+        return TYPE_UINT16_T</div><div class='add'>+      when /\Aint32_t(?:\s+\w+)?\z/</div><div class='add'>+        unless Fiddle.const_defined?(:TYPE_INT32_T)</div><div class='add'>+          raise(RuntimeError, "unsupported type: #{ty}")</div><div class='add'>+        end</div><div class='add'>+        return TYPE_INT32_T</div><div class='add'>+      when /\Auint32_t(?:\s+\w+)?\z/</div><div class='add'>+        unless Fiddle.const_defined?(:TYPE_INT32_T)</div><div class='add'>+          raise(RuntimeError, "unsupported type: #{ty}")</div><div class='add'>+        end</div><div class='add'>+        return TYPE_UINT32_T</div><div class='add'>+      when /\Aint64_t(?:\s+\w+)?\z/</div><div class='add'>+        unless Fiddle.const_defined?(:TYPE_INT64_T)</div><div class='add'>+          raise(RuntimeError, "unsupported type: #{ty}")</div><div class='add'>+        end</div><div class='add'>+        return TYPE_INT64_T</div><div class='add'>+      when /\Auint64_t(?:\s+\w+)?\z/</div><div class='add'>+        unless Fiddle.const_defined?(:TYPE_INT64_T)</div><div class='add'>+          raise(RuntimeError, "unsupported type: #{ty}")</div><div class='add'>+        end</div><div class='add'>+        return TYPE_UINT64_T</div><div class='add'>+      when /\Afloat(?:\s+\w+)?\z/</div><div class='ctx'>         return TYPE_FLOAT</div><div class='del'>-      when /^double(?:\s+\w+)?$/</div><div class='add'>+      when /\Adouble(?:\s+\w+)?\z/</div><div class='ctx'>         return TYPE_DOUBLE</div><div class='del'>-      when /^size_t(?:\s+\w+)?$/</div><div class='add'>+      when /\Asize_t(?:\s+\w+)?\z/</div><div class='ctx'>         return TYPE_SIZE_T</div><div class='del'>-      when /^ssize_t(?:\s+\w+)?$/</div><div class='add'>+      when /\Assize_t(?:\s+\w+)?\z/</div><div class='ctx'>         return TYPE_SSIZE_T</div><div class='del'>-      when /^ptrdiff_t(?:\s+\w+)?$/</div><div class='add'>+      when /\Aptrdiff_t(?:\s+\w+)?\z/</div><div class='ctx'>         return TYPE_PTRDIFF_T</div><div class='del'>-      when /^intptr_t(?:\s+\w+)?$/</div><div class='add'>+      when /\Aintptr_t(?:\s+\w+)?\z/</div><div class='ctx'>         return TYPE_INTPTR_T</div><div class='del'>-      when /^uintptr_t(?:\s+\w+)?$/</div><div class='add'>+      when /\Auintptr_t(?:\s+\w+)?\z/</div><div class='ctx'>         return TYPE_UINTPTR_T</div><div class='ctx'>       when /\*/, /\[[\s\d]*\]/</div><div class='ctx'>         return TYPE_VOIDP</div><div class='add'>+      when "..."</div><div class='add'>+        return TYPE_VARIADIC</div><div class='ctx'>       else</div><div class='ctx'>         ty = ty.split(' ', 2)[0]</div><div class='ctx'>         if( tymap[ty] )</div><div class='hunk'>@@ -186,7 +253,7 @@ module Fiddle</div><div class='ctx'> </div><div class='ctx'>     def split_arguments(arguments, sep=',')</div><div class='ctx'>       return [] if arguments.strip == 'void'</div><div class='del'>-      arguments.scan(/([\w\*\s]+\(\*\w*\)\(.*?\)|[\w\*\s\[\]]+)(?:#{sep}\s*|$)/).collect {|m| m[0]}</div><div class='add'>+      arguments.scan(/([\w\*\s]+\(\*\w*\)\(.*?\)|[\w\*\s\[\]]+|\.\.\.)(?:#{sep}\s*|\z)/).collect {|m| m[0]}</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def compact(signature)</div><div class='head'>diff --git a/ext/fiddle/lib/fiddle/function.rb b/ext/fiddle/lib/fiddle/function.rb<br/>index dd5e04e417..dc2e3e6bf5 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/function.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/function.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/function.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/lib/fiddle/function.rb</a></div><div class='hunk'>@@ -10,9 +10,20 @@ module Fiddle</div><div class='ctx'>     # The name of this function</div><div class='ctx'>     attr_reader :name</div><div class='ctx'> </div><div class='add'>+    # Whether GVL is needed to call this function</div><div class='add'>+    def need_gvl?</div><div class='add'>+      @need_gvl</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # The integer memory location of this function</div><div class='ctx'>     def to_i</div><div class='ctx'>       ptr.to_i</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    # Turn this function in to a proc</div><div class='add'>+    def to_proc</div><div class='add'>+      this = self</div><div class='add'>+      lambda { |*args| this.call(*args) }</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/fiddle/lib/fiddle/import.rb b/ext/fiddle/lib/fiddle/import.rb<br/>index 178ebb8c76..09ffcef544 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/import.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/import.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/import.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/lib/fiddle/import.rb</a></div><div class='hunk'>@@ -83,11 +83,7 @@ module Fiddle</div><div class='ctx'>         when Importer</div><div class='ctx'>           lib.handlers</div><div class='ctx'>         else</div><div class='del'>-          begin</div><div class='del'>-            Fiddle.dlopen(lib)</div><div class='del'>-          rescue DLError</div><div class='del'>-            raise(DLError, "can't load #{lib}")</div><div class='del'>-          end</div><div class='add'>+          Fiddle.dlopen(lib)</div><div class='ctx'>         end</div><div class='ctx'>       }.flatten()</div><div class='ctx'>       @handler = CompositeHandler.new(handles)</div><div class='hunk'>@@ -121,6 +117,8 @@ module Fiddle</div><div class='ctx'>           return SIZEOF_DOUBLE</div><div class='ctx'>         when TYPE_VOIDP</div><div class='ctx'>           return SIZEOF_VOIDP</div><div class='add'>+        when TYPE_CONST_STRING</div><div class='add'>+          return SIZEOF_CONST_STRING</div><div class='ctx'>         else</div><div class='ctx'>           if defined?(TYPE_LONG_LONG) and</div><div class='ctx'>             ty == TYPE_LONG_LONG</div><div class='head'>diff --git a/ext/fiddle/lib/fiddle/pack.rb b/ext/fiddle/lib/fiddle/pack.rb<br/>index 22eccedb76..545b985d50 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/pack.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/pack.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/pack.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/lib/fiddle/pack.rb</a></div><div class='hunk'>@@ -11,24 +11,24 @@ module Fiddle</div><div class='ctx'>       TYPE_LONG  =&gt; ALIGN_LONG,</div><div class='ctx'>       TYPE_FLOAT =&gt; ALIGN_FLOAT,</div><div class='ctx'>       TYPE_DOUBLE =&gt; ALIGN_DOUBLE,</div><div class='del'>-      -TYPE_CHAR  =&gt; ALIGN_CHAR,</div><div class='del'>-      -TYPE_SHORT =&gt; ALIGN_SHORT,</div><div class='del'>-      -TYPE_INT   =&gt; ALIGN_INT,</div><div class='del'>-      -TYPE_LONG  =&gt; ALIGN_LONG,</div><div class='add'>+      TYPE_UCHAR  =&gt; ALIGN_CHAR,</div><div class='add'>+      TYPE_USHORT =&gt; ALIGN_SHORT,</div><div class='add'>+      TYPE_UINT   =&gt; ALIGN_INT,</div><div class='add'>+      TYPE_ULONG  =&gt; ALIGN_LONG,</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     PACK_MAP = {</div><div class='del'>-      TYPE_VOIDP =&gt; "l!",</div><div class='add'>+      TYPE_VOIDP =&gt; "L!",</div><div class='ctx'>       TYPE_CHAR  =&gt; "c",</div><div class='ctx'>       TYPE_SHORT =&gt; "s!",</div><div class='ctx'>       TYPE_INT   =&gt; "i!",</div><div class='ctx'>       TYPE_LONG  =&gt; "l!",</div><div class='ctx'>       TYPE_FLOAT =&gt; "f",</div><div class='ctx'>       TYPE_DOUBLE =&gt; "d",</div><div class='del'>-      -TYPE_CHAR  =&gt; "c",</div><div class='del'>-      -TYPE_SHORT =&gt; "s!",</div><div class='del'>-      -TYPE_INT   =&gt; "i!",</div><div class='del'>-      -TYPE_LONG  =&gt; "l!",</div><div class='add'>+      TYPE_UCHAR  =&gt; "C",</div><div class='add'>+      TYPE_USHORT =&gt; "S!",</div><div class='add'>+      TYPE_UINT   =&gt; "I!",</div><div class='add'>+      TYPE_ULONG  =&gt; "L!",</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     SIZE_MAP = {</div><div class='hunk'>@@ -39,16 +39,17 @@ module Fiddle</div><div class='ctx'>       TYPE_LONG  =&gt; SIZEOF_LONG,</div><div class='ctx'>       TYPE_FLOAT =&gt; SIZEOF_FLOAT,</div><div class='ctx'>       TYPE_DOUBLE =&gt; SIZEOF_DOUBLE,</div><div class='del'>-      -TYPE_CHAR  =&gt; SIZEOF_CHAR,</div><div class='del'>-      -TYPE_SHORT =&gt; SIZEOF_SHORT,</div><div class='del'>-      -TYPE_INT   =&gt; SIZEOF_INT,</div><div class='del'>-      -TYPE_LONG  =&gt; SIZEOF_LONG,</div><div class='add'>+      TYPE_UCHAR  =&gt; SIZEOF_CHAR,</div><div class='add'>+      TYPE_USHORT =&gt; SIZEOF_SHORT,</div><div class='add'>+      TYPE_UINT   =&gt; SIZEOF_INT,</div><div class='add'>+      TYPE_ULONG  =&gt; SIZEOF_LONG,</div><div class='ctx'>     }</div><div class='ctx'>     if defined?(TYPE_LONG_LONG)</div><div class='del'>-      ALIGN_MAP[TYPE_LONG_LONG] = ALIGN_MAP[-TYPE_LONG_LONG] = ALIGN_LONG_LONG</div><div class='del'>-      PACK_MAP[TYPE_LONG_LONG] = PACK_MAP[-TYPE_LONG_LONG] = "q"</div><div class='del'>-      SIZE_MAP[TYPE_LONG_LONG] = SIZE_MAP[-TYPE_LONG_LONG] = SIZEOF_LONG_LONG</div><div class='del'>-      PACK_MAP[TYPE_VOIDP] = "q" if SIZEOF_LONG_LONG == SIZEOF_VOIDP</div><div class='add'>+      ALIGN_MAP[TYPE_LONG_LONG] = ALIGN_MAP[TYPE_ULONG_LONG] = ALIGN_LONG_LONG</div><div class='add'>+      PACK_MAP[TYPE_LONG_LONG] = "q"</div><div class='add'>+      PACK_MAP[TYPE_ULONG_LONG] = "Q"</div><div class='add'>+      SIZE_MAP[TYPE_LONG_LONG] = SIZE_MAP[TYPE_ULONG_LONG] = SIZEOF_LONG_LONG</div><div class='add'>+      PACK_MAP[TYPE_VOIDP] = "Q" if SIZEOF_LONG_LONG == SIZEOF_VOIDP</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def align(addr, align)</div><div class='head'>diff --git a/ext/fiddle/lib/fiddle/struct.rb b/ext/fiddle/lib/fiddle/struct.rb<br/>index 7c0dedb39f..6d05bbd742 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/struct.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/struct.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/struct.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/lib/fiddle/struct.rb</a></div><div class='hunk'>@@ -4,20 +4,168 @@ require 'fiddle/value'</div><div class='ctx'> require 'fiddle/pack'</div><div class='ctx'> </div><div class='ctx'> module Fiddle</div><div class='del'>-  # C struct shell</div><div class='add'>+  # A base class for objects representing a C structure</div><div class='ctx'>   class CStruct</div><div class='add'>+    include Enumerable</div><div class='add'>+</div><div class='ctx'>     # accessor to Fiddle::CStructEntity</div><div class='ctx'>     def CStruct.entity_class</div><div class='ctx'>       CStructEntity</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def self.offsetof(name, members, types) # :nodoc:</div><div class='add'>+      offset = 0</div><div class='add'>+      worklist = name.split('.')</div><div class='add'>+      this_type = self</div><div class='add'>+      while search_name = worklist.shift</div><div class='add'>+        index = 0</div><div class='add'>+        member_index = members.index(search_name)</div><div class='add'>+</div><div class='add'>+        unless member_index</div><div class='add'>+          # Possibly a sub-structure</div><div class='add'>+          member_index = members.index { |member_name, _|</div><div class='add'>+            member_name == search_name</div><div class='add'>+          }</div><div class='add'>+          return unless member_index</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        types.each { |type, count = 1|</div><div class='add'>+          orig_offset = offset</div><div class='add'>+          if type.respond_to?(:entity_class)</div><div class='add'>+            align = type.alignment</div><div class='add'>+            type_size = type.size</div><div class='add'>+          else</div><div class='add'>+            align = PackInfo::ALIGN_MAP[type]</div><div class='add'>+            type_size = PackInfo::SIZE_MAP[type]</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          # Unions shouldn't advance the offset</div><div class='add'>+          if this_type.entity_class == CUnionEntity</div><div class='add'>+            type_size = 0</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          offset = PackInfo.align(orig_offset, align)</div><div class='add'>+</div><div class='add'>+          if worklist.empty?</div><div class='add'>+            return offset if index == member_index</div><div class='add'>+          else</div><div class='add'>+            if index == member_index</div><div class='add'>+              subtype = types[member_index]</div><div class='add'>+              members = subtype.members</div><div class='add'>+              types = subtype.types</div><div class='add'>+              this_type = subtype</div><div class='add'>+              break</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          offset += (type_size * count)</div><div class='add'>+          index += 1</div><div class='add'>+        }</div><div class='add'>+      end</div><div class='add'>+      nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def each</div><div class='add'>+      return enum_for(__function__) unless block_given?</div><div class='add'>+</div><div class='add'>+      self.class.members.each do |name,|</div><div class='add'>+        yield(self[name])</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def each_pair</div><div class='add'>+      return enum_for(__function__) unless block_given?</div><div class='add'>+</div><div class='add'>+      self.class.members.each do |name,|</div><div class='add'>+        yield(name, self[name])</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def to_h</div><div class='add'>+      hash = {}</div><div class='add'>+      each_pair do |name, value|</div><div class='add'>+        hash[name] = unstruct(value)</div><div class='add'>+      end</div><div class='add'>+      hash</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def replace(another)</div><div class='add'>+      if another.nil?</div><div class='add'>+        self.class.members.each do |name,|</div><div class='add'>+          self[name] = nil</div><div class='add'>+        end</div><div class='add'>+      elsif another.respond_to?(:each_pair)</div><div class='add'>+        another.each_pair do |name, value|</div><div class='add'>+          self[name] = value</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        another.each do |name, value|</div><div class='add'>+          self[name] = value</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      self</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+    def unstruct(value)</div><div class='add'>+      case value</div><div class='add'>+      when CStruct</div><div class='add'>+        value.to_h</div><div class='add'>+      when Array</div><div class='add'>+        value.collect do |v|</div><div class='add'>+          unstruct(v)</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        value</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # C union shell</div><div class='add'>+  # A base class for objects representing a C union</div><div class='ctx'>   class CUnion</div><div class='ctx'>     # accessor to Fiddle::CUnionEntity</div><div class='ctx'>     def CUnion.entity_class</div><div class='ctx'>       CUnionEntity</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def self.offsetof(name, members, types) # :nodoc:</div><div class='add'>+      0</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Wrapper for arrays within a struct</div><div class='add'>+  class StructArray &lt; Array</div><div class='add'>+    include ValueUtil</div><div class='add'>+</div><div class='add'>+    def initialize(ptr, type, initial_values)</div><div class='add'>+      @ptr = ptr</div><div class='add'>+      @type = type</div><div class='add'>+      @is_struct = @type.respond_to?(:entity_class)</div><div class='add'>+      if @is_struct</div><div class='add'>+        super(initial_values)</div><div class='add'>+      else</div><div class='add'>+        @size = Fiddle::PackInfo::SIZE_MAP[type]</div><div class='add'>+        @pack_format = Fiddle::PackInfo::PACK_MAP[type]</div><div class='add'>+        super(initial_values.collect { |v| unsigned_value(v, type) })</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def to_ptr</div><div class='add'>+      @ptr</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def []=(index, value)</div><div class='add'>+      if index &lt; 0 || index &gt;= size</div><div class='add'>+        raise IndexError, 'index %d outside of array bounds 0...%d' % [index, size]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if @is_struct</div><div class='add'>+        self[index].replace(value)</div><div class='add'>+      else</div><div class='add'>+        to_ptr[index * @size, @size] = [value].pack(@pack_format)</div><div class='add'>+        super(index, value)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Used to construct C classes (CUnion, CStruct, etc)</div><div class='hunk'>@@ -35,7 +183,7 @@ module Fiddle</div><div class='ctx'>     # Fiddle::Importer#struct and Fiddle::Importer#union wrap this functionality in an</div><div class='ctx'>     # easy-to-use manner.</div><div class='ctx'>     #</div><div class='del'>-    # Example:</div><div class='add'>+    # Examples:</div><div class='ctx'>     #</div><div class='ctx'>     #   require 'fiddle/struct'</div><div class='ctx'>     #   require 'fiddle/cparser'</div><div class='hunk'>@@ -46,47 +194,113 @@ module Fiddle</div><div class='ctx'>     #</div><div class='ctx'>     #   MyStruct = Fiddle::CStructBuilder.create(Fiddle::CUnion, types, members)</div><div class='ctx'>     #</div><div class='del'>-    #   obj = MyStruct.allocate</div><div class='add'>+    #   MyStruct.malloc(Fiddle::RUBY_FREE) do |obj|</div><div class='add'>+    #     ...</div><div class='add'>+    #   end</div><div class='add'>+    #</div><div class='add'>+    #   obj = MyStruct.malloc(Fiddle::RUBY_FREE)</div><div class='add'>+    #   begin</div><div class='add'>+    #     ...</div><div class='add'>+    #   ensure</div><div class='add'>+    #     obj.call_free</div><div class='add'>+    #   end</div><div class='add'>+    #</div><div class='add'>+    #   obj = MyStruct.malloc</div><div class='add'>+    #   begin</div><div class='add'>+    #     ...</div><div class='add'>+    #   ensure</div><div class='add'>+    #     Fiddle.free obj.to_ptr</div><div class='add'>+    #   end</div><div class='ctx'>     #</div><div class='ctx'>     def create(klass, types, members)</div><div class='ctx'>       new_class = Class.new(klass){</div><div class='del'>-        define_method(:initialize){|addr|</div><div class='del'>-          @entity = klass.entity_class.new(addr, types)</div><div class='add'>+        define_method(:initialize){|addr, func = nil|</div><div class='add'>+          if addr.is_a?(self.class.entity_class)</div><div class='add'>+            @entity = addr</div><div class='add'>+          else</div><div class='add'>+            @entity = self.class.entity_class.new(addr, types, func)</div><div class='add'>+          end</div><div class='ctx'>           @entity.assign_names(members)</div><div class='ctx'>         }</div><div class='add'>+        define_method(:[]) { |*args| @entity.send(:[], *args) }</div><div class='add'>+        define_method(:[]=) { |*args| @entity.send(:[]=, *args) }</div><div class='ctx'>         define_method(:to_ptr){ @entity }</div><div class='ctx'>         define_method(:to_i){ @entity.to_i }</div><div class='add'>+        define_singleton_method(:types) { types }</div><div class='add'>+        define_singleton_method(:members) { members }</div><div class='add'>+</div><div class='add'>+        # Return the offset of a struct member given its name.</div><div class='add'>+        # For example:</div><div class='add'>+        #</div><div class='add'>+        #     MyStruct = struct [</div><div class='add'>+        #       "int64_t i",</div><div class='add'>+        #       "char c",</div><div class='add'>+        #     ]</div><div class='add'>+        #</div><div class='add'>+        #     MyStruct.offsetof("i") # =&gt; 0</div><div class='add'>+        #     MyStruct.offsetof("c") # =&gt; 8</div><div class='add'>+        #</div><div class='add'>+        define_singleton_method(:offsetof) { |name|</div><div class='add'>+          klass.offsetof(name, members, types)</div><div class='add'>+        }</div><div class='ctx'>         members.each{|name|</div><div class='add'>+          name = name[0] if name.is_a?(Array) # name is a nested struct</div><div class='add'>+          next if method_defined?(name)</div><div class='ctx'>           define_method(name){ @entity[name] }</div><div class='ctx'>           define_method(name + "="){|val| @entity[name] = val }</div><div class='ctx'>         }</div><div class='del'>-      }</div><div class='del'>-      size = klass.entity_class.size(types)</div><div class='del'>-      new_class.module_eval(&lt;&lt;-EOS, __FILE__, __LINE__+1)</div><div class='del'>-        def new_class.size()</div><div class='del'>-          #{size}</div><div class='del'>-        end</div><div class='del'>-        def new_class.malloc()</div><div class='del'>-          addr = Fiddle.malloc(#{size})</div><div class='del'>-          new(addr)</div><div class='add'>+        entity_class = klass.entity_class</div><div class='add'>+        alignment = entity_class.alignment(types)</div><div class='add'>+        size = entity_class.size(types)</div><div class='add'>+        define_singleton_method(:alignment) { alignment }</div><div class='add'>+        define_singleton_method(:size) { size }</div><div class='add'>+        define_singleton_method(:malloc) do |func=nil, &amp;block|</div><div class='add'>+          if block</div><div class='add'>+            entity_class.malloc(types, func, size) do |entity|</div><div class='add'>+              block.call(new(entity))</div><div class='add'>+            end</div><div class='add'>+          else</div><div class='add'>+            new(entity_class.malloc(types, func, size))</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='del'>-      EOS</div><div class='add'>+      }</div><div class='ctx'>       return new_class</div><div class='ctx'>     end</div><div class='ctx'>     module_function :create</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # A C struct wrapper</div><div class='add'>+  # A pointer to a C structure</div><div class='ctx'>   class CStructEntity &lt; Fiddle::Pointer</div><div class='ctx'>     include PackInfo</div><div class='ctx'>     include ValueUtil</div><div class='ctx'> </div><div class='add'>+    def CStructEntity.alignment(types)</div><div class='add'>+      max = 1</div><div class='add'>+      types.each do |type, count = 1|</div><div class='add'>+        if type.respond_to?(:entity_class)</div><div class='add'>+          n = type.alignment</div><div class='add'>+        else</div><div class='add'>+          n = ALIGN_MAP[type]</div><div class='add'>+        end</div><div class='add'>+        max = n if n &gt; max</div><div class='add'>+      end</div><div class='add'>+      max</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # Allocates a C struct with the +types+ provided.</div><div class='ctx'>     #</div><div class='del'>-    # When the instance is garbage collected, the C function +func+ is called.</div><div class='del'>-    def CStructEntity.malloc(types, func = nil)</div><div class='del'>-      addr = Fiddle.malloc(CStructEntity.size(types))</div><div class='del'>-      CStructEntity.new(addr, types, func)</div><div class='add'>+    # See Fiddle::Pointer.malloc for memory management issues.</div><div class='add'>+    def CStructEntity.malloc(types, func = nil, size = size(types), &amp;block)</div><div class='add'>+      if block_given?</div><div class='add'>+        super(size, func) do |struct|</div><div class='add'>+          struct.set_ctypes types</div><div class='add'>+          yield struct</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        struct = super(size, func)</div><div class='add'>+        struct.set_ctypes types</div><div class='add'>+        struct</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Returns the offset for the packed sizes for the given +types+.</div><div class='hunk'>@@ -102,9 +316,15 @@ module Fiddle</div><div class='ctx'>       max_align = types.map { |type, count = 1|</div><div class='ctx'>         last_offset = offset</div><div class='ctx'> </div><div class='del'>-        align = PackInfo::ALIGN_MAP[type]</div><div class='add'>+        if type.respond_to?(:entity_class)</div><div class='add'>+          align = type.alignment</div><div class='add'>+          type_size = type.size</div><div class='add'>+        else</div><div class='add'>+          align = PackInfo::ALIGN_MAP[type]</div><div class='add'>+          type_size = PackInfo::SIZE_MAP[type]</div><div class='add'>+        end</div><div class='ctx'>         offset = PackInfo.align(last_offset, align) +</div><div class='del'>-                 (PackInfo::SIZE_MAP[type] * count)</div><div class='add'>+                 (type_size * count)</div><div class='ctx'> </div><div class='ctx'>         align</div><div class='ctx'>       }.max</div><div class='hunk'>@@ -118,13 +338,37 @@ module Fiddle</div><div class='ctx'>     #</div><div class='ctx'>     # See also Fiddle::Pointer.new</div><div class='ctx'>     def initialize(addr, types, func = nil)</div><div class='add'>+      if func &amp;&amp; addr.is_a?(Pointer) &amp;&amp; addr.free</div><div class='add'>+        raise ArgumentError, 'free function specified on both underlying struct Pointer and when creating a CStructEntity - who do you want to free this?'</div><div class='add'>+      end</div><div class='ctx'>       set_ctypes(types)</div><div class='ctx'>       super(addr, @size, func)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Set the names of the +members+ in this C struct</div><div class='ctx'>     def assign_names(members)</div><div class='del'>-      @members = members</div><div class='add'>+      @members = []</div><div class='add'>+      @nested_structs = {}</div><div class='add'>+      members.each_with_index do |member, index|</div><div class='add'>+        if member.is_a?(Array) # nested struct</div><div class='add'>+          member_name = member[0]</div><div class='add'>+          struct_type, struct_count = @ctypes[index]</div><div class='add'>+          if struct_count.nil?</div><div class='add'>+            struct = struct_type.new(to_i + @offset[index])</div><div class='add'>+          else</div><div class='add'>+            structs = struct_count.times.map do |i|</div><div class='add'>+              struct_type.new(to_i + @offset[index] + i * struct_type.size)</div><div class='add'>+            end</div><div class='add'>+            struct = StructArray.new(to_i + @offset[index],</div><div class='add'>+                                     struct_type,</div><div class='add'>+                                     structs)</div><div class='add'>+          end</div><div class='add'>+          @nested_structs[member_name] = struct</div><div class='add'>+        else</div><div class='add'>+          member_name = member</div><div class='add'>+        end</div><div class='add'>+        @members &lt;&lt; member_name</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Calculates the offsets and sizes for the given +types+ in the struct.</div><div class='hunk'>@@ -135,12 +379,18 @@ module Fiddle</div><div class='ctx'> </div><div class='ctx'>       max_align = types.map { |type, count = 1|</div><div class='ctx'>         orig_offset = offset</div><div class='del'>-        align = ALIGN_MAP[type]</div><div class='add'>+        if type.respond_to?(:entity_class)</div><div class='add'>+          align = type.alignment</div><div class='add'>+          type_size = type.size</div><div class='add'>+        else</div><div class='add'>+          align = ALIGN_MAP[type]</div><div class='add'>+          type_size = SIZE_MAP[type]</div><div class='add'>+        end</div><div class='ctx'>         offset = PackInfo.align(orig_offset, align)</div><div class='ctx'> </div><div class='ctx'>         @offset &lt;&lt; offset</div><div class='ctx'> </div><div class='del'>-        offset += (SIZE_MAP[type] * count)</div><div class='add'>+        offset += (type_size * count)</div><div class='ctx'> </div><div class='ctx'>         align</div><div class='ctx'>       }.max</div><div class='hunk'>@@ -148,15 +398,34 @@ module Fiddle</div><div class='ctx'>       @size = PackInfo.align(offset, max_align)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Fetch struct member +name+</div><div class='del'>-    def [](name)</div><div class='add'>+    # Fetch struct member +name+ if only one argument is specified. If two</div><div class='add'>+    # arguments are specified, the first is an offset and the second is a</div><div class='add'>+    # length and this method returns the string of +length+ bytes beginning at</div><div class='add'>+    # +offset+.</div><div class='add'>+    #</div><div class='add'>+    # Examples:</div><div class='add'>+    #</div><div class='add'>+    #     my_struct = struct(['int id']).malloc</div><div class='add'>+    #     my_struct.id = 1</div><div class='add'>+    #     my_struct['id'] # =&gt; 1</div><div class='add'>+    #     my_struct[0, 4] # =&gt; "\x01\x00\x00\x00".b</div><div class='add'>+    #</div><div class='add'>+    def [](*args)</div><div class='add'>+      return super(*args) if args.size &gt; 1</div><div class='add'>+      name = args[0]</div><div class='ctx'>       idx = @members.index(name)</div><div class='ctx'>       if( idx.nil? )</div><div class='ctx'>         raise(ArgumentError, "no such member: #{name}")</div><div class='ctx'>       end</div><div class='ctx'>       ty = @ctypes[idx]</div><div class='ctx'>       if( ty.is_a?(Array) )</div><div class='del'>-        r = super(@offset[idx], SIZE_MAP[ty[0]] * ty[1])</div><div class='add'>+        if ty.first.respond_to?(:entity_class)</div><div class='add'>+          return @nested_structs[name]</div><div class='add'>+        else</div><div class='add'>+          r = super(@offset[idx], SIZE_MAP[ty[0]] * ty[1])</div><div class='add'>+        end</div><div class='add'>+      elsif ty.respond_to?(:entity_class)</div><div class='add'>+        return @nested_structs[name]</div><div class='ctx'>       else</div><div class='ctx'>         r = super(@offset[idx], SIZE_MAP[ty.abs])</div><div class='ctx'>       end</div><div class='hunk'>@@ -176,14 +445,44 @@ module Fiddle</div><div class='ctx'>       if( ty.is_a?(Integer) &amp;&amp; (ty &lt; 0) )</div><div class='ctx'>         return unsigned_value(val, ty)</div><div class='ctx'>       elsif( ty.is_a?(Array) &amp;&amp; (ty[0] &lt; 0) )</div><div class='del'>-        return val.collect{|v| unsigned_value(v,ty[0])}</div><div class='add'>+        return StructArray.new(self + @offset[idx], ty[0], val)</div><div class='ctx'>       else</div><div class='ctx'>         return val</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Set struct member +name+, to value +val+</div><div class='del'>-    def []=(name, val)</div><div class='add'>+    # Set struct member +name+, to value +val+. If more arguments are</div><div class='add'>+    # specified, writes the string of bytes to the memory at the given</div><div class='add'>+    # +offset+ and +length+.</div><div class='add'>+    #</div><div class='add'>+    # Examples:</div><div class='add'>+    #</div><div class='add'>+    #     my_struct = struct(['int id']).malloc</div><div class='add'>+    #     my_struct['id'] = 1</div><div class='add'>+    #     my_struct[0, 4] = "\x01\x00\x00\x00".b</div><div class='add'>+    #     my_struct.id # =&gt; 1</div><div class='add'>+    #</div><div class='add'>+    def []=(*args)</div><div class='add'>+      return super(*args) if args.size &gt; 2</div><div class='add'>+      name, val = *args</div><div class='add'>+      name = name.to_s if name.is_a?(Symbol)</div><div class='add'>+      nested_struct = @nested_structs[name]</div><div class='add'>+      if nested_struct</div><div class='add'>+        if nested_struct.is_a?(StructArray)</div><div class='add'>+          if val.nil?</div><div class='add'>+            nested_struct.each do |s|</div><div class='add'>+              s.replace(nil)</div><div class='add'>+            end</div><div class='add'>+          else</div><div class='add'>+            val.each_with_index do |v, i|</div><div class='add'>+              nested_struct[i] = v</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          nested_struct.replace(val)</div><div class='add'>+        end</div><div class='add'>+        return val</div><div class='add'>+      end</div><div class='ctx'>       idx = @members.index(name)</div><div class='ctx'>       if( idx.nil? )</div><div class='ctx'>         raise(ArgumentError, "no such member: #{name}")</div><div class='hunk'>@@ -202,23 +501,16 @@ module Fiddle</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    undef_method :size=</div><div class='ctx'>     def to_s() # :nodoc:</div><div class='ctx'>       super(@size)</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # A C union wrapper</div><div class='add'>+  # A pointer to a C union</div><div class='ctx'>   class CUnionEntity &lt; CStructEntity</div><div class='ctx'>     include PackInfo</div><div class='ctx'> </div><div class='del'>-    # Allocates a C union the +types+ provided.</div><div class='del'>-    #</div><div class='del'>-    # When the instance is garbage collected, the C function +func+ is called.</div><div class='del'>-    def CUnionEntity.malloc(types, func=nil)</div><div class='del'>-      addr = Fiddle.malloc(CUnionEntity.size(types))</div><div class='del'>-      CUnionEntity.new(addr, types, func)</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     # Returns the size needed for the union with the given +types+.</div><div class='ctx'>     #</div><div class='ctx'>     #   Fiddle::CUnionEntity.size(</div><div class='hunk'>@@ -228,7 +520,11 @@ module Fiddle</div><div class='ctx'>     #       Fiddle::TYPE_VOIDP ]) #=&gt; 8</div><div class='ctx'>     def CUnionEntity.size(types)</div><div class='ctx'>       types.map { |type, count = 1|</div><div class='del'>-        PackInfo::SIZE_MAP[type] * count</div><div class='add'>+        if type.respond_to?(:entity_class)</div><div class='add'>+          type.size * count</div><div class='add'>+        else</div><div class='add'>+          PackInfo::SIZE_MAP[type] * count</div><div class='add'>+        end</div><div class='ctx'>       }.max</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -241,4 +537,3 @@ module Fiddle</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-</div><div class='head'>diff --git a/ext/fiddle/lib/fiddle/types.rb b/ext/fiddle/lib/fiddle/types.rb<br/>index 8dc811d3e4..7baf31ec9e 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/types.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/lib/fiddle/types.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/types.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/lib/fiddle/types.rb</a></div><div class='hunk'>@@ -27,28 +27,29 @@ module Fiddle</div><div class='ctx'>   # * WORD</div><div class='ctx'>   module Win32Types</div><div class='ctx'>     def included(m) # :nodoc:</div><div class='add'>+      # https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types</div><div class='ctx'>       m.module_eval{</div><div class='del'>-        typealias "DWORD", "unsigned long"</div><div class='del'>-        typealias "PDWORD", "unsigned long *"</div><div class='del'>-        typealias "DWORD32", "unsigned long"</div><div class='del'>-        typealias "DWORD64", "unsigned long long"</div><div class='del'>-        typealias "WORD", "unsigned short"</div><div class='del'>-        typealias "PWORD", "unsigned short *"</div><div class='add'>+        typealias "ATOM", "WORD"</div><div class='ctx'>         typealias "BOOL", "int"</div><div class='del'>-        typealias "ATOM", "int"</div><div class='ctx'>         typealias "BYTE", "unsigned char"</div><div class='del'>-        typealias "PBYTE", "unsigned char *"</div><div class='add'>+        typealias "DWORD", "unsigned long"</div><div class='add'>+        typealias "DWORD32", "uint32_t"</div><div class='add'>+        typealias "DWORD64", "uint64_t"</div><div class='add'>+        typealias "HANDLE", "PVOID"</div><div class='add'>+        typealias "HDC", "HANDLE"</div><div class='add'>+        typealias "HINSTANCE", "HANDLE"</div><div class='add'>+        typealias "HWND", "HANDLE"</div><div class='add'>+        typealias "LPCSTR", "const char *"</div><div class='add'>+        typealias "LPSTR", "char *"</div><div class='add'>+        typealias "PBYTE", "BYTE *"</div><div class='add'>+        typealias "PDWORD", "DWORD *"</div><div class='add'>+        typealias "PHANDLE", "HANDLE *"</div><div class='add'>+        typealias "PVOID", "void *"</div><div class='add'>+        typealias "PWORD", "WORD *"</div><div class='add'>+        typealias "UCHAR", "unsigned char"</div><div class='ctx'>         typealias "UINT", "unsigned int"</div><div class='ctx'>         typealias "ULONG", "unsigned long"</div><div class='del'>-        typealias "UCHAR", "unsigned char"</div><div class='del'>-        typealias "HANDLE", "uintptr_t"</div><div class='del'>-        typealias "PHANDLE", "void*"</div><div class='del'>-        typealias "PVOID", "void*"</div><div class='del'>-        typealias "LPCSTR", "char*"</div><div class='del'>-        typealias "LPSTR", "char*"</div><div class='del'>-        typealias "HINSTANCE", "unsigned int"</div><div class='del'>-        typealias "HDC", "unsigned int"</div><div class='del'>-        typealias "HWND", "unsigned int"</div><div class='add'>+        typealias "WORD", "unsigned short"</div><div class='ctx'>       }</div><div class='ctx'>     end</div><div class='ctx'>     module_function :included</div><div class='head'>diff --git a/ext/fiddle/lib/fiddle/version.rb b/ext/fiddle/lib/fiddle/version.rb<br/>new file mode 100644<br/>index 0000000000..719dc62e37<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/lib/fiddle/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/lib/fiddle/version.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+module Fiddle</div><div class='add'>+  VERSION = "1.1.1"</div><div class='add'>+end</div><div class='head'>diff --git a/ext/fiddle/memory_view.c b/ext/fiddle/memory_view.c<br/>new file mode 100644<br/>index 0000000000..fa66fc2c7b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/memory_view.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/memory_view.c</a></div><div class='hunk'>@@ -0,0 +1,321 @@</div><div class='add'>+#include &lt;fiddle.h&gt;</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_RUBY_MEMORY_VIEW_H</div><div class='add'>+</div><div class='add'>+#include &lt;stdbool.h&gt;</div><div class='add'>+#include &lt;ruby/ruby.h&gt;</div><div class='add'>+#include &lt;ruby/encoding.h&gt;</div><div class='add'>+#include &lt;ruby/memory_view.h&gt;</div><div class='add'>+</div><div class='add'>+#if SIZEOF_INTPTR_T == SIZEOF_LONG_LONG</div><div class='add'>+#   define INTPTR2NUM LL2NUM</div><div class='add'>+#   define UINTPTR2NUM ULL2NUM</div><div class='add'>+#elif SIZEOF_INTPTR_T == SIZEOF_LONG</div><div class='add'>+#   define INTPTR2NUM LONG2NUM</div><div class='add'>+#   define UINTPTR2NUM ULONG2NUM</div><div class='add'>+#else</div><div class='add'>+#   define INTPTR2NUM INT2NUM</div><div class='add'>+#   define UINTPTR2NUM UINT2NUM</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+VALUE rb_cMemoryView = Qnil;</div><div class='add'>+</div><div class='add'>+struct memview_data {</div><div class='add'>+    rb_memory_view_t view;</div><div class='add'>+    rb_memory_view_item_component_t *members;</div><div class='add'>+    size_t n_members;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiddle_memview_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    const struct memview_data *data = ptr;</div><div class='add'>+    rb_gc_mark(data-&gt;view.obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiddle_memview_release(struct memview_data *data)</div><div class='add'>+{</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) return;</div><div class='add'>+</div><div class='add'>+    rb_memory_view_release(&amp;data-&gt;view);</div><div class='add'>+    data-&gt;view.obj = Qnil;</div><div class='add'>+    data-&gt;view.byte_size = 0;</div><div class='add'>+    if (data-&gt;members) {</div><div class='add'>+        xfree(data-&gt;members);</div><div class='add'>+        data-&gt;members = NULL;</div><div class='add'>+        data-&gt;n_members = 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiddle_memview_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data = ptr;</div><div class='add'>+    fiddle_memview_release(data);</div><div class='add'>+    xfree(ptr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+fiddle_memview_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    const struct memview_data *data = ptr;</div><div class='add'>+    return sizeof(*data) + sizeof(rb_memory_view_item_component_t)*data-&gt;n_members + (size_t)data-&gt;view.byte_size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t fiddle_memview_data_type = {</div><div class='add'>+    "fiddle/memory_view",</div><div class='add'>+    {fiddle_memview_mark, fiddle_memview_free, fiddle_memview_memsize,},</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_s_allocate(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    VALUE obj = TypedData_Make_Struct(klass, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+    data-&gt;view.obj = Qnil;</div><div class='add'>+    data-&gt;view.byte_size = 0;</div><div class='add'>+    data-&gt;members = NULL;</div><div class='add'>+    data-&gt;n_members = 0;</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_release(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) return Qnil;</div><div class='add'>+    fiddle_memview_release(data);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_s_export(VALUE klass, VALUE target)</div><div class='add'>+{</div><div class='add'>+    ID id_new;</div><div class='add'>+    CONST_ID(id_new, "new");</div><div class='add'>+    VALUE memview = rb_funcall(klass, id_new, 1, target);</div><div class='add'>+    return rb_ensure(rb_yield, memview, rb_fiddle_memview_release, memview);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_initialize(VALUE obj, VALUE target)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    if (!rb_memory_view_get(target, &amp;data-&gt;view, 0)) {</div><div class='add'>+        data-&gt;view.obj = Qnil;</div><div class='add'>+        rb_raise(rb_eArgError, "Unable to get a memory view from %+"PRIsVALUE, target);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_get_obj(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    return data-&gt;view.obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_get_byte_size(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) return Qnil;</div><div class='add'>+    return SSIZET2NUM(data-&gt;view.byte_size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_get_readonly(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) return Qnil;</div><div class='add'>+    return data-&gt;view.readonly ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_get_format(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) return Qnil;</div><div class='add'>+    return data-&gt;view.format == NULL ? Qnil : rb_str_new_cstr(data-&gt;view.format);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_get_item_size(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) return Qnil;</div><div class='add'>+    return SSIZET2NUM(data-&gt;view.item_size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_get_ndim(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) return Qnil;</div><div class='add'>+    return SSIZET2NUM(data-&gt;view.ndim);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_get_shape(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) return Qnil;</div><div class='add'>+    if (data-&gt;view.shape == NULL) return Qnil;</div><div class='add'>+</div><div class='add'>+    const ssize_t ndim = data-&gt;view.ndim;</div><div class='add'>+    VALUE shape = rb_ary_new_capa(ndim);</div><div class='add'>+    ssize_t i;</div><div class='add'>+    for (i = 0; i &lt; ndim; ++i) {</div><div class='add'>+        rb_ary_push(shape, SSIZET2NUM(data-&gt;view.shape[i]));</div><div class='add'>+    }</div><div class='add'>+    return shape;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_get_strides(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) return Qnil;</div><div class='add'>+    if (data-&gt;view.strides == NULL) return Qnil;</div><div class='add'>+</div><div class='add'>+    const ssize_t ndim = data-&gt;view.ndim;</div><div class='add'>+    VALUE strides = rb_ary_new_capa(ndim);</div><div class='add'>+    ssize_t i;</div><div class='add'>+    for (i = 0; i &lt; ndim; ++i) {</div><div class='add'>+        rb_ary_push(strides, SSIZET2NUM(data-&gt;view.strides[i]));</div><div class='add'>+    }</div><div class='add'>+    return strides;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_get_sub_offsets(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) return Qnil;</div><div class='add'>+    if (data-&gt;view.sub_offsets == NULL) return Qnil;</div><div class='add'>+</div><div class='add'>+    const ssize_t ndim = data-&gt;view.ndim;</div><div class='add'>+    VALUE sub_offsets = rb_ary_new_capa(ndim);</div><div class='add'>+    ssize_t i;</div><div class='add'>+    for (i = 0; i &lt; ndim; ++i) {</div><div class='add'>+        rb_ary_push(sub_offsets, SSIZET2NUM(data-&gt;view.sub_offsets[i]));</div><div class='add'>+    }</div><div class='add'>+    return sub_offsets;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_aref(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct memview_data, &amp;fiddle_memview_data_type, data);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) return Qnil;</div><div class='add'>+</div><div class='add'>+    const ssize_t ndim = data-&gt;view.ndim;</div><div class='add'>+    if (argc != ndim) {</div><div class='add'>+        rb_raise(rb_eIndexError, "wrong number of index (%d for %"PRIdSIZE")", argc, ndim);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE indices_v = 0;</div><div class='add'>+    ssize_t *indices = ALLOCV_N(ssize_t, indices_v, ndim);</div><div class='add'>+</div><div class='add'>+    ssize_t i;</div><div class='add'>+    for (i = 0; i &lt; ndim; ++i) {</div><div class='add'>+        ssize_t x = NUM2SSIZET(argv[i]);</div><div class='add'>+        indices[i] = x;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    uint8_t *ptr = rb_memory_view_get_item_pointer(&amp;data-&gt;view, indices);</div><div class='add'>+    ALLOCV_END(indices_v);</div><div class='add'>+</div><div class='add'>+    if (data-&gt;view.format == NULL) {</div><div class='add'>+        return INT2FIX(*ptr);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!data-&gt;members) {</div><div class='add'>+        const char *err;</div><div class='add'>+        if (rb_memory_view_parse_item_format(data-&gt;view.format, &amp;data-&gt;members, &amp;data-&gt;n_members, &amp;err) &lt; 0) {</div><div class='add'>+            rb_raise(rb_eRuntimeError, "Unable to recognize item format at %"PRIdSIZE" in \"%s\"",</div><div class='add'>+                     err - data-&gt;view.format, data-&gt;view.format);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return rb_memory_view_extract_item_members(ptr, data-&gt;members, data-&gt;n_members);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_memview_to_s(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct memview_data *data;</div><div class='add'>+    const char *raw_data;</div><div class='add'>+    long byte_size;</div><div class='add'>+    VALUE string;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(self,</div><div class='add'>+                         struct memview_data,</div><div class='add'>+                         &amp;fiddle_memview_data_type,</div><div class='add'>+                         data);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(data-&gt;view.obj)) {</div><div class='add'>+        raw_data = NULL;</div><div class='add'>+        byte_size = 0;</div><div class='add'>+    } else {</div><div class='add'>+        raw_data = data-&gt;view.data;</div><div class='add'>+        byte_size = data-&gt;view.byte_size;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    string = rb_enc_str_new_static(raw_data, byte_size, rb_ascii8bit_encoding());</div><div class='add'>+    {</div><div class='add'>+        ID id_memory_view;</div><div class='add'>+        CONST_ID(id_memory_view, "memory_view");</div><div class='add'>+        rb_ivar_set(string, id_memory_view, self);</div><div class='add'>+    }</div><div class='add'>+    return rb_obj_freeze(string);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_fiddle_memory_view(void)</div><div class='add'>+{</div><div class='add'>+    rb_cMemoryView = rb_define_class_under(mFiddle, "MemoryView", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(rb_cMemoryView, rb_fiddle_memview_s_allocate);</div><div class='add'>+    rb_define_singleton_method(rb_cMemoryView, "export", rb_fiddle_memview_s_export, 1);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "initialize", rb_fiddle_memview_initialize, 1);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "release", rb_fiddle_memview_release, 0);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "obj", rb_fiddle_memview_get_obj, 0);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "byte_size", rb_fiddle_memview_get_byte_size, 0);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "readonly?", rb_fiddle_memview_get_readonly, 0);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "format", rb_fiddle_memview_get_format, 0);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "item_size", rb_fiddle_memview_get_item_size, 0);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "ndim", rb_fiddle_memview_get_ndim, 0);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "shape", rb_fiddle_memview_get_shape, 0);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "strides", rb_fiddle_memview_get_strides, 0);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "sub_offsets", rb_fiddle_memview_get_sub_offsets, 0);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "[]", rb_fiddle_memview_aref, -1);</div><div class='add'>+    rb_define_method(rb_cMemoryView, "to_s", rb_fiddle_memview_to_s, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* HAVE_RUBY_MEMORY_VIEW_H */</div><div class='head'>diff --git a/ext/fiddle/pinned.c b/ext/fiddle/pinned.c<br/>new file mode 100644<br/>index 0000000000..019a3020e2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/pinned.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/pinned.c</a></div><div class='hunk'>@@ -0,0 +1,123 @@</div><div class='add'>+#include &lt;fiddle.h&gt;</div><div class='add'>+</div><div class='add'>+VALUE rb_cPinned;</div><div class='add'>+VALUE rb_eFiddleClearedReferenceError;</div><div class='add'>+</div><div class='add'>+struct pinned_data {</div><div class='add'>+    VALUE ptr;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+pinned_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct pinned_data *data = (struct pinned_data*)ptr;</div><div class='add'>+    /* Ensure reference is pinned */</div><div class='add'>+    if (data-&gt;ptr) {</div><div class='add'>+        rb_gc_mark(data-&gt;ptr);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+pinned_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    return sizeof(struct pinned_data);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t pinned_data_type = {</div><div class='add'>+    "fiddle/pinned",</div><div class='add'>+    {pinned_mark, xfree, pinned_memsize, },</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+allocate(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    struct pinned_data *data;</div><div class='add'>+    VALUE obj = TypedData_Make_Struct(klass, struct pinned_data, &amp;pinned_data_type, data);</div><div class='add'>+    data-&gt;ptr = 0;</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Fiddle::Pinned.new(object)      =&gt; pinned_object</div><div class='add'>+ *</div><div class='add'>+ * Create a new pinned object reference.  The Fiddle::Pinned instance will</div><div class='add'>+ * prevent the GC from moving +object+.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+initialize(VALUE self, VALUE ref)</div><div class='add'>+{</div><div class='add'>+    struct pinned_data *data;</div><div class='add'>+    TypedData_Get_Struct(self, struct pinned_data, &amp;pinned_data_type, data);</div><div class='add'>+    RB_OBJ_WRITE(self, &amp;data-&gt;ptr, ref);</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq: ref</div><div class='add'>+ *</div><div class='add'>+ * Return the object that this pinned instance references.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ref(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct pinned_data *data;</div><div class='add'>+    TypedData_Get_Struct(self, struct pinned_data, &amp;pinned_data_type, data);</div><div class='add'>+    if (data-&gt;ptr) {</div><div class='add'>+      return data-&gt;ptr;</div><div class='add'>+    } else {</div><div class='add'>+      rb_raise(rb_eFiddleClearedReferenceError, "`ref` called on a cleared object");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq: clear</div><div class='add'>+ *</div><div class='add'>+ * Clear the reference to the object this is pinning.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+clear(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct pinned_data *data;</div><div class='add'>+    TypedData_Get_Struct(self, struct pinned_data, &amp;pinned_data_type, data);</div><div class='add'>+    data-&gt;ptr = 0;</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq: cleared?</div><div class='add'>+ *</div><div class='add'>+ * Returns true if the reference has been cleared, otherwise returns false.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+cleared_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct pinned_data *data;</div><div class='add'>+    TypedData_Get_Struct(self, struct pinned_data, &amp;pinned_data_type, data);</div><div class='add'>+    if (data-&gt;ptr) {</div><div class='add'>+        return Qfalse;</div><div class='add'>+    } else {</div><div class='add'>+        return Qtrue;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+extern VALUE rb_eFiddleError;</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_fiddle_pinned(void)</div><div class='add'>+{</div><div class='add'>+    rb_cPinned = rb_define_class_under(mFiddle, "Pinned", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(rb_cPinned, allocate);</div><div class='add'>+    rb_define_method(rb_cPinned, "initialize", initialize, 1);</div><div class='add'>+    rb_define_method(rb_cPinned, "ref", ref, 0);</div><div class='add'>+    rb_define_method(rb_cPinned, "clear", clear, 0);</div><div class='add'>+    rb_define_method(rb_cPinned, "cleared?", cleared_p, 0);</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Document-class: Fiddle::ClearedReferenceError</div><div class='add'>+     *</div><div class='add'>+     * Cleared reference exception</div><div class='add'>+     */</div><div class='add'>+    rb_eFiddleClearedReferenceError = rb_define_class_under(mFiddle, "ClearedReferenceError", rb_eFiddleError);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/fiddle/pointer.c b/ext/fiddle/pointer.c<br/>index 2fb21f832e..15107e3862 100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/pointer.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/pointer.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/pointer.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/pointer.c</a></div><div class='hunk'>@@ -2,11 +2,17 @@</div><div class='ctx'>  * $Id$</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='add'>+#include &lt;stdbool.h&gt;</div><div class='ctx'> #include &lt;ruby/ruby.h&gt;</div><div class='ctx'> #include &lt;ruby/io.h&gt;</div><div class='add'>+</div><div class='ctx'> #include &lt;ctype.h&gt;</div><div class='ctx'> #include &lt;fiddle.h&gt;</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RUBY_MEMORY_VIEW_H</div><div class='add'>+# include &lt;ruby/memory_view.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #ifdef PRIsVALUE</div><div class='ctx'> # define RB_OBJ_CLASSNAME(obj) rb_obj_class(obj)</div><div class='ctx'> # define RB_OBJ_STRING(obj) (obj)</div><div class='hunk'>@@ -18,12 +24,13 @@</div><div class='ctx'> </div><div class='ctx'> VALUE rb_cPointer;</div><div class='ctx'> </div><div class='del'>-typedef void (*freefunc_t)(void*);</div><div class='add'>+typedef rb_fiddle_freefunc_t freefunc_t;</div><div class='ctx'> </div><div class='ctx'> struct ptr_data {</div><div class='ctx'>     void *ptr;</div><div class='ctx'>     long size;</div><div class='ctx'>     freefunc_t free;</div><div class='add'>+    bool freed;</div><div class='ctx'>     VALUE wrap[2];</div><div class='ctx'> };</div><div class='ctx'> </div><div class='hunk'>@@ -57,14 +64,19 @@ fiddle_ptr_mark(void *ptr)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-fiddle_ptr_free(void *ptr)</div><div class='add'>+fiddle_ptr_free_ptr(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct ptr_data *data = ptr;</div><div class='del'>-    if (data-&gt;ptr) {</div><div class='del'>-	if (data-&gt;free) {</div><div class='del'>-	    (*(data-&gt;free))(data-&gt;ptr);</div><div class='del'>-	}</div><div class='add'>+    if (data-&gt;ptr &amp;&amp; data-&gt;free &amp;&amp; !data-&gt;freed) {</div><div class='add'>+	data-&gt;freed = true;</div><div class='add'>+	(*(data-&gt;free))(data-&gt;ptr);</div><div class='ctx'>     }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiddle_ptr_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    fiddle_ptr_free_ptr(ptr);</div><div class='ctx'>     xfree(ptr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -80,8 +92,40 @@ static const rb_data_type_t fiddle_ptr_data_type = {</div><div class='ctx'>     {fiddle_ptr_mark, fiddle_ptr_free, fiddle_ptr_memsize,},</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RUBY_MEMORY_VIEW_H</div><div class='add'>+static struct ptr_data *</div><div class='add'>+fiddle_ptr_check_memory_view(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct ptr_data *data;</div><div class='add'>+    TypedData_Get_Struct(obj, struct ptr_data, &amp;fiddle_ptr_data_type, data);</div><div class='add'>+    if (data-&gt;ptr == NULL || data-&gt;size == 0) return NULL;</div><div class='add'>+    return data;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+fiddle_ptr_memory_view_available_p(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return fiddle_ptr_check_memory_view(obj) != NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+fiddle_ptr_get_memory_view(VALUE obj, rb_memory_view_t *view, int flags)</div><div class='add'>+{</div><div class='add'>+    struct ptr_data *data = fiddle_ptr_check_memory_view(obj);</div><div class='add'>+    rb_memory_view_init_as_byte_array(view, obj, data-&gt;ptr, data-&gt;size, true);</div><div class='add'>+</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_memory_view_entry_t fiddle_ptr_memory_view_entry = {</div><div class='add'>+    fiddle_ptr_get_memory_view,</div><div class='add'>+    NULL,</div><div class='add'>+    fiddle_ptr_memory_view_available_p</div><div class='add'>+};</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-rb_fiddle_ptr_new2(VALUE klass, void *ptr, long size, freefunc_t func)</div><div class='add'>+rb_fiddle_ptr_new2(VALUE klass, void *ptr, long size, freefunc_t func, VALUE wrap0, VALUE wrap1)</div><div class='ctx'> {</div><div class='ctx'>     struct ptr_data *data;</div><div class='ctx'>     VALUE val;</div><div class='hunk'>@@ -89,26 +133,34 @@ rb_fiddle_ptr_new2(VALUE klass, void *ptr, long size, freefunc_t func)</div><div class='ctx'>     val = TypedData_Make_Struct(klass, struct ptr_data, &amp;fiddle_ptr_data_type, data);</div><div class='ctx'>     data-&gt;ptr = ptr;</div><div class='ctx'>     data-&gt;free = func;</div><div class='add'>+    data-&gt;freed = false;</div><div class='ctx'>     data-&gt;size = size;</div><div class='del'>-    OBJ_TAINT(val);</div><div class='add'>+    data-&gt;wrap[0] = wrap0;</div><div class='add'>+    data-&gt;wrap[1] = wrap1;</div><div class='ctx'> </div><div class='ctx'>     return val;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_fiddle_ptr_new_wrap(void *ptr, long size, freefunc_t func, VALUE wrap0, VALUE wrap1)</div><div class='add'>+{</div><div class='add'>+    return rb_fiddle_ptr_new2(rb_cPointer, ptr, size, func, wrap0, wrap1);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_fiddle_ptr_new(void *ptr, long size, freefunc_t func)</div><div class='ctx'> {</div><div class='del'>-    return rb_fiddle_ptr_new2(rb_cPointer, ptr, size, func);</div><div class='add'>+    return rb_fiddle_ptr_new2(rb_cPointer, ptr, size, func, 0, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_fiddle_ptr_malloc(long size, freefunc_t func)</div><div class='add'>+rb_fiddle_ptr_malloc(VALUE klass, long size, freefunc_t func)</div><div class='ctx'> {</div><div class='ctx'>     void *ptr;</div><div class='ctx'> </div><div class='ctx'>     ptr = ruby_xmalloc((size_t)size);</div><div class='ctx'>     memset(ptr,0,(size_t)size);</div><div class='del'>-    return rb_fiddle_ptr_new(ptr, size, func);</div><div class='add'>+    return rb_fiddle_ptr_new2(klass, ptr, size, func, 0, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void *</div><div class='hunk'>@@ -141,6 +193,7 @@ rb_fiddle_ptr_s_allocate(VALUE klass)</div><div class='ctx'>     data-&gt;ptr = 0;</div><div class='ctx'>     data-&gt;size = 0;</div><div class='ctx'>     data-&gt;free = 0;</div><div class='add'>+    data-&gt;freed = false;</div><div class='ctx'> </div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='hunk'>@@ -192,16 +245,53 @@ rb_fiddle_ptr_initialize(int argc, VALUE argv[], VALUE self)</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_ptr_call_free(VALUE self);</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *</div><div class='ctx'>  *    Fiddle::Pointer.malloc(size, freefunc = nil)  =&gt; fiddle pointer instance</div><div class='add'>+ *    Fiddle::Pointer.malloc(size, freefunc) { |pointer| ... } =&gt; ...</div><div class='add'>+ *</div><div class='add'>+ * == Examples</div><div class='add'>+ *</div><div class='add'>+ *    # Automatically freeing the pointer when the block is exited - recommended</div><div class='add'>+ *    Fiddle::Pointer.malloc(size, Fiddle::RUBY_FREE) do |pointer|</div><div class='add'>+ *      ...</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *    # Manually freeing but relying on the garbage collector otherwise</div><div class='add'>+ *    pointer = Fiddle::Pointer.malloc(size, Fiddle::RUBY_FREE)</div><div class='add'>+ *    ...</div><div class='add'>+ *    pointer.call_free</div><div class='add'>+ *</div><div class='add'>+ *    # Relying on the garbage collector - may lead to unlimited memory allocated before freeing any, but safe</div><div class='add'>+ *    pointer = Fiddle::Pointer.malloc(size, Fiddle::RUBY_FREE)</div><div class='add'>+ *    ...</div><div class='add'>+ *</div><div class='add'>+ *    # Only manually freeing</div><div class='add'>+ *    pointer = Fiddle::Pointer.malloc(size)</div><div class='add'>+ *    begin</div><div class='add'>+ *      ...</div><div class='add'>+ *    ensure</div><div class='add'>+ *      Fiddle.free pointer</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *    # No free function and no call to free - the native memory will leak if the pointer is garbage collected</div><div class='add'>+ *    pointer = Fiddle::Pointer.malloc(size)</div><div class='add'>+ *    ...</div><div class='ctx'>  *</div><div class='ctx'>  * Allocate +size+ bytes of memory and associate it with an optional</div><div class='del'>- * +freefunc+ that will be called when the pointer is garbage collected.</div><div class='add'>+ * +freefunc+.</div><div class='ctx'>  *</div><div class='del'>- * +freefunc+ must be an address pointing to a function or an instance of</div><div class='del'>- * Fiddle::Function</div><div class='add'>+ * If a block is supplied, the pointer will be yielded to the block instead of</div><div class='add'>+ * being returned, and the return value of the block will be returned. A</div><div class='add'>+ * +freefunc+ must be supplied if a block is.</div><div class='add'>+ *</div><div class='add'>+ * If a +freefunc+ is supplied it will be called once, when the pointer is</div><div class='add'>+ * garbage collected or when the block is left if a block is supplied or</div><div class='add'>+ * when the user calls +call_free+, whichever happens first. +freefunc+ must be</div><div class='add'>+ * an address pointing to a function or an instance of +Fiddle::Function+.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_fiddle_ptr_s_malloc(int argc, VALUE argv[], VALUE klass)</div><div class='hunk'>@@ -223,10 +313,17 @@ rb_fiddle_ptr_s_malloc(int argc, VALUE argv[], VALUE klass)</div><div class='ctx'> 	rb_bug("rb_fiddle_ptr_s_malloc");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    obj = rb_fiddle_ptr_malloc(s,f);</div><div class='add'>+    obj = rb_fiddle_ptr_malloc(klass, s,f);</div><div class='ctx'>     if (wrap) RPTR_DATA(obj)-&gt;wrap[1] = wrap;</div><div class='ctx'> </div><div class='del'>-    return obj;</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+        if (!f) {</div><div class='add'>+            rb_raise(rb_eArgError, "a free function must be supplied to Fiddle::Pointer.malloc when it is called with a block");</div><div class='add'>+        }</div><div class='add'>+        return rb_ensure(rb_yield, obj, rb_fiddle_ptr_call_free, obj);</div><div class='add'>+    } else {</div><div class='add'>+        return obj;</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -352,6 +449,34 @@ rb_fiddle_ptr_free_get(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ * call-seq: call_free =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ * Call the free function for this pointer. Calling more than once will do</div><div class='add'>+ * nothing. Does nothing if there is no free function attached.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_ptr_call_free(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct ptr_data *pdata;</div><div class='add'>+    TypedData_Get_Struct(self, struct ptr_data, &amp;fiddle_ptr_data_type, pdata);</div><div class='add'>+    fiddle_ptr_free_ptr(pdata);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq: freed? =&gt; bool</div><div class='add'>+ *</div><div class='add'>+ * Returns if the free function for this pointer has been called.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_fiddle_ptr_freed_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct ptr_data *pdata;</div><div class='add'>+    TypedData_Get_Struct(self, struct ptr_data, &amp;fiddle_ptr_data_type, pdata);</div><div class='add'>+    return pdata-&gt;freed ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *</div><div class='ctx'>  *    ptr.to_s        =&gt; string</div><div class='hunk'>@@ -376,11 +501,11 @@ rb_fiddle_ptr_to_s(int argc, VALUE argv[], VALUE self)</div><div class='ctx'>     TypedData_Get_Struct(self, struct ptr_data, &amp;fiddle_ptr_data_type, data);</div><div class='ctx'>     switch (rb_scan_args(argc, argv, "01", &amp;arg1)) {</div><div class='ctx'>       case 0:</div><div class='del'>-	val = rb_tainted_str_new2((char*)(data-&gt;ptr));</div><div class='add'>+	val = rb_str_new2((char*)(data-&gt;ptr));</div><div class='ctx'> 	break;</div><div class='ctx'>       case 1:</div><div class='ctx'> 	len = NUM2INT(arg1);</div><div class='del'>-	val = rb_tainted_str_new((char*)(data-&gt;ptr), len);</div><div class='add'>+	val = rb_str_new((char*)(data-&gt;ptr), len);</div><div class='ctx'> 	break;</div><div class='ctx'>       default:</div><div class='ctx'> 	rb_bug("rb_fiddle_ptr_to_s");</div><div class='hunk'>@@ -414,11 +539,11 @@ rb_fiddle_ptr_to_str(int argc, VALUE argv[], VALUE self)</div><div class='ctx'>     TypedData_Get_Struct(self, struct ptr_data, &amp;fiddle_ptr_data_type, data);</div><div class='ctx'>     switch (rb_scan_args(argc, argv, "01", &amp;arg1)) {</div><div class='ctx'>       case 0:</div><div class='del'>-	val = rb_tainted_str_new((char*)(data-&gt;ptr),data-&gt;size);</div><div class='add'>+	val = rb_str_new((char*)(data-&gt;ptr),data-&gt;size);</div><div class='ctx'> 	break;</div><div class='ctx'>       case 1:</div><div class='ctx'> 	len = NUM2INT(arg1);</div><div class='del'>-	val = rb_tainted_str_new((char*)(data-&gt;ptr), len);</div><div class='add'>+	val = rb_str_new((char*)(data-&gt;ptr), len);</div><div class='ctx'> 	break;</div><div class='ctx'>       default:</div><div class='ctx'> 	rb_bug("rb_fiddle_ptr_to_str");</div><div class='hunk'>@@ -542,7 +667,7 @@ rb_fiddle_ptr_aref(int argc, VALUE argv[], VALUE self)</div><div class='ctx'>     struct ptr_data *data;</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, struct ptr_data, &amp;fiddle_ptr_data_type, data);</div><div class='del'>-    if (!data-&gt;ptr) rb_raise(rb_eFiddleError, "NULL pointer dereference");</div><div class='add'>+    if (!data-&gt;ptr) rb_raise(rb_eFiddleDLError, "NULL pointer dereference");</div><div class='ctx'>     switch( rb_scan_args(argc, argv, "11", &amp;arg0, &amp;arg1) ){</div><div class='ctx'>       case 1:</div><div class='ctx'> 	offset = NUM2ULONG(arg0);</div><div class='hunk'>@@ -551,7 +676,7 @@ rb_fiddle_ptr_aref(int argc, VALUE argv[], VALUE self)</div><div class='ctx'>       case 2:</div><div class='ctx'> 	offset = NUM2ULONG(arg0);</div><div class='ctx'> 	len    = NUM2ULONG(arg1);</div><div class='del'>-	retval = rb_tainted_str_new((char *)data-&gt;ptr + offset, len);</div><div class='add'>+	retval = rb_str_new((char *)data-&gt;ptr + offset, len);</div><div class='ctx'> 	break;</div><div class='ctx'>       default:</div><div class='ctx'> 	rb_bug("rb_fiddle_ptr_aref()");</div><div class='hunk'>@@ -580,7 +705,7 @@ rb_fiddle_ptr_aset(int argc, VALUE argv[], VALUE self)</div><div class='ctx'>     struct ptr_data *data;</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, struct ptr_data, &amp;fiddle_ptr_data_type, data);</div><div class='del'>-    if (!data-&gt;ptr) rb_raise(rb_eFiddleError, "NULL pointer dereference");</div><div class='add'>+    if (!data-&gt;ptr) rb_raise(rb_eFiddleDLError, "NULL pointer dereference");</div><div class='ctx'>     switch( rb_scan_args(argc, argv, "21", &amp;arg0, &amp;arg1, &amp;arg2) ){</div><div class='ctx'>       case 2:</div><div class='ctx'> 	offset = NUM2ULONG(arg0);</div><div class='hunk'>@@ -653,6 +778,7 @@ rb_fiddle_ptr_s_to_ptr(VALUE self, VALUE val)</div><div class='ctx'>     }</div><div class='ctx'>     else if (RTEST(rb_obj_is_kind_of(val, rb_cString))){</div><div class='ctx'> 	char *str = StringValuePtr(val);</div><div class='add'>+        wrap = val;</div><div class='ctx'> 	ptr = rb_fiddle_ptr_new(str, RSTRING_LEN(val), NULL);</div><div class='ctx'>     }</div><div class='ctx'>     else if ((vptr = rb_check_funcall(val, id_to_ptr, 0, 0)) != Qundef){</div><div class='hunk'>@@ -661,7 +787,7 @@ rb_fiddle_ptr_s_to_ptr(VALUE self, VALUE val)</div><div class='ctx'> 	    wrap = 0;</div><div class='ctx'> 	}</div><div class='ctx'> 	else{</div><div class='del'>-	    rb_raise(rb_eFiddleError, "to_ptr should return a Fiddle::Pointer object");</div><div class='add'>+	    rb_raise(rb_eFiddleDLError, "to_ptr should return a Fiddle::Pointer object");</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     else{</div><div class='hunk'>@@ -669,7 +795,6 @@ rb_fiddle_ptr_s_to_ptr(VALUE self, VALUE val)</div><div class='ctx'> 	if (num == val) wrap = 0;</div><div class='ctx'> 	ptr = rb_fiddle_ptr_new(NUM2PTR(num), 0, NULL);</div><div class='ctx'>     }</div><div class='del'>-    OBJ_INFECT(ptr, val);</div><div class='ctx'>     if (wrap) RPTR_DATA(ptr)-&gt;wrap[0] = wrap;</div><div class='ctx'>     return ptr;</div><div class='ctx'> }</div><div class='hunk'>@@ -693,6 +818,8 @@ Init_fiddle_pointer(void)</div><div class='ctx'>     rb_define_method(rb_cPointer, "initialize", rb_fiddle_ptr_initialize, -1);</div><div class='ctx'>     rb_define_method(rb_cPointer, "free=", rb_fiddle_ptr_free_set, 1);</div><div class='ctx'>     rb_define_method(rb_cPointer, "free",  rb_fiddle_ptr_free_get, 0);</div><div class='add'>+    rb_define_method(rb_cPointer, "call_free",  rb_fiddle_ptr_call_free, 0);</div><div class='add'>+    rb_define_method(rb_cPointer, "freed?",  rb_fiddle_ptr_freed_p, 0);</div><div class='ctx'>     rb_define_method(rb_cPointer, "to_i",  rb_fiddle_ptr_to_i, 0);</div><div class='ctx'>     rb_define_method(rb_cPointer, "to_int",  rb_fiddle_ptr_to_i, 0);</div><div class='ctx'>     rb_define_method(rb_cPointer, "to_value",  rb_fiddle_ptr_to_value, 0);</div><div class='hunk'>@@ -714,6 +841,10 @@ Init_fiddle_pointer(void)</div><div class='ctx'>     rb_define_method(rb_cPointer, "size", rb_fiddle_ptr_size_get, 0);</div><div class='ctx'>     rb_define_method(rb_cPointer, "size=", rb_fiddle_ptr_size_set, 1);</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RUBY_MEMORY_VIEW_H</div><div class='add'>+    rb_memory_view_register(rb_cPointer, &amp;fiddle_ptr_memory_view_entry);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     /*  Document-const: NULL</div><div class='ctx'>      *</div><div class='ctx'>      * A NULL pointer</div><div class='head'>diff --git a/ext/fiddle/win32/fficonfig.h b/ext/fiddle/win32/fficonfig.h<br/>index 776808159c..776808159c 100755..100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/win32/fficonfig.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/win32/fficonfig.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/win32/fficonfig.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/win32/fficonfig.h</a></div><div class='head'>diff --git a/ext/fiddle/win32/libffi-config.rb b/ext/fiddle/win32/libffi-config.rb<br/>index 6abc9b2c02..985fc29d36 100755<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/win32/libffi-config.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/win32/libffi-config.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/win32/libffi-config.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/win32/libffi-config.rb</a></div><div class='hunk'>@@ -32,7 +32,7 @@ IO.foreach("#{srcdir}/configure.ac") do |line|</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-builddir = srcdir == "." ? enable['builddir'] : "."</div><div class='add'>+builddir = srcdir == "." ? (enable['builddir'] || ".") : "."</div><div class='ctx'> conf['TARGET'] = /^x64/ =~ host ? "X86_WIN64" : "X86_WIN32"</div><div class='ctx'> </div><div class='ctx'> FileUtils.mkdir_p([builddir, "#{builddir}/include", "#{builddir}/src/x86"])</div><div class='head'>diff --git a/ext/fiddle/win32/libffi.mk.tmpl b/ext/fiddle/win32/libffi.mk.tmpl<br/>index 2a16e8efec..2a16e8efec 100755..100644<br/>--- a/<a href='/ruby.git/tree/ext/fiddle/win32/libffi.mk.tmpl?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/fiddle/win32/libffi.mk.tmpl</a><br/>+++ b/<a href='/ruby.git/tree/ext/fiddle/win32/libffi.mk.tmpl?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/fiddle/win32/libffi.mk.tmpl</a></div><div class='head'>diff --git a/ext/gdbm/README b/ext/gdbm/README<br/>deleted file mode 100644<br/>index df7a261c68..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/gdbm/README?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/gdbm/README</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1 +0,0 @@</div><div class='del'>-gdbm ext-library for Ruby 1.3 or later</div><div class='head'>diff --git a/ext/gdbm/depend b/ext/gdbm/depend<br/>deleted file mode 100644<br/>index 98def40879..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/gdbm/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/gdbm/depend</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,13 +0,0 @@</div><div class='del'>-# AUTOGENERATED DEPENDENCIES START</div><div class='del'>-gdbm.o: $(RUBY_EXTCONF_H)</div><div class='del'>-gdbm.o: $(arch_hdrdir)/ruby/config.h</div><div class='del'>-gdbm.o: $(hdrdir)/ruby/backward.h</div><div class='del'>-gdbm.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-gdbm.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-gdbm.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-gdbm.o: $(hdrdir)/ruby/ruby.h</div><div class='del'>-gdbm.o: $(hdrdir)/ruby/st.h</div><div class='del'>-gdbm.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-gdbm.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-gdbm.o: gdbm.c</div><div class='del'>-# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/gdbm/extconf.rb b/ext/gdbm/extconf.rb<br/>deleted file mode 100644<br/>index d1908ffa5c..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/gdbm/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/gdbm/extconf.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,19 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-require 'mkmf'</div><div class='del'>-</div><div class='del'>-dir_config("gdbm")</div><div class='del'>-if have_library("gdbm", "gdbm_open") and</div><div class='del'>-   have_header("gdbm.h")</div><div class='del'>-  checking_for("sizeof(DBM) is available") {</div><div class='del'>-    if try_compile(&lt;&lt;SRC)</div><div class='del'>-#include &lt;gdbm.h&gt;</div><div class='del'>-</div><div class='del'>-const int sizeof_DBM = (int)sizeof(DBM);</div><div class='del'>-SRC</div><div class='del'>-      $defs &lt;&lt; '-DDBM_SIZEOF_DBM=sizeof(DBM)'</div><div class='del'>-    else</div><div class='del'>-      $defs &lt;&lt; '-DDBM_SIZEOF_DBM=0'</div><div class='del'>-    end</div><div class='del'>-  }</div><div class='del'>-  create_makefile("gdbm")</div><div class='del'>-end</div><div class='head'>diff --git a/ext/gdbm/gdbm.c b/ext/gdbm/gdbm.c<br/>deleted file mode 100644<br/>index 05eb450381..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/gdbm/gdbm.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/gdbm/gdbm.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1309 +0,0 @@</div><div class='del'>-/************************************************</div><div class='del'>-</div><div class='del'>-  gdbm.c -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  modified at: Mon Jan 24 15:59:52 JST 1994</div><div class='del'>-</div><div class='del'>-  Documentation by Peter Adolphs &lt; futzilogik at users dot sourceforge dot net &gt;</div><div class='del'>-</div><div class='del'>-************************************************/</div><div class='del'>-</div><div class='del'>-#include "ruby.h"</div><div class='del'>-</div><div class='del'>-#include &lt;gdbm.h&gt;</div><div class='del'>-#include &lt;fcntl.h&gt;</div><div class='del'>-#include &lt;errno.h&gt;</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Document-class: GDBM</div><div class='del'>- *</div><div class='del'>- * == Summary</div><div class='del'>- *</div><div class='del'>- * Ruby extension for GNU dbm (gdbm) -- a simple database engine for storing</div><div class='del'>- * key-value pairs on disk.</div><div class='del'>- *</div><div class='del'>- * == Description</div><div class='del'>- *</div><div class='del'>- * GNU dbm is a library for simple databases. A database is a file that stores</div><div class='del'>- * key-value pairs. Gdbm allows the user to store, retrieve, and delete data by</div><div class='del'>- * key. It furthermore allows a non-sorted traversal of all key-value pairs.</div><div class='del'>- * A gdbm database thus provides the same functionality as a hash. As</div><div class='del'>- * with objects of the Hash class, elements can be accessed with &lt;tt&gt;[]&lt;/tt&gt;.</div><div class='del'>- * Furthermore, GDBM mixes in the Enumerable module, thus providing convenient</div><div class='del'>- * methods such as #find, #collect, #map, etc.</div><div class='del'>- *</div><div class='del'>- * A process is allowed to open several different databases at the same time.</div><div class='del'>- * A process can open a database as a "reader" or a "writer". Whereas a reader</div><div class='del'>- * has only read-access to the database, a writer has read- and write-access.</div><div class='del'>- * A database can be accessed either by any number of readers or by exactly one</div><div class='del'>- * writer at the same time.</div><div class='del'>- *</div><div class='del'>- * == Examples</div><div class='del'>- *</div><div class='del'>- * 1. Opening/creating a database, and filling it with some entries:</div><div class='del'>- *</div><div class='del'>- *      require 'gdbm'</div><div class='del'>- *</div><div class='del'>- *      gdbm = GDBM.new("fruitstore.db")</div><div class='del'>- *      gdbm["ananas"]    = "3"</div><div class='del'>- *      gdbm["banana"]    = "8"</div><div class='del'>- *      gdbm["cranberry"] = "4909"</div><div class='del'>- *      gdbm.close</div><div class='del'>- *</div><div class='del'>- * 2. Reading out a database:</div><div class='del'>- *</div><div class='del'>- *      require 'gdbm'</div><div class='del'>- *</div><div class='del'>- *      gdbm = GDBM.new("fruitstore.db")</div><div class='del'>- *      gdbm.each_pair do |key, value|</div><div class='del'>- *        print "#{key}: #{value}\n"</div><div class='del'>- *      end</div><div class='del'>- *      gdbm.close</div><div class='del'>- *</div><div class='del'>- *    produces</div><div class='del'>- *</div><div class='del'>- *      banana: 8</div><div class='del'>- *      ananas: 3</div><div class='del'>- *      cranberry: 4909</div><div class='del'>- *</div><div class='del'>- * == Links</div><div class='del'>- *</div><div class='del'>- * * http://www.gnu.org/software/gdbm/</div><div class='del'>- */</div><div class='del'>-static VALUE rb_cGDBM, rb_eGDBMError, rb_eGDBMFatalError;</div><div class='del'>-</div><div class='del'>-#if SIZEOF_LONG &gt; SIZEOF_INT</div><div class='del'>-#define TOO_LONG(n) ((long)(+(int)(n)) != (long)(n))</div><div class='del'>-#else</div><div class='del'>-#define TOO_LONG(n) 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define RUBY_GDBM_RW_BIT 0x20000000</div><div class='del'>-</div><div class='del'>-#define MY_BLOCK_SIZE (2048)</div><div class='del'>-#define MY_FATAL_FUNC rb_gdbm_fatal</div><div class='del'>-</div><div class='del'>-NORETURN(static void rb_gdbm_fatal(const char *msg));</div><div class='del'>-NORETURN(static void closed_dbm(void));</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-rb_gdbm_fatal(const char *msg)</div><div class='del'>-{</div><div class='del'>-    rb_raise(rb_eGDBMFatalError, "%s", msg);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-struct dbmdata {</div><div class='del'>-    int  di_size;</div><div class='del'>-    GDBM_FILE di_dbm;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-closed_dbm(void)</div><div class='del'>-{</div><div class='del'>-    rb_raise(rb_eRuntimeError, "closed GDBM file");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define GetDBM(obj, dbmp) do {\</div><div class='del'>-    TypedData_Get_Struct((obj), struct dbmdata, &amp;dbm_type, (dbmp));\</div><div class='del'>-    if ((dbmp)-&gt;di_dbm == 0) closed_dbm();\</div><div class='del'>-} while (0)</div><div class='del'>-</div><div class='del'>-#define GetDBM2(obj, dbmp, dbm) do {\</div><div class='del'>-    GetDBM((obj), (dbmp));\</div><div class='del'>-    (dbm) = (dbmp)-&gt;di_dbm;\</div><div class='del'>-} while (0)</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-free_dbm(void *ptr)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp = ptr;</div><div class='del'>-    if (dbmp-&gt;di_dbm)</div><div class='del'>-	gdbm_close(dbmp-&gt;di_dbm);</div><div class='del'>-    xfree(dbmp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static size_t</div><div class='del'>-memsize_dbm(const void *ptr)</div><div class='del'>-{</div><div class='del'>-    const struct dbmdata *dbmp = ptr;</div><div class='del'>-    size_t size = sizeof(*dbmp);</div><div class='del'>-    if (dbmp-&gt;di_dbm)</div><div class='del'>-	size += DBM_SIZEOF_DBM;</div><div class='del'>-    return size;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const rb_data_type_t dbm_type = {</div><div class='del'>-    "gdbm",</div><div class='del'>-    {0, free_dbm, memsize_dbm,},</div><div class='del'>-    0, 0,</div><div class='del'>-    RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.close -&gt; nil</div><div class='del'>- *</div><div class='del'>- * Closes the associated database file.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_close(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-</div><div class='del'>-    GetDBM(obj, dbmp);</div><div class='del'>-    gdbm_close(dbmp-&gt;di_dbm);</div><div class='del'>-    dbmp-&gt;di_dbm = 0;</div><div class='del'>-</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.closed?  -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns true if the associated database file has been closed.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_closed(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-</div><div class='del'>-    TypedData_Get_Struct(obj, struct dbmdata, &amp;dbm_type, dbmp);</div><div class='del'>-    if (dbmp-&gt;di_dbm == 0)</div><div class='del'>-        return Qtrue;</div><div class='del'>-</div><div class='del'>-    return Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_s_alloc(VALUE klass)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-</div><div class='del'>-    return TypedData_Make_Struct(klass, struct dbmdata, &amp;dbm_type, dbmp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      GDBM.new(filename, mode = 0666, flags = nil)</div><div class='del'>- *</div><div class='del'>- * Creates a new GDBM instance by opening a gdbm file named _filename_.</div><div class='del'>- * If the file does not exist, a new file with file mode _mode_ will be</div><div class='del'>- * created. _flags_ may be one of the following:</div><div class='del'>- * * *READER*  - open as a reader</div><div class='del'>- * * *WRITER*  - open as a writer</div><div class='del'>- * * *WRCREAT* - open as a writer; if the database does not exist, create a new one</div><div class='del'>- * * *NEWDB*   - open as a writer; overwrite any existing databases</div><div class='del'>- *</div><div class='del'>- * The values *WRITER*, *WRCREAT* and *NEWDB* may be combined with the following</div><div class='del'>- * values by bitwise or:</div><div class='del'>- * * *SYNC*    - cause all database operations to be synchronized to the disk</div><div class='del'>- * * *NOLOCK*  - do not lock the database file</div><div class='del'>- *</div><div class='del'>- * If no _flags_ are specified, the GDBM object will try to open the database</div><div class='del'>- * file as a writer and will create it if it does not already exist</div><div class='del'>- * (cf. flag &lt;tt&gt;WRCREAT&lt;/tt&gt;). If this fails (for instance, if another process</div><div class='del'>- * has already opened the database as a reader), it will try to open the</div><div class='del'>- * database file as a reader (cf. flag &lt;tt&gt;READER&lt;/tt&gt;).</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_initialize(int argc, VALUE *argv, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE file, vmode, vflags;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    int mode, flags = 0;</div><div class='del'>-</div><div class='del'>-    TypedData_Get_Struct(obj, struct dbmdata, &amp;dbm_type, dbmp);</div><div class='del'>-    if (rb_scan_args(argc, argv, "12", &amp;file, &amp;vmode, &amp;vflags) == 1) {</div><div class='del'>-        mode = 0666;            /* default value */</div><div class='del'>-    }</div><div class='del'>-    else if (NIL_P(vmode)) {</div><div class='del'>-        mode = -1;              /* return nil if DB does not exist */</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        mode = NUM2INT(vmode);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!NIL_P(vflags))</div><div class='del'>-        flags = NUM2INT(vflags);</div><div class='del'>-</div><div class='del'>-    FilePathValue(file);</div><div class='del'>-</div><div class='del'>-#ifdef GDBM_CLOEXEC</div><div class='del'>-    /* GDBM_CLOEXEC is available since gdbm 1.10. */</div><div class='del'>-    flags |= GDBM_CLOEXEC;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    if (flags &amp; RUBY_GDBM_RW_BIT) {</div><div class='del'>-        flags &amp;= ~RUBY_GDBM_RW_BIT;</div><div class='del'>-        dbm = gdbm_open(RSTRING_PTR(file), MY_BLOCK_SIZE,</div><div class='del'>-                        flags, mode, MY_FATAL_FUNC);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        dbm = 0;</div><div class='del'>-        if (mode &gt;= 0)</div><div class='del'>-            dbm = gdbm_open(RSTRING_PTR(file), MY_BLOCK_SIZE,</div><div class='del'>-                            GDBM_WRCREAT|flags, mode, MY_FATAL_FUNC);</div><div class='del'>-        if (!dbm)</div><div class='del'>-            dbm = gdbm_open(RSTRING_PTR(file), MY_BLOCK_SIZE,</div><div class='del'>-                            GDBM_WRITER|flags, 0, MY_FATAL_FUNC);</div><div class='del'>-        if (!dbm)</div><div class='del'>-            dbm = gdbm_open(RSTRING_PTR(file), MY_BLOCK_SIZE,</div><div class='del'>-                            GDBM_READER|flags, 0, MY_FATAL_FUNC);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (dbm) {</div><div class='del'>-        rb_fd_fix_cloexec(gdbm_fdesc(dbm));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!dbm) {</div><div class='del'>-        if (mode == -1) return Qnil;</div><div class='del'>-</div><div class='del'>-        if (gdbm_errno == GDBM_FILE_OPEN_ERROR ||</div><div class='del'>-            gdbm_errno == GDBM_CANT_BE_READER ||</div><div class='del'>-            gdbm_errno == GDBM_CANT_BE_WRITER)</div><div class='del'>-            rb_sys_fail_str(file);</div><div class='del'>-        else</div><div class='del'>-            rb_raise(rb_eGDBMError, "%s", gdbm_strerror(gdbm_errno));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (dbmp-&gt;di_dbm)</div><div class='del'>-	gdbm_close(dbmp-&gt;di_dbm);</div><div class='del'>-    dbmp-&gt;di_dbm = dbm;</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      GDBM.open(filename, mode = 0666, flags = nil)</div><div class='del'>- *      GDBM.open(filename, mode = 0666, flags = nil) { |gdbm| ... }</div><div class='del'>- *</div><div class='del'>- * If called without a block, this is synonymous to GDBM::new.</div><div class='del'>- * If a block is given, the new GDBM instance will be passed to the block</div><div class='del'>- * as a parameter, and the corresponding database file will be closed</div><div class='del'>- * after the execution of the block code has been finished.</div><div class='del'>- *</div><div class='del'>- * Example for an open call with a block:</div><div class='del'>- *</div><div class='del'>- *   require 'gdbm'</div><div class='del'>- *   GDBM.open("fruitstore.db") do |gdbm|</div><div class='del'>- *     gdbm.each_pair do |key, value|</div><div class='del'>- *       print "#{key}: #{value}\n"</div><div class='del'>- *     end</div><div class='del'>- *   end</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='del'>-{</div><div class='del'>-    VALUE obj = fgdbm_s_alloc(klass);</div><div class='del'>-</div><div class='del'>-    if (NIL_P(fgdbm_initialize(argc, argv, obj))) {</div><div class='del'>-        return Qnil;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (rb_block_given_p()) {</div><div class='del'>-        return rb_ensure(rb_yield, obj, fgdbm_close, obj);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_gdbm_fetch(GDBM_FILE dbm, datum key)</div><div class='del'>-{</div><div class='del'>-    datum val;</div><div class='del'>-    VALUE str;</div><div class='del'>-</div><div class='del'>-    val = gdbm_fetch(dbm, key);</div><div class='del'>-    if (val.dptr == 0)</div><div class='del'>-        return Qnil;</div><div class='del'>-</div><div class='del'>-    str = rb_str_new(val.dptr, val.dsize);</div><div class='del'>-    free(val.dptr);</div><div class='del'>-    OBJ_TAINT(str);</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_gdbm_fetch2(GDBM_FILE dbm, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    long len;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(keystr);</div><div class='del'>-    len = RSTRING_LEN(keystr);</div><div class='del'>-    if (TOO_LONG(len)) return Qnil;</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = (int)len;</div><div class='del'>-</div><div class='del'>-    return rb_gdbm_fetch(dbm, key);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_gdbm_fetch3(VALUE obj, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    return rb_gdbm_fetch2(dbm, keystr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_gdbm_firstkey(GDBM_FILE dbm)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    VALUE str;</div><div class='del'>-</div><div class='del'>-    key = gdbm_firstkey(dbm);</div><div class='del'>-    if (key.dptr == 0)</div><div class='del'>-        return Qnil;</div><div class='del'>-</div><div class='del'>-    str = rb_str_new(key.dptr, key.dsize);</div><div class='del'>-    free(key.dptr);</div><div class='del'>-    OBJ_TAINT(str);</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_gdbm_nextkey(GDBM_FILE dbm, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    datum key, key2;</div><div class='del'>-    VALUE str;</div><div class='del'>-    long len;</div><div class='del'>-</div><div class='del'>-    len = RSTRING_LEN(keystr);</div><div class='del'>-    if (TOO_LONG(len)) return Qnil;</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = (int)len;</div><div class='del'>-    key2 = gdbm_nextkey(dbm, key);</div><div class='del'>-    if (key2.dptr == 0)</div><div class='del'>-        return Qnil;</div><div class='del'>-</div><div class='del'>-    str = rb_str_new(key2.dptr, key2.dsize);</div><div class='del'>-    free(key2.dptr);</div><div class='del'>-    OBJ_TAINT(str);</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_fetch(VALUE obj, VALUE keystr, VALUE ifnone)</div><div class='del'>-{</div><div class='del'>-    VALUE valstr;</div><div class='del'>-</div><div class='del'>-    valstr = rb_gdbm_fetch3(obj, keystr);</div><div class='del'>-    if (NIL_P(valstr)) {</div><div class='del'>-        if (ifnone == Qnil &amp;&amp; rb_block_given_p())</div><div class='del'>-            return rb_yield(keystr);</div><div class='del'>-        return ifnone;</div><div class='del'>-    }</div><div class='del'>-    return valstr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm[key] -&gt; value</div><div class='del'>- *</div><div class='del'>- * Retrieves the _value_ corresponding to _key_.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_aref(VALUE obj, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    return rb_gdbm_fetch3(obj, keystr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.fetch(key [, default]) -&gt; value</div><div class='del'>- *</div><div class='del'>- * Retrieves the _value_ corresponding to _key_. If there is no value</div><div class='del'>- * associated with _key_, _default_ will be returned instead.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_fetch_m(int argc, VALUE *argv, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE keystr, valstr, ifnone;</div><div class='del'>-</div><div class='del'>-    rb_scan_args(argc, argv, "11", &amp;keystr, &amp;ifnone);</div><div class='del'>-    valstr = fgdbm_fetch(obj, keystr, ifnone);</div><div class='del'>-    if (argc == 1 &amp;&amp; !rb_block_given_p() &amp;&amp; NIL_P(valstr))</div><div class='del'>-        rb_raise(rb_eIndexError, "key not found");</div><div class='del'>-</div><div class='del'>-    return valstr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.key(value) -&gt; key</div><div class='del'>- *</div><div class='del'>- * Returns the _key_ for a given _value_. If several keys may map to the</div><div class='del'>- * same value, the key that is found first will be returned.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_key(VALUE obj, VALUE valstr)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    VALUE keystr, valstr2;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(valstr);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (keystr = rb_gdbm_firstkey(dbm); RTEST(keystr);</div><div class='del'>-         keystr = rb_gdbm_nextkey(dbm, keystr)) {</div><div class='del'>-</div><div class='del'>-        valstr2 = rb_gdbm_fetch2(dbm, keystr);</div><div class='del'>-        if (!NIL_P(valstr2) &amp;&amp;</div><div class='del'>-            (int)RSTRING_LEN(valstr) == (int)RSTRING_LEN(valstr2) &amp;&amp;</div><div class='del'>-            memcmp(RSTRING_PTR(valstr), RSTRING_PTR(valstr2),</div><div class='del'>-                   (int)RSTRING_LEN(valstr)) == 0) {</div><div class='del'>-            return keystr;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* :nodoc: */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_index(VALUE obj, VALUE value)</div><div class='del'>-{</div><div class='del'>-    rb_warn("GDBM#index is deprecated; use GDBM#key");</div><div class='del'>-    return fgdbm_key(obj, value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.select { |key, value| block } -&gt; array</div><div class='del'>- *</div><div class='del'>- * Returns a new array of all key-value pairs of the database for which _block_</div><div class='del'>- * evaluates to true.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_select(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE new = rb_ary_new();</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    VALUE keystr;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (keystr = rb_gdbm_firstkey(dbm); RTEST(keystr);</div><div class='del'>-         keystr = rb_gdbm_nextkey(dbm, keystr)) {</div><div class='del'>-        VALUE assoc = rb_assoc_new(keystr, rb_gdbm_fetch2(dbm, keystr));</div><div class='del'>-        VALUE v = rb_yield(assoc);</div><div class='del'>-</div><div class='del'>-        if (RTEST(v)) {</div><div class='del'>-            rb_ary_push(new, assoc);</div><div class='del'>-        }</div><div class='del'>-        GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return new;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.values_at(key, ...) -&gt; array</div><div class='del'>- *</div><div class='del'>- * Returns an array of the values associated with each specified _key_.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_values_at(int argc, VALUE *argv, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE new = rb_ary_new2(argc);</div><div class='del'>-    int i;</div><div class='del'>-</div><div class='del'>-    for (i=0; i&lt;argc; i++) {</div><div class='del'>-        rb_ary_push(new, rb_gdbm_fetch3(obj, argv[i]));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return new;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-rb_gdbm_modify(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    if (OBJ_FROZEN(obj)) rb_error_frozen("GDBM");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_gdbm_delete(VALUE obj, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    long len;</div><div class='del'>-</div><div class='del'>-    rb_gdbm_modify(obj);</div><div class='del'>-    ExportStringValue(keystr);</div><div class='del'>-    len = RSTRING_LEN(keystr);</div><div class='del'>-    if (TOO_LONG(len)) return Qnil;</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = (int)len;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    if (!gdbm_exists(dbm, key)) {</div><div class='del'>-        return Qnil;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (gdbm_delete(dbm, key)) {</div><div class='del'>-        dbmp-&gt;di_size = -1;</div><div class='del'>-        rb_raise(rb_eGDBMError, "%s", gdbm_strerror(gdbm_errno));</div><div class='del'>-    }</div><div class='del'>-    else if (dbmp-&gt;di_size &gt;= 0) {</div><div class='del'>-        dbmp-&gt;di_size--;</div><div class='del'>-    }</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.delete(key) -&gt; value or nil</div><div class='del'>- *</div><div class='del'>- * Removes the key-value-pair with the specified _key_ from this database and</div><div class='del'>- * returns the corresponding _value_. Returns nil if the database is empty.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_delete(VALUE obj, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    VALUE valstr;</div><div class='del'>-</div><div class='del'>-    valstr = fgdbm_fetch(obj, keystr, Qnil);</div><div class='del'>-    rb_gdbm_delete(obj, keystr);</div><div class='del'>-    return valstr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.shift -&gt; (key, value) or nil</div><div class='del'>- *</div><div class='del'>- * Removes a key-value-pair from this database and returns it as a</div><div class='del'>- * two-item array [ _key_, _value_ ]. Returns nil if the database is empty.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_shift(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    VALUE keystr, valstr;</div><div class='del'>-</div><div class='del'>-    rb_gdbm_modify(obj);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    keystr = rb_gdbm_firstkey(dbm);</div><div class='del'>-    if (NIL_P(keystr)) return Qnil;</div><div class='del'>-    valstr = rb_gdbm_fetch2(dbm, keystr);</div><div class='del'>-    rb_gdbm_delete(obj, keystr);</div><div class='del'>-</div><div class='del'>-    return rb_assoc_new(keystr, valstr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.delete_if { |key, value| block } -&gt; gdbm</div><div class='del'>- *      gdbm.reject! { |key, value| block } -&gt; gdbm</div><div class='del'>- *</div><div class='del'>- * Deletes every key-value pair from _gdbm_ for which _block_ evaluates to true.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_delete_if(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    VALUE keystr, valstr;</div><div class='del'>-    VALUE ret, ary = rb_ary_tmp_new(0);</div><div class='del'>-    long i;</div><div class='del'>-    int status = 0, n;</div><div class='del'>-</div><div class='del'>-    rb_gdbm_modify(obj);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    n = dbmp-&gt;di_size;</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-</div><div class='del'>-    for (keystr = rb_gdbm_firstkey(dbm); RTEST(keystr);</div><div class='del'>-         keystr = rb_gdbm_nextkey(dbm, keystr)) {</div><div class='del'>-</div><div class='del'>-	OBJ_FREEZE(keystr);</div><div class='del'>-        valstr = rb_gdbm_fetch2(dbm, keystr);</div><div class='del'>-        ret = rb_protect(rb_yield, rb_assoc_new(rb_str_dup(keystr), valstr), &amp;status);</div><div class='del'>-        if (status != 0) break;</div><div class='del'>-        if (RTEST(ret)) rb_ary_push(ary, keystr);</div><div class='del'>-        GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    for (i = 0; i &lt; RARRAY_LEN(ary); i++)</div><div class='del'>-        rb_gdbm_delete(obj, RARRAY_AREF(ary, i));</div><div class='del'>-    if (status) rb_jump_tag(status);</div><div class='del'>-    if (n &gt; 0) dbmp-&gt;di_size = n - (int)RARRAY_LEN(ary);</div><div class='del'>-    rb_ary_clear(ary);</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.clear -&gt; gdbm</div><div class='del'>- *</div><div class='del'>- * Removes all the key-value pairs within _gdbm_.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_clear(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, nextkey;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-</div><div class='del'>-    rb_gdbm_modify(obj);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-    while (key = gdbm_firstkey(dbm), key.dptr) {</div><div class='del'>-        if (gdbm_delete(dbm, key)) {</div><div class='del'>-            free(key.dptr);</div><div class='del'>-            rb_raise(rb_eGDBMError, "%s", gdbm_strerror(gdbm_errno));</div><div class='del'>-        }</div><div class='del'>-        free(key.dptr);</div><div class='del'>-    }</div><div class='del'>-#else</div><div class='del'>-    while (key = gdbm_firstkey(dbm), key.dptr) {</div><div class='del'>-        for (; key.dptr; key = nextkey) {</div><div class='del'>-            nextkey = gdbm_nextkey(dbm, key);</div><div class='del'>-            if (gdbm_delete(dbm, key)) {</div><div class='del'>-                free(key.dptr);</div><div class='del'>-                if (nextkey.dptr) free(nextkey.dptr);</div><div class='del'>-                rb_raise(rb_eGDBMError, "%s", gdbm_strerror(gdbm_errno));</div><div class='del'>-            }</div><div class='del'>-            free(key.dptr);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-    dbmp-&gt;di_size = 0;</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.invert  -&gt; hash</div><div class='del'>- *</div><div class='del'>- * Returns a hash created by using _gdbm_'s values as keys, and the keys</div><div class='del'>- * as values.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_invert(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    VALUE keystr, valstr;</div><div class='del'>-    VALUE hash = rb_hash_new();</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (keystr = rb_gdbm_firstkey(dbm); RTEST(keystr);</div><div class='del'>-         keystr = rb_gdbm_nextkey(dbm, keystr)) {</div><div class='del'>-        valstr = rb_gdbm_fetch2(dbm, keystr);</div><div class='del'>-</div><div class='del'>-        rb_hash_aset(hash, valstr, keystr);</div><div class='del'>-    }</div><div class='del'>-    return hash;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm[key]= value -&gt; value</div><div class='del'>- *      gdbm.store(key, value) -&gt; value</div><div class='del'>- *</div><div class='del'>- * Associates the value _value_ with the specified _key_.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_store(VALUE obj, VALUE keystr, VALUE valstr)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-</div><div class='del'>-    rb_gdbm_modify(obj);</div><div class='del'>-    ExportStringValue(keystr);</div><div class='del'>-    ExportStringValue(valstr);</div><div class='del'>-</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = RSTRING_LENINT(keystr);</div><div class='del'>-</div><div class='del'>-    val.dptr = RSTRING_PTR(valstr);</div><div class='del'>-    val.dsize = RSTRING_LENINT(valstr);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-    if (gdbm_store(dbm, key, val, GDBM_REPLACE)) {</div><div class='del'>-        if (errno == EPERM) rb_sys_fail(0);</div><div class='del'>-        rb_raise(rb_eGDBMError, "%s", gdbm_strerror(gdbm_errno));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return valstr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-update_i(RB_BLOCK_CALL_FUNC_ARGLIST(pair, dbm))</div><div class='del'>-{</div><div class='del'>-    const VALUE *ptr;</div><div class='del'>-    Check_Type(pair, T_ARRAY);</div><div class='del'>-    if (RARRAY_LEN(pair) &lt; 2) {</div><div class='del'>-        rb_raise(rb_eArgError, "pair must be [key, value]");</div><div class='del'>-    }</div><div class='del'>-    ptr = RARRAY_CONST_PTR(pair);</div><div class='del'>-    fgdbm_store(dbm, ptr[0], ptr[1]);</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.update(other) -&gt; gdbm</div><div class='del'>- *</div><div class='del'>- * Adds the key-value pairs of _other_ to _gdbm_, overwriting entries with</div><div class='del'>- * duplicate keys with those from _other_. _other_ must have an each_pair</div><div class='del'>- * method.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_update(VALUE obj, VALUE other)</div><div class='del'>-{</div><div class='del'>-    rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj);</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.replace(other) -&gt; gdbm</div><div class='del'>- *</div><div class='del'>- * Replaces the content of _gdbm_ with the key-value pairs of _other_.</div><div class='del'>- * _other_ must have an each_pair method.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_replace(VALUE obj, VALUE other)</div><div class='del'>-{</div><div class='del'>-    fgdbm_clear(obj);</div><div class='del'>-    rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj);</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.length -&gt; fixnum</div><div class='del'>- *      gdbm.size -&gt; fixnum</div><div class='del'>- *</div><div class='del'>- * Returns the number of key-value pairs in this database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_length(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, nextkey;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    int i = 0;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    if (dbmp-&gt;di_size &gt; 0) return INT2FIX(dbmp-&gt;di_size);</div><div class='del'>-</div><div class='del'>-    for (key = gdbm_firstkey(dbm); key.dptr; key = nextkey) {</div><div class='del'>-        nextkey = gdbm_nextkey(dbm, key);</div><div class='del'>-        free(key.dptr);</div><div class='del'>-        i++;</div><div class='del'>-    }</div><div class='del'>-    dbmp-&gt;di_size = i;</div><div class='del'>-</div><div class='del'>-    return INT2FIX(i);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.empty? -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns true if the database is empty.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_empty_p(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-</div><div class='del'>-    GetDBM(obj, dbmp);</div><div class='del'>-    if (dbmp-&gt;di_size &lt; 0) {</div><div class='del'>-        dbm = dbmp-&gt;di_dbm;</div><div class='del'>-</div><div class='del'>-        key = gdbm_firstkey(dbm);</div><div class='del'>-        if (key.dptr) {</div><div class='del'>-            free(key.dptr);</div><div class='del'>-            return Qfalse;</div><div class='del'>-        }</div><div class='del'>-        return Qtrue;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (dbmp-&gt;di_size == 0) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.each_value { |value| block } -&gt; gdbm</div><div class='del'>- *</div><div class='del'>- * Executes _block_ for each key in the database, passing the corresponding</div><div class='del'>- * _value_ as a parameter.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_each_value(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    VALUE keystr;</div><div class='del'>-</div><div class='del'>-    RETURN_ENUMERATOR(obj, 0, 0);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (keystr = rb_gdbm_firstkey(dbm); RTEST(keystr);</div><div class='del'>-         keystr = rb_gdbm_nextkey(dbm, keystr)) {</div><div class='del'>-</div><div class='del'>-        rb_yield(rb_gdbm_fetch2(dbm, keystr));</div><div class='del'>-        GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.each_key { |key| block } -&gt; gdbm</div><div class='del'>- *</div><div class='del'>- * Executes _block_ for each key in the database, passing the</div><div class='del'>- * _key_ as a parameter.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_each_key(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    VALUE keystr;</div><div class='del'>-</div><div class='del'>-    RETURN_ENUMERATOR(obj, 0, 0);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (keystr = rb_gdbm_firstkey(dbm); RTEST(keystr);</div><div class='del'>-         keystr = rb_gdbm_nextkey(dbm, keystr)) {</div><div class='del'>-</div><div class='del'>-        rb_yield(keystr);</div><div class='del'>-        GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.each_pair { |key, value| block } -&gt; gdbm</div><div class='del'>- *</div><div class='del'>- * Executes _block_ for each key in the database, passing the _key_ and the</div><div class='del'>- * corresponding _value_ as a parameter.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_each_pair(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    VALUE keystr;</div><div class='del'>-</div><div class='del'>-    RETURN_ENUMERATOR(obj, 0, 0);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (keystr = rb_gdbm_firstkey(dbm); RTEST(keystr);</div><div class='del'>-         keystr = rb_gdbm_nextkey(dbm, keystr)) {</div><div class='del'>-</div><div class='del'>-        rb_yield(rb_assoc_new(keystr, rb_gdbm_fetch2(dbm, keystr)));</div><div class='del'>-        GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.keys -&gt; array</div><div class='del'>- *</div><div class='del'>- * Returns an array of all keys of this database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_keys(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    VALUE keystr, ary;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    for (keystr = rb_gdbm_firstkey(dbm); RTEST(keystr);</div><div class='del'>-         keystr = rb_gdbm_nextkey(dbm, keystr)) {</div><div class='del'>-</div><div class='del'>-        rb_ary_push(ary, keystr);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.values -&gt; array</div><div class='del'>- *</div><div class='del'>- * Returns an array of all values of this database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_values(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, nextkey;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    VALUE valstr, ary;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    for (key = gdbm_firstkey(dbm); key.dptr; key = nextkey) {</div><div class='del'>-        nextkey = gdbm_nextkey(dbm, key);</div><div class='del'>-        valstr = rb_gdbm_fetch(dbm, key);</div><div class='del'>-        free(key.dptr);</div><div class='del'>-        rb_ary_push(ary, valstr);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.include?(k) -&gt; true or false</div><div class='del'>- *      gdbm.has_key?(k) -&gt; true or false</div><div class='del'>- *      gdbm.member?(k) -&gt; true or false</div><div class='del'>- *      gdbm.key?(k) -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns true if the given key _k_ exists within the database.</div><div class='del'>- * Returns false otherwise.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_has_key(VALUE obj, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    long len;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(keystr);</div><div class='del'>-    len = RSTRING_LENINT(keystr);</div><div class='del'>-    if (TOO_LONG(len)) return Qfalse;</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = (int)len;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    if (gdbm_exists(dbm, key))</div><div class='del'>-        return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.has_value?(v) -&gt; true or false</div><div class='del'>- *      gdbm.value?(v) -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns true if the given value _v_ exists within the database.</div><div class='del'>- * Returns false otherwise.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_has_value(VALUE obj, VALUE valstr)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    VALUE keystr, valstr2;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(valstr);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (keystr = rb_gdbm_firstkey(dbm); RTEST(keystr);</div><div class='del'>-         keystr = rb_gdbm_nextkey(dbm, keystr)) {</div><div class='del'>-</div><div class='del'>-        valstr2 = rb_gdbm_fetch2(dbm, keystr);</div><div class='del'>-</div><div class='del'>-        if (!NIL_P(valstr2) &amp;&amp;</div><div class='del'>-            (int)RSTRING_LEN(valstr) == (int)RSTRING_LEN(valstr2) &amp;&amp;</div><div class='del'>-            memcmp(RSTRING_PTR(valstr), RSTRING_PTR(valstr2),</div><div class='del'>-                   (int)RSTRING_LEN(valstr)) == 0) {</div><div class='del'>-            return Qtrue;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    return Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.to_a -&gt; array</div><div class='del'>- *</div><div class='del'>- * Returns an array of all key-value pairs contained in the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_to_a(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    VALUE keystr, ary;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    for (keystr = rb_gdbm_firstkey(dbm); RTEST(keystr);</div><div class='del'>-         keystr = rb_gdbm_nextkey(dbm, keystr)) {</div><div class='del'>-</div><div class='del'>-        rb_ary_push(ary, rb_assoc_new(keystr, rb_gdbm_fetch2(dbm, keystr)));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.reorganize -&gt; gdbm</div><div class='del'>- *</div><div class='del'>- * Reorganizes the database file. This operation removes reserved space of</div><div class='del'>- * elements that have already been deleted. It is only useful after a lot of</div><div class='del'>- * deletions in the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_reorganize(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-</div><div class='del'>-    rb_gdbm_modify(obj);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    gdbm_reorganize(dbm);</div><div class='del'>-    rb_fd_fix_cloexec(gdbm_fdesc(dbm));</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.sync -&gt; gdbm</div><div class='del'>- *</div><div class='del'>- * Unless the _gdbm_ object has been opened with the *SYNC* flag, it is not</div><div class='del'>- * guaranteed that database modification operations are immediately applied to</div><div class='del'>- * the database file. This method ensures that all recent modifications</div><div class='del'>- * to the database are written to the file. Blocks until all writing operations</div><div class='del'>- * to the disk have been finished.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_sync(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-</div><div class='del'>-    rb_gdbm_modify(obj);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    gdbm_sync(dbm);</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.cachesize = size -&gt; size</div><div class='del'>- *</div><div class='del'>- * Sets the size of the internal bucket cache to _size_.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_set_cachesize(VALUE obj, VALUE val)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    int optval;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    optval = FIX2INT(val);</div><div class='del'>-    if (gdbm_setopt(dbm, GDBM_CACHESIZE, &amp;optval, sizeof(optval)) == -1) {</div><div class='del'>-        rb_raise(rb_eGDBMError, "%s", gdbm_strerror(gdbm_errno));</div><div class='del'>-    }</div><div class='del'>-    return val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.fastmode = boolean -&gt; boolean</div><div class='del'>- *</div><div class='del'>- * Turns the database's fast mode on or off. If fast mode is turned on, gdbm</div><div class='del'>- * does not wait for writes to be flushed to the disk before continuing.</div><div class='del'>- *</div><div class='del'>- * This option is obsolete for gdbm &gt;= 1.8 since fast mode is turned on by</div><div class='del'>- * default. See also: #syncmode=</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_set_fastmode(VALUE obj, VALUE val)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    int optval;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    optval = 0;</div><div class='del'>-    if (RTEST(val))</div><div class='del'>-        optval = 1;</div><div class='del'>-</div><div class='del'>-    if (gdbm_setopt(dbm, GDBM_FASTMODE, &amp;optval, sizeof(optval)) == -1) {</div><div class='del'>-        rb_raise(rb_eGDBMError, "%s", gdbm_strerror(gdbm_errno));</div><div class='del'>-    }</div><div class='del'>-    return val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.syncmode = boolean -&gt; boolean</div><div class='del'>- *</div><div class='del'>- * Turns the database's synchronization mode on or off. If the synchronization</div><div class='del'>- * mode is turned on, the database's in-memory state will be synchronized to</div><div class='del'>- * disk after every database modification operation. If the synchronization</div><div class='del'>- * mode is turned off, GDBM does not wait for writes to be flushed to the disk</div><div class='del'>- * before continuing.</div><div class='del'>- *</div><div class='del'>- * This option is only available for gdbm &gt;= 1.8 where syncmode is turned off</div><div class='del'>- * by default. See also: #fastmode=</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_set_syncmode(VALUE obj, VALUE val)</div><div class='del'>-{</div><div class='del'>-#if !defined(GDBM_SYNCMODE)</div><div class='del'>-    fgdbm_set_fastmode(obj, RTEST(val) ? Qfalse : Qtrue);</div><div class='del'>-    return val;</div><div class='del'>-#else</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    int optval;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    optval = 0;</div><div class='del'>-    if (RTEST(val))</div><div class='del'>-        optval = 1;</div><div class='del'>-</div><div class='del'>-    if (gdbm_setopt(dbm, GDBM_FASTMODE, &amp;optval, sizeof(optval)) == -1) {</div><div class='del'>-        rb_raise(rb_eGDBMError, "%s", gdbm_strerror(gdbm_errno));</div><div class='del'>-    }</div><div class='del'>-    return val;</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *     gdbm.to_hash -&gt; hash</div><div class='del'>- *</div><div class='del'>- * Returns a hash of all key-value pairs contained in the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_to_hash(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    GDBM_FILE dbm;</div><div class='del'>-    VALUE keystr, hash;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    hash = rb_hash_new();</div><div class='del'>-    for (keystr = rb_gdbm_firstkey(dbm); RTEST(keystr);</div><div class='del'>-         keystr = rb_gdbm_nextkey(dbm, keystr)) {</div><div class='del'>-</div><div class='del'>-        rb_hash_aset(hash, keystr, rb_gdbm_fetch2(dbm, keystr));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return hash;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *      gdbm.reject { |key, value| block } -&gt; hash</div><div class='del'>- *</div><div class='del'>- * Returns a hash copy of _gdbm_ where all key-value pairs from _gdbm_ for</div><div class='del'>- * which _block_ evaluates to true are removed. See also: #delete_if</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fgdbm_reject(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    return rb_hash_delete_if(fgdbm_to_hash(obj));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-Init_gdbm(void)</div><div class='del'>-{</div><div class='del'>-    rb_cGDBM = rb_define_class("GDBM", rb_cObject);</div><div class='del'>-    rb_eGDBMError = rb_define_class("GDBMError", rb_eStandardError);</div><div class='del'>-    rb_eGDBMFatalError = rb_define_class("GDBMFatalError", rb_eException);</div><div class='del'>-    rb_include_module(rb_cGDBM, rb_mEnumerable);</div><div class='del'>-</div><div class='del'>-    rb_define_alloc_func(rb_cGDBM, fgdbm_s_alloc);</div><div class='del'>-    rb_define_singleton_method(rb_cGDBM, "open", fgdbm_s_open, -1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cGDBM, "initialize", fgdbm_initialize, -1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "close", fgdbm_close, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "closed?", fgdbm_closed, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "[]", fgdbm_aref, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "fetch", fgdbm_fetch_m, -1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "[]=", fgdbm_store, 2);</div><div class='del'>-    rb_define_method(rb_cGDBM, "store", fgdbm_store, 2);</div><div class='del'>-    rb_define_method(rb_cGDBM, "index",  fgdbm_index, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "key",  fgdbm_key, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "select",  fgdbm_select, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "values_at",  fgdbm_values_at, -1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "length", fgdbm_length, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "size", fgdbm_length, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "empty?", fgdbm_empty_p, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "each", fgdbm_each_pair, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "each_value", fgdbm_each_value, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "each_key", fgdbm_each_key, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "each_pair", fgdbm_each_pair, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "keys", fgdbm_keys, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "values", fgdbm_values, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "shift", fgdbm_shift, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "delete", fgdbm_delete, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "delete_if", fgdbm_delete_if, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "reject!", fgdbm_delete_if, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "reject", fgdbm_reject, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "clear", fgdbm_clear, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "invert", fgdbm_invert, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "update", fgdbm_update, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "replace", fgdbm_replace, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "reorganize", fgdbm_reorganize, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "sync", fgdbm_sync, 0);</div><div class='del'>-    /* rb_define_method(rb_cGDBM, "setopt", fgdbm_setopt, 2); */</div><div class='del'>-    rb_define_method(rb_cGDBM, "cachesize=", fgdbm_set_cachesize, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "fastmode=", fgdbm_set_fastmode, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "syncmode=", fgdbm_set_syncmode, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cGDBM, "include?", fgdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "has_key?", fgdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "member?", fgdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "has_value?", fgdbm_has_value, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "key?", fgdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cGDBM, "value?", fgdbm_has_value, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cGDBM, "to_a", fgdbm_to_a, 0);</div><div class='del'>-    rb_define_method(rb_cGDBM, "to_hash", fgdbm_to_hash, 0);</div><div class='del'>-</div><div class='del'>-    /* flag for #new and #open: open database as a reader */</div><div class='del'>-    rb_define_const(rb_cGDBM, "READER",  INT2FIX(GDBM_READER|RUBY_GDBM_RW_BIT));</div><div class='del'>-    /* flag for #new and #open: open database as a writer */</div><div class='del'>-    rb_define_const(rb_cGDBM, "WRITER",  INT2FIX(GDBM_WRITER|RUBY_GDBM_RW_BIT));</div><div class='del'>-    /* flag for #new and #open: open database as a writer; if the database does not exist, create a new one */</div><div class='del'>-    rb_define_const(rb_cGDBM, "WRCREAT", INT2FIX(GDBM_WRCREAT|RUBY_GDBM_RW_BIT));</div><div class='del'>-    /* flag for #new and #open: open database as a writer; overwrite any existing databases  */</div><div class='del'>-    rb_define_const(rb_cGDBM, "NEWDB",   INT2FIX(GDBM_NEWDB|RUBY_GDBM_RW_BIT));</div><div class='del'>-</div><div class='del'>-    /* flag for #new and #open. this flag is obsolete for gdbm &gt;= 1.8 */</div><div class='del'>-    rb_define_const(rb_cGDBM, "FAST", INT2FIX(GDBM_FAST));</div><div class='del'>-    /* this flag is obsolete in gdbm 1.8.</div><div class='del'>-       On gdbm 1.8, fast mode is default behavior. */</div><div class='del'>-</div><div class='del'>-    /* gdbm version 1.8 specific */</div><div class='del'>-#if defined(GDBM_SYNC)</div><div class='del'>-    /* flag for #new and #open. only for gdbm &gt;= 1.8 */</div><div class='del'>-    rb_define_const(rb_cGDBM, "SYNC",    INT2FIX(GDBM_SYNC));</div><div class='del'>-#endif</div><div class='del'>-#if defined(GDBM_NOLOCK)</div><div class='del'>-    /* flag for #new and #open */</div><div class='del'>-    rb_define_const(rb_cGDBM, "NOLOCK",  INT2FIX(GDBM_NOLOCK));</div><div class='del'>-#endif</div><div class='del'>-    /* version of the gdbm library*/</div><div class='del'>-    rb_define_const(rb_cGDBM, "VERSION",  rb_str_new2(gdbm_version));</div><div class='del'>-}</div><div class='head'>diff --git a/ext/gdbm/gdbm.gemspec b/ext/gdbm/gdbm.gemspec<br/>deleted file mode 100644<br/>index 849e289f9d..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/gdbm/gdbm.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/gdbm/gdbm.gemspec</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,26 +0,0 @@</div><div class='del'>-# coding: utf-8</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-Gem::Specification.new do |spec|</div><div class='del'>-  spec.name          = "gdbm"</div><div class='del'>-  spec.version       = "2.0.0"</div><div class='del'>-  spec.authors       = ["Yukihiro Matsumoto"]</div><div class='del'>-  spec.email         = ["matz@ruby-lang.org"]</div><div class='del'>-</div><div class='del'>-  spec.summary       = "Ruby extension for GNU dbm."</div><div class='del'>-  spec.description   = "Ruby extension for GNU dbm."</div><div class='del'>-  spec.homepage      = "https://github.com/ruby/gdbm"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='del'>-</div><div class='del'>-  spec.files         = ["ext/gdbm/extconf.rb", "ext/gdbm/gdbm.c"]</div><div class='del'>-  spec.bindir        = "exe"</div><div class='del'>-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='del'>-  spec.require_paths = ["lib"]</div><div class='del'>-  spec.extensions    = ["ext/gdbm/extconf.rb"]</div><div class='del'>-  spec.required_ruby_version = "&gt;= 2.3.0"</div><div class='del'>-</div><div class='del'>-  spec.add_development_dependency "bundler", "~&gt; 1.14"</div><div class='del'>-  spec.add_development_dependency "rake", "~&gt; 10.0"</div><div class='del'>-  spec.add_development_dependency "rake-compiler"</div><div class='del'>-  spec.add_development_dependency "test-unit"</div><div class='del'>-end</div><div class='head'>diff --git a/ext/io/console/console.c b/ext/io/console/console.c<br/>index 54ff34492e..21454a73fa 100644<br/>--- a/<a href='/ruby.git/tree/ext/io/console/console.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/console.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/io/console/console.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/console/console.c</a></div><div class='hunk'>@@ -1,9 +1,10 @@</div><div class='del'>-/* -*- c-file-style: "ruby" -*- */</div><div class='add'>+/* -*- c-file-style: "ruby"; indent-tabs-mode: t -*- */</div><div class='ctx'> /*</div><div class='ctx'>  * console IO module</div><div class='ctx'>  */</div><div class='ctx'> #include "ruby.h"</div><div class='ctx'> #include "ruby/io.h"</div><div class='add'>+#include "ruby/thread.h"</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_UNISTD_H</div><div class='ctx'> #include &lt;unistd.h&gt;</div><div class='hunk'>@@ -22,7 +23,7 @@ typedef struct termios conmode;</div><div class='ctx'> static int</div><div class='ctx'> setattr(int fd, conmode *t)</div><div class='ctx'> {</div><div class='del'>-    while (tcsetattr(fd, TCSAFLUSH, t)) {</div><div class='add'>+    while (tcsetattr(fd, TCSANOW, t)) {</div><div class='ctx'> 	if (errno != EINTR) return 0;</div><div class='ctx'>     }</div><div class='ctx'>     return 1;</div><div class='hunk'>@@ -48,6 +49,7 @@ typedef struct sgttyb conmode;</div><div class='ctx'> # endif</div><div class='ctx'> #elif defined _WIN32</div><div class='ctx'> #include &lt;winioctl.h&gt;</div><div class='add'>+#include &lt;conio.h&gt;</div><div class='ctx'> typedef DWORD conmode;</div><div class='ctx'> </div><div class='ctx'> #define LAST_ERROR rb_w32_map_errno(GetLastError())</div><div class='hunk'>@@ -73,12 +75,25 @@ getattr(int fd, conmode *t)</div><div class='ctx'> #define SET_LAST_ERROR (0)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-static ID id_getc, id_console, id_close, id_min, id_time;</div><div class='add'>+static ID id_getc, id_console, id_close;</div><div class='ctx'> #if ENABLE_IO_GETPASS</div><div class='del'>-static ID id_gets;</div><div class='add'>+static ID id_gets, id_chomp_bang;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#if defined HAVE_RUBY_FIBER_SCHEDULER_H</div><div class='add'>+# include "ruby/fiber/scheduler.h"</div><div class='add'>+#elif defined HAVE_RB_SCHEDULER_TIMEOUT</div><div class='add'>+extern VALUE rb_scheduler_timeout(struct timeval *timeout);</div><div class='add'>+# define rb_fiber_scheduler_make_timeout rb_scheduler_timeout</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define sys_fail_fptr(fptr) rb_sys_fail_str((fptr)-&gt;pathv)</div><div class='add'>+</div><div class='ctx'> #ifndef HAVE_RB_F_SEND</div><div class='add'>+#ifndef RB_PASS_CALLED_KEYWORDS</div><div class='add'>+# define rb_funcallv_kw(recv, mid, arg, argv, kw_splat) rb_funcallv(recv, mid, arg, argv)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static ID id___send__;</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -93,37 +108,87 @@ rb_f_send(int argc, VALUE *argv, VALUE recv)</div><div class='ctx'>     else {</div><div class='ctx'> 	vid = id___send__;</div><div class='ctx'>     }</div><div class='del'>-    return rb_funcallv(recv, vid, argc, argv);</div><div class='add'>+    return rb_funcallv_kw(recv, vid, argc, argv, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+enum rawmode_opt_ids {</div><div class='add'>+    kwd_min,</div><div class='add'>+    kwd_time,</div><div class='add'>+    kwd_intr,</div><div class='add'>+    rawmode_opt_id_count</div><div class='add'>+};</div><div class='add'>+static ID rawmode_opt_ids[rawmode_opt_id_count];</div><div class='add'>+</div><div class='ctx'> typedef struct {</div><div class='ctx'>     int vmin;</div><div class='ctx'>     int vtime;</div><div class='add'>+    int intr;</div><div class='ctx'> } rawmode_arg_t;</div><div class='ctx'> </div><div class='add'>+#ifndef UNDEF_P</div><div class='add'>+# define UNDEF_P(obj) ((obj) == Qundef)</div><div class='add'>+#endif</div><div class='add'>+#ifndef NIL_OR_UNDEF_P</div><div class='add'>+# define NIL_OR_UNDEF_P(obj) (NIL_P(obj) || UNDEF_P(obj))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static rawmode_arg_t *</div><div class='del'>-rawmode_opt(int argc, VALUE *argv, rawmode_arg_t *opts)</div><div class='add'>+rawmode_opt(int *argcp, VALUE *argv, int min_argc, int max_argc, rawmode_arg_t *opts)</div><div class='ctx'> {</div><div class='add'>+    int argc = *argcp;</div><div class='ctx'>     rawmode_arg_t *optp = NULL;</div><div class='del'>-    VALUE vopts;</div><div class='del'>-    rb_scan_args(argc, argv, "0:", &amp;vopts);</div><div class='del'>-    if (!NIL_P(vopts)) {</div><div class='del'>-	VALUE vmin = rb_hash_aref(vopts, ID2SYM(id_min));</div><div class='del'>-	VALUE vtime = rb_hash_aref(vopts, ID2SYM(id_time));</div><div class='add'>+    VALUE vopts = Qnil;</div><div class='add'>+    VALUE optvals[rawmode_opt_id_count];</div><div class='add'>+#ifdef RB_SCAN_ARGS_PASS_CALLED_KEYWORDS</div><div class='add'>+    argc = rb_scan_args(argc, argv, "*:", NULL, &amp;vopts);</div><div class='add'>+#else</div><div class='add'>+    if (argc &gt; min_argc)  {</div><div class='add'>+	vopts = rb_check_hash_type(argv[argc-1]);</div><div class='add'>+	if (!NIL_P(vopts)) {</div><div class='add'>+	    argv[argc-1] = vopts;</div><div class='add'>+	    vopts = rb_extract_keywords(&amp;argv[argc-1]);</div><div class='add'>+	    if (!argv[argc-1]) *argcp = --argc;</div><div class='add'>+	    if (!vopts) vopts = Qnil;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    rb_check_arity(argc, min_argc, max_argc);</div><div class='add'>+    if (rb_get_kwargs(vopts, rawmode_opt_ids,</div><div class='add'>+		      0, rawmode_opt_id_count, optvals)) {</div><div class='add'>+	VALUE vmin = optvals[kwd_min];</div><div class='add'>+	VALUE vtime = optvals[kwd_time];</div><div class='add'>+	VALUE intr = optvals[kwd_intr];</div><div class='ctx'> 	/* default values by `stty raw` */</div><div class='ctx'> 	opts-&gt;vmin = 1;</div><div class='ctx'> 	opts-&gt;vtime = 0;</div><div class='del'>-	if (!NIL_P(vmin)) {</div><div class='add'>+	opts-&gt;intr = 0;</div><div class='add'>+	if (!NIL_OR_UNDEF_P(vmin)) {</div><div class='ctx'> 	    opts-&gt;vmin = NUM2INT(vmin);</div><div class='ctx'> 	    optp = opts;</div><div class='ctx'> 	}</div><div class='del'>-	if (!NIL_P(vtime)) {</div><div class='add'>+	if (!NIL_OR_UNDEF_P(vtime)) {</div><div class='ctx'> 	    VALUE v10 = INT2FIX(10);</div><div class='ctx'> 	    vtime = rb_funcall3(vtime, '*', 1, &amp;v10);</div><div class='ctx'> 	    opts-&gt;vtime = NUM2INT(vtime);</div><div class='ctx'> 	    optp = opts;</div><div class='ctx'> 	}</div><div class='add'>+	switch (intr) {</div><div class='add'>+	  case Qtrue:</div><div class='add'>+	    opts-&gt;intr = 1;</div><div class='add'>+	    optp = opts;</div><div class='add'>+	    break;</div><div class='add'>+	  case Qfalse:</div><div class='add'>+	    opts-&gt;intr = 0;</div><div class='add'>+	    optp = opts;</div><div class='add'>+	    break;</div><div class='add'>+	  case Qundef:</div><div class='add'>+	  case Qnil:</div><div class='add'>+	    break;</div><div class='add'>+	  default:</div><div class='add'>+	    rb_raise(rb_eArgError, "true or false expected as intr: %"PRIsVALUE,</div><div class='add'>+		     intr);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='ctx'>     return optp;</div><div class='ctx'> }</div><div class='hunk'>@@ -135,24 +200,36 @@ set_rawmode(conmode *t, void *arg)</div><div class='ctx'>     cfmakeraw(t);</div><div class='ctx'>     t-&gt;c_lflag &amp;= ~(ECHOE|ECHOK);</div><div class='ctx'> #elif defined HAVE_TERMIOS_H || defined HAVE_TERMIO_H</div><div class='del'>-    t-&gt;c_iflag &amp;= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);</div><div class='add'>+    t-&gt;c_iflag &amp;= ~(IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK|ISTRIP|INLCR|IGNCR|ICRNL|IXON|IXOFF|IXANY|IMAXBEL);</div><div class='ctx'>     t-&gt;c_oflag &amp;= ~OPOST;</div><div class='del'>-    t-&gt;c_lflag &amp;= ~(ECHO|ECHOE|ECHOK|ECHONL|ICANON|ISIG|IEXTEN);</div><div class='add'>+    t-&gt;c_lflag &amp;= ~(ECHO|ECHOE|ECHOK|ECHONL|ICANON|ISIG|IEXTEN|XCASE);</div><div class='ctx'>     t-&gt;c_cflag &amp;= ~(CSIZE|PARENB);</div><div class='ctx'>     t-&gt;c_cflag |= CS8;</div><div class='add'>+    t-&gt;c_cc[VMIN] = 1;</div><div class='add'>+    t-&gt;c_cc[VTIME] = 0;</div><div class='ctx'> #elif defined HAVE_SGTTY_H</div><div class='ctx'>     t-&gt;sg_flags &amp;= ~ECHO;</div><div class='ctx'>     t-&gt;sg_flags |= RAW;</div><div class='ctx'> #elif defined _WIN32</div><div class='ctx'>     *t = 0;</div><div class='ctx'> #endif</div><div class='del'>-#if defined HAVE_TERMIOS_H || defined HAVE_TERMIO_H</div><div class='ctx'>     if (arg) {</div><div class='ctx'> 	const rawmode_arg_t *r = arg;</div><div class='add'>+#ifdef VMIN</div><div class='ctx'> 	if (r-&gt;vmin &gt;= 0) t-&gt;c_cc[VMIN] = r-&gt;vmin;</div><div class='add'>+#endif</div><div class='add'>+#ifdef VTIME</div><div class='ctx'> 	if (r-&gt;vtime &gt;= 0) t-&gt;c_cc[VTIME] = r-&gt;vtime;</div><div class='del'>-    }</div><div class='ctx'> #endif</div><div class='add'>+#ifdef ISIG</div><div class='add'>+	if (r-&gt;intr) {</div><div class='add'>+	    t-&gt;c_iflag |= BRKINT;</div><div class='add'>+	    t-&gt;c_lflag |= ISIG;</div><div class='add'>+	    t-&gt;c_oflag |= OPOST;</div><div class='add'>+	}</div><div class='add'>+#endif</div><div class='add'>+	(void)r;</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -232,7 +309,7 @@ get_write_fd(const rb_io_t *fptr)</div><div class='ctx'> #define FD_PER_IO 2</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ttymode(VALUE io, VALUE (*func)(VALUE), void (*setter)(conmode *, void *), void *arg)</div><div class='add'>+ttymode(VALUE io, VALUE (*func)(VALUE), VALUE farg, void (*setter)(conmode *, void *), void *arg)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     int status = -1;</div><div class='hunk'>@@ -263,7 +340,7 @@ ttymode(VALUE io, VALUE (*func)(VALUE), void (*setter)(conmode *, void *), void</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     if (status == 0) {</div><div class='del'>-	result = rb_protect(func, io, &amp;status);</div><div class='add'>+	result = rb_protect(func, farg, &amp;status);</div><div class='ctx'>     }</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     if (fd[0] != -1 &amp;&amp; fd[0] == GetReadFD(fptr)) {</div><div class='hunk'>@@ -287,11 +364,36 @@ ttymode(VALUE io, VALUE (*func)(VALUE), void (*setter)(conmode *, void *), void</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if !defined _WIN32</div><div class='add'>+struct ttymode_callback_args {</div><div class='add'>+    VALUE (*func)(VALUE, VALUE);</div><div class='add'>+    VALUE io;</div><div class='add'>+    VALUE farg;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ttymode_callback(VALUE args)</div><div class='add'>+{</div><div class='add'>+    struct ttymode_callback_args *argp = (struct ttymode_callback_args *)args;</div><div class='add'>+    return argp-&gt;func(argp-&gt;io, argp-&gt;farg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ttymode_with_io(VALUE io, VALUE (*func)(VALUE, VALUE), VALUE farg, void (*setter)(conmode *, void *), void *arg)</div><div class='add'>+{</div><div class='add'>+    struct ttymode_callback_args cargs;</div><div class='add'>+    cargs.func = func;</div><div class='add'>+    cargs.io = io;</div><div class='add'>+    cargs.farg = farg;</div><div class='add'>+    return ttymode(io, ttymode_callback, (VALUE)&amp;cargs, setter, arg);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   io.raw(min: nil, time: nil) {|io| }</div><div class='add'>+ *   io.raw(min: nil, time: nil, intr: nil) {|io| }</div><div class='ctx'>  *</div><div class='del'>- * Yields +self+ within raw mode.</div><div class='add'>+ * Yields +self+ within raw mode, and returns the result of the block.</div><div class='ctx'>  *</div><div class='ctx'>  *   STDIN.raw(&amp;:gets)</div><div class='ctx'>  *</div><div class='hunk'>@@ -303,6 +405,9 @@ ttymode(VALUE io, VALUE (*func)(VALUE), void (*setter)(conmode *, void *), void</div><div class='ctx'>  * The parameter +time+ specifies the timeout in _seconds_ with a</div><div class='ctx'>  * precision of 1/10 of a second. (default: 0)</div><div class='ctx'>  *</div><div class='add'>+ * If the parameter +intr+ is +true+, enables break, interrupt, quit,</div><div class='add'>+ * and suspend special characters.</div><div class='add'>+ *</div><div class='ctx'>  * Refer to the manual page of termios for further details.</div><div class='ctx'>  *</div><div class='ctx'>  * You must require 'io/console' to use this method.</div><div class='hunk'>@@ -310,17 +415,17 @@ ttymode(VALUE io, VALUE (*func)(VALUE), void (*setter)(conmode *, void *), void</div><div class='ctx'> static VALUE</div><div class='ctx'> console_raw(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> {</div><div class='del'>-    rawmode_arg_t opts, *optp = rawmode_opt(argc, argv, &amp;opts);</div><div class='del'>-    return ttymode(io, rb_yield, set_rawmode, optp);</div><div class='add'>+    rawmode_arg_t opts, *optp = rawmode_opt(&amp;argc, argv, 0, 0, &amp;opts);</div><div class='add'>+    return ttymode(io, rb_yield, io, set_rawmode, optp);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   io.raw!(min: nil, time: nil)</div><div class='add'>+ *   io.raw!(min: nil, time: nil, intr: nil) -&gt; io</div><div class='ctx'>  *</div><div class='del'>- * Enables raw mode.</div><div class='add'>+ * Enables raw mode, and returns +io+.</div><div class='ctx'>  *</div><div class='del'>- * If the terminal mode needs to be back, use io.raw { ... }.</div><div class='add'>+ * If the terminal mode needs to be back, use &lt;code&gt;io.raw { ... }&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='ctx'>  * See IO#raw for details on the parameters.</div><div class='ctx'>  *</div><div class='hunk'>@@ -332,13 +437,13 @@ console_set_raw(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     conmode t;</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     int fd;</div><div class='del'>-    rawmode_arg_t opts, *optp = rawmode_opt(argc, argv, &amp;opts);</div><div class='add'>+    rawmode_arg_t opts, *optp = rawmode_opt(&amp;argc, argv, 0, 0, &amp;opts);</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     fd = GetReadFD(fptr);</div><div class='del'>-    if (!getattr(fd, &amp;t)) rb_sys_fail(0);</div><div class='add'>+    if (!getattr(fd, &amp;t)) sys_fail_fptr(fptr);</div><div class='ctx'>     set_rawmode(&amp;t, optp);</div><div class='del'>-    if (!setattr(fd, &amp;t)) rb_sys_fail(0);</div><div class='add'>+    if (!setattr(fd, &amp;t)) sys_fail_fptr(fptr);</div><div class='ctx'>     return io;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -357,7 +462,7 @@ console_set_raw(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> static VALUE</div><div class='ctx'> console_cooked(VALUE io)</div><div class='ctx'> {</div><div class='del'>-    return ttymode(io, rb_yield, set_cookedmode, NULL);</div><div class='add'>+    return ttymode(io, rb_yield, io, set_cookedmode, NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -379,21 +484,44 @@ console_set_cooked(VALUE io)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     fd = GetReadFD(fptr);</div><div class='del'>-    if (!getattr(fd, &amp;t)) rb_sys_fail(0);</div><div class='add'>+    if (!getattr(fd, &amp;t)) sys_fail_fptr(fptr);</div><div class='ctx'>     set_cookedmode(&amp;t, NULL);</div><div class='del'>-    if (!setattr(fd, &amp;t)) rb_sys_fail(0);</div><div class='add'>+    if (!setattr(fd, &amp;t)) sys_fail_fptr(fptr);</div><div class='ctx'>     return io;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifndef _WIN32</div><div class='ctx'> static VALUE</div><div class='ctx'> getc_call(VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     return rb_funcallv(io, id_getc, 0, 0);</div><div class='ctx'> }</div><div class='add'>+#else</div><div class='add'>+static void *</div><div class='add'>+nogvl_getch(void *p)</div><div class='add'>+{</div><div class='add'>+    int len = 0;</div><div class='add'>+    wint_t *buf = p, c = _getwch();</div><div class='add'>+</div><div class='add'>+    switch (c) {</div><div class='add'>+      case WEOF:</div><div class='add'>+	break;</div><div class='add'>+      case 0x00:</div><div class='add'>+      case 0xe0:</div><div class='add'>+	buf[len++] = c;</div><div class='add'>+	c = _getwch();</div><div class='add'>+	/* fall through */</div><div class='add'>+      default:</div><div class='add'>+	buf[len++] = c;</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+    return (void *)(VALUE)len;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   io.getch(min: nil, time: nil)       -&gt; char</div><div class='add'>+ *   io.getch(min: nil, time: nil, intr: nil) -&gt; char</div><div class='ctx'>  *</div><div class='ctx'>  * Reads and returns a character in raw mode.</div><div class='ctx'>  *</div><div class='hunk'>@@ -404,8 +532,78 @@ getc_call(VALUE io)</div><div class='ctx'> static VALUE</div><div class='ctx'> console_getch(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> {</div><div class='del'>-    rawmode_arg_t opts, *optp = rawmode_opt(argc, argv, &amp;opts);</div><div class='del'>-    return ttymode(io, getc_call, set_rawmode, optp);</div><div class='add'>+    rawmode_arg_t opts, *optp = rawmode_opt(&amp;argc, argv, 0, 0, &amp;opts);</div><div class='add'>+#ifndef _WIN32</div><div class='add'>+    return ttymode(io, getc_call, io, set_rawmode, optp);</div><div class='add'>+#else</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    VALUE str;</div><div class='add'>+    wint_t c;</div><div class='add'>+    int len;</div><div class='add'>+    char buf[8];</div><div class='add'>+    wint_t wbuf[2];</div><div class='add'>+# ifndef HAVE_RB_IO_WAIT</div><div class='add'>+    struct timeval *to = NULL, tv;</div><div class='add'>+# else</div><div class='add'>+    VALUE timeout = Qnil;</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+    GetOpenFile(io, fptr);</div><div class='add'>+    if (optp) {</div><div class='add'>+	if (optp-&gt;vtime) {</div><div class='add'>+# ifndef HAVE_RB_IO_WAIT</div><div class='add'>+	    to = &amp;tv;</div><div class='add'>+# else</div><div class='add'>+	    struct timeval tv;</div><div class='add'>+# endif</div><div class='add'>+	    tv.tv_sec = optp-&gt;vtime / 10;</div><div class='add'>+	    tv.tv_usec = (optp-&gt;vtime % 10) * 100000;</div><div class='add'>+# ifdef HAVE_RB_IO_WAIT</div><div class='add'>+	    timeout = rb_fiber_scheduler_make_timeout(&amp;tv);</div><div class='add'>+# endif</div><div class='add'>+	}</div><div class='add'>+	switch (optp-&gt;vmin) {</div><div class='add'>+	  case 1: /* default */</div><div class='add'>+	    break;</div><div class='add'>+	  case 0: /* return nil when timed out */</div><div class='add'>+	    if (optp-&gt;vtime) break;</div><div class='add'>+	    /* fallthru */</div><div class='add'>+	  default:</div><div class='add'>+	    rb_warning("min option larger than 1 ignored");</div><div class='add'>+	}</div><div class='add'>+	if (optp-&gt;intr) {</div><div class='add'>+# ifndef HAVE_RB_IO_WAIT</div><div class='add'>+	    int w = rb_wait_for_single_fd(fptr-&gt;fd, RB_WAITFD_IN, to);</div><div class='add'>+	    if (w &lt; 0) rb_eof_error();</div><div class='add'>+	    if (!(w &amp; RB_WAITFD_IN)) return Qnil;</div><div class='add'>+# else</div><div class='add'>+	    VALUE result = rb_io_wait(io, RB_INT2NUM(RUBY_IO_READABLE), timeout);</div><div class='add'>+	    if (!RTEST(result)) return Qnil;</div><div class='add'>+# endif</div><div class='add'>+	}</div><div class='add'>+	else if (optp-&gt;vtime) {</div><div class='add'>+	    rb_warning("Non-zero vtime option ignored if intr flag is unset");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    len = (int)(VALUE)rb_thread_call_without_gvl(nogvl_getch, wbuf, RUBY_UBF_IO, 0);</div><div class='add'>+    switch (len) {</div><div class='add'>+      case 0:</div><div class='add'>+	return Qnil;</div><div class='add'>+      case 2:</div><div class='add'>+	buf[0] = (char)wbuf[0];</div><div class='add'>+	c = wbuf[1];</div><div class='add'>+	len = 1;</div><div class='add'>+	do {</div><div class='add'>+	    buf[len++] = (unsigned char)c;</div><div class='add'>+	} while ((c &gt;&gt;= CHAR_BIT) &amp;&amp; len &lt; (int)sizeof(buf));</div><div class='add'>+	return rb_str_new(buf, len);</div><div class='add'>+      default:</div><div class='add'>+	c = wbuf[0];</div><div class='add'>+	len = rb_uv_to_utf8(buf, c);</div><div class='add'>+	str = rb_utf8_str_new(buf, len);</div><div class='add'>+	return rb_str_conv_enc(str, NULL, rb_default_external_encoding());</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -423,7 +621,7 @@ console_getch(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> static VALUE</div><div class='ctx'> console_noecho(VALUE io)</div><div class='ctx'> {</div><div class='del'>-    return ttymode(io, rb_yield, set_noecho, NULL);</div><div class='add'>+    return ttymode(io, rb_yield, io, set_noecho, NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -445,12 +643,12 @@ console_set_echo(VALUE io, VALUE f)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     fd = GetReadFD(fptr);</div><div class='del'>-    if (!getattr(fd, &amp;t)) rb_sys_fail(0);</div><div class='add'>+    if (!getattr(fd, &amp;t)) sys_fail_fptr(fptr);</div><div class='ctx'>     if (RTEST(f))</div><div class='ctx'> 	set_echo(&amp;t, NULL);</div><div class='ctx'>     else</div><div class='ctx'> 	set_noecho(&amp;t, NULL);</div><div class='del'>-    if (!setattr(fd, &amp;t)) rb_sys_fail(0);</div><div class='add'>+    if (!setattr(fd, &amp;t)) sys_fail_fptr(fptr);</div><div class='ctx'>     return io;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -471,10 +669,119 @@ console_echo_p(VALUE io)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     fd = GetReadFD(fptr);</div><div class='del'>-    if (!getattr(fd, &amp;t)) rb_sys_fail(0);</div><div class='add'>+    if (!getattr(fd, &amp;t)) sys_fail_fptr(fptr);</div><div class='ctx'>     return echo_p(&amp;t) ? Qtrue : Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const rb_data_type_t conmode_type = {</div><div class='add'>+    "console-mode",</div><div class='add'>+    {0, RUBY_TYPED_DEFAULT_FREE,},</div><div class='add'>+    0, 0,</div><div class='add'>+    RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED,</div><div class='add'>+};</div><div class='add'>+static VALUE cConmode;</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+conmode_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return rb_data_typed_object_zalloc(klass, sizeof(conmode), &amp;conmode_type);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+conmode_new(VALUE klass, const conmode *t)</div><div class='add'>+{</div><div class='add'>+    VALUE obj = conmode_alloc(klass);</div><div class='add'>+    *(conmode *)DATA_PTR(obj) = *t;</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+conmode_init_copy(VALUE obj, VALUE obj2)</div><div class='add'>+{</div><div class='add'>+    conmode *t = rb_check_typeddata(obj, &amp;conmode_type);</div><div class='add'>+    conmode *t2 = rb_check_typeddata(obj2, &amp;conmode_type);</div><div class='add'>+    *t = *t2;</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+conmode_set_echo(VALUE obj, VALUE f)</div><div class='add'>+{</div><div class='add'>+    conmode *t = rb_check_typeddata(obj, &amp;conmode_type);</div><div class='add'>+    if (RTEST(f))</div><div class='add'>+	set_echo(t, NULL);</div><div class='add'>+    else</div><div class='add'>+	set_noecho(t, NULL);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+conmode_set_raw(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    conmode *t = rb_check_typeddata(obj, &amp;conmode_type);</div><div class='add'>+    rawmode_arg_t opts, *optp = rawmode_opt(&amp;argc, argv, 0, 0, &amp;opts);</div><div class='add'>+</div><div class='add'>+    set_rawmode(t, optp);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+conmode_raw_new(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    conmode *r = rb_check_typeddata(obj, &amp;conmode_type);</div><div class='add'>+    conmode t = *r;</div><div class='add'>+    rawmode_arg_t opts, *optp = rawmode_opt(&amp;argc, argv, 0, 0, &amp;opts);</div><div class='add'>+</div><div class='add'>+    set_rawmode(&amp;t, optp);</div><div class='add'>+    return conmode_new(rb_obj_class(obj), &amp;t);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   io.console_mode       -&gt; mode</div><div class='add'>+ *</div><div class='add'>+ * Returns a data represents the current console mode.</div><div class='add'>+ *</div><div class='add'>+ * You must require 'io/console' to use this method.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+console_conmode_get(VALUE io)</div><div class='add'>+{</div><div class='add'>+    conmode t;</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    int fd;</div><div class='add'>+</div><div class='add'>+    GetOpenFile(io, fptr);</div><div class='add'>+    fd = GetReadFD(fptr);</div><div class='add'>+    if (!getattr(fd, &amp;t)) sys_fail_fptr(fptr);</div><div class='add'>+</div><div class='add'>+    return conmode_new(cConmode, &amp;t);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   io.console_mode = mode</div><div class='add'>+ *</div><div class='add'>+ * Sets the console mode to +mode+.</div><div class='add'>+ *</div><div class='add'>+ * You must require 'io/console' to use this method.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+console_conmode_set(VALUE io, VALUE mode)</div><div class='add'>+{</div><div class='add'>+    conmode *t, r;</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    int fd;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(mode, conmode, &amp;conmode_type, t);</div><div class='add'>+    r = *t;</div><div class='add'>+    GetOpenFile(io, fptr);</div><div class='add'>+    fd = GetReadFD(fptr);</div><div class='add'>+    if (!setattr(fd, &amp;r)) sys_fail_fptr(fptr);</div><div class='add'>+</div><div class='add'>+    return mode;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #if defined TIOCGWINSZ</div><div class='ctx'> typedef struct winsize rb_console_size_t;</div><div class='ctx'> #define getwinsize(fd, buf) (ioctl((fd), TIOCGWINSZ, (buf)) == 0)</div><div class='hunk'>@@ -512,7 +819,7 @@ console_winsize(VALUE io)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     fd = GetWriteFD(fptr);</div><div class='del'>-    if (!getwinsize(fd, &amp;ws)) rb_sys_fail(0);</div><div class='add'>+    if (!getwinsize(fd, &amp;ws)) sys_fail_fptr(fptr);</div><div class='ctx'>     return rb_assoc_new(INT2NUM(winsize_row(&amp;ws)), INT2NUM(winsize_col(&amp;ws)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -559,7 +866,7 @@ console_set_winsize(VALUE io, VALUE size)</div><div class='ctx'>     SET(xpixel);</div><div class='ctx'>     SET(ypixel);</div><div class='ctx'> #undef SET</div><div class='del'>-    if (!setwinsize(fd, &amp;ws)) rb_sys_fail(0);</div><div class='add'>+    if (!setwinsize(fd, &amp;ws)) sys_fail_fptr(fptr);</div><div class='ctx'> #elif defined _WIN32</div><div class='ctx'>     wh = (HANDLE)rb_w32_get_osfhandle(fd);</div><div class='ctx'> #define SET(m) new##m = NIL_P(m) ? 0 : (unsigned short)NUM2UINT(m)</div><div class='hunk'>@@ -593,6 +900,30 @@ console_set_winsize(VALUE io, VALUE size)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifdef _WIN32</div><div class='add'>+static VALUE</div><div class='add'>+console_check_winsize_changed(VALUE io)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    HANDLE h;</div><div class='add'>+    DWORD num;</div><div class='add'>+</div><div class='add'>+    GetOpenFile(io, fptr);</div><div class='add'>+    h = (HANDLE)rb_w32_get_osfhandle(GetReadFD(fptr));</div><div class='add'>+    while (GetNumberOfConsoleInputEvents(h, &amp;num) &amp;&amp; num &gt; 0) {</div><div class='add'>+	INPUT_RECORD rec;</div><div class='add'>+	if (ReadConsoleInput(h, &amp;rec, 1, &amp;num)) {</div><div class='add'>+	    if (rec.EventType == WINDOW_BUFFER_SIZE_EVENT) {</div><div class='add'>+		rb_yield(Qnil);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+#define console_check_winsize_changed rb_f_notimplement</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   io.iflush</div><div class='hunk'>@@ -610,7 +941,7 @@ console_iflush(VALUE io)</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     fd = GetReadFD(fptr);</div><div class='ctx'> #if defined HAVE_TERMIOS_H || defined HAVE_TERMIO_H</div><div class='del'>-    if (tcflush(fd, TCIFLUSH)) rb_sys_fail(0);</div><div class='add'>+    if (tcflush(fd, TCIFLUSH)) sys_fail_fptr(fptr);</div><div class='ctx'> #endif</div><div class='ctx'>     (void)fd;</div><div class='ctx'>     return io;</div><div class='hunk'>@@ -633,7 +964,7 @@ console_oflush(VALUE io)</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     fd = GetWriteFD(fptr);</div><div class='ctx'> #if defined HAVE_TERMIOS_H || defined HAVE_TERMIO_H</div><div class='del'>-    if (tcflush(fd, TCOFLUSH)) rb_sys_fail(0);</div><div class='add'>+    if (tcflush(fd, TCOFLUSH)) sys_fail_fptr(fptr);</div><div class='ctx'> #endif</div><div class='ctx'>     (void)fd;</div><div class='ctx'>     return io;</div><div class='hunk'>@@ -660,11 +991,11 @@ console_ioflush(VALUE io)</div><div class='ctx'>     fd1 = GetReadFD(fptr);</div><div class='ctx'>     fd2 = GetWriteFD(fptr);</div><div class='ctx'>     if (fd2 != -1 &amp;&amp; fd1 != fd2) {</div><div class='del'>-	if (tcflush(fd1, TCIFLUSH)) rb_sys_fail(0);</div><div class='del'>-	if (tcflush(fd2, TCOFLUSH)) rb_sys_fail(0);</div><div class='add'>+	if (tcflush(fd1, TCIFLUSH)) sys_fail_fptr(fptr);</div><div class='add'>+	if (tcflush(fd2, TCOFLUSH)) sys_fail_fptr(fptr);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (tcflush(fd1, TCIOFLUSH)) rb_sys_fail(0);</div><div class='add'>+	if (tcflush(fd1, TCIOFLUSH)) sys_fail_fptr(fptr);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return io;</div><div class='hunk'>@@ -683,14 +1014,29 @@ console_beep(VALUE io)</div><div class='ctx'>     MessageBeep(0);</div><div class='ctx'> #else</div><div class='ctx'>     if (write(fd, "\a", 1) &lt; 0)</div><div class='del'>-	rb_sys_fail(0);</div><div class='add'>+	sys_fail_fptr(fptr);</div><div class='ctx'> #endif</div><div class='ctx'>     return io;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+mode_in_range(VALUE val, int high, const char *modename)</div><div class='add'>+{</div><div class='add'>+    int mode;</div><div class='add'>+    if (NIL_P(val)) return 0;</div><div class='add'>+    if (!RB_INTEGER_TYPE_P(val)) {</div><div class='add'>+      wrong_value:</div><div class='add'>+	rb_raise(rb_eArgError, "wrong %s mode: %"PRIsVALUE, modename, val);</div><div class='add'>+    }</div><div class='add'>+    if ((mode = NUM2INT(val)) &lt; 0 || mode &gt; high) {</div><div class='add'>+	goto wrong_value;</div><div class='add'>+    }</div><div class='add'>+    return mode;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #if defined _WIN32</div><div class='ctx'> static VALUE</div><div class='del'>-console_goto(VALUE io, VALUE x, VALUE y)</div><div class='add'>+console_goto(VALUE io, VALUE y, VALUE x)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     int fd;</div><div class='hunk'>@@ -718,15 +1064,159 @@ console_cursor_pos(VALUE io)</div><div class='ctx'>     if (!GetConsoleScreenBufferInfo((HANDLE)rb_w32_get_osfhandle(fd), &amp;ws)) {</div><div class='ctx'> 	rb_syserr_fail(LAST_ERROR, 0);</div><div class='ctx'>     }</div><div class='del'>-    return rb_assoc_new(UINT2NUM(ws.dwCursorPosition.X), UINT2NUM(ws.dwCursorPosition.Y));</div><div class='add'>+    return rb_assoc_new(UINT2NUM(ws.dwCursorPosition.Y), UINT2NUM(ws.dwCursorPosition.X));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-console_cursor_set(VALUE io, VALUE cpos)</div><div class='add'>+console_move(VALUE io, int y, int x)</div><div class='ctx'> {</div><div class='del'>-    cpos = rb_convert_type(cpos, T_ARRAY, "Array", "to_ary");</div><div class='del'>-    if (RARRAY_LEN(cpos) != 2) rb_raise(rb_eArgError, "expected 2D coordinate");</div><div class='del'>-    return console_goto(io, RARRAY_AREF(cpos, 0), RARRAY_AREF(cpos, 1));</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    HANDLE h;</div><div class='add'>+    rb_console_size_t ws;</div><div class='add'>+    COORD *pos = &amp;ws.dwCursorPosition;</div><div class='add'>+</div><div class='add'>+    GetOpenFile(io, fptr);</div><div class='add'>+    h = (HANDLE)rb_w32_get_osfhandle(GetWriteFD(fptr));</div><div class='add'>+    if (!GetConsoleScreenBufferInfo(h, &amp;ws)) {</div><div class='add'>+	rb_syserr_fail(LAST_ERROR, 0);</div><div class='add'>+    }</div><div class='add'>+    pos-&gt;X += x;</div><div class='add'>+    pos-&gt;Y += y;</div><div class='add'>+    if (!SetConsoleCursorPosition(h, *pos)) {</div><div class='add'>+	rb_syserr_fail(LAST_ERROR, 0);</div><div class='add'>+    }</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_goto_column(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    HANDLE h;</div><div class='add'>+    rb_console_size_t ws;</div><div class='add'>+    COORD *pos = &amp;ws.dwCursorPosition;</div><div class='add'>+</div><div class='add'>+    GetOpenFile(io, fptr);</div><div class='add'>+    h = (HANDLE)rb_w32_get_osfhandle(GetWriteFD(fptr));</div><div class='add'>+    if (!GetConsoleScreenBufferInfo(h, &amp;ws)) {</div><div class='add'>+	rb_syserr_fail(LAST_ERROR, 0);</div><div class='add'>+    }</div><div class='add'>+    pos-&gt;X = NUM2INT(val);</div><div class='add'>+    if (!SetConsoleCursorPosition(h, *pos)) {</div><div class='add'>+	rb_syserr_fail(LAST_ERROR, 0);</div><div class='add'>+    }</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+constat_clear(HANDLE handle, WORD attr, DWORD len, COORD pos)</div><div class='add'>+{</div><div class='add'>+    DWORD written;</div><div class='add'>+</div><div class='add'>+    FillConsoleOutputAttribute(handle, attr, len, pos, &amp;written);</div><div class='add'>+    FillConsoleOutputCharacterW(handle, L' ', len, pos, &amp;written);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_erase_line(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    HANDLE h;</div><div class='add'>+    rb_console_size_t ws;</div><div class='add'>+    COORD *pos = &amp;ws.dwCursorPosition;</div><div class='add'>+    DWORD w;</div><div class='add'>+    int mode = mode_in_range(val, 2, "line erase");</div><div class='add'>+</div><div class='add'>+    GetOpenFile(io, fptr);</div><div class='add'>+    h = (HANDLE)rb_w32_get_osfhandle(GetWriteFD(fptr));</div><div class='add'>+    if (!GetConsoleScreenBufferInfo(h, &amp;ws)) {</div><div class='add'>+	rb_syserr_fail(LAST_ERROR, 0);</div><div class='add'>+    }</div><div class='add'>+    w = winsize_col(&amp;ws);</div><div class='add'>+    switch (mode) {</div><div class='add'>+      case 0:			/* after cursor */</div><div class='add'>+	w -= pos-&gt;X;</div><div class='add'>+	break;</div><div class='add'>+      case 1:			/* before *and* cursor */</div><div class='add'>+	w = pos-&gt;X + 1;</div><div class='add'>+	pos-&gt;X = 0;</div><div class='add'>+	break;</div><div class='add'>+      case 2:			/* entire line */</div><div class='add'>+	pos-&gt;X = 0;</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+    constat_clear(h, ws.wAttributes, w, *pos);</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_erase_screen(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    HANDLE h;</div><div class='add'>+    rb_console_size_t ws;</div><div class='add'>+    COORD *pos = &amp;ws.dwCursorPosition;</div><div class='add'>+    DWORD w;</div><div class='add'>+    int mode = mode_in_range(val, 3, "screen erase");</div><div class='add'>+</div><div class='add'>+    GetOpenFile(io, fptr);</div><div class='add'>+    h = (HANDLE)rb_w32_get_osfhandle(GetWriteFD(fptr));</div><div class='add'>+    if (!GetConsoleScreenBufferInfo(h, &amp;ws)) {</div><div class='add'>+	rb_syserr_fail(LAST_ERROR, 0);</div><div class='add'>+    }</div><div class='add'>+    w = winsize_col(&amp;ws);</div><div class='add'>+    switch (mode) {</div><div class='add'>+      case 0:	/* erase after cursor */</div><div class='add'>+	w = (w * (ws.srWindow.Bottom - pos-&gt;Y + 1) - pos-&gt;X);</div><div class='add'>+	break;</div><div class='add'>+      case 1:	/* erase before *and* cursor */</div><div class='add'>+	w = (w * (pos-&gt;Y - ws.srWindow.Top) + pos-&gt;X + 1);</div><div class='add'>+	pos-&gt;X = 0;</div><div class='add'>+	pos-&gt;Y = ws.srWindow.Top;</div><div class='add'>+	break;</div><div class='add'>+      case 2:	/* erase entire screen */</div><div class='add'>+	w = (w * winsize_row(&amp;ws));</div><div class='add'>+	pos-&gt;X = 0;</div><div class='add'>+	pos-&gt;Y = ws.srWindow.Top;</div><div class='add'>+	break;</div><div class='add'>+      case 3:	/* erase entire screen */</div><div class='add'>+	w = (w * ws.dwSize.Y);</div><div class='add'>+	pos-&gt;X = 0;</div><div class='add'>+	pos-&gt;Y = 0;</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+    constat_clear(h, ws.wAttributes, w, *pos);</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_scroll(VALUE io, int line)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    HANDLE h;</div><div class='add'>+    rb_console_size_t ws;</div><div class='add'>+</div><div class='add'>+    GetOpenFile(io, fptr);</div><div class='add'>+    h = (HANDLE)rb_w32_get_osfhandle(GetWriteFD(fptr));</div><div class='add'>+    if (!GetConsoleScreenBufferInfo(h, &amp;ws)) {</div><div class='add'>+	rb_syserr_fail(LAST_ERROR, 0);</div><div class='add'>+    }</div><div class='add'>+    if (line) {</div><div class='add'>+	SMALL_RECT scroll;</div><div class='add'>+	COORD destination;</div><div class='add'>+	CHAR_INFO fill;</div><div class='add'>+	scroll.Left = 0;</div><div class='add'>+	scroll.Top = line &gt; 0 ? line : 0;</div><div class='add'>+	scroll.Right = winsize_col(&amp;ws) - 1;</div><div class='add'>+	scroll.Bottom = winsize_row(&amp;ws) - 1 + (line &lt; 0 ? line : 0);</div><div class='add'>+	destination.X = 0;</div><div class='add'>+	destination.Y = line &lt; 0 ? -line : 0;</div><div class='add'>+	fill.Char.UnicodeChar = L' ';</div><div class='add'>+	fill.Attributes = ws.wAttributes;</div><div class='add'>+</div><div class='add'>+	ScrollConsoleScreenBuffer(h, &amp;scroll, NULL, destination, &amp;fill);</div><div class='add'>+    }</div><div class='add'>+    return io;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #include "win32_vk.inc"</div><div class='hunk'>@@ -757,12 +1247,210 @@ console_key_pressed_p(VALUE io, VALUE k)</div><div class='ctx'>     return GetKeyState(vk) &amp; 0x80 ? Qtrue : Qfalse;</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='del'>-# define console_goto rb_f_notimplement</div><div class='del'>-# define console_cursor_pos rb_f_notimplement</div><div class='del'>-# define console_cursor_set rb_f_notimplement</div><div class='add'>+struct query_args {</div><div class='add'>+    char qstr[6];</div><div class='add'>+    unsigned char opt;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+direct_query(VALUE io, const struct query_args *query)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(io, T_FILE)) {</div><div class='add'>+	rb_io_t *fptr;</div><div class='add'>+	VALUE wio;</div><div class='add'>+	GetOpenFile(io, fptr);</div><div class='add'>+	wio = fptr-&gt;tied_io_for_writing;</div><div class='add'>+	if (wio) {</div><div class='add'>+	    VALUE s = rb_str_new_cstr(query-&gt;qstr);</div><div class='add'>+	    rb_io_write(wio, s);</div><div class='add'>+	    rb_io_flush(wio);</div><div class='add'>+	    return 1;</div><div class='add'>+	}</div><div class='add'>+	if (write(fptr-&gt;fd, query-&gt;qstr, strlen(query-&gt;qstr)) != -1) {</div><div class='add'>+	    return 1;</div><div class='add'>+	}</div><div class='add'>+	if (fptr-&gt;fd == 0 &amp;&amp;</div><div class='add'>+	    write(1, query-&gt;qstr, strlen(query-&gt;qstr)) != -1) {</div><div class='add'>+	    return 1;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+read_vt_response(VALUE io, VALUE query)</div><div class='add'>+{</div><div class='add'>+    struct query_args *qargs = (struct query_args *)query;</div><div class='add'>+    VALUE result, b;</div><div class='add'>+    int opt = 0;</div><div class='add'>+    int num = 0;</div><div class='add'>+    if (qargs) {</div><div class='add'>+	opt = qargs-&gt;opt;</div><div class='add'>+	if (!direct_query(io, qargs)) return Qnil;</div><div class='add'>+    }</div><div class='add'>+    if (rb_io_getbyte(io) != INT2FIX(0x1b)) return Qnil;</div><div class='add'>+    if (rb_io_getbyte(io) != INT2FIX('[')) return Qnil;</div><div class='add'>+    result = rb_ary_new();</div><div class='add'>+    while (!NIL_P(b = rb_io_getbyte(io))) {</div><div class='add'>+	int c = NUM2UINT(b);</div><div class='add'>+	if (c == ';') {</div><div class='add'>+	    rb_ary_push(result, INT2NUM(num));</div><div class='add'>+	    num = 0;</div><div class='add'>+	}</div><div class='add'>+	else if (ISDIGIT(c)) {</div><div class='add'>+	    num = num * 10 + c - '0';</div><div class='add'>+	}</div><div class='add'>+	else if (opt &amp;&amp; c == opt) {</div><div class='add'>+	    opt = 0;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    char last = (char)c;</div><div class='add'>+	    rb_ary_push(result, INT2NUM(num));</div><div class='add'>+	    b = rb_str_new(&amp;last, 1);</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return rb_ary_push(result, b);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_vt_response(int argc, VALUE *argv, VALUE io, const struct query_args *qargs)</div><div class='add'>+{</div><div class='add'>+    rawmode_arg_t opts, *optp = rawmode_opt(&amp;argc, argv, 0, 1, &amp;opts);</div><div class='add'>+    VALUE query = (VALUE)qargs;</div><div class='add'>+    VALUE ret = ttymode_with_io(io, read_vt_response, query, set_rawmode, optp);</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_cursor_pos(VALUE io)</div><div class='add'>+{</div><div class='add'>+    static const struct query_args query = {"\033[6n", 0};</div><div class='add'>+    VALUE resp = console_vt_response(0, 0, io, &amp;query);</div><div class='add'>+    VALUE row, column, term;</div><div class='add'>+    unsigned int r, c;</div><div class='add'>+    if (!RB_TYPE_P(resp, T_ARRAY) || RARRAY_LEN(resp) != 3) return Qnil;</div><div class='add'>+    term = RARRAY_AREF(resp, 2);</div><div class='add'>+    if (!RB_TYPE_P(term, T_STRING) || RSTRING_LEN(term) != 1) return Qnil;</div><div class='add'>+    if (RSTRING_PTR(term)[0] != 'R') return Qnil;</div><div class='add'>+    row = RARRAY_AREF(resp, 0);</div><div class='add'>+    column = RARRAY_AREF(resp, 1);</div><div class='add'>+    rb_ary_resize(resp, 2);</div><div class='add'>+    r = NUM2UINT(row) - 1;</div><div class='add'>+    c = NUM2UINT(column) - 1;</div><div class='add'>+    RARRAY_ASET(resp, 0, INT2NUM(r));</div><div class='add'>+    RARRAY_ASET(resp, 1, INT2NUM(c));</div><div class='add'>+    return resp;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_goto(VALUE io, VALUE y, VALUE x)</div><div class='add'>+{</div><div class='add'>+    rb_io_write(io, rb_sprintf("\x1b[%d;%dH", NUM2UINT(y)+1, NUM2UINT(x)+1));</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_move(VALUE io, int y, int x)</div><div class='add'>+{</div><div class='add'>+    if (x || y) {</div><div class='add'>+	VALUE s = rb_str_new_cstr("");</div><div class='add'>+	if (y) rb_str_catf(s, "\x1b[%d%c", y &lt; 0 ? -y : y, y &lt; 0 ? 'A' : 'B');</div><div class='add'>+	if (x) rb_str_catf(s, "\x1b[%d%c", x &lt; 0 ? -x : x, x &lt; 0 ? 'D' : 'C');</div><div class='add'>+	rb_io_write(io, s);</div><div class='add'>+	rb_io_flush(io);</div><div class='add'>+    }</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_goto_column(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    rb_io_write(io, rb_sprintf("\x1b[%dG", NUM2UINT(val)+1));</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_erase_line(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    int mode = mode_in_range(val, 2, "line erase");</div><div class='add'>+    rb_io_write(io, rb_sprintf("\x1b[%dK", mode));</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_erase_screen(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    int mode = mode_in_range(val, 3, "screen erase");</div><div class='add'>+    rb_io_write(io, rb_sprintf("\x1b[%dJ", mode));</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_scroll(VALUE io, int line)</div><div class='add'>+{</div><div class='add'>+    if (line) {</div><div class='add'>+	VALUE s = rb_sprintf("\x1b[%d%c", line &lt; 0 ? -line : line,</div><div class='add'>+			     line &lt; 0 ? 'T' : 'S');</div><div class='add'>+	rb_io_write(io, s);</div><div class='add'>+    }</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='ctx'> # define console_key_pressed_p rb_f_notimplement</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+console_cursor_set(VALUE io, VALUE cpos)</div><div class='add'>+{</div><div class='add'>+    cpos = rb_convert_type(cpos, T_ARRAY, "Array", "to_ary");</div><div class='add'>+    if (RARRAY_LEN(cpos) != 2) rb_raise(rb_eArgError, "expected 2D coordinate");</div><div class='add'>+    return console_goto(io, RARRAY_AREF(cpos, 0), RARRAY_AREF(cpos, 1));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_cursor_up(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    return console_move(io, -NUM2INT(val), 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_cursor_down(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    return console_move(io, +NUM2INT(val), 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_cursor_left(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    return console_move(io, 0, -NUM2INT(val));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_cursor_right(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    return console_move(io, 0, +NUM2INT(val));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_scroll_forward(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    return console_scroll(io, +NUM2INT(val));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_scroll_backward(VALUE io, VALUE val)</div><div class='add'>+{</div><div class='add'>+    return console_scroll(io, -NUM2INT(val));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+console_clear_screen(VALUE io)</div><div class='add'>+{</div><div class='add'>+    console_erase_screen(io, INT2FIX(2));</div><div class='add'>+    console_goto(io, INT2FIX(0), INT2FIX(0));</div><div class='add'>+    return io;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   IO.console      -&gt; #&lt;File:/dev/tty&gt;</div><div class='hunk'>@@ -862,7 +1550,7 @@ console_dev(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   io.getch(min: nil, time: nil)       -&gt; char</div><div class='add'>+ *   io.getch(min: nil, time: nil, intr: nil) -&gt; char</div><div class='ctx'>  *</div><div class='ctx'>  * See IO#getch.</div><div class='ctx'>  */</div><div class='hunk'>@@ -882,7 +1570,7 @@ puts_call(VALUE io)</div><div class='ctx'> static VALUE</div><div class='ctx'> getpass_call(VALUE io)</div><div class='ctx'> {</div><div class='del'>-    return ttymode(io, rb_io_gets, set_noecho, NULL);</div><div class='add'>+    return ttymode(io, rb_io_gets, io, set_noecho, NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -891,7 +1579,6 @@ prompt(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     if (argc &gt; 0 &amp;&amp; !NIL_P(argv[0])) {</div><div class='ctx'> 	VALUE str = argv[0];</div><div class='ctx'> 	StringValueCStr(str);</div><div class='del'>-	rb_check_safe_obj(str);</div><div class='ctx'> 	rb_io_write(io, str);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -900,7 +1587,7 @@ static VALUE</div><div class='ctx'> str_chomp(VALUE str)</div><div class='ctx'> {</div><div class='ctx'>     if (!NIL_P(str)) {</div><div class='del'>-	str = rb_funcallv(str, rb_intern("chomp!"), 0, 0);</div><div class='add'>+	rb_funcallv(str, id_chomp_bang, 0, 0);</div><div class='ctx'>     }</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='hunk'>@@ -912,6 +1599,10 @@ str_chomp(VALUE str)</div><div class='ctx'>  * Reads and returns a line without echo back.</div><div class='ctx'>  * Prints +prompt+ unless it is +nil+.</div><div class='ctx'>  *</div><div class='add'>+ * The newline character that terminates the</div><div class='add'>+ * read line is removed from the returned string,</div><div class='add'>+ * see String#chomp!.</div><div class='add'>+ *</div><div class='ctx'>  * You must require 'io/console' to use this method.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -956,11 +1647,15 @@ Init_console(void)</div><div class='ctx'>     id_getc = rb_intern("getc");</div><div class='ctx'> #if ENABLE_IO_GETPASS</div><div class='ctx'>     id_gets = rb_intern("gets");</div><div class='add'>+    id_chomp_bang = rb_intern("chomp!");</div><div class='ctx'> #endif</div><div class='ctx'>     id_console = rb_intern("console");</div><div class='ctx'>     id_close = rb_intern("close");</div><div class='del'>-    id_min = rb_intern("min");</div><div class='del'>-    id_time = rb_intern("time");</div><div class='add'>+#define init_rawmode_opt_id(name) \</div><div class='add'>+    rawmode_opt_ids[kwd_##name] = rb_intern(#name)</div><div class='add'>+    init_rawmode_opt_id(min);</div><div class='add'>+    init_rawmode_opt_id(time);</div><div class='add'>+    init_rawmode_opt_id(intr);</div><div class='ctx'> #ifndef HAVE_RB_F_SEND</div><div class='ctx'>     id___send__ = rb_intern("__send__");</div><div class='ctx'> #endif</div><div class='hunk'>@@ -977,6 +1672,8 @@ InitVM_console(void)</div><div class='ctx'>     rb_define_method(rb_cIO, "getch", console_getch, -1);</div><div class='ctx'>     rb_define_method(rb_cIO, "echo=", console_set_echo, 1);</div><div class='ctx'>     rb_define_method(rb_cIO, "echo?", console_echo_p, 0);</div><div class='add'>+    rb_define_method(rb_cIO, "console_mode", console_conmode_get, 0);</div><div class='add'>+    rb_define_method(rb_cIO, "console_mode=", console_conmode_set, 1);</div><div class='ctx'>     rb_define_method(rb_cIO, "noecho", console_noecho, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "winsize", console_winsize, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "winsize=", console_set_winsize, 1);</div><div class='hunk'>@@ -987,7 +1684,18 @@ InitVM_console(void)</div><div class='ctx'>     rb_define_method(rb_cIO, "goto", console_goto, 2);</div><div class='ctx'>     rb_define_method(rb_cIO, "cursor", console_cursor_pos, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "cursor=", console_cursor_set, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "cursor_up", console_cursor_up, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "cursor_down", console_cursor_down, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "cursor_left", console_cursor_left, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "cursor_right", console_cursor_right, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "goto_column", console_goto_column, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "erase_line", console_erase_line, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "erase_screen", console_erase_screen, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "scroll_forward", console_scroll_forward, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "scroll_backward", console_scroll_backward, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "clear_screen", console_clear_screen, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "pressed?", console_key_pressed_p, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "check_winsize_changed", console_check_winsize_changed, 0);</div><div class='ctx'> #if ENABLE_IO_GETPASS</div><div class='ctx'>     rb_define_method(rb_cIO, "getpass", console_getpass, -1);</div><div class='ctx'> #endif</div><div class='hunk'>@@ -999,4 +1707,15 @@ InitVM_console(void)</div><div class='ctx'> 	rb_define_method(mReadable, "getpass", io_getpass, -1);</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='add'>+    {</div><div class='add'>+	/* :stopdoc: */</div><div class='add'>+        cConmode = rb_define_class_under(rb_cIO, "ConsoleMode", rb_cObject);</div><div class='add'>+        rb_define_alloc_func(cConmode, conmode_alloc);</div><div class='add'>+        rb_undef_method(cConmode, "initialize");</div><div class='add'>+        rb_define_method(cConmode, "initialize_copy", conmode_init_copy, 1);</div><div class='add'>+        rb_define_method(cConmode, "echo=", conmode_set_echo, 1);</div><div class='add'>+        rb_define_method(cConmode, "raw!", conmode_set_raw, -1);</div><div class='add'>+        rb_define_method(cConmode, "raw", conmode_raw_new, -1);</div><div class='add'>+	/* :startdoc: */</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/io/console/depend b/ext/io/console/depend<br/>index 821b28d3fc..36747ef583 100644<br/>--- a/<a href='/ruby.git/tree/ext/io/console/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/io/console/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/console/depend</a></div><div class='hunk'>@@ -1,10 +1,170 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> console.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> console.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+console.o: $(hdrdir)/ruby.h</div><div class='add'>+console.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> console.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+console.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+console.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+console.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+console.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+console.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+console.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+console.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+console.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> console.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> console.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+console.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> console.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+console.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> console.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> console.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> console.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -12,7 +172,7 @@ console.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> console.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> console.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> console.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-console.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+console.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> console.o: console.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='ctx'> </div><div class='hunk'>@@ -25,7 +185,7 @@ win32_vk.inc: win32_vk.list</div><div class='ctx'> 	-e 'n=$$F[1] and (n.strip!; /\AVK_/=~n) and' \</div><div class='ctx'> 	-e   'puts(%[#ifndef #{n}\n# define #{n} UNDEFINED_VK\n#endif])' \</div><div class='ctx'> 	$&lt; &amp;&amp; \</div><div class='del'>-	gperf --ignore-case -E -C -P -p -j1 -i 1 -g -o -t -K ofs -N console_win32_vk -k* $&lt; \</div><div class='add'>+	gperf --ignore-case -L ANSI-C -E -C -P -p -j1 -i 1 -g -o -t -K ofs -N console_win32_vk -k* $&lt; \</div><div class='ctx'> 	| sed -f $(top_srcdir)/tool/gperf.sed \</div><div class='ctx'> 	) &gt; $(@F)</div><div class='ctx'> </div><div class='head'>diff --git a/ext/io/console/extconf.rb b/ext/io/console/extconf.rb<br/>index a6049da667..e8c5923b18 100644<br/>--- a/<a href='/ruby.git/tree/ext/io/console/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/io/console/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/console/extconf.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> require 'mkmf'</div><div class='ctx'> </div><div class='del'>-ok = true</div><div class='add'>+ok = true if RUBY_ENGINE == "ruby" || RUBY_ENGINE == "truffleruby"</div><div class='ctx'> hdr = nil</div><div class='ctx'> case</div><div class='ctx'> when macro_defined?("_WIN32", "")</div><div class='hunk'>@@ -14,8 +14,9 @@ when have_header(hdr = "sgtty.h")</div><div class='ctx'>   %w"stty gtty".each {|f| have_func(f, hdr)}</div><div class='ctx'> else</div><div class='ctx'>   ok = false</div><div class='del'>-end</div><div class='del'>-if ok</div><div class='add'>+end if ok</div><div class='add'>+case ok</div><div class='add'>+when true</div><div class='ctx'>   have_header("sys/ioctl.h") if hdr</div><div class='ctx'>   # rb_check_hash_type: 1.9.3</div><div class='ctx'>   # rb_io_get_write_io: 1.9.1</div><div class='hunk'>@@ -23,8 +24,15 @@ if ok</div><div class='ctx'>   # rb_funcallv: 2.1.0</div><div class='ctx'>   # RARRAY_CONST_PTR: 2.1.0</div><div class='ctx'>   # rb_sym2str: 2.2.0</div><div class='add'>+  if have_macro("HAVE_RUBY_FIBER_SCHEDULER_H")</div><div class='add'>+    $defs &lt;&lt; "-D""HAVE_RB_IO_WAIT=1"</div><div class='add'>+  elsif have_func("rb_scheduler_timeout") # 3.0</div><div class='add'>+    have_func("rb_io_wait")</div><div class='add'>+  end</div><div class='ctx'>   $defs &lt;&lt; "-D""ENABLE_IO_GETPASS=1"</div><div class='ctx'>   create_makefile("io/console") {|conf|</div><div class='ctx'>     conf &lt;&lt; "\n""VK_HEADER = #{vk_header}\n"</div><div class='ctx'>   }</div><div class='add'>+when nil</div><div class='add'>+  File.write("Makefile", dummy_makefile($srcdir).join(""))</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/io/console/io-console.gemspec b/ext/io/console/io-console.gemspec<br/>index d72c3651ac..d26a757b01 100644<br/>--- a/<a href='/ruby.git/tree/ext/io/console/io-console.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/io-console.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/io/console/io-console.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/console/io-console.gemspec</a></div><div class='hunk'>@@ -1,24 +1,41 @@</div><div class='ctx'> # -*- ruby -*-</div><div class='del'>-_VERSION = "0.4.6"</div><div class='del'>-date = %w$Date::                           $[1]</div><div class='add'>+_VERSION = "0.6.0"</div><div class='ctx'> </div><div class='ctx'> Gem::Specification.new do |s|</div><div class='ctx'>   s.name = "io-console"</div><div class='ctx'>   s.version = _VERSION</div><div class='del'>-  s.date = date</div><div class='ctx'>   s.summary = "Console interface"</div><div class='ctx'>   s.email = "nobu@ruby-lang.org"</div><div class='ctx'>   s.description = "add console capabilities to IO instances."</div><div class='del'>-  s.required_ruby_version = "&gt;= 2.2.0"</div><div class='add'>+  s.required_ruby_version = "&gt;= 2.6.0"</div><div class='ctx'>   s.homepage = "https://github.com/ruby/io-console"</div><div class='add'>+  s.metadata["source_code_url"] = s.homepage</div><div class='ctx'>   s.authors = ["Nobu Nakada"]</div><div class='ctx'>   s.require_path = %[lib]</div><div class='del'>-  s.files = %w[ext/io/console/console.c ext/io/console/extconf.rb lib/console/size.rb ext/io/console/win32_vk.inc]</div><div class='add'>+  s.files = %w[</div><div class='add'>+    LICENSE.txt</div><div class='add'>+    README.md</div><div class='add'>+    ext/io/console/console.c</div><div class='add'>+    ext/io/console/extconf.rb</div><div class='add'>+    ext/io/console/win32_vk.inc</div><div class='add'>+    lib/io/console/size.rb</div><div class='add'>+  ]</div><div class='ctx'>   s.extensions = %w[ext/io/console/extconf.rb]</div><div class='del'>-  s.license = "BSD-2-Clause"</div><div class='del'>-  s.cert_chain  = %w[certs/nobu.pem]</div><div class='del'>-  s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/</div><div class='ctx'> </div><div class='del'>-  s.add_development_dependency 'rake-compiler'</div><div class='del'>-  s.add_development_dependency 'rake-compiler-dock', "&gt;= 0.6.1"</div><div class='add'>+  if Gem::Platform === s.platform and s.platform =~ 'java'</div><div class='add'>+    s.files.delete_if {|f| f.start_with?("ext/")}</div><div class='add'>+    s.extensions.clear</div><div class='add'>+    s.files.concat(%w[</div><div class='add'>+      lib/io/console.rb</div><div class='add'>+      lib/io/console/ffi/bsd_console.rb</div><div class='add'>+      lib/io/console/ffi/common.rb</div><div class='add'>+      lib/io/console/ffi/console.rb</div><div class='add'>+      lib/io/console/ffi/linux_console.rb</div><div class='add'>+      lib/io/console/ffi/native_console.rb</div><div class='add'>+      lib/io/console/ffi/stty_console.rb</div><div class='add'>+      lib/io/console/ffi/stub_console.rb</div><div class='add'>+    ])</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  s.licenses = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/io/console/win32_vk.inc b/ext/io/console/win32_vk.inc<br/>index cbec7bef15..d15b1219fb 100644<br/>--- a/<a href='/ruby.git/tree/ext/io/console/win32_vk.inc?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/win32_vk.inc</a><br/>+++ b/<a href='/ruby.git/tree/ext/io/console/win32_vk.inc?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/console/win32_vk.inc</a></div><div class='hunk'>@@ -480,7 +480,7 @@</div><div class='ctx'> # define VK_OEM_CLEAR UNDEFINED_VK</div><div class='ctx'> #endif</div><div class='ctx'> /* ANSI-C code produced by gperf version 3.1 */</div><div class='del'>-/* Command-line: gperf --ignore-case -E -C -P -p -j1 -i 1 -g -o -t -K ofs -N console_win32_vk -k'*' win32_vk.list  */</div><div class='add'>+/* Command-line: gperf --ignore-case -L ANSI-C -E -C -P -p -j1 -i 1 -g -o -t -K ofs -N console_win32_vk -k'*' win32_vk.list  */</div><div class='ctx'> </div><div class='ctx'> #if !((' ' == 32) &amp;&amp; ('!' == 33) &amp;&amp; ('"' == 34) &amp;&amp; ('#' == 35) \</div><div class='ctx'>       &amp;&amp; ('%' == 37) &amp;&amp; ('&amp;' == 38) &amp;&amp; ('\'' == 39) &amp;&amp; ('(' == 40) \</div><div class='hunk'>@@ -509,18 +509,17 @@</div><div class='ctx'> #error "gperf generated tables don't work with this execution character set. Please report a bug to &lt;bug-gperf@gnu.org&gt;."</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define gperf_offsetof(s, n) (short)offsetof(struct s##_t, s##_str##n)</div><div class='ctx'> #line 1 "win32_vk.list"</div><div class='ctx'> </div><div class='ctx'> struct vktable {short ofs; unsigned short vk;};</div><div class='del'>-static const struct vktable *console_win32_vk(/*const char *, unsigned int*/);</div><div class='add'>+static const struct vktable *console_win32_vk(const char *, size_t);</div><div class='ctx'> #line 5 "win32_vk.list"</div><div class='ctx'> struct vktable;</div><div class='ctx'> /* maximum key range = 245, duplicates = 0 */</div><div class='ctx'> </div><div class='ctx'> #ifndef GPERF_DOWNCASE</div><div class='ctx'> #define GPERF_DOWNCASE 1</div><div class='del'>-static unsigned char gperf_downcase[256] =</div><div class='add'>+static const unsigned char gperf_downcase[256] =</div><div class='ctx'>   {</div><div class='ctx'>       0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,</div><div class='ctx'>      15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,</div><div class='hunk'>@@ -1007,368 +1006,368 @@ console_win32_vk (register const char *str, register size_t len)</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'>       {-1}, {-1}, {-1},</div><div class='ctx'> #line 40 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 12), VK_UP},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str12, VK_UP},</div><div class='ctx'> #line 52 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 13), VK_APPS},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str13, VK_APPS},</div><div class='ctx'> #line 159 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 14), VK_CRSEL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str14, VK_CRSEL},</div><div class='ctx'> #line 34 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 15), VK_SPACE},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str15, VK_SPACE},</div><div class='ctx'> #line 95 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 16), VK_SCROLL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str16, VK_SCROLL},</div><div class='ctx'> #line 29 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 17), VK_ESCAPE},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str17, VK_ESCAPE},</div><div class='ctx'> #line 9 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 18), VK_CANCEL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str18, VK_CANCEL},</div><div class='ctx'> #line 32 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 19), VK_ACCEPT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str19, VK_ACCEPT},</div><div class='ctx'> #line 66 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 20), VK_SEPARATOR},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str20, VK_SEPARATOR},</div><div class='ctx'> #line 43 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 21), VK_SELECT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str21, VK_SELECT},</div><div class='ctx'> #line 18 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 22), VK_CONTROL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str22, VK_CONTROL},</div><div class='ctx'> #line 166 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 23), VK_OEM_CLEAR},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str23, VK_OEM_CLEAR},</div><div class='ctx'> #line 145 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 24), VK_OEM_RESET},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str24, VK_OEM_RESET},</div><div class='ctx'> #line 155 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 25), VK_OEM_AUTO},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str25, VK_OEM_AUTO},</div><div class='ctx'> #line 151 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 26), VK_OEM_CUSEL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str26, VK_OEM_CUSEL},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 22 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 28), VK_KANA},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str28, VK_KANA},</div><div class='ctx'> #line 127 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 29), VK_OEM_PLUS},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str29, VK_OEM_PLUS},</div><div class='ctx'> #line 35 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 30), VK_PRIOR},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str30, VK_PRIOR},</div><div class='ctx'> #line 152 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 31), VK_OEM_ATTN},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str31, VK_OEM_ATTN},</div><div class='ctx'> #line 20 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 32), VK_PAUSE},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str32, VK_PAUSE},</div><div class='ctx'> #line 13 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 33), VK_BACK},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str33, VK_BACK},</div><div class='ctx'> #line 144 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 34), VK_PACKET},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str34, VK_PACKET},</div><div class='ctx'> #line 105 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 35), VK_RCONTROL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str35, VK_RCONTROL},</div><div class='ctx'> #line 104 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 36), VK_LCONTROL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str36, VK_LCONTROL},</div><div class='ctx'> #line 37 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 37), VK_END},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str37, VK_END},</div><div class='ctx'> #line 38 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 38), VK_HOME},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str38, VK_HOME},</div><div class='ctx'> #line 44 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 39), VK_PRINT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str39, VK_PRINT},</div><div class='ctx'> #line 94 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 40), VK_NUMLOCK},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str40, VK_NUMLOCK},</div><div class='ctx'> #line 39 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 41), VK_LEFT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str41, VK_LEFT},</div><div class='ctx'> #line 25 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 42), VK_JUNJA},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str42, VK_JUNJA},</div><div class='ctx'> #line 19 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 43), VK_MENU},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str43, VK_MENU},</div><div class='ctx'> #line 150 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 44), VK_OEM_WSCTRL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str44, VK_OEM_WSCTRL},</div><div class='ctx'> #line 156 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 45), VK_OEM_ENLW},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str45, VK_OEM_ENLW},</div><div class='ctx'> #line 36 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 46), VK_NEXT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str46, VK_NEXT},</div><div class='ctx'> #line 51 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 47), VK_RWIN},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str47, VK_RWIN},</div><div class='ctx'> #line 50 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 48), VK_LWIN},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str48, VK_LWIN},</div><div class='ctx'> #line 21 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 49), VK_CAPITAL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str49, VK_CAPITAL},</div><div class='ctx'> #line 49 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 50), VK_HELP},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str50, VK_HELP},</div><div class='ctx'> #line 164 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 51), VK_NONAME},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str51, VK_NONAME},</div><div class='ctx'> #line 8 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 52), VK_RBUTTON},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str52, VK_RBUTTON},</div><div class='ctx'> #line 7 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 53), VK_LBUTTON},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str53, VK_LBUTTON},</div><div class='ctx'> #line 96 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 54), VK_OEM_NEC_EQUAL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str54, VK_OEM_NEC_EQUAL},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 47 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 56), VK_INSERT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str56, VK_INSERT},</div><div class='ctx'> #line 27 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 57), VK_HANJA},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str57, VK_HANJA},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 46 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 60), VK_SNAPSHOT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str60, VK_SNAPSHOT},</div><div class='ctx'> #line 158 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 61), VK_ATTN},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str61, VK_ATTN},</div><div class='ctx'> #line 14 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 62), VK_TAB},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str62, VK_TAB},</div><div class='ctx'> #line 157 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 63), VK_OEM_BACKTAB},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str63, VK_OEM_BACKTAB},</div><div class='ctx'> #line 143 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 64), VK_ICO_CLEAR},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str64, VK_ICO_CLEAR},</div><div class='ctx'> #line 30 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 65), VK_CONVERT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str65, VK_CONVERT},</div><div class='ctx'> #line 16 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 66), VK_RETURN},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str66, VK_RETURN},</div><div class='ctx'> #line 146 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 67), VK_OEM_JUMP},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str67, VK_OEM_JUMP},</div><div class='ctx'>       {-1}, {-1}, {-1},</div><div class='ctx'> #line 111 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 71), VK_BROWSER_STOP},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str71, VK_BROWSER_STOP},</div><div class='ctx'> #line 26 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 72), VK_FINAL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str72, VK_FINAL},</div><div class='ctx'> #line 163 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 73), VK_ZOOM},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str73, VK_ZOOM},</div><div class='ctx'> #line 28 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 74), VK_KANJI},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str74, VK_KANJI},</div><div class='ctx'> #line 48 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 75), VK_DELETE},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str75, VK_DELETE},</div><div class='ctx'> #line 128 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 76), VK_OEM_COMMA},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str76, VK_OEM_COMMA},</div><div class='ctx'> #line 67 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 77), VK_SUBTRACT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str77, VK_SUBTRACT},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 10 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 79), VK_MBUTTON},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str79, VK_MBUTTON},</div><div class='ctx'> #line 78 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 80), VK_F9},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str80, VK_F9},</div><div class='ctx'> #line 17 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 81), VK_SHIFT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str81, VK_SHIFT},</div><div class='ctx'> #line 103 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 82), VK_RSHIFT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str82, VK_RSHIFT},</div><div class='ctx'> #line 102 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 83), VK_LSHIFT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str83, VK_LSHIFT},</div><div class='ctx'> #line 65 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 84), VK_ADD},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str84, VK_ADD},</div><div class='ctx'> #line 31 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 85), VK_NONCONVERT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str85, VK_NONCONVERT},</div><div class='ctx'> #line 160 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 86), VK_EXSEL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str86, VK_EXSEL},</div><div class='ctx'> #line 126 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 87), VK_OEM_1},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str87, VK_OEM_1},</div><div class='ctx'> #line 138 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 88), VK_OEM_AX},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str88, VK_OEM_AX},</div><div class='ctx'> #line 108 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 89), VK_BROWSER_BACK},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str89, VK_BROWSER_BACK},</div><div class='ctx'> #line 137 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 90), VK_OEM_8},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str90, VK_OEM_8},</div><div class='ctx'> #line 129 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 91), VK_OEM_MINUS},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str91, VK_OEM_MINUS},</div><div class='ctx'> #line 162 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 92), VK_PLAY},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str92, VK_PLAY},</div><div class='ctx'> #line 131 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 93), VK_OEM_2},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str93, VK_OEM_2},</div><div class='ctx'> #line 15 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 94), VK_CLEAR},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str94, VK_CLEAR},</div><div class='ctx'> #line 99 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 95), VK_OEM_FJ_TOUROKU},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str95, VK_OEM_FJ_TOUROKU},</div><div class='ctx'> #line 147 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 96), VK_OEM_PA1},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str96, VK_OEM_PA1},</div><div class='ctx'> #line 140 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 97), VK_ICO_HELP},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str97, VK_ICO_HELP},</div><div class='ctx'> #line 112 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 98), VK_BROWSER_SEARCH},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str98, VK_BROWSER_SEARCH},</div><div class='ctx'> #line 53 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 99), VK_SLEEP},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str99, VK_SLEEP},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 70 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 101), VK_F1},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str101, VK_F1},</div><div class='ctx'> #line 148 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 102), VK_OEM_PA2},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str102, VK_OEM_PA2},</div><div class='ctx'> #line 154 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 103), VK_OEM_COPY},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str103, VK_OEM_COPY},</div><div class='ctx'> #line 77 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 104), VK_F8},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str104, VK_F8},</div><div class='ctx'> #line 88 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 105), VK_F19},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str105, VK_F19},</div><div class='ctx'> #line 41 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 106), VK_RIGHT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str106, VK_RIGHT},</div><div class='ctx'> #line 71 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 107), VK_F2},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str107, VK_F2},</div><div class='ctx'> #line 135 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 108), VK_OEM_6},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str108, VK_OEM_6},</div><div class='ctx'> #line 87 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 109), VK_F18},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str109, VK_F18},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 117 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 111), VK_VOLUME_UP},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str111, VK_VOLUME_UP},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 120 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 114), VK_MEDIA_STOP},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str114, VK_MEDIA_STOP},</div><div class='ctx'> #line 130 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 115), VK_OEM_PERIOD},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str115, VK_OEM_PERIOD},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 161 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 117), VK_EREOF},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str117, VK_EREOF},</div><div class='ctx'>       {-1}, {-1}, {-1},</div><div class='ctx'> #line 114 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 121), VK_BROWSER_HOME},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str121, VK_BROWSER_HOME},</div><div class='ctx'> #line 75 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 122), VK_F6},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str122, VK_F6},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 110 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 124), VK_BROWSER_REFRESH},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str124, VK_BROWSER_REFRESH},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 165 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 126), VK_PA1},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str126, VK_PA1},</div><div class='ctx'> #line 142 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 127), VK_PROCESSKEY},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str127, VK_PROCESSKEY},</div><div class='ctx'> #line 68 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 128), VK_DECIMAL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str128, VK_DECIMAL},</div><div class='ctx'> #line 132 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 129), VK_OEM_3},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str129, VK_OEM_3},</div><div class='ctx'> #line 107 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 130), VK_RMENU},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str130, VK_RMENU},</div><div class='ctx'> #line 106 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 131), VK_LMENU},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str131, VK_LMENU},</div><div class='ctx'> #line 98 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 132), VK_OEM_FJ_MASSHOU},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str132, VK_OEM_FJ_MASSHOU},</div><div class='ctx'> #line 54 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 133), VK_NUMPAD0},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str133, VK_NUMPAD0},</div><div class='ctx'> #line 24 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 134), VK_HANGUL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str134, VK_HANGUL},</div><div class='ctx'> #line 63 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 135), VK_NUMPAD9},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str135, VK_NUMPAD9},</div><div class='ctx'> #line 23 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 136), VK_HANGEUL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str136, VK_HANGEUL},</div><div class='ctx'> #line 134 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 137), VK_OEM_5},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str137, VK_OEM_5},</div><div class='ctx'> #line 149 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 138), VK_OEM_PA3},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str138, VK_OEM_PA3},</div><div class='ctx'> #line 115 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 139), VK_VOLUME_MUTE},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str139, VK_VOLUME_MUTE},</div><div class='ctx'> #line 133 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 140), VK_OEM_4},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str140, VK_OEM_4},</div><div class='ctx'> #line 122 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 141), VK_LAUNCH_MAIL},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str141, VK_LAUNCH_MAIL},</div><div class='ctx'> #line 97 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 142), VK_OEM_FJ_JISHO},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str142, VK_OEM_FJ_JISHO},</div><div class='ctx'> #line 72 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 143), VK_F3},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str143, VK_F3},</div><div class='ctx'> #line 101 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 144), VK_OEM_FJ_ROYA},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str144, VK_OEM_FJ_ROYA},</div><div class='ctx'> #line 100 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 145), VK_OEM_FJ_LOYA},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str145, VK_OEM_FJ_LOYA},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 42 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 147), VK_DOWN},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str147, VK_DOWN},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 153 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 149), VK_OEM_FINISH},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str149, VK_OEM_FINISH},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 74 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 151), VK_F5},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str151, VK_F5},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 136 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 153), VK_OEM_7},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str153, VK_OEM_7},</div><div class='ctx'> #line 73 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 154), VK_F4},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str154, VK_F4},</div><div class='ctx'> #line 86 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 155), VK_F17},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str155, VK_F17},</div><div class='ctx'> #line 55 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 156), VK_NUMPAD1},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str156, VK_NUMPAD1},</div><div class='ctx'> #line 141 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 157), VK_ICO_00},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str157, VK_ICO_00},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 62 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 159), VK_NUMPAD8},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str159, VK_NUMPAD8},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 56 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 162), VK_NUMPAD2},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str162, VK_NUMPAD2},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 124 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 164), VK_LAUNCH_APP1},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str164, VK_LAUNCH_APP1},</div><div class='ctx'> #line 109 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 165), VK_BROWSER_FORWARD},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str165, VK_BROWSER_FORWARD},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 76 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 167), VK_F7},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str167, VK_F7},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 125 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 170), VK_LAUNCH_APP2},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str170, VK_LAUNCH_APP2},</div><div class='ctx'> #line 64 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 171), VK_MULTIPLY},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str171, VK_MULTIPLY},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 45 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 174), VK_EXECUTE},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str174, VK_EXECUTE},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 113 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 176), VK_BROWSER_FAVORITES},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str176, VK_BROWSER_FAVORITES},</div><div class='ctx'> #line 60 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 177), VK_NUMPAD6},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str177, VK_NUMPAD6},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 85 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 179), VK_F16},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str179, VK_F16},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 79 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 182), VK_F10},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str182, VK_F10},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 116 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 185), VK_VOLUME_DOWN},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str185, VK_VOLUME_DOWN},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 89 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 188), VK_F20},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str188, VK_F20},</div><div class='ctx'> #line 119 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 189), VK_MEDIA_PREV_TRACK},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str189, VK_MEDIA_PREV_TRACK},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 33 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 191), VK_MODECHANGE},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str191, VK_MODECHANGE},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'> #line 83 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 197), VK_F14},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str197, VK_F14},</div><div class='ctx'> #line 57 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 198), VK_NUMPAD3},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str198, VK_NUMPAD3},</div><div class='ctx'> #line 11 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 199), VK_XBUTTON1},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str199, VK_XBUTTON1},</div><div class='ctx'>       {-1}, {-1}, {-1},</div><div class='ctx'> #line 93 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 203), VK_F24},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str203, VK_F24},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 12 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 205), VK_XBUTTON2},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str205, VK_XBUTTON2},</div><div class='ctx'> #line 59 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 206), VK_NUMPAD5},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str206, VK_NUMPAD5},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 58 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 209), VK_NUMPAD4},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str209, VK_NUMPAD4},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'> #line 121 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 215), VK_MEDIA_PLAY_PAUSE},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str215, VK_MEDIA_PLAY_PAUSE},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 123 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 217), VK_LAUNCH_MEDIA_SELECT},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str217, VK_LAUNCH_MEDIA_SELECT},</div><div class='ctx'> #line 80 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 218), VK_F11},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str218, VK_F11},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 139 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 220), VK_OEM_102},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str220, VK_OEM_102},</div><div class='ctx'> #line 118 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 221), VK_MEDIA_NEXT_TRACK},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str221, VK_MEDIA_NEXT_TRACK},</div><div class='ctx'> #line 61 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 222), VK_NUMPAD7},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str222, VK_NUMPAD7},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 90 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 224), VK_F21},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str224, VK_F21},</div><div class='ctx'>       {-1},</div><div class='ctx'> #line 82 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 226), VK_F13},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str226, VK_F13},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 81 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 229), VK_F12},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str229, VK_F12},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 92 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 232), VK_F23},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str232, VK_F23},</div><div class='ctx'>       {-1}, {-1},</div><div class='ctx'> #line 91 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 235), VK_F22},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str235, VK_F22},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'> #line 84 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 242), VK_F15},</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str242, VK_F15},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},</div><div class='ctx'>       {-1}, {-1}, {-1}, {-1},</div><div class='ctx'> #line 69 "win32_vk.list"</div><div class='del'>-      {gperf_offsetof(stringpool, 256), VK_DIVIDE}</div><div class='add'>+      {(int)(size_t)&amp;((struct stringpool_t *)0)-&gt;stringpool_str256, VK_DIVIDE}</div><div class='ctx'>     };</div><div class='ctx'> </div><div class='ctx'>   if (len &lt;= MAX_WORD_LENGTH &amp;&amp; len &gt;= MIN_WORD_LENGTH)</div><div class='head'>diff --git a/ext/io/console/win32_vk.list b/ext/io/console/win32_vk.list<br/>index 7909a4d1f0..5df3d6da57 100644<br/>--- a/<a href='/ruby.git/tree/ext/io/console/win32_vk.list?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/console/win32_vk.list</a><br/>+++ b/<a href='/ruby.git/tree/ext/io/console/win32_vk.list?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/console/win32_vk.list</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> %{</div><div class='ctx'> struct vktable {short ofs; unsigned short vk;};</div><div class='del'>-static const struct vktable *console_win32_vk(/*!ANSI{*/const char *, unsigned int/*}!ANSI*/);</div><div class='add'>+static const struct vktable *console_win32_vk(const char *, size_t);</div><div class='ctx'> %}</div><div class='ctx'> struct vktable</div><div class='ctx'> %%</div><div class='head'>diff --git a/ext/io/nonblock/depend b/ext/io/nonblock/depend<br/>index 4402898de6..7f2db65732 100644<br/>--- a/<a href='/ruby.git/tree/ext/io/nonblock/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/nonblock/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/io/nonblock/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/nonblock/depend</a></div><div class='hunk'>@@ -1,10 +1,169 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> nonblock.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> nonblock.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> nonblock.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> nonblock.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> nonblock.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> nonblock.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+nonblock.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> nonblock.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> nonblock.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> nonblock.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -12,6 +171,5 @@ nonblock.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> nonblock.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> nonblock.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> nonblock.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-nonblock.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> nonblock.o: nonblock.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/io/nonblock/io-nonblock.gemspec b/ext/io/nonblock/io-nonblock.gemspec<br/>new file mode 100644<br/>index 0000000000..d6df21a84d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/io/nonblock/io-nonblock.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/nonblock/io-nonblock.gemspec</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "io-nonblock"</div><div class='add'>+  spec.version       = "0.2.0"</div><div class='add'>+  spec.authors       = ["Nobu Nakada"]</div><div class='add'>+  spec.email         = ["nobu@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Enables non-blocking mode with IO class}</div><div class='add'>+  spec.description   = %q{Enables non-blocking mode with IO class}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/io-nonblock"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 2.3.0")</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  spec.files         = %w[</div><div class='add'>+    COPYING</div><div class='add'>+    README.md</div><div class='add'>+    ext/io/nonblock/depend</div><div class='add'>+    ext/io/nonblock/extconf.rb</div><div class='add'>+    ext/io/nonblock/nonblock.c</div><div class='add'>+  ]</div><div class='add'>+  spec.extensions    = %w[ext/io/nonblock/extconf.rb]</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/ext/io/nonblock/nonblock.c b/ext/io/nonblock/nonblock.c<br/>index 1c0bdc68e7..b8a40ff38e 100644<br/>--- a/<a href='/ruby.git/tree/ext/io/nonblock/nonblock.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/nonblock/nonblock.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/io/nonblock/nonblock.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/nonblock/nonblock.c</a></div><div class='hunk'>@@ -19,14 +19,14 @@</div><div class='ctx'> </div><div class='ctx'> #ifdef F_GETFL</div><div class='ctx'> static int</div><div class='del'>-io_nonblock_mode(int fd)</div><div class='add'>+get_fcntl_flags(int fd)</div><div class='ctx'> {</div><div class='ctx'>     int f = fcntl(fd, F_GETFL);</div><div class='ctx'>     if (f == -1) rb_sys_fail(0);</div><div class='ctx'>     return f;</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='del'>-#define io_nonblock_mode(fd) ((void)(fd), 0)</div><div class='add'>+#define get_fcntl_flags(fd) ((void)(fd), 0)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef F_GETFL</div><div class='hunk'>@@ -41,7 +41,7 @@ rb_io_nonblock_p(VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='del'>-    if (io_nonblock_mode(fptr-&gt;fd) &amp; O_NONBLOCK)</div><div class='add'>+    if (get_fcntl_flags(fptr-&gt;fd) &amp; O_NONBLOCK)</div><div class='ctx'> 	return Qtrue;</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -50,6 +50,13 @@ rb_io_nonblock_p(VALUE io)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef F_SETFL</div><div class='add'>+static void</div><div class='add'>+set_fcntl_flags(int fd, int f)</div><div class='add'>+{</div><div class='add'>+    if (fcntl(fd, F_SETFL, f) == -1)</div><div class='add'>+	rb_sys_fail(0);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> io_nonblock_set(int fd, int f, int nb)</div><div class='ctx'> {</div><div class='hunk'>@@ -63,8 +70,7 @@ io_nonblock_set(int fd, int f, int nb)</div><div class='ctx'> 	    return 0;</div><div class='ctx'> 	f &amp;= ~O_NONBLOCK;</div><div class='ctx'>     }</div><div class='del'>-    if (fcntl(fd, F_SETFL, f) == -1)</div><div class='del'>-	rb_sys_fail(0);</div><div class='add'>+    set_fcntl_flags(fd, f);</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -74,6 +80,46 @@ io_nonblock_set(int fd, int f, int nb)</div><div class='ctx'>  *</div><div class='ctx'>  * Enables non-blocking mode on a stream when set to</div><div class='ctx'>  * +true+, and blocking mode when set to +false+.</div><div class='add'>+ *</div><div class='add'>+ * This method set or clear O_NONBLOCK flag for the file descriptor</div><div class='add'>+ * in &lt;em&gt;ios&lt;/em&gt;.</div><div class='add'>+ *</div><div class='add'>+ * The behavior of most IO methods is not affected by this flag</div><div class='add'>+ * because they retry system calls to complete their task</div><div class='add'>+ * after EAGAIN and partial read/write.</div><div class='add'>+ * (An exception is IO#syswrite which doesn't retry.)</div><div class='add'>+ *</div><div class='add'>+ * This method can be used to clear non-blocking mode of standard I/O.</div><div class='add'>+ * Since nonblocking methods (read_nonblock, etc.) set non-blocking mode but</div><div class='add'>+ * they doesn't clear it, this method is usable as follows.</div><div class='add'>+ *</div><div class='add'>+ *   END { STDOUT.nonblock = false }</div><div class='add'>+ *   STDOUT.write_nonblock("foo")</div><div class='add'>+ *</div><div class='add'>+ * Since the flag is shared across processes and</div><div class='add'>+ * many non-Ruby commands doesn't expect standard I/O with non-blocking mode,</div><div class='add'>+ * it would be safe to clear the flag before Ruby program exits.</div><div class='add'>+ *</div><div class='add'>+ * For example following Ruby program leaves STDIN/STDOUT/STDER non-blocking mode.</div><div class='add'>+ * (STDIN, STDOUT and STDERR are connected to a terminal.</div><div class='add'>+ * So making one of them nonblocking-mode effects other two.)</div><div class='add'>+ * Thus cat command try to read from standard input and</div><div class='add'>+ * it causes "Resource temporarily unavailable" error (EAGAIN).</div><div class='add'>+ *</div><div class='add'>+ *   % ruby -e '</div><div class='add'>+ *   STDOUT.write_nonblock("foo\n")'; cat</div><div class='add'>+ *   foo</div><div class='add'>+ *   cat: -: Resource temporarily unavailable</div><div class='add'>+ *</div><div class='add'>+ * Clearing the flag makes the behavior of cat command normal.</div><div class='add'>+ * (cat command waits input from standard input.)</div><div class='add'>+ *</div><div class='add'>+ *   % ruby -rio/nonblock -e '</div><div class='add'>+ *   END { STDOUT.nonblock = false }</div><div class='add'>+ *   STDOUT.write_nonblock("foo")</div><div class='add'>+ *   '; cat</div><div class='add'>+ *   foo</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_nonblock_set(VALUE io, VALUE nb)</div><div class='hunk'>@@ -83,7 +129,7 @@ rb_io_nonblock_set(VALUE io, VALUE nb)</div><div class='ctx'>     if (RTEST(nb))</div><div class='ctx'> 	rb_io_set_nonblock(fptr);</div><div class='ctx'>     else</div><div class='del'>-	io_nonblock_set(fptr-&gt;fd, io_nonblock_mode(fptr-&gt;fd), RTEST(nb));</div><div class='add'>+	io_nonblock_set(fptr-&gt;fd, get_fcntl_flags(fptr-&gt;fd), RTEST(nb));</div><div class='ctx'>     return io;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -91,15 +137,14 @@ static VALUE</div><div class='ctx'> io_nonblock_restore(VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     int *restore = (int *)arg;</div><div class='del'>-    if (fcntl(restore[0], F_SETFL, restore[1]) == -1)</div><div class='del'>-	rb_sys_fail(0);</div><div class='add'>+    set_fcntl_flags(restore[0], restore[1]);</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   io.nonblock {|io| } -&gt; io</div><div class='del'>- *   io.nonblock(boolean) {|io| } -&gt; io</div><div class='add'>+ *   io.nonblock {|io| } -&gt; object</div><div class='add'>+ *   io.nonblock(boolean) {|io| } -&gt; object</div><div class='ctx'>  *</div><div class='ctx'>  * Yields +self+ in non-blocking mode.</div><div class='ctx'>  *</div><div class='hunk'>@@ -119,7 +164,7 @@ rb_io_nonblock_block(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> 	rb_scan_args(argc, argv, "01", &amp;v);</div><div class='ctx'> 	nb = RTEST(v);</div><div class='ctx'>     }</div><div class='del'>-    f = io_nonblock_mode(fptr-&gt;fd);</div><div class='add'>+    f = get_fcntl_flags(fptr-&gt;fd);</div><div class='ctx'>     restore[0] = fptr-&gt;fd;</div><div class='ctx'>     restore[1] = f;</div><div class='ctx'>     if (!io_nonblock_set(fptr-&gt;fd, f, nb))</div><div class='head'>diff --git a/ext/io/wait/depend b/ext/io/wait/depend<br/>index f509dcd8a4..51e1af8280 100644<br/>--- a/<a href='/ruby.git/tree/ext/io/wait/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/wait/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/io/wait/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/wait/depend</a></div><div class='hunk'>@@ -1,10 +1,170 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='add'>+# wait.o: $(hdrdir)/ruby/assert.h # not in 2.6</div><div class='ctx'> wait.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> wait.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+wait.o: $(hdrdir)/ruby.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> wait.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> wait.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> wait.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> wait.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+wait.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> wait.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> wait.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> wait.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -12,6 +172,5 @@ wait.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> wait.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> wait.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> wait.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-wait.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> wait.o: wait.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/io/wait/extconf.rb b/ext/io/wait/extconf.rb<br/>index b5d36c3fe3..c6230b7783 100644<br/>--- a/<a href='/ruby.git/tree/ext/io/wait/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/wait/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/io/wait/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/wait/extconf.rb</a></div><div class='hunk'>@@ -1,19 +1,24 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> require 'mkmf'</div><div class='del'>-target = "io/wait"</div><div class='ctx'> </div><div class='del'>-unless macro_defined?("DOSISH", "#include &lt;ruby.h&gt;")</div><div class='del'>-  have_header(ioctl_h = "sys/ioctl.h") or ioctl_h = nil</div><div class='del'>-  fionread = %w[sys/ioctl.h sys/filio.h sys/socket.h].find do |h|</div><div class='del'>-    have_macro("FIONREAD", [h, ioctl_h].compact)</div><div class='del'>-  end</div><div class='del'>-  if fionread</div><div class='del'>-    $defs &lt;&lt; "-DFIONREAD_HEADER=\"&lt;#{fionread}&gt;\""</div><div class='del'>-    create_makefile(target)</div><div class='del'>-  end</div><div class='add'>+if RUBY_VERSION &lt; "2.6"</div><div class='add'>+  File.write("Makefile", dummy_makefile($srcdir).join(""))</div><div class='ctx'> else</div><div class='del'>-  if have_func("rb_w32_ioctlsocket", "ruby.h")</div><div class='del'>-    have_func("rb_w32_is_socket", "ruby.h")</div><div class='del'>-    create_makefile(target)</div><div class='add'>+  target = "io/wait"</div><div class='add'>+  have_func("rb_io_wait", "ruby/io.h")</div><div class='add'>+  unless macro_defined?("DOSISH", "#include &lt;ruby.h&gt;")</div><div class='add'>+    have_header(ioctl_h = "sys/ioctl.h") or ioctl_h = nil</div><div class='add'>+    fionread = %w[sys/ioctl.h sys/filio.h sys/socket.h].find do |h|</div><div class='add'>+      have_macro("FIONREAD", [h, ioctl_h].compact)</div><div class='add'>+    end</div><div class='add'>+    if fionread</div><div class='add'>+      $defs &lt;&lt; "-DFIONREAD_HEADER=\"&lt;#{fionread}&gt;\""</div><div class='add'>+      create_makefile(target)</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+    if have_func("rb_w32_ioctlsocket", "ruby.h")</div><div class='add'>+      have_func("rb_w32_is_socket", "ruby.h")</div><div class='add'>+      create_makefile(target)</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/io/wait/io-wait.gemspec b/ext/io/wait/io-wait.gemspec<br/>new file mode 100644<br/>index 0000000000..ebc1f6f5c7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/io/wait/io-wait.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/wait/io-wait.gemspec</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+_VERSION = "0.3.0"</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "io-wait"</div><div class='add'>+  spec.version       = _VERSION</div><div class='add'>+  spec.authors       = ["Nobu Nakada", "Charles Oliver Nutter"]</div><div class='add'>+  spec.email         = ["nobu@ruby-lang.org", "headius@headius.com"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Waits until IO is readable or writable without blocking.}</div><div class='add'>+  spec.description   = %q{Waits until IO is readable or writable without blocking.}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/io-wait"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z`.split("\x0").reject do |f|</div><div class='add'>+      File.identical?(f, __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features|rakelib)/|\.(?:git|travis|circleci)|appveyor|Rakefile)})</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  spec.bindir        = "exe"</div><div class='add'>+  spec.executables   = []</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+</div><div class='add'>+  jruby = true if Gem::Platform.new('java') =~ spec.platform or RUBY_ENGINE == 'jruby'</div><div class='add'>+  spec.files.delete_if do |f|</div><div class='add'>+    f.end_with?(".java") or</div><div class='add'>+      f.start_with?("ext/") &amp;&amp; (jruby ^ f.start_with?("ext/java/"))</div><div class='add'>+  end</div><div class='add'>+  if jruby</div><div class='add'>+    spec.platform = 'java'</div><div class='add'>+    spec.files &lt;&lt; "lib/io/wait.jar"</div><div class='add'>+    spec.require_paths += ["ext/java/lib"]</div><div class='add'>+  else</div><div class='add'>+    spec.extensions    = %w[ext/io/wait/extconf.rb]</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/ext/io/wait/wait.c b/ext/io/wait/wait.c<br/>index f7a7508eeb..d74afb580b 100644<br/>--- a/<a href='/ruby.git/tree/ext/io/wait/wait.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/io/wait/wait.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/io/wait/wait.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/io/wait/wait.c</a></div><div class='hunk'>@@ -1,3 +1,4 @@</div><div class='add'>+/* -*- c-file-style: "ruby"; indent-tabs-mode: t -*- */</div><div class='ctx'> /**********************************************************************</div><div class='ctx'> </div><div class='ctx'>   io/wait.c -</div><div class='hunk'>@@ -39,22 +40,18 @@</div><div class='ctx'> #define FIONREAD_POSSIBLE_P(fd) ((void)(fd),Qtrue)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-static VALUE io_ready_p _((VALUE io));</div><div class='del'>-static VALUE io_wait_readable _((int argc, VALUE *argv, VALUE io));</div><div class='del'>-static VALUE io_wait_writable _((int argc, VALUE *argv, VALUE io));</div><div class='del'>-void Init_wait _((void));</div><div class='del'>-</div><div class='add'>+#ifndef HAVE_RB_IO_WAIT</div><div class='ctx'> static struct timeval *</div><div class='ctx'> get_timeout(int argc, VALUE *argv, struct timeval *timerec)</div><div class='ctx'> {</div><div class='ctx'>     VALUE timeout = Qnil;</div><div class='ctx'>     rb_check_arity(argc, 0, 1);</div><div class='ctx'>     if (!argc || NIL_P(timeout = argv[0])) {</div><div class='del'>-	return NULL;</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	*timerec = rb_time_interval(timeout);</div><div class='del'>-	return timerec;</div><div class='add'>+        *timerec = rb_time_interval(timeout);</div><div class='add'>+        return timerec;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -63,10 +60,11 @@ wait_for_single_fd(rb_io_t *fptr, int events, struct timeval *tv)</div><div class='ctx'> {</div><div class='ctx'>     int i = rb_wait_for_single_fd(fptr-&gt;fd, events, tv);</div><div class='ctx'>     if (i &lt; 0)</div><div class='del'>-	rb_sys_fail(0);</div><div class='add'>+        rb_sys_fail(0);</div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='ctx'>     return (i &amp; events);</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='hunk'>@@ -74,6 +72,8 @@ wait_for_single_fd(rb_io_t *fptr, int events, struct timeval *tv)</div><div class='ctx'>  *</div><div class='ctx'>  * Returns number of bytes that can be read without blocking.</div><div class='ctx'>  * Returns zero if no information available.</div><div class='add'>+ *</div><div class='add'>+ * You must require 'io/wait' to use this method.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -93,127 +93,238 @@ io_nread(VALUE io)</div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RB_IO_WAIT</div><div class='add'>+static VALUE</div><div class='add'>+io_wait_event(VALUE io, int event, VALUE timeout, int return_io)</div><div class='add'>+{</div><div class='add'>+    VALUE result = rb_io_wait(io, RB_INT2NUM(event), timeout);</div><div class='add'>+</div><div class='add'>+    if (!RB_TEST(result)) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    int mask = RB_NUM2INT(result);</div><div class='add'>+</div><div class='add'>+    if (mask &amp; event) {</div><div class='add'>+        if (return_io)</div><div class='add'>+            return io;</div><div class='add'>+        else</div><div class='add'>+            return result;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return Qfalse;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   io.ready? -&gt; true, false or nil</div><div class='add'>+ *   io.ready? -&gt; truthy or falsy</div><div class='add'>+ *</div><div class='add'>+ * Returns a truthy value if input available without blocking, or a</div><div class='add'>+ * falsy value.</div><div class='ctx'>  *</div><div class='del'>- * Returns true if input available without blocking, or false.</div><div class='del'>- * Returns nil if no information available.</div><div class='add'>+ * You must require 'io/wait' to use this method.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> io_ready_p(VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='add'>+#ifndef HAVE_RB_IO_WAIT</div><div class='ctx'>     struct timeval tv = {0, 0};</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     rb_io_check_readable(fptr);</div><div class='ctx'>     if (rb_io_read_pending(fptr)) return Qtrue;</div><div class='del'>-    if (wait_for_single_fd(fptr, RB_WAITFD_IN, &amp;tv))</div><div class='del'>-	return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_RB_IO_WAIT</div><div class='add'>+    return wait_for_single_fd(fptr, RB_WAITFD_IN, &amp;tv) ? Qtrue : Qfalse;</div><div class='add'>+#else</div><div class='add'>+    return io_wait_event(io, RUBY_IO_READABLE, RB_INT2NUM(0), 1);</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* Ruby 3.2+ can define these methods. This macro indicates that case. */</div><div class='add'>+#ifndef RUBY_IO_WAIT_METHODS</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   io.wait_readable          -&gt; IO, true or nil</div><div class='del'>- *   io.wait_readable(timeout) -&gt; IO, true or nil</div><div class='add'>+ *   io.wait_readable          -&gt; truthy or falsy</div><div class='add'>+ *   io.wait_readable(timeout) -&gt; truthy or falsy</div><div class='ctx'>  *</div><div class='del'>- * Waits until IO is readable without blocking and returns +self+, or</div><div class='del'>- * +nil+ when times out.</div><div class='del'>- * Returns +true+ immediately when buffered data is available.</div><div class='add'>+ * Waits until IO is readable and returns a truthy value, or a falsy</div><div class='add'>+ * value when times out.  Returns a truthy value immediately when</div><div class='add'>+ * buffered data is available.</div><div class='add'>+ *</div><div class='add'>+ * You must require 'io/wait' to use this method.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> io_wait_readable(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='add'>+#ifndef HAVE_RB_IO_WAIT</div><div class='ctx'>     struct timeval timerec;</div><div class='ctx'>     struct timeval *tv;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     rb_io_check_readable(fptr);</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_RB_IO_WAIT</div><div class='ctx'>     tv = get_timeout(argc, argv, &amp;timerec);</div><div class='add'>+#endif</div><div class='ctx'>     if (rb_io_read_pending(fptr)) return Qtrue;</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_RB_IO_WAIT</div><div class='ctx'>     if (wait_for_single_fd(fptr, RB_WAITFD_IN, tv)) {</div><div class='del'>-	return io;</div><div class='add'>+        return io;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='add'>+#else</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='add'>+    VALUE timeout = (argc == 1 ? argv[0] : Qnil);</div><div class='add'>+</div><div class='add'>+    return io_wait_event(io, RUBY_IO_READABLE, timeout, 1);</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   io.wait_writable          -&gt; IO</div><div class='del'>- *   io.wait_writable(timeout) -&gt; IO or nil</div><div class='add'>+ *   io.wait_writable          -&gt; truthy or falsy</div><div class='add'>+ *   io.wait_writable(timeout) -&gt; truthy or falsy</div><div class='ctx'>  *</div><div class='del'>- * Waits until IO is writable without blocking and returns +self+ or</div><div class='del'>- * +nil+ when times out.</div><div class='add'>+ * Waits until IO is writable and returns a truthy value or a falsy</div><div class='add'>+ * value when times out.</div><div class='add'>+ *</div><div class='add'>+ * You must require 'io/wait' to use this method.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> io_wait_writable(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='add'>+#ifndef HAVE_RB_IO_WAIT</div><div class='ctx'>     struct timeval timerec;</div><div class='ctx'>     struct timeval *tv;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     rb_io_check_writable(fptr);</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_RB_IO_WAIT</div><div class='ctx'>     tv = get_timeout(argc, argv, &amp;timerec);</div><div class='ctx'>     if (wait_for_single_fd(fptr, RB_WAITFD_OUT, tv)) {</div><div class='del'>-	return io;</div><div class='add'>+        return io;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='add'>+#else</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='add'>+    VALUE timeout = (argc == 1 ? argv[0] : Qnil);</div><div class='add'>+</div><div class='add'>+    return io_wait_event(io, RUBY_IO_WRITABLE, timeout, 1);</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RB_IO_WAIT</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   io.wait_priority          -&gt; truthy or falsy</div><div class='add'>+ *   io.wait_priority(timeout) -&gt; truthy or falsy</div><div class='add'>+ *</div><div class='add'>+ * Waits until IO is priority and returns a truthy value or a falsy</div><div class='add'>+ * value when times out. Priority data is sent and received using</div><div class='add'>+ * the Socket::MSG_OOB flag and is typically limited to streams.</div><div class='add'>+ *</div><div class='add'>+ * You must require 'io/wait' to use this method.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_wait_priority(int argc, VALUE *argv, VALUE io)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr = NULL;</div><div class='add'>+</div><div class='add'>+    RB_IO_POINTER(io, fptr);</div><div class='add'>+    rb_io_check_readable(fptr);</div><div class='add'>+</div><div class='add'>+    if (rb_io_read_pending(fptr)) return Qtrue;</div><div class='add'>+</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='add'>+    VALUE timeout = argc == 1 ? argv[0] : Qnil;</div><div class='add'>+</div><div class='add'>+    return io_wait_event(io, RUBY_IO_PRIORITY, timeout, 1);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> wait_mode_sym(VALUE mode)</div><div class='ctx'> {</div><div class='ctx'>     if (mode == ID2SYM(rb_intern("r"))) {</div><div class='del'>-	return RB_WAITFD_IN;</div><div class='add'>+        return RB_WAITFD_IN;</div><div class='ctx'>     }</div><div class='ctx'>     if (mode == ID2SYM(rb_intern("read"))) {</div><div class='del'>-	return RB_WAITFD_IN;</div><div class='add'>+        return RB_WAITFD_IN;</div><div class='ctx'>     }</div><div class='ctx'>     if (mode == ID2SYM(rb_intern("readable"))) {</div><div class='del'>-	return RB_WAITFD_IN;</div><div class='add'>+        return RB_WAITFD_IN;</div><div class='ctx'>     }</div><div class='ctx'>     if (mode == ID2SYM(rb_intern("w"))) {</div><div class='del'>-	return RB_WAITFD_OUT;</div><div class='add'>+        return RB_WAITFD_OUT;</div><div class='ctx'>     }</div><div class='ctx'>     if (mode == ID2SYM(rb_intern("write"))) {</div><div class='del'>-	return RB_WAITFD_OUT;</div><div class='add'>+        return RB_WAITFD_OUT;</div><div class='ctx'>     }</div><div class='ctx'>     if (mode == ID2SYM(rb_intern("writable"))) {</div><div class='del'>-	return RB_WAITFD_OUT;</div><div class='add'>+        return RB_WAITFD_OUT;</div><div class='ctx'>     }</div><div class='ctx'>     if (mode == ID2SYM(rb_intern("rw"))) {</div><div class='del'>-	return RB_WAITFD_IN|RB_WAITFD_OUT;</div><div class='add'>+        return RB_WAITFD_IN|RB_WAITFD_OUT;</div><div class='ctx'>     }</div><div class='ctx'>     if (mode == ID2SYM(rb_intern("read_write"))) {</div><div class='del'>-	return RB_WAITFD_IN|RB_WAITFD_OUT;</div><div class='add'>+        return RB_WAITFD_IN|RB_WAITFD_OUT;</div><div class='ctx'>     }</div><div class='ctx'>     if (mode == ID2SYM(rb_intern("readable_writable"))) {</div><div class='del'>-	return RB_WAITFD_IN|RB_WAITFD_OUT;</div><div class='add'>+        return RB_WAITFD_IN|RB_WAITFD_OUT;</div><div class='ctx'>     }</div><div class='ctx'>     rb_raise(rb_eArgError, "unsupported mode: %"PRIsVALUE, mode);</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RB_IO_WAIT</div><div class='add'>+static inline rb_io_event_t</div><div class='add'>+io_event_from_value(VALUE value)</div><div class='add'>+{</div><div class='add'>+    int events = RB_NUM2INT(value);</div><div class='add'>+</div><div class='add'>+    if (events &lt;= 0) rb_raise(rb_eArgError, "Events must be positive integer!");</div><div class='add'>+</div><div class='add'>+    return events;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   io.wait(timeout = nil, mode = :read) -&gt; IO, true or nil</div><div class='add'>+ *   io.wait(events, timeout) -&gt; event mask, false or nil</div><div class='add'>+ *   io.wait(timeout = nil, mode = :read) -&gt; self, true, or false</div><div class='add'>+ *</div><div class='add'>+ * Waits until the IO becomes ready for the specified events and returns the</div><div class='add'>+ * subset of events that become ready, or a falsy value when times out.</div><div class='add'>+ *</div><div class='add'>+ * The events can be a bit mask of +IO::READABLE+, +IO::WRITABLE+ or</div><div class='add'>+ * +IO::PRIORITY+.</div><div class='add'>+ *</div><div class='add'>+ * Returns a truthy value immediately when buffered data is available.</div><div class='ctx'>  *</div><div class='del'>- * Waits until IO is readable or writable without blocking and returns</div><div class='del'>- * +self+, or +nil+ when times out.</div><div class='del'>- * Returns +true+ immediately when buffered data is available.</div><div class='ctx'>  * Optional parameter +mode+ is one of +:read+, +:write+, or</div><div class='ctx'>  * +:read_write+.</div><div class='add'>+ *</div><div class='add'>+ * You must require 'io/wait' to use this method.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-io_wait_readwrite(int argc, VALUE *argv, VALUE io)</div><div class='add'>+io_wait(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> {</div><div class='add'>+#ifndef HAVE_RB_IO_WAIT</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     struct timeval timerec;</div><div class='ctx'>     struct timeval *tv = NULL;</div><div class='hunk'>@@ -222,23 +333,77 @@ io_wait_readwrite(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     for (i = 0; i &lt; argc; ++i) {</div><div class='del'>-	if (SYMBOL_P(argv[i])) {</div><div class='del'>-	    event |= wait_mode_sym(argv[i]);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    *(tv = &amp;timerec) = rb_time_interval(argv[i]);</div><div class='del'>-	}</div><div class='add'>+        if (SYMBOL_P(argv[i])) {</div><div class='add'>+            event |= wait_mode_sym(argv[i]);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            *(tv = &amp;timerec) = rb_time_interval(argv[i]);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     /* rb_time_interval() and might_mode() might convert the argument */</div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='ctx'>     if (!event) event = RB_WAITFD_IN;</div><div class='ctx'>     if ((event &amp; RB_WAITFD_IN) &amp;&amp; rb_io_read_pending(fptr))</div><div class='del'>-	return Qtrue;</div><div class='add'>+        return Qtrue;</div><div class='ctx'>     if (wait_for_single_fd(fptr, event, tv))</div><div class='del'>-	return io;</div><div class='add'>+        return io;</div><div class='ctx'>     return Qnil;</div><div class='add'>+#else</div><div class='add'>+    VALUE timeout = Qundef;</div><div class='add'>+    rb_io_event_t events = 0;</div><div class='add'>+    int i, return_io = 0;</div><div class='add'>+</div><div class='add'>+    /* The documented signature for this method is actually incorrect.</div><div class='add'>+     * A single timeout is allowed in any position, and multiple symbols can be given.</div><div class='add'>+     * Whether this is intentional or not, I don't know, and as such I consider this to</div><div class='add'>+     * be a legacy/slow path. */</div><div class='add'>+    if (argc != 2 || (RB_SYMBOL_P(argv[0]) || RB_SYMBOL_P(argv[1]))) {</div><div class='add'>+        /* We'd prefer to return the actual mask, but this form would return the io itself: */</div><div class='add'>+        return_io = 1;</div><div class='add'>+</div><div class='add'>+        /* Slow/messy path: */</div><div class='add'>+        for (i = 0; i &lt; argc; i += 1) {</div><div class='add'>+            if (RB_SYMBOL_P(argv[i])) {</div><div class='add'>+                events |= wait_mode_sym(argv[i]);</div><div class='add'>+            }</div><div class='add'>+            else if (timeout == Qundef) {</div><div class='add'>+                rb_time_interval(timeout = argv[i]);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rb_raise(rb_eArgError, "timeout given more than once");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (timeout == Qundef) timeout = Qnil;</div><div class='add'>+</div><div class='add'>+        if (events == 0) {</div><div class='add'>+            events = RUBY_IO_READABLE;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else /* argc == 2 and neither are symbols */ {</div><div class='add'>+        /* This is the fast path: */</div><div class='add'>+        events = io_event_from_value(argv[0]);</div><div class='add'>+        timeout = argv[1];</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (events &amp; RUBY_IO_READABLE) {</div><div class='add'>+        rb_io_t *fptr = NULL;</div><div class='add'>+        RB_IO_POINTER(io, fptr);</div><div class='add'>+</div><div class='add'>+        if (rb_io_read_pending(fptr)) {</div><div class='add'>+            /* This was the original behaviour: */</div><div class='add'>+            if (return_io) return Qtrue;</div><div class='add'>+            /* New behaviour always returns an event mask: */</div><div class='add'>+            else return RB_INT2NUM(RUBY_IO_READABLE);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return io_wait_event(io, events, timeout, return_io);</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#endif /* RUBY_IO_WAIT_METHODS */</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * IO wait methods</div><div class='ctx'>  */</div><div class='hunk'>@@ -246,9 +411,20 @@ io_wait_readwrite(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> void</div><div class='ctx'> Init_wait(void)</div><div class='ctx'> {</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    RB_EXT_RACTOR_SAFE(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     rb_define_method(rb_cIO, "nread", io_nread, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "ready?", io_ready_p, 0);</div><div class='del'>-    rb_define_method(rb_cIO, "wait", io_wait_readwrite, -1);</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_IO_WAIT_METHODS</div><div class='add'>+    rb_define_method(rb_cIO, "wait", io_wait, -1);</div><div class='add'>+</div><div class='ctx'>     rb_define_method(rb_cIO, "wait_readable", io_wait_readable, -1);</div><div class='ctx'>     rb_define_method(rb_cIO, "wait_writable", io_wait_writable, -1);</div><div class='add'>+#ifdef HAVE_RB_IO_WAIT</div><div class='add'>+    rb_define_method(rb_cIO, "wait_priority", io_wait_priority, -1);</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/json/VERSION b/ext/json/VERSION<br/>new file mode 100644<br/>index 0000000000..ec1cf33c3f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/json/VERSION?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/VERSION</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+2.6.3</div><div class='head'>diff --git a/ext/json/depend b/ext/json/depend<br/>new file mode 100644<br/>index 0000000000..0301ce074c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/json/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/depend</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/json/extconf.rb b/ext/json/extconf.rb<br/>index 7595d58a98..8a99b6a5c8 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/extconf.rb</a></div><div class='hunk'>@@ -1,2 +1,3 @@</div><div class='ctx'> require 'mkmf'</div><div class='add'>+</div><div class='ctx'> create_makefile('json')</div><div class='head'>diff --git a/ext/json/generator/depend b/ext/json/generator/depend<br/>index 54e8ae3eb4..28ef06b36d 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/generator/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/generator/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/generator/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/generator/depend</a></div><div class='hunk'>@@ -4,10 +4,170 @@ generator.o: generator.c generator.h $(srcdir)/../fbuffer/fbuffer.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> generator.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> generator.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+generator.o: $(hdrdir)/ruby.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> generator.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> generator.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> generator.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> generator.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rmatch.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+generator.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> generator.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> generator.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> generator.o: $(hdrdir)/ruby/oniguruma.h</div><div class='hunk'>@@ -16,8 +176,7 @@ generator.o: $(hdrdir)/ruby/regex.h</div><div class='ctx'> generator.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> generator.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> generator.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-generator.o: $(top_srcdir)/ext/json/fbuffer/fbuffer.h</div><div class='del'>-generator.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+generator.o: $(srcdir)/../fbuffer/fbuffer.h</div><div class='ctx'> generator.o: generator.c</div><div class='ctx'> generator.o: generator.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/json/generator/generator.c b/ext/json/generator/generator.c<br/>index f061267f0d..98d0ea46c3 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/generator/generator.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/generator/generator.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/generator/generator.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/generator/generator.c</a></div><div class='hunk'>@@ -1,11 +1,6 @@</div><div class='ctx'> #include "../fbuffer/fbuffer.h"</div><div class='ctx'> #include "generator.h"</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_RUBY_ENCODING_H</div><div class='del'>-static VALUE CEncoding_UTF_8;</div><div class='del'>-static ID i_encoding, i_encode;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> static VALUE mJSON, mExt, mGenerator, cState, mGeneratorMethods, mObject,</div><div class='ctx'>              mHash, mArray,</div><div class='ctx'> #ifdef RUBY_INTEGER_UNIFICATION</div><div class='hunk'>@@ -15,14 +10,13 @@ static VALUE mJSON, mExt, mGenerator, cState, mGeneratorMethods, mObject,</div><div class='ctx'> #endif</div><div class='ctx'>              mFloat, mString, mString_Extend,</div><div class='ctx'>              mTrueClass, mFalseClass, mNilClass, eGeneratorError,</div><div class='del'>-             eNestingError, CRegexp_MULTILINE, CJSON_SAFE_STATE_PROTOTYPE,</div><div class='del'>-             i_SAFE_STATE_PROTOTYPE;</div><div class='add'>+             eNestingError;</div><div class='ctx'> </div><div class='ctx'> static ID i_to_s, i_to_json, i_new, i_indent, i_space, i_space_before,</div><div class='ctx'>           i_object_nl, i_array_nl, i_max_nesting, i_allow_nan, i_ascii_only,</div><div class='ctx'>           i_pack, i_unpack, i_create_id, i_extend, i_key_p,</div><div class='ctx'>           i_aref, i_send, i_respond_to_p, i_match, i_keys, i_depth,</div><div class='del'>-          i_buffer_initial_length, i_dup;</div><div class='add'>+          i_buffer_initial_length, i_dup, i_escape_slash;</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Copyright 2001-2004 Unicode, Inc.</div><div class='hunk'>@@ -130,7 +124,7 @@ static void unicode_escape_to_buffer(FBuffer *buffer, char buf[6], UTF16</div><div class='ctx'> </div><div class='ctx'> /* Converts string to a JSON string in FBuffer buffer, where all but the ASCII</div><div class='ctx'>  * and control characters are JSON escaped. */</div><div class='del'>-static void convert_UTF8_to_JSON_ASCII(FBuffer *buffer, VALUE string)</div><div class='add'>+static void convert_UTF8_to_JSON_ASCII(FBuffer *buffer, VALUE string, char escape_slash)</div><div class='ctx'> {</div><div class='ctx'>     const UTF8 *source = (UTF8 *) RSTRING_PTR(string);</div><div class='ctx'>     const UTF8 *sourceEnd = source + RSTRING_LEN(string);</div><div class='hunk'>@@ -180,6 +174,11 @@ static void convert_UTF8_to_JSON_ASCII(FBuffer *buffer, VALUE string)</div><div class='ctx'>                         case '"':</div><div class='ctx'>                             fbuffer_append(buffer, "\\\"", 2);</div><div class='ctx'>                             break;</div><div class='add'>+                        case '/':</div><div class='add'>+                            if(escape_slash) {</div><div class='add'>+                                fbuffer_append(buffer, "\\/", 2);</div><div class='add'>+                                break;</div><div class='add'>+                            }</div><div class='ctx'>                         default:</div><div class='ctx'>                             fbuffer_append_char(buffer, (char)ch);</div><div class='ctx'>                             break;</div><div class='hunk'>@@ -229,7 +228,7 @@ static void convert_UTF8_to_JSON_ASCII(FBuffer *buffer, VALUE string)</div><div class='ctx'>  * characters required by the JSON standard are JSON escaped. The remaining</div><div class='ctx'>  * characters (should be UTF8) are just passed through and appended to the</div><div class='ctx'>  * result. */</div><div class='del'>-static void convert_UTF8_to_JSON(FBuffer *buffer, VALUE string)</div><div class='add'>+static void convert_UTF8_to_JSON(FBuffer *buffer, VALUE string, char escape_slash)</div><div class='ctx'> {</div><div class='ctx'>     const char *ptr = RSTRING_PTR(string), *p;</div><div class='ctx'>     unsigned long len = RSTRING_LEN(string), start = 0, end = 0;</div><div class='hunk'>@@ -237,6 +236,7 @@ static void convert_UTF8_to_JSON(FBuffer *buffer, VALUE string)</div><div class='ctx'>     int escape_len;</div><div class='ctx'>     unsigned char c;</div><div class='ctx'>     char buf[6] = { '\\', 'u' };</div><div class='add'>+    int ascii_only = rb_enc_str_asciionly_p(string);</div><div class='ctx'> </div><div class='ctx'>     for (start = 0, end = 0; end &lt; len;) {</div><div class='ctx'>         p = ptr + end;</div><div class='hunk'>@@ -279,16 +279,25 @@ static void convert_UTF8_to_JSON(FBuffer *buffer, VALUE string)</div><div class='ctx'>                     escape =  "\\\"";</div><div class='ctx'>                     escape_len = 2;</div><div class='ctx'>                     break;</div><div class='add'>+                case '/':</div><div class='add'>+                    if(escape_slash) {</div><div class='add'>+                        escape = "\\/";</div><div class='add'>+                        escape_len = 2;</div><div class='add'>+                        break;</div><div class='add'>+                    }</div><div class='ctx'>                 default:</div><div class='ctx'>                     {</div><div class='del'>-                        unsigned short clen = trailingBytesForUTF8[c] + 1;</div><div class='del'>-                        if (end + clen &gt; len) {</div><div class='del'>-                            rb_raise(rb_path2class("JSON::GeneratorError"),</div><div class='del'>-                                    "partial character in source, but hit end");</div><div class='del'>-                        }</div><div class='del'>-                        if (!isLegalUTF8((UTF8 *) p, clen)) {</div><div class='del'>-                            rb_raise(rb_path2class("JSON::GeneratorError"),</div><div class='del'>-                                    "source sequence is illegal/malformed utf-8");</div><div class='add'>+                        unsigned short clen = 1;</div><div class='add'>+                        if (!ascii_only) {</div><div class='add'>+                            clen += trailingBytesForUTF8[c];</div><div class='add'>+                            if (end + clen &gt; len) {</div><div class='add'>+                                rb_raise(rb_path2class("JSON::GeneratorError"),</div><div class='add'>+                                        "partial character in source, but hit end");</div><div class='add'>+                            }</div><div class='add'>+                            if (!isLegalUTF8((UTF8 *) p, clen)) {</div><div class='add'>+                                rb_raise(rb_path2class("JSON::GeneratorError"),</div><div class='add'>+                                        "source sequence is illegal/malformed utf-8");</div><div class='add'>+                            }</div><div class='ctx'>                         }</div><div class='ctx'>                         end += clen;</div><div class='ctx'>                     }</div><div class='hunk'>@@ -324,6 +333,76 @@ static char *fstrndup(const char *ptr, unsigned long len) {</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='add'>+/* Explanation of the following: that's the only way to not pollute</div><div class='add'>+ * standard library's docs with GeneratorMethods::&lt;ClassName&gt; which</div><div class='add'>+ * are uninformative and take a large place in a list of classes</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::Array</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::Bignum</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::FalseClass</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::Fixnum</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::Float</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::Hash</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::Integer</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::NilClass</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::Object</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::String</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::String::Extend</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-module: JSON::Ext::Generator::GeneratorMethods::TrueClass</div><div class='add'>+ * :nodoc:</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq: to_json(state = nil)</div><div class='ctx'>  *</div><div class='hunk'>@@ -535,13 +614,18 @@ static size_t State_memsize(const void *ptr)</div><div class='ctx'>     return size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifndef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+#   undef RUBY_TYPED_FROZEN_SHAREABLE</div><div class='add'>+#   define RUBY_TYPED_FROZEN_SHAREABLE 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #ifdef NEW_TYPEDDATA_WRAPPER</div><div class='ctx'> static const rb_data_type_t JSON_Generator_State_type = {</div><div class='ctx'>     "JSON/Generator/State",</div><div class='ctx'>     {NULL, State_free, State_memsize,},</div><div class='ctx'> #ifdef RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'>     0, 0,</div><div class='del'>-    RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='add'>+    RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE,</div><div class='ctx'> #endif</div><div class='ctx'> };</div><div class='ctx'> #endif</div><div class='hunk'>@@ -642,6 +726,8 @@ static VALUE cState_configure(VALUE self, VALUE opts)</div><div class='ctx'>     state-&gt;allow_nan = RTEST(tmp);</div><div class='ctx'>     tmp = rb_hash_aref(opts, ID2SYM(i_ascii_only));</div><div class='ctx'>     state-&gt;ascii_only = RTEST(tmp);</div><div class='add'>+    tmp = rb_hash_aref(opts, ID2SYM(i_escape_slash));</div><div class='add'>+    state-&gt;escape_slash = RTEST(tmp);</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -676,6 +762,7 @@ static VALUE cState_to_h(VALUE self)</div><div class='ctx'>     rb_hash_aset(result, ID2SYM(i_allow_nan), state-&gt;allow_nan ? Qtrue : Qfalse);</div><div class='ctx'>     rb_hash_aset(result, ID2SYM(i_ascii_only), state-&gt;ascii_only ? Qtrue : Qfalse);</div><div class='ctx'>     rb_hash_aset(result, ID2SYM(i_max_nesting), LONG2FIX(state-&gt;max_nesting));</div><div class='add'>+    rb_hash_aset(result, ID2SYM(i_escape_slash), state-&gt;escape_slash ? Qtrue : Qfalse);</div><div class='ctx'>     rb_hash_aset(result, ID2SYM(i_depth), LONG2FIX(state-&gt;depth));</div><div class='ctx'>     rb_hash_aset(result, ID2SYM(i_buffer_initial_length), LONG2FIX(state-&gt;buffer_initial_length));</div><div class='ctx'>     return result;</div><div class='hunk'>@@ -692,7 +779,7 @@ static VALUE cState_aref(VALUE self, VALUE name)</div><div class='ctx'>     if (RTEST(rb_funcall(self, i_respond_to_p, 1, name))) {</div><div class='ctx'>         return rb_funcall(self, i_send, 1, name);</div><div class='ctx'>     } else {</div><div class='del'>-        return rb_ivar_get(self, rb_intern_str(rb_str_concat(rb_str_new2("@"), name)));</div><div class='add'>+        return rb_attr_get(self, rb_intern_str(rb_str_concat(rb_str_new2("@"), name)));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -715,43 +802,83 @@ static VALUE cState_aset(VALUE self, VALUE name, VALUE value)</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void generate_json_object(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)</div><div class='add'>+struct hash_foreach_arg {</div><div class='add'>+    FBuffer *buffer;</div><div class='add'>+    JSON_Generator_State *state;</div><div class='add'>+    VALUE Vstate;</div><div class='add'>+    int iter;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+json_object_i(VALUE key, VALUE val, VALUE _arg)</div><div class='ctx'> {</div><div class='add'>+    struct hash_foreach_arg *arg = (struct hash_foreach_arg *)_arg;</div><div class='add'>+    FBuffer *buffer = arg-&gt;buffer;</div><div class='add'>+    JSON_Generator_State *state = arg-&gt;state;</div><div class='add'>+    VALUE Vstate = arg-&gt;Vstate;</div><div class='add'>+</div><div class='ctx'>     char *object_nl = state-&gt;object_nl;</div><div class='ctx'>     long object_nl_len = state-&gt;object_nl_len;</div><div class='ctx'>     char *indent = state-&gt;indent;</div><div class='ctx'>     long indent_len = state-&gt;indent_len;</div><div class='del'>-    long max_nesting = state-&gt;max_nesting;</div><div class='ctx'>     char *delim = FBUFFER_PTR(state-&gt;object_delim);</div><div class='ctx'>     long delim_len = FBUFFER_LEN(state-&gt;object_delim);</div><div class='ctx'>     char *delim2 = FBUFFER_PTR(state-&gt;object_delim2);</div><div class='ctx'>     long delim2_len = FBUFFER_LEN(state-&gt;object_delim2);</div><div class='add'>+    long depth = state-&gt;depth;</div><div class='add'>+    int j;</div><div class='add'>+    VALUE klass, key_to_s;</div><div class='add'>+</div><div class='add'>+    if (arg-&gt;iter &gt; 0) fbuffer_append(buffer, delim, delim_len);</div><div class='add'>+    if (object_nl) {</div><div class='add'>+        fbuffer_append(buffer, object_nl, object_nl_len);</div><div class='add'>+    }</div><div class='add'>+    if (indent) {</div><div class='add'>+        for (j = 0; j &lt; depth; j++) {</div><div class='add'>+            fbuffer_append(buffer, indent, indent_len);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    klass = CLASS_OF(key);</div><div class='add'>+    if (klass == rb_cString) {</div><div class='add'>+        key_to_s = key;</div><div class='add'>+    } else if (klass == rb_cSymbol) {</div><div class='add'>+        key_to_s = rb_id2str(SYM2ID(key));</div><div class='add'>+    } else {</div><div class='add'>+        key_to_s = rb_funcall(key, i_to_s, 0);</div><div class='add'>+    }</div><div class='add'>+    Check_Type(key_to_s, T_STRING);</div><div class='add'>+    generate_json(buffer, Vstate, state, key_to_s);</div><div class='add'>+    fbuffer_append(buffer, delim2, delim2_len);</div><div class='add'>+    generate_json(buffer, Vstate, state, val);</div><div class='add'>+</div><div class='add'>+    arg-&gt;iter++;</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void generate_json_object(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    char *object_nl = state-&gt;object_nl;</div><div class='add'>+    long object_nl_len = state-&gt;object_nl_len;</div><div class='add'>+    char *indent = state-&gt;indent;</div><div class='add'>+    long indent_len = state-&gt;indent_len;</div><div class='add'>+    long max_nesting = state-&gt;max_nesting;</div><div class='ctx'>     long depth = ++state-&gt;depth;</div><div class='del'>-    int i, j;</div><div class='del'>-    VALUE key, key_to_s, keys;</div><div class='add'>+    int j;</div><div class='add'>+    struct hash_foreach_arg arg;</div><div class='add'>+</div><div class='ctx'>     if (max_nesting != 0 &amp;&amp; depth &gt; max_nesting) {</div><div class='ctx'>         fbuffer_free(buffer);</div><div class='ctx'>         rb_raise(eNestingError, "nesting of %ld is too deep", --state-&gt;depth);</div><div class='ctx'>     }</div><div class='ctx'>     fbuffer_append_char(buffer, '{');</div><div class='del'>-    keys = rb_funcall(obj, i_keys, 0);</div><div class='del'>-    for(i = 0; i &lt; RARRAY_LEN(keys); i++) {</div><div class='del'>-        if (i &gt; 0) fbuffer_append(buffer, delim, delim_len);</div><div class='del'>-        if (object_nl) {</div><div class='del'>-            fbuffer_append(buffer, object_nl, object_nl_len);</div><div class='del'>-        }</div><div class='del'>-        if (indent) {</div><div class='del'>-            for (j = 0; j &lt; depth; j++) {</div><div class='del'>-                fbuffer_append(buffer, indent, indent_len);</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        key = rb_ary_entry(keys, i);</div><div class='del'>-        key_to_s = rb_funcall(key, i_to_s, 0);</div><div class='del'>-        Check_Type(key_to_s, T_STRING);</div><div class='del'>-        generate_json(buffer, Vstate, state, key_to_s);</div><div class='del'>-        fbuffer_append(buffer, delim2, delim2_len);</div><div class='del'>-        generate_json(buffer, Vstate, state, rb_hash_aref(obj, key));</div><div class='del'>-    }</div><div class='add'>+</div><div class='add'>+    arg.buffer = buffer;</div><div class='add'>+    arg.state = state;</div><div class='add'>+    arg.Vstate = Vstate;</div><div class='add'>+    arg.iter = 0;</div><div class='add'>+    rb_hash_foreach(obj, json_object_i, (VALUE)&amp;arg);</div><div class='add'>+</div><div class='ctx'>     depth = --state-&gt;depth;</div><div class='ctx'>     if (object_nl) {</div><div class='ctx'>         fbuffer_append(buffer, object_nl, object_nl_len);</div><div class='hunk'>@@ -802,16 +929,27 @@ static void generate_json_array(FBuffer *buffer, VALUE Vstate, JSON_Generator_St</div><div class='ctx'>     fbuffer_append_char(buffer, ']');</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RUBY_ENCODING_H</div><div class='add'>+static int enc_utf8_compatible_p(rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    if (enc == rb_usascii_encoding()) return 1;</div><div class='add'>+    if (enc == rb_utf8_encoding()) return 1;</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static void generate_json_string(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     fbuffer_append_char(buffer, '"');</div><div class='ctx'> #ifdef HAVE_RUBY_ENCODING_H</div><div class='del'>-    obj = rb_funcall(obj, i_encode, 1, CEncoding_UTF_8);</div><div class='add'>+    if (!enc_utf8_compatible_p(rb_enc_get(obj))) {</div><div class='add'>+        obj = rb_str_export_to_enc(obj, rb_utf8_encoding());</div><div class='add'>+    }</div><div class='ctx'> #endif</div><div class='ctx'>     if (state-&gt;ascii_only) {</div><div class='del'>-        convert_UTF8_to_JSON_ASCII(buffer, obj);</div><div class='add'>+        convert_UTF8_to_JSON_ASCII(buffer, obj, state-&gt;escape_slash);</div><div class='ctx'>     } else {</div><div class='del'>-        convert_UTF8_to_JSON(buffer, obj);</div><div class='add'>+        convert_UTF8_to_JSON(buffer, obj, state-&gt;escape_slash);</div><div class='ctx'>     }</div><div class='ctx'>     fbuffer_append_char(buffer, '"');</div><div class='ctx'> }</div><div class='hunk'>@@ -859,10 +997,10 @@ static void generate_json_float(FBuffer *buffer, VALUE Vstate, JSON_Generator_St</div><div class='ctx'>     if (!allow_nan) {</div><div class='ctx'>         if (isinf(value)) {</div><div class='ctx'>             fbuffer_free(buffer);</div><div class='del'>-            rb_raise(eGeneratorError, "%u: %"PRIsVALUE" not allowed in JSON", __LINE__, RB_OBJ_STRING(tmp));</div><div class='add'>+            rb_raise(eGeneratorError, "%"PRIsVALUE" not allowed in JSON", RB_OBJ_STRING(tmp));</div><div class='ctx'>         } else if (isnan(value)) {</div><div class='ctx'>             fbuffer_free(buffer);</div><div class='del'>-            rb_raise(eGeneratorError, "%u: %"PRIsVALUE" not allowed in JSON", __LINE__, RB_OBJ_STRING(tmp));</div><div class='add'>+            rb_raise(eGeneratorError, "%"PRIsVALUE" not allowed in JSON", RB_OBJ_STRING(tmp));</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     fbuffer_append_str(buffer, tmp);</div><div class='hunk'>@@ -970,6 +1108,8 @@ static VALUE cState_generate(VALUE self, VALUE obj)</div><div class='ctx'>  * * *allow_nan*: true if NaN, Infinity, and -Infinity should be</div><div class='ctx'>  *   generated, otherwise an exception is thrown, if these values are</div><div class='ctx'>  *   encountered. This options defaults to false.</div><div class='add'>+ * * *ascii_only*: true if only ASCII characters should be generated. This</div><div class='add'>+ *   option defaults to false.</div><div class='ctx'>  * * *buffer_initial_length*: sets the initial length of the generator's</div><div class='ctx'>  *   internal buffer.</div><div class='ctx'>  */</div><div class='hunk'>@@ -1025,10 +1165,7 @@ static VALUE cState_from_state_s(VALUE self, VALUE opts)</div><div class='ctx'>     } else if (rb_obj_is_kind_of(opts, rb_cHash)) {</div><div class='ctx'>         return rb_funcall(self, i_new, 1, opts);</div><div class='ctx'>     } else {</div><div class='del'>-        if (NIL_P(CJSON_SAFE_STATE_PROTOTYPE)) {</div><div class='del'>-            CJSON_SAFE_STATE_PROTOTYPE = rb_const_get(mJSON, i_SAFE_STATE_PROTOTYPE);</div><div class='del'>-        }</div><div class='del'>-        return rb_funcall(CJSON_SAFE_STATE_PROTOTYPE, i_dup, 0);</div><div class='add'>+        return rb_class_new_instance(0, NULL, cState);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1253,6 +1390,31 @@ static VALUE cState_max_nesting_set(VALUE self, VALUE depth)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ * call-seq: escape_slash</div><div class='add'>+ *</div><div class='add'>+ * If this boolean is true, the forward slashes will be escaped in</div><div class='add'>+ * the json output.</div><div class='add'>+ */</div><div class='add'>+static VALUE cState_escape_slash(VALUE self)</div><div class='add'>+{</div><div class='add'>+    GET_STATE(self);</div><div class='add'>+    return state-&gt;escape_slash ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq: escape_slash=(depth)</div><div class='add'>+ *</div><div class='add'>+ * This sets whether or not the forward slashes will be escaped in</div><div class='add'>+ * the json output.</div><div class='add'>+ */</div><div class='add'>+static VALUE cState_escape_slash_set(VALUE self, VALUE enable)</div><div class='add'>+{</div><div class='add'>+    GET_STATE(self);</div><div class='add'>+    state-&gt;escape_slash = RTEST(enable);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  * call-seq: allow_nan?</div><div class='ctx'>  *</div><div class='ctx'>  * Returns true, if NaN, Infinity, and -Infinity should be generated, otherwise</div><div class='hunk'>@@ -1267,7 +1429,7 @@ static VALUE cState_allow_nan_p(VALUE self)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq: ascii_only?</div><div class='ctx'>  *</div><div class='del'>- * Returns true, if NaN, Infinity, and -Infinity should be generated, otherwise</div><div class='add'>+ * Returns true, if only ASCII characters should be generated. Otherwise</div><div class='ctx'>  * returns false.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE cState_ascii_only_p(VALUE self)</div><div class='hunk'>@@ -1335,6 +1497,10 @@ static VALUE cState_buffer_initial_length_set(VALUE self, VALUE buffer_initial_l</div><div class='ctx'>  */</div><div class='ctx'> void Init_generator(void)</div><div class='ctx'> {</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #undef rb_intern</div><div class='ctx'>     rb_require("json/common");</div><div class='ctx'> </div><div class='hunk'>@@ -1344,6 +1510,8 @@ void Init_generator(void)</div><div class='ctx'> </div><div class='ctx'>     eGeneratorError = rb_path2class("JSON::GeneratorError");</div><div class='ctx'>     eNestingError = rb_path2class("JSON::NestingError");</div><div class='add'>+    rb_gc_register_mark_object(eGeneratorError);</div><div class='add'>+    rb_gc_register_mark_object(eNestingError);</div><div class='ctx'> </div><div class='ctx'>     cState = rb_define_class_under(mGenerator, "State", rb_cObject);</div><div class='ctx'>     rb_define_alloc_func(cState, cState_s_allocate);</div><div class='hunk'>@@ -1362,6 +1530,9 @@ void Init_generator(void)</div><div class='ctx'>     rb_define_method(cState, "array_nl=", cState_array_nl_set, 1);</div><div class='ctx'>     rb_define_method(cState, "max_nesting", cState_max_nesting, 0);</div><div class='ctx'>     rb_define_method(cState, "max_nesting=", cState_max_nesting_set, 1);</div><div class='add'>+    rb_define_method(cState, "escape_slash", cState_escape_slash, 0);</div><div class='add'>+    rb_define_method(cState, "escape_slash?", cState_escape_slash, 0);</div><div class='add'>+    rb_define_method(cState, "escape_slash=", cState_escape_slash_set, 1);</div><div class='ctx'>     rb_define_method(cState, "check_circular?", cState_check_circular_p, 0);</div><div class='ctx'>     rb_define_method(cState, "allow_nan?", cState_allow_nan_p, 0);</div><div class='ctx'>     rb_define_method(cState, "ascii_only?", cState_ascii_only_p, 0);</div><div class='hunk'>@@ -1409,7 +1580,6 @@ void Init_generator(void)</div><div class='ctx'>     mNilClass = rb_define_module_under(mGeneratorMethods, "NilClass");</div><div class='ctx'>     rb_define_method(mNilClass, "to_json", mNilClass_to_json, -1);</div><div class='ctx'> </div><div class='del'>-    CRegexp_MULTILINE = rb_const_get(rb_cRegexp, rb_intern("MULTILINE"));</div><div class='ctx'>     i_to_s = rb_intern("to_s");</div><div class='ctx'>     i_to_json = rb_intern("to_json");</div><div class='ctx'>     i_new = rb_intern("new");</div><div class='hunk'>@@ -1419,6 +1589,7 @@ void Init_generator(void)</div><div class='ctx'>     i_object_nl = rb_intern("object_nl");</div><div class='ctx'>     i_array_nl = rb_intern("array_nl");</div><div class='ctx'>     i_max_nesting = rb_intern("max_nesting");</div><div class='add'>+    i_escape_slash = rb_intern("escape_slash");</div><div class='ctx'>     i_allow_nan = rb_intern("allow_nan");</div><div class='ctx'>     i_ascii_only = rb_intern("ascii_only");</div><div class='ctx'>     i_depth = rb_intern("depth");</div><div class='hunk'>@@ -1434,11 +1605,4 @@ void Init_generator(void)</div><div class='ctx'>     i_match = rb_intern("match");</div><div class='ctx'>     i_keys = rb_intern("keys");</div><div class='ctx'>     i_dup = rb_intern("dup");</div><div class='del'>-#ifdef HAVE_RUBY_ENCODING_H</div><div class='del'>-    CEncoding_UTF_8 = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-8"));</div><div class='del'>-    i_encoding = rb_intern("encoding");</div><div class='del'>-    i_encode = rb_intern("encode");</div><div class='del'>-#endif</div><div class='del'>-    i_SAFE_STATE_PROTOTYPE = rb_intern("SAFE_STATE_PROTOTYPE");</div><div class='del'>-    CJSON_SAFE_STATE_PROTOTYPE = Qnil;</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/json/generator/generator.h b/ext/json/generator/generator.h<br/>index c367a6209a..3ebd622554 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/generator/generator.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/generator/generator.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/generator/generator.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/generator/generator.h</a></div><div class='hunk'>@@ -49,8 +49,8 @@ static const UTF32 halfMask = 0x3FFUL;</div><div class='ctx'> static unsigned char isLegalUTF8(const UTF8 *source, unsigned long length);</div><div class='ctx'> static void unicode_escape(char *buf, UTF16 character);</div><div class='ctx'> static void unicode_escape_to_buffer(FBuffer *buffer, char buf[6], UTF16 character);</div><div class='del'>-static void convert_UTF8_to_JSON_ASCII(FBuffer *buffer, VALUE string);</div><div class='del'>-static void convert_UTF8_to_JSON(FBuffer *buffer, VALUE string);</div><div class='add'>+static void convert_UTF8_to_JSON_ASCII(FBuffer *buffer, VALUE string, char escape_slash);</div><div class='add'>+static void convert_UTF8_to_JSON(FBuffer *buffer, VALUE string, char escape_slash);</div><div class='ctx'> static char *fstrndup(const char *ptr, unsigned long len);</div><div class='ctx'> </div><div class='ctx'> /* ruby api and some helpers */</div><div class='hunk'>@@ -72,6 +72,7 @@ typedef struct JSON_Generator_StateStruct {</div><div class='ctx'>     long max_nesting;</div><div class='ctx'>     char allow_nan;</div><div class='ctx'>     char ascii_only;</div><div class='add'>+    char escape_slash;</div><div class='ctx'>     long depth;</div><div class='ctx'>     long buffer_initial_length;</div><div class='ctx'> } JSON_Generator_State;</div><div class='hunk'>@@ -150,6 +151,8 @@ static VALUE cState_allow_nan_p(VALUE self);</div><div class='ctx'> static VALUE cState_ascii_only_p(VALUE self);</div><div class='ctx'> static VALUE cState_depth(VALUE self);</div><div class='ctx'> static VALUE cState_depth_set(VALUE self, VALUE depth);</div><div class='add'>+static VALUE cState_escape_slash(VALUE self);</div><div class='add'>+static VALUE cState_escape_slash_set(VALUE self, VALUE depth);</div><div class='ctx'> static FBuffer *cState_prepare_buffer(VALUE self);</div><div class='ctx'> #ifndef ZALLOC</div><div class='ctx'> #define ZALLOC(type) ((type *)ruby_zalloc(sizeof(type)))</div><div class='head'>diff --git a/ext/json/json.gemspec b/ext/json/json.gemspec<br/>index 1c18efbedc..948e92c501 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/json.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/json.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/json.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/json.gemspec</a></div><div class='hunk'>@@ -1,40 +1,67 @@</div><div class='ctx'> # -*- encoding: utf-8 -*-</div><div class='del'>-# stub: json 2.1.0 ruby lib</div><div class='del'>-# stub: ext/json/ext/generator/extconf.rb ext/json/ext/parser/extconf.rb ext/json/extconf.rb</div><div class='ctx'> </div><div class='ctx'> Gem::Specification.new do |s|</div><div class='del'>-  s.name = "json".freeze</div><div class='del'>-  s.version = "2.1.0"</div><div class='add'>+  s.name = "json"</div><div class='add'>+  s.version = File.read(File.expand_path('../VERSION', __FILE__)).chomp</div><div class='ctx'> </div><div class='del'>-  s.required_rubygems_version = Gem::Requirement.new("&gt;= 0".freeze) if s.respond_to? :required_rubygems_version=</div><div class='del'>-  s.require_paths = ["lib".freeze]</div><div class='del'>-  s.authors = ["Florian Frank".freeze]</div><div class='del'>-  s.date = "2017-04-18"</div><div class='del'>-  s.description = "This is a JSON implementation as a Ruby extension in C.".freeze</div><div class='del'>-  s.email = "flori@ping.de".freeze</div><div class='del'>-  s.extensions = ["ext/json/ext/generator/extconf.rb".freeze, "ext/json/ext/parser/extconf.rb".freeze, "ext/json/extconf.rb".freeze]</div><div class='del'>-  s.extra_rdoc_files = ["README.md".freeze]</div><div class='del'>-  s.files = ["./tests/test_helper.rb".freeze, ".gitignore".freeze, ".travis.yml".freeze, "CHANGES.md".freeze, "Gemfile".freeze, "README-json-jruby.md".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "data/example.json".freeze, "data/index.html".freeze, "data/prototype.js".freeze, "diagrams/.keep".freeze, "ext/json/ext/fbuffer/fbuffer.h".freeze, "ext/json/ext/generator/depend".freeze, "ext/json/ext/generator/extconf.rb".freeze, "ext/json/ext/generator/generator.c".freeze, "ext/json/ext/generator/generator.h".freeze, "ext/json/ext/parser/depend".freeze, "ext/json/ext/parser/extconf.rb".freeze, "ext/json/ext/parser/parser.c".freeze, "ext/json/ext/parser/parser.h".freeze, "ext/json/ext/parser/parser.rl".freeze, "ext/json/extconf.rb".freeze, "install.rb".freeze, "java/src/json/ext/ByteListTranscoder.java".freeze, "java/src/json/ext/Generator.java".freeze, "java/src/json/ext/GeneratorMethods.java".freeze, "java/src/json/ext/GeneratorService.java".freeze, "java/src/json/ext/GeneratorState.java".freeze, "java/src/json/ext/OptionsReader.java".freeze, "java/src/json/ext/Parser.java".freeze, "java/src/json/ext/Parser.rl".freeze, "java/src/json/ext/ParserService.java".freeze, "java/src/json/ext/RuntimeInfo.java".freeze, "java/src/json/ext/StringDecoder.java".freeze, "java/src/json/ext/StringEncoder.java".freeze, "java/src/json/ext/Utils.java".freeze, "json-java.gemspec".freeze, "json.gemspec".freeze, "json_pure.gemspec".freeze, "lib/json.rb".freeze, "lib/json/add/bigdecimal.rb".freeze, "lib/json/add/complex.rb".freeze, "lib/json/add/core.rb".freeze, "lib/json/add/date.rb".freeze, "lib/json/add/date_time.rb".freeze, "lib/json/add/exception.rb".freeze, "lib/json/add/ostruct.rb".freeze, "lib/json/add/range.rb".freeze, "lib/json/add/rational.rb".freeze, "lib/json/add/regexp.rb".freeze, "lib/json/add/struct.rb".freeze, "lib/json/add/symbol.rb".freeze, "lib/json/add/time.rb".freeze, "lib/json/common.rb".freeze, "lib/json/ext.rb".freeze, "lib/json/ext/.keep".freeze, "lib/json/generic_object.rb".freeze, "lib/json/pure.rb".freeze, "lib/json/pure/generator.rb".freeze, "lib/json/pure/parser.rb".freeze, "lib/json/version.rb".freeze, "references/rfc7159.txt".freeze, "tests/fixtures/fail10.json".freeze, "tests/fixtures/fail11.json".freeze, "tests/fixtures/fail12.json".freeze, "tests/fixtures/fail13.json".freeze, "tests/fixtures/fail14.json".freeze, "tests/fixtures/fail18.json".freeze, "tests/fixtures/fail19.json".freeze, "tests/fixtures/fail2.json".freeze, "tests/fixtures/fail20.json".freeze, "tests/fixtures/fail21.json".freeze, "tests/fixtures/fail22.json".freeze, "tests/fixtures/fail23.json".freeze, "tests/fixtures/fail24.json".freeze, "tests/fixtures/fail25.json".freeze, "tests/fixtures/fail27.json".freeze, "tests/fixtures/fail28.json".freeze, "tests/fixtures/fail3.json".freeze, "tests/fixtures/fail4.json".freeze, "tests/fixtures/fail5.json".freeze, "tests/fixtures/fail6.json".freeze, "tests/fixtures/fail7.json".freeze, "tests/fixtures/fail8.json".freeze, "tests/fixtures/fail9.json".freeze, "tests/fixtures/obsolete_fail1.json".freeze, "tests/fixtures/pass1.json".freeze, "tests/fixtures/pass15.json".freeze, "tests/fixtures/pass16.json".freeze, "tests/fixtures/pass17.json".freeze, "tests/fixtures/pass2.json".freeze, "tests/fixtures/pass26.json".freeze, "tests/fixtures/pass3.json".freeze, "tests/json_addition_test.rb".freeze, "tests/json_common_interface_test.rb".freeze, "tests/json_encoding_test.rb".freeze, "tests/json_ext_parser_test.rb".freeze, "tests/json_fixtures_test.rb".freeze, "tests/json_generator_test.rb".freeze, "tests/json_generic_object_test.rb".freeze, "tests/json_parser_test.rb".freeze, "tests/json_string_matching_test.rb".freeze, "tests/test_helper.rb".freeze, "tools/diff.sh".freeze, "tools/fuzz.rb".freeze, "tools/server.rb".freeze]</div><div class='del'>-  s.homepage = "http://flori.github.com/json".freeze</div><div class='del'>-  s.licenses = ["Ruby".freeze]</div><div class='del'>-  s.rdoc_options = ["--title".freeze, "JSON implemention for Ruby".freeze, "--main".freeze, "README.md".freeze]</div><div class='del'>-  s.required_ruby_version = Gem::Requirement.new("&gt;= 1.9".freeze)</div><div class='del'>-  s.rubygems_version = "2.6.11".freeze</div><div class='del'>-  s.summary = "JSON Implementation for Ruby".freeze</div><div class='del'>-  s.test_files = ["./tests/test_helper.rb".freeze]</div><div class='add'>+  s.summary = "JSON Implementation for Ruby"</div><div class='add'>+  s.description = "This is a JSON implementation as a Ruby extension in C."</div><div class='add'>+  s.licenses = ["Ruby"]</div><div class='add'>+  s.authors = ["Florian Frank"]</div><div class='add'>+  s.email = "flori@ping.de"</div><div class='ctx'> </div><div class='del'>-  if s.respond_to? :specification_version then</div><div class='del'>-    s.specification_version = 4</div><div class='add'>+  s.extensions = ["ext/json/ext/generator/extconf.rb", "ext/json/ext/parser/extconf.rb", "ext/json/extconf.rb"]</div><div class='add'>+  s.extra_rdoc_files = ["README.md"]</div><div class='add'>+  s.rdoc_options = ["--title", "JSON implementation for Ruby", "--main", "README.md"]</div><div class='add'>+  s.files = [</div><div class='add'>+    "CHANGES.md",</div><div class='add'>+    "LICENSE",</div><div class='add'>+    "README.md",</div><div class='add'>+    "VERSION",</div><div class='add'>+    "ext/json/ext/fbuffer/fbuffer.h",</div><div class='add'>+    "ext/json/ext/generator/depend",</div><div class='add'>+    "ext/json/ext/generator/extconf.rb",</div><div class='add'>+    "ext/json/ext/generator/generator.c",</div><div class='add'>+    "ext/json/ext/generator/generator.h",</div><div class='add'>+    "ext/json/ext/parser/depend",</div><div class='add'>+    "ext/json/ext/parser/extconf.rb",</div><div class='add'>+    "ext/json/ext/parser/parser.c",</div><div class='add'>+    "ext/json/ext/parser/parser.h",</div><div class='add'>+    "ext/json/ext/parser/parser.rl",</div><div class='add'>+    "ext/json/extconf.rb",</div><div class='add'>+    "json.gemspec",</div><div class='add'>+    "lib/json.rb",</div><div class='add'>+    "lib/json/add/bigdecimal.rb",</div><div class='add'>+    "lib/json/add/complex.rb",</div><div class='add'>+    "lib/json/add/core.rb",</div><div class='add'>+    "lib/json/add/date.rb",</div><div class='add'>+    "lib/json/add/date_time.rb",</div><div class='add'>+    "lib/json/add/exception.rb",</div><div class='add'>+    "lib/json/add/ostruct.rb",</div><div class='add'>+    "lib/json/add/range.rb",</div><div class='add'>+    "lib/json/add/rational.rb",</div><div class='add'>+    "lib/json/add/regexp.rb",</div><div class='add'>+    "lib/json/add/set.rb",</div><div class='add'>+    "lib/json/add/struct.rb",</div><div class='add'>+    "lib/json/add/symbol.rb",</div><div class='add'>+    "lib/json/add/time.rb",</div><div class='add'>+    "lib/json/common.rb",</div><div class='add'>+    "lib/json/ext.rb",</div><div class='add'>+    "lib/json/generic_object.rb",</div><div class='add'>+    "lib/json/pure.rb",</div><div class='add'>+    "lib/json/pure/generator.rb",</div><div class='add'>+    "lib/json/pure/parser.rb",</div><div class='add'>+    "lib/json/version.rb",</div><div class='add'>+  ]</div><div class='add'>+  s.homepage = "http://flori.github.com/json"</div><div class='add'>+  s.metadata = {</div><div class='add'>+    'bug_tracker_uri'   =&gt; 'https://github.com/flori/json/issues',</div><div class='add'>+    'changelog_uri'     =&gt; 'https://github.com/flori/json/blob/master/CHANGES.md',</div><div class='add'>+    'documentation_uri' =&gt; 'http://flori.github.io/json/doc/index.html',</div><div class='add'>+    'homepage_uri'      =&gt; 'http://flori.github.io/json/',</div><div class='add'>+    'source_code_uri'   =&gt; 'https://github.com/flori/json',</div><div class='add'>+    'wiki_uri'          =&gt; 'https://github.com/flori/json/wiki'</div><div class='add'>+  }</div><div class='ctx'> </div><div class='del'>-    if Gem::Version.new(Gem::VERSION) &gt;= Gem::Version.new('1.2.0') then</div><div class='del'>-      s.add_development_dependency(%q&lt;rake&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-      s.add_development_dependency(%q&lt;test-unit&gt;.freeze, ["~&gt; 2.0"])</div><div class='del'>-    else</div><div class='del'>-      s.add_dependency(%q&lt;rake&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-      s.add_dependency(%q&lt;test-unit&gt;.freeze, ["~&gt; 2.0"])</div><div class='del'>-    end</div><div class='del'>-  else</div><div class='del'>-    s.add_dependency(%q&lt;rake&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-    s.add_dependency(%q&lt;test-unit&gt;.freeze, ["~&gt; 2.0"])</div><div class='del'>-  end</div><div class='add'>+  s.required_ruby_version = Gem::Requirement.new("&gt;= 2.3")</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/json/lib/json.rb b/ext/json/lib/json.rb<br/>index b5a6912415..1e64bfcb1a 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/lib/json.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/lib/json.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/lib/json.rb</a></div><div class='hunk'>@@ -2,55 +2,575 @@</div><div class='ctx'> require 'json/common'</div><div class='ctx'> </div><div class='ctx'> ##</div><div class='del'>-# = JavaScript Object Notation (JSON)</div><div class='add'>+# = JavaScript \Object Notation (\JSON)</div><div class='ctx'> #</div><div class='del'>-# JSON is a lightweight data-interchange format. It is easy for us</div><div class='del'>-# humans to read and write. Plus, equally simple for machines to generate or parse.</div><div class='del'>-# JSON is completely language agnostic, making it the ideal interchange format.</div><div class='add'>+# \JSON is a lightweight data-interchange format.</div><div class='ctx'> #</div><div class='del'>-# Built on two universally available structures:</div><div class='del'>-#   1. A collection of name/value pairs. Often referred to as an _object_, hash table, record, struct, keyed list, or associative array.</div><div class='del'>-#   2. An ordered list of values. More commonly called an _array_, vector, sequence or list.</div><div class='add'>+# A \JSON value is one of the following:</div><div class='add'>+# - Double-quoted text:  &lt;tt&gt;"foo"&lt;/tt&gt;.</div><div class='add'>+# - Number:  +1+, +1.0+, +2.0e2+.</div><div class='add'>+# - Boolean:  +true+, +false+.</div><div class='add'>+# - Null: +null+.</div><div class='add'>+# - \Array: an ordered list of values, enclosed by square brackets:</div><div class='add'>+#     ["foo", 1, 1.0, 2.0e2, true, false, null]</div><div class='ctx'> #</div><div class='del'>-# To read more about JSON visit: http://json.org</div><div class='add'>+# - \Object: a collection of name/value pairs, enclosed by curly braces;</div><div class='add'>+#   each name is double-quoted text;</div><div class='add'>+#   the values may be any \JSON values:</div><div class='add'>+#     {"a": "foo", "b": 1, "c": 1.0, "d": 2.0e2, "e": true, "f": false, "g": null}</div><div class='ctx'> #</div><div class='del'>-# == Parsing JSON</div><div class='add'>+# A \JSON array or object may contain nested arrays, objects, and scalars</div><div class='add'>+# to any depth:</div><div class='add'>+#   {"foo": {"bar": 1, "baz": 2}, "bat": [0, 1, 2]}</div><div class='add'>+#   [{"foo": 0, "bar": 1}, ["baz", 2]]</div><div class='ctx'> #</div><div class='del'>-# To parse a JSON string received by another application or generated within</div><div class='del'>-# your existing application:</div><div class='add'>+# == Using \Module \JSON</div><div class='ctx'> #</div><div class='add'>+# To make module \JSON available in your code, begin with:</div><div class='ctx'> #   require 'json'</div><div class='ctx'> #</div><div class='del'>-#   my_hash = JSON.parse('{"hello": "goodbye"}')</div><div class='del'>-#   puts my_hash["hello"] =&gt; "goodbye"</div><div class='add'>+# All examples here assume that this has been done.</div><div class='ctx'> #</div><div class='del'>-# Notice the extra quotes &lt;tt&gt;''&lt;/tt&gt; around the hash notation. Ruby expects</div><div class='del'>-# the argument to be a string and can't convert objects like a hash or array.</div><div class='add'>+# === Parsing \JSON</div><div class='ctx'> #</div><div class='del'>-# Ruby converts your string into a hash</div><div class='add'>+# You can parse a \String containing \JSON data using</div><div class='add'>+# either of two methods:</div><div class='add'>+# - &lt;tt&gt;JSON.parse(source, opts)&lt;/tt&gt;</div><div class='add'>+# - &lt;tt&gt;JSON.parse!(source, opts)&lt;/tt&gt;</div><div class='ctx'> #</div><div class='del'>-# == Generating JSON</div><div class='add'>+# where</div><div class='add'>+# - +source+ is a Ruby object.</div><div class='add'>+# - +opts+ is a \Hash object containing options</div><div class='add'>+#   that control both input allowed and output formatting.</div><div class='ctx'> #</div><div class='del'>-# Creating a JSON string for communication or serialization is</div><div class='del'>-# just as simple.</div><div class='add'>+# The difference between the two methods</div><div class='add'>+# is that JSON.parse! omits some checks</div><div class='add'>+# and may not be safe for some +source+ data;</div><div class='add'>+# use it only for data from trusted sources.</div><div class='add'>+# Use the safer method JSON.parse for less trusted sources.</div><div class='ctx'> #</div><div class='del'>-#   require 'json'</div><div class='add'>+# ==== Parsing \JSON Arrays</div><div class='ctx'> #</div><div class='del'>-#   my_hash = {:hello =&gt; "goodbye"}</div><div class='del'>-#   puts JSON.generate(my_hash) =&gt; "{\"hello\":\"goodbye\"}"</div><div class='add'>+# When +source+ is a \JSON array, JSON.parse by default returns a Ruby \Array:</div><div class='add'>+#   json = '["foo", 1, 1.0, 2.0e2, true, false, null]'</div><div class='add'>+#   ruby = JSON.parse(json)</div><div class='add'>+#   ruby # =&gt; ["foo", 1, 1.0, 200.0, true, false, nil]</div><div class='add'>+#   ruby.class # =&gt; Array</div><div class='ctx'> #</div><div class='del'>-# Or an alternative way:</div><div class='add'>+# The \JSON array may contain nested arrays, objects, and scalars</div><div class='add'>+# to any depth:</div><div class='add'>+#   json = '[{"foo": 0, "bar": 1}, ["baz", 2]]'</div><div class='add'>+#   JSON.parse(json) # =&gt; [{"foo"=&gt;0, "bar"=&gt;1}, ["baz", 2]]</div><div class='ctx'> #</div><div class='del'>-#   require 'json'</div><div class='del'>-#   puts {:hello =&gt; "goodbye"}.to_json =&gt; "{\"hello\":\"goodbye\"}"</div><div class='add'>+# ==== Parsing \JSON \Objects</div><div class='add'>+#</div><div class='add'>+# When the source is a \JSON object, JSON.parse by default returns a Ruby \Hash:</div><div class='add'>+#   json = '{"a": "foo", "b": 1, "c": 1.0, "d": 2.0e2, "e": true, "f": false, "g": null}'</div><div class='add'>+#   ruby = JSON.parse(json)</div><div class='add'>+#   ruby # =&gt; {"a"=&gt;"foo", "b"=&gt;1, "c"=&gt;1.0, "d"=&gt;200.0, "e"=&gt;true, "f"=&gt;false, "g"=&gt;nil}</div><div class='add'>+#   ruby.class # =&gt; Hash</div><div class='add'>+#</div><div class='add'>+# The \JSON object may contain nested arrays, objects, and scalars</div><div class='add'>+# to any depth:</div><div class='add'>+#   json = '{"foo": {"bar": 1, "baz": 2}, "bat": [0, 1, 2]}'</div><div class='add'>+#   JSON.parse(json) # =&gt; {"foo"=&gt;{"bar"=&gt;1, "baz"=&gt;2}, "bat"=&gt;[0, 1, 2]}</div><div class='add'>+#</div><div class='add'>+# ==== Parsing \JSON Scalars</div><div class='add'>+#</div><div class='add'>+# When the source is a \JSON scalar (not an array or object),</div><div class='add'>+# JSON.parse returns a Ruby scalar.</div><div class='add'>+#</div><div class='add'>+# \String:</div><div class='add'>+#   ruby = JSON.parse('"foo"')</div><div class='add'>+#   ruby # =&gt; 'foo'</div><div class='add'>+#   ruby.class # =&gt; String</div><div class='add'>+# \Integer:</div><div class='add'>+#   ruby = JSON.parse('1')</div><div class='add'>+#   ruby # =&gt; 1</div><div class='add'>+#   ruby.class # =&gt; Integer</div><div class='add'>+# \Float:</div><div class='add'>+#   ruby = JSON.parse('1.0')</div><div class='add'>+#   ruby # =&gt; 1.0</div><div class='add'>+#   ruby.class # =&gt; Float</div><div class='add'>+#   ruby = JSON.parse('2.0e2')</div><div class='add'>+#   ruby # =&gt; 200</div><div class='add'>+#   ruby.class # =&gt; Float</div><div class='add'>+# Boolean:</div><div class='add'>+#   ruby = JSON.parse('true')</div><div class='add'>+#   ruby # =&gt; true</div><div class='add'>+#   ruby.class # =&gt; TrueClass</div><div class='add'>+#   ruby = JSON.parse('false')</div><div class='add'>+#   ruby # =&gt; false</div><div class='add'>+#   ruby.class # =&gt; FalseClass</div><div class='add'>+# Null:</div><div class='add'>+#   ruby = JSON.parse('null')</div><div class='add'>+#   ruby # =&gt; nil</div><div class='add'>+#   ruby.class # =&gt; NilClass</div><div class='add'>+#</div><div class='add'>+# ==== Parsing Options</div><div class='add'>+#</div><div class='add'>+# ====== Input Options</div><div class='add'>+#</div><div class='add'>+# Option +max_nesting+ (\Integer) specifies the maximum nesting depth allowed;</div><div class='add'>+# defaults to +100+; specify +false+ to disable depth checking.</div><div class='add'>+#</div><div class='add'>+# With the default, +false+:</div><div class='add'>+#   source = '[0, [1, [2, [3]]]]'</div><div class='add'>+#   ruby = JSON.parse(source)</div><div class='add'>+#   ruby # =&gt; [0, [1, [2, [3]]]]</div><div class='add'>+# Too deep:</div><div class='add'>+#   # Raises JSON::NestingError (nesting of 2 is too deep):</div><div class='add'>+#   JSON.parse(source, {max_nesting: 1})</div><div class='add'>+# Bad value:</div><div class='add'>+#   # Raises TypeError (wrong argument type Symbol (expected Fixnum)):</div><div class='add'>+#   JSON.parse(source, {max_nesting: :foo})</div><div class='add'>+#</div><div class='add'>+# ---</div><div class='add'>+#</div><div class='add'>+# Option +allow_nan+ (boolean) specifies whether to allow</div><div class='add'>+# NaN, Infinity, and MinusInfinity in +source+;</div><div class='add'>+# defaults to +false+.</div><div class='add'>+#</div><div class='add'>+# With the default, +false+:</div><div class='add'>+#   # Raises JSON::ParserError (225: unexpected token at '[NaN]'):</div><div class='add'>+#   JSON.parse('[NaN]')</div><div class='add'>+#   # Raises JSON::ParserError (232: unexpected token at '[Infinity]'):</div><div class='add'>+#   JSON.parse('[Infinity]')</div><div class='add'>+#   # Raises JSON::ParserError (248: unexpected token at '[-Infinity]'):</div><div class='add'>+#   JSON.parse('[-Infinity]')</div><div class='add'>+# Allow:</div><div class='add'>+#   source = '[NaN, Infinity, -Infinity]'</div><div class='add'>+#   ruby = JSON.parse(source, {allow_nan: true})</div><div class='add'>+#   ruby # =&gt; [NaN, Infinity, -Infinity]</div><div class='add'>+#</div><div class='add'>+# ====== Output Options</div><div class='add'>+#</div><div class='add'>+# Option +symbolize_names+ (boolean) specifies whether returned \Hash keys</div><div class='add'>+# should be Symbols;</div><div class='add'>+# defaults to +false+ (use Strings).</div><div class='add'>+#</div><div class='add'>+# With the default, +false+:</div><div class='add'>+#   source = '{"a": "foo", "b": 1.0, "c": true, "d": false, "e": null}'</div><div class='add'>+#   ruby = JSON.parse(source)</div><div class='add'>+#   ruby # =&gt; {"a"=&gt;"foo", "b"=&gt;1.0, "c"=&gt;true, "d"=&gt;false, "e"=&gt;nil}</div><div class='add'>+# Use Symbols:</div><div class='add'>+#   ruby = JSON.parse(source, {symbolize_names: true})</div><div class='add'>+#   ruby # =&gt; {:a=&gt;"foo", :b=&gt;1.0, :c=&gt;true, :d=&gt;false, :e=&gt;nil}</div><div class='add'>+#</div><div class='add'>+# ---</div><div class='add'>+#</div><div class='add'>+# Option +object_class+ (\Class) specifies the Ruby class to be used</div><div class='add'>+# for each \JSON object;</div><div class='add'>+# defaults to \Hash.</div><div class='add'>+#</div><div class='add'>+# With the default, \Hash:</div><div class='add'>+#   source = '{"a": "foo", "b": 1.0, "c": true, "d": false, "e": null}'</div><div class='add'>+#   ruby = JSON.parse(source)</div><div class='add'>+#   ruby.class # =&gt; Hash</div><div class='add'>+# Use class \OpenStruct:</div><div class='add'>+#   ruby = JSON.parse(source, {object_class: OpenStruct})</div><div class='add'>+#   ruby # =&gt; #&lt;OpenStruct a="foo", b=1.0, c=true, d=false, e=nil&gt;</div><div class='add'>+#</div><div class='add'>+# ---</div><div class='add'>+#</div><div class='add'>+# Option +array_class+ (\Class) specifies the Ruby class to be used</div><div class='add'>+# for each \JSON array;</div><div class='add'>+# defaults to \Array.</div><div class='add'>+#</div><div class='add'>+# With the default, \Array:</div><div class='add'>+#   source = '["foo", 1.0, true, false, null]'</div><div class='add'>+#   ruby = JSON.parse(source)</div><div class='add'>+#   ruby.class # =&gt; Array</div><div class='add'>+# Use class \Set:</div><div class='add'>+#   ruby = JSON.parse(source, {array_class: Set})</div><div class='add'>+#   ruby # =&gt; #&lt;Set: {"foo", 1.0, true, false, nil}&gt;</div><div class='add'>+#</div><div class='add'>+# ---</div><div class='add'>+#</div><div class='add'>+# Option +create_additions+ (boolean) specifies whether to use \JSON additions in parsing.</div><div class='add'>+# See {\JSON Additions}[#module-JSON-label-JSON+Additions].</div><div class='add'>+#</div><div class='add'>+# === Generating \JSON</div><div class='add'>+#</div><div class='add'>+# To generate a Ruby \String containing \JSON data,</div><div class='add'>+# use method &lt;tt&gt;JSON.generate(source, opts)&lt;/tt&gt;, where</div><div class='add'>+# - +source+ is a Ruby object.</div><div class='add'>+# - +opts+ is a \Hash object containing options</div><div class='add'>+#   that control both input allowed and output formatting.</div><div class='add'>+#</div><div class='add'>+# ==== Generating \JSON from Arrays</div><div class='add'>+#</div><div class='add'>+# When the source is a Ruby \Array, JSON.generate returns</div><div class='add'>+# a \String containing a \JSON array:</div><div class='add'>+#   ruby = [0, 's', :foo]</div><div class='add'>+#   json = JSON.generate(ruby)</div><div class='add'>+#   json # =&gt; '[0,"s","foo"]'</div><div class='add'>+#</div><div class='add'>+# The Ruby \Array array may contain nested arrays, hashes, and scalars</div><div class='add'>+# to any depth:</div><div class='add'>+#   ruby = [0, [1, 2], {foo: 3, bar: 4}]</div><div class='add'>+#   json = JSON.generate(ruby)</div><div class='add'>+#   json # =&gt; '[0,[1,2],{"foo":3,"bar":4}]'</div><div class='add'>+#</div><div class='add'>+# ==== Generating \JSON from Hashes</div><div class='add'>+#</div><div class='add'>+# When the source is a Ruby \Hash, JSON.generate returns</div><div class='add'>+# a \String containing a \JSON object:</div><div class='add'>+#   ruby = {foo: 0, bar: 's', baz: :bat}</div><div class='add'>+#   json = JSON.generate(ruby)</div><div class='add'>+#   json # =&gt; '{"foo":0,"bar":"s","baz":"bat"}'</div><div class='add'>+#</div><div class='add'>+# The Ruby \Hash array may contain nested arrays, hashes, and scalars</div><div class='add'>+# to any depth:</div><div class='add'>+#   ruby = {foo: [0, 1], bar: {baz: 2, bat: 3}, bam: :bad}</div><div class='add'>+#   json = JSON.generate(ruby)</div><div class='add'>+#   json # =&gt; '{"foo":[0,1],"bar":{"baz":2,"bat":3},"bam":"bad"}'</div><div class='add'>+#</div><div class='add'>+# ==== Generating \JSON from Other Objects</div><div class='add'>+#</div><div class='add'>+# When the source is neither an \Array nor a \Hash,</div><div class='add'>+# the generated \JSON data depends on the class of the source.</div><div class='add'>+#</div><div class='add'>+# When the source is a Ruby \Integer or \Float, JSON.generate returns</div><div class='add'>+# a \String containing a \JSON number:</div><div class='add'>+#   JSON.generate(42) # =&gt; '42'</div><div class='add'>+#   JSON.generate(0.42) # =&gt; '0.42'</div><div class='add'>+#</div><div class='add'>+# When the source is a Ruby \String, JSON.generate returns</div><div class='add'>+# a \String containing a \JSON string (with double-quotes):</div><div class='add'>+#   JSON.generate('A string') # =&gt; '"A string"'</div><div class='add'>+#</div><div class='add'>+# When the source is +true+, +false+ or +nil+, JSON.generate returns</div><div class='add'>+# a \String containing the corresponding \JSON token:</div><div class='add'>+#   JSON.generate(true) # =&gt; 'true'</div><div class='add'>+#   JSON.generate(false) # =&gt; 'false'</div><div class='add'>+#   JSON.generate(nil) # =&gt; 'null'</div><div class='add'>+#</div><div class='add'>+# When the source is none of the above, JSON.generate returns</div><div class='add'>+# a \String containing a \JSON string representation of the source:</div><div class='add'>+#   JSON.generate(:foo) # =&gt; '"foo"'</div><div class='add'>+#   JSON.generate(Complex(0, 0)) # =&gt; '"0+0i"'</div><div class='add'>+#   JSON.generate(Dir.new('.')) # =&gt; '"#&lt;Dir&gt;"'</div><div class='add'>+#</div><div class='add'>+# ==== Generating Options</div><div class='add'>+#</div><div class='add'>+# ====== Input Options</div><div class='ctx'> #</div><div class='del'>-# &lt;tt&gt;JSON.generate&lt;/tt&gt; only allows objects or arrays to be converted</div><div class='del'>-# to JSON syntax. &lt;tt&gt;to_json&lt;/tt&gt;, however, accepts many Ruby classes</div><div class='del'>-# even though it acts only as a method for serialization:</div><div class='add'>+# Option +allow_nan+ (boolean) specifies whether</div><div class='add'>+# +NaN+, +Infinity+, and &lt;tt&gt;-Infinity&lt;/tt&gt; may be generated;</div><div class='add'>+# defaults to +false+.</div><div class='ctx'> #</div><div class='add'>+# With the default, +false+:</div><div class='add'>+#   # Raises JSON::GeneratorError (920: NaN not allowed in JSON):</div><div class='add'>+#   JSON.generate(JSON::NaN)</div><div class='add'>+#   # Raises JSON::GeneratorError (917: Infinity not allowed in JSON):</div><div class='add'>+#   JSON.generate(JSON::Infinity)</div><div class='add'>+#   # Raises JSON::GeneratorError (917: -Infinity not allowed in JSON):</div><div class='add'>+#   JSON.generate(JSON::MinusInfinity)</div><div class='add'>+#</div><div class='add'>+# Allow:</div><div class='add'>+#   ruby = [Float::NaN, Float::Infinity, Float::MinusInfinity]</div><div class='add'>+#   JSON.generate(ruby, allow_nan: true) # =&gt; '[NaN,Infinity,-Infinity]'</div><div class='add'>+#</div><div class='add'>+# ---</div><div class='add'>+#</div><div class='add'>+# Option +max_nesting+ (\Integer) specifies the maximum nesting depth</div><div class='add'>+# in +obj+; defaults to +100+.</div><div class='add'>+#</div><div class='add'>+# With the default, +100+:</div><div class='add'>+#   obj = [[[[[[0]]]]]]</div><div class='add'>+#   JSON.generate(obj) # =&gt; '[[[[[[0]]]]]]'</div><div class='add'>+#</div><div class='add'>+# Too deep:</div><div class='add'>+#   # Raises JSON::NestingError (nesting of 2 is too deep):</div><div class='add'>+#   JSON.generate(obj, max_nesting: 2)</div><div class='add'>+#</div><div class='add'>+# ====== Output Options</div><div class='add'>+#</div><div class='add'>+# The default formatting options generate the most compact</div><div class='add'>+# \JSON data, all on one line and with no whitespace.</div><div class='add'>+#</div><div class='add'>+# You can use these formatting options to generate</div><div class='add'>+# \JSON data in a more open format, using whitespace.</div><div class='add'>+# See also JSON.pretty_generate.</div><div class='add'>+#</div><div class='add'>+# - Option +array_nl+ (\String) specifies a string (usually a newline)</div><div class='add'>+#   to be inserted after each \JSON array; defaults to the empty \String, &lt;tt&gt;''&lt;/tt&gt;.</div><div class='add'>+# - Option +object_nl+ (\String) specifies a string (usually a newline)</div><div class='add'>+#   to be inserted after each \JSON object; defaults to the empty \String, &lt;tt&gt;''&lt;/tt&gt;.</div><div class='add'>+# - Option +indent+ (\String) specifies the string (usually spaces) to be</div><div class='add'>+#   used for indentation; defaults to the empty \String, &lt;tt&gt;''&lt;/tt&gt;;</div><div class='add'>+#   defaults to the empty \String, &lt;tt&gt;''&lt;/tt&gt;;</div><div class='add'>+#   has no effect unless options +array_nl+ or +object_nl+ specify newlines.</div><div class='add'>+# - Option +space+ (\String) specifies a string (usually a space) to be</div><div class='add'>+#   inserted after the colon in each \JSON object's pair;</div><div class='add'>+#   defaults to the empty \String, &lt;tt&gt;''&lt;/tt&gt;.</div><div class='add'>+# - Option +space_before+ (\String) specifies a string (usually a space) to be</div><div class='add'>+#   inserted before the colon in each \JSON object's pair;</div><div class='add'>+#   defaults to the empty \String, &lt;tt&gt;''&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# In this example, +obj+ is used first to generate the shortest</div><div class='add'>+# \JSON data (no whitespace), then again with all formatting options</div><div class='add'>+# specified:</div><div class='add'>+#</div><div class='add'>+#   obj = {foo: [:bar, :baz], bat: {bam: 0, bad: 1}}</div><div class='add'>+#   json = JSON.generate(obj)</div><div class='add'>+#   puts 'Compact:', json</div><div class='add'>+#   opts = {</div><div class='add'>+#     array_nl: "\n",</div><div class='add'>+#     object_nl: "\n",</div><div class='add'>+#     indent: '  ',</div><div class='add'>+#     space_before: ' ',</div><div class='add'>+#     space: ' '</div><div class='add'>+#   }</div><div class='add'>+#   puts 'Open:', JSON.generate(obj, opts)</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#   Compact:</div><div class='add'>+#   {"foo":["bar","baz"],"bat":{"bam":0,"bad":1}}</div><div class='add'>+#   Open:</div><div class='add'>+#   {</div><div class='add'>+#     "foo" : [</div><div class='add'>+#       "bar",</div><div class='add'>+#       "baz"</div><div class='add'>+#   ],</div><div class='add'>+#     "bat" : {</div><div class='add'>+#       "bam" : 0,</div><div class='add'>+#       "bad" : 1</div><div class='add'>+#     }</div><div class='add'>+#   }</div><div class='add'>+#</div><div class='add'>+# == \JSON Additions</div><div class='add'>+#</div><div class='add'>+# When you "round trip" a non-\String object from Ruby to \JSON and back,</div><div class='add'>+# you have a new \String, instead of the object you began with:</div><div class='add'>+#   ruby0 = Range.new(0, 2)</div><div class='add'>+#   json = JSON.generate(ruby0)</div><div class='add'>+#   json # =&gt; '0..2"'</div><div class='add'>+#   ruby1 = JSON.parse(json)</div><div class='add'>+#   ruby1 # =&gt; '0..2'</div><div class='add'>+#   ruby1.class # =&gt; String</div><div class='add'>+#</div><div class='add'>+# You can use \JSON _additions_ to preserve the original object.</div><div class='add'>+# The addition is an extension of a ruby class, so that:</div><div class='add'>+# - \JSON.generate stores more information in the \JSON string.</div><div class='add'>+# - \JSON.parse, called with option +create_additions+,</div><div class='add'>+#   uses that information to create a proper Ruby object.</div><div class='add'>+#</div><div class='add'>+# This example shows a \Range being generated into \JSON</div><div class='add'>+# and parsed back into Ruby, both without and with</div><div class='add'>+# the addition for \Range:</div><div class='add'>+#   ruby = Range.new(0, 2)</div><div class='add'>+#   # This passage does not use the addition for Range.</div><div class='add'>+#   json0 = JSON.generate(ruby)</div><div class='add'>+#   ruby0 = JSON.parse(json0)</div><div class='add'>+#   # This passage uses the addition for Range.</div><div class='add'>+#   require 'json/add/range'</div><div class='add'>+#   json1 = JSON.generate(ruby)</div><div class='add'>+#   ruby1 = JSON.parse(json1, create_additions: true)</div><div class='add'>+#   # Make a nice display.</div><div class='add'>+#   display = &lt;&lt;EOT</div><div class='add'>+#   Generated JSON:</div><div class='add'>+#     Without addition:  #{json0} (#{json0.class})</div><div class='add'>+#     With addition:     #{json1} (#{json1.class})</div><div class='add'>+#   Parsed JSON:</div><div class='add'>+#     Without addition:  #{ruby0.inspect} (#{ruby0.class})</div><div class='add'>+#     With addition:     #{ruby1.inspect} (#{ruby1.class})</div><div class='add'>+#   EOT</div><div class='add'>+#   puts display</div><div class='add'>+#</div><div class='add'>+# This output shows the different results:</div><div class='add'>+#   Generated JSON:</div><div class='add'>+#     Without addition:  "0..2" (String)</div><div class='add'>+#     With addition:     {"json_class":"Range","a":[0,2,false]} (String)</div><div class='add'>+#   Parsed JSON:</div><div class='add'>+#     Without addition:  "0..2" (String)</div><div class='add'>+#     With addition:     0..2 (Range)</div><div class='add'>+#</div><div class='add'>+# The \JSON module includes additions for certain classes.</div><div class='add'>+# You can also craft custom additions.</div><div class='add'>+# See {Custom \JSON Additions}[#module-JSON-label-Custom+JSON+Additions].</div><div class='add'>+#</div><div class='add'>+# === Built-in Additions</div><div class='add'>+#</div><div class='add'>+# The \JSON module includes additions for certain classes.</div><div class='add'>+# To use an addition, +require+ its source:</div><div class='add'>+# - BigDecimal: &lt;tt&gt;require 'json/add/bigdecimal'&lt;/tt&gt;</div><div class='add'>+# - Complex: &lt;tt&gt;require 'json/add/complex'&lt;/tt&gt;</div><div class='add'>+# - Date: &lt;tt&gt;require 'json/add/date'&lt;/tt&gt;</div><div class='add'>+# - DateTime: &lt;tt&gt;require 'json/add/date_time'&lt;/tt&gt;</div><div class='add'>+# - Exception: &lt;tt&gt;require 'json/add/exception'&lt;/tt&gt;</div><div class='add'>+# - OpenStruct: &lt;tt&gt;require 'json/add/ostruct'&lt;/tt&gt;</div><div class='add'>+# - Range: &lt;tt&gt;require 'json/add/range'&lt;/tt&gt;</div><div class='add'>+# - Rational: &lt;tt&gt;require 'json/add/rational'&lt;/tt&gt;</div><div class='add'>+# - Regexp: &lt;tt&gt;require 'json/add/regexp'&lt;/tt&gt;</div><div class='add'>+# - Set: &lt;tt&gt;require 'json/add/set'&lt;/tt&gt;</div><div class='add'>+# - Struct: &lt;tt&gt;require 'json/add/struct'&lt;/tt&gt;</div><div class='add'>+# - Symbol: &lt;tt&gt;require 'json/add/symbol'&lt;/tt&gt;</div><div class='add'>+# - Time: &lt;tt&gt;require 'json/add/time'&lt;/tt&gt;</div><div class='add'>+#</div><div class='add'>+# To reduce punctuation clutter, the examples below</div><div class='add'>+# show the generated \JSON via +puts+, rather than the usual +inspect+,</div><div class='add'>+#</div><div class='add'>+# \BigDecimal:</div><div class='add'>+#   require 'json/add/bigdecimal'</div><div class='add'>+#   ruby0 = BigDecimal(0) # 0.0</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"BigDecimal","b":"27:0.0"}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # 0.0</div><div class='add'>+#   ruby1.class # =&gt; BigDecimal</div><div class='add'>+#</div><div class='add'>+# \Complex:</div><div class='add'>+#   require 'json/add/complex'</div><div class='add'>+#   ruby0 = Complex(1+0i) # 1+0i</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"Complex","r":1,"i":0}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # 1+0i</div><div class='add'>+#   ruby1.class # Complex</div><div class='add'>+#</div><div class='add'>+# \Date:</div><div class='add'>+#   require 'json/add/date'</div><div class='add'>+#   ruby0 = Date.today # 2020-05-02</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"Date","y":2020,"m":5,"d":2,"sg":2299161.0}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # 2020-05-02</div><div class='add'>+#   ruby1.class # Date</div><div class='add'>+#</div><div class='add'>+# \DateTime:</div><div class='add'>+#   require 'json/add/date_time'</div><div class='add'>+#   ruby0 = DateTime.now # 2020-05-02T10:38:13-05:00</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"DateTime","y":2020,"m":5,"d":2,"H":10,"M":38,"S":13,"of":"-5/24","sg":2299161.0}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # 2020-05-02T10:38:13-05:00</div><div class='add'>+#   ruby1.class # DateTime</div><div class='add'>+#</div><div class='add'>+# \Exception (and its subclasses including \RuntimeError):</div><div class='add'>+#   require 'json/add/exception'</div><div class='add'>+#   ruby0 = Exception.new('A message') # A message</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"Exception","m":"A message","b":null}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # A message</div><div class='add'>+#   ruby1.class # Exception</div><div class='add'>+#   ruby0 = RuntimeError.new('Another message') # Another message</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"RuntimeError","m":"Another message","b":null}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # Another message</div><div class='add'>+#   ruby1.class # RuntimeError</div><div class='add'>+#</div><div class='add'>+# \OpenStruct:</div><div class='add'>+#   require 'json/add/ostruct'</div><div class='add'>+#   ruby0 = OpenStruct.new(name: 'Matz', language: 'Ruby') # #&lt;OpenStruct name="Matz", language="Ruby"&gt;</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"OpenStruct","t":{"name":"Matz","language":"Ruby"}}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # #&lt;OpenStruct name="Matz", language="Ruby"&gt;</div><div class='add'>+#   ruby1.class # OpenStruct</div><div class='add'>+#</div><div class='add'>+# \Range:</div><div class='add'>+#   require 'json/add/range'</div><div class='add'>+#   ruby0 = Range.new(0, 2) # 0..2</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"Range","a":[0,2,false]}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # 0..2</div><div class='add'>+#   ruby1.class # Range</div><div class='add'>+#</div><div class='add'>+# \Rational:</div><div class='add'>+#   require 'json/add/rational'</div><div class='add'>+#   ruby0 = Rational(1, 3) # 1/3</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"Rational","n":1,"d":3}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # 1/3</div><div class='add'>+#   ruby1.class # Rational</div><div class='add'>+#</div><div class='add'>+# \Regexp:</div><div class='add'>+#   require 'json/add/regexp'</div><div class='add'>+#   ruby0 = Regexp.new('foo') # (?-mix:foo)</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"Regexp","o":0,"s":"foo"}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # (?-mix:foo)</div><div class='add'>+#   ruby1.class # Regexp</div><div class='add'>+#</div><div class='add'>+# \Set:</div><div class='add'>+#   require 'json/add/set'</div><div class='add'>+#   ruby0 = Set.new([0, 1, 2]) # #&lt;Set: {0, 1, 2}&gt;</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"Set","a":[0,1,2]}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # #&lt;Set: {0, 1, 2}&gt;</div><div class='add'>+#   ruby1.class # Set</div><div class='add'>+#</div><div class='add'>+# \Struct:</div><div class='add'>+#   require 'json/add/struct'</div><div class='add'>+#   Customer = Struct.new(:name, :address) # Customer</div><div class='add'>+#   ruby0 = Customer.new("Dave", "123 Main") # #&lt;struct Customer name="Dave", address="123 Main"&gt;</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"Customer","v":["Dave","123 Main"]}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # #&lt;struct Customer name="Dave", address="123 Main"&gt;</div><div class='add'>+#   ruby1.class # Customer</div><div class='add'>+#</div><div class='add'>+# \Symbol:</div><div class='add'>+#   require 'json/add/symbol'</div><div class='add'>+#   ruby0 = :foo # foo</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"Symbol","s":"foo"}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # foo</div><div class='add'>+#   ruby1.class # Symbol</div><div class='add'>+#</div><div class='add'>+# \Time:</div><div class='add'>+#   require 'json/add/time'</div><div class='add'>+#   ruby0 = Time.now # 2020-05-02 11:28:26 -0500</div><div class='add'>+#   json = JSON.generate(ruby0) # {"json_class":"Time","s":1588436906,"n":840560000}</div><div class='add'>+#   ruby1 = JSON.parse(json, create_additions: true) # 2020-05-02 11:28:26 -0500</div><div class='add'>+#   ruby1.class # Time</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# === Custom \JSON Additions</div><div class='add'>+#</div><div class='add'>+# In addition to the \JSON additions provided,</div><div class='add'>+# you can craft \JSON additions of your own,</div><div class='add'>+# either for Ruby built-in classes or for user-defined classes.</div><div class='add'>+#</div><div class='add'>+# Here's a user-defined class +Foo+:</div><div class='add'>+#   class Foo</div><div class='add'>+#     attr_accessor :bar, :baz</div><div class='add'>+#     def initialize(bar, baz)</div><div class='add'>+#       self.bar = bar</div><div class='add'>+#       self.baz = baz</div><div class='add'>+#     end</div><div class='add'>+#   end</div><div class='add'>+#</div><div class='add'>+# Here's the \JSON addition for it:</div><div class='add'>+#   # Extend class Foo with JSON addition.</div><div class='add'>+#   class Foo</div><div class='add'>+#     # Serialize Foo object with its class name and arguments</div><div class='add'>+#     def to_json(*args)</div><div class='add'>+#       {</div><div class='add'>+#         JSON.create_id  =&gt; self.class.name,</div><div class='add'>+#         'a'             =&gt; [ bar, baz ]</div><div class='add'>+#       }.to_json(*args)</div><div class='add'>+#     end</div><div class='add'>+#     # Deserialize JSON string by constructing new Foo object with arguments.</div><div class='add'>+#     def self.json_create(object)</div><div class='add'>+#       new(*object['a'])</div><div class='add'>+#     end</div><div class='add'>+#   end</div><div class='add'>+#</div><div class='add'>+# Demonstration:</div><div class='ctx'> #   require 'json'</div><div class='add'>+#   # This Foo object has no custom addition.</div><div class='add'>+#   foo0 = Foo.new(0, 1)</div><div class='add'>+#   json0 = JSON.generate(foo0)</div><div class='add'>+#   obj0 = JSON.parse(json0)</div><div class='add'>+#   # Lood the custom addition.</div><div class='add'>+#   require_relative 'foo_addition'</div><div class='add'>+#   # This foo has the custom addition.</div><div class='add'>+#   foo1 = Foo.new(0, 1)</div><div class='add'>+#   json1 = JSON.generate(foo1)</div><div class='add'>+#   obj1 = JSON.parse(json1, create_additions: true)</div><div class='add'>+#   #   Make a nice display.</div><div class='add'>+#   display = &lt;&lt;EOT</div><div class='add'>+#   Generated JSON:</div><div class='add'>+#     Without custom addition:  #{json0} (#{json0.class})</div><div class='add'>+#     With custom addition:     #{json1} (#{json1.class})</div><div class='add'>+#   Parsed JSON:</div><div class='add'>+#     Without custom addition:  #{obj0.inspect} (#{obj0.class})</div><div class='add'>+#     With custom addition:     #{obj1.inspect} (#{obj1.class})</div><div class='add'>+#   EOT</div><div class='add'>+#   puts display</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='ctx'> #</div><div class='del'>-#   1.to_json =&gt; "1"</div><div class='add'>+#   Generated JSON:</div><div class='add'>+#     Without custom addition:  "#&lt;Foo:0x0000000006534e80&gt;" (String)</div><div class='add'>+#     With custom addition:     {"json_class":"Foo","a":[0,1]} (String)</div><div class='add'>+#   Parsed JSON:</div><div class='add'>+#     Without custom addition:  "#&lt;Foo:0x0000000006534e80&gt;" (String)</div><div class='add'>+#     With custom addition:     #&lt;Foo:0x0000000006473bb8 @bar=0, @baz=1&gt; (Foo)</div><div class='ctx'> #</div><div class='ctx'> module JSON</div><div class='ctx'>   require 'json/version'</div><div class='head'>diff --git a/ext/json/lib/json/add/bigdecimal.rb b/ext/json/lib/json/add/bigdecimal.rb<br/>index 539daeeaf5..c8b4f567cb 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/lib/json/add/bigdecimal.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/add/bigdecimal.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/lib/json/add/bigdecimal.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/lib/json/add/bigdecimal.rb</a></div><div class='hunk'>@@ -23,7 +23,7 @@ class BigDecimal</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # return the JSON value</div><div class='del'>-  def to_json(*)</div><div class='del'>-    as_json.to_json</div><div class='add'>+  def to_json(*args)</div><div class='add'>+    as_json.to_json(*args)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/json/lib/json/add/complex.rb b/ext/json/lib/json/add/complex.rb<br/>index 28ef734daf..e63e29fd22 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/lib/json/add/complex.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/add/complex.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/lib/json/add/complex.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/lib/json/add/complex.rb</a></div><div class='hunk'>@@ -2,7 +2,6 @@</div><div class='ctx'> unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED</div><div class='ctx'>   require 'json'</div><div class='ctx'> end</div><div class='del'>-defined?(::Complex) or require 'complex'</div><div class='ctx'> </div><div class='ctx'> class Complex</div><div class='ctx'> </div><div class='hunk'>@@ -23,7 +22,7 @@ class Complex</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Stores class name (Complex) along with real value &lt;tt&gt;r&lt;/tt&gt; and imaginary value &lt;tt&gt;i&lt;/tt&gt; as JSON string</div><div class='del'>-  def to_json(*)</div><div class='del'>-    as_json.to_json</div><div class='add'>+  def to_json(*args)</div><div class='add'>+    as_json.to_json(*args)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/json/lib/json/add/ostruct.rb b/ext/json/lib/json/add/ostruct.rb<br/>index e064c85ff4..686cf0025d 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/lib/json/add/ostruct.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/add/ostruct.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/lib/json/add/ostruct.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/lib/json/add/ostruct.rb</a></div><div class='hunk'>@@ -23,7 +23,7 @@ class OpenStruct</div><div class='ctx'>     }</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Stores class name (OpenStruct) with this struct's values &lt;tt&gt;v&lt;/tt&gt; as a</div><div class='add'>+  # Stores class name (OpenStruct) with this struct's values &lt;tt&gt;t&lt;/tt&gt; as a</div><div class='ctx'>   # JSON string.</div><div class='ctx'>   def to_json(*args)</div><div class='ctx'>     as_json.to_json(*args)</div><div class='head'>diff --git a/ext/json/lib/json/add/rational.rb b/ext/json/lib/json/add/rational.rb<br/>index 356940b225..f776226046 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/lib/json/add/rational.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/add/rational.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/lib/json/add/rational.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/lib/json/add/rational.rb</a></div><div class='hunk'>@@ -2,7 +2,6 @@</div><div class='ctx'> unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED</div><div class='ctx'>   require 'json'</div><div class='ctx'> end</div><div class='del'>-defined?(::Rational) or require 'rational'</div><div class='ctx'> </div><div class='ctx'> class Rational</div><div class='ctx'>   # Deserializes JSON string by converting numerator value &lt;tt&gt;n&lt;/tt&gt;,</div><div class='hunk'>@@ -22,7 +21,7 @@ class Rational</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Stores class name (Rational) along with numerator value &lt;tt&gt;n&lt;/tt&gt; and denominator value &lt;tt&gt;d&lt;/tt&gt; as JSON string</div><div class='del'>-  def to_json(*)</div><div class='del'>-    as_json.to_json</div><div class='add'>+  def to_json(*args)</div><div class='add'>+    as_json.to_json(*args)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/json/lib/json/add/regexp.rb b/ext/json/lib/json/add/regexp.rb<br/>index a93866b05a..39d69fede7 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/lib/json/add/regexp.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/add/regexp.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/lib/json/add/regexp.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/lib/json/add/regexp.rb</a></div><div class='hunk'>@@ -24,7 +24,7 @@ class Regexp</div><div class='ctx'> </div><div class='ctx'>   # Stores class name (Regexp) with options &lt;tt&gt;o&lt;/tt&gt; and source &lt;tt&gt;s&lt;/tt&gt;</div><div class='ctx'>   # (Regexp or String) as JSON string</div><div class='del'>-  def to_json(*)</div><div class='del'>-    as_json.to_json</div><div class='add'>+  def to_json(*args)</div><div class='add'>+    as_json.to_json(*args)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/json/lib/json/add/set.rb b/ext/json/lib/json/add/set.rb<br/>new file mode 100644<br/>index 0000000000..71e2a0ac8b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/json/lib/json/add/set.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/lib/json/add/set.rb</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED</div><div class='add'>+  require 'json'</div><div class='add'>+end</div><div class='add'>+defined?(::Set) or require 'set'</div><div class='add'>+</div><div class='add'>+class Set</div><div class='add'>+  # Import a JSON Marshalled object.</div><div class='add'>+  #</div><div class='add'>+  # method used for JSON marshalling support.</div><div class='add'>+  def self.json_create(object)</div><div class='add'>+    new object['a']</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Marshal the object to JSON.</div><div class='add'>+  #</div><div class='add'>+  # method used for JSON marshalling support.</div><div class='add'>+  def as_json(*)</div><div class='add'>+    {</div><div class='add'>+      JSON.create_id =&gt; self.class.name,</div><div class='add'>+      'a'            =&gt; to_a,</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # return the JSON value</div><div class='add'>+  def to_json(*args)</div><div class='add'>+    as_json.to_json(*args)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/ext/json/lib/json/common.rb b/ext/json/lib/json/common.rb<br/>index 7cc852916c..ea46896fcc 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/lib/json/common.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/common.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/lib/json/common.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/lib/json/common.rb</a></div><div class='hunk'>@@ -4,12 +4,17 @@ require 'json/generic_object'</div><div class='ctx'> </div><div class='ctx'> module JSON</div><div class='ctx'>   class &lt;&lt; self</div><div class='del'>-    # If _object_ is string-like, parse the string and return the parsed</div><div class='del'>-    # result as a Ruby data structure. Otherwise generate a JSON text from the</div><div class='del'>-    # Ruby data structure object and return it.</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   JSON[object] -&gt; new_array or new_string</div><div class='ctx'>     #</div><div class='del'>-    # The _opts_ argument is passed through to generate/parse respectively.</div><div class='del'>-    # See generate and parse for their documentation.</div><div class='add'>+    # If +object+ is a \String,</div><div class='add'>+    # calls JSON.parse with +object+ and +opts+ (see method #parse):</div><div class='add'>+    #   json = '[0, 1, null]'</div><div class='add'>+    #   JSON[json]# =&gt; [0, 1, nil]</div><div class='add'>+    #</div><div class='add'>+    # Otherwise, calls JSON.generate with +object+ and +opts+ (see method #generate):</div><div class='add'>+    #   ruby = [0, 1, nil]</div><div class='add'>+    #   JSON[ruby] # =&gt; '[0,1,null]'</div><div class='ctx'>     def [](object, opts = {})</div><div class='ctx'>       if object.respond_to? :to_str</div><div class='ctx'>         JSON.parse(object.to_str, opts)</div><div class='hunk'>@@ -19,7 +24,8 @@ module JSON</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Returns the JSON parser class that is used by JSON. This is either</div><div class='del'>-    # JSON::Ext::Parser or JSON::Pure::Parser.</div><div class='add'>+    # JSON::Ext::Parser or JSON::Pure::Parser:</div><div class='add'>+    #   JSON.parser # =&gt; JSON::Ext::Parser</div><div class='ctx'>     attr_reader :parser</div><div class='ctx'> </div><div class='ctx'>     # Set the JSON parser class _parser_ to be used by JSON.</div><div class='hunk'>@@ -65,37 +71,61 @@ module JSON</div><div class='ctx'>       end</div><div class='ctx'>       self.state = generator::State</div><div class='ctx'>       const_set :State, self.state</div><div class='del'>-      const_set :SAFE_STATE_PROTOTYPE, State.new</div><div class='del'>-      const_set :FAST_STATE_PROTOTYPE, State.new(</div><div class='add'>+      const_set :SAFE_STATE_PROTOTYPE, State.new # for JRuby</div><div class='add'>+      const_set :FAST_STATE_PROTOTYPE, create_fast_state</div><div class='add'>+      const_set :PRETTY_STATE_PROTOTYPE, create_pretty_state</div><div class='add'>+    ensure</div><div class='add'>+      $VERBOSE = old</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def create_fast_state</div><div class='add'>+      State.new(</div><div class='ctx'>         :indent         =&gt; '',</div><div class='ctx'>         :space          =&gt; '',</div><div class='ctx'>         :object_nl      =&gt; "",</div><div class='ctx'>         :array_nl       =&gt; "",</div><div class='ctx'>         :max_nesting    =&gt; false</div><div class='ctx'>       )</div><div class='del'>-      const_set :PRETTY_STATE_PROTOTYPE, State.new(</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def create_pretty_state</div><div class='add'>+      State.new(</div><div class='ctx'>         :indent         =&gt; '  ',</div><div class='ctx'>         :space          =&gt; ' ',</div><div class='ctx'>         :object_nl      =&gt; "\n",</div><div class='ctx'>         :array_nl       =&gt; "\n"</div><div class='ctx'>       )</div><div class='del'>-    ensure</div><div class='del'>-      $VERBOSE = old</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Returns the JSON generator module that is used by JSON. This is</div><div class='del'>-    # either JSON::Ext::Generator or JSON::Pure::Generator.</div><div class='add'>+    # either JSON::Ext::Generator or JSON::Pure::Generator:</div><div class='add'>+    #   JSON.generator # =&gt; JSON::Ext::Generator</div><div class='ctx'>     attr_reader :generator</div><div class='ctx'> </div><div class='del'>-    # Returns the JSON generator state class that is used by JSON. This is</div><div class='del'>-    # either JSON::Ext::Generator::State or JSON::Pure::Generator::State.</div><div class='add'>+    # Sets or Returns the JSON generator state class that is used by JSON. This is</div><div class='add'>+    # either JSON::Ext::Generator::State or JSON::Pure::Generator::State:</div><div class='add'>+    #   JSON.state # =&gt; JSON::Ext::Generator::State</div><div class='ctx'>     attr_accessor :state</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  DEFAULT_CREATE_ID = 'json_class'.freeze</div><div class='add'>+  private_constant :DEFAULT_CREATE_ID</div><div class='add'>+</div><div class='add'>+  CREATE_ID_TLS_KEY = "JSON.create_id".freeze</div><div class='add'>+  private_constant :CREATE_ID_TLS_KEY</div><div class='add'>+</div><div class='add'>+  # Sets create identifier, which is used to decide if the _json_create_</div><div class='add'>+  # hook of a class should be called; initial value is +json_class+:</div><div class='add'>+  #   JSON.create_id # =&gt; 'json_class'</div><div class='add'>+  def self.create_id=(new_value)</div><div class='add'>+    Thread.current[CREATE_ID_TLS_KEY] = new_value.dup.freeze</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-    # This is create identifier, which is used to decide if the _json_create_</div><div class='del'>-    # hook of a class should be called. It defaults to 'json_class'.</div><div class='del'>-    attr_accessor :create_id</div><div class='add'>+  # Returns the current create identifier.</div><div class='add'>+  # See also JSON.create_id=.</div><div class='add'>+  def self.create_id</div><div class='add'>+    Thread.current[CREATE_ID_TLS_KEY] || DEFAULT_CREATE_ID</div><div class='ctx'>   end</div><div class='del'>-  self.create_id = 'json_class'</div><div class='ctx'> </div><div class='ctx'>   NaN           = 0.0/0</div><div class='ctx'> </div><div class='hunk'>@@ -126,7 +156,7 @@ module JSON</div><div class='ctx'>   # This exception is raised if a generator or unparser error occurs.</div><div class='ctx'>   class GeneratorError &lt; JSONError; end</div><div class='ctx'>   # For backwards compatibility</div><div class='del'>-  UnparserError = GeneratorError</div><div class='add'>+  UnparserError = GeneratorError # :nodoc:</div><div class='ctx'> </div><div class='ctx'>   # This exception is raised if the required unicode support is missing on the</div><div class='ctx'>   # system. Usually this means that the iconv library is not installed.</div><div class='hunk'>@@ -134,82 +164,140 @@ module JSON</div><div class='ctx'> </div><div class='ctx'>   module_function</div><div class='ctx'> </div><div class='del'>-  # Parse the JSON document _source_ into a Ruby data structure and return it.</div><div class='del'>-  #</div><div class='del'>-  # _opts_ can have the following</div><div class='del'>-  # keys:</div><div class='del'>-  # * *max_nesting*: The maximum depth of nesting allowed in the parsed data</div><div class='del'>-  #   structures. Disable depth checking with :max_nesting =&gt; false. It</div><div class='del'>-  #   defaults to 100.</div><div class='del'>-  # * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in</div><div class='del'>-  #   defiance of RFC 7159 to be parsed by the Parser. This option defaults</div><div class='del'>-  #   to false.</div><div class='del'>-  # * *symbolize_names*: If set to true, returns symbols for the names</div><div class='del'>-  #   (keys) in a JSON object. Otherwise strings are returned. Strings are</div><div class='del'>-  #   the default.</div><div class='del'>-  # * *create_additions*: If set to false, the Parser doesn't create</div><div class='del'>-  #   additions even if a matching class and create_id was found. This option</div><div class='del'>-  #   defaults to false.</div><div class='del'>-  # * *object_class*: Defaults to Hash</div><div class='del'>-  # * *array_class*: Defaults to Array</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   JSON.parse(source, opts) -&gt; object</div><div class='add'>+  #</div><div class='add'>+  # Returns the Ruby objects created by parsing the given +source+.</div><div class='add'>+  #</div><div class='add'>+  # Argument +source+ contains the \String to be parsed.</div><div class='add'>+  #</div><div class='add'>+  # Argument +opts+, if given, contains a \Hash of options for the parsing.</div><div class='add'>+  # See {Parsing Options}[#module-JSON-label-Parsing+Options].</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # When +source+ is a \JSON array, returns a Ruby \Array:</div><div class='add'>+  #   source = '["foo", 1.0, true, false, null]'</div><div class='add'>+  #   ruby = JSON.parse(source)</div><div class='add'>+  #   ruby # =&gt; ["foo", 1.0, true, false, nil]</div><div class='add'>+  #   ruby.class # =&gt; Array</div><div class='add'>+  #</div><div class='add'>+  # When +source+ is a \JSON object, returns a Ruby \Hash:</div><div class='add'>+  #   source = '{"a": "foo", "b": 1.0, "c": true, "d": false, "e": null}'</div><div class='add'>+  #   ruby = JSON.parse(source)</div><div class='add'>+  #   ruby # =&gt; {"a"=&gt;"foo", "b"=&gt;1.0, "c"=&gt;true, "d"=&gt;false, "e"=&gt;nil}</div><div class='add'>+  #   ruby.class # =&gt; Hash</div><div class='add'>+  #</div><div class='add'>+  # For examples of parsing for all \JSON data types, see</div><div class='add'>+  # {Parsing \JSON}[#module-JSON-label-Parsing+JSON].</div><div class='add'>+  #</div><div class='add'>+  # Parses nested JSON objects:</div><div class='add'>+  #   source = &lt;&lt;-EOT</div><div class='add'>+  #   {</div><div class='add'>+  #   "name": "Dave",</div><div class='add'>+  #     "age" :40,</div><div class='add'>+  #     "hats": [</div><div class='add'>+  #       "Cattleman's",</div><div class='add'>+  #       "Panama",</div><div class='add'>+  #       "Tophat"</div><div class='add'>+  #     ]</div><div class='add'>+  #   }</div><div class='add'>+  #   EOT</div><div class='add'>+  #   ruby = JSON.parse(source)</div><div class='add'>+  #   ruby # =&gt; {"name"=&gt;"Dave", "age"=&gt;40, "hats"=&gt;["Cattleman's", "Panama", "Tophat"]}</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if +source+ is not valid JSON:</div><div class='add'>+  #   # Raises JSON::ParserError (783: unexpected token at ''):</div><div class='add'>+  #   JSON.parse('')</div><div class='add'>+  #</div><div class='ctx'>   def parse(source, opts = {})</div><div class='del'>-    Parser.new(source, opts).parse</div><div class='add'>+    Parser.new(source, **(opts||{})).parse</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Parse the JSON document _source_ into a Ruby data structure and return it.</div><div class='del'>-  # The bang version of the parse method defaults to the more dangerous values</div><div class='del'>-  # for the _opts_ hash, so be sure only to parse trusted _source_ documents.</div><div class='del'>-  #</div><div class='del'>-  # _opts_ can have the following keys:</div><div class='del'>-  # * *max_nesting*: The maximum depth of nesting allowed in the parsed data</div><div class='del'>-  #   structures. Enable depth checking with :max_nesting =&gt; anInteger. The</div><div class='del'>-  #   parse! methods defaults to not doing max depth checking: This can be</div><div class='del'>-  #   dangerous if someone wants to fill up your stack.</div><div class='del'>-  # * *allow_nan*: If set to true, allow NaN, Infinity, and -Infinity in</div><div class='del'>-  #   defiance of RFC 7159 to be parsed by the Parser. This option defaults</div><div class='del'>-  #   to true.</div><div class='del'>-  # * *create_additions*: If set to false, the Parser doesn't create</div><div class='del'>-  #   additions even if a matching class and create_id was found. This option</div><div class='del'>-  #   defaults to false.</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   JSON.parse!(source, opts) -&gt; object</div><div class='add'>+  #</div><div class='add'>+  # Calls</div><div class='add'>+  #   parse(source, opts)</div><div class='add'>+  # with +source+ and possibly modified +opts+.</div><div class='add'>+  #</div><div class='add'>+  # Differences from JSON.parse:</div><div class='add'>+  # - Option +max_nesting+, if not provided, defaults to +false+,</div><div class='add'>+  #   which disables checking for nesting depth.</div><div class='add'>+  # - Option +allow_nan+, if not provided, defaults to +true+.</div><div class='ctx'>   def parse!(source, opts = {})</div><div class='ctx'>     opts = {</div><div class='ctx'>       :max_nesting  =&gt; false,</div><div class='ctx'>       :allow_nan    =&gt; true</div><div class='ctx'>     }.merge(opts)</div><div class='del'>-    Parser.new(source, opts).parse</div><div class='add'>+    Parser.new(source, **(opts||{})).parse</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   JSON.load_file(path, opts={}) -&gt; object</div><div class='add'>+  #</div><div class='add'>+  # Calls:</div><div class='add'>+  #   parse(File.read(path), opts)</div><div class='add'>+  #</div><div class='add'>+  # See method #parse.</div><div class='add'>+  def load_file(filespec, opts = {})</div><div class='add'>+    parse(File.read(filespec), opts)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Generate a JSON document from the Ruby data structure _obj_ and return</div><div class='del'>-  # it. _state_ is * a JSON::State object,</div><div class='del'>-  # * or a Hash like object (responding to to_hash),</div><div class='del'>-  # * an object convertible into a hash by a to_h method,</div><div class='del'>-  # that is used as or to configure a State object.</div><div class='del'>-  #</div><div class='del'>-  # It defaults to a state object, that creates the shortest possible JSON text</div><div class='del'>-  # in one line, checks for circular data structures and doesn't allow NaN,</div><div class='del'>-  # Infinity, and -Infinity.</div><div class='del'>-  #</div><div class='del'>-  # A _state_ hash can have the following keys:</div><div class='del'>-  # * *indent*: a string used to indent levels (default: ''),</div><div class='del'>-  # * *space*: a string that is put after, a : or , delimiter (default: ''),</div><div class='del'>-  # * *space_before*: a string that is put before a : pair delimiter (default: ''),</div><div class='del'>-  # * *object_nl*: a string that is put at the end of a JSON object (default: ''),</div><div class='del'>-  # * *array_nl*: a string that is put at the end of a JSON array (default: ''),</div><div class='del'>-  # * *allow_nan*: true if NaN, Infinity, and -Infinity should be</div><div class='del'>-  #   generated, otherwise an exception is thrown if these values are</div><div class='del'>-  #   encountered. This options defaults to false.</div><div class='del'>-  # * *max_nesting*: The maximum depth of nesting allowed in the data</div><div class='del'>-  #   structures from which JSON is to be generated. Disable depth checking</div><div class='del'>-  #   with :max_nesting =&gt; false, it defaults to 100.</div><div class='del'>-  #</div><div class='del'>-  # See also the fast_generate for the fastest creation method with the least</div><div class='del'>-  # amount of sanity checks, and the pretty_generate method for some</div><div class='del'>-  # defaults for pretty output.</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   JSON.load_file!(path, opts = {})</div><div class='add'>+  #</div><div class='add'>+  # Calls:</div><div class='add'>+  #   JSON.parse!(File.read(path, opts))</div><div class='add'>+  #</div><div class='add'>+  # See method #parse!</div><div class='add'>+  def load_file!(filespec, opts = {})</div><div class='add'>+    parse!(File.read(filespec), opts)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   JSON.generate(obj, opts = nil) -&gt; new_string</div><div class='add'>+  #</div><div class='add'>+  # Returns a \String containing the generated \JSON data.</div><div class='add'>+  #</div><div class='add'>+  # See also JSON.fast_generate, JSON.pretty_generate.</div><div class='add'>+  #</div><div class='add'>+  # Argument +obj+ is the Ruby object to be converted to \JSON.</div><div class='add'>+  #</div><div class='add'>+  # Argument +opts+, if given, contains a \Hash of options for the generation.</div><div class='add'>+  # See {Generating Options}[#module-JSON-label-Generating+Options].</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # When +obj+ is an \Array, returns a \String containing a \JSON array:</div><div class='add'>+  #   obj = ["foo", 1.0, true, false, nil]</div><div class='add'>+  #   json = JSON.generate(obj)</div><div class='add'>+  #   json # =&gt; '["foo",1.0,true,false,null]'</div><div class='add'>+  #</div><div class='add'>+  # When +obj+ is a \Hash, returns a \String containing a \JSON object:</div><div class='add'>+  #   obj = {foo: 0, bar: 's', baz: :bat}</div><div class='add'>+  #   json = JSON.generate(obj)</div><div class='add'>+  #   json # =&gt; '{"foo":0,"bar":"s","baz":"bat"}'</div><div class='add'>+  #</div><div class='add'>+  # For examples of generating from other Ruby objects, see</div><div class='add'>+  # {Generating \JSON from Other Objects}[#module-JSON-label-Generating+JSON+from+Other+Objects].</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if any formatting option is not a \String.</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if +obj+ contains circular references:</div><div class='add'>+  #   a = []; b = []; a.push(b); b.push(a)</div><div class='add'>+  #   # Raises JSON::NestingError (nesting of 100 is too deep):</div><div class='add'>+  #   JSON.generate(a)</div><div class='add'>+  #</div><div class='ctx'>   def generate(obj, opts = nil)</div><div class='ctx'>     if State === opts</div><div class='ctx'>       state, opts = opts, nil</div><div class='ctx'>     else</div><div class='del'>-      state = SAFE_STATE_PROTOTYPE.dup</div><div class='add'>+      state = State.new</div><div class='ctx'>     end</div><div class='ctx'>     if opts</div><div class='ctx'>       if opts.respond_to? :to_hash</div><div class='hunk'>@@ -231,16 +319,24 @@ module JSON</div><div class='ctx'>   module_function :unparse</div><div class='ctx'>   # :startdoc:</div><div class='ctx'> </div><div class='del'>-  # Generate a JSON document from the Ruby data structure _obj_ and return it.</div><div class='del'>-  # This method disables the checks for circles in Ruby objects.</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   JSON.fast_generate(obj, opts) -&gt; new_string</div><div class='add'>+  #</div><div class='add'>+  # Arguments +obj+ and +opts+ here are the same as</div><div class='add'>+  # arguments +obj+ and +opts+ in JSON.generate.</div><div class='add'>+  #</div><div class='add'>+  # By default, generates \JSON data without checking</div><div class='add'>+  # for circular references in +obj+ (option +max_nesting+ set to +false+, disabled).</div><div class='ctx'>   #</div><div class='del'>-  # *WARNING*: Be careful not to pass any Ruby data structures with circles as</div><div class='del'>-  # _obj_ argument because this will cause JSON to go into an infinite loop.</div><div class='add'>+  # Raises an exception if +obj+ contains circular references:</div><div class='add'>+  #   a = []; b = []; a.push(b); b.push(a)</div><div class='add'>+  #   # Raises SystemStackError (stack level too deep):</div><div class='add'>+  #   JSON.fast_generate(a)</div><div class='ctx'>   def fast_generate(obj, opts = nil)</div><div class='ctx'>     if State === opts</div><div class='ctx'>       state, opts = opts, nil</div><div class='ctx'>     else</div><div class='del'>-      state = FAST_STATE_PROTOTYPE.dup</div><div class='add'>+      state = JSON.create_fast_state</div><div class='ctx'>     end</div><div class='ctx'>     if opts</div><div class='ctx'>       if opts.respond_to? :to_hash</div><div class='hunk'>@@ -261,17 +357,41 @@ module JSON</div><div class='ctx'>   module_function :fast_unparse</div><div class='ctx'>   # :startdoc:</div><div class='ctx'> </div><div class='del'>-  # Generate a JSON document from the Ruby data structure _obj_ and return it.</div><div class='del'>-  # The returned document is a prettier form of the document returned by</div><div class='del'>-  # #unparse.</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   JSON.pretty_generate(obj, opts = nil) -&gt; new_string</div><div class='add'>+  #</div><div class='add'>+  # Arguments +obj+ and +opts+ here are the same as</div><div class='add'>+  # arguments +obj+ and +opts+ in JSON.generate.</div><div class='add'>+  #</div><div class='add'>+  # Default options are:</div><div class='add'>+  #   {</div><div class='add'>+  #     indent: '  ',   # Two spaces</div><div class='add'>+  #     space: ' ',     # One space</div><div class='add'>+  #     array_nl: "\n", # Newline</div><div class='add'>+  #     object_nl: "\n" # Newline</div><div class='add'>+  #   }</div><div class='add'>+  #</div><div class='add'>+  # Example:</div><div class='add'>+  #   obj = {foo: [:bar, :baz], bat: {bam: 0, bad: 1}}</div><div class='add'>+  #   json = JSON.pretty_generate(obj)</div><div class='add'>+  #   puts json</div><div class='add'>+  # Output:</div><div class='add'>+  #   {</div><div class='add'>+  #     "foo": [</div><div class='add'>+  #       "bar",</div><div class='add'>+  #       "baz"</div><div class='add'>+  #     ],</div><div class='add'>+  #     "bat": {</div><div class='add'>+  #       "bam": 0,</div><div class='add'>+  #       "bad": 1</div><div class='add'>+  #     }</div><div class='add'>+  #   }</div><div class='ctx'>   #</div><div class='del'>-  # The _opts_ argument can be used to configure the generator. See the</div><div class='del'>-  # generate method for a more detailed explanation.</div><div class='ctx'>   def pretty_generate(obj, opts = nil)</div><div class='ctx'>     if State === opts</div><div class='ctx'>       state, opts = opts, nil</div><div class='ctx'>     else</div><div class='del'>-      state = PRETTY_STATE_PROTOTYPE.dup</div><div class='add'>+      state = JSON.create_pretty_state</div><div class='ctx'>     end</div><div class='ctx'>     if opts</div><div class='ctx'>       if opts.respond_to? :to_hash</div><div class='hunk'>@@ -293,10 +413,10 @@ module JSON</div><div class='ctx'>   # :startdoc:</div><div class='ctx'> </div><div class='ctx'>   class &lt;&lt; self</div><div class='del'>-    # The global default options for the JSON.load method:</div><div class='del'>-    #  :max_nesting: false</div><div class='del'>-    #  :allow_nan:   true</div><div class='del'>-    #  :allow_blank:  true</div><div class='add'>+    # Sets or returns default options for the JSON.load method.</div><div class='add'>+    # Initially:</div><div class='add'>+    #   opts = JSON.load_default_options</div><div class='add'>+    #   opts # =&gt; {:max_nesting=&gt;false, :allow_nan=&gt;true, :allow_blank=&gt;true, :create_additions=&gt;true}</div><div class='ctx'>     attr_accessor :load_default_options</div><div class='ctx'>   end</div><div class='ctx'>   self.load_default_options = {</div><div class='hunk'>@@ -306,20 +426,134 @@ module JSON</div><div class='ctx'>     :create_additions =&gt; true,</div><div class='ctx'>   }</div><div class='ctx'> </div><div class='del'>-  # Load a ruby data structure from a JSON _source_ and return it. A source can</div><div class='del'>-  # either be a string-like object, an IO-like object, or an object responding</div><div class='del'>-  # to the read method. If _proc_ was given, it will be called with any nested</div><div class='del'>-  # Ruby object as an argument recursively in depth first order. To modify the</div><div class='del'>-  # default options pass in the optional _options_ argument as well.</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   JSON.load(source, proc = nil, options = {}) -&gt; object</div><div class='add'>+  #</div><div class='add'>+  # Returns the Ruby objects created by parsing the given +source+.</div><div class='add'>+  #</div><div class='add'>+  # - Argument +source+ must be, or be convertible to, a \String:</div><div class='add'>+  #   - If +source+ responds to instance method +to_str+,</div><div class='add'>+  #     &lt;tt&gt;source.to_str&lt;/tt&gt; becomes the source.</div><div class='add'>+  #   - If +source+ responds to instance method +to_io+,</div><div class='add'>+  #     &lt;tt&gt;source.to_io.read&lt;/tt&gt; becomes the source.</div><div class='add'>+  #   - If +source+ responds to instance method +read+,</div><div class='add'>+  #     &lt;tt&gt;source.read&lt;/tt&gt; becomes the source.</div><div class='add'>+  #   - If both of the following are true, source becomes the \String &lt;tt&gt;'null'&lt;/tt&gt;:</div><div class='add'>+  #     - Option +allow_blank+ specifies a truthy value.</div><div class='add'>+  #     - The source, as defined above, is +nil+ or the empty \String &lt;tt&gt;''&lt;/tt&gt;.</div><div class='add'>+  #   - Otherwise, +source+ remains the source.</div><div class='add'>+  # - Argument +proc+, if given, must be a \Proc that accepts one argument.</div><div class='add'>+  #   It will be called recursively with each result (depth-first order).</div><div class='add'>+  #   See details below.</div><div class='add'>+  #   BEWARE: This method is meant to serialise data from trusted user input,</div><div class='add'>+  #   like from your own database server or clients under your control, it could</div><div class='add'>+  #   be dangerous to allow untrusted users to pass JSON sources into it.</div><div class='add'>+  # - Argument +opts+, if given, contains a \Hash of options for the parsing.</div><div class='add'>+  #   See {Parsing Options}[#module-JSON-label-Parsing+Options].</div><div class='add'>+  #   The default options can be changed via method JSON.load_default_options=.</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # When no +proc+ is given, modifies +source+ as above and returns the result of</div><div class='add'>+  # &lt;tt&gt;parse(source, opts)&lt;/tt&gt;;  see #parse.</div><div class='add'>+  #</div><div class='add'>+  # Source for following examples:</div><div class='add'>+  #   source = &lt;&lt;-EOT</div><div class='add'>+  #   {</div><div class='add'>+  #   "name": "Dave",</div><div class='add'>+  #     "age" :40,</div><div class='add'>+  #     "hats": [</div><div class='add'>+  #       "Cattleman's",</div><div class='add'>+  #       "Panama",</div><div class='add'>+  #       "Tophat"</div><div class='add'>+  #     ]</div><div class='add'>+  #   }</div><div class='add'>+  #   EOT</div><div class='ctx'>   #</div><div class='del'>-  # BEWARE: This method is meant to serialise data from trusted user input,</div><div class='del'>-  # like from your own database server or clients under your control, it could</div><div class='del'>-  # be dangerous to allow untrusted users to pass JSON sources into it. The</div><div class='del'>-  # default options for the parser can be changed via the load_default_options</div><div class='del'>-  # method.</div><div class='add'>+  # Load a \String:</div><div class='add'>+  #   ruby = JSON.load(source)</div><div class='add'>+  #   ruby # =&gt; {"name"=&gt;"Dave", "age"=&gt;40, "hats"=&gt;["Cattleman's", "Panama", "Tophat"]}</div><div class='add'>+  #</div><div class='add'>+  # Load an \IO object:</div><div class='add'>+  #   require 'stringio'</div><div class='add'>+  #   object = JSON.load(StringIO.new(source))</div><div class='add'>+  #   object # =&gt; {"name"=&gt;"Dave", "age"=&gt;40, "hats"=&gt;["Cattleman's", "Panama", "Tophat"]}</div><div class='add'>+  #</div><div class='add'>+  # Load a \File object:</div><div class='add'>+  #   path = 't.json'</div><div class='add'>+  #   File.write(path, source)</div><div class='add'>+  #   File.open(path) do |file|</div><div class='add'>+  #     JSON.load(file)</div><div class='add'>+  #   end # =&gt; {"name"=&gt;"Dave", "age"=&gt;40, "hats"=&gt;["Cattleman's", "Panama", "Tophat"]}</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # When +proc+ is given:</div><div class='add'>+  # - Modifies +source+ as above.</div><div class='add'>+  # - Gets the +result+ from calling &lt;tt&gt;parse(source, opts)&lt;/tt&gt;.</div><div class='add'>+  # - Recursively calls &lt;tt&gt;proc(result)&lt;/tt&gt;.</div><div class='add'>+  # - Returns the final result.</div><div class='add'>+  #</div><div class='add'>+  # Example:</div><div class='add'>+  #   require 'json'</div><div class='add'>+  #</div><div class='add'>+  #   # Some classes for the example.</div><div class='add'>+  #   class Base</div><div class='add'>+  #     def initialize(attributes)</div><div class='add'>+  #       @attributes = attributes</div><div class='add'>+  #     end</div><div class='add'>+  #   end</div><div class='add'>+  #   class User    &lt; Base; end</div><div class='add'>+  #   class Account &lt; Base; end</div><div class='add'>+  #   class Admin   &lt; Base; end</div><div class='add'>+  #   # The JSON source.</div><div class='add'>+  #   json = &lt;&lt;-EOF</div><div class='add'>+  #   {</div><div class='add'>+  #     "users": [</div><div class='add'>+  #         {"type": "User", "username": "jane", "email": "jane@example.com"},</div><div class='add'>+  #         {"type": "User", "username": "john", "email": "john@example.com"}</div><div class='add'>+  #     ],</div><div class='add'>+  #     "accounts": [</div><div class='add'>+  #         {"account": {"type": "Account", "paid": true, "account_id": "1234"}},</div><div class='add'>+  #         {"account": {"type": "Account", "paid": false, "account_id": "1235"}}</div><div class='add'>+  #     ],</div><div class='add'>+  #     "admins": {"type": "Admin", "password": "0wn3d"}</div><div class='add'>+  #   }</div><div class='add'>+  #   EOF</div><div class='add'>+  #   # Deserializer method.</div><div class='add'>+  #   def deserialize_obj(obj, safe_types = %w(User Account Admin))</div><div class='add'>+  #     type = obj.is_a?(Hash) &amp;&amp; obj["type"]</div><div class='add'>+  #     safe_types.include?(type) ? Object.const_get(type).new(obj) : obj</div><div class='add'>+  #   end</div><div class='add'>+  #   # Call to JSON.load</div><div class='add'>+  #   ruby = JSON.load(json, proc {|obj|</div><div class='add'>+  #     case obj</div><div class='add'>+  #     when Hash</div><div class='add'>+  #       obj.each {|k, v| obj[k] = deserialize_obj v }</div><div class='add'>+  #     when Array</div><div class='add'>+  #       obj.map! {|v| deserialize_obj v }</div><div class='add'>+  #     end</div><div class='add'>+  #   })</div><div class='add'>+  #   pp ruby</div><div class='add'>+  # Output:</div><div class='add'>+  #   {"users"=&gt;</div><div class='add'>+  #      [#&lt;User:0x00000000064c4c98</div><div class='add'>+  #        @attributes=</div><div class='add'>+  #          {"type"=&gt;"User", "username"=&gt;"jane", "email"=&gt;"jane@example.com"}&gt;,</div><div class='add'>+  #        #&lt;User:0x00000000064c4bd0</div><div class='add'>+  #        @attributes=</div><div class='add'>+  #          {"type"=&gt;"User", "username"=&gt;"john", "email"=&gt;"john@example.com"}&gt;],</div><div class='add'>+  #    "accounts"=&gt;</div><div class='add'>+  #      [{"account"=&gt;</div><div class='add'>+  #          #&lt;Account:0x00000000064c4928</div><div class='add'>+  #          @attributes={"type"=&gt;"Account", "paid"=&gt;true, "account_id"=&gt;"1234"}&gt;},</div><div class='add'>+  #       {"account"=&gt;</div><div class='add'>+  #          #&lt;Account:0x00000000064c4680</div><div class='add'>+  #          @attributes={"type"=&gt;"Account", "paid"=&gt;false, "account_id"=&gt;"1235"}&gt;}],</div><div class='add'>+  #    "admins"=&gt;</div><div class='add'>+  #      #&lt;Admin:0x00000000064c41f8</div><div class='add'>+  #      @attributes={"type"=&gt;"Admin", "password"=&gt;"0wn3d"}&gt;}</div><div class='ctx'>   #</div><div class='del'>-  # This method is part of the implementation of the load/dump interface of</div><div class='del'>-  # Marshal and YAML.</div><div class='ctx'>   def load(source, proc = nil, options = {})</div><div class='ctx'>     opts = load_default_options.merge options</div><div class='ctx'>     if source.respond_to? :to_str</div><div class='hunk'>@@ -338,7 +572,7 @@ module JSON</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Recursively calls passed _Proc_ if the parsed data structure is an _Array_ or _Hash_</div><div class='del'>-  def recurse_proc(result, &amp;proc)</div><div class='add'>+  def recurse_proc(result, &amp;proc) # :nodoc:</div><div class='ctx'>     case result</div><div class='ctx'>     when Array</div><div class='ctx'>       result.each { |x| recurse_proc x, &amp;proc }</div><div class='hunk'>@@ -355,32 +589,45 @@ module JSON</div><div class='ctx'>   module_function :restore</div><div class='ctx'> </div><div class='ctx'>   class &lt;&lt; self</div><div class='del'>-    # The global default options for the JSON.dump method:</div><div class='del'>-    #  :max_nesting: false</div><div class='del'>-    #  :allow_nan:   true</div><div class='del'>-    #  :allow_blank: true</div><div class='add'>+    # Sets or returns the default options for the JSON.dump method.</div><div class='add'>+    # Initially:</div><div class='add'>+    #   opts = JSON.dump_default_options</div><div class='add'>+    #   opts # =&gt; {:max_nesting=&gt;false, :allow_nan=&gt;true, :escape_slash=&gt;false}</div><div class='ctx'>     attr_accessor :dump_default_options</div><div class='ctx'>   end</div><div class='ctx'>   self.dump_default_options = {</div><div class='ctx'>     :max_nesting =&gt; false,</div><div class='ctx'>     :allow_nan   =&gt; true,</div><div class='add'>+    :escape_slash =&gt; false,</div><div class='ctx'>   }</div><div class='ctx'> </div><div class='del'>-  # Dumps _obj_ as a JSON string, i.e. calls generate on the object and returns</div><div class='del'>-  # the result.</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   JSON.dump(obj, io = nil, limit = nil)</div><div class='add'>+  #</div><div class='add'>+  # Dumps +obj+ as a \JSON string, i.e. calls generate on the object and returns the result.</div><div class='add'>+  #</div><div class='add'>+  # The default options can be changed via method JSON.dump_default_options.</div><div class='ctx'>   #</div><div class='del'>-  # If anIO (an IO-like object or an object that responds to the write method)</div><div class='del'>-  # was given, the resulting JSON is written to it.</div><div class='add'>+  # - Argument +io+, if given, should respond to method +write+;</div><div class='add'>+  #   the \JSON \String is written to +io+, and +io+ is returned.</div><div class='add'>+  #   If +io+ is not given, the \JSON \String is returned.</div><div class='add'>+  # - Argument +limit+, if given, is passed to JSON.generate as option +max_nesting+.</div><div class='ctx'>   #</div><div class='del'>-  # If the number of nested arrays or objects exceeds _limit_, an ArgumentError</div><div class='del'>-  # exception is raised. This argument is similar (but not exactly the</div><div class='del'>-  # same!) to the _limit_ argument in Marshal.dump.</div><div class='add'>+  # ---</div><div class='ctx'>   #</div><div class='del'>-  # The default options for the generator can be changed via the</div><div class='del'>-  # dump_default_options method.</div><div class='add'>+  # When argument +io+ is not given, returns the \JSON \String generated from +obj+:</div><div class='add'>+  #   obj = {foo: [0, 1], bar: {baz: 2, bat: 3}, bam: :bad}</div><div class='add'>+  #   json = JSON.dump(obj)</div><div class='add'>+  #   json # =&gt; "{\"foo\":[0,1],\"bar\":{\"baz\":2,\"bat\":3},\"bam\":\"bad\"}"</div><div class='ctx'>   #</div><div class='del'>-  # This method is part of the implementation of the load/dump interface of</div><div class='del'>-  # Marshal and YAML.</div><div class='add'>+  # When argument +io+ is given, writes the \JSON \String to +io+ and returns +io+:</div><div class='add'>+  #   path = 't.json'</div><div class='add'>+  #   File.open(path, 'w') do |file|</div><div class='add'>+  #     JSON.dump(obj, file)</div><div class='add'>+  #   end # =&gt; #&lt;File:t.json (closed)&gt;</div><div class='add'>+  #   puts File.read(path)</div><div class='add'>+  # Output:</div><div class='add'>+  #   {"foo":[0,1],"bar":{"baz":2,"bat":3},"bam":"bad"}</div><div class='ctx'>   def dump(obj, anIO = nil, limit = nil)</div><div class='ctx'>     if anIO and limit.nil?</div><div class='ctx'>       anIO = anIO.to_io if anIO.respond_to?(:to_io)</div><div class='hunk'>@@ -402,7 +649,7 @@ module JSON</div><div class='ctx'>     raise ArgumentError, "exceed depth limit"</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Encodes string using Ruby's _String.encode_</div><div class='add'>+  # Encodes string using String.encode.</div><div class='ctx'>   def self.iconv(to, from, string)</div><div class='ctx'>     string.encode(to, from)</div><div class='ctx'>   end</div><div class='head'>diff --git a/ext/json/lib/json/version.rb b/ext/json/lib/json/version.rb<br/>index b65ed87f98..3d4326d836 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/lib/json/version.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/lib/json/version.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/lib/json/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/lib/json/version.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> module JSON</div><div class='ctx'>   # JSON version</div><div class='del'>-  VERSION         = '2.1.0'</div><div class='add'>+  VERSION         = '2.6.3'</div><div class='ctx'>   VERSION_ARRAY   = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:</div><div class='ctx'>   VERSION_MAJOR   = VERSION_ARRAY[0] # :nodoc:</div><div class='ctx'>   VERSION_MINOR   = VERSION_ARRAY[1] # :nodoc:</div><div class='head'>diff --git a/ext/json/parser/depend b/ext/json/parser/depend<br/>index 2ffd904475..a8e066ce15 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/parser/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/parser/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/parser/depend</a></div><div class='hunk'>@@ -4,18 +4,176 @@ parser.o: parser.c parser.h $(srcdir)/../fbuffer/fbuffer.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> parser.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> parser.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+parser.o: $(hdrdir)/ruby.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> parser.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> parser.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> parser.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> parser.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+parser.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> parser.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> parser.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> parser.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> parser.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> parser.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> parser.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-parser.o: $(top_srcdir)/ext/json/fbuffer/fbuffer.h</div><div class='del'>-parser.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+parser.o: $(srcdir)/../fbuffer/fbuffer.h</div><div class='ctx'> parser.o: parser.c</div><div class='ctx'> parser.o: parser.h</div><div class='ctx'> parser.o: parser.rl</div><div class='head'>diff --git a/ext/json/parser/extconf.rb b/ext/json/parser/extconf.rb<br/>index f7360d46b2..4723a02aee 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/parser/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/parser/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/parser/extconf.rb</a></div><div class='hunk'>@@ -1,6 +1,32 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> require 'mkmf'</div><div class='ctx'> </div><div class='del'>-have_func("rb_enc_raise", "ruby.h")</div><div class='add'>+have_func("rb_enc_raise", "ruby/encoding.h")</div><div class='add'>+have_func("rb_enc_interned_str", "ruby/encoding.h")</div><div class='add'>+</div><div class='add'>+# checking if String#-@ (str_uminus) dedupes... '</div><div class='add'>+begin</div><div class='add'>+  a = -(%w(t e s t).join)</div><div class='add'>+  b = -(%w(t e s t).join)</div><div class='add'>+  if a.equal?(b)</div><div class='add'>+    $CFLAGS &lt;&lt; ' -DSTR_UMINUS_DEDUPE=1 '</div><div class='add'>+  else</div><div class='add'>+    $CFLAGS &lt;&lt; ' -DSTR_UMINUS_DEDUPE=0 '</div><div class='add'>+  end</div><div class='add'>+rescue NoMethodError</div><div class='add'>+  $CFLAGS &lt;&lt; ' -DSTR_UMINUS_DEDUPE=0 '</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# checking if String#-@ (str_uminus) directly interns frozen strings... '</div><div class='add'>+begin</div><div class='add'>+  s = rand.to_s.freeze</div><div class='add'>+  if (-s).equal?(s) &amp;&amp; (-s.dup).equal?(s)</div><div class='add'>+    $CFLAGS &lt;&lt; ' -DSTR_UMINUS_DEDUPE_FROZEN=1 '</div><div class='add'>+  else</div><div class='add'>+    $CFLAGS &lt;&lt; ' -DSTR_UMINUS_DEDUPE_FROZEN=0 '</div><div class='add'>+  end</div><div class='add'>+rescue NoMethodError</div><div class='add'>+  $CFLAGS &lt;&lt; ' -DSTR_UMINUS_DEDUPE_FROZEN=0 '</div><div class='add'>+end</div><div class='ctx'> </div><div class='ctx'> create_makefile 'json/ext/parser'</div><div class='head'>diff --git a/ext/json/parser/parser.c b/ext/json/parser/parser.c<br/>index b02aae8fb9..9bd7f1971e 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/parser/parser.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/parser.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/parser/parser.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/parser/parser.c</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-</div><div class='add'>+/* This file is automatically generated from parser.rl by using ragel */</div><div class='ctx'> #line 1 "parser.rl"</div><div class='ctx'> #include "../fbuffer/fbuffer.h"</div><div class='ctx'> #include "parser.h"</div><div class='hunk'>@@ -9,14 +9,14 @@</div><div class='ctx'> static void</div><div class='ctx'> enc_raise(rb_encoding *enc, VALUE exc, const char *fmt, ...)</div><div class='ctx'> {</div><div class='del'>-    va_list args;</div><div class='del'>-    VALUE mesg;</div><div class='add'>+	va_list args;</div><div class='add'>+	VALUE mesg;</div><div class='ctx'> </div><div class='del'>-    va_start(args, fmt);</div><div class='del'>-    mesg = rb_enc_vsprintf(enc, fmt, args);</div><div class='del'>-    va_end(args);</div><div class='add'>+	va_start(args, fmt);</div><div class='add'>+	mesg = rb_enc_vsprintf(enc, fmt, args);</div><div class='add'>+	va_end(args);</div><div class='ctx'> </div><div class='del'>-    rb_exc_raise(rb_exc_new3(exc, mesg));</div><div class='add'>+	rb_exc_raise(rb_exc_new3(exc, mesg));</div><div class='ctx'> }</div><div class='ctx'> #   define rb_enc_raise enc_raise</div><div class='ctx'> # endif</div><div class='hunk'>@@ -27,2105 +27,3321 @@ enc_raise(rb_encoding *enc, VALUE exc, const char *fmt, ...)</div><div class='ctx'> </div><div class='ctx'> /* unicode */</div><div class='ctx'> </div><div class='del'>-static const char digit_values[256] = {</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='del'>-    -1, -1, -1, -1, -1, -1, -1</div><div class='add'>+static const signed char digit_values[256] = {</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='add'>+	-1, -1, -1, -1, -1, -1, -1</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static UTF32 unescape_unicode(const unsigned char *p)</div><div class='ctx'> {</div><div class='del'>-    char b;</div><div class='del'>-    UTF32 result = 0;</div><div class='del'>-    b = digit_values[p[0]];</div><div class='del'>-    if (b &lt; 0) return UNI_REPLACEMENT_CHAR;</div><div class='del'>-    result = (result &lt;&lt; 4) | (unsigned char)b;</div><div class='del'>-    b = digit_values[p[1]];</div><div class='del'>-    if (b &lt; 0) return UNI_REPLACEMENT_CHAR;</div><div class='del'>-    result = (result &lt;&lt; 4) | (unsigned char)b;</div><div class='del'>-    b = digit_values[p[2]];</div><div class='del'>-    if (b &lt; 0) return UNI_REPLACEMENT_CHAR;</div><div class='del'>-    result = (result &lt;&lt; 4) | (unsigned char)b;</div><div class='del'>-    b = digit_values[p[3]];</div><div class='del'>-    if (b &lt; 0) return UNI_REPLACEMENT_CHAR;</div><div class='del'>-    result = (result &lt;&lt; 4) | (unsigned char)b;</div><div class='del'>-    return result;</div><div class='add'>+	signed char b;</div><div class='add'>+	UTF32 result = 0;</div><div class='add'>+	b = digit_values[p[0]];</div><div class='add'>+	if (b &lt; 0) return UNI_REPLACEMENT_CHAR;</div><div class='add'>+	result = (result &lt;&lt; 4) | (unsigned char)b;</div><div class='add'>+	b = digit_values[p[1]];</div><div class='add'>+	if (b &lt; 0) return UNI_REPLACEMENT_CHAR;</div><div class='add'>+	result = (result &lt;&lt; 4) | (unsigned char)b;</div><div class='add'>+	b = digit_values[p[2]];</div><div class='add'>+	if (b &lt; 0) return UNI_REPLACEMENT_CHAR;</div><div class='add'>+	result = (result &lt;&lt; 4) | (unsigned char)b;</div><div class='add'>+	b = digit_values[p[3]];</div><div class='add'>+	if (b &lt; 0) return UNI_REPLACEMENT_CHAR;</div><div class='add'>+	result = (result &lt;&lt; 4) | (unsigned char)b;</div><div class='add'>+	return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int convert_UTF32_to_UTF8(char *buf, UTF32 ch)</div><div class='ctx'> {</div><div class='del'>-    int len = 1;</div><div class='del'>-    if (ch &lt;= 0x7F) {</div><div class='del'>-        buf[0] = (char) ch;</div><div class='del'>-    } else if (ch &lt;= 0x07FF) {</div><div class='del'>-        buf[0] = (char) ((ch &gt;&gt; 6) | 0xC0);</div><div class='del'>-        buf[1] = (char) ((ch &amp; 0x3F) | 0x80);</div><div class='del'>-        len++;</div><div class='del'>-    } else if (ch &lt;= 0xFFFF) {</div><div class='del'>-        buf[0] = (char) ((ch &gt;&gt; 12) | 0xE0);</div><div class='del'>-        buf[1] = (char) (((ch &gt;&gt; 6) &amp; 0x3F) | 0x80);</div><div class='del'>-        buf[2] = (char) ((ch &amp; 0x3F) | 0x80);</div><div class='del'>-        len += 2;</div><div class='del'>-    } else if (ch &lt;= 0x1fffff) {</div><div class='del'>-        buf[0] =(char) ((ch &gt;&gt; 18) | 0xF0);</div><div class='del'>-        buf[1] =(char) (((ch &gt;&gt; 12) &amp; 0x3F) | 0x80);</div><div class='del'>-        buf[2] =(char) (((ch &gt;&gt; 6) &amp; 0x3F) | 0x80);</div><div class='del'>-        buf[3] =(char) ((ch &amp; 0x3F) | 0x80);</div><div class='del'>-        len += 3;</div><div class='del'>-    } else {</div><div class='del'>-        buf[0] = '?';</div><div class='del'>-    }</div><div class='del'>-    return len;</div><div class='add'>+	int len = 1;</div><div class='add'>+	if (ch &lt;= 0x7F) {</div><div class='add'>+		buf[0] = (char) ch;</div><div class='add'>+	} else if (ch &lt;= 0x07FF) {</div><div class='add'>+		buf[0] = (char) ((ch &gt;&gt; 6) | 0xC0);</div><div class='add'>+		buf[1] = (char) ((ch &amp; 0x3F) | 0x80);</div><div class='add'>+		len++;</div><div class='add'>+	} else if (ch &lt;= 0xFFFF) {</div><div class='add'>+		buf[0] = (char) ((ch &gt;&gt; 12) | 0xE0);</div><div class='add'>+		buf[1] = (char) (((ch &gt;&gt; 6) &amp; 0x3F) | 0x80);</div><div class='add'>+		buf[2] = (char) ((ch &amp; 0x3F) | 0x80);</div><div class='add'>+		len += 2;</div><div class='add'>+	} else if (ch &lt;= 0x1fffff) {</div><div class='add'>+		buf[0] =(char) ((ch &gt;&gt; 18) | 0xF0);</div><div class='add'>+		buf[1] =(char) (((ch &gt;&gt; 12) &amp; 0x3F) | 0x80);</div><div class='add'>+		buf[2] =(char) (((ch &gt;&gt; 6) &amp; 0x3F) | 0x80);</div><div class='add'>+		buf[3] =(char) ((ch &amp; 0x3F) | 0x80);</div><div class='add'>+		len += 3;</div><div class='add'>+	} else {</div><div class='add'>+		buf[0] = '?';</div><div class='add'>+	}</div><div class='add'>+	return len;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE mJSON, mExt, cParser, eParserError, eNestingError;</div><div class='ctx'> static VALUE CNaN, CInfinity, CMinusInfinity;</div><div class='del'>-static VALUE cBigDecimal = Qundef;</div><div class='ctx'> </div><div class='ctx'> static ID i_json_creatable_p, i_json_create, i_create_id, i_create_additions,</div><div class='del'>-          i_chr, i_max_nesting, i_allow_nan, i_symbolize_names,</div><div class='del'>-          i_object_class, i_array_class, i_decimal_class, i_key_p,</div><div class='del'>-          i_deep_const_get, i_match, i_match_string, i_aset, i_aref,</div><div class='del'>-          i_leftshift, i_new, i_BigDecimal;</div><div class='add'>+i_chr, i_max_nesting, i_allow_nan, i_symbolize_names,</div><div class='add'>+i_object_class, i_array_class, i_decimal_class, i_key_p,</div><div class='add'>+i_deep_const_get, i_match, i_match_string, i_aset, i_aref,</div><div class='add'>+i_leftshift, i_new, i_try_convert, i_freeze, i_uminus;</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> #line 125 "parser.rl"</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 107 "parser.c"</div><div class='ctx'> enum {JSON_object_start = 1};</div><div class='ctx'> enum {JSON_object_first_final = 27};</div><div class='ctx'> enum {JSON_object_error = 0};</div><div class='ctx'> </div><div class='ctx'> enum {JSON_object_en_main = 1};</div><div class='ctx'> </div><div class='add'>+static const char MAYBE_UNUSED(_JSON_object_nfa_targs)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_object_nfa_offsets)[] = {</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+	0, 0, 0, 0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_object_nfa_push_actions)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_object_nfa_pop_trans)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> </div><div class='del'>-#line 166 "parser.rl"</div><div class='add'>+#line 167 "parser.rl"</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> static char *JSON_parse_object(JSON_Parser *json, char *p, char *pe, VALUE *result, int current_nesting)</div><div class='ctx'> {</div><div class='del'>-    int cs = EVIL;</div><div class='del'>-    VALUE last_name = Qnil;</div><div class='del'>-    VALUE object_class = json-&gt;object_class;</div><div class='add'>+	int cs = EVIL;</div><div class='add'>+	VALUE last_name = Qnil;</div><div class='add'>+	VALUE object_class = json-&gt;object_class;</div><div class='ctx'> </div><div class='del'>-    if (json-&gt;max_nesting &amp;&amp; current_nesting &gt; json-&gt;max_nesting) {</div><div class='del'>-        rb_raise(eNestingError, "nesting of %d is too deep", current_nesting);</div><div class='del'>-    }</div><div class='add'>+	if (json-&gt;max_nesting &amp;&amp; current_nesting &gt; json-&gt;max_nesting) {</div><div class='add'>+		rb_raise(eNestingError, "nesting of %d is too deep", current_nesting);</div><div class='add'>+	}</div><div class='ctx'> </div><div class='del'>-    *result = NIL_P(object_class) ? rb_hash_new() : rb_class_new_instance(0, 0, object_class);</div><div class='add'>+	*result = NIL_P(object_class) ? rb_hash_new() : rb_class_new_instance(0, 0, object_class);</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 131 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	cs = JSON_object_start;</div><div class='add'>+		cs = (int)JSON_object_start;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-#line 181 "parser.rl"</div><div class='add'>+	#line 182 "parser.rl"</div><div class='add'>+</div><div class='ctx'> </div><div class='del'>-#line 138 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	if ( p == pe )</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof;</div><div class='del'>-	switch ( cs )</div><div class='del'>-	{</div><div class='del'>-case 1:</div><div class='del'>-	if ( (*p) == 123 )</div><div class='del'>-		goto st2;</div><div class='del'>-	goto st0;</div><div class='del'>-st0:</div><div class='del'>-cs = 0;</div><div class='del'>-	goto _out;</div><div class='del'>-st2:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		switch ( cs )</div><div class='add'>+		{</div><div class='add'>+			case 1:</div><div class='add'>+			goto st_case_1;</div><div class='add'>+			case 0:</div><div class='add'>+			goto st_case_0;</div><div class='add'>+			case 2:</div><div class='add'>+			goto st_case_2;</div><div class='add'>+			case 3:</div><div class='add'>+			goto st_case_3;</div><div class='add'>+			case 4:</div><div class='add'>+			goto st_case_4;</div><div class='add'>+			case 5:</div><div class='add'>+			goto st_case_5;</div><div class='add'>+			case 6:</div><div class='add'>+			goto st_case_6;</div><div class='add'>+			case 7:</div><div class='add'>+			goto st_case_7;</div><div class='add'>+			case 8:</div><div class='add'>+			goto st_case_8;</div><div class='add'>+			case 9:</div><div class='add'>+			goto st_case_9;</div><div class='add'>+			case 10:</div><div class='add'>+			goto st_case_10;</div><div class='add'>+			case 11:</div><div class='add'>+			goto st_case_11;</div><div class='add'>+			case 12:</div><div class='add'>+			goto st_case_12;</div><div class='add'>+			case 13:</div><div class='add'>+			goto st_case_13;</div><div class='add'>+			case 14:</div><div class='add'>+			goto st_case_14;</div><div class='add'>+			case 15:</div><div class='add'>+			goto st_case_15;</div><div class='add'>+			case 16:</div><div class='add'>+			goto st_case_16;</div><div class='add'>+			case 17:</div><div class='add'>+			goto st_case_17;</div><div class='add'>+			case 18:</div><div class='add'>+			goto st_case_18;</div><div class='add'>+			case 27:</div><div class='add'>+			goto st_case_27;</div><div class='add'>+			case 19:</div><div class='add'>+			goto st_case_19;</div><div class='add'>+			case 20:</div><div class='add'>+			goto st_case_20;</div><div class='add'>+			case 21:</div><div class='add'>+			goto st_case_21;</div><div class='add'>+			case 22:</div><div class='add'>+			goto st_case_22;</div><div class='add'>+			case 23:</div><div class='add'>+			goto st_case_23;</div><div class='add'>+			case 24:</div><div class='add'>+			goto st_case_24;</div><div class='add'>+			case 25:</div><div class='add'>+			goto st_case_25;</div><div class='add'>+			case 26:</div><div class='add'>+			goto st_case_26;</div><div class='add'>+		}</div><div class='add'>+		goto st_out;</div><div class='add'>+		st_case_1:</div><div class='add'>+		if ( ( (*( p))) == 123 ) {</div><div class='add'>+			goto st2;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st_case_0:</div><div class='add'>+		st0:</div><div class='add'>+		cs = 0;</div><div class='add'>+		goto _out;</div><div class='add'>+		st2:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof2;</div><div class='del'>-case 2:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st2;</div><div class='del'>-		case 32: goto st2;</div><div class='del'>-		case 34: goto tr2;</div><div class='del'>-		case 47: goto st23;</div><div class='del'>-		case 125: goto tr4;</div><div class='del'>-	}</div><div class='del'>-	if ( 9 &lt;= (*p) &amp;&amp; (*p) &lt;= 10 )</div><div class='del'>-		goto st2;</div><div class='del'>-	goto st0;</div><div class='del'>-tr2:</div><div class='del'>-#line 148 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        char *np;</div><div class='del'>-        json-&gt;parsing_name = 1;</div><div class='del'>-        np = JSON_parse_string(json, p, pe, &amp;last_name);</div><div class='del'>-        json-&gt;parsing_name = 0;</div><div class='del'>-        if (np == NULL) { p--; {p++; cs = 3; goto _out;} } else {p = (( np))-1;}</div><div class='del'>-    }</div><div class='del'>-	goto st3;</div><div class='del'>-st3:</div><div class='del'>-	if ( ++p == pe )</div><div class='del'>-		goto _test_eof3;</div><div class='del'>-case 3:</div><div class='del'>-#line 179 "parser.c"</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st3;</div><div class='del'>-		case 32: goto st3;</div><div class='del'>-		case 47: goto st4;</div><div class='del'>-		case 58: goto st8;</div><div class='del'>-	}</div><div class='del'>-	if ( 9 &lt;= (*p) &amp;&amp; (*p) &lt;= 10 )</div><div class='add'>+		st_case_2:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+			case 34: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st23;</div><div class='add'>+			}</div><div class='add'>+			case 125: {</div><div class='add'>+				goto ctr4;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 9 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 10 ) {</div><div class='add'>+			goto st2;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		ctr2:</div><div class='add'>+		{</div><div class='add'>+			#line 149 "parser.rl"</div><div class='add'>+</div><div class='add'>+			char *np;</div><div class='add'>+			json-&gt;parsing_name = 1;</div><div class='add'>+			np = JSON_parse_string(json, p, pe, &amp;last_name);</div><div class='add'>+			json-&gt;parsing_name = 0;</div><div class='add'>+			if (np == NULL) { {p = p - 1; } {p+= 1; cs = 3; goto _out;} } else {p = (( np))-1;}</div><div class='add'>+</div><div class='add'>+		}</div><div class='add'>+</div><div class='ctx'> 		goto st3;</div><div class='del'>-	goto st0;</div><div class='del'>-st4:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st3:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='add'>+		goto _test_eof3;</div><div class='add'>+		st_case_3:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st3;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st3;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st4;</div><div class='add'>+			}</div><div class='add'>+			case 58: {</div><div class='add'>+				goto st8;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 9 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 10 ) {</div><div class='add'>+			goto st3;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st4:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof4;</div><div class='del'>-case 4:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st5;</div><div class='del'>-		case 47: goto st7;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st5:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_4:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st7;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st5:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof5;</div><div class='del'>-case 5:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st6;</div><div class='del'>-	goto st5;</div><div class='del'>-st6:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_5:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st6;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st5;</div><div class='add'>+		}</div><div class='add'>+		st6:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof6;</div><div class='del'>-case 6:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st6;</div><div class='del'>-		case 47: goto st3;</div><div class='del'>-	}</div><div class='del'>-	goto st5;</div><div class='del'>-st7:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_6:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st6;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st3;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st5;</div><div class='add'>+		}</div><div class='add'>+		st7:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof7;</div><div class='del'>-case 7:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st3;</div><div class='del'>-	goto st7;</div><div class='del'>-st8:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_7:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st3;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st7;</div><div class='add'>+		}</div><div class='add'>+		st8:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof8;</div><div class='del'>-case 8:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st8;</div><div class='del'>-		case 32: goto st8;</div><div class='del'>-		case 34: goto tr11;</div><div class='del'>-		case 45: goto tr11;</div><div class='del'>-		case 47: goto st19;</div><div class='del'>-		case 73: goto tr11;</div><div class='del'>-		case 78: goto tr11;</div><div class='del'>-		case 91: goto tr11;</div><div class='del'>-		case 102: goto tr11;</div><div class='del'>-		case 110: goto tr11;</div><div class='del'>-		case 116: goto tr11;</div><div class='del'>-		case 123: goto tr11;</div><div class='del'>-	}</div><div class='del'>-	if ( (*p) &gt; 10 ) {</div><div class='del'>-		if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-			goto tr11;</div><div class='del'>-	} else if ( (*p) &gt;= 9 )</div><div class='del'>-		goto st8;</div><div class='del'>-	goto st0;</div><div class='del'>-tr11:</div><div class='del'>-#line 133 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        VALUE v = Qnil;</div><div class='del'>-        char *np = JSON_parse_value(json, p, pe, &amp;v, current_nesting);</div><div class='del'>-        if (np == NULL) {</div><div class='del'>-            p--; {p++; cs = 9; goto _out;}</div><div class='del'>-        } else {</div><div class='del'>-            if (NIL_P(json-&gt;object_class)) {</div><div class='del'>-                rb_hash_aset(*result, last_name, v);</div><div class='del'>-            } else {</div><div class='del'>-                rb_funcall(*result, i_aset, 2, last_name, v);</div><div class='del'>-            }</div><div class='del'>-            {p = (( np))-1;}</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-	goto st9;</div><div class='del'>-st9:</div><div class='del'>-	if ( ++p == pe )</div><div class='del'>-		goto _test_eof9;</div><div class='del'>-case 9:</div><div class='del'>-#line 266 "parser.c"</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st9;</div><div class='del'>-		case 32: goto st9;</div><div class='del'>-		case 44: goto st10;</div><div class='del'>-		case 47: goto st15;</div><div class='del'>-		case 125: goto tr4;</div><div class='del'>-	}</div><div class='del'>-	if ( 9 &lt;= (*p) &amp;&amp; (*p) &lt;= 10 )</div><div class='add'>+		st_case_8:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st8;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st8;</div><div class='add'>+			}</div><div class='add'>+			case 34: {</div><div class='add'>+				goto ctr11;</div><div class='add'>+			}</div><div class='add'>+			case 45: {</div><div class='add'>+				goto ctr11;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st19;</div><div class='add'>+			}</div><div class='add'>+			case 73: {</div><div class='add'>+				goto ctr11;</div><div class='add'>+			}</div><div class='add'>+			case 78: {</div><div class='add'>+				goto ctr11;</div><div class='add'>+			}</div><div class='add'>+			case 91: {</div><div class='add'>+				goto ctr11;</div><div class='add'>+			}</div><div class='add'>+			case 102: {</div><div class='add'>+				goto ctr11;</div><div class='add'>+			}</div><div class='add'>+			case 110: {</div><div class='add'>+				goto ctr11;</div><div class='add'>+			}</div><div class='add'>+			case 116: {</div><div class='add'>+				goto ctr11;</div><div class='add'>+			}</div><div class='add'>+			case 123: {</div><div class='add'>+				goto ctr11;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( ( (*( p))) &gt; 10 ) {</div><div class='add'>+			if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+				goto ctr11;</div><div class='add'>+			}</div><div class='add'>+		} else if ( ( (*( p))) &gt;= 9 ) {</div><div class='add'>+			goto st8;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		ctr11:</div><div class='add'>+		{</div><div class='add'>+			#line 133 "parser.rl"</div><div class='add'>+</div><div class='add'>+			VALUE v = Qnil;</div><div class='add'>+			char *np = JSON_parse_value(json, p, pe, &amp;v, current_nesting);</div><div class='add'>+			if (np == NULL) {</div><div class='add'>+				{p = p - 1; } {p+= 1; cs = 9; goto _out;}</div><div class='add'>+			} else {</div><div class='add'>+				if (NIL_P(json-&gt;object_class)) {</div><div class='add'>+					OBJ_FREEZE(last_name);</div><div class='add'>+					rb_hash_aset(*result, last_name, v);</div><div class='add'>+				} else {</div><div class='add'>+					rb_funcall(*result, i_aset, 2, last_name, v);</div><div class='add'>+				}</div><div class='add'>+				{p = (( np))-1;}</div><div class='add'>+</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+</div><div class='ctx'> 		goto st9;</div><div class='del'>-	goto st0;</div><div class='del'>-st10:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st9:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='add'>+		goto _test_eof9;</div><div class='add'>+		st_case_9:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st9;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st9;</div><div class='add'>+			}</div><div class='add'>+			case 44: {</div><div class='add'>+				goto st10;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st15;</div><div class='add'>+			}</div><div class='add'>+			case 125: {</div><div class='add'>+				goto ctr4;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 9 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 10 ) {</div><div class='add'>+			goto st9;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st10:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof10;</div><div class='del'>-case 10:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st10;</div><div class='del'>-		case 32: goto st10;</div><div class='del'>-		case 34: goto tr2;</div><div class='del'>-		case 47: goto st11;</div><div class='del'>-	}</div><div class='del'>-	if ( 9 &lt;= (*p) &amp;&amp; (*p) &lt;= 10 )</div><div class='del'>-		goto st10;</div><div class='del'>-	goto st0;</div><div class='del'>-st11:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_10:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st10;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st10;</div><div class='add'>+			}</div><div class='add'>+			case 34: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st11;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 9 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 10 ) {</div><div class='add'>+			goto st10;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st11:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof11;</div><div class='del'>-case 11:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st12;</div><div class='del'>-		case 47: goto st14;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st12:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_11:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st12;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st14;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st12:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof12;</div><div class='del'>-case 12:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st13;</div><div class='del'>-	goto st12;</div><div class='del'>-st13:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_12:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st13;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st12;</div><div class='add'>+		}</div><div class='add'>+		st13:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof13;</div><div class='del'>-case 13:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st13;</div><div class='del'>-		case 47: goto st10;</div><div class='del'>-	}</div><div class='del'>-	goto st12;</div><div class='del'>-st14:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_13:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st13;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st10;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st12;</div><div class='add'>+		}</div><div class='add'>+		st14:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof14;</div><div class='del'>-case 14:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st10;</div><div class='del'>-	goto st14;</div><div class='del'>-st15:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_14:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st10;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st14;</div><div class='add'>+		}</div><div class='add'>+		st15:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof15;</div><div class='del'>-case 15:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st16;</div><div class='del'>-		case 47: goto st18;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st16:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_15:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st16;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st18;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st16:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof16;</div><div class='del'>-case 16:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st17;</div><div class='del'>-	goto st16;</div><div class='del'>-st17:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_16:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st17;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st16;</div><div class='add'>+		}</div><div class='add'>+		st17:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof17;</div><div class='del'>-case 17:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st17;</div><div class='del'>-		case 47: goto st9;</div><div class='del'>-	}</div><div class='del'>-	goto st16;</div><div class='del'>-st18:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_17:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st17;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st9;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st16;</div><div class='add'>+		}</div><div class='add'>+		st18:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof18;</div><div class='del'>-case 18:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st9;</div><div class='del'>-	goto st18;</div><div class='del'>-tr4:</div><div class='del'>-#line 156 "parser.rl"</div><div class='del'>-	{ p--; {p++; cs = 27; goto _out;} }</div><div class='del'>-	goto st27;</div><div class='del'>-st27:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_18:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st9;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st18;</div><div class='add'>+		}</div><div class='add'>+		ctr4:</div><div class='add'>+		{</div><div class='add'>+			#line 157 "parser.rl"</div><div class='add'>+			{p = p - 1; } {p+= 1; cs = 27; goto _out;} }</div><div class='add'>+</div><div class='add'>+		goto st27;</div><div class='add'>+		st27:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof27;</div><div class='del'>-case 27:</div><div class='del'>-#line 362 "parser.c"</div><div class='del'>-	goto st0;</div><div class='del'>-st19:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_27:</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st19:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof19;</div><div class='del'>-case 19:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st20;</div><div class='del'>-		case 47: goto st22;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st20:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_19:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st20;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st22;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st20:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof20;</div><div class='del'>-case 20:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st21;</div><div class='del'>-	goto st20;</div><div class='del'>-st21:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_20:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st21;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st20;</div><div class='add'>+		}</div><div class='add'>+		st21:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof21;</div><div class='del'>-case 21:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st21;</div><div class='del'>-		case 47: goto st8;</div><div class='del'>-	}</div><div class='del'>-	goto st20;</div><div class='del'>-st22:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_21:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st21;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st8;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st20;</div><div class='add'>+		}</div><div class='add'>+		st22:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof22;</div><div class='del'>-case 22:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st8;</div><div class='del'>-	goto st22;</div><div class='del'>-st23:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_22:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st8;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st22;</div><div class='add'>+		}</div><div class='add'>+		st23:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof23;</div><div class='del'>-case 23:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st24;</div><div class='del'>-		case 47: goto st26;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st24:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_23:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st24;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st26;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st24:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof24;</div><div class='del'>-case 24:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st25;</div><div class='del'>-	goto st24;</div><div class='del'>-st25:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_24:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st25;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st24;</div><div class='add'>+		}</div><div class='add'>+		st25:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof25;</div><div class='del'>-case 25:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st25;</div><div class='del'>-		case 47: goto st2;</div><div class='del'>-	}</div><div class='del'>-	goto st24;</div><div class='del'>-st26:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_25:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st25;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st24;</div><div class='add'>+		}</div><div class='add'>+		st26:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof26;</div><div class='del'>-case 26:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st2;</div><div class='del'>-	goto st26;</div><div class='del'>-	}</div><div class='del'>-	_test_eof2: cs = 2; goto _test_eof;</div><div class='del'>-	_test_eof3: cs = 3; goto _test_eof;</div><div class='del'>-	_test_eof4: cs = 4; goto _test_eof;</div><div class='del'>-	_test_eof5: cs = 5; goto _test_eof;</div><div class='del'>-	_test_eof6: cs = 6; goto _test_eof;</div><div class='del'>-	_test_eof7: cs = 7; goto _test_eof;</div><div class='del'>-	_test_eof8: cs = 8; goto _test_eof;</div><div class='del'>-	_test_eof9: cs = 9; goto _test_eof;</div><div class='del'>-	_test_eof10: cs = 10; goto _test_eof;</div><div class='del'>-	_test_eof11: cs = 11; goto _test_eof;</div><div class='del'>-	_test_eof12: cs = 12; goto _test_eof;</div><div class='del'>-	_test_eof13: cs = 13; goto _test_eof;</div><div class='del'>-	_test_eof14: cs = 14; goto _test_eof;</div><div class='del'>-	_test_eof15: cs = 15; goto _test_eof;</div><div class='del'>-	_test_eof16: cs = 16; goto _test_eof;</div><div class='del'>-	_test_eof17: cs = 17; goto _test_eof;</div><div class='del'>-	_test_eof18: cs = 18; goto _test_eof;</div><div class='del'>-	_test_eof27: cs = 27; goto _test_eof;</div><div class='del'>-	_test_eof19: cs = 19; goto _test_eof;</div><div class='del'>-	_test_eof20: cs = 20; goto _test_eof;</div><div class='del'>-	_test_eof21: cs = 21; goto _test_eof;</div><div class='del'>-	_test_eof22: cs = 22; goto _test_eof;</div><div class='del'>-	_test_eof23: cs = 23; goto _test_eof;</div><div class='del'>-	_test_eof24: cs = 24; goto _test_eof;</div><div class='del'>-	_test_eof25: cs = 25; goto _test_eof;</div><div class='del'>-	_test_eof26: cs = 26; goto _test_eof;</div><div class='del'>-</div><div class='del'>-	_test_eof: {}</div><div class='del'>-	_out: {}</div><div class='add'>+		st_case_26:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st2;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st26;</div><div class='add'>+		}</div><div class='add'>+		st_out:</div><div class='add'>+		_test_eof2: cs = 2; goto _test_eof;</div><div class='add'>+		_test_eof3: cs = 3; goto _test_eof;</div><div class='add'>+		_test_eof4: cs = 4; goto _test_eof;</div><div class='add'>+		_test_eof5: cs = 5; goto _test_eof;</div><div class='add'>+		_test_eof6: cs = 6; goto _test_eof;</div><div class='add'>+		_test_eof7: cs = 7; goto _test_eof;</div><div class='add'>+		_test_eof8: cs = 8; goto _test_eof;</div><div class='add'>+		_test_eof9: cs = 9; goto _test_eof;</div><div class='add'>+		_test_eof10: cs = 10; goto _test_eof;</div><div class='add'>+		_test_eof11: cs = 11; goto _test_eof;</div><div class='add'>+		_test_eof12: cs = 12; goto _test_eof;</div><div class='add'>+		_test_eof13: cs = 13; goto _test_eof;</div><div class='add'>+		_test_eof14: cs = 14; goto _test_eof;</div><div class='add'>+		_test_eof15: cs = 15; goto _test_eof;</div><div class='add'>+		_test_eof16: cs = 16; goto _test_eof;</div><div class='add'>+		_test_eof17: cs = 17; goto _test_eof;</div><div class='add'>+		_test_eof18: cs = 18; goto _test_eof;</div><div class='add'>+		_test_eof27: cs = 27; goto _test_eof;</div><div class='add'>+		_test_eof19: cs = 19; goto _test_eof;</div><div class='add'>+		_test_eof20: cs = 20; goto _test_eof;</div><div class='add'>+		_test_eof21: cs = 21; goto _test_eof;</div><div class='add'>+		_test_eof22: cs = 22; goto _test_eof;</div><div class='add'>+		_test_eof23: cs = 23; goto _test_eof;</div><div class='add'>+		_test_eof24: cs = 24; goto _test_eof;</div><div class='add'>+		_test_eof25: cs = 25; goto _test_eof;</div><div class='add'>+		_test_eof26: cs = 26; goto _test_eof;</div><div class='add'>+</div><div class='add'>+		_test_eof: {}</div><div class='add'>+		_out: {}</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	#line 183 "parser.rl"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+	if (cs &gt;= JSON_object_first_final) {</div><div class='add'>+		if (json-&gt;create_additions) {</div><div class='add'>+			VALUE klassname;</div><div class='add'>+			if (NIL_P(json-&gt;object_class)) {</div><div class='add'>+				klassname = rb_hash_aref(*result, json-&gt;create_id);</div><div class='add'>+			} else {</div><div class='add'>+				klassname = rb_funcall(*result, i_aref, 1, json-&gt;create_id);</div><div class='add'>+			}</div><div class='add'>+			if (!NIL_P(klassname)) {</div><div class='add'>+				VALUE klass = rb_funcall(mJSON, i_deep_const_get, 1, klassname);</div><div class='add'>+				if (RTEST(rb_funcall(klass, i_json_creatable_p, 0))) {</div><div class='add'>+					*result = rb_funcall(klass, i_json_create, 1, *result);</div><div class='add'>+				}</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		return p + 1;</div><div class='add'>+	} else {</div><div class='add'>+		return NULL;</div><div class='ctx'> 	}</div><div class='del'>-</div><div class='del'>-#line 182 "parser.rl"</div><div class='del'>-</div><div class='del'>-    if (cs &gt;= JSON_object_first_final) {</div><div class='del'>-        if (json-&gt;create_additions) {</div><div class='del'>-            VALUE klassname;</div><div class='del'>-            if (NIL_P(json-&gt;object_class)) {</div><div class='del'>-              klassname = rb_hash_aref(*result, json-&gt;create_id);</div><div class='del'>-            } else {</div><div class='del'>-              klassname = rb_funcall(*result, i_aref, 1, json-&gt;create_id);</div><div class='del'>-            }</div><div class='del'>-            if (!NIL_P(klassname)) {</div><div class='del'>-                VALUE klass = rb_funcall(mJSON, i_deep_const_get, 1, klassname);</div><div class='del'>-                if (RTEST(rb_funcall(klass, i_json_creatable_p, 0))) {</div><div class='del'>-                    *result = rb_funcall(klass, i_json_create, 1, *result);</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        return p + 1;</div><div class='del'>-    } else {</div><div class='del'>-        return NULL;</div><div class='del'>-    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 485 "parser.c"</div><div class='ctx'> enum {JSON_value_start = 1};</div><div class='ctx'> enum {JSON_value_first_final = 29};</div><div class='ctx'> enum {JSON_value_error = 0};</div><div class='ctx'> </div><div class='ctx'> enum {JSON_value_en_main = 1};</div><div class='ctx'> </div><div class='add'>+static const char MAYBE_UNUSED(_JSON_value_nfa_targs)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-#line 282 "parser.rl"</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_value_nfa_offsets)[] = {</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_value_nfa_push_actions)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_value_nfa_pop_trans)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#line 283 "parser.rl"</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> static char *JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *result, int current_nesting)</div><div class='ctx'> {</div><div class='del'>-    int cs = EVIL;</div><div class='add'>+	int cs = EVIL;</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 501 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	cs = JSON_value_start;</div><div class='add'>+		cs = (int)JSON_value_start;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-#line 289 "parser.rl"</div><div class='add'>+	#line 290 "parser.rl"</div><div class='add'>+</div><div class='ctx'> </div><div class='del'>-#line 508 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	if ( p == pe )</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof;</div><div class='del'>-	switch ( cs )</div><div class='del'>-	{</div><div class='del'>-st1:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		switch ( cs )</div><div class='add'>+		{</div><div class='add'>+			case 1:</div><div class='add'>+			goto st_case_1;</div><div class='add'>+			case 0:</div><div class='add'>+			goto st_case_0;</div><div class='add'>+			case 29:</div><div class='add'>+			goto st_case_29;</div><div class='add'>+			case 2:</div><div class='add'>+			goto st_case_2;</div><div class='add'>+			case 3:</div><div class='add'>+			goto st_case_3;</div><div class='add'>+			case 4:</div><div class='add'>+			goto st_case_4;</div><div class='add'>+			case 5:</div><div class='add'>+			goto st_case_5;</div><div class='add'>+			case 6:</div><div class='add'>+			goto st_case_6;</div><div class='add'>+			case 7:</div><div class='add'>+			goto st_case_7;</div><div class='add'>+			case 8:</div><div class='add'>+			goto st_case_8;</div><div class='add'>+			case 9:</div><div class='add'>+			goto st_case_9;</div><div class='add'>+			case 10:</div><div class='add'>+			goto st_case_10;</div><div class='add'>+			case 11:</div><div class='add'>+			goto st_case_11;</div><div class='add'>+			case 12:</div><div class='add'>+			goto st_case_12;</div><div class='add'>+			case 13:</div><div class='add'>+			goto st_case_13;</div><div class='add'>+			case 14:</div><div class='add'>+			goto st_case_14;</div><div class='add'>+			case 15:</div><div class='add'>+			goto st_case_15;</div><div class='add'>+			case 16:</div><div class='add'>+			goto st_case_16;</div><div class='add'>+			case 17:</div><div class='add'>+			goto st_case_17;</div><div class='add'>+			case 18:</div><div class='add'>+			goto st_case_18;</div><div class='add'>+			case 19:</div><div class='add'>+			goto st_case_19;</div><div class='add'>+			case 20:</div><div class='add'>+			goto st_case_20;</div><div class='add'>+			case 21:</div><div class='add'>+			goto st_case_21;</div><div class='add'>+			case 22:</div><div class='add'>+			goto st_case_22;</div><div class='add'>+			case 23:</div><div class='add'>+			goto st_case_23;</div><div class='add'>+			case 24:</div><div class='add'>+			goto st_case_24;</div><div class='add'>+			case 25:</div><div class='add'>+			goto st_case_25;</div><div class='add'>+			case 26:</div><div class='add'>+			goto st_case_26;</div><div class='add'>+			case 27:</div><div class='add'>+			goto st_case_27;</div><div class='add'>+			case 28:</div><div class='add'>+			goto st_case_28;</div><div class='add'>+		}</div><div class='add'>+		goto st_out;</div><div class='add'>+		st1:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof1;</div><div class='del'>-case 1:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st1;</div><div class='del'>-		case 32: goto st1;</div><div class='del'>-		case 34: goto tr2;</div><div class='del'>-		case 45: goto tr3;</div><div class='del'>-		case 47: goto st6;</div><div class='del'>-		case 73: goto st10;</div><div class='del'>-		case 78: goto st17;</div><div class='del'>-		case 91: goto tr7;</div><div class='del'>-		case 102: goto st19;</div><div class='del'>-		case 110: goto st23;</div><div class='del'>-		case 116: goto st26;</div><div class='del'>-		case 123: goto tr11;</div><div class='del'>-	}</div><div class='del'>-	if ( (*p) &gt; 10 ) {</div><div class='del'>-		if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-			goto tr3;</div><div class='del'>-	} else if ( (*p) &gt;= 9 )</div><div class='del'>-		goto st1;</div><div class='del'>-	goto st0;</div><div class='del'>-st0:</div><div class='del'>-cs = 0;</div><div class='del'>-	goto _out;</div><div class='del'>-tr2:</div><div class='del'>-#line 234 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        char *np = JSON_parse_string(json, p, pe, result);</div><div class='del'>-        if (np == NULL) { p--; {p++; cs = 29; goto _out;} } else {p = (( np))-1;}</div><div class='del'>-    }</div><div class='del'>-	goto st29;</div><div class='del'>-tr3:</div><div class='del'>-#line 239 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        char *np;</div><div class='del'>-        if(pe &gt; p + 8 &amp;&amp; !strncmp(MinusInfinity, p, 9)) {</div><div class='del'>-            if (json-&gt;allow_nan) {</div><div class='del'>-                *result = CMinusInfinity;</div><div class='del'>-                {p = (( p + 10))-1;}</div><div class='del'>-                p--; {p++; cs = 29; goto _out;}</div><div class='del'>-            } else {</div><div class='del'>-                rb_enc_raise(EXC_ENCODING eParserError, "%u: unexpected token at '%s'", __LINE__, p);</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        np = JSON_parse_float(json, p, pe, result);</div><div class='del'>-        if (np != NULL) {p = (( np))-1;}</div><div class='del'>-        np = JSON_parse_integer(json, p, pe, result);</div><div class='del'>-        if (np != NULL) {p = (( np))-1;}</div><div class='del'>-        p--; {p++; cs = 29; goto _out;}</div><div class='del'>-    }</div><div class='del'>-	goto st29;</div><div class='del'>-tr7:</div><div class='del'>-#line 257 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        char *np;</div><div class='del'>-        np = JSON_parse_array(json, p, pe, result, current_nesting + 1);</div><div class='del'>-        if (np == NULL) { p--; {p++; cs = 29; goto _out;} } else {p = (( np))-1;}</div><div class='del'>-    }</div><div class='del'>-	goto st29;</div><div class='del'>-tr11:</div><div class='del'>-#line 263 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        char *np;</div><div class='del'>-        np =  JSON_parse_object(json, p, pe, result, current_nesting + 1);</div><div class='del'>-        if (np == NULL) { p--; {p++; cs = 29; goto _out;} } else {p = (( np))-1;}</div><div class='del'>-    }</div><div class='del'>-	goto st29;</div><div class='del'>-tr25:</div><div class='del'>-#line 227 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        if (json-&gt;allow_nan) {</div><div class='del'>-            *result = CInfinity;</div><div class='del'>-        } else {</div><div class='del'>-            rb_enc_raise(EXC_ENCODING eParserError, "%u: unexpected token at '%s'", __LINE__, p - 8);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-	goto st29;</div><div class='del'>-tr27:</div><div class='del'>-#line 220 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        if (json-&gt;allow_nan) {</div><div class='del'>-            *result = CNaN;</div><div class='del'>-        } else {</div><div class='del'>-            rb_enc_raise(EXC_ENCODING eParserError, "%u: unexpected token at '%s'", __LINE__, p - 2);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-	goto st29;</div><div class='del'>-tr31:</div><div class='del'>-#line 214 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        *result = Qfalse;</div><div class='del'>-    }</div><div class='del'>-	goto st29;</div><div class='del'>-tr34:</div><div class='del'>-#line 211 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        *result = Qnil;</div><div class='del'>-    }</div><div class='del'>-	goto st29;</div><div class='del'>-tr37:</div><div class='del'>-#line 217 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        *result = Qtrue;</div><div class='del'>-    }</div><div class='del'>-	goto st29;</div><div class='del'>-st29:</div><div class='del'>-	if ( ++p == pe )</div><div class='del'>-		goto _test_eof29;</div><div class='del'>-case 29:</div><div class='del'>-#line 269 "parser.rl"</div><div class='del'>-	{ p--; {p++; cs = 29; goto _out;} }</div><div class='del'>-#line 628 "parser.c"</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st29;</div><div class='del'>-		case 32: goto st29;</div><div class='del'>-		case 47: goto st2;</div><div class='del'>-	}</div><div class='del'>-	if ( 9 &lt;= (*p) &amp;&amp; (*p) &lt;= 10 )</div><div class='add'>+		st_case_1:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st1;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st1;</div><div class='add'>+			}</div><div class='add'>+			case 34: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 45: {</div><div class='add'>+				goto ctr3;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st6;</div><div class='add'>+			}</div><div class='add'>+			case 73: {</div><div class='add'>+				goto st10;</div><div class='add'>+			}</div><div class='add'>+			case 78: {</div><div class='add'>+				goto st17;</div><div class='add'>+			}</div><div class='add'>+			case 91: {</div><div class='add'>+				goto ctr7;</div><div class='add'>+			}</div><div class='add'>+			case 102: {</div><div class='add'>+				goto st19;</div><div class='add'>+			}</div><div class='add'>+			case 110: {</div><div class='add'>+				goto st23;</div><div class='add'>+			}</div><div class='add'>+			case 116: {</div><div class='add'>+				goto st26;</div><div class='add'>+			}</div><div class='add'>+			case 123: {</div><div class='add'>+				goto ctr11;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( ( (*( p))) &gt; 10 ) {</div><div class='add'>+			if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+				goto ctr3;</div><div class='add'>+			}</div><div class='add'>+		} else if ( ( (*( p))) &gt;= 9 ) {</div><div class='add'>+			goto st1;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st_case_0:</div><div class='add'>+		st0:</div><div class='add'>+		cs = 0;</div><div class='add'>+		goto _out;</div><div class='add'>+		ctr2:</div><div class='add'>+		{</div><div class='add'>+			#line 235 "parser.rl"</div><div class='add'>+</div><div class='add'>+			char *np = JSON_parse_string(json, p, pe, result);</div><div class='add'>+			if (np == NULL) { {p = p - 1; } {p+= 1; cs = 29; goto _out;} } else {p = (( np))-1;}</div><div class='add'>+</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		goto st29;</div><div class='add'>+		ctr3:</div><div class='add'>+		{</div><div class='add'>+			#line 240 "parser.rl"</div><div class='add'>+</div><div class='add'>+			char *np;</div><div class='add'>+			if(pe &gt; p + 8 &amp;&amp; !strncmp(MinusInfinity, p, 9)) {</div><div class='add'>+				if (json-&gt;allow_nan) {</div><div class='add'>+					*result = CMinusInfinity;</div><div class='add'>+					{p = (( p + 10))-1;}</div><div class='add'>+</div><div class='add'>+					{p = p - 1; } {p+= 1; cs = 29; goto _out;}</div><div class='add'>+				} else {</div><div class='add'>+					rb_enc_raise(EXC_ENCODING eParserError, "unexpected token at '%s'", p);</div><div class='add'>+				}</div><div class='add'>+			}</div><div class='add'>+			np = JSON_parse_float(json, p, pe, result);</div><div class='add'>+			if (np != NULL) {p = (( np))-1;}</div><div class='add'>+</div><div class='add'>+			np = JSON_parse_integer(json, p, pe, result);</div><div class='add'>+			if (np != NULL) {p = (( np))-1;}</div><div class='add'>+</div><div class='add'>+			{p = p - 1; } {p+= 1; cs = 29; goto _out;}</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		goto st29;</div><div class='add'>+		ctr7:</div><div class='add'>+		{</div><div class='add'>+			#line 258 "parser.rl"</div><div class='add'>+</div><div class='add'>+			char *np;</div><div class='add'>+			np = JSON_parse_array(json, p, pe, result, current_nesting + 1);</div><div class='add'>+			if (np == NULL) { {p = p - 1; } {p+= 1; cs = 29; goto _out;} } else {p = (( np))-1;}</div><div class='add'>+</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		goto st29;</div><div class='add'>+		ctr11:</div><div class='add'>+		{</div><div class='add'>+			#line 264 "parser.rl"</div><div class='add'>+</div><div class='add'>+			char *np;</div><div class='add'>+			np =  JSON_parse_object(json, p, pe, result, current_nesting + 1);</div><div class='add'>+			if (np == NULL) { {p = p - 1; } {p+= 1; cs = 29; goto _out;} } else {p = (( np))-1;}</div><div class='add'>+</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		goto st29;</div><div class='add'>+		ctr25:</div><div class='add'>+		{</div><div class='add'>+			#line 228 "parser.rl"</div><div class='add'>+</div><div class='add'>+			if (json-&gt;allow_nan) {</div><div class='add'>+				*result = CInfinity;</div><div class='add'>+			} else {</div><div class='add'>+				rb_enc_raise(EXC_ENCODING eParserError, "unexpected token at '%s'", p - 8);</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		goto st29;</div><div class='add'>+		ctr27:</div><div class='add'>+		{</div><div class='add'>+			#line 221 "parser.rl"</div><div class='add'>+</div><div class='add'>+			if (json-&gt;allow_nan) {</div><div class='add'>+				*result = CNaN;</div><div class='add'>+			} else {</div><div class='add'>+				rb_enc_raise(EXC_ENCODING eParserError, "unexpected token at '%s'", p - 2);</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		goto st29;</div><div class='add'>+		ctr31:</div><div class='add'>+		{</div><div class='add'>+			#line 215 "parser.rl"</div><div class='add'>+</div><div class='add'>+			*result = Qfalse;</div><div class='add'>+		}</div><div class='add'>+</div><div class='ctx'> 		goto st29;</div><div class='del'>-	goto st0;</div><div class='del'>-st2:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		ctr34:</div><div class='add'>+		{</div><div class='add'>+			#line 212 "parser.rl"</div><div class='add'>+</div><div class='add'>+			*result = Qnil;</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		goto st29;</div><div class='add'>+		ctr37:</div><div class='add'>+		{</div><div class='add'>+			#line 218 "parser.rl"</div><div class='add'>+</div><div class='add'>+			*result = Qtrue;</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		goto st29;</div><div class='add'>+		st29:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='add'>+		goto _test_eof29;</div><div class='add'>+		st_case_29:</div><div class='add'>+		{</div><div class='add'>+			#line 270 "parser.rl"</div><div class='add'>+			{p = p - 1; } {p+= 1; cs = 29; goto _out;} }</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st29;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st29;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 9 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 10 ) {</div><div class='add'>+			goto st29;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st2:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof2;</div><div class='del'>-case 2:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st3;</div><div class='del'>-		case 47: goto st5;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st3:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_2:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st3;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st3:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof3;</div><div class='del'>-case 3:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st4;</div><div class='del'>-	goto st3;</div><div class='del'>-st4:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_3:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st4;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st3;</div><div class='add'>+		}</div><div class='add'>+		st4:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof4;</div><div class='del'>-case 4:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st4;</div><div class='del'>-		case 47: goto st29;</div><div class='del'>-	}</div><div class='del'>-	goto st3;</div><div class='del'>-st5:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_4:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st4;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st29;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st3;</div><div class='add'>+		}</div><div class='add'>+		st5:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof5;</div><div class='del'>-case 5:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st29;</div><div class='del'>-	goto st5;</div><div class='del'>-st6:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_5:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st29;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st5;</div><div class='add'>+		}</div><div class='add'>+		st6:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof6;</div><div class='del'>-case 6:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st7;</div><div class='del'>-		case 47: goto st9;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st7:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_6:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st7;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st9;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st7:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof7;</div><div class='del'>-case 7:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st8;</div><div class='del'>-	goto st7;</div><div class='del'>-st8:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_7:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st8;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st7;</div><div class='add'>+		}</div><div class='add'>+		st8:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof8;</div><div class='del'>-case 8:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st8;</div><div class='del'>-		case 47: goto st1;</div><div class='del'>-	}</div><div class='del'>-	goto st7;</div><div class='del'>-st9:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_8:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st8;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st1;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st7;</div><div class='add'>+		}</div><div class='add'>+		st9:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof9;</div><div class='del'>-case 9:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st1;</div><div class='del'>-	goto st9;</div><div class='del'>-st10:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_9:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st1;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st9;</div><div class='add'>+		}</div><div class='add'>+		st10:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof10;</div><div class='del'>-case 10:</div><div class='del'>-	if ( (*p) == 110 )</div><div class='del'>-		goto st11;</div><div class='del'>-	goto st0;</div><div class='del'>-st11:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_10:</div><div class='add'>+		if ( ( (*( p))) == 110 ) {</div><div class='add'>+			goto st11;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st11:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof11;</div><div class='del'>-case 11:</div><div class='del'>-	if ( (*p) == 102 )</div><div class='del'>-		goto st12;</div><div class='del'>-	goto st0;</div><div class='del'>-st12:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_11:</div><div class='add'>+		if ( ( (*( p))) == 102 ) {</div><div class='add'>+			goto st12;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st12:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof12;</div><div class='del'>-case 12:</div><div class='del'>-	if ( (*p) == 105 )</div><div class='del'>-		goto st13;</div><div class='del'>-	goto st0;</div><div class='del'>-st13:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_12:</div><div class='add'>+		if ( ( (*( p))) == 105 ) {</div><div class='add'>+			goto st13;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st13:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof13;</div><div class='del'>-case 13:</div><div class='del'>-	if ( (*p) == 110 )</div><div class='del'>-		goto st14;</div><div class='del'>-	goto st0;</div><div class='del'>-st14:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_13:</div><div class='add'>+		if ( ( (*( p))) == 110 ) {</div><div class='add'>+			goto st14;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st14:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof14;</div><div class='del'>-case 14:</div><div class='del'>-	if ( (*p) == 105 )</div><div class='del'>-		goto st15;</div><div class='del'>-	goto st0;</div><div class='del'>-st15:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_14:</div><div class='add'>+		if ( ( (*( p))) == 105 ) {</div><div class='add'>+			goto st15;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st15:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof15;</div><div class='del'>-case 15:</div><div class='del'>-	if ( (*p) == 116 )</div><div class='del'>-		goto st16;</div><div class='del'>-	goto st0;</div><div class='del'>-st16:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_15:</div><div class='add'>+		if ( ( (*( p))) == 116 ) {</div><div class='add'>+			goto st16;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st16:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof16;</div><div class='del'>-case 16:</div><div class='del'>-	if ( (*p) == 121 )</div><div class='del'>-		goto tr25;</div><div class='del'>-	goto st0;</div><div class='del'>-st17:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_16:</div><div class='add'>+		if ( ( (*( p))) == 121 ) {</div><div class='add'>+			goto ctr25;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st17:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof17;</div><div class='del'>-case 17:</div><div class='del'>-	if ( (*p) == 97 )</div><div class='del'>-		goto st18;</div><div class='del'>-	goto st0;</div><div class='del'>-st18:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_17:</div><div class='add'>+		if ( ( (*( p))) == 97 ) {</div><div class='add'>+			goto st18;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st18:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof18;</div><div class='del'>-case 18:</div><div class='del'>-	if ( (*p) == 78 )</div><div class='del'>-		goto tr27;</div><div class='del'>-	goto st0;</div><div class='del'>-st19:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_18:</div><div class='add'>+		if ( ( (*( p))) == 78 ) {</div><div class='add'>+			goto ctr27;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st19:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof19;</div><div class='del'>-case 19:</div><div class='del'>-	if ( (*p) == 97 )</div><div class='del'>-		goto st20;</div><div class='del'>-	goto st0;</div><div class='del'>-st20:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_19:</div><div class='add'>+		if ( ( (*( p))) == 97 ) {</div><div class='add'>+			goto st20;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st20:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof20;</div><div class='del'>-case 20:</div><div class='del'>-	if ( (*p) == 108 )</div><div class='del'>-		goto st21;</div><div class='del'>-	goto st0;</div><div class='del'>-st21:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_20:</div><div class='add'>+		if ( ( (*( p))) == 108 ) {</div><div class='add'>+			goto st21;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st21:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof21;</div><div class='del'>-case 21:</div><div class='del'>-	if ( (*p) == 115 )</div><div class='del'>-		goto st22;</div><div class='del'>-	goto st0;</div><div class='del'>-st22:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_21:</div><div class='add'>+		if ( ( (*( p))) == 115 ) {</div><div class='add'>+			goto st22;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st22:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof22;</div><div class='del'>-case 22:</div><div class='del'>-	if ( (*p) == 101 )</div><div class='del'>-		goto tr31;</div><div class='del'>-	goto st0;</div><div class='del'>-st23:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_22:</div><div class='add'>+		if ( ( (*( p))) == 101 ) {</div><div class='add'>+			goto ctr31;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st23:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof23;</div><div class='del'>-case 23:</div><div class='del'>-	if ( (*p) == 117 )</div><div class='del'>-		goto st24;</div><div class='del'>-	goto st0;</div><div class='del'>-st24:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_23:</div><div class='add'>+		if ( ( (*( p))) == 117 ) {</div><div class='add'>+			goto st24;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st24:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof24;</div><div class='del'>-case 24:</div><div class='del'>-	if ( (*p) == 108 )</div><div class='del'>-		goto st25;</div><div class='del'>-	goto st0;</div><div class='del'>-st25:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_24:</div><div class='add'>+		if ( ( (*( p))) == 108 ) {</div><div class='add'>+			goto st25;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st25:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof25;</div><div class='del'>-case 25:</div><div class='del'>-	if ( (*p) == 108 )</div><div class='del'>-		goto tr34;</div><div class='del'>-	goto st0;</div><div class='del'>-st26:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_25:</div><div class='add'>+		if ( ( (*( p))) == 108 ) {</div><div class='add'>+			goto ctr34;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st26:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof26;</div><div class='del'>-case 26:</div><div class='del'>-	if ( (*p) == 114 )</div><div class='del'>-		goto st27;</div><div class='del'>-	goto st0;</div><div class='del'>-st27:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_26:</div><div class='add'>+		if ( ( (*( p))) == 114 ) {</div><div class='add'>+			goto st27;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st27:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof27;</div><div class='del'>-case 27:</div><div class='del'>-	if ( (*p) == 117 )</div><div class='del'>-		goto st28;</div><div class='del'>-	goto st0;</div><div class='del'>-st28:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_27:</div><div class='add'>+		if ( ( (*( p))) == 117 ) {</div><div class='add'>+			goto st28;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st28:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof28;</div><div class='del'>-case 28:</div><div class='del'>-	if ( (*p) == 101 )</div><div class='del'>-		goto tr37;</div><div class='del'>-	goto st0;</div><div class='del'>-	}</div><div class='del'>-	_test_eof1: cs = 1; goto _test_eof;</div><div class='del'>-	_test_eof29: cs = 29; goto _test_eof;</div><div class='del'>-	_test_eof2: cs = 2; goto _test_eof;</div><div class='del'>-	_test_eof3: cs = 3; goto _test_eof;</div><div class='del'>-	_test_eof4: cs = 4; goto _test_eof;</div><div class='del'>-	_test_eof5: cs = 5; goto _test_eof;</div><div class='del'>-	_test_eof6: cs = 6; goto _test_eof;</div><div class='del'>-	_test_eof7: cs = 7; goto _test_eof;</div><div class='del'>-	_test_eof8: cs = 8; goto _test_eof;</div><div class='del'>-	_test_eof9: cs = 9; goto _test_eof;</div><div class='del'>-	_test_eof10: cs = 10; goto _test_eof;</div><div class='del'>-	_test_eof11: cs = 11; goto _test_eof;</div><div class='del'>-	_test_eof12: cs = 12; goto _test_eof;</div><div class='del'>-	_test_eof13: cs = 13; goto _test_eof;</div><div class='del'>-	_test_eof14: cs = 14; goto _test_eof;</div><div class='del'>-	_test_eof15: cs = 15; goto _test_eof;</div><div class='del'>-	_test_eof16: cs = 16; goto _test_eof;</div><div class='del'>-	_test_eof17: cs = 17; goto _test_eof;</div><div class='del'>-	_test_eof18: cs = 18; goto _test_eof;</div><div class='del'>-	_test_eof19: cs = 19; goto _test_eof;</div><div class='del'>-	_test_eof20: cs = 20; goto _test_eof;</div><div class='del'>-	_test_eof21: cs = 21; goto _test_eof;</div><div class='del'>-	_test_eof22: cs = 22; goto _test_eof;</div><div class='del'>-	_test_eof23: cs = 23; goto _test_eof;</div><div class='del'>-	_test_eof24: cs = 24; goto _test_eof;</div><div class='del'>-	_test_eof25: cs = 25; goto _test_eof;</div><div class='del'>-	_test_eof26: cs = 26; goto _test_eof;</div><div class='del'>-	_test_eof27: cs = 27; goto _test_eof;</div><div class='del'>-	_test_eof28: cs = 28; goto _test_eof;</div><div class='del'>-</div><div class='del'>-	_test_eof: {}</div><div class='del'>-	_out: {}</div><div class='add'>+		st_case_28:</div><div class='add'>+		if ( ( (*( p))) == 101 ) {</div><div class='add'>+			goto ctr37;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st_out:</div><div class='add'>+		_test_eof1: cs = 1; goto _test_eof;</div><div class='add'>+		_test_eof29: cs = 29; goto _test_eof;</div><div class='add'>+		_test_eof2: cs = 2; goto _test_eof;</div><div class='add'>+		_test_eof3: cs = 3; goto _test_eof;</div><div class='add'>+		_test_eof4: cs = 4; goto _test_eof;</div><div class='add'>+		_test_eof5: cs = 5; goto _test_eof;</div><div class='add'>+		_test_eof6: cs = 6; goto _test_eof;</div><div class='add'>+		_test_eof7: cs = 7; goto _test_eof;</div><div class='add'>+		_test_eof8: cs = 8; goto _test_eof;</div><div class='add'>+		_test_eof9: cs = 9; goto _test_eof;</div><div class='add'>+		_test_eof10: cs = 10; goto _test_eof;</div><div class='add'>+		_test_eof11: cs = 11; goto _test_eof;</div><div class='add'>+		_test_eof12: cs = 12; goto _test_eof;</div><div class='add'>+		_test_eof13: cs = 13; goto _test_eof;</div><div class='add'>+		_test_eof14: cs = 14; goto _test_eof;</div><div class='add'>+		_test_eof15: cs = 15; goto _test_eof;</div><div class='add'>+		_test_eof16: cs = 16; goto _test_eof;</div><div class='add'>+		_test_eof17: cs = 17; goto _test_eof;</div><div class='add'>+		_test_eof18: cs = 18; goto _test_eof;</div><div class='add'>+		_test_eof19: cs = 19; goto _test_eof;</div><div class='add'>+		_test_eof20: cs = 20; goto _test_eof;</div><div class='add'>+		_test_eof21: cs = 21; goto _test_eof;</div><div class='add'>+		_test_eof22: cs = 22; goto _test_eof;</div><div class='add'>+		_test_eof23: cs = 23; goto _test_eof;</div><div class='add'>+		_test_eof24: cs = 24; goto _test_eof;</div><div class='add'>+		_test_eof25: cs = 25; goto _test_eof;</div><div class='add'>+		_test_eof26: cs = 26; goto _test_eof;</div><div class='add'>+		_test_eof27: cs = 27; goto _test_eof;</div><div class='add'>+		_test_eof28: cs = 28; goto _test_eof;</div><div class='add'>+</div><div class='add'>+		_test_eof: {}</div><div class='add'>+		_out: {}</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	#line 291 "parser.rl"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+	if (json-&gt;freeze) {</div><div class='add'>+		OBJ_FREEZE(*result);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (cs &gt;= JSON_value_first_final) {</div><div class='add'>+		return p;</div><div class='add'>+	} else {</div><div class='add'>+		return NULL;</div><div class='ctx'> 	}</div><div class='del'>-</div><div class='del'>-#line 290 "parser.rl"</div><div class='del'>-</div><div class='del'>-    if (cs &gt;= JSON_value_first_final) {</div><div class='del'>-        return p;</div><div class='del'>-    } else {</div><div class='del'>-        return NULL;</div><div class='del'>-    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 879 "parser.c"</div><div class='ctx'> enum {JSON_integer_start = 1};</div><div class='ctx'> enum {JSON_integer_first_final = 3};</div><div class='ctx'> enum {JSON_integer_error = 0};</div><div class='ctx'> </div><div class='ctx'> enum {JSON_integer_en_main = 1};</div><div class='ctx'> </div><div class='add'>+static const char MAYBE_UNUSED(_JSON_integer_nfa_targs)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-#line 306 "parser.rl"</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_integer_nfa_offsets)[] = {</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_integer_nfa_push_actions)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_integer_nfa_pop_trans)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#line 311 "parser.rl"</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> static char *JSON_parse_integer(JSON_Parser *json, char *p, char *pe, VALUE *result)</div><div class='ctx'> {</div><div class='del'>-    int cs = EVIL;</div><div class='add'>+	int cs = EVIL;</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 895 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	cs = JSON_integer_start;</div><div class='add'>+		cs = (int)JSON_integer_start;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-#line 313 "parser.rl"</div><div class='del'>-    json-&gt;memo = p;</div><div class='add'>+	#line 318 "parser.rl"</div><div class='add'>+</div><div class='add'>+	json-&gt;memo = p;</div><div class='ctx'> </div><div class='del'>-#line 903 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	if ( p == pe )</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof;</div><div class='del'>-	switch ( cs )</div><div class='del'>-	{</div><div class='del'>-case 1:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 45: goto st2;</div><div class='del'>-		case 48: goto st3;</div><div class='del'>-	}</div><div class='del'>-	if ( 49 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-		goto st5;</div><div class='del'>-	goto st0;</div><div class='del'>-st0:</div><div class='del'>-cs = 0;</div><div class='del'>-	goto _out;</div><div class='del'>-st2:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		switch ( cs )</div><div class='add'>+		{</div><div class='add'>+			case 1:</div><div class='add'>+			goto st_case_1;</div><div class='add'>+			case 0:</div><div class='add'>+			goto st_case_0;</div><div class='add'>+			case 2:</div><div class='add'>+			goto st_case_2;</div><div class='add'>+			case 3:</div><div class='add'>+			goto st_case_3;</div><div class='add'>+			case 4:</div><div class='add'>+			goto st_case_4;</div><div class='add'>+			case 5:</div><div class='add'>+			goto st_case_5;</div><div class='add'>+		}</div><div class='add'>+		goto st_out;</div><div class='add'>+		st_case_1:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 45: {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+			case 48: {</div><div class='add'>+				goto st3;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 49 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+			goto st5;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st_case_0:</div><div class='add'>+		st0:</div><div class='add'>+		cs = 0;</div><div class='add'>+		goto _out;</div><div class='add'>+		st2:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof2;</div><div class='del'>-case 2:</div><div class='del'>-	if ( (*p) == 48 )</div><div class='del'>-		goto st3;</div><div class='del'>-	if ( 49 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-		goto st5;</div><div class='del'>-	goto st0;</div><div class='del'>-st3:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_2:</div><div class='add'>+		if ( ( (*( p))) == 48 ) {</div><div class='add'>+			goto st3;</div><div class='add'>+		}</div><div class='add'>+		if ( 49 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+			goto st5;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st3:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof3;</div><div class='del'>-case 3:</div><div class='del'>-	if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-		goto st0;</div><div class='del'>-	goto tr4;</div><div class='del'>-tr4:</div><div class='del'>-#line 303 "parser.rl"</div><div class='del'>-	{ p--; {p++; cs = 4; goto _out;} }</div><div class='del'>-	goto st4;</div><div class='del'>-st4:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_3:</div><div class='add'>+		if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto ctr4;</div><div class='add'>+		}</div><div class='add'>+		ctr4:</div><div class='add'>+		{</div><div class='add'>+			#line 308 "parser.rl"</div><div class='add'>+			{p = p - 1; } {p+= 1; cs = 4; goto _out;} }</div><div class='add'>+</div><div class='add'>+		goto st4;</div><div class='add'>+		st4:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof4;</div><div class='del'>-case 4:</div><div class='del'>-#line 944 "parser.c"</div><div class='del'>-	goto st0;</div><div class='del'>-st5:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_4:</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st5:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof5;</div><div class='del'>-case 5:</div><div class='del'>-	if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-		goto st5;</div><div class='del'>-	goto tr4;</div><div class='del'>-	}</div><div class='del'>-	_test_eof2: cs = 2; goto _test_eof;</div><div class='del'>-	_test_eof3: cs = 3; goto _test_eof;</div><div class='del'>-	_test_eof4: cs = 4; goto _test_eof;</div><div class='del'>-	_test_eof5: cs = 5; goto _test_eof;</div><div class='add'>+		st_case_5:</div><div class='add'>+		if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+			goto st5;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto ctr4;</div><div class='add'>+		}</div><div class='add'>+		st_out:</div><div class='add'>+		_test_eof2: cs = 2; goto _test_eof;</div><div class='add'>+		_test_eof3: cs = 3; goto _test_eof;</div><div class='add'>+		_test_eof4: cs = 4; goto _test_eof;</div><div class='add'>+		_test_eof5: cs = 5; goto _test_eof;</div><div class='ctx'> </div><div class='del'>-	_test_eof: {}</div><div class='del'>-	_out: {}</div><div class='add'>+		_test_eof: {}</div><div class='add'>+		_out: {}</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-#line 315 "parser.rl"</div><div class='del'>-</div><div class='del'>-    if (cs &gt;= JSON_integer_first_final) {</div><div class='del'>-        long len = p - json-&gt;memo;</div><div class='del'>-        fbuffer_clear(json-&gt;fbuffer);</div><div class='del'>-        fbuffer_append(json-&gt;fbuffer, json-&gt;memo, len);</div><div class='del'>-        fbuffer_append_char(json-&gt;fbuffer, '\0');</div><div class='del'>-        *result = rb_cstr2inum(FBUFFER_PTR(json-&gt;fbuffer), 10);</div><div class='del'>-        return p + 1;</div><div class='del'>-    } else {</div><div class='del'>-        return NULL;</div><div class='del'>-    }</div><div class='add'>+	#line 320 "parser.rl"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+	if (cs &gt;= JSON_integer_first_final) {</div><div class='add'>+		long len = p - json-&gt;memo;</div><div class='add'>+		fbuffer_clear(json-&gt;fbuffer);</div><div class='add'>+		fbuffer_append(json-&gt;fbuffer, json-&gt;memo, len);</div><div class='add'>+		fbuffer_append_char(json-&gt;fbuffer, '\0');</div><div class='add'>+		*result = rb_cstr2inum(FBUFFER_PTR(json-&gt;fbuffer), 10);</div><div class='add'>+		return p + 1;</div><div class='add'>+	} else {</div><div class='add'>+		return NULL;</div><div class='add'>+	}</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 978 "parser.c"</div><div class='ctx'> enum {JSON_float_start = 1};</div><div class='ctx'> enum {JSON_float_first_final = 8};</div><div class='ctx'> enum {JSON_float_error = 0};</div><div class='ctx'> </div><div class='ctx'> enum {JSON_float_en_main = 1};</div><div class='ctx'> </div><div class='add'>+static const char MAYBE_UNUSED(_JSON_float_nfa_targs)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-#line 340 "parser.rl"</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_float_nfa_offsets)[] = {</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+	0, 0, 0, 0</div><div class='add'>+};</div><div class='ctx'> </div><div class='add'>+static const char MAYBE_UNUSED(_JSON_float_nfa_push_actions)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_float_nfa_pop_trans)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#line 345 "parser.rl"</div><div class='ctx'> </div><div class='del'>-static int is_bigdecimal_class(VALUE obj)</div><div class='del'>-{</div><div class='del'>-  if (cBigDecimal == Qundef) {</div><div class='del'>-    if (rb_const_defined(rb_cObject, i_BigDecimal)) {</div><div class='del'>-      cBigDecimal = rb_const_get_at(rb_cObject, i_BigDecimal);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-      return 0;</div><div class='del'>-    }</div><div class='del'>-  }</div><div class='del'>-  return obj == cBigDecimal;</div><div class='del'>-}</div><div class='ctx'> </div><div class='ctx'> static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *result)</div><div class='ctx'> {</div><div class='del'>-    int cs = EVIL;</div><div class='add'>+	int cs = EVIL;</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 994 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	cs = JSON_float_start;</div><div class='add'>+		cs = (int)JSON_float_start;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-#line 347 "parser.rl"</div><div class='del'>-    json-&gt;memo = p;</div><div class='add'>+	#line 352 "parser.rl"</div><div class='add'>+</div><div class='add'>+	json-&gt;memo = p;</div><div class='ctx'> </div><div class='del'>-#line 1002 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	if ( p == pe )</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof;</div><div class='del'>-	switch ( cs )</div><div class='del'>-	{</div><div class='del'>-case 1:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 45: goto st2;</div><div class='del'>-		case 48: goto st3;</div><div class='del'>-	}</div><div class='del'>-	if ( 49 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-		goto st7;</div><div class='del'>-	goto st0;</div><div class='del'>-st0:</div><div class='del'>-cs = 0;</div><div class='del'>-	goto _out;</div><div class='del'>-st2:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		switch ( cs )</div><div class='add'>+		{</div><div class='add'>+			case 1:</div><div class='add'>+			goto st_case_1;</div><div class='add'>+			case 0:</div><div class='add'>+			goto st_case_0;</div><div class='add'>+			case 2:</div><div class='add'>+			goto st_case_2;</div><div class='add'>+			case 3:</div><div class='add'>+			goto st_case_3;</div><div class='add'>+			case 4:</div><div class='add'>+			goto st_case_4;</div><div class='add'>+			case 8:</div><div class='add'>+			goto st_case_8;</div><div class='add'>+			case 9:</div><div class='add'>+			goto st_case_9;</div><div class='add'>+			case 5:</div><div class='add'>+			goto st_case_5;</div><div class='add'>+			case 6:</div><div class='add'>+			goto st_case_6;</div><div class='add'>+			case 10:</div><div class='add'>+			goto st_case_10;</div><div class='add'>+			case 7:</div><div class='add'>+			goto st_case_7;</div><div class='add'>+		}</div><div class='add'>+		goto st_out;</div><div class='add'>+		st_case_1:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 45: {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+			case 48: {</div><div class='add'>+				goto st3;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 49 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+			goto st7;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st_case_0:</div><div class='add'>+		st0:</div><div class='add'>+		cs = 0;</div><div class='add'>+		goto _out;</div><div class='add'>+		st2:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof2;</div><div class='del'>-case 2:</div><div class='del'>-	if ( (*p) == 48 )</div><div class='del'>-		goto st3;</div><div class='del'>-	if ( 49 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-		goto st7;</div><div class='del'>-	goto st0;</div><div class='del'>-st3:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_2:</div><div class='add'>+		if ( ( (*( p))) == 48 ) {</div><div class='add'>+			goto st3;</div><div class='add'>+		}</div><div class='add'>+		if ( 49 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+			goto st7;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st3:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof3;</div><div class='del'>-case 3:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 46: goto st4;</div><div class='del'>-		case 69: goto st5;</div><div class='del'>-		case 101: goto st5;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st4:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_3:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 46: {</div><div class='add'>+				goto st4;</div><div class='add'>+			}</div><div class='add'>+			case 69: {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+			case 101: {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st4:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof4;</div><div class='del'>-case 4:</div><div class='del'>-	if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-		goto st8;</div><div class='del'>-	goto st0;</div><div class='del'>-st8:</div><div class='del'>-	if ( ++p == pe )</div><div class='del'>-		goto _test_eof8;</div><div class='del'>-case 8:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 69: goto st5;</div><div class='del'>-		case 101: goto st5;</div><div class='del'>-	}</div><div class='del'>-	if ( (*p) &gt; 46 ) {</div><div class='del'>-		if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='add'>+		st_case_4:</div><div class='add'>+		if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='ctx'> 			goto st8;</div><div class='del'>-	} else if ( (*p) &gt;= 45 )</div><div class='del'>-		goto st0;</div><div class='del'>-	goto tr9;</div><div class='del'>-tr9:</div><div class='del'>-#line 334 "parser.rl"</div><div class='del'>-	{ p--; {p++; cs = 9; goto _out;} }</div><div class='del'>-	goto st9;</div><div class='del'>-st9:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st8:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='add'>+		goto _test_eof8;</div><div class='add'>+		st_case_8:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 69: {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+			case 101: {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( ( (*( p))) &gt; 46 ) {</div><div class='add'>+			if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+				goto st8;</div><div class='add'>+			}</div><div class='add'>+		} else if ( ( (*( p))) &gt;= 45 ) {</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto ctr9;</div><div class='add'>+		}</div><div class='add'>+		ctr9:</div><div class='add'>+		{</div><div class='add'>+			#line 339 "parser.rl"</div><div class='add'>+			{p = p - 1; } {p+= 1; cs = 9; goto _out;} }</div><div class='add'>+</div><div class='add'>+		goto st9;</div><div class='add'>+		st9:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof9;</div><div class='del'>-case 9:</div><div class='del'>-#line 1067 "parser.c"</div><div class='del'>-	goto st0;</div><div class='del'>-st5:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_9:</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st5:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof5;</div><div class='del'>-case 5:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 43: goto st6;</div><div class='del'>-		case 45: goto st6;</div><div class='del'>-	}</div><div class='del'>-	if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-		goto st10;</div><div class='del'>-	goto st0;</div><div class='del'>-st6:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_5:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 43: {</div><div class='add'>+				goto st6;</div><div class='add'>+			}</div><div class='add'>+			case 45: {</div><div class='add'>+				goto st6;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+			goto st10;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st6:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof6;</div><div class='del'>-case 6:</div><div class='del'>-	if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-		goto st10;</div><div class='del'>-	goto st0;</div><div class='del'>-st10:</div><div class='del'>-	if ( ++p == pe )</div><div class='del'>-		goto _test_eof10;</div><div class='del'>-case 10:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 69: goto st0;</div><div class='del'>-		case 101: goto st0;</div><div class='del'>-	}</div><div class='del'>-	if ( (*p) &gt; 46 ) {</div><div class='del'>-		if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='add'>+		st_case_6:</div><div class='add'>+		if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='ctx'> 			goto st10;</div><div class='del'>-	} else if ( (*p) &gt;= 45 )</div><div class='del'>-		goto st0;</div><div class='del'>-	goto tr9;</div><div class='del'>-st7:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st10:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='add'>+		goto _test_eof10;</div><div class='add'>+		st_case_10:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 69: {</div><div class='add'>+				goto st0;</div><div class='add'>+			}</div><div class='add'>+			case 101: {</div><div class='add'>+				goto st0;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( ( (*( p))) &gt; 46 ) {</div><div class='add'>+			if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+				goto st10;</div><div class='add'>+			}</div><div class='add'>+		} else if ( ( (*( p))) &gt;= 45 ) {</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto ctr9;</div><div class='add'>+		}</div><div class='add'>+		st7:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof7;</div><div class='del'>-case 7:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 46: goto st4;</div><div class='del'>-		case 69: goto st5;</div><div class='del'>-		case 101: goto st5;</div><div class='del'>-	}</div><div class='del'>-	if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-		goto st7;</div><div class='del'>-	goto st0;</div><div class='del'>-	}</div><div class='del'>-	_test_eof2: cs = 2; goto _test_eof;</div><div class='del'>-	_test_eof3: cs = 3; goto _test_eof;</div><div class='del'>-	_test_eof4: cs = 4; goto _test_eof;</div><div class='del'>-	_test_eof8: cs = 8; goto _test_eof;</div><div class='del'>-	_test_eof9: cs = 9; goto _test_eof;</div><div class='del'>-	_test_eof5: cs = 5; goto _test_eof;</div><div class='del'>-	_test_eof6: cs = 6; goto _test_eof;</div><div class='del'>-	_test_eof10: cs = 10; goto _test_eof;</div><div class='del'>-	_test_eof7: cs = 7; goto _test_eof;</div><div class='del'>-</div><div class='del'>-	_test_eof: {}</div><div class='del'>-	_out: {}</div><div class='add'>+		st_case_7:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 46: {</div><div class='add'>+				goto st4;</div><div class='add'>+			}</div><div class='add'>+			case 69: {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+			case 101: {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+			goto st7;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st_out:</div><div class='add'>+		_test_eof2: cs = 2; goto _test_eof;</div><div class='add'>+		_test_eof3: cs = 3; goto _test_eof;</div><div class='add'>+		_test_eof4: cs = 4; goto _test_eof;</div><div class='add'>+		_test_eof8: cs = 8; goto _test_eof;</div><div class='add'>+		_test_eof9: cs = 9; goto _test_eof;</div><div class='add'>+		_test_eof5: cs = 5; goto _test_eof;</div><div class='add'>+		_test_eof6: cs = 6; goto _test_eof;</div><div class='add'>+		_test_eof10: cs = 10; goto _test_eof;</div><div class='add'>+		_test_eof7: cs = 7; goto _test_eof;</div><div class='add'>+</div><div class='add'>+		_test_eof: {}</div><div class='add'>+		_out: {}</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	#line 354 "parser.rl"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+	if (cs &gt;= JSON_float_first_final) {</div><div class='add'>+		VALUE mod = Qnil;</div><div class='add'>+		ID method_id = 0;</div><div class='add'>+		if (rb_respond_to(json-&gt;decimal_class, i_try_convert)) {</div><div class='add'>+			mod = json-&gt;decimal_class;</div><div class='add'>+			method_id = i_try_convert;</div><div class='add'>+		} else if (rb_respond_to(json-&gt;decimal_class, i_new)) {</div><div class='add'>+			mod = json-&gt;decimal_class;</div><div class='add'>+			method_id = i_new;</div><div class='add'>+		} else if (RB_TYPE_P(json-&gt;decimal_class, T_CLASS)) {</div><div class='add'>+			VALUE name = rb_class_name(json-&gt;decimal_class);</div><div class='add'>+			const char *name_cstr = RSTRING_PTR(name);</div><div class='add'>+			const char *last_colon = strrchr(name_cstr, ':');</div><div class='add'>+			if (last_colon) {</div><div class='add'>+				const char *mod_path_end = last_colon - 1;</div><div class='add'>+				VALUE mod_path = rb_str_substr(name, 0, mod_path_end - name_cstr);</div><div class='add'>+				mod = rb_path_to_class(mod_path);</div><div class='add'>+</div><div class='add'>+				const char *method_name_beg = last_colon + 1;</div><div class='add'>+				long before_len = method_name_beg - name_cstr;</div><div class='add'>+				long len = RSTRING_LEN(name) - before_len;</div><div class='add'>+				VALUE method_name = rb_str_substr(name, before_len, len);</div><div class='add'>+				method_id = SYM2ID(rb_str_intern(method_name));</div><div class='add'>+			} else {</div><div class='add'>+				mod = rb_mKernel;</div><div class='add'>+				method_id = SYM2ID(rb_str_intern(name));</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		long len = p - json-&gt;memo;</div><div class='add'>+		fbuffer_clear(json-&gt;fbuffer);</div><div class='add'>+		fbuffer_append(json-&gt;fbuffer, json-&gt;memo, len);</div><div class='add'>+		fbuffer_append_char(json-&gt;fbuffer, '\0');</div><div class='add'>+</div><div class='add'>+		if (method_id) {</div><div class='add'>+			VALUE text = rb_str_new2(FBUFFER_PTR(json-&gt;fbuffer));</div><div class='add'>+			*result = rb_funcallv(mod, method_id, 1, &amp;text);</div><div class='add'>+		} else {</div><div class='add'>+			*result = DBL2NUM(rb_cstr_to_dbl(FBUFFER_PTR(json-&gt;fbuffer), 1));</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		return p + 1;</div><div class='add'>+	} else {</div><div class='add'>+		return NULL;</div><div class='ctx'> 	}</div><div class='del'>-</div><div class='del'>-#line 349 "parser.rl"</div><div class='del'>-</div><div class='del'>-    if (cs &gt;= JSON_float_first_final) {</div><div class='del'>-        long len = p - json-&gt;memo;</div><div class='del'>-        fbuffer_clear(json-&gt;fbuffer);</div><div class='del'>-        fbuffer_append(json-&gt;fbuffer, json-&gt;memo, len);</div><div class='del'>-        fbuffer_append_char(json-&gt;fbuffer, '\0');</div><div class='del'>-        if (NIL_P(json-&gt;decimal_class)) {</div><div class='del'>-          *result = rb_float_new(rb_cstr_to_dbl(FBUFFER_PTR(json-&gt;fbuffer), 1));</div><div class='del'>-        } else {</div><div class='del'>-          VALUE text;</div><div class='del'>-          text = rb_str_new2(FBUFFER_PTR(json-&gt;fbuffer));</div><div class='del'>-          if (is_bigdecimal_class(json-&gt;decimal_class)) {</div><div class='del'>-            *result = rb_funcall(Qnil, i_BigDecimal, 1, text);</div><div class='del'>-          } else {</div><div class='del'>-            *result = rb_funcall(json-&gt;decimal_class, i_new, 1, text);</div><div class='del'>-          }</div><div class='del'>-        }</div><div class='del'>-        return p + 1;</div><div class='del'>-    } else {</div><div class='del'>-        return NULL;</div><div class='del'>-    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 1150 "parser.c"</div><div class='ctx'> enum {JSON_array_start = 1};</div><div class='ctx'> enum {JSON_array_first_final = 17};</div><div class='ctx'> enum {JSON_array_error = 0};</div><div class='ctx'> </div><div class='ctx'> enum {JSON_array_en_main = 1};</div><div class='ctx'> </div><div class='add'>+static const char MAYBE_UNUSED(_JSON_array_nfa_targs)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-#line 398 "parser.rl"</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_array_nfa_offsets)[] = {</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+	0, 0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_array_nfa_push_actions)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_array_nfa_pop_trans)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#line 432 "parser.rl"</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> static char *JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *result, int current_nesting)</div><div class='ctx'> {</div><div class='del'>-    int cs = EVIL;</div><div class='del'>-    VALUE array_class = json-&gt;array_class;</div><div class='add'>+	int cs = EVIL;</div><div class='add'>+	VALUE array_class = json-&gt;array_class;</div><div class='ctx'> </div><div class='del'>-    if (json-&gt;max_nesting &amp;&amp; current_nesting &gt; json-&gt;max_nesting) {</div><div class='del'>-        rb_raise(eNestingError, "nesting of %d is too deep", current_nesting);</div><div class='del'>-    }</div><div class='del'>-    *result = NIL_P(array_class) ? rb_ary_new() : rb_class_new_instance(0, 0, array_class);</div><div class='add'>+	if (json-&gt;max_nesting &amp;&amp; current_nesting &gt; json-&gt;max_nesting) {</div><div class='add'>+		rb_raise(eNestingError, "nesting of %d is too deep", current_nesting);</div><div class='add'>+	}</div><div class='add'>+	*result = NIL_P(array_class) ? rb_ary_new() : rb_class_new_instance(0, 0, array_class);</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 1172 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	cs = JSON_array_start;</div><div class='add'>+		cs = (int)JSON_array_start;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-#line 411 "parser.rl"</div><div class='add'>+	#line 445 "parser.rl"</div><div class='add'>+</div><div class='ctx'> </div><div class='del'>-#line 1179 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	if ( p == pe )</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof;</div><div class='del'>-	switch ( cs )</div><div class='del'>-	{</div><div class='del'>-case 1:</div><div class='del'>-	if ( (*p) == 91 )</div><div class='del'>-		goto st2;</div><div class='del'>-	goto st0;</div><div class='del'>-st0:</div><div class='del'>-cs = 0;</div><div class='del'>-	goto _out;</div><div class='del'>-st2:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		switch ( cs )</div><div class='add'>+		{</div><div class='add'>+			case 1:</div><div class='add'>+			goto st_case_1;</div><div class='add'>+			case 0:</div><div class='add'>+			goto st_case_0;</div><div class='add'>+			case 2:</div><div class='add'>+			goto st_case_2;</div><div class='add'>+			case 3:</div><div class='add'>+			goto st_case_3;</div><div class='add'>+			case 4:</div><div class='add'>+			goto st_case_4;</div><div class='add'>+			case 5:</div><div class='add'>+			goto st_case_5;</div><div class='add'>+			case 6:</div><div class='add'>+			goto st_case_6;</div><div class='add'>+			case 7:</div><div class='add'>+			goto st_case_7;</div><div class='add'>+			case 8:</div><div class='add'>+			goto st_case_8;</div><div class='add'>+			case 9:</div><div class='add'>+			goto st_case_9;</div><div class='add'>+			case 10:</div><div class='add'>+			goto st_case_10;</div><div class='add'>+			case 11:</div><div class='add'>+			goto st_case_11;</div><div class='add'>+			case 12:</div><div class='add'>+			goto st_case_12;</div><div class='add'>+			case 17:</div><div class='add'>+			goto st_case_17;</div><div class='add'>+			case 13:</div><div class='add'>+			goto st_case_13;</div><div class='add'>+			case 14:</div><div class='add'>+			goto st_case_14;</div><div class='add'>+			case 15:</div><div class='add'>+			goto st_case_15;</div><div class='add'>+			case 16:</div><div class='add'>+			goto st_case_16;</div><div class='add'>+		}</div><div class='add'>+		goto st_out;</div><div class='add'>+		st_case_1:</div><div class='add'>+		if ( ( (*( p))) == 91 ) {</div><div class='add'>+			goto st2;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st_case_0:</div><div class='add'>+		st0:</div><div class='add'>+		cs = 0;</div><div class='add'>+		goto _out;</div><div class='add'>+		st2:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof2;</div><div class='del'>-case 2:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st2;</div><div class='del'>-		case 32: goto st2;</div><div class='del'>-		case 34: goto tr2;</div><div class='del'>-		case 45: goto tr2;</div><div class='del'>-		case 47: goto st13;</div><div class='del'>-		case 73: goto tr2;</div><div class='del'>-		case 78: goto tr2;</div><div class='del'>-		case 91: goto tr2;</div><div class='del'>-		case 93: goto tr4;</div><div class='del'>-		case 102: goto tr2;</div><div class='del'>-		case 110: goto tr2;</div><div class='del'>-		case 116: goto tr2;</div><div class='del'>-		case 123: goto tr2;</div><div class='del'>-	}</div><div class='del'>-	if ( (*p) &gt; 10 ) {</div><div class='del'>-		if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-			goto tr2;</div><div class='del'>-	} else if ( (*p) &gt;= 9 )</div><div class='del'>-		goto st2;</div><div class='del'>-	goto st0;</div><div class='del'>-tr2:</div><div class='del'>-#line 375 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        VALUE v = Qnil;</div><div class='del'>-        char *np = JSON_parse_value(json, p, pe, &amp;v, current_nesting);</div><div class='del'>-        if (np == NULL) {</div><div class='del'>-            p--; {p++; cs = 3; goto _out;}</div><div class='del'>-        } else {</div><div class='del'>-            if (NIL_P(json-&gt;array_class)) {</div><div class='del'>-                rb_ary_push(*result, v);</div><div class='del'>-            } else {</div><div class='del'>-                rb_funcall(*result, i_leftshift, 1, v);</div><div class='del'>-            }</div><div class='del'>-            {p = (( np))-1;}</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-	goto st3;</div><div class='del'>-st3:</div><div class='del'>-	if ( ++p == pe )</div><div class='del'>-		goto _test_eof3;</div><div class='del'>-case 3:</div><div class='del'>-#line 1238 "parser.c"</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st3;</div><div class='del'>-		case 32: goto st3;</div><div class='del'>-		case 44: goto st4;</div><div class='del'>-		case 47: goto st9;</div><div class='del'>-		case 93: goto tr4;</div><div class='del'>-	}</div><div class='del'>-	if ( 9 &lt;= (*p) &amp;&amp; (*p) &lt;= 10 )</div><div class='add'>+		st_case_2:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+			case 34: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 45: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st13;</div><div class='add'>+			}</div><div class='add'>+			case 73: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 78: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 91: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 93: {</div><div class='add'>+				goto ctr4;</div><div class='add'>+			}</div><div class='add'>+			case 102: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 110: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 116: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 123: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( ( (*( p))) &gt; 10 ) {</div><div class='add'>+			if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+		} else if ( ( (*( p))) &gt;= 9 ) {</div><div class='add'>+			goto st2;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		ctr2:</div><div class='add'>+		{</div><div class='add'>+			#line 409 "parser.rl"</div><div class='add'>+</div><div class='add'>+			VALUE v = Qnil;</div><div class='add'>+			char *np = JSON_parse_value(json, p, pe, &amp;v, current_nesting);</div><div class='add'>+			if (np == NULL) {</div><div class='add'>+				{p = p - 1; } {p+= 1; cs = 3; goto _out;}</div><div class='add'>+			} else {</div><div class='add'>+				if (NIL_P(json-&gt;array_class)) {</div><div class='add'>+					rb_ary_push(*result, v);</div><div class='add'>+				} else {</div><div class='add'>+					rb_funcall(*result, i_leftshift, 1, v);</div><div class='add'>+				}</div><div class='add'>+				{p = (( np))-1;}</div><div class='add'>+</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+</div><div class='ctx'> 		goto st3;</div><div class='del'>-	goto st0;</div><div class='del'>-st4:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st3:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='add'>+		goto _test_eof3;</div><div class='add'>+		st_case_3:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st3;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st3;</div><div class='add'>+			}</div><div class='add'>+			case 44: {</div><div class='add'>+				goto st4;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st9;</div><div class='add'>+			}</div><div class='add'>+			case 93: {</div><div class='add'>+				goto ctr4;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 9 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 10 ) {</div><div class='add'>+			goto st3;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st4:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof4;</div><div class='del'>-case 4:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st4;</div><div class='del'>-		case 32: goto st4;</div><div class='del'>-		case 34: goto tr2;</div><div class='del'>-		case 45: goto tr2;</div><div class='del'>-		case 47: goto st5;</div><div class='del'>-		case 73: goto tr2;</div><div class='del'>-		case 78: goto tr2;</div><div class='del'>-		case 91: goto tr2;</div><div class='del'>-		case 102: goto tr2;</div><div class='del'>-		case 110: goto tr2;</div><div class='del'>-		case 116: goto tr2;</div><div class='del'>-		case 123: goto tr2;</div><div class='del'>-	}</div><div class='del'>-	if ( (*p) &gt; 10 ) {</div><div class='del'>-		if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-			goto tr2;</div><div class='del'>-	} else if ( (*p) &gt;= 9 )</div><div class='del'>-		goto st4;</div><div class='del'>-	goto st0;</div><div class='del'>-st5:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_4:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st4;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st4;</div><div class='add'>+			}</div><div class='add'>+			case 34: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 45: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+			case 73: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 78: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 91: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 102: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 110: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 116: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 123: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( ( (*( p))) &gt; 10 ) {</div><div class='add'>+			if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+		} else if ( ( (*( p))) &gt;= 9 ) {</div><div class='add'>+			goto st4;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st5:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof5;</div><div class='del'>-case 5:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st6;</div><div class='del'>-		case 47: goto st8;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st6:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_5:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st6;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st8;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st6:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof6;</div><div class='del'>-case 6:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st7;</div><div class='del'>-	goto st6;</div><div class='del'>-st7:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_6:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st7;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st6;</div><div class='add'>+		}</div><div class='add'>+		st7:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof7;</div><div class='del'>-case 7:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st7;</div><div class='del'>-		case 47: goto st4;</div><div class='del'>-	}</div><div class='del'>-	goto st6;</div><div class='del'>-st8:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_7:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st7;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st4;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st6;</div><div class='add'>+		}</div><div class='add'>+		st8:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof8;</div><div class='del'>-case 8:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st4;</div><div class='del'>-	goto st8;</div><div class='del'>-st9:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_8:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st4;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st8;</div><div class='add'>+		}</div><div class='add'>+		st9:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof9;</div><div class='del'>-case 9:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st10;</div><div class='del'>-		case 47: goto st12;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st10:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_9:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st10;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st12;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st10:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof10;</div><div class='del'>-case 10:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st11;</div><div class='del'>-	goto st10;</div><div class='del'>-st11:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_10:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st11;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st10;</div><div class='add'>+		}</div><div class='add'>+		st11:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof11;</div><div class='del'>-case 11:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st11;</div><div class='del'>-		case 47: goto st3;</div><div class='del'>-	}</div><div class='del'>-	goto st10;</div><div class='del'>-st12:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_11:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st11;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st3;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st10;</div><div class='add'>+		}</div><div class='add'>+		st12:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof12;</div><div class='del'>-case 12:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st3;</div><div class='del'>-	goto st12;</div><div class='del'>-tr4:</div><div class='del'>-#line 390 "parser.rl"</div><div class='del'>-	{ p--; {p++; cs = 17; goto _out;} }</div><div class='del'>-	goto st17;</div><div class='del'>-st17:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_12:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st3;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st12;</div><div class='add'>+		}</div><div class='add'>+		ctr4:</div><div class='add'>+		{</div><div class='add'>+			#line 424 "parser.rl"</div><div class='add'>+			{p = p - 1; } {p+= 1; cs = 17; goto _out;} }</div><div class='add'>+</div><div class='add'>+		goto st17;</div><div class='add'>+		st17:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof17;</div><div class='del'>-case 17:</div><div class='del'>-#line 1345 "parser.c"</div><div class='del'>-	goto st0;</div><div class='del'>-st13:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_17:</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st13:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof13;</div><div class='del'>-case 13:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st14;</div><div class='del'>-		case 47: goto st16;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st14:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_13:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st14;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st16;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st14:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof14;</div><div class='del'>-case 14:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st15;</div><div class='del'>-	goto st14;</div><div class='del'>-st15:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_14:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st15;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st14;</div><div class='add'>+		}</div><div class='add'>+		st15:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof15;</div><div class='del'>-case 15:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st15;</div><div class='del'>-		case 47: goto st2;</div><div class='del'>-	}</div><div class='del'>-	goto st14;</div><div class='del'>-st16:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_15:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st15;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st14;</div><div class='add'>+		}</div><div class='add'>+		st16:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof16;</div><div class='del'>-case 16:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st2;</div><div class='del'>-	goto st16;</div><div class='del'>-	}</div><div class='del'>-	_test_eof2: cs = 2; goto _test_eof;</div><div class='del'>-	_test_eof3: cs = 3; goto _test_eof;</div><div class='del'>-	_test_eof4: cs = 4; goto _test_eof;</div><div class='del'>-	_test_eof5: cs = 5; goto _test_eof;</div><div class='del'>-	_test_eof6: cs = 6; goto _test_eof;</div><div class='del'>-	_test_eof7: cs = 7; goto _test_eof;</div><div class='del'>-	_test_eof8: cs = 8; goto _test_eof;</div><div class='del'>-	_test_eof9: cs = 9; goto _test_eof;</div><div class='del'>-	_test_eof10: cs = 10; goto _test_eof;</div><div class='del'>-	_test_eof11: cs = 11; goto _test_eof;</div><div class='del'>-	_test_eof12: cs = 12; goto _test_eof;</div><div class='del'>-	_test_eof17: cs = 17; goto _test_eof;</div><div class='del'>-	_test_eof13: cs = 13; goto _test_eof;</div><div class='del'>-	_test_eof14: cs = 14; goto _test_eof;</div><div class='del'>-	_test_eof15: cs = 15; goto _test_eof;</div><div class='del'>-	_test_eof16: cs = 16; goto _test_eof;</div><div class='del'>-</div><div class='del'>-	_test_eof: {}</div><div class='del'>-	_out: {}</div><div class='add'>+		st_case_16:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st2;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st16;</div><div class='add'>+		}</div><div class='add'>+		st_out:</div><div class='add'>+		_test_eof2: cs = 2; goto _test_eof;</div><div class='add'>+		_test_eof3: cs = 3; goto _test_eof;</div><div class='add'>+		_test_eof4: cs = 4; goto _test_eof;</div><div class='add'>+		_test_eof5: cs = 5; goto _test_eof;</div><div class='add'>+		_test_eof6: cs = 6; goto _test_eof;</div><div class='add'>+		_test_eof7: cs = 7; goto _test_eof;</div><div class='add'>+		_test_eof8: cs = 8; goto _test_eof;</div><div class='add'>+		_test_eof9: cs = 9; goto _test_eof;</div><div class='add'>+		_test_eof10: cs = 10; goto _test_eof;</div><div class='add'>+		_test_eof11: cs = 11; goto _test_eof;</div><div class='add'>+		_test_eof12: cs = 12; goto _test_eof;</div><div class='add'>+		_test_eof17: cs = 17; goto _test_eof;</div><div class='add'>+		_test_eof13: cs = 13; goto _test_eof;</div><div class='add'>+		_test_eof14: cs = 14; goto _test_eof;</div><div class='add'>+		_test_eof15: cs = 15; goto _test_eof;</div><div class='add'>+		_test_eof16: cs = 16; goto _test_eof;</div><div class='add'>+</div><div class='add'>+		_test_eof: {}</div><div class='add'>+		_out: {}</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	#line 446 "parser.rl"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+	if(cs &gt;= JSON_array_first_final) {</div><div class='add'>+		return p + 1;</div><div class='add'>+	} else {</div><div class='add'>+		rb_enc_raise(EXC_ENCODING eParserError, "unexpected token at '%s'", p);</div><div class='add'>+		return NULL;</div><div class='ctx'> 	}</div><div class='del'>-</div><div class='del'>-#line 412 "parser.rl"</div><div class='del'>-</div><div class='del'>-    if(cs &gt;= JSON_array_first_final) {</div><div class='del'>-        return p + 1;</div><div class='del'>-    } else {</div><div class='del'>-        rb_enc_raise(EXC_ENCODING eParserError, "%u: unexpected token at '%s'", __LINE__, p);</div><div class='del'>-        return NULL;</div><div class='del'>-    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd)</div><div class='add'>+static const size_t MAX_STACK_BUFFER_SIZE = 128;</div><div class='add'>+static VALUE json_string_unescape(char *string, char *stringEnd, int intern, int symbolize)</div><div class='ctx'> {</div><div class='del'>-    char *p = string, *pe = string, *unescape;</div><div class='del'>-    int unescape_len;</div><div class='del'>-    char buf[4];</div><div class='del'>-</div><div class='del'>-    while (pe &lt; stringEnd) {</div><div class='del'>-        if (*pe == '\\') {</div><div class='del'>-            unescape = (char *) "?";</div><div class='del'>-            unescape_len = 1;</div><div class='del'>-            if (pe &gt; p) rb_str_buf_cat(result, p, pe - p);</div><div class='del'>-            switch (*++pe) {</div><div class='del'>-                case 'n':</div><div class='del'>-                    unescape = (char *) "\n";</div><div class='del'>-                    break;</div><div class='del'>-                case 'r':</div><div class='del'>-                    unescape = (char *) "\r";</div><div class='del'>-                    break;</div><div class='del'>-                case 't':</div><div class='del'>-                    unescape = (char *) "\t";</div><div class='del'>-                    break;</div><div class='del'>-                case '"':</div><div class='del'>-                    unescape = (char *) "\"";</div><div class='del'>-                    break;</div><div class='del'>-                case '\\':</div><div class='del'>-                    unescape = (char *) "\\";</div><div class='del'>-                    break;</div><div class='del'>-                case 'b':</div><div class='del'>-                    unescape = (char *) "\b";</div><div class='del'>-                    break;</div><div class='del'>-                case 'f':</div><div class='del'>-                    unescape = (char *) "\f";</div><div class='del'>-                    break;</div><div class='del'>-                case 'u':</div><div class='del'>-                    if (pe &gt; stringEnd - 4) {</div><div class='del'>-                      rb_enc_raise(</div><div class='del'>-                        EXC_ENCODING eParserError,</div><div class='del'>-                        "%u: incomplete unicode character escape sequence at '%s'", __LINE__, p</div><div class='del'>-                      );</div><div class='del'>-                    } else {</div><div class='del'>-                        UTF32 ch = unescape_unicode((unsigned char *) ++pe);</div><div class='del'>-                        pe += 3;</div><div class='del'>-                        if (UNI_SUR_HIGH_START == (ch &amp; 0xFC00)) {</div><div class='del'>-                            pe++;</div><div class='del'>-                            if (pe &gt; stringEnd - 6) {</div><div class='del'>-                              rb_enc_raise(</div><div class='del'>-                                EXC_ENCODING eParserError,</div><div class='del'>-                                "%u: incomplete surrogate pair at '%s'", __LINE__, p</div><div class='del'>-                                );</div><div class='del'>-                            }</div><div class='del'>-                            if (pe[0] == '\\' &amp;&amp; pe[1] == 'u') {</div><div class='del'>-                                UTF32 sur = unescape_unicode((unsigned char *) pe + 2);</div><div class='del'>-                                ch = (((ch &amp; 0x3F) &lt;&lt; 10) | ((((ch &gt;&gt; 6) &amp; 0xF) + 1) &lt;&lt; 16)</div><div class='del'>-                                        | (sur &amp; 0x3FF));</div><div class='del'>-                                pe += 5;</div><div class='del'>-                            } else {</div><div class='del'>-                                unescape = (char *) "?";</div><div class='del'>-                                break;</div><div class='del'>-                            }</div><div class='del'>-                        }</div><div class='del'>-                        unescape_len = convert_UTF32_to_UTF8(buf, ch);</div><div class='del'>-                        unescape = buf;</div><div class='del'>-                    }</div><div class='del'>-                    break;</div><div class='del'>-                default:</div><div class='del'>-                    p = pe;</div><div class='del'>-                    continue;</div><div class='del'>-            }</div><div class='del'>-            rb_str_buf_cat(result, unescape, unescape_len);</div><div class='del'>-            p = ++pe;</div><div class='del'>-        } else {</div><div class='del'>-            pe++;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    rb_str_buf_cat(result, p, pe - p);</div><div class='del'>-    return result;</div><div class='add'>+	VALUE result = Qnil;</div><div class='add'>+	size_t bufferSize = stringEnd - string;</div><div class='add'>+	char *p = string, *pe = string, *unescape, *bufferStart, *buffer;</div><div class='add'>+	int unescape_len;</div><div class='add'>+	char buf[4];</div><div class='add'>+</div><div class='add'>+	if (bufferSize &gt; MAX_STACK_BUFFER_SIZE) {</div><div class='add'>+# ifdef HAVE_RB_ENC_INTERNED_STR</div><div class='add'>+		bufferStart = buffer = ALLOC_N(char, bufferSize ? bufferSize : 1);</div><div class='add'>+# else</div><div class='add'>+		bufferStart = buffer = ALLOC_N(char, bufferSize);</div><div class='add'>+# endif</div><div class='add'>+	} else {</div><div class='add'>+# ifdef HAVE_RB_ENC_INTERNED_STR</div><div class='add'>+		bufferStart = buffer = ALLOCA_N(char, bufferSize ? bufferSize : 1);</div><div class='add'>+# else</div><div class='add'>+		bufferStart = buffer = ALLOCA_N(char, bufferSize);</div><div class='add'>+# endif</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	while (pe &lt; stringEnd) {</div><div class='add'>+		if (*pe == '\\') {</div><div class='add'>+			unescape = (char *) "?";</div><div class='add'>+			unescape_len = 1;</div><div class='add'>+			if (pe &gt; p) {</div><div class='add'>+				MEMCPY(buffer, p, char, pe - p);</div><div class='add'>+				buffer += pe - p;</div><div class='add'>+			}</div><div class='add'>+			switch (*++pe) {</div><div class='add'>+				case 'n':</div><div class='add'>+				unescape = (char *) "\n";</div><div class='add'>+				break;</div><div class='add'>+				case 'r':</div><div class='add'>+				unescape = (char *) "\r";</div><div class='add'>+				break;</div><div class='add'>+				case 't':</div><div class='add'>+				unescape = (char *) "\t";</div><div class='add'>+				break;</div><div class='add'>+				case '"':</div><div class='add'>+				unescape = (char *) "\"";</div><div class='add'>+				break;</div><div class='add'>+				case '\\':</div><div class='add'>+				unescape = (char *) "\\";</div><div class='add'>+				break;</div><div class='add'>+				case 'b':</div><div class='add'>+				unescape = (char *) "\b";</div><div class='add'>+				break;</div><div class='add'>+				case 'f':</div><div class='add'>+				unescape = (char *) "\f";</div><div class='add'>+				break;</div><div class='add'>+				case 'u':</div><div class='add'>+				if (pe &gt; stringEnd - 4) {</div><div class='add'>+					if (bufferSize &gt; MAX_STACK_BUFFER_SIZE) {</div><div class='add'>+						free(bufferStart);</div><div class='add'>+					}</div><div class='add'>+					rb_enc_raise(</div><div class='add'>+					EXC_ENCODING eParserError,</div><div class='add'>+					"incomplete unicode character escape sequence at '%s'", p</div><div class='add'>+					);</div><div class='add'>+				} else {</div><div class='add'>+					UTF32 ch = unescape_unicode((unsigned char *) ++pe);</div><div class='add'>+					pe += 3;</div><div class='add'>+					if (UNI_SUR_HIGH_START == (ch &amp; 0xFC00)) {</div><div class='add'>+						pe++;</div><div class='add'>+						if (pe &gt; stringEnd - 6) {</div><div class='add'>+							if (bufferSize &gt; MAX_STACK_BUFFER_SIZE) {</div><div class='add'>+								free(bufferStart);</div><div class='add'>+							}</div><div class='add'>+							rb_enc_raise(</div><div class='add'>+							EXC_ENCODING eParserError,</div><div class='add'>+							"incomplete surrogate pair at '%s'", p</div><div class='add'>+							);</div><div class='add'>+						}</div><div class='add'>+						if (pe[0] == '\\' &amp;&amp; pe[1] == 'u') {</div><div class='add'>+							UTF32 sur = unescape_unicode((unsigned char *) pe + 2);</div><div class='add'>+							ch = (((ch &amp; 0x3F) &lt;&lt; 10) | ((((ch &gt;&gt; 6) &amp; 0xF) + 1) &lt;&lt; 16)</div><div class='add'>+							| (sur &amp; 0x3FF));</div><div class='add'>+							pe += 5;</div><div class='add'>+						} else {</div><div class='add'>+							unescape = (char *) "?";</div><div class='add'>+							break;</div><div class='add'>+						}</div><div class='add'>+					}</div><div class='add'>+					unescape_len = convert_UTF32_to_UTF8(buf, ch);</div><div class='add'>+					unescape = buf;</div><div class='add'>+				}</div><div class='add'>+				break;</div><div class='add'>+				default:</div><div class='add'>+				p = pe;</div><div class='add'>+				continue;</div><div class='add'>+			}</div><div class='add'>+			MEMCPY(buffer, unescape, char, unescape_len);</div><div class='add'>+			buffer += unescape_len;</div><div class='add'>+			p = ++pe;</div><div class='add'>+		} else {</div><div class='add'>+			pe++;</div><div class='add'>+		}</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (pe &gt; p) {</div><div class='add'>+		MEMCPY(buffer, p, char, pe - p);</div><div class='add'>+		buffer += pe - p;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	# ifdef HAVE_RB_ENC_INTERNED_STR</div><div class='add'>+	if (intern) {</div><div class='add'>+		result = rb_enc_interned_str(bufferStart, (long)(buffer - bufferStart), rb_utf8_encoding());</div><div class='add'>+	} else {</div><div class='add'>+		result = rb_utf8_str_new(bufferStart, (long)(buffer - bufferStart));</div><div class='add'>+	}</div><div class='add'>+	if (bufferSize &gt; MAX_STACK_BUFFER_SIZE) {</div><div class='add'>+		free(bufferStart);</div><div class='add'>+	}</div><div class='add'>+	# else</div><div class='add'>+	result = rb_utf8_str_new(bufferStart, (long)(buffer - bufferStart));</div><div class='add'>+</div><div class='add'>+	if (bufferSize &gt; MAX_STACK_BUFFER_SIZE) {</div><div class='add'>+		free(bufferStart);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (intern) {</div><div class='add'>+		# if STR_UMINUS_DEDUPE_FROZEN</div><div class='add'>+		// Starting from MRI 2.8 it is preferable to freeze the string</div><div class='add'>+		// before deduplication so that it can be interned directly</div><div class='add'>+		// otherwise it would be duplicated first which is wasteful.</div><div class='add'>+		result = rb_funcall(rb_str_freeze(result), i_uminus, 0);</div><div class='add'>+		# elif STR_UMINUS_DEDUPE</div><div class='add'>+		// MRI 2.5 and older do not deduplicate strings that are already</div><div class='add'>+		// frozen.</div><div class='add'>+		result = rb_funcall(result, i_uminus, 0);</div><div class='add'>+		# else</div><div class='add'>+		result = rb_str_freeze(result);</div><div class='add'>+		# endif</div><div class='add'>+	}</div><div class='add'>+	# endif</div><div class='add'>+</div><div class='add'>+	if (symbolize) {</div><div class='add'>+		result = rb_str_intern(result);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 1490 "parser.c"</div><div class='ctx'> enum {JSON_string_start = 1};</div><div class='ctx'> enum {JSON_string_first_final = 8};</div><div class='ctx'> enum {JSON_string_error = 0};</div><div class='ctx'> </div><div class='ctx'> enum {JSON_string_en_main = 1};</div><div class='ctx'> </div><div class='add'>+static const char MAYBE_UNUSED(_JSON_string_nfa_targs)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_string_nfa_offsets)[] = {</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_string_nfa_push_actions)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_string_nfa_pop_trans)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-#line 519 "parser.rl"</div><div class='add'>+</div><div class='add'>+#line 612 "parser.rl"</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> match_i(VALUE regexp, VALUE klass, VALUE memo)</div><div class='ctx'> {</div><div class='del'>-    if (regexp == Qundef) return ST_STOP;</div><div class='del'>-    if (RTEST(rb_funcall(klass, i_json_creatable_p, 0)) &amp;&amp;</div><div class='del'>-      RTEST(rb_funcall(regexp, i_match, 1, rb_ary_entry(memo, 0)))) {</div><div class='del'>-        rb_ary_push(memo, klass);</div><div class='del'>-        return ST_STOP;</div><div class='del'>-    }</div><div class='del'>-    return ST_CONTINUE;</div><div class='add'>+	if (regexp == Qundef) return ST_STOP;</div><div class='add'>+	if (RTEST(rb_funcall(klass, i_json_creatable_p, 0)) &amp;&amp;</div><div class='add'>+	RTEST(rb_funcall(regexp, i_match, 1, rb_ary_entry(memo, 0)))) {</div><div class='add'>+		rb_ary_push(memo, klass);</div><div class='add'>+		return ST_STOP;</div><div class='add'>+	}</div><div class='add'>+	return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *result)</div><div class='ctx'> {</div><div class='del'>-    int cs = EVIL;</div><div class='del'>-    VALUE match_string;</div><div class='add'>+	int cs = EVIL;</div><div class='add'>+	VALUE match_string;</div><div class='ctx'> </div><div class='del'>-    *result = rb_str_buf_new(0);</div><div class='ctx'> </div><div class='del'>-#line 1520 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	cs = JSON_string_start;</div><div class='add'>+		cs = (int)JSON_string_start;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-#line 540 "parser.rl"</div><div class='del'>-    json-&gt;memo = p;</div><div class='add'>+	#line 632 "parser.rl"</div><div class='add'>+</div><div class='add'>+	json-&gt;memo = p;</div><div class='ctx'> </div><div class='del'>-#line 1528 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	if ( p == pe )</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof;</div><div class='del'>-	switch ( cs )</div><div class='del'>-	{</div><div class='del'>-case 1:</div><div class='del'>-	if ( (*p) == 34 )</div><div class='del'>-		goto st2;</div><div class='del'>-	goto st0;</div><div class='del'>-st0:</div><div class='del'>-cs = 0;</div><div class='del'>-	goto _out;</div><div class='del'>-st2:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		switch ( cs )</div><div class='add'>+		{</div><div class='add'>+			case 1:</div><div class='add'>+			goto st_case_1;</div><div class='add'>+			case 0:</div><div class='add'>+			goto st_case_0;</div><div class='add'>+			case 2:</div><div class='add'>+			goto st_case_2;</div><div class='add'>+			case 8:</div><div class='add'>+			goto st_case_8;</div><div class='add'>+			case 3:</div><div class='add'>+			goto st_case_3;</div><div class='add'>+			case 4:</div><div class='add'>+			goto st_case_4;</div><div class='add'>+			case 5:</div><div class='add'>+			goto st_case_5;</div><div class='add'>+			case 6:</div><div class='add'>+			goto st_case_6;</div><div class='add'>+			case 7:</div><div class='add'>+			goto st_case_7;</div><div class='add'>+		}</div><div class='add'>+		goto st_out;</div><div class='add'>+		st_case_1:</div><div class='add'>+		if ( ( (*( p))) == 34 ) {</div><div class='add'>+			goto st2;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st_case_0:</div><div class='add'>+		st0:</div><div class='add'>+		cs = 0;</div><div class='add'>+		goto _out;</div><div class='add'>+		st2:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof2;</div><div class='del'>-case 2:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 34: goto tr2;</div><div class='del'>-		case 92: goto st3;</div><div class='del'>-	}</div><div class='del'>-	if ( 0 &lt;= (*p) &amp;&amp; (*p) &lt;= 31 )</div><div class='del'>-		goto st0;</div><div class='del'>-	goto st2;</div><div class='del'>-tr2:</div><div class='del'>-#line 505 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        *result = json_string_unescape(*result, json-&gt;memo + 1, p);</div><div class='del'>-        if (NIL_P(*result)) {</div><div class='del'>-            p--;</div><div class='del'>-            {p++; cs = 8; goto _out;}</div><div class='del'>-        } else {</div><div class='del'>-            FORCE_UTF8(*result);</div><div class='del'>-            {p = (( p + 1))-1;}</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-#line 516 "parser.rl"</div><div class='del'>-	{ p--; {p++; cs = 8; goto _out;} }</div><div class='del'>-	goto st8;</div><div class='del'>-st8:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_2:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 34: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 92: {</div><div class='add'>+				goto st3;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 0 &lt;= (signed char)(*(p)) &amp;&amp; (*(p)) &lt;= 31 ) {</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st2;</div><div class='add'>+		}</div><div class='add'>+		ctr2:</div><div class='add'>+		{</div><div class='add'>+			#line 599 "parser.rl"</div><div class='add'>+</div><div class='add'>+			*result = json_string_unescape(json-&gt;memo + 1, p, json-&gt;parsing_name || json-&gt; freeze, json-&gt;parsing_name &amp;&amp; json-&gt;symbolize_names);</div><div class='add'>+			if (NIL_P(*result)) {</div><div class='add'>+				{p = p - 1; }</div><div class='add'>+				{p+= 1; cs = 8; goto _out;}</div><div class='add'>+			} else {</div><div class='add'>+				{p = (( p + 1))-1;}</div><div class='add'>+</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			#line 609 "parser.rl"</div><div class='add'>+			{p = p - 1; } {p+= 1; cs = 8; goto _out;} }</div><div class='add'>+</div><div class='add'>+		goto st8;</div><div class='add'>+		st8:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof8;</div><div class='del'>-case 8:</div><div class='del'>-#line 1571 "parser.c"</div><div class='del'>-	goto st0;</div><div class='del'>-st3:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_8:</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st3:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof3;</div><div class='del'>-case 3:</div><div class='del'>-	if ( (*p) == 117 )</div><div class='del'>-		goto st4;</div><div class='del'>-	if ( 0 &lt;= (*p) &amp;&amp; (*p) &lt;= 31 )</div><div class='del'>-		goto st0;</div><div class='del'>-	goto st2;</div><div class='del'>-st4:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_3:</div><div class='add'>+		if ( ( (*( p))) == 117 ) {</div><div class='add'>+			goto st4;</div><div class='add'>+		}</div><div class='add'>+		if ( 0 &lt;= (signed char)(*(p)) &amp;&amp; (*(p)) &lt;= 31 ) {</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st2;</div><div class='add'>+		}</div><div class='add'>+		st4:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof4;</div><div class='del'>-case 4:</div><div class='del'>-	if ( (*p) &lt; 65 ) {</div><div class='del'>-		if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-			goto st5;</div><div class='del'>-	} else if ( (*p) &gt; 70 ) {</div><div class='del'>-		if ( 97 &lt;= (*p) &amp;&amp; (*p) &lt;= 102 )</div><div class='add'>+		st_case_4:</div><div class='add'>+		if ( ( (*( p))) &lt; 65 ) {</div><div class='add'>+			if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+		} else if ( ( (*( p))) &gt; 70 ) {</div><div class='add'>+			if ( 97 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 102 ) {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+		} else {</div><div class='ctx'> 			goto st5;</div><div class='del'>-	} else</div><div class='del'>-		goto st5;</div><div class='del'>-	goto st0;</div><div class='del'>-st5:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st5:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof5;</div><div class='del'>-case 5:</div><div class='del'>-	if ( (*p) &lt; 65 ) {</div><div class='del'>-		if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='add'>+		st_case_5:</div><div class='add'>+		if ( ( (*( p))) &lt; 65 ) {</div><div class='add'>+			if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+				goto st6;</div><div class='add'>+			}</div><div class='add'>+		} else if ( ( (*( p))) &gt; 70 ) {</div><div class='add'>+			if ( 97 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 102 ) {</div><div class='add'>+				goto st6;</div><div class='add'>+			}</div><div class='add'>+		} else {</div><div class='ctx'> 			goto st6;</div><div class='del'>-	} else if ( (*p) &gt; 70 ) {</div><div class='del'>-		if ( 97 &lt;= (*p) &amp;&amp; (*p) &lt;= 102 )</div><div class='del'>-			goto st6;</div><div class='del'>-	} else</div><div class='del'>-		goto st6;</div><div class='del'>-	goto st0;</div><div class='del'>-st6:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st6:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof6;</div><div class='del'>-case 6:</div><div class='del'>-	if ( (*p) &lt; 65 ) {</div><div class='del'>-		if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-			goto st7;</div><div class='del'>-	} else if ( (*p) &gt; 70 ) {</div><div class='del'>-		if ( 97 &lt;= (*p) &amp;&amp; (*p) &lt;= 102 )</div><div class='add'>+		st_case_6:</div><div class='add'>+		if ( ( (*( p))) &lt; 65 ) {</div><div class='add'>+			if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+				goto st7;</div><div class='add'>+			}</div><div class='add'>+		} else if ( ( (*( p))) &gt; 70 ) {</div><div class='add'>+			if ( 97 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 102 ) {</div><div class='add'>+				goto st7;</div><div class='add'>+			}</div><div class='add'>+		} else {</div><div class='ctx'> 			goto st7;</div><div class='del'>-	} else</div><div class='del'>-		goto st7;</div><div class='del'>-	goto st0;</div><div class='del'>-st7:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st7:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof7;</div><div class='del'>-case 7:</div><div class='del'>-	if ( (*p) &lt; 65 ) {</div><div class='del'>-		if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='add'>+		st_case_7:</div><div class='add'>+		if ( ( (*( p))) &lt; 65 ) {</div><div class='add'>+			if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+		} else if ( ( (*( p))) &gt; 70 ) {</div><div class='add'>+			if ( 97 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 102 ) {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+		} else {</div><div class='ctx'> 			goto st2;</div><div class='del'>-	} else if ( (*p) &gt; 70 ) {</div><div class='del'>-		if ( 97 &lt;= (*p) &amp;&amp; (*p) &lt;= 102 )</div><div class='del'>-			goto st2;</div><div class='del'>-	} else</div><div class='del'>-		goto st2;</div><div class='del'>-	goto st0;</div><div class='del'>-	}</div><div class='del'>-	_test_eof2: cs = 2; goto _test_eof;</div><div class='del'>-	_test_eof8: cs = 8; goto _test_eof;</div><div class='del'>-	_test_eof3: cs = 3; goto _test_eof;</div><div class='del'>-	_test_eof4: cs = 4; goto _test_eof;</div><div class='del'>-	_test_eof5: cs = 5; goto _test_eof;</div><div class='del'>-	_test_eof6: cs = 6; goto _test_eof;</div><div class='del'>-	_test_eof7: cs = 7; goto _test_eof;</div><div class='del'>-</div><div class='del'>-	_test_eof: {}</div><div class='del'>-	_out: {}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st_out:</div><div class='add'>+		_test_eof2: cs = 2; goto _test_eof;</div><div class='add'>+		_test_eof8: cs = 8; goto _test_eof;</div><div class='add'>+		_test_eof3: cs = 3; goto _test_eof;</div><div class='add'>+		_test_eof4: cs = 4; goto _test_eof;</div><div class='add'>+		_test_eof5: cs = 5; goto _test_eof;</div><div class='add'>+		_test_eof6: cs = 6; goto _test_eof;</div><div class='add'>+		_test_eof7: cs = 7; goto _test_eof;</div><div class='add'>+</div><div class='add'>+		_test_eof: {}</div><div class='add'>+		_out: {}</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	#line 634 "parser.rl"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+	if (json-&gt;create_additions &amp;&amp; RTEST(match_string = json-&gt;match_string)) {</div><div class='add'>+		VALUE klass;</div><div class='add'>+		VALUE memo = rb_ary_new2(2);</div><div class='add'>+		rb_ary_push(memo, *result);</div><div class='add'>+		rb_hash_foreach(match_string, match_i, memo);</div><div class='add'>+		klass = rb_ary_entry(memo, 1);</div><div class='add'>+		if (RTEST(klass)) {</div><div class='add'>+			*result = rb_funcall(klass, i_json_create, 1, *result);</div><div class='add'>+		}</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (cs &gt;= JSON_string_first_final) {</div><div class='add'>+		return p + 1;</div><div class='add'>+	} else {</div><div class='add'>+		return NULL;</div><div class='ctx'> 	}</div><div class='del'>-</div><div class='del'>-#line 542 "parser.rl"</div><div class='del'>-</div><div class='del'>-    if (json-&gt;create_additions &amp;&amp; RTEST(match_string = json-&gt;match_string)) {</div><div class='del'>-          VALUE klass;</div><div class='del'>-          VALUE memo = rb_ary_new2(2);</div><div class='del'>-          rb_ary_push(memo, *result);</div><div class='del'>-          rb_hash_foreach(match_string, match_i, memo);</div><div class='del'>-          klass = rb_ary_entry(memo, 1);</div><div class='del'>-          if (RTEST(klass)) {</div><div class='del'>-              *result = rb_funcall(klass, i_json_create, 1, *result);</div><div class='del'>-          }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (json-&gt;symbolize_names &amp;&amp; json-&gt;parsing_name) {</div><div class='del'>-      *result = rb_str_intern(*result);</div><div class='del'>-    } else {</div><div class='del'>-          if (RB_TYPE_P(*result, T_STRING)) {</div><div class='del'>-              rb_str_resize(*result, RSTRING_LEN(*result));</div><div class='del'>-          }</div><div class='del'>-    }</div><div class='del'>-    if (cs &gt;= JSON_string_first_final) {</div><div class='del'>-        return p + 1;</div><div class='del'>-    } else {</div><div class='del'>-        return NULL;</div><div class='del'>-    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Document-class: JSON::Ext::Parser</div><div class='del'>- *</div><div class='del'>- * This is the JSON parser implemented as a C extension. It can be configured</div><div class='del'>- * to be used by setting</div><div class='del'>- *</div><div class='del'>- *  JSON.parser = JSON::Ext::Parser</div><div class='del'>- *</div><div class='del'>- * with the method parser= in JSON.</div><div class='del'>- *</div><div class='del'>- */</div><div class='add'>+* Document-class: JSON::Ext::Parser</div><div class='add'>+*</div><div class='add'>+* This is the JSON parser implemented as a C extension. It can be configured</div><div class='add'>+* to be used by setting</div><div class='add'>+*</div><div class='add'>+*  JSON.parser = JSON::Ext::Parser</div><div class='add'>+*</div><div class='add'>+* with the method parser= in JSON.</div><div class='add'>+*</div><div class='add'>+*/</div><div class='ctx'> </div><div class='ctx'> static VALUE convert_encoding(VALUE source)</div><div class='ctx'> {</div><div class='del'>-#ifdef HAVE_RUBY_ENCODING_H</div><div class='del'>-  rb_encoding *enc = rb_enc_get(source);</div><div class='del'>-  if (enc == rb_ascii8bit_encoding()) {</div><div class='del'>-    if (OBJ_FROZEN(source)) {</div><div class='del'>-      source = rb_str_dup(source);</div><div class='del'>-    }</div><div class='del'>-    FORCE_UTF8(source);</div><div class='del'>-  } else {</div><div class='del'>-    source = rb_str_conv_enc(source, rb_enc_get(source), rb_utf8_encoding());</div><div class='del'>-  }</div><div class='del'>-#endif</div><div class='del'>-    return source;</div><div class='add'>+	#ifdef HAVE_RUBY_ENCODING_H</div><div class='add'>+	rb_encoding *enc = rb_enc_get(source);</div><div class='add'>+	if (enc == rb_ascii8bit_encoding()) {</div><div class='add'>+		if (OBJ_FROZEN(source)) {</div><div class='add'>+			source = rb_str_dup(source);</div><div class='add'>+		}</div><div class='add'>+		FORCE_UTF8(source);</div><div class='add'>+	} else {</div><div class='add'>+		source = rb_str_conv_enc(source, rb_enc_get(source), rb_utf8_encoding());</div><div class='add'>+	}</div><div class='add'>+	#endif</div><div class='add'>+	return source;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq: new(source, opts =&gt; {})</div><div class='del'>- *</div><div class='del'>- * Creates a new JSON::Ext::Parser instance for the string _source_.</div><div class='del'>- *</div><div class='del'>- * Creates a new JSON::Ext::Parser instance for the string _source_.</div><div class='del'>- *</div><div class='del'>- * It will be configured by the _opts_ hash. _opts_ can have the following</div><div class='del'>- * keys:</div><div class='del'>- *</div><div class='del'>- * _opts_ can have the following keys:</div><div class='del'>- * * *max_nesting*: The maximum depth of nesting allowed in the parsed data</div><div class='del'>- *   structures. Disable depth checking with :max_nesting =&gt; false|nil|0, it</div><div class='del'>- *   defaults to 100.</div><div class='del'>- * * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in</div><div class='del'>- *   defiance of RFC 4627 to be parsed by the Parser. This option defaults to</div><div class='del'>- *   false.</div><div class='del'>- * * *symbolize_names*: If set to true, returns symbols for the names</div><div class='del'>- *   (keys) in a JSON object. Otherwise strings are returned, which is</div><div class='del'>- *   also the default. It's not possible to use this option in</div><div class='del'>- *   conjunction with the *create_additions* option.</div><div class='del'>- * * *create_additions*: If set to false, the Parser doesn't create</div><div class='del'>- *   additions even if a matching class and create_id was found. This option</div><div class='del'>- *   defaults to false.</div><div class='del'>- * * *object_class*: Defaults to Hash</div><div class='del'>- * * *array_class*: Defaults to Array</div><div class='del'>- */</div><div class='add'>+* call-seq: new(source, opts =&gt; {})</div><div class='add'>+*</div><div class='add'>+* Creates a new JSON::Ext::Parser instance for the string _source_.</div><div class='add'>+*</div><div class='add'>+* Creates a new JSON::Ext::Parser instance for the string _source_.</div><div class='add'>+*</div><div class='add'>+* It will be configured by the _opts_ hash. _opts_ can have the following</div><div class='add'>+* keys:</div><div class='add'>+*</div><div class='add'>+* _opts_ can have the following keys:</div><div class='add'>+* * *max_nesting*: The maximum depth of nesting allowed in the parsed data</div><div class='add'>+*   structures. Disable depth checking with :max_nesting =&gt; false|nil|0, it</div><div class='add'>+*   defaults to 100.</div><div class='add'>+* * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in</div><div class='add'>+*   defiance of RFC 4627 to be parsed by the Parser. This option defaults to</div><div class='add'>+*   false.</div><div class='add'>+* * *symbolize_names*: If set to true, returns symbols for the names</div><div class='add'>+*   (keys) in a JSON object. Otherwise strings are returned, which is</div><div class='add'>+*   also the default. It's not possible to use this option in</div><div class='add'>+*   conjunction with the *create_additions* option.</div><div class='add'>+* * *create_additions*: If set to false, the Parser doesn't create</div><div class='add'>+*   additions even if a matching class and create_id was found. This option</div><div class='add'>+*   defaults to false.</div><div class='add'>+* * *object_class*: Defaults to Hash</div><div class='add'>+* * *array_class*: Defaults to Array</div><div class='add'>+*/</div><div class='ctx'> static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    VALUE source, opts;</div><div class='del'>-    GET_PARSER_INIT;</div><div class='del'>-</div><div class='del'>-    if (json-&gt;Vsource) {</div><div class='del'>-        rb_raise(rb_eTypeError, "already initialized instance");</div><div class='del'>-    }</div><div class='del'>-#ifdef HAVE_RB_SCAN_ARGS_OPTIONAL_HASH</div><div class='del'>-    rb_scan_args(argc, argv, "1:", &amp;source, &amp;opts);</div><div class='del'>-#else</div><div class='del'>-    rb_scan_args(argc, argv, "11", &amp;source, &amp;opts);</div><div class='del'>-#endif</div><div class='del'>-    if (!NIL_P(opts)) {</div><div class='del'>-#ifndef HAVE_RB_SCAN_ARGS_OPTIONAL_HASH</div><div class='del'>-        opts = rb_convert_type(opts, T_HASH, "Hash", "to_hash");</div><div class='del'>-        if (NIL_P(opts)) {</div><div class='del'>-            rb_raise(rb_eArgError, "opts needs to be like a hash");</div><div class='del'>-        } else {</div><div class='del'>-#endif</div><div class='del'>-            VALUE tmp = ID2SYM(i_max_nesting);</div><div class='del'>-            if (option_given_p(opts, tmp)) {</div><div class='del'>-                VALUE max_nesting = rb_hash_aref(opts, tmp);</div><div class='del'>-                if (RTEST(max_nesting)) {</div><div class='del'>-                    Check_Type(max_nesting, T_FIXNUM);</div><div class='del'>-                    json-&gt;max_nesting = FIX2INT(max_nesting);</div><div class='del'>-                } else {</div><div class='del'>-                    json-&gt;max_nesting = 0;</div><div class='del'>-                }</div><div class='del'>-            } else {</div><div class='del'>-                json-&gt;max_nesting = 100;</div><div class='del'>-            }</div><div class='del'>-            tmp = ID2SYM(i_allow_nan);</div><div class='del'>-            if (option_given_p(opts, tmp)) {</div><div class='del'>-                json-&gt;allow_nan = RTEST(rb_hash_aref(opts, tmp)) ? 1 : 0;</div><div class='del'>-            } else {</div><div class='del'>-                json-&gt;allow_nan = 0;</div><div class='del'>-            }</div><div class='del'>-            tmp = ID2SYM(i_symbolize_names);</div><div class='del'>-            if (option_given_p(opts, tmp)) {</div><div class='del'>-                json-&gt;symbolize_names = RTEST(rb_hash_aref(opts, tmp)) ? 1 : 0;</div><div class='del'>-            } else {</div><div class='del'>-                json-&gt;symbolize_names = 0;</div><div class='del'>-            }</div><div class='del'>-            tmp = ID2SYM(i_create_additions);</div><div class='del'>-            if (option_given_p(opts, tmp)) {</div><div class='del'>-                json-&gt;create_additions = RTEST(rb_hash_aref(opts, tmp));</div><div class='del'>-            } else {</div><div class='del'>-                json-&gt;create_additions = 0;</div><div class='del'>-            }</div><div class='del'>-            if (json-&gt;symbolize_names &amp;&amp; json-&gt;create_additions) {</div><div class='del'>-              rb_raise(rb_eArgError,</div><div class='del'>-                "options :symbolize_names and :create_additions cannot be "</div><div class='del'>-                " used in conjunction");</div><div class='del'>-            }</div><div class='del'>-            tmp = ID2SYM(i_create_id);</div><div class='del'>-            if (option_given_p(opts, tmp)) {</div><div class='del'>-                json-&gt;create_id = rb_hash_aref(opts, tmp);</div><div class='del'>-            } else {</div><div class='del'>-                json-&gt;create_id = rb_funcall(mJSON, i_create_id, 0);</div><div class='del'>-            }</div><div class='del'>-            tmp = ID2SYM(i_object_class);</div><div class='del'>-            if (option_given_p(opts, tmp)) {</div><div class='del'>-                json-&gt;object_class = rb_hash_aref(opts, tmp);</div><div class='del'>-            } else {</div><div class='del'>-                json-&gt;object_class = Qnil;</div><div class='del'>-            }</div><div class='del'>-            tmp = ID2SYM(i_array_class);</div><div class='del'>-            if (option_given_p(opts, tmp)) {</div><div class='del'>-                json-&gt;array_class = rb_hash_aref(opts, tmp);</div><div class='del'>-            } else {</div><div class='del'>-                json-&gt;array_class = Qnil;</div><div class='del'>-            }</div><div class='del'>-            tmp = ID2SYM(i_decimal_class);</div><div class='del'>-            if (option_given_p(opts, tmp)) {</div><div class='del'>-                json-&gt;decimal_class = rb_hash_aref(opts, tmp);</div><div class='del'>-            } else {</div><div class='del'>-                json-&gt;decimal_class = Qnil;</div><div class='del'>-            }</div><div class='del'>-            tmp = ID2SYM(i_match_string);</div><div class='del'>-            if (option_given_p(opts, tmp)) {</div><div class='del'>-                VALUE match_string = rb_hash_aref(opts, tmp);</div><div class='del'>-                json-&gt;match_string = RTEST(match_string) ? match_string : Qnil;</div><div class='del'>-            } else {</div><div class='del'>-                json-&gt;match_string = Qnil;</div><div class='del'>-            }</div><div class='del'>-#ifndef HAVE_RB_SCAN_ARGS_OPTIONAL_HASH</div><div class='del'>-        }</div><div class='del'>-#endif</div><div class='del'>-    } else {</div><div class='del'>-        json-&gt;max_nesting = 100;</div><div class='del'>-        json-&gt;allow_nan = 0;</div><div class='del'>-        json-&gt;create_additions = 1;</div><div class='del'>-        json-&gt;create_id = rb_funcall(mJSON, i_create_id, 0);</div><div class='del'>-        json-&gt;object_class = Qnil;</div><div class='del'>-        json-&gt;array_class = Qnil;</div><div class='del'>-        json-&gt;decimal_class = Qnil;</div><div class='del'>-    }</div><div class='del'>-    source = convert_encoding(StringValue(source));</div><div class='del'>-    StringValue(source);</div><div class='del'>-    json-&gt;len = RSTRING_LEN(source);</div><div class='del'>-    json-&gt;source = RSTRING_PTR(source);;</div><div class='del'>-    json-&gt;Vsource = source;</div><div class='del'>-    return self;</div><div class='add'>+	VALUE source, opts;</div><div class='add'>+	GET_PARSER_INIT;</div><div class='add'>+</div><div class='add'>+	if (json-&gt;Vsource) {</div><div class='add'>+		rb_raise(rb_eTypeError, "already initialized instance");</div><div class='add'>+	}</div><div class='add'>+	#ifdef HAVE_RB_SCAN_ARGS_OPTIONAL_HASH</div><div class='add'>+	rb_scan_args(argc, argv, "1:", &amp;source, &amp;opts);</div><div class='add'>+	#else</div><div class='add'>+	rb_scan_args(argc, argv, "11", &amp;source, &amp;opts);</div><div class='add'>+	#endif</div><div class='add'>+	if (!NIL_P(opts)) {</div><div class='add'>+		#ifndef HAVE_RB_SCAN_ARGS_OPTIONAL_HASH</div><div class='add'>+		opts = rb_convert_type(opts, T_HASH, "Hash", "to_hash");</div><div class='add'>+		if (NIL_P(opts)) {</div><div class='add'>+			rb_raise(rb_eArgError, "opts needs to be like a hash");</div><div class='add'>+		} else {</div><div class='add'>+			#endif</div><div class='add'>+			VALUE tmp = ID2SYM(i_max_nesting);</div><div class='add'>+			if (option_given_p(opts, tmp)) {</div><div class='add'>+				VALUE max_nesting = rb_hash_aref(opts, tmp);</div><div class='add'>+				if (RTEST(max_nesting)) {</div><div class='add'>+					Check_Type(max_nesting, T_FIXNUM);</div><div class='add'>+					json-&gt;max_nesting = FIX2INT(max_nesting);</div><div class='add'>+				} else {</div><div class='add'>+					json-&gt;max_nesting = 0;</div><div class='add'>+				}</div><div class='add'>+			} else {</div><div class='add'>+				json-&gt;max_nesting = 100;</div><div class='add'>+			}</div><div class='add'>+			tmp = ID2SYM(i_allow_nan);</div><div class='add'>+			if (option_given_p(opts, tmp)) {</div><div class='add'>+				json-&gt;allow_nan = RTEST(rb_hash_aref(opts, tmp)) ? 1 : 0;</div><div class='add'>+			} else {</div><div class='add'>+				json-&gt;allow_nan = 0;</div><div class='add'>+			}</div><div class='add'>+			tmp = ID2SYM(i_symbolize_names);</div><div class='add'>+			if (option_given_p(opts, tmp)) {</div><div class='add'>+				json-&gt;symbolize_names = RTEST(rb_hash_aref(opts, tmp)) ? 1 : 0;</div><div class='add'>+			} else {</div><div class='add'>+				json-&gt;symbolize_names = 0;</div><div class='add'>+			}</div><div class='add'>+			tmp = ID2SYM(i_freeze);</div><div class='add'>+			if (option_given_p(opts, tmp)) {</div><div class='add'>+				json-&gt;freeze = RTEST(rb_hash_aref(opts, tmp)) ? 1 : 0;</div><div class='add'>+			} else {</div><div class='add'>+				json-&gt;freeze = 0;</div><div class='add'>+			}</div><div class='add'>+			tmp = ID2SYM(i_create_additions);</div><div class='add'>+			if (option_given_p(opts, tmp)) {</div><div class='add'>+				json-&gt;create_additions = RTEST(rb_hash_aref(opts, tmp));</div><div class='add'>+			} else {</div><div class='add'>+				json-&gt;create_additions = 0;</div><div class='add'>+			}</div><div class='add'>+			if (json-&gt;symbolize_names &amp;&amp; json-&gt;create_additions) {</div><div class='add'>+				rb_raise(rb_eArgError,</div><div class='add'>+				"options :symbolize_names and :create_additions cannot be "</div><div class='add'>+				" used in conjunction");</div><div class='add'>+			}</div><div class='add'>+			tmp = ID2SYM(i_create_id);</div><div class='add'>+			if (option_given_p(opts, tmp)) {</div><div class='add'>+				json-&gt;create_id = rb_hash_aref(opts, tmp);</div><div class='add'>+			} else {</div><div class='add'>+				json-&gt;create_id = rb_funcall(mJSON, i_create_id, 0);</div><div class='add'>+			}</div><div class='add'>+			tmp = ID2SYM(i_object_class);</div><div class='add'>+			if (option_given_p(opts, tmp)) {</div><div class='add'>+				json-&gt;object_class = rb_hash_aref(opts, tmp);</div><div class='add'>+			} else {</div><div class='add'>+				json-&gt;object_class = Qnil;</div><div class='add'>+			}</div><div class='add'>+			tmp = ID2SYM(i_array_class);</div><div class='add'>+			if (option_given_p(opts, tmp)) {</div><div class='add'>+				json-&gt;array_class = rb_hash_aref(opts, tmp);</div><div class='add'>+			} else {</div><div class='add'>+				json-&gt;array_class = Qnil;</div><div class='add'>+			}</div><div class='add'>+			tmp = ID2SYM(i_decimal_class);</div><div class='add'>+			if (option_given_p(opts, tmp)) {</div><div class='add'>+				json-&gt;decimal_class = rb_hash_aref(opts, tmp);</div><div class='add'>+			} else {</div><div class='add'>+				json-&gt;decimal_class = Qnil;</div><div class='add'>+			}</div><div class='add'>+			tmp = ID2SYM(i_match_string);</div><div class='add'>+			if (option_given_p(opts, tmp)) {</div><div class='add'>+				VALUE match_string = rb_hash_aref(opts, tmp);</div><div class='add'>+				json-&gt;match_string = RTEST(match_string) ? match_string : Qnil;</div><div class='add'>+			} else {</div><div class='add'>+				json-&gt;match_string = Qnil;</div><div class='add'>+			}</div><div class='add'>+			#ifndef HAVE_RB_SCAN_ARGS_OPTIONAL_HASH</div><div class='add'>+		}</div><div class='add'>+		#endif</div><div class='add'>+	} else {</div><div class='add'>+		json-&gt;max_nesting = 100;</div><div class='add'>+		json-&gt;allow_nan = 0;</div><div class='add'>+		json-&gt;create_additions = 0;</div><div class='add'>+		json-&gt;create_id = rb_funcall(mJSON, i_create_id, 0);</div><div class='add'>+		json-&gt;object_class = Qnil;</div><div class='add'>+		json-&gt;array_class = Qnil;</div><div class='add'>+		json-&gt;decimal_class = Qnil;</div><div class='add'>+	}</div><div class='add'>+	source = convert_encoding(StringValue(source));</div><div class='add'>+	StringValue(source);</div><div class='add'>+	json-&gt;len = RSTRING_LEN(source);</div><div class='add'>+	json-&gt;source = RSTRING_PTR(source);;</div><div class='add'>+	json-&gt;Vsource = source;</div><div class='add'>+	return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 1836 "parser.c"</div><div class='ctx'> enum {JSON_start = 1};</div><div class='ctx'> enum {JSON_first_final = 10};</div><div class='ctx'> enum {JSON_error = 0};</div><div class='ctx'> </div><div class='ctx'> enum {JSON_en_main = 1};</div><div class='ctx'> </div><div class='add'>+static const char MAYBE_UNUSED(_JSON_nfa_targs)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_nfa_offsets)[] = {</div><div class='add'>+	0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+	0, 0, 0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_nfa_push_actions)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char MAYBE_UNUSED(_JSON_nfa_pop_trans)[] = {</div><div class='add'>+	0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> </div><div class='del'>-#line 744 "parser.rl"</div><div class='add'>+#line 835 "parser.rl"</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq: parse()</div><div class='del'>- *</div><div class='del'>- *  Parses the current JSON text _source_ and returns the complete data</div><div class='del'>- *  structure as a result.</div><div class='del'>- */</div><div class='add'>+* call-seq: parse()</div><div class='add'>+*</div><div class='add'>+*  Parses the current JSON text _source_ and returns the complete data</div><div class='add'>+*  structure as a result.</div><div class='add'>+*  It raises JSON::ParseError if fail to parse.</div><div class='add'>+*/</div><div class='ctx'> static VALUE cParser_parse(VALUE self)</div><div class='ctx'> {</div><div class='del'>-  char *p, *pe;</div><div class='del'>-  int cs = EVIL;</div><div class='del'>-  VALUE result = Qnil;</div><div class='del'>-  GET_PARSER;</div><div class='add'>+	char *p, *pe;</div><div class='add'>+	int cs = EVIL;</div><div class='add'>+	VALUE result = Qnil;</div><div class='add'>+	GET_PARSER;</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#line 1861 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	cs = JSON_start;</div><div class='add'>+		cs = (int)JSON_start;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-#line 760 "parser.rl"</div><div class='del'>-  p = json-&gt;source;</div><div class='del'>-  pe = p + json-&gt;len;</div><div class='add'>+	#line 851 "parser.rl"</div><div class='add'>+</div><div class='add'>+	p = json-&gt;source;</div><div class='add'>+	pe = p + json-&gt;len;</div><div class='ctx'> </div><div class='del'>-#line 1870 "parser.c"</div><div class='ctx'> 	{</div><div class='del'>-	if ( p == pe )</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof;</div><div class='del'>-	switch ( cs )</div><div class='del'>-	{</div><div class='del'>-st1:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		switch ( cs )</div><div class='add'>+		{</div><div class='add'>+			case 1:</div><div class='add'>+			goto st_case_1;</div><div class='add'>+			case 0:</div><div class='add'>+			goto st_case_0;</div><div class='add'>+			case 10:</div><div class='add'>+			goto st_case_10;</div><div class='add'>+			case 2:</div><div class='add'>+			goto st_case_2;</div><div class='add'>+			case 3:</div><div class='add'>+			goto st_case_3;</div><div class='add'>+			case 4:</div><div class='add'>+			goto st_case_4;</div><div class='add'>+			case 5:</div><div class='add'>+			goto st_case_5;</div><div class='add'>+			case 6:</div><div class='add'>+			goto st_case_6;</div><div class='add'>+			case 7:</div><div class='add'>+			goto st_case_7;</div><div class='add'>+			case 8:</div><div class='add'>+			goto st_case_8;</div><div class='add'>+			case 9:</div><div class='add'>+			goto st_case_9;</div><div class='add'>+		}</div><div class='add'>+		goto st_out;</div><div class='add'>+		st1:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof1;</div><div class='del'>-case 1:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st1;</div><div class='del'>-		case 32: goto st1;</div><div class='del'>-		case 34: goto tr2;</div><div class='del'>-		case 45: goto tr2;</div><div class='del'>-		case 47: goto st6;</div><div class='del'>-		case 73: goto tr2;</div><div class='del'>-		case 78: goto tr2;</div><div class='del'>-		case 91: goto tr2;</div><div class='del'>-		case 102: goto tr2;</div><div class='del'>-		case 110: goto tr2;</div><div class='del'>-		case 116: goto tr2;</div><div class='del'>-		case 123: goto tr2;</div><div class='del'>-	}</div><div class='del'>-	if ( (*p) &gt; 10 ) {</div><div class='del'>-		if ( 48 &lt;= (*p) &amp;&amp; (*p) &lt;= 57 )</div><div class='del'>-			goto tr2;</div><div class='del'>-	} else if ( (*p) &gt;= 9 )</div><div class='del'>-		goto st1;</div><div class='del'>-	goto st0;</div><div class='del'>-st0:</div><div class='del'>-cs = 0;</div><div class='del'>-	goto _out;</div><div class='del'>-tr2:</div><div class='del'>-#line 736 "parser.rl"</div><div class='del'>-	{</div><div class='del'>-        char *np = JSON_parse_value(json, p, pe, &amp;result, 0);</div><div class='del'>-        if (np == NULL) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;}</div><div class='del'>-    }</div><div class='del'>-	goto st10;</div><div class='del'>-st10:</div><div class='del'>-	if ( ++p == pe )</div><div class='del'>-		goto _test_eof10;</div><div class='del'>-case 10:</div><div class='del'>-#line 1914 "parser.c"</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 13: goto st10;</div><div class='del'>-		case 32: goto st10;</div><div class='del'>-		case 47: goto st2;</div><div class='del'>-	}</div><div class='del'>-	if ( 9 &lt;= (*p) &amp;&amp; (*p) &lt;= 10 )</div><div class='add'>+		st_case_1:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st1;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st1;</div><div class='add'>+			}</div><div class='add'>+			case 34: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 45: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st6;</div><div class='add'>+			}</div><div class='add'>+			case 73: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 78: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 91: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 102: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 110: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 116: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+			case 123: {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( ( (*( p))) &gt; 10 ) {</div><div class='add'>+			if ( 48 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 57 ) {</div><div class='add'>+				goto ctr2;</div><div class='add'>+			}</div><div class='add'>+		} else if ( ( (*( p))) &gt;= 9 ) {</div><div class='add'>+			goto st1;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st_case_0:</div><div class='add'>+		st0:</div><div class='add'>+		cs = 0;</div><div class='add'>+		goto _out;</div><div class='add'>+		ctr2:</div><div class='add'>+		{</div><div class='add'>+			#line 827 "parser.rl"</div><div class='add'>+</div><div class='add'>+			char *np = JSON_parse_value(json, p, pe, &amp;result, 0);</div><div class='add'>+			if (np == NULL) { {p = p - 1; } {p+= 1; cs = 10; goto _out;} } else {p = (( np))-1;}</div><div class='add'>+</div><div class='add'>+		}</div><div class='add'>+</div><div class='ctx'> 		goto st10;</div><div class='del'>-	goto st0;</div><div class='del'>-st2:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st10:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='add'>+		goto _test_eof10;</div><div class='add'>+		st_case_10:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 13: {</div><div class='add'>+				goto st10;</div><div class='add'>+			}</div><div class='add'>+			case 32: {</div><div class='add'>+				goto st10;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st2;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		if ( 9 &lt;= ( (*( p))) &amp;&amp; ( (*( p))) &lt;= 10 ) {</div><div class='add'>+			goto st10;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st2:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof2;</div><div class='del'>-case 2:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st3;</div><div class='del'>-		case 47: goto st5;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st3:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_2:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st3;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st5;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st3:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof3;</div><div class='del'>-case 3:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st4;</div><div class='del'>-	goto st3;</div><div class='del'>-st4:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_3:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st4;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st3;</div><div class='add'>+		}</div><div class='add'>+		st4:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof4;</div><div class='del'>-case 4:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st4;</div><div class='del'>-		case 47: goto st10;</div><div class='del'>-	}</div><div class='del'>-	goto st3;</div><div class='del'>-st5:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_4:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st4;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st10;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st3;</div><div class='add'>+		}</div><div class='add'>+		st5:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof5;</div><div class='del'>-case 5:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st10;</div><div class='del'>-	goto st5;</div><div class='del'>-st6:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_5:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st10;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st5;</div><div class='add'>+		}</div><div class='add'>+		st6:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof6;</div><div class='del'>-case 6:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st7;</div><div class='del'>-		case 47: goto st9;</div><div class='del'>-	}</div><div class='del'>-	goto st0;</div><div class='del'>-st7:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_6:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st7;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st9;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st0;</div><div class='add'>+		}</div><div class='add'>+		st7:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof7;</div><div class='del'>-case 7:</div><div class='del'>-	if ( (*p) == 42 )</div><div class='del'>-		goto st8;</div><div class='del'>-	goto st7;</div><div class='del'>-st8:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_7:</div><div class='add'>+		if ( ( (*( p))) == 42 ) {</div><div class='add'>+			goto st8;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st7;</div><div class='add'>+		}</div><div class='add'>+		st8:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof8;</div><div class='del'>-case 8:</div><div class='del'>-	switch( (*p) ) {</div><div class='del'>-		case 42: goto st8;</div><div class='del'>-		case 47: goto st1;</div><div class='del'>-	}</div><div class='del'>-	goto st7;</div><div class='del'>-st9:</div><div class='del'>-	if ( ++p == pe )</div><div class='add'>+		st_case_8:</div><div class='add'>+		switch( ( (*( p))) ) {</div><div class='add'>+			case 42: {</div><div class='add'>+				goto st8;</div><div class='add'>+			}</div><div class='add'>+			case 47: {</div><div class='add'>+				goto st1;</div><div class='add'>+			}</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st7;</div><div class='add'>+		}</div><div class='add'>+		st9:</div><div class='add'>+		p+= 1;</div><div class='add'>+		if ( p == pe )</div><div class='ctx'> 		goto _test_eof9;</div><div class='del'>-case 9:</div><div class='del'>-	if ( (*p) == 10 )</div><div class='del'>-		goto st1;</div><div class='del'>-	goto st9;</div><div class='add'>+		st_case_9:</div><div class='add'>+		if ( ( (*( p))) == 10 ) {</div><div class='add'>+			goto st1;</div><div class='add'>+		}</div><div class='add'>+		{</div><div class='add'>+			goto st9;</div><div class='add'>+		}</div><div class='add'>+		st_out:</div><div class='add'>+		_test_eof1: cs = 1; goto _test_eof;</div><div class='add'>+		_test_eof10: cs = 10; goto _test_eof;</div><div class='add'>+		_test_eof2: cs = 2; goto _test_eof;</div><div class='add'>+		_test_eof3: cs = 3; goto _test_eof;</div><div class='add'>+		_test_eof4: cs = 4; goto _test_eof;</div><div class='add'>+		_test_eof5: cs = 5; goto _test_eof;</div><div class='add'>+		_test_eof6: cs = 6; goto _test_eof;</div><div class='add'>+		_test_eof7: cs = 7; goto _test_eof;</div><div class='add'>+		_test_eof8: cs = 8; goto _test_eof;</div><div class='add'>+		_test_eof9: cs = 9; goto _test_eof;</div><div class='add'>+</div><div class='add'>+		_test_eof: {}</div><div class='add'>+		_out: {}</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	#line 854 "parser.rl"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+	if (cs &gt;= JSON_first_final &amp;&amp; p == pe) {</div><div class='add'>+		return result;</div><div class='add'>+	} else {</div><div class='add'>+		rb_enc_raise(EXC_ENCODING eParserError, "unexpected token at '%s'", p);</div><div class='add'>+		return Qnil;</div><div class='ctx'> 	}</div><div class='del'>-	_test_eof1: cs = 1; goto _test_eof;</div><div class='del'>-	_test_eof10: cs = 10; goto _test_eof;</div><div class='del'>-	_test_eof2: cs = 2; goto _test_eof;</div><div class='del'>-	_test_eof3: cs = 3; goto _test_eof;</div><div class='del'>-	_test_eof4: cs = 4; goto _test_eof;</div><div class='del'>-	_test_eof5: cs = 5; goto _test_eof;</div><div class='del'>-	_test_eof6: cs = 6; goto _test_eof;</div><div class='del'>-	_test_eof7: cs = 7; goto _test_eof;</div><div class='del'>-	_test_eof8: cs = 8; goto _test_eof;</div><div class='del'>-	_test_eof9: cs = 9; goto _test_eof;</div><div class='del'>-</div><div class='del'>-	_test_eof: {}</div><div class='del'>-	_out: {}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-#line 763 "parser.rl"</div><div class='del'>-</div><div class='del'>-  if (cs &gt;= JSON_first_final &amp;&amp; p == pe) {</div><div class='del'>-    return result;</div><div class='del'>-  } else {</div><div class='del'>-    rb_enc_raise(EXC_ENCODING eParserError, "%u: unexpected token at '%s'", __LINE__, p);</div><div class='del'>-    return Qnil;</div><div class='del'>-  }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void JSON_mark(void *ptr)</div><div class='ctx'> {</div><div class='del'>-    JSON_Parser *json = ptr;</div><div class='del'>-    rb_gc_mark_maybe(json-&gt;Vsource);</div><div class='del'>-    rb_gc_mark_maybe(json-&gt;create_id);</div><div class='del'>-    rb_gc_mark_maybe(json-&gt;object_class);</div><div class='del'>-    rb_gc_mark_maybe(json-&gt;array_class);</div><div class='del'>-    rb_gc_mark_maybe(json-&gt;decimal_class);</div><div class='del'>-    rb_gc_mark_maybe(json-&gt;match_string);</div><div class='add'>+	JSON_Parser *json = ptr;</div><div class='add'>+	rb_gc_mark_maybe(json-&gt;Vsource);</div><div class='add'>+	rb_gc_mark_maybe(json-&gt;create_id);</div><div class='add'>+	rb_gc_mark_maybe(json-&gt;object_class);</div><div class='add'>+	rb_gc_mark_maybe(json-&gt;array_class);</div><div class='add'>+	rb_gc_mark_maybe(json-&gt;decimal_class);</div><div class='add'>+	rb_gc_mark_maybe(json-&gt;match_string);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void JSON_free(void *ptr)</div><div class='ctx'> {</div><div class='del'>-    JSON_Parser *json = ptr;</div><div class='del'>-    fbuffer_free(json-&gt;fbuffer);</div><div class='del'>-    ruby_xfree(json);</div><div class='add'>+	JSON_Parser *json = ptr;</div><div class='add'>+	fbuffer_free(json-&gt;fbuffer);</div><div class='add'>+	ruby_xfree(json);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static size_t JSON_memsize(const void *ptr)</div><div class='ctx'> {</div><div class='del'>-    const JSON_Parser *json = ptr;</div><div class='del'>-    return sizeof(*json) + FBUFFER_CAPA(json-&gt;fbuffer);</div><div class='add'>+	const JSON_Parser *json = ptr;</div><div class='add'>+	return sizeof(*json) + FBUFFER_CAPA(json-&gt;fbuffer);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifdef NEW_TYPEDDATA_WRAPPER</div><div class='ctx'> static const rb_data_type_t JSON_Parser_type = {</div><div class='del'>-    "JSON/Parser",</div><div class='del'>-    {JSON_mark, JSON_free, JSON_memsize,},</div><div class='del'>-#ifdef RUBY_TYPED_FREE_IMMEDIATELY</div><div class='del'>-    0, 0,</div><div class='del'>-    RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='del'>-#endif</div><div class='add'>+	"JSON/Parser",</div><div class='add'>+	{JSON_mark, JSON_free, JSON_memsize,},</div><div class='add'>+	#ifdef RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+	0, 0,</div><div class='add'>+	RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='add'>+	#endif</div><div class='ctx'> };</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static VALUE cJSON_parser_s_allocate(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    JSON_Parser *json;</div><div class='del'>-    VALUE obj = TypedData_Make_Struct(klass, JSON_Parser, &amp;JSON_Parser_type, json);</div><div class='del'>-    json-&gt;fbuffer = fbuffer_alloc(0);</div><div class='del'>-    return obj;</div><div class='add'>+	JSON_Parser *json;</div><div class='add'>+	VALUE obj = TypedData_Make_Struct(klass, JSON_Parser, &amp;JSON_Parser_type, json);</div><div class='add'>+	json-&gt;fbuffer = fbuffer_alloc(0);</div><div class='add'>+	return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq: source()</div><div class='del'>- *</div><div class='del'>- * Returns a copy of the current _source_ string, that was used to construct</div><div class='del'>- * this Parser.</div><div class='del'>- */</div><div class='add'>+* call-seq: source()</div><div class='add'>+*</div><div class='add'>+* Returns a copy of the current _source_ string, that was used to construct</div><div class='add'>+* this Parser.</div><div class='add'>+*/</div><div class='ctx'> static VALUE cParser_source(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    GET_PARSER;</div><div class='del'>-    return rb_str_dup(json-&gt;Vsource);</div><div class='add'>+	GET_PARSER;</div><div class='add'>+	return rb_str_dup(json-&gt;Vsource);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void Init_parser(void)</div><div class='ctx'> {</div><div class='del'>-#undef rb_intern</div><div class='del'>-    rb_require("json/common");</div><div class='del'>-    mJSON = rb_define_module("JSON");</div><div class='del'>-    mExt = rb_define_module_under(mJSON, "Ext");</div><div class='del'>-    cParser = rb_define_class_under(mExt, "Parser", rb_cObject);</div><div class='del'>-    eParserError = rb_path2class("JSON::ParserError");</div><div class='del'>-    eNestingError = rb_path2class("JSON::NestingError");</div><div class='del'>-    rb_define_alloc_func(cParser, cJSON_parser_s_allocate);</div><div class='del'>-    rb_define_method(cParser, "initialize", cParser_initialize, -1);</div><div class='del'>-    rb_define_method(cParser, "parse", cParser_parse, 0);</div><div class='del'>-    rb_define_method(cParser, "source", cParser_source, 0);</div><div class='del'>-</div><div class='del'>-    CNaN = rb_const_get(mJSON, rb_intern("NaN"));</div><div class='del'>-    CInfinity = rb_const_get(mJSON, rb_intern("Infinity"));</div><div class='del'>-    CMinusInfinity = rb_const_get(mJSON, rb_intern("MinusInfinity"));</div><div class='del'>-</div><div class='del'>-    i_json_creatable_p = rb_intern("json_creatable?");</div><div class='del'>-    i_json_create = rb_intern("json_create");</div><div class='del'>-    i_create_id = rb_intern("create_id");</div><div class='del'>-    i_create_additions = rb_intern("create_additions");</div><div class='del'>-    i_chr = rb_intern("chr");</div><div class='del'>-    i_max_nesting = rb_intern("max_nesting");</div><div class='del'>-    i_allow_nan = rb_intern("allow_nan");</div><div class='del'>-    i_symbolize_names = rb_intern("symbolize_names");</div><div class='del'>-    i_object_class = rb_intern("object_class");</div><div class='del'>-    i_array_class = rb_intern("array_class");</div><div class='del'>-    i_decimal_class = rb_intern("decimal_class");</div><div class='del'>-    i_match = rb_intern("match");</div><div class='del'>-    i_match_string = rb_intern("match_string");</div><div class='del'>-    i_key_p = rb_intern("key?");</div><div class='del'>-    i_deep_const_get = rb_intern("deep_const_get");</div><div class='del'>-    i_aset = rb_intern("[]=");</div><div class='del'>-    i_aref = rb_intern("[]");</div><div class='del'>-    i_leftshift = rb_intern("&lt;&lt;");</div><div class='del'>-    i_new = rb_intern("new");</div><div class='del'>-    i_BigDecimal = rb_intern("BigDecimal");</div><div class='add'>+	#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+	rb_ext_ractor_safe(true);</div><div class='add'>+	#endif</div><div class='add'>+</div><div class='add'>+	#undef rb_intern</div><div class='add'>+	rb_require("json/common");</div><div class='add'>+	mJSON = rb_define_module("JSON");</div><div class='add'>+	mExt = rb_define_module_under(mJSON, "Ext");</div><div class='add'>+	cParser = rb_define_class_under(mExt, "Parser", rb_cObject);</div><div class='add'>+	eParserError = rb_path2class("JSON::ParserError");</div><div class='add'>+	eNestingError = rb_path2class("JSON::NestingError");</div><div class='add'>+	rb_gc_register_mark_object(eParserError);</div><div class='add'>+	rb_gc_register_mark_object(eNestingError);</div><div class='add'>+	rb_define_alloc_func(cParser, cJSON_parser_s_allocate);</div><div class='add'>+	rb_define_method(cParser, "initialize", cParser_initialize, -1);</div><div class='add'>+	rb_define_method(cParser, "parse", cParser_parse, 0);</div><div class='add'>+	rb_define_method(cParser, "source", cParser_source, 0);</div><div class='add'>+</div><div class='add'>+	CNaN = rb_const_get(mJSON, rb_intern("NaN"));</div><div class='add'>+	rb_gc_register_mark_object(CNaN);</div><div class='add'>+</div><div class='add'>+	CInfinity = rb_const_get(mJSON, rb_intern("Infinity"));</div><div class='add'>+	rb_gc_register_mark_object(CInfinity);</div><div class='add'>+</div><div class='add'>+	CMinusInfinity = rb_const_get(mJSON, rb_intern("MinusInfinity"));</div><div class='add'>+	rb_gc_register_mark_object(CMinusInfinity);</div><div class='add'>+</div><div class='add'>+	i_json_creatable_p = rb_intern("json_creatable?");</div><div class='add'>+	i_json_create = rb_intern("json_create");</div><div class='add'>+	i_create_id = rb_intern("create_id");</div><div class='add'>+	i_create_additions = rb_intern("create_additions");</div><div class='add'>+	i_chr = rb_intern("chr");</div><div class='add'>+	i_max_nesting = rb_intern("max_nesting");</div><div class='add'>+	i_allow_nan = rb_intern("allow_nan");</div><div class='add'>+	i_symbolize_names = rb_intern("symbolize_names");</div><div class='add'>+	i_object_class = rb_intern("object_class");</div><div class='add'>+	i_array_class = rb_intern("array_class");</div><div class='add'>+	i_decimal_class = rb_intern("decimal_class");</div><div class='add'>+	i_match = rb_intern("match");</div><div class='add'>+	i_match_string = rb_intern("match_string");</div><div class='add'>+	i_key_p = rb_intern("key?");</div><div class='add'>+	i_deep_const_get = rb_intern("deep_const_get");</div><div class='add'>+	i_aset = rb_intern("[]=");</div><div class='add'>+	i_aref = rb_intern("[]");</div><div class='add'>+	i_leftshift = rb_intern("&lt;&lt;");</div><div class='add'>+	i_new = rb_intern("new");</div><div class='add'>+	i_try_convert = rb_intern("try_convert");</div><div class='add'>+	i_freeze = rb_intern("freeze");</div><div class='add'>+	i_uminus = rb_intern("-@");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Local variables:</div><div class='del'>- * mode: c</div><div class='del'>- * c-file-style: ruby</div><div class='del'>- * indent-tabs-mode: nil</div><div class='del'>- * End:</div><div class='del'>- */</div><div class='add'>+* Local variables:</div><div class='add'>+* mode: c</div><div class='add'>+* c-file-style: ruby</div><div class='add'>+* indent-tabs-mode: nil</div><div class='add'>+* End:</div><div class='add'>+*/</div><div class='head'>diff --git a/ext/json/parser/parser.h b/ext/json/parser/parser.h<br/>index e6cf779024..92ed3fdc5d 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/parser/parser.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/parser.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/parser/parser.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/parser/parser.h</a></div><div class='hunk'>@@ -13,6 +13,10 @@</div><div class='ctx'> #include "st.h"</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifndef MAYBE_UNUSED</div><div class='add'>+# define MAYBE_UNUSED(x) x</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #define option_given_p(opts, key) RTEST(rb_funcall(opts, i_key_p, 1, key))</div><div class='ctx'> </div><div class='ctx'> /* unicode */</div><div class='hunk'>@@ -37,6 +41,7 @@ typedef struct JSON_ParserStruct {</div><div class='ctx'>     int allow_nan;</div><div class='ctx'>     int parsing_name;</div><div class='ctx'>     int symbolize_names;</div><div class='add'>+    int freeze;</div><div class='ctx'>     VALUE object_class;</div><div class='ctx'>     VALUE array_class;</div><div class='ctx'>     VALUE decimal_class;</div><div class='hunk'>@@ -62,7 +67,7 @@ static char *JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *resul</div><div class='ctx'> static char *JSON_parse_integer(JSON_Parser *json, char *p, char *pe, VALUE *result);</div><div class='ctx'> static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *result);</div><div class='ctx'> static char *JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *result, int current_nesting);</div><div class='del'>-static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd);</div><div class='add'>+static VALUE json_string_unescape(char *string, char *stringEnd, int intern, int symbolize);</div><div class='ctx'> static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *result);</div><div class='ctx'> static VALUE convert_encoding(VALUE source);</div><div class='ctx'> static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self);</div><div class='head'>diff --git a/ext/json/parser/parser.rl b/ext/json/parser/parser.rl<br/>index d4e7a60e9d..2dbdc7ef24 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/parser/parser.rl?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/parser.rl</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/parser/parser.rl?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/parser/parser.rl</a></div><div class='hunk'>@@ -25,7 +25,7 @@ enc_raise(rb_encoding *enc, VALUE exc, const char *fmt, ...)</div><div class='ctx'> </div><div class='ctx'> /* unicode */</div><div class='ctx'> </div><div class='del'>-static const char digit_values[256] = {</div><div class='add'>+static const signed char digit_values[256] = {</div><div class='ctx'>     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='ctx'>     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</div><div class='ctx'>     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1,</div><div class='hunk'>@@ -44,7 +44,7 @@ static const char digit_values[256] = {</div><div class='ctx'> </div><div class='ctx'> static UTF32 unescape_unicode(const unsigned char *p)</div><div class='ctx'> {</div><div class='del'>-    char b;</div><div class='add'>+    signed char b;</div><div class='ctx'>     UTF32 result = 0;</div><div class='ctx'>     b = digit_values[p[0]];</div><div class='ctx'>     if (b &lt; 0) return UNI_REPLACEMENT_CHAR;</div><div class='hunk'>@@ -89,13 +89,12 @@ static int convert_UTF32_to_UTF8(char *buf, UTF32 ch)</div><div class='ctx'> </div><div class='ctx'> static VALUE mJSON, mExt, cParser, eParserError, eNestingError;</div><div class='ctx'> static VALUE CNaN, CInfinity, CMinusInfinity;</div><div class='del'>-static VALUE cBigDecimal = Qundef;</div><div class='ctx'> </div><div class='ctx'> static ID i_json_creatable_p, i_json_create, i_create_id, i_create_additions,</div><div class='ctx'>           i_chr, i_max_nesting, i_allow_nan, i_symbolize_names,</div><div class='ctx'>           i_object_class, i_array_class, i_decimal_class, i_key_p,</div><div class='ctx'>           i_deep_const_get, i_match, i_match_string, i_aset, i_aref,</div><div class='del'>-          i_leftshift, i_new, i_BigDecimal;</div><div class='add'>+          i_leftshift, i_new, i_try_convert, i_freeze, i_uminus;</div><div class='ctx'> </div><div class='ctx'> %%{</div><div class='ctx'>     machine JSON_common;</div><div class='hunk'>@@ -138,6 +137,7 @@ static ID i_json_creatable_p, i_json_create, i_create_id, i_create_additions,</div><div class='ctx'>             fhold; fbreak;</div><div class='ctx'>         } else {</div><div class='ctx'>             if (NIL_P(json-&gt;object_class)) {</div><div class='add'>+                OBJ_FREEZE(last_name);</div><div class='ctx'>                 rb_hash_aset(*result, last_name, v);</div><div class='ctx'>             } else {</div><div class='ctx'>                 rb_funcall(*result, i_aset, 2, last_name, v);</div><div class='hunk'>@@ -222,14 +222,14 @@ static char *JSON_parse_object(JSON_Parser *json, char *p, char *pe, VALUE *resu</div><div class='ctx'>         if (json-&gt;allow_nan) {</div><div class='ctx'>             *result = CNaN;</div><div class='ctx'>         } else {</div><div class='del'>-            rb_enc_raise(EXC_ENCODING eParserError, "%u: unexpected token at '%s'", __LINE__, p - 2);</div><div class='add'>+            rb_enc_raise(EXC_ENCODING eParserError, "unexpected token at '%s'", p - 2);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     action parse_infinity {</div><div class='ctx'>         if (json-&gt;allow_nan) {</div><div class='ctx'>             *result = CInfinity;</div><div class='ctx'>         } else {</div><div class='del'>-            rb_enc_raise(EXC_ENCODING eParserError, "%u: unexpected token at '%s'", __LINE__, p - 8);</div><div class='add'>+            rb_enc_raise(EXC_ENCODING eParserError, "unexpected token at '%s'", p - 8);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     action parse_string {</div><div class='hunk'>@@ -245,7 +245,7 @@ static char *JSON_parse_object(JSON_Parser *json, char *p, char *pe, VALUE *resu</div><div class='ctx'>                 fexec p + 10;</div><div class='ctx'>                 fhold; fbreak;</div><div class='ctx'>             } else {</div><div class='del'>-                rb_enc_raise(EXC_ENCODING eParserError, "%u: unexpected token at '%s'", __LINE__, p);</div><div class='add'>+                rb_enc_raise(EXC_ENCODING eParserError, "unexpected token at '%s'", p);</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='ctx'>         np = JSON_parse_float(json, fpc, pe, result);</div><div class='hunk'>@@ -289,6 +289,10 @@ static char *JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *resul</div><div class='ctx'>     %% write init;</div><div class='ctx'>     %% write exec;</div><div class='ctx'> </div><div class='add'>+    if (json-&gt;freeze) {</div><div class='add'>+        OBJ_FREEZE(*result);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     if (cs &gt;= JSON_value_first_final) {</div><div class='ctx'>         return p;</div><div class='ctx'>     } else {</div><div class='hunk'>@@ -340,19 +344,6 @@ static char *JSON_parse_integer(JSON_Parser *json, char *p, char *pe, VALUE *res</div><div class='ctx'>              )  (^[0-9Ee.\-]? @exit );</div><div class='ctx'> }%%</div><div class='ctx'> </div><div class='del'>-static int is_bigdecimal_class(VALUE obj)</div><div class='del'>-{</div><div class='del'>-  if (cBigDecimal == Qundef) {</div><div class='del'>-    if (rb_const_defined(rb_cObject, i_BigDecimal)) {</div><div class='del'>-      cBigDecimal = rb_const_get_at(rb_cObject, i_BigDecimal);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-      return 0;</div><div class='del'>-    }</div><div class='del'>-  }</div><div class='del'>-  return obj == cBigDecimal;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *result)</div><div class='ctx'> {</div><div class='ctx'>     int cs = EVIL;</div><div class='hunk'>@@ -362,21 +353,46 @@ static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *resul</div><div class='ctx'>     %% write exec;</div><div class='ctx'> </div><div class='ctx'>     if (cs &gt;= JSON_float_first_final) {</div><div class='add'>+        VALUE mod = Qnil;</div><div class='add'>+        ID method_id = 0;</div><div class='add'>+        if (rb_respond_to(json-&gt;decimal_class, i_try_convert)) {</div><div class='add'>+            mod = json-&gt;decimal_class;</div><div class='add'>+            method_id = i_try_convert;</div><div class='add'>+        } else if (rb_respond_to(json-&gt;decimal_class, i_new)) {</div><div class='add'>+            mod = json-&gt;decimal_class;</div><div class='add'>+            method_id = i_new;</div><div class='add'>+        } else if (RB_TYPE_P(json-&gt;decimal_class, T_CLASS)) {</div><div class='add'>+            VALUE name = rb_class_name(json-&gt;decimal_class);</div><div class='add'>+            const char *name_cstr = RSTRING_PTR(name);</div><div class='add'>+            const char *last_colon = strrchr(name_cstr, ':');</div><div class='add'>+            if (last_colon) {</div><div class='add'>+                const char *mod_path_end = last_colon - 1;</div><div class='add'>+                VALUE mod_path = rb_str_substr(name, 0, mod_path_end - name_cstr);</div><div class='add'>+                mod = rb_path_to_class(mod_path);</div><div class='add'>+</div><div class='add'>+                const char *method_name_beg = last_colon + 1;</div><div class='add'>+                long before_len = method_name_beg - name_cstr;</div><div class='add'>+                long len = RSTRING_LEN(name) - before_len;</div><div class='add'>+                VALUE method_name = rb_str_substr(name, before_len, len);</div><div class='add'>+                method_id = SYM2ID(rb_str_intern(method_name));</div><div class='add'>+            } else {</div><div class='add'>+                mod = rb_mKernel;</div><div class='add'>+                method_id = SYM2ID(rb_str_intern(name));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='ctx'>         long len = p - json-&gt;memo;</div><div class='ctx'>         fbuffer_clear(json-&gt;fbuffer);</div><div class='ctx'>         fbuffer_append(json-&gt;fbuffer, json-&gt;memo, len);</div><div class='ctx'>         fbuffer_append_char(json-&gt;fbuffer, '\0');</div><div class='del'>-        if (NIL_P(json-&gt;decimal_class)) {</div><div class='del'>-          *result = rb_float_new(rb_cstr_to_dbl(FBUFFER_PTR(json-&gt;fbuffer), 1));</div><div class='add'>+</div><div class='add'>+        if (method_id) {</div><div class='add'>+            VALUE text = rb_str_new2(FBUFFER_PTR(json-&gt;fbuffer));</div><div class='add'>+            *result = rb_funcallv(mod, method_id, 1, &amp;text);</div><div class='ctx'>         } else {</div><div class='del'>-          VALUE text;</div><div class='del'>-          text = rb_str_new2(FBUFFER_PTR(json-&gt;fbuffer));</div><div class='del'>-          if (is_bigdecimal_class(json-&gt;decimal_class)) {</div><div class='del'>-            *result = rb_funcall(Qnil, i_BigDecimal, 1, text);</div><div class='del'>-          } else {</div><div class='del'>-            *result = rb_funcall(json-&gt;decimal_class, i_new, 1, text);</div><div class='del'>-          }</div><div class='add'>+            *result = DBL2NUM(rb_cstr_to_dbl(FBUFFER_PTR(json-&gt;fbuffer), 1));</div><div class='ctx'>         }</div><div class='add'>+</div><div class='ctx'>         return p + 1;</div><div class='ctx'>     } else {</div><div class='ctx'>         return NULL;</div><div class='hunk'>@@ -431,22 +447,42 @@ static char *JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *resul</div><div class='ctx'>     if(cs &gt;= JSON_array_first_final) {</div><div class='ctx'>         return p + 1;</div><div class='ctx'>     } else {</div><div class='del'>-        rb_enc_raise(EXC_ENCODING eParserError, "%u: unexpected token at '%s'", __LINE__, p);</div><div class='add'>+        rb_enc_raise(EXC_ENCODING eParserError, "unexpected token at '%s'", p);</div><div class='ctx'>         return NULL;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd)</div><div class='add'>+static const size_t MAX_STACK_BUFFER_SIZE = 128;</div><div class='add'>+static VALUE json_string_unescape(char *string, char *stringEnd, int intern, int symbolize)</div><div class='ctx'> {</div><div class='del'>-    char *p = string, *pe = string, *unescape;</div><div class='add'>+    VALUE result = Qnil;</div><div class='add'>+    size_t bufferSize = stringEnd - string;</div><div class='add'>+    char *p = string, *pe = string, *unescape, *bufferStart, *buffer;</div><div class='ctx'>     int unescape_len;</div><div class='ctx'>     char buf[4];</div><div class='ctx'> </div><div class='add'>+    if (bufferSize &gt; MAX_STACK_BUFFER_SIZE) {</div><div class='add'>+# ifdef HAVE_RB_ENC_INTERNED_STR</div><div class='add'>+      bufferStart = buffer = ALLOC_N(char, bufferSize ? bufferSize : 1);</div><div class='add'>+# else</div><div class='add'>+      bufferStart = buffer = ALLOC_N(char, bufferSize);</div><div class='add'>+# endif</div><div class='add'>+    } else {</div><div class='add'>+# ifdef HAVE_RB_ENC_INTERNED_STR</div><div class='add'>+      bufferStart = buffer = ALLOCA_N(char, bufferSize ? bufferSize : 1);</div><div class='add'>+# else</div><div class='add'>+      bufferStart = buffer = ALLOCA_N(char, bufferSize);</div><div class='add'>+# endif</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     while (pe &lt; stringEnd) {</div><div class='ctx'>         if (*pe == '\\') {</div><div class='ctx'>             unescape = (char *) "?";</div><div class='ctx'>             unescape_len = 1;</div><div class='del'>-            if (pe &gt; p) rb_str_buf_cat(result, p, pe - p);</div><div class='add'>+            if (pe &gt; p) {</div><div class='add'>+              MEMCPY(buffer, p, char, pe - p);</div><div class='add'>+              buffer += pe - p;</div><div class='add'>+            }</div><div class='ctx'>             switch (*++pe) {</div><div class='ctx'>                 case 'n':</div><div class='ctx'>                     unescape = (char *) "\n";</div><div class='hunk'>@@ -471,9 +507,12 @@ static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd)</div><div class='ctx'>                     break;</div><div class='ctx'>                 case 'u':</div><div class='ctx'>                     if (pe &gt; stringEnd - 4) {</div><div class='add'>+                      if (bufferSize &gt; MAX_STACK_BUFFER_SIZE) {</div><div class='add'>+                        free(bufferStart);</div><div class='add'>+                      }</div><div class='ctx'>                       rb_enc_raise(</div><div class='ctx'>                         EXC_ENCODING eParserError,</div><div class='del'>-                        "%u: incomplete unicode character escape sequence at '%s'", __LINE__, p</div><div class='add'>+                        "incomplete unicode character escape sequence at '%s'", p</div><div class='ctx'>                       );</div><div class='ctx'>                     } else {</div><div class='ctx'>                         UTF32 ch = unescape_unicode((unsigned char *) ++pe);</div><div class='hunk'>@@ -481,9 +520,12 @@ static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd)</div><div class='ctx'>                         if (UNI_SUR_HIGH_START == (ch &amp; 0xFC00)) {</div><div class='ctx'>                             pe++;</div><div class='ctx'>                             if (pe &gt; stringEnd - 6) {</div><div class='add'>+                              if (bufferSize &gt; MAX_STACK_BUFFER_SIZE) {</div><div class='add'>+                                free(bufferStart);</div><div class='add'>+                              }</div><div class='ctx'>                               rb_enc_raise(</div><div class='ctx'>                                 EXC_ENCODING eParserError,</div><div class='del'>-                                "%u: incomplete surrogate pair at '%s'", __LINE__, p</div><div class='add'>+                                "incomplete surrogate pair at '%s'", p</div><div class='ctx'>                                 );</div><div class='ctx'>                             }</div><div class='ctx'>                             if (pe[0] == '\\' &amp;&amp; pe[1] == 'u') {</div><div class='hunk'>@@ -504,13 +546,55 @@ static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd)</div><div class='ctx'>                     p = pe;</div><div class='ctx'>                     continue;</div><div class='ctx'>             }</div><div class='del'>-            rb_str_buf_cat(result, unescape, unescape_len);</div><div class='add'>+            MEMCPY(buffer, unescape, char, unescape_len);</div><div class='add'>+            buffer += unescape_len;</div><div class='ctx'>             p = ++pe;</div><div class='ctx'>         } else {</div><div class='ctx'>             pe++;</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='del'>-    rb_str_buf_cat(result, p, pe - p);</div><div class='add'>+</div><div class='add'>+    if (pe &gt; p) {</div><div class='add'>+      MEMCPY(buffer, p, char, pe - p);</div><div class='add'>+      buffer += pe - p;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+# ifdef HAVE_RB_ENC_INTERNED_STR</div><div class='add'>+      if (intern) {</div><div class='add'>+        result = rb_enc_interned_str(bufferStart, (long)(buffer - bufferStart), rb_utf8_encoding());</div><div class='add'>+      } else {</div><div class='add'>+        result = rb_utf8_str_new(bufferStart, (long)(buffer - bufferStart));</div><div class='add'>+      }</div><div class='add'>+      if (bufferSize &gt; MAX_STACK_BUFFER_SIZE) {</div><div class='add'>+        free(bufferStart);</div><div class='add'>+      }</div><div class='add'>+# else</div><div class='add'>+      result = rb_utf8_str_new(bufferStart, (long)(buffer - bufferStart));</div><div class='add'>+</div><div class='add'>+      if (bufferSize &gt; MAX_STACK_BUFFER_SIZE) {</div><div class='add'>+        free(bufferStart);</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      if (intern) {</div><div class='add'>+  # if STR_UMINUS_DEDUPE_FROZEN</div><div class='add'>+        // Starting from MRI 2.8 it is preferable to freeze the string</div><div class='add'>+        // before deduplication so that it can be interned directly</div><div class='add'>+        // otherwise it would be duplicated first which is wasteful.</div><div class='add'>+        result = rb_funcall(rb_str_freeze(result), i_uminus, 0);</div><div class='add'>+  # elif STR_UMINUS_DEDUPE</div><div class='add'>+        // MRI 2.5 and older do not deduplicate strings that are already</div><div class='add'>+        // frozen.</div><div class='add'>+        result = rb_funcall(result, i_uminus, 0);</div><div class='add'>+  # else</div><div class='add'>+        result = rb_str_freeze(result);</div><div class='add'>+  # endif</div><div class='add'>+      }</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+    if (symbolize) {</div><div class='add'>+      result = rb_str_intern(result);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -521,12 +605,11 @@ static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd)</div><div class='ctx'>     write data;</div><div class='ctx'> </div><div class='ctx'>     action parse_string {</div><div class='del'>-        *result = json_string_unescape(*result, json-&gt;memo + 1, p);</div><div class='add'>+        *result = json_string_unescape(json-&gt;memo + 1, p, json-&gt;parsing_name || json-&gt; freeze, json-&gt;parsing_name &amp;&amp; json-&gt;symbolize_names);</div><div class='ctx'>         if (NIL_P(*result)) {</div><div class='ctx'>             fhold;</div><div class='ctx'>             fbreak;</div><div class='ctx'>         } else {</div><div class='del'>-            FORCE_UTF8(*result);</div><div class='ctx'>             fexec p + 1;</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='hunk'>@@ -553,7 +636,6 @@ static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *resu</div><div class='ctx'>     int cs = EVIL;</div><div class='ctx'>     VALUE match_string;</div><div class='ctx'> </div><div class='del'>-    *result = rb_str_buf_new(0);</div><div class='ctx'>     %% write init;</div><div class='ctx'>     json-&gt;memo = p;</div><div class='ctx'>     %% write exec;</div><div class='hunk'>@@ -569,13 +651,6 @@ static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *resu</div><div class='ctx'>           }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (json-&gt;symbolize_names &amp;&amp; json-&gt;parsing_name) {</div><div class='del'>-      *result = rb_str_intern(*result);</div><div class='del'>-    } else {</div><div class='del'>-          if (RB_TYPE_P(*result, T_STRING)) {</div><div class='del'>-              rb_str_resize(*result, RSTRING_LEN(*result));</div><div class='del'>-          }</div><div class='del'>-    }</div><div class='ctx'>     if (cs &gt;= JSON_string_first_final) {</div><div class='ctx'>         return p + 1;</div><div class='ctx'>     } else {</div><div class='hunk'>@@ -682,6 +757,12 @@ static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>             } else {</div><div class='ctx'>                 json-&gt;symbolize_names = 0;</div><div class='ctx'>             }</div><div class='add'>+            tmp = ID2SYM(i_freeze);</div><div class='add'>+            if (option_given_p(opts, tmp)) {</div><div class='add'>+                json-&gt;freeze = RTEST(rb_hash_aref(opts, tmp)) ? 1 : 0;</div><div class='add'>+            } else {</div><div class='add'>+                json-&gt;freeze = 0;</div><div class='add'>+            }</div><div class='ctx'>             tmp = ID2SYM(i_create_additions);</div><div class='ctx'>             if (option_given_p(opts, tmp)) {</div><div class='ctx'>                 json-&gt;create_additions = RTEST(rb_hash_aref(opts, tmp));</div><div class='hunk'>@@ -730,7 +811,7 @@ static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     } else {</div><div class='ctx'>         json-&gt;max_nesting = 100;</div><div class='ctx'>         json-&gt;allow_nan = 0;</div><div class='del'>-        json-&gt;create_additions = 1;</div><div class='add'>+        json-&gt;create_additions = 0;</div><div class='ctx'>         json-&gt;create_id = rb_funcall(mJSON, i_create_id, 0);</div><div class='ctx'>         json-&gt;object_class = Qnil;</div><div class='ctx'>         json-&gt;array_class = Qnil;</div><div class='hunk'>@@ -766,6 +847,7 @@ static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *</div><div class='ctx'>  *  Parses the current JSON text _source_ and returns the complete data</div><div class='ctx'>  *  structure as a result.</div><div class='add'>+ *  It raises JSON::ParseError if fail to parse.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE cParser_parse(VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -782,7 +864,7 @@ static VALUE cParser_parse(VALUE self)</div><div class='ctx'>   if (cs &gt;= JSON_first_final &amp;&amp; p == pe) {</div><div class='ctx'>     return result;</div><div class='ctx'>   } else {</div><div class='del'>-    rb_enc_raise(EXC_ENCODING eParserError, "%u: unexpected token at '%s'", __LINE__, p);</div><div class='add'>+    rb_enc_raise(EXC_ENCODING eParserError, "unexpected token at '%s'", p);</div><div class='ctx'>     return Qnil;</div><div class='ctx'>   }</div><div class='ctx'> }</div><div class='hunk'>@@ -844,6 +926,10 @@ static VALUE cParser_source(VALUE self)</div><div class='ctx'> </div><div class='ctx'> void Init_parser(void)</div><div class='ctx'> {</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #undef rb_intern</div><div class='ctx'>     rb_require("json/common");</div><div class='ctx'>     mJSON = rb_define_module("JSON");</div><div class='hunk'>@@ -851,14 +937,21 @@ void Init_parser(void)</div><div class='ctx'>     cParser = rb_define_class_under(mExt, "Parser", rb_cObject);</div><div class='ctx'>     eParserError = rb_path2class("JSON::ParserError");</div><div class='ctx'>     eNestingError = rb_path2class("JSON::NestingError");</div><div class='add'>+    rb_gc_register_mark_object(eParserError);</div><div class='add'>+    rb_gc_register_mark_object(eNestingError);</div><div class='ctx'>     rb_define_alloc_func(cParser, cJSON_parser_s_allocate);</div><div class='ctx'>     rb_define_method(cParser, "initialize", cParser_initialize, -1);</div><div class='ctx'>     rb_define_method(cParser, "parse", cParser_parse, 0);</div><div class='ctx'>     rb_define_method(cParser, "source", cParser_source, 0);</div><div class='ctx'> </div><div class='ctx'>     CNaN = rb_const_get(mJSON, rb_intern("NaN"));</div><div class='add'>+    rb_gc_register_mark_object(CNaN);</div><div class='add'>+</div><div class='ctx'>     CInfinity = rb_const_get(mJSON, rb_intern("Infinity"));</div><div class='add'>+    rb_gc_register_mark_object(CInfinity);</div><div class='add'>+</div><div class='ctx'>     CMinusInfinity = rb_const_get(mJSON, rb_intern("MinusInfinity"));</div><div class='add'>+    rb_gc_register_mark_object(CMinusInfinity);</div><div class='ctx'> </div><div class='ctx'>     i_json_creatable_p = rb_intern("json_creatable?");</div><div class='ctx'>     i_json_create = rb_intern("json_create");</div><div class='hunk'>@@ -879,7 +972,9 @@ void Init_parser(void)</div><div class='ctx'>     i_aref = rb_intern("[]");</div><div class='ctx'>     i_leftshift = rb_intern("&lt;&lt;");</div><div class='ctx'>     i_new = rb_intern("new");</div><div class='del'>-    i_BigDecimal = rb_intern("BigDecimal");</div><div class='add'>+    i_try_convert = rb_intern("try_convert");</div><div class='add'>+    i_freeze = rb_intern("freeze");</div><div class='add'>+    i_uminus = rb_intern("-@");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='head'>diff --git a/ext/json/parser/prereq.mk b/ext/json/parser/prereq.mk<br/>index be7bcb4319..fc59169056 100644<br/>--- a/<a href='/ruby.git/tree/ext/json/parser/prereq.mk?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/json/parser/prereq.mk</a><br/>+++ b/<a href='/ruby.git/tree/ext/json/parser/prereq.mk?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/json/parser/prereq.mk</a></div><div class='hunk'>@@ -5,6 +5,9 @@ RAGEL = ragel</div><div class='ctx'> .rl.c:</div><div class='ctx'> 	$(RAGEL) -G2 $&lt;</div><div class='ctx'> 	$(BASERUBY) -pli -e '$$_.sub!(/[ \t]+$$/, "")' \</div><div class='del'>-	-e '$$_.sub!(/^static const int (JSON_.*=.*);$$/, "enum {\\1};")' $@</div><div class='add'>+	-e '$$_.sub!(/^static const int (JSON_.*=.*);$$/, "enum {\\1};")' \</div><div class='add'>+	-e '$$_.sub!(/^(static const char) (_JSON(?:_\w+)?_nfa_\w+)(?=\[\] =)/, "\\1 MAYBE_UNUSED(\\2)")' \</div><div class='add'>+	-e '$$_.sub!(/0 &lt;= ([\( ]+\*[\( ]*p\)+) &amp;&amp; \1 &lt;= 31/, "0 &lt;= (signed char)(*(p)) &amp;&amp; (*(p)) &lt;= 31")' \</div><div class='add'>+	-e '$$_ = "/* This file is automatically generated from parser.rl by using ragel */\n" + $$_ if $$. == 1' $@</div><div class='ctx'> </div><div class='ctx'> parser.c:</div><div class='head'>diff --git a/ext/monitor/depend b/ext/monitor/depend<br/>new file mode 100644<br/>index 0000000000..3030da71d0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/monitor/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/monitor/depend</a></div><div class='hunk'>@@ -0,0 +1,161 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+monitor.o: $(RUBY_EXTCONF_H)</div><div class='add'>+monitor.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/st.h</div><div class='add'>+monitor.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+monitor.o: monitor.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/monitor/extconf.rb b/ext/monitor/extconf.rb<br/>new file mode 100644<br/>index 0000000000..78c53fa0c5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/monitor/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/monitor/extconf.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+require 'mkmf'</div><div class='add'>+create_makefile('monitor')</div><div class='head'>diff --git a/ext/monitor/lib/monitor.rb b/ext/monitor/lib/monitor.rb<br/>new file mode 100644<br/>index 0000000000..11c5ac17d9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/monitor/lib/monitor.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/monitor/lib/monitor.rb</a></div><div class='hunk'>@@ -0,0 +1,284 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+# = monitor.rb</div><div class='add'>+#</div><div class='add'>+# Copyright (C) 2001  Shugo Maeda &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+#</div><div class='add'>+# This library is distributed under the terms of the Ruby license.</div><div class='add'>+# You can freely distribute/modify this library.</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+#</div><div class='add'>+# In concurrent programming, a monitor is an object or module intended to be</div><div class='add'>+# used safely by more than one thread.  The defining characteristic of a</div><div class='add'>+# monitor is that its methods are executed with mutual exclusion.  That is, at</div><div class='add'>+# each point in time, at most one thread may be executing any of its methods.</div><div class='add'>+# This mutual exclusion greatly simplifies reasoning about the implementation</div><div class='add'>+# of monitors compared to reasoning about parallel code that updates a data</div><div class='add'>+# structure.</div><div class='add'>+#</div><div class='add'>+# You can read more about the general principles on the Wikipedia page for</div><div class='add'>+# Monitors[https://en.wikipedia.org/wiki/Monitor_%28synchronization%29]</div><div class='add'>+#</div><div class='add'>+# == Examples</div><div class='add'>+#</div><div class='add'>+# === Simple object.extend</div><div class='add'>+#</div><div class='add'>+#   require 'monitor.rb'</div><div class='add'>+#</div><div class='add'>+#   buf = []</div><div class='add'>+#   buf.extend(MonitorMixin)</div><div class='add'>+#   empty_cond = buf.new_cond</div><div class='add'>+#</div><div class='add'>+#   # consumer</div><div class='add'>+#   Thread.start do</div><div class='add'>+#     loop do</div><div class='add'>+#       buf.synchronize do</div><div class='add'>+#         empty_cond.wait_while { buf.empty? }</div><div class='add'>+#         print buf.shift</div><div class='add'>+#       end</div><div class='add'>+#     end</div><div class='add'>+#   end</div><div class='add'>+#</div><div class='add'>+#   # producer</div><div class='add'>+#   while line = ARGF.gets</div><div class='add'>+#     buf.synchronize do</div><div class='add'>+#       buf.push(line)</div><div class='add'>+#       empty_cond.signal</div><div class='add'>+#     end</div><div class='add'>+#   end</div><div class='add'>+#</div><div class='add'>+# The consumer thread waits for the producer thread to push a line to buf</div><div class='add'>+# while &lt;tt&gt;buf.empty?&lt;/tt&gt;.  The producer thread (main thread) reads a</div><div class='add'>+# line from ARGF and pushes it into buf then calls &lt;tt&gt;empty_cond.signal&lt;/tt&gt;</div><div class='add'>+# to notify the consumer thread of new data.</div><div class='add'>+#</div><div class='add'>+# === Simple Class include</div><div class='add'>+#</div><div class='add'>+#   require 'monitor'</div><div class='add'>+#</div><div class='add'>+#   class SynchronizedArray &lt; Array</div><div class='add'>+#</div><div class='add'>+#     include MonitorMixin</div><div class='add'>+#</div><div class='add'>+#     def initialize(*args)</div><div class='add'>+#       super(*args)</div><div class='add'>+#     end</div><div class='add'>+#</div><div class='add'>+#     alias :old_shift :shift</div><div class='add'>+#     alias :old_unshift :unshift</div><div class='add'>+#</div><div class='add'>+#     def shift(n=1)</div><div class='add'>+#       self.synchronize do</div><div class='add'>+#         self.old_shift(n)</div><div class='add'>+#       end</div><div class='add'>+#     end</div><div class='add'>+#</div><div class='add'>+#     def unshift(item)</div><div class='add'>+#       self.synchronize do</div><div class='add'>+#         self.old_unshift(item)</div><div class='add'>+#       end</div><div class='add'>+#     end</div><div class='add'>+#</div><div class='add'>+#     # other methods ...</div><div class='add'>+#   end</div><div class='add'>+#</div><div class='add'>+# +SynchronizedArray+ implements an Array with synchronized access to items.</div><div class='add'>+# This Class is implemented as subclass of Array which includes the</div><div class='add'>+# MonitorMixin module.</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require 'monitor.so'</div><div class='add'>+</div><div class='add'>+module MonitorMixin</div><div class='add'>+  #</div><div class='add'>+  # FIXME: This isn't documented in Nutshell.</div><div class='add'>+  #</div><div class='add'>+  # Since MonitorMixin.new_cond returns a ConditionVariable, and the example</div><div class='add'>+  # above calls while_wait and signal, this class should be documented.</div><div class='add'>+  #</div><div class='add'>+  class ConditionVariable</div><div class='add'>+    #</div><div class='add'>+    # Releases the lock held in the associated monitor and waits; reacquires the lock on wakeup.</div><div class='add'>+    #</div><div class='add'>+    # If +timeout+ is given, this method returns after +timeout+ seconds passed,</div><div class='add'>+    # even if no other thread doesn't signal.</div><div class='add'>+    #</div><div class='add'>+    def wait(timeout = nil)</div><div class='add'>+      @monitor.mon_check_owner</div><div class='add'>+      @monitor.wait_for_cond(@cond, timeout)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Calls wait repeatedly while the given block yields a truthy value.</div><div class='add'>+    #</div><div class='add'>+    def wait_while</div><div class='add'>+      while yield</div><div class='add'>+        wait</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Calls wait repeatedly until the given block yields a truthy value.</div><div class='add'>+    #</div><div class='add'>+    def wait_until</div><div class='add'>+      until yield</div><div class='add'>+        wait</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Wakes up the first thread in line waiting for this lock.</div><div class='add'>+    #</div><div class='add'>+    def signal</div><div class='add'>+      @monitor.mon_check_owner</div><div class='add'>+      @cond.signal</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Wakes up all threads waiting for this lock.</div><div class='add'>+    #</div><div class='add'>+    def broadcast</div><div class='add'>+      @monitor.mon_check_owner</div><div class='add'>+      @cond.broadcast</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def initialize(monitor)</div><div class='add'>+      @monitor = monitor</div><div class='add'>+      @cond = Thread::ConditionVariable.new</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def self.extend_object(obj)</div><div class='add'>+    super(obj)</div><div class='add'>+    obj.__send__(:mon_initialize)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Attempts to enter exclusive section.  Returns +false+ if lock fails.</div><div class='add'>+  #</div><div class='add'>+  def mon_try_enter</div><div class='add'>+    @mon_data.try_enter</div><div class='add'>+  end</div><div class='add'>+  # For backward compatibility</div><div class='add'>+  alias try_mon_enter mon_try_enter</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Enters exclusive section.</div><div class='add'>+  #</div><div class='add'>+  def mon_enter</div><div class='add'>+    @mon_data.enter</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Leaves exclusive section.</div><div class='add'>+  #</div><div class='add'>+  def mon_exit</div><div class='add'>+    mon_check_owner</div><div class='add'>+    @mon_data.exit</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Returns true if this monitor is locked by any thread</div><div class='add'>+  #</div><div class='add'>+  def mon_locked?</div><div class='add'>+    @mon_data.mon_locked?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Returns true if this monitor is locked by current thread.</div><div class='add'>+  #</div><div class='add'>+  def mon_owned?</div><div class='add'>+    @mon_data.mon_owned?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Enters exclusive section and executes the block.  Leaves the exclusive</div><div class='add'>+  # section automatically when the block exits.  See example under</div><div class='add'>+  # +MonitorMixin+.</div><div class='add'>+  #</div><div class='add'>+  def mon_synchronize(&amp;b)</div><div class='add'>+    @mon_data.synchronize(&amp;b)</div><div class='add'>+  end</div><div class='add'>+  alias synchronize mon_synchronize</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Creates a new MonitorMixin::ConditionVariable associated with the</div><div class='add'>+  # Monitor object.</div><div class='add'>+  #</div><div class='add'>+  def new_cond</div><div class='add'>+    unless defined?(@mon_data)</div><div class='add'>+      mon_initialize</div><div class='add'>+      @mon_initialized_by_new_cond = true</div><div class='add'>+    end</div><div class='add'>+    return ConditionVariable.new(@mon_data)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  private</div><div class='add'>+</div><div class='add'>+  # Use &lt;tt&gt;extend MonitorMixin&lt;/tt&gt; or &lt;tt&gt;include MonitorMixin&lt;/tt&gt; instead</div><div class='add'>+  # of this constructor.  Have look at the examples above to understand how to</div><div class='add'>+  # use this module.</div><div class='add'>+  def initialize(...)</div><div class='add'>+    super</div><div class='add'>+    mon_initialize</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Initializes the MonitorMixin after being included in a class or when an</div><div class='add'>+  # object has been extended with the MonitorMixin</div><div class='add'>+  def mon_initialize</div><div class='add'>+    if defined?(@mon_data)</div><div class='add'>+      if defined?(@mon_initialized_by_new_cond)</div><div class='add'>+        return # already initialized.</div><div class='add'>+      elsif @mon_data_owner_object_id == self.object_id</div><div class='add'>+        raise ThreadError, "already initialized"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    @mon_data = ::Monitor.new</div><div class='add'>+    @mon_data_owner_object_id = self.object_id</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def mon_check_owner</div><div class='add'>+    @mon_data.mon_check_owner</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# Use the Monitor class when you want to have a lock object for blocks with</div><div class='add'>+# mutual exclusion.</div><div class='add'>+#</div><div class='add'>+#   require 'monitor'</div><div class='add'>+#</div><div class='add'>+#   lock = Monitor.new</div><div class='add'>+#   lock.synchronize do</div><div class='add'>+#     # exclusive access</div><div class='add'>+#   end</div><div class='add'>+#</div><div class='add'>+class Monitor</div><div class='add'>+  def new_cond</div><div class='add'>+    ::MonitorMixin::ConditionVariable.new(self)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # for compatibility</div><div class='add'>+  alias try_mon_enter try_enter</div><div class='add'>+  alias mon_try_enter try_enter</div><div class='add'>+  alias mon_enter enter</div><div class='add'>+  alias mon_exit exit</div><div class='add'>+  alias mon_synchronize synchronize</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# Documentation comments:</div><div class='add'>+#  - All documentation comes from Nutshell.</div><div class='add'>+#  - MonitorMixin.new_cond appears in the example, but is not documented in</div><div class='add'>+#    Nutshell.</div><div class='add'>+#  - All the internals (internal modules Accessible and Initializable, class</div><div class='add'>+#    ConditionVariable) appear in RDoc.  It might be good to hide them, by</div><div class='add'>+#    making them private, or marking them :nodoc:, etc.</div><div class='add'>+#  - RDoc doesn't recognise aliases, so we have mon_synchronize documented, but</div><div class='add'>+#    not synchronize.</div><div class='add'>+#  - mon_owner is in Nutshell, but appears as an accessor in a separate module</div><div class='add'>+#    here, so is hard/impossible to RDoc.  Some other useful accessors</div><div class='add'>+#    (mon_count and some queue stuff) are also in this module, and don't appear</div><div class='add'>+#    directly in the RDoc output.</div><div class='add'>+#  - in short, it may be worth changing the code layout in this file to make the</div><div class='add'>+#    documentation easier</div><div class='head'>diff --git a/ext/monitor/monitor.c b/ext/monitor/monitor.c<br/>new file mode 100644<br/>index 0000000000..10209cf2aa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/monitor/monitor.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/monitor/monitor.c</a></div><div class='hunk'>@@ -0,0 +1,225 @@</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+</div><div class='add'>+/* Thread::Monitor */</div><div class='add'>+</div><div class='add'>+struct rb_monitor {</div><div class='add'>+    long count;</div><div class='add'>+    const VALUE owner;</div><div class='add'>+    const VALUE mutex;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+monitor_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct rb_monitor *mc = ptr;</div><div class='add'>+    rb_gc_mark(mc-&gt;owner);</div><div class='add'>+    rb_gc_mark(mc-&gt;mutex);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+monitor_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    return sizeof(struct rb_monitor);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t monitor_data_type = {</div><div class='add'>+    "monitor",</div><div class='add'>+    {monitor_mark, RUBY_TYPED_DEFAULT_FREE, monitor_memsize,},</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY|RUBY_TYPED_WB_PROTECTED</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    struct rb_monitor *mc;</div><div class='add'>+    VALUE obj;</div><div class='add'>+</div><div class='add'>+    obj = TypedData_Make_Struct(klass, struct rb_monitor, &amp;monitor_data_type, mc);</div><div class='add'>+    RB_OBJ_WRITE(obj, &amp;mc-&gt;mutex, rb_mutex_new());</div><div class='add'>+    RB_OBJ_WRITE(obj, &amp;mc-&gt;owner, Qnil);</div><div class='add'>+    mc-&gt;count = 0;</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct rb_monitor *</div><div class='add'>+monitor_ptr(VALUE monitor)</div><div class='add'>+{</div><div class='add'>+    struct rb_monitor *mc;</div><div class='add'>+    TypedData_Get_Struct(monitor, struct rb_monitor, &amp;monitor_data_type, mc);</div><div class='add'>+    return mc;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mc_owner_p(struct rb_monitor *mc)</div><div class='add'>+{</div><div class='add'>+    return mc-&gt;owner == rb_fiber_current();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_try_enter(VALUE monitor)</div><div class='add'>+{</div><div class='add'>+    struct rb_monitor *mc = monitor_ptr(monitor);</div><div class='add'>+</div><div class='add'>+    if (!mc_owner_p(mc)) {</div><div class='add'>+        if (!rb_mutex_trylock(mc-&gt;mutex)) {</div><div class='add'>+            return Qfalse;</div><div class='add'>+        }</div><div class='add'>+        RB_OBJ_WRITE(monitor, &amp;mc-&gt;owner, rb_fiber_current());</div><div class='add'>+        mc-&gt;count = 0;</div><div class='add'>+    }</div><div class='add'>+    mc-&gt;count += 1;</div><div class='add'>+    return Qtrue;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_enter(VALUE monitor)</div><div class='add'>+{</div><div class='add'>+    struct rb_monitor *mc = monitor_ptr(monitor);</div><div class='add'>+    if (!mc_owner_p(mc)) {</div><div class='add'>+        rb_mutex_lock(mc-&gt;mutex);</div><div class='add'>+        RB_OBJ_WRITE(monitor, &amp;mc-&gt;owner, rb_fiber_current());</div><div class='add'>+        mc-&gt;count = 0;</div><div class='add'>+    }</div><div class='add'>+    mc-&gt;count++;</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_check_owner(VALUE monitor)</div><div class='add'>+{</div><div class='add'>+    struct rb_monitor *mc = monitor_ptr(monitor);</div><div class='add'>+    if (!mc_owner_p(mc)) {</div><div class='add'>+        rb_raise(rb_eThreadError, "current fiber not owner");</div><div class='add'>+    }</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_exit(VALUE monitor)</div><div class='add'>+{</div><div class='add'>+    monitor_check_owner(monitor);</div><div class='add'>+</div><div class='add'>+    struct rb_monitor *mc = monitor_ptr(monitor);</div><div class='add'>+</div><div class='add'>+    if (mc-&gt;count &lt;= 0) rb_bug("monitor_exit: count:%d\n", (int)mc-&gt;count);</div><div class='add'>+    mc-&gt;count--;</div><div class='add'>+</div><div class='add'>+    if (mc-&gt;count == 0) {</div><div class='add'>+        RB_OBJ_WRITE(monitor, &amp;mc-&gt;owner, Qnil);</div><div class='add'>+        rb_mutex_unlock(mc-&gt;mutex);</div><div class='add'>+    }</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_locked_p(VALUE monitor)</div><div class='add'>+{</div><div class='add'>+    struct rb_monitor *mc = monitor_ptr(monitor);</div><div class='add'>+    return rb_mutex_locked_p(mc-&gt;mutex);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_owned_p(VALUE monitor)</div><div class='add'>+{</div><div class='add'>+    struct rb_monitor *mc = monitor_ptr(monitor);</div><div class='add'>+    return (rb_mutex_locked_p(mc-&gt;mutex) &amp;&amp; mc_owner_p(mc)) ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_exit_for_cond(VALUE monitor)</div><div class='add'>+{</div><div class='add'>+    struct rb_monitor *mc = monitor_ptr(monitor);</div><div class='add'>+    long cnt = mc-&gt;count;</div><div class='add'>+    RB_OBJ_WRITE(monitor, &amp;mc-&gt;owner, Qnil);</div><div class='add'>+    mc-&gt;count = 0;</div><div class='add'>+    return LONG2NUM(cnt);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct wait_for_cond_data {</div><div class='add'>+    VALUE monitor;</div><div class='add'>+    VALUE cond;</div><div class='add'>+    VALUE timeout;</div><div class='add'>+    VALUE count;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_wait_for_cond_body(VALUE v)</div><div class='add'>+{</div><div class='add'>+    struct wait_for_cond_data *data = (struct wait_for_cond_data *)v;</div><div class='add'>+    struct rb_monitor *mc = monitor_ptr(data-&gt;monitor);</div><div class='add'>+    // cond.wait(monitor.mutex, timeout)</div><div class='add'>+    VALUE signaled = rb_funcall(data-&gt;cond, rb_intern("wait"), 2, mc-&gt;mutex, data-&gt;timeout);</div><div class='add'>+    return RTEST(signaled) ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_enter_for_cond(VALUE v)</div><div class='add'>+{</div><div class='add'>+    // assert(rb_mutex_owned_p(mc-&gt;mutex) == Qtrue)</div><div class='add'>+    // but rb_mutex_owned_p is not exported...</div><div class='add'>+</div><div class='add'>+    struct wait_for_cond_data *data = (struct wait_for_cond_data *)v;</div><div class='add'>+    struct rb_monitor *mc = monitor_ptr(data-&gt;monitor);</div><div class='add'>+    RB_OBJ_WRITE(data-&gt;monitor, &amp;mc-&gt;owner, rb_fiber_current());</div><div class='add'>+    mc-&gt;count = NUM2LONG(data-&gt;count);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_wait_for_cond(VALUE monitor, VALUE cond, VALUE timeout)</div><div class='add'>+{</div><div class='add'>+    VALUE count = monitor_exit_for_cond(monitor);</div><div class='add'>+    struct wait_for_cond_data data = {</div><div class='add'>+        monitor,</div><div class='add'>+        cond,</div><div class='add'>+        timeout,</div><div class='add'>+        count,</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    return rb_ensure(monitor_wait_for_cond_body, (VALUE)&amp;data,</div><div class='add'>+                     monitor_enter_for_cond, (VALUE)&amp;data);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_sync_body(VALUE monitor)</div><div class='add'>+{</div><div class='add'>+    return rb_yield_values(0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_sync_ensure(VALUE monitor)</div><div class='add'>+{</div><div class='add'>+    return monitor_exit(monitor);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+monitor_synchronize(VALUE monitor)</div><div class='add'>+{</div><div class='add'>+    monitor_enter(monitor);</div><div class='add'>+    return rb_ensure(monitor_sync_body, monitor, monitor_sync_ensure, monitor);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_monitor(void)</div><div class='add'>+{</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    VALUE rb_cMonitor = rb_define_class("Monitor", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(rb_cMonitor, monitor_alloc);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cMonitor, "try_enter", monitor_try_enter, 0);</div><div class='add'>+    rb_define_method(rb_cMonitor, "enter", monitor_enter, 0);</div><div class='add'>+    rb_define_method(rb_cMonitor, "exit", monitor_exit, 0);</div><div class='add'>+    rb_define_method(rb_cMonitor, "synchronize", monitor_synchronize, 0);</div><div class='add'>+</div><div class='add'>+    /* internal methods for MonitorMixin */</div><div class='add'>+    rb_define_method(rb_cMonitor, "mon_locked?", monitor_locked_p, 0);</div><div class='add'>+    rb_define_method(rb_cMonitor, "mon_check_owner", monitor_check_owner, 0);</div><div class='add'>+    rb_define_method(rb_cMonitor, "mon_owned?", monitor_owned_p, 0);</div><div class='add'>+</div><div class='add'>+    /* internal methods for MonitorMixin::ConditionVariable */</div><div class='add'>+    rb_define_method(rb_cMonitor, "wait_for_cond", monitor_wait_for_cond, 2);</div><div class='add'>+}</div><div class='head'>diff --git a/ext/nkf/depend b/ext/nkf/depend<br/>index 4ea8544a95..9e2f468ba1 100644<br/>--- a/<a href='/ruby.git/tree/ext/nkf/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/nkf/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/nkf/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/nkf/depend</a></div><div class='hunk'>@@ -5,10 +5,168 @@ nkf.o: nkf.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> nkf.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> nkf.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> nkf.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> nkf.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> nkf.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> nkf.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+nkf.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> nkf.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> nkf.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> nkf.o: $(hdrdir)/ruby/oniguruma.h</div><div class='head'>diff --git a/ext/nkf/nkf-utf8/config.h b/ext/nkf/nkf-utf8/config.h<br/>index 51dc2a5152..36898c0b4b 100644<br/>--- a/<a href='/ruby.git/tree/ext/nkf/nkf-utf8/config.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/nkf/nkf-utf8/config.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/nkf/nkf-utf8/config.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/nkf/nkf-utf8/config.h</a></div><div class='hunk'>@@ -30,7 +30,7 @@</div><div class='ctx'> /* --exec-in, --exec-out option</div><div class='ctx'>  * require pipe, fork, execvp and so on.</div><div class='ctx'>  * please undef this on MS-DOS, MinGW</div><div class='del'>- * this is still buggy arround child process</div><div class='add'>+ * this is still buggy around child process</div><div class='ctx'>  */</div><div class='ctx'> /* #define EXEC_IO */</div><div class='ctx'> </div><div class='head'>diff --git a/ext/nkf/nkf-utf8/nkf.c b/ext/nkf/nkf-utf8/nkf.c<br/>index cc438a50d6..6888a43918 100644<br/>--- a/<a href='/ruby.git/tree/ext/nkf/nkf-utf8/nkf.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/nkf/nkf-utf8/nkf.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/nkf/nkf-utf8/nkf.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/nkf/nkf-utf8/nkf.c</a></div><div class='hunk'>@@ -144,7 +144,7 @@ static void w_oconv(nkf_char c2, nkf_char c1);</div><div class='ctx'> static void w_oconv16(nkf_char c2, nkf_char c1);</div><div class='ctx'> static void w_oconv32(nkf_char c2, nkf_char c1);</div><div class='ctx'> </div><div class='del'>-typedef struct {</div><div class='add'>+typedef const struct {</div><div class='ctx'>     const char *name;</div><div class='ctx'>     nkf_char (*iconv)(nkf_char c2, nkf_char c1, nkf_char c0);</div><div class='ctx'>     void (*oconv)(nkf_char c2, nkf_char c1);</div><div class='hunk'>@@ -158,10 +158,10 @@ nkf_native_encoding NkfEncodingUTF_8 =		{ "UTF-8", w_iconv, w_oconv };</div><div class='ctx'> nkf_native_encoding NkfEncodingUTF_16 =		{ "UTF-16", w_iconv16, w_oconv16 };</div><div class='ctx'> nkf_native_encoding NkfEncodingUTF_32 =		{ "UTF-32", w_iconv32, w_oconv32 };</div><div class='ctx'> </div><div class='del'>-typedef struct {</div><div class='del'>-    const int id;</div><div class='add'>+typedef const struct {</div><div class='add'>+    int id;</div><div class='ctx'>     const char *name;</div><div class='del'>-    const nkf_native_encoding *base_encoding;</div><div class='add'>+    nkf_native_encoding *base_encoding;</div><div class='ctx'> } nkf_encoding;</div><div class='ctx'> </div><div class='ctx'> nkf_encoding nkf_encoding_table[] = {</div><div class='hunk'>@@ -204,9 +204,9 @@ nkf_encoding nkf_encoding_table[] = {</div><div class='ctx'>     {-1,		NULL,			NULL}</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-struct {</div><div class='add'>+static const struct {</div><div class='ctx'>     const char *name;</div><div class='del'>-    const int id;</div><div class='add'>+    int id;</div><div class='ctx'> } encoding_name_to_id_table[] = {</div><div class='ctx'>     {"US-ASCII",		ASCII},</div><div class='ctx'>     {"ASCII",			ASCII},</div><div class='hunk'>@@ -581,7 +581,7 @@ static const unsigned char cv[]= {</div><div class='ctx'>     0x00,0x00};</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-/* X0201 kana conversion table for daguten */</div><div class='add'>+/* X0201 kana conversion table for dakuten */</div><div class='ctx'> /* 90-9F A0-DF */</div><div class='ctx'> static const unsigned char dv[]= {</div><div class='ctx'>     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</div><div class='hunk'>@@ -602,7 +602,7 @@ static const unsigned char dv[]= {</div><div class='ctx'>     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</div><div class='ctx'>     0x00,0x00};</div><div class='ctx'> </div><div class='del'>-/* X0201 kana conversion table for han-daguten */</div><div class='add'>+/* X0201 kana conversion table for han-dakuten */</div><div class='ctx'> /* 90-9F A0-DF */</div><div class='ctx'> static const unsigned char ev[]= {</div><div class='ctx'>     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</div><div class='hunk'>@@ -623,7 +623,7 @@ static const unsigned char ev[]= {</div><div class='ctx'>     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</div><div class='ctx'>     0x00,0x00};</div><div class='ctx'> </div><div class='del'>-/* X0201 kana to X0213 conversion table for han-daguten */</div><div class='add'>+/* X0201 kana to X0213 conversion table for han-dakuten */</div><div class='ctx'> /* 90-9F A0-DF */</div><div class='ctx'> static const unsigned char ev_x0213[]= {</div><div class='ctx'>     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</div><div class='hunk'>@@ -3817,7 +3817,7 @@ oconv_newline(void (*func)(nkf_char, nkf_char))</div><div class='ctx'>    LF    new line</div><div class='ctx'>    SP    space</div><div class='ctx'> </div><div class='del'>-   This fold algorthm does not preserve heading space in a line.</div><div class='add'>+   This fold algorithm does not preserve heading space in a line.</div><div class='ctx'>    This is the main difference from fmt.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -4286,7 +4286,7 @@ static const unsigned char *mime_pattern[] = {</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> /* $B3:Ev$9$k%3!&lt;%I$NM%@hEY$r&gt;e$2$k$?$a$NL\0u(B */</div><div class='del'>-nkf_char (*mime_priority_func[])(nkf_char c2, nkf_char c1, nkf_char c0) = {</div><div class='add'>+static nkf_char (*const mime_priority_func[])(nkf_char c2, nkf_char c1, nkf_char c0) = {</div><div class='ctx'>     e_iconv, s_iconv, 0, 0, 0, 0, 0,</div><div class='ctx'> #if defined(UTF8_INPUT_ENABLE)</div><div class='ctx'>     w_iconv, w_iconv,</div><div class='hunk'>@@ -6787,7 +6787,7 @@ options(unsigned char *cp)</div><div class='ctx'> 	case 'S':   /* Shift_JIS input */</div><div class='ctx'> 	    input_encoding = nkf_enc_from_index(SHIFT_JIS);</div><div class='ctx'> 	    continue;</div><div class='del'>-	case 'Z':   /* Convert X0208 alphabet to asii */</div><div class='add'>+	case 'Z':   /* Convert X0208 alphabet to ascii */</div><div class='ctx'> 	    /* alpha_f</div><div class='ctx'> 	       bit:0   Convert JIS X 0208 Alphabet to ASCII</div><div class='ctx'> 	       bit:1   Convert Kankaku to one space</div><div class='head'>diff --git a/ext/nkf/nkf-utf8/nkf.h b/ext/nkf/nkf-utf8/nkf.h<br/>index cd3037601b..b3a520da54 100644<br/>--- a/<a href='/ruby.git/tree/ext/nkf/nkf-utf8/nkf.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/nkf/nkf-utf8/nkf.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/nkf/nkf-utf8/nkf.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/nkf/nkf-utf8/nkf.h</a></div><div class='hunk'>@@ -16,8 +16,8 @@</div><div class='ctx'> #define X0201_DEFAULT TRUE</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if DEFAULT_NEWLINE == 0x0D0A</div><div class='del'>-#elif DEFAULT_NEWLINE == 0x0D</div><div class='add'>+#if defined(DEFAULT_NEWLINE) &amp;&amp; DEFAULT_NEWLINE == 0x0D0A</div><div class='add'>+#elif defined(DEFAULT_NEWLINE) &amp;&amp; DEFAULT_NEWLINE == 0x0D</div><div class='ctx'> #else</div><div class='ctx'> #define DEFAULT_NEWLINE 0x0A</div><div class='ctx'> #endif</div><div class='head'>diff --git a/ext/nkf/nkf.c b/ext/nkf/nkf.c<br/>index c958c91753..c6ddee1976 100644<br/>--- a/<a href='/ruby.git/tree/ext/nkf/nkf.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/nkf/nkf.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/nkf/nkf.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/nkf/nkf.c</a></div><div class='hunk'>@@ -65,11 +65,11 @@ rb_encoding* rb_nkf_enc_get(const char *name)</div><div class='ctx'> {</div><div class='ctx'>     int idx = rb_enc_find_index(name);</div><div class='ctx'>     if (idx &lt; 0) {</div><div class='del'>-	nkf_encoding *nkf_enc = nkf_enc_find(name);</div><div class='del'>-	idx = rb_enc_find_index(nkf_enc_name(nkf_enc_to_base_encoding(nkf_enc)));</div><div class='del'>-	if (idx &lt; 0) {</div><div class='del'>-	    idx = rb_define_dummy_encoding(name);</div><div class='del'>-	}</div><div class='add'>+        nkf_encoding *nkf_enc = nkf_enc_find(name);</div><div class='add'>+        idx = rb_enc_find_index(nkf_enc_name(nkf_enc_to_base_encoding(nkf_enc)));</div><div class='add'>+        if (idx &lt; 0) {</div><div class='add'>+            idx = rb_define_dummy_encoding(name);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return rb_enc_from_index(idx);</div><div class='ctx'> }</div><div class='hunk'>@@ -83,40 +83,40 @@ int nkf_split_options(const char *arg)</div><div class='ctx'>     int is_single_quoted = FALSE;</div><div class='ctx'>     int is_double_quoted = FALSE;</div><div class='ctx'>     for(i = 0; arg[i]; i++){</div><div class='del'>-	if(j == 255){</div><div class='del'>-	    return -1;</div><div class='del'>-	}else if(is_single_quoted){</div><div class='del'>-	    if(arg[i] == '\''){</div><div class='del'>-		is_single_quoted = FALSE;</div><div class='del'>-	    }else{</div><div class='del'>-		option[j++] = arg[i];</div><div class='del'>-	    }</div><div class='del'>-	}else if(is_escaped){</div><div class='del'>-	    is_escaped = FALSE;</div><div class='del'>-	    option[j++] = arg[i];</div><div class='del'>-	}else if(arg[i] == '\\'){</div><div class='del'>-	    is_escaped = TRUE;</div><div class='del'>-	}else if(is_double_quoted){</div><div class='del'>-	    if(arg[i] == '"'){</div><div class='del'>-		is_double_quoted = FALSE;</div><div class='del'>-	    }else{</div><div class='del'>-		option[j++] = arg[i];</div><div class='del'>-	    }</div><div class='del'>-	}else if(arg[i] == '\''){</div><div class='del'>-	    is_single_quoted = TRUE;</div><div class='del'>-	}else if(arg[i] == '"'){</div><div class='del'>-	    is_double_quoted = TRUE;</div><div class='del'>-	}else if(arg[i] == ' '){</div><div class='del'>-	    option[j] = '\0';</div><div class='del'>-	    options(option);</div><div class='del'>-	    j = 0;</div><div class='del'>-	}else{</div><div class='del'>-	    option[j++] = arg[i];</div><div class='del'>-	}</div><div class='add'>+        if(j == 255){</div><div class='add'>+            return -1;</div><div class='add'>+        }else if(is_single_quoted){</div><div class='add'>+            if(arg[i] == '\''){</div><div class='add'>+                is_single_quoted = FALSE;</div><div class='add'>+            }else{</div><div class='add'>+                option[j++] = arg[i];</div><div class='add'>+            }</div><div class='add'>+        }else if(is_escaped){</div><div class='add'>+            is_escaped = FALSE;</div><div class='add'>+            option[j++] = arg[i];</div><div class='add'>+        }else if(arg[i] == '\\'){</div><div class='add'>+            is_escaped = TRUE;</div><div class='add'>+        }else if(is_double_quoted){</div><div class='add'>+            if(arg[i] == '"'){</div><div class='add'>+                is_double_quoted = FALSE;</div><div class='add'>+            }else{</div><div class='add'>+                option[j++] = arg[i];</div><div class='add'>+            }</div><div class='add'>+        }else if(arg[i] == '\''){</div><div class='add'>+            is_single_quoted = TRUE;</div><div class='add'>+        }else if(arg[i] == '"'){</div><div class='add'>+            is_double_quoted = TRUE;</div><div class='add'>+        }else if(arg[i] == ' '){</div><div class='add'>+            option[j] = '\0';</div><div class='add'>+            options(option);</div><div class='add'>+            j = 0;</div><div class='add'>+        }else{</div><div class='add'>+            option[j++] = arg[i];</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if(j){</div><div class='del'>-	option[j] = '\0';</div><div class='del'>-	options(option);</div><div class='add'>+        option[j] = '\0';</div><div class='add'>+        options(option);</div><div class='ctx'>     }</div><div class='ctx'>     return count;</div><div class='ctx'> }</div><div class='hunk'>@@ -168,12 +168,11 @@ rb_nkf_convert(VALUE obj, VALUE opt, VALUE src)</div><div class='ctx'>     /* use _result_ end */</div><div class='ctx'> </div><div class='ctx'>     rb_str_set_len(tmp, output_ctr);</div><div class='del'>-    OBJ_INFECT(tmp, src);</div><div class='ctx'> </div><div class='ctx'>     if (mimeout_f)</div><div class='del'>-	rb_enc_associate(tmp, rb_usascii_encoding());</div><div class='add'>+        rb_enc_associate(tmp, rb_usascii_encoding());</div><div class='ctx'>     else</div><div class='del'>-	rb_enc_associate(tmp, rb_nkf_enc_get(nkf_enc_name(output_encoding)));</div><div class='add'>+        rb_enc_associate(tmp, rb_nkf_enc_get(nkf_enc_name(output_encoding)));</div><div class='ctx'> </div><div class='ctx'>     return tmp;</div><div class='ctx'> }</div><div class='hunk'>@@ -275,7 +274,7 @@ rb_nkf_guess(VALUE obj, VALUE src)</div><div class='ctx'>  *</div><div class='ctx'>  *  {de/en}crypt ROT13/47</div><div class='ctx'>  *</div><div class='del'>- *  === -h[123] --hiragana --katakana --katakana-hiragana</div><div class='add'>+ *  === \-h[123] --hiragana --katakana --katakana-hiragana</div><div class='ctx'>  *</div><div class='ctx'>  *  [-h1 --hiragana] Katakana to Hiragana conversion.</div><div class='ctx'>  *</div><div class='hunk'>@@ -300,7 +299,7 @@ rb_nkf_guess(VALUE obj, VALUE src)</div><div class='ctx'>  *</div><div class='ctx'>  *  New line preserving line folding.</div><div class='ctx'>  *</div><div class='del'>- *  === -Z[0-3]</div><div class='add'>+ *  === \-Z[0-3]</div><div class='ctx'>  *</div><div class='ctx'>  *  Convert X0208 alphabet (Fullwidth Alphabets) to ASCII.</div><div class='ctx'>  *</div><div class='hunk'>@@ -319,7 +318,7 @@ rb_nkf_guess(VALUE obj, VALUE src)</div><div class='ctx'>  *  With &lt;b&gt;-x&lt;/b&gt;, try to preserve X0208 kana and do not convert X0201 kana to X0208.</div><div class='ctx'>  *  In JIS output, ESC-(-I is used. In EUC output, SSO is used.</div><div class='ctx'>  *</div><div class='del'>- *  === -B[0-2]</div><div class='add'>+ *  === \-B[0-2]</div><div class='ctx'>  *</div><div class='ctx'>  *  Assume broken JIS-Kanji input, which lost ESC.</div><div class='ctx'>  *  Useful when your site is using old B-News Nihongo patch.</div><div class='hunk'>@@ -337,7 +336,7 @@ rb_nkf_guess(VALUE obj, VALUE src)</div><div class='ctx'>  *</div><div class='ctx'>  *  Delete \r in line feed, Add \r in line feed.</div><div class='ctx'>  *</div><div class='del'>- *  === -m[BQN0]</div><div class='add'>+ *  === \-m[BQN0]</div><div class='ctx'>  *</div><div class='ctx'>  *  MIME ISO-2022-JP/ISO8859-1 decode. (DEFAULT)</div><div class='ctx'>  *  To see ISO8859-1 (Latin-1) -l is necessary.</div><div class='hunk'>@@ -359,14 +358,14 @@ rb_nkf_guess(VALUE obj, VALUE src)</div><div class='ctx'>  *</div><div class='ctx'>  *  [-MB] MIME encode Base64 stream.</div><div class='ctx'>  *</div><div class='del'>- *  [-MQ] Perfome quoted encoding.</div><div class='add'>+ *  [-MQ] Perform quoted encoding.</div><div class='ctx'>  *</div><div class='ctx'>  *  === -l</div><div class='ctx'>  *</div><div class='ctx'>  *  Input and output code is ISO8859-1 (Latin-1) and ISO-2022-JP.</div><div class='ctx'>  *  &lt;b&gt;-s&lt;/b&gt;, &lt;b&gt;-e&lt;/b&gt; and &lt;b&gt;-x&lt;/b&gt; are not compatible with this option.</div><div class='ctx'>  *</div><div class='del'>- *  === -L[uwm]</div><div class='add'>+ *  === \-L[uwm]</div><div class='ctx'>  *</div><div class='ctx'>  *  new line mode</div><div class='ctx'>  *  Without this option, nkf doesn't convert line breaks.</div><div class='hunk'>@@ -459,7 +458,7 @@ rb_nkf_guess(VALUE obj, VALUE src)</div><div class='ctx'>  *  with this and -x option, nkf can be used as UTF converter.</div><div class='ctx'>  *  (In other words, without this and -x option, nkf doesn't save some characters)</div><div class='ctx'>  *</div><div class='del'>- *  When nkf convert string which related to path, you should use this opion.</div><div class='add'>+ *  When nkf convert string which related to path, you should use this option.</div><div class='ctx'>  *</div><div class='ctx'>  *  === --cap-input</div><div class='ctx'>  *</div><div class='head'>diff --git a/ext/nkf/nkf.gemspec b/ext/nkf/nkf.gemspec<br/>new file mode 100644<br/>index 0000000000..7f3bd4a4b1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/nkf/nkf.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/nkf/nkf.gemspec</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "nkf"</div><div class='add'>+  spec.version       = "0.1.2"</div><div class='add'>+  spec.authors       = ["NARUSE Yui"]</div><div class='add'>+  spec.email         = ["naruse@airemix.jp"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Ruby extension for Network Kanji Filter}</div><div class='add'>+  spec.description   = %q{Ruby extension for Network Kanji Filter}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/nkf"</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 2.3.0")</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  # Specify which files should be added to the gem when it is released.</div><div class='add'>+  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.bindir        = "exe"</div><div class='add'>+  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/ext/objspace/depend b/ext/objspace/depend<br/>index 642265618c..52797664e0 100644<br/>--- a/<a href='/ruby.git/tree/ext/objspace/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/objspace/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/objspace/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/objspace/depend</a></div><div class='hunk'>@@ -1,28 +1,334 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> object_tracing.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> object_tracing.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> object_tracing.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> object_tracing.o: $(hdrdir)/ruby/debug.h</div><div class='ctx'> object_tracing.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-object_tracing.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> object_tracing.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-object_tracing.o: $(hdrdir)/ruby/io.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+object_tracing.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> object_tracing.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-object_tracing.o: $(hdrdir)/ruby/onigmo.h</div><div class='del'>-object_tracing.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> object_tracing.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> object_tracing.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> object_tracing.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-object_tracing.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+object_tracing.o: $(top_srcdir)/gc.h</div><div class='ctx'> object_tracing.o: $(top_srcdir)/internal.h</div><div class='ctx'> object_tracing.o: object_tracing.c</div><div class='ctx'> object_tracing.o: objspace.h</div><div class='ctx'> objspace.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> objspace.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/atomic.h</div><div class='ctx'> objspace.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> objspace.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> objspace.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> objspace.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rmatch.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> objspace.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> objspace.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> objspace.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -32,20 +338,204 @@ objspace.o: $(hdrdir)/ruby/regex.h</div><div class='ctx'> objspace.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> objspace.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> objspace.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+objspace.o: $(hdrdir)/ruby/thread_native.h</div><div class='add'>+objspace.o: $(top_srcdir)/ccan/check_type/check_type.h</div><div class='add'>+objspace.o: $(top_srcdir)/ccan/container_of/container_of.h</div><div class='add'>+objspace.o: $(top_srcdir)/ccan/list/list.h</div><div class='add'>+objspace.o: $(top_srcdir)/ccan/str/str.h</div><div class='ctx'> objspace.o: $(top_srcdir)/gc.h</div><div class='del'>-objspace.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+objspace.o: $(top_srcdir)/id_table.h</div><div class='ctx'> objspace.o: $(top_srcdir)/internal.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/array.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/class.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/hash.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/imemo.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+objspace.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+objspace.o: $(top_srcdir)/method.h</div><div class='ctx'> objspace.o: $(top_srcdir)/node.h</div><div class='add'>+objspace.o: $(top_srcdir)/ruby_assert.h</div><div class='add'>+objspace.o: $(top_srcdir)/ruby_atomic.h</div><div class='add'>+objspace.o: $(top_srcdir)/shape.h</div><div class='ctx'> objspace.o: $(top_srcdir)/symbol.h</div><div class='add'>+objspace.o: $(top_srcdir)/thread_pthread.h</div><div class='add'>+objspace.o: $(top_srcdir)/vm_core.h</div><div class='add'>+objspace.o: $(top_srcdir)/vm_opts.h</div><div class='ctx'> objspace.o: objspace.c</div><div class='ctx'> objspace.o: {$(VPATH)}id.h</div><div class='ctx'> objspace_dump.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> objspace_dump.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/atomic.h</div><div class='ctx'> objspace_dump.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> objspace_dump.o: $(hdrdir)/ruby/debug.h</div><div class='ctx'> objspace_dump.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> objspace_dump.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> objspace_dump.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> objspace_dump.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> objspace_dump.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> objspace_dump.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -54,20 +544,37 @@ objspace_dump.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> objspace_dump.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> objspace_dump.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> objspace_dump.o: $(hdrdir)/ruby/thread_native.h</div><div class='add'>+objspace_dump.o: $(hdrdir)/ruby/util.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/ccan/check_type/check_type.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/ccan/container_of/container_of.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/ccan/list/list.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/ccan/str/str.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/constant.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/gc.h</div><div class='del'>-objspace_dump.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/id_table.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/internal.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/array.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/basic_operators.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/class.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/hash.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/imemo.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/sanitizers.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/string.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/variable.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/internal/warnings.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/method.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/node.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/ruby_assert.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/ruby_atomic.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/shape.h</div><div class='add'>+objspace_dump.o: $(top_srcdir)/symbol.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/thread_pthread.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/vm_core.h</div><div class='del'>-objspace_dump.o: $(top_srcdir)/vm_debug.h</div><div class='ctx'> objspace_dump.o: $(top_srcdir)/vm_opts.h</div><div class='ctx'> objspace_dump.o: objspace.h</div><div class='ctx'> objspace_dump.o: objspace_dump.c</div><div class='head'>diff --git a/ext/objspace/lib/objspace.rb b/ext/objspace/lib/objspace.rb<br/>new file mode 100644<br/>index 0000000000..6865fdda4c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/objspace/lib/objspace.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/objspace/lib/objspace.rb</a></div><div class='hunk'>@@ -0,0 +1,142 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require 'objspace.so'</div><div class='add'>+</div><div class='add'>+module ObjectSpace</div><div class='add'>+  class &lt;&lt; self</div><div class='add'>+    private :_dump</div><div class='add'>+    private :_dump_all</div><div class='add'>+    private :_dump_shapes</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module_function</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #   ObjectSpace.dump(obj[, output: :string]) -&gt; "{ ... }"</div><div class='add'>+  #   ObjectSpace.dump(obj, output: :file) -&gt; #&lt;File:/tmp/rubyobj20131125-88733-1xkfmpv.json&gt;</div><div class='add'>+  #   ObjectSpace.dump(obj, output: :stdout) -&gt; nil</div><div class='add'>+  #</div><div class='add'>+  # Dump the contents of a ruby object as JSON.</div><div class='add'>+  #</div><div class='add'>+  # This method is only expected to work with C Ruby.</div><div class='add'>+  # This is an experimental method and is subject to change.</div><div class='add'>+  # In particular, the function signature and output format are</div><div class='add'>+  # not guaranteed to be compatible in future versions of ruby.</div><div class='add'>+  def dump(obj, output: :string)</div><div class='add'>+    out = case output</div><div class='add'>+    when :file, nil</div><div class='add'>+      require 'tempfile'</div><div class='add'>+      Tempfile.create(%w(rubyobj .json))</div><div class='add'>+    when :stdout</div><div class='add'>+      STDOUT</div><div class='add'>+    when :string</div><div class='add'>+      +''</div><div class='add'>+    when IO</div><div class='add'>+      output</div><div class='add'>+    else</div><div class='add'>+      raise ArgumentError, "wrong output option: #{output.inspect}"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    ret = _dump(obj, out)</div><div class='add'>+    return nil if output == :stdout</div><div class='add'>+    ret</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #   ObjectSpace.dump_all([output: :file]) -&gt; #&lt;File:/tmp/rubyheap20131125-88469-laoj3v.json&gt;</div><div class='add'>+  #   ObjectSpace.dump_all(output: :stdout) -&gt; nil</div><div class='add'>+  #   ObjectSpace.dump_all(output: :string) -&gt; "{...}\n{...}\n..."</div><div class='add'>+  #   ObjectSpace.dump_all(output: File.open('heap.json','w')) -&gt; #&lt;File:heap.json&gt;</div><div class='add'>+  #   ObjectSpace.dump_all(output: :string, since: 42) -&gt; "{...}\n{...}\n..."</div><div class='add'>+  #</div><div class='add'>+  # Dump the contents of the ruby heap as JSON.</div><div class='add'>+  #</div><div class='add'>+  # _full_ must be a boolean. If true all heap slots are dumped including the empty ones (T_NONE).</div><div class='add'>+  #</div><div class='add'>+  # _since_ must be a non-negative integer or +nil+.</div><div class='add'>+  #</div><div class='add'>+  # If _since_ is a positive integer, only objects of that generation and</div><div class='add'>+  # newer generations are dumped. The current generation can be accessed using</div><div class='add'>+  # GC::count. Objects that were allocated without object allocation tracing enabled</div><div class='add'>+  # are ignored. See ::trace_object_allocations for more information and</div><div class='add'>+  # examples.</div><div class='add'>+  #</div><div class='add'>+  # If _since_ is omitted or is +nil+, all objects are dumped.</div><div class='add'>+  #</div><div class='add'>+  # _shapes_ must be a boolean or a non-negative integer.</div><div class='add'>+  #</div><div class='add'>+  # If _shapes_ is a positive integer, only shapes newer than the provided</div><div class='add'>+  # shape id are dumped. The current shape_id can be accessed using &lt;tt&gt;RubyVM.stat(:next_shape_id)&lt;/tt&gt;.</div><div class='add'>+  #</div><div class='add'>+  # If _shapes_ is +false+, no shapes are dumped.</div><div class='add'>+  #</div><div class='add'>+  # To only dump objects allocated past a certain point you can combine _since_ and _shapes_:</div><div class='add'>+  #   ObjectSpace.trace_object_allocations</div><div class='add'>+  #   GC.start</div><div class='add'>+  #   gc_generation = GC.count</div><div class='add'>+  #   shape_generation = RubyVM.stat(:next_shape_id)</div><div class='add'>+  #   call_method_to_instrument</div><div class='add'>+  #   ObjectSpace.dump_all(since: gc_generation, shapes: shape_generation)</div><div class='add'>+  #</div><div class='add'>+  # This method is only expected to work with C Ruby.</div><div class='add'>+  # This is an experimental method and is subject to change.</div><div class='add'>+  # In particular, the function signature and output format are</div><div class='add'>+  # not guaranteed to be compatible in future versions of ruby.</div><div class='add'>+  def dump_all(output: :file, full: false, since: nil, shapes: true)</div><div class='add'>+    out = case output</div><div class='add'>+    when :file, nil</div><div class='add'>+      require 'tempfile'</div><div class='add'>+      Tempfile.create(%w(rubyheap .json))</div><div class='add'>+    when :stdout</div><div class='add'>+      STDOUT</div><div class='add'>+    when :string</div><div class='add'>+      +''</div><div class='add'>+    when IO</div><div class='add'>+      output</div><div class='add'>+    else</div><div class='add'>+      raise ArgumentError, "wrong output option: #{output.inspect}"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    shapes = 0 if shapes == true</div><div class='add'>+    ret = _dump_all(out, full, since, shapes)</div><div class='add'>+    return nil if output == :stdout</div><div class='add'>+    ret</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #    ObjectSpace.dump_shapes([output: :file]) -&gt; #&lt;File:/tmp/rubyshapes20131125-88469-laoj3v.json&gt;</div><div class='add'>+  #    ObjectSpace.dump_shapes(output: :stdout) -&gt; nil</div><div class='add'>+  #    ObjectSpace.dump_shapes(output: :string) -&gt; "{...}\n{...}\n..."</div><div class='add'>+  #    ObjectSpace.dump_shapes(output: File.open('shapes.json','w')) -&gt; #&lt;File:shapes.json&gt;</div><div class='add'>+  #    ObjectSpace.dump_all(output: :string, since: 42) -&gt; "{...}\n{...}\n..."</div><div class='add'>+  #</div><div class='add'>+  #  Dump the contents of the ruby shape tree as JSON.</div><div class='add'>+  #</div><div class='add'>+  #  If _shapes_ is a positive integer, only shapes newer than the provided</div><div class='add'>+  #  shape id are dumped. The current shape_id can be accessed using &lt;tt&gt;RubyVM.stat(:next_shape_id)&lt;/tt&gt;.</div><div class='add'>+  #</div><div class='add'>+  #  This method is only expected to work with C Ruby.</div><div class='add'>+  #  This is an experimental method and is subject to change.</div><div class='add'>+  #  In particular, the function signature and output format are</div><div class='add'>+  #  not guaranteed to be compatible in future versions of ruby.</div><div class='add'>+  def dump_shapes(output: :file, since: 0)</div><div class='add'>+    out = case output</div><div class='add'>+    when :file, nil</div><div class='add'>+      require 'tempfile'</div><div class='add'>+      Tempfile.create(%w(rubyshapes .json))</div><div class='add'>+    when :stdout</div><div class='add'>+      STDOUT</div><div class='add'>+    when :string</div><div class='add'>+      +''</div><div class='add'>+    when IO</div><div class='add'>+      output</div><div class='add'>+    else</div><div class='add'>+      raise ArgumentError, "wrong output option: #{output.inspect}"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    ret = _dump_shapes(out, since)</div><div class='add'>+    return nil if output == :stdout</div><div class='add'>+    ret</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/ext/objspace/lib/objspace/trace.rb b/ext/objspace/lib/objspace/trace.rb<br/>new file mode 100644<br/>index 0000000000..c23f5a9d52<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/objspace/lib/objspace/trace.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/objspace/lib/objspace/trace.rb</a></div><div class='hunk'>@@ -0,0 +1,45 @@</div><div class='add'>+# This is a simple tool to enable the object allocation tracer.</div><div class='add'>+# When you have an object of unknown provenance, you can use this</div><div class='add'>+# to investigate where the object in question is created.</div><div class='add'>+#</div><div class='add'>+# = Important notice</div><div class='add'>+#</div><div class='add'>+# This is only for debugging purpose. Do not use this in production.</div><div class='add'>+# Require'ing this file immediately starts tracing the object allocation,</div><div class='add'>+# which brings a large performance overhead.</div><div class='add'>+#</div><div class='add'>+# = Usage</div><div class='add'>+#</div><div class='add'>+# 1. Add `require "objspace/trace"` into your code (or add `-robjspace/trace` into the command line)</div><div class='add'>+# 2. `p obj` will show the allocation site of `obj`</div><div class='add'>+#</div><div class='add'>+# Note: This redefines `Kernel#p` method, but not `Object#inspect`.</div><div class='add'>+#</div><div class='add'>+# = Examples</div><div class='add'>+#</div><div class='add'>+#   1: require "objspace/trace"</div><div class='add'>+#   2:</div><div class='add'>+#   3: obj = "str"</div><div class='add'>+#   4:</div><div class='add'>+#   5: p obj  #=&gt; "str" @ test.rb:3</div><div class='add'>+</div><div class='add'>+require 'objspace.so'</div><div class='add'>+</div><div class='add'>+module Kernel</div><div class='add'>+  remove_method :p</div><div class='add'>+  define_method(:p) do |*objs|</div><div class='add'>+    objs.each do |obj|</div><div class='add'>+      file = ObjectSpace.allocation_sourcefile(obj)</div><div class='add'>+      line = ObjectSpace.allocation_sourceline(obj)</div><div class='add'>+      if file</div><div class='add'>+        puts "#{ obj.inspect } @ #{ file }:#{ line }"</div><div class='add'>+      else</div><div class='add'>+        puts obj.inspect</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+ObjectSpace.trace_object_allocations_start</div><div class='add'>+</div><div class='add'>+warn "objspace/trace is enabled"</div><div class='head'>diff --git a/ext/objspace/object_tracing.c b/ext/objspace/object_tracing.c<br/>index 7c354498ab..8c54d51eab 100644<br/>--- a/<a href='/ruby.git/tree/ext/objspace/object_tracing.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/objspace/object_tracing.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/objspace/object_tracing.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/objspace/object_tracing.c</a></div><div class='hunk'>@@ -13,6 +13,7 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='add'>+#include "gc.h"</div><div class='ctx'> #include "internal.h"</div><div class='ctx'> #include "ruby/debug.h"</div><div class='ctx'> #include "objspace.h"</div><div class='hunk'>@@ -31,24 +32,24 @@ static const char *</div><div class='ctx'> make_unique_str(st_table *tbl, const char *str, long len)</div><div class='ctx'> {</div><div class='ctx'>     if (!str) {</div><div class='del'>-	return NULL;</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	st_data_t n;</div><div class='del'>-	char *result;</div><div class='del'>-</div><div class='del'>-	if (st_lookup(tbl, (st_data_t)str, &amp;n)) {</div><div class='del'>-	    st_insert(tbl, (st_data_t)str, n+1);</div><div class='del'>-	    st_get_key(tbl, (st_data_t)str, &amp;n);</div><div class='del'>-	    result = (char *)n;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    result = (char *)ruby_xmalloc(len+1);</div><div class='del'>-	    strncpy(result, str, len);</div><div class='del'>-	    result[len] = 0;</div><div class='del'>-	    st_add_direct(tbl, (st_data_t)result, 1);</div><div class='del'>-	}</div><div class='del'>-	return result;</div><div class='add'>+        st_data_t n;</div><div class='add'>+        char *result;</div><div class='add'>+</div><div class='add'>+        if (st_lookup(tbl, (st_data_t)str, &amp;n)) {</div><div class='add'>+            st_insert(tbl, (st_data_t)str, n+1);</div><div class='add'>+            st_get_key(tbl, (st_data_t)str, &amp;n);</div><div class='add'>+            result = (char *)n;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            result = (char *)ruby_xmalloc(len+1);</div><div class='add'>+            strncpy(result, str, len);</div><div class='add'>+            result[len] = 0;</div><div class='add'>+            st_add_direct(tbl, (st_data_t)result, 1);</div><div class='add'>+        }</div><div class='add'>+        return result;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -56,17 +57,17 @@ static void</div><div class='ctx'> delete_unique_str(st_table *tbl, const char *str)</div><div class='ctx'> {</div><div class='ctx'>     if (str) {</div><div class='del'>-	st_data_t n;</div><div class='del'>-</div><div class='del'>-	st_lookup(tbl, (st_data_t)str, &amp;n);</div><div class='del'>-	if (n == 1) {</div><div class='del'>-	    n = (st_data_t)str;</div><div class='del'>-	    st_delete(tbl, &amp;n, 0);</div><div class='del'>-	    ruby_xfree((char *)n);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    st_insert(tbl, (st_data_t)str, n-1);</div><div class='del'>-	}</div><div class='add'>+        st_data_t n;</div><div class='add'>+</div><div class='add'>+        st_lookup(tbl, (st_data_t)str, &amp;n);</div><div class='add'>+        if (n == 1) {</div><div class='add'>+            n = (st_data_t)str;</div><div class='add'>+            st_delete(tbl, &amp;n, 0);</div><div class='add'>+            ruby_xfree((char *)n);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            st_insert(tbl, (st_data_t)str, n-1);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -87,18 +88,18 @@ newobj_i(VALUE tpval, void *data)</div><div class='ctx'>     st_data_t v;</div><div class='ctx'> </div><div class='ctx'>     if (st_lookup(arg-&gt;object_table, (st_data_t)obj, &amp;v)) {</div><div class='del'>-	info = (struct allocation_info *)v;</div><div class='del'>-	if (arg-&gt;keep_remains) {</div><div class='del'>-	    if (info-&gt;living) {</div><div class='del'>-		/* do nothing. there is possibility to keep living if FREEOBJ events while suppressing tracing */</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	/* reuse info */</div><div class='del'>-	delete_unique_str(arg-&gt;str_table, info-&gt;path);</div><div class='del'>-	delete_unique_str(arg-&gt;str_table, info-&gt;class_path);</div><div class='add'>+        info = (struct allocation_info *)v;</div><div class='add'>+        if (arg-&gt;keep_remains) {</div><div class='add'>+            if (info-&gt;living) {</div><div class='add'>+                /* do nothing. there is possibility to keep living if FREEOBJ events while suppressing tracing */</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        /* reuse info */</div><div class='add'>+        delete_unique_str(arg-&gt;str_table, info-&gt;path);</div><div class='add'>+        delete_unique_str(arg-&gt;str_table, info-&gt;class_path);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	info = (struct allocation_info *)ruby_xmalloc(sizeof(struct allocation_info));</div><div class='add'>+        info = (struct allocation_info *)ruby_xmalloc(sizeof(struct allocation_info));</div><div class='ctx'>     }</div><div class='ctx'>     info-&gt;living = 1;</div><div class='ctx'>     info-&gt;flags = RBASIC(obj)-&gt;flags;</div><div class='hunk'>@@ -121,36 +122,117 @@ freeobj_i(VALUE tpval, void *data)</div><div class='ctx'>     st_data_t v;</div><div class='ctx'>     struct allocation_info *info;</div><div class='ctx'> </div><div class='add'>+    /* Modifying the st table can cause allocations, which can trigger GC.</div><div class='add'>+     * Since freeobj_i is called during GC, it must not trigger another GC. */</div><div class='add'>+    VALUE gc_disabled = rb_gc_disable_no_rest();</div><div class='add'>+</div><div class='ctx'>     if (arg-&gt;keep_remains) {</div><div class='del'>-	if (st_lookup(arg-&gt;object_table, obj, &amp;v)) {</div><div class='del'>-	    info = (struct allocation_info *)v;</div><div class='del'>-	    info-&gt;living = 0;</div><div class='del'>-	}</div><div class='add'>+        if (st_lookup(arg-&gt;object_table, obj, &amp;v)) {</div><div class='add'>+            info = (struct allocation_info *)v;</div><div class='add'>+            info-&gt;living = 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (st_delete(arg-&gt;object_table, &amp;obj, &amp;v)) {</div><div class='del'>-	    info = (struct allocation_info *)v;</div><div class='del'>-	    delete_unique_str(arg-&gt;str_table, info-&gt;path);</div><div class='del'>-	    delete_unique_str(arg-&gt;str_table, info-&gt;class_path);</div><div class='del'>-	    ruby_xfree(info);</div><div class='del'>-	}</div><div class='add'>+        if (st_delete(arg-&gt;object_table, &amp;obj, &amp;v)) {</div><div class='add'>+            info = (struct allocation_info *)v;</div><div class='add'>+            delete_unique_str(arg-&gt;str_table, info-&gt;path);</div><div class='add'>+            delete_unique_str(arg-&gt;str_table, info-&gt;class_path);</div><div class='add'>+            ruby_xfree(info);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    if (gc_disabled == Qfalse) rb_gc_enable();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-free_keys_i(st_data_t key, st_data_t value, void *data)</div><div class='add'>+free_keys_i(st_data_t key, st_data_t value, st_data_t data)</div><div class='ctx'> {</div><div class='ctx'>     ruby_xfree((void *)key);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-free_values_i(st_data_t key, st_data_t value, void *data)</div><div class='add'>+free_values_i(st_data_t key, st_data_t value, st_data_t data)</div><div class='ctx'> {</div><div class='ctx'>     ruby_xfree((void *)value);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+allocation_info_tracer_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct traceobj_arg *trace_arg = (struct traceobj_arg *)ptr;</div><div class='add'>+    rb_gc_mark(trace_arg-&gt;newobj_trace);</div><div class='add'>+    rb_gc_mark(trace_arg-&gt;freeobj_trace);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+allocation_info_tracer_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct traceobj_arg *arg = (struct traceobj_arg *)ptr;</div><div class='add'>+    /* clear tables */</div><div class='add'>+    st_foreach(arg-&gt;object_table, free_values_i, 0);</div><div class='add'>+    st_free_table(arg-&gt;object_table);</div><div class='add'>+    st_foreach(arg-&gt;str_table, free_keys_i, 0);</div><div class='add'>+    st_free_table(arg-&gt;str_table);</div><div class='add'>+    xfree(arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+allocation_info_tracer_memsize(const void *ptr)</div><div class='add'>+{</div><div class='add'>+    size_t size;</div><div class='add'>+    struct traceobj_arg *trace_arg = (struct traceobj_arg *)ptr;</div><div class='add'>+    size = sizeof(*trace_arg);</div><div class='add'>+    size += st_memsize(trace_arg-&gt;object_table);</div><div class='add'>+    size += st_memsize(trace_arg-&gt;str_table);</div><div class='add'>+    return size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+hash_foreach_should_replace_key(st_data_t key, st_data_t value, st_data_t argp, int error)</div><div class='add'>+{</div><div class='add'>+    VALUE allocated_object;</div><div class='add'>+</div><div class='add'>+    allocated_object = (VALUE)value;</div><div class='add'>+    if (allocated_object != rb_gc_location(allocated_object)) {</div><div class='add'>+        return ST_REPLACE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+hash_replace_key(st_data_t *key, st_data_t *value, st_data_t argp, int existing)</div><div class='add'>+{</div><div class='add'>+    *key = rb_gc_location((VALUE)*key);</div><div class='add'>+</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+allocation_info_tracer_compact(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct traceobj_arg *trace_arg = (struct traceobj_arg *)ptr;</div><div class='add'>+</div><div class='add'>+    if (trace_arg-&gt;object_table &amp;&amp;</div><div class='add'>+            st_foreach_with_replace(trace_arg-&gt;object_table, hash_foreach_should_replace_key, hash_replace_key, 0)) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "hash modified during iteration");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t allocation_info_tracer_type = {</div><div class='add'>+    "ObjectTracing/allocation_info_tracer",</div><div class='add'>+    {</div><div class='add'>+        allocation_info_tracer_mark,</div><div class='add'>+        allocation_info_tracer_free, /* Never called because global */</div><div class='add'>+        allocation_info_tracer_memsize,</div><div class='add'>+        allocation_info_tracer_compact,</div><div class='add'>+    },</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE traceobj_arg;</div><div class='ctx'> static struct traceobj_arg *tmp_trace_arg; /* TODO: Do not use global variables */</div><div class='ctx'> static int tmp_keep_remains;               /* TODO: Do not use global variables */</div><div class='ctx'> </div><div class='hunk'>@@ -158,13 +240,15 @@ static struct traceobj_arg *</div><div class='ctx'> get_traceobj_arg(void)</div><div class='ctx'> {</div><div class='ctx'>     if (tmp_trace_arg == 0) {</div><div class='del'>-	tmp_trace_arg = ALLOC_N(struct traceobj_arg, 1);</div><div class='del'>-	tmp_trace_arg-&gt;running = 0;</div><div class='del'>-	tmp_trace_arg-&gt;keep_remains = tmp_keep_remains;</div><div class='del'>-	tmp_trace_arg-&gt;newobj_trace = 0;</div><div class='del'>-	tmp_trace_arg-&gt;freeobj_trace = 0;</div><div class='del'>-	tmp_trace_arg-&gt;object_table = st_init_numtable();</div><div class='del'>-	tmp_trace_arg-&gt;str_table = st_init_strtable();</div><div class='add'>+        VALUE obj = TypedData_Make_Struct(rb_cObject, struct traceobj_arg, &amp;allocation_info_tracer_type, tmp_trace_arg);</div><div class='add'>+        traceobj_arg = obj;</div><div class='add'>+        rb_gc_register_mark_object(traceobj_arg);</div><div class='add'>+        tmp_trace_arg-&gt;running = 0;</div><div class='add'>+        tmp_trace_arg-&gt;keep_remains = tmp_keep_remains;</div><div class='add'>+        tmp_trace_arg-&gt;newobj_trace = 0;</div><div class='add'>+        tmp_trace_arg-&gt;freeobj_trace = 0;</div><div class='add'>+        tmp_trace_arg-&gt;object_table = st_init_numtable();</div><div class='add'>+        tmp_trace_arg-&gt;str_table = st_init_strtable();</div><div class='ctx'>     }</div><div class='ctx'>     return tmp_trace_arg;</div><div class='ctx'> }</div><div class='hunk'>@@ -181,17 +265,15 @@ trace_object_allocations_start(VALUE self)</div><div class='ctx'>     struct traceobj_arg *arg = get_traceobj_arg();</div><div class='ctx'> </div><div class='ctx'>     if (arg-&gt;running++ &gt; 0) {</div><div class='del'>-	/* do nothing */</div><div class='add'>+        /* do nothing */</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (arg-&gt;newobj_trace == 0) {</div><div class='del'>-	    arg-&gt;newobj_trace = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_NEWOBJ, newobj_i, arg);</div><div class='del'>-	    rb_gc_register_mark_object(arg-&gt;newobj_trace);</div><div class='del'>-	    arg-&gt;freeobj_trace = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_FREEOBJ, freeobj_i, arg);</div><div class='del'>-	    rb_gc_register_mark_object(arg-&gt;freeobj_trace);</div><div class='del'>-	}</div><div class='del'>-	rb_tracepoint_enable(arg-&gt;newobj_trace);</div><div class='del'>-	rb_tracepoint_enable(arg-&gt;freeobj_trace);</div><div class='add'>+        if (arg-&gt;newobj_trace == 0) {</div><div class='add'>+            arg-&gt;newobj_trace = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_NEWOBJ, newobj_i, arg);</div><div class='add'>+            arg-&gt;freeobj_trace = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_FREEOBJ, freeobj_i, arg);</div><div class='add'>+        }</div><div class='add'>+        rb_tracepoint_enable(arg-&gt;newobj_trace);</div><div class='add'>+        rb_tracepoint_enable(arg-&gt;freeobj_trace);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -212,12 +294,16 @@ trace_object_allocations_stop(VALUE self)</div><div class='ctx'>     struct traceobj_arg *arg = get_traceobj_arg();</div><div class='ctx'> </div><div class='ctx'>     if (arg-&gt;running &gt; 0) {</div><div class='del'>-	arg-&gt;running--;</div><div class='add'>+        arg-&gt;running--;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (arg-&gt;running == 0) {</div><div class='del'>-	rb_tracepoint_disable(arg-&gt;newobj_trace);</div><div class='del'>-	rb_tracepoint_disable(arg-&gt;freeobj_trace);</div><div class='add'>+        if (arg-&gt;newobj_trace != 0) {</div><div class='add'>+            rb_tracepoint_disable(arg-&gt;newobj_trace);</div><div class='add'>+        }</div><div class='add'>+        if (arg-&gt;freeobj_trace != 0) {</div><div class='add'>+            rb_tracepoint_disable(arg-&gt;freeobj_trace);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -295,8 +381,8 @@ object_allocations_reporter_i(st_data_t key, st_data_t val, st_data_t ptr)</div><div class='ctx'>     else                  fprintf(out, "C: %p", (void *)info-&gt;klass);</div><div class='ctx'>     fprintf(out, "@%s:%lu", info-&gt;path ? info-&gt;path : "", info-&gt;line);</div><div class='ctx'>     if (!NIL_P(info-&gt;mid)) {</div><div class='del'>-	VALUE m = rb_sym2str(info-&gt;mid);</div><div class='del'>-	fprintf(out, " (%s)", RSTRING_PTR(m));</div><div class='add'>+        VALUE m = rb_sym2str(info-&gt;mid);</div><div class='add'>+        fprintf(out, " (%s)", RSTRING_PTR(m));</div><div class='ctx'>     }</div><div class='ctx'>     fprintf(out, ")\n");</div><div class='ctx'> </div><div class='hunk'>@@ -308,7 +394,7 @@ object_allocations_reporter(FILE *out, void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     fprintf(out, "== object_allocations_reporter: START\n");</div><div class='ctx'>     if (tmp_trace_arg) {</div><div class='del'>-	st_foreach(tmp_trace_arg-&gt;object_table, object_allocations_reporter_i, (st_data_t)out);</div><div class='add'>+        st_foreach(tmp_trace_arg-&gt;object_table, object_allocations_reporter_i, (st_data_t)out);</div><div class='ctx'>     }</div><div class='ctx'>     fprintf(out, "== object_allocations_reporter: END\n");</div><div class='ctx'> }</div><div class='hunk'>@@ -318,8 +404,8 @@ trace_object_allocations_debug_start(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     tmp_keep_remains = 1;</div><div class='ctx'>     if (object_allocations_reporter_registered == 0) {</div><div class='del'>-	object_allocations_reporter_registered = 1;</div><div class='del'>-	rb_bug_reporter_add(object_allocations_reporter, 0);</div><div class='add'>+        object_allocations_reporter_registered = 1;</div><div class='add'>+        rb_bug_reporter_add(object_allocations_reporter, 0);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return trace_object_allocations_start(self);</div><div class='hunk'>@@ -329,10 +415,10 @@ static struct allocation_info *</div><div class='ctx'> lookup_allocation_info(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (tmp_trace_arg) {</div><div class='del'>-	st_data_t info;</div><div class='del'>-	if (st_lookup(tmp_trace_arg-&gt;object_table, obj, &amp;info)) {</div><div class='del'>-	    return (struct allocation_info *)info;</div><div class='del'>-	}</div><div class='add'>+        st_data_t info;</div><div class='add'>+        if (st_lookup(tmp_trace_arg-&gt;object_table, obj, &amp;info)) {</div><div class='add'>+            return (struct allocation_info *)info;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return NULL;</div><div class='ctx'> }</div><div class='hunk'>@@ -356,10 +442,10 @@ allocation_sourcefile(VALUE self, VALUE obj)</div><div class='ctx'>     struct allocation_info *info = lookup_allocation_info(obj);</div><div class='ctx'> </div><div class='ctx'>     if (info &amp;&amp; info-&gt;path) {</div><div class='del'>-	return rb_str_new2(info-&gt;path);</div><div class='add'>+        return rb_str_new2(info-&gt;path);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -376,10 +462,10 @@ allocation_sourceline(VALUE self, VALUE obj)</div><div class='ctx'>     struct allocation_info *info = lookup_allocation_info(obj);</div><div class='ctx'> </div><div class='ctx'>     if (info) {</div><div class='del'>-	return INT2FIX(info-&gt;line);</div><div class='add'>+        return INT2FIX(info-&gt;line);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -407,10 +493,10 @@ allocation_class_path(VALUE self, VALUE obj)</div><div class='ctx'>     struct allocation_info *info = lookup_allocation_info(obj);</div><div class='ctx'> </div><div class='ctx'>     if (info &amp;&amp; info-&gt;class_path) {</div><div class='del'>-	return rb_str_new2(info-&gt;class_path);</div><div class='add'>+        return rb_str_new2(info-&gt;class_path);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -439,10 +525,10 @@ allocation_method_id(VALUE self, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     struct allocation_info *info = lookup_allocation_info(obj);</div><div class='ctx'>     if (info) {</div><div class='del'>-	return info-&gt;mid;</div><div class='add'>+        return info-&gt;mid;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -471,10 +557,10 @@ allocation_generation(VALUE self, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     struct allocation_info *info = lookup_allocation_info(obj);</div><div class='ctx'>     if (info) {</div><div class='del'>-	return SIZET2NUM(info-&gt;generation);</div><div class='add'>+        return SIZET2NUM(info-&gt;generation);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='head'>diff --git a/ext/objspace/objspace.c b/ext/objspace/objspace.c<br/>index 1ac69af844..ca08604c95 100644<br/>--- a/<a href='/ruby.git/tree/ext/objspace/objspace.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/objspace/objspace.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/objspace/objspace.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/objspace/objspace.c</a></div><div class='hunk'>@@ -12,19 +12,28 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include &lt;ruby/io.h&gt;</div><div class='add'>+#include "gc.h"</div><div class='ctx'> #include "internal.h"</div><div class='del'>-#include &lt;ruby/st.h&gt;</div><div class='del'>-#include &lt;ruby/re.h&gt;</div><div class='add'>+#include "internal/class.h"</div><div class='add'>+#include "internal/compilers.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/imemo.h"</div><div class='add'>+#include "internal/sanitizers.h"</div><div class='ctx'> #include "node.h"</div><div class='del'>-#include "gc.h"</div><div class='add'>+#include "ruby/io.h"</div><div class='add'>+#include "ruby/re.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='ctx'> #include "symbol.h"</div><div class='ctx'> </div><div class='add'>+#undef rb_funcall</div><div class='add'>+</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *    ObjectSpace.memsize_of(obj) -&gt; Integer</div><div class='ctx'>  *</div><div class='del'>- *  Return consuming memory size of obj.</div><div class='add'>+ *  Return consuming memory size of obj in bytes.</div><div class='ctx'>  *</div><div class='ctx'>  *  Note that the return size is incomplete.  You need to deal with this</div><div class='ctx'>  *  information as only a *HINT*. Especially, the size of +T_DATA+ may not be</div><div class='hunk'>@@ -47,37 +56,61 @@ struct total_data {</div><div class='ctx'>     VALUE klass;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+total_i(VALUE v, void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct total_data *data = (struct total_data *)ptr;</div><div class='add'>+</div><div class='add'>+    if (!rb_objspace_internal_object_p(v)) {</div><div class='add'>+        if (data-&gt;klass == 0 || rb_obj_is_kind_of(v, data-&gt;klass)) {</div><div class='add'>+            data-&gt;total += rb_obj_memsize_of(v);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+typedef void (*each_obj_with_flags)(VALUE, void*);</div><div class='add'>+</div><div class='add'>+struct obj_itr {</div><div class='add'>+    each_obj_with_flags cb;</div><div class='add'>+    void *data;</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> static int</div><div class='del'>-total_i(void *vstart, void *vend, size_t stride, void *ptr)</div><div class='add'>+heap_iter(void *vstart, void *vend, size_t stride, void *ptr)</div><div class='ctx'> {</div><div class='add'>+    struct obj_itr * ctx = (struct obj_itr *)ptr;</div><div class='ctx'>     VALUE v;</div><div class='del'>-    struct total_data *data = (struct total_data *)ptr;</div><div class='ctx'> </div><div class='ctx'>     for (v = (VALUE)vstart; v != (VALUE)vend; v += stride) {</div><div class='del'>-	if (RBASIC(v)-&gt;flags) {</div><div class='del'>-	    switch (BUILTIN_TYPE(v)) {</div><div class='del'>-	      case T_NONE:</div><div class='del'>-	      case T_IMEMO:</div><div class='del'>-	      case T_ICLASS:</div><div class='del'>-	      case T_NODE:</div><div class='del'>-	      case T_ZOMBIE:</div><div class='del'>-		continue;</div><div class='del'>-	      default:</div><div class='del'>-		if (data-&gt;klass == 0 || rb_obj_is_kind_of(v, data-&gt;klass)) {</div><div class='del'>-		    data-&gt;total += rb_obj_memsize_of(v);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        void *poisoned = asan_poisoned_object_p(v);</div><div class='add'>+        asan_unpoison_object(v, false);</div><div class='add'>+</div><div class='add'>+        if (RBASIC(v)-&gt;flags) {</div><div class='add'>+            (*ctx-&gt;cb)(v, ctx-&gt;data);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (poisoned) {</div><div class='add'>+            asan_poison_object(v);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+each_object_with_flags(each_obj_with_flags cb, void *ctx)</div><div class='add'>+{</div><div class='add'>+    struct obj_itr data;</div><div class='add'>+    data.cb = cb;</div><div class='add'>+    data.data = ctx;</div><div class='add'>+    rb_objspace_each_objects(heap_iter, &amp;data);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *    ObjectSpace.memsize_of_all([klass]) -&gt; Integer</div><div class='ctx'>  *</div><div class='del'>- *  Return consuming memory size of all living objects.</div><div class='add'>+ *  Return consuming memory size of all living objects in bytes.</div><div class='ctx'>  *</div><div class='ctx'>  *  If +klass+ (should be Class object) is given, return the total memory size</div><div class='ctx'>  *  of instances of the given class.</div><div class='hunk'>@@ -107,10 +140,10 @@ memsize_of_all_m(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     struct total_data data = {0, 0};</div><div class='ctx'> </div><div class='ctx'>     if (argc &gt; 0) {</div><div class='del'>-	rb_scan_args(argc, argv, "01", &amp;data.klass);</div><div class='add'>+        rb_scan_args(argc, argv, "01", &amp;data.klass);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    rb_objspace_each_objects(total_i, &amp;data);</div><div class='add'>+    each_object_with_flags(total_i, &amp;data);</div><div class='ctx'>     return SIZET2NUM(data.total);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -137,24 +170,18 @@ setup_hash(int argc, VALUE *argv)</div><div class='ctx'>         hash = rb_hash_new();</div><div class='ctx'>     }</div><div class='ctx'>     else if (!RHASH_EMPTY_P(hash)) {</div><div class='del'>-        st_foreach(RHASH_TBL(hash), set_zero_i, hash);</div><div class='add'>+        /* WB: no new reference */</div><div class='add'>+        st_foreach(RHASH_TBL_RAW(hash), set_zero_i, hash);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-cos_i(void *vstart, void *vend, size_t stride, void *data)</div><div class='add'>+static void</div><div class='add'>+cos_i(VALUE v, void *data)</div><div class='ctx'> {</div><div class='ctx'>     size_t *counts = (size_t *)data;</div><div class='del'>-    VALUE v = (VALUE)vstart;</div><div class='del'>-</div><div class='del'>-    for (;v != (VALUE)vend; v += stride) {</div><div class='del'>-	if (RBASIC(v)-&gt;flags) {</div><div class='del'>-	    counts[BUILTIN_TYPE(v)] += rb_obj_memsize_of(v);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    return 0;</div><div class='add'>+    counts[BUILTIN_TYPE(v)] += rb_obj_memsize_of(v);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -163,32 +190,33 @@ type2sym(enum ruby_value_type i)</div><div class='ctx'>     VALUE type;</div><div class='ctx'>     switch (i) {</div><div class='ctx'> #define CASE_TYPE(t) case t: type = ID2SYM(rb_intern(#t)); break;</div><div class='del'>-	CASE_TYPE(T_NONE);</div><div class='del'>-	CASE_TYPE(T_OBJECT);</div><div class='del'>-	CASE_TYPE(T_CLASS);</div><div class='del'>-	CASE_TYPE(T_MODULE);</div><div class='del'>-	CASE_TYPE(T_FLOAT);</div><div class='del'>-	CASE_TYPE(T_STRING);</div><div class='del'>-	CASE_TYPE(T_REGEXP);</div><div class='del'>-	CASE_TYPE(T_ARRAY);</div><div class='del'>-	CASE_TYPE(T_HASH);</div><div class='del'>-	CASE_TYPE(T_STRUCT);</div><div class='del'>-	CASE_TYPE(T_BIGNUM);</div><div class='del'>-	CASE_TYPE(T_FILE);</div><div class='del'>-	CASE_TYPE(T_DATA);</div><div class='del'>-	CASE_TYPE(T_MATCH);</div><div class='del'>-	CASE_TYPE(T_COMPLEX);</div><div class='del'>-	CASE_TYPE(T_RATIONAL);</div><div class='del'>-	CASE_TYPE(T_NIL);</div><div class='del'>-	CASE_TYPE(T_TRUE);</div><div class='del'>-	CASE_TYPE(T_FALSE);</div><div class='del'>-	CASE_TYPE(T_SYMBOL);</div><div class='del'>-	CASE_TYPE(T_FIXNUM);</div><div class='del'>-	CASE_TYPE(T_UNDEF);</div><div class='del'>-	CASE_TYPE(T_IMEMO);</div><div class='del'>-	CASE_TYPE(T_NODE);</div><div class='del'>-	CASE_TYPE(T_ICLASS);</div><div class='del'>-	CASE_TYPE(T_ZOMBIE);</div><div class='add'>+        CASE_TYPE(T_NONE);</div><div class='add'>+        CASE_TYPE(T_OBJECT);</div><div class='add'>+        CASE_TYPE(T_CLASS);</div><div class='add'>+        CASE_TYPE(T_MODULE);</div><div class='add'>+        CASE_TYPE(T_FLOAT);</div><div class='add'>+        CASE_TYPE(T_STRING);</div><div class='add'>+        CASE_TYPE(T_REGEXP);</div><div class='add'>+        CASE_TYPE(T_ARRAY);</div><div class='add'>+        CASE_TYPE(T_HASH);</div><div class='add'>+        CASE_TYPE(T_STRUCT);</div><div class='add'>+        CASE_TYPE(T_BIGNUM);</div><div class='add'>+        CASE_TYPE(T_FILE);</div><div class='add'>+        CASE_TYPE(T_DATA);</div><div class='add'>+        CASE_TYPE(T_MATCH);</div><div class='add'>+        CASE_TYPE(T_COMPLEX);</div><div class='add'>+        CASE_TYPE(T_RATIONAL);</div><div class='add'>+        CASE_TYPE(T_NIL);</div><div class='add'>+        CASE_TYPE(T_TRUE);</div><div class='add'>+        CASE_TYPE(T_FALSE);</div><div class='add'>+        CASE_TYPE(T_SYMBOL);</div><div class='add'>+        CASE_TYPE(T_FIXNUM);</div><div class='add'>+        CASE_TYPE(T_UNDEF);</div><div class='add'>+        CASE_TYPE(T_IMEMO);</div><div class='add'>+        CASE_TYPE(T_NODE);</div><div class='add'>+        CASE_TYPE(T_ICLASS);</div><div class='add'>+        CASE_TYPE(T_MOVED);</div><div class='add'>+        CASE_TYPE(T_ZOMBIE);</div><div class='ctx'> #undef CASE_TYPE</div><div class='ctx'>       default: rb_bug("type2sym: unknown type (%d)", i);</div><div class='ctx'>     }</div><div class='hunk'>@@ -227,17 +255,17 @@ count_objects_size(int argc, VALUE *argv, VALUE os)</div><div class='ctx'>     VALUE hash = setup_hash(argc, argv);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt;= T_MASK; i++) {</div><div class='del'>-	counts[i] = 0;</div><div class='add'>+        counts[i] = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    rb_objspace_each_objects(cos_i, &amp;counts[0]);</div><div class='add'>+    each_object_with_flags(cos_i, &amp;counts[0]);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt;= T_MASK; i++) {</div><div class='del'>-	if (counts[i]) {</div><div class='del'>-	    VALUE type = type2sym(i);</div><div class='del'>-	    total += counts[i];</div><div class='del'>-	    rb_hash_aset(hash, type, SIZET2NUM(counts[i]));</div><div class='del'>-	}</div><div class='add'>+        if (counts[i]) {</div><div class='add'>+            VALUE type = type2sym(i);</div><div class='add'>+            total += counts[i];</div><div class='add'>+            rb_hash_aset(hash, type, SIZET2NUM(counts[i]));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     rb_hash_aset(hash, ID2SYM(rb_intern("TOTAL")), SIZET2NUM(total));</div><div class='ctx'>     return hash;</div><div class='hunk'>@@ -248,25 +276,20 @@ struct dynamic_symbol_counts {</div><div class='ctx'>     size_t immortal;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-cs_i(void *vstart, void *vend, size_t stride, void *n)</div><div class='add'>+static void</div><div class='add'>+cs_i(VALUE v, void *n)</div><div class='ctx'> {</div><div class='ctx'>     struct dynamic_symbol_counts *counts = (struct dynamic_symbol_counts *)n;</div><div class='del'>-    VALUE v = (VALUE)vstart;</div><div class='del'>-</div><div class='del'>-    for (; v != (VALUE)vend; v += stride) {</div><div class='del'>-	if (RBASIC(v)-&gt;flags &amp;&amp; BUILTIN_TYPE(v) == T_SYMBOL) {</div><div class='del'>-	    ID id = RSYMBOL(v)-&gt;id;</div><div class='del'>-	    if ((id &amp; ~ID_SCOPE_MASK) == 0) {</div><div class='del'>-		counts-&gt;mortal++;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		counts-&gt;immortal++;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='ctx'> </div><div class='del'>-    return 0;</div><div class='add'>+    if (BUILTIN_TYPE(v) == T_SYMBOL) {</div><div class='add'>+        ID id = RSYMBOL(v)-&gt;id;</div><div class='add'>+        if ((id &amp; ~ID_SCOPE_MASK) == 0) {</div><div class='add'>+            counts-&gt;mortal++;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            counts-&gt;immortal++;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> size_t rb_sym_immortal_count(void);</div><div class='hunk'>@@ -304,7 +327,7 @@ count_symbols(int argc, VALUE *argv, VALUE os)</div><div class='ctx'>     VALUE hash = setup_hash(argc, argv);</div><div class='ctx'> </div><div class='ctx'>     size_t immortal_symbols = rb_sym_immortal_count();</div><div class='del'>-    rb_objspace_each_objects(cs_i, &amp;dynamic_counts);</div><div class='add'>+    each_object_with_flags(cs_i, &amp;dynamic_counts);</div><div class='ctx'> </div><div class='ctx'>     rb_hash_aset(hash, ID2SYM(rb_intern("mortal_dynamic_symbol")),   SIZET2NUM(dynamic_counts.mortal));</div><div class='ctx'>     rb_hash_aset(hash, ID2SYM(rb_intern("immortal_dynamic_symbol")), SIZET2NUM(dynamic_counts.immortal));</div><div class='hunk'>@@ -314,20 +337,15 @@ count_symbols(int argc, VALUE *argv, VALUE os)</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-cn_i(void *vstart, void *vend, size_t stride, void *n)</div><div class='add'>+static void</div><div class='add'>+cn_i(VALUE v, void *n)</div><div class='ctx'> {</div><div class='ctx'>     size_t *nodes = (size_t *)n;</div><div class='del'>-    VALUE v = (VALUE)vstart;</div><div class='ctx'> </div><div class='del'>-    for (; v != (VALUE)vend; v += stride) {</div><div class='del'>-	if (RBASIC(v)-&gt;flags &amp;&amp; BUILTIN_TYPE(v) == T_NODE) {</div><div class='del'>-	    size_t s = nd_type((NODE *)v);</div><div class='del'>-	    nodes[s]++;</div><div class='del'>-	}</div><div class='add'>+    if (BUILTIN_TYPE(v) == T_NODE) {</div><div class='add'>+        size_t s = nd_type((NODE *)v);</div><div class='add'>+        nodes[s]++;</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -361,157 +379,157 @@ count_nodes(int argc, VALUE *argv, VALUE os)</div><div class='ctx'>     VALUE hash = setup_hash(argc, argv);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt;= NODE_LAST; i++) {</div><div class='del'>-	nodes[i] = 0;</div><div class='add'>+        nodes[i] = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    rb_objspace_each_objects(cn_i, &amp;nodes[0]);</div><div class='add'>+    each_object_with_flags(cn_i, &amp;nodes[0]);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;NODE_LAST; i++) {</div><div class='del'>-	if (nodes[i] != 0) {</div><div class='del'>-	    VALUE node;</div><div class='del'>-	    switch (i) {</div><div class='add'>+        if (nodes[i] != 0) {</div><div class='add'>+            VALUE node;</div><div class='add'>+            switch (i) {</div><div class='ctx'> #define COUNT_NODE(n) case n: node = ID2SYM(rb_intern(#n)); goto set</div><div class='del'>-		COUNT_NODE(NODE_SCOPE);</div><div class='del'>-		COUNT_NODE(NODE_BLOCK);</div><div class='del'>-		COUNT_NODE(NODE_IF);</div><div class='del'>-		COUNT_NODE(NODE_UNLESS);</div><div class='del'>-		COUNT_NODE(NODE_CASE);</div><div class='del'>-		COUNT_NODE(NODE_CASE2);</div><div class='del'>-		COUNT_NODE(NODE_WHEN);</div><div class='del'>-		COUNT_NODE(NODE_WHILE);</div><div class='del'>-		COUNT_NODE(NODE_UNTIL);</div><div class='del'>-		COUNT_NODE(NODE_ITER);</div><div class='del'>-		COUNT_NODE(NODE_FOR);</div><div class='del'>-		COUNT_NODE(NODE_FOR_MASGN);</div><div class='del'>-		COUNT_NODE(NODE_BREAK);</div><div class='del'>-		COUNT_NODE(NODE_NEXT);</div><div class='del'>-		COUNT_NODE(NODE_REDO);</div><div class='del'>-		COUNT_NODE(NODE_RETRY);</div><div class='del'>-		COUNT_NODE(NODE_BEGIN);</div><div class='del'>-		COUNT_NODE(NODE_RESCUE);</div><div class='del'>-		COUNT_NODE(NODE_RESBODY);</div><div class='del'>-		COUNT_NODE(NODE_ENSURE);</div><div class='del'>-		COUNT_NODE(NODE_AND);</div><div class='del'>-		COUNT_NODE(NODE_OR);</div><div class='del'>-		COUNT_NODE(NODE_MASGN);</div><div class='del'>-		COUNT_NODE(NODE_LASGN);</div><div class='del'>-		COUNT_NODE(NODE_DASGN);</div><div class='del'>-		COUNT_NODE(NODE_DASGN_CURR);</div><div class='del'>-		COUNT_NODE(NODE_GASGN);</div><div class='del'>-		COUNT_NODE(NODE_IASGN);</div><div class='del'>-		COUNT_NODE(NODE_CDECL);</div><div class='del'>-		COUNT_NODE(NODE_CVASGN);</div><div class='del'>-		COUNT_NODE(NODE_OP_ASGN1);</div><div class='del'>-		COUNT_NODE(NODE_OP_ASGN2);</div><div class='del'>-		COUNT_NODE(NODE_OP_ASGN_AND);</div><div class='del'>-		COUNT_NODE(NODE_OP_ASGN_OR);</div><div class='del'>-		COUNT_NODE(NODE_OP_CDECL);</div><div class='del'>-		COUNT_NODE(NODE_CALL);</div><div class='del'>-		COUNT_NODE(NODE_OPCALL);</div><div class='del'>-		COUNT_NODE(NODE_FCALL);</div><div class='del'>-		COUNT_NODE(NODE_VCALL);</div><div class='del'>-		COUNT_NODE(NODE_QCALL);</div><div class='del'>-		COUNT_NODE(NODE_SUPER);</div><div class='del'>-		COUNT_NODE(NODE_ZSUPER);</div><div class='del'>-		COUNT_NODE(NODE_ARRAY);</div><div class='del'>-		COUNT_NODE(NODE_ZARRAY);</div><div class='del'>-		COUNT_NODE(NODE_VALUES);</div><div class='del'>-		COUNT_NODE(NODE_HASH);</div><div class='del'>-		COUNT_NODE(NODE_RETURN);</div><div class='del'>-		COUNT_NODE(NODE_YIELD);</div><div class='del'>-		COUNT_NODE(NODE_LVAR);</div><div class='del'>-		COUNT_NODE(NODE_DVAR);</div><div class='del'>-		COUNT_NODE(NODE_GVAR);</div><div class='del'>-		COUNT_NODE(NODE_IVAR);</div><div class='del'>-		COUNT_NODE(NODE_CONST);</div><div class='del'>-		COUNT_NODE(NODE_CVAR);</div><div class='del'>-		COUNT_NODE(NODE_NTH_REF);</div><div class='del'>-		COUNT_NODE(NODE_BACK_REF);</div><div class='del'>-		COUNT_NODE(NODE_MATCH);</div><div class='del'>-		COUNT_NODE(NODE_MATCH2);</div><div class='del'>-		COUNT_NODE(NODE_MATCH3);</div><div class='del'>-		COUNT_NODE(NODE_LIT);</div><div class='del'>-		COUNT_NODE(NODE_STR);</div><div class='del'>-		COUNT_NODE(NODE_DSTR);</div><div class='del'>-		COUNT_NODE(NODE_XSTR);</div><div class='del'>-		COUNT_NODE(NODE_DXSTR);</div><div class='del'>-		COUNT_NODE(NODE_EVSTR);</div><div class='del'>-		COUNT_NODE(NODE_DREGX);</div><div class='del'>-		COUNT_NODE(NODE_ONCE);</div><div class='del'>-		COUNT_NODE(NODE_ARGS);</div><div class='del'>-		COUNT_NODE(NODE_ARGS_AUX);</div><div class='del'>-		COUNT_NODE(NODE_OPT_ARG);</div><div class='del'>-		COUNT_NODE(NODE_KW_ARG);</div><div class='del'>-		COUNT_NODE(NODE_POSTARG);</div><div class='del'>-		COUNT_NODE(NODE_ARGSCAT);</div><div class='del'>-		COUNT_NODE(NODE_ARGSPUSH);</div><div class='del'>-		COUNT_NODE(NODE_SPLAT);</div><div class='del'>-		COUNT_NODE(NODE_BLOCK_PASS);</div><div class='del'>-		COUNT_NODE(NODE_DEFN);</div><div class='del'>-		COUNT_NODE(NODE_DEFS);</div><div class='del'>-		COUNT_NODE(NODE_ALIAS);</div><div class='del'>-		COUNT_NODE(NODE_VALIAS);</div><div class='del'>-		COUNT_NODE(NODE_UNDEF);</div><div class='del'>-		COUNT_NODE(NODE_CLASS);</div><div class='del'>-		COUNT_NODE(NODE_MODULE);</div><div class='del'>-		COUNT_NODE(NODE_SCLASS);</div><div class='del'>-		COUNT_NODE(NODE_COLON2);</div><div class='del'>-		COUNT_NODE(NODE_COLON3);</div><div class='del'>-		COUNT_NODE(NODE_DOT2);</div><div class='del'>-		COUNT_NODE(NODE_DOT3);</div><div class='del'>-		COUNT_NODE(NODE_FLIP2);</div><div class='del'>-		COUNT_NODE(NODE_FLIP3);</div><div class='del'>-		COUNT_NODE(NODE_SELF);</div><div class='del'>-		COUNT_NODE(NODE_NIL);</div><div class='del'>-		COUNT_NODE(NODE_TRUE);</div><div class='del'>-		COUNT_NODE(NODE_FALSE);</div><div class='del'>-		COUNT_NODE(NODE_ERRINFO);</div><div class='del'>-		COUNT_NODE(NODE_DEFINED);</div><div class='del'>-		COUNT_NODE(NODE_POSTEXE);</div><div class='del'>-		COUNT_NODE(NODE_DSYM);</div><div class='del'>-		COUNT_NODE(NODE_ATTRASGN);</div><div class='del'>-		COUNT_NODE(NODE_LAMBDA);</div><div class='add'>+                COUNT_NODE(NODE_SCOPE);</div><div class='add'>+                COUNT_NODE(NODE_BLOCK);</div><div class='add'>+                COUNT_NODE(NODE_IF);</div><div class='add'>+                COUNT_NODE(NODE_UNLESS);</div><div class='add'>+                COUNT_NODE(NODE_CASE);</div><div class='add'>+                COUNT_NODE(NODE_CASE2);</div><div class='add'>+                COUNT_NODE(NODE_CASE3);</div><div class='add'>+                COUNT_NODE(NODE_WHEN);</div><div class='add'>+                COUNT_NODE(NODE_IN);</div><div class='add'>+                COUNT_NODE(NODE_WHILE);</div><div class='add'>+                COUNT_NODE(NODE_UNTIL);</div><div class='add'>+                COUNT_NODE(NODE_ITER);</div><div class='add'>+                COUNT_NODE(NODE_FOR);</div><div class='add'>+                COUNT_NODE(NODE_FOR_MASGN);</div><div class='add'>+                COUNT_NODE(NODE_BREAK);</div><div class='add'>+                COUNT_NODE(NODE_NEXT);</div><div class='add'>+                COUNT_NODE(NODE_REDO);</div><div class='add'>+                COUNT_NODE(NODE_RETRY);</div><div class='add'>+                COUNT_NODE(NODE_BEGIN);</div><div class='add'>+                COUNT_NODE(NODE_RESCUE);</div><div class='add'>+                COUNT_NODE(NODE_RESBODY);</div><div class='add'>+                COUNT_NODE(NODE_ENSURE);</div><div class='add'>+                COUNT_NODE(NODE_AND);</div><div class='add'>+                COUNT_NODE(NODE_OR);</div><div class='add'>+                COUNT_NODE(NODE_MASGN);</div><div class='add'>+                COUNT_NODE(NODE_LASGN);</div><div class='add'>+                COUNT_NODE(NODE_DASGN);</div><div class='add'>+                COUNT_NODE(NODE_GASGN);</div><div class='add'>+                COUNT_NODE(NODE_IASGN);</div><div class='add'>+                COUNT_NODE(NODE_CDECL);</div><div class='add'>+                COUNT_NODE(NODE_CVASGN);</div><div class='add'>+                COUNT_NODE(NODE_OP_ASGN1);</div><div class='add'>+                COUNT_NODE(NODE_OP_ASGN2);</div><div class='add'>+                COUNT_NODE(NODE_OP_ASGN_AND);</div><div class='add'>+                COUNT_NODE(NODE_OP_ASGN_OR);</div><div class='add'>+                COUNT_NODE(NODE_OP_CDECL);</div><div class='add'>+                COUNT_NODE(NODE_CALL);</div><div class='add'>+                COUNT_NODE(NODE_OPCALL);</div><div class='add'>+                COUNT_NODE(NODE_FCALL);</div><div class='add'>+                COUNT_NODE(NODE_VCALL);</div><div class='add'>+                COUNT_NODE(NODE_QCALL);</div><div class='add'>+                COUNT_NODE(NODE_SUPER);</div><div class='add'>+                COUNT_NODE(NODE_ZSUPER);</div><div class='add'>+                COUNT_NODE(NODE_LIST);</div><div class='add'>+                COUNT_NODE(NODE_ZLIST);</div><div class='add'>+                COUNT_NODE(NODE_VALUES);</div><div class='add'>+                COUNT_NODE(NODE_HASH);</div><div class='add'>+                COUNT_NODE(NODE_RETURN);</div><div class='add'>+                COUNT_NODE(NODE_YIELD);</div><div class='add'>+                COUNT_NODE(NODE_LVAR);</div><div class='add'>+                COUNT_NODE(NODE_DVAR);</div><div class='add'>+                COUNT_NODE(NODE_GVAR);</div><div class='add'>+                COUNT_NODE(NODE_IVAR);</div><div class='add'>+                COUNT_NODE(NODE_CONST);</div><div class='add'>+                COUNT_NODE(NODE_CVAR);</div><div class='add'>+                COUNT_NODE(NODE_NTH_REF);</div><div class='add'>+                COUNT_NODE(NODE_BACK_REF);</div><div class='add'>+                COUNT_NODE(NODE_MATCH);</div><div class='add'>+                COUNT_NODE(NODE_MATCH2);</div><div class='add'>+                COUNT_NODE(NODE_MATCH3);</div><div class='add'>+                COUNT_NODE(NODE_LIT);</div><div class='add'>+                COUNT_NODE(NODE_STR);</div><div class='add'>+                COUNT_NODE(NODE_DSTR);</div><div class='add'>+                COUNT_NODE(NODE_XSTR);</div><div class='add'>+                COUNT_NODE(NODE_DXSTR);</div><div class='add'>+                COUNT_NODE(NODE_EVSTR);</div><div class='add'>+                COUNT_NODE(NODE_DREGX);</div><div class='add'>+                COUNT_NODE(NODE_ONCE);</div><div class='add'>+                COUNT_NODE(NODE_ARGS);</div><div class='add'>+                COUNT_NODE(NODE_ARGS_AUX);</div><div class='add'>+                COUNT_NODE(NODE_OPT_ARG);</div><div class='add'>+                COUNT_NODE(NODE_KW_ARG);</div><div class='add'>+                COUNT_NODE(NODE_POSTARG);</div><div class='add'>+                COUNT_NODE(NODE_ARGSCAT);</div><div class='add'>+                COUNT_NODE(NODE_ARGSPUSH);</div><div class='add'>+                COUNT_NODE(NODE_SPLAT);</div><div class='add'>+                COUNT_NODE(NODE_BLOCK_PASS);</div><div class='add'>+                COUNT_NODE(NODE_DEFN);</div><div class='add'>+                COUNT_NODE(NODE_DEFS);</div><div class='add'>+                COUNT_NODE(NODE_ALIAS);</div><div class='add'>+                COUNT_NODE(NODE_VALIAS);</div><div class='add'>+                COUNT_NODE(NODE_UNDEF);</div><div class='add'>+                COUNT_NODE(NODE_CLASS);</div><div class='add'>+                COUNT_NODE(NODE_MODULE);</div><div class='add'>+                COUNT_NODE(NODE_SCLASS);</div><div class='add'>+                COUNT_NODE(NODE_COLON2);</div><div class='add'>+                COUNT_NODE(NODE_COLON3);</div><div class='add'>+                COUNT_NODE(NODE_DOT2);</div><div class='add'>+                COUNT_NODE(NODE_DOT3);</div><div class='add'>+                COUNT_NODE(NODE_FLIP2);</div><div class='add'>+                COUNT_NODE(NODE_FLIP3);</div><div class='add'>+                COUNT_NODE(NODE_SELF);</div><div class='add'>+                COUNT_NODE(NODE_NIL);</div><div class='add'>+                COUNT_NODE(NODE_TRUE);</div><div class='add'>+                COUNT_NODE(NODE_FALSE);</div><div class='add'>+                COUNT_NODE(NODE_ERRINFO);</div><div class='add'>+                COUNT_NODE(NODE_DEFINED);</div><div class='add'>+                COUNT_NODE(NODE_POSTEXE);</div><div class='add'>+                COUNT_NODE(NODE_DSYM);</div><div class='add'>+                COUNT_NODE(NODE_ATTRASGN);</div><div class='add'>+                COUNT_NODE(NODE_LAMBDA);</div><div class='add'>+                COUNT_NODE(NODE_ARYPTN);</div><div class='add'>+                COUNT_NODE(NODE_FNDPTN);</div><div class='add'>+                COUNT_NODE(NODE_HSHPTN);</div><div class='add'>+                COUNT_NODE(NODE_ERROR);</div><div class='ctx'> #undef COUNT_NODE</div><div class='del'>-	      case NODE_LAST: break;</div><div class='del'>-	    }</div><div class='del'>-	    UNREACHABLE;</div><div class='del'>-	  set:</div><div class='del'>-	    rb_hash_aset(hash, node, SIZET2NUM(nodes[i]));</div><div class='del'>-	}</div><div class='add'>+              case NODE_LAST: break;</div><div class='add'>+            }</div><div class='add'>+            UNREACHABLE;</div><div class='add'>+          set:</div><div class='add'>+            rb_hash_aset(hash, node, SIZET2NUM(nodes[i]));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-cto_i(void *vstart, void *vend, size_t stride, void *data)</div><div class='add'>+static void</div><div class='add'>+cto_i(VALUE v, void *data)</div><div class='ctx'> {</div><div class='ctx'>     VALUE hash = (VALUE)data;</div><div class='del'>-    VALUE v = (VALUE)vstart;</div><div class='del'>-</div><div class='del'>-    for (; v != (VALUE)vend; v += stride) {</div><div class='del'>-	if (RBASIC(v)-&gt;flags &amp;&amp; BUILTIN_TYPE(v) == T_DATA) {</div><div class='del'>-	    VALUE counter;</div><div class='del'>-	    VALUE key = RBASIC(v)-&gt;klass;</div><div class='del'>-</div><div class='del'>-	    if (key == 0) {</div><div class='del'>-		const char *name = rb_objspace_data_type_name(v);</div><div class='del'>-		if (name == 0) name = "unknown";</div><div class='del'>-		key = ID2SYM(rb_intern(name));</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    counter = rb_hash_aref(hash, key);</div><div class='del'>-	    if (NIL_P(counter)) {</div><div class='del'>-		counter = INT2FIX(1);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		counter = INT2FIX(FIX2INT(counter) + 1);</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    rb_hash_aset(hash, key, counter);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='ctx'> </div><div class='del'>-    return 0;</div><div class='add'>+    if (BUILTIN_TYPE(v) == T_DATA) {</div><div class='add'>+        VALUE counter;</div><div class='add'>+        VALUE key = RBASIC(v)-&gt;klass;</div><div class='add'>+</div><div class='add'>+        if (key == 0) {</div><div class='add'>+            const char *name = rb_objspace_data_type_name(v);</div><div class='add'>+            if (name == 0) name = "unknown";</div><div class='add'>+            key = ID2SYM(rb_intern(name));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        counter = rb_hash_aref(hash, key);</div><div class='add'>+        if (NIL_P(counter)) {</div><div class='add'>+            counter = INT2FIX(1);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            counter = INT2FIX(FIX2INT(counter) + 1);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        rb_hash_aset(hash, key, counter);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -550,37 +568,32 @@ static VALUE</div><div class='ctx'> count_tdata_objects(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     VALUE hash = setup_hash(argc, argv);</div><div class='del'>-    rb_objspace_each_objects(cto_i, (void *)hash);</div><div class='add'>+    each_object_with_flags(cto_i, (void *)hash);</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static ID imemo_type_ids[IMEMO_MASK+1];</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-count_imemo_objects_i(void *vstart, void *vend, size_t stride, void *data)</div><div class='add'>+static void</div><div class='add'>+count_imemo_objects_i(VALUE v, void *data)</div><div class='ctx'> {</div><div class='ctx'>     VALUE hash = (VALUE)data;</div><div class='del'>-    VALUE v = (VALUE)vstart;</div><div class='ctx'> </div><div class='del'>-    for (; v != (VALUE)vend; v += stride) {</div><div class='del'>-	if (RBASIC(v)-&gt;flags &amp;&amp; BUILTIN_TYPE(v) == T_IMEMO) {</div><div class='del'>-	    VALUE counter;</div><div class='del'>-	    VALUE key = ID2SYM(imemo_type_ids[imemo_type(v)]);</div><div class='add'>+    if (BUILTIN_TYPE(v) == T_IMEMO) {</div><div class='add'>+        VALUE counter;</div><div class='add'>+        VALUE key = ID2SYM(imemo_type_ids[imemo_type(v)]);</div><div class='ctx'> </div><div class='del'>-	    counter = rb_hash_aref(hash, key);</div><div class='add'>+        counter = rb_hash_aref(hash, key);</div><div class='ctx'> </div><div class='del'>-	    if (NIL_P(counter)) {</div><div class='del'>-		counter = INT2FIX(1);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		counter = INT2FIX(FIX2INT(counter) + 1);</div><div class='del'>-	    }</div><div class='add'>+        if (NIL_P(counter)) {</div><div class='add'>+            counter = INT2FIX(1);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            counter = INT2FIX(FIX2INT(counter) + 1);</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	    rb_hash_aset(hash, key, counter);</div><div class='del'>-	}</div><div class='add'>+        rb_hash_aset(hash, key, counter);</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -617,19 +630,25 @@ count_imemo_objects(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     VALUE hash = setup_hash(argc, argv);</div><div class='ctx'> </div><div class='ctx'>     if (imemo_type_ids[0] == 0) {</div><div class='del'>-	imemo_type_ids[0] = rb_intern("imemo_none");</div><div class='del'>-	imemo_type_ids[1] = rb_intern("imemo_cref");</div><div class='del'>-	imemo_type_ids[2] = rb_intern("imemo_svar");</div><div class='del'>-	imemo_type_ids[3] = rb_intern("imemo_throw_data");</div><div class='del'>-	imemo_type_ids[4] = rb_intern("imemo_ifunc");</div><div class='del'>-	imemo_type_ids[5] = rb_intern("imemo_memo");</div><div class='del'>-	imemo_type_ids[6] = rb_intern("imemo_ment");</div><div class='del'>-	imemo_type_ids[7] = rb_intern("imemo_iseq");</div><div class='del'>-	imemo_type_ids[8] = rb_intern("imemo_tmpbuf");</div><div class='del'>-	imemo_type_ids[9] = rb_intern("imemo_parser_strterm");</div><div class='add'>+#define INIT_IMEMO_TYPE_ID(n) (imemo_type_ids[n] = rb_intern_const(#n))</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_env);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_cref);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_svar);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_throw_data);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_ifunc);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_memo);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_ment);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_iseq);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_tmpbuf);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_ast);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_parser_strterm);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_callinfo);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_callcache);</div><div class='add'>+        INIT_IMEMO_TYPE_ID(imemo_constcache);</div><div class='add'>+#undef INIT_IMEMO_TYPE_ID</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    rb_objspace_each_objects(count_imemo_objects_i, (void *)hash);</div><div class='add'>+    each_object_with_flags(count_imemo_objects_i, (void *)hash);</div><div class='ctx'> </div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='hunk'>@@ -653,12 +672,12 @@ static const rb_data_type_t iow_data_type = {</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static VALUE rb_mInternalObjectWrapper;</div><div class='add'>+static VALUE rb_cInternalObjectWrapper;</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> iow_newobj(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    return TypedData_Wrap_Struct(rb_mInternalObjectWrapper, &amp;iow_data_type, (void *)obj);</div><div class='add'>+    return TypedData_Wrap_Struct(rb_cInternalObjectWrapper, &amp;iow_data_type, (void *)obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Returns the type of the internal object. */</div><div class='hunk'>@@ -688,8 +707,8 @@ iow_internal_object_id(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct rof_data {</div><div class='del'>-    st_table *refs;</div><div class='del'>-    VALUE internals;</div><div class='add'>+    VALUE refs;</div><div class='add'>+    VALUE values;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -700,11 +719,15 @@ reachable_object_from_i(VALUE obj, void *data_ptr)</div><div class='ctx'>     VALUE val = obj;</div><div class='ctx'> </div><div class='ctx'>     if (rb_objspace_markable_object_p(obj)) {</div><div class='del'>-	if (rb_objspace_internal_object_p(obj)) {</div><div class='del'>-	    val = iow_newobj(obj);</div><div class='del'>-	    rb_ary_push(data-&gt;internals, val);</div><div class='del'>-	}</div><div class='del'>-	st_insert(data-&gt;refs, key, val);</div><div class='add'>+        if (NIL_P(rb_hash_lookup(data-&gt;refs, key))) {</div><div class='add'>+            rb_hash_aset(data-&gt;refs, key, Qtrue);</div><div class='add'>+</div><div class='add'>+            if (rb_objspace_internal_object_p(obj)) {</div><div class='add'>+                val = iow_newobj(obj);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            rb_ary_push(data-&gt;values, val);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -762,23 +785,21 @@ static VALUE</div><div class='ctx'> reachable_objects_from(VALUE self, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (rb_objspace_markable_object_p(obj)) {</div><div class='del'>-	VALUE ret = rb_ary_new();</div><div class='del'>-	struct rof_data data;</div><div class='add'>+        struct rof_data data;</div><div class='ctx'> </div><div class='del'>-	if (rb_typeddata_is_kind_of(obj, &amp;iow_data_type)) {</div><div class='del'>-	    obj = (VALUE)DATA_PTR(obj);</div><div class='del'>-	}</div><div class='add'>+        if (rb_typeddata_is_kind_of(obj, &amp;iow_data_type)) {</div><div class='add'>+            obj = (VALUE)DATA_PTR(obj);</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	data.refs = st_init_numtable();</div><div class='del'>-	data.internals = rb_ary_new();</div><div class='add'>+        data.refs = rb_obj_hide(rb_ident_hash_new());</div><div class='add'>+        data.values = rb_ary_new();</div><div class='ctx'> </div><div class='del'>-	rb_objspace_reachable_objects_from(obj, reachable_object_from_i, &amp;data);</div><div class='add'>+        rb_objspace_reachable_objects_from(obj, reachable_object_from_i, &amp;data);</div><div class='ctx'> </div><div class='del'>-	st_foreach(data.refs, collect_values, (st_data_t)ret);</div><div class='del'>-	return ret;</div><div class='add'>+        return data.values;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -797,26 +818,26 @@ reachable_object_from_root_i(const char *category, VALUE obj, void *ptr)</div><div class='ctx'>     VALUE category_objects;</div><div class='ctx'> </div><div class='ctx'>     if (category == data-&gt;last_category) {</div><div class='del'>-	category_str = data-&gt;last_category_str;</div><div class='del'>-	category_objects = data-&gt;last_category_objects;</div><div class='add'>+        category_str = data-&gt;last_category_str;</div><div class='add'>+        category_objects = data-&gt;last_category_objects;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	data-&gt;last_category = category;</div><div class='del'>-	category_str = data-&gt;last_category_str = rb_str_new2(category);</div><div class='del'>-	category_objects = data-&gt;last_category_objects = rb_ident_hash_new();</div><div class='del'>-	if (!NIL_P(rb_hash_lookup(data-&gt;categories, category_str))) {</div><div class='del'>-	    rb_bug("reachable_object_from_root_i: category should insert at once");</div><div class='del'>-	}</div><div class='del'>-	rb_hash_aset(data-&gt;categories, category_str, category_objects);</div><div class='add'>+        data-&gt;last_category = category;</div><div class='add'>+        category_str = data-&gt;last_category_str = rb_str_new2(category);</div><div class='add'>+        category_objects = data-&gt;last_category_objects = rb_ident_hash_new();</div><div class='add'>+        if (!NIL_P(rb_hash_lookup(data-&gt;categories, category_str))) {</div><div class='add'>+            rb_bug("reachable_object_from_root_i: category should insert at once");</div><div class='add'>+        }</div><div class='add'>+        rb_hash_aset(data-&gt;categories, category_str, category_objects);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (rb_objspace_markable_object_p(obj) &amp;&amp;</div><div class='del'>-	obj != data-&gt;categories &amp;&amp;</div><div class='del'>-	obj != data-&gt;last_category_objects) {</div><div class='del'>-	if (rb_objspace_internal_object_p(obj)) {</div><div class='del'>-	    obj = iow_newobj(obj);</div><div class='del'>-	}</div><div class='del'>-	rb_hash_aset(category_objects, obj, obj);</div><div class='add'>+        obj != data-&gt;categories &amp;&amp;</div><div class='add'>+        obj != data-&gt;last_category_objects) {</div><div class='add'>+        if (rb_objspace_internal_object_p(obj)) {</div><div class='add'>+            obj = iow_newobj(obj);</div><div class='add'>+        }</div><div class='add'>+        rb_hash_aset(category_objects, obj, obj);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -852,13 +873,14 @@ static VALUE</div><div class='ctx'> wrap_klass_iow(VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     if (!RTEST(klass)) {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='del'>-    else if (RB_TYPE_P(klass, T_ICLASS)) {</div><div class='del'>-	return iow_newobj(klass);</div><div class='add'>+    else if (RB_TYPE_P(klass, T_ICLASS) ||</div><div class='add'>+             CLASS_OF(klass) == Qfalse /* hidden object */) {</div><div class='add'>+        return iow_newobj(klass);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return klass;</div><div class='add'>+        return klass;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -877,11 +899,16 @@ objspace_internal_class_of(VALUE self, VALUE obj)</div><div class='ctx'>     VALUE klass;</div><div class='ctx'> </div><div class='ctx'>     if (rb_typeddata_is_kind_of(obj, &amp;iow_data_type)) {</div><div class='del'>-	obj = (VALUE)DATA_PTR(obj);</div><div class='add'>+        obj = (VALUE)DATA_PTR(obj);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    klass = CLASS_OF(obj);</div><div class='del'>-    return wrap_klass_iow(klass);</div><div class='add'>+    if (RB_TYPE_P(obj, T_IMEMO)) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        klass = CLASS_OF(obj);</div><div class='add'>+        return wrap_klass_iow(klass);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -899,17 +926,17 @@ objspace_internal_super_of(VALUE self, VALUE obj)</div><div class='ctx'>     VALUE super;</div><div class='ctx'> </div><div class='ctx'>     if (rb_typeddata_is_kind_of(obj, &amp;iow_data_type)) {</div><div class='del'>-	obj = (VALUE)DATA_PTR(obj);</div><div class='add'>+        obj = (VALUE)DATA_PTR(obj);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     switch (OBJ_BUILTIN_TYPE(obj)) {</div><div class='ctx'>       case T_MODULE:</div><div class='ctx'>       case T_CLASS:</div><div class='ctx'>       case T_ICLASS:</div><div class='del'>-	super = RCLASS_SUPER(obj);</div><div class='del'>-	break;</div><div class='add'>+        super = RCLASS_SUPER(obj);</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	rb_raise(rb_eArgError, "class or module is expected");</div><div class='add'>+        rb_raise(rb_eArgError, "class or module is expected");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return wrap_klass_iow(super);</div><div class='hunk'>@@ -967,10 +994,11 @@ Init_objspace(void)</div><div class='ctx'>      *</div><div class='ctx'>      * You can use the #type method to check the type of the internal object.</div><div class='ctx'>      */</div><div class='del'>-    rb_mInternalObjectWrapper = rb_define_class_under(rb_mObjSpace, "InternalObjectWrapper", rb_cObject);</div><div class='del'>-    rb_define_method(rb_mInternalObjectWrapper, "type", iow_type, 0);</div><div class='del'>-    rb_define_method(rb_mInternalObjectWrapper, "inspect", iow_inspect, 0);</div><div class='del'>-    rb_define_method(rb_mInternalObjectWrapper, "internal_object_id", iow_internal_object_id, 0);</div><div class='add'>+    rb_cInternalObjectWrapper = rb_define_class_under(rb_mObjSpace, "InternalObjectWrapper", rb_cObject);</div><div class='add'>+    rb_undef_alloc_func(rb_cInternalObjectWrapper);</div><div class='add'>+    rb_define_method(rb_cInternalObjectWrapper, "type", iow_type, 0);</div><div class='add'>+    rb_define_method(rb_cInternalObjectWrapper, "inspect", iow_inspect, 0);</div><div class='add'>+    rb_define_method(rb_cInternalObjectWrapper, "internal_object_id", iow_internal_object_id, 0);</div><div class='ctx'> </div><div class='ctx'>     Init_object_tracing(rb_mObjSpace);</div><div class='ctx'>     Init_objspace_dump(rb_mObjSpace);</div><div class='head'>diff --git a/ext/objspace/objspace_dump.c b/ext/objspace/objspace_dump.c<br/>index 602cbadef5..c3cc9a1e7b 100644<br/>--- a/<a href='/ruby.git/tree/ext/objspace/objspace_dump.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/objspace/objspace_dump.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/objspace/objspace_dump.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/objspace/objspace_dump.c</a></div><div class='hunk'>@@ -12,43 +12,177 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby/io.h"</div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "ruby/debug.h"</div><div class='ctx'> #include "gc.h"</div><div class='add'>+#include "id_table.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/array.h"</div><div class='add'>+#include "internal/class.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/string.h"</div><div class='add'>+#include "internal/sanitizers.h"</div><div class='add'>+#include "symbol.h"</div><div class='add'>+#include "shape.h"</div><div class='ctx'> #include "node.h"</div><div class='del'>-#include "vm_core.h"</div><div class='ctx'> #include "objspace.h"</div><div class='add'>+#include "ruby/debug.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "ruby/io.h"</div><div class='add'>+#include "vm_core.h"</div><div class='ctx'> </div><div class='del'>-static VALUE sym_output, sym_stdout, sym_string, sym_file;</div><div class='del'>-static VALUE sym_full;</div><div class='add'>+RUBY_EXTERN const char ruby_hexdigits[];</div><div class='add'>+</div><div class='add'>+#define BUFFER_CAPACITY 4096</div><div class='ctx'> </div><div class='ctx'> struct dump_config {</div><div class='ctx'>     VALUE type;</div><div class='del'>-    FILE *stream;</div><div class='add'>+    VALUE stream;</div><div class='ctx'>     VALUE string;</div><div class='del'>-    int roots;</div><div class='ctx'>     const char *root_category;</div><div class='ctx'>     VALUE cur_obj;</div><div class='ctx'>     VALUE cur_obj_klass;</div><div class='add'>+    size_t cur_page_slot_size;</div><div class='ctx'>     size_t cur_obj_references;</div><div class='del'>-    int full_heap;</div><div class='add'>+    unsigned int roots: 1;</div><div class='add'>+    unsigned int full_heap: 1;</div><div class='add'>+    unsigned int partial_dump;</div><div class='add'>+    size_t since;</div><div class='add'>+    size_t shapes_since;</div><div class='add'>+    unsigned long buffer_len;</div><div class='add'>+    char buffer[BUFFER_CAPACITY];</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-PRINTF_ARGS(static void dump_append(struct dump_config *, const char *, ...), 2, 3);</div><div class='ctx'> static void</div><div class='del'>-dump_append(struct dump_config *dc, const char *format, ...)</div><div class='add'>+dump_flush(struct dump_config *dc)</div><div class='add'>+{</div><div class='add'>+    if (dc-&gt;buffer_len) {</div><div class='add'>+        if (dc-&gt;stream) {</div><div class='add'>+            size_t written = rb_io_bufwrite(dc-&gt;stream, dc-&gt;buffer, dc-&gt;buffer_len);</div><div class='add'>+            if (written &lt; dc-&gt;buffer_len) {</div><div class='add'>+                MEMMOVE(dc-&gt;buffer, dc-&gt;buffer + written, char, dc-&gt;buffer_len - written);</div><div class='add'>+                dc-&gt;buffer_len -= written;</div><div class='add'>+                return;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else if (dc-&gt;string) {</div><div class='add'>+            rb_str_cat(dc-&gt;string, dc-&gt;buffer, dc-&gt;buffer_len);</div><div class='add'>+        }</div><div class='add'>+        dc-&gt;buffer_len = 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+buffer_ensure_capa(struct dump_config *dc, unsigned long requested)</div><div class='ctx'> {</div><div class='del'>-    va_list vl;</div><div class='del'>-    va_start(vl, format);</div><div class='add'>+    RUBY_ASSERT(requested &lt;= BUFFER_CAPACITY);</div><div class='add'>+    if (requested + dc-&gt;buffer_len &gt;= BUFFER_CAPACITY) {</div><div class='add'>+        dump_flush(dc);</div><div class='add'>+        if (requested + dc-&gt;buffer_len &gt;= BUFFER_CAPACITY) {</div><div class='add'>+            rb_raise(rb_eIOError, "full buffer");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (dc-&gt;stream) {</div><div class='del'>-	vfprintf(dc-&gt;stream, format, vl);</div><div class='add'>+static void</div><div class='add'>+buffer_append(struct dump_config *dc, const char *cstr, unsigned long len)</div><div class='add'>+{</div><div class='add'>+    if (LIKELY(len &gt; 0)) {</div><div class='add'>+        buffer_ensure_capa(dc, len);</div><div class='add'>+        MEMCPY(dc-&gt;buffer + dc-&gt;buffer_len, cstr, char, len);</div><div class='add'>+        dc-&gt;buffer_len += len;</div><div class='ctx'>     }</div><div class='del'>-    else if (dc-&gt;string)</div><div class='del'>-	rb_str_vcatf(dc-&gt;string, format, vl);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# define dump_append(dc, str) buffer_append(dc, (str), (long)strlen(str))</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dump_append_ld(struct dump_config *dc, const long number)</div><div class='add'>+{</div><div class='add'>+    const unsigned int width = DECIMAL_SIZE_OF_BITS(sizeof(number) * CHAR_BIT - 1) + 2;</div><div class='add'>+    buffer_ensure_capa(dc, width);</div><div class='add'>+    unsigned long required = snprintf(dc-&gt;buffer + dc-&gt;buffer_len, width, "%ld", number);</div><div class='add'>+    RUBY_ASSERT(required &lt;= width);</div><div class='add'>+    dc-&gt;buffer_len += required;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dump_append_lu(struct dump_config *dc, const unsigned long number)</div><div class='add'>+{</div><div class='add'>+    const unsigned int width = DECIMAL_SIZE_OF_BITS(sizeof(number) * CHAR_BIT) + 1;</div><div class='add'>+    buffer_ensure_capa(dc, width);</div><div class='add'>+    unsigned long required = snprintf(dc-&gt;buffer + dc-&gt;buffer_len, width, "%lu", number);</div><div class='add'>+    RUBY_ASSERT(required &lt;= width);</div><div class='add'>+    dc-&gt;buffer_len += required;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dump_append_g(struct dump_config *dc, const double number)</div><div class='add'>+{</div><div class='add'>+    unsigned long capa_left = BUFFER_CAPACITY - dc-&gt;buffer_len;</div><div class='add'>+    unsigned long required = snprintf(dc-&gt;buffer + dc-&gt;buffer_len, capa_left, "%#g", number);</div><div class='ctx'> </div><div class='del'>-    va_end(vl);</div><div class='add'>+    if (required &gt;= capa_left) {</div><div class='add'>+        buffer_ensure_capa(dc, required);</div><div class='add'>+        capa_left = BUFFER_CAPACITY - dc-&gt;buffer_len;</div><div class='add'>+        snprintf(dc-&gt;buffer + dc-&gt;buffer_len, capa_left, "%#g", number);</div><div class='add'>+    }</div><div class='add'>+    dc-&gt;buffer_len += required;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dump_append_d(struct dump_config *dc, const int number)</div><div class='add'>+{</div><div class='add'>+    const unsigned int width = DECIMAL_SIZE_OF_BITS(sizeof(number) * CHAR_BIT - 1) + 2;</div><div class='add'>+    buffer_ensure_capa(dc, width);</div><div class='add'>+    unsigned long required = snprintf(dc-&gt;buffer + dc-&gt;buffer_len, width, "%d", number);</div><div class='add'>+    RUBY_ASSERT(required &lt;= width);</div><div class='add'>+    dc-&gt;buffer_len += required;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dump_append_sizet(struct dump_config *dc, const size_t number)</div><div class='add'>+{</div><div class='add'>+    const unsigned int width = DECIMAL_SIZE_OF_BITS(sizeof(number) * CHAR_BIT) + 1;</div><div class='add'>+    buffer_ensure_capa(dc, width);</div><div class='add'>+    unsigned long required = snprintf(dc-&gt;buffer + dc-&gt;buffer_len, width, "%"PRIuSIZE, number);</div><div class='add'>+    RUBY_ASSERT(required &lt;= width);</div><div class='add'>+    dc-&gt;buffer_len += required;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dump_append_c(struct dump_config *dc, unsigned char c)</div><div class='add'>+{</div><div class='add'>+    if (c &lt;= 0x1f) {</div><div class='add'>+        const unsigned int width = rb_strlen_lit("\\u0000") + 1;</div><div class='add'>+        buffer_ensure_capa(dc, width);</div><div class='add'>+        unsigned long required = snprintf(dc-&gt;buffer + dc-&gt;buffer_len, width, "\\u00%02x", c);</div><div class='add'>+        RUBY_ASSERT(required &lt;= width);</div><div class='add'>+        dc-&gt;buffer_len += required;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        buffer_ensure_capa(dc, 1);</div><div class='add'>+        dc-&gt;buffer[dc-&gt;buffer_len] = c;</div><div class='add'>+        dc-&gt;buffer_len++;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dump_append_ref(struct dump_config *dc, VALUE ref)</div><div class='add'>+{</div><div class='add'>+    RUBY_ASSERT(ref &gt; 0);</div><div class='add'>+</div><div class='add'>+    char buffer[roomof(sizeof(VALUE) * CHAR_BIT, 4) + rb_strlen_lit("\"0x\"")];</div><div class='add'>+    char *buffer_start, *buffer_end;</div><div class='add'>+</div><div class='add'>+    buffer_start = buffer_end = &amp;buffer[sizeof(buffer)];</div><div class='add'>+    *--buffer_start = '"';</div><div class='add'>+    while (ref) {</div><div class='add'>+        *--buffer_start = ruby_hexdigits[ref &amp; 0xF];</div><div class='add'>+        ref &gt;&gt;= 4;</div><div class='add'>+    }</div><div class='add'>+    *--buffer_start = 'x';</div><div class='add'>+    *--buffer_start = '0';</div><div class='add'>+    *--buffer_start = '"';</div><div class='add'>+    buffer_append(dc, buffer_start, buffer_end - buffer_start);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -60,35 +194,37 @@ dump_append_string_value(struct dump_config *dc, VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     dump_append(dc, "\"");</div><div class='ctx'>     for (i = 0, value = RSTRING_PTR(obj); i &lt; RSTRING_LEN(obj); i++) {</div><div class='del'>-	switch ((c = value[i])) {</div><div class='del'>-	  case '\\':</div><div class='del'>-	  case '"':</div><div class='del'>-	    dump_append(dc, "\\%c", c);</div><div class='del'>-	    break;</div><div class='del'>-	  case '\0':</div><div class='del'>-	    dump_append(dc, "\\u0000");</div><div class='del'>-	    break;</div><div class='del'>-	  case '\b':</div><div class='del'>-	    dump_append(dc, "\\b");</div><div class='del'>-	    break;</div><div class='del'>-	  case '\t':</div><div class='del'>-	    dump_append(dc, "\\t");</div><div class='del'>-	    break;</div><div class='del'>-	  case '\f':</div><div class='del'>-	    dump_append(dc, "\\f");</div><div class='del'>-	    break;</div><div class='del'>-	  case '\n':</div><div class='del'>-	    dump_append(dc, "\\n");</div><div class='del'>-	    break;</div><div class='del'>-	  case '\r':</div><div class='del'>-	    dump_append(dc, "\\r");</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    if (c &lt;= 0x1f)</div><div class='del'>-		dump_append(dc, "\\u%04d", c);</div><div class='del'>-	    else</div><div class='del'>-		dump_append(dc, "%c", c);</div><div class='del'>-	}</div><div class='add'>+        switch ((c = value[i])) {</div><div class='add'>+          case '\\':</div><div class='add'>+            dump_append(dc, "\\\\");</div><div class='add'>+            break;</div><div class='add'>+          case '"':</div><div class='add'>+            dump_append(dc, "\\\"");</div><div class='add'>+            break;</div><div class='add'>+          case '\0':</div><div class='add'>+            dump_append(dc, "\\u0000");</div><div class='add'>+            break;</div><div class='add'>+          case '\b':</div><div class='add'>+            dump_append(dc, "\\b");</div><div class='add'>+            break;</div><div class='add'>+          case '\t':</div><div class='add'>+            dump_append(dc, "\\t");</div><div class='add'>+            break;</div><div class='add'>+          case '\f':</div><div class='add'>+            dump_append(dc, "\\f");</div><div class='add'>+            break;</div><div class='add'>+          case '\n':</div><div class='add'>+            dump_append(dc, "\\n");</div><div class='add'>+            break;</div><div class='add'>+          case '\r':</div><div class='add'>+            dump_append(dc, "\\r");</div><div class='add'>+            break;</div><div class='add'>+          case '\177':</div><div class='add'>+            dump_append(dc, "\\u007f");</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            dump_append_c(dc, c);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     dump_append(dc, "\"");</div><div class='ctx'> }</div><div class='hunk'>@@ -106,33 +242,34 @@ obj_type(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     switch (BUILTIN_TYPE(obj)) {</div><div class='ctx'> #define CASE_TYPE(type) case T_##type: return #type</div><div class='del'>-	CASE_TYPE(NONE);</div><div class='del'>-	CASE_TYPE(NIL);</div><div class='del'>-	CASE_TYPE(OBJECT);</div><div class='del'>-	CASE_TYPE(CLASS);</div><div class='del'>-	CASE_TYPE(ICLASS);</div><div class='del'>-	CASE_TYPE(MODULE);</div><div class='del'>-	CASE_TYPE(FLOAT);</div><div class='del'>-	CASE_TYPE(STRING);</div><div class='del'>-	CASE_TYPE(REGEXP);</div><div class='del'>-	CASE_TYPE(ARRAY);</div><div class='del'>-	CASE_TYPE(HASH);</div><div class='del'>-	CASE_TYPE(STRUCT);</div><div class='del'>-	CASE_TYPE(BIGNUM);</div><div class='del'>-	CASE_TYPE(FILE);</div><div class='del'>-	CASE_TYPE(FIXNUM);</div><div class='del'>-	CASE_TYPE(TRUE);</div><div class='del'>-	CASE_TYPE(FALSE);</div><div class='del'>-	CASE_TYPE(DATA);</div><div class='del'>-	CASE_TYPE(MATCH);</div><div class='del'>-	CASE_TYPE(SYMBOL);</div><div class='del'>-	CASE_TYPE(RATIONAL);</div><div class='del'>-	CASE_TYPE(COMPLEX);</div><div class='del'>-	CASE_TYPE(IMEMO);</div><div class='del'>-	CASE_TYPE(UNDEF);</div><div class='del'>-	CASE_TYPE(NODE);</div><div class='del'>-	CASE_TYPE(ZOMBIE);</div><div class='add'>+        CASE_TYPE(NONE);</div><div class='add'>+        CASE_TYPE(NIL);</div><div class='add'>+        CASE_TYPE(OBJECT);</div><div class='add'>+        CASE_TYPE(CLASS);</div><div class='add'>+        CASE_TYPE(ICLASS);</div><div class='add'>+        CASE_TYPE(MODULE);</div><div class='add'>+        CASE_TYPE(FLOAT);</div><div class='add'>+        CASE_TYPE(STRING);</div><div class='add'>+        CASE_TYPE(REGEXP);</div><div class='add'>+        CASE_TYPE(ARRAY);</div><div class='add'>+        CASE_TYPE(HASH);</div><div class='add'>+        CASE_TYPE(STRUCT);</div><div class='add'>+        CASE_TYPE(BIGNUM);</div><div class='add'>+        CASE_TYPE(FILE);</div><div class='add'>+        CASE_TYPE(FIXNUM);</div><div class='add'>+        CASE_TYPE(TRUE);</div><div class='add'>+        CASE_TYPE(FALSE);</div><div class='add'>+        CASE_TYPE(DATA);</div><div class='add'>+        CASE_TYPE(MATCH);</div><div class='add'>+        CASE_TYPE(SYMBOL);</div><div class='add'>+        CASE_TYPE(RATIONAL);</div><div class='add'>+        CASE_TYPE(COMPLEX);</div><div class='add'>+        CASE_TYPE(IMEMO);</div><div class='add'>+        CASE_TYPE(UNDEF);</div><div class='add'>+        CASE_TYPE(NODE);</div><div class='add'>+        CASE_TYPE(ZOMBIE);</div><div class='ctx'> #undef CASE_TYPE</div><div class='add'>+      default: break;</div><div class='ctx'>     }</div><div class='ctx'>     return "UNKNOWN";</div><div class='ctx'> }</div><div class='hunk'>@@ -141,25 +278,25 @@ static void</div><div class='ctx'> dump_append_special_const(struct dump_config *dc, VALUE value)</div><div class='ctx'> {</div><div class='ctx'>     if (value == Qtrue) {</div><div class='del'>-	dump_append(dc, "true");</div><div class='add'>+        dump_append(dc, "true");</div><div class='ctx'>     }</div><div class='ctx'>     else if (value == Qfalse) {</div><div class='del'>-	dump_append(dc, "false");</div><div class='add'>+        dump_append(dc, "false");</div><div class='ctx'>     }</div><div class='ctx'>     else if (value == Qnil) {</div><div class='del'>-	dump_append(dc, "null");</div><div class='add'>+        dump_append(dc, "null");</div><div class='ctx'>     }</div><div class='ctx'>     else if (FIXNUM_P(value)) {</div><div class='del'>-	dump_append(dc, "%ld", FIX2LONG(value));</div><div class='add'>+        dump_append_ld(dc, FIX2LONG(value));</div><div class='ctx'>     }</div><div class='ctx'>     else if (FLONUM_P(value)) {</div><div class='del'>-	dump_append(dc, "%#g", RFLOAT_VALUE(value));</div><div class='add'>+        dump_append_g(dc, RFLOAT_VALUE(value));</div><div class='ctx'>     }</div><div class='ctx'>     else if (SYMBOL_P(value)) {</div><div class='del'>-	dump_append_symbol_value(dc, value);</div><div class='add'>+        dump_append_symbol_value(dc, value);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	dump_append(dc, "{}");</div><div class='add'>+        dump_append(dc, "{}");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -169,175 +306,304 @@ reachable_object_i(VALUE ref, void *data)</div><div class='ctx'>     struct dump_config *dc = (struct dump_config *)data;</div><div class='ctx'> </div><div class='ctx'>     if (dc-&gt;cur_obj_klass == ref)</div><div class='del'>-	return;</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='del'>-    if (dc-&gt;cur_obj_references == 0)</div><div class='del'>-        dump_append(dc, ", \"references\":[\"%#"PRIxVALUE"\"", ref);</div><div class='del'>-    else</div><div class='del'>-        dump_append(dc, ", \"%#"PRIxVALUE"\"", ref);</div><div class='add'>+    if (dc-&gt;cur_obj_references == 0) {</div><div class='add'>+        dump_append(dc, ", \"references\":[");</div><div class='add'>+        dump_append_ref(dc, ref);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        dump_append(dc, ", ");</div><div class='add'>+        dump_append_ref(dc, ref);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     dc-&gt;cur_obj_references++;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static bool</div><div class='add'>+dump_string_ascii_only(const char *str, long size)</div><div class='add'>+{</div><div class='add'>+    for (long i = 0; i &lt; size; i++) {</div><div class='add'>+        if (str[i] &amp; 0x80) {</div><div class='add'>+            return false;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> dump_append_string_content(struct dump_config *dc, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    dump_append(dc, ", \"bytesize\":%ld", RSTRING_LEN(obj));</div><div class='del'>-    if (!STR_EMBED_P(obj) &amp;&amp; !STR_SHARED_P(obj) &amp;&amp; (long)rb_str_capacity(obj) != RSTRING_LEN(obj))</div><div class='del'>-	dump_append(dc, ", \"capacity\":%"PRIuSIZE, rb_str_capacity(obj));</div><div class='add'>+    dump_append(dc, ", \"bytesize\":");</div><div class='add'>+    dump_append_ld(dc, RSTRING_LEN(obj));</div><div class='add'>+    if (!STR_EMBED_P(obj) &amp;&amp; !STR_SHARED_P(obj) &amp;&amp; (long)rb_str_capacity(obj) != RSTRING_LEN(obj)) {</div><div class='add'>+        dump_append(dc, ", \"capacity\":");</div><div class='add'>+        dump_append_sizet(dc, rb_str_capacity(obj));</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    if (is_ascii_string(obj)) {</div><div class='del'>-	dump_append(dc, ", \"value\":");</div><div class='del'>-	dump_append_string_value(dc, obj);</div><div class='add'>+    if (RSTRING_LEN(obj) &amp;&amp; rb_enc_asciicompat(rb_enc_from_index(ENCODING_GET(obj)))) {</div><div class='add'>+        int cr = ENC_CODERANGE(obj);</div><div class='add'>+        if (cr == RUBY_ENC_CODERANGE_UNKNOWN) {</div><div class='add'>+            if (dump_string_ascii_only(RSTRING_PTR(obj), RSTRING_LEN(obj))) {</div><div class='add'>+                cr = RUBY_ENC_CODERANGE_7BIT;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (cr == RUBY_ENC_CODERANGE_7BIT) {</div><div class='add'>+            dump_append(dc, ", \"value\":");</div><div class='add'>+            dump_append_string_value(dc, obj);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static const char *</div><div class='del'>-imemo_name(int imemo)</div><div class='add'>+static inline void</div><div class='add'>+dump_append_id(struct dump_config *dc, ID id)</div><div class='ctx'> {</div><div class='del'>-    switch(imemo) {</div><div class='del'>-#define TYPE_STR(t) case(imemo_##t): return #t</div><div class='del'>-	TYPE_STR(env);</div><div class='del'>-	TYPE_STR(cref);</div><div class='del'>-	TYPE_STR(svar);</div><div class='del'>-	TYPE_STR(throw_data);</div><div class='del'>-	TYPE_STR(ifunc);</div><div class='del'>-	TYPE_STR(memo);</div><div class='del'>-	TYPE_STR(ment);</div><div class='del'>-	TYPE_STR(iseq);</div><div class='del'>-	TYPE_STR(tmpbuf);</div><div class='del'>-	TYPE_STR(ast);</div><div class='del'>-	TYPE_STR(parser_strterm);</div><div class='del'>-      default:</div><div class='del'>-	return "unknown";</div><div class='del'>-#undef TYPE_STR</div><div class='add'>+    if (is_instance_id(id)) {</div><div class='add'>+        dump_append_string_value(dc, rb_sym2str(ID2SYM(id)));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        dump_append(dc, "\"ID_INTERNAL(");</div><div class='add'>+        dump_append_sizet(dc, rb_id_to_serial(id));</div><div class='add'>+        dump_append(dc, ")\"");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> dump_object(VALUE obj, struct dump_config *dc)</div><div class='ctx'> {</div><div class='ctx'>     size_t memsize;</div><div class='del'>-    struct allocation_info *ainfo;</div><div class='add'>+    struct allocation_info *ainfo = objspace_lookup_allocation_info(obj);</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     ID flags[RB_OBJ_GC_FLAGS_MAX];</div><div class='ctx'>     size_t n, i;</div><div class='ctx'> </div><div class='ctx'>     if (SPECIAL_CONST_P(obj)) {</div><div class='del'>-	dump_append_special_const(dc, obj);</div><div class='del'>-	return;</div><div class='add'>+        dump_append_special_const(dc, obj);</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     dc-&gt;cur_obj = obj;</div><div class='ctx'>     dc-&gt;cur_obj_references = 0;</div><div class='del'>-    dc-&gt;cur_obj_klass = BUILTIN_TYPE(obj) == T_NODE ? 0 : RBASIC_CLASS(obj);</div><div class='add'>+    if (BUILTIN_TYPE(obj) == T_NODE || BUILTIN_TYPE(obj) == T_IMEMO) {</div><div class='add'>+        dc-&gt;cur_obj_klass = 0;</div><div class='add'>+    } else {</div><div class='add'>+        dc-&gt;cur_obj_klass = RBASIC_CLASS(obj);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (dc-&gt;partial_dump &amp;&amp; (!ainfo || ainfo-&gt;generation &lt; dc-&gt;since)) {</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (dc-&gt;cur_obj == dc-&gt;string)</div><div class='del'>-	return;</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+    dump_append(dc, "{\"address\":");</div><div class='add'>+    dump_append_ref(dc, obj);</div><div class='add'>+</div><div class='add'>+    dump_append(dc, ", \"type\":\"");</div><div class='add'>+    dump_append(dc, obj_type(obj));</div><div class='add'>+    dump_append(dc, "\"");</div><div class='ctx'> </div><div class='del'>-    dump_append(dc, "{\"address\":\"%#"PRIxVALUE"\", \"type\":\"%s\"", obj, obj_type(obj));</div><div class='add'>+    size_t shape_id = rb_shape_get_shape_id(obj);</div><div class='add'>+    dump_append(dc, ", \"shape_id\":");</div><div class='add'>+    dump_append_sizet(dc, shape_id);</div><div class='ctx'> </div><div class='del'>-    if (dc-&gt;cur_obj_klass)</div><div class='del'>-        dump_append(dc, ", \"class\":\"%#"PRIxVALUE"\"", dc-&gt;cur_obj_klass);</div><div class='add'>+    dump_append(dc, ", \"slot_size\":");</div><div class='add'>+    dump_append_sizet(dc, dc-&gt;cur_page_slot_size);</div><div class='add'>+</div><div class='add'>+    if (dc-&gt;cur_obj_klass) {</div><div class='add'>+        dump_append(dc, ", \"class\":");</div><div class='add'>+        dump_append_ref(dc, dc-&gt;cur_obj_klass);</div><div class='add'>+    }</div><div class='ctx'>     if (rb_obj_frozen_p(obj))</div><div class='del'>-	dump_append(dc, ", \"frozen\":true");</div><div class='add'>+        dump_append(dc, ", \"frozen\":true");</div><div class='ctx'> </div><div class='ctx'>     switch (BUILTIN_TYPE(obj)) {</div><div class='ctx'>       case T_NONE:</div><div class='del'>-	dump_append(dc, "}\n");</div><div class='del'>-	return;</div><div class='add'>+        dump_append(dc, "}\n");</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='ctx'>       case T_IMEMO:</div><div class='del'>-	dump_append(dc, ", \"imemo_type\":\"%s\"", imemo_name(imemo_type(obj)));</div><div class='del'>-	break;</div><div class='add'>+        dump_append(dc, ", \"imemo_type\":\"");</div><div class='add'>+        dump_append(dc, rb_imemo_name(imemo_type(obj)));</div><div class='add'>+        dump_append(dc, "\"");</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_SYMBOL:</div><div class='del'>-	dump_append_string_content(dc, rb_sym2str(obj));</div><div class='del'>-	break;</div><div class='add'>+        dump_append_string_content(dc, rb_sym2str(obj));</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_STRING:</div><div class='del'>-	if (STR_EMBED_P(obj))</div><div class='del'>-	    dump_append(dc, ", \"embedded\":true");</div><div class='del'>-	if (is_broken_string(obj))</div><div class='del'>-	    dump_append(dc, ", \"broken\":true");</div><div class='del'>-	if (FL_TEST(obj, RSTRING_FSTR))</div><div class='del'>-	    dump_append(dc, ", \"fstring\":true");</div><div class='del'>-	if (STR_SHARED_P(obj))</div><div class='del'>-	    dump_append(dc, ", \"shared\":true");</div><div class='del'>-	else</div><div class='del'>-	    dump_append_string_content(dc, obj);</div><div class='del'>-</div><div class='del'>-	if (!ENCODING_IS_ASCII8BIT(obj))</div><div class='del'>-	    dump_append(dc, ", \"encoding\":\"%s\"", rb_enc_name(rb_enc_from_index(ENCODING_GET(obj))));</div><div class='del'>-	break;</div><div class='add'>+        if (STR_EMBED_P(obj))</div><div class='add'>+            dump_append(dc, ", \"embedded\":true");</div><div class='add'>+        if (FL_TEST(obj, RSTRING_FSTR))</div><div class='add'>+            dump_append(dc, ", \"fstring\":true");</div><div class='add'>+        if (STR_SHARED_P(obj))</div><div class='add'>+            dump_append(dc, ", \"shared\":true");</div><div class='add'>+        else</div><div class='add'>+            dump_append_string_content(dc, obj);</div><div class='add'>+</div><div class='add'>+        if (!ENCODING_IS_ASCII8BIT(obj)) {</div><div class='add'>+            dump_append(dc, ", \"encoding\":\"");</div><div class='add'>+            dump_append(dc, rb_enc_name(rb_enc_from_index(ENCODING_GET(obj))));</div><div class='add'>+            dump_append(dc, "\"");</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        dump_append(dc, ", \"coderange\":\"");</div><div class='add'>+        switch (RB_ENC_CODERANGE(obj)) {</div><div class='add'>+          case RUBY_ENC_CODERANGE_UNKNOWN:</div><div class='add'>+            dump_append(dc, "unknown");</div><div class='add'>+            break;</div><div class='add'>+          case RUBY_ENC_CODERANGE_7BIT:</div><div class='add'>+            dump_append(dc, "7bit");</div><div class='add'>+            break;</div><div class='add'>+          case RUBY_ENC_CODERANGE_VALID:</div><div class='add'>+            dump_append(dc, "valid");</div><div class='add'>+            break;</div><div class='add'>+          case RUBY_ENC_CODERANGE_BROKEN:</div><div class='add'>+            dump_append(dc, "broken");</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        dump_append(dc, "\"");</div><div class='add'>+</div><div class='add'>+        if (RB_ENC_CODERANGE(obj) == RUBY_ENC_CODERANGE_BROKEN)</div><div class='add'>+            dump_append(dc, ", \"broken\":true");</div><div class='add'>+</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_HASH:</div><div class='del'>-	dump_append(dc, ", \"size\":%"PRIuSIZE, (size_t)RHASH_SIZE(obj));</div><div class='del'>-	if (FL_TEST(obj, HASH_PROC_DEFAULT))</div><div class='del'>-            dump_append(dc, ", \"default\":\"%#"PRIxVALUE"\"", RHASH_IFNONE(obj));</div><div class='del'>-	break;</div><div class='add'>+        dump_append(dc, ", \"size\":");</div><div class='add'>+        dump_append_sizet(dc, (size_t)RHASH_SIZE(obj));</div><div class='add'>+        if (FL_TEST(obj, RHASH_PROC_DEFAULT)) {</div><div class='add'>+            dump_append(dc, ", \"default\":");</div><div class='add'>+            dump_append_ref(dc, RHASH_IFNONE(obj));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_ARRAY:</div><div class='del'>-	dump_append(dc, ", \"length\":%ld", RARRAY_LEN(obj));</div><div class='del'>-	if (RARRAY_LEN(obj) &gt; 0 &amp;&amp; FL_TEST(obj, ELTS_SHARED))</div><div class='del'>-	    dump_append(dc, ", \"shared\":true");</div><div class='del'>-	if (RARRAY_LEN(obj) &gt; 0 &amp;&amp; FL_TEST(obj, RARRAY_EMBED_FLAG))</div><div class='del'>-	    dump_append(dc, ", \"embedded\":true");</div><div class='del'>-	break;</div><div class='add'>+        dump_append(dc, ", \"length\":");</div><div class='add'>+        dump_append_ld(dc, RARRAY_LEN(obj));</div><div class='add'>+        if (RARRAY_LEN(obj) &gt; 0 &amp;&amp; FL_TEST(obj, RARRAY_SHARED_FLAG))</div><div class='add'>+            dump_append(dc, ", \"shared\":true");</div><div class='add'>+        if (FL_TEST(obj, RARRAY_EMBED_FLAG))</div><div class='add'>+            dump_append(dc, ", \"embedded\":true");</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_ICLASS:</div><div class='add'>+        if (rb_class_get_superclass(obj)) {</div><div class='add'>+            dump_append(dc, ", \"superclass\":");</div><div class='add'>+            dump_append_ref(dc, rb_class_get_superclass(obj));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_CLASS:</div><div class='add'>+        dump_append(dc, ", \"variation_count\":");</div><div class='add'>+        dump_append_d(dc, RCLASS_EXT(obj)-&gt;variation_count);</div><div class='add'>+</div><div class='ctx'>       case T_MODULE:</div><div class='del'>-	if (dc-&gt;cur_obj_klass)</div><div class='del'>-	    dump_append(dc, ", \"name\":\"%s\"", rb_class2name(obj));</div><div class='del'>-	break;</div><div class='add'>+        if (rb_class_get_superclass(obj)) {</div><div class='add'>+            dump_append(dc, ", \"superclass\":");</div><div class='add'>+            dump_append_ref(dc, rb_class_get_superclass(obj));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (dc-&gt;cur_obj_klass) {</div><div class='add'>+            VALUE mod_name = rb_mod_name(obj);</div><div class='add'>+            if (!NIL_P(mod_name)) {</div><div class='add'>+                dump_append(dc, ", \"name\":\"");</div><div class='add'>+                dump_append(dc, RSTRING_PTR(mod_name));</div><div class='add'>+                dump_append(dc, "\"");</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                VALUE real_mod_name = rb_mod_name(rb_class_real(obj));</div><div class='add'>+                if (RTEST(real_mod_name)) {</div><div class='add'>+                    dump_append(dc, ", \"real_class_name\":\"");</div><div class='add'>+                    dump_append(dc, RSTRING_PTR(real_mod_name));</div><div class='add'>+                    dump_append(dc, "\"");</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (FL_TEST(obj, FL_SINGLETON)) {</div><div class='add'>+                dump_append(dc, ", \"singleton\":true");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_DATA:</div><div class='del'>-	if (RTYPEDDATA_P(obj))</div><div class='del'>-	    dump_append(dc, ", \"struct\":\"%s\"", RTYPEDDATA_TYPE(obj)-&gt;wrap_struct_name);</div><div class='del'>-	break;</div><div class='add'>+        if (RTYPEDDATA_P(obj)) {</div><div class='add'>+            dump_append(dc, ", \"struct\":\"");</div><div class='add'>+            dump_append(dc, RTYPEDDATA_TYPE(obj)-&gt;wrap_struct_name);</div><div class='add'>+            dump_append(dc, "\"");</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_FLOAT:</div><div class='del'>-	dump_append(dc, ", \"value\":\"%g\"", RFLOAT_VALUE(obj));</div><div class='del'>-	break;</div><div class='add'>+        dump_append(dc, ", \"value\":\"");</div><div class='add'>+        dump_append_g(dc, RFLOAT_VALUE(obj));</div><div class='add'>+        dump_append(dc, "\"");</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_OBJECT:</div><div class='del'>-	dump_append(dc, ", \"ivars\":%u", ROBJECT_NUMIV(obj));</div><div class='del'>-	break;</div><div class='add'>+        dump_append(dc, ", \"ivars\":");</div><div class='add'>+        dump_append_lu(dc, ROBJECT_IV_COUNT(obj));</div><div class='add'>+        if (rb_shape_obj_too_complex(obj)) {</div><div class='add'>+            dump_append(dc, ", \"too_complex_shape\":true");</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_FILE:</div><div class='del'>-	fptr = RFILE(obj)-&gt;fptr;</div><div class='del'>-	if (fptr)</div><div class='del'>-	    dump_append(dc, ", \"fd\":%d", fptr-&gt;fd);</div><div class='del'>-	break;</div><div class='add'>+        fptr = RFILE(obj)-&gt;fptr;</div><div class='add'>+        if (fptr) {</div><div class='add'>+            dump_append(dc, ", \"fd\":");</div><div class='add'>+            dump_append_d(dc, fptr-&gt;fd);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_ZOMBIE:</div><div class='del'>-	dump_append(dc, "}\n");</div><div class='del'>-	return;</div><div class='add'>+        dump_append(dc, "}\n");</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+      default:</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_objspace_reachable_objects_from(obj, reachable_object_i, dc);</div><div class='ctx'>     if (dc-&gt;cur_obj_references &gt; 0)</div><div class='del'>-	dump_append(dc, "]");</div><div class='del'>-</div><div class='del'>-    if ((ainfo = objspace_lookup_allocation_info(obj))) {</div><div class='del'>-	dump_append(dc, ", \"file\":\"%s\", \"line\":%lu", ainfo-&gt;path, ainfo-&gt;line);</div><div class='del'>-	if (RTEST(ainfo-&gt;mid)) {</div><div class='del'>-	    VALUE m = rb_sym2str(ainfo-&gt;mid);</div><div class='del'>-	    dump_append(dc, ", \"method\":\"%s\"", RSTRING_PTR(m));</div><div class='del'>-	}</div><div class='del'>-	dump_append(dc, ", \"generation\":%"PRIuSIZE, ainfo-&gt;generation);</div><div class='add'>+        dump_append(dc, "]");</div><div class='add'>+</div><div class='add'>+    if (ainfo) {</div><div class='add'>+        if (ainfo-&gt;path) {</div><div class='add'>+            dump_append(dc, ", \"file\":\"");</div><div class='add'>+            dump_append(dc, ainfo-&gt;path);</div><div class='add'>+            dump_append(dc, "\"");</div><div class='add'>+        }</div><div class='add'>+        if (ainfo-&gt;line) {</div><div class='add'>+            dump_append(dc, ", \"line\":");</div><div class='add'>+            dump_append_lu(dc, ainfo-&gt;line);</div><div class='add'>+        }</div><div class='add'>+        if (RTEST(ainfo-&gt;mid)) {</div><div class='add'>+            VALUE m = rb_sym2str(ainfo-&gt;mid);</div><div class='add'>+            dump_append(dc, ", \"method\":");</div><div class='add'>+            dump_append_string_value(dc, m);</div><div class='add'>+        }</div><div class='add'>+        dump_append(dc, ", \"generation\":");</div><div class='add'>+        dump_append_sizet(dc, ainfo-&gt;generation);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if ((memsize = rb_obj_memsize_of(obj)) &gt; 0)</div><div class='del'>-	dump_append(dc, ", \"memsize\":%"PRIuSIZE, memsize);</div><div class='add'>+    if ((memsize = rb_obj_memsize_of(obj)) &gt; 0) {</div><div class='add'>+        dump_append(dc, ", \"memsize\":");</div><div class='add'>+        dump_append_sizet(dc, memsize);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if ((n = rb_obj_gc_flags(obj, flags, sizeof(flags))) &gt; 0) {</div><div class='del'>-	dump_append(dc, ", \"flags\":{");</div><div class='del'>-	for (i=0; i&lt;n; i++) {</div><div class='del'>-	    dump_append(dc, "\"%s\":true", rb_id2name(flags[i]));</div><div class='del'>-	    if (i != n-1) dump_append(dc, ", ");</div><div class='del'>-	}</div><div class='del'>-	dump_append(dc, "}");</div><div class='add'>+        dump_append(dc, ", \"flags\":{");</div><div class='add'>+        for (i=0; i&lt;n; i++) {</div><div class='add'>+            dump_append(dc, "\"");</div><div class='add'>+            dump_append(dc, rb_id2name(flags[i]));</div><div class='add'>+            dump_append(dc, "\":true");</div><div class='add'>+            if (i != n-1) dump_append(dc, ", ");</div><div class='add'>+        }</div><div class='add'>+        dump_append(dc, "}");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     dump_append(dc, "}\n");</div><div class='hunk'>@@ -349,8 +615,16 @@ heap_i(void *vstart, void *vend, size_t stride, void *data)</div><div class='ctx'>     struct dump_config *dc = (struct dump_config *)data;</div><div class='ctx'>     VALUE v = (VALUE)vstart;</div><div class='ctx'>     for (; v != (VALUE)vend; v += stride) {</div><div class='del'>-	if (dc-&gt;full_heap || RBASIC(v)-&gt;flags)</div><div class='del'>-	    dump_object(v, dc);</div><div class='add'>+        void *ptr = asan_poisoned_object_p(v);</div><div class='add'>+        asan_unpoison_object(v, false);</div><div class='add'>+        dc-&gt;cur_page_slot_size = stride;</div><div class='add'>+</div><div class='add'>+        if (dc-&gt;full_heap || RBASIC(v)-&gt;flags)</div><div class='add'>+            dump_object(v, dc);</div><div class='add'>+</div><div class='add'>+        if (ptr) {</div><div class='add'>+            asan_poison_object(v);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -361,138 +635,185 @@ root_obj_i(const char *category, VALUE obj, void *data)</div><div class='ctx'>     struct dump_config *dc = (struct dump_config *)data;</div><div class='ctx'> </div><div class='ctx'>     if (dc-&gt;root_category != NULL &amp;&amp; category != dc-&gt;root_category)</div><div class='del'>-	dump_append(dc, "]}\n");</div><div class='del'>-    if (dc-&gt;root_category == NULL || category != dc-&gt;root_category)</div><div class='del'>-        dump_append(dc, "{\"type\":\"ROOT\", \"root\":\"%s\", \"references\":[\"%#"PRIxVALUE"\"", category, obj);</div><div class='del'>-    else</div><div class='del'>-        dump_append(dc, ", \"%#"PRIxVALUE"\"", obj);</div><div class='add'>+        dump_append(dc, "]}\n");</div><div class='add'>+    if (dc-&gt;root_category == NULL || category != dc-&gt;root_category) {</div><div class='add'>+        dump_append(dc, "{\"type\":\"ROOT\", \"root\":\"");</div><div class='add'>+        dump_append(dc, category);</div><div class='add'>+        dump_append(dc, "\", \"references\":[");</div><div class='add'>+        dump_append_ref(dc, obj);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        dump_append(dc, ", ");</div><div class='add'>+        dump_append_ref(dc, obj);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     dc-&gt;root_category = category;</div><div class='del'>-    dc-&gt;roots++;</div><div class='add'>+    dc-&gt;roots = 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-dump_output(struct dump_config *dc, VALUE opts, VALUE output, const char *filename)</div><div class='add'>+static void</div><div class='add'>+dump_output(struct dump_config *dc, VALUE output, VALUE full, VALUE since, VALUE shapes)</div><div class='ctx'> {</div><div class='del'>-    VALUE tmp;</div><div class='ctx'> </div><div class='ctx'>     dc-&gt;full_heap = 0;</div><div class='add'>+    dc-&gt;buffer_len = 0;</div><div class='ctx'> </div><div class='del'>-    if (RTEST(opts)) {</div><div class='del'>-	output = rb_hash_aref(opts, sym_output);</div><div class='del'>-</div><div class='del'>-	if (Qtrue == rb_hash_lookup2(opts, sym_full, Qfalse))</div><div class='del'>-	    dc-&gt;full_heap = 1;</div><div class='add'>+    if (TYPE(output) == T_STRING) {</div><div class='add'>+        dc-&gt;stream = Qfalse;</div><div class='add'>+        dc-&gt;string = output;</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    if (output == sym_stdout) {</div><div class='del'>-	dc-&gt;stream = stdout;</div><div class='del'>-	dc-&gt;string = Qnil;</div><div class='del'>-    }</div><div class='del'>-    else if (output == sym_file) {</div><div class='del'>-	rb_io_t *fptr;</div><div class='del'>-	rb_require("tempfile");</div><div class='del'>-	tmp = rb_assoc_new(rb_str_new_cstr(filename), rb_str_new_cstr(".json"));</div><div class='del'>-	tmp = rb_funcallv(rb_path2class("Tempfile"), rb_intern("create"), 1, &amp;tmp);</div><div class='del'>-      io:</div><div class='del'>-	dc-&gt;string = rb_io_get_write_io(tmp);</div><div class='del'>-	rb_io_flush(dc-&gt;string);</div><div class='del'>-	GetOpenFile(dc-&gt;string, fptr);</div><div class='del'>-	dc-&gt;stream = rb_io_stdio_file(fptr);</div><div class='add'>+    else {</div><div class='add'>+        dc-&gt;stream = output;</div><div class='add'>+        dc-&gt;string = Qfalse;</div><div class='ctx'>     }</div><div class='del'>-    else if (output == sym_string) {</div><div class='del'>-	dc-&gt;string = rb_str_new_cstr("");</div><div class='add'>+</div><div class='add'>+    if (full == Qtrue) {</div><div class='add'>+        dc-&gt;full_heap = 1;</div><div class='ctx'>     }</div><div class='del'>-    else if (!NIL_P(tmp = rb_io_check_io(output))) {</div><div class='del'>-	output = sym_file;</div><div class='del'>-	goto io;</div><div class='add'>+</div><div class='add'>+    if (RTEST(since)) {</div><div class='add'>+        dc-&gt;partial_dump = 1;</div><div class='add'>+        dc-&gt;since = NUM2SIZET(since);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_raise(rb_eArgError, "wrong output option: %"PRIsVALUE, output);</div><div class='add'>+        dc-&gt;partial_dump = 0;</div><div class='ctx'>     }</div><div class='del'>-    return output;</div><div class='add'>+</div><div class='add'>+    dc-&gt;shapes_since = RTEST(shapes) ? NUM2SIZET(shapes) : 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-dump_result(struct dump_config *dc, VALUE output)</div><div class='add'>+dump_result(struct dump_config *dc)</div><div class='ctx'> {</div><div class='del'>-    if (output == sym_string) {</div><div class='del'>-	return rb_str_resurrect(dc-&gt;string);</div><div class='del'>-    }</div><div class='del'>-    else if (output == sym_file) {</div><div class='del'>-	rb_io_flush(dc-&gt;string);</div><div class='del'>-	return dc-&gt;string;</div><div class='add'>+    dump_flush(dc);</div><div class='add'>+</div><div class='add'>+    if (dc-&gt;string) {</div><div class='add'>+        return dc-&gt;string;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        rb_io_flush(dc-&gt;stream);</div><div class='add'>+        return dc-&gt;stream;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *    ObjectSpace.dump(obj[, output: :string]) # =&gt; "{ ... }"</div><div class='del'>- *    ObjectSpace.dump(obj, output: :file)     # =&gt; #&lt;File:/tmp/rubyobj20131125-88733-1xkfmpv.json&gt;</div><div class='del'>- *    ObjectSpace.dump(obj, output: :stdout)   # =&gt; nil</div><div class='del'>- *</div><div class='del'>- *  Dump the contents of a ruby object as JSON.</div><div class='del'>- *</div><div class='del'>- *  This method is only expected to work with C Ruby.</div><div class='del'>- *  This is an experimental method and is subject to change.</div><div class='del'>- *  In particular, the function signature and output format are</div><div class='del'>- *  not guaranteed to be compatible in future versions of ruby.</div><div class='del'>- */</div><div class='del'>-</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='del'>-objspace_dump(int argc, VALUE *argv, VALUE os)</div><div class='add'>+objspace_dump(VALUE os, VALUE obj, VALUE output)</div><div class='ctx'> {</div><div class='del'>-    static const char filename[] = "rubyobj";</div><div class='del'>-    VALUE obj = Qnil, opts = Qnil, output;</div><div class='ctx'>     struct dump_config dc = {0,};</div><div class='add'>+    if (!RB_SPECIAL_CONST_P(obj)) {</div><div class='add'>+        dc.cur_page_slot_size = rb_gc_obj_slot_size(obj);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "1:", &amp;obj, &amp;opts);</div><div class='del'>-</div><div class='del'>-    output = dump_output(&amp;dc, opts, sym_string, filename);</div><div class='add'>+    dump_output(&amp;dc, output, Qnil, Qnil, Qnil);</div><div class='ctx'> </div><div class='ctx'>     dump_object(obj, &amp;dc);</div><div class='ctx'> </div><div class='del'>-    return dump_result(&amp;dc, output);</div><div class='add'>+    return dump_result(&amp;dc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *    ObjectSpace.dump_all([output: :file]) # =&gt; #&lt;File:/tmp/rubyheap20131125-88469-laoj3v.json&gt;</div><div class='del'>- *    ObjectSpace.dump_all(output: :stdout) # =&gt; nil</div><div class='del'>- *    ObjectSpace.dump_all(output: :string) # =&gt; "{...}\n{...}\n..."</div><div class='del'>- *    ObjectSpace.dump_all(output:</div><div class='del'>- *      File.open('heap.json','w'))         # =&gt; #&lt;File:heap.json&gt;</div><div class='del'>- *</div><div class='del'>- *  Dump the contents of the ruby heap as JSON.</div><div class='del'>- *</div><div class='del'>- *  This method is only expected to work with C Ruby.</div><div class='del'>- *  This is an experimental method and is subject to change.</div><div class='del'>- *  In particular, the function signature and output format are</div><div class='del'>- *  not guaranteed to be compatible in future versions of ruby.</div><div class='del'>- */</div><div class='add'>+static void</div><div class='add'>+shape_i(rb_shape_t *shape, void *data)</div><div class='add'>+{</div><div class='add'>+    struct dump_config *dc = (struct dump_config *)data;</div><div class='add'>+</div><div class='add'>+    size_t shape_id = rb_shape_id(shape);</div><div class='add'>+    if (shape_id &lt; dc-&gt;shapes_since) {</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    dump_append(dc, "{\"address\":");</div><div class='add'>+    dump_append_ref(dc, (VALUE)shape);</div><div class='add'>+</div><div class='add'>+    dump_append(dc, ", \"type\":\"SHAPE\", \"id\":");</div><div class='add'>+    dump_append_sizet(dc, shape_id);</div><div class='add'>+</div><div class='add'>+    if (shape-&gt;type != SHAPE_ROOT) {</div><div class='add'>+        dump_append(dc, ", \"parent_id\":");</div><div class='add'>+        dump_append_lu(dc, shape-&gt;parent_id);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    dump_append(dc, ", \"depth\":");</div><div class='add'>+    dump_append_sizet(dc, rb_shape_depth(shape));</div><div class='add'>+</div><div class='add'>+    dump_append(dc, ", \"shape_type\":");</div><div class='add'>+    switch((enum shape_type)shape-&gt;type) {</div><div class='add'>+      case SHAPE_ROOT:</div><div class='add'>+        dump_append(dc, "\"ROOT\"");</div><div class='add'>+        break;</div><div class='add'>+      case SHAPE_IVAR:</div><div class='add'>+        dump_append(dc, "\"IVAR\"");</div><div class='add'>+</div><div class='add'>+        dump_append(dc, ",\"edge_name\":");</div><div class='add'>+        dump_append_id(dc, shape-&gt;edge_name);</div><div class='add'>+</div><div class='add'>+        break;</div><div class='add'>+      case SHAPE_FROZEN:</div><div class='add'>+        dump_append(dc, "\"FROZEN\"");</div><div class='add'>+        break;</div><div class='add'>+      case SHAPE_CAPACITY_CHANGE:</div><div class='add'>+        dump_append(dc, "\"CAPACITY_CHANGE\"");</div><div class='add'>+        dump_append(dc, ", \"capacity\":");</div><div class='add'>+        dump_append_sizet(dc, shape-&gt;capacity);</div><div class='add'>+        break;</div><div class='add'>+      case SHAPE_INITIAL_CAPACITY:</div><div class='add'>+        dump_append(dc, "\"INITIAL_CAPACITY\"");</div><div class='add'>+        dump_append(dc, ", \"capacity\":");</div><div class='add'>+        dump_append_sizet(dc, shape-&gt;capacity);</div><div class='add'>+        break;</div><div class='add'>+      case SHAPE_T_OBJECT:</div><div class='add'>+        dump_append(dc, "\"T_OBJECT\"");</div><div class='add'>+        break;</div><div class='add'>+      case SHAPE_OBJ_TOO_COMPLEX:</div><div class='add'>+        dump_append(dc, "\"OBJ_TOO_COMPLEX\"");</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        rb_bug("[objspace] unexpected shape type");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    dump_append(dc, ", \"edges\":");</div><div class='add'>+    dump_append_sizet(dc, rb_shape_edges_count(shape));</div><div class='ctx'> </div><div class='add'>+    dump_append(dc, ", \"memsize\":");</div><div class='add'>+    dump_append_sizet(dc, rb_shape_memsize(shape));</div><div class='add'>+</div><div class='add'>+    dump_append(dc, "}\n");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='del'>-objspace_dump_all(int argc, VALUE *argv, VALUE os)</div><div class='add'>+objspace_dump_all(VALUE os, VALUE output, VALUE full, VALUE since, VALUE shapes)</div><div class='ctx'> {</div><div class='del'>-    static const char filename[] = "rubyheap";</div><div class='del'>-    VALUE opts = Qnil, output;</div><div class='ctx'>     struct dump_config dc = {0,};</div><div class='add'>+    dump_output(&amp;dc, output, full, since, shapes);</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "0:", &amp;opts);</div><div class='del'>-</div><div class='del'>-    output = dump_output(&amp;dc, opts, sym_file, filename);</div><div class='add'>+    if (!dc.partial_dump || dc.since == 0) {</div><div class='add'>+        /* dump roots */</div><div class='add'>+        rb_objspace_reachable_objects_from_root(root_obj_i, &amp;dc);</div><div class='add'>+        if (dc.roots) dump_append(&amp;dc, "]}\n");</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    /* dump roots */</div><div class='del'>-    rb_objspace_reachable_objects_from_root(root_obj_i, &amp;dc);</div><div class='del'>-    if (dc.roots) dump_append(&amp;dc, "]}\n");</div><div class='add'>+    if (RTEST(shapes)) {</div><div class='add'>+        rb_shape_each_shape(shape_i, &amp;dc);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     /* dump all objects */</div><div class='ctx'>     rb_objspace_each_objects(heap_i, &amp;dc);</div><div class='ctx'> </div><div class='del'>-    return dump_result(&amp;dc, output);</div><div class='add'>+    return dump_result(&amp;dc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+objspace_dump_shapes(VALUE os, VALUE output, VALUE shapes)</div><div class='add'>+{</div><div class='add'>+    struct dump_config dc = {0,};</div><div class='add'>+    dump_output(&amp;dc, output, Qfalse, Qnil, shapes);</div><div class='add'>+</div><div class='add'>+    if (RTEST(shapes)) {</div><div class='add'>+        rb_shape_each_shape(shape_i, &amp;dc);</div><div class='add'>+    }</div><div class='add'>+    return dump_result(&amp;dc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -503,14 +824,9 @@ Init_objspace_dump(VALUE rb_mObjSpace)</div><div class='ctx'>     rb_mObjSpace = rb_define_module("ObjectSpace"); /* let rdoc know */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    rb_define_module_function(rb_mObjSpace, "dump", objspace_dump, -1);</div><div class='del'>-    rb_define_module_function(rb_mObjSpace, "dump_all", objspace_dump_all, -1);</div><div class='del'>-</div><div class='del'>-    sym_output = ID2SYM(rb_intern("output"));</div><div class='del'>-    sym_stdout = ID2SYM(rb_intern("stdout"));</div><div class='del'>-    sym_string = ID2SYM(rb_intern("string"));</div><div class='del'>-    sym_file   = ID2SYM(rb_intern("file"));</div><div class='del'>-    sym_full   = ID2SYM(rb_intern("full"));</div><div class='add'>+    rb_define_module_function(rb_mObjSpace, "_dump", objspace_dump, 2);</div><div class='add'>+    rb_define_module_function(rb_mObjSpace, "_dump_all", objspace_dump_all, 4);</div><div class='add'>+    rb_define_module_function(rb_mObjSpace, "_dump_shapes", objspace_dump_shapes, 2);</div><div class='ctx'> </div><div class='ctx'>     /* force create static IDs */</div><div class='ctx'>     rb_obj_gc_flags(rb_mObjSpace, 0, 0);</div><div class='head'>diff --git a/ext/openssl/History.md b/ext/openssl/History.md<br/>index db5050014e..1e0df7dd87 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/History.md?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/History.md</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/History.md?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/History.md</a></div><div class='hunk'>@@ -1,3 +1,340 @@</div><div class='add'>+Version 3.1.0</div><div class='add'>+=============</div><div class='add'>+</div><div class='add'>+Ruby/OpenSSL 3.1 will be maintained for the lifetime of Ruby 3.2.</div><div class='add'>+</div><div class='add'>+Merged bug fixes in 2.2.3 and 3.0.2. Among the new features and changes are:</div><div class='add'>+</div><div class='add'>+Notable changes</div><div class='add'>+---------------</div><div class='add'>+</div><div class='add'>+* Add `OpenSSL::SSL::SSLContext#ciphersuites=` to allow setting TLS 1.3 cipher</div><div class='add'>+  suites.</div><div class='add'>+  [[GitHub #493]](https://github.com/ruby/openssl/pull/493)</div><div class='add'>+* Add `OpenSSL::SSL::SSLSocket#export_keying_material` for exporting keying</div><div class='add'>+  material of the session, as defined in RFC 5705.</div><div class='add'>+  [[GitHub #530]](https://github.com/ruby/openssl/pull/530)</div><div class='add'>+* Add `OpenSSL::SSL::SSLContext#keylog_cb=` for setting the TLS key logging</div><div class='add'>+  callback, which is useful for supporting NSS's SSLKEYLOGFILE debugging output.</div><div class='add'>+  [[GitHub #536]](https://github.com/ruby/openssl/pull/536)</div><div class='add'>+* Remove the default digest algorithm from `OpenSSL::OCSP::BasicResponse#sign`</div><div class='add'>+  and `OpenSSL::OCSP::Request#sign`. Omitting the 5th parameter of these</div><div class='add'>+  methods used to be equivalent of specifying SHA-1. This default value is now</div><div class='add'>+  removed and we will let the underlying OpenSSL library decide instead.</div><div class='add'>+  [[GitHub #507]](https://github.com/ruby/openssl/pull/507)</div><div class='add'>+* Add `OpenSSL::BN#mod_sqrt`.</div><div class='add'>+  [[GitHub #553]](https://github.com/ruby/openssl/pull/553)</div><div class='add'>+* Allow calling `OpenSSL::Cipher#update` with an empty string. This was</div><div class='add'>+  prohibited to workaround an ancient bug in OpenSSL.</div><div class='add'>+  [[GitHub #568]](https://github.com/ruby/openssl/pull/568)</div><div class='add'>+* Fix build on platforms without socket support, such as WASI. `OpenSSL::SSL`</div><div class='add'>+  will not be defined if OpenSSL is compiled with `OPENSSL_NO_SOCK`.</div><div class='add'>+  [[GitHub #558]](https://github.com/ruby/openssl/pull/558)</div><div class='add'>+* Improve support for recent LibreSSL versions. This includes HKDF support in</div><div class='add'>+  LibreSSL 3.6 and Ed25519 support in LibreSSL 3.7.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Version 3.0.2</div><div class='add'>+=============</div><div class='add'>+</div><div class='add'>+Merged changes in 2.2.3. Additionally, the following issues are fixed by this</div><div class='add'>+release.</div><div class='add'>+</div><div class='add'>+Bug fixes</div><div class='add'>+---------</div><div class='add'>+</div><div class='add'>+* Fix OpenSSL::PKey::EC#check_key not working correctly on OpenSSL 3.0.</div><div class='add'>+  [[GitHub #563]](https://github.com/ruby/openssl/issues/563)</div><div class='add'>+  [[GitHub #580]](https://github.com/ruby/openssl/pull/580)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Version 3.0.1</div><div class='add'>+=============</div><div class='add'>+</div><div class='add'>+Merged changes in 2.1.4 and 2.2.2. Additionally, the following issues are fixed</div><div class='add'>+by this release.</div><div class='add'>+</div><div class='add'>+Bug fixes</div><div class='add'>+---------</div><div class='add'>+</div><div class='add'>+* Add missing type check in OpenSSL::PKey::PKey#sign's optional parameters.</div><div class='add'>+  [[GitHub #531]](https://github.com/ruby/openssl/pull/531)</div><div class='add'>+* Work around OpenSSL 3.0's HMAC issues with a zero-length key.</div><div class='add'>+  [[GitHub #538]](https://github.com/ruby/openssl/pull/538)</div><div class='add'>+* Fix a regression in OpenSSL::PKey::DSA.generate's default of 'q' size.</div><div class='add'>+  [[GitHub #483]](https://github.com/ruby/openssl/issues/483)</div><div class='add'>+  [[GitHub #539]](https://github.com/ruby/openssl/pull/539)</div><div class='add'>+* Restore OpenSSL::PKey.read's ability to decode "openssl ecparam -genkey"</div><div class='add'>+  output when linked against OpenSSL 3.0.</div><div class='add'>+  [[GitHub #535]](https://github.com/ruby/openssl/pull/535)</div><div class='add'>+  [[GitHub #540]](https://github.com/ruby/openssl/pull/540)</div><div class='add'>+* Restore error checks in OpenSSL::PKey::EC#{to_der,to_pem}.</div><div class='add'>+  [[GitHub #541]](https://github.com/ruby/openssl/pull/541)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Version 3.0.0</div><div class='add'>+=============</div><div class='add'>+</div><div class='add'>+Compatibility notes</div><div class='add'>+-------------------</div><div class='add'>+</div><div class='add'>+* OpenSSL 1.0.1 and Ruby 2.3-2.5 are no longer supported.</div><div class='add'>+  [[GitHub #396]](https://github.com/ruby/openssl/pull/396)</div><div class='add'>+  [[GitHub #466]](https://github.com/ruby/openssl/pull/466)</div><div class='add'>+</div><div class='add'>+* OpenSSL 3.0 support is added. It is the first major version bump from OpenSSL</div><div class='add'>+  1.1 and contains incompatible changes that affect Ruby/OpenSSL.</div><div class='add'>+  Note that OpenSSL 3.0 support is preliminary and not all features are</div><div class='add'>+  currently available:</div><div class='add'>+  [[GitHub #369]](https://github.com/ruby/openssl/issues/369)</div><div class='add'>+</div><div class='add'>+  - Deprecate the ability to modify `OpenSSL::PKey::PKey` instances. OpenSSL 3.0</div><div class='add'>+    made EVP_PKEY structure immutable, and hence the following methods are not</div><div class='add'>+    available when Ruby/OpenSSL is linked against OpenSSL 3.0.</div><div class='add'>+    [[GitHub #480]](https://github.com/ruby/openssl/pull/480)</div><div class='add'>+</div><div class='add'>+    - `OpenSSL::PKey::RSA#set_key`, `#set_factors`, `#set_crt_params`</div><div class='add'>+    - `OpenSSL::PKey::DSA#set_pqg`, `#set_key`</div><div class='add'>+    - `OpenSSL::PKey::DH#set_pqg`, `#set_key`, `#generate_key!`</div><div class='add'>+    - `OpenSSL::PKey::EC#private_key=`, `#public_key=`, `#group=`, `#generate_key!`</div><div class='add'>+</div><div class='add'>+  - Deprecate `OpenSSL::Engine`. The ENGINE API has been deprecated in OpenSSL 3.0</div><div class='add'>+    in favor of the new "provider" concept and will be removed in a future</div><div class='add'>+    version.</div><div class='add'>+    [[GitHub #481]](https://github.com/ruby/openssl/pull/481)</div><div class='add'>+</div><div class='add'>+* `OpenSSL::SSL::SSLContext#tmp_ecdh_callback` has been removed. It has been</div><div class='add'>+  deprecated since v2.0.0 because it is incompatible with modern OpenSSL</div><div class='add'>+  versions.</div><div class='add'>+  [[GitHub #394]](https://github.com/ruby/openssl/pull/394)</div><div class='add'>+</div><div class='add'>+* `OpenSSL::SSL::SSLSocket#read` and `#write` now raise `OpenSSL::SSL::SSLError`</div><div class='add'>+  if called before a TLS connection is established. Historically, they</div><div class='add'>+  read/wrote unencrypted data to the underlying socket directly in that case.</div><div class='add'>+  [[GitHub #9]](https://github.com/ruby/openssl/issues/9)</div><div class='add'>+  [[GitHub #469]](https://github.com/ruby/openssl/pull/469)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Notable changes</div><div class='add'>+---------------</div><div class='add'>+</div><div class='add'>+* Enhance OpenSSL::PKey's common interface.</div><div class='add'>+  [[GitHub #370]](https://github.com/ruby/openssl/issues/370)</div><div class='add'>+</div><div class='add'>+  - Key deserialization: Enhance `OpenSSL::PKey.read` to handle PEM encoding of</div><div class='add'>+    DH parameters, which used to be only deserialized by `OpenSSL::PKey::DH.new`.</div><div class='add'>+    [[GitHub #328]](https://github.com/ruby/openssl/issues/328)</div><div class='add'>+  - Key generation: Add `OpenSSL::PKey.generate_parameters` and</div><div class='add'>+    `OpenSSL::PKey.generate_key`.</div><div class='add'>+    [[GitHub #329]](https://github.com/ruby/openssl/issues/329)</div><div class='add'>+  - Public key signing: Enhance `OpenSSL::PKey::PKey#sign` and `#verify` to use</div><div class='add'>+    the new EVP_DigestSign() family to enable PureEdDSA support on OpenSSL 1.1.1</div><div class='add'>+    or later. They also now take optional algorithm-specific parameters for more</div><div class='add'>+    control.</div><div class='add'>+    [[GitHub #329]](https://github.com/ruby/openssl/issues/329)</div><div class='add'>+  - Low-level public key signing and verification: Add</div><div class='add'>+    `OpenSSL::PKey::PKey#sign_raw`, `#verify_raw`, and `#verify_recover`.</div><div class='add'>+    [[GitHub #382]](https://github.com/ruby/openssl/issues/382)</div><div class='add'>+  - Public key encryption: Add `OpenSSL::PKey::PKey#encrypt` and `#decrypt`.</div><div class='add'>+    [[GitHub #382]](https://github.com/ruby/openssl/issues/382)</div><div class='add'>+  - Key agreement: Add `OpenSSL::PKey::PKey#derive`.</div><div class='add'>+    [[GitHub #329]](https://github.com/ruby/openssl/issues/329)</div><div class='add'>+  - Key comparison: Add `OpenSSL::PKey::PKey#compare?` to conveniently check</div><div class='add'>+    that two keys have common parameters and a public key.</div><div class='add'>+    [[GitHub #383]](https://github.com/ruby/openssl/issues/383)</div><div class='add'>+</div><div class='add'>+* Add `OpenSSL::BN#set_flags` and `#get_flags`. This can be used in combination</div><div class='add'>+  with `OpenSSL::BN::CONSTTIME` to force constant-time computation.</div><div class='add'>+  [[GitHub #417]](https://github.com/ruby/openssl/issues/417)</div><div class='add'>+</div><div class='add'>+* Add `OpenSSL::BN#abs` to get the absolute value of the BIGNUM.</div><div class='add'>+  [[GitHub #430]](https://github.com/ruby/openssl/issues/430)</div><div class='add'>+</div><div class='add'>+* Add `OpenSSL::SSL::SSLSocket#getbyte`.</div><div class='add'>+  [[GitHub #438]](https://github.com/ruby/openssl/issues/438)</div><div class='add'>+</div><div class='add'>+* Add `OpenSSL::SSL::SSLContext#tmp_dh=`.</div><div class='add'>+  [[GitHub #459]](https://github.com/ruby/openssl/pull/459)</div><div class='add'>+</div><div class='add'>+* Add `OpenSSL::X509::Certificate.load` to load a PEM-encoded and concatenated</div><div class='add'>+  list of X.509 certificates at once.</div><div class='add'>+  [[GitHub #441]](https://github.com/ruby/openssl/pull/441)</div><div class='add'>+</div><div class='add'>+* Change `OpenSSL::X509::Certificate.new` to attempt to deserialize the given</div><div class='add'>+  string first as DER encoding first and then as PEM encoding to ensure the</div><div class='add'>+  round-trip consistency.</div><div class='add'>+  [[GitHub #442]](https://github.com/ruby/openssl/pull/442)</div><div class='add'>+</div><div class='add'>+* Update various part of the code base to use the modern API. No breaking</div><div class='add'>+  changes are intended with this. This includes:</div><div class='add'>+</div><div class='add'>+  - `OpenSSL::HMAC` uses the EVP API.</div><div class='add'>+    [[GitHub #371]](https://github.com/ruby/openssl/issues/371)</div><div class='add'>+  - `OpenSSL::Config` uses native OpenSSL API to parse config files.</div><div class='add'>+    [[GitHub #342]](https://github.com/ruby/openssl/issues/342)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Version 2.2.3</div><div class='add'>+=============</div><div class='add'>+</div><div class='add'>+Bug fixes</div><div class='add'>+---------</div><div class='add'>+</div><div class='add'>+* Fix serveral methods in OpenSSL::PKey::EC::Point attempting to raise an error</div><div class='add'>+  with an incorrect class, which would end up with a TypeError.</div><div class='add'>+  [[GitHub #570]](https://github.com/ruby/openssl/pull/570)</div><div class='add'>+* Fix OpenSSL::PKey::EC::Point#eql? and OpenSSL::PKey::EC::Group#eql?</div><div class='add'>+  incorrectly treated OpenSSL's internal errors as "not equal".</div><div class='add'>+  [[GitHub #564]](https://github.com/ruby/openssl/pull/564)</div><div class='add'>+* Fix build with LibreSSL 3.5 or later.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Version 2.2.2</div><div class='add'>+=============</div><div class='add'>+</div><div class='add'>+Merged changes in 2.1.4.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Version 2.2.1</div><div class='add'>+=============</div><div class='add'>+</div><div class='add'>+Merged changes in 2.1.3. Additionally, the following issues are fixed by this</div><div class='add'>+release.</div><div class='add'>+</div><div class='add'>+Bug fixes</div><div class='add'>+---------</div><div class='add'>+</div><div class='add'>+* Fix crash in `OpenSSL::Timestamp::{Request,Response,TokenInfo}.new` when</div><div class='add'>+  invalid arguments are given.</div><div class='add'>+  [[GitHub #407]](https://github.com/ruby/openssl/pull/407)</div><div class='add'>+* Fix `OpenSSL::Timestamp::Factory#create_timestamp` with LibreSSL on platforms</div><div class='add'>+  where `time_t` has a different size from `long`.</div><div class='add'>+  [[GitHub #454]](https://github.com/ruby/openssl/pull/454)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Version 2.2.0</div><div class='add'>+=============</div><div class='add'>+</div><div class='add'>+Compatibility notes</div><div class='add'>+-------------------</div><div class='add'>+</div><div class='add'>+* Remove unsupported MDC2, DSS, DSS1, and SHA algorithms.</div><div class='add'>+* Remove `OpenSSL::PKCS7::SignerInfo#name` alias for `#issuer`.</div><div class='add'>+  [[GitHub #266]](https://github.com/ruby/openssl/pull/266)</div><div class='add'>+* Deprecate `OpenSSL::Config#add_value` and `#[]=` for future removal.</div><div class='add'>+  [[GitHub #322]](https://github.com/ruby/openssl/pull/322)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Notable changes</div><div class='add'>+---------------</div><div class='add'>+</div><div class='add'>+* Change default `OpenSSL::SSL::SSLServer#listen` backlog argument from</div><div class='add'>+  5 to `Socket::SOMAXCONN`.</div><div class='add'>+  [[GitHub #286]](https://github.com/ruby/openssl/issues/286)</div><div class='add'>+* Make `OpenSSL::HMAC#==` use a timing safe string comparison.</div><div class='add'>+  [[GitHub #284]](https://github.com/ruby/openssl/pull/284)</div><div class='add'>+* Add support for SHA3 and BLAKE digests.</div><div class='add'>+  [[GitHub #282]](https://github.com/ruby/openssl/pull/282)</div><div class='add'>+* Add `OpenSSL::SSL::SSLSocket.open` for opening a `TCPSocket` and</div><div class='add'>+  returning an `OpenSSL::SSL::SSLSocket` for it.</div><div class='add'>+  [[GitHub #225]](https://github.com/ruby/openssl/issues/225)</div><div class='add'>+* Support marshalling of `OpenSSL::X509` and `OpenSSL::PKey` objects.</div><div class='add'>+  [[GitHub #281]](https://github.com/ruby/openssl/pull/281)</div><div class='add'>+  [[GitHub #363]](https://github.com/ruby/openssl/pull/363)</div><div class='add'>+* Add `OpenSSL.secure_compare` for timing safe string comparison for</div><div class='add'>+  strings of possibly unequal length.</div><div class='add'>+  [[GitHub #280]](https://github.com/ruby/openssl/pull/280)</div><div class='add'>+* Add `OpenSSL.fixed_length_secure_compare` for timing safe string</div><div class='add'>+  comparison for strings of equal length.</div><div class='add'>+  [[GitHub #269]](https://github.com/ruby/openssl/pull/269)</div><div class='add'>+* Add `OpenSSL::SSL::SSLSocket#{finished_message,peer_finished_message}`</div><div class='add'>+  for last finished message sent and received.</div><div class='add'>+  [[GitHub #250]](https://github.com/ruby/openssl/pull/250)</div><div class='add'>+* Add `OpenSSL::Timestamp` module for handing timestamp requests and</div><div class='add'>+  responses.</div><div class='add'>+  [[GitHub #204]](https://github.com/ruby/openssl/pull/204)</div><div class='add'>+* Add helper methods for `OpenSSL::X509::Certificate`:</div><div class='add'>+  `find_extension`, `subject_key_identifier`,</div><div class='add'>+  `authority_key_identifier`, `crl_uris`, `ca_issuer_uris` and</div><div class='add'>+  `ocsp_uris`, and for `OpenSSL::X509::CRL`:</div><div class='add'>+  `find_extension` and `subject_key_identifier`.</div><div class='add'>+  [[GitHub #260]](https://github.com/ruby/openssl/pull/260)</div><div class='add'>+  [[GitHub #275]](https://github.com/ruby/openssl/pull/275)</div><div class='add'>+  [[GitHub #293]](https://github.com/ruby/openssl/pull/293)</div><div class='add'>+* Add `OpenSSL::ECPoint#add` for performing elliptic curve point addition.</div><div class='add'>+  [[GitHub #261]](https://github.com/ruby/openssl/pull/261)</div><div class='add'>+* Make `OpenSSL::PKey::RSA#{export,to_der}` check `key`, `factors`, and</div><div class='add'>+  `crt_params` to do proper private key serialization.</div><div class='add'>+  [[GitHub #258]](https://github.com/ruby/openssl/pull/258)</div><div class='add'>+* Add `OpenSSL::SSL::{SSLSocket,SSLServer}#fileno`, returning the</div><div class='add'>+  underlying socket file descriptor number.</div><div class='add'>+  [[GitHub #247]](https://github.com/ruby/openssl/pull/247)</div><div class='add'>+* Support client certificates with TLS 1.3, and support post-handshake</div><div class='add'>+  authentication with OpenSSL 1.1.1+.</div><div class='add'>+  [[GitHub #239]](https://github.com/ruby/openssl/pull/239)</div><div class='add'>+* Add `OpenSSL::ASN1::ObjectId#==` for equality testing.</div><div class='add'>+* Add `OpenSSL::X509::Extension#value_der` for the raw value of</div><div class='add'>+  the extension.</div><div class='add'>+  [[GitHub #234]](https://github.com/ruby/openssl/pull/234)</div><div class='add'>+* Significantly reduce allocated memory in `OpenSSL::Buffering#do_write`.</div><div class='add'>+  [[GitHub #212]](https://github.com/ruby/openssl/pull/212)</div><div class='add'>+* Ensure all valid IPv6 addresses are considered valid as elements</div><div class='add'>+  of subjectAlternativeName in certificates.</div><div class='add'>+  [[GitHub #185]](https://github.com/ruby/openssl/pull/185)</div><div class='add'>+* Allow recipient's certificate to be omitted in PCKS7#decrypt.</div><div class='add'>+  [[GitHub #183]](https://github.com/ruby/openssl/pull/183)</div><div class='add'>+* Add support for reading keys in PKCS #8 format and export via instance methods</div><div class='add'>+  added to `OpenSSL::PKey` classes: `private_to_der`, `private_to_pem`,</div><div class='add'>+  `public_to_der` and `public_to_pem`.</div><div class='add'>+  [[GitHub #297]](https://github.com/ruby/openssl/pull/297)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Version 2.1.4</div><div class='add'>+=============</div><div class='add'>+</div><div class='add'>+Bug fixes</div><div class='add'>+---------</div><div class='add'>+</div><div class='add'>+* Do not use pkg-config if --with-openssl-dir option is specified.</div><div class='add'>+ [[GitHub #486]](https://github.com/ruby/openssl/pull/486)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Version 2.1.3</div><div class='add'>+=============</div><div class='add'>+</div><div class='add'>+Bug fixes</div><div class='add'>+---------</div><div class='add'>+</div><div class='add'>+* Fix deprecation warnings on Ruby 3.0.</div><div class='add'>+* Add ".include" directive support in `OpenSSL::Config`.</div><div class='add'>+  [[GitHub #216]](https://github.com/ruby/openssl/pull/216)</div><div class='add'>+* Fix handling of IPv6 address SANs.</div><div class='add'>+  [[GitHub #185]](https://github.com/ruby/openssl/pull/185)</div><div class='add'>+* Hostname verification failure with `OpenSSL::SSL::SSLContext#verify_hostname=`</div><div class='add'>+  sets a proper error code.</div><div class='add'>+  [[GitHub #350]](https://github.com/ruby/openssl/pull/350)</div><div class='add'>+* Fix crash with `OpenSSL::BN.new(nil, 2)`.</div><div class='add'>+  [[Bug #15760]](https://bugs.ruby-lang.org/issues/15760)</div><div class='add'>+* `OpenSSL::SSL::SSLSocket#sys{read,write}` prevent internal string buffers from</div><div class='add'>+  being modified by another thread.</div><div class='add'>+  [[GitHub #453]](https://github.com/ruby/openssl/pull/453)</div><div class='add'>+* Fix misuse of input record separator in `OpenSSL::Buffering` where it was</div><div class='add'>+  for output.</div><div class='add'>+* Fix wrong integer casting in `OpenSSL::PKey::EC#dsa_verify_asn1`.</div><div class='add'>+  [[GitHub #460]](https://github.com/ruby/openssl/pull/460)</div><div class='add'>+* `extconf.rb` explicitly checks that OpenSSL's version number is 1.0.1 or</div><div class='add'>+  newer but also less than 3.0. Ruby/OpenSSL v2.1.x and v2.2.x will not support</div><div class='add'>+  OpenSSL 3.0 API.</div><div class='add'>+  [[GitHub #458]](https://github.com/ruby/openssl/pull/458)</div><div class='add'>+* Activate `digest` gem correctly. `digest` library could go into an</div><div class='add'>+  inconsistent state if there are multiple versions of `digest` is installed</div><div class='add'>+  and `openssl` is `require`d before `digest`.</div><div class='add'>+  [[GitHub #463]](https://github.com/ruby/openssl/pull/463)</div><div class='add'>+* Fix GC.compact compatibility.</div><div class='add'>+  [[GitHub #464]](https://github.com/ruby/openssl/issues/464)</div><div class='add'>+  [[GitHub #465]](https://github.com/ruby/openssl/pull/465)</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'> Version 2.1.2</div><div class='ctx'> =============</div><div class='ctx'> </div><div class='head'>diff --git a/ext/openssl/depend b/ext/openssl/depend<br/>index 021c6d99a8..c38d224c85 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/depend</a></div><div class='hunk'>@@ -5,10 +5,169 @@ openssl_missing.o: openssl_missing.c</div><div class='ctx'> openssl_missing.o: openssl_missing.h</div><div class='ctx'> ossl.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -17,8 +176,6 @@ ossl.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl.o: $(hdrdir)/ruby/thread_native.h</div><div class='del'>-ossl.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl.o: openssl_missing.h</div><div class='ctx'> ossl.o: ossl.c</div><div class='ctx'> ossl.o: ossl.h</div><div class='hunk'>@@ -38,15 +195,173 @@ ossl.o: ossl_pkcs7.h</div><div class='ctx'> ossl.o: ossl_pkey.h</div><div class='ctx'> ossl.o: ossl_rand.h</div><div class='ctx'> ossl.o: ossl_ssl.h</div><div class='del'>-ossl.o: ossl_version.h</div><div class='add'>+ossl.o: ossl_ts.h</div><div class='ctx'> ossl.o: ossl_x509.h</div><div class='del'>-ossl.o: ruby_missing.h</div><div class='ctx'> ossl_asn1.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_asn1.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_asn1.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_asn1.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_asn1.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_asn1.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_asn1.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_asn1.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_asn1.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_asn1.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -55,7 +370,6 @@ ossl_asn1.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_asn1.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_asn1.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_asn1.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_asn1.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_asn1.o: openssl_missing.h</div><div class='ctx'> ossl_asn1.o: ossl.h</div><div class='ctx'> ossl_asn1.o: ossl_asn1.c</div><div class='hunk'>@@ -75,15 +389,173 @@ ossl_asn1.o: ossl_pkcs7.h</div><div class='ctx'> ossl_asn1.o: ossl_pkey.h</div><div class='ctx'> ossl_asn1.o: ossl_rand.h</div><div class='ctx'> ossl_asn1.o: ossl_ssl.h</div><div class='del'>-ossl_asn1.o: ossl_version.h</div><div class='add'>+ossl_asn1.o: ossl_ts.h</div><div class='ctx'> ossl_asn1.o: ossl_x509.h</div><div class='del'>-ossl_asn1.o: ruby_missing.h</div><div class='ctx'> ossl_bio.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_bio.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_bio.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_bio.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_bio.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_bio.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_bio.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_bio.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_bio.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_bio.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -92,7 +564,6 @@ ossl_bio.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_bio.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_bio.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_bio.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_bio.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_bio.o: openssl_missing.h</div><div class='ctx'> ossl_bio.o: ossl.h</div><div class='ctx'> ossl_bio.o: ossl_asn1.h</div><div class='hunk'>@@ -112,24 +583,182 @@ ossl_bio.o: ossl_pkcs7.h</div><div class='ctx'> ossl_bio.o: ossl_pkey.h</div><div class='ctx'> ossl_bio.o: ossl_rand.h</div><div class='ctx'> ossl_bio.o: ossl_ssl.h</div><div class='del'>-ossl_bio.o: ossl_version.h</div><div class='add'>+ossl_bio.o: ossl_ts.h</div><div class='ctx'> ossl_bio.o: ossl_x509.h</div><div class='del'>-ossl_bio.o: ruby_missing.h</div><div class='ctx'> ossl_bn.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_bn.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/oniguruma.h</div><div class='add'>+ossl_bn.o: $(hdrdir)/ruby/ractor.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_bn.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_bn.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_bn.o: openssl_missing.h</div><div class='ctx'> ossl_bn.o: ossl.h</div><div class='ctx'> ossl_bn.o: ossl_asn1.h</div><div class='hunk'>@@ -149,15 +778,173 @@ ossl_bn.o: ossl_pkcs7.h</div><div class='ctx'> ossl_bn.o: ossl_pkey.h</div><div class='ctx'> ossl_bn.o: ossl_rand.h</div><div class='ctx'> ossl_bn.o: ossl_ssl.h</div><div class='del'>-ossl_bn.o: ossl_version.h</div><div class='add'>+ossl_bn.o: ossl_ts.h</div><div class='ctx'> ossl_bn.o: ossl_x509.h</div><div class='del'>-ossl_bn.o: ruby_missing.h</div><div class='ctx'> ossl_cipher.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_cipher.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_cipher.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_cipher.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_cipher.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_cipher.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_cipher.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_cipher.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_cipher.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_cipher.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -166,7 +953,6 @@ ossl_cipher.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_cipher.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_cipher.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_cipher.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_cipher.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_cipher.o: openssl_missing.h</div><div class='ctx'> ossl_cipher.o: ossl.h</div><div class='ctx'> ossl_cipher.o: ossl_asn1.h</div><div class='hunk'>@@ -186,15 +972,173 @@ ossl_cipher.o: ossl_pkcs7.h</div><div class='ctx'> ossl_cipher.o: ossl_pkey.h</div><div class='ctx'> ossl_cipher.o: ossl_rand.h</div><div class='ctx'> ossl_cipher.o: ossl_ssl.h</div><div class='del'>-ossl_cipher.o: ossl_version.h</div><div class='add'>+ossl_cipher.o: ossl_ts.h</div><div class='ctx'> ossl_cipher.o: ossl_x509.h</div><div class='del'>-ossl_cipher.o: ruby_missing.h</div><div class='ctx'> ossl_config.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_config.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_config.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_config.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_config.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_config.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_config.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_config.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_config.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_config.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -203,7 +1147,6 @@ ossl_config.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_config.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_config.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_config.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_config.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_config.o: openssl_missing.h</div><div class='ctx'> ossl_config.o: ossl.h</div><div class='ctx'> ossl_config.o: ossl_asn1.h</div><div class='hunk'>@@ -223,15 +1166,173 @@ ossl_config.o: ossl_pkcs7.h</div><div class='ctx'> ossl_config.o: ossl_pkey.h</div><div class='ctx'> ossl_config.o: ossl_rand.h</div><div class='ctx'> ossl_config.o: ossl_ssl.h</div><div class='del'>-ossl_config.o: ossl_version.h</div><div class='add'>+ossl_config.o: ossl_ts.h</div><div class='ctx'> ossl_config.o: ossl_x509.h</div><div class='del'>-ossl_config.o: ruby_missing.h</div><div class='ctx'> ossl_digest.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_digest.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_digest.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_digest.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_digest.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_digest.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_digest.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_digest.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_digest.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_digest.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -240,7 +1341,6 @@ ossl_digest.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_digest.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_digest.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_digest.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_digest.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_digest.o: openssl_missing.h</div><div class='ctx'> ossl_digest.o: ossl.h</div><div class='ctx'> ossl_digest.o: ossl_asn1.h</div><div class='hunk'>@@ -260,15 +1360,173 @@ ossl_digest.o: ossl_pkcs7.h</div><div class='ctx'> ossl_digest.o: ossl_pkey.h</div><div class='ctx'> ossl_digest.o: ossl_rand.h</div><div class='ctx'> ossl_digest.o: ossl_ssl.h</div><div class='del'>-ossl_digest.o: ossl_version.h</div><div class='add'>+ossl_digest.o: ossl_ts.h</div><div class='ctx'> ossl_digest.o: ossl_x509.h</div><div class='del'>-ossl_digest.o: ruby_missing.h</div><div class='ctx'> ossl_engine.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_engine.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_engine.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_engine.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_engine.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_engine.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_engine.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_engine.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_engine.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_engine.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -277,7 +1535,6 @@ ossl_engine.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_engine.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_engine.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_engine.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_engine.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_engine.o: openssl_missing.h</div><div class='ctx'> ossl_engine.o: ossl.h</div><div class='ctx'> ossl_engine.o: ossl_asn1.h</div><div class='hunk'>@@ -297,15 +1554,173 @@ ossl_engine.o: ossl_pkcs7.h</div><div class='ctx'> ossl_engine.o: ossl_pkey.h</div><div class='ctx'> ossl_engine.o: ossl_rand.h</div><div class='ctx'> ossl_engine.o: ossl_ssl.h</div><div class='del'>-ossl_engine.o: ossl_version.h</div><div class='add'>+ossl_engine.o: ossl_ts.h</div><div class='ctx'> ossl_engine.o: ossl_x509.h</div><div class='del'>-ossl_engine.o: ruby_missing.h</div><div class='ctx'> ossl_hmac.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_hmac.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_hmac.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_hmac.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_hmac.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_hmac.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_hmac.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_hmac.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_hmac.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_hmac.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -314,7 +1729,6 @@ ossl_hmac.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_hmac.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_hmac.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_hmac.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_hmac.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_hmac.o: openssl_missing.h</div><div class='ctx'> ossl_hmac.o: ossl.h</div><div class='ctx'> ossl_hmac.o: ossl_asn1.h</div><div class='hunk'>@@ -334,15 +1748,173 @@ ossl_hmac.o: ossl_pkcs7.h</div><div class='ctx'> ossl_hmac.o: ossl_pkey.h</div><div class='ctx'> ossl_hmac.o: ossl_rand.h</div><div class='ctx'> ossl_hmac.o: ossl_ssl.h</div><div class='del'>-ossl_hmac.o: ossl_version.h</div><div class='add'>+ossl_hmac.o: ossl_ts.h</div><div class='ctx'> ossl_hmac.o: ossl_x509.h</div><div class='del'>-ossl_hmac.o: ruby_missing.h</div><div class='ctx'> ossl_kdf.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_kdf.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_kdf.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_kdf.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_kdf.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_kdf.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_kdf.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_kdf.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_kdf.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_kdf.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -351,7 +1923,6 @@ ossl_kdf.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_kdf.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_kdf.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_kdf.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_kdf.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_kdf.o: openssl_missing.h</div><div class='ctx'> ossl_kdf.o: ossl.h</div><div class='ctx'> ossl_kdf.o: ossl_asn1.h</div><div class='hunk'>@@ -371,15 +1942,173 @@ ossl_kdf.o: ossl_pkcs7.h</div><div class='ctx'> ossl_kdf.o: ossl_pkey.h</div><div class='ctx'> ossl_kdf.o: ossl_rand.h</div><div class='ctx'> ossl_kdf.o: ossl_ssl.h</div><div class='del'>-ossl_kdf.o: ossl_version.h</div><div class='add'>+ossl_kdf.o: ossl_ts.h</div><div class='ctx'> ossl_kdf.o: ossl_x509.h</div><div class='del'>-ossl_kdf.o: ruby_missing.h</div><div class='ctx'> ossl_ns_spki.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_ns_spki.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_ns_spki.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_ns_spki.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_ns_spki.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_ns_spki.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_ns_spki.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_ns_spki.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_ns_spki.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_ns_spki.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -388,7 +2117,6 @@ ossl_ns_spki.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_ns_spki.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_ns_spki.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_ns_spki.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_ns_spki.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_ns_spki.o: openssl_missing.h</div><div class='ctx'> ossl_ns_spki.o: ossl.h</div><div class='ctx'> ossl_ns_spki.o: ossl_asn1.h</div><div class='hunk'>@@ -408,15 +2136,173 @@ ossl_ns_spki.o: ossl_pkcs7.h</div><div class='ctx'> ossl_ns_spki.o: ossl_pkey.h</div><div class='ctx'> ossl_ns_spki.o: ossl_rand.h</div><div class='ctx'> ossl_ns_spki.o: ossl_ssl.h</div><div class='del'>-ossl_ns_spki.o: ossl_version.h</div><div class='add'>+ossl_ns_spki.o: ossl_ts.h</div><div class='ctx'> ossl_ns_spki.o: ossl_x509.h</div><div class='del'>-ossl_ns_spki.o: ruby_missing.h</div><div class='ctx'> ossl_ocsp.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_ocsp.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_ocsp.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_ocsp.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_ocsp.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_ocsp.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_ocsp.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_ocsp.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_ocsp.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_ocsp.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -425,7 +2311,6 @@ ossl_ocsp.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_ocsp.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_ocsp.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_ocsp.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_ocsp.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_ocsp.o: openssl_missing.h</div><div class='ctx'> ossl_ocsp.o: ossl.h</div><div class='ctx'> ossl_ocsp.o: ossl_asn1.h</div><div class='hunk'>@@ -445,15 +2330,173 @@ ossl_ocsp.o: ossl_pkcs7.h</div><div class='ctx'> ossl_ocsp.o: ossl_pkey.h</div><div class='ctx'> ossl_ocsp.o: ossl_rand.h</div><div class='ctx'> ossl_ocsp.o: ossl_ssl.h</div><div class='del'>-ossl_ocsp.o: ossl_version.h</div><div class='add'>+ossl_ocsp.o: ossl_ts.h</div><div class='ctx'> ossl_ocsp.o: ossl_x509.h</div><div class='del'>-ossl_ocsp.o: ruby_missing.h</div><div class='ctx'> ossl_pkcs12.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_pkcs12.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_pkcs12.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_pkcs12.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_pkcs12.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_pkcs12.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_pkcs12.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_pkcs12.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_pkcs12.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_pkcs12.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -462,7 +2505,6 @@ ossl_pkcs12.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_pkcs12.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_pkcs12.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_pkcs12.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_pkcs12.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_pkcs12.o: openssl_missing.h</div><div class='ctx'> ossl_pkcs12.o: ossl.h</div><div class='ctx'> ossl_pkcs12.o: ossl_asn1.h</div><div class='hunk'>@@ -482,15 +2524,173 @@ ossl_pkcs12.o: ossl_pkcs7.h</div><div class='ctx'> ossl_pkcs12.o: ossl_pkey.h</div><div class='ctx'> ossl_pkcs12.o: ossl_rand.h</div><div class='ctx'> ossl_pkcs12.o: ossl_ssl.h</div><div class='del'>-ossl_pkcs12.o: ossl_version.h</div><div class='add'>+ossl_pkcs12.o: ossl_ts.h</div><div class='ctx'> ossl_pkcs12.o: ossl_x509.h</div><div class='del'>-ossl_pkcs12.o: ruby_missing.h</div><div class='ctx'> ossl_pkcs7.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_pkcs7.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_pkcs7.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_pkcs7.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_pkcs7.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_pkcs7.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_pkcs7.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_pkcs7.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_pkcs7.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_pkcs7.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -499,7 +2699,6 @@ ossl_pkcs7.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_pkcs7.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_pkcs7.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_pkcs7.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_pkcs7.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_pkcs7.o: openssl_missing.h</div><div class='ctx'> ossl_pkcs7.o: ossl.h</div><div class='ctx'> ossl_pkcs7.o: ossl_asn1.h</div><div class='hunk'>@@ -519,15 +2718,173 @@ ossl_pkcs7.o: ossl_pkcs7.h</div><div class='ctx'> ossl_pkcs7.o: ossl_pkey.h</div><div class='ctx'> ossl_pkcs7.o: ossl_rand.h</div><div class='ctx'> ossl_pkcs7.o: ossl_ssl.h</div><div class='del'>-ossl_pkcs7.o: ossl_version.h</div><div class='add'>+ossl_pkcs7.o: ossl_ts.h</div><div class='ctx'> ossl_pkcs7.o: ossl_x509.h</div><div class='del'>-ossl_pkcs7.o: ruby_missing.h</div><div class='ctx'> ossl_pkey.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_pkey.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_pkey.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_pkey.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_pkey.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_pkey.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_pkey.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_pkey.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_pkey.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_pkey.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -536,7 +2893,6 @@ ossl_pkey.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_pkey.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_pkey.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_pkey.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_pkey.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_pkey.o: openssl_missing.h</div><div class='ctx'> ossl_pkey.o: ossl.h</div><div class='ctx'> ossl_pkey.o: ossl_asn1.h</div><div class='hunk'>@@ -556,15 +2912,173 @@ ossl_pkey.o: ossl_pkey.c</div><div class='ctx'> ossl_pkey.o: ossl_pkey.h</div><div class='ctx'> ossl_pkey.o: ossl_rand.h</div><div class='ctx'> ossl_pkey.o: ossl_ssl.h</div><div class='del'>-ossl_pkey.o: ossl_version.h</div><div class='add'>+ossl_pkey.o: ossl_ts.h</div><div class='ctx'> ossl_pkey.o: ossl_x509.h</div><div class='del'>-ossl_pkey.o: ruby_missing.h</div><div class='ctx'> ossl_pkey_dh.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_pkey_dh.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_pkey_dh.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_pkey_dh.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_pkey_dh.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_pkey_dh.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_pkey_dh.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_pkey_dh.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_pkey_dh.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_pkey_dh.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -573,7 +3087,6 @@ ossl_pkey_dh.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_pkey_dh.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_pkey_dh.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_pkey_dh.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_pkey_dh.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_pkey_dh.o: openssl_missing.h</div><div class='ctx'> ossl_pkey_dh.o: ossl.h</div><div class='ctx'> ossl_pkey_dh.o: ossl_asn1.h</div><div class='hunk'>@@ -593,15 +3106,173 @@ ossl_pkey_dh.o: ossl_pkey.h</div><div class='ctx'> ossl_pkey_dh.o: ossl_pkey_dh.c</div><div class='ctx'> ossl_pkey_dh.o: ossl_rand.h</div><div class='ctx'> ossl_pkey_dh.o: ossl_ssl.h</div><div class='del'>-ossl_pkey_dh.o: ossl_version.h</div><div class='add'>+ossl_pkey_dh.o: ossl_ts.h</div><div class='ctx'> ossl_pkey_dh.o: ossl_x509.h</div><div class='del'>-ossl_pkey_dh.o: ruby_missing.h</div><div class='ctx'> ossl_pkey_dsa.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_pkey_dsa.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_pkey_dsa.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_pkey_dsa.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_pkey_dsa.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_pkey_dsa.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_pkey_dsa.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_pkey_dsa.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_pkey_dsa.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_pkey_dsa.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -610,7 +3281,6 @@ ossl_pkey_dsa.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_pkey_dsa.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_pkey_dsa.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_pkey_dsa.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_pkey_dsa.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_pkey_dsa.o: openssl_missing.h</div><div class='ctx'> ossl_pkey_dsa.o: ossl.h</div><div class='ctx'> ossl_pkey_dsa.o: ossl_asn1.h</div><div class='hunk'>@@ -630,15 +3300,173 @@ ossl_pkey_dsa.o: ossl_pkey.h</div><div class='ctx'> ossl_pkey_dsa.o: ossl_pkey_dsa.c</div><div class='ctx'> ossl_pkey_dsa.o: ossl_rand.h</div><div class='ctx'> ossl_pkey_dsa.o: ossl_ssl.h</div><div class='del'>-ossl_pkey_dsa.o: ossl_version.h</div><div class='add'>+ossl_pkey_dsa.o: ossl_ts.h</div><div class='ctx'> ossl_pkey_dsa.o: ossl_x509.h</div><div class='del'>-ossl_pkey_dsa.o: ruby_missing.h</div><div class='ctx'> ossl_pkey_ec.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_pkey_ec.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_pkey_ec.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_pkey_ec.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_pkey_ec.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_pkey_ec.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_pkey_ec.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_pkey_ec.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_pkey_ec.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_pkey_ec.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -647,7 +3475,6 @@ ossl_pkey_ec.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_pkey_ec.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_pkey_ec.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_pkey_ec.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_pkey_ec.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_pkey_ec.o: openssl_missing.h</div><div class='ctx'> ossl_pkey_ec.o: ossl.h</div><div class='ctx'> ossl_pkey_ec.o: ossl_asn1.h</div><div class='hunk'>@@ -667,15 +3494,173 @@ ossl_pkey_ec.o: ossl_pkey.h</div><div class='ctx'> ossl_pkey_ec.o: ossl_pkey_ec.c</div><div class='ctx'> ossl_pkey_ec.o: ossl_rand.h</div><div class='ctx'> ossl_pkey_ec.o: ossl_ssl.h</div><div class='del'>-ossl_pkey_ec.o: ossl_version.h</div><div class='add'>+ossl_pkey_ec.o: ossl_ts.h</div><div class='ctx'> ossl_pkey_ec.o: ossl_x509.h</div><div class='del'>-ossl_pkey_ec.o: ruby_missing.h</div><div class='ctx'> ossl_pkey_rsa.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_pkey_rsa.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_pkey_rsa.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_pkey_rsa.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_pkey_rsa.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_pkey_rsa.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_pkey_rsa.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_pkey_rsa.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_pkey_rsa.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_pkey_rsa.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -684,7 +3669,6 @@ ossl_pkey_rsa.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_pkey_rsa.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_pkey_rsa.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_pkey_rsa.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_pkey_rsa.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_pkey_rsa.o: openssl_missing.h</div><div class='ctx'> ossl_pkey_rsa.o: ossl.h</div><div class='ctx'> ossl_pkey_rsa.o: ossl_asn1.h</div><div class='hunk'>@@ -704,15 +3688,173 @@ ossl_pkey_rsa.o: ossl_pkey.h</div><div class='ctx'> ossl_pkey_rsa.o: ossl_pkey_rsa.c</div><div class='ctx'> ossl_pkey_rsa.o: ossl_rand.h</div><div class='ctx'> ossl_pkey_rsa.o: ossl_ssl.h</div><div class='del'>-ossl_pkey_rsa.o: ossl_version.h</div><div class='add'>+ossl_pkey_rsa.o: ossl_ts.h</div><div class='ctx'> ossl_pkey_rsa.o: ossl_x509.h</div><div class='del'>-ossl_pkey_rsa.o: ruby_missing.h</div><div class='ctx'> ossl_rand.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_rand.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_rand.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_rand.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_rand.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_rand.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_rand.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_rand.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_rand.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_rand.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -721,7 +3863,6 @@ ossl_rand.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_rand.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_rand.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_rand.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_rand.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_rand.o: openssl_missing.h</div><div class='ctx'> ossl_rand.o: ossl.h</div><div class='ctx'> ossl_rand.o: ossl_asn1.h</div><div class='hunk'>@@ -741,15 +3882,173 @@ ossl_rand.o: ossl_pkey.h</div><div class='ctx'> ossl_rand.o: ossl_rand.c</div><div class='ctx'> ossl_rand.o: ossl_rand.h</div><div class='ctx'> ossl_rand.o: ossl_ssl.h</div><div class='del'>-ossl_rand.o: ossl_version.h</div><div class='add'>+ossl_rand.o: ossl_ts.h</div><div class='ctx'> ossl_rand.o: ossl_x509.h</div><div class='del'>-ossl_rand.o: ruby_missing.h</div><div class='ctx'> ossl_ssl.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_ssl.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_ssl.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_ssl.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_ssl.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_ssl.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_ssl.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_ssl.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_ssl.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_ssl.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -758,7 +4057,6 @@ ossl_ssl.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_ssl.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_ssl.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_ssl.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_ssl.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_ssl.o: openssl_missing.h</div><div class='ctx'> ossl_ssl.o: ossl.h</div><div class='ctx'> ossl_ssl.o: ossl_asn1.h</div><div class='hunk'>@@ -778,15 +4076,173 @@ ossl_ssl.o: ossl_pkey.h</div><div class='ctx'> ossl_ssl.o: ossl_rand.h</div><div class='ctx'> ossl_ssl.o: ossl_ssl.c</div><div class='ctx'> ossl_ssl.o: ossl_ssl.h</div><div class='del'>-ossl_ssl.o: ossl_version.h</div><div class='add'>+ossl_ssl.o: ossl_ts.h</div><div class='ctx'> ossl_ssl.o: ossl_x509.h</div><div class='del'>-ossl_ssl.o: ruby_missing.h</div><div class='ctx'> ossl_ssl_session.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_ssl_session.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_ssl_session.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_ssl_session.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_ssl_session.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_ssl_session.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_ssl_session.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_ssl_session.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_ssl_session.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_ssl_session.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -795,7 +4251,6 @@ ossl_ssl_session.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_ssl_session.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_ssl_session.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_ssl_session.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_ssl_session.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_ssl_session.o: openssl_missing.h</div><div class='ctx'> ossl_ssl_session.o: ossl.h</div><div class='ctx'> ossl_ssl_session.o: ossl_asn1.h</div><div class='hunk'>@@ -815,15 +4270,367 @@ ossl_ssl_session.o: ossl_pkey.h</div><div class='ctx'> ossl_ssl_session.o: ossl_rand.h</div><div class='ctx'> ossl_ssl_session.o: ossl_ssl.h</div><div class='ctx'> ossl_ssl_session.o: ossl_ssl_session.c</div><div class='del'>-ossl_ssl_session.o: ossl_version.h</div><div class='add'>+ossl_ssl_session.o: ossl_ts.h</div><div class='ctx'> ossl_ssl_session.o: ossl_x509.h</div><div class='del'>-ossl_ssl_session.o: ruby_missing.h</div><div class='add'>+ossl_ts.o: $(RUBY_EXTCONF_H)</div><div class='add'>+ossl_ts.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/io.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/onigmo.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/oniguruma.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/st.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+ossl_ts.o: $(hdrdir)/ruby/thread.h</div><div class='add'>+ossl_ts.o: openssl_missing.h</div><div class='add'>+ossl_ts.o: ossl.h</div><div class='add'>+ossl_ts.o: ossl_asn1.h</div><div class='add'>+ossl_ts.o: ossl_bio.h</div><div class='add'>+ossl_ts.o: ossl_bn.h</div><div class='add'>+ossl_ts.o: ossl_cipher.h</div><div class='add'>+ossl_ts.o: ossl_config.h</div><div class='add'>+ossl_ts.o: ossl_digest.h</div><div class='add'>+ossl_ts.o: ossl_engine.h</div><div class='add'>+ossl_ts.o: ossl_hmac.h</div><div class='add'>+ossl_ts.o: ossl_kdf.h</div><div class='add'>+ossl_ts.o: ossl_ns_spki.h</div><div class='add'>+ossl_ts.o: ossl_ocsp.h</div><div class='add'>+ossl_ts.o: ossl_pkcs12.h</div><div class='add'>+ossl_ts.o: ossl_pkcs7.h</div><div class='add'>+ossl_ts.o: ossl_pkey.h</div><div class='add'>+ossl_ts.o: ossl_rand.h</div><div class='add'>+ossl_ts.o: ossl_ssl.h</div><div class='add'>+ossl_ts.o: ossl_ts.c</div><div class='add'>+ossl_ts.o: ossl_ts.h</div><div class='add'>+ossl_ts.o: ossl_x509.h</div><div class='ctx'> ossl_x509.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_x509.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_x509.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_x509.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_x509.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_x509.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_x509.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_x509.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_x509.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_x509.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -832,7 +4639,6 @@ ossl_x509.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_x509.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_x509.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_x509.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_x509.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_x509.o: openssl_missing.h</div><div class='ctx'> ossl_x509.o: ossl.h</div><div class='ctx'> ossl_x509.o: ossl_asn1.h</div><div class='hunk'>@@ -851,16 +4657,174 @@ ossl_x509.o: ossl_pkcs7.h</div><div class='ctx'> ossl_x509.o: ossl_pkey.h</div><div class='ctx'> ossl_x509.o: ossl_rand.h</div><div class='ctx'> ossl_x509.o: ossl_ssl.h</div><div class='del'>-ossl_x509.o: ossl_version.h</div><div class='add'>+ossl_x509.o: ossl_ts.h</div><div class='ctx'> ossl_x509.o: ossl_x509.c</div><div class='ctx'> ossl_x509.o: ossl_x509.h</div><div class='del'>-ossl_x509.o: ruby_missing.h</div><div class='ctx'> ossl_x509attr.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_x509attr.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_x509attr.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_x509attr.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_x509attr.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_x509attr.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_x509attr.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_x509attr.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_x509attr.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_x509attr.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -869,7 +4833,6 @@ ossl_x509attr.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_x509attr.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_x509attr.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_x509attr.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_x509attr.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_x509attr.o: openssl_missing.h</div><div class='ctx'> ossl_x509attr.o: ossl.h</div><div class='ctx'> ossl_x509attr.o: ossl_asn1.h</div><div class='hunk'>@@ -888,16 +4851,174 @@ ossl_x509attr.o: ossl_pkcs7.h</div><div class='ctx'> ossl_x509attr.o: ossl_pkey.h</div><div class='ctx'> ossl_x509attr.o: ossl_rand.h</div><div class='ctx'> ossl_x509attr.o: ossl_ssl.h</div><div class='del'>-ossl_x509attr.o: ossl_version.h</div><div class='add'>+ossl_x509attr.o: ossl_ts.h</div><div class='ctx'> ossl_x509attr.o: ossl_x509.h</div><div class='ctx'> ossl_x509attr.o: ossl_x509attr.c</div><div class='del'>-ossl_x509attr.o: ruby_missing.h</div><div class='ctx'> ossl_x509cert.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_x509cert.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_x509cert.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_x509cert.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_x509cert.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_x509cert.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_x509cert.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_x509cert.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_x509cert.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_x509cert.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -906,7 +5027,6 @@ ossl_x509cert.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_x509cert.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_x509cert.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_x509cert.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_x509cert.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_x509cert.o: openssl_missing.h</div><div class='ctx'> ossl_x509cert.o: ossl.h</div><div class='ctx'> ossl_x509cert.o: ossl_asn1.h</div><div class='hunk'>@@ -925,16 +5045,174 @@ ossl_x509cert.o: ossl_pkcs7.h</div><div class='ctx'> ossl_x509cert.o: ossl_pkey.h</div><div class='ctx'> ossl_x509cert.o: ossl_rand.h</div><div class='ctx'> ossl_x509cert.o: ossl_ssl.h</div><div class='del'>-ossl_x509cert.o: ossl_version.h</div><div class='add'>+ossl_x509cert.o: ossl_ts.h</div><div class='ctx'> ossl_x509cert.o: ossl_x509.h</div><div class='ctx'> ossl_x509cert.o: ossl_x509cert.c</div><div class='del'>-ossl_x509cert.o: ruby_missing.h</div><div class='ctx'> ossl_x509crl.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_x509crl.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_x509crl.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_x509crl.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_x509crl.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_x509crl.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_x509crl.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_x509crl.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_x509crl.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_x509crl.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -943,7 +5221,6 @@ ossl_x509crl.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_x509crl.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_x509crl.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_x509crl.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_x509crl.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_x509crl.o: openssl_missing.h</div><div class='ctx'> ossl_x509crl.o: ossl.h</div><div class='ctx'> ossl_x509crl.o: ossl_asn1.h</div><div class='hunk'>@@ -962,16 +5239,174 @@ ossl_x509crl.o: ossl_pkcs7.h</div><div class='ctx'> ossl_x509crl.o: ossl_pkey.h</div><div class='ctx'> ossl_x509crl.o: ossl_rand.h</div><div class='ctx'> ossl_x509crl.o: ossl_ssl.h</div><div class='del'>-ossl_x509crl.o: ossl_version.h</div><div class='add'>+ossl_x509crl.o: ossl_ts.h</div><div class='ctx'> ossl_x509crl.o: ossl_x509.h</div><div class='ctx'> ossl_x509crl.o: ossl_x509crl.c</div><div class='del'>-ossl_x509crl.o: ruby_missing.h</div><div class='ctx'> ossl_x509ext.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_x509ext.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_x509ext.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_x509ext.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_x509ext.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_x509ext.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_x509ext.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_x509ext.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_x509ext.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_x509ext.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -980,7 +5415,6 @@ ossl_x509ext.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_x509ext.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_x509ext.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_x509ext.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_x509ext.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_x509ext.o: openssl_missing.h</div><div class='ctx'> ossl_x509ext.o: ossl.h</div><div class='ctx'> ossl_x509ext.o: ossl_asn1.h</div><div class='hunk'>@@ -999,16 +5433,174 @@ ossl_x509ext.o: ossl_pkcs7.h</div><div class='ctx'> ossl_x509ext.o: ossl_pkey.h</div><div class='ctx'> ossl_x509ext.o: ossl_rand.h</div><div class='ctx'> ossl_x509ext.o: ossl_ssl.h</div><div class='del'>-ossl_x509ext.o: ossl_version.h</div><div class='add'>+ossl_x509ext.o: ossl_ts.h</div><div class='ctx'> ossl_x509ext.o: ossl_x509.h</div><div class='ctx'> ossl_x509ext.o: ossl_x509ext.c</div><div class='del'>-ossl_x509ext.o: ruby_missing.h</div><div class='ctx'> ossl_x509name.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_x509name.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_x509name.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_x509name.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_x509name.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_x509name.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_x509name.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_x509name.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_x509name.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_x509name.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -1017,7 +5609,6 @@ ossl_x509name.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_x509name.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_x509name.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_x509name.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_x509name.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_x509name.o: openssl_missing.h</div><div class='ctx'> ossl_x509name.o: ossl.h</div><div class='ctx'> ossl_x509name.o: ossl_asn1.h</div><div class='hunk'>@@ -1036,16 +5627,174 @@ ossl_x509name.o: ossl_pkcs7.h</div><div class='ctx'> ossl_x509name.o: ossl_pkey.h</div><div class='ctx'> ossl_x509name.o: ossl_rand.h</div><div class='ctx'> ossl_x509name.o: ossl_ssl.h</div><div class='del'>-ossl_x509name.o: ossl_version.h</div><div class='add'>+ossl_x509name.o: ossl_ts.h</div><div class='ctx'> ossl_x509name.o: ossl_x509.h</div><div class='ctx'> ossl_x509name.o: ossl_x509name.c</div><div class='del'>-ossl_x509name.o: ruby_missing.h</div><div class='ctx'> ossl_x509req.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_x509req.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_x509req.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_x509req.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_x509req.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_x509req.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_x509req.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_x509req.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_x509req.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_x509req.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -1054,7 +5803,6 @@ ossl_x509req.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_x509req.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_x509req.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_x509req.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_x509req.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_x509req.o: openssl_missing.h</div><div class='ctx'> ossl_x509req.o: ossl.h</div><div class='ctx'> ossl_x509req.o: ossl_asn1.h</div><div class='hunk'>@@ -1073,16 +5821,174 @@ ossl_x509req.o: ossl_pkcs7.h</div><div class='ctx'> ossl_x509req.o: ossl_pkey.h</div><div class='ctx'> ossl_x509req.o: ossl_rand.h</div><div class='ctx'> ossl_x509req.o: ossl_ssl.h</div><div class='del'>-ossl_x509req.o: ossl_version.h</div><div class='add'>+ossl_x509req.o: ossl_ts.h</div><div class='ctx'> ossl_x509req.o: ossl_x509.h</div><div class='ctx'> ossl_x509req.o: ossl_x509req.c</div><div class='del'>-ossl_x509req.o: ruby_missing.h</div><div class='ctx'> ossl_x509revoked.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_x509revoked.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_x509revoked.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_x509revoked.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_x509revoked.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_x509revoked.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_x509revoked.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_x509revoked.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_x509revoked.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_x509revoked.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -1091,7 +5997,6 @@ ossl_x509revoked.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_x509revoked.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_x509revoked.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_x509revoked.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_x509revoked.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_x509revoked.o: openssl_missing.h</div><div class='ctx'> ossl_x509revoked.o: ossl.h</div><div class='ctx'> ossl_x509revoked.o: ossl_asn1.h</div><div class='hunk'>@@ -1110,16 +6015,174 @@ ossl_x509revoked.o: ossl_pkcs7.h</div><div class='ctx'> ossl_x509revoked.o: ossl_pkey.h</div><div class='ctx'> ossl_x509revoked.o: ossl_rand.h</div><div class='ctx'> ossl_x509revoked.o: ossl_ssl.h</div><div class='del'>-ossl_x509revoked.o: ossl_version.h</div><div class='add'>+ossl_x509revoked.o: ossl_ts.h</div><div class='ctx'> ossl_x509revoked.o: ossl_x509.h</div><div class='ctx'> ossl_x509revoked.o: ossl_x509revoked.c</div><div class='del'>-ossl_x509revoked.o: ruby_missing.h</div><div class='ctx'> ossl_x509store.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ossl_x509store.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ossl_x509store.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ossl_x509store.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ossl_x509store.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ossl_x509store.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ossl_x509store.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ossl_x509store.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ossl_x509store.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ossl_x509store.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -1128,7 +6191,6 @@ ossl_x509store.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ossl_x509store.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ossl_x509store.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ossl_x509store.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-ossl_x509store.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ossl_x509store.o: openssl_missing.h</div><div class='ctx'> ossl_x509store.o: ossl.h</div><div class='ctx'> ossl_x509store.o: ossl_asn1.h</div><div class='hunk'>@@ -1147,8 +6209,7 @@ ossl_x509store.o: ossl_pkcs7.h</div><div class='ctx'> ossl_x509store.o: ossl_pkey.h</div><div class='ctx'> ossl_x509store.o: ossl_rand.h</div><div class='ctx'> ossl_x509store.o: ossl_ssl.h</div><div class='del'>-ossl_x509store.o: ossl_version.h</div><div class='add'>+ossl_x509store.o: ossl_ts.h</div><div class='ctx'> ossl_x509store.o: ossl_x509.h</div><div class='ctx'> ossl_x509store.o: ossl_x509store.c</div><div class='del'>-ossl_x509store.o: ruby_missing.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/openssl/deprecation.rb b/ext/openssl/deprecation.rb<br/>deleted file mode 100644<br/>index 1d51d065a9..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/openssl/deprecation.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/deprecation.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,23 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-module OpenSSL</div><div class='del'>-  def self.deprecated_warning_flag</div><div class='del'>-    unless flag = (@deprecated_warning_flag ||= nil)</div><div class='del'>-      if try_compile("", flag = "-Werror=deprecated-declarations")</div><div class='del'>-        $warnflags &lt;&lt; " #{flag}"</div><div class='del'>-      else</div><div class='del'>-        flag = ""</div><div class='del'>-      end</div><div class='del'>-      @deprecated_warning_flag = flag</div><div class='del'>-    end</div><div class='del'>-    flag</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def self.check_func(func, header)</div><div class='del'>-    have_func(func, header, deprecated_warning_flag)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def self.check_func_or_macro(func, header)</div><div class='del'>-    check_func(func, header) or</div><div class='del'>-      have_macro(func, header) &amp;&amp; $defs.push("-DHAVE_#{func.upcase}")</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb<br/>index 4f218562b1..bc3e4d3a21 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/extconf.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> # -*- coding: us-ascii -*-</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> =begin</div><div class='ctx'> = Info</div><div class='ctx'>   'OpenSSL for Ruby 2' project</div><div class='hunk'>@@ -12,16 +12,12 @@</div><div class='ctx'> =end</div><div class='ctx'> </div><div class='ctx'> require "mkmf"</div><div class='del'>-require File.expand_path('../deprecation', __FILE__)</div><div class='ctx'> </div><div class='del'>-dir_config("openssl")</div><div class='add'>+dir_config_given = dir_config("openssl").any?</div><div class='ctx'> dir_config("kerberos")</div><div class='ctx'> </div><div class='ctx'> Logging::message "=== OpenSSL for Ruby configurator ===\n"</div><div class='ctx'> </div><div class='del'>-# Add -Werror=deprecated-declarations to $warnflags if available</div><div class='del'>-OpenSSL.deprecated_warning_flag</div><div class='del'>-</div><div class='ctx'> ##</div><div class='ctx'> # Adds -DOSSL_DEBUG for compilation and some more targets when GCC is used</div><div class='ctx'> # To turn it on, use: --with-debug or --enable-debug</div><div class='hunk'>@@ -29,6 +25,9 @@ OpenSSL.deprecated_warning_flag</div><div class='ctx'> if with_config("debug") or enable_config("debug")</div><div class='ctx'>   $defs.push("-DOSSL_DEBUG")</div><div class='ctx'> end</div><div class='add'>+$defs.push("-D""OPENSSL_SUPPRESS_DEPRECATED")</div><div class='add'>+</div><div class='add'>+have_func("rb_io_maybe_wait(0, Qnil, Qnil, Qnil)", "ruby/io.h") # Ruby 3.1</div><div class='ctx'> </div><div class='ctx'> Logging::message "=== Checking for system dependent stuff... ===\n"</div><div class='ctx'> have_library("nsl", "t_open")</div><div class='hunk'>@@ -37,8 +36,11 @@ if $mswin || $mingw</div><div class='ctx'>   have_library("ws2_32")</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-Logging::message "=== Checking for required stuff... ===\n"</div><div class='del'>-result = pkg_config("openssl") &amp;&amp; have_header("openssl/ssl.h")</div><div class='add'>+if $mingw</div><div class='add'>+  append_cflags '-D_FORTIFY_SOURCE=2'</div><div class='add'>+  append_ldflags '-fstack-protector'</div><div class='add'>+  have_library 'ssp'</div><div class='add'>+end</div><div class='ctx'> </div><div class='ctx'> def find_openssl_library</div><div class='ctx'>   if $mswin || $mingw</div><div class='hunk'>@@ -90,81 +92,102 @@ def find_openssl_library</div><div class='ctx'>   return false</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-unless result</div><div class='del'>-  unless find_openssl_library</div><div class='del'>-    Logging::message "=== Checking for required stuff failed. ===\n"</div><div class='del'>-    Logging::message "Makefile wasn't created. Fix the errors above.\n"</div><div class='del'>-    raise "OpenSSL library could not be found. You might want to use " \</div><div class='del'>-      "--with-openssl-dir=&lt;dir&gt; option to specify the prefix where OpenSSL " \</div><div class='del'>-      "is installed."</div><div class='del'>-  end</div><div class='add'>+Logging::message "=== Checking for required stuff... ===\n"</div><div class='add'>+pkg_config_found = !dir_config_given &amp;&amp; pkg_config("openssl") &amp;&amp; have_header("openssl/ssl.h")</div><div class='add'>+</div><div class='add'>+if !pkg_config_found &amp;&amp; !find_openssl_library</div><div class='add'>+  Logging::message "=== Checking for required stuff failed. ===\n"</div><div class='add'>+  Logging::message "Makefile wasn't created. Fix the errors above.\n"</div><div class='add'>+  raise "OpenSSL library could not be found. You might want to use " \</div><div class='add'>+    "--with-openssl-dir=&lt;dir&gt; option to specify the prefix where OpenSSL " \</div><div class='add'>+    "is installed."</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-unless checking_for("OpenSSL version is 1.0.1 or later") {</div><div class='del'>-    try_static_assert("OPENSSL_VERSION_NUMBER &gt;= 0x10001000L", "openssl/opensslv.h") }</div><div class='del'>-  raise "OpenSSL &gt;= 1.0.1 or LibreSSL is required"</div><div class='add'>+version_ok = if have_macro("LIBRESSL_VERSION_NUMBER", "openssl/opensslv.h")</div><div class='add'>+  is_libressl = true</div><div class='add'>+  checking_for("LibreSSL version &gt;= 3.1.0") {</div><div class='add'>+    try_static_assert("LIBRESSL_VERSION_NUMBER &gt;= 0x30100000L", "openssl/opensslv.h") }</div><div class='add'>+else</div><div class='add'>+  checking_for("OpenSSL version &gt;= 1.0.2") {</div><div class='add'>+    try_static_assert("OPENSSL_VERSION_NUMBER &gt;= 0x10002000L", "openssl/opensslv.h") }</div><div class='add'>+end</div><div class='add'>+unless version_ok</div><div class='add'>+  raise "OpenSSL &gt;= 1.0.2 or LibreSSL &gt;= 3.1.0 is required"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# Prevent wincrypt.h from being included, which defines conflicting macro with openssl/x509.h</div><div class='add'>+if is_libressl &amp;&amp; ($mswin || $mingw)</div><div class='add'>+  $defs.push("-DNOCRYPT")</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> Logging::message "=== Checking for OpenSSL features... ===\n"</div><div class='add'>+evp_h = "openssl/evp.h".freeze</div><div class='add'>+x509_h = "openssl/x509.h".freeze</div><div class='add'>+ts_h = "openssl/ts.h".freeze</div><div class='add'>+ssl_h = "openssl/ssl.h".freeze</div><div class='add'>+</div><div class='ctx'> # compile options</div><div class='del'>-have_func("RAND_egd")</div><div class='del'>-engines = %w{builtin_engines openbsd_dev_crypto dynamic 4758cca aep atalla chil</div><div class='del'>-             cswift nuron sureware ubsec padlock capi gmp gost cryptodev aesni}</div><div class='add'>+have_func("RAND_egd()", "openssl/rand.h")</div><div class='add'>+engines = %w{dynamic 4758cca aep atalla chil</div><div class='add'>+             cswift nuron sureware ubsec padlock capi gmp gost cryptodev}</div><div class='ctx'> engines.each { |name|</div><div class='del'>-  OpenSSL.check_func_or_macro("ENGINE_load_#{name}", "openssl/engine.h")</div><div class='add'>+  have_func("ENGINE_load_#{name}()", "openssl/engine.h")</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-if ($mswin || $mingw) &amp;&amp; have_macro("LIBRESSL_VERSION_NUMBER", "openssl/opensslv.h")</div><div class='del'>-  $defs.push("-DNOCRYPT")</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-# added in 1.0.2</div><div class='del'>-have_func("EC_curve_nist2nid")</div><div class='del'>-have_func("X509_REVOKED_dup")</div><div class='del'>-have_func("X509_STORE_CTX_get0_store")</div><div class='del'>-have_func("SSL_CTX_set_alpn_select_cb")</div><div class='del'>-OpenSSL.check_func_or_macro("SSL_CTX_set1_curves_list", "openssl/ssl.h")</div><div class='del'>-OpenSSL.check_func_or_macro("SSL_CTX_set_ecdh_auto", "openssl/ssl.h")</div><div class='del'>-OpenSSL.check_func_or_macro("SSL_get_server_tmp_key", "openssl/ssl.h")</div><div class='del'>-have_func("SSL_is_server")</div><div class='del'>-</div><div class='ctx'> # added in 1.1.0</div><div class='del'>-if !have_struct_member("SSL", "ctx", "openssl/ssl.h") ||</div><div class='del'>-    try_static_assert("LIBRESSL_VERSION_NUMBER &gt;= 0x2070000fL", "openssl/opensslv.h")</div><div class='add'>+if !have_struct_member("SSL", "ctx", "openssl/ssl.h") || is_libressl</div><div class='ctx'>   $defs.push("-DHAVE_OPAQUE_OPENSSL")</div><div class='ctx'> end</div><div class='del'>-have_func("CRYPTO_lock") || $defs.push("-DHAVE_OPENSSL_110_THREADING_API")</div><div class='del'>-have_func("BN_GENCB_new")</div><div class='del'>-have_func("BN_GENCB_free")</div><div class='del'>-have_func("BN_GENCB_get_arg")</div><div class='del'>-have_func("EVP_MD_CTX_new")</div><div class='del'>-have_func("EVP_MD_CTX_free")</div><div class='del'>-have_func("HMAC_CTX_new")</div><div class='del'>-have_func("HMAC_CTX_free")</div><div class='del'>-OpenSSL.check_func("RAND_pseudo_bytes", "openssl/rand.h") # deprecated</div><div class='del'>-have_func("X509_STORE_get_ex_data")</div><div class='del'>-have_func("X509_STORE_set_ex_data")</div><div class='del'>-have_func("X509_CRL_get0_signature")</div><div class='del'>-have_func("X509_REQ_get0_signature")</div><div class='del'>-have_func("X509_REVOKED_get0_serialNumber")</div><div class='del'>-have_func("X509_REVOKED_get0_revocationDate")</div><div class='del'>-have_func("X509_get0_tbs_sigalg")</div><div class='del'>-have_func("X509_STORE_CTX_get0_untrusted")</div><div class='del'>-have_func("X509_STORE_CTX_get0_cert")</div><div class='del'>-have_func("X509_STORE_CTX_get0_chain")</div><div class='del'>-have_func("OCSP_SINGLERESP_get0_id")</div><div class='del'>-have_func("SSL_CTX_get_ciphers")</div><div class='del'>-have_func("X509_up_ref")</div><div class='del'>-have_func("X509_CRL_up_ref")</div><div class='del'>-have_func("X509_STORE_up_ref")</div><div class='del'>-have_func("SSL_SESSION_up_ref")</div><div class='del'>-have_func("EVP_PKEY_up_ref")</div><div class='del'>-OpenSSL.check_func_or_macro("SSL_CTX_set_tmp_ecdh_callback", "openssl/ssl.h") # removed</div><div class='del'>-OpenSSL.check_func_or_macro("SSL_CTX_set_min_proto_version", "openssl/ssl.h")</div><div class='del'>-have_func("SSL_CTX_get_security_level")</div><div class='del'>-have_func("X509_get0_notBefore")</div><div class='del'>-have_func("SSL_SESSION_get_protocol_version")</div><div class='del'>-have_func("EVP_PBE_scrypt")</div><div class='add'>+have_func("EVP_MD_CTX_new()", evp_h)</div><div class='add'>+have_func("EVP_MD_CTX_free(NULL)", evp_h)</div><div class='add'>+have_func("EVP_MD_CTX_pkey_ctx(NULL)", evp_h)</div><div class='add'>+have_func("X509_STORE_get_ex_data(NULL, 0)", x509_h)</div><div class='add'>+have_func("X509_STORE_set_ex_data(NULL, 0, NULL)", x509_h)</div><div class='add'>+have_func("X509_STORE_get_ex_new_index(0, NULL, NULL, NULL, NULL)", x509_h)</div><div class='add'>+have_func("X509_CRL_get0_signature(NULL, NULL, NULL)", x509_h)</div><div class='add'>+have_func("X509_REQ_get0_signature(NULL, NULL, NULL)", x509_h)</div><div class='add'>+have_func("X509_REVOKED_get0_serialNumber(NULL)", x509_h)</div><div class='add'>+have_func("X509_REVOKED_get0_revocationDate(NULL)", x509_h)</div><div class='add'>+have_func("X509_get0_tbs_sigalg(NULL)", x509_h)</div><div class='add'>+have_func("X509_STORE_CTX_get0_untrusted(NULL)", x509_h)</div><div class='add'>+have_func("X509_STORE_CTX_get0_cert(NULL)", x509_h)</div><div class='add'>+have_func("X509_STORE_CTX_get0_chain(NULL)", x509_h)</div><div class='add'>+have_func("OCSP_SINGLERESP_get0_id(NULL)", "openssl/ocsp.h")</div><div class='add'>+have_func("SSL_CTX_get_ciphers(NULL)", ssl_h)</div><div class='add'>+have_func("X509_up_ref(NULL)", x509_h)</div><div class='add'>+have_func("X509_CRL_up_ref(NULL)", x509_h)</div><div class='add'>+have_func("X509_STORE_up_ref(NULL)", x509_h)</div><div class='add'>+have_func("SSL_SESSION_up_ref(NULL)", ssl_h)</div><div class='add'>+have_func("EVP_PKEY_up_ref(NULL)", evp_h)</div><div class='add'>+have_func("SSL_CTX_set_min_proto_version(NULL, 0)", ssl_h)</div><div class='add'>+have_func("SSL_CTX_get_security_level(NULL)", ssl_h)</div><div class='add'>+have_func("X509_get0_notBefore(NULL)", x509_h)</div><div class='add'>+have_func("SSL_SESSION_get_protocol_version(NULL)", ssl_h)</div><div class='add'>+have_func("TS_STATUS_INFO_get0_status(NULL)", ts_h)</div><div class='add'>+have_func("TS_STATUS_INFO_get0_text(NULL)", ts_h)</div><div class='add'>+have_func("TS_STATUS_INFO_get0_failure_info(NULL)", ts_h)</div><div class='add'>+have_func("TS_VERIFY_CTS_set_certs(NULL, NULL)", ts_h)</div><div class='add'>+have_func("TS_VERIFY_CTX_set_store(NULL, NULL)", ts_h)</div><div class='add'>+have_func("TS_VERIFY_CTX_add_flags(NULL, 0)", ts_h)</div><div class='add'>+have_func("TS_RESP_CTX_set_time_cb(NULL, NULL, NULL)", ts_h)</div><div class='add'>+have_func("EVP_PBE_scrypt(\"\", 0, (unsigned char *)\"\", 0, 0, 0, 0, 0, NULL, 0)", evp_h)</div><div class='add'>+have_func("SSL_CTX_set_post_handshake_auth(NULL, 0)", ssl_h)</div><div class='add'>+</div><div class='add'>+# added in 1.1.1</div><div class='add'>+have_func("EVP_PKEY_check(NULL)", evp_h)</div><div class='add'>+have_func("EVP_PKEY_new_raw_private_key(0, NULL, (unsigned char *)\"\", 0)", evp_h)</div><div class='add'>+have_func("SSL_CTX_set_ciphersuites(NULL, \"\")", ssl_h)</div><div class='add'>+</div><div class='add'>+# added in 3.0.0</div><div class='add'>+have_func("SSL_set0_tmp_dh_pkey(NULL, NULL)", ssl_h)</div><div class='add'>+have_func("ERR_get_error_all(NULL, NULL, NULL, NULL, NULL)", "openssl/err.h")</div><div class='add'>+have_func("TS_VERIFY_CTX_set_certs(NULL, NULL)", ts_h)</div><div class='add'>+have_func("SSL_CTX_load_verify_file(NULL, \"\")", ssl_h)</div><div class='add'>+have_func("BN_check_prime(NULL, NULL, NULL)", "openssl/bn.h")</div><div class='add'>+have_func("EVP_MD_CTX_get0_md(NULL)", evp_h)</div><div class='add'>+have_func("EVP_MD_CTX_get_pkey_ctx(NULL)", evp_h)</div><div class='add'>+have_func("EVP_PKEY_eq(NULL, NULL)", evp_h)</div><div class='add'>+have_func("EVP_PKEY_dup(NULL)", evp_h)</div><div class='ctx'> </div><div class='ctx'> Logging::message "=== Checking done. ===\n"</div><div class='ctx'> </div><div class='head'>diff --git a/ext/openssl/lib/openssl.rb b/ext/openssl/lib/openssl.rb<br/>index 0914282920..8a342f15b6 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/lib/openssl.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> =begin</div><div class='ctx'> = Info</div><div class='ctx'>   'OpenSSL for Ruby 2' project</div><div class='hunk'>@@ -12,11 +12,26 @@</div><div class='ctx'> </div><div class='ctx'> require 'openssl.so'</div><div class='ctx'> </div><div class='del'>-require 'openssl/bn'</div><div class='del'>-require 'openssl/pkey'</div><div class='del'>-require 'openssl/cipher'</div><div class='del'>-require 'openssl/config'</div><div class='del'>-require 'openssl/digest'</div><div class='del'>-require 'openssl/x509'</div><div class='del'>-require 'openssl/ssl'</div><div class='del'>-require 'openssl/pkcs5'</div><div class='add'>+require_relative 'openssl/bn'</div><div class='add'>+require_relative 'openssl/pkey'</div><div class='add'>+require_relative 'openssl/cipher'</div><div class='add'>+require_relative 'openssl/digest'</div><div class='add'>+require_relative 'openssl/hmac'</div><div class='add'>+require_relative 'openssl/x509'</div><div class='add'>+require_relative 'openssl/ssl'</div><div class='add'>+require_relative 'openssl/pkcs5'</div><div class='add'>+require_relative 'openssl/version'</div><div class='add'>+</div><div class='add'>+module OpenSSL</div><div class='add'>+  # call-seq:</div><div class='add'>+  #   OpenSSL.secure_compare(string, string) -&gt; boolean</div><div class='add'>+  #</div><div class='add'>+  # Constant time memory comparison. Inputs are hashed using SHA-256 to mask</div><div class='add'>+  # the length of the secret. Returns +true+ if the strings are identical,</div><div class='add'>+  # +false+ otherwise.</div><div class='add'>+  def self.secure_compare(a, b)</div><div class='add'>+    hashed_a = OpenSSL::Digest.digest('SHA256', a)</div><div class='add'>+    hashed_b = OpenSSL::Digest.digest('SHA256', b)</div><div class='add'>+    OpenSSL.fixed_length_secure_compare(hashed_a, hashed_b) &amp;&amp; a == b</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/ext/openssl/lib/openssl/bn.rb b/ext/openssl/lib/openssl/bn.rb<br/>index 8d1ebefb6e..0a5e11b4c2 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/lib/openssl/bn.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/bn.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl/bn.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl/bn.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> #--</div><div class='ctx'> #</div><div class='ctx'> # = Ruby-space definitions that completes C-space funcs for BN</div><div class='head'>diff --git a/ext/openssl/lib/openssl/buffering.rb b/ext/openssl/lib/openssl/buffering.rb<br/>index 5d1586e594..d47e1082ef 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/lib/openssl/buffering.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/buffering.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl/buffering.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl/buffering.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> # coding: binary</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> #--</div><div class='ctx'> #= Info</div><div class='ctx'> #  'OpenSSL for Ruby 2' project</div><div class='hunk'>@@ -22,6 +22,29 @@</div><div class='ctx'> module OpenSSL::Buffering</div><div class='ctx'>   include Enumerable</div><div class='ctx'> </div><div class='add'>+  # A buffer which will retain binary encoding.</div><div class='add'>+  class Buffer &lt; String</div><div class='add'>+    BINARY = Encoding::BINARY</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      super</div><div class='add'>+</div><div class='add'>+      force_encoding(BINARY)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def &lt;&lt; string</div><div class='add'>+      if string.encoding == BINARY</div><div class='add'>+        super(string)</div><div class='add'>+      else</div><div class='add'>+        super(string.b)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return self</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    alias concat &lt;&lt;</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'>   ##</div><div class='ctx'>   # The "sync mode" of the SSLSocket.</div><div class='ctx'>   #</div><div class='hunk'>@@ -40,7 +63,7 @@ module OpenSSL::Buffering</div><div class='ctx'>   def initialize(*)</div><div class='ctx'>     super</div><div class='ctx'>     @eof = false</div><div class='del'>-    @rbuffer = ""</div><div class='add'>+    @rbuffer = Buffer.new</div><div class='ctx'>     @sync = @io.sync</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -78,6 +101,15 @@ module OpenSSL::Buffering</div><div class='ctx'> </div><div class='ctx'>   public</div><div class='ctx'> </div><div class='add'>+  # call-seq:</div><div class='add'>+  #   ssl.getbyte =&gt; 81</div><div class='add'>+  #</div><div class='add'>+  # Get the next 8bit byte from `ssl`.  Returns `nil` on EOF</div><div class='add'>+  def getbyte</div><div class='add'>+    byte = read(1)</div><div class='add'>+    byte &amp;&amp; byte.unpack1("C")</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'>   ##</div><div class='ctx'>   # Reads _size_ bytes from the stream.  If _buf_ is provided it must</div><div class='ctx'>   # reference a string which will receive the data.</div><div class='hunk'>@@ -312,7 +344,7 @@ module OpenSSL::Buffering</div><div class='ctx'>   # buffer is flushed to the underlying socket.</div><div class='ctx'> </div><div class='ctx'>   def do_write(s)</div><div class='del'>-    @wbuffer = "" unless defined? @wbuffer</div><div class='add'>+    @wbuffer = Buffer.new unless defined? @wbuffer</div><div class='ctx'>     @wbuffer &lt;&lt; s</div><div class='ctx'>     @wbuffer.force_encoding(Encoding::BINARY)</div><div class='ctx'>     @sync ||= false</div><div class='hunk'>@@ -398,7 +430,7 @@ module OpenSSL::Buffering</div><div class='ctx'>   # See IO#puts for full details.</div><div class='ctx'> </div><div class='ctx'>   def puts(*args)</div><div class='del'>-    s = ""</div><div class='add'>+    s = Buffer.new</div><div class='ctx'>     if args.empty?</div><div class='ctx'>       s &lt;&lt; "\n"</div><div class='ctx'>     end</div><div class='hunk'>@@ -416,7 +448,7 @@ module OpenSSL::Buffering</div><div class='ctx'>   # See IO#print for full details.</div><div class='ctx'> </div><div class='ctx'>   def print(*args)</div><div class='del'>-    s = ""</div><div class='add'>+    s = Buffer.new</div><div class='ctx'>     args.each{ |arg| s &lt;&lt; arg.to_s }</div><div class='ctx'>     do_write(s)</div><div class='ctx'>     nil</div><div class='head'>diff --git a/ext/openssl/lib/openssl/cipher.rb b/ext/openssl/lib/openssl/cipher.rb<br/>index af721b3a80..8ad8c35dd3 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/lib/openssl/cipher.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/cipher.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl/cipher.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl/cipher.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> #--</div><div class='ctx'> # = Ruby-space predefined Cipher subclasses</div><div class='ctx'> #</div><div class='head'>diff --git a/ext/openssl/lib/openssl/config.rb b/ext/openssl/lib/openssl/config.rb<br/>deleted file mode 100644<br/>index 48d8be0069..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/openssl/lib/openssl/config.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/config.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,474 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-=begin</div><div class='del'>-= Ruby-space definitions that completes C-space funcs for Config</div><div class='del'>-</div><div class='del'>-= Info</div><div class='del'>-  Copyright (C) 2010  Hiroshi Nakamura &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-= Licence</div><div class='del'>-  This program is licensed under the same licence as Ruby.</div><div class='del'>-  (See the file 'LICENCE'.)</div><div class='del'>-</div><div class='del'>-=end</div><div class='del'>-</div><div class='del'>-require 'stringio'</div><div class='del'>-</div><div class='del'>-module OpenSSL</div><div class='del'>-  ##</div><div class='del'>-  # = OpenSSL::Config</div><div class='del'>-  #</div><div class='del'>-  # Configuration for the openssl library.</div><div class='del'>-  #</div><div class='del'>-  # Many system's installation of openssl library will depend on your system</div><div class='del'>-  # configuration. See the value of OpenSSL::Config::DEFAULT_CONFIG_FILE for</div><div class='del'>-  # the location of the file for your host.</div><div class='del'>-  #</div><div class='del'>-  # See also http://www.openssl.org/docs/apps/config.html</div><div class='del'>-  class Config</div><div class='del'>-    include Enumerable</div><div class='del'>-</div><div class='del'>-    class &lt;&lt; self</div><div class='del'>-</div><div class='del'>-      ##</div><div class='del'>-      # Parses a given _string_ as a blob that contains configuration for</div><div class='del'>-      # OpenSSL.</div><div class='del'>-      #</div><div class='del'>-      # If the source of the IO is a file, then consider using #parse_config.</div><div class='del'>-      def parse(string)</div><div class='del'>-        c = new()</div><div class='del'>-        parse_config(StringIO.new(string)).each do |section, hash|</div><div class='del'>-          c[section] = hash</div><div class='del'>-        end</div><div class='del'>-        c</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      ##</div><div class='del'>-      # load is an alias to ::new</div><div class='del'>-      alias load new</div><div class='del'>-</div><div class='del'>-      ##</div><div class='del'>-      # Parses the configuration data read from _io_, see also #parse.</div><div class='del'>-      #</div><div class='del'>-      # Raises a ConfigError on invalid configuration data.</div><div class='del'>-      def parse_config(io)</div><div class='del'>-        begin</div><div class='del'>-          parse_config_lines(io)</div><div class='del'>-        rescue ConfigError =&gt; e</div><div class='del'>-          e.message.replace("error in line #{io.lineno}: " + e.message)</div><div class='del'>-          raise</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def get_key_string(data, section, key) # :nodoc:</div><div class='del'>-        if v = data[section] &amp;&amp; data[section][key]</div><div class='del'>-          return v</div><div class='del'>-        elsif section == 'ENV'</div><div class='del'>-          if v = ENV[key]</div><div class='del'>-            return v</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        if v = data['default'] &amp;&amp; data['default'][key]</div><div class='del'>-          return v</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-    private</div><div class='del'>-</div><div class='del'>-      def parse_config_lines(io)</div><div class='del'>-        section = 'default'</div><div class='del'>-        data = {section =&gt; {}}</div><div class='del'>-        while definition = get_definition(io)</div><div class='del'>-          definition = clear_comments(definition)</div><div class='del'>-          next if definition.empty?</div><div class='del'>-          if definition[0] == ?[</div><div class='del'>-            if /\[([^\]]*)\]/ =~ definition</div><div class='del'>-              section = $1.strip</div><div class='del'>-              data[section] ||= {}</div><div class='del'>-            else</div><div class='del'>-              raise ConfigError, "missing close square bracket"</div><div class='del'>-            end</div><div class='del'>-          else</div><div class='del'>-            if /\A([^:\s]*)(?:::([^:\s]*))?\s*=(.*)\z/ =~ definition</div><div class='del'>-              if $2</div><div class='del'>-                section = $1</div><div class='del'>-                key = $2</div><div class='del'>-              else</div><div class='del'>-                key = $1</div><div class='del'>-              end</div><div class='del'>-              value = unescape_value(data, section, $3)</div><div class='del'>-              (data[section] ||= {})[key] = value.strip</div><div class='del'>-            else</div><div class='del'>-              raise ConfigError, "missing equal sign"</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        data</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # escape with backslash</div><div class='del'>-      QUOTE_REGEXP_SQ = /\A([^'\\]*(?:\\.[^'\\]*)*)'/</div><div class='del'>-      # escape with backslash and doubled dq</div><div class='del'>-      QUOTE_REGEXP_DQ = /\A([^"\\]*(?:""[^"\\]*|\\.[^"\\]*)*)"/</div><div class='del'>-      # escaped char map</div><div class='del'>-      ESCAPE_MAP = {</div><div class='del'>-        "r" =&gt; "\r",</div><div class='del'>-        "n" =&gt; "\n",</div><div class='del'>-        "b" =&gt; "\b",</div><div class='del'>-        "t" =&gt; "\t",</div><div class='del'>-      }</div><div class='del'>-</div><div class='del'>-      def unescape_value(data, section, value)</div><div class='del'>-        scanned = []</div><div class='del'>-        while m = value.match(/['"\\$]/)</div><div class='del'>-          scanned &lt;&lt; m.pre_match</div><div class='del'>-          c = m[0]</div><div class='del'>-          value = m.post_match</div><div class='del'>-          case c</div><div class='del'>-          when "'"</div><div class='del'>-            if m = value.match(QUOTE_REGEXP_SQ)</div><div class='del'>-              scanned &lt;&lt; m[1].gsub(/\\(.)/, '\\1')</div><div class='del'>-              value = m.post_match</div><div class='del'>-            else</div><div class='del'>-              break</div><div class='del'>-            end</div><div class='del'>-          when '"'</div><div class='del'>-            if m = value.match(QUOTE_REGEXP_DQ)</div><div class='del'>-              scanned &lt;&lt; m[1].gsub(/""/, '').gsub(/\\(.)/, '\\1')</div><div class='del'>-              value = m.post_match</div><div class='del'>-            else</div><div class='del'>-              break</div><div class='del'>-            end</div><div class='del'>-          when "\\"</div><div class='del'>-            c = value.slice!(0, 1)</div><div class='del'>-            scanned &lt;&lt; (ESCAPE_MAP[c] || c)</div><div class='del'>-          when "$"</div><div class='del'>-            ref, value = extract_reference(value)</div><div class='del'>-            refsec = section</div><div class='del'>-            if ref.index('::')</div><div class='del'>-              refsec, ref = ref.split('::', 2)</div><div class='del'>-            end</div><div class='del'>-            if v = get_key_string(data, refsec, ref)</div><div class='del'>-              scanned &lt;&lt; v</div><div class='del'>-            else</div><div class='del'>-              raise ConfigError, "variable has no value"</div><div class='del'>-            end</div><div class='del'>-          else</div><div class='del'>-            raise 'must not reaced'</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        scanned &lt;&lt; value</div><div class='del'>-        scanned.join</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def extract_reference(value)</div><div class='del'>-        rest = ''</div><div class='del'>-        if m = value.match(/\(([^)]*)\)|\{([^}]*)\}/)</div><div class='del'>-          value = m[1] || m[2]</div><div class='del'>-          rest = m.post_match</div><div class='del'>-        elsif [?(, ?{].include?(value[0])</div><div class='del'>-          raise ConfigError, "no close brace"</div><div class='del'>-        end</div><div class='del'>-        if m = value.match(/[a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]*)?/)</div><div class='del'>-          return m[0], m.post_match + rest</div><div class='del'>-        else</div><div class='del'>-          raise</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def clear_comments(line)</div><div class='del'>-        # FCOMMENT</div><div class='del'>-        if m = line.match(/\A([\t\n\f ]*);.*\z/)</div><div class='del'>-          return m[1]</div><div class='del'>-        end</div><div class='del'>-        # COMMENT</div><div class='del'>-        scanned = []</div><div class='del'>-        while m = line.match(/[#'"\\]/)</div><div class='del'>-          scanned &lt;&lt; m.pre_match</div><div class='del'>-          c = m[0]</div><div class='del'>-          line = m.post_match</div><div class='del'>-          case c</div><div class='del'>-          when '#'</div><div class='del'>-            line = nil</div><div class='del'>-            break</div><div class='del'>-          when "'", '"'</div><div class='del'>-            regexp = (c == "'") ? QUOTE_REGEXP_SQ : QUOTE_REGEXP_DQ</div><div class='del'>-            scanned &lt;&lt; c</div><div class='del'>-            if m = line.match(regexp)</div><div class='del'>-              scanned &lt;&lt; m[0]</div><div class='del'>-              line = m.post_match</div><div class='del'>-            else</div><div class='del'>-              scanned &lt;&lt; line</div><div class='del'>-              line = nil</div><div class='del'>-              break</div><div class='del'>-            end</div><div class='del'>-          when "\\"</div><div class='del'>-            scanned &lt;&lt; c</div><div class='del'>-            scanned &lt;&lt; line.slice!(0, 1)</div><div class='del'>-          else</div><div class='del'>-            raise 'must not reaced'</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        scanned &lt;&lt; line</div><div class='del'>-        scanned.join</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def get_definition(io)</div><div class='del'>-        if line = get_line(io)</div><div class='del'>-          while /[^\\]\\\z/ =~ line</div><div class='del'>-            if extra = get_line(io)</div><div class='del'>-              line += extra</div><div class='del'>-            else</div><div class='del'>-              break</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-          return line.strip</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def get_line(io)</div><div class='del'>-        if line = io.gets</div><div class='del'>-          line.gsub(/[\r\n]*/, '')</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # Creates an instance of OpenSSL's configuration class.</div><div class='del'>-    #</div><div class='del'>-    # This can be used in contexts like OpenSSL::X509::ExtensionFactory.config=</div><div class='del'>-    #</div><div class='del'>-    # If the optional _filename_ parameter is provided, then it is read in and</div><div class='del'>-    # parsed via #parse_config.</div><div class='del'>-    #</div><div class='del'>-    # This can raise IO exceptions based on the access, or availability of the</div><div class='del'>-    # file. A ConfigError exception may be raised depending on the validity of</div><div class='del'>-    # the data being configured.</div><div class='del'>-    #</div><div class='del'>-    def initialize(filename = nil)</div><div class='del'>-      @data = {}</div><div class='del'>-      if filename</div><div class='del'>-        File.open(filename.to_s) do |file|</div><div class='del'>-          Config.parse_config(file).each do |section, hash|</div><div class='del'>-            self[section] = hash</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # Gets the value of _key_ from the given _section_</div><div class='del'>-    #</div><div class='del'>-    # Given the following configurating file being loaded:</div><div class='del'>-    #</div><div class='del'>-    #   config = OpenSSL::Config.load('foo.cnf')</div><div class='del'>-    #     #=&gt; #&lt;OpenSSL::Config sections=["default"]&gt;</div><div class='del'>-    #   puts config.to_s</div><div class='del'>-    #     #=&gt; [ default ]</div><div class='del'>-    #     #   foo=bar</div><div class='del'>-    #</div><div class='del'>-    # You can get a specific value from the config if you know the _section_</div><div class='del'>-    # and _key_ like so:</div><div class='del'>-    #</div><div class='del'>-    #   config.get_value('default','foo')</div><div class='del'>-    #     #=&gt; "bar"</div><div class='del'>-    #</div><div class='del'>-    def get_value(section, key)</div><div class='del'>-      if section.nil?</div><div class='del'>-        raise TypeError.new('nil not allowed')</div><div class='del'>-      end</div><div class='del'>-      section = 'default' if section.empty?</div><div class='del'>-      get_key_string(section, key)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    #</div><div class='del'>-    # *Deprecated*</div><div class='del'>-    #</div><div class='del'>-    # Use #get_value instead</div><div class='del'>-    def value(arg1, arg2 = nil) # :nodoc:</div><div class='del'>-      warn('Config#value is deprecated; use Config#get_value')</div><div class='del'>-      if arg2.nil?</div><div class='del'>-        section, key = 'default', arg1</div><div class='del'>-      else</div><div class='del'>-        section, key = arg1, arg2</div><div class='del'>-      end</div><div class='del'>-      section ||= 'default'</div><div class='del'>-      section = 'default' if section.empty?</div><div class='del'>-      get_key_string(section, key)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # Set the target _key_ with a given _value_ under a specific _section_.</div><div class='del'>-    #</div><div class='del'>-    # Given the following configurating file being loaded:</div><div class='del'>-    #</div><div class='del'>-    #   config = OpenSSL::Config.load('foo.cnf')</div><div class='del'>-    #     #=&gt; #&lt;OpenSSL::Config sections=["default"]&gt;</div><div class='del'>-    #   puts config.to_s</div><div class='del'>-    #     #=&gt; [ default ]</div><div class='del'>-    #     #   foo=bar</div><div class='del'>-    #</div><div class='del'>-    # You can set the value of _foo_ under the _default_ section to a new</div><div class='del'>-    # value:</div><div class='del'>-    #</div><div class='del'>-    #   config.add_value('default', 'foo', 'buzz')</div><div class='del'>-    #     #=&gt; "buzz"</div><div class='del'>-    #   puts config.to_s</div><div class='del'>-    #     #=&gt; [ default ]</div><div class='del'>-    #     #   foo=buzz</div><div class='del'>-    #</div><div class='del'>-    def add_value(section, key, value)</div><div class='del'>-      check_modify</div><div class='del'>-      (@data[section] ||= {})[key] = value</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # Get a specific _section_ from the current configuration</div><div class='del'>-    #</div><div class='del'>-    # Given the following configurating file being loaded:</div><div class='del'>-    #</div><div class='del'>-    #   config = OpenSSL::Config.load('foo.cnf')</div><div class='del'>-    #     #=&gt; #&lt;OpenSSL::Config sections=["default"]&gt;</div><div class='del'>-    #   puts config.to_s</div><div class='del'>-    #     #=&gt; [ default ]</div><div class='del'>-    #     #   foo=bar</div><div class='del'>-    #</div><div class='del'>-    # You can get a hash of the specific section like so:</div><div class='del'>-    #</div><div class='del'>-    #   config['default']</div><div class='del'>-    #     #=&gt; {"foo"=&gt;"bar"}</div><div class='del'>-    #</div><div class='del'>-    def [](section)</div><div class='del'>-      @data[section] || {}</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # Deprecated</div><div class='del'>-    #</div><div class='del'>-    # Use #[] instead</div><div class='del'>-    def section(name) # :nodoc:</div><div class='del'>-      warn('Config#section is deprecated; use Config#[]')</div><div class='del'>-      @data[name] || {}</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # Sets a specific _section_ name with a Hash _pairs_.</div><div class='del'>-    #</div><div class='del'>-    # Given the following configuration being created:</div><div class='del'>-    #</div><div class='del'>-    #   config = OpenSSL::Config.new</div><div class='del'>-    #     #=&gt; #&lt;OpenSSL::Config sections=[]&gt;</div><div class='del'>-    #   config['default'] = {"foo"=&gt;"bar","baz"=&gt;"buz"}</div><div class='del'>-    #     #=&gt; {"foo"=&gt;"bar", "baz"=&gt;"buz"}</div><div class='del'>-    #   puts config.to_s</div><div class='del'>-    #     #=&gt; [ default ]</div><div class='del'>-    #     #   foo=bar</div><div class='del'>-    #     #   baz=buz</div><div class='del'>-    #</div><div class='del'>-    # It's important to note that this will essentially merge any of the keys</div><div class='del'>-    # in _pairs_ with the existing _section_. For example:</div><div class='del'>-    #</div><div class='del'>-    #   config['default']</div><div class='del'>-    #     #=&gt; {"foo"=&gt;"bar", "baz"=&gt;"buz"}</div><div class='del'>-    #   config['default'] = {"foo" =&gt; "changed"}</div><div class='del'>-    #     #=&gt; {"foo"=&gt;"changed"}</div><div class='del'>-    #   config['default']</div><div class='del'>-    #     #=&gt; {"foo"=&gt;"changed", "baz"=&gt;"buz"}</div><div class='del'>-    #</div><div class='del'>-    def []=(section, pairs)</div><div class='del'>-      check_modify</div><div class='del'>-      @data[section] ||= {}</div><div class='del'>-      pairs.each do |key, value|</div><div class='del'>-        self.add_value(section, key, value)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # Get the names of all sections in the current configuration</div><div class='del'>-    def sections</div><div class='del'>-      @data.keys</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # Get the parsable form of the current configuration</div><div class='del'>-    #</div><div class='del'>-    # Given the following configuration being created:</div><div class='del'>-    #</div><div class='del'>-    #   config = OpenSSL::Config.new</div><div class='del'>-    #     #=&gt; #&lt;OpenSSL::Config sections=[]&gt;</div><div class='del'>-    #   config['default'] = {"foo"=&gt;"bar","baz"=&gt;"buz"}</div><div class='del'>-    #     #=&gt; {"foo"=&gt;"bar", "baz"=&gt;"buz"}</div><div class='del'>-    #   puts config.to_s</div><div class='del'>-    #     #=&gt; [ default ]</div><div class='del'>-    #     #   foo=bar</div><div class='del'>-    #     #   baz=buz</div><div class='del'>-    #</div><div class='del'>-    # You can parse get the serialized configuration using #to_s and then parse</div><div class='del'>-    # it later:</div><div class='del'>-    #</div><div class='del'>-    #   serialized_config = config.to_s</div><div class='del'>-    #   # much later...</div><div class='del'>-    #   new_config = OpenSSL::Config.parse(serialized_config)</div><div class='del'>-    #     #=&gt; #&lt;OpenSSL::Config sections=["default"]&gt;</div><div class='del'>-    #   puts new_config</div><div class='del'>-    #     #=&gt; [ default ]</div><div class='del'>-    #         foo=bar</div><div class='del'>-    #         baz=buz</div><div class='del'>-    #</div><div class='del'>-    def to_s</div><div class='del'>-      ary = []</div><div class='del'>-      @data.keys.sort.each do |section|</div><div class='del'>-        ary &lt;&lt; "[ #{section} ]\n"</div><div class='del'>-        @data[section].keys.each do |key|</div><div class='del'>-          ary &lt;&lt; "#{key}=#{@data[section][key]}\n"</div><div class='del'>-        end</div><div class='del'>-        ary &lt;&lt; "\n"</div><div class='del'>-      end</div><div class='del'>-      ary.join</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # For a block.</div><div class='del'>-    #</div><div class='del'>-    # Receive the section and its pairs for the current configuration.</div><div class='del'>-    #</div><div class='del'>-    #   config.each do |section, key, value|</div><div class='del'>-    #     # ...</div><div class='del'>-    #   end</div><div class='del'>-    #</div><div class='del'>-    def each</div><div class='del'>-      @data.each do |section, hash|</div><div class='del'>-        hash.each do |key, value|</div><div class='del'>-          yield [section, key, value]</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # String representation of this configuration object, including the class</div><div class='del'>-    # name and its sections.</div><div class='del'>-    def inspect</div><div class='del'>-      "#&lt;#{self.class.name} sections=#{sections.inspect}&gt;"</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-  protected</div><div class='del'>-</div><div class='del'>-    def data # :nodoc:</div><div class='del'>-      @data</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-  private</div><div class='del'>-</div><div class='del'>-    def initialize_copy(other)</div><div class='del'>-      @data = other.data.dup</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def check_modify</div><div class='del'>-      raise TypeError.new("Insecure: can't modify OpenSSL config") if frozen?</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def get_key_string(section, key)</div><div class='del'>-      Config.get_key_string(@data, section, key)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/ext/openssl/lib/openssl/digest.rb b/ext/openssl/lib/openssl/digest.rb<br/>index b6744de6bd..2ff8398e44 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/lib/openssl/digest.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/digest.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl/digest.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl/digest.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> #--</div><div class='ctx'> # = Ruby-space predefined Digest subclasses</div><div class='ctx'> #</div><div class='hunk'>@@ -15,11 +15,6 @@</div><div class='ctx'> module OpenSSL</div><div class='ctx'>   class Digest</div><div class='ctx'> </div><div class='del'>-    alg = %w(MD2 MD4 MD5 MDC2 RIPEMD160 SHA1 SHA224 SHA256 SHA384 SHA512)</div><div class='del'>-    if OPENSSL_VERSION_NUMBER &lt; 0x10100000</div><div class='del'>-      alg += %w(DSS DSS1 SHA)</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     # Return the hash value computed with _name_ Digest. _name_ is either the</div><div class='ctx'>     # long name or short name of a supported digest algorithm.</div><div class='ctx'>     #</div><div class='hunk'>@@ -29,23 +24,26 @@ module OpenSSL</div><div class='ctx'>     #</div><div class='ctx'>     # which is equivalent to:</div><div class='ctx'>     #</div><div class='del'>-    #   OpenSSL::Digest::SHA256.digest("abc")</div><div class='add'>+    #   OpenSSL::Digest.digest('SHA256', "abc")</div><div class='ctx'> </div><div class='ctx'>     def self.digest(name, data)</div><div class='ctx'>       super(data, name)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    alg.each{|name|</div><div class='add'>+    %w(MD4 MD5 RIPEMD160 SHA1 SHA224 SHA256 SHA384 SHA512).each do |name|</div><div class='ctx'>       klass = Class.new(self) {</div><div class='ctx'>         define_method(:initialize, -&gt;(data = nil) {super(name, data)})</div><div class='ctx'>       }</div><div class='add'>+</div><div class='ctx'>       singleton = (class &lt;&lt; klass; self; end)</div><div class='add'>+</div><div class='ctx'>       singleton.class_eval{</div><div class='del'>-        define_method(:digest){|data| new.digest(data) }</div><div class='del'>-        define_method(:hexdigest){|data| new.hexdigest(data) }</div><div class='add'>+        define_method(:digest) {|data| new.digest(data)}</div><div class='add'>+        define_method(:hexdigest) {|data| new.hexdigest(data)}</div><div class='ctx'>       }</div><div class='del'>-      const_set(name, klass)</div><div class='del'>-    }</div><div class='add'>+</div><div class='add'>+      const_set(name.tr('-', '_'), klass)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     # Deprecated.</div><div class='ctx'>     #</div><div class='head'>diff --git a/ext/openssl/lib/openssl/hmac.rb b/ext/openssl/lib/openssl/hmac.rb<br/>new file mode 100644<br/>index 0000000000..c8c844d8d7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl/hmac.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl/hmac.rb</a></div><div class='hunk'>@@ -0,0 +1,78 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module OpenSSL</div><div class='add'>+  class HMAC</div><div class='add'>+    # Securely compare with another HMAC instance in constant time.</div><div class='add'>+    def ==(other)</div><div class='add'>+      return false unless HMAC === other</div><div class='add'>+      return false unless self.digest.bytesize == other.digest.bytesize</div><div class='add'>+</div><div class='add'>+      OpenSSL.fixed_length_secure_compare(self.digest, other.digest)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    hmac.base64digest -&gt; string</div><div class='add'>+    #</div><div class='add'>+    # Returns the authentication code an a Base64-encoded string.</div><div class='add'>+    def base64digest</div><div class='add'>+      [digest].pack("m0")</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      # :call-seq:</div><div class='add'>+      #    HMAC.digest(digest, key, data) -&gt; aString</div><div class='add'>+      #</div><div class='add'>+      # Returns the authentication code as a binary string. The _digest_ parameter</div><div class='add'>+      # specifies the digest algorithm to use. This may be a String representing</div><div class='add'>+      # the algorithm name or an instance of OpenSSL::Digest.</div><div class='add'>+      #</div><div class='add'>+      # === Example</div><div class='add'>+      #  key = 'key'</div><div class='add'>+      #  data = 'The quick brown fox jumps over the lazy dog'</div><div class='add'>+      #</div><div class='add'>+      #  hmac = OpenSSL::HMAC.digest('SHA1', key, data)</div><div class='add'>+      #  #=&gt; "\xDE|\x9B\x85\xB8\xB7\x8A\xA6\xBC\x8Az6\xF7\n\x90p\x1C\x9D\xB4\xD9"</div><div class='add'>+      def digest(digest, key, data)</div><div class='add'>+        hmac = new(key, digest)</div><div class='add'>+        hmac &lt;&lt; data</div><div class='add'>+        hmac.digest</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # :call-seq:</div><div class='add'>+      #    HMAC.hexdigest(digest, key, data) -&gt; aString</div><div class='add'>+      #</div><div class='add'>+      # Returns the authentication code as a hex-encoded string. The _digest_</div><div class='add'>+      # parameter specifies the digest algorithm to use. This may be a String</div><div class='add'>+      # representing the algorithm name or an instance of OpenSSL::Digest.</div><div class='add'>+      #</div><div class='add'>+      # === Example</div><div class='add'>+      #  key = 'key'</div><div class='add'>+      #  data = 'The quick brown fox jumps over the lazy dog'</div><div class='add'>+      #</div><div class='add'>+      #  hmac = OpenSSL::HMAC.hexdigest('SHA1', key, data)</div><div class='add'>+      #  #=&gt; "de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9"</div><div class='add'>+      def hexdigest(digest, key, data)</div><div class='add'>+        hmac = new(key, digest)</div><div class='add'>+        hmac &lt;&lt; data</div><div class='add'>+        hmac.hexdigest</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # :call-seq:</div><div class='add'>+      #    HMAC.base64digest(digest, key, data) -&gt; aString</div><div class='add'>+      #</div><div class='add'>+      # Returns the authentication code as a Base64-encoded string. The _digest_</div><div class='add'>+      # parameter specifies the digest algorithm to use. This may be a String</div><div class='add'>+      # representing the algorithm name or an instance of OpenSSL::Digest.</div><div class='add'>+      #</div><div class='add'>+      # === Example</div><div class='add'>+      #  key = 'key'</div><div class='add'>+      #  data = 'The quick brown fox jumps over the lazy dog'</div><div class='add'>+      #</div><div class='add'>+      #  hmac = OpenSSL::HMAC.base64digest('SHA1', key, data)</div><div class='add'>+      #  #=&gt; "3nybhbi3iqa8ino29wqQcBydtNk="</div><div class='add'>+      def base64digest(digest, key, data)</div><div class='add'>+        [digest(digest, key, data)].pack("m0")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/ext/openssl/lib/openssl/marshal.rb b/ext/openssl/lib/openssl/marshal.rb<br/>new file mode 100644<br/>index 0000000000..af5647192a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl/marshal.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl/marshal.rb</a></div><div class='hunk'>@@ -0,0 +1,30 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+#--</div><div class='add'>+# = Ruby-space definitions to add DER (de)serialization to classes</div><div class='add'>+#</div><div class='add'>+# = Info</div><div class='add'>+# 'OpenSSL for Ruby 2' project</div><div class='add'>+# Copyright (C) 2002  Michal Rokos &lt;m.rokos@sh.cvut.cz&gt;</div><div class='add'>+# All rights reserved.</div><div class='add'>+#</div><div class='add'>+# = Licence</div><div class='add'>+# This program is licensed under the same licence as Ruby.</div><div class='add'>+# (See the file 'LICENCE'.)</div><div class='add'>+#++</div><div class='add'>+module OpenSSL</div><div class='add'>+  module Marshal</div><div class='add'>+    def self.included(base)</div><div class='add'>+      base.extend(ClassMethods)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    module ClassMethods</div><div class='add'>+      def _load(string)</div><div class='add'>+        new(string)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def _dump(_level)</div><div class='add'>+      to_der</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/ext/openssl/lib/openssl/pkcs5.rb b/ext/openssl/lib/openssl/pkcs5.rb<br/>index 959447df5e..8dedc4beef 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/lib/openssl/pkcs5.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/pkcs5.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl/pkcs5.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl/pkcs5.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> #--</div><div class='ctx'> # Ruby/OpenSSL Project</div><div class='ctx'> # Copyright (C) 2017 Ruby/OpenSSL Project Authors</div><div class='head'>diff --git a/ext/openssl/lib/openssl/pkey.rb b/ext/openssl/lib/openssl/pkey.rb<br/>index 8a547c340d..0414658a10 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/lib/openssl/pkey.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/pkey.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl/pkey.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl/pkey.rb</a></div><div class='hunk'>@@ -1,11 +1,298 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> #--</div><div class='ctx'> # Ruby/OpenSSL Project</div><div class='ctx'> # Copyright (C) 2017 Ruby/OpenSSL Project Authors</div><div class='ctx'> #++</div><div class='ctx'> </div><div class='add'>+require_relative 'marshal'</div><div class='add'>+</div><div class='ctx'> module OpenSSL::PKey</div><div class='add'>+  class DH</div><div class='add'>+    include OpenSSL::Marshal</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    dh.public_key -&gt; dhnew</div><div class='add'>+    #</div><div class='add'>+    # Returns a new DH instance that carries just the \DH parameters.</div><div class='add'>+    #</div><div class='add'>+    # Contrary to the method name, the returned DH object contains only</div><div class='add'>+    # parameters and not the public key.</div><div class='add'>+    #</div><div class='add'>+    # This method is provided for backwards compatibility. In most cases, there</div><div class='add'>+    # is no need to call this method.</div><div class='add'>+    #</div><div class='add'>+    # For the purpose of re-generating the key pair while keeping the</div><div class='add'>+    # parameters, check OpenSSL::PKey.generate_key.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #   # OpenSSL::PKey::DH.generate by default generates a random key pair</div><div class='add'>+    #   dh1 = OpenSSL::PKey::DH.generate(2048)</div><div class='add'>+    #   p dh1.priv_key #=&gt; #&lt;OpenSSL::BN 1288347...&gt;</div><div class='add'>+    #   dhcopy = dh1.public_key</div><div class='add'>+    #   p dhcopy.priv_key #=&gt; nil</div><div class='add'>+    def public_key</div><div class='add'>+      DH.new(to_der)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    dh.compute_key(pub_bn) -&gt; string</div><div class='add'>+    #</div><div class='add'>+    # Returns a String containing a shared secret computed from the other</div><div class='add'>+    # party's public value.</div><div class='add'>+    #</div><div class='add'>+    # This method is provided for backwards compatibility, and calls #derive</div><div class='add'>+    # internally.</div><div class='add'>+    #</div><div class='add'>+    # === Parameters</div><div class='add'>+    # * _pub_bn_ is a OpenSSL::BN, *not* the DH instance returned by</div><div class='add'>+    #   DH#public_key as that contains the DH parameters only.</div><div class='add'>+    def compute_key(pub_bn)</div><div class='add'>+      # FIXME: This is constructing an X.509 SubjectPublicKeyInfo and is very</div><div class='add'>+      # inefficient</div><div class='add'>+      obj = OpenSSL::ASN1.Sequence([</div><div class='add'>+        OpenSSL::ASN1.Sequence([</div><div class='add'>+          OpenSSL::ASN1.ObjectId("dhKeyAgreement"),</div><div class='add'>+          OpenSSL::ASN1.Sequence([</div><div class='add'>+            OpenSSL::ASN1.Integer(p),</div><div class='add'>+            OpenSSL::ASN1.Integer(g),</div><div class='add'>+          ]),</div><div class='add'>+        ]),</div><div class='add'>+        OpenSSL::ASN1.BitString(OpenSSL::ASN1.Integer(pub_bn).to_der),</div><div class='add'>+      ])</div><div class='add'>+      derive(OpenSSL::PKey.read(obj.to_der))</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    dh.generate_key! -&gt; self</div><div class='add'>+    #</div><div class='add'>+    # Generates a private and public key unless a private key already exists.</div><div class='add'>+    # If this DH instance was generated from public \DH parameters (e.g. by</div><div class='add'>+    # encoding the result of DH#public_key), then this method needs to be</div><div class='add'>+    # called first in order to generate the per-session keys before performing</div><div class='add'>+    # the actual key exchange.</div><div class='add'>+    #</div><div class='add'>+    # &lt;b&gt;Deprecated in version 3.0&lt;/b&gt;. This method is incompatible with</div><div class='add'>+    # OpenSSL 3.0.0 or later.</div><div class='add'>+    #</div><div class='add'>+    # See also OpenSSL::PKey.generate_key.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #   # DEPRECATED USAGE: This will not work on OpenSSL 3.0 or later</div><div class='add'>+    #   dh0 = OpenSSL::PKey::DH.new(2048)</div><div class='add'>+    #   dh = dh0.public_key # #public_key only copies the DH parameters (contrary to the name)</div><div class='add'>+    #   dh.generate_key!</div><div class='add'>+    #   puts dh.private? # =&gt; true</div><div class='add'>+    #   puts dh0.pub_key == dh.pub_key #=&gt; false</div><div class='add'>+    #</div><div class='add'>+    #   # With OpenSSL::PKey.generate_key</div><div class='add'>+    #   dh0 = OpenSSL::PKey::DH.new(2048)</div><div class='add'>+    #   dh = OpenSSL::PKey.generate_key(dh0)</div><div class='add'>+    #   puts dh0.pub_key == dh.pub_key #=&gt; false</div><div class='add'>+    def generate_key!</div><div class='add'>+      if OpenSSL::OPENSSL_VERSION_NUMBER &gt;= 0x30000000</div><div class='add'>+        raise DHError, "OpenSSL::PKey::DH is immutable on OpenSSL 3.0; " \</div><div class='add'>+        "use OpenSSL::PKey.generate_key instead"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      unless priv_key</div><div class='add'>+        tmp = OpenSSL::PKey.generate_key(self)</div><div class='add'>+        set_key(tmp.pub_key, tmp.priv_key)</div><div class='add'>+      end</div><div class='add'>+      self</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      # :call-seq:</div><div class='add'>+      #    DH.generate(size, generator = 2) -&gt; dh</div><div class='add'>+      #</div><div class='add'>+      # Creates a new DH instance from scratch by generating random parameters</div><div class='add'>+      # and a key pair.</div><div class='add'>+      #</div><div class='add'>+      # See also OpenSSL::PKey.generate_parameters and</div><div class='add'>+      # OpenSSL::PKey.generate_key.</div><div class='add'>+      #</div><div class='add'>+      # +size+::</div><div class='add'>+      #   The desired key size in bits.</div><div class='add'>+      # +generator+::</div><div class='add'>+      #   The generator.</div><div class='add'>+      def generate(size, generator = 2, &amp;blk)</div><div class='add'>+        dhparams = OpenSSL::PKey.generate_parameters("DH", {</div><div class='add'>+          "dh_paramgen_prime_len" =&gt; size,</div><div class='add'>+          "dh_paramgen_generator" =&gt; generator,</div><div class='add'>+        }, &amp;blk)</div><div class='add'>+        OpenSSL::PKey.generate_key(dhparams)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Handle DH.new(size, generator) form here; new(str) and new() forms</div><div class='add'>+      # are handled by #initialize</div><div class='add'>+      def new(*args, &amp;blk) # :nodoc:</div><div class='add'>+        if args[0].is_a?(Integer)</div><div class='add'>+          generate(*args, &amp;blk)</div><div class='add'>+        else</div><div class='add'>+          super</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class DSA</div><div class='add'>+    include OpenSSL::Marshal</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    dsa.public_key -&gt; dsanew</div><div class='add'>+    #</div><div class='add'>+    # Returns a new DSA instance that carries just the \DSA parameters and the</div><div class='add'>+    # public key.</div><div class='add'>+    #</div><div class='add'>+    # This method is provided for backwards compatibility. In most cases, there</div><div class='add'>+    # is no need to call this method.</div><div class='add'>+    #</div><div class='add'>+    # For the purpose of serializing the public key, to PEM or DER encoding of</div><div class='add'>+    # X.509 SubjectPublicKeyInfo format, check PKey#public_to_pem and</div><div class='add'>+    # PKey#public_to_der.</div><div class='add'>+    def public_key</div><div class='add'>+      OpenSSL::PKey.read(public_to_der)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      # :call-seq:</div><div class='add'>+      #    DSA.generate(size) -&gt; dsa</div><div class='add'>+      #</div><div class='add'>+      # Creates a new DSA instance by generating a private/public key pair</div><div class='add'>+      # from scratch.</div><div class='add'>+      #</div><div class='add'>+      # See also OpenSSL::PKey.generate_parameters and</div><div class='add'>+      # OpenSSL::PKey.generate_key.</div><div class='add'>+      #</div><div class='add'>+      # +size+::</div><div class='add'>+      #   The desired key size in bits.</div><div class='add'>+      def generate(size, &amp;blk)</div><div class='add'>+        # FIPS 186-4 specifies four (L,N) pairs: (1024,160), (2048,224),</div><div class='add'>+        # (2048,256), and (3072,256).</div><div class='add'>+        #</div><div class='add'>+        # q size is derived here with compatibility with</div><div class='add'>+        # DSA_generator_parameters_ex() which previous versions of ruby/openssl</div><div class='add'>+        # used to call.</div><div class='add'>+        qsize = size &gt;= 2048 ? 256 : 160</div><div class='add'>+        dsaparams = OpenSSL::PKey.generate_parameters("DSA", {</div><div class='add'>+          "dsa_paramgen_bits" =&gt; size,</div><div class='add'>+          "dsa_paramgen_q_bits" =&gt; qsize,</div><div class='add'>+        }, &amp;blk)</div><div class='add'>+        OpenSSL::PKey.generate_key(dsaparams)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Handle DSA.new(size) form here; new(str) and new() forms</div><div class='add'>+      # are handled by #initialize</div><div class='add'>+      def new(*args, &amp;blk) # :nodoc:</div><div class='add'>+        if args[0].is_a?(Integer)</div><div class='add'>+          generate(*args, &amp;blk)</div><div class='add'>+        else</div><div class='add'>+          super</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    dsa.syssign(string) -&gt; string</div><div class='add'>+    #</div><div class='add'>+    # Computes and returns the \DSA signature of +string+, where +string+ is</div><div class='add'>+    # expected to be an already-computed message digest of the original input</div><div class='add'>+    # data. The signature is issued using the private key of this DSA instance.</div><div class='add'>+    #</div><div class='add'>+    # &lt;b&gt;Deprecated in version 3.0&lt;/b&gt;.</div><div class='add'>+    # Consider using PKey::PKey#sign_raw and PKey::PKey#verify_raw instead.</div><div class='add'>+    #</div><div class='add'>+    # +string+::</div><div class='add'>+    #   A message digest of the original input data to be signed.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #   dsa = OpenSSL::PKey::DSA.new(2048)</div><div class='add'>+    #   doc = "Sign me"</div><div class='add'>+    #   digest = OpenSSL::Digest.digest('SHA1', doc)</div><div class='add'>+    #</div><div class='add'>+    #   # With legacy #syssign and #sysverify:</div><div class='add'>+    #   sig = dsa.syssign(digest)</div><div class='add'>+    #   p dsa.sysverify(digest, sig) #=&gt; true</div><div class='add'>+    #</div><div class='add'>+    #   # With #sign_raw and #verify_raw:</div><div class='add'>+    #   sig = dsa.sign_raw(nil, digest)</div><div class='add'>+    #   p dsa.verify_raw(nil, sig, digest) #=&gt; true</div><div class='add'>+    def syssign(string)</div><div class='add'>+      q or raise OpenSSL::PKey::DSAError, "incomplete DSA"</div><div class='add'>+      private? or raise OpenSSL::PKey::DSAError, "Private DSA key needed!"</div><div class='add'>+      begin</div><div class='add'>+        sign_raw(nil, string)</div><div class='add'>+      rescue OpenSSL::PKey::PKeyError</div><div class='add'>+        raise OpenSSL::PKey::DSAError, $!.message</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    dsa.sysverify(digest, sig) -&gt; true | false</div><div class='add'>+    #</div><div class='add'>+    # Verifies whether the signature is valid given the message digest input.</div><div class='add'>+    # It does so by validating +sig+ using the public key of this DSA instance.</div><div class='add'>+    #</div><div class='add'>+    # &lt;b&gt;Deprecated in version 3.0&lt;/b&gt;.</div><div class='add'>+    # Consider using PKey::PKey#sign_raw and PKey::PKey#verify_raw instead.</div><div class='add'>+    #</div><div class='add'>+    # +digest+::</div><div class='add'>+    #   A message digest of the original input data to be signed.</div><div class='add'>+    # +sig+::</div><div class='add'>+    #   A \DSA signature value.</div><div class='add'>+    def sysverify(digest, sig)</div><div class='add'>+      verify_raw(nil, sig, digest)</div><div class='add'>+    rescue OpenSSL::PKey::PKeyError</div><div class='add'>+      raise OpenSSL::PKey::DSAError, $!.message</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'>   if defined?(EC)</div><div class='add'>+  class EC</div><div class='add'>+    include OpenSSL::Marshal</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    key.dsa_sign_asn1(data) -&gt; String</div><div class='add'>+    #</div><div class='add'>+    # &lt;b&gt;Deprecated in version 3.0&lt;/b&gt;.</div><div class='add'>+    # Consider using PKey::PKey#sign_raw and PKey::PKey#verify_raw instead.</div><div class='add'>+    def dsa_sign_asn1(data)</div><div class='add'>+      sign_raw(nil, data)</div><div class='add'>+    rescue OpenSSL::PKey::PKeyError</div><div class='add'>+      raise OpenSSL::PKey::ECError, $!.message</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    key.dsa_verify_asn1(data, sig) -&gt; true | false</div><div class='add'>+    #</div><div class='add'>+    # &lt;b&gt;Deprecated in version 3.0&lt;/b&gt;.</div><div class='add'>+    # Consider using PKey::PKey#sign_raw and PKey::PKey#verify_raw instead.</div><div class='add'>+    def dsa_verify_asn1(data, sig)</div><div class='add'>+      verify_raw(nil, sig, data)</div><div class='add'>+    rescue OpenSSL::PKey::PKeyError</div><div class='add'>+      raise OpenSSL::PKey::ECError, $!.message</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    ec.dh_compute_key(pubkey) -&gt; string</div><div class='add'>+    #</div><div class='add'>+    # Derives a shared secret by ECDH. _pubkey_ must be an instance of</div><div class='add'>+    # OpenSSL::PKey::EC::Point and must belong to the same group.</div><div class='add'>+    #</div><div class='add'>+    # This method is provided for backwards compatibility, and calls #derive</div><div class='add'>+    # internally.</div><div class='add'>+    def dh_compute_key(pubkey)</div><div class='add'>+      obj = OpenSSL::ASN1.Sequence([</div><div class='add'>+        OpenSSL::ASN1.Sequence([</div><div class='add'>+          OpenSSL::ASN1.ObjectId("id-ecPublicKey"),</div><div class='add'>+          group.to_der,</div><div class='add'>+        ]),</div><div class='add'>+        OpenSSL::ASN1.BitString(pubkey.to_octet_string(:uncompressed)),</div><div class='add'>+      ])</div><div class='add'>+      derive(OpenSSL::PKey.read(obj.to_der))</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'>   class EC::Point</div><div class='ctx'>     # :call-seq:</div><div class='ctx'>     #    point.to_bn([conversion_form]) -&gt; OpenSSL::BN</div><div class='hunk'>@@ -22,4 +309,163 @@ module OpenSSL::PKey</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  class RSA</div><div class='add'>+    include OpenSSL::Marshal</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    rsa.public_key -&gt; rsanew</div><div class='add'>+    #</div><div class='add'>+    # Returns a new RSA instance that carries just the public key components.</div><div class='add'>+    #</div><div class='add'>+    # This method is provided for backwards compatibility. In most cases, there</div><div class='add'>+    # is no need to call this method.</div><div class='add'>+    #</div><div class='add'>+    # For the purpose of serializing the public key, to PEM or DER encoding of</div><div class='add'>+    # X.509 SubjectPublicKeyInfo format, check PKey#public_to_pem and</div><div class='add'>+    # PKey#public_to_der.</div><div class='add'>+    def public_key</div><div class='add'>+      OpenSSL::PKey.read(public_to_der)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      # :call-seq:</div><div class='add'>+      #    RSA.generate(size, exponent = 65537) -&gt; RSA</div><div class='add'>+      #</div><div class='add'>+      # Generates an \RSA keypair.</div><div class='add'>+      #</div><div class='add'>+      # See also OpenSSL::PKey.generate_key.</div><div class='add'>+      #</div><div class='add'>+      # +size+::</div><div class='add'>+      #   The desired key size in bits.</div><div class='add'>+      # +exponent+::</div><div class='add'>+      #   An odd Integer, normally 3, 17, or 65537.</div><div class='add'>+      def generate(size, exp = 0x10001, &amp;blk)</div><div class='add'>+        OpenSSL::PKey.generate_key("RSA", {</div><div class='add'>+          "rsa_keygen_bits" =&gt; size,</div><div class='add'>+          "rsa_keygen_pubexp" =&gt; exp,</div><div class='add'>+        }, &amp;blk)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Handle RSA.new(size, exponent) form here; new(str) and new() forms</div><div class='add'>+      # are handled by #initialize</div><div class='add'>+      def new(*args, &amp;blk) # :nodoc:</div><div class='add'>+        if args[0].is_a?(Integer)</div><div class='add'>+          generate(*args, &amp;blk)</div><div class='add'>+        else</div><div class='add'>+          super</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    rsa.private_encrypt(string)          -&gt; String</div><div class='add'>+    #    rsa.private_encrypt(string, padding) -&gt; String</div><div class='add'>+    #</div><div class='add'>+    # Encrypt +string+ with the private key.  +padding+ defaults to</div><div class='add'>+    # PKCS1_PADDING, which is known to be insecure but is kept for backwards</div><div class='add'>+    # compatibility. The encrypted string output can be decrypted using</div><div class='add'>+    # #public_decrypt.</div><div class='add'>+    #</div><div class='add'>+    # &lt;b&gt;Deprecated in version 3.0&lt;/b&gt;.</div><div class='add'>+    # Consider using PKey::PKey#sign_raw and PKey::PKey#verify_raw, and</div><div class='add'>+    # PKey::PKey#verify_recover instead.</div><div class='add'>+    def private_encrypt(string, padding = PKCS1_PADDING)</div><div class='add'>+      n or raise OpenSSL::PKey::RSAError, "incomplete RSA"</div><div class='add'>+      private? or raise OpenSSL::PKey::RSAError, "private key needed."</div><div class='add'>+      begin</div><div class='add'>+        sign_raw(nil, string, {</div><div class='add'>+          "rsa_padding_mode" =&gt; translate_padding_mode(padding),</div><div class='add'>+        })</div><div class='add'>+      rescue OpenSSL::PKey::PKeyError</div><div class='add'>+        raise OpenSSL::PKey::RSAError, $!.message</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    rsa.public_decrypt(string)          -&gt; String</div><div class='add'>+    #    rsa.public_decrypt(string, padding) -&gt; String</div><div class='add'>+    #</div><div class='add'>+    # Decrypt +string+, which has been encrypted with the private key, with the</div><div class='add'>+    # public key.  +padding+ defaults to PKCS1_PADDING which is known to be</div><div class='add'>+    # insecure but is kept for backwards compatibility.</div><div class='add'>+    #</div><div class='add'>+    # &lt;b&gt;Deprecated in version 3.0&lt;/b&gt;.</div><div class='add'>+    # Consider using PKey::PKey#sign_raw and PKey::PKey#verify_raw, and</div><div class='add'>+    # PKey::PKey#verify_recover instead.</div><div class='add'>+    def public_decrypt(string, padding = PKCS1_PADDING)</div><div class='add'>+      n or raise OpenSSL::PKey::RSAError, "incomplete RSA"</div><div class='add'>+      begin</div><div class='add'>+        verify_recover(nil, string, {</div><div class='add'>+          "rsa_padding_mode" =&gt; translate_padding_mode(padding),</div><div class='add'>+        })</div><div class='add'>+      rescue OpenSSL::PKey::PKeyError</div><div class='add'>+        raise OpenSSL::PKey::RSAError, $!.message</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    rsa.public_encrypt(string)          -&gt; String</div><div class='add'>+    #    rsa.public_encrypt(string, padding) -&gt; String</div><div class='add'>+    #</div><div class='add'>+    # Encrypt +string+ with the public key.  +padding+ defaults to</div><div class='add'>+    # PKCS1_PADDING, which is known to be insecure but is kept for backwards</div><div class='add'>+    # compatibility. The encrypted string output can be decrypted using</div><div class='add'>+    # #private_decrypt.</div><div class='add'>+    #</div><div class='add'>+    # &lt;b&gt;Deprecated in version 3.0&lt;/b&gt;.</div><div class='add'>+    # Consider using PKey::PKey#encrypt and PKey::PKey#decrypt instead.</div><div class='add'>+    def public_encrypt(data, padding = PKCS1_PADDING)</div><div class='add'>+      n or raise OpenSSL::PKey::RSAError, "incomplete RSA"</div><div class='add'>+      begin</div><div class='add'>+        encrypt(data, {</div><div class='add'>+          "rsa_padding_mode" =&gt; translate_padding_mode(padding),</div><div class='add'>+        })</div><div class='add'>+      rescue OpenSSL::PKey::PKeyError</div><div class='add'>+        raise OpenSSL::PKey::RSAError, $!.message</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    rsa.private_decrypt(string)          -&gt; String</div><div class='add'>+    #    rsa.private_decrypt(string, padding) -&gt; String</div><div class='add'>+    #</div><div class='add'>+    # Decrypt +string+, which has been encrypted with the public key, with the</div><div class='add'>+    # private key. +padding+ defaults to PKCS1_PADDING, which is known to be</div><div class='add'>+    # insecure but is kept for backwards compatibility.</div><div class='add'>+    #</div><div class='add'>+    # &lt;b&gt;Deprecated in version 3.0&lt;/b&gt;.</div><div class='add'>+    # Consider using PKey::PKey#encrypt and PKey::PKey#decrypt instead.</div><div class='add'>+    def private_decrypt(data, padding = PKCS1_PADDING)</div><div class='add'>+      n or raise OpenSSL::PKey::RSAError, "incomplete RSA"</div><div class='add'>+      private? or raise OpenSSL::PKey::RSAError, "private key needed."</div><div class='add'>+      begin</div><div class='add'>+        decrypt(data, {</div><div class='add'>+          "rsa_padding_mode" =&gt; translate_padding_mode(padding),</div><div class='add'>+        })</div><div class='add'>+      rescue OpenSSL::PKey::PKeyError</div><div class='add'>+        raise OpenSSL::PKey::RSAError, $!.message</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    PKCS1_PADDING = 1</div><div class='add'>+    SSLV23_PADDING = 2</div><div class='add'>+    NO_PADDING = 3</div><div class='add'>+    PKCS1_OAEP_PADDING = 4</div><div class='add'>+</div><div class='add'>+    private def translate_padding_mode(num)</div><div class='add'>+      case num</div><div class='add'>+      when PKCS1_PADDING</div><div class='add'>+        "pkcs1"</div><div class='add'>+      when SSLV23_PADDING</div><div class='add'>+        "sslv23"</div><div class='add'>+      when NO_PADDING</div><div class='add'>+        "none"</div><div class='add'>+      when PKCS1_OAEP_PADDING</div><div class='add'>+        "oaep"</div><div class='add'>+      else</div><div class='add'>+        raise OpenSSL::PKey::PKeyError, "unsupported padding mode"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/openssl/lib/openssl/ssl.rb b/ext/openssl/lib/openssl/ssl.rb<br/>index 355eb2ebbb..ea8bb2a18e 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/lib/openssl/ssl.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/ssl.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl/ssl.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl/ssl.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> =begin</div><div class='ctx'> = Info</div><div class='ctx'>   'OpenSSL for Ruby 2' project</div><div class='hunk'>@@ -11,8 +11,12 @@</div><div class='ctx'> =end</div><div class='ctx'> </div><div class='ctx'> require "openssl/buffering"</div><div class='add'>+</div><div class='add'>+if defined?(OpenSSL::SSL)</div><div class='add'>+</div><div class='ctx'> require "io/nonblock"</div><div class='ctx'> require "ipaddr"</div><div class='add'>+require "socket"</div><div class='ctx'> </div><div class='ctx'> module OpenSSL</div><div class='ctx'>   module SSL</div><div class='hunk'>@@ -90,15 +94,17 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3</div><div class='ctx'>       DEFAULT_CERT_STORE.set_default_paths</div><div class='ctx'>       DEFAULT_CERT_STORE.flags = OpenSSL::X509::V_FLAG_CRL_CHECK_ALL</div><div class='ctx'> </div><div class='del'>-      # A callback invoked when DH parameters are required.</div><div class='add'>+      # A callback invoked when DH parameters are required for ephemeral DH key</div><div class='add'>+      # exchange.</div><div class='ctx'>       #</div><div class='del'>-      # The callback is invoked with the Session for the key exchange, an</div><div class='add'>+      # The callback is invoked with the SSLSocket, a</div><div class='ctx'>       # flag indicating the use of an export cipher and the keylength</div><div class='ctx'>       # required.</div><div class='ctx'>       #</div><div class='ctx'>       # The callback must return an OpenSSL::PKey::DH instance of the correct</div><div class='ctx'>       # key length.</div><div class='del'>-</div><div class='add'>+      #</div><div class='add'>+      # &lt;b&gt;Deprecated in version 3.0.&lt;/b&gt; Use #tmp_dh= instead.</div><div class='ctx'>       attr_accessor :tmp_dh_callback</div><div class='ctx'> </div><div class='ctx'>       # A callback invoked at connect time to distinguish between multiple</div><div class='hunk'>@@ -121,6 +127,8 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3</div><div class='ctx'>       def initialize(version = nil)</div><div class='ctx'>         self.options |= OpenSSL::SSL::OP_ALL</div><div class='ctx'>         self.ssl_version = version if version</div><div class='add'>+        self.verify_mode = OpenSSL::SSL::VERIFY_NONE</div><div class='add'>+        self.verify_hostname = false</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       ##</div><div class='hunk'>@@ -231,6 +239,11 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     module SocketForwarder</div><div class='add'>+      # The file descriptor for the socket.</div><div class='add'>+      def fileno</div><div class='add'>+        to_io.fileno</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def addr</div><div class='ctx'>         to_io.addr</div><div class='ctx'>       end</div><div class='hunk'>@@ -424,10 +437,6 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3</div><div class='ctx'>         @context.tmp_dh_callback || OpenSSL::SSL::SSLContext::DEFAULT_TMP_DH_CALLBACK</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def tmp_ecdh_callback</div><div class='del'>-        @context.tmp_ecdh_callback</div><div class='del'>-      end</div><div class='del'>-</div><div class='ctx'>       def session_new_cb</div><div class='ctx'>         @context.session_new_cb</div><div class='ctx'>       end</div><div class='hunk'>@@ -435,6 +444,38 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3</div><div class='ctx'>       def session_get_cb</div><div class='ctx'>         @context.session_get_cb</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      class &lt;&lt; self</div><div class='add'>+</div><div class='add'>+        # call-seq:</div><div class='add'>+        #   open(remote_host, remote_port, local_host=nil, local_port=nil, context: nil)</div><div class='add'>+        #</div><div class='add'>+        # Creates a new instance of SSLSocket.</div><div class='add'>+        # _remote\_host_ and _remote\_port_ are used to open TCPSocket.</div><div class='add'>+        # If _local\_host_ and _local\_port_ are specified,</div><div class='add'>+        # then those parameters are used on the local end to establish the connection.</div><div class='add'>+        # If _context_ is provided,</div><div class='add'>+        # the SSL Sockets initial params will be taken from the context.</div><div class='add'>+        #</div><div class='add'>+        # === Examples</div><div class='add'>+        #</div><div class='add'>+        #   sock = OpenSSL::SSL::SSLSocket.open('localhost', 443)</div><div class='add'>+        #   sock.connect # Initiates a connection to localhost:443</div><div class='add'>+        #</div><div class='add'>+        # with SSLContext:</div><div class='add'>+        #</div><div class='add'>+        #   ctx = OpenSSL::SSL::SSLContext.new</div><div class='add'>+        #   sock = OpenSSL::SSL::SSLSocket.open('localhost', 443, context: ctx)</div><div class='add'>+        #   sock.connect # Initiates a connection to localhost:443 with SSLContext</div><div class='add'>+        def open(remote_host, remote_port, local_host=nil, local_port=nil, context: nil)</div><div class='add'>+          sock = ::TCPSocket.open(remote_host, remote_port, local_host, local_port)</div><div class='add'>+          if context.nil?</div><div class='add'>+            return OpenSSL::SSL::SSLSocket.new(sock)</div><div class='add'>+          else</div><div class='add'>+            return OpenSSL::SSL::SSLSocket.new(sock, context)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     ##</div><div class='hunk'>@@ -465,7 +506,7 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # See TCPServer#listen for details.</div><div class='del'>-      def listen(backlog=5)</div><div class='add'>+      def listen(backlog=Socket::SOMAXCONN)</div><div class='ctx'>         @svr.listen(backlog)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -502,3 +543,5 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='add'>+</div><div class='add'>+end</div><div class='head'>diff --git a/ext/openssl/lib/openssl/version.rb b/ext/openssl/lib/openssl/version.rb<br/>new file mode 100644<br/>index 0000000000..4163f55064<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl/version.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module OpenSSL</div><div class='add'>+  VERSION = "3.1.0"</div><div class='add'>+end</div><div class='head'>diff --git a/ext/openssl/lib/openssl/x509.rb b/ext/openssl/lib/openssl/x509.rb<br/>index 98358f90da..f973f4f4dc 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/lib/openssl/x509.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/lib/openssl/x509.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/lib/openssl/x509.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/lib/openssl/x509.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> #--</div><div class='ctx'> # = Ruby-space definitions that completes C-space funcs for X509 and subclasses</div><div class='ctx'> #</div><div class='hunk'>@@ -12,6 +12,8 @@</div><div class='ctx'> # (See the file 'LICENCE'.)</div><div class='ctx'> #++</div><div class='ctx'> </div><div class='add'>+require_relative 'marshal'</div><div class='add'>+</div><div class='ctx'> module OpenSSL</div><div class='ctx'>   module X509</div><div class='ctx'>     class ExtensionFactory</div><div class='hunk'>@@ -41,6 +43,8 @@ module OpenSSL</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     class Extension</div><div class='add'>+      include OpenSSL::Marshal</div><div class='add'>+</div><div class='ctx'>       def ==(other)</div><div class='ctx'>         return false unless Extension === other</div><div class='ctx'>         to_der == other.to_der</div><div class='hunk'>@@ -60,9 +64,146 @@ module OpenSSL</div><div class='ctx'>       def to_a</div><div class='ctx'>         [ self.oid, self.value, self.critical? ]</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      module Helpers</div><div class='add'>+        def find_extension(oid)</div><div class='add'>+          extensions.find { |e| e.oid == oid }</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      module SubjectKeyIdentifier</div><div class='add'>+        include Helpers</div><div class='add'>+</div><div class='add'>+        # Get the subject's key identifier from the subjectKeyIdentifier</div><div class='add'>+        # exteension, as described in RFC5280 Section 4.2.1.2.</div><div class='add'>+        #</div><div class='add'>+        # Returns the binary String key identifier or nil or raises</div><div class='add'>+        # ASN1::ASN1Error.</div><div class='add'>+        def subject_key_identifier</div><div class='add'>+          ext = find_extension("subjectKeyIdentifier")</div><div class='add'>+          return nil if ext.nil?</div><div class='add'>+</div><div class='add'>+          ski_asn1 = ASN1.decode(ext.value_der)</div><div class='add'>+          if ext.critical? || ski_asn1.tag_class != :UNIVERSAL || ski_asn1.tag != ASN1::OCTET_STRING</div><div class='add'>+            raise ASN1::ASN1Error, "invalid extension"</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          ski_asn1.value</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      module AuthorityKeyIdentifier</div><div class='add'>+        include Helpers</div><div class='add'>+</div><div class='add'>+        # Get the issuing certificate's key identifier from the</div><div class='add'>+        # authorityKeyIdentifier extension, as described in RFC5280</div><div class='add'>+        # Section 4.2.1.1</div><div class='add'>+        #</div><div class='add'>+        # Returns the binary String keyIdentifier or nil or raises</div><div class='add'>+        # ASN1::ASN1Error.</div><div class='add'>+        def authority_key_identifier</div><div class='add'>+          ext = find_extension("authorityKeyIdentifier")</div><div class='add'>+          return nil if ext.nil?</div><div class='add'>+</div><div class='add'>+          aki_asn1 = ASN1.decode(ext.value_der)</div><div class='add'>+          if ext.critical? || aki_asn1.tag_class != :UNIVERSAL || aki_asn1.tag != ASN1::SEQUENCE</div><div class='add'>+            raise ASN1::ASN1Error, "invalid extension"</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          key_id = aki_asn1.value.find do |v|</div><div class='add'>+            v.tag_class == :CONTEXT_SPECIFIC &amp;&amp; v.tag == 0</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          key_id.nil? ? nil : key_id.value</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      module CRLDistributionPoints</div><div class='add'>+        include Helpers</div><div class='add'>+</div><div class='add'>+        # Get the distributionPoint fullName URI from the certificate's CRL</div><div class='add'>+        # distribution points extension, as described in RFC5280 Section</div><div class='add'>+        # 4.2.1.13</div><div class='add'>+        #</div><div class='add'>+        # Returns an array of strings or nil or raises ASN1::ASN1Error.</div><div class='add'>+        def crl_uris</div><div class='add'>+          ext = find_extension("crlDistributionPoints")</div><div class='add'>+          return nil if ext.nil?</div><div class='add'>+</div><div class='add'>+          cdp_asn1 = ASN1.decode(ext.value_der)</div><div class='add'>+          if cdp_asn1.tag_class != :UNIVERSAL || cdp_asn1.tag != ASN1::SEQUENCE</div><div class='add'>+            raise ASN1::ASN1Error, "invalid extension"</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          crl_uris = cdp_asn1.map do |crl_distribution_point|</div><div class='add'>+            distribution_point = crl_distribution_point.value.find do |v|</div><div class='add'>+              v.tag_class == :CONTEXT_SPECIFIC &amp;&amp; v.tag == 0</div><div class='add'>+            end</div><div class='add'>+            full_name = distribution_point&amp;.value&amp;.find do |v|</div><div class='add'>+              v.tag_class == :CONTEXT_SPECIFIC &amp;&amp; v.tag == 0</div><div class='add'>+            end</div><div class='add'>+            full_name&amp;.value&amp;.find do |v|</div><div class='add'>+              v.tag_class == :CONTEXT_SPECIFIC &amp;&amp; v.tag == 6 # uniformResourceIdentifier</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          crl_uris&amp;.map(&amp;:value)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      module AuthorityInfoAccess</div><div class='add'>+        include Helpers</div><div class='add'>+</div><div class='add'>+        # Get the information and services for the issuer from the certificate's</div><div class='add'>+        # authority information access extension exteension, as described in RFC5280</div><div class='add'>+        # Section 4.2.2.1.</div><div class='add'>+        #</div><div class='add'>+        # Returns an array of strings or nil or raises ASN1::ASN1Error.</div><div class='add'>+        def ca_issuer_uris</div><div class='add'>+          aia_asn1 = parse_aia_asn1</div><div class='add'>+          return nil if aia_asn1.nil?</div><div class='add'>+</div><div class='add'>+          ca_issuer = aia_asn1.value.select do |authority_info_access|</div><div class='add'>+            authority_info_access.value.first.value == "caIssuers"</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          ca_issuer&amp;.map(&amp;:value)&amp;.map(&amp;:last)&amp;.map(&amp;:value)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        # Get the URIs for OCSP from the certificate's authority information access</div><div class='add'>+        # extension exteension, as described in RFC5280 Section 4.2.2.1.</div><div class='add'>+        #</div><div class='add'>+        # Returns an array of strings or nil or raises ASN1::ASN1Error.</div><div class='add'>+        def ocsp_uris</div><div class='add'>+          aia_asn1 = parse_aia_asn1</div><div class='add'>+          return nil if aia_asn1.nil?</div><div class='add'>+</div><div class='add'>+          ocsp = aia_asn1.value.select do |authority_info_access|</div><div class='add'>+            authority_info_access.value.first.value == "OCSP"</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          ocsp&amp;.map(&amp;:value)&amp;.map(&amp;:last)&amp;.map(&amp;:value)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        private</div><div class='add'>+</div><div class='add'>+          def parse_aia_asn1</div><div class='add'>+            ext = find_extension("authorityInfoAccess")</div><div class='add'>+            return nil if ext.nil?</div><div class='add'>+</div><div class='add'>+            aia_asn1 = ASN1.decode(ext.value_der)</div><div class='add'>+            if ext.critical? || aia_asn1.tag_class != :UNIVERSAL || aia_asn1.tag != ASN1::SEQUENCE</div><div class='add'>+              raise ASN1::ASN1Error, "invalid extension"</div><div class='add'>+            end</div><div class='add'>+</div><div class='add'>+            aia_asn1</div><div class='add'>+          end</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     class Name</div><div class='add'>+      include OpenSSL::Marshal</div><div class='add'>+</div><div class='ctx'>       module RFC2253DN</div><div class='ctx'>         Special = ',=+&lt;&gt;#;'</div><div class='ctx'>         HexChar = /[0-9a-fA-F]/</div><div class='hunk'>@@ -138,11 +279,29 @@ module OpenSSL</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       class &lt;&lt; self</div><div class='add'>+        # Parses the UTF-8 string representation of a distinguished name,</div><div class='add'>+        # according to RFC 2253.</div><div class='add'>+        #</div><div class='add'>+        # See also #to_utf8 for the opposite operation.</div><div class='ctx'>         def parse_rfc2253(str, template=OBJECT_TYPE_TEMPLATE)</div><div class='ctx'>           ary = OpenSSL::X509::Name::RFC2253DN.scan(str)</div><div class='ctx'>           self.new(ary, template)</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='add'>+        # Parses the string representation of a distinguished name. Two</div><div class='add'>+        # different forms are supported:</div><div class='add'>+        #</div><div class='add'>+        # - \OpenSSL format (&lt;tt&gt;X509_NAME_oneline()&lt;/tt&gt;) used by</div><div class='add'>+        #   &lt;tt&gt;#to_s&lt;/tt&gt;. For example: &lt;tt&gt;/DC=com/DC=example/CN=nobody&lt;/tt&gt;</div><div class='add'>+        # - \OpenSSL format (&lt;tt&gt;X509_NAME_print()&lt;/tt&gt;)</div><div class='add'>+        #   used by &lt;tt&gt;#to_s(OpenSSL::X509::Name::COMPAT)&lt;/tt&gt;. For example:</div><div class='add'>+        #   &lt;tt&gt;DC=com, DC=example, CN=nobody&lt;/tt&gt;</div><div class='add'>+        #</div><div class='add'>+        # Neither of them is standardized and has quirks and inconsistencies</div><div class='add'>+        # in handling of escaped characters or multi-valued RDNs.</div><div class='add'>+        #</div><div class='add'>+        # Use of this method is discouraged in new applications. See</div><div class='add'>+        # Name.parse_rfc2253 and #to_utf8 for the alternative.</div><div class='ctx'>         def parse_openssl(str, template=OBJECT_TYPE_TEMPLATE)</div><div class='ctx'>           if str.start_with?("/")</div><div class='ctx'>             # /A=B/C=D format</div><div class='hunk'>@@ -166,6 +325,8 @@ module OpenSSL</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     class Attribute</div><div class='add'>+      include OpenSSL::Marshal</div><div class='add'>+</div><div class='ctx'>       def ==(other)</div><div class='ctx'>         return false unless Attribute === other</div><div class='ctx'>         to_der == other.to_der</div><div class='hunk'>@@ -179,6 +340,12 @@ module OpenSSL</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     class Certificate</div><div class='add'>+      include OpenSSL::Marshal</div><div class='add'>+      include Extension::SubjectKeyIdentifier</div><div class='add'>+      include Extension::AuthorityKeyIdentifier</div><div class='add'>+      include Extension::CRLDistributionPoints</div><div class='add'>+      include Extension::AuthorityInfoAccess</div><div class='add'>+</div><div class='ctx'>       def pretty_print(q)</div><div class='ctx'>         q.object_group(self) {</div><div class='ctx'>           q.breakable</div><div class='hunk'>@@ -189,9 +356,16 @@ module OpenSSL</div><div class='ctx'>           q.text 'not_after='; q.pp self.not_after</div><div class='ctx'>         }</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      def self.load_file(path)</div><div class='add'>+        load(File.binread(path))</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     class CRL</div><div class='add'>+      include OpenSSL::Marshal</div><div class='add'>+      include Extension::AuthorityKeyIdentifier</div><div class='add'>+</div><div class='ctx'>       def ==(other)</div><div class='ctx'>         return false unless CRL === other</div><div class='ctx'>         to_der == other.to_der</div><div class='hunk'>@@ -206,6 +380,8 @@ module OpenSSL</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     class Request</div><div class='add'>+      include OpenSSL::Marshal</div><div class='add'>+</div><div class='ctx'>       def ==(other)</div><div class='ctx'>         return false unless Request === other</div><div class='ctx'>         to_der == other.to_der</div><div class='head'>diff --git a/ext/openssl/openssl.gemspec b/ext/openssl/openssl.gemspec<br/>index e29cfcd709..8d83b69193 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/openssl.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/openssl.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/openssl.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/openssl.gemspec</a></div><div class='hunk'>@@ -1,49 +1,21 @@</div><div class='del'>-# -*- encoding: utf-8 -*-</div><div class='del'>-# stub: openssl 2.1.2 ruby lib</div><div class='del'>-# stub: ext/openssl/extconf.rb</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "openssl"</div><div class='add'>+  spec.version       = "3.1.0"</div><div class='add'>+  spec.authors       = ["Martin Bosslet", "SHIBATA Hiroshi", "Zachary Scott", "Kazuki Yamaguchi"]</div><div class='add'>+  spec.email         = ["ruby-core@ruby-lang.org"]</div><div class='add'>+  spec.summary       = %q{OpenSSL provides SSL, TLS and general purpose cryptography.}</div><div class='add'>+  spec.description   = %q{It wraps the OpenSSL library.}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/openssl"</div><div class='add'>+  spec.license       = "Ruby"</div><div class='ctx'> </div><div class='del'>-Gem::Specification.new do |s|</div><div class='del'>-  s.name = "openssl".freeze</div><div class='del'>-  s.version = "2.1.2"</div><div class='add'>+  spec.files         = Dir["lib/**/*.rb", "ext/**/*.{c,h,rb}", "*.md", "BSDL", "LICENSE.txt"]</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+  spec.extensions    = ["ext/openssl/extconf.rb"]</div><div class='ctx'> </div><div class='del'>-  s.required_rubygems_version = Gem::Requirement.new("&gt;= 0".freeze) if s.respond_to? :required_rubygems_version=</div><div class='del'>-  s.metadata = { "msys2_mingw_dependencies" =&gt; "openssl" } if s.respond_to? :metadata=</div><div class='del'>-  s.require_paths = ["lib".freeze]</div><div class='del'>-  s.authors = ["Martin Bosslet".freeze, "SHIBATA Hiroshi".freeze, "Zachary Scott".freeze, "Kazuki Yamaguchi".freeze]</div><div class='del'>-  s.date = "2018-10-17"</div><div class='del'>-  s.description = "It wraps the OpenSSL library.".freeze</div><div class='del'>-  s.email = ["ruby-core@ruby-lang.org".freeze]</div><div class='del'>-  s.extensions = ["ext/openssl/extconf.rb".freeze]</div><div class='del'>-  s.extra_rdoc_files = ["README.md".freeze, "CONTRIBUTING.md".freeze, "History.md".freeze]</div><div class='del'>-  s.files = ["BSDL".freeze, "CONTRIBUTING.md".freeze, "History.md".freeze, "LICENSE.txt".freeze, "README.md".freeze, "ext/openssl/deprecation.rb".freeze, "ext/openssl/extconf.rb".freeze, "ext/openssl/openssl_missing.c".freeze, "ext/openssl/openssl_missing.h".freeze, "ext/openssl/ossl.c".freeze, "ext/openssl/ossl.h".freeze, "ext/openssl/ossl_asn1.c".freeze, "ext/openssl/ossl_asn1.h".freeze, "ext/openssl/ossl_bio.c".freeze, "ext/openssl/ossl_bio.h".freeze, "ext/openssl/ossl_bn.c".freeze, "ext/openssl/ossl_bn.h".freeze, "ext/openssl/ossl_cipher.c".freeze, "ext/openssl/ossl_cipher.h".freeze, "ext/openssl/ossl_config.c".freeze, "ext/openssl/ossl_config.h".freeze, "ext/openssl/ossl_digest.c".freeze, "ext/openssl/ossl_digest.h".freeze, "ext/openssl/ossl_engine.c".freeze, "ext/openssl/ossl_engine.h".freeze, "ext/openssl/ossl_hmac.c".freeze, "ext/openssl/ossl_hmac.h".freeze, "ext/openssl/ossl_kdf.c".freeze, "ext/openssl/ossl_kdf.h".freeze, "ext/openssl/ossl_ns_spki.c".freeze, "ext/openssl/ossl_ns_spki.h".freeze, "ext/openssl/ossl_ocsp.c".freeze, "ext/openssl/ossl_ocsp.h".freeze, "ext/openssl/ossl_pkcs12.c".freeze, "ext/openssl/ossl_pkcs12.h".freeze, "ext/openssl/ossl_pkcs7.c".freeze, "ext/openssl/ossl_pkcs7.h".freeze, "ext/openssl/ossl_pkey.c".freeze, "ext/openssl/ossl_pkey.h".freeze, "ext/openssl/ossl_pkey_dh.c".freeze, "ext/openssl/ossl_pkey_dsa.c".freeze, "ext/openssl/ossl_pkey_ec.c".freeze, "ext/openssl/ossl_pkey_rsa.c".freeze, "ext/openssl/ossl_rand.c".freeze, "ext/openssl/ossl_rand.h".freeze, "ext/openssl/ossl_ssl.c".freeze, "ext/openssl/ossl_ssl.h".freeze, "ext/openssl/ossl_ssl_session.c".freeze, "ext/openssl/ossl_version.h".freeze, "ext/openssl/ossl_x509.c".freeze, "ext/openssl/ossl_x509.h".freeze, "ext/openssl/ossl_x509attr.c".freeze, "ext/openssl/ossl_x509cert.c".freeze, "ext/openssl/ossl_x509crl.c".freeze, "ext/openssl/ossl_x509ext.c".freeze, "ext/openssl/ossl_x509name.c".freeze, "ext/openssl/ossl_x509req.c".freeze, "ext/openssl/ossl_x509revoked.c".freeze, "ext/openssl/ossl_x509store.c".freeze, "ext/openssl/ruby_missing.h".freeze, "lib/openssl.rb".freeze, "lib/openssl/bn.rb".freeze, "lib/openssl/buffering.rb".freeze, "lib/openssl/cipher.rb".freeze, "lib/openssl/config.rb".freeze, "lib/openssl/digest.rb".freeze, "lib/openssl/pkcs5.rb".freeze, "lib/openssl/pkey.rb".freeze, "lib/openssl/ssl.rb".freeze, "lib/openssl/x509.rb".freeze]</div><div class='del'>-  s.homepage = "https://github.com/ruby/openssl".freeze</div><div class='del'>-  s.licenses = ["Ruby".freeze]</div><div class='del'>-  s.rdoc_options = ["--main".freeze, "README.md".freeze]</div><div class='del'>-  s.required_ruby_version = Gem::Requirement.new("&gt;= 2.3.0".freeze)</div><div class='del'>-  s.rubygems_version = "3.0.0.beta1".freeze</div><div class='del'>-  s.summary = "OpenSSL provides SSL, TLS and general purpose cryptography.".freeze</div><div class='add'>+  spec.extra_rdoc_files = Dir["*.md"]</div><div class='add'>+  spec.rdoc_options = ["--main", "README.md"]</div><div class='ctx'> </div><div class='del'>-  if s.respond_to? :specification_version then</div><div class='del'>-    s.specification_version = 4</div><div class='add'>+  spec.required_ruby_version = "&gt;= 2.6.0"</div><div class='ctx'> </div><div class='del'>-    if Gem::Version.new(Gem::VERSION) &gt;= Gem::Version.new('1.2.0') then</div><div class='del'>-      s.add_runtime_dependency(%q&lt;ipaddr&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-      s.add_development_dependency(%q&lt;rake&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-      s.add_development_dependency(%q&lt;rake-compiler&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-      s.add_development_dependency(%q&lt;test-unit&gt;.freeze, ["~&gt; 3.0"])</div><div class='del'>-      s.add_development_dependency(%q&lt;rdoc&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-    else</div><div class='del'>-      s.add_dependency(%q&lt;ipaddr&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-      s.add_dependency(%q&lt;rake&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-      s.add_dependency(%q&lt;rake-compiler&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-      s.add_dependency(%q&lt;test-unit&gt;.freeze, ["~&gt; 3.0"])</div><div class='del'>-      s.add_dependency(%q&lt;rdoc&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-    end</div><div class='del'>-  else</div><div class='del'>-    s.add_dependency(%q&lt;ipaddr&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-    s.add_dependency(%q&lt;rake&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-    s.add_dependency(%q&lt;rake-compiler&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-    s.add_dependency(%q&lt;test-unit&gt;.freeze, ["~&gt; 3.0"])</div><div class='del'>-    s.add_dependency(%q&lt;rdoc&gt;.freeze, ["&gt;= 0"])</div><div class='del'>-  end</div><div class='add'>+  spec.metadata["msys2_mingw_dependencies"] = "openssl"</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/openssl/openssl_missing.c b/ext/openssl/openssl_missing.c<br/>index b36ef0288e..4415703db4 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/openssl_missing.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/openssl_missing.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/openssl_missing.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/openssl_missing.c</a></div><div class='hunk'>@@ -10,77 +10,11 @@</div><div class='ctx'> #include RUBY_EXTCONF_H</div><div class='ctx'> </div><div class='ctx'> #include &lt;string.h&gt; /* memcpy() */</div><div class='del'>-#if !defined(OPENSSL_NO_ENGINE)</div><div class='del'>-# include &lt;openssl/engine.h&gt;</div><div class='del'>-#endif</div><div class='del'>-#if !defined(OPENSSL_NO_HMAC)</div><div class='del'>-# include &lt;openssl/hmac.h&gt;</div><div class='del'>-#endif</div><div class='ctx'> #include &lt;openssl/x509_vfy.h&gt;</div><div class='ctx'> </div><div class='ctx'> #include "openssl_missing.h"</div><div class='ctx'> </div><div class='del'>-/* added in 1.0.2 */</div><div class='del'>-#if !defined(OPENSSL_NO_EC)</div><div class='del'>-#if !defined(HAVE_EC_CURVE_NIST2NID)</div><div class='del'>-static struct {</div><div class='del'>-    const char *name;</div><div class='del'>-    int nid;</div><div class='del'>-} nist_curves[] = {</div><div class='del'>-    {"B-163", NID_sect163r2},</div><div class='del'>-    {"B-233", NID_sect233r1},</div><div class='del'>-    {"B-283", NID_sect283r1},</div><div class='del'>-    {"B-409", NID_sect409r1},</div><div class='del'>-    {"B-571", NID_sect571r1},</div><div class='del'>-    {"K-163", NID_sect163k1},</div><div class='del'>-    {"K-233", NID_sect233k1},</div><div class='del'>-    {"K-283", NID_sect283k1},</div><div class='del'>-    {"K-409", NID_sect409k1},</div><div class='del'>-    {"K-571", NID_sect571k1},</div><div class='del'>-    {"P-192", NID_X9_62_prime192v1},</div><div class='del'>-    {"P-224", NID_secp224r1},</div><div class='del'>-    {"P-256", NID_X9_62_prime256v1},</div><div class='del'>-    {"P-384", NID_secp384r1},</div><div class='del'>-    {"P-521", NID_secp521r1}</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-ossl_EC_curve_nist2nid(const char *name)</div><div class='del'>-{</div><div class='del'>-    size_t i;</div><div class='del'>-    for (i = 0; i &lt; (sizeof(nist_curves) / sizeof(nist_curves[0])); i++) {</div><div class='del'>-	if (!strcmp(nist_curves[i].name, name))</div><div class='del'>-	    return nist_curves[i].nid;</div><div class='del'>-    }</div><div class='del'>-    return NID_undef;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> /*** added in 1.1.0 ***/</div><div class='del'>-#if !defined(HAVE_HMAC_CTX_NEW)</div><div class='del'>-HMAC_CTX *</div><div class='del'>-ossl_HMAC_CTX_new(void)</div><div class='del'>-{</div><div class='del'>-    HMAC_CTX *ctx = OPENSSL_malloc(sizeof(HMAC_CTX));</div><div class='del'>-    if (!ctx)</div><div class='del'>-	return NULL;</div><div class='del'>-    HMAC_CTX_init(ctx);</div><div class='del'>-    return ctx;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if !defined(HAVE_HMAC_CTX_FREE)</div><div class='del'>-void</div><div class='del'>-ossl_HMAC_CTX_free(HMAC_CTX *ctx)</div><div class='del'>-{</div><div class='del'>-    if (ctx) {</div><div class='del'>-	HMAC_CTX_cleanup(ctx);</div><div class='del'>-	OPENSSL_free(ctx);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #if !defined(HAVE_X509_CRL_GET0_SIGNATURE)</div><div class='ctx'> void</div><div class='ctx'> ossl_X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig,</div><div class='head'>diff --git a/ext/openssl/openssl_missing.h b/ext/openssl/openssl_missing.h<br/>index 09998214e1..8629bfe505 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/openssl_missing.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/openssl_missing.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/openssl_missing.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/openssl_missing.h</a></div><div class='hunk'>@@ -12,40 +12,7 @@</div><div class='ctx'> </div><div class='ctx'> #include "ruby/config.h"</div><div class='ctx'> </div><div class='del'>-/* added in 1.0.2 */</div><div class='del'>-#if !defined(OPENSSL_NO_EC)</div><div class='del'>-#if !defined(HAVE_EC_CURVE_NIST2NID)</div><div class='del'>-int ossl_EC_curve_nist2nid(const char *);</div><div class='del'>-#  define EC_curve_nist2nid ossl_EC_curve_nist2nid</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if !defined(HAVE_X509_REVOKED_DUP)</div><div class='del'>-# define X509_REVOKED_dup(rev) (X509_REVOKED *)ASN1_dup((i2d_of_void *)i2d_X509_REVOKED, \</div><div class='del'>-	(d2i_of_void *)d2i_X509_REVOKED, (char *)(rev))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if !defined(HAVE_X509_STORE_CTX_GET0_STORE)</div><div class='del'>-#  define X509_STORE_CTX_get0_store(x) ((x)-&gt;ctx)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if !defined(HAVE_SSL_IS_SERVER)</div><div class='del'>-#  define SSL_is_server(s) ((s)-&gt;server)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> /* added in 1.1.0 */</div><div class='del'>-#if !defined(HAVE_BN_GENCB_NEW)</div><div class='del'>-#  define BN_GENCB_new() ((BN_GENCB *)OPENSSL_malloc(sizeof(BN_GENCB)))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if !defined(HAVE_BN_GENCB_FREE)</div><div class='del'>-#  define BN_GENCB_free(cb) OPENSSL_free(cb)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if !defined(HAVE_BN_GENCB_GET_ARG)</div><div class='del'>-#  define BN_GENCB_get_arg(cb) (cb)-&gt;arg</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #if !defined(HAVE_EVP_MD_CTX_NEW)</div><div class='ctx'> #  define EVP_MD_CTX_new EVP_MD_CTX_create</div><div class='ctx'> #endif</div><div class='hunk'>@@ -54,16 +21,6 @@ int ossl_EC_curve_nist2nid(const char *);</div><div class='ctx'> #  define EVP_MD_CTX_free EVP_MD_CTX_destroy</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if !defined(HAVE_HMAC_CTX_NEW)</div><div class='del'>-HMAC_CTX *ossl_HMAC_CTX_new(void);</div><div class='del'>-#  define HMAC_CTX_new ossl_HMAC_CTX_new</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if !defined(HAVE_HMAC_CTX_FREE)</div><div class='del'>-void ossl_HMAC_CTX_free(HMAC_CTX *);</div><div class='del'>-#  define HMAC_CTX_free ossl_HMAC_CTX_free</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #if !defined(HAVE_X509_STORE_GET_EX_DATA)</div><div class='ctx'> #  define X509_STORE_get_ex_data(x, idx) \</div><div class='ctx'> 	CRYPTO_get_ex_data(&amp;(x)-&gt;ex_data, (idx))</div><div class='hunk'>@@ -72,6 +29,9 @@ void ossl_HMAC_CTX_free(HMAC_CTX *);</div><div class='ctx'> #if !defined(HAVE_X509_STORE_SET_EX_DATA)</div><div class='ctx'> #  define X509_STORE_set_ex_data(x, idx, data) \</div><div class='ctx'> 	CRYPTO_set_ex_data(&amp;(x)-&gt;ex_data, (idx), (data))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !defined(HAVE_X509_STORE_GET_EX_NEW_INDEX) &amp;&amp; !defined(X509_STORE_get_ex_new_index)</div><div class='ctx'> #  define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \</div><div class='ctx'> 	CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, (l), (p), \</div><div class='ctx'> 				(newf), (dupf), (freef))</div><div class='hunk'>@@ -219,4 +179,60 @@ IMPL_PKEY_GETTER(EC_KEY, ec)</div><div class='ctx'> #  define SSL_SESSION_get_protocol_version(s) ((s)-&gt;ssl_version)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#if !defined(HAVE_TS_STATUS_INFO_GET0_STATUS)</div><div class='add'>+#  define TS_STATUS_INFO_get0_status(a) ((a)-&gt;status)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !defined(HAVE_TS_STATUS_INFO_GET0_TEXT)</div><div class='add'>+#  define TS_STATUS_INFO_get0_text(a) ((a)-&gt;text)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !defined(HAVE_TS_STATUS_INFO_GET0_FAILURE_INFO)</div><div class='add'>+#  define TS_STATUS_INFO_get0_failure_info(a) ((a)-&gt;failure_info)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !defined(HAVE_TS_VERIFY_CTS_SET_CERTS)</div><div class='add'>+#  define TS_VERIFY_CTS_set_certs(ctx, crts) ((ctx)-&gt;certs=(crts))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !defined(HAVE_TS_VERIFY_CTX_SET_STORE)</div><div class='add'>+#  define TS_VERIFY_CTX_set_store(ctx, str) ((ctx)-&gt;store=(str))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !defined(HAVE_TS_VERIFY_CTX_ADD_FLAGS)</div><div class='add'>+#  define TS_VERIFY_CTX_add_flags(ctx, f) ((ctx)-&gt;flags |= (f))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !defined(HAVE_TS_RESP_CTX_SET_TIME_CB)</div><div class='add'>+#   define TS_RESP_CTX_set_time_cb(ctx, callback, dta) do { \</div><div class='add'>+        (ctx)-&gt;time_cb = (callback); \</div><div class='add'>+        (ctx)-&gt;time_cb_data = (dta); \</div><div class='add'>+    } while (0)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* added in 3.0.0 */</div><div class='add'>+#if !defined(HAVE_TS_VERIFY_CTX_SET_CERTS)</div><div class='add'>+#  define TS_VERIFY_CTX_set_certs(ctx, crts) TS_VERIFY_CTS_set_certs(ctx, crts)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_EVP_MD_CTX_GET0_MD</div><div class='add'>+#  define EVP_MD_CTX_get0_md(ctx) EVP_MD_CTX_md(ctx)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * OpenSSL 1.1.0 added EVP_MD_CTX_pkey_ctx(), and then it was renamed to</div><div class='add'>+ * EVP_MD_CTX_get_pkey_ctx(x) in OpenSSL 3.0.</div><div class='add'>+ */</div><div class='add'>+#ifndef HAVE_EVP_MD_CTX_GET_PKEY_CTX</div><div class='add'>+# ifdef HAVE_EVP_MD_CTX_PKEY_CTX</div><div class='add'>+#  define EVP_MD_CTX_get_pkey_ctx(x) EVP_MD_CTX_pkey_ctx(x)</div><div class='add'>+# else</div><div class='add'>+#  define EVP_MD_CTX_get_pkey_ctx(x) (x)-&gt;pctx</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_EVP_PKEY_EQ</div><div class='add'>+#  define EVP_PKEY_eq(a, b) EVP_PKEY_cmp(a, b)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #endif /* _OSSL_OPENSSL_MISSING_H_ */</div><div class='head'>diff --git a/ext/openssl/ossl.c b/ext/openssl/ossl.c<br/>index 69758aed7a..6c532aca94 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl.c</a></div><div class='hunk'>@@ -9,13 +9,19 @@</div><div class='ctx'>  */</div><div class='ctx'> #include "ossl.h"</div><div class='ctx'> #include &lt;stdarg.h&gt; /* for ossl_raise */</div><div class='del'>-#include &lt;ruby/thread_native.h&gt; /* for OpenSSL &lt; 1.1.0 locks */</div><div class='add'>+</div><div class='add'>+/* OpenSSL &gt;= 1.1.0 and LibreSSL &gt;= 2.9.0 */</div><div class='add'>+#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER &gt;= 0x10100000</div><div class='add'>+# define HAVE_OPENSSL_110_THREADING_API</div><div class='add'>+#else</div><div class='add'>+# include &lt;ruby/thread_native.h&gt;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Data Conversion</div><div class='ctx'>  */</div><div class='ctx'> #define OSSL_IMPL_ARY2SK(name, type, expected_class, dup)	\</div><div class='del'>-STACK_OF(type) *						\</div><div class='add'>+VALUE								\</div><div class='ctx'> ossl_##name##_ary2sk0(VALUE ary)				\</div><div class='ctx'> {								\</div><div class='ctx'>     STACK_OF(type) *sk;						\</div><div class='hunk'>@@ -37,7 +43,7 @@ ossl_##name##_ary2sk0(VALUE ary)				\</div><div class='ctx'> 	x = dup(val); /* NEED TO DUP */				\</div><div class='ctx'> 	sk_##type##_push(sk, x);				\</div><div class='ctx'>     }								\</div><div class='del'>-    return sk;							\</div><div class='add'>+    return (VALUE)sk;						\</div><div class='ctx'> }								\</div><div class='ctx'> 								\</div><div class='ctx'> STACK_OF(type) *						\</div><div class='hunk'>@@ -262,15 +268,11 @@ ossl_to_der_if_possible(VALUE obj)</div><div class='ctx'> /*</div><div class='ctx'>  * Errors</div><div class='ctx'>  */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_make_error(VALUE exc, const char *fmt, va_list args)</div><div class='add'>+VALUE</div><div class='add'>+ossl_make_error(VALUE exc, VALUE str)</div><div class='ctx'> {</div><div class='del'>-    VALUE str = Qnil;</div><div class='ctx'>     unsigned long e;</div><div class='ctx'> </div><div class='del'>-    if (fmt) {</div><div class='del'>-	str = rb_vsprintf(fmt, args);</div><div class='del'>-    }</div><div class='ctx'>     e = ERR_peek_last_error();</div><div class='ctx'>     if (e) {</div><div class='ctx'> 	const char *msg = ERR_reason_error_string(e);</div><div class='hunk'>@@ -294,37 +296,48 @@ ossl_raise(VALUE exc, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     va_list args;</div><div class='ctx'>     VALUE err;</div><div class='del'>-    va_start(args, fmt);</div><div class='del'>-    err = ossl_make_error(exc, fmt, args);</div><div class='del'>-    va_end(args);</div><div class='del'>-    rb_exc_raise(err);</div><div class='add'>+</div><div class='add'>+    if (fmt) {</div><div class='add'>+	va_start(args, fmt);</div><div class='add'>+	err = rb_vsprintf(fmt, args);</div><div class='add'>+	va_end(args);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	err = Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_exc_raise(ossl_make_error(exc, err));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> ossl_clear_error(void)</div><div class='ctx'> {</div><div class='ctx'>     if (dOSSL == Qtrue) {</div><div class='del'>-	unsigned long e;</div><div class='del'>-	const char *file, *data, *errstr;</div><div class='del'>-	int line, flags;</div><div class='del'>-</div><div class='del'>-	while ((e = ERR_get_error_line_data(&amp;file, &amp;line, &amp;data, &amp;flags))) {</div><div class='del'>-	    errstr = ERR_error_string(e, NULL);</div><div class='del'>-	    if (!errstr)</div><div class='del'>-		errstr = "(null)";</div><div class='del'>-</div><div class='del'>-	    if (flags &amp; ERR_TXT_STRING) {</div><div class='del'>-		if (!data)</div><div class='del'>-		    data = "(null)";</div><div class='del'>-		rb_warn("error on stack: %s (%s)", errstr, data);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rb_warn("error on stack: %s", errstr);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        unsigned long e;</div><div class='add'>+        const char *file, *data, *func, *lib, *reason;</div><div class='add'>+        char append[256] = "";</div><div class='add'>+        int line, flags;</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_ERR_GET_ERROR_ALL</div><div class='add'>+        while ((e = ERR_get_error_all(&amp;file, &amp;line, &amp;func, &amp;data, &amp;flags))) {</div><div class='add'>+#else</div><div class='add'>+        while ((e = ERR_get_error_line_data(&amp;file, &amp;line, &amp;data, &amp;flags))) {</div><div class='add'>+            func = ERR_func_error_string(e);</div><div class='add'>+#endif</div><div class='add'>+            lib = ERR_lib_error_string(e);</div><div class='add'>+            reason = ERR_reason_error_string(e);</div><div class='add'>+</div><div class='add'>+            if (flags &amp; ERR_TXT_STRING) {</div><div class='add'>+                if (!data)</div><div class='add'>+                    data = "(null)";</div><div class='add'>+                snprintf(append, sizeof(append), " (%s)", data);</div><div class='add'>+            }</div><div class='add'>+            rb_warn("error on stack: error:%08lX:%s:%s:%s%s", e, lib ? lib : "",</div><div class='add'>+                    func ? func : "", reason ? reason : "", append);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ERR_clear_error();</div><div class='add'>+        ERR_clear_error();</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -338,7 +351,7 @@ ossl_clear_error(void)</div><div class='ctx'>  * implementation.</div><div class='ctx'>  */</div><div class='ctx'> VALUE</div><div class='del'>-ossl_get_errors(void)</div><div class='add'>+ossl_get_errors(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary;</div><div class='ctx'>     long e;</div><div class='hunk'>@@ -386,7 +399,7 @@ ossl_debug_get(VALUE self)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   OpenSSL.debug = boolean -&gt; boolean</div><div class='ctx'>  *</div><div class='del'>- * Turns on or off debug mode. With debug mode, all erros added to the OpenSSL</div><div class='add'>+ * Turns on or off debug mode. With debug mode, all errors added to the OpenSSL</div><div class='ctx'>  * error queue will be printed to stderr.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -497,8 +510,11 @@ print_mem_leaks(VALUE self)</div><div class='ctx'>     int ret;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    BN_CTX_free(ossl_bn_ctx);</div><div class='del'>-    ossl_bn_ctx = NULL;</div><div class='add'>+#ifndef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    // for Ruby 2.x</div><div class='add'>+    void ossl_bn_ctx_free(void); // ossl_bn.c</div><div class='add'>+    ossl_bn_ctx_free();</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #if OPENSSL_VERSION_NUMBER &gt;= 0x10100000</div><div class='ctx'>     ret = CRYPTO_mem_leaks_fp(stderr);</div><div class='hunk'>@@ -605,6 +621,35 @@ static void Init_ossl_locks(void)</div><div class='ctx'> #endif /* !HAVE_OPENSSL_110_THREADING_API */</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   OpenSSL.fixed_length_secure_compare(string, string) -&gt; boolean</div><div class='add'>+ *</div><div class='add'>+ * Constant time memory comparison for fixed length strings, such as results</div><div class='add'>+ * of HMAC calculations.</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if the strings are identical, +false+ if they are of the same</div><div class='add'>+ * length but not identical. If the length is different, +ArgumentError+ is</div><div class='add'>+ * raised.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_crypto_fixed_length_secure_compare(VALUE dummy, VALUE str1, VALUE str2)</div><div class='add'>+{</div><div class='add'>+    const unsigned char *p1 = (const unsigned char *)StringValuePtr(str1);</div><div class='add'>+    const unsigned char *p2 = (const unsigned char *)StringValuePtr(str2);</div><div class='add'>+    long len1 = RSTRING_LEN(str1);</div><div class='add'>+    long len2 = RSTRING_LEN(str2);</div><div class='add'>+</div><div class='add'>+    if (len1 != len2) {</div><div class='add'>+        ossl_raise(rb_eArgError, "inputs must be of equal length");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    switch (CRYPTO_memcmp(p1, p2, len1)) {</div><div class='add'>+        case 0:	return Qtrue;</div><div class='add'>+        default: return Qfalse;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  * OpenSSL provides SSL, TLS and general purpose cryptography.  It wraps the</div><div class='ctx'>  * OpenSSL[https://www.openssl.org/] library.</div><div class='ctx'>  *</div><div class='hunk'>@@ -635,7 +680,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  * ahold of the key may use it unless it is encrypted.  In order to securely</div><div class='ctx'>  * export a key you may export it with a pass phrase.</div><div class='ctx'>  *</div><div class='del'>- *   cipher = OpenSSL::Cipher.new 'AES-128-CBC'</div><div class='add'>+ *   cipher = OpenSSL::Cipher.new 'aes-256-cbc'</div><div class='ctx'>  *   pass_phrase = 'my secure pass phrase goes here'</div><div class='ctx'>  *</div><div class='ctx'>  *   key_secure = key.export cipher, pass_phrase</div><div class='hunk'>@@ -650,13 +695,13 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  *</div><div class='ctx'>  * A key can also be loaded from a file.</div><div class='ctx'>  *</div><div class='del'>- *   key2 = OpenSSL::PKey::RSA.new File.read 'private_key.pem'</div><div class='add'>+ *   key2 = OpenSSL::PKey.read File.read 'private_key.pem'</div><div class='ctx'>  *   key2.public? # =&gt; true</div><div class='ctx'>  *   key2.private? # =&gt; true</div><div class='ctx'>  *</div><div class='ctx'>  * or</div><div class='ctx'>  *</div><div class='del'>- *   key3 = OpenSSL::PKey::RSA.new File.read 'public_key.pem'</div><div class='add'>+ *   key3 = OpenSSL::PKey.read File.read 'public_key.pem'</div><div class='ctx'>  *   key3.public? # =&gt; true</div><div class='ctx'>  *   key3.private? # =&gt; false</div><div class='ctx'>  *</div><div class='hunk'>@@ -668,7 +713,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  *</div><div class='ctx'>  *   key4_pem = File.read 'private.secure.pem'</div><div class='ctx'>  *   pass_phrase = 'my secure pass phrase goes here'</div><div class='del'>- *   key4 = OpenSSL::PKey::RSA.new key4_pem, pass_phrase</div><div class='add'>+ *   key4 = OpenSSL::PKey.read key4_pem, pass_phrase</div><div class='ctx'>  *</div><div class='ctx'>  * == RSA Encryption</div><div class='ctx'>  *</div><div class='hunk'>@@ -710,16 +755,14 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  * To sign a document, a cryptographically secure hash of the document is</div><div class='ctx'>  * computed first, which is then signed using the private key.</div><div class='ctx'>  *</div><div class='del'>- *   digest = OpenSSL::Digest::SHA256.new</div><div class='del'>- *   signature = key.sign digest, document</div><div class='add'>+ *   signature = key.sign 'SHA256', document</div><div class='ctx'>  *</div><div class='ctx'>  * To validate the signature, again a hash of the document is computed and</div><div class='ctx'>  * the signature is decrypted using the public key. The result is then</div><div class='ctx'>  * compared to the hash just computed, if they are equal the signature was</div><div class='ctx'>  * valid.</div><div class='ctx'>  *</div><div class='del'>- *   digest = OpenSSL::Digest::SHA256.new</div><div class='del'>- *   if key.verify digest, signature, document</div><div class='add'>+ *   if key.verify 'SHA256', signature, document</div><div class='ctx'>  *     puts 'Valid'</div><div class='ctx'>  *   else</div><div class='ctx'>  *     puts 'Invalid'</div><div class='hunk'>@@ -745,7 +788,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  * using PBKDF2. PKCS #5 v2.0 recommends at least 8 bytes for the salt,</div><div class='ctx'>  * the number of iterations largely depends on the hardware being used.</div><div class='ctx'>  *</div><div class='del'>- *   cipher = OpenSSL::Cipher.new 'AES-128-CBC'</div><div class='add'>+ *   cipher = OpenSSL::Cipher.new 'aes-256-cbc'</div><div class='ctx'>  *   cipher.encrypt</div><div class='ctx'>  *   iv = cipher.random_iv</div><div class='ctx'>  *</div><div class='hunk'>@@ -753,7 +796,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  *   salt = OpenSSL::Random.random_bytes 16</div><div class='ctx'>  *   iter = 20000</div><div class='ctx'>  *   key_len = cipher.key_len</div><div class='del'>- *   digest = OpenSSL::Digest::SHA256.new</div><div class='add'>+ *   digest = OpenSSL::Digest.new('SHA256')</div><div class='ctx'>  *</div><div class='ctx'>  *   key = OpenSSL::PKCS5.pbkdf2_hmac(pwd, salt, iter, key_len, digest)</div><div class='ctx'>  *   cipher.key = key</div><div class='hunk'>@@ -768,7 +811,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  * Use the same steps as before to derive the symmetric AES key, this time</div><div class='ctx'>  * setting the Cipher up for decryption.</div><div class='ctx'>  *</div><div class='del'>- *   cipher = OpenSSL::Cipher.new 'AES-128-CBC'</div><div class='add'>+ *   cipher = OpenSSL::Cipher.new 'aes-256-cbc'</div><div class='ctx'>  *   cipher.decrypt</div><div class='ctx'>  *   cipher.iv = iv # the one generated with #random_iv</div><div class='ctx'>  *</div><div class='hunk'>@@ -776,7 +819,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  *   salt = ... # the one generated above</div><div class='ctx'>  *   iter = 20000</div><div class='ctx'>  *   key_len = cipher.key_len</div><div class='del'>- *   digest = OpenSSL::Digest::SHA256.new</div><div class='add'>+ *   digest = OpenSSL::Digest.new('SHA256')</div><div class='ctx'>  *</div><div class='ctx'>  *   key = OpenSSL::PKCS5.pbkdf2_hmac(pwd, salt, iter, key_len, digest)</div><div class='ctx'>  *   cipher.key = key</div><div class='hunk'>@@ -803,7 +846,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  *</div><div class='ctx'>  * First set up the cipher for encryption</div><div class='ctx'>  *</div><div class='del'>- *   encryptor = OpenSSL::Cipher.new 'AES-128-CBC'</div><div class='add'>+ *   encryptor = OpenSSL::Cipher.new 'aes-256-cbc'</div><div class='ctx'>  *   encryptor.encrypt</div><div class='ctx'>  *   encryptor.pkcs5_keyivgen pass_phrase, salt</div><div class='ctx'>  *</div><div class='hunk'>@@ -816,7 +859,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  *</div><div class='ctx'>  * Use a new Cipher instance set up for decryption</div><div class='ctx'>  *</div><div class='del'>- *   decryptor = OpenSSL::Cipher.new 'AES-128-CBC'</div><div class='add'>+ *   decryptor = OpenSSL::Cipher.new 'aes-256-cbc'</div><div class='ctx'>  *   decryptor.decrypt</div><div class='ctx'>  *   decryptor.pkcs5_keyivgen pass_phrase, salt</div><div class='ctx'>  *</div><div class='hunk'>@@ -833,7 +876,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  * signature.</div><div class='ctx'>  *</div><div class='ctx'>  *   key = OpenSSL::PKey::RSA.new 2048</div><div class='del'>- *   name = OpenSSL::X509::Name.parse 'CN=nobody/DC=example'</div><div class='add'>+ *   name = OpenSSL::X509::Name.parse '/CN=nobody/DC=example'</div><div class='ctx'>  *</div><div class='ctx'>  *   cert = OpenSSL::X509::Certificate.new</div><div class='ctx'>  *   cert.version = 2</div><div class='hunk'>@@ -872,7 +915,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  * certificate.</div><div class='ctx'>  *</div><div class='ctx'>  *   cert.issuer = name</div><div class='del'>- *   cert.sign key, OpenSSL::Digest::SHA1.new</div><div class='add'>+ *   cert.sign key, OpenSSL::Digest.new('SHA1')</div><div class='ctx'>  *</div><div class='ctx'>  *   open 'certificate.pem', 'w' do |io| io.write cert.to_pem end</div><div class='ctx'>  *</div><div class='hunk'>@@ -904,7 +947,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  *   ca_key = OpenSSL::PKey::RSA.new 2048</div><div class='ctx'>  *   pass_phrase = 'my secure pass phrase goes here'</div><div class='ctx'>  *</div><div class='del'>- *   cipher = OpenSSL::Cipher.new 'AES-128-CBC'</div><div class='add'>+ *   cipher = OpenSSL::Cipher.new 'aes-256-cbc'</div><div class='ctx'>  *</div><div class='ctx'>  *   open 'ca_key.pem', 'w', 0400 do |io|</div><div class='ctx'>  *     io.write ca_key.export(cipher, pass_phrase)</div><div class='hunk'>@@ -915,7 +958,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  * A CA certificate is created the same way we created a certificate above, but</div><div class='ctx'>  * with different extensions.</div><div class='ctx'>  *</div><div class='del'>- *   ca_name = OpenSSL::X509::Name.parse 'CN=ca/DC=example'</div><div class='add'>+ *   ca_name = OpenSSL::X509::Name.parse '/CN=ca/DC=example'</div><div class='ctx'>  *</div><div class='ctx'>  *   ca_cert = OpenSSL::X509::Certificate.new</div><div class='ctx'>  *   ca_cert.serial = 0</div><div class='hunk'>@@ -948,7 +991,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  *</div><div class='ctx'>  * Root CA certificates are self-signed.</div><div class='ctx'>  *</div><div class='del'>- *   ca_cert.sign ca_key, OpenSSL::Digest::SHA1.new</div><div class='add'>+ *   ca_cert.sign ca_key, OpenSSL::Digest.new('SHA1')</div><div class='ctx'>  *</div><div class='ctx'>  * The CA certificate is saved to disk so it may be distributed to all the</div><div class='ctx'>  * users of the keys this CA will sign.</div><div class='hunk'>@@ -966,7 +1009,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  *   csr.version = 0</div><div class='ctx'>  *   csr.subject = name</div><div class='ctx'>  *   csr.public_key = key.public_key</div><div class='del'>- *   csr.sign key, OpenSSL::Digest::SHA1.new</div><div class='add'>+ *   csr.sign key, OpenSSL::Digest.new('SHA1')</div><div class='ctx'>  *</div><div class='ctx'>  * A CSR is saved to disk and sent to the CA for signing.</div><div class='ctx'>  *</div><div class='hunk'>@@ -1010,7 +1053,7 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  *   csr_cert.add_extension \</div><div class='ctx'>  *     extension_factory.create_extension('subjectKeyIdentifier', 'hash')</div><div class='ctx'>  *</div><div class='del'>- *   csr_cert.sign ca_key, OpenSSL::Digest::SHA1.new</div><div class='add'>+ *   csr_cert.sign ca_key, OpenSSL::Digest.new('SHA1')</div><div class='ctx'>  *</div><div class='ctx'>  *   open 'csr_cert.pem', 'w' do |io|</div><div class='ctx'>  *     io.write csr_cert.to_pem</div><div class='hunk'>@@ -1042,13 +1085,13 @@ static void Init_ossl_locks(void)</div><div class='ctx'>  *   loop do</div><div class='ctx'>  *     ssl_connection = ssl_server.accept</div><div class='ctx'>  *</div><div class='del'>- *     data = connection.gets</div><div class='add'>+ *     data = ssl_connection.gets</div><div class='ctx'>  *</div><div class='ctx'>  *     response = "I got #{data.dump}"</div><div class='ctx'>  *     puts response</div><div class='ctx'>  *</div><div class='del'>- *     connection.puts "I got #{data.dump}"</div><div class='del'>- *     connection.close</div><div class='add'>+ *     ssl_connection.puts "I got #{data.dump}"</div><div class='add'>+ *     ssl_connection.close</div><div class='ctx'>  *   end</div><div class='ctx'>  *</div><div class='ctx'>  * === SSL client</div><div class='hunk'>@@ -1099,6 +1142,10 @@ static void Init_ossl_locks(void)</div><div class='ctx'> void</div><div class='ctx'> Init_openssl(void)</div><div class='ctx'> {</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #undef rb_intern</div><div class='ctx'>     /*</div><div class='ctx'>      * Init timezone info</div><div class='hunk'>@@ -1125,11 +1172,7 @@ Init_openssl(void)</div><div class='ctx'>      */</div><div class='ctx'>     mOSSL = rb_define_module("OpenSSL");</div><div class='ctx'>     rb_global_variable(&amp;mOSSL);</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * OpenSSL ruby extension version</div><div class='del'>-     */</div><div class='del'>-    rb_define_const(mOSSL, "VERSION", rb_str_new2(OSSL_VERSION));</div><div class='add'>+    rb_define_singleton_method(mOSSL, "fixed_length_secure_compare", ossl_crypto_fixed_length_secure_compare, 2);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * Version of OpenSSL the ruby OpenSSL extension was built with</div><div class='hunk'>@@ -1205,6 +1248,9 @@ Init_openssl(void)</div><div class='ctx'>     Init_ossl_pkey();</div><div class='ctx'>     Init_ossl_rand();</div><div class='ctx'>     Init_ossl_ssl();</div><div class='add'>+#ifndef OPENSSL_NO_TS</div><div class='add'>+    Init_ossl_ts();</div><div class='add'>+#endif</div><div class='ctx'>     Init_ossl_x509();</div><div class='ctx'>     Init_ossl_ocsp();</div><div class='ctx'>     Init_ossl_engine();</div><div class='head'>diff --git a/ext/openssl/ossl.h b/ext/openssl/ossl.h<br/>index 39699bd5e6..facb80aa73 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl.h</a></div><div class='hunk'>@@ -18,20 +18,19 @@</div><div class='ctx'> #include &lt;ruby/io.h&gt;</div><div class='ctx'> #include &lt;ruby/thread.h&gt;</div><div class='ctx'> #include &lt;openssl/opensslv.h&gt;</div><div class='add'>+</div><div class='ctx'> #include &lt;openssl/err.h&gt;</div><div class='ctx'> #include &lt;openssl/asn1.h&gt;</div><div class='ctx'> #include &lt;openssl/x509v3.h&gt;</div><div class='ctx'> #include &lt;openssl/ssl.h&gt;</div><div class='ctx'> #include &lt;openssl/pkcs12.h&gt;</div><div class='ctx'> #include &lt;openssl/pkcs7.h&gt;</div><div class='del'>-#include &lt;openssl/hmac.h&gt;</div><div class='ctx'> #include &lt;openssl/rand.h&gt;</div><div class='ctx'> #include &lt;openssl/conf.h&gt;</div><div class='del'>-#include &lt;openssl/conf_api.h&gt;</div><div class='del'>-#include &lt;openssl/crypto.h&gt;</div><div class='del'>-#if !defined(OPENSSL_NO_ENGINE)</div><div class='del'>-#  include &lt;openssl/engine.h&gt;</div><div class='add'>+#ifndef OPENSSL_NO_TS</div><div class='add'>+  #include &lt;openssl/ts.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+#include &lt;openssl/crypto.h&gt;</div><div class='ctx'> #if !defined(OPENSSL_NO_OCSP)</div><div class='ctx'> #  include &lt;openssl/ocsp.h&gt;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -41,6 +40,28 @@</div><div class='ctx'> #include &lt;openssl/evp.h&gt;</div><div class='ctx'> #include &lt;openssl/dh.h&gt;</div><div class='ctx'> </div><div class='add'>+#ifndef LIBRESSL_VERSION_NUMBER</div><div class='add'>+# define OSSL_IS_LIBRESSL 0</div><div class='add'>+# define OSSL_OPENSSL_PREREQ(maj, min, pat) \</div><div class='add'>+      (OPENSSL_VERSION_NUMBER &gt;= ((maj &lt;&lt; 28) | (min &lt;&lt; 20) | (pat &lt;&lt; 12)))</div><div class='add'>+# define OSSL_LIBRESSL_PREREQ(maj, min, pat) 0</div><div class='add'>+#else</div><div class='add'>+# define OSSL_IS_LIBRESSL 1</div><div class='add'>+# define OSSL_OPENSSL_PREREQ(maj, min, pat) 0</div><div class='add'>+# define OSSL_LIBRESSL_PREREQ(maj, min, pat) \</div><div class='add'>+      (LIBRESSL_VERSION_NUMBER &gt;= ((maj &lt;&lt; 28) | (min &lt;&lt; 20) | (pat &lt;&lt; 12)))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(3, 0, 0)</div><div class='add'>+# define OSSL_3_const const</div><div class='add'>+#else</div><div class='add'>+# define OSSL_3_const /* const */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !defined(OPENSSL_NO_ENGINE) &amp;&amp; !OSSL_OPENSSL_PREREQ(3, 0, 0)</div><div class='add'>+# define OSSL_USE_ENGINE</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * Common Module</div><div class='ctx'>  */</div><div class='hunk'>@@ -86,9 +107,8 @@ VALUE ossl_buf2str(char *buf, int len);</div><div class='ctx'> VALUE ossl_str_new(const char *, long, int *);</div><div class='ctx'> #define ossl_str_adjust(str, p) \</div><div class='ctx'> do{\</div><div class='del'>-    long len = RSTRING_LEN(str);\</div><div class='ctx'>     long newlen = (long)((p) - (unsigned char*)RSTRING_PTR(str));\</div><div class='del'>-    assert(newlen &lt;= len);\</div><div class='add'>+    assert(newlen &lt;= RSTRING_LEN(str));\</div><div class='ctx'>     rb_str_set_len((str), newlen);\</div><div class='ctx'> }while(0)</div><div class='ctx'> /*</div><div class='hunk'>@@ -120,7 +140,9 @@ int ossl_pem_passwd_cb(char *, int, int, void *);</div><div class='ctx'> /*</div><div class='ctx'>  * ERRor messages</div><div class='ctx'>  */</div><div class='del'>-NORETURN(void ossl_raise(VALUE, const char *, ...));</div><div class='add'>+PRINTF_ARGS(NORETURN(void ossl_raise(VALUE, const char *, ...)), 2, 3);</div><div class='add'>+/* Make exception instance from str and OpenSSL error reason string. */</div><div class='add'>+VALUE ossl_make_error(VALUE exc, VALUE str);</div><div class='ctx'> /* Clear OpenSSL error queue. If dOSSL is set, rb_warn() them. */</div><div class='ctx'> void ossl_clear_error(void);</div><div class='ctx'> </div><div class='hunk'>@@ -153,7 +175,6 @@ void ossl_debug(const char *, ...);</div><div class='ctx'>  * Include all parts</div><div class='ctx'>  */</div><div class='ctx'> #include "openssl_missing.h"</div><div class='del'>-#include "ruby_missing.h"</div><div class='ctx'> #include "ossl_asn1.h"</div><div class='ctx'> #include "ossl_bio.h"</div><div class='ctx'> #include "ossl_bn.h"</div><div class='hunk'>@@ -168,7 +189,9 @@ void ossl_debug(const char *, ...);</div><div class='ctx'> #include "ossl_pkey.h"</div><div class='ctx'> #include "ossl_rand.h"</div><div class='ctx'> #include "ossl_ssl.h"</div><div class='del'>-#include "ossl_version.h"</div><div class='add'>+#ifndef OPENSSL_NO_TS</div><div class='add'>+  #include "ossl_ts.h"</div><div class='add'>+#endif</div><div class='ctx'> #include "ossl_x509.h"</div><div class='ctx'> #include "ossl_engine.h"</div><div class='ctx'> #include "ossl_kdf.h"</div><div class='head'>diff --git a/ext/openssl/ossl_asn1.c b/ext/openssl/ossl_asn1.c<br/>index ab45bd833c..71c452c88a 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_asn1.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_asn1.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_asn1.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_asn1.c</a></div><div class='hunk'>@@ -69,6 +69,12 @@ asn1time_to_time(const ASN1_TIME *time)</div><div class='ctx'>     return rb_funcall2(rb_cTime, rb_intern("utc"), 6, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+asn1time_to_time_i(VALUE arg)</div><div class='add'>+{</div><div class='add'>+    return asn1time_to_time((ASN1_TIME *)arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> ossl_time_split(VALUE time, time_t *sec, int *days)</div><div class='ctx'> {</div><div class='hunk'>@@ -136,6 +142,12 @@ num_to_asn1integer(VALUE obj, ASN1_INTEGER *ai)</div><div class='ctx'>     return ai;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+asn1integer_to_num_i(VALUE arg)</div><div class='add'>+{</div><div class='add'>+    return asn1integer_to_num((ASN1_INTEGER *)arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /********/</div><div class='ctx'> /*</div><div class='ctx'>  * ASN1 module</div><div class='hunk'>@@ -325,7 +337,7 @@ decode_int(unsigned char* der, long length)</div><div class='ctx'>     p = der;</div><div class='ctx'>     if(!(ai = d2i_ASN1_INTEGER(NULL, &amp;p, length)))</div><div class='ctx'> 	ossl_raise(eASN1Error, NULL);</div><div class='del'>-    ret = rb_protect((VALUE (*)(VALUE))asn1integer_to_num,</div><div class='add'>+    ret = rb_protect(asn1integer_to_num_i,</div><div class='ctx'> 		     (VALUE)ai, &amp;status);</div><div class='ctx'>     ASN1_INTEGER_free(ai);</div><div class='ctx'>     if(status) rb_jump_tag(status);</div><div class='hunk'>@@ -365,7 +377,7 @@ decode_enum(unsigned char* der, long length)</div><div class='ctx'>     p = der;</div><div class='ctx'>     if(!(ai = d2i_ASN1_ENUMERATED(NULL, &amp;p, length)))</div><div class='ctx'> 	ossl_raise(eASN1Error, NULL);</div><div class='del'>-    ret = rb_protect((VALUE (*)(VALUE))asn1integer_to_num,</div><div class='add'>+    ret = rb_protect(asn1integer_to_num_i,</div><div class='ctx'> 		     (VALUE)ai, &amp;status);</div><div class='ctx'>     ASN1_ENUMERATED_free(ai);</div><div class='ctx'>     if(status) rb_jump_tag(status);</div><div class='hunk'>@@ -427,7 +439,7 @@ decode_time(unsigned char* der, long length)</div><div class='ctx'>     p = der;</div><div class='ctx'>     if(!(time = d2i_ASN1_TIME(NULL, &amp;p, length)))</div><div class='ctx'> 	ossl_raise(eASN1Error, NULL);</div><div class='del'>-    ret = rb_protect((VALUE (*)(VALUE))asn1time_to_time,</div><div class='add'>+    ret = rb_protect(asn1time_to_time_i,</div><div class='ctx'> 		     (VALUE)time, &amp;status);</div><div class='ctx'>     ASN1_TIME_free(time);</div><div class='ctx'>     if(status) rb_jump_tag(status);</div><div class='hunk'>@@ -497,7 +509,8 @@ ossl_asn1_get_asn1type(VALUE obj)</div><div class='ctx'>     ASN1_TYPE *ret;</div><div class='ctx'>     VALUE value, rflag;</div><div class='ctx'>     void *ptr;</div><div class='del'>-    void (*free_func)();</div><div class='add'>+    typedef void free_func_type(void *);</div><div class='add'>+    free_func_type *free_func;</div><div class='ctx'>     int tag;</div><div class='ctx'> </div><div class='ctx'>     tag = ossl_asn1_default_tag(obj);</div><div class='hunk'>@@ -510,16 +523,16 @@ ossl_asn1_get_asn1type(VALUE obj)</div><div class='ctx'>     case V_ASN1_INTEGER:         /* FALLTHROUGH */</div><div class='ctx'>     case V_ASN1_ENUMERATED:</div><div class='ctx'> 	ptr = obj_to_asn1int(value);</div><div class='del'>-	free_func = ASN1_INTEGER_free;</div><div class='add'>+	free_func = (free_func_type *)ASN1_INTEGER_free;</div><div class='ctx'> 	break;</div><div class='ctx'>     case V_ASN1_BIT_STRING:</div><div class='ctx'>         rflag = rb_attr_get(obj, sivUNUSED_BITS);</div><div class='ctx'> 	ptr = obj_to_asn1bstr(value, NUM2INT(rflag));</div><div class='del'>-	free_func = ASN1_BIT_STRING_free;</div><div class='add'>+	free_func = (free_func_type *)ASN1_BIT_STRING_free;</div><div class='ctx'> 	break;</div><div class='ctx'>     case V_ASN1_NULL:</div><div class='ctx'> 	ptr = obj_to_asn1null(value);</div><div class='del'>-	free_func = ASN1_NULL_free;</div><div class='add'>+	free_func = (free_func_type *)ASN1_NULL_free;</div><div class='ctx'> 	break;</div><div class='ctx'>     case V_ASN1_OCTET_STRING:    /* FALLTHROUGH */</div><div class='ctx'>     case V_ASN1_UTF8STRING:      /* FALLTHROUGH */</div><div class='hunk'>@@ -534,24 +547,24 @@ ossl_asn1_get_asn1type(VALUE obj)</div><div class='ctx'>     case V_ASN1_UNIVERSALSTRING: /* FALLTHROUGH */</div><div class='ctx'>     case V_ASN1_BMPSTRING:</div><div class='ctx'> 	ptr = obj_to_asn1str(value);</div><div class='del'>-	free_func = ASN1_STRING_free;</div><div class='add'>+	free_func = (free_func_type *)ASN1_STRING_free;</div><div class='ctx'> 	break;</div><div class='ctx'>     case V_ASN1_OBJECT:</div><div class='ctx'> 	ptr = obj_to_asn1obj(value);</div><div class='del'>-	free_func = ASN1_OBJECT_free;</div><div class='add'>+	free_func = (free_func_type *)ASN1_OBJECT_free;</div><div class='ctx'> 	break;</div><div class='ctx'>     case V_ASN1_UTCTIME:</div><div class='ctx'> 	ptr = obj_to_asn1utime(value);</div><div class='del'>-	free_func = ASN1_TIME_free;</div><div class='add'>+	free_func = (free_func_type *)ASN1_TIME_free;</div><div class='ctx'> 	break;</div><div class='ctx'>     case V_ASN1_GENERALIZEDTIME:</div><div class='ctx'> 	ptr = obj_to_asn1gtime(value);</div><div class='del'>-	free_func = ASN1_TIME_free;</div><div class='add'>+	free_func = (free_func_type *)ASN1_TIME_free;</div><div class='ctx'> 	break;</div><div class='ctx'>     case V_ASN1_SET:             /* FALLTHROUGH */</div><div class='ctx'>     case V_ASN1_SEQUENCE:</div><div class='ctx'> 	ptr = obj_to_asn1derstr(obj);</div><div class='del'>-	free_func = ASN1_STRING_free;</div><div class='add'>+	free_func = (free_func_type *)ASN1_STRING_free;</div><div class='ctx'> 	break;</div><div class='ctx'>     default:</div><div class='ctx'> 	ossl_raise(eASN1Error, "unsupported ASN.1 type");</div><div class='hunk'>@@ -1285,6 +1298,30 @@ ossl_asn1obj_get_ln(VALUE self)</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     oid == other_oid =&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if _other_oid_ is the same as _oid_</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_asn1obj_eq(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    VALUE valSelf, valOther;</div><div class='add'>+    int nidSelf, nidOther;</div><div class='add'>+</div><div class='add'>+    valSelf = ossl_asn1_get_value(self);</div><div class='add'>+    valOther = ossl_asn1_get_value(other);</div><div class='add'>+</div><div class='add'>+    if ((nidSelf = OBJ_txt2nid(StringValueCStr(valSelf))) == NID_undef)</div><div class='add'>+	ossl_raise(eASN1Error, "OBJ_txt2nid");</div><div class='add'>+</div><div class='add'>+    if ((nidOther = OBJ_txt2nid(StringValueCStr(valOther))) == NID_undef)</div><div class='add'>+	ossl_raise(eASN1Error, "OBJ_txt2nid");</div><div class='add'>+</div><div class='add'>+    return nidSelf == nidOther ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> asn1obj_get_oid_i(VALUE vobj)</div><div class='ctx'> {</div><div class='hunk'>@@ -1486,7 +1523,7 @@ Init_ossl_asn1(void)</div><div class='ctx'>      *</div><div class='ctx'>      * An Array that stores the name of a given tag number. These names are</div><div class='ctx'>      * the same as the name of the tag constant that is additionally defined,</div><div class='del'>-     * e.g. UNIVERSAL_TAG_NAME[2] = "INTEGER" and OpenSSL::ASN1::INTEGER = 2.</div><div class='add'>+     * e.g. &lt;tt&gt;UNIVERSAL_TAG_NAME[2] = "INTEGER"&lt;/tt&gt; and &lt;tt&gt;OpenSSL::ASN1::INTEGER = 2&lt;/tt&gt;.</div><div class='ctx'>      *</div><div class='ctx'>      * == Example usage</div><div class='ctx'>      *</div><div class='hunk'>@@ -1818,13 +1855,14 @@ do{\</div><div class='ctx'>     rb_define_method(cASN1ObjectId, "oid", ossl_asn1obj_get_oid, 0);</div><div class='ctx'>     rb_define_alias(cASN1ObjectId, "short_name", "sn");</div><div class='ctx'>     rb_define_alias(cASN1ObjectId, "long_name", "ln");</div><div class='add'>+    rb_define_method(cASN1ObjectId, "==", ossl_asn1obj_eq, 1);</div><div class='ctx'>     rb_attr(cASN1BitString, rb_intern("unused_bits"), 1, 1, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(cASN1EndOfContent, "initialize", ossl_asn1eoc_initialize, 0);</div><div class='ctx'>     rb_define_method(cASN1EndOfContent, "to_der", ossl_asn1eoc_to_der, 0);</div><div class='ctx'> </div><div class='ctx'>     class_tag_map = rb_hash_new();</div><div class='del'>-    rb_global_variable(&amp;class_tag_map);</div><div class='add'>+    rb_gc_register_mark_object(class_tag_map);</div><div class='ctx'>     rb_hash_aset(class_tag_map, cASN1EndOfContent, INT2NUM(V_ASN1_EOC));</div><div class='ctx'>     rb_hash_aset(class_tag_map, cASN1Boolean, INT2NUM(V_ASN1_BOOLEAN));</div><div class='ctx'>     rb_hash_aset(class_tag_map, cASN1Integer, INT2NUM(V_ASN1_INTEGER));</div><div class='head'>diff --git a/ext/openssl/ossl_bn.c b/ext/openssl/ossl_bn.c<br/>index 4666ce6c2f..bf2bac3679 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_bn.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_bn.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_bn.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_bn.c</a></div><div class='hunk'>@@ -10,6 +10,10 @@</div><div class='ctx'> /* modified by Michal Rokos &lt;m.rokos@sh.cvut.cz&gt; */</div><div class='ctx'> #include "ossl.h"</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+#include &lt;ruby/ractor.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #define NewBN(klass) \</div><div class='ctx'>   TypedData_Wrap_Struct((klass), &amp;ossl_bn_type, 0)</div><div class='ctx'> #define SetBN(obj, bn) do { \</div><div class='hunk'>@@ -150,12 +154,58 @@ ossl_bn_value_ptr(volatile VALUE *ptr)</div><div class='ctx'> /*</div><div class='ctx'>  * Private</div><div class='ctx'>  */</div><div class='del'>-/*</div><div class='del'>- * BN_CTX - is used in more difficult math. ops</div><div class='del'>- * (Why just 1? Because Ruby itself isn't thread safe,</div><div class='del'>- *  we don't need to care about threads)</div><div class='del'>- */</div><div class='del'>-BN_CTX *ossl_bn_ctx;</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+void</div><div class='add'>+ossl_bn_ctx_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    BN_CTX *ctx = (BN_CTX *)ptr;</div><div class='add'>+    BN_CTX_free(ctx);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct rb_ractor_local_storage_type ossl_bn_ctx_key_type = {</div><div class='add'>+    NULL, // mark</div><div class='add'>+    ossl_bn_ctx_free,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+rb_ractor_local_key_t ossl_bn_ctx_key;</div><div class='add'>+</div><div class='add'>+BN_CTX *</div><div class='add'>+ossl_bn_ctx_get(void)</div><div class='add'>+{</div><div class='add'>+    // stored in ractor local storage</div><div class='add'>+</div><div class='add'>+    BN_CTX *ctx = rb_ractor_local_storage_ptr(ossl_bn_ctx_key);</div><div class='add'>+    if (!ctx) {</div><div class='add'>+        if (!(ctx = BN_CTX_new())) {</div><div class='add'>+            ossl_raise(rb_eRuntimeError, "Cannot init BN_CTX");</div><div class='add'>+        }</div><div class='add'>+        rb_ractor_local_storage_ptr_set(ossl_bn_ctx_key, ctx);</div><div class='add'>+    }</div><div class='add'>+    return ctx;</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+// for ruby 2.x</div><div class='add'>+static BN_CTX *gv_ossl_bn_ctx;</div><div class='add'>+</div><div class='add'>+BN_CTX *</div><div class='add'>+ossl_bn_ctx_get(void)</div><div class='add'>+{</div><div class='add'>+    if (gv_ossl_bn_ctx == NULL) {</div><div class='add'>+        if (!(gv_ossl_bn_ctx = BN_CTX_new())) {</div><div class='add'>+            ossl_raise(rb_eRuntimeError, "Cannot init BN_CTX");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return gv_ossl_bn_ctx;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+ossl_bn_ctx_free(void)</div><div class='add'>+{</div><div class='add'>+    BN_CTX_free(gv_ossl_bn_ctx);</div><div class='add'>+    gv_ossl_bn_ctx = NULL;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_bn_alloc(VALUE klass)</div><div class='hunk'>@@ -173,13 +223,29 @@ ossl_bn_alloc(VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    OpenSSL::BN.new =&gt; aBN</div><div class='del'>- *    OpenSSL::BN.new(bn) =&gt; aBN</div><div class='del'>- *    OpenSSL::BN.new(integer) =&gt; aBN</div><div class='del'>- *    OpenSSL::BN.new(string) =&gt; aBN</div><div class='del'>- *    OpenSSL::BN.new(string, 0 | 2 | 10 | 16) =&gt; aBN</div><div class='add'>+ *    OpenSSL::BN.new(bn) -&gt; aBN</div><div class='add'>+ *    OpenSSL::BN.new(integer) -&gt; aBN</div><div class='add'>+ *    OpenSSL::BN.new(string, base = 10) -&gt; aBN</div><div class='add'>+ *</div><div class='add'>+ * Construct a new \OpenSSL BIGNUM object.</div><div class='ctx'>  *</div><div class='del'>- * Construct a new OpenSSL BIGNUM object.</div><div class='add'>+ * If +bn+ is an Integer or OpenSSL::BN, a new instance of OpenSSL::BN</div><div class='add'>+ * representing the same value is returned. See also Integer#to_bn for the</div><div class='add'>+ * short-hand.</div><div class='add'>+ *</div><div class='add'>+ * If a String is given, the content will be parsed according to +base+.</div><div class='add'>+ *</div><div class='add'>+ * +string+::</div><div class='add'>+ *   The string to be parsed.</div><div class='add'>+ * +base+::</div><div class='add'>+ *   The format. Must be one of the following:</div><div class='add'>+ *   - +0+  - MPI format. See the man page BN_mpi2bn(3) for details.</div><div class='add'>+ *   - +2+  - Variable-length and big-endian binary encoding of a positive</div><div class='add'>+ *     number.</div><div class='add'>+ *   - +10+ - Decimal number representation, with a leading '-' for a negative</div><div class='add'>+ *     number.</div><div class='add'>+ *   - +16+ - Hexadeciaml number representation, with a leading '-' for a</div><div class='add'>+ *     negative number.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_bn_initialize(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -187,11 +253,16 @@ ossl_bn_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     BIGNUM *bn;</div><div class='ctx'>     VALUE str, bs;</div><div class='ctx'>     int base = 10;</div><div class='add'>+    char *ptr;</div><div class='ctx'> </div><div class='ctx'>     if (rb_scan_args(argc, argv, "11", &amp;str, &amp;bs) == 2) {</div><div class='ctx'> 	base = NUM2INT(bs);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    if (NIL_P(str)) {</div><div class='add'>+        ossl_raise(rb_eArgError, "invalid argument");</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     if (RB_INTEGER_TYPE_P(str)) {</div><div class='ctx'> 	GetBN(self, bn);</div><div class='ctx'> 	integer_to_bnptr(str, bn);</div><div class='hunk'>@@ -213,12 +284,14 @@ ossl_bn_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     GetBN(self, bn);</div><div class='ctx'>     switch (base) {</div><div class='ctx'>     case 0:</div><div class='del'>-	if (!BN_mpi2bn((unsigned char *)StringValuePtr(str), RSTRING_LENINT(str), bn)) {</div><div class='add'>+        ptr = StringValuePtr(str);</div><div class='add'>+        if (!BN_mpi2bn((unsigned char *)ptr, RSTRING_LENINT(str), bn)) {</div><div class='ctx'> 	    ossl_raise(eBNError, NULL);</div><div class='ctx'> 	}</div><div class='ctx'> 	break;</div><div class='ctx'>     case 2:</div><div class='del'>-	if (!BN_bin2bn((unsigned char *)StringValuePtr(str), RSTRING_LENINT(str), bn)) {</div><div class='add'>+        ptr = StringValuePtr(str);</div><div class='add'>+        if (!BN_bin2bn((unsigned char *)ptr, RSTRING_LENINT(str), bn)) {</div><div class='ctx'> 	    ossl_raise(eBNError, NULL);</div><div class='ctx'> 	}</div><div class='ctx'> 	break;</div><div class='hunk'>@@ -240,16 +313,21 @@ ossl_bn_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    bn.to_s =&gt; string</div><div class='del'>- *    bn.to_s(base) =&gt; string</div><div class='add'>+ *    bn.to_s(base = 10) -&gt; string</div><div class='ctx'>  *</div><div class='del'>- * === Parameters</div><div class='del'>- * * _base_ - Integer</div><div class='del'>- *   Valid values:</div><div class='del'>- *   * 0 - MPI</div><div class='del'>- *   * 2 - binary</div><div class='del'>- *   * 10 - the default</div><div class='del'>- *   * 16 - hex</div><div class='add'>+ * Returns the string representation of the bignum.</div><div class='add'>+ *</div><div class='add'>+ * BN.new can parse the encoded string to convert back into an OpenSSL::BN.</div><div class='add'>+ *</div><div class='add'>+ * +base+::</div><div class='add'>+ *   The format. Must be one of the following:</div><div class='add'>+ *   - +0+  - MPI format. See the man page BN_bn2mpi(3) for details.</div><div class='add'>+ *   - +2+  - Variable-length and big-endian binary encoding. The sign of</div><div class='add'>+ *     the bignum is ignored.</div><div class='add'>+ *   - +10+ - Decimal number representation, with a leading '-' for a negative</div><div class='add'>+ *     bignum.</div><div class='add'>+ *   - +16+ - Hexadeciaml number representation, with a leading '-' for a</div><div class='add'>+ *     negative bignum.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_bn_to_s(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -397,7 +475,7 @@ ossl_bn_is_negative(VALUE self)</div><div class='ctx'> 	if (!(result = BN_new())) {			\</div><div class='ctx'> 	    ossl_raise(eBNError, NULL);			\</div><div class='ctx'> 	}						\</div><div class='del'>-	if (!BN_##func(result, bn, ossl_bn_ctx)) {	\</div><div class='add'>+	if (BN_##func(result, bn, ossl_bn_ctx) &lt;= 0) {	\</div><div class='ctx'> 	    BN_free(result);				\</div><div class='ctx'> 	    ossl_raise(eBNError, NULL);			\</div><div class='ctx'> 	}						\</div><div class='hunk'>@@ -423,7 +501,7 @@ BIGNUM_1c(sqr)</div><div class='ctx'> 	if (!(result = BN_new())) {			\</div><div class='ctx'> 	    ossl_raise(eBNError, NULL);			\</div><div class='ctx'> 	}						\</div><div class='del'>-	if (!BN_##func(result, bn1, bn2)) {		\</div><div class='add'>+	if (BN_##func(result, bn1, bn2) &lt;= 0) {		\</div><div class='ctx'> 	    BN_free(result);				\</div><div class='ctx'> 	    ossl_raise(eBNError, NULL);			\</div><div class='ctx'> 	}						\</div><div class='hunk'>@@ -456,7 +534,7 @@ BIGNUM_2(sub)</div><div class='ctx'> 	if (!(result = BN_new())) {				\</div><div class='ctx'> 	    ossl_raise(eBNError, NULL);				\</div><div class='ctx'> 	}							\</div><div class='del'>-	if (!BN_##func(result, bn1, bn2, ossl_bn_ctx)) {	\</div><div class='add'>+	if (BN_##func(result, bn1, bn2, ossl_bn_ctx) &lt;= 0) {	\</div><div class='ctx'> 	    BN_free(result);					\</div><div class='ctx'> 	    ossl_raise(eBNError, NULL);				\</div><div class='ctx'> 	}							\</div><div class='hunk'>@@ -499,12 +577,33 @@ BIGNUM_2c(gcd)</div><div class='ctx'>  */</div><div class='ctx'> BIGNUM_2c(mod_sqr)</div><div class='ctx'> </div><div class='add'>+#define BIGNUM_2cr(func)					\</div><div class='add'>+    static VALUE						\</div><div class='add'>+    ossl_bn_##func(VALUE self, VALUE other)			\</div><div class='add'>+    {								\</div><div class='add'>+	BIGNUM *bn1, *bn2 = GetBNPtr(other), *result;		\</div><div class='add'>+	VALUE obj;						\</div><div class='add'>+	GetBN(self, bn1);					\</div><div class='add'>+	obj = NewBN(rb_obj_class(self));			\</div><div class='add'>+	if (!(result = BN_##func(NULL, bn1, bn2, ossl_bn_ctx)))	\</div><div class='add'>+	    ossl_raise(eBNError, NULL);				\</div><div class='add'>+	SetBN(obj, result);					\</div><div class='add'>+	return obj;						\</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Document-method: OpenSSL::BN#mod_sqrt</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   bn.mod_sqrt(bn2) =&gt; aBN</div><div class='add'>+ */</div><div class='add'>+BIGNUM_2cr(mod_sqrt)</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * Document-method: OpenSSL::BN#mod_inverse</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   bn.mod_inverse(bn2) =&gt; aBN</div><div class='add'>+ *    bn.mod_inverse(bn2) =&gt; aBN</div><div class='ctx'>  */</div><div class='del'>-BIGNUM_2c(mod_inverse)</div><div class='add'>+BIGNUM_2cr(mod_inverse)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='hunk'>@@ -553,7 +652,7 @@ ossl_bn_div(VALUE self, VALUE other)</div><div class='ctx'> 	if (!(result = BN_new())) {				\</div><div class='ctx'> 	    ossl_raise(eBNError, NULL);				\</div><div class='ctx'> 	}							\</div><div class='del'>-	if (!BN_##func(result, bn1, bn2, bn3, ossl_bn_ctx)) {	\</div><div class='add'>+	if (BN_##func(result, bn1, bn2, bn3, ossl_bn_ctx) &lt;= 0) { \</div><div class='ctx'> 	    BN_free(result);					\</div><div class='ctx'> 	    ossl_raise(eBNError, NULL);				\</div><div class='ctx'> 	}							\</div><div class='hunk'>@@ -595,7 +694,7 @@ BIGNUM_3c(mod_exp)</div><div class='ctx'>     {							\</div><div class='ctx'> 	BIGNUM *bn;					\</div><div class='ctx'> 	GetBN(self, bn);				\</div><div class='del'>-	if (!BN_##func(bn, NUM2INT(bit))) {		\</div><div class='add'>+	if (BN_##func(bn, NUM2INT(bit)) &lt;= 0) {		\</div><div class='ctx'> 	    ossl_raise(eBNError, NULL);			\</div><div class='ctx'> 	}						\</div><div class='ctx'> 	return self;					\</div><div class='hunk'>@@ -655,7 +754,7 @@ ossl_bn_is_bit_set(VALUE self, VALUE bit)</div><div class='ctx'> 	if (!(result = BN_new())) {			\</div><div class='ctx'> 		ossl_raise(eBNError, NULL);		\</div><div class='ctx'> 	}						\</div><div class='del'>-	if (!BN_##func(result, bn, b)) {		\</div><div class='add'>+	if (BN_##func(result, bn, b) &lt;= 0) {		\</div><div class='ctx'> 		BN_free(result);			\</div><div class='ctx'> 		ossl_raise(eBNError, NULL);		\</div><div class='ctx'> 	}						\</div><div class='hunk'>@@ -685,7 +784,7 @@ BIGNUM_SHIFT(rshift)</div><div class='ctx'> 	int b;						\</div><div class='ctx'> 	b = NUM2INT(bits);				\</div><div class='ctx'> 	GetBN(self, bn);				\</div><div class='del'>-	if (!BN_##func(bn, bn, b))			\</div><div class='add'>+	if (BN_##func(bn, bn, b) &lt;= 0)			\</div><div class='ctx'> 		ossl_raise(eBNError, NULL);		\</div><div class='ctx'> 	return self;					\</div><div class='ctx'>     }</div><div class='hunk'>@@ -704,78 +803,64 @@ BIGNUM_SELF_SHIFT(lshift)</div><div class='ctx'>  */</div><div class='ctx'> BIGNUM_SELF_SHIFT(rshift)</div><div class='ctx'> </div><div class='del'>-#define BIGNUM_RAND(func)					\</div><div class='del'>-    static VALUE						\</div><div class='del'>-    ossl_bn_s_##func(int argc, VALUE *argv, VALUE klass)	\</div><div class='del'>-    {								\</div><div class='del'>-	BIGNUM *result;						\</div><div class='del'>-	int bottom = 0, top = 0, b;				\</div><div class='del'>-	VALUE bits, fill, odd, obj;				\</div><div class='del'>-								\</div><div class='del'>-	switch (rb_scan_args(argc, argv, "12", &amp;bits, &amp;fill, &amp;odd)) {	\</div><div class='del'>-	case 3:							\</div><div class='del'>-	    bottom = (odd == Qtrue) ? 1 : 0;			\</div><div class='del'>-	    /* FALLTHROUGH */					\</div><div class='del'>-	case 2:							\</div><div class='del'>-	    top = NUM2INT(fill);				\</div><div class='del'>-	}							\</div><div class='del'>-	b = NUM2INT(bits);					\</div><div class='del'>-	obj = NewBN(klass);					\</div><div class='del'>-	if (!(result = BN_new())) {				\</div><div class='del'>-	    ossl_raise(eBNError, NULL);				\</div><div class='del'>-	}							\</div><div class='del'>-	if (!BN_##func(result, b, top, bottom)) {		\</div><div class='del'>-	    BN_free(result);					\</div><div class='del'>-	    ossl_raise(eBNError, NULL);				\</div><div class='del'>-	}							\</div><div class='del'>-	SetBN(obj, result);					\</div><div class='del'>-	return obj;						\</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Document-method: OpenSSL::BN.rand</div><div class='del'>- *   BN.rand(bits [, fill [, odd]]) -&gt; aBN</div><div class='del'>- */</div><div class='del'>-BIGNUM_RAND(rand)</div><div class='del'>-</div><div class='ctx'> /*</div><div class='del'>- * Document-method: OpenSSL::BN.pseudo_rand</div><div class='del'>- *   BN.pseudo_rand(bits [, fill [, odd]]) -&gt; aBN</div><div class='del'>- */</div><div class='del'>-BIGNUM_RAND(pseudo_rand)</div><div class='del'>-</div><div class='del'>-#define BIGNUM_RAND_RANGE(func)					\</div><div class='del'>-    static VALUE						\</div><div class='del'>-    ossl_bn_s_##func##_range(VALUE klass, VALUE range)		\</div><div class='del'>-    {								\</div><div class='del'>-	BIGNUM *bn = GetBNPtr(range), *result;			\</div><div class='del'>-	VALUE obj = NewBN(klass);				\</div><div class='del'>-	if (!(result = BN_new())) {				\</div><div class='del'>-	    ossl_raise(eBNError, NULL);				\</div><div class='del'>-	}							\</div><div class='del'>-	if (!BN_##func##_range(result, bn)) {			\</div><div class='del'>-	    BN_free(result);					\</div><div class='del'>-	    ossl_raise(eBNError, NULL);				\</div><div class='del'>-	}							\</div><div class='del'>-	SetBN(obj, result);					\</div><div class='del'>-	return obj;						\</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Document-method: OpenSSL::BN.rand_range</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   BN.rand_range(range) -&gt; aBN</div><div class='add'>+ *    BN.rand(bits [, fill [, odd]]) -&gt; aBN</div><div class='add'>+ *</div><div class='add'>+ * Generates a cryptographically strong pseudo-random number of +bits+.</div><div class='ctx'>  *</div><div class='add'>+ * See also the man page BN_rand(3).</div><div class='ctx'>  */</div><div class='del'>-BIGNUM_RAND_RANGE(rand)</div><div class='add'>+static VALUE</div><div class='add'>+ossl_bn_s_rand(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    BIGNUM *result;</div><div class='add'>+    int bottom = 0, top = 0, b;</div><div class='add'>+    VALUE bits, fill, odd, obj;</div><div class='add'>+</div><div class='add'>+    switch (rb_scan_args(argc, argv, "12", &amp;bits, &amp;fill, &amp;odd)) {</div><div class='add'>+      case 3:</div><div class='add'>+        bottom = (odd == Qtrue) ? 1 : 0;</div><div class='add'>+        /* FALLTHROUGH */</div><div class='add'>+      case 2:</div><div class='add'>+        top = NUM2INT(fill);</div><div class='add'>+    }</div><div class='add'>+    b = NUM2INT(bits);</div><div class='add'>+    obj = NewBN(klass);</div><div class='add'>+    if (!(result = BN_new())) {</div><div class='add'>+        ossl_raise(eBNError, "BN_new");</div><div class='add'>+    }</div><div class='add'>+    if (BN_rand(result, b, top, bottom) &lt;= 0) {</div><div class='add'>+        BN_free(result);</div><div class='add'>+        ossl_raise(eBNError, "BN_rand");</div><div class='add'>+    }</div><div class='add'>+    SetBN(obj, result);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Document-method: OpenSSL::BN.pseudo_rand_range</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   BN.pseudo_rand_range(range) -&gt; aBN</div><div class='add'>+ *    BN.rand_range(range) -&gt; aBN</div><div class='add'>+ *</div><div class='add'>+ * Generates a cryptographically strong pseudo-random number in the range</div><div class='add'>+ * 0...+range+.</div><div class='ctx'>  *</div><div class='add'>+ * See also the man page BN_rand_range(3).</div><div class='ctx'>  */</div><div class='del'>-BIGNUM_RAND_RANGE(pseudo_rand)</div><div class='add'>+static VALUE</div><div class='add'>+ossl_bn_s_rand_range(VALUE klass, VALUE range)</div><div class='add'>+{</div><div class='add'>+    BIGNUM *bn = GetBNPtr(range), *result;</div><div class='add'>+    VALUE obj = NewBN(klass);</div><div class='add'>+    if (!(result = BN_new()))</div><div class='add'>+        ossl_raise(eBNError, "BN_new");</div><div class='add'>+    if (BN_rand_range(result, bn) &lt;= 0) {</div><div class='add'>+        BN_free(result);</div><div class='add'>+        ossl_raise(eBNError, "BN_rand_range");</div><div class='add'>+    }</div><div class='add'>+    SetBN(obj, result);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='hunk'>@@ -870,7 +955,17 @@ ossl_bn_copy(VALUE self, VALUE other)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_bn_uplus(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    return self;</div><div class='add'>+    VALUE obj;</div><div class='add'>+    BIGNUM *bn1, *bn2;</div><div class='add'>+</div><div class='add'>+    GetBN(self, bn1);</div><div class='add'>+    obj = NewBN(cBN);</div><div class='add'>+    bn2 = BN_dup(bn1);</div><div class='add'>+    if (!bn2)</div><div class='add'>+	ossl_raise(eBNError, "BN_dup");</div><div class='add'>+    SetBN(obj, bn2);</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -894,6 +989,24 @@ ossl_bn_uminus(VALUE self)</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   bn.abs -&gt; aBN</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_bn_abs(VALUE self)</div><div class='add'>+{</div><div class='add'>+    BIGNUM *bn1;</div><div class='add'>+</div><div class='add'>+    GetBN(self, bn1);</div><div class='add'>+    if (BN_is_negative(bn1)) {</div><div class='add'>+        return ossl_bn_uminus(self);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return ossl_bn_uplus(self);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #define BIGNUM_CMP(func)				\</div><div class='ctx'>     static VALUE					\</div><div class='ctx'>     ossl_bn_##func(VALUE self, VALUE other)		\</div><div class='hunk'>@@ -1002,34 +1115,29 @@ ossl_bn_hash(VALUE self)</div><div class='ctx'>  *    bn.prime? =&gt; true | false</div><div class='ctx'>  *    bn.prime?(checks) =&gt; true | false</div><div class='ctx'>  *</div><div class='del'>- * Performs a Miller-Rabin probabilistic primality test with _checks_</div><div class='del'>- * iterations. If _checks_ is not specified, a number of iterations is used</div><div class='del'>- * that yields a false positive rate of at most 2^-80 for random input.</div><div class='add'>+ * Performs a Miller-Rabin probabilistic primality test for +bn+.</div><div class='ctx'>  *</div><div class='del'>- * === Parameters</div><div class='del'>- * * _checks_ - integer</div><div class='add'>+ * &lt;b&gt;+checks+ parameter is deprecated in version 3.0.&lt;/b&gt; It has no effect.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_bn_is_prime(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     BIGNUM *bn;</div><div class='del'>-    VALUE vchecks;</div><div class='del'>-    int checks = BN_prime_checks;</div><div class='add'>+    int ret;</div><div class='ctx'> </div><div class='del'>-    if (rb_scan_args(argc, argv, "01", &amp;vchecks) == 1) {</div><div class='del'>-	checks = NUM2INT(vchecks);</div><div class='del'>-    }</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='ctx'>     GetBN(self, bn);</div><div class='del'>-    switch (BN_is_prime_ex(bn, checks, ossl_bn_ctx, NULL)) {</div><div class='del'>-    case 1:</div><div class='del'>-	return Qtrue;</div><div class='del'>-    case 0:</div><div class='del'>-	return Qfalse;</div><div class='del'>-    default:</div><div class='del'>-	ossl_raise(eBNError, NULL);</div><div class='del'>-    }</div><div class='del'>-    /* not reachable */</div><div class='del'>-    return Qnil;</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_BN_CHECK_PRIME</div><div class='add'>+    ret = BN_check_prime(bn, ossl_bn_ctx, NULL);</div><div class='add'>+    if (ret &lt; 0)</div><div class='add'>+        ossl_raise(eBNError, "BN_check_prime");</div><div class='add'>+#else</div><div class='add'>+    ret = BN_is_prime_fasttest_ex(bn, BN_prime_checks, ossl_bn_ctx, 1, NULL);</div><div class='add'>+    if (ret &lt; 0)</div><div class='add'>+        ossl_raise(eBNError, "BN_is_prime_fasttest_ex");</div><div class='add'>+#endif</div><div class='add'>+    return ret ? Qtrue : Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1038,39 +1146,52 @@ ossl_bn_is_prime(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *    bn.prime_fasttest?(checks) =&gt; true | false</div><div class='ctx'>  *    bn.prime_fasttest?(checks, trial_div) =&gt; true | false</div><div class='ctx'>  *</div><div class='del'>- * Performs a Miller-Rabin primality test. This is same as #prime? except this</div><div class='del'>- * first attempts trial divisions with some small primes.</div><div class='add'>+ * Performs a Miller-Rabin probabilistic primality test for +bn+.</div><div class='ctx'>  *</div><div class='del'>- * === Parameters</div><div class='del'>- * * _checks_ - integer</div><div class='del'>- * * _trial_div_ - boolean</div><div class='add'>+ * &lt;b&gt;Deprecated in version 3.0.&lt;/b&gt; Use #prime? instead.</div><div class='add'>+ *</div><div class='add'>+ * +checks+ and +trial_div+ parameters no longer have any effect.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_bn_is_prime_fasttest(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='add'>+    rb_check_arity(argc, 0, 2);</div><div class='add'>+    return ossl_bn_is_prime(0, argv, self);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    bn.get_flags(flags) =&gt; flags</div><div class='add'>+ *</div><div class='add'>+ * Returns the flags on the BN object.</div><div class='add'>+ * The argument is used as a bit mask.</div><div class='add'>+ *</div><div class='add'>+ * === Parameters</div><div class='add'>+ * * _flags_ - integer</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_bn_get_flags(VALUE self, VALUE arg)</div><div class='add'>+{</div><div class='ctx'>     BIGNUM *bn;</div><div class='del'>-    VALUE vchecks, vtrivdiv;</div><div class='del'>-    int checks = BN_prime_checks, do_trial_division = 1;</div><div class='add'>+    GetBN(self, bn);</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;vchecks, &amp;vtrivdiv);</div><div class='add'>+    return INT2NUM(BN_get_flags(bn, NUM2INT(arg)));</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (!NIL_P(vchecks)) {</div><div class='del'>-	checks = NUM2INT(vchecks);</div><div class='del'>-    }</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    bn.set_flags(flags) =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ * Enables the flags on the BN object.</div><div class='add'>+ * Currently, the flags argument can contain zero of OpenSSL::BN::CONSTTIME.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_bn_set_flags(VALUE self, VALUE arg)</div><div class='add'>+{</div><div class='add'>+    BIGNUM *bn;</div><div class='ctx'>     GetBN(self, bn);</div><div class='del'>-    /* handle true/false */</div><div class='del'>-    if (vtrivdiv == Qfalse) {</div><div class='del'>-	do_trial_division = 0;</div><div class='del'>-    }</div><div class='del'>-    switch (BN_is_prime_fasttest_ex(bn, checks, ossl_bn_ctx, do_trial_division, NULL)) {</div><div class='del'>-    case 1:</div><div class='del'>-	return Qtrue;</div><div class='del'>-    case 0:</div><div class='del'>-	return Qfalse;</div><div class='del'>-    default:</div><div class='del'>-	ossl_raise(eBNError, NULL);</div><div class='del'>-    }</div><div class='del'>-    /* not reachable */</div><div class='add'>+</div><div class='add'>+    BN_set_flags(bn, NUM2INT(arg));</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1086,9 +1207,11 @@ Init_ossl_bn(void)</div><div class='ctx'>     eOSSLError = rb_define_class_under(mOSSL, "OpenSSLError", rb_eStandardError);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    if (!(ossl_bn_ctx = BN_CTX_new())) {</div><div class='del'>-	ossl_raise(rb_eRuntimeError, "Cannot init BN_CTX");</div><div class='del'>-    }</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    ossl_bn_ctx_key = rb_ractor_local_storage_ptr_newkey(&amp;ossl_bn_ctx_key_type);</div><div class='add'>+#else</div><div class='add'>+    ossl_bn_ctx_get();</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     eBNError = rb_define_class_under(mOSSL, "BNError", eOSSLError);</div><div class='ctx'> </div><div class='hunk'>@@ -1108,6 +1231,7 @@ Init_ossl_bn(void)</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(cBN, "+@", ossl_bn_uplus, 0);</div><div class='ctx'>     rb_define_method(cBN, "-@", ossl_bn_uminus, 0);</div><div class='add'>+    rb_define_method(cBN, "abs", ossl_bn_abs, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(cBN, "+", ossl_bn_add, 1);</div><div class='ctx'>     rb_define_method(cBN, "-", ossl_bn_sub, 1);</div><div class='hunk'>@@ -1121,6 +1245,7 @@ Init_ossl_bn(void)</div><div class='ctx'>     rb_define_method(cBN, "mod_sub", ossl_bn_mod_sub, 2);</div><div class='ctx'>     rb_define_method(cBN, "mod_mul", ossl_bn_mod_mul, 2);</div><div class='ctx'>     rb_define_method(cBN, "mod_sqr", ossl_bn_mod_sqr, 1);</div><div class='add'>+    rb_define_method(cBN, "mod_sqrt", ossl_bn_mod_sqrt, 1);</div><div class='ctx'>     rb_define_method(cBN, "**", ossl_bn_exp, 1);</div><div class='ctx'>     rb_define_method(cBN, "mod_exp", ossl_bn_mod_exp, 2);</div><div class='ctx'>     rb_define_method(cBN, "gcd", ossl_bn_gcd, 1);</div><div class='hunk'>@@ -1151,9 +1276,9 @@ Init_ossl_bn(void)</div><div class='ctx'>      * get_word */</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(cBN, "rand", ossl_bn_s_rand, -1);</div><div class='del'>-    rb_define_singleton_method(cBN, "pseudo_rand", ossl_bn_s_pseudo_rand, -1);</div><div class='ctx'>     rb_define_singleton_method(cBN, "rand_range", ossl_bn_s_rand_range, 1);</div><div class='del'>-    rb_define_singleton_method(cBN, "pseudo_rand_range", ossl_bn_s_pseudo_rand_range, 1);</div><div class='add'>+    rb_define_alias(rb_singleton_class(cBN), "pseudo_rand", "rand");</div><div class='add'>+    rb_define_alias(rb_singleton_class(cBN), "pseudo_rand_range", "rand_range");</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(cBN, "generate_prime", ossl_bn_s_generate_prime, -1);</div><div class='ctx'>     rb_define_method(cBN, "prime?", ossl_bn_is_prime, -1);</div><div class='hunk'>@@ -1170,6 +1295,23 @@ Init_ossl_bn(void)</div><div class='ctx'>     /* lshift1 - DON'T IMPL. */</div><div class='ctx'>     /* rshift1 - DON'T IMPL. */</div><div class='ctx'> </div><div class='add'>+    rb_define_method(cBN, "get_flags", ossl_bn_get_flags, 1);</div><div class='add'>+    rb_define_method(cBN, "set_flags", ossl_bn_set_flags, 1);</div><div class='add'>+</div><div class='add'>+#ifdef BN_FLG_CONSTTIME</div><div class='add'>+    rb_define_const(cBN, "CONSTTIME", INT2NUM(BN_FLG_CONSTTIME));</div><div class='add'>+#endif</div><div class='add'>+    /* BN_FLG_MALLOCED and BN_FLG_STATIC_DATA seems for C programming.</div><div class='add'>+     * Allowing them leads to memory leak.</div><div class='add'>+     * So, for now, they are not exported</div><div class='add'>+#ifdef BN_FLG_MALLOCED</div><div class='add'>+    rb_define_const(cBN, "MALLOCED", INT2NUM(BN_FLG_MALLOCED));</div><div class='add'>+#endif</div><div class='add'>+#ifdef BN_FLG_STATIC_DATA</div><div class='add'>+    rb_define_const(cBN, "STATIC_DATA", INT2NUM(BN_FLG_STATIC_DATA));</div><div class='add'>+#endif</div><div class='add'>+    */</div><div class='add'>+</div><div class='ctx'>     /*</div><div class='ctx'>      * bn2bin</div><div class='ctx'>      * bin2bn</div><div class='head'>diff --git a/ext/openssl/ossl_bn.h b/ext/openssl/ossl_bn.h<br/>index a19ba19487..1cc041fc22 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_bn.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_bn.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_bn.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_bn.h</a></div><div class='hunk'>@@ -13,7 +13,8 @@</div><div class='ctx'> extern VALUE cBN;</div><div class='ctx'> extern VALUE eBNError;</div><div class='ctx'> </div><div class='del'>-extern BN_CTX *ossl_bn_ctx;</div><div class='add'>+BN_CTX *ossl_bn_ctx_get(void);</div><div class='add'>+#define ossl_bn_ctx ossl_bn_ctx_get()</div><div class='ctx'> </div><div class='ctx'> #define GetBNPtr(obj) ossl_bn_value_ptr(&amp;(obj))</div><div class='ctx'> </div><div class='head'>diff --git a/ext/openssl/ossl_cipher.c b/ext/openssl/ossl_cipher.c<br/>index 0840c84a71..cb8fbc3ca2 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_cipher.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_cipher.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_cipher.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_cipher.c</a></div><div class='hunk'>@@ -104,7 +104,7 @@ ossl_cipher_alloc(VALUE klass)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     Cipher.new(string) -&gt; cipher</div><div class='ctx'>  *</div><div class='del'>- *  The string must be a valid cipher name like "AES-128-CBC" or "3DES".</div><div class='add'>+ *  The string must contain a valid cipher name like "aes-256-cbc".</div><div class='ctx'>  *</div><div class='ctx'>  *  A list of cipher names is available by calling OpenSSL::Cipher.ciphers.</div><div class='ctx'>  */</div><div class='hunk'>@@ -149,11 +149,11 @@ ossl_cipher_copy(VALUE self, VALUE other)</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void*</div><div class='del'>-add_cipher_name_to_ary(const OBJ_NAME *name, VALUE ary)</div><div class='add'>+static void</div><div class='add'>+add_cipher_name_to_ary(const OBJ_NAME *name, void *arg)</div><div class='ctx'> {</div><div class='add'>+    VALUE ary = (VALUE)arg;</div><div class='ctx'>     rb_ary_push(ary, rb_str_new2(name-&gt;name));</div><div class='del'>-    return NULL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -169,7 +169,7 @@ ossl_s_ciphers(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     ary = rb_ary_new();</div><div class='ctx'>     OBJ_NAME_do_all_sorted(OBJ_NAME_TYPE_CIPHER_METH,</div><div class='del'>-                    (void(*)(const OBJ_NAME*,void*))add_cipher_name_to_ary,</div><div class='add'>+                    add_cipher_name_to_ary,</div><div class='ctx'>                     (void*)ary);</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='hunk'>@@ -237,8 +237,7 @@ ossl_cipher_init(int argc, VALUE *argv, VALUE self, int mode)</div><div class='ctx'> 	ossl_raise(eCipherError, NULL);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (p_key)</div><div class='del'>-	rb_ivar_set(self, id_key_set, Qtrue);</div><div class='add'>+    rb_ivar_set(self, id_key_set, p_key ? Qtrue : Qfalse);</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -385,8 +384,7 @@ ossl_cipher_update(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     StringValue(data);</div><div class='ctx'>     in = (unsigned char *)RSTRING_PTR(data);</div><div class='del'>-    if ((in_len = RSTRING_LEN(data)) == 0)</div><div class='del'>-        ossl_raise(rb_eArgError, "data must not be empty");</div><div class='add'>+    in_len = RSTRING_LEN(data);</div><div class='ctx'>     GetCipher(self, ctx);</div><div class='ctx'>     out_len = in_len+EVP_CIPHER_CTX_block_size(ctx);</div><div class='ctx'>     if (out_len &lt;= 0) {</div><div class='hunk'>@@ -815,6 +813,31 @@ ossl_cipher_block_size(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     cipher.ccm_data_len = integer -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Sets the length of the plaintext / ciphertext message that will be</div><div class='add'>+ *  processed in CCM mode. Make sure to call this method after #key= and</div><div class='add'>+ *  #iv= have been set, and before #auth_data=.</div><div class='add'>+ *</div><div class='add'>+ *  Only call this method after calling Cipher#encrypt or Cipher#decrypt.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_cipher_set_ccm_data_len(VALUE self, VALUE data_len)</div><div class='add'>+{</div><div class='add'>+    int in_len, out_len;</div><div class='add'>+    EVP_CIPHER_CTX *ctx;</div><div class='add'>+</div><div class='add'>+    in_len = NUM2INT(data_len);</div><div class='add'>+</div><div class='add'>+    GetCipher(self, ctx);</div><div class='add'>+    if (EVP_CipherUpdate(ctx, NULL, &amp;out_len, NULL, in_len) != 1)</div><div class='add'>+        ossl_raise(eCipherError, NULL);</div><div class='add'>+</div><div class='add'>+    return data_len;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  * INIT</div><div class='ctx'>  */</div><div class='ctx'> void</div><div class='hunk'>@@ -850,23 +873,7 @@ Init_ossl_cipher(void)</div><div class='ctx'>      * individual components name, key length and mode. Either all uppercase</div><div class='ctx'>      * or all lowercase strings may be used, for example:</div><div class='ctx'>      *</div><div class='del'>-     *  cipher = OpenSSL::Cipher.new('AES-128-CBC')</div><div class='del'>-     *</div><div class='del'>-     * For each algorithm supported, there is a class defined under the</div><div class='del'>-     * Cipher class that goes by the name of the cipher, e.g. to obtain an</div><div class='del'>-     * instance of AES, you could also use</div><div class='del'>-     *</div><div class='del'>-     *   # these are equivalent</div><div class='del'>-     *   cipher = OpenSSL::Cipher::AES.new(128, :CBC)</div><div class='del'>-     *   cipher = OpenSSL::Cipher::AES.new(128, 'CBC')</div><div class='del'>-     *   cipher = OpenSSL::Cipher::AES.new('128-CBC')</div><div class='del'>-     *</div><div class='del'>-     * Finally, due to its wide-spread use, there are also extra classes</div><div class='del'>-     * defined for the different key sizes of AES</div><div class='del'>-     *</div><div class='del'>-     *   cipher = OpenSSL::Cipher::AES128.new(:CBC)</div><div class='del'>-     *   cipher = OpenSSL::Cipher::AES192.new(:CBC)</div><div class='del'>-     *   cipher = OpenSSL::Cipher::AES256.new(:CBC)</div><div class='add'>+     *  cipher = OpenSSL::Cipher.new('aes-128-cbc')</div><div class='ctx'>      *</div><div class='ctx'>      * === Choosing either encryption or decryption mode</div><div class='ctx'>      *</div><div class='hunk'>@@ -896,7 +903,7 @@ Init_ossl_cipher(void)</div><div class='ctx'>      * without processing the password further. A simple and secure way to</div><div class='ctx'>      * create a key for a particular Cipher is</div><div class='ctx'>      *</div><div class='del'>-     *  cipher = OpenSSL::AES256.new(:CFB)</div><div class='add'>+     *  cipher = OpenSSL::Cipher.new('aes-256-cfb')</div><div class='ctx'>      *  cipher.encrypt</div><div class='ctx'>      *  key = cipher.random_key # also sets the generated key on the Cipher</div><div class='ctx'>      *</div><div class='hunk'>@@ -964,14 +971,14 @@ Init_ossl_cipher(void)</div><div class='ctx'>      *</div><div class='ctx'>      *   data = "Very, very confidential data"</div><div class='ctx'>      *</div><div class='del'>-     *   cipher = OpenSSL::Cipher::AES.new(128, :CBC)</div><div class='add'>+     *   cipher = OpenSSL::Cipher.new('aes-128-cbc')</div><div class='ctx'>      *   cipher.encrypt</div><div class='ctx'>      *   key = cipher.random_key</div><div class='ctx'>      *   iv = cipher.random_iv</div><div class='ctx'>      *</div><div class='ctx'>      *   encrypted = cipher.update(data) + cipher.final</div><div class='ctx'>      *   ...</div><div class='del'>-     *   decipher = OpenSSL::Cipher::AES.new(128, :CBC)</div><div class='add'>+     *   decipher = OpenSSL::Cipher.new('aes-128-cbc')</div><div class='ctx'>      *   decipher.decrypt</div><div class='ctx'>      *   decipher.key = key</div><div class='ctx'>      *   decipher.iv = iv</div><div class='hunk'>@@ -1007,7 +1014,7 @@ Init_ossl_cipher(void)</div><div class='ctx'>      * not to reuse the _key_ and _nonce_ pair. Reusing an nonce ruins the</div><div class='ctx'>      * security guarantees of GCM mode.</div><div class='ctx'>      *</div><div class='del'>-     *   cipher = OpenSSL::Cipher::AES.new(128, :GCM).encrypt</div><div class='add'>+     *   cipher = OpenSSL::Cipher.new('aes-128-gcm').encrypt</div><div class='ctx'>      *   cipher.key = key</div><div class='ctx'>      *   cipher.iv = nonce</div><div class='ctx'>      *   cipher.auth_data = auth_data</div><div class='hunk'>@@ -1023,7 +1030,7 @@ Init_ossl_cipher(void)</div><div class='ctx'>      * ciphertext with a probability of 1/256.</div><div class='ctx'>      *</div><div class='ctx'>      *   raise "tag is truncated!" unless tag.bytesize == 16</div><div class='del'>-     *   decipher = OpenSSL::Cipher::AES.new(128, :GCM).decrypt</div><div class='add'>+     *   decipher = OpenSSL::Cipher.new('aes-128-gcm').decrypt</div><div class='ctx'>      *   decipher.key = key</div><div class='ctx'>      *   decipher.iv = nonce</div><div class='ctx'>      *   decipher.auth_tag = tag</div><div class='hunk'>@@ -1060,6 +1067,7 @@ Init_ossl_cipher(void)</div><div class='ctx'>     rb_define_method(cCipher, "iv_len", ossl_cipher_iv_length, 0);</div><div class='ctx'>     rb_define_method(cCipher, "block_size", ossl_cipher_block_size, 0);</div><div class='ctx'>     rb_define_method(cCipher, "padding=", ossl_cipher_set_padding, 1);</div><div class='add'>+    rb_define_method(cCipher, "ccm_data_len=", ossl_cipher_set_ccm_data_len, 1);</div><div class='ctx'> </div><div class='ctx'>     id_auth_tag_len = rb_intern_const("auth_tag_len");</div><div class='ctx'>     id_key_set = rb_intern_const("key_set");</div><div class='head'>diff --git a/ext/openssl/ossl_config.c b/ext/openssl/ossl_config.c<br/>index 28392e208c..0bac027487 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_config.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_config.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_config.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_config.c</a></div><div class='hunk'>@@ -9,81 +9,452 @@</div><div class='ctx'>  */</div><div class='ctx'> #include "ossl.h"</div><div class='ctx'> </div><div class='add'>+static VALUE cConfig, eConfigError;</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+nconf_free(void *conf)</div><div class='add'>+{</div><div class='add'>+    NCONF_free(conf);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t ossl_config_type = {</div><div class='add'>+    "OpenSSL/CONF",</div><div class='add'>+    {</div><div class='add'>+        0, nconf_free,</div><div class='add'>+    },</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+CONF *</div><div class='add'>+GetConfig(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    CONF *conf;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(obj, CONF, &amp;ossl_config_type, conf);</div><div class='add'>+    if (!conf)</div><div class='add'>+        rb_raise(rb_eRuntimeError, "CONF is not initialized");</div><div class='add'>+    return conf;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+config_s_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE obj;</div><div class='add'>+    CONF *conf;</div><div class='add'>+</div><div class='add'>+    obj = TypedData_Wrap_Struct(klass, &amp;ossl_config_type, 0);</div><div class='add'>+    conf = NCONF_new(NULL);</div><div class='add'>+    if (!conf)</div><div class='add'>+        ossl_raise(eConfigError, "NCONF_new");</div><div class='add'>+    RTYPEDDATA_DATA(obj) = conf;</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+config_load_bio(CONF *conf, BIO *bio)</div><div class='add'>+{</div><div class='add'>+    long eline = -1;</div><div class='add'>+</div><div class='add'>+    if (!NCONF_load_bio(conf, bio, &amp;eline)) {</div><div class='add'>+        BIO_free(bio);</div><div class='add'>+        if (eline &lt;= 0)</div><div class='add'>+            ossl_raise(eConfigError, "wrong config format");</div><div class='add'>+        else</div><div class='add'>+            ossl_raise(eConfigError, "error in line %ld", eline);</div><div class='add'>+    }</div><div class='add'>+    BIO_free(bio);</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Clear the error queue even if it is parsed successfully.</div><div class='add'>+     * Particularly, when the .include directive refers to a non-existent file,</div><div class='add'>+     * it is only reported in the error queue.</div><div class='add'>+     */</div><div class='add'>+    ossl_clear_error();</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Classes</div><div class='del'>- */</div><div class='del'>-VALUE cConfig;</div><div class='del'>-/* Document-class: OpenSSL::ConfigError</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Config.parse(string) -&gt; OpenSSL::Config</div><div class='ctx'>  *</div><div class='del'>- * General error for openssl library configuration files. Including formatting,</div><div class='del'>- * parsing errors, etc.</div><div class='add'>+ * Parses a given _string_ as a blob that contains configuration for OpenSSL.</div><div class='ctx'>  */</div><div class='del'>-VALUE eConfigError;</div><div class='add'>+static VALUE</div><div class='add'>+config_s_parse(VALUE klass, VALUE str)</div><div class='add'>+{</div><div class='add'>+    VALUE obj = config_s_alloc(klass);</div><div class='add'>+    CONF *conf = GetConfig(obj);</div><div class='add'>+    BIO *bio;</div><div class='add'>+</div><div class='add'>+    bio = ossl_obj2bio(&amp;str);</div><div class='add'>+    config_load_bio(conf, bio); /* Consumes BIO */</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE config_get_sections(VALUE self);</div><div class='add'>+static VALUE config_get_section(VALUE self, VALUE section);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Public</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Config.parse_config(io) -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ * Parses the configuration data read from _io_ and returns the whole content</div><div class='add'>+ * as a Hash.</div><div class='ctx'>  */</div><div class='add'>+static VALUE</div><div class='add'>+config_s_parse_config(VALUE klass, VALUE io)</div><div class='add'>+{</div><div class='add'>+    VALUE obj, sections, ret;</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    obj = config_s_parse(klass, io);</div><div class='add'>+    sections = config_get_sections(obj);</div><div class='add'>+    ret = rb_hash_new();</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(sections); i++) {</div><div class='add'>+        VALUE section = rb_ary_entry(sections, i);</div><div class='add'>+        rb_hash_aset(ret, section, config_get_section(obj, section));</div><div class='add'>+    }</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * DupConfigPtr is a public C-level function for getting OpenSSL CONF struct</div><div class='del'>- * from an OpenSSL::Config(eConfig) instance.  We decided to implement</div><div class='del'>- * OpenSSL::Config in Ruby level but we need to pass native CONF struct for</div><div class='del'>- * some OpenSSL features such as X509V3_EXT_*.</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    Config.new(filename) -&gt; OpenSSL::Config</div><div class='add'>+ *</div><div class='add'>+ * Creates an instance of OpenSSL::Config from the content of the file</div><div class='add'>+ * specified by _filename_.</div><div class='add'>+ *</div><div class='add'>+ * This can be used in contexts like OpenSSL::X509::ExtensionFactory.config=</div><div class='add'>+ *</div><div class='add'>+ * This can raise IO exceptions based on the access, or availability of the</div><div class='add'>+ * file. A ConfigError exception may be raised depending on the validity of</div><div class='add'>+ * the data being configured.</div><div class='ctx'>  */</div><div class='del'>-CONF *</div><div class='del'>-DupConfigPtr(VALUE obj)</div><div class='add'>+static VALUE</div><div class='add'>+config_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    CONF *conf;</div><div class='add'>+    CONF *conf = GetConfig(self);</div><div class='add'>+    VALUE filename;</div><div class='add'>+</div><div class='add'>+    /* 0-arguments call has no use-case, but is kept for compatibility */</div><div class='add'>+    rb_scan_args(argc, argv, "01", &amp;filename);</div><div class='add'>+    rb_check_frozen(self);</div><div class='add'>+    if (!NIL_P(filename)) {</div><div class='add'>+        BIO *bio = BIO_new_file(StringValueCStr(filename), "rb");</div><div class='add'>+        if (!bio)</div><div class='add'>+            ossl_raise(eConfigError, "BIO_new_file");</div><div class='add'>+        config_load_bio(conf, bio); /* Consumes BIO */</div><div class='add'>+    }</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+config_initialize_copy(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    CONF *conf = GetConfig(self);</div><div class='ctx'>     VALUE str;</div><div class='ctx'>     BIO *bio;</div><div class='del'>-    long eline = -1;</div><div class='ctx'> </div><div class='del'>-    OSSL_Check_Kind(obj, cConfig);</div><div class='del'>-    str = rb_funcall(obj, rb_intern("to_s"), 0);</div><div class='add'>+    str = rb_funcall(other, rb_intern("to_s"), 0);</div><div class='add'>+    rb_check_frozen(self);</div><div class='ctx'>     bio = ossl_obj2bio(&amp;str);</div><div class='del'>-    conf = NCONF_new(NULL);</div><div class='del'>-    if(!conf){</div><div class='del'>-	BIO_free(bio);</div><div class='del'>-	ossl_raise(eConfigError, NULL);</div><div class='add'>+    config_load_bio(conf, bio); /* Consumes BIO */</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    config.get_value(section, key) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Gets the value of _key_ from the given _section_.</div><div class='add'>+ *</div><div class='add'>+ * Given the following configurating file being loaded:</div><div class='add'>+ *</div><div class='add'>+ *   config = OpenSSL::Config.load('foo.cnf')</div><div class='add'>+ *     #=&gt; #&lt;OpenSSL::Config sections=["default"]&gt;</div><div class='add'>+ *   puts config.to_s</div><div class='add'>+ *     #=&gt; [ default ]</div><div class='add'>+ *     #   foo=bar</div><div class='add'>+ *</div><div class='add'>+ * You can get a specific value from the config if you know the _section_</div><div class='add'>+ * and _key_ like so:</div><div class='add'>+ *</div><div class='add'>+ *   config.get_value('default','foo')</div><div class='add'>+ *     #=&gt; "bar"</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+config_get_value(VALUE self, VALUE section, VALUE key)</div><div class='add'>+{</div><div class='add'>+    CONF *conf = GetConfig(self);</div><div class='add'>+    const char *str, *sectionp;</div><div class='add'>+</div><div class='add'>+    StringValueCStr(section);</div><div class='add'>+    StringValueCStr(key);</div><div class='add'>+    /* For compatibility; NULL means "default". */</div><div class='add'>+    sectionp = RSTRING_LEN(section) ? RSTRING_PTR(section) : NULL;</div><div class='add'>+    str = NCONF_get_string(conf, sectionp, RSTRING_PTR(key));</div><div class='add'>+    if (!str) {</div><div class='add'>+        ossl_clear_error();</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+    return rb_str_new_cstr(str);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    config[section] -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ * Gets all key-value pairs in a specific _section_ from the current</div><div class='add'>+ * configuration.</div><div class='add'>+ *</div><div class='add'>+ * Given the following configurating file being loaded:</div><div class='add'>+ *</div><div class='add'>+ *   config = OpenSSL::Config.load('foo.cnf')</div><div class='add'>+ *     #=&gt; #&lt;OpenSSL::Config sections=["default"]&gt;</div><div class='add'>+ *   puts config.to_s</div><div class='add'>+ *     #=&gt; [ default ]</div><div class='add'>+ *     #   foo=bar</div><div class='add'>+ *</div><div class='add'>+ * You can get a hash of the specific section like so:</div><div class='add'>+ *</div><div class='add'>+ *   config['default']</div><div class='add'>+ *     #=&gt; {"foo"=&gt;"bar"}</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+config_get_section(VALUE self, VALUE section)</div><div class='add'>+{</div><div class='add'>+    CONF *conf = GetConfig(self);</div><div class='add'>+    STACK_OF(CONF_VALUE) *sk;</div><div class='add'>+    int i, entries;</div><div class='add'>+    VALUE hash;</div><div class='add'>+</div><div class='add'>+    hash = rb_hash_new();</div><div class='add'>+    StringValueCStr(section);</div><div class='add'>+    if (!(sk = NCONF_get_section(conf, RSTRING_PTR(section)))) {</div><div class='add'>+        ossl_clear_error();</div><div class='add'>+        return hash;</div><div class='ctx'>     }</div><div class='del'>-    if(!NCONF_load_bio(conf, bio, &amp;eline)){</div><div class='del'>-	BIO_free(bio);</div><div class='del'>-	NCONF_free(conf);</div><div class='del'>-	if (eline &lt;= 0)</div><div class='del'>-	    ossl_raise(eConfigError, "wrong config format");</div><div class='del'>-	else</div><div class='del'>-	    ossl_raise(eConfigError, "error in line %d", eline);</div><div class='add'>+    entries = sk_CONF_VALUE_num(sk);</div><div class='add'>+    for (i = 0; i &lt; entries; i++) {</div><div class='add'>+        CONF_VALUE *entry = sk_CONF_VALUE_value(sk, i);</div><div class='add'>+        rb_hash_aset(hash, rb_str_new_cstr(entry-&gt;name),</div><div class='add'>+                     rb_str_new_cstr(entry-&gt;value));</div><div class='ctx'>     }</div><div class='del'>-    BIO_free(bio);</div><div class='add'>+    return hash;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return conf;</div><div class='add'>+static void</div><div class='add'>+get_conf_section_doall_arg(CONF_VALUE *cv, VALUE *aryp)</div><div class='add'>+{</div><div class='add'>+    if (cv-&gt;name)</div><div class='add'>+        return;</div><div class='add'>+    rb_ary_push(*aryp, rb_str_new_cstr(cv-&gt;section));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* Document-const: DEFAULT_CONFIG_FILE</div><div class='add'>+/* IMPLEMENT_LHASH_DOALL_ARG_CONST() requires &gt;= OpenSSL 1.1.0 */</div><div class='add'>+static IMPLEMENT_LHASH_DOALL_ARG_FN(get_conf_section, CONF_VALUE, VALUE)</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    config.sections -&gt; array of string</div><div class='ctx'>  *</div><div class='del'>- * The default system configuration file for openssl</div><div class='add'>+ * Get the names of all sections in the current configuration.</div><div class='ctx'>  */</div><div class='add'>+static VALUE</div><div class='add'>+config_get_sections(VALUE self)</div><div class='add'>+{</div><div class='add'>+    CONF *conf = GetConfig(self);</div><div class='add'>+    VALUE ary;</div><div class='add'>+</div><div class='add'>+    ary = rb_ary_new();</div><div class='add'>+    lh_doall_arg((_LHASH *)conf-&gt;data, LHASH_DOALL_ARG_FN(get_conf_section),</div><div class='add'>+                 &amp;ary);</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dump_conf_value_doall_arg(CONF_VALUE *cv, VALUE *strp)</div><div class='add'>+{</div><div class='add'>+    VALUE str = *strp;</div><div class='add'>+    STACK_OF(CONF_VALUE) *sk;</div><div class='add'>+    int i, num;</div><div class='add'>+</div><div class='add'>+    if (cv-&gt;name)</div><div class='add'>+        return;</div><div class='add'>+    sk = (STACK_OF(CONF_VALUE) *)cv-&gt;value;</div><div class='add'>+    num = sk_CONF_VALUE_num(sk);</div><div class='add'>+    rb_str_cat_cstr(str, "[ ");</div><div class='add'>+    rb_str_cat_cstr(str, cv-&gt;section);</div><div class='add'>+    rb_str_cat_cstr(str, " ]\n");</div><div class='add'>+    for (i = 0; i &lt; num; i++){</div><div class='add'>+        CONF_VALUE *v = sk_CONF_VALUE_value(sk, i);</div><div class='add'>+        rb_str_cat_cstr(str, v-&gt;name ? v-&gt;name : "None");</div><div class='add'>+        rb_str_cat_cstr(str, "=");</div><div class='add'>+        rb_str_cat_cstr(str, v-&gt;value ? v-&gt;value : "None");</div><div class='add'>+        rb_str_cat_cstr(str, "\n");</div><div class='add'>+    }</div><div class='add'>+    rb_str_cat_cstr(str, "\n");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static IMPLEMENT_LHASH_DOALL_ARG_FN(dump_conf_value, CONF_VALUE, VALUE)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * INIT</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    config.to_s -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *</div><div class='add'>+ * Gets the parsable form of the current configuration.</div><div class='add'>+ *</div><div class='add'>+ * Given the following configuration being created:</div><div class='add'>+ *</div><div class='add'>+ *   config = OpenSSL::Config.new</div><div class='add'>+ *     #=&gt; #&lt;OpenSSL::Config sections=[]&gt;</div><div class='add'>+ *   config['default'] = {"foo"=&gt;"bar","baz"=&gt;"buz"}</div><div class='add'>+ *     #=&gt; {"foo"=&gt;"bar", "baz"=&gt;"buz"}</div><div class='add'>+ *   puts config.to_s</div><div class='add'>+ *     #=&gt; [ default ]</div><div class='add'>+ *     #   foo=bar</div><div class='add'>+ *     #   baz=buz</div><div class='add'>+ *</div><div class='add'>+ * You can parse get the serialized configuration using #to_s and then parse</div><div class='add'>+ * it later:</div><div class='add'>+ *</div><div class='add'>+ *   serialized_config = config.to_s</div><div class='add'>+ *   # much later...</div><div class='add'>+ *   new_config = OpenSSL::Config.parse(serialized_config)</div><div class='add'>+ *     #=&gt; #&lt;OpenSSL::Config sections=["default"]&gt;</div><div class='add'>+ *   puts new_config</div><div class='add'>+ *     #=&gt; [ default ]</div><div class='add'>+ *         foo=bar</div><div class='add'>+ *         baz=buz</div><div class='ctx'>  */</div><div class='add'>+static VALUE</div><div class='add'>+config_to_s(VALUE self)</div><div class='add'>+{</div><div class='add'>+    CONF *conf = GetConfig(self);</div><div class='add'>+    VALUE str;</div><div class='add'>+</div><div class='add'>+    str = rb_str_new(NULL, 0);</div><div class='add'>+    lh_doall_arg((_LHASH *)conf-&gt;data, LHASH_DOALL_ARG_FN(dump_conf_value),</div><div class='add'>+                 &amp;str);</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+each_conf_value_doall_arg(CONF_VALUE *cv, void *unused)</div><div class='add'>+{</div><div class='add'>+    STACK_OF(CONF_VALUE) *sk;</div><div class='add'>+    VALUE section;</div><div class='add'>+    int i, num;</div><div class='add'>+</div><div class='add'>+    if (cv-&gt;name)</div><div class='add'>+        return;</div><div class='add'>+    sk = (STACK_OF(CONF_VALUE) *)cv-&gt;value;</div><div class='add'>+    num = sk_CONF_VALUE_num(sk);</div><div class='add'>+    section = rb_str_new_cstr(cv-&gt;section);</div><div class='add'>+    for (i = 0; i &lt; num; i++){</div><div class='add'>+        CONF_VALUE *v = sk_CONF_VALUE_value(sk, i);</div><div class='add'>+        VALUE name = v-&gt;name ? rb_str_new_cstr(v-&gt;name) : Qnil;</div><div class='add'>+        VALUE value = v-&gt;value ? rb_str_new_cstr(v-&gt;value) : Qnil;</div><div class='add'>+        rb_yield(rb_ary_new3(3, section, name, value));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static IMPLEMENT_LHASH_DOALL_ARG_FN(each_conf_value, CONF_VALUE, void)</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    config.each { |section, key, value| }</div><div class='add'>+ *</div><div class='add'>+ * Retrieves the section and its pairs for the current configuration.</div><div class='add'>+ *</div><div class='add'>+ *    config.each do |section, key, value|</div><div class='add'>+ *      # ...</div><div class='add'>+ *    end</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+config_each(VALUE self)</div><div class='add'>+{</div><div class='add'>+    CONF *conf = GetConfig(self);</div><div class='add'>+</div><div class='add'>+    RETURN_ENUMERATOR(self, 0, 0);</div><div class='add'>+</div><div class='add'>+    lh_doall_arg((_LHASH *)conf-&gt;data, LHASH_DOALL_ARG_FN(each_conf_value),</div><div class='add'>+                 NULL);</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    config.inspect -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * String representation of this configuration object, including the class</div><div class='add'>+ * name and its sections.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+config_inspect(VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE str, ary = config_get_sections(self);</div><div class='add'>+    const char *cname = rb_class2name(rb_obj_class(self));</div><div class='add'>+</div><div class='add'>+    str = rb_str_new_cstr("#&lt;");</div><div class='add'>+    rb_str_cat_cstr(str, cname);</div><div class='add'>+    rb_str_cat_cstr(str, " sections=");</div><div class='add'>+    rb_str_append(str, rb_inspect(ary));</div><div class='add'>+    rb_str_cat_cstr(str, "&gt;");</div><div class='add'>+</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_ossl_config(void)</div><div class='ctx'> {</div><div class='del'>-    char *default_config_file;</div><div class='add'>+    char *path;</div><div class='add'>+    VALUE path_str;</div><div class='ctx'> </div><div class='ctx'> #if 0</div><div class='ctx'>     mOSSL = rb_define_module("OpenSSL");</div><div class='ctx'>     eOSSLError = rb_define_class_under(mOSSL, "OpenSSLError", rb_eStandardError);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    eConfigError = rb_define_class_under(mOSSL, "ConfigError", eOSSLError);</div><div class='add'>+    /* Document-class: OpenSSL::Config</div><div class='add'>+     *</div><div class='add'>+     * Configuration for the openssl library.</div><div class='add'>+     *</div><div class='add'>+     * Many system's installation of openssl library will depend on your system</div><div class='add'>+     * configuration. See the value of OpenSSL::Config::DEFAULT_CONFIG_FILE for</div><div class='add'>+     * the location of the file for your host.</div><div class='add'>+     *</div><div class='add'>+     * See also http://www.openssl.org/docs/apps/config.html</div><div class='add'>+     */</div><div class='ctx'>     cConfig = rb_define_class_under(mOSSL, "Config", rb_cObject);</div><div class='ctx'> </div><div class='del'>-    default_config_file = CONF_get1_default_config_file();</div><div class='del'>-    rb_define_const(cConfig, "DEFAULT_CONFIG_FILE",</div><div class='del'>-		    rb_str_new2(default_config_file));</div><div class='del'>-    OPENSSL_free(default_config_file);</div><div class='del'>-    /* methods are defined by openssl/config.rb */</div><div class='add'>+    /* Document-class: OpenSSL::ConfigError</div><div class='add'>+     *</div><div class='add'>+     * General error for openssl library configuration files. Including formatting,</div><div class='add'>+     * parsing errors, etc.</div><div class='add'>+     */</div><div class='add'>+    eConfigError = rb_define_class_under(mOSSL, "ConfigError", eOSSLError);</div><div class='add'>+</div><div class='add'>+    rb_include_module(cConfig, rb_mEnumerable);</div><div class='add'>+    rb_define_singleton_method(cConfig, "parse", config_s_parse, 1);</div><div class='add'>+    rb_define_singleton_method(cConfig, "parse_config", config_s_parse_config, 1);</div><div class='add'>+    rb_define_alias(CLASS_OF(cConfig), "load", "new");</div><div class='add'>+    rb_define_alloc_func(cConfig, config_s_alloc);</div><div class='add'>+    rb_define_method(cConfig, "initialize", config_initialize, -1);</div><div class='add'>+    rb_define_method(cConfig, "initialize_copy", config_initialize_copy, 1);</div><div class='add'>+    rb_define_method(cConfig, "get_value", config_get_value, 2);</div><div class='add'>+    rb_define_method(cConfig, "[]", config_get_section, 1);</div><div class='add'>+    rb_define_method(cConfig, "sections", config_get_sections, 0);</div><div class='add'>+    rb_define_method(cConfig, "to_s", config_to_s, 0);</div><div class='add'>+    rb_define_method(cConfig, "each", config_each, 0);</div><div class='add'>+    rb_define_method(cConfig, "inspect", config_inspect, 0);</div><div class='add'>+</div><div class='add'>+    /* Document-const: DEFAULT_CONFIG_FILE</div><div class='add'>+     *</div><div class='add'>+     * The default system configuration file for OpenSSL.</div><div class='add'>+     */</div><div class='add'>+    path = CONF_get1_default_config_file();</div><div class='add'>+    path_str = ossl_buf2str(path, rb_long2int(strlen(path)));</div><div class='add'>+    rb_define_const(cConfig, "DEFAULT_CONFIG_FILE", path_str);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/openssl/ossl_config.h b/ext/openssl/ossl_config.h<br/>index 627d297ba3..4e604f1aed 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_config.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_config.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_config.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_config.h</a></div><div class='hunk'>@@ -7,13 +7,10 @@</div><div class='ctx'>  * This program is licensed under the same licence as Ruby.</div><div class='ctx'>  * (See the file 'LICENCE'.)</div><div class='ctx'>  */</div><div class='del'>-#if !defined(_OSSL_CONFIG_H_)</div><div class='del'>-#define _OSSL_CONFIG_H_</div><div class='add'>+#ifndef OSSL_CONFIG_H</div><div class='add'>+#define OSSL_CONFIG_H</div><div class='ctx'> </div><div class='del'>-extern VALUE cConfig;</div><div class='del'>-extern VALUE eConfigError;</div><div class='del'>-</div><div class='del'>-CONF* DupConfigPtr(VALUE obj);</div><div class='add'>+CONF *GetConfig(VALUE obj);</div><div class='ctx'> void Init_ossl_config(void);</div><div class='ctx'> </div><div class='del'>-#endif /* _OSSL_CONFIG_H_ */</div><div class='add'>+#endif /* OSSL_CONFIG_H */</div><div class='head'>diff --git a/ext/openssl/ossl_digest.c b/ext/openssl/ossl_digest.c<br/>index 112ce33647..fc326ec14a 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_digest.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_digest.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_digest.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_digest.c</a></div><div class='hunk'>@@ -63,7 +63,7 @@ ossl_evp_get_digestbyname(VALUE obj)</div><div class='ctx'> </div><div class='ctx'>         GetDigest(obj, ctx);</div><div class='ctx'> </div><div class='del'>-        md = EVP_MD_CTX_md(ctx);</div><div class='add'>+        md = EVP_MD_CTX_get0_md(ctx);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return md;</div><div class='hunk'>@@ -176,7 +176,7 @@ ossl_digest_reset(VALUE self)</div><div class='ctx'>     EVP_MD_CTX *ctx;</div><div class='ctx'> </div><div class='ctx'>     GetDigest(self, ctx);</div><div class='del'>-    if (EVP_DigestInit_ex(ctx, EVP_MD_CTX_md(ctx), NULL) != 1) {</div><div class='add'>+    if (EVP_DigestInit_ex(ctx, EVP_MD_CTX_get0_md(ctx), NULL) != 1) {</div><div class='ctx'> 	ossl_raise(eDigestError, "Digest initialization failed.");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -192,7 +192,7 @@ ossl_digest_reset(VALUE self)</div><div class='ctx'>  * be passed individually to the Digest instance.</div><div class='ctx'>  *</div><div class='ctx'>  * === Example</div><div class='del'>- *   digest = OpenSSL::Digest::SHA256.new</div><div class='add'>+ *   digest = OpenSSL::Digest.new('SHA256')</div><div class='ctx'>  *   digest.update('First input')</div><div class='ctx'>  *   digest &lt;&lt; 'Second input' # equivalent to digest.update('Second input')</div><div class='ctx'>  *   result = digest.digest</div><div class='hunk'>@@ -248,7 +248,7 @@ ossl_digest_finish(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  * Returns the sn of this Digest algorithm.</div><div class='ctx'>  *</div><div class='ctx'>  * === Example</div><div class='del'>- *   digest = OpenSSL::Digest::SHA512.new</div><div class='add'>+ *   digest = OpenSSL::Digest.new('SHA512')</div><div class='ctx'>  *   puts digest.name # =&gt; SHA512</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='hunk'>@@ -259,7 +259,7 @@ ossl_digest_name(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GetDigest(self, ctx);</div><div class='ctx'> </div><div class='del'>-    return rb_str_new2(EVP_MD_name(EVP_MD_CTX_md(ctx)));</div><div class='add'>+    return rb_str_new_cstr(EVP_MD_name(EVP_MD_CTX_get0_md(ctx)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -270,7 +270,7 @@ ossl_digest_name(VALUE self)</div><div class='ctx'>  * final message digest result.</div><div class='ctx'>  *</div><div class='ctx'>  * === Example</div><div class='del'>- *   digest = OpenSSL::Digest::SHA1.new</div><div class='add'>+ *   digest = OpenSSL::Digest.new('SHA1')</div><div class='ctx'>  *   puts digest.digest_length # =&gt; 20</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='hunk'>@@ -294,7 +294,7 @@ ossl_digest_size(VALUE self)</div><div class='ctx'>  * consecutively.</div><div class='ctx'>  *</div><div class='ctx'>  * === Example</div><div class='del'>- *   digest = OpenSSL::Digest::SHA1.new</div><div class='add'>+ *   digest = OpenSSL::Digest.new('SHA1')</div><div class='ctx'>  *   puts digest.block_length # =&gt; 64</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -313,8 +313,6 @@ ossl_digest_block_length(VALUE self)</div><div class='ctx'> void</div><div class='ctx'> Init_ossl_digest(void)</div><div class='ctx'> {</div><div class='del'>-    rb_require("digest");</div><div class='del'>-</div><div class='ctx'> #if 0</div><div class='ctx'>     mOSSL = rb_define_module("OpenSSL");</div><div class='ctx'>     eOSSLError = rb_define_class_under(mOSSL, "OpenSSLError", rb_eStandardError);</div><div class='hunk'>@@ -348,54 +346,19 @@ Init_ossl_digest(void)</div><div class='ctx'>      * the integrity of a signed document, it suffices to re-compute the hash</div><div class='ctx'>      * and verify that it is equal to that in the signature.</div><div class='ctx'>      *</div><div class='del'>-     * Among the supported message digest algorithms are:</div><div class='del'>-     * * SHA, SHA1, SHA224, SHA256, SHA384 and SHA512</div><div class='del'>-     * * MD2, MD4, MDC2 and MD5</div><div class='del'>-     * * RIPEMD160</div><div class='del'>-     * * DSS, DSS1 (Pseudo algorithms to be used for DSA signatures. DSS is</div><div class='del'>-     *   equal to SHA and DSS1 is equal to SHA1)</div><div class='add'>+     * You can get a list of all digest algorithms supported on your system by</div><div class='add'>+     * running this command in your terminal:</div><div class='ctx'>      *</div><div class='del'>-     * For each of these algorithms, there is a sub-class of Digest that</div><div class='del'>-     * can be instantiated as simply as e.g.</div><div class='add'>+     *   openssl list -digest-algorithms</div><div class='ctx'>      *</div><div class='del'>-     *   digest = OpenSSL::Digest::SHA1.new</div><div class='add'>+     * Among the OpenSSL 1.1.1 supported message digest algorithms are:</div><div class='add'>+     * * SHA224, SHA256, SHA384, SHA512, SHA512-224 and SHA512-256</div><div class='add'>+     * * SHA3-224, SHA3-256, SHA3-384 and SHA3-512</div><div class='add'>+     * * BLAKE2s256 and BLAKE2b512</div><div class='ctx'>      *</div><div class='del'>-     * === Mapping between Digest class and sn/ln</div><div class='add'>+     * Each of these algorithms can be instantiated using the name:</div><div class='ctx'>      *</div><div class='del'>-     * The sn (short names) and ln (long names) are defined in</div><div class='del'>-     * &lt;openssl/object.h&gt; and &lt;openssl/obj_mac.h&gt;. They are textual</div><div class='del'>-     * representations of ASN.1 OBJECT IDENTIFIERs. Each supported digest</div><div class='del'>-     * algorithm has an OBJECT IDENTIFIER associated to it and those again</div><div class='del'>-     * have short/long names assigned to them.</div><div class='del'>-     * E.g. the OBJECT IDENTIFIER for SHA-1 is 1.3.14.3.2.26 and its</div><div class='del'>-     * sn is "SHA1" and its ln is "sha1".</div><div class='del'>-     * ==== MD2</div><div class='del'>-     * * sn: MD2</div><div class='del'>-     * * ln: md2</div><div class='del'>-     * ==== MD4</div><div class='del'>-     * * sn: MD4</div><div class='del'>-     * * ln: md4</div><div class='del'>-     * ==== MD5</div><div class='del'>-     * * sn: MD5</div><div class='del'>-     * * ln: md5</div><div class='del'>-     * ==== SHA</div><div class='del'>-     * * sn: SHA</div><div class='del'>-     * * ln: SHA</div><div class='del'>-     * ==== SHA-1</div><div class='del'>-     * * sn: SHA1</div><div class='del'>-     * * ln: sha1</div><div class='del'>-     * ==== SHA-224</div><div class='del'>-     * * sn: SHA224</div><div class='del'>-     * * ln: sha224</div><div class='del'>-     * ==== SHA-256</div><div class='del'>-     * * sn: SHA256</div><div class='del'>-     * * ln: sha256</div><div class='del'>-     * ==== SHA-384</div><div class='del'>-     * * sn: SHA384</div><div class='del'>-     * * ln: sha384</div><div class='del'>-     * ==== SHA-512</div><div class='del'>-     * * sn: SHA512</div><div class='del'>-     * * ln: sha512</div><div class='add'>+     *   digest = OpenSSL::Digest.new('SHA256')</div><div class='ctx'>      *</div><div class='ctx'>      * "Breaking" a message digest algorithm means defying its one-way</div><div class='ctx'>      * function characteristics, i.e. producing a collision or finding a way</div><div class='hunk'>@@ -407,16 +370,16 @@ Init_ossl_digest(void)</div><div class='ctx'>      *</div><div class='ctx'>      * === Hashing a file</div><div class='ctx'>      *</div><div class='del'>-     *   data = File.read('document')</div><div class='del'>-     *   sha256 = OpenSSL::Digest::SHA256.new</div><div class='add'>+     *   data = File.binread('document')</div><div class='add'>+     *   sha256 = OpenSSL::Digest.new('SHA256')</div><div class='ctx'>      *   digest = sha256.digest(data)</div><div class='ctx'>      *</div><div class='ctx'>      * === Hashing several pieces of data at once</div><div class='ctx'>      *</div><div class='del'>-     *   data1 = File.read('file1')</div><div class='del'>-     *   data2 = File.read('file2')</div><div class='del'>-     *   data3 = File.read('file3')</div><div class='del'>-     *   sha256 = OpenSSL::Digest::SHA256.new</div><div class='add'>+     *   data1 = File.binread('file1')</div><div class='add'>+     *   data2 = File.binread('file2')</div><div class='add'>+     *   data3 = File.binread('file3')</div><div class='add'>+     *   sha256 = OpenSSL::Digest.new('SHA256')</div><div class='ctx'>      *   sha256 &lt;&lt; data1</div><div class='ctx'>      *   sha256 &lt;&lt; data2</div><div class='ctx'>      *   sha256 &lt;&lt; data3</div><div class='hunk'>@@ -424,15 +387,21 @@ Init_ossl_digest(void)</div><div class='ctx'>      *</div><div class='ctx'>      * === Reuse a Digest instance</div><div class='ctx'>      *</div><div class='del'>-     *   data1 = File.read('file1')</div><div class='del'>-     *   sha256 = OpenSSL::Digest::SHA256.new</div><div class='add'>+     *   data1 = File.binread('file1')</div><div class='add'>+     *   sha256 = OpenSSL::Digest.new('SHA256')</div><div class='ctx'>      *   digest1 = sha256.digest(data1)</div><div class='ctx'>      *</div><div class='del'>-     *   data2 = File.read('file2')</div><div class='add'>+     *   data2 = File.binread('file2')</div><div class='ctx'>      *   sha256.reset</div><div class='ctx'>      *   digest2 = sha256.digest(data2)</div><div class='ctx'>      *</div><div class='ctx'>      */</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Digest::Class is defined by the digest library. rb_require() cannot be</div><div class='add'>+     * used here because it bypasses RubyGems.</div><div class='add'>+     */</div><div class='add'>+    rb_funcall(Qnil, rb_intern_const("require"), 1, rb_str_new_cstr("digest"));</div><div class='ctx'>     cDigest = rb_define_class_under(mOSSL, "Digest", rb_path2class("Digest::Class"));</div><div class='ctx'>     /* Document-class: OpenSSL::Digest::DigestError</div><div class='ctx'>      *</div><div class='head'>diff --git a/ext/openssl/ossl_engine.c b/ext/openssl/ossl_engine.c<br/>index 5ca0d4ca3f..1abde7f766 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_engine.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_engine.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_engine.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_engine.c</a></div><div class='hunk'>@@ -9,7 +9,8 @@</div><div class='ctx'>  */</div><div class='ctx'> #include "ossl.h"</div><div class='ctx'> </div><div class='del'>-#if !defined(OPENSSL_NO_ENGINE)</div><div class='add'>+#ifdef OSSL_USE_ENGINE</div><div class='add'>+# include &lt;openssl/engine.h&gt;</div><div class='ctx'> </div><div class='ctx'> #define NewEngine(klass) \</div><div class='ctx'>     TypedData_Wrap_Struct((klass), &amp;ossl_engine_type, 0)</div><div class='hunk'>@@ -93,9 +94,6 @@ static const rb_data_type_t ossl_engine_type = {</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_engine_s_load(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-#if !defined(HAVE_ENGINE_LOAD_BUILTIN_ENGINES)</div><div class='del'>-    return Qnil;</div><div class='del'>-#else</div><div class='ctx'>     VALUE name;</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "01", &amp;name);</div><div class='hunk'>@@ -104,60 +102,53 @@ ossl_engine_s_load(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>         return Qtrue;</div><div class='ctx'>     }</div><div class='ctx'>     StringValueCStr(name);</div><div class='del'>-#ifndef OPENSSL_NO_STATIC_ENGINE</div><div class='del'>-#if HAVE_ENGINE_LOAD_DYNAMIC</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_DYNAMIC</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(dynamic, DYNAMIC);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_4758CCA</div><div class='add'>+#ifndef OPENSSL_NO_STATIC_ENGINE</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_4758CCA</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(4758cca, 4758CCA);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_AEP</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_AEP</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(aep, AEP);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_ATALLA</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_ATALLA</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(atalla, ATALLA);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_CHIL</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_CHIL</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(chil, CHIL);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_CSWIFT</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_CSWIFT</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(cswift, CSWIFT);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_NURON</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_NURON</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(nuron, NURON);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_SUREWARE</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_SUREWARE</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(sureware, SUREWARE);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_UBSEC</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_UBSEC</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(ubsec, UBSEC);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_PADLOCK</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_PADLOCK</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(padlock, PADLOCK);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_CAPI</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_CAPI</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(capi, CAPI);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_GMP</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_GMP</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(gmp, GMP);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_GOST</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_GOST</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(gost, GOST);</div><div class='ctx'> #endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_CRYPTODEV</div><div class='del'>-    OSSL_ENGINE_LOAD_IF_MATCH(cryptodev, CRYPTODEV);</div><div class='del'>-#endif</div><div class='del'>-#if HAVE_ENGINE_LOAD_AESNI</div><div class='del'>-    OSSL_ENGINE_LOAD_IF_MATCH(aesni, AESNI);</div><div class='ctx'> #endif</div><div class='del'>-#endif</div><div class='del'>-#ifdef HAVE_ENGINE_LOAD_OPENBSD_DEV_CRYPTO</div><div class='del'>-    OSSL_ENGINE_LOAD_IF_MATCH(openbsd_dev_crypto, OPENBSD_DEV_CRYPTO);</div><div class='add'>+#ifdef HAVE_ENGINE_LOAD_CRYPTODEV</div><div class='add'>+    OSSL_ENGINE_LOAD_IF_MATCH(cryptodev, CRYPTODEV);</div><div class='ctx'> #endif</div><div class='ctx'>     OSSL_ENGINE_LOAD_IF_MATCH(openssl, OPENSSL);</div><div class='ctx'>     rb_warning("no such builtin loader for `%"PRIsVALUE"'", name);</div><div class='ctx'>     return Qnil;</div><div class='del'>-#endif /* HAVE_ENGINE_LOAD_BUILTIN_ENGINES */</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='head'>diff --git a/ext/openssl/ossl_hmac.c b/ext/openssl/ossl_hmac.c<br/>index 564dcab522..1a5f471a27 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_hmac.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_hmac.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_hmac.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_hmac.c</a></div><div class='hunk'>@@ -7,14 +7,12 @@</div><div class='ctx'>  * This program is licensed under the same licence as Ruby.</div><div class='ctx'>  * (See the file 'LICENCE'.)</div><div class='ctx'>  */</div><div class='del'>-#if !defined(OPENSSL_NO_HMAC)</div><div class='del'>-</div><div class='ctx'> #include "ossl.h"</div><div class='ctx'> </div><div class='ctx'> #define NewHMAC(klass) \</div><div class='ctx'>     TypedData_Wrap_Struct((klass), &amp;ossl_hmac_type, 0)</div><div class='ctx'> #define GetHMAC(obj, ctx) do { \</div><div class='del'>-    TypedData_Get_Struct((obj), HMAC_CTX, &amp;ossl_hmac_type, (ctx)); \</div><div class='add'>+    TypedData_Get_Struct((obj), EVP_MD_CTX, &amp;ossl_hmac_type, (ctx)); \</div><div class='ctx'>     if (!(ctx)) { \</div><div class='ctx'> 	ossl_raise(rb_eRuntimeError, "HMAC wasn't initialized"); \</div><div class='ctx'>     } \</div><div class='hunk'>@@ -36,7 +34,7 @@ VALUE eHMACError;</div><div class='ctx'> static void</div><div class='ctx'> ossl_hmac_free(void *ctx)</div><div class='ctx'> {</div><div class='del'>-    HMAC_CTX_free(ctx);</div><div class='add'>+    EVP_MD_CTX_free(ctx);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const rb_data_type_t ossl_hmac_type = {</div><div class='hunk'>@@ -51,12 +49,12 @@ static VALUE</div><div class='ctx'> ossl_hmac_alloc(VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     VALUE obj;</div><div class='del'>-    HMAC_CTX *ctx;</div><div class='add'>+    EVP_MD_CTX *ctx;</div><div class='ctx'> </div><div class='ctx'>     obj = NewHMAC(klass);</div><div class='del'>-    ctx = HMAC_CTX_new();</div><div class='add'>+    ctx = EVP_MD_CTX_new();</div><div class='ctx'>     if (!ctx)</div><div class='del'>-	ossl_raise(eHMACError, NULL);</div><div class='add'>+        ossl_raise(eHMACError, "EVP_MD_CTX");</div><div class='ctx'>     RTYPEDDATA_DATA(obj) = ctx;</div><div class='ctx'> </div><div class='ctx'>     return obj;</div><div class='hunk'>@@ -76,37 +74,49 @@ ossl_hmac_alloc(VALUE klass)</div><div class='ctx'>  * === Example</div><div class='ctx'>  *</div><div class='ctx'>  *	key = 'key'</div><div class='del'>- * 	digest = OpenSSL::Digest.new('sha1')</div><div class='del'>- * 	instance = OpenSSL::HMAC.new(key, digest)</div><div class='add'>+ * 	instance = OpenSSL::HMAC.new(key, 'SHA1')</div><div class='ctx'>  * 	#=&gt; f42bb0eeb018ebbd4597ae7213711ec60760843f</div><div class='ctx'>  * 	instance.class</div><div class='ctx'>  * 	#=&gt; OpenSSL::HMAC</div><div class='ctx'>  *</div><div class='ctx'>  * === A note about comparisons</div><div class='ctx'>  *</div><div class='del'>- * Two instances won't be equal when they're compared, even if they have the</div><div class='del'>- * same value. Use #to_s or #hexdigest to return the authentication code that</div><div class='del'>- * the instance represents. For example:</div><div class='add'>+ * Two instances can be securely compared with #== in constant time:</div><div class='ctx'>  *</div><div class='del'>- *	other_instance = OpenSSL::HMAC.new('key', OpenSSL::Digest.new('sha1'))</div><div class='del'>- *  	#=&gt; f42bb0eeb018ebbd4597ae7213711ec60760843f</div><div class='del'>- *  	instance</div><div class='del'>- *  	#=&gt; f42bb0eeb018ebbd4597ae7213711ec60760843f</div><div class='del'>- *  	instance == other_instance</div><div class='del'>- *  	#=&gt; false</div><div class='del'>- *  	instance.to_s == other_instance.to_s</div><div class='del'>- *  	#=&gt; true</div><div class='add'>+ *	other_instance = OpenSSL::HMAC.new('key', 'SHA1')</div><div class='add'>+ *  #=&gt; f42bb0eeb018ebbd4597ae7213711ec60760843f</div><div class='add'>+ *  instance == other_instance</div><div class='add'>+ *  #=&gt; true</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_hmac_initialize(VALUE self, VALUE key, VALUE digest)</div><div class='ctx'> {</div><div class='del'>-    HMAC_CTX *ctx;</div><div class='add'>+    EVP_MD_CTX *ctx;</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='ctx'> </div><div class='del'>-    StringValue(key);</div><div class='ctx'>     GetHMAC(self, ctx);</div><div class='del'>-    HMAC_Init_ex(ctx, RSTRING_PTR(key), RSTRING_LENINT(key),</div><div class='del'>-		 ossl_evp_get_digestbyname(digest), NULL);</div><div class='add'>+    StringValue(key);</div><div class='add'>+#ifdef HAVE_EVP_PKEY_NEW_RAW_PRIVATE_KEY</div><div class='add'>+    pkey = EVP_PKEY_new_raw_private_key(EVP_PKEY_HMAC, NULL,</div><div class='add'>+                                        (unsigned char *)RSTRING_PTR(key),</div><div class='add'>+                                        RSTRING_LENINT(key));</div><div class='add'>+    if (!pkey)</div><div class='add'>+        ossl_raise(eHMACError, "EVP_PKEY_new_raw_private_key");</div><div class='add'>+#else</div><div class='add'>+    pkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL,</div><div class='add'>+                                (unsigned char *)RSTRING_PTR(key),</div><div class='add'>+                                RSTRING_LENINT(key));</div><div class='add'>+    if (!pkey)</div><div class='add'>+        ossl_raise(eHMACError, "EVP_PKEY_new_mac_key");</div><div class='add'>+#endif</div><div class='add'>+    if (EVP_DigestSignInit(ctx, NULL, ossl_evp_get_digestbyname(digest),</div><div class='add'>+                           NULL, pkey) != 1) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        ossl_raise(eHMACError, "EVP_DigestSignInit");</div><div class='add'>+    }</div><div class='add'>+    /* Decrement reference counter; EVP_MD_CTX still keeps it */</div><div class='add'>+    EVP_PKEY_free(pkey);</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -114,16 +124,15 @@ ossl_hmac_initialize(VALUE self, VALUE key, VALUE digest)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_hmac_copy(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='del'>-    HMAC_CTX *ctx1, *ctx2;</div><div class='add'>+    EVP_MD_CTX *ctx1, *ctx2;</div><div class='ctx'> </div><div class='ctx'>     rb_check_frozen(self);</div><div class='ctx'>     if (self == other) return self;</div><div class='ctx'> </div><div class='ctx'>     GetHMAC(self, ctx1);</div><div class='ctx'>     GetHMAC(other, ctx2);</div><div class='del'>-</div><div class='del'>-    if (!HMAC_CTX_copy(ctx1, ctx2))</div><div class='del'>-	ossl_raise(eHMACError, "HMAC_CTX_copy");</div><div class='add'>+    if (EVP_MD_CTX_copy(ctx1, ctx2) != 1)</div><div class='add'>+        ossl_raise(eHMACError, "EVP_MD_CTX_copy");</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -148,33 +157,16 @@ ossl_hmac_copy(VALUE self, VALUE other)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_hmac_update(VALUE self, VALUE data)</div><div class='ctx'> {</div><div class='del'>-    HMAC_CTX *ctx;</div><div class='add'>+    EVP_MD_CTX *ctx;</div><div class='ctx'> </div><div class='ctx'>     StringValue(data);</div><div class='ctx'>     GetHMAC(self, ctx);</div><div class='del'>-    HMAC_Update(ctx, (unsigned char *)RSTRING_PTR(data), RSTRING_LEN(data));</div><div class='add'>+    if (EVP_DigestSignUpdate(ctx, RSTRING_PTR(data), RSTRING_LEN(data)) != 1)</div><div class='add'>+        ossl_raise(eHMACError, "EVP_DigestSignUpdate");</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-hmac_final(HMAC_CTX *ctx, unsigned char *buf, unsigned int *buf_len)</div><div class='del'>-{</div><div class='del'>-    HMAC_CTX *final;</div><div class='del'>-</div><div class='del'>-    final = HMAC_CTX_new();</div><div class='del'>-    if (!final)</div><div class='del'>-	ossl_raise(eHMACError, "HMAC_CTX_new");</div><div class='del'>-</div><div class='del'>-    if (!HMAC_CTX_copy(final, ctx)) {</div><div class='del'>-	HMAC_CTX_free(final);</div><div class='del'>-	ossl_raise(eHMACError, "HMAC_CTX_copy");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    HMAC_Final(final, buf, buf_len);</div><div class='del'>-    HMAC_CTX_free(final);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     hmac.digest -&gt; string</div><div class='hunk'>@@ -182,7 +174,7 @@ hmac_final(HMAC_CTX *ctx, unsigned char *buf, unsigned int *buf_len)</div><div class='ctx'>  * Returns the authentication code an instance represents as a binary string.</div><div class='ctx'>  *</div><div class='ctx'>  * === Example</div><div class='del'>- *  instance = OpenSSL::HMAC.new('key', OpenSSL::Digest.new('sha1'))</div><div class='add'>+ *  instance = OpenSSL::HMAC.new('key', 'SHA1')</div><div class='ctx'>  *  #=&gt; f42bb0eeb018ebbd4597ae7213711ec60760843f</div><div class='ctx'>  *  instance.digest</div><div class='ctx'>  *  #=&gt; "\xF4+\xB0\xEE\xB0\x18\xEB\xBDE\x97\xAEr\x13q\x1E\xC6\a`\x84?"</div><div class='hunk'>@@ -190,15 +182,16 @@ hmac_final(HMAC_CTX *ctx, unsigned char *buf, unsigned int *buf_len)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_hmac_digest(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    HMAC_CTX *ctx;</div><div class='del'>-    unsigned int buf_len;</div><div class='add'>+    EVP_MD_CTX *ctx;</div><div class='add'>+    size_t buf_len = EVP_MAX_MD_SIZE;</div><div class='ctx'>     VALUE ret;</div><div class='ctx'> </div><div class='ctx'>     GetHMAC(self, ctx);</div><div class='ctx'>     ret = rb_str_new(NULL, EVP_MAX_MD_SIZE);</div><div class='del'>-    hmac_final(ctx, (unsigned char *)RSTRING_PTR(ret), &amp;buf_len);</div><div class='del'>-    assert(buf_len &lt;= EVP_MAX_MD_SIZE);</div><div class='del'>-    rb_str_set_len(ret, buf_len);</div><div class='add'>+    if (EVP_DigestSignFinal(ctx, (unsigned char *)RSTRING_PTR(ret),</div><div class='add'>+                            &amp;buf_len) != 1)</div><div class='add'>+        ossl_raise(eHMACError, "EVP_DigestSignFinal");</div><div class='add'>+    rb_str_set_len(ret, (long)buf_len);</div><div class='ctx'> </div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='hunk'>@@ -213,13 +206,14 @@ ossl_hmac_digest(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_hmac_hexdigest(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    HMAC_CTX *ctx;</div><div class='add'>+    EVP_MD_CTX *ctx;</div><div class='ctx'>     unsigned char buf[EVP_MAX_MD_SIZE];</div><div class='del'>-    unsigned int buf_len;</div><div class='add'>+    size_t buf_len = EVP_MAX_MD_SIZE;</div><div class='ctx'>     VALUE ret;</div><div class='ctx'> </div><div class='ctx'>     GetHMAC(self, ctx);</div><div class='del'>-    hmac_final(ctx, buf, &amp;buf_len);</div><div class='add'>+    if (EVP_DigestSignFinal(ctx, buf, &amp;buf_len) != 1)</div><div class='add'>+        ossl_raise(eHMACError, "EVP_DigestSignFinal");</div><div class='ctx'>     ret = rb_str_new(NULL, buf_len * 2);</div><div class='ctx'>     ossl_bin2hex(buf, RSTRING_PTR(ret), buf_len);</div><div class='ctx'> </div><div class='hunk'>@@ -236,7 +230,7 @@ ossl_hmac_hexdigest(VALUE self)</div><div class='ctx'>  * === Example</div><div class='ctx'>  *</div><div class='ctx'>  *	data = "The quick brown fox jumps over the lazy dog"</div><div class='del'>- * 	instance = OpenSSL::HMAC.new('key', OpenSSL::Digest.new('sha1'))</div><div class='add'>+ * 	instance = OpenSSL::HMAC.new('key', 'SHA1')</div><div class='ctx'>  * 	#=&gt; f42bb0eeb018ebbd4597ae7213711ec60760843f</div><div class='ctx'>  *</div><div class='ctx'>  * 	instance.update(data)</div><div class='hunk'>@@ -248,85 +242,18 @@ ossl_hmac_hexdigest(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_hmac_reset(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    HMAC_CTX *ctx;</div><div class='add'>+    EVP_MD_CTX *ctx;</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='ctx'> </div><div class='ctx'>     GetHMAC(self, ctx);</div><div class='del'>-    HMAC_Init_ex(ctx, NULL, 0, NULL, NULL);</div><div class='add'>+    pkey = EVP_PKEY_CTX_get0_pkey(EVP_MD_CTX_get_pkey_ctx(ctx));</div><div class='add'>+    if (EVP_DigestSignInit(ctx, NULL, EVP_MD_CTX_get0_md(ctx), NULL, pkey) != 1)</div><div class='add'>+        ossl_raise(eHMACError, "EVP_DigestSignInit");</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     HMAC.digest(digest, key, data) -&gt; aString</div><div class='del'>- *</div><div class='del'>- * Returns the authentication code as a binary string. The _digest_ parameter</div><div class='del'>- * specifies the digest algorithm to use. This may be a String representing</div><div class='del'>- * the algorithm name or an instance of OpenSSL::Digest.</div><div class='del'>- *</div><div class='del'>- * === Example</div><div class='del'>- *</div><div class='del'>- *	key = 'key'</div><div class='del'>- * 	data = 'The quick brown fox jumps over the lazy dog'</div><div class='del'>- *</div><div class='del'>- * 	hmac = OpenSSL::HMAC.digest('sha1', key, data)</div><div class='del'>- * 	#=&gt; "\xDE|\x9B\x85\xB8\xB7\x8A\xA6\xBC\x8Az6\xF7\n\x90p\x1C\x9D\xB4\xD9"</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_hmac_s_digest(VALUE klass, VALUE digest, VALUE key, VALUE data)</div><div class='del'>-{</div><div class='del'>-    unsigned char *buf;</div><div class='del'>-    unsigned int buf_len;</div><div class='del'>-</div><div class='del'>-    StringValue(key);</div><div class='del'>-    StringValue(data);</div><div class='del'>-    buf = HMAC(ossl_evp_get_digestbyname(digest), RSTRING_PTR(key),</div><div class='del'>-	       RSTRING_LENINT(key), (unsigned char *)RSTRING_PTR(data),</div><div class='del'>-	       RSTRING_LEN(data), NULL, &amp;buf_len);</div><div class='del'>-</div><div class='del'>-    return rb_str_new((const char *)buf, buf_len);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     HMAC.hexdigest(digest, key, data) -&gt; aString</div><div class='del'>- *</div><div class='del'>- * Returns the authentication code as a hex-encoded string. The _digest_</div><div class='del'>- * parameter specifies the digest algorithm to use. This may be a String</div><div class='del'>- * representing the algorithm name or an instance of OpenSSL::Digest.</div><div class='del'>- *</div><div class='del'>- * === Example</div><div class='del'>- *</div><div class='del'>- *	key = 'key'</div><div class='del'>- * 	data = 'The quick brown fox jumps over the lazy dog'</div><div class='del'>- *</div><div class='del'>- * 	hmac = OpenSSL::HMAC.hexdigest('sha1', key, data)</div><div class='del'>- * 	#=&gt; "de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9"</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_hmac_s_hexdigest(VALUE klass, VALUE digest, VALUE key, VALUE data)</div><div class='del'>-{</div><div class='del'>-    unsigned char buf[EVP_MAX_MD_SIZE];</div><div class='del'>-    unsigned int buf_len;</div><div class='del'>-    VALUE ret;</div><div class='del'>-</div><div class='del'>-    StringValue(key);</div><div class='del'>-    StringValue(data);</div><div class='del'>-</div><div class='del'>-    if (!HMAC(ossl_evp_get_digestbyname(digest), RSTRING_PTR(key),</div><div class='del'>-	      RSTRING_LENINT(key), (unsigned char *)RSTRING_PTR(data),</div><div class='del'>-	      RSTRING_LEN(data), buf, &amp;buf_len))</div><div class='del'>-	ossl_raise(eHMACError, "HMAC");</div><div class='del'>-</div><div class='del'>-    ret = rb_str_new(NULL, buf_len * 2);</div><div class='del'>-    ossl_bin2hex(buf, RSTRING_PTR(ret), buf_len);</div><div class='del'>-</div><div class='del'>-    return ret;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * INIT</div><div class='ctx'>  */</div><div class='ctx'> void</div><div class='hunk'>@@ -356,11 +283,10 @@ Init_ossl_hmac(void)</div><div class='ctx'>      *</div><div class='ctx'>      * === HMAC-SHA256 using incremental interface</div><div class='ctx'>      *</div><div class='del'>-     *   data1 = File.read("file1")</div><div class='del'>-     *   data2 = File.read("file2")</div><div class='add'>+     *   data1 = File.binread("file1")</div><div class='add'>+     *   data2 = File.binread("file2")</div><div class='ctx'>      *   key = "key"</div><div class='del'>-     *   digest = OpenSSL::Digest::SHA256.new</div><div class='del'>-     *   hmac = OpenSSL::HMAC.new(key, digest)</div><div class='add'>+     *   hmac = OpenSSL::HMAC.new(key, 'SHA256')</div><div class='ctx'>      *   hmac &lt;&lt; data1</div><div class='ctx'>      *   hmac &lt;&lt; data2</div><div class='ctx'>      *   mac = hmac.digest</div><div class='hunk'>@@ -370,8 +296,6 @@ Init_ossl_hmac(void)</div><div class='ctx'>     cHMAC = rb_define_class_under(mOSSL, "HMAC", rb_cObject);</div><div class='ctx'> </div><div class='ctx'>     rb_define_alloc_func(cHMAC, ossl_hmac_alloc);</div><div class='del'>-    rb_define_singleton_method(cHMAC, "digest", ossl_hmac_s_digest, 3);</div><div class='del'>-    rb_define_singleton_method(cHMAC, "hexdigest", ossl_hmac_s_hexdigest, 3);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(cHMAC, "initialize", ossl_hmac_initialize, 2);</div><div class='ctx'>     rb_define_method(cHMAC, "initialize_copy", ossl_hmac_copy, 1);</div><div class='hunk'>@@ -384,12 +308,3 @@ Init_ossl_hmac(void)</div><div class='ctx'>     rb_define_alias(cHMAC, "inspect", "hexdigest");</div><div class='ctx'>     rb_define_alias(cHMAC, "to_s", "hexdigest");</div><div class='ctx'> }</div><div class='del'>-</div><div class='del'>-#else /* NO_HMAC */</div><div class='del'>-#  warning &gt;&gt;&gt; OpenSSL is compiled without HMAC support &lt;&lt;&lt;</div><div class='del'>-void</div><div class='del'>-Init_ossl_hmac(void)</div><div class='del'>-{</div><div class='del'>-    rb_warning("HMAC is not available: OpenSSL is compiled without HMAC.");</div><div class='del'>-}</div><div class='del'>-#endif /* NO_HMAC */</div><div class='head'>diff --git a/ext/openssl/ossl_kdf.c b/ext/openssl/ossl_kdf.c<br/>index ee124718b5..0d25a7304b 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_kdf.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_kdf.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_kdf.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_kdf.c</a></div><div class='hunk'>@@ -3,7 +3,7 @@</div><div class='ctx'>  * Copyright (C) 2007, 2017 Ruby/OpenSSL Project Authors</div><div class='ctx'>  */</div><div class='ctx'> #include "ossl.h"</div><div class='del'>-#if OPENSSL_VERSION_NUMBER &gt;= 0x10100000 &amp;&amp; !defined(LIBRESSL_VERSION_NUMBER)</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(1, 1, 0) || OSSL_LIBRESSL_PREREQ(3, 6, 0)</div><div class='ctx'> # include &lt;openssl/kdf.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -141,7 +141,7 @@ kdf_scrypt(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if OPENSSL_VERSION_NUMBER &gt;= 0x10100000 &amp;&amp; !defined(LIBRESSL_VERSION_NUMBER)</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(1, 1, 0) || OSSL_LIBRESSL_PREREQ(3, 6, 0)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    KDF.hkdf(ikm, salt:, info:, length:, hash:) -&gt; String</div><div class='hunk'>@@ -163,6 +163,14 @@ kdf_scrypt(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *   HashLen is the length of the hash function output in octets.</div><div class='ctx'>  * _hash_::</div><div class='ctx'>  *   The hash function.</div><div class='add'>+ *</div><div class='add'>+ * === Example</div><div class='add'>+ *   # The values from https://datatracker.ietf.org/doc/html/rfc5869#appendix-A.1</div><div class='add'>+ *   ikm = ["0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"].pack("H*")</div><div class='add'>+ *   salt = ["000102030405060708090a0b0c"].pack("H*")</div><div class='add'>+ *   info = ["f0f1f2f3f4f5f6f7f8f9"].pack("H*")</div><div class='add'>+ *   p OpenSSL::KDF.hkdf(ikm, salt: salt, info: info, length: 42, hash: "SHA256").unpack1("H*")</div><div class='add'>+ *   # =&gt; "3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865"</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> kdf_hkdf(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -272,7 +280,7 @@ Init_ossl_kdf(void)</div><div class='ctx'>      *   # store this with the generated value</div><div class='ctx'>      *   salt = OpenSSL::Random.random_bytes(16)</div><div class='ctx'>      *   iter = 20_000</div><div class='del'>-     *   hash = OpenSSL::Digest::SHA256.new</div><div class='add'>+     *   hash = OpenSSL::Digest.new('SHA256')</div><div class='ctx'>      *   len = hash.digest_length</div><div class='ctx'>      *   # the final value to be stored</div><div class='ctx'>      *   value = OpenSSL::KDF.pbkdf2_hmac(pass, salt: salt, iterations: iter,</div><div class='hunk'>@@ -284,24 +292,8 @@ Init_ossl_kdf(void)</div><div class='ctx'>      * Typically, "==" short-circuits on evaluation, and is therefore</div><div class='ctx'>      * vulnerable to timing attacks. The proper way is to use a method that</div><div class='ctx'>      * always takes the same amount of time when comparing two values, thus</div><div class='del'>-     * not leaking any information to potential attackers. To compare two</div><div class='del'>-     * values, the following could be used:</div><div class='del'>-     *</div><div class='del'>-     *   def eql_time_cmp(a, b)</div><div class='del'>-     *     unless a.length == b.length</div><div class='del'>-     *       return false</div><div class='del'>-     *     end</div><div class='del'>-     *     cmp = b.bytes</div><div class='del'>-     *     result = 0</div><div class='del'>-     *     a.bytes.each_with_index {|c,i|</div><div class='del'>-     *       result |= c ^ cmp[i]</div><div class='del'>-     *     }</div><div class='del'>-     *     result == 0</div><div class='del'>-     *   end</div><div class='del'>-     *</div><div class='del'>-     * Please note that the premature return in case of differing lengths</div><div class='del'>-     * typically does not leak valuable information - when using PBKDF2, the</div><div class='del'>-     * length of the values to be compared is of fixed size.</div><div class='add'>+     * not leaking any information to potential attackers. To do this, use</div><div class='add'>+     * +OpenSSL.fixed_length_secure_compare+.</div><div class='ctx'>      */</div><div class='ctx'>     mKDF = rb_define_module_under(mOSSL, "KDF");</div><div class='ctx'>     /*</div><div class='hunk'>@@ -313,7 +305,7 @@ Init_ossl_kdf(void)</div><div class='ctx'> #if defined(HAVE_EVP_PBE_SCRYPT)</div><div class='ctx'>     rb_define_module_function(mKDF, "scrypt", kdf_scrypt, -1);</div><div class='ctx'> #endif</div><div class='del'>-#if OPENSSL_VERSION_NUMBER &gt;= 0x10100000 &amp;&amp; !defined(LIBRESSL_VERSION_NUMBER)</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(1, 1, 0) || OSSL_LIBRESSL_PREREQ(3, 6, 0)</div><div class='ctx'>     rb_define_module_function(mKDF, "hkdf", kdf_hkdf, -1);</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/openssl/ossl_ns_spki.c b/ext/openssl/ossl_ns_spki.c<br/>index 6f61e61bf5..9b1147367a 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_ns_spki.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ns_spki.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_ns_spki.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_ns_spki.c</a></div><div class='hunk'>@@ -350,7 +350,7 @@ ossl_spki_verify(VALUE self, VALUE key)</div><div class='ctx'>  *   spki = OpenSSL::Netscape::SPKI.new</div><div class='ctx'>  *   spki.challenge = "RandomChallenge"</div><div class='ctx'>  *   spki.public_key = key.public_key</div><div class='del'>- *   spki.sign(key, OpenSSL::Digest::SHA256.new)</div><div class='add'>+ *   spki.sign(key, OpenSSL::Digest.new('SHA256'))</div><div class='ctx'>  *   #send a request containing this to a server generating a certificate</div><div class='ctx'>  * === Verifying an SPKI request</div><div class='ctx'>  *   request = #...</div><div class='head'>diff --git a/ext/openssl/ossl_ocsp.c b/ext/openssl/ossl_ocsp.c<br/>index c0237791da..9c8d768d87 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_ocsp.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ocsp.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_ocsp.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_ocsp.c</a></div><div class='hunk'>@@ -157,7 +157,7 @@ ossl_ocspcertid_new(OCSP_CERTID *cid)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * OCSP::Resquest</div><div class='add'>+ * OCSP::Request</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_ocspreq_alloc(VALUE klass)</div><div class='hunk'>@@ -382,7 +382,7 @@ ossl_ocspreq_sign(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     if (!NIL_P(flags))</div><div class='ctx'> 	flg = NUM2INT(flags);</div><div class='ctx'>     if (NIL_P(digest))</div><div class='del'>-	md = EVP_sha1();</div><div class='add'>+	md = NULL;</div><div class='ctx'>     else</div><div class='ctx'> 	md = ossl_evp_get_digestbyname(digest);</div><div class='ctx'>     if (NIL_P(certs))</div><div class='hunk'>@@ -803,7 +803,7 @@ add_status_convert_time(VALUE obj)</div><div class='ctx'>  * revocation, and must be one of OpenSSL::OCSP::REVOKED_STATUS_* constants.</div><div class='ctx'>  * _revocation_time_ is the time when the certificate is revoked.</div><div class='ctx'>  *</div><div class='del'>- * _this_update_ and _next_update_ indicate the time at which ths status is</div><div class='add'>+ * _this_update_ and _next_update_ indicate the time at which the status is</div><div class='ctx'>  * verified to be correct and the time at or before which newer information</div><div class='ctx'>  * will be available, respectively. _next_update_ is optional.</div><div class='ctx'>  *</div><div class='hunk'>@@ -1033,7 +1033,7 @@ ossl_ocspbres_sign(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     if (!NIL_P(flags))</div><div class='ctx'> 	flg = NUM2INT(flags);</div><div class='ctx'>     if (NIL_P(digest))</div><div class='del'>-	md = EVP_sha1();</div><div class='add'>+	md = NULL;</div><div class='ctx'>     else</div><div class='ctx'> 	md = ossl_evp_get_digestbyname(digest);</div><div class='ctx'>     if (NIL_P(certs))</div><div class='hunk'>@@ -1069,55 +1069,7 @@ ossl_ocspbres_verify(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     x509st = GetX509StorePtr(store);</div><div class='ctx'>     flg = NIL_P(flags) ? 0 : NUM2INT(flags);</div><div class='ctx'>     x509s = ossl_x509_ary2sk(certs);</div><div class='del'>-#if (OPENSSL_VERSION_NUMBER &lt; 0x1000202fL) || defined(LIBRESSL_VERSION_NUMBER)</div><div class='del'>-    /*</div><div class='del'>-     * OpenSSL had a bug that it doesn't use the certificates in x509s for</div><div class='del'>-     * verifying the chain. This can be a problem when the response is signed by</div><div class='del'>-     * a certificate issued by an intermediate CA.</div><div class='del'>-     *</div><div class='del'>-     *       root_ca</div><div class='del'>-     *         |</div><div class='del'>-     *   intermediate_ca</div><div class='del'>-     *         |-------------|</div><div class='del'>-     *     end_entity    ocsp_signer</div><div class='del'>-     *</div><div class='del'>-     * When the certificate hierarchy is like this, and the response contains</div><div class='del'>-     * only ocsp_signer certificate, the following code wrongly fails.</div><div class='del'>-     *</div><div class='del'>-     *   store = OpenSSL::X509::Store.new; store.add_cert(root_ca)</div><div class='del'>-     *   basic_response.verify([intermediate_ca], store)</div><div class='del'>-     *</div><div class='del'>-     * So add the certificates in x509s to the embedded certificates list first.</div><div class='del'>-     *</div><div class='del'>-     * This is fixed in OpenSSL 0.9.8zg, 1.0.0s, 1.0.1n, 1.0.2b. But it still</div><div class='del'>-     * exists in LibreSSL 2.1.10, 2.2.9, 2.3.6, 2.4.1.</div><div class='del'>-     */</div><div class='del'>-    if (!(flg &amp; (OCSP_NOCHAIN | OCSP_NOVERIFY)) &amp;&amp;</div><div class='del'>-	sk_X509_num(x509s) &amp;&amp; sk_X509_num(bs-&gt;certs)) {</div><div class='del'>-	int i;</div><div class='del'>-</div><div class='del'>-	bs = ASN1_item_dup(ASN1_ITEM_rptr(OCSP_BASICRESP), bs);</div><div class='del'>-	if (!bs) {</div><div class='del'>-	    sk_X509_pop_free(x509s, X509_free);</div><div class='del'>-	    ossl_raise(eOCSPError, "ASN1_item_dup");</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	for (i = 0; i &lt; sk_X509_num(x509s); i++) {</div><div class='del'>-	    if (!OCSP_basic_add1_cert(bs, sk_X509_value(x509s, i))) {</div><div class='del'>-		sk_X509_pop_free(x509s, X509_free);</div><div class='del'>-		OCSP_BASICRESP_free(bs);</div><div class='del'>-		ossl_raise(eOCSPError, "OCSP_basic_add1_cert");</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	result = OCSP_basic_verify(bs, x509s, x509st, flg);</div><div class='del'>-	OCSP_BASICRESP_free(bs);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	result = OCSP_basic_verify(bs, x509s, x509st, flg);</div><div class='del'>-    }</div><div class='del'>-#else</div><div class='ctx'>     result = OCSP_basic_verify(bs, x509s, x509st, flg);</div><div class='del'>-#endif</div><div class='ctx'>     sk_X509_pop_free(x509s, X509_free);</div><div class='ctx'>     if (result &lt;= 0)</div><div class='ctx'> 	ossl_clear_error();</div><div class='hunk'>@@ -1489,13 +1441,15 @@ ossl_ocspcid_initialize_copy(VALUE self, VALUE other)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   OpenSSL::OCSP::CertificateId.new(subject, issuer, digest = nil) -&gt; certificate_id</div><div class='ctx'>  *   OpenSSL::OCSP::CertificateId.new(der_string)                    -&gt; certificate_id</div><div class='add'>+ *   OpenSSL::OCSP::CertificateId.new(obj)                           -&gt; certificate_id</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new OpenSSL::OCSP::CertificateId for the given _subject_ and</div><div class='ctx'>  * _issuer_ X509 certificates.  The _digest_ is a digest algorithm that is used</div><div class='ctx'>  * to compute the hash values. This defaults to SHA-1.</div><div class='ctx'>  *</div><div class='ctx'>  * If only one argument is given, decodes it as DER representation of a</div><div class='del'>- * certificate ID.</div><div class='add'>+ * certificate ID or generates certificate ID from the object that responds to</div><div class='add'>+ * the to_der method.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_ocspcid_initialize(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -1717,7 +1671,7 @@ Init_ossl_ocsp(void)</div><div class='ctx'>      * subject certificate so the CA knows which certificate we are asking</div><div class='ctx'>      * about:</div><div class='ctx'>      *</div><div class='del'>-     *   digest = OpenSSL::Digest::SHA1.new</div><div class='add'>+     *   digest = OpenSSL::Digest.new('SHA1')</div><div class='ctx'>      *   certificate_id =</div><div class='ctx'>      *     OpenSSL::OCSP::CertificateId.new subject, issuer, digest</div><div class='ctx'>      *</div><div class='hunk'>@@ -1734,18 +1688,11 @@ Init_ossl_ocsp(void)</div><div class='ctx'>      * To submit the request to the CA for verification we need to extract the</div><div class='ctx'>      * OCSP URI from the subject certificate:</div><div class='ctx'>      *</div><div class='del'>-     *   authority_info_access = subject.extensions.find do |extension|</div><div class='del'>-     *     extension.oid == 'authorityInfoAccess'</div><div class='del'>-     *   end</div><div class='del'>-     *</div><div class='del'>-     *   descriptions = authority_info_access.value.split "\n"</div><div class='del'>-     *   ocsp = descriptions.find do |description|</div><div class='del'>-     *     description.start_with? 'OCSP'</div><div class='del'>-     *   end</div><div class='add'>+     *   ocsp_uris = subject.ocsp_uris</div><div class='ctx'>      *</div><div class='ctx'>      *   require 'uri'</div><div class='ctx'>      *</div><div class='del'>-     *   ocsp_uri = URI ocsp[/URI:(.*)/, 1]</div><div class='add'>+     *   ocsp_uri = URI ocsp_uris[0]</div><div class='ctx'>      *</div><div class='ctx'>      * To submit the request we'll POST the request to the OCSP URI (per RFC</div><div class='ctx'>      * 2560).  Note that we only handle HTTP requests and don't handle any</div><div class='hunk'>@@ -1792,7 +1739,7 @@ Init_ossl_ocsp(void)</div><div class='ctx'>      *   single_response = basic_response.find_response(certificate_id)</div><div class='ctx'>      *</div><div class='ctx'>      *   unless single_response</div><div class='del'>-     *     raise 'basic_response does not have the status for the certificiate'</div><div class='add'>+     *     raise 'basic_response does not have the status for the certificate'</div><div class='ctx'>      *   end</div><div class='ctx'>      *</div><div class='ctx'>      * Then check the validity. A status issued in the future must be rejected.</div><div class='head'>diff --git a/ext/openssl/ossl_ocsp.h b/ext/openssl/ossl_ocsp.h<br/>index 21e2c99a2e..6d2aac8657 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_ocsp.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ocsp.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_ocsp.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_ocsp.h</a></div><div class='hunk'>@@ -13,9 +13,9 @@</div><div class='ctx'> </div><div class='ctx'> #if !defined(OPENSSL_NO_OCSP)</div><div class='ctx'> extern VALUE mOCSP;</div><div class='del'>-extern VALUE cOPCSReq;</div><div class='del'>-extern VALUE cOPCSRes;</div><div class='del'>-extern VALUE cOPCSBasicRes;</div><div class='add'>+extern VALUE cOCSPReq;</div><div class='add'>+extern VALUE cOCSPRes;</div><div class='add'>+extern VALUE cOCSPBasicRes;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> void Init_ossl_ocsp(void);</div><div class='head'>diff --git a/ext/openssl/ossl_pkcs12.c b/ext/openssl/ossl_pkcs12.c<br/>index 4566334481..fb947df1d0 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_pkcs12.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkcs12.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_pkcs12.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_pkcs12.c</a></div><div class='hunk'>@@ -149,6 +149,24 @@ ossl_pkcs12_s_create(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_new_i(VALUE arg)</div><div class='add'>+{</div><div class='add'>+    return ossl_pkey_new((EVP_PKEY *)arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ossl_x509_new_i(VALUE arg)</div><div class='add'>+{</div><div class='add'>+    return ossl_x509_new((X509 *)arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ossl_x509_sk2ary_i(VALUE arg)</div><div class='add'>+{</div><div class='add'>+    return ossl_x509_sk2ary((STACK_OF(X509) *)arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    PKCS12.new -&gt; pkcs12</div><div class='hunk'>@@ -186,15 +204,15 @@ ossl_pkcs12_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	ossl_raise(ePKCS12Error, "PKCS12_parse");</div><div class='ctx'>     ERR_pop_to_mark();</div><div class='ctx'>     if (key) {</div><div class='del'>-	pkey = rb_protect((VALUE (*)(VALUE))ossl_pkey_new, (VALUE)key, &amp;st);</div><div class='add'>+	pkey = rb_protect(ossl_pkey_new_i, (VALUE)key, &amp;st);</div><div class='ctx'> 	if (st) goto err;</div><div class='ctx'>     }</div><div class='ctx'>     if (x509) {</div><div class='del'>-	cert = rb_protect((VALUE (*)(VALUE))ossl_x509_new, (VALUE)x509, &amp;st);</div><div class='add'>+	cert = rb_protect(ossl_x509_new_i, (VALUE)x509, &amp;st);</div><div class='ctx'> 	if (st) goto err;</div><div class='ctx'>     }</div><div class='ctx'>     if (x509s) {</div><div class='del'>-	ca = rb_protect((VALUE (*)(VALUE))ossl_x509_sk2ary, (VALUE)x509s, &amp;st);</div><div class='add'>+	ca = rb_protect(ossl_x509_sk2ary_i, (VALUE)x509s, &amp;st);</div><div class='ctx'> 	if (st) goto err;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='head'>diff --git a/ext/openssl/ossl_pkcs7.c b/ext/openssl/ossl_pkcs7.c<br/>index 28010c81fb..dbe5347639 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_pkcs7.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkcs7.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_pkcs7.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_pkcs7.c</a></div><div class='hunk'>@@ -9,21 +9,6 @@</div><div class='ctx'>  */</div><div class='ctx'> #include "ossl.h"</div><div class='ctx'> </div><div class='del'>-#define NewPKCS7(klass) \</div><div class='del'>-    TypedData_Wrap_Struct((klass), &amp;ossl_pkcs7_type, 0)</div><div class='del'>-#define SetPKCS7(obj, pkcs7) do { \</div><div class='del'>-    if (!(pkcs7)) { \</div><div class='del'>-	ossl_raise(rb_eRuntimeError, "PKCS7 wasn't initialized."); \</div><div class='del'>-    } \</div><div class='del'>-    RTYPEDDATA_DATA(obj) = (pkcs7); \</div><div class='del'>-} while (0)</div><div class='del'>-#define GetPKCS7(obj, pkcs7) do { \</div><div class='del'>-    TypedData_Get_Struct((obj), PKCS7, &amp;ossl_pkcs7_type, (pkcs7)); \</div><div class='del'>-    if (!(pkcs7)) { \</div><div class='del'>-	ossl_raise(rb_eRuntimeError, "PKCS7 wasn't initialized."); \</div><div class='del'>-    } \</div><div class='del'>-} while (0)</div><div class='del'>-</div><div class='ctx'> #define NewPKCS7si(klass) \</div><div class='ctx'>     TypedData_Wrap_Struct((klass), &amp;ossl_pkcs7_signer_info_type, 0)</div><div class='ctx'> #define SetPKCS7si(obj, p7si) do { \</div><div class='hunk'>@@ -75,7 +60,7 @@ ossl_pkcs7_free(void *ptr)</div><div class='ctx'>     PKCS7_free(ptr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static const rb_data_type_t ossl_pkcs7_type = {</div><div class='add'>+const rb_data_type_t ossl_pkcs7_type = {</div><div class='ctx'>     "OpenSSL/PKCS7",</div><div class='ctx'>     {</div><div class='ctx'> 	0, ossl_pkcs7_free,</div><div class='hunk'>@@ -116,19 +101,24 @@ static const rb_data_type_t ossl_pkcs7_recip_info_type = {</div><div class='ctx'>  * (MADE PRIVATE UNTIL SOMEBODY WILL NEED THEM)</div><div class='ctx'>  */</div><div class='ctx'> static PKCS7_SIGNER_INFO *</div><div class='del'>-ossl_PKCS7_SIGNER_INFO_dup(const PKCS7_SIGNER_INFO *si)</div><div class='add'>+ossl_PKCS7_SIGNER_INFO_dup(PKCS7_SIGNER_INFO *si)</div><div class='ctx'> {</div><div class='del'>-    return (PKCS7_SIGNER_INFO *)ASN1_dup((i2d_of_void *)i2d_PKCS7_SIGNER_INFO,</div><div class='del'>-					 (d2i_of_void *)d2i_PKCS7_SIGNER_INFO,</div><div class='del'>-					 (char *)si);</div><div class='add'>+    PKCS7_SIGNER_INFO *si_new = ASN1_dup((i2d_of_void *)i2d_PKCS7_SIGNER_INFO,</div><div class='add'>+                                         (d2i_of_void *)d2i_PKCS7_SIGNER_INFO,</div><div class='add'>+                                         si);</div><div class='add'>+    if (si_new &amp;&amp; si-&gt;pkey) {</div><div class='add'>+        EVP_PKEY_up_ref(si-&gt;pkey);</div><div class='add'>+        si_new-&gt;pkey = si-&gt;pkey;</div><div class='add'>+    }</div><div class='add'>+    return si_new;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static PKCS7_RECIP_INFO *</div><div class='del'>-ossl_PKCS7_RECIP_INFO_dup(const PKCS7_RECIP_INFO *si)</div><div class='add'>+ossl_PKCS7_RECIP_INFO_dup(PKCS7_RECIP_INFO *si)</div><div class='ctx'> {</div><div class='del'>-    return (PKCS7_RECIP_INFO *)ASN1_dup((i2d_of_void *)i2d_PKCS7_RECIP_INFO,</div><div class='del'>-					(d2i_of_void *)d2i_PKCS7_RECIP_INFO,</div><div class='del'>-					(char *)si);</div><div class='add'>+    return ASN1_dup((i2d_of_void *)i2d_PKCS7_RECIP_INFO,</div><div class='add'>+                    (d2i_of_void *)d2i_PKCS7_RECIP_INFO,</div><div class='add'>+                    si);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -145,19 +135,6 @@ ossl_pkcs7si_new(PKCS7_SIGNER_INFO *p7si)</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static PKCS7_SIGNER_INFO *</div><div class='del'>-DupPKCS7SignerPtr(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    PKCS7_SIGNER_INFO *p7si, *pkcs7;</div><div class='del'>-</div><div class='del'>-    GetPKCS7si(obj, p7si);</div><div class='del'>-    if (!(pkcs7 = ossl_PKCS7_SIGNER_INFO_dup(p7si))) {</div><div class='del'>-	ossl_raise(ePKCS7Error, NULL);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return pkcs7;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_pkcs7ri_new(PKCS7_RECIP_INFO *p7ri)</div><div class='ctx'> {</div><div class='hunk'>@@ -172,19 +149,6 @@ ossl_pkcs7ri_new(PKCS7_RECIP_INFO *p7ri)</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static PKCS7_RECIP_INFO *</div><div class='del'>-DupPKCS7RecipientPtr(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    PKCS7_RECIP_INFO *p7ri, *pkcs7;</div><div class='del'>-</div><div class='del'>-    GetPKCS7ri(obj, p7ri);</div><div class='del'>-    if (!(pkcs7 = ossl_PKCS7_RECIP_INFO_dup(p7ri))) {</div><div class='del'>-	ossl_raise(ePKCS7Error, NULL);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return pkcs7;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    PKCS7.read_smime(string) =&gt; pkcs7</div><div class='hunk'>@@ -366,7 +330,7 @@ ossl_pkcs7_alloc(VALUE klass)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_pkcs7_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    PKCS7 *p7, *pkcs = DATA_PTR(self);</div><div class='add'>+    PKCS7 *p7, *p7_orig = RTYPEDDATA_DATA(self);</div><div class='ctx'>     BIO *in;</div><div class='ctx'>     VALUE arg;</div><div class='ctx'> </div><div class='hunk'>@@ -374,19 +338,17 @@ ossl_pkcs7_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	return self;</div><div class='ctx'>     arg = ossl_to_der_if_possible(arg);</div><div class='ctx'>     in = ossl_obj2bio(&amp;arg);</div><div class='del'>-    p7 = PEM_read_bio_PKCS7(in, &amp;pkcs, NULL, NULL);</div><div class='add'>+    p7 = d2i_PKCS7_bio(in, NULL);</div><div class='ctx'>     if (!p7) {</div><div class='del'>-	OSSL_BIO_reset(in);</div><div class='del'>-        p7 = d2i_PKCS7_bio(in, &amp;pkcs);</div><div class='del'>-	if (!p7) {</div><div class='del'>-	    BIO_free(in);</div><div class='del'>-	    PKCS7_free(pkcs);</div><div class='del'>-	    DATA_PTR(self) = NULL;</div><div class='del'>-	    ossl_raise(rb_eArgError, "Could not parse the PKCS7");</div><div class='del'>-	}</div><div class='add'>+        OSSL_BIO_reset(in);</div><div class='add'>+        p7 = PEM_read_bio_PKCS7(in, NULL, NULL, NULL);</div><div class='ctx'>     }</div><div class='del'>-    DATA_PTR(self) = pkcs;</div><div class='ctx'>     BIO_free(in);</div><div class='add'>+    if (!p7)</div><div class='add'>+        ossl_raise(rb_eArgError, "Could not parse the PKCS7");</div><div class='add'>+</div><div class='add'>+    RTYPEDDATA_DATA(self) = p7;</div><div class='add'>+    PKCS7_free(p7_orig);</div><div class='ctx'>     ossl_pkcs7_set_data(self, Qnil);</div><div class='ctx'>     ossl_pkcs7_set_err_string(self, Qnil);</div><div class='ctx'> </div><div class='hunk'>@@ -536,17 +498,18 @@ static VALUE</div><div class='ctx'> ossl_pkcs7_add_signer(VALUE self, VALUE signer)</div><div class='ctx'> {</div><div class='ctx'>     PKCS7 *pkcs7;</div><div class='del'>-    PKCS7_SIGNER_INFO *p7si;</div><div class='add'>+    PKCS7_SIGNER_INFO *si, *si_new;</div><div class='ctx'> </div><div class='del'>-    p7si = DupPKCS7SignerPtr(signer); /* NEED TO DUP */</div><div class='ctx'>     GetPKCS7(self, pkcs7);</div><div class='del'>-    if (!PKCS7_add_signer(pkcs7, p7si)) {</div><div class='del'>-	PKCS7_SIGNER_INFO_free(p7si);</div><div class='del'>-	ossl_raise(ePKCS7Error, "Could not add signer.");</div><div class='del'>-    }</div><div class='del'>-    if (PKCS7_type_is_signed(pkcs7)){</div><div class='del'>-	PKCS7_add_signed_attribute(p7si, NID_pkcs9_contentType,</div><div class='del'>-				   V_ASN1_OBJECT, OBJ_nid2obj(NID_pkcs7_data));</div><div class='add'>+    GetPKCS7si(signer, si);</div><div class='add'>+</div><div class='add'>+    si_new = ossl_PKCS7_SIGNER_INFO_dup(si);</div><div class='add'>+    if (!si_new)</div><div class='add'>+        ossl_raise(ePKCS7Error, "PKCS7_SIGNER_INFO_dup");</div><div class='add'>+</div><div class='add'>+    if (PKCS7_add_signer(pkcs7, si_new) != 1) {</div><div class='add'>+        PKCS7_SIGNER_INFO_free(si_new);</div><div class='add'>+        ossl_raise(ePKCS7Error, "PKCS7_add_signer");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='hunk'>@@ -582,13 +545,18 @@ static VALUE</div><div class='ctx'> ossl_pkcs7_add_recipient(VALUE self, VALUE recip)</div><div class='ctx'> {</div><div class='ctx'>     PKCS7 *pkcs7;</div><div class='del'>-    PKCS7_RECIP_INFO *ri;</div><div class='add'>+    PKCS7_RECIP_INFO *ri, *ri_new;</div><div class='ctx'> </div><div class='del'>-    ri = DupPKCS7RecipientPtr(recip); /* NEED TO DUP */</div><div class='ctx'>     GetPKCS7(self, pkcs7);</div><div class='del'>-    if (!PKCS7_add_recipient_info(pkcs7, ri)) {</div><div class='del'>-	PKCS7_RECIP_INFO_free(ri);</div><div class='del'>-	ossl_raise(ePKCS7Error, "Could not add recipient.");</div><div class='add'>+    GetPKCS7ri(recip, ri);</div><div class='add'>+</div><div class='add'>+    ri_new = ossl_PKCS7_RECIP_INFO_dup(ri);</div><div class='add'>+    if (!ri_new)</div><div class='add'>+        ossl_raise(ePKCS7Error, "PKCS7_RECIP_INFO_dup");</div><div class='add'>+</div><div class='add'>+    if (PKCS7_add_recipient_info(pkcs7, ri_new) != 1) {</div><div class='add'>+        PKCS7_RECIP_INFO_free(ri_new);</div><div class='add'>+        ossl_raise(ePKCS7Error, "PKCS7_add_recipient_info");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='hunk'>@@ -1088,7 +1056,6 @@ Init_ossl_pkcs7(void)</div><div class='ctx'>     rb_define_alloc_func(cPKCS7Signer, ossl_pkcs7si_alloc);</div><div class='ctx'>     rb_define_method(cPKCS7Signer, "initialize", ossl_pkcs7si_initialize,3);</div><div class='ctx'>     rb_define_method(cPKCS7Signer, "issuer", ossl_pkcs7si_get_issuer, 0);</div><div class='del'>-    rb_define_alias(cPKCS7Signer, "name", "issuer");</div><div class='ctx'>     rb_define_method(cPKCS7Signer, "serial", ossl_pkcs7si_get_serial,0);</div><div class='ctx'>     rb_define_method(cPKCS7Signer,"signed_time",ossl_pkcs7si_get_signed_time,0);</div><div class='ctx'> </div><div class='head'>diff --git a/ext/openssl/ossl_pkcs7.h b/ext/openssl/ossl_pkcs7.h<br/>index 139e00d640..3e1b094670 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_pkcs7.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkcs7.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_pkcs7.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_pkcs7.h</a></div><div class='hunk'>@@ -10,6 +10,22 @@</div><div class='ctx'> #if !defined(_OSSL_PKCS7_H_)</div><div class='ctx'> #define _OSSL_PKCS7_H_</div><div class='ctx'> </div><div class='add'>+#define NewPKCS7(klass) \</div><div class='add'>+    TypedData_Wrap_Struct((klass), &amp;ossl_pkcs7_type, 0)</div><div class='add'>+#define SetPKCS7(obj, pkcs7) do { \</div><div class='add'>+    if (!(pkcs7)) { \</div><div class='add'>+        ossl_raise(rb_eRuntimeError, "PKCS7 wasn't initialized."); \</div><div class='add'>+    } \</div><div class='add'>+    RTYPEDDATA_DATA(obj) = (pkcs7); \</div><div class='add'>+} while (0)</div><div class='add'>+#define GetPKCS7(obj, pkcs7) do { \</div><div class='add'>+    TypedData_Get_Struct((obj), PKCS7, &amp;ossl_pkcs7_type, (pkcs7)); \</div><div class='add'>+    if (!(pkcs7)) { \</div><div class='add'>+        ossl_raise(rb_eRuntimeError, "PKCS7 wasn't initialized."); \</div><div class='add'>+    } \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+extern const rb_data_type_t ossl_pkcs7_type;</div><div class='ctx'> extern VALUE cPKCS7;</div><div class='ctx'> extern VALUE cPKCS7Signer;</div><div class='ctx'> extern VALUE cPKCS7Recipient;</div><div class='head'>diff --git a/ext/openssl/ossl_pkey.c b/ext/openssl/ossl_pkey.c<br/>index e1fffb2446..476256679b 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_pkey.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_pkey.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_pkey.c</a></div><div class='hunk'>@@ -9,6 +9,10 @@</div><div class='ctx'>  */</div><div class='ctx'> #include "ossl.h"</div><div class='ctx'> </div><div class='add'>+#ifdef OSSL_USE_ENGINE</div><div class='add'>+# include &lt;openssl/engine.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * Classes</div><div class='ctx'>  */</div><div class='hunk'>@@ -17,64 +21,6 @@ VALUE cPKey;</div><div class='ctx'> VALUE ePKeyError;</div><div class='ctx'> static ID id_private_q;</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * callback for generating keys</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-call_check_ints0(VALUE arg)</div><div class='del'>-{</div><div class='del'>-    rb_thread_check_ints();</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-call_check_ints(void *arg)</div><div class='del'>-{</div><div class='del'>-    int state;</div><div class='del'>-    rb_protect(call_check_ints0, Qnil, &amp;state);</div><div class='del'>-    return (void *)(VALUE)state;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-ossl_generate_cb_2(int p, int n, BN_GENCB *cb)</div><div class='del'>-{</div><div class='del'>-    VALUE ary;</div><div class='del'>-    struct ossl_generate_cb_arg *arg;</div><div class='del'>-    int state;</div><div class='del'>-</div><div class='del'>-    arg = (struct ossl_generate_cb_arg *)BN_GENCB_get_arg(cb);</div><div class='del'>-    if (arg-&gt;yield) {</div><div class='del'>-	ary = rb_ary_new2(2);</div><div class='del'>-	rb_ary_store(ary, 0, INT2NUM(p));</div><div class='del'>-	rb_ary_store(ary, 1, INT2NUM(n));</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	* can be break by raising exception or 'break'</div><div class='del'>-	*/</div><div class='del'>-	rb_protect(rb_yield, ary, &amp;state);</div><div class='del'>-	if (state) {</div><div class='del'>-	    arg-&gt;state = state;</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    if (arg-&gt;interrupted) {</div><div class='del'>-	arg-&gt;interrupted = 0;</div><div class='del'>-	state = (int)(VALUE)rb_thread_call_with_gvl(call_check_ints, NULL);</div><div class='del'>-	if (state) {</div><div class='del'>-	    arg-&gt;state = state;</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-ossl_generate_cb_stop(void *ptr)</div><div class='del'>-{</div><div class='del'>-    struct ossl_generate_cb_arg *arg = (struct ossl_generate_cb_arg *)ptr;</div><div class='del'>-    arg-&gt;interrupted = 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static void</div><div class='ctx'> ossl_evp_pkey_free(void *ptr)</div><div class='ctx'> {</div><div class='hunk'>@@ -93,36 +39,29 @@ const rb_data_type_t ossl_evp_pkey_type = {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-pkey_new0(EVP_PKEY *pkey)</div><div class='add'>+pkey_new0(VALUE arg)</div><div class='ctx'> {</div><div class='del'>-    VALUE obj;</div><div class='del'>-    int type;</div><div class='add'>+    EVP_PKEY *pkey = (EVP_PKEY *)arg;</div><div class='add'>+    VALUE klass, obj;</div><div class='ctx'> </div><div class='del'>-    if (!pkey || (type = EVP_PKEY_base_id(pkey)) == EVP_PKEY_NONE)</div><div class='del'>-	ossl_raise(rb_eRuntimeError, "pkey is empty");</div><div class='del'>-</div><div class='del'>-    switch (type) {</div><div class='add'>+    switch (EVP_PKEY_base_id(pkey)) {</div><div class='ctx'> #if !defined(OPENSSL_NO_RSA)</div><div class='del'>-    case EVP_PKEY_RSA:</div><div class='del'>-	return ossl_rsa_new(pkey);</div><div class='add'>+      case EVP_PKEY_RSA: klass = cRSA; break;</div><div class='ctx'> #endif</div><div class='ctx'> #if !defined(OPENSSL_NO_DSA)</div><div class='del'>-    case EVP_PKEY_DSA:</div><div class='del'>-	return ossl_dsa_new(pkey);</div><div class='add'>+      case EVP_PKEY_DSA: klass = cDSA; break;</div><div class='ctx'> #endif</div><div class='ctx'> #if !defined(OPENSSL_NO_DH)</div><div class='del'>-    case EVP_PKEY_DH:</div><div class='del'>-	return ossl_dh_new(pkey);</div><div class='add'>+      case EVP_PKEY_DH:  klass = cDH; break;</div><div class='ctx'> #endif</div><div class='ctx'> #if !defined(OPENSSL_NO_EC)</div><div class='del'>-    case EVP_PKEY_EC:</div><div class='del'>-	return ossl_ec_new(pkey);</div><div class='add'>+      case EVP_PKEY_EC:  klass = cEC; break;</div><div class='ctx'> #endif</div><div class='del'>-    default:</div><div class='del'>-	obj = NewPKey(cPKey);</div><div class='del'>-	SetPKey(obj, pkey);</div><div class='del'>-	return obj;</div><div class='add'>+      default:           klass = cPKey; break;</div><div class='ctx'>     }</div><div class='add'>+    obj = rb_obj_alloc(klass);</div><div class='add'>+    RTYPEDDATA_DATA(obj) = pkey;</div><div class='add'>+    return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -131,7 +70,7 @@ ossl_pkey_new(EVP_PKEY *pkey)</div><div class='ctx'>     VALUE obj;</div><div class='ctx'>     int status;</div><div class='ctx'> </div><div class='del'>-    obj = rb_protect((VALUE (*)(VALUE))pkey_new0, (VALUE)pkey, &amp;status);</div><div class='add'>+    obj = rb_protect(pkey_new0, (VALUE)pkey, &amp;status);</div><div class='ctx'>     if (status) {</div><div class='ctx'> 	EVP_PKEY_free(pkey);</div><div class='ctx'> 	rb_jump_tag(status);</div><div class='hunk'>@@ -140,6 +79,114 @@ ossl_pkey_new(EVP_PKEY *pkey)</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if OSSL_OPENSSL_PREREQ(3, 0, 0)</div><div class='add'>+# include &lt;openssl/decoder.h&gt;</div><div class='add'>+</div><div class='add'>+EVP_PKEY *</div><div class='add'>+ossl_pkey_read_generic(BIO *bio, VALUE pass)</div><div class='add'>+{</div><div class='add'>+    void *ppass = (void *)pass;</div><div class='add'>+    OSSL_DECODER_CTX *dctx;</div><div class='add'>+    EVP_PKEY *pkey = NULL;</div><div class='add'>+    int pos = 0, pos2;</div><div class='add'>+</div><div class='add'>+    dctx = OSSL_DECODER_CTX_new_for_pkey(&amp;pkey, "DER", NULL, NULL, 0, NULL, NULL);</div><div class='add'>+    if (!dctx)</div><div class='add'>+        goto out;</div><div class='add'>+    if (OSSL_DECODER_CTX_set_pem_password_cb(dctx, ossl_pem_passwd_cb, ppass) != 1)</div><div class='add'>+        goto out;</div><div class='add'>+</div><div class='add'>+    /* First check DER */</div><div class='add'>+    if (OSSL_DECODER_from_bio(dctx, bio) == 1)</div><div class='add'>+        goto out;</div><div class='add'>+    OSSL_BIO_reset(bio);</div><div class='add'>+</div><div class='add'>+    /* Then check PEM; multiple OSSL_DECODER_from_bio() calls may be needed */</div><div class='add'>+    if (OSSL_DECODER_CTX_set_input_type(dctx, "PEM") != 1)</div><div class='add'>+        goto out;</div><div class='add'>+    /*</div><div class='add'>+     * First check for private key formats. This is to keep compatibility with</div><div class='add'>+     * ruby/openssl &lt; 3.0 which decoded the following as a private key.</div><div class='add'>+     *</div><div class='add'>+     *     $ openssl ecparam -name prime256v1 -genkey -outform PEM</div><div class='add'>+     *     -----BEGIN EC PARAMETERS-----</div><div class='add'>+     *     BggqhkjOPQMBBw==</div><div class='add'>+     *     -----END EC PARAMETERS-----</div><div class='add'>+     *     -----BEGIN EC PRIVATE KEY-----</div><div class='add'>+     *     MHcCAQEEIAG8ugBbA5MHkqnZ9ujQF93OyUfL9tk8sxqM5Wv5tKg5oAoGCCqGSM49</div><div class='add'>+     *     AwEHoUQDQgAEVcjhJfkwqh5C7kGuhAf8XaAjVuG5ADwb5ayg/cJijCgs+GcXeedj</div><div class='add'>+     *     86avKpGH84DXUlB23C/kPt+6fXYlitUmXQ==</div><div class='add'>+     *     -----END EC PRIVATE KEY-----</div><div class='add'>+     *</div><div class='add'>+     * While the first PEM block is a proper encoding of ECParameters, thus</div><div class='add'>+     * OSSL_DECODER_from_bio() would pick it up, ruby/openssl used to return</div><div class='add'>+     * the latter instead. Existing applications expect this behavior.</div><div class='add'>+     *</div><div class='add'>+     * Note that normally, the input is supposed to contain a single decodable</div><div class='add'>+     * PEM block only, so this special handling should not create a new problem.</div><div class='add'>+     */</div><div class='add'>+    OSSL_DECODER_CTX_set_selection(dctx, EVP_PKEY_KEYPAIR);</div><div class='add'>+    while (1) {</div><div class='add'>+        if (OSSL_DECODER_from_bio(dctx, bio) == 1)</div><div class='add'>+            goto out;</div><div class='add'>+        if (BIO_eof(bio))</div><div class='add'>+            break;</div><div class='add'>+        pos2 = BIO_tell(bio);</div><div class='add'>+        if (pos2 &lt; 0 || pos2 &lt;= pos)</div><div class='add'>+            break;</div><div class='add'>+        ossl_clear_error();</div><div class='add'>+        pos = pos2;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    OSSL_BIO_reset(bio);</div><div class='add'>+    OSSL_DECODER_CTX_set_selection(dctx, 0);</div><div class='add'>+    while (1) {</div><div class='add'>+        if (OSSL_DECODER_from_bio(dctx, bio) == 1)</div><div class='add'>+            goto out;</div><div class='add'>+        if (BIO_eof(bio))</div><div class='add'>+            break;</div><div class='add'>+        pos2 = BIO_tell(bio);</div><div class='add'>+        if (pos2 &lt; 0 || pos2 &lt;= pos)</div><div class='add'>+            break;</div><div class='add'>+        ossl_clear_error();</div><div class='add'>+        pos = pos2;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+  out:</div><div class='add'>+    OSSL_DECODER_CTX_free(dctx);</div><div class='add'>+    return pkey;</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+EVP_PKEY *</div><div class='add'>+ossl_pkey_read_generic(BIO *bio, VALUE pass)</div><div class='add'>+{</div><div class='add'>+    void *ppass = (void *)pass;</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+</div><div class='add'>+    if ((pkey = d2i_PrivateKey_bio(bio, NULL)))</div><div class='add'>+	goto out;</div><div class='add'>+    OSSL_BIO_reset(bio);</div><div class='add'>+    if ((pkey = d2i_PKCS8PrivateKey_bio(bio, NULL, ossl_pem_passwd_cb, ppass)))</div><div class='add'>+	goto out;</div><div class='add'>+    OSSL_BIO_reset(bio);</div><div class='add'>+    if ((pkey = d2i_PUBKEY_bio(bio, NULL)))</div><div class='add'>+	goto out;</div><div class='add'>+    OSSL_BIO_reset(bio);</div><div class='add'>+    /* PEM_read_bio_PrivateKey() also parses PKCS #8 formats */</div><div class='add'>+    if ((pkey = PEM_read_bio_PrivateKey(bio, NULL, ossl_pem_passwd_cb, ppass)))</div><div class='add'>+	goto out;</div><div class='add'>+    OSSL_BIO_reset(bio);</div><div class='add'>+    if ((pkey = PEM_read_bio_PUBKEY(bio, NULL, NULL, NULL)))</div><div class='add'>+	goto out;</div><div class='add'>+    OSSL_BIO_reset(bio);</div><div class='add'>+    if ((pkey = PEM_read_bio_Parameters(bio, NULL)))</div><div class='add'>+	goto out;</div><div class='add'>+</div><div class='add'>+  out:</div><div class='add'>+    return pkey;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     OpenSSL::PKey.read(string [, pwd ]) -&gt; PKey</div><div class='hunk'>@@ -149,7 +196,7 @@ ossl_pkey_new(EVP_PKEY *pkey)</div><div class='ctx'>  * instance of the appropriate PKey class.</div><div class='ctx'>  *</div><div class='ctx'>  * === Parameters</div><div class='del'>- * * _string+ is a DER- or PEM-encoded string containing an arbitrary private</div><div class='add'>+ * * _string_ is a DER- or PEM-encoded string containing an arbitrary private</div><div class='ctx'>  *   or public key.</div><div class='ctx'>  * * _io_ is an instance of IO containing a DER- or PEM-encoded</div><div class='ctx'>  *   arbitrary private or public key.</div><div class='hunk'>@@ -164,30 +211,283 @@ ossl_pkey_new_from_data(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     VALUE data, pass;</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "11", &amp;data, &amp;pass);</div><div class='del'>-    pass = ossl_pem_passwd_value(pass);</div><div class='del'>-</div><div class='ctx'>     bio = ossl_obj2bio(&amp;data);</div><div class='del'>-    if (!(pkey = d2i_PrivateKey_bio(bio, NULL))) {</div><div class='del'>-	OSSL_BIO_reset(bio);</div><div class='del'>-	if (!(pkey = PEM_read_bio_PrivateKey(bio, NULL, ossl_pem_passwd_cb, (void *)pass))) {</div><div class='del'>-	    OSSL_BIO_reset(bio);</div><div class='del'>-	    if (!(pkey = d2i_PUBKEY_bio(bio, NULL))) {</div><div class='del'>-		OSSL_BIO_reset(bio);</div><div class='del'>-		pkey = PEM_read_bio_PUBKEY(bio, NULL, ossl_pem_passwd_cb, (void *)pass);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='add'>+    pkey = ossl_pkey_read_generic(bio, ossl_pem_passwd_value(pass));</div><div class='ctx'>     BIO_free(bio);</div><div class='ctx'>     if (!pkey)</div><div class='ctx'> 	ossl_raise(ePKeyError, "Could not parse PKey");</div><div class='del'>-</div><div class='ctx'>     return ossl_pkey_new(pkey);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+pkey_ctx_apply_options_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, ctx_v))</div><div class='add'>+{</div><div class='add'>+    VALUE key = rb_ary_entry(i, 0), value = rb_ary_entry(i, 1);</div><div class='add'>+    EVP_PKEY_CTX *ctx = (EVP_PKEY_CTX *)ctx_v;</div><div class='add'>+</div><div class='add'>+    if (SYMBOL_P(key))</div><div class='add'>+        key = rb_sym2str(key);</div><div class='add'>+    value = rb_String(value);</div><div class='add'>+</div><div class='add'>+    if (EVP_PKEY_CTX_ctrl_str(ctx, StringValueCStr(key), StringValueCStr(value)) &lt;= 0)</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_CTX_ctrl_str(ctx, %+"PRIsVALUE", %+"PRIsVALUE")",</div><div class='add'>+                   key, value);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+pkey_ctx_apply_options0(VALUE args_v)</div><div class='add'>+{</div><div class='add'>+    VALUE *args = (VALUE *)args_v;</div><div class='add'>+    Check_Type(args[1], T_HASH);</div><div class='add'>+</div><div class='add'>+    rb_block_call(args[1], rb_intern("each"), 0, NULL,</div><div class='add'>+                  pkey_ctx_apply_options_i, args[0]);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+pkey_ctx_apply_options(EVP_PKEY_CTX *ctx, VALUE options, int *state)</div><div class='add'>+{</div><div class='add'>+    VALUE args[2];</div><div class='add'>+    args[0] = (VALUE)ctx;</div><div class='add'>+    args[1] = options;</div><div class='add'>+</div><div class='add'>+    rb_protect(pkey_ctx_apply_options0, (VALUE)args, state);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct pkey_blocking_generate_arg {</div><div class='add'>+    EVP_PKEY_CTX *ctx;</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    int state;</div><div class='add'>+    int yield: 1;</div><div class='add'>+    int genparam: 1;</div><div class='add'>+    int interrupted: 1;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+pkey_gen_cb_yield(VALUE ctx_v)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY_CTX *ctx = (void *)ctx_v;</div><div class='add'>+    int i, info_num;</div><div class='add'>+    VALUE *argv;</div><div class='add'>+</div><div class='add'>+    info_num = EVP_PKEY_CTX_get_keygen_info(ctx, -1);</div><div class='add'>+    argv = ALLOCA_N(VALUE, info_num);</div><div class='add'>+    for (i = 0; i &lt; info_num; i++)</div><div class='add'>+        argv[i] = INT2NUM(EVP_PKEY_CTX_get_keygen_info(ctx, i));</div><div class='add'>+</div><div class='add'>+    return rb_yield_values2(info_num, argv);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+call_check_ints0(VALUE arg)</div><div class='add'>+{</div><div class='add'>+    rb_thread_check_ints();</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+call_check_ints(void *arg)</div><div class='add'>+{</div><div class='add'>+    int state;</div><div class='add'>+    rb_protect(call_check_ints0, Qnil, &amp;state);</div><div class='add'>+    return (void *)(VALUE)state;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+pkey_gen_cb(EVP_PKEY_CTX *ctx)</div><div class='add'>+{</div><div class='add'>+    struct pkey_blocking_generate_arg *arg = EVP_PKEY_CTX_get_app_data(ctx);</div><div class='add'>+    int state;</div><div class='add'>+</div><div class='add'>+    if (arg-&gt;yield) {</div><div class='add'>+        rb_protect(pkey_gen_cb_yield, (VALUE)ctx, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            arg-&gt;state = state;</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (arg-&gt;interrupted) {</div><div class='add'>+        arg-&gt;interrupted = 0;</div><div class='add'>+        state = (int)(VALUE)rb_thread_call_with_gvl(call_check_ints, NULL);</div><div class='add'>+        if (state) {</div><div class='add'>+            arg-&gt;state = state;</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+pkey_blocking_gen_stop(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct pkey_blocking_generate_arg *arg = ptr;</div><div class='add'>+    arg-&gt;interrupted = 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+pkey_blocking_gen(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct pkey_blocking_generate_arg *arg = ptr;</div><div class='add'>+</div><div class='add'>+    if (arg-&gt;genparam &amp;&amp; EVP_PKEY_paramgen(arg-&gt;ctx, &amp;arg-&gt;pkey) &lt;= 0)</div><div class='add'>+        return NULL;</div><div class='add'>+    if (!arg-&gt;genparam &amp;&amp; EVP_PKEY_keygen(arg-&gt;ctx, &amp;arg-&gt;pkey) &lt;= 0)</div><div class='add'>+        return NULL;</div><div class='add'>+    return arg-&gt;pkey;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+pkey_generate(int argc, VALUE *argv, VALUE self, int genparam)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY_CTX *ctx;</div><div class='add'>+    VALUE alg, options;</div><div class='add'>+    struct pkey_blocking_generate_arg gen_arg = { 0 };</div><div class='add'>+    int state;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "11", &amp;alg, &amp;options);</div><div class='add'>+    if (rb_obj_is_kind_of(alg, cPKey)) {</div><div class='add'>+        EVP_PKEY *base_pkey;</div><div class='add'>+</div><div class='add'>+        GetPKey(alg, base_pkey);</div><div class='add'>+        ctx = EVP_PKEY_CTX_new(base_pkey, NULL/* engine */);</div><div class='add'>+        if (!ctx)</div><div class='add'>+            ossl_raise(ePKeyError, "EVP_PKEY_CTX_new");</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(3, 0, 0)</div><div class='add'>+        ctx = EVP_PKEY_CTX_new_from_name(NULL, StringValueCStr(alg), NULL);</div><div class='add'>+        if (!ctx)</div><div class='add'>+            ossl_raise(ePKeyError, "EVP_PKEY_CTX_new_from_name");</div><div class='add'>+#else</div><div class='add'>+        const EVP_PKEY_ASN1_METHOD *ameth;</div><div class='add'>+        ENGINE *tmpeng;</div><div class='add'>+        int pkey_id;</div><div class='add'>+</div><div class='add'>+        StringValue(alg);</div><div class='add'>+        ameth = EVP_PKEY_asn1_find_str(&amp;tmpeng, RSTRING_PTR(alg),</div><div class='add'>+                                       RSTRING_LENINT(alg));</div><div class='add'>+        if (!ameth)</div><div class='add'>+            ossl_raise(ePKeyError, "algorithm %"PRIsVALUE" not found", alg);</div><div class='add'>+        EVP_PKEY_asn1_get0_info(&amp;pkey_id, NULL, NULL, NULL, NULL, ameth);</div><div class='add'>+#if !defined(OPENSSL_NO_ENGINE)</div><div class='add'>+        if (tmpeng)</div><div class='add'>+            ENGINE_finish(tmpeng);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        ctx = EVP_PKEY_CTX_new_id(pkey_id, NULL/* engine */);</div><div class='add'>+        if (!ctx)</div><div class='add'>+            ossl_raise(ePKeyError, "EVP_PKEY_CTX_new_id");</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (genparam &amp;&amp; EVP_PKEY_paramgen_init(ctx) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_paramgen_init");</div><div class='add'>+    }</div><div class='add'>+    if (!genparam &amp;&amp; EVP_PKEY_keygen_init(ctx) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_keygen_init");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(options)) {</div><div class='add'>+        pkey_ctx_apply_options(ctx, options, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            EVP_PKEY_CTX_free(ctx);</div><div class='add'>+            rb_jump_tag(state);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    gen_arg.genparam = genparam;</div><div class='add'>+    gen_arg.ctx = ctx;</div><div class='add'>+    gen_arg.yield = rb_block_given_p();</div><div class='add'>+    EVP_PKEY_CTX_set_app_data(ctx, &amp;gen_arg);</div><div class='add'>+    EVP_PKEY_CTX_set_cb(ctx, pkey_gen_cb);</div><div class='add'>+    if (gen_arg.yield)</div><div class='add'>+        pkey_blocking_gen(&amp;gen_arg);</div><div class='add'>+    else</div><div class='add'>+        rb_thread_call_without_gvl(pkey_blocking_gen, &amp;gen_arg,</div><div class='add'>+                                   pkey_blocking_gen_stop, &amp;gen_arg);</div><div class='add'>+    EVP_PKEY_CTX_free(ctx);</div><div class='add'>+    if (!gen_arg.pkey) {</div><div class='add'>+        if (gen_arg.state) {</div><div class='add'>+            ossl_clear_error();</div><div class='add'>+            rb_jump_tag(gen_arg.state);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ossl_raise(ePKeyError, genparam ? "EVP_PKEY_paramgen" : "EVP_PKEY_keygen");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ossl_pkey_new(gen_arg.pkey);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    OpenSSL::PKey.generate_parameters(algo_name [, options]) -&gt; pkey</div><div class='add'>+ *</div><div class='add'>+ * Generates new parameters for the algorithm. _algo_name_ is a String that</div><div class='add'>+ * represents the algorithm. The optional argument _options_ is a Hash that</div><div class='add'>+ * specifies the options specific to the algorithm. The order of the options</div><div class='add'>+ * can be important.</div><div class='add'>+ *</div><div class='add'>+ * A block can be passed optionally. The meaning of the arguments passed to</div><div class='add'>+ * the block varies depending on the implementation of the algorithm. The block</div><div class='add'>+ * may be called once or multiple times, or may not even be called.</div><div class='add'>+ *</div><div class='add'>+ * For the supported options, see the documentation for the 'openssl genpkey'</div><div class='add'>+ * utility command.</div><div class='add'>+ *</div><div class='add'>+ * == Example</div><div class='add'>+ *   pkey = OpenSSL::PKey.generate_parameters("DSA", "dsa_paramgen_bits" =&gt; 2048)</div><div class='add'>+ *   p pkey.p.num_bits #=&gt; 2048</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_s_generate_parameters(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    return pkey_generate(argc, argv, self, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    OpenSSL::PKey.generate_key(algo_name [, options]) -&gt; pkey</div><div class='add'>+ *    OpenSSL::PKey.generate_key(pkey [, options]) -&gt; pkey</div><div class='add'>+ *</div><div class='add'>+ * Generates a new key (pair).</div><div class='add'>+ *</div><div class='add'>+ * If a String is given as the first argument, it generates a new random key</div><div class='add'>+ * for the algorithm specified by the name just as ::generate_parameters does.</div><div class='add'>+ * If an OpenSSL::PKey::PKey is given instead, it generates a new random key</div><div class='add'>+ * for the same algorithm as the key, using the parameters the key contains.</div><div class='add'>+ *</div><div class='add'>+ * See ::generate_parameters for the details of _options_ and the given block.</div><div class='add'>+ *</div><div class='add'>+ * == Example</div><div class='add'>+ *   pkey_params = OpenSSL::PKey.generate_parameters("DSA", "dsa_paramgen_bits" =&gt; 2048)</div><div class='add'>+ *   pkey_params.priv_key #=&gt; nil</div><div class='add'>+ *   pkey = OpenSSL::PKey.generate_key(pkey_params)</div><div class='add'>+ *   pkey.priv_key #=&gt; #&lt;OpenSSL::BN 6277...</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_s_generate_key(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    return pkey_generate(argc, argv, self, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * TODO: There is no convenient way to check the presence of public key</div><div class='add'>+ * components on OpenSSL 3.0. But since keys are immutable on 3.0, pkeys without</div><div class='add'>+ * these should only be created by OpenSSL::PKey.generate_parameters or by</div><div class='add'>+ * parsing DER-/PEM-encoded string. We would need another flag for that.</div><div class='add'>+ */</div><div class='ctx'> void</div><div class='ctx'> ossl_pkey_check_public_key(const EVP_PKEY *pkey)</div><div class='ctx'> {</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(3, 0, 0)</div><div class='add'>+    if (EVP_PKEY_missing_parameters(pkey))</div><div class='add'>+        ossl_raise(ePKeyError, "parameters missing");</div><div class='add'>+#else</div><div class='ctx'>     void *ptr;</div><div class='ctx'>     const BIGNUM *n, *e, *pubkey;</div><div class='ctx'> </div><div class='hunk'>@@ -223,6 +523,7 @@ ossl_pkey_check_public_key(const EVP_PKEY *pkey)</div><div class='ctx'> 	return;</div><div class='ctx'>     }</div><div class='ctx'>     ossl_raise(ePKeyError, "public key missing");</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> EVP_PKEY *</div><div class='hunk'>@@ -240,12 +541,19 @@ GetPrivPKeyPtr(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     EVP_PKEY *pkey;</div><div class='ctx'> </div><div class='del'>-    if (rb_funcallv(obj, id_private_q, 0, NULL) != Qtrue) {</div><div class='del'>-	ossl_raise(rb_eArgError, "Private key is needed.");</div><div class='del'>-    }</div><div class='ctx'>     GetPKey(obj, pkey);</div><div class='add'>+    if (OSSL_PKEY_IS_PRIVATE(obj))</div><div class='add'>+        return pkey;</div><div class='add'>+    /*</div><div class='add'>+     * The EVP API does not provide a way to check if the EVP_PKEY has private</div><div class='add'>+     * components. Assuming it does...</div><div class='add'>+     */</div><div class='add'>+    if (!rb_respond_to(obj, id_private_q))</div><div class='add'>+        return pkey;</div><div class='add'>+    if (RTEST(rb_funcallv(obj, id_private_q, 0, NULL)))</div><div class='add'>+        return pkey;</div><div class='ctx'> </div><div class='del'>-    return pkey;</div><div class='add'>+    rb_raise(rb_eArgError, "private key is needed");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> EVP_PKEY *</div><div class='hunk'>@@ -265,16 +573,7 @@ DupPKeyPtr(VALUE obj)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_pkey_alloc(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    EVP_PKEY *pkey;</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    obj = NewPKey(klass);</div><div class='del'>-    if (!(pkey = EVP_PKEY_new())) {</div><div class='del'>-	ossl_raise(ePKeyError, NULL);</div><div class='del'>-    }</div><div class='del'>-    SetPKey(obj, pkey);</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='add'>+    return TypedData_Wrap_Struct(klass, &amp;ossl_evp_pkey_type, NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -293,119 +592,916 @@ ossl_pkey_initialize(VALUE self)</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_EVP_PKEY_DUP</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_initialize_copy(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey, *pkey_other;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(self, EVP_PKEY, &amp;ossl_evp_pkey_type, pkey);</div><div class='add'>+    TypedData_Get_Struct(other, EVP_PKEY, &amp;ossl_evp_pkey_type, pkey_other);</div><div class='add'>+    if (pkey)</div><div class='add'>+        rb_raise(rb_eTypeError, "pkey already initialized");</div><div class='add'>+    if (pkey_other) {</div><div class='add'>+        pkey = EVP_PKEY_dup(pkey_other);</div><div class='add'>+        if (!pkey)</div><div class='add'>+            ossl_raise(ePKeyError, "EVP_PKEY_dup");</div><div class='add'>+        RTYPEDDATA_DATA(self) = pkey;</div><div class='add'>+    }</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.oid -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Returns the short name of the OID associated with _pkey_.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_oid(VALUE self)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    int nid;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    nid = EVP_PKEY_id(pkey);</div><div class='add'>+    return rb_str_new_cstr(OBJ_nid2sn(nid));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.inspect -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Returns a string describing the PKey object.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_inspect(VALUE self)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    int nid;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    nid = EVP_PKEY_id(pkey);</div><div class='add'>+    return rb_sprintf("#&lt;%"PRIsVALUE":%p oid=%s&gt;",</div><div class='add'>+                      rb_class_name(CLASS_OF(self)), (void *)self,</div><div class='add'>+                      OBJ_nid2sn(nid));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.to_text -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Dumps key parameters, public key, and private key components contained in</div><div class='add'>+ * the key into a human-readable text.</div><div class='add'>+ *</div><div class='add'>+ * This is intended for debugging purpose.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page EVP_PKEY_print_private(3).</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_to_text(VALUE self)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    BIO *bio;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    if (!(bio = BIO_new(BIO_s_mem())))</div><div class='add'>+        ossl_raise(ePKeyError, "BIO_new");</div><div class='add'>+</div><div class='add'>+    if (EVP_PKEY_print_private(bio, pkey, 0, NULL) == 1)</div><div class='add'>+        goto out;</div><div class='add'>+    OSSL_BIO_reset(bio);</div><div class='add'>+    if (EVP_PKEY_print_public(bio, pkey, 0, NULL) == 1)</div><div class='add'>+        goto out;</div><div class='add'>+    OSSL_BIO_reset(bio);</div><div class='add'>+    if (EVP_PKEY_print_params(bio, pkey, 0, NULL) == 1)</div><div class='add'>+        goto out;</div><div class='add'>+</div><div class='add'>+    BIO_free(bio);</div><div class='add'>+    ossl_raise(ePKeyError, "EVP_PKEY_print_params");</div><div class='add'>+</div><div class='add'>+  out:</div><div class='add'>+    return ossl_membio2str(bio);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+ossl_pkey_export_traditional(int argc, VALUE *argv, VALUE self, int to_der)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    VALUE cipher, pass;</div><div class='add'>+    const EVP_CIPHER *enc = NULL;</div><div class='add'>+    BIO *bio;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    rb_scan_args(argc, argv, "02", &amp;cipher, &amp;pass);</div><div class='add'>+    if (!NIL_P(cipher)) {</div><div class='add'>+	enc = ossl_evp_get_cipherbyname(cipher);</div><div class='add'>+	pass = ossl_pem_passwd_value(pass);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    bio = BIO_new(BIO_s_mem());</div><div class='add'>+    if (!bio)</div><div class='add'>+	ossl_raise(ePKeyError, "BIO_new");</div><div class='add'>+    if (to_der) {</div><div class='add'>+	if (!i2d_PrivateKey_bio(bio, pkey)) {</div><div class='add'>+	    BIO_free(bio);</div><div class='add'>+	    ossl_raise(ePKeyError, "i2d_PrivateKey_bio");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(1, 1, 0) || OSSL_LIBRESSL_PREREQ(3, 5, 0)</div><div class='add'>+	if (!PEM_write_bio_PrivateKey_traditional(bio, pkey, enc, NULL, 0,</div><div class='add'>+						  ossl_pem_passwd_cb,</div><div class='add'>+						  (void *)pass)) {</div><div class='add'>+#else</div><div class='add'>+	char pem_str[80];</div><div class='add'>+	const char *aname;</div><div class='add'>+</div><div class='add'>+	EVP_PKEY_asn1_get0_info(NULL, NULL, NULL, NULL, &amp;aname, pkey-&gt;ameth);</div><div class='add'>+	snprintf(pem_str, sizeof(pem_str), "%s PRIVATE KEY", aname);</div><div class='add'>+	if (!PEM_ASN1_write_bio((i2d_of_void *)i2d_PrivateKey, pem_str, bio,</div><div class='add'>+				pkey, enc, NULL, 0, ossl_pem_passwd_cb,</div><div class='add'>+				(void *)pass)) {</div><div class='add'>+#endif</div><div class='add'>+	    BIO_free(bio);</div><div class='add'>+	    ossl_raise(ePKeyError, "PEM_write_bio_PrivateKey_traditional");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return ossl_membio2str(bio);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+do_pkcs8_export(int argc, VALUE *argv, VALUE self, int to_der)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    VALUE cipher, pass;</div><div class='add'>+    const EVP_CIPHER *enc = NULL;</div><div class='add'>+    BIO *bio;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    rb_scan_args(argc, argv, "02", &amp;cipher, &amp;pass);</div><div class='add'>+    if (argc &gt; 0) {</div><div class='add'>+	/*</div><div class='add'>+	 * TODO: EncryptedPrivateKeyInfo actually has more options.</div><div class='add'>+	 * Should they be exposed?</div><div class='add'>+	 */</div><div class='add'>+	enc = ossl_evp_get_cipherbyname(cipher);</div><div class='add'>+	pass = ossl_pem_passwd_value(pass);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    bio = BIO_new(BIO_s_mem());</div><div class='add'>+    if (!bio)</div><div class='add'>+	ossl_raise(ePKeyError, "BIO_new");</div><div class='add'>+    if (to_der) {</div><div class='add'>+	if (!i2d_PKCS8PrivateKey_bio(bio, pkey, enc, NULL, 0,</div><div class='add'>+				     ossl_pem_passwd_cb, (void *)pass)) {</div><div class='add'>+	    BIO_free(bio);</div><div class='add'>+	    ossl_raise(ePKeyError, "i2d_PKCS8PrivateKey_bio");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	if (!PEM_write_bio_PKCS8PrivateKey(bio, pkey, enc, NULL, 0,</div><div class='add'>+					   ossl_pem_passwd_cb, (void *)pass)) {</div><div class='add'>+	    BIO_free(bio);</div><div class='add'>+	    ossl_raise(ePKeyError, "PEM_write_bio_PKCS8PrivateKey");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return ossl_membio2str(bio);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.private_to_der                   -&gt; string</div><div class='add'>+ *    pkey.private_to_der(cipher, password) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Serializes the private key to DER-encoded PKCS #8 format. If called without</div><div class='add'>+ * arguments, unencrypted PKCS #8 PrivateKeyInfo format is used. If called with</div><div class='add'>+ * a cipher name and a password, PKCS #8 EncryptedPrivateKeyInfo format with</div><div class='add'>+ * PBES2 encryption scheme is used.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_private_to_der(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    return do_pkcs8_export(argc, argv, self, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.private_to_pem                   -&gt; string</div><div class='add'>+ *    pkey.private_to_pem(cipher, password) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Serializes the private key to PEM-encoded PKCS #8 format. See #private_to_der</div><div class='add'>+ * for more details.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_private_to_pem(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    return do_pkcs8_export(argc, argv, self, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+ossl_pkey_export_spki(VALUE self, int to_der)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    BIO *bio;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    bio = BIO_new(BIO_s_mem());</div><div class='add'>+    if (!bio)</div><div class='add'>+	ossl_raise(ePKeyError, "BIO_new");</div><div class='add'>+    if (to_der) {</div><div class='add'>+	if (!i2d_PUBKEY_bio(bio, pkey)) {</div><div class='add'>+	    BIO_free(bio);</div><div class='add'>+	    ossl_raise(ePKeyError, "i2d_PUBKEY_bio");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	if (!PEM_write_bio_PUBKEY(bio, pkey)) {</div><div class='add'>+	    BIO_free(bio);</div><div class='add'>+	    ossl_raise(ePKeyError, "PEM_write_bio_PUBKEY");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    return ossl_membio2str(bio);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.public_to_der -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Serializes the public key to DER-encoded X.509 SubjectPublicKeyInfo format.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_public_to_der(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return ossl_pkey_export_spki(self, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.public_to_pem -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Serializes the public key to PEM-encoded X.509 SubjectPublicKeyInfo format.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_public_to_pem(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return ossl_pkey_export_spki(self, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *      pkey.sign(digest, data) -&gt; String</div><div class='add'>+ *      pkey.compare?(another_pkey) -&gt; true | false</div><div class='ctx'>  *</div><div class='del'>- * To sign the String _data_, _digest_, an instance of OpenSSL::Digest, must</div><div class='del'>- * be provided. The return value is again a String containing the signature.</div><div class='del'>- * A PKeyError is raised should errors occur.</div><div class='del'>- * Any previous state of the Digest instance is irrelevant to the signature</div><div class='del'>- * outcome, the digest instance is reset to its initial state during the</div><div class='del'>- * operation.</div><div class='add'>+ * Used primarily to check if an OpenSSL::X509::Certificate#public_key compares to its private key.</div><div class='ctx'>  *</div><div class='ctx'>  * == Example</div><div class='del'>- *   data = 'Sign me!'</div><div class='del'>- *   digest = OpenSSL::Digest::SHA256.new</div><div class='del'>- *   pkey = OpenSSL::PKey::RSA.new(2048)</div><div class='del'>- *   signature = pkey.sign(digest, data)</div><div class='add'>+ *   x509 = OpenSSL::X509::Certificate.new(pem_encoded_certificate)</div><div class='add'>+ *   rsa_key = OpenSSL::PKey::RSA.new(pem_encoded_private_key)</div><div class='add'>+ *</div><div class='add'>+ *   rsa_key.compare?(x509.public_key) =&gt; true | false</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-ossl_pkey_sign(VALUE self, VALUE digest, VALUE data)</div><div class='add'>+ossl_pkey_compare(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    int ret;</div><div class='add'>+    EVP_PKEY *selfPKey;</div><div class='add'>+    EVP_PKEY *otherPKey;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, selfPKey);</div><div class='add'>+    GetPKey(other, otherPKey);</div><div class='add'>+</div><div class='add'>+    /* Explicitly check the key type given EVP_PKEY_ASN1_METHOD(3)</div><div class='add'>+     * docs param_cmp could return any negative number.</div><div class='add'>+     */</div><div class='add'>+    if (EVP_PKEY_id(selfPKey) != EVP_PKEY_id(otherPKey))</div><div class='add'>+        ossl_raise(rb_eTypeError, "cannot match different PKey types");</div><div class='add'>+</div><div class='add'>+    ret = EVP_PKEY_eq(selfPKey, otherPKey);</div><div class='add'>+</div><div class='add'>+    if (ret == 0)</div><div class='add'>+        return Qfalse;</div><div class='add'>+    else if (ret == 1)</div><div class='add'>+        return Qtrue;</div><div class='add'>+    else</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_eq");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.sign(digest, data [, options]) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Hashes and signs the +data+ using a message digest algorithm +digest+ and</div><div class='add'>+ * a private key +pkey+.</div><div class='add'>+ *</div><div class='add'>+ * See #verify for the verification operation.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page EVP_DigestSign(3).</div><div class='add'>+ *</div><div class='add'>+ * +digest+::</div><div class='add'>+ *   A String that represents the message digest algorithm name, or +nil+</div><div class='add'>+ *   if the PKey type requires no digest algorithm.</div><div class='add'>+ *   For backwards compatibility, this can be an instance of OpenSSL::Digest.</div><div class='add'>+ *   Its state will not affect the signature.</div><div class='add'>+ * +data+::</div><div class='add'>+ *   A String. The data to be hashed and signed.</div><div class='add'>+ * +options+::</div><div class='add'>+ *   A Hash that contains algorithm specific control operations to \OpenSSL.</div><div class='add'>+ *   See OpenSSL's man page EVP_PKEY_CTX_ctrl_str(3) for details.</div><div class='add'>+ *   +options+ parameter was added in version 3.0.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *   data = "Sign me!"</div><div class='add'>+ *   pkey = OpenSSL::PKey.generate_key("RSA", rsa_keygen_bits: 2048)</div><div class='add'>+ *   signopts = { rsa_padding_mode: "pss" }</div><div class='add'>+ *   signature = pkey.sign("SHA256", data, signopts)</div><div class='add'>+ *</div><div class='add'>+ *   # Creates a copy of the RSA key pkey, but without the private components</div><div class='add'>+ *   pub_key = pkey.public_key</div><div class='add'>+ *   puts pub_key.verify("SHA256", signature, data, signopts) # =&gt; true</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_sign(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     EVP_PKEY *pkey;</div><div class='del'>-    const EVP_MD *md;</div><div class='add'>+    VALUE digest, data, options, sig;</div><div class='add'>+    const EVP_MD *md = NULL;</div><div class='ctx'>     EVP_MD_CTX *ctx;</div><div class='del'>-    unsigned int buf_len;</div><div class='del'>-    VALUE str;</div><div class='del'>-    int result;</div><div class='add'>+    EVP_PKEY_CTX *pctx;</div><div class='add'>+    size_t siglen;</div><div class='add'>+    int state;</div><div class='ctx'> </div><div class='ctx'>     pkey = GetPrivPKeyPtr(self);</div><div class='del'>-    md = ossl_evp_get_digestbyname(digest);</div><div class='add'>+    rb_scan_args(argc, argv, "21", &amp;digest, &amp;data, &amp;options);</div><div class='add'>+    if (!NIL_P(digest))</div><div class='add'>+        md = ossl_evp_get_digestbyname(digest);</div><div class='ctx'>     StringValue(data);</div><div class='del'>-    str = rb_str_new(0, EVP_PKEY_size(pkey));</div><div class='ctx'> </div><div class='ctx'>     ctx = EVP_MD_CTX_new();</div><div class='ctx'>     if (!ctx)</div><div class='del'>-	ossl_raise(ePKeyError, "EVP_MD_CTX_new");</div><div class='del'>-    if (!EVP_SignInit_ex(ctx, md, NULL)) {</div><div class='del'>-	EVP_MD_CTX_free(ctx);</div><div class='del'>-	ossl_raise(ePKeyError, "EVP_SignInit_ex");</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_MD_CTX_new");</div><div class='add'>+    if (EVP_DigestSignInit(ctx, &amp;pctx, md, /* engine */NULL, pkey) &lt; 1) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_DigestSignInit");</div><div class='add'>+    }</div><div class='add'>+    if (!NIL_P(options)) {</div><div class='add'>+        pkey_ctx_apply_options(pctx, options, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            EVP_MD_CTX_free(ctx);</div><div class='add'>+            rb_jump_tag(state);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(1, 1, 1) || OSSL_LIBRESSL_PREREQ(3, 4, 0)</div><div class='add'>+    if (EVP_DigestSign(ctx, NULL, &amp;siglen, (unsigned char *)RSTRING_PTR(data),</div><div class='add'>+                       RSTRING_LEN(data)) &lt; 1) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_DigestSign");</div><div class='add'>+    }</div><div class='add'>+    if (siglen &gt; LONG_MAX) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        rb_raise(ePKeyError, "signature would be too large");</div><div class='ctx'>     }</div><div class='del'>-    if (!EVP_SignUpdate(ctx, RSTRING_PTR(data), RSTRING_LEN(data))) {</div><div class='del'>-	EVP_MD_CTX_free(ctx);</div><div class='del'>-	ossl_raise(ePKeyError, "EVP_SignUpdate");</div><div class='add'>+    sig = ossl_str_new(NULL, (long)siglen, &amp;state);</div><div class='add'>+    if (state) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        rb_jump_tag(state);</div><div class='ctx'>     }</div><div class='del'>-    result = EVP_SignFinal(ctx, (unsigned char *)RSTRING_PTR(str), &amp;buf_len, pkey);</div><div class='add'>+    if (EVP_DigestSign(ctx, (unsigned char *)RSTRING_PTR(sig), &amp;siglen,</div><div class='add'>+                       (unsigned char *)RSTRING_PTR(data),</div><div class='add'>+                       RSTRING_LEN(data)) &lt; 1) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_DigestSign");</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    if (EVP_DigestSignUpdate(ctx, RSTRING_PTR(data), RSTRING_LEN(data)) &lt; 1) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_DigestSignUpdate");</div><div class='add'>+    }</div><div class='add'>+    if (EVP_DigestSignFinal(ctx, NULL, &amp;siglen) &lt; 1) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_DigestSignFinal");</div><div class='add'>+    }</div><div class='add'>+    if (siglen &gt; LONG_MAX) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        rb_raise(ePKeyError, "signature would be too large");</div><div class='add'>+    }</div><div class='add'>+    sig = ossl_str_new(NULL, (long)siglen, &amp;state);</div><div class='add'>+    if (state) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        rb_jump_tag(state);</div><div class='add'>+    }</div><div class='add'>+    if (EVP_DigestSignFinal(ctx, (unsigned char *)RSTRING_PTR(sig),</div><div class='add'>+                            &amp;siglen) &lt; 1) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_DigestSignFinal");</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='ctx'>     EVP_MD_CTX_free(ctx);</div><div class='del'>-    if (!result)</div><div class='del'>-	ossl_raise(ePKeyError, "EVP_SignFinal");</div><div class='del'>-    rb_str_set_len(str, buf_len);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='add'>+    rb_str_set_len(sig, siglen);</div><div class='add'>+    return sig;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *      pkey.verify(digest, signature, data) -&gt; String</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.verify(digest, signature, data [, options]) -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * To verify the String _signature_, _digest_, an instance of</div><div class='del'>- * OpenSSL::Digest, must be provided to re-compute the message digest of the</div><div class='del'>- * original _data_, also a String. The return value is +true+ if the</div><div class='del'>- * signature is valid, +false+ otherwise. A PKeyError is raised should errors</div><div class='del'>- * occur.</div><div class='del'>- * Any previous state of the Digest instance is irrelevant to the validation</div><div class='del'>- * outcome, the digest instance is reset to its initial state during the</div><div class='del'>- * operation.</div><div class='add'>+ * Verifies the +signature+ for the +data+ using a message digest algorithm</div><div class='add'>+ * +digest+ and a public key +pkey+.</div><div class='ctx'>  *</div><div class='del'>- * == Example</div><div class='del'>- *   data = 'Sign me!'</div><div class='del'>- *   digest = OpenSSL::Digest::SHA256.new</div><div class='del'>- *   pkey = OpenSSL::PKey::RSA.new(2048)</div><div class='del'>- *   signature = pkey.sign(digest, data)</div><div class='del'>- *   pub_key = pkey.public_key</div><div class='del'>- *   puts pub_key.verify(digest, signature, data) # =&gt; true</div><div class='add'>+ * Returns +true+ if the signature is successfully verified, +false+ otherwise.</div><div class='add'>+ * The caller must check the return value.</div><div class='add'>+ *</div><div class='add'>+ * See #sign for the signing operation and an example.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page EVP_DigestVerify(3).</div><div class='add'>+ *</div><div class='add'>+ * +digest+::</div><div class='add'>+ *   See #sign.</div><div class='add'>+ * +signature+::</div><div class='add'>+ *   A String containing the signature to be verified.</div><div class='add'>+ * +data+::</div><div class='add'>+ *   See #sign.</div><div class='add'>+ * +options+::</div><div class='add'>+ *   See #sign. +options+ parameter was added in version 3.0.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-ossl_pkey_verify(VALUE self, VALUE digest, VALUE sig, VALUE data)</div><div class='add'>+ossl_pkey_verify(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     EVP_PKEY *pkey;</div><div class='del'>-    const EVP_MD *md;</div><div class='add'>+    VALUE digest, sig, data, options;</div><div class='add'>+    const EVP_MD *md = NULL;</div><div class='ctx'>     EVP_MD_CTX *ctx;</div><div class='del'>-    int siglen, result;</div><div class='add'>+    EVP_PKEY_CTX *pctx;</div><div class='add'>+    int state, ret;</div><div class='ctx'> </div><div class='ctx'>     GetPKey(self, pkey);</div><div class='add'>+    rb_scan_args(argc, argv, "31", &amp;digest, &amp;sig, &amp;data, &amp;options);</div><div class='ctx'>     ossl_pkey_check_public_key(pkey);</div><div class='del'>-    md = ossl_evp_get_digestbyname(digest);</div><div class='add'>+    if (!NIL_P(digest))</div><div class='add'>+        md = ossl_evp_get_digestbyname(digest);</div><div class='ctx'>     StringValue(sig);</div><div class='del'>-    siglen = RSTRING_LENINT(sig);</div><div class='ctx'>     StringValue(data);</div><div class='ctx'> </div><div class='ctx'>     ctx = EVP_MD_CTX_new();</div><div class='ctx'>     if (!ctx)</div><div class='del'>-	ossl_raise(ePKeyError, "EVP_MD_CTX_new");</div><div class='del'>-    if (!EVP_VerifyInit_ex(ctx, md, NULL)) {</div><div class='del'>-	EVP_MD_CTX_free(ctx);</div><div class='del'>-	ossl_raise(ePKeyError, "EVP_VerifyInit_ex");</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_MD_CTX_new");</div><div class='add'>+    if (EVP_DigestVerifyInit(ctx, &amp;pctx, md, /* engine */NULL, pkey) &lt; 1) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_DigestVerifyInit");</div><div class='ctx'>     }</div><div class='del'>-    if (!EVP_VerifyUpdate(ctx, RSTRING_PTR(data), RSTRING_LEN(data))) {</div><div class='del'>-	EVP_MD_CTX_free(ctx);</div><div class='del'>-	ossl_raise(ePKeyError, "EVP_VerifyUpdate");</div><div class='add'>+    if (!NIL_P(options)) {</div><div class='add'>+        pkey_ctx_apply_options(pctx, options, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            EVP_MD_CTX_free(ctx);</div><div class='add'>+            rb_jump_tag(state);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    result = EVP_VerifyFinal(ctx, (unsigned char *)RSTRING_PTR(sig), siglen, pkey);</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(1, 1, 1) || OSSL_LIBRESSL_PREREQ(3, 4, 0)</div><div class='add'>+    ret = EVP_DigestVerify(ctx, (unsigned char *)RSTRING_PTR(sig),</div><div class='add'>+                           RSTRING_LEN(sig), (unsigned char *)RSTRING_PTR(data),</div><div class='add'>+                           RSTRING_LEN(data));</div><div class='ctx'>     EVP_MD_CTX_free(ctx);</div><div class='del'>-    switch (result) {</div><div class='del'>-    case 0:</div><div class='del'>-	ossl_clear_error();</div><div class='del'>-	return Qfalse;</div><div class='del'>-    case 1:</div><div class='del'>-	return Qtrue;</div><div class='del'>-    default:</div><div class='del'>-	ossl_raise(ePKeyError, "EVP_VerifyFinal");</div><div class='add'>+    if (ret &lt; 0)</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_DigestVerify");</div><div class='add'>+#else</div><div class='add'>+    if (EVP_DigestVerifyUpdate(ctx, RSTRING_PTR(data), RSTRING_LEN(data)) &lt; 1) {</div><div class='add'>+        EVP_MD_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_DigestVerifyUpdate");</div><div class='add'>+    }</div><div class='add'>+    ret = EVP_DigestVerifyFinal(ctx, (unsigned char *)RSTRING_PTR(sig),</div><div class='add'>+                                RSTRING_LEN(sig));</div><div class='add'>+    EVP_MD_CTX_free(ctx);</div><div class='add'>+    if (ret &lt; 0)</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_DigestVerifyFinal");</div><div class='add'>+#endif</div><div class='add'>+    if (ret)</div><div class='add'>+        return Qtrue;</div><div class='add'>+    else {</div><div class='add'>+        ossl_clear_error();</div><div class='add'>+        return Qfalse;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.sign_raw(digest, data [, options]) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Signs +data+ using a private key +pkey+. Unlike #sign, +data+ will not be</div><div class='add'>+ * hashed by +digest+ automatically.</div><div class='add'>+ *</div><div class='add'>+ * See #verify_raw for the verification operation.</div><div class='add'>+ *</div><div class='add'>+ * Added in version 3.0. See also the man page EVP_PKEY_sign(3).</div><div class='add'>+ *</div><div class='add'>+ * +digest+::</div><div class='add'>+ *   A String that represents the message digest algorithm name, or +nil+</div><div class='add'>+ *   if the PKey type requires no digest algorithm.</div><div class='add'>+ *   Although this method will not hash +data+ with it, this parameter may still</div><div class='add'>+ *   be required depending on the signature algorithm.</div><div class='add'>+ * +data+::</div><div class='add'>+ *   A String. The data to be signed.</div><div class='add'>+ * +options+::</div><div class='add'>+ *   A Hash that contains algorithm specific control operations to \OpenSSL.</div><div class='add'>+ *   See OpenSSL's man page EVP_PKEY_CTX_ctrl_str(3) for details.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *   data = "Sign me!"</div><div class='add'>+ *   hash = OpenSSL::Digest.digest("SHA256", data)</div><div class='add'>+ *   pkey = OpenSSL::PKey.generate_key("RSA", rsa_keygen_bits: 2048)</div><div class='add'>+ *   signopts = { rsa_padding_mode: "pss" }</div><div class='add'>+ *   signature = pkey.sign_raw("SHA256", hash, signopts)</div><div class='add'>+ *</div><div class='add'>+ *   # Creates a copy of the RSA key pkey, but without the private components</div><div class='add'>+ *   pub_key = pkey.public_key</div><div class='add'>+ *   puts pub_key.verify_raw("SHA256", signature, hash, signopts) # =&gt; true</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_sign_raw(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    VALUE digest, data, options, sig;</div><div class='add'>+    const EVP_MD *md = NULL;</div><div class='add'>+    EVP_PKEY_CTX *ctx;</div><div class='add'>+    size_t outlen;</div><div class='add'>+    int state;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    rb_scan_args(argc, argv, "21", &amp;digest, &amp;data, &amp;options);</div><div class='add'>+    if (!NIL_P(digest))</div><div class='add'>+        md = ossl_evp_get_digestbyname(digest);</div><div class='add'>+    StringValue(data);</div><div class='add'>+</div><div class='add'>+    ctx = EVP_PKEY_CTX_new(pkey, /* engine */NULL);</div><div class='add'>+    if (!ctx)</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_CTX_new");</div><div class='add'>+    if (EVP_PKEY_sign_init(ctx) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_sign_init");</div><div class='add'>+    }</div><div class='add'>+    if (md &amp;&amp; EVP_PKEY_CTX_set_signature_md(ctx, md) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_CTX_set_signature_md");</div><div class='add'>+    }</div><div class='add'>+    if (!NIL_P(options)) {</div><div class='add'>+        pkey_ctx_apply_options(ctx, options, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            EVP_PKEY_CTX_free(ctx);</div><div class='add'>+            rb_jump_tag(state);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (EVP_PKEY_sign(ctx, NULL, &amp;outlen, (unsigned char *)RSTRING_PTR(data),</div><div class='add'>+                      RSTRING_LEN(data)) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_sign");</div><div class='add'>+    }</div><div class='add'>+    if (outlen &gt; LONG_MAX) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        rb_raise(ePKeyError, "signature would be too large");</div><div class='add'>+    }</div><div class='add'>+    sig = ossl_str_new(NULL, (long)outlen, &amp;state);</div><div class='add'>+    if (state) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        rb_jump_tag(state);</div><div class='add'>+    }</div><div class='add'>+    if (EVP_PKEY_sign(ctx, (unsigned char *)RSTRING_PTR(sig), &amp;outlen,</div><div class='add'>+                      (unsigned char *)RSTRING_PTR(data),</div><div class='add'>+                      RSTRING_LEN(data)) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_sign");</div><div class='add'>+    }</div><div class='add'>+    EVP_PKEY_CTX_free(ctx);</div><div class='add'>+    rb_str_set_len(sig, outlen);</div><div class='add'>+    return sig;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.verify_raw(digest, signature, data [, options]) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Verifies the +signature+ for the +data+ using a public key +pkey+. Unlike</div><div class='add'>+ * #verify, this method will not hash +data+ with +digest+ automatically.</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if the signature is successfully verified, +false+ otherwise.</div><div class='add'>+ * The caller must check the return value.</div><div class='add'>+ *</div><div class='add'>+ * See #sign_raw for the signing operation and an example code.</div><div class='add'>+ *</div><div class='add'>+ * Added in version 3.0. See also the man page EVP_PKEY_verify(3).</div><div class='add'>+ *</div><div class='add'>+ * +signature+::</div><div class='add'>+ *   A String containing the signature to be verified.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_verify_raw(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    VALUE digest, sig, data, options;</div><div class='add'>+    const EVP_MD *md = NULL;</div><div class='add'>+    EVP_PKEY_CTX *ctx;</div><div class='add'>+    int state, ret;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    rb_scan_args(argc, argv, "31", &amp;digest, &amp;sig, &amp;data, &amp;options);</div><div class='add'>+    ossl_pkey_check_public_key(pkey);</div><div class='add'>+    if (!NIL_P(digest))</div><div class='add'>+        md = ossl_evp_get_digestbyname(digest);</div><div class='add'>+    StringValue(sig);</div><div class='add'>+    StringValue(data);</div><div class='add'>+</div><div class='add'>+    ctx = EVP_PKEY_CTX_new(pkey, /* engine */NULL);</div><div class='add'>+    if (!ctx)</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_CTX_new");</div><div class='add'>+    if (EVP_PKEY_verify_init(ctx) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_verify_init");</div><div class='add'>+    }</div><div class='add'>+    if (md &amp;&amp; EVP_PKEY_CTX_set_signature_md(ctx, md) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_CTX_set_signature_md");</div><div class='add'>+    }</div><div class='add'>+    if (!NIL_P(options)) {</div><div class='add'>+        pkey_ctx_apply_options(ctx, options, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            EVP_PKEY_CTX_free(ctx);</div><div class='add'>+            rb_jump_tag(state);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    ret = EVP_PKEY_verify(ctx, (unsigned char *)RSTRING_PTR(sig),</div><div class='add'>+                          RSTRING_LEN(sig),</div><div class='add'>+                          (unsigned char *)RSTRING_PTR(data),</div><div class='add'>+                          RSTRING_LEN(data));</div><div class='add'>+    EVP_PKEY_CTX_free(ctx);</div><div class='add'>+    if (ret &lt; 0)</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_verify");</div><div class='add'>+</div><div class='add'>+    if (ret)</div><div class='add'>+        return Qtrue;</div><div class='add'>+    else {</div><div class='add'>+        ossl_clear_error();</div><div class='add'>+        return Qfalse;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.verify_recover(digest, signature [, options]) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Recovers the signed data from +signature+ using a public key +pkey+. Not all</div><div class='add'>+ * signature algorithms support this operation.</div><div class='add'>+ *</div><div class='add'>+ * Added in version 3.0. See also the man page EVP_PKEY_verify_recover(3).</div><div class='add'>+ *</div><div class='add'>+ * +signature+::</div><div class='add'>+ *   A String containing the signature to be verified.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_verify_recover(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    VALUE digest, sig, options, out;</div><div class='add'>+    const EVP_MD *md = NULL;</div><div class='add'>+    EVP_PKEY_CTX *ctx;</div><div class='add'>+    int state;</div><div class='add'>+    size_t outlen;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    rb_scan_args(argc, argv, "21", &amp;digest, &amp;sig, &amp;options);</div><div class='add'>+    ossl_pkey_check_public_key(pkey);</div><div class='add'>+    if (!NIL_P(digest))</div><div class='add'>+        md = ossl_evp_get_digestbyname(digest);</div><div class='add'>+    StringValue(sig);</div><div class='add'>+</div><div class='add'>+    ctx = EVP_PKEY_CTX_new(pkey, /* engine */NULL);</div><div class='add'>+    if (!ctx)</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_CTX_new");</div><div class='add'>+    if (EVP_PKEY_verify_recover_init(ctx) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_verify_recover_init");</div><div class='add'>+    }</div><div class='add'>+    if (md &amp;&amp; EVP_PKEY_CTX_set_signature_md(ctx, md) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_CTX_set_signature_md");</div><div class='add'>+    }</div><div class='add'>+    if (!NIL_P(options)) {</div><div class='add'>+        pkey_ctx_apply_options(ctx, options, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            EVP_PKEY_CTX_free(ctx);</div><div class='add'>+            rb_jump_tag(state);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (EVP_PKEY_verify_recover(ctx, NULL, &amp;outlen,</div><div class='add'>+                                (unsigned char *)RSTRING_PTR(sig),</div><div class='add'>+                                RSTRING_LEN(sig)) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_verify_recover");</div><div class='add'>+    }</div><div class='add'>+    out = ossl_str_new(NULL, (long)outlen, &amp;state);</div><div class='add'>+    if (state) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        rb_jump_tag(state);</div><div class='add'>+    }</div><div class='add'>+    if (EVP_PKEY_verify_recover(ctx, (unsigned char *)RSTRING_PTR(out), &amp;outlen,</div><div class='add'>+                                (unsigned char *)RSTRING_PTR(sig),</div><div class='add'>+                                RSTRING_LEN(sig)) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_verify_recover");</div><div class='add'>+    }</div><div class='add'>+    EVP_PKEY_CTX_free(ctx);</div><div class='add'>+    rb_str_set_len(out, outlen);</div><div class='add'>+    return out;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.derive(peer_pkey) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Derives a shared secret from _pkey_ and _peer_pkey_. _pkey_ must contain</div><div class='add'>+ * the private components, _peer_pkey_ must contain the public components.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_derive(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey, *peer_pkey;</div><div class='add'>+    EVP_PKEY_CTX *ctx;</div><div class='add'>+    VALUE peer_pkey_obj, str;</div><div class='add'>+    size_t keylen;</div><div class='add'>+    int state;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    rb_scan_args(argc, argv, "1", &amp;peer_pkey_obj);</div><div class='add'>+    GetPKey(peer_pkey_obj, peer_pkey);</div><div class='add'>+</div><div class='add'>+    ctx = EVP_PKEY_CTX_new(pkey, /* engine */NULL);</div><div class='add'>+    if (!ctx)</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_CTX_new");</div><div class='add'>+    if (EVP_PKEY_derive_init(ctx) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_derive_init");</div><div class='add'>+    }</div><div class='add'>+    if (EVP_PKEY_derive_set_peer(ctx, peer_pkey) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_derive_set_peer");</div><div class='add'>+    }</div><div class='add'>+    if (EVP_PKEY_derive(ctx, NULL, &amp;keylen) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_derive");</div><div class='add'>+    }</div><div class='add'>+    if (keylen &gt; LONG_MAX)</div><div class='add'>+        rb_raise(ePKeyError, "derived key would be too large");</div><div class='add'>+    str = ossl_str_new(NULL, (long)keylen, &amp;state);</div><div class='add'>+    if (state) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        rb_jump_tag(state);</div><div class='add'>+    }</div><div class='add'>+    if (EVP_PKEY_derive(ctx, (unsigned char *)RSTRING_PTR(str), &amp;keylen) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_derive");</div><div class='add'>+    }</div><div class='add'>+    EVP_PKEY_CTX_free(ctx);</div><div class='add'>+    rb_str_set_len(str, keylen);</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.encrypt(data [, options]) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Performs a public key encryption operation using +pkey+.</div><div class='add'>+ *</div><div class='add'>+ * See #decrypt for the reverse operation.</div><div class='add'>+ *</div><div class='add'>+ * Added in version 3.0. See also the man page EVP_PKEY_encrypt(3).</div><div class='add'>+ *</div><div class='add'>+ * +data+::</div><div class='add'>+ *   A String to be encrypted.</div><div class='add'>+ * +options+::</div><div class='add'>+ *   A Hash that contains algorithm specific control operations to \OpenSSL.</div><div class='add'>+ *   See OpenSSL's man page EVP_PKEY_CTX_ctrl_str(3) for details.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *   pkey = OpenSSL::PKey.generate_key("RSA", rsa_keygen_bits: 2048)</div><div class='add'>+ *   data = "secret data"</div><div class='add'>+ *   encrypted = pkey.encrypt(data, rsa_padding_mode: "oaep")</div><div class='add'>+ *   decrypted = pkey.decrypt(data, rsa_padding_mode: "oaep")</div><div class='add'>+ *   p decrypted #=&gt; "secret data"</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_encrypt(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    EVP_PKEY_CTX *ctx;</div><div class='add'>+    VALUE data, options, str;</div><div class='add'>+    size_t outlen;</div><div class='add'>+    int state;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    rb_scan_args(argc, argv, "11", &amp;data, &amp;options);</div><div class='add'>+    StringValue(data);</div><div class='add'>+</div><div class='add'>+    ctx = EVP_PKEY_CTX_new(pkey, /* engine */NULL);</div><div class='add'>+    if (!ctx)</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_CTX_new");</div><div class='add'>+    if (EVP_PKEY_encrypt_init(ctx) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_encrypt_init");</div><div class='add'>+    }</div><div class='add'>+    if (!NIL_P(options)) {</div><div class='add'>+        pkey_ctx_apply_options(ctx, options, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            EVP_PKEY_CTX_free(ctx);</div><div class='add'>+            rb_jump_tag(state);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (EVP_PKEY_encrypt(ctx, NULL, &amp;outlen,</div><div class='add'>+                         (unsigned char *)RSTRING_PTR(data),</div><div class='add'>+                         RSTRING_LEN(data)) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_encrypt");</div><div class='add'>+    }</div><div class='add'>+    if (outlen &gt; LONG_MAX) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        rb_raise(ePKeyError, "encrypted data would be too large");</div><div class='add'>+    }</div><div class='add'>+    str = ossl_str_new(NULL, (long)outlen, &amp;state);</div><div class='add'>+    if (state) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        rb_jump_tag(state);</div><div class='add'>+    }</div><div class='add'>+    if (EVP_PKEY_encrypt(ctx, (unsigned char *)RSTRING_PTR(str), &amp;outlen,</div><div class='add'>+                         (unsigned char *)RSTRING_PTR(data),</div><div class='add'>+                         RSTRING_LEN(data)) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_encrypt");</div><div class='add'>+    }</div><div class='add'>+    EVP_PKEY_CTX_free(ctx);</div><div class='add'>+    rb_str_set_len(str, outlen);</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    pkey.decrypt(data [, options]) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Performs a public key decryption operation using +pkey+.</div><div class='add'>+ *</div><div class='add'>+ * See #encrypt for a description of the parameters and an example.</div><div class='add'>+ *</div><div class='add'>+ * Added in version 3.0. See also the man page EVP_PKEY_decrypt(3).</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_pkey_decrypt(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    EVP_PKEY_CTX *ctx;</div><div class='add'>+    VALUE data, options, str;</div><div class='add'>+    size_t outlen;</div><div class='add'>+    int state;</div><div class='add'>+</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    rb_scan_args(argc, argv, "11", &amp;data, &amp;options);</div><div class='add'>+    StringValue(data);</div><div class='add'>+</div><div class='add'>+    ctx = EVP_PKEY_CTX_new(pkey, /* engine */NULL);</div><div class='add'>+    if (!ctx)</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_CTX_new");</div><div class='add'>+    if (EVP_PKEY_decrypt_init(ctx) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_decrypt_init");</div><div class='add'>+    }</div><div class='add'>+    if (!NIL_P(options)) {</div><div class='add'>+        pkey_ctx_apply_options(ctx, options, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            EVP_PKEY_CTX_free(ctx);</div><div class='add'>+            rb_jump_tag(state);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (EVP_PKEY_decrypt(ctx, NULL, &amp;outlen,</div><div class='add'>+                         (unsigned char *)RSTRING_PTR(data),</div><div class='add'>+                         RSTRING_LEN(data)) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_decrypt");</div><div class='add'>+    }</div><div class='add'>+    if (outlen &gt; LONG_MAX) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        rb_raise(ePKeyError, "decrypted data would be too large");</div><div class='add'>+    }</div><div class='add'>+    str = ossl_str_new(NULL, (long)outlen, &amp;state);</div><div class='add'>+    if (state) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        rb_jump_tag(state);</div><div class='add'>+    }</div><div class='add'>+    if (EVP_PKEY_decrypt(ctx, (unsigned char *)RSTRING_PTR(str), &amp;outlen,</div><div class='add'>+                         (unsigned char *)RSTRING_PTR(data),</div><div class='add'>+                         RSTRING_LEN(data)) &lt;= 0) {</div><div class='add'>+        EVP_PKEY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(ePKeyError, "EVP_PKEY_decrypt");</div><div class='add'>+    }</div><div class='add'>+    EVP_PKEY_CTX_free(ctx);</div><div class='add'>+    rb_str_set_len(str, outlen);</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  * INIT</div><div class='ctx'>  */</div><div class='ctx'> void</div><div class='hunk'>@@ -488,12 +1584,33 @@ Init_ossl_pkey(void)</div><div class='ctx'>     cPKey = rb_define_class_under(mPKey, "PKey", rb_cObject);</div><div class='ctx'> </div><div class='ctx'>     rb_define_module_function(mPKey, "read", ossl_pkey_new_from_data, -1);</div><div class='add'>+    rb_define_module_function(mPKey, "generate_parameters", ossl_pkey_s_generate_parameters, -1);</div><div class='add'>+    rb_define_module_function(mPKey, "generate_key", ossl_pkey_s_generate_key, -1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_alloc_func(cPKey, ossl_pkey_alloc);</div><div class='ctx'>     rb_define_method(cPKey, "initialize", ossl_pkey_initialize, 0);</div><div class='add'>+#ifdef HAVE_EVP_PKEY_DUP</div><div class='add'>+    rb_define_method(cPKey, "initialize_copy", ossl_pkey_initialize_copy, 1);</div><div class='add'>+#else</div><div class='add'>+    rb_undef_method(cPKey, "initialize_copy");</div><div class='add'>+#endif</div><div class='add'>+    rb_define_method(cPKey, "oid", ossl_pkey_oid, 0);</div><div class='add'>+    rb_define_method(cPKey, "inspect", ossl_pkey_inspect, 0);</div><div class='add'>+    rb_define_method(cPKey, "to_text", ossl_pkey_to_text, 0);</div><div class='add'>+    rb_define_method(cPKey, "private_to_der", ossl_pkey_private_to_der, -1);</div><div class='add'>+    rb_define_method(cPKey, "private_to_pem", ossl_pkey_private_to_pem, -1);</div><div class='add'>+    rb_define_method(cPKey, "public_to_der", ossl_pkey_public_to_der, 0);</div><div class='add'>+    rb_define_method(cPKey, "public_to_pem", ossl_pkey_public_to_pem, 0);</div><div class='add'>+    rb_define_method(cPKey, "compare?", ossl_pkey_compare, 1);</div><div class='ctx'> </div><div class='del'>-    rb_define_method(cPKey, "sign", ossl_pkey_sign, 2);</div><div class='del'>-    rb_define_method(cPKey, "verify", ossl_pkey_verify, 3);</div><div class='add'>+    rb_define_method(cPKey, "sign", ossl_pkey_sign, -1);</div><div class='add'>+    rb_define_method(cPKey, "verify", ossl_pkey_verify, -1);</div><div class='add'>+    rb_define_method(cPKey, "sign_raw", ossl_pkey_sign_raw, -1);</div><div class='add'>+    rb_define_method(cPKey, "verify_raw", ossl_pkey_verify_raw, -1);</div><div class='add'>+    rb_define_method(cPKey, "verify_recover", ossl_pkey_verify_recover, -1);</div><div class='add'>+    rb_define_method(cPKey, "derive", ossl_pkey_derive, -1);</div><div class='add'>+    rb_define_method(cPKey, "encrypt", ossl_pkey_encrypt, -1);</div><div class='add'>+    rb_define_method(cPKey, "decrypt", ossl_pkey_decrypt, -1);</div><div class='ctx'> </div><div class='ctx'>     id_private_q = rb_intern("private?");</div><div class='ctx'> </div><div class='head'>diff --git a/ext/openssl/ossl_pkey.h b/ext/openssl/ossl_pkey.h<br/>index 0db59305f7..10669b824c 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_pkey.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_pkey.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_pkey.h</a></div><div class='hunk'>@@ -7,27 +7,18 @@</div><div class='ctx'>  * This program is licensed under the same licence as Ruby.</div><div class='ctx'>  * (See the file 'LICENCE'.)</div><div class='ctx'>  */</div><div class='del'>-#if !defined(_OSSL_PKEY_H_)</div><div class='del'>-#define _OSSL_PKEY_H_</div><div class='add'>+#if !defined(OSSL_PKEY_H)</div><div class='add'>+#define OSSL_PKEY_H</div><div class='ctx'> </div><div class='ctx'> extern VALUE mPKey;</div><div class='ctx'> extern VALUE cPKey;</div><div class='ctx'> extern VALUE ePKeyError;</div><div class='ctx'> extern const rb_data_type_t ossl_evp_pkey_type;</div><div class='ctx'> </div><div class='del'>-#define OSSL_PKEY_SET_PRIVATE(obj) rb_iv_set((obj), "private", Qtrue)</div><div class='del'>-#define OSSL_PKEY_SET_PUBLIC(obj)  rb_iv_set((obj), "private", Qfalse)</div><div class='del'>-#define OSSL_PKEY_IS_PRIVATE(obj)  (rb_iv_get((obj), "private") == Qtrue)</div><div class='add'>+/* For ENGINE */</div><div class='add'>+#define OSSL_PKEY_SET_PRIVATE(obj) rb_ivar_set((obj), rb_intern("private"), Qtrue)</div><div class='add'>+#define OSSL_PKEY_IS_PRIVATE(obj)  (rb_attr_get((obj), rb_intern("private")) == Qtrue)</div><div class='ctx'> </div><div class='del'>-#define NewPKey(klass) \</div><div class='del'>-    TypedData_Wrap_Struct((klass), &amp;ossl_evp_pkey_type, 0)</div><div class='del'>-#define SetPKey(obj, pkey) do { \</div><div class='del'>-    if (!(pkey)) { \</div><div class='del'>-	rb_raise(rb_eRuntimeError, "PKEY wasn't initialized!"); \</div><div class='del'>-    } \</div><div class='del'>-    RTYPEDDATA_DATA(obj) = (pkey); \</div><div class='del'>-    OSSL_PKEY_SET_PUBLIC(obj); \</div><div class='del'>-} while (0)</div><div class='ctx'> #define GetPKey(obj, pkey) do {\</div><div class='ctx'>     TypedData_Get_Struct((obj), EVP_PKEY, &amp;ossl_evp_pkey_type, (pkey)); \</div><div class='ctx'>     if (!(pkey)) { \</div><div class='hunk'>@@ -35,19 +26,27 @@ extern const rb_data_type_t ossl_evp_pkey_type;</div><div class='ctx'>     } \</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='del'>-struct ossl_generate_cb_arg {</div><div class='del'>-    int yield;</div><div class='del'>-    int interrupted;</div><div class='del'>-    int state;</div><div class='del'>-};</div><div class='del'>-int ossl_generate_cb_2(int p, int n, BN_GENCB *cb);</div><div class='del'>-void ossl_generate_cb_stop(void *ptr);</div><div class='del'>-</div><div class='add'>+/* Takes ownership of the EVP_PKEY */</div><div class='ctx'> VALUE ossl_pkey_new(EVP_PKEY *);</div><div class='ctx'> void ossl_pkey_check_public_key(const EVP_PKEY *);</div><div class='add'>+EVP_PKEY *ossl_pkey_read_generic(BIO *, VALUE);</div><div class='ctx'> EVP_PKEY *GetPKeyPtr(VALUE);</div><div class='ctx'> EVP_PKEY *DupPKeyPtr(VALUE);</div><div class='ctx'> EVP_PKEY *GetPrivPKeyPtr(VALUE);</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Serializes _self_ in X.509 SubjectPublicKeyInfo format and returns the</div><div class='add'>+ * resulting String. Sub-classes use this when overriding #to_der.</div><div class='add'>+ */</div><div class='add'>+VALUE ossl_pkey_export_spki(VALUE self, int to_der);</div><div class='add'>+/*</div><div class='add'>+ * Serializes the private key _self_ in the traditional private key format</div><div class='add'>+ * and returns the resulting String. Sub-classes use this when overriding</div><div class='add'>+ * #to_der.</div><div class='add'>+ */</div><div class='add'>+VALUE ossl_pkey_export_traditional(int argc, VALUE *argv, VALUE self,</div><div class='add'>+				   int to_der);</div><div class='add'>+</div><div class='ctx'> void Init_ossl_pkey(void);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -56,7 +55,6 @@ void Init_ossl_pkey(void);</div><div class='ctx'> extern VALUE cRSA;</div><div class='ctx'> extern VALUE eRSAError;</div><div class='ctx'> </div><div class='del'>-VALUE ossl_rsa_new(EVP_PKEY *);</div><div class='ctx'> void Init_ossl_rsa(void);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -65,7 +63,6 @@ void Init_ossl_rsa(void);</div><div class='ctx'> extern VALUE cDSA;</div><div class='ctx'> extern VALUE eDSAError;</div><div class='ctx'> </div><div class='del'>-VALUE ossl_dsa_new(EVP_PKEY *);</div><div class='ctx'> void Init_ossl_dsa(void);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -74,7 +71,6 @@ void Init_ossl_dsa(void);</div><div class='ctx'> extern VALUE cDH;</div><div class='ctx'> extern VALUE eDHError;</div><div class='ctx'> </div><div class='del'>-VALUE ossl_dh_new(EVP_PKEY *);</div><div class='ctx'> void Init_ossl_dh(void);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -96,7 +92,7 @@ void Init_ossl_ec(void);</div><div class='ctx'>  */									\</div><div class='ctx'> static VALUE ossl_##_keytype##_get_##_name(VALUE self)			\</div><div class='ctx'> {									\</div><div class='del'>-	_type *obj;							\</div><div class='add'>+	const _type *obj;						\</div><div class='ctx'> 	const BIGNUM *bn;						\</div><div class='ctx'> 									\</div><div class='ctx'> 	Get##_type(self, obj);						\</div><div class='hunk'>@@ -120,6 +116,7 @@ static VALUE ossl_##_keytype##_get_##_name(VALUE self)			\</div><div class='ctx'> 	OSSL_PKEY_BN_DEF_GETTER0(_keytype, _type, a2,			\</div><div class='ctx'> 		_type##_get0_##_group(obj, NULL, &amp;bn))</div><div class='ctx'> </div><div class='add'>+#if !OSSL_OPENSSL_PREREQ(3, 0, 0)</div><div class='ctx'> #define OSSL_PKEY_BN_DEF_SETTER3(_keytype, _type, _group, a1, a2, a3)	\</div><div class='ctx'> /*									\</div><div class='ctx'>  *  call-seq:								\</div><div class='hunk'>@@ -177,36 +174,22 @@ static VALUE ossl_##_keytype##_set_##_group(VALUE self, VALUE v1, VALUE v2) \</div><div class='ctx'> 	}								\</div><div class='ctx'> 	return self;							\</div><div class='ctx'> }</div><div class='add'>+#else</div><div class='add'>+#define OSSL_PKEY_BN_DEF_SETTER3(_keytype, _type, _group, a1, a2, a3)	\</div><div class='add'>+static VALUE ossl_##_keytype##_set_##_group(VALUE self, VALUE v1, VALUE v2, VALUE v3) \</div><div class='add'>+{									\</div><div class='add'>+        rb_raise(ePKeyError,						\</div><div class='add'>+                 #_keytype"#set_"#_group"= is incompatible with OpenSSL 3.0"); \</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-#define OSSL_PKEY_BN_DEF_SETTER_OLD(_keytype, _type, _group, _name)	\</div><div class='del'>-/*									\</div><div class='del'>- *  call-seq:								\</div><div class='del'>- *     _keytype##.##_name = bn -&gt; bn					\</div><div class='del'>- */									\</div><div class='del'>-static VALUE ossl_##_keytype##_set_##_name(VALUE self, VALUE bignum)	\</div><div class='add'>+#define OSSL_PKEY_BN_DEF_SETTER2(_keytype, _type, _group, a1, a2)	\</div><div class='add'>+static VALUE ossl_##_keytype##_set_##_group(VALUE self, VALUE v1, VALUE v2) \</div><div class='ctx'> {									\</div><div class='del'>-	_type *obj;							\</div><div class='del'>-	BIGNUM *bn;							\</div><div class='del'>-									\</div><div class='del'>-	rb_warning("#"#_name"= is deprecated; use #set_"#_group);	\</div><div class='del'>-	Get##_type(self, obj);						\</div><div class='del'>-	if (NIL_P(bignum)) {						\</div><div class='del'>-		BN_clear_free(obj-&gt;_name);				\</div><div class='del'>-		obj-&gt;_name = NULL;					\</div><div class='del'>-		return Qnil;						\</div><div class='del'>-	}								\</div><div class='del'>-									\</div><div class='del'>-	bn = GetBNPtr(bignum);						\</div><div class='del'>-	if (obj-&gt;_name == NULL)						\</div><div class='del'>-		obj-&gt;_name = BN_new();					\</div><div class='del'>-	if (obj-&gt;_name == NULL)						\</div><div class='del'>-		ossl_raise(eBNError, NULL);				\</div><div class='del'>-	if (BN_copy(obj-&gt;_name, bn) == NULL)				\</div><div class='del'>-		ossl_raise(eBNError, NULL);				\</div><div class='del'>-	return bignum;							\</div><div class='add'>+        rb_raise(ePKeyError,						\</div><div class='add'>+                 #_keytype"#set_"#_group"= is incompatible with OpenSSL 3.0"); \</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_OPAQUE_OPENSSL) /* OpenSSL 1.1.0 */</div><div class='ctx'> #define OSSL_PKEY_BN_DEF3(_keytype, _type, _group, a1, a2, a3)		\</div><div class='ctx'> 	OSSL_PKEY_BN_DEF_GETTER3(_keytype, _type, _group, a1, a2, a3)	\</div><div class='ctx'> 	OSSL_PKEY_BN_DEF_SETTER3(_keytype, _type, _group, a1, a2, a3)</div><div class='hunk'>@@ -218,24 +201,4 @@ static VALUE ossl_##_keytype##_set_##_name(VALUE self, VALUE bignum)	\</div><div class='ctx'> #define DEF_OSSL_PKEY_BN(class, keytype, name)				\</div><div class='ctx'> 	rb_define_method((class), #name, ossl_##keytype##_get_##name, 0)</div><div class='ctx'> </div><div class='del'>-#else</div><div class='del'>-#define OSSL_PKEY_BN_DEF3(_keytype, _type, _group, a1, a2, a3)		\</div><div class='del'>-	OSSL_PKEY_BN_DEF_GETTER3(_keytype, _type, _group, a1, a2, a3)	\</div><div class='del'>-	OSSL_PKEY_BN_DEF_SETTER3(_keytype, _type, _group, a1, a2, a3)	\</div><div class='del'>-	OSSL_PKEY_BN_DEF_SETTER_OLD(_keytype, _type, _group, a1)	\</div><div class='del'>-	OSSL_PKEY_BN_DEF_SETTER_OLD(_keytype, _type, _group, a2)	\</div><div class='del'>-	OSSL_PKEY_BN_DEF_SETTER_OLD(_keytype, _type, _group, a3)</div><div class='del'>-</div><div class='del'>-#define OSSL_PKEY_BN_DEF2(_keytype, _type, _group, a1, a2)		\</div><div class='del'>-	OSSL_PKEY_BN_DEF_GETTER2(_keytype, _type, _group, a1, a2)	\</div><div class='del'>-	OSSL_PKEY_BN_DEF_SETTER2(_keytype, _type, _group, a1, a2)	\</div><div class='del'>-	OSSL_PKEY_BN_DEF_SETTER_OLD(_keytype, _type, _group, a1)	\</div><div class='del'>-	OSSL_PKEY_BN_DEF_SETTER_OLD(_keytype, _type, _group, a2)</div><div class='del'>-</div><div class='del'>-#define DEF_OSSL_PKEY_BN(class, keytype, name) do {			\</div><div class='del'>-	rb_define_method((class), #name, ossl_##keytype##_get_##name, 0);\</div><div class='del'>-	rb_define_method((class), #name "=", ossl_##keytype##_set_##name, 1);\</div><div class='del'>-} while (0)</div><div class='del'>-#endif /* HAVE_OPAQUE_OPENSSL */</div><div class='del'>-</div><div class='del'>-#endif /* _OSSL_PKEY_H_ */</div><div class='add'>+#endif /* OSSL_PKEY_H */</div><div class='head'>diff --git a/ext/openssl/ossl_pkey_dh.c b/ext/openssl/ossl_pkey_dh.c<br/>index bf4e3f9322..83c41378fe 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_pkey_dh.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey_dh.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_pkey_dh.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_pkey_dh.c</a></div><div class='hunk'>@@ -30,216 +30,104 @@ VALUE cDH;</div><div class='ctx'> VALUE eDHError;</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Public</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-dh_instance(VALUE klass, DH *dh)</div><div class='del'>-{</div><div class='del'>-    EVP_PKEY *pkey;</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    if (!dh) {</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    obj = NewPKey(klass);</div><div class='del'>-    if (!(pkey = EVP_PKEY_new())) {</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    if (!EVP_PKEY_assign_DH(pkey, dh)) {</div><div class='del'>-	EVP_PKEY_free(pkey);</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    SetPKey(obj, pkey);</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-ossl_dh_new(EVP_PKEY *pkey)</div><div class='del'>-{</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    if (!pkey) {</div><div class='del'>-	obj = dh_instance(cDH, DH_new());</div><div class='del'>-    } else {</div><div class='del'>-	obj = NewPKey(cDH);</div><div class='del'>-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_DH) {</div><div class='del'>-	    ossl_raise(rb_eTypeError, "Not a DH key!");</div><div class='del'>-	}</div><div class='del'>-	SetPKey(obj, pkey);</div><div class='del'>-    }</div><div class='del'>-    if (obj == Qfalse) {</div><div class='del'>-	ossl_raise(eDHError, NULL);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * Private</div><div class='ctx'>  */</div><div class='del'>-struct dh_blocking_gen_arg {</div><div class='del'>-    DH *dh;</div><div class='del'>-    int size;</div><div class='del'>-    int gen;</div><div class='del'>-    BN_GENCB *cb;</div><div class='del'>-    int result;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-dh_blocking_gen(void *arg)</div><div class='del'>-{</div><div class='del'>-    struct dh_blocking_gen_arg *gen = (struct dh_blocking_gen_arg *)arg;</div><div class='del'>-    gen-&gt;result = DH_generate_parameters_ex(gen-&gt;dh, gen-&gt;size, gen-&gt;gen, gen-&gt;cb);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static DH *</div><div class='del'>-dh_generate(int size, int gen)</div><div class='del'>-{</div><div class='del'>-    struct ossl_generate_cb_arg cb_arg = { 0 };</div><div class='del'>-    struct dh_blocking_gen_arg gen_arg;</div><div class='del'>-    DH *dh = DH_new();</div><div class='del'>-    BN_GENCB *cb = BN_GENCB_new();</div><div class='del'>-</div><div class='del'>-    if (!dh || !cb) {</div><div class='del'>-	DH_free(dh);</div><div class='del'>-	BN_GENCB_free(cb);</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (rb_block_given_p())</div><div class='del'>-	cb_arg.yield = 1;</div><div class='del'>-    BN_GENCB_set(cb, ossl_generate_cb_2, &amp;cb_arg);</div><div class='del'>-    gen_arg.dh = dh;</div><div class='del'>-    gen_arg.size = size;</div><div class='del'>-    gen_arg.gen = gen;</div><div class='del'>-    gen_arg.cb = cb;</div><div class='del'>-    if (cb_arg.yield == 1) {</div><div class='del'>-	/* we cannot release GVL when callback proc is supplied */</div><div class='del'>-	dh_blocking_gen(&amp;gen_arg);</div><div class='del'>-    } else {</div><div class='del'>-	/* there's a chance to unblock */</div><div class='del'>-	rb_thread_call_without_gvl(dh_blocking_gen, &amp;gen_arg, ossl_generate_cb_stop, &amp;cb_arg);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    BN_GENCB_free(cb);</div><div class='del'>-    if (!gen_arg.result) {</div><div class='del'>-	DH_free(dh);</div><div class='del'>-	if (cb_arg.state) {</div><div class='del'>-	    /* Clear OpenSSL error queue before re-raising. */</div><div class='del'>-	    ossl_clear_error();</div><div class='del'>-	    rb_jump_tag(cb_arg.state);</div><div class='del'>-	}</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!DH_generate_key(dh)) {</div><div class='del'>-        DH_free(dh);</div><div class='del'>-        return NULL;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return dh;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     DH.generate(size [, generator]) -&gt; dh</div><div class='del'>- *</div><div class='del'>- * Creates a new DH instance from scratch by generating the private and public</div><div class='del'>- * components alike.</div><div class='del'>- *</div><div class='del'>- * === Parameters</div><div class='del'>- * * _size_ is an integer representing the desired key size. Keys smaller than 1024 bits should be considered insecure.</div><div class='del'>- * * _generator_ is a small number &gt; 1, typically 2 or 5.</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_dh_s_generate(int argc, VALUE *argv, VALUE klass)</div><div class='del'>-{</div><div class='del'>-    DH *dh ;</div><div class='del'>-    int g = 2;</div><div class='del'>-    VALUE size, gen, obj;</div><div class='del'>-</div><div class='del'>-    if (rb_scan_args(argc, argv, "11", &amp;size, &amp;gen) == 2) {</div><div class='del'>-	g = NUM2INT(gen);</div><div class='del'>-    }</div><div class='del'>-    dh = dh_generate(NUM2INT(size), g);</div><div class='del'>-    obj = dh_instance(klass, dh);</div><div class='del'>-    if (obj == Qfalse) {</div><div class='del'>-	DH_free(dh);</div><div class='del'>-	ossl_raise(eDHError, NULL);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   DH.new -&gt; dh</div><div class='ctx'>  *   DH.new(string) -&gt; dh</div><div class='ctx'>  *   DH.new(size [, generator]) -&gt; dh</div><div class='ctx'>  *</div><div class='del'>- * Either generates a DH instance from scratch or by reading already existing</div><div class='del'>- * DH parameters from _string_. Note that when reading a DH instance from</div><div class='del'>- * data that was encoded from a DH instance by using DH#to_pem or DH#to_der</div><div class='del'>- * the result will *not* contain a public/private key pair yet. This needs to</div><div class='del'>- * be generated using DH#generate_key! first.</div><div class='add'>+ * Creates a new instance of OpenSSL::PKey::DH.</div><div class='add'>+ *</div><div class='add'>+ * If called without arguments, an empty instance without any parameter or key</div><div class='add'>+ * components is created. Use #set_pqg to manually set the parameters afterwards</div><div class='add'>+ * (and optionally #set_key to set private and public key components).</div><div class='add'>+ *</div><div class='add'>+ * If a String is given, tries to parse it as a DER- or PEM- encoded parameters.</div><div class='add'>+ * See also OpenSSL::PKey.read which can parse keys of any kinds.</div><div class='add'>+ *</div><div class='add'>+ * The DH.new(size [, generator]) form is an alias of DH.generate.</div><div class='ctx'>  *</div><div class='del'>- * === Parameters</div><div class='del'>- * * _size_ is an integer representing the desired key size. Keys smaller than 1024 bits should be considered insecure.</div><div class='del'>- * * _generator_ is a small number &gt; 1, typically 2 or 5.</div><div class='del'>- * * _string_ contains the DER or PEM encoded key.</div><div class='add'>+ * +string+::</div><div class='add'>+ *   A String that contains the DER or PEM encoded key.</div><div class='add'>+ * +size+::</div><div class='add'>+ *   See DH.generate.</div><div class='add'>+ * +generator+::</div><div class='add'>+ *   See DH.generate.</div><div class='ctx'>  *</div><div class='del'>- * === Examples</div><div class='del'>- *  DH.new # -&gt; dh</div><div class='del'>- *  DH.new(1024) # -&gt; dh</div><div class='del'>- *  DH.new(1024, 5) # -&gt; dh</div><div class='del'>- *  #Reading DH parameters</div><div class='del'>- *  dh = DH.new(File.read('parameters.pem')) # -&gt; dh, but no public/private key yet</div><div class='del'>- *  dh.generate_key! # -&gt; dh with public and private key</div><div class='add'>+ * Examples:</div><div class='add'>+ *   # Creating an instance from scratch</div><div class='add'>+ *   # Note that this is deprecated and will not work on OpenSSL 3.0 or later.</div><div class='add'>+ *   dh = OpenSSL::PKey::DH.new</div><div class='add'>+ *   dh.set_pqg(bn_p, nil, bn_g)</div><div class='add'>+ *</div><div class='add'>+ *   # Generating a parameters and a key pair</div><div class='add'>+ *   dh = OpenSSL::PKey::DH.new(2048) # An alias of OpenSSL::PKey::DH.generate(2048)</div><div class='add'>+ *</div><div class='add'>+ *   # Reading DH parameters</div><div class='add'>+ *   dh_params = OpenSSL::PKey::DH.new(File.read('parameters.pem')) # loads parameters only</div><div class='add'>+ *   dh = OpenSSL::PKey.generate_key(dh_params) # generates a key pair</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dh_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     EVP_PKEY *pkey;</div><div class='add'>+    int type;</div><div class='ctx'>     DH *dh;</div><div class='del'>-    int g = 2;</div><div class='del'>-    BIO *in;</div><div class='del'>-    VALUE arg, gen;</div><div class='del'>-</div><div class='del'>-    GetPKey(self, pkey);</div><div class='del'>-    if(rb_scan_args(argc, argv, "02", &amp;arg, &amp;gen) == 0) {</div><div class='del'>-      dh = DH_new();</div><div class='add'>+    BIO *in = NULL;</div><div class='add'>+    VALUE arg;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(self, EVP_PKEY, &amp;ossl_evp_pkey_type, pkey);</div><div class='add'>+    if (pkey)</div><div class='add'>+        rb_raise(rb_eTypeError, "pkey already initialized");</div><div class='add'>+</div><div class='add'>+    /* The DH.new(size, generator) form is handled by lib/openssl/pkey.rb */</div><div class='add'>+    if (rb_scan_args(argc, argv, "01", &amp;arg) == 0) {</div><div class='add'>+        dh = DH_new();</div><div class='add'>+        if (!dh)</div><div class='add'>+            ossl_raise(eDHError, "DH_new");</div><div class='add'>+        goto legacy;</div><div class='ctx'>     }</div><div class='del'>-    else if (RB_INTEGER_TYPE_P(arg)) {</div><div class='del'>-	if (!NIL_P(gen)) {</div><div class='del'>-	    g = NUM2INT(gen);</div><div class='del'>-	}</div><div class='del'>-	if (!(dh = dh_generate(NUM2INT(arg), g))) {</div><div class='del'>-	    ossl_raise(eDHError, NULL);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	arg = ossl_to_der_if_possible(arg);</div><div class='del'>-	in = ossl_obj2bio(&amp;arg);</div><div class='del'>-	dh = PEM_read_bio_DHparams(in, NULL, NULL, NULL);</div><div class='del'>-	if (!dh){</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    dh = d2i_DHparams_bio(in, NULL);</div><div class='del'>-	}</div><div class='del'>-	BIO_free(in);</div><div class='del'>-	if (!dh) {</div><div class='del'>-	    ossl_raise(eDHError, NULL);</div><div class='del'>-	}</div><div class='add'>+</div><div class='add'>+    arg = ossl_to_der_if_possible(arg);</div><div class='add'>+    in = ossl_obj2bio(&amp;arg);</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * On OpenSSL &lt;= 1.1.1 and current versions of LibreSSL, the generic</div><div class='add'>+     * routine does not support DER-encoded parameters</div><div class='add'>+     */</div><div class='add'>+    dh = d2i_DHparams_bio(in, NULL);</div><div class='add'>+    if (dh)</div><div class='add'>+        goto legacy;</div><div class='add'>+    OSSL_BIO_reset(in);</div><div class='add'>+</div><div class='add'>+    pkey = ossl_pkey_read_generic(in, Qnil);</div><div class='add'>+    BIO_free(in);</div><div class='add'>+    if (!pkey)</div><div class='add'>+        ossl_raise(eDHError, "could not parse pkey");</div><div class='add'>+</div><div class='add'>+    type = EVP_PKEY_base_id(pkey);</div><div class='add'>+    if (type != EVP_PKEY_DH) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        rb_raise(eDHError, "incorrect pkey type: %s", OBJ_nid2sn(type));</div><div class='ctx'>     }</div><div class='del'>-    if (!EVP_PKEY_assign_DH(pkey, dh)) {</div><div class='del'>-	DH_free(dh);</div><div class='del'>-	ossl_raise(eDHError, NULL);</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='add'>+    return self;</div><div class='add'>+</div><div class='add'>+  legacy:</div><div class='add'>+    BIO_free(in);</div><div class='add'>+    pkey = EVP_PKEY_new();</div><div class='add'>+    if (!pkey || EVP_PKEY_assign_DH(pkey, dh) != 1) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        DH_free(dh);</div><div class='add'>+        ossl_raise(eDHError, "EVP_PKEY_assign_DH");</div><div class='ctx'>     }</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifndef HAVE_EVP_PKEY_DUP</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dh_initialize_copy(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='hunk'>@@ -247,15 +135,14 @@ ossl_dh_initialize_copy(VALUE self, VALUE other)</div><div class='ctx'>     DH *dh, *dh_other;</div><div class='ctx'>     const BIGNUM *pub, *priv;</div><div class='ctx'> </div><div class='del'>-    GetPKey(self, pkey);</div><div class='del'>-    if (EVP_PKEY_base_id(pkey) != EVP_PKEY_NONE)</div><div class='del'>-	ossl_raise(eDHError, "DH already initialized");</div><div class='add'>+    TypedData_Get_Struct(self, EVP_PKEY, &amp;ossl_evp_pkey_type, pkey);</div><div class='add'>+    if (pkey)</div><div class='add'>+        rb_raise(rb_eTypeError, "pkey already initialized");</div><div class='ctx'>     GetDH(other, dh_other);</div><div class='ctx'> </div><div class='ctx'>     dh = DHparams_dup(dh_other);</div><div class='ctx'>     if (!dh)</div><div class='ctx'> 	ossl_raise(eDHError, "DHparams_dup");</div><div class='del'>-    EVP_PKEY_assign_DH(pkey, dh);</div><div class='ctx'> </div><div class='ctx'>     DH_get0_key(dh_other, &amp;pub, &amp;priv);</div><div class='ctx'>     if (pub) {</div><div class='hunk'>@@ -270,8 +157,16 @@ ossl_dh_initialize_copy(VALUE self, VALUE other)</div><div class='ctx'> 	DH_set0_key(dh, pub2, priv2);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    pkey = EVP_PKEY_new();</div><div class='add'>+    if (!pkey || EVP_PKEY_assign_DH(pkey, dh) != 1) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        DH_free(dh);</div><div class='add'>+        ossl_raise(eDHError, "EVP_PKEY_assign_DH");</div><div class='add'>+    }</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='hunk'>@@ -283,7 +178,7 @@ ossl_dh_initialize_copy(VALUE self, VALUE other)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dh_is_public(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    DH *dh;</div><div class='add'>+    OSSL_3_const DH *dh;</div><div class='ctx'>     const BIGNUM *bn;</div><div class='ctx'> </div><div class='ctx'>     GetDH(self, dh);</div><div class='hunk'>@@ -302,14 +197,14 @@ ossl_dh_is_public(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dh_is_private(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    DH *dh;</div><div class='add'>+    OSSL_3_const DH *dh;</div><div class='ctx'>     const BIGNUM *bn;</div><div class='ctx'> </div><div class='ctx'>     GetDH(self, dh);</div><div class='ctx'>     DH_get0_key(dh, NULL, &amp;bn);</div><div class='ctx'> </div><div class='ctx'> #if !defined(OPENSSL_NO_ENGINE)</div><div class='del'>-    return (bn || DH_get0_engine(dh)) ? Qtrue : Qfalse;</div><div class='add'>+    return (bn || DH_get0_engine((DH *)dh)) ? Qtrue : Qfalse;</div><div class='ctx'> #else</div><div class='ctx'>     return bn ? Qtrue : Qfalse;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -328,7 +223,7 @@ ossl_dh_is_private(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dh_export(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    DH *dh;</div><div class='add'>+    OSSL_3_const DH *dh;</div><div class='ctx'>     BIO *out;</div><div class='ctx'>     VALUE str;</div><div class='ctx'> </div><div class='hunk'>@@ -357,7 +252,7 @@ ossl_dh_export(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dh_to_der(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    DH *dh;</div><div class='add'>+    OSSL_3_const DH *dh;</div><div class='ctx'>     unsigned char *p;</div><div class='ctx'>     long len;</div><div class='ctx'>     VALUE str;</div><div class='hunk'>@@ -385,7 +280,7 @@ ossl_dh_to_der(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dh_get_params(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    DH *dh;</div><div class='add'>+    OSSL_3_const DH *dh;</div><div class='ctx'>     VALUE hash;</div><div class='ctx'>     const BIGNUM *p, *q, *g, *pub_key, *priv_key;</div><div class='ctx'> </div><div class='hunk'>@@ -405,151 +300,43 @@ ossl_dh_get_params(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     dh.to_text -&gt; aString</div><div class='del'>- *</div><div class='del'>- * Prints all parameters of key to buffer</div><div class='del'>- * INSECURE: PRIVATE INFORMATIONS CAN LEAK OUT!!!</div><div class='del'>- * Don't use :-)) (I's up to you)</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_dh_to_text(VALUE self)</div><div class='del'>-{</div><div class='del'>-    DH *dh;</div><div class='del'>-    BIO *out;</div><div class='del'>-    VALUE str;</div><div class='del'>-</div><div class='del'>-    GetDH(self, dh);</div><div class='del'>-    if (!(out = BIO_new(BIO_s_mem()))) {</div><div class='del'>-	ossl_raise(eDHError, NULL);</div><div class='del'>-    }</div><div class='del'>-    if (!DHparams_print(out, dh)) {</div><div class='del'>-	BIO_free(out);</div><div class='del'>-	ossl_raise(eDHError, NULL);</div><div class='del'>-    }</div><div class='del'>-    str = ossl_membio2str(out);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     dh.public_key -&gt; aDH</div><div class='del'>- *</div><div class='del'>- * Returns a new DH instance that carries just the public information, i.e.</div><div class='del'>- * the prime _p_ and the generator _g_, but no public/private key yet. Such</div><div class='del'>- * a pair may be generated using DH#generate_key!. The "public key" needed</div><div class='del'>- * for a key exchange with DH#compute_key is considered as per-session</div><div class='del'>- * information and may be retrieved with DH#pub_key once a key pair has</div><div class='del'>- * been generated.</div><div class='del'>- * If the current instance already contains private information (and thus a</div><div class='del'>- * valid public/private key pair), this information will no longer be present</div><div class='del'>- * in the new instance generated by DH#public_key. This feature is helpful for</div><div class='del'>- * publishing the Diffie-Hellman parameters without leaking any of the private</div><div class='del'>- * per-session information.</div><div class='del'>- *</div><div class='del'>- * === Example</div><div class='del'>- *  dh = OpenSSL::PKey::DH.new(2048) # has public and private key set</div><div class='del'>- *  public_key = dh.public_key # contains only prime and generator</div><div class='del'>- *  parameters = public_key.to_der # it's safe to publish this</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_dh_to_public_key(VALUE self)</div><div class='del'>-{</div><div class='del'>-    DH *orig_dh, *dh;</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    GetDH(self, orig_dh);</div><div class='del'>-    dh = DHparams_dup(orig_dh); /* err check perfomed by dh_instance */</div><div class='del'>-    obj = dh_instance(rb_obj_class(self), dh);</div><div class='del'>-    if (obj == Qfalse) {</div><div class='del'>-	DH_free(dh);</div><div class='del'>-	ossl_raise(eDHError, NULL);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='ctx'>  *     dh.params_ok? -&gt; true | false</div><div class='ctx'>  *</div><div class='ctx'>  * Validates the Diffie-Hellman parameters associated with this instance.</div><div class='ctx'>  * It checks whether a safe prime and a suitable generator are used. If this</div><div class='ctx'>  * is not the case, +false+ is returned.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page EVP_PKEY_param_check(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dh_check_params(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    DH *dh;</div><div class='del'>-    int codes;</div><div class='del'>-</div><div class='del'>-    GetDH(self, dh);</div><div class='del'>-    if (!DH_check(dh, &amp;codes)) {</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return codes == 0 ? Qtrue : Qfalse;</div><div class='del'>-}</div><div class='add'>+    int ret;</div><div class='add'>+#ifdef HAVE_EVP_PKEY_CHECK</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    EVP_PKEY_CTX *pctx;</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     dh.generate_key! -&gt; self</div><div class='del'>- *</div><div class='del'>- * Generates a private and public key unless a private key already exists.</div><div class='del'>- * If this DH instance was generated from public DH parameters (e.g. by</div><div class='del'>- * encoding the result of DH#public_key), then this method needs to be</div><div class='del'>- * called first in order to generate the per-session keys before performing</div><div class='del'>- * the actual key exchange.</div><div class='del'>- *</div><div class='del'>- * === Example</div><div class='del'>- *   dh = OpenSSL::PKey::DH.new(2048)</div><div class='del'>- *   public_key = dh.public_key #contains no private/public key yet</div><div class='del'>- *   public_key.generate_key!</div><div class='del'>- *   puts public_key.private? # =&gt; true</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_dh_generate_key(VALUE self)</div><div class='del'>-{</div><div class='add'>+    GetPKey(self, pkey);</div><div class='add'>+    pctx = EVP_PKEY_CTX_new(pkey, /* engine */NULL);</div><div class='add'>+    if (!pctx)</div><div class='add'>+        ossl_raise(eDHError, "EVP_PKEY_CTX_new");</div><div class='add'>+    ret = EVP_PKEY_param_check(pctx);</div><div class='add'>+    EVP_PKEY_CTX_free(pctx);</div><div class='add'>+#else</div><div class='ctx'>     DH *dh;</div><div class='add'>+    int codes;</div><div class='ctx'> </div><div class='ctx'>     GetDH(self, dh);</div><div class='del'>-    if (!DH_generate_key(dh))</div><div class='del'>-	ossl_raise(eDHError, "Failed to generate key");</div><div class='del'>-    return self;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     dh.compute_key(pub_bn) -&gt; aString</div><div class='del'>- *</div><div class='del'>- * Returns a String containing a shared secret computed from the other party's public value.</div><div class='del'>- * See DH_compute_key() for further information.</div><div class='del'>- *</div><div class='del'>- * === Parameters</div><div class='del'>- * * _pub_bn_ is a OpenSSL::BN, *not* the DH instance returned by</div><div class='del'>- *   DH#public_key as that contains the DH parameters only.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_dh_compute_key(VALUE self, VALUE pub)</div><div class='del'>-{</div><div class='del'>-    DH *dh;</div><div class='del'>-    const BIGNUM *pub_key, *dh_p;</div><div class='del'>-    VALUE str;</div><div class='del'>-    int len;</div><div class='add'>+    ret = DH_check(dh, &amp;codes) == 1 &amp;&amp; codes == 0;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    GetDH(self, dh);</div><div class='del'>-    DH_get0_pqg(dh, &amp;dh_p, NULL, NULL);</div><div class='del'>-    if (!dh_p)</div><div class='del'>-	ossl_raise(eDHError, "incomplete DH");</div><div class='del'>-    pub_key = GetBNPtr(pub);</div><div class='del'>-    len = DH_size(dh);</div><div class='del'>-    str = rb_str_new(0, len);</div><div class='del'>-    if ((len = DH_compute_key((unsigned char *)RSTRING_PTR(str), pub_key, dh)) &lt; 0) {</div><div class='del'>-	ossl_raise(eDHError, NULL);</div><div class='add'>+    if (ret == 1)</div><div class='add'>+        return Qtrue;</div><div class='add'>+    else {</div><div class='add'>+        /* DH_check_ex() will put error entry on failure */</div><div class='add'>+        ossl_clear_error();</div><div class='add'>+        return Qfalse;</div><div class='ctx'>     }</div><div class='del'>-    rb_str_set_len(str, len);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -606,30 +393,33 @@ Init_ossl_dh(void)</div><div class='ctx'>      *   The per-session private key, an OpenSSL::BN.</div><div class='ctx'>      *</div><div class='ctx'>      * === Example of a key exchange</div><div class='del'>-     *  dh1 = OpenSSL::PKey::DH.new(2048)</div><div class='del'>-     *  der = dh1.public_key.to_der #you may send this publicly to the participating party</div><div class='del'>-     *  dh2 = OpenSSL::PKey::DH.new(der)</div><div class='del'>-     *  dh2.generate_key! #generate the per-session key pair</div><div class='del'>-     *  symm_key1 = dh1.compute_key(dh2.pub_key)</div><div class='del'>-     *  symm_key2 = dh2.compute_key(dh1.pub_key)</div><div class='add'>+     *   # you may send the parameters (der) and own public key (pub1) publicly</div><div class='add'>+     *   # to the participating party</div><div class='add'>+     *   dh1 = OpenSSL::PKey::DH.new(2048)</div><div class='add'>+     *   der = dh1.to_der</div><div class='add'>+     *   pub1 = dh1.pub_key</div><div class='ctx'>      *</div><div class='del'>-     *  puts symm_key1 == symm_key2 # =&gt; true</div><div class='add'>+     *   # the other party generates its per-session key pair</div><div class='add'>+     *   dhparams = OpenSSL::PKey::DH.new(der)</div><div class='add'>+     *   dh2 = OpenSSL::PKey.generate_key(dhparams)</div><div class='add'>+     *   pub2 = dh2.pub_key</div><div class='add'>+     *</div><div class='add'>+     *   symm_key1 = dh1.compute_key(pub2)</div><div class='add'>+     *   symm_key2 = dh2.compute_key(pub1)</div><div class='add'>+     *   puts symm_key1 == symm_key2 # =&gt; true</div><div class='ctx'>      */</div><div class='ctx'>     cDH = rb_define_class_under(mPKey, "DH", cPKey);</div><div class='del'>-    rb_define_singleton_method(cDH, "generate", ossl_dh_s_generate, -1);</div><div class='ctx'>     rb_define_method(cDH, "initialize", ossl_dh_initialize, -1);</div><div class='add'>+#ifndef HAVE_EVP_PKEY_DUP</div><div class='ctx'>     rb_define_method(cDH, "initialize_copy", ossl_dh_initialize_copy, 1);</div><div class='add'>+#endif</div><div class='ctx'>     rb_define_method(cDH, "public?", ossl_dh_is_public, 0);</div><div class='ctx'>     rb_define_method(cDH, "private?", ossl_dh_is_private, 0);</div><div class='del'>-    rb_define_method(cDH, "to_text", ossl_dh_to_text, 0);</div><div class='ctx'>     rb_define_method(cDH, "export", ossl_dh_export, 0);</div><div class='ctx'>     rb_define_alias(cDH, "to_pem", "export");</div><div class='ctx'>     rb_define_alias(cDH, "to_s", "export");</div><div class='ctx'>     rb_define_method(cDH, "to_der", ossl_dh_to_der, 0);</div><div class='del'>-    rb_define_method(cDH, "public_key", ossl_dh_to_public_key, 0);</div><div class='ctx'>     rb_define_method(cDH, "params_ok?", ossl_dh_check_params, 0);</div><div class='del'>-    rb_define_method(cDH, "generate_key!", ossl_dh_generate_key, 0);</div><div class='del'>-    rb_define_method(cDH, "compute_key", ossl_dh_compute_key, 1);</div><div class='ctx'> </div><div class='ctx'>     DEF_OSSL_PKEY_BN(cDH, dh, p);</div><div class='ctx'>     DEF_OSSL_PKEY_BN(cDH, dh, q);</div><div class='head'>diff --git a/ext/openssl/ossl_pkey_dsa.c b/ext/openssl/ossl_pkey_dsa.c<br/>index 56cc9dd4f1..b097f8c9d2 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_pkey_dsa.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey_dsa.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_pkey_dsa.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_pkey_dsa.c</a></div><div class='hunk'>@@ -24,7 +24,7 @@</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='ctx'> static inline int</div><div class='del'>-DSA_HAS_PRIVATE(DSA *dsa)</div><div class='add'>+DSA_HAS_PRIVATE(OSSL_3_const DSA *dsa)</div><div class='ctx'> {</div><div class='ctx'>     const BIGNUM *bn;</div><div class='ctx'>     DSA_get0_key(dsa, NULL, &amp;bn);</div><div class='hunk'>@@ -32,7 +32,7 @@ DSA_HAS_PRIVATE(DSA *dsa)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline int</div><div class='del'>-DSA_PRIVATE(VALUE obj, DSA *dsa)</div><div class='add'>+DSA_PRIVATE(VALUE obj, OSSL_3_const DSA *dsa)</div><div class='ctx'> {</div><div class='ctx'>     return DSA_HAS_PRIVATE(dsa) || OSSL_PKEY_IS_PRIVATE(obj);</div><div class='ctx'> }</div><div class='hunk'>@@ -44,245 +44,130 @@ VALUE cDSA;</div><div class='ctx'> VALUE eDSAError;</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Public</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-dsa_instance(VALUE klass, DSA *dsa)</div><div class='del'>-{</div><div class='del'>-    EVP_PKEY *pkey;</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    if (!dsa) {</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    obj = NewPKey(klass);</div><div class='del'>-    if (!(pkey = EVP_PKEY_new())) {</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    if (!EVP_PKEY_assign_DSA(pkey, dsa)) {</div><div class='del'>-	EVP_PKEY_free(pkey);</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    SetPKey(obj, pkey);</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-ossl_dsa_new(EVP_PKEY *pkey)</div><div class='del'>-{</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    if (!pkey) {</div><div class='del'>-	obj = dsa_instance(cDSA, DSA_new());</div><div class='del'>-    } else {</div><div class='del'>-	obj = NewPKey(cDSA);</div><div class='del'>-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_DSA) {</div><div class='del'>-	    ossl_raise(rb_eTypeError, "Not a DSA key!");</div><div class='del'>-	}</div><div class='del'>-	SetPKey(obj, pkey);</div><div class='del'>-    }</div><div class='del'>-    if (obj == Qfalse) {</div><div class='del'>-	ossl_raise(eDSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * Private</div><div class='ctx'>  */</div><div class='del'>-struct dsa_blocking_gen_arg {</div><div class='del'>-    DSA *dsa;</div><div class='del'>-    int size;</div><div class='del'>-    int *counter;</div><div class='del'>-    unsigned long *h;</div><div class='del'>-    BN_GENCB *cb;</div><div class='del'>-    int result;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-dsa_blocking_gen(void *arg)</div><div class='del'>-{</div><div class='del'>-    struct dsa_blocking_gen_arg *gen = (struct dsa_blocking_gen_arg *)arg;</div><div class='del'>-    gen-&gt;result = DSA_generate_parameters_ex(gen-&gt;dsa, gen-&gt;size, NULL, 0,</div><div class='del'>-					     gen-&gt;counter, gen-&gt;h, gen-&gt;cb);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static DSA *</div><div class='del'>-dsa_generate(int size)</div><div class='del'>-{</div><div class='del'>-    struct ossl_generate_cb_arg cb_arg = { 0 };</div><div class='del'>-    struct dsa_blocking_gen_arg gen_arg;</div><div class='del'>-    DSA *dsa = DSA_new();</div><div class='del'>-    BN_GENCB *cb = BN_GENCB_new();</div><div class='del'>-    int counter;</div><div class='del'>-    unsigned long h;</div><div class='del'>-</div><div class='del'>-    if (!dsa || !cb) {</div><div class='del'>-	DSA_free(dsa);</div><div class='del'>-	BN_GENCB_free(cb);</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (rb_block_given_p())</div><div class='del'>-	cb_arg.yield = 1;</div><div class='del'>-    BN_GENCB_set(cb, ossl_generate_cb_2, &amp;cb_arg);</div><div class='del'>-    gen_arg.dsa = dsa;</div><div class='del'>-    gen_arg.size = size;</div><div class='del'>-    gen_arg.counter = &amp;counter;</div><div class='del'>-    gen_arg.h = &amp;h;</div><div class='del'>-    gen_arg.cb = cb;</div><div class='del'>-    if (cb_arg.yield == 1) {</div><div class='del'>-	/* we cannot release GVL when callback proc is supplied */</div><div class='del'>-	dsa_blocking_gen(&amp;gen_arg);</div><div class='del'>-    } else {</div><div class='del'>-	/* there's a chance to unblock */</div><div class='del'>-	rb_thread_call_without_gvl(dsa_blocking_gen, &amp;gen_arg, ossl_generate_cb_stop, &amp;cb_arg);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    BN_GENCB_free(cb);</div><div class='del'>-    if (!gen_arg.result) {</div><div class='del'>-	DSA_free(dsa);</div><div class='del'>-	if (cb_arg.state) {</div><div class='del'>-	    /* Clear OpenSSL error queue before re-raising. By the way, the</div><div class='del'>-	     * documentation of DSA_generate_parameters_ex() says the error code</div><div class='del'>-	     * can be obtained by ERR_get_error(), but the default</div><div class='del'>-	     * implementation, dsa_builtin_paramgen() doesn't put any error... */</div><div class='del'>-	    ossl_clear_error();</div><div class='del'>-	    rb_jump_tag(cb_arg.state);</div><div class='del'>-	}</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!DSA_generate_key(dsa)) {</div><div class='del'>-	DSA_free(dsa);</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return dsa;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *    DSA.generate(size) -&gt; dsa</div><div class='del'>- *</div><div class='del'>- * Creates a new DSA instance by generating a private/public key pair</div><div class='del'>- * from scratch.</div><div class='del'>- *</div><div class='del'>- * === Parameters</div><div class='del'>- * * _size_ is an integer representing the desired key size.</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_dsa_s_generate(VALUE klass, VALUE size)</div><div class='del'>-{</div><div class='del'>-    DSA *dsa = dsa_generate(NUM2INT(size)); /* err handled by dsa_instance */</div><div class='del'>-    VALUE obj = dsa_instance(klass, dsa);</div><div class='del'>-</div><div class='del'>-    if (obj == Qfalse) {</div><div class='del'>-	DSA_free(dsa);</div><div class='del'>-	ossl_raise(eDSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *    DSA.new -&gt; dsa</div><div class='del'>- *    DSA.new(size) -&gt; dsa</div><div class='ctx'>  *    DSA.new(string [, pass]) -&gt; dsa</div><div class='add'>+ *    DSA.new(size) -&gt; dsa</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new DSA instance by reading an existing key from _string_.</div><div class='ctx'>  *</div><div class='del'>- * === Parameters</div><div class='del'>- * * _size_ is an integer representing the desired key size.</div><div class='del'>- * * _string_ contains a DER or PEM encoded key.</div><div class='del'>- * * _pass_ is a string that contains an optional password.</div><div class='add'>+ * If called without arguments, creates a new instance with no key components</div><div class='add'>+ * set. They can be set individually by #set_pqg and #set_key.</div><div class='ctx'>  *</div><div class='del'>- * === Examples</div><div class='del'>- *  DSA.new -&gt; dsa</div><div class='del'>- *  DSA.new(1024) -&gt; dsa</div><div class='del'>- *  DSA.new(File.read('dsa.pem')) -&gt; dsa</div><div class='del'>- *  DSA.new(File.read('dsa.pem'), 'mypassword') -&gt; dsa</div><div class='add'>+ * If called with a String, tries to parse as DER or PEM encoding of a \DSA key.</div><div class='add'>+ * See also OpenSSL::PKey.read which can parse keys of any kinds.</div><div class='add'>+ *</div><div class='add'>+ * If called with a number, generates random parameters and a key pair. This</div><div class='add'>+ * form works as an alias of DSA.generate.</div><div class='add'>+ *</div><div class='add'>+ * +string+::</div><div class='add'>+ *   A String that contains a DER or PEM encoded key.</div><div class='add'>+ * +pass+::</div><div class='add'>+ *   A String that contains an optional password.</div><div class='add'>+ * +size+::</div><div class='add'>+ *   See DSA.generate.</div><div class='ctx'>  *</div><div class='add'>+ * Examples:</div><div class='add'>+ *   p OpenSSL::PKey::DSA.new(1024)</div><div class='add'>+ *   #=&gt; #&lt;OpenSSL::PKey::DSA:0x000055a8d6025bf0 oid=DSA&gt;</div><div class='add'>+ *</div><div class='add'>+ *   p OpenSSL::PKey::DSA.new(File.read('dsa.pem'))</div><div class='add'>+ *   #=&gt; #&lt;OpenSSL::PKey::DSA:0x000055555d6b8110 oid=DSA&gt;</div><div class='add'>+ *</div><div class='add'>+ *   p OpenSSL::PKey::DSA.new(File.read('dsa.pem'), 'mypassword')</div><div class='add'>+ *   #=&gt; #&lt;OpenSSL::PKey::DSA:0x0000556f973c40b8 oid=DSA&gt;</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dsa_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     EVP_PKEY *pkey;</div><div class='ctx'>     DSA *dsa;</div><div class='del'>-    BIO *in;</div><div class='add'>+    BIO *in = NULL;</div><div class='ctx'>     VALUE arg, pass;</div><div class='add'>+    int type;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(self, EVP_PKEY, &amp;ossl_evp_pkey_type, pkey);</div><div class='add'>+    if (pkey)</div><div class='add'>+        rb_raise(rb_eTypeError, "pkey already initialized");</div><div class='ctx'> </div><div class='del'>-    GetPKey(self, pkey);</div><div class='del'>-    if(rb_scan_args(argc, argv, "02", &amp;arg, &amp;pass) == 0) {</div><div class='add'>+    /* The DSA.new(size, generator) form is handled by lib/openssl/pkey.rb */</div><div class='add'>+    rb_scan_args(argc, argv, "02", &amp;arg, &amp;pass);</div><div class='add'>+    if (argc == 0) {</div><div class='ctx'>         dsa = DSA_new();</div><div class='add'>+        if (!dsa)</div><div class='add'>+            ossl_raise(eDSAError, "DSA_new");</div><div class='add'>+        goto legacy;</div><div class='ctx'>     }</div><div class='del'>-    else if (RB_INTEGER_TYPE_P(arg)) {</div><div class='del'>-	if (!(dsa = dsa_generate(NUM2INT(arg)))) {</div><div class='del'>-	    ossl_raise(eDSAError, NULL);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	pass = ossl_pem_passwd_value(pass);</div><div class='del'>-	arg = ossl_to_der_if_possible(arg);</div><div class='del'>-	in = ossl_obj2bio(&amp;arg);</div><div class='del'>-	dsa = PEM_read_bio_DSAPrivateKey(in, NULL, ossl_pem_passwd_cb, (void *)pass);</div><div class='del'>-	if (!dsa) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    dsa = PEM_read_bio_DSA_PUBKEY(in, NULL, NULL, NULL);</div><div class='del'>-	}</div><div class='del'>-	if (!dsa) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    dsa = d2i_DSAPrivateKey_bio(in, NULL);</div><div class='del'>-	}</div><div class='del'>-	if (!dsa) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    dsa = d2i_DSA_PUBKEY_bio(in, NULL);</div><div class='del'>-	}</div><div class='del'>-	if (!dsa) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-#define PEM_read_bio_DSAPublicKey(bp,x,cb,u) (DSA *)PEM_ASN1_read_bio( \</div><div class='del'>-	(d2i_of_void *)d2i_DSAPublicKey, PEM_STRING_DSA_PUBLIC, (bp), (void **)(x), (cb), (u))</div><div class='del'>-	    dsa = PEM_read_bio_DSAPublicKey(in, NULL, NULL, NULL);</div><div class='del'>-#undef PEM_read_bio_DSAPublicKey</div><div class='del'>-	}</div><div class='del'>-	BIO_free(in);</div><div class='del'>-	if (!dsa) {</div><div class='del'>-	    ossl_clear_error();</div><div class='del'>-	    ossl_raise(eDSAError, "Neither PUB key nor PRIV key");</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    if (!EVP_PKEY_assign_DSA(pkey, dsa)) {</div><div class='del'>-	DSA_free(dsa);</div><div class='del'>-	ossl_raise(eDSAError, NULL);</div><div class='add'>+</div><div class='add'>+    pass = ossl_pem_passwd_value(pass);</div><div class='add'>+    arg = ossl_to_der_if_possible(arg);</div><div class='add'>+    in = ossl_obj2bio(&amp;arg);</div><div class='add'>+</div><div class='add'>+    /* DER-encoded DSAPublicKey format isn't supported by the generic routine */</div><div class='add'>+    dsa = (DSA *)PEM_ASN1_read_bio((d2i_of_void *)d2i_DSAPublicKey,</div><div class='add'>+                                   PEM_STRING_DSA_PUBLIC,</div><div class='add'>+                                   in, NULL, NULL, NULL);</div><div class='add'>+    if (dsa)</div><div class='add'>+        goto legacy;</div><div class='add'>+    OSSL_BIO_reset(in);</div><div class='add'>+</div><div class='add'>+    pkey = ossl_pkey_read_generic(in, pass);</div><div class='add'>+    BIO_free(in);</div><div class='add'>+    if (!pkey)</div><div class='add'>+        ossl_raise(eDSAError, "Neither PUB key nor PRIV key");</div><div class='add'>+</div><div class='add'>+    type = EVP_PKEY_base_id(pkey);</div><div class='add'>+    if (type != EVP_PKEY_DSA) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        rb_raise(eDSAError, "incorrect pkey type: %s", OBJ_nid2sn(type));</div><div class='ctx'>     }</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='add'>+    return self;</div><div class='ctx'> </div><div class='add'>+  legacy:</div><div class='add'>+    BIO_free(in);</div><div class='add'>+    pkey = EVP_PKEY_new();</div><div class='add'>+    if (!pkey || EVP_PKEY_assign_DSA(pkey, dsa) != 1) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        DSA_free(dsa);</div><div class='add'>+        ossl_raise(eDSAError, "EVP_PKEY_assign_DSA");</div><div class='add'>+    }</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifndef HAVE_EVP_PKEY_DUP</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dsa_initialize_copy(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='ctx'>     EVP_PKEY *pkey;</div><div class='ctx'>     DSA *dsa, *dsa_new;</div><div class='ctx'> </div><div class='del'>-    GetPKey(self, pkey);</div><div class='del'>-    if (EVP_PKEY_base_id(pkey) != EVP_PKEY_NONE)</div><div class='del'>-	ossl_raise(eDSAError, "DSA already initialized");</div><div class='add'>+    TypedData_Get_Struct(self, EVP_PKEY, &amp;ossl_evp_pkey_type, pkey);</div><div class='add'>+    if (pkey)</div><div class='add'>+        rb_raise(rb_eTypeError, "pkey already initialized");</div><div class='ctx'>     GetDSA(other, dsa);</div><div class='ctx'> </div><div class='del'>-    dsa_new = ASN1_dup((i2d_of_void *)i2d_DSAPrivateKey, (d2i_of_void *)d2i_DSAPrivateKey, (char *)dsa);</div><div class='add'>+    dsa_new = (DSA *)ASN1_dup((i2d_of_void *)i2d_DSAPrivateKey,</div><div class='add'>+                              (d2i_of_void *)d2i_DSAPrivateKey,</div><div class='add'>+                              (char *)dsa);</div><div class='ctx'>     if (!dsa_new)</div><div class='ctx'> 	ossl_raise(eDSAError, "ASN1_dup");</div><div class='ctx'> </div><div class='del'>-    EVP_PKEY_assign_DSA(pkey, dsa_new);</div><div class='add'>+    pkey = EVP_PKEY_new();</div><div class='add'>+    if (!pkey || EVP_PKEY_assign_DSA(pkey, dsa_new) != 1) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        DSA_free(dsa_new);</div><div class='add'>+        ossl_raise(eDSAError, "EVP_PKEY_assign_DSA");</div><div class='add'>+    }</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='hunk'>@@ -294,7 +179,7 @@ ossl_dsa_initialize_copy(VALUE self, VALUE other)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dsa_is_public(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    DSA *dsa;</div><div class='add'>+    const DSA *dsa;</div><div class='ctx'>     const BIGNUM *bn;</div><div class='ctx'> </div><div class='ctx'>     GetDSA(self, dsa);</div><div class='hunk'>@@ -313,7 +198,7 @@ ossl_dsa_is_public(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dsa_is_private(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    DSA *dsa;</div><div class='add'>+    OSSL_3_const DSA *dsa;</div><div class='ctx'> </div><div class='ctx'>     GetDSA(self, dsa);</div><div class='ctx'> </div><div class='hunk'>@@ -340,35 +225,13 @@ ossl_dsa_is_private(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dsa_export(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    DSA *dsa;</div><div class='del'>-    BIO *out;</div><div class='del'>-    const EVP_CIPHER *ciph = NULL;</div><div class='del'>-    VALUE cipher, pass, str;</div><div class='add'>+    OSSL_3_const DSA *dsa;</div><div class='ctx'> </div><div class='ctx'>     GetDSA(self, dsa);</div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;cipher, &amp;pass);</div><div class='del'>-    if (!NIL_P(cipher)) {</div><div class='del'>-	ciph = ossl_evp_get_cipherbyname(cipher);</div><div class='del'>-	pass = ossl_pem_passwd_value(pass);</div><div class='del'>-    }</div><div class='del'>-    if (!(out = BIO_new(BIO_s_mem()))) {</div><div class='del'>-	ossl_raise(eDSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    if (DSA_HAS_PRIVATE(dsa)) {</div><div class='del'>-	if (!PEM_write_bio_DSAPrivateKey(out, dsa, ciph, NULL, 0,</div><div class='del'>-					 ossl_pem_passwd_cb, (void *)pass)){</div><div class='del'>-	    BIO_free(out);</div><div class='del'>-	    ossl_raise(eDSAError, NULL);</div><div class='del'>-	}</div><div class='del'>-    } else {</div><div class='del'>-	if (!PEM_write_bio_DSA_PUBKEY(out, dsa)) {</div><div class='del'>-	    BIO_free(out);</div><div class='del'>-	    ossl_raise(eDSAError, NULL);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    str = ossl_membio2str(out);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='add'>+    if (DSA_HAS_PRIVATE(dsa))</div><div class='add'>+        return ossl_pkey_export_traditional(argc, argv, self, 0);</div><div class='add'>+    else</div><div class='add'>+        return ossl_pkey_export_spki(self, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -381,26 +244,13 @@ ossl_dsa_export(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dsa_to_der(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    DSA *dsa;</div><div class='del'>-    int (*i2d_func)(DSA *, unsigned char **);</div><div class='del'>-    unsigned char *p;</div><div class='del'>-    long len;</div><div class='del'>-    VALUE str;</div><div class='add'>+    OSSL_3_const DSA *dsa;</div><div class='ctx'> </div><div class='ctx'>     GetDSA(self, dsa);</div><div class='del'>-    if(DSA_HAS_PRIVATE(dsa))</div><div class='del'>-	i2d_func = (int (*)(DSA *,unsigned char **))i2d_DSAPrivateKey;</div><div class='add'>+    if (DSA_HAS_PRIVATE(dsa))</div><div class='add'>+        return ossl_pkey_export_traditional(0, NULL, self, 1);</div><div class='ctx'>     else</div><div class='del'>-	i2d_func = i2d_DSA_PUBKEY;</div><div class='del'>-    if((len = i2d_func(dsa, NULL)) &lt;= 0)</div><div class='del'>-	ossl_raise(eDSAError, NULL);</div><div class='del'>-    str = rb_str_new(0, len);</div><div class='del'>-    p = (unsigned char *)RSTRING_PTR(str);</div><div class='del'>-    if(i2d_func(dsa, &amp;p) &lt; 0)</div><div class='del'>-	ossl_raise(eDSAError, NULL);</div><div class='del'>-    ossl_str_adjust(str, p);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='add'>+        return ossl_pkey_export_spki(self, 1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -415,7 +265,7 @@ ossl_dsa_to_der(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_dsa_get_params(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    DSA *dsa;</div><div class='add'>+    OSSL_3_const DSA *dsa;</div><div class='ctx'>     VALUE hash;</div><div class='ctx'>     const BIGNUM *p, *q, *g, *pub_key, *priv_key;</div><div class='ctx'> </div><div class='hunk'>@@ -434,158 +284,6 @@ ossl_dsa_get_params(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *    dsa.to_text -&gt; aString</div><div class='del'>- *</div><div class='del'>- * Prints all parameters of key to buffer</div><div class='del'>- * INSECURE: PRIVATE INFORMATIONS CAN LEAK OUT!!!</div><div class='del'>- * Don't use :-)) (I's up to you)</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_dsa_to_text(VALUE self)</div><div class='del'>-{</div><div class='del'>-    DSA *dsa;</div><div class='del'>-    BIO *out;</div><div class='del'>-    VALUE str;</div><div class='del'>-</div><div class='del'>-    GetDSA(self, dsa);</div><div class='del'>-    if (!(out = BIO_new(BIO_s_mem()))) {</div><div class='del'>-	ossl_raise(eDSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    if (!DSA_print(out, dsa, 0)) { /* offset = 0 */</div><div class='del'>-	BIO_free(out);</div><div class='del'>-	ossl_raise(eDSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    str = ossl_membio2str(out);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *    dsa.public_key -&gt; aDSA</div><div class='del'>- *</div><div class='del'>- * Returns a new DSA instance that carries just the public key information.</div><div class='del'>- * If the current instance has also private key information, this will no</div><div class='del'>- * longer be present in the new instance. This feature is helpful for</div><div class='del'>- * publishing the public key information without leaking any of the private</div><div class='del'>- * information.</div><div class='del'>- *</div><div class='del'>- * === Example</div><div class='del'>- *  dsa = OpenSSL::PKey::DSA.new(2048) # has public and private information</div><div class='del'>- *  pub_key = dsa.public_key # has only the public part available</div><div class='del'>- *  pub_key_der = pub_key.to_der # it's safe to publish this</div><div class='del'>- *</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_dsa_to_public_key(VALUE self)</div><div class='del'>-{</div><div class='del'>-    EVP_PKEY *pkey;</div><div class='del'>-    DSA *dsa;</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    GetPKeyDSA(self, pkey);</div><div class='del'>-    /* err check performed by dsa_instance */</div><div class='del'>-#define DSAPublicKey_dup(dsa) (DSA *)ASN1_dup( \</div><div class='del'>-	(i2d_of_void *)i2d_DSAPublicKey, (d2i_of_void *)d2i_DSAPublicKey, (char *)(dsa))</div><div class='del'>-    dsa = DSAPublicKey_dup(EVP_PKEY_get0_DSA(pkey));</div><div class='del'>-#undef DSAPublicKey_dup</div><div class='del'>-    obj = dsa_instance(rb_obj_class(self), dsa);</div><div class='del'>-    if (obj == Qfalse) {</div><div class='del'>-	DSA_free(dsa);</div><div class='del'>-	ossl_raise(eDSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *    dsa.syssign(string) -&gt; aString</div><div class='del'>- *</div><div class='del'>- * Computes and returns the DSA signature of _string_, where _string_ is</div><div class='del'>- * expected to be an already-computed message digest of the original input</div><div class='del'>- * data. The signature is issued using the private key of this DSA instance.</div><div class='del'>- *</div><div class='del'>- * === Parameters</div><div class='del'>- * * _string_ is a message digest of the original input data to be signed.</div><div class='del'>- *</div><div class='del'>- * === Example</div><div class='del'>- *  dsa = OpenSSL::PKey::DSA.new(2048)</div><div class='del'>- *  doc = "Sign me"</div><div class='del'>- *  digest = OpenSSL::Digest::SHA1.digest(doc)</div><div class='del'>- *  sig = dsa.syssign(digest)</div><div class='del'>- *</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_dsa_sign(VALUE self, VALUE data)</div><div class='del'>-{</div><div class='del'>-    DSA *dsa;</div><div class='del'>-    const BIGNUM *dsa_q;</div><div class='del'>-    unsigned int buf_len;</div><div class='del'>-    VALUE str;</div><div class='del'>-</div><div class='del'>-    GetDSA(self, dsa);</div><div class='del'>-    DSA_get0_pqg(dsa, NULL, &amp;dsa_q, NULL);</div><div class='del'>-    if (!dsa_q)</div><div class='del'>-	ossl_raise(eDSAError, "incomplete DSA");</div><div class='del'>-    if (!DSA_PRIVATE(self, dsa))</div><div class='del'>-	ossl_raise(eDSAError, "Private DSA key needed!");</div><div class='del'>-    StringValue(data);</div><div class='del'>-    str = rb_str_new(0, DSA_size(dsa));</div><div class='del'>-    if (!DSA_sign(0, (unsigned char *)RSTRING_PTR(data), RSTRING_LENINT(data),</div><div class='del'>-		  (unsigned char *)RSTRING_PTR(str),</div><div class='del'>-		  &amp;buf_len, dsa)) { /* type is ignored (0) */</div><div class='del'>-	ossl_raise(eDSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    rb_str_set_len(str, buf_len);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *    dsa.sysverify(digest, sig) -&gt; true | false</div><div class='del'>- *</div><div class='del'>- * Verifies whether the signature is valid given the message digest input. It</div><div class='del'>- * does so by validating _sig_ using the public key of this DSA instance.</div><div class='del'>- *</div><div class='del'>- * === Parameters</div><div class='del'>- * * _digest_ is a message digest of the original input data to be signed</div><div class='del'>- * * _sig_ is a DSA signature value</div><div class='del'>- *</div><div class='del'>- * === Example</div><div class='del'>- *  dsa = OpenSSL::PKey::DSA.new(2048)</div><div class='del'>- *  doc = "Sign me"</div><div class='del'>- *  digest = OpenSSL::Digest::SHA1.digest(doc)</div><div class='del'>- *  sig = dsa.syssign(digest)</div><div class='del'>- *  puts dsa.sysverify(digest, sig) # =&gt; true</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_dsa_verify(VALUE self, VALUE digest, VALUE sig)</div><div class='del'>-{</div><div class='del'>-    DSA *dsa;</div><div class='del'>-    int ret;</div><div class='del'>-</div><div class='del'>-    GetDSA(self, dsa);</div><div class='del'>-    StringValue(digest);</div><div class='del'>-    StringValue(sig);</div><div class='del'>-    /* type is ignored (0) */</div><div class='del'>-    ret = DSA_verify(0, (unsigned char *)RSTRING_PTR(digest), RSTRING_LENINT(digest),</div><div class='del'>-		     (unsigned char *)RSTRING_PTR(sig), RSTRING_LENINT(sig), dsa);</div><div class='del'>-    if (ret &lt; 0) {</div><div class='del'>-	ossl_raise(eDSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    else if (ret == 1) {</div><div class='del'>-	return Qtrue;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * Document-method: OpenSSL::PKey::DSA#set_pqg</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   dsa.set_pqg(p, q, g) -&gt; self</div><div class='hunk'>@@ -630,20 +328,17 @@ Init_ossl_dsa(void)</div><div class='ctx'>      */</div><div class='ctx'>     cDSA = rb_define_class_under(mPKey, "DSA", cPKey);</div><div class='ctx'> </div><div class='del'>-    rb_define_singleton_method(cDSA, "generate", ossl_dsa_s_generate, 1);</div><div class='ctx'>     rb_define_method(cDSA, "initialize", ossl_dsa_initialize, -1);</div><div class='add'>+#ifndef HAVE_EVP_PKEY_DUP</div><div class='ctx'>     rb_define_method(cDSA, "initialize_copy", ossl_dsa_initialize_copy, 1);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(cDSA, "public?", ossl_dsa_is_public, 0);</div><div class='ctx'>     rb_define_method(cDSA, "private?", ossl_dsa_is_private, 0);</div><div class='del'>-    rb_define_method(cDSA, "to_text", ossl_dsa_to_text, 0);</div><div class='ctx'>     rb_define_method(cDSA, "export", ossl_dsa_export, -1);</div><div class='ctx'>     rb_define_alias(cDSA, "to_pem", "export");</div><div class='ctx'>     rb_define_alias(cDSA, "to_s", "export");</div><div class='ctx'>     rb_define_method(cDSA, "to_der", ossl_dsa_to_der, 0);</div><div class='del'>-    rb_define_method(cDSA, "public_key", ossl_dsa_to_public_key, 0);</div><div class='del'>-    rb_define_method(cDSA, "syssign", ossl_dsa_sign, 1);</div><div class='del'>-    rb_define_method(cDSA, "sysverify", ossl_dsa_verify, 2);</div><div class='ctx'> </div><div class='ctx'>     DEF_OSSL_PKEY_BN(cDSA, dsa, p);</div><div class='ctx'>     DEF_OSSL_PKEY_BN(cDSA, dsa, q);</div><div class='head'>diff --git a/ext/openssl/ossl_pkey_ec.c b/ext/openssl/ossl_pkey_ec.c<br/>index 8bb611248b..92842f95ac 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_pkey_ec.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey_ec.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_pkey_ec.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_pkey_ec.c</a></div><div class='hunk'>@@ -47,12 +47,7 @@ VALUE eEC_GROUP;</div><div class='ctx'> VALUE cEC_POINT;</div><div class='ctx'> VALUE eEC_POINT;</div><div class='ctx'> </div><div class='del'>-static ID s_GFp;</div><div class='del'>-static ID s_GFp_simple;</div><div class='del'>-static ID s_GFp_mont;</div><div class='del'>-static ID s_GFp_nist;</div><div class='del'>-static ID s_GF2m;</div><div class='del'>-static ID s_GF2m_simple;</div><div class='add'>+static ID s_GFp, s_GF2m;</div><div class='ctx'> </div><div class='ctx'> static ID ID_uncompressed;</div><div class='ctx'> static ID ID_compressed;</div><div class='hunk'>@@ -63,47 +58,6 @@ static ID id_i_group;</div><div class='ctx'> static VALUE ec_group_new(const EC_GROUP *group);</div><div class='ctx'> static VALUE ec_point_new(const EC_POINT *point, const EC_GROUP *group);</div><div class='ctx'> </div><div class='del'>-static VALUE ec_instance(VALUE klass, EC_KEY *ec)</div><div class='del'>-{</div><div class='del'>-    EVP_PKEY *pkey;</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    if (!ec) {</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    obj = NewPKey(klass);</div><div class='del'>-    if (!(pkey = EVP_PKEY_new())) {</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    if (!EVP_PKEY_assign_EC_KEY(pkey, ec)) {</div><div class='del'>-	EVP_PKEY_free(pkey);</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    SetPKey(obj, pkey);</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-VALUE ossl_ec_new(EVP_PKEY *pkey)</div><div class='del'>-{</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    if (!pkey) {</div><div class='del'>-	obj = ec_instance(cEC, EC_KEY_new());</div><div class='del'>-    } else {</div><div class='del'>-	obj = NewPKey(cEC);</div><div class='del'>-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC) {</div><div class='del'>-	    ossl_raise(rb_eTypeError, "Not a EC key!");</div><div class='del'>-	}</div><div class='del'>-	SetPKey(obj, pkey);</div><div class='del'>-    }</div><div class='del'>-    if (obj == Qfalse) {</div><div class='del'>-	ossl_raise(eECError, NULL);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  * Creates a new EC_KEY on the EC group obj. arg can be an EC::Group or a String</div><div class='ctx'>  * representing an OID.</div><div class='hunk'>@@ -150,16 +104,20 @@ ec_key_new_from_group(VALUE arg)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_ec_key_s_generate(VALUE klass, VALUE arg)</div><div class='ctx'> {</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='ctx'>     EC_KEY *ec;</div><div class='ctx'>     VALUE obj;</div><div class='ctx'> </div><div class='del'>-    ec = ec_key_new_from_group(arg);</div><div class='add'>+    obj = rb_obj_alloc(klass);</div><div class='ctx'> </div><div class='del'>-    obj = ec_instance(klass, ec);</div><div class='del'>-    if (obj == Qfalse) {</div><div class='del'>-	EC_KEY_free(ec);</div><div class='del'>-	ossl_raise(eECError, NULL);</div><div class='add'>+    ec = ec_key_new_from_group(arg);</div><div class='add'>+    pkey = EVP_PKEY_new();</div><div class='add'>+    if (!pkey || EVP_PKEY_assign_EC_KEY(pkey, ec) != 1) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        EC_KEY_free(ec);</div><div class='add'>+        ossl_raise(eECError, "EVP_PKEY_assign_EC_KEY");</div><div class='ctx'>     }</div><div class='add'>+    RTYPEDDATA_DATA(obj) = pkey;</div><div class='ctx'> </div><div class='ctx'>     if (!EC_KEY_generate_key(ec))</div><div class='ctx'> 	ossl_raise(eECError, "EC_KEY_generate_key");</div><div class='hunk'>@@ -182,81 +140,82 @@ static VALUE ossl_ec_key_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     EVP_PKEY *pkey;</div><div class='ctx'>     EC_KEY *ec;</div><div class='add'>+    BIO *in;</div><div class='ctx'>     VALUE arg, pass;</div><div class='add'>+    int type;</div><div class='ctx'> </div><div class='del'>-    GetPKey(self, pkey);</div><div class='del'>-    if (EVP_PKEY_base_id(pkey) != EVP_PKEY_NONE)</div><div class='del'>-        ossl_raise(eECError, "EC_KEY already initialized");</div><div class='add'>+    TypedData_Get_Struct(self, EVP_PKEY, &amp;ossl_evp_pkey_type, pkey);</div><div class='add'>+    if (pkey)</div><div class='add'>+        rb_raise(rb_eTypeError, "pkey already initialized");</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "02", &amp;arg, &amp;pass);</div><div class='del'>-</div><div class='ctx'>     if (NIL_P(arg)) {</div><div class='ctx'>         if (!(ec = EC_KEY_new()))</div><div class='del'>-	    ossl_raise(eECError, NULL);</div><div class='del'>-    } else if (rb_obj_is_kind_of(arg, cEC)) {</div><div class='del'>-	EC_KEY *other_ec = NULL;</div><div class='del'>-</div><div class='del'>-	GetEC(arg, other_ec);</div><div class='del'>-	if (!(ec = EC_KEY_dup(other_ec)))</div><div class='del'>-	    ossl_raise(eECError, NULL);</div><div class='del'>-    } else if (rb_obj_is_kind_of(arg, cEC_GROUP)) {</div><div class='del'>-	ec = ec_key_new_from_group(arg);</div><div class='del'>-    } else {</div><div class='del'>-	BIO *in;</div><div class='del'>-</div><div class='del'>-	pass = ossl_pem_passwd_value(pass);</div><div class='del'>-	in = ossl_obj2bio(&amp;arg);</div><div class='add'>+            ossl_raise(eECError, "EC_KEY_new");</div><div class='add'>+        goto legacy;</div><div class='add'>+    }</div><div class='add'>+    else if (rb_obj_is_kind_of(arg, cEC_GROUP)) {</div><div class='add'>+        ec = ec_key_new_from_group(arg);</div><div class='add'>+        goto legacy;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-	ec = PEM_read_bio_ECPrivateKey(in, NULL, ossl_pem_passwd_cb, (void *)pass);</div><div class='del'>-	if (!ec) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    ec = PEM_read_bio_EC_PUBKEY(in, NULL, ossl_pem_passwd_cb, (void *)pass);</div><div class='del'>-	}</div><div class='del'>-	if (!ec) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    ec = d2i_ECPrivateKey_bio(in, NULL);</div><div class='del'>-	}</div><div class='del'>-	if (!ec) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    ec = d2i_EC_PUBKEY_bio(in, NULL);</div><div class='del'>-	}</div><div class='del'>-	BIO_free(in);</div><div class='add'>+    pass = ossl_pem_passwd_value(pass);</div><div class='add'>+    arg = ossl_to_der_if_possible(arg);</div><div class='add'>+    in = ossl_obj2bio(&amp;arg);</div><div class='ctx'> </div><div class='del'>-	if (!ec) {</div><div class='del'>-	    ossl_clear_error();</div><div class='del'>-	    ec = ec_key_new_from_group(arg);</div><div class='del'>-	}</div><div class='add'>+    pkey = ossl_pkey_read_generic(in, pass);</div><div class='add'>+    BIO_free(in);</div><div class='add'>+    if (!pkey) {</div><div class='add'>+        ossl_clear_error();</div><div class='add'>+        ec = ec_key_new_from_group(arg);</div><div class='add'>+        goto legacy;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (!EVP_PKEY_assign_EC_KEY(pkey, ec)) {</div><div class='del'>-	EC_KEY_free(ec);</div><div class='del'>-	ossl_raise(eECError, "EVP_PKEY_assign_EC_KEY");</div><div class='add'>+    type = EVP_PKEY_base_id(pkey);</div><div class='add'>+    if (type != EVP_PKEY_EC) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        rb_raise(eDSAError, "incorrect pkey type: %s", OBJ_nid2sn(type));</div><div class='ctx'>     }</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='add'>+    return self;</div><div class='ctx'> </div><div class='add'>+  legacy:</div><div class='add'>+    pkey = EVP_PKEY_new();</div><div class='add'>+    if (!pkey || EVP_PKEY_assign_EC_KEY(pkey, ec) != 1) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        EC_KEY_free(ec);</div><div class='add'>+        ossl_raise(eECError, "EVP_PKEY_assign_EC_KEY");</div><div class='add'>+    }</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifndef HAVE_EVP_PKEY_DUP</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_ec_key_initialize_copy(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='ctx'>     EVP_PKEY *pkey;</div><div class='ctx'>     EC_KEY *ec, *ec_new;</div><div class='ctx'> </div><div class='del'>-    GetPKey(self, pkey);</div><div class='del'>-    if (EVP_PKEY_base_id(pkey) != EVP_PKEY_NONE)</div><div class='del'>-	ossl_raise(eECError, "EC already initialized");</div><div class='add'>+    TypedData_Get_Struct(self, EVP_PKEY, &amp;ossl_evp_pkey_type, pkey);</div><div class='add'>+    if (pkey)</div><div class='add'>+        rb_raise(rb_eTypeError, "pkey already initialized");</div><div class='ctx'>     GetEC(other, ec);</div><div class='ctx'> </div><div class='ctx'>     ec_new = EC_KEY_dup(ec);</div><div class='ctx'>     if (!ec_new)</div><div class='ctx'> 	ossl_raise(eECError, "EC_KEY_dup");</div><div class='del'>-    if (!EVP_PKEY_assign_EC_KEY(pkey, ec_new)) {</div><div class='del'>-	EC_KEY_free(ec_new);</div><div class='del'>-	ossl_raise(eECError, "EVP_PKEY_assign_EC_KEY");</div><div class='add'>+</div><div class='add'>+    pkey = EVP_PKEY_new();</div><div class='add'>+    if (!pkey || EVP_PKEY_assign_EC_KEY(pkey, ec_new) != 1) {</div><div class='add'>+        EC_KEY_free(ec_new);</div><div class='add'>+        ossl_raise(eECError, "EVP_PKEY_assign_EC_KEY");</div><div class='ctx'>     }</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='hunk'>@@ -268,7 +227,7 @@ ossl_ec_key_initialize_copy(VALUE self, VALUE other)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_ec_key_get_group(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    EC_KEY *ec;</div><div class='add'>+    OSSL_3_const EC_KEY *ec;</div><div class='ctx'>     const EC_GROUP *group;</div><div class='ctx'> </div><div class='ctx'>     GetEC(self, ec);</div><div class='hunk'>@@ -289,6 +248,9 @@ ossl_ec_key_get_group(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_ec_key_set_group(VALUE self, VALUE group_v)</div><div class='ctx'> {</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(3, 0, 0)</div><div class='add'>+    rb_raise(ePKeyError, "pkeys are immutable on OpenSSL 3.0");</div><div class='add'>+#else</div><div class='ctx'>     EC_KEY *ec;</div><div class='ctx'>     EC_GROUP *group;</div><div class='ctx'> </div><div class='hunk'>@@ -299,6 +261,7 @@ ossl_ec_key_set_group(VALUE self, VALUE group_v)</div><div class='ctx'>         ossl_raise(eECError, "EC_KEY_set_group");</div><div class='ctx'> </div><div class='ctx'>     return group_v;</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -309,7 +272,7 @@ ossl_ec_key_set_group(VALUE self, VALUE group_v)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE ossl_ec_key_get_private_key(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    EC_KEY *ec;</div><div class='add'>+    OSSL_3_const EC_KEY *ec;</div><div class='ctx'>     const BIGNUM *bn;</div><div class='ctx'> </div><div class='ctx'>     GetEC(self, ec);</div><div class='hunk'>@@ -327,6 +290,9 @@ static VALUE ossl_ec_key_get_private_key(VALUE self)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE ossl_ec_key_set_private_key(VALUE self, VALUE private_key)</div><div class='ctx'> {</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(3, 0, 0)</div><div class='add'>+    rb_raise(ePKeyError, "pkeys are immutable on OpenSSL 3.0");</div><div class='add'>+#else</div><div class='ctx'>     EC_KEY *ec;</div><div class='ctx'>     BIGNUM *bn = NULL;</div><div class='ctx'> </div><div class='hunk'>@@ -340,11 +306,13 @@ static VALUE ossl_ec_key_set_private_key(VALUE self, VALUE private_key)</div><div class='ctx'>     case 0:</div><div class='ctx'>         if (bn == NULL)</div><div class='ctx'>             break;</div><div class='add'>+	/* fallthrough */</div><div class='ctx'>     default:</div><div class='ctx'>         ossl_raise(eECError, "EC_KEY_set_private_key");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return private_key;</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -355,7 +323,7 @@ static VALUE ossl_ec_key_set_private_key(VALUE self, VALUE private_key)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE ossl_ec_key_get_public_key(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    EC_KEY *ec;</div><div class='add'>+    OSSL_3_const EC_KEY *ec;</div><div class='ctx'>     const EC_POINT *point;</div><div class='ctx'> </div><div class='ctx'>     GetEC(self, ec);</div><div class='hunk'>@@ -373,6 +341,9 @@ static VALUE ossl_ec_key_get_public_key(VALUE self)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE ossl_ec_key_set_public_key(VALUE self, VALUE public_key)</div><div class='ctx'> {</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(3, 0, 0)</div><div class='add'>+    rb_raise(ePKeyError, "pkeys are immutable on OpenSSL 3.0");</div><div class='add'>+#else</div><div class='ctx'>     EC_KEY *ec;</div><div class='ctx'>     EC_POINT *point = NULL;</div><div class='ctx'> </div><div class='hunk'>@@ -386,11 +357,13 @@ static VALUE ossl_ec_key_set_public_key(VALUE self, VALUE public_key)</div><div class='ctx'>     case 0:</div><div class='ctx'>         if (point == NULL)</div><div class='ctx'>             break;</div><div class='add'>+	/* fallthrough */</div><div class='ctx'>     default:</div><div class='ctx'>         ossl_raise(eECError, "EC_KEY_set_public_key");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return public_key;</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -402,7 +375,7 @@ static VALUE ossl_ec_key_set_public_key(VALUE self, VALUE public_key)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE ossl_ec_key_is_public(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    EC_KEY *ec;</div><div class='add'>+    OSSL_3_const EC_KEY *ec;</div><div class='ctx'> </div><div class='ctx'>     GetEC(self, ec);</div><div class='ctx'> </div><div class='hunk'>@@ -418,73 +391,13 @@ static VALUE ossl_ec_key_is_public(VALUE self)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE ossl_ec_key_is_private(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    EC_KEY *ec;</div><div class='add'>+    OSSL_3_const EC_KEY *ec;</div><div class='ctx'> </div><div class='ctx'>     GetEC(self, ec);</div><div class='ctx'> </div><div class='ctx'>     return EC_KEY_get0_private_key(ec) ? Qtrue : Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE ossl_ec_key_to_string(VALUE self, VALUE ciph, VALUE pass, int format)</div><div class='del'>-{</div><div class='del'>-    EC_KEY *ec;</div><div class='del'>-    BIO *out;</div><div class='del'>-    int i = -1;</div><div class='del'>-    int private = 0;</div><div class='del'>-    VALUE str;</div><div class='del'>-    const EVP_CIPHER *cipher = NULL;</div><div class='del'>-</div><div class='del'>-    GetEC(self, ec);</div><div class='del'>-</div><div class='del'>-    if (EC_KEY_get0_public_key(ec) == NULL)</div><div class='del'>-        ossl_raise(eECError, "can't export - no public key set");</div><div class='del'>-</div><div class='del'>-    if (EC_KEY_check_key(ec) != 1)</div><div class='del'>-	ossl_raise(eECError, "can't export - EC_KEY_check_key failed");</div><div class='del'>-</div><div class='del'>-    if (EC_KEY_get0_private_key(ec))</div><div class='del'>-        private = 1;</div><div class='del'>-</div><div class='del'>-    if (!NIL_P(ciph)) {</div><div class='del'>-	cipher = ossl_evp_get_cipherbyname(ciph);</div><div class='del'>-	pass = ossl_pem_passwd_value(pass);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!(out = BIO_new(BIO_s_mem())))</div><div class='del'>-        ossl_raise(eECError, "BIO_new(BIO_s_mem())");</div><div class='del'>-</div><div class='del'>-    switch(format) {</div><div class='del'>-    case EXPORT_PEM:</div><div class='del'>-    	if (private) {</div><div class='del'>-            i = PEM_write_bio_ECPrivateKey(out, ec, cipher, NULL, 0, ossl_pem_passwd_cb, (void *)pass);</div><div class='del'>-    	} else {</div><div class='del'>-            i = PEM_write_bio_EC_PUBKEY(out, ec);</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-    	break;</div><div class='del'>-    case EXPORT_DER:</div><div class='del'>-        if (private) {</div><div class='del'>-            i = i2d_ECPrivateKey_bio(out, ec);</div><div class='del'>-        } else {</div><div class='del'>-            i = i2d_EC_PUBKEY_bio(out, ec);</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-    	break;</div><div class='del'>-    default:</div><div class='del'>-        BIO_free(out);</div><div class='del'>-    	ossl_raise(rb_eRuntimeError, "unknown format (internal error)");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (i != 1) {</div><div class='del'>-        BIO_free(out);</div><div class='del'>-        ossl_raise(eECError, "outlen=%d", i);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    str = ossl_membio2str(out);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     key.export([cipher, pass_phrase]) =&gt; String</div><div class='hunk'>@@ -495,11 +408,18 @@ static VALUE ossl_ec_key_to_string(VALUE self, VALUE ciph, VALUE pass, int forma</div><div class='ctx'>  * instance. Note that encryption will only be effective for a private key,</div><div class='ctx'>  * public keys will always be encoded in plain text.</div><div class='ctx'>  */</div><div class='del'>-static VALUE ossl_ec_key_export(int argc, VALUE *argv, VALUE self)</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ec_key_export(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    VALUE cipher, passwd;</div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;cipher, &amp;passwd);</div><div class='del'>-    return ossl_ec_key_to_string(self, cipher, passwd, EXPORT_PEM);</div><div class='add'>+    OSSL_3_const EC_KEY *ec;</div><div class='add'>+</div><div class='add'>+    GetEC(self, ec);</div><div class='add'>+    if (EC_KEY_get0_public_key(ec) == NULL)</div><div class='add'>+        ossl_raise(eECError, "can't export - no public key set");</div><div class='add'>+    if (EC_KEY_get0_private_key(ec))</div><div class='add'>+        return ossl_pkey_export_traditional(argc, argv, self, 0);</div><div class='add'>+    else</div><div class='add'>+        return ossl_pkey_export_spki(self, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -508,36 +428,19 @@ static VALUE ossl_ec_key_export(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *</div><div class='ctx'>  *  See the OpenSSL documentation for i2d_ECPrivateKey_bio()</div><div class='ctx'>  */</div><div class='del'>-static VALUE ossl_ec_key_to_der(VALUE self)</div><div class='del'>-{</div><div class='del'>-    return ossl_ec_key_to_string(self, Qnil, Qnil, EXPORT_DER);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     key.to_text   =&gt; String</div><div class='del'>- *</div><div class='del'>- *  See the OpenSSL documentation for EC_KEY_print()</div><div class='del'>- */</div><div class='del'>-static VALUE ossl_ec_key_to_text(VALUE self)</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ec_key_to_der(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    EC_KEY *ec;</div><div class='del'>-    BIO *out;</div><div class='del'>-    VALUE str;</div><div class='add'>+    OSSL_3_const EC_KEY *ec;</div><div class='ctx'> </div><div class='ctx'>     GetEC(self, ec);</div><div class='del'>-    if (!(out = BIO_new(BIO_s_mem()))) {</div><div class='del'>-	ossl_raise(eECError, "BIO_new(BIO_s_mem())");</div><div class='del'>-    }</div><div class='del'>-    if (!EC_KEY_print(out, ec, 0)) {</div><div class='del'>-	BIO_free(out);</div><div class='del'>-	ossl_raise(eECError, "EC_KEY_print");</div><div class='del'>-    }</div><div class='del'>-    str = ossl_membio2str(out);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='add'>+    if (EC_KEY_get0_public_key(ec) == NULL)</div><div class='add'>+        ossl_raise(eECError, "can't export - no public key set");</div><div class='add'>+    if (EC_KEY_get0_private_key(ec))</div><div class='add'>+        return ossl_pkey_export_traditional(0, NULL, self, 1);</div><div class='add'>+    else</div><div class='add'>+        return ossl_pkey_export_spki(self, 1);</div><div class='ctx'> }</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     key.generate_key!   =&gt; self</div><div class='hunk'>@@ -554,6 +457,9 @@ static VALUE ossl_ec_key_to_text(VALUE self)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE ossl_ec_key_generate_key(VALUE self)</div><div class='ctx'> {</div><div class='add'>+#if OSSL_OPENSSL_PREREQ(3, 0, 0)</div><div class='add'>+    rb_raise(ePKeyError, "pkeys are immutable on OpenSSL 3.0");</div><div class='add'>+#else</div><div class='ctx'>     EC_KEY *ec;</div><div class='ctx'> </div><div class='ctx'>     GetEC(self, ec);</div><div class='hunk'>@@ -561,107 +467,53 @@ static VALUE ossl_ec_key_generate_key(VALUE self)</div><div class='ctx'> 	ossl_raise(eECError, "EC_KEY_generate_key");</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     key.check_key   =&gt; true</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    key.check_key   =&gt; true</div><div class='ctx'>  *</div><div class='del'>- *  Raises an exception if the key is invalid.</div><div class='add'>+ * Raises an exception if the key is invalid.</div><div class='ctx'>  *</div><div class='del'>- *  See the OpenSSL documentation for EC_KEY_check_key()</div><div class='add'>+ * See also the man page EVP_PKEY_public_check(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE ossl_ec_key_check_key(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    EC_KEY *ec;</div><div class='del'>-</div><div class='del'>-    GetEC(self, ec);</div><div class='del'>-    if (EC_KEY_check_key(ec) != 1)</div><div class='del'>-	ossl_raise(eECError, "EC_KEY_check_key");</div><div class='del'>-</div><div class='del'>-    return Qtrue;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     key.dh_compute_key(pubkey)   =&gt; String</div><div class='del'>- *</div><div class='del'>- *  See the OpenSSL documentation for ECDH_compute_key()</div><div class='del'>- */</div><div class='del'>-static VALUE ossl_ec_key_dh_compute_key(VALUE self, VALUE pubkey)</div><div class='del'>-{</div><div class='del'>-    EC_KEY *ec;</div><div class='del'>-    EC_POINT *point;</div><div class='del'>-    int buf_len;</div><div class='del'>-    VALUE str;</div><div class='del'>-</div><div class='del'>-    GetEC(self, ec);</div><div class='del'>-    GetECPoint(pubkey, point);</div><div class='del'>-</div><div class='del'>-/* BUG: need a way to figure out the maximum string size */</div><div class='del'>-    buf_len = 1024;</div><div class='del'>-    str = rb_str_new(0, buf_len);</div><div class='del'>-/* BUG: take KDF as a block */</div><div class='del'>-    buf_len = ECDH_compute_key(RSTRING_PTR(str), buf_len, point, ec, NULL);</div><div class='del'>-    if (buf_len &lt; 0)</div><div class='del'>-         ossl_raise(eECError, "ECDH_compute_key");</div><div class='del'>-</div><div class='del'>-    rb_str_resize(str, buf_len);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* sign_setup */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     key.dsa_sign_asn1(data)   =&gt; String</div><div class='del'>- *</div><div class='del'>- *  See the OpenSSL documentation for ECDSA_sign()</div><div class='del'>- */</div><div class='del'>-static VALUE ossl_ec_key_dsa_sign_asn1(VALUE self, VALUE data)</div><div class='del'>-{</div><div class='del'>-    EC_KEY *ec;</div><div class='del'>-    unsigned int buf_len;</div><div class='del'>-    VALUE str;</div><div class='add'>+#ifdef HAVE_EVP_PKEY_CHECK</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+    EVP_PKEY_CTX *pctx;</div><div class='add'>+    const EC_KEY *ec;</div><div class='ctx'> </div><div class='add'>+    GetPKey(self, pkey);</div><div class='ctx'>     GetEC(self, ec);</div><div class='del'>-    StringValue(data);</div><div class='del'>-</div><div class='del'>-    if (EC_KEY_get0_private_key(ec) == NULL)</div><div class='del'>-	ossl_raise(eECError, "Private EC key needed!");</div><div class='del'>-</div><div class='del'>-    str = rb_str_new(0, ECDSA_size(ec));</div><div class='del'>-    if (ECDSA_sign(0, (unsigned char *) RSTRING_PTR(data), RSTRING_LENINT(data), (unsigned char *) RSTRING_PTR(str), &amp;buf_len, ec) != 1)</div><div class='del'>-	ossl_raise(eECError, "ECDSA_sign");</div><div class='del'>-    rb_str_set_len(str, buf_len);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='add'>+    pctx = EVP_PKEY_CTX_new(pkey, /* engine */NULL);</div><div class='add'>+    if (!pctx)</div><div class='add'>+        ossl_raise(eECError, "EVP_PKEY_CTX_new");</div><div class='add'>+</div><div class='add'>+    if (EC_KEY_get0_private_key(ec) != NULL) {</div><div class='add'>+        if (EVP_PKEY_check(pctx) != 1) {</div><div class='add'>+            EVP_PKEY_CTX_free(pctx);</div><div class='add'>+            ossl_raise(eECError, "EVP_PKEY_check");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (EVP_PKEY_public_check(pctx) != 1) {</div><div class='add'>+            EVP_PKEY_CTX_free(pctx);</div><div class='add'>+            ossl_raise(eECError, "EVP_PKEY_public_check");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     key.dsa_verify_asn1(data, sig)   =&gt; true or false</div><div class='del'>- *</div><div class='del'>- *  See the OpenSSL documentation for ECDSA_verify()</div><div class='del'>- */</div><div class='del'>-static VALUE ossl_ec_key_dsa_verify_asn1(VALUE self, VALUE data, VALUE sig)</div><div class='del'>-{</div><div class='add'>+    EVP_PKEY_CTX_free(pctx);</div><div class='add'>+#else</div><div class='ctx'>     EC_KEY *ec;</div><div class='ctx'> </div><div class='ctx'>     GetEC(self, ec);</div><div class='del'>-    StringValue(data);</div><div class='del'>-    StringValue(sig);</div><div class='del'>-</div><div class='del'>-    switch (ECDSA_verify(0, (unsigned char *) RSTRING_PTR(data), RSTRING_LENINT(data), (unsigned char *) RSTRING_PTR(sig), (int)RSTRING_LEN(sig), ec)) {</div><div class='del'>-    case 1:	return Qtrue;</div><div class='del'>-    case 0:	return Qfalse;</div><div class='del'>-    default:	break;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    ossl_raise(eECError, "ECDSA_verify");</div><div class='add'>+    if (EC_KEY_check_key(ec) != 1)</div><div class='add'>+	ossl_raise(eECError, "EC_KEY_check_key");</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    UNREACHABLE;</div><div class='add'>+    return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -670,7 +522,7 @@ static VALUE ossl_ec_key_dsa_verify_asn1(VALUE self, VALUE data, VALUE sig)</div><div class='ctx'> static void</div><div class='ctx'> ossl_ec_group_free(void *ptr)</div><div class='ctx'> {</div><div class='del'>-    EC_GROUP_clear_free(ptr);</div><div class='add'>+    EC_GROUP_free(ptr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const rb_data_type_t ossl_ec_group_type = {</div><div class='hunk'>@@ -706,20 +558,11 @@ ec_group_new(const EC_GROUP *group)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   OpenSSL::PKey::EC::Group.new(ec_group)</div><div class='ctx'>  *   OpenSSL::PKey::EC::Group.new(pem_or_der_encoded)</div><div class='del'>- *   OpenSSL::PKey::EC::Group.new(ec_method)</div><div class='ctx'>  *   OpenSSL::PKey::EC::Group.new(:GFp, bignum_p, bignum_a, bignum_b)</div><div class='ctx'>  *   OpenSSL::PKey::EC::Group.new(:GF2m, bignum_p, bignum_a, bignum_b)</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new EC::Group object.</div><div class='ctx'>  *</div><div class='del'>- * _ec_method_ is a symbol that represents an EC_METHOD. Currently the following</div><div class='del'>- * are supported:</div><div class='del'>- *</div><div class='del'>- * * :GFp_simple</div><div class='del'>- * * :GFp_mont</div><div class='del'>- * * :GFp_nist</div><div class='del'>- * * :GF2m_simple</div><div class='del'>- *</div><div class='ctx'>  * If the first argument is :GFp or :GF2m, creates a new curve with given</div><div class='ctx'>  * parameters.</div><div class='ctx'>  */</div><div class='hunk'>@@ -734,29 +577,7 @@ static VALUE ossl_ec_group_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     switch (rb_scan_args(argc, argv, "13", &amp;arg1, &amp;arg2, &amp;arg3, &amp;arg4)) {</div><div class='ctx'>     case 1:</div><div class='del'>-        if (SYMBOL_P(arg1)) {</div><div class='del'>-            const EC_METHOD *method = NULL;</div><div class='del'>-            ID id = SYM2ID(arg1);</div><div class='del'>-</div><div class='del'>-            if (id == s_GFp_simple) {</div><div class='del'>-                method = EC_GFp_simple_method();</div><div class='del'>-            } else if (id == s_GFp_mont) {</div><div class='del'>-                method = EC_GFp_mont_method();</div><div class='del'>-            } else if (id == s_GFp_nist) {</div><div class='del'>-                method = EC_GFp_nist_method();</div><div class='del'>-#if !defined(OPENSSL_NO_EC2M)</div><div class='del'>-            } else if (id == s_GF2m_simple) {</div><div class='del'>-                method = EC_GF2m_simple_method();</div><div class='del'>-#endif</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            if (method) {</div><div class='del'>-                if ((group = EC_GROUP_new(method)) == NULL)</div><div class='del'>-                    ossl_raise(eEC_GROUP, "EC_GROUP_new");</div><div class='del'>-            } else {</div><div class='del'>-                ossl_raise(rb_eArgError, "unknown symbol, must be :GFp_simple, :GFp_mont, :GFp_nist or :GF2m_simple");</div><div class='del'>-            }</div><div class='del'>-        } else if (rb_obj_is_kind_of(arg1, cEC_GROUP)) {</div><div class='add'>+        if (rb_obj_is_kind_of(arg1, cEC_GROUP)) {</div><div class='ctx'>             const EC_GROUP *arg1_group;</div><div class='ctx'> </div><div class='ctx'>             GetECGroup(arg1, arg1_group);</div><div class='hunk'>@@ -820,8 +641,7 @@ static VALUE ossl_ec_group_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>         ossl_raise(rb_eArgError, "wrong number of arguments");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (group == NULL)</div><div class='del'>-        ossl_raise(eEC_GROUP, "");</div><div class='add'>+    ASSUME(group);</div><div class='ctx'>     RTYPEDDATA_DATA(self) = group;</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='hunk'>@@ -860,10 +680,11 @@ static VALUE ossl_ec_group_eql(VALUE a, VALUE b)</div><div class='ctx'>     GetECGroup(a, group1);</div><div class='ctx'>     GetECGroup(b, group2);</div><div class='ctx'> </div><div class='del'>-    if (EC_GROUP_cmp(group1, group2, ossl_bn_ctx) == 1)</div><div class='del'>-       return Qfalse;</div><div class='del'>-</div><div class='del'>-    return Qtrue;</div><div class='add'>+    switch (EC_GROUP_cmp(group1, group2, ossl_bn_ctx)) {</div><div class='add'>+    case 0: return Qtrue;</div><div class='add'>+    case 1: return Qfalse;</div><div class='add'>+    default: ossl_raise(eEC_GROUP, "EC_GROUP_cmp");</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1424,10 +1245,13 @@ static VALUE ossl_ec_point_eql(VALUE a, VALUE b)</div><div class='ctx'>     GetECPoint(b, point2);</div><div class='ctx'>     GetECGroup(group_v1, group);</div><div class='ctx'> </div><div class='del'>-    if (EC_POINT_cmp(group, point1, point2, ossl_bn_ctx) == 1)</div><div class='del'>-        return Qfalse;</div><div class='add'>+    switch (EC_POINT_cmp(group, point1, point2, ossl_bn_ctx)) {</div><div class='add'>+    case 0: return Qtrue;</div><div class='add'>+    case 1: return Qfalse;</div><div class='add'>+    default: ossl_raise(eEC_POINT, "EC_POINT_cmp");</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    return Qtrue;</div><div class='add'>+    UNREACHABLE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1445,7 +1269,7 @@ static VALUE ossl_ec_point_is_at_infinity(VALUE self)</div><div class='ctx'>     switch (EC_POINT_is_at_infinity(group, point)) {</div><div class='ctx'>     case 1: return Qtrue;</div><div class='ctx'>     case 0: return Qfalse;</div><div class='del'>-    default: ossl_raise(cEC_POINT, "EC_POINT_is_at_infinity");</div><div class='add'>+    default: ossl_raise(eEC_POINT, "EC_POINT_is_at_infinity");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     UNREACHABLE;</div><div class='hunk'>@@ -1466,7 +1290,7 @@ static VALUE ossl_ec_point_is_on_curve(VALUE self)</div><div class='ctx'>     switch (EC_POINT_is_on_curve(group, point, ossl_bn_ctx)) {</div><div class='ctx'>     case 1: return Qtrue;</div><div class='ctx'>     case 0: return Qfalse;</div><div class='del'>-    default: ossl_raise(cEC_POINT, "EC_POINT_is_on_curve");</div><div class='add'>+    default: ossl_raise(eEC_POINT, "EC_POINT_is_on_curve");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     UNREACHABLE;</div><div class='hunk'>@@ -1475,6 +1299,8 @@ static VALUE ossl_ec_point_is_on_curve(VALUE self)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   point.make_affine! =&gt; self</div><div class='add'>+ *</div><div class='add'>+ * This method is deprecated and should not be used. This is a no-op.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE ossl_ec_point_make_affine(VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -1484,8 +1310,11 @@ static VALUE ossl_ec_point_make_affine(VALUE self)</div><div class='ctx'>     GetECPoint(self, point);</div><div class='ctx'>     GetECPointGroup(self, group);</div><div class='ctx'> </div><div class='add'>+    rb_warn("OpenSSL::PKey::EC::Point#make_affine! is deprecated");</div><div class='add'>+#if !OSSL_OPENSSL_PREREQ(3, 0, 0)</div><div class='ctx'>     if (EC_POINT_make_affine(group, point, ossl_bn_ctx) != 1)</div><div class='del'>-        ossl_raise(cEC_POINT, "EC_POINT_make_affine");</div><div class='add'>+        ossl_raise(eEC_POINT, "EC_POINT_make_affine");</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -1503,7 +1332,7 @@ static VALUE ossl_ec_point_invert(VALUE self)</div><div class='ctx'>     GetECPointGroup(self, group);</div><div class='ctx'> </div><div class='ctx'>     if (EC_POINT_invert(group, point, ossl_bn_ctx) != 1)</div><div class='del'>-        ossl_raise(cEC_POINT, "EC_POINT_invert");</div><div class='add'>+        ossl_raise(eEC_POINT, "EC_POINT_invert");</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -1521,7 +1350,7 @@ static VALUE ossl_ec_point_set_to_infinity(VALUE self)</div><div class='ctx'>     GetECPointGroup(self, group);</div><div class='ctx'> </div><div class='ctx'>     if (EC_POINT_set_to_infinity(group, point) != 1)</div><div class='del'>-        ossl_raise(cEC_POINT, "EC_POINT_set_to_infinity");</div><div class='add'>+        ossl_raise(eEC_POINT, "EC_POINT_set_to_infinity");</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -1564,6 +1393,34 @@ ossl_ec_point_to_octet_string(VALUE self, VALUE conversion_form)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='add'>+ *   point.add(point) =&gt; point</div><div class='add'>+ *</div><div class='add'>+ * Performs elliptic curve point addition.</div><div class='add'>+ */</div><div class='add'>+static VALUE ossl_ec_point_add(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    EC_POINT *point_self, *point_other, *point_result;</div><div class='add'>+    const EC_GROUP *group;</div><div class='add'>+    VALUE group_v = rb_attr_get(self, id_i_group);</div><div class='add'>+    VALUE result;</div><div class='add'>+</div><div class='add'>+    GetECPoint(self, point_self);</div><div class='add'>+    GetECPoint(other, point_other);</div><div class='add'>+    GetECGroup(group_v, group);</div><div class='add'>+</div><div class='add'>+    result = rb_obj_alloc(cEC_POINT);</div><div class='add'>+    ossl_ec_point_initialize(1, &amp;group_v, result);</div><div class='add'>+    GetECPoint(result, point_result);</div><div class='add'>+</div><div class='add'>+    if (EC_POINT_add(group, point_result, point_self, point_other, ossl_bn_ctx) != 1) {</div><div class='add'>+        ossl_raise(eEC_POINT, "EC_POINT_add");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='ctx'>  *   point.mul(bn1 [, bn2]) =&gt; point</div><div class='ctx'>  *   point.mul(bns, points [, bn2]) =&gt; point</div><div class='ctx'>  *</div><div class='hunk'>@@ -1603,6 +1460,10 @@ static VALUE ossl_ec_point_mul(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	if (EC_POINT_mul(group, point_result, bn_g, point_self, bn, ossl_bn_ctx) != 1)</div><div class='ctx'> 	    ossl_raise(eEC_POINT, NULL);</div><div class='ctx'>     } else {</div><div class='add'>+#if (defined(OPENSSL_VERSION_MAJOR) &amp;&amp; OPENSSL_VERSION_MAJOR &gt;= 3) || defined(LIBRESSL_VERSION_NUMBER)</div><div class='add'>+        rb_raise(rb_eNotImpError, "calling #mul with arrays is not" \</div><div class='add'>+                 "supported by this OpenSSL version");</div><div class='add'>+#else</div><div class='ctx'> 	/*</div><div class='ctx'> 	 * bignums | arg1[0] | arg1[1] | arg1[2] | ...</div><div class='ctx'> 	 * points  | self    | arg2[0] | arg2[1] | ...</div><div class='hunk'>@@ -1617,6 +1478,9 @@ static VALUE ossl_ec_point_mul(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	if (RARRAY_LEN(arg1) != RARRAY_LEN(arg2) + 1) /* arg2 must be 1 larger */</div><div class='ctx'> 	    ossl_raise(rb_eArgError, "bns must be 1 longer than points; see the documentation");</div><div class='ctx'> </div><div class='add'>+        rb_warning("OpenSSL::PKey::EC::Point#mul(ary, ary) is deprecated; " \</div><div class='add'>+                   "use #mul(bn) form instead");</div><div class='add'>+</div><div class='ctx'> 	num = RARRAY_LEN(arg1);</div><div class='ctx'> 	bns_tmp = rb_ary_tmp_new(num);</div><div class='ctx'> 	bignums = ALLOCV_N(const BIGNUM *, tmp_b, num);</div><div class='hunk'>@@ -1642,6 +1506,7 @@ static VALUE ossl_ec_point_mul(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> 	ALLOCV_END(tmp_b);</div><div class='ctx'> 	ALLOCV_END(tmp_p);</div><div class='add'>+#endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='hunk'>@@ -1682,10 +1547,6 @@ void Init_ossl_ec(void)</div><div class='ctx'> </div><div class='ctx'>     s_GFp = rb_intern("GFp");</div><div class='ctx'>     s_GF2m = rb_intern("GF2m");</div><div class='del'>-    s_GFp_simple = rb_intern("GFp_simple");</div><div class='del'>-    s_GFp_mont = rb_intern("GFp_mont");</div><div class='del'>-    s_GFp_nist = rb_intern("GFp_nist");</div><div class='del'>-    s_GF2m_simple = rb_intern("GF2m_simple");</div><div class='ctx'> </div><div class='ctx'>     ID_uncompressed = rb_intern("uncompressed");</div><div class='ctx'>     ID_compressed = rb_intern("compressed");</div><div class='hunk'>@@ -1700,8 +1561,9 @@ void Init_ossl_ec(void)</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(cEC, "generate", ossl_ec_key_s_generate, 1);</div><div class='ctx'>     rb_define_method(cEC, "initialize", ossl_ec_key_initialize, -1);</div><div class='add'>+#ifndef HAVE_EVP_PKEY_DUP</div><div class='ctx'>     rb_define_method(cEC, "initialize_copy", ossl_ec_key_initialize_copy, 1);</div><div class='del'>-/* copy/dup/cmp */</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(cEC, "group", ossl_ec_key_get_group, 0);</div><div class='ctx'>     rb_define_method(cEC, "group=", ossl_ec_key_set_group, 1);</div><div class='hunk'>@@ -1724,15 +1586,9 @@ void Init_ossl_ec(void)</div><div class='ctx'>     rb_define_alias(cEC, "generate_key", "generate_key!");</div><div class='ctx'>     rb_define_method(cEC, "check_key", ossl_ec_key_check_key, 0);</div><div class='ctx'> </div><div class='del'>-    rb_define_method(cEC, "dh_compute_key", ossl_ec_key_dh_compute_key, 1);</div><div class='del'>-    rb_define_method(cEC, "dsa_sign_asn1", ossl_ec_key_dsa_sign_asn1, 1);</div><div class='del'>-    rb_define_method(cEC, "dsa_verify_asn1", ossl_ec_key_dsa_verify_asn1, 2);</div><div class='del'>-/* do_sign/do_verify */</div><div class='del'>-</div><div class='ctx'>     rb_define_method(cEC, "export", ossl_ec_key_export, -1);</div><div class='ctx'>     rb_define_alias(cEC, "to_pem", "export");</div><div class='ctx'>     rb_define_method(cEC, "to_der", ossl_ec_key_to_der, 0);</div><div class='del'>-    rb_define_method(cEC, "to_text", ossl_ec_key_to_text, 0);</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'>     rb_define_alloc_func(cEC_GROUP, ossl_ec_group_alloc);</div><div class='hunk'>@@ -1786,6 +1642,7 @@ void Init_ossl_ec(void)</div><div class='ctx'> /* all the other methods */</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(cEC_POINT, "to_octet_string", ossl_ec_point_to_octet_string, 1);</div><div class='add'>+    rb_define_method(cEC_POINT, "add", ossl_ec_point_add, 1);</div><div class='ctx'>     rb_define_method(cEC_POINT, "mul", ossl_ec_point_mul, -1);</div><div class='ctx'> </div><div class='ctx'>     id_i_group = rb_intern("@group");</div><div class='head'>diff --git a/ext/openssl/ossl_pkey_rsa.c b/ext/openssl/ossl_pkey_rsa.c<br/>index 4800fb2710..072adabe62 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_pkey_rsa.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_pkey_rsa.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_pkey_rsa.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_pkey_rsa.c</a></div><div class='hunk'>@@ -24,16 +24,16 @@</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='ctx'> static inline int</div><div class='del'>-RSA_HAS_PRIVATE(RSA *rsa)</div><div class='add'>+RSA_HAS_PRIVATE(OSSL_3_const RSA *rsa)</div><div class='ctx'> {</div><div class='del'>-    const BIGNUM *p, *q;</div><div class='add'>+    const BIGNUM *e, *d;</div><div class='ctx'> </div><div class='del'>-    RSA_get0_factors(rsa, &amp;p, &amp;q);</div><div class='del'>-    return p &amp;&amp; q; /* d? why? */</div><div class='add'>+    RSA_get0_key(rsa, NULL, &amp;e, &amp;d);</div><div class='add'>+    return e &amp;&amp; d;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline int</div><div class='del'>-RSA_PRIVATE(VALUE obj, RSA *rsa)</div><div class='add'>+RSA_PRIVATE(VALUE obj, OSSL_3_const RSA *rsa)</div><div class='ctx'> {</div><div class='ctx'>     return RSA_HAS_PRIVATE(rsa) || OSSL_PKEY_IS_PRIVATE(obj);</div><div class='ctx'> }</div><div class='hunk'>@@ -45,174 +45,30 @@ VALUE cRSA;</div><div class='ctx'> VALUE eRSAError;</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Public</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-rsa_instance(VALUE klass, RSA *rsa)</div><div class='del'>-{</div><div class='del'>-    EVP_PKEY *pkey;</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    if (!rsa) {</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    obj = NewPKey(klass);</div><div class='del'>-    if (!(pkey = EVP_PKEY_new())) {</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    if (!EVP_PKEY_assign_RSA(pkey, rsa)) {</div><div class='del'>-	EVP_PKEY_free(pkey);</div><div class='del'>-	return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    SetPKey(obj, pkey);</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-ossl_rsa_new(EVP_PKEY *pkey)</div><div class='del'>-{</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    if (!pkey) {</div><div class='del'>-	obj = rsa_instance(cRSA, RSA_new());</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	obj = NewPKey(cRSA);</div><div class='del'>-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_RSA) {</div><div class='del'>-	    ossl_raise(rb_eTypeError, "Not a RSA key!");</div><div class='del'>-	}</div><div class='del'>-	SetPKey(obj, pkey);</div><div class='del'>-    }</div><div class='del'>-    if (obj == Qfalse) {</div><div class='del'>-	ossl_raise(eRSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * Private</div><div class='ctx'>  */</div><div class='del'>-struct rsa_blocking_gen_arg {</div><div class='del'>-    RSA *rsa;</div><div class='del'>-    BIGNUM *e;</div><div class='del'>-    int size;</div><div class='del'>-    BN_GENCB *cb;</div><div class='del'>-    int result;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static void *</div><div class='del'>-rsa_blocking_gen(void *arg)</div><div class='del'>-{</div><div class='del'>-    struct rsa_blocking_gen_arg *gen = (struct rsa_blocking_gen_arg *)arg;</div><div class='del'>-    gen-&gt;result = RSA_generate_key_ex(gen-&gt;rsa, gen-&gt;size, gen-&gt;e, gen-&gt;cb);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static RSA *</div><div class='del'>-rsa_generate(int size, unsigned long exp)</div><div class='del'>-{</div><div class='del'>-    int i;</div><div class='del'>-    struct ossl_generate_cb_arg cb_arg = { 0 };</div><div class='del'>-    struct rsa_blocking_gen_arg gen_arg;</div><div class='del'>-    RSA *rsa = RSA_new();</div><div class='del'>-    BIGNUM *e = BN_new();</div><div class='del'>-    BN_GENCB *cb = BN_GENCB_new();</div><div class='del'>-</div><div class='del'>-    if (!rsa || !e || !cb) {</div><div class='del'>-	RSA_free(rsa);</div><div class='del'>-	BN_free(e);</div><div class='del'>-	BN_GENCB_free(cb);</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-    for (i = 0; i &lt; (int)sizeof(exp) * 8; ++i) {</div><div class='del'>-	if (exp &amp; (1UL &lt;&lt; i)) {</div><div class='del'>-	    if (BN_set_bit(e, i) == 0) {</div><div class='del'>-		BN_free(e);</div><div class='del'>-		RSA_free(rsa);</div><div class='del'>-		BN_GENCB_free(cb);</div><div class='del'>-		return NULL;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (rb_block_given_p())</div><div class='del'>-	cb_arg.yield = 1;</div><div class='del'>-    BN_GENCB_set(cb, ossl_generate_cb_2, &amp;cb_arg);</div><div class='del'>-    gen_arg.rsa = rsa;</div><div class='del'>-    gen_arg.e = e;</div><div class='del'>-    gen_arg.size = size;</div><div class='del'>-    gen_arg.cb = cb;</div><div class='del'>-    if (cb_arg.yield == 1) {</div><div class='del'>-	/* we cannot release GVL when callback proc is supplied */</div><div class='del'>-	rsa_blocking_gen(&amp;gen_arg);</div><div class='del'>-    } else {</div><div class='del'>-	/* there's a chance to unblock */</div><div class='del'>-	rb_thread_call_without_gvl(rsa_blocking_gen, &amp;gen_arg, ossl_generate_cb_stop, &amp;cb_arg);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    BN_GENCB_free(cb);</div><div class='del'>-    BN_free(e);</div><div class='del'>-    if (!gen_arg.result) {</div><div class='del'>-	RSA_free(rsa);</div><div class='del'>-	if (cb_arg.state) {</div><div class='del'>-	    /* must clear OpenSSL error stack */</div><div class='del'>-	    ossl_clear_error();</div><div class='del'>-	    rb_jump_tag(cb_arg.state);</div><div class='del'>-	}</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return rsa;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   RSA.generate(size)           =&gt; RSA instance</div><div class='del'>- *   RSA.generate(size, exponent) =&gt; RSA instance</div><div class='add'>+ *   RSA.new -&gt; rsa</div><div class='add'>+ *   RSA.new(encoded_key [, passphrase]) -&gt; rsa</div><div class='add'>+ *   RSA.new(encoded_key) { passphrase } -&gt; rsa</div><div class='add'>+ *   RSA.new(size [, exponent]) -&gt; rsa</div><div class='ctx'>  *</div><div class='del'>- * Generates an RSA keypair.  _size_ is an integer representing the desired key</div><div class='del'>- * size.  Keys smaller than 1024 should be considered insecure.  _exponent_ is</div><div class='del'>- * an odd number normally 3, 17, or 65537.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_rsa_s_generate(int argc, VALUE *argv, VALUE klass)</div><div class='del'>-{</div><div class='del'>-/* why does this method exist?  why can't initialize take an optional exponent? */</div><div class='del'>-    RSA *rsa;</div><div class='del'>-    VALUE size, exp;</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    rb_scan_args(argc, argv, "11", &amp;size, &amp;exp);</div><div class='del'>-</div><div class='del'>-    rsa = rsa_generate(NUM2INT(size), NIL_P(exp) ? RSA_F4 : NUM2ULONG(exp)); /* err handled by rsa_instance */</div><div class='del'>-    obj = rsa_instance(klass, rsa);</div><div class='del'>-</div><div class='del'>-    if (obj == Qfalse) {</div><div class='del'>-	RSA_free(rsa);</div><div class='del'>-	ossl_raise(eRSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   RSA.new(key_size)                 =&gt; RSA instance</div><div class='del'>- *   RSA.new(encoded_key)              =&gt; RSA instance</div><div class='del'>- *   RSA.new(encoded_key, pass_phrase) =&gt; RSA instance</div><div class='add'>+ * Generates or loads an \RSA keypair.</div><div class='ctx'>  *</div><div class='del'>- * Generates or loads an RSA keypair.  If an integer _key_size_ is given it</div><div class='del'>- * represents the desired key size.  Keys less than 1024 bits should be</div><div class='del'>- * considered insecure.</div><div class='add'>+ * If called without arguments, creates a new instance with no key components</div><div class='add'>+ * set. They can be set individually by #set_key, #set_factors, and</div><div class='add'>+ * #set_crt_params.</div><div class='ctx'>  *</div><div class='del'>- * A key can instead be loaded from an _encoded_key_ which must be PEM or DER</div><div class='del'>- * encoded.  A _pass_phrase_ can be used to decrypt the key.  If none is given</div><div class='del'>- * OpenSSL will prompt for the pass phrase.</div><div class='add'>+ * If called with a String, tries to parse as DER or PEM encoding of an \RSA key.</div><div class='add'>+ * Note that, if _passphrase_ is not specified but the key is encrypted with a</div><div class='add'>+ * passphrase, \OpenSSL will prompt for it.</div><div class='add'>+ * See also OpenSSL::PKey.read which can parse keys of any kinds.</div><div class='ctx'>  *</div><div class='del'>- * = Examples</div><div class='add'>+ * If called with a number, generates a new key pair. This form works as an</div><div class='add'>+ * alias of RSA.generate.</div><div class='ctx'>  *</div><div class='add'>+ * Examples:</div><div class='ctx'>  *   OpenSSL::PKey::RSA.new 2048</div><div class='ctx'>  *   OpenSSL::PKey::RSA.new File.read 'rsa.pem'</div><div class='ctx'>  *   OpenSSL::PKey::RSA.new File.read('rsa.pem'), 'my pass phrase'</div><div class='hunk'>@@ -222,74 +78,91 @@ ossl_rsa_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     EVP_PKEY *pkey;</div><div class='ctx'>     RSA *rsa;</div><div class='del'>-    BIO *in;</div><div class='add'>+    BIO *in = NULL;</div><div class='ctx'>     VALUE arg, pass;</div><div class='add'>+    int type;</div><div class='ctx'> </div><div class='del'>-    GetPKey(self, pkey);</div><div class='del'>-    if(rb_scan_args(argc, argv, "02", &amp;arg, &amp;pass) == 0) {</div><div class='add'>+    TypedData_Get_Struct(self, EVP_PKEY, &amp;ossl_evp_pkey_type, pkey);</div><div class='add'>+    if (pkey)</div><div class='add'>+        rb_raise(rb_eTypeError, "pkey already initialized");</div><div class='add'>+</div><div class='add'>+    /* The RSA.new(size, generator) form is handled by lib/openssl/pkey.rb */</div><div class='add'>+    rb_scan_args(argc, argv, "02", &amp;arg, &amp;pass);</div><div class='add'>+    if (argc == 0) {</div><div class='ctx'> 	rsa = RSA_new();</div><div class='add'>+        if (!rsa)</div><div class='add'>+            ossl_raise(eRSAError, "RSA_new");</div><div class='add'>+        goto legacy;</div><div class='ctx'>     }</div><div class='del'>-    else if (RB_INTEGER_TYPE_P(arg)) {</div><div class='del'>-	rsa = rsa_generate(NUM2INT(arg), NIL_P(pass) ? RSA_F4 : NUM2ULONG(pass));</div><div class='del'>-	if (!rsa) ossl_raise(eRSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	pass = ossl_pem_passwd_value(pass);</div><div class='del'>-	arg = ossl_to_der_if_possible(arg);</div><div class='del'>-	in = ossl_obj2bio(&amp;arg);</div><div class='del'>-	rsa = PEM_read_bio_RSAPrivateKey(in, NULL, ossl_pem_passwd_cb, (void *)pass);</div><div class='del'>-	if (!rsa) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    rsa = PEM_read_bio_RSA_PUBKEY(in, NULL, NULL, NULL);</div><div class='del'>-	}</div><div class='del'>-	if (!rsa) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    rsa = d2i_RSAPrivateKey_bio(in, NULL);</div><div class='del'>-	}</div><div class='del'>-	if (!rsa) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    rsa = d2i_RSA_PUBKEY_bio(in, NULL);</div><div class='del'>-	}</div><div class='del'>-	if (!rsa) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    rsa = PEM_read_bio_RSAPublicKey(in, NULL, NULL, NULL);</div><div class='del'>-	}</div><div class='del'>-	if (!rsa) {</div><div class='del'>-	    OSSL_BIO_reset(in);</div><div class='del'>-	    rsa = d2i_RSAPublicKey_bio(in, NULL);</div><div class='del'>-	}</div><div class='del'>-	BIO_free(in);</div><div class='del'>-	if (!rsa) {</div><div class='del'>-	    ossl_raise(eRSAError, "Neither PUB key nor PRIV key");</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    if (!EVP_PKEY_assign_RSA(pkey, rsa)) {</div><div class='del'>-	RSA_free(rsa);</div><div class='del'>-	ossl_raise(eRSAError, NULL);</div><div class='add'>+</div><div class='add'>+    pass = ossl_pem_passwd_value(pass);</div><div class='add'>+    arg = ossl_to_der_if_possible(arg);</div><div class='add'>+    in = ossl_obj2bio(&amp;arg);</div><div class='add'>+</div><div class='add'>+    /* First try RSAPublicKey format */</div><div class='add'>+    rsa = d2i_RSAPublicKey_bio(in, NULL);</div><div class='add'>+    if (rsa)</div><div class='add'>+        goto legacy;</div><div class='add'>+    OSSL_BIO_reset(in);</div><div class='add'>+    rsa = PEM_read_bio_RSAPublicKey(in, NULL, NULL, NULL);</div><div class='add'>+    if (rsa)</div><div class='add'>+        goto legacy;</div><div class='add'>+    OSSL_BIO_reset(in);</div><div class='add'>+</div><div class='add'>+    /* Use the generic routine */</div><div class='add'>+    pkey = ossl_pkey_read_generic(in, pass);</div><div class='add'>+    BIO_free(in);</div><div class='add'>+    if (!pkey)</div><div class='add'>+        ossl_raise(eRSAError, "Neither PUB key nor PRIV key");</div><div class='add'>+</div><div class='add'>+    type = EVP_PKEY_base_id(pkey);</div><div class='add'>+    if (type != EVP_PKEY_RSA) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        rb_raise(eRSAError, "incorrect pkey type: %s", OBJ_nid2sn(type));</div><div class='ctx'>     }</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='add'>+    return self;</div><div class='ctx'> </div><div class='add'>+  legacy:</div><div class='add'>+    BIO_free(in);</div><div class='add'>+    pkey = EVP_PKEY_new();</div><div class='add'>+    if (!pkey || EVP_PKEY_assign_RSA(pkey, rsa) != 1) {</div><div class='add'>+        EVP_PKEY_free(pkey);</div><div class='add'>+        RSA_free(rsa);</div><div class='add'>+        ossl_raise(eRSAError, "EVP_PKEY_assign_RSA");</div><div class='add'>+    }</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifndef HAVE_EVP_PKEY_DUP</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_rsa_initialize_copy(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='ctx'>     EVP_PKEY *pkey;</div><div class='ctx'>     RSA *rsa, *rsa_new;</div><div class='ctx'> </div><div class='del'>-    GetPKey(self, pkey);</div><div class='del'>-    if (EVP_PKEY_base_id(pkey) != EVP_PKEY_NONE)</div><div class='del'>-	ossl_raise(eRSAError, "RSA already initialized");</div><div class='add'>+    TypedData_Get_Struct(self, EVP_PKEY, &amp;ossl_evp_pkey_type, pkey);</div><div class='add'>+    if (pkey)</div><div class='add'>+        rb_raise(rb_eTypeError, "pkey already initialized");</div><div class='ctx'>     GetRSA(other, rsa);</div><div class='ctx'> </div><div class='del'>-    rsa_new = ASN1_dup((i2d_of_void *)i2d_RSAPrivateKey, (d2i_of_void *)d2i_RSAPrivateKey, (char *)rsa);</div><div class='add'>+    rsa_new = (RSA *)ASN1_dup((i2d_of_void *)i2d_RSAPrivateKey,</div><div class='add'>+                              (d2i_of_void *)d2i_RSAPrivateKey,</div><div class='add'>+                              (char *)rsa);</div><div class='ctx'>     if (!rsa_new)</div><div class='ctx'> 	ossl_raise(eRSAError, "ASN1_dup");</div><div class='ctx'> </div><div class='del'>-    EVP_PKEY_assign_RSA(pkey, rsa_new);</div><div class='add'>+    pkey = EVP_PKEY_new();</div><div class='add'>+    if (!pkey || EVP_PKEY_assign_RSA(pkey, rsa_new) != 1) {</div><div class='add'>+        RSA_free(rsa_new);</div><div class='add'>+        ossl_raise(eRSAError, "EVP_PKEY_assign_RSA");</div><div class='add'>+    }</div><div class='add'>+    RTYPEDDATA_DATA(self) = pkey;</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='hunk'>@@ -301,7 +174,7 @@ ossl_rsa_initialize_copy(VALUE self, VALUE other)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_rsa_is_public(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    RSA *rsa;</div><div class='add'>+    OSSL_3_const RSA *rsa;</div><div class='ctx'> </div><div class='ctx'>     GetRSA(self, rsa);</div><div class='ctx'>     /*</div><div class='hunk'>@@ -320,13 +193,28 @@ ossl_rsa_is_public(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_rsa_is_private(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    RSA *rsa;</div><div class='add'>+    OSSL_3_const RSA *rsa;</div><div class='ctx'> </div><div class='ctx'>     GetRSA(self, rsa);</div><div class='ctx'> </div><div class='ctx'>     return RSA_PRIVATE(self, rsa) ? Qtrue : Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+can_export_rsaprivatekey(VALUE self)</div><div class='add'>+{</div><div class='add'>+    OSSL_3_const RSA *rsa;</div><div class='add'>+    const BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp;</div><div class='add'>+</div><div class='add'>+    GetRSA(self, rsa);</div><div class='add'>+</div><div class='add'>+    RSA_get0_key(rsa, &amp;n, &amp;e, &amp;d);</div><div class='add'>+    RSA_get0_factors(rsa, &amp;p, &amp;q);</div><div class='add'>+    RSA_get0_crt_params(rsa, &amp;dmp1, &amp;dmq1, &amp;iqmp);</div><div class='add'>+</div><div class='add'>+    return n &amp;&amp; e &amp;&amp; d &amp;&amp; p &amp;&amp; q &amp;&amp; dmp1 &amp;&amp; dmq1 &amp;&amp; iqmp;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   rsa.export([cipher, pass_phrase]) =&gt; PEM-format String</div><div class='hunk'>@@ -340,37 +228,10 @@ ossl_rsa_is_private(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_rsa_export(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    RSA *rsa;</div><div class='del'>-    BIO *out;</div><div class='del'>-    const EVP_CIPHER *ciph = NULL;</div><div class='del'>-    VALUE cipher, pass, str;</div><div class='del'>-</div><div class='del'>-    GetRSA(self, rsa);</div><div class='del'>-</div><div class='del'>-    rb_scan_args(argc, argv, "02", &amp;cipher, &amp;pass);</div><div class='del'>-</div><div class='del'>-    if (!NIL_P(cipher)) {</div><div class='del'>-	ciph = ossl_evp_get_cipherbyname(cipher);</div><div class='del'>-	pass = ossl_pem_passwd_value(pass);</div><div class='del'>-    }</div><div class='del'>-    if (!(out = BIO_new(BIO_s_mem()))) {</div><div class='del'>-	ossl_raise(eRSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    if (RSA_HAS_PRIVATE(rsa)) {</div><div class='del'>-	if (!PEM_write_bio_RSAPrivateKey(out, rsa, ciph, NULL, 0,</div><div class='del'>-					 ossl_pem_passwd_cb, (void *)pass)) {</div><div class='del'>-	    BIO_free(out);</div><div class='del'>-	    ossl_raise(eRSAError, NULL);</div><div class='del'>-	}</div><div class='del'>-    } else {</div><div class='del'>-	if (!PEM_write_bio_RSA_PUBKEY(out, rsa)) {</div><div class='del'>-	    BIO_free(out);</div><div class='del'>-	    ossl_raise(eRSAError, NULL);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    str = ossl_membio2str(out);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='add'>+    if (can_export_rsaprivatekey(self))</div><div class='add'>+        return ossl_pkey_export_traditional(argc, argv, self, 0);</div><div class='add'>+    else</div><div class='add'>+        return ossl_pkey_export_spki(self, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -382,158 +243,10 @@ ossl_rsa_export(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_rsa_to_der(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    RSA *rsa;</div><div class='del'>-    int (*i2d_func)(const RSA *, unsigned char **);</div><div class='del'>-    unsigned char *p;</div><div class='del'>-    long len;</div><div class='del'>-    VALUE str;</div><div class='del'>-</div><div class='del'>-    GetRSA(self, rsa);</div><div class='del'>-    if (RSA_HAS_PRIVATE(rsa))</div><div class='del'>-	i2d_func = i2d_RSAPrivateKey;</div><div class='add'>+    if (can_export_rsaprivatekey(self))</div><div class='add'>+        return ossl_pkey_export_traditional(0, NULL, self, 1);</div><div class='ctx'>     else</div><div class='del'>-	i2d_func = (int (*)(const RSA *, unsigned char **))i2d_RSA_PUBKEY;</div><div class='del'>-    if((len = i2d_func(rsa, NULL)) &lt;= 0)</div><div class='del'>-	ossl_raise(eRSAError, NULL);</div><div class='del'>-    str = rb_str_new(0, len);</div><div class='del'>-    p = (unsigned char *)RSTRING_PTR(str);</div><div class='del'>-    if(i2d_func(rsa, &amp;p) &lt; 0)</div><div class='del'>-	ossl_raise(eRSAError, NULL);</div><div class='del'>-    ossl_str_adjust(str, p);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   rsa.public_encrypt(string)          =&gt; String</div><div class='del'>- *   rsa.public_encrypt(string, padding) =&gt; String</div><div class='del'>- *</div><div class='del'>- * Encrypt _string_ with the public key.  _padding_ defaults to PKCS1_PADDING.</div><div class='del'>- * The encrypted string output can be decrypted using #private_decrypt.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_rsa_public_encrypt(int argc, VALUE *argv, VALUE self)</div><div class='del'>-{</div><div class='del'>-    RSA *rsa;</div><div class='del'>-    const BIGNUM *rsa_n;</div><div class='del'>-    int buf_len, pad;</div><div class='del'>-    VALUE str, buffer, padding;</div><div class='del'>-</div><div class='del'>-    GetRSA(self, rsa);</div><div class='del'>-    RSA_get0_key(rsa, &amp;rsa_n, NULL, NULL);</div><div class='del'>-    if (!rsa_n)</div><div class='del'>-	ossl_raise(eRSAError, "incomplete RSA");</div><div class='del'>-    rb_scan_args(argc, argv, "11", &amp;buffer, &amp;padding);</div><div class='del'>-    pad = (argc == 1) ? RSA_PKCS1_PADDING : NUM2INT(padding);</div><div class='del'>-    StringValue(buffer);</div><div class='del'>-    str = rb_str_new(0, RSA_size(rsa));</div><div class='del'>-    buf_len = RSA_public_encrypt(RSTRING_LENINT(buffer), (unsigned char *)RSTRING_PTR(buffer),</div><div class='del'>-				 (unsigned char *)RSTRING_PTR(str), rsa, pad);</div><div class='del'>-    if (buf_len &lt; 0) ossl_raise(eRSAError, NULL);</div><div class='del'>-    rb_str_set_len(str, buf_len);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   rsa.public_decrypt(string)          =&gt; String</div><div class='del'>- *   rsa.public_decrypt(string, padding) =&gt; String</div><div class='del'>- *</div><div class='del'>- * Decrypt _string_, which has been encrypted with the private key, with the</div><div class='del'>- * public key.  _padding_ defaults to PKCS1_PADDING.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_rsa_public_decrypt(int argc, VALUE *argv, VALUE self)</div><div class='del'>-{</div><div class='del'>-    RSA *rsa;</div><div class='del'>-    const BIGNUM *rsa_n;</div><div class='del'>-    int buf_len, pad;</div><div class='del'>-    VALUE str, buffer, padding;</div><div class='del'>-</div><div class='del'>-    GetRSA(self, rsa);</div><div class='del'>-    RSA_get0_key(rsa, &amp;rsa_n, NULL, NULL);</div><div class='del'>-    if (!rsa_n)</div><div class='del'>-	ossl_raise(eRSAError, "incomplete RSA");</div><div class='del'>-    rb_scan_args(argc, argv, "11", &amp;buffer, &amp;padding);</div><div class='del'>-    pad = (argc == 1) ? RSA_PKCS1_PADDING : NUM2INT(padding);</div><div class='del'>-    StringValue(buffer);</div><div class='del'>-    str = rb_str_new(0, RSA_size(rsa));</div><div class='del'>-    buf_len = RSA_public_decrypt(RSTRING_LENINT(buffer), (unsigned char *)RSTRING_PTR(buffer),</div><div class='del'>-				 (unsigned char *)RSTRING_PTR(str), rsa, pad);</div><div class='del'>-    if (buf_len &lt; 0) ossl_raise(eRSAError, NULL);</div><div class='del'>-    rb_str_set_len(str, buf_len);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   rsa.private_encrypt(string)          =&gt; String</div><div class='del'>- *   rsa.private_encrypt(string, padding) =&gt; String</div><div class='del'>- *</div><div class='del'>- * Encrypt _string_ with the private key.  _padding_ defaults to PKCS1_PADDING.</div><div class='del'>- * The encrypted string output can be decrypted using #public_decrypt.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_rsa_private_encrypt(int argc, VALUE *argv, VALUE self)</div><div class='del'>-{</div><div class='del'>-    RSA *rsa;</div><div class='del'>-    const BIGNUM *rsa_n;</div><div class='del'>-    int buf_len, pad;</div><div class='del'>-    VALUE str, buffer, padding;</div><div class='del'>-</div><div class='del'>-    GetRSA(self, rsa);</div><div class='del'>-    RSA_get0_key(rsa, &amp;rsa_n, NULL, NULL);</div><div class='del'>-    if (!rsa_n)</div><div class='del'>-	ossl_raise(eRSAError, "incomplete RSA");</div><div class='del'>-    if (!RSA_PRIVATE(self, rsa))</div><div class='del'>-	ossl_raise(eRSAError, "private key needed.");</div><div class='del'>-    rb_scan_args(argc, argv, "11", &amp;buffer, &amp;padding);</div><div class='del'>-    pad = (argc == 1) ? RSA_PKCS1_PADDING : NUM2INT(padding);</div><div class='del'>-    StringValue(buffer);</div><div class='del'>-    str = rb_str_new(0, RSA_size(rsa));</div><div class='del'>-    buf_len = RSA_private_encrypt(RSTRING_LENINT(buffer), (unsigned char *)RSTRING_PTR(buffer),</div><div class='del'>-				  (unsigned char *)RSTRING_PTR(str), rsa, pad);</div><div class='del'>-    if (buf_len &lt; 0) ossl_raise(eRSAError, NULL);</div><div class='del'>-    rb_str_set_len(str, buf_len);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   rsa.private_decrypt(string)          =&gt; String</div><div class='del'>- *   rsa.private_decrypt(string, padding) =&gt; String</div><div class='del'>- *</div><div class='del'>- * Decrypt _string_, which has been encrypted with the public key, with the</div><div class='del'>- * private key.  _padding_ defaults to PKCS1_PADDING.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_rsa_private_decrypt(int argc, VALUE *argv, VALUE self)</div><div class='del'>-{</div><div class='del'>-    RSA *rsa;</div><div class='del'>-    const BIGNUM *rsa_n;</div><div class='del'>-    int buf_len, pad;</div><div class='del'>-    VALUE str, buffer, padding;</div><div class='del'>-</div><div class='del'>-    GetRSA(self, rsa);</div><div class='del'>-    RSA_get0_key(rsa, &amp;rsa_n, NULL, NULL);</div><div class='del'>-    if (!rsa_n)</div><div class='del'>-	ossl_raise(eRSAError, "incomplete RSA");</div><div class='del'>-    if (!RSA_PRIVATE(self, rsa))</div><div class='del'>-	ossl_raise(eRSAError, "private key needed.");</div><div class='del'>-    rb_scan_args(argc, argv, "11", &amp;buffer, &amp;padding);</div><div class='del'>-    pad = (argc == 1) ? RSA_PKCS1_PADDING : NUM2INT(padding);</div><div class='del'>-    StringValue(buffer);</div><div class='del'>-    str = rb_str_new(0, RSA_size(rsa));</div><div class='del'>-    buf_len = RSA_private_decrypt(RSTRING_LENINT(buffer), (unsigned char *)RSTRING_PTR(buffer),</div><div class='del'>-				  (unsigned char *)RSTRING_PTR(str), rsa, pad);</div><div class='del'>-    if (buf_len &lt; 0) ossl_raise(eRSAError, NULL);</div><div class='del'>-    rb_str_set_len(str, buf_len);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='add'>+        return ossl_pkey_export_spki(self, 1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -565,7 +278,7 @@ ossl_rsa_private_decrypt(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *   data = "Sign me!"</div><div class='ctx'>  *   pkey = OpenSSL::PKey::RSA.new(2048)</div><div class='ctx'>  *   signature = pkey.sign_pss("SHA256", data, salt_length: :max, mgf1_hash: "SHA256")</div><div class='del'>- *   pub_key = pkey.public_key</div><div class='add'>+ *   pub_key = OpenSSL::PKey.read(pkey.public_to_der)</div><div class='ctx'>  *   puts pub_key.verify_pss("SHA256", signature, data,</div><div class='ctx'>  *                           salt_length: :auto, mgf1_hash: "SHA256") # =&gt; true</div><div class='ctx'>  */</div><div class='hunk'>@@ -740,7 +453,7 @@ ossl_rsa_verify_pss(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_rsa_get_params(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    RSA *rsa;</div><div class='add'>+    OSSL_3_const RSA *rsa;</div><div class='ctx'>     VALUE hash;</div><div class='ctx'>     const BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp;</div><div class='ctx'> </div><div class='hunk'>@@ -763,88 +476,6 @@ ossl_rsa_get_params(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   rsa.to_text =&gt; String</div><div class='del'>- *</div><div class='del'>- * THIS METHOD IS INSECURE, PRIVATE INFORMATION CAN LEAK OUT!!!</div><div class='del'>- *</div><div class='del'>- * Dumps all parameters of a keypair to a String</div><div class='del'>- *</div><div class='del'>- * Don't use :-)) (It's up to you)</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_rsa_to_text(VALUE self)</div><div class='del'>-{</div><div class='del'>-    RSA *rsa;</div><div class='del'>-    BIO *out;</div><div class='del'>-    VALUE str;</div><div class='del'>-</div><div class='del'>-    GetRSA(self, rsa);</div><div class='del'>-    if (!(out = BIO_new(BIO_s_mem()))) {</div><div class='del'>-	ossl_raise(eRSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    if (!RSA_print(out, rsa, 0)) { /* offset = 0 */</div><div class='del'>-	BIO_free(out);</div><div class='del'>-	ossl_raise(eRSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    str = ossl_membio2str(out);</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *    rsa.public_key -&gt; RSA</div><div class='del'>- *</div><div class='del'>- * Makes new RSA instance containing the public key from the private key.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_rsa_to_public_key(VALUE self)</div><div class='del'>-{</div><div class='del'>-    EVP_PKEY *pkey;</div><div class='del'>-    RSA *rsa;</div><div class='del'>-    VALUE obj;</div><div class='del'>-</div><div class='del'>-    GetPKeyRSA(self, pkey);</div><div class='del'>-    /* err check performed by rsa_instance */</div><div class='del'>-    rsa = RSAPublicKey_dup(EVP_PKEY_get0_RSA(pkey));</div><div class='del'>-    obj = rsa_instance(rb_obj_class(self), rsa);</div><div class='del'>-    if (obj == Qfalse) {</div><div class='del'>-	RSA_free(rsa);</div><div class='del'>-	ossl_raise(eRSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * TODO: Test me</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-ossl_rsa_blinding_on(VALUE self)</div><div class='del'>-{</div><div class='del'>-    RSA *rsa;</div><div class='del'>-</div><div class='del'>-    GetRSA(self, rsa);</div><div class='del'>-</div><div class='del'>-    if (RSA_blinding_on(rsa, ossl_bn_ctx) != 1) {</div><div class='del'>-	ossl_raise(eRSAError, NULL);</div><div class='del'>-    }</div><div class='del'>-    return self;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-ossl_rsa_blinding_off(VALUE self)</div><div class='del'>-{</div><div class='del'>-    RSA *rsa;</div><div class='del'>-</div><div class='del'>-    GetRSA(self, rsa);</div><div class='del'>-    RSA_blinding_off(rsa);</div><div class='del'>-</div><div class='del'>-    return self;</div><div class='del'>-}</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * Document-method: OpenSSL::PKey::RSA#set_key</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   rsa.set_key(n, e, d) -&gt; self</div><div class='hunk'>@@ -905,22 +536,17 @@ Init_ossl_rsa(void)</div><div class='ctx'>      */</div><div class='ctx'>     cRSA = rb_define_class_under(mPKey, "RSA", cPKey);</div><div class='ctx'> </div><div class='del'>-    rb_define_singleton_method(cRSA, "generate", ossl_rsa_s_generate, -1);</div><div class='ctx'>     rb_define_method(cRSA, "initialize", ossl_rsa_initialize, -1);</div><div class='add'>+#ifndef HAVE_EVP_PKEY_DUP</div><div class='ctx'>     rb_define_method(cRSA, "initialize_copy", ossl_rsa_initialize_copy, 1);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(cRSA, "public?", ossl_rsa_is_public, 0);</div><div class='ctx'>     rb_define_method(cRSA, "private?", ossl_rsa_is_private, 0);</div><div class='del'>-    rb_define_method(cRSA, "to_text", ossl_rsa_to_text, 0);</div><div class='ctx'>     rb_define_method(cRSA, "export", ossl_rsa_export, -1);</div><div class='ctx'>     rb_define_alias(cRSA, "to_pem", "export");</div><div class='ctx'>     rb_define_alias(cRSA, "to_s", "export");</div><div class='ctx'>     rb_define_method(cRSA, "to_der", ossl_rsa_to_der, 0);</div><div class='del'>-    rb_define_method(cRSA, "public_key", ossl_rsa_to_public_key, 0);</div><div class='del'>-    rb_define_method(cRSA, "public_encrypt", ossl_rsa_public_encrypt, -1);</div><div class='del'>-    rb_define_method(cRSA, "public_decrypt", ossl_rsa_public_decrypt, -1);</div><div class='del'>-    rb_define_method(cRSA, "private_encrypt", ossl_rsa_private_encrypt, -1);</div><div class='del'>-    rb_define_method(cRSA, "private_decrypt", ossl_rsa_private_decrypt, -1);</div><div class='ctx'>     rb_define_method(cRSA, "sign_pss", ossl_rsa_sign_pss, -1);</div><div class='ctx'>     rb_define_method(cRSA, "verify_pss", ossl_rsa_verify_pss, -1);</div><div class='ctx'> </div><div class='hunk'>@@ -938,11 +564,6 @@ Init_ossl_rsa(void)</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(cRSA, "params", ossl_rsa_get_params, 0);</div><div class='ctx'> </div><div class='del'>-    DefRSAConst(PKCS1_PADDING);</div><div class='del'>-    DefRSAConst(SSLV23_PADDING);</div><div class='del'>-    DefRSAConst(NO_PADDING);</div><div class='del'>-    DefRSAConst(PKCS1_OAEP_PADDING);</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  * TODO: Test it</div><div class='ctx'>     rb_define_method(cRSA, "blinding_on!", ossl_rsa_blinding_on, 0);</div><div class='head'>diff --git a/ext/openssl/ossl_rand.c b/ext/openssl/ossl_rand.c<br/>index c95857060a..659dc818b6 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_rand.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_rand.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_rand.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_rand.c</a></div><div class='hunk'>@@ -67,8 +67,6 @@ ossl_rand_add(VALUE self, VALUE str, VALUE entropy)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_rand_load_file(VALUE self, VALUE filename)</div><div class='ctx'> {</div><div class='del'>-    rb_check_safe_obj(filename);</div><div class='del'>-</div><div class='ctx'>     if(!RAND_load_file(StringValueCStr(filename), -1)) {</div><div class='ctx'> 	ossl_raise(eRandomError, NULL);</div><div class='ctx'>     }</div><div class='hunk'>@@ -86,8 +84,6 @@ ossl_rand_load_file(VALUE self, VALUE filename)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_rand_write_file(VALUE self, VALUE filename)</div><div class='ctx'> {</div><div class='del'>-    rb_check_safe_obj(filename);</div><div class='del'>-</div><div class='ctx'>     if (RAND_write_file(StringValueCStr(filename)) == -1) {</div><div class='ctx'> 	ossl_raise(eRandomError, NULL);</div><div class='ctx'>     }</div><div class='hunk'>@@ -124,36 +120,6 @@ ossl_rand_bytes(VALUE self, VALUE len)</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_RAND_PSEUDO_BYTES)</div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *	pseudo_bytes(length) -&gt; string</div><div class='del'>- *</div><div class='del'>- * Generates a String with _length_ number of pseudo-random bytes.</div><div class='del'>- *</div><div class='del'>- * Pseudo-random byte sequences generated by ::pseudo_bytes will be unique if</div><div class='del'>- * they are of sufficient length, but are not necessarily unpredictable.</div><div class='del'>- *</div><div class='del'>- * === Example</div><div class='del'>- *</div><div class='del'>- *    OpenSSL::Random.pseudo_bytes(12)</div><div class='del'>- *    #=&gt; "..."</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-ossl_rand_pseudo_bytes(VALUE self, VALUE len)</div><div class='del'>-{</div><div class='del'>-    VALUE str;</div><div class='del'>-    int n = NUM2INT(len);</div><div class='del'>-</div><div class='del'>-    str = rb_str_new(0, n);</div><div class='del'>-    if (RAND_pseudo_bytes((unsigned char *)RSTRING_PTR(str), n) &lt; 1) {</div><div class='del'>-	ossl_raise(eRandomError, NULL);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #ifdef HAVE_RAND_EGD</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='hunk'>@@ -164,8 +130,6 @@ ossl_rand_pseudo_bytes(VALUE self, VALUE len)</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_rand_egd(VALUE self, VALUE filename)</div><div class='ctx'> {</div><div class='del'>-    rb_check_safe_obj(filename);</div><div class='del'>-</div><div class='ctx'>     if (RAND_egd(StringValueCStr(filename)) == -1) {</div><div class='ctx'> 	ossl_raise(eRandomError, NULL);</div><div class='ctx'>     }</div><div class='hunk'>@@ -186,8 +150,6 @@ ossl_rand_egd_bytes(VALUE self, VALUE filename, VALUE len)</div><div class='ctx'> {</div><div class='ctx'>     int n = NUM2INT(len);</div><div class='ctx'> </div><div class='del'>-    rb_check_safe_obj(filename);</div><div class='del'>-</div><div class='ctx'>     if (RAND_egd_bytes(StringValueCStr(filename), n) == -1) {</div><div class='ctx'> 	ossl_raise(eRandomError, NULL);</div><div class='ctx'>     }</div><div class='hunk'>@@ -227,8 +189,8 @@ Init_ossl_rand(void)</div><div class='ctx'>     rb_define_module_function(mRandom, "load_random_file", ossl_rand_load_file, 1);</div><div class='ctx'>     rb_define_module_function(mRandom, "write_random_file", ossl_rand_write_file, 1);</div><div class='ctx'>     rb_define_module_function(mRandom, "random_bytes", ossl_rand_bytes, 1);</div><div class='del'>-#if defined(HAVE_RAND_PSEUDO_BYTES)</div><div class='del'>-    rb_define_module_function(mRandom, "pseudo_bytes", ossl_rand_pseudo_bytes, 1);</div><div class='add'>+#if OPENSSL_VERSION_NUMBER &lt; 0x10101000 || defined(LIBRESSL_VERSION_NUMBER)</div><div class='add'>+    rb_define_alias(rb_singleton_class(mRandom), "pseudo_bytes", "random_bytes");</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef HAVE_RAND_EGD</div><div class='ctx'>     rb_define_module_function(mRandom, "egd", ossl_rand_egd, 1);</div><div class='head'>diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c<br/>index 7996f227b6..f63992664a 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_ssl.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ssl.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_ssl.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_ssl.c</a></div><div class='hunk'>@@ -11,8 +11,18 @@</div><div class='ctx'>  */</div><div class='ctx'> #include "ossl.h"</div><div class='ctx'> </div><div class='add'>+#ifndef OPENSSL_NO_SOCK</div><div class='ctx'> #define numberof(ary) (int)(sizeof(ary)/sizeof((ary)[0]))</div><div class='ctx'> </div><div class='add'>+#if !defined(OPENSSL_NO_NEXTPROTONEG) &amp;&amp; !OSSL_IS_LIBRESSL</div><div class='add'>+# define OSSL_USE_NEXTPROTONEG</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !defined(TLS1_3_VERSION) &amp;&amp; \</div><div class='add'>+    OSSL_LIBRESSL_PREREQ(3, 2, 0) &amp;&amp; !OSSL_LIBRESSL_PREREQ(3, 4, 0)</div><div class='add'>+#  define TLS1_3_VERSION 0x0304</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'> #  define TO_SOCKET(s) _get_osfhandle(s)</div><div class='ctx'> #else</div><div class='hunk'>@@ -24,7 +34,6 @@</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='ctx'> VALUE mSSL;</div><div class='del'>-static VALUE mSSLExtConfig;</div><div class='ctx'> static VALUE eSSLError;</div><div class='ctx'> VALUE cSSLContext;</div><div class='ctx'> VALUE cSSLSocket;</div><div class='hunk'>@@ -32,42 +41,41 @@ VALUE cSSLSocket;</div><div class='ctx'> static VALUE eSSLErrorWaitReadable;</div><div class='ctx'> static VALUE eSSLErrorWaitWritable;</div><div class='ctx'> </div><div class='del'>-static ID id_call, ID_callback_state, id_tmp_dh_callback, id_tmp_ecdh_callback,</div><div class='del'>-	  id_npn_protocols_encoded;</div><div class='add'>+static ID id_call, ID_callback_state, id_tmp_dh_callback,</div><div class='add'>+	  id_npn_protocols_encoded, id_each;</div><div class='ctx'> static VALUE sym_exception, sym_wait_readable, sym_wait_writable;</div><div class='ctx'> </div><div class='ctx'> static ID id_i_cert_store, id_i_ca_file, id_i_ca_path, id_i_verify_mode,</div><div class='ctx'> 	  id_i_verify_depth, id_i_verify_callback, id_i_client_ca,</div><div class='ctx'> 	  id_i_renegotiation_cb, id_i_cert, id_i_key, id_i_extra_chain_cert,</div><div class='del'>-	  id_i_client_cert_cb, id_i_tmp_ecdh_callback, id_i_timeout,</div><div class='add'>+	  id_i_client_cert_cb, id_i_timeout,</div><div class='ctx'> 	  id_i_session_id_context, id_i_session_get_cb, id_i_session_new_cb,</div><div class='ctx'> 	  id_i_session_remove_cb, id_i_npn_select_cb, id_i_npn_protocols,</div><div class='ctx'> 	  id_i_alpn_select_cb, id_i_alpn_protocols, id_i_servername_cb,</div><div class='del'>-	  id_i_verify_hostname;</div><div class='add'>+	  id_i_verify_hostname, id_i_keylog_cb;</div><div class='ctx'> static ID id_i_io, id_i_context, id_i_hostname;</div><div class='ctx'> </div><div class='ctx'> static int ossl_ssl_ex_vcb_idx;</div><div class='ctx'> static int ossl_ssl_ex_ptr_idx;</div><div class='ctx'> static int ossl_sslctx_ex_ptr_idx;</div><div class='del'>-#if !defined(HAVE_X509_STORE_UP_REF)</div><div class='del'>-static int ossl_sslctx_ex_store_p;</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-ossl_sslctx_free(void *ptr)</div><div class='add'>+ossl_sslctx_mark(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     SSL_CTX *ctx = ptr;</div><div class='del'>-#if !defined(HAVE_X509_STORE_UP_REF)</div><div class='del'>-    if (ctx &amp;&amp; SSL_CTX_get_ex_data(ctx, ossl_sslctx_ex_store_p))</div><div class='del'>-	ctx-&gt;cert_store = NULL;</div><div class='del'>-#endif</div><div class='del'>-    SSL_CTX_free(ctx);</div><div class='add'>+    rb_gc_mark((VALUE)SSL_CTX_get_ex_data(ctx, ossl_sslctx_ex_ptr_idx));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ossl_sslctx_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    SSL_CTX_free(ptr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const rb_data_type_t ossl_sslctx_type = {</div><div class='ctx'>     "OpenSSL/SSL/CTX",</div><div class='ctx'>     {</div><div class='del'>-	0, ossl_sslctx_free,</div><div class='add'>+        ossl_sslctx_mark, ossl_sslctx_free,</div><div class='ctx'>     },</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='ctx'> };</div><div class='hunk'>@@ -83,7 +91,7 @@ ossl_sslctx_s_alloc(VALUE klass)</div><div class='ctx'>     VALUE obj;</div><div class='ctx'> </div><div class='ctx'>     obj = TypedData_Wrap_Struct(klass, &amp;ossl_sslctx_type, 0);</div><div class='del'>-#if OPENSSL_VERSION_NUMBER &gt;= 0x10100000 &amp;&amp; !defined(LIBRESSL_VERSION_NUMBER)</div><div class='add'>+#if OPENSSL_VERSION_NUMBER &gt;= 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)</div><div class='ctx'>     ctx = SSL_CTX_new(TLS_method());</div><div class='ctx'> #else</div><div class='ctx'>     ctx = SSL_CTX_new(SSLv23_method());</div><div class='hunk'>@@ -95,14 +103,15 @@ ossl_sslctx_s_alloc(VALUE klass)</div><div class='ctx'>     RTYPEDDATA_DATA(obj) = ctx;</div><div class='ctx'>     SSL_CTX_set_ex_data(ctx, ossl_sslctx_ex_ptr_idx, (void *)obj);</div><div class='ctx'> </div><div class='del'>-#if !defined(OPENSSL_NO_EC) &amp;&amp; defined(HAVE_SSL_CTX_SET_ECDH_AUTO)</div><div class='add'>+#if !defined(OPENSSL_NO_EC) &amp;&amp; OPENSSL_VERSION_NUMBER &lt; 0x10100000 &amp;&amp; \</div><div class='add'>+    !defined(LIBRESSL_VERSION_NUMBER)</div><div class='ctx'>     /* We use SSL_CTX_set1_curves_list() to specify the curve used in ECDH. It</div><div class='ctx'>      * allows to specify multiple curve names and OpenSSL will select</div><div class='ctx'>      * automatically from them. In OpenSSL 1.0.2, the automatic selection has to</div><div class='del'>-     * be enabled explicitly. But OpenSSL 1.1.0 removed the knob and it is</div><div class='del'>-     * always enabled. To uniform the behavior, we enable the automatic</div><div class='del'>-     * selection also in 1.0.2. Users can still disable ECDH by removing ECDH</div><div class='del'>-     * cipher suites by SSLContext#ciphers=. */</div><div class='add'>+     * be enabled explicitly. OpenSSL 1.1.0 and LibreSSL 2.6.1 removed the knob</div><div class='add'>+     * and it is always enabled. To uniform the behavior, we enable the</div><div class='add'>+     * automatic selection also in 1.0.2. Users can still disable ECDH by</div><div class='add'>+     * removing ECDH cipher suites by SSLContext#ciphers=. */</div><div class='ctx'>     if (!SSL_CTX_set_ecdh_auto(ctx, 1))</div><div class='ctx'> 	ossl_raise(eSSLError, "SSL_CTX_set_ecdh_auto");</div><div class='ctx'> #endif</div><div class='hunk'>@@ -231,8 +240,7 @@ ossl_client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if !defined(OPENSSL_NO_DH) || \</div><div class='del'>-    !defined(OPENSSL_NO_EC) &amp;&amp; defined(HAVE_SSL_CTX_SET_TMP_ECDH_CALLBACK)</div><div class='add'>+#if !defined(OPENSSL_NO_DH)</div><div class='ctx'> struct tmp_dh_callback_args {</div><div class='ctx'>     VALUE ssl_obj;</div><div class='ctx'>     ID id;</div><div class='hunk'>@@ -241,22 +249,23 @@ struct tmp_dh_callback_args {</div><div class='ctx'>     int keylength;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-static EVP_PKEY *</div><div class='del'>-ossl_call_tmp_dh_callback(struct tmp_dh_callback_args *args)</div><div class='add'>+static VALUE</div><div class='add'>+ossl_call_tmp_dh_callback(VALUE arg)</div><div class='ctx'> {</div><div class='add'>+    struct tmp_dh_callback_args *args = (struct tmp_dh_callback_args *)arg;</div><div class='ctx'>     VALUE cb, dh;</div><div class='ctx'>     EVP_PKEY *pkey;</div><div class='ctx'> </div><div class='ctx'>     cb = rb_funcall(args-&gt;ssl_obj, args-&gt;id, 0);</div><div class='ctx'>     if (NIL_P(cb))</div><div class='del'>-	return NULL;</div><div class='add'>+	return (VALUE)NULL;</div><div class='ctx'>     dh = rb_funcall(cb, id_call, 3, args-&gt;ssl_obj, INT2NUM(args-&gt;is_export),</div><div class='ctx'> 		    INT2NUM(args-&gt;keylength));</div><div class='ctx'>     pkey = GetPKeyPtr(dh);</div><div class='ctx'>     if (EVP_PKEY_base_id(pkey) != args-&gt;type)</div><div class='del'>-	return NULL;</div><div class='add'>+	return (VALUE)NULL;</div><div class='ctx'> </div><div class='del'>-    return pkey;</div><div class='add'>+    return (VALUE)pkey;</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -276,7 +285,7 @@ ossl_tmp_dh_callback(SSL *ssl, int is_export, int keylength)</div><div class='ctx'>     args.keylength = keylength;</div><div class='ctx'>     args.type = EVP_PKEY_DH;</div><div class='ctx'> </div><div class='del'>-    pkey = (EVP_PKEY *)rb_protect((VALUE (*)(VALUE))ossl_call_tmp_dh_callback,</div><div class='add'>+    pkey = (EVP_PKEY *)rb_protect(ossl_call_tmp_dh_callback,</div><div class='ctx'> 				  (VALUE)&amp;args, &amp;state);</div><div class='ctx'>     if (state) {</div><div class='ctx'> 	rb_ivar_set(rb_ssl, ID_callback_state, INT2NUM(state));</div><div class='hunk'>@@ -285,39 +294,10 @@ ossl_tmp_dh_callback(SSL *ssl, int is_export, int keylength)</div><div class='ctx'>     if (!pkey)</div><div class='ctx'> 	return NULL;</div><div class='ctx'> </div><div class='del'>-    return EVP_PKEY_get0_DH(pkey);</div><div class='add'>+    return (DH *)EVP_PKEY_get0_DH(pkey);</div><div class='ctx'> }</div><div class='ctx'> #endif /* OPENSSL_NO_DH */</div><div class='ctx'> </div><div class='del'>-#if !defined(OPENSSL_NO_EC) &amp;&amp; defined(HAVE_SSL_CTX_SET_TMP_ECDH_CALLBACK)</div><div class='del'>-static EC_KEY *</div><div class='del'>-ossl_tmp_ecdh_callback(SSL *ssl, int is_export, int keylength)</div><div class='del'>-{</div><div class='del'>-    VALUE rb_ssl;</div><div class='del'>-    EVP_PKEY *pkey;</div><div class='del'>-    struct tmp_dh_callback_args args;</div><div class='del'>-    int state;</div><div class='del'>-</div><div class='del'>-    rb_ssl = (VALUE)SSL_get_ex_data(ssl, ossl_ssl_ex_ptr_idx);</div><div class='del'>-    args.ssl_obj = rb_ssl;</div><div class='del'>-    args.id = id_tmp_ecdh_callback;</div><div class='del'>-    args.is_export = is_export;</div><div class='del'>-    args.keylength = keylength;</div><div class='del'>-    args.type = EVP_PKEY_EC;</div><div class='del'>-</div><div class='del'>-    pkey = (EVP_PKEY *)rb_protect((VALUE (*)(VALUE))ossl_call_tmp_dh_callback,</div><div class='del'>-				  (VALUE)&amp;args, &amp;state);</div><div class='del'>-    if (state) {</div><div class='del'>-	rb_ivar_set(rb_ssl, ID_callback_state, INT2NUM(state));</div><div class='del'>-	return NULL;</div><div class='del'>-    }</div><div class='del'>-    if (!pkey)</div><div class='del'>-	return NULL;</div><div class='del'>-</div><div class='del'>-    return EVP_PKEY_get0_EC_KEY(pkey);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> call_verify_certificate_identity(VALUE ctx_v)</div><div class='ctx'> {</div><div class='hunk'>@@ -359,7 +339,14 @@ ossl_ssl_verify_callback(int preverify_ok, X509_STORE_CTX *ctx)</div><div class='ctx'> 	    rb_ivar_set(ssl_obj, ID_callback_state, INT2NUM(status));</div><div class='ctx'> 	    return 0;</div><div class='ctx'> 	}</div><div class='del'>-	preverify_ok = ret == Qtrue;</div><div class='add'>+        if (ret != Qtrue) {</div><div class='add'>+            preverify_ok = 0;</div><div class='add'>+#if defined(X509_V_ERR_HOSTNAME_MISMATCH)</div><div class='add'>+            X509_STORE_CTX_set_error(ctx, X509_V_ERR_HOSTNAME_MISMATCH);</div><div class='add'>+#else</div><div class='add'>+            X509_STORE_CTX_set_error(ctx, X509_V_ERR_CERT_REJECTED);</div><div class='add'>+#endif</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return ossl_verify_cb_call(cb, preverify_ok, ctx);</div><div class='hunk'>@@ -380,7 +367,7 @@ ossl_call_session_get_cb(VALUE ary)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static SSL_SESSION *</div><div class='del'>-#if OPENSSL_VERSION_NUMBER &gt;= 0x10100000 &amp;&amp; !defined(LIBRESSL_VERSION_NUMBER)</div><div class='add'>+#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER &gt;= 0x10100000</div><div class='ctx'> ossl_sslctx_session_get_cb(SSL *ssl, const unsigned char *buf, int len, int *copy)</div><div class='ctx'> #else</div><div class='ctx'> ossl_sslctx_session_get_cb(SSL *ssl, unsigned char *buf, int len, int *copy)</div><div class='hunk'>@@ -457,6 +444,54 @@ ossl_sslctx_session_new_cb(SSL *ssl, SSL_SESSION *sess)</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if OPENSSL_VERSION_NUMBER &gt;= 0x10101000 &amp;&amp; !defined(LIBRESSL_VERSION_NUMBER)</div><div class='add'>+/*</div><div class='add'>+ * It is only compatible with OpenSSL &gt;= 1.1.1. Even if LibreSSL implements</div><div class='add'>+ * SSL_CTX_set_keylog_callback() from v3.4.2, it does nothing (see</div><div class='add'>+ * https://github.com/libressl-portable/openbsd/commit/648d39f0f035835d0653342d139883b9661e9cb6).</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+struct ossl_call_keylog_cb_args {</div><div class='add'>+    VALUE ssl_obj;</div><div class='add'>+    const char * line;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ossl_call_keylog_cb(VALUE args_v)</div><div class='add'>+{</div><div class='add'>+    VALUE sslctx_obj, cb, line_v;</div><div class='add'>+    struct ossl_call_keylog_cb_args *args = (struct ossl_call_keylog_cb_args *) args_v;</div><div class='add'>+</div><div class='add'>+    sslctx_obj = rb_attr_get(args-&gt;ssl_obj, id_i_context);</div><div class='add'>+</div><div class='add'>+    cb = rb_attr_get(sslctx_obj, id_i_keylog_cb);</div><div class='add'>+    if (NIL_P(cb)) return Qnil;</div><div class='add'>+</div><div class='add'>+    line_v = rb_str_new_cstr(args-&gt;line);</div><div class='add'>+</div><div class='add'>+    return rb_funcall(cb, id_call, 2, args-&gt;ssl_obj, line_v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ossl_sslctx_keylog_cb(const SSL *ssl, const char *line)</div><div class='add'>+{</div><div class='add'>+    VALUE ssl_obj;</div><div class='add'>+    struct ossl_call_keylog_cb_args args;</div><div class='add'>+    int state = 0;</div><div class='add'>+</div><div class='add'>+    OSSL_Debug("SSL keylog callback entered");</div><div class='add'>+</div><div class='add'>+    ssl_obj = (VALUE)SSL_get_ex_data(ssl, ossl_ssl_ex_ptr_idx);</div><div class='add'>+    args.ssl_obj = ssl_obj;</div><div class='add'>+    args.line = line;</div><div class='add'>+</div><div class='add'>+    rb_protect(ossl_call_keylog_cb, (VALUE)&amp;args, &amp;state);</div><div class='add'>+    if (state) {</div><div class='add'>+        rb_ivar_set(ssl_obj, ID_callback_state, INT2NUM(state));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_call_session_remove_cb(VALUE ary)</div><div class='ctx'> {</div><div class='hunk'>@@ -589,10 +624,8 @@ ssl_renegotiation_cb(const SSL *ssl)</div><div class='ctx'>     rb_funcallv(cb, id_call, 1, &amp;ssl_obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if !defined(OPENSSL_NO_NEXTPROTONEG) || \</div><div class='del'>-    defined(HAVE_SSL_CTX_SET_ALPN_SELECT_CB)</div><div class='ctx'> static VALUE</div><div class='del'>-ssl_npn_encode_protocol_i(VALUE cur, VALUE encoded)</div><div class='add'>+ssl_npn_encode_protocol_i(RB_BLOCK_CALL_FUNC_ARGLIST(cur, encoded))</div><div class='ctx'> {</div><div class='ctx'>     int len = RSTRING_LENINT(cur);</div><div class='ctx'>     char len_byte;</div><div class='hunk'>@@ -609,7 +642,7 @@ static VALUE</div><div class='ctx'> ssl_encode_npn_protocols(VALUE protocols)</div><div class='ctx'> {</div><div class='ctx'>     VALUE encoded = rb_str_new(NULL, 0);</div><div class='del'>-    rb_iterate(rb_each, protocols, ssl_npn_encode_protocol_i, encoded);</div><div class='add'>+    rb_block_call(protocols, id_each, 0, 0, ssl_npn_encode_protocol_i, encoded);</div><div class='ctx'>     return encoded;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -672,14 +705,13 @@ ssl_npn_select_cb_common(SSL *ssl, VALUE cb, const unsigned char **out,</div><div class='ctx'> </div><div class='ctx'>     return SSL_TLSEXT_ERR_OK;</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-#ifndef OPENSSL_NO_NEXTPROTONEG</div><div class='add'>+#ifdef OSSL_USE_NEXTPROTONEG</div><div class='ctx'> static int</div><div class='ctx'> ssl_npn_advertise_cb(SSL *ssl, const unsigned char **out, unsigned int *outlen,</div><div class='ctx'> 		     void *arg)</div><div class='ctx'> {</div><div class='del'>-    VALUE protocols = (VALUE)arg;</div><div class='add'>+    VALUE protocols = rb_attr_get((VALUE)arg, id_npn_protocols_encoded);</div><div class='ctx'> </div><div class='ctx'>     *out = (const unsigned char *) RSTRING_PTR(protocols);</div><div class='ctx'>     *outlen = RSTRING_LENINT(protocols);</div><div class='hunk'>@@ -701,7 +733,6 @@ ssl_npn_select_cb(SSL *ssl, unsigned char **out, unsigned char *outlen,</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SSL_CTX_SET_ALPN_SELECT_CB</div><div class='ctx'> static int</div><div class='ctx'> ssl_alpn_select_cb(SSL *ssl, const unsigned char **out, unsigned char *outlen,</div><div class='ctx'> 		   const unsigned char *in, unsigned int inlen, void *arg)</div><div class='hunk'>@@ -713,7 +744,6 @@ ssl_alpn_select_cb(SSL *ssl, const unsigned char **out, unsigned char *outlen,</div><div class='ctx'> </div><div class='ctx'>     return ssl_npn_select_cb_common(ssl, cb, out, outlen, in, inlen);</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> /* This function may serve as the entry point to support further callbacks. */</div><div class='ctx'> static void</div><div class='hunk'>@@ -790,41 +820,15 @@ ossl_sslctx_setup(VALUE self)</div><div class='ctx'>     SSL_CTX_set_tmp_dh_callback(ctx, ossl_tmp_dh_callback);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if !defined(OPENSSL_NO_EC)</div><div class='del'>-    /* We added SSLContext#tmp_ecdh_callback= in Ruby 2.3.0,</div><div class='del'>-     * but SSL_CTX_set_tmp_ecdh_callback() was removed in OpenSSL 1.1.0. */</div><div class='del'>-    if (RTEST(rb_attr_get(self, id_i_tmp_ecdh_callback))) {</div><div class='del'>-# if defined(HAVE_SSL_CTX_SET_TMP_ECDH_CALLBACK)</div><div class='del'>-	rb_warn("#tmp_ecdh_callback= is deprecated; use #ecdh_curves= instead");</div><div class='del'>-	SSL_CTX_set_tmp_ecdh_callback(ctx, ossl_tmp_ecdh_callback);</div><div class='del'>-#  if defined(HAVE_SSL_CTX_SET_ECDH_AUTO)</div><div class='del'>-	/* tmp_ecdh_callback and ecdh_auto conflict; OpenSSL ignores</div><div class='del'>-	 * tmp_ecdh_callback. So disable ecdh_auto. */</div><div class='del'>-	if (!SSL_CTX_set_ecdh_auto(ctx, 0))</div><div class='del'>-	    ossl_raise(eSSLError, "SSL_CTX_set_ecdh_auto");</div><div class='del'>-#  endif</div><div class='del'>-# else</div><div class='del'>-	ossl_raise(eSSLError, "OpenSSL does not support tmp_ecdh_callback; "</div><div class='del'>-		   "use #ecdh_curves= instead");</div><div class='del'>-# endif</div><div class='del'>-    }</div><div class='del'>-#endif /* OPENSSL_NO_EC */</div><div class='add'>+#ifdef HAVE_SSL_CTX_SET_POST_HANDSHAKE_AUTH</div><div class='add'>+    SSL_CTX_set_post_handshake_auth(ctx, 1);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     val = rb_attr_get(self, id_i_cert_store);</div><div class='ctx'>     if (!NIL_P(val)) {</div><div class='ctx'> 	X509_STORE *store = GetX509StorePtr(val); /* NO NEED TO DUP */</div><div class='ctx'> 	SSL_CTX_set_cert_store(ctx, store);</div><div class='del'>-#if !defined(HAVE_X509_STORE_UP_REF)</div><div class='del'>-	/*</div><div class='del'>-         * WORKAROUND:</div><div class='del'>-	 *   X509_STORE can count references, but</div><div class='del'>-	 *   X509_STORE_free() doesn't care it.</div><div class='del'>-	 *   So we won't increment it but mark it by ex_data.</div><div class='del'>-	 */</div><div class='del'>-        SSL_CTX_set_ex_data(ctx, ossl_sslctx_ex_store_p, ctx);</div><div class='del'>-#else /* Fixed in OpenSSL 1.0.2; bff9ce4db38b (master), 5b4b9ce976fc (1.0.2) */</div><div class='ctx'> 	X509_STORE_up_ref(store);</div><div class='del'>-#endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     val = rb_attr_get(self, id_i_extra_chain_cert);</div><div class='hunk'>@@ -875,10 +879,17 @@ ossl_sslctx_setup(VALUE self)</div><div class='ctx'>     ca_file = NIL_P(val) ? NULL : StringValueCStr(val);</div><div class='ctx'>     val = rb_attr_get(self, id_i_ca_path);</div><div class='ctx'>     ca_path = NIL_P(val) ? NULL : StringValueCStr(val);</div><div class='add'>+#ifdef HAVE_SSL_CTX_LOAD_VERIFY_FILE</div><div class='add'>+    if (ca_file &amp;&amp; !SSL_CTX_load_verify_file(ctx, ca_file))</div><div class='add'>+        ossl_raise(eSSLError, "SSL_CTX_load_verify_file");</div><div class='add'>+    if (ca_path &amp;&amp; !SSL_CTX_load_verify_dir(ctx, ca_path))</div><div class='add'>+        ossl_raise(eSSLError, "SSL_CTX_load_verify_dir");</div><div class='add'>+#else</div><div class='ctx'>     if(ca_file || ca_path){</div><div class='ctx'> 	if (!SSL_CTX_load_verify_locations(ctx, ca_file, ca_path))</div><div class='ctx'> 	    rb_warning("can't set verify locations");</div><div class='ctx'>     }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     val = rb_attr_get(self, id_i_verify_mode);</div><div class='ctx'>     verify_mode = NIL_P(val) ? SSL_VERIFY_NONE : NUM2INT(val);</div><div class='hunk'>@@ -892,12 +903,12 @@ ossl_sslctx_setup(VALUE self)</div><div class='ctx'>     val = rb_attr_get(self, id_i_verify_depth);</div><div class='ctx'>     if(!NIL_P(val)) SSL_CTX_set_verify_depth(ctx, NUM2INT(val));</div><div class='ctx'> </div><div class='del'>-#ifndef OPENSSL_NO_NEXTPROTONEG</div><div class='add'>+#ifdef OSSL_USE_NEXTPROTONEG</div><div class='ctx'>     val = rb_attr_get(self, id_i_npn_protocols);</div><div class='ctx'>     if (!NIL_P(val)) {</div><div class='ctx'> 	VALUE encoded = ssl_encode_npn_protocols(val);</div><div class='ctx'> 	rb_ivar_set(self, id_npn_protocols_encoded, encoded);</div><div class='del'>-	SSL_CTX_set_next_protos_advertised_cb(ctx, ssl_npn_advertise_cb, (void *)encoded);</div><div class='add'>+	SSL_CTX_set_next_protos_advertised_cb(ctx, ssl_npn_advertise_cb, (void *)self);</div><div class='ctx'> 	OSSL_Debug("SSL NPN advertise callback added");</div><div class='ctx'>     }</div><div class='ctx'>     if (RTEST(rb_attr_get(self, id_i_npn_select_cb))) {</div><div class='hunk'>@@ -906,7 +917,6 @@ ossl_sslctx_setup(VALUE self)</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SSL_CTX_SET_ALPN_SELECT_CB</div><div class='ctx'>     val = rb_attr_get(self, id_i_alpn_protocols);</div><div class='ctx'>     if (!NIL_P(val)) {</div><div class='ctx'> 	VALUE rprotos = ssl_encode_npn_protocols(val);</div><div class='hunk'>@@ -921,7 +931,6 @@ ossl_sslctx_setup(VALUE self)</div><div class='ctx'> 	SSL_CTX_set_alpn_select_cb(ctx, ssl_alpn_select_cb, (void *) self);</div><div class='ctx'> 	OSSL_Debug("SSL ALPN select callback added");</div><div class='ctx'>     }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'>     rb_obj_freeze(self);</div><div class='ctx'> </div><div class='hunk'>@@ -953,6 +962,18 @@ ossl_sslctx_setup(VALUE self)</div><div class='ctx'> 	OSSL_Debug("SSL TLSEXT servername callback added");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+#if OPENSSL_VERSION_NUMBER &gt;= 0x10101000 &amp;&amp; !defined(LIBRESSL_VERSION_NUMBER)</div><div class='add'>+    /*</div><div class='add'>+     * It is only compatible with OpenSSL &gt;= 1.1.1. Even if LibreSSL implements</div><div class='add'>+     * SSL_CTX_set_keylog_callback() from v3.4.2, it does nothing (see</div><div class='add'>+     * https://github.com/libressl-portable/openbsd/commit/648d39f0f035835d0653342d139883b9661e9cb6).</div><div class='add'>+     */</div><div class='add'>+    if (RTEST(rb_attr_get(self, id_i_keylog_cb))) {</div><div class='add'>+        SSL_CTX_set_keylog_callback(ctx, ossl_sslctx_keylog_cb);</div><div class='add'>+        OSSL_Debug("SSL keylog callback added");</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1001,27 +1022,13 @@ ossl_sslctx_get_ciphers(VALUE self)</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *    ctx.ciphers = "cipher1:cipher2:..."</div><div class='del'>- *    ctx.ciphers = [name, ...]</div><div class='del'>- *    ctx.ciphers = [[name, version, bits, alg_bits], ...]</div><div class='del'>- *</div><div class='del'>- * Sets the list of available cipher suites for this context.  Note in a server</div><div class='del'>- * context some ciphers require the appropriate certificates.  For example, an</div><div class='del'>- * RSA cipher suite can only be chosen when an RSA certificate is available.</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='del'>-ossl_sslctx_set_ciphers(VALUE self, VALUE v)</div><div class='add'>+build_cipher_string(VALUE v)</div><div class='ctx'> {</div><div class='del'>-    SSL_CTX *ctx;</div><div class='ctx'>     VALUE str, elem;</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='del'>-    rb_check_frozen(self);</div><div class='del'>-    if (NIL_P(v))</div><div class='del'>-	return v;</div><div class='del'>-    else if (RB_TYPE_P(v, T_ARRAY)) {</div><div class='add'>+    if (RB_TYPE_P(v, T_ARRAY)) {</div><div class='ctx'>         str = rb_str_new(0, 0);</div><div class='ctx'>         for (i = 0; i &lt; RARRAY_LEN(v); i++) {</div><div class='ctx'>             elem = rb_ary_entry(v, i);</div><div class='hunk'>@@ -1035,14 +1042,113 @@ ossl_sslctx_set_ciphers(VALUE self, VALUE v)</div><div class='ctx'>         StringValue(str);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    ctx.ciphers = "cipher1:cipher2:..."</div><div class='add'>+ *    ctx.ciphers = [name, ...]</div><div class='add'>+ *    ctx.ciphers = [[name, version, bits, alg_bits], ...]</div><div class='add'>+ *</div><div class='add'>+ * Sets the list of available cipher suites for this context.  Note in a server</div><div class='add'>+ * context some ciphers require the appropriate certificates.  For example, an</div><div class='add'>+ * RSA cipher suite can only be chosen when an RSA certificate is available.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_sslctx_set_ciphers(VALUE self, VALUE v)</div><div class='add'>+{</div><div class='add'>+    SSL_CTX *ctx;</div><div class='add'>+    VALUE str;</div><div class='add'>+</div><div class='add'>+    rb_check_frozen(self);</div><div class='add'>+    if (NIL_P(v))</div><div class='add'>+        return v;</div><div class='add'>+</div><div class='add'>+    str = build_cipher_string(v);</div><div class='add'>+</div><div class='ctx'>     GetSSLCTX(self, ctx);</div><div class='del'>-    if (!SSL_CTX_set_cipher_list(ctx, StringValueCStr(str))) {</div><div class='add'>+    if (!SSL_CTX_set_cipher_list(ctx, StringValueCStr(str)))</div><div class='ctx'>         ossl_raise(eSSLError, "SSL_CTX_set_cipher_list");</div><div class='del'>-    }</div><div class='ctx'> </div><div class='ctx'>     return v;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_SSL_CTX_SET_CIPHERSUITES</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    ctx.ciphersuites = "cipher1:cipher2:..."</div><div class='add'>+ *    ctx.ciphersuites = [name, ...]</div><div class='add'>+ *    ctx.ciphersuites = [[name, version, bits, alg_bits], ...]</div><div class='add'>+ *</div><div class='add'>+ * Sets the list of available TLSv1.3 cipher suites for this context.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_sslctx_set_ciphersuites(VALUE self, VALUE v)</div><div class='add'>+{</div><div class='add'>+    SSL_CTX *ctx;</div><div class='add'>+    VALUE str;</div><div class='add'>+</div><div class='add'>+    rb_check_frozen(self);</div><div class='add'>+    if (NIL_P(v))</div><div class='add'>+        return v;</div><div class='add'>+</div><div class='add'>+    str = build_cipher_string(v);</div><div class='add'>+</div><div class='add'>+    GetSSLCTX(self, ctx);</div><div class='add'>+    if (!SSL_CTX_set_ciphersuites(ctx, StringValueCStr(str)))</div><div class='add'>+        ossl_raise(eSSLError, "SSL_CTX_set_ciphersuites");</div><div class='add'>+</div><div class='add'>+    return v;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef OPENSSL_NO_DH</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    ctx.tmp_dh = pkey</div><div class='add'>+ *</div><div class='add'>+ * Sets DH parameters used for ephemeral DH key exchange. This is relevant for</div><div class='add'>+ * servers only.</div><div class='add'>+ *</div><div class='add'>+ * +pkey+ is an instance of OpenSSL::PKey::DH. Note that key components</div><div class='add'>+ * contained in the key object, if any, are ignored. The server will always</div><div class='add'>+ * generate a new key pair for each handshake.</div><div class='add'>+ *</div><div class='add'>+ * Added in version 3.0. See also the man page SSL_set0_tmp_dh_pkey(3).</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *   ctx = OpenSSL::SSL::SSLContext.new</div><div class='add'>+ *   ctx.tmp_dh = OpenSSL::DH.generate(2048)</div><div class='add'>+ *   svr = OpenSSL::SSL::SSLServer.new(tcp_svr, ctx)</div><div class='add'>+ *   Thread.new { svr.accept }</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_sslctx_set_tmp_dh(VALUE self, VALUE arg)</div><div class='add'>+{</div><div class='add'>+    SSL_CTX *ctx;</div><div class='add'>+    EVP_PKEY *pkey;</div><div class='add'>+</div><div class='add'>+    rb_check_frozen(self);</div><div class='add'>+    GetSSLCTX(self, ctx);</div><div class='add'>+    pkey = GetPKeyPtr(arg);</div><div class='add'>+</div><div class='add'>+    if (EVP_PKEY_base_id(pkey) != EVP_PKEY_DH)</div><div class='add'>+        rb_raise(eSSLError, "invalid pkey type %s (expected DH)",</div><div class='add'>+                 OBJ_nid2sn(EVP_PKEY_base_id(pkey)));</div><div class='add'>+#ifdef HAVE_SSL_SET0_TMP_DH_PKEY</div><div class='add'>+    if (!SSL_CTX_set0_tmp_dh_pkey(ctx, pkey))</div><div class='add'>+        ossl_raise(eSSLError, "SSL_CTX_set0_tmp_dh_pkey");</div><div class='add'>+    EVP_PKEY_up_ref(pkey);</div><div class='add'>+#else</div><div class='add'>+    if (!SSL_CTX_set_tmp_dh(ctx, EVP_PKEY_get0_DH(pkey)))</div><div class='add'>+        ossl_raise(eSSLError, "SSL_CTX_set_tmp_dh");</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return arg;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #if !defined(OPENSSL_NO_EC)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='hunk'>@@ -1054,9 +1160,6 @@ ossl_sslctx_set_ciphers(VALUE self, VALUE v)</div><div class='ctx'>  * Extension. For a server, the list is used by OpenSSL to determine the set of</div><div class='ctx'>  * shared curves. OpenSSL will pick the most appropriate one from it.</div><div class='ctx'>  *</div><div class='del'>- * Note that this works differently with old OpenSSL (&lt;= 1.0.1). Only one curve</div><div class='del'>- * can be set, and this has no effect for TLS clients.</div><div class='del'>- *</div><div class='ctx'>  * === Example</div><div class='ctx'>  *   ctx1 = OpenSSL::SSL::SSLContext.new</div><div class='ctx'>  *   ctx1.ecdh_curves = "X25519:P-256:P-224"</div><div class='hunk'>@@ -1080,48 +1183,8 @@ ossl_sslctx_set_ecdh_curves(VALUE self, VALUE arg)</div><div class='ctx'>     GetSSLCTX(self, ctx);</div><div class='ctx'>     StringValueCStr(arg);</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_SSL_CTX_SET1_CURVES_LIST)</div><div class='ctx'>     if (!SSL_CTX_set1_curves_list(ctx, RSTRING_PTR(arg)))</div><div class='ctx'> 	ossl_raise(eSSLError, NULL);</div><div class='del'>-#else</div><div class='del'>-    /* OpenSSL does not have SSL_CTX_set1_curves_list()... Fallback to</div><div class='del'>-     * SSL_CTX_set_tmp_ecdh(). So only the first curve is used. */</div><div class='del'>-    {</div><div class='del'>-	VALUE curve, splitted;</div><div class='del'>-	EC_KEY *ec;</div><div class='del'>-	int nid;</div><div class='del'>-</div><div class='del'>-	splitted = rb_str_split(arg, ":");</div><div class='del'>-	if (!RARRAY_LEN(splitted))</div><div class='del'>-	    ossl_raise(eSSLError, "invalid input format");</div><div class='del'>-	curve = RARRAY_AREF(splitted, 0);</div><div class='del'>-	StringValueCStr(curve);</div><div class='del'>-</div><div class='del'>-	/* SSL_CTX_set1_curves_list() accepts NIST names */</div><div class='del'>-	nid = EC_curve_nist2nid(RSTRING_PTR(curve));</div><div class='del'>-	if (nid == NID_undef)</div><div class='del'>-	    nid = OBJ_txt2nid(RSTRING_PTR(curve));</div><div class='del'>-	if (nid == NID_undef)</div><div class='del'>-	    ossl_raise(eSSLError, "unknown curve name");</div><div class='del'>-</div><div class='del'>-	ec = EC_KEY_new_by_curve_name(nid);</div><div class='del'>-	if (!ec)</div><div class='del'>-	    ossl_raise(eSSLError, NULL);</div><div class='del'>-	EC_KEY_set_asn1_flag(ec, OPENSSL_EC_NAMED_CURVE);</div><div class='del'>-	if (!SSL_CTX_set_tmp_ecdh(ctx, ec)) {</div><div class='del'>-	    EC_KEY_free(ec);</div><div class='del'>-	    ossl_raise(eSSLError, "SSL_CTX_set_tmp_ecdh");</div><div class='del'>-	}</div><div class='del'>-	EC_KEY_free(ec);</div><div class='del'>-# if defined(HAVE_SSL_CTX_SET_ECDH_AUTO)</div><div class='del'>-	/* tmp_ecdh and ecdh_auto conflict. tmp_ecdh is ignored when ecdh_auto</div><div class='del'>-	 * is enabled. So disable ecdh_auto. */</div><div class='del'>-	if (!SSL_CTX_set_ecdh_auto(ctx, 0))</div><div class='del'>-	    ossl_raise(eSSLError, "SSL_CTX_set_ecdh_auto");</div><div class='del'>-# endif</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'>     return arg;</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='hunk'>@@ -1212,7 +1275,7 @@ ossl_sslctx_enable_fallback_scsv(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    ctx.add_certificate(certiticate, pkey [, extra_certs]) -&gt; self</div><div class='add'>+ *    ctx.add_certificate(certificate, pkey [, extra_certs]) -&gt; self</div><div class='ctx'>  *</div><div class='ctx'>  * Adds a certificate to the context. _pkey_ must be a corresponding private</div><div class='ctx'>  * key with _certificate_.</div><div class='hunk'>@@ -1244,10 +1307,6 @@ ossl_sslctx_enable_fallback_scsv(VALUE self)</div><div class='ctx'>  *   ecdsa_pkey = ...</div><div class='ctx'>  *   another_ca_cert = ...</div><div class='ctx'>  *   ctx.add_certificate(ecdsa_cert, ecdsa_pkey, [another_ca_cert])</div><div class='del'>- *</div><div class='del'>- * === Note</div><div class='del'>- * OpenSSL before the version 1.0.2 could handle only one extra chain across</div><div class='del'>- * all key types. Calling this method discards the chain set previously.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_sslctx_add_certificate(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -1272,7 +1331,7 @@ ossl_sslctx_add_certificate(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     EVP_PKEY_free(pub_pkey);</div><div class='ctx'>     if (!pub_pkey)</div><div class='ctx'> 	rb_raise(rb_eArgError, "certificate does not contain public key");</div><div class='del'>-    if (EVP_PKEY_cmp(pub_pkey, pkey) != 1)</div><div class='add'>+    if (EVP_PKEY_eq(pub_pkey, pkey) != 1)</div><div class='ctx'> 	rb_raise(rb_eArgError, "public key mismatch");</div><div class='ctx'> </div><div class='ctx'>     if (argc &gt;= 3)</div><div class='hunk'>@@ -1286,34 +1345,9 @@ ossl_sslctx_add_certificate(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	sk_X509_pop_free(extra_chain, X509_free);</div><div class='ctx'> 	ossl_raise(eSSLError, "SSL_CTX_use_PrivateKey");</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    if (extra_chain) {</div><div class='del'>-#if OPENSSL_VERSION_NUMBER &gt;= 0x10002000 &amp;&amp; !defined(LIBRESSL_VERSION_NUMBER)</div><div class='del'>-	if (!SSL_CTX_set0_chain(ctx, extra_chain)) {</div><div class='del'>-	    sk_X509_pop_free(extra_chain, X509_free);</div><div class='del'>-	    ossl_raise(eSSLError, "SSL_CTX_set0_chain");</div><div class='del'>-	}</div><div class='del'>-#else</div><div class='del'>-	STACK_OF(X509) *orig_extra_chain;</div><div class='del'>-	X509 *x509_tmp;</div><div class='del'>-</div><div class='del'>-	/* First, clear the existing chain */</div><div class='del'>-	SSL_CTX_get_extra_chain_certs(ctx, &amp;orig_extra_chain);</div><div class='del'>-	if (orig_extra_chain &amp;&amp; sk_X509_num(orig_extra_chain)) {</div><div class='del'>-	    rb_warning("SSL_CTX_set0_chain() is not available; " \</div><div class='del'>-		       "clearing previously set certificate chain");</div><div class='del'>-	    SSL_CTX_clear_extra_chain_certs(ctx);</div><div class='del'>-	}</div><div class='del'>-	while ((x509_tmp = sk_X509_shift(extra_chain))) {</div><div class='del'>-	    /* Transfers ownership */</div><div class='del'>-	    if (!SSL_CTX_add_extra_chain_cert(ctx, x509_tmp)) {</div><div class='del'>-		X509_free(x509_tmp);</div><div class='del'>-		sk_X509_pop_free(extra_chain, X509_free);</div><div class='del'>-		ossl_raise(eSSLError, "SSL_CTX_add_extra_chain_cert");</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	sk_X509_free(extra_chain);</div><div class='del'>-#endif</div><div class='add'>+    if (extra_chain &amp;&amp; !SSL_CTX_set0_chain(ctx, extra_chain)) {</div><div class='add'>+        sk_X509_pop_free(extra_chain, X509_free);</div><div class='add'>+        ossl_raise(eSSLError, "SSL_CTX_set0_chain");</div><div class='ctx'>     }</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -1507,12 +1541,19 @@ ossl_sslctx_flush_sessions(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> /*</div><div class='ctx'>  * SSLSocket class</div><div class='ctx'>  */</div><div class='del'>-#ifndef OPENSSL_NO_SOCK</div><div class='ctx'> static inline int</div><div class='ctx'> ssl_started(SSL *ssl)</div><div class='ctx'> {</div><div class='del'>-    /* the FD is set in ossl_ssl_setup(), called by #connect or #accept */</div><div class='del'>-    return SSL_get_fd(ssl) &gt;= 0;</div><div class='add'>+    /* BIO is created through ossl_ssl_setup(), called by #connect or #accept */</div><div class='add'>+    return SSL_get_rbio(ssl) != NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ossl_ssl_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    SSL *ssl = ptr;</div><div class='add'>+    rb_gc_mark((VALUE)SSL_get_ex_data(ssl, ossl_ssl_ex_ptr_idx));</div><div class='add'>+    rb_gc_mark((VALUE)SSL_get_ex_data(ssl, ossl_ssl_ex_vcb_idx));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -1524,7 +1565,7 @@ ossl_ssl_free(void *ssl)</div><div class='ctx'> const rb_data_type_t ossl_ssl_type = {</div><div class='ctx'>     "OpenSSL/SSL",</div><div class='ctx'>     {</div><div class='del'>-	0, ossl_ssl_free,</div><div class='add'>+        ossl_ssl_mark, ossl_ssl_free,</div><div class='ctx'>     },</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='ctx'> };</div><div class='hunk'>@@ -1535,6 +1576,29 @@ ossl_ssl_s_alloc(VALUE klass)</div><div class='ctx'>     return TypedData_Wrap_Struct(klass, &amp;ossl_ssl_type, NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+peer_ip_address(VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE remote_address = rb_funcall(rb_attr_get(self, id_i_io), rb_intern("remote_address"), 0);</div><div class='add'>+</div><div class='add'>+    return rb_funcall(remote_address, rb_intern("inspect_sockaddr"), 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+fallback_peer_ip_address(VALUE self, VALUE args)</div><div class='add'>+{</div><div class='add'>+    return rb_str_new_cstr("(null)");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+peeraddr_ip_str(VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE rb_mErrno = rb_const_get(rb_cObject, rb_intern("Errno"));</div><div class='add'>+    VALUE rb_eSystemCallError = rb_const_get(rb_mErrno, rb_intern("SystemCallError"));</div><div class='add'>+</div><div class='add'>+    return rb_rescue2(peer_ip_address, self, fallback_peer_ip_address, (VALUE)0, rb_eSystemCallError, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    SSLSocket.new(io) =&gt; aSSLSocket</div><div class='hunk'>@@ -1571,6 +1635,7 @@ ossl_ssl_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     if (rb_respond_to(io, rb_intern("nonblock=")))</div><div class='ctx'> 	rb_funcall(io, rb_intern("nonblock="), 1, Qtrue);</div><div class='add'>+    Check_Type(io, T_FILE);</div><div class='ctx'>     rb_ivar_set(self, id_i_io, io);</div><div class='ctx'> </div><div class='ctx'>     ssl = SSL_new(ctx);</div><div class='hunk'>@@ -1638,8 +1703,33 @@ no_exception_p(VALUE opts)</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+// Provided by Ruby 3.2.0 and later in order to support the default IO#timeout.</div><div class='add'>+#ifndef RUBY_IO_TIMEOUT_DEFAULT</div><div class='add'>+#define RUBY_IO_TIMEOUT_DEFAULT Qnil</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_wait_writable(rb_io_t *fptr)</div><div class='add'>+{</div><div class='add'>+#ifdef HAVE_RB_IO_MAYBE_WAIT</div><div class='add'>+    rb_io_maybe_wait_writable(errno, fptr-&gt;self, RUBY_IO_TIMEOUT_DEFAULT);</div><div class='add'>+#else</div><div class='add'>+    rb_io_wait_writable(fptr-&gt;fd);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_wait_readable(rb_io_t *fptr)</div><div class='add'>+{</div><div class='add'>+#ifdef HAVE_RB_IO_MAYBE_WAIT</div><div class='add'>+    rb_io_maybe_wait_readable(errno, fptr-&gt;self, RUBY_IO_TIMEOUT_DEFAULT);</div><div class='add'>+#else</div><div class='add'>+    rb_io_wait_readable(fptr-&gt;fd);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-ossl_start_ssl(VALUE self, int (*func)(), const char *funcname, VALUE opts)</div><div class='add'>+ossl_start_ssl(VALUE self, int (*func)(SSL *), const char *funcname, VALUE opts)</div><div class='ctx'> {</div><div class='ctx'>     SSL *ssl;</div><div class='ctx'>     rb_io_t *fptr;</div><div class='hunk'>@@ -1672,16 +1762,23 @@ ossl_start_ssl(VALUE self, int (*func)(), const char *funcname, VALUE opts)</div><div class='ctx'> 	case SSL_ERROR_WANT_WRITE:</div><div class='ctx'>             if (no_exception_p(opts)) { return sym_wait_writable; }</div><div class='ctx'>             write_would_block(nonblock);</div><div class='del'>-            rb_io_wait_writable(fptr-&gt;fd);</div><div class='add'>+            io_wait_writable(fptr);</div><div class='ctx'>             continue;</div><div class='ctx'> 	case SSL_ERROR_WANT_READ:</div><div class='ctx'>             if (no_exception_p(opts)) { return sym_wait_readable; }</div><div class='ctx'>             read_would_block(nonblock);</div><div class='del'>-            rb_io_wait_readable(fptr-&gt;fd);</div><div class='add'>+            io_wait_readable(fptr);</div><div class='ctx'>             continue;</div><div class='ctx'> 	case SSL_ERROR_SYSCALL:</div><div class='add'>+#ifdef __APPLE__</div><div class='add'>+            /* See ossl_ssl_write_internal() */</div><div class='add'>+            if (errno == EPROTOTYPE)</div><div class='add'>+                continue;</div><div class='add'>+#endif</div><div class='ctx'> 	    if (errno) rb_sys_fail(funcname);</div><div class='del'>-	    ossl_raise(eSSLError, "%s SYSCALL returned=%d errno=%d state=%s", funcname, ret2, errno, SSL_state_string_long(ssl));</div><div class='add'>+	    ossl_raise(eSSLError, "%s SYSCALL returned=%d errno=%d peeraddr=%"PRIsVALUE" state=%s",</div><div class='add'>+                funcname, ret2, errno, peeraddr_ip_str(self), SSL_state_string_long(ssl));</div><div class='add'>+</div><div class='ctx'> #if defined(SSL_R_CERTIFICATE_VERIFY_FAILED)</div><div class='ctx'> 	case SSL_ERROR_SSL:</div><div class='ctx'> 	    err = ERR_peek_last_error();</div><div class='hunk'>@@ -1694,13 +1791,15 @@ ossl_start_ssl(VALUE self, int (*func)(), const char *funcname, VALUE opts)</div><div class='ctx'> 		if (!verify_msg)</div><div class='ctx'> 		    verify_msg = "(null)";</div><div class='ctx'> 		ossl_clear_error(); /* let ossl_raise() not append message */</div><div class='del'>-		ossl_raise(eSSLError, "%s returned=%d errno=%d state=%s: %s (%s)",</div><div class='del'>-			   funcname, ret2, errno, SSL_state_string_long(ssl),</div><div class='add'>+		ossl_raise(eSSLError, "%s returned=%d errno=%d peeraddr=%"PRIsVALUE" state=%s: %s (%s)",</div><div class='add'>+			   funcname, ret2, errno, peeraddr_ip_str(self), SSL_state_string_long(ssl),</div><div class='ctx'> 			   err_msg, verify_msg);</div><div class='ctx'> 	    }</div><div class='ctx'> #endif</div><div class='add'>+	    /* fallthrough */</div><div class='ctx'> 	default:</div><div class='del'>-	    ossl_raise(eSSLError, "%s returned=%d errno=%d state=%s", funcname, ret2, errno, SSL_state_string_long(ssl));</div><div class='add'>+	    ossl_raise(eSSLError, "%s returned=%d errno=%d peeraddr=%"PRIsVALUE" state=%s",</div><div class='add'>+                funcname, ret2, errno, peeraddr_ip_str(self), SSL_state_string_long(ssl));</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -1711,8 +1810,7 @@ ossl_start_ssl(VALUE self, int (*func)(), const char *funcname, VALUE opts)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    ssl.connect =&gt; self</div><div class='ctx'>  *</div><div class='del'>- * Initiates an SSL/TLS handshake with a server.  The handshake may be started</div><div class='del'>- * after unencrypted data has been sent over the socket.</div><div class='add'>+ * Initiates an SSL/TLS handshake with a server.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_ssl_connect(VALUE self)</div><div class='hunk'>@@ -1759,8 +1857,7 @@ ossl_ssl_connect_nonblock(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    ssl.accept =&gt; self</div><div class='ctx'>  *</div><div class='del'>- * Waits for a SSL/TLS client to initiate a handshake.  The handshake may be</div><div class='del'>- * started after unencrypted data has been sent over the socket.</div><div class='add'>+ * Waits for a SSL/TLS client to initiate a handshake.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_ssl_accept(VALUE self)</div><div class='hunk'>@@ -1807,7 +1904,7 @@ static VALUE</div><div class='ctx'> ossl_ssl_read_internal(int argc, VALUE *argv, VALUE self, int nonblock)</div><div class='ctx'> {</div><div class='ctx'>     SSL *ssl;</div><div class='del'>-    int ilen, nread = 0;</div><div class='add'>+    int ilen;</div><div class='ctx'>     VALUE len, str;</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     VALUE io, opts = Qnil;</div><div class='hunk'>@@ -1817,6 +1914,9 @@ ossl_ssl_read_internal(int argc, VALUE *argv, VALUE self, int nonblock)</div><div class='ctx'>     } else {</div><div class='ctx'> 	rb_scan_args(argc, argv, "11", &amp;len, &amp;str);</div><div class='ctx'>     }</div><div class='add'>+    GetSSL(self, ssl);</div><div class='add'>+    if (!ssl_started(ssl))</div><div class='add'>+        rb_raise(eSSLError, "SSL session is not started yet");</div><div class='ctx'> </div><div class='ctx'>     ilen = NUM2INT(len);</div><div class='ctx'>     if (NIL_P(str))</div><div class='hunk'>@@ -1828,67 +1928,64 @@ ossl_ssl_read_internal(int argc, VALUE *argv, VALUE self, int nonblock)</div><div class='ctx'> 	else</div><div class='ctx'> 	    rb_str_modify_expand(str, ilen - RSTRING_LEN(str));</div><div class='ctx'>     }</div><div class='del'>-    OBJ_TAINT(str);</div><div class='ctx'>     rb_str_set_len(str, 0);</div><div class='ctx'>     if (ilen == 0)</div><div class='ctx'> 	return str;</div><div class='ctx'> </div><div class='del'>-    GetSSL(self, ssl);</div><div class='ctx'>     io = rb_attr_get(self, id_i_io);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='del'>-    if (ssl_started(ssl)) {</div><div class='del'>-	for (;;){</div><div class='del'>-	    nread = SSL_read(ssl, RSTRING_PTR(str), ilen);</div><div class='del'>-	    switch(ssl_get_error(ssl, nread)){</div><div class='del'>-	    case SSL_ERROR_NONE:</div><div class='del'>-		goto end;</div><div class='del'>-	    case SSL_ERROR_ZERO_RETURN:</div><div class='del'>-		if (no_exception_p(opts)) { return Qnil; }</div><div class='del'>-		rb_eof_error();</div><div class='del'>-	    case SSL_ERROR_WANT_WRITE:</div><div class='del'>-		if (no_exception_p(opts)) { return sym_wait_writable; }</div><div class='add'>+</div><div class='add'>+    rb_str_locktmp(str);</div><div class='add'>+    for (;;) {</div><div class='add'>+        int nread = SSL_read(ssl, RSTRING_PTR(str), ilen);</div><div class='add'>+        switch (ssl_get_error(ssl, nread)) {</div><div class='add'>+          case SSL_ERROR_NONE:</div><div class='add'>+            rb_str_unlocktmp(str);</div><div class='add'>+            rb_str_set_len(str, nread);</div><div class='add'>+            return str;</div><div class='add'>+          case SSL_ERROR_ZERO_RETURN:</div><div class='add'>+            rb_str_unlocktmp(str);</div><div class='add'>+            if (no_exception_p(opts)) { return Qnil; }</div><div class='add'>+            rb_eof_error();</div><div class='add'>+          case SSL_ERROR_WANT_WRITE:</div><div class='add'>+            if (nonblock) {</div><div class='add'>+                rb_str_unlocktmp(str);</div><div class='add'>+                if (no_exception_p(opts)) { return sym_wait_writable; }</div><div class='ctx'>                 write_would_block(nonblock);</div><div class='del'>-                rb_io_wait_writable(fptr-&gt;fd);</div><div class='del'>-                continue;</div><div class='del'>-	    case SSL_ERROR_WANT_READ:</div><div class='del'>-		if (no_exception_p(opts)) { return sym_wait_readable; }</div><div class='add'>+            }</div><div class='add'>+            io_wait_writable(fptr);</div><div class='add'>+            continue;</div><div class='add'>+          case SSL_ERROR_WANT_READ:</div><div class='add'>+            if (nonblock) {</div><div class='add'>+                rb_str_unlocktmp(str);</div><div class='add'>+                if (no_exception_p(opts)) { return sym_wait_readable; }</div><div class='ctx'>                 read_would_block(nonblock);</div><div class='del'>-                rb_io_wait_readable(fptr-&gt;fd);</div><div class='del'>-		continue;</div><div class='del'>-	    case SSL_ERROR_SYSCALL:</div><div class='del'>-		if (!ERR_peek_error()) {</div><div class='del'>-		    if (errno)</div><div class='del'>-			rb_sys_fail(0);</div><div class='del'>-		    else {</div><div class='del'>-			/*</div><div class='del'>-			 * The underlying BIO returned 0. This is actually a</div><div class='del'>-			 * protocol error. But unfortunately, not all</div><div class='del'>-			 * implementations cleanly shutdown the TLS connection</div><div class='del'>-			 * but just shutdown/close the TCP connection. So report</div><div class='del'>-			 * EOF for now...</div><div class='del'>-			 */</div><div class='del'>-			if (no_exception_p(opts)) { return Qnil; }</div><div class='del'>-			rb_eof_error();</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-	    default:</div><div class='del'>-		ossl_raise(eSSLError, "SSL_read");</div><div class='del'>-	    }</div><div class='add'>+            }</div><div class='add'>+            io_wait_readable(fptr);</div><div class='add'>+            continue;</div><div class='add'>+          case SSL_ERROR_SYSCALL:</div><div class='add'>+            if (!ERR_peek_error()) {</div><div class='add'>+                rb_str_unlocktmp(str);</div><div class='add'>+                if (errno)</div><div class='add'>+                    rb_sys_fail(0);</div><div class='add'>+                else {</div><div class='add'>+                    /*</div><div class='add'>+                     * The underlying BIO returned 0. This is actually a</div><div class='add'>+                     * protocol error. But unfortunately, not all</div><div class='add'>+                     * implementations cleanly shutdown the TLS connection</div><div class='add'>+                     * but just shutdown/close the TCP connection. So report</div><div class='add'>+                     * EOF for now...</div><div class='add'>+                     */</div><div class='add'>+                    if (no_exception_p(opts)) { return Qnil; }</div><div class='add'>+                    rb_eof_error();</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            /* fall through */</div><div class='add'>+          default:</div><div class='add'>+            rb_str_unlocktmp(str);</div><div class='add'>+            ossl_raise(eSSLError, "SSL_read");</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	ID meth = nonblock ? rb_intern("read_nonblock") : rb_intern("sysread");</div><div class='del'>-</div><div class='del'>-	rb_warning("SSL session is not started yet.");</div><div class='del'>-	if (nonblock)</div><div class='del'>-	    return rb_funcall(io, meth, 3, len, str, opts);</div><div class='del'>-	else</div><div class='del'>-	    return rb_funcall(io, meth, 2, len, str);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-  end:</div><div class='del'>-    rb_str_set_len(str, nread);</div><div class='del'>-    return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1928,57 +2025,55 @@ static VALUE</div><div class='ctx'> ossl_ssl_write_internal(VALUE self, VALUE str, VALUE opts)</div><div class='ctx'> {</div><div class='ctx'>     SSL *ssl;</div><div class='del'>-    int nwrite = 0;</div><div class='ctx'>     rb_io_t *fptr;</div><div class='del'>-    int nonblock = opts != Qfalse;</div><div class='del'>-    VALUE io;</div><div class='add'>+    int num, nonblock = opts != Qfalse;</div><div class='add'>+    VALUE tmp, io;</div><div class='ctx'> </div><div class='del'>-    StringValue(str);</div><div class='ctx'>     GetSSL(self, ssl);</div><div class='add'>+    if (!ssl_started(ssl))</div><div class='add'>+        rb_raise(eSSLError, "SSL session is not started yet");</div><div class='add'>+</div><div class='add'>+    tmp = rb_str_new_frozen(StringValue(str));</div><div class='ctx'>     io = rb_attr_get(self, id_i_io);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='del'>-    if (ssl_started(ssl)) {</div><div class='del'>-	for (;;){</div><div class='del'>-	    int num = RSTRING_LENINT(str);</div><div class='del'>-</div><div class='del'>-	    /* SSL_write(3ssl) manpage states num == 0 is undefined */</div><div class='del'>-	    if (num == 0)</div><div class='del'>-		goto end;</div><div class='del'>-</div><div class='del'>-	    nwrite = SSL_write(ssl, RSTRING_PTR(str), num);</div><div class='del'>-	    switch(ssl_get_error(ssl, nwrite)){</div><div class='del'>-	    case SSL_ERROR_NONE:</div><div class='del'>-		goto end;</div><div class='del'>-	    case SSL_ERROR_WANT_WRITE:</div><div class='del'>-		if (no_exception_p(opts)) { return sym_wait_writable; }</div><div class='del'>-                write_would_block(nonblock);</div><div class='del'>-                rb_io_wait_writable(fptr-&gt;fd);</div><div class='del'>-                continue;</div><div class='del'>-	    case SSL_ERROR_WANT_READ:</div><div class='del'>-		if (no_exception_p(opts)) { return sym_wait_readable; }</div><div class='del'>-                read_would_block(nonblock);</div><div class='del'>-                rb_io_wait_readable(fptr-&gt;fd);</div><div class='add'>+</div><div class='add'>+    /* SSL_write(3ssl) manpage states num == 0 is undefined */</div><div class='add'>+    num = RSTRING_LENINT(tmp);</div><div class='add'>+    if (num == 0)</div><div class='add'>+        return INT2FIX(0);</div><div class='add'>+</div><div class='add'>+    for (;;) {</div><div class='add'>+        int nwritten = SSL_write(ssl, RSTRING_PTR(tmp), num);</div><div class='add'>+        switch (ssl_get_error(ssl, nwritten)) {</div><div class='add'>+          case SSL_ERROR_NONE:</div><div class='add'>+            return INT2NUM(nwritten);</div><div class='add'>+          case SSL_ERROR_WANT_WRITE:</div><div class='add'>+            if (no_exception_p(opts)) { return sym_wait_writable; }</div><div class='add'>+            write_would_block(nonblock);</div><div class='add'>+            io_wait_writable(fptr);</div><div class='add'>+            continue;</div><div class='add'>+          case SSL_ERROR_WANT_READ:</div><div class='add'>+            if (no_exception_p(opts)) { return sym_wait_readable; }</div><div class='add'>+            read_would_block(nonblock);</div><div class='add'>+            io_wait_readable(fptr);</div><div class='add'>+            continue;</div><div class='add'>+          case SSL_ERROR_SYSCALL:</div><div class='add'>+#ifdef __APPLE__</div><div class='add'>+            /*</div><div class='add'>+             * It appears that send syscall can return EPROTOTYPE if the</div><div class='add'>+             * socket is being torn down. Retry to get a proper errno to</div><div class='add'>+             * make the error handling in line with the socket library.</div><div class='add'>+             * [Bug #14713] https://bugs.ruby-lang.org/issues/14713</div><div class='add'>+             */</div><div class='add'>+            if (errno == EPROTOTYPE)</div><div class='ctx'>                 continue;</div><div class='del'>-	    case SSL_ERROR_SYSCALL:</div><div class='del'>-		if (errno) rb_sys_fail(0);</div><div class='del'>-	    default:</div><div class='del'>-		ossl_raise(eSSLError, "SSL_write");</div><div class='del'>-	    }</div><div class='add'>+#endif</div><div class='add'>+            if (errno) rb_sys_fail(0);</div><div class='add'>+            /* fallthrough */</div><div class='add'>+          default:</div><div class='add'>+            ossl_raise(eSSLError, "SSL_write");</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	ID meth = nonblock ?</div><div class='del'>-	    rb_intern("write_nonblock") : rb_intern("syswrite");</div><div class='del'>-</div><div class='del'>-	rb_warning("SSL session is not started yet.");</div><div class='del'>-	if (nonblock)</div><div class='del'>-	    return rb_funcall(io, meth, 2, str, opts);</div><div class='del'>-	else</div><div class='del'>-	    return rb_funcall(io, meth, 1, str);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-  end:</div><div class='del'>-    return INT2NUM(nwrite);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -2277,7 +2372,57 @@ ossl_ssl_get_verify_result(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GetSSL(self, ssl);</div><div class='ctx'> </div><div class='del'>-    return INT2NUM(SSL_get_verify_result(ssl));</div><div class='add'>+    return LONG2NUM(SSL_get_verify_result(ssl));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    ssl.finished_message =&gt; "finished message"</div><div class='add'>+ *</div><div class='add'>+ * Returns the last *Finished* message sent</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ssl_get_finished(VALUE self)</div><div class='add'>+{</div><div class='add'>+    SSL *ssl;</div><div class='add'>+    char sizer[1], *buf;</div><div class='add'>+    size_t len;</div><div class='add'>+</div><div class='add'>+    GetSSL(self, ssl);</div><div class='add'>+</div><div class='add'>+    len = SSL_get_finished(ssl, sizer, 0);</div><div class='add'>+    if (len == 0)</div><div class='add'>+        return Qnil;</div><div class='add'>+</div><div class='add'>+    buf = ALLOCA_N(char, len);</div><div class='add'>+    SSL_get_finished(ssl, buf, len);</div><div class='add'>+    return rb_str_new(buf, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    ssl.peer_finished_message =&gt; "peer finished message"</div><div class='add'>+ *</div><div class='add'>+ * Returns the last *Finished* message received</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ssl_get_peer_finished(VALUE self)</div><div class='add'>+{</div><div class='add'>+    SSL *ssl;</div><div class='add'>+    char sizer[1], *buf;</div><div class='add'>+    size_t len;</div><div class='add'>+</div><div class='add'>+    GetSSL(self, ssl);</div><div class='add'>+</div><div class='add'>+    len = SSL_get_peer_finished(ssl, sizer, 0);</div><div class='add'>+    if (len == 0)</div><div class='add'>+        return Qnil;</div><div class='add'>+</div><div class='add'>+    buf = ALLOCA_N(char, len);</div><div class='add'>+    SSL_get_peer_finished(ssl, buf, len);</div><div class='add'>+    return rb_str_new(buf, len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -2303,7 +2448,7 @@ ossl_ssl_get_client_ca_list(VALUE self)</div><div class='ctx'>     return ossl_x509name_sk2ary(ca);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-# ifndef OPENSSL_NO_NEXTPROTONEG</div><div class='add'>+# ifdef OSSL_USE_NEXTPROTONEG</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    ssl.npn_protocol =&gt; String | nil</div><div class='hunk'>@@ -2328,7 +2473,6 @@ ossl_ssl_npn_protocol(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> # endif</div><div class='ctx'> </div><div class='del'>-# ifdef HAVE_SSL_CTX_SET_ALPN_SELECT_CB</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    ssl.alpn_protocol =&gt; String | nil</div><div class='hunk'>@@ -2351,9 +2495,50 @@ ossl_ssl_alpn_protocol(VALUE self)</div><div class='ctx'>     else</div><div class='ctx'> 	return rb_str_new((const char *) out, outlen);</div><div class='ctx'> }</div><div class='del'>-# endif</div><div class='ctx'> </div><div class='del'>-# ifdef HAVE_SSL_GET_SERVER_TMP_KEY</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    session.export_keying_material(label, length) -&gt; String</div><div class='add'>+ *</div><div class='add'>+ * Enables use of shared session key material in accordance with RFC 5705.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ssl_export_keying_material(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    SSL *ssl;</div><div class='add'>+    VALUE str;</div><div class='add'>+    VALUE label;</div><div class='add'>+    VALUE length;</div><div class='add'>+    VALUE context;</div><div class='add'>+    unsigned char *p;</div><div class='add'>+    size_t len;</div><div class='add'>+    int use_ctx = 0;</div><div class='add'>+    unsigned char *ctx = NULL;</div><div class='add'>+    size_t ctx_len = 0;</div><div class='add'>+    int ret;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "21", &amp;label, &amp;length, &amp;context);</div><div class='add'>+    StringValue(label);</div><div class='add'>+</div><div class='add'>+    GetSSL(self, ssl);</div><div class='add'>+</div><div class='add'>+    len = (size_t)NUM2LONG(length);</div><div class='add'>+    str = rb_str_new(0, len);</div><div class='add'>+    p = (unsigned char *)RSTRING_PTR(str);</div><div class='add'>+    if (!NIL_P(context)) {</div><div class='add'>+	use_ctx = 1;</div><div class='add'>+	StringValue(context);</div><div class='add'>+	ctx = (unsigned char *)RSTRING_PTR(context);</div><div class='add'>+	ctx_len = RSTRING_LEN(context);</div><div class='add'>+    }</div><div class='add'>+    ret = SSL_export_keying_material(ssl, p, len, (char *)RSTRING_PTR(label),</div><div class='add'>+				     RSTRING_LENINT(label), ctx, ctx_len, use_ctx);</div><div class='add'>+    if (ret == 0 || ret == -1) {</div><div class='add'>+	ossl_raise(eSSLError, "SSL_export_keying_material");</div><div class='add'>+    }</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *    ssl.tmp_key =&gt; PKey or nil</div><div class='hunk'>@@ -2371,11 +2556,8 @@ ossl_ssl_tmp_key(VALUE self)</div><div class='ctx'> 	return Qnil;</div><div class='ctx'>     return ossl_pkey_new(key);</div><div class='ctx'> }</div><div class='del'>-# endif /* defined(HAVE_SSL_GET_SERVER_TMP_KEY) */</div><div class='ctx'> #endif /* !defined(OPENSSL_NO_SOCK) */</div><div class='ctx'> </div><div class='del'>-#undef rb_intern</div><div class='del'>-#define rb_intern(s) rb_intern_const(s)</div><div class='ctx'> void</div><div class='ctx'> Init_ossl_ssl(void)</div><div class='ctx'> {</div><div class='hunk'>@@ -2386,8 +2568,9 @@ Init_ossl_ssl(void)</div><div class='ctx'>     rb_mWaitWritable = rb_define_module_under(rb_cIO, "WaitWritable");</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    id_call = rb_intern("call");</div><div class='del'>-    ID_callback_state = rb_intern("callback_state");</div><div class='add'>+#ifndef OPENSSL_NO_SOCK</div><div class='add'>+    id_call = rb_intern_const("call");</div><div class='add'>+    ID_callback_state = rb_intern_const("callback_state");</div><div class='ctx'> </div><div class='ctx'>     ossl_ssl_ex_vcb_idx = SSL_get_ex_new_index(0, (void *)"ossl_ssl_ex_vcb_idx", 0, 0, 0);</div><div class='ctx'>     if (ossl_ssl_ex_vcb_idx &lt; 0)</div><div class='hunk'>@@ -2398,11 +2581,6 @@ Init_ossl_ssl(void)</div><div class='ctx'>     ossl_sslctx_ex_ptr_idx = SSL_CTX_get_ex_new_index(0, (void *)"ossl_sslctx_ex_ptr_idx", 0, 0, 0);</div><div class='ctx'>     if (ossl_sslctx_ex_ptr_idx &lt; 0)</div><div class='ctx'> 	ossl_raise(rb_eRuntimeError, "SSL_CTX_get_ex_new_index");</div><div class='del'>-#if !defined(HAVE_X509_STORE_UP_REF)</div><div class='del'>-    ossl_sslctx_ex_store_p = SSL_CTX_get_ex_new_index(0, (void *)"ossl_sslctx_ex_store_p", 0, 0, 0);</div><div class='del'>-    if (ossl_sslctx_ex_store_p &lt; 0)</div><div class='del'>-	ossl_raise(rb_eRuntimeError, "SSL_CTX_get_ex_new_index");</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'>     /* Document-module: OpenSSL::SSL</div><div class='ctx'>      *</div><div class='hunk'>@@ -2413,16 +2591,6 @@ Init_ossl_ssl(void)</div><div class='ctx'>      */</div><div class='ctx'>     mSSL = rb_define_module_under(mOSSL, "SSL");</div><div class='ctx'> </div><div class='del'>-    /* Document-module: OpenSSL::ExtConfig</div><div class='del'>-     *</div><div class='del'>-     * This module contains configuration information about the SSL extension,</div><div class='del'>-     * for example if socket support is enabled, or the host name TLS extension</div><div class='del'>-     * is enabled.  Constants in this module will always be defined, but contain</div><div class='del'>-     * +true+ or +false+ values depending on the configuration of your OpenSSL</div><div class='del'>-     * installation.</div><div class='del'>-     */</div><div class='del'>-    mSSLExtConfig = rb_define_module_under(mOSSL, "ExtConfig");</div><div class='del'>-</div><div class='ctx'>     /* Document-class: OpenSSL::SSL::SSLError</div><div class='ctx'>      *</div><div class='ctx'>      * Generic error class raised by SSLSocket and SSLContext.</div><div class='hunk'>@@ -2454,7 +2622,7 @@ Init_ossl_ssl(void)</div><div class='ctx'>      * The _cert_, _key_, and _extra_chain_cert_ attributes are deprecated.</div><div class='ctx'>      * It is recommended to use #add_certificate instead.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("cert"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("cert"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * Context private key</div><div class='hunk'>@@ -2462,29 +2630,29 @@ Init_ossl_ssl(void)</div><div class='ctx'>      * The _cert_, _key_, and _extra_chain_cert_ attributes are deprecated.</div><div class='ctx'>      * It is recommended to use #add_certificate instead.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("key"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("key"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * A certificate or Array of certificates that will be sent to the client.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("client_ca"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("client_ca"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * The path to a file containing a PEM-format CA certificate</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("ca_file"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("ca_file"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * The path to a directory containing CA certificates in PEM format.</div><div class='ctx'>      *</div><div class='ctx'>      * Files are looked up by subject's X509 name's hash value.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("ca_path"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("ca_path"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * Maximum session lifetime in seconds.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("timeout"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("timeout"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * Session verification mode.</div><div class='hunk'>@@ -2497,12 +2665,12 @@ Init_ossl_ssl(void)</div><div class='ctx'>      *</div><div class='ctx'>      * See SSL_CTX_set_verify(3) for details.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("verify_mode"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("verify_mode"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * Number of CA certificates to walk when verifying a certificate chain.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("verify_depth"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("verify_depth"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * A callback for additional certificate verification.  The callback is</div><div class='hunk'>@@ -2516,7 +2684,7 @@ Init_ossl_ssl(void)</div><div class='ctx'>      * If the callback returns +false+, the chain verification is immediately</div><div class='ctx'>      * stopped and a bad_certificate alert is then sent.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("verify_callback"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("verify_callback"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * Whether to check the server certificate is valid for the hostname.</div><div class='hunk'>@@ -2524,12 +2692,12 @@ Init_ossl_ssl(void)</div><div class='ctx'>      * In order to make this work, verify_mode must be set to VERIFY_PEER and</div><div class='ctx'>      * the server hostname must be given by OpenSSL::SSL::SSLSocket#hostname=.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("verify_hostname"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("verify_hostname"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * An OpenSSL::X509::Store used for certificate verification.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("cert_store"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("cert_store"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * An Array of extra X509 certificates to be added to the certificate</div><div class='hunk'>@@ -2538,7 +2706,7 @@ Init_ossl_ssl(void)</div><div class='ctx'>      * The _cert_, _key_, and _extra_chain_cert_ attributes are deprecated.</div><div class='ctx'>      * It is recommended to use #add_certificate instead.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("extra_chain_cert"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("extra_chain_cert"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * A callback invoked when a client certificate is requested by a server</div><div class='hunk'>@@ -2548,28 +2716,14 @@ Init_ossl_ssl(void)</div><div class='ctx'>      * containing an OpenSSL::X509::Certificate and an OpenSSL::PKey.  If any</div><div class='ctx'>      * other value is returned the handshake is suspended.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("client_cert_cb"), 1, 1, Qfalse);</div><div class='del'>-</div><div class='del'>-#if !defined(OPENSSL_NO_EC) &amp;&amp; defined(HAVE_SSL_CTX_SET_TMP_ECDH_CALLBACK)</div><div class='del'>-    /*</div><div class='del'>-     * A callback invoked when ECDH parameters are required.</div><div class='del'>-     *</div><div class='del'>-     * The callback is invoked with the Session for the key exchange, an</div><div class='del'>-     * flag indicating the use of an export cipher and the keylength</div><div class='del'>-     * required.</div><div class='del'>-     *</div><div class='del'>-     * The callback is deprecated. This does not work with recent versions of</div><div class='del'>-     * OpenSSL. Use OpenSSL::SSL::SSLContext#ecdh_curves= instead.</div><div class='del'>-     */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("tmp_ecdh_callback"), 1, 1, Qfalse);</div><div class='del'>-#endif</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("client_cert_cb"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * Sets the context in which a session can be reused.  This allows</div><div class='ctx'>      * sessions for multiple applications to be distinguished, for example, by</div><div class='ctx'>      * name.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("session_id_context"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("session_id_context"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * A callback invoked on a server when a session is proposed by the client</div><div class='hunk'>@@ -2578,7 +2732,7 @@ Init_ossl_ssl(void)</div><div class='ctx'>      * The callback is invoked with the SSLSocket and session id.  The</div><div class='ctx'>      * callback may return a Session from an external cache.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("session_get_cb"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("session_get_cb"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * A callback invoked when a new session was negotiated.</div><div class='hunk'>@@ -2586,7 +2740,7 @@ Init_ossl_ssl(void)</div><div class='ctx'>      * The callback is invoked with an SSLSocket.  If +false+ is returned the</div><div class='ctx'>      * session will be removed from the internal cache.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("session_new_cb"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("session_new_cb"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * A callback invoked when a session is removed from the internal cache.</div><div class='hunk'>@@ -2597,18 +2751,16 @@ Init_ossl_ssl(void)</div><div class='ctx'>      * multi-threaded application. The callback is called inside a global lock</div><div class='ctx'>      * and it can randomly cause deadlock on Ruby thread switching.</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("session_remove_cb"), 1, 1, Qfalse);</div><div class='del'>-</div><div class='del'>-    rb_define_const(mSSLExtConfig, "HAVE_TLSEXT_HOST_NAME", Qtrue);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("session_remove_cb"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='del'>-     * A callback invoked whenever a new handshake is initiated. May be used</div><div class='del'>-     * to disable renegotiation entirely.</div><div class='add'>+     * A callback invoked whenever a new handshake is initiated on an</div><div class='add'>+     * established connection. May be used to disable renegotiation entirely.</div><div class='ctx'>      *</div><div class='ctx'>      * The callback is invoked with the active SSLSocket. The callback's</div><div class='del'>-     * return value is irrelevant, normal return indicates "approval" of the</div><div class='add'>+     * return value is ignored. A normal return indicates "approval" of the</div><div class='ctx'>      * renegotiation and will continue the process. To forbid renegotiation</div><div class='del'>-     * and to cancel the process, an Error may be raised within the callback.</div><div class='add'>+     * and to cancel the process, raise an exception within the callback.</div><div class='ctx'>      *</div><div class='ctx'>      * === Disable client renegotiation</div><div class='ctx'>      *</div><div class='hunk'>@@ -2616,14 +2768,12 @@ Init_ossl_ssl(void)</div><div class='ctx'>      * renegotiation entirely. You may use a callback as follows to implement</div><div class='ctx'>      * this feature:</div><div class='ctx'>      *</div><div class='del'>-     *   num_handshakes = 0</div><div class='ctx'>      *   ctx.renegotiation_cb = lambda do |ssl|</div><div class='del'>-     *     num_handshakes += 1</div><div class='del'>-     *     raise RuntimeError.new("Client renegotiation disabled") if num_handshakes &gt; 1</div><div class='add'>+     *     raise RuntimeError, "Client renegotiation disabled"</div><div class='ctx'>      *   end</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("renegotiation_cb"), 1, 1, Qfalse);</div><div class='del'>-#ifndef OPENSSL_NO_NEXTPROTONEG</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("renegotiation_cb"), 1, 1, Qfalse);</div><div class='add'>+#ifdef OSSL_USE_NEXTPROTONEG</div><div class='ctx'>     /*</div><div class='ctx'>      * An Enumerable of Strings. Each String represents a protocol to be</div><div class='ctx'>      * advertised as the list of supported protocols for Next Protocol</div><div class='hunk'>@@ -2635,7 +2785,7 @@ Init_ossl_ssl(void)</div><div class='ctx'>      *</div><div class='ctx'>      *   ctx.npn_protocols = ["http/1.1", "spdy/2"]</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("npn_protocols"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("npn_protocols"), 1, 1, Qfalse);</div><div class='ctx'>     /*</div><div class='ctx'>      * A callback invoked on the client side when the client needs to select</div><div class='ctx'>      * a protocol from the list sent by the server. Supported in OpenSSL 1.0.1</div><div class='hunk'>@@ -2652,10 +2802,9 @@ Init_ossl_ssl(void)</div><div class='ctx'>      *     protocols.first</div><div class='ctx'>      *   end</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("npn_select_cb"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("npn_select_cb"), 1, 1, Qfalse);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SSL_CTX_SET_ALPN_SELECT_CB</div><div class='ctx'>     /*</div><div class='ctx'>      * An Enumerable of Strings. Each String represents a protocol to be</div><div class='ctx'>      * advertised as the list of supported protocols for Application-Layer</div><div class='hunk'>@@ -2667,7 +2816,7 @@ Init_ossl_ssl(void)</div><div class='ctx'>      *</div><div class='ctx'>      *   ctx.alpn_protocols = ["http/1.1", "spdy/2", "h2"]</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("alpn_protocols"), 1, 1, Qfalse);</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("alpn_protocols"), 1, 1, Qfalse);</div><div class='ctx'>     /*</div><div class='ctx'>      * A callback invoked on the server side when the server needs to select</div><div class='ctx'>      * a protocol from the list sent by the client. Supported in OpenSSL 1.0.2</div><div class='hunk'>@@ -2684,8 +2833,30 @@ Init_ossl_ssl(void)</div><div class='ctx'>      *     protocols.first</div><div class='ctx'>      *   end</div><div class='ctx'>      */</div><div class='del'>-    rb_attr(cSSLContext, rb_intern("alpn_select_cb"), 1, 1, Qfalse);</div><div class='del'>-#endif</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("alpn_select_cb"), 1, 1, Qfalse);</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * A callback invoked when TLS key material is generated or received, in</div><div class='add'>+     * order to allow applications to store this keying material for debugging</div><div class='add'>+     * purposes.</div><div class='add'>+     *</div><div class='add'>+     * The callback is invoked with an SSLSocket and a string containing the</div><div class='add'>+     * key material in the format used by NSS for its SSLKEYLOGFILE debugging</div><div class='add'>+     * output.</div><div class='add'>+     *</div><div class='add'>+     * It is only compatible with OpenSSL &gt;= 1.1.1. Even if LibreSSL implements</div><div class='add'>+     * SSL_CTX_set_keylog_callback() from v3.4.2, it does nothing (see</div><div class='add'>+     * https://github.com/libressl-portable/openbsd/commit/648d39f0f035835d0653342d139883b9661e9cb6).</div><div class='add'>+     *</div><div class='add'>+     * === Example</div><div class='add'>+     *</div><div class='add'>+     *   context.keylog_cb = proc do |_sock, line|</div><div class='add'>+     *     File.open('ssl_keylog_file', "a") do |f|</div><div class='add'>+     *       f.write("#{line}\n")</div><div class='add'>+     *     end</div><div class='add'>+     *   end</div><div class='add'>+     */</div><div class='add'>+    rb_attr(cSSLContext, rb_intern_const("keylog_cb"), 1, 1, Qfalse);</div><div class='ctx'> </div><div class='ctx'>     rb_define_alias(cSSLContext, "ssl_timeout", "timeout");</div><div class='ctx'>     rb_define_alias(cSSLContext, "ssl_timeout=", "timeout=");</div><div class='hunk'>@@ -2693,6 +2864,12 @@ Init_ossl_ssl(void)</div><div class='ctx'> 			     ossl_sslctx_set_minmax_proto_version, 2);</div><div class='ctx'>     rb_define_method(cSSLContext, "ciphers",     ossl_sslctx_get_ciphers, 0);</div><div class='ctx'>     rb_define_method(cSSLContext, "ciphers=",    ossl_sslctx_set_ciphers, 1);</div><div class='add'>+#ifdef HAVE_SSL_CTX_SET_CIPHERSUITES</div><div class='add'>+    rb_define_method(cSSLContext, "ciphersuites=", ossl_sslctx_set_ciphersuites, 1);</div><div class='add'>+#endif</div><div class='add'>+#ifndef OPENSSL_NO_DH</div><div class='add'>+    rb_define_method(cSSLContext, "tmp_dh=", ossl_sslctx_set_tmp_dh, 1);</div><div class='add'>+#endif</div><div class='ctx'>     rb_define_method(cSSLContext, "ecdh_curves=", ossl_sslctx_set_ecdh_curves, 1);</div><div class='ctx'>     rb_define_method(cSSLContext, "security_level", ossl_sslctx_get_security_level, 0);</div><div class='ctx'>     rb_define_method(cSSLContext, "security_level=", ossl_sslctx_set_security_level, 1);</div><div class='hunk'>@@ -2766,11 +2943,6 @@ Init_ossl_ssl(void)</div><div class='ctx'>      * Document-class: OpenSSL::SSL::SSLSocket</div><div class='ctx'>      */</div><div class='ctx'>     cSSLSocket = rb_define_class_under(mSSL, "SSLSocket", rb_cObject);</div><div class='del'>-#ifdef OPENSSL_NO_SOCK</div><div class='del'>-    rb_define_const(mSSLExtConfig, "OPENSSL_NO_SOCK", Qtrue);</div><div class='del'>-    rb_define_method(cSSLSocket, "initialize", rb_f_notimplement, -1);</div><div class='del'>-#else</div><div class='del'>-    rb_define_const(mSSLExtConfig, "OPENSSL_NO_SOCK", Qfalse);</div><div class='ctx'>     rb_define_alloc_func(cSSLSocket, ossl_ssl_s_alloc);</div><div class='ctx'>     rb_define_method(cSSLSocket, "initialize", ossl_ssl_initialize, -1);</div><div class='ctx'>     rb_undef_method(cSSLSocket, "initialize_copy");</div><div class='hunk'>@@ -2797,16 +2969,14 @@ Init_ossl_ssl(void)</div><div class='ctx'>     rb_define_method(cSSLSocket, "client_ca", ossl_ssl_get_client_ca_list, 0);</div><div class='ctx'>     /* #hostname is defined in lib/openssl/ssl.rb */</div><div class='ctx'>     rb_define_method(cSSLSocket, "hostname=", ossl_ssl_set_hostname, 1);</div><div class='del'>-# ifdef HAVE_SSL_GET_SERVER_TMP_KEY</div><div class='add'>+    rb_define_method(cSSLSocket, "finished_message", ossl_ssl_get_finished, 0);</div><div class='add'>+    rb_define_method(cSSLSocket, "peer_finished_message", ossl_ssl_get_peer_finished, 0);</div><div class='ctx'>     rb_define_method(cSSLSocket, "tmp_key", ossl_ssl_tmp_key, 0);</div><div class='del'>-# endif</div><div class='del'>-# ifdef HAVE_SSL_CTX_SET_ALPN_SELECT_CB</div><div class='ctx'>     rb_define_method(cSSLSocket, "alpn_protocol", ossl_ssl_alpn_protocol, 0);</div><div class='del'>-# endif</div><div class='del'>-# ifndef OPENSSL_NO_NEXTPROTONEG</div><div class='add'>+    rb_define_method(cSSLSocket, "export_keying_material", ossl_ssl_export_keying_material, -1);</div><div class='add'>+# ifdef OSSL_USE_NEXTPROTONEG</div><div class='ctx'>     rb_define_method(cSSLSocket, "npn_protocol", ossl_ssl_npn_protocol, 0);</div><div class='ctx'> # endif</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'>     rb_define_const(mSSL, "VERIFY_NONE", INT2NUM(SSL_VERIFY_NONE));</div><div class='ctx'>     rb_define_const(mSSL, "VERIFY_PEER", INT2NUM(SSL_VERIFY_PEER));</div><div class='hunk'>@@ -2814,12 +2984,23 @@ Init_ossl_ssl(void)</div><div class='ctx'>     rb_define_const(mSSL, "VERIFY_CLIENT_ONCE", INT2NUM(SSL_VERIFY_CLIENT_ONCE));</div><div class='ctx'> </div><div class='ctx'>     rb_define_const(mSSL, "OP_ALL", ULONG2NUM(SSL_OP_ALL));</div><div class='add'>+#ifdef SSL_OP_CLEANSE_PLAINTEXT /* OpenSSL 3.0 */</div><div class='add'>+    rb_define_const(mSSL, "OP_CLEANSE_PLAINTEXT", ULONG2NUM(SSL_OP_CLEANSE_PLAINTEXT));</div><div class='add'>+#endif</div><div class='ctx'>     rb_define_const(mSSL, "OP_LEGACY_SERVER_CONNECT", ULONG2NUM(SSL_OP_LEGACY_SERVER_CONNECT));</div><div class='del'>-#ifdef SSL_OP_TLSEXT_PADDING /* OpenSSL 1.0.1h and OpenSSL 1.0.2 */</div><div class='del'>-    rb_define_const(mSSL, "OP_TLSEXT_PADDING", ULONG2NUM(SSL_OP_TLSEXT_PADDING));</div><div class='add'>+#ifdef SSL_OP_ENABLE_KTLS /* OpenSSL 3.0 */</div><div class='add'>+    rb_define_const(mSSL, "OP_ENABLE_KTLS", ULONG2NUM(SSL_OP_ENABLE_KTLS));</div><div class='ctx'> #endif</div><div class='del'>-#ifdef SSL_OP_SAFARI_ECDHE_ECDSA_BUG /* OpenSSL 1.0.1f and OpenSSL 1.0.2 */</div><div class='add'>+    rb_define_const(mSSL, "OP_TLSEXT_PADDING", ULONG2NUM(SSL_OP_TLSEXT_PADDING));</div><div class='ctx'>     rb_define_const(mSSL, "OP_SAFARI_ECDHE_ECDSA_BUG", ULONG2NUM(SSL_OP_SAFARI_ECDHE_ECDSA_BUG));</div><div class='add'>+#ifdef SSL_OP_IGNORE_UNEXPECTED_EOF /* OpenSSL 3.0 */</div><div class='add'>+    rb_define_const(mSSL, "OP_IGNORE_UNEXPECTED_EOF", ULONG2NUM(SSL_OP_IGNORE_UNEXPECTED_EOF));</div><div class='add'>+#endif</div><div class='add'>+#ifdef SSL_OP_ALLOW_CLIENT_RENEGOTIATION /* OpenSSL 3.0 */</div><div class='add'>+    rb_define_const(mSSL, "OP_ALLOW_CLIENT_RENEGOTIATION", ULONG2NUM(SSL_OP_ALLOW_CLIENT_RENEGOTIATION));</div><div class='add'>+#endif</div><div class='add'>+#ifdef SSL_OP_DISABLE_TLSEXT_CA_NAMES /* OpenSSL 3.0 */</div><div class='add'>+    rb_define_const(mSSL, "OP_DISABLE_TLSEXT_CA_NAMES", ULONG2NUM(SSL_OP_DISABLE_TLSEXT_CA_NAMES));</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef SSL_OP_ALLOW_NO_DHE_KEX /* OpenSSL 1.1.1 */</div><div class='ctx'>     rb_define_const(mSSL, "OP_ALLOW_NO_DHE_KEX", ULONG2NUM(SSL_OP_ALLOW_NO_DHE_KEX));</div><div class='hunk'>@@ -2832,13 +3013,15 @@ Init_ossl_ssl(void)</div><div class='ctx'> #ifdef SSL_OP_NO_ENCRYPT_THEN_MAC /* OpenSSL 1.1.1 */</div><div class='ctx'>     rb_define_const(mSSL, "OP_NO_ENCRYPT_THEN_MAC", ULONG2NUM(SSL_OP_NO_ENCRYPT_THEN_MAC));</div><div class='ctx'> #endif</div><div class='del'>-    rb_define_const(mSSL, "OP_CIPHER_SERVER_PREFERENCE", ULONG2NUM(SSL_OP_CIPHER_SERVER_PREFERENCE));</div><div class='del'>-    rb_define_const(mSSL, "OP_TLS_ROLLBACK_BUG", ULONG2NUM(SSL_OP_TLS_ROLLBACK_BUG));</div><div class='del'>-#ifdef SSL_OP_NO_RENEGOTIATION /* OpenSSL 1.1.1 */</div><div class='del'>-    rb_define_const(mSSL, "OP_NO_RENEGOTIATION", ULONG2NUM(SSL_OP_NO_RENEGOTIATION));</div><div class='add'>+#ifdef SSL_OP_ENABLE_MIDDLEBOX_COMPAT /* OpenSSL 1.1.1 */</div><div class='add'>+    rb_define_const(mSSL, "OP_ENABLE_MIDDLEBOX_COMPAT", ULONG2NUM(SSL_OP_ENABLE_MIDDLEBOX_COMPAT));</div><div class='add'>+#endif</div><div class='add'>+#ifdef SSL_OP_PRIORITIZE_CHACHA /* OpenSSL 1.1.1 */</div><div class='add'>+    rb_define_const(mSSL, "OP_PRIORITIZE_CHACHA", ULONG2NUM(SSL_OP_PRIORITIZE_CHACHA));</div><div class='add'>+#endif</div><div class='add'>+#ifdef SSL_OP_NO_ANTI_REPLAY /* OpenSSL 1.1.1 */</div><div class='add'>+    rb_define_const(mSSL, "OP_NO_ANTI_REPLAY", ULONG2NUM(SSL_OP_NO_ANTI_REPLAY));</div><div class='ctx'> #endif</div><div class='del'>-    rb_define_const(mSSL, "OP_CRYPTOPRO_TLSEXT_BUG", ULONG2NUM(SSL_OP_CRYPTOPRO_TLSEXT_BUG));</div><div class='del'>-</div><div class='ctx'>     rb_define_const(mSSL, "OP_NO_SSLv3", ULONG2NUM(SSL_OP_NO_SSLv3));</div><div class='ctx'>     rb_define_const(mSSL, "OP_NO_TLSv1", ULONG2NUM(SSL_OP_NO_TLSv1));</div><div class='ctx'>     rb_define_const(mSSL, "OP_NO_TLSv1_1", ULONG2NUM(SSL_OP_NO_TLSv1_1));</div><div class='hunk'>@@ -2846,6 +3029,12 @@ Init_ossl_ssl(void)</div><div class='ctx'> #ifdef SSL_OP_NO_TLSv1_3 /* OpenSSL 1.1.1 */</div><div class='ctx'>     rb_define_const(mSSL, "OP_NO_TLSv1_3", ULONG2NUM(SSL_OP_NO_TLSv1_3));</div><div class='ctx'> #endif</div><div class='add'>+    rb_define_const(mSSL, "OP_CIPHER_SERVER_PREFERENCE", ULONG2NUM(SSL_OP_CIPHER_SERVER_PREFERENCE));</div><div class='add'>+    rb_define_const(mSSL, "OP_TLS_ROLLBACK_BUG", ULONG2NUM(SSL_OP_TLS_ROLLBACK_BUG));</div><div class='add'>+#ifdef SSL_OP_NO_RENEGOTIATION /* OpenSSL 1.1.1 */</div><div class='add'>+    rb_define_const(mSSL, "OP_NO_RENEGOTIATION", ULONG2NUM(SSL_OP_NO_RENEGOTIATION));</div><div class='add'>+#endif</div><div class='add'>+    rb_define_const(mSSL, "OP_CRYPTOPRO_TLSEXT_BUG", ULONG2NUM(SSL_OP_CRYPTOPRO_TLSEXT_BUG));</div><div class='ctx'> </div><div class='ctx'>     /* SSL_OP_* flags for DTLS */</div><div class='ctx'> #if 0</div><div class='hunk'>@@ -2910,16 +3099,16 @@ Init_ossl_ssl(void)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-    sym_exception = ID2SYM(rb_intern("exception"));</div><div class='del'>-    sym_wait_readable = ID2SYM(rb_intern("wait_readable"));</div><div class='del'>-    sym_wait_writable = ID2SYM(rb_intern("wait_writable"));</div><div class='add'>+    sym_exception = ID2SYM(rb_intern_const("exception"));</div><div class='add'>+    sym_wait_readable = ID2SYM(rb_intern_const("wait_readable"));</div><div class='add'>+    sym_wait_writable = ID2SYM(rb_intern_const("wait_writable"));</div><div class='ctx'> </div><div class='del'>-    id_tmp_dh_callback = rb_intern("tmp_dh_callback");</div><div class='del'>-    id_tmp_ecdh_callback = rb_intern("tmp_ecdh_callback");</div><div class='del'>-    id_npn_protocols_encoded = rb_intern("npn_protocols_encoded");</div><div class='add'>+    id_tmp_dh_callback = rb_intern_const("tmp_dh_callback");</div><div class='add'>+    id_npn_protocols_encoded = rb_intern_const("npn_protocols_encoded");</div><div class='add'>+    id_each = rb_intern_const("each");</div><div class='ctx'> </div><div class='ctx'> #define DefIVarID(name) do \</div><div class='del'>-    id_i_##name = rb_intern("@"#name); while (0)</div><div class='add'>+    id_i_##name = rb_intern_const("@"#name); while (0)</div><div class='ctx'> </div><div class='ctx'>     DefIVarID(cert_store);</div><div class='ctx'>     DefIVarID(ca_file);</div><div class='hunk'>@@ -2933,7 +3122,6 @@ Init_ossl_ssl(void)</div><div class='ctx'>     DefIVarID(key);</div><div class='ctx'>     DefIVarID(extra_chain_cert);</div><div class='ctx'>     DefIVarID(client_cert_cb);</div><div class='del'>-    DefIVarID(tmp_ecdh_callback);</div><div class='ctx'>     DefIVarID(timeout);</div><div class='ctx'>     DefIVarID(session_id_context);</div><div class='ctx'>     DefIVarID(session_get_cb);</div><div class='hunk'>@@ -2945,8 +3133,10 @@ Init_ossl_ssl(void)</div><div class='ctx'>     DefIVarID(alpn_select_cb);</div><div class='ctx'>     DefIVarID(servername_cb);</div><div class='ctx'>     DefIVarID(verify_hostname);</div><div class='add'>+    DefIVarID(keylog_cb);</div><div class='ctx'> </div><div class='ctx'>     DefIVarID(io);</div><div class='ctx'>     DefIVarID(context);</div><div class='ctx'>     DefIVarID(hostname);</div><div class='add'>+#endif /* !defined(OPENSSL_NO_SOCK) */</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/openssl/ossl_ssl_session.c b/ext/openssl/ossl_ssl_session.c<br/>index 5514087387..139a474b04 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_ssl_session.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_ssl_session.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_ssl_session.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_ssl_session.c</a></div><div class='hunk'>@@ -4,6 +4,7 @@</div><div class='ctx'> </div><div class='ctx'> #include "ossl.h"</div><div class='ctx'> </div><div class='add'>+#ifndef OPENSSL_NO_SOCK</div><div class='ctx'> VALUE cSSLSession;</div><div class='ctx'> static VALUE eSSLSession;</div><div class='ctx'> </div><div class='hunk'>@@ -34,43 +35,38 @@ static VALUE ossl_ssl_session_alloc(VALUE klass)</div><div class='ctx'>  * Creates a new Session object from an instance of SSLSocket or DER/PEM encoded</div><div class='ctx'>  * String.</div><div class='ctx'>  */</div><div class='del'>-static VALUE ossl_ssl_session_initialize(VALUE self, VALUE arg1)</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ssl_session_initialize(VALUE self, VALUE arg1)</div><div class='ctx'> {</div><div class='del'>-	SSL_SESSION *ctx = NULL;</div><div class='del'>-</div><div class='del'>-	if (RDATA(self)-&gt;data)</div><div class='del'>-		ossl_raise(eSSLSession, "SSL Session already initialized");</div><div class='del'>-</div><div class='del'>-	if (rb_obj_is_instance_of(arg1, cSSLSocket)) {</div><div class='del'>-		SSL *ssl;</div><div class='del'>-</div><div class='del'>-		GetSSL(arg1, ssl);</div><div class='del'>-</div><div class='del'>-		if ((ctx = SSL_get1_session(ssl)) == NULL)</div><div class='del'>-			ossl_raise(eSSLSession, "no session available");</div><div class='del'>-	} else {</div><div class='del'>-		BIO *in = ossl_obj2bio(&amp;arg1);</div><div class='add'>+    SSL_SESSION *ctx;</div><div class='ctx'> </div><div class='del'>-		ctx = PEM_read_bio_SSL_SESSION(in, NULL, NULL, NULL);</div><div class='add'>+    if (RTYPEDDATA_DATA(self))</div><div class='add'>+        ossl_raise(eSSLSession, "SSL Session already initialized");</div><div class='ctx'> </div><div class='del'>-		if (!ctx) {</div><div class='del'>-		        OSSL_BIO_reset(in);</div><div class='del'>-			ctx = d2i_SSL_SESSION_bio(in, NULL);</div><div class='del'>-		}</div><div class='add'>+    if (rb_obj_is_instance_of(arg1, cSSLSocket)) {</div><div class='add'>+        SSL *ssl;</div><div class='ctx'> </div><div class='del'>-		BIO_free(in);</div><div class='add'>+        GetSSL(arg1, ssl);</div><div class='ctx'> </div><div class='del'>-		if (!ctx)</div><div class='del'>-			ossl_raise(rb_eArgError, "unknown type");</div><div class='del'>-	}</div><div class='add'>+        if ((ctx = SSL_get1_session(ssl)) == NULL)</div><div class='add'>+            ossl_raise(eSSLSession, "no session available");</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        BIO *in = ossl_obj2bio(&amp;arg1);</div><div class='ctx'> </div><div class='del'>-	/* should not happen */</div><div class='del'>-	if (ctx == NULL)</div><div class='del'>-		ossl_raise(eSSLSession, "ctx not set - internal error");</div><div class='add'>+        ctx = d2i_SSL_SESSION_bio(in, NULL);</div><div class='add'>+        if (!ctx) {</div><div class='add'>+            OSSL_BIO_reset(in);</div><div class='add'>+            ctx = PEM_read_bio_SSL_SESSION(in, NULL, NULL, NULL);</div><div class='add'>+        }</div><div class='add'>+        BIO_free(in);</div><div class='add'>+        if (!ctx)</div><div class='add'>+            ossl_raise(rb_eArgError, "unknown type");</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-	RDATA(self)-&gt;data = ctx;</div><div class='add'>+    RTYPEDDATA_DATA(self) = ctx;</div><div class='ctx'> </div><div class='del'>-	return self;</div><div class='add'>+    return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -304,6 +300,7 @@ static VALUE ossl_ssl_session_to_text(VALUE self)</div><div class='ctx'> 	return ossl_membio2str(out);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#endif /* !defined(OPENSSL_NO_SOCK) */</div><div class='ctx'> </div><div class='ctx'> void Init_ossl_ssl_session(void)</div><div class='ctx'> {</div><div class='hunk'>@@ -312,6 +309,7 @@ void Init_ossl_ssl_session(void)</div><div class='ctx'>     mSSL = rb_define_module_under(mOSSL, "SSL");</div><div class='ctx'>     eOSSLError = rb_define_class_under(mOSSL, "OpenSSLError", rb_eStandardError);</div><div class='ctx'> #endif</div><div class='add'>+#ifndef OPENSSL_NO_SOCK</div><div class='ctx'> 	cSSLSession = rb_define_class_under(mSSL, "Session", rb_cObject);</div><div class='ctx'> 	eSSLSession = rb_define_class_under(cSSLSession, "SessionError", eOSSLError);</div><div class='ctx'> </div><div class='hunk'>@@ -329,4 +327,5 @@ void Init_ossl_ssl_session(void)</div><div class='ctx'> 	rb_define_method(cSSLSession, "to_der", ossl_ssl_session_to_der, 0);</div><div class='ctx'> 	rb_define_method(cSSLSession, "to_pem", ossl_ssl_session_to_pem, 0);</div><div class='ctx'> 	rb_define_method(cSSLSession, "to_text", ossl_ssl_session_to_text, 0);</div><div class='add'>+#endif /* !defined(OPENSSL_NO_SOCK) */</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/openssl/ossl_ts.c b/ext/openssl/ossl_ts.c<br/>new file mode 100644<br/>index 0000000000..b33ff10c10<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_ts.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_ts.c</a></div><div class='hunk'>@@ -0,0 +1,1539 @@</div><div class='add'>+/*</div><div class='add'>+ *</div><div class='add'>+ * Copyright (C) 2010 Martin Bosslet &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+ * All rights reserved.</div><div class='add'>+ */</div><div class='add'>+/*</div><div class='add'>+ * This program is licenced under the same licence as Ruby.</div><div class='add'>+ * (See the file 'LICENCE'.)</div><div class='add'>+ */</div><div class='add'>+#include "ossl.h"</div><div class='add'>+</div><div class='add'>+#ifndef OPENSSL_NO_TS</div><div class='add'>+</div><div class='add'>+#define NewTSRequest(klass) \</div><div class='add'>+    TypedData_Wrap_Struct((klass), &amp;ossl_ts_req_type, 0)</div><div class='add'>+#define SetTSRequest(obj, req) do { \</div><div class='add'>+    if (!(req)) { \</div><div class='add'>+        ossl_raise(rb_eRuntimeError, "TS_REQ wasn't initialized."); \</div><div class='add'>+    } \</div><div class='add'>+    RTYPEDDATA_DATA(obj) = (req); \</div><div class='add'>+} while (0)</div><div class='add'>+#define GetTSRequest(obj, req) do { \</div><div class='add'>+    TypedData_Get_Struct((obj), TS_REQ, &amp;ossl_ts_req_type, (req)); \</div><div class='add'>+    if (!(req)) { \</div><div class='add'>+        ossl_raise(rb_eRuntimeError, "TS_REQ wasn't initialized."); \</div><div class='add'>+    } \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+#define NewTSResponse(klass) \</div><div class='add'>+    TypedData_Wrap_Struct((klass), &amp;ossl_ts_resp_type, 0)</div><div class='add'>+#define SetTSResponse(obj, resp) do { \</div><div class='add'>+    if (!(resp)) { \</div><div class='add'>+        ossl_raise(rb_eRuntimeError, "TS_RESP wasn't initialized."); \</div><div class='add'>+    } \</div><div class='add'>+    RTYPEDDATA_DATA(obj) = (resp); \</div><div class='add'>+} while (0)</div><div class='add'>+#define GetTSResponse(obj, resp) do { \</div><div class='add'>+    TypedData_Get_Struct((obj), TS_RESP, &amp;ossl_ts_resp_type, (resp)); \</div><div class='add'>+    if (!(resp)) { \</div><div class='add'>+        ossl_raise(rb_eRuntimeError, "TS_RESP wasn't initialized."); \</div><div class='add'>+    } \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+#define NewTSTokenInfo(klass) \</div><div class='add'>+    TypedData_Wrap_Struct((klass), &amp;ossl_ts_token_info_type, 0)</div><div class='add'>+#define SetTSTokenInfo(obj, info) do { \</div><div class='add'>+    if (!(info)) { \</div><div class='add'>+        ossl_raise(rb_eRuntimeError, "TS_TST_INFO wasn't initialized."); \</div><div class='add'>+    } \</div><div class='add'>+    RTYPEDDATA_DATA(obj) = (info); \</div><div class='add'>+} while (0)</div><div class='add'>+#define GetTSTokenInfo(obj, info) do { \</div><div class='add'>+    TypedData_Get_Struct((obj), TS_TST_INFO, &amp;ossl_ts_token_info_type, (info)); \</div><div class='add'>+    if (!(info)) { \</div><div class='add'>+        ossl_raise(rb_eRuntimeError, "TS_TST_INFO wasn't initialized."); \</div><div class='add'>+    } \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+#define ossl_tsfac_get_default_policy_id(o)      rb_attr_get((o),rb_intern("@default_policy_id"))</div><div class='add'>+#define ossl_tsfac_get_serial_number(o)          rb_attr_get((o),rb_intern("@serial_number"))</div><div class='add'>+#define ossl_tsfac_get_gen_time(o)               rb_attr_get((o),rb_intern("@gen_time"))</div><div class='add'>+#define ossl_tsfac_get_additional_certs(o)       rb_attr_get((o),rb_intern("@additional_certs"))</div><div class='add'>+#define ossl_tsfac_get_allowed_digests(o)        rb_attr_get((o),rb_intern("@allowed_digests"))</div><div class='add'>+</div><div class='add'>+static VALUE mTimestamp;</div><div class='add'>+static VALUE eTimestampError;</div><div class='add'>+static VALUE cTimestampRequest;</div><div class='add'>+static VALUE cTimestampResponse;</div><div class='add'>+static VALUE cTimestampTokenInfo;</div><div class='add'>+static VALUE cTimestampFactory;</div><div class='add'>+static VALUE sBAD_ALG, sBAD_REQUEST, sBAD_DATA_FORMAT, sTIME_NOT_AVAILABLE;</div><div class='add'>+static VALUE sUNACCEPTED_POLICY, sUNACCEPTED_EXTENSION, sADD_INFO_NOT_AVAILABLE;</div><div class='add'>+static VALUE sSYSTEM_FAILURE;</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ossl_ts_req_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    TS_REQ_free(ptr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t ossl_ts_req_type = {</div><div class='add'>+    "OpenSSL/Timestamp/Request",</div><div class='add'>+    {</div><div class='add'>+        0, ossl_ts_req_free,</div><div class='add'>+    },</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ossl_ts_resp_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+    TS_RESP_free(ptr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static  const rb_data_type_t ossl_ts_resp_type = {</div><div class='add'>+    "OpenSSL/Timestamp/Response",</div><div class='add'>+    {</div><div class='add'>+        0, ossl_ts_resp_free,</div><div class='add'>+    },</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+ossl_ts_token_info_free(void *ptr)</div><div class='add'>+{</div><div class='add'>+        TS_TST_INFO_free(ptr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t ossl_ts_token_info_type = {</div><div class='add'>+    "OpenSSL/Timestamp/TokenInfo",</div><div class='add'>+    {</div><div class='add'>+        0, ossl_ts_token_info_free,</div><div class='add'>+    },</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+asn1_to_der(void *template, int (*i2d)(void *template, unsigned char **pp))</div><div class='add'>+{</div><div class='add'>+    VALUE str;</div><div class='add'>+    int len;</div><div class='add'>+    unsigned char *p;</div><div class='add'>+</div><div class='add'>+    if((len = i2d(template, NULL)) &lt;= 0)</div><div class='add'>+        ossl_raise(eTimestampError, "Error when encoding to DER");</div><div class='add'>+    str = rb_str_new(0, len);</div><div class='add'>+    p = (unsigned char *)RSTRING_PTR(str);</div><div class='add'>+    if(i2d(template, &amp;p) &lt;= 0)</div><div class='add'>+        ossl_raise(eTimestampError, "Error when encoding to DER");</div><div class='add'>+    rb_str_set_len(str, p - (unsigned char*)RSTRING_PTR(str));</div><div class='add'>+</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ASN1_OBJECT*</div><div class='add'>+obj_to_asn1obj(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    ASN1_OBJECT *a1obj;</div><div class='add'>+</div><div class='add'>+    StringValue(obj);</div><div class='add'>+    a1obj = OBJ_txt2obj(RSTRING_PTR(obj), 0);</div><div class='add'>+    if(!a1obj) a1obj = OBJ_txt2obj(RSTRING_PTR(obj), 1);</div><div class='add'>+    if(!a1obj) ossl_raise(eASN1Error, "invalid OBJECT ID");</div><div class='add'>+</div><div class='add'>+    return a1obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+obj_to_asn1obj_i(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return (VALUE)obj_to_asn1obj(obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+get_asn1obj(ASN1_OBJECT *obj)</div><div class='add'>+{</div><div class='add'>+    BIO *out;</div><div class='add'>+    VALUE ret;</div><div class='add'>+    int nid;</div><div class='add'>+    if ((nid = OBJ_obj2nid(obj)) != NID_undef)</div><div class='add'>+        ret = rb_str_new2(OBJ_nid2sn(nid));</div><div class='add'>+    else{</div><div class='add'>+        if (!(out = BIO_new(BIO_s_mem())))</div><div class='add'>+            ossl_raise(eX509AttrError, NULL);</div><div class='add'>+        i2a_ASN1_OBJECT(out, obj);</div><div class='add'>+        ret = ossl_membio2str(out);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    VALUE obj;</div><div class='add'>+</div><div class='add'>+    obj = NewTSRequest(klass);</div><div class='add'>+    if (!(req = TS_REQ_new()))</div><div class='add'>+        ossl_raise(eTimestampError, NULL);</div><div class='add'>+    SetTSRequest(obj, req);</div><div class='add'>+</div><div class='add'>+    /* Defaults */</div><div class='add'>+    TS_REQ_set_version(req, 1);</div><div class='add'>+    TS_REQ_set_cert_req(req, 1);</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * When creating a Request with the +File+ or +string+ parameter, the</div><div class='add'>+ * corresponding +File+ or +string+ must be DER-encoded.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       OpenSSL::Timestamp::Request.new(file)    -&gt; request</div><div class='add'>+ *       OpenSSL::Timestamp::Request.new(string)  -&gt; request</div><div class='add'>+ *       OpenSSL::Timestamp::Request.new          -&gt; empty request</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_initialize(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *ts_req = DATA_PTR(self);</div><div class='add'>+    BIO *in;</div><div class='add'>+    VALUE arg;</div><div class='add'>+</div><div class='add'>+    if(rb_scan_args(argc, argv, "01", &amp;arg) == 0) {</div><div class='add'>+        return self;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    arg = ossl_to_der_if_possible(arg);</div><div class='add'>+    in = ossl_obj2bio(&amp;arg);</div><div class='add'>+    ts_req = d2i_TS_REQ_bio(in, &amp;ts_req);</div><div class='add'>+    BIO_free(in);</div><div class='add'>+    if (!ts_req) {</div><div class='add'>+        DATA_PTR(self) = NULL;</div><div class='add'>+        ossl_raise(eTimestampError, "Error when decoding the timestamp request");</div><div class='add'>+    }</div><div class='add'>+    DATA_PTR(self) = ts_req;</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the 'short name' of the object identifier that represents the</div><div class='add'>+ * algorithm that was used to create the message imprint digest.</div><div class='add'>+ *</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *       request.algorithm    -&gt; string</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_get_algorithm(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    TS_MSG_IMPRINT *mi;</div><div class='add'>+    X509_ALGOR *algor;</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    mi = TS_REQ_get_msg_imprint(req);</div><div class='add'>+    algor = TS_MSG_IMPRINT_get_algo(mi);</div><div class='add'>+    return get_asn1obj(algor-&gt;algorithm);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Allows to set the object identifier  or the 'short name' of the</div><div class='add'>+ * algorithm that was used to create the message imprint digest.</div><div class='add'>+ *</div><div class='add'>+ * ===Example:</div><div class='add'>+ *      request.algorithm = "SHA1"</div><div class='add'>+ *</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *       request.algorithm = "string"    -&gt; string</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_set_algorithm(VALUE self, VALUE algo)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    TS_MSG_IMPRINT *mi;</div><div class='add'>+    ASN1_OBJECT *obj;</div><div class='add'>+    X509_ALGOR *algor;</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    obj = obj_to_asn1obj(algo);</div><div class='add'>+    mi = TS_REQ_get_msg_imprint(req);</div><div class='add'>+    algor = TS_MSG_IMPRINT_get_algo(mi);</div><div class='add'>+    if (!X509_ALGOR_set0(algor, obj, V_ASN1_NULL, NULL)) {</div><div class='add'>+        ASN1_OBJECT_free(obj);</div><div class='add'>+        ossl_raise(eTimestampError, "X509_ALGOR_set0");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return algo;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the message imprint (digest) of the data to be timestamped.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       request.message_imprint    -&gt; string or nil</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_get_msg_imprint(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    TS_MSG_IMPRINT *mi;</div><div class='add'>+    ASN1_OCTET_STRING *hashed_msg;</div><div class='add'>+    VALUE ret;</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    mi = TS_REQ_get_msg_imprint(req);</div><div class='add'>+    hashed_msg = TS_MSG_IMPRINT_get_msg(mi);</div><div class='add'>+</div><div class='add'>+    ret = rb_str_new((const char *)hashed_msg-&gt;data, hashed_msg-&gt;length);</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Set the message imprint digest.</div><div class='add'>+ *</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *       request.message_imprint = "string"    -&gt; string</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_set_msg_imprint(VALUE self, VALUE hash)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    TS_MSG_IMPRINT *mi;</div><div class='add'>+    StringValue(hash);</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    mi = TS_REQ_get_msg_imprint(req);</div><div class='add'>+    if (!TS_MSG_IMPRINT_set_msg(mi, (unsigned char *)RSTRING_PTR(hash), RSTRING_LENINT(hash)))</div><div class='add'>+        ossl_raise(eTimestampError, "TS_MSG_IMPRINT_set_msg");</div><div class='add'>+</div><div class='add'>+    return hash;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the version of this request. +1+ is the default value.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       request.version -&gt; Integer</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_get_version(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    return LONG2NUM(TS_REQ_get_version(req));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Sets the version number for this Request. This should be +1+ for compliant</div><div class='add'>+ * servers.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       request.version = number    -&gt; Integer</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_set_version(VALUE self, VALUE version)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    long ver;</div><div class='add'>+</div><div class='add'>+    if ((ver = NUM2LONG(version)) &lt; 0)</div><div class='add'>+        ossl_raise(eTimestampError, "version must be &gt;= 0!");</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    if (!TS_REQ_set_version(req, ver))</div><div class='add'>+        ossl_raise(eTimestampError, "TS_REQ_set_version");</div><div class='add'>+</div><div class='add'>+    return version;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the 'short name' of the object identifier that represents the</div><div class='add'>+ * timestamp policy under which the server shall create the timestamp.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       request.policy_id    -&gt; string or nil</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_get_policy_id(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    if (!TS_REQ_get_policy_id(req))</div><div class='add'>+        return Qnil;</div><div class='add'>+    return get_asn1obj(TS_REQ_get_policy_id(req));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Allows to set the object identifier that represents the</div><div class='add'>+ * timestamp policy under which the server shall create the timestamp. This</div><div class='add'>+ * may be left +nil+, implying that the timestamp server will issue the</div><div class='add'>+ * timestamp using some default policy.</div><div class='add'>+ *</div><div class='add'>+ * ===Example:</div><div class='add'>+ *      request.policy_id = "1.2.3.4.5"</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       request.policy_id = "string"   -&gt; string</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_set_policy_id(VALUE self, VALUE oid)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    ASN1_OBJECT *obj;</div><div class='add'>+    int ok;</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    obj = obj_to_asn1obj(oid);</div><div class='add'>+    ok = TS_REQ_set_policy_id(req, obj);</div><div class='add'>+    ASN1_OBJECT_free(obj);</div><div class='add'>+    if (!ok)</div><div class='add'>+        ossl_raise(eTimestampError, "TS_REQ_set_policy_id");</div><div class='add'>+</div><div class='add'>+    return oid;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the nonce (number used once) that the server shall include in its</div><div class='add'>+ * response.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       request.nonce    -&gt; BN or nil</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_get_nonce(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    const ASN1_INTEGER * nonce;</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    if (!(nonce = TS_REQ_get_nonce(req)))</div><div class='add'>+        return Qnil;</div><div class='add'>+    return asn1integer_to_num(nonce);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Sets the nonce (number used once) that the server shall include in its</div><div class='add'>+ * response. If the nonce is set, the server must return the same nonce value in</div><div class='add'>+ * a valid Response.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       request.nonce = number    -&gt; BN</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_set_nonce(VALUE self, VALUE num)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    ASN1_INTEGER *nonce;</div><div class='add'>+    int ok;</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    nonce = num_to_asn1integer(num, NULL);</div><div class='add'>+    ok = TS_REQ_set_nonce(req, nonce);</div><div class='add'>+    ASN1_INTEGER_free(nonce);</div><div class='add'>+    if (!ok)</div><div class='add'>+        ossl_raise(eTimestampError, NULL);</div><div class='add'>+    return num;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Indicates whether the response shall contain the timestamp authority's</div><div class='add'>+ * certificate or not.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       request.cert_requested?  -&gt; true or false</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_get_cert_requested(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    return TS_REQ_get_cert_req(req) ? Qtrue: Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Specify whether the response shall contain the timestamp authority's</div><div class='add'>+ * certificate or not. The default value is +true+.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       request.cert_requested = boolean -&gt; true or false</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_set_cert_requested(VALUE self, VALUE requested)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    TS_REQ_set_cert_req(req, RTEST(requested));</div><div class='add'>+</div><div class='add'>+    return requested;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * DER-encodes this Request.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       request.to_der    -&gt; DER-encoded string</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_req_to_der(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    TS_MSG_IMPRINT *mi;</div><div class='add'>+    X509_ALGOR *algo;</div><div class='add'>+    ASN1_OCTET_STRING *hashed_msg;</div><div class='add'>+</div><div class='add'>+    GetTSRequest(self, req);</div><div class='add'>+    mi = TS_REQ_get_msg_imprint(req);</div><div class='add'>+</div><div class='add'>+    algo = TS_MSG_IMPRINT_get_algo(mi);</div><div class='add'>+    if (OBJ_obj2nid(algo-&gt;algorithm) == NID_undef)</div><div class='add'>+        ossl_raise(eTimestampError, "Message imprint missing algorithm");</div><div class='add'>+</div><div class='add'>+    hashed_msg = TS_MSG_IMPRINT_get_msg(mi);</div><div class='add'>+    if (!hashed_msg-&gt;length)</div><div class='add'>+        ossl_raise(eTimestampError, "Message imprint missing hashed message");</div><div class='add'>+</div><div class='add'>+    return asn1_to_der((void *)req, (int (*)(void *, unsigned char **))i2d_TS_REQ);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_resp_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    TS_RESP *resp;</div><div class='add'>+    VALUE obj;</div><div class='add'>+</div><div class='add'>+    obj = NewTSResponse(klass);</div><div class='add'>+    if (!(resp = TS_RESP_new()))</div><div class='add'>+        ossl_raise(eTimestampError, NULL);</div><div class='add'>+    SetTSResponse(obj, resp);</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Creates a Response from a +File+ or +string+ parameter, the</div><div class='add'>+ * corresponding +File+ or +string+ must be DER-encoded. Please note</div><div class='add'>+ * that Response is an immutable read-only class. If you'd like to create</div><div class='add'>+ * timestamps please refer to Factory instead.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       OpenSSL::Timestamp::Response.new(file)    -&gt; response</div><div class='add'>+ *       OpenSSL::Timestamp::Response.new(string)  -&gt; response</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_resp_initialize(VALUE self, VALUE der)</div><div class='add'>+{</div><div class='add'>+    TS_RESP *ts_resp = DATA_PTR(self);</div><div class='add'>+    BIO *in;</div><div class='add'>+</div><div class='add'>+    der = ossl_to_der_if_possible(der);</div><div class='add'>+    in  = ossl_obj2bio(&amp;der);</div><div class='add'>+    ts_resp = d2i_TS_RESP_bio(in, &amp;ts_resp);</div><div class='add'>+    BIO_free(in);</div><div class='add'>+    if (!ts_resp) {</div><div class='add'>+        DATA_PTR(self) = NULL;</div><div class='add'>+        ossl_raise(eTimestampError, "Error when decoding the timestamp response");</div><div class='add'>+    }</div><div class='add'>+    DATA_PTR(self) = ts_resp;</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns one of GRANTED, GRANTED_WITH_MODS, REJECTION, WAITING,</div><div class='add'>+ * REVOCATION_WARNING or REVOCATION_NOTIFICATION. A timestamp token has</div><div class='add'>+ * been created only in case +status+ is equal to GRANTED or GRANTED_WITH_MODS.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       response.status -&gt; BN (never nil)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_resp_get_status(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_RESP *resp;</div><div class='add'>+    TS_STATUS_INFO *si;</div><div class='add'>+    const ASN1_INTEGER *st;</div><div class='add'>+</div><div class='add'>+    GetTSResponse(self, resp);</div><div class='add'>+    si = TS_RESP_get_status_info(resp);</div><div class='add'>+    st = TS_STATUS_INFO_get0_status(si);</div><div class='add'>+</div><div class='add'>+    return asn1integer_to_num(st);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * In cases no timestamp token has been created, this field contains further</div><div class='add'>+ * info about the reason why response creation failed. The method returns either</div><div class='add'>+ * nil (the request was successful and a timestamp token was created) or one of</div><div class='add'>+ * the following:</div><div class='add'>+ * * :BAD_ALG - Indicates that the timestamp server rejects the message</div><div class='add'>+ *   imprint algorithm used in the Request</div><div class='add'>+ * * :BAD_REQUEST - Indicates that the timestamp server was not able to process</div><div class='add'>+ *   the Request properly</div><div class='add'>+ * * :BAD_DATA_FORMAT - Indicates that the timestamp server was not able to</div><div class='add'>+ *   parse certain data in the Request</div><div class='add'>+ * * :TIME_NOT_AVAILABLE - Indicates that the server could not access its time</div><div class='add'>+ *   source</div><div class='add'>+ * * :UNACCEPTED_POLICY - Indicates that the requested policy identifier is not</div><div class='add'>+ *   recognized or supported by the timestamp server</div><div class='add'>+ * * :UNACCEPTED_EXTENSIION - Indicates that an extension in the Request is</div><div class='add'>+ *   not supported by the timestamp server</div><div class='add'>+ * * :ADD_INFO_NOT_AVAILABLE -Indicates that additional information requested</div><div class='add'>+ *   is either not understood or currently not available</div><div class='add'>+ * * :SYSTEM_FAILURE - Timestamp creation failed due to an internal error that</div><div class='add'>+ *   occurred on the timestamp server</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       response.failure_info -&gt; nil or symbol</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_resp_get_failure_info(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_RESP *resp;</div><div class='add'>+    TS_STATUS_INFO *si;</div><div class='add'>+</div><div class='add'>+    /* The ASN1_BIT_STRING_get_bit changed from 1.0.0. to 1.1.0, making this</div><div class='add'>+     * const. */</div><div class='add'>+    #if defined(HAVE_TS_STATUS_INFO_GET0_FAILURE_INFO)</div><div class='add'>+    const ASN1_BIT_STRING *fi;</div><div class='add'>+    #else</div><div class='add'>+    ASN1_BIT_STRING *fi;</div><div class='add'>+    #endif</div><div class='add'>+</div><div class='add'>+    GetTSResponse(self, resp);</div><div class='add'>+    si = TS_RESP_get_status_info(resp);</div><div class='add'>+    fi = TS_STATUS_INFO_get0_failure_info(si);</div><div class='add'>+    if (!fi)</div><div class='add'>+        return Qnil;</div><div class='add'>+    if (ASN1_BIT_STRING_get_bit(fi, TS_INFO_BAD_ALG))</div><div class='add'>+        return sBAD_ALG;</div><div class='add'>+    if (ASN1_BIT_STRING_get_bit(fi, TS_INFO_BAD_REQUEST))</div><div class='add'>+        return sBAD_REQUEST;</div><div class='add'>+    if (ASN1_BIT_STRING_get_bit(fi, TS_INFO_BAD_DATA_FORMAT))</div><div class='add'>+        return sBAD_DATA_FORMAT;</div><div class='add'>+    if (ASN1_BIT_STRING_get_bit(fi, TS_INFO_TIME_NOT_AVAILABLE))</div><div class='add'>+        return sTIME_NOT_AVAILABLE;</div><div class='add'>+    if (ASN1_BIT_STRING_get_bit(fi, TS_INFO_UNACCEPTED_POLICY))</div><div class='add'>+        return sUNACCEPTED_POLICY;</div><div class='add'>+    if (ASN1_BIT_STRING_get_bit(fi, TS_INFO_UNACCEPTED_EXTENSION))</div><div class='add'>+        return sUNACCEPTED_EXTENSION;</div><div class='add'>+    if (ASN1_BIT_STRING_get_bit(fi, TS_INFO_ADD_INFO_NOT_AVAILABLE))</div><div class='add'>+        return sADD_INFO_NOT_AVAILABLE;</div><div class='add'>+    if (ASN1_BIT_STRING_get_bit(fi, TS_INFO_SYSTEM_FAILURE))</div><div class='add'>+        return sSYSTEM_FAILURE;</div><div class='add'>+</div><div class='add'>+    ossl_raise(eTimestampError, "Unrecognized failure info.");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * In cases of failure this field may contain an array of strings further</div><div class='add'>+ * describing the origin of the failure.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       response.status_text -&gt; Array of strings or nil</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_resp_get_status_text(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_RESP *resp;</div><div class='add'>+    TS_STATUS_INFO *si;</div><div class='add'>+    const STACK_OF(ASN1_UTF8STRING) *text;</div><div class='add'>+    ASN1_UTF8STRING *current;</div><div class='add'>+    int i;</div><div class='add'>+    VALUE ret = rb_ary_new();</div><div class='add'>+</div><div class='add'>+    GetTSResponse(self, resp);</div><div class='add'>+    si = TS_RESP_get_status_info(resp);</div><div class='add'>+    if ((text = TS_STATUS_INFO_get0_text(si))) {</div><div class='add'>+        for (i = 0; i &lt; sk_ASN1_UTF8STRING_num(text); i++) {</div><div class='add'>+            current = sk_ASN1_UTF8STRING_value(text, i);</div><div class='add'>+            rb_ary_push(ret, asn1str_to_str(current));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * If a timestamp token is present, this returns it in the form of a</div><div class='add'>+ * OpenSSL::PKCS7.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       response.token -&gt; nil or OpenSSL::PKCS7</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_resp_get_token(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_RESP *resp;</div><div class='add'>+    PKCS7 *p7, *copy;</div><div class='add'>+    VALUE obj;</div><div class='add'>+</div><div class='add'>+    GetTSResponse(self, resp);</div><div class='add'>+    if (!(p7 = TS_RESP_get_token(resp)))</div><div class='add'>+        return Qnil;</div><div class='add'>+</div><div class='add'>+    obj = NewPKCS7(cPKCS7);</div><div class='add'>+</div><div class='add'>+    if (!(copy = PKCS7_dup(p7)))</div><div class='add'>+        ossl_raise(eTimestampError, NULL);</div><div class='add'>+</div><div class='add'>+    SetPKCS7(obj, copy);</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Get the response's token info if present.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       response.token_info -&gt; nil or OpenSSL::Timestamp::TokenInfo</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_resp_get_token_info(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_RESP *resp;</div><div class='add'>+    TS_TST_INFO *info, *copy;</div><div class='add'>+    VALUE obj;</div><div class='add'>+</div><div class='add'>+    GetTSResponse(self, resp);</div><div class='add'>+    if (!(info = TS_RESP_get_tst_info(resp)))</div><div class='add'>+        return Qnil;</div><div class='add'>+</div><div class='add'>+    obj = NewTSTokenInfo(cTimestampTokenInfo);</div><div class='add'>+</div><div class='add'>+    if (!(copy = TS_TST_INFO_dup(info)))</div><div class='add'>+        ossl_raise(eTimestampError, NULL);</div><div class='add'>+</div><div class='add'>+    SetTSTokenInfo(obj, copy);</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * If the Request specified to request the TSA certificate</div><div class='add'>+ * (Request#cert_requested = true), then this field contains the</div><div class='add'>+ * certificate of the timestamp authority.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       response.tsa_certificate -&gt; OpenSSL::X509::Certificate or nil</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_resp_get_tsa_certificate(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_RESP *resp;</div><div class='add'>+    PKCS7 *p7;</div><div class='add'>+    PKCS7_SIGNER_INFO *ts_info;</div><div class='add'>+    X509 *cert;</div><div class='add'>+</div><div class='add'>+    GetTSResponse(self, resp);</div><div class='add'>+    if (!(p7 = TS_RESP_get_token(resp)))</div><div class='add'>+        return Qnil;</div><div class='add'>+    ts_info = sk_PKCS7_SIGNER_INFO_value(p7-&gt;d.sign-&gt;signer_info, 0);</div><div class='add'>+    cert = PKCS7_cert_from_signer_info(p7, ts_info);</div><div class='add'>+    if (!cert)</div><div class='add'>+        return Qnil;</div><div class='add'>+    return ossl_x509_new(cert);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the Response in DER-encoded form.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       response.to_der -&gt; string</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_resp_to_der(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_RESP *resp;</div><div class='add'>+</div><div class='add'>+    GetTSResponse(self, resp);</div><div class='add'>+    return asn1_to_der((void *)resp, (int (*)(void *, unsigned char **))i2d_TS_RESP);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Verifies a timestamp token by checking the signature, validating the</div><div class='add'>+ * certificate chain implied by tsa_certificate and by checking conformance to</div><div class='add'>+ * a given Request. Mandatory parameters are the Request associated to this</div><div class='add'>+ * Response, and an OpenSSL::X509::Store of trusted roots.</div><div class='add'>+ *</div><div class='add'>+ * Intermediate certificates can optionally be supplied for creating the</div><div class='add'>+ * certificate chain. These intermediate certificates must all be</div><div class='add'>+ * instances of OpenSSL::X509::Certificate.</div><div class='add'>+ *</div><div class='add'>+ * If validation fails, several kinds of exceptions can be raised:</div><div class='add'>+ * * TypeError if types don't fit</div><div class='add'>+ * * TimestampError if something is wrong with the timestamp token itself, if</div><div class='add'>+ *   it is not conformant to the Request, or if validation of the timestamp</div><div class='add'>+ *   certificate chain fails.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       response.verify(Request, root_store) -&gt; Response</div><div class='add'>+ *       response.verify(Request, root_store, [intermediate_cert]) -&gt; Response</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_resp_verify(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE ts_req, store, intermediates;</div><div class='add'>+    TS_RESP *resp;</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    X509_STORE *x509st;</div><div class='add'>+    TS_VERIFY_CTX *ctx;</div><div class='add'>+    STACK_OF(X509) *x509inter = NULL;</div><div class='add'>+    PKCS7* p7;</div><div class='add'>+    X509 *cert;</div><div class='add'>+    int status, i, ok;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "21", &amp;ts_req, &amp;store, &amp;intermediates);</div><div class='add'>+</div><div class='add'>+    GetTSResponse(self, resp);</div><div class='add'>+    GetTSRequest(ts_req, req);</div><div class='add'>+    x509st = GetX509StorePtr(store);</div><div class='add'>+</div><div class='add'>+    if (!(ctx = TS_REQ_to_TS_VERIFY_CTX(req, NULL))) {</div><div class='add'>+        ossl_raise(eTimestampError, "Error when creating the verification context.");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(intermediates)) {</div><div class='add'>+        x509inter = ossl_protect_x509_ary2sk(intermediates, &amp;status);</div><div class='add'>+        if (status) {</div><div class='add'>+            TS_VERIFY_CTX_free(ctx);</div><div class='add'>+            rb_jump_tag(status);</div><div class='add'>+        }</div><div class='add'>+    } else if (!(x509inter = sk_X509_new_null())) {</div><div class='add'>+        TS_VERIFY_CTX_free(ctx);</div><div class='add'>+        ossl_raise(eTimestampError, "sk_X509_new_null");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!(p7 = TS_RESP_get_token(resp))) {</div><div class='add'>+        TS_VERIFY_CTX_free(ctx);</div><div class='add'>+        sk_X509_pop_free(x509inter, X509_free);</div><div class='add'>+        ossl_raise(eTimestampError, "TS_RESP_get_token");</div><div class='add'>+    }</div><div class='add'>+    for (i=0; i &lt; sk_X509_num(p7-&gt;d.sign-&gt;cert); i++) {</div><div class='add'>+        cert = sk_X509_value(p7-&gt;d.sign-&gt;cert, i);</div><div class='add'>+        if (!sk_X509_push(x509inter, cert)) {</div><div class='add'>+            sk_X509_pop_free(x509inter, X509_free);</div><div class='add'>+            TS_VERIFY_CTX_free(ctx);</div><div class='add'>+            ossl_raise(eTimestampError, "sk_X509_push");</div><div class='add'>+        }</div><div class='add'>+        X509_up_ref(cert);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    TS_VERIFY_CTX_set_certs(ctx, x509inter);</div><div class='add'>+    TS_VERIFY_CTX_add_flags(ctx, TS_VFY_SIGNATURE);</div><div class='add'>+    TS_VERIFY_CTX_set_store(ctx, x509st);</div><div class='add'>+</div><div class='add'>+    ok = TS_RESP_verify_response(ctx, resp);</div><div class='add'>+    /*</div><div class='add'>+     * TS_VERIFY_CTX_set_store() call above does not increment the reference</div><div class='add'>+     * counter, so it must be unset before TS_VERIFY_CTX_free() is called.</div><div class='add'>+     */</div><div class='add'>+    TS_VERIFY_CTX_set_store(ctx, NULL);</div><div class='add'>+    TS_VERIFY_CTX_free(ctx);</div><div class='add'>+</div><div class='add'>+    if (!ok)</div><div class='add'>+        ossl_raise(eTimestampError, "TS_RESP_verify_response");</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_token_info_alloc(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    TS_TST_INFO *info;</div><div class='add'>+    VALUE obj;</div><div class='add'>+</div><div class='add'>+    obj = NewTSTokenInfo(klass);</div><div class='add'>+    if (!(info = TS_TST_INFO_new()))</div><div class='add'>+        ossl_raise(eTimestampError, NULL);</div><div class='add'>+    SetTSTokenInfo(obj, info);</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Creates a TokenInfo from a +File+ or +string+ parameter, the</div><div class='add'>+ * corresponding +File+ or +string+ must be DER-encoded. Please note</div><div class='add'>+ * that TokenInfo is an immutable read-only class. If you'd like to create</div><div class='add'>+ * timestamps please refer to Factory instead.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       OpenSSL::Timestamp::TokenInfo.new(file)    -&gt; token-info</div><div class='add'>+ *       OpenSSL::Timestamp::TokenInfo.new(string)  -&gt; token-info</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_token_info_initialize(VALUE self, VALUE der)</div><div class='add'>+{</div><div class='add'>+    TS_TST_INFO *info = DATA_PTR(self);</div><div class='add'>+    BIO *in;</div><div class='add'>+</div><div class='add'>+    der = ossl_to_der_if_possible(der);</div><div class='add'>+    in  = ossl_obj2bio(&amp;der);</div><div class='add'>+    info = d2i_TS_TST_INFO_bio(in, &amp;info);</div><div class='add'>+    BIO_free(in);</div><div class='add'>+    if (!info) {</div><div class='add'>+        DATA_PTR(self) = NULL;</div><div class='add'>+        ossl_raise(eTimestampError, "Error when decoding the timestamp token info");</div><div class='add'>+    }</div><div class='add'>+    DATA_PTR(self) = info;</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the version number of the token info. With compliant servers,</div><div class='add'>+ * this value should be +1+ if present. If status is GRANTED or</div><div class='add'>+ * GRANTED_WITH_MODS.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       token_info.version -&gt; Integer or nil</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_token_info_get_version(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_TST_INFO *info;</div><div class='add'>+</div><div class='add'>+    GetTSTokenInfo(self, info);</div><div class='add'>+    return LONG2NUM(TS_TST_INFO_get_version(info));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the timestamp policy object identifier of the policy this timestamp</div><div class='add'>+ * was created under. If status is GRANTED or GRANTED_WITH_MODS, this is never</div><div class='add'>+ * +nil+.</div><div class='add'>+ *</div><div class='add'>+ * ===Example:</div><div class='add'>+ *      id = token_info.policy_id</div><div class='add'>+ *      puts id                 -&gt; "1.2.3.4.5"</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       token_info.policy_id -&gt; string or nil</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_token_info_get_policy_id(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_TST_INFO *info;</div><div class='add'>+</div><div class='add'>+    GetTSTokenInfo(self, info);</div><div class='add'>+    return get_asn1obj(TS_TST_INFO_get_policy_id(info));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the 'short name' of the object identifier representing the algorithm</div><div class='add'>+ * that was used to derive the message imprint digest. For valid timestamps,</div><div class='add'>+ * this is the same value that was already given in the Request. If status is</div><div class='add'>+ * GRANTED or GRANTED_WITH_MODS, this is never +nil+.</div><div class='add'>+ *</div><div class='add'>+ * ===Example:</div><div class='add'>+ *      algo = token_info.algorithm</div><div class='add'>+ *      puts algo                -&gt; "SHA1"</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       token_info.algorithm -&gt; string or nil</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_token_info_get_algorithm(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_TST_INFO *info;</div><div class='add'>+    TS_MSG_IMPRINT *mi;</div><div class='add'>+    X509_ALGOR *algo;</div><div class='add'>+</div><div class='add'>+    GetTSTokenInfo(self, info);</div><div class='add'>+    mi = TS_TST_INFO_get_msg_imprint(info);</div><div class='add'>+    algo = TS_MSG_IMPRINT_get_algo(mi);</div><div class='add'>+    return get_asn1obj(algo-&gt;algorithm);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the message imprint digest. For valid timestamps,</div><div class='add'>+ * this is the same value that was already given in the Request.</div><div class='add'>+ * If status is GRANTED or GRANTED_WITH_MODS, this is never +nil+.</div><div class='add'>+ *</div><div class='add'>+ * ===Example:</div><div class='add'>+ *      mi = token_info.msg_imprint</div><div class='add'>+ *      puts mi                -&gt; "DEADBEEF"</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       token_info.msg_imprint -&gt; string.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_token_info_get_msg_imprint(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_TST_INFO *info;</div><div class='add'>+    TS_MSG_IMPRINT *mi;</div><div class='add'>+    ASN1_OCTET_STRING *hashed_msg;</div><div class='add'>+    VALUE ret;</div><div class='add'>+</div><div class='add'>+    GetTSTokenInfo(self, info);</div><div class='add'>+    mi = TS_TST_INFO_get_msg_imprint(info);</div><div class='add'>+    hashed_msg = TS_MSG_IMPRINT_get_msg(mi);</div><div class='add'>+    ret = rb_str_new((const char *)hashed_msg-&gt;data, hashed_msg-&gt;length);</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns serial number of the timestamp token. This value shall never be the</div><div class='add'>+ * same for two timestamp tokens issued by a dedicated timestamp authority.</div><div class='add'>+ * If status is GRANTED or GRANTED_WITH_MODS, this is never +nil+.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       token_info.serial_number -&gt; BN or nil</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_token_info_get_serial_number(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_TST_INFO *info;</div><div class='add'>+</div><div class='add'>+    GetTSTokenInfo(self, info);</div><div class='add'>+    return asn1integer_to_num(TS_TST_INFO_get_serial(info));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns time when this timestamp token was created. If status is GRANTED or</div><div class='add'>+ * GRANTED_WITH_MODS, this is never +nil+.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       token_info.gen_time -&gt; Time</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_token_info_get_gen_time(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_TST_INFO *info;</div><div class='add'>+</div><div class='add'>+    GetTSTokenInfo(self, info);</div><div class='add'>+    return asn1time_to_time(TS_TST_INFO_get_time(info));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * If the ordering field is missing, or if the ordering field is present</div><div class='add'>+ * and set to false, then the genTime field only indicates the time at</div><div class='add'>+ * which the time-stamp token has been created by the TSA.  In such a</div><div class='add'>+ * case, the ordering of time-stamp tokens issued by the same TSA or</div><div class='add'>+ * different TSAs is only possible when the difference between the</div><div class='add'>+ * genTime of the first time-stamp token and the genTime of the second</div><div class='add'>+ * time-stamp token is greater than the sum of the accuracies of the</div><div class='add'>+ * genTime for each time-stamp token.</div><div class='add'>+ *</div><div class='add'>+ * If the ordering field is present and set to true, every time-stamp</div><div class='add'>+ * token from the same TSA can always be ordered based on the genTime</div><div class='add'>+ * field, regardless of the genTime accuracy.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       token_info.ordering -&gt; true, falses or nil</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_token_info_get_ordering(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_TST_INFO *info;</div><div class='add'>+</div><div class='add'>+    GetTSTokenInfo(self, info);</div><div class='add'>+    return TS_TST_INFO_get_ordering(info) ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * If the timestamp token is valid then this field contains the same nonce that</div><div class='add'>+ * was passed to the timestamp server in the initial Request.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       token_info.nonce -&gt; BN or nil</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_token_info_get_nonce(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_TST_INFO *info;</div><div class='add'>+    const ASN1_INTEGER *nonce;</div><div class='add'>+</div><div class='add'>+    GetTSTokenInfo(self, info);</div><div class='add'>+    if (!(nonce = TS_TST_INFO_get_nonce(info)))</div><div class='add'>+        return Qnil;</div><div class='add'>+</div><div class='add'>+    return asn1integer_to_num(nonce);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Returns the TokenInfo in DER-encoded form.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       token_info.to_der -&gt; string</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_ts_token_info_to_der(VALUE self)</div><div class='add'>+{</div><div class='add'>+    TS_TST_INFO *info;</div><div class='add'>+</div><div class='add'>+    GetTSTokenInfo(self, info);</div><div class='add'>+    return asn1_to_der((void *)info, (int (*)(void *, unsigned char **))i2d_TS_TST_INFO);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static ASN1_INTEGER *</div><div class='add'>+ossl_tsfac_serial_cb(struct TS_resp_ctx *ctx, void *data)</div><div class='add'>+{</div><div class='add'>+    ASN1_INTEGER **snptr = (ASN1_INTEGER **)data;</div><div class='add'>+    ASN1_INTEGER *sn = *snptr;</div><div class='add'>+    *snptr = NULL;</div><div class='add'>+    return sn;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+#if !defined(LIBRESSL_VERSION_NUMBER)</div><div class='add'>+ossl_tsfac_time_cb(struct TS_resp_ctx *ctx, void *data, long *sec, long *usec)</div><div class='add'>+#else</div><div class='add'>+ossl_tsfac_time_cb(struct TS_resp_ctx *ctx, void *data, time_t *sec, long *usec)</div><div class='add'>+#endif</div><div class='add'>+{</div><div class='add'>+    *sec = *((long *)data);</div><div class='add'>+    *usec = 0;</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ossl_evp_get_digestbyname_i(VALUE arg)</div><div class='add'>+{</div><div class='add'>+    return (VALUE)ossl_evp_get_digestbyname(arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ossl_obj2bio_i(VALUE arg)</div><div class='add'>+{</div><div class='add'>+    return (VALUE)ossl_obj2bio((VALUE *)arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Creates a Response with the help of an OpenSSL::PKey, an</div><div class='add'>+ * OpenSSL::X509::Certificate and a Request.</div><div class='add'>+ *</div><div class='add'>+ * Mandatory parameters for timestamp creation that need to be set in the</div><div class='add'>+ * Request:</div><div class='add'>+ *</div><div class='add'>+ * * Request#algorithm</div><div class='add'>+ * * Request#message_imprint</div><div class='add'>+ *</div><div class='add'>+ * Mandatory parameters that need to be set in the Factory:</div><div class='add'>+ * * Factory#serial_number</div><div class='add'>+ * * Factory#gen_time</div><div class='add'>+ * * Factory#allowed_digests</div><div class='add'>+ *</div><div class='add'>+ * In addition one of either Request#policy_id or Factory#default_policy_id</div><div class='add'>+ * must be set.</div><div class='add'>+ *</div><div class='add'>+ * Raises a TimestampError if creation fails, though successfully created error</div><div class='add'>+ * responses may be returned.</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *       factory.create_timestamp(key, certificate, request) -&gt; Response</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_tsfac_create_ts(VALUE self, VALUE key, VALUE certificate, VALUE request)</div><div class='add'>+{</div><div class='add'>+    VALUE serial_number, def_policy_id, gen_time, additional_certs, allowed_digests;</div><div class='add'>+    VALUE str;</div><div class='add'>+    STACK_OF(X509) *inter_certs;</div><div class='add'>+    VALUE tsresp, ret = Qnil;</div><div class='add'>+    EVP_PKEY *sign_key;</div><div class='add'>+    X509 *tsa_cert;</div><div class='add'>+    TS_REQ *req;</div><div class='add'>+    TS_RESP *response = NULL;</div><div class='add'>+    TS_RESP_CTX *ctx = NULL;</div><div class='add'>+    BIO *req_bio;</div><div class='add'>+    ASN1_INTEGER *asn1_serial = NULL;</div><div class='add'>+    ASN1_OBJECT *def_policy_id_obj = NULL;</div><div class='add'>+    long lgen_time;</div><div class='add'>+    const char * err_msg = NULL;</div><div class='add'>+    int status = 0;</div><div class='add'>+</div><div class='add'>+    tsresp = NewTSResponse(cTimestampResponse);</div><div class='add'>+    tsa_cert = GetX509CertPtr(certificate);</div><div class='add'>+    sign_key = GetPrivPKeyPtr(key);</div><div class='add'>+    GetTSRequest(request, req);</div><div class='add'>+</div><div class='add'>+    gen_time = ossl_tsfac_get_gen_time(self);</div><div class='add'>+    if (!rb_obj_is_instance_of(gen_time, rb_cTime)) {</div><div class='add'>+        err_msg = "@gen_time must be a Time.";</div><div class='add'>+        goto end;</div><div class='add'>+    }</div><div class='add'>+    lgen_time = NUM2LONG(rb_funcall(gen_time, rb_intern("to_i"), 0));</div><div class='add'>+</div><div class='add'>+    serial_number = ossl_tsfac_get_serial_number(self);</div><div class='add'>+    if (NIL_P(serial_number)) {</div><div class='add'>+        err_msg = "@serial_number must be set.";</div><div class='add'>+        goto end;</div><div class='add'>+    }</div><div class='add'>+    asn1_serial = num_to_asn1integer(serial_number, NULL);</div><div class='add'>+</div><div class='add'>+    def_policy_id = ossl_tsfac_get_default_policy_id(self);</div><div class='add'>+    if (NIL_P(def_policy_id) &amp;&amp; !TS_REQ_get_policy_id(req)) {</div><div class='add'>+        err_msg = "No policy id in the request and no default policy set";</div><div class='add'>+        goto end;</div><div class='add'>+    }</div><div class='add'>+    if (!NIL_P(def_policy_id) &amp;&amp; !TS_REQ_get_policy_id(req)) {</div><div class='add'>+        def_policy_id_obj = (ASN1_OBJECT*)rb_protect(obj_to_asn1obj_i, (VALUE)def_policy_id, &amp;status);</div><div class='add'>+        if (status)</div><div class='add'>+            goto end;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!(ctx = TS_RESP_CTX_new())) {</div><div class='add'>+        err_msg = "Memory allocation failed.";</div><div class='add'>+        goto end;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    TS_RESP_CTX_set_serial_cb(ctx, ossl_tsfac_serial_cb, &amp;asn1_serial);</div><div class='add'>+    if (!TS_RESP_CTX_set_signer_cert(ctx, tsa_cert)) {</div><div class='add'>+        err_msg = "Certificate does not contain the timestamping extension";</div><div class='add'>+        goto end;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    additional_certs = ossl_tsfac_get_additional_certs(self);</div><div class='add'>+    if (rb_obj_is_kind_of(additional_certs, rb_cArray)) {</div><div class='add'>+        inter_certs = ossl_protect_x509_ary2sk(additional_certs, &amp;status);</div><div class='add'>+        if (status)</div><div class='add'>+                goto end;</div><div class='add'>+</div><div class='add'>+        /* this dups the sk_X509 and ups each cert's ref count */</div><div class='add'>+        TS_RESP_CTX_set_certs(ctx, inter_certs);</div><div class='add'>+        sk_X509_pop_free(inter_certs, X509_free);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    TS_RESP_CTX_set_signer_key(ctx, sign_key);</div><div class='add'>+    if (!NIL_P(def_policy_id) &amp;&amp; !TS_REQ_get_policy_id(req))</div><div class='add'>+        TS_RESP_CTX_set_def_policy(ctx, def_policy_id_obj);</div><div class='add'>+    if (TS_REQ_get_policy_id(req))</div><div class='add'>+        TS_RESP_CTX_set_def_policy(ctx, TS_REQ_get_policy_id(req));</div><div class='add'>+    TS_RESP_CTX_set_time_cb(ctx, ossl_tsfac_time_cb, &amp;lgen_time);</div><div class='add'>+</div><div class='add'>+    allowed_digests = ossl_tsfac_get_allowed_digests(self);</div><div class='add'>+    if (rb_obj_is_kind_of(allowed_digests, rb_cArray)) {</div><div class='add'>+        int i;</div><div class='add'>+        VALUE rbmd;</div><div class='add'>+        const EVP_MD *md;</div><div class='add'>+</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(allowed_digests); i++) {</div><div class='add'>+            rbmd = rb_ary_entry(allowed_digests, i);</div><div class='add'>+            md = (const EVP_MD *)rb_protect(ossl_evp_get_digestbyname_i, rbmd, &amp;status);</div><div class='add'>+            if (status)</div><div class='add'>+                goto end;</div><div class='add'>+            TS_RESP_CTX_add_md(ctx, md);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    str = rb_protect(ossl_to_der, request, &amp;status);</div><div class='add'>+    if (status)</div><div class='add'>+        goto end;</div><div class='add'>+</div><div class='add'>+    req_bio = (BIO*)rb_protect(ossl_obj2bio_i, (VALUE)&amp;str, &amp;status);</div><div class='add'>+    if (status)</div><div class='add'>+        goto end;</div><div class='add'>+</div><div class='add'>+    response = TS_RESP_create_response(ctx, req_bio);</div><div class='add'>+    BIO_free(req_bio);</div><div class='add'>+</div><div class='add'>+    if (!response) {</div><div class='add'>+        err_msg = "Error during response generation";</div><div class='add'>+        goto end;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* bad responses aren't exceptional, but openssl still sets error</div><div class='add'>+     * information. */</div><div class='add'>+    ossl_clear_error();</div><div class='add'>+</div><div class='add'>+    SetTSResponse(tsresp, response);</div><div class='add'>+    ret = tsresp;</div><div class='add'>+</div><div class='add'>+end:</div><div class='add'>+    ASN1_INTEGER_free(asn1_serial);</div><div class='add'>+    ASN1_OBJECT_free(def_policy_id_obj);</div><div class='add'>+    TS_RESP_CTX_free(ctx);</div><div class='add'>+    if (err_msg)</div><div class='add'>+        rb_exc_raise(ossl_make_error(eTimestampError, rb_str_new_cstr(err_msg)));</div><div class='add'>+    if (status)</div><div class='add'>+        rb_jump_tag(status);</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * INIT</div><div class='add'>+ */</div><div class='add'>+void</div><div class='add'>+Init_ossl_ts(void)</div><div class='add'>+{</div><div class='add'>+    #if 0</div><div class='add'>+    mOSSL = rb_define_module("OpenSSL"); /* let rdoc know about mOSSL */</div><div class='add'>+    #endif</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Possible return value for +Response#failure_info+. Indicates that the</div><div class='add'>+     * timestamp server rejects the message imprint algorithm used in the</div><div class='add'>+     * +Request+</div><div class='add'>+     */</div><div class='add'>+    sBAD_ALG = ID2SYM(rb_intern_const("BAD_ALG"));</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Possible return value for +Response#failure_info+. Indicates that the</div><div class='add'>+     * timestamp server was not able to process the +Request+ properly.</div><div class='add'>+     */</div><div class='add'>+    sBAD_REQUEST = ID2SYM(rb_intern_const("BAD_REQUEST"));</div><div class='add'>+    /*</div><div class='add'>+     * Possible return value for +Response#failure_info+. Indicates that the</div><div class='add'>+     * timestamp server was not able to parse certain data in the +Request+.</div><div class='add'>+     */</div><div class='add'>+    sBAD_DATA_FORMAT = ID2SYM(rb_intern_const("BAD_DATA_FORMAT"));</div><div class='add'>+</div><div class='add'>+    sTIME_NOT_AVAILABLE = ID2SYM(rb_intern_const("TIME_NOT_AVAILABLE"));</div><div class='add'>+    sUNACCEPTED_POLICY = ID2SYM(rb_intern_const("UNACCEPTED_POLICY"));</div><div class='add'>+    sUNACCEPTED_EXTENSION = ID2SYM(rb_intern_const("UNACCEPTED_EXTENSION"));</div><div class='add'>+    sADD_INFO_NOT_AVAILABLE = ID2SYM(rb_intern_const("ADD_INFO_NOT_AVAILABLE"));</div><div class='add'>+    sSYSTEM_FAILURE = ID2SYM(rb_intern_const("SYSTEM_FAILURE"));</div><div class='add'>+</div><div class='add'>+    /* Document-class: OpenSSL::Timestamp</div><div class='add'>+     * Provides classes and methods to request, create and validate</div><div class='add'>+     * {RFC3161-compliant}[http://www.ietf.org/rfc/rfc3161.txt] timestamps.</div><div class='add'>+     * Request may be used to either create requests from scratch or to parse</div><div class='add'>+     * existing requests that again can be used to request timestamps from a</div><div class='add'>+     * timestamp server, e.g. via the net/http. The resulting timestamp</div><div class='add'>+     * response may be parsed using Response.</div><div class='add'>+     *</div><div class='add'>+     * Please note that Response is read-only and immutable. To create a</div><div class='add'>+     * Response, an instance of Factory as well as a valid Request are needed.</div><div class='add'>+     *</div><div class='add'>+     * ===Create a Response:</div><div class='add'>+     *      #Assumes ts.p12 is a PKCS#12-compatible file with a private key</div><div class='add'>+     *      #and a certificate that has an extended key usage of 'timeStamping'</div><div class='add'>+     *      p12 = OpenSSL::PKCS12.new(File.binread('ts.p12'), 'pwd')</div><div class='add'>+     *      md = OpenSSL::Digest.new('SHA1')</div><div class='add'>+     *      hash = md.digest(data) #some binary data to be timestamped</div><div class='add'>+     *      req = OpenSSL::Timestamp::Request.new</div><div class='add'>+     *      req.algorithm = 'SHA1'</div><div class='add'>+     *      req.message_imprint = hash</div><div class='add'>+     *      req.policy_id = "1.2.3.4.5"</div><div class='add'>+     *      req.nonce = 42</div><div class='add'>+     *      fac = OpenSSL::Timestamp::Factory.new</div><div class='add'>+     *      fac.gen_time = Time.now</div><div class='add'>+     *      fac.serial_number = 1</div><div class='add'>+     *      timestamp = fac.create_timestamp(p12.key, p12.certificate, req)</div><div class='add'>+     *</div><div class='add'>+     * ===Verify a timestamp response:</div><div class='add'>+     *      #Assume we have a timestamp token in a file called ts.der</div><div class='add'>+     *      ts = OpenSSL::Timestamp::Response.new(File.binread('ts.der'))</div><div class='add'>+     *      #Assume we have the Request for this token in a file called req.der</div><div class='add'>+     *      req = OpenSSL::Timestamp::Request.new(File.binread('req.der'))</div><div class='add'>+     *      # Assume the associated root CA certificate is contained in a</div><div class='add'>+     *      # DER-encoded file named root.cer</div><div class='add'>+     *      root = OpenSSL::X509::Certificate.new(File.binread('root.cer'))</div><div class='add'>+     *      # get the necessary intermediate certificates, available in</div><div class='add'>+     *      # DER-encoded form in inter1.cer and inter2.cer</div><div class='add'>+     *      inter1 = OpenSSL::X509::Certificate.new(File.binread('inter1.cer'))</div><div class='add'>+     *      inter2 = OpenSSL::X509::Certificate.new(File.binread('inter2.cer'))</div><div class='add'>+     *      ts.verify(req, root, inter1, inter2) -&gt; ts or raises an exception if validation fails</div><div class='add'>+     *</div><div class='add'>+     */</div><div class='add'>+    mTimestamp = rb_define_module_under(mOSSL, "Timestamp");</div><div class='add'>+</div><div class='add'>+    /* Document-class: OpenSSL::Timestamp::TimestampError</div><div class='add'>+     * Generic exception class of the Timestamp module.</div><div class='add'>+     */</div><div class='add'>+    eTimestampError = rb_define_class_under(mTimestamp, "TimestampError", eOSSLError);</div><div class='add'>+</div><div class='add'>+    /* Document-class: OpenSSL::Timestamp::Response</div><div class='add'>+     * Immutable and read-only representation of a timestamp response returned</div><div class='add'>+     * from a timestamp server after receiving an associated Request. Allows</div><div class='add'>+     * access to specific information about the response but also allows to</div><div class='add'>+     * verify the Response.</div><div class='add'>+     */</div><div class='add'>+    cTimestampResponse = rb_define_class_under(mTimestamp, "Response", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(cTimestampResponse, ossl_ts_resp_alloc);</div><div class='add'>+    rb_define_method(cTimestampResponse, "initialize", ossl_ts_resp_initialize, 1);</div><div class='add'>+    rb_define_method(cTimestampResponse, "status", ossl_ts_resp_get_status, 0);</div><div class='add'>+    rb_define_method(cTimestampResponse, "failure_info", ossl_ts_resp_get_failure_info, 0);</div><div class='add'>+    rb_define_method(cTimestampResponse, "status_text", ossl_ts_resp_get_status_text, 0);</div><div class='add'>+    rb_define_method(cTimestampResponse, "token", ossl_ts_resp_get_token, 0);</div><div class='add'>+    rb_define_method(cTimestampResponse, "token_info", ossl_ts_resp_get_token_info, 0);</div><div class='add'>+    rb_define_method(cTimestampResponse, "tsa_certificate", ossl_ts_resp_get_tsa_certificate, 0);</div><div class='add'>+    rb_define_method(cTimestampResponse, "to_der", ossl_ts_resp_to_der, 0);</div><div class='add'>+    rb_define_method(cTimestampResponse, "verify", ossl_ts_resp_verify, -1);</div><div class='add'>+</div><div class='add'>+    /* Document-class: OpenSSL::Timestamp::TokenInfo</div><div class='add'>+     * Immutable and read-only representation of a timestamp token info from a</div><div class='add'>+     * Response.</div><div class='add'>+     */</div><div class='add'>+    cTimestampTokenInfo = rb_define_class_under(mTimestamp, "TokenInfo", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(cTimestampTokenInfo, ossl_ts_token_info_alloc);</div><div class='add'>+    rb_define_method(cTimestampTokenInfo, "initialize", ossl_ts_token_info_initialize, 1);</div><div class='add'>+    rb_define_method(cTimestampTokenInfo, "version", ossl_ts_token_info_get_version, 0);</div><div class='add'>+    rb_define_method(cTimestampTokenInfo, "policy_id", ossl_ts_token_info_get_policy_id, 0);</div><div class='add'>+    rb_define_method(cTimestampTokenInfo, "algorithm", ossl_ts_token_info_get_algorithm, 0);</div><div class='add'>+    rb_define_method(cTimestampTokenInfo, "message_imprint", ossl_ts_token_info_get_msg_imprint, 0);</div><div class='add'>+    rb_define_method(cTimestampTokenInfo, "serial_number", ossl_ts_token_info_get_serial_number, 0);</div><div class='add'>+    rb_define_method(cTimestampTokenInfo, "gen_time", ossl_ts_token_info_get_gen_time, 0);</div><div class='add'>+    rb_define_method(cTimestampTokenInfo, "ordering", ossl_ts_token_info_get_ordering, 0);</div><div class='add'>+    rb_define_method(cTimestampTokenInfo, "nonce", ossl_ts_token_info_get_nonce, 0);</div><div class='add'>+    rb_define_method(cTimestampTokenInfo, "to_der", ossl_ts_token_info_to_der, 0);</div><div class='add'>+</div><div class='add'>+    /* Document-class: OpenSSL::Timestamp::Request</div><div class='add'>+     * Allows to create timestamp requests or parse existing ones. A Request is</div><div class='add'>+     * also needed for creating timestamps from scratch with Factory. When</div><div class='add'>+     * created from scratch, some default values are set:</div><div class='add'>+     * * version is set to +1+</div><div class='add'>+     * * cert_requested is set to +true+</div><div class='add'>+     * * algorithm, message_imprint, policy_id, and nonce are set to +false+</div><div class='add'>+     */</div><div class='add'>+    cTimestampRequest = rb_define_class_under(mTimestamp, "Request", rb_cObject);</div><div class='add'>+    rb_define_alloc_func(cTimestampRequest, ossl_ts_req_alloc);</div><div class='add'>+    rb_define_method(cTimestampRequest, "initialize", ossl_ts_req_initialize, -1);</div><div class='add'>+    rb_define_method(cTimestampRequest, "version=", ossl_ts_req_set_version, 1);</div><div class='add'>+    rb_define_method(cTimestampRequest, "version", ossl_ts_req_get_version, 0);</div><div class='add'>+    rb_define_method(cTimestampRequest, "algorithm=", ossl_ts_req_set_algorithm, 1);</div><div class='add'>+    rb_define_method(cTimestampRequest, "algorithm", ossl_ts_req_get_algorithm, 0);</div><div class='add'>+    rb_define_method(cTimestampRequest, "message_imprint=", ossl_ts_req_set_msg_imprint, 1);</div><div class='add'>+    rb_define_method(cTimestampRequest, "message_imprint", ossl_ts_req_get_msg_imprint, 0);</div><div class='add'>+    rb_define_method(cTimestampRequest, "policy_id=", ossl_ts_req_set_policy_id, 1);</div><div class='add'>+    rb_define_method(cTimestampRequest, "policy_id", ossl_ts_req_get_policy_id, 0);</div><div class='add'>+    rb_define_method(cTimestampRequest, "nonce=", ossl_ts_req_set_nonce, 1);</div><div class='add'>+    rb_define_method(cTimestampRequest, "nonce", ossl_ts_req_get_nonce, 0);</div><div class='add'>+    rb_define_method(cTimestampRequest, "cert_requested=", ossl_ts_req_set_cert_requested, 1);</div><div class='add'>+    rb_define_method(cTimestampRequest, "cert_requested?", ossl_ts_req_get_cert_requested, 0);</div><div class='add'>+    rb_define_method(cTimestampRequest, "to_der", ossl_ts_req_to_der, 0);</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Indicates a successful response. Equal to +0+.</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(cTimestampResponse, "GRANTED", INT2NUM(TS_STATUS_GRANTED));</div><div class='add'>+    /*</div><div class='add'>+     * Indicates a successful response that probably contains modifications</div><div class='add'>+     * from the initial request. Equal to +1+.</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(cTimestampResponse, "GRANTED_WITH_MODS", INT2NUM(TS_STATUS_GRANTED_WITH_MODS));</div><div class='add'>+    /*</div><div class='add'>+     * Indicates a failure. No timestamp token was created. Equal to +2+.</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(cTimestampResponse, "REJECTION", INT2NUM(TS_STATUS_REJECTION));</div><div class='add'>+    /*</div><div class='add'>+     * Indicates a failure. No timestamp token was created. Equal to +3+.</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(cTimestampResponse, "WAITING", INT2NUM(TS_STATUS_WAITING));</div><div class='add'>+    /*</div><div class='add'>+     * Indicates a failure. No timestamp token was created. Revocation of a</div><div class='add'>+     * certificate is imminent. Equal to +4+.</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(cTimestampResponse, "REVOCATION_WARNING", INT2NUM(TS_STATUS_REVOCATION_WARNING));</div><div class='add'>+    /*</div><div class='add'>+     * Indicates a failure. No timestamp token was created. A certificate</div><div class='add'>+     * has been revoked. Equal to +5+.</div><div class='add'>+     */</div><div class='add'>+    rb_define_const(cTimestampResponse, "REVOCATION_NOTIFICATION", INT2NUM(TS_STATUS_REVOCATION_NOTIFICATION));</div><div class='add'>+</div><div class='add'>+    /* Document-class: OpenSSL::Timestamp::Factory</div><div class='add'>+     *</div><div class='add'>+     * Used to generate a Response from scratch.</div><div class='add'>+     *</div><div class='add'>+     * Please bear in mind that the implementation will always apply and prefer</div><div class='add'>+     * the policy object identifier given in the request over the default policy</div><div class='add'>+     * id specified in the Factory. As a consequence, +default_policy_id+ will</div><div class='add'>+     * only be applied if no Request#policy_id was given. But this also means</div><div class='add'>+     * that one needs to check the policy identifier in the request manually</div><div class='add'>+     * before creating the Response, e.g. to check whether it complies to a</div><div class='add'>+     * specific set of acceptable policies.</div><div class='add'>+     *</div><div class='add'>+     * There exists also the possibility to add certificates (instances of</div><div class='add'>+     * OpenSSL::X509::Certificate) besides the timestamping certificate</div><div class='add'>+     * that will be included in the resulting timestamp token if</div><div class='add'>+     * Request#cert_requested? is +true+. Ideally, one would also include any</div><div class='add'>+     * intermediate certificates (the root certificate can be left out - in</div><div class='add'>+     * order to trust it any verifying party will have to be in its possession</div><div class='add'>+     * anyway). This simplifies validation of the timestamp since these</div><div class='add'>+     * intermediate certificates are "already there" and need not be passed as</div><div class='add'>+     * external parameters to Response#verify anymore, thus minimizing external</div><div class='add'>+     * resources needed for verification.</div><div class='add'>+     *</div><div class='add'>+     * ===Example: Inclusion of (untrusted) intermediate certificates</div><div class='add'>+     *</div><div class='add'>+     * Assume we received a timestamp request that has set Request#policy_id to</div><div class='add'>+     * +nil+ and Request#cert_requested? to true. The raw request bytes are</div><div class='add'>+     * stored in a variable called +req_raw+. We'd still like to integrate</div><div class='add'>+     * the necessary intermediate certificates (in +inter1.cer+ and</div><div class='add'>+     * +inter2.cer+) to simplify validation of the resulting Response. +ts.p12+</div><div class='add'>+     * is a PKCS#12-compatible file including the private key and the</div><div class='add'>+     * timestamping certificate.</div><div class='add'>+     *</div><div class='add'>+     *      req = OpenSSL::Timestamp::Request.new(raw_bytes)</div><div class='add'>+     *      p12 = OpenSSL::PKCS12.new(File.binread('ts.p12'), 'pwd')</div><div class='add'>+     *      inter1 = OpenSSL::X509::Certificate.new(File.binread('inter1.cer'))</div><div class='add'>+     *      inter2 = OpenSSL::X509::Certificate.new(File.binread('inter2.cer'))</div><div class='add'>+     *      fac = OpenSSL::Timestamp::Factory.new</div><div class='add'>+     *      fac.gen_time = Time.now</div><div class='add'>+     *      fac.serial_number = 1</div><div class='add'>+     *      fac.allowed_digests = ["sha256", "sha384", "sha512"]</div><div class='add'>+     *      #needed because the Request contained no policy identifier</div><div class='add'>+     *      fac.default_policy_id = '1.2.3.4.5'</div><div class='add'>+     *      fac.additional_certificates = [ inter1, inter2 ]</div><div class='add'>+     *      timestamp = fac.create_timestamp(p12.key, p12.certificate, req)</div><div class='add'>+     *</div><div class='add'>+     * ==Attributes</div><div class='add'>+     *</div><div class='add'>+     * ===default_policy_id</div><div class='add'>+     *</div><div class='add'>+     * Request#policy_id will always be preferred over this if present in the</div><div class='add'>+     * Request, only if Request#policy_id is nil default_policy will be used.</div><div class='add'>+     * If none of both is present, a TimestampError will be raised when trying</div><div class='add'>+     * to create a Response.</div><div class='add'>+     *</div><div class='add'>+     * call-seq:</div><div class='add'>+     *       factory.default_policy_id = "string" -&gt; string</div><div class='add'>+     *       factory.default_policy_id            -&gt; string or nil</div><div class='add'>+     *</div><div class='add'>+     * ===serial_number</div><div class='add'>+     *</div><div class='add'>+     * Sets or retrieves the serial number to be used for timestamp creation.</div><div class='add'>+     * Must be present for timestamp creation.</div><div class='add'>+     *</div><div class='add'>+     * call-seq:</div><div class='add'>+     *       factory.serial_number = number -&gt; number</div><div class='add'>+     *       factory.serial_number          -&gt; number or nil</div><div class='add'>+     *</div><div class='add'>+     * ===gen_time</div><div class='add'>+     *</div><div class='add'>+     * Sets or retrieves the Time value to be used in the Response. Must be</div><div class='add'>+     * present for timestamp creation.</div><div class='add'>+     *</div><div class='add'>+     * call-seq:</div><div class='add'>+     *       factory.gen_time = Time -&gt; Time</div><div class='add'>+     *       factory.gen_time        -&gt; Time or nil</div><div class='add'>+     *</div><div class='add'>+     * ===additional_certs</div><div class='add'>+     *</div><div class='add'>+     * Sets or retrieves additional certificates apart from the timestamp</div><div class='add'>+     * certificate (e.g. intermediate certificates) to be added to the Response.</div><div class='add'>+     * Must be an Array of OpenSSL::X509::Certificate.</div><div class='add'>+     *</div><div class='add'>+     * call-seq:</div><div class='add'>+     *       factory.additional_certs = [cert1, cert2] -&gt; [ cert1, cert2 ]</div><div class='add'>+     *       factory.additional_certs                  -&gt; array or nil</div><div class='add'>+     *</div><div class='add'>+     * ===allowed_digests</div><div class='add'>+     *</div><div class='add'>+     * Sets or retrieves the digest algorithms that the factory is allowed</div><div class='add'>+     * create timestamps for. Known vulnerable or weak algorithms should not be</div><div class='add'>+     * allowed where possible.</div><div class='add'>+     * Must be an Array of String or OpenSSL::Digest subclass instances.</div><div class='add'>+     *</div><div class='add'>+     * call-seq:</div><div class='add'>+     *       factory.allowed_digests = ["sha1", OpenSSL::Digest.new('SHA256').new] -&gt; [ "sha1", OpenSSL::Digest) ]</div><div class='add'>+     *       factory.allowed_digests                                               -&gt; array or nil</div><div class='add'>+     *</div><div class='add'>+     */</div><div class='add'>+    cTimestampFactory = rb_define_class_under(mTimestamp, "Factory", rb_cObject);</div><div class='add'>+    rb_attr(cTimestampFactory, rb_intern_const("allowed_digests"), 1, 1, 0);</div><div class='add'>+    rb_attr(cTimestampFactory, rb_intern_const("default_policy_id"), 1, 1, 0);</div><div class='add'>+    rb_attr(cTimestampFactory, rb_intern_const("serial_number"), 1, 1, 0);</div><div class='add'>+    rb_attr(cTimestampFactory, rb_intern_const("gen_time"), 1, 1, 0);</div><div class='add'>+    rb_attr(cTimestampFactory, rb_intern_const("additional_certs"), 1, 1, 0);</div><div class='add'>+    rb_define_method(cTimestampFactory, "create_timestamp", ossl_tsfac_create_ts, 3);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif</div><div class='head'>diff --git a/ext/openssl/ossl_ts.h b/ext/openssl/ossl_ts.h<br/>new file mode 100644<br/>index 0000000000..25fb0e1d64<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_ts.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_ts.h</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+/*</div><div class='add'>+ *</div><div class='add'>+ * Copyright (C) 2010 Martin Bosslet &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+ * All rights reserved.</div><div class='add'>+ */</div><div class='add'>+/*</div><div class='add'>+ * This program is licenced under the same licence as Ruby.</div><div class='add'>+ * (See the file 'LICENCE'.)</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#if !defined(_OSSL_TS_H_)</div><div class='add'>+#define _OSSL_TS_H_</div><div class='add'>+</div><div class='add'>+void Init_ossl_ts(void);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='head'>diff --git a/ext/openssl/ossl_version.h b/ext/openssl/ossl_version.h<br/>deleted file mode 100644<br/>index c162f8c2a8..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_version.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_version.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,15 +0,0 @@</div><div class='del'>-/*</div><div class='del'>- * 'OpenSSL for Ruby' project</div><div class='del'>- * Copyright (C) 2001-2002  Michal Rokos &lt;m.rokos@sh.cvut.cz&gt;</div><div class='del'>- * All rights reserved.</div><div class='del'>- */</div><div class='del'>-/*</div><div class='del'>- * This program is licensed under the same licence as Ruby.</div><div class='del'>- * (See the file 'LICENCE'.)</div><div class='del'>- */</div><div class='del'>-#if !defined(_OSSL_VERSION_H_)</div><div class='del'>-#define _OSSL_VERSION_H_</div><div class='del'>-</div><div class='del'>-#define OSSL_VERSION "2.1.2"</div><div class='del'>-</div><div class='del'>-#endif /* _OSSL_VERSION_H_ */</div><div class='head'>diff --git a/ext/openssl/ossl_x509.c b/ext/openssl/ossl_x509.c<br/>index 8a061b0687..f8470703fc 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_x509.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_x509.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_x509.c</a></div><div class='hunk'>@@ -44,7 +44,13 @@ Init_ossl_x509(void)</div><div class='ctx'>     Init_ossl_x509revoked();</div><div class='ctx'>     Init_ossl_x509store();</div><div class='ctx'> </div><div class='add'>+    /* Constants are up-to-date with 1.1.1. */</div><div class='add'>+</div><div class='add'>+    /* Certificate verification error code */</div><div class='ctx'>     DefX509Const(V_OK);</div><div class='add'>+#if defined(X509_V_ERR_UNSPECIFIED) /* 1.0.1r, 1.0.2f, 1.1.0 */</div><div class='add'>+    DefX509Const(V_ERR_UNSPECIFIED);</div><div class='add'>+#endif</div><div class='ctx'>     DefX509Const(V_ERR_UNABLE_TO_GET_ISSUER_CERT);</div><div class='ctx'>     DefX509Const(V_ERR_UNABLE_TO_GET_CRL);</div><div class='ctx'>     DefX509Const(V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE);</div><div class='hunk'>@@ -76,8 +82,71 @@ Init_ossl_x509(void)</div><div class='ctx'>     DefX509Const(V_ERR_AKID_SKID_MISMATCH);</div><div class='ctx'>     DefX509Const(V_ERR_AKID_ISSUER_SERIAL_MISMATCH);</div><div class='ctx'>     DefX509Const(V_ERR_KEYUSAGE_NO_CERTSIGN);</div><div class='add'>+    DefX509Const(V_ERR_UNABLE_TO_GET_CRL_ISSUER);</div><div class='add'>+    DefX509Const(V_ERR_UNHANDLED_CRITICAL_EXTENSION);</div><div class='add'>+    DefX509Const(V_ERR_KEYUSAGE_NO_CRL_SIGN);</div><div class='add'>+    DefX509Const(V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION);</div><div class='add'>+    DefX509Const(V_ERR_INVALID_NON_CA);</div><div class='add'>+    DefX509Const(V_ERR_PROXY_PATH_LENGTH_EXCEEDED);</div><div class='add'>+    DefX509Const(V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE);</div><div class='add'>+    DefX509Const(V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED);</div><div class='add'>+    DefX509Const(V_ERR_INVALID_EXTENSION);</div><div class='add'>+    DefX509Const(V_ERR_INVALID_POLICY_EXTENSION);</div><div class='add'>+    DefX509Const(V_ERR_NO_EXPLICIT_POLICY);</div><div class='add'>+    DefX509Const(V_ERR_DIFFERENT_CRL_SCOPE);</div><div class='add'>+    DefX509Const(V_ERR_UNSUPPORTED_EXTENSION_FEATURE);</div><div class='add'>+    DefX509Const(V_ERR_UNNESTED_RESOURCE);</div><div class='add'>+    DefX509Const(V_ERR_PERMITTED_VIOLATION);</div><div class='add'>+    DefX509Const(V_ERR_EXCLUDED_VIOLATION);</div><div class='add'>+    DefX509Const(V_ERR_SUBTREE_MINMAX);</div><div class='ctx'>     DefX509Const(V_ERR_APPLICATION_VERIFICATION);</div><div class='add'>+    DefX509Const(V_ERR_UNSUPPORTED_CONSTRAINT_TYPE);</div><div class='add'>+    DefX509Const(V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX);</div><div class='add'>+    DefX509Const(V_ERR_UNSUPPORTED_NAME_SYNTAX);</div><div class='add'>+    DefX509Const(V_ERR_CRL_PATH_VALIDATION_ERROR);</div><div class='add'>+#if defined(X509_V_ERR_PATH_LOOP)</div><div class='add'>+    DefX509Const(V_ERR_PATH_LOOP);</div><div class='add'>+#endif</div><div class='add'>+#if defined(X509_V_ERR_SUITE_B_INVALID_VERSION)</div><div class='add'>+    DefX509Const(V_ERR_SUITE_B_INVALID_VERSION);</div><div class='add'>+    DefX509Const(V_ERR_SUITE_B_INVALID_ALGORITHM);</div><div class='add'>+    DefX509Const(V_ERR_SUITE_B_INVALID_CURVE);</div><div class='add'>+    DefX509Const(V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM);</div><div class='add'>+    DefX509Const(V_ERR_SUITE_B_LOS_NOT_ALLOWED);</div><div class='add'>+    DefX509Const(V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256);</div><div class='add'>+#endif</div><div class='add'>+    DefX509Const(V_ERR_HOSTNAME_MISMATCH);</div><div class='add'>+    DefX509Const(V_ERR_EMAIL_MISMATCH);</div><div class='add'>+    DefX509Const(V_ERR_IP_ADDRESS_MISMATCH);</div><div class='add'>+#if defined(X509_V_ERR_DANE_NO_MATCH)</div><div class='add'>+    DefX509Const(V_ERR_DANE_NO_MATCH);</div><div class='add'>+#endif</div><div class='add'>+#if defined(X509_V_ERR_EE_KEY_TOO_SMALL)</div><div class='add'>+    DefX509Const(V_ERR_EE_KEY_TOO_SMALL);</div><div class='add'>+    DefX509Const(V_ERR_CA_KEY_TOO_SMALL);</div><div class='add'>+    DefX509Const(V_ERR_CA_MD_TOO_WEAK);</div><div class='add'>+#endif</div><div class='add'>+#if defined(X509_V_ERR_INVALID_CALL)</div><div class='add'>+    DefX509Const(V_ERR_INVALID_CALL);</div><div class='add'>+#endif</div><div class='add'>+#if defined(X509_V_ERR_STORE_LOOKUP)</div><div class='add'>+    DefX509Const(V_ERR_STORE_LOOKUP);</div><div class='add'>+#endif</div><div class='add'>+#if defined(X509_V_ERR_NO_VALID_SCTS)</div><div class='add'>+    DefX509Const(V_ERR_NO_VALID_SCTS);</div><div class='add'>+#endif</div><div class='add'>+#if defined(X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION)</div><div class='add'>+    DefX509Const(V_ERR_PROXY_SUBJECT_NAME_VIOLATION);</div><div class='add'>+#endif</div><div class='add'>+#if defined(X509_V_ERR_OCSP_VERIFY_NEEDED)</div><div class='add'>+    DefX509Const(V_ERR_OCSP_VERIFY_NEEDED);</div><div class='add'>+    DefX509Const(V_ERR_OCSP_VERIFY_FAILED);</div><div class='add'>+    DefX509Const(V_ERR_OCSP_CERT_UNKNOWN);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='add'>+    /* Certificate verify flags */</div><div class='add'>+    /* Set by Store#flags= and StoreContext#flags=. */</div><div class='add'>+    DefX509Const(V_FLAG_USE_CHECK_TIME);</div><div class='ctx'>     /* Set by Store#flags= and StoreContext#flags=. Enables CRL checking for the</div><div class='ctx'>      * certificate chain leaf. */</div><div class='ctx'>     DefX509Const(V_FLAG_CRL_CHECK);</div><div class='hunk'>@@ -116,12 +185,28 @@ Init_ossl_x509(void)</div><div class='ctx'>     /* Set by Store#flags= and StoreContext#flags=. Enables checking of the</div><div class='ctx'>      * signature of the root self-signed CA. */</div><div class='ctx'>     DefX509Const(V_FLAG_CHECK_SS_SIGNATURE);</div><div class='del'>-#if defined(X509_V_FLAG_TRUSTED_FIRST)</div><div class='ctx'>     /* Set by Store#flags= and StoreContext#flags=. When constructing a</div><div class='ctx'>      * certificate chain, search the Store first for the issuer certificate.</div><div class='ctx'>      * Enabled by default in OpenSSL &gt;= 1.1.0. */</div><div class='ctx'>     DefX509Const(V_FLAG_TRUSTED_FIRST);</div><div class='add'>+#if defined(X509_V_FLAG_SUITEB_128_LOS_ONLY)</div><div class='add'>+    /* Set by Store#flags= and StoreContext#flags=.</div><div class='add'>+     * Enables Suite B 128 bit only mode. */</div><div class='add'>+    DefX509Const(V_FLAG_SUITEB_128_LOS_ONLY);</div><div class='ctx'> #endif</div><div class='add'>+#if defined(X509_V_FLAG_SUITEB_192_LOS)</div><div class='add'>+    /* Set by Store#flags= and StoreContext#flags=.</div><div class='add'>+     * Enables Suite B 192 bit only mode. */</div><div class='add'>+    DefX509Const(V_FLAG_SUITEB_192_LOS);</div><div class='add'>+#endif</div><div class='add'>+#if defined(X509_V_FLAG_SUITEB_128_LOS)</div><div class='add'>+    /* Set by Store#flags= and StoreContext#flags=.</div><div class='add'>+     * Enables Suite B 128 bit mode allowing 192 bit algorithms. */</div><div class='add'>+    DefX509Const(V_FLAG_SUITEB_128_LOS);</div><div class='add'>+#endif</div><div class='add'>+    /* Set by Store#flags= and StoreContext#flags=.</div><div class='add'>+     * Allows partial chains if at least one certificate is in trusted store. */</div><div class='add'>+    DefX509Const(V_FLAG_PARTIAL_CHAIN);</div><div class='ctx'> #if defined(X509_V_FLAG_NO_ALT_CHAINS)</div><div class='ctx'>     /* Set by Store#flags= and StoreContext#flags=. Suppresses searching for</div><div class='ctx'>      * a alternative chain. No effect in OpenSSL &gt;= 1.1.0. */</div><div class='head'>diff --git a/ext/openssl/ossl_x509cert.c b/ext/openssl/ossl_x509cert.c<br/>index 40542c4a78..9443541645 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_x509cert.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509cert.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_x509cert.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_x509cert.c</a></div><div class='hunk'>@@ -115,24 +115,27 @@ static VALUE</div><div class='ctx'> ossl_x509_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     BIO *in;</div><div class='del'>-    X509 *x509, *x = DATA_PTR(self);</div><div class='add'>+    X509 *x509, *x509_orig = RTYPEDDATA_DATA(self);</div><div class='ctx'>     VALUE arg;</div><div class='ctx'> </div><div class='add'>+    rb_check_frozen(self);</div><div class='ctx'>     if (rb_scan_args(argc, argv, "01", &amp;arg) == 0) {</div><div class='ctx'> 	/* create just empty X509Cert */</div><div class='ctx'> 	return self;</div><div class='ctx'>     }</div><div class='ctx'>     arg = ossl_to_der_if_possible(arg);</div><div class='ctx'>     in = ossl_obj2bio(&amp;arg);</div><div class='del'>-    x509 = PEM_read_bio_X509(in, &amp;x, NULL, NULL);</div><div class='del'>-    DATA_PTR(self) = x;</div><div class='add'>+    x509 = d2i_X509_bio(in, NULL);</div><div class='ctx'>     if (!x509) {</div><div class='del'>-	OSSL_BIO_reset(in);</div><div class='del'>-	x509 = d2i_X509_bio(in, &amp;x);</div><div class='del'>-	DATA_PTR(self) = x;</div><div class='add'>+        OSSL_BIO_reset(in);</div><div class='add'>+        x509 = PEM_read_bio_X509(in, NULL, NULL, NULL);</div><div class='ctx'>     }</div><div class='ctx'>     BIO_free(in);</div><div class='del'>-    if (!x509) ossl_raise(eX509CertError, NULL);</div><div class='add'>+    if (!x509)</div><div class='add'>+        ossl_raise(eX509CertError, "PEM_read_bio_X509");</div><div class='add'>+</div><div class='add'>+    RTYPEDDATA_DATA(self) = x509;</div><div class='add'>+    X509_free(x509_orig);</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -639,12 +642,12 @@ ossl_x509_set_extensions(VALUE self, VALUE ary)</div><div class='ctx'> 	OSSL_Check_Kind(RARRAY_AREF(ary, i), cX509Ext);</div><div class='ctx'>     }</div><div class='ctx'>     GetX509(self, x509);</div><div class='del'>-    while ((ext = X509_delete_ext(x509, 0)))</div><div class='del'>-	X509_EXTENSION_free(ext);</div><div class='add'>+    for (i = X509_get_ext_count(x509); i &gt; 0; i--)</div><div class='add'>+        X509_EXTENSION_free(X509_delete_ext(x509, 0));</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='ctx'> 	ext = GetX509ExtPtr(RARRAY_AREF(ary, i));</div><div class='ctx'> 	if (!X509_add_ext(x509, ext, -1)) { /* DUPs ext */</div><div class='del'>-	    ossl_raise(eX509CertError, NULL);</div><div class='add'>+	    ossl_raise(eX509CertError, "X509_add_ext");</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -704,6 +707,157 @@ ossl_x509_eq(VALUE self, VALUE other)</div><div class='ctx'>     return !X509_cmp(a, b) ? Qtrue : Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+struct load_chained_certificates_arguments {</div><div class='add'>+    VALUE certificates;</div><div class='add'>+    X509 *certificate;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+load_chained_certificates_append_push(VALUE _arguments) {</div><div class='add'>+    struct load_chained_certificates_arguments *arguments = (struct load_chained_certificates_arguments*)_arguments;</div><div class='add'>+</div><div class='add'>+    if (arguments-&gt;certificates == Qnil) {</div><div class='add'>+        arguments-&gt;certificates = rb_ary_new();</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_ary_push(arguments-&gt;certificates, ossl_x509_new(arguments-&gt;certificate));</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+load_chained_certificate_append_ensure(VALUE _arguments) {</div><div class='add'>+    struct load_chained_certificates_arguments *arguments = (struct load_chained_certificates_arguments*)_arguments;</div><div class='add'>+</div><div class='add'>+    X509_free(arguments-&gt;certificate);</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+load_chained_certificates_append(VALUE certificates, X509 *certificate) {</div><div class='add'>+    struct load_chained_certificates_arguments arguments;</div><div class='add'>+    arguments.certificates = certificates;</div><div class='add'>+    arguments.certificate = certificate;</div><div class='add'>+</div><div class='add'>+    rb_ensure(load_chained_certificates_append_push, (VALUE)&amp;arguments, load_chained_certificate_append_ensure, (VALUE)&amp;arguments);</div><div class='add'>+</div><div class='add'>+    return arguments.certificates;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+load_chained_certificates_PEM(BIO *in) {</div><div class='add'>+    VALUE certificates = Qnil;</div><div class='add'>+    X509 *certificate = PEM_read_bio_X509(in, NULL, NULL, NULL);</div><div class='add'>+</div><div class='add'>+    /* If we cannot read even one certificate: */</div><div class='add'>+    if (certificate == NULL) {</div><div class='add'>+        /* If we cannot read one certificate because we could not read the PEM encoding: */</div><div class='add'>+        if (ERR_GET_REASON(ERR_peek_last_error()) == PEM_R_NO_START_LINE) {</div><div class='add'>+            ossl_clear_error();</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (ERR_peek_last_error())</div><div class='add'>+            ossl_raise(eX509CertError, NULL);</div><div class='add'>+        else</div><div class='add'>+            return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    certificates = load_chained_certificates_append(Qnil, certificate);</div><div class='add'>+</div><div class='add'>+    while ((certificate = PEM_read_bio_X509(in, NULL, NULL, NULL))) {</div><div class='add'>+      load_chained_certificates_append(certificates, certificate);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* We tried to read one more certificate but could not read start line: */</div><div class='add'>+    if (ERR_GET_REASON(ERR_peek_last_error()) == PEM_R_NO_START_LINE) {</div><div class='add'>+        /* This is not an error, it means we are finished: */</div><div class='add'>+        ossl_clear_error();</div><div class='add'>+</div><div class='add'>+        return certificates;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* Alternatively, if we reached the end of the file and there was no error: */</div><div class='add'>+    if (BIO_eof(in) &amp;&amp; !ERR_peek_last_error()) {</div><div class='add'>+        return certificates;</div><div class='add'>+    } else {</div><div class='add'>+        /* Otherwise, we tried to read a certificate but failed somewhere: */</div><div class='add'>+        ossl_raise(eX509CertError, NULL);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+load_chained_certificates_DER(BIO *in) {</div><div class='add'>+    X509 *certificate = d2i_X509_bio(in, NULL);</div><div class='add'>+</div><div class='add'>+    /* If we cannot read one certificate: */</div><div class='add'>+    if (certificate == NULL) {</div><div class='add'>+        /* Ignore error. We could not load. */</div><div class='add'>+        ossl_clear_error();</div><div class='add'>+</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return load_chained_certificates_append(Qnil, certificate);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+load_chained_certificates(VALUE _io) {</div><div class='add'>+    BIO *in = (BIO*)_io;</div><div class='add'>+    VALUE certificates = Qnil;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+      DER is a binary format and it may contain octets within it that look like</div><div class='add'>+      PEM encoded certificates. So we need to check DER first.</div><div class='add'>+    */</div><div class='add'>+    certificates = load_chained_certificates_DER(in);</div><div class='add'>+</div><div class='add'>+    if (certificates != Qnil)</div><div class='add'>+        return certificates;</div><div class='add'>+</div><div class='add'>+    OSSL_BIO_reset(in);</div><div class='add'>+</div><div class='add'>+    certificates = load_chained_certificates_PEM(in);</div><div class='add'>+</div><div class='add'>+    if (certificates != Qnil)</div><div class='add'>+        return certificates;</div><div class='add'>+</div><div class='add'>+    /* Otherwise we couldn't read the output correctly so fail: */</div><div class='add'>+    ossl_raise(eX509CertError, "Could not detect format of certificate data!");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+load_chained_certificates_ensure(VALUE _io) {</div><div class='add'>+    BIO *in = (BIO*)_io;</div><div class='add'>+</div><div class='add'>+    BIO_free(in);</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    OpenSSL::X509::Certificate.load(string) -&gt; [certs...]</div><div class='add'>+ *    OpenSSL::X509::Certificate.load(file) -&gt; [certs...]</div><div class='add'>+ *</div><div class='add'>+ * Read the chained certificates from the given input. Supports both PEM</div><div class='add'>+ * and DER encoded certificates.</div><div class='add'>+ *</div><div class='add'>+ * PEM is a text format and supports more than one certificate.</div><div class='add'>+ *</div><div class='add'>+ * DER is a binary format and only supports one certificate.</div><div class='add'>+ *</div><div class='add'>+ * If the file is empty, or contains only unrelated data, an</div><div class='add'>+ * +OpenSSL::X509::CertificateError+ exception will be raised.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+ossl_x509_load(VALUE klass, VALUE buffer)</div><div class='add'>+{</div><div class='add'>+    BIO *in = ossl_obj2bio(&amp;buffer);</div><div class='add'>+</div><div class='add'>+    return rb_ensure(load_chained_certificates, (VALUE)in, load_chained_certificates_ensure, (VALUE)in);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * INIT</div><div class='ctx'>  */</div><div class='hunk'>@@ -730,7 +884,7 @@ Init_ossl_x509cert(void)</div><div class='ctx'>      * Certificate is capable of handling DER-encoded certificates and</div><div class='ctx'>      * certificates encoded in OpenSSL's PEM format.</div><div class='ctx'>      *</div><div class='del'>-     *   raw = File.read "cert.cer" # DER- or PEM-encoded</div><div class='add'>+     *   raw = File.binread "cert.cer" # DER- or PEM-encoded</div><div class='ctx'>      *   certificate = OpenSSL::X509::Certificate.new raw</div><div class='ctx'>      *</div><div class='ctx'>      * === Saving a certificate to a file</div><div class='hunk'>@@ -788,7 +942,7 @@ Init_ossl_x509cert(void)</div><div class='ctx'>      *   root_ca.add_extension(ef.create_extension("keyUsage","keyCertSign, cRLSign", true))</div><div class='ctx'>      *   root_ca.add_extension(ef.create_extension("subjectKeyIdentifier","hash",false))</div><div class='ctx'>      *   root_ca.add_extension(ef.create_extension("authorityKeyIdentifier","keyid:always",false))</div><div class='del'>-     *   root_ca.sign(root_key, OpenSSL::Digest::SHA256.new)</div><div class='add'>+     *   root_ca.sign(root_key, OpenSSL::Digest.new('SHA256'))</div><div class='ctx'>      *</div><div class='ctx'>      * The next step is to create the end-entity certificate using the root CA</div><div class='ctx'>      * certificate.</div><div class='hunk'>@@ -807,11 +961,13 @@ Init_ossl_x509cert(void)</div><div class='ctx'>      *   ef.issuer_certificate = root_ca</div><div class='ctx'>      *   cert.add_extension(ef.create_extension("keyUsage","digitalSignature", true))</div><div class='ctx'>      *   cert.add_extension(ef.create_extension("subjectKeyIdentifier","hash",false))</div><div class='del'>-     *   cert.sign(root_key, OpenSSL::Digest::SHA256.new)</div><div class='add'>+     *   cert.sign(root_key, OpenSSL::Digest.new('SHA256'))</div><div class='ctx'>      *</div><div class='ctx'>      */</div><div class='ctx'>     cX509Cert = rb_define_class_under(mX509, "Certificate", rb_cObject);</div><div class='ctx'> </div><div class='add'>+    rb_define_singleton_method(cX509Cert, "load", ossl_x509_load, 1);</div><div class='add'>+</div><div class='ctx'>     rb_define_alloc_func(cX509Cert, ossl_x509_alloc);</div><div class='ctx'>     rb_define_method(cX509Cert, "initialize", ossl_x509_initialize, -1);</div><div class='ctx'>     rb_define_method(cX509Cert, "initialize_copy", ossl_x509_copy, 1);</div><div class='head'>diff --git a/ext/openssl/ossl_x509crl.c b/ext/openssl/ossl_x509crl.c<br/>index b0badf45c4..6c1d915370 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_x509crl.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509crl.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_x509crl.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_x509crl.c</a></div><div class='hunk'>@@ -93,23 +93,26 @@ static VALUE</div><div class='ctx'> ossl_x509crl_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     BIO *in;</div><div class='del'>-    X509_CRL *crl, *x = DATA_PTR(self);</div><div class='add'>+    X509_CRL *crl, *crl_orig = RTYPEDDATA_DATA(self);</div><div class='ctx'>     VALUE arg;</div><div class='ctx'> </div><div class='add'>+    rb_check_frozen(self);</div><div class='ctx'>     if (rb_scan_args(argc, argv, "01", &amp;arg) == 0) {</div><div class='ctx'> 	return self;</div><div class='ctx'>     }</div><div class='ctx'>     arg = ossl_to_der_if_possible(arg);</div><div class='ctx'>     in = ossl_obj2bio(&amp;arg);</div><div class='del'>-    crl = PEM_read_bio_X509_CRL(in, &amp;x, NULL, NULL);</div><div class='del'>-    DATA_PTR(self) = x;</div><div class='add'>+    crl = d2i_X509_CRL_bio(in, NULL);</div><div class='ctx'>     if (!crl) {</div><div class='del'>-	OSSL_BIO_reset(in);</div><div class='del'>-	crl = d2i_X509_CRL_bio(in, &amp;x);</div><div class='del'>-	DATA_PTR(self) = x;</div><div class='add'>+        OSSL_BIO_reset(in);</div><div class='add'>+        crl = PEM_read_bio_X509_CRL(in, NULL, NULL, NULL);</div><div class='ctx'>     }</div><div class='ctx'>     BIO_free(in);</div><div class='del'>-    if (!crl) ossl_raise(eX509CRLError, NULL);</div><div class='add'>+    if (!crl)</div><div class='add'>+        ossl_raise(eX509CRLError, "PEM_read_bio_X509_CRL");</div><div class='add'>+</div><div class='add'>+    RTYPEDDATA_DATA(self) = crl;</div><div class='add'>+    X509_CRL_free(crl_orig);</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -471,12 +474,12 @@ ossl_x509crl_set_extensions(VALUE self, VALUE ary)</div><div class='ctx'> 	OSSL_Check_Kind(RARRAY_AREF(ary, i), cX509Ext);</div><div class='ctx'>     }</div><div class='ctx'>     GetX509CRL(self, crl);</div><div class='del'>-    while ((ext = X509_CRL_delete_ext(crl, 0)))</div><div class='del'>-	X509_EXTENSION_free(ext);</div><div class='add'>+    for (i = X509_CRL_get_ext_count(crl); i &gt; 0; i--)</div><div class='add'>+        X509_EXTENSION_free(X509_CRL_delete_ext(crl, 0));</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='ctx'> 	ext = GetX509ExtPtr(RARRAY_AREF(ary, i)); /* NO NEED TO DUP */</div><div class='ctx'> 	if (!X509_CRL_add_ext(crl, ext, -1)) {</div><div class='del'>-	    ossl_raise(eX509CRLError, NULL);</div><div class='add'>+	    ossl_raise(eX509CRLError, "X509_CRL_add_ext");</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='head'>diff --git a/ext/openssl/ossl_x509ext.c b/ext/openssl/ossl_x509ext.c<br/>index 30ec09d7a3..e54102c771 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_x509ext.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509ext.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_x509ext.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_x509ext.c</a></div><div class='hunk'>@@ -226,11 +226,10 @@ ossl_x509extfactory_create_ext(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     GetX509ExtFactory(self, ctx);</div><div class='ctx'>     obj = NewX509Ext(cX509Ext);</div><div class='ctx'>     rconf = rb_iv_get(self, "@config");</div><div class='del'>-    conf = NIL_P(rconf) ? NULL : DupConfigPtr(rconf);</div><div class='add'>+    conf = NIL_P(rconf) ? NULL : GetConfig(rconf);</div><div class='ctx'>     X509V3_set_nconf(ctx, conf);</div><div class='ctx'>     ext = X509V3_EXT_nconf_nid(conf, ctx, nid, RSTRING_PTR(valstr));</div><div class='ctx'>     X509V3_set_ctx_nodb(ctx);</div><div class='del'>-    NCONF_free(conf);</div><div class='ctx'>     if (!ext){</div><div class='ctx'> 	ossl_raise(eX509ExtError, "%"PRIsVALUE" = %"PRIsVALUE, oid, valstr);</div><div class='ctx'>     }</div><div class='hunk'>@@ -403,6 +402,19 @@ ossl_x509ext_get_value(VALUE obj)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='add'>+ossl_x509ext_get_value_der(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    X509_EXTENSION *ext;</div><div class='add'>+    ASN1_OCTET_STRING *value;</div><div class='add'>+</div><div class='add'>+    GetX509Ext(obj, ext);</div><div class='add'>+    if ((value = X509_EXTENSION_get_data(ext)) == NULL)</div><div class='add'>+	ossl_raise(eX509ExtError, NULL);</div><div class='add'>+</div><div class='add'>+    return rb_str_new((const char *)value-&gt;data, value-&gt;length);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='ctx'> ossl_x509ext_get_critical(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     X509_EXTENSION *ext;</div><div class='hunk'>@@ -472,6 +484,7 @@ Init_ossl_x509ext(void)</div><div class='ctx'>     rb_define_method(cX509Ext, "critical=", ossl_x509ext_set_critical, 1);</div><div class='ctx'>     rb_define_method(cX509Ext, "oid", ossl_x509ext_get_oid, 0);</div><div class='ctx'>     rb_define_method(cX509Ext, "value", ossl_x509ext_get_value, 0);</div><div class='add'>+    rb_define_method(cX509Ext, "value_der", ossl_x509ext_get_value_der, 0);</div><div class='ctx'>     rb_define_method(cX509Ext, "critical?", ossl_x509ext_get_critical, 0);</div><div class='ctx'>     rb_define_method(cX509Ext, "to_der", ossl_x509ext_to_der, 0);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/openssl/ossl_x509name.c b/ext/openssl/ossl_x509name.c<br/>index 1ea8400dbb..13a2b2c030 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_x509name.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509name.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_x509name.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_x509name.c</a></div><div class='hunk'>@@ -291,7 +291,14 @@ x509name_print(VALUE self, unsigned long iflag)</div><div class='ctx'>  * * OpenSSL::X509::Name::MULTILINE</div><div class='ctx'>  *</div><div class='ctx'>  * If _format_ is omitted, the largely broken and traditional OpenSSL format</div><div class='del'>- * is used.</div><div class='add'>+ * (&lt;tt&gt;X509_NAME_oneline()&lt;/tt&gt; format) is chosen.</div><div class='add'>+ *</div><div class='add'>+ * &lt;b&gt;Use of this method is discouraged.&lt;/b&gt; None of the formats other than</div><div class='add'>+ * OpenSSL::X509::Name::RFC2253 is standardized and may show an inconsistent</div><div class='add'>+ * behavior through \OpenSSL versions.</div><div class='add'>+ *</div><div class='add'>+ * It is recommended to use #to_utf8 instead, which is equivalent to calling</div><div class='add'>+ * &lt;tt&gt;name.to_s(OpenSSL::X509::Name::RFC2253).force_encoding("UTF-8")&lt;/tt&gt;.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509name_to_s(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -387,17 +394,21 @@ ossl_x509name_cmp0(VALUE self, VALUE other)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    name.cmp(other) -&gt; -1 | 0 | 1</div><div class='del'>- *    name &lt;=&gt; other  -&gt; -1 | 0 | 1</div><div class='add'>+ *    name.cmp(other) -&gt; -1 | 0 | 1 | nil</div><div class='add'>+ *    name &lt;=&gt; other  -&gt; -1 | 0 | 1 | nil</div><div class='ctx'>  *</div><div class='ctx'>  * Compares this Name with _other_ and returns +0+ if they are the same and +-1+</div><div class='ctx'>  * or ++1+ if they are greater or less than each other respectively.</div><div class='add'>+ * Returns +nil+ if they are not comparable (i.e. different types).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509name_cmp(VALUE self, VALUE other)</div><div class='ctx'> {</div><div class='ctx'>     int result;</div><div class='ctx'> </div><div class='add'>+    if (!rb_obj_is_kind_of(other, cX509Name))</div><div class='add'>+	return Qnil;</div><div class='add'>+</div><div class='ctx'>     result = ossl_x509name_cmp0(self, other);</div><div class='ctx'>     if (result &lt; 0) return INT2FIX(-1);</div><div class='ctx'>     if (result &gt; 0) return INT2FIX(1);</div><div class='hunk'>@@ -494,7 +505,7 @@ ossl_x509name_to_der(VALUE self)</div><div class='ctx'>  * You can create a Name by parsing a distinguished name String or by</div><div class='ctx'>  * supplying the distinguished name as an Array.</div><div class='ctx'>  *</div><div class='del'>- *   name = OpenSSL::X509::Name.parse 'CN=nobody/DC=example'</div><div class='add'>+ *   name = OpenSSL::X509::Name.parse_rfc2253 'DC=example,CN=nobody'</div><div class='ctx'>  *</div><div class='ctx'>  *   name = OpenSSL::X509::Name.new [['CN', 'nobody'], ['DC', 'example']]</div><div class='ctx'>  */</div><div class='head'>diff --git a/ext/openssl/ossl_x509req.c b/ext/openssl/ossl_x509req.c<br/>index 2c20042a92..77a7d3f2ff 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_x509req.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509req.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_x509req.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_x509req.c</a></div><div class='hunk'>@@ -79,23 +79,26 @@ static VALUE</div><div class='ctx'> ossl_x509req_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     BIO *in;</div><div class='del'>-    X509_REQ *req, *x = DATA_PTR(self);</div><div class='add'>+    X509_REQ *req, *req_orig = RTYPEDDATA_DATA(self);</div><div class='ctx'>     VALUE arg;</div><div class='ctx'> </div><div class='add'>+    rb_check_frozen(self);</div><div class='ctx'>     if (rb_scan_args(argc, argv, "01", &amp;arg) == 0) {</div><div class='ctx'> 	return self;</div><div class='ctx'>     }</div><div class='ctx'>     arg = ossl_to_der_if_possible(arg);</div><div class='ctx'>     in = ossl_obj2bio(&amp;arg);</div><div class='del'>-    req = PEM_read_bio_X509_REQ(in, &amp;x, NULL, NULL);</div><div class='del'>-    DATA_PTR(self) = x;</div><div class='add'>+    req = d2i_X509_REQ_bio(in, NULL);</div><div class='ctx'>     if (!req) {</div><div class='del'>-	OSSL_BIO_reset(in);</div><div class='del'>-	req = d2i_X509_REQ_bio(in, &amp;x);</div><div class='del'>-	DATA_PTR(self) = x;</div><div class='add'>+        OSSL_BIO_reset(in);</div><div class='add'>+        req = PEM_read_bio_X509_REQ(in, NULL, NULL, NULL);</div><div class='ctx'>     }</div><div class='ctx'>     BIO_free(in);</div><div class='del'>-    if (!req) ossl_raise(eX509ReqError, NULL);</div><div class='add'>+    if (!req)</div><div class='add'>+        ossl_raise(eX509ReqError, "PEM_read_bio_X509_REQ");</div><div class='add'>+</div><div class='add'>+    RTYPEDDATA_DATA(self) = req;</div><div class='add'>+    X509_REQ_free(req_orig);</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -377,13 +380,13 @@ ossl_x509req_set_attributes(VALUE self, VALUE ary)</div><div class='ctx'> 	OSSL_Check_Kind(RARRAY_AREF(ary, i), cX509Attr);</div><div class='ctx'>     }</div><div class='ctx'>     GetX509Req(self, req);</div><div class='del'>-    while ((attr = X509_REQ_delete_attr(req, 0)))</div><div class='del'>-	X509_ATTRIBUTE_free(attr);</div><div class='add'>+    for (i = X509_REQ_get_attr_count(req); i &gt; 0; i--)</div><div class='add'>+        X509_ATTRIBUTE_free(X509_REQ_delete_attr(req, 0));</div><div class='ctx'>     for (i=0;i&lt;RARRAY_LEN(ary); i++) {</div><div class='ctx'> 	item = RARRAY_AREF(ary, i);</div><div class='ctx'> 	attr = GetX509AttrPtr(item);</div><div class='ctx'> 	if (!X509_REQ_add1_attr(req, attr)) {</div><div class='del'>-	    ossl_raise(eX509ReqError, NULL);</div><div class='add'>+	    ossl_raise(eX509ReqError, "X509_REQ_add1_attr");</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='head'>diff --git a/ext/openssl/ossl_x509revoked.c b/ext/openssl/ossl_x509revoked.c<br/>index 5fe6853430..10b8aa4ad6 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_x509revoked.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509revoked.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_x509revoked.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_x509revoked.c</a></div><div class='hunk'>@@ -223,13 +223,13 @@ ossl_x509revoked_set_extensions(VALUE self, VALUE ary)</div><div class='ctx'> 	OSSL_Check_Kind(RARRAY_AREF(ary, i), cX509Ext);</div><div class='ctx'>     }</div><div class='ctx'>     GetX509Rev(self, rev);</div><div class='del'>-    while ((ext = X509_REVOKED_delete_ext(rev, 0)))</div><div class='del'>-	X509_EXTENSION_free(ext);</div><div class='add'>+    for (i = X509_REVOKED_get_ext_count(rev); i &gt; 0; i--)</div><div class='add'>+        X509_EXTENSION_free(X509_REVOKED_delete_ext(rev, 0));</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='ctx'> 	item = RARRAY_AREF(ary, i);</div><div class='ctx'> 	ext = GetX509ExtPtr(item);</div><div class='ctx'> 	if(!X509_REVOKED_add_ext(rev, ext, -1)) {</div><div class='del'>-	    ossl_raise(eX509RevError, NULL);</div><div class='add'>+	    ossl_raise(eX509RevError, "X509_REVOKED_add_ext");</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='head'>diff --git a/ext/openssl/ossl_x509store.c b/ext/openssl/ossl_x509store.c<br/>index 2909eeda17..7c546187c3 100644<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ossl_x509store.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ossl_x509store.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/openssl/ossl_x509store.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/openssl/ossl_x509store.c</a></div><div class='hunk'>@@ -52,8 +52,15 @@ struct ossl_verify_cb_args {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-call_verify_cb_proc(struct ossl_verify_cb_args *args)</div><div class='add'>+ossl_x509stctx_new_i(VALUE arg)</div><div class='ctx'> {</div><div class='add'>+    return ossl_x509stctx_new((X509_STORE_CTX *)arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+call_verify_cb_proc(VALUE arg)</div><div class='add'>+{</div><div class='add'>+    struct ossl_verify_cb_args *args = (struct ossl_verify_cb_args *)arg;</div><div class='ctx'>     return rb_funcall(args-&gt;proc, rb_intern("call"), 2,</div><div class='ctx'> 		      args-&gt;preverify_ok, args-&gt;store_ctx);</div><div class='ctx'> }</div><div class='hunk'>@@ -69,7 +76,7 @@ ossl_verify_cb_call(VALUE proc, int ok, X509_STORE_CTX *ctx)</div><div class='ctx'> 	return ok;</div><div class='ctx'> </div><div class='ctx'>     ret = Qfalse;</div><div class='del'>-    rctx = rb_protect((VALUE(*)(VALUE))ossl_x509stctx_new, (VALUE)ctx, &amp;state);</div><div class='add'>+    rctx = rb_protect(ossl_x509stctx_new_i, (VALUE)ctx, &amp;state);</div><div class='ctx'>     if (state) {</div><div class='ctx'> 	rb_set_errinfo(Qnil);</div><div class='ctx'> 	rb_warn("StoreContext initialization failure");</div><div class='hunk'>@@ -78,7 +85,7 @@ ossl_verify_cb_call(VALUE proc, int ok, X509_STORE_CTX *ctx)</div><div class='ctx'> 	args.proc = proc;</div><div class='ctx'> 	args.preverify_ok = ok ? Qtrue : Qfalse;</div><div class='ctx'> 	args.store_ctx = rctx;</div><div class='del'>-	ret = rb_protect((VALUE(*)(VALUE))call_verify_cb_proc, (VALUE)&amp;args, &amp;state);</div><div class='add'>+	ret = rb_protect(call_verify_cb_proc, (VALUE)&amp;args, &amp;state);</div><div class='ctx'> 	if (state) {</div><div class='ctx'> 	    rb_set_errinfo(Qnil);</div><div class='ctx'> 	    rb_warn("exception in verify_callback is ignored");</div><div class='hunk'>@@ -106,6 +113,13 @@ VALUE cX509StoreContext;</div><div class='ctx'> VALUE eX509StoreError;</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='add'>+ossl_x509store_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    X509_STORE *store = ptr;</div><div class='add'>+    rb_gc_mark((VALUE)X509_STORE_get_ex_data(store, store_ex_verify_cb_idx));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='ctx'> ossl_x509store_free(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     X509_STORE_free(ptr);</div><div class='hunk'>@@ -114,7 +128,7 @@ ossl_x509store_free(void *ptr)</div><div class='ctx'> static const rb_data_type_t ossl_x509store_type = {</div><div class='ctx'>     "OpenSSL/X509/STORE",</div><div class='ctx'>     {</div><div class='del'>-	0, ossl_x509store_free,</div><div class='add'>+        ossl_x509store_mark, ossl_x509store_free,</div><div class='ctx'>     },</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='ctx'> };</div><div class='hunk'>@@ -157,9 +171,8 @@ ossl_x509store_alloc(VALUE klass)</div><div class='ctx'>     VALUE obj;</div><div class='ctx'> </div><div class='ctx'>     obj = NewX509Store(klass);</div><div class='del'>-    if((store = X509_STORE_new()) == NULL){</div><div class='del'>-        ossl_raise(eX509StoreError, NULL);</div><div class='del'>-    }</div><div class='add'>+    if ((store = X509_STORE_new()) == NULL)</div><div class='add'>+        ossl_raise(eX509StoreError, "X509_STORE_new");</div><div class='ctx'>     SetX509Store(obj, store);</div><div class='ctx'> </div><div class='ctx'>     return obj;</div><div class='hunk'>@@ -192,8 +205,9 @@ ossl_x509store_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     X509_STORE *store;</div><div class='ctx'> </div><div class='del'>-/* BUG: This method takes any number of arguments but appears to ignore them. */</div><div class='ctx'>     GetX509Store(self, store);</div><div class='add'>+    if (argc != 0)</div><div class='add'>+        rb_warn("OpenSSL::X509::Store.new does not take any arguments");</div><div class='ctx'> #if !defined(HAVE_OPAQUE_OPENSSL)</div><div class='ctx'>     /* [Bug #405] [Bug #1678] [Bug #3000]; already fixed? */</div><div class='ctx'>     store-&gt;ex_data.sk = NULL;</div><div class='hunk'>@@ -214,8 +228,16 @@ ossl_x509store_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   store.flags = flags</div><div class='ctx'>  *</div><div class='del'>- * Sets _flags_ to the Store. _flags_ consists of zero or more of the constants</div><div class='del'>- * defined in with name V_FLAG_* or'ed together.</div><div class='add'>+ * Sets the default flags used by certificate chain verification performed with</div><div class='add'>+ * the Store.</div><div class='add'>+ *</div><div class='add'>+ * _flags_ consists of zero or more of the constants defined in OpenSSL::X509</div><div class='add'>+ * with name V_FLAG_* or'ed together.</div><div class='add'>+ *</div><div class='add'>+ * OpenSSL::X509::StoreContext#flags= can be used to change the flags for a</div><div class='add'>+ * single verification operation.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_VERIFY_PARAM_set_flags(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509store_set_flags(VALUE self, VALUE flags)</div><div class='hunk'>@@ -233,9 +255,9 @@ ossl_x509store_set_flags(VALUE self, VALUE flags)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   store.purpose = purpose</div><div class='ctx'>  *</div><div class='del'>- * Sets the store's purpose to _purpose_. If specified, the verifications on</div><div class='del'>- * the store will check every untrusted certificate's extensions are consistent</div><div class='del'>- * with the purpose. The purpose is specified by constants:</div><div class='add'>+ * Sets the store's default verification purpose. If specified,</div><div class='add'>+ * the verifications on the store will check every certificate's extensions are</div><div class='add'>+ * consistent with the purpose. The purpose is specified by constants:</div><div class='ctx'>  *</div><div class='ctx'>  * * X509::PURPOSE_SSL_CLIENT</div><div class='ctx'>  * * X509::PURPOSE_SSL_SERVER</div><div class='hunk'>@@ -246,6 +268,11 @@ ossl_x509store_set_flags(VALUE self, VALUE flags)</div><div class='ctx'>  * * X509::PURPOSE_ANY</div><div class='ctx'>  * * X509::PURPOSE_OCSP_HELPER</div><div class='ctx'>  * * X509::PURPOSE_TIMESTAMP_SIGN</div><div class='add'>+ *</div><div class='add'>+ * OpenSSL::X509::StoreContext#purpose= can be used to change the value for a</div><div class='add'>+ * single verification operation.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_VERIFY_PARAM_set_purpose(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509store_set_purpose(VALUE self, VALUE purpose)</div><div class='hunk'>@@ -262,6 +289,14 @@ ossl_x509store_set_purpose(VALUE self, VALUE purpose)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   store.trust = trust</div><div class='add'>+ *</div><div class='add'>+ * Sets the default trust settings used by the certificate verification with</div><div class='add'>+ * the store.</div><div class='add'>+ *</div><div class='add'>+ * OpenSSL::X509::StoreContext#trust= can be used to change the value for a</div><div class='add'>+ * single verification operation.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_VERIFY_PARAM_set_trust(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509store_set_trust(VALUE self, VALUE trust)</div><div class='hunk'>@@ -279,7 +314,13 @@ ossl_x509store_set_trust(VALUE self, VALUE trust)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   store.time = time</div><div class='ctx'>  *</div><div class='del'>- * Sets the time to be used in verifications.</div><div class='add'>+ * Sets the time to be used in the certificate verifications with the store.</div><div class='add'>+ * By default, if not specified, the current system time is used.</div><div class='add'>+ *</div><div class='add'>+ * OpenSSL::X509::StoreContext#time= can be used to change the value for a</div><div class='add'>+ * single verification operation.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_VERIFY_PARAM_set_time(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509store_set_time(VALUE self, VALUE time)</div><div class='hunk'>@@ -295,24 +336,23 @@ ossl_x509store_set_time(VALUE self, VALUE time)</div><div class='ctx'>  * Adds the certificates in _file_ to the certificate store. _file_ is the path</div><div class='ctx'>  * to the file, and the file contains one or more certificates in PEM format</div><div class='ctx'>  * concatenated together.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_LOOKUP_file(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509store_add_file(VALUE self, VALUE file)</div><div class='ctx'> {</div><div class='ctx'>     X509_STORE *store;</div><div class='ctx'>     X509_LOOKUP *lookup;</div><div class='del'>-    char *path = NULL;</div><div class='add'>+    const char *path;</div><div class='ctx'> </div><div class='del'>-    if(file != Qnil){</div><div class='del'>-	rb_check_safe_obj(file);</div><div class='del'>-	path = StringValueCStr(file);</div><div class='del'>-    }</div><div class='ctx'>     GetX509Store(self, store);</div><div class='add'>+    path = StringValueCStr(file);</div><div class='ctx'>     lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file());</div><div class='del'>-    if(lookup == NULL) ossl_raise(eX509StoreError, NULL);</div><div class='del'>-    if(X509_LOOKUP_load_file(lookup, path, X509_FILETYPE_PEM) != 1){</div><div class='del'>-        ossl_raise(eX509StoreError, NULL);</div><div class='del'>-    }</div><div class='add'>+    if (!lookup)</div><div class='add'>+        ossl_raise(eX509StoreError, "X509_STORE_add_lookup");</div><div class='add'>+    if (X509_LOOKUP_load_file(lookup, path, X509_FILETYPE_PEM) != 1)</div><div class='add'>+        ossl_raise(eX509StoreError, "X509_LOOKUP_load_file");</div><div class='ctx'> #if OPENSSL_VERSION_NUMBER &lt; 0x10101000 || defined(LIBRESSL_VERSION_NUMBER)</div><div class='ctx'>     /*</div><div class='ctx'>      * X509_load_cert_crl_file() which is called from X509_LOOKUP_load_file()</div><div class='hunk'>@@ -331,24 +371,23 @@ ossl_x509store_add_file(VALUE self, VALUE file)</div><div class='ctx'>  *   store.add_path(path) -&gt; self</div><div class='ctx'>  *</div><div class='ctx'>  * Adds _path_ as the hash dir to be looked up by the store.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_LOOKUP_hash_dir(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509store_add_path(VALUE self, VALUE dir)</div><div class='ctx'> {</div><div class='ctx'>     X509_STORE *store;</div><div class='ctx'>     X509_LOOKUP *lookup;</div><div class='del'>-    char *path = NULL;</div><div class='add'>+    const char *path;</div><div class='ctx'> </div><div class='del'>-    if(dir != Qnil){</div><div class='del'>-	rb_check_safe_obj(dir);</div><div class='del'>-	path = StringValueCStr(dir);</div><div class='del'>-    }</div><div class='ctx'>     GetX509Store(self, store);</div><div class='add'>+    path = StringValueCStr(dir);</div><div class='ctx'>     lookup = X509_STORE_add_lookup(store, X509_LOOKUP_hash_dir());</div><div class='del'>-    if(lookup == NULL) ossl_raise(eX509StoreError, NULL);</div><div class='del'>-    if(X509_LOOKUP_add_dir(lookup, path, X509_FILETYPE_PEM) != 1){</div><div class='del'>-        ossl_raise(eX509StoreError, NULL);</div><div class='del'>-    }</div><div class='add'>+    if (!lookup)</div><div class='add'>+        ossl_raise(eX509StoreError, "X509_STORE_add_lookup");</div><div class='add'>+    if (X509_LOOKUP_add_dir(lookup, path, X509_FILETYPE_PEM) != 1)</div><div class='add'>+        ossl_raise(eX509StoreError, "X509_LOOKUP_add_dir");</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -363,6 +402,8 @@ ossl_x509store_add_path(VALUE self, VALUE dir)</div><div class='ctx'>  *</div><div class='ctx'>  * * OpenSSL::X509::DEFAULT_CERT_FILE</div><div class='ctx'>  * * OpenSSL::X509::DEFAULT_CERT_DIR</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_STORE_set_default_paths(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509store_set_default_paths(VALUE self)</div><div class='hunk'>@@ -370,18 +411,19 @@ ossl_x509store_set_default_paths(VALUE self)</div><div class='ctx'>     X509_STORE *store;</div><div class='ctx'> </div><div class='ctx'>     GetX509Store(self, store);</div><div class='del'>-    if (X509_STORE_set_default_paths(store) != 1){</div><div class='del'>-        ossl_raise(eX509StoreError, NULL);</div><div class='del'>-    }</div><div class='add'>+    if (X509_STORE_set_default_paths(store) != 1)</div><div class='add'>+        ossl_raise(eX509StoreError, "X509_STORE_set_default_paths");</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   store.add_cert(cert)</div><div class='add'>+ *   store.add_cert(cert) -&gt; self</div><div class='ctx'>  *</div><div class='ctx'>  * Adds the OpenSSL::X509::Certificate _cert_ to the certificate store.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_STORE_add_cert(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509store_add_cert(VALUE self, VALUE arg)</div><div class='hunk'>@@ -391,9 +433,8 @@ ossl_x509store_add_cert(VALUE self, VALUE arg)</div><div class='ctx'> </div><div class='ctx'>     cert = GetX509CertPtr(arg); /* NO NEED TO DUP */</div><div class='ctx'>     GetX509Store(self, store);</div><div class='del'>-    if (X509_STORE_add_cert(store, cert) != 1){</div><div class='del'>-        ossl_raise(eX509StoreError, NULL);</div><div class='del'>-    }</div><div class='add'>+    if (X509_STORE_add_cert(store, cert) != 1)</div><div class='add'>+        ossl_raise(eX509StoreError, "X509_STORE_add_cert");</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -403,6 +444,8 @@ ossl_x509store_add_cert(VALUE self, VALUE arg)</div><div class='ctx'>  *   store.add_crl(crl) -&gt; self</div><div class='ctx'>  *</div><div class='ctx'>  * Adds the OpenSSL::X509::CRL _crl_ to the store.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_STORE_add_crl(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509store_add_crl(VALUE self, VALUE arg)</div><div class='hunk'>@@ -412,9 +455,8 @@ ossl_x509store_add_crl(VALUE self, VALUE arg)</div><div class='ctx'> </div><div class='ctx'>     crl = GetX509CRLPtr(arg); /* NO NEED TO DUP */</div><div class='ctx'>     GetX509Store(self, store);</div><div class='del'>-    if (X509_STORE_add_crl(store, crl) != 1){</div><div class='del'>-        ossl_raise(eX509StoreError, NULL);</div><div class='del'>-    }</div><div class='add'>+    if (X509_STORE_add_crl(store, crl) != 1)</div><div class='add'>+        ossl_raise(eX509StoreError, "X509_STORE_add_crl");</div><div class='ctx'> </div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -459,23 +501,16 @@ ossl_x509store_verify(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Public Functions</div><div class='del'>- */</div><div class='del'>-static void ossl_x509stctx_free(void*);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static const rb_data_type_t ossl_x509stctx_type = {</div><div class='del'>-    "OpenSSL/X509/STORE_CTX",</div><div class='del'>-    {</div><div class='del'>-	0, ossl_x509stctx_free,</div><div class='del'>-    },</div><div class='del'>-    0, 0, RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * Private functions</div><div class='ctx'>  */</div><div class='ctx'> static void</div><div class='add'>+ossl_x509stctx_mark(void *ptr)</div><div class='add'>+{</div><div class='add'>+    X509_STORE_CTX *ctx = ptr;</div><div class='add'>+    rb_gc_mark((VALUE)X509_STORE_CTX_get_ex_data(ctx, stctx_ex_verify_cb_idx));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='ctx'> ossl_x509stctx_free(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     X509_STORE_CTX *ctx = ptr;</div><div class='hunk'>@@ -486,6 +521,14 @@ ossl_x509stctx_free(void *ptr)</div><div class='ctx'>     X509_STORE_CTX_free(ctx);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const rb_data_type_t ossl_x509stctx_type = {</div><div class='add'>+    "OpenSSL/X509/STORE_CTX",</div><div class='add'>+    {</div><div class='add'>+        ossl_x509stctx_mark, ossl_x509stctx_free,</div><div class='add'>+    },</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_alloc(VALUE klass)</div><div class='ctx'> {</div><div class='hunk'>@@ -493,9 +536,8 @@ ossl_x509stctx_alloc(VALUE klass)</div><div class='ctx'>     VALUE obj;</div><div class='ctx'> </div><div class='ctx'>     obj = NewX509StCtx(klass);</div><div class='del'>-    if((ctx = X509_STORE_CTX_new()) == NULL){</div><div class='del'>-        ossl_raise(eX509StoreError, NULL);</div><div class='del'>-    }</div><div class='add'>+    if ((ctx = X509_STORE_CTX_new()) == NULL)</div><div class='add'>+        ossl_raise(eX509StoreError, "X509_STORE_CTX_new");</div><div class='ctx'>     SetX509StCtx(obj, ctx);</div><div class='ctx'> </div><div class='ctx'>     return obj;</div><div class='hunk'>@@ -519,7 +561,9 @@ static VALUE ossl_x509stctx_set_time(VALUE, VALUE);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   StoreContext.new(store, cert = nil, chain = nil)</div><div class='add'>+ *   StoreContext.new(store, cert = nil, untrusted = nil)</div><div class='add'>+ *</div><div class='add'>+ * Sets up a StoreContext for a verification of the X.509 certificate _cert_.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_initialize(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -529,15 +573,24 @@ ossl_x509stctx_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     X509_STORE *x509st;</div><div class='ctx'>     X509 *x509 = NULL;</div><div class='ctx'>     STACK_OF(X509) *x509s = NULL;</div><div class='add'>+    int state;</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "12", &amp;store, &amp;cert, &amp;chain);</div><div class='ctx'>     GetX509StCtx(self, ctx);</div><div class='ctx'>     GetX509Store(store, x509st);</div><div class='del'>-    if(!NIL_P(cert)) x509 = DupX509CertPtr(cert); /* NEED TO DUP */</div><div class='del'>-    if(!NIL_P(chain)) x509s = ossl_x509_ary2sk(chain);</div><div class='del'>-    if(X509_STORE_CTX_init(ctx, x509st, x509, x509s) != 1){</div><div class='add'>+    if (!NIL_P(cert))</div><div class='add'>+        x509 = DupX509CertPtr(cert); /* NEED TO DUP */</div><div class='add'>+    if (!NIL_P(chain)) {</div><div class='add'>+        x509s = ossl_protect_x509_ary2sk(chain, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            X509_free(x509);</div><div class='add'>+            rb_jump_tag(state);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (X509_STORE_CTX_init(ctx, x509st, x509, x509s) != 1){</div><div class='add'>+        X509_free(x509);</div><div class='ctx'>         sk_X509_pop_free(x509s, X509_free);</div><div class='del'>-        ossl_raise(eX509StoreError, NULL);</div><div class='add'>+        ossl_raise(eX509StoreError, "X509_STORE_CTX_init");</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(t = rb_iv_get(store, "@time")))</div><div class='ctx'> 	ossl_x509stctx_set_time(self, t);</div><div class='hunk'>@@ -550,6 +603,10 @@ ossl_x509stctx_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   stctx.verify -&gt; true | false</div><div class='add'>+ *</div><div class='add'>+ * Performs the certificate verification using the parameters set to _stctx_.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_verify_cert(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_verify(VALUE self)</div><div class='hunk'>@@ -562,48 +619,45 @@ ossl_x509stctx_verify(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     switch (X509_verify_cert(ctx)) {</div><div class='ctx'>       case 1:</div><div class='del'>-	return Qtrue;</div><div class='add'>+        return Qtrue;</div><div class='ctx'>       case 0:</div><div class='del'>-	ossl_clear_error();</div><div class='del'>-	return Qfalse;</div><div class='add'>+        ossl_clear_error();</div><div class='add'>+        return Qfalse;</div><div class='ctx'>       default:</div><div class='del'>-	ossl_raise(eX509CertError, NULL);</div><div class='add'>+        ossl_raise(eX509CertError, "X509_verify_cert");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   stctx.chain -&gt; Array of X509::Certificate</div><div class='add'>+ *   stctx.chain -&gt; nil | Array of X509::Certificate</div><div class='add'>+ *</div><div class='add'>+ * Returns the verified chain.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_STORE_CTX_set0_verified_chain(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_get_chain(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     X509_STORE_CTX *ctx;</div><div class='del'>-    STACK_OF(X509) *chain;</div><div class='del'>-    X509 *x509;</div><div class='del'>-    int i, num;</div><div class='del'>-    VALUE ary;</div><div class='add'>+    const STACK_OF(X509) *chain;</div><div class='ctx'> </div><div class='ctx'>     GetX509StCtx(self, ctx);</div><div class='del'>-    if((chain = X509_STORE_CTX_get0_chain(ctx)) == NULL){</div><div class='del'>-        return Qnil;</div><div class='del'>-    }</div><div class='del'>-    if((num = sk_X509_num(chain)) &lt; 0){</div><div class='del'>-	OSSL_Debug("certs in chain &lt; 0???");</div><div class='del'>-	return rb_ary_new();</div><div class='del'>-    }</div><div class='del'>-    ary = rb_ary_new2(num);</div><div class='del'>-    for(i = 0; i &lt; num; i++) {</div><div class='del'>-	x509 = sk_X509_value(chain, i);</div><div class='del'>-	rb_ary_push(ary, ossl_x509_new(x509));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='add'>+    chain = X509_STORE_CTX_get0_chain(ctx);</div><div class='add'>+    if (!chain)</div><div class='add'>+        return Qnil; /* Could be an empty array instead? */</div><div class='add'>+    return ossl_x509_sk2ary(chain);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   stctx.error -&gt; Integer</div><div class='add'>+ *</div><div class='add'>+ * Returns the error code of _stctx_. This is typically called after #verify</div><div class='add'>+ * is done, or from the verification callback set to</div><div class='add'>+ * OpenSSL::X509::Store#verify_callback=.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_STORE_CTX_get_error(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_get_err(VALUE self)</div><div class='hunk'>@@ -618,6 +672,11 @@ ossl_x509stctx_get_err(VALUE self)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   stctx.error = error_code</div><div class='add'>+ *</div><div class='add'>+ * Sets the error code of _stctx_. This is used by the verification callback</div><div class='add'>+ * set to OpenSSL::X509::Store#verify_callback=.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_STORE_CTX_set_error(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_set_error(VALUE self, VALUE err)</div><div class='hunk'>@@ -634,7 +693,10 @@ ossl_x509stctx_set_error(VALUE self, VALUE err)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   stctx.error_string -&gt; String</div><div class='ctx'>  *</div><div class='del'>- * Returns the error string corresponding to the error code retrieved by #error.</div><div class='add'>+ * Returns the human readable error string corresponding to the error code</div><div class='add'>+ * retrieved by #error.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_verify_cert_error_string(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_get_err_string(VALUE self)</div><div class='hunk'>@@ -651,6 +713,10 @@ ossl_x509stctx_get_err_string(VALUE self)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   stctx.error_depth -&gt; Integer</div><div class='add'>+ *</div><div class='add'>+ * Returns the depth of the chain. This is used in combination with #error.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_STORE_CTX_get_error_depth(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_get_err_depth(VALUE self)</div><div class='hunk'>@@ -665,6 +731,10 @@ ossl_x509stctx_get_err_depth(VALUE self)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   stctx.current_cert -&gt; X509::Certificate</div><div class='add'>+ *</div><div class='add'>+ * Returns the certificate which caused the error.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_STORE_CTX_get_current_cert(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_get_curr_cert(VALUE self)</div><div class='hunk'>@@ -679,6 +749,10 @@ ossl_x509stctx_get_curr_cert(VALUE self)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   stctx.current_crl -&gt; X509::CRL</div><div class='add'>+ *</div><div class='add'>+ * Returns the CRL which caused the error.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_STORE_CTX_get_current_crl(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_get_curr_crl(VALUE self)</div><div class='hunk'>@@ -698,7 +772,10 @@ ossl_x509stctx_get_curr_crl(VALUE self)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   stctx.flags = flags</div><div class='ctx'>  *</div><div class='del'>- * Sets the verification flags to the context. See Store#flags=.</div><div class='add'>+ * Sets the verification flags to the context. This overrides the default value</div><div class='add'>+ * set by Store#flags=.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_VERIFY_PARAM_set_flags(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_set_flags(VALUE self, VALUE flags)</div><div class='hunk'>@@ -716,7 +793,10 @@ ossl_x509stctx_set_flags(VALUE self, VALUE flags)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   stctx.purpose = purpose</div><div class='ctx'>  *</div><div class='del'>- * Sets the purpose of the context. See Store#purpose=.</div><div class='add'>+ * Sets the purpose of the context. This overrides the default value set by</div><div class='add'>+ * Store#purpose=.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_VERIFY_PARAM_set_purpose(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_set_purpose(VALUE self, VALUE purpose)</div><div class='hunk'>@@ -733,6 +813,11 @@ ossl_x509stctx_set_purpose(VALUE self, VALUE purpose)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   stctx.trust = trust</div><div class='add'>+ *</div><div class='add'>+ * Sets the trust settings of the context. This overrides the default value set</div><div class='add'>+ * by Store#trust=.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_VERIFY_PARAM_set_trust(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_set_trust(VALUE self, VALUE trust)</div><div class='hunk'>@@ -751,6 +836,8 @@ ossl_x509stctx_set_trust(VALUE self, VALUE trust)</div><div class='ctx'>  *   stctx.time = time</div><div class='ctx'>  *</div><div class='ctx'>  * Sets the time used in the verification. If not set, the current time is used.</div><div class='add'>+ *</div><div class='add'>+ * See also the man page X509_VERIFY_PARAM_set_time(3).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> ossl_x509stctx_set_time(VALUE self, VALUE time)</div><div class='hunk'>@@ -826,23 +913,37 @@ Init_ossl_x509store(void)</div><div class='ctx'>     cX509Store = rb_define_class_under(mX509, "Store", rb_cObject);</div><div class='ctx'>     /*</div><div class='ctx'>      * The callback for additional certificate verification. It is invoked for</div><div class='del'>-     * each untrusted certificate in the chain.</div><div class='add'>+     * each certificate in the chain and can be used to implement custom</div><div class='add'>+     * certificate verification conditions.</div><div class='ctx'>      *</div><div class='ctx'>      * The callback is invoked with two values, a boolean that indicates if the</div><div class='ctx'>      * pre-verification by OpenSSL has succeeded or not, and the StoreContext in</div><div class='del'>-     * use. The callback must return either true or false.</div><div class='add'>+     * use.</div><div class='add'>+     *</div><div class='add'>+     * The callback can use StoreContext#error= to change the error code as</div><div class='add'>+     * needed. The callback must return either true or false.</div><div class='add'>+     *</div><div class='add'>+     * NOTE: any exception raised within the callback will be ignored.</div><div class='add'>+     *</div><div class='add'>+     * See also the man page X509_STORE_CTX_set_verify_cb(3).</div><div class='ctx'>      */</div><div class='ctx'>     rb_attr(cX509Store, rb_intern("verify_callback"), 1, 0, Qfalse);</div><div class='ctx'>     /*</div><div class='ctx'>      * The error code set by the last call of #verify.</div><div class='add'>+     *</div><div class='add'>+     * See also StoreContext#error.</div><div class='ctx'>      */</div><div class='ctx'>     rb_attr(cX509Store, rb_intern("error"), 1, 0, Qfalse);</div><div class='ctx'>     /*</div><div class='ctx'>      * The description for the error code set by the last call of #verify.</div><div class='add'>+     *</div><div class='add'>+     * See also StoreContext#error_string.</div><div class='ctx'>      */</div><div class='ctx'>     rb_attr(cX509Store, rb_intern("error_string"), 1, 0, Qfalse);</div><div class='ctx'>     /*</div><div class='ctx'>      * The certificate chain constructed by the last call of #verify.</div><div class='add'>+     *</div><div class='add'>+     * See also StoreContext#chain.</div><div class='ctx'>      */</div><div class='ctx'>     rb_attr(cX509Store, rb_intern("chain"), 1, 0, Qfalse);</div><div class='ctx'>     rb_define_alloc_func(cX509Store, ossl_x509store_alloc);</div><div class='head'>diff --git a/ext/openssl/ruby_missing.h b/ext/openssl/ruby_missing.h<br/>deleted file mode 100644<br/>index 069acc8b14..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/openssl/ruby_missing.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/openssl/ruby_missing.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,24 +0,0 @@</div><div class='del'>-/*</div><div class='del'>- * 'OpenSSL for Ruby' project</div><div class='del'>- * Copyright (C) 2001-2003  Michal Rokos &lt;m.rokos@sh.cvut.cz&gt;</div><div class='del'>- * All rights reserved.</div><div class='del'>- */</div><div class='del'>-/*</div><div class='del'>- * This program is licensed under the same licence as Ruby.</div><div class='del'>- * (See the file 'LICENCE'.)</div><div class='del'>- */</div><div class='del'>-#if !defined(_OSSL_RUBY_MISSING_H_)</div><div class='del'>-#define _OSSL_RUBY_MISSING_H_</div><div class='del'>-</div><div class='del'>-/* Ruby 2.4 */</div><div class='del'>-#ifndef RB_INTEGER_TYPE_P</div><div class='del'>-# define RB_INTEGER_TYPE_P(obj) (RB_FIXNUM_P(obj) || RB_TYPE_P(obj, T_BIGNUM))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* Ruby 2.5 */</div><div class='del'>-#ifndef ST2FIX</div><div class='del'>-# define RB_ST2FIX(h) LONG2FIX((long)(h))</div><div class='del'>-# define ST2FIX(h) RB_ST2FIX(h)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#endif /* _OSSL_RUBY_MISSING_H_ */</div><div class='head'>diff --git a/ext/pathname/depend b/ext/pathname/depend<br/>index 42abd32130..a6b000e305 100644<br/>--- a/<a href='/ruby.git/tree/ext/pathname/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pathname/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/pathname/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/pathname/depend</a></div><div class='hunk'>@@ -1,16 +1,174 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> pathname.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> pathname.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> pathname.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> pathname.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> pathname.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> pathname.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+pathname.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> pathname.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> pathname.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> pathname.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> pathname.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> pathname.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> pathname.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-pathname.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> pathname.o: pathname.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/pathname/extconf.rb b/ext/pathname/extconf.rb<br/>index c9133bc153..84e68277aa 100644<br/>--- a/<a href='/ruby.git/tree/ext/pathname/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pathname/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/pathname/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/pathname/extconf.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> require 'mkmf'</div><div class='del'>-have_struct_member("struct stat", "st_birthtimespec", "sys/stat.h")</div><div class='add'>+have_func("rb_file_s_birthtime")</div><div class='ctx'> create_makefile('pathname')</div><div class='head'>diff --git a/ext/pathname/lib/pathname.rb b/ext/pathname/lib/pathname.rb<br/>index 2fd0642e14..7bdfd0eb39 100644<br/>--- a/<a href='/ruby.git/tree/ext/pathname/lib/pathname.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pathname/lib/pathname.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/pathname/lib/pathname.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/pathname/lib/pathname.rb</a></div><div class='hunk'>@@ -35,6 +35,13 @@ class Pathname</div><div class='ctx'>     SEPARATOR_PAT = /#{Regexp.quote File::SEPARATOR}/</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  if File.dirname('A:') == 'A:.' # DOSish drive letter</div><div class='add'>+    ABSOLUTE_PATH = /\A(?:[A-Za-z]:|#{SEPARATOR_PAT})/o</div><div class='add'>+  else</div><div class='add'>+    ABSOLUTE_PATH = /\A#{SEPARATOR_PAT}/o</div><div class='add'>+  end</div><div class='add'>+  private_constant :ABSOLUTE_PATH</div><div class='add'>+</div><div class='ctx'>   # :startdoc:</div><div class='ctx'> </div><div class='ctx'>   # chop_basename(path) -&gt; [pre-basename, basename] or nil</div><div class='hunk'>@@ -207,7 +214,7 @@ class Pathname</div><div class='ctx'>   # pathnames which points to roots such as &lt;tt&gt;/usr/..&lt;/tt&gt;.</div><div class='ctx'>   #</div><div class='ctx'>   def root?</div><div class='del'>-    !!(chop_basename(@path) == nil &amp;&amp; /#{SEPARATOR_PAT}/o.match?(@path))</div><div class='add'>+    chop_basename(@path) == nil &amp;&amp; /#{SEPARATOR_PAT}/o.match?(@path)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Predicate method for testing whether a path is absolute.</div><div class='hunk'>@@ -222,7 +229,7 @@ class Pathname</div><div class='ctx'>   #   p.absolute?</div><div class='ctx'>   #       #=&gt; false</div><div class='ctx'>   def absolute?</div><div class='del'>-    !relative?</div><div class='add'>+    ABSOLUTE_PATH.match? @path</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # The opposite of Pathname#absolute?</div><div class='hunk'>@@ -237,11 +244,7 @@ class Pathname</div><div class='ctx'>   #   p.relative?</div><div class='ctx'>   #       #=&gt; true</div><div class='ctx'>   def relative?</div><div class='del'>-    path = @path</div><div class='del'>-    while r = chop_basename(path)</div><div class='del'>-      path, = r</div><div class='del'>-    end</div><div class='del'>-    path == ''</div><div class='add'>+    !absolute?</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='hunk'>@@ -335,6 +338,8 @@ class Pathname</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='ctx'>   # Appends a pathname fragment to +self+ to produce a new Pathname object.</div><div class='add'>+  # Since +other+ is considered as a path relative to +self+, if +other+ is</div><div class='add'>+  # an absolute path, the new Pathname object is created from just +other+.</div><div class='ctx'>   #</div><div class='ctx'>   #   p1 = Pathname.new("/usr")      # Pathname:/usr</div><div class='ctx'>   #   p2 = p1 + "bin/ruby"           # Pathname:/usr/bin/ruby</div><div class='hunk'>@@ -396,6 +401,8 @@ class Pathname</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='ctx'>   # Joins the given pathnames onto +self+ to create a new Pathname object.</div><div class='add'>+  # This is effectively the same as using Pathname#+ to append +self+ and</div><div class='add'>+  # all arguments sequentially.</div><div class='ctx'>   #</div><div class='ctx'>   #   path0 = Pathname.new("/usr")                # Pathname:/usr</div><div class='ctx'>   #   path0 = path0.join("bin/ruby")              # Pathname:/usr/bin/ruby</div><div class='hunk'>@@ -502,6 +509,9 @@ class Pathname</div><div class='ctx'>   #</div><div class='ctx'>   # ArgumentError is raised when it cannot find a relative path.</div><div class='ctx'>   #</div><div class='add'>+  # Note that this method does not handle situations where the case sensitivity</div><div class='add'>+  # of the filesystem in use differs from the operating system default.</div><div class='add'>+  #</div><div class='ctx'>   def relative_path_from(base_directory)</div><div class='ctx'>     base_directory = Pathname.new(base_directory) unless base_directory.is_a? Pathname</div><div class='ctx'>     dest_directory = self.cleanpath.to_s</div><div class='hunk'>@@ -568,25 +578,26 @@ class Pathname    # * Find *</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> </div><div class='add'>+autoload(:FileUtils, 'fileutils')</div><div class='add'>+</div><div class='ctx'> class Pathname    # * FileUtils *</div><div class='ctx'>   # Creates a full path, including any intermediate directories that don't yet</div><div class='ctx'>   # exist.</div><div class='ctx'>   #</div><div class='ctx'>   # See FileUtils.mkpath and FileUtils.mkdir_p</div><div class='del'>-  def mkpath</div><div class='del'>-    require 'fileutils'</div><div class='del'>-    FileUtils.mkpath(@path)</div><div class='add'>+  def mkpath(mode: nil)</div><div class='add'>+    FileUtils.mkpath(@path, mode: mode)</div><div class='ctx'>     nil</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Recursively deletes a directory, including all directories beneath it.</div><div class='ctx'>   #</div><div class='del'>-  # See FileUtils.rm_r</div><div class='del'>-  def rmtree</div><div class='add'>+  # See FileUtils.rm_rf</div><div class='add'>+  def rmtree(noop: nil, verbose: nil, secure: nil)</div><div class='ctx'>     # The name "rmtree" is borrowed from File::Path of Perl.</div><div class='ctx'>     # File::Path provides "mkpath" and "rmtree".</div><div class='ctx'>     require 'fileutils'</div><div class='del'>-    FileUtils.rm_r(@path)</div><div class='add'>+    FileUtils.rm_rf(@path, noop: noop, verbose: verbose, secure: secure)</div><div class='ctx'>     nil</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/pathname/pathname.c b/ext/pathname/pathname.c<br/>index d5e58c52d8..8ee4bcec5b 100644<br/>--- a/<a href='/ruby.git/tree/ext/pathname/pathname.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pathname/pathname.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/pathname/pathname.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/pathname/pathname.c</a></div><div class='hunk'>@@ -35,6 +35,7 @@ static ID id_lchmod;</div><div class='ctx'> static ID id_lchown;</div><div class='ctx'> static ID id_link;</div><div class='ctx'> static ID id_lstat;</div><div class='add'>+static ID id_lutime;</div><div class='ctx'> static ID id_mkdir;</div><div class='ctx'> static ID id_mtime;</div><div class='ctx'> static ID id_open;</div><div class='hunk'>@@ -110,7 +111,6 @@ path_initialize(VALUE self, VALUE arg)</div><div class='ctx'>     str = rb_obj_dup(str);</div><div class='ctx'> </div><div class='ctx'>     set_strpath(self, str);</div><div class='del'>-    OBJ_INFECT(self, str);</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -134,15 +134,12 @@ path_freeze(VALUE self)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   pathname.taint -&gt; obj</div><div class='ctx'>  *</div><div class='del'>- * Taints this Pathname.</div><div class='del'>- *</div><div class='del'>- * See Object.taint.</div><div class='add'>+ * Returns pathname.  This method is deprecated and will be removed in Ruby 3.2.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> path_taint(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    rb_call_super(0, 0);</div><div class='del'>-    rb_obj_taint(get_strpath(self));</div><div class='add'>+    rb_warn("Pathname#taint is deprecated and will be removed in Ruby 3.2.");</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -150,15 +147,12 @@ path_taint(VALUE self)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   pathname.untaint -&gt; obj</div><div class='ctx'>  *</div><div class='del'>- * Untaints this Pathname.</div><div class='del'>- *</div><div class='del'>- * See Object.untaint.</div><div class='add'>+ * Returns pathname.  This method is deprecated and will be removed in Ruby 3.2.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> path_untaint(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    rb_call_super(0, 0);</div><div class='del'>-    rb_obj_untaint(get_strpath(self));</div><div class='add'>+    rb_warn("Pathname#untaint is deprecated and will be removed in Ruby 3.2.");</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -308,7 +302,6 @@ path_sub_ext(VALUE self, VALUE repl)</div><div class='ctx'>     }</div><div class='ctx'>     str2 = rb_str_subseq(str, 0, ext-p);</div><div class='ctx'>     rb_str_append(str2, repl);</div><div class='del'>-    OBJ_INFECT(str2, str);</div><div class='ctx'>     return rb_class_new_instance(1, &amp;str2, rb_obj_class(self));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -368,10 +361,10 @@ path_each_line(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     args[0] = get_strpath(self);</div><div class='ctx'>     n = rb_scan_args(argc, argv, "03", &amp;args[1], &amp;args[2], &amp;args[3]);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-        return rb_block_call(rb_cFile, id_foreach, 1+n, args, 0, 0);</div><div class='add'>+        return rb_block_call_kw(rb_cFile, id_foreach, 1+n, args, 0, 0, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        return rb_funcallv(rb_cFile, id_foreach, 1+n, args);</div><div class='add'>+        return rb_funcallv_kw(rb_cFile, id_foreach, 1+n, args, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -393,7 +386,7 @@ path_read(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     args[0] = get_strpath(self);</div><div class='ctx'>     n = rb_scan_args(argc, argv, "03", &amp;args[1], &amp;args[2], &amp;args[3]);</div><div class='del'>-    return rb_funcallv(rb_cFile, id_read, 1+n, args);</div><div class='add'>+    return rb_funcallv_kw(rb_cFile, id_read, 1+n, args, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -434,7 +427,7 @@ path_write(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     args[0] = get_strpath(self);</div><div class='ctx'>     n = rb_scan_args(argc, argv, "03", &amp;args[1], &amp;args[2], &amp;args[3]);</div><div class='del'>-    return rb_funcallv(rb_cFile, id_write, 1+n, args);</div><div class='add'>+    return rb_funcallv_kw(rb_cFile, id_write, 1+n, args, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -455,7 +448,7 @@ path_binwrite(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     args[0] = get_strpath(self);</div><div class='ctx'>     n = rb_scan_args(argc, argv, "03", &amp;args[1], &amp;args[2], &amp;args[3]);</div><div class='del'>-    return rb_funcallv(rb_cFile, id_binwrite, 1+n, args);</div><div class='add'>+    return rb_funcallv_kw(rb_cFile, id_binwrite, 1+n, args, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -477,7 +470,7 @@ path_readlines(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     args[0] = get_strpath(self);</div><div class='ctx'>     n = rb_scan_args(argc, argv, "03", &amp;args[1], &amp;args[2], &amp;args[3]);</div><div class='del'>-    return rb_funcallv(rb_cFile, id_readlines, 1+n, args);</div><div class='add'>+    return rb_funcallv_kw(rb_cFile, id_readlines, 1+n, args, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -512,7 +505,7 @@ path_atime(VALUE self)</div><div class='ctx'>     return rb_funcall(rb_cFile, id_atime, 1, get_strpath(self));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC) || defined(_WIN32)</div><div class='add'>+#if defined(HAVE_RB_FILE_S_BIRTHTIME)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   pathname.birthtime	-&gt; time</div><div class='hunk'>@@ -528,6 +521,7 @@ path_birthtime(VALUE self)</div><div class='ctx'>     return rb_funcall(rb_cFile, id_birthtime, 1, get_strpath(self));</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='add'>+/* check at compilation time for `respond_to?` */</div><div class='ctx'> # define path_birthtime rb_f_notimplement</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -561,7 +555,7 @@ path_mtime(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   pathname.chmod	-&gt; integer</div><div class='add'>+ *   pathname.chmod(mode_int)	-&gt; integer</div><div class='ctx'>  *</div><div class='ctx'>  * Changes file permissions.</div><div class='ctx'>  *</div><div class='hunk'>@@ -575,7 +569,7 @@ path_chmod(VALUE self, VALUE mode)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   pathname.lchmod	-&gt; integer</div><div class='add'>+ *   pathname.lchmod(mode_int)	-&gt; integer</div><div class='ctx'>  *</div><div class='ctx'>  * Same as Pathname.chmod, but does not follow symbolic links.</div><div class='ctx'>  *</div><div class='hunk'>@@ -589,7 +583,7 @@ path_lchmod(VALUE self, VALUE mode)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   pathname.chown	-&gt; integer</div><div class='add'>+ *   pathname.chown(owner_int, group_int)	-&gt; integer</div><div class='ctx'>  *</div><div class='ctx'>  * Change owner and group of the file.</div><div class='ctx'>  *</div><div class='hunk'>@@ -603,7 +597,7 @@ path_chown(VALUE self, VALUE owner, VALUE group)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   pathname.lchown	-&gt; integer</div><div class='add'>+ *   pathname.lchown(owner_int, group_int)	-&gt; integer</div><div class='ctx'>  *</div><div class='ctx'>  * Same as Pathname.chown, but does not follow symbolic links.</div><div class='ctx'>  *</div><div class='hunk'>@@ -617,8 +611,8 @@ path_lchown(VALUE self, VALUE owner, VALUE group)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    pathname.fnmatch(pattern, [flags])        -&gt; string</div><div class='del'>- *    pathname.fnmatch?(pattern, [flags])       -&gt; string</div><div class='add'>+ *    pathname.fnmatch(pattern, [flags])        -&gt; true or false</div><div class='add'>+ *    pathname.fnmatch?(pattern, [flags])       -&gt; true or false</div><div class='ctx'>  *</div><div class='ctx'>  * Return +true+ if the receiver matches the given pattern.</div><div class='ctx'>  *</div><div class='hunk'>@@ -664,6 +658,13 @@ path_make_link(VALUE self, VALUE old)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   pathname.open()</div><div class='add'>+ *   pathname.open(mode="r" [, opt])                        -&gt; file</div><div class='add'>+ *   pathname.open([mode [, perm]] [, opt])                 -&gt; file</div><div class='add'>+ *   pathname.open(mode="r" [, opt]) {|file| block }        -&gt; obj</div><div class='add'>+ *   pathname.open([mode [, perm]] [, opt]) {|file| block } -&gt; obj</div><div class='add'>+ *</div><div class='ctx'>  * Opens the file for reading or writing.</div><div class='ctx'>  *</div><div class='ctx'>  * See File.open.</div><div class='hunk'>@@ -677,10 +678,10 @@ path_open(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     args[0] = get_strpath(self);</div><div class='ctx'>     n = rb_scan_args(argc, argv, "03", &amp;args[1], &amp;args[2], &amp;args[3]);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-        return rb_block_call(rb_cFile, id_open, 1+n, args, 0, 0);</div><div class='add'>+        return rb_block_call_kw(rb_cFile, id_open, 1+n, args, 0, 0, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        return rb_funcallv(rb_cFile, id_open, 1+n, args);</div><div class='add'>+        return rb_funcallv_kw(rb_cFile, id_open, 1+n, args, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -765,6 +766,19 @@ path_utime(VALUE self, VALUE atime, VALUE mtime)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ * Update the access and modification times of the file.</div><div class='add'>+ *</div><div class='add'>+ * Same as Pathname#utime, but does not follow symbolic links.</div><div class='add'>+ *</div><div class='add'>+ * See File.lutime.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+path_lutime(VALUE self, VALUE atime, VALUE mtime)</div><div class='add'>+{</div><div class='add'>+    return rb_funcall(rb_cFile, id_lutime, 3, atime, mtime, get_strpath(self));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  * Returns the last component of the path.</div><div class='ctx'>  *</div><div class='ctx'>  * See File.basename.</div><div class='hunk'>@@ -834,7 +848,7 @@ path_split(VALUE self)</div><div class='ctx'>     VALUE str = get_strpath(self);</div><div class='ctx'>     VALUE ary, dirname, basename;</div><div class='ctx'>     ary = rb_funcall(rb_cFile, id_split, 1, str);</div><div class='del'>-    ary = rb_check_array_type(ary);</div><div class='add'>+    Check_Type(ary, T_ARRAY);</div><div class='ctx'>     dirname = rb_ary_entry(ary, 0);</div><div class='ctx'>     basename = rb_ary_entry(ary, 1);</div><div class='ctx'>     dirname = rb_class_new_instance(1, &amp;dirname, rb_obj_class(self));</div><div class='hunk'>@@ -1091,17 +1105,17 @@ s_glob_i(RB_BLOCK_CALL_FUNC_ARGLIST(elt, klass))</div><div class='ctx'> static VALUE</div><div class='ctx'> path_s_glob(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE args[2];</div><div class='add'>+    VALUE args[3];</div><div class='ctx'>     int n;</div><div class='ctx'> </div><div class='del'>-    n = rb_scan_args(argc, argv, "11", &amp;args[0], &amp;args[1]);</div><div class='add'>+    n = rb_scan_args(argc, argv, "12", &amp;args[0], &amp;args[1], &amp;args[2]);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-        return rb_block_call(rb_cDir, id_glob, n, args, s_glob_i, klass);</div><div class='add'>+        return rb_block_call_kw(rb_cDir, id_glob, n, args, s_glob_i, klass, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         VALUE ary;</div><div class='ctx'>         long i;</div><div class='del'>-        ary = rb_funcallv(rb_cDir, id_glob, n, args);</div><div class='add'>+        ary = rb_funcallv_kw(rb_cDir, id_glob, n, args, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'>         ary = rb_convert_type(ary, T_ARRAY, "Array", "to_ary");</div><div class='ctx'>         for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='ctx'>             VALUE elt = RARRAY_AREF(ary, i);</div><div class='hunk'>@@ -1144,12 +1158,12 @@ path_glob(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     n = 3;</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-        return rb_block_call(rb_cDir, id_glob, n, args, glob_i, self);</div><div class='add'>+        return rb_block_call_kw(rb_cDir, id_glob, n, args, glob_i, self, RB_PASS_KEYWORDS);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         VALUE ary;</div><div class='ctx'>         long i;</div><div class='del'>-        ary = rb_funcallv(rb_cDir, id_glob, n, args);</div><div class='add'>+        ary = rb_funcallv_kw(rb_cDir, id_glob, n, args, RB_PASS_KEYWORDS);</div><div class='ctx'>         ary = rb_convert_type(ary, T_ARRAY, "Array", "to_ary");</div><div class='ctx'>         for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='ctx'>             VALUE elt = RARRAY_AREF(ary, i);</div><div class='hunk'>@@ -1212,7 +1226,7 @@ path_entries(VALUE self)</div><div class='ctx'>     ary = rb_funcall(rb_cDir, id_entries, 1, str);</div><div class='ctx'>     ary = rb_convert_type(ary, T_ARRAY, "Array", "to_ary");</div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	VALUE elt = RARRAY_AREF(ary, i);</div><div class='add'>+        VALUE elt = RARRAY_AREF(ary, i);</div><div class='ctx'>         elt = rb_class_new_instance(1, &amp;elt, klass);</div><div class='ctx'>         rb_ary_store(ary, i, elt);</div><div class='ctx'>     }</div><div class='hunk'>@@ -1274,6 +1288,7 @@ static VALUE</div><div class='ctx'> path_each_entry(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     VALUE args[1];</div><div class='add'>+    RETURN_ENUMERATOR(self, 0, 0);</div><div class='ctx'> </div><div class='ctx'>     args[0] = get_strpath(self);</div><div class='ctx'>     return rb_block_call(rb_cDir, id_foreach, 1, args, each_entry_i, rb_obj_class(self));</div><div class='hunk'>@@ -1322,6 +1337,8 @@ path_unlink(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> path_f_pathname(VALUE self, VALUE str)</div><div class='ctx'> {</div><div class='add'>+    if (CLASS_OF(str) == rb_cPathname)</div><div class='add'>+        return str;</div><div class='ctx'>     return rb_class_new_instance(1, &amp;str, rb_cPathname);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1462,6 +1479,7 @@ path_f_pathname(VALUE self, VALUE str)</div><div class='ctx'>  * - #make_symlink(old)</div><div class='ctx'>  * - #truncate(length)</div><div class='ctx'>  * - #utime(atime, mtime)</div><div class='add'>+ * - #lutime(atime, mtime)</div><div class='ctx'>  * - #basename(*args)</div><div class='ctx'>  * - #dirname</div><div class='ctx'>  * - #extname</div><div class='hunk'>@@ -1487,6 +1505,8 @@ path_f_pathname(VALUE self, VALUE str)</div><div class='ctx'>  * - #binread(*args)</div><div class='ctx'>  * - #readlines(*args)</div><div class='ctx'>  * - #sysopen(*args)</div><div class='add'>+ * - #write(*args)</div><div class='add'>+ * - #binwrite(*args)</div><div class='ctx'>  *</div><div class='ctx'>  * === Utilities</div><div class='ctx'>  *</div><div class='hunk'>@@ -1508,6 +1528,10 @@ path_f_pathname(VALUE self, VALUE str)</div><div class='ctx'> void</div><div class='ctx'> Init_pathname(void)</div><div class='ctx'> {</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     InitVM(pathname);</div><div class='ctx'> </div><div class='ctx'>     rb_cPathname = rb_define_class("Pathname", rb_cObject);</div><div class='hunk'>@@ -1554,6 +1578,7 @@ Init_pathname(void)</div><div class='ctx'>     rb_define_method(rb_cPathname, "make_symlink", path_make_symlink, 1);</div><div class='ctx'>     rb_define_method(rb_cPathname, "truncate", path_truncate, 1);</div><div class='ctx'>     rb_define_method(rb_cPathname, "utime", path_utime, 2);</div><div class='add'>+    rb_define_method(rb_cPathname, "lutime", path_lutime, 2);</div><div class='ctx'>     rb_define_method(rb_cPathname, "basename", path_basename, -1);</div><div class='ctx'>     rb_define_method(rb_cPathname, "dirname", path_dirname, 0);</div><div class='ctx'>     rb_define_method(rb_cPathname, "extname", path_extname, 0);</div><div class='hunk'>@@ -1637,6 +1662,7 @@ InitVM_pathname(void)</div><div class='ctx'>     id_lchown = rb_intern("lchown");</div><div class='ctx'>     id_link = rb_intern("link");</div><div class='ctx'>     id_lstat = rb_intern("lstat");</div><div class='add'>+    id_lutime = rb_intern("lutime");</div><div class='ctx'>     id_mkdir = rb_intern("mkdir");</div><div class='ctx'>     id_mtime = rb_intern("mtime");</div><div class='ctx'>     id_open = rb_intern("open");</div><div class='head'>diff --git a/ext/pathname/pathname.gemspec b/ext/pathname/pathname.gemspec<br/>new file mode 100644<br/>index 0000000000..92bc02b0db<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/pathname/pathname.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/pathname/pathname.gemspec</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "pathname"</div><div class='add'>+  spec.version       = "0.2.1"</div><div class='add'>+  spec.authors       = ["Tanaka Akira"]</div><div class='add'>+  spec.email         = ["akr@fsij.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Representation of the name of a file or directory on the filesystem}</div><div class='add'>+  spec.description   = %q{Representation of the name of a file or directory on the filesystem}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/pathname"</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 2.7.0")</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  # Specify which files should be added to the gem when it is released.</div><div class='add'>+  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.bindir        = "exe"</div><div class='add'>+  spec.executables   = []</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+  spec.extensions    = %w[ext/pathname/extconf.rb]</div><div class='add'>+end</div><div class='head'>diff --git a/ext/psych/.gitignore b/ext/psych/.gitignore<br/>new file mode 100644<br/>index 0000000000..92946455b0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/psych/.gitignore?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/.gitignore</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+/yaml-[0-9]*.*.*</div><div class='head'>diff --git a/ext/psych/depend b/ext/psych/depend<br/>index c5ca1f6b13..78bde9a53d 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/depend</a></div><div class='hunk'>@@ -1,17 +1,189 @@</div><div class='add'>+$(TARGET_SO): $(LIBYAML)</div><div class='add'>+</div><div class='add'>+libyaml $(LIBYAML):</div><div class='add'>+	cd libyaml &amp;&amp; $(MAKE)</div><div class='add'>+	$(AR) $(ARFLAGS) $(LIBYAML) $(LIBYAML_OBJDIR)/*.$(OBJEXT)</div><div class='add'>+	$(RANLIB) $(LIBYAML)</div><div class='add'>+</div><div class='add'>+clean-so::</div><div class='add'>+	-cd libyaml &amp;&amp; $(MAKE) clean</div><div class='add'>+</div><div class='add'>+distclean-so::</div><div class='add'>+	-cd libyaml &amp;&amp; $(MAKE) distclean</div><div class='add'>+	-$(Q)$(RMDIRS) libyaml/* libyaml</div><div class='add'>+</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> psych.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> psych.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+psych.o: $(hdrdir)/ruby.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> psych.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> psych.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> psych.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> psych.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+psych.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> psych.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> psych.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> psych.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> psych.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> psych.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> psych.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-psych.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> psych.o: psych.c</div><div class='ctx'> psych.o: psych.h</div><div class='ctx'> psych.o: psych_emitter.h</div><div class='hunk'>@@ -20,17 +192,175 @@ psych.o: psych_to_ruby.h</div><div class='ctx'> psych.o: psych_yaml_tree.h</div><div class='ctx'> psych_emitter.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> psych_emitter.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> psych_emitter.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> psych_emitter.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> psych_emitter.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> psych_emitter.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+psych_emitter.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> psych_emitter.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> psych_emitter.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> psych_emitter.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> psych_emitter.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> psych_emitter.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> psych_emitter.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-psych_emitter.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> psych_emitter.o: psych.h</div><div class='ctx'> psych_emitter.o: psych_emitter.c</div><div class='ctx'> psych_emitter.o: psych_emitter.h</div><div class='hunk'>@@ -39,17 +369,175 @@ psych_emitter.o: psych_to_ruby.h</div><div class='ctx'> psych_emitter.o: psych_yaml_tree.h</div><div class='ctx'> psych_parser.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> psych_parser.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> psych_parser.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> psych_parser.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> psych_parser.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> psych_parser.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+psych_parser.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> psych_parser.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> psych_parser.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> psych_parser.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> psych_parser.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> psych_parser.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> psych_parser.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-psych_parser.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> psych_parser.o: psych.h</div><div class='ctx'> psych_parser.o: psych_emitter.h</div><div class='ctx'> psych_parser.o: psych_parser.c</div><div class='hunk'>@@ -58,17 +546,175 @@ psych_parser.o: psych_to_ruby.h</div><div class='ctx'> psych_parser.o: psych_yaml_tree.h</div><div class='ctx'> psych_to_ruby.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> psych_to_ruby.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> psych_to_ruby.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> psych_to_ruby.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> psych_to_ruby.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> psych_to_ruby.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+psych_to_ruby.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> psych_to_ruby.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> psych_to_ruby.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> psych_to_ruby.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> psych_to_ruby.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> psych_to_ruby.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> psych_to_ruby.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-psych_to_ruby.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> psych_to_ruby.o: psych.h</div><div class='ctx'> psych_to_ruby.o: psych_emitter.h</div><div class='ctx'> psych_to_ruby.o: psych_parser.h</div><div class='hunk'>@@ -77,17 +723,175 @@ psych_to_ruby.o: psych_to_ruby.h</div><div class='ctx'> psych_to_ruby.o: psych_yaml_tree.h</div><div class='ctx'> psych_yaml_tree.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> psych_yaml_tree.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> psych_yaml_tree.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> psych_yaml_tree.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> psych_yaml_tree.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> psych_yaml_tree.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+psych_yaml_tree.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> psych_yaml_tree.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> psych_yaml_tree.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> psych_yaml_tree.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> psych_yaml_tree.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> psych_yaml_tree.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> psych_yaml_tree.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-psych_yaml_tree.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> psych_yaml_tree.o: psych.h</div><div class='ctx'> psych_yaml_tree.o: psych_emitter.h</div><div class='ctx'> psych_yaml_tree.o: psych_parser.h</div><div class='head'>diff --git a/ext/psych/extconf.rb b/ext/psych/extconf.rb<br/>index 6d8390ebe5..41daf8c238 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/extconf.rb</a></div><div class='hunk'>@@ -1,39 +1,53 @@</div><div class='ctx'> # -*- coding: us-ascii -*-</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> require 'mkmf'</div><div class='del'>-require 'fileutils'</div><div class='ctx'> </div><div class='del'>-# :stopdoc:</div><div class='del'>-</div><div class='del'>-dir_config 'libyaml'</div><div class='del'>-</div><div class='del'>-if enable_config("bundled-libyaml", false) || !(find_header('yaml.h') &amp;&amp; find_library('yaml', 'yaml_get_version'))</div><div class='del'>-  # Embed libyaml since we could not find it.</div><div class='del'>-</div><div class='del'>-  $VPATH &lt;&lt; "$(srcdir)/yaml"</div><div class='del'>-  $INCFLAGS &lt;&lt; " -I$(srcdir)/yaml"</div><div class='del'>-</div><div class='del'>-  $srcs = Dir.glob("#{$srcdir}/{,yaml/}*.c").map {|n| File.basename(n)}</div><div class='add'>+if $mswin or $mingw or $cygwin</div><div class='add'>+  $CPPFLAGS &lt;&lt; " -DYAML_DECLARE_STATIC"</div><div class='add'>+end</div><div class='ctx'> </div><div class='del'>-  if have_macro("_WIN32")</div><div class='del'>-    $CPPFLAGS &lt;&lt; " -DYAML_DECLARE_STATIC -DHAVE_CONFIG_H"</div><div class='add'>+yaml_source = with_config("libyaml-source-dir")</div><div class='add'>+if yaml_source</div><div class='add'>+  yaml_source = yaml_source.gsub(/\$\((\w+)\)|\$\{(\w+)\}/) {ENV[$1||$2]}</div><div class='add'>+  yaml_source = yaml_source.chomp("/")</div><div class='add'>+  yaml_configure = "#{File.expand_path(yaml_source)}/configure"</div><div class='add'>+  unless File.exist?(yaml_configure)</div><div class='add'>+    raise "Configure script not found in #{yaml_source.quote}"</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  have_header 'dlfcn.h'</div><div class='del'>-  have_header 'inttypes.h'</div><div class='del'>-  have_header 'memory.h'</div><div class='del'>-  have_header 'stdint.h'</div><div class='del'>-  have_header 'stdlib.h'</div><div class='del'>-  have_header 'strings.h'</div><div class='del'>-  have_header 'string.h'</div><div class='del'>-  have_header 'sys/stat.h'</div><div class='del'>-  have_header 'sys/types.h'</div><div class='del'>-  have_header 'unistd.h'</div><div class='del'>-</div><div class='del'>-  find_header 'yaml.h'</div><div class='del'>-  have_header 'config.h'</div><div class='add'>+  puts("Configuring libyaml source in #{yaml_source.quote}")</div><div class='add'>+  yaml = "libyaml"</div><div class='add'>+  Dir.mkdir(yaml) unless File.directory?(yaml)</div><div class='add'>+  shared = $enable_shared || !$static</div><div class='add'>+  args = [</div><div class='add'>+    yaml_configure,</div><div class='add'>+    "--enable-#{shared ? 'shared' : 'static'}",</div><div class='add'>+    "--host=#{RbConfig::CONFIG['host'].sub(/-unknown-/, '-')}",</div><div class='add'>+    "CC=#{RbConfig::CONFIG['CC']}",</div><div class='add'>+    *(["CFLAGS=-w"] if RbConfig::CONFIG["GCC"] == "yes"),</div><div class='add'>+  ]</div><div class='add'>+  puts(args.quote.join(' '))</div><div class='add'>+  unless system(*args, chdir: yaml)</div><div class='add'>+    raise "failed to configure libyaml"</div><div class='add'>+  end</div><div class='add'>+  inc = yaml_source.start_with?("#$srcdir/") ? "$(srcdir)#{yaml_source[$srcdir.size..-1]}" : yaml_source</div><div class='add'>+  $INCFLAGS &lt;&lt; " -I#{yaml}/include -I#{inc}/include"</div><div class='add'>+  puts("INCFLAGS=#$INCFLAGS")</div><div class='add'>+  libyaml = "libyaml.#$LIBEXT"</div><div class='add'>+  $cleanfiles &lt;&lt; libyaml</div><div class='add'>+  $LOCAL_LIBS.prepend("$(LIBYAML) ")</div><div class='add'>+else # default to pre-installed libyaml</div><div class='add'>+  pkg_config('yaml-0.1')</div><div class='add'>+  dir_config('libyaml')</div><div class='add'>+  find_header('yaml.h') or abort "yaml.h not found"</div><div class='add'>+  find_library('yaml', 'yaml_get_version') or abort "libyaml not found"</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-create_makefile 'psych'</div><div class='add'>+create_makefile 'psych' do |mk|</div><div class='add'>+  mk &lt;&lt; "LIBYAML = #{libyaml}".strip &lt;&lt; "\n"</div><div class='add'>+  mk &lt;&lt; "LIBYAML_OBJDIR = libyaml/src#{shared ? '/.libs' : ''}\n"</div><div class='add'>+  mk &lt;&lt; "OBJEXT = #$OBJEXT"</div><div class='add'>+  mk &lt;&lt; "RANLIB = #{config_string('RANLIB') || config_string('NULLCMD')}\n"</div><div class='add'>+end</div><div class='ctx'> </div><div class='ctx'> # :startdoc:</div><div class='head'>diff --git a/ext/psych/lib/psych.rb b/ext/psych/lib/psych.rb<br/>index 2a2ec2af43..4a2ab58514 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych.rb</a></div><div class='hunk'>@@ -1,8 +1,8 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/versions'</div><div class='add'>+require_relative 'psych/versions'</div><div class='ctx'> case RUBY_ENGINE</div><div class='ctx'> when 'jruby'</div><div class='del'>-  require 'psych_jars'</div><div class='add'>+  require_relative 'psych_jars'</div><div class='ctx'>   if JRuby::Util.respond_to?(:load_ext)</div><div class='ctx'>     JRuby::Util.load_ext('org.jruby.ext.psych.PsychLibrary')</div><div class='ctx'>   else</div><div class='hunk'>@@ -10,34 +10,30 @@ when 'jruby'</div><div class='ctx'>     org.jruby.ext.psych.PsychLibrary.new.load(JRuby.runtime, false)</div><div class='ctx'>   end</div><div class='ctx'> else</div><div class='del'>-  begin</div><div class='del'>-    require "#{RUBY_VERSION[/\d+\.\d+/]}/psych.so"</div><div class='del'>-  rescue LoadError</div><div class='del'>-    require 'psych.so'</div><div class='del'>-  end</div><div class='add'>+  require 'psych.so'</div><div class='ctx'> end</div><div class='del'>-require 'psych/nodes'</div><div class='del'>-require 'psych/streaming'</div><div class='del'>-require 'psych/visitors'</div><div class='del'>-require 'psych/handler'</div><div class='del'>-require 'psych/tree_builder'</div><div class='del'>-require 'psych/parser'</div><div class='del'>-require 'psych/omap'</div><div class='del'>-require 'psych/set'</div><div class='del'>-require 'psych/coder'</div><div class='del'>-require 'psych/core_ext'</div><div class='del'>-require 'psych/stream'</div><div class='del'>-require 'psych/json/tree_builder'</div><div class='del'>-require 'psych/json/stream'</div><div class='del'>-require 'psych/handlers/document_stream'</div><div class='del'>-require 'psych/class_loader'</div><div class='add'>+require_relative 'psych/nodes'</div><div class='add'>+require_relative 'psych/streaming'</div><div class='add'>+require_relative 'psych/visitors'</div><div class='add'>+require_relative 'psych/handler'</div><div class='add'>+require_relative 'psych/tree_builder'</div><div class='add'>+require_relative 'psych/parser'</div><div class='add'>+require_relative 'psych/omap'</div><div class='add'>+require_relative 'psych/set'</div><div class='add'>+require_relative 'psych/coder'</div><div class='add'>+require_relative 'psych/core_ext'</div><div class='add'>+require_relative 'psych/stream'</div><div class='add'>+require_relative 'psych/json/tree_builder'</div><div class='add'>+require_relative 'psych/json/stream'</div><div class='add'>+require_relative 'psych/handlers/document_stream'</div><div class='add'>+require_relative 'psych/class_loader'</div><div class='ctx'> </div><div class='ctx'> ###</div><div class='ctx'> # = Overview</div><div class='ctx'> #</div><div class='ctx'> # Psych is a YAML parser and emitter.</div><div class='ctx'> # Psych leverages libyaml [Home page: https://pyyaml.org/wiki/LibYAML]</div><div class='del'>-# or [HG repo: https://bitbucket.org/xi/libyaml] for its YAML parsing</div><div class='add'>+# or [git repo: https://github.com/yaml/libyaml] for its YAML parsing</div><div class='ctx'> # and emitting capabilities. In addition to wrapping libyaml, Psych also</div><div class='ctx'> # knows how to serialize and de-serialize most Ruby objects to and from</div><div class='ctx'> # the YAML format.</div><div class='hunk'>@@ -78,12 +74,15 @@ require 'psych/class_loader'</div><div class='ctx'> #</div><div class='ctx'> # ==== Reading from a string</div><div class='ctx'> #</div><div class='del'>-#   Psych.load("--- a")             # =&gt; 'a'</div><div class='del'>-#   Psych.load("---\n - a\n - b")   # =&gt; ['a', 'b']</div><div class='add'>+#   Psych.safe_load("--- a")             # =&gt; 'a'</div><div class='add'>+#   Psych.safe_load("---\n - a\n - b")   # =&gt; ['a', 'b']</div><div class='add'>+#   # From a trusted string:</div><div class='add'>+#   Psych.load("--- !ruby/range\nbegin: 0\nend: 42\nexcl: false\n") # =&gt; 0..42</div><div class='ctx'> #</div><div class='ctx'> # ==== Reading from a file</div><div class='ctx'> #</div><div class='del'>-#   Psych.load_file("database.yml")</div><div class='add'>+#   Psych.safe_load_file("data.yml", permitted_classes: [Date])</div><div class='add'>+#   Psych.load_file("trusted_database.yml")</div><div class='ctx'> #</div><div class='ctx'> # ==== Exception handling</div><div class='ctx'> #</div><div class='hunk'>@@ -234,10 +233,7 @@ require 'psych/class_loader'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   # The version of libyaml Psych is using</div><div class='del'>-  LIBYAML_VERSION = Psych.libyaml_version.join '.'</div><div class='del'>-  # Deprecation guard</div><div class='del'>-  NOT_GIVEN = Object.new</div><div class='del'>-  private_constant :NOT_GIVEN</div><div class='add'>+  LIBYAML_VERSION = Psych.libyaml_version.join('.').freeze</div><div class='ctx'> </div><div class='ctx'>   ###</div><div class='ctx'>   # Load +yaml+ in to a Ruby data structure.  If multiple documents are</div><div class='hunk'>@@ -250,11 +246,11 @@ module Psych</div><div class='ctx'>   #</div><div class='ctx'>   # Example:</div><div class='ctx'>   #</div><div class='del'>-  #   Psych.load("--- a")             # =&gt; 'a'</div><div class='del'>-  #   Psych.load("---\n - a\n - b")   # =&gt; ['a', 'b']</div><div class='add'>+  #   Psych.unsafe_load("--- a")             # =&gt; 'a'</div><div class='add'>+  #   Psych.unsafe_load("---\n - a\n - b")   # =&gt; ['a', 'b']</div><div class='ctx'>   #</div><div class='ctx'>   #   begin</div><div class='del'>-  #     Psych.load("--- `", filename: "file.txt")</div><div class='add'>+  #     Psych.unsafe_load("--- `", filename: "file.txt")</div><div class='ctx'>   #   rescue Psych::SyntaxError =&gt; ex</div><div class='ctx'>   #     ex.file    # =&gt; 'file.txt'</div><div class='ctx'>   #     ex.message # =&gt; "(file.txt): found character that cannot start any token"</div><div class='hunk'>@@ -263,22 +259,19 @@ module Psych</div><div class='ctx'>   # When the optional +symbolize_names+ keyword argument is set to a</div><div class='ctx'>   # true value, returns symbols for keys in Hash objects (default: strings).</div><div class='ctx'>   #</div><div class='del'>-  #   Psych.load("---\n foo: bar")                         # =&gt; {"foo"=&gt;"bar"}</div><div class='del'>-  #   Psych.load("---\n foo: bar", symbolize_names: true)  # =&gt; {:foo=&gt;"bar"}</div><div class='add'>+  #   Psych.unsafe_load("---\n foo: bar")                         # =&gt; {"foo"=&gt;"bar"}</div><div class='add'>+  #   Psych.unsafe_load("---\n foo: bar", symbolize_names: true)  # =&gt; {:foo=&gt;"bar"}</div><div class='ctx'>   #</div><div class='ctx'>   # Raises a TypeError when `yaml` parameter is NilClass</div><div class='ctx'>   #</div><div class='del'>-  def self.load yaml, legacy_filename = NOT_GIVEN, filename: nil, fallback: false, symbolize_names: false</div><div class='del'>-    if legacy_filename != NOT_GIVEN</div><div class='del'>-      warn_with_uplevel 'Passing filename with the 2nd argument of Psych.load is deprecated. Use keyword argument like Psych.load(yaml, filename: ...) instead.', uplevel: 1 if $VERBOSE</div><div class='del'>-      filename = legacy_filename</div><div class='del'>-    end</div><div class='del'>-</div><div class='add'>+  # NOTE: This method *should not* be used to parse untrusted documents, such as</div><div class='add'>+  # YAML documents that are supplied via user input.  Instead, please use the</div><div class='add'>+  # load method or the safe_load method.</div><div class='add'>+  #</div><div class='add'>+  def self.unsafe_load yaml, filename: nil, fallback: false, symbolize_names: false, freeze: false, strict_integer: false</div><div class='ctx'>     result = parse(yaml, filename: filename)</div><div class='ctx'>     return fallback unless result</div><div class='del'>-    result = result.to_ruby if result</div><div class='del'>-    symbolize_names!(result) if symbolize_names</div><div class='del'>-    result</div><div class='add'>+    result.to_ruby(symbolize_names: symbolize_names, freeze: freeze, strict_integer: strict_integer)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ###</div><div class='hunk'>@@ -288,7 +281,8 @@ module Psych</div><div class='ctx'>   # * TrueClass</div><div class='ctx'>   # * FalseClass</div><div class='ctx'>   # * NilClass</div><div class='del'>-  # * Numeric</div><div class='add'>+  # * Integer</div><div class='add'>+  # * Float</div><div class='ctx'>   # * String</div><div class='ctx'>   # * Array</div><div class='ctx'>   # * Hash</div><div class='hunk'>@@ -313,7 +307,7 @@ module Psych</div><div class='ctx'>   # A Psych::DisallowedClass exception will be raised if the yaml contains a</div><div class='ctx'>   # class that isn't in the +permitted_classes+ list.</div><div class='ctx'>   #</div><div class='del'>-  # A Psych::BadAlias exception will be raised if the yaml contains aliases</div><div class='add'>+  # A Psych::AliasesNotEnabled exception will be raised if the yaml contains aliases</div><div class='ctx'>   # but the +aliases+ keyword argument is set to false.</div><div class='ctx'>   #</div><div class='ctx'>   # +filename+ will be used in the exception message if any exception is raised</div><div class='hunk'>@@ -325,44 +319,64 @@ module Psych</div><div class='ctx'>   #   Psych.safe_load("---\n foo: bar")                         # =&gt; {"foo"=&gt;"bar"}</div><div class='ctx'>   #   Psych.safe_load("---\n foo: bar", symbolize_names: true)  # =&gt; {:foo=&gt;"bar"}</div><div class='ctx'>   #</div><div class='del'>-  def self.safe_load yaml, legacy_permitted_classes = NOT_GIVEN, legacy_permitted_symbols = NOT_GIVEN, legacy_aliases = NOT_GIVEN, legacy_filename = NOT_GIVEN, permitted_classes: [], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false</div><div class='del'>-    if legacy_permitted_classes != NOT_GIVEN</div><div class='del'>-      warn_with_uplevel 'Passing permitted_classes with the 2nd argument of Psych.safe_load is deprecated. Use keyword argument like Psych.safe_load(yaml, permitted_classes: ...) instead.', uplevel: 1 if $VERBOSE</div><div class='del'>-      permitted_classes = legacy_permitted_classes</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    if legacy_permitted_symbols != NOT_GIVEN</div><div class='del'>-      warn_with_uplevel 'Passing permitted_symbols with the 3rd argument of Psych.safe_load is deprecated. Use keyword argument like Psych.safe_load(yaml, permitted_symbols: ...) instead.', uplevel: 1 if $VERBOSE</div><div class='del'>-      permitted_symbols = legacy_permitted_symbols</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    if legacy_aliases != NOT_GIVEN</div><div class='del'>-      warn_with_uplevel 'Passing aliases with the 4th argument of Psych.safe_load is deprecated. Use keyword argument like Psych.safe_load(yaml, aliases: ...) instead.', uplevel: 1 if $VERBOSE</div><div class='del'>-      aliases = legacy_aliases</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    if legacy_filename != NOT_GIVEN</div><div class='del'>-      warn_with_uplevel 'Passing filename with the 5th argument of Psych.safe_load is deprecated. Use keyword argument like Psych.safe_load(yaml, filename: ...) instead.', uplevel: 1 if $VERBOSE</div><div class='del'>-      filename = legacy_filename</div><div class='del'>-    end</div><div class='del'>-</div><div class='add'>+  def self.safe_load yaml, permitted_classes: [], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false, strict_integer: false</div><div class='ctx'>     result = parse(yaml, filename: filename)</div><div class='ctx'>     return fallback unless result</div><div class='ctx'> </div><div class='ctx'>     class_loader = ClassLoader::Restricted.new(permitted_classes.map(&amp;:to_s),</div><div class='ctx'>                                                permitted_symbols.map(&amp;:to_s))</div><div class='del'>-    scanner      = ScalarScanner.new class_loader</div><div class='add'>+    scanner      = ScalarScanner.new class_loader, strict_integer: strict_integer</div><div class='ctx'>     visitor = if aliases</div><div class='del'>-                Visitors::ToRuby.new scanner, class_loader</div><div class='add'>+                Visitors::ToRuby.new scanner, class_loader, symbolize_names: symbolize_names, freeze: freeze</div><div class='ctx'>               else</div><div class='del'>-                Visitors::NoAliasRuby.new scanner, class_loader</div><div class='add'>+                Visitors::NoAliasRuby.new scanner, class_loader, symbolize_names: symbolize_names, freeze: freeze</div><div class='ctx'>               end</div><div class='ctx'>     result = visitor.accept result</div><div class='del'>-    symbolize_names!(result) if symbolize_names</div><div class='ctx'>     result</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ###</div><div class='add'>+  # Load +yaml+ in to a Ruby data structure.  If multiple documents are</div><div class='add'>+  # provided, the object contained in the first document will be returned.</div><div class='add'>+  # +filename+ will be used in the exception message if any exception</div><div class='add'>+  # is raised while parsing.  If +yaml+ is empty, it returns</div><div class='add'>+  # the specified +fallback+ return value, which defaults to +false+.</div><div class='add'>+  #</div><div class='add'>+  # Raises a Psych::SyntaxError when a YAML syntax error is detected.</div><div class='add'>+  #</div><div class='add'>+  # Example:</div><div class='add'>+  #</div><div class='add'>+  #   Psych.load("--- a")             # =&gt; 'a'</div><div class='add'>+  #   Psych.load("---\n - a\n - b")   # =&gt; ['a', 'b']</div><div class='add'>+  #</div><div class='add'>+  #   begin</div><div class='add'>+  #     Psych.load("--- `", filename: "file.txt")</div><div class='add'>+  #   rescue Psych::SyntaxError =&gt; ex</div><div class='add'>+  #     ex.file    # =&gt; 'file.txt'</div><div class='add'>+  #     ex.message # =&gt; "(file.txt): found character that cannot start any token"</div><div class='add'>+  #   end</div><div class='add'>+  #</div><div class='add'>+  # When the optional +symbolize_names+ keyword argument is set to a</div><div class='add'>+  # true value, returns symbols for keys in Hash objects (default: strings).</div><div class='add'>+  #</div><div class='add'>+  #   Psych.load("---\n foo: bar")                         # =&gt; {"foo"=&gt;"bar"}</div><div class='add'>+  #   Psych.load("---\n foo: bar", symbolize_names: true)  # =&gt; {:foo=&gt;"bar"}</div><div class='add'>+  #</div><div class='add'>+  # Raises a TypeError when `yaml` parameter is NilClass.  This method is</div><div class='add'>+  # similar to `safe_load` except that `Symbol` objects are allowed by default.</div><div class='add'>+  #</div><div class='add'>+  def self.load yaml, permitted_classes: [Symbol], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false, strict_integer: false</div><div class='add'>+    safe_load yaml, permitted_classes: permitted_classes,</div><div class='add'>+                    permitted_symbols: permitted_symbols,</div><div class='add'>+                    aliases: aliases,</div><div class='add'>+                    filename: filename,</div><div class='add'>+                    fallback: fallback,</div><div class='add'>+                    symbolize_names: symbolize_names,</div><div class='add'>+                    freeze: freeze,</div><div class='add'>+                    strict_integer: strict_integer</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ###</div><div class='ctx'>   # Parse a YAML string in +yaml+.  Returns the Psych::Nodes::Document.</div><div class='ctx'>   # +filename+ is used in the exception message if a Psych::SyntaxError is</div><div class='ctx'>   # raised.</div><div class='hunk'>@@ -381,22 +395,12 @@ module Psych</div><div class='ctx'>   #   end</div><div class='ctx'>   #</div><div class='ctx'>   # See Psych::Nodes for more information about YAML AST.</div><div class='del'>-  def self.parse yaml, legacy_filename = NOT_GIVEN, filename: nil, fallback: NOT_GIVEN</div><div class='del'>-    if legacy_filename != NOT_GIVEN</div><div class='del'>-      warn_with_uplevel 'Passing filename with the 2nd argument of Psych.parse is deprecated. Use keyword argument like Psych.parse(yaml, filename: ...) instead.', uplevel: 1 if $VERBOSE</div><div class='del'>-      filename = legacy_filename</div><div class='del'>-    end</div><div class='del'>-</div><div class='add'>+  def self.parse yaml, filename: nil</div><div class='ctx'>     parse_stream(yaml, filename: filename) do |node|</div><div class='ctx'>       return node</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    if fallback != NOT_GIVEN</div><div class='del'>-      warn_with_uplevel 'Passing the `fallback` keyword argument of Psych.parse is deprecated.', uplevel: 1 if $VERBOSE</div><div class='del'>-      fallback</div><div class='del'>-    else</div><div class='del'>-      false</div><div class='del'>-    end</div><div class='add'>+    false</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ###</div><div class='hunk'>@@ -445,12 +449,7 @@ module Psych</div><div class='ctx'>   # Raises a TypeError when NilClass is passed.</div><div class='ctx'>   #</div><div class='ctx'>   # See Psych::Nodes for more information about YAML AST.</div><div class='del'>-  def self.parse_stream yaml, legacy_filename = NOT_GIVEN, filename: nil, &amp;block</div><div class='del'>-    if legacy_filename != NOT_GIVEN</div><div class='del'>-      warn_with_uplevel 'Passing filename with the 2nd argument of Psych.parse_stream is deprecated. Use keyword argument like Psych.parse_stream(yaml, filename: ...) instead.', uplevel: 1 if $VERBOSE</div><div class='del'>-      filename = legacy_filename</div><div class='del'>-    end</div><div class='del'>-</div><div class='add'>+  def self.parse_stream yaml, filename: nil, &amp;block</div><div class='ctx'>     if block_given?</div><div class='ctx'>       parser = Psych::Parser.new(Handlers::DocumentStream.new(&amp;block))</div><div class='ctx'>       parser.parse yaml, filename</div><div class='hunk'>@@ -515,6 +514,79 @@ module Psych</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ###</div><div class='add'>+  # call-seq:</div><div class='add'>+  #   Psych.safe_dump(o)               -&gt; string of yaml</div><div class='add'>+  #   Psych.safe_dump(o, options)      -&gt; string of yaml</div><div class='add'>+  #   Psych.safe_dump(o, io)           -&gt; io object passed in</div><div class='add'>+  #   Psych.safe_dump(o, io, options)  -&gt; io object passed in</div><div class='add'>+  #</div><div class='add'>+  # Safely dump Ruby object +o+ to a YAML string. Optional +options+ may be passed in</div><div class='add'>+  # to control the output format.  If an IO object is passed in, the YAML will</div><div class='add'>+  # be dumped to that IO object. By default, only the following</div><div class='add'>+  # classes are allowed to be serialized:</div><div class='add'>+  #</div><div class='add'>+  # * TrueClass</div><div class='add'>+  # * FalseClass</div><div class='add'>+  # * NilClass</div><div class='add'>+  # * Integer</div><div class='add'>+  # * Float</div><div class='add'>+  # * String</div><div class='add'>+  # * Array</div><div class='add'>+  # * Hash</div><div class='add'>+  #</div><div class='add'>+  # Arbitrary classes can be allowed by adding those classes to the +permitted_classes+</div><div class='add'>+  # keyword argument.  They are additive.  For example, to allow Date serialization:</div><div class='add'>+  #</div><div class='add'>+  #   Psych.safe_dump(yaml, permitted_classes: [Date])</div><div class='add'>+  #</div><div class='add'>+  # Now the Date class can be dumped in addition to the classes listed above.</div><div class='add'>+  #</div><div class='add'>+  # A Psych::DisallowedClass exception will be raised if the object contains a</div><div class='add'>+  # class that isn't in the +permitted_classes+ list.</div><div class='add'>+  #</div><div class='add'>+  # Currently supported options are:</div><div class='add'>+  #</div><div class='add'>+  # [&lt;tt&gt;:indentation&lt;/tt&gt;]   Number of space characters used to indent.</div><div class='add'>+  #                           Acceptable value should be in &lt;tt&gt;0..9&lt;/tt&gt; range,</div><div class='add'>+  #                           otherwise option is ignored.</div><div class='add'>+  #</div><div class='add'>+  #                           Default: &lt;tt&gt;2&lt;/tt&gt;.</div><div class='add'>+  # [&lt;tt&gt;:line_width&lt;/tt&gt;]    Max character to wrap line at.</div><div class='add'>+  #</div><div class='add'>+  #                           Default: &lt;tt&gt;0&lt;/tt&gt; (meaning "wrap at 81").</div><div class='add'>+  # [&lt;tt&gt;:canonical&lt;/tt&gt;]     Write "canonical" YAML form (very verbose, yet</div><div class='add'>+  #                           strictly formal).</div><div class='add'>+  #</div><div class='add'>+  #                           Default: &lt;tt&gt;false&lt;/tt&gt;.</div><div class='add'>+  # [&lt;tt&gt;:header&lt;/tt&gt;]        Write &lt;tt&gt;%YAML [version]&lt;/tt&gt; at the beginning of document.</div><div class='add'>+  #</div><div class='add'>+  #                           Default: &lt;tt&gt;false&lt;/tt&gt;.</div><div class='add'>+  #</div><div class='add'>+  # Example:</div><div class='add'>+  #</div><div class='add'>+  #   # Dump an array, get back a YAML string</div><div class='add'>+  #   Psych.safe_dump(['a', 'b'])  # =&gt; "---\n- a\n- b\n"</div><div class='add'>+  #</div><div class='add'>+  #   # Dump an array to an IO object</div><div class='add'>+  #   Psych.safe_dump(['a', 'b'], StringIO.new)  # =&gt; #&lt;StringIO:0x000001009d0890&gt;</div><div class='add'>+  #</div><div class='add'>+  #   # Dump an array with indentation set</div><div class='add'>+  #   Psych.safe_dump(['a', ['b']], indentation: 3) # =&gt; "---\n- a\n-  - b\n"</div><div class='add'>+  #</div><div class='add'>+  #   # Dump an array to an IO with indentation set</div><div class='add'>+  #   Psych.safe_dump(['a', ['b']], StringIO.new, indentation: 3)</div><div class='add'>+  def self.safe_dump o, io = nil, options = {}</div><div class='add'>+    if Hash === io</div><div class='add'>+      options = io</div><div class='add'>+      io      = nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    visitor = Psych::Visitors::RestrictedYAMLTree.create options</div><div class='add'>+    visitor &lt;&lt; o</div><div class='add'>+    visitor.tree.yaml io, options</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ###</div><div class='ctx'>   # Dump a list of objects as separate documents to a document stream.</div><div class='ctx'>   #</div><div class='ctx'>   # Example:</div><div class='hunk'>@@ -551,18 +623,13 @@ module Psych</div><div class='ctx'>   #   end</div><div class='ctx'>   #   list # =&gt; ['foo', 'bar']</div><div class='ctx'>   #</div><div class='del'>-  def self.load_stream yaml, legacy_filename = NOT_GIVEN, filename: nil, fallback: []</div><div class='del'>-    if legacy_filename != NOT_GIVEN</div><div class='del'>-      warn_with_uplevel 'Passing filename with the 2nd argument of Psych.load_stream is deprecated. Use keyword argument like Psych.load_stream(yaml, filename: ...) instead.', uplevel: 1 if $VERBOSE</div><div class='del'>-      filename = legacy_filename</div><div class='del'>-    end</div><div class='del'>-</div><div class='add'>+  def self.load_stream yaml, filename: nil, fallback: [], **kwargs</div><div class='ctx'>     result = if block_given?</div><div class='ctx'>                parse_stream(yaml, filename: filename) do |node|</div><div class='del'>-                 yield node.to_ruby</div><div class='add'>+                 yield node.to_ruby(**kwargs)</div><div class='ctx'>                end</div><div class='ctx'>              else</div><div class='del'>-               parse_stream(yaml, filename: filename).children.map(&amp;:to_ruby)</div><div class='add'>+               parse_stream(yaml, filename: filename).children.map { |node| node.to_ruby(**kwargs) }</div><div class='ctx'>              end</div><div class='ctx'> </div><div class='ctx'>     return fallback if result.is_a?(Array) &amp;&amp; result.empty?</div><div class='hunk'>@@ -573,49 +640,59 @@ module Psych</div><div class='ctx'>   # Load the document contained in +filename+.  Returns the yaml contained in</div><div class='ctx'>   # +filename+ as a Ruby object, or if the file is empty, it returns</div><div class='ctx'>   # the specified +fallback+ return value, which defaults to +false+.</div><div class='del'>-  def self.load_file filename, fallback: false</div><div class='add'>+  #</div><div class='add'>+  # NOTE: This method *should not* be used to parse untrusted documents, such as</div><div class='add'>+  # YAML documents that are supplied via user input.  Instead, please use the</div><div class='add'>+  # safe_load_file method.</div><div class='add'>+  def self.unsafe_load_file filename, **kwargs</div><div class='ctx'>     File.open(filename, 'r:bom|utf-8') { |f|</div><div class='del'>-      self.load f, filename: filename, fallback: fallback</div><div class='add'>+      self.unsafe_load f, filename: filename, **kwargs</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ###</div><div class='add'>+  # Safely loads the document contained in +filename+.  Returns the yaml contained in</div><div class='add'>+  # +filename+ as a Ruby object, or if the file is empty, it returns</div><div class='add'>+  # the specified +fallback+ return value, which defaults to +false+.</div><div class='add'>+  # See safe_load for options.</div><div class='add'>+  def self.safe_load_file filename, **kwargs</div><div class='add'>+    File.open(filename, 'r:bom|utf-8') { |f|</div><div class='add'>+      self.safe_load f, filename: filename, **kwargs</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ###</div><div class='add'>+  # Loads the document contained in +filename+.  Returns the yaml contained in</div><div class='add'>+  # +filename+ as a Ruby object, or if the file is empty, it returns</div><div class='add'>+  # the specified +fallback+ return value, which defaults to +false+.</div><div class='add'>+  # See load for options.</div><div class='add'>+  def self.load_file filename, **kwargs</div><div class='add'>+    File.open(filename, 'r:bom|utf-8') { |f|</div><div class='add'>+      self.load f, filename: filename, **kwargs</div><div class='ctx'>     }</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # :stopdoc:</div><div class='del'>-  @domain_types = {}</div><div class='ctx'>   def self.add_domain_type domain, type_tag, &amp;block</div><div class='ctx'>     key = ['tag', domain, type_tag].join ':'</div><div class='del'>-    @domain_types[key] = [key, block]</div><div class='del'>-    @domain_types["tag:#{type_tag}"] = [key, block]</div><div class='add'>+    domain_types[key] = [key, block]</div><div class='add'>+    domain_types["tag:#{type_tag}"] = [key, block]</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def self.add_builtin_type type_tag, &amp;block</div><div class='ctx'>     domain = 'yaml.org,2002'</div><div class='ctx'>     key = ['tag', domain, type_tag].join ':'</div><div class='del'>-    @domain_types[key] = [key, block]</div><div class='add'>+    domain_types[key] = [key, block]</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def self.remove_type type_tag</div><div class='del'>-    @domain_types.delete type_tag</div><div class='add'>+    domain_types.delete type_tag</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  @load_tags = {}</div><div class='del'>-  @dump_tags = {}</div><div class='ctx'>   def self.add_tag tag, klass</div><div class='del'>-    @load_tags[tag] = klass.name</div><div class='del'>-    @dump_tags[klass] = tag</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def self.symbolize_names!(result)</div><div class='del'>-    case result</div><div class='del'>-    when Hash</div><div class='del'>-      result.keys.each do |key|</div><div class='del'>-        result[key.to_sym] = symbolize_names!(result.delete(key))</div><div class='del'>-      end</div><div class='del'>-    when Array</div><div class='del'>-      result.map! { |r| symbolize_names!(r) }</div><div class='del'>-    end</div><div class='del'>-    result</div><div class='add'>+    load_tags[tag] = klass.name</div><div class='add'>+    dump_tags[klass] = tag</div><div class='ctx'>   end</div><div class='del'>-  private_class_method :symbolize_names!</div><div class='ctx'> </div><div class='ctx'>   # Workaround for emulating `warn '...', uplevel: 1` in Ruby 2.4 or lower.</div><div class='ctx'>   def self.warn_with_uplevel(message, uplevel: 1)</div><div class='hunk'>@@ -633,9 +710,32 @@ module Psych</div><div class='ctx'>   private_class_method :warn_with_uplevel, :parse_caller</div><div class='ctx'> </div><div class='ctx'>   class &lt;&lt; self</div><div class='del'>-    attr_accessor :load_tags</div><div class='del'>-    attr_accessor :dump_tags</div><div class='del'>-    attr_accessor :domain_types</div><div class='add'>+    if defined?(Ractor)</div><div class='add'>+      require 'forwardable'</div><div class='add'>+      extend Forwardable</div><div class='add'>+</div><div class='add'>+      class Config</div><div class='add'>+        attr_accessor :load_tags, :dump_tags, :domain_types</div><div class='add'>+        def initialize</div><div class='add'>+          @load_tags = {}</div><div class='add'>+          @dump_tags = {}</div><div class='add'>+          @domain_types = {}</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def config</div><div class='add'>+        Ractor.current[:PsychConfig] ||= Config.new</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def_delegators :config, :load_tags, :dump_tags, :domain_types, :load_tags=, :dump_tags=, :domain_types=</div><div class='add'>+    else</div><div class='add'>+      attr_accessor :load_tags</div><div class='add'>+      attr_accessor :dump_tags</div><div class='add'>+      attr_accessor :domain_types</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='add'>+  self.load_tags = {}</div><div class='add'>+  self.dump_tags = {}</div><div class='add'>+  self.domain_types = {}</div><div class='ctx'>   # :startdoc:</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/psych/lib/psych/class_loader.rb b/ext/psych/lib/psych/class_loader.rb<br/>index cfca86845a..c2e4ea4c93 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/class_loader.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/class_loader.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/class_loader.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/class_loader.rb</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/omap'</div><div class='del'>-require 'psych/set'</div><div class='add'>+require_relative 'omap'</div><div class='add'>+require_relative 'set'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   class ClassLoader # :nodoc:</div><div class='hunk'>@@ -35,9 +35,11 @@ module Psych</div><div class='ctx'> </div><div class='ctx'>     constants.each do |const|</div><div class='ctx'>       konst = const_get const</div><div class='del'>-      define_method(const.to_s.downcase) do</div><div class='del'>-        load konst</div><div class='del'>-      end</div><div class='add'>+      class_eval &lt;&lt;~RUBY</div><div class='add'>+        def #{const.to_s.downcase}</div><div class='add'>+          load #{konst.inspect}</div><div class='add'>+        end</div><div class='add'>+      RUBY</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     private</div><div class='hunk'>@@ -69,7 +71,7 @@ module Psych</div><div class='ctx'>       rescue</div><div class='ctx'>         nil</div><div class='ctx'>       end</div><div class='del'>-    }.compact]</div><div class='add'>+    }.compact].freeze</div><div class='ctx'> </div><div class='ctx'>     class Restricted &lt; ClassLoader</div><div class='ctx'>       def initialize classes, symbols</div><div class='hunk'>@@ -84,7 +86,7 @@ module Psych</div><div class='ctx'>         if @symbols.include? sym</div><div class='ctx'>           super</div><div class='ctx'>         else</div><div class='del'>-          raise DisallowedClass, 'Symbol'</div><div class='add'>+          raise DisallowedClass.new('load', 'Symbol')</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -94,7 +96,7 @@ module Psych</div><div class='ctx'>         if @classes.include? klassname</div><div class='ctx'>           super</div><div class='ctx'>         else</div><div class='del'>-          raise DisallowedClass, klassname</div><div class='add'>+          raise DisallowedClass.new('load', klassname)</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='head'>diff --git a/ext/psych/lib/psych/core_ext.rb b/ext/psych/lib/psych/core_ext.rb<br/>index 81055cc501..0721a133c3 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/core_ext.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/core_ext.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/core_ext.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/core_ext.rb</a></div><div class='hunk'>@@ -15,5 +15,5 @@ class Object</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> if defined?(::IRB)</div><div class='del'>-  require 'psych/y'</div><div class='add'>+  require_relative 'y'</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/psych/lib/psych/exception.rb b/ext/psych/lib/psych/exception.rb<br/>index fac0c42b9f..d7469a4b30 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/exception.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/exception.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/exception.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/exception.rb</a></div><div class='hunk'>@@ -6,9 +6,23 @@ module Psych</div><div class='ctx'>   class BadAlias &lt; Exception</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Subclasses `BadAlias` for backwards compatibility</div><div class='add'>+  class AliasesNotEnabled &lt; BadAlias</div><div class='add'>+    def initialize</div><div class='add'>+      super "Alias parsing was not enabled. To enable it, pass `aliases: true` to `Psych::load` or `Psych::safe_load`."</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Subclasses `BadAlias` for backwards compatibility</div><div class='add'>+  class AnchorNotDefined &lt; BadAlias</div><div class='add'>+    def initialize anchor_name</div><div class='add'>+      super "An alias referenced an unknown anchor: #{anchor_name}"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'>   class DisallowedClass &lt; Exception</div><div class='del'>-    def initialize klass_name</div><div class='del'>-      super "Tried to load unspecified class: #{klass_name}"</div><div class='add'>+    def initialize action, klass_name</div><div class='add'>+      super "Tried to #{action} unspecified class: #{klass_name}"</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/psych/lib/psych/handler.rb b/ext/psych/lib/psych/handler.rb<br/>index 8f23e366fa..ad7249ff77 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/handler.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/handler.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/handler.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/handler.rb</a></div><div class='hunk'>@@ -119,7 +119,7 @@ module Psych</div><div class='ctx'>     # +tag+ is an associated tag or nil</div><div class='ctx'>     # +plain+ is a boolean value</div><div class='ctx'>     # +quoted+ is a boolean value</div><div class='del'>-    # +style+ is an integer idicating the string style</div><div class='add'>+    # +style+ is an integer indicating the string style</div><div class='ctx'>     #</div><div class='ctx'>     # See the constants in Psych::Nodes::Scalar for the possible values of</div><div class='ctx'>     # +style+</div><div class='head'>diff --git a/ext/psych/lib/psych/handlers/document_stream.rb b/ext/psych/lib/psych/handlers/document_stream.rb<br/>index 67da794093..b77115d074 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/handlers/document_stream.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/handlers/document_stream.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/handlers/document_stream.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/handlers/document_stream.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/tree_builder'</div><div class='add'>+require_relative '../tree_builder'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   module Handlers</div><div class='head'>diff --git a/ext/psych/lib/psych/handlers/recorder.rb b/ext/psych/lib/psych/handlers/recorder.rb<br/>index a8fc7b1144..c98724cb76 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/handlers/recorder.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/handlers/recorder.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/handlers/recorder.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/handlers/recorder.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/handler'</div><div class='add'>+require_relative '../handler'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   module Handlers</div><div class='head'>diff --git a/ext/psych/lib/psych/json/stream.rb b/ext/psych/lib/psych/json/stream.rb<br/>index 2ebd3d7a66..24dd4b9baf 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/json/stream.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/json/stream.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/json/stream.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/json/stream.rb</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/json/ruby_events'</div><div class='del'>-require 'psych/json/yaml_events'</div><div class='add'>+require_relative 'ruby_events'</div><div class='add'>+require_relative 'yaml_events'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   module JSON</div><div class='head'>diff --git a/ext/psych/lib/psych/json/tree_builder.rb b/ext/psych/lib/psych/json/tree_builder.rb<br/>index 5c2ee8ca25..9a45f6b94c 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/json/tree_builder.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/json/tree_builder.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/json/tree_builder.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/json/tree_builder.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/json/yaml_events'</div><div class='add'>+require_relative 'yaml_events'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   module JSON</div><div class='head'>diff --git a/ext/psych/lib/psych/nodes.rb b/ext/psych/lib/psych/nodes.rb<br/>index 5842c2e3e5..2fa52e0055 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/nodes.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/nodes.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/nodes.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/nodes.rb</a></div><div class='hunk'>@@ -1,11 +1,11 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/nodes/node'</div><div class='del'>-require 'psych/nodes/stream'</div><div class='del'>-require 'psych/nodes/document'</div><div class='del'>-require 'psych/nodes/sequence'</div><div class='del'>-require 'psych/nodes/scalar'</div><div class='del'>-require 'psych/nodes/mapping'</div><div class='del'>-require 'psych/nodes/alias'</div><div class='add'>+require_relative 'nodes/node'</div><div class='add'>+require_relative 'nodes/stream'</div><div class='add'>+require_relative 'nodes/document'</div><div class='add'>+require_relative 'nodes/sequence'</div><div class='add'>+require_relative 'nodes/scalar'</div><div class='add'>+require_relative 'nodes/mapping'</div><div class='add'>+require_relative 'nodes/alias'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   ###</div><div class='head'>diff --git a/ext/psych/lib/psych/nodes/node.rb b/ext/psych/lib/psych/nodes/node.rb<br/>index f59fb8916b..f44fce5f05 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/nodes/node.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/nodes/node.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/nodes/node.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/nodes/node.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> require 'stringio'</div><div class='del'>-require 'psych/class_loader'</div><div class='del'>-require 'psych/scalar_scanner'</div><div class='add'>+require_relative '../class_loader'</div><div class='add'>+require_relative '../scalar_scanner'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   module Nodes</div><div class='hunk'>@@ -46,8 +46,8 @@ module Psych</div><div class='ctx'>       # Convert this node to Ruby.</div><div class='ctx'>       #</div><div class='ctx'>       # See also Psych::Visitors::ToRuby</div><div class='del'>-      def to_ruby</div><div class='del'>-        Visitors::ToRuby.create.accept(self)</div><div class='add'>+      def to_ruby(symbolize_names: false, freeze: false, strict_integer: false)</div><div class='add'>+        Visitors::ToRuby.create(symbolize_names: symbolize_names, freeze: freeze, strict_integer: strict_integer).accept(self)</div><div class='ctx'>       end</div><div class='ctx'>       alias :transform :to_ruby</div><div class='ctx'> </div><div class='head'>diff --git a/ext/psych/lib/psych/nodes/scalar.rb b/ext/psych/lib/psych/nodes/scalar.rb<br/>index e2616b6a84..5550b616a3 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/nodes/scalar.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/nodes/scalar.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/nodes/scalar.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/nodes/scalar.rb</a></div><div class='hunk'>@@ -50,7 +50,7 @@ module Psych</div><div class='ctx'>       # +tag+ is an associated tag or nil</div><div class='ctx'>       # +plain+ is a boolean value</div><div class='ctx'>       # +quoted+ is a boolean value</div><div class='del'>-      # +style+ is an integer idicating the string style</div><div class='add'>+      # +style+ is an integer indicating the string style</div><div class='ctx'>       #</div><div class='ctx'>       # == See Also</div><div class='ctx'>       #</div><div class='head'>diff --git a/ext/psych/lib/psych/parser.rb b/ext/psych/lib/psych/parser.rb<br/>index 39bc8289be..2181c730e5 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/parser.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/parser.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/parser.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/parser.rb</a></div><div class='hunk'>@@ -48,5 +48,18 @@ module Psych</div><div class='ctx'>       @handler = handler</div><div class='ctx'>       @external_encoding = ANY</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    ###</div><div class='add'>+    # call-seq:</div><div class='add'>+    #    parser.parse(yaml)</div><div class='add'>+    #</div><div class='add'>+    # Parse the YAML document contained in +yaml+.  Events will be called on</div><div class='add'>+    # the handler set on the parser instance.</div><div class='add'>+    #</div><div class='add'>+    # See Psych::Parser and Psych::Parser#handler</div><div class='add'>+</div><div class='add'>+    def parse yaml, path = yaml.respond_to?(:path) ? yaml.path : "&lt;unknown&gt;"</div><div class='add'>+      _native_parse @handler, yaml, path</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/psych/lib/psych/scalar_scanner.rb b/ext/psych/lib/psych/scalar_scanner.rb<br/>index 29c156c212..3cb4bf3c7e 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/scalar_scanner.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/scalar_scanner.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/scalar_scanner.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/scalar_scanner.rb</a></div><div class='hunk'>@@ -1,5 +1,4 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'strscan'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   ###</div><div class='hunk'>@@ -9,103 +8,98 @@ module Psych</div><div class='ctx'>     TIME = /^-?\d{4}-\d{1,2}-\d{1,2}(?:[Tt]|\s+)\d{1,2}:\d\d:\d\d(?:\.\d*)?(?:\s*(?:Z|[-+]\d{1,2}:?(?:\d\d)?))?$/</div><div class='ctx'> </div><div class='ctx'>     # Taken from http://yaml.org/type/float.html</div><div class='del'>-    FLOAT = /^(?:[-+]?([0-9][0-9_,]*)?\.[0-9]*([eE][-+][0-9]+)?(?# base 10)</div><div class='del'>-              |[-+]?\.(inf|Inf|INF)(?# infinity)</div><div class='del'>-              |\.(nan|NaN|NAN)(?# not a number))$/x</div><div class='add'>+    # Base 60, [-+]inf and NaN are handled separately</div><div class='add'>+    FLOAT = /^(?:[-+]?([0-9][0-9_,]*)?\.[0-9]*([eE][-+][0-9]+)?(?# base 10))$/x</div><div class='ctx'> </div><div class='ctx'>     # Taken from http://yaml.org/type/int.html</div><div class='del'>-    INTEGER = /^(?:[-+]?0b[0-1_]+          (?# base 2)</div><div class='del'>-                  |[-+]?0[0-7_]+           (?# base 8)</div><div class='del'>-                  |[-+]?(?:0|[1-9][0-9_]*) (?# base 10)</div><div class='del'>-                  |[-+]?0x[0-9a-fA-F_]+    (?# base 16))$/x</div><div class='add'>+    INTEGER_STRICT = /^(?:[-+]?0b[0-1_]+                  (?# base 2)</div><div class='add'>+                         |[-+]?0[0-7_]+                   (?# base 8)</div><div class='add'>+                         |[-+]?(0|[1-9][0-9_]*)           (?# base 10)</div><div class='add'>+                         |[-+]?0x[0-9a-fA-F_]+            (?# base 16))$/x</div><div class='add'>+</div><div class='add'>+    # Same as above, but allows commas.</div><div class='add'>+    # Not to YML spec, but kept for backwards compatibility</div><div class='add'>+    INTEGER_LEGACY = /^(?:[-+]?0b[0-1_,]+                        (?# base 2)</div><div class='add'>+                         |[-+]?0[0-7_,]+                         (?# base 8)</div><div class='add'>+                         |[-+]?(?:0|[1-9](?:[0-9]|,[0-9]|_[0-9])*) (?# base 10)</div><div class='add'>+                         |[-+]?0x[0-9a-fA-F_,]+                  (?# base 16))$/x</div><div class='ctx'> </div><div class='ctx'>     attr_reader :class_loader</div><div class='ctx'> </div><div class='ctx'>     # Create a new scanner</div><div class='del'>-    def initialize class_loader</div><div class='del'>-      @string_cache = {}</div><div class='add'>+    def initialize class_loader, strict_integer: false</div><div class='ctx'>       @symbol_cache = {}</div><div class='ctx'>       @class_loader = class_loader</div><div class='add'>+      @strict_integer = strict_integer</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Tokenize +string+ returning the Ruby object</div><div class='ctx'>     def tokenize string</div><div class='ctx'>       return nil if string.empty?</div><div class='del'>-      return string if @string_cache.key?(string)</div><div class='ctx'>       return @symbol_cache[string] if @symbol_cache.key?(string)</div><div class='del'>-</div><div class='del'>-      case string</div><div class='add'>+      integer_regex = @strict_integer ? INTEGER_STRICT : INTEGER_LEGACY</div><div class='ctx'>       # Check for a String type, being careful not to get caught by hash keys, hex values, and</div><div class='ctx'>       # special floats (e.g., -.inf).</div><div class='del'>-      when /^[^\d\.:-]?[A-Za-z_\s!@#\$%\^&amp;\*\(\)\{\}\&lt;\&gt;\|\/\\~;=]+/, /\n/</div><div class='del'>-        if string.length &gt; 5</div><div class='del'>-          @string_cache[string] = true</div><div class='del'>-          return string</div><div class='del'>-        end</div><div class='add'>+      if string.match?(%r{^[^\d.:-]?[[:alpha:]_\s!@#$%\^&amp;*(){}&lt;&gt;|/\\~;=]+}) || string.match?(/\n/)</div><div class='add'>+        return string if string.length &gt; 5</div><div class='ctx'> </div><div class='del'>-        case string</div><div class='del'>-        when /^[^ytonf~]/i</div><div class='del'>-          @string_cache[string] = true</div><div class='add'>+        if string.match?(/^[^ytonf~]/i)</div><div class='ctx'>           string</div><div class='del'>-        when '~', /^null$/i</div><div class='add'>+        elsif string == '~' || string.match?(/^null$/i)</div><div class='ctx'>           nil</div><div class='del'>-        when /^(yes|true|on)$/i</div><div class='add'>+        elsif string.match?(/^(yes|true|on)$/i)</div><div class='ctx'>           true</div><div class='del'>-        when /^(no|false|off)$/i</div><div class='add'>+        elsif string.match?(/^(no|false|off)$/i)</div><div class='ctx'>           false</div><div class='ctx'>         else</div><div class='del'>-          @string_cache[string] = true</div><div class='ctx'>           string</div><div class='ctx'>         end</div><div class='del'>-      when TIME</div><div class='add'>+      elsif string.match?(TIME)</div><div class='ctx'>         begin</div><div class='ctx'>           parse_time string</div><div class='ctx'>         rescue ArgumentError</div><div class='ctx'>           string</div><div class='ctx'>         end</div><div class='del'>-      when /^\d{4}-(?:1[012]|0\d|\d)-(?:[12]\d|3[01]|0\d|\d)$/</div><div class='add'>+      elsif string.match?(/^\d{4}-(?:1[012]|0\d|\d)-(?:[12]\d|3[01]|0\d|\d)$/)</div><div class='ctx'>         require 'date'</div><div class='ctx'>         begin</div><div class='del'>-          class_loader.date.strptime(string, '%Y-%m-%d')</div><div class='add'>+          class_loader.date.strptime(string, '%F', Date::GREGORIAN)</div><div class='ctx'>         rescue ArgumentError</div><div class='ctx'>           string</div><div class='ctx'>         end</div><div class='del'>-      when /^\.inf$/i</div><div class='add'>+      elsif string.match?(/^\+?\.inf$/i)</div><div class='ctx'>         Float::INFINITY</div><div class='del'>-      when /^-\.inf$/i</div><div class='add'>+      elsif string.match?(/^-\.inf$/i)</div><div class='ctx'>         -Float::INFINITY</div><div class='del'>-      when /^\.nan$/i</div><div class='add'>+      elsif string.match?(/^\.nan$/i)</div><div class='ctx'>         Float::NAN</div><div class='del'>-      when /^:./</div><div class='add'>+      elsif string.match?(/^:./)</div><div class='ctx'>         if string =~ /^:(["'])(.*)\1/</div><div class='ctx'>           @symbol_cache[string] = class_loader.symbolize($2.sub(/^:/, ''))</div><div class='ctx'>         else</div><div class='ctx'>           @symbol_cache[string] = class_loader.symbolize(string.sub(/^:/, ''))</div><div class='ctx'>         end</div><div class='del'>-      when /^[-+]?[0-9][0-9_]*(:[0-5]?[0-9]){1,2}$/</div><div class='add'>+      elsif string.match?(/^[-+]?[0-9][0-9_]*(:[0-5]?[0-9]){1,2}$/)</div><div class='ctx'>         i = 0</div><div class='ctx'>         string.split(':').each_with_index do |n,e|</div><div class='ctx'>           i += (n.to_i * 60 ** (e - 2).abs)</div><div class='ctx'>         end</div><div class='ctx'>         i</div><div class='del'>-      when /^[-+]?[0-9][0-9_]*(:[0-5]?[0-9]){1,2}\.[0-9_]*$/</div><div class='add'>+      elsif string.match?(/^[-+]?[0-9][0-9_]*(:[0-5]?[0-9]){1,2}\.[0-9_]*$/)</div><div class='ctx'>         i = 0</div><div class='ctx'>         string.split(':').each_with_index do |n,e|</div><div class='ctx'>           i += (n.to_f * 60 ** (e - 2).abs)</div><div class='ctx'>         end</div><div class='ctx'>         i</div><div class='del'>-      when FLOAT</div><div class='del'>-        if string =~ /\A[-+]?\.\Z/</div><div class='del'>-          @string_cache[string] = true</div><div class='add'>+      elsif string.match?(FLOAT)</div><div class='add'>+        if string.match?(/\A[-+]?\.\Z/)</div><div class='ctx'>           string</div><div class='ctx'>         else</div><div class='del'>-          Float(string.gsub(/[,_]|\.([Ee]|$)/, '\1'))</div><div class='add'>+          Float(string.delete(',_').gsub(/\.([Ee]|$)/, '\1'))</div><div class='ctx'>         end</div><div class='add'>+      elsif string.match?(integer_regex)</div><div class='add'>+        parse_int string</div><div class='ctx'>       else</div><div class='del'>-        int = parse_int string.gsub(/[,_]/, '')</div><div class='del'>-        return int if int</div><div class='del'>-</div><div class='del'>-        @string_cache[string] = true</div><div class='ctx'>         string</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -113,8 +107,7 @@ module Psych</div><div class='ctx'>     ###</div><div class='ctx'>     # Parse and return an int from +string+</div><div class='ctx'>     def parse_int string</div><div class='del'>-      return unless INTEGER === string</div><div class='del'>-      Integer(string)</div><div class='add'>+      Integer(string.delete(',_'))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     ###</div><div class='head'>diff --git a/ext/psych/lib/psych/syntax_error.rb b/ext/psych/lib/psych/syntax_error.rb<br/>index 1598e6ff36..a4c9c4a376 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/syntax_error.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/syntax_error.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/syntax_error.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/syntax_error.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/exception'</div><div class='add'>+require_relative 'exception'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   class SyntaxError &lt; Psych::Exception</div><div class='head'>diff --git a/ext/psych/lib/psych/tree_builder.rb b/ext/psych/lib/psych/tree_builder.rb<br/>index 47a1695643..414ca02bf7 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/tree_builder.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/tree_builder.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/tree_builder.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/tree_builder.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/handler'</div><div class='add'>+require_relative 'handler'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   ###</div><div class='head'>diff --git a/ext/psych/lib/psych/versions.rb b/ext/psych/lib/psych/versions.rb<br/>index 731ba9545e..a592a6916c 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/versions.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/versions.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/versions.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/versions.rb</a></div><div class='hunk'>@@ -1,10 +1,10 @@</div><div class='del'>-</div><div class='ctx'> # frozen_string_literal: true</div><div class='add'>+</div><div class='ctx'> module Psych</div><div class='ctx'>   # The version of Psych you are using</div><div class='del'>-  VERSION = '3.1.0' unless defined?(::Psych::VERSION)</div><div class='add'>+  VERSION = '5.0.1'</div><div class='ctx'> </div><div class='ctx'>   if RUBY_ENGINE == 'jruby'</div><div class='del'>-    DEFAULT_SNAKEYAML_VERSION = '1.23'.freeze</div><div class='add'>+    DEFAULT_SNAKEYAML_VERSION = '1.33'.freeze</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/psych/lib/psych/visitors.rb b/ext/psych/lib/psych/visitors.rb<br/>index e2b084daee..508290d862 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/visitors.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/visitors.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/visitors.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/visitors.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/visitors/visitor'</div><div class='del'>-require 'psych/visitors/to_ruby'</div><div class='del'>-require 'psych/visitors/emitter'</div><div class='del'>-require 'psych/visitors/yaml_tree'</div><div class='del'>-require 'psych/visitors/json_tree'</div><div class='del'>-require 'psych/visitors/depth_first'</div><div class='add'>+require_relative 'visitors/visitor'</div><div class='add'>+require_relative 'visitors/to_ruby'</div><div class='add'>+require_relative 'visitors/emitter'</div><div class='add'>+require_relative 'visitors/yaml_tree'</div><div class='add'>+require_relative 'visitors/json_tree'</div><div class='add'>+require_relative 'visitors/depth_first'</div><div class='head'>diff --git a/ext/psych/lib/psych/visitors/json_tree.rb b/ext/psych/lib/psych/visitors/json_tree.rb<br/>index 9912cb1362..979fc100bd 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/visitors/json_tree.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/visitors/json_tree.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/visitors/json_tree.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/visitors/json_tree.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/json/ruby_events'</div><div class='add'>+require_relative '../json/ruby_events'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   module Visitors</div><div class='head'>diff --git a/ext/psych/lib/psych/visitors/to_ruby.rb b/ext/psych/lib/psych/visitors/to_ruby.rb<br/>index 74a52df866..8614251ca9 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/visitors/to_ruby.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/visitors/to_ruby.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/visitors/to_ruby.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/visitors/to_ruby.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/scalar_scanner'</div><div class='del'>-require 'psych/class_loader'</div><div class='del'>-require 'psych/exception'</div><div class='add'>+require_relative '../scalar_scanner'</div><div class='add'>+require_relative '../class_loader'</div><div class='add'>+require_relative '../exception'</div><div class='ctx'> </div><div class='ctx'> unless defined?(Regexp::NOENCODING)</div><div class='ctx'>   Regexp::NOENCODING = 32</div><div class='hunk'>@@ -12,39 +12,44 @@ module Psych</div><div class='ctx'>     ###</div><div class='ctx'>     # This class walks a YAML AST, converting each node to Ruby</div><div class='ctx'>     class ToRuby &lt; Psych::Visitors::Visitor</div><div class='del'>-      def self.create</div><div class='add'>+      def self.create(symbolize_names: false, freeze: false, strict_integer: false)</div><div class='ctx'>         class_loader = ClassLoader.new</div><div class='del'>-        scanner      = ScalarScanner.new class_loader</div><div class='del'>-        new(scanner, class_loader)</div><div class='add'>+        scanner      = ScalarScanner.new class_loader, strict_integer: strict_integer</div><div class='add'>+        new(scanner, class_loader, symbolize_names: symbolize_names, freeze: freeze)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       attr_reader :class_loader</div><div class='ctx'> </div><div class='del'>-      def initialize ss, class_loader</div><div class='add'>+      def initialize ss, class_loader, symbolize_names: false, freeze: false</div><div class='ctx'>         super()</div><div class='ctx'>         @st = {}</div><div class='ctx'>         @ss = ss</div><div class='add'>+        @load_tags = Psych.load_tags</div><div class='ctx'>         @domain_types = Psych.domain_types</div><div class='ctx'>         @class_loader = class_loader</div><div class='add'>+        @symbolize_names = symbolize_names</div><div class='add'>+        @freeze = freeze</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def accept target</div><div class='ctx'>         result = super</div><div class='del'>-        return result if @domain_types.empty? || !target.tag</div><div class='ctx'> </div><div class='del'>-        key = target.tag.sub(/^[!\/]*/, '').sub(/(,\d+)\//, '\1:')</div><div class='del'>-        key = "tag:#{key}" unless key =~ /^(?:tag:|x-private)/</div><div class='add'>+        unless @domain_types.empty? || !target.tag</div><div class='add'>+          key = target.tag.sub(/^[!\/]*/, '').sub(/(,\d+)\//, '\1:')</div><div class='add'>+          key = "tag:#{key}" unless key =~ /^(?:tag:|x-private)/</div><div class='ctx'> </div><div class='del'>-        if @domain_types.key? key</div><div class='del'>-          value, block = @domain_types[key]</div><div class='del'>-          return block.call value, result</div><div class='add'>+          if @domain_types.key? key</div><div class='add'>+            value, block = @domain_types[key]</div><div class='add'>+            result = block.call value, result</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='add'>+        result = deduplicate(result).freeze if @freeze</div><div class='ctx'>         result</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def deserialize o</div><div class='del'>-        if klass = resolve_class(Psych.load_tags[o.tag])</div><div class='add'>+        if klass = resolve_class(@load_tags[o.tag])</div><div class='ctx'>           instance = klass.allocate</div><div class='ctx'> </div><div class='ctx'>           if instance.respond_to?(:init_with)</div><div class='hunk'>@@ -75,7 +80,9 @@ module Psych</div><div class='ctx'>         when "!ruby/object:DateTime"</div><div class='ctx'>           class_loader.date_time</div><div class='ctx'>           require 'date' unless defined? DateTime</div><div class='del'>-          @ss.parse_time(o.value).to_datetime</div><div class='add'>+          t = @ss.parse_time(o.value)</div><div class='add'>+          DateTime.civil(*t.to_a[0, 6].reverse, Rational(t.utc_offset, 86400)) +</div><div class='add'>+            (t.subsec/86400)</div><div class='ctx'>         when '!ruby/encoding'</div><div class='ctx'>           ::Encoding.find o.value</div><div class='ctx'>         when "!ruby/object:Complex"</div><div class='hunk'>@@ -124,7 +131,7 @@ module Psych</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def visit_Psych_Nodes_Sequence o</div><div class='del'>-        if klass = resolve_class(Psych.load_tags[o.tag])</div><div class='add'>+        if klass = resolve_class(@load_tags[o.tag])</div><div class='ctx'>           instance = klass.allocate</div><div class='ctx'> </div><div class='ctx'>           if instance.respond_to?(:init_with)</div><div class='hunk'>@@ -156,8 +163,8 @@ module Psych</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def visit_Psych_Nodes_Mapping o</div><div class='del'>-        if Psych.load_tags[o.tag]</div><div class='del'>-          return revive(resolve_class(Psych.load_tags[o.tag]), o)</div><div class='add'>+        if @load_tags[o.tag]</div><div class='add'>+          return revive(resolve_class(@load_tags[o.tag]), o)</div><div class='ctx'>         end</div><div class='ctx'>         return revive_hash(register(o, {}), o) unless o.tag</div><div class='ctx'> </div><div class='hunk'>@@ -252,6 +259,8 @@ module Psych</div><div class='ctx'> </div><div class='ctx'>           e = build_exception((resolve_class($1) || class_loader.exception),</div><div class='ctx'>                               h.delete('message'))</div><div class='add'>+</div><div class='add'>+          e.set_backtrace h.delete('backtrace') if h.key? 'backtrace'</div><div class='ctx'>           init_with(e, h, o)</div><div class='ctx'> </div><div class='ctx'>         when '!set', 'tag:yaml.org,2002:set'</div><div class='hunk'>@@ -316,10 +325,11 @@ module Psych</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def visit_Psych_Nodes_Alias o</div><div class='del'>-        @st.fetch(o.anchor) { raise BadAlias, "Unknown alias: #{o.anchor}" }</div><div class='add'>+        @st.fetch(o.anchor) { raise AnchorNotDefined, o.anchor }</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       private</div><div class='add'>+</div><div class='ctx'>       def register node, object</div><div class='ctx'>         @st[node.anchor] = object if node.anchor</div><div class='ctx'>         object</div><div class='hunk'>@@ -331,13 +341,12 @@ module Psych</div><div class='ctx'>         list</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      SHOVEL = '&lt;&lt;'</div><div class='del'>-      def revive_hash hash, o</div><div class='add'>+      def revive_hash hash, o, tagged= false</div><div class='ctx'>         o.children.each_slice(2) { |k,v|</div><div class='ctx'>           key = accept(k)</div><div class='ctx'>           val = accept(v)</div><div class='ctx'> </div><div class='del'>-          if key == SHOVEL &amp;&amp; k.tag != "tag:yaml.org,2002:str"</div><div class='add'>+          if key == '&lt;&lt;' &amp;&amp; k.tag != "tag:yaml.org,2002:str"</div><div class='ctx'>             case v</div><div class='ctx'>             when Nodes::Alias, Nodes::Mapping</div><div class='ctx'>               begin</div><div class='hunk'>@@ -359,6 +368,12 @@ module Psych</div><div class='ctx'>               hash[key] = val</div><div class='ctx'>             end</div><div class='ctx'>           else</div><div class='add'>+            if !tagged &amp;&amp; @symbolize_names &amp;&amp; key.is_a?(String)</div><div class='add'>+              key = key.to_sym</div><div class='add'>+            elsif !@freeze</div><div class='add'>+              key = deduplicate(key)</div><div class='add'>+            end</div><div class='add'>+</div><div class='ctx'>             hash[key] = val</div><div class='ctx'>           end</div><div class='ctx'> </div><div class='hunk'>@@ -366,12 +381,32 @@ module Psych</div><div class='ctx'>         hash</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      if RUBY_VERSION &lt; '2.7'</div><div class='add'>+        def deduplicate key</div><div class='add'>+          if key.is_a?(String)</div><div class='add'>+            # It is important to untaint the string, otherwise it won't</div><div class='add'>+            # be deduplicated into an fstring, but simply frozen.</div><div class='add'>+            -(key.untaint)</div><div class='add'>+          else</div><div class='add'>+            key</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        def deduplicate key</div><div class='add'>+          if key.is_a?(String)</div><div class='add'>+            -key</div><div class='add'>+          else</div><div class='add'>+            key</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def merge_key hash, key, val</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def revive klass, node</div><div class='ctx'>         s = register(node, klass.allocate)</div><div class='del'>-        init_with(s, revive_hash({}, node), node)</div><div class='add'>+        init_with(s, revive_hash({}, node, true), node)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def init_with o, h, node</div><div class='hunk'>@@ -394,7 +429,7 @@ module Psych</div><div class='ctx'> </div><div class='ctx'>     class NoAliasRuby &lt; ToRuby</div><div class='ctx'>       def visit_Psych_Nodes_Alias o</div><div class='del'>-        raise BadAlias, "Unknown alias: #{o.anchor}"</div><div class='add'>+        raise AliasesNotEnabled</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='head'>diff --git a/ext/psych/lib/psych/visitors/visitor.rb b/ext/psych/lib/psych/visitors/visitor.rb<br/>index 3f4ba64e57..21052aa66f 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/visitors/visitor.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/visitors/visitor.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/visitors/visitor.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/visitors/visitor.rb</a></div><div class='hunk'>@@ -8,12 +8,26 @@ module Psych</div><div class='ctx'> </div><div class='ctx'>       private</div><div class='ctx'> </div><div class='del'>-      DISPATCH = Hash.new do |hash, klass|</div><div class='del'>-        hash[klass] = "visit_#{klass.name.gsub('::', '_')}"</div><div class='add'>+      # @api private</div><div class='add'>+      def self.dispatch_cache</div><div class='add'>+        Hash.new do |hash, klass|</div><div class='add'>+          hash[klass] = :"visit_#{klass.name.gsub('::', '_')}"</div><div class='add'>+        end.compare_by_identity</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if defined?(Ractor)</div><div class='add'>+        def dispatch</div><div class='add'>+          @dispatch_cache ||= (Ractor.current[:Psych_Visitors_Visitor] ||= Visitor.dispatch_cache)</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        DISPATCH = dispatch_cache</div><div class='add'>+        def dispatch</div><div class='add'>+          DISPATCH</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def visit target</div><div class='del'>-        send DISPATCH[target.class], target</div><div class='add'>+        send dispatch[target.class], target</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='head'>diff --git a/ext/psych/lib/psych/visitors/yaml_tree.rb b/ext/psych/lib/psych/visitors/yaml_tree.rb<br/>index cfed8f1814..31858798e4 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/lib/psych/visitors/yaml_tree.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/lib/psych/visitors/yaml_tree.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/lib/psych/visitors/yaml_tree.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/lib/psych/visitors/yaml_tree.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-require 'psych/tree_builder'</div><div class='del'>-require 'psych/scalar_scanner'</div><div class='del'>-require 'psych/class_loader'</div><div class='add'>+require_relative '../tree_builder'</div><div class='add'>+require_relative '../scalar_scanner'</div><div class='add'>+require_relative '../class_loader'</div><div class='ctx'> </div><div class='ctx'> module Psych</div><div class='ctx'>   module Visitors</div><div class='hunk'>@@ -80,7 +80,7 @@ module Psych</div><div class='ctx'>           raise(TypeError, "Can't dump #{target.class}") unless method</div><div class='ctx'> </div><div class='ctx'>           h[klass] = method</div><div class='del'>-        end</div><div class='add'>+        end.compare_by_identity</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def start encoding = Nodes::Stream::UTF8</div><div class='hunk'>@@ -181,53 +181,24 @@ module Psych</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def visit_Exception o</div><div class='del'>-        tag = ['!ruby/exception', o.class.name].join ':'</div><div class='del'>-</div><div class='del'>-        @emitter.start_mapping nil, tag, false, Nodes::Mapping::BLOCK</div><div class='del'>-</div><div class='del'>-        {</div><div class='del'>-          'message'   =&gt; private_iv_get(o, 'mesg'),</div><div class='del'>-          'backtrace' =&gt; private_iv_get(o, 'backtrace'),</div><div class='del'>-        }.each do |k,v|</div><div class='del'>-          next unless v</div><div class='del'>-          @emitter.scalar k, nil, nil, true, false, Nodes::Scalar::ANY</div><div class='del'>-          accept v</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        dump_ivars o</div><div class='del'>-</div><div class='del'>-        @emitter.end_mapping</div><div class='add'>+        dump_exception o, o.message.to_s</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def visit_NameError o</div><div class='del'>-        tag = ['!ruby/exception', o.class.name].join ':'</div><div class='del'>-</div><div class='del'>-        @emitter.start_mapping nil, tag, false, Nodes::Mapping::BLOCK</div><div class='del'>-</div><div class='del'>-        {</div><div class='del'>-          'message'   =&gt; o.message.to_s,</div><div class='del'>-          'backtrace' =&gt; private_iv_get(o, 'backtrace'),</div><div class='del'>-        }.each do |k,v|</div><div class='del'>-          next unless v</div><div class='del'>-          @emitter.scalar k, nil, nil, true, false, Nodes::Scalar::ANY</div><div class='del'>-          accept v</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        dump_ivars o</div><div class='del'>-</div><div class='del'>-        @emitter.end_mapping</div><div class='add'>+        dump_exception o, o.message.to_s</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def visit_Regexp o</div><div class='ctx'>         register o, @emitter.scalar(o.inspect, nil, '!ruby/regexp', false, false, Nodes::Scalar::ANY)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def visit_Date o</div><div class='add'>+        register o, visit_Integer(o.gregorian)</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def visit_DateTime o</div><div class='del'>-        formatted = if o.offset.zero?</div><div class='del'>-                      o.strftime("%Y-%m-%d %H:%M:%S.%9N Z".freeze)</div><div class='del'>-                    else</div><div class='del'>-                      o.strftime("%Y-%m-%d %H:%M:%S.%9N %:z".freeze)</div><div class='del'>-                    end</div><div class='add'>+        t = o.italy</div><div class='add'>+        formatted = format_time t, t.offset.zero?</div><div class='ctx'>         tag = '!ruby/object:DateTime'</div><div class='ctx'>         register o, @emitter.scalar(formatted, nil, tag, false, false, Nodes::Scalar::ANY)</div><div class='ctx'>       end</div><div class='hunk'>@@ -265,7 +236,6 @@ module Psych</div><div class='ctx'>       end</div><div class='ctx'>       alias :visit_TrueClass :visit_Integer</div><div class='ctx'>       alias :visit_FalseClass :visit_Integer</div><div class='del'>-      alias :visit_Date :visit_Integer</div><div class='ctx'> </div><div class='ctx'>       def visit_Float o</div><div class='ctx'>         if o.nan?</div><div class='hunk'>@@ -302,6 +272,8 @@ module Psych</div><div class='ctx'>           tag   = 'tag:yaml.org,2002:str'</div><div class='ctx'>           plain = false</div><div class='ctx'>           quote = false</div><div class='add'>+        elsif o == 'y' || o == 'n'</div><div class='add'>+          style = Nodes::Scalar::DOUBLE_QUOTED</div><div class='ctx'>         elsif @line_width &amp;&amp; o.length &gt; @line_width</div><div class='ctx'>           style = Nodes::Scalar::FOLDED</div><div class='ctx'>         elsif o =~ /^[^[:word:]][^"]*$/</div><div class='hunk'>@@ -458,15 +430,6 @@ module Psych</div><div class='ctx'>           node = @emitter.start_mapping(nil, tag, false, Psych::Nodes::Mapping::BLOCK)</div><div class='ctx'>           register(o, node)</div><div class='ctx'> </div><div class='del'>-          # Dump the elements</div><div class='del'>-          accept 'elements'</div><div class='del'>-          @emitter.start_mapping nil, nil, true, Nodes::Mapping::BLOCK</div><div class='del'>-          o.each do |k,v|</div><div class='del'>-            accept k</div><div class='del'>-            accept v</div><div class='del'>-          end</div><div class='del'>-          @emitter.end_mapping</div><div class='del'>-</div><div class='ctx'>           # Dump the ivars</div><div class='ctx'>           accept 'ivars'</div><div class='ctx'>           @emitter.start_mapping nil, nil, true, Nodes::Mapping::BLOCK</div><div class='hunk'>@@ -476,6 +439,15 @@ module Psych</div><div class='ctx'>           end</div><div class='ctx'>           @emitter.end_mapping</div><div class='ctx'> </div><div class='add'>+          # Dump the elements</div><div class='add'>+          accept 'elements'</div><div class='add'>+          @emitter.start_mapping nil, nil, true, Nodes::Mapping::BLOCK</div><div class='add'>+          o.each do |k,v|</div><div class='add'>+            accept k</div><div class='add'>+            accept v</div><div class='add'>+          end</div><div class='add'>+          @emitter.end_mapping</div><div class='add'>+</div><div class='ctx'>           @emitter.end_mapping</div><div class='ctx'>         else</div><div class='ctx'>           tag = "!ruby/hash:#{o.class}"</div><div class='hunk'>@@ -492,8 +464,26 @@ module Psych</div><div class='ctx'>       def dump_list o</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def format_time time</div><div class='del'>-        if time.utc?</div><div class='add'>+      def dump_exception o, msg</div><div class='add'>+        tag = ['!ruby/exception', o.class.name].join ':'</div><div class='add'>+</div><div class='add'>+        @emitter.start_mapping nil, tag, false, Nodes::Mapping::BLOCK</div><div class='add'>+</div><div class='add'>+        if msg</div><div class='add'>+          @emitter.scalar 'message', nil, nil, true, false, Nodes::Scalar::ANY</div><div class='add'>+          accept msg</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        @emitter.scalar 'backtrace', nil, nil, true, false, Nodes::Scalar::ANY</div><div class='add'>+        accept o.backtrace</div><div class='add'>+</div><div class='add'>+        dump_ivars o</div><div class='add'>+</div><div class='add'>+        @emitter.end_mapping</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def format_time time, utc = time.utc?</div><div class='add'>+        if utc</div><div class='ctx'>           time.strftime("%Y-%m-%d %H:%M:%S.%9N Z")</div><div class='ctx'>         else</div><div class='ctx'>           time.strftime("%Y-%m-%d %H:%M:%S.%9N %:z")</div><div class='hunk'>@@ -521,9 +511,9 @@ module Psych</div><div class='ctx'>       def emit_coder c, o</div><div class='ctx'>         case c.type</div><div class='ctx'>         when :scalar</div><div class='del'>-          @emitter.scalar c.scalar, nil, c.tag, c.tag.nil?, false, Nodes::Scalar::ANY</div><div class='add'>+          @emitter.scalar c.scalar, nil, c.tag, c.tag.nil?, false, c.style</div><div class='ctx'>         when :seq</div><div class='del'>-          @emitter.start_sequence nil, c.tag, c.tag.nil?, Nodes::Sequence::BLOCK</div><div class='add'>+          @emitter.start_sequence nil, c.tag, c.tag.nil?, c.style</div><div class='ctx'>           c.seq.each do |thing|</div><div class='ctx'>             accept thing</div><div class='ctx'>           end</div><div class='hunk'>@@ -547,5 +537,51 @@ module Psych</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    class RestrictedYAMLTree &lt; YAMLTree</div><div class='add'>+      DEFAULT_PERMITTED_CLASSES = {</div><div class='add'>+        TrueClass =&gt; true,</div><div class='add'>+        FalseClass =&gt; true,</div><div class='add'>+        NilClass =&gt; true,</div><div class='add'>+        Integer =&gt; true,</div><div class='add'>+        Float =&gt; true,</div><div class='add'>+        String =&gt; true,</div><div class='add'>+        Array =&gt; true,</div><div class='add'>+        Hash =&gt; true,</div><div class='add'>+      }.compare_by_identity.freeze</div><div class='add'>+</div><div class='add'>+      def initialize emitter, ss, options</div><div class='add'>+        super</div><div class='add'>+        @permitted_classes = DEFAULT_PERMITTED_CLASSES.dup</div><div class='add'>+        Array(options[:permitted_classes]).each do |klass|</div><div class='add'>+          @permitted_classes[klass] = true</div><div class='add'>+        end</div><div class='add'>+        @permitted_symbols = {}.compare_by_identity</div><div class='add'>+        Array(options[:permitted_symbols]).each do |symbol|</div><div class='add'>+          @permitted_symbols[symbol] = true</div><div class='add'>+        end</div><div class='add'>+        @aliases = options.fetch(:aliases, false)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def accept target</div><div class='add'>+        if !@aliases &amp;&amp; @st.key?(target)</div><div class='add'>+          raise BadAlias, "Tried to dump an aliased object"</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        unless @permitted_classes[target.class]</div><div class='add'>+          raise DisallowedClass.new('dump', target.class.name || target.class.inspect)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        super</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def visit_Symbol sym</div><div class='add'>+        unless @permitted_symbols[sym]</div><div class='add'>+          raise DisallowedClass.new('dump', "Symbol(#{sym.inspect})")</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        super</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/psych/psych.c b/ext/psych/psych.c<br/>index 3bb59bfc11..8af0bb6a5a 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/psych.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/psych.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/psych.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/psych.c</a></div><div class='hunk'>@@ -11,9 +11,9 @@ static VALUE libyaml_version(VALUE module)</div><div class='ctx'> </div><div class='ctx'>     yaml_get_version(&amp;major, &amp;minor, &amp;patch);</div><div class='ctx'> </div><div class='del'>-    list[0] = INT2NUM((long)major);</div><div class='del'>-    list[1] = INT2NUM((long)minor);</div><div class='del'>-    list[2] = INT2NUM((long)patch);</div><div class='add'>+    list[0] = INT2NUM(major);</div><div class='add'>+    list[1] = INT2NUM(minor);</div><div class='add'>+    list[2] = INT2NUM(patch);</div><div class='ctx'> </div><div class='ctx'>     return rb_ary_new4((long)3, list);</div><div class='ctx'> }</div><div class='hunk'>@@ -22,6 +22,9 @@ VALUE mPsych;</div><div class='ctx'> </div><div class='ctx'> void Init_psych(void)</div><div class='ctx'> {</div><div class='add'>+    #ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+	RB_EXT_RACTOR_SAFE(true);</div><div class='add'>+    #endif</div><div class='ctx'>     mPsych = rb_define_module("Psych");</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(mPsych, "libyaml_version", libyaml_version, 0);</div><div class='head'>diff --git a/ext/psych/psych.gemspec b/ext/psych/psych.gemspec<br/>index 44491c801e..5f5168ddb0 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/psych.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/psych.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/psych.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/psych.gemspec</a></div><div class='hunk'>@@ -1,16 +1,14 @@</div><div class='ctx'> # -*- encoding: utf-8 -*-</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-begin</div><div class='del'>-  require_relative 'lib/psych/versions'</div><div class='del'>-rescue LoadError</div><div class='del'>-  # for Ruby core repository</div><div class='del'>-  require_relative 'versions'</div><div class='add'>+version_module = Module.new do</div><div class='add'>+  version_rb = File.join(__dir__, "lib/psych/versions.rb")</div><div class='add'>+  module_eval(File.read(version_rb), version_rb)</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> Gem::Specification.new do |s|</div><div class='ctx'>   s.name = "psych"</div><div class='del'>-  s.version = Psych::VERSION</div><div class='add'>+  s.version = version_module::Psych::VERSION</div><div class='ctx'>   s.authors = ["Aaron Patterson", "SHIBATA Hiroshi", "Charles Oliver Nutter"]</div><div class='ctx'>   s.email = ["aaron@tenderlovemaking.com", "hsbt@ruby-lang.org", "headius@headius.com"]</div><div class='ctx'>   s.summary = "Psych is a YAML parser and emitter"</div><div class='hunk'>@@ -25,13 +23,10 @@ DESCRIPTION</div><div class='ctx'> </div><div class='ctx'>   # for ruby core repository. It was generated by `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='ctx'>   s.files = [</div><div class='del'>-    ".gitignore", ".travis.yml", "CHANGELOG.rdoc", "Gemfile", "Mavenfile", "README.md", "Rakefile", "bin/console",</div><div class='add'>+    ".gitignore", "Gemfile", "LICENSE", "Mavenfile", "README.md", "Rakefile", "bin/console",</div><div class='ctx'>     "bin/setup", "ext/psych/depend", "ext/psych/extconf.rb", "ext/psych/psych.c", "ext/psych/psych.h",</div><div class='ctx'>     "ext/psych/psych_emitter.c", "ext/psych/psych_emitter.h", "ext/psych/psych_parser.c", "ext/psych/psych_parser.h",</div><div class='ctx'>     "ext/psych/psych_to_ruby.c", "ext/psych/psych_to_ruby.h", "ext/psych/psych_yaml_tree.c", "ext/psych/psych_yaml_tree.h",</div><div class='del'>-    "ext/psych/yaml/LICENSE", "ext/psych/yaml/api.c", "ext/psych/yaml/config.h", "ext/psych/yaml/dumper.c",</div><div class='del'>-    "ext/psych/yaml/emitter.c", "ext/psych/yaml/loader.c", "ext/psych/yaml/parser.c", "ext/psych/yaml/reader.c",</div><div class='del'>-    "ext/psych/yaml/scanner.c", "ext/psych/yaml/writer.c", "ext/psych/yaml/yaml.h", "ext/psych/yaml/yaml_private.h",</div><div class='ctx'>     "lib/psych.rb", "lib/psych/class_loader.rb", "lib/psych/coder.rb", "lib/psych/core_ext.rb", "lib/psych/exception.rb",</div><div class='ctx'>     "lib/psych/handler.rb", "lib/psych/handlers/document_stream.rb", "lib/psych/handlers/recorder.rb",</div><div class='ctx'>     "lib/psych/json/ruby_events.rb", "lib/psych/json/stream.rb", "lib/psych/json/tree_builder.rb",</div><div class='hunk'>@@ -45,15 +40,11 @@ DESCRIPTION</div><div class='ctx'>   ]</div><div class='ctx'> </div><div class='ctx'>   s.rdoc_options = ["--main", "README.md"]</div><div class='del'>-  s.extra_rdoc_files = ["CHANGELOG.rdoc", "README.md"]</div><div class='add'>+  s.extra_rdoc_files = ["README.md"]</div><div class='ctx'> </div><div class='del'>-  s.required_ruby_version = Gem::Requirement.new("&gt;= 2.2.2")</div><div class='del'>-  s.rubygems_version = "2.5.1"</div><div class='add'>+  s.required_ruby_version = Gem::Requirement.new("&gt;= 2.4.0")</div><div class='ctx'>   s.required_rubygems_version = Gem::Requirement.new("&gt;= 0")</div><div class='ctx'> </div><div class='del'>-  s.add_development_dependency 'rake-compiler', "&gt;= 0.4.1"</div><div class='del'>-  s.add_development_dependency 'minitest', "~&gt; 5.0"</div><div class='del'>-</div><div class='ctx'>   if RUBY_ENGINE == 'jruby'</div><div class='ctx'>     s.platform = 'java'</div><div class='ctx'>     s.files.concat [</div><div class='hunk'>@@ -65,11 +56,11 @@ DESCRIPTION</div><div class='ctx'>       "lib/psych_jars.rb",</div><div class='ctx'>       "lib/psych.jar"</div><div class='ctx'>     ]</div><div class='del'>-    s.requirements = "jar org.yaml:snakeyaml, #{Psych::DEFAULT_SNAKEYAML_VERSION}"</div><div class='add'>+    s.requirements = "jar org.yaml:snakeyaml, #{version_module::Psych::DEFAULT_SNAKEYAML_VERSION}"</div><div class='ctx'>     s.add_dependency 'jar-dependencies', '&gt;= 0.1.7'</div><div class='del'>-    s.add_development_dependency 'ruby-maven'</div><div class='ctx'>   else</div><div class='ctx'>     s.extensions = ["ext/psych/extconf.rb"]</div><div class='del'>-    s.add_development_dependency 'rake-compiler-dock', "&gt;= 0.6.3"</div><div class='add'>+    s.add_dependency 'stringio'</div><div class='ctx'>   end</div><div class='add'>+</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/psych/psych_parser.c b/ext/psych/psych_parser.c<br/>index 8eb2205848..9c5179cc44 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/psych_parser.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/psych_parser.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/psych_parser.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/psych_parser.c</a></div><div class='hunk'>@@ -1,7 +1,6 @@</div><div class='ctx'> #include &lt;psych.h&gt;</div><div class='ctx'> </div><div class='ctx'> VALUE cPsychParser;</div><div class='del'>-VALUE ePsychSyntaxError;</div><div class='ctx'> </div><div class='ctx'> static ID id_read;</div><div class='ctx'> static ID id_path;</div><div class='hunk'>@@ -28,7 +27,7 @@ static ID id_event_location;</div><div class='ctx'> static int io_reader(void * data, unsigned char *buf, size_t size, size_t *read)</div><div class='ctx'> {</div><div class='ctx'>     VALUE io = (VALUE)data;</div><div class='del'>-    VALUE string = rb_funcall(io, id_read, 1, INT2NUM(size));</div><div class='add'>+    VALUE string = rb_funcall(io, id_read, 1, SIZET2NUM(size));</div><div class='ctx'> </div><div class='ctx'>     *read = 0;</div><div class='ctx'> </div><div class='hunk'>@@ -80,18 +79,25 @@ static VALUE allocate(VALUE klass)</div><div class='ctx'> </div><div class='ctx'> static VALUE make_exception(yaml_parser_t * parser, VALUE path)</div><div class='ctx'> {</div><div class='del'>-    size_t line, column;</div><div class='del'>-</div><div class='del'>-    line = parser-&gt;context_mark.line + 1;</div><div class='del'>-    column = parser-&gt;context_mark.column + 1;</div><div class='del'>-</div><div class='del'>-    return rb_funcall(ePsychSyntaxError, rb_intern("new"), 6,</div><div class='del'>-	    path,</div><div class='del'>-	    INT2NUM(line),</div><div class='del'>-	    INT2NUM(column),</div><div class='del'>-	    INT2NUM(parser-&gt;problem_offset),</div><div class='del'>-	    parser-&gt;problem ? rb_usascii_str_new2(parser-&gt;problem) : Qnil,</div><div class='del'>-	    parser-&gt;context ? rb_usascii_str_new2(parser-&gt;context) : Qnil);</div><div class='add'>+    if (parser-&gt;error == YAML_MEMORY_ERROR) {</div><div class='add'>+	return rb_eNoMemError;</div><div class='add'>+    } else {</div><div class='add'>+	size_t line, column;</div><div class='add'>+	VALUE ePsychSyntaxError;</div><div class='add'>+</div><div class='add'>+	line = parser-&gt;context_mark.line + 1;</div><div class='add'>+	column = parser-&gt;context_mark.column + 1;</div><div class='add'>+</div><div class='add'>+	ePsychSyntaxError = rb_const_get(mPsych, rb_intern("SyntaxError"));</div><div class='add'>+</div><div class='add'>+	return rb_funcall(ePsychSyntaxError, rb_intern("new"), 6,</div><div class='add'>+		path,</div><div class='add'>+		SIZET2NUM(line),</div><div class='add'>+		SIZET2NUM(column),</div><div class='add'>+		SIZET2NUM(parser-&gt;problem_offset),</div><div class='add'>+		parser-&gt;problem ? rb_usascii_str_new2(parser-&gt;problem) : Qnil,</div><div class='add'>+		parser-&gt;context ? rb_usascii_str_new2(parser-&gt;context) : Qnil);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE transcode_string(VALUE src, int * parser_encoding)</div><div class='hunk'>@@ -239,47 +245,25 @@ static VALUE protected_event_location(VALUE pointer)</div><div class='ctx'>     return rb_funcall3(args[0], id_event_location, 4, args + 1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *    parser.parse(yaml)</div><div class='del'>- *</div><div class='del'>- * Parse the YAML document contained in +yaml+.  Events will be called on</div><div class='del'>- * the handler set on the parser instance.</div><div class='del'>- *</div><div class='del'>- * See Psych::Parser and Psych::Parser#handler</div><div class='del'>- */</div><div class='del'>-static VALUE parse(int argc, VALUE *argv, VALUE self)</div><div class='add'>+static VALUE parse(VALUE self, VALUE handler, VALUE yaml, VALUE path)</div><div class='ctx'> {</div><div class='del'>-    VALUE yaml, path;</div><div class='ctx'>     yaml_parser_t * parser;</div><div class='ctx'>     yaml_event_t event;</div><div class='ctx'>     int done = 0;</div><div class='del'>-    int tainted = 0;</div><div class='ctx'>     int state = 0;</div><div class='ctx'>     int parser_encoding = YAML_ANY_ENCODING;</div><div class='ctx'>     int encoding = rb_utf8_encindex();</div><div class='ctx'>     rb_encoding * internal_enc = rb_default_internal_encoding();</div><div class='del'>-    VALUE handler = rb_iv_get(self, "@handler");</div><div class='del'>-</div><div class='del'>-    if (rb_scan_args(argc, argv, "11", &amp;yaml, &amp;path) == 1) {</div><div class='del'>-	if(rb_respond_to(yaml, id_path))</div><div class='del'>-	    path = rb_funcall(yaml, id_path, 0);</div><div class='del'>-	else</div><div class='del'>-	    path = rb_str_new2("&lt;unknown&gt;");</div><div class='del'>-    }</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, yaml_parser_t, &amp;psych_parser_type, parser);</div><div class='ctx'> </div><div class='ctx'>     yaml_parser_delete(parser);</div><div class='ctx'>     yaml_parser_initialize(parser);</div><div class='ctx'> </div><div class='del'>-    if (OBJ_TAINTED(yaml)) tainted = 1;</div><div class='del'>-</div><div class='ctx'>     if (rb_respond_to(yaml, id_read)) {</div><div class='ctx'> 	yaml = transcode_io(yaml, &amp;parser_encoding);</div><div class='ctx'> 	yaml_parser_set_encoding(parser, parser_encoding);</div><div class='ctx'> 	yaml_parser_set_input(parser, io_reader, (void *)yaml);</div><div class='del'>-	if (RTEST(rb_obj_is_kind_of(yaml, rb_cIO))) tainted = 1;</div><div class='ctx'>     } else {</div><div class='ctx'> 	StringValue(yaml);</div><div class='ctx'> 	yaml = transcode_string(yaml, &amp;parser_encoding);</div><div class='hunk'>@@ -295,7 +279,7 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	VALUE event_args[5];</div><div class='ctx'> 	VALUE start_line, start_column, end_line, end_column;</div><div class='ctx'> </div><div class='del'>-	if(!yaml_parser_parse(parser, &amp;event)) {</div><div class='add'>+	if(parser-&gt;error || !yaml_parser_parse(parser, &amp;event)) {</div><div class='ctx'> 	    VALUE exception;</div><div class='ctx'> </div><div class='ctx'> 	    exception = make_exception(parser, path);</div><div class='hunk'>@@ -305,10 +289,10 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	    rb_exc_raise(exception);</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-	start_line = INT2NUM((long)event.start_mark.line);</div><div class='del'>-	start_column = INT2NUM((long)event.start_mark.column);</div><div class='del'>-	end_line = INT2NUM((long)event.end_mark.line);</div><div class='del'>-	end_column = INT2NUM((long)event.end_mark.column);</div><div class='add'>+	start_line = SIZET2NUM(event.start_mark.line);</div><div class='add'>+	start_column = SIZET2NUM(event.start_mark.column);</div><div class='add'>+	end_line = SIZET2NUM(event.end_mark.line);</div><div class='add'>+	end_column = SIZET2NUM(event.end_mark.column);</div><div class='ctx'> </div><div class='ctx'> 	event_args[0] = handler;</div><div class='ctx'> 	event_args[1] = start_line;</div><div class='hunk'>@@ -323,7 +307,7 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 		  VALUE args[2];</div><div class='ctx'> </div><div class='ctx'> 		  args[0] = handler;</div><div class='del'>-		  args[1] = INT2NUM((long)event.data.stream_start.encoding);</div><div class='add'>+		  args[1] = INT2NUM(event.data.stream_start.encoding);</div><div class='ctx'> 		  rb_protect(protected_start_stream, (VALUE)args, &amp;state);</div><div class='ctx'> 	      }</div><div class='ctx'> 	      break;</div><div class='hunk'>@@ -336,8 +320,8 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 		VALUE version = event.data.document_start.version_directive ?</div><div class='ctx'> 		    rb_ary_new3(</div><div class='ctx'> 			(long)2,</div><div class='del'>-			INT2NUM((long)event.data.document_start.version_directive-&gt;major),</div><div class='del'>-			INT2NUM((long)event.data.document_start.version_directive-&gt;minor)</div><div class='add'>+			INT2NUM(event.data.document_start.version_directive-&gt;major),</div><div class='add'>+			INT2NUM(event.data.document_start.version_directive-&gt;minor)</div><div class='ctx'> 			) : rb_ary_new();</div><div class='ctx'> </div><div class='ctx'> 		if(event.data.document_start.tag_directives.start) {</div><div class='hunk'>@@ -350,13 +334,11 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 			VALUE prefix = Qnil;</div><div class='ctx'> 			if(start-&gt;handle) {</div><div class='ctx'> 			    handle = rb_str_new2((const char *)start-&gt;handle);</div><div class='del'>-			    if (tainted) OBJ_TAINT(handle);</div><div class='ctx'> 			    PSYCH_TRANSCODE(handle, encoding, internal_enc);</div><div class='ctx'> 			}</div><div class='ctx'> </div><div class='ctx'> 			if(start-&gt;prefix) {</div><div class='ctx'> 			    prefix = rb_str_new2((const char *)start-&gt;prefix);</div><div class='del'>-			    if (tainted) OBJ_TAINT(prefix);</div><div class='ctx'> 			    PSYCH_TRANSCODE(prefix, encoding, internal_enc);</div><div class='ctx'> 			}</div><div class='ctx'> </div><div class='hunk'>@@ -385,7 +367,6 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 		VALUE alias = Qnil;</div><div class='ctx'> 		if(event.data.alias.anchor) {</div><div class='ctx'> 		    alias = rb_str_new2((const char *)event.data.alias.anchor);</div><div class='del'>-		    if (tainted) OBJ_TAINT(alias);</div><div class='ctx'> 		    PSYCH_TRANSCODE(alias, encoding, internal_enc);</div><div class='ctx'> 		}</div><div class='ctx'> </div><div class='hunk'>@@ -404,19 +385,16 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 		    (const char *)event.data.scalar.value,</div><div class='ctx'> 		    (long)event.data.scalar.length</div><div class='ctx'> 		    );</div><div class='del'>-		if (tainted) OBJ_TAINT(val);</div><div class='ctx'> </div><div class='ctx'> 		PSYCH_TRANSCODE(val, encoding, internal_enc);</div><div class='ctx'> </div><div class='ctx'> 		if(event.data.scalar.anchor) {</div><div class='ctx'> 		    anchor = rb_str_new2((const char *)event.data.scalar.anchor);</div><div class='del'>-		    if (tainted) OBJ_TAINT(anchor);</div><div class='ctx'> 		    PSYCH_TRANSCODE(anchor, encoding, internal_enc);</div><div class='ctx'> 		}</div><div class='ctx'> </div><div class='ctx'> 		if(event.data.scalar.tag) {</div><div class='ctx'> 		    tag = rb_str_new2((const char *)event.data.scalar.tag);</div><div class='del'>-		    if (tainted) OBJ_TAINT(tag);</div><div class='ctx'> 		    PSYCH_TRANSCODE(tag, encoding, internal_enc);</div><div class='ctx'> 		}</div><div class='ctx'> </div><div class='hunk'>@@ -426,7 +404,7 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 		quoted_implicit =</div><div class='ctx'> 		    event.data.scalar.quoted_implicit == 0 ? Qfalse : Qtrue;</div><div class='ctx'> </div><div class='del'>-		style = INT2NUM((long)event.data.scalar.style);</div><div class='add'>+		style = INT2NUM(event.data.scalar.style);</div><div class='ctx'> </div><div class='ctx'> 		args[0] = handler;</div><div class='ctx'> 		args[1] = val;</div><div class='hunk'>@@ -446,21 +424,19 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 		VALUE implicit, style;</div><div class='ctx'> 		if(event.data.sequence_start.anchor) {</div><div class='ctx'> 		    anchor = rb_str_new2((const char *)event.data.sequence_start.anchor);</div><div class='del'>-		    if (tainted) OBJ_TAINT(anchor);</div><div class='ctx'> 		    PSYCH_TRANSCODE(anchor, encoding, internal_enc);</div><div class='ctx'> 		}</div><div class='ctx'> </div><div class='ctx'> 		tag = Qnil;</div><div class='ctx'> 		if(event.data.sequence_start.tag) {</div><div class='ctx'> 		    tag = rb_str_new2((const char *)event.data.sequence_start.tag);</div><div class='del'>-		    if (tainted) OBJ_TAINT(tag);</div><div class='ctx'> 		    PSYCH_TRANSCODE(tag, encoding, internal_enc);</div><div class='ctx'> 		}</div><div class='ctx'> </div><div class='ctx'> 		implicit =</div><div class='ctx'> 		    event.data.sequence_start.implicit == 0 ? Qfalse : Qtrue;</div><div class='ctx'> </div><div class='del'>-		style = INT2NUM((long)event.data.sequence_start.style);</div><div class='add'>+		style = INT2NUM(event.data.sequence_start.style);</div><div class='ctx'> </div><div class='ctx'> 		args[0] = handler;</div><div class='ctx'> 		args[1] = anchor;</div><div class='hunk'>@@ -482,20 +458,18 @@ static VALUE parse(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 		VALUE implicit, style;</div><div class='ctx'> 		if(event.data.mapping_start.anchor) {</div><div class='ctx'> 		    anchor = rb_str_new2((const char *)event.data.mapping_start.anchor);</div><div class='del'>-		    if (tainted) OBJ_TAINT(anchor);</div><div class='ctx'> 		    PSYCH_TRANSCODE(anchor, encoding, internal_enc);</div><div class='ctx'> 		}</div><div class='ctx'> </div><div class='ctx'> 		if(event.data.mapping_start.tag) {</div><div class='ctx'> 		    tag = rb_str_new2((const char *)event.data.mapping_start.tag);</div><div class='del'>-		    if (tainted) OBJ_TAINT(tag);</div><div class='ctx'> 		    PSYCH_TRANSCODE(tag, encoding, internal_enc);</div><div class='ctx'> 		}</div><div class='ctx'> </div><div class='ctx'> 		implicit =</div><div class='ctx'> 		    event.data.mapping_start.implicit == 0 ? Qfalse : Qtrue;</div><div class='ctx'> </div><div class='del'>-		style = INT2NUM((long)event.data.mapping_start.style);</div><div class='add'>+		style = INT2NUM(event.data.mapping_start.style);</div><div class='ctx'> </div><div class='ctx'> 		args[0] = handler;</div><div class='ctx'> 		args[1] = anchor;</div><div class='hunk'>@@ -539,9 +513,9 @@ static VALUE mark(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, yaml_parser_t, &amp;psych_parser_type, parser);</div><div class='ctx'>     mark_klass = rb_const_get_at(cPsychParser, rb_intern("Mark"));</div><div class='del'>-    args[0] = INT2NUM(parser-&gt;mark.index);</div><div class='del'>-    args[1] = INT2NUM(parser-&gt;mark.line);</div><div class='del'>-    args[2] = INT2NUM(parser-&gt;mark.column);</div><div class='add'>+    args[0] = SIZET2NUM(parser-&gt;mark.index);</div><div class='add'>+    args[1] = SIZET2NUM(parser-&gt;mark.line);</div><div class='add'>+    args[2] = SIZET2NUM(parser-&gt;mark.column);</div><div class='ctx'> </div><div class='ctx'>     return rb_class_new_instance(3, args, mark_klass);</div><div class='ctx'> }</div><div class='hunk'>@@ -569,9 +543,8 @@ void Init_psych_parser(void)</div><div class='ctx'>     rb_define_const(cPsychParser, "UTF16BE", INT2NUM(YAML_UTF16BE_ENCODING));</div><div class='ctx'> </div><div class='ctx'>     rb_require("psych/syntax_error");</div><div class='del'>-    ePsychSyntaxError = rb_const_get(mPsych, rb_intern("SyntaxError"));</div><div class='ctx'> </div><div class='del'>-    rb_define_method(cPsychParser, "parse", parse, -1);</div><div class='add'>+    rb_define_private_method(cPsychParser, "_native_parse", parse, 3);</div><div class='ctx'>     rb_define_method(cPsychParser, "mark", mark, 0);</div><div class='ctx'> </div><div class='ctx'>     id_read            = rb_intern("read");</div><div class='head'>diff --git a/ext/psych/psych_yaml_tree.c b/ext/psych/psych_yaml_tree.c<br/>index 7aca9114c9..225655d127 100644<br/>--- a/<a href='/ruby.git/tree/ext/psych/psych_yaml_tree.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/psych_yaml_tree.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/psych/psych_yaml_tree.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/psych/psych_yaml_tree.c</a></div><div class='hunk'>@@ -2,23 +2,11 @@</div><div class='ctx'> </div><div class='ctx'> VALUE cPsychVisitorsYamlTree;</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq: private_iv_get(target, prop)</div><div class='del'>- *</div><div class='del'>- * Get the private instance variable +prop+ from +target+</div><div class='del'>- */</div><div class='del'>-static VALUE private_iv_get(VALUE self, VALUE target, VALUE prop)</div><div class='del'>-{</div><div class='del'>-    return rb_attr_get(target, rb_intern(StringValueCStr(prop)));</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> void Init_psych_yaml_tree(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE psych     = rb_define_module("Psych");</div><div class='ctx'>     VALUE visitors  = rb_define_module_under(psych, "Visitors");</div><div class='ctx'>     VALUE visitor   = rb_define_class_under(visitors, "Visitor", rb_cObject);</div><div class='ctx'>     cPsychVisitorsYamlTree = rb_define_class_under(visitors, "YAMLTree", visitor);</div><div class='del'>-</div><div class='del'>-    rb_define_private_method(cPsychVisitorsYamlTree, "private_iv_get", private_iv_get, 2);</div><div class='ctx'> }</div><div class='ctx'> /* vim: set noet sws=4 sw=4: */</div><div class='head'>diff --git a/ext/psych/yaml/api.c b/ext/psych/yaml/api.c<br/>deleted file mode 100644<br/>index ee170d87de..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/psych/yaml/api.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/api.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1393 +0,0 @@</div><div class='del'>-</div><div class='del'>-#include "yaml_private.h"</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Get the library version.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(const char *)</div><div class='del'>-yaml_get_version_string(void)</div><div class='del'>-{</div><div class='del'>-    return YAML_VERSION_STRING;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Get the library version numbers.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_get_version(int *major, int *minor, int *patch)</div><div class='del'>-{</div><div class='del'>-    *major = YAML_VERSION_MAJOR;</div><div class='del'>-    *minor = YAML_VERSION_MINOR;</div><div class='del'>-    *patch = YAML_VERSION_PATCH;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Allocate a dynamic memory block.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void *)</div><div class='del'>-yaml_malloc(size_t size)</div><div class='del'>-{</div><div class='del'>-    return malloc(size ? size : 1);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Reallocate a dynamic memory block.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void *)</div><div class='del'>-yaml_realloc(void *ptr, size_t size)</div><div class='del'>-{</div><div class='del'>-    return ptr ? realloc(ptr, size ? size : 1) : malloc(size ? size : 1);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Free a dynamic memory block.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_free(void *ptr)</div><div class='del'>-{</div><div class='del'>-    if (ptr) free(ptr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Duplicate a string.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(yaml_char_t *)</div><div class='del'>-yaml_strdup(const yaml_char_t *str)</div><div class='del'>-{</div><div class='del'>-    if (!str)</div><div class='del'>-        return NULL;</div><div class='del'>-</div><div class='del'>-    return (yaml_char_t *)strdup((char *)str);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Extend a string.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_string_extend(yaml_char_t **start,</div><div class='del'>-        yaml_char_t **pointer, yaml_char_t **end)</div><div class='del'>-{</div><div class='del'>-    yaml_char_t *new_start = (yaml_char_t *)yaml_realloc((void*)*start, (*end - *start)*2);</div><div class='del'>-</div><div class='del'>-    if (!new_start) return 0;</div><div class='del'>-</div><div class='del'>-    memset(new_start + (*end - *start), 0, *end - *start);</div><div class='del'>-</div><div class='del'>-    *pointer = new_start + (*pointer - *start);</div><div class='del'>-    *end = new_start + (*end - *start)*2;</div><div class='del'>-    *start = new_start;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Append a string B to a string A.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_string_join(</div><div class='del'>-        yaml_char_t **a_start, yaml_char_t **a_pointer, yaml_char_t **a_end,</div><div class='del'>-        yaml_char_t **b_start, yaml_char_t **b_pointer, SHIM(yaml_char_t **b_end))</div><div class='del'>-{</div><div class='del'>-    UNUSED_PARAM(b_end)</div><div class='del'>-    if (*b_start == *b_pointer)</div><div class='del'>-        return 1;</div><div class='del'>-</div><div class='del'>-    while (*a_end - *a_pointer &lt;= *b_pointer - *b_start) {</div><div class='del'>-        if (!yaml_string_extend(a_start, a_pointer, a_end))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    memcpy(*a_pointer, *b_start, *b_pointer - *b_start);</div><div class='del'>-    *a_pointer += *b_pointer - *b_start;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Extend a stack.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_stack_extend(void **start, void **top, void **end)</div><div class='del'>-{</div><div class='del'>-    void *new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2);</div><div class='del'>-</div><div class='del'>-    if (!new_start) return 0;</div><div class='del'>-</div><div class='del'>-    *top = (char *)new_start + ((char *)*top - (char *)*start);</div><div class='del'>-    *end = (char *)new_start + ((char *)*end - (char *)*start)*2;</div><div class='del'>-    *start = new_start;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Extend or move a queue.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_queue_extend(void **start, void **head, void **tail, void **end)</div><div class='del'>-{</div><div class='del'>-    /* Check if we need to resize the queue. */</div><div class='del'>-</div><div class='del'>-    if (*start == *head &amp;&amp; *tail == *end) {</div><div class='del'>-        void *new_start = yaml_realloc(*start,</div><div class='del'>-                ((char *)*end - (char *)*start)*2);</div><div class='del'>-</div><div class='del'>-        if (!new_start) return 0;</div><div class='del'>-</div><div class='del'>-        *head = (char *)new_start + ((char *)*head - (char *)*start);</div><div class='del'>-        *tail = (char *)new_start + ((char *)*tail - (char *)*start);</div><div class='del'>-        *end = (char *)new_start + ((char *)*end - (char *)*start)*2;</div><div class='del'>-        *start = new_start;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Check if we need to move the queue at the beginning of the buffer. */</div><div class='del'>-</div><div class='del'>-    if (*tail == *end) {</div><div class='del'>-        if (*head != *tail) {</div><div class='del'>-            memmove(*start, *head, (char *)*tail - (char *)*head);</div><div class='del'>-        }</div><div class='del'>-        *tail = (char *)*tail - (char *)*head + (char *)*start;</div><div class='del'>-        *head = *start;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create a new parser object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_initialize(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    assert(parser);     /* Non-NULL parser object expected. */</div><div class='del'>-</div><div class='del'>-    memset(parser, 0, sizeof(yaml_parser_t));</div><div class='del'>-    if (!BUFFER_INIT(parser, parser-&gt;raw_buffer, INPUT_RAW_BUFFER_SIZE))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!BUFFER_INIT(parser, parser-&gt;buffer, INPUT_BUFFER_SIZE))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!QUEUE_INIT(parser, parser-&gt;tokens, INITIAL_QUEUE_SIZE, yaml_token_t*))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!STACK_INIT(parser, parser-&gt;indents, int*))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!STACK_INIT(parser, parser-&gt;simple_keys, yaml_simple_key_t*))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!STACK_INIT(parser, parser-&gt;states, yaml_parser_state_t*))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!STACK_INIT(parser, parser-&gt;marks, yaml_mark_t*))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!STACK_INIT(parser, parser-&gt;tag_directives, yaml_tag_directive_t*))</div><div class='del'>-        goto error;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-</div><div class='del'>-    BUFFER_DEL(parser, parser-&gt;raw_buffer);</div><div class='del'>-    BUFFER_DEL(parser, parser-&gt;buffer);</div><div class='del'>-    QUEUE_DEL(parser, parser-&gt;tokens);</div><div class='del'>-    STACK_DEL(parser, parser-&gt;indents);</div><div class='del'>-    STACK_DEL(parser, parser-&gt;simple_keys);</div><div class='del'>-    STACK_DEL(parser, parser-&gt;states);</div><div class='del'>-    STACK_DEL(parser, parser-&gt;marks);</div><div class='del'>-    STACK_DEL(parser, parser-&gt;tag_directives);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Destroy a parser object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_parser_delete(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    assert(parser); /* Non-NULL parser object expected. */</div><div class='del'>-</div><div class='del'>-    BUFFER_DEL(parser, parser-&gt;raw_buffer);</div><div class='del'>-    BUFFER_DEL(parser, parser-&gt;buffer);</div><div class='del'>-    while (!QUEUE_EMPTY(parser, parser-&gt;tokens)) {</div><div class='del'>-        yaml_token_delete(&amp;DEQUEUE(parser, parser-&gt;tokens));</div><div class='del'>-    }</div><div class='del'>-    QUEUE_DEL(parser, parser-&gt;tokens);</div><div class='del'>-    STACK_DEL(parser, parser-&gt;indents);</div><div class='del'>-    STACK_DEL(parser, parser-&gt;simple_keys);</div><div class='del'>-    STACK_DEL(parser, parser-&gt;states);</div><div class='del'>-    STACK_DEL(parser, parser-&gt;marks);</div><div class='del'>-    while (!STACK_EMPTY(parser, parser-&gt;tag_directives)) {</div><div class='del'>-        yaml_tag_directive_t tag_directive = POP(parser, parser-&gt;tag_directives);</div><div class='del'>-        yaml_free(tag_directive.handle);</div><div class='del'>-        yaml_free(tag_directive.prefix);</div><div class='del'>-    }</div><div class='del'>-    STACK_DEL(parser, parser-&gt;tag_directives);</div><div class='del'>-</div><div class='del'>-    memset(parser, 0, sizeof(yaml_parser_t));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * String read handler.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_string_read_handler(void *data, unsigned char *buffer, size_t size,</div><div class='del'>-        size_t *size_read)</div><div class='del'>-{</div><div class='del'>-    yaml_parser_t *parser = (yaml_parser_t *)data;</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;input.string.current == parser-&gt;input.string.end) {</div><div class='del'>-        *size_read = 0;</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (size &gt; (size_t)(parser-&gt;input.string.end</div><div class='del'>-                - parser-&gt;input.string.current)) {</div><div class='del'>-        size = parser-&gt;input.string.end - parser-&gt;input.string.current;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    memcpy(buffer, parser-&gt;input.string.current, size);</div><div class='del'>-    parser-&gt;input.string.current += size;</div><div class='del'>-    *size_read = size;</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * File read handler.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_file_read_handler(void *data, unsigned char *buffer, size_t size,</div><div class='del'>-        size_t *size_read)</div><div class='del'>-{</div><div class='del'>-    yaml_parser_t *parser = (yaml_parser_t *)data;</div><div class='del'>-</div><div class='del'>-    *size_read = fread(buffer, 1, size, parser-&gt;input.file);</div><div class='del'>-    return !ferror(parser-&gt;input.file);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set a string input.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_parser_set_input_string(yaml_parser_t *parser,</div><div class='del'>-        const unsigned char *input, size_t size)</div><div class='del'>-{</div><div class='del'>-    assert(parser); /* Non-NULL parser object expected. */</div><div class='del'>-    assert(!parser-&gt;read_handler);  /* You can set the source only once. */</div><div class='del'>-    assert(input);  /* Non-NULL input string expected. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;read_handler = yaml_string_read_handler;</div><div class='del'>-    parser-&gt;read_handler_data = parser;</div><div class='del'>-</div><div class='del'>-    parser-&gt;input.string.start = input;</div><div class='del'>-    parser-&gt;input.string.current = input;</div><div class='del'>-    parser-&gt;input.string.end = input+size;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set a file input.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_parser_set_input_file(yaml_parser_t *parser, FILE *file)</div><div class='del'>-{</div><div class='del'>-    assert(parser); /* Non-NULL parser object expected. */</div><div class='del'>-    assert(!parser-&gt;read_handler);  /* You can set the source only once. */</div><div class='del'>-    assert(file);   /* Non-NULL file object expected. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;read_handler = yaml_file_read_handler;</div><div class='del'>-    parser-&gt;read_handler_data = parser;</div><div class='del'>-</div><div class='del'>-    parser-&gt;input.file = file;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set a generic input.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_parser_set_input(yaml_parser_t *parser,</div><div class='del'>-        yaml_read_handler_t *handler, void *data)</div><div class='del'>-{</div><div class='del'>-    assert(parser); /* Non-NULL parser object expected. */</div><div class='del'>-    assert(!parser-&gt;read_handler);  /* You can set the source only once. */</div><div class='del'>-    assert(handler);    /* Non-NULL read handler expected. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;read_handler = handler;</div><div class='del'>-    parser-&gt;read_handler_data = data;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set the source encoding.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_parser_set_encoding(yaml_parser_t *parser, yaml_encoding_t encoding)</div><div class='del'>-{</div><div class='del'>-    assert(parser); /* Non-NULL parser object expected. */</div><div class='del'>-    assert(!parser-&gt;encoding); /* Encoding is already set or detected. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;encoding = encoding;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create a new emitter object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_initialize(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object expected. */</div><div class='del'>-</div><div class='del'>-    memset(emitter, 0, sizeof(yaml_emitter_t));</div><div class='del'>-    if (!BUFFER_INIT(emitter, emitter-&gt;buffer, OUTPUT_BUFFER_SIZE))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!BUFFER_INIT(emitter, emitter-&gt;raw_buffer, OUTPUT_RAW_BUFFER_SIZE))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!STACK_INIT(emitter, emitter-&gt;states, yaml_emitter_state_t*))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!QUEUE_INIT(emitter, emitter-&gt;events, INITIAL_QUEUE_SIZE, yaml_event_t*))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!STACK_INIT(emitter, emitter-&gt;indents, int*))</div><div class='del'>-        goto error;</div><div class='del'>-    if (!STACK_INIT(emitter, emitter-&gt;tag_directives, yaml_tag_directive_t*))</div><div class='del'>-        goto error;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-</div><div class='del'>-    BUFFER_DEL(emitter, emitter-&gt;buffer);</div><div class='del'>-    BUFFER_DEL(emitter, emitter-&gt;raw_buffer);</div><div class='del'>-    STACK_DEL(emitter, emitter-&gt;states);</div><div class='del'>-    QUEUE_DEL(emitter, emitter-&gt;events);</div><div class='del'>-    STACK_DEL(emitter, emitter-&gt;indents);</div><div class='del'>-    STACK_DEL(emitter, emitter-&gt;tag_directives);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Destroy an emitter object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_delete(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object expected. */</div><div class='del'>-</div><div class='del'>-    BUFFER_DEL(emitter, emitter-&gt;buffer);</div><div class='del'>-    BUFFER_DEL(emitter, emitter-&gt;raw_buffer);</div><div class='del'>-    STACK_DEL(emitter, emitter-&gt;states);</div><div class='del'>-    while (!QUEUE_EMPTY(emitter, emitter-&gt;events)) {</div><div class='del'>-        yaml_event_delete(&amp;DEQUEUE(emitter, emitter-&gt;events));</div><div class='del'>-    }</div><div class='del'>-    QUEUE_DEL(emitter, emitter-&gt;events);</div><div class='del'>-    STACK_DEL(emitter, emitter-&gt;indents);</div><div class='del'>-    while (!STACK_EMPTY(empty, emitter-&gt;tag_directives)) {</div><div class='del'>-        yaml_tag_directive_t tag_directive = POP(emitter, emitter-&gt;tag_directives);</div><div class='del'>-        yaml_free(tag_directive.handle);</div><div class='del'>-        yaml_free(tag_directive.prefix);</div><div class='del'>-    }</div><div class='del'>-    STACK_DEL(emitter, emitter-&gt;tag_directives);</div><div class='del'>-    yaml_free(emitter-&gt;anchors);</div><div class='del'>-</div><div class='del'>-    memset(emitter, 0, sizeof(yaml_emitter_t));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * String write handler.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_string_write_handler(void *data, unsigned char *buffer, size_t size)</div><div class='del'>-{</div><div class='del'>-  yaml_emitter_t *emitter = (yaml_emitter_t *)data;</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;output.string.size - *emitter-&gt;output.string.size_written</div><div class='del'>-            &lt; size) {</div><div class='del'>-        memcpy(emitter-&gt;output.string.buffer</div><div class='del'>-                + *emitter-&gt;output.string.size_written,</div><div class='del'>-                buffer,</div><div class='del'>-                emitter-&gt;output.string.size</div><div class='del'>-                - *emitter-&gt;output.string.size_written);</div><div class='del'>-        *emitter-&gt;output.string.size_written = emitter-&gt;output.string.size;</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    memcpy(emitter-&gt;output.string.buffer</div><div class='del'>-            + *emitter-&gt;output.string.size_written, buffer, size);</div><div class='del'>-    *emitter-&gt;output.string.size_written += size;</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * File write handler.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_file_write_handler(void *data, unsigned char *buffer, size_t size)</div><div class='del'>-{</div><div class='del'>-    yaml_emitter_t *emitter = (yaml_emitter_t *)data;</div><div class='del'>-</div><div class='del'>-    return (fwrite(buffer, 1, size, emitter-&gt;output.file) == size);</div><div class='del'>-}</div><div class='del'>-/*</div><div class='del'>- * Set a string output.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_output_string(yaml_emitter_t *emitter,</div><div class='del'>-        unsigned char *output, size_t size, size_t *size_written)</div><div class='del'>-{</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object expected. */</div><div class='del'>-    assert(!emitter-&gt;write_handler);    /* You can set the output only once. */</div><div class='del'>-    assert(output);     /* Non-NULL output string expected. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;write_handler = yaml_string_write_handler;</div><div class='del'>-    emitter-&gt;write_handler_data = emitter;</div><div class='del'>-</div><div class='del'>-    emitter-&gt;output.string.buffer = output;</div><div class='del'>-    emitter-&gt;output.string.size = size;</div><div class='del'>-    emitter-&gt;output.string.size_written = size_written;</div><div class='del'>-    *size_written = 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set a file output.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_output_file(yaml_emitter_t *emitter, FILE *file)</div><div class='del'>-{</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object expected. */</div><div class='del'>-    assert(!emitter-&gt;write_handler);    /* You can set the output only once. */</div><div class='del'>-    assert(file);       /* Non-NULL file object expected. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;write_handler = yaml_file_write_handler;</div><div class='del'>-    emitter-&gt;write_handler_data = emitter;</div><div class='del'>-</div><div class='del'>-    emitter-&gt;output.file = file;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set a generic output handler.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_output(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_write_handler_t *handler, void *data)</div><div class='del'>-{</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object expected. */</div><div class='del'>-    assert(!emitter-&gt;write_handler);    /* You can set the output only once. */</div><div class='del'>-    assert(handler);    /* Non-NULL handler object expected. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;write_handler = handler;</div><div class='del'>-    emitter-&gt;write_handler_data = data;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set the output encoding.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_encoding(yaml_emitter_t *emitter, yaml_encoding_t encoding)</div><div class='del'>-{</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object expected. */</div><div class='del'>-    assert(!emitter-&gt;encoding);     /* You can set encoding only once. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;encoding = encoding;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set the canonical output style.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_canonical(yaml_emitter_t *emitter, int canonical)</div><div class='del'>-{</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object expected. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;canonical = (canonical != 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set the indentation increment.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_indent(yaml_emitter_t *emitter, int indent)</div><div class='del'>-{</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object expected. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;best_indent = (1 &lt; indent &amp;&amp; indent &lt; 10) ? indent : 2;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set the preferred line width.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_width(yaml_emitter_t *emitter, int width)</div><div class='del'>-{</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object expected. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;best_width = (width &gt;= 0) ? width : -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set if unescaped non-ASCII characters are allowed.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_unicode(yaml_emitter_t *emitter, int unicode)</div><div class='del'>-{</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object expected. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;unicode = (unicode != 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set the preferred line break character.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_break(yaml_emitter_t *emitter, yaml_break_t line_break)</div><div class='del'>-{</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object expected. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;line_break = line_break;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Destroy a token object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_token_delete(yaml_token_t *token)</div><div class='del'>-{</div><div class='del'>-    assert(token);  /* Non-NULL token object expected. */</div><div class='del'>-</div><div class='del'>-    switch (token-&gt;type)</div><div class='del'>-    {</div><div class='del'>-        case YAML_TAG_DIRECTIVE_TOKEN:</div><div class='del'>-            yaml_free(token-&gt;data.tag_directive.handle);</div><div class='del'>-            yaml_free(token-&gt;data.tag_directive.prefix);</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        case YAML_ALIAS_TOKEN:</div><div class='del'>-            yaml_free(token-&gt;data.alias.value);</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        case YAML_ANCHOR_TOKEN:</div><div class='del'>-            yaml_free(token-&gt;data.anchor.value);</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        case YAML_TAG_TOKEN:</div><div class='del'>-            yaml_free(token-&gt;data.tag.handle);</div><div class='del'>-            yaml_free(token-&gt;data.tag.suffix);</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        case YAML_SCALAR_TOKEN:</div><div class='del'>-            yaml_free(token-&gt;data.scalar.value);</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        default:</div><div class='del'>-            break;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    memset(token, 0, sizeof(yaml_token_t));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if a string is a valid UTF-8 sequence.</div><div class='del'>- *</div><div class='del'>- * Check 'reader.c' for more details on UTF-8 encoding.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_check_utf8(yaml_char_t *start, size_t length)</div><div class='del'>-{</div><div class='del'>-    yaml_char_t *end = start+length;</div><div class='del'>-    yaml_char_t *pointer = start;</div><div class='del'>-</div><div class='del'>-    while (pointer &lt; end) {</div><div class='del'>-        unsigned char octet;</div><div class='del'>-        unsigned int width;</div><div class='del'>-        unsigned int value;</div><div class='del'>-        size_t k;</div><div class='del'>-</div><div class='del'>-        octet = pointer[0];</div><div class='del'>-        width = (octet &amp; 0x80) == 0x00 ? 1 :</div><div class='del'>-                (octet &amp; 0xE0) == 0xC0 ? 2 :</div><div class='del'>-                (octet &amp; 0xF0) == 0xE0 ? 3 :</div><div class='del'>-                (octet &amp; 0xF8) == 0xF0 ? 4 : 0;</div><div class='del'>-        value = (octet &amp; 0x80) == 0x00 ? octet &amp; 0x7F :</div><div class='del'>-                (octet &amp; 0xE0) == 0xC0 ? octet &amp; 0x1F :</div><div class='del'>-                (octet &amp; 0xF0) == 0xE0 ? octet &amp; 0x0F :</div><div class='del'>-                (octet &amp; 0xF8) == 0xF0 ? octet &amp; 0x07 : 0;</div><div class='del'>-        if (!width) return 0;</div><div class='del'>-        if (pointer+width &gt; end) return 0;</div><div class='del'>-        for (k = 1; k &lt; width; k ++) {</div><div class='del'>-            octet = pointer[k];</div><div class='del'>-            if ((octet &amp; 0xC0) != 0x80) return 0;</div><div class='del'>-            value = (value &lt;&lt; 6) + (octet &amp; 0x3F);</div><div class='del'>-        }</div><div class='del'>-        if (!((width == 1) ||</div><div class='del'>-            (width == 2 &amp;&amp; value &gt;= 0x80) ||</div><div class='del'>-            (width == 3 &amp;&amp; value &gt;= 0x800) ||</div><div class='del'>-            (width == 4 &amp;&amp; value &gt;= 0x10000))) return 0;</div><div class='del'>-</div><div class='del'>-        pointer += width;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create STREAM-START.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_stream_start_event_initialize(yaml_event_t *event,</div><div class='del'>-        yaml_encoding_t encoding)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    assert(event);  /* Non-NULL event object is expected. */</div><div class='del'>-</div><div class='del'>-    STREAM_START_EVENT_INIT(*event, encoding, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create STREAM-END.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_stream_end_event_initialize(yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    assert(event);  /* Non-NULL event object is expected. */</div><div class='del'>-</div><div class='del'>-    STREAM_END_EVENT_INIT(*event, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create DOCUMENT-START.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_start_event_initialize(yaml_event_t *event,</div><div class='del'>-        yaml_version_directive_t *version_directive,</div><div class='del'>-        yaml_tag_directive_t *tag_directives_start,</div><div class='del'>-        yaml_tag_directive_t *tag_directives_end,</div><div class='del'>-        int implicit)</div><div class='del'>-{</div><div class='del'>-    struct {</div><div class='del'>-        yaml_error_type_t error;</div><div class='del'>-    } context;</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-    yaml_version_directive_t *version_directive_copy = NULL;</div><div class='del'>-    struct {</div><div class='del'>-        yaml_tag_directive_t *start;</div><div class='del'>-        yaml_tag_directive_t *end;</div><div class='del'>-        yaml_tag_directive_t *top;</div><div class='del'>-    } tag_directives_copy = { NULL, NULL, NULL };</div><div class='del'>-    yaml_tag_directive_t value = { NULL, NULL };</div><div class='del'>-</div><div class='del'>-    assert(event);          /* Non-NULL event object is expected. */</div><div class='del'>-    assert((tag_directives_start &amp;&amp; tag_directives_end) ||</div><div class='del'>-            (tag_directives_start == tag_directives_end));</div><div class='del'>-                            /* Valid tag directives are expected. */</div><div class='del'>-</div><div class='del'>-    if (version_directive) {</div><div class='del'>-        version_directive_copy = YAML_MALLOC_STATIC(yaml_version_directive_t);</div><div class='del'>-        if (!version_directive_copy) goto error;</div><div class='del'>-        version_directive_copy-&gt;major = version_directive-&gt;major;</div><div class='del'>-        version_directive_copy-&gt;minor = version_directive-&gt;minor;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (tag_directives_start != tag_directives_end) {</div><div class='del'>-        yaml_tag_directive_t *tag_directive;</div><div class='del'>-        if (!STACK_INIT(&amp;context, tag_directives_copy, yaml_tag_directive_t*))</div><div class='del'>-            goto error;</div><div class='del'>-        for (tag_directive = tag_directives_start;</div><div class='del'>-                tag_directive != tag_directives_end; tag_directive ++) {</div><div class='del'>-            assert(tag_directive-&gt;handle);</div><div class='del'>-            assert(tag_directive-&gt;prefix);</div><div class='del'>-            if (!yaml_check_utf8(tag_directive-&gt;handle,</div><div class='del'>-                        strlen((char *)tag_directive-&gt;handle)))</div><div class='del'>-                goto error;</div><div class='del'>-            if (!yaml_check_utf8(tag_directive-&gt;prefix,</div><div class='del'>-                        strlen((char *)tag_directive-&gt;prefix)))</div><div class='del'>-                goto error;</div><div class='del'>-            value.handle = yaml_strdup(tag_directive-&gt;handle);</div><div class='del'>-            value.prefix = yaml_strdup(tag_directive-&gt;prefix);</div><div class='del'>-            if (!value.handle || !value.prefix) goto error;</div><div class='del'>-            if (!PUSH(&amp;context, tag_directives_copy, value))</div><div class='del'>-                goto error;</div><div class='del'>-            value.handle = NULL;</div><div class='del'>-            value.prefix = NULL;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    DOCUMENT_START_EVENT_INIT(*event, version_directive_copy,</div><div class='del'>-            tag_directives_copy.start, tag_directives_copy.top,</div><div class='del'>-            implicit, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(version_directive_copy);</div><div class='del'>-    while (!STACK_EMPTY(context, tag_directives_copy)) {</div><div class='del'>-        yaml_tag_directive_t value = POP(context, tag_directives_copy);</div><div class='del'>-        yaml_free(value.handle);</div><div class='del'>-        yaml_free(value.prefix);</div><div class='del'>-    }</div><div class='del'>-    STACK_DEL(context, tag_directives_copy);</div><div class='del'>-    yaml_free(value.handle);</div><div class='del'>-    yaml_free(value.prefix);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create DOCUMENT-END.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_end_event_initialize(yaml_event_t *event, int implicit)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    assert(event);      /* Non-NULL emitter object is expected. */</div><div class='del'>-</div><div class='del'>-    DOCUMENT_END_EVENT_INIT(*event, implicit, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create ALIAS.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_alias_event_initialize(yaml_event_t *event, yaml_char_t *anchor)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-    yaml_char_t *anchor_copy = NULL;</div><div class='del'>-</div><div class='del'>-    assert(event);      /* Non-NULL event object is expected. */</div><div class='del'>-    assert(anchor);     /* Non-NULL anchor is expected. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0;</div><div class='del'>-</div><div class='del'>-    anchor_copy = yaml_strdup(anchor);</div><div class='del'>-    if (!anchor_copy)</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create SCALAR.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_scalar_event_initialize(yaml_event_t *event,</div><div class='del'>-        yaml_char_t *anchor, yaml_char_t *tag,</div><div class='del'>-        yaml_char_t *value, int length,</div><div class='del'>-        int plain_implicit, int quoted_implicit,</div><div class='del'>-        yaml_scalar_style_t style)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-    yaml_char_t *anchor_copy = NULL;</div><div class='del'>-    yaml_char_t *tag_copy = NULL;</div><div class='del'>-    yaml_char_t *value_copy = NULL;</div><div class='del'>-</div><div class='del'>-    assert(event);      /* Non-NULL event object is expected. */</div><div class='del'>-    assert(value);      /* Non-NULL anchor is expected. */</div><div class='del'>-</div><div class='del'>-    if (anchor) {</div><div class='del'>-        if (!yaml_check_utf8(anchor, strlen((char *)anchor))) goto error;</div><div class='del'>-        anchor_copy = yaml_strdup(anchor);</div><div class='del'>-        if (!anchor_copy) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (tag) {</div><div class='del'>-        if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error;</div><div class='del'>-        tag_copy = yaml_strdup(tag);</div><div class='del'>-        if (!tag_copy) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (length &lt; 0) {</div><div class='del'>-        length = strlen((char *)value);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!yaml_check_utf8(value, length)) goto error;</div><div class='del'>-    value_copy = YAML_MALLOC(length+1);</div><div class='del'>-    if (!value_copy) goto error;</div><div class='del'>-    memcpy(value_copy, value, length);</div><div class='del'>-    value_copy[length] = '\0';</div><div class='del'>-</div><div class='del'>-    SCALAR_EVENT_INIT(*event, anchor_copy, tag_copy, value_copy, length,</div><div class='del'>-            plain_implicit, quoted_implicit, style, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(anchor_copy);</div><div class='del'>-    yaml_free(tag_copy);</div><div class='del'>-    yaml_free(value_copy);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create SEQUENCE-START.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_sequence_start_event_initialize(yaml_event_t *event,</div><div class='del'>-        yaml_char_t *anchor, yaml_char_t *tag, int implicit,</div><div class='del'>-        yaml_sequence_style_t style)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-    yaml_char_t *anchor_copy = NULL;</div><div class='del'>-    yaml_char_t *tag_copy = NULL;</div><div class='del'>-</div><div class='del'>-    assert(event);      /* Non-NULL event object is expected. */</div><div class='del'>-</div><div class='del'>-    if (anchor) {</div><div class='del'>-        if (!yaml_check_utf8(anchor, strlen((char *)anchor))) goto error;</div><div class='del'>-        anchor_copy = yaml_strdup(anchor);</div><div class='del'>-        if (!anchor_copy) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (tag) {</div><div class='del'>-        if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error;</div><div class='del'>-        tag_copy = yaml_strdup(tag);</div><div class='del'>-        if (!tag_copy) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    SEQUENCE_START_EVENT_INIT(*event, anchor_copy, tag_copy,</div><div class='del'>-            implicit, style, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(anchor_copy);</div><div class='del'>-    yaml_free(tag_copy);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create SEQUENCE-END.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_sequence_end_event_initialize(yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    assert(event);      /* Non-NULL event object is expected. */</div><div class='del'>-</div><div class='del'>-    SEQUENCE_END_EVENT_INIT(*event, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create MAPPING-START.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_mapping_start_event_initialize(yaml_event_t *event,</div><div class='del'>-        yaml_char_t *anchor, yaml_char_t *tag, int implicit,</div><div class='del'>-        yaml_mapping_style_t style)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-    yaml_char_t *anchor_copy = NULL;</div><div class='del'>-    yaml_char_t *tag_copy = NULL;</div><div class='del'>-</div><div class='del'>-    assert(event);      /* Non-NULL event object is expected. */</div><div class='del'>-</div><div class='del'>-    if (anchor) {</div><div class='del'>-        if (!yaml_check_utf8(anchor, strlen((char *)anchor))) goto error;</div><div class='del'>-        anchor_copy = yaml_strdup(anchor);</div><div class='del'>-        if (!anchor_copy) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (tag) {</div><div class='del'>-        if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error;</div><div class='del'>-        tag_copy = yaml_strdup(tag);</div><div class='del'>-        if (!tag_copy) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    MAPPING_START_EVENT_INIT(*event, anchor_copy, tag_copy,</div><div class='del'>-            implicit, style, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(anchor_copy);</div><div class='del'>-    yaml_free(tag_copy);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create MAPPING-END.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_mapping_end_event_initialize(yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    assert(event);      /* Non-NULL event object is expected. */</div><div class='del'>-</div><div class='del'>-    MAPPING_END_EVENT_INIT(*event, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Destroy an event object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_event_delete(yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_tag_directive_t *tag_directive;</div><div class='del'>-</div><div class='del'>-    assert(event);  /* Non-NULL event object expected. */</div><div class='del'>-</div><div class='del'>-    switch (event-&gt;type)</div><div class='del'>-    {</div><div class='del'>-        case YAML_DOCUMENT_START_EVENT:</div><div class='del'>-            yaml_free(event-&gt;data.document_start.version_directive);</div><div class='del'>-            for (tag_directive = event-&gt;data.document_start.tag_directives.start;</div><div class='del'>-                    tag_directive != event-&gt;data.document_start.tag_directives.end;</div><div class='del'>-                    tag_directive++) {</div><div class='del'>-                yaml_free(tag_directive-&gt;handle);</div><div class='del'>-                yaml_free(tag_directive-&gt;prefix);</div><div class='del'>-            }</div><div class='del'>-            yaml_free(event-&gt;data.document_start.tag_directives.start);</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        case YAML_ALIAS_EVENT:</div><div class='del'>-            yaml_free(event-&gt;data.alias.anchor);</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        case YAML_SCALAR_EVENT:</div><div class='del'>-            yaml_free(event-&gt;data.scalar.anchor);</div><div class='del'>-            yaml_free(event-&gt;data.scalar.tag);</div><div class='del'>-            yaml_free(event-&gt;data.scalar.value);</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        case YAML_SEQUENCE_START_EVENT:</div><div class='del'>-            yaml_free(event-&gt;data.sequence_start.anchor);</div><div class='del'>-            yaml_free(event-&gt;data.sequence_start.tag);</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        case YAML_MAPPING_START_EVENT:</div><div class='del'>-            yaml_free(event-&gt;data.mapping_start.anchor);</div><div class='del'>-            yaml_free(event-&gt;data.mapping_start.tag);</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        default:</div><div class='del'>-            break;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    memset(event, 0, sizeof(yaml_event_t));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Create a document object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_initialize(yaml_document_t *document,</div><div class='del'>-        yaml_version_directive_t *version_directive,</div><div class='del'>-        yaml_tag_directive_t *tag_directives_start,</div><div class='del'>-        yaml_tag_directive_t *tag_directives_end,</div><div class='del'>-        int start_implicit, int end_implicit)</div><div class='del'>-{</div><div class='del'>-    struct {</div><div class='del'>-        yaml_error_type_t error;</div><div class='del'>-    } context;</div><div class='del'>-    struct {</div><div class='del'>-        yaml_node_t *start;</div><div class='del'>-        yaml_node_t *end;</div><div class='del'>-        yaml_node_t *top;</div><div class='del'>-    } nodes = { NULL, NULL, NULL };</div><div class='del'>-    yaml_version_directive_t *version_directive_copy = NULL;</div><div class='del'>-    struct {</div><div class='del'>-        yaml_tag_directive_t *start;</div><div class='del'>-        yaml_tag_directive_t *end;</div><div class='del'>-        yaml_tag_directive_t *top;</div><div class='del'>-    } tag_directives_copy = { NULL, NULL, NULL };</div><div class='del'>-    yaml_tag_directive_t value = { NULL, NULL };</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    assert(document);       /* Non-NULL document object is expected. */</div><div class='del'>-    assert((tag_directives_start &amp;&amp; tag_directives_end) ||</div><div class='del'>-            (tag_directives_start == tag_directives_end));</div><div class='del'>-                            /* Valid tag directives are expected. */</div><div class='del'>-</div><div class='del'>-    if (!STACK_INIT(&amp;context, nodes, yaml_node_t*)) goto error;</div><div class='del'>-</div><div class='del'>-    if (version_directive) {</div><div class='del'>-        version_directive_copy = YAML_MALLOC_STATIC(yaml_version_directive_t);</div><div class='del'>-        if (!version_directive_copy) goto error;</div><div class='del'>-        version_directive_copy-&gt;major = version_directive-&gt;major;</div><div class='del'>-        version_directive_copy-&gt;minor = version_directive-&gt;minor;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (tag_directives_start != tag_directives_end) {</div><div class='del'>-        yaml_tag_directive_t *tag_directive;</div><div class='del'>-        if (!STACK_INIT(&amp;context, tag_directives_copy, yaml_tag_directive_t*))</div><div class='del'>-            goto error;</div><div class='del'>-        for (tag_directive = tag_directives_start;</div><div class='del'>-                tag_directive != tag_directives_end; tag_directive ++) {</div><div class='del'>-            assert(tag_directive-&gt;handle);</div><div class='del'>-            assert(tag_directive-&gt;prefix);</div><div class='del'>-            if (!yaml_check_utf8(tag_directive-&gt;handle,</div><div class='del'>-                        strlen((char *)tag_directive-&gt;handle)))</div><div class='del'>-                goto error;</div><div class='del'>-            if (!yaml_check_utf8(tag_directive-&gt;prefix,</div><div class='del'>-                        strlen((char *)tag_directive-&gt;prefix)))</div><div class='del'>-                goto error;</div><div class='del'>-            value.handle = yaml_strdup(tag_directive-&gt;handle);</div><div class='del'>-            value.prefix = yaml_strdup(tag_directive-&gt;prefix);</div><div class='del'>-            if (!value.handle || !value.prefix) goto error;</div><div class='del'>-            if (!PUSH(&amp;context, tag_directives_copy, value))</div><div class='del'>-                goto error;</div><div class='del'>-            value.handle = NULL;</div><div class='del'>-            value.prefix = NULL;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy,</div><div class='del'>-            tag_directives_copy.start, tag_directives_copy.top,</div><div class='del'>-            start_implicit, end_implicit, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    STACK_DEL(&amp;context, nodes);</div><div class='del'>-    yaml_free(version_directive_copy);</div><div class='del'>-    while (!STACK_EMPTY(&amp;context, tag_directives_copy)) {</div><div class='del'>-        yaml_tag_directive_t value = POP(&amp;context, tag_directives_copy);</div><div class='del'>-        yaml_free(value.handle);</div><div class='del'>-        yaml_free(value.prefix);</div><div class='del'>-    }</div><div class='del'>-    STACK_DEL(&amp;context, tag_directives_copy);</div><div class='del'>-    yaml_free(value.handle);</div><div class='del'>-    yaml_free(value.prefix);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Destroy a document object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_document_delete(yaml_document_t *document)</div><div class='del'>-{</div><div class='del'>-    struct {</div><div class='del'>-        yaml_error_type_t error;</div><div class='del'>-    } context;</div><div class='del'>-    yaml_tag_directive_t *tag_directive;</div><div class='del'>-</div><div class='del'>-    context.error = YAML_NO_ERROR;  /* Eliminate a compliler warning. */</div><div class='del'>-</div><div class='del'>-    assert(document);   /* Non-NULL document object is expected. */</div><div class='del'>-</div><div class='del'>-    while (!STACK_EMPTY(&amp;context, document-&gt;nodes)) {</div><div class='del'>-        yaml_node_t node = POP(&amp;context, document-&gt;nodes);</div><div class='del'>-        yaml_free(node.tag);</div><div class='del'>-        switch (node.type) {</div><div class='del'>-            case YAML_SCALAR_NODE:</div><div class='del'>-                yaml_free(node.data.scalar.value);</div><div class='del'>-                break;</div><div class='del'>-            case YAML_SEQUENCE_NODE:</div><div class='del'>-                STACK_DEL(&amp;context, node.data.sequence.items);</div><div class='del'>-                break;</div><div class='del'>-            case YAML_MAPPING_NODE:</div><div class='del'>-                STACK_DEL(&amp;context, node.data.mapping.pairs);</div><div class='del'>-                break;</div><div class='del'>-            default:</div><div class='del'>-                assert(0);  /* Should not happen. */</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    STACK_DEL(&amp;context, document-&gt;nodes);</div><div class='del'>-</div><div class='del'>-    yaml_free(document-&gt;version_directive);</div><div class='del'>-    for (tag_directive = document-&gt;tag_directives.start;</div><div class='del'>-            tag_directive != document-&gt;tag_directives.end;</div><div class='del'>-            tag_directive++) {</div><div class='del'>-        yaml_free(tag_directive-&gt;handle);</div><div class='del'>-        yaml_free(tag_directive-&gt;prefix);</div><div class='del'>-    }</div><div class='del'>-    yaml_free(document-&gt;tag_directives.start);</div><div class='del'>-</div><div class='del'>-    memset(document, 0, sizeof(yaml_document_t));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Get a document node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(yaml_node_t *)</div><div class='del'>-yaml_document_get_node(yaml_document_t *document, int index)</div><div class='del'>-{</div><div class='del'>-    assert(document);   /* Non-NULL document object is expected. */</div><div class='del'>-</div><div class='del'>-    if (index &gt; 0 &amp;&amp; document-&gt;nodes.start + index &lt;= document-&gt;nodes.top) {</div><div class='del'>-        return document-&gt;nodes.start + index - 1;</div><div class='del'>-    }</div><div class='del'>-    return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Get the root object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(yaml_node_t *)</div><div class='del'>-yaml_document_get_root_node(yaml_document_t *document)</div><div class='del'>-{</div><div class='del'>-    assert(document);   /* Non-NULL document object is expected. */</div><div class='del'>-</div><div class='del'>-    if (document-&gt;nodes.top != document-&gt;nodes.start) {</div><div class='del'>-        return document-&gt;nodes.start;</div><div class='del'>-    }</div><div class='del'>-    return NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Add a scalar node to a document.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_add_scalar(yaml_document_t *document,</div><div class='del'>-        yaml_char_t *tag, yaml_char_t *value, int length,</div><div class='del'>-        yaml_scalar_style_t style)</div><div class='del'>-{</div><div class='del'>-    struct {</div><div class='del'>-        yaml_error_type_t error;</div><div class='del'>-    } context;</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-    yaml_char_t *tag_copy = NULL;</div><div class='del'>-    yaml_char_t *value_copy = NULL;</div><div class='del'>-    yaml_node_t node;</div><div class='del'>-</div><div class='del'>-    assert(document);   /* Non-NULL document object is expected. */</div><div class='del'>-    assert(value);      /* Non-NULL value is expected. */</div><div class='del'>-</div><div class='del'>-    if (!tag) {</div><div class='del'>-        tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error;</div><div class='del'>-    tag_copy = yaml_strdup(tag);</div><div class='del'>-    if (!tag_copy) goto error;</div><div class='del'>-</div><div class='del'>-    if (length &lt; 0) {</div><div class='del'>-        length = strlen((char *)value);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!yaml_check_utf8(value, length)) goto error;</div><div class='del'>-    value_copy = YAML_MALLOC(length+1);</div><div class='del'>-    if (!value_copy) goto error;</div><div class='del'>-    memcpy(value_copy, value, length);</div><div class='del'>-    value_copy[length] = '\0';</div><div class='del'>-</div><div class='del'>-    SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark);</div><div class='del'>-    if (!PUSH(&amp;context, document-&gt;nodes, node)) goto error;</div><div class='del'>-</div><div class='del'>-    return document-&gt;nodes.top - document-&gt;nodes.start;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(tag_copy);</div><div class='del'>-    yaml_free(value_copy);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Add a sequence node to a document.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_add_sequence(yaml_document_t *document,</div><div class='del'>-        yaml_char_t *tag, yaml_sequence_style_t style)</div><div class='del'>-{</div><div class='del'>-    struct {</div><div class='del'>-        yaml_error_type_t error;</div><div class='del'>-    } context;</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-    yaml_char_t *tag_copy = NULL;</div><div class='del'>-    struct {</div><div class='del'>-        yaml_node_item_t *start;</div><div class='del'>-        yaml_node_item_t *end;</div><div class='del'>-        yaml_node_item_t *top;</div><div class='del'>-    } items = { NULL, NULL, NULL };</div><div class='del'>-    yaml_node_t node;</div><div class='del'>-</div><div class='del'>-    assert(document);   /* Non-NULL document object is expected. */</div><div class='del'>-</div><div class='del'>-    if (!tag) {</div><div class='del'>-        tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error;</div><div class='del'>-    tag_copy = yaml_strdup(tag);</div><div class='del'>-    if (!tag_copy) goto error;</div><div class='del'>-</div><div class='del'>-    if (!STACK_INIT(&amp;context, items, yaml_node_item_t*)) goto error;</div><div class='del'>-</div><div class='del'>-    SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end,</div><div class='del'>-            style, mark, mark);</div><div class='del'>-    if (!PUSH(&amp;context, document-&gt;nodes, node)) goto error;</div><div class='del'>-</div><div class='del'>-    return document-&gt;nodes.top - document-&gt;nodes.start;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    STACK_DEL(&amp;context, items);</div><div class='del'>-    yaml_free(tag_copy);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Add a mapping node to a document.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_add_mapping(yaml_document_t *document,</div><div class='del'>-        yaml_char_t *tag, yaml_mapping_style_t style)</div><div class='del'>-{</div><div class='del'>-    struct {</div><div class='del'>-        yaml_error_type_t error;</div><div class='del'>-    } context;</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-    yaml_char_t *tag_copy = NULL;</div><div class='del'>-    struct {</div><div class='del'>-        yaml_node_pair_t *start;</div><div class='del'>-        yaml_node_pair_t *end;</div><div class='del'>-        yaml_node_pair_t *top;</div><div class='del'>-    } pairs = { NULL, NULL, NULL };</div><div class='del'>-    yaml_node_t node;</div><div class='del'>-</div><div class='del'>-    assert(document);   /* Non-NULL document object is expected. */</div><div class='del'>-</div><div class='del'>-    if (!tag) {</div><div class='del'>-        tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error;</div><div class='del'>-    tag_copy = yaml_strdup(tag);</div><div class='del'>-    if (!tag_copy) goto error;</div><div class='del'>-</div><div class='del'>-    if (!STACK_INIT(&amp;context, pairs, yaml_node_pair_t*)) goto error;</div><div class='del'>-</div><div class='del'>-    MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end,</div><div class='del'>-            style, mark, mark);</div><div class='del'>-    if (!PUSH(&amp;context, document-&gt;nodes, node)) goto error;</div><div class='del'>-</div><div class='del'>-    return document-&gt;nodes.top - document-&gt;nodes.start;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    STACK_DEL(&amp;context, pairs);</div><div class='del'>-    yaml_free(tag_copy);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Append an item to a sequence node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_append_sequence_item(yaml_document_t *document,</div><div class='del'>-        int sequence, int item)</div><div class='del'>-{</div><div class='del'>-    struct {</div><div class='del'>-        yaml_error_type_t error;</div><div class='del'>-    } context;</div><div class='del'>-</div><div class='del'>-    assert(document);       /* Non-NULL document is required. */</div><div class='del'>-    assert(sequence &gt; 0</div><div class='del'>-            &amp;&amp; document-&gt;nodes.start + sequence &lt;= document-&gt;nodes.top);</div><div class='del'>-                            /* Valid sequence id is required. */</div><div class='del'>-    assert(document-&gt;nodes.start[sequence-1].type == YAML_SEQUENCE_NODE);</div><div class='del'>-                            /* A sequence node is required. */</div><div class='del'>-    assert(item &gt; 0 &amp;&amp; document-&gt;nodes.start + item &lt;= document-&gt;nodes.top);</div><div class='del'>-                            /* Valid item id is required. */</div><div class='del'>-</div><div class='del'>-    if (!PUSH(&amp;context,</div><div class='del'>-                document-&gt;nodes.start[sequence-1].data.sequence.items, item))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Append a pair of a key and a value to a mapping node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_append_mapping_pair(yaml_document_t *document,</div><div class='del'>-        int mapping, int key, int value)</div><div class='del'>-{</div><div class='del'>-    struct {</div><div class='del'>-        yaml_error_type_t error;</div><div class='del'>-    } context;</div><div class='del'>-</div><div class='del'>-    yaml_node_pair_t pair;</div><div class='del'>-</div><div class='del'>-    assert(document);       /* Non-NULL document is required. */</div><div class='del'>-    assert(mapping &gt; 0</div><div class='del'>-            &amp;&amp; document-&gt;nodes.start + mapping &lt;= document-&gt;nodes.top);</div><div class='del'>-                            /* Valid mapping id is required. */</div><div class='del'>-    assert(document-&gt;nodes.start[mapping-1].type == YAML_MAPPING_NODE);</div><div class='del'>-                            /* A mapping node is required. */</div><div class='del'>-    assert(key &gt; 0 &amp;&amp; document-&gt;nodes.start + key &lt;= document-&gt;nodes.top);</div><div class='del'>-                            /* Valid key id is required. */</div><div class='del'>-    assert(value &gt; 0 &amp;&amp; document-&gt;nodes.start + value &lt;= document-&gt;nodes.top);</div><div class='del'>-                            /* Valid value id is required. */</div><div class='del'>-</div><div class='del'>-    pair.key = key;</div><div class='del'>-    pair.value = value;</div><div class='del'>-</div><div class='del'>-    if (!PUSH(&amp;context,</div><div class='del'>-                document-&gt;nodes.start[mapping-1].data.mapping.pairs, pair))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/ext/psych/yaml/config.h b/ext/psych/yaml/config.h<br/>deleted file mode 100644<br/>index da905133ff..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/psych/yaml/config.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/config.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,10 +0,0 @@</div><div class='del'>-#define PACKAGE_NAME "yaml"</div><div class='del'>-#define PACKAGE_TARNAME "yaml"</div><div class='del'>-#define PACKAGE_VERSION "0.2.1"</div><div class='del'>-#define PACKAGE_STRING "yaml 0.2.1"</div><div class='del'>-#define PACKAGE_BUGREPORT "https://github.com/yaml/libyaml/issues"</div><div class='del'>-#define PACKAGE_URL "https://github.com/yaml/libyaml"</div><div class='del'>-#define YAML_VERSION_MAJOR 0</div><div class='del'>-#define YAML_VERSION_MINOR 2</div><div class='del'>-#define YAML_VERSION_PATCH 1</div><div class='del'>-#define YAML_VERSION_STRING "0.2.1"</div><div class='head'>diff --git a/ext/psych/yaml/dumper.c b/ext/psych/yaml/dumper.c<br/>deleted file mode 100644<br/>index 29fb9c0784..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/psych/yaml/dumper.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/dumper.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,394 +0,0 @@</div><div class='del'>-</div><div class='del'>-#include "yaml_private.h"</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * API functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_open(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_close(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_dump(yaml_emitter_t *emitter, yaml_document_t *document);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Clean up functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-yaml_emitter_delete_document_and_anchors(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Anchor functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-yaml_emitter_anchor_node(yaml_emitter_t *emitter, int index);</div><div class='del'>-</div><div class='del'>-static yaml_char_t *</div><div class='del'>-yaml_emitter_generate_anchor(yaml_emitter_t *emitter, int anchor_id);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Serialize functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_dump_node(yaml_emitter_t *emitter, int index);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_dump_alias(yaml_emitter_t *emitter, yaml_char_t *anchor);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_dump_scalar(yaml_emitter_t *emitter, yaml_node_t *node,</div><div class='del'>-        yaml_char_t *anchor);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_dump_sequence(yaml_emitter_t *emitter, yaml_node_t *node,</div><div class='del'>-        yaml_char_t *anchor);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_dump_mapping(yaml_emitter_t *emitter, yaml_node_t *node,</div><div class='del'>-        yaml_char_t *anchor);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Issue a STREAM-START event.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_open(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t event;</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    assert(emitter);            /* Non-NULL emitter object is required. */</div><div class='del'>-    assert(!emitter-&gt;opened);   /* Emitter should not be opened yet. */</div><div class='del'>-</div><div class='del'>-    STREAM_START_EVENT_INIT(event, YAML_ANY_ENCODING, mark, mark);</div><div class='del'>-</div><div class='del'>-    if (!yaml_emitter_emit(emitter, &amp;event)) {</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;opened = 1;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Issue a STREAM-END event.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_close(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t event;</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    assert(emitter);            /* Non-NULL emitter object is required. */</div><div class='del'>-    assert(emitter-&gt;opened);    /* Emitter should be opened. */</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;closed) return 1;</div><div class='del'>-</div><div class='del'>-    STREAM_END_EVENT_INIT(event, mark, mark);</div><div class='del'>-</div><div class='del'>-    if (!yaml_emitter_emit(emitter, &amp;event)) {</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;closed = 1;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Dump a YAML document.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_dump(yaml_emitter_t *emitter, yaml_document_t *document)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t event;</div><div class='del'>-    yaml_mark_t mark = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    assert(emitter);            /* Non-NULL emitter object is required. */</div><div class='del'>-    assert(document);           /* Non-NULL emitter object is expected. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;document = document;</div><div class='del'>-</div><div class='del'>-    if (!emitter-&gt;opened) {</div><div class='del'>-        if (!yaml_emitter_open(emitter)) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (STACK_EMPTY(emitter, document-&gt;nodes)) {</div><div class='del'>-        if (!yaml_emitter_close(emitter)) goto error;</div><div class='del'>-        yaml_emitter_delete_document_and_anchors(emitter);</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    assert(emitter-&gt;opened);    /* Emitter should be opened. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;anchors = yaml_malloc(sizeof(*(emitter-&gt;anchors))</div><div class='del'>-            * (document-&gt;nodes.top - document-&gt;nodes.start));</div><div class='del'>-    if (!emitter-&gt;anchors) goto error;</div><div class='del'>-    memset(emitter-&gt;anchors, 0, sizeof(*(emitter-&gt;anchors))</div><div class='del'>-            * (document-&gt;nodes.top - document-&gt;nodes.start));</div><div class='del'>-</div><div class='del'>-    DOCUMENT_START_EVENT_INIT(event, document-&gt;version_directive,</div><div class='del'>-            document-&gt;tag_directives.start, document-&gt;tag_directives.end,</div><div class='del'>-            document-&gt;start_implicit, mark, mark);</div><div class='del'>-    if (!yaml_emitter_emit(emitter, &amp;event)) goto error;</div><div class='del'>-</div><div class='del'>-    yaml_emitter_anchor_node(emitter, 1);</div><div class='del'>-    if (!yaml_emitter_dump_node(emitter, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    DOCUMENT_END_EVENT_INIT(event, document-&gt;end_implicit, mark, mark);</div><div class='del'>-    if (!yaml_emitter_emit(emitter, &amp;event)) goto error;</div><div class='del'>-</div><div class='del'>-    yaml_emitter_delete_document_and_anchors(emitter);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-</div><div class='del'>-    yaml_emitter_delete_document_and_anchors(emitter);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Clean up the emitter object after a document is dumped.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-yaml_emitter_delete_document_and_anchors(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    int index;</div><div class='del'>-</div><div class='del'>-    if (!emitter-&gt;anchors) {</div><div class='del'>-        yaml_document_delete(emitter-&gt;document);</div><div class='del'>-        emitter-&gt;document = NULL;</div><div class='del'>-        return;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    for (index = 0; emitter-&gt;document-&gt;nodes.start + index</div><div class='del'>-            &lt; emitter-&gt;document-&gt;nodes.top; index ++) {</div><div class='del'>-        yaml_node_t node = emitter-&gt;document-&gt;nodes.start[index];</div><div class='del'>-        if (!emitter-&gt;anchors[index].serialized) {</div><div class='del'>-            yaml_free(node.tag);</div><div class='del'>-            if (node.type == YAML_SCALAR_NODE) {</div><div class='del'>-                yaml_free(node.data.scalar.value);</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        if (node.type == YAML_SEQUENCE_NODE) {</div><div class='del'>-            STACK_DEL(emitter, node.data.sequence.items);</div><div class='del'>-        }</div><div class='del'>-        if (node.type == YAML_MAPPING_NODE) {</div><div class='del'>-            STACK_DEL(emitter, node.data.mapping.pairs);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    STACK_DEL(emitter, emitter-&gt;document-&gt;nodes);</div><div class='del'>-    yaml_free(emitter-&gt;anchors);</div><div class='del'>-</div><div class='del'>-    emitter-&gt;anchors = NULL;</div><div class='del'>-    emitter-&gt;last_anchor_id = 0;</div><div class='del'>-    emitter-&gt;document = NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check the references of a node and assign the anchor id if needed.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-yaml_emitter_anchor_node(yaml_emitter_t *emitter, int index)</div><div class='del'>-{</div><div class='del'>-    yaml_node_t *node = emitter-&gt;document-&gt;nodes.start + index - 1;</div><div class='del'>-    yaml_node_item_t *item;</div><div class='del'>-    yaml_node_pair_t *pair;</div><div class='del'>-</div><div class='del'>-    emitter-&gt;anchors[index-1].references ++;</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;anchors[index-1].references == 1) {</div><div class='del'>-        switch (node-&gt;type) {</div><div class='del'>-            case YAML_SEQUENCE_NODE:</div><div class='del'>-                for (item = node-&gt;data.sequence.items.start;</div><div class='del'>-                        item &lt; node-&gt;data.sequence.items.top; item ++) {</div><div class='del'>-                    yaml_emitter_anchor_node(emitter, *item);</div><div class='del'>-                }</div><div class='del'>-                break;</div><div class='del'>-            case YAML_MAPPING_NODE:</div><div class='del'>-                for (pair = node-&gt;data.mapping.pairs.start;</div><div class='del'>-                        pair &lt; node-&gt;data.mapping.pairs.top; pair ++) {</div><div class='del'>-                    yaml_emitter_anchor_node(emitter, pair-&gt;key);</div><div class='del'>-                    yaml_emitter_anchor_node(emitter, pair-&gt;value);</div><div class='del'>-                }</div><div class='del'>-                break;</div><div class='del'>-            default:</div><div class='del'>-                break;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    else if (emitter-&gt;anchors[index-1].references == 2) {</div><div class='del'>-        emitter-&gt;anchors[index-1].anchor = (++ emitter-&gt;last_anchor_id);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Generate a textual representation for an anchor.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define ANCHOR_TEMPLATE         "id%03d"</div><div class='del'>-#define ANCHOR_TEMPLATE_LENGTH  16</div><div class='del'>-</div><div class='del'>-static yaml_char_t *</div><div class='del'>-yaml_emitter_generate_anchor(SHIM(yaml_emitter_t *emitter), int anchor_id)</div><div class='del'>-{</div><div class='del'>-    yaml_char_t *anchor = YAML_MALLOC(ANCHOR_TEMPLATE_LENGTH);</div><div class='del'>-</div><div class='del'>-    if (!anchor) return NULL;</div><div class='del'>-</div><div class='del'>-    sprintf((char *)anchor, ANCHOR_TEMPLATE, anchor_id);</div><div class='del'>-</div><div class='del'>-    return anchor;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Serialize a node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_dump_node(yaml_emitter_t *emitter, int index)</div><div class='del'>-{</div><div class='del'>-    yaml_node_t *node = emitter-&gt;document-&gt;nodes.start + index - 1;</div><div class='del'>-    int anchor_id = emitter-&gt;anchors[index-1].anchor;</div><div class='del'>-    yaml_char_t *anchor = NULL;</div><div class='del'>-</div><div class='del'>-    if (anchor_id) {</div><div class='del'>-        anchor = yaml_emitter_generate_anchor(emitter, anchor_id);</div><div class='del'>-        if (!anchor) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;anchors[index-1].serialized) {</div><div class='del'>-        return yaml_emitter_dump_alias(emitter, anchor);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;anchors[index-1].serialized = 1;</div><div class='del'>-</div><div class='del'>-    switch (node-&gt;type) {</div><div class='del'>-        case YAML_SCALAR_NODE:</div><div class='del'>-            return yaml_emitter_dump_scalar(emitter, node, anchor);</div><div class='del'>-        case YAML_SEQUENCE_NODE:</div><div class='del'>-            return yaml_emitter_dump_sequence(emitter, node, anchor);</div><div class='del'>-        case YAML_MAPPING_NODE:</div><div class='del'>-            return yaml_emitter_dump_mapping(emitter, node, anchor);</div><div class='del'>-        default:</div><div class='del'>-            assert(0);      /* Could not happen. */</div><div class='del'>-            break;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 0;       /* Could not happen. */</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Serialize an alias.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_dump_alias(yaml_emitter_t *emitter, yaml_char_t *anchor)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t event;</div><div class='del'>-    yaml_mark_t mark  = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    ALIAS_EVENT_INIT(event, anchor, mark, mark);</div><div class='del'>-</div><div class='del'>-    return yaml_emitter_emit(emitter, &amp;event);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Serialize a scalar.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_dump_scalar(yaml_emitter_t *emitter, yaml_node_t *node,</div><div class='del'>-        yaml_char_t *anchor)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t event;</div><div class='del'>-    yaml_mark_t mark  = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    int plain_implicit = (strcmp((char *)node-&gt;tag,</div><div class='del'>-                YAML_DEFAULT_SCALAR_TAG) == 0);</div><div class='del'>-    int quoted_implicit = (strcmp((char *)node-&gt;tag,</div><div class='del'>-                YAML_DEFAULT_SCALAR_TAG) == 0);</div><div class='del'>-</div><div class='del'>-    SCALAR_EVENT_INIT(event, anchor, node-&gt;tag, node-&gt;data.scalar.value,</div><div class='del'>-            node-&gt;data.scalar.length, plain_implicit, quoted_implicit,</div><div class='del'>-            node-&gt;data.scalar.style, mark, mark);</div><div class='del'>-</div><div class='del'>-    return yaml_emitter_emit(emitter, &amp;event);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Serialize a sequence.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_dump_sequence(yaml_emitter_t *emitter, yaml_node_t *node,</div><div class='del'>-        yaml_char_t *anchor)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t event;</div><div class='del'>-    yaml_mark_t mark  = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    int implicit = (strcmp((char *)node-&gt;tag, YAML_DEFAULT_SEQUENCE_TAG) == 0);</div><div class='del'>-</div><div class='del'>-    yaml_node_item_t *item;</div><div class='del'>-</div><div class='del'>-    SEQUENCE_START_EVENT_INIT(event, anchor, node-&gt;tag, implicit,</div><div class='del'>-            node-&gt;data.sequence.style, mark, mark);</div><div class='del'>-    if (!yaml_emitter_emit(emitter, &amp;event)) return 0;</div><div class='del'>-</div><div class='del'>-    for (item = node-&gt;data.sequence.items.start;</div><div class='del'>-            item &lt; node-&gt;data.sequence.items.top; item ++) {</div><div class='del'>-        if (!yaml_emitter_dump_node(emitter, *item)) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    SEQUENCE_END_EVENT_INIT(event, mark, mark);</div><div class='del'>-    if (!yaml_emitter_emit(emitter, &amp;event)) return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Serialize a mapping.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_dump_mapping(yaml_emitter_t *emitter, yaml_node_t *node,</div><div class='del'>-        yaml_char_t *anchor)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t event;</div><div class='del'>-    yaml_mark_t mark  = { 0, 0, 0 };</div><div class='del'>-</div><div class='del'>-    int implicit = (strcmp((char *)node-&gt;tag, YAML_DEFAULT_MAPPING_TAG) == 0);</div><div class='del'>-</div><div class='del'>-    yaml_node_pair_t *pair;</div><div class='del'>-</div><div class='del'>-    MAPPING_START_EVENT_INIT(event, anchor, node-&gt;tag, implicit,</div><div class='del'>-            node-&gt;data.mapping.style, mark, mark);</div><div class='del'>-    if (!yaml_emitter_emit(emitter, &amp;event)) return 0;</div><div class='del'>-</div><div class='del'>-    for (pair = node-&gt;data.mapping.pairs.start;</div><div class='del'>-            pair &lt; node-&gt;data.mapping.pairs.top; pair ++) {</div><div class='del'>-        if (!yaml_emitter_dump_node(emitter, pair-&gt;key)) return 0;</div><div class='del'>-        if (!yaml_emitter_dump_node(emitter, pair-&gt;value)) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    MAPPING_END_EVENT_INIT(event, mark, mark);</div><div class='del'>-    if (!yaml_emitter_emit(emitter, &amp;event)) return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='head'>diff --git a/ext/psych/yaml/emitter.c b/ext/psych/yaml/emitter.c<br/>deleted file mode 100644<br/>index 92e21cdb73..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/psych/yaml/emitter.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/emitter.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,2324 +0,0 @@</div><div class='del'>-</div><div class='del'>-#include "yaml_private.h"</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Flush the buffer if needed.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define FLUSH(emitter)                                                          \</div><div class='del'>-    ((emitter-&gt;buffer.pointer+5 &lt; emitter-&gt;buffer.end)                          \</div><div class='del'>-     || yaml_emitter_flush(emitter))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Put a character to the output buffer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define PUT(emitter,value)                                                      \</div><div class='del'>-    (FLUSH(emitter)                                                             \</div><div class='del'>-     &amp;&amp; (*(emitter-&gt;buffer.pointer++) = (yaml_char_t)(value),                   \</div><div class='del'>-         emitter-&gt;column ++,                                                    \</div><div class='del'>-         1))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Put a line break to the output buffer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define PUT_BREAK(emitter)                                                      \</div><div class='del'>-    (FLUSH(emitter) ?                                                            \</div><div class='del'>-      ((emitter-&gt;line_break == YAML_CR_BREAK ?                                \</div><div class='del'>-             (*(emitter-&gt;buffer.pointer++) = (yaml_char_t) '\r') :              \</div><div class='del'>-          emitter-&gt;line_break == YAML_LN_BREAK ?                                \</div><div class='del'>-             (*(emitter-&gt;buffer.pointer++) = (yaml_char_t) '\n') :              \</div><div class='del'>-          emitter-&gt;line_break == YAML_CRLN_BREAK ?                              \</div><div class='del'>-             (*(emitter-&gt;buffer.pointer++) = (yaml_char_t) '\r',                \</div><div class='del'>-              *(emitter-&gt;buffer.pointer++) = (yaml_char_t) '\n') : 0),          \</div><div class='del'>-         emitter-&gt;column = 0,                                                   \</div><div class='del'>-         emitter-&gt;line ++,                                                      \</div><div class='del'>-         1) : 0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Copy a character from a string into buffer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define WRITE(emitter,string)                                                   \</div><div class='del'>-    (FLUSH(emitter)                                                             \</div><div class='del'>-     &amp;&amp; (COPY(emitter-&gt;buffer,string),                                          \</div><div class='del'>-         emitter-&gt;column ++,                                                    \</div><div class='del'>-         1))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Copy a line break character from a string into buffer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define WRITE_BREAK(emitter,string)                                             \</div><div class='del'>-    (FLUSH(emitter)                                                             \</div><div class='del'>-     &amp;&amp; (CHECK(string,'\n') ?                                                   \</div><div class='del'>-         (PUT_BREAK(emitter),                                                   \</div><div class='del'>-          string.pointer ++,                                                    \</div><div class='del'>-          1) :                                                                  \</div><div class='del'>-         (COPY(emitter-&gt;buffer,string),                                         \</div><div class='del'>-          emitter-&gt;column = 0,                                                  \</div><div class='del'>-          emitter-&gt;line ++,                                                     \</div><div class='del'>-          1)))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * API functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_emit(yaml_emitter_t *emitter, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Utility functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_set_emitter_error(yaml_emitter_t *emitter, const char *problem);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_need_more_events(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_append_tag_directive(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_tag_directive_t value, int allow_duplicates);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_increase_indent(yaml_emitter_t *emitter,</div><div class='del'>-        int flow, int indentless);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * State functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_state_machine(yaml_emitter_t *emitter, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_stream_start(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_document_start(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int first);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_document_content(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_document_end(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_flow_sequence_item(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int first);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_flow_mapping_key(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int first);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_flow_mapping_value(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int simple);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_block_sequence_item(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int first);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_block_mapping_key(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int first);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_block_mapping_value(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int simple);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_node(yaml_emitter_t *emitter, yaml_event_t *event,</div><div class='del'>-        int root, int sequence, int mapping, int simple_key);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_alias(yaml_emitter_t *emitter, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_scalar(yaml_emitter_t *emitter, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_sequence_start(yaml_emitter_t *emitter, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_mapping_start(yaml_emitter_t *emitter, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Checkers.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_check_empty_document(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_check_empty_sequence(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_check_empty_mapping(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_check_simple_key(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_select_scalar_style(yaml_emitter_t *emitter, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Processors.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_process_anchor(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_process_tag(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_process_scalar(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Analyzers.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_version_directive(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_version_directive_t version_directive);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_tag_directive(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_tag_directive_t tag_directive);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_anchor(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *anchor, int alias);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_tag(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *tag);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_event(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Writers.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_bom(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_indent(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_indicator(yaml_emitter_t *emitter,</div><div class='del'>-        const char *indicator, int need_whitespace,</div><div class='del'>-        int is_whitespace, int is_indention);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_anchor(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_tag_handle(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_tag_content(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length, int need_whitespace);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_plain_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length, int allow_breaks);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_single_quoted_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length, int allow_breaks);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_double_quoted_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length, int allow_breaks);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_block_scalar_hints(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_string_t string);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_literal_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_folded_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set an emitter error and return 0.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_set_emitter_error(yaml_emitter_t *emitter, const char *problem)</div><div class='del'>-{</div><div class='del'>-    emitter-&gt;error = YAML_EMITTER_ERROR;</div><div class='del'>-    emitter-&gt;problem = problem;</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Emit an event.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_emit(yaml_emitter_t *emitter, yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    if (!ENQUEUE(emitter, emitter-&gt;events, *event)) {</div><div class='del'>-        yaml_event_delete(event);</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    while (!yaml_emitter_need_more_events(emitter)) {</div><div class='del'>-        if (!yaml_emitter_analyze_event(emitter, emitter-&gt;events.head))</div><div class='del'>-            return 0;</div><div class='del'>-        if (!yaml_emitter_state_machine(emitter, emitter-&gt;events.head))</div><div class='del'>-            return 0;</div><div class='del'>-        yaml_event_delete(&amp;DEQUEUE(emitter, emitter-&gt;events));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if we need to accumulate more events before emitting.</div><div class='del'>- *</div><div class='del'>- * We accumulate extra</div><div class='del'>- *  - 1 event for DOCUMENT-START</div><div class='del'>- *  - 2 events for SEQUENCE-START</div><div class='del'>- *  - 3 events for MAPPING-START</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_need_more_events(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    int level = 0;</div><div class='del'>-    int accumulate = 0;</div><div class='del'>-    yaml_event_t *event;</div><div class='del'>-</div><div class='del'>-    if (QUEUE_EMPTY(emitter, emitter-&gt;events))</div><div class='del'>-        return 1;</div><div class='del'>-</div><div class='del'>-    switch (emitter-&gt;events.head-&gt;type) {</div><div class='del'>-        case YAML_DOCUMENT_START_EVENT:</div><div class='del'>-            accumulate = 1;</div><div class='del'>-            break;</div><div class='del'>-        case YAML_SEQUENCE_START_EVENT:</div><div class='del'>-            accumulate = 2;</div><div class='del'>-            break;</div><div class='del'>-        case YAML_MAPPING_START_EVENT:</div><div class='del'>-            accumulate = 3;</div><div class='del'>-            break;</div><div class='del'>-        default:</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;events.tail - emitter-&gt;events.head &gt; accumulate)</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    for (event = emitter-&gt;events.head; event != emitter-&gt;events.tail; event ++) {</div><div class='del'>-        switch (event-&gt;type) {</div><div class='del'>-            case YAML_STREAM_START_EVENT:</div><div class='del'>-            case YAML_DOCUMENT_START_EVENT:</div><div class='del'>-            case YAML_SEQUENCE_START_EVENT:</div><div class='del'>-            case YAML_MAPPING_START_EVENT:</div><div class='del'>-                level += 1;</div><div class='del'>-                break;</div><div class='del'>-            case YAML_STREAM_END_EVENT:</div><div class='del'>-            case YAML_DOCUMENT_END_EVENT:</div><div class='del'>-            case YAML_SEQUENCE_END_EVENT:</div><div class='del'>-            case YAML_MAPPING_END_EVENT:</div><div class='del'>-                level -= 1;</div><div class='del'>-                break;</div><div class='del'>-            default:</div><div class='del'>-                break;</div><div class='del'>-        }</div><div class='del'>-        if (!level)</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Append a directive to the directives stack.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_append_tag_directive(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_tag_directive_t value, int allow_duplicates)</div><div class='del'>-{</div><div class='del'>-    yaml_tag_directive_t *tag_directive;</div><div class='del'>-    yaml_tag_directive_t copy = { NULL, NULL };</div><div class='del'>-</div><div class='del'>-    for (tag_directive = emitter-&gt;tag_directives.start;</div><div class='del'>-            tag_directive != emitter-&gt;tag_directives.top; tag_directive ++) {</div><div class='del'>-        if (strcmp((char *)value.handle, (char *)tag_directive-&gt;handle) == 0) {</div><div class='del'>-            if (allow_duplicates)</div><div class='del'>-                return 1;</div><div class='del'>-            return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-                    "duplicate %TAG directive");</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    copy.handle = yaml_strdup(value.handle);</div><div class='del'>-    copy.prefix = yaml_strdup(value.prefix);</div><div class='del'>-    if (!copy.handle || !copy.prefix) {</div><div class='del'>-        emitter-&gt;error = YAML_MEMORY_ERROR;</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!PUSH(emitter, emitter-&gt;tag_directives, copy))</div><div class='del'>-        goto error;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(copy.handle);</div><div class='del'>-    yaml_free(copy.prefix);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Increase the indentation level.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_increase_indent(yaml_emitter_t *emitter,</div><div class='del'>-        int flow, int indentless)</div><div class='del'>-{</div><div class='del'>-    if (!PUSH(emitter, emitter-&gt;indents, emitter-&gt;indent))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;indent &lt; 0) {</div><div class='del'>-        emitter-&gt;indent = flow ? emitter-&gt;best_indent : 0;</div><div class='del'>-    }</div><div class='del'>-    else if (!indentless) {</div><div class='del'>-        emitter-&gt;indent += emitter-&gt;best_indent;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * State dispatcher.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_state_machine(yaml_emitter_t *emitter, yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    switch (emitter-&gt;state)</div><div class='del'>-    {</div><div class='del'>-        case YAML_EMIT_STREAM_START_STATE:</div><div class='del'>-            return yaml_emitter_emit_stream_start(emitter, event);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_FIRST_DOCUMENT_START_STATE:</div><div class='del'>-            return yaml_emitter_emit_document_start(emitter, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_DOCUMENT_START_STATE:</div><div class='del'>-            return yaml_emitter_emit_document_start(emitter, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_DOCUMENT_CONTENT_STATE:</div><div class='del'>-            return yaml_emitter_emit_document_content(emitter, event);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_DOCUMENT_END_STATE:</div><div class='del'>-            return yaml_emitter_emit_document_end(emitter, event);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE:</div><div class='del'>-            return yaml_emitter_emit_flow_sequence_item(emitter, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_FLOW_SEQUENCE_ITEM_STATE:</div><div class='del'>-            return yaml_emitter_emit_flow_sequence_item(emitter, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_FLOW_MAPPING_FIRST_KEY_STATE:</div><div class='del'>-            return yaml_emitter_emit_flow_mapping_key(emitter, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_FLOW_MAPPING_KEY_STATE:</div><div class='del'>-            return yaml_emitter_emit_flow_mapping_key(emitter, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE:</div><div class='del'>-            return yaml_emitter_emit_flow_mapping_value(emitter, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_FLOW_MAPPING_VALUE_STATE:</div><div class='del'>-            return yaml_emitter_emit_flow_mapping_value(emitter, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE:</div><div class='del'>-            return yaml_emitter_emit_block_sequence_item(emitter, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_BLOCK_SEQUENCE_ITEM_STATE:</div><div class='del'>-            return yaml_emitter_emit_block_sequence_item(emitter, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE:</div><div class='del'>-            return yaml_emitter_emit_block_mapping_key(emitter, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_BLOCK_MAPPING_KEY_STATE:</div><div class='del'>-            return yaml_emitter_emit_block_mapping_key(emitter, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE:</div><div class='del'>-            return yaml_emitter_emit_block_mapping_value(emitter, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_BLOCK_MAPPING_VALUE_STATE:</div><div class='del'>-            return yaml_emitter_emit_block_mapping_value(emitter, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_EMIT_END_STATE:</div><div class='del'>-            return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-                    "expected nothing after STREAM-END");</div><div class='del'>-</div><div class='del'>-        default:</div><div class='del'>-            assert(1);      /* Invalid state. */</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect STREAM-START.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_stream_start(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    if (event-&gt;type == YAML_STREAM_START_EVENT)</div><div class='del'>-    {</div><div class='del'>-        if (!emitter-&gt;encoding) {</div><div class='del'>-            emitter-&gt;encoding = event-&gt;data.stream_start.encoding;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (!emitter-&gt;encoding) {</div><div class='del'>-            emitter-&gt;encoding = YAML_UTF8_ENCODING;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (emitter-&gt;best_indent &lt; 2 || emitter-&gt;best_indent &gt; 9) {</div><div class='del'>-            emitter-&gt;best_indent  = 2;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (emitter-&gt;best_width &gt;= 0</div><div class='del'>-                &amp;&amp; emitter-&gt;best_width &lt;= emitter-&gt;best_indent*2) {</div><div class='del'>-            emitter-&gt;best_width = 80;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (emitter-&gt;best_width &lt; 0) {</div><div class='del'>-            emitter-&gt;best_width = INT_MAX;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (!emitter-&gt;line_break) {</div><div class='del'>-            emitter-&gt;line_break = YAML_LN_BREAK;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        emitter-&gt;indent = -1;</div><div class='del'>-</div><div class='del'>-        emitter-&gt;line = 0;</div><div class='del'>-        emitter-&gt;column = 0;</div><div class='del'>-        emitter-&gt;whitespace = 1;</div><div class='del'>-        emitter-&gt;indention = 1;</div><div class='del'>-</div><div class='del'>-        if (emitter-&gt;encoding != YAML_UTF8_ENCODING) {</div><div class='del'>-            if (!yaml_emitter_write_bom(emitter))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        emitter-&gt;state = YAML_EMIT_FIRST_DOCUMENT_START_STATE;</div><div class='del'>-</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-            "expected STREAM-START");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect DOCUMENT-START or STREAM-END.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_document_start(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int first)</div><div class='del'>-{</div><div class='del'>-    if (event-&gt;type == YAML_DOCUMENT_START_EVENT)</div><div class='del'>-    {</div><div class='del'>-        yaml_tag_directive_t default_tag_directives[] = {</div><div class='del'>-            {(yaml_char_t *)"!", (yaml_char_t *)"!"},</div><div class='del'>-            {(yaml_char_t *)"!!", (yaml_char_t *)"tag:yaml.org,2002:"},</div><div class='del'>-            {NULL, NULL}</div><div class='del'>-        };</div><div class='del'>-        yaml_tag_directive_t *tag_directive;</div><div class='del'>-        int implicit;</div><div class='del'>-</div><div class='del'>-        if (event-&gt;data.document_start.version_directive) {</div><div class='del'>-            if (!yaml_emitter_analyze_version_directive(emitter,</div><div class='del'>-                        *event-&gt;data.document_start.version_directive))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        for (tag_directive = event-&gt;data.document_start.tag_directives.start;</div><div class='del'>-                tag_directive != event-&gt;data.document_start.tag_directives.end;</div><div class='del'>-                tag_directive ++) {</div><div class='del'>-            if (!yaml_emitter_analyze_tag_directive(emitter, *tag_directive))</div><div class='del'>-                return 0;</div><div class='del'>-            if (!yaml_emitter_append_tag_directive(emitter, *tag_directive, 0))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        for (tag_directive = default_tag_directives;</div><div class='del'>-                tag_directive-&gt;handle; tag_directive ++) {</div><div class='del'>-            if (!yaml_emitter_append_tag_directive(emitter, *tag_directive, 1))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        implicit = event-&gt;data.document_start.implicit;</div><div class='del'>-        if (!first || emitter-&gt;canonical) {</div><div class='del'>-            implicit = 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if ((event-&gt;data.document_start.version_directive ||</div><div class='del'>-                    (event-&gt;data.document_start.tag_directives.start</div><div class='del'>-                     != event-&gt;data.document_start.tag_directives.end)) &amp;&amp;</div><div class='del'>-                emitter-&gt;open_ended)</div><div class='del'>-        {</div><div class='del'>-            if (!yaml_emitter_write_indicator(emitter, "...", 1, 0, 0))</div><div class='del'>-                return 0;</div><div class='del'>-            if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (event-&gt;data.document_start.version_directive) {</div><div class='del'>-            implicit = 0;</div><div class='del'>-            if (!yaml_emitter_write_indicator(emitter, "%YAML", 1, 0, 0))</div><div class='del'>-                return 0;</div><div class='del'>-            if (!yaml_emitter_write_indicator(emitter, "1.1", 1, 0, 0))</div><div class='del'>-                return 0;</div><div class='del'>-            if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (event-&gt;data.document_start.tag_directives.start</div><div class='del'>-                != event-&gt;data.document_start.tag_directives.end) {</div><div class='del'>-            implicit = 0;</div><div class='del'>-            for (tag_directive = event-&gt;data.document_start.tag_directives.start;</div><div class='del'>-                    tag_directive != event-&gt;data.document_start.tag_directives.end;</div><div class='del'>-                    tag_directive ++) {</div><div class='del'>-                if (!yaml_emitter_write_indicator(emitter, "%TAG", 1, 0, 0))</div><div class='del'>-                    return 0;</div><div class='del'>-                if (!yaml_emitter_write_tag_handle(emitter, tag_directive-&gt;handle,</div><div class='del'>-                            strlen((char *)tag_directive-&gt;handle)))</div><div class='del'>-                    return 0;</div><div class='del'>-                if (!yaml_emitter_write_tag_content(emitter, tag_directive-&gt;prefix,</div><div class='del'>-                            strlen((char *)tag_directive-&gt;prefix), 1))</div><div class='del'>-                    return 0;</div><div class='del'>-                if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-                    return 0;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (yaml_emitter_check_empty_document(emitter)) {</div><div class='del'>-            implicit = 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (!implicit) {</div><div class='del'>-            if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-                return 0;</div><div class='del'>-            if (!yaml_emitter_write_indicator(emitter, "---", 1, 0, 0))</div><div class='del'>-                return 0;</div><div class='del'>-            if (emitter-&gt;canonical) {</div><div class='del'>-                if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-                    return 0;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        emitter-&gt;state = YAML_EMIT_DOCUMENT_CONTENT_STATE;</div><div class='del'>-</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    else if (event-&gt;type == YAML_STREAM_END_EVENT)</div><div class='del'>-    {</div><div class='del'>-        if (emitter-&gt;open_ended)</div><div class='del'>-        {</div><div class='del'>-            if (!yaml_emitter_write_indicator(emitter, "...", 1, 0, 0))</div><div class='del'>-                return 0;</div><div class='del'>-            if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (!yaml_emitter_flush(emitter))</div><div class='del'>-            return 0;</div><div class='del'>-</div><div class='del'>-        emitter-&gt;state = YAML_EMIT_END_STATE;</div><div class='del'>-</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-            "expected DOCUMENT-START or STREAM-END");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect the root node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_document_content(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    if (!PUSH(emitter, emitter-&gt;states, YAML_EMIT_DOCUMENT_END_STATE))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return yaml_emitter_emit_node(emitter, event, 1, 0, 0, 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect DOCUMENT-END.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_document_end(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    if (event-&gt;type == YAML_DOCUMENT_END_EVENT)</div><div class='del'>-    {</div><div class='del'>-        if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-            return 0;</div><div class='del'>-        if (!event-&gt;data.document_end.implicit) {</div><div class='del'>-            if (!yaml_emitter_write_indicator(emitter, "...", 1, 0, 0))</div><div class='del'>-                return 0;</div><div class='del'>-            if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-        if (!yaml_emitter_flush(emitter))</div><div class='del'>-            return 0;</div><div class='del'>-</div><div class='del'>-        emitter-&gt;state = YAML_EMIT_DOCUMENT_START_STATE;</div><div class='del'>-</div><div class='del'>-        while (!STACK_EMPTY(emitter, emitter-&gt;tag_directives)) {</div><div class='del'>-            yaml_tag_directive_t tag_directive = POP(emitter,</div><div class='del'>-                    emitter-&gt;tag_directives);</div><div class='del'>-            yaml_free(tag_directive.handle);</div><div class='del'>-            yaml_free(tag_directive.prefix);</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-            "expected DOCUMENT-END");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *</div><div class='del'>- * Expect a flow item node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_flow_sequence_item(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int first)</div><div class='del'>-{</div><div class='del'>-    if (first)</div><div class='del'>-    {</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, "[", 1, 1, 0))</div><div class='del'>-            return 0;</div><div class='del'>-        if (!yaml_emitter_increase_indent(emitter, 1, 0))</div><div class='del'>-            return 0;</div><div class='del'>-        emitter-&gt;flow_level ++;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (event-&gt;type == YAML_SEQUENCE_END_EVENT)</div><div class='del'>-    {</div><div class='del'>-        emitter-&gt;flow_level --;</div><div class='del'>-        emitter-&gt;indent = POP(emitter, emitter-&gt;indents);</div><div class='del'>-        if (emitter-&gt;canonical &amp;&amp; !first) {</div><div class='del'>-            if (!yaml_emitter_write_indicator(emitter, ",", 0, 0, 0))</div><div class='del'>-                return 0;</div><div class='del'>-            if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, "]", 0, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-        emitter-&gt;state = POP(emitter, emitter-&gt;states);</div><div class='del'>-</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!first) {</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, ",", 0, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;canonical || emitter-&gt;column &gt; emitter-&gt;best_width) {</div><div class='del'>-        if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-    if (!PUSH(emitter, emitter-&gt;states, YAML_EMIT_FLOW_SEQUENCE_ITEM_STATE))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return yaml_emitter_emit_node(emitter, event, 0, 1, 0, 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect a flow key node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_flow_mapping_key(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int first)</div><div class='del'>-{</div><div class='del'>-    if (first)</div><div class='del'>-    {</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, "{", 1, 1, 0))</div><div class='del'>-            return 0;</div><div class='del'>-        if (!yaml_emitter_increase_indent(emitter, 1, 0))</div><div class='del'>-            return 0;</div><div class='del'>-        emitter-&gt;flow_level ++;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (event-&gt;type == YAML_MAPPING_END_EVENT)</div><div class='del'>-    {</div><div class='del'>-        emitter-&gt;flow_level --;</div><div class='del'>-        emitter-&gt;indent = POP(emitter, emitter-&gt;indents);</div><div class='del'>-        if (emitter-&gt;canonical &amp;&amp; !first) {</div><div class='del'>-            if (!yaml_emitter_write_indicator(emitter, ",", 0, 0, 0))</div><div class='del'>-                return 0;</div><div class='del'>-            if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, "}", 0, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-        emitter-&gt;state = POP(emitter, emitter-&gt;states);</div><div class='del'>-</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!first) {</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, ",", 0, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-    if (emitter-&gt;canonical || emitter-&gt;column &gt; emitter-&gt;best_width) {</div><div class='del'>-        if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!emitter-&gt;canonical &amp;&amp; yaml_emitter_check_simple_key(emitter))</div><div class='del'>-    {</div><div class='del'>-        if (!PUSH(emitter, emitter-&gt;states,</div><div class='del'>-                    YAML_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE))</div><div class='del'>-            return 0;</div><div class='del'>-</div><div class='del'>-        return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 1);</div><div class='del'>-    }</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, "?", 1, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-        if (!PUSH(emitter, emitter-&gt;states,</div><div class='del'>-                    YAML_EMIT_FLOW_MAPPING_VALUE_STATE))</div><div class='del'>-            return 0;</div><div class='del'>-</div><div class='del'>-        return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 0);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect a flow value node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_flow_mapping_value(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int simple)</div><div class='del'>-{</div><div class='del'>-    if (simple) {</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, ":", 0, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        if (emitter-&gt;canonical || emitter-&gt;column &gt; emitter-&gt;best_width) {</div><div class='del'>-            if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, ":", 1, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-    if (!PUSH(emitter, emitter-&gt;states, YAML_EMIT_FLOW_MAPPING_KEY_STATE))</div><div class='del'>-        return 0;</div><div class='del'>-    return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect a block item node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_block_sequence_item(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int first)</div><div class='del'>-{</div><div class='del'>-    if (first)</div><div class='del'>-    {</div><div class='del'>-        if (!yaml_emitter_increase_indent(emitter, 0,</div><div class='del'>-                    (emitter-&gt;mapping_context &amp;&amp; !emitter-&gt;indention)))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (event-&gt;type == YAML_SEQUENCE_END_EVENT)</div><div class='del'>-    {</div><div class='del'>-        emitter-&gt;indent = POP(emitter, emitter-&gt;indents);</div><div class='del'>-        emitter-&gt;state = POP(emitter, emitter-&gt;states);</div><div class='del'>-</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!yaml_emitter_write_indicator(emitter, "-", 1, 0, 1))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!PUSH(emitter, emitter-&gt;states,</div><div class='del'>-                YAML_EMIT_BLOCK_SEQUENCE_ITEM_STATE))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return yaml_emitter_emit_node(emitter, event, 0, 1, 0, 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect a block key node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_block_mapping_key(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int first)</div><div class='del'>-{</div><div class='del'>-    if (first)</div><div class='del'>-    {</div><div class='del'>-        if (!yaml_emitter_increase_indent(emitter, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (event-&gt;type == YAML_MAPPING_END_EVENT)</div><div class='del'>-    {</div><div class='del'>-        emitter-&gt;indent = POP(emitter, emitter-&gt;indents);</div><div class='del'>-        emitter-&gt;state = POP(emitter, emitter-&gt;states);</div><div class='del'>-</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    if (yaml_emitter_check_simple_key(emitter))</div><div class='del'>-    {</div><div class='del'>-        if (!PUSH(emitter, emitter-&gt;states,</div><div class='del'>-                    YAML_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE))</div><div class='del'>-            return 0;</div><div class='del'>-</div><div class='del'>-        return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 1);</div><div class='del'>-    }</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, "?", 1, 0, 1))</div><div class='del'>-            return 0;</div><div class='del'>-        if (!PUSH(emitter, emitter-&gt;states,</div><div class='del'>-                    YAML_EMIT_BLOCK_MAPPING_VALUE_STATE))</div><div class='del'>-            return 0;</div><div class='del'>-</div><div class='del'>-        return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 0);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect a block value node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_block_mapping_value(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event, int simple)</div><div class='del'>-{</div><div class='del'>-    if (simple) {</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, ":", 0, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        if (!yaml_emitter_write_indent(emitter))</div><div class='del'>-            return 0;</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, ":", 1, 0, 1))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-    if (!PUSH(emitter, emitter-&gt;states,</div><div class='del'>-                YAML_EMIT_BLOCK_MAPPING_KEY_STATE))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return yaml_emitter_emit_node(emitter, event, 0, 0, 1, 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect a node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_node(yaml_emitter_t *emitter, yaml_event_t *event,</div><div class='del'>-        int root, int sequence, int mapping, int simple_key)</div><div class='del'>-{</div><div class='del'>-    emitter-&gt;root_context = root;</div><div class='del'>-    emitter-&gt;sequence_context = sequence;</div><div class='del'>-    emitter-&gt;mapping_context = mapping;</div><div class='del'>-    emitter-&gt;simple_key_context = simple_key;</div><div class='del'>-</div><div class='del'>-    switch (event-&gt;type)</div><div class='del'>-    {</div><div class='del'>-        case YAML_ALIAS_EVENT:</div><div class='del'>-            return yaml_emitter_emit_alias(emitter, event);</div><div class='del'>-</div><div class='del'>-        case YAML_SCALAR_EVENT:</div><div class='del'>-            return yaml_emitter_emit_scalar(emitter, event);</div><div class='del'>-</div><div class='del'>-        case YAML_SEQUENCE_START_EVENT:</div><div class='del'>-            return yaml_emitter_emit_sequence_start(emitter, event);</div><div class='del'>-</div><div class='del'>-        case YAML_MAPPING_START_EVENT:</div><div class='del'>-            return yaml_emitter_emit_mapping_start(emitter, event);</div><div class='del'>-</div><div class='del'>-        default:</div><div class='del'>-            return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-                    "expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect ALIAS.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_alias(yaml_emitter_t *emitter, SHIM(yaml_event_t *event))</div><div class='del'>-{</div><div class='del'>-    if (!yaml_emitter_process_anchor(emitter))</div><div class='del'>-        return 0;</div><div class='del'>-    emitter-&gt;state = POP(emitter, emitter-&gt;states);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect SCALAR.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_scalar(yaml_emitter_t *emitter, yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    if (!yaml_emitter_select_scalar_style(emitter, event))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!yaml_emitter_process_anchor(emitter))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!yaml_emitter_process_tag(emitter))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!yaml_emitter_increase_indent(emitter, 1, 0))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!yaml_emitter_process_scalar(emitter))</div><div class='del'>-        return 0;</div><div class='del'>-    emitter-&gt;indent = POP(emitter, emitter-&gt;indents);</div><div class='del'>-    emitter-&gt;state = POP(emitter, emitter-&gt;states);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect SEQUENCE-START.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_sequence_start(yaml_emitter_t *emitter, yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    if (!yaml_emitter_process_anchor(emitter))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!yaml_emitter_process_tag(emitter))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;flow_level || emitter-&gt;canonical</div><div class='del'>-            || event-&gt;data.sequence_start.style == YAML_FLOW_SEQUENCE_STYLE</div><div class='del'>-            || yaml_emitter_check_empty_sequence(emitter)) {</div><div class='del'>-        emitter-&gt;state = YAML_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        emitter-&gt;state = YAML_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Expect MAPPING-START.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_emit_mapping_start(yaml_emitter_t *emitter, yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    if (!yaml_emitter_process_anchor(emitter))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!yaml_emitter_process_tag(emitter))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;flow_level || emitter-&gt;canonical</div><div class='del'>-            || event-&gt;data.mapping_start.style == YAML_FLOW_MAPPING_STYLE</div><div class='del'>-            || yaml_emitter_check_empty_mapping(emitter)) {</div><div class='del'>-        emitter-&gt;state = YAML_EMIT_FLOW_MAPPING_FIRST_KEY_STATE;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        emitter-&gt;state = YAML_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the document content is an empty scalar.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_check_empty_document(SHIM(yaml_emitter_t *emitter))</div><div class='del'>-{</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the next events represent an empty sequence.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_check_empty_sequence(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    if (emitter-&gt;events.tail - emitter-&gt;events.head &lt; 2)</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return (emitter-&gt;events.head[0].type == YAML_SEQUENCE_START_EVENT</div><div class='del'>-            &amp;&amp; emitter-&gt;events.head[1].type == YAML_SEQUENCE_END_EVENT);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the next events represent an empty mapping.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_check_empty_mapping(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    if (emitter-&gt;events.tail - emitter-&gt;events.head &lt; 2)</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return (emitter-&gt;events.head[0].type == YAML_MAPPING_START_EVENT</div><div class='del'>-            &amp;&amp; emitter-&gt;events.head[1].type == YAML_MAPPING_END_EVENT);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the next node can be expressed as a simple key.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_check_simple_key(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t *event = emitter-&gt;events.head;</div><div class='del'>-    size_t length = 0;</div><div class='del'>-</div><div class='del'>-    switch (event-&gt;type)</div><div class='del'>-    {</div><div class='del'>-        case YAML_ALIAS_EVENT:</div><div class='del'>-            length += emitter-&gt;anchor_data.anchor_length;</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        case YAML_SCALAR_EVENT:</div><div class='del'>-            if (emitter-&gt;scalar_data.multiline)</div><div class='del'>-                return 0;</div><div class='del'>-            length += emitter-&gt;anchor_data.anchor_length</div><div class='del'>-                + emitter-&gt;tag_data.handle_length</div><div class='del'>-                + emitter-&gt;tag_data.suffix_length</div><div class='del'>-                + emitter-&gt;scalar_data.length;</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        case YAML_SEQUENCE_START_EVENT:</div><div class='del'>-            if (!yaml_emitter_check_empty_sequence(emitter))</div><div class='del'>-                return 0;</div><div class='del'>-            length += emitter-&gt;anchor_data.anchor_length</div><div class='del'>-                + emitter-&gt;tag_data.handle_length</div><div class='del'>-                + emitter-&gt;tag_data.suffix_length;</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        case YAML_MAPPING_START_EVENT:</div><div class='del'>-            if (!yaml_emitter_check_empty_mapping(emitter))</div><div class='del'>-                return 0;</div><div class='del'>-            length += emitter-&gt;anchor_data.anchor_length</div><div class='del'>-                + emitter-&gt;tag_data.handle_length</div><div class='del'>-                + emitter-&gt;tag_data.suffix_length;</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        default:</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (length &gt; 128)</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Determine an acceptable scalar style.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_select_scalar_style(yaml_emitter_t *emitter, yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_scalar_style_t style = event-&gt;data.scalar.style;</div><div class='del'>-    int no_tag = (!emitter-&gt;tag_data.handle &amp;&amp; !emitter-&gt;tag_data.suffix);</div><div class='del'>-</div><div class='del'>-    if (no_tag &amp;&amp; !event-&gt;data.scalar.plain_implicit</div><div class='del'>-            &amp;&amp; !event-&gt;data.scalar.quoted_implicit) {</div><div class='del'>-        return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-                "neither tag nor implicit flags are specified");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (style == YAML_ANY_SCALAR_STYLE)</div><div class='del'>-        style = YAML_PLAIN_SCALAR_STYLE;</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;canonical)</div><div class='del'>-        style = YAML_DOUBLE_QUOTED_SCALAR_STYLE;</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;simple_key_context &amp;&amp; emitter-&gt;scalar_data.multiline)</div><div class='del'>-        style = YAML_DOUBLE_QUOTED_SCALAR_STYLE;</div><div class='del'>-</div><div class='del'>-    if (style == YAML_PLAIN_SCALAR_STYLE)</div><div class='del'>-    {</div><div class='del'>-        if ((emitter-&gt;flow_level &amp;&amp; !emitter-&gt;scalar_data.flow_plain_allowed)</div><div class='del'>-                || (!emitter-&gt;flow_level &amp;&amp; !emitter-&gt;scalar_data.block_plain_allowed))</div><div class='del'>-            style = YAML_SINGLE_QUOTED_SCALAR_STYLE;</div><div class='del'>-        if (!emitter-&gt;scalar_data.length</div><div class='del'>-                &amp;&amp; (emitter-&gt;flow_level || emitter-&gt;simple_key_context))</div><div class='del'>-            style = YAML_SINGLE_QUOTED_SCALAR_STYLE;</div><div class='del'>-        if (no_tag &amp;&amp; !event-&gt;data.scalar.plain_implicit)</div><div class='del'>-            style = YAML_SINGLE_QUOTED_SCALAR_STYLE;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (style == YAML_SINGLE_QUOTED_SCALAR_STYLE)</div><div class='del'>-    {</div><div class='del'>-        if (!emitter-&gt;scalar_data.single_quoted_allowed)</div><div class='del'>-            style = YAML_DOUBLE_QUOTED_SCALAR_STYLE;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (style == YAML_LITERAL_SCALAR_STYLE || style == YAML_FOLDED_SCALAR_STYLE)</div><div class='del'>-    {</div><div class='del'>-        if (!emitter-&gt;scalar_data.block_allowed</div><div class='del'>-                || emitter-&gt;flow_level || emitter-&gt;simple_key_context)</div><div class='del'>-            style = YAML_DOUBLE_QUOTED_SCALAR_STYLE;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (no_tag &amp;&amp; !event-&gt;data.scalar.quoted_implicit</div><div class='del'>-            &amp;&amp; style != YAML_PLAIN_SCALAR_STYLE)</div><div class='del'>-    {</div><div class='del'>-        emitter-&gt;tag_data.handle = (yaml_char_t *)"!";</div><div class='del'>-        emitter-&gt;tag_data.handle_length = 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;scalar_data.style = style;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Write an anchor.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_process_anchor(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    if (!emitter-&gt;anchor_data.anchor)</div><div class='del'>-        return 1;</div><div class='del'>-</div><div class='del'>-    if (!yaml_emitter_write_indicator(emitter,</div><div class='del'>-                (emitter-&gt;anchor_data.alias ? "*" : "&amp;"), 1, 0, 0))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return yaml_emitter_write_anchor(emitter,</div><div class='del'>-            emitter-&gt;anchor_data.anchor, emitter-&gt;anchor_data.anchor_length);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Write a tag.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_process_tag(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    if (!emitter-&gt;tag_data.handle &amp;&amp; !emitter-&gt;tag_data.suffix)</div><div class='del'>-        return 1;</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;tag_data.handle)</div><div class='del'>-    {</div><div class='del'>-        if (!yaml_emitter_write_tag_handle(emitter, emitter-&gt;tag_data.handle,</div><div class='del'>-                    emitter-&gt;tag_data.handle_length))</div><div class='del'>-            return 0;</div><div class='del'>-        if (emitter-&gt;tag_data.suffix) {</div><div class='del'>-            if (!yaml_emitter_write_tag_content(emitter, emitter-&gt;tag_data.suffix,</div><div class='del'>-                        emitter-&gt;tag_data.suffix_length, 0))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, "!&lt;", 1, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-        if (!yaml_emitter_write_tag_content(emitter, emitter-&gt;tag_data.suffix,</div><div class='del'>-                    emitter-&gt;tag_data.suffix_length, 0))</div><div class='del'>-            return 0;</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, "&gt;", 0, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Write a scalar.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_process_scalar(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    switch (emitter-&gt;scalar_data.style)</div><div class='del'>-    {</div><div class='del'>-        case YAML_PLAIN_SCALAR_STYLE:</div><div class='del'>-            return yaml_emitter_write_plain_scalar(emitter,</div><div class='del'>-                    emitter-&gt;scalar_data.value, emitter-&gt;scalar_data.length,</div><div class='del'>-                    !emitter-&gt;simple_key_context);</div><div class='del'>-</div><div class='del'>-        case YAML_SINGLE_QUOTED_SCALAR_STYLE:</div><div class='del'>-            return yaml_emitter_write_single_quoted_scalar(emitter,</div><div class='del'>-                    emitter-&gt;scalar_data.value, emitter-&gt;scalar_data.length,</div><div class='del'>-                    !emitter-&gt;simple_key_context);</div><div class='del'>-</div><div class='del'>-        case YAML_DOUBLE_QUOTED_SCALAR_STYLE:</div><div class='del'>-            return yaml_emitter_write_double_quoted_scalar(emitter,</div><div class='del'>-                    emitter-&gt;scalar_data.value, emitter-&gt;scalar_data.length,</div><div class='del'>-                    !emitter-&gt;simple_key_context);</div><div class='del'>-</div><div class='del'>-        case YAML_LITERAL_SCALAR_STYLE:</div><div class='del'>-            return yaml_emitter_write_literal_scalar(emitter,</div><div class='del'>-                    emitter-&gt;scalar_data.value, emitter-&gt;scalar_data.length);</div><div class='del'>-</div><div class='del'>-        case YAML_FOLDED_SCALAR_STYLE:</div><div class='del'>-            return yaml_emitter_write_folded_scalar(emitter,</div><div class='del'>-                    emitter-&gt;scalar_data.value, emitter-&gt;scalar_data.length);</div><div class='del'>-</div><div class='del'>-        default:</div><div class='del'>-            assert(1);      /* Impossible. */</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if a %YAML directive is valid.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_version_directive(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_version_directive_t version_directive)</div><div class='del'>-{</div><div class='del'>-    if (version_directive.major != 1 || version_directive.minor != 1) {</div><div class='del'>-        return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-                "incompatible %YAML directive");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if a %TAG directive is valid.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_tag_directive(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_tag_directive_t tag_directive)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t handle;</div><div class='del'>-    yaml_string_t prefix;</div><div class='del'>-    size_t handle_length;</div><div class='del'>-    size_t prefix_length;</div><div class='del'>-</div><div class='del'>-    handle_length = strlen((char *)tag_directive.handle);</div><div class='del'>-    prefix_length = strlen((char *)tag_directive.prefix);</div><div class='del'>-    STRING_ASSIGN(handle, tag_directive.handle, handle_length);</div><div class='del'>-    STRING_ASSIGN(prefix, tag_directive.prefix, prefix_length);</div><div class='del'>-</div><div class='del'>-    if (handle.start == handle.end) {</div><div class='del'>-        return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-                "tag handle must not be empty");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (handle.start[0] != '!') {</div><div class='del'>-        return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-                "tag handle must start with '!'");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (handle.end[-1] != '!') {</div><div class='del'>-        return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-                "tag handle must end with '!'");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    handle.pointer ++;</div><div class='del'>-</div><div class='del'>-    while (handle.pointer &lt; handle.end-1) {</div><div class='del'>-        if (!IS_ALPHA(handle)) {</div><div class='del'>-            return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-                    "tag handle must contain alphanumerical characters only");</div><div class='del'>-        }</div><div class='del'>-        MOVE(handle);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (prefix.start == prefix.end) {</div><div class='del'>-        return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-                "tag prefix must not be empty");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if an anchor is valid.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_anchor(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *anchor, int alias)</div><div class='del'>-{</div><div class='del'>-    size_t anchor_length;</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-</div><div class='del'>-    anchor_length = strlen((char *)anchor);</div><div class='del'>-    STRING_ASSIGN(string, anchor, anchor_length);</div><div class='del'>-</div><div class='del'>-    if (string.start == string.end) {</div><div class='del'>-        return yaml_emitter_set_emitter_error(emitter, alias ?</div><div class='del'>-                "alias value must not be empty" :</div><div class='del'>-                "anchor value must not be empty");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    while (string.pointer != string.end) {</div><div class='del'>-        if (!IS_ALPHA(string)) {</div><div class='del'>-            return yaml_emitter_set_emitter_error(emitter, alias ?</div><div class='del'>-                    "alias value must contain alphanumerical characters only" :</div><div class='del'>-                    "anchor value must contain alphanumerical characters only");</div><div class='del'>-        }</div><div class='del'>-        MOVE(string);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;anchor_data.anchor = string.start;</div><div class='del'>-    emitter-&gt;anchor_data.anchor_length = string.end - string.start;</div><div class='del'>-    emitter-&gt;anchor_data.alias = alias;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if a tag is valid.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_tag(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *tag)</div><div class='del'>-{</div><div class='del'>-    size_t tag_length;</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-    yaml_tag_directive_t *tag_directive;</div><div class='del'>-</div><div class='del'>-    tag_length = strlen((char *)tag);</div><div class='del'>-    STRING_ASSIGN(string, tag, tag_length);</div><div class='del'>-</div><div class='del'>-    if (string.start == string.end) {</div><div class='del'>-        return yaml_emitter_set_emitter_error(emitter,</div><div class='del'>-                "tag value must not be empty");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    for (tag_directive = emitter-&gt;tag_directives.start;</div><div class='del'>-            tag_directive != emitter-&gt;tag_directives.top; tag_directive ++) {</div><div class='del'>-        size_t prefix_length = strlen((char *)tag_directive-&gt;prefix);</div><div class='del'>-        if (prefix_length &lt; (size_t)(string.end - string.start)</div><div class='del'>-                &amp;&amp; strncmp((char *)tag_directive-&gt;prefix, (char *)string.start,</div><div class='del'>-                    prefix_length) == 0)</div><div class='del'>-        {</div><div class='del'>-            emitter-&gt;tag_data.handle = tag_directive-&gt;handle;</div><div class='del'>-            emitter-&gt;tag_data.handle_length =</div><div class='del'>-                strlen((char *)tag_directive-&gt;handle);</div><div class='del'>-            emitter-&gt;tag_data.suffix = string.start + prefix_length;</div><div class='del'>-            emitter-&gt;tag_data.suffix_length =</div><div class='del'>-                (string.end - string.start) - prefix_length;</div><div class='del'>-            return 1;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;tag_data.suffix = string.start;</div><div class='del'>-    emitter-&gt;tag_data.suffix_length = string.end - string.start;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if a scalar is valid.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-</div><div class='del'>-    int block_indicators = 0;</div><div class='del'>-    int flow_indicators = 0;</div><div class='del'>-    int line_breaks = 0;</div><div class='del'>-    int special_characters = 0;</div><div class='del'>-</div><div class='del'>-    int leading_space = 0;</div><div class='del'>-    int leading_break = 0;</div><div class='del'>-    int trailing_space = 0;</div><div class='del'>-    int trailing_break = 0;</div><div class='del'>-    int break_space = 0;</div><div class='del'>-    int space_break = 0;</div><div class='del'>-</div><div class='del'>-    int preceded_by_whitespace = 0;</div><div class='del'>-    int followed_by_whitespace = 0;</div><div class='del'>-    int previous_space = 0;</div><div class='del'>-    int previous_break = 0;</div><div class='del'>-</div><div class='del'>-    STRING_ASSIGN(string, value, length);</div><div class='del'>-</div><div class='del'>-    emitter-&gt;scalar_data.value = value;</div><div class='del'>-    emitter-&gt;scalar_data.length = length;</div><div class='del'>-</div><div class='del'>-    if (string.start == string.end)</div><div class='del'>-    {</div><div class='del'>-        emitter-&gt;scalar_data.multiline = 0;</div><div class='del'>-        emitter-&gt;scalar_data.flow_plain_allowed = 0;</div><div class='del'>-        emitter-&gt;scalar_data.block_plain_allowed = 1;</div><div class='del'>-        emitter-&gt;scalar_data.single_quoted_allowed = 1;</div><div class='del'>-        emitter-&gt;scalar_data.block_allowed = 0;</div><div class='del'>-</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if ((CHECK_AT(string, '-', 0)</div><div class='del'>-                &amp;&amp; CHECK_AT(string, '-', 1)</div><div class='del'>-                &amp;&amp; CHECK_AT(string, '-', 2))</div><div class='del'>-            || (CHECK_AT(string, '.', 0)</div><div class='del'>-                &amp;&amp; CHECK_AT(string, '.', 1)</div><div class='del'>-                &amp;&amp; CHECK_AT(string, '.', 2))) {</div><div class='del'>-        block_indicators = 1;</div><div class='del'>-        flow_indicators = 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    preceded_by_whitespace = 1;</div><div class='del'>-    followed_by_whitespace = IS_BLANKZ_AT(string, WIDTH(string));</div><div class='del'>-</div><div class='del'>-    while (string.pointer != string.end)</div><div class='del'>-    {</div><div class='del'>-        if (string.start == string.pointer)</div><div class='del'>-        {</div><div class='del'>-            if (CHECK(string, '#') || CHECK(string, ',')</div><div class='del'>-                    || CHECK(string, '[') || CHECK(string, ']')</div><div class='del'>-                    || CHECK(string, '{') || CHECK(string, '}')</div><div class='del'>-                    || CHECK(string, '&amp;') || CHECK(string, '*')</div><div class='del'>-                    || CHECK(string, '!') || CHECK(string, '|')</div><div class='del'>-                    || CHECK(string, '&gt;') || CHECK(string, '\'')</div><div class='del'>-                    || CHECK(string, '"') || CHECK(string, '%')</div><div class='del'>-                    || CHECK(string, '@') || CHECK(string, '`')) {</div><div class='del'>-                flow_indicators = 1;</div><div class='del'>-                block_indicators = 1;</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            if (CHECK(string, '?') || CHECK(string, ':')) {</div><div class='del'>-                flow_indicators = 1;</div><div class='del'>-                if (followed_by_whitespace) {</div><div class='del'>-                    block_indicators = 1;</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            if (CHECK(string, '-') &amp;&amp; followed_by_whitespace) {</div><div class='del'>-                flow_indicators = 1;</div><div class='del'>-                block_indicators = 1;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            if (CHECK(string, ',') || CHECK(string, '?')</div><div class='del'>-                    || CHECK(string, '[') || CHECK(string, ']')</div><div class='del'>-                    || CHECK(string, '{') || CHECK(string, '}')) {</div><div class='del'>-                flow_indicators = 1;</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            if (CHECK(string, ':')) {</div><div class='del'>-                flow_indicators = 1;</div><div class='del'>-                if (followed_by_whitespace) {</div><div class='del'>-                    block_indicators = 1;</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            if (CHECK(string, '#') &amp;&amp; preceded_by_whitespace) {</div><div class='del'>-                flow_indicators = 1;</div><div class='del'>-                block_indicators = 1;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (!IS_PRINTABLE(string)</div><div class='del'>-                || (!IS_ASCII(string) &amp;&amp; !emitter-&gt;unicode)) {</div><div class='del'>-            special_characters = 1;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (IS_BREAK(string)) {</div><div class='del'>-            line_breaks = 1;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (IS_SPACE(string))</div><div class='del'>-        {</div><div class='del'>-            if (string.start == string.pointer) {</div><div class='del'>-                leading_space = 1;</div><div class='del'>-            }</div><div class='del'>-            if (string.pointer+WIDTH(string) == string.end) {</div><div class='del'>-                trailing_space = 1;</div><div class='del'>-            }</div><div class='del'>-            if (previous_break) {</div><div class='del'>-                break_space = 1;</div><div class='del'>-            }</div><div class='del'>-            previous_space = 1;</div><div class='del'>-            previous_break = 0;</div><div class='del'>-        }</div><div class='del'>-        else if (IS_BREAK(string))</div><div class='del'>-        {</div><div class='del'>-            if (string.start == string.pointer) {</div><div class='del'>-                leading_break = 1;</div><div class='del'>-            }</div><div class='del'>-            if (string.pointer+WIDTH(string) == string.end) {</div><div class='del'>-                trailing_break = 1;</div><div class='del'>-            }</div><div class='del'>-            if (previous_space) {</div><div class='del'>-                space_break = 1;</div><div class='del'>-            }</div><div class='del'>-            previous_space = 0;</div><div class='del'>-            previous_break = 1;</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            previous_space = 0;</div><div class='del'>-            previous_break = 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        preceded_by_whitespace = IS_BLANKZ(string);</div><div class='del'>-        MOVE(string);</div><div class='del'>-        if (string.pointer != string.end) {</div><div class='del'>-            followed_by_whitespace = IS_BLANKZ_AT(string, WIDTH(string));</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;scalar_data.multiline = line_breaks;</div><div class='del'>-</div><div class='del'>-    emitter-&gt;scalar_data.flow_plain_allowed = 1;</div><div class='del'>-    emitter-&gt;scalar_data.block_plain_allowed = 1;</div><div class='del'>-    emitter-&gt;scalar_data.single_quoted_allowed = 1;</div><div class='del'>-    emitter-&gt;scalar_data.block_allowed = 1;</div><div class='del'>-</div><div class='del'>-    if (leading_space || leading_break || trailing_space || trailing_break) {</div><div class='del'>-        emitter-&gt;scalar_data.flow_plain_allowed = 0;</div><div class='del'>-        emitter-&gt;scalar_data.block_plain_allowed = 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (trailing_space) {</div><div class='del'>-        emitter-&gt;scalar_data.block_allowed = 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (break_space) {</div><div class='del'>-        emitter-&gt;scalar_data.flow_plain_allowed = 0;</div><div class='del'>-        emitter-&gt;scalar_data.block_plain_allowed = 0;</div><div class='del'>-        emitter-&gt;scalar_data.single_quoted_allowed = 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (space_break || special_characters) {</div><div class='del'>-        emitter-&gt;scalar_data.flow_plain_allowed = 0;</div><div class='del'>-        emitter-&gt;scalar_data.block_plain_allowed = 0;</div><div class='del'>-        emitter-&gt;scalar_data.single_quoted_allowed = 0;</div><div class='del'>-        emitter-&gt;scalar_data.block_allowed = 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (line_breaks) {</div><div class='del'>-        emitter-&gt;scalar_data.flow_plain_allowed = 0;</div><div class='del'>-        emitter-&gt;scalar_data.block_plain_allowed = 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (flow_indicators) {</div><div class='del'>-        emitter-&gt;scalar_data.flow_plain_allowed = 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (block_indicators) {</div><div class='del'>-        emitter-&gt;scalar_data.block_plain_allowed = 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the event data is valid.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_analyze_event(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    emitter-&gt;anchor_data.anchor = NULL;</div><div class='del'>-    emitter-&gt;anchor_data.anchor_length = 0;</div><div class='del'>-    emitter-&gt;tag_data.handle = NULL;</div><div class='del'>-    emitter-&gt;tag_data.handle_length = 0;</div><div class='del'>-    emitter-&gt;tag_data.suffix = NULL;</div><div class='del'>-    emitter-&gt;tag_data.suffix_length = 0;</div><div class='del'>-    emitter-&gt;scalar_data.value = NULL;</div><div class='del'>-    emitter-&gt;scalar_data.length = 0;</div><div class='del'>-</div><div class='del'>-    switch (event-&gt;type)</div><div class='del'>-    {</div><div class='del'>-        case YAML_ALIAS_EVENT:</div><div class='del'>-            if (!yaml_emitter_analyze_anchor(emitter,</div><div class='del'>-                        event-&gt;data.alias.anchor, 1))</div><div class='del'>-                return 0;</div><div class='del'>-            return 1;</div><div class='del'>-</div><div class='del'>-        case YAML_SCALAR_EVENT:</div><div class='del'>-            if (event-&gt;data.scalar.anchor) {</div><div class='del'>-                if (!yaml_emitter_analyze_anchor(emitter,</div><div class='del'>-                            event-&gt;data.scalar.anchor, 0))</div><div class='del'>-                    return 0;</div><div class='del'>-            }</div><div class='del'>-            if (event-&gt;data.scalar.tag &amp;&amp; (emitter-&gt;canonical ||</div><div class='del'>-                        (!event-&gt;data.scalar.plain_implicit</div><div class='del'>-                         &amp;&amp; !event-&gt;data.scalar.quoted_implicit))) {</div><div class='del'>-                if (!yaml_emitter_analyze_tag(emitter, event-&gt;data.scalar.tag))</div><div class='del'>-                    return 0;</div><div class='del'>-            }</div><div class='del'>-            if (!yaml_emitter_analyze_scalar(emitter,</div><div class='del'>-                        event-&gt;data.scalar.value, event-&gt;data.scalar.length))</div><div class='del'>-                return 0;</div><div class='del'>-            return 1;</div><div class='del'>-</div><div class='del'>-        case YAML_SEQUENCE_START_EVENT:</div><div class='del'>-            if (event-&gt;data.sequence_start.anchor) {</div><div class='del'>-                if (!yaml_emitter_analyze_anchor(emitter,</div><div class='del'>-                            event-&gt;data.sequence_start.anchor, 0))</div><div class='del'>-                    return 0;</div><div class='del'>-            }</div><div class='del'>-            if (event-&gt;data.sequence_start.tag &amp;&amp; (emitter-&gt;canonical ||</div><div class='del'>-                        !event-&gt;data.sequence_start.implicit)) {</div><div class='del'>-                if (!yaml_emitter_analyze_tag(emitter,</div><div class='del'>-                            event-&gt;data.sequence_start.tag))</div><div class='del'>-                    return 0;</div><div class='del'>-            }</div><div class='del'>-            return 1;</div><div class='del'>-</div><div class='del'>-        case YAML_MAPPING_START_EVENT:</div><div class='del'>-            if (event-&gt;data.mapping_start.anchor) {</div><div class='del'>-                if (!yaml_emitter_analyze_anchor(emitter,</div><div class='del'>-                            event-&gt;data.mapping_start.anchor, 0))</div><div class='del'>-                    return 0;</div><div class='del'>-            }</div><div class='del'>-            if (event-&gt;data.mapping_start.tag &amp;&amp; (emitter-&gt;canonical ||</div><div class='del'>-                        !event-&gt;data.mapping_start.implicit)) {</div><div class='del'>-                if (!yaml_emitter_analyze_tag(emitter,</div><div class='del'>-                            event-&gt;data.mapping_start.tag))</div><div class='del'>-                    return 0;</div><div class='del'>-            }</div><div class='del'>-            return 1;</div><div class='del'>-</div><div class='del'>-        default:</div><div class='del'>-            return 1;</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Write the BOM character.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_bom(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    if (!FLUSH(emitter)) return 0;</div><div class='del'>-</div><div class='del'>-    *(emitter-&gt;buffer.pointer++) = (yaml_char_t) '\xEF';</div><div class='del'>-    *(emitter-&gt;buffer.pointer++) = (yaml_char_t) '\xBB';</div><div class='del'>-    *(emitter-&gt;buffer.pointer++) = (yaml_char_t) '\xBF';</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_indent(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    int indent = (emitter-&gt;indent &gt;= 0) ? emitter-&gt;indent : 0;</div><div class='del'>-</div><div class='del'>-    if (!emitter-&gt;indention || emitter-&gt;column &gt; indent</div><div class='del'>-            || (emitter-&gt;column == indent &amp;&amp; !emitter-&gt;whitespace)) {</div><div class='del'>-        if (!PUT_BREAK(emitter)) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    while (emitter-&gt;column &lt; indent) {</div><div class='del'>-        if (!PUT(emitter, ' ')) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;whitespace = 1;</div><div class='del'>-    emitter-&gt;indention = 1;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_indicator(yaml_emitter_t *emitter,</div><div class='del'>-        const char *indicator, int need_whitespace,</div><div class='del'>-        int is_whitespace, int is_indention)</div><div class='del'>-{</div><div class='del'>-    size_t indicator_length;</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-</div><div class='del'>-    indicator_length = strlen(indicator);</div><div class='del'>-    STRING_ASSIGN(string, (yaml_char_t *)indicator, indicator_length);</div><div class='del'>-</div><div class='del'>-    if (need_whitespace &amp;&amp; !emitter-&gt;whitespace) {</div><div class='del'>-        if (!PUT(emitter, ' ')) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    while (string.pointer != string.end) {</div><div class='del'>-        if (!WRITE(emitter, string)) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;whitespace = is_whitespace;</div><div class='del'>-    emitter-&gt;indention = (emitter-&gt;indention &amp;&amp; is_indention);</div><div class='del'>-    emitter-&gt;open_ended = 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_anchor(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-    STRING_ASSIGN(string, value, length);</div><div class='del'>-</div><div class='del'>-    while (string.pointer != string.end) {</div><div class='del'>-        if (!WRITE(emitter, string)) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;whitespace = 0;</div><div class='del'>-    emitter-&gt;indention = 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_tag_handle(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-    STRING_ASSIGN(string, value, length);</div><div class='del'>-</div><div class='del'>-    if (!emitter-&gt;whitespace) {</div><div class='del'>-        if (!PUT(emitter, ' ')) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    while (string.pointer != string.end) {</div><div class='del'>-        if (!WRITE(emitter, string)) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;whitespace = 0;</div><div class='del'>-    emitter-&gt;indention = 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_tag_content(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length,</div><div class='del'>-        int need_whitespace)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-    STRING_ASSIGN(string, value, length);</div><div class='del'>-</div><div class='del'>-    if (need_whitespace &amp;&amp; !emitter-&gt;whitespace) {</div><div class='del'>-        if (!PUT(emitter, ' ')) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    while (string.pointer != string.end) {</div><div class='del'>-        if (IS_ALPHA(string)</div><div class='del'>-                || CHECK(string, ';') || CHECK(string, '/')</div><div class='del'>-                || CHECK(string, '?') || CHECK(string, ':')</div><div class='del'>-                || CHECK(string, '@') || CHECK(string, '&amp;')</div><div class='del'>-                || CHECK(string, '=') || CHECK(string, '+')</div><div class='del'>-                || CHECK(string, '$') || CHECK(string, ',')</div><div class='del'>-                || CHECK(string, '_') || CHECK(string, '.')</div><div class='del'>-                || CHECK(string, '~') || CHECK(string, '*')</div><div class='del'>-                || CHECK(string, '\'') || CHECK(string, '(')</div><div class='del'>-                || CHECK(string, ')') || CHECK(string, '[')</div><div class='del'>-                || CHECK(string, ']')) {</div><div class='del'>-            if (!WRITE(emitter, string)) return 0;</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            int width = WIDTH(string);</div><div class='del'>-            unsigned int value;</div><div class='del'>-            while (width --) {</div><div class='del'>-                value = *(string.pointer++);</div><div class='del'>-                if (!PUT(emitter, '%')) return 0;</div><div class='del'>-                if (!PUT(emitter, (value &gt;&gt; 4)</div><div class='del'>-                            + ((value &gt;&gt; 4) &lt; 10 ? '0' : 'A' - 10)))</div><div class='del'>-                    return 0;</div><div class='del'>-                if (!PUT(emitter, (value &amp; 0x0F)</div><div class='del'>-                            + ((value &amp; 0x0F) &lt; 10 ? '0' : 'A' - 10)))</div><div class='del'>-                    return 0;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;whitespace = 0;</div><div class='del'>-    emitter-&gt;indention = 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_plain_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length, int allow_breaks)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-    int spaces = 0;</div><div class='del'>-    int breaks = 0;</div><div class='del'>-</div><div class='del'>-    STRING_ASSIGN(string, value, length);</div><div class='del'>-</div><div class='del'>-    if (!emitter-&gt;whitespace) {</div><div class='del'>-        if (!PUT(emitter, ' ')) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    while (string.pointer != string.end)</div><div class='del'>-    {</div><div class='del'>-        if (IS_SPACE(string))</div><div class='del'>-        {</div><div class='del'>-            if (allow_breaks &amp;&amp; !spaces</div><div class='del'>-                    &amp;&amp; emitter-&gt;column &gt; emitter-&gt;best_width</div><div class='del'>-                    &amp;&amp; !IS_SPACE_AT(string, 1)) {</div><div class='del'>-                if (!yaml_emitter_write_indent(emitter)) return 0;</div><div class='del'>-                MOVE(string);</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                if (!WRITE(emitter, string)) return 0;</div><div class='del'>-            }</div><div class='del'>-            spaces = 1;</div><div class='del'>-        }</div><div class='del'>-        else if (IS_BREAK(string))</div><div class='del'>-        {</div><div class='del'>-            if (!breaks &amp;&amp; CHECK(string, '\n')) {</div><div class='del'>-                if (!PUT_BREAK(emitter)) return 0;</div><div class='del'>-            }</div><div class='del'>-            if (!WRITE_BREAK(emitter, string)) return 0;</div><div class='del'>-            emitter-&gt;indention = 1;</div><div class='del'>-            breaks = 1;</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            if (breaks) {</div><div class='del'>-                if (!yaml_emitter_write_indent(emitter)) return 0;</div><div class='del'>-            }</div><div class='del'>-            if (!WRITE(emitter, string)) return 0;</div><div class='del'>-            emitter-&gt;indention = 0;</div><div class='del'>-            spaces = 0;</div><div class='del'>-            breaks = 0;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;whitespace = 0;</div><div class='del'>-    emitter-&gt;indention = 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_single_quoted_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length, int allow_breaks)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-    int spaces = 0;</div><div class='del'>-    int breaks = 0;</div><div class='del'>-</div><div class='del'>-    STRING_ASSIGN(string, value, length);</div><div class='del'>-</div><div class='del'>-    if (!yaml_emitter_write_indicator(emitter, "'", 1, 0, 0))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    while (string.pointer != string.end)</div><div class='del'>-    {</div><div class='del'>-        if (IS_SPACE(string))</div><div class='del'>-        {</div><div class='del'>-            if (allow_breaks &amp;&amp; !spaces</div><div class='del'>-                    &amp;&amp; emitter-&gt;column &gt; emitter-&gt;best_width</div><div class='del'>-                    &amp;&amp; string.pointer != string.start</div><div class='del'>-                    &amp;&amp; string.pointer != string.end - 1</div><div class='del'>-                    &amp;&amp; !IS_SPACE_AT(string, 1)) {</div><div class='del'>-                if (!yaml_emitter_write_indent(emitter)) return 0;</div><div class='del'>-                MOVE(string);</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                if (!WRITE(emitter, string)) return 0;</div><div class='del'>-            }</div><div class='del'>-            spaces = 1;</div><div class='del'>-        }</div><div class='del'>-        else if (IS_BREAK(string))</div><div class='del'>-        {</div><div class='del'>-            if (!breaks &amp;&amp; CHECK(string, '\n')) {</div><div class='del'>-                if (!PUT_BREAK(emitter)) return 0;</div><div class='del'>-            }</div><div class='del'>-            if (!WRITE_BREAK(emitter, string)) return 0;</div><div class='del'>-            emitter-&gt;indention = 1;</div><div class='del'>-            breaks = 1;</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            if (breaks) {</div><div class='del'>-                if (!yaml_emitter_write_indent(emitter)) return 0;</div><div class='del'>-            }</div><div class='del'>-            if (CHECK(string, '\'')) {</div><div class='del'>-                if (!PUT(emitter, '\'')) return 0;</div><div class='del'>-            }</div><div class='del'>-            if (!WRITE(emitter, string)) return 0;</div><div class='del'>-            emitter-&gt;indention = 0;</div><div class='del'>-            spaces = 0;</div><div class='del'>-            breaks = 0;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!yaml_emitter_write_indicator(emitter, "'", 0, 0, 0))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    emitter-&gt;whitespace = 0;</div><div class='del'>-    emitter-&gt;indention = 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_double_quoted_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length, int allow_breaks)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-    int spaces = 0;</div><div class='del'>-</div><div class='del'>-    STRING_ASSIGN(string, value, length);</div><div class='del'>-</div><div class='del'>-    if (!yaml_emitter_write_indicator(emitter, "\"", 1, 0, 0))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    while (string.pointer != string.end)</div><div class='del'>-    {</div><div class='del'>-        if (!IS_PRINTABLE(string) || (!emitter-&gt;unicode &amp;&amp; !IS_ASCII(string))</div><div class='del'>-                || IS_BOM(string) || IS_BREAK(string)</div><div class='del'>-                || CHECK(string, '"') || CHECK(string, '\\'))</div><div class='del'>-        {</div><div class='del'>-            unsigned char octet;</div><div class='del'>-            unsigned int width;</div><div class='del'>-            unsigned int value;</div><div class='del'>-            int k;</div><div class='del'>-</div><div class='del'>-            octet = string.pointer[0];</div><div class='del'>-            width = (octet &amp; 0x80) == 0x00 ? 1 :</div><div class='del'>-                    (octet &amp; 0xE0) == 0xC0 ? 2 :</div><div class='del'>-                    (octet &amp; 0xF0) == 0xE0 ? 3 :</div><div class='del'>-                    (octet &amp; 0xF8) == 0xF0 ? 4 : 0;</div><div class='del'>-            value = (octet &amp; 0x80) == 0x00 ? octet &amp; 0x7F :</div><div class='del'>-                    (octet &amp; 0xE0) == 0xC0 ? octet &amp; 0x1F :</div><div class='del'>-                    (octet &amp; 0xF0) == 0xE0 ? octet &amp; 0x0F :</div><div class='del'>-                    (octet &amp; 0xF8) == 0xF0 ? octet &amp; 0x07 : 0;</div><div class='del'>-            for (k = 1; k &lt; (int)width; k ++) {</div><div class='del'>-                octet = string.pointer[k];</div><div class='del'>-                value = (value &lt;&lt; 6) + (octet &amp; 0x3F);</div><div class='del'>-            }</div><div class='del'>-            string.pointer += width;</div><div class='del'>-</div><div class='del'>-            if (!PUT(emitter, '\\')) return 0;</div><div class='del'>-</div><div class='del'>-            switch (value)</div><div class='del'>-            {</div><div class='del'>-                case 0x00:</div><div class='del'>-                    if (!PUT(emitter, '0')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x07:</div><div class='del'>-                    if (!PUT(emitter, 'a')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x08:</div><div class='del'>-                    if (!PUT(emitter, 'b')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x09:</div><div class='del'>-                    if (!PUT(emitter, 't')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x0A:</div><div class='del'>-                    if (!PUT(emitter, 'n')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x0B:</div><div class='del'>-                    if (!PUT(emitter, 'v')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x0C:</div><div class='del'>-                    if (!PUT(emitter, 'f')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x0D:</div><div class='del'>-                    if (!PUT(emitter, 'r')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x1B:</div><div class='del'>-                    if (!PUT(emitter, 'e')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x22:</div><div class='del'>-                    if (!PUT(emitter, '\"')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x5C:</div><div class='del'>-                    if (!PUT(emitter, '\\')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x85:</div><div class='del'>-                    if (!PUT(emitter, 'N')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0xA0:</div><div class='del'>-                    if (!PUT(emitter, '_')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x2028:</div><div class='del'>-                    if (!PUT(emitter, 'L')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case 0x2029:</div><div class='del'>-                    if (!PUT(emitter, 'P')) return 0;</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                default:</div><div class='del'>-                    if (value &lt;= 0xFF) {</div><div class='del'>-                        if (!PUT(emitter, 'x')) return 0;</div><div class='del'>-                        width = 2;</div><div class='del'>-                    }</div><div class='del'>-                    else if (value &lt;= 0xFFFF) {</div><div class='del'>-                        if (!PUT(emitter, 'u')) return 0;</div><div class='del'>-                        width = 4;</div><div class='del'>-                    }</div><div class='del'>-                    else {</div><div class='del'>-                        if (!PUT(emitter, 'U')) return 0;</div><div class='del'>-                        width = 8;</div><div class='del'>-                    }</div><div class='del'>-                    for (k = (width-1)*4; k &gt;= 0; k -= 4) {</div><div class='del'>-                        int digit = (value &gt;&gt; k) &amp; 0x0F;</div><div class='del'>-                        if (!PUT(emitter, digit + (digit &lt; 10 ? '0' : 'A'-10)))</div><div class='del'>-                            return 0;</div><div class='del'>-                    }</div><div class='del'>-            }</div><div class='del'>-            spaces = 0;</div><div class='del'>-        }</div><div class='del'>-        else if (IS_SPACE(string))</div><div class='del'>-        {</div><div class='del'>-            if (allow_breaks &amp;&amp; !spaces</div><div class='del'>-                    &amp;&amp; emitter-&gt;column &gt; emitter-&gt;best_width</div><div class='del'>-                    &amp;&amp; string.pointer != string.start</div><div class='del'>-                    &amp;&amp; string.pointer != string.end - 1) {</div><div class='del'>-                if (!yaml_emitter_write_indent(emitter)) return 0;</div><div class='del'>-                if (IS_SPACE_AT(string, 1)) {</div><div class='del'>-                    if (!PUT(emitter, '\\')) return 0;</div><div class='del'>-                }</div><div class='del'>-                MOVE(string);</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                if (!WRITE(emitter, string)) return 0;</div><div class='del'>-            }</div><div class='del'>-            spaces = 1;</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            if (!WRITE(emitter, string)) return 0;</div><div class='del'>-            spaces = 0;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!yaml_emitter_write_indicator(emitter, "\"", 0, 0, 0))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    emitter-&gt;whitespace = 0;</div><div class='del'>-    emitter-&gt;indention = 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_block_scalar_hints(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_string_t string)</div><div class='del'>-{</div><div class='del'>-    char indent_hint[2];</div><div class='del'>-    const char *chomp_hint = NULL;</div><div class='del'>-</div><div class='del'>-    if (IS_SPACE(string) || IS_BREAK(string))</div><div class='del'>-    {</div><div class='del'>-        indent_hint[0] = '0' + (char)emitter-&gt;best_indent;</div><div class='del'>-        indent_hint[1] = '\0';</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, indent_hint, 0, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    emitter-&gt;open_ended = 0;</div><div class='del'>-</div><div class='del'>-    string.pointer = string.end;</div><div class='del'>-    if (string.start == string.pointer)</div><div class='del'>-    {</div><div class='del'>-        chomp_hint = "-";</div><div class='del'>-    }</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        do {</div><div class='del'>-            string.pointer --;</div><div class='del'>-        } while ((*string.pointer &amp; 0xC0) == 0x80);</div><div class='del'>-        if (!IS_BREAK(string))</div><div class='del'>-        {</div><div class='del'>-            chomp_hint = "-";</div><div class='del'>-        }</div><div class='del'>-        else if (string.start == string.pointer)</div><div class='del'>-        {</div><div class='del'>-            chomp_hint = "+";</div><div class='del'>-            emitter-&gt;open_ended = 1;</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            do {</div><div class='del'>-                string.pointer --;</div><div class='del'>-            } while ((*string.pointer &amp; 0xC0) == 0x80);</div><div class='del'>-            if (IS_BREAK(string))</div><div class='del'>-            {</div><div class='del'>-                chomp_hint = "+";</div><div class='del'>-                emitter-&gt;open_ended = 1;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (chomp_hint)</div><div class='del'>-    {</div><div class='del'>-        if (!yaml_emitter_write_indicator(emitter, chomp_hint, 0, 0, 0))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_literal_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-    int breaks = 1;</div><div class='del'>-</div><div class='del'>-    STRING_ASSIGN(string, value, length);</div><div class='del'>-</div><div class='del'>-    if (!yaml_emitter_write_indicator(emitter, "|", 1, 0, 0))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!yaml_emitter_write_block_scalar_hints(emitter, string))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!PUT_BREAK(emitter)) return 0;</div><div class='del'>-    emitter-&gt;indention = 1;</div><div class='del'>-    emitter-&gt;whitespace = 1;</div><div class='del'>-</div><div class='del'>-    while (string.pointer != string.end)</div><div class='del'>-    {</div><div class='del'>-        if (IS_BREAK(string))</div><div class='del'>-        {</div><div class='del'>-            if (!WRITE_BREAK(emitter, string)) return 0;</div><div class='del'>-            emitter-&gt;indention = 1;</div><div class='del'>-            breaks = 1;</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            if (breaks) {</div><div class='del'>-                if (!yaml_emitter_write_indent(emitter)) return 0;</div><div class='del'>-            }</div><div class='del'>-            if (!WRITE(emitter, string)) return 0;</div><div class='del'>-            emitter-&gt;indention = 0;</div><div class='del'>-            breaks = 0;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_write_folded_scalar(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_char_t *value, size_t length)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t string;</div><div class='del'>-    int breaks = 1;</div><div class='del'>-    int leading_spaces = 1;</div><div class='del'>-</div><div class='del'>-    STRING_ASSIGN(string, value, length);</div><div class='del'>-</div><div class='del'>-    if (!yaml_emitter_write_indicator(emitter, "&gt;", 1, 0, 0))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!yaml_emitter_write_block_scalar_hints(emitter, string))</div><div class='del'>-        return 0;</div><div class='del'>-    if (!PUT_BREAK(emitter)) return 0;</div><div class='del'>-    emitter-&gt;indention = 1;</div><div class='del'>-    emitter-&gt;whitespace = 1;</div><div class='del'>-</div><div class='del'>-    while (string.pointer != string.end)</div><div class='del'>-    {</div><div class='del'>-        if (IS_BREAK(string))</div><div class='del'>-        {</div><div class='del'>-            if (!breaks &amp;&amp; !leading_spaces &amp;&amp; CHECK(string, '\n')) {</div><div class='del'>-                int k = 0;</div><div class='del'>-                while (IS_BREAK_AT(string, k)) {</div><div class='del'>-                    k += WIDTH_AT(string, k);</div><div class='del'>-                }</div><div class='del'>-                if (!IS_BLANKZ_AT(string, k)) {</div><div class='del'>-                    if (!PUT_BREAK(emitter)) return 0;</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-            if (!WRITE_BREAK(emitter, string)) return 0;</div><div class='del'>-            emitter-&gt;indention = 1;</div><div class='del'>-            breaks = 1;</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            if (breaks) {</div><div class='del'>-                if (!yaml_emitter_write_indent(emitter)) return 0;</div><div class='del'>-                leading_spaces = IS_BLANK(string);</div><div class='del'>-            }</div><div class='del'>-            if (!breaks &amp;&amp; IS_SPACE(string) &amp;&amp; !IS_SPACE_AT(string, 1)</div><div class='del'>-                    &amp;&amp; emitter-&gt;column &gt; emitter-&gt;best_width) {</div><div class='del'>-                if (!yaml_emitter_write_indent(emitter)) return 0;</div><div class='del'>-                MOVE(string);</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                if (!WRITE(emitter, string)) return 0;</div><div class='del'>-            }</div><div class='del'>-            emitter-&gt;indention = 0;</div><div class='del'>-            breaks = 0;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='head'>diff --git a/ext/psych/yaml/loader.c b/ext/psych/yaml/loader.c<br/>deleted file mode 100644<br/>index db8501ac74..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/psych/yaml/loader.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/loader.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,444 +0,0 @@</div><div class='del'>-</div><div class='del'>-#include "yaml_private.h"</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * API functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_load(yaml_parser_t *parser, yaml_document_t *document);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Error handling.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_composer_error(yaml_parser_t *parser,</div><div class='del'>-        const char *problem, yaml_mark_t problem_mark);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_composer_error_context(yaml_parser_t *parser,</div><div class='del'>-        const char *context, yaml_mark_t context_mark,</div><div class='del'>-        const char *problem, yaml_mark_t problem_mark);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Alias handling.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_register_anchor(yaml_parser_t *parser,</div><div class='del'>-        int index, yaml_char_t *anchor);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Clean up functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-yaml_parser_delete_aliases(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Composer functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_document(yaml_parser_t *parser, yaml_event_t *first_event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_node(yaml_parser_t *parser, yaml_event_t *first_event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_alias(yaml_parser_t *parser, yaml_event_t *first_event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_scalar(yaml_parser_t *parser, yaml_event_t *first_event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_sequence(yaml_parser_t *parser, yaml_event_t *first_event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_mapping(yaml_parser_t *parser, yaml_event_t *first_event);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Load the next document of the stream.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_load(yaml_parser_t *parser, yaml_document_t *document)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t event;</div><div class='del'>-</div><div class='del'>-    assert(parser);     /* Non-NULL parser object is expected. */</div><div class='del'>-    assert(document);   /* Non-NULL document object is expected. */</div><div class='del'>-</div><div class='del'>-    memset(document, 0, sizeof(yaml_document_t));</div><div class='del'>-    if (!STACK_INIT(parser, document-&gt;nodes, yaml_node_t*))</div><div class='del'>-        goto error;</div><div class='del'>-</div><div class='del'>-    if (!parser-&gt;stream_start_produced) {</div><div class='del'>-        if (!yaml_parser_parse(parser, &amp;event)) goto error;</div><div class='del'>-        assert(event.type == YAML_STREAM_START_EVENT);</div><div class='del'>-                        /* STREAM-START is expected. */</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;stream_end_produced) {</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_parse(parser, &amp;event)) goto error;</div><div class='del'>-    if (event.type == YAML_STREAM_END_EVENT) {</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!STACK_INIT(parser, parser-&gt;aliases, yaml_alias_data_t*))</div><div class='del'>-        goto error;</div><div class='del'>-</div><div class='del'>-    parser-&gt;document = document;</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_load_document(parser, &amp;event)) goto error;</div><div class='del'>-</div><div class='del'>-    yaml_parser_delete_aliases(parser);</div><div class='del'>-    parser-&gt;document = NULL;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-</div><div class='del'>-    yaml_parser_delete_aliases(parser);</div><div class='del'>-    yaml_document_delete(document);</div><div class='del'>-    parser-&gt;document = NULL;</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set composer error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_composer_error(yaml_parser_t *parser,</div><div class='del'>-        const char *problem, yaml_mark_t problem_mark)</div><div class='del'>-{</div><div class='del'>-    parser-&gt;error = YAML_COMPOSER_ERROR;</div><div class='del'>-    parser-&gt;problem = problem;</div><div class='del'>-    parser-&gt;problem_mark = problem_mark;</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set composer error with context.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_composer_error_context(yaml_parser_t *parser,</div><div class='del'>-        const char *context, yaml_mark_t context_mark,</div><div class='del'>-        const char *problem, yaml_mark_t problem_mark)</div><div class='del'>-{</div><div class='del'>-    parser-&gt;error = YAML_COMPOSER_ERROR;</div><div class='del'>-    parser-&gt;context = context;</div><div class='del'>-    parser-&gt;context_mark = context_mark;</div><div class='del'>-    parser-&gt;problem = problem;</div><div class='del'>-    parser-&gt;problem_mark = problem_mark;</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Delete the stack of aliases.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-yaml_parser_delete_aliases(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    while (!STACK_EMPTY(parser, parser-&gt;aliases)) {</div><div class='del'>-        yaml_free(POP(parser, parser-&gt;aliases).anchor);</div><div class='del'>-    }</div><div class='del'>-    STACK_DEL(parser, parser-&gt;aliases);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Compose a document object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_document(yaml_parser_t *parser, yaml_event_t *first_event)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t event;</div><div class='del'>-</div><div class='del'>-    assert(first_event-&gt;type == YAML_DOCUMENT_START_EVENT);</div><div class='del'>-                        /* DOCUMENT-START is expected. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;document-&gt;version_directive</div><div class='del'>-        = first_event-&gt;data.document_start.version_directive;</div><div class='del'>-    parser-&gt;document-&gt;tag_directives.start</div><div class='del'>-        = first_event-&gt;data.document_start.tag_directives.start;</div><div class='del'>-    parser-&gt;document-&gt;tag_directives.end</div><div class='del'>-        = first_event-&gt;data.document_start.tag_directives.end;</div><div class='del'>-    parser-&gt;document-&gt;start_implicit</div><div class='del'>-        = first_event-&gt;data.document_start.implicit;</div><div class='del'>-    parser-&gt;document-&gt;start_mark = first_event-&gt;start_mark;</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_parse(parser, &amp;event)) return 0;</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_load_node(parser, &amp;event)) return 0;</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_parse(parser, &amp;event)) return 0;</div><div class='del'>-    assert(event.type == YAML_DOCUMENT_END_EVENT);</div><div class='del'>-                        /* DOCUMENT-END is expected. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;document-&gt;end_implicit = event.data.document_end.implicit;</div><div class='del'>-    parser-&gt;document-&gt;end_mark = event.end_mark;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Compose a node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_node(yaml_parser_t *parser, yaml_event_t *first_event)</div><div class='del'>-{</div><div class='del'>-    switch (first_event-&gt;type) {</div><div class='del'>-        case YAML_ALIAS_EVENT:</div><div class='del'>-            return yaml_parser_load_alias(parser, first_event);</div><div class='del'>-        case YAML_SCALAR_EVENT:</div><div class='del'>-            return yaml_parser_load_scalar(parser, first_event);</div><div class='del'>-        case YAML_SEQUENCE_START_EVENT:</div><div class='del'>-            return yaml_parser_load_sequence(parser, first_event);</div><div class='del'>-        case YAML_MAPPING_START_EVENT:</div><div class='del'>-            return yaml_parser_load_mapping(parser, first_event);</div><div class='del'>-        default:</div><div class='del'>-            assert(0);  /* Could not happen. */</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Add an anchor.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_register_anchor(yaml_parser_t *parser,</div><div class='del'>-        int index, yaml_char_t *anchor)</div><div class='del'>-{</div><div class='del'>-    yaml_alias_data_t data;</div><div class='del'>-    yaml_alias_data_t *alias_data;</div><div class='del'>-</div><div class='del'>-    if (!anchor) return 1;</div><div class='del'>-</div><div class='del'>-    data.anchor = anchor;</div><div class='del'>-    data.index = index;</div><div class='del'>-    data.mark = parser-&gt;document-&gt;nodes.start[index-1].start_mark;</div><div class='del'>-</div><div class='del'>-    for (alias_data = parser-&gt;aliases.start;</div><div class='del'>-            alias_data != parser-&gt;aliases.top; alias_data ++) {</div><div class='del'>-        if (strcmp((char *)alias_data-&gt;anchor, (char *)anchor) == 0) {</div><div class='del'>-            yaml_free(anchor);</div><div class='del'>-            return yaml_parser_set_composer_error_context(parser,</div><div class='del'>-                    "found duplicate anchor; first occurrence",</div><div class='del'>-                    alias_data-&gt;mark, "second occurrence", data.mark);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!PUSH(parser, parser-&gt;aliases, data)) {</div><div class='del'>-        yaml_free(anchor);</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Compose a node corresponding to an alias.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_alias(yaml_parser_t *parser, yaml_event_t *first_event)</div><div class='del'>-{</div><div class='del'>-    yaml_char_t *anchor = first_event-&gt;data.alias.anchor;</div><div class='del'>-    yaml_alias_data_t *alias_data;</div><div class='del'>-</div><div class='del'>-    for (alias_data = parser-&gt;aliases.start;</div><div class='del'>-            alias_data != parser-&gt;aliases.top; alias_data ++) {</div><div class='del'>-        if (strcmp((char *)alias_data-&gt;anchor, (char *)anchor) == 0) {</div><div class='del'>-            yaml_free(anchor);</div><div class='del'>-            return alias_data-&gt;index;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    yaml_free(anchor);</div><div class='del'>-    return yaml_parser_set_composer_error(parser, "found undefined alias",</div><div class='del'>-            first_event-&gt;start_mark);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Compose a scalar node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_scalar(yaml_parser_t *parser, yaml_event_t *first_event)</div><div class='del'>-{</div><div class='del'>-    yaml_node_t node;</div><div class='del'>-    int index;</div><div class='del'>-    yaml_char_t *tag = first_event-&gt;data.scalar.tag;</div><div class='del'>-</div><div class='del'>-    if (!STACK_LIMIT(parser, parser-&gt;document-&gt;nodes, INT_MAX-1)) goto error;</div><div class='del'>-</div><div class='del'>-    if (!tag || strcmp((char *)tag, "!") == 0) {</div><div class='del'>-        yaml_free(tag);</div><div class='del'>-        tag = yaml_strdup((yaml_char_t *)YAML_DEFAULT_SCALAR_TAG);</div><div class='del'>-        if (!tag) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    SCALAR_NODE_INIT(node, tag, first_event-&gt;data.scalar.value,</div><div class='del'>-            first_event-&gt;data.scalar.length, first_event-&gt;data.scalar.style,</div><div class='del'>-            first_event-&gt;start_mark, first_event-&gt;end_mark);</div><div class='del'>-</div><div class='del'>-    if (!PUSH(parser, parser-&gt;document-&gt;nodes, node)) goto error;</div><div class='del'>-</div><div class='del'>-    index = parser-&gt;document-&gt;nodes.top - parser-&gt;document-&gt;nodes.start;</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_register_anchor(parser, index,</div><div class='del'>-                first_event-&gt;data.scalar.anchor)) return 0;</div><div class='del'>-</div><div class='del'>-    return index;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(tag);</div><div class='del'>-    yaml_free(first_event-&gt;data.scalar.anchor);</div><div class='del'>-    yaml_free(first_event-&gt;data.scalar.value);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Compose a sequence node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_sequence(yaml_parser_t *parser, yaml_event_t *first_event)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t event;</div><div class='del'>-    yaml_node_t node;</div><div class='del'>-    struct {</div><div class='del'>-        yaml_node_item_t *start;</div><div class='del'>-        yaml_node_item_t *end;</div><div class='del'>-        yaml_node_item_t *top;</div><div class='del'>-    } items = { NULL, NULL, NULL };</div><div class='del'>-    int index, item_index;</div><div class='del'>-    yaml_char_t *tag = first_event-&gt;data.sequence_start.tag;</div><div class='del'>-</div><div class='del'>-    if (!STACK_LIMIT(parser, parser-&gt;document-&gt;nodes, INT_MAX-1)) goto error;</div><div class='del'>-</div><div class='del'>-    if (!tag || strcmp((char *)tag, "!") == 0) {</div><div class='del'>-        yaml_free(tag);</div><div class='del'>-        tag = yaml_strdup((yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG);</div><div class='del'>-        if (!tag) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!STACK_INIT(parser, items, yaml_node_item_t*)) goto error;</div><div class='del'>-</div><div class='del'>-    SEQUENCE_NODE_INIT(node, tag, items.start, items.end,</div><div class='del'>-            first_event-&gt;data.sequence_start.style,</div><div class='del'>-            first_event-&gt;start_mark, first_event-&gt;end_mark);</div><div class='del'>-</div><div class='del'>-    if (!PUSH(parser, parser-&gt;document-&gt;nodes, node)) goto error;</div><div class='del'>-</div><div class='del'>-    index = parser-&gt;document-&gt;nodes.top - parser-&gt;document-&gt;nodes.start;</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_register_anchor(parser, index,</div><div class='del'>-                first_event-&gt;data.sequence_start.anchor)) return 0;</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_parse(parser, &amp;event)) return 0;</div><div class='del'>-</div><div class='del'>-    while (event.type != YAML_SEQUENCE_END_EVENT) {</div><div class='del'>-        if (!STACK_LIMIT(parser,</div><div class='del'>-                    parser-&gt;document-&gt;nodes.start[index-1].data.sequence.items,</div><div class='del'>-                    INT_MAX-1)) return 0;</div><div class='del'>-        item_index = yaml_parser_load_node(parser, &amp;event);</div><div class='del'>-        if (!item_index) return 0;</div><div class='del'>-        if (!PUSH(parser,</div><div class='del'>-                    parser-&gt;document-&gt;nodes.start[index-1].data.sequence.items,</div><div class='del'>-                    item_index)) return 0;</div><div class='del'>-        if (!yaml_parser_parse(parser, &amp;event)) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    parser-&gt;document-&gt;nodes.start[index-1].end_mark = event.end_mark;</div><div class='del'>-</div><div class='del'>-    return index;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(tag);</div><div class='del'>-    yaml_free(first_event-&gt;data.sequence_start.anchor);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Compose a mapping node.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_load_mapping(yaml_parser_t *parser, yaml_event_t *first_event)</div><div class='del'>-{</div><div class='del'>-    yaml_event_t event;</div><div class='del'>-    yaml_node_t node;</div><div class='del'>-    struct {</div><div class='del'>-        yaml_node_pair_t *start;</div><div class='del'>-        yaml_node_pair_t *end;</div><div class='del'>-        yaml_node_pair_t *top;</div><div class='del'>-    } pairs = { NULL, NULL, NULL };</div><div class='del'>-    int index;</div><div class='del'>-    yaml_node_pair_t pair;</div><div class='del'>-    yaml_char_t *tag = first_event-&gt;data.mapping_start.tag;</div><div class='del'>-</div><div class='del'>-    if (!STACK_LIMIT(parser, parser-&gt;document-&gt;nodes, INT_MAX-1)) goto error;</div><div class='del'>-</div><div class='del'>-    if (!tag || strcmp((char *)tag, "!") == 0) {</div><div class='del'>-        yaml_free(tag);</div><div class='del'>-        tag = yaml_strdup((yaml_char_t *)YAML_DEFAULT_MAPPING_TAG);</div><div class='del'>-        if (!tag) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!STACK_INIT(parser, pairs, yaml_node_pair_t*)) goto error;</div><div class='del'>-</div><div class='del'>-    MAPPING_NODE_INIT(node, tag, pairs.start, pairs.end,</div><div class='del'>-            first_event-&gt;data.mapping_start.style,</div><div class='del'>-            first_event-&gt;start_mark, first_event-&gt;end_mark);</div><div class='del'>-</div><div class='del'>-    if (!PUSH(parser, parser-&gt;document-&gt;nodes, node)) goto error;</div><div class='del'>-</div><div class='del'>-    index = parser-&gt;document-&gt;nodes.top - parser-&gt;document-&gt;nodes.start;</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_register_anchor(parser, index,</div><div class='del'>-                first_event-&gt;data.mapping_start.anchor)) return 0;</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_parse(parser, &amp;event)) return 0;</div><div class='del'>-</div><div class='del'>-    while (event.type != YAML_MAPPING_END_EVENT) {</div><div class='del'>-        if (!STACK_LIMIT(parser,</div><div class='del'>-                    parser-&gt;document-&gt;nodes.start[index-1].data.mapping.pairs,</div><div class='del'>-                    INT_MAX-1)) return 0;</div><div class='del'>-        pair.key = yaml_parser_load_node(parser, &amp;event);</div><div class='del'>-        if (!pair.key) return 0;</div><div class='del'>-        if (!yaml_parser_parse(parser, &amp;event)) return 0;</div><div class='del'>-        pair.value = yaml_parser_load_node(parser, &amp;event);</div><div class='del'>-        if (!pair.value) return 0;</div><div class='del'>-        if (!PUSH(parser,</div><div class='del'>-                    parser-&gt;document-&gt;nodes.start[index-1].data.mapping.pairs,</div><div class='del'>-                    pair)) return 0;</div><div class='del'>-        if (!yaml_parser_parse(parser, &amp;event)) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    parser-&gt;document-&gt;nodes.start[index-1].end_mark = event.end_mark;</div><div class='del'>-</div><div class='del'>-    return index;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(tag);</div><div class='del'>-    yaml_free(first_event-&gt;data.mapping_start.anchor);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='head'>diff --git a/ext/psych/yaml/parser.c b/ext/psych/yaml/parser.c<br/>deleted file mode 100644<br/>index 621f676bf2..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/psych/yaml/parser.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/parser.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1370 +0,0 @@</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * The parser implements the following grammar:</div><div class='del'>- *</div><div class='del'>- * stream               ::= STREAM-START implicit_document? explicit_document* STREAM-END</div><div class='del'>- * implicit_document    ::= block_node DOCUMENT-END*</div><div class='del'>- * explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*</div><div class='del'>- * block_node_or_indentless_sequence    ::=</div><div class='del'>- *                          ALIAS</div><div class='del'>- *                          | properties (block_content | indentless_block_sequence)?</div><div class='del'>- *                          | block_content</div><div class='del'>- *                          | indentless_block_sequence</div><div class='del'>- * block_node           ::= ALIAS</div><div class='del'>- *                          | properties block_content?</div><div class='del'>- *                          | block_content</div><div class='del'>- * flow_node            ::= ALIAS</div><div class='del'>- *                          | properties flow_content?</div><div class='del'>- *                          | flow_content</div><div class='del'>- * properties           ::= TAG ANCHOR? | ANCHOR TAG?</div><div class='del'>- * block_content        ::= block_collection | flow_collection | SCALAR</div><div class='del'>- * flow_content         ::= flow_collection | SCALAR</div><div class='del'>- * block_collection     ::= block_sequence | block_mapping</div><div class='del'>- * flow_collection      ::= flow_sequence | flow_mapping</div><div class='del'>- * block_sequence       ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END</div><div class='del'>- * indentless_sequence  ::= (BLOCK-ENTRY block_node?)+</div><div class='del'>- * block_mapping        ::= BLOCK-MAPPING_START</div><div class='del'>- *                          ((KEY block_node_or_indentless_sequence?)?</div><div class='del'>- *                          (VALUE block_node_or_indentless_sequence?)?)*</div><div class='del'>- *                          BLOCK-END</div><div class='del'>- * flow_sequence        ::= FLOW-SEQUENCE-START</div><div class='del'>- *                          (flow_sequence_entry FLOW-ENTRY)*</div><div class='del'>- *                          flow_sequence_entry?</div><div class='del'>- *                          FLOW-SEQUENCE-END</div><div class='del'>- * flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?</div><div class='del'>- * flow_mapping         ::= FLOW-MAPPING-START</div><div class='del'>- *                          (flow_mapping_entry FLOW-ENTRY)*</div><div class='del'>- *                          flow_mapping_entry?</div><div class='del'>- *                          FLOW-MAPPING-END</div><div class='del'>- * flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include "yaml_private.h"</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Peek the next token in the token queue.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define PEEK_TOKEN(parser)                                                      \</div><div class='del'>-    ((parser-&gt;token_available || yaml_parser_fetch_more_tokens(parser)) ?       \</div><div class='del'>-        parser-&gt;tokens.head : NULL)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Remove the next token from the queue (must be called after PEEK_TOKEN).</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define SKIP_TOKEN(parser)                                                      \</div><div class='del'>-    (parser-&gt;token_available = 0,                                               \</div><div class='del'>-     parser-&gt;tokens_parsed ++,                                                  \</div><div class='del'>-     parser-&gt;stream_end_produced =                                              \</div><div class='del'>-        (parser-&gt;tokens.head-&gt;type == YAML_STREAM_END_TOKEN),                   \</div><div class='del'>-     parser-&gt;tokens.head ++)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Public API declarations.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_parse(yaml_parser_t *parser, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Error handling.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_parser_error(yaml_parser_t *parser,</div><div class='del'>-        const char *problem, yaml_mark_t problem_mark);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_parser_error_context(yaml_parser_t *parser,</div><div class='del'>-        const char *context, yaml_mark_t context_mark,</div><div class='del'>-        const char *problem, yaml_mark_t problem_mark);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * State functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_state_machine(yaml_parser_t *parser, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_stream_start(yaml_parser_t *parser, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_document_start(yaml_parser_t *parser, yaml_event_t *event,</div><div class='del'>-        int implicit);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_document_content(yaml_parser_t *parser, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_document_end(yaml_parser_t *parser, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_node(yaml_parser_t *parser, yaml_event_t *event,</div><div class='del'>-        int block, int indentless_sequence);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_block_sequence_entry(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event, int first);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_indentless_sequence_entry(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_block_mapping_key(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event, int first);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_block_mapping_value(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_sequence_entry(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event, int first);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_sequence_entry_mapping_key(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_sequence_entry_mapping_value(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_sequence_entry_mapping_end(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_mapping_key(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event, int first);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_mapping_value(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event, int empty);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Utility functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_process_empty_scalar(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event, yaml_mark_t mark);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_process_directives(yaml_parser_t *parser,</div><div class='del'>-        yaml_version_directive_t **version_directive_ref,</div><div class='del'>-        yaml_tag_directive_t **tag_directives_start_ref,</div><div class='del'>-        yaml_tag_directive_t **tag_directives_end_ref);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_append_tag_directive(yaml_parser_t *parser,</div><div class='del'>-        yaml_tag_directive_t value, int allow_duplicates, yaml_mark_t mark);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Get the next event.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_parse(yaml_parser_t *parser, yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    assert(parser);     /* Non-NULL parser object is expected. */</div><div class='del'>-    assert(event);      /* Non-NULL event object is expected. */</div><div class='del'>-</div><div class='del'>-    /* Erase the event object. */</div><div class='del'>-</div><div class='del'>-    memset(event, 0, sizeof(yaml_event_t));</div><div class='del'>-</div><div class='del'>-    /* No events after the end of the stream or error. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;stream_end_produced || parser-&gt;error ||</div><div class='del'>-            parser-&gt;state == YAML_PARSE_END_STATE) {</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Generate the next event. */</div><div class='del'>-</div><div class='del'>-    return yaml_parser_state_machine(parser, event);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set parser error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_parser_error(yaml_parser_t *parser,</div><div class='del'>-        const char *problem, yaml_mark_t problem_mark)</div><div class='del'>-{</div><div class='del'>-    parser-&gt;error = YAML_PARSER_ERROR;</div><div class='del'>-    parser-&gt;problem = problem;</div><div class='del'>-    parser-&gt;problem_mark = problem_mark;</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_parser_error_context(yaml_parser_t *parser,</div><div class='del'>-        const char *context, yaml_mark_t context_mark,</div><div class='del'>-        const char *problem, yaml_mark_t problem_mark)</div><div class='del'>-{</div><div class='del'>-    parser-&gt;error = YAML_PARSER_ERROR;</div><div class='del'>-    parser-&gt;context = context;</div><div class='del'>-    parser-&gt;context_mark = context_mark;</div><div class='del'>-    parser-&gt;problem = problem;</div><div class='del'>-    parser-&gt;problem_mark = problem_mark;</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * State dispatcher.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_state_machine(yaml_parser_t *parser, yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    switch (parser-&gt;state)</div><div class='del'>-    {</div><div class='del'>-        case YAML_PARSE_STREAM_START_STATE:</div><div class='del'>-            return yaml_parser_parse_stream_start(parser, event);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE:</div><div class='del'>-            return yaml_parser_parse_document_start(parser, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_DOCUMENT_START_STATE:</div><div class='del'>-            return yaml_parser_parse_document_start(parser, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_DOCUMENT_CONTENT_STATE:</div><div class='del'>-            return yaml_parser_parse_document_content(parser, event);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_DOCUMENT_END_STATE:</div><div class='del'>-            return yaml_parser_parse_document_end(parser, event);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_BLOCK_NODE_STATE:</div><div class='del'>-            return yaml_parser_parse_node(parser, event, 1, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:</div><div class='del'>-            return yaml_parser_parse_node(parser, event, 1, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_FLOW_NODE_STATE:</div><div class='del'>-            return yaml_parser_parse_node(parser, event, 0, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:</div><div class='del'>-            return yaml_parser_parse_block_sequence_entry(parser, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:</div><div class='del'>-            return yaml_parser_parse_block_sequence_entry(parser, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:</div><div class='del'>-            return yaml_parser_parse_indentless_sequence_entry(parser, event);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:</div><div class='del'>-            return yaml_parser_parse_block_mapping_key(parser, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_BLOCK_MAPPING_KEY_STATE:</div><div class='del'>-            return yaml_parser_parse_block_mapping_key(parser, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_BLOCK_MAPPING_VALUE_STATE:</div><div class='del'>-            return yaml_parser_parse_block_mapping_value(parser, event);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:</div><div class='del'>-            return yaml_parser_parse_flow_sequence_entry(parser, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE:</div><div class='del'>-            return yaml_parser_parse_flow_sequence_entry(parser, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:</div><div class='del'>-            return yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:</div><div class='del'>-            return yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:</div><div class='del'>-            return yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:</div><div class='del'>-            return yaml_parser_parse_flow_mapping_key(parser, event, 1);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_FLOW_MAPPING_KEY_STATE:</div><div class='del'>-            return yaml_parser_parse_flow_mapping_key(parser, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_FLOW_MAPPING_VALUE_STATE:</div><div class='del'>-            return yaml_parser_parse_flow_mapping_value(parser, event, 0);</div><div class='del'>-</div><div class='del'>-        case YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:</div><div class='del'>-            return yaml_parser_parse_flow_mapping_value(parser, event, 1);</div><div class='del'>-</div><div class='del'>-        default:</div><div class='del'>-            assert(1);      /* Invalid state. */</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the production:</div><div class='del'>- * stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END</div><div class='del'>- *              ************</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_stream_start(yaml_parser_t *parser, yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type != YAML_STREAM_START_TOKEN) {</div><div class='del'>-        return yaml_parser_set_parser_error(parser,</div><div class='del'>-                "did not find expected &lt;stream-start&gt;", token-&gt;start_mark);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    parser-&gt;state = YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE;</div><div class='del'>-    STREAM_START_EVENT_INIT(*event, token-&gt;data.stream_start.encoding,</div><div class='del'>-            token-&gt;start_mark, token-&gt;start_mark);</div><div class='del'>-    SKIP_TOKEN(parser);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * implicit_document    ::= block_node DOCUMENT-END*</div><div class='del'>- *                          *</div><div class='del'>- * explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*</div><div class='del'>- *                          *************************</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_document_start(yaml_parser_t *parser, yaml_event_t *event,</div><div class='del'>-        int implicit)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-    yaml_version_directive_t *version_directive = NULL;</div><div class='del'>-    struct {</div><div class='del'>-        yaml_tag_directive_t *start;</div><div class='del'>-        yaml_tag_directive_t *end;</div><div class='del'>-    } tag_directives = { NULL, NULL };</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    /* Parse extra document end indicators. */</div><div class='del'>-</div><div class='del'>-    if (!implicit)</div><div class='del'>-    {</div><div class='del'>-        while (token-&gt;type == YAML_DOCUMENT_END_TOKEN) {</div><div class='del'>-            SKIP_TOKEN(parser);</div><div class='del'>-            token = PEEK_TOKEN(parser);</div><div class='del'>-            if (!token) return 0;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Parse an implicit document. */</div><div class='del'>-</div><div class='del'>-    if (implicit &amp;&amp; token-&gt;type != YAML_VERSION_DIRECTIVE_TOKEN &amp;&amp;</div><div class='del'>-            token-&gt;type != YAML_TAG_DIRECTIVE_TOKEN &amp;&amp;</div><div class='del'>-            token-&gt;type != YAML_DOCUMENT_START_TOKEN &amp;&amp;</div><div class='del'>-            token-&gt;type != YAML_STREAM_END_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        if (!yaml_parser_process_directives(parser, NULL, NULL, NULL))</div><div class='del'>-            return 0;</div><div class='del'>-        if (!PUSH(parser, parser-&gt;states, YAML_PARSE_DOCUMENT_END_STATE))</div><div class='del'>-            return 0;</div><div class='del'>-        parser-&gt;state = YAML_PARSE_BLOCK_NODE_STATE;</div><div class='del'>-        DOCUMENT_START_EVENT_INIT(*event, NULL, NULL, NULL, 1,</div><div class='del'>-                token-&gt;start_mark, token-&gt;start_mark);</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Parse an explicit document. */</div><div class='del'>-</div><div class='del'>-    else if (token-&gt;type != YAML_STREAM_END_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        yaml_mark_t start_mark, end_mark;</div><div class='del'>-        start_mark = token-&gt;start_mark;</div><div class='del'>-        if (!yaml_parser_process_directives(parser, &amp;version_directive,</div><div class='del'>-                    &amp;tag_directives.start, &amp;tag_directives.end))</div><div class='del'>-            return 0;</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!token) goto error;</div><div class='del'>-        if (token-&gt;type != YAML_DOCUMENT_START_TOKEN) {</div><div class='del'>-            yaml_parser_set_parser_error(parser,</div><div class='del'>-                    "did not find expected &lt;document start&gt;", token-&gt;start_mark);</div><div class='del'>-            goto error;</div><div class='del'>-        }</div><div class='del'>-        if (!PUSH(parser, parser-&gt;states, YAML_PARSE_DOCUMENT_END_STATE))</div><div class='del'>-            goto error;</div><div class='del'>-        parser-&gt;state = YAML_PARSE_DOCUMENT_CONTENT_STATE;</div><div class='del'>-        end_mark = token-&gt;end_mark;</div><div class='del'>-        DOCUMENT_START_EVENT_INIT(*event, version_directive,</div><div class='del'>-                tag_directives.start, tag_directives.end, 0,</div><div class='del'>-                start_mark, end_mark);</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        version_directive = NULL;</div><div class='del'>-        tag_directives.start = tag_directives.end = NULL;</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Parse the stream end. */</div><div class='del'>-</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        parser-&gt;state = YAML_PARSE_END_STATE;</div><div class='del'>-        STREAM_END_EVENT_INIT(*event, token-&gt;start_mark, token-&gt;end_mark);</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(version_directive);</div><div class='del'>-    while (tag_directives.start != tag_directives.end) {</div><div class='del'>-        yaml_free(tag_directives.end[-1].handle);</div><div class='del'>-        yaml_free(tag_directives.end[-1].prefix);</div><div class='del'>-        tag_directives.end --;</div><div class='del'>-    }</div><div class='del'>-    yaml_free(tag_directives.start);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*</div><div class='del'>- *                                                    ***********</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_document_content(yaml_parser_t *parser, yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type == YAML_VERSION_DIRECTIVE_TOKEN ||</div><div class='del'>-            token-&gt;type == YAML_TAG_DIRECTIVE_TOKEN ||</div><div class='del'>-            token-&gt;type == YAML_DOCUMENT_START_TOKEN ||</div><div class='del'>-            token-&gt;type == YAML_DOCUMENT_END_TOKEN ||</div><div class='del'>-            token-&gt;type == YAML_STREAM_END_TOKEN) {</div><div class='del'>-        parser-&gt;state = POP(parser, parser-&gt;states);</div><div class='del'>-        return yaml_parser_process_empty_scalar(parser, event,</div><div class='del'>-                token-&gt;start_mark);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        return yaml_parser_parse_node(parser, event, 1, 0);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * implicit_document    ::= block_node DOCUMENT-END*</div><div class='del'>- *                                     *************</div><div class='del'>- * explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*</div><div class='del'>- *                                                                *************</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_document_end(yaml_parser_t *parser, yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-    yaml_mark_t start_mark, end_mark;</div><div class='del'>-    int implicit = 1;</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    start_mark = end_mark = token-&gt;start_mark;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type == YAML_DOCUMENT_END_TOKEN) {</div><div class='del'>-        end_mark = token-&gt;end_mark;</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        implicit = 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    while (!STACK_EMPTY(parser, parser-&gt;tag_directives)) {</div><div class='del'>-        yaml_tag_directive_t tag_directive = POP(parser, parser-&gt;tag_directives);</div><div class='del'>-        yaml_free(tag_directive.handle);</div><div class='del'>-        yaml_free(tag_directive.prefix);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    parser-&gt;state = YAML_PARSE_DOCUMENT_START_STATE;</div><div class='del'>-    DOCUMENT_END_EVENT_INIT(*event, implicit, start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * block_node_or_indentless_sequence    ::=</div><div class='del'>- *                          ALIAS</div><div class='del'>- *                          *****</div><div class='del'>- *                          | properties (block_content | indentless_block_sequence)?</div><div class='del'>- *                            **********  *</div><div class='del'>- *                          | block_content | indentless_block_sequence</div><div class='del'>- *                            *</div><div class='del'>- * block_node           ::= ALIAS</div><div class='del'>- *                          *****</div><div class='del'>- *                          | properties block_content?</div><div class='del'>- *                            ********** *</div><div class='del'>- *                          | block_content</div><div class='del'>- *                            *</div><div class='del'>- * flow_node            ::= ALIAS</div><div class='del'>- *                          *****</div><div class='del'>- *                          | properties flow_content?</div><div class='del'>- *                            ********** *</div><div class='del'>- *                          | flow_content</div><div class='del'>- *                            *</div><div class='del'>- * properties           ::= TAG ANCHOR? | ANCHOR TAG?</div><div class='del'>- *                          *************************</div><div class='del'>- * block_content        ::= block_collection | flow_collection | SCALAR</div><div class='del'>- *                                                               ******</div><div class='del'>- * flow_content         ::= flow_collection | SCALAR</div><div class='del'>- *                                            ******</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_node(yaml_parser_t *parser, yaml_event_t *event,</div><div class='del'>-        int block, int indentless_sequence)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-    yaml_char_t *anchor = NULL;</div><div class='del'>-    yaml_char_t *tag_handle = NULL;</div><div class='del'>-    yaml_char_t *tag_suffix = NULL;</div><div class='del'>-    yaml_char_t *tag = NULL;</div><div class='del'>-    yaml_mark_t start_mark, end_mark, tag_mark;</div><div class='del'>-    int implicit;</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type == YAML_ALIAS_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        parser-&gt;state = POP(parser, parser-&gt;states);</div><div class='del'>-        ALIAS_EVENT_INIT(*event, token-&gt;data.alias.value,</div><div class='del'>-                token-&gt;start_mark, token-&gt;end_mark);</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        start_mark = end_mark = token-&gt;start_mark;</div><div class='del'>-</div><div class='del'>-        if (token-&gt;type == YAML_ANCHOR_TOKEN)</div><div class='del'>-        {</div><div class='del'>-            anchor = token-&gt;data.anchor.value;</div><div class='del'>-            start_mark = token-&gt;start_mark;</div><div class='del'>-            end_mark = token-&gt;end_mark;</div><div class='del'>-            SKIP_TOKEN(parser);</div><div class='del'>-            token = PEEK_TOKEN(parser);</div><div class='del'>-            if (!token) goto error;</div><div class='del'>-            if (token-&gt;type == YAML_TAG_TOKEN)</div><div class='del'>-            {</div><div class='del'>-                tag_handle = token-&gt;data.tag.handle;</div><div class='del'>-                tag_suffix = token-&gt;data.tag.suffix;</div><div class='del'>-                tag_mark = token-&gt;start_mark;</div><div class='del'>-                end_mark = token-&gt;end_mark;</div><div class='del'>-                SKIP_TOKEN(parser);</div><div class='del'>-                token = PEEK_TOKEN(parser);</div><div class='del'>-                if (!token) goto error;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        else if (token-&gt;type == YAML_TAG_TOKEN)</div><div class='del'>-        {</div><div class='del'>-            tag_handle = token-&gt;data.tag.handle;</div><div class='del'>-            tag_suffix = token-&gt;data.tag.suffix;</div><div class='del'>-            start_mark = tag_mark = token-&gt;start_mark;</div><div class='del'>-            end_mark = token-&gt;end_mark;</div><div class='del'>-            SKIP_TOKEN(parser);</div><div class='del'>-            token = PEEK_TOKEN(parser);</div><div class='del'>-            if (!token) goto error;</div><div class='del'>-            if (token-&gt;type == YAML_ANCHOR_TOKEN)</div><div class='del'>-            {</div><div class='del'>-                anchor = token-&gt;data.anchor.value;</div><div class='del'>-                end_mark = token-&gt;end_mark;</div><div class='del'>-                SKIP_TOKEN(parser);</div><div class='del'>-                token = PEEK_TOKEN(parser);</div><div class='del'>-                if (!token) goto error;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (tag_handle) {</div><div class='del'>-            if (!*tag_handle) {</div><div class='del'>-                tag = tag_suffix;</div><div class='del'>-                yaml_free(tag_handle);</div><div class='del'>-                tag_handle = tag_suffix = NULL;</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                yaml_tag_directive_t *tag_directive;</div><div class='del'>-                for (tag_directive = parser-&gt;tag_directives.start;</div><div class='del'>-                        tag_directive != parser-&gt;tag_directives.top;</div><div class='del'>-                        tag_directive ++) {</div><div class='del'>-                    if (strcmp((char *)tag_directive-&gt;handle, (char *)tag_handle) == 0) {</div><div class='del'>-                        size_t prefix_len = strlen((char *)tag_directive-&gt;prefix);</div><div class='del'>-                        size_t suffix_len = strlen((char *)tag_suffix);</div><div class='del'>-                        tag = YAML_MALLOC(prefix_len+suffix_len+1);</div><div class='del'>-                        if (!tag) {</div><div class='del'>-                            parser-&gt;error = YAML_MEMORY_ERROR;</div><div class='del'>-                            goto error;</div><div class='del'>-                        }</div><div class='del'>-                        memcpy(tag, tag_directive-&gt;prefix, prefix_len);</div><div class='del'>-                        memcpy(tag+prefix_len, tag_suffix, suffix_len);</div><div class='del'>-                        tag[prefix_len+suffix_len] = '\0';</div><div class='del'>-                        yaml_free(tag_handle);</div><div class='del'>-                        yaml_free(tag_suffix);</div><div class='del'>-                        tag_handle = tag_suffix = NULL;</div><div class='del'>-                        break;</div><div class='del'>-                    }</div><div class='del'>-                }</div><div class='del'>-                if (!tag) {</div><div class='del'>-                    yaml_parser_set_parser_error_context(parser,</div><div class='del'>-                            "while parsing a node", start_mark,</div><div class='del'>-                            "found undefined tag handle", tag_mark);</div><div class='del'>-                    goto error;</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        implicit = (!tag || !*tag);</div><div class='del'>-        if (indentless_sequence &amp;&amp; token-&gt;type == YAML_BLOCK_ENTRY_TOKEN) {</div><div class='del'>-            end_mark = token-&gt;end_mark;</div><div class='del'>-            parser-&gt;state = YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE;</div><div class='del'>-            SEQUENCE_START_EVENT_INIT(*event, anchor, tag, implicit,</div><div class='del'>-                    YAML_BLOCK_SEQUENCE_STYLE, start_mark, end_mark);</div><div class='del'>-            return 1;</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            if (token-&gt;type == YAML_SCALAR_TOKEN) {</div><div class='del'>-                int plain_implicit = 0;</div><div class='del'>-                int quoted_implicit = 0;</div><div class='del'>-                end_mark = token-&gt;end_mark;</div><div class='del'>-                if ((token-&gt;data.scalar.style == YAML_PLAIN_SCALAR_STYLE &amp;&amp; !tag)</div><div class='del'>-                        || (tag &amp;&amp; strcmp((char *)tag, "!") == 0)) {</div><div class='del'>-                    plain_implicit = 1;</div><div class='del'>-                }</div><div class='del'>-                else if (!tag) {</div><div class='del'>-                    quoted_implicit = 1;</div><div class='del'>-                }</div><div class='del'>-                parser-&gt;state = POP(parser, parser-&gt;states);</div><div class='del'>-                SCALAR_EVENT_INIT(*event, anchor, tag,</div><div class='del'>-                        token-&gt;data.scalar.value, token-&gt;data.scalar.length,</div><div class='del'>-                        plain_implicit, quoted_implicit,</div><div class='del'>-                        token-&gt;data.scalar.style, start_mark, end_mark);</div><div class='del'>-                SKIP_TOKEN(parser);</div><div class='del'>-                return 1;</div><div class='del'>-            }</div><div class='del'>-            else if (token-&gt;type == YAML_FLOW_SEQUENCE_START_TOKEN) {</div><div class='del'>-                end_mark = token-&gt;end_mark;</div><div class='del'>-                parser-&gt;state = YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE;</div><div class='del'>-                SEQUENCE_START_EVENT_INIT(*event, anchor, tag, implicit,</div><div class='del'>-                        YAML_FLOW_SEQUENCE_STYLE, start_mark, end_mark);</div><div class='del'>-                return 1;</div><div class='del'>-            }</div><div class='del'>-            else if (token-&gt;type == YAML_FLOW_MAPPING_START_TOKEN) {</div><div class='del'>-                end_mark = token-&gt;end_mark;</div><div class='del'>-                parser-&gt;state = YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE;</div><div class='del'>-                MAPPING_START_EVENT_INIT(*event, anchor, tag, implicit,</div><div class='del'>-                        YAML_FLOW_MAPPING_STYLE, start_mark, end_mark);</div><div class='del'>-                return 1;</div><div class='del'>-            }</div><div class='del'>-            else if (block &amp;&amp; token-&gt;type == YAML_BLOCK_SEQUENCE_START_TOKEN) {</div><div class='del'>-                end_mark = token-&gt;end_mark;</div><div class='del'>-                parser-&gt;state = YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE;</div><div class='del'>-                SEQUENCE_START_EVENT_INIT(*event, anchor, tag, implicit,</div><div class='del'>-                        YAML_BLOCK_SEQUENCE_STYLE, start_mark, end_mark);</div><div class='del'>-                return 1;</div><div class='del'>-            }</div><div class='del'>-            else if (block &amp;&amp; token-&gt;type == YAML_BLOCK_MAPPING_START_TOKEN) {</div><div class='del'>-                end_mark = token-&gt;end_mark;</div><div class='del'>-                parser-&gt;state = YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE;</div><div class='del'>-                MAPPING_START_EVENT_INIT(*event, anchor, tag, implicit,</div><div class='del'>-                        YAML_BLOCK_MAPPING_STYLE, start_mark, end_mark);</div><div class='del'>-                return 1;</div><div class='del'>-            }</div><div class='del'>-            else if (anchor || tag) {</div><div class='del'>-                yaml_char_t *value = YAML_MALLOC(1);</div><div class='del'>-                if (!value) {</div><div class='del'>-                    parser-&gt;error = YAML_MEMORY_ERROR;</div><div class='del'>-                    goto error;</div><div class='del'>-                }</div><div class='del'>-                value[0] = '\0';</div><div class='del'>-                parser-&gt;state = POP(parser, parser-&gt;states);</div><div class='del'>-                SCALAR_EVENT_INIT(*event, anchor, tag, value, 0,</div><div class='del'>-                        implicit, 0, YAML_PLAIN_SCALAR_STYLE,</div><div class='del'>-                        start_mark, end_mark);</div><div class='del'>-                return 1;</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                yaml_parser_set_parser_error_context(parser,</div><div class='del'>-                        (block ? "while parsing a block node"</div><div class='del'>-                         : "while parsing a flow node"), start_mark,</div><div class='del'>-                        "did not find expected node content", token-&gt;start_mark);</div><div class='del'>-                goto error;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(anchor);</div><div class='del'>-    yaml_free(tag_handle);</div><div class='del'>-    yaml_free(tag_suffix);</div><div class='del'>-    yaml_free(tag);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END</div><div class='del'>- *                    ********************  *********** *             *********</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_block_sequence_entry(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event, int first)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    if (first) {</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!PUSH(parser, parser-&gt;marks, token-&gt;start_mark))</div><div class='del'>-            return 0;</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type == YAML_BLOCK_ENTRY_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        yaml_mark_t mark = token-&gt;end_mark;</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!token) return 0;</div><div class='del'>-        if (token-&gt;type != YAML_BLOCK_ENTRY_TOKEN &amp;&amp;</div><div class='del'>-                token-&gt;type != YAML_BLOCK_END_TOKEN) {</div><div class='del'>-            if (!PUSH(parser, parser-&gt;states,</div><div class='del'>-                        YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE))</div><div class='del'>-                return 0;</div><div class='del'>-            return yaml_parser_parse_node(parser, event, 1, 0);</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            parser-&gt;state = YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE;</div><div class='del'>-            return yaml_parser_process_empty_scalar(parser, event, mark);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    else if (token-&gt;type == YAML_BLOCK_END_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        parser-&gt;state = POP(parser, parser-&gt;states);</div><div class='del'>-        (void)POP(parser, parser-&gt;marks);</div><div class='del'>-        SEQUENCE_END_EVENT_INIT(*event, token-&gt;start_mark, token-&gt;end_mark);</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        return yaml_parser_set_parser_error_context(parser,</div><div class='del'>-                "while parsing a block collection", POP(parser, parser-&gt;marks),</div><div class='del'>-                "did not find expected '-' indicator", token-&gt;start_mark);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * indentless_sequence  ::= (BLOCK-ENTRY block_node?)+</div><div class='del'>- *                           *********** *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_indentless_sequence_entry(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type == YAML_BLOCK_ENTRY_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        yaml_mark_t mark = token-&gt;end_mark;</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!token) return 0;</div><div class='del'>-        if (token-&gt;type != YAML_BLOCK_ENTRY_TOKEN &amp;&amp;</div><div class='del'>-                token-&gt;type != YAML_KEY_TOKEN &amp;&amp;</div><div class='del'>-                token-&gt;type != YAML_VALUE_TOKEN &amp;&amp;</div><div class='del'>-                token-&gt;type != YAML_BLOCK_END_TOKEN) {</div><div class='del'>-            if (!PUSH(parser, parser-&gt;states,</div><div class='del'>-                        YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE))</div><div class='del'>-                return 0;</div><div class='del'>-            return yaml_parser_parse_node(parser, event, 1, 0);</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            parser-&gt;state = YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE;</div><div class='del'>-            return yaml_parser_process_empty_scalar(parser, event, mark);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        parser-&gt;state = POP(parser, parser-&gt;states);</div><div class='del'>-        SEQUENCE_END_EVENT_INIT(*event, token-&gt;start_mark, token-&gt;start_mark);</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * block_mapping        ::= BLOCK-MAPPING_START</div><div class='del'>- *                          *******************</div><div class='del'>- *                          ((KEY block_node_or_indentless_sequence?)?</div><div class='del'>- *                            *** *</div><div class='del'>- *                          (VALUE block_node_or_indentless_sequence?)?)*</div><div class='del'>- *</div><div class='del'>- *                          BLOCK-END</div><div class='del'>- *                          *********</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_block_mapping_key(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event, int first)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    if (first) {</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!PUSH(parser, parser-&gt;marks, token-&gt;start_mark))</div><div class='del'>-            return 0;</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type == YAML_KEY_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        yaml_mark_t mark = token-&gt;end_mark;</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!token) return 0;</div><div class='del'>-        if (token-&gt;type != YAML_KEY_TOKEN &amp;&amp;</div><div class='del'>-                token-&gt;type != YAML_VALUE_TOKEN &amp;&amp;</div><div class='del'>-                token-&gt;type != YAML_BLOCK_END_TOKEN) {</div><div class='del'>-            if (!PUSH(parser, parser-&gt;states,</div><div class='del'>-                        YAML_PARSE_BLOCK_MAPPING_VALUE_STATE))</div><div class='del'>-                return 0;</div><div class='del'>-            return yaml_parser_parse_node(parser, event, 1, 1);</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            parser-&gt;state = YAML_PARSE_BLOCK_MAPPING_VALUE_STATE;</div><div class='del'>-            return yaml_parser_process_empty_scalar(parser, event, mark);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    else if (token-&gt;type == YAML_BLOCK_END_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        parser-&gt;state = POP(parser, parser-&gt;states);</div><div class='del'>-        (void)POP(parser, parser-&gt;marks);</div><div class='del'>-        MAPPING_END_EVENT_INIT(*event, token-&gt;start_mark, token-&gt;end_mark);</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        return yaml_parser_set_parser_error_context(parser,</div><div class='del'>-                "while parsing a block mapping", POP(parser, parser-&gt;marks),</div><div class='del'>-                "did not find expected key", token-&gt;start_mark);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * block_mapping        ::= BLOCK-MAPPING_START</div><div class='del'>- *</div><div class='del'>- *                          ((KEY block_node_or_indentless_sequence?)?</div><div class='del'>- *</div><div class='del'>- *                          (VALUE block_node_or_indentless_sequence?)?)*</div><div class='del'>- *                           ***** *</div><div class='del'>- *                          BLOCK-END</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_block_mapping_value(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type == YAML_VALUE_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        yaml_mark_t mark = token-&gt;end_mark;</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!token) return 0;</div><div class='del'>-        if (token-&gt;type != YAML_KEY_TOKEN &amp;&amp;</div><div class='del'>-                token-&gt;type != YAML_VALUE_TOKEN &amp;&amp;</div><div class='del'>-                token-&gt;type != YAML_BLOCK_END_TOKEN) {</div><div class='del'>-            if (!PUSH(parser, parser-&gt;states,</div><div class='del'>-                        YAML_PARSE_BLOCK_MAPPING_KEY_STATE))</div><div class='del'>-                return 0;</div><div class='del'>-            return yaml_parser_parse_node(parser, event, 1, 1);</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            parser-&gt;state = YAML_PARSE_BLOCK_MAPPING_KEY_STATE;</div><div class='del'>-            return yaml_parser_process_empty_scalar(parser, event, mark);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        parser-&gt;state = YAML_PARSE_BLOCK_MAPPING_KEY_STATE;</div><div class='del'>-        return yaml_parser_process_empty_scalar(parser, event, token-&gt;start_mark);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * flow_sequence        ::= FLOW-SEQUENCE-START</div><div class='del'>- *                          *******************</div><div class='del'>- *                          (flow_sequence_entry FLOW-ENTRY)*</div><div class='del'>- *                           *                   **********</div><div class='del'>- *                          flow_sequence_entry?</div><div class='del'>- *                          *</div><div class='del'>- *                          FLOW-SEQUENCE-END</div><div class='del'>- *                          *****************</div><div class='del'>- * flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?</div><div class='del'>- *                          *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_sequence_entry(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event, int first)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    if (first) {</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!PUSH(parser, parser-&gt;marks, token-&gt;start_mark))</div><div class='del'>-            return 0;</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type != YAML_FLOW_SEQUENCE_END_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        if (!first) {</div><div class='del'>-            if (token-&gt;type == YAML_FLOW_ENTRY_TOKEN) {</div><div class='del'>-                SKIP_TOKEN(parser);</div><div class='del'>-                token = PEEK_TOKEN(parser);</div><div class='del'>-                if (!token) return 0;</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                return yaml_parser_set_parser_error_context(parser,</div><div class='del'>-                        "while parsing a flow sequence", POP(parser, parser-&gt;marks),</div><div class='del'>-                        "did not find expected ',' or ']'", token-&gt;start_mark);</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (token-&gt;type == YAML_KEY_TOKEN) {</div><div class='del'>-            parser-&gt;state = YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE;</div><div class='del'>-            MAPPING_START_EVENT_INIT(*event, NULL, NULL,</div><div class='del'>-                    1, YAML_FLOW_MAPPING_STYLE,</div><div class='del'>-                    token-&gt;start_mark, token-&gt;end_mark);</div><div class='del'>-            SKIP_TOKEN(parser);</div><div class='del'>-            return 1;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        else if (token-&gt;type != YAML_FLOW_SEQUENCE_END_TOKEN) {</div><div class='del'>-            if (!PUSH(parser, parser-&gt;states,</div><div class='del'>-                        YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE))</div><div class='del'>-                return 0;</div><div class='del'>-            return yaml_parser_parse_node(parser, event, 0, 0);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    parser-&gt;state = POP(parser, parser-&gt;states);</div><div class='del'>-    (void)POP(parser, parser-&gt;marks);</div><div class='del'>-    SEQUENCE_END_EVENT_INIT(*event, token-&gt;start_mark, token-&gt;end_mark);</div><div class='del'>-    SKIP_TOKEN(parser);</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?</div><div class='del'>- *                                      *** *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_sequence_entry_mapping_key(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type != YAML_VALUE_TOKEN &amp;&amp; token-&gt;type != YAML_FLOW_ENTRY_TOKEN</div><div class='del'>-            &amp;&amp; token-&gt;type != YAML_FLOW_SEQUENCE_END_TOKEN) {</div><div class='del'>-        if (!PUSH(parser, parser-&gt;states,</div><div class='del'>-                    YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE))</div><div class='del'>-            return 0;</div><div class='del'>-        return yaml_parser_parse_node(parser, event, 0, 0);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        yaml_mark_t mark = token-&gt;end_mark;</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        parser-&gt;state = YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE;</div><div class='del'>-        return yaml_parser_process_empty_scalar(parser, event, mark);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?</div><div class='del'>- *                                                      ***** *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_sequence_entry_mapping_value(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type == YAML_VALUE_TOKEN) {</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!token) return 0;</div><div class='del'>-        if (token-&gt;type != YAML_FLOW_ENTRY_TOKEN</div><div class='del'>-                &amp;&amp; token-&gt;type != YAML_FLOW_SEQUENCE_END_TOKEN) {</div><div class='del'>-            if (!PUSH(parser, parser-&gt;states,</div><div class='del'>-                        YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE))</div><div class='del'>-                return 0;</div><div class='del'>-            return yaml_parser_parse_node(parser, event, 0, 0);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    parser-&gt;state = YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE;</div><div class='del'>-    return yaml_parser_process_empty_scalar(parser, event, token-&gt;start_mark);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?</div><div class='del'>- *                                                                      *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_sequence_entry_mapping_end(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    parser-&gt;state = YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE;</div><div class='del'>-</div><div class='del'>-    MAPPING_END_EVENT_INIT(*event, token-&gt;start_mark, token-&gt;start_mark);</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * flow_mapping         ::= FLOW-MAPPING-START</div><div class='del'>- *                          ******************</div><div class='del'>- *                          (flow_mapping_entry FLOW-ENTRY)*</div><div class='del'>- *                           *                  **********</div><div class='del'>- *                          flow_mapping_entry?</div><div class='del'>- *                          ******************</div><div class='del'>- *                          FLOW-MAPPING-END</div><div class='del'>- *                          ****************</div><div class='del'>- * flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?</div><div class='del'>- *                          *           *** *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_mapping_key(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event, int first)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    if (first) {</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!PUSH(parser, parser-&gt;marks, token-&gt;start_mark))</div><div class='del'>-            return 0;</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type != YAML_FLOW_MAPPING_END_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        if (!first) {</div><div class='del'>-            if (token-&gt;type == YAML_FLOW_ENTRY_TOKEN) {</div><div class='del'>-                SKIP_TOKEN(parser);</div><div class='del'>-                token = PEEK_TOKEN(parser);</div><div class='del'>-                if (!token) return 0;</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                return yaml_parser_set_parser_error_context(parser,</div><div class='del'>-                        "while parsing a flow mapping", POP(parser, parser-&gt;marks),</div><div class='del'>-                        "did not find expected ',' or '}'", token-&gt;start_mark);</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if (token-&gt;type == YAML_KEY_TOKEN) {</div><div class='del'>-            SKIP_TOKEN(parser);</div><div class='del'>-            token = PEEK_TOKEN(parser);</div><div class='del'>-            if (!token) return 0;</div><div class='del'>-            if (token-&gt;type != YAML_VALUE_TOKEN</div><div class='del'>-                    &amp;&amp; token-&gt;type != YAML_FLOW_ENTRY_TOKEN</div><div class='del'>-                    &amp;&amp; token-&gt;type != YAML_FLOW_MAPPING_END_TOKEN) {</div><div class='del'>-                if (!PUSH(parser, parser-&gt;states,</div><div class='del'>-                            YAML_PARSE_FLOW_MAPPING_VALUE_STATE))</div><div class='del'>-                    return 0;</div><div class='del'>-                return yaml_parser_parse_node(parser, event, 0, 0);</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                parser-&gt;state = YAML_PARSE_FLOW_MAPPING_VALUE_STATE;</div><div class='del'>-                return yaml_parser_process_empty_scalar(parser, event,</div><div class='del'>-                        token-&gt;start_mark);</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        else if (token-&gt;type != YAML_FLOW_MAPPING_END_TOKEN) {</div><div class='del'>-            if (!PUSH(parser, parser-&gt;states,</div><div class='del'>-                        YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE))</div><div class='del'>-                return 0;</div><div class='del'>-            return yaml_parser_parse_node(parser, event, 0, 0);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    parser-&gt;state = POP(parser, parser-&gt;states);</div><div class='del'>-    (void)POP(parser, parser-&gt;marks);</div><div class='del'>-    MAPPING_END_EVENT_INIT(*event, token-&gt;start_mark, token-&gt;end_mark);</div><div class='del'>-    SKIP_TOKEN(parser);</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse the productions:</div><div class='del'>- * flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?</div><div class='del'>- *                                   *                  ***** *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_parse_flow_mapping_value(yaml_parser_t *parser,</div><div class='del'>-        yaml_event_t *event, int empty)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) return 0;</div><div class='del'>-</div><div class='del'>-    if (empty) {</div><div class='del'>-        parser-&gt;state = YAML_PARSE_FLOW_MAPPING_KEY_STATE;</div><div class='del'>-        return yaml_parser_process_empty_scalar(parser, event,</div><div class='del'>-                token-&gt;start_mark);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type == YAML_VALUE_TOKEN) {</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!token) return 0;</div><div class='del'>-        if (token-&gt;type != YAML_FLOW_ENTRY_TOKEN</div><div class='del'>-                &amp;&amp; token-&gt;type != YAML_FLOW_MAPPING_END_TOKEN) {</div><div class='del'>-            if (!PUSH(parser, parser-&gt;states,</div><div class='del'>-                        YAML_PARSE_FLOW_MAPPING_KEY_STATE))</div><div class='del'>-                return 0;</div><div class='del'>-            return yaml_parser_parse_node(parser, event, 0, 0);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    parser-&gt;state = YAML_PARSE_FLOW_MAPPING_KEY_STATE;</div><div class='del'>-    return yaml_parser_process_empty_scalar(parser, event, token-&gt;start_mark);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Generate an empty scalar event.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_process_empty_scalar(yaml_parser_t *parser, yaml_event_t *event,</div><div class='del'>-        yaml_mark_t mark)</div><div class='del'>-{</div><div class='del'>-    yaml_char_t *value;</div><div class='del'>-</div><div class='del'>-    value = YAML_MALLOC(1);</div><div class='del'>-    if (!value) {</div><div class='del'>-        parser-&gt;error = YAML_MEMORY_ERROR;</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-    value[0] = '\0';</div><div class='del'>-</div><div class='del'>-    SCALAR_EVENT_INIT(*event, NULL, NULL, value, 0,</div><div class='del'>-            1, 0, YAML_PLAIN_SCALAR_STYLE, mark, mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Parse directives.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_process_directives(yaml_parser_t *parser,</div><div class='del'>-        yaml_version_directive_t **version_directive_ref,</div><div class='del'>-        yaml_tag_directive_t **tag_directives_start_ref,</div><div class='del'>-        yaml_tag_directive_t **tag_directives_end_ref)</div><div class='del'>-{</div><div class='del'>-    yaml_tag_directive_t default_tag_directives[] = {</div><div class='del'>-        {(yaml_char_t *)"!", (yaml_char_t *)"!"},</div><div class='del'>-        {(yaml_char_t *)"!!", (yaml_char_t *)"tag:yaml.org,2002:"},</div><div class='del'>-        {NULL, NULL}</div><div class='del'>-    };</div><div class='del'>-    yaml_tag_directive_t *default_tag_directive;</div><div class='del'>-    yaml_version_directive_t *version_directive = NULL;</div><div class='del'>-    struct {</div><div class='del'>-        yaml_tag_directive_t *start;</div><div class='del'>-        yaml_tag_directive_t *end;</div><div class='del'>-        yaml_tag_directive_t *top;</div><div class='del'>-    } tag_directives = { NULL, NULL, NULL };</div><div class='del'>-    yaml_token_t *token;</div><div class='del'>-</div><div class='del'>-    if (!STACK_INIT(parser, tag_directives, yaml_tag_directive_t*))</div><div class='del'>-        goto error;</div><div class='del'>-</div><div class='del'>-    token = PEEK_TOKEN(parser);</div><div class='del'>-    if (!token) goto error;</div><div class='del'>-</div><div class='del'>-    while (token-&gt;type == YAML_VERSION_DIRECTIVE_TOKEN ||</div><div class='del'>-            token-&gt;type == YAML_TAG_DIRECTIVE_TOKEN)</div><div class='del'>-    {</div><div class='del'>-        if (token-&gt;type == YAML_VERSION_DIRECTIVE_TOKEN) {</div><div class='del'>-            if (version_directive) {</div><div class='del'>-                yaml_parser_set_parser_error(parser,</div><div class='del'>-                        "found duplicate %YAML directive", token-&gt;start_mark);</div><div class='del'>-                goto error;</div><div class='del'>-            }</div><div class='del'>-            if (token-&gt;data.version_directive.major != 1</div><div class='del'>-                    || token-&gt;data.version_directive.minor != 1) {</div><div class='del'>-                yaml_parser_set_parser_error(parser,</div><div class='del'>-                        "found incompatible YAML document", token-&gt;start_mark);</div><div class='del'>-                goto error;</div><div class='del'>-            }</div><div class='del'>-            version_directive = YAML_MALLOC_STATIC(yaml_version_directive_t);</div><div class='del'>-            if (!version_directive) {</div><div class='del'>-                parser-&gt;error = YAML_MEMORY_ERROR;</div><div class='del'>-                goto error;</div><div class='del'>-            }</div><div class='del'>-            version_directive-&gt;major = token-&gt;data.version_directive.major;</div><div class='del'>-            version_directive-&gt;minor = token-&gt;data.version_directive.minor;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        else if (token-&gt;type == YAML_TAG_DIRECTIVE_TOKEN) {</div><div class='del'>-            yaml_tag_directive_t value;</div><div class='del'>-            value.handle = token-&gt;data.tag_directive.handle;</div><div class='del'>-            value.prefix = token-&gt;data.tag_directive.prefix;</div><div class='del'>-</div><div class='del'>-            if (!yaml_parser_append_tag_directive(parser, value, 0,</div><div class='del'>-                        token-&gt;start_mark))</div><div class='del'>-                goto error;</div><div class='del'>-            if (!PUSH(parser, tag_directives, value))</div><div class='del'>-                goto error;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        SKIP_TOKEN(parser);</div><div class='del'>-        token = PEEK_TOKEN(parser);</div><div class='del'>-        if (!token) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    for (default_tag_directive = default_tag_directives;</div><div class='del'>-            default_tag_directive-&gt;handle; default_tag_directive++) {</div><div class='del'>-        if (!yaml_parser_append_tag_directive(parser, *default_tag_directive, 1,</div><div class='del'>-                    token-&gt;start_mark))</div><div class='del'>-            goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (version_directive_ref) {</div><div class='del'>-        *version_directive_ref = version_directive;</div><div class='del'>-    }</div><div class='del'>-    if (tag_directives_start_ref) {</div><div class='del'>-        if (STACK_EMPTY(parser, tag_directives)) {</div><div class='del'>-            *tag_directives_start_ref = *tag_directives_end_ref = NULL;</div><div class='del'>-            STACK_DEL(parser, tag_directives);</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            *tag_directives_start_ref = tag_directives.start;</div><div class='del'>-            *tag_directives_end_ref = tag_directives.top;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        STACK_DEL(parser, tag_directives);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(version_directive);</div><div class='del'>-    while (!STACK_EMPTY(parser, tag_directives)) {</div><div class='del'>-        yaml_tag_directive_t tag_directive = POP(parser, tag_directives);</div><div class='del'>-        yaml_free(tag_directive.handle);</div><div class='del'>-        yaml_free(tag_directive.prefix);</div><div class='del'>-    }</div><div class='del'>-    STACK_DEL(parser, tag_directives);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Append a tag directive to the directives stack.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_append_tag_directive(yaml_parser_t *parser,</div><div class='del'>-        yaml_tag_directive_t value, int allow_duplicates, yaml_mark_t mark)</div><div class='del'>-{</div><div class='del'>-    yaml_tag_directive_t *tag_directive;</div><div class='del'>-    yaml_tag_directive_t copy = { NULL, NULL };</div><div class='del'>-</div><div class='del'>-    for (tag_directive = parser-&gt;tag_directives.start;</div><div class='del'>-            tag_directive != parser-&gt;tag_directives.top; tag_directive ++) {</div><div class='del'>-        if (strcmp((char *)value.handle, (char *)tag_directive-&gt;handle) == 0) {</div><div class='del'>-            if (allow_duplicates)</div><div class='del'>-                return 1;</div><div class='del'>-            return yaml_parser_set_parser_error(parser,</div><div class='del'>-                    "found duplicate %TAG directive", mark);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    copy.handle = yaml_strdup(value.handle);</div><div class='del'>-    copy.prefix = yaml_strdup(value.prefix);</div><div class='del'>-    if (!copy.handle || !copy.prefix) {</div><div class='del'>-        parser-&gt;error = YAML_MEMORY_ERROR;</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (!PUSH(parser, parser-&gt;tag_directives, copy))</div><div class='del'>-        goto error;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(copy.handle);</div><div class='del'>-    yaml_free(copy.prefix);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='head'>diff --git a/ext/psych/yaml/reader.c b/ext/psych/yaml/reader.c<br/>deleted file mode 100644<br/>index f3ac54c251..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/psych/yaml/reader.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/reader.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,469 +0,0 @@</div><div class='del'>-</div><div class='del'>-#include "yaml_private.h"</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Declarations.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_reader_error(yaml_parser_t *parser, const char *problem,</div><div class='del'>-        size_t offset, int value);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_update_raw_buffer(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_determine_encoding(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_update_buffer(yaml_parser_t *parser, size_t length);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set the reader error and return 0.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_reader_error(yaml_parser_t *parser, const char *problem,</div><div class='del'>-        size_t offset, int value)</div><div class='del'>-{</div><div class='del'>-    parser-&gt;error = YAML_READER_ERROR;</div><div class='del'>-    parser-&gt;problem = problem;</div><div class='del'>-    parser-&gt;problem_offset = offset;</div><div class='del'>-    parser-&gt;problem_value = value;</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Byte order marks.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define BOM_UTF8    "\xef\xbb\xbf"</div><div class='del'>-#define BOM_UTF16LE "\xff\xfe"</div><div class='del'>-#define BOM_UTF16BE "\xfe\xff"</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Determine the input stream encoding by checking the BOM symbol. If no BOM is</div><div class='del'>- * found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_determine_encoding(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    /* Ensure that we had enough bytes in the raw buffer. */</div><div class='del'>-</div><div class='del'>-    while (!parser-&gt;eof</div><div class='del'>-            &amp;&amp; parser-&gt;raw_buffer.last - parser-&gt;raw_buffer.pointer &lt; 3) {</div><div class='del'>-        if (!yaml_parser_update_raw_buffer(parser)) {</div><div class='del'>-            return 0;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Determine the encoding. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;raw_buffer.last - parser-&gt;raw_buffer.pointer &gt;= 2</div><div class='del'>-            &amp;&amp; !memcmp(parser-&gt;raw_buffer.pointer, BOM_UTF16LE, 2)) {</div><div class='del'>-        parser-&gt;encoding = YAML_UTF16LE_ENCODING;</div><div class='del'>-        parser-&gt;raw_buffer.pointer += 2;</div><div class='del'>-        parser-&gt;offset += 2;</div><div class='del'>-    }</div><div class='del'>-    else if (parser-&gt;raw_buffer.last - parser-&gt;raw_buffer.pointer &gt;= 2</div><div class='del'>-            &amp;&amp; !memcmp(parser-&gt;raw_buffer.pointer, BOM_UTF16BE, 2)) {</div><div class='del'>-        parser-&gt;encoding = YAML_UTF16BE_ENCODING;</div><div class='del'>-        parser-&gt;raw_buffer.pointer += 2;</div><div class='del'>-        parser-&gt;offset += 2;</div><div class='del'>-    }</div><div class='del'>-    else if (parser-&gt;raw_buffer.last - parser-&gt;raw_buffer.pointer &gt;= 3</div><div class='del'>-            &amp;&amp; !memcmp(parser-&gt;raw_buffer.pointer, BOM_UTF8, 3)) {</div><div class='del'>-        parser-&gt;encoding = YAML_UTF8_ENCODING;</div><div class='del'>-        parser-&gt;raw_buffer.pointer += 3;</div><div class='del'>-        parser-&gt;offset += 3;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        parser-&gt;encoding = YAML_UTF8_ENCODING;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Update the raw buffer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_update_raw_buffer(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    size_t size_read = 0;</div><div class='del'>-</div><div class='del'>-    /* Return if the raw buffer is full. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;raw_buffer.start == parser-&gt;raw_buffer.pointer</div><div class='del'>-            &amp;&amp; parser-&gt;raw_buffer.last == parser-&gt;raw_buffer.end)</div><div class='del'>-        return 1;</div><div class='del'>-</div><div class='del'>-    /* Return on EOF. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;eof) return 1;</div><div class='del'>-</div><div class='del'>-    /* Move the remaining bytes in the raw buffer to the beginning. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;raw_buffer.start &lt; parser-&gt;raw_buffer.pointer</div><div class='del'>-            &amp;&amp; parser-&gt;raw_buffer.pointer &lt; parser-&gt;raw_buffer.last) {</div><div class='del'>-        memmove(parser-&gt;raw_buffer.start, parser-&gt;raw_buffer.pointer,</div><div class='del'>-                parser-&gt;raw_buffer.last - parser-&gt;raw_buffer.pointer);</div><div class='del'>-    }</div><div class='del'>-    parser-&gt;raw_buffer.last -=</div><div class='del'>-        parser-&gt;raw_buffer.pointer - parser-&gt;raw_buffer.start;</div><div class='del'>-    parser-&gt;raw_buffer.pointer = parser-&gt;raw_buffer.start;</div><div class='del'>-</div><div class='del'>-    /* Call the read handler to fill the buffer. */</div><div class='del'>-</div><div class='del'>-    if (!parser-&gt;read_handler(parser-&gt;read_handler_data, parser-&gt;raw_buffer.last,</div><div class='del'>-                parser-&gt;raw_buffer.end - parser-&gt;raw_buffer.last, &amp;size_read)) {</div><div class='del'>-        return yaml_parser_set_reader_error(parser, "input error",</div><div class='del'>-                parser-&gt;offset, -1);</div><div class='del'>-    }</div><div class='del'>-    parser-&gt;raw_buffer.last += size_read;</div><div class='del'>-    if (!size_read) {</div><div class='del'>-        parser-&gt;eof = 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Ensure that the buffer contains at least `length` characters.</div><div class='del'>- * Return 1 on success, 0 on failure.</div><div class='del'>- *</div><div class='del'>- * The length is supposed to be significantly less that the buffer size.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_update_buffer(yaml_parser_t *parser, size_t length)</div><div class='del'>-{</div><div class='del'>-    int first = 1;</div><div class='del'>-</div><div class='del'>-    assert(parser-&gt;read_handler);   /* Read handler must be set. */</div><div class='del'>-</div><div class='del'>-    /* If the EOF flag is set and the raw buffer is empty, do nothing. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;eof &amp;&amp; parser-&gt;raw_buffer.pointer == parser-&gt;raw_buffer.last)</div><div class='del'>-        return 1;</div><div class='del'>-</div><div class='del'>-    /* Return if the buffer contains enough characters. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;unread &gt;= length)</div><div class='del'>-        return 1;</div><div class='del'>-</div><div class='del'>-    /* Determine the input encoding if it is not known yet. */</div><div class='del'>-</div><div class='del'>-    if (!parser-&gt;encoding) {</div><div class='del'>-        if (!yaml_parser_determine_encoding(parser))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Move the unread characters to the beginning of the buffer. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;buffer.start &lt; parser-&gt;buffer.pointer</div><div class='del'>-            &amp;&amp; parser-&gt;buffer.pointer &lt; parser-&gt;buffer.last) {</div><div class='del'>-        size_t size = parser-&gt;buffer.last - parser-&gt;buffer.pointer;</div><div class='del'>-        memmove(parser-&gt;buffer.start, parser-&gt;buffer.pointer, size);</div><div class='del'>-        parser-&gt;buffer.pointer = parser-&gt;buffer.start;</div><div class='del'>-        parser-&gt;buffer.last = parser-&gt;buffer.start + size;</div><div class='del'>-    }</div><div class='del'>-    else if (parser-&gt;buffer.pointer == parser-&gt;buffer.last) {</div><div class='del'>-        parser-&gt;buffer.pointer = parser-&gt;buffer.start;</div><div class='del'>-        parser-&gt;buffer.last = parser-&gt;buffer.start;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Fill the buffer until it has enough characters. */</div><div class='del'>-</div><div class='del'>-    while (parser-&gt;unread &lt; length)</div><div class='del'>-    {</div><div class='del'>-        /* Fill the raw buffer if necessary. */</div><div class='del'>-</div><div class='del'>-        if (!first || parser-&gt;raw_buffer.pointer == parser-&gt;raw_buffer.last) {</div><div class='del'>-            if (!yaml_parser_update_raw_buffer(parser)) return 0;</div><div class='del'>-        }</div><div class='del'>-        first = 0;</div><div class='del'>-</div><div class='del'>-        /* Decode the raw buffer. */</div><div class='del'>-</div><div class='del'>-        while (parser-&gt;raw_buffer.pointer != parser-&gt;raw_buffer.last)</div><div class='del'>-        {</div><div class='del'>-            unsigned int value = 0, value2 = 0;</div><div class='del'>-            int incomplete = 0;</div><div class='del'>-            unsigned char octet;</div><div class='del'>-            unsigned int width = 0;</div><div class='del'>-            int low, high;</div><div class='del'>-            size_t k;</div><div class='del'>-            size_t raw_unread = parser-&gt;raw_buffer.last - parser-&gt;raw_buffer.pointer;</div><div class='del'>-</div><div class='del'>-            /* Decode the next character. */</div><div class='del'>-</div><div class='del'>-            switch (parser-&gt;encoding)</div><div class='del'>-            {</div><div class='del'>-                case YAML_UTF8_ENCODING:</div><div class='del'>-</div><div class='del'>-                    /*</div><div class='del'>-                     * Decode a UTF-8 character.  Check RFC 3629</div><div class='del'>-                     * (http://www.ietf.org/rfc/rfc3629.txt) for more details.</div><div class='del'>-                     *</div><div class='del'>-                     * The following table (taken from the RFC) is used for</div><div class='del'>-                     * decoding.</div><div class='del'>-                     *</div><div class='del'>-                     *    Char. number range |        UTF-8 octet sequence</div><div class='del'>-                     *      (hexadecimal)    |              (binary)</div><div class='del'>-                     *   --------------------+------------------------------------</div><div class='del'>-                     *   0000 0000-0000 007F | 0xxxxxxx</div><div class='del'>-                     *   0000 0080-0000 07FF | 110xxxxx 10xxxxxx</div><div class='del'>-                     *   0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx</div><div class='del'>-                     *   0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx</div><div class='del'>-                     *</div><div class='del'>-                     * Additionally, the characters in the range 0xD800-0xDFFF</div><div class='del'>-                     * are prohibited as they are reserved for use with UTF-16</div><div class='del'>-                     * surrogate pairs.</div><div class='del'>-                     */</div><div class='del'>-</div><div class='del'>-                    /* Determine the length of the UTF-8 sequence. */</div><div class='del'>-</div><div class='del'>-                    octet = parser-&gt;raw_buffer.pointer[0];</div><div class='del'>-                    width = (octet &amp; 0x80) == 0x00 ? 1 :</div><div class='del'>-                            (octet &amp; 0xE0) == 0xC0 ? 2 :</div><div class='del'>-                            (octet &amp; 0xF0) == 0xE0 ? 3 :</div><div class='del'>-                            (octet &amp; 0xF8) == 0xF0 ? 4 : 0;</div><div class='del'>-</div><div class='del'>-                    /* Check if the leading octet is valid. */</div><div class='del'>-</div><div class='del'>-                    if (!width)</div><div class='del'>-                        return yaml_parser_set_reader_error(parser,</div><div class='del'>-                                "invalid leading UTF-8 octet",</div><div class='del'>-                                parser-&gt;offset, octet);</div><div class='del'>-</div><div class='del'>-                    /* Check if the raw buffer contains an incomplete character. */</div><div class='del'>-</div><div class='del'>-                    if (width &gt; raw_unread) {</div><div class='del'>-                        if (parser-&gt;eof) {</div><div class='del'>-                            return yaml_parser_set_reader_error(parser,</div><div class='del'>-                                    "incomplete UTF-8 octet sequence",</div><div class='del'>-                                    parser-&gt;offset, -1);</div><div class='del'>-                        }</div><div class='del'>-                        incomplete = 1;</div><div class='del'>-                        break;</div><div class='del'>-                    }</div><div class='del'>-</div><div class='del'>-                    /* Decode the leading octet. */</div><div class='del'>-</div><div class='del'>-                    value = (octet &amp; 0x80) == 0x00 ? octet &amp; 0x7F :</div><div class='del'>-                            (octet &amp; 0xE0) == 0xC0 ? octet &amp; 0x1F :</div><div class='del'>-                            (octet &amp; 0xF0) == 0xE0 ? octet &amp; 0x0F :</div><div class='del'>-                            (octet &amp; 0xF8) == 0xF0 ? octet &amp; 0x07 : 0;</div><div class='del'>-</div><div class='del'>-                    /* Check and decode the trailing octets. */</div><div class='del'>-</div><div class='del'>-                    for (k = 1; k &lt; width; k ++)</div><div class='del'>-                    {</div><div class='del'>-                        octet = parser-&gt;raw_buffer.pointer[k];</div><div class='del'>-</div><div class='del'>-                        /* Check if the octet is valid. */</div><div class='del'>-</div><div class='del'>-                        if ((octet &amp; 0xC0) != 0x80)</div><div class='del'>-                            return yaml_parser_set_reader_error(parser,</div><div class='del'>-                                    "invalid trailing UTF-8 octet",</div><div class='del'>-                                    parser-&gt;offset+k, octet);</div><div class='del'>-</div><div class='del'>-                        /* Decode the octet. */</div><div class='del'>-</div><div class='del'>-                        value = (value &lt;&lt; 6) + (octet &amp; 0x3F);</div><div class='del'>-                    }</div><div class='del'>-</div><div class='del'>-                    /* Check the length of the sequence against the value. */</div><div class='del'>-</div><div class='del'>-                    if (!((width == 1) ||</div><div class='del'>-                            (width == 2 &amp;&amp; value &gt;= 0x80) ||</div><div class='del'>-                            (width == 3 &amp;&amp; value &gt;= 0x800) ||</div><div class='del'>-                            (width == 4 &amp;&amp; value &gt;= 0x10000)))</div><div class='del'>-                        return yaml_parser_set_reader_error(parser,</div><div class='del'>-                                "invalid length of a UTF-8 sequence",</div><div class='del'>-                                parser-&gt;offset, -1);</div><div class='del'>-</div><div class='del'>-                    /* Check the range of the value. */</div><div class='del'>-</div><div class='del'>-                    if ((value &gt;= 0xD800 &amp;&amp; value &lt;= 0xDFFF) || value &gt; 0x10FFFF)</div><div class='del'>-                        return yaml_parser_set_reader_error(parser,</div><div class='del'>-                                "invalid Unicode character",</div><div class='del'>-                                parser-&gt;offset, value);</div><div class='del'>-</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                case YAML_UTF16LE_ENCODING:</div><div class='del'>-                case YAML_UTF16BE_ENCODING:</div><div class='del'>-</div><div class='del'>-                    low = (parser-&gt;encoding == YAML_UTF16LE_ENCODING ? 0 : 1);</div><div class='del'>-                    high = (parser-&gt;encoding == YAML_UTF16LE_ENCODING ? 1 : 0);</div><div class='del'>-</div><div class='del'>-                    /*</div><div class='del'>-                     * The UTF-16 encoding is not as simple as one might</div><div class='del'>-                     * naively think.  Check RFC 2781</div><div class='del'>-                     * (http://www.ietf.org/rfc/rfc2781.txt).</div><div class='del'>-                     *</div><div class='del'>-                     * Normally, two subsequent bytes describe a Unicode</div><div class='del'>-                     * character.  However a special technique (called a</div><div class='del'>-                     * surrogate pair) is used for specifying character</div><div class='del'>-                     * values larger than 0xFFFF.</div><div class='del'>-                     *</div><div class='del'>-                     * A surrogate pair consists of two pseudo-characters:</div><div class='del'>-                     *      high surrogate area (0xD800-0xDBFF)</div><div class='del'>-                     *      low surrogate area (0xDC00-0xDFFF)</div><div class='del'>-                     *</div><div class='del'>-                     * The following formulas are used for decoding</div><div class='del'>-                     * and encoding characters using surrogate pairs:</div><div class='del'>-                     *</div><div class='del'>-                     *  U  = U' + 0x10000   (0x01 00 00 &lt;= U &lt;= 0x10 FF FF)</div><div class='del'>-                     *  U' = yyyyyyyyyyxxxxxxxxxx   (0 &lt;= U' &lt;= 0x0F FF FF)</div><div class='del'>-                     *  W1 = 110110yyyyyyyyyy</div><div class='del'>-                     *  W2 = 110111xxxxxxxxxx</div><div class='del'>-                     *</div><div class='del'>-                     * where U is the character value, W1 is the high surrogate</div><div class='del'>-                     * area, W2 is the low surrogate area.</div><div class='del'>-                     */</div><div class='del'>-</div><div class='del'>-                    /* Check for incomplete UTF-16 character. */</div><div class='del'>-</div><div class='del'>-                    if (raw_unread &lt; 2) {</div><div class='del'>-                        if (parser-&gt;eof) {</div><div class='del'>-                            return yaml_parser_set_reader_error(parser,</div><div class='del'>-                                    "incomplete UTF-16 character",</div><div class='del'>-                                    parser-&gt;offset, -1);</div><div class='del'>-                        }</div><div class='del'>-                        incomplete = 1;</div><div class='del'>-                        break;</div><div class='del'>-                    }</div><div class='del'>-</div><div class='del'>-                    /* Get the character. */</div><div class='del'>-</div><div class='del'>-                    value = parser-&gt;raw_buffer.pointer[low]</div><div class='del'>-                        + (parser-&gt;raw_buffer.pointer[high] &lt;&lt; 8);</div><div class='del'>-</div><div class='del'>-                    /* Check for unexpected low surrogate area. */</div><div class='del'>-</div><div class='del'>-                    if ((value &amp; 0xFC00) == 0xDC00)</div><div class='del'>-                        return yaml_parser_set_reader_error(parser,</div><div class='del'>-                                "unexpected low surrogate area",</div><div class='del'>-                                parser-&gt;offset, value);</div><div class='del'>-</div><div class='del'>-                    /* Check for a high surrogate area. */</div><div class='del'>-</div><div class='del'>-                    if ((value &amp; 0xFC00) == 0xD800) {</div><div class='del'>-</div><div class='del'>-                        width = 4;</div><div class='del'>-</div><div class='del'>-                        /* Check for incomplete surrogate pair. */</div><div class='del'>-</div><div class='del'>-                        if (raw_unread &lt; 4) {</div><div class='del'>-                            if (parser-&gt;eof) {</div><div class='del'>-                                return yaml_parser_set_reader_error(parser,</div><div class='del'>-                                        "incomplete UTF-16 surrogate pair",</div><div class='del'>-                                        parser-&gt;offset, -1);</div><div class='del'>-                            }</div><div class='del'>-                            incomplete = 1;</div><div class='del'>-                            break;</div><div class='del'>-                        }</div><div class='del'>-</div><div class='del'>-                        /* Get the next character. */</div><div class='del'>-</div><div class='del'>-                        value2 = parser-&gt;raw_buffer.pointer[low+2]</div><div class='del'>-                            + (parser-&gt;raw_buffer.pointer[high+2] &lt;&lt; 8);</div><div class='del'>-</div><div class='del'>-                        /* Check for a low surrogate area. */</div><div class='del'>-</div><div class='del'>-                        if ((value2 &amp; 0xFC00) != 0xDC00)</div><div class='del'>-                            return yaml_parser_set_reader_error(parser,</div><div class='del'>-                                    "expected low surrogate area",</div><div class='del'>-                                    parser-&gt;offset+2, value2);</div><div class='del'>-</div><div class='del'>-                        /* Generate the value of the surrogate pair. */</div><div class='del'>-</div><div class='del'>-                        value = 0x10000 + ((value &amp; 0x3FF) &lt;&lt; 10) + (value2 &amp; 0x3FF);</div><div class='del'>-                    }</div><div class='del'>-</div><div class='del'>-                    else {</div><div class='del'>-                        width = 2;</div><div class='del'>-                    }</div><div class='del'>-</div><div class='del'>-                    break;</div><div class='del'>-</div><div class='del'>-                default:</div><div class='del'>-                    assert(1);      /* Impossible. */</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            /* Check if the raw buffer contains enough bytes to form a character. */</div><div class='del'>-</div><div class='del'>-            if (incomplete) break;</div><div class='del'>-</div><div class='del'>-            /*</div><div class='del'>-             * Check if the character is in the allowed range:</div><div class='del'>-             *      #x9 | #xA | #xD | [#x20-#x7E]               (8 bit)</div><div class='del'>-             *      | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD]    (16 bit)</div><div class='del'>-             *      | [#x10000-#x10FFFF]                        (32 bit)</div><div class='del'>-             */</div><div class='del'>-</div><div class='del'>-            if (! (value == 0x09 || value == 0x0A || value == 0x0D</div><div class='del'>-                        || (value &gt;= 0x20 &amp;&amp; value &lt;= 0x7E)</div><div class='del'>-                        || (value == 0x85) || (value &gt;= 0xA0 &amp;&amp; value &lt;= 0xD7FF)</div><div class='del'>-                        || (value &gt;= 0xE000 &amp;&amp; value &lt;= 0xFFFD)</div><div class='del'>-                        || (value &gt;= 0x10000 &amp;&amp; value &lt;= 0x10FFFF)))</div><div class='del'>-                return yaml_parser_set_reader_error(parser,</div><div class='del'>-                        "control characters are not allowed",</div><div class='del'>-                        parser-&gt;offset, value);</div><div class='del'>-</div><div class='del'>-            /* Move the raw pointers. */</div><div class='del'>-</div><div class='del'>-            parser-&gt;raw_buffer.pointer += width;</div><div class='del'>-            parser-&gt;offset += width;</div><div class='del'>-</div><div class='del'>-            /* Finally put the character into the buffer. */</div><div class='del'>-</div><div class='del'>-            /* 0000 0000-0000 007F -&gt; 0xxxxxxx */</div><div class='del'>-            if (value &lt;= 0x7F) {</div><div class='del'>-                *(parser-&gt;buffer.last++) = value;</div><div class='del'>-            }</div><div class='del'>-            /* 0000 0080-0000 07FF -&gt; 110xxxxx 10xxxxxx */</div><div class='del'>-            else if (value &lt;= 0x7FF) {</div><div class='del'>-                *(parser-&gt;buffer.last++) = 0xC0 + (value &gt;&gt; 6);</div><div class='del'>-                *(parser-&gt;buffer.last++) = 0x80 + (value &amp; 0x3F);</div><div class='del'>-            }</div><div class='del'>-            /* 0000 0800-0000 FFFF -&gt; 1110xxxx 10xxxxxx 10xxxxxx */</div><div class='del'>-            else if (value &lt;= 0xFFFF) {</div><div class='del'>-                *(parser-&gt;buffer.last++) = 0xE0 + (value &gt;&gt; 12);</div><div class='del'>-                *(parser-&gt;buffer.last++) = 0x80 + ((value &gt;&gt; 6) &amp; 0x3F);</div><div class='del'>-                *(parser-&gt;buffer.last++) = 0x80 + (value &amp; 0x3F);</div><div class='del'>-            }</div><div class='del'>-            /* 0001 0000-0010 FFFF -&gt; 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */</div><div class='del'>-            else {</div><div class='del'>-                *(parser-&gt;buffer.last++) = 0xF0 + (value &gt;&gt; 18);</div><div class='del'>-                *(parser-&gt;buffer.last++) = 0x80 + ((value &gt;&gt; 12) &amp; 0x3F);</div><div class='del'>-                *(parser-&gt;buffer.last++) = 0x80 + ((value &gt;&gt; 6) &amp; 0x3F);</div><div class='del'>-                *(parser-&gt;buffer.last++) = 0x80 + (value &amp; 0x3F);</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            parser-&gt;unread ++;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* On EOF, put NUL into the buffer and return. */</div><div class='del'>-</div><div class='del'>-        if (parser-&gt;eof) {</div><div class='del'>-            *(parser-&gt;buffer.last++) = '\0';</div><div class='del'>-            parser-&gt;unread ++;</div><div class='del'>-            return 1;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;offset &gt;= MAX_FILE_SIZE) {</div><div class='del'>-        return yaml_parser_set_reader_error(parser, "input is too long",</div><div class='del'>-            parser-&gt;offset, -1);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='head'>diff --git a/ext/psych/yaml/scanner.c b/ext/psych/yaml/scanner.c<br/>deleted file mode 100644<br/>index 359f1072f1..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/psych/yaml/scanner.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/scanner.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,3578 +0,0 @@</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Introduction</div><div class='del'>- * ************</div><div class='del'>- *</div><div class='del'>- * The following notes assume that you are familiar with the YAML specification</div><div class='del'>- * (http://yaml.org/spec/cvs/current.html).  We mostly follow it, although in</div><div class='del'>- * some cases we are less restrictive that it requires.</div><div class='del'>- *</div><div class='del'>- * The process of transforming a YAML stream into a sequence of events is</div><div class='del'>- * divided on two steps: Scanning and Parsing.</div><div class='del'>- *</div><div class='del'>- * The Scanner transforms the input stream into a sequence of tokens, while the</div><div class='del'>- * parser transform the sequence of tokens produced by the Scanner into a</div><div class='del'>- * sequence of parsing events.</div><div class='del'>- *</div><div class='del'>- * The Scanner is rather clever and complicated. The Parser, on the contrary,</div><div class='del'>- * is a straightforward implementation of a recursive-descendant parser (or,</div><div class='del'>- * LL(1) parser, as it is usually called).</div><div class='del'>- *</div><div class='del'>- * Actually there are two issues of Scanning that might be called "clever", the</div><div class='del'>- * rest is quite straightforward.  The issues are "block collection start" and</div><div class='del'>- * "simple keys".  Both issues are explained below in details.</div><div class='del'>- *</div><div class='del'>- * Here the Scanning step is explained and implemented.  We start with the list</div><div class='del'>- * of all the tokens produced by the Scanner together with short descriptions.</div><div class='del'>- *</div><div class='del'>- * Now, tokens:</div><div class='del'>- *</div><div class='del'>- *      STREAM-START(encoding)          # The stream start.</div><div class='del'>- *      STREAM-END                      # The stream end.</div><div class='del'>- *      VERSION-DIRECTIVE(major,minor)  # The '%YAML' directive.</div><div class='del'>- *      TAG-DIRECTIVE(handle,prefix)    # The '%TAG' directive.</div><div class='del'>- *      DOCUMENT-START                  # '---'</div><div class='del'>- *      DOCUMENT-END                    # '...'</div><div class='del'>- *      BLOCK-SEQUENCE-START            # Indentation increase denoting a block</div><div class='del'>- *      BLOCK-MAPPING-START             # sequence or a block mapping.</div><div class='del'>- *      BLOCK-END                       # Indentation decrease.</div><div class='del'>- *      FLOW-SEQUENCE-START             # '['</div><div class='del'>- *      FLOW-SEQUENCE-END               # ']'</div><div class='del'>- *      BLOCK-SEQUENCE-START            # '{'</div><div class='del'>- *      BLOCK-SEQUENCE-END              # '}'</div><div class='del'>- *      BLOCK-ENTRY                     # '-'</div><div class='del'>- *      FLOW-ENTRY                      # ','</div><div class='del'>- *      KEY                             # '?' or nothing (simple keys).</div><div class='del'>- *      VALUE                           # ':'</div><div class='del'>- *      ALIAS(anchor)                   # '*anchor'</div><div class='del'>- *      ANCHOR(anchor)                  # '&amp;anchor'</div><div class='del'>- *      TAG(handle,suffix)              # '!handle!suffix'</div><div class='del'>- *      SCALAR(value,style)             # A scalar.</div><div class='del'>- *</div><div class='del'>- * The following two tokens are "virtual" tokens denoting the beginning and the</div><div class='del'>- * end of the stream:</div><div class='del'>- *</div><div class='del'>- *      STREAM-START(encoding)</div><div class='del'>- *      STREAM-END</div><div class='del'>- *</div><div class='del'>- * We pass the information about the input stream encoding with the</div><div class='del'>- * STREAM-START token.</div><div class='del'>- *</div><div class='del'>- * The next two tokens are responsible for tags:</div><div class='del'>- *</div><div class='del'>- *      VERSION-DIRECTIVE(major,minor)</div><div class='del'>- *      TAG-DIRECTIVE(handle,prefix)</div><div class='del'>- *</div><div class='del'>- * Example:</div><div class='del'>- *</div><div class='del'>- *      %YAML   1.1</div><div class='del'>- *      %TAG    !   !foo</div><div class='del'>- *      %TAG    !yaml!  tag:yaml.org,2002:</div><div class='del'>- *      ---</div><div class='del'>- *</div><div class='del'>- * The corresponding sequence of tokens:</div><div class='del'>- *</div><div class='del'>- *      STREAM-START(utf-8)</div><div class='del'>- *      VERSION-DIRECTIVE(1,1)</div><div class='del'>- *      TAG-DIRECTIVE("!","!foo")</div><div class='del'>- *      TAG-DIRECTIVE("!yaml","tag:yaml.org,2002:")</div><div class='del'>- *      DOCUMENT-START</div><div class='del'>- *      STREAM-END</div><div class='del'>- *</div><div class='del'>- * Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole</div><div class='del'>- * line.</div><div class='del'>- *</div><div class='del'>- * The document start and end indicators are represented by:</div><div class='del'>- *</div><div class='del'>- *      DOCUMENT-START</div><div class='del'>- *      DOCUMENT-END</div><div class='del'>- *</div><div class='del'>- * Note that if a YAML stream contains an implicit document (without '---'</div><div class='del'>- * and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be</div><div class='del'>- * produced.</div><div class='del'>- *</div><div class='del'>- * In the following examples, we present whole documents together with the</div><div class='del'>- * produced tokens.</div><div class='del'>- *</div><div class='del'>- *      1. An implicit document:</div><div class='del'>- *</div><div class='del'>- *          'a scalar'</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          SCALAR("a scalar",single-quoted)</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- *      2. An explicit document:</div><div class='del'>- *</div><div class='del'>- *          ---</div><div class='del'>- *          'a scalar'</div><div class='del'>- *          ...</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          DOCUMENT-START</div><div class='del'>- *          SCALAR("a scalar",single-quoted)</div><div class='del'>- *          DOCUMENT-END</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- *      3. Several documents in a stream:</div><div class='del'>- *</div><div class='del'>- *          'a scalar'</div><div class='del'>- *          ---</div><div class='del'>- *          'another scalar'</div><div class='del'>- *          ---</div><div class='del'>- *          'yet another scalar'</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          SCALAR("a scalar",single-quoted)</div><div class='del'>- *          DOCUMENT-START</div><div class='del'>- *          SCALAR("another scalar",single-quoted)</div><div class='del'>- *          DOCUMENT-START</div><div class='del'>- *          SCALAR("yet another scalar",single-quoted)</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- * We have already introduced the SCALAR token above.  The following tokens are</div><div class='del'>- * used to describe aliases, anchors, tag, and scalars:</div><div class='del'>- *</div><div class='del'>- *      ALIAS(anchor)</div><div class='del'>- *      ANCHOR(anchor)</div><div class='del'>- *      TAG(handle,suffix)</div><div class='del'>- *      SCALAR(value,style)</div><div class='del'>- *</div><div class='del'>- * The following series of examples illustrate the usage of these tokens:</div><div class='del'>- *</div><div class='del'>- *      1. A recursive sequence:</div><div class='del'>- *</div><div class='del'>- *          &amp;A [ *A ]</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          ANCHOR("A")</div><div class='del'>- *          FLOW-SEQUENCE-START</div><div class='del'>- *          ALIAS("A")</div><div class='del'>- *          FLOW-SEQUENCE-END</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- *      2. A tagged scalar:</div><div class='del'>- *</div><div class='del'>- *          !!float "3.14"  # A good approximation.</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          TAG("!!","float")</div><div class='del'>- *          SCALAR("3.14",double-quoted)</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- *      3. Various scalar styles:</div><div class='del'>- *</div><div class='del'>- *          --- # Implicit empty plain scalars do not produce tokens.</div><div class='del'>- *          --- a plain scalar</div><div class='del'>- *          --- 'a single-quoted scalar'</div><div class='del'>- *          --- "a double-quoted scalar"</div><div class='del'>- *          --- |-</div><div class='del'>- *            a literal scalar</div><div class='del'>- *          --- &gt;-</div><div class='del'>- *            a folded</div><div class='del'>- *            scalar</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          DOCUMENT-START</div><div class='del'>- *          DOCUMENT-START</div><div class='del'>- *          SCALAR("a plain scalar",plain)</div><div class='del'>- *          DOCUMENT-START</div><div class='del'>- *          SCALAR("a single-quoted scalar",single-quoted)</div><div class='del'>- *          DOCUMENT-START</div><div class='del'>- *          SCALAR("a double-quoted scalar",double-quoted)</div><div class='del'>- *          DOCUMENT-START</div><div class='del'>- *          SCALAR("a literal scalar",literal)</div><div class='del'>- *          DOCUMENT-START</div><div class='del'>- *          SCALAR("a folded scalar",folded)</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- * Now it's time to review collection-related tokens. We will start with</div><div class='del'>- * flow collections:</div><div class='del'>- *</div><div class='del'>- *      FLOW-SEQUENCE-START</div><div class='del'>- *      FLOW-SEQUENCE-END</div><div class='del'>- *      FLOW-MAPPING-START</div><div class='del'>- *      FLOW-MAPPING-END</div><div class='del'>- *      FLOW-ENTRY</div><div class='del'>- *      KEY</div><div class='del'>- *      VALUE</div><div class='del'>- *</div><div class='del'>- * The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and</div><div class='del'>- * FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}'</div><div class='del'>- * correspondingly.  FLOW-ENTRY represent the ',' indicator.  Finally the</div><div class='del'>- * indicators '?' and ':', which are used for denoting mapping keys and values,</div><div class='del'>- * are represented by the KEY and VALUE tokens.</div><div class='del'>- *</div><div class='del'>- * The following examples show flow collections:</div><div class='del'>- *</div><div class='del'>- *      1. A flow sequence:</div><div class='del'>- *</div><div class='del'>- *          [item 1, item 2, item 3]</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          FLOW-SEQUENCE-START</div><div class='del'>- *          SCALAR("item 1",plain)</div><div class='del'>- *          FLOW-ENTRY</div><div class='del'>- *          SCALAR("item 2",plain)</div><div class='del'>- *          FLOW-ENTRY</div><div class='del'>- *          SCALAR("item 3",plain)</div><div class='del'>- *          FLOW-SEQUENCE-END</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- *      2. A flow mapping:</div><div class='del'>- *</div><div class='del'>- *          {</div><div class='del'>- *              a simple key: a value,  # Note that the KEY token is produced.</div><div class='del'>- *              ? a complex key: another value,</div><div class='del'>- *          }</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          FLOW-MAPPING-START</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("a simple key",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("a value",plain)</div><div class='del'>- *          FLOW-ENTRY</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("a complex key",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("another value",plain)</div><div class='del'>- *          FLOW-ENTRY</div><div class='del'>- *          FLOW-MAPPING-END</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- * A simple key is a key which is not denoted by the '?' indicator.  Note that</div><div class='del'>- * the Scanner still produce the KEY token whenever it encounters a simple key.</div><div class='del'>- *</div><div class='del'>- * For scanning block collections, the following tokens are used (note that we</div><div class='del'>- * repeat KEY and VALUE here):</div><div class='del'>- *</div><div class='del'>- *      BLOCK-SEQUENCE-START</div><div class='del'>- *      BLOCK-MAPPING-START</div><div class='del'>- *      BLOCK-END</div><div class='del'>- *      BLOCK-ENTRY</div><div class='del'>- *      KEY</div><div class='del'>- *      VALUE</div><div class='del'>- *</div><div class='del'>- * The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation</div><div class='del'>- * increase that precedes a block collection (cf. the INDENT token in Python).</div><div class='del'>- * The token BLOCK-END denote indentation decrease that ends a block collection</div><div class='del'>- * (cf. the DEDENT token in Python).  However YAML has some syntax pecularities</div><div class='del'>- * that makes detections of these tokens more complex.</div><div class='del'>- *</div><div class='del'>- * The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators</div><div class='del'>- * '-', '?', and ':' correspondingly.</div><div class='del'>- *</div><div class='del'>- * The following examples show how the tokens BLOCK-SEQUENCE-START,</div><div class='del'>- * BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner:</div><div class='del'>- *</div><div class='del'>- *      1. Block sequences:</div><div class='del'>- *</div><div class='del'>- *          - item 1</div><div class='del'>- *          - item 2</div><div class='del'>- *          -</div><div class='del'>- *            - item 3.1</div><div class='del'>- *            - item 3.2</div><div class='del'>- *          -</div><div class='del'>- *            key 1: value 1</div><div class='del'>- *            key 2: value 2</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          BLOCK-SEQUENCE-START</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          SCALAR("item 1",plain)</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          SCALAR("item 2",plain)</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          BLOCK-SEQUENCE-START</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          SCALAR("item 3.1",plain)</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          SCALAR("item 3.2",plain)</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          BLOCK-MAPPING-START</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("key 1",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("value 1",plain)</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("key 2",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("value 2",plain)</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- *      2. Block mappings:</div><div class='del'>- *</div><div class='del'>- *          a simple key: a value   # The KEY token is produced here.</div><div class='del'>- *          ? a complex key</div><div class='del'>- *          : another value</div><div class='del'>- *          a mapping:</div><div class='del'>- *            key 1: value 1</div><div class='del'>- *            key 2: value 2</div><div class='del'>- *          a sequence:</div><div class='del'>- *            - item 1</div><div class='del'>- *            - item 2</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          BLOCK-MAPPING-START</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("a simple key",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("a value",plain)</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("a complex key",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("another value",plain)</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("a mapping",plain)</div><div class='del'>- *          BLOCK-MAPPING-START</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("key 1",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("value 1",plain)</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("key 2",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("value 2",plain)</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("a sequence",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          BLOCK-SEQUENCE-START</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          SCALAR("item 1",plain)</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          SCALAR("item 2",plain)</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- * YAML does not always require to start a new block collection from a new</div><div class='del'>- * line.  If the current line contains only '-', '?', and ':' indicators, a new</div><div class='del'>- * block collection may start at the current line.  The following examples</div><div class='del'>- * illustrate this case:</div><div class='del'>- *</div><div class='del'>- *      1. Collections in a sequence:</div><div class='del'>- *</div><div class='del'>- *          - - item 1</div><div class='del'>- *            - item 2</div><div class='del'>- *          - key 1: value 1</div><div class='del'>- *            key 2: value 2</div><div class='del'>- *          - ? complex key</div><div class='del'>- *            : complex value</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          BLOCK-SEQUENCE-START</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          BLOCK-SEQUENCE-START</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          SCALAR("item 1",plain)</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          SCALAR("item 2",plain)</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          BLOCK-MAPPING-START</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("key 1",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("value 1",plain)</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("key 2",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("value 2",plain)</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          BLOCK-MAPPING-START</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("complex key")</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("complex value")</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- *      2. Collections in a mapping:</div><div class='del'>- *</div><div class='del'>- *          ? a sequence</div><div class='del'>- *          : - item 1</div><div class='del'>- *            - item 2</div><div class='del'>- *          ? a mapping</div><div class='del'>- *          : key 1: value 1</div><div class='del'>- *            key 2: value 2</div><div class='del'>- *</div><div class='del'>- *      Tokens:</div><div class='del'>- *</div><div class='del'>- *          STREAM-START(utf-8)</div><div class='del'>- *          BLOCK-MAPPING-START</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("a sequence",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          BLOCK-SEQUENCE-START</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          SCALAR("item 1",plain)</div><div class='del'>- *          BLOCK-ENTRY</div><div class='del'>- *          SCALAR("item 2",plain)</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("a mapping",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          BLOCK-MAPPING-START</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("key 1",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("value 1",plain)</div><div class='del'>- *          KEY</div><div class='del'>- *          SCALAR("key 2",plain)</div><div class='del'>- *          VALUE</div><div class='del'>- *          SCALAR("value 2",plain)</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          BLOCK-END</div><div class='del'>- *          STREAM-END</div><div class='del'>- *</div><div class='del'>- * YAML also permits non-indented sequences if they are included into a block</div><div class='del'>- * mapping.  In this case, the token BLOCK-SEQUENCE-START is not produced:</div><div class='del'>- *</div><div class='del'>- *      key:</div><div class='del'>- *      - item 1    # BLOCK-SEQUENCE-START is NOT produced here.</div><div class='del'>- *      - item 2</div><div class='del'>- *</div><div class='del'>- * Tokens:</div><div class='del'>- *</div><div class='del'>- *      STREAM-START(utf-8)</div><div class='del'>- *      BLOCK-MAPPING-START</div><div class='del'>- *      KEY</div><div class='del'>- *      SCALAR("key",plain)</div><div class='del'>- *      VALUE</div><div class='del'>- *      BLOCK-ENTRY</div><div class='del'>- *      SCALAR("item 1",plain)</div><div class='del'>- *      BLOCK-ENTRY</div><div class='del'>- *      SCALAR("item 2",plain)</div><div class='del'>- *      BLOCK-END</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include "yaml_private.h"</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Ensure that the buffer contains the required number of characters.</div><div class='del'>- * Return 1 on success, 0 on failure (reader error or memory error).</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define CACHE(parser,length)                                                    \</div><div class='del'>-    (parser-&gt;unread &gt;= (length)                                                 \</div><div class='del'>-        ? 1                                                                     \</div><div class='del'>-        : yaml_parser_update_buffer(parser, (length)))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Advance the buffer pointer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define SKIP(parser)                                                            \</div><div class='del'>-     (parser-&gt;mark.index ++,                                                    \</div><div class='del'>-      parser-&gt;mark.column ++,                                                   \</div><div class='del'>-      parser-&gt;unread --,                                                        \</div><div class='del'>-      parser-&gt;buffer.pointer += WIDTH(parser-&gt;buffer))</div><div class='del'>-</div><div class='del'>-#define SKIP_LINE(parser)                                                       \</div><div class='del'>-     (IS_CRLF(parser-&gt;buffer) ?                                                 \</div><div class='del'>-      (parser-&gt;mark.index += 2,                                                 \</div><div class='del'>-       parser-&gt;mark.column = 0,                                                 \</div><div class='del'>-       parser-&gt;mark.line ++,                                                    \</div><div class='del'>-       parser-&gt;unread -= 2,                                                     \</div><div class='del'>-       parser-&gt;buffer.pointer += 2) :                                           \</div><div class='del'>-      IS_BREAK(parser-&gt;buffer) ?                                                \</div><div class='del'>-      (parser-&gt;mark.index ++,                                                   \</div><div class='del'>-       parser-&gt;mark.column = 0,                                                 \</div><div class='del'>-       parser-&gt;mark.line ++,                                                    \</div><div class='del'>-       parser-&gt;unread --,                                                       \</div><div class='del'>-       parser-&gt;buffer.pointer += WIDTH(parser-&gt;buffer)) : 0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Copy a character to a string buffer and advance pointers.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define READ(parser,string)                                                     \</div><div class='del'>-     (STRING_EXTEND(parser,string) ?                                            \</div><div class='del'>-         (COPY(string,parser-&gt;buffer),                                          \</div><div class='del'>-          parser-&gt;mark.index ++,                                                \</div><div class='del'>-          parser-&gt;mark.column ++,                                               \</div><div class='del'>-          parser-&gt;unread --,                                                    \</div><div class='del'>-          1) : 0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Copy a line break character to a string buffer and advance pointers.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define READ_LINE(parser,string)                                                \</div><div class='del'>-    (STRING_EXTEND(parser,string) ?                                             \</div><div class='del'>-    (((CHECK_AT(parser-&gt;buffer,'\r',0)                                          \</div><div class='del'>-       &amp;&amp; CHECK_AT(parser-&gt;buffer,'\n',1)) ?        /* CR LF -&gt; LF */           \</div><div class='del'>-     (*((string).pointer++) = (yaml_char_t) '\n',                               \</div><div class='del'>-      parser-&gt;buffer.pointer += 2,                                              \</div><div class='del'>-      parser-&gt;mark.index += 2,                                                  \</div><div class='del'>-      parser-&gt;mark.column = 0,                                                  \</div><div class='del'>-      parser-&gt;mark.line ++,                                                     \</div><div class='del'>-      parser-&gt;unread -= 2) :                                                    \</div><div class='del'>-     (CHECK_AT(parser-&gt;buffer,'\r',0)                                           \</div><div class='del'>-      || CHECK_AT(parser-&gt;buffer,'\n',0)) ?         /* CR|LF -&gt; LF */           \</div><div class='del'>-     (*((string).pointer++) = (yaml_char_t) '\n',                               \</div><div class='del'>-      parser-&gt;buffer.pointer ++,                                                \</div><div class='del'>-      parser-&gt;mark.index ++,                                                    \</div><div class='del'>-      parser-&gt;mark.column = 0,                                                  \</div><div class='del'>-      parser-&gt;mark.line ++,                                                     \</div><div class='del'>-      parser-&gt;unread --) :                                                      \</div><div class='del'>-     (CHECK_AT(parser-&gt;buffer,'\xC2',0)                                         \</div><div class='del'>-      &amp;&amp; CHECK_AT(parser-&gt;buffer,'\x85',1)) ?       /* NEL -&gt; LF */             \</div><div class='del'>-     (*((string).pointer++) = (yaml_char_t) '\n',                               \</div><div class='del'>-      parser-&gt;buffer.pointer += 2,                                              \</div><div class='del'>-      parser-&gt;mark.index ++,                                                    \</div><div class='del'>-      parser-&gt;mark.column = 0,                                                  \</div><div class='del'>-      parser-&gt;mark.line ++,                                                     \</div><div class='del'>-      parser-&gt;unread --) :                                                      \</div><div class='del'>-     (CHECK_AT(parser-&gt;buffer,'\xE2',0) &amp;&amp;                                      \</div><div class='del'>-      CHECK_AT(parser-&gt;buffer,'\x80',1) &amp;&amp;                                      \</div><div class='del'>-      (CHECK_AT(parser-&gt;buffer,'\xA8',2) ||                                     \</div><div class='del'>-       CHECK_AT(parser-&gt;buffer,'\xA9',2))) ?        /* LS|PS -&gt; LS|PS */        \</div><div class='del'>-     (*((string).pointer++) = *(parser-&gt;buffer.pointer++),                      \</div><div class='del'>-      *((string).pointer++) = *(parser-&gt;buffer.pointer++),                      \</div><div class='del'>-      *((string).pointer++) = *(parser-&gt;buffer.pointer++),                      \</div><div class='del'>-      parser-&gt;mark.index ++,                                                    \</div><div class='del'>-      parser-&gt;mark.column = 0,                                                  \</div><div class='del'>-      parser-&gt;mark.line ++,                                                     \</div><div class='del'>-      parser-&gt;unread --) : 0),                                                  \</div><div class='del'>-    1) : 0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Public API declarations.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_scan(yaml_parser_t *parser, yaml_token_t *token);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Error handling.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_scanner_error(yaml_parser_t *parser, const char *context,</div><div class='del'>-        yaml_mark_t context_mark, const char *problem);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * High-level token API.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_fetch_more_tokens(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_next_token(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Potential simple keys.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_stale_simple_keys(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_save_simple_key(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_remove_simple_key(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_increase_flow_level(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_decrease_flow_level(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Indentation treatment.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_roll_indent(yaml_parser_t *parser, ptrdiff_t column,</div><div class='del'>-        ptrdiff_t number, yaml_token_type_t type, yaml_mark_t mark);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_unroll_indent(yaml_parser_t *parser, ptrdiff_t column);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Token fetchers.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_stream_start(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_stream_end(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_directive(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_document_indicator(yaml_parser_t *parser,</div><div class='del'>-        yaml_token_type_t type);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_flow_collection_start(yaml_parser_t *parser,</div><div class='del'>-        yaml_token_type_t type);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_flow_collection_end(yaml_parser_t *parser,</div><div class='del'>-        yaml_token_type_t type);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_flow_entry(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_block_entry(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_key(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_value(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_anchor(yaml_parser_t *parser, yaml_token_type_t type);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_tag(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_block_scalar(yaml_parser_t *parser, int literal);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_flow_scalar(yaml_parser_t *parser, int single);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_plain_scalar(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Token scanners.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_to_next_token(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_directive(yaml_parser_t *parser, yaml_token_t *token);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_directive_name(yaml_parser_t *parser,</div><div class='del'>-        yaml_mark_t start_mark, yaml_char_t **name);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_version_directive_value(yaml_parser_t *parser,</div><div class='del'>-        yaml_mark_t start_mark, int *major, int *minor);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_version_directive_number(yaml_parser_t *parser,</div><div class='del'>-        yaml_mark_t start_mark, int *number);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_tag_directive_value(yaml_parser_t *parser,</div><div class='del'>-        yaml_mark_t mark, yaml_char_t **handle, yaml_char_t **prefix);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_anchor(yaml_parser_t *parser, yaml_token_t *token,</div><div class='del'>-        yaml_token_type_t type);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_tag(yaml_parser_t *parser, yaml_token_t *token);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_tag_handle(yaml_parser_t *parser, int directive,</div><div class='del'>-        yaml_mark_t start_mark, yaml_char_t **handle);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_tag_uri(yaml_parser_t *parser, int directive,</div><div class='del'>-        yaml_char_t *head, yaml_mark_t start_mark, yaml_char_t **uri);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_uri_escapes(yaml_parser_t *parser, int directive,</div><div class='del'>-        yaml_mark_t start_mark, yaml_string_t *string);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_block_scalar(yaml_parser_t *parser, yaml_token_t *token,</div><div class='del'>-        int literal);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_block_scalar_breaks(yaml_parser_t *parser,</div><div class='del'>-        int *indent, yaml_string_t *breaks,</div><div class='del'>-        yaml_mark_t start_mark, yaml_mark_t *end_mark);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_flow_scalar(yaml_parser_t *parser, yaml_token_t *token,</div><div class='del'>-        int single);</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_plain_scalar(yaml_parser_t *parser, yaml_token_t *token);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Get the next token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_scan(yaml_parser_t *parser, yaml_token_t *token)</div><div class='del'>-{</div><div class='del'>-    assert(parser); /* Non-NULL parser object is expected. */</div><div class='del'>-    assert(token);  /* Non-NULL token object is expected. */</div><div class='del'>-</div><div class='del'>-    /* Erase the token object. */</div><div class='del'>-</div><div class='del'>-    memset(token, 0, sizeof(yaml_token_t));</div><div class='del'>-</div><div class='del'>-    /* No tokens after STREAM-END or error. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;stream_end_produced || parser-&gt;error) {</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Ensure that the tokens queue contains enough tokens. */</div><div class='del'>-</div><div class='del'>-    if (!parser-&gt;token_available) {</div><div class='del'>-        if (!yaml_parser_fetch_more_tokens(parser))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Fetch the next token from the queue. */</div><div class='del'>-</div><div class='del'>-    *token = DEQUEUE(parser, parser-&gt;tokens);</div><div class='del'>-    parser-&gt;token_available = 0;</div><div class='del'>-    parser-&gt;tokens_parsed ++;</div><div class='del'>-</div><div class='del'>-    if (token-&gt;type == YAML_STREAM_END_TOKEN) {</div><div class='del'>-        parser-&gt;stream_end_produced = 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set the scanner error and return 0.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_set_scanner_error(yaml_parser_t *parser, const char *context,</div><div class='del'>-        yaml_mark_t context_mark, const char *problem)</div><div class='del'>-{</div><div class='del'>-    parser-&gt;error = YAML_SCANNER_ERROR;</div><div class='del'>-    parser-&gt;context = context;</div><div class='del'>-    parser-&gt;context_mark = context_mark;</div><div class='del'>-    parser-&gt;problem = problem;</div><div class='del'>-    parser-&gt;problem_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Ensure that the tokens queue contains at least one token which can be</div><div class='del'>- * returned to the Parser.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_fetch_more_tokens(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    int need_more_tokens;</div><div class='del'>-</div><div class='del'>-    /* While we need more tokens to fetch, do it. */</div><div class='del'>-</div><div class='del'>-    while (1)</div><div class='del'>-    {</div><div class='del'>-        /*</div><div class='del'>-         * Check if we really need to fetch more tokens.</div><div class='del'>-         */</div><div class='del'>-</div><div class='del'>-        need_more_tokens = 0;</div><div class='del'>-</div><div class='del'>-        if (parser-&gt;tokens.head == parser-&gt;tokens.tail)</div><div class='del'>-        {</div><div class='del'>-            /* Queue is empty. */</div><div class='del'>-</div><div class='del'>-            need_more_tokens = 1;</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            yaml_simple_key_t *simple_key;</div><div class='del'>-</div><div class='del'>-            /* Check if any potential simple key may occupy the head position. */</div><div class='del'>-</div><div class='del'>-            if (!yaml_parser_stale_simple_keys(parser))</div><div class='del'>-                return 0;</div><div class='del'>-</div><div class='del'>-            for (simple_key = parser-&gt;simple_keys.start;</div><div class='del'>-                    simple_key != parser-&gt;simple_keys.top; simple_key++) {</div><div class='del'>-                if (simple_key-&gt;possible</div><div class='del'>-                        &amp;&amp; simple_key-&gt;token_number == parser-&gt;tokens_parsed) {</div><div class='del'>-                    need_more_tokens = 1;</div><div class='del'>-                    break;</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* We are finished. */</div><div class='del'>-</div><div class='del'>-        if (!need_more_tokens)</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        /* Fetch the next token. */</div><div class='del'>-</div><div class='del'>-        if (!yaml_parser_fetch_next_token(parser))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    parser-&gt;token_available = 1;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * The dispatcher for token fetchers.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_next_token(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    /* Ensure that the buffer is initialized. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Check if we just started scanning.  Fetch STREAM-START then. */</div><div class='del'>-</div><div class='del'>-    if (!parser-&gt;stream_start_produced)</div><div class='del'>-        return yaml_parser_fetch_stream_start(parser);</div><div class='del'>-</div><div class='del'>-    /* Eat whitespaces and comments until we reach the next token. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_to_next_token(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Remove obsolete potential simple keys. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_stale_simple_keys(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Check the indentation level against the current column. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_unroll_indent(parser, parser-&gt;mark.column))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * Ensure that the buffer contains at least 4 characters.  4 is the length</div><div class='del'>-     * of the longest indicators ('--- ' and '... ').</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 4))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Is it the end of the stream? */</div><div class='del'>-</div><div class='del'>-    if (IS_Z(parser-&gt;buffer))</div><div class='del'>-        return yaml_parser_fetch_stream_end(parser);</div><div class='del'>-</div><div class='del'>-    /* Is it a directive? */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;mark.column == 0 &amp;&amp; CHECK(parser-&gt;buffer, '%'))</div><div class='del'>-        return yaml_parser_fetch_directive(parser);</div><div class='del'>-</div><div class='del'>-    /* Is it the document start indicator? */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;mark.column == 0</div><div class='del'>-            &amp;&amp; CHECK_AT(parser-&gt;buffer, '-', 0)</div><div class='del'>-            &amp;&amp; CHECK_AT(parser-&gt;buffer, '-', 1)</div><div class='del'>-            &amp;&amp; CHECK_AT(parser-&gt;buffer, '-', 2)</div><div class='del'>-            &amp;&amp; IS_BLANKZ_AT(parser-&gt;buffer, 3))</div><div class='del'>-        return yaml_parser_fetch_document_indicator(parser,</div><div class='del'>-                YAML_DOCUMENT_START_TOKEN);</div><div class='del'>-</div><div class='del'>-    /* Is it the document end indicator? */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;mark.column == 0</div><div class='del'>-            &amp;&amp; CHECK_AT(parser-&gt;buffer, '.', 0)</div><div class='del'>-            &amp;&amp; CHECK_AT(parser-&gt;buffer, '.', 1)</div><div class='del'>-            &amp;&amp; CHECK_AT(parser-&gt;buffer, '.', 2)</div><div class='del'>-            &amp;&amp; IS_BLANKZ_AT(parser-&gt;buffer, 3))</div><div class='del'>-        return yaml_parser_fetch_document_indicator(parser,</div><div class='del'>-                YAML_DOCUMENT_END_TOKEN);</div><div class='del'>-</div><div class='del'>-    /* Is it the flow sequence start indicator? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '['))</div><div class='del'>-        return yaml_parser_fetch_flow_collection_start(parser,</div><div class='del'>-                YAML_FLOW_SEQUENCE_START_TOKEN);</div><div class='del'>-</div><div class='del'>-    /* Is it the flow mapping start indicator? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '{'))</div><div class='del'>-        return yaml_parser_fetch_flow_collection_start(parser,</div><div class='del'>-                YAML_FLOW_MAPPING_START_TOKEN);</div><div class='del'>-</div><div class='del'>-    /* Is it the flow sequence end indicator? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, ']'))</div><div class='del'>-        return yaml_parser_fetch_flow_collection_end(parser,</div><div class='del'>-                YAML_FLOW_SEQUENCE_END_TOKEN);</div><div class='del'>-</div><div class='del'>-    /* Is it the flow mapping end indicator? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '}'))</div><div class='del'>-        return yaml_parser_fetch_flow_collection_end(parser,</div><div class='del'>-                YAML_FLOW_MAPPING_END_TOKEN);</div><div class='del'>-</div><div class='del'>-    /* Is it the flow entry indicator? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, ','))</div><div class='del'>-        return yaml_parser_fetch_flow_entry(parser);</div><div class='del'>-</div><div class='del'>-    /* Is it the block entry indicator? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '-') &amp;&amp; IS_BLANKZ_AT(parser-&gt;buffer, 1))</div><div class='del'>-        return yaml_parser_fetch_block_entry(parser);</div><div class='del'>-</div><div class='del'>-    /* Is it the key indicator? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '?')</div><div class='del'>-            &amp;&amp; (parser-&gt;flow_level || IS_BLANKZ_AT(parser-&gt;buffer, 1)))</div><div class='del'>-        return yaml_parser_fetch_key(parser);</div><div class='del'>-</div><div class='del'>-    /* Is it the value indicator? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, ':')</div><div class='del'>-            &amp;&amp; (parser-&gt;flow_level || IS_BLANKZ_AT(parser-&gt;buffer, 1)))</div><div class='del'>-        return yaml_parser_fetch_value(parser);</div><div class='del'>-</div><div class='del'>-    /* Is it an alias? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '*'))</div><div class='del'>-        return yaml_parser_fetch_anchor(parser, YAML_ALIAS_TOKEN);</div><div class='del'>-</div><div class='del'>-    /* Is it an anchor? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '&amp;'))</div><div class='del'>-        return yaml_parser_fetch_anchor(parser, YAML_ANCHOR_TOKEN);</div><div class='del'>-</div><div class='del'>-    /* Is it a tag? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '!'))</div><div class='del'>-        return yaml_parser_fetch_tag(parser);</div><div class='del'>-</div><div class='del'>-    /* Is it a literal scalar? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '|') &amp;&amp; !parser-&gt;flow_level)</div><div class='del'>-        return yaml_parser_fetch_block_scalar(parser, 1);</div><div class='del'>-</div><div class='del'>-    /* Is it a folded scalar? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '&gt;') &amp;&amp; !parser-&gt;flow_level)</div><div class='del'>-        return yaml_parser_fetch_block_scalar(parser, 0);</div><div class='del'>-</div><div class='del'>-    /* Is it a single-quoted scalar? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '\''))</div><div class='del'>-        return yaml_parser_fetch_flow_scalar(parser, 1);</div><div class='del'>-</div><div class='del'>-    /* Is it a double-quoted scalar? */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '"'))</div><div class='del'>-        return yaml_parser_fetch_flow_scalar(parser, 0);</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * Is it a plain scalar?</div><div class='del'>-     *</div><div class='del'>-     * A plain scalar may start with any non-blank characters except</div><div class='del'>-     *</div><div class='del'>-     *      '-', '?', ':', ',', '[', ']', '{', '}',</div><div class='del'>-     *      '#', '&amp;', '*', '!', '|', '&gt;', '\'', '\"',</div><div class='del'>-     *      '%', '@', '`'.</div><div class='del'>-     *</div><div class='del'>-     * In the block context (and, for the '-' indicator, in the flow context</div><div class='del'>-     * too), it may also start with the characters</div><div class='del'>-     *</div><div class='del'>-     *      '-', '?', ':'</div><div class='del'>-     *</div><div class='del'>-     * if it is followed by a non-space character.</div><div class='del'>-     *</div><div class='del'>-     * The last rule is more restrictive than the specification requires.</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    if (!(IS_BLANKZ(parser-&gt;buffer) || CHECK(parser-&gt;buffer, '-')</div><div class='del'>-                || CHECK(parser-&gt;buffer, '?') || CHECK(parser-&gt;buffer, ':')</div><div class='del'>-                || CHECK(parser-&gt;buffer, ',') || CHECK(parser-&gt;buffer, '[')</div><div class='del'>-                || CHECK(parser-&gt;buffer, ']') || CHECK(parser-&gt;buffer, '{')</div><div class='del'>-                || CHECK(parser-&gt;buffer, '}') || CHECK(parser-&gt;buffer, '#')</div><div class='del'>-                || CHECK(parser-&gt;buffer, '&amp;') || CHECK(parser-&gt;buffer, '*')</div><div class='del'>-                || CHECK(parser-&gt;buffer, '!') || CHECK(parser-&gt;buffer, '|')</div><div class='del'>-                || CHECK(parser-&gt;buffer, '&gt;') || CHECK(parser-&gt;buffer, '\'')</div><div class='del'>-                || CHECK(parser-&gt;buffer, '"') || CHECK(parser-&gt;buffer, '%')</div><div class='del'>-                || CHECK(parser-&gt;buffer, '@') || CHECK(parser-&gt;buffer, '`')) ||</div><div class='del'>-            (CHECK(parser-&gt;buffer, '-') &amp;&amp; !IS_BLANK_AT(parser-&gt;buffer, 1)) ||</div><div class='del'>-            (!parser-&gt;flow_level &amp;&amp;</div><div class='del'>-             (CHECK(parser-&gt;buffer, '?') || CHECK(parser-&gt;buffer, ':'))</div><div class='del'>-             &amp;&amp; !IS_BLANKZ_AT(parser-&gt;buffer, 1)))</div><div class='del'>-        return yaml_parser_fetch_plain_scalar(parser);</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * If we don't determine the token type so far, it is an error.</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    return yaml_parser_set_scanner_error(parser,</div><div class='del'>-            "while scanning for the next token", parser-&gt;mark,</div><div class='del'>-            "found character that cannot start any token");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check the list of potential simple keys and remove the positions that</div><div class='del'>- * cannot contain simple keys anymore.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_stale_simple_keys(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_simple_key_t *simple_key;</div><div class='del'>-</div><div class='del'>-    /* Check for a potential simple key for each flow level. */</div><div class='del'>-</div><div class='del'>-    for (simple_key = parser-&gt;simple_keys.start;</div><div class='del'>-            simple_key != parser-&gt;simple_keys.top; simple_key ++)</div><div class='del'>-    {</div><div class='del'>-        /*</div><div class='del'>-         * The specification requires that a simple key</div><div class='del'>-         *</div><div class='del'>-         *  - is limited to a single line,</div><div class='del'>-         *  - is shorter than 1024 characters.</div><div class='del'>-         */</div><div class='del'>-</div><div class='del'>-        if (simple_key-&gt;possible</div><div class='del'>-                &amp;&amp; (simple_key-&gt;mark.line &lt; parser-&gt;mark.line</div><div class='del'>-                    || simple_key-&gt;mark.index+1024 &lt; parser-&gt;mark.index)) {</div><div class='del'>-</div><div class='del'>-            /* Check if the potential simple key to be removed is required. */</div><div class='del'>-</div><div class='del'>-            if (simple_key-&gt;required) {</div><div class='del'>-                return yaml_parser_set_scanner_error(parser,</div><div class='del'>-                        "while scanning a simple key", simple_key-&gt;mark,</div><div class='del'>-                        "could not find expected ':'");</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            simple_key-&gt;possible = 0;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if a simple key may start at the current position and add it if</div><div class='del'>- * needed.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_save_simple_key(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    /*</div><div class='del'>-     * A simple key is required at the current position if the scanner is in</div><div class='del'>-     * the block context and the current column coincides with the indentation</div><div class='del'>-     * level.</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    int required = (!parser-&gt;flow_level</div><div class='del'>-            &amp;&amp; parser-&gt;indent == (ptrdiff_t)parser-&gt;mark.column);</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * If the current position may start a simple key, save it.</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;simple_key_allowed)</div><div class='del'>-    {</div><div class='del'>-        yaml_simple_key_t simple_key;</div><div class='del'>-        simple_key.possible = 1;</div><div class='del'>-        simple_key.required = required;</div><div class='del'>-        simple_key.token_number =</div><div class='del'>-            parser-&gt;tokens_parsed + (parser-&gt;tokens.tail - parser-&gt;tokens.head);</div><div class='del'>-        simple_key.mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-        if (!yaml_parser_remove_simple_key(parser)) return 0;</div><div class='del'>-</div><div class='del'>-        *(parser-&gt;simple_keys.top-1) = simple_key;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Remove a potential simple key at the current flow level.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_remove_simple_key(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_simple_key_t *simple_key = parser-&gt;simple_keys.top-1;</div><div class='del'>-</div><div class='del'>-    if (simple_key-&gt;possible)</div><div class='del'>-    {</div><div class='del'>-        /* If the key is required, it is an error. */</div><div class='del'>-</div><div class='del'>-        if (simple_key-&gt;required) {</div><div class='del'>-            return yaml_parser_set_scanner_error(parser,</div><div class='del'>-                    "while scanning a simple key", simple_key-&gt;mark,</div><div class='del'>-                    "could not find expected ':'");</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Remove the key from the stack. */</div><div class='del'>-</div><div class='del'>-    simple_key-&gt;possible = 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Increase the flow level and resize the simple key list if needed.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_increase_flow_level(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_simple_key_t empty_simple_key = { 0, 0, 0, { 0, 0, 0 } };</div><div class='del'>-</div><div class='del'>-    /* Reset the simple key on the next level. */</div><div class='del'>-</div><div class='del'>-    if (!PUSH(parser, parser-&gt;simple_keys, empty_simple_key))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Increase the flow level. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;flow_level == INT_MAX) {</div><div class='del'>-        parser-&gt;error = YAML_MEMORY_ERROR;</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    parser-&gt;flow_level++;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Decrease the flow level.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_decrease_flow_level(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    if (parser-&gt;flow_level) {</div><div class='del'>-        parser-&gt;flow_level --;</div><div class='del'>-        (void)POP(parser, parser-&gt;simple_keys);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Push the current indentation level to the stack and set the new level</div><div class='del'>- * the current column is greater than the indentation level.  In this case,</div><div class='del'>- * append or insert the specified token into the token queue.</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_roll_indent(yaml_parser_t *parser, ptrdiff_t column,</div><div class='del'>-        ptrdiff_t number, yaml_token_type_t type, yaml_mark_t mark)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* In the flow context, do nothing. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;flow_level)</div><div class='del'>-        return 1;</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;indent &lt; column)</div><div class='del'>-    {</div><div class='del'>-        /*</div><div class='del'>-         * Push the current indentation level to the stack and set the new</div><div class='del'>-         * indentation level.</div><div class='del'>-         */</div><div class='del'>-</div><div class='del'>-        if (!PUSH(parser, parser-&gt;indents, parser-&gt;indent))</div><div class='del'>-            return 0;</div><div class='del'>-</div><div class='del'>-        if (column &gt; INT_MAX) {</div><div class='del'>-            parser-&gt;error = YAML_MEMORY_ERROR;</div><div class='del'>-            return 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        parser-&gt;indent = column;</div><div class='del'>-</div><div class='del'>-        /* Create a token and insert it into the queue. */</div><div class='del'>-</div><div class='del'>-        TOKEN_INIT(token, type, mark, mark);</div><div class='del'>-</div><div class='del'>-        if (number == -1) {</div><div class='del'>-            if (!ENQUEUE(parser, parser-&gt;tokens, token))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            if (!QUEUE_INSERT(parser,</div><div class='del'>-                        parser-&gt;tokens, number - parser-&gt;tokens_parsed, token))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Pop indentation levels from the indents stack until the current level</div><div class='del'>- * becomes less or equal to the column.  For each indentation level, append</div><div class='del'>- * the BLOCK-END token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_unroll_indent(yaml_parser_t *parser, ptrdiff_t column)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* In the flow context, do nothing. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;flow_level)</div><div class='del'>-        return 1;</div><div class='del'>-</div><div class='del'>-    /* Loop through the indentation levels in the stack. */</div><div class='del'>-</div><div class='del'>-    while (parser-&gt;indent &gt; column)</div><div class='del'>-    {</div><div class='del'>-        /* Create a token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-        TOKEN_INIT(token, YAML_BLOCK_END_TOKEN, parser-&gt;mark, parser-&gt;mark);</div><div class='del'>-</div><div class='del'>-        if (!ENQUEUE(parser, parser-&gt;tokens, token))</div><div class='del'>-            return 0;</div><div class='del'>-</div><div class='del'>-        /* Pop the indentation level. */</div><div class='del'>-</div><div class='del'>-        parser-&gt;indent = POP(parser, parser-&gt;indents);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Initialize the scanner and produce the STREAM-START token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_stream_start(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_simple_key_t simple_key = { 0, 0, 0, { 0, 0, 0 } };</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* Set the initial indentation. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;indent = -1;</div><div class='del'>-</div><div class='del'>-    /* Initialize the simple key stack. */</div><div class='del'>-</div><div class='del'>-    if (!PUSH(parser, parser-&gt;simple_keys, simple_key))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* A simple key is allowed at the beginning of the stream. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 1;</div><div class='del'>-</div><div class='del'>-    /* We have started. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;stream_start_produced = 1;</div><div class='del'>-</div><div class='del'>-    /* Create the STREAM-START token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-    STREAM_START_TOKEN_INIT(token, parser-&gt;encoding,</div><div class='del'>-            parser-&gt;mark, parser-&gt;mark);</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the STREAM-END token and shut down the scanner.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_stream_end(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* Force new line. */</div><div class='del'>-</div><div class='del'>-    if (parser-&gt;mark.column != 0) {</div><div class='del'>-        parser-&gt;mark.column = 0;</div><div class='del'>-        parser-&gt;mark.line ++;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Reset the indentation level. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_unroll_indent(parser, -1))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Reset simple keys. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_remove_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 0;</div><div class='del'>-</div><div class='del'>-    /* Create the STREAM-END token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-    STREAM_END_TOKEN_INIT(token, parser-&gt;mark, parser-&gt;mark);</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_directive(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* Reset the indentation level. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_unroll_indent(parser, -1))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Reset simple keys. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_remove_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 0;</div><div class='del'>-</div><div class='del'>-    /* Create the YAML-DIRECTIVE or TAG-DIRECTIVE token. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_directive(parser, &amp;token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Append the token to the queue. */</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token)) {</div><div class='del'>-        yaml_token_delete(&amp;token);</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the DOCUMENT-START or DOCUMENT-END token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_document_indicator(yaml_parser_t *parser,</div><div class='del'>-        yaml_token_type_t type)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t start_mark, end_mark;</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* Reset the indentation level. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_unroll_indent(parser, -1))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Reset simple keys. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_remove_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 0;</div><div class='del'>-</div><div class='del'>-    /* Consume the token. */</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    SKIP(parser);</div><div class='del'>-    SKIP(parser);</div><div class='del'>-    SKIP(parser);</div><div class='del'>-</div><div class='del'>-    end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Create the DOCUMENT-START or DOCUMENT-END token. */</div><div class='del'>-</div><div class='del'>-    TOKEN_INIT(token, type, start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    /* Append the token to the queue. */</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_flow_collection_start(yaml_parser_t *parser,</div><div class='del'>-        yaml_token_type_t type)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t start_mark, end_mark;</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* The indicators '[' and '{' may start a simple key. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_save_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Increase the flow level. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_increase_flow_level(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* A simple key may follow the indicators '[' and '{'. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 1;</div><div class='del'>-</div><div class='del'>-    /* Consume the token. */</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-    SKIP(parser);</div><div class='del'>-    end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token. */</div><div class='del'>-</div><div class='del'>-    TOKEN_INIT(token, type, start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    /* Append the token to the queue. */</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_flow_collection_end(yaml_parser_t *parser,</div><div class='del'>-        yaml_token_type_t type)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t start_mark, end_mark;</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* Reset any potential simple key on the current flow level. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_remove_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Decrease the flow level. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_decrease_flow_level(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* No simple keys after the indicators ']' and '}'. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 0;</div><div class='del'>-</div><div class='del'>-    /* Consume the token. */</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-    SKIP(parser);</div><div class='del'>-    end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token. */</div><div class='del'>-</div><div class='del'>-    TOKEN_INIT(token, type, start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    /* Append the token to the queue. */</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the FLOW-ENTRY token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_flow_entry(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t start_mark, end_mark;</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* Reset any potential simple keys on the current flow level. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_remove_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Simple keys are allowed after ','. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 1;</div><div class='del'>-</div><div class='del'>-    /* Consume the token. */</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-    SKIP(parser);</div><div class='del'>-    end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Create the FLOW-ENTRY token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-    TOKEN_INIT(token, YAML_FLOW_ENTRY_TOKEN, start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the BLOCK-ENTRY token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_block_entry(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t start_mark, end_mark;</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* Check if the scanner is in the block context. */</div><div class='del'>-</div><div class='del'>-    if (!parser-&gt;flow_level)</div><div class='del'>-    {</div><div class='del'>-        /* Check if we are allowed to start a new entry. */</div><div class='del'>-</div><div class='del'>-        if (!parser-&gt;simple_key_allowed) {</div><div class='del'>-            return yaml_parser_set_scanner_error(parser, NULL, parser-&gt;mark,</div><div class='del'>-                    "block sequence entries are not allowed in this context");</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Add the BLOCK-SEQUENCE-START token if needed. */</div><div class='del'>-</div><div class='del'>-        if (!yaml_parser_roll_indent(parser, parser-&gt;mark.column, -1,</div><div class='del'>-                    YAML_BLOCK_SEQUENCE_START_TOKEN, parser-&gt;mark))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        /*</div><div class='del'>-         * It is an error for the '-' indicator to occur in the flow context,</div><div class='del'>-         * but we let the Parser detect and report about it because the Parser</div><div class='del'>-         * is able to point to the context.</div><div class='del'>-         */</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Reset any potential simple keys on the current flow level. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_remove_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Simple keys are allowed after '-'. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 1;</div><div class='del'>-</div><div class='del'>-    /* Consume the token. */</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-    SKIP(parser);</div><div class='del'>-    end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Create the BLOCK-ENTRY token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-    TOKEN_INIT(token, YAML_BLOCK_ENTRY_TOKEN, start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the KEY token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_key(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t start_mark, end_mark;</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* In the block context, additional checks are required. */</div><div class='del'>-</div><div class='del'>-    if (!parser-&gt;flow_level)</div><div class='del'>-    {</div><div class='del'>-        /* Check if we are allowed to start a new key (not necessary simple). */</div><div class='del'>-</div><div class='del'>-        if (!parser-&gt;simple_key_allowed) {</div><div class='del'>-            return yaml_parser_set_scanner_error(parser, NULL, parser-&gt;mark,</div><div class='del'>-                    "mapping keys are not allowed in this context");</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Add the BLOCK-MAPPING-START token if needed. */</div><div class='del'>-</div><div class='del'>-        if (!yaml_parser_roll_indent(parser, parser-&gt;mark.column, -1,</div><div class='del'>-                    YAML_BLOCK_MAPPING_START_TOKEN, parser-&gt;mark))</div><div class='del'>-            return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Reset any potential simple keys on the current flow level. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_remove_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Simple keys are allowed after '?' in the block context. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = (!parser-&gt;flow_level);</div><div class='del'>-</div><div class='del'>-    /* Consume the token. */</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-    SKIP(parser);</div><div class='del'>-    end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Create the KEY token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-    TOKEN_INIT(token, YAML_KEY_TOKEN, start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the VALUE token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_value(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t start_mark, end_mark;</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-    yaml_simple_key_t *simple_key = parser-&gt;simple_keys.top-1;</div><div class='del'>-</div><div class='del'>-    /* Have we found a simple key? */</div><div class='del'>-</div><div class='del'>-    if (simple_key-&gt;possible)</div><div class='del'>-    {</div><div class='del'>-</div><div class='del'>-        /* Create the KEY token and insert it into the queue. */</div><div class='del'>-</div><div class='del'>-        TOKEN_INIT(token, YAML_KEY_TOKEN, simple_key-&gt;mark, simple_key-&gt;mark);</div><div class='del'>-</div><div class='del'>-        if (!QUEUE_INSERT(parser, parser-&gt;tokens,</div><div class='del'>-                    simple_key-&gt;token_number - parser-&gt;tokens_parsed, token))</div><div class='del'>-            return 0;</div><div class='del'>-</div><div class='del'>-        /* In the block context, we may need to add the BLOCK-MAPPING-START token. */</div><div class='del'>-</div><div class='del'>-        if (!yaml_parser_roll_indent(parser, simple_key-&gt;mark.column,</div><div class='del'>-                    simple_key-&gt;token_number,</div><div class='del'>-                    YAML_BLOCK_MAPPING_START_TOKEN, simple_key-&gt;mark))</div><div class='del'>-            return 0;</div><div class='del'>-</div><div class='del'>-        /* Remove the simple key. */</div><div class='del'>-</div><div class='del'>-        simple_key-&gt;possible = 0;</div><div class='del'>-</div><div class='del'>-        /* A simple key cannot follow another simple key. */</div><div class='del'>-</div><div class='del'>-        parser-&gt;simple_key_allowed = 0;</div><div class='del'>-    }</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        /* The ':' indicator follows a complex key. */</div><div class='del'>-</div><div class='del'>-        /* In the block context, extra checks are required. */</div><div class='del'>-</div><div class='del'>-        if (!parser-&gt;flow_level)</div><div class='del'>-        {</div><div class='del'>-            /* Check if we are allowed to start a complex value. */</div><div class='del'>-</div><div class='del'>-            if (!parser-&gt;simple_key_allowed) {</div><div class='del'>-                return yaml_parser_set_scanner_error(parser, NULL, parser-&gt;mark,</div><div class='del'>-                        "mapping values are not allowed in this context");</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            /* Add the BLOCK-MAPPING-START token if needed. */</div><div class='del'>-</div><div class='del'>-            if (!yaml_parser_roll_indent(parser, parser-&gt;mark.column, -1,</div><div class='del'>-                        YAML_BLOCK_MAPPING_START_TOKEN, parser-&gt;mark))</div><div class='del'>-                return 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Simple keys after ':' are allowed in the block context. */</div><div class='del'>-</div><div class='del'>-        parser-&gt;simple_key_allowed = (!parser-&gt;flow_level);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Consume the token. */</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-    SKIP(parser);</div><div class='del'>-    end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Create the VALUE token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-    TOKEN_INIT(token, YAML_VALUE_TOKEN, start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the ALIAS or ANCHOR token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_anchor(yaml_parser_t *parser, yaml_token_type_t type)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* An anchor or an alias could be a simple key. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_save_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* A simple key cannot follow an anchor or an alias. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 0;</div><div class='del'>-</div><div class='del'>-    /* Create the ALIAS or ANCHOR token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_anchor(parser, &amp;token, type))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token)) {</div><div class='del'>-        yaml_token_delete(&amp;token);</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the TAG token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_tag(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* A tag could be a simple key. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_save_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* A simple key cannot follow a tag. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 0;</div><div class='del'>-</div><div class='del'>-    /* Create the TAG token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_tag(parser, &amp;token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token)) {</div><div class='del'>-        yaml_token_delete(&amp;token);</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_block_scalar(yaml_parser_t *parser, int literal)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* Remove any potential simple keys. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_remove_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* A simple key may follow a block scalar. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 1;</div><div class='del'>-</div><div class='del'>-    /* Create the SCALAR token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_block_scalar(parser, &amp;token, literal))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token)) {</div><div class='del'>-        yaml_token_delete(&amp;token);</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_flow_scalar(yaml_parser_t *parser, int single)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* A plain scalar could be a simple key. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_save_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* A simple key cannot follow a flow scalar. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 0;</div><div class='del'>-</div><div class='del'>-    /* Create the SCALAR token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_flow_scalar(parser, &amp;token, single))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token)) {</div><div class='del'>-        yaml_token_delete(&amp;token);</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Produce the SCALAR(...,plain) token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_fetch_plain_scalar(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    yaml_token_t token;</div><div class='del'>-</div><div class='del'>-    /* A plain scalar could be a simple key. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_save_simple_key(parser))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* A simple key cannot follow a flow scalar. */</div><div class='del'>-</div><div class='del'>-    parser-&gt;simple_key_allowed = 0;</div><div class='del'>-</div><div class='del'>-    /* Create the SCALAR token and append it to the queue. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_plain_scalar(parser, &amp;token))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    if (!ENQUEUE(parser, parser-&gt;tokens, token)) {</div><div class='del'>-        yaml_token_delete(&amp;token);</div><div class='del'>-        return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Eat whitespaces and comments until the next token is found.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_to_next_token(yaml_parser_t *parser)</div><div class='del'>-{</div><div class='del'>-    /* Until the next token is not found. */</div><div class='del'>-</div><div class='del'>-    while (1)</div><div class='del'>-    {</div><div class='del'>-        /* Allow the BOM mark to start a line. */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 1)) return 0;</div><div class='del'>-</div><div class='del'>-        if (parser-&gt;mark.column == 0 &amp;&amp; IS_BOM(parser-&gt;buffer))</div><div class='del'>-            SKIP(parser);</div><div class='del'>-</div><div class='del'>-        /*</div><div class='del'>-         * Eat whitespaces.</div><div class='del'>-         *</div><div class='del'>-         * Tabs are allowed:</div><div class='del'>-         *</div><div class='del'>-         *  - in the flow context;</div><div class='del'>-         *  - in the block context, but not at the beginning of the line or</div><div class='del'>-         *  after '-', '?', or ':' (complex value).</div><div class='del'>-         */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 1)) return 0;</div><div class='del'>-</div><div class='del'>-        while (CHECK(parser-&gt;buffer,' ') ||</div><div class='del'>-                ((parser-&gt;flow_level || !parser-&gt;simple_key_allowed) &amp;&amp;</div><div class='del'>-                 CHECK(parser-&gt;buffer, '\t'))) {</div><div class='del'>-            SKIP(parser);</div><div class='del'>-            if (!CACHE(parser, 1)) return 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Eat a comment until a line break. */</div><div class='del'>-</div><div class='del'>-        if (CHECK(parser-&gt;buffer, '#')) {</div><div class='del'>-            while (!IS_BREAKZ(parser-&gt;buffer)) {</div><div class='del'>-                SKIP(parser);</div><div class='del'>-                if (!CACHE(parser, 1)) return 0;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* If it is a line break, eat it. */</div><div class='del'>-</div><div class='del'>-        if (IS_BREAK(parser-&gt;buffer))</div><div class='del'>-        {</div><div class='del'>-            if (!CACHE(parser, 2)) return 0;</div><div class='del'>-            SKIP_LINE(parser);</div><div class='del'>-</div><div class='del'>-            /* In the block context, a new line may start a simple key. */</div><div class='del'>-</div><div class='del'>-            if (!parser-&gt;flow_level) {</div><div class='del'>-                parser-&gt;simple_key_allowed = 1;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            /* We have found a token. */</div><div class='del'>-</div><div class='del'>-            break;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token.</div><div class='del'>- *</div><div class='del'>- * Scope:</div><div class='del'>- *      %YAML    1.1    # a comment \n</div><div class='del'>- *      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</div><div class='del'>- *      %TAG    !yaml!  tag:yaml.org,2002:  \n</div><div class='del'>- *      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-yaml_parser_scan_directive(yaml_parser_t *parser, yaml_token_t *token)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t start_mark, end_mark;</div><div class='del'>-    yaml_char_t *name = NULL;</div><div class='del'>-    int major, minor;</div><div class='del'>-    yaml_char_t *handle = NULL, *prefix = NULL;</div><div class='del'>-</div><div class='del'>-    /* Eat '%'. */</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    SKIP(parser);</div><div class='del'>-</div><div class='del'>-    /* Scan the directive name. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_directive_name(parser, start_mark, &amp;name))</div><div class='del'>-        goto error;</div><div class='del'>-</div><div class='del'>-    /* Is it a YAML directive? */</div><div class='del'>-</div><div class='del'>-    if (strcmp((char *)name, "YAML") == 0)</div><div class='del'>-    {</div><div class='del'>-        /* Scan the VERSION directive value. */</div><div class='del'>-</div><div class='del'>-        if (!yaml_parser_scan_version_directive_value(parser, start_mark,</div><div class='del'>-                    &amp;major, &amp;minor))</div><div class='del'>-            goto error;</div><div class='del'>-</div><div class='del'>-        end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-        /* Create a VERSION-DIRECTIVE token. */</div><div class='del'>-</div><div class='del'>-        VERSION_DIRECTIVE_TOKEN_INIT(*token, major, minor,</div><div class='del'>-                start_mark, end_mark);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Is it a TAG directive? */</div><div class='del'>-</div><div class='del'>-    else if (strcmp((char *)name, "TAG") == 0)</div><div class='del'>-    {</div><div class='del'>-        /* Scan the TAG directive value. */</div><div class='del'>-</div><div class='del'>-        if (!yaml_parser_scan_tag_directive_value(parser, start_mark,</div><div class='del'>-                    &amp;handle, &amp;prefix))</div><div class='del'>-            goto error;</div><div class='del'>-</div><div class='del'>-        end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-        /* Create a TAG-DIRECTIVE token. */</div><div class='del'>-</div><div class='del'>-        TAG_DIRECTIVE_TOKEN_INIT(*token, handle, prefix,</div><div class='del'>-                start_mark, end_mark);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Unknown directive. */</div><div class='del'>-</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        yaml_parser_set_scanner_error(parser, "while scanning a directive",</div><div class='del'>-                start_mark, "found unknown directive name");</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Eat the rest of the line including any comments. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    while (IS_BLANK(parser-&gt;buffer)) {</div><div class='del'>-        SKIP(parser);</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '#')) {</div><div class='del'>-        while (!IS_BREAKZ(parser-&gt;buffer)) {</div><div class='del'>-            SKIP(parser);</div><div class='del'>-            if (!CACHE(parser, 1)) goto error;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Check if we are at the end of the line. */</div><div class='del'>-</div><div class='del'>-    if (!IS_BREAKZ(parser-&gt;buffer)) {</div><div class='del'>-        yaml_parser_set_scanner_error(parser, "while scanning a directive",</div><div class='del'>-                start_mark, "did not find expected comment or line break");</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Eat a line break. */</div><div class='del'>-</div><div class='del'>-    if (IS_BREAK(parser-&gt;buffer)) {</div><div class='del'>-        if (!CACHE(parser, 2)) goto error;</div><div class='del'>-        SKIP_LINE(parser);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    yaml_free(name);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(prefix);</div><div class='del'>-    yaml_free(handle);</div><div class='del'>-    yaml_free(name);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan the directive name.</div><div class='del'>- *</div><div class='del'>- * Scope:</div><div class='del'>- *      %YAML   1.1     # a comment \n</div><div class='del'>- *       ^^^^</div><div class='del'>- *      %TAG    !yaml!  tag:yaml.org,2002:  \n</div><div class='del'>- *       ^^^</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_directive_name(yaml_parser_t *parser,</div><div class='del'>-        yaml_mark_t start_mark, yaml_char_t **name)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t string = NULL_STRING;</div><div class='del'>-</div><div class='del'>-    if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-</div><div class='del'>-    /* Consume the directive name. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    while (IS_ALPHA(parser-&gt;buffer))</div><div class='del'>-    {</div><div class='del'>-        if (!READ(parser, string)) goto error;</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Check if the name is empty. */</div><div class='del'>-</div><div class='del'>-    if (string.start == string.pointer) {</div><div class='del'>-        yaml_parser_set_scanner_error(parser, "while scanning a directive",</div><div class='del'>-                start_mark, "could not find expected directive name");</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Check for an blank character after the name. */</div><div class='del'>-</div><div class='del'>-    if (!IS_BLANKZ(parser-&gt;buffer)) {</div><div class='del'>-        yaml_parser_set_scanner_error(parser, "while scanning a directive",</div><div class='del'>-                start_mark, "found unexpected non-alphabetical character");</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    *name = string.start;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    STRING_DEL(parser, string);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan the value of VERSION-DIRECTIVE.</div><div class='del'>- *</div><div class='del'>- * Scope:</div><div class='del'>- *      %YAML   1.1     # a comment \n</div><div class='del'>- *           ^^^^^^</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_version_directive_value(yaml_parser_t *parser,</div><div class='del'>-        yaml_mark_t start_mark, int *major, int *minor)</div><div class='del'>-{</div><div class='del'>-    /* Eat whitespaces. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) return 0;</div><div class='del'>-</div><div class='del'>-    while (IS_BLANK(parser-&gt;buffer)) {</div><div class='del'>-        SKIP(parser);</div><div class='del'>-        if (!CACHE(parser, 1)) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Consume the major version number. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_version_directive_number(parser, start_mark, major))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    /* Eat '.'. */</div><div class='del'>-</div><div class='del'>-    if (!CHECK(parser-&gt;buffer, '.')) {</div><div class='del'>-        return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive",</div><div class='del'>-                start_mark, "did not find expected digit or '.' character");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    SKIP(parser);</div><div class='del'>-</div><div class='del'>-    /* Consume the minor version number. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_version_directive_number(parser, start_mark, minor))</div><div class='del'>-        return 0;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define MAX_NUMBER_LENGTH   9</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan the version number of VERSION-DIRECTIVE.</div><div class='del'>- *</div><div class='del'>- * Scope:</div><div class='del'>- *      %YAML   1.1     # a comment \n</div><div class='del'>- *              ^</div><div class='del'>- *      %YAML   1.1     # a comment \n</div><div class='del'>- *                ^</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_version_directive_number(yaml_parser_t *parser,</div><div class='del'>-        yaml_mark_t start_mark, int *number)</div><div class='del'>-{</div><div class='del'>-    int value = 0;</div><div class='del'>-    size_t length = 0;</div><div class='del'>-</div><div class='del'>-    /* Repeat while the next character is digit. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) return 0;</div><div class='del'>-</div><div class='del'>-    while (IS_DIGIT(parser-&gt;buffer))</div><div class='del'>-    {</div><div class='del'>-        /* Check if the number is too long. */</div><div class='del'>-</div><div class='del'>-        if (++length &gt; MAX_NUMBER_LENGTH) {</div><div class='del'>-            return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive",</div><div class='del'>-                    start_mark, "found extremely long version number");</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        value = value*10 + AS_DIGIT(parser-&gt;buffer);</div><div class='del'>-</div><div class='del'>-        SKIP(parser);</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 1)) return 0;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Check if the number was present. */</div><div class='del'>-</div><div class='del'>-    if (!length) {</div><div class='del'>-        return yaml_parser_set_scanner_error(parser, "while scanning a %YAML directive",</div><div class='del'>-                start_mark, "did not find expected version number");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    *number = value;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan the value of a TAG-DIRECTIVE token.</div><div class='del'>- *</div><div class='del'>- * Scope:</div><div class='del'>- *      %TAG    !yaml!  tag:yaml.org,2002:  \n</div><div class='del'>- *          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_tag_directive_value(yaml_parser_t *parser,</div><div class='del'>-        yaml_mark_t start_mark, yaml_char_t **handle, yaml_char_t **prefix)</div><div class='del'>-{</div><div class='del'>-    yaml_char_t *handle_value = NULL;</div><div class='del'>-    yaml_char_t *prefix_value = NULL;</div><div class='del'>-</div><div class='del'>-    /* Eat whitespaces. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    while (IS_BLANK(parser-&gt;buffer)) {</div><div class='del'>-        SKIP(parser);</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Scan a handle. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_tag_handle(parser, 1, start_mark, &amp;handle_value))</div><div class='del'>-        goto error;</div><div class='del'>-</div><div class='del'>-    /* Expect a whitespace. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    if (!IS_BLANK(parser-&gt;buffer)) {</div><div class='del'>-        yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive",</div><div class='del'>-                start_mark, "did not find expected whitespace");</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Eat whitespaces. */</div><div class='del'>-</div><div class='del'>-    while (IS_BLANK(parser-&gt;buffer)) {</div><div class='del'>-        SKIP(parser);</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Scan a prefix. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_tag_uri(parser, 1, NULL, start_mark, &amp;prefix_value))</div><div class='del'>-        goto error;</div><div class='del'>-</div><div class='del'>-    /* Expect a whitespace or line break. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    if (!IS_BLANKZ(parser-&gt;buffer)) {</div><div class='del'>-        yaml_parser_set_scanner_error(parser, "while scanning a %TAG directive",</div><div class='del'>-                start_mark, "did not find expected whitespace or line break");</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    *handle = handle_value;</div><div class='del'>-    *prefix = prefix_value;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(handle_value);</div><div class='del'>-    yaml_free(prefix_value);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_anchor(yaml_parser_t *parser, yaml_token_t *token,</div><div class='del'>-        yaml_token_type_t type)</div><div class='del'>-{</div><div class='del'>-    int length = 0;</div><div class='del'>-    yaml_mark_t start_mark, end_mark;</div><div class='del'>-    yaml_string_t string = NULL_STRING;</div><div class='del'>-</div><div class='del'>-    if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-</div><div class='del'>-    /* Eat the indicator character. */</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    SKIP(parser);</div><div class='del'>-</div><div class='del'>-    /* Consume the value. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    while (IS_ALPHA(parser-&gt;buffer)) {</div><div class='del'>-        if (!READ(parser, string)) goto error;</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-        length ++;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * Check if length of the anchor is greater than 0 and it is followed by</div><div class='del'>-     * a whitespace character or one of the indicators:</div><div class='del'>-     *</div><div class='del'>-     *      '?', ':', ',', ']', '}', '%', '@', '`'.</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    if (!length || !(IS_BLANKZ(parser-&gt;buffer) || CHECK(parser-&gt;buffer, '?')</div><div class='del'>-                || CHECK(parser-&gt;buffer, ':') || CHECK(parser-&gt;buffer, ',')</div><div class='del'>-                || CHECK(parser-&gt;buffer, ']') || CHECK(parser-&gt;buffer, '}')</div><div class='del'>-                || CHECK(parser-&gt;buffer, '%') || CHECK(parser-&gt;buffer, '@')</div><div class='del'>-                || CHECK(parser-&gt;buffer, '`'))) {</div><div class='del'>-        yaml_parser_set_scanner_error(parser, type == YAML_ANCHOR_TOKEN ?</div><div class='del'>-                "while scanning an anchor" : "while scanning an alias", start_mark,</div><div class='del'>-                "did not find expected alphabetic or numeric character");</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Create a token. */</div><div class='del'>-</div><div class='del'>-    if (type == YAML_ANCHOR_TOKEN) {</div><div class='del'>-        ANCHOR_TOKEN_INIT(*token, string.start, start_mark, end_mark);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        ALIAS_TOKEN_INIT(*token, string.start, start_mark, end_mark);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    STRING_DEL(parser, string);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan a TAG token.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_tag(yaml_parser_t *parser, yaml_token_t *token)</div><div class='del'>-{</div><div class='del'>-    yaml_char_t *handle = NULL;</div><div class='del'>-    yaml_char_t *suffix = NULL;</div><div class='del'>-    yaml_mark_t start_mark, end_mark;</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Check if the tag is in the canonical form. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 2)) goto error;</div><div class='del'>-</div><div class='del'>-    if (CHECK_AT(parser-&gt;buffer, '&lt;', 1))</div><div class='del'>-    {</div><div class='del'>-        /* Set the handle to '' */</div><div class='del'>-</div><div class='del'>-        handle = YAML_MALLOC(1);</div><div class='del'>-        if (!handle) goto error;</div><div class='del'>-        handle[0] = '\0';</div><div class='del'>-</div><div class='del'>-        /* Eat '!&lt;' */</div><div class='del'>-</div><div class='del'>-        SKIP(parser);</div><div class='del'>-        SKIP(parser);</div><div class='del'>-</div><div class='del'>-        /* Consume the tag value. */</div><div class='del'>-</div><div class='del'>-        if (!yaml_parser_scan_tag_uri(parser, 0, NULL, start_mark, &amp;suffix))</div><div class='del'>-            goto error;</div><div class='del'>-</div><div class='del'>-        /* Check for '&gt;' and eat it. */</div><div class='del'>-</div><div class='del'>-        if (!CHECK(parser-&gt;buffer, '&gt;')) {</div><div class='del'>-            yaml_parser_set_scanner_error(parser, "while scanning a tag",</div><div class='del'>-                    start_mark, "did not find the expected '&gt;'");</div><div class='del'>-            goto error;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        SKIP(parser);</div><div class='del'>-    }</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        /* The tag has either the '!suffix' or the '!handle!suffix' form. */</div><div class='del'>-</div><div class='del'>-        /* First, try to scan a handle. */</div><div class='del'>-</div><div class='del'>-        if (!yaml_parser_scan_tag_handle(parser, 0, start_mark, &amp;handle))</div><div class='del'>-            goto error;</div><div class='del'>-</div><div class='del'>-        /* Check if it is, indeed, handle. */</div><div class='del'>-</div><div class='del'>-        if (handle[0] == '!' &amp;&amp; handle[1] != '\0' &amp;&amp; handle[strlen((char *)handle)-1] == '!')</div><div class='del'>-        {</div><div class='del'>-            /* Scan the suffix now. */</div><div class='del'>-</div><div class='del'>-            if (!yaml_parser_scan_tag_uri(parser, 0, NULL, start_mark, &amp;suffix))</div><div class='del'>-                goto error;</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            /* It wasn't a handle after all.  Scan the rest of the tag. */</div><div class='del'>-</div><div class='del'>-            if (!yaml_parser_scan_tag_uri(parser, 0, handle, start_mark, &amp;suffix))</div><div class='del'>-                goto error;</div><div class='del'>-</div><div class='del'>-            /* Set the handle to '!'. */</div><div class='del'>-</div><div class='del'>-            yaml_free(handle);</div><div class='del'>-            handle = YAML_MALLOC(2);</div><div class='del'>-            if (!handle) goto error;</div><div class='del'>-            handle[0] = '!';</div><div class='del'>-            handle[1] = '\0';</div><div class='del'>-</div><div class='del'>-            /*</div><div class='del'>-             * A special case: the '!' tag.  Set the handle to '' and the</div><div class='del'>-             * suffix to '!'.</div><div class='del'>-             */</div><div class='del'>-</div><div class='del'>-            if (suffix[0] == '\0') {</div><div class='del'>-                yaml_char_t *tmp = handle;</div><div class='del'>-                handle = suffix;</div><div class='del'>-                suffix = tmp;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Check the character which ends the tag. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    if (!IS_BLANKZ(parser-&gt;buffer)) {</div><div class='del'>-        yaml_parser_set_scanner_error(parser, "while scanning a tag",</div><div class='del'>-                start_mark, "did not find expected whitespace or line break");</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Create a token. */</div><div class='del'>-</div><div class='del'>-    TAG_TOKEN_INIT(*token, handle, suffix, start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    yaml_free(handle);</div><div class='del'>-    yaml_free(suffix);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan a tag handle.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_tag_handle(yaml_parser_t *parser, int directive,</div><div class='del'>-        yaml_mark_t start_mark, yaml_char_t **handle)</div><div class='del'>-{</div><div class='del'>-    yaml_string_t string = NULL_STRING;</div><div class='del'>-</div><div class='del'>-    if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-</div><div class='del'>-    /* Check the initial '!' character. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    if (!CHECK(parser-&gt;buffer, '!')) {</div><div class='del'>-        yaml_parser_set_scanner_error(parser, directive ?</div><div class='del'>-                "while scanning a tag directive" : "while scanning a tag",</div><div class='del'>-                start_mark, "did not find expected '!'");</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Copy the '!' character. */</div><div class='del'>-</div><div class='del'>-    if (!READ(parser, string)) goto error;</div><div class='del'>-</div><div class='del'>-    /* Copy all subsequent alphabetical and numerical characters. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    while (IS_ALPHA(parser-&gt;buffer))</div><div class='del'>-    {</div><div class='del'>-        if (!READ(parser, string)) goto error;</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Check if the trailing character is '!' and copy it. */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '!'))</div><div class='del'>-    {</div><div class='del'>-        if (!READ(parser, string)) goto error;</div><div class='del'>-    }</div><div class='del'>-    else</div><div class='del'>-    {</div><div class='del'>-        /*</div><div class='del'>-         * It's either the '!' tag or not really a tag handle.  If it's a %TAG</div><div class='del'>-         * directive, it's an error.  If it's a tag token, it must be a part of</div><div class='del'>-         * URI.</div><div class='del'>-         */</div><div class='del'>-</div><div class='del'>-        if (directive &amp;&amp; !(string.start[0] == '!' &amp;&amp; string.start[1] == '\0')) {</div><div class='del'>-            yaml_parser_set_scanner_error(parser, "while parsing a tag directive",</div><div class='del'>-                    start_mark, "did not find expected '!'");</div><div class='del'>-            goto error;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    *handle = string.start;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    STRING_DEL(parser, string);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan a tag.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_tag_uri(yaml_parser_t *parser, int directive,</div><div class='del'>-        yaml_char_t *head, yaml_mark_t start_mark, yaml_char_t **uri)</div><div class='del'>-{</div><div class='del'>-    size_t length = head ? strlen((char *)head) : 0;</div><div class='del'>-    yaml_string_t string = NULL_STRING;</div><div class='del'>-</div><div class='del'>-    if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-</div><div class='del'>-    /* Resize the string to include the head. */</div><div class='del'>-</div><div class='del'>-    while ((size_t)(string.end - string.start) &lt;= length) {</div><div class='del'>-        if (!yaml_string_extend(&amp;string.start, &amp;string.pointer, &amp;string.end)) {</div><div class='del'>-            parser-&gt;error = YAML_MEMORY_ERROR;</div><div class='del'>-            goto error;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * Copy the head if needed.</div><div class='del'>-     *</div><div class='del'>-     * Note that we don't copy the leading '!' character.</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    if (length &gt; 1) {</div><div class='del'>-        memcpy(string.start, head+1, length-1);</div><div class='del'>-        string.pointer += length-1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Scan the tag. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * The set of characters that may appear in URI is as follows:</div><div class='del'>-     *</div><div class='del'>-     *      '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&amp;',</div><div class='del'>-     *      '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']',</div><div class='del'>-     *      '%'.</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    while (IS_ALPHA(parser-&gt;buffer) || CHECK(parser-&gt;buffer, ';')</div><div class='del'>-            || CHECK(parser-&gt;buffer, '/') || CHECK(parser-&gt;buffer, '?')</div><div class='del'>-            || CHECK(parser-&gt;buffer, ':') || CHECK(parser-&gt;buffer, '@')</div><div class='del'>-            || CHECK(parser-&gt;buffer, '&amp;') || CHECK(parser-&gt;buffer, '=')</div><div class='del'>-            || CHECK(parser-&gt;buffer, '+') || CHECK(parser-&gt;buffer, '$')</div><div class='del'>-            || CHECK(parser-&gt;buffer, ',') || CHECK(parser-&gt;buffer, '.')</div><div class='del'>-            || CHECK(parser-&gt;buffer, '!') || CHECK(parser-&gt;buffer, '~')</div><div class='del'>-            || CHECK(parser-&gt;buffer, '*') || CHECK(parser-&gt;buffer, '\'')</div><div class='del'>-            || CHECK(parser-&gt;buffer, '(') || CHECK(parser-&gt;buffer, ')')</div><div class='del'>-            || CHECK(parser-&gt;buffer, '[') || CHECK(parser-&gt;buffer, ']')</div><div class='del'>-            || CHECK(parser-&gt;buffer, '%'))</div><div class='del'>-    {</div><div class='del'>-        /* Check if it is a URI-escape sequence. */</div><div class='del'>-</div><div class='del'>-        if (CHECK(parser-&gt;buffer, '%')) {</div><div class='del'>-            if (!STRING_EXTEND(parser, string))</div><div class='del'>-                goto error;</div><div class='del'>-</div><div class='del'>-            if (!yaml_parser_scan_uri_escapes(parser,</div><div class='del'>-                        directive, start_mark, &amp;string)) goto error;</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            if (!READ(parser, string)) goto error;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        length ++;</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Check if the tag is non-empty. */</div><div class='del'>-</div><div class='del'>-    if (!length) {</div><div class='del'>-        if (!STRING_EXTEND(parser, string))</div><div class='del'>-            goto error;</div><div class='del'>-</div><div class='del'>-        yaml_parser_set_scanner_error(parser, directive ?</div><div class='del'>-                "while parsing a %TAG directive" : "while parsing a tag",</div><div class='del'>-                start_mark, "did not find expected tag URI");</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    *uri = string.start;</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    STRING_DEL(parser, string);</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Decode an URI-escape sequence corresponding to a single UTF-8 character.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_uri_escapes(yaml_parser_t *parser, int directive,</div><div class='del'>-        yaml_mark_t start_mark, yaml_string_t *string)</div><div class='del'>-{</div><div class='del'>-    int width = 0;</div><div class='del'>-</div><div class='del'>-    /* Decode the required number of characters. */</div><div class='del'>-</div><div class='del'>-    do {</div><div class='del'>-</div><div class='del'>-        unsigned char octet = 0;</div><div class='del'>-</div><div class='del'>-        /* Check for a URI-escaped octet. */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 3)) return 0;</div><div class='del'>-</div><div class='del'>-        if (!(CHECK(parser-&gt;buffer, '%')</div><div class='del'>-                    &amp;&amp; IS_HEX_AT(parser-&gt;buffer, 1)</div><div class='del'>-                    &amp;&amp; IS_HEX_AT(parser-&gt;buffer, 2))) {</div><div class='del'>-            return yaml_parser_set_scanner_error(parser, directive ?</div><div class='del'>-                    "while parsing a %TAG directive" : "while parsing a tag",</div><div class='del'>-                    start_mark, "did not find URI escaped octet");</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Get the octet. */</div><div class='del'>-</div><div class='del'>-        octet = (AS_HEX_AT(parser-&gt;buffer, 1) &lt;&lt; 4) + AS_HEX_AT(parser-&gt;buffer, 2);</div><div class='del'>-</div><div class='del'>-        /* If it is the leading octet, determine the length of the UTF-8 sequence. */</div><div class='del'>-</div><div class='del'>-        if (!width)</div><div class='del'>-        {</div><div class='del'>-            width = (octet &amp; 0x80) == 0x00 ? 1 :</div><div class='del'>-                    (octet &amp; 0xE0) == 0xC0 ? 2 :</div><div class='del'>-                    (octet &amp; 0xF0) == 0xE0 ? 3 :</div><div class='del'>-                    (octet &amp; 0xF8) == 0xF0 ? 4 : 0;</div><div class='del'>-            if (!width) {</div><div class='del'>-                return yaml_parser_set_scanner_error(parser, directive ?</div><div class='del'>-                        "while parsing a %TAG directive" : "while parsing a tag",</div><div class='del'>-                        start_mark, "found an incorrect leading UTF-8 octet");</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            /* Check if the trailing octet is correct. */</div><div class='del'>-</div><div class='del'>-            if ((octet &amp; 0xC0) != 0x80) {</div><div class='del'>-                return yaml_parser_set_scanner_error(parser, directive ?</div><div class='del'>-                        "while parsing a %TAG directive" : "while parsing a tag",</div><div class='del'>-                        start_mark, "found an incorrect trailing UTF-8 octet");</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Copy the octet and move the pointers. */</div><div class='del'>-</div><div class='del'>-        *(string-&gt;pointer++) = octet;</div><div class='del'>-        SKIP(parser);</div><div class='del'>-        SKIP(parser);</div><div class='del'>-        SKIP(parser);</div><div class='del'>-</div><div class='del'>-    } while (--width);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan a block scalar.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_block_scalar(yaml_parser_t *parser, yaml_token_t *token,</div><div class='del'>-        int literal)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t start_mark;</div><div class='del'>-    yaml_mark_t end_mark;</div><div class='del'>-    yaml_string_t string = NULL_STRING;</div><div class='del'>-    yaml_string_t leading_break = NULL_STRING;</div><div class='del'>-    yaml_string_t trailing_breaks = NULL_STRING;</div><div class='del'>-    int chomping = 0;</div><div class='del'>-    int increment = 0;</div><div class='del'>-    int indent = 0;</div><div class='del'>-    int leading_blank = 0;</div><div class='del'>-    int trailing_blank = 0;</div><div class='del'>-</div><div class='del'>-    if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-    if (!STRING_INIT(parser, leading_break, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-    if (!STRING_INIT(parser, trailing_breaks, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-</div><div class='del'>-    /* Eat the indicator '|' or '&gt;'. */</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    SKIP(parser);</div><div class='del'>-</div><div class='del'>-    /* Scan the additional block scalar indicators. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    /* Check for a chomping indicator. */</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '+') || CHECK(parser-&gt;buffer, '-'))</div><div class='del'>-    {</div><div class='del'>-        /* Set the chomping method and eat the indicator. */</div><div class='del'>-</div><div class='del'>-        chomping = CHECK(parser-&gt;buffer, '+') ? +1 : -1;</div><div class='del'>-</div><div class='del'>-        SKIP(parser);</div><div class='del'>-</div><div class='del'>-        /* Check for an indentation indicator. */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-        if (IS_DIGIT(parser-&gt;buffer))</div><div class='del'>-        {</div><div class='del'>-            /* Check that the indentation is greater than 0. */</div><div class='del'>-</div><div class='del'>-            if (CHECK(parser-&gt;buffer, '0')) {</div><div class='del'>-                yaml_parser_set_scanner_error(parser, "while scanning a block scalar",</div><div class='del'>-                        start_mark, "found an indentation indicator equal to 0");</div><div class='del'>-                goto error;</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            /* Get the indentation level and eat the indicator. */</div><div class='del'>-</div><div class='del'>-            increment = AS_DIGIT(parser-&gt;buffer);</div><div class='del'>-</div><div class='del'>-            SKIP(parser);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Do the same as above, but in the opposite order. */</div><div class='del'>-</div><div class='del'>-    else if (IS_DIGIT(parser-&gt;buffer))</div><div class='del'>-    {</div><div class='del'>-        if (CHECK(parser-&gt;buffer, '0')) {</div><div class='del'>-            yaml_parser_set_scanner_error(parser, "while scanning a block scalar",</div><div class='del'>-                    start_mark, "found an indentation indicator equal to 0");</div><div class='del'>-            goto error;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        increment = AS_DIGIT(parser-&gt;buffer);</div><div class='del'>-</div><div class='del'>-        SKIP(parser);</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-        if (CHECK(parser-&gt;buffer, '+') || CHECK(parser-&gt;buffer, '-')) {</div><div class='del'>-            chomping = CHECK(parser-&gt;buffer, '+') ? +1 : -1;</div><div class='del'>-</div><div class='del'>-            SKIP(parser);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Eat whitespaces and comments to the end of the line. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    while (IS_BLANK(parser-&gt;buffer)) {</div><div class='del'>-        SKIP(parser);</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (CHECK(parser-&gt;buffer, '#')) {</div><div class='del'>-        while (!IS_BREAKZ(parser-&gt;buffer)) {</div><div class='del'>-            SKIP(parser);</div><div class='del'>-            if (!CACHE(parser, 1)) goto error;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Check if we are at the end of the line. */</div><div class='del'>-</div><div class='del'>-    if (!IS_BREAKZ(parser-&gt;buffer)) {</div><div class='del'>-        yaml_parser_set_scanner_error(parser, "while scanning a block scalar",</div><div class='del'>-                start_mark, "did not find expected comment or line break");</div><div class='del'>-        goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Eat a line break. */</div><div class='del'>-</div><div class='del'>-    if (IS_BREAK(parser-&gt;buffer)) {</div><div class='del'>-        if (!CACHE(parser, 2)) goto error;</div><div class='del'>-        SKIP_LINE(parser);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Set the indentation level if it was specified. */</div><div class='del'>-</div><div class='del'>-    if (increment) {</div><div class='del'>-        indent = parser-&gt;indent &gt;= 0 ? parser-&gt;indent+increment : increment;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Scan the leading line breaks and determine the indentation level if needed. */</div><div class='del'>-</div><div class='del'>-    if (!yaml_parser_scan_block_scalar_breaks(parser, &amp;indent, &amp;trailing_breaks,</div><div class='del'>-                start_mark, &amp;end_mark)) goto error;</div><div class='del'>-</div><div class='del'>-    /* Scan the block scalar content. */</div><div class='del'>-</div><div class='del'>-    if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-    while ((int)parser-&gt;mark.column == indent &amp;&amp; !IS_Z(parser-&gt;buffer))</div><div class='del'>-    {</div><div class='del'>-        /*</div><div class='del'>-         * We are at the beginning of a non-empty line.</div><div class='del'>-         */</div><div class='del'>-</div><div class='del'>-        /* Is it a trailing whitespace? */</div><div class='del'>-</div><div class='del'>-        trailing_blank = IS_BLANK(parser-&gt;buffer);</div><div class='del'>-</div><div class='del'>-        /* Check if we need to fold the leading line break. */</div><div class='del'>-</div><div class='del'>-        if (!literal &amp;&amp; (*leading_break.start == '\n')</div><div class='del'>-                &amp;&amp; !leading_blank &amp;&amp; !trailing_blank)</div><div class='del'>-        {</div><div class='del'>-            /* Do we need to join the lines by space? */</div><div class='del'>-</div><div class='del'>-            if (*trailing_breaks.start == '\0') {</div><div class='del'>-                if (!STRING_EXTEND(parser, string)) goto error;</div><div class='del'>-                *(string.pointer ++) = ' ';</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            CLEAR(parser, leading_break);</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            if (!JOIN(parser, string, leading_break)) goto error;</div><div class='del'>-            CLEAR(parser, leading_break);</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Append the remaining line breaks. */</div><div class='del'>-</div><div class='del'>-        if (!JOIN(parser, string, trailing_breaks)) goto error;</div><div class='del'>-        CLEAR(parser, trailing_breaks);</div><div class='del'>-</div><div class='del'>-        /* Is it a leading whitespace? */</div><div class='del'>-</div><div class='del'>-        leading_blank = IS_BLANK(parser-&gt;buffer);</div><div class='del'>-</div><div class='del'>-        /* Consume the current line. */</div><div class='del'>-</div><div class='del'>-        while (!IS_BREAKZ(parser-&gt;buffer)) {</div><div class='del'>-            if (!READ(parser, string)) goto error;</div><div class='del'>-            if (!CACHE(parser, 1)) goto error;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Consume the line break. */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 2)) goto error;</div><div class='del'>-</div><div class='del'>-        if (!READ_LINE(parser, leading_break)) goto error;</div><div class='del'>-</div><div class='del'>-        /* Eat the following indentation spaces and line breaks. */</div><div class='del'>-</div><div class='del'>-        if (!yaml_parser_scan_block_scalar_breaks(parser,</div><div class='del'>-                    &amp;indent, &amp;trailing_breaks, start_mark, &amp;end_mark)) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Chomp the tail. */</div><div class='del'>-</div><div class='del'>-    if (chomping != -1) {</div><div class='del'>-        if (!JOIN(parser, string, leading_break)) goto error;</div><div class='del'>-    }</div><div class='del'>-    if (chomping == 1) {</div><div class='del'>-        if (!JOIN(parser, string, trailing_breaks)) goto error;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Create a token. */</div><div class='del'>-</div><div class='del'>-    SCALAR_TOKEN_INIT(*token, string.start, string.pointer-string.start,</div><div class='del'>-            literal ? YAML_LITERAL_SCALAR_STYLE : YAML_FOLDED_SCALAR_STYLE,</div><div class='del'>-            start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    STRING_DEL(parser, leading_break);</div><div class='del'>-    STRING_DEL(parser, trailing_breaks);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    STRING_DEL(parser, string);</div><div class='del'>-    STRING_DEL(parser, leading_break);</div><div class='del'>-    STRING_DEL(parser, trailing_breaks);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan indentation spaces and line breaks for a block scalar.  Determine the</div><div class='del'>- * indentation level if needed.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_block_scalar_breaks(yaml_parser_t *parser,</div><div class='del'>-        int *indent, yaml_string_t *breaks,</div><div class='del'>-        yaml_mark_t start_mark, yaml_mark_t *end_mark)</div><div class='del'>-{</div><div class='del'>-    int max_indent = 0;</div><div class='del'>-</div><div class='del'>-    *end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Eat the indentation spaces and line breaks. */</div><div class='del'>-</div><div class='del'>-    while (1)</div><div class='del'>-    {</div><div class='del'>-        /* Eat the indentation spaces. */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 1)) return 0;</div><div class='del'>-</div><div class='del'>-        while ((!*indent || (int)parser-&gt;mark.column &lt; *indent)</div><div class='del'>-                &amp;&amp; IS_SPACE(parser-&gt;buffer)) {</div><div class='del'>-            SKIP(parser);</div><div class='del'>-            if (!CACHE(parser, 1)) return 0;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        if ((int)parser-&gt;mark.column &gt; max_indent)</div><div class='del'>-            max_indent = (int)parser-&gt;mark.column;</div><div class='del'>-</div><div class='del'>-        /* Check for a tab character messing the indentation. */</div><div class='del'>-</div><div class='del'>-        if ((!*indent || (int)parser-&gt;mark.column &lt; *indent)</div><div class='del'>-                &amp;&amp; IS_TAB(parser-&gt;buffer)) {</div><div class='del'>-            return yaml_parser_set_scanner_error(parser, "while scanning a block scalar",</div><div class='del'>-                    start_mark, "found a tab character where an indentation space is expected");</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Have we found a non-empty line? */</div><div class='del'>-</div><div class='del'>-        if (!IS_BREAK(parser-&gt;buffer)) break;</div><div class='del'>-</div><div class='del'>-        /* Consume the line break. */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 2)) return 0;</div><div class='del'>-        if (!READ_LINE(parser, *breaks)) return 0;</div><div class='del'>-        *end_mark = parser-&gt;mark;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Determine the indentation level if needed. */</div><div class='del'>-</div><div class='del'>-    if (!*indent) {</div><div class='del'>-        *indent = max_indent;</div><div class='del'>-        if (*indent &lt; parser-&gt;indent + 1)</div><div class='del'>-            *indent = parser-&gt;indent + 1;</div><div class='del'>-        if (*indent &lt; 1)</div><div class='del'>-            *indent = 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-   return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan a quoted scalar.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_flow_scalar(yaml_parser_t *parser, yaml_token_t *token,</div><div class='del'>-        int single)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t start_mark;</div><div class='del'>-    yaml_mark_t end_mark;</div><div class='del'>-    yaml_string_t string = NULL_STRING;</div><div class='del'>-    yaml_string_t leading_break = NULL_STRING;</div><div class='del'>-    yaml_string_t trailing_breaks = NULL_STRING;</div><div class='del'>-    yaml_string_t whitespaces = NULL_STRING;</div><div class='del'>-    int leading_blanks;</div><div class='del'>-</div><div class='del'>-    if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-    if (!STRING_INIT(parser, leading_break, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-    if (!STRING_INIT(parser, trailing_breaks, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-    if (!STRING_INIT(parser, whitespaces, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-</div><div class='del'>-    /* Eat the left quote. */</div><div class='del'>-</div><div class='del'>-    start_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    SKIP(parser);</div><div class='del'>-</div><div class='del'>-    /* Consume the content of the quoted scalar. */</div><div class='del'>-</div><div class='del'>-    while (1)</div><div class='del'>-    {</div><div class='del'>-        /* Check that there are no document indicators at the beginning of the line. */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 4)) goto error;</div><div class='del'>-</div><div class='del'>-        if (parser-&gt;mark.column == 0 &amp;&amp;</div><div class='del'>-            ((CHECK_AT(parser-&gt;buffer, '-', 0) &amp;&amp;</div><div class='del'>-              CHECK_AT(parser-&gt;buffer, '-', 1) &amp;&amp;</div><div class='del'>-              CHECK_AT(parser-&gt;buffer, '-', 2)) ||</div><div class='del'>-             (CHECK_AT(parser-&gt;buffer, '.', 0) &amp;&amp;</div><div class='del'>-              CHECK_AT(parser-&gt;buffer, '.', 1) &amp;&amp;</div><div class='del'>-              CHECK_AT(parser-&gt;buffer, '.', 2))) &amp;&amp;</div><div class='del'>-            IS_BLANKZ_AT(parser-&gt;buffer, 3))</div><div class='del'>-        {</div><div class='del'>-            yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar",</div><div class='del'>-                    start_mark, "found unexpected document indicator");</div><div class='del'>-            goto error;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Check for EOF. */</div><div class='del'>-</div><div class='del'>-        if (IS_Z(parser-&gt;buffer)) {</div><div class='del'>-            yaml_parser_set_scanner_error(parser, "while scanning a quoted scalar",</div><div class='del'>-                    start_mark, "found unexpected end of stream");</div><div class='del'>-            goto error;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Consume non-blank characters. */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 2)) goto error;</div><div class='del'>-</div><div class='del'>-        leading_blanks = 0;</div><div class='del'>-</div><div class='del'>-        while (!IS_BLANKZ(parser-&gt;buffer))</div><div class='del'>-        {</div><div class='del'>-            /* Check for an escaped single quote. */</div><div class='del'>-</div><div class='del'>-            if (single &amp;&amp; CHECK_AT(parser-&gt;buffer, '\'', 0)</div><div class='del'>-                    &amp;&amp; CHECK_AT(parser-&gt;buffer, '\'', 1))</div><div class='del'>-            {</div><div class='del'>-                if (!STRING_EXTEND(parser, string)) goto error;</div><div class='del'>-                *(string.pointer++) = '\'';</div><div class='del'>-                SKIP(parser);</div><div class='del'>-                SKIP(parser);</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            /* Check for the right quote. */</div><div class='del'>-</div><div class='del'>-            else if (CHECK(parser-&gt;buffer, single ? '\'' : '"'))</div><div class='del'>-            {</div><div class='del'>-                break;</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            /* Check for an escaped line break. */</div><div class='del'>-</div><div class='del'>-            else if (!single &amp;&amp; CHECK(parser-&gt;buffer, '\\')</div><div class='del'>-                    &amp;&amp; IS_BREAK_AT(parser-&gt;buffer, 1))</div><div class='del'>-            {</div><div class='del'>-                if (!CACHE(parser, 3)) goto error;</div><div class='del'>-                SKIP(parser);</div><div class='del'>-                SKIP_LINE(parser);</div><div class='del'>-                leading_blanks = 1;</div><div class='del'>-                break;</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            /* Check for an escape sequence. */</div><div class='del'>-</div><div class='del'>-            else if (!single &amp;&amp; CHECK(parser-&gt;buffer, '\\'))</div><div class='del'>-            {</div><div class='del'>-                size_t code_length = 0;</div><div class='del'>-</div><div class='del'>-                if (!STRING_EXTEND(parser, string)) goto error;</div><div class='del'>-</div><div class='del'>-                /* Check the escape character. */</div><div class='del'>-</div><div class='del'>-                switch (parser-&gt;buffer.pointer[1])</div><div class='del'>-                {</div><div class='del'>-                    case '0':</div><div class='del'>-                        *(string.pointer++) = '\0';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'a':</div><div class='del'>-                        *(string.pointer++) = '\x07';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'b':</div><div class='del'>-                        *(string.pointer++) = '\x08';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 't':</div><div class='del'>-                    case '\t':</div><div class='del'>-                        *(string.pointer++) = '\x09';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'n':</div><div class='del'>-                        *(string.pointer++) = '\x0A';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'v':</div><div class='del'>-                        *(string.pointer++) = '\x0B';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'f':</div><div class='del'>-                        *(string.pointer++) = '\x0C';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'r':</div><div class='del'>-                        *(string.pointer++) = '\x0D';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'e':</div><div class='del'>-                        *(string.pointer++) = '\x1B';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case ' ':</div><div class='del'>-                        *(string.pointer++) = '\x20';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case '"':</div><div class='del'>-                        *(string.pointer++) = '"';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case '/':</div><div class='del'>-                        *(string.pointer++) = '/';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case '\\':</div><div class='del'>-                        *(string.pointer++) = '\\';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'N':   /* NEL (#x85) */</div><div class='del'>-                        *(string.pointer++) = '\xC2';</div><div class='del'>-                        *(string.pointer++) = '\x85';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case '_':   /* #xA0 */</div><div class='del'>-                        *(string.pointer++) = '\xC2';</div><div class='del'>-                        *(string.pointer++) = '\xA0';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'L':   /* LS (#x2028) */</div><div class='del'>-                        *(string.pointer++) = '\xE2';</div><div class='del'>-                        *(string.pointer++) = '\x80';</div><div class='del'>-                        *(string.pointer++) = '\xA8';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'P':   /* PS (#x2029) */</div><div class='del'>-                        *(string.pointer++) = '\xE2';</div><div class='del'>-                        *(string.pointer++) = '\x80';</div><div class='del'>-                        *(string.pointer++) = '\xA9';</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'x':</div><div class='del'>-                        code_length = 2;</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'u':</div><div class='del'>-                        code_length = 4;</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    case 'U':</div><div class='del'>-                        code_length = 8;</div><div class='del'>-                        break;</div><div class='del'>-</div><div class='del'>-                    default:</div><div class='del'>-                        yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar",</div><div class='del'>-                                start_mark, "found unknown escape character");</div><div class='del'>-                        goto error;</div><div class='del'>-                }</div><div class='del'>-</div><div class='del'>-                SKIP(parser);</div><div class='del'>-                SKIP(parser);</div><div class='del'>-</div><div class='del'>-                /* Consume an arbitrary escape code. */</div><div class='del'>-</div><div class='del'>-                if (code_length)</div><div class='del'>-                {</div><div class='del'>-                    unsigned int value = 0;</div><div class='del'>-                    size_t k;</div><div class='del'>-</div><div class='del'>-                    /* Scan the character value. */</div><div class='del'>-</div><div class='del'>-                    if (!CACHE(parser, code_length)) goto error;</div><div class='del'>-</div><div class='del'>-                    for (k = 0; k &lt; code_length; k ++) {</div><div class='del'>-                        if (!IS_HEX_AT(parser-&gt;buffer, k)) {</div><div class='del'>-                            yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar",</div><div class='del'>-                                    start_mark, "did not find expected hexdecimal number");</div><div class='del'>-                            goto error;</div><div class='del'>-                        }</div><div class='del'>-                        value = (value &lt;&lt; 4) + AS_HEX_AT(parser-&gt;buffer, k);</div><div class='del'>-                    }</div><div class='del'>-</div><div class='del'>-                    /* Check the value and write the character. */</div><div class='del'>-</div><div class='del'>-                    if ((value &gt;= 0xD800 &amp;&amp; value &lt;= 0xDFFF) || value &gt; 0x10FFFF) {</div><div class='del'>-                        yaml_parser_set_scanner_error(parser, "while parsing a quoted scalar",</div><div class='del'>-                                start_mark, "found invalid Unicode character escape code");</div><div class='del'>-                        goto error;</div><div class='del'>-                    }</div><div class='del'>-</div><div class='del'>-                    if (value &lt;= 0x7F) {</div><div class='del'>-                        *(string.pointer++) = value;</div><div class='del'>-                    }</div><div class='del'>-                    else if (value &lt;= 0x7FF) {</div><div class='del'>-                        *(string.pointer++) = 0xC0 + (value &gt;&gt; 6);</div><div class='del'>-                        *(string.pointer++) = 0x80 + (value &amp; 0x3F);</div><div class='del'>-                    }</div><div class='del'>-                    else if (value &lt;= 0xFFFF) {</div><div class='del'>-                        *(string.pointer++) = 0xE0 + (value &gt;&gt; 12);</div><div class='del'>-                        *(string.pointer++) = 0x80 + ((value &gt;&gt; 6) &amp; 0x3F);</div><div class='del'>-                        *(string.pointer++) = 0x80 + (value &amp; 0x3F);</div><div class='del'>-                    }</div><div class='del'>-                    else {</div><div class='del'>-                        *(string.pointer++) = 0xF0 + (value &gt;&gt; 18);</div><div class='del'>-                        *(string.pointer++) = 0x80 + ((value &gt;&gt; 12) &amp; 0x3F);</div><div class='del'>-                        *(string.pointer++) = 0x80 + ((value &gt;&gt; 6) &amp; 0x3F);</div><div class='del'>-                        *(string.pointer++) = 0x80 + (value &amp; 0x3F);</div><div class='del'>-                    }</div><div class='del'>-</div><div class='del'>-                    /* Advance the pointer. */</div><div class='del'>-</div><div class='del'>-                    for (k = 0; k &lt; code_length; k ++) {</div><div class='del'>-                        SKIP(parser);</div><div class='del'>-                    }</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            else</div><div class='del'>-            {</div><div class='del'>-                /* It is a non-escaped non-blank character. */</div><div class='del'>-</div><div class='del'>-                if (!READ(parser, string)) goto error;</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            if (!CACHE(parser, 2)) goto error;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Check if we are at the end of the scalar. */</div><div class='del'>-</div><div class='del'>-        /* Fix for crash unitialized value crash</div><div class='del'>-         * Credit for the bug and input is to OSS Fuzz</div><div class='del'>-         * Credit for the fix to Alex Gaynor</div><div class='del'>-         */</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-        if (CHECK(parser-&gt;buffer, single ? '\'' : '"'))</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        /* Consume blank characters. */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-        while (IS_BLANK(parser-&gt;buffer) || IS_BREAK(parser-&gt;buffer))</div><div class='del'>-        {</div><div class='del'>-            if (IS_BLANK(parser-&gt;buffer))</div><div class='del'>-            {</div><div class='del'>-                /* Consume a space or a tab character. */</div><div class='del'>-</div><div class='del'>-                if (!leading_blanks) {</div><div class='del'>-                    if (!READ(parser, whitespaces)) goto error;</div><div class='del'>-                }</div><div class='del'>-                else {</div><div class='del'>-                    SKIP(parser);</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-            else</div><div class='del'>-            {</div><div class='del'>-                if (!CACHE(parser, 2)) goto error;</div><div class='del'>-</div><div class='del'>-                /* Check if it is a first line break. */</div><div class='del'>-</div><div class='del'>-                if (!leading_blanks)</div><div class='del'>-                {</div><div class='del'>-                    CLEAR(parser, whitespaces);</div><div class='del'>-                    if (!READ_LINE(parser, leading_break)) goto error;</div><div class='del'>-                    leading_blanks = 1;</div><div class='del'>-                }</div><div class='del'>-                else</div><div class='del'>-                {</div><div class='del'>-                    if (!READ_LINE(parser, trailing_breaks)) goto error;</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-            if (!CACHE(parser, 1)) goto error;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Join the whitespaces or fold line breaks. */</div><div class='del'>-</div><div class='del'>-        if (leading_blanks)</div><div class='del'>-        {</div><div class='del'>-            /* Do we need to fold line breaks? */</div><div class='del'>-</div><div class='del'>-            if (leading_break.start[0] == '\n') {</div><div class='del'>-                if (trailing_breaks.start[0] == '\0') {</div><div class='del'>-                    if (!STRING_EXTEND(parser, string)) goto error;</div><div class='del'>-                    *(string.pointer++) = ' ';</div><div class='del'>-                }</div><div class='del'>-                else {</div><div class='del'>-                    if (!JOIN(parser, string, trailing_breaks)) goto error;</div><div class='del'>-                    CLEAR(parser, trailing_breaks);</div><div class='del'>-                }</div><div class='del'>-                CLEAR(parser, leading_break);</div><div class='del'>-            }</div><div class='del'>-            else {</div><div class='del'>-                if (!JOIN(parser, string, leading_break)) goto error;</div><div class='del'>-                if (!JOIN(parser, string, trailing_breaks)) goto error;</div><div class='del'>-                CLEAR(parser, leading_break);</div><div class='del'>-                CLEAR(parser, trailing_breaks);</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            if (!JOIN(parser, string, whitespaces)) goto error;</div><div class='del'>-            CLEAR(parser, whitespaces);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Eat the right quote. */</div><div class='del'>-</div><div class='del'>-    SKIP(parser);</div><div class='del'>-</div><div class='del'>-    end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Create a token. */</div><div class='del'>-</div><div class='del'>-    SCALAR_TOKEN_INIT(*token, string.start, string.pointer-string.start,</div><div class='del'>-            single ? YAML_SINGLE_QUOTED_SCALAR_STYLE : YAML_DOUBLE_QUOTED_SCALAR_STYLE,</div><div class='del'>-            start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    STRING_DEL(parser, leading_break);</div><div class='del'>-    STRING_DEL(parser, trailing_breaks);</div><div class='del'>-    STRING_DEL(parser, whitespaces);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    STRING_DEL(parser, string);</div><div class='del'>-    STRING_DEL(parser, leading_break);</div><div class='del'>-    STRING_DEL(parser, trailing_breaks);</div><div class='del'>-    STRING_DEL(parser, whitespaces);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scan a plain scalar.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_parser_scan_plain_scalar(yaml_parser_t *parser, yaml_token_t *token)</div><div class='del'>-{</div><div class='del'>-    yaml_mark_t start_mark;</div><div class='del'>-    yaml_mark_t end_mark;</div><div class='del'>-    yaml_string_t string = NULL_STRING;</div><div class='del'>-    yaml_string_t leading_break = NULL_STRING;</div><div class='del'>-    yaml_string_t trailing_breaks = NULL_STRING;</div><div class='del'>-    yaml_string_t whitespaces = NULL_STRING;</div><div class='del'>-    int leading_blanks = 0;</div><div class='del'>-    int indent = parser-&gt;indent+1;</div><div class='del'>-</div><div class='del'>-    if (!STRING_INIT(parser, string, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-    if (!STRING_INIT(parser, leading_break, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-    if (!STRING_INIT(parser, trailing_breaks, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-    if (!STRING_INIT(parser, whitespaces, INITIAL_STRING_SIZE)) goto error;</div><div class='del'>-</div><div class='del'>-    start_mark = end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-    /* Consume the content of the plain scalar. */</div><div class='del'>-</div><div class='del'>-    while (1)</div><div class='del'>-    {</div><div class='del'>-        /* Check for a document indicator. */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 4)) goto error;</div><div class='del'>-</div><div class='del'>-        if (parser-&gt;mark.column == 0 &amp;&amp;</div><div class='del'>-            ((CHECK_AT(parser-&gt;buffer, '-', 0) &amp;&amp;</div><div class='del'>-              CHECK_AT(parser-&gt;buffer, '-', 1) &amp;&amp;</div><div class='del'>-              CHECK_AT(parser-&gt;buffer, '-', 2)) ||</div><div class='del'>-             (CHECK_AT(parser-&gt;buffer, '.', 0) &amp;&amp;</div><div class='del'>-              CHECK_AT(parser-&gt;buffer, '.', 1) &amp;&amp;</div><div class='del'>-              CHECK_AT(parser-&gt;buffer, '.', 2))) &amp;&amp;</div><div class='del'>-            IS_BLANKZ_AT(parser-&gt;buffer, 3)) break;</div><div class='del'>-</div><div class='del'>-        /* Check for a comment. */</div><div class='del'>-</div><div class='del'>-        if (CHECK(parser-&gt;buffer, '#'))</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        /* Consume non-blank characters. */</div><div class='del'>-</div><div class='del'>-        while (!IS_BLANKZ(parser-&gt;buffer))</div><div class='del'>-        {</div><div class='del'>-            /* Check for 'x:x' in the flow context. TODO: Fix the test "spec-08-13". */</div><div class='del'>-</div><div class='del'>-            if (parser-&gt;flow_level</div><div class='del'>-                    &amp;&amp; CHECK(parser-&gt;buffer, ':')</div><div class='del'>-                    &amp;&amp; !IS_BLANKZ_AT(parser-&gt;buffer, 1)) {</div><div class='del'>-                yaml_parser_set_scanner_error(parser, "while scanning a plain scalar",</div><div class='del'>-                        start_mark, "found unexpected ':'");</div><div class='del'>-                goto error;</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            /* Check for indicators that may end a plain scalar. */</div><div class='del'>-</div><div class='del'>-            if ((CHECK(parser-&gt;buffer, ':') &amp;&amp; IS_BLANKZ_AT(parser-&gt;buffer, 1))</div><div class='del'>-                    || (parser-&gt;flow_level &amp;&amp;</div><div class='del'>-                        (CHECK(parser-&gt;buffer, ',') || CHECK(parser-&gt;buffer, ':')</div><div class='del'>-                         || CHECK(parser-&gt;buffer, '?') || CHECK(parser-&gt;buffer, '[')</div><div class='del'>-                         || CHECK(parser-&gt;buffer, ']') || CHECK(parser-&gt;buffer, '{')</div><div class='del'>-                         || CHECK(parser-&gt;buffer, '}'))))</div><div class='del'>-                break;</div><div class='del'>-</div><div class='del'>-            /* Check if we need to join whitespaces and breaks. */</div><div class='del'>-</div><div class='del'>-            if (leading_blanks || whitespaces.start != whitespaces.pointer)</div><div class='del'>-            {</div><div class='del'>-                if (leading_blanks)</div><div class='del'>-                {</div><div class='del'>-                    /* Do we need to fold line breaks? */</div><div class='del'>-</div><div class='del'>-                    if (leading_break.start[0] == '\n') {</div><div class='del'>-                        if (trailing_breaks.start[0] == '\0') {</div><div class='del'>-                            if (!STRING_EXTEND(parser, string)) goto error;</div><div class='del'>-                            *(string.pointer++) = ' ';</div><div class='del'>-                        }</div><div class='del'>-                        else {</div><div class='del'>-                            if (!JOIN(parser, string, trailing_breaks)) goto error;</div><div class='del'>-                            CLEAR(parser, trailing_breaks);</div><div class='del'>-                        }</div><div class='del'>-                        CLEAR(parser, leading_break);</div><div class='del'>-                    }</div><div class='del'>-                    else {</div><div class='del'>-                        if (!JOIN(parser, string, leading_break)) goto error;</div><div class='del'>-                        if (!JOIN(parser, string, trailing_breaks)) goto error;</div><div class='del'>-                        CLEAR(parser, leading_break);</div><div class='del'>-                        CLEAR(parser, trailing_breaks);</div><div class='del'>-                    }</div><div class='del'>-</div><div class='del'>-                    leading_blanks = 0;</div><div class='del'>-                }</div><div class='del'>-                else</div><div class='del'>-                {</div><div class='del'>-                    if (!JOIN(parser, string, whitespaces)) goto error;</div><div class='del'>-                    CLEAR(parser, whitespaces);</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-</div><div class='del'>-            /* Copy the character. */</div><div class='del'>-</div><div class='del'>-            if (!READ(parser, string)) goto error;</div><div class='del'>-</div><div class='del'>-            end_mark = parser-&gt;mark;</div><div class='del'>-</div><div class='del'>-            if (!CACHE(parser, 2)) goto error;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Is it the end? */</div><div class='del'>-</div><div class='del'>-        if (!(IS_BLANK(parser-&gt;buffer) || IS_BREAK(parser-&gt;buffer)))</div><div class='del'>-            break;</div><div class='del'>-</div><div class='del'>-        /* Consume blank characters. */</div><div class='del'>-</div><div class='del'>-        if (!CACHE(parser, 1)) goto error;</div><div class='del'>-</div><div class='del'>-        while (IS_BLANK(parser-&gt;buffer) || IS_BREAK(parser-&gt;buffer))</div><div class='del'>-        {</div><div class='del'>-            if (IS_BLANK(parser-&gt;buffer))</div><div class='del'>-            {</div><div class='del'>-                /* Check for tab characters that abuse indentation. */</div><div class='del'>-</div><div class='del'>-                if (leading_blanks &amp;&amp; (int)parser-&gt;mark.column &lt; indent</div><div class='del'>-                        &amp;&amp; IS_TAB(parser-&gt;buffer)) {</div><div class='del'>-                    yaml_parser_set_scanner_error(parser, "while scanning a plain scalar",</div><div class='del'>-                            start_mark, "found a tab character that violate indentation");</div><div class='del'>-                    goto error;</div><div class='del'>-                }</div><div class='del'>-</div><div class='del'>-                /* Consume a space or a tab character. */</div><div class='del'>-</div><div class='del'>-                if (!leading_blanks) {</div><div class='del'>-                    if (!READ(parser, whitespaces)) goto error;</div><div class='del'>-                }</div><div class='del'>-                else {</div><div class='del'>-                    SKIP(parser);</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-            else</div><div class='del'>-            {</div><div class='del'>-                if (!CACHE(parser, 2)) goto error;</div><div class='del'>-</div><div class='del'>-                /* Check if it is a first line break. */</div><div class='del'>-</div><div class='del'>-                if (!leading_blanks)</div><div class='del'>-                {</div><div class='del'>-                    CLEAR(parser, whitespaces);</div><div class='del'>-                    if (!READ_LINE(parser, leading_break)) goto error;</div><div class='del'>-                    leading_blanks = 1;</div><div class='del'>-                }</div><div class='del'>-                else</div><div class='del'>-                {</div><div class='del'>-                    if (!READ_LINE(parser, trailing_breaks)) goto error;</div><div class='del'>-                }</div><div class='del'>-            }</div><div class='del'>-            if (!CACHE(parser, 1)) goto error;</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        /* Check indentation level. */</div><div class='del'>-</div><div class='del'>-        if (!parser-&gt;flow_level &amp;&amp; (int)parser-&gt;mark.column &lt; indent)</div><div class='del'>-            break;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Create a token. */</div><div class='del'>-</div><div class='del'>-    SCALAR_TOKEN_INIT(*token, string.start, string.pointer-string.start,</div><div class='del'>-            YAML_PLAIN_SCALAR_STYLE, start_mark, end_mark);</div><div class='del'>-</div><div class='del'>-    /* Note that we change the 'simple_key_allowed' flag. */</div><div class='del'>-</div><div class='del'>-    if (leading_blanks) {</div><div class='del'>-        parser-&gt;simple_key_allowed = 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    STRING_DEL(parser, leading_break);</div><div class='del'>-    STRING_DEL(parser, trailing_breaks);</div><div class='del'>-    STRING_DEL(parser, whitespaces);</div><div class='del'>-</div><div class='del'>-    return 1;</div><div class='del'>-</div><div class='del'>-error:</div><div class='del'>-    STRING_DEL(parser, string);</div><div class='del'>-    STRING_DEL(parser, leading_break);</div><div class='del'>-    STRING_DEL(parser, trailing_breaks);</div><div class='del'>-    STRING_DEL(parser, whitespaces);</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='head'>diff --git a/ext/psych/yaml/writer.c b/ext/psych/yaml/writer.c<br/>deleted file mode 100644<br/>index 5d57f392f1..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/psych/yaml/writer.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/writer.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,141 +0,0 @@</div><div class='del'>-</div><div class='del'>-#include "yaml_private.h"</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Declarations.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_set_writer_error(yaml_emitter_t *emitter, const char *problem);</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_flush(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Set the writer error and return 0.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-yaml_emitter_set_writer_error(yaml_emitter_t *emitter, const char *problem)</div><div class='del'>-{</div><div class='del'>-    emitter-&gt;error = YAML_WRITER_ERROR;</div><div class='del'>-    emitter-&gt;problem = problem;</div><div class='del'>-</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Flush the output buffer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_flush(yaml_emitter_t *emitter)</div><div class='del'>-{</div><div class='del'>-    int low, high;</div><div class='del'>-</div><div class='del'>-    assert(emitter);    /* Non-NULL emitter object is expected. */</div><div class='del'>-    assert(emitter-&gt;write_handler); /* Write handler must be set. */</div><div class='del'>-    assert(emitter-&gt;encoding);  /* Output encoding must be set. */</div><div class='del'>-</div><div class='del'>-    emitter-&gt;buffer.last = emitter-&gt;buffer.pointer;</div><div class='del'>-    emitter-&gt;buffer.pointer = emitter-&gt;buffer.start;</div><div class='del'>-</div><div class='del'>-    /* Check if the buffer is empty. */</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;buffer.start == emitter-&gt;buffer.last) {</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* If the output encoding is UTF-8, we don't need to recode the buffer. */</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;encoding == YAML_UTF8_ENCODING)</div><div class='del'>-    {</div><div class='del'>-        if (emitter-&gt;write_handler(emitter-&gt;write_handler_data,</div><div class='del'>-                    emitter-&gt;buffer.start,</div><div class='del'>-                    emitter-&gt;buffer.last - emitter-&gt;buffer.start)) {</div><div class='del'>-            emitter-&gt;buffer.last = emitter-&gt;buffer.start;</div><div class='del'>-            emitter-&gt;buffer.pointer = emitter-&gt;buffer.start;</div><div class='del'>-            return 1;</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            return yaml_emitter_set_writer_error(emitter, "write error");</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Recode the buffer into the raw buffer. */</div><div class='del'>-</div><div class='del'>-    low = (emitter-&gt;encoding == YAML_UTF16LE_ENCODING ? 0 : 1);</div><div class='del'>-    high = (emitter-&gt;encoding == YAML_UTF16LE_ENCODING ? 1 : 0);</div><div class='del'>-</div><div class='del'>-    while (emitter-&gt;buffer.pointer != emitter-&gt;buffer.last)</div><div class='del'>-    {</div><div class='del'>-        unsigned char octet;</div><div class='del'>-        unsigned int width;</div><div class='del'>-        unsigned int value;</div><div class='del'>-        size_t k;</div><div class='del'>-</div><div class='del'>-        /*</div><div class='del'>-         * See the "reader.c" code for more details on UTF-8 encoding.  Note</div><div class='del'>-         * that we assume that the buffer contains a valid UTF-8 sequence.</div><div class='del'>-         */</div><div class='del'>-</div><div class='del'>-        /* Read the next UTF-8 character. */</div><div class='del'>-</div><div class='del'>-        octet = emitter-&gt;buffer.pointer[0];</div><div class='del'>-</div><div class='del'>-        width = (octet &amp; 0x80) == 0x00 ? 1 :</div><div class='del'>-                (octet &amp; 0xE0) == 0xC0 ? 2 :</div><div class='del'>-                (octet &amp; 0xF0) == 0xE0 ? 3 :</div><div class='del'>-                (octet &amp; 0xF8) == 0xF0 ? 4 : 0;</div><div class='del'>-</div><div class='del'>-        value = (octet &amp; 0x80) == 0x00 ? octet &amp; 0x7F :</div><div class='del'>-                (octet &amp; 0xE0) == 0xC0 ? octet &amp; 0x1F :</div><div class='del'>-                (octet &amp; 0xF0) == 0xE0 ? octet &amp; 0x0F :</div><div class='del'>-                (octet &amp; 0xF8) == 0xF0 ? octet &amp; 0x07 : 0;</div><div class='del'>-</div><div class='del'>-        for (k = 1; k &lt; width; k ++) {</div><div class='del'>-            octet = emitter-&gt;buffer.pointer[k];</div><div class='del'>-            value = (value &lt;&lt; 6) + (octet &amp; 0x3F);</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-        emitter-&gt;buffer.pointer += width;</div><div class='del'>-</div><div class='del'>-        /* Write the character. */</div><div class='del'>-</div><div class='del'>-        if (value &lt; 0x10000)</div><div class='del'>-        {</div><div class='del'>-            emitter-&gt;raw_buffer.last[high] = value &gt;&gt; 8;</div><div class='del'>-            emitter-&gt;raw_buffer.last[low] = value &amp; 0xFF;</div><div class='del'>-</div><div class='del'>-            emitter-&gt;raw_buffer.last += 2;</div><div class='del'>-        }</div><div class='del'>-        else</div><div class='del'>-        {</div><div class='del'>-            /* Write the character using a surrogate pair (check "reader.c"). */</div><div class='del'>-</div><div class='del'>-            value -= 0x10000;</div><div class='del'>-            emitter-&gt;raw_buffer.last[high] = 0xD8 + (value &gt;&gt; 18);</div><div class='del'>-            emitter-&gt;raw_buffer.last[low] = (value &gt;&gt; 10) &amp; 0xFF;</div><div class='del'>-            emitter-&gt;raw_buffer.last[high+2] = 0xDC + ((value &gt;&gt; 8) &amp; 0xFF);</div><div class='del'>-            emitter-&gt;raw_buffer.last[low+2] = value &amp; 0xFF;</div><div class='del'>-</div><div class='del'>-            emitter-&gt;raw_buffer.last += 4;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* Write the raw buffer. */</div><div class='del'>-</div><div class='del'>-    if (emitter-&gt;write_handler(emitter-&gt;write_handler_data,</div><div class='del'>-                emitter-&gt;raw_buffer.start,</div><div class='del'>-                emitter-&gt;raw_buffer.last - emitter-&gt;raw_buffer.start)) {</div><div class='del'>-        emitter-&gt;buffer.last = emitter-&gt;buffer.start;</div><div class='del'>-        emitter-&gt;buffer.pointer = emitter-&gt;buffer.start;</div><div class='del'>-        emitter-&gt;raw_buffer.last = emitter-&gt;raw_buffer.start;</div><div class='del'>-        emitter-&gt;raw_buffer.pointer = emitter-&gt;raw_buffer.start;</div><div class='del'>-        return 1;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        return yaml_emitter_set_writer_error(emitter, "write error");</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='head'>diff --git a/ext/psych/yaml/yaml.h b/ext/psych/yaml/yaml.h<br/>deleted file mode 100644<br/>index f33a152594..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/psych/yaml/yaml.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/yaml.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1971 +0,0 @@</div><div class='del'>-/**</div><div class='del'>- * @file yaml.h</div><div class='del'>- * @brief Public interface for libyaml.</div><div class='del'>- *</div><div class='del'>- * Include the header file with the code:</div><div class='del'>- * @code</div><div class='del'>- * #include &lt;yaml.h&gt;</div><div class='del'>- * @endcode</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef YAML_H</div><div class='del'>-#define YAML_H</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-extern "C" {</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * @defgroup export Export Definitions</div><div class='del'>- * @{</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/** The public API declaration. */</div><div class='del'>-</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-#   if defined(YAML_DECLARE_STATIC)</div><div class='del'>-#       define  YAML_DECLARE(type)  type</div><div class='del'>-#   elif defined(YAML_DECLARE_EXPORT)</div><div class='del'>-#       define  YAML_DECLARE(type)  __declspec(dllexport) type</div><div class='del'>-#   else</div><div class='del'>-#       define  YAML_DECLARE(type)  __declspec(dllimport) type</div><div class='del'>-#   endif</div><div class='del'>-#else</div><div class='del'>-#   define  YAML_DECLARE(type)  type</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/** @} */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * @defgroup version Version Information</div><div class='del'>- * @{</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Get the library version as a string.</div><div class='del'>- *</div><div class='del'>- * @returns The function returns the pointer to a static string of the form</div><div class='del'>- * @c "X.Y.Z", where @c X is the major version number, @c Y is a minor version</div><div class='del'>- * number, and @c Z is the patch version number.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(const char *)</div><div class='del'>-yaml_get_version_string(void);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Get the library version numbers.</div><div class='del'>- *</div><div class='del'>- * @param[out]      major   Major version number.</div><div class='del'>- * @param[out]      minor   Minor version number.</div><div class='del'>- * @param[out]      patch   Patch version number.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_get_version(int *major, int *minor, int *patch);</div><div class='del'>-</div><div class='del'>-/** @} */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * @defgroup basic Basic Types</div><div class='del'>- * @{</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/** The character type (UTF-8 octet). */</div><div class='del'>-typedef unsigned char yaml_char_t;</div><div class='del'>-</div><div class='del'>-/** The version directive data. */</div><div class='del'>-typedef struct yaml_version_directive_s {</div><div class='del'>-    /** The major version number. */</div><div class='del'>-    int major;</div><div class='del'>-    /** The minor version number. */</div><div class='del'>-    int minor;</div><div class='del'>-} yaml_version_directive_t;</div><div class='del'>-</div><div class='del'>-/** The tag directive data. */</div><div class='del'>-typedef struct yaml_tag_directive_s {</div><div class='del'>-    /** The tag handle. */</div><div class='del'>-    yaml_char_t *handle;</div><div class='del'>-    /** The tag prefix. */</div><div class='del'>-    yaml_char_t *prefix;</div><div class='del'>-} yaml_tag_directive_t;</div><div class='del'>-</div><div class='del'>-/** The stream encoding. */</div><div class='del'>-typedef enum yaml_encoding_e {</div><div class='del'>-    /** Let the parser choose the encoding. */</div><div class='del'>-    YAML_ANY_ENCODING,</div><div class='del'>-    /** The default UTF-8 encoding. */</div><div class='del'>-    YAML_UTF8_ENCODING,</div><div class='del'>-    /** The UTF-16-LE encoding with BOM. */</div><div class='del'>-    YAML_UTF16LE_ENCODING,</div><div class='del'>-    /** The UTF-16-BE encoding with BOM. */</div><div class='del'>-    YAML_UTF16BE_ENCODING</div><div class='del'>-} yaml_encoding_t;</div><div class='del'>-</div><div class='del'>-/** Line break types. */</div><div class='del'>-</div><div class='del'>-typedef enum yaml_break_e {</div><div class='del'>-    /** Let the parser choose the break type. */</div><div class='del'>-    YAML_ANY_BREAK,</div><div class='del'>-    /** Use CR for line breaks (Mac style). */</div><div class='del'>-    YAML_CR_BREAK,</div><div class='del'>-    /** Use LN for line breaks (Unix style). */</div><div class='del'>-    YAML_LN_BREAK,</div><div class='del'>-    /** Use CR LN for line breaks (DOS style). */</div><div class='del'>-    YAML_CRLN_BREAK</div><div class='del'>-} yaml_break_t;</div><div class='del'>-</div><div class='del'>-/** Many bad things could happen with the parser and emitter. */</div><div class='del'>-typedef enum yaml_error_type_e {</div><div class='del'>-    /** No error is produced. */</div><div class='del'>-    YAML_NO_ERROR,</div><div class='del'>-</div><div class='del'>-    /** Cannot allocate or reallocate a block of memory. */</div><div class='del'>-    YAML_MEMORY_ERROR,</div><div class='del'>-</div><div class='del'>-    /** Cannot read or decode the input stream. */</div><div class='del'>-    YAML_READER_ERROR,</div><div class='del'>-    /** Cannot scan the input stream. */</div><div class='del'>-    YAML_SCANNER_ERROR,</div><div class='del'>-    /** Cannot parse the input stream. */</div><div class='del'>-    YAML_PARSER_ERROR,</div><div class='del'>-    /** Cannot compose a YAML document. */</div><div class='del'>-    YAML_COMPOSER_ERROR,</div><div class='del'>-</div><div class='del'>-    /** Cannot write to the output stream. */</div><div class='del'>-    YAML_WRITER_ERROR,</div><div class='del'>-    /** Cannot emit a YAML stream. */</div><div class='del'>-    YAML_EMITTER_ERROR</div><div class='del'>-} yaml_error_type_t;</div><div class='del'>-</div><div class='del'>-/** The pointer position. */</div><div class='del'>-typedef struct yaml_mark_s {</div><div class='del'>-    /** The position index. */</div><div class='del'>-    size_t index;</div><div class='del'>-</div><div class='del'>-    /** The position line. */</div><div class='del'>-    size_t line;</div><div class='del'>-</div><div class='del'>-    /** The position column. */</div><div class='del'>-    size_t column;</div><div class='del'>-} yaml_mark_t;</div><div class='del'>-</div><div class='del'>-/** @} */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * @defgroup styles Node Styles</div><div class='del'>- * @{</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/** Scalar styles. */</div><div class='del'>-typedef enum yaml_scalar_style_e {</div><div class='del'>-    /** Let the emitter choose the style. */</div><div class='del'>-    YAML_ANY_SCALAR_STYLE,</div><div class='del'>-</div><div class='del'>-    /** The plain scalar style. */</div><div class='del'>-    YAML_PLAIN_SCALAR_STYLE,</div><div class='del'>-</div><div class='del'>-    /** The single-quoted scalar style. */</div><div class='del'>-    YAML_SINGLE_QUOTED_SCALAR_STYLE,</div><div class='del'>-    /** The double-quoted scalar style. */</div><div class='del'>-    YAML_DOUBLE_QUOTED_SCALAR_STYLE,</div><div class='del'>-</div><div class='del'>-    /** The literal scalar style. */</div><div class='del'>-    YAML_LITERAL_SCALAR_STYLE,</div><div class='del'>-    /** The folded scalar style. */</div><div class='del'>-    YAML_FOLDED_SCALAR_STYLE</div><div class='del'>-} yaml_scalar_style_t;</div><div class='del'>-</div><div class='del'>-/** Sequence styles. */</div><div class='del'>-typedef enum yaml_sequence_style_e {</div><div class='del'>-    /** Let the emitter choose the style. */</div><div class='del'>-    YAML_ANY_SEQUENCE_STYLE,</div><div class='del'>-</div><div class='del'>-    /** The block sequence style. */</div><div class='del'>-    YAML_BLOCK_SEQUENCE_STYLE,</div><div class='del'>-    /** The flow sequence style. */</div><div class='del'>-    YAML_FLOW_SEQUENCE_STYLE</div><div class='del'>-} yaml_sequence_style_t;</div><div class='del'>-</div><div class='del'>-/** Mapping styles. */</div><div class='del'>-typedef enum yaml_mapping_style_e {</div><div class='del'>-    /** Let the emitter choose the style. */</div><div class='del'>-    YAML_ANY_MAPPING_STYLE,</div><div class='del'>-</div><div class='del'>-    /** The block mapping style. */</div><div class='del'>-    YAML_BLOCK_MAPPING_STYLE,</div><div class='del'>-    /** The flow mapping style. */</div><div class='del'>-    YAML_FLOW_MAPPING_STYLE</div><div class='del'>-/*    YAML_FLOW_SET_MAPPING_STYLE   */</div><div class='del'>-} yaml_mapping_style_t;</div><div class='del'>-</div><div class='del'>-/** @} */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * @defgroup tokens Tokens</div><div class='del'>- * @{</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/** Token types. */</div><div class='del'>-typedef enum yaml_token_type_e {</div><div class='del'>-    /** An empty token. */</div><div class='del'>-    YAML_NO_TOKEN,</div><div class='del'>-</div><div class='del'>-    /** A STREAM-START token. */</div><div class='del'>-    YAML_STREAM_START_TOKEN,</div><div class='del'>-    /** A STREAM-END token. */</div><div class='del'>-    YAML_STREAM_END_TOKEN,</div><div class='del'>-</div><div class='del'>-    /** A VERSION-DIRECTIVE token. */</div><div class='del'>-    YAML_VERSION_DIRECTIVE_TOKEN,</div><div class='del'>-    /** A TAG-DIRECTIVE token. */</div><div class='del'>-    YAML_TAG_DIRECTIVE_TOKEN,</div><div class='del'>-    /** A DOCUMENT-START token. */</div><div class='del'>-    YAML_DOCUMENT_START_TOKEN,</div><div class='del'>-    /** A DOCUMENT-END token. */</div><div class='del'>-    YAML_DOCUMENT_END_TOKEN,</div><div class='del'>-</div><div class='del'>-    /** A BLOCK-SEQUENCE-START token. */</div><div class='del'>-    YAML_BLOCK_SEQUENCE_START_TOKEN,</div><div class='del'>-    /** A BLOCK-SEQUENCE-END token. */</div><div class='del'>-    YAML_BLOCK_MAPPING_START_TOKEN,</div><div class='del'>-    /** A BLOCK-END token. */</div><div class='del'>-    YAML_BLOCK_END_TOKEN,</div><div class='del'>-</div><div class='del'>-    /** A FLOW-SEQUENCE-START token. */</div><div class='del'>-    YAML_FLOW_SEQUENCE_START_TOKEN,</div><div class='del'>-    /** A FLOW-SEQUENCE-END token. */</div><div class='del'>-    YAML_FLOW_SEQUENCE_END_TOKEN,</div><div class='del'>-    /** A FLOW-MAPPING-START token. */</div><div class='del'>-    YAML_FLOW_MAPPING_START_TOKEN,</div><div class='del'>-    /** A FLOW-MAPPING-END token. */</div><div class='del'>-    YAML_FLOW_MAPPING_END_TOKEN,</div><div class='del'>-</div><div class='del'>-    /** A BLOCK-ENTRY token. */</div><div class='del'>-    YAML_BLOCK_ENTRY_TOKEN,</div><div class='del'>-    /** A FLOW-ENTRY token. */</div><div class='del'>-    YAML_FLOW_ENTRY_TOKEN,</div><div class='del'>-    /** A KEY token. */</div><div class='del'>-    YAML_KEY_TOKEN,</div><div class='del'>-    /** A VALUE token. */</div><div class='del'>-    YAML_VALUE_TOKEN,</div><div class='del'>-</div><div class='del'>-    /** An ALIAS token. */</div><div class='del'>-    YAML_ALIAS_TOKEN,</div><div class='del'>-    /** An ANCHOR token. */</div><div class='del'>-    YAML_ANCHOR_TOKEN,</div><div class='del'>-    /** A TAG token. */</div><div class='del'>-    YAML_TAG_TOKEN,</div><div class='del'>-    /** A SCALAR token. */</div><div class='del'>-    YAML_SCALAR_TOKEN</div><div class='del'>-} yaml_token_type_t;</div><div class='del'>-</div><div class='del'>-/** The token structure. */</div><div class='del'>-typedef struct yaml_token_s {</div><div class='del'>-</div><div class='del'>-    /** The token type. */</div><div class='del'>-    yaml_token_type_t type;</div><div class='del'>-</div><div class='del'>-    /** The token data. */</div><div class='del'>-    union {</div><div class='del'>-</div><div class='del'>-        /** The stream start (for @c YAML_STREAM_START_TOKEN). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The stream encoding. */</div><div class='del'>-            yaml_encoding_t encoding;</div><div class='del'>-        } stream_start;</div><div class='del'>-</div><div class='del'>-        /** The alias (for @c YAML_ALIAS_TOKEN). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The alias value. */</div><div class='del'>-            yaml_char_t *value;</div><div class='del'>-        } alias;</div><div class='del'>-</div><div class='del'>-        /** The anchor (for @c YAML_ANCHOR_TOKEN). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The anchor value. */</div><div class='del'>-            yaml_char_t *value;</div><div class='del'>-        } anchor;</div><div class='del'>-</div><div class='del'>-        /** The tag (for @c YAML_TAG_TOKEN). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The tag handle. */</div><div class='del'>-            yaml_char_t *handle;</div><div class='del'>-            /** The tag suffix. */</div><div class='del'>-            yaml_char_t *suffix;</div><div class='del'>-        } tag;</div><div class='del'>-</div><div class='del'>-        /** The scalar value (for @c YAML_SCALAR_TOKEN). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The scalar value. */</div><div class='del'>-            yaml_char_t *value;</div><div class='del'>-            /** The length of the scalar value. */</div><div class='del'>-            size_t length;</div><div class='del'>-            /** The scalar style. */</div><div class='del'>-            yaml_scalar_style_t style;</div><div class='del'>-        } scalar;</div><div class='del'>-</div><div class='del'>-        /** The version directive (for @c YAML_VERSION_DIRECTIVE_TOKEN). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The major version number. */</div><div class='del'>-            int major;</div><div class='del'>-            /** The minor version number. */</div><div class='del'>-            int minor;</div><div class='del'>-        } version_directive;</div><div class='del'>-</div><div class='del'>-        /** The tag directive (for @c YAML_TAG_DIRECTIVE_TOKEN). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The tag handle. */</div><div class='del'>-            yaml_char_t *handle;</div><div class='del'>-            /** The tag prefix. */</div><div class='del'>-            yaml_char_t *prefix;</div><div class='del'>-        } tag_directive;</div><div class='del'>-</div><div class='del'>-    } data;</div><div class='del'>-</div><div class='del'>-    /** The beginning of the token. */</div><div class='del'>-    yaml_mark_t start_mark;</div><div class='del'>-    /** The end of the token. */</div><div class='del'>-    yaml_mark_t end_mark;</div><div class='del'>-</div><div class='del'>-} yaml_token_t;</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Free any memory allocated for a token object.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   token   A token object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_token_delete(yaml_token_t *token);</div><div class='del'>-</div><div class='del'>-/** @} */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * @defgroup events Events</div><div class='del'>- * @{</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/** Event types. */</div><div class='del'>-typedef enum yaml_event_type_e {</div><div class='del'>-    /** An empty event. */</div><div class='del'>-    YAML_NO_EVENT,</div><div class='del'>-</div><div class='del'>-    /** A STREAM-START event. */</div><div class='del'>-    YAML_STREAM_START_EVENT,</div><div class='del'>-    /** A STREAM-END event. */</div><div class='del'>-    YAML_STREAM_END_EVENT,</div><div class='del'>-</div><div class='del'>-    /** A DOCUMENT-START event. */</div><div class='del'>-    YAML_DOCUMENT_START_EVENT,</div><div class='del'>-    /** A DOCUMENT-END event. */</div><div class='del'>-    YAML_DOCUMENT_END_EVENT,</div><div class='del'>-</div><div class='del'>-    /** An ALIAS event. */</div><div class='del'>-    YAML_ALIAS_EVENT,</div><div class='del'>-    /** A SCALAR event. */</div><div class='del'>-    YAML_SCALAR_EVENT,</div><div class='del'>-</div><div class='del'>-    /** A SEQUENCE-START event. */</div><div class='del'>-    YAML_SEQUENCE_START_EVENT,</div><div class='del'>-    /** A SEQUENCE-END event. */</div><div class='del'>-    YAML_SEQUENCE_END_EVENT,</div><div class='del'>-</div><div class='del'>-    /** A MAPPING-START event. */</div><div class='del'>-    YAML_MAPPING_START_EVENT,</div><div class='del'>-    /** A MAPPING-END event. */</div><div class='del'>-    YAML_MAPPING_END_EVENT</div><div class='del'>-} yaml_event_type_t;</div><div class='del'>-</div><div class='del'>-/** The event structure. */</div><div class='del'>-typedef struct yaml_event_s {</div><div class='del'>-</div><div class='del'>-    /** The event type. */</div><div class='del'>-    yaml_event_type_t type;</div><div class='del'>-</div><div class='del'>-    /** The event data. */</div><div class='del'>-    union {</div><div class='del'>-</div><div class='del'>-        /** The stream parameters (for @c YAML_STREAM_START_EVENT). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The document encoding. */</div><div class='del'>-            yaml_encoding_t encoding;</div><div class='del'>-        } stream_start;</div><div class='del'>-</div><div class='del'>-        /** The document parameters (for @c YAML_DOCUMENT_START_EVENT). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The version directive. */</div><div class='del'>-            yaml_version_directive_t *version_directive;</div><div class='del'>-</div><div class='del'>-            /** The list of tag directives. */</div><div class='del'>-            struct {</div><div class='del'>-                /** The beginning of the tag directives list. */</div><div class='del'>-                yaml_tag_directive_t *start;</div><div class='del'>-                /** The end of the tag directives list. */</div><div class='del'>-                yaml_tag_directive_t *end;</div><div class='del'>-            } tag_directives;</div><div class='del'>-</div><div class='del'>-            /** Is the document indicator implicit? */</div><div class='del'>-            int implicit;</div><div class='del'>-        } document_start;</div><div class='del'>-</div><div class='del'>-        /** The document end parameters (for @c YAML_DOCUMENT_END_EVENT). */</div><div class='del'>-        struct {</div><div class='del'>-            /** Is the document end indicator implicit? */</div><div class='del'>-            int implicit;</div><div class='del'>-        } document_end;</div><div class='del'>-</div><div class='del'>-        /** The alias parameters (for @c YAML_ALIAS_EVENT). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The anchor. */</div><div class='del'>-            yaml_char_t *anchor;</div><div class='del'>-        } alias;</div><div class='del'>-</div><div class='del'>-        /** The scalar parameters (for @c YAML_SCALAR_EVENT). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The anchor. */</div><div class='del'>-            yaml_char_t *anchor;</div><div class='del'>-            /** The tag. */</div><div class='del'>-            yaml_char_t *tag;</div><div class='del'>-            /** The scalar value. */</div><div class='del'>-            yaml_char_t *value;</div><div class='del'>-            /** The length of the scalar value. */</div><div class='del'>-            size_t length;</div><div class='del'>-            /** Is the tag optional for the plain style? */</div><div class='del'>-            int plain_implicit;</div><div class='del'>-            /** Is the tag optional for any non-plain style? */</div><div class='del'>-            int quoted_implicit;</div><div class='del'>-            /** The scalar style. */</div><div class='del'>-            yaml_scalar_style_t style;</div><div class='del'>-        } scalar;</div><div class='del'>-</div><div class='del'>-        /** The sequence parameters (for @c YAML_SEQUENCE_START_EVENT). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The anchor. */</div><div class='del'>-            yaml_char_t *anchor;</div><div class='del'>-            /** The tag. */</div><div class='del'>-            yaml_char_t *tag;</div><div class='del'>-            /** Is the tag optional? */</div><div class='del'>-            int implicit;</div><div class='del'>-            /** The sequence style. */</div><div class='del'>-            yaml_sequence_style_t style;</div><div class='del'>-        } sequence_start;</div><div class='del'>-</div><div class='del'>-        /** The mapping parameters (for @c YAML_MAPPING_START_EVENT). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The anchor. */</div><div class='del'>-            yaml_char_t *anchor;</div><div class='del'>-            /** The tag. */</div><div class='del'>-            yaml_char_t *tag;</div><div class='del'>-            /** Is the tag optional? */</div><div class='del'>-            int implicit;</div><div class='del'>-            /** The mapping style. */</div><div class='del'>-            yaml_mapping_style_t style;</div><div class='del'>-        } mapping_start;</div><div class='del'>-</div><div class='del'>-    } data;</div><div class='del'>-</div><div class='del'>-    /** The beginning of the event. */</div><div class='del'>-    yaml_mark_t start_mark;</div><div class='del'>-    /** The end of the event. */</div><div class='del'>-    yaml_mark_t end_mark;</div><div class='del'>-</div><div class='del'>-} yaml_event_t;</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create the STREAM-START event.</div><div class='del'>- *</div><div class='del'>- * @param[out]      event       An empty event object.</div><div class='del'>- * @param[in]       encoding    The stream encoding.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_stream_start_event_initialize(yaml_event_t *event,</div><div class='del'>-        yaml_encoding_t encoding);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create the STREAM-END event.</div><div class='del'>- *</div><div class='del'>- * @param[out]      event       An empty event object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_stream_end_event_initialize(yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create the DOCUMENT-START event.</div><div class='del'>- *</div><div class='del'>- * The @a implicit argument is considered as a stylistic parameter and may be</div><div class='del'>- * ignored by the emitter.</div><div class='del'>- *</div><div class='del'>- * @param[out]      event                   An empty event object.</div><div class='del'>- * @param[in]       version_directive       The %YAML directive value or</div><div class='del'>- *                                          @c NULL.</div><div class='del'>- * @param[in]       tag_directives_start    The beginning of the %TAG</div><div class='del'>- *                                          directives list.</div><div class='del'>- * @param[in]       tag_directives_end      The end of the %TAG directives</div><div class='del'>- *                                          list.</div><div class='del'>- * @param[in]       implicit                If the document start indicator is</div><div class='del'>- *                                          implicit.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_start_event_initialize(yaml_event_t *event,</div><div class='del'>-        yaml_version_directive_t *version_directive,</div><div class='del'>-        yaml_tag_directive_t *tag_directives_start,</div><div class='del'>-        yaml_tag_directive_t *tag_directives_end,</div><div class='del'>-        int implicit);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create the DOCUMENT-END event.</div><div class='del'>- *</div><div class='del'>- * The @a implicit argument is considered as a stylistic parameter and may be</div><div class='del'>- * ignored by the emitter.</div><div class='del'>- *</div><div class='del'>- * @param[out]      event       An empty event object.</div><div class='del'>- * @param[in]       implicit    If the document end indicator is implicit.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_end_event_initialize(yaml_event_t *event, int implicit);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create an ALIAS event.</div><div class='del'>- *</div><div class='del'>- * @param[out]      event       An empty event object.</div><div class='del'>- * @param[in]       anchor      The anchor value.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_alias_event_initialize(yaml_event_t *event, yaml_char_t *anchor);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create a SCALAR event.</div><div class='del'>- *</div><div class='del'>- * The @a style argument may be ignored by the emitter.</div><div class='del'>- *</div><div class='del'>- * Either the @a tag attribute or one of the @a plain_implicit and</div><div class='del'>- * @a quoted_implicit flags must be set.</div><div class='del'>- *</div><div class='del'>- * @param[out]      event           An empty event object.</div><div class='del'>- * @param[in]       anchor          The scalar anchor or @c NULL.</div><div class='del'>- * @param[in]       tag             The scalar tag or @c NULL.</div><div class='del'>- * @param[in]       value           The scalar value.</div><div class='del'>- * @param[in]       length          The length of the scalar value.</div><div class='del'>- * @param[in]       plain_implicit  If the tag may be omitted for the plain</div><div class='del'>- *                                  style.</div><div class='del'>- * @param[in]       quoted_implicit If the tag may be omitted for any</div><div class='del'>- *                                  non-plain style.</div><div class='del'>- * @param[in]       style           The scalar style.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_scalar_event_initialize(yaml_event_t *event,</div><div class='del'>-        yaml_char_t *anchor, yaml_char_t *tag,</div><div class='del'>-        yaml_char_t *value, int length,</div><div class='del'>-        int plain_implicit, int quoted_implicit,</div><div class='del'>-        yaml_scalar_style_t style);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create a SEQUENCE-START event.</div><div class='del'>- *</div><div class='del'>- * The @a style argument may be ignored by the emitter.</div><div class='del'>- *</div><div class='del'>- * Either the @a tag attribute or the @a implicit flag must be set.</div><div class='del'>- *</div><div class='del'>- * @param[out]      event       An empty event object.</div><div class='del'>- * @param[in]       anchor      The sequence anchor or @c NULL.</div><div class='del'>- * @param[in]       tag         The sequence tag or @c NULL.</div><div class='del'>- * @param[in]       implicit    If the tag may be omitted.</div><div class='del'>- * @param[in]       style       The sequence style.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_sequence_start_event_initialize(yaml_event_t *event,</div><div class='del'>-        yaml_char_t *anchor, yaml_char_t *tag, int implicit,</div><div class='del'>-        yaml_sequence_style_t style);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create a SEQUENCE-END event.</div><div class='del'>- *</div><div class='del'>- * @param[out]      event       An empty event object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_sequence_end_event_initialize(yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create a MAPPING-START event.</div><div class='del'>- *</div><div class='del'>- * The @a style argument may be ignored by the emitter.</div><div class='del'>- *</div><div class='del'>- * Either the @a tag attribute or the @a implicit flag must be set.</div><div class='del'>- *</div><div class='del'>- * @param[out]      event       An empty event object.</div><div class='del'>- * @param[in]       anchor      The mapping anchor or @c NULL.</div><div class='del'>- * @param[in]       tag         The mapping tag or @c NULL.</div><div class='del'>- * @param[in]       implicit    If the tag may be omitted.</div><div class='del'>- * @param[in]       style       The mapping style.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_mapping_start_event_initialize(yaml_event_t *event,</div><div class='del'>-        yaml_char_t *anchor, yaml_char_t *tag, int implicit,</div><div class='del'>-        yaml_mapping_style_t style);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create a MAPPING-END event.</div><div class='del'>- *</div><div class='del'>- * @param[out]      event       An empty event object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_mapping_end_event_initialize(yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Free any memory allocated for an event object.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   event   An event object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_event_delete(yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-/** @} */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * @defgroup nodes Nodes</div><div class='del'>- * @{</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/** The tag @c !!null with the only possible value: @c null. */</div><div class='del'>-#define YAML_NULL_TAG       "tag:yaml.org,2002:null"</div><div class='del'>-/** The tag @c !!bool with the values: @c true and @c falce. */</div><div class='del'>-#define YAML_BOOL_TAG       "tag:yaml.org,2002:bool"</div><div class='del'>-/** The tag @c !!str for string values. */</div><div class='del'>-#define YAML_STR_TAG        "tag:yaml.org,2002:str"</div><div class='del'>-/** The tag @c !!int for integer values. */</div><div class='del'>-#define YAML_INT_TAG        "tag:yaml.org,2002:int"</div><div class='del'>-/** The tag @c !!float for float values. */</div><div class='del'>-#define YAML_FLOAT_TAG      "tag:yaml.org,2002:float"</div><div class='del'>-/** The tag @c !!timestamp for date and time values. */</div><div class='del'>-#define YAML_TIMESTAMP_TAG  "tag:yaml.org,2002:timestamp"</div><div class='del'>-</div><div class='del'>-/** The tag @c !!seq is used to denote sequences. */</div><div class='del'>-#define YAML_SEQ_TAG        "tag:yaml.org,2002:seq"</div><div class='del'>-/** The tag @c !!map is used to denote mapping. */</div><div class='del'>-#define YAML_MAP_TAG        "tag:yaml.org,2002:map"</div><div class='del'>-</div><div class='del'>-/** The default scalar tag is @c !!str. */</div><div class='del'>-#define YAML_DEFAULT_SCALAR_TAG     YAML_STR_TAG</div><div class='del'>-/** The default sequence tag is @c !!seq. */</div><div class='del'>-#define YAML_DEFAULT_SEQUENCE_TAG   YAML_SEQ_TAG</div><div class='del'>-/** The default mapping tag is @c !!map. */</div><div class='del'>-#define YAML_DEFAULT_MAPPING_TAG    YAML_MAP_TAG</div><div class='del'>-</div><div class='del'>-/** Node types. */</div><div class='del'>-typedef enum yaml_node_type_e {</div><div class='del'>-    /** An empty node. */</div><div class='del'>-    YAML_NO_NODE,</div><div class='del'>-</div><div class='del'>-    /** A scalar node. */</div><div class='del'>-    YAML_SCALAR_NODE,</div><div class='del'>-    /** A sequence node. */</div><div class='del'>-    YAML_SEQUENCE_NODE,</div><div class='del'>-    /** A mapping node. */</div><div class='del'>-    YAML_MAPPING_NODE</div><div class='del'>-} yaml_node_type_t;</div><div class='del'>-</div><div class='del'>-/** The forward definition of a document node structure. */</div><div class='del'>-typedef struct yaml_node_s yaml_node_t;</div><div class='del'>-</div><div class='del'>-/** An element of a sequence node. */</div><div class='del'>-typedef int yaml_node_item_t;</div><div class='del'>-</div><div class='del'>-/** An element of a mapping node. */</div><div class='del'>-typedef struct yaml_node_pair_s {</div><div class='del'>-    /** The key of the element. */</div><div class='del'>-    int key;</div><div class='del'>-    /** The value of the element. */</div><div class='del'>-    int value;</div><div class='del'>-} yaml_node_pair_t;</div><div class='del'>-</div><div class='del'>-/** The node structure. */</div><div class='del'>-struct yaml_node_s {</div><div class='del'>-</div><div class='del'>-    /** The node type. */</div><div class='del'>-    yaml_node_type_t type;</div><div class='del'>-</div><div class='del'>-    /** The node tag. */</div><div class='del'>-    yaml_char_t *tag;</div><div class='del'>-</div><div class='del'>-    /** The node data. */</div><div class='del'>-    union {</div><div class='del'>-</div><div class='del'>-        /** The scalar parameters (for @c YAML_SCALAR_NODE). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The scalar value. */</div><div class='del'>-            yaml_char_t *value;</div><div class='del'>-            /** The length of the scalar value. */</div><div class='del'>-            size_t length;</div><div class='del'>-            /** The scalar style. */</div><div class='del'>-            yaml_scalar_style_t style;</div><div class='del'>-        } scalar;</div><div class='del'>-</div><div class='del'>-        /** The sequence parameters (for @c YAML_SEQUENCE_NODE). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The stack of sequence items. */</div><div class='del'>-            struct {</div><div class='del'>-                /** The beginning of the stack. */</div><div class='del'>-                yaml_node_item_t *start;</div><div class='del'>-                /** The end of the stack. */</div><div class='del'>-                yaml_node_item_t *end;</div><div class='del'>-                /** The top of the stack. */</div><div class='del'>-                yaml_node_item_t *top;</div><div class='del'>-            } items;</div><div class='del'>-            /** The sequence style. */</div><div class='del'>-            yaml_sequence_style_t style;</div><div class='del'>-        } sequence;</div><div class='del'>-</div><div class='del'>-        /** The mapping parameters (for @c YAML_MAPPING_NODE). */</div><div class='del'>-        struct {</div><div class='del'>-            /** The stack of mapping pairs (key, value). */</div><div class='del'>-            struct {</div><div class='del'>-                /** The beginning of the stack. */</div><div class='del'>-                yaml_node_pair_t *start;</div><div class='del'>-                /** The end of the stack. */</div><div class='del'>-                yaml_node_pair_t *end;</div><div class='del'>-                /** The top of the stack. */</div><div class='del'>-                yaml_node_pair_t *top;</div><div class='del'>-            } pairs;</div><div class='del'>-            /** The mapping style. */</div><div class='del'>-            yaml_mapping_style_t style;</div><div class='del'>-        } mapping;</div><div class='del'>-</div><div class='del'>-    } data;</div><div class='del'>-</div><div class='del'>-    /** The beginning of the node. */</div><div class='del'>-    yaml_mark_t start_mark;</div><div class='del'>-    /** The end of the node. */</div><div class='del'>-    yaml_mark_t end_mark;</div><div class='del'>-</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/** The document structure. */</div><div class='del'>-typedef struct yaml_document_s {</div><div class='del'>-</div><div class='del'>-    /** The document nodes. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the stack. */</div><div class='del'>-        yaml_node_t *start;</div><div class='del'>-        /** The end of the stack. */</div><div class='del'>-        yaml_node_t *end;</div><div class='del'>-        /** The top of the stack. */</div><div class='del'>-        yaml_node_t *top;</div><div class='del'>-    } nodes;</div><div class='del'>-</div><div class='del'>-    /** The version directive. */</div><div class='del'>-    yaml_version_directive_t *version_directive;</div><div class='del'>-</div><div class='del'>-    /** The list of tag directives. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the tag directives list. */</div><div class='del'>-        yaml_tag_directive_t *start;</div><div class='del'>-        /** The end of the tag directives list. */</div><div class='del'>-        yaml_tag_directive_t *end;</div><div class='del'>-    } tag_directives;</div><div class='del'>-</div><div class='del'>-    /** Is the document start indicator implicit? */</div><div class='del'>-    int start_implicit;</div><div class='del'>-    /** Is the document end indicator implicit? */</div><div class='del'>-    int end_implicit;</div><div class='del'>-</div><div class='del'>-    /** The beginning of the document. */</div><div class='del'>-    yaml_mark_t start_mark;</div><div class='del'>-    /** The end of the document. */</div><div class='del'>-    yaml_mark_t end_mark;</div><div class='del'>-</div><div class='del'>-} yaml_document_t;</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create a YAML document.</div><div class='del'>- *</div><div class='del'>- * @param[out]      document                An empty document object.</div><div class='del'>- * @param[in]       version_directive       The %YAML directive value or</div><div class='del'>- *                                          @c NULL.</div><div class='del'>- * @param[in]       tag_directives_start    The beginning of the %TAG</div><div class='del'>- *                                          directives list.</div><div class='del'>- * @param[in]       tag_directives_end      The end of the %TAG directives</div><div class='del'>- *                                          list.</div><div class='del'>- * @param[in]       start_implicit          If the document start indicator is</div><div class='del'>- *                                          implicit.</div><div class='del'>- * @param[in]       end_implicit            If the document end indicator is</div><div class='del'>- *                                          implicit.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_initialize(yaml_document_t *document,</div><div class='del'>-        yaml_version_directive_t *version_directive,</div><div class='del'>-        yaml_tag_directive_t *tag_directives_start,</div><div class='del'>-        yaml_tag_directive_t *tag_directives_end,</div><div class='del'>-        int start_implicit, int end_implicit);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Delete a YAML document and all its nodes.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   document        A document object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_document_delete(yaml_document_t *document);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Get a node of a YAML document.</div><div class='del'>- *</div><div class='del'>- * The pointer returned by this function is valid until any of the functions</div><div class='del'>- * modifying the documents are called.</div><div class='del'>- *</div><div class='del'>- * @param[in]       document        A document object.</div><div class='del'>- * @param[in]       index           The node id.</div><div class='del'>- *</div><div class='del'>- * @returns the node objct or @c NULL if @c node_id is out of range.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(yaml_node_t *)</div><div class='del'>-yaml_document_get_node(yaml_document_t *document, int index);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Get the root of a YAML document node.</div><div class='del'>- *</div><div class='del'>- * The root object is the first object added to the document.</div><div class='del'>- *</div><div class='del'>- * The pointer returned by this function is valid until any of the functions</div><div class='del'>- * modifying the documents are called.</div><div class='del'>- *</div><div class='del'>- * An empty document produced by the parser signifies the end of a YAML</div><div class='del'>- * stream.</div><div class='del'>- *</div><div class='del'>- * @param[in]       document        A document object.</div><div class='del'>- *</div><div class='del'>- * @returns the node object or @c NULL if the document is empty.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(yaml_node_t *)</div><div class='del'>-yaml_document_get_root_node(yaml_document_t *document);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create a SCALAR node and attach it to the document.</div><div class='del'>- *</div><div class='del'>- * The @a style argument may be ignored by the emitter.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   document        A document object.</div><div class='del'>- * @param[in]       tag             The scalar tag.</div><div class='del'>- * @param[in]       value           The scalar value.</div><div class='del'>- * @param[in]       length          The length of the scalar value.</div><div class='del'>- * @param[in]       style           The scalar style.</div><div class='del'>- *</div><div class='del'>- * @returns the node id or @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_add_scalar(yaml_document_t *document,</div><div class='del'>-        yaml_char_t *tag, yaml_char_t *value, int length,</div><div class='del'>-        yaml_scalar_style_t style);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create a SEQUENCE node and attach it to the document.</div><div class='del'>- *</div><div class='del'>- * The @a style argument may be ignored by the emitter.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   document    A document object.</div><div class='del'>- * @param[in]       tag         The sequence tag.</div><div class='del'>- * @param[in]       style       The sequence style.</div><div class='del'>- *</div><div class='del'>- * @returns the node id or @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_add_sequence(yaml_document_t *document,</div><div class='del'>-        yaml_char_t *tag, yaml_sequence_style_t style);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Create a MAPPING node and attach it to the document.</div><div class='del'>- *</div><div class='del'>- * The @a style argument may be ignored by the emitter.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   document    A document object.</div><div class='del'>- * @param[in]       tag         The sequence tag.</div><div class='del'>- * @param[in]       style       The sequence style.</div><div class='del'>- *</div><div class='del'>- * @returns the node id or @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_add_mapping(yaml_document_t *document,</div><div class='del'>-        yaml_char_t *tag, yaml_mapping_style_t style);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Add an item to a SEQUENCE node.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   document    A document object.</div><div class='del'>- * @param[in]       sequence    The sequence node id.</div><div class='del'>- * @param[in]       item        The item node id.</div><div class='del'>-*</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_append_sequence_item(yaml_document_t *document,</div><div class='del'>-        int sequence, int item);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Add a pair of a key and a value to a MAPPING node.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   document    A document object.</div><div class='del'>- * @param[in]       mapping     The mapping node id.</div><div class='del'>- * @param[in]       key         The key node id.</div><div class='del'>- * @param[in]       value       The value node id.</div><div class='del'>-*</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_document_append_mapping_pair(yaml_document_t *document,</div><div class='del'>-        int mapping, int key, int value);</div><div class='del'>-</div><div class='del'>-/** @} */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * @defgroup parser Parser Definitions</div><div class='del'>- * @{</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * The prototype of a read handler.</div><div class='del'>- *</div><div class='del'>- * The read handler is called when the parser needs to read more bytes from the</div><div class='del'>- * source.  The handler should write not more than @a size bytes to the @a</div><div class='del'>- * buffer.  The number of written bytes should be set to the @a length variable.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   data        A pointer to an application data specified by</div><div class='del'>- *                              yaml_parser_set_input().</div><div class='del'>- * @param[out]      buffer      The buffer to write the data from the source.</div><div class='del'>- * @param[in]       size        The size of the buffer.</div><div class='del'>- * @param[out]      size_read   The actual number of bytes read from the source.</div><div class='del'>- *</div><div class='del'>- * @returns On success, the handler should return @c 1.  If the handler failed,</div><div class='del'>- * the returned value should be @c 0.  On EOF, the handler should set the</div><div class='del'>- * @a size_read to @c 0 and return @c 1.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef int yaml_read_handler_t(void *data, unsigned char *buffer, size_t size,</div><div class='del'>-        size_t *size_read);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * This structure holds information about a potential simple key.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct yaml_simple_key_s {</div><div class='del'>-    /** Is a simple key possible? */</div><div class='del'>-    int possible;</div><div class='del'>-</div><div class='del'>-    /** Is a simple key required? */</div><div class='del'>-    int required;</div><div class='del'>-</div><div class='del'>-    /** The number of the token. */</div><div class='del'>-    size_t token_number;</div><div class='del'>-</div><div class='del'>-    /** The position mark. */</div><div class='del'>-    yaml_mark_t mark;</div><div class='del'>-} yaml_simple_key_t;</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * The states of the parser.</div><div class='del'>- */</div><div class='del'>-typedef enum yaml_parser_state_e {</div><div class='del'>-    /** Expect STREAM-START. */</div><div class='del'>-    YAML_PARSE_STREAM_START_STATE,</div><div class='del'>-    /** Expect the beginning of an implicit document. */</div><div class='del'>-    YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE,</div><div class='del'>-    /** Expect DOCUMENT-START. */</div><div class='del'>-    YAML_PARSE_DOCUMENT_START_STATE,</div><div class='del'>-    /** Expect the content of a document. */</div><div class='del'>-    YAML_PARSE_DOCUMENT_CONTENT_STATE,</div><div class='del'>-    /** Expect DOCUMENT-END. */</div><div class='del'>-    YAML_PARSE_DOCUMENT_END_STATE,</div><div class='del'>-    /** Expect a block node. */</div><div class='del'>-    YAML_PARSE_BLOCK_NODE_STATE,</div><div class='del'>-    /** Expect a block node or indentless sequence. */</div><div class='del'>-    YAML_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE,</div><div class='del'>-    /** Expect a flow node. */</div><div class='del'>-    YAML_PARSE_FLOW_NODE_STATE,</div><div class='del'>-    /** Expect the first entry of a block sequence. */</div><div class='del'>-    YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE,</div><div class='del'>-    /** Expect an entry of a block sequence. */</div><div class='del'>-    YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE,</div><div class='del'>-    /** Expect an entry of an indentless sequence. */</div><div class='del'>-    YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE,</div><div class='del'>-    /** Expect the first key of a block mapping. */</div><div class='del'>-    YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE,</div><div class='del'>-    /** Expect a block mapping key. */</div><div class='del'>-    YAML_PARSE_BLOCK_MAPPING_KEY_STATE,</div><div class='del'>-    /** Expect a block mapping value. */</div><div class='del'>-    YAML_PARSE_BLOCK_MAPPING_VALUE_STATE,</div><div class='del'>-    /** Expect the first entry of a flow sequence. */</div><div class='del'>-    YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE,</div><div class='del'>-    /** Expect an entry of a flow sequence. */</div><div class='del'>-    YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE,</div><div class='del'>-    /** Expect a key of an ordered mapping. */</div><div class='del'>-    YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE,</div><div class='del'>-    /** Expect a value of an ordered mapping. */</div><div class='del'>-    YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE,</div><div class='del'>-    /** Expect the and of an ordered mapping entry. */</div><div class='del'>-    YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE,</div><div class='del'>-    /** Expect the first key of a flow mapping. */</div><div class='del'>-    YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE,</div><div class='del'>-    /** Expect a key of a flow mapping. */</div><div class='del'>-    YAML_PARSE_FLOW_MAPPING_KEY_STATE,</div><div class='del'>-    /** Expect a value of a flow mapping. */</div><div class='del'>-    YAML_PARSE_FLOW_MAPPING_VALUE_STATE,</div><div class='del'>-    /** Expect an empty value of a flow mapping. */</div><div class='del'>-    YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE,</div><div class='del'>-    /** Expect nothing. */</div><div class='del'>-    YAML_PARSE_END_STATE</div><div class='del'>-} yaml_parser_state_t;</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * This structure holds aliases data.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct yaml_alias_data_s {</div><div class='del'>-    /** The anchor. */</div><div class='del'>-    yaml_char_t *anchor;</div><div class='del'>-    /** The node id. */</div><div class='del'>-    int index;</div><div class='del'>-    /** The anchor mark. */</div><div class='del'>-    yaml_mark_t mark;</div><div class='del'>-} yaml_alias_data_t;</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * The parser structure.</div><div class='del'>- *</div><div class='del'>- * All members are internal.  Manage the structure using the @c yaml_parser_</div><div class='del'>- * family of functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct yaml_parser_s {</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @name Error handling</div><div class='del'>-     * @{</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /** Error type. */</div><div class='del'>-    yaml_error_type_t error;</div><div class='del'>-    /** Error description. */</div><div class='del'>-    const char *problem;</div><div class='del'>-    /** The byte about which the problem occurred. */</div><div class='del'>-    size_t problem_offset;</div><div class='del'>-    /** The problematic value (@c -1 is none). */</div><div class='del'>-    int problem_value;</div><div class='del'>-    /** The problem position. */</div><div class='del'>-    yaml_mark_t problem_mark;</div><div class='del'>-    /** The error context. */</div><div class='del'>-    const char *context;</div><div class='del'>-    /** The context position. */</div><div class='del'>-    yaml_mark_t context_mark;</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @}</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @name Reader stuff</div><div class='del'>-     * @{</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /** Read handler. */</div><div class='del'>-    yaml_read_handler_t *read_handler;</div><div class='del'>-</div><div class='del'>-    /** A pointer for passing to the read handler. */</div><div class='del'>-    void *read_handler_data;</div><div class='del'>-</div><div class='del'>-    /** Standard (string or file) input data. */</div><div class='del'>-    union {</div><div class='del'>-        /** String input data. */</div><div class='del'>-        struct {</div><div class='del'>-            /** The string start pointer. */</div><div class='del'>-            const unsigned char *start;</div><div class='del'>-            /** The string end pointer. */</div><div class='del'>-            const unsigned char *end;</div><div class='del'>-            /** The string current position. */</div><div class='del'>-            const unsigned char *current;</div><div class='del'>-        } string;</div><div class='del'>-</div><div class='del'>-        /** File input data. */</div><div class='del'>-        FILE *file;</div><div class='del'>-    } input;</div><div class='del'>-</div><div class='del'>-    /** EOF flag */</div><div class='del'>-    int eof;</div><div class='del'>-</div><div class='del'>-    /** The working buffer. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the buffer. */</div><div class='del'>-        yaml_char_t *start;</div><div class='del'>-        /** The end of the buffer. */</div><div class='del'>-        yaml_char_t *end;</div><div class='del'>-        /** The current position of the buffer. */</div><div class='del'>-        yaml_char_t *pointer;</div><div class='del'>-        /** The last filled position of the buffer. */</div><div class='del'>-        yaml_char_t *last;</div><div class='del'>-    } buffer;</div><div class='del'>-</div><div class='del'>-    /* The number of unread characters in the buffer. */</div><div class='del'>-    size_t unread;</div><div class='del'>-</div><div class='del'>-    /** The raw buffer. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the buffer. */</div><div class='del'>-        unsigned char *start;</div><div class='del'>-        /** The end of the buffer. */</div><div class='del'>-        unsigned char *end;</div><div class='del'>-        /** The current position of the buffer. */</div><div class='del'>-        unsigned char *pointer;</div><div class='del'>-        /** The last filled position of the buffer. */</div><div class='del'>-        unsigned char *last;</div><div class='del'>-    } raw_buffer;</div><div class='del'>-</div><div class='del'>-    /** The input encoding. */</div><div class='del'>-    yaml_encoding_t encoding;</div><div class='del'>-</div><div class='del'>-    /** The offset of the current position (in bytes). */</div><div class='del'>-    size_t offset;</div><div class='del'>-</div><div class='del'>-    /** The mark of the current position. */</div><div class='del'>-    yaml_mark_t mark;</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @}</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @name Scanner stuff</div><div class='del'>-     * @{</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /** Have we started to scan the input stream? */</div><div class='del'>-    int stream_start_produced;</div><div class='del'>-</div><div class='del'>-    /** Have we reached the end of the input stream? */</div><div class='del'>-    int stream_end_produced;</div><div class='del'>-</div><div class='del'>-    /** The number of unclosed '[' and '{' indicators. */</div><div class='del'>-    int flow_level;</div><div class='del'>-</div><div class='del'>-    /** The tokens queue. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the tokens queue. */</div><div class='del'>-        yaml_token_t *start;</div><div class='del'>-        /** The end of the tokens queue. */</div><div class='del'>-        yaml_token_t *end;</div><div class='del'>-        /** The head of the tokens queue. */</div><div class='del'>-        yaml_token_t *head;</div><div class='del'>-        /** The tail of the tokens queue. */</div><div class='del'>-        yaml_token_t *tail;</div><div class='del'>-    } tokens;</div><div class='del'>-</div><div class='del'>-    /** The number of tokens fetched from the queue. */</div><div class='del'>-    size_t tokens_parsed;</div><div class='del'>-</div><div class='del'>-    /* Does the tokens queue contain a token ready for dequeueing. */</div><div class='del'>-    int token_available;</div><div class='del'>-</div><div class='del'>-    /** The indentation levels stack. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the stack. */</div><div class='del'>-        int *start;</div><div class='del'>-        /** The end of the stack. */</div><div class='del'>-        int *end;</div><div class='del'>-        /** The top of the stack. */</div><div class='del'>-        int *top;</div><div class='del'>-    } indents;</div><div class='del'>-</div><div class='del'>-    /** The current indentation level. */</div><div class='del'>-    int indent;</div><div class='del'>-</div><div class='del'>-    /** May a simple key occur at the current position? */</div><div class='del'>-    int simple_key_allowed;</div><div class='del'>-</div><div class='del'>-    /** The stack of simple keys. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the stack. */</div><div class='del'>-        yaml_simple_key_t *start;</div><div class='del'>-        /** The end of the stack. */</div><div class='del'>-        yaml_simple_key_t *end;</div><div class='del'>-        /** The top of the stack. */</div><div class='del'>-        yaml_simple_key_t *top;</div><div class='del'>-    } simple_keys;</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @}</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @name Parser stuff</div><div class='del'>-     * @{</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /** The parser states stack. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the stack. */</div><div class='del'>-        yaml_parser_state_t *start;</div><div class='del'>-        /** The end of the stack. */</div><div class='del'>-        yaml_parser_state_t *end;</div><div class='del'>-        /** The top of the stack. */</div><div class='del'>-        yaml_parser_state_t *top;</div><div class='del'>-    } states;</div><div class='del'>-</div><div class='del'>-    /** The current parser state. */</div><div class='del'>-    yaml_parser_state_t state;</div><div class='del'>-</div><div class='del'>-    /** The stack of marks. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the stack. */</div><div class='del'>-        yaml_mark_t *start;</div><div class='del'>-        /** The end of the stack. */</div><div class='del'>-        yaml_mark_t *end;</div><div class='del'>-        /** The top of the stack. */</div><div class='del'>-        yaml_mark_t *top;</div><div class='del'>-    } marks;</div><div class='del'>-</div><div class='del'>-    /** The list of TAG directives. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the list. */</div><div class='del'>-        yaml_tag_directive_t *start;</div><div class='del'>-        /** The end of the list. */</div><div class='del'>-        yaml_tag_directive_t *end;</div><div class='del'>-        /** The top of the list. */</div><div class='del'>-        yaml_tag_directive_t *top;</div><div class='del'>-    } tag_directives;</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @}</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @name Dumper stuff</div><div class='del'>-     * @{</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /** The alias data. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the list. */</div><div class='del'>-        yaml_alias_data_t *start;</div><div class='del'>-        /** The end of the list. */</div><div class='del'>-        yaml_alias_data_t *end;</div><div class='del'>-        /** The top of the list. */</div><div class='del'>-        yaml_alias_data_t *top;</div><div class='del'>-    } aliases;</div><div class='del'>-</div><div class='del'>-    /** The currently parsed document. */</div><div class='del'>-    yaml_document_t *document;</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @}</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-} yaml_parser_t;</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Initialize a parser.</div><div class='del'>- *</div><div class='del'>- * This function creates a new parser object.  An application is responsible</div><div class='del'>- * for destroying the object using the yaml_parser_delete() function.</div><div class='del'>- *</div><div class='del'>- * @param[out]      parser  An empty parser object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_initialize(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Destroy a parser.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   parser  A parser object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_parser_delete(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set a string input.</div><div class='del'>- *</div><div class='del'>- * Note that the @a input pointer must be valid while the @a parser object</div><div class='del'>- * exists.  The application is responsible for destroing @a input after</div><div class='del'>- * destroying the @a parser.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   parser  A parser object.</div><div class='del'>- * @param[in]       input   A source data.</div><div class='del'>- * @param[in]       size    The length of the source data in bytes.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_parser_set_input_string(yaml_parser_t *parser,</div><div class='del'>-        const unsigned char *input, size_t size);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set a file input.</div><div class='del'>- *</div><div class='del'>- * @a file should be a file object open for reading.  The application is</div><div class='del'>- * responsible for closing the @a file.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   parser  A parser object.</div><div class='del'>- * @param[in]       file    An open file.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_parser_set_input_file(yaml_parser_t *parser, FILE *file);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set a generic input handler.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   parser  A parser object.</div><div class='del'>- * @param[in]       handler A read handler.</div><div class='del'>- * @param[in]       data    Any application data for passing to the read</div><div class='del'>- *                          handler.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_parser_set_input(yaml_parser_t *parser,</div><div class='del'>-        yaml_read_handler_t *handler, void *data);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set the source encoding.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   parser      A parser object.</div><div class='del'>- * @param[in]       encoding    The source encoding.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_parser_set_encoding(yaml_parser_t *parser, yaml_encoding_t encoding);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Scan the input stream and produce the next token.</div><div class='del'>- *</div><div class='del'>- * Call the function subsequently to produce a sequence of tokens corresponding</div><div class='del'>- * to the input stream.  The initial token has the type</div><div class='del'>- * @c YAML_STREAM_START_TOKEN while the ending token has the type</div><div class='del'>- * @c YAML_STREAM_END_TOKEN.</div><div class='del'>- *</div><div class='del'>- * An application is responsible for freeing any buffers associated with the</div><div class='del'>- * produced token object using the @c yaml_token_delete function.</div><div class='del'>- *</div><div class='del'>- * An application must not alternate the calls of yaml_parser_scan() with the</div><div class='del'>- * calls of yaml_parser_parse() or yaml_parser_load(). Doing this will break</div><div class='del'>- * the parser.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   parser      A parser object.</div><div class='del'>- * @param[out]      token       An empty token object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_scan(yaml_parser_t *parser, yaml_token_t *token);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Parse the input stream and produce the next parsing event.</div><div class='del'>- *</div><div class='del'>- * Call the function subsequently to produce a sequence of events corresponding</div><div class='del'>- * to the input stream.  The initial event has the type</div><div class='del'>- * @c YAML_STREAM_START_EVENT while the ending event has the type</div><div class='del'>- * @c YAML_STREAM_END_EVENT.</div><div class='del'>- *</div><div class='del'>- * An application is responsible for freeing any buffers associated with the</div><div class='del'>- * produced event object using the yaml_event_delete() function.</div><div class='del'>- *</div><div class='del'>- * An application must not alternate the calls of yaml_parser_parse() with the</div><div class='del'>- * calls of yaml_parser_scan() or yaml_parser_load(). Doing this will break the</div><div class='del'>- * parser.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   parser      A parser object.</div><div class='del'>- * @param[out]      event       An empty event object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_parse(yaml_parser_t *parser, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Parse the input stream and produce the next YAML document.</div><div class='del'>- *</div><div class='del'>- * Call this function subsequently to produce a sequence of documents</div><div class='del'>- * constituting the input stream.</div><div class='del'>- *</div><div class='del'>- * If the produced document has no root node, it means that the document</div><div class='del'>- * end has been reached.</div><div class='del'>- *</div><div class='del'>- * An application is responsible for freeing any data associated with the</div><div class='del'>- * produced document object using the yaml_document_delete() function.</div><div class='del'>- *</div><div class='del'>- * An application must not alternate the calls of yaml_parser_load() with the</div><div class='del'>- * calls of yaml_parser_scan() or yaml_parser_parse(). Doing this will break</div><div class='del'>- * the parser.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   parser      A parser object.</div><div class='del'>- * @param[out]      document    An empty document object.</div><div class='del'>- *</div><div class='del'>- * @return @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_load(yaml_parser_t *parser, yaml_document_t *document);</div><div class='del'>-</div><div class='del'>-/** @} */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * @defgroup emitter Emitter Definitions</div><div class='del'>- * @{</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * The prototype of a write handler.</div><div class='del'>- *</div><div class='del'>- * The write handler is called when the emitter needs to flush the accumulated</div><div class='del'>- * characters to the output.  The handler should write @a size bytes of the</div><div class='del'>- * @a buffer to the output.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   data        A pointer to an application data specified by</div><div class='del'>- *                              yaml_emitter_set_output().</div><div class='del'>- * @param[in]       buffer      The buffer with bytes to be written.</div><div class='del'>- * @param[in]       size        The size of the buffer.</div><div class='del'>- *</div><div class='del'>- * @returns On success, the handler should return @c 1.  If the handler failed,</div><div class='del'>- * the returned value should be @c 0.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef int yaml_write_handler_t(void *data, unsigned char *buffer, size_t size);</div><div class='del'>-</div><div class='del'>-/** The emitter states. */</div><div class='del'>-typedef enum yaml_emitter_state_e {</div><div class='del'>-    /** Expect STREAM-START. */</div><div class='del'>-    YAML_EMIT_STREAM_START_STATE,</div><div class='del'>-    /** Expect the first DOCUMENT-START or STREAM-END. */</div><div class='del'>-    YAML_EMIT_FIRST_DOCUMENT_START_STATE,</div><div class='del'>-    /** Expect DOCUMENT-START or STREAM-END. */</div><div class='del'>-    YAML_EMIT_DOCUMENT_START_STATE,</div><div class='del'>-    /** Expect the content of a document. */</div><div class='del'>-    YAML_EMIT_DOCUMENT_CONTENT_STATE,</div><div class='del'>-    /** Expect DOCUMENT-END. */</div><div class='del'>-    YAML_EMIT_DOCUMENT_END_STATE,</div><div class='del'>-    /** Expect the first item of a flow sequence. */</div><div class='del'>-    YAML_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE,</div><div class='del'>-    /** Expect an item of a flow sequence. */</div><div class='del'>-    YAML_EMIT_FLOW_SEQUENCE_ITEM_STATE,</div><div class='del'>-    /** Expect the first key of a flow mapping. */</div><div class='del'>-    YAML_EMIT_FLOW_MAPPING_FIRST_KEY_STATE,</div><div class='del'>-    /** Expect a key of a flow mapping. */</div><div class='del'>-    YAML_EMIT_FLOW_MAPPING_KEY_STATE,</div><div class='del'>-    /** Expect a value for a simple key of a flow mapping. */</div><div class='del'>-    YAML_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE,</div><div class='del'>-    /** Expect a value of a flow mapping. */</div><div class='del'>-    YAML_EMIT_FLOW_MAPPING_VALUE_STATE,</div><div class='del'>-    /** Expect the first item of a block sequence. */</div><div class='del'>-    YAML_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE,</div><div class='del'>-    /** Expect an item of a block sequence. */</div><div class='del'>-    YAML_EMIT_BLOCK_SEQUENCE_ITEM_STATE,</div><div class='del'>-    /** Expect the first key of a block mapping. */</div><div class='del'>-    YAML_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE,</div><div class='del'>-    /** Expect the key of a block mapping. */</div><div class='del'>-    YAML_EMIT_BLOCK_MAPPING_KEY_STATE,</div><div class='del'>-    /** Expect a value for a simple key of a block mapping. */</div><div class='del'>-    YAML_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE,</div><div class='del'>-    /** Expect a value of a block mapping. */</div><div class='del'>-    YAML_EMIT_BLOCK_MAPPING_VALUE_STATE,</div><div class='del'>-    /** Expect nothing. */</div><div class='del'>-    YAML_EMIT_END_STATE</div><div class='del'>-} yaml_emitter_state_t;</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * The emitter structure.</div><div class='del'>- *</div><div class='del'>- * All members are internal.  Manage the structure using the @c yaml_emitter_</div><div class='del'>- * family of functions.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct yaml_emitter_s {</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @name Error handling</div><div class='del'>-     * @{</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /** Error type. */</div><div class='del'>-    yaml_error_type_t error;</div><div class='del'>-    /** Error description. */</div><div class='del'>-    const char *problem;</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @}</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @name Writer stuff</div><div class='del'>-     * @{</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /** Write handler. */</div><div class='del'>-    yaml_write_handler_t *write_handler;</div><div class='del'>-</div><div class='del'>-    /** A pointer for passing to the white handler. */</div><div class='del'>-    void *write_handler_data;</div><div class='del'>-</div><div class='del'>-    /** Standard (string or file) output data. */</div><div class='del'>-    union {</div><div class='del'>-        /** String output data. */</div><div class='del'>-        struct {</div><div class='del'>-            /** The buffer pointer. */</div><div class='del'>-            unsigned char *buffer;</div><div class='del'>-            /** The buffer size. */</div><div class='del'>-            size_t size;</div><div class='del'>-            /** The number of written bytes. */</div><div class='del'>-            size_t *size_written;</div><div class='del'>-        } string;</div><div class='del'>-</div><div class='del'>-        /** File output data. */</div><div class='del'>-        FILE *file;</div><div class='del'>-    } output;</div><div class='del'>-</div><div class='del'>-    /** The working buffer. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the buffer. */</div><div class='del'>-        yaml_char_t *start;</div><div class='del'>-        /** The end of the buffer. */</div><div class='del'>-        yaml_char_t *end;</div><div class='del'>-        /** The current position of the buffer. */</div><div class='del'>-        yaml_char_t *pointer;</div><div class='del'>-        /** The last filled position of the buffer. */</div><div class='del'>-        yaml_char_t *last;</div><div class='del'>-    } buffer;</div><div class='del'>-</div><div class='del'>-    /** The raw buffer. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the buffer. */</div><div class='del'>-        unsigned char *start;</div><div class='del'>-        /** The end of the buffer. */</div><div class='del'>-        unsigned char *end;</div><div class='del'>-        /** The current position of the buffer. */</div><div class='del'>-        unsigned char *pointer;</div><div class='del'>-        /** The last filled position of the buffer. */</div><div class='del'>-        unsigned char *last;</div><div class='del'>-    } raw_buffer;</div><div class='del'>-</div><div class='del'>-    /** The stream encoding. */</div><div class='del'>-    yaml_encoding_t encoding;</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @}</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @name Emitter stuff</div><div class='del'>-     * @{</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /** If the output is in the canonical style? */</div><div class='del'>-    int canonical;</div><div class='del'>-    /** The number of indentation spaces. */</div><div class='del'>-    int best_indent;</div><div class='del'>-    /** The preferred width of the output lines. */</div><div class='del'>-    int best_width;</div><div class='del'>-    /** Allow unescaped non-ASCII characters? */</div><div class='del'>-    int unicode;</div><div class='del'>-    /** The preferred line break. */</div><div class='del'>-    yaml_break_t line_break;</div><div class='del'>-</div><div class='del'>-    /** The stack of states. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the stack. */</div><div class='del'>-        yaml_emitter_state_t *start;</div><div class='del'>-        /** The end of the stack. */</div><div class='del'>-        yaml_emitter_state_t *end;</div><div class='del'>-        /** The top of the stack. */</div><div class='del'>-        yaml_emitter_state_t *top;</div><div class='del'>-    } states;</div><div class='del'>-</div><div class='del'>-    /** The current emitter state. */</div><div class='del'>-    yaml_emitter_state_t state;</div><div class='del'>-</div><div class='del'>-    /** The event queue. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the event queue. */</div><div class='del'>-        yaml_event_t *start;</div><div class='del'>-        /** The end of the event queue. */</div><div class='del'>-        yaml_event_t *end;</div><div class='del'>-        /** The head of the event queue. */</div><div class='del'>-        yaml_event_t *head;</div><div class='del'>-        /** The tail of the event queue. */</div><div class='del'>-        yaml_event_t *tail;</div><div class='del'>-    } events;</div><div class='del'>-</div><div class='del'>-    /** The stack of indentation levels. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the stack. */</div><div class='del'>-        int *start;</div><div class='del'>-        /** The end of the stack. */</div><div class='del'>-        int *end;</div><div class='del'>-        /** The top of the stack. */</div><div class='del'>-        int *top;</div><div class='del'>-    } indents;</div><div class='del'>-</div><div class='del'>-    /** The list of tag directives. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The beginning of the list. */</div><div class='del'>-        yaml_tag_directive_t *start;</div><div class='del'>-        /** The end of the list. */</div><div class='del'>-        yaml_tag_directive_t *end;</div><div class='del'>-        /** The top of the list. */</div><div class='del'>-        yaml_tag_directive_t *top;</div><div class='del'>-    } tag_directives;</div><div class='del'>-</div><div class='del'>-    /** The current indentation level. */</div><div class='del'>-    int indent;</div><div class='del'>-</div><div class='del'>-    /** The current flow level. */</div><div class='del'>-    int flow_level;</div><div class='del'>-</div><div class='del'>-    /** Is it the document root context? */</div><div class='del'>-    int root_context;</div><div class='del'>-    /** Is it a sequence context? */</div><div class='del'>-    int sequence_context;</div><div class='del'>-    /** Is it a mapping context? */</div><div class='del'>-    int mapping_context;</div><div class='del'>-    /** Is it a simple mapping key context? */</div><div class='del'>-    int simple_key_context;</div><div class='del'>-</div><div class='del'>-    /** The current line. */</div><div class='del'>-    int line;</div><div class='del'>-    /** The current column. */</div><div class='del'>-    int column;</div><div class='del'>-    /** If the last character was a whitespace? */</div><div class='del'>-    int whitespace;</div><div class='del'>-    /** If the last character was an indentation character (' ', '-', '?', ':')? */</div><div class='del'>-    int indention;</div><div class='del'>-    /** If an explicit document end is required? */</div><div class='del'>-    int open_ended;</div><div class='del'>-</div><div class='del'>-    /** Anchor analysis. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The anchor value. */</div><div class='del'>-        yaml_char_t *anchor;</div><div class='del'>-        /** The anchor length. */</div><div class='del'>-        size_t anchor_length;</div><div class='del'>-        /** Is it an alias? */</div><div class='del'>-        int alias;</div><div class='del'>-    } anchor_data;</div><div class='del'>-</div><div class='del'>-    /** Tag analysis. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The tag handle. */</div><div class='del'>-        yaml_char_t *handle;</div><div class='del'>-        /** The tag handle length. */</div><div class='del'>-        size_t handle_length;</div><div class='del'>-        /** The tag suffix. */</div><div class='del'>-        yaml_char_t *suffix;</div><div class='del'>-        /** The tag suffix length. */</div><div class='del'>-        size_t suffix_length;</div><div class='del'>-    } tag_data;</div><div class='del'>-</div><div class='del'>-    /** Scalar analysis. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The scalar value. */</div><div class='del'>-        yaml_char_t *value;</div><div class='del'>-        /** The scalar length. */</div><div class='del'>-        size_t length;</div><div class='del'>-        /** Does the scalar contain line breaks? */</div><div class='del'>-        int multiline;</div><div class='del'>-        /** Can the scalar be expessed in the flow plain style? */</div><div class='del'>-        int flow_plain_allowed;</div><div class='del'>-        /** Can the scalar be expressed in the block plain style? */</div><div class='del'>-        int block_plain_allowed;</div><div class='del'>-        /** Can the scalar be expressed in the single quoted style? */</div><div class='del'>-        int single_quoted_allowed;</div><div class='del'>-        /** Can the scalar be expressed in the literal or folded styles? */</div><div class='del'>-        int block_allowed;</div><div class='del'>-        /** The output style. */</div><div class='del'>-        yaml_scalar_style_t style;</div><div class='del'>-    } scalar_data;</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @}</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @name Dumper stuff</div><div class='del'>-     * @{</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-    /** If the stream was already opened? */</div><div class='del'>-    int opened;</div><div class='del'>-    /** If the stream was already closed? */</div><div class='del'>-    int closed;</div><div class='del'>-</div><div class='del'>-    /** The information associated with the document nodes. */</div><div class='del'>-    struct {</div><div class='del'>-        /** The number of references. */</div><div class='del'>-        int references;</div><div class='del'>-        /** The anchor id. */</div><div class='del'>-        int anchor;</div><div class='del'>-        /** If the node has been emitted? */</div><div class='del'>-        int serialized;</div><div class='del'>-    } *anchors;</div><div class='del'>-</div><div class='del'>-    /** The last assigned anchor id. */</div><div class='del'>-    int last_anchor_id;</div><div class='del'>-</div><div class='del'>-    /** The currently emitted document. */</div><div class='del'>-    yaml_document_t *document;</div><div class='del'>-</div><div class='del'>-    /**</div><div class='del'>-     * @}</div><div class='del'>-     */</div><div class='del'>-</div><div class='del'>-} yaml_emitter_t;</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Initialize an emitter.</div><div class='del'>- *</div><div class='del'>- * This function creates a new emitter object.  An application is responsible</div><div class='del'>- * for destroying the object using the yaml_emitter_delete() function.</div><div class='del'>- *</div><div class='del'>- * @param[out]      emitter     An empty parser object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_initialize(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Destroy an emitter.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_delete(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set a string output.</div><div class='del'>- *</div><div class='del'>- * The emitter will write the output characters to the @a output buffer of the</div><div class='del'>- * size @a size.  The emitter will set @a size_written to the number of written</div><div class='del'>- * bytes.  If the buffer is smaller than required, the emitter produces the</div><div class='del'>- * YAML_WRITE_ERROR error.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter         An emitter object.</div><div class='del'>- * @param[in]       output          An output buffer.</div><div class='del'>- * @param[in]       size            The buffer size.</div><div class='del'>- * @param[in]       size_written    The pointer to save the number of written</div><div class='del'>- *                                  bytes.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_output_string(yaml_emitter_t *emitter,</div><div class='del'>-        unsigned char *output, size_t size, size_t *size_written);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set a file output.</div><div class='del'>- *</div><div class='del'>- * @a file should be a file object open for writing.  The application is</div><div class='del'>- * responsible for closing the @a file.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- * @param[in]       file        An open file.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_output_file(yaml_emitter_t *emitter, FILE *file);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set a generic output handler.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- * @param[in]       handler     A write handler.</div><div class='del'>- * @param[in]       data        Any application data for passing to the write</div><div class='del'>- *                              handler.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_output(yaml_emitter_t *emitter,</div><div class='del'>-        yaml_write_handler_t *handler, void *data);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set the output encoding.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- * @param[in]       encoding    The output encoding.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_encoding(yaml_emitter_t *emitter, yaml_encoding_t encoding);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set if the output should be in the "canonical" format as in the YAML</div><div class='del'>- * specification.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- * @param[in]       canonical   If the output is canonical.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_canonical(yaml_emitter_t *emitter, int canonical);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set the indentation increment.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- * @param[in]       indent      The indentation increment (1 &lt; . &lt; 10).</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_indent(yaml_emitter_t *emitter, int indent);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set the preferred line width. @c -1 means unlimited.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- * @param[in]       width       The preferred line width.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_width(yaml_emitter_t *emitter, int width);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set if unescaped non-ASCII characters are allowed.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- * @param[in]       unicode     If unescaped Unicode characters are allowed.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_unicode(yaml_emitter_t *emitter, int unicode);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Set the preferred line break.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- * @param[in]       line_break  The preferred line break.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_emitter_set_break(yaml_emitter_t *emitter, yaml_break_t line_break);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Emit an event.</div><div class='del'>- *</div><div class='del'>- * The event object may be generated using the yaml_parser_parse() function.</div><div class='del'>- * The emitter takes the responsibility for the event object and destroys its</div><div class='del'>- * content after it is emitted. The event object is destroyed even if the</div><div class='del'>- * function fails.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- * @param[in,out]   event       An event object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_emit(yaml_emitter_t *emitter, yaml_event_t *event);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Start a YAML stream.</div><div class='del'>- *</div><div class='del'>- * This function should be used before yaml_emitter_dump() is called.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_open(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Finish a YAML stream.</div><div class='del'>- *</div><div class='del'>- * This function should be used after yaml_emitter_dump() is called.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_close(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Emit a YAML document.</div><div class='del'>- *</div><div class='del'>- * The documen object may be generated using the yaml_parser_load() function</div><div class='del'>- * or the yaml_document_initialize() function.  The emitter takes the</div><div class='del'>- * responsibility for the document object and destoys its content after</div><div class='del'>- * it is emitted. The document object is destroyedeven if the function fails.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- * @param[in,out]   document    A document object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_dump(yaml_emitter_t *emitter, yaml_document_t *document);</div><div class='del'>-</div><div class='del'>-/**</div><div class='del'>- * Flush the accumulated characters to the output.</div><div class='del'>- *</div><div class='del'>- * @param[in,out]   emitter     An emitter object.</div><div class='del'>- *</div><div class='del'>- * @returns @c 1 if the function succeeded, @c 0 on error.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_emitter_flush(yaml_emitter_t *emitter);</div><div class='del'>-</div><div class='del'>-/** @} */</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#endif /* #ifndef YAML_H */</div><div class='del'>-</div><div class='head'>diff --git a/ext/psych/yaml/yaml_private.h b/ext/psych/yaml/yaml_private.h<br/>deleted file mode 100644<br/>index f4f244cbc8..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/psych/yaml/yaml_private.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/psych/yaml/yaml_private.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,688 +0,0 @@</div><div class='del'>-#ifdef RUBY_EXTCONF_H</div><div class='del'>-#include RUBY_EXTCONF_H</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if HAVE_CONFIG_H</div><div class='del'>-#include &lt;config.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include &lt;yaml.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;assert.h&gt;</div><div class='del'>-#include &lt;limits.h&gt;</div><div class='del'>-#include &lt;stddef.h&gt;</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Memory management.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void *)</div><div class='del'>-yaml_malloc(size_t size);</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void *)</div><div class='del'>-yaml_realloc(void *ptr, size_t size);</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(void)</div><div class='del'>-yaml_free(void *ptr);</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(yaml_char_t *)</div><div class='del'>-yaml_strdup(const yaml_char_t *);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Reader: Ensure that the buffer contains at least `length` characters.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_update_buffer(yaml_parser_t *parser, size_t length);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Scanner: Ensure that the token stack contains at least one token ready.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_parser_fetch_more_tokens(yaml_parser_t *parser);</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * The size of the input raw buffer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define INPUT_RAW_BUFFER_SIZE   16384</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * The size of the input buffer.</div><div class='del'>- *</div><div class='del'>- * It should be possible to decode the whole raw buffer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define INPUT_BUFFER_SIZE       (INPUT_RAW_BUFFER_SIZE*3)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * The size of the output buffer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define OUTPUT_BUFFER_SIZE      16384</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * The size of the output raw buffer.</div><div class='del'>- *</div><div class='del'>- * It should be possible to encode the whole output buffer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define OUTPUT_RAW_BUFFER_SIZE  (OUTPUT_BUFFER_SIZE*2+2)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * The maximum size of a YAML input file.</div><div class='del'>- * This used to be PTRDIFF_MAX, but that's not entirely portable</div><div class='del'>- * because stdint.h isn't available on all platforms.</div><div class='del'>- * It is not entirely clear why this isn't the maximum value</div><div class='del'>- * that can fit into the parser-&gt;offset field.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define MAX_FILE_SIZE (~(size_t)0 / 2)</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * The size of other stacks and queues.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define INITIAL_STACK_SIZE  16</div><div class='del'>-#define INITIAL_QUEUE_SIZE  16</div><div class='del'>-#define INITIAL_STRING_SIZE 16</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Buffer management.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define BUFFER_INIT(context,buffer,size)                                        \</div><div class='del'>-  (((buffer).start = (yaml_char_t *)yaml_malloc(size)) ?                        \</div><div class='del'>-        ((buffer).last = (buffer).pointer = (buffer).start,                     \</div><div class='del'>-         (buffer).end = (buffer).start+(size),                                  \</div><div class='del'>-         1) :                                                                   \</div><div class='del'>-        ((context)-&gt;error = YAML_MEMORY_ERROR,                                  \</div><div class='del'>-         0))</div><div class='del'>-</div><div class='del'>-#define BUFFER_DEL(context,buffer)                                              \</div><div class='del'>-    (yaml_free((buffer).start),                                                 \</div><div class='del'>-     (buffer).start = (buffer).pointer = (buffer).end = 0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * String management.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-    yaml_char_t *start;</div><div class='del'>-    yaml_char_t *end;</div><div class='del'>-    yaml_char_t *pointer;</div><div class='del'>-} yaml_string_t;</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_string_extend(yaml_char_t **start,</div><div class='del'>-        yaml_char_t **pointer, yaml_char_t **end);</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_string_join(</div><div class='del'>-        yaml_char_t **a_start, yaml_char_t **a_pointer, yaml_char_t **a_end,</div><div class='del'>-        yaml_char_t **b_start, yaml_char_t **b_pointer, yaml_char_t **b_end);</div><div class='del'>-</div><div class='del'>-#define NULL_STRING { NULL, NULL, NULL }</div><div class='del'>-</div><div class='del'>-#define STRING(string,length)   { (string), (string)+(length), (string) }</div><div class='del'>-</div><div class='del'>-#define STRING_ASSIGN(value,string,length)                                      \</div><div class='del'>-    ((value).start = (string),                                                  \</div><div class='del'>-     (value).end = (string)+(length),                                           \</div><div class='del'>-     (value).pointer = (string))</div><div class='del'>-</div><div class='del'>-#define STRING_INIT(context,string,size)                                        \</div><div class='del'>-    (((string).start = YAML_MALLOC(size)) ?                                     \</div><div class='del'>-        ((string).pointer = (string).start,                                     \</div><div class='del'>-         (string).end = (string).start+(size),                                  \</div><div class='del'>-         memset((string).start, 0, (size)),                                     \</div><div class='del'>-         1) :                                                                   \</div><div class='del'>-        ((context)-&gt;error = YAML_MEMORY_ERROR,                                  \</div><div class='del'>-         0))</div><div class='del'>-</div><div class='del'>-#define STRING_DEL(context,string)                                              \</div><div class='del'>-    (yaml_free((string).start),                                                 \</div><div class='del'>-     (string).start = (string).pointer = (string).end = 0)</div><div class='del'>-</div><div class='del'>-#define STRING_EXTEND(context,string)                                           \</div><div class='del'>-    ((((string).pointer+5 &lt; (string).end)                                       \</div><div class='del'>-        || yaml_string_extend(&amp;(string).start,                                  \</div><div class='del'>-            &amp;(string).pointer, &amp;(string).end)) ?                                \</div><div class='del'>-         1 :                                                                    \</div><div class='del'>-        ((context)-&gt;error = YAML_MEMORY_ERROR,                                  \</div><div class='del'>-         0))</div><div class='del'>-</div><div class='del'>-#define CLEAR(context,string)                                                   \</div><div class='del'>-    ((string).pointer = (string).start,                                         \</div><div class='del'>-     memset((string).start, 0, (string).end-(string).start))</div><div class='del'>-</div><div class='del'>-#define JOIN(context,string_a,string_b)                                         \</div><div class='del'>-    ((yaml_string_join(&amp;(string_a).start, &amp;(string_a).pointer,                  \</div><div class='del'>-                       &amp;(string_a).end, &amp;(string_b).start,                      \</div><div class='del'>-                       &amp;(string_b).pointer, &amp;(string_b).end)) ?                 \</div><div class='del'>-        ((string_b).pointer = (string_b).start,                                 \</div><div class='del'>-         1) :                                                                   \</div><div class='del'>-        ((context)-&gt;error = YAML_MEMORY_ERROR,                                  \</div><div class='del'>-         0))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * String check operations.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check the octet at the specified position.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define CHECK_AT(string,octet,offset)                                           \</div><div class='del'>-    ((string).pointer[offset] == (yaml_char_t)(octet))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check the current octet in the buffer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define CHECK(string,octet) CHECK_AT((string),(octet),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character at the specified position is an alphabetical</div><div class='del'>- * character, a digit, '_', or '-'.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_ALPHA_AT(string,offset)                                              \</div><div class='del'>-     (((string).pointer[offset] &gt;= (yaml_char_t) '0' &amp;&amp;                         \</div><div class='del'>-       (string).pointer[offset] &lt;= (yaml_char_t) '9') ||                        \</div><div class='del'>-      ((string).pointer[offset] &gt;= (yaml_char_t) 'A' &amp;&amp;                         \</div><div class='del'>-       (string).pointer[offset] &lt;= (yaml_char_t) 'Z') ||                        \</div><div class='del'>-      ((string).pointer[offset] &gt;= (yaml_char_t) 'a' &amp;&amp;                         \</div><div class='del'>-       (string).pointer[offset] &lt;= (yaml_char_t) 'z') ||                        \</div><div class='del'>-      (string).pointer[offset] == '_' ||                                        \</div><div class='del'>-      (string).pointer[offset] == '-')</div><div class='del'>-</div><div class='del'>-#define IS_ALPHA(string)    IS_ALPHA_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character at the specified position is a digit.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_DIGIT_AT(string,offset)                                              \</div><div class='del'>-     (((string).pointer[offset] &gt;= (yaml_char_t) '0' &amp;&amp;                         \</div><div class='del'>-       (string).pointer[offset] &lt;= (yaml_char_t) '9'))</div><div class='del'>-</div><div class='del'>-#define IS_DIGIT(string)    IS_DIGIT_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Get the value of a digit.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define AS_DIGIT_AT(string,offset)                                              \</div><div class='del'>-     ((string).pointer[offset] - (yaml_char_t) '0')</div><div class='del'>-</div><div class='del'>-#define AS_DIGIT(string)    AS_DIGIT_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character at the specified position is a hex-digit.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_HEX_AT(string,offset)                                                \</div><div class='del'>-     (((string).pointer[offset] &gt;= (yaml_char_t) '0' &amp;&amp;                         \</div><div class='del'>-       (string).pointer[offset] &lt;= (yaml_char_t) '9') ||                        \</div><div class='del'>-      ((string).pointer[offset] &gt;= (yaml_char_t) 'A' &amp;&amp;                         \</div><div class='del'>-       (string).pointer[offset] &lt;= (yaml_char_t) 'F') ||                        \</div><div class='del'>-      ((string).pointer[offset] &gt;= (yaml_char_t) 'a' &amp;&amp;                         \</div><div class='del'>-       (string).pointer[offset] &lt;= (yaml_char_t) 'f'))</div><div class='del'>-</div><div class='del'>-#define IS_HEX(string)    IS_HEX_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Get the value of a hex-digit.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define AS_HEX_AT(string,offset)                                                \</div><div class='del'>-      (((string).pointer[offset] &gt;= (yaml_char_t) 'A' &amp;&amp;                        \</div><div class='del'>-        (string).pointer[offset] &lt;= (yaml_char_t) 'F') ?                        \</div><div class='del'>-       ((string).pointer[offset] - (yaml_char_t) 'A' + 10) :                    \</div><div class='del'>-       ((string).pointer[offset] &gt;= (yaml_char_t) 'a' &amp;&amp;                        \</div><div class='del'>-        (string).pointer[offset] &lt;= (yaml_char_t) 'f') ?                        \</div><div class='del'>-       ((string).pointer[offset] - (yaml_char_t) 'a' + 10) :                    \</div><div class='del'>-       ((string).pointer[offset] - (yaml_char_t) '0'))</div><div class='del'>-</div><div class='del'>-#define AS_HEX(string)  AS_HEX_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character is ASCII.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_ASCII_AT(string,offset)                                              \</div><div class='del'>-    ((string).pointer[offset] &lt;= (yaml_char_t) '\x7F')</div><div class='del'>-</div><div class='del'>-#define IS_ASCII(string)    IS_ASCII_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character can be printed unescaped.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_PRINTABLE_AT(string,offset)                                          \</div><div class='del'>-    (((string).pointer[offset] == 0x0A)         /* . == #x0A */                 \</div><div class='del'>-     || ((string).pointer[offset] &gt;= 0x20       /* #x20 &lt;= . &lt;= #x7E */         \</div><div class='del'>-         &amp;&amp; (string).pointer[offset] &lt;= 0x7E)                                   \</div><div class='del'>-     || ((string).pointer[offset] == 0xC2       /* #0xA0 &lt;= . &lt;= #xD7FF */      \</div><div class='del'>-         &amp;&amp; (string).pointer[offset+1] &gt;= 0xA0)                                 \</div><div class='del'>-     || ((string).pointer[offset] &gt; 0xC2                                        \</div><div class='del'>-         &amp;&amp; (string).pointer[offset] &lt; 0xED)                                    \</div><div class='del'>-     || ((string).pointer[offset] == 0xED                                       \</div><div class='del'>-         &amp;&amp; (string).pointer[offset+1] &lt; 0xA0)                                  \</div><div class='del'>-     || ((string).pointer[offset] == 0xEE)                                      \</div><div class='del'>-     || ((string).pointer[offset] == 0xEF      /* #xE000 &lt;= . &lt;= #xFFFD */      \</div><div class='del'>-         &amp;&amp; !((string).pointer[offset+1] == 0xBB        /* &amp;&amp; . != #xFEFF */    \</div><div class='del'>-             &amp;&amp; (string).pointer[offset+2] == 0xBF)                             \</div><div class='del'>-         &amp;&amp; !((string).pointer[offset+1] == 0xBF                                \</div><div class='del'>-             &amp;&amp; ((string).pointer[offset+2] == 0xBE                             \</div><div class='del'>-                 || (string).pointer[offset+2] == 0xBF))))</div><div class='del'>-</div><div class='del'>-#define IS_PRINTABLE(string)    IS_PRINTABLE_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character at the specified position is NUL.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_Z_AT(string,offset)    CHECK_AT((string),'\0',(offset))</div><div class='del'>-</div><div class='del'>-#define IS_Z(string)    IS_Z_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character at the specified position is BOM.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_BOM_AT(string,offset)                                                \</div><div class='del'>-     (CHECK_AT((string),'\xEF',(offset))                                        \</div><div class='del'>-      &amp;&amp; CHECK_AT((string),'\xBB',(offset)+1)                                   \</div><div class='del'>-      &amp;&amp; CHECK_AT((string),'\xBF',(offset)+2))  /* BOM (#xFEFF) */</div><div class='del'>-</div><div class='del'>-#define IS_BOM(string)  IS_BOM_AT(string,0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character at the specified position is space.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_SPACE_AT(string,offset)  CHECK_AT((string),' ',(offset))</div><div class='del'>-</div><div class='del'>-#define IS_SPACE(string)    IS_SPACE_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character at the specified position is tab.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_TAB_AT(string,offset)    CHECK_AT((string),'\t',(offset))</div><div class='del'>-</div><div class='del'>-#define IS_TAB(string)  IS_TAB_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character at the specified position is blank (space or tab).</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_BLANK_AT(string,offset)                                              \</div><div class='del'>-    (IS_SPACE_AT((string),(offset)) || IS_TAB_AT((string),(offset)))</div><div class='del'>-</div><div class='del'>-#define IS_BLANK(string)    IS_BLANK_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character at the specified position is a line break.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_BREAK_AT(string,offset)                                              \</div><div class='del'>-    (CHECK_AT((string),'\r',(offset))               /* CR (#xD)*/               \</div><div class='del'>-     || CHECK_AT((string),'\n',(offset))            /* LF (#xA) */              \</div><div class='del'>-     || (CHECK_AT((string),'\xC2',(offset))                                     \</div><div class='del'>-         &amp;&amp; CHECK_AT((string),'\x85',(offset)+1))   /* NEL (#x85) */            \</div><div class='del'>-     || (CHECK_AT((string),'\xE2',(offset))                                     \</div><div class='del'>-         &amp;&amp; CHECK_AT((string),'\x80',(offset)+1)                                \</div><div class='del'>-         &amp;&amp; CHECK_AT((string),'\xA8',(offset)+2))   /* LS (#x2028) */           \</div><div class='del'>-     || (CHECK_AT((string),'\xE2',(offset))                                     \</div><div class='del'>-         &amp;&amp; CHECK_AT((string),'\x80',(offset)+1)                                \</div><div class='del'>-         &amp;&amp; CHECK_AT((string),'\xA9',(offset)+2)))  /* PS (#x2029) */</div><div class='del'>-</div><div class='del'>-#define IS_BREAK(string)    IS_BREAK_AT((string),0)</div><div class='del'>-</div><div class='del'>-#define IS_CRLF_AT(string,offset)                                               \</div><div class='del'>-     (CHECK_AT((string),'\r',(offset)) &amp;&amp; CHECK_AT((string),'\n',(offset)+1))</div><div class='del'>-</div><div class='del'>-#define IS_CRLF(string) IS_CRLF_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character is a line break or NUL.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_BREAKZ_AT(string,offset)                                             \</div><div class='del'>-    (IS_BREAK_AT((string),(offset)) || IS_Z_AT((string),(offset)))</div><div class='del'>-</div><div class='del'>-#define IS_BREAKZ(string)   IS_BREAKZ_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character is a line break, space, or NUL.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_SPACEZ_AT(string,offset)                                             \</div><div class='del'>-    (IS_SPACE_AT((string),(offset)) || IS_BREAKZ_AT((string),(offset)))</div><div class='del'>-</div><div class='del'>-#define IS_SPACEZ(string)   IS_SPACEZ_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Check if the character is a line break, space, tab, or NUL.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define IS_BLANKZ_AT(string,offset)                                             \</div><div class='del'>-    (IS_BLANK_AT((string),(offset)) || IS_BREAKZ_AT((string),(offset)))</div><div class='del'>-</div><div class='del'>-#define IS_BLANKZ(string)   IS_BLANKZ_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Determine the width of the character.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define WIDTH_AT(string,offset)                                                 \</div><div class='del'>-     (((string).pointer[offset] &amp; 0x80) == 0x00 ? 1 :                           \</div><div class='del'>-      ((string).pointer[offset] &amp; 0xE0) == 0xC0 ? 2 :                           \</div><div class='del'>-      ((string).pointer[offset] &amp; 0xF0) == 0xE0 ? 3 :                           \</div><div class='del'>-      ((string).pointer[offset] &amp; 0xF8) == 0xF0 ? 4 : 0)</div><div class='del'>-</div><div class='del'>-#define WIDTH(string)   WIDTH_AT((string),0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Move the string pointer to the next character.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define MOVE(string)    ((string).pointer += WIDTH((string)))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Copy a character and move the pointers of both strings.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define COPY(string_a,string_b)                                                 \</div><div class='del'>-    ((*(string_b).pointer &amp; 0x80) == 0x00 ?                                     \</div><div class='del'>-     (*((string_a).pointer++) = *((string_b).pointer++)) :                      \</div><div class='del'>-     (*(string_b).pointer &amp; 0xE0) == 0xC0 ?                                     \</div><div class='del'>-     (*((string_a).pointer++) = *((string_b).pointer++),                        \</div><div class='del'>-      *((string_a).pointer++) = *((string_b).pointer++)) :                      \</div><div class='del'>-     (*(string_b).pointer &amp; 0xF0) == 0xE0 ?                                     \</div><div class='del'>-     (*((string_a).pointer++) = *((string_b).pointer++),                        \</div><div class='del'>-      *((string_a).pointer++) = *((string_b).pointer++),                        \</div><div class='del'>-      *((string_a).pointer++) = *((string_b).pointer++)) :                      \</div><div class='del'>-     (*(string_b).pointer &amp; 0xF8) == 0xF0 ?                                     \</div><div class='del'>-     (*((string_a).pointer++) = *((string_b).pointer++),                        \</div><div class='del'>-      *((string_a).pointer++) = *((string_b).pointer++),                        \</div><div class='del'>-      *((string_a).pointer++) = *((string_b).pointer++),                        \</div><div class='del'>-      *((string_a).pointer++) = *((string_b).pointer++)) : 0)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Stack and queue management.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_stack_extend(void **start, void **top, void **end);</div><div class='del'>-</div><div class='del'>-YAML_DECLARE(int)</div><div class='del'>-yaml_queue_extend(void **start, void **head, void **tail, void **end);</div><div class='del'>-</div><div class='del'>-#define STACK_INIT(context,stack,type)                                     \</div><div class='del'>-  (((stack).start = (type)yaml_malloc(INITIAL_STACK_SIZE*sizeof(*(stack).start))) ? \</div><div class='del'>-        ((stack).top = (stack).start,                                           \</div><div class='del'>-         (stack).end = (stack).start+INITIAL_STACK_SIZE,                        \</div><div class='del'>-         1) :                                                                   \</div><div class='del'>-        ((context)-&gt;error = YAML_MEMORY_ERROR,                                  \</div><div class='del'>-         0))</div><div class='del'>-</div><div class='del'>-#define STACK_DEL(context,stack)                                                \</div><div class='del'>-    (yaml_free((stack).start),                                                  \</div><div class='del'>-     (stack).start = (stack).top = (stack).end = 0)</div><div class='del'>-</div><div class='del'>-#define STACK_EMPTY(context,stack)                                              \</div><div class='del'>-    ((stack).start == (stack).top)</div><div class='del'>-</div><div class='del'>-#define STACK_LIMIT(context,stack,size)                                         \</div><div class='del'>-    ((stack).top - (stack).start &lt; (size) ?                                     \</div><div class='del'>-        1 :                                                                     \</div><div class='del'>-        ((context)-&gt;error = YAML_MEMORY_ERROR,                                  \</div><div class='del'>-         0))</div><div class='del'>-</div><div class='del'>-#define PUSH(context,stack,value)                                               \</div><div class='del'>-    (((stack).top != (stack).end                                                \</div><div class='del'>-      || yaml_stack_extend((void **)&amp;(stack).start,                             \</div><div class='del'>-              (void **)&amp;(stack).top, (void **)&amp;(stack).end)) ?                  \</div><div class='del'>-        (*((stack).top++) = value,                                              \</div><div class='del'>-         1) :                                                                   \</div><div class='del'>-        ((context)-&gt;error = YAML_MEMORY_ERROR,                                  \</div><div class='del'>-         0))</div><div class='del'>-</div><div class='del'>-#define POP(context,stack)                                                      \</div><div class='del'>-    (*(--(stack).top))</div><div class='del'>-</div><div class='del'>-#define QUEUE_INIT(context,queue,size,type)                                     \</div><div class='del'>-  (((queue).start = (type)yaml_malloc((size)*sizeof(*(queue).start))) ?         \</div><div class='del'>-        ((queue).head = (queue).tail = (queue).start,                           \</div><div class='del'>-         (queue).end = (queue).start+(size),                                    \</div><div class='del'>-         1) :                                                                   \</div><div class='del'>-        ((context)-&gt;error = YAML_MEMORY_ERROR,                                  \</div><div class='del'>-         0))</div><div class='del'>-</div><div class='del'>-#define QUEUE_DEL(context,queue)                                                \</div><div class='del'>-    (yaml_free((queue).start),                                                  \</div><div class='del'>-     (queue).start = (queue).head = (queue).tail = (queue).end = 0)</div><div class='del'>-</div><div class='del'>-#define QUEUE_EMPTY(context,queue)                                              \</div><div class='del'>-    ((queue).head == (queue).tail)</div><div class='del'>-</div><div class='del'>-#define ENQUEUE(context,queue,value)                                            \</div><div class='del'>-    (((queue).tail != (queue).end                                               \</div><div class='del'>-      || yaml_queue_extend((void **)&amp;(queue).start, (void **)&amp;(queue).head,     \</div><div class='del'>-            (void **)&amp;(queue).tail, (void **)&amp;(queue).end)) ?                   \</div><div class='del'>-        (*((queue).tail++) = value,                                             \</div><div class='del'>-         1) :                                                                   \</div><div class='del'>-        ((context)-&gt;error = YAML_MEMORY_ERROR,                                  \</div><div class='del'>-         0))</div><div class='del'>-</div><div class='del'>-#define DEQUEUE(context,queue)                                                  \</div><div class='del'>-    (*((queue).head++))</div><div class='del'>-</div><div class='del'>-#define QUEUE_INSERT(context,queue,index,value)                                 \</div><div class='del'>-    (((queue).tail != (queue).end                                               \</div><div class='del'>-      || yaml_queue_extend((void **)&amp;(queue).start, (void **)&amp;(queue).head,     \</div><div class='del'>-            (void **)&amp;(queue).tail, (void **)&amp;(queue).end)) ?                   \</div><div class='del'>-        (memmove((queue).head+(index)+1,(queue).head+(index),                   \</div><div class='del'>-            ((queue).tail-(queue).head-(index))*sizeof(*(queue).start)),        \</div><div class='del'>-         *((queue).head+(index)) = value,                                       \</div><div class='del'>-         (queue).tail++,                                                        \</div><div class='del'>-         1) :                                                                   \</div><div class='del'>-        ((context)-&gt;error = YAML_MEMORY_ERROR,                                  \</div><div class='del'>-         0))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Token initializers.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define TOKEN_INIT(token,token_type,token_start_mark,token_end_mark)            \</div><div class='del'>-    (memset(&amp;(token), 0, sizeof(yaml_token_t)),                                 \</div><div class='del'>-     (token).type = (token_type),                                               \</div><div class='del'>-     (token).start_mark = (token_start_mark),                                   \</div><div class='del'>-     (token).end_mark = (token_end_mark))</div><div class='del'>-</div><div class='del'>-#define STREAM_START_TOKEN_INIT(token,token_encoding,start_mark,end_mark)       \</div><div class='del'>-    (TOKEN_INIT((token),YAML_STREAM_START_TOKEN,(start_mark),(end_mark)),       \</div><div class='del'>-     (token).data.stream_start.encoding = (token_encoding))</div><div class='del'>-</div><div class='del'>-#define STREAM_END_TOKEN_INIT(token,start_mark,end_mark)                        \</div><div class='del'>-    (TOKEN_INIT((token),YAML_STREAM_END_TOKEN,(start_mark),(end_mark)))</div><div class='del'>-</div><div class='del'>-#define ALIAS_TOKEN_INIT(token,token_value,start_mark,end_mark)                 \</div><div class='del'>-    (TOKEN_INIT((token),YAML_ALIAS_TOKEN,(start_mark),(end_mark)),              \</div><div class='del'>-     (token).data.alias.value = (token_value))</div><div class='del'>-</div><div class='del'>-#define ANCHOR_TOKEN_INIT(token,token_value,start_mark,end_mark)                \</div><div class='del'>-    (TOKEN_INIT((token),YAML_ANCHOR_TOKEN,(start_mark),(end_mark)),             \</div><div class='del'>-     (token).data.anchor.value = (token_value))</div><div class='del'>-</div><div class='del'>-#define TAG_TOKEN_INIT(token,token_handle,token_suffix,start_mark,end_mark)     \</div><div class='del'>-    (TOKEN_INIT((token),YAML_TAG_TOKEN,(start_mark),(end_mark)),                \</div><div class='del'>-     (token).data.tag.handle = (token_handle),                                  \</div><div class='del'>-     (token).data.tag.suffix = (token_suffix))</div><div class='del'>-</div><div class='del'>-#define SCALAR_TOKEN_INIT(token,token_value,token_length,token_style,start_mark,end_mark)   \</div><div class='del'>-    (TOKEN_INIT((token),YAML_SCALAR_TOKEN,(start_mark),(end_mark)),             \</div><div class='del'>-     (token).data.scalar.value = (token_value),                                 \</div><div class='del'>-     (token).data.scalar.length = (token_length),                               \</div><div class='del'>-     (token).data.scalar.style = (token_style))</div><div class='del'>-</div><div class='del'>-#define VERSION_DIRECTIVE_TOKEN_INIT(token,token_major,token_minor,start_mark,end_mark)     \</div><div class='del'>-    (TOKEN_INIT((token),YAML_VERSION_DIRECTIVE_TOKEN,(start_mark),(end_mark)),  \</div><div class='del'>-     (token).data.version_directive.major = (token_major),                      \</div><div class='del'>-     (token).data.version_directive.minor = (token_minor))</div><div class='del'>-</div><div class='del'>-#define TAG_DIRECTIVE_TOKEN_INIT(token,token_handle,token_prefix,start_mark,end_mark)       \</div><div class='del'>-    (TOKEN_INIT((token),YAML_TAG_DIRECTIVE_TOKEN,(start_mark),(end_mark)),      \</div><div class='del'>-     (token).data.tag_directive.handle = (token_handle),                        \</div><div class='del'>-     (token).data.tag_directive.prefix = (token_prefix))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Event initializers.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define EVENT_INIT(event,event_type,event_start_mark,event_end_mark)            \</div><div class='del'>-    (memset(&amp;(event), 0, sizeof(yaml_event_t)),                                 \</div><div class='del'>-     (event).type = (event_type),                                               \</div><div class='del'>-     (event).start_mark = (event_start_mark),                                   \</div><div class='del'>-     (event).end_mark = (event_end_mark))</div><div class='del'>-</div><div class='del'>-#define STREAM_START_EVENT_INIT(event,event_encoding,start_mark,end_mark)       \</div><div class='del'>-    (EVENT_INIT((event),YAML_STREAM_START_EVENT,(start_mark),(end_mark)),       \</div><div class='del'>-     (event).data.stream_start.encoding = (event_encoding))</div><div class='del'>-</div><div class='del'>-#define STREAM_END_EVENT_INIT(event,start_mark,end_mark)                        \</div><div class='del'>-    (EVENT_INIT((event),YAML_STREAM_END_EVENT,(start_mark),(end_mark)))</div><div class='del'>-</div><div class='del'>-#define DOCUMENT_START_EVENT_INIT(event,event_version_directive,                \</div><div class='del'>-        event_tag_directives_start,event_tag_directives_end,event_implicit,start_mark,end_mark) \</div><div class='del'>-    (EVENT_INIT((event),YAML_DOCUMENT_START_EVENT,(start_mark),(end_mark)),     \</div><div class='del'>-     (event).data.document_start.version_directive = (event_version_directive), \</div><div class='del'>-     (event).data.document_start.tag_directives.start = (event_tag_directives_start),   \</div><div class='del'>-     (event).data.document_start.tag_directives.end = (event_tag_directives_end),   \</div><div class='del'>-     (event).data.document_start.implicit = (event_implicit))</div><div class='del'>-</div><div class='del'>-#define DOCUMENT_END_EVENT_INIT(event,event_implicit,start_mark,end_mark)       \</div><div class='del'>-    (EVENT_INIT((event),YAML_DOCUMENT_END_EVENT,(start_mark),(end_mark)),       \</div><div class='del'>-     (event).data.document_end.implicit = (event_implicit))</div><div class='del'>-</div><div class='del'>-#define ALIAS_EVENT_INIT(event,event_anchor,start_mark,end_mark)                \</div><div class='del'>-    (EVENT_INIT((event),YAML_ALIAS_EVENT,(start_mark),(end_mark)),              \</div><div class='del'>-     (event).data.alias.anchor = (event_anchor))</div><div class='del'>-</div><div class='del'>-#define SCALAR_EVENT_INIT(event,event_anchor,event_tag,event_value,event_length,    \</div><div class='del'>-        event_plain_implicit, event_quoted_implicit,event_style,start_mark,end_mark)    \</div><div class='del'>-    (EVENT_INIT((event),YAML_SCALAR_EVENT,(start_mark),(end_mark)),             \</div><div class='del'>-     (event).data.scalar.anchor = (event_anchor),                               \</div><div class='del'>-     (event).data.scalar.tag = (event_tag),                                     \</div><div class='del'>-     (event).data.scalar.value = (event_value),                                 \</div><div class='del'>-     (event).data.scalar.length = (event_length),                               \</div><div class='del'>-     (event).data.scalar.plain_implicit = (event_plain_implicit),               \</div><div class='del'>-     (event).data.scalar.quoted_implicit = (event_quoted_implicit),             \</div><div class='del'>-     (event).data.scalar.style = (event_style))</div><div class='del'>-</div><div class='del'>-#define SEQUENCE_START_EVENT_INIT(event,event_anchor,event_tag,                 \</div><div class='del'>-        event_implicit,event_style,start_mark,end_mark)                         \</div><div class='del'>-    (EVENT_INIT((event),YAML_SEQUENCE_START_EVENT,(start_mark),(end_mark)),     \</div><div class='del'>-     (event).data.sequence_start.anchor = (event_anchor),                       \</div><div class='del'>-     (event).data.sequence_start.tag = (event_tag),                             \</div><div class='del'>-     (event).data.sequence_start.implicit = (event_implicit),                   \</div><div class='del'>-     (event).data.sequence_start.style = (event_style))</div><div class='del'>-</div><div class='del'>-#define SEQUENCE_END_EVENT_INIT(event,start_mark,end_mark)                      \</div><div class='del'>-    (EVENT_INIT((event),YAML_SEQUENCE_END_EVENT,(start_mark),(end_mark)))</div><div class='del'>-</div><div class='del'>-#define MAPPING_START_EVENT_INIT(event,event_anchor,event_tag,                  \</div><div class='del'>-        event_implicit,event_style,start_mark,end_mark)                         \</div><div class='del'>-    (EVENT_INIT((event),YAML_MAPPING_START_EVENT,(start_mark),(end_mark)),      \</div><div class='del'>-     (event).data.mapping_start.anchor = (event_anchor),                        \</div><div class='del'>-     (event).data.mapping_start.tag = (event_tag),                              \</div><div class='del'>-     (event).data.mapping_start.implicit = (event_implicit),                    \</div><div class='del'>-     (event).data.mapping_start.style = (event_style))</div><div class='del'>-</div><div class='del'>-#define MAPPING_END_EVENT_INIT(event,start_mark,end_mark)                       \</div><div class='del'>-    (EVENT_INIT((event),YAML_MAPPING_END_EVENT,(start_mark),(end_mark)))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Document initializer.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define DOCUMENT_INIT(document,document_nodes_start,document_nodes_end,         \</div><div class='del'>-        document_version_directive,document_tag_directives_start,               \</div><div class='del'>-        document_tag_directives_end,document_start_implicit,                    \</div><div class='del'>-        document_end_implicit,document_start_mark,document_end_mark)            \</div><div class='del'>-    (memset(&amp;(document), 0, sizeof(yaml_document_t)),                           \</div><div class='del'>-     (document).nodes.start = (document_nodes_start),                           \</div><div class='del'>-     (document).nodes.end = (document_nodes_end),                               \</div><div class='del'>-     (document).nodes.top = (document_nodes_start),                             \</div><div class='del'>-     (document).version_directive = (document_version_directive),               \</div><div class='del'>-     (document).tag_directives.start = (document_tag_directives_start),         \</div><div class='del'>-     (document).tag_directives.end = (document_tag_directives_end),             \</div><div class='del'>-     (document).start_implicit = (document_start_implicit),                     \</div><div class='del'>-     (document).end_implicit = (document_end_implicit),                         \</div><div class='del'>-     (document).start_mark = (document_start_mark),                             \</div><div class='del'>-     (document).end_mark = (document_end_mark))</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Node initializers.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define NODE_INIT(node,node_type,node_tag,node_start_mark,node_end_mark)        \</div><div class='del'>-    (memset(&amp;(node), 0, sizeof(yaml_node_t)),                                   \</div><div class='del'>-     (node).type = (node_type),                                                 \</div><div class='del'>-     (node).tag = (node_tag),                                                   \</div><div class='del'>-     (node).start_mark = (node_start_mark),                                     \</div><div class='del'>-     (node).end_mark = (node_end_mark))</div><div class='del'>-</div><div class='del'>-#define SCALAR_NODE_INIT(node,node_tag,node_value,node_length,                  \</div><div class='del'>-        node_style,start_mark,end_mark)                                         \</div><div class='del'>-    (NODE_INIT((node),YAML_SCALAR_NODE,(node_tag),(start_mark),(end_mark)),     \</div><div class='del'>-     (node).data.scalar.value = (node_value),                                   \</div><div class='del'>-     (node).data.scalar.length = (node_length),                                 \</div><div class='del'>-     (node).data.scalar.style = (node_style))</div><div class='del'>-</div><div class='del'>-#define SEQUENCE_NODE_INIT(node,node_tag,node_items_start,node_items_end,       \</div><div class='del'>-        node_style,start_mark,end_mark)                                         \</div><div class='del'>-    (NODE_INIT((node),YAML_SEQUENCE_NODE,(node_tag),(start_mark),(end_mark)),   \</div><div class='del'>-     (node).data.sequence.items.start = (node_items_start),                     \</div><div class='del'>-     (node).data.sequence.items.end = (node_items_end),                         \</div><div class='del'>-     (node).data.sequence.items.top = (node_items_start),                       \</div><div class='del'>-     (node).data.sequence.style = (node_style))</div><div class='del'>-</div><div class='del'>-#define MAPPING_NODE_INIT(node,node_tag,node_pairs_start,node_pairs_end,        \</div><div class='del'>-        node_style,start_mark,end_mark)                                         \</div><div class='del'>-    (NODE_INIT((node),YAML_MAPPING_NODE,(node_tag),(start_mark),(end_mark)),    \</div><div class='del'>-     (node).data.mapping.pairs.start = (node_pairs_start),                      \</div><div class='del'>-     (node).data.mapping.pairs.end = (node_pairs_end),                          \</div><div class='del'>-     (node).data.mapping.pairs.top = (node_pairs_start),                        \</div><div class='del'>-     (node).data.mapping.style = (node_style))</div><div class='del'>-</div><div class='del'>-/* Strict C compiler warning helpers */</div><div class='del'>-</div><div class='del'>-#if defined(__clang__) || defined(__GNUC__)</div><div class='del'>-#  define HASATTRIBUTE_UNUSED</div><div class='del'>-#endif</div><div class='del'>-#ifdef HASATTRIBUTE_UNUSED</div><div class='del'>-#  define __attribute__unused__             __attribute__((__unused__))</div><div class='del'>-#else</div><div class='del'>-#  define __attribute__unused__</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* Shim arguments are arguments that must be included in your function,</div><div class='del'>- * but serve no purpose inside.  Silence compiler warnings. */</div><div class='del'>-#define SHIM(a) /*@unused@*/ a __attribute__unused__</div><div class='del'>-</div><div class='del'>-/* UNUSED_PARAM() marks a shim argument in the body to silence compiler warnings */</div><div class='del'>-#ifdef __clang__</div><div class='del'>-#  define UNUSED_PARAM(a) (void)(a);</div><div class='del'>-#else</div><div class='del'>-#  define UNUSED_PARAM(a) /*@-noeffect*/if (0) (void)(a)/*@=noeffect*/;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define YAML_MALLOC_STATIC(type) (type*)yaml_malloc(sizeof(type))</div><div class='del'>-#define YAML_MALLOC(size)        (yaml_char_t *)yaml_malloc(size)</div><div class='head'>diff --git a/ext/pty/depend b/ext/pty/depend<br/>index 4f0595c99d..f251caae3f 100644<br/>--- a/<a href='/ruby.git/tree/ext/pty/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pty/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/pty/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/pty/depend</a></div><div class='hunk'>@@ -1,10 +1,169 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> pty.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> pty.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> pty.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> pty.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> pty.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> pty.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+pty.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> pty.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> pty.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> pty.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -13,7 +172,15 @@ pty.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> pty.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> pty.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> pty.o: $(hdrdir)/ruby/util.h</div><div class='del'>-pty.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> pty.o: $(top_srcdir)/internal.h</div><div class='add'>+pty.o: $(top_srcdir)/internal/array.h</div><div class='add'>+pty.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+pty.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+pty.o: $(top_srcdir)/internal/imemo.h</div><div class='add'>+pty.o: $(top_srcdir)/internal/process.h</div><div class='add'>+pty.o: $(top_srcdir)/internal/signal.h</div><div class='add'>+pty.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+pty.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+pty.o: $(top_srcdir)/shape.h</div><div class='ctx'> pty.o: pty.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/pty/extconf.rb b/ext/pty/extconf.rb<br/>index 7721a744c8..ba0c4286fd 100644<br/>--- a/<a href='/ruby.git/tree/ext/pty/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pty/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/pty/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/pty/extconf.rb</a></div><div class='hunk'>@@ -7,12 +7,14 @@ if /mswin|mingw|bccwin/ !~ RUBY_PLATFORM</div><div class='ctx'>   have_header("sys/stropts.h")</div><div class='ctx'>   have_func("setresuid")</div><div class='ctx'>   have_header("libutil.h")</div><div class='del'>-  have_header("util.h") # OpenBSD openpty</div><div class='ctx'>   have_header("pty.h")</div><div class='ctx'>   have_header("pwd.h")</div><div class='del'>-  have_library("util", "openpty")</div><div class='add'>+  if /openbsd/ =~ RUBY_PLATFORM</div><div class='add'>+    have_header("util.h") # OpenBSD openpty</div><div class='add'>+    util = have_library("util", "openpty")</div><div class='add'>+  end</div><div class='ctx'>   if have_func("posix_openpt") or</div><div class='del'>-      have_func("openpty") or</div><div class='add'>+      (util or have_func("openpty")) or</div><div class='ctx'>       have_func("_getpty") or</div><div class='ctx'>       have_func("ptsname") or</div><div class='ctx'>       have_func("ioctl")</div><div class='head'>diff --git a/ext/pty/lib/expect.rb b/ext/pty/lib/expect.rb<br/>index 5dbfa09ae9..22cbf54115 100644<br/>--- a/<a href='/ruby.git/tree/ext/pty/lib/expect.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pty/lib/expect.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/pty/lib/expect.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/pty/lib/expect.rb</a></div><div class='hunk'>@@ -1,19 +1,19 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> $expect_verbose = false</div><div class='ctx'> </div><div class='del'>-# Expect library adds the IO instance method #expect, which does similar act to</div><div class='del'>-# tcl's expect extension.</div><div class='del'>-#</div><div class='del'>-# In order to use this method, you must require expect:</div><div class='del'>-#</div><div class='del'>-#   require 'expect'</div><div class='del'>-#</div><div class='del'>-# Please see #expect for usage.</div><div class='ctx'> class IO</div><div class='ctx'>   # call-seq:</div><div class='ctx'>   #   IO#expect(pattern,timeout=9999999)                  -&gt;  Array</div><div class='ctx'>   #   IO#expect(pattern,timeout=9999999) { |result| ... } -&gt;  nil</div><div class='ctx'>   #</div><div class='add'>+  # The +expect+ library adds instance method IO#expect,</div><div class='add'>+  # which is similar to the</div><div class='add'>+  # {TCL expect extension}[https://www.tcl.tk/man/expect5.31/expect.1.html].</div><div class='add'>+  #</div><div class='add'>+  # To use this method, you must require +expect+:</div><div class='add'>+  #</div><div class='add'>+  #   require 'expect'</div><div class='add'>+  #</div><div class='ctx'>   # Reads from the IO until the given +pattern+ matches or the +timeout+ is over.</div><div class='ctx'>   #</div><div class='ctx'>   # It returns an array with the read buffer, followed by the matches.</div><div class='head'>diff --git a/ext/pty/pty.c b/ext/pty/pty.c<br/>index 10eb0ac312..acec33f9bf 100644<br/>--- a/<a href='/ruby.git/tree/ext/pty/pty.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/pty/pty.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/pty/pty.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/pty/pty.c</a></div><div class='hunk'>@@ -1,45 +1,51 @@</div><div class='del'>-#include	"ruby/config.h"</div><div class='add'>+#include "ruby/config.h"</div><div class='add'>+</div><div class='ctx'> #ifdef RUBY_EXTCONF_H</div><div class='del'>-#include RUBY_EXTCONF_H</div><div class='add'>+# include RUBY_EXTCONF_H</div><div class='ctx'> #endif</div><div class='del'>-#include	&lt;stdlib.h&gt;</div><div class='del'>-#include	&lt;stdio.h&gt;</div><div class='del'>-#include	&lt;sys/types.h&gt;</div><div class='del'>-#include	&lt;sys/stat.h&gt;</div><div class='del'>-#include	&lt;sys/file.h&gt;</div><div class='del'>-#include	&lt;fcntl.h&gt;</div><div class='del'>-#include	&lt;errno.h&gt;</div><div class='add'>+</div><div class='add'>+#include &lt;ctype.h&gt;</div><div class='add'>+#include &lt;errno.h&gt;</div><div class='add'>+#include &lt;signal.h&gt;</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+#include &lt;stdlib.h&gt;</div><div class='add'>+</div><div class='add'>+#include &lt;sys/types.h&gt;</div><div class='add'>+#include &lt;sys/stat.h&gt;</div><div class='add'>+#include &lt;sys/file.h&gt;</div><div class='add'>+#include &lt;fcntl.h&gt;</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_PWD_H</div><div class='del'>-#include	&lt;pwd.h&gt;</div><div class='add'>+# include &lt;pwd.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_SYS_IOCTL_H</div><div class='del'>-#include	&lt;sys/ioctl.h&gt;</div><div class='add'>+# include &lt;sys/ioctl.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_LIBUTIL_H</div><div class='del'>-#include	&lt;libutil.h&gt;</div><div class='add'>+# include &lt;libutil.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_UTIL_H</div><div class='del'>-#include	&lt;util.h&gt;</div><div class='add'>+# include &lt;util.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_PTY_H</div><div class='del'>-#include	&lt;pty.h&gt;</div><div class='add'>+# include &lt;pty.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #if defined(HAVE_SYS_PARAM_H)</div><div class='del'>-  /* for __FreeBSD_version */</div><div class='add'>+ /* for __FreeBSD_version */</div><div class='ctx'> # include &lt;sys/param.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_SYS_WAIT_H</div><div class='del'>-#include &lt;sys/wait.h&gt;</div><div class='add'>+# include &lt;sys/wait.h&gt;</div><div class='ctx'> #else</div><div class='del'>-#define WIFSTOPPED(status)    (((status) &amp; 0xff) == 0x7f)</div><div class='add'>+# define WIFSTOPPED(status) (((status) &amp; 0xff) == 0x7f)</div><div class='ctx'> #endif</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='ctx'> </div><div class='del'>-#include "ruby/io.h"</div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "ruby/util.h"</div><div class='del'>-</div><div class='del'>-#include &lt;signal.h&gt;</div><div class='ctx'> #ifdef HAVE_SYS_STROPTS_H</div><div class='ctx'> #include &lt;sys/stropts.h&gt;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -48,6 +54,12 @@</div><div class='ctx'> #include &lt;unistd.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/process.h"</div><div class='add'>+#include "internal/signal.h"</div><div class='add'>+#include "ruby/io.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+</div><div class='ctx'> #define	DEVICELEN	16</div><div class='ctx'> </div><div class='ctx'> #ifndef HAVE_SETEUID</div><div class='hunk'>@@ -95,8 +107,8 @@ chfunc(void *data, char *errbuf, size_t errbuf_len)</div><div class='ctx'>     int slave = carg-&gt;slave;</div><div class='ctx'> </div><div class='ctx'> #define ERROR_EXIT(str) do { \</div><div class='del'>-	strlcpy(errbuf, (str), errbuf_len); \</div><div class='del'>-	return -1; \</div><div class='add'>+        strlcpy(errbuf, (str), errbuf_len); \</div><div class='add'>+        return -1; \</div><div class='ctx'>     } while (0)</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='hunk'>@@ -154,32 +166,32 @@ chfunc(void *data, char *errbuf, size_t errbuf_len)</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> establishShell(int argc, VALUE *argv, struct pty_info *info,</div><div class='del'>-	       char SlaveName[DEVICELEN])</div><div class='add'>+               char SlaveName[DEVICELEN])</div><div class='ctx'> {</div><div class='ctx'>     int 		master, slave, status = 0;</div><div class='ctx'>     rb_pid_t		pid;</div><div class='del'>-    char		*p, *getenv();</div><div class='add'>+    char		*p;</div><div class='ctx'>     VALUE		v;</div><div class='ctx'>     struct child_info   carg;</div><div class='ctx'>     char		errbuf[32];</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	const char *shellname = "/bin/sh";</div><div class='add'>+        const char *shellname = "/bin/sh";</div><div class='ctx'> </div><div class='del'>-	if ((p = getenv("SHELL")) != NULL) {</div><div class='del'>-	    shellname = p;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='add'>+        if ((p = getenv("SHELL")) != NULL) {</div><div class='add'>+            shellname = p;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='ctx'> #if defined HAVE_PWD_H</div><div class='del'>-	    const char *username = getenv("USER");</div><div class='del'>-	    struct passwd *pwent = getpwnam(username ? username : getlogin());</div><div class='del'>-	    if (pwent &amp;&amp; pwent-&gt;pw_shell)</div><div class='del'>-		shellname = pwent-&gt;pw_shell;</div><div class='add'>+            const char *username = getenv("USER");</div><div class='add'>+            struct passwd *pwent = getpwnam(username ? username : getlogin());</div><div class='add'>+            if (pwent &amp;&amp; pwent-&gt;pw_shell)</div><div class='add'>+                shellname = pwent-&gt;pw_shell;</div><div class='ctx'> #endif</div><div class='del'>-	}</div><div class='del'>-	v = rb_str_new2(shellname);</div><div class='del'>-	argc = 1;</div><div class='del'>-	argv = &amp;v;</div><div class='add'>+        }</div><div class='add'>+        v = rb_str_new2(shellname);</div><div class='add'>+        argc = 1;</div><div class='add'>+        argv = &amp;v;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     carg.execarg_obj = rb_execarg_new(argc, argv, 1, 0);</div><div class='hunk'>@@ -195,13 +207,13 @@ establishShell(int argc, VALUE *argv, struct pty_info *info,</div><div class='ctx'>     pid = rb_fork_async_signal_safe(&amp;status, chfunc, &amp;carg, Qnil, errbuf, sizeof(errbuf));</div><div class='ctx'> </div><div class='ctx'>     if (pid &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	close(master);</div><div class='del'>-	close(slave);</div><div class='add'>+        int e = errno;</div><div class='add'>+        close(master);</div><div class='add'>+        close(slave);</div><div class='ctx'>         rb_execarg_parent_end(carg.execarg_obj);</div><div class='del'>-	errno = e;</div><div class='del'>-	if (status) rb_jump_tag(status);</div><div class='del'>-	rb_sys_fail(errbuf[0] ? errbuf : "fork failed");</div><div class='add'>+        errno = e;</div><div class='add'>+        if (status) rb_jump_tag(status);</div><div class='add'>+        rb_sys_fail(errbuf[0] ? errbuf : "fork failed");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     close(slave);</div><div class='hunk'>@@ -247,7 +259,7 @@ get_device_once(int *master, int *slave, char SlaveName[DEVICELEN], int nomesg,</div><div class='ctx'>     int masterfd = -1, slavefd = -1;</div><div class='ctx'>     char *slavedevice;</div><div class='ctx'> </div><div class='del'>-#if defined(__sun) || (defined(__FreeBSD__) &amp;&amp; __FreeBSD_version &lt; 902000)</div><div class='add'>+#if defined(__sun) || defined(__OpenBSD__) || (defined(__FreeBSD__) &amp;&amp; __FreeBSD_version &lt; 902000)</div><div class='ctx'>     /* workaround for Solaris 10: grantpt() doesn't work if FD_CLOEXEC is set.  [ruby-dev:44688] */</div><div class='ctx'>     /* FreeBSD 9.2 or later supports O_CLOEXEC</div><div class='ctx'>      * http://www.freebsd.org/cgi/query-pr.cgi?pr=162374 */</div><div class='hunk'>@@ -256,14 +268,14 @@ get_device_once(int *master, int *slave, char SlaveName[DEVICELEN], int nomesg,</div><div class='ctx'>     rb_fd_fix_cloexec(masterfd);</div><div class='ctx'> #else</div><div class='ctx'>     {</div><div class='del'>-	int flags = O_RDWR|O_NOCTTY;</div><div class='add'>+        int flags = O_RDWR|O_NOCTTY;</div><div class='ctx'> # if defined(O_CLOEXEC)</div><div class='del'>-	/* glibc posix_openpt() in GNU/Linux calls open("/dev/ptmx", flags) internally.</div><div class='del'>-	 * So version dependency on GNU/Linux is same as O_CLOEXEC with open().</div><div class='del'>-	 * O_CLOEXEC is available since Linux 2.6.23.  Linux 2.6.18 silently ignore it. */</div><div class='del'>-	flags |= O_CLOEXEC;</div><div class='add'>+        /* glibc posix_openpt() in GNU/Linux calls open("/dev/ptmx", flags) internally.</div><div class='add'>+         * So version dependency on GNU/Linux is the same as O_CLOEXEC with open().</div><div class='add'>+         * O_CLOEXEC is available since Linux 2.6.23.  Linux 2.6.18 silently ignore it. */</div><div class='add'>+        flags |= O_CLOEXEC;</div><div class='ctx'> # endif</div><div class='del'>-	if ((masterfd = posix_openpt(flags)) == -1) goto error;</div><div class='add'>+        if ((masterfd = posix_openpt(flags)) == -1) goto error;</div><div class='ctx'>     }</div><div class='ctx'>     rb_fd_fix_cloexec(masterfd);</div><div class='ctx'>     if (rb_grantpt(masterfd) == -1) goto error;</div><div class='hunk'>@@ -298,15 +310,15 @@ get_device_once(int *master, int *slave, char SlaveName[DEVICELEN], int nomesg,</div><div class='ctx'>  * or the same interface function.</div><div class='ctx'>  */</div><div class='ctx'>     if (openpty(master, slave, SlaveName,</div><div class='del'>-		(struct termios *)0, (struct winsize *)0) == -1) {</div><div class='del'>-	if (!fail) return -1;</div><div class='del'>-	rb_raise(rb_eRuntimeError, "openpty() failed");</div><div class='add'>+                (struct termios *)0, (struct winsize *)0) == -1) {</div><div class='add'>+        if (!fail) return -1;</div><div class='add'>+        rb_raise(rb_eRuntimeError, "openpty() failed");</div><div class='ctx'>     }</div><div class='ctx'>     rb_fd_fix_cloexec(*master);</div><div class='ctx'>     rb_fd_fix_cloexec(*slave);</div><div class='ctx'>     if (no_mesg(SlaveName, nomesg) == -1) {</div><div class='del'>-	if (!fail) return -1;</div><div class='del'>-	rb_raise(rb_eRuntimeError, "can't chmod slave pty");</div><div class='add'>+        if (!fail) return -1;</div><div class='add'>+        rb_raise(rb_eRuntimeError, "can't chmod slave pty");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return 0;</div><div class='hunk'>@@ -317,8 +329,8 @@ get_device_once(int *master, int *slave, char SlaveName[DEVICELEN], int nomesg,</div><div class='ctx'>     mode_t mode = nomesg ? 0600 : 0622;</div><div class='ctx'> </div><div class='ctx'>     if (!(name = _getpty(master, O_RDWR, mode, 0))) {</div><div class='del'>-	if (!fail) return -1;</div><div class='del'>-	rb_raise(rb_eRuntimeError, "_getpty() failed");</div><div class='add'>+        if (!fail) return -1;</div><div class='add'>+        rb_raise(rb_eRuntimeError, "_getpty() failed");</div><div class='ctx'>     }</div><div class='ctx'>     rb_fd_fix_cloexec(*master);</div><div class='ctx'> </div><div class='hunk'>@@ -374,49 +386,42 @@ get_device_once(int *master, int *slave, char SlaveName[DEVICELEN], int nomesg,</div><div class='ctx'>     char MasterName[DEVICELEN];</div><div class='ctx'> </div><div class='ctx'> #define HEX1(c) \</div><div class='del'>-	c"0",c"1",c"2",c"3",c"4",c"5",c"6",c"7", \</div><div class='del'>-	c"8",c"9",c"a",c"b",c"c",c"d",c"e",c"f"</div><div class='add'>+        c"0",c"1",c"2",c"3",c"4",c"5",c"6",c"7", \</div><div class='add'>+        c"8",c"9",c"a",c"b",c"c",c"d",c"e",c"f"</div><div class='ctx'> </div><div class='del'>-#if defined(__hpux)</div><div class='del'>-    static const char MasterDevice[] = "/dev/ptym/pty%s";</div><div class='del'>-    static const char SlaveDevice[] =  "/dev/pty/tty%s";</div><div class='del'>-    static const char deviceNo[][3] = {</div><div class='del'>-	HEX1("p"), HEX1("q"), HEX1("r"), HEX1("s"),</div><div class='del'>-	HEX1("t"), HEX1("u"), HEX1("v"), HEX1("w"),</div><div class='del'>-    };</div><div class='del'>-#elif defined(_IBMESA)  /* AIX/ESA */</div><div class='add'>+#if defined(_IBMESA)  /* AIX/ESA */</div><div class='ctx'>     static const char MasterDevice[] = "/dev/ptyp%s";</div><div class='ctx'>     static const char SlaveDevice[] = "/dev/ttyp%s";</div><div class='ctx'>     static const char deviceNo[][3] = {</div><div class='del'>-	HEX1("0"), HEX1("1"), HEX1("2"), HEX1("3"),</div><div class='del'>-	HEX1("4"), HEX1("5"), HEX1("6"), HEX1("7"),</div><div class='del'>-	HEX1("8"), HEX1("9"), HEX1("a"), HEX1("b"),</div><div class='del'>-	HEX1("c"), HEX1("d"), HEX1("e"), HEX1("f"),</div><div class='add'>+        HEX1("0"), HEX1("1"), HEX1("2"), HEX1("3"),</div><div class='add'>+        HEX1("4"), HEX1("5"), HEX1("6"), HEX1("7"),</div><div class='add'>+        HEX1("8"), HEX1("9"), HEX1("a"), HEX1("b"),</div><div class='add'>+        HEX1("c"), HEX1("d"), HEX1("e"), HEX1("f"),</div><div class='ctx'>     };</div><div class='ctx'> #else /* 4.2BSD */</div><div class='ctx'>     static const char MasterDevice[] = "/dev/pty%s";</div><div class='ctx'>     static const char SlaveDevice[] = "/dev/tty%s";</div><div class='ctx'>     static const char deviceNo[][3] = {</div><div class='del'>-	HEX1("p"), HEX1("q"), HEX1("r"), HEX1("s"),</div><div class='add'>+        HEX1("p"), HEX1("q"), HEX1("r"), HEX1("s"),</div><div class='ctx'>     };</div><div class='ctx'> #endif</div><div class='ctx'> #undef HEX1</div><div class='ctx'>     for (i = 0; i &lt; numberof(deviceNo); i++) {</div><div class='del'>-	const char *const devno = deviceNo[i];</div><div class='del'>-	snprintf(MasterName, sizeof MasterName, MasterDevice, devno);</div><div class='del'>-	if ((masterfd = rb_cloexec_open(MasterName,O_RDWR,0)) &gt;= 0) {</div><div class='add'>+        const char *const devno = deviceNo[i];</div><div class='add'>+        snprintf(MasterName, sizeof MasterName, MasterDevice, devno);</div><div class='add'>+        if ((masterfd = rb_cloexec_open(MasterName,O_RDWR,0)) &gt;= 0) {</div><div class='ctx'>             rb_update_max_fd(masterfd);</div><div class='del'>-	    *master = masterfd;</div><div class='del'>-	    snprintf(SlaveName, DEVICELEN, SlaveDevice, devno);</div><div class='del'>-	    if ((slavefd = rb_cloexec_open(SlaveName,O_RDWR,0)) &gt;= 0) {</div><div class='add'>+            *master = masterfd;</div><div class='add'>+            snprintf(SlaveName, DEVICELEN, SlaveDevice, devno);</div><div class='add'>+            if ((slavefd = rb_cloexec_open(SlaveName,O_RDWR,0)) &gt;= 0) {</div><div class='ctx'>                 rb_update_max_fd(slavefd);</div><div class='del'>-		*slave = slavefd;</div><div class='del'>-		if (chown(SlaveName, getuid(), getgid()) != 0) goto error;</div><div class='del'>-		if (chmod(SlaveName, nomesg ? 0600 : 0622) != 0) goto error;</div><div class='del'>-		return 0;</div><div class='del'>-	    }</div><div class='del'>-	    close(masterfd);</div><div class='del'>-	}</div><div class='add'>+                *slave = slavefd;</div><div class='add'>+                if (chown(SlaveName, getuid(), getgid()) != 0) goto error;</div><div class='add'>+                if (chmod(SlaveName, nomesg ? 0600 : 0622) != 0) goto error;</div><div class='add'>+                return 0;</div><div class='add'>+            }</div><div class='add'>+            close(masterfd);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>   error:</div><div class='ctx'>     if (slavefd != -1) close(slavefd);</div><div class='hunk'>@@ -430,8 +435,8 @@ static void</div><div class='ctx'> getDevice(int *master, int *slave, char SlaveName[DEVICELEN], int nomesg)</div><div class='ctx'> {</div><div class='ctx'>     if (get_device_once(master, slave, SlaveName, nomesg, 0)) {</div><div class='del'>-	rb_gc();</div><div class='del'>-	get_device_once(master, slave, SlaveName, nomesg, 1);</div><div class='add'>+        rb_gc();</div><div class='add'>+        get_device_once(master, slave, SlaveName, nomesg, 1);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -452,11 +457,11 @@ pty_close_pty(VALUE assoc)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   PTY.open =&gt; [master_io, slave_file]</div><div class='del'>- *   PTY.open {|master_io, slave_file| ... } =&gt; block value</div><div class='add'>+ *   PTY.open {|(master_io, slave_file)| ... } =&gt; block value</div><div class='ctx'>  *</div><div class='ctx'>  * Allocates a pty (pseudo-terminal).</div><div class='ctx'>  *</div><div class='del'>- * In the block form, yields two arguments &lt;tt&gt;master_io, slave_file&lt;/tt&gt;</div><div class='add'>+ * In the block form, yields an array of two elements (&lt;tt&gt;master_io, slave_file&lt;/tt&gt;)</div><div class='ctx'>  * and the value of the block is returned from +open+.</div><div class='ctx'>  *</div><div class='ctx'>  * The IO and File are both closed after the block completes if they haven't</div><div class='hunk'>@@ -485,7 +490,7 @@ pty_close_pty(VALUE assoc)</div><div class='ctx'>  *   require 'io/console'</div><div class='ctx'>  *   PTY.open {|m, s|</div><div class='ctx'>  *     s.raw!</div><div class='del'>- *     ...</div><div class='add'>+ *     # ...</div><div class='ctx'>  *   }</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='hunk'>@@ -514,18 +519,19 @@ pty_open(VALUE klass)</div><div class='ctx'> </div><div class='ctx'>     assoc = rb_assoc_new(master_io, slave_file);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	return rb_ensure(rb_yield, assoc, pty_close_pty, assoc);</div><div class='add'>+        return rb_ensure(rb_yield, assoc, pty_close_pty, assoc);</div><div class='ctx'>     }</div><div class='ctx'>     return assoc;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-pty_detach_process(struct pty_info *info)</div><div class='add'>+pty_detach_process(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct pty_info *info = (void *)v;</div><div class='ctx'> #ifdef WNOHANG</div><div class='ctx'>     int st;</div><div class='ctx'>     if (rb_waitpid(info-&gt;child_pid, &amp;st, WNOHANG) &lt;= 0)</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'> #endif</div><div class='ctx'>     rb_detach_process(info-&gt;child_pid);</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -533,10 +539,10 @@ pty_detach_process(struct pty_info *info)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   PTY.spawn(command_line)  { |r, w, pid| ... }</div><div class='del'>- *   PTY.spawn(command_line)  =&gt; [r, w, pid]</div><div class='del'>- *   PTY.spawn(command, arguments, ...)  { |r, w, pid| ... }</div><div class='del'>- *   PTY.spawn(command, arguments, ...)  =&gt; [r, w, pid]</div><div class='add'>+ *   PTY.spawn([env,] command_line)  { |r, w, pid| ... }</div><div class='add'>+ *   PTY.spawn([env,] command_line)  =&gt; [r, w, pid]</div><div class='add'>+ *   PTY.spawn([env,] command, arguments, ...)  { |r, w, pid| ... }</div><div class='add'>+ *   PTY.spawn([env,] command, arguments, ...)  =&gt; [r, w, pid]</div><div class='ctx'>  *</div><div class='ctx'>  * Spawns the specified command on a newly allocated pty. You can also use the</div><div class='ctx'>  * alias ::getpty.</div><div class='hunk'>@@ -544,6 +550,13 @@ pty_detach_process(struct pty_info *info)</div><div class='ctx'>  * The command's controlling tty is set to the slave device of the pty</div><div class='ctx'>  * and its standard input/output/error is redirected to the slave device.</div><div class='ctx'>  *</div><div class='add'>+ * +env+ is an optional hash that provides additional environment variables to the spawned pty.</div><div class='add'>+ *</div><div class='add'>+ *   # sets FOO to "bar"</div><div class='add'>+ *   PTY.spawn({"FOO"=&gt;"bar"}, "printenv", "FOO") { |r,w,pid| p r.read } #=&gt; "bar\r\n"</div><div class='add'>+ *   # unsets FOO</div><div class='add'>+ *   PTY.spawn({"FOO"=&gt;nil}, "printenv", "FOO") { |r,w,pid| p r.read } #=&gt; ""</div><div class='add'>+ *</div><div class='ctx'>  * +command+ and +command_line+ are the full commands to run, given a String.</div><div class='ctx'>  * Any additional +arguments+ will be passed to the command.</div><div class='ctx'>  *</div><div class='hunk'>@@ -591,8 +604,8 @@ pty_getpty(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     rb_ary_store(res,2,PIDT2NUM(info.child_pid));</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	rb_ensure(rb_yield, res, pty_detach_process, (VALUE)&amp;info);</div><div class='del'>-	return Qnil;</div><div class='add'>+        rb_ensure(rb_yield, res, pty_detach_process, (VALUE)&amp;info);</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     return res;</div><div class='ctx'> }</div><div class='hunk'>@@ -612,13 +625,13 @@ raise_from_check(rb_pid_t pid, int status)</div><div class='ctx'> ----&gt;&gt; Either IF_STOPPED or WIFSTOPPED is needed &lt;&lt;----</div><div class='ctx'> #endif /* WIFSTOPPED | IF_STOPPED */</div><div class='ctx'>     if (WIFSTOPPED(status)) { /* suspend */</div><div class='del'>-	state = "stopped";</div><div class='add'>+        state = "stopped";</div><div class='ctx'>     }</div><div class='ctx'>     else if (kill(pid, 0) == 0) {</div><div class='del'>-	state = "changed";</div><div class='add'>+        state = "changed";</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	state = "exited";</div><div class='add'>+        state = "exited";</div><div class='ctx'>     }</div><div class='ctx'>     msg = rb_sprintf("pty - %s: %ld", state, (long)pid);</div><div class='ctx'>     exc = rb_exc_new_str(eChildExited, msg);</div><div class='hunk'>@@ -651,12 +664,12 @@ pty_check(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     int status;</div><div class='ctx'>     const int flag =</div><div class='ctx'> #ifdef WNOHANG</div><div class='del'>-	WNOHANG|</div><div class='add'>+        WNOHANG|</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef WUNTRACED</div><div class='del'>-	WUNTRACED|</div><div class='add'>+        WUNTRACED|</div><div class='ctx'> #endif</div><div class='del'>-	0;</div><div class='add'>+        0;</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "11", &amp;pid, &amp;exc);</div><div class='ctx'>     cpid = rb_waitpid(NUM2PIDT(pid), &amp;status, flag);</div><div class='hunk'>@@ -681,7 +694,7 @@ static VALUE cPTY;</div><div class='ctx'>  * Document-class: PTY</div><div class='ctx'>  *</div><div class='ctx'>  * Creates and manages pseudo terminals (PTYs).  See also</div><div class='del'>- * http://en.wikipedia.org/wiki/Pseudo_terminal</div><div class='add'>+ * https://en.wikipedia.org/wiki/Pseudo_terminal</div><div class='ctx'>  *</div><div class='ctx'>  * PTY allows you to allocate new terminals using ::open or ::spawn a new</div><div class='ctx'>  * terminal with a specific command.</div><div class='hunk'>@@ -724,16 +737,16 @@ static VALUE cPTY;</div><div class='ctx'>  *</div><div class='ctx'>  * == License</div><div class='ctx'>  *</div><div class='del'>- *  C) Copyright 1998 by Akinori Ito.</div><div class='add'>+ * (c) Copyright 1998 by Akinori Ito.</div><div class='ctx'>  *</div><div class='del'>- *  This software may be redistributed freely for this purpose, in full</div><div class='del'>- *  or in part, provided that this entire copyright notice is included</div><div class='del'>- *  on any copies of this software and applications and derivations thereof.</div><div class='add'>+ * This software may be redistributed freely for this purpose, in full</div><div class='add'>+ * or in part, provided that this entire copyright notice is included</div><div class='add'>+ * on any copies of this software and applications and derivations thereof.</div><div class='ctx'>  *</div><div class='del'>- *  This software is provided on an "as is" basis, without warranty of any</div><div class='del'>- *  kind, either expressed or implied, as to any matter including, but not</div><div class='del'>- *  limited to warranty of fitness of purpose, or merchantability, or</div><div class='del'>- *  results obtained from use of this software.</div><div class='add'>+ * This software is provided on an "as is" basis, without warranty of any</div><div class='add'>+ * kind, either expressed or implied, as to any matter including, but not</div><div class='add'>+ * limited to warranty of fitness of purpose, or merchantability, or</div><div class='add'>+ * results obtained from use of this software.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='head'>diff --git a/ext/racc/cparse/README b/ext/racc/cparse/README<br/>index 7771108b84..550e8d49fe 100644<br/>--- a/<a href='/ruby.git/tree/ext/racc/cparse/README?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/racc/cparse/README</a><br/>+++ b/<a href='/ruby.git/tree/ext/racc/cparse/README?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/racc/cparse/README</a></div><div class='hunk'>@@ -7,5 +7,5 @@ your own parser, you must get Racc full package.</div><div class='ctx'> Get it from:</div><div class='ctx'> </div><div class='ctx'>   - http://i.loveruby.net/en/projects/racc</div><div class='del'>-  - https://github.com/tenderlove/racc</div><div class='add'>+  - https://github.com/ruby/racc</div><div class='ctx'> </div><div class='head'>diff --git a/ext/racc/cparse/cparse.c b/ext/racc/cparse/cparse.c<br/>index b4429ed5f3..f752eb7749 100644<br/>--- a/<a href='/ruby.git/tree/ext/racc/cparse/cparse.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/racc/cparse/cparse.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/racc/cparse/cparse.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/racc/cparse/cparse.c</a></div><div class='hunk'>@@ -7,11 +7,9 @@</div><div class='ctx'>     This library is free software.</div><div class='ctx'>     You can distribute/modify this program under the same terms of ruby.</div><div class='ctx'> </div><div class='del'>-    $originalId: cparse.c,v 1.8 2006/07/06 11:39:46 aamine Exp $</div><div class='del'>-</div><div class='ctx'> */</div><div class='ctx'> </div><div class='del'>-#include "ruby/ruby.h"</div><div class='add'>+#include &lt;ruby.h&gt;</div><div class='ctx'> </div><div class='ctx'> #ifndef FALSE</div><div class='ctx'> #define FALSE 0</div><div class='hunk'>@@ -24,7 +22,7 @@</div><div class='ctx'>                         Important Constants</div><div class='ctx'> ----------------------------------------------------------------------- */</div><div class='ctx'> </div><div class='del'>-#define RACC_VERSION "1.4.5"</div><div class='add'>+#define RACC_VERSION "1.6.2"</div><div class='ctx'> </div><div class='ctx'> #define DEFAULT_TOKEN -1</div><div class='ctx'> #define ERROR_TOKEN    1</div><div class='hunk'>@@ -72,6 +70,10 @@ static ID id_d_e_pop;</div><div class='ctx'> #  define LONG2NUM(i) INT2NUM(i)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifndef HAVE_RB_ARY_SUBSEQ</div><div class='add'>+#  define rb_ary_subseq(ary, beg, len) rb_ary_new4(len, RARRAY_PTR(ary) + beg)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static ID value_to_id _((VALUE v));</div><div class='ctx'> static inline long num_to_long _((VALUE n));</div><div class='ctx'> </div><div class='hunk'>@@ -208,7 +210,7 @@ static void extract_user_token _((struct cparse_params *v,</div><div class='ctx'>                                   VALUE block_args, VALUE *tok, VALUE *val));</div><div class='ctx'> static void shift _((struct cparse_params* v, long act, VALUE tok, VALUE val));</div><div class='ctx'> static int reduce _((struct cparse_params* v, long act));</div><div class='del'>-static VALUE reduce0 _((VALUE block_args, VALUE data, VALUE self));</div><div class='add'>+static rb_block_call_func reduce0;</div><div class='ctx'> </div><div class='ctx'> #ifdef DEBUG</div><div class='ctx'> # define D_puts(msg)        if (v-&gt;sys_debug) puts(msg)</div><div class='hunk'>@@ -601,7 +603,7 @@ parse_main(struct cparse_params *v, VALUE tok, VALUE val, int resume)</div><div class='ctx'>   user_yyerror:</div><div class='ctx'>     if (v-&gt;errstatus == 3) {</div><div class='ctx'>         if (v-&gt;t == vFINAL_TOKEN) {</div><div class='del'>-            v-&gt;retval = Qfalse;</div><div class='add'>+            v-&gt;retval = Qnil;</div><div class='ctx'>             v-&gt;fin = CP_FIN_EOT;</div><div class='ctx'>             return;</div><div class='ctx'>         }</div><div class='hunk'>@@ -704,7 +706,7 @@ reduce(struct cparse_params *v, long act)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-reduce0(VALUE val, VALUE data, VALUE self)</div><div class='add'>+reduce0(RB_BLOCK_CALL_FUNC_ARGLIST(_, data))</div><div class='ctx'> {</div><div class='ctx'>     struct cparse_params *v = rb_check_typeddata(data, &amp;cparse_params_type);</div><div class='ctx'>     VALUE reduce_to, reduce_len, method_id;</div><div class='hunk'>@@ -815,14 +817,16 @@ reduce0(VALUE val, VALUE data, VALUE self)</div><div class='ctx'> void</div><div class='ctx'> Init_cparse(void)</div><div class='ctx'> {</div><div class='del'>-#undef rb_intern</div><div class='del'>-#define rb_intern(str) rb_intern_const(str)</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     VALUE Racc, Parser;</div><div class='del'>-    ID id_racc = rb_intern("Racc");</div><div class='add'>+    ID id_racc = rb_intern_const("Racc");</div><div class='ctx'> </div><div class='ctx'>     if (rb_const_defined(rb_cObject, id_racc)) {</div><div class='ctx'>         Racc = rb_const_get(rb_cObject, id_racc);</div><div class='del'>-        Parser = rb_const_get_at(Racc, rb_intern("Parser"));</div><div class='add'>+        Parser = rb_const_get_at(Racc, rb_intern_const("Parser"));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         Racc = rb_define_module("Racc");</div><div class='hunk'>@@ -842,16 +846,16 @@ Init_cparse(void)</div><div class='ctx'> </div><div class='ctx'>     RaccBug = rb_eRuntimeError;</div><div class='ctx'> </div><div class='del'>-    id_yydebug      = rb_intern("@yydebug");</div><div class='del'>-    id_nexttoken    = rb_intern("next_token");</div><div class='del'>-    id_onerror      = rb_intern("on_error");</div><div class='del'>-    id_noreduce     = rb_intern("_reduce_none");</div><div class='del'>-    id_errstatus    = rb_intern("@racc_error_status");</div><div class='del'>-</div><div class='del'>-    id_d_shift       = rb_intern("racc_shift");</div><div class='del'>-    id_d_reduce      = rb_intern("racc_reduce");</div><div class='del'>-    id_d_accept      = rb_intern("racc_accept");</div><div class='del'>-    id_d_read_token  = rb_intern("racc_read_token");</div><div class='del'>-    id_d_next_state  = rb_intern("racc_next_state");</div><div class='del'>-    id_d_e_pop       = rb_intern("racc_e_pop");</div><div class='add'>+    id_yydebug      = rb_intern_const("@yydebug");</div><div class='add'>+    id_nexttoken    = rb_intern_const("next_token");</div><div class='add'>+    id_onerror      = rb_intern_const("on_error");</div><div class='add'>+    id_noreduce     = rb_intern_const("_reduce_none");</div><div class='add'>+    id_errstatus    = rb_intern_const("@racc_error_status");</div><div class='add'>+</div><div class='add'>+    id_d_shift       = rb_intern_const("racc_shift");</div><div class='add'>+    id_d_reduce      = rb_intern_const("racc_reduce");</div><div class='add'>+    id_d_accept      = rb_intern_const("racc_accept");</div><div class='add'>+    id_d_read_token  = rb_intern_const("racc_read_token");</div><div class='add'>+    id_d_next_state  = rb_intern_const("racc_next_state");</div><div class='add'>+    id_d_e_pop       = rb_intern_const("racc_e_pop");</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/racc/cparse/depend b/ext/racc/cparse/depend<br/>index 441d4df0f7..9dc509dc7c 100644<br/>--- a/<a href='/ruby.git/tree/ext/racc/cparse/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/racc/cparse/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/racc/cparse/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/racc/cparse/depend</a></div><div class='hunk'>@@ -1,9 +1,159 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> cparse.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> cparse.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> cparse.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> cparse.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> cparse.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+cparse.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> cparse.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> cparse.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> cparse.o: $(hdrdir)/ruby/st.h</div><div class='head'>diff --git a/ext/racc/cparse/extconf.rb b/ext/racc/cparse/extconf.rb<br/>index dfddf57111..18c5689ad8 100644<br/>--- a/<a href='/ruby.git/tree/ext/racc/cparse/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/racc/cparse/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/racc/cparse/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/racc/cparse/extconf.rb</a></div><div class='hunk'>@@ -1,6 +1,9 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='del'>-# $Id$</div><div class='add'>+#</div><div class='ctx'> </div><div class='ctx'> require 'mkmf'</div><div class='del'>-have_func('rb_block_call', 'ruby/ruby.h')</div><div class='add'>+</div><div class='add'>+have_func('rb_block_call')</div><div class='add'>+have_func('rb_ary_subseq')</div><div class='add'>+</div><div class='ctx'> create_makefile 'racc/cparse'</div><div class='head'>diff --git a/ext/rbconfig/sizeof/depend b/ext/rbconfig/sizeof/depend<br/>index 143cbb0ee5..5b65b83772 100644<br/>--- a/<a href='/ruby.git/tree/ext/rbconfig/sizeof/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/rbconfig/sizeof/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/rbconfig/sizeof/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/rbconfig/sizeof/depend</a></div><div class='hunk'>@@ -16,9 +16,158 @@ sizes.c: $(top_srcdir)/tool/generic_erb.rb \</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> limits.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> limits.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> limits.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> limits.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> limits.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+limits.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> limits.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> limits.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> limits.o: $(hdrdir)/ruby/st.h</div><div class='hunk'>@@ -26,9 +175,158 @@ limits.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> limits.o: limits.c</div><div class='ctx'> sizes.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> sizes.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> sizes.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> sizes.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> sizes.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+sizes.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> sizes.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> sizes.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> sizes.o: $(hdrdir)/ruby/st.h</div><div class='head'>diff --git a/ext/readline/depend b/ext/readline/depend<br/>index eb7a047473..c62309622a 100644<br/>--- a/<a href='/ruby.git/tree/ext/readline/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/readline/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/readline/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/readline/depend</a></div><div class='hunk'>@@ -1,10 +1,168 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> readline.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> readline.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> readline.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> readline.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> readline.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> readline.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+readline.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> readline.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> readline.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> readline.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -13,6 +171,5 @@ readline.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> readline.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> readline.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> readline.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-readline.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> readline.o: readline.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/readline/depend-gem b/ext/readline/depend-gem<br/>new file mode 100644<br/>index 0000000000..df01bd2a86<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/readline/depend-gem?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/readline/depend-gem</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+readline.o: $(RUBY_EXTCONF_H)</div><div class='add'>+readline.o: readline.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/readline/extconf.rb b/ext/readline/extconf.rb<br/>index fcc62921ae..d3e7872e65 100644<br/>--- a/<a href='/ruby.git/tree/ext/readline/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/readline/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/readline/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/readline/extconf.rb</a></div><div class='hunk'>@@ -109,5 +109,4 @@ unless readline.have_type("rl_hook_func_t*")</div><div class='ctx'>   $defs &lt;&lt; "-Drl_hook_func_t=Function"</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-$INCFLAGS &lt;&lt; " -I$(top_srcdir)"</div><div class='ctx'> create_makefile("readline")</div><div class='head'>diff --git a/ext/readline/readline-ext.gemspec b/ext/readline/readline-ext.gemspec<br/>new file mode 100644<br/>index 0000000000..1e16edbfe6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/readline/readline-ext.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/readline/readline-ext.gemspec</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "readline-ext"</div><div class='add'>+  spec.version       = "0.1.5"</div><div class='add'>+  spec.authors       = ["Yukihiro Matsumoto"]</div><div class='add'>+  spec.email         = ["matz@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Provides an interface for GNU Readline and Edit Line (libedit).}</div><div class='add'>+  spec.description   = %q{Provides an interface for GNU Readline and Edit Line (libedit).}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/readline-ext"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+  spec.extensions    = %w[ext/readline/extconf.rb]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z 2&gt;/dev/null`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.bindir        = "exe"</div><div class='add'>+  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/ext/readline/readline.c b/ext/readline/readline.c<br/>index 3380720f47..fc254ce315 100644<br/>--- a/<a href='/ruby.git/tree/ext/readline/readline.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/readline/readline.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/readline/readline.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/readline/readline.c</a></div><div class='hunk'>@@ -78,7 +78,7 @@ static ID id_special_prefixes;</div><div class='ctx'> #ifndef HAVE_RL_USERNAME_COMPLETION_FUNCTION</div><div class='ctx'> # define rl_username_completion_function username_completion_function</div><div class='ctx'> #else</div><div class='del'>-char *rl_username_completion_function(const char *, int);</div><div class='add'>+RUBY_EXTERN char *rl_username_completion_function(const char *, int);</div><div class='ctx'> #endif</div><div class='ctx'> #ifndef HAVE_RL_COMPLETION_MATCHES</div><div class='ctx'> # define rl_completion_matches completion_matches</div><div class='hunk'>@@ -95,7 +95,6 @@ static char **readline_attempted_completion_function(const char *text,</div><div class='ctx'> </div><div class='ctx'> #define OutputStringValue(str) do {\</div><div class='ctx'>     StringValueCStr(str);\</div><div class='del'>-    rb_check_safe_obj(str);\</div><div class='ctx'>     (str) = rb_str_conv_enc((str), rb_enc_get(str), rb_locale_encoding());\</div><div class='ctx'> } while (0)\</div><div class='ctx'> </div><div class='hunk'>@@ -377,8 +376,8 @@ prepare_readline(void)</div><div class='ctx'> {</div><div class='ctx'>     static int initialized = 0;</div><div class='ctx'>     if (!initialized) {</div><div class='del'>-	rl_initialize();</div><div class='del'>-	initialized = 1;</div><div class='add'>+        rl_initialize();</div><div class='add'>+        initialized = 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (readline_instream) {</div><div class='hunk'>@@ -690,14 +689,13 @@ readline_s_insert_text(VALUE self, VALUE str)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_RL_DELETE_TEXT)</div><div class='del'>-int rl_delete_text(int, int);</div><div class='add'>+RUBY_EXTERN int rl_delete_text(int, int);</div><div class='ctx'> static const char *</div><div class='ctx'> str_subpos(const char *ptr, const char *end, long beg, long *sublen, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     VALUE str = rb_enc_str_new_static(ptr, end-ptr, enc);</div><div class='ctx'>     OBJ_FREEZE(str);</div><div class='ctx'>     ptr = rb_str_subpos(str, beg, sublen);</div><div class='del'>-    rb_gc_force_recycle(str);</div><div class='ctx'>     return ptr;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -823,7 +821,7 @@ readline_s_redisplay(VALUE self)</div><div class='ctx'>  *</div><div class='ctx'>  * When working with auto-complete there are some strategies that work well.</div><div class='ctx'>  * To get some ideas you can take a look at the</div><div class='del'>- * completion.rb[https://svn.ruby-lang.org/repos/ruby/trunk/lib/irb/completion.rb]</div><div class='add'>+ * completion.rb[https://git.ruby-lang.org/ruby.git/tree/lib/irb/completion.rb]</div><div class='ctx'>  * file for irb.</div><div class='ctx'>  *</div><div class='ctx'>  * The common strategy is to take a list of possible completions and filter it</div><div class='hunk'>@@ -1149,7 +1147,7 @@ readline_s_get_screen_size(VALUE self)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_RL_VI_EDITING_MODE</div><div class='del'>-int rl_vi_editing_mode(int, int);</div><div class='add'>+RUBY_EXTERN int rl_vi_editing_mode(int, int);</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   Readline.vi_editing_mode -&gt; nil</div><div class='hunk'>@@ -1188,7 +1186,7 @@ readline_s_vi_editing_mode_p(VALUE self)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_RL_EMACS_EDITING_MODE</div><div class='del'>-int rl_emacs_editing_mode(int, int);</div><div class='add'>+RUBY_EXTERN int rl_emacs_editing_mode(int, int);</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   Readline.emacs_editing_mode -&gt; nil</div><div class='hunk'>@@ -1382,7 +1380,7 @@ readline_s_set_basic_word_break_characters(VALUE self, VALUE str)</div><div class='ctx'>  * Raises NotImplementedError if the using readline library does not support.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-readline_s_get_basic_word_break_characters(VALUE self, VALUE str)</div><div class='add'>+readline_s_get_basic_word_break_characters(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     if (rl_basic_word_break_characters == NULL)</div><div class='ctx'>         return Qnil;</div><div class='hunk'>@@ -1437,7 +1435,7 @@ readline_s_set_completer_word_break_characters(VALUE self, VALUE str)</div><div class='ctx'>  * Raises NotImplementedError if the using readline library does not support.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-readline_s_get_completer_word_break_characters(VALUE self, VALUE str)</div><div class='add'>+readline_s_get_completer_word_break_characters(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     if (rl_completer_word_break_characters == NULL)</div><div class='ctx'>         return Qnil;</div><div class='hunk'>@@ -1552,7 +1550,7 @@ readline_s_set_basic_quote_characters(VALUE self, VALUE str)</div><div class='ctx'>  * Raises NotImplementedError if the using readline library does not support.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-readline_s_get_basic_quote_characters(VALUE self, VALUE str)</div><div class='add'>+readline_s_get_basic_quote_characters(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     if (rl_basic_quote_characters == NULL)</div><div class='ctx'>         return Qnil;</div><div class='hunk'>@@ -1608,7 +1606,7 @@ readline_s_set_completer_quote_characters(VALUE self, VALUE str)</div><div class='ctx'>  * Raises NotImplementedError if the using readline library does not support.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-readline_s_get_completer_quote_characters(VALUE self, VALUE str)</div><div class='add'>+readline_s_get_completer_quote_characters(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     if (rl_completer_quote_characters == NULL)</div><div class='ctx'>         return Qnil;</div><div class='hunk'>@@ -1662,7 +1660,7 @@ readline_s_set_filename_quote_characters(VALUE self, VALUE str)</div><div class='ctx'>  * Raises NotImplementedError if the using readline library does not support.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-readline_s_get_filename_quote_characters(VALUE self, VALUE str)</div><div class='add'>+readline_s_get_filename_quote_characters(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     if (rl_filename_quote_characters == NULL)</div><div class='ctx'>         return Qnil;</div><div class='hunk'>@@ -1673,7 +1671,7 @@ readline_s_get_filename_quote_characters(VALUE self, VALUE str)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_RL_REFRESH_LINE</div><div class='del'>-int rl_refresh_line(int, int);</div><div class='add'>+RUBY_EXTERN int rl_refresh_line(int, int);</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   Readline.refresh_line -&gt; nil</div><div class='hunk'>@@ -1919,8 +1917,11 @@ username_completion_proc_call(VALUE self, VALUE str)</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_RL_CATCH_SIGNALS</div><div class='add'>+RUBY_EXTERN int rl_catch_signals;</div><div class='add'>+#endif</div><div class='ctx'> #ifdef HAVE_RL_CLEAR_SIGNALS</div><div class='del'>-int rl_clear_signals(void);</div><div class='add'>+RUBY_EXTERN int rl_clear_signals(void);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #undef rb_intern</div><div class='hunk'>@@ -2061,7 +2062,7 @@ Init_readline(void)</div><div class='ctx'>      * The history buffer. It extends Enumerable module, so it behaves</div><div class='ctx'>      * just like an array.</div><div class='ctx'>      * For example, gets the fifth content that the user input by</div><div class='del'>-     * HISTORY[4].</div><div class='add'>+     * &lt;code&gt;HISTORY[4]&lt;/code&gt;.</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_const(mReadline, "HISTORY", history);</div><div class='ctx'> </div><div class='hunk'>@@ -2089,6 +2090,7 @@ Init_readline(void)</div><div class='ctx'> #if defined HAVE_CLEAR_HISTORY || defined HAVE_REMOVE_HISTORY</div><div class='ctx'>     if (strncmp(rl_library_version, EDIT_LINE_LIBRARY_VERSION,</div><div class='ctx'>                 strlen(EDIT_LINE_LIBRARY_VERSION)) == 0) {</div><div class='add'>+        prepare_readline();</div><div class='ctx'>         add_history("1");</div><div class='ctx'>         if (history_get(history_get_offset_func(0)) == NULL) {</div><div class='ctx'>             history_get_offset_func = history_get_offset_0;</div><div class='head'>diff --git a/ext/ripper/depend b/ext/ripper/depend<br/>index ed07a32e99..856283e177 100644<br/>--- a/<a href='/ruby.git/tree/ext/ripper/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/ripper/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/ripper/depend</a></div><div class='hunk'>@@ -1,7 +1,6 @@</div><div class='ctx'> GEN  = $(srcdir)/tools/generate.rb</div><div class='ctx'> SRC1 = $(top_srcdir)/parse.y</div><div class='ctx'> SRC2 = $(srcdir)/eventids2.c</div><div class='del'>-BISON = bison</div><div class='ctx'> </div><div class='ctx'> .SUFFIXES: .y</div><div class='ctx'> </div><div class='hunk'>@@ -18,10 +17,9 @@ ripper.o: ripper.c</div><div class='ctx'> all: check</div><div class='ctx'> static: check</div><div class='ctx'> </div><div class='del'>-ripper.y: $(srcdir)/tools/preproc.rb $(srcdir)/tools/dsl.rb $(top_srcdir)/parse.y {$(VPATH)}id.h</div><div class='add'>+ripper.y: $(srcdir)/tools/preproc.rb $(srcdir)/tools/dsl.rb $(top_srcdir)/parse.y $(top_srcdir)/defs/id.def</div><div class='ctx'> 	$(ECHO) extracting $@ from $(top_srcdir)/parse.y</div><div class='del'>-	$(Q) $(RUBY) $(top_srcdir)/tool/id2token.rb --path-separator=.$(PATH_SEPARATOR)./ \</div><div class='del'>-		--vpath=$(VPATH)$(PATH_SEPARATOR)$(top_srcdir) id.h $(top_srcdir)/parse.y &gt; ripper.tmp.y</div><div class='add'>+	$(Q) $(RUBY) $(top_srcdir)/tool/id2token.rb $(top_srcdir)/parse.y &gt; ripper.tmp.y</div><div class='ctx'> 	$(Q) $(RUBY) $(srcdir)/tools/preproc.rb ripper.tmp.y --output=$@</div><div class='ctx'> 	$(Q) $(RM) ripper.tmp.y</div><div class='ctx'> </div><div class='hunk'>@@ -50,23 +48,212 @@ ripper.E: ripper.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> ripper.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ripper.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/oniguruma.h</div><div class='add'>+ripper.o: $(hdrdir)/ruby/ractor.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/regex.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ripper.o: $(hdrdir)/ruby/util.h</div><div class='del'>-ripper.o: $(top_srcdir)/include/ruby.h</div><div class='add'>+ripper.o: $(top_srcdir)/constant.h</div><div class='add'>+ripper.o: $(top_srcdir)/id_table.h</div><div class='ctx'> ripper.o: $(top_srcdir)/internal.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/array.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/bignum.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/bits.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/compile.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/complex.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/encoding.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/error.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/fixnum.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/hash.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/imemo.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/io.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/numeric.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/parse.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/rational.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/re.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/string.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/symbol.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/variable.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+ripper.o: $(top_srcdir)/internal/warnings.h</div><div class='ctx'> ripper.o: $(top_srcdir)/node.h</div><div class='ctx'> ripper.o: $(top_srcdir)/regenc.h</div><div class='add'>+ripper.o: $(top_srcdir)/ruby_assert.h</div><div class='add'>+ripper.o: $(top_srcdir)/shape.h</div><div class='ctx'> ripper.o: $(top_srcdir)/symbol.h</div><div class='ctx'> ripper.o: ../../probes.h</div><div class='ctx'> ripper.o: eventids2.c</div><div class='head'>diff --git a/ext/ripper/eventids2.c b/ext/ripper/eventids2.c<br/>index e876e95ab3..05687497ac 100644<br/>--- a/<a href='/ruby.git/tree/ext/ripper/eventids2.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/eventids2.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/ripper/eventids2.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/ripper/eventids2.c</a></div><div class='hunk'>@@ -1,14 +1,3 @@</div><div class='del'>-enum {</div><div class='del'>-    tIGNORED_NL  = tLAST_TOKEN + 1,</div><div class='del'>-    tCOMMENT,</div><div class='del'>-    tEMBDOC_BEG,</div><div class='del'>-    tEMBDOC,</div><div class='del'>-    tEMBDOC_END,</div><div class='del'>-    tHEREDOC_BEG,</div><div class='del'>-    tHEREDOC_END,</div><div class='del'>-    k__END__</div><div class='del'>-};</div><div class='del'>-</div><div class='ctx'> typedef struct {</div><div class='ctx'>     ID ripper_id_backref;</div><div class='ctx'>     ID ripper_id_backtick;</div><div class='hunk'>@@ -128,177 +117,175 @@ ripper_init_eventids2(void)</div><div class='ctx'> </div><div class='ctx'> STATIC_ASSERT(k__END___range, k__END__ &lt; SHRT_MAX);</div><div class='ctx'> STATIC_ASSERT(ripper_scanner_ids_size, sizeof(ripper_scanner_ids) &lt; SHRT_MAX);</div><div class='del'>-#define O(member) (int)offsetof(ripper_scanner_ids_t, ripper_id_##member)</div><div class='del'>-</div><div class='del'>-static const struct token_assoc {</div><div class='del'>-    unsigned short token;</div><div class='del'>-    unsigned short id_offset;</div><div class='del'>-} token_to_eventid[] = {</div><div class='del'>-    {' ',			O(words_sep)},</div><div class='del'>-    {'!',			O(op)},</div><div class='del'>-    {'%',			O(op)},</div><div class='del'>-    {'&amp;',			O(op)},</div><div class='del'>-    {'*',			O(op)},</div><div class='del'>-    {'+',			O(op)},</div><div class='del'>-    {'-',			O(op)},</div><div class='del'>-    {'/',			O(op)},</div><div class='del'>-    {'&lt;',			O(op)},</div><div class='del'>-    {'=',			O(op)},</div><div class='del'>-    {'&gt;',			O(op)},</div><div class='del'>-    {'?',			O(op)},</div><div class='del'>-    {'^',			O(op)},</div><div class='del'>-    {'|',			O(op)},</div><div class='del'>-    {'~',			O(op)},</div><div class='del'>-    {':',			O(op)},</div><div class='del'>-    {',',			O(comma)},</div><div class='del'>-    {'.',			O(period)},</div><div class='del'>-    {';',			O(semicolon)},</div><div class='del'>-    {'`',			O(backtick)},</div><div class='del'>-    {'\n',			O(nl)},</div><div class='del'>-    {keyword_alias,		O(kw)},</div><div class='del'>-    {keyword_and,		O(kw)},</div><div class='del'>-    {keyword_begin,		O(kw)},</div><div class='del'>-    {keyword_break,		O(kw)},</div><div class='del'>-    {keyword_case,		O(kw)},</div><div class='del'>-    {keyword_class,		O(kw)},</div><div class='del'>-    {keyword_def,		O(kw)},</div><div class='del'>-    {keyword_defined,		O(kw)},</div><div class='del'>-    {keyword_do,		O(kw)},</div><div class='del'>-    {keyword_do_block,		O(kw)},</div><div class='del'>-    {keyword_do_cond,		O(kw)},</div><div class='del'>-    {keyword_else,		O(kw)},</div><div class='del'>-    {keyword_elsif,		O(kw)},</div><div class='del'>-    {keyword_end,		O(kw)},</div><div class='del'>-    {keyword_ensure,		O(kw)},</div><div class='del'>-    {keyword_false,		O(kw)},</div><div class='del'>-    {keyword_for,		O(kw)},</div><div class='del'>-    {keyword_if,		O(kw)},</div><div class='del'>-    {modifier_if,		O(kw)},</div><div class='del'>-    {keyword_in,		O(kw)},</div><div class='del'>-    {keyword_module,		O(kw)},</div><div class='del'>-    {keyword_next,		O(kw)},</div><div class='del'>-    {keyword_nil,		O(kw)},</div><div class='del'>-    {keyword_not,		O(kw)},</div><div class='del'>-    {keyword_or,		O(kw)},</div><div class='del'>-    {keyword_redo,		O(kw)},</div><div class='del'>-    {keyword_rescue,		O(kw)},</div><div class='del'>-    {modifier_rescue,		O(kw)},</div><div class='del'>-    {keyword_retry,		O(kw)},</div><div class='del'>-    {keyword_return,		O(kw)},</div><div class='del'>-    {keyword_self,		O(kw)},</div><div class='del'>-    {keyword_super,		O(kw)},</div><div class='del'>-    {keyword_then,		O(kw)},</div><div class='del'>-    {keyword_true,		O(kw)},</div><div class='del'>-    {keyword_undef,		O(kw)},</div><div class='del'>-    {keyword_unless,		O(kw)},</div><div class='del'>-    {modifier_unless,		O(kw)},</div><div class='del'>-    {keyword_until,		O(kw)},</div><div class='del'>-    {modifier_until,		O(kw)},</div><div class='del'>-    {keyword_when,		O(kw)},</div><div class='del'>-    {keyword_while,		O(kw)},</div><div class='del'>-    {modifier_while,		O(kw)},</div><div class='del'>-    {keyword_yield,		O(kw)},</div><div class='del'>-    {keyword__FILE__,		O(kw)},</div><div class='del'>-    {keyword__LINE__,		O(kw)},</div><div class='del'>-    {keyword__ENCODING__,	O(kw)},</div><div class='del'>-    {keyword_BEGIN,		O(kw)},</div><div class='del'>-    {keyword_END,		O(kw)},</div><div class='del'>-    {keyword_do_LAMBDA,		O(kw)},</div><div class='del'>-    {tAMPER,			O(op)},</div><div class='del'>-    {tANDOP,			O(op)},</div><div class='del'>-    {tAREF,			O(op)},</div><div class='del'>-    {tASET,			O(op)},</div><div class='del'>-    {tASSOC,			O(op)},</div><div class='del'>-    {tBACK_REF,			O(backref)},</div><div class='del'>-    {tCHAR,			O(CHAR)},</div><div class='del'>-    {tCMP,			O(op)},</div><div class='del'>-    {tCOLON2,			O(op)},</div><div class='del'>-    {tCOLON3,			O(op)},</div><div class='del'>-    {tCONSTANT,			O(const)},</div><div class='del'>-    {tCVAR,			O(cvar)},</div><div class='del'>-    {tDOT2,			O(op)},</div><div class='del'>-    {tDOT3,			O(op)},</div><div class='del'>-    {tEQ,			O(op)},</div><div class='del'>-    {tEQQ,			O(op)},</div><div class='del'>-    {tFID,			O(ident)},</div><div class='del'>-    {tFLOAT,			O(float)},</div><div class='del'>-    {tGEQ,			O(op)},</div><div class='del'>-    {tGVAR,			O(gvar)},</div><div class='del'>-    {tIDENTIFIER,		O(ident)},</div><div class='del'>-    {tIMAGINARY,		O(imaginary)},</div><div class='del'>-    {tINTEGER,			O(int)},</div><div class='del'>-    {tIVAR,			O(ivar)},</div><div class='del'>-    {tLBRACE,			O(lbrace)},</div><div class='del'>-    {tLBRACE_ARG,		O(lbrace)},</div><div class='del'>-    {'{',			O(lbrace)},</div><div class='del'>-    {'}',			O(rbrace)},</div><div class='del'>-    {tLBRACK,			O(lbracket)},</div><div class='del'>-    {'[',			O(lbracket)},</div><div class='del'>-    {']',			O(rbracket)},</div><div class='del'>-    {tLEQ,			O(op)},</div><div class='del'>-    {tLPAREN,			O(lparen)},</div><div class='del'>-    {tLPAREN_ARG,		O(lparen)},</div><div class='del'>-    {'(',			O(lparen)},</div><div class='del'>-    {')',			O(rparen)},</div><div class='del'>-    {tLSHFT,			O(op)},</div><div class='del'>-    {tMATCH,			O(op)},</div><div class='del'>-    {tNEQ,			O(op)},</div><div class='del'>-    {tNMATCH,			O(op)},</div><div class='del'>-    {tNTH_REF,			O(backref)},</div><div class='del'>-    {tOP_ASGN,			O(op)},</div><div class='del'>-    {tOROP,			O(op)},</div><div class='del'>-    {tPOW,			O(op)},</div><div class='del'>-    {tQWORDS_BEG,		O(qwords_beg)},</div><div class='del'>-    {tQSYMBOLS_BEG,		O(qsymbols_beg)},</div><div class='del'>-    {tSYMBOLS_BEG,		O(symbols_beg)},</div><div class='del'>-    {tRATIONAL,			O(rational)},</div><div class='del'>-    {tREGEXP_BEG,		O(regexp_beg)},</div><div class='del'>-    {tREGEXP_END,		O(regexp_end)},</div><div class='del'>-    {tRPAREN,			O(rparen)},</div><div class='del'>-    {tRSHFT,			O(op)},</div><div class='del'>-    {tSTAR,			O(op)},</div><div class='del'>-    {tDSTAR,			O(op)},</div><div class='del'>-    {tANDDOT,			O(op)},</div><div class='del'>-    {tSTRING_BEG,		O(tstring_beg)},</div><div class='del'>-    {tSTRING_CONTENT,		O(tstring_content)},</div><div class='del'>-    {tSTRING_DBEG,		O(embexpr_beg)},</div><div class='del'>-    {tSTRING_DEND,		O(embexpr_end)},</div><div class='del'>-    {tSTRING_DVAR,		O(embvar)},</div><div class='del'>-    {tSTRING_END,		O(tstring_end)},</div><div class='del'>-    {tSYMBEG,			O(symbeg)},</div><div class='del'>-    {tUMINUS,			O(op)},</div><div class='del'>-    {tUMINUS_NUM,		O(op)},</div><div class='del'>-    {tUPLUS,			O(op)},</div><div class='del'>-    {tWORDS_BEG,		O(words_beg)},</div><div class='del'>-    {tXSTRING_BEG,		O(backtick)},</div><div class='del'>-    {tLABEL,			O(label)},</div><div class='del'>-    {tLABEL_END,		O(label_end)},</div><div class='del'>-    {tLAMBDA,			O(tlambda)},</div><div class='del'>-    {tLAMBEG,			O(tlambeg)},</div><div class='del'>-</div><div class='del'>-    /* ripper specific tokens */</div><div class='del'>-    {tIGNORED_NL,		O(ignored_nl)},</div><div class='del'>-    {tCOMMENT,			O(comment)},</div><div class='del'>-    {tEMBDOC_BEG,		O(embdoc_beg)},</div><div class='del'>-    {tEMBDOC,			O(embdoc)},</div><div class='del'>-    {tEMBDOC_END,		O(embdoc_end)},</div><div class='del'>-    {tSP,			O(sp)},</div><div class='del'>-    {tHEREDOC_BEG,		O(heredoc_beg)},</div><div class='del'>-    {tHEREDOC_END,		O(heredoc_end)},</div><div class='del'>-    {k__END__,			O(__end__)},</div><div class='del'>-};</div><div class='ctx'> </div><div class='ctx'> static ID</div><div class='del'>-ripper_token2eventid(int tok)</div><div class='add'>+ripper_token2eventid(enum yytokentype tok)</div><div class='ctx'> {</div><div class='del'>-    int i;</div><div class='add'>+#define O(member) (int)offsetof(ripper_scanner_ids_t, ripper_id_##member)+1</div><div class='add'>+    static const unsigned short offsets[] = {</div><div class='add'>+        [' ']			= O(words_sep),</div><div class='add'>+        ['!']			= O(op),</div><div class='add'>+        ['%']			= O(op),</div><div class='add'>+        ['&amp;']			= O(op),</div><div class='add'>+        ['*']			= O(op),</div><div class='add'>+        ['+']			= O(op),</div><div class='add'>+        ['-']			= O(op),</div><div class='add'>+        ['/']			= O(op),</div><div class='add'>+        ['&lt;']			= O(op),</div><div class='add'>+        ['=']			= O(op),</div><div class='add'>+        ['&gt;']			= O(op),</div><div class='add'>+        ['?']			= O(op),</div><div class='add'>+        ['^']			= O(op),</div><div class='add'>+        ['|']			= O(op),</div><div class='add'>+        ['~']			= O(op),</div><div class='add'>+        [':']			= O(op),</div><div class='add'>+        [',']			= O(comma),</div><div class='add'>+        ['.']			= O(period),</div><div class='add'>+        [';']			= O(semicolon),</div><div class='add'>+        ['`']			= O(backtick),</div><div class='add'>+        ['\n']			= O(nl),</div><div class='add'>+        [keyword_alias] 	= O(kw),</div><div class='add'>+        [keyword_and]		= O(kw),</div><div class='add'>+        [keyword_begin] 	= O(kw),</div><div class='add'>+        [keyword_break] 	= O(kw),</div><div class='add'>+        [keyword_case]		= O(kw),</div><div class='add'>+        [keyword_class] 	= O(kw),</div><div class='add'>+        [keyword_def]		= O(kw),</div><div class='add'>+        [keyword_defined]	= O(kw),</div><div class='add'>+        [keyword_do]		= O(kw),</div><div class='add'>+        [keyword_do_block]	= O(kw),</div><div class='add'>+        [keyword_do_cond]	= O(kw),</div><div class='add'>+        [keyword_else]		= O(kw),</div><div class='add'>+        [keyword_elsif] 	= O(kw),</div><div class='add'>+        [keyword_end]		= O(kw),</div><div class='add'>+        [keyword_ensure]	= O(kw),</div><div class='add'>+        [keyword_false] 	= O(kw),</div><div class='add'>+        [keyword_for]		= O(kw),</div><div class='add'>+        [keyword_if]		= O(kw),</div><div class='add'>+        [modifier_if]		= O(kw),</div><div class='add'>+        [keyword_in]		= O(kw),</div><div class='add'>+        [keyword_module]	= O(kw),</div><div class='add'>+        [keyword_next]		= O(kw),</div><div class='add'>+        [keyword_nil]		= O(kw),</div><div class='add'>+        [keyword_not]		= O(kw),</div><div class='add'>+        [keyword_or]		= O(kw),</div><div class='add'>+        [keyword_redo]		= O(kw),</div><div class='add'>+        [keyword_rescue]	= O(kw),</div><div class='add'>+        [modifier_rescue]	= O(kw),</div><div class='add'>+        [keyword_retry] 	= O(kw),</div><div class='add'>+        [keyword_return]	= O(kw),</div><div class='add'>+        [keyword_self]		= O(kw),</div><div class='add'>+        [keyword_super] 	= O(kw),</div><div class='add'>+        [keyword_then]		= O(kw),</div><div class='add'>+        [keyword_true]		= O(kw),</div><div class='add'>+        [keyword_undef] 	= O(kw),</div><div class='add'>+        [keyword_unless]	= O(kw),</div><div class='add'>+        [modifier_unless]	= O(kw),</div><div class='add'>+        [keyword_until] 	= O(kw),</div><div class='add'>+        [modifier_until]	= O(kw),</div><div class='add'>+        [keyword_when]		= O(kw),</div><div class='add'>+        [keyword_while] 	= O(kw),</div><div class='add'>+        [modifier_while]	= O(kw),</div><div class='add'>+        [keyword_yield] 	= O(kw),</div><div class='add'>+        [keyword__FILE__]	= O(kw),</div><div class='add'>+        [keyword__LINE__]	= O(kw),</div><div class='add'>+        [keyword__ENCODING__]	= O(kw),</div><div class='add'>+        [keyword_BEGIN] 	= O(kw),</div><div class='add'>+        [keyword_END]		= O(kw),</div><div class='add'>+        [keyword_do_LAMBDA]	= O(kw),</div><div class='add'>+        [tAMPER]		= O(op),</div><div class='add'>+        [tANDOP]		= O(op),</div><div class='add'>+        [tAREF] 		= O(op),</div><div class='add'>+        [tASET] 		= O(op),</div><div class='add'>+        [tASSOC]		= O(op),</div><div class='add'>+        [tBACK_REF]		= O(backref),</div><div class='add'>+        [tCHAR] 		= O(CHAR),</div><div class='add'>+        [tCMP]			= O(op),</div><div class='add'>+        [tCOLON2]		= O(op),</div><div class='add'>+        [tCOLON3]		= O(op),</div><div class='add'>+        [tCONSTANT]		= O(const),</div><div class='add'>+        [tCVAR] 		= O(cvar),</div><div class='add'>+        [tDOT2] 		= O(op),</div><div class='add'>+        [tDOT3] 		= O(op),</div><div class='add'>+        [tBDOT2]		= O(op),</div><div class='add'>+        [tBDOT3]		= O(op),</div><div class='add'>+        [tEQ]			= O(op),</div><div class='add'>+        [tEQQ]			= O(op),</div><div class='add'>+        [tFID]			= O(ident),</div><div class='add'>+        [tFLOAT]		= O(float),</div><div class='add'>+        [tGEQ]			= O(op),</div><div class='add'>+        [tGVAR] 		= O(gvar),</div><div class='add'>+        [tIDENTIFIER]		= O(ident),</div><div class='add'>+        [tIMAGINARY]		= O(imaginary),</div><div class='add'>+        [tINTEGER]		= O(int),</div><div class='add'>+        [tIVAR] 		= O(ivar),</div><div class='add'>+        [tLBRACE]		= O(lbrace),</div><div class='add'>+        [tLBRACE_ARG]		= O(lbrace),</div><div class='add'>+        ['{']			= O(lbrace),</div><div class='add'>+        ['}']			= O(rbrace),</div><div class='add'>+        [tLBRACK]		= O(lbracket),</div><div class='add'>+        ['[']			= O(lbracket),</div><div class='add'>+        [']']			= O(rbracket),</div><div class='add'>+        [tLEQ]			= O(op),</div><div class='add'>+        [tLPAREN]		= O(lparen),</div><div class='add'>+        [tLPAREN_ARG]		= O(lparen),</div><div class='add'>+        ['(']			= O(lparen),</div><div class='add'>+        [')']			= O(rparen),</div><div class='add'>+        [tLSHFT]		= O(op),</div><div class='add'>+        [tMATCH]		= O(op),</div><div class='add'>+        [tNEQ]			= O(op),</div><div class='add'>+        [tNMATCH]		= O(op),</div><div class='add'>+        [tNTH_REF]		= O(backref),</div><div class='add'>+        [tOP_ASGN]		= O(op),</div><div class='add'>+        [tOROP] 		= O(op),</div><div class='add'>+        [tPOW]			= O(op),</div><div class='add'>+        [tQWORDS_BEG]		= O(qwords_beg),</div><div class='add'>+        [tQSYMBOLS_BEG] 	= O(qsymbols_beg),</div><div class='add'>+        [tSYMBOLS_BEG]		= O(symbols_beg),</div><div class='add'>+        [tRATIONAL]		= O(rational),</div><div class='add'>+        [tREGEXP_BEG]		= O(regexp_beg),</div><div class='add'>+        [tREGEXP_END]		= O(regexp_end),</div><div class='add'>+        [tRPAREN]		= O(rparen),</div><div class='add'>+        [tRSHFT]		= O(op),</div><div class='add'>+        [tSTAR] 		= O(op),</div><div class='add'>+        [tDSTAR]		= O(op),</div><div class='add'>+        [tANDDOT]		= O(op),</div><div class='add'>+        [tSTRING_BEG]		= O(tstring_beg),</div><div class='add'>+        [tSTRING_CONTENT]	= O(tstring_content),</div><div class='add'>+        [tSTRING_DBEG]		= O(embexpr_beg),</div><div class='add'>+        [tSTRING_DEND]		= O(embexpr_end),</div><div class='add'>+        [tSTRING_DVAR]		= O(embvar),</div><div class='add'>+        [tSTRING_END]		= O(tstring_end),</div><div class='add'>+        [tSYMBEG]		= O(symbeg),</div><div class='add'>+        [tUMINUS]		= O(op),</div><div class='add'>+        [tUMINUS_NUM]		= O(op),</div><div class='add'>+        [tUPLUS]		= O(op),</div><div class='add'>+        [tWORDS_BEG]		= O(words_beg),</div><div class='add'>+        [tXSTRING_BEG]		= O(backtick),</div><div class='add'>+        [tLABEL]		= O(label),</div><div class='add'>+        [tLABEL_END]		= O(label_end),</div><div class='add'>+        [tLAMBDA]		= O(tlambda),</div><div class='add'>+        [tLAMBEG]		= O(tlambeg),</div><div class='add'>+</div><div class='add'>+        /* ripper specific tokens */</div><div class='add'>+        [tIGNORED_NL]		= O(ignored_nl),</div><div class='add'>+        [tCOMMENT]		= O(comment),</div><div class='add'>+        [tEMBDOC_BEG]		= O(embdoc_beg),</div><div class='add'>+        [tEMBDOC]		= O(embdoc),</div><div class='add'>+        [tEMBDOC_END]		= O(embdoc_end),</div><div class='add'>+        [tSP]			= O(sp),</div><div class='add'>+        [tHEREDOC_BEG]		= O(heredoc_beg),</div><div class='add'>+        [tHEREDOC_END]		= O(heredoc_end),</div><div class='add'>+        [k__END__]		= O(__end__),</div><div class='add'>+    };</div><div class='add'>+#undef O</div><div class='ctx'> </div><div class='del'>-    for (i = 0; i &lt; numberof(token_to_eventid); i++) {</div><div class='del'>-	const struct token_assoc *const a = &amp;token_to_eventid[i];</div><div class='del'>-        if (a-&gt;token == tok)</div><div class='del'>-            return *(const ID *)((const char *)&amp;ripper_scanner_ids + a-&gt;id_offset);</div><div class='add'>+    int i = (int)tok;</div><div class='add'>+    if (i &gt;= 0 &amp;&amp; i &lt; numberof(offsets) &amp;&amp; (i = offsets[i]) &gt; 0) {</div><div class='add'>+        return *(const ID *)((const char *)&amp;ripper_scanner_ids-1+i);</div><div class='ctx'>     }</div><div class='del'>-    if (tok &lt; 256) {</div><div class='add'>+    /* 128..256 are used as operator tokens */</div><div class='add'>+    if (tok &lt; 128) {</div><div class='ctx'>         return ripper_scanner_ids.ripper_id_CHAR;</div><div class='ctx'>     }</div><div class='ctx'>     rb_raise(rb_eRuntimeError, "[Ripper FATAL] unknown token %d", tok);</div><div class='head'>diff --git a/ext/ripper/extconf.rb b/ext/ripper/extconf.rb<br/>index 89b46abcfd..65cb5030d3 100644<br/>--- a/<a href='/ruby.git/tree/ext/ripper/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/ripper/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/ripper/extconf.rb</a></div><div class='hunk'>@@ -5,18 +5,23 @@ require 'mkmf'</div><div class='ctx'> require 'rbconfig'</div><div class='ctx'> </div><div class='ctx'> def main</div><div class='del'>-  unless find_executable('bison')</div><div class='add'>+  yacc = ENV["YACC"] || "bison"</div><div class='add'>+</div><div class='add'>+  unless find_executable(yacc)</div><div class='ctx'>     unless File.exist?('ripper.c') or File.exist?("#{$srcdir}/ripper.c")</div><div class='ctx'>       raise 'missing bison; abort'</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'>   $objs = %w(ripper.o)</div><div class='del'>-  $cleanfiles.concat %w(ripper.y ripper.c ripper.E ripper.output y.output eventids1.c eventids2table.c .eventids2-check)</div><div class='add'>+  $distcleanfiles.concat %w(ripper.y ripper.c eventids1.c eventids2table.c)</div><div class='add'>+  $cleanfiles.concat %w(ripper.E ripper.output y.output .eventids2-check)</div><div class='ctx'>   $defs &lt;&lt; '-DRIPPER'</div><div class='ctx'>   $defs &lt;&lt; '-DRIPPER_DEBUG' if $debug</div><div class='ctx'>   $VPATH &lt;&lt; '$(topdir)' &lt;&lt; '$(top_srcdir)'</div><div class='ctx'>   $INCFLAGS &lt;&lt; ' -I$(topdir) -I$(top_srcdir)'</div><div class='del'>-  create_makefile 'ripper'</div><div class='add'>+  create_makefile 'ripper' do |conf|</div><div class='add'>+    conf &lt;&lt; "BISON = #{yacc}"</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> main</div><div class='head'>diff --git a/ext/ripper/lib/ripper/core.rb b/ext/ripper/lib/ripper/core.rb<br/>index cdbaf7dd34..fa075da5b9 100644<br/>--- a/<a href='/ruby.git/tree/ext/ripper/lib/ripper/core.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/lib/ripper/core.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/ripper/lib/ripper/core.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/ripper/lib/ripper/core.rb</a></div><div class='hunk'>@@ -30,6 +30,7 @@ class Ripper</div><div class='ctx'> </div><div class='ctx'>   private</div><div class='ctx'> </div><div class='add'>+  # :stopdoc:</div><div class='ctx'>   def _dispatch_0() nil end</div><div class='ctx'>   def _dispatch_1(a) a end</div><div class='ctx'>   def _dispatch_2(a, b) a end</div><div class='hunk'>@@ -38,6 +39,7 @@ class Ripper</div><div class='ctx'>   def _dispatch_5(a, b, c, d, e) a end</div><div class='ctx'>   def _dispatch_6(a, b, c, d, e, f) a end</div><div class='ctx'>   def _dispatch_7(a, b, c, d, e, f, g) a end</div><div class='add'>+  # :startdoc:</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='ctx'>   # Parser Events</div><div class='head'>diff --git a/ext/ripper/lib/ripper/lexer.rb b/ext/ripper/lib/ripper/lexer.rb<br/>index 344328482b..a0f1cbeaa8 100644<br/>--- a/<a href='/ruby.git/tree/ext/ripper/lib/ripper/lexer.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/lib/ripper/lexer.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/ripper/lib/ripper/lexer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/ripper/lib/ripper/lexer.rb</a></div><div class='hunk'>@@ -14,89 +14,201 @@ require 'ripper/core'</div><div class='ctx'> class Ripper</div><div class='ctx'> </div><div class='ctx'>   # Tokenizes the Ruby program and returns an array of strings.</div><div class='add'>+  # The +filename+ and +lineno+ arguments are mostly ignored, since the</div><div class='add'>+  # return value is just the tokenized input.</div><div class='add'>+  # By default, this method does not handle syntax errors in +src+,</div><div class='add'>+  # use the +raise_errors+ keyword to raise a SyntaxError for an error in +src+.</div><div class='ctx'>   #</div><div class='ctx'>   #   p Ripper.tokenize("def m(a) nil end")</div><div class='ctx'>   #      # =&gt; ["def", " ", "m", "(", "a", ")", " ", "nil", " ", "end"]</div><div class='ctx'>   #</div><div class='del'>-  def Ripper.tokenize(src, filename = '-', lineno = 1)</div><div class='del'>-    Lexer.new(src, filename, lineno).tokenize</div><div class='add'>+  def Ripper.tokenize(src, filename = '-', lineno = 1, **kw)</div><div class='add'>+    Lexer.new(src, filename, lineno).tokenize(**kw)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Tokenizes the Ruby program and returns an array of an array,</div><div class='ctx'>   # which is formatted like</div><div class='ctx'>   # &lt;code&gt;[[lineno, column], type, token, state]&lt;/code&gt;.</div><div class='add'>+  # The +filename+ argument is mostly ignored.</div><div class='add'>+  # By default, this method does not handle syntax errors in +src+,</div><div class='add'>+  # use the +raise_errors+ keyword to raise a SyntaxError for an error in +src+.</div><div class='ctx'>   #</div><div class='ctx'>   #   require 'ripper'</div><div class='ctx'>   #   require 'pp'</div><div class='ctx'>   #</div><div class='ctx'>   #   pp Ripper.lex("def m(a) nil end")</div><div class='del'>-  #   #=&gt; [[[1,  0], :on_kw,     "def", Ripper::EXPR_FNAME                   ],</div><div class='del'>-  #        [[1,  3], :on_sp,     " ",   Ripper::EXPR_FNAME                   ],</div><div class='del'>-  #        [[1,  4], :on_ident,  "m",   Ripper::EXPR_ENDFN                   ],</div><div class='del'>-  #        [[1,  5], :on_lparen, "(",   Ripper::EXPR_LABEL | Ripper::EXPR_BEG],</div><div class='del'>-  #        [[1,  6], :on_ident,  "a",   Ripper::EXPR_ARG                     ],</div><div class='del'>-  #        [[1,  7], :on_rparen, ")",   Ripper::EXPR_ENDFN                   ],</div><div class='del'>-  #        [[1,  8], :on_sp,     " ",   Ripper::EXPR_BEG                     ],</div><div class='del'>-  #        [[1,  9], :on_kw,     "nil", Ripper::EXPR_END                     ],</div><div class='del'>-  #        [[1, 12], :on_sp,     " ",   Ripper::EXPR_END                     ],</div><div class='del'>-  #        [[1, 13], :on_kw,     "end", Ripper::EXPR_END                     ]]</div><div class='add'>+  #   #=&gt; [[[1,  0], :on_kw,     "def", FNAME    ],</div><div class='add'>+  #        [[1,  3], :on_sp,     " ",   FNAME    ],</div><div class='add'>+  #        [[1,  4], :on_ident,  "m",   ENDFN    ],</div><div class='add'>+  #        [[1,  5], :on_lparen, "(",   BEG|LABEL],</div><div class='add'>+  #        [[1,  6], :on_ident,  "a",   ARG      ],</div><div class='add'>+  #        [[1,  7], :on_rparen, ")",   ENDFN    ],</div><div class='add'>+  #        [[1,  8], :on_sp,     " ",   BEG      ],</div><div class='add'>+  #        [[1,  9], :on_kw,     "nil", END      ],</div><div class='add'>+  #        [[1, 12], :on_sp,     " ",   END      ],</div><div class='add'>+  #        [[1, 13], :on_kw,     "end", END      ]]</div><div class='ctx'>   #</div><div class='del'>-  def Ripper.lex(src, filename = '-', lineno = 1)</div><div class='del'>-    Lexer.new(src, filename, lineno).lex</div><div class='add'>+  def Ripper.lex(src, filename = '-', lineno = 1, **kw)</div><div class='add'>+    Lexer.new(src, filename, lineno).lex(**kw)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   class Lexer &lt; ::Ripper   #:nodoc: internal use only</div><div class='del'>-    State = Struct.new(:to_int, :to_s) do</div><div class='add'>+    class State</div><div class='add'>+      attr_reader :to_int, :to_s</div><div class='add'>+</div><div class='add'>+      def initialize(i)</div><div class='add'>+        @to_int = i</div><div class='add'>+        @to_s = Ripper.lex_state_name(i)</div><div class='add'>+        freeze</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def [](index)</div><div class='add'>+        case index</div><div class='add'>+        when 0, :to_int</div><div class='add'>+          @to_int</div><div class='add'>+        when 1, :to_s</div><div class='add'>+          @event</div><div class='add'>+        else</div><div class='add'>+          nil</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       alias to_i to_int</div><div class='del'>-      def initialize(i) super(i, Ripper.lex_state_name(i)).freeze end</div><div class='del'>-      def inspect; "#&lt;#{self.class}: #{self}&gt;" end</div><div class='add'>+      alias inspect to_s</div><div class='ctx'>       def pretty_print(q) q.text(to_s) end</div><div class='ctx'>       def ==(i) super or to_int == i end</div><div class='ctx'>       def &amp;(i) self.class.new(to_int &amp; i) end</div><div class='del'>-      def |(i) self.class.new(to_int &amp; i) end</div><div class='add'>+      def |(i) self.class.new(to_int | i) end</div><div class='ctx'>       def allbits?(i) to_int.allbits?(i) end</div><div class='ctx'>       def anybits?(i) to_int.anybits?(i) end</div><div class='ctx'>       def nobits?(i) to_int.nobits?(i) end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    Elem = Struct.new(:pos, :event, :tok, :state) do</div><div class='del'>-      def initialize(pos, event, tok, state)</div><div class='del'>-        super(pos, event, tok, State.new(state))</div><div class='add'>+    class Elem</div><div class='add'>+      attr_accessor :pos, :event, :tok, :state, :message</div><div class='add'>+</div><div class='add'>+      def initialize(pos, event, tok, state, message = nil)</div><div class='add'>+        @pos = pos</div><div class='add'>+        @event = event</div><div class='add'>+        @tok = tok</div><div class='add'>+        @state = State.new(state)</div><div class='add'>+        @message = message</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def [](index)</div><div class='add'>+        case index</div><div class='add'>+        when 0, :pos</div><div class='add'>+          @pos</div><div class='add'>+        when 1, :event</div><div class='add'>+          @event</div><div class='add'>+        when 2, :tok</div><div class='add'>+          @tok</div><div class='add'>+        when 3, :state</div><div class='add'>+          @state</div><div class='add'>+        when 4, :message</div><div class='add'>+          @message</div><div class='add'>+        else</div><div class='add'>+          nil</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def inspect</div><div class='add'>+        "#&lt;#{self.class}: #{event}@#{pos[0]}:#{pos[1]}:#{state}: #{tok.inspect}#{": " if message}#{message}&gt;"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      alias to_s inspect</div><div class='add'>+</div><div class='add'>+      def pretty_print(q)</div><div class='add'>+        q.group(2, "#&lt;#{self.class}:", "&gt;") {</div><div class='add'>+          q.breakable</div><div class='add'>+          q.text("#{event}@#{pos[0]}:#{pos[1]}")</div><div class='add'>+          q.breakable</div><div class='add'>+          state.pretty_print(q)</div><div class='add'>+          q.breakable</div><div class='add'>+          q.text("token: ")</div><div class='add'>+          tok.pretty_print(q)</div><div class='add'>+          if message</div><div class='add'>+            q.breakable</div><div class='add'>+            q.text("message: ")</div><div class='add'>+            q.text(message)</div><div class='add'>+          end</div><div class='add'>+        }</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def to_a</div><div class='add'>+        if @message</div><div class='add'>+          [@pos, @event, @tok, @state, @message]</div><div class='add'>+        else</div><div class='add'>+          [@pos, @event, @tok, @state]</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def tokenize</div><div class='del'>-      parse().sort_by(&amp;:pos).map(&amp;:tok)</div><div class='add'>+    attr_reader :errors</div><div class='add'>+</div><div class='add'>+    def tokenize(**kw)</div><div class='add'>+      parse(**kw).sort_by(&amp;:pos).map(&amp;:tok)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def lex</div><div class='del'>-      parse().sort_by(&amp;:pos).map(&amp;:to_a)</div><div class='add'>+    def lex(**kw)</div><div class='add'>+      parse(**kw).sort_by(&amp;:pos).map(&amp;:to_a)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def parse</div><div class='add'>+    # parse the code and returns elements including errors.</div><div class='add'>+    def scan(**kw)</div><div class='add'>+      result = (parse(**kw) + errors + @stack.flatten).uniq.sort_by {|e| [*e.pos, (e.message ? -1 : 0)]}</div><div class='add'>+      result.each_with_index do |e, i|</div><div class='add'>+        if e.event == :on_parse_error and e.tok.empty? and (pre = result[i-1]) and</div><div class='add'>+          pre.pos[0] == e.pos[0] and (pre.pos[1] + pre.tok.size) == e.pos[1]</div><div class='add'>+          e.tok = pre.tok</div><div class='add'>+          e.pos[1] = pre.pos[1]</div><div class='add'>+          result[i-1] = e</div><div class='add'>+          result[i] = pre</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      result</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse(raise_errors: false)</div><div class='add'>+      @errors = []</div><div class='ctx'>       @buf = []</div><div class='ctx'>       @stack = []</div><div class='del'>-      super</div><div class='add'>+      super()</div><div class='add'>+      @buf = @stack.pop unless @stack.empty?</div><div class='add'>+      if raise_errors and !@errors.empty?</div><div class='add'>+        raise SyntaxError, @errors.map(&amp;:message).join(' ;')</div><div class='add'>+      end</div><div class='ctx'>       @buf.flatten!</div><div class='del'>-      @buf</div><div class='add'>+      unless (result = @buf).empty?</div><div class='add'>+        result.concat(@buf) until (@buf = []; super(); @buf.flatten!; @buf.empty?)</div><div class='add'>+      end</div><div class='add'>+      result</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     private</div><div class='ctx'> </div><div class='add'>+    unless SCANNER_EVENT_TABLE.key?(:ignored_sp)</div><div class='add'>+      SCANNER_EVENT_TABLE[:ignored_sp] = 1</div><div class='add'>+      SCANNER_EVENTS &lt;&lt; :ignored_sp</div><div class='add'>+      EVENTS &lt;&lt; :ignored_sp</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def on_heredoc_dedent(v, w)</div><div class='ctx'>       ignored_sp = []</div><div class='ctx'>       heredoc = @buf.last</div><div class='del'>-      heredoc.each_with_index do |e, i|</div><div class='del'>-        if Elem === e and e.event == :on_tstring_content and e.pos[1].zero?</div><div class='del'>-          tok = e.tok.dup if w &gt; 0 and /\A\s/ =~ e.tok</div><div class='del'>-          if (n = dedent_string(e.tok, w)) &gt; 0</div><div class='del'>-            if e.tok.empty?</div><div class='del'>-              e.tok = tok[0, n]</div><div class='del'>-              e.event = :on_ignored_sp</div><div class='del'>-              next</div><div class='add'>+      if Array === heredoc</div><div class='add'>+        heredoc.each_with_index do |e, i|</div><div class='add'>+          if Elem === e and e.event == :on_tstring_content and e.pos[1].zero?</div><div class='add'>+            tok = e.tok.dup if w &gt; 0 and /\A\s/ =~ e.tok</div><div class='add'>+            if (n = dedent_string(e.tok, w)) &gt; 0</div><div class='add'>+              if e.tok.empty?</div><div class='add'>+                e.tok = tok[0, n]</div><div class='add'>+                e.event = :on_ignored_sp</div><div class='add'>+                next</div><div class='add'>+              end</div><div class='add'>+              ignored_sp &lt;&lt; [i, Elem.new(e.pos.dup, :on_ignored_sp, tok[0, n], e.state)]</div><div class='add'>+              e.pos[1] += n</div><div class='ctx'>             end</div><div class='del'>-            ignored_sp &lt;&lt; [i, Elem.new(e.pos.dup, :on_ignored_sp, tok[0, n], e.state)]</div><div class='del'>-            e.pos[1] += n</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='hunk'>@@ -109,19 +221,39 @@ class Ripper</div><div class='ctx'>     def on_heredoc_beg(tok)</div><div class='ctx'>       @stack.push @buf</div><div class='ctx'>       buf = []</div><div class='del'>-      @buf &lt;&lt; buf</div><div class='add'>+      @buf.push buf</div><div class='ctx'>       @buf = buf</div><div class='ctx'>       @buf.push Elem.new([lineno(), column()], __callee__, tok, state())</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def on_heredoc_end(tok)</div><div class='ctx'>       @buf.push Elem.new([lineno(), column()], __callee__, tok, state())</div><div class='del'>-      @buf = @stack.pop</div><div class='add'>+      @buf = @stack.pop unless @stack.empty?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def _push_token(tok)</div><div class='del'>-      @buf.push Elem.new([lineno(), column()], __callee__, tok, state())</div><div class='add'>+      e = Elem.new([lineno(), column()], __callee__, tok, state())</div><div class='add'>+      @buf.push(e)</div><div class='add'>+      e</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def on_error1(mesg)</div><div class='add'>+      @errors.push Elem.new([lineno(), column()], __callee__, token(), state(), mesg)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def on_error2(mesg, elem)</div><div class='add'>+      if elem</div><div class='add'>+        elem = Elem.new(elem.pos, __callee__, elem.tok, elem.state, mesg)</div><div class='add'>+      else</div><div class='add'>+        elem = Elem.new([lineno(), column()], __callee__, token(), state(), mesg)</div><div class='add'>+      end</div><div class='add'>+      @errors.push elem</div><div class='add'>+    end</div><div class='add'>+    PARSER_EVENTS.grep(/_error\z/) do |e|</div><div class='add'>+      arity = PARSER_EVENT_TABLE.fetch(e)</div><div class='add'>+      alias_method "on_#{e}", "on_error#{arity}"</div><div class='ctx'>     end</div><div class='add'>+    alias compile_error on_error1</div><div class='ctx'> </div><div class='ctx'>     (SCANNER_EVENTS.map {|event|:"on_#{event}"} - private_instance_methods(false)).each do |event|</div><div class='ctx'>       alias_method event, :_push_token</div><div class='head'>diff --git a/ext/ripper/lib/ripper/sexp.rb b/ext/ripper/lib/ripper/sexp.rb<br/>index b52dd30ddc..b1d553b1da 100644<br/>--- a/<a href='/ruby.git/tree/ext/ripper/lib/ripper/sexp.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/lib/ripper/sexp.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/ripper/lib/ripper/sexp.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/ripper/lib/ripper/sexp.rb</a></div><div class='hunk'>@@ -17,6 +17,10 @@ class Ripper</div><div class='ctx'>   # Parses +src+ and create S-exp tree.</div><div class='ctx'>   # Returns more readable tree rather than Ripper.sexp_raw.</div><div class='ctx'>   # This method is mainly for developer use.</div><div class='add'>+  # The +filename+ argument is mostly ignored.</div><div class='add'>+  # By default, this method does not handle syntax errors in +src+,</div><div class='add'>+  # returning +nil+ in such cases. Use the +raise_errors+ keyword</div><div class='add'>+  # to raise a SyntaxError for an error in +src+.</div><div class='ctx'>   #</div><div class='ctx'>   #   require 'ripper'</div><div class='ctx'>   #   require 'pp'</div><div class='hunk'>@@ -25,18 +29,28 @@ class Ripper</div><div class='ctx'>   #     #=&gt; [:program,</div><div class='ctx'>   #          [[:def,</div><div class='ctx'>   #           [:@ident, "m", [1, 4]],</div><div class='del'>-  #           [:paren, [:params, [[:@ident, "a", [1, 6]]], nil, nil, nil, nil]],</div><div class='add'>+  #           [:paren, [:params, [[:@ident, "a", [1, 6]]], nil, nil, nil, nil, nil, nil]],</div><div class='ctx'>   #           [:bodystmt, [[:var_ref, [:@kw, "nil", [1, 9]]]], nil, nil, nil]]]]</div><div class='ctx'>   #</div><div class='del'>-  def Ripper.sexp(src, filename = '-', lineno = 1)</div><div class='add'>+  def Ripper.sexp(src, filename = '-', lineno = 1, raise_errors: false)</div><div class='ctx'>     builder = SexpBuilderPP.new(src, filename, lineno)</div><div class='ctx'>     sexp = builder.parse</div><div class='del'>-    sexp unless builder.error?</div><div class='add'>+    if builder.error?</div><div class='add'>+      if raise_errors</div><div class='add'>+        raise SyntaxError, builder.error</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      sexp</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # [EXPERIMENTAL]</div><div class='ctx'>   # Parses +src+ and create S-exp tree.</div><div class='ctx'>   # This method is mainly for developer use.</div><div class='add'>+  # The +filename+ argument is mostly ignored.</div><div class='add'>+  # By default, this method does not handle syntax errors in +src+,</div><div class='add'>+  # returning +nil+ in such cases. Use the +raise_errors+ keyword</div><div class='add'>+  # to raise a SyntaxError for an error in +src+.</div><div class='ctx'>   #</div><div class='ctx'>   #   require 'ripper'</div><div class='ctx'>   #   require 'pp'</div><div class='hunk'>@@ -54,13 +68,21 @@ class Ripper</div><div class='ctx'>   #             nil,</div><div class='ctx'>   #             nil]]]]</div><div class='ctx'>   #</div><div class='del'>-  def Ripper.sexp_raw(src, filename = '-', lineno = 1)</div><div class='add'>+  def Ripper.sexp_raw(src, filename = '-', lineno = 1, raise_errors: false)</div><div class='ctx'>     builder = SexpBuilder.new(src, filename, lineno)</div><div class='ctx'>     sexp = builder.parse</div><div class='del'>-    sexp unless builder.error?</div><div class='add'>+    if builder.error?</div><div class='add'>+      if raise_errors</div><div class='add'>+        raise SyntaxError, builder.error</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      sexp</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   class SexpBuilder &lt; ::Ripper   #:nodoc:</div><div class='add'>+    attr_reader :error</div><div class='add'>+</div><div class='ctx'>     private</div><div class='ctx'> </div><div class='ctx'>     def dedent_element(e, width)</div><div class='hunk'>@@ -107,6 +129,13 @@ class Ripper</div><div class='ctx'>         end</div><div class='ctx'>       End</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def on_error(mesg)</div><div class='add'>+      @error = mesg</div><div class='add'>+    end</div><div class='add'>+    remove_method :on_parse_error</div><div class='add'>+    alias on_parse_error on_error</div><div class='add'>+    alias compile_error on_error</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   class SexpBuilderPP &lt; SexpBuilder #:nodoc:</div><div class='head'>diff --git a/ext/ripper/tools/dsl.rb b/ext/ripper/tools/dsl.rb<br/>index aafaa6f407..49ff51711f 100644<br/>--- a/<a href='/ruby.git/tree/ext/ripper/tools/dsl.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/tools/dsl.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/ripper/tools/dsl.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/ripper/tools/dsl.rb</a></div><div class='hunk'>@@ -7,24 +7,28 @@</div><div class='ctx'> #   v2 = dispatch0(void_stmt);</div><div class='ctx'> #   $$ = dispatch2(stmts_add, v1, v2);</div><div class='ctx'> </div><div class='add'>+$dollar = "$$"</div><div class='add'>+alias $$ $dollar</div><div class='add'>+</div><div class='ctx'> class DSL</div><div class='ctx'>   def initialize(code, options)</div><div class='ctx'>     @events = {}</div><div class='ctx'>     @error = options.include?("error")</div><div class='ctx'>     @brace = options.include?("brace")</div><div class='del'>-    @final = options.include?("final")</div><div class='add'>+    if options.include?("final")</div><div class='add'>+      @final = "p-&gt;result"</div><div class='add'>+    else</div><div class='add'>+      @final = (options.grep(/\A\$(?:\$|\d+)\z/)[0] || "$$")</div><div class='add'>+    end</div><div class='ctx'>     @vars = 0</div><div class='ctx'> </div><div class='ctx'>     # create $1 == "$1", $2 == "$2", ...</div><div class='del'>-    re, s = "", ""</div><div class='del'>-    1.upto(9) do |n|</div><div class='del'>-      re &lt;&lt; "(..)"</div><div class='del'>-      s &lt;&lt; "$#{ n }"</div><div class='del'>-    end</div><div class='del'>-    /#{ re }/ =~ s</div><div class='add'>+    s = (1..20).map {|n| "$#{n}"}</div><div class='add'>+    re = Array.new(s.size, "([^\0]+)")</div><div class='add'>+    /#{re.join("\0")}/ =~ s.join("\0")</div><div class='ctx'> </div><div class='ctx'>     # struct parser_params *p</div><div class='del'>-    p = "p"</div><div class='add'>+    p = p = "p"</div><div class='ctx'> </div><div class='ctx'>     @code = ""</div><div class='ctx'>     @last_value = eval(code)</div><div class='hunk'>@@ -37,9 +41,7 @@ class DSL</div><div class='ctx'>   undef class</div><div class='ctx'> </div><div class='ctx'>   def generate</div><div class='del'>-    s = "$$"</div><div class='del'>-    s = "p-&gt;result" if @final</div><div class='del'>-    s = "#@code#{ s }=#@last_value;"</div><div class='add'>+    s = "#@code#@final=#@last_value;"</div><div class='ctx'>     s = "{VALUE #{ (1..@vars).map {|v| "v#{ v }" }.join(",") };#{ s }}" if @vars &gt; 0</div><div class='ctx'>     s &lt;&lt; "ripper_error(p);" if @error</div><div class='ctx'>     s = "{#{ s }}" if @brace</div><div class='hunk'>@@ -72,7 +74,7 @@ class DSL</div><div class='ctx'>   def method_missing(event, *args)</div><div class='ctx'>     if event.to_s =~ /!\z/</div><div class='ctx'>       add_event(event, args)</div><div class='del'>-    elsif args.empty? and /\Aid[A-Z]/ =~ event.to_s</div><div class='add'>+    elsif args.empty? and /\Aid[A-Z_]/ =~ event.to_s</div><div class='ctx'>       event</div><div class='ctx'>     else</div><div class='ctx'>       "#{ event }(#{ args.join(", ") })"</div><div class='head'>diff --git a/ext/ripper/tools/generate-param-macros.rb b/ext/ripper/tools/generate-param-macros.rb<br/>index f0de55a5f2..f0de55a5f2 100755..100644<br/>--- a/<a href='/ruby.git/tree/ext/ripper/tools/generate-param-macros.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/tools/generate-param-macros.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/ripper/tools/generate-param-macros.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/ripper/tools/generate-param-macros.rb</a></div><div class='head'>diff --git a/ext/ripper/tools/generate.rb b/ext/ripper/tools/generate.rb<br/>index 883e6ef2df..883e6ef2df 100755..100644<br/>--- a/<a href='/ruby.git/tree/ext/ripper/tools/generate.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/tools/generate.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/ripper/tools/generate.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/ripper/tools/generate.rb</a></div><div class='head'>diff --git a/ext/ripper/tools/preproc.rb b/ext/ripper/tools/preproc.rb<br/>index 7639a901df..cd85a5da61 100755..100644<br/>--- a/<a href='/ruby.git/tree/ext/ripper/tools/preproc.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/tools/preproc.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/ripper/tools/preproc.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/ripper/tools/preproc.rb</a></div><div class='hunk'>@@ -45,9 +45,9 @@ def prelude(f, out)</div><div class='ctx'>   while line = f.gets</div><div class='ctx'>     case line</div><div class='ctx'>     when /\A%%/</div><div class='del'>-      out &lt;&lt; '%%' &lt;&lt; $/</div><div class='add'>+      out &lt;&lt; "%%\n"</div><div class='ctx'>       return</div><div class='del'>-    when /\A%token/</div><div class='add'>+    when /\A%token/, /\A} &lt;node&gt;/</div><div class='ctx'>       out &lt;&lt; line.sub(/&lt;\w+&gt;/, '&lt;val&gt;')</div><div class='ctx'>     when /\A%type/</div><div class='ctx'>       out &lt;&lt; line.sub(/&lt;\w+&gt;/, '&lt;val&gt;')</div><div class='hunk'>@@ -79,15 +79,15 @@ def grammar(f, out)</div><div class='ctx'>   while line = f.gets</div><div class='ctx'>     case line</div><div class='ctx'>     when %r&lt;/\*% *ripper(?:\[(.*?)\])?: *(.*?) *%\*/&gt;</div><div class='del'>-      out &lt;&lt; DSL.new($2, ($1 || "").split(",")).generate &lt;&lt; $/</div><div class='add'>+      out &lt;&lt; DSL.new($2, ($1 || "").split(",")).generate &lt;&lt; "\n"</div><div class='ctx'>     when %r&lt;/\*%%%\*/&gt;</div><div class='del'>-      out &lt;&lt; '#if 0' &lt;&lt; $/</div><div class='add'>+      out &lt;&lt; "#if 0\n"</div><div class='ctx'>     when %r&lt;/\*%&gt;</div><div class='del'>-      out &lt;&lt; '#endif' &lt;&lt; $/</div><div class='add'>+      out &lt;&lt; "#endif\n"</div><div class='ctx'>     when %r&lt;%\*/&gt;</div><div class='del'>-      out &lt;&lt; $/</div><div class='add'>+      out &lt;&lt; "\n"</div><div class='ctx'>     when /\A%%/</div><div class='del'>-      out &lt;&lt; '%%' &lt;&lt; $/</div><div class='add'>+      out &lt;&lt; "%%\n"</div><div class='ctx'>       return</div><div class='ctx'>     else</div><div class='ctx'>       out &lt;&lt; line</div><div class='head'>diff --git a/ext/ripper/tools/strip.rb b/ext/ripper/tools/strip.rb<br/>index 23102f797a..23102f797a 100755..100644<br/>--- a/<a href='/ruby.git/tree/ext/ripper/tools/strip.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/ripper/tools/strip.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/ripper/tools/strip.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/ripper/tools/strip.rb</a></div><div class='head'>diff --git a/ext/rubyvm/depend b/ext/rubyvm/depend<br/>new file mode 100644<br/>index 0000000000..0301ce074c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/rubyvm/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/rubyvm/depend</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/sdbm/_sdbm.c b/ext/sdbm/_sdbm.c<br/>deleted file mode 100644<br/>index 3a42b0e569..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/sdbm/_sdbm.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/_sdbm.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,952 +0,0 @@</div><div class='del'>-/*</div><div class='del'>- * sdbm - ndbm work-alike hashed database library</div><div class='del'>- * based on Per-Aake Larson's Dynamic Hashing algorithms. BIT 18 (1978).</div><div class='del'>- * author: oz@nexus.yorku.ca</div><div class='del'>- * status: public domain.</div><div class='del'>- *</div><div class='del'>- * core routines</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#include "ruby/ruby.h"</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_UNISTD_H</div><div class='del'>-#include &lt;unistd.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include "sdbm.h"</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * sdbm - ndbm work-alike hashed database library</div><div class='del'>- * tuning and portability constructs [not nearly enough]</div><div class='del'>- * author: oz@nexus.yorku.ca</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#define BYTESIZ		8</div><div class='del'>-</div><div class='del'>-#ifdef BSD42</div><div class='del'>-#define SEEK_SET	L_SET</div><div class='del'>-#define	memset(s,c,n)	bzero((s), (n))		/* only when c is zero */</div><div class='del'>-#define	memcpy(s1,s2,n)	bcopy((s2), (s1), (n))</div><div class='del'>-#define	memcmp(s1,s2,n)	bcmp((s1),(s2),(n))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * important tuning parms (hah)</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef SEEDUPS</div><div class='del'>-#define SEEDUPS 1	/* always detect duplicates */</div><div class='del'>-#endif</div><div class='del'>-#ifndef BADMESS</div><div class='del'>-#define BADMESS 1	/* generate a message for worst case:</div><div class='del'>-			   cannot make room after SPLTMAX splits */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * misc</div><div class='del'>- */</div><div class='del'>-#ifdef DEBUG</div><div class='del'>-#define debug(x)	printf x</div><div class='del'>-#else</div><div class='del'>-#define debug(x)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef BIG_E</div><div class='del'>-#define GET_SHORT(p, i)	(((unsigned)((unsigned char *)(p))[(i)*2] &lt;&lt; 8) + (((unsigned char *)(p))[(i)*2 + 1]))</div><div class='del'>-#define PUT_SHORT(p, i, s) (((unsigned char *)(p))[(i)*2] = (unsigned char)((s) &gt;&gt; 8), ((unsigned char *)(p))[(i)*2 + 1] = (unsigned char)(s))</div><div class='del'>-#else</div><div class='del'>-#define GET_SHORT(p, i)	((p)[(i)])</div><div class='del'>-#define PUT_SHORT(p, i, s)	((p)[(i)] = (s))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/*#include "pair.h"*/</div><div class='del'>-static int   fitpair proto((char *, int));</div><div class='del'>-static void  putpair proto((char *, datum, datum));</div><div class='del'>-static datum getpair proto((char *, datum));</div><div class='del'>-static int   delpair proto((char *, datum));</div><div class='del'>-static int   chkpage proto((char *));</div><div class='del'>-static datum getnkey proto((char *, int));</div><div class='del'>-static void  splpage proto((char *, char *, long));</div><div class='del'>-#if SEEDUPS</div><div class='del'>-static int   duppair proto((char *, datum));</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#ifdef DOSISH</div><div class='del'>-#include &lt;io.h&gt;</div><div class='del'>-#endif</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;sys/stat.h&gt;</div><div class='del'>-#ifdef BSD42</div><div class='del'>-#include &lt;sys/file.h&gt;</div><div class='del'>-#else</div><div class='del'>-#include &lt;fcntl.h&gt;</div><div class='del'>-/*#include &lt;memory.h&gt;*/</div><div class='del'>-#endif</div><div class='del'>-#ifndef O_BINARY</div><div class='del'>-#define O_BINARY	0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include &lt;errno.h&gt;</div><div class='del'>-#ifndef EPERM</div><div class='del'>-#define EPERM	EACCES</div><div class='del'>-#endif</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-</div><div class='del'>-#ifdef __STDC__</div><div class='del'>-#include &lt;stddef.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef NULL</div><div class='del'>-#define NULL	0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * externals</div><div class='del'>- */</div><div class='del'>-#if !defined(__sun) &amp;&amp; !defined(_WIN32) &amp;&amp; !defined(__CYGWIN__) &amp;&amp; !defined(errno)</div><div class='del'>-extern int errno;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * forward</div><div class='del'>- */</div><div class='del'>-static int getdbit proto((DBM *, long));</div><div class='del'>-static int setdbit proto((DBM *, long));</div><div class='del'>-static int getpage proto((DBM *, long));</div><div class='del'>-static datum getnext proto((DBM *));</div><div class='del'>-static int makroom proto((DBM *, long, int));</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * useful macros</div><div class='del'>- */</div><div class='del'>-#define bad(x)		((x).dptr == NULL || (x).dsize &lt; 0)</div><div class='del'>-#define exhash(item)	sdbm_hash((item).dptr, (item).dsize)</div><div class='del'>-#define ioerr(db)	((db)-&gt;flags |= DBM_IOERR)</div><div class='del'>-</div><div class='del'>-#define OFF_PAG(off)	(long) (off) * PBLKSIZ</div><div class='del'>-#define OFF_DIR(off)	(long) (off) * DBLKSIZ</div><div class='del'>-</div><div class='del'>-static long masks[] = {</div><div class='del'>-	000000000000L, 000000000001L, 000000000003L,</div><div class='del'>-	000000000007L, 000000000017L, 000000000037L,</div><div class='del'>-	000000000077L, 000000000177L, 000000000377L,</div><div class='del'>-	000000000777L, 000000001777L, 000000003777L,</div><div class='del'>-	000000007777L, 000000017777L, 000000037777L,</div><div class='del'>-	000000077777L, 000000177777L, 000000377777L,</div><div class='del'>-	000000777777L, 000001777777L, 000003777777L,</div><div class='del'>-	000007777777L, 000017777777L, 000037777777L,</div><div class='del'>-	000077777777L, 000177777777L, 000377777777L,</div><div class='del'>-	000777777777L, 001777777777L, 003777777777L,</div><div class='del'>-	007777777777L, 017777777777L</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-datum nullitem = {NULL, 0};</div><div class='del'>-</div><div class='del'>-DBM *</div><div class='del'>-sdbm_open(register char *file, register int flags, register int mode)</div><div class='del'>-{</div><div class='del'>-	register DBM *db;</div><div class='del'>-	register char *dirname;</div><div class='del'>-	register char *pagname;</div><div class='del'>-	register size_t n;</div><div class='del'>-</div><div class='del'>-	if (file == NULL || !*file)</div><div class='del'>-		return errno = EINVAL, (DBM *) NULL;</div><div class='del'>-/*</div><div class='del'>- * need space for two separate filenames</div><div class='del'>- */</div><div class='del'>-	n = strlen(file) * 2 + strlen(DIRFEXT) + strlen(PAGFEXT) + 2;</div><div class='del'>-</div><div class='del'>-	if ((dirname = malloc(n)) == NULL)</div><div class='del'>-		return errno = ENOMEM, (DBM *) NULL;</div><div class='del'>-/*</div><div class='del'>- * build the file names</div><div class='del'>- */</div><div class='del'>-	dirname = strcat(strcpy(dirname, file), DIRFEXT);</div><div class='del'>-	pagname = strcpy(dirname + strlen(dirname) + 1, file);</div><div class='del'>-	pagname = strcat(pagname, PAGFEXT);</div><div class='del'>-</div><div class='del'>-	db = sdbm_prep(dirname, pagname, flags, mode);</div><div class='del'>-	free((char *) dirname);</div><div class='del'>-	return db;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-fd_set_cloexec(int fd)</div><div class='del'>-{</div><div class='del'>-	/* MinGW don't have F_GETFD and FD_CLOEXEC.  [ruby-core:40281] */</div><div class='del'>-#ifdef F_GETFD</div><div class='del'>-	int flags, ret;</div><div class='del'>-	flags = fcntl(fd, F_GETFD); /* should not fail except EBADF. */</div><div class='del'>-	if (flags == -1) {</div><div class='del'>-		return -1;</div><div class='del'>-	}</div><div class='del'>-	if (2 &lt; fd) {</div><div class='del'>-		if (!(flags &amp; FD_CLOEXEC)) {</div><div class='del'>-			flags |= FD_CLOEXEC;</div><div class='del'>-			ret = fcntl(fd, F_SETFD, flags);</div><div class='del'>-			if (ret == -1) {</div><div class='del'>-				return -1;</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-DBM *</div><div class='del'>-sdbm_prep(char *dirname, char *pagname, int flags, int mode)</div><div class='del'>-{</div><div class='del'>-	register DBM *db;</div><div class='del'>-	struct stat dstat;</div><div class='del'>-</div><div class='del'>-	if ((db = (DBM *) malloc(sizeof(DBM))) == NULL)</div><div class='del'>-		return errno = ENOMEM, (DBM *) NULL;</div><div class='del'>-</div><div class='del'>-        db-&gt;pagf = -1;</div><div class='del'>-        db-&gt;dirf = -1;</div><div class='del'>-        db-&gt;flags = 0;</div><div class='del'>-        db-&gt;hmask = 0;</div><div class='del'>-        db-&gt;blkptr = 0;</div><div class='del'>-        db-&gt;keyptr = 0;</div><div class='del'>-/*</div><div class='del'>- * adjust user flags so that WRONLY becomes RDWR,</div><div class='del'>- * as required by this package. Also set our internal</div><div class='del'>- * flag for RDONLY.</div><div class='del'>- */</div><div class='del'>-	if (flags &amp; O_WRONLY)</div><div class='del'>-		flags = (flags &amp; ~O_WRONLY) | O_RDWR;</div><div class='del'>-	if (flags &amp; O_RDONLY)</div><div class='del'>-		db-&gt;flags = DBM_RDONLY;</div><div class='del'>-/*</div><div class='del'>- * open the files in sequence, and stat the dirfile.</div><div class='del'>- * If we fail anywhere, undo everything, return NULL.</div><div class='del'>- */</div><div class='del'>-	flags |= O_BINARY;</div><div class='del'>-#ifdef O_CLOEXEC</div><div class='del'>-        flags |= O_CLOEXEC;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-	if ((db-&gt;pagf = open(pagname, flags, mode)) == -1) goto err;</div><div class='del'>-        if (fd_set_cloexec(db-&gt;pagf) == -1) goto err;</div><div class='del'>-        if ((db-&gt;dirf = open(dirname, flags, mode)) == -1) goto err;</div><div class='del'>-        if (fd_set_cloexec(db-&gt;dirf) == -1) goto err;</div><div class='del'>-/*</div><div class='del'>- * need the dirfile size to establish max bit number.</div><div class='del'>- */</div><div class='del'>-        if (fstat(db-&gt;dirf, &amp;dstat) == -1) goto err;</div><div class='del'>-/*</div><div class='del'>- * zero size: either a fresh database, or one with a single,</div><div class='del'>- * unsplit data page: dirpage is all zeros.</div><div class='del'>- */</div><div class='del'>-        db-&gt;dirbno = (!dstat.st_size) ? 0 : -1;</div><div class='del'>-        db-&gt;pagbno = -1;</div><div class='del'>-        db-&gt;maxbno = dstat.st_size * (long) BYTESIZ;</div><div class='del'>-</div><div class='del'>-        (void) memset(db-&gt;pagbuf, 0, PBLKSIZ);</div><div class='del'>-        (void) memset(db-&gt;dirbuf, 0, DBLKSIZ);</div><div class='del'>-/*</div><div class='del'>- * success</div><div class='del'>- */</div><div class='del'>-        return db;</div><div class='del'>-</div><div class='del'>-    err:</div><div class='del'>-        if (db-&gt;pagf != -1)</div><div class='del'>-                (void) close(db-&gt;pagf);</div><div class='del'>-        if (db-&gt;dirf != -1)</div><div class='del'>-                (void) close(db-&gt;dirf);</div><div class='del'>-	free((char *) db);</div><div class='del'>-	return (DBM *) NULL;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-sdbm_close(register DBM *db)</div><div class='del'>-{</div><div class='del'>-	if (db == NULL)</div><div class='del'>-		errno = EINVAL;</div><div class='del'>-	else {</div><div class='del'>-		(void) close(db-&gt;dirf);</div><div class='del'>-		(void) close(db-&gt;pagf);</div><div class='del'>-		free((char *) db);</div><div class='del'>-	}</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-datum</div><div class='del'>-sdbm_fetch(register DBM *db, datum key)</div><div class='del'>-{</div><div class='del'>-	if (db == NULL || bad(key))</div><div class='del'>-		return errno = EINVAL, nullitem;</div><div class='del'>-</div><div class='del'>-	if (getpage(db, exhash(key)))</div><div class='del'>-		return getpair(db-&gt;pagbuf, key);</div><div class='del'>-</div><div class='del'>-	return ioerr(db), nullitem;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-sdbm_delete(register DBM *db, datum key)</div><div class='del'>-{</div><div class='del'>-	if (db == NULL || bad(key))</div><div class='del'>-		return errno = EINVAL, -1;</div><div class='del'>-	if (sdbm_rdonly(db))</div><div class='del'>-		return errno = EPERM, -1;</div><div class='del'>-</div><div class='del'>-	if (getpage(db, exhash(key))) {</div><div class='del'>-		if (!delpair(db-&gt;pagbuf, key))</div><div class='del'>-			return -1;</div><div class='del'>-/*</div><div class='del'>- * update the page file</div><div class='del'>- */</div><div class='del'>-		if (lseek(db-&gt;pagf, OFF_PAG(db-&gt;pagbno), SEEK_SET) &lt; 0</div><div class='del'>-		    || write(db-&gt;pagf, db-&gt;pagbuf, PBLKSIZ) &lt; 0)</div><div class='del'>-			return ioerr(db), -1;</div><div class='del'>-</div><div class='del'>-		return 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return ioerr(db), -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-sdbm_store(register DBM *db, datum key, datum val, int flags)</div><div class='del'>-{</div><div class='del'>-	int need;</div><div class='del'>-	register long hash;</div><div class='del'>-</div><div class='del'>-	if (db == NULL || bad(key))</div><div class='del'>-		return errno = EINVAL, -1;</div><div class='del'>-	if (sdbm_rdonly(db))</div><div class='del'>-		return errno = EPERM, -1;</div><div class='del'>-</div><div class='del'>-	need = key.dsize + val.dsize;</div><div class='del'>-/*</div><div class='del'>- * is the pair too big (or too small) for this database ??</div><div class='del'>- */</div><div class='del'>-	if (need &lt; 0 || need &gt; PAIRMAX)</div><div class='del'>-		return errno = EINVAL, -1;</div><div class='del'>-</div><div class='del'>-	if (getpage(db, (hash = exhash(key)))) {</div><div class='del'>-/*</div><div class='del'>- * if we need to replace, delete the key/data pair</div><div class='del'>- * first. If it is not there, ignore.</div><div class='del'>- */</div><div class='del'>-		if (flags == DBM_REPLACE)</div><div class='del'>-			(void) delpair(db-&gt;pagbuf, key);</div><div class='del'>-#if SEEDUPS</div><div class='del'>-		else if (duppair(db-&gt;pagbuf, key))</div><div class='del'>-			return 1;</div><div class='del'>-#endif</div><div class='del'>-/*</div><div class='del'>- * if we do not have enough room, we have to split.</div><div class='del'>- */</div><div class='del'>-		if (!fitpair(db-&gt;pagbuf, need))</div><div class='del'>-			if (!makroom(db, hash, need))</div><div class='del'>-				return ioerr(db), -1;</div><div class='del'>-/*</div><div class='del'>- * we have enough room or split is successful. insert the key,</div><div class='del'>- * and update the page file.</div><div class='del'>- */</div><div class='del'>-		(void) putpair(db-&gt;pagbuf, key, val);</div><div class='del'>-</div><div class='del'>-		if (lseek(db-&gt;pagf, OFF_PAG(db-&gt;pagbno), SEEK_SET) &lt; 0</div><div class='del'>-		    || write(db-&gt;pagf, db-&gt;pagbuf, PBLKSIZ) &lt; 0)</div><div class='del'>-			return ioerr(db), -1;</div><div class='del'>-	/*</div><div class='del'>-	 * success</div><div class='del'>-	 */</div><div class='del'>-		return 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return ioerr(db), -1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * makroom - make room by splitting the overfull page</div><div class='del'>- * this routine will attempt to make room for SPLTMAX times before</div><div class='del'>- * giving up.</div><div class='del'>- */</div><div class='del'>-static int</div><div class='del'>-makroom(register DBM *db, long int hash, int need)</div><div class='del'>-{</div><div class='del'>-	long newp;</div><div class='del'>-	char twin[PBLKSIZ];</div><div class='del'>-#if defined _WIN32</div><div class='del'>-	char zer[PBLKSIZ];</div><div class='del'>-	long oldtail;</div><div class='del'>-#endif</div><div class='del'>-	char *pag = db-&gt;pagbuf;</div><div class='del'>-	char *new = twin;</div><div class='del'>-	register int smax = SPLTMAX;</div><div class='del'>-</div><div class='del'>-	do {</div><div class='del'>-/*</div><div class='del'>- * split the current page</div><div class='del'>- */</div><div class='del'>-		(void) splpage(pag, new, db-&gt;hmask + 1);</div><div class='del'>-/*</div><div class='del'>- * address of the new page</div><div class='del'>- */</div><div class='del'>-		newp = (hash &amp; db-&gt;hmask) | (db-&gt;hmask + 1);</div><div class='del'>-		debug(("newp: %ld\n", newp));</div><div class='del'>-/*</div><div class='del'>- * write delay, read avoidance/cache shuffle:</div><div class='del'>- * select the page for incoming pair: if key is to go to the new page,</div><div class='del'>- * write out the previous one, and copy the new one over, thus making</div><div class='del'>- * it the current page. If not, simply write the new page, and we are</div><div class='del'>- * still looking at the page of interest. current page is not updated</div><div class='del'>- * here, as sdbm_store will do so, after it inserts the incoming pair.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#if defined _WIN32</div><div class='del'>-		/*</div><div class='del'>-		 * Fill hole with 0 if made it.</div><div class='del'>-		 * (hole is NOT read as 0)</div><div class='del'>-		 */</div><div class='del'>-		oldtail = lseek(db-&gt;pagf, 0L, SEEK_END);</div><div class='del'>-		memset(zer, 0, PBLKSIZ);</div><div class='del'>-		while (OFF_PAG(newp) &gt; oldtail) {</div><div class='del'>-			if (lseek(db-&gt;pagf, 0L, SEEK_END) &lt; 0 ||</div><div class='del'>-			    write(db-&gt;pagf, zer, PBLKSIZ) &lt; 0) {</div><div class='del'>-</div><div class='del'>-				return 0;</div><div class='del'>-			}</div><div class='del'>-			oldtail += PBLKSIZ;</div><div class='del'>-		}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-		if (hash &amp; (db-&gt;hmask + 1)) {</div><div class='del'>-			if (lseek(db-&gt;pagf, OFF_PAG(db-&gt;pagbno), SEEK_SET) &lt; 0</div><div class='del'>-			    || write(db-&gt;pagf, db-&gt;pagbuf, PBLKSIZ) &lt; 0)</div><div class='del'>-				return 0;</div><div class='del'>-			db-&gt;pagbno = newp;</div><div class='del'>-			(void) memcpy(pag, new, PBLKSIZ);</div><div class='del'>-		}</div><div class='del'>-		else if (lseek(db-&gt;pagf, OFF_PAG(newp), SEEK_SET) &lt; 0</div><div class='del'>-			 || write(db-&gt;pagf, new, PBLKSIZ) &lt; 0)</div><div class='del'>-			return 0;</div><div class='del'>-</div><div class='del'>-		if (!setdbit(db, db-&gt;curbit))</div><div class='del'>-			return 0;</div><div class='del'>-/*</div><div class='del'>- * see if we have enough room now</div><div class='del'>- */</div><div class='del'>-		if (fitpair(pag, need))</div><div class='del'>-			return 1;</div><div class='del'>-/*</div><div class='del'>- * try again... update curbit and hmask as getpage would have</div><div class='del'>- * done. because of our update of the current page, we do not</div><div class='del'>- * need to read in anything. BUT we have to write the current</div><div class='del'>- * [deferred] page out, as the window of failure is too great.</div><div class='del'>- */</div><div class='del'>-		db-&gt;curbit = 2 * db-&gt;curbit +</div><div class='del'>-			((hash &amp; (db-&gt;hmask + 1)) ? 2 : 1);</div><div class='del'>-		db-&gt;hmask |= (db-&gt;hmask + 1);</div><div class='del'>-</div><div class='del'>-		if (lseek(db-&gt;pagf, OFF_PAG(db-&gt;pagbno), SEEK_SET) &lt; 0</div><div class='del'>-		    || write(db-&gt;pagf, db-&gt;pagbuf, PBLKSIZ) &lt; 0)</div><div class='del'>-			return 0;</div><div class='del'>-</div><div class='del'>-	} while (--smax);</div><div class='del'>-/*</div><div class='del'>- * if we are here, this is real bad news. After SPLTMAX splits,</div><div class='del'>- * we still cannot fit the key. say goodnight.</div><div class='del'>- */</div><div class='del'>-#if BADMESS</div><div class='del'>-	(void) (write(2, "sdbm: cannot insert after SPLTMAX attempts.\n", 44) &lt; 0);</div><div class='del'>-#endif</div><div class='del'>-	return 0;</div><div class='del'>-</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * the following two routines will break if</div><div class='del'>- * deletions aren't taken into account. (ndbm bug)</div><div class='del'>- */</div><div class='del'>-datum</div><div class='del'>-sdbm_firstkey(register DBM *db)</div><div class='del'>-{</div><div class='del'>-	if (db == NULL)</div><div class='del'>-		return errno = EINVAL, nullitem;</div><div class='del'>-/*</div><div class='del'>- * start at page 0</div><div class='del'>- */</div><div class='del'>-	(void) memset(db-&gt;pagbuf, 0, PBLKSIZ);</div><div class='del'>-	if (lseek(db-&gt;pagf, OFF_PAG(0), SEEK_SET) &lt; 0</div><div class='del'>-	    || read(db-&gt;pagf, db-&gt;pagbuf, PBLKSIZ) &lt; 0)</div><div class='del'>-		return ioerr(db), nullitem;</div><div class='del'>-	db-&gt;pagbno = 0;</div><div class='del'>-	db-&gt;blkptr = 0;</div><div class='del'>-	db-&gt;keyptr = 0;</div><div class='del'>-</div><div class='del'>-	return getnext(db);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-datum</div><div class='del'>-sdbm_nextkey(register DBM *db)</div><div class='del'>-{</div><div class='del'>-	if (db == NULL)</div><div class='del'>-		return errno = EINVAL, nullitem;</div><div class='del'>-	return getnext(db);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * all important binary trie traversal</div><div class='del'>- */</div><div class='del'>-static int</div><div class='del'>-getpage(register DBM *db, register long int hash)</div><div class='del'>-{</div><div class='del'>-	register int hbit;</div><div class='del'>-	register long dbit;</div><div class='del'>-	register long pagb;</div><div class='del'>-</div><div class='del'>-	dbit = 0;</div><div class='del'>-	hbit = 0;</div><div class='del'>-	while (dbit &lt; db-&gt;maxbno &amp;&amp; getdbit(db, dbit))</div><div class='del'>-		dbit = 2 * dbit + ((hash &amp; ((long) 1 &lt;&lt; hbit++)) ? 2 : 1);</div><div class='del'>-</div><div class='del'>-	debug(("dbit: %ld...", dbit));</div><div class='del'>-</div><div class='del'>-	db-&gt;curbit = dbit;</div><div class='del'>-	db-&gt;hmask = masks[hbit];</div><div class='del'>-</div><div class='del'>-	pagb = hash &amp; db-&gt;hmask;</div><div class='del'>-/*</div><div class='del'>- * see if the block we need is already in memory.</div><div class='del'>- * note: this lookaside cache has about 10% hit rate.</div><div class='del'>- */</div><div class='del'>-	if (pagb != db-&gt;pagbno) {</div><div class='del'>-/*</div><div class='del'>- * note: here, we assume a "hole" is read as 0s.</div><div class='del'>- * if not, must zero pagbuf first.</div><div class='del'>- */</div><div class='del'>-		(void) memset(db-&gt;pagbuf, 0, PBLKSIZ);</div><div class='del'>-</div><div class='del'>-		if (lseek(db-&gt;pagf, OFF_PAG(pagb), SEEK_SET) &lt; 0</div><div class='del'>-		    || read(db-&gt;pagf, db-&gt;pagbuf, PBLKSIZ) &lt; 0)</div><div class='del'>-			return 0;</div><div class='del'>-		if (!chkpage(db-&gt;pagbuf)) {</div><div class='del'>-			return 0;</div><div class='del'>-		}</div><div class='del'>-		db-&gt;pagbno = pagb;</div><div class='del'>-</div><div class='del'>-		debug(("pag read: %ld\n", pagb));</div><div class='del'>-	}</div><div class='del'>-	return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-getdbit(register DBM *db, register long int dbit)</div><div class='del'>-{</div><div class='del'>-	register long c;</div><div class='del'>-	register long dirb;</div><div class='del'>-</div><div class='del'>-	c = dbit / BYTESIZ;</div><div class='del'>-	dirb = c / DBLKSIZ;</div><div class='del'>-</div><div class='del'>-	if (dirb != db-&gt;dirbno) {</div><div class='del'>-		if (lseek(db-&gt;dirf, OFF_DIR(dirb), SEEK_SET) &lt; 0</div><div class='del'>-		    || read(db-&gt;dirf, db-&gt;dirbuf, DBLKSIZ) &lt; 0)</div><div class='del'>-			return 0;</div><div class='del'>-		db-&gt;dirbno = dirb;</div><div class='del'>-</div><div class='del'>-		debug(("dir read: %ld\n", dirb));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return db-&gt;dirbuf[c % DBLKSIZ] &amp; (1 &lt;&lt; (dbit % BYTESIZ));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-setdbit(register DBM *db, register long int dbit)</div><div class='del'>-{</div><div class='del'>-	register long c;</div><div class='del'>-	register long dirb;</div><div class='del'>-</div><div class='del'>-	c = dbit / BYTESIZ;</div><div class='del'>-	dirb = c / DBLKSIZ;</div><div class='del'>-</div><div class='del'>-	if (dirb != db-&gt;dirbno) {</div><div class='del'>-		if (lseek(db-&gt;dirf, OFF_DIR(dirb), SEEK_SET) &lt; 0</div><div class='del'>-		    || read(db-&gt;dirf, db-&gt;dirbuf, DBLKSIZ) &lt; 0)</div><div class='del'>-			return 0;</div><div class='del'>-		db-&gt;dirbno = dirb;</div><div class='del'>-</div><div class='del'>-		debug(("dir read: %ld\n", dirb));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	db-&gt;dirbuf[c % DBLKSIZ] |= (1 &lt;&lt; (dbit % BYTESIZ));</div><div class='del'>-</div><div class='del'>-	if (dbit &gt;= db-&gt;maxbno)</div><div class='del'>-		db-&gt;maxbno += (long) DBLKSIZ * BYTESIZ;</div><div class='del'>-</div><div class='del'>-	if (lseek(db-&gt;dirf, OFF_DIR(dirb), SEEK_SET) &lt; 0</div><div class='del'>-	    || write(db-&gt;dirf, db-&gt;dirbuf, DBLKSIZ) &lt; 0)</div><div class='del'>-		return 0;</div><div class='del'>-</div><div class='del'>-	return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * getnext - get the next key in the page, and if done with</div><div class='del'>- * the page, try the next page in sequence</div><div class='del'>- */</div><div class='del'>-static datum</div><div class='del'>-getnext(register DBM *db)</div><div class='del'>-{</div><div class='del'>-	datum key;</div><div class='del'>-</div><div class='del'>-	for (;;) {</div><div class='del'>-		db-&gt;keyptr++;</div><div class='del'>-		key = getnkey(db-&gt;pagbuf, db-&gt;keyptr);</div><div class='del'>-		if (key.dptr != NULL)</div><div class='del'>-			return key;</div><div class='del'>-/*</div><div class='del'>- * we either run out, or there is nothing on this page..</div><div class='del'>- * try the next one... If we lost our position on the</div><div class='del'>- * file, we will have to seek.</div><div class='del'>- */</div><div class='del'>-		db-&gt;keyptr = 0;</div><div class='del'>-		if (db-&gt;pagbno != db-&gt;blkptr++)</div><div class='del'>-			if (lseek(db-&gt;pagf, OFF_PAG(db-&gt;blkptr), SEEK_SET) &lt; 0)</div><div class='del'>-				break;</div><div class='del'>-		db-&gt;pagbno = db-&gt;blkptr;</div><div class='del'>-		if (read(db-&gt;pagf, db-&gt;pagbuf, PBLKSIZ) &lt;= 0)</div><div class='del'>-			break;</div><div class='del'>-		if (!chkpage(db-&gt;pagbuf)) {</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	return ioerr(db), nullitem;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* pair.c */</div><div class='del'>-/*</div><div class='del'>- * sdbm - ndbm work-alike hashed database library</div><div class='del'>- * based on Per-Aake Larson's Dynamic Hashing algorithms. BIT 18 (1978).</div><div class='del'>- * author: oz@nexus.yorku.ca</div><div class='del'>- * status: public domain.</div><div class='del'>- *</div><div class='del'>- * page-level routines</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-#ifndef BSD42</div><div class='del'>-/*#include &lt;memory.h&gt;*/</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define exhash(item)	sdbm_hash((item).dptr, (item).dsize)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * forward</div><div class='del'>- */</div><div class='del'>-static int seepair proto((char *, int, char *, int));</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * page format:</div><div class='del'>- *	+------------------------------+</div><div class='del'>- * ino	| n | keyoff | datoff | keyoff |</div><div class='del'>- * 	+------------+--------+--------+</div><div class='del'>- *	| datoff | - - - ----&gt;	       |</div><div class='del'>- *	+--------+---------------------+</div><div class='del'>- *	|	 F R E E A R E A       |</div><div class='del'>- *	+--------------+---------------+</div><div class='del'>- *	|  &lt;---- - - - | data          |</div><div class='del'>- *	+--------+-----+----+----------+</div><div class='del'>- *	|  key   | data     | key      |</div><div class='del'>- *	+--------+----------+----------+</div><div class='del'>- *</div><div class='del'>- * calculating the offsets for free area:  if the number</div><div class='del'>- * of entries (ino[0]) is zero, the offset to the END of</div><div class='del'>- * the free area is the block size. Otherwise, it is the</div><div class='del'>- * nth (ino[ino[0]]) entry's offset.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-fitpair(char *pag, int need)</div><div class='del'>-{</div><div class='del'>-	register int n;</div><div class='del'>-	register int off;</div><div class='del'>-	register int free;</div><div class='del'>-	register short *ino = (short *) pag;</div><div class='del'>-</div><div class='del'>-	off = ((n = GET_SHORT(ino,0)) &gt; 0) ? GET_SHORT(ino,n) : PBLKSIZ;</div><div class='del'>-	free = off - (n + 1) * (int)sizeof(short);</div><div class='del'>-	need += 2 * (int)sizeof(short);</div><div class='del'>-</div><div class='del'>-	debug(("free %d need %d\n", free, need));</div><div class='del'>-</div><div class='del'>-	return need &lt;= free;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-putpair(char *pag, datum key, datum val)</div><div class='del'>-{</div><div class='del'>-	register int n;</div><div class='del'>-	register int off;</div><div class='del'>-	register short *ino = (short *) pag;</div><div class='del'>-</div><div class='del'>-	off = ((n = GET_SHORT(ino,0)) &gt; 0) ? GET_SHORT(ino,n) : PBLKSIZ;</div><div class='del'>-/*</div><div class='del'>- * enter the key first</div><div class='del'>- */</div><div class='del'>-	off -= key.dsize;</div><div class='del'>-	if (key.dsize)</div><div class='del'>-		(void) memcpy(pag + off, key.dptr, key.dsize);</div><div class='del'>-	PUT_SHORT(ino,n + 1,off);</div><div class='del'>-/*</div><div class='del'>- * now the data</div><div class='del'>- */</div><div class='del'>-	off -= val.dsize;</div><div class='del'>-	if (val.dsize)</div><div class='del'>-		(void) memcpy(pag + off, val.dptr, val.dsize);</div><div class='del'>-	PUT_SHORT(ino,n + 2,off);</div><div class='del'>-/*</div><div class='del'>- * adjust item count</div><div class='del'>- */</div><div class='del'>-	PUT_SHORT(ino,0,GET_SHORT(ino,0) + 2);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static datum</div><div class='del'>-getpair(char *pag, datum key)</div><div class='del'>-{</div><div class='del'>-	register int i;</div><div class='del'>-	register int n;</div><div class='del'>-	datum val;</div><div class='del'>-	register short *ino = (short *) pag;</div><div class='del'>-</div><div class='del'>-	if ((n = GET_SHORT(ino,0)) == 0)</div><div class='del'>-		return nullitem;</div><div class='del'>-</div><div class='del'>-	if ((i = seepair(pag, n, key.dptr, key.dsize)) == 0)</div><div class='del'>-		return nullitem;</div><div class='del'>-</div><div class='del'>-	val.dptr = pag + GET_SHORT(ino,i + 1);</div><div class='del'>-	val.dsize = GET_SHORT(ino,i) - GET_SHORT(ino,i + 1);</div><div class='del'>-	return val;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if SEEDUPS</div><div class='del'>-static int</div><div class='del'>-duppair(char *pag, datum key)</div><div class='del'>-{</div><div class='del'>-	register short *ino = (short *) pag;</div><div class='del'>-	return GET_SHORT(ino,0) &gt; 0 &amp;&amp;</div><div class='del'>-		   seepair(pag, GET_SHORT(ino,0), key.dptr, key.dsize) &gt; 0;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static datum</div><div class='del'>-getnkey(char *pag, int num)</div><div class='del'>-{</div><div class='del'>-	datum key;</div><div class='del'>-	register int off;</div><div class='del'>-	register short *ino = (short *) pag;</div><div class='del'>-</div><div class='del'>-	num = num * 2 - 1;</div><div class='del'>-	if (GET_SHORT(ino,0) == 0 || num &gt; GET_SHORT(ino,0))</div><div class='del'>-		return nullitem;</div><div class='del'>-</div><div class='del'>-	off = (num &gt; 1) ? GET_SHORT(ino,num - 1) : PBLKSIZ;</div><div class='del'>-</div><div class='del'>-	key.dptr = pag + GET_SHORT(ino,num);</div><div class='del'>-	key.dsize = off - GET_SHORT(ino,num);</div><div class='del'>-</div><div class='del'>-	return key;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-delpair(char *pag, datum key)</div><div class='del'>-{</div><div class='del'>-	register int n;</div><div class='del'>-	register int i;</div><div class='del'>-	register short *ino = (short *) pag;</div><div class='del'>-</div><div class='del'>-	if ((n = GET_SHORT(ino,0)) == 0)</div><div class='del'>-		return 0;</div><div class='del'>-</div><div class='del'>-	if ((i = seepair(pag, n, key.dptr, key.dsize)) == 0)</div><div class='del'>-		return 0;</div><div class='del'>-/*</div><div class='del'>- * found the key. if it is the last entry</div><div class='del'>- * [i.e. i == n - 1] we just adjust the entry count.</div><div class='del'>- * hard case: move all data down onto the deleted pair,</div><div class='del'>- * shift offsets onto deleted offsets, and adjust them.</div><div class='del'>- * [note: 0 &lt; i &lt; n]</div><div class='del'>- */</div><div class='del'>-	if (i &lt; n - 1) {</div><div class='del'>-		register int m;</div><div class='del'>-		register char *dst = pag + (i == 1 ? PBLKSIZ : GET_SHORT(ino,i - 1));</div><div class='del'>-		register char *src = pag + GET_SHORT(ino,i + 1);</div><div class='del'>-		register ptrdiff_t   zoo = dst - src;</div><div class='del'>-</div><div class='del'>-		debug(("free-up %"PRIdPTRDIFF" ", zoo));</div><div class='del'>-/*</div><div class='del'>- * shift data/keys down</div><div class='del'>- */</div><div class='del'>-		m = GET_SHORT(ino,i + 1) - GET_SHORT(ino,n);</div><div class='del'>-#ifdef DUFF</div><div class='del'>-#define MOVB 	*--dst = *--src</div><div class='del'>-</div><div class='del'>-		if (m &gt; 0) {</div><div class='del'>-			register int loop = (m + 8 - 1) &gt;&gt; 3;</div><div class='del'>-</div><div class='del'>-			switch (m &amp; (8 - 1)) {</div><div class='del'>-			case 0:	do {</div><div class='del'>-				MOVB;	case 7:	MOVB;</div><div class='del'>-			case 6:	MOVB;	case 5:	MOVB;</div><div class='del'>-			case 4:	MOVB;	case 3:	MOVB;</div><div class='del'>-			case 2:	MOVB;	case 1:	MOVB;</div><div class='del'>-				} while (--loop);</div><div class='del'>-			}</div><div class='del'>-		}</div><div class='del'>-#else</div><div class='del'>-#ifdef MEMMOVE</div><div class='del'>-		memmove(dst-m, src-m, m);</div><div class='del'>-#else</div><div class='del'>-		while (m--)</div><div class='del'>-			*--dst = *--src;</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-/*</div><div class='del'>- * adjust offset index up</div><div class='del'>- */</div><div class='del'>-		while (i &lt; n - 1) {</div><div class='del'>-			PUT_SHORT(ino,i, GET_SHORT(ino,i + 2) + zoo);</div><div class='del'>-			i++;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	PUT_SHORT(ino, 0, GET_SHORT(ino, 0) - 2);</div><div class='del'>-	return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * search for the key in the page.</div><div class='del'>- * return offset index in the range 0 &lt; i &lt; n.</div><div class='del'>- * return 0 if not found.</div><div class='del'>- */</div><div class='del'>-static int</div><div class='del'>-seepair(char *pag, register int n, register char *key, register int siz)</div><div class='del'>-{</div><div class='del'>-	register int i;</div><div class='del'>-	register int off = PBLKSIZ;</div><div class='del'>-	register short *ino = (short *) pag;</div><div class='del'>-</div><div class='del'>-	for (i = 1; i &lt; n; i += 2) {</div><div class='del'>-		if (siz == off - GET_SHORT(ino,i) &amp;&amp;</div><div class='del'>-		    memcmp(key, pag + GET_SHORT(ino,i), siz) == 0)</div><div class='del'>-			return i;</div><div class='del'>-		off = GET_SHORT(ino,i + 1);</div><div class='del'>-	}</div><div class='del'>-	return 0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-splpage(char *pag, char *new, long int sbit)</div><div class='del'>-{</div><div class='del'>-	datum key;</div><div class='del'>-	datum val;</div><div class='del'>-</div><div class='del'>-	register int n;</div><div class='del'>-	register int off = PBLKSIZ;</div><div class='del'>-	char cur[PBLKSIZ];</div><div class='del'>-	register short *ino = (short *) cur;</div><div class='del'>-</div><div class='del'>-	(void) memcpy(cur, pag, PBLKSIZ);</div><div class='del'>-	(void) memset(pag, 0, PBLKSIZ);</div><div class='del'>-	(void) memset(new, 0, PBLKSIZ);</div><div class='del'>-</div><div class='del'>-	n = GET_SHORT(ino,0);</div><div class='del'>-	for (ino++; n &gt; 0; ino += 2) {</div><div class='del'>-		key.dptr = cur + GET_SHORT(ino,0);</div><div class='del'>-		key.dsize = off - GET_SHORT(ino,0);</div><div class='del'>-		val.dptr = cur + GET_SHORT(ino,1);</div><div class='del'>-		val.dsize = GET_SHORT(ino,0) - GET_SHORT(ino,1);</div><div class='del'>-/*</div><div class='del'>- * select the page pointer (by looking at sbit) and insert</div><div class='del'>- */</div><div class='del'>-		(void) putpair((exhash(key) &amp; sbit) ? new : pag, key, val);</div><div class='del'>-</div><div class='del'>-		off = GET_SHORT(ino,1);</div><div class='del'>-		n -= 2;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	debug(("%d split %d/%d\n", ((short *) cur)[0] / 2,</div><div class='del'>-	       ((short *) new)[0] / 2,</div><div class='del'>-	       ((short *) pag)[0] / 2));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * check page sanity:</div><div class='del'>- * number of entries should be something</div><div class='del'>- * reasonable, and all offsets in the index should be in order.</div><div class='del'>- * this could be made more rigorous.</div><div class='del'>- */</div><div class='del'>-static int</div><div class='del'>-chkpage(char *pag)</div><div class='del'>-{</div><div class='del'>-	register int n;</div><div class='del'>-	register int off;</div><div class='del'>-	register short *ino = (short *) pag;</div><div class='del'>-</div><div class='del'>-	if ((n = GET_SHORT(ino,0)) &lt; 0 || n &gt; PBLKSIZ / (int)sizeof(short))</div><div class='del'>-		return 0;</div><div class='del'>-</div><div class='del'>-	if (n &gt; 0) {</div><div class='del'>-		off = PBLKSIZ;</div><div class='del'>-		for (ino++; n &gt; 0; ino += 2) {</div><div class='del'>-			if (GET_SHORT(ino,0) &gt; off || GET_SHORT(ino,1) &gt; off ||</div><div class='del'>-			    GET_SHORT(ino,1) &gt; GET_SHORT(ino,0))</div><div class='del'>-				return 0;</div><div class='del'>-			off = GET_SHORT(ino,1);</div><div class='del'>-			n -= 2;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	return 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* hash.c */</div><div class='del'>-/*</div><div class='del'>- * sdbm - ndbm work-alike hashed database library</div><div class='del'>- * based on Per-Aake Larson's Dynamic Hashing algorithms. BIT 18 (1978).</div><div class='del'>- * author: oz@nexus.yorku.ca</div><div class='del'>- * status: public domain. keep it that way.</div><div class='del'>- *</div><div class='del'>- * hashing routine</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * polynomial conversion ignoring overflows</div><div class='del'>- * [this seems to work remarkably well, in fact better</div><div class='del'>- * then the ndbm hash function. Replace at your own risk]</div><div class='del'>- * use: 65599	nice.</div><div class='del'>- *      65587   even better.</div><div class='del'>- */</div><div class='del'>-long</div><div class='del'>-sdbm_hash(register char *str, register int len)</div><div class='del'>-{</div><div class='del'>-	register unsigned long n = 0;</div><div class='del'>-</div><div class='del'>-#ifdef DUFF</div><div class='del'>-</div><div class='del'>-#define HASHC	n = *str++ + 65599 * n</div><div class='del'>-</div><div class='del'>-	if (len &gt; 0) {</div><div class='del'>-		register int loop = (len + 8 - 1) &gt;&gt; 3;</div><div class='del'>-</div><div class='del'>-		switch(len &amp; (8 - 1)) {</div><div class='del'>-		case 0:	do {</div><div class='del'>-			HASHC;	case 7:	HASHC;</div><div class='del'>-		case 6:	HASHC;	case 5:	HASHC;</div><div class='del'>-		case 4:	HASHC;	case 3:	HASHC;</div><div class='del'>-		case 2:	HASHC;	case 1:	HASHC;</div><div class='del'>-			} while (--loop);</div><div class='del'>-		}</div><div class='del'>-</div><div class='del'>-	}</div><div class='del'>-#else</div><div class='del'>-	while (len--)</div><div class='del'>-		n = ((*str++) &amp; 255) + 65587L * n;</div><div class='del'>-#endif</div><div class='del'>-	return n;</div><div class='del'>-}</div><div class='head'>diff --git a/ext/sdbm/depend b/ext/sdbm/depend<br/>deleted file mode 100644<br/>index aeb2099e18..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/sdbm/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/depend</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,25 +0,0 @@</div><div class='del'>-# AUTOGENERATED DEPENDENCIES START</div><div class='del'>-_sdbm.o: $(RUBY_EXTCONF_H)</div><div class='del'>-_sdbm.o: $(arch_hdrdir)/ruby/config.h</div><div class='del'>-_sdbm.o: $(hdrdir)/ruby/backward.h</div><div class='del'>-_sdbm.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-_sdbm.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-_sdbm.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-_sdbm.o: $(hdrdir)/ruby/ruby.h</div><div class='del'>-_sdbm.o: $(hdrdir)/ruby/st.h</div><div class='del'>-_sdbm.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-_sdbm.o: _sdbm.c</div><div class='del'>-_sdbm.o: sdbm.h</div><div class='del'>-init.o: $(RUBY_EXTCONF_H)</div><div class='del'>-init.o: $(arch_hdrdir)/ruby/config.h</div><div class='del'>-init.o: $(hdrdir)/ruby/backward.h</div><div class='del'>-init.o: $(hdrdir)/ruby/defines.h</div><div class='del'>-init.o: $(hdrdir)/ruby/intern.h</div><div class='del'>-init.o: $(hdrdir)/ruby/missing.h</div><div class='del'>-init.o: $(hdrdir)/ruby/ruby.h</div><div class='del'>-init.o: $(hdrdir)/ruby/st.h</div><div class='del'>-init.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-init.o: $(top_srcdir)/include/ruby.h</div><div class='del'>-init.o: init.c</div><div class='del'>-init.o: sdbm.h</div><div class='del'>-# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/sdbm/extconf.rb b/ext/sdbm/extconf.rb<br/>deleted file mode 100644<br/>index bdf3e299e6..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/sdbm/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/extconf.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,5 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-require 'mkmf'</div><div class='del'>-</div><div class='del'>-$defs &lt;&lt; "-D""BADMESS=0"</div><div class='del'>-create_makefile("sdbm")</div><div class='head'>diff --git a/ext/sdbm/init.c b/ext/sdbm/init.c<br/>deleted file mode 100644<br/>index 42292b99cd..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/sdbm/init.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/init.c</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1067 +0,0 @@</div><div class='del'>-/************************************************</div><div class='del'>-</div><div class='del'>-  sdbminit.c -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Fri May  7 08:34:24 JST 1999</div><div class='del'>-</div><div class='del'>-  Copyright (C) 1995-2001 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-************************************************/</div><div class='del'>-</div><div class='del'>-#include "ruby.h"</div><div class='del'>-</div><div class='del'>-#include "sdbm.h"</div><div class='del'>-#include &lt;fcntl.h&gt;</div><div class='del'>-#include &lt;errno.h&gt;</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * Document-class: SDBM</div><div class='del'>- *</div><div class='del'>- * SDBM provides a simple file-based key-value store, which can only store</div><div class='del'>- * String keys and values.</div><div class='del'>- *</div><div class='del'>- * Note that Ruby comes with the source code for SDBM, while the DBM and GDBM</div><div class='del'>- * standard libraries rely on external libraries and headers.</div><div class='del'>- *</div><div class='del'>- * === Examples</div><div class='del'>- *</div><div class='del'>- * Insert values:</div><div class='del'>- *</div><div class='del'>- *   require 'sdbm'</div><div class='del'>- *</div><div class='del'>- *   SDBM.open 'my_database' do |db|</div><div class='del'>- *     db['apple'] = 'fruit'</div><div class='del'>- *     db['pear'] = 'fruit'</div><div class='del'>- *     db['carrot'] = 'vegetable'</div><div class='del'>- *     db['tomato'] = 'vegetable'</div><div class='del'>- *   end</div><div class='del'>- *</div><div class='del'>- * Bulk update:</div><div class='del'>- *</div><div class='del'>- *   require 'sdbm'</div><div class='del'>- *</div><div class='del'>- *   SDBM.open 'my_database' do |db|</div><div class='del'>- *     db.update('peach' =&gt; 'fruit', 'tomato' =&gt; 'fruit')</div><div class='del'>- *   end</div><div class='del'>- *</div><div class='del'>- * Retrieve values:</div><div class='del'>- *</div><div class='del'>- *   require 'sdbm'</div><div class='del'>- *</div><div class='del'>- *   SDBM.open 'my_database' do |db|</div><div class='del'>- *     db.each do |key, value|</div><div class='del'>- *       puts "Key: #{key}, Value: #{value}"</div><div class='del'>- *     end</div><div class='del'>- *   end</div><div class='del'>- *</div><div class='del'>- * Outputs:</div><div class='del'>- *</div><div class='del'>- *   Key: apple, Value: fruit</div><div class='del'>- *   Key: pear, Value: fruit</div><div class='del'>- *   Key: carrot, Value: vegetable</div><div class='del'>- *   Key: peach, Value: fruit</div><div class='del'>- *   Key: tomato, Value: fruit</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE rb_cDBM, rb_eDBMError;</div><div class='del'>-</div><div class='del'>-struct dbmdata {</div><div class='del'>-    int  di_size;</div><div class='del'>-    DBM *di_dbm;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-NORETURN(static void closed_sdbm(void));</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-closed_sdbm(void)</div><div class='del'>-{</div><div class='del'>-    rb_raise(rb_eDBMError, "closed SDBM file");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define GetDBM(obj, dbmp) do {\</div><div class='del'>-    TypedData_Get_Struct((obj), struct dbmdata, &amp;sdbm_type, (dbmp));\</div><div class='del'>-    if ((dbmp)-&gt;di_dbm == 0) closed_sdbm();\</div><div class='del'>-} while (0)</div><div class='del'>-</div><div class='del'>-#define GetDBM2(obj, dbmp, dbm) do {\</div><div class='del'>-    GetDBM((obj), (dbmp));\</div><div class='del'>-    (dbm) = (dbmp)-&gt;di_dbm;\</div><div class='del'>-} while (0)</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-free_sdbm(void *ptr)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp = ptr;</div><div class='del'>-</div><div class='del'>-    if (dbmp-&gt;di_dbm) sdbm_close(dbmp-&gt;di_dbm);</div><div class='del'>-    ruby_xfree(dbmp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static size_t</div><div class='del'>-memsize_dbm(const void *ptr)</div><div class='del'>-{</div><div class='del'>-    const struct dbmdata *dbmp = ptr;</div><div class='del'>-    size_t size = sizeof(*dbmp);</div><div class='del'>-    if (dbmp-&gt;di_dbm)</div><div class='del'>-	size += sizeof(DBM);</div><div class='del'>-    return size;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static const rb_data_type_t sdbm_type = {</div><div class='del'>-    "sdbm",</div><div class='del'>-    {0, free_sdbm, memsize_dbm,},</div><div class='del'>-    0, 0,</div><div class='del'>-    RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.close -&gt; nil</div><div class='del'>- *</div><div class='del'>- * Closes the database file.</div><div class='del'>- *</div><div class='del'>- * Raises SDBMError if the database is already closed.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_close(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-</div><div class='del'>-    GetDBM(obj, dbmp);</div><div class='del'>-    sdbm_close(dbmp-&gt;di_dbm);</div><div class='del'>-    dbmp-&gt;di_dbm = 0;</div><div class='del'>-</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.closed? -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns +true+ if the database is closed.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_closed(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-</div><div class='del'>-    TypedData_Get_Struct(obj, struct dbmdata, &amp;sdbm_type, dbmp);</div><div class='del'>-    if (dbmp-&gt;di_dbm == 0)</div><div class='del'>-	return Qtrue;</div><div class='del'>-</div><div class='del'>-    return Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_alloc(VALUE klass)</div><div class='del'>-{</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-</div><div class='del'>-    return TypedData_Make_Struct(klass, struct dbmdata, &amp;sdbm_type, dbmp);</div><div class='del'>-}</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   SDBM.new(filename, mode = 0666)</div><div class='del'>- *</div><div class='del'>- * Creates a new database handle by opening the given +filename+. SDBM actually</div><div class='del'>- * uses two physical files, with extensions '.dir' and '.pag'. These extensions</div><div class='del'>- * will automatically be appended to the +filename+.</div><div class='del'>- *</div><div class='del'>- * If the file does not exist, a new file will be created using the given</div><div class='del'>- * +mode+, unless +mode+ is explicitly set to nil. In the latter case, no</div><div class='del'>- * database will be created.</div><div class='del'>- *</div><div class='del'>- * If the file exists, it will be opened in read/write mode. If this fails, it</div><div class='del'>- * will be opened in read-only mode.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_initialize(int argc, VALUE *argv, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE file, vmode;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    int mode;</div><div class='del'>-</div><div class='del'>-    TypedData_Get_Struct(obj, struct dbmdata, &amp;sdbm_type, dbmp);</div><div class='del'>-    if (rb_scan_args(argc, argv, "11", &amp;file, &amp;vmode) == 1) {</div><div class='del'>-	mode = 0666;		/* default value */</div><div class='del'>-    }</div><div class='del'>-    else if (NIL_P(vmode)) {</div><div class='del'>-	mode = -1;		/* return nil if DB not exist */</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	mode = NUM2INT(vmode);</div><div class='del'>-    }</div><div class='del'>-    FilePathValue(file);</div><div class='del'>-</div><div class='del'>-    dbm = 0;</div><div class='del'>-    if (mode &gt;= 0)</div><div class='del'>-	dbm = sdbm_open(RSTRING_PTR(file), O_RDWR|O_CREAT, mode);</div><div class='del'>-    if (!dbm)</div><div class='del'>-	dbm = sdbm_open(RSTRING_PTR(file), O_RDWR, 0);</div><div class='del'>-    if (!dbm)</div><div class='del'>-	dbm = sdbm_open(RSTRING_PTR(file), O_RDONLY, 0);</div><div class='del'>-</div><div class='del'>-    if (!dbm) {</div><div class='del'>-	if (mode == -1) return Qnil;</div><div class='del'>-	rb_sys_fail_str(file);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (dbmp-&gt;di_dbm)</div><div class='del'>-	sdbm_close(dbmp-&gt;di_dbm);</div><div class='del'>-    dbmp-&gt;di_dbm = dbm;</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   SDBM.open(filename, mode = 0666)</div><div class='del'>- *   SDBM.open(filename, mode = 0666) { |sdbm| ... }</div><div class='del'>- *</div><div class='del'>- * If called without a block, this is the same as SDBM.new.</div><div class='del'>- *</div><div class='del'>- * If a block is given, the new database will be passed to the block and</div><div class='del'>- * will be safely closed after the block has executed.</div><div class='del'>- *</div><div class='del'>- * Example:</div><div class='del'>- *</div><div class='del'>- *     require 'sdbm'</div><div class='del'>- *</div><div class='del'>- *     SDBM.open('my_database') do |db|</div><div class='del'>- *       db['hello'] = 'world'</div><div class='del'>- *     end</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='del'>-{</div><div class='del'>-    VALUE obj = fsdbm_alloc(klass);</div><div class='del'>-</div><div class='del'>-    if (NIL_P(fsdbm_initialize(argc, argv, obj))) {</div><div class='del'>-	return Qnil;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (rb_block_given_p()) {</div><div class='del'>-        return rb_ensure(rb_yield, obj, fsdbm_close, obj);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_fetch(VALUE obj, VALUE keystr, VALUE ifnone)</div><div class='del'>-{</div><div class='del'>-    datum key, value;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(keystr);</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = RSTRING_LENINT(keystr);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    value = sdbm_fetch(dbm, key);</div><div class='del'>-    if (value.dptr == 0) {</div><div class='del'>-	if (ifnone == Qnil &amp;&amp; rb_block_given_p())</div><div class='del'>-	    return rb_yield(rb_external_str_new(key.dptr, key.dsize));</div><div class='del'>-	return ifnone;</div><div class='del'>-    }</div><div class='del'>-    return rb_external_str_new(value.dptr, value.dsize);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm[key] -&gt; value or nil</div><div class='del'>- *</div><div class='del'>- * Returns the +value+ in the database associated with the given +key+ string.</div><div class='del'>- *</div><div class='del'>- * If no value is found, returns +nil+.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_aref(VALUE obj, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    return fsdbm_fetch(obj, keystr, Qnil);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.fetch(key) -&gt; value or nil</div><div class='del'>- *   sdbm.fetch(key) { |key| ... }</div><div class='del'>- *</div><div class='del'>- * Returns the +value+ in the database associated with the given +key+ string.</div><div class='del'>- *</div><div class='del'>- * If a block is provided, the block will be called when there is no</div><div class='del'>- * +value+ associated with the given +key+. The +key+ will be passed in as an</div><div class='del'>- * argument to the block.</div><div class='del'>- *</div><div class='del'>- * If no block is provided and no value is associated with the given +key+,</div><div class='del'>- * then an IndexError will be raised.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_fetch_m(int argc, VALUE *argv, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE keystr, valstr, ifnone;</div><div class='del'>-</div><div class='del'>-    rb_scan_args(argc, argv, "11", &amp;keystr, &amp;ifnone);</div><div class='del'>-    valstr = fsdbm_fetch(obj, keystr, ifnone);</div><div class='del'>-    if (argc == 1 &amp;&amp; !rb_block_given_p() &amp;&amp; NIL_P(valstr))</div><div class='del'>-	rb_raise(rb_eIndexError, "key not found");</div><div class='del'>-</div><div class='del'>-    return valstr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.key(value) -&gt; key</div><div class='del'>- *</div><div class='del'>- * Returns the +key+ associated with the given +value+. If more than one</div><div class='del'>- * +key+ corresponds to the given +value+, then the first key to be found</div><div class='del'>- * will be returned. If no keys are found, +nil+ will be returned.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_key(VALUE obj, VALUE valstr)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(valstr);</div><div class='del'>-    val.dptr = RSTRING_PTR(valstr);</div><div class='del'>-    val.dsize = RSTRING_LENINT(valstr);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	val = sdbm_fetch(dbm, key);</div><div class='del'>-	if (val.dsize == RSTRING_LEN(valstr) &amp;&amp;</div><div class='del'>-	    memcmp(val.dptr, RSTRING_PTR(valstr), val.dsize) == 0)</div><div class='del'>-	    return rb_external_str_new(key.dptr, key.dsize);</div><div class='del'>-    }</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * :nodoc:</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_index(VALUE hash, VALUE value)</div><div class='del'>-{</div><div class='del'>-    rb_warn("SDBM#index is deprecated; use SDBM#key");</div><div class='del'>-    return fsdbm_key(hash, value);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* call-seq:</div><div class='del'>- *   sdbm.select { |key, value| ... } -&gt; Array</div><div class='del'>- *</div><div class='del'>- * Returns a new Array of key-value pairs for which the block returns +true+.</div><div class='del'>- *</div><div class='del'>- * Example:</div><div class='del'>- *</div><div class='del'>- *    require 'sdbm'</div><div class='del'>- *</div><div class='del'>- *    SDBM.open 'my_database' do |db|</div><div class='del'>- *      db['apple'] = 'fruit'</div><div class='del'>- *      db['pear'] = 'fruit'</div><div class='del'>- *      db['spinach'] = 'vegetable'</div><div class='del'>- *</div><div class='del'>- *      veggies = db.select do |key, value|</div><div class='del'>- *        value == 'vegetable'</div><div class='del'>- *      end #=&gt; [["apple", "fruit"], ["pear", "fruit"]]</div><div class='del'>- *    end</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_select(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE new = rb_ary_new();</div><div class='del'>-    datum key, val;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	VALUE assoc, v;</div><div class='del'>-	val = sdbm_fetch(dbm, key);</div><div class='del'>-	assoc = rb_assoc_new(rb_external_str_new(key.dptr, key.dsize),</div><div class='del'>-			     rb_external_str_new(val.dptr, val.dsize));</div><div class='del'>-	v = rb_yield(assoc);</div><div class='del'>-	if (RTEST(v)) {</div><div class='del'>-	    rb_ary_push(new, assoc);</div><div class='del'>-	}</div><div class='del'>-	GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return new;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* call-seq:</div><div class='del'>- *   sdbm.values_at(key, ...) -&gt; Array</div><div class='del'>- *</div><div class='del'>- * Returns an Array of values corresponding to the given keys.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_values_at(int argc, VALUE *argv, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE new = rb_ary_new2(argc);</div><div class='del'>-    int i;</div><div class='del'>-</div><div class='del'>-    for (i=0; i&lt;argc; i++) {</div><div class='del'>-        rb_ary_push(new, fsdbm_fetch(obj, argv[i], Qnil));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return new;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-fdbm_modify(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    if (OBJ_FROZEN(obj)) rb_error_frozen("SDBM");</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.delete(key) -&gt; value or nil</div><div class='del'>- *   sdbm.delete(key) { |key, value| ... }</div><div class='del'>- *</div><div class='del'>- * Deletes the key-value pair corresponding to the given +key+. If the</div><div class='del'>- * +key+ exists, the deleted value will be returned, otherwise +nil+.</div><div class='del'>- *</div><div class='del'>- * If a block is provided, the deleted +key+ and +value+ will be passed to</div><div class='del'>- * the block as arguments. If the +key+ does not exist in the database, the</div><div class='del'>- * value will be +nil+.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_delete(VALUE obj, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    datum key, value;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE valstr;</div><div class='del'>-</div><div class='del'>-    fdbm_modify(obj);</div><div class='del'>-    ExportStringValue(keystr);</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = RSTRING_LENINT(keystr);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-</div><div class='del'>-    value = sdbm_fetch(dbm, key);</div><div class='del'>-    if (value.dptr == 0) {</div><div class='del'>-	if (rb_block_given_p()) return rb_yield(keystr);</div><div class='del'>-	return Qnil;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    /* need to save value before sdbm_delete() */</div><div class='del'>-    valstr = rb_external_str_new(value.dptr, value.dsize);</div><div class='del'>-</div><div class='del'>-    if (sdbm_delete(dbm, key)) {</div><div class='del'>-	dbmp-&gt;di_size = -1;</div><div class='del'>-	rb_raise(rb_eDBMError, "dbm_delete failed");</div><div class='del'>-    }</div><div class='del'>-    else if (dbmp-&gt;di_size &gt;= 0) {</div><div class='del'>-	dbmp-&gt;di_size--;</div><div class='del'>-    }</div><div class='del'>-    return valstr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.shift -&gt; Array or nil</div><div class='del'>- *</div><div class='del'>- * Removes a key-value pair from the database and returns them as an</div><div class='del'>- * Array. If the database is empty, returns +nil+.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_shift(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE keystr, valstr;</div><div class='del'>-</div><div class='del'>-    fdbm_modify(obj);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    key = sdbm_firstkey(dbm);</div><div class='del'>-    if (!key.dptr) return Qnil;</div><div class='del'>-    val = sdbm_fetch(dbm, key);</div><div class='del'>-    keystr = rb_external_str_new(key.dptr, key.dsize);</div><div class='del'>-    valstr = rb_external_str_new(val.dptr, val.dsize);</div><div class='del'>-    sdbm_delete(dbm, key);</div><div class='del'>-    if (dbmp-&gt;di_size &gt;= 0) {</div><div class='del'>-	dbmp-&gt;di_size--;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return rb_assoc_new(keystr, valstr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.delete_if { |key, value| ... } -&gt; self</div><div class='del'>- *   sdbm.reject!   { |key, value| ... } -&gt; self</div><div class='del'>- *</div><div class='del'>- * Iterates over the key-value pairs in the database, deleting those for</div><div class='del'>- * which the block returns +true+.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_delete_if(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE keystr, valstr;</div><div class='del'>-    VALUE ret, ary = rb_ary_new();</div><div class='del'>-    long i;</div><div class='del'>-    int status = 0, n;</div><div class='del'>-</div><div class='del'>-    fdbm_modify(obj);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    n = dbmp-&gt;di_size;</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	val = sdbm_fetch(dbm, key);</div><div class='del'>-	keystr = rb_external_str_new(key.dptr, key.dsize);</div><div class='del'>-	valstr = rb_external_str_new(val.dptr, val.dsize);</div><div class='del'>-        ret = rb_protect(rb_yield, rb_assoc_new(rb_str_dup(keystr), valstr), &amp;status);</div><div class='del'>-        if (status != 0) break;</div><div class='del'>-	if (RTEST(ret)) rb_ary_push(ary, keystr);</div><div class='del'>-	GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    for (i = 0; i &lt; RARRAY_LEN(ary); i++) {</div><div class='del'>-	keystr = RARRAY_AREF(ary, i);</div><div class='del'>-	ExportStringValue(keystr);</div><div class='del'>-	key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-	key.dsize = RSTRING_LENINT(keystr);</div><div class='del'>-	if (sdbm_delete(dbm, key)) {</div><div class='del'>-	    rb_raise(rb_eDBMError, "sdbm_delete failed");</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    if (status) rb_jump_tag(status);</div><div class='del'>-    if (n &gt; 0) dbmp-&gt;di_size = n - RARRAY_LENINT(ary);</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.clear -&gt; self</div><div class='del'>- *</div><div class='del'>- * Deletes all data from the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_clear(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    fdbm_modify(obj);</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-    while (key = sdbm_firstkey(dbm), key.dptr) {</div><div class='del'>-	if (sdbm_delete(dbm, key)) {</div><div class='del'>-	    rb_raise(rb_eDBMError, "sdbm_delete failed");</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    dbmp-&gt;di_size = 0;</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.invert -&gt; Hash</div><div class='del'>- *</div><div class='del'>- * Returns a Hash in which the key-value pairs have been inverted.</div><div class='del'>- *</div><div class='del'>- * Example:</div><div class='del'>- *</div><div class='del'>- *   require 'sdbm'</div><div class='del'>- *</div><div class='del'>- *   SDBM.open 'my_database' do |db|</div><div class='del'>- *     db.update('apple' =&gt; 'fruit', 'spinach' =&gt; 'vegetable')</div><div class='del'>- *</div><div class='del'>- *     db.invert  #=&gt; {"fruit" =&gt; "apple", "vegetable" =&gt; "spinach"}</div><div class='del'>- *   end</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_invert(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE keystr, valstr;</div><div class='del'>-    VALUE hash = rb_hash_new();</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	val = sdbm_fetch(dbm, key);</div><div class='del'>-	keystr = rb_external_str_new(key.dptr, key.dsize);</div><div class='del'>-	valstr = rb_external_str_new(val.dptr, val.dsize);</div><div class='del'>-	rb_hash_aset(hash, valstr, keystr);</div><div class='del'>-    }</div><div class='del'>-    return hash;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm[key] = value      -&gt; value</div><div class='del'>- *   sdbm.store(key, value) -&gt; value</div><div class='del'>- *</div><div class='del'>- * Stores a new +value+ in the database with the given +key+ as an index.</div><div class='del'>- *</div><div class='del'>- * If the +key+ already exists, this will update the +value+ associated with</div><div class='del'>- * the +key+.</div><div class='del'>- *</div><div class='del'>- * Returns the given +value+.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_store(VALUE obj, VALUE keystr, VALUE valstr)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    if (valstr == Qnil) {</div><div class='del'>-	fsdbm_delete(obj, keystr);</div><div class='del'>-	return Qnil;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    fdbm_modify(obj);</div><div class='del'>-    ExportStringValue(keystr);</div><div class='del'>-    ExportStringValue(valstr);</div><div class='del'>-</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = RSTRING_LENINT(keystr);</div><div class='del'>-</div><div class='del'>-    val.dptr = RSTRING_PTR(valstr);</div><div class='del'>-    val.dsize = RSTRING_LENINT(valstr);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    dbmp-&gt;di_size = -1;</div><div class='del'>-    if (sdbm_store(dbm, key, val, DBM_REPLACE)) {</div><div class='del'>-#ifdef HAVE_DBM_CLAERERR</div><div class='del'>-	sdbm_clearerr(dbm);</div><div class='del'>-#endif</div><div class='del'>-	if (errno == EPERM) rb_sys_fail(0);</div><div class='del'>-	rb_raise(rb_eDBMError, "sdbm_store failed");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return valstr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-update_i(RB_BLOCK_CALL_FUNC_ARGLIST(pair, dbm))</div><div class='del'>-{</div><div class='del'>-    const VALUE *ptr;</div><div class='del'>-    Check_Type(pair, T_ARRAY);</div><div class='del'>-    if (RARRAY_LEN(pair) &lt; 2) {</div><div class='del'>-	rb_raise(rb_eArgError, "pair must be [key, value]");</div><div class='del'>-    }</div><div class='del'>-    ptr = RARRAY_CONST_PTR(pair);</div><div class='del'>-    fsdbm_store(dbm, ptr[0], ptr[1]);</div><div class='del'>-    return Qnil;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.update(pairs) -&gt; self</div><div class='del'>- *</div><div class='del'>- * Insert or update key-value pairs.</div><div class='del'>- *</div><div class='del'>- * This method will work with any object which implements an each_pair</div><div class='del'>- * method, such as a Hash.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_update(VALUE obj, VALUE other)</div><div class='del'>-{</div><div class='del'>-    rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj);</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.replace(pairs) -&gt; self</div><div class='del'>- *</div><div class='del'>- * Empties the database, then inserts the given key-value pairs.</div><div class='del'>- *</div><div class='del'>- * This method will work with any object which implements an each_pair</div><div class='del'>- * method, such as a Hash.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_replace(VALUE obj, VALUE other)</div><div class='del'>-{</div><div class='del'>-    fsdbm_clear(obj);</div><div class='del'>-    rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj);</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.length -&gt; integer</div><div class='del'>- *   sdbm.size -&gt; integer</div><div class='del'>- *</div><div class='del'>- * Returns the number of keys in the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_length(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    int i = 0;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    if (dbmp-&gt;di_size &gt; 0) return INT2FIX(dbmp-&gt;di_size);</div><div class='del'>-</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	i++;</div><div class='del'>-    }</div><div class='del'>-    dbmp-&gt;di_size = i;</div><div class='del'>-</div><div class='del'>-    return INT2FIX(i);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.empty? -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns +true+ if the database is empty.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_empty_p(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    GetDBM(obj, dbmp);</div><div class='del'>-    if (dbmp-&gt;di_size &lt; 0) {</div><div class='del'>-	dbm = dbmp-&gt;di_dbm;</div><div class='del'>-</div><div class='del'>-	for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	    return Qfalse;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	if (dbmp-&gt;di_size)</div><div class='del'>-	    return Qfalse;</div><div class='del'>-    }</div><div class='del'>-    return Qtrue;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.each_value</div><div class='del'>- *   sdbm.each_value { |value| ... }</div><div class='del'>- *</div><div class='del'>- * Iterates over each +value+ in the database.</div><div class='del'>- *</div><div class='del'>- * If no block is given, returns an Enumerator.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_each_value(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    RETURN_ENUMERATOR(obj, 0, 0);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	val = sdbm_fetch(dbm, key);</div><div class='del'>-	rb_yield(rb_external_str_new(val.dptr, val.dsize));</div><div class='del'>-	GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.each_key</div><div class='del'>- *   sdbm.each_key { |key| ... }</div><div class='del'>- *</div><div class='del'>- * Iterates over each +key+ in the database.</div><div class='del'>- *</div><div class='del'>- * If no block is given, returns an Enumerator.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_each_key(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    RETURN_ENUMERATOR(obj, 0, 0);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	rb_yield(rb_external_str_new(key.dptr, key.dsize));</div><div class='del'>-	GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.each</div><div class='del'>- *   sdbm.each { |key, value| ... }</div><div class='del'>- *   sdbm.each_pair</div><div class='del'>- *   sdbm.each_pair { |key, value| ... }</div><div class='del'>- *</div><div class='del'>- * Iterates over each key-value pair in the database.</div><div class='del'>- *</div><div class='del'>- * If no block is given, returns an Enumerator.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_each_pair(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    VALUE keystr, valstr;</div><div class='del'>-</div><div class='del'>-    RETURN_ENUMERATOR(obj, 0, 0);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	val = sdbm_fetch(dbm, key);</div><div class='del'>-	keystr = rb_external_str_new(key.dptr, key.dsize);</div><div class='del'>-	valstr = rb_external_str_new(val.dptr, val.dsize);</div><div class='del'>-	rb_yield(rb_assoc_new(keystr, valstr));</div><div class='del'>-	GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return obj;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.keys -&gt; Array</div><div class='del'>- *</div><div class='del'>- * Returns a new Array containing the keys in the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_keys(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE ary;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	rb_ary_push(ary, rb_external_str_new(key.dptr, key.dsize));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.values -&gt; Array</div><div class='del'>- *</div><div class='del'>- * Returns a new Array containing the values in the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_values(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE ary;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	val = sdbm_fetch(dbm, key);</div><div class='del'>-	rb_ary_push(ary, rb_external_str_new(val.dptr, val.dsize));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.include?(key) -&gt; true or false</div><div class='del'>- *   sdbm.key?(key) -&gt; true or false</div><div class='del'>- *   sdbm.member?(key) -&gt; true or false</div><div class='del'>- *   sdbm.has_key?(key) -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns +true+ if the database contains the given +key+.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_has_key(VALUE obj, VALUE keystr)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(keystr);</div><div class='del'>-    key.dptr = RSTRING_PTR(keystr);</div><div class='del'>-    key.dsize = RSTRING_LENINT(keystr);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    val = sdbm_fetch(dbm, key);</div><div class='del'>-    if (val.dptr) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.value?(key) -&gt; true or false</div><div class='del'>- *   sdbm.has_value?(key) -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns +true+ if the database contains the given +value+.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_has_value(VALUE obj, VALUE valstr)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-</div><div class='del'>-    ExportStringValue(valstr);</div><div class='del'>-    val.dptr = RSTRING_PTR(valstr);</div><div class='del'>-    val.dsize = RSTRING_LENINT(valstr);</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	val = sdbm_fetch(dbm, key);</div><div class='del'>-	if (val.dsize == RSTRING_LENINT(valstr) &amp;&amp;</div><div class='del'>-	    memcmp(val.dptr, RSTRING_PTR(valstr), val.dsize) == 0)</div><div class='del'>-	    return Qtrue;</div><div class='del'>-    }</div><div class='del'>-    return Qfalse;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.to_a -&gt; Array</div><div class='del'>- *</div><div class='del'>- * Returns a new Array containing each key-value pair in the database.</div><div class='del'>- *</div><div class='del'>- * Example:</div><div class='del'>- *</div><div class='del'>- *   require 'sdbm'</div><div class='del'>- *</div><div class='del'>- *   SDBM.open 'my_database' do |db|</div><div class='del'>- *     db.update('apple' =&gt; 'fruit', 'spinach' =&gt; 'vegetable')</div><div class='del'>- *</div><div class='del'>- *     db.to_a  #=&gt; [["apple", "fruit"], ["spinach", "vegetable"]]</div><div class='del'>- *   end</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_to_a(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE ary;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	val = sdbm_fetch(dbm, key);</div><div class='del'>-	rb_ary_push(ary, rb_assoc_new(rb_external_str_new(key.dptr, key.dsize),</div><div class='del'>-				      rb_external_str_new(val.dptr, val.dsize)));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return ary;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.to_hash -&gt; Hash</div><div class='del'>- *</div><div class='del'>- * Returns a new Hash containing each key-value pair in the database.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_to_hash(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    datum key, val;</div><div class='del'>-    struct dbmdata *dbmp;</div><div class='del'>-    DBM *dbm;</div><div class='del'>-    VALUE hash;</div><div class='del'>-</div><div class='del'>-    GetDBM2(obj, dbmp, dbm);</div><div class='del'>-    hash = rb_hash_new();</div><div class='del'>-    for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {</div><div class='del'>-	val = sdbm_fetch(dbm, key);</div><div class='del'>-	rb_hash_aset(hash, rb_external_str_new(key.dptr, key.dsize),</div><div class='del'>-		           rb_external_str_new(val.dptr, val.dsize));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return hash;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   sdbm.reject { |key, value| ... } -&gt; Hash</div><div class='del'>- *</div><div class='del'>- * Creates a new Hash using the key-value pairs from the database, then</div><div class='del'>- * calls Hash#reject with the given block, which returns a Hash with</div><div class='del'>- * only the key-value pairs for which the block returns +false+.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-fsdbm_reject(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    return rb_hash_delete_if(fsdbm_to_hash(obj));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-void</div><div class='del'>-Init_sdbm(void)</div><div class='del'>-{</div><div class='del'>-    rb_cDBM = rb_define_class("SDBM", rb_cObject);</div><div class='del'>-    rb_eDBMError = rb_define_class("SDBMError", rb_eStandardError);</div><div class='del'>-    /* Document-class: SDBMError</div><div class='del'>-     * Exception class used to return errors from the sdbm library.</div><div class='del'>-     */</div><div class='del'>-    rb_include_module(rb_cDBM, rb_mEnumerable);</div><div class='del'>-</div><div class='del'>-    rb_define_alloc_func(rb_cDBM, fsdbm_alloc);</div><div class='del'>-    rb_define_singleton_method(rb_cDBM, "open", fsdbm_s_open, -1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cDBM, "initialize", fsdbm_initialize, -1);</div><div class='del'>-    rb_define_method(rb_cDBM, "close", fsdbm_close, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "closed?", fsdbm_closed, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "[]", fsdbm_aref, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "fetch", fsdbm_fetch_m, -1);</div><div class='del'>-    rb_define_method(rb_cDBM, "[]=", fsdbm_store, 2);</div><div class='del'>-    rb_define_method(rb_cDBM, "store", fsdbm_store, 2);</div><div class='del'>-    rb_define_method(rb_cDBM, "index",  fsdbm_index, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "key",  fsdbm_key, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "select",  fsdbm_select, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "values_at",  fsdbm_values_at, -1);</div><div class='del'>-    rb_define_method(rb_cDBM, "length", fsdbm_length, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "size", fsdbm_length, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "empty?", fsdbm_empty_p, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "each", fsdbm_each_pair, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "each_value", fsdbm_each_value, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "each_key", fsdbm_each_key, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "each_pair", fsdbm_each_pair, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "keys", fsdbm_keys, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "values", fsdbm_values, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "shift", fsdbm_shift, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "delete", fsdbm_delete, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "delete_if", fsdbm_delete_if, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "reject!", fsdbm_delete_if, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "reject", fsdbm_reject, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "clear", fsdbm_clear, 0);</div><div class='del'>-    rb_define_method(rb_cDBM,"invert", fsdbm_invert, 0);</div><div class='del'>-    rb_define_method(rb_cDBM,"update", fsdbm_update, 1);</div><div class='del'>-    rb_define_method(rb_cDBM,"replace", fsdbm_replace, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cDBM, "has_key?", fsdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "include?", fsdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "key?", fsdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "member?", fsdbm_has_key, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "has_value?", fsdbm_has_value, 1);</div><div class='del'>-    rb_define_method(rb_cDBM, "value?", fsdbm_has_value, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(rb_cDBM, "to_a", fsdbm_to_a, 0);</div><div class='del'>-    rb_define_method(rb_cDBM, "to_hash", fsdbm_to_hash, 0);</div><div class='del'>-}</div><div class='head'>diff --git a/ext/sdbm/sdbm.gemspec b/ext/sdbm/sdbm.gemspec<br/>deleted file mode 100644<br/>index 6cf000b453..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/sdbm/sdbm.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/sdbm.gemspec</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,21 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-Gem::Specification.new do |s|</div><div class='del'>-  s.name = "sdbm"</div><div class='del'>-  s.version = '1.0.0'</div><div class='del'>-  s.summary = "Provides a simple file-based key-value store with String keys and values."</div><div class='del'>-  s.description = "Provides a simple file-based key-value store with String keys and values."</div><div class='del'>-</div><div class='del'>-  s.require_path = %w{lib}</div><div class='del'>-  s.files = %w{ext/sdbm/_sdbm.c ext/sdbm/extconf.rb ext/sdbm/init.c ext/sdbm/sdbm.h}</div><div class='del'>-  s.extensions = ["ext/sdbm/extconf.rb"]</div><div class='del'>-  s.required_ruby_version = "&gt;= 2.3.0"</div><div class='del'>-</div><div class='del'>-  s.authors = ["Yukihiro Matsumoto"]</div><div class='del'>-  s.email = ["matz@ruby-lang.org"]</div><div class='del'>-  s.homepage = "https://github.com/ruby/sdbm"</div><div class='del'>-  s.license = "BSD-2-Clause"</div><div class='del'>-</div><div class='del'>-  s.add_development_dependency "test-unit"</div><div class='del'>-  s.add_development_dependency "rake-compiler"</div><div class='del'>-end</div><div class='head'>diff --git a/ext/sdbm/sdbm.h b/ext/sdbm/sdbm.h<br/>deleted file mode 100644<br/>index c3b53c4a8f..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/sdbm/sdbm.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/sdbm/sdbm.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,86 +0,0 @@</div><div class='del'>-/*</div><div class='del'>- * sdbm - ndbm work-alike hashed database library</div><div class='del'>- * based on Per-Ake Larson's Dynamic Hashing algorithms. BIT 18 (1978).</div><div class='del'>- * author: oz@nexus.yorku.ca</div><div class='del'>- * status: public domain.</div><div class='del'>- */</div><div class='del'>-#ifndef	_SDBM_H_</div><div class='del'>-#define	_SDBM_H_</div><div class='del'>-</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-</div><div class='del'>-#define DBLKSIZ 4096</div><div class='del'>-#define PBLKSIZ 1024</div><div class='del'>-#define PAIRMAX 1008			/* arbitrary on PBLKSIZ-N */</div><div class='del'>-#define SPLTMAX	10			/* maximum allowed splits */</div><div class='del'>-					/* for a single insertion */</div><div class='del'>-#define DIRFEXT	".dir"</div><div class='del'>-#define PAGFEXT	".pag"</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	int dirf;		       /* directory file descriptor */</div><div class='del'>-	int pagf;		       /* page file descriptor */</div><div class='del'>-	int flags;		       /* status/error flags, see below */</div><div class='del'>-	int keyptr;		       /* current key for nextkey */</div><div class='del'>-	off_t maxbno;		       /* size of dirfile in bits */</div><div class='del'>-	long curbit;		       /* current bit number */</div><div class='del'>-	long hmask;		       /* current hash mask */</div><div class='del'>-	long blkptr;		       /* current block for nextkey */</div><div class='del'>-	long blkno;		       /* current page to read/write */</div><div class='del'>-	long pagbno;		       /* current page in pagbuf */</div><div class='del'>-	char pagbuf[PBLKSIZ];	       /* page file block buffer */</div><div class='del'>-	long dirbno;		       /* current block in dirbuf */</div><div class='del'>-	char dirbuf[DBLKSIZ];	       /* directory file block buffer */</div><div class='del'>-} DBM;</div><div class='del'>-</div><div class='del'>-#define DBM_RDONLY	0x1	       /* data base open read-only */</div><div class='del'>-#define DBM_IOERR	0x2	       /* data base I/O error */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * utility macros</div><div class='del'>- */</div><div class='del'>-#define sdbm_rdonly(db)		((db)-&gt;flags &amp; DBM_RDONLY)</div><div class='del'>-#define sdbm_error(db)		((db)-&gt;flags &amp; DBM_IOERR)</div><div class='del'>-</div><div class='del'>-#define sdbm_clearerr(db)	((db)-&gt;flags &amp;= ~DBM_IOERR)  /* ouch */</div><div class='del'>-</div><div class='del'>-#define sdbm_dirfno(db)	((db)-&gt;dirf)</div><div class='del'>-#define sdbm_pagfno(db)	((db)-&gt;pagf)</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-	char *dptr;</div><div class='del'>-	int dsize;</div><div class='del'>-} datum;</div><div class='del'>-</div><div class='del'>-extern datum nullitem;</div><div class='del'>-</div><div class='del'>-#if defined(__STDC__)</div><div class='del'>-#define proto(p) p</div><div class='del'>-#else</div><div class='del'>-#define proto(p) ()</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * flags to sdbm_store</div><div class='del'>- */</div><div class='del'>-#define DBM_INSERT	0</div><div class='del'>-#define DBM_REPLACE	1</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * ndbm interface</div><div class='del'>- */</div><div class='del'>-extern DBM *sdbm_open proto((char *, int, int));</div><div class='del'>-extern void sdbm_close proto((DBM *));</div><div class='del'>-extern datum sdbm_fetch proto((DBM *, datum));</div><div class='del'>-extern int sdbm_delete proto((DBM *, datum));</div><div class='del'>-extern int sdbm_store proto((DBM *, datum, datum, int));</div><div class='del'>-extern datum sdbm_firstkey proto((DBM *));</div><div class='del'>-extern datum sdbm_nextkey proto((DBM *));</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * other</div><div class='del'>- */</div><div class='del'>-extern DBM *sdbm_prep proto((char *, char *, int, int));</div><div class='del'>-extern long sdbm_hash proto((char *, int));</div><div class='del'>-</div><div class='del'>-#endif	/* _SDBM_H_ */</div><div class='head'>diff --git a/ext/socket/addrinfo.h b/ext/socket/addrinfo.h<br/>index f0b977d79c..eb9eb8ae0e 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/addrinfo.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/addrinfo.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/addrinfo.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/addrinfo.h</a></div><div class='hunk'>@@ -129,14 +129,14 @@</div><div class='ctx'> </div><div class='ctx'> #ifndef HAVE_TYPE_STRUCT_ADDRINFO</div><div class='ctx'> struct addrinfo {</div><div class='del'>-	int	ai_flags;	/* AI_PASSIVE, AI_CANONNAME */</div><div class='del'>-	int	ai_family;	/* PF_xxx */</div><div class='del'>-	int	ai_socktype;	/* SOCK_xxx */</div><div class='del'>-	int	ai_protocol;	/* 0 or IPPROTO_xxx for IPv4 and IPv6 */</div><div class='del'>-	size_t	ai_addrlen;	/* length of ai_addr */</div><div class='del'>-	char	*ai_canonname;	/* canonical name for hostname */</div><div class='del'>-	struct sockaddr *ai_addr;	/* binary address */</div><div class='del'>-	struct addrinfo *ai_next;	/* next structure in linked list */</div><div class='add'>+        int	ai_flags;	/* AI_PASSIVE, AI_CANONNAME */</div><div class='add'>+        int	ai_family;	/* PF_xxx */</div><div class='add'>+        int	ai_socktype;	/* SOCK_xxx */</div><div class='add'>+        int	ai_protocol;	/* 0 or IPPROTO_xxx for IPv4 and IPv6 */</div><div class='add'>+        size_t	ai_addrlen;	/* length of ai_addr */</div><div class='add'>+        char	*ai_canonname;	/* canonical name for hostname */</div><div class='add'>+        struct sockaddr *ai_addr;	/* binary address */</div><div class='add'>+        struct addrinfo *ai_next;	/* next structure in linked list */</div><div class='ctx'> };</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -158,18 +158,18 @@ struct addrinfo {</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> extern int getaddrinfo __P((</div><div class='del'>-	const char *hostname, const char *servname,</div><div class='del'>-	const struct addrinfo *hints,</div><div class='del'>-	struct addrinfo **res));</div><div class='add'>+        const char *hostname, const char *servname,</div><div class='add'>+        const struct addrinfo *hints,</div><div class='add'>+        struct addrinfo **res));</div><div class='ctx'> </div><div class='ctx'> extern int getnameinfo __P((</div><div class='del'>-	const struct sockaddr *sa,</div><div class='del'>-	socklen_t salen,</div><div class='del'>-	char *host,</div><div class='del'>-	socklen_t hostlen,</div><div class='del'>-	char *serv,</div><div class='del'>-	socklen_t servlen,</div><div class='del'>-	int flags));</div><div class='add'>+        const struct sockaddr *sa,</div><div class='add'>+        socklen_t salen,</div><div class='add'>+        char *host,</div><div class='add'>+        socklen_t hostlen,</div><div class='add'>+        char *serv,</div><div class='add'>+        socklen_t servlen,</div><div class='add'>+        int flags));</div><div class='ctx'> </div><div class='ctx'> extern void freehostent __P((struct hostent *));</div><div class='ctx'> extern void freeaddrinfo __P((struct addrinfo *));</div><div class='head'>diff --git a/ext/socket/ancdata.c b/ext/socket/ancdata.c<br/>index f5451c9569..7406177de2 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/ancdata.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/ancdata.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/ancdata.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/ancdata.c</a></div><div class='hunk'>@@ -2,7 +2,6 @@</div><div class='ctx'> </div><div class='ctx'> #include &lt;time.h&gt;</div><div class='ctx'> </div><div class='del'>-int rsock_cmsg_cloexec_state = -1; /* &lt;0: unknown, 0: ignored, &gt;0: working */</div><div class='ctx'> static VALUE sym_wait_readable, sym_wait_writable;</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL)</div><div class='hunk'>@@ -89,9 +88,9 @@ ancillary_initialize(VALUE self, VALUE vfamily, VALUE vlevel, VALUE vtype, VALUE</div><div class='ctx'> static VALUE</div><div class='ctx'> ancdata_new(int family, int level, int type, VALUE data)</div><div class='ctx'> {</div><div class='del'>-    NEWOBJ_OF(obj, struct RObject, rb_cAncillaryData, T_OBJECT);</div><div class='add'>+    VALUE obj = rb_obj_alloc(rb_cAncillaryData);</div><div class='ctx'>     StringValue(data);</div><div class='del'>-    ancillary_initialize((VALUE)obj, INT2NUM(family), INT2NUM(level), INT2NUM(type), data);</div><div class='add'>+    ancillary_initialize(obj, INT2NUM(family), INT2NUM(level), INT2NUM(type), data);</div><div class='ctx'>     return (VALUE)obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -334,11 +333,11 @@ ancillary_timestamp(VALUE self)</div><div class='ctx'>     if (level == SOL_SOCKET &amp;&amp; type == SCM_BINTIME &amp;&amp;</div><div class='ctx'>         RSTRING_LEN(data) == sizeof(struct bintime)) {</div><div class='ctx'>         struct bintime bt;</div><div class='del'>-	VALUE d, timev;</div><div class='add'>+        VALUE d, timev;</div><div class='ctx'>         memcpy((char*)&amp;bt, RSTRING_PTR(data), sizeof(bt));</div><div class='del'>-	d = ULL2NUM(0x100000000ULL);</div><div class='del'>-	d = mul(d,d);</div><div class='del'>-	timev = add(TIMET2NUM(bt.sec), quo(ULL2NUM(bt.frac), d));</div><div class='add'>+        d = ULL2NUM(0x100000000ULL);</div><div class='add'>+        d = mul(d,d);</div><div class='add'>+        timev = add(TIMET2NUM(bt.sec), quo(ULL2NUM(bt.frac), d));</div><div class='ctx'>         result = rb_time_num_new(timev, Qnil);</div><div class='ctx'>     }</div><div class='ctx'> # endif</div><div class='hunk'>@@ -698,7 +697,7 @@ anc_inspect_passcred_credentials(int level, int type, VALUE data, VALUE ret)</div><div class='ctx'>         struct ucred cred;</div><div class='ctx'>         memcpy(&amp;cred, RSTRING_PTR(data), sizeof(struct ucred));</div><div class='ctx'>         rb_str_catf(ret, " pid=%u uid=%u gid=%u", cred.pid, cred.uid, cred.gid);</div><div class='del'>-	rb_str_cat2(ret, " (ucred)");</div><div class='add'>+        rb_str_cat2(ret, " (ucred)");</div><div class='ctx'>         return 1;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='hunk'>@@ -713,7 +712,7 @@ static int</div><div class='ctx'> anc_inspect_socket_creds(int level, int type, VALUE data, VALUE ret)</div><div class='ctx'> {</div><div class='ctx'>     if (level != SOL_SOCKET &amp;&amp; type != SCM_CREDS)</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * FreeBSD has struct cmsgcred and struct sockcred.</div><div class='hunk'>@@ -728,46 +727,46 @@ anc_inspect_socket_creds(int level, int type, VALUE data, VALUE ret)</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_TYPE_STRUCT_CMSGCRED) /* FreeBSD */</div><div class='ctx'>     if (RSTRING_LEN(data) == sizeof(struct cmsgcred)) {</div><div class='del'>-	struct cmsgcred cred;</div><div class='add'>+        struct cmsgcred cred;</div><div class='ctx'>         memcpy(&amp;cred, RSTRING_PTR(data), sizeof(struct cmsgcred));</div><div class='ctx'>         rb_str_catf(ret, " pid=%u", cred.cmcred_pid);</div><div class='ctx'>         rb_str_catf(ret, " uid=%u", cred.cmcred_uid);</div><div class='ctx'>         rb_str_catf(ret, " euid=%u", cred.cmcred_euid);</div><div class='ctx'>         rb_str_catf(ret, " gid=%u", cred.cmcred_gid);</div><div class='del'>-	if (cred.cmcred_ngroups) {</div><div class='del'>-	    int i;</div><div class='del'>-	    const char *sep = " groups=";</div><div class='del'>-	    for (i = 0; i &lt; cred.cmcred_ngroups; i++) {</div><div class='del'>-		rb_str_catf(ret, "%s%u", sep, cred.cmcred_groups[i]);</div><div class='del'>-		sep = ",";</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	rb_str_cat2(ret, " (cmsgcred)");</div><div class='add'>+        if (cred.cmcred_ngroups) {</div><div class='add'>+            int i;</div><div class='add'>+            const char *sep = " groups=";</div><div class='add'>+            for (i = 0; i &lt; cred.cmcred_ngroups; i++) {</div><div class='add'>+                rb_str_catf(ret, "%s%u", sep, cred.cmcred_groups[i]);</div><div class='add'>+                sep = ",";</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        rb_str_cat2(ret, " (cmsgcred)");</div><div class='ctx'>         return 1;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> #if defined(HAVE_TYPE_STRUCT_SOCKCRED) /* FreeBSD, NetBSD */</div><div class='ctx'>     if ((size_t)RSTRING_LEN(data) &gt;= SOCKCREDSIZE(0)) {</div><div class='del'>-	struct sockcred cred0, *cred;</div><div class='add'>+        struct sockcred cred0, *cred;</div><div class='ctx'>         memcpy(&amp;cred0, RSTRING_PTR(data), SOCKCREDSIZE(0));</div><div class='del'>-	if ((size_t)RSTRING_LEN(data) == SOCKCREDSIZE(cred0.sc_ngroups)) {</div><div class='del'>-	    cred = (struct sockcred *)ALLOCA_N(char, SOCKCREDSIZE(cred0.sc_ngroups));</div><div class='del'>-	    memcpy(cred, RSTRING_PTR(data), SOCKCREDSIZE(cred0.sc_ngroups));</div><div class='del'>-	    rb_str_catf(ret, " uid=%u", cred-&gt;sc_uid);</div><div class='del'>-	    rb_str_catf(ret, " euid=%u", cred-&gt;sc_euid);</div><div class='del'>-	    rb_str_catf(ret, " gid=%u", cred-&gt;sc_gid);</div><div class='del'>-	    rb_str_catf(ret, " egid=%u", cred-&gt;sc_egid);</div><div class='del'>-	    if (cred0.sc_ngroups) {</div><div class='del'>-		int i;</div><div class='del'>-		const char *sep = " groups=";</div><div class='del'>-		for (i = 0; i &lt; cred0.sc_ngroups; i++) {</div><div class='del'>-		    rb_str_catf(ret, "%s%u", sep, cred-&gt;sc_groups[i]);</div><div class='del'>-		    sep = ",";</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    rb_str_cat2(ret, " (sockcred)");</div><div class='del'>-	    return 1;</div><div class='del'>-	}</div><div class='add'>+        if ((size_t)RSTRING_LEN(data) == SOCKCREDSIZE(cred0.sc_ngroups)) {</div><div class='add'>+            cred = (struct sockcred *)ALLOCA_N(char, SOCKCREDSIZE(cred0.sc_ngroups));</div><div class='add'>+            memcpy(cred, RSTRING_PTR(data), SOCKCREDSIZE(cred0.sc_ngroups));</div><div class='add'>+            rb_str_catf(ret, " uid=%u", cred-&gt;sc_uid);</div><div class='add'>+            rb_str_catf(ret, " euid=%u", cred-&gt;sc_euid);</div><div class='add'>+            rb_str_catf(ret, " gid=%u", cred-&gt;sc_gid);</div><div class='add'>+            rb_str_catf(ret, " egid=%u", cred-&gt;sc_egid);</div><div class='add'>+            if (cred0.sc_ngroups) {</div><div class='add'>+                int i;</div><div class='add'>+                const char *sep = " groups=";</div><div class='add'>+                for (i = 0; i &lt; cred0.sc_ngroups; i++) {</div><div class='add'>+                    rb_str_catf(ret, "%s%u", sep, cred-&gt;sc_groups[i]);</div><div class='add'>+                    sep = ",";</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            rb_str_cat2(ret, " (sockcred)");</div><div class='add'>+            return 1;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return 0;</div><div class='hunk'>@@ -852,6 +851,12 @@ anc_inspect_ipv6_pktinfo(int level, int type, VALUE data, VALUE ret)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_GMTIME_R</div><div class='add'>+# define LOCALTIME(time, tm) localtime_r(&amp;(time), &amp;(tm))</div><div class='add'>+#else</div><div class='add'>+# define LOCALTIME(time, tm) ((tm) = *localtime(&amp;(time)))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #if defined(SCM_TIMESTAMP) /* GNU/Linux, FreeBSD, NetBSD, OpenBSD, MacOS X, Solaris */</div><div class='ctx'> static int</div><div class='ctx'> inspect_timeval_as_abstime(int level, int optname, VALUE data, VALUE ret)</div><div class='hunk'>@@ -863,7 +868,7 @@ inspect_timeval_as_abstime(int level, int optname, VALUE data, VALUE ret)</div><div class='ctx'>         char buf[32];</div><div class='ctx'>         memcpy((char*)&amp;tv, RSTRING_PTR(data), sizeof(tv));</div><div class='ctx'>         time = tv.tv_sec;</div><div class='del'>-        tm = *localtime(&amp;time);</div><div class='add'>+        LOCALTIME(time, tm);</div><div class='ctx'>         strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", &amp;tm);</div><div class='ctx'>         rb_str_catf(ret, " %s.%06ld", buf, (long)tv.tv_usec);</div><div class='ctx'>         return 1;</div><div class='hunk'>@@ -883,7 +888,7 @@ inspect_timespec_as_abstime(int level, int optname, VALUE data, VALUE ret)</div><div class='ctx'>         struct tm tm;</div><div class='ctx'>         char buf[32];</div><div class='ctx'>         memcpy((char*)&amp;ts, RSTRING_PTR(data), sizeof(ts));</div><div class='del'>-        tm = *localtime(&amp;ts.tv_sec);</div><div class='add'>+        LOCALTIME(ts.tv_sec, tm);</div><div class='ctx'>         strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", &amp;tm);</div><div class='ctx'>         rb_str_catf(ret, " %s.%09ld", buf, (long)ts.tv_nsec);</div><div class='ctx'>         return 1;</div><div class='hunk'>@@ -901,37 +906,37 @@ inspect_bintime_as_abstime(int level, int optname, VALUE data, VALUE ret)</div><div class='ctx'>     if (RSTRING_LEN(data) == sizeof(struct bintime)) {</div><div class='ctx'>         struct bintime bt;</div><div class='ctx'>         struct tm tm;</div><div class='del'>-	uint64_t frac_h, frac_l;</div><div class='del'>-	uint64_t scale_h, scale_l;</div><div class='del'>-	uint64_t tmp1, tmp2;</div><div class='del'>-	uint64_t res_h, res_l;</div><div class='add'>+        uint64_t frac_h, frac_l;</div><div class='add'>+        uint64_t scale_h, scale_l;</div><div class='add'>+        uint64_t tmp1, tmp2;</div><div class='add'>+        uint64_t res_h, res_l;</div><div class='ctx'>         char buf[32];</div><div class='ctx'>         memcpy((char*)&amp;bt, RSTRING_PTR(data), sizeof(bt));</div><div class='del'>-        tm = *localtime(&amp;bt.sec);</div><div class='add'>+        LOCALTIME(bt.sec, tm);</div><div class='ctx'>         strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", &amp;tm);</div><div class='ctx'> </div><div class='del'>-	/* res_h = frac * 10**19 / 2**64 */</div><div class='add'>+        /* res_h = frac * 10**19 / 2**64 */</div><div class='ctx'> </div><div class='del'>-	frac_h = bt.frac &gt;&gt; 32;</div><div class='del'>-	frac_l = bt.frac &amp; 0xffffffff;</div><div class='add'>+        frac_h = bt.frac &gt;&gt; 32;</div><div class='add'>+        frac_l = bt.frac &amp; 0xffffffff;</div><div class='ctx'> </div><div class='del'>-	scale_h = 0x8ac72304; /* 0x8ac7230489e80000 == 10**19 */</div><div class='del'>-	scale_l = 0x89e80000;</div><div class='add'>+        scale_h = 0x8ac72304; /* 0x8ac7230489e80000 == 10**19 */</div><div class='add'>+        scale_l = 0x89e80000;</div><div class='ctx'> </div><div class='del'>-	res_h = frac_h * scale_h;</div><div class='del'>-	res_l = frac_l * scale_l;</div><div class='add'>+        res_h = frac_h * scale_h;</div><div class='add'>+        res_l = frac_l * scale_l;</div><div class='ctx'> </div><div class='del'>-	tmp1 = frac_h * scale_l;</div><div class='del'>-	res_h += tmp1 &gt;&gt; 32;</div><div class='del'>-	tmp2 = res_l;</div><div class='del'>-	res_l += tmp1 &amp; 0xffffffff;</div><div class='del'>-	if (res_l &lt; tmp2) res_h++;</div><div class='add'>+        tmp1 = frac_h * scale_l;</div><div class='add'>+        res_h += tmp1 &gt;&gt; 32;</div><div class='add'>+        tmp2 = res_l;</div><div class='add'>+        res_l += tmp1 &amp; 0xffffffff;</div><div class='add'>+        if (res_l &lt; tmp2) res_h++;</div><div class='ctx'> </div><div class='del'>-	tmp1 = frac_l * scale_h;</div><div class='del'>-	res_h += tmp1 &gt;&gt; 32;</div><div class='del'>-	tmp2 = res_l;</div><div class='del'>-	res_l += tmp1 &amp; 0xffffffff;</div><div class='del'>-	if (res_l &lt; tmp2) res_h++;</div><div class='add'>+        tmp1 = frac_l * scale_h;</div><div class='add'>+        res_h += tmp1 &gt;&gt; 32;</div><div class='add'>+        tmp2 = res_l;</div><div class='add'>+        res_l += tmp1 &amp; 0xffffffff;</div><div class='add'>+        if (res_l &lt; tmp2) res_h++;</div><div class='ctx'> </div><div class='ctx'>         rb_str_catf(ret, " %s.%019"PRIu64, buf, res_h);</div><div class='ctx'>         return 1;</div><div class='hunk'>@@ -1131,12 +1136,13 @@ rb_sendmsg(int fd, const struct msghdr *msg, int flags)</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> bsock_sendmsg_internal(VALUE sock, VALUE data, VALUE vflags,</div><div class='del'>-		       VALUE dest_sockaddr, VALUE controls, VALUE ex,</div><div class='del'>-		       int nonblock)</div><div class='add'>+                       VALUE dest_sockaddr, VALUE controls, VALUE ex,</div><div class='add'>+                       int nonblock)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     struct msghdr mh;</div><div class='ctx'>     struct iovec iov;</div><div class='add'>+    VALUE tmp;</div><div class='ctx'>     int controls_num;</div><div class='ctx'> #if defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL)</div><div class='ctx'>     VALUE controls_str = 0;</div><div class='hunk'>@@ -1151,17 +1157,18 @@ bsock_sendmsg_internal(VALUE sock, VALUE data, VALUE vflags,</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     StringValue(data);</div><div class='add'>+    tmp = rb_str_tmp_frozen_acquire(data);</div><div class='ctx'> </div><div class='ctx'>     if (!RB_TYPE_P(controls, T_ARRAY)) {</div><div class='del'>-	controls = rb_ary_new();</div><div class='add'>+        controls = rb_ary_new();</div><div class='ctx'>     }</div><div class='ctx'>     controls_num = RARRAY_LENINT(controls);</div><div class='ctx'> </div><div class='ctx'>     if (controls_num) {</div><div class='ctx'> #if defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL)</div><div class='del'>-	int i;</div><div class='del'>-	size_t last_pad = 0;</div><div class='del'>-	const VALUE *controls_ptr = RARRAY_CONST_PTR(controls);</div><div class='add'>+        int i;</div><div class='add'>+        size_t last_pad = 0;</div><div class='add'>+        const VALUE *controls_ptr = RARRAY_CONST_PTR(controls);</div><div class='ctx'> #if defined(__NetBSD__)</div><div class='ctx'>         int last_level = 0;</div><div class='ctx'>         int last_type = 0;</div><div class='hunk'>@@ -1208,9 +1215,9 @@ bsock_sendmsg_internal(VALUE sock, VALUE data, VALUE vflags,</div><div class='ctx'>             last_level = cmh.cmsg_level;</div><div class='ctx'>             last_type = cmh.cmsg_type;</div><div class='ctx'> #endif</div><div class='del'>-	    last_pad = cspace - cmh.cmsg_len;</div><div class='add'>+            last_pad = cspace - cmh.cmsg_len;</div><div class='ctx'>         }</div><div class='del'>-	if (last_pad) {</div><div class='add'>+        if (last_pad) {</div><div class='ctx'>             /*</div><div class='ctx'>              * This code removes the last padding from msg_controllen.</div><div class='ctx'>              *</div><div class='hunk'>@@ -1235,10 +1242,10 @@ bsock_sendmsg_internal(VALUE sock, VALUE data, VALUE vflags,</div><div class='ctx'>             if (last_level == SOL_SOCKET &amp;&amp; last_type == SCM_RIGHTS)</div><div class='ctx'>                 rb_str_set_len(controls_str, RSTRING_LEN(controls_str)-last_pad);</div><div class='ctx'> #endif</div><div class='del'>-	}</div><div class='del'>-	RB_GC_GUARD(controls);</div><div class='add'>+        }</div><div class='add'>+        RB_GC_GUARD(controls);</div><div class='ctx'> #else</div><div class='del'>-	rb_raise(rb_eNotImpError, "control message for sendmsg is unimplemented");</div><div class='add'>+        rb_raise(rb_eNotImpError, "control message for sendmsg is unimplemented");</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -1249,7 +1256,7 @@ bsock_sendmsg_internal(VALUE sock, VALUE data, VALUE vflags,</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(dest_sockaddr))</div><div class='del'>-	SockAddrStringValue(dest_sockaddr);</div><div class='add'>+        SockAddrStringValue(dest_sockaddr);</div><div class='ctx'> </div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='ctx'> </div><div class='hunk'>@@ -1261,8 +1268,8 @@ bsock_sendmsg_internal(VALUE sock, VALUE data, VALUE vflags,</div><div class='ctx'>     }</div><div class='ctx'>     mh.msg_iovlen = 1;</div><div class='ctx'>     mh.msg_iov = &amp;iov;</div><div class='del'>-    iov.iov_base = RSTRING_PTR(data);</div><div class='del'>-    iov.iov_len = RSTRING_LEN(data);</div><div class='add'>+    iov.iov_base = RSTRING_PTR(tmp);</div><div class='add'>+    iov.iov_len = RSTRING_LEN(tmp);</div><div class='ctx'> #if defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL)</div><div class='ctx'>     if (controls_str) {</div><div class='ctx'>         mh.msg_control = RSTRING_PTR(controls_str);</div><div class='hunk'>@@ -1277,24 +1284,25 @@ bsock_sendmsg_internal(VALUE sock, VALUE data, VALUE vflags,</div><div class='ctx'>     ss = rb_sendmsg(fptr-&gt;fd, &amp;mh, flags);</div><div class='ctx'> </div><div class='ctx'>     if (ss == -1) {</div><div class='del'>-	int e;</div><div class='del'>-        if (!nonblock &amp;&amp; rb_io_wait_writable(fptr-&gt;fd)) {</div><div class='add'>+        int e;</div><div class='add'>+        if (!nonblock &amp;&amp; rb_io_maybe_wait_writable(errno, fptr-&gt;self, RUBY_IO_TIMEOUT_DEFAULT)) {</div><div class='ctx'>             rb_io_check_closed(fptr);</div><div class='ctx'>             goto retry;</div><div class='ctx'>         }</div><div class='del'>-	e = errno;</div><div class='del'>-	if (nonblock &amp;&amp; (e == EWOULDBLOCK || e == EAGAIN)) {</div><div class='del'>-	    if (ex == Qfalse) {</div><div class='del'>-		return sym_wait_writable;</div><div class='del'>-	    }</div><div class='del'>-	    rb_readwrite_syserr_fail(RB_IO_WAIT_WRITABLE, e,</div><div class='del'>-				     "sendmsg(2) would block");</div><div class='del'>-	}</div><div class='del'>-	rb_syserr_fail(e, "sendmsg(2)");</div><div class='add'>+        e = errno;</div><div class='add'>+        if (nonblock &amp;&amp; (e == EWOULDBLOCK || e == EAGAIN)) {</div><div class='add'>+            if (ex == Qfalse) {</div><div class='add'>+                return sym_wait_writable;</div><div class='add'>+            }</div><div class='add'>+            rb_readwrite_syserr_fail(RB_IO_WAIT_WRITABLE, e,</div><div class='add'>+                                     "sendmsg(2) would block");</div><div class='add'>+        }</div><div class='add'>+        rb_syserr_fail(e, "sendmsg(2)");</div><div class='ctx'>     }</div><div class='ctx'> #if defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL)</div><div class='ctx'>     RB_GC_GUARD(controls_str);</div><div class='ctx'> #endif</div><div class='add'>+    rb_str_tmp_frozen_release(data, tmp);</div><div class='ctx'> </div><div class='ctx'>     return SSIZET2NUM(ss);</div><div class='ctx'> }</div><div class='hunk'>@@ -1303,20 +1311,20 @@ bsock_sendmsg_internal(VALUE sock, VALUE data, VALUE vflags,</div><div class='ctx'> #if defined(HAVE_SENDMSG)</div><div class='ctx'> VALUE</div><div class='ctx'> rsock_bsock_sendmsg(VALUE sock, VALUE data, VALUE flags, VALUE dest_sockaddr,</div><div class='del'>-		    VALUE controls)</div><div class='add'>+                    VALUE controls)</div><div class='ctx'> {</div><div class='ctx'>     return bsock_sendmsg_internal(sock, data, flags, dest_sockaddr, controls,</div><div class='del'>-				  Qtrue, 0);</div><div class='add'>+                                  Qtrue, 0);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_SENDMSG)</div><div class='ctx'> VALUE</div><div class='ctx'> rsock_bsock_sendmsg_nonblock(VALUE sock, VALUE data, VALUE flags,</div><div class='del'>-			     VALUE dest_sockaddr, VALUE controls, VALUE ex)</div><div class='add'>+                             VALUE dest_sockaddr, VALUE controls, VALUE ex)</div><div class='ctx'> {</div><div class='ctx'>     return bsock_sendmsg_internal(sock, data, flags, dest_sockaddr,</div><div class='del'>-				  controls, ex, 1);</div><div class='add'>+                                  controls, ex, 1);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -1414,22 +1422,19 @@ make_io_for_unix_rights(VALUE ctl, struct cmsghdr *cmh, char *msg_end)</div><div class='ctx'> {</div><div class='ctx'>     if (cmh-&gt;cmsg_level == SOL_SOCKET &amp;&amp; cmh-&gt;cmsg_type == SCM_RIGHTS) {</div><div class='ctx'>         int *fdp, *end;</div><div class='del'>-	VALUE ary = rb_ary_new();</div><div class='del'>-	rb_ivar_set(ctl, rb_intern("unix_rights"), ary);</div><div class='add'>+        VALUE ary = rb_ary_new();</div><div class='add'>+        rb_ivar_set(ctl, rb_intern("unix_rights"), ary);</div><div class='ctx'>         fdp = (int *)CMSG_DATA(cmh);</div><div class='ctx'>         end = (int *)((char *)cmh + cmh-&gt;cmsg_len);</div><div class='ctx'>         while ((char *)fdp + sizeof(int) &lt;= (char *)end &amp;&amp;</div><div class='del'>-	       (char *)fdp + sizeof(int) &lt;= msg_end) {</div><div class='add'>+               (char *)fdp + sizeof(int) &lt;= msg_end) {</div><div class='ctx'>             int fd = *fdp;</div><div class='ctx'>             struct stat stbuf;</div><div class='ctx'>             VALUE io;</div><div class='ctx'>             if (fstat(fd, &amp;stbuf) == -1)</div><div class='ctx'>                 rb_raise(rb_eSocket, "invalid fd in SCM_RIGHTS");</div><div class='ctx'>             rb_update_max_fd(fd);</div><div class='del'>-            if (rsock_cmsg_cloexec_state &lt; 0)</div><div class='del'>-                rsock_cmsg_cloexec_state = rsock_detect_cloexec(fd);</div><div class='del'>-            if (rsock_cmsg_cloexec_state == 0 || fd &lt;= 2)</div><div class='del'>-                rb_maygvl_fd_fix_cloexec(fd);</div><div class='add'>+            rb_maygvl_fd_fix_cloexec(fd);</div><div class='ctx'>             if (S_ISSOCK(stbuf.st_mode))</div><div class='ctx'>                 io = rsock_init_sock(rb_obj_alloc(rb_cSocket), fd);</div><div class='ctx'>             else</div><div class='hunk'>@@ -1438,15 +1443,15 @@ make_io_for_unix_rights(VALUE ctl, struct cmsghdr *cmh, char *msg_end)</div><div class='ctx'>             rb_ary_push(ary, io);</div><div class='ctx'>             fdp++;</div><div class='ctx'>         }</div><div class='del'>-	OBJ_FREEZE(ary);</div><div class='add'>+        OBJ_FREEZE(ary);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> bsock_recvmsg_internal(VALUE sock,</div><div class='del'>-		VALUE vmaxdatlen, VALUE vflags, VALUE vmaxctllen,</div><div class='del'>-		VALUE scm_rights, VALUE ex, int nonblock)</div><div class='add'>+                VALUE vmaxdatlen, VALUE vflags, VALUE vmaxctllen,</div><div class='add'>+                VALUE scm_rights, VALUE ex, int nonblock)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     int grow_buffer;</div><div class='hunk'>@@ -1500,28 +1505,28 @@ bsock_recvmsg_internal(VALUE sock,</div><div class='ctx'> </div><div class='ctx'> #if !defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL)</div><div class='ctx'>     if (grow_buffer) {</div><div class='del'>-	int socktype;</div><div class='del'>-	socklen_t optlen = (socklen_t)sizeof(socktype);</div><div class='add'>+        int socktype;</div><div class='add'>+        socklen_t optlen = (socklen_t)sizeof(socktype);</div><div class='ctx'>         if (getsockopt(fptr-&gt;fd, SOL_SOCKET, SO_TYPE, (void*)&amp;socktype, &amp;optlen) == -1) {</div><div class='del'>-	    rb_sys_fail("getsockopt(SO_TYPE)");</div><div class='del'>-	}</div><div class='del'>-	if (socktype == SOCK_STREAM)</div><div class='del'>-	    grow_buffer = 0;</div><div class='add'>+            rb_sys_fail("getsockopt(SO_TYPE)");</div><div class='add'>+        }</div><div class='add'>+        if (socktype == SOCK_STREAM)</div><div class='add'>+            grow_buffer = 0;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>   retry:</div><div class='ctx'>     if (NIL_P(dat_str))</div><div class='del'>-	dat_str = rb_str_tmp_new(maxdatlen);</div><div class='add'>+        dat_str = rb_str_tmp_new(maxdatlen);</div><div class='ctx'>     else</div><div class='del'>-	rb_str_resize(dat_str, maxdatlen);</div><div class='add'>+        rb_str_resize(dat_str, maxdatlen);</div><div class='ctx'>     datbuf = RSTRING_PTR(dat_str);</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL)</div><div class='ctx'>     if (NIL_P(ctl_str))</div><div class='del'>-	ctl_str = rb_str_tmp_new(maxctllen);</div><div class='add'>+        ctl_str = rb_str_tmp_new(maxctllen);</div><div class='ctx'>     else</div><div class='del'>-	rb_str_resize(ctl_str, maxctllen);</div><div class='add'>+        rb_str_resize(ctl_str, maxctllen);</div><div class='ctx'>     ctlbuf = RSTRING_PTR(ctl_str);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -1551,20 +1556,20 @@ bsock_recvmsg_internal(VALUE sock,</div><div class='ctx'>     ss = rb_recvmsg(fptr-&gt;fd, &amp;mh, flags);</div><div class='ctx'> </div><div class='ctx'>     if (ss == -1) {</div><div class='del'>-	int e;</div><div class='del'>-        if (!nonblock &amp;&amp; rb_io_wait_readable(fptr-&gt;fd)) {</div><div class='add'>+        int e;</div><div class='add'>+        if (!nonblock &amp;&amp; rb_io_maybe_wait_readable(errno, fptr-&gt;self, RUBY_IO_TIMEOUT_DEFAULT)) {</div><div class='ctx'>             rb_io_check_closed(fptr);</div><div class='ctx'>             goto retry;</div><div class='ctx'>         }</div><div class='del'>-	e = errno;</div><div class='del'>-	if (nonblock &amp;&amp; (e == EWOULDBLOCK || e == EAGAIN)) {</div><div class='add'>+        e = errno;</div><div class='add'>+        if (nonblock &amp;&amp; (e == EWOULDBLOCK || e == EAGAIN)) {</div><div class='ctx'>             if (ex == Qfalse) {</div><div class='ctx'>                 return sym_wait_readable;</div><div class='ctx'>             }</div><div class='del'>-	    rb_readwrite_syserr_fail(RB_IO_WAIT_READABLE, e, "recvmsg(2) would block");</div><div class='add'>+            rb_readwrite_syserr_fail(RB_IO_WAIT_READABLE, e, "recvmsg(2) would block");</div><div class='ctx'>         }</div><div class='ctx'> #if defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL)</div><div class='del'>-	if (!gc_done &amp;&amp; (e == EMFILE || e == EMSGSIZE)) {</div><div class='add'>+        if (!gc_done &amp;&amp; (e == EMFILE || e == EMSGSIZE)) {</div><div class='ctx'>           /*</div><div class='ctx'>            * When SCM_RIGHTS hit the file descriptors limit:</div><div class='ctx'>            * - Linux 2.6.18 causes success with MSG_CTRUNC</div><div class='hunk'>@@ -1574,24 +1579,24 @@ bsock_recvmsg_internal(VALUE sock,</div><div class='ctx'>           gc_and_retry:</div><div class='ctx'>             rb_gc();</div><div class='ctx'>             gc_done = 1;</div><div class='del'>-	    goto retry;</div><div class='add'>+            goto retry;</div><div class='ctx'>         }</div><div class='ctx'> #else</div><div class='del'>-	if (NIL_P(vmaxdatlen) &amp;&amp; grow_buffer &amp;&amp; e == EMSGSIZE)</div><div class='del'>-	    ss = (ssize_t)iov.iov_len;</div><div class='del'>-	else</div><div class='add'>+        if (NIL_P(vmaxdatlen) &amp;&amp; grow_buffer &amp;&amp; e == EMSGSIZE)</div><div class='add'>+            ss = (ssize_t)iov.iov_len;</div><div class='add'>+        else</div><div class='ctx'> #endif</div><div class='del'>-	rb_syserr_fail(e, "recvmsg(2)");</div><div class='add'>+        rb_syserr_fail(e, "recvmsg(2)");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (grow_buffer) {</div><div class='del'>-	int grown = 0;</div><div class='del'>-	if (NIL_P(vmaxdatlen) &amp;&amp; ss != -1 &amp;&amp; ss == (ssize_t)iov.iov_len) {</div><div class='add'>+        int grown = 0;</div><div class='add'>+        if (NIL_P(vmaxdatlen) &amp;&amp; ss != -1 &amp;&amp; ss == (ssize_t)iov.iov_len) {</div><div class='ctx'>             if (SIZE_MAX/2 &lt; maxdatlen)</div><div class='ctx'>                 rb_raise(rb_eArgError, "max data length too big");</div><div class='del'>-	    maxdatlen *= 2;</div><div class='del'>-	    grown = 1;</div><div class='del'>-	}</div><div class='add'>+            maxdatlen *= 2;</div><div class='add'>+            grown = 1;</div><div class='add'>+        }</div><div class='ctx'> #if defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL)</div><div class='ctx'>         if (NIL_P(vmaxctllen) &amp;&amp; (mh.msg_flags &amp; MSG_CTRUNC)) {</div><div class='ctx'> #define BIG_ENOUGH_SPACE 65536</div><div class='hunk'>@@ -1600,9 +1605,9 @@ bsock_recvmsg_internal(VALUE sock,</div><div class='ctx'>                 /* there are big space bug truncated.</div><div class='ctx'>                  * file descriptors limit? */</div><div class='ctx'>                 if (!gc_done) {</div><div class='del'>-		    rsock_discard_cmsg_resource(&amp;mh, (flags &amp; MSG_PEEK) != 0);</div><div class='add'>+                    rsock_discard_cmsg_resource(&amp;mh, (flags &amp; MSG_PEEK) != 0);</div><div class='ctx'>                     goto gc_and_retry;</div><div class='del'>-		}</div><div class='add'>+                }</div><div class='ctx'>             }</div><div class='ctx'>             else {</div><div class='ctx'>                 if (SIZE_MAX/2 &lt; maxctllen)</div><div class='hunk'>@@ -1611,13 +1616,13 @@ bsock_recvmsg_internal(VALUE sock,</div><div class='ctx'>                 grown = 1;</div><div class='ctx'>             }</div><div class='ctx'> #undef BIG_ENOUGH_SPACE</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='del'>-	if (grown) {</div><div class='add'>+        if (grown) {</div><div class='ctx'>             rsock_discard_cmsg_resource(&amp;mh, (flags &amp; MSG_PEEK) != 0);</div><div class='del'>-	    goto retry;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='add'>+            goto retry;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='ctx'>             grow_buffer = 0;</div><div class='ctx'>             if (flags != orig_flags) {</div><div class='ctx'>                 rsock_discard_cmsg_resource(&amp;mh, (flags &amp; MSG_PEEK) != 0);</div><div class='hunk'>@@ -1628,36 +1633,35 @@ bsock_recvmsg_internal(VALUE sock,</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(dat_str))</div><div class='del'>-        dat_str = rb_tainted_str_new(datbuf, ss);</div><div class='add'>+        dat_str = rb_str_new(datbuf, ss);</div><div class='ctx'>     else {</div><div class='ctx'>         rb_str_resize(dat_str, ss);</div><div class='del'>-        OBJ_TAINT(dat_str);</div><div class='del'>-	rb_obj_reveal(dat_str, rb_cString);</div><div class='add'>+        rb_obj_reveal(dat_str, rb_cString);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ret = rb_ary_new3(3, dat_str,</div><div class='ctx'>                          rsock_io_socket_addrinfo(sock, mh.msg_name, mh.msg_namelen),</div><div class='ctx'> #if defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL)</div><div class='del'>-			 INT2NUM(mh.msg_flags)</div><div class='add'>+                         INT2NUM(mh.msg_flags)</div><div class='ctx'> #else</div><div class='del'>-			 Qnil</div><div class='add'>+                         Qnil</div><div class='ctx'> #endif</div><div class='del'>-			 );</div><div class='add'>+                         );</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_STRUCT_MSGHDR_MSG_CONTROL)</div><div class='ctx'>     family = rsock_getfamily(fptr);</div><div class='ctx'>     if (mh.msg_controllen) {</div><div class='del'>-	char *msg_end = (char *)mh.msg_control + mh.msg_controllen;</div><div class='add'>+        char *msg_end = (char *)mh.msg_control + mh.msg_controllen;</div><div class='ctx'>         for (cmh = CMSG_FIRSTHDR(&amp;mh); cmh != NULL; cmh = CMSG_NXTHDR(&amp;mh, cmh)) {</div><div class='ctx'>             VALUE ctl;</div><div class='del'>-	    char *ctl_end;</div><div class='add'>+            char *ctl_end;</div><div class='ctx'>             size_t clen;</div><div class='ctx'>             if (cmh-&gt;cmsg_len == 0) {</div><div class='ctx'>                 rb_raise(rb_eTypeError, "invalid control message (cmsg_len == 0)");</div><div class='ctx'>             }</div><div class='ctx'>             ctl_end = (char*)cmh + cmh-&gt;cmsg_len;</div><div class='del'>-	    clen = (ctl_end &lt;= msg_end ? ctl_end : msg_end) - (char*)CMSG_DATA(cmh);</div><div class='del'>-            ctl = ancdata_new(family, cmh-&gt;cmsg_level, cmh-&gt;cmsg_type, rb_tainted_str_new((char*)CMSG_DATA(cmh), clen));</div><div class='add'>+            clen = (ctl_end &lt;= msg_end ? ctl_end : msg_end) - (char*)CMSG_DATA(cmh);</div><div class='add'>+            ctl = ancdata_new(family, cmh-&gt;cmsg_level, cmh-&gt;cmsg_type, rb_str_new((char*)CMSG_DATA(cmh), clen));</div><div class='ctx'>             if (request_scm_rights)</div><div class='ctx'>                 make_io_for_unix_rights(ctl, cmh, msg_end);</div><div class='ctx'>             else</div><div class='hunk'>@@ -1675,7 +1679,7 @@ bsock_recvmsg_internal(VALUE sock,</div><div class='ctx'> #if defined(HAVE_RECVMSG)</div><div class='ctx'> VALUE</div><div class='ctx'> rsock_bsock_recvmsg(VALUE sock, VALUE dlen, VALUE flags, VALUE clen,</div><div class='del'>-		    VALUE scm_rights)</div><div class='add'>+                    VALUE scm_rights)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ex = Qtrue;</div><div class='ctx'>     return bsock_recvmsg_internal(sock, dlen, flags, clen, scm_rights, ex, 0);</div><div class='hunk'>@@ -1685,7 +1689,7 @@ rsock_bsock_recvmsg(VALUE sock, VALUE dlen, VALUE flags, VALUE clen,</div><div class='ctx'> #if defined(HAVE_RECVMSG)</div><div class='ctx'> VALUE</div><div class='ctx'> rsock_bsock_recvmsg_nonblock(VALUE sock, VALUE dlen, VALUE flags, VALUE clen,</div><div class='del'>-			     VALUE scm_rights, VALUE ex)</div><div class='add'>+                             VALUE scm_rights, VALUE ex)</div><div class='ctx'> {</div><div class='ctx'>     return bsock_recvmsg_internal(sock, dlen, flags, clen, scm_rights, ex, 1);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/socket/basicsocket.c b/ext/socket/basicsocket.c<br/>index 1371672850..54c369f6fc 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/basicsocket.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/basicsocket.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/basicsocket.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/basicsocket.c</a></div><div class='hunk'>@@ -10,6 +10,28 @@</div><div class='ctx'> </div><div class='ctx'> #include "rubysocket.h"</div><div class='ctx'> </div><div class='add'>+#ifdef _WIN32</div><div class='add'>+#define is_socket(fd) rb_w32_is_socket(fd)</div><div class='add'>+#else</div><div class='add'>+static int</div><div class='add'>+is_socket(int fd)</div><div class='add'>+{</div><div class='add'>+    struct stat sbuf;</div><div class='add'>+</div><div class='add'>+    if (fstat(fd, &amp;sbuf) &lt; 0)</div><div class='add'>+        rb_sys_fail("fstat(2)");</div><div class='add'>+    return S_ISSOCK(sbuf.st_mode);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rsock_validate_descriptor(int descriptor)</div><div class='add'>+{</div><div class='add'>+    if (!is_socket(descriptor) || rb_reserved_fd_p(descriptor)) {</div><div class='add'>+        rb_syserr_fail(EBADF, "not a socket file descriptor");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   BasicSocket.for_fd(fd) =&gt; basicsocket</div><div class='hunk'>@@ -22,10 +44,14 @@</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-bsock_s_for_fd(VALUE klass, VALUE fd)</div><div class='add'>+bsock_s_for_fd(VALUE klass, VALUE _descriptor)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='del'>-    VALUE sock = rsock_init_sock(rb_obj_alloc(klass), NUM2INT(fd));</div><div class='add'>+</div><div class='add'>+    int descriptor = RB_NUM2INT(_descriptor);</div><div class='add'>+    rsock_validate_descriptor(descriptor);</div><div class='add'>+</div><div class='add'>+    VALUE sock = rsock_init_sock(rb_obj_alloc(klass), descriptor);</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'> </div><div class='hunk'>@@ -68,16 +94,16 @@ bsock_shutdown(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "01", &amp;howto);</div><div class='ctx'>     if (howto == Qnil)</div><div class='del'>-	how = SHUT_RDWR;</div><div class='add'>+        how = SHUT_RDWR;</div><div class='ctx'>     else {</div><div class='del'>-	how = rsock_shutdown_how_arg(howto);</div><div class='add'>+        how = rsock_shutdown_how_arg(howto);</div><div class='ctx'>         if (how != SHUT_WR &amp;&amp; how != SHUT_RD &amp;&amp; how != SHUT_RDWR) {</div><div class='del'>-	    rb_raise(rb_eArgError, "`how' should be either :SHUT_RD, :SHUT_WR, :SHUT_RDWR");</div><div class='del'>-	}</div><div class='add'>+            rb_raise(rb_eArgError, "`how' should be either :SHUT_RD, :SHUT_WR, :SHUT_RDWR");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     if (shutdown(fptr-&gt;fd, how) == -1)</div><div class='del'>-	rb_sys_fail("shutdown(2)");</div><div class='add'>+        rb_sys_fail("shutdown(2)");</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='hunk'>@@ -100,7 +126,7 @@ bsock_close_read(VALUE sock)</div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     shutdown(fptr-&gt;fd, 0);</div><div class='ctx'>     if (!(fptr-&gt;mode &amp; FMODE_WRITABLE)) {</div><div class='del'>-	return rb_io_close(sock);</div><div class='add'>+        return rb_io_close(sock);</div><div class='ctx'>     }</div><div class='ctx'>     fptr-&gt;mode &amp;= ~FMODE_READABLE;</div><div class='ctx'> </div><div class='hunk'>@@ -129,7 +155,7 @@ bsock_close_write(VALUE sock)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     if (!(fptr-&gt;mode &amp; FMODE_READABLE)) {</div><div class='del'>-	return rb_io_close(sock);</div><div class='add'>+        return rb_io_close(sock);</div><div class='ctx'>     }</div><div class='ctx'>     shutdown(fptr-&gt;fd, 1);</div><div class='ctx'>     fptr-&gt;mode &amp;= ~FMODE_WRITABLE;</div><div class='hunk'>@@ -220,21 +246,21 @@ bsock_setsockopt(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'> </div><div class='ctx'>     switch (TYPE(val)) {</div><div class='ctx'>       case T_FIXNUM:</div><div class='del'>-	i = FIX2INT(val);</div><div class='del'>-	goto numval;</div><div class='add'>+        i = FIX2INT(val);</div><div class='add'>+        goto numval;</div><div class='ctx'>       case T_FALSE:</div><div class='del'>-	i = 0;</div><div class='del'>-	goto numval;</div><div class='add'>+        i = 0;</div><div class='add'>+        goto numval;</div><div class='ctx'>       case T_TRUE:</div><div class='del'>-	i = 1;</div><div class='add'>+        i = 1;</div><div class='ctx'>       numval:</div><div class='del'>-	v = (char*)&amp;i; vlen = (int)sizeof(i);</div><div class='del'>-	break;</div><div class='add'>+        v = (char*)&amp;i; vlen = (int)sizeof(i);</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	StringValue(val);</div><div class='del'>-	v = RSTRING_PTR(val);</div><div class='del'>-	vlen = RSTRING_SOCKLEN(val);</div><div class='del'>-	break;</div><div class='add'>+        StringValue(val);</div><div class='add'>+        v = RSTRING_PTR(val);</div><div class='add'>+        vlen = RSTRING_SOCKLEN(val);</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='hunk'>@@ -280,7 +306,7 @@ bsock_setsockopt(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'>  *   ipttl = sock.getsockopt(:IP, :TTL).int</div><div class='ctx'>  *</div><div class='ctx'>  *   optval = sock.getsockopt(Socket::IPPROTO_IP, Socket::IP_TTL)</div><div class='del'>- *   ipttl = optval.unpack("i")[0]</div><div class='add'>+ *   ipttl = optval.unpack1("i")</div><div class='ctx'>  *</div><div class='ctx'>  * Option values may be structs. Decoding them can be complex as it involves</div><div class='ctx'>  * examining your system headers to determine the correct definition. An</div><div class='hunk'>@@ -331,7 +357,7 @@ bsock_getsockopt(VALUE sock, VALUE lev, VALUE optname)</div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='ctx'> </div><div class='ctx'>     if (getsockopt(fptr-&gt;fd, level, option, buf, &amp;len) &lt; 0)</div><div class='del'>-	rsock_sys_fail_path("getsockopt(2)", fptr-&gt;pathv);</div><div class='add'>+        rsock_sys_fail_path("getsockopt(2)", fptr-&gt;pathv);</div><div class='ctx'> </div><div class='ctx'>     return rsock_sockopt_new(family, level, option, rb_str_new(buf, len));</div><div class='ctx'> }</div><div class='hunk'>@@ -359,7 +385,7 @@ bsock_getsockname(VALUE sock)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     if (getsockname(fptr-&gt;fd, &amp;buf.addr, &amp;len) &lt; 0)</div><div class='del'>-	rb_sys_fail("getsockname(2)");</div><div class='add'>+        rb_sys_fail("getsockname(2)");</div><div class='ctx'>     if (len0 &lt; len) len = len0;</div><div class='ctx'>     return rb_str_new((char*)&amp;buf, len);</div><div class='ctx'> }</div><div class='hunk'>@@ -390,7 +416,7 @@ bsock_getpeername(VALUE sock)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     if (getpeername(fptr-&gt;fd, &amp;buf.addr, &amp;len) &lt; 0)</div><div class='del'>-	rb_sys_fail("getpeername(2)");</div><div class='add'>+        rb_sys_fail("getpeername(2)");</div><div class='ctx'>     if (len0 &lt; len) len = len0;</div><div class='ctx'>     return rb_str_new((char*)&amp;buf, len);</div><div class='ctx'> }</div><div class='hunk'>@@ -427,7 +453,7 @@ bsock_getpeereid(VALUE self)</div><div class='ctx'>     gid_t egid;</div><div class='ctx'>     GetOpenFile(self, fptr);</div><div class='ctx'>     if (getpeereid(fptr-&gt;fd, &amp;euid, &amp;egid) == -1)</div><div class='del'>-	rb_sys_fail("getpeereid(3)");</div><div class='add'>+        rb_sys_fail("getpeereid(3)");</div><div class='ctx'>     return rb_assoc_new(UIDT2NUM(euid), GIDT2NUM(egid));</div><div class='ctx'> #elif defined(SO_PEERCRED) /* GNU/Linux */</div><div class='ctx'>     rb_io_t *fptr;</div><div class='hunk'>@@ -435,7 +461,7 @@ bsock_getpeereid(VALUE self)</div><div class='ctx'>     socklen_t len = sizeof(cred);</div><div class='ctx'>     GetOpenFile(self, fptr);</div><div class='ctx'>     if (getsockopt(fptr-&gt;fd, SOL_SOCKET, SO_PEERCRED, &amp;cred, &amp;len) == -1)</div><div class='del'>-	rb_sys_fail("getsockopt(SO_PEERCRED)");</div><div class='add'>+        rb_sys_fail("getsockopt(SO_PEERCRED)");</div><div class='ctx'>     return rb_assoc_new(UIDT2NUM(cred.uid), GIDT2NUM(cred.gid));</div><div class='ctx'> #elif defined(HAVE_GETPEERUCRED) /* Solaris */</div><div class='ctx'>     rb_io_t *fptr;</div><div class='hunk'>@@ -443,7 +469,7 @@ bsock_getpeereid(VALUE self)</div><div class='ctx'>     VALUE ret;</div><div class='ctx'>     GetOpenFile(self, fptr);</div><div class='ctx'>     if (getpeerucred(fptr-&gt;fd, &amp;uc) == -1)</div><div class='del'>-	rb_sys_fail("getpeerucred(3C)");</div><div class='add'>+        rb_sys_fail("getpeerucred(3C)");</div><div class='ctx'>     ret = rb_assoc_new(UIDT2NUM(ucred_geteuid(uc)), GIDT2NUM(ucred_getegid(uc)));</div><div class='ctx'>     ucred_free(uc);</div><div class='ctx'>     return ret;</div><div class='hunk'>@@ -480,7 +506,7 @@ bsock_local_address(VALUE sock)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     if (getsockname(fptr-&gt;fd, &amp;buf.addr, &amp;len) &lt; 0)</div><div class='del'>-	rb_sys_fail("getsockname(2)");</div><div class='add'>+        rb_sys_fail("getsockname(2)");</div><div class='ctx'>     if (len0 &lt; len) len = len0;</div><div class='ctx'>     return rsock_fd_socket_addrinfo(fptr-&gt;fd, &amp;buf.addr, len);</div><div class='ctx'> }</div><div class='hunk'>@@ -514,7 +540,7 @@ bsock_remote_address(VALUE sock)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     if (getpeername(fptr-&gt;fd, &amp;buf.addr, &amp;len) &lt; 0)</div><div class='del'>-	rb_sys_fail("getpeername(2)");</div><div class='add'>+        rb_sys_fail("getpeername(2)");</div><div class='ctx'>     if (len0 &lt; len) len = len0;</div><div class='ctx'>     return rsock_fd_socket_addrinfo(fptr-&gt;fd, &amp;buf.addr, len);</div><div class='ctx'> }</div><div class='hunk'>@@ -537,12 +563,11 @@ bsock_remote_address(VALUE sock)</div><div class='ctx'>  *   }</div><div class='ctx'>  */</div><div class='ctx'> VALUE</div><div class='del'>-rsock_bsock_send(int argc, VALUE *argv, VALUE sock)</div><div class='add'>+rsock_bsock_send(int argc, VALUE *argv, VALUE socket)</div><div class='ctx'> {</div><div class='ctx'>     struct rsock_send_arg arg;</div><div class='ctx'>     VALUE flags, to;</div><div class='ctx'>     rb_io_t *fptr;</div><div class='del'>-    ssize_t n;</div><div class='ctx'>     rb_blocking_function_t *func;</div><div class='ctx'>     const char *funcname;</div><div class='ctx'> </div><div class='hunk'>@@ -550,28 +575,38 @@ rsock_bsock_send(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'> </div><div class='ctx'>     StringValue(arg.mesg);</div><div class='ctx'>     if (!NIL_P(to)) {</div><div class='del'>-	SockAddrStringValue(to);</div><div class='del'>-	to = rb_str_new4(to);</div><div class='del'>-	arg.to = (struct sockaddr *)RSTRING_PTR(to);</div><div class='del'>-	arg.tolen = RSTRING_SOCKLEN(to);</div><div class='del'>-	func = rsock_sendto_blocking;</div><div class='del'>-	funcname = "sendto(2)";</div><div class='add'>+        SockAddrStringValue(to);</div><div class='add'>+        to = rb_str_new4(to);</div><div class='add'>+        arg.to = (struct sockaddr *)RSTRING_PTR(to);</div><div class='add'>+        arg.tolen = RSTRING_SOCKLEN(to);</div><div class='add'>+        func = rsock_sendto_blocking;</div><div class='add'>+        funcname = "sendto(2)";</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	func = rsock_send_blocking;</div><div class='del'>-	funcname = "send(2)";</div><div class='add'>+        func = rsock_send_blocking;</div><div class='add'>+        funcname = "send(2)";</div><div class='ctx'>     }</div><div class='del'>-    GetOpenFile(sock, fptr);</div><div class='add'>+</div><div class='add'>+    RB_IO_POINTER(socket, fptr);</div><div class='add'>+</div><div class='ctx'>     arg.fd = fptr-&gt;fd;</div><div class='ctx'>     arg.flags = NUM2INT(flags);</div><div class='del'>-    while (rsock_maybe_fd_writable(arg.fd),</div><div class='del'>-	   (n = (ssize_t)BLOCKING_REGION_FD(func, &amp;arg)) &lt; 0) {</div><div class='del'>-	if (rb_io_wait_writable(arg.fd)) {</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	rb_sys_fail(funcname);</div><div class='add'>+</div><div class='add'>+    while (true) {</div><div class='add'>+#ifdef RSOCK_WAIT_BEFORE_BLOCKING</div><div class='add'>+        rb_io_wait(socket, RB_INT2NUM(RUBY_IO_WRITABLE), Qnil);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        ssize_t n = (ssize_t)BLOCKING_REGION_FD(func, &amp;arg);</div><div class='add'>+</div><div class='add'>+        if (n &gt;= 0) return SSIZET2NUM(n);</div><div class='add'>+</div><div class='add'>+        if (rb_io_maybe_wait_writable(errno, socket, RUBY_IO_TIMEOUT_DEFAULT)) {</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        rb_sys_fail(funcname);</div><div class='ctx'>     }</div><div class='del'>-    return SSIZET2NUM(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -621,10 +656,10 @@ bsock_do_not_reverse_lookup_set(VALUE sock, VALUE state)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     if (RTEST(state)) {</div><div class='del'>-	fptr-&gt;mode |= FMODE_NOREVLOOKUP;</div><div class='add'>+        fptr-&gt;mode |= FMODE_NOREVLOOKUP;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	fptr-&gt;mode &amp;= ~FMODE_NOREVLOOKUP;</div><div class='add'>+        fptr-&gt;mode &amp;= ~FMODE_NOREVLOOKUP;</div><div class='ctx'>     }</div><div class='ctx'>     return sock;</div><div class='ctx'> }</div><div class='hunk'>@@ -672,7 +707,7 @@ bsock_recv_nonblock(VALUE sock, VALUE len, VALUE flg, VALUE str, VALUE ex)</div><div class='ctx'>  *   BasicSocket.do_not_reverse_lookup  #=&gt; false</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-bsock_do_not_rev_lookup(void)</div><div class='add'>+bsock_do_not_rev_lookup(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     return rsock_do_not_reverse_lookup?Qtrue:Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -712,9 +747,9 @@ rsock_init_basicsocket(void)</div><div class='ctx'>     rb_undef_method(rb_cBasicSocket, "initialize");</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(rb_cBasicSocket, "do_not_reverse_lookup",</div><div class='del'>-			       bsock_do_not_rev_lookup, 0);</div><div class='add'>+                               bsock_do_not_rev_lookup, 0);</div><div class='ctx'>     rb_define_singleton_method(rb_cBasicSocket, "do_not_reverse_lookup=",</div><div class='del'>-			       bsock_do_not_rev_lookup_set, 1);</div><div class='add'>+                               bsock_do_not_rev_lookup_set, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cBasicSocket, "for_fd", bsock_s_for_fd, 1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cBasicSocket, "close_read", bsock_close_read, 0);</div><div class='hunk'>@@ -735,23 +770,23 @@ rsock_init_basicsocket(void)</div><div class='ctx'> </div><div class='ctx'>     /* for ext/socket/lib/socket.rb use only: */</div><div class='ctx'>     rb_define_private_method(rb_cBasicSocket,</div><div class='del'>-			     "__recv_nonblock", bsock_recv_nonblock, 4);</div><div class='add'>+                             "__recv_nonblock", bsock_recv_nonblock, 4);</div><div class='ctx'> </div><div class='ctx'> #if MSG_DONTWAIT_RELIABLE</div><div class='ctx'>     rb_define_private_method(rb_cBasicSocket,</div><div class='del'>-			     "__read_nonblock", rsock_read_nonblock, 3);</div><div class='add'>+                             "__read_nonblock", rsock_read_nonblock, 3);</div><div class='ctx'>     rb_define_private_method(rb_cBasicSocket,</div><div class='del'>-			     "__write_nonblock", rsock_write_nonblock, 2);</div><div class='add'>+                             "__write_nonblock", rsock_write_nonblock, 2);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     /* in ancdata.c */</div><div class='ctx'>     rb_define_private_method(rb_cBasicSocket, "__sendmsg",</div><div class='del'>-			     rsock_bsock_sendmsg, 4);</div><div class='add'>+                             rsock_bsock_sendmsg, 4);</div><div class='ctx'>     rb_define_private_method(rb_cBasicSocket, "__sendmsg_nonblock",</div><div class='del'>-			     rsock_bsock_sendmsg_nonblock, 5);</div><div class='add'>+                             rsock_bsock_sendmsg_nonblock, 5);</div><div class='ctx'>     rb_define_private_method(rb_cBasicSocket, "__recvmsg",</div><div class='del'>-			     rsock_bsock_recvmsg, 4);</div><div class='add'>+                             rsock_bsock_recvmsg, 4);</div><div class='ctx'>     rb_define_private_method(rb_cBasicSocket, "__recvmsg_nonblock",</div><div class='del'>-			    rsock_bsock_recvmsg_nonblock, 5);</div><div class='add'>+                            rsock_bsock_recvmsg_nonblock, 5);</div><div class='ctx'> </div><div class='ctx'> }</div><div class='head'>diff --git a/ext/socket/constants.c b/ext/socket/constants.c<br/>index 6fc862777e..1213f2ae17 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/constants.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/constants.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/constants.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/constants.c</a></div><div class='hunk'>@@ -26,15 +26,14 @@ constant_arg(VALUE arg, int (*str_to_int)(const char*, long, int*), const char *</div><div class='ctx'>         goto str;</div><div class='ctx'>     }</div><div class='ctx'>     else if (!NIL_P(tmp = rb_check_string_type(arg))) {</div><div class='del'>-	arg = tmp;</div><div class='add'>+        arg = tmp;</div><div class='ctx'>       str:</div><div class='del'>-	rb_check_safe_obj(arg);</div><div class='ctx'>         ptr = RSTRING_PTR(arg);</div><div class='ctx'>         if (str_to_int(ptr, RSTRING_LEN(arg), &amp;ret) == -1)</div><div class='del'>-	    rb_raise(rb_eSocket, "%s: %s", errmsg, ptr);</div><div class='add'>+            rb_raise(rb_eSocket, "%s: %s", errmsg, ptr);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ret = NUM2INT(arg);</div><div class='add'>+        ret = NUM2INT(arg);</div><div class='ctx'>     }</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/socket/depend b/ext/socket/depend<br/>index 41b00406a4..28c5540cd6 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/depend</a></div><div class='hunk'>@@ -12,10 +12,170 @@ constdefs.c: constdefs.h</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> ancdata.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ancdata.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ancdata.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ancdata.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ancdata.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> ancdata.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ancdata.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ancdata.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ancdata.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ancdata.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -25,18 +185,189 @@ ancdata.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ancdata.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ancdata.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> ancdata.o: $(hdrdir)/ruby/util.h</div><div class='del'>-ancdata.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ancdata.o: $(top_srcdir)/internal.h</div><div class='add'>+ancdata.o: $(top_srcdir)/internal/array.h</div><div class='add'>+ancdata.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+ancdata.o: $(top_srcdir)/internal/error.h</div><div class='add'>+ancdata.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+ancdata.o: $(top_srcdir)/internal/io.h</div><div class='add'>+ancdata.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+ancdata.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+ancdata.o: $(top_srcdir)/internal/string.h</div><div class='add'>+ancdata.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+ancdata.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+ancdata.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+ancdata.o: $(top_srcdir)/shape.h</div><div class='ctx'> ancdata.o: ancdata.c</div><div class='ctx'> ancdata.o: constdefs.h</div><div class='ctx'> ancdata.o: rubysocket.h</div><div class='ctx'> ancdata.o: sockport.h</div><div class='ctx'> basicsocket.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> basicsocket.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> basicsocket.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> basicsocket.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> basicsocket.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> basicsocket.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+basicsocket.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> basicsocket.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> basicsocket.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> basicsocket.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -46,18 +377,189 @@ basicsocket.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> basicsocket.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> basicsocket.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> basicsocket.o: $(hdrdir)/ruby/util.h</div><div class='del'>-basicsocket.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> basicsocket.o: $(top_srcdir)/internal.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/internal/array.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/internal/error.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/internal/io.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/internal/string.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+basicsocket.o: $(top_srcdir)/shape.h</div><div class='ctx'> basicsocket.o: basicsocket.c</div><div class='ctx'> basicsocket.o: constdefs.h</div><div class='ctx'> basicsocket.o: rubysocket.h</div><div class='ctx'> basicsocket.o: sockport.h</div><div class='ctx'> constants.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> constants.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> constants.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> constants.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> constants.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> constants.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+constants.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> constants.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> constants.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> constants.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -67,8 +569,19 @@ constants.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> constants.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> constants.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> constants.o: $(hdrdir)/ruby/util.h</div><div class='del'>-constants.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> constants.o: $(top_srcdir)/internal.h</div><div class='add'>+constants.o: $(top_srcdir)/internal/array.h</div><div class='add'>+constants.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+constants.o: $(top_srcdir)/internal/error.h</div><div class='add'>+constants.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+constants.o: $(top_srcdir)/internal/io.h</div><div class='add'>+constants.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+constants.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+constants.o: $(top_srcdir)/internal/string.h</div><div class='add'>+constants.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+constants.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+constants.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+constants.o: $(top_srcdir)/shape.h</div><div class='ctx'> constants.o: constants.c</div><div class='ctx'> constants.o: constdefs.c</div><div class='ctx'> constants.o: constdefs.h</div><div class='hunk'>@@ -76,10 +589,170 @@ constants.o: rubysocket.h</div><div class='ctx'> constants.o: sockport.h</div><div class='ctx'> ifaddr.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ifaddr.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ifaddr.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ifaddr.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ifaddr.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> ifaddr.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ifaddr.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ifaddr.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ifaddr.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ifaddr.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -89,18 +762,189 @@ ifaddr.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ifaddr.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ifaddr.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> ifaddr.o: $(hdrdir)/ruby/util.h</div><div class='del'>-ifaddr.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ifaddr.o: $(top_srcdir)/internal.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/internal/array.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/internal/error.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/internal/io.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/internal/string.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+ifaddr.o: $(top_srcdir)/shape.h</div><div class='ctx'> ifaddr.o: constdefs.h</div><div class='ctx'> ifaddr.o: ifaddr.c</div><div class='ctx'> ifaddr.o: rubysocket.h</div><div class='ctx'> ifaddr.o: sockport.h</div><div class='ctx'> init.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> init.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+init.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+init.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -110,18 +954,189 @@ init.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> init.o: $(hdrdir)/ruby/util.h</div><div class='del'>-init.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> init.o: $(top_srcdir)/internal.h</div><div class='add'>+init.o: $(top_srcdir)/internal/array.h</div><div class='add'>+init.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+init.o: $(top_srcdir)/internal/error.h</div><div class='add'>+init.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+init.o: $(top_srcdir)/internal/io.h</div><div class='add'>+init.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+init.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+init.o: $(top_srcdir)/internal/string.h</div><div class='add'>+init.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+init.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+init.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+init.o: $(top_srcdir)/shape.h</div><div class='ctx'> init.o: constdefs.h</div><div class='ctx'> init.o: init.c</div><div class='ctx'> init.o: rubysocket.h</div><div class='ctx'> init.o: sockport.h</div><div class='ctx'> ipsocket.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> ipsocket.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> ipsocket.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> ipsocket.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> ipsocket.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> ipsocket.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+ipsocket.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> ipsocket.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> ipsocket.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> ipsocket.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -131,18 +1146,189 @@ ipsocket.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> ipsocket.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> ipsocket.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> ipsocket.o: $(hdrdir)/ruby/util.h</div><div class='del'>-ipsocket.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> ipsocket.o: $(top_srcdir)/internal.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/internal/array.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/internal/error.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/internal/io.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/internal/string.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+ipsocket.o: $(top_srcdir)/shape.h</div><div class='ctx'> ipsocket.o: constdefs.h</div><div class='ctx'> ipsocket.o: ipsocket.c</div><div class='ctx'> ipsocket.o: rubysocket.h</div><div class='ctx'> ipsocket.o: sockport.h</div><div class='ctx'> option.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> option.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+option.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> option.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+option.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+option.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+option.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+option.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+option.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+option.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+option.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+option.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+option.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> option.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> option.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+option.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> option.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+option.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> option.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> option.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> option.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -152,18 +1338,189 @@ option.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> option.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> option.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> option.o: $(hdrdir)/ruby/util.h</div><div class='del'>-option.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> option.o: $(top_srcdir)/internal.h</div><div class='add'>+option.o: $(top_srcdir)/internal/array.h</div><div class='add'>+option.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+option.o: $(top_srcdir)/internal/error.h</div><div class='add'>+option.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+option.o: $(top_srcdir)/internal/io.h</div><div class='add'>+option.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+option.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+option.o: $(top_srcdir)/internal/string.h</div><div class='add'>+option.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+option.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+option.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+option.o: $(top_srcdir)/shape.h</div><div class='ctx'> option.o: constdefs.h</div><div class='ctx'> option.o: option.c</div><div class='ctx'> option.o: rubysocket.h</div><div class='ctx'> option.o: sockport.h</div><div class='ctx'> raddrinfo.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> raddrinfo.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> raddrinfo.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> raddrinfo.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> raddrinfo.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> raddrinfo.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+raddrinfo.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> raddrinfo.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> raddrinfo.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> raddrinfo.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -173,18 +1530,189 @@ raddrinfo.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> raddrinfo.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> raddrinfo.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> raddrinfo.o: $(hdrdir)/ruby/util.h</div><div class='del'>-raddrinfo.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> raddrinfo.o: $(top_srcdir)/internal.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/internal/array.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/internal/error.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/internal/io.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/internal/string.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+raddrinfo.o: $(top_srcdir)/shape.h</div><div class='ctx'> raddrinfo.o: constdefs.h</div><div class='ctx'> raddrinfo.o: raddrinfo.c</div><div class='ctx'> raddrinfo.o: rubysocket.h</div><div class='ctx'> raddrinfo.o: sockport.h</div><div class='ctx'> socket.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> socket.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> socket.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> socket.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> socket.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> socket.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+socket.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> socket.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> socket.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> socket.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -194,18 +1722,189 @@ socket.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> socket.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> socket.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> socket.o: $(hdrdir)/ruby/util.h</div><div class='del'>-socket.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> socket.o: $(top_srcdir)/internal.h</div><div class='add'>+socket.o: $(top_srcdir)/internal/array.h</div><div class='add'>+socket.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+socket.o: $(top_srcdir)/internal/error.h</div><div class='add'>+socket.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+socket.o: $(top_srcdir)/internal/io.h</div><div class='add'>+socket.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+socket.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+socket.o: $(top_srcdir)/internal/string.h</div><div class='add'>+socket.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+socket.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+socket.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+socket.o: $(top_srcdir)/shape.h</div><div class='ctx'> socket.o: constdefs.h</div><div class='ctx'> socket.o: rubysocket.h</div><div class='ctx'> socket.o: socket.c</div><div class='ctx'> socket.o: sockport.h</div><div class='ctx'> sockssocket.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> sockssocket.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> sockssocket.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> sockssocket.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> sockssocket.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> sockssocket.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+sockssocket.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> sockssocket.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> sockssocket.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> sockssocket.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -215,18 +1914,189 @@ sockssocket.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> sockssocket.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> sockssocket.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> sockssocket.o: $(hdrdir)/ruby/util.h</div><div class='del'>-sockssocket.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> sockssocket.o: $(top_srcdir)/internal.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/internal/array.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/internal/error.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/internal/io.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/internal/string.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+sockssocket.o: $(top_srcdir)/shape.h</div><div class='ctx'> sockssocket.o: constdefs.h</div><div class='ctx'> sockssocket.o: rubysocket.h</div><div class='ctx'> sockssocket.o: sockport.h</div><div class='ctx'> sockssocket.o: sockssocket.c</div><div class='ctx'> tcpserver.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> tcpserver.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> tcpserver.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> tcpserver.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> tcpserver.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> tcpserver.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+tcpserver.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> tcpserver.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> tcpserver.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> tcpserver.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -236,18 +2106,189 @@ tcpserver.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> tcpserver.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> tcpserver.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> tcpserver.o: $(hdrdir)/ruby/util.h</div><div class='del'>-tcpserver.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> tcpserver.o: $(top_srcdir)/internal.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/internal/array.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/internal/error.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/internal/io.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/internal/string.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+tcpserver.o: $(top_srcdir)/shape.h</div><div class='ctx'> tcpserver.o: constdefs.h</div><div class='ctx'> tcpserver.o: rubysocket.h</div><div class='ctx'> tcpserver.o: sockport.h</div><div class='ctx'> tcpserver.o: tcpserver.c</div><div class='ctx'> tcpsocket.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> tcpsocket.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> tcpsocket.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> tcpsocket.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> tcpsocket.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> tcpsocket.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+tcpsocket.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> tcpsocket.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> tcpsocket.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> tcpsocket.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -257,18 +2298,189 @@ tcpsocket.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> tcpsocket.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> tcpsocket.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> tcpsocket.o: $(hdrdir)/ruby/util.h</div><div class='del'>-tcpsocket.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> tcpsocket.o: $(top_srcdir)/internal.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/internal/array.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/internal/error.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/internal/io.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/internal/string.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+tcpsocket.o: $(top_srcdir)/shape.h</div><div class='ctx'> tcpsocket.o: constdefs.h</div><div class='ctx'> tcpsocket.o: rubysocket.h</div><div class='ctx'> tcpsocket.o: sockport.h</div><div class='ctx'> tcpsocket.o: tcpsocket.c</div><div class='ctx'> udpsocket.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> udpsocket.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> udpsocket.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> udpsocket.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> udpsocket.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> udpsocket.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+udpsocket.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> udpsocket.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> udpsocket.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> udpsocket.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -278,18 +2490,189 @@ udpsocket.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> udpsocket.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> udpsocket.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> udpsocket.o: $(hdrdir)/ruby/util.h</div><div class='del'>-udpsocket.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> udpsocket.o: $(top_srcdir)/internal.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/internal/array.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/internal/error.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/internal/io.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/internal/string.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+udpsocket.o: $(top_srcdir)/shape.h</div><div class='ctx'> udpsocket.o: constdefs.h</div><div class='ctx'> udpsocket.o: rubysocket.h</div><div class='ctx'> udpsocket.o: sockport.h</div><div class='ctx'> udpsocket.o: udpsocket.c</div><div class='ctx'> unixserver.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> unixserver.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> unixserver.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> unixserver.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> unixserver.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> unixserver.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+unixserver.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> unixserver.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> unixserver.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> unixserver.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -299,18 +2682,189 @@ unixserver.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> unixserver.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> unixserver.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> unixserver.o: $(hdrdir)/ruby/util.h</div><div class='del'>-unixserver.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> unixserver.o: $(top_srcdir)/internal.h</div><div class='add'>+unixserver.o: $(top_srcdir)/internal/array.h</div><div class='add'>+unixserver.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+unixserver.o: $(top_srcdir)/internal/error.h</div><div class='add'>+unixserver.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+unixserver.o: $(top_srcdir)/internal/io.h</div><div class='add'>+unixserver.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+unixserver.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+unixserver.o: $(top_srcdir)/internal/string.h</div><div class='add'>+unixserver.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+unixserver.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+unixserver.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+unixserver.o: $(top_srcdir)/shape.h</div><div class='ctx'> unixserver.o: constdefs.h</div><div class='ctx'> unixserver.o: rubysocket.h</div><div class='ctx'> unixserver.o: sockport.h</div><div class='ctx'> unixserver.o: unixserver.c</div><div class='ctx'> unixsocket.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> unixsocket.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> unixsocket.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> unixsocket.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> unixsocket.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/fiber/scheduler.h</div><div class='ctx'> unixsocket.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+unixsocket.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> unixsocket.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> unixsocket.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> unixsocket.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -320,8 +2874,19 @@ unixsocket.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> unixsocket.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> unixsocket.o: $(hdrdir)/ruby/thread.h</div><div class='ctx'> unixsocket.o: $(hdrdir)/ruby/util.h</div><div class='del'>-unixsocket.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> unixsocket.o: $(top_srcdir)/internal.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/internal/array.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/internal/compilers.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/internal/error.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/internal/gc.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/internal/io.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/internal/serial.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/internal/static_assert.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/internal/string.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/internal/thread.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/internal/vm.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/internal/warnings.h</div><div class='add'>+unixsocket.o: $(top_srcdir)/shape.h</div><div class='ctx'> unixsocket.o: constdefs.h</div><div class='ctx'> unixsocket.o: rubysocket.h</div><div class='ctx'> unixsocket.o: sockport.h</div><div class='head'>diff --git a/ext/socket/extconf.rb b/ext/socket/extconf.rb<br/>index 0cc8a88d5c..37ff216560 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/extconf.rb</a></div><div class='hunk'>@@ -316,6 +316,7 @@ end</div><div class='ctx'>   netpacket/packet.h</div><div class='ctx'>   net/ethernet.h</div><div class='ctx'>   sys/un.h</div><div class='add'>+  afunix.h</div><div class='ctx'>   ifaddrs.h</div><div class='ctx'>   sys/ioctl.h</div><div class='ctx'>   sys/sockio.h</div><div class='hunk'>@@ -484,6 +485,9 @@ EOF</div><div class='ctx'>   have_func("getpeerucred(0, (ucred_t **)NULL)", headers) # SunOS</div><div class='ctx'> </div><div class='ctx'>   have_func_decl = proc do |name, headers|</div><div class='add'>+    # check if there is a declaration of &lt;name&gt; by trying to declare</div><div class='add'>+    # both "int &lt;name&gt;(void)" and "void &lt;name&gt;(void)"</div><div class='add'>+    # (at least one attempt should fail if there is a declaration)</div><div class='ctx'>     if !checking_for("declaration of #{name}()") {!%w[int void].all? {|ret| try_compile(&lt;&lt;EOF)}}</div><div class='ctx'> #{cpp_include(headers)}</div><div class='ctx'> #{ret} #{name}(void);</div><div class='hunk'>@@ -492,10 +496,10 @@ EOF</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'>   if have_func('if_indextoname(0, "")', headers)</div><div class='del'>-    have_func_decl["if_indextoname"]</div><div class='add'>+    have_func_decl["if_indextoname", headers]</div><div class='ctx'>   end</div><div class='ctx'>   if have_func('if_nametoindex("")', headers)</div><div class='del'>-    have_func_decl["if_nametoindex"]</div><div class='add'>+    have_func_decl["if_nametoindex", headers]</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   have_func("hsterror", headers)</div><div class='hunk'>@@ -548,7 +552,7 @@ EOS</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   if !have_macro("IPPROTO_IPV6", headers) &amp;&amp; have_const("IPPROTO_IPV6", headers)</div><div class='del'>-    IO.read(File.join(File.dirname(__FILE__), "mkconstants.rb")).sub(/\A.*^__END__$/m, '').split(/\r?\n/).grep(/\AIPPROTO_\w*/){$&amp;}.each {|name|</div><div class='add'>+    File.read(File.join(File.dirname(__FILE__), "mkconstants.rb")).sub(/\A.*^__END__$/m, '').split(/\r?\n/).grep(/\AIPPROTO_\w*/){$&amp;}.each {|name|</div><div class='ctx'>       have_const(name, headers) unless $defs.include?("-DHAVE_CONST_#{name.upcase}")</div><div class='ctx'>     }</div><div class='ctx'>   end</div><div class='hunk'>@@ -646,18 +650,26 @@ EOS</div><div class='ctx'>   if enable_config("socks", ENV["SOCKS_SERVER"])</div><div class='ctx'>     if have_library("socks5", "SOCKSinit")</div><div class='ctx'>       $defs &lt;&lt; "-DSOCKS5" &lt;&lt; "-DSOCKS"</div><div class='del'>-    elsif have_library("socks", "Rconnect")</div><div class='add'>+    elsif have_library("socksd", "Rconnect") || have_library("socks", "Rconnect")</div><div class='ctx'>       $defs &lt;&lt; "-DSOCKS"</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   hdr = "netinet6/in6.h"</div><div class='del'>-  if /darwin/ =~ RUBY_PLATFORM and !try_compile(&lt;&lt;"SRC", nil, :werror=&gt;true)</div><div class='add'>+  /darwin/ =~ RUBY_PLATFORM and</div><div class='add'>+  checking_for("if apple's #{hdr} needs s6_addr patch") {!try_compile(&lt;&lt;"SRC", nil, :werror=&gt;true)} and</div><div class='ctx'> #include &lt;netinet/in.h&gt;</div><div class='ctx'> int t(struct in6_addr *addr) {return IN6_IS_ADDR_UNSPECIFIED(addr);}</div><div class='ctx'> SRC</div><div class='del'>-    print "fixing apple's netinet6/in6.h ..."; $stdout.flush</div><div class='del'>-    in6 = File.read("/usr/include/#{hdr}")</div><div class='add'>+  checking_for("fixing apple's #{hdr}", "%s") do</div><div class='add'>+    file = xpopen(%w"clang -include netinet/in.h -E -xc -", in: IO::NULL) do |f|</div><div class='add'>+      re = %r[^# *\d+ *"(.*/netinet/in\.h)"]</div><div class='add'>+      Logging.message "  grep(#{re})\n"</div><div class='add'>+      f.read[re, 1]</div><div class='add'>+    end</div><div class='add'>+    Logging.message "Substitute from #{file}\n"</div><div class='add'>+</div><div class='add'>+    in6 = File.read(file)</div><div class='ctx'>     if in6.gsub!(/\*\(const\s+__uint32_t\s+\*\)\(const\s+void\s+\*\)\(&amp;(\(\w+\))-&gt;s6_addr\[(\d+)\]\)/) do</div><div class='ctx'>         i, r = $2.to_i.divmod(4)</div><div class='ctx'>         if r.zero?</div><div class='hunk'>@@ -667,12 +679,12 @@ SRC</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>       FileUtils.mkdir_p(File.dirname(hdr))</div><div class='del'>-      open(hdr, "w") {|f| f.write(in6)}</div><div class='add'>+      File.write(hdr, in6)</div><div class='ctx'>       $distcleanfiles &lt;&lt; hdr</div><div class='ctx'>       $distcleandirs &lt;&lt; File.dirname(hdr)</div><div class='del'>-      puts "done"</div><div class='add'>+      "done"</div><div class='ctx'>     else</div><div class='del'>-      puts "not needed"</div><div class='add'>+      "not needed"</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'>   create_makefile("socket")</div><div class='head'>diff --git a/ext/socket/getaddrinfo.c b/ext/socket/getaddrinfo.c<br/>index ce6dc40478..95a2feb3be 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/getaddrinfo.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/getaddrinfo.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/getaddrinfo.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/getaddrinfo.c</a></div><div class='hunk'>@@ -98,42 +98,42 @@ static struct in6_addr faith_prefix = IN6ADDR_ANY_INIT;</div><div class='ctx'> </div><div class='ctx'> static const char in_addrany[] = { 0, 0, 0, 0 };</div><div class='ctx'> static const char in6_addrany[] = {</div><div class='del'>-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0</div><div class='add'>+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0</div><div class='ctx'> };</div><div class='ctx'> static const char in_loopback[] = { 127, 0, 0, 1 };</div><div class='ctx'> static const char in6_loopback[] = {</div><div class='del'>-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1</div><div class='add'>+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> struct sockinet {</div><div class='del'>-	u_char	si_len;</div><div class='del'>-	u_char	si_family;</div><div class='del'>-	u_short	si_port;</div><div class='add'>+        u_char	si_len;</div><div class='add'>+        u_char	si_family;</div><div class='add'>+        u_short	si_port;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static const struct afd {</div><div class='del'>-	int a_af;</div><div class='del'>-	int a_addrlen;</div><div class='del'>-	int a_socklen;</div><div class='del'>-	int a_off;</div><div class='del'>-	const char *a_addrany;</div><div class='del'>-	const char *a_loopback;</div><div class='add'>+        int a_af;</div><div class='add'>+        int a_addrlen;</div><div class='add'>+        int a_socklen;</div><div class='add'>+        int a_off;</div><div class='add'>+        const char *a_addrany;</div><div class='add'>+        const char *a_loopback;</div><div class='ctx'> } afdl [] = {</div><div class='ctx'> #ifdef INET6</div><div class='ctx'> #define N_INET6 0</div><div class='del'>-	{PF_INET6, sizeof(struct in6_addr),</div><div class='del'>-	 sizeof(struct sockaddr_in6),</div><div class='del'>-	 offsetof(struct sockaddr_in6, sin6_addr),</div><div class='del'>-	 in6_addrany, in6_loopback},</div><div class='add'>+        {PF_INET6, sizeof(struct in6_addr),</div><div class='add'>+         sizeof(struct sockaddr_in6),</div><div class='add'>+         offsetof(struct sockaddr_in6, sin6_addr),</div><div class='add'>+         in6_addrany, in6_loopback},</div><div class='ctx'> #define N_INET  1</div><div class='ctx'> #else</div><div class='ctx'> #define N_INET  0</div><div class='ctx'> #endif</div><div class='del'>-	{PF_INET, sizeof(struct in_addr),</div><div class='del'>-	 sizeof(struct sockaddr_in),</div><div class='del'>-	 offsetof(struct sockaddr_in, sin_addr),</div><div class='del'>-	 in_addrany, in_loopback},</div><div class='del'>-	{0, 0, 0, 0, NULL, NULL},</div><div class='add'>+        {PF_INET, sizeof(struct in_addr),</div><div class='add'>+         sizeof(struct sockaddr_in),</div><div class='add'>+         offsetof(struct sockaddr_in, sin_addr),</div><div class='add'>+         in_addrany, in_loopback},</div><div class='add'>+        {0, 0, 0, 0, NULL, NULL},</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> #ifdef INET6</div><div class='hunk'>@@ -143,58 +143,58 @@ static const struct afd {</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static int get_name __P((const char *, const struct afd *,</div><div class='del'>-			  struct addrinfo **, char *, struct addrinfo *,</div><div class='del'>-			  int));</div><div class='add'>+                          struct addrinfo **, char *, struct addrinfo *,</div><div class='add'>+                          int));</div><div class='ctx'> static int get_addr __P((const char *, int, struct addrinfo **,</div><div class='del'>-			struct addrinfo *, int));</div><div class='add'>+                        struct addrinfo *, int));</div><div class='ctx'> static int str_isnumber __P((const char *));</div><div class='ctx'> </div><div class='ctx'> #ifndef HAVE_GAI_STRERROR</div><div class='ctx'> static const char *const ai_errlist[] = {</div><div class='del'>-	"success.",</div><div class='del'>-	"address family for hostname not supported.",	/* EAI_ADDRFAMILY */</div><div class='del'>-	"temporary failure in name resolution.",	/* EAI_AGAIN      */</div><div class='del'>-	"invalid value for ai_flags.",		       	/* EAI_BADFLAGS   */</div><div class='del'>-	"non-recoverable failure in name resolution.", 	/* EAI_FAIL       */</div><div class='del'>-	"ai_family not supported.",			/* EAI_FAMILY     */</div><div class='del'>-	"memory allocation failure.", 			/* EAI_MEMORY     */</div><div class='del'>-	"no address associated with hostname.", 	/* EAI_NODATA     */</div><div class='del'>-	"hostname nor servname provided, or not known.",/* EAI_NONAME     */</div><div class='del'>-	"servname not supported for ai_socktype.",	/* EAI_SERVICE    */</div><div class='del'>-	"ai_socktype not supported.", 			/* EAI_SOCKTYPE   */</div><div class='del'>-	"system error returned in errno.", 		/* EAI_SYSTEM     */</div><div class='del'>-	"invalid value for hints.",			/* EAI_BADHINTS	  */</div><div class='del'>-	"resolved protocol is unknown.",		/* EAI_PROTOCOL   */</div><div class='del'>-	"unknown error.", 				/* EAI_MAX        */</div><div class='add'>+        "success.",</div><div class='add'>+        "address family for hostname not supported.",	/* EAI_ADDRFAMILY */</div><div class='add'>+        "temporary failure in name resolution.",	/* EAI_AGAIN      */</div><div class='add'>+        "invalid value for ai_flags.",		       	/* EAI_BADFLAGS   */</div><div class='add'>+        "non-recoverable failure in name resolution.", 	/* EAI_FAIL       */</div><div class='add'>+        "ai_family not supported.",			/* EAI_FAMILY     */</div><div class='add'>+        "memory allocation failure.", 			/* EAI_MEMORY     */</div><div class='add'>+        "no address associated with hostname.", 	/* EAI_NODATA     */</div><div class='add'>+        "hostname nor servname provided, or not known.",/* EAI_NONAME     */</div><div class='add'>+        "servname not supported for ai_socktype.",	/* EAI_SERVICE    */</div><div class='add'>+        "ai_socktype not supported.", 			/* EAI_SOCKTYPE   */</div><div class='add'>+        "system error returned in errno.", 		/* EAI_SYSTEM     */</div><div class='add'>+        "invalid value for hints.",			/* EAI_BADHINTS	  */</div><div class='add'>+        "resolved protocol is unknown.",		/* EAI_PROTOCOL   */</div><div class='add'>+        "unknown error.", 				/* EAI_MAX        */</div><div class='ctx'> };</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #define GET_CANONNAME(ai, str) \</div><div class='ctx'> if (pai-&gt;ai_flags &amp; AI_CANONNAME) {\</div><div class='del'>-	if (((ai)-&gt;ai_canonname = (char *)malloc(strlen(str) + 1)) != NULL) {\</div><div class='del'>-		strcpy((ai)-&gt;ai_canonname, (str));\</div><div class='del'>-	} else {\</div><div class='del'>-		error = EAI_MEMORY;\</div><div class='del'>-		goto free;\</div><div class='del'>-	}\</div><div class='add'>+        if (((ai)-&gt;ai_canonname = (char *)malloc(strlen(str) + 1)) != NULL) {\</div><div class='add'>+                strcpy((ai)-&gt;ai_canonname, (str));\</div><div class='add'>+        } else {\</div><div class='add'>+                error = EAI_MEMORY;\</div><div class='add'>+                goto free;\</div><div class='add'>+        }\</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define GET_AI(ai, afd, addr, port) {\</div><div class='del'>-	char *p;\</div><div class='del'>-	if (((ai) = (struct addrinfo *)malloc(sizeof(struct addrinfo) +\</div><div class='del'>-					      ((afd)-&gt;a_socklen)))\</div><div class='del'>-	    == NULL) {\</div><div class='del'>-		error = EAI_MEMORY;\</div><div class='del'>-		goto free;\</div><div class='del'>-	}\</div><div class='del'>-	memcpy((ai), pai, sizeof(struct addrinfo));\</div><div class='del'>-	(ai)-&gt;ai_addr = (struct sockaddr *)((ai) + 1);\</div><div class='del'>-	(ai)-&gt;ai_family = (afd)-&gt;a_af;\</div><div class='del'>-	(ai)-&gt;ai_addrlen = (afd)-&gt;a_socklen;\</div><div class='del'>-	INIT_SOCKADDR((ai)-&gt;ai_addr, (afd)-&gt;a_af, (afd)-&gt;a_socklen);\</div><div class='del'>-	((struct sockinet *)(ai)-&gt;ai_addr)-&gt;si_port = (port);\</div><div class='del'>-	p = (char *)((ai)-&gt;ai_addr);\</div><div class='del'>-	memcpy(p + (afd)-&gt;a_off, (addr), (afd)-&gt;a_addrlen);\</div><div class='add'>+        char *p;\</div><div class='add'>+        if (((ai) = (struct addrinfo *)malloc(sizeof(struct addrinfo) +\</div><div class='add'>+                                              ((afd)-&gt;a_socklen)))\</div><div class='add'>+            == NULL) {\</div><div class='add'>+                error = EAI_MEMORY;\</div><div class='add'>+                goto free;\</div><div class='add'>+        }\</div><div class='add'>+        memcpy((ai), pai, sizeof(struct addrinfo));\</div><div class='add'>+        (ai)-&gt;ai_addr = (struct sockaddr *)((ai) + 1);\</div><div class='add'>+        (ai)-&gt;ai_family = (afd)-&gt;a_af;\</div><div class='add'>+        (ai)-&gt;ai_addrlen = (afd)-&gt;a_socklen;\</div><div class='add'>+        INIT_SOCKADDR((ai)-&gt;ai_addr, (afd)-&gt;a_af, (afd)-&gt;a_socklen);\</div><div class='add'>+        ((struct sockinet *)(ai)-&gt;ai_addr)-&gt;si_port = (port);\</div><div class='add'>+        p = (char *)((ai)-&gt;ai_addr);\</div><div class='add'>+        memcpy(p + (afd)-&gt;a_off, (addr), (afd)-&gt;a_addrlen);\</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define ERR(err) { error = (err); goto bad; }</div><div class='hunk'>@@ -206,36 +206,36 @@ const</div><div class='ctx'> char *</div><div class='ctx'> gai_strerror(int ecode)</div><div class='ctx'> {</div><div class='del'>-	if (ecode &lt; 0 || ecode &gt; EAI_MAX)</div><div class='del'>-		ecode = EAI_MAX;</div><div class='del'>-	return (char *)ai_errlist[ecode];</div><div class='add'>+        if (ecode &lt; 0 || ecode &gt; EAI_MAX)</div><div class='add'>+                ecode = EAI_MAX;</div><div class='add'>+        return (char *)ai_errlist[ecode];</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> freeaddrinfo(struct addrinfo *ai)</div><div class='ctx'> {</div><div class='del'>-	struct addrinfo *next;</div><div class='del'>-</div><div class='del'>-	do {</div><div class='del'>-		next = ai-&gt;ai_next;</div><div class='del'>-		if (ai-&gt;ai_canonname)</div><div class='del'>-			free(ai-&gt;ai_canonname);</div><div class='del'>-		/* no need to free(ai-&gt;ai_addr) */</div><div class='del'>-		free(ai);</div><div class='del'>-	} while ((ai = next) != NULL);</div><div class='add'>+        struct addrinfo *next;</div><div class='add'>+</div><div class='add'>+        do {</div><div class='add'>+                next = ai-&gt;ai_next;</div><div class='add'>+                if (ai-&gt;ai_canonname)</div><div class='add'>+                        free(ai-&gt;ai_canonname);</div><div class='add'>+                /* no need to free(ai-&gt;ai_addr) */</div><div class='add'>+                free(ai);</div><div class='add'>+        } while ((ai = next) != NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> str_isnumber(const char *p)</div><div class='ctx'> {</div><div class='del'>-	char *q = (char *)p;</div><div class='del'>-	while (*q) {</div><div class='del'>-		if (! isdigit(*q))</div><div class='del'>-			return NO;</div><div class='del'>-		q++;</div><div class='del'>-	}</div><div class='del'>-	return YES;</div><div class='add'>+        char *q = (char *)p;</div><div class='add'>+        while (*q) {</div><div class='add'>+                if (! isdigit(*q))</div><div class='add'>+                        return NO;</div><div class='add'>+                q++;</div><div class='add'>+        }</div><div class='add'>+        return YES;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef HAVE_INET_PTON</div><div class='hunk'>@@ -243,435 +243,435 @@ str_isnumber(const char *p)</div><div class='ctx'> static int</div><div class='ctx'> inet_pton(int af, const char *hostname, void *pton)</div><div class='ctx'> {</div><div class='del'>-	struct in_addr in;</div><div class='add'>+        struct in_addr in;</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_INET_ATON</div><div class='del'>-	if (!inet_aton(hostname, &amp;in))</div><div class='del'>-	    return 0;</div><div class='add'>+        if (!inet_aton(hostname, &amp;in))</div><div class='add'>+            return 0;</div><div class='ctx'> #else</div><div class='del'>-	int d1, d2, d3, d4;</div><div class='del'>-	char ch;</div><div class='del'>-</div><div class='del'>-	if (sscanf(hostname, "%d.%d.%d.%d%c", &amp;d1, &amp;d2, &amp;d3, &amp;d4, &amp;ch) == 4 &amp;&amp;</div><div class='del'>-	    0 &lt;= d1 &amp;&amp; d1 &lt;= 255 &amp;&amp; 0 &lt;= d2 &amp;&amp; d2 &lt;= 255 &amp;&amp;</div><div class='del'>-	    0 &lt;= d3 &amp;&amp; d3 &lt;= 255 &amp;&amp; 0 &lt;= d4 &amp;&amp; d4 &lt;= 255) {</div><div class='del'>-	    in.s_addr = htonl(</div><div class='del'>-		((long) d1 &lt;&lt; 24) | ((long) d2 &lt;&lt; 16) |</div><div class='del'>-		((long) d3 &lt;&lt; 8) | ((long) d4 &lt;&lt; 0));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-	memcpy(pton, &amp;in, sizeof(in));</div><div class='del'>-	return 1;</div><div class='add'>+        int d1, d2, d3, d4;</div><div class='add'>+        char ch;</div><div class='add'>+</div><div class='add'>+        if (sscanf(hostname, "%d.%d.%d.%d%c", &amp;d1, &amp;d2, &amp;d3, &amp;d4, &amp;ch) == 4 &amp;&amp;</div><div class='add'>+            0 &lt;= d1 &amp;&amp; d1 &lt;= 255 &amp;&amp; 0 &lt;= d2 &amp;&amp; d2 &lt;= 255 &amp;&amp;</div><div class='add'>+            0 &lt;= d3 &amp;&amp; d3 &lt;= 255 &amp;&amp; 0 &lt;= d4 &amp;&amp; d4 &lt;= 255) {</div><div class='add'>+            in.s_addr = htonl(</div><div class='add'>+                ((long) d1 &lt;&lt; 24) | ((long) d2 &lt;&lt; 16) |</div><div class='add'>+                ((long) d3 &lt;&lt; 8) | ((long) d4 &lt;&lt; 0));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        memcpy(pton, &amp;in, sizeof(in));</div><div class='add'>+        return 1;</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> int</div><div class='ctx'> getaddrinfo(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res)</div><div class='ctx'> {</div><div class='del'>-	struct addrinfo sentinel;</div><div class='del'>-	struct addrinfo *top = NULL;</div><div class='del'>-	struct addrinfo *cur;</div><div class='del'>-	int i, error = 0;</div><div class='del'>-	char pton[PTON_MAX];</div><div class='del'>-	struct addrinfo ai;</div><div class='del'>-	struct addrinfo *pai;</div><div class='del'>-	u_short port;</div><div class='add'>+        struct addrinfo sentinel;</div><div class='add'>+        struct addrinfo *top = NULL;</div><div class='add'>+        struct addrinfo *cur;</div><div class='add'>+        int i, error = 0;</div><div class='add'>+        char pton[PTON_MAX];</div><div class='add'>+        struct addrinfo ai;</div><div class='add'>+        struct addrinfo *pai;</div><div class='add'>+        u_short port;</div><div class='ctx'> </div><div class='ctx'> #ifdef FAITH</div><div class='del'>-	static int firsttime = 1;</div><div class='del'>-</div><div class='del'>-	if (firsttime) {</div><div class='del'>-		/* translator hack */</div><div class='del'>-		{</div><div class='del'>-			char *q = getenv("GAI");</div><div class='del'>-			if (q &amp;&amp; inet_pton(AF_INET6, q, &amp;faith_prefix) == 1)</div><div class='del'>-				translate = YES;</div><div class='del'>-		}</div><div class='del'>-		firsttime = 0;</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-	/* initialize file static vars */</div><div class='del'>-	sentinel.ai_next = NULL;</div><div class='del'>-	cur = &amp;sentinel;</div><div class='del'>-	pai = &amp;ai;</div><div class='del'>-	pai-&gt;ai_flags = 0;</div><div class='del'>-	pai-&gt;ai_family = PF_UNSPEC;</div><div class='del'>-	pai-&gt;ai_socktype = ANY;</div><div class='del'>-	pai-&gt;ai_protocol = ANY;</div><div class='del'>-	pai-&gt;ai_addrlen = 0;</div><div class='del'>-	pai-&gt;ai_canonname = NULL;</div><div class='del'>-	pai-&gt;ai_addr = NULL;</div><div class='del'>-	pai-&gt;ai_next = NULL;</div><div class='del'>-	port = ANY;</div><div class='del'>-</div><div class='del'>-	if (hostname == NULL &amp;&amp; servname == NULL)</div><div class='del'>-		return EAI_NONAME;</div><div class='del'>-	if (hints) {</div><div class='del'>-		/* error check for hints */</div><div class='del'>-		if (hints-&gt;ai_addrlen || hints-&gt;ai_canonname ||</div><div class='del'>-		    hints-&gt;ai_addr || hints-&gt;ai_next)</div><div class='del'>-			ERR(EAI_BADHINTS); /* xxx */</div><div class='del'>-		if (hints-&gt;ai_flags &amp; ~AI_MASK)</div><div class='del'>-			ERR(EAI_BADFLAGS);</div><div class='del'>-		switch (hints-&gt;ai_family) {</div><div class='del'>-		case PF_UNSPEC:</div><div class='del'>-		case PF_INET:</div><div class='add'>+        static int firsttime = 1;</div><div class='add'>+</div><div class='add'>+        if (firsttime) {</div><div class='add'>+                /* translator hack */</div><div class='add'>+                {</div><div class='add'>+                        char *q = getenv("GAI");</div><div class='add'>+                        if (q &amp;&amp; inet_pton(AF_INET6, q, &amp;faith_prefix) == 1)</div><div class='add'>+                                translate = YES;</div><div class='add'>+                }</div><div class='add'>+                firsttime = 0;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        /* initialize file static vars */</div><div class='add'>+        sentinel.ai_next = NULL;</div><div class='add'>+        cur = &amp;sentinel;</div><div class='add'>+        pai = &amp;ai;</div><div class='add'>+        pai-&gt;ai_flags = 0;</div><div class='add'>+        pai-&gt;ai_family = PF_UNSPEC;</div><div class='add'>+        pai-&gt;ai_socktype = ANY;</div><div class='add'>+        pai-&gt;ai_protocol = ANY;</div><div class='add'>+        pai-&gt;ai_addrlen = 0;</div><div class='add'>+        pai-&gt;ai_canonname = NULL;</div><div class='add'>+        pai-&gt;ai_addr = NULL;</div><div class='add'>+        pai-&gt;ai_next = NULL;</div><div class='add'>+        port = ANY;</div><div class='add'>+</div><div class='add'>+        if (hostname == NULL &amp;&amp; servname == NULL)</div><div class='add'>+                return EAI_NONAME;</div><div class='add'>+        if (hints) {</div><div class='add'>+                /* error check for hints */</div><div class='add'>+                if (hints-&gt;ai_addrlen || hints-&gt;ai_canonname ||</div><div class='add'>+                    hints-&gt;ai_addr || hints-&gt;ai_next)</div><div class='add'>+                        ERR(EAI_BADHINTS); /* xxx */</div><div class='add'>+                if (hints-&gt;ai_flags &amp; ~AI_MASK)</div><div class='add'>+                        ERR(EAI_BADFLAGS);</div><div class='add'>+                switch (hints-&gt;ai_family) {</div><div class='add'>+                case PF_UNSPEC:</div><div class='add'>+                case PF_INET:</div><div class='ctx'> #ifdef INET6</div><div class='del'>-		case PF_INET6:</div><div class='del'>-#endif</div><div class='del'>-			break;</div><div class='del'>-		default:</div><div class='del'>-			ERR(EAI_FAMILY);</div><div class='del'>-		}</div><div class='del'>-		memcpy(pai, hints, sizeof(*pai));</div><div class='del'>-		switch (pai-&gt;ai_socktype) {</div><div class='del'>-		case ANY:</div><div class='del'>-			switch (pai-&gt;ai_protocol) {</div><div class='del'>-			case ANY:</div><div class='del'>-				break;</div><div class='del'>-			case IPPROTO_UDP:</div><div class='del'>-				pai-&gt;ai_socktype = SOCK_DGRAM;</div><div class='del'>-				break;</div><div class='del'>-			case IPPROTO_TCP:</div><div class='del'>-				pai-&gt;ai_socktype = SOCK_STREAM;</div><div class='del'>-				break;</div><div class='del'>-			default:</div><div class='add'>+                case PF_INET6:</div><div class='add'>+#endif</div><div class='add'>+                        break;</div><div class='add'>+                default:</div><div class='add'>+                        ERR(EAI_FAMILY);</div><div class='add'>+                }</div><div class='add'>+                memcpy(pai, hints, sizeof(*pai));</div><div class='add'>+                switch (pai-&gt;ai_socktype) {</div><div class='add'>+                case ANY:</div><div class='add'>+                        switch (pai-&gt;ai_protocol) {</div><div class='add'>+                        case ANY:</div><div class='add'>+                                break;</div><div class='add'>+                        case IPPROTO_UDP:</div><div class='add'>+                                pai-&gt;ai_socktype = SOCK_DGRAM;</div><div class='add'>+                                break;</div><div class='add'>+                        case IPPROTO_TCP:</div><div class='add'>+                                pai-&gt;ai_socktype = SOCK_STREAM;</div><div class='add'>+                                break;</div><div class='add'>+                        default:</div><div class='ctx'> #if defined(SOCK_RAW)</div><div class='del'>-				pai-&gt;ai_socktype = SOCK_RAW;</div><div class='add'>+                                pai-&gt;ai_socktype = SOCK_RAW;</div><div class='ctx'> #endif</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			break;</div><div class='add'>+                                break;</div><div class='add'>+                        }</div><div class='add'>+                        break;</div><div class='ctx'> #if defined(SOCK_RAW)</div><div class='del'>-		case SOCK_RAW:</div><div class='del'>-			break;</div><div class='del'>-#endif</div><div class='del'>-		case SOCK_DGRAM:</div><div class='del'>-			if (pai-&gt;ai_protocol != IPPROTO_UDP &amp;&amp;</div><div class='del'>-			    pai-&gt;ai_protocol != ANY)</div><div class='del'>-				ERR(EAI_BADHINTS);	/*xxx*/</div><div class='del'>-			pai-&gt;ai_protocol = IPPROTO_UDP;</div><div class='del'>-			break;</div><div class='del'>-		case SOCK_STREAM:</div><div class='del'>-			if (pai-&gt;ai_protocol != IPPROTO_TCP &amp;&amp;</div><div class='del'>-			    pai-&gt;ai_protocol != ANY)</div><div class='del'>-				ERR(EAI_BADHINTS);	/*xxx*/</div><div class='del'>-			pai-&gt;ai_protocol = IPPROTO_TCP;</div><div class='del'>-			break;</div><div class='del'>-		default:</div><div class='del'>-			ERR(EAI_SOCKTYPE);</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * service port</div><div class='del'>-	 */</div><div class='del'>-	if (servname) {</div><div class='del'>-		if (str_isnumber(servname)) {</div><div class='del'>-			if (pai-&gt;ai_socktype == ANY) {</div><div class='del'>-				/* caller accept *ANY* socktype */</div><div class='del'>-				pai-&gt;ai_socktype = SOCK_DGRAM;</div><div class='del'>-				pai-&gt;ai_protocol = IPPROTO_UDP;</div><div class='del'>-			}</div><div class='del'>-			port = htons((unsigned short)atoi(servname));</div><div class='add'>+                case SOCK_RAW:</div><div class='add'>+                        break;</div><div class='add'>+#endif</div><div class='add'>+                case SOCK_DGRAM:</div><div class='add'>+                        if (pai-&gt;ai_protocol != IPPROTO_UDP &amp;&amp;</div><div class='add'>+                            pai-&gt;ai_protocol != ANY)</div><div class='add'>+                                ERR(EAI_BADHINTS);	/*xxx*/</div><div class='add'>+                        pai-&gt;ai_protocol = IPPROTO_UDP;</div><div class='add'>+                        break;</div><div class='add'>+                case SOCK_STREAM:</div><div class='add'>+                        if (pai-&gt;ai_protocol != IPPROTO_TCP &amp;&amp;</div><div class='add'>+                            pai-&gt;ai_protocol != ANY)</div><div class='add'>+                                ERR(EAI_BADHINTS);	/*xxx*/</div><div class='add'>+                        pai-&gt;ai_protocol = IPPROTO_TCP;</div><div class='add'>+                        break;</div><div class='add'>+                default:</div><div class='add'>+                        ERR(EAI_SOCKTYPE);</div><div class='add'>+                        break;</div><div class='add'>+                }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /*</div><div class='add'>+         * service port</div><div class='add'>+         */</div><div class='add'>+        if (servname) {</div><div class='add'>+                if (str_isnumber(servname)) {</div><div class='add'>+                        if (pai-&gt;ai_socktype == ANY) {</div><div class='add'>+                                /* caller accept *ANY* socktype */</div><div class='add'>+                                pai-&gt;ai_socktype = SOCK_DGRAM;</div><div class='add'>+                                pai-&gt;ai_protocol = IPPROTO_UDP;</div><div class='add'>+                        }</div><div class='add'>+                        port = htons((unsigned short)atoi(servname));</div><div class='ctx'>                 } else if (pai-&gt;ai_flags &amp; AI_NUMERICSERV) {</div><div class='ctx'>                         ERR(EAI_NONAME);</div><div class='del'>-		} else {</div><div class='del'>-			struct servent *sp;</div><div class='del'>-			const char *proto;</div><div class='del'>-</div><div class='del'>-			proto = NULL;</div><div class='del'>-			switch (pai-&gt;ai_socktype) {</div><div class='del'>-			case ANY:</div><div class='del'>-				proto = NULL;</div><div class='del'>-				break;</div><div class='del'>-			case SOCK_DGRAM:</div><div class='del'>-				proto = "udp";</div><div class='del'>-				break;</div><div class='del'>-			case SOCK_STREAM:</div><div class='del'>-				proto = "tcp";</div><div class='del'>-				break;</div><div class='del'>-			default:</div><div class='del'>-				fprintf(stderr, "panic!\n");</div><div class='del'>-				break;</div><div class='del'>-			}</div><div class='del'>-			if ((sp = getservbyname((char*)servname, proto)) == NULL)</div><div class='del'>-				ERR(EAI_SERVICE);</div><div class='del'>-			port = sp-&gt;s_port;</div><div class='del'>-			if (pai-&gt;ai_socktype == ANY)</div><div class='del'>-				if (strcmp(sp-&gt;s_proto, "udp") == 0) {</div><div class='del'>-					pai-&gt;ai_socktype = SOCK_DGRAM;</div><div class='del'>-					pai-&gt;ai_protocol = IPPROTO_UDP;</div><div class='del'>-				} else if (strcmp(sp-&gt;s_proto, "tcp") == 0) {</div><div class='del'>-					pai-&gt;ai_socktype = SOCK_STREAM;</div><div class='del'>-					pai-&gt;ai_protocol = IPPROTO_TCP;</div><div class='del'>-				} else</div><div class='del'>-					ERR(EAI_PROTOCOL);	/*xxx*/</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * hostname == NULL.</div><div class='del'>-	 * passive socket -&gt; anyaddr (0.0.0.0 or ::)</div><div class='del'>-	 * non-passive socket -&gt; localhost (127.0.0.1 or ::1)</div><div class='del'>-	 */</div><div class='del'>-	if (hostname == NULL) {</div><div class='del'>-		const struct afd *afd;</div><div class='del'>-		int s;</div><div class='del'>-</div><div class='del'>-		for (afd = &amp;afdl[0]; afd-&gt;a_af; afd++) {</div><div class='del'>-			if (!(pai-&gt;ai_family == PF_UNSPEC</div><div class='del'>-			   || pai-&gt;ai_family == afd-&gt;a_af)) {</div><div class='del'>-				continue;</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			/*</div><div class='del'>-			 * filter out AFs that are not supported by the kernel</div><div class='del'>-			 * XXX errno?</div><div class='del'>-			 */</div><div class='del'>-			s = socket(afd-&gt;a_af, SOCK_DGRAM, 0);</div><div class='del'>-			if (s &lt; 0)</div><div class='del'>-				continue;</div><div class='del'>-</div><div class='del'>-			close(s);</div><div class='del'>-</div><div class='del'>-			if (pai-&gt;ai_flags &amp; AI_PASSIVE) {</div><div class='del'>-				GET_AI(cur-&gt;ai_next, afd, afd-&gt;a_addrany, port);</div><div class='del'>-				/* xxx meaningless?</div><div class='del'>-				 * GET_CANONNAME(cur-&gt;ai_next, "anyaddr");</div><div class='del'>-				 */</div><div class='del'>-			} else {</div><div class='del'>-				GET_AI(cur-&gt;ai_next, afd, afd-&gt;a_loopback,</div><div class='del'>-					port);</div><div class='del'>-				/* xxx meaningless?</div><div class='del'>-				 * GET_CANONNAME(cur-&gt;ai_next, "localhost");</div><div class='del'>-				 */</div><div class='del'>-			}</div><div class='del'>-			cur = cur-&gt;ai_next;</div><div class='del'>-		}</div><div class='del'>-		top = sentinel.ai_next;</div><div class='del'>-		if (top)</div><div class='del'>-			goto good;</div><div class='del'>-		else</div><div class='del'>-			ERR(EAI_FAMILY);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* hostname as numeric name */</div><div class='del'>-	for (i = 0; afdl[i].a_af; i++) {</div><div class='del'>-		if (inet_pton(afdl[i].a_af, hostname, pton)) {</div><div class='del'>-			u_long v4a;</div><div class='add'>+                } else {</div><div class='add'>+                        struct servent *sp;</div><div class='add'>+                        const char *proto;</div><div class='add'>+</div><div class='add'>+                        proto = NULL;</div><div class='add'>+                        switch (pai-&gt;ai_socktype) {</div><div class='add'>+                        case ANY:</div><div class='add'>+                                proto = NULL;</div><div class='add'>+                                break;</div><div class='add'>+                        case SOCK_DGRAM:</div><div class='add'>+                                proto = "udp";</div><div class='add'>+                                break;</div><div class='add'>+                        case SOCK_STREAM:</div><div class='add'>+                                proto = "tcp";</div><div class='add'>+                                break;</div><div class='add'>+                        default:</div><div class='add'>+                                fprintf(stderr, "panic!\n");</div><div class='add'>+                                break;</div><div class='add'>+                        }</div><div class='add'>+                        if ((sp = getservbyname((char*)servname, proto)) == NULL)</div><div class='add'>+                                ERR(EAI_SERVICE);</div><div class='add'>+                        port = sp-&gt;s_port;</div><div class='add'>+                        if (pai-&gt;ai_socktype == ANY)</div><div class='add'>+                                if (strcmp(sp-&gt;s_proto, "udp") == 0) {</div><div class='add'>+                                        pai-&gt;ai_socktype = SOCK_DGRAM;</div><div class='add'>+                                        pai-&gt;ai_protocol = IPPROTO_UDP;</div><div class='add'>+                                } else if (strcmp(sp-&gt;s_proto, "tcp") == 0) {</div><div class='add'>+                                        pai-&gt;ai_socktype = SOCK_STREAM;</div><div class='add'>+                                        pai-&gt;ai_protocol = IPPROTO_TCP;</div><div class='add'>+                                } else</div><div class='add'>+                                        ERR(EAI_PROTOCOL);	/*xxx*/</div><div class='add'>+                }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /*</div><div class='add'>+         * hostname == NULL.</div><div class='add'>+         * passive socket -&gt; anyaddr (0.0.0.0 or ::)</div><div class='add'>+         * non-passive socket -&gt; localhost (127.0.0.1 or ::1)</div><div class='add'>+         */</div><div class='add'>+        if (hostname == NULL) {</div><div class='add'>+                const struct afd *afd;</div><div class='add'>+                int s;</div><div class='add'>+</div><div class='add'>+                for (afd = &amp;afdl[0]; afd-&gt;a_af; afd++) {</div><div class='add'>+                        if (!(pai-&gt;ai_family == PF_UNSPEC</div><div class='add'>+                           || pai-&gt;ai_family == afd-&gt;a_af)) {</div><div class='add'>+                                continue;</div><div class='add'>+                        }</div><div class='add'>+</div><div class='add'>+                        /*</div><div class='add'>+                         * filter out AFs that are not supported by the kernel</div><div class='add'>+                         * XXX errno?</div><div class='add'>+                         */</div><div class='add'>+                        s = socket(afd-&gt;a_af, SOCK_DGRAM, 0);</div><div class='add'>+                        if (s &lt; 0)</div><div class='add'>+                                continue;</div><div class='add'>+</div><div class='add'>+                        close(s);</div><div class='add'>+</div><div class='add'>+                        if (pai-&gt;ai_flags &amp; AI_PASSIVE) {</div><div class='add'>+                                GET_AI(cur-&gt;ai_next, afd, afd-&gt;a_addrany, port);</div><div class='add'>+                                /* xxx meaningless?</div><div class='add'>+                                 * GET_CANONNAME(cur-&gt;ai_next, "anyaddr");</div><div class='add'>+                                 */</div><div class='add'>+                        } else {</div><div class='add'>+                                GET_AI(cur-&gt;ai_next, afd, afd-&gt;a_loopback,</div><div class='add'>+                                        port);</div><div class='add'>+                                /* xxx meaningless?</div><div class='add'>+                                 * GET_CANONNAME(cur-&gt;ai_next, "localhost");</div><div class='add'>+                                 */</div><div class='add'>+                        }</div><div class='add'>+                        cur = cur-&gt;ai_next;</div><div class='add'>+                }</div><div class='add'>+                top = sentinel.ai_next;</div><div class='add'>+                if (top)</div><div class='add'>+                        goto good;</div><div class='add'>+                else</div><div class='add'>+                        ERR(EAI_FAMILY);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* hostname as numeric name */</div><div class='add'>+        for (i = 0; afdl[i].a_af; i++) {</div><div class='add'>+                if (inet_pton(afdl[i].a_af, hostname, pton)) {</div><div class='add'>+                        u_long v4a;</div><div class='ctx'> #ifdef INET6</div><div class='del'>-			u_char pfx;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-			switch (afdl[i].a_af) {</div><div class='del'>-			case AF_INET:</div><div class='del'>-				v4a = ((struct in_addr *)pton)-&gt;s_addr;</div><div class='del'>-				if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a))</div><div class='del'>-					pai-&gt;ai_flags &amp;= ~AI_CANONNAME;</div><div class='del'>-				v4a &gt;&gt;= IN_CLASSA_NSHIFT;</div><div class='del'>-				if (v4a == 0 || v4a == IN_LOOPBACKNET)</div><div class='del'>-					pai-&gt;ai_flags &amp;= ~AI_CANONNAME;</div><div class='del'>-				break;</div><div class='add'>+                        u_char pfx;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+                        switch (afdl[i].a_af) {</div><div class='add'>+                        case AF_INET:</div><div class='add'>+                                v4a = ((struct in_addr *)pton)-&gt;s_addr;</div><div class='add'>+                                if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a))</div><div class='add'>+                                        pai-&gt;ai_flags &amp;= ~AI_CANONNAME;</div><div class='add'>+                                v4a &gt;&gt;= IN_CLASSA_NSHIFT;</div><div class='add'>+                                if (v4a == 0 || v4a == IN_LOOPBACKNET)</div><div class='add'>+                                        pai-&gt;ai_flags &amp;= ~AI_CANONNAME;</div><div class='add'>+                                break;</div><div class='ctx'> #ifdef INET6</div><div class='del'>-			case AF_INET6:</div><div class='del'>-				pfx = ((struct in6_addr *)pton)-&gt;s6_addr[0];</div><div class='del'>-				if (pfx == 0 || pfx == 0xfe || pfx == 0xff)</div><div class='del'>-					pai-&gt;ai_flags &amp;= ~AI_CANONNAME;</div><div class='del'>-				break;</div><div class='del'>-#endif</div><div class='del'>-			}</div><div class='del'>-</div><div class='del'>-			if (pai-&gt;ai_family == afdl[i].a_af ||</div><div class='del'>-			    pai-&gt;ai_family == PF_UNSPEC) {</div><div class='del'>-				if (! (pai-&gt;ai_flags &amp; AI_CANONNAME)) {</div><div class='del'>-					GET_AI(top, &amp;afdl[i], pton, port);</div><div class='del'>-					goto good;</div><div class='del'>-				}</div><div class='del'>-				/*</div><div class='del'>-				 * if AI_CANONNAME and if reverse lookup</div><div class='del'>-				 * fail, return ai anyway to pacify</div><div class='del'>-				 * calling application.</div><div class='del'>-				 *</div><div class='del'>-				 * XXX getaddrinfo() is a name-&gt;address</div><div class='del'>-				 * translation function, and it looks strange</div><div class='del'>-				 * that we do addr-&gt;name translation here.</div><div class='del'>-				 */</div><div class='del'>-				get_name(pton, &amp;afdl[i], &amp;top, pton, pai, port);</div><div class='del'>-				goto good;</div><div class='del'>-			} else</div><div class='del'>-				ERR(EAI_FAMILY);	/*xxx*/</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (pai-&gt;ai_flags &amp; AI_NUMERICHOST)</div><div class='del'>-		ERR(EAI_NONAME);</div><div class='del'>-</div><div class='del'>-	/* hostname as alphabetical name */</div><div class='del'>-	error = get_addr(hostname, pai-&gt;ai_family, &amp;top, pai, port);</div><div class='del'>-	if (error == 0) {</div><div class='del'>-		if (top) {</div><div class='add'>+                        case AF_INET6:</div><div class='add'>+                                pfx = ((struct in6_addr *)pton)-&gt;s6_addr[0];</div><div class='add'>+                                if (pfx == 0 || pfx == 0xfe || pfx == 0xff)</div><div class='add'>+                                        pai-&gt;ai_flags &amp;= ~AI_CANONNAME;</div><div class='add'>+                                break;</div><div class='add'>+#endif</div><div class='add'>+                        }</div><div class='add'>+</div><div class='add'>+                        if (pai-&gt;ai_family == afdl[i].a_af ||</div><div class='add'>+                            pai-&gt;ai_family == PF_UNSPEC) {</div><div class='add'>+                                if (! (pai-&gt;ai_flags &amp; AI_CANONNAME)) {</div><div class='add'>+                                        GET_AI(top, &amp;afdl[i], pton, port);</div><div class='add'>+                                        goto good;</div><div class='add'>+                                }</div><div class='add'>+                                /*</div><div class='add'>+                                 * if AI_CANONNAME and if reverse lookup</div><div class='add'>+                                 * fail, return ai anyway to pacify</div><div class='add'>+                                 * calling application.</div><div class='add'>+                                 *</div><div class='add'>+                                 * XXX getaddrinfo() is a name-&gt;address</div><div class='add'>+                                 * translation function, and it looks strange</div><div class='add'>+                                 * that we do addr-&gt;name translation here.</div><div class='add'>+                                 */</div><div class='add'>+                                get_name(pton, &amp;afdl[i], &amp;top, pton, pai, port);</div><div class='add'>+                                goto good;</div><div class='add'>+                        } else</div><div class='add'>+                                ERR(EAI_FAMILY);	/*xxx*/</div><div class='add'>+                }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (pai-&gt;ai_flags &amp; AI_NUMERICHOST)</div><div class='add'>+                ERR(EAI_NONAME);</div><div class='add'>+</div><div class='add'>+        /* hostname as alphabetical name */</div><div class='add'>+        error = get_addr(hostname, pai-&gt;ai_family, &amp;top, pai, port);</div><div class='add'>+        if (error == 0) {</div><div class='add'>+                if (top) {</div><div class='ctx'>  good:</div><div class='del'>-			*res = top;</div><div class='del'>-			return SUCCESS;</div><div class='del'>-		} else</div><div class='del'>-			error = EAI_FAIL;</div><div class='del'>-	}</div><div class='add'>+                        *res = top;</div><div class='add'>+                        return SUCCESS;</div><div class='add'>+                } else</div><div class='add'>+                        error = EAI_FAIL;</div><div class='add'>+        }</div><div class='ctx'>  free:</div><div class='del'>-	if (top)</div><div class='del'>-		freeaddrinfo(top);</div><div class='add'>+        if (top)</div><div class='add'>+                freeaddrinfo(top);</div><div class='ctx'>  bad:</div><div class='del'>-	*res = NULL;</div><div class='del'>-	return error;</div><div class='add'>+        *res = NULL;</div><div class='add'>+        return error;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> get_name(const char *addr, const struct afd *afd, struct addrinfo **res, char *numaddr, struct addrinfo *pai, int port0)</div><div class='ctx'> {</div><div class='del'>-	u_short port = port0 &amp; 0xffff;</div><div class='del'>-	struct hostent *hp;</div><div class='del'>-	struct addrinfo *cur;</div><div class='del'>-	int error = 0;</div><div class='add'>+        u_short port = port0 &amp; 0xffff;</div><div class='add'>+        struct hostent *hp;</div><div class='add'>+        struct addrinfo *cur;</div><div class='add'>+        int error = 0;</div><div class='ctx'> #ifdef INET6</div><div class='del'>-	int h_error;</div><div class='add'>+        int h_error;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef INET6</div><div class='del'>-	hp = getipnodebyaddr(addr, afd-&gt;a_addrlen, afd-&gt;a_af, &amp;h_error);</div><div class='add'>+        hp = getipnodebyaddr(addr, afd-&gt;a_addrlen, afd-&gt;a_af, &amp;h_error);</div><div class='ctx'> #else</div><div class='del'>-	hp = gethostbyaddr((char*)addr, afd-&gt;a_addrlen, AF_INET);</div><div class='add'>+        hp = gethostbyaddr((char*)addr, afd-&gt;a_addrlen, AF_INET);</div><div class='ctx'> #endif</div><div class='del'>-	if (hp &amp;&amp; hp-&gt;h_name &amp;&amp; hp-&gt;h_name[0] &amp;&amp; hp-&gt;h_addr_list[0]) {</div><div class='del'>-		GET_AI(cur, afd, hp-&gt;h_addr_list[0], port);</div><div class='del'>-		GET_CANONNAME(cur, hp-&gt;h_name);</div><div class='del'>-	} else</div><div class='del'>-		GET_AI(cur, afd, numaddr, port);</div><div class='add'>+        if (hp &amp;&amp; hp-&gt;h_name &amp;&amp; hp-&gt;h_name[0] &amp;&amp; hp-&gt;h_addr_list[0]) {</div><div class='add'>+                GET_AI(cur, afd, hp-&gt;h_addr_list[0], port);</div><div class='add'>+                GET_CANONNAME(cur, hp-&gt;h_name);</div><div class='add'>+        } else</div><div class='add'>+                GET_AI(cur, afd, numaddr, port);</div><div class='ctx'> </div><div class='ctx'> #ifdef INET6</div><div class='del'>-	if (hp)</div><div class='del'>-		freehostent(hp);</div><div class='add'>+        if (hp)</div><div class='add'>+                freehostent(hp);</div><div class='ctx'> #endif</div><div class='del'>-	*res = cur;</div><div class='del'>-	return SUCCESS;</div><div class='add'>+        *res = cur;</div><div class='add'>+        return SUCCESS;</div><div class='ctx'>  free:</div><div class='del'>-	if (cur)</div><div class='del'>-		freeaddrinfo(cur);</div><div class='add'>+        if (cur)</div><div class='add'>+                freeaddrinfo(cur);</div><div class='ctx'> #ifdef INET6</div><div class='del'>-	if (hp)</div><div class='del'>-		freehostent(hp);</div><div class='add'>+        if (hp)</div><div class='add'>+                freehostent(hp);</div><div class='ctx'> #endif</div><div class='ctx'>  /* bad: */</div><div class='del'>-	*res = NULL;</div><div class='del'>-	return error;</div><div class='add'>+        *res = NULL;</div><div class='add'>+        return error;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> get_addr(const char *hostname, int af, struct addrinfo **res, struct addrinfo *pai, int port0)</div><div class='ctx'> {</div><div class='del'>-	u_short port = port0 &amp; 0xffff;</div><div class='del'>-	struct addrinfo sentinel;</div><div class='del'>-	struct hostent *hp;</div><div class='del'>-	struct addrinfo *top, *cur;</div><div class='del'>-	const struct afd *afd;</div><div class='del'>-	int i, error = 0, h_error;</div><div class='del'>-	char *ap;</div><div class='del'>-</div><div class='del'>-	top = NULL;</div><div class='del'>-	sentinel.ai_next = NULL;</div><div class='del'>-	cur = &amp;sentinel;</div><div class='add'>+        u_short port = port0 &amp; 0xffff;</div><div class='add'>+        struct addrinfo sentinel;</div><div class='add'>+        struct hostent *hp;</div><div class='add'>+        struct addrinfo *top, *cur;</div><div class='add'>+        const struct afd *afd;</div><div class='add'>+        int i, error = 0, h_error;</div><div class='add'>+        char *ap;</div><div class='add'>+</div><div class='add'>+        top = NULL;</div><div class='add'>+        sentinel.ai_next = NULL;</div><div class='add'>+        cur = &amp;sentinel;</div><div class='ctx'> #ifdef INET6</div><div class='del'>-	if (af == AF_UNSPEC) {</div><div class='del'>-		hp = getipnodebyname(hostname, AF_INET6,</div><div class='del'>-				AI_ADDRCONFIG|AI_ALL|AI_V4MAPPED, &amp;h_error);</div><div class='del'>-	} else</div><div class='del'>-		hp = getipnodebyname(hostname, af, AI_ADDRCONFIG, &amp;h_error);</div><div class='add'>+        if (af == AF_UNSPEC) {</div><div class='add'>+                hp = getipnodebyname(hostname, AF_INET6,</div><div class='add'>+                                AI_ADDRCONFIG|AI_ALL|AI_V4MAPPED, &amp;h_error);</div><div class='add'>+        } else</div><div class='add'>+                hp = getipnodebyname(hostname, af, AI_ADDRCONFIG, &amp;h_error);</div><div class='ctx'> #else</div><div class='del'>-	if (strlen(hostname) &gt;= NI_MAXHOST) ERR(EAI_NODATA);</div><div class='del'>-	hp = gethostbyname((char*)hostname);</div><div class='del'>-	h_error = h_errno;</div><div class='del'>-#endif</div><div class='del'>-	if (hp == NULL) {</div><div class='del'>-		switch (h_error) {</div><div class='del'>-		case HOST_NOT_FOUND:</div><div class='del'>-		case NO_DATA:</div><div class='del'>-			error = EAI_NODATA;</div><div class='del'>-			break;</div><div class='del'>-		case TRY_AGAIN:</div><div class='del'>-			error = EAI_AGAIN;</div><div class='del'>-			break;</div><div class='del'>-		case NO_RECOVERY:</div><div class='del'>-		default:</div><div class='del'>-			error = EAI_FAIL;</div><div class='del'>-			break;</div><div class='del'>-		}</div><div class='del'>-		goto bad;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if ((hp-&gt;h_name == NULL) || (hp-&gt;h_name[0] == 0) ||</div><div class='del'>-	    (hp-&gt;h_addr_list[0] == NULL))</div><div class='del'>-		ERR(EAI_FAIL);</div><div class='del'>-</div><div class='del'>-	for (i = 0; (ap = hp-&gt;h_addr_list[i]) != NULL; i++) {</div><div class='del'>-		switch (af) {</div><div class='add'>+        if (strlen(hostname) &gt;= NI_MAXHOST) ERR(EAI_NODATA);</div><div class='add'>+        hp = gethostbyname((char*)hostname);</div><div class='add'>+        h_error = h_errno;</div><div class='add'>+#endif</div><div class='add'>+        if (hp == NULL) {</div><div class='add'>+                switch (h_error) {</div><div class='add'>+                case HOST_NOT_FOUND:</div><div class='add'>+                case NO_DATA:</div><div class='add'>+                        error = EAI_NODATA;</div><div class='add'>+                        break;</div><div class='add'>+                case TRY_AGAIN:</div><div class='add'>+                        error = EAI_AGAIN;</div><div class='add'>+                        break;</div><div class='add'>+                case NO_RECOVERY:</div><div class='add'>+                default:</div><div class='add'>+                        error = EAI_FAIL;</div><div class='add'>+                        break;</div><div class='add'>+                }</div><div class='add'>+                goto bad;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if ((hp-&gt;h_name == NULL) || (hp-&gt;h_name[0] == 0) ||</div><div class='add'>+            (hp-&gt;h_addr_list[0] == NULL))</div><div class='add'>+                ERR(EAI_FAIL);</div><div class='add'>+</div><div class='add'>+        for (i = 0; (ap = hp-&gt;h_addr_list[i]) != NULL; i++) {</div><div class='add'>+                switch (af) {</div><div class='ctx'> #ifdef INET6</div><div class='del'>-		case AF_INET6:</div><div class='del'>-			afd = &amp;afdl[N_INET6];</div><div class='del'>-			break;</div><div class='add'>+                case AF_INET6:</div><div class='add'>+                        afd = &amp;afdl[N_INET6];</div><div class='add'>+                        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifndef INET6</div><div class='del'>-		default:	/* AF_UNSPEC */</div><div class='add'>+                default:	/* AF_UNSPEC */</div><div class='ctx'> #endif</div><div class='del'>-		case AF_INET:</div><div class='del'>-			afd = &amp;afdl[N_INET];</div><div class='del'>-			break;</div><div class='add'>+                case AF_INET:</div><div class='add'>+                        afd = &amp;afdl[N_INET];</div><div class='add'>+                        break;</div><div class='ctx'> #ifdef INET6</div><div class='del'>-		default:	/* AF_UNSPEC */</div><div class='del'>-			if (IN6_IS_ADDR_V4MAPPED((struct in6_addr *)ap)) {</div><div class='del'>-				ap += sizeof(struct in6_addr) -</div><div class='del'>-					sizeof(struct in_addr);</div><div class='del'>-				afd = &amp;afdl[N_INET];</div><div class='del'>-			} else</div><div class='del'>-				afd = &amp;afdl[N_INET6];</div><div class='del'>-			break;</div><div class='del'>-#endif</div><div class='del'>-		}</div><div class='add'>+                default:	/* AF_UNSPEC */</div><div class='add'>+                        if (IN6_IS_ADDR_V4MAPPED((struct in6_addr *)ap)) {</div><div class='add'>+                                ap += sizeof(struct in6_addr) -</div><div class='add'>+                                        sizeof(struct in_addr);</div><div class='add'>+                                afd = &amp;afdl[N_INET];</div><div class='add'>+                        } else</div><div class='add'>+                                afd = &amp;afdl[N_INET6];</div><div class='add'>+                        break;</div><div class='add'>+#endif</div><div class='add'>+                }</div><div class='ctx'> #ifdef FAITH</div><div class='del'>-		if (translate &amp;&amp; afd-&gt;a_af == AF_INET) {</div><div class='del'>-			struct in6_addr *in6;</div><div class='del'>-</div><div class='del'>-			GET_AI(cur-&gt;ai_next, &amp;afdl[N_INET6], ap, port);</div><div class='del'>-			in6 = &amp;((struct sockaddr_in6 *)cur-&gt;ai_next-&gt;ai_addr)-&gt;sin6_addr;</div><div class='del'>-			memcpy(&amp;in6-&gt;s6_addr, &amp;faith_prefix,</div><div class='del'>-			       sizeof(struct in6_addr) - sizeof(struct in_addr));</div><div class='del'>-			memcpy(&amp;in6-&gt;s6_addr + sizeof(struct in_addr), ap,</div><div class='del'>-			       sizeof(struct in_addr));</div><div class='del'>-		} else</div><div class='add'>+                if (translate &amp;&amp; afd-&gt;a_af == AF_INET) {</div><div class='add'>+                        struct in6_addr *in6;</div><div class='add'>+</div><div class='add'>+                        GET_AI(cur-&gt;ai_next, &amp;afdl[N_INET6], ap, port);</div><div class='add'>+                        in6 = &amp;((struct sockaddr_in6 *)cur-&gt;ai_next-&gt;ai_addr)-&gt;sin6_addr;</div><div class='add'>+                        memcpy(&amp;in6-&gt;s6_addr, &amp;faith_prefix,</div><div class='add'>+                               sizeof(struct in6_addr) - sizeof(struct in_addr));</div><div class='add'>+                        memcpy(&amp;in6-&gt;s6_addr + sizeof(struct in_addr), ap,</div><div class='add'>+                               sizeof(struct in_addr));</div><div class='add'>+                } else</div><div class='ctx'> #endif /* FAITH */</div><div class='del'>-		GET_AI(cur-&gt;ai_next, afd, ap, port);</div><div class='del'>-		if (cur == &amp;sentinel) {</div><div class='del'>-			top = cur-&gt;ai_next;</div><div class='del'>-			GET_CANONNAME(top, hp-&gt;h_name);</div><div class='del'>-		}</div><div class='del'>-		cur = cur-&gt;ai_next;</div><div class='del'>-	}</div><div class='add'>+                GET_AI(cur-&gt;ai_next, afd, ap, port);</div><div class='add'>+                if (cur == &amp;sentinel) {</div><div class='add'>+                        top = cur-&gt;ai_next;</div><div class='add'>+                        GET_CANONNAME(top, hp-&gt;h_name);</div><div class='add'>+                }</div><div class='add'>+                cur = cur-&gt;ai_next;</div><div class='add'>+        }</div><div class='ctx'> #ifdef INET6</div><div class='del'>-	freehostent(hp);</div><div class='add'>+        freehostent(hp);</div><div class='ctx'> #endif</div><div class='del'>-	*res = top;</div><div class='del'>-	return SUCCESS;</div><div class='add'>+        *res = top;</div><div class='add'>+        return SUCCESS;</div><div class='ctx'>  free:</div><div class='del'>-	if (top)</div><div class='del'>-		freeaddrinfo(top);</div><div class='add'>+        if (top)</div><div class='add'>+                freeaddrinfo(top);</div><div class='ctx'> #ifdef INET6</div><div class='del'>-	if (hp)</div><div class='del'>-		freehostent(hp);</div><div class='add'>+        if (hp)</div><div class='add'>+                freehostent(hp);</div><div class='ctx'> #endif</div><div class='ctx'>  bad:</div><div class='del'>-	*res = NULL;</div><div class='del'>-	return error;</div><div class='add'>+        *res = NULL;</div><div class='add'>+        return error;</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/socket/getnameinfo.c b/ext/socket/getnameinfo.c<br/>index 94a5eb9439..ae5284fab6 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/getnameinfo.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/getnameinfo.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/getnameinfo.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/getnameinfo.c</a></div><div class='hunk'>@@ -84,30 +84,30 @@ typedef int socklen_t;</div><div class='ctx'> #define NO  0</div><div class='ctx'> </div><div class='ctx'> struct sockinet {</div><div class='del'>-	u_char	si_len;</div><div class='del'>-	u_char	si_family;</div><div class='del'>-	u_short	si_port;</div><div class='add'>+        u_char	si_len;</div><div class='add'>+        u_char	si_family;</div><div class='add'>+        u_short	si_port;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static struct afd {</div><div class='del'>-	int a_af;</div><div class='del'>-	int a_addrlen;</div><div class='del'>-	int a_socklen;</div><div class='del'>-	int a_off;</div><div class='add'>+        int a_af;</div><div class='add'>+        int a_addrlen;</div><div class='add'>+        int a_socklen;</div><div class='add'>+        int a_off;</div><div class='ctx'> } afdl [] = {</div><div class='ctx'> #ifdef INET6</div><div class='ctx'> #define N_INET6 0</div><div class='del'>-	{PF_INET6, sizeof(struct in6_addr),</div><div class='del'>-	 sizeof(struct sockaddr_in6),</div><div class='del'>-	 offsetof(struct sockaddr_in6, sin6_addr)},</div><div class='add'>+        {PF_INET6, sizeof(struct in6_addr),</div><div class='add'>+         sizeof(struct sockaddr_in6),</div><div class='add'>+         offsetof(struct sockaddr_in6, sin6_addr)},</div><div class='ctx'> #define N_INET  1</div><div class='ctx'> #else</div><div class='ctx'> #define N_INET  0</div><div class='ctx'> #endif</div><div class='del'>-	{PF_INET, sizeof(struct in_addr),</div><div class='del'>-	 sizeof(struct sockaddr_in),</div><div class='del'>-	 offsetof(struct sockaddr_in, sin_addr)},</div><div class='del'>-	{0, 0, 0, 0},</div><div class='add'>+        {PF_INET, sizeof(struct in_addr),</div><div class='add'>+         sizeof(struct sockaddr_in),</div><div class='add'>+         offsetof(struct sockaddr_in, sin_addr)},</div><div class='add'>+        {0, 0, 0, 0},</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> #define ENI_NOSOCKET 	0</div><div class='hunk'>@@ -121,123 +121,123 @@ static struct afd {</div><div class='ctx'> int</div><div class='ctx'> getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, socklen_t hostlen, char *serv, socklen_t servlen, int flags)</div><div class='ctx'> {</div><div class='del'>-	struct afd *afd;</div><div class='del'>-	struct hostent *hp;</div><div class='del'>-	u_short port;</div><div class='del'>-	int family, len, i;</div><div class='del'>-	char *addr, *p;</div><div class='del'>-	u_long v4a;</div><div class='add'>+        struct afd *afd;</div><div class='add'>+        struct hostent *hp;</div><div class='add'>+        u_short port;</div><div class='add'>+        int family, len, i;</div><div class='add'>+        char *addr, *p;</div><div class='add'>+        u_long v4a;</div><div class='ctx'> #ifdef INET6</div><div class='del'>-	u_char pfx;</div><div class='add'>+        u_char pfx;</div><div class='ctx'> #endif</div><div class='del'>-	int h_error;</div><div class='del'>-	char numserv[512];</div><div class='del'>-	char numaddr[512];</div><div class='add'>+        int h_error;</div><div class='add'>+        char numserv[512];</div><div class='add'>+        char numaddr[512];</div><div class='ctx'> </div><div class='del'>-	if (sa == NULL)</div><div class='del'>-		return ENI_NOSOCKET;</div><div class='add'>+        if (sa == NULL)</div><div class='add'>+                return ENI_NOSOCKET;</div><div class='ctx'> </div><div class='del'>-	if (!VALIDATE_SOCKLEN(sa, salen)) return ENI_SALEN;</div><div class='add'>+        if (!VALIDATE_SOCKLEN(sa, salen)) return ENI_SALEN;</div><div class='ctx'>         len = salen;</div><div class='ctx'> </div><div class='del'>-	family = sa-&gt;sa_family;</div><div class='del'>-	for (i = 0; afdl[i].a_af; i++)</div><div class='del'>-		if (afdl[i].a_af == family) {</div><div class='del'>-			afd = &amp;afdl[i];</div><div class='del'>-			goto found;</div><div class='del'>-		}</div><div class='del'>-	return ENI_FAMILY;</div><div class='add'>+        family = sa-&gt;sa_family;</div><div class='add'>+        for (i = 0; afdl[i].a_af; i++)</div><div class='add'>+                if (afdl[i].a_af == family) {</div><div class='add'>+                        afd = &amp;afdl[i];</div><div class='add'>+                        goto found;</div><div class='add'>+                }</div><div class='add'>+        return ENI_FAMILY;</div><div class='ctx'> </div><div class='ctx'>  found:</div><div class='del'>-	if (len != afd-&gt;a_socklen) return ENI_SALEN;</div><div class='del'>-</div><div class='del'>-	port = ((struct sockinet *)sa)-&gt;si_port; /* network byte order */</div><div class='del'>-	addr = (char *)sa + afd-&gt;a_off;</div><div class='del'>-</div><div class='del'>-	if (serv == NULL || servlen == 0) {</div><div class='del'>-		/* what we should do? */</div><div class='del'>-	} else if (flags &amp; NI_NUMERICSERV) {</div><div class='del'>-		snprintf(numserv, sizeof(numserv), "%d", ntohs(port));</div><div class='del'>-		if (strlen(numserv) + 1 &gt; servlen)</div><div class='del'>-			return ENI_MEMORY;</div><div class='del'>-		strcpy(serv, numserv);</div><div class='del'>-	} else {</div><div class='add'>+        if (len != afd-&gt;a_socklen) return ENI_SALEN;</div><div class='add'>+</div><div class='add'>+        port = ((struct sockinet *)sa)-&gt;si_port; /* network byte order */</div><div class='add'>+        addr = (char *)sa + afd-&gt;a_off;</div><div class='add'>+</div><div class='add'>+        if (serv == NULL || servlen == 0) {</div><div class='add'>+                /* what we should do? */</div><div class='add'>+        } else if (flags &amp; NI_NUMERICSERV) {</div><div class='add'>+                snprintf(numserv, sizeof(numserv), "%d", ntohs(port));</div><div class='add'>+                if (strlen(numserv) + 1 &gt; servlen)</div><div class='add'>+                        return ENI_MEMORY;</div><div class='add'>+                strcpy(serv, numserv);</div><div class='add'>+        } else {</div><div class='ctx'> #if defined(HAVE_GETSERVBYPORT)</div><div class='del'>-		struct servent *sp = getservbyport(port, (flags &amp; NI_DGRAM) ? "udp" : "tcp");</div><div class='del'>-		if (sp) {</div><div class='del'>-			if (strlen(sp-&gt;s_name) + 1 &gt; servlen)</div><div class='del'>-				return ENI_MEMORY;</div><div class='del'>-			strcpy(serv, sp-&gt;s_name);</div><div class='del'>-		} else</div><div class='del'>-			return ENI_NOSERVNAME;</div><div class='add'>+                struct servent *sp = getservbyport(port, (flags &amp; NI_DGRAM) ? "udp" : "tcp");</div><div class='add'>+                if (sp) {</div><div class='add'>+                        if (strlen(sp-&gt;s_name) + 1 &gt; servlen)</div><div class='add'>+                                return ENI_MEMORY;</div><div class='add'>+                        strcpy(serv, sp-&gt;s_name);</div><div class='add'>+                } else</div><div class='add'>+                        return ENI_NOSERVNAME;</div><div class='ctx'> #else</div><div class='del'>-		return ENI_NOSERVNAME;</div><div class='del'>-#endif</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	switch (sa-&gt;sa_family) {</div><div class='del'>-	case AF_INET:</div><div class='del'>-		v4a = ntohl(((struct sockaddr_in *)sa)-&gt;sin_addr.s_addr);</div><div class='del'>-		if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a))</div><div class='del'>-			flags |= NI_NUMERICHOST;</div><div class='del'>-		v4a &gt;&gt;= IN_CLASSA_NSHIFT;</div><div class='del'>-		if (v4a == 0)</div><div class='del'>-			flags |= NI_NUMERICHOST;</div><div class='del'>-		break;</div><div class='add'>+                return ENI_NOSERVNAME;</div><div class='add'>+#endif</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        switch (sa-&gt;sa_family) {</div><div class='add'>+        case AF_INET:</div><div class='add'>+                v4a = ntohl(((struct sockaddr_in *)sa)-&gt;sin_addr.s_addr);</div><div class='add'>+                if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a))</div><div class='add'>+                        flags |= NI_NUMERICHOST;</div><div class='add'>+                v4a &gt;&gt;= IN_CLASSA_NSHIFT;</div><div class='add'>+                if (v4a == 0)</div><div class='add'>+                        flags |= NI_NUMERICHOST;</div><div class='add'>+                break;</div><div class='ctx'> #ifdef INET6</div><div class='del'>-	case AF_INET6:</div><div class='add'>+        case AF_INET6:</div><div class='ctx'> #ifdef HAVE_ADDR8</div><div class='del'>-		pfx = ((struct sockaddr_in6 *)sa)-&gt;sin6_addr.s6_addr8[0];</div><div class='add'>+                pfx = ((struct sockaddr_in6 *)sa)-&gt;sin6_addr.s6_addr8[0];</div><div class='ctx'> #else</div><div class='del'>-		pfx = ((struct sockaddr_in6 *)sa)-&gt;sin6_addr.s6_addr[0];</div><div class='del'>-#endif</div><div class='del'>-		if (pfx == 0 || pfx == 0xfe || pfx == 0xff)</div><div class='del'>-			flags |= NI_NUMERICHOST;</div><div class='del'>-		break;</div><div class='del'>-#endif</div><div class='del'>-	}</div><div class='del'>-	if (host == NULL || hostlen == 0) {</div><div class='del'>-		/* what should we do? */</div><div class='del'>-	} else if (flags &amp; NI_NUMERICHOST) {</div><div class='del'>-		if (inet_ntop(afd-&gt;a_af, addr, numaddr, sizeof(numaddr))</div><div class='del'>-		    == NULL)</div><div class='del'>-			return ENI_SYSTEM;</div><div class='del'>-		if (strlen(numaddr) &gt; hostlen)</div><div class='del'>-			return ENI_MEMORY;</div><div class='del'>-		strcpy(host, numaddr);</div><div class='del'>-	} else {</div><div class='add'>+                pfx = ((struct sockaddr_in6 *)sa)-&gt;sin6_addr.s6_addr[0];</div><div class='add'>+#endif</div><div class='add'>+                if (pfx == 0 || pfx == 0xfe || pfx == 0xff)</div><div class='add'>+                        flags |= NI_NUMERICHOST;</div><div class='add'>+                break;</div><div class='add'>+#endif</div><div class='add'>+        }</div><div class='add'>+        if (host == NULL || hostlen == 0) {</div><div class='add'>+                /* what should we do? */</div><div class='add'>+        } else if (flags &amp; NI_NUMERICHOST) {</div><div class='add'>+                if (inet_ntop(afd-&gt;a_af, addr, numaddr, sizeof(numaddr))</div><div class='add'>+                    == NULL)</div><div class='add'>+                        return ENI_SYSTEM;</div><div class='add'>+                if (strlen(numaddr) &gt; hostlen)</div><div class='add'>+                        return ENI_MEMORY;</div><div class='add'>+                strcpy(host, numaddr);</div><div class='add'>+        } else {</div><div class='ctx'> #ifdef INET6</div><div class='del'>-		hp = getipnodebyaddr(addr, afd-&gt;a_addrlen, afd-&gt;a_af, &amp;h_error);</div><div class='add'>+                hp = getipnodebyaddr(addr, afd-&gt;a_addrlen, afd-&gt;a_af, &amp;h_error);</div><div class='ctx'> #else</div><div class='del'>-		hp = gethostbyaddr(addr, afd-&gt;a_addrlen, afd-&gt;a_af);</div><div class='del'>-		h_error = h_errno;</div><div class='add'>+                hp = gethostbyaddr(addr, afd-&gt;a_addrlen, afd-&gt;a_af);</div><div class='add'>+                h_error = h_errno;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-		if (hp) {</div><div class='del'>-			if (flags &amp; NI_NOFQDN) {</div><div class='del'>-				p = strchr(hp-&gt;h_name, '.');</div><div class='del'>-				if (p) *p = '\0';</div><div class='del'>-			}</div><div class='del'>-			if (strlen(hp-&gt;h_name) + 1 &gt; hostlen) {</div><div class='add'>+                if (hp) {</div><div class='add'>+                        if (flags &amp; NI_NOFQDN) {</div><div class='add'>+                                p = strchr(hp-&gt;h_name, '.');</div><div class='add'>+                                if (p) *p = '\0';</div><div class='add'>+                        }</div><div class='add'>+                        if (strlen(hp-&gt;h_name) + 1 &gt; hostlen) {</div><div class='ctx'> #ifdef INET6</div><div class='del'>-				freehostent(hp);</div><div class='add'>+                                freehostent(hp);</div><div class='ctx'> #endif</div><div class='del'>-				return ENI_MEMORY;</div><div class='del'>-			}</div><div class='del'>-			strcpy(host, hp-&gt;h_name);</div><div class='add'>+                                return ENI_MEMORY;</div><div class='add'>+                        }</div><div class='add'>+                        strcpy(host, hp-&gt;h_name);</div><div class='ctx'> #ifdef INET6</div><div class='del'>-			freehostent(hp);</div><div class='del'>-#endif</div><div class='del'>-		} else {</div><div class='del'>-			if (flags &amp; NI_NAMEREQD)</div><div class='del'>-				return ENI_NOHOSTNAME;</div><div class='del'>-			if (inet_ntop(afd-&gt;a_af, addr, numaddr, sizeof(numaddr))</div><div class='del'>-			    == NULL)</div><div class='del'>-				return ENI_NOHOSTNAME;</div><div class='del'>-			if (strlen(numaddr) &gt; hostlen)</div><div class='del'>-				return ENI_MEMORY;</div><div class='del'>-			strcpy(host, numaddr);</div><div class='del'>-		}</div><div class='del'>-	}</div><div class='del'>-	return SUCCESS;</div><div class='add'>+                        freehostent(hp);</div><div class='add'>+#endif</div><div class='add'>+                } else {</div><div class='add'>+                        if (flags &amp; NI_NAMEREQD)</div><div class='add'>+                                return ENI_NOHOSTNAME;</div><div class='add'>+                        if (inet_ntop(afd-&gt;a_af, addr, numaddr, sizeof(numaddr))</div><div class='add'>+                            == NULL)</div><div class='add'>+                                return ENI_NOHOSTNAME;</div><div class='add'>+                        if (strlen(numaddr) &gt; hostlen)</div><div class='add'>+                                return ENI_MEMORY;</div><div class='add'>+                        strcpy(host, numaddr);</div><div class='add'>+                }</div><div class='add'>+        }</div><div class='add'>+        return SUCCESS;</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/socket/ifaddr.c b/ext/socket/ifaddr.c<br/>index 26aa0c8082..ab163dcc8f 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/ifaddr.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/ifaddr.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/ifaddr.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/ifaddr.c</a></div><div class='hunk'>@@ -104,7 +104,7 @@ rsock_getifaddrs(void)</div><div class='ctx'>         rb_sys_fail("getifaddrs");</div><div class='ctx'> </div><div class='ctx'>     if (!ifaddrs) {</div><div class='del'>-	return rb_ary_new();</div><div class='add'>+        return rb_ary_new();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     numifaddrs = 0;</div><div class='hunk'>@@ -128,9 +128,9 @@ rsock_getifaddrs(void)</div><div class='ctx'>     result = rb_ary_new2(numifaddrs);</div><div class='ctx'>     rb_ary_push(result, addr);</div><div class='ctx'>     for (i = 1; i &lt; numifaddrs; i++) {</div><div class='del'>-	addr = TypedData_Wrap_Struct(rb_cSockIfaddr, &amp;ifaddr_type, &amp;root-&gt;ary[i]);</div><div class='del'>-	root-&gt;refcount++;</div><div class='del'>-	rb_ary_push(result, addr);</div><div class='add'>+        addr = TypedData_Wrap_Struct(rb_cSockIfaddr, &amp;ifaddr_type, &amp;root-&gt;ary[i]);</div><div class='add'>+        root-&gt;refcount++;</div><div class='add'>+        rb_ary_push(result, addr);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='hunk'>@@ -459,7 +459,8 @@ rsock_init_sockifaddr(void)</div><div class='ctx'>      *</div><div class='ctx'>      * Socket::Ifaddr represents a result of getifaddrs() function.</div><div class='ctx'>      */</div><div class='del'>-    rb_cSockIfaddr = rb_define_class_under(rb_cSocket, "Ifaddr", rb_cData);</div><div class='add'>+    rb_cSockIfaddr = rb_define_class_under(rb_cSocket, "Ifaddr", rb_cObject);</div><div class='add'>+    rb_undef_alloc_func(rb_cSockIfaddr);</div><div class='ctx'>     rb_define_method(rb_cSockIfaddr, "inspect", ifaddr_inspect, 0);</div><div class='ctx'>     rb_define_method(rb_cSockIfaddr, "name", ifaddr_name, 0);</div><div class='ctx'>     rb_define_method(rb_cSockIfaddr, "ifindex", ifaddr_ifindex, 0);</div><div class='head'>diff --git a/ext/socket/init.c b/ext/socket/init.c<br/>index 44d1506973..557d4374a5 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/init.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/init.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/init.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/init.c</a></div><div class='hunk'>@@ -41,7 +41,7 @@ rsock_raise_socket_error(const char *reason, int error)</div><div class='ctx'> #ifdef EAI_SYSTEM</div><div class='ctx'>     int e;</div><div class='ctx'>     if (error == EAI_SYSTEM &amp;&amp; (e = errno) != 0)</div><div class='del'>-	rb_syserr_fail(e, reason);</div><div class='add'>+        rb_syserr_fail(e, reason);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'>     rb_encoding *enc = rb_default_internal_encoding();</div><div class='hunk'>@@ -54,20 +54,6 @@ rsock_raise_socket_error(const char *reason, int error)</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef _WIN32</div><div class='del'>-#define is_socket(fd) rb_w32_is_socket(fd)</div><div class='del'>-#else</div><div class='del'>-static int</div><div class='del'>-is_socket(int fd)</div><div class='del'>-{</div><div class='del'>-    struct stat sbuf;</div><div class='del'>-</div><div class='del'>-    if (fstat(fd, &amp;sbuf) &lt; 0)</div><div class='del'>-        rb_sys_fail("fstat(2)");</div><div class='del'>-    return S_ISSOCK(sbuf.st_mode);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #if defined __APPLE__</div><div class='ctx'> # define do_write_retry(code) do {ret = code;} while (ret == -1 &amp;&amp; errno == EPROTOTYPE)</div><div class='ctx'> #else</div><div class='hunk'>@@ -79,17 +65,13 @@ rsock_init_sock(VALUE sock, int fd)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fp;</div><div class='ctx'> </div><div class='del'>-    if (!is_socket(fd) || rb_reserved_fd_p(fd)) {</div><div class='del'>-	rb_syserr_fail(EBADF, "not a socket file descriptor");</div><div class='del'>-    }</div><div class='del'>-</div><div class='ctx'>     rb_update_max_fd(fd);</div><div class='ctx'>     MakeOpenFile(sock, fp);</div><div class='ctx'>     fp-&gt;fd = fd;</div><div class='ctx'>     fp-&gt;mode = FMODE_READWRITE|FMODE_DUPLEX;</div><div class='ctx'>     rb_io_ascii8bit_binmode(sock);</div><div class='ctx'>     if (rsock_do_not_reverse_lookup) {</div><div class='del'>-	fp-&gt;mode |= FMODE_NOREVLOOKUP;</div><div class='add'>+        fp-&gt;mode |= FMODE_NOREVLOOKUP;</div><div class='ctx'>     }</div><div class='ctx'>     rb_io_synchronized(fp);</div><div class='ctx'> </div><div class='hunk'>@@ -103,7 +85,7 @@ rsock_sendto_blocking(void *data)</div><div class='ctx'>     VALUE mesg = arg-&gt;mesg;</div><div class='ctx'>     ssize_t ret;</div><div class='ctx'>     do_write_retry(sendto(arg-&gt;fd, RSTRING_PTR(mesg), RSTRING_LEN(mesg),</div><div class='del'>-			  arg-&gt;flags, arg-&gt;to, arg-&gt;tolen));</div><div class='add'>+                          arg-&gt;flags, arg-&gt;to, arg-&gt;tolen));</div><div class='ctx'>     return (VALUE)ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -114,13 +96,14 @@ rsock_send_blocking(void *data)</div><div class='ctx'>     VALUE mesg = arg-&gt;mesg;</div><div class='ctx'>     ssize_t ret;</div><div class='ctx'>     do_write_retry(send(arg-&gt;fd, RSTRING_PTR(mesg), RSTRING_LEN(mesg),</div><div class='del'>-			arg-&gt;flags));</div><div class='add'>+                        arg-&gt;flags));</div><div class='ctx'>     return (VALUE)ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct recvfrom_arg {</div><div class='ctx'>     int fd, flags;</div><div class='ctx'>     VALUE str;</div><div class='add'>+    size_t length;</div><div class='ctx'>     socklen_t alen;</div><div class='ctx'>     union_sockaddr buf;</div><div class='ctx'> };</div><div class='hunk'>@@ -131,10 +114,11 @@ recvfrom_blocking(void *data)</div><div class='ctx'>     struct recvfrom_arg *arg = data;</div><div class='ctx'>     socklen_t len0 = arg-&gt;alen;</div><div class='ctx'>     ssize_t ret;</div><div class='del'>-    ret = recvfrom(arg-&gt;fd, RSTRING_PTR(arg-&gt;str), RSTRING_LEN(arg-&gt;str),</div><div class='add'>+    ret = recvfrom(arg-&gt;fd, RSTRING_PTR(arg-&gt;str), arg-&gt;length,</div><div class='ctx'>                    arg-&gt;flags, &amp;arg-&gt;buf.addr, &amp;arg-&gt;alen);</div><div class='ctx'>     if (ret != -1 &amp;&amp; len0 &lt; arg-&gt;alen)</div><div class='ctx'>         arg-&gt;alen = len0;</div><div class='add'>+</div><div class='ctx'>     return (VALUE)ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -143,16 +127,15 @@ rsock_strbuf(VALUE str, long buflen)</div><div class='ctx'> {</div><div class='ctx'>     long len;</div><div class='ctx'> </div><div class='del'>-    if (NIL_P(str)) return rb_tainted_str_new(0, buflen);</div><div class='add'>+    if (NIL_P(str)) return rb_str_new(0, buflen);</div><div class='ctx'> </div><div class='ctx'>     StringValue(str);</div><div class='ctx'>     len = RSTRING_LEN(str);</div><div class='ctx'>     if (len &gt;= buflen) {</div><div class='del'>-	rb_str_modify(str);</div><div class='add'>+        rb_str_modify(str);</div><div class='ctx'>     } else {</div><div class='del'>-	rb_str_modify_expand(str, buflen - len);</div><div class='add'>+        rb_str_modify_expand(str, buflen - len);</div><div class='ctx'>     }</div><div class='del'>-    rb_str_set_len(str, buflen);</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -165,7 +148,7 @@ recvfrom_locktmp(VALUE v)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rsock_s_recvfrom(VALUE sock, int argc, VALUE *argv, enum sock_recv_type from)</div><div class='add'>+rsock_s_recvfrom(VALUE socket, int argc, VALUE *argv, enum sock_recv_type from)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     VALUE str;</div><div class='hunk'>@@ -176,60 +159,70 @@ rsock_s_recvfrom(VALUE sock, int argc, VALUE *argv, enum sock_recv_type from)</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "12", &amp;len, &amp;flg, &amp;str);</div><div class='ctx'> </div><div class='del'>-    if (flg == Qnil) arg.flags = 0;</div><div class='del'>-    else             arg.flags = NUM2INT(flg);</div><div class='add'>+    if (flg == Qnil)</div><div class='add'>+        arg.flags = 0;</div><div class='add'>+    else</div><div class='add'>+        arg.flags = NUM2INT(flg);</div><div class='add'>+</div><div class='ctx'>     buflen = NUM2INT(len);</div><div class='ctx'>     str = rsock_strbuf(str, buflen);</div><div class='ctx'> </div><div class='del'>-    GetOpenFile(sock, fptr);</div><div class='add'>+    RB_IO_POINTER(socket, fptr);</div><div class='add'>+</div><div class='ctx'>     if (rb_io_read_pending(fptr)) {</div><div class='del'>-	rb_raise(rb_eIOError, "recv for buffered IO");</div><div class='add'>+        rb_raise(rb_eIOError, "recv for buffered IO");</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     arg.fd = fptr-&gt;fd;</div><div class='ctx'>     arg.alen = (socklen_t)sizeof(arg.buf);</div><div class='ctx'>     arg.str = str;</div><div class='add'>+    arg.length = buflen;</div><div class='add'>+</div><div class='add'>+    while (true) {</div><div class='add'>+        rb_io_check_closed(fptr);</div><div class='add'>+</div><div class='add'>+#ifdef RSOCK_WAIT_BEFORE_BLOCKING</div><div class='add'>+        rb_io_wait(fptr-&gt;self, RB_INT2NUM(RUBY_IO_READABLE), Qnil);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        slen = (long)rb_str_locktmp_ensure(str, recvfrom_locktmp, (VALUE)&amp;arg);</div><div class='add'>+</div><div class='add'>+        if (slen &gt;= 0) break;</div><div class='ctx'> </div><div class='del'>-    while (rb_io_check_closed(fptr),</div><div class='del'>-	   rsock_maybe_wait_fd(arg.fd),</div><div class='del'>-	   (slen = (long)rb_str_locktmp_ensure(str, recvfrom_locktmp,</div><div class='del'>-	                                       (VALUE)&amp;arg)) &lt; 0) {</div><div class='del'>-        if (!rb_io_wait_readable(fptr-&gt;fd)) {</div><div class='add'>+        if (!rb_io_maybe_wait_readable(errno, socket, RUBY_IO_TIMEOUT_DEFAULT))</div><div class='ctx'>             rb_sys_fail("recvfrom(2)");</div><div class='del'>-        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (slen != RSTRING_LEN(str)) {</div><div class='del'>-	rb_str_set_len(str, slen);</div><div class='del'>-    }</div><div class='del'>-    rb_obj_taint(str);</div><div class='add'>+    /* Resize the string to the amount of data received */</div><div class='add'>+    rb_str_set_len(str, slen);</div><div class='ctx'>     switch (from) {</div><div class='ctx'>       case RECV_RECV:</div><div class='del'>-	return str;</div><div class='add'>+        return str;</div><div class='ctx'>       case RECV_IP:</div><div class='ctx'> #if 0</div><div class='del'>-	if (arg.alen != sizeof(struct sockaddr_in)) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "sockaddr size differs - should not happen");</div><div class='del'>-	}</div><div class='add'>+        if (arg.alen != sizeof(struct sockaddr_in)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "sockaddr size differs - should not happen");</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='del'>-	if (arg.alen &amp;&amp; arg.alen != sizeof(arg.buf)) /* OSX doesn't return a from result for connection-oriented sockets */</div><div class='del'>-	    return rb_assoc_new(str, rsock_ipaddr(&amp;arg.buf.addr, arg.alen, fptr-&gt;mode &amp; FMODE_NOREVLOOKUP));</div><div class='del'>-	else</div><div class='del'>-	    return rb_assoc_new(str, Qnil);</div><div class='add'>+        if (arg.alen &amp;&amp; arg.alen != sizeof(arg.buf)) /* OSX doesn't return a from result for connection-oriented sockets */</div><div class='add'>+            return rb_assoc_new(str, rsock_ipaddr(&amp;arg.buf.addr, arg.alen, fptr-&gt;mode &amp; FMODE_NOREVLOOKUP));</div><div class='add'>+        else</div><div class='add'>+            return rb_assoc_new(str, Qnil);</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>       case RECV_UNIX:</div><div class='ctx'>         return rb_assoc_new(str, rsock_unixaddr(&amp;arg.buf.un, arg.alen));</div><div class='ctx'> #endif</div><div class='ctx'>       case RECV_SOCKET:</div><div class='del'>-	return rb_assoc_new(str, rsock_io_socket_addrinfo(sock, &amp;arg.buf.addr, arg.alen));</div><div class='add'>+        return rb_assoc_new(str, rsock_io_socket_addrinfo(socket, &amp;arg.buf.addr, arg.alen));</div><div class='ctx'>       default:</div><div class='del'>-	rb_bug("rsock_s_recvfrom called with bad value");</div><div class='add'>+        rb_bug("rsock_s_recvfrom called with bad value");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rsock_s_recvfrom_nonblock(VALUE sock, VALUE len, VALUE flg, VALUE str,</div><div class='del'>-			  VALUE ex, enum sock_recv_type from)</div><div class='add'>+                          VALUE ex, enum sock_recv_type from)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     union_sockaddr buf;</div><div class='hunk'>@@ -252,14 +245,14 @@ rsock_s_recvfrom_nonblock(VALUE sock, VALUE len, VALUE flg, VALUE str,</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     if (rb_io_read_pending(fptr)) {</div><div class='del'>-	rb_raise(rb_eIOError, "recvfrom for buffered IO");</div><div class='add'>+        rb_raise(rb_eIOError, "recvfrom for buffered IO");</div><div class='ctx'>     }</div><div class='ctx'>     fd = fptr-&gt;fd;</div><div class='ctx'> </div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='ctx'> </div><div class='ctx'>     if (!MSG_DONTWAIT_RELIABLE)</div><div class='del'>-	rb_io_set_nonblock(fptr);</div><div class='add'>+        rb_io_set_nonblock(fptr);</div><div class='ctx'> </div><div class='ctx'>     len0 = alen;</div><div class='ctx'>     slen = recvfrom(fd, RSTRING_PTR(str), buflen, flags, &amp;buf.addr, &amp;alen);</div><div class='hunk'>@@ -267,22 +260,21 @@ rsock_s_recvfrom_nonblock(VALUE sock, VALUE len, VALUE flg, VALUE str,</div><div class='ctx'>         alen = len0;</div><div class='ctx'> </div><div class='ctx'>     if (slen &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	switch (e) {</div><div class='del'>-	  case EAGAIN:</div><div class='add'>+        int e = errno;</div><div class='add'>+        switch (e) {</div><div class='add'>+          case EAGAIN:</div><div class='ctx'> #if defined(EWOULDBLOCK) &amp;&amp; EWOULDBLOCK != EAGAIN</div><div class='del'>-	  case EWOULDBLOCK:</div><div class='add'>+          case EWOULDBLOCK:</div><div class='ctx'> #endif</div><div class='ctx'>             if (ex == Qfalse)</div><div class='del'>-		return sym_wait_readable;</div><div class='add'>+                return sym_wait_readable;</div><div class='ctx'>             rb_readwrite_syserr_fail(RB_IO_WAIT_READABLE, e, "recvfrom(2) would block");</div><div class='del'>-	}</div><div class='del'>-	rb_syserr_fail(e, "recvfrom(2)");</div><div class='add'>+        }</div><div class='add'>+        rb_syserr_fail(e, "recvfrom(2)");</div><div class='ctx'>     }</div><div class='ctx'>     if (slen != RSTRING_LEN(str)) {</div><div class='del'>-	rb_str_set_len(str, slen);</div><div class='add'>+        rb_str_set_len(str, slen);</div><div class='ctx'>     }</div><div class='del'>-    rb_obj_taint(str);</div><div class='ctx'>     switch (from) {</div><div class='ctx'>       case RECV_RECV:</div><div class='ctx'>         return str;</div><div class='hunk'>@@ -329,37 +321,34 @@ rsock_read_nonblock(VALUE sock, VALUE length, VALUE buf, VALUE ex)</div><div class='ctx'>     VALUE str = rsock_strbuf(buf, len);</div><div class='ctx'>     char *ptr;</div><div class='ctx'> </div><div class='del'>-    OBJ_TAINT(str);</div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'> </div><div class='ctx'>     if (len == 0) {</div><div class='del'>-	return str;</div><div class='add'>+        rb_str_set_len(str, 0);</div><div class='add'>+        return str;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ptr = RSTRING_PTR(str);</div><div class='ctx'>     n = read_buffered_data(ptr, len, fptr);</div><div class='ctx'>     if (n &lt;= 0) {</div><div class='del'>-	n = (long)recv(fptr-&gt;fd, ptr, len, MSG_DONTWAIT);</div><div class='del'>-	if (n &lt; 0) {</div><div class='del'>-	    int e = errno;</div><div class='del'>-	    if ((e == EWOULDBLOCK || e == EAGAIN)) {</div><div class='del'>-		if (ex == Qfalse) return sym_wait_readable;</div><div class='del'>-		rb_readwrite_syserr_fail(RB_IO_WAIT_READABLE,</div><div class='del'>-					 e, "read would block");</div><div class='del'>-	    }</div><div class='del'>-	    rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='del'>-	}</div><div class='add'>+        n = (long)recv(fptr-&gt;fd, ptr, len, MSG_DONTWAIT);</div><div class='add'>+        if (n &lt; 0) {</div><div class='add'>+            int e = errno;</div><div class='add'>+            if ((e == EWOULDBLOCK || e == EAGAIN)) {</div><div class='add'>+                if (ex == Qfalse) return sym_wait_readable;</div><div class='add'>+                rb_readwrite_syserr_fail(RB_IO_WAIT_READABLE,</div><div class='add'>+                                         e, "read would block");</div><div class='add'>+            }</div><div class='add'>+            rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    if (len != n) {</div><div class='del'>-	rb_str_modify(str);</div><div class='del'>-	rb_str_set_len(str, n);</div><div class='del'>-	if (str != buf) {</div><div class='del'>-	    rb_str_resize(str, n);</div><div class='del'>-	}</div><div class='add'>+    if (n != RSTRING_LEN(str)) {</div><div class='add'>+        rb_str_modify(str);</div><div class='add'>+        rb_str_set_len(str, n);</div><div class='ctx'>     }</div><div class='ctx'>     if (n == 0) {</div><div class='del'>-	if (ex == Qfalse) return Qnil;</div><div class='del'>-	rb_eof_error();</div><div class='add'>+        if (ex == Qfalse) return Qnil;</div><div class='add'>+        rb_eof_error();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='hunk'>@@ -373,7 +362,7 @@ rsock_write_nonblock(VALUE sock, VALUE str, VALUE ex)</div><div class='ctx'>     long n;</div><div class='ctx'> </div><div class='ctx'>     if (!RB_TYPE_P(str, T_STRING))</div><div class='del'>-	str = rb_obj_as_string(str);</div><div class='add'>+        str = rb_obj_as_string(str);</div><div class='ctx'> </div><div class='ctx'>     sock = rb_io_get_write_io(sock);</div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='hunk'>@@ -385,7 +374,7 @@ rsock_write_nonblock(VALUE sock, VALUE str, VALUE ex)</div><div class='ctx'>      * are not userspace-buffered in Ruby by default.</div><div class='ctx'>      */</div><div class='ctx'>     if (fptr-&gt;wbuf.len &gt; 0) {</div><div class='del'>-	rb_io_flush(sock);</div><div class='add'>+        rb_io_flush(sock);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> #ifdef __APPLE__</div><div class='hunk'>@@ -393,103 +382,49 @@ rsock_write_nonblock(VALUE sock, VALUE str, VALUE ex)</div><div class='ctx'> #endif</div><div class='ctx'>     n = (long)send(fptr-&gt;fd, RSTRING_PTR(str), RSTRING_LEN(str), MSG_DONTWAIT);</div><div class='ctx'>     if (n &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='add'>+        int e = errno;</div><div class='ctx'> </div><div class='ctx'> #ifdef __APPLE__</div><div class='del'>-	if (e == EPROTOTYPE) {</div><div class='del'>-	    goto again;</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-	if (e == EWOULDBLOCK || e == EAGAIN) {</div><div class='del'>-	    if (ex == Qfalse) return sym_wait_writable;</div><div class='del'>-	    rb_readwrite_syserr_fail(RB_IO_WAIT_WRITABLE, e,</div><div class='del'>-				    "write would block");</div><div class='del'>-	}</div><div class='del'>-	rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='add'>+        if (e == EPROTOTYPE) {</div><div class='add'>+            goto again;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        if (e == EWOULDBLOCK || e == EAGAIN) {</div><div class='add'>+            if (ex == Qfalse) return sym_wait_writable;</div><div class='add'>+            rb_readwrite_syserr_fail(RB_IO_WAIT_WRITABLE, e,</div><div class='add'>+                                    "write would block");</div><div class='add'>+        }</div><div class='add'>+        rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return LONG2FIX(n);</div><div class='ctx'> }</div><div class='ctx'> #endif /* MSG_DONTWAIT_RELIABLE */</div><div class='ctx'> </div><div class='del'>-/* returns true if SOCK_CLOEXEC is supported */</div><div class='del'>-int rsock_detect_cloexec(int fd)</div><div class='add'>+static int</div><div class='add'>+rsock_socket0(int domain, int type, int proto)</div><div class='ctx'> {</div><div class='ctx'> #ifdef SOCK_CLOEXEC</div><div class='del'>-    int flags = fcntl(fd, F_GETFD);</div><div class='del'>-</div><div class='del'>-    if (flags == -1)</div><div class='del'>-	rb_bug("rsock_detect_cloexec: fcntl(%d, F_GETFD) failed: %s", fd, strerror(errno));</div><div class='add'>+    type |= SOCK_CLOEXEC;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    if (flags &amp; FD_CLOEXEC)</div><div class='del'>-	return 1;</div><div class='add'>+#ifdef SOCK_NONBLOCK</div><div class='add'>+    type |= SOCK_NONBLOCK;</div><div class='ctx'> #endif</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='ctx'> </div><div class='del'>-#ifdef SOCK_CLOEXEC</div><div class='del'>-static int</div><div class='del'>-rsock_socket0(int domain, int type, int proto)</div><div class='del'>-{</div><div class='del'>-    int ret;</div><div class='del'>-    static int cloexec_state = -1; /* &lt;0: unknown, 0: ignored, &gt;0: working */</div><div class='del'>-</div><div class='del'>-    if (cloexec_state &gt; 0) { /* common path, if SOCK_CLOEXEC is defined */</div><div class='del'>-        ret = socket(domain, type|SOCK_CLOEXEC|RSOCK_NONBLOCK_DEFAULT, proto);</div><div class='del'>-        if (ret &gt;= 0) {</div><div class='del'>-            if (ret &lt;= 2)</div><div class='del'>-                goto fix_cloexec;</div><div class='del'>-            goto update_max_fd;</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    else if (cloexec_state &lt; 0) { /* usually runs once only for detection */</div><div class='del'>-        ret = socket(domain, type|SOCK_CLOEXEC|RSOCK_NONBLOCK_DEFAULT, proto);</div><div class='del'>-        if (ret &gt;= 0) {</div><div class='del'>-            cloexec_state = rsock_detect_cloexec(ret);</div><div class='del'>-            if (cloexec_state == 0 || ret &lt;= 2)</div><div class='del'>-                goto fix_cloexec;</div><div class='del'>-            goto update_max_fd;</div><div class='del'>-        }</div><div class='del'>-        else if (ret == -1 &amp;&amp; errno == EINVAL) {</div><div class='del'>-            /* SOCK_CLOEXEC is available since Linux 2.6.27.  Linux 2.6.18 fails with EINVAL */</div><div class='del'>-            ret = socket(domain, type, proto);</div><div class='del'>-            if (ret != -1) {</div><div class='del'>-                cloexec_state = 0;</div><div class='del'>-                /* fall through to fix_cloexec */</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    else { /* cloexec_state == 0 */</div><div class='del'>-        ret = socket(domain, type, proto);</div><div class='del'>-    }</div><div class='del'>-    if (ret == -1)</div><div class='add'>+    int result = socket(domain, type, proto);</div><div class='add'>+</div><div class='add'>+    if (result == -1)</div><div class='ctx'>         return -1;</div><div class='del'>-fix_cloexec:</div><div class='del'>-    rb_maygvl_fd_fix_cloexec(ret);</div><div class='del'>-    if (RSOCK_NONBLOCK_DEFAULT) {</div><div class='del'>-        rsock_make_fd_nonblock(ret);</div><div class='del'>-    }</div><div class='del'>-update_max_fd:</div><div class='del'>-    rb_update_max_fd(ret);</div><div class='ctx'> </div><div class='del'>-    return ret;</div><div class='del'>-}</div><div class='del'>-#else /* !SOCK_CLOEXEC */</div><div class='del'>-static int</div><div class='del'>-rsock_socket0(int domain, int type, int proto)</div><div class='del'>-{</div><div class='del'>-    int ret = socket(domain, type, proto);</div><div class='add'>+    rb_fd_fix_cloexec(result);</div><div class='ctx'> </div><div class='del'>-    if (ret == -1)</div><div class='del'>-        return -1;</div><div class='del'>-    rb_fd_fix_cloexec(ret);</div><div class='del'>-    if (RSOCK_NONBLOCK_DEFAULT) {</div><div class='del'>-        rsock_make_fd_nonblock(ret);</div><div class='del'>-    }</div><div class='add'>+#ifndef SOCK_NONBLOCK</div><div class='add'>+    rsock_make_fd_nonblock(result);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    return ret;</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='del'>-#endif /* !SOCK_CLOEXEC */</div><div class='ctx'> </div><div class='ctx'> int</div><div class='ctx'> rsock_socket(int domain, int type, int proto)</div><div class='hunk'>@@ -509,7 +444,7 @@ rsock_socket(int domain, int type, int proto)</div><div class='ctx'> </div><div class='ctx'> /* emulate blocking connect behavior on EINTR or non-blocking socket */</div><div class='ctx'> static int</div><div class='del'>-wait_connectable(int fd)</div><div class='add'>+wait_connectable(int fd, struct timeval *timeout)</div><div class='ctx'> {</div><div class='ctx'>     int sockerr, revents;</div><div class='ctx'>     socklen_t sockerrlen;</div><div class='hunk'>@@ -546,7 +481,7 @@ wait_connectable(int fd)</div><div class='ctx'>      *</div><div class='ctx'>      * Note: rb_wait_for_single_fd already retries on EINTR/ERESTART</div><div class='ctx'>      */</div><div class='del'>-    revents = rb_wait_for_single_fd(fd, RB_WAITFD_IN|RB_WAITFD_OUT, NULL);</div><div class='add'>+    revents = rb_wait_for_single_fd(fd, RB_WAITFD_IN|RB_WAITFD_OUT, timeout);</div><div class='ctx'> </div><div class='ctx'>     if (revents &lt; 0)</div><div class='ctx'>         return -1;</div><div class='hunk'>@@ -561,6 +496,12 @@ wait_connectable(int fd)</div><div class='ctx'>        * be defensive in case some platforms set SO_ERROR on the original,</div><div class='ctx'>        * interrupted connect()</div><div class='ctx'>        */</div><div class='add'>+</div><div class='add'>+        /* when the connection timed out, no errno is set and revents is 0. */</div><div class='add'>+        if (timeout &amp;&amp; revents == 0) {</div><div class='add'>+            errno = ETIMEDOUT;</div><div class='add'>+            return -1;</div><div class='add'>+        }</div><div class='ctx'>       case EINTR:</div><div class='ctx'> #ifdef ERESTART</div><div class='ctx'>       case ERESTART:</div><div class='hunk'>@@ -575,7 +516,7 @@ wait_connectable(int fd)</div><div class='ctx'> #ifdef EISCONN</div><div class='ctx'>       case EISCONN:</div><div class='ctx'> #endif</div><div class='del'>-	return 0; /* success */</div><div class='add'>+        return 0; /* success */</div><div class='ctx'>       default:</div><div class='ctx'>         /* likely (but not limited to): ECONNREFUSED, ETIMEDOUT, EHOSTUNREACH */</div><div class='ctx'>         errno = sockerr;</div><div class='hunk'>@@ -608,7 +549,7 @@ socks_connect_blocking(void *data)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> int</div><div class='del'>-rsock_connect(int fd, const struct sockaddr *sockaddr, int len, int socks)</div><div class='add'>+rsock_connect(int fd, const struct sockaddr *sockaddr, int len, int socks, struct timeval *timeout)</div><div class='ctx'> {</div><div class='ctx'>     int status;</div><div class='ctx'>     rb_blocking_function_t *func = connect_blocking;</div><div class='hunk'>@@ -632,7 +573,7 @@ rsock_connect(int fd, const struct sockaddr *sockaddr, int len, int socks)</div><div class='ctx'> #ifdef EINPROGRESS</div><div class='ctx'>           case EINPROGRESS:</div><div class='ctx'> #endif</div><div class='del'>-            return wait_connectable(fd);</div><div class='add'>+            return wait_connectable(fd, timeout);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     return status;</div><div class='hunk'>@@ -641,6 +582,10 @@ rsock_connect(int fd, const struct sockaddr *sockaddr, int len, int socks)</div><div class='ctx'> void</div><div class='ctx'> rsock_make_fd_nonblock(int fd)</div><div class='ctx'> {</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    return;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     int flags;</div><div class='ctx'> #ifdef F_GETFL</div><div class='ctx'>     flags = fcntl(fd, F_GETFL);</div><div class='hunk'>@@ -657,81 +602,59 @@ rsock_make_fd_nonblock(int fd)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-cloexec_accept(int socket, struct sockaddr *address, socklen_t *address_len,</div><div class='del'>-	       int nonblock)</div><div class='add'>+cloexec_accept(int socket, struct sockaddr *address, socklen_t *address_len)</div><div class='ctx'> {</div><div class='del'>-    int ret;</div><div class='ctx'>     socklen_t len0 = 0;</div><div class='del'>-#ifdef HAVE_ACCEPT4</div><div class='del'>-    static int try_accept4 = 1;</div><div class='del'>-#endif</div><div class='del'>-    if (RSOCK_NONBLOCK_DEFAULT) {</div><div class='del'>-        nonblock = 1;</div><div class='del'>-    }</div><div class='ctx'>     if (address_len) len0 = *address_len;</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_ACCEPT4</div><div class='del'>-    if (try_accept4) {</div><div class='del'>-        int flags = 0;</div><div class='del'>-#ifdef SOCK_CLOEXEC</div><div class='del'>-        flags |= SOCK_CLOEXEC;</div><div class='del'>-#endif</div><div class='add'>+    int flags = SOCK_CLOEXEC;</div><div class='add'>+</div><div class='ctx'> #ifdef SOCK_NONBLOCK</div><div class='del'>-        if (nonblock) {</div><div class='del'>-            flags |= SOCK_NONBLOCK;</div><div class='del'>-        }</div><div class='add'>+    flags |= SOCK_NONBLOCK;</div><div class='ctx'> #endif</div><div class='del'>-        ret = accept4(socket, address, address_len, flags);</div><div class='del'>-        /* accept4 is available since Linux 2.6.28, glibc 2.10. */</div><div class='del'>-        if (ret != -1) {</div><div class='del'>-            if (ret &lt;= 2)</div><div class='del'>-                rb_maygvl_fd_fix_cloexec(ret);</div><div class='add'>+</div><div class='add'>+    int result = accept4(socket, address, address_len, flags);</div><div class='add'>+    if (result == -1) return -1;</div><div class='add'>+</div><div class='ctx'> #ifndef SOCK_NONBLOCK</div><div class='del'>-            if (nonblock) {</div><div class='del'>-                rsock_make_fd_nonblock(ret);</div><div class='del'>-            }</div><div class='add'>+    rsock_make_fd_nonblock(result);</div><div class='ctx'> #endif</div><div class='del'>-            if (address_len &amp;&amp; len0 &lt; *address_len) *address_len = len0;</div><div class='del'>-            return ret;</div><div class='del'>-        }</div><div class='del'>-        if (errno != ENOSYS) {</div><div class='del'>-            return -1;</div><div class='del'>-        }</div><div class='del'>-        try_accept4 = 0;</div><div class='del'>-    }</div><div class='add'>+#else</div><div class='add'>+    int result = accept(socket, address, address_len);</div><div class='add'>+    if (result == -1) return -1;</div><div class='add'>+</div><div class='add'>+    rb_maygvl_fd_fix_cloexec(result);</div><div class='add'>+    rsock_make_fd_nonblock(result);</div><div class='ctx'> #endif</div><div class='del'>-    ret = accept(socket, address, address_len);</div><div class='del'>-    if (ret == -1) return -1;</div><div class='add'>+</div><div class='ctx'>     if (address_len &amp;&amp; len0 &lt; *address_len) *address_len = len0;</div><div class='del'>-    rb_maygvl_fd_fix_cloexec(ret);</div><div class='del'>-    if (nonblock) {</div><div class='del'>-        rsock_make_fd_nonblock(ret);</div><div class='del'>-    }</div><div class='del'>-    return ret;</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rsock_s_accept_nonblock(VALUE klass, VALUE ex, rb_io_t *fptr,</div><div class='del'>-			struct sockaddr *sockaddr, socklen_t *len)</div><div class='add'>+                        struct sockaddr *sockaddr, socklen_t *len)</div><div class='ctx'> {</div><div class='ctx'>     int fd2;</div><div class='ctx'> </div><div class='ctx'>     rb_io_set_nonblock(fptr);</div><div class='del'>-    fd2 = cloexec_accept(fptr-&gt;fd, (struct sockaddr*)sockaddr, len, 1);</div><div class='add'>+    fd2 = cloexec_accept(fptr-&gt;fd, (struct sockaddr*)sockaddr, len);</div><div class='ctx'>     if (fd2 &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	switch (e) {</div><div class='del'>-	  case EAGAIN:</div><div class='add'>+        int e = errno;</div><div class='add'>+        switch (e) {</div><div class='add'>+          case EAGAIN:</div><div class='ctx'> #if defined(EWOULDBLOCK) &amp;&amp; EWOULDBLOCK != EAGAIN</div><div class='del'>-	  case EWOULDBLOCK:</div><div class='add'>+          case EWOULDBLOCK:</div><div class='ctx'> #endif</div><div class='del'>-	  case ECONNABORTED:</div><div class='add'>+          case ECONNABORTED:</div><div class='ctx'> #if defined EPROTO</div><div class='del'>-	  case EPROTO:</div><div class='add'>+          case EPROTO:</div><div class='ctx'> #endif</div><div class='ctx'>             if (ex == Qfalse)</div><div class='del'>-		return sym_wait_readable;</div><div class='add'>+                return sym_wait_readable;</div><div class='ctx'>             rb_readwrite_syserr_fail(RB_IO_WAIT_READABLE, e, "accept(2) would block");</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>         rb_syserr_fail(e, "accept(2)");</div><div class='ctx'>     }</div><div class='ctx'>     rb_update_max_fd(fd2);</div><div class='hunk'>@@ -748,42 +671,53 @@ static VALUE</div><div class='ctx'> accept_blocking(void *data)</div><div class='ctx'> {</div><div class='ctx'>     struct accept_arg *arg = data;</div><div class='del'>-    return (VALUE)cloexec_accept(arg-&gt;fd, arg-&gt;sockaddr, arg-&gt;len, 0);</div><div class='add'>+    return (VALUE)cloexec_accept(arg-&gt;fd, arg-&gt;sockaddr, arg-&gt;len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rsock_s_accept(VALUE klass, int fd, struct sockaddr *sockaddr, socklen_t *len)</div><div class='add'>+rsock_s_accept(VALUE klass, VALUE io, struct sockaddr *sockaddr, socklen_t *len)</div><div class='ctx'> {</div><div class='del'>-    int fd2;</div><div class='del'>-    int retry = 0;</div><div class='del'>-    struct accept_arg arg;</div><div class='add'>+    rb_io_t *fptr = NULL;</div><div class='add'>+    RB_IO_POINTER(io, fptr);</div><div class='add'>+</div><div class='add'>+    struct accept_arg accept_arg = {</div><div class='add'>+      .fd = fptr-&gt;fd,</div><div class='add'>+      .sockaddr = sockaddr,</div><div class='add'>+      .len = len</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    int retry = 0, peer;</div><div class='ctx'> </div><div class='del'>-    arg.fd = fd;</div><div class='del'>-    arg.sockaddr = sockaddr;</div><div class='del'>-    arg.len = len;</div><div class='ctx'>   retry:</div><div class='del'>-    rsock_maybe_wait_fd(fd);</div><div class='del'>-    fd2 = (int)BLOCKING_REGION_FD(accept_blocking, &amp;arg);</div><div class='del'>-    if (fd2 &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	switch (e) {</div><div class='del'>-	  case EMFILE:</div><div class='del'>-	  case ENFILE:</div><div class='del'>-	  case ENOMEM:</div><div class='del'>-	    if (retry) break;</div><div class='del'>-	    rb_gc();</div><div class='del'>-	    retry = 1;</div><div class='del'>-	    goto retry;</div><div class='del'>-	  default:</div><div class='del'>-	    if (!rb_io_wait_readable(fd)) break;</div><div class='del'>-	    retry = 0;</div><div class='del'>-	    goto retry;</div><div class='del'>-	}</div><div class='del'>-	rb_syserr_fail(e, "accept(2)");</div><div class='add'>+#ifdef RSOCK_WAIT_BEFORE_BLOCKING</div><div class='add'>+    rb_io_wait(fptr-&gt;self, RB_INT2NUM(RUBY_IO_READABLE), Qnil);</div><div class='add'>+#endif</div><div class='add'>+    peer = (int)BLOCKING_REGION_FD(accept_blocking, &amp;accept_arg);</div><div class='add'>+    if (peer &lt; 0) {</div><div class='add'>+        int error = errno;</div><div class='add'>+</div><div class='add'>+        switch (error) {</div><div class='add'>+          case EMFILE:</div><div class='add'>+          case ENFILE:</div><div class='add'>+          case ENOMEM:</div><div class='add'>+            if (retry) break;</div><div class='add'>+            rb_gc();</div><div class='add'>+            retry = 1;</div><div class='add'>+            goto retry;</div><div class='add'>+          default:</div><div class='add'>+            if (!rb_io_maybe_wait_readable(error, io, RUBY_IO_TIMEOUT_DEFAULT)) break;</div><div class='add'>+            retry = 0;</div><div class='add'>+            goto retry;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        rb_syserr_fail(error, "accept(2)");</div><div class='ctx'>     }</div><div class='del'>-    rb_update_max_fd(fd2);</div><div class='del'>-    if (!klass) return INT2NUM(fd2);</div><div class='del'>-    return rsock_init_sock(rb_obj_alloc(klass), fd2);</div><div class='add'>+</div><div class='add'>+    rb_update_max_fd(peer);</div><div class='add'>+</div><div class='add'>+    if (!klass) return INT2NUM(peer);</div><div class='add'>+</div><div class='add'>+    return rsock_init_sock(rb_obj_alloc(klass), peer);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='hunk'>@@ -796,11 +730,11 @@ rsock_getfamily(rb_io_t *fptr)</div><div class='ctx'>     if (cached) {</div><div class='ctx'>         switch (cached) {</div><div class='ctx'> #ifdef AF_UNIX</div><div class='del'>-	    case FMODE_UNIX: return AF_UNIX;</div><div class='add'>+            case FMODE_UNIX: return AF_UNIX;</div><div class='ctx'> #endif</div><div class='del'>-	    case FMODE_INET: return AF_INET;</div><div class='del'>-	    case FMODE_INET6: return AF_INET6;</div><div class='del'>-	}</div><div class='add'>+            case FMODE_INET: return AF_INET;</div><div class='add'>+            case FMODE_INET6: return AF_INET6;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ss.addr.sa_family = AF_UNSPEC;</div><div class='head'>diff --git a/ext/socket/ipsocket.c b/ext/socket/ipsocket.c<br/>index dadf10f6a5..0c13620258 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/ipsocket.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/ipsocket.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/ipsocket.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/ipsocket.c</a></div><div class='hunk'>@@ -14,57 +14,71 @@ struct inetsock_arg</div><div class='ctx'> {</div><div class='ctx'>     VALUE sock;</div><div class='ctx'>     struct {</div><div class='del'>-	VALUE host, serv;</div><div class='del'>-	struct rb_addrinfo *res;</div><div class='add'>+        VALUE host, serv;</div><div class='add'>+        struct rb_addrinfo *res;</div><div class='ctx'>     } remote, local;</div><div class='ctx'>     int type;</div><div class='ctx'>     int fd;</div><div class='add'>+    VALUE resolv_timeout;</div><div class='add'>+    VALUE connect_timeout;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-inetsock_cleanup(struct inetsock_arg *arg)</div><div class='add'>+inetsock_cleanup(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct inetsock_arg *arg = (void *)v;</div><div class='ctx'>     if (arg-&gt;remote.res) {</div><div class='del'>-	rb_freeaddrinfo(arg-&gt;remote.res);</div><div class='del'>-	arg-&gt;remote.res = 0;</div><div class='add'>+        rb_freeaddrinfo(arg-&gt;remote.res);</div><div class='add'>+        arg-&gt;remote.res = 0;</div><div class='ctx'>     }</div><div class='ctx'>     if (arg-&gt;local.res) {</div><div class='del'>-	rb_freeaddrinfo(arg-&gt;local.res);</div><div class='del'>-	arg-&gt;local.res = 0;</div><div class='add'>+        rb_freeaddrinfo(arg-&gt;local.res);</div><div class='add'>+        arg-&gt;local.res = 0;</div><div class='ctx'>     }</div><div class='ctx'>     if (arg-&gt;fd &gt;= 0) {</div><div class='del'>-	close(arg-&gt;fd);</div><div class='add'>+        close(arg-&gt;fd);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-init_inetsock_internal(struct inetsock_arg *arg)</div><div class='add'>+init_inetsock_internal(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct inetsock_arg *arg = (void *)v;</div><div class='ctx'>     int error = 0;</div><div class='ctx'>     int type = arg-&gt;type;</div><div class='ctx'>     struct addrinfo *res, *lres;</div><div class='ctx'>     int fd, status = 0, local = 0;</div><div class='ctx'>     int family = AF_UNSPEC;</div><div class='ctx'>     const char *syscall = 0;</div><div class='add'>+    VALUE connect_timeout = arg-&gt;connect_timeout;</div><div class='add'>+    struct timeval tv_storage;</div><div class='add'>+    struct timeval *tv = NULL;</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(connect_timeout)) {</div><div class='add'>+        tv_storage = rb_time_interval(connect_timeout);</div><div class='add'>+        tv = &amp;tv_storage;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     arg-&gt;remote.res = rsock_addrinfo(arg-&gt;remote.host, arg-&gt;remote.serv,</div><div class='del'>-				     family, SOCK_STREAM,</div><div class='del'>-				     (type == INET_SERVER) ? AI_PASSIVE : 0);</div><div class='add'>+                                     family, SOCK_STREAM,</div><div class='add'>+                                     (type == INET_SERVER) ? AI_PASSIVE : 0);</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'>     /*</div><div class='ctx'>      * Maybe also accept a local address</div><div class='ctx'>      */</div><div class='ctx'> </div><div class='ctx'>     if (type != INET_SERVER &amp;&amp; (!NIL_P(arg-&gt;local.host) || !NIL_P(arg-&gt;local.serv))) {</div><div class='del'>-	arg-&gt;local.res = rsock_addrinfo(arg-&gt;local.host, arg-&gt;local.serv,</div><div class='del'>-					family, SOCK_STREAM, 0);</div><div class='add'>+        arg-&gt;local.res = rsock_addrinfo(arg-&gt;local.host, arg-&gt;local.serv,</div><div class='add'>+                                        family, SOCK_STREAM, 0);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     arg-&gt;fd = fd = -1;</div><div class='ctx'>     for (res = arg-&gt;remote.res-&gt;ai; res; res = res-&gt;ai_next) {</div><div class='ctx'> #if !defined(INET6) &amp;&amp; defined(AF_INET6)</div><div class='del'>-	if (res-&gt;ai_family == AF_INET6)</div><div class='del'>-	    continue;</div><div class='add'>+        if (res-&gt;ai_family == AF_INET6)</div><div class='add'>+            continue;</div><div class='ctx'> #endif</div><div class='ctx'>         lres = NULL;</div><div class='ctx'>         if (arg-&gt;local.res) {</div><div class='hunk'>@@ -80,68 +94,73 @@ init_inetsock_internal(struct inetsock_arg *arg)</div><div class='ctx'>                 lres = arg-&gt;local.res-&gt;ai;</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='del'>-	status = rsock_socket(res-&gt;ai_family,res-&gt;ai_socktype,res-&gt;ai_protocol);</div><div class='del'>-	syscall = "socket(2)";</div><div class='del'>-	fd = status;</div><div class='del'>-	if (fd &lt; 0) {</div><div class='del'>-	    error = errno;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	arg-&gt;fd = fd;</div><div class='del'>-	if (type == INET_SERVER) {</div><div class='add'>+        status = rsock_socket(res-&gt;ai_family,res-&gt;ai_socktype,res-&gt;ai_protocol);</div><div class='add'>+        syscall = "socket(2)";</div><div class='add'>+        fd = status;</div><div class='add'>+        if (fd &lt; 0) {</div><div class='add'>+            error = errno;</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        arg-&gt;fd = fd;</div><div class='add'>+        if (type == INET_SERVER) {</div><div class='ctx'> #if !defined(_WIN32) &amp;&amp; !defined(__CYGWIN__)</div><div class='del'>-	    status = 1;</div><div class='del'>-	    setsockopt(fd, SOL_SOCKET, SO_REUSEADDR,</div><div class='del'>-		       (char*)&amp;status, (socklen_t)sizeof(status));</div><div class='add'>+            status = 1;</div><div class='add'>+            setsockopt(fd, SOL_SOCKET, SO_REUSEADDR,</div><div class='add'>+                       (char*)&amp;status, (socklen_t)sizeof(status));</div><div class='ctx'> #endif</div><div class='del'>-	    status = bind(fd, res-&gt;ai_addr, res-&gt;ai_addrlen);</div><div class='del'>-	    syscall = "bind(2)";</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (lres) {</div><div class='del'>-		status = bind(fd, lres-&gt;ai_addr, lres-&gt;ai_addrlen);</div><div class='del'>-		local = status;</div><div class='del'>-		syscall = "bind(2)";</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (status &gt;= 0) {</div><div class='del'>-		status = rsock_connect(fd, res-&gt;ai_addr, res-&gt;ai_addrlen,</div><div class='del'>-				       (type == INET_SOCKS));</div><div class='del'>-		syscall = "connect(2)";</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (status &lt; 0) {</div><div class='del'>-	    error = errno;</div><div class='del'>-	    close(fd);</div><div class='del'>-	    arg-&gt;fd = fd = -1;</div><div class='del'>-	    continue;</div><div class='del'>-	} else</div><div class='del'>-	    break;</div><div class='add'>+            status = bind(fd, res-&gt;ai_addr, res-&gt;ai_addrlen);</div><div class='add'>+            syscall = "bind(2)";</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (lres) {</div><div class='add'>+#if !defined(_WIN32) &amp;&amp; !defined(__CYGWIN__)</div><div class='add'>+                status = 1;</div><div class='add'>+                setsockopt(fd, SOL_SOCKET, SO_REUSEADDR,</div><div class='add'>+                           (char*)&amp;status, (socklen_t)sizeof(status));</div><div class='add'>+#endif</div><div class='add'>+                status = bind(fd, lres-&gt;ai_addr, lres-&gt;ai_addrlen);</div><div class='add'>+                local = status;</div><div class='add'>+                syscall = "bind(2)";</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (status &gt;= 0) {</div><div class='add'>+                status = rsock_connect(fd, res-&gt;ai_addr, res-&gt;ai_addrlen,</div><div class='add'>+                                       (type == INET_SOCKS), tv);</div><div class='add'>+                syscall = "connect(2)";</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (status &lt; 0) {</div><div class='add'>+            error = errno;</div><div class='add'>+            close(fd);</div><div class='add'>+            arg-&gt;fd = fd = -1;</div><div class='add'>+            continue;</div><div class='add'>+        } else</div><div class='add'>+            break;</div><div class='ctx'>     }</div><div class='ctx'>     if (status &lt; 0) {</div><div class='del'>-	VALUE host, port;</div><div class='del'>-</div><div class='del'>-	if (local &lt; 0) {</div><div class='del'>-	    host = arg-&gt;local.host;</div><div class='del'>-	    port = arg-&gt;local.serv;</div><div class='del'>-	} else {</div><div class='del'>-	    host = arg-&gt;remote.host;</div><div class='del'>-	    port = arg-&gt;remote.serv;</div><div class='del'>-	}</div><div class='add'>+        VALUE host, port;</div><div class='add'>+</div><div class='add'>+        if (local &lt; 0) {</div><div class='add'>+            host = arg-&gt;local.host;</div><div class='add'>+            port = arg-&gt;local.serv;</div><div class='add'>+        } else {</div><div class='add'>+            host = arg-&gt;remote.host;</div><div class='add'>+            port = arg-&gt;remote.serv;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	rsock_syserr_fail_host_port(error, syscall, host, port);</div><div class='add'>+        rsock_syserr_fail_host_port(error, syscall, host, port);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     arg-&gt;fd = -1;</div><div class='ctx'> </div><div class='ctx'>     if (type == INET_SERVER) {</div><div class='del'>-	status = listen(fd, SOMAXCONN);</div><div class='del'>-	if (status &lt; 0) {</div><div class='del'>-	    error = errno;</div><div class='del'>-	    close(fd);</div><div class='del'>-	    rb_syserr_fail(error, "listen(2)");</div><div class='del'>-	}</div><div class='add'>+        status = listen(fd, SOMAXCONN);</div><div class='add'>+        if (status &lt; 0) {</div><div class='add'>+            error = errno;</div><div class='add'>+            close(fd);</div><div class='add'>+            rb_syserr_fail(error, "listen(2)");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* create new instance */</div><div class='hunk'>@@ -150,7 +169,8 @@ init_inetsock_internal(struct inetsock_arg *arg)</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rsock_init_inetsock(VALUE sock, VALUE remote_host, VALUE remote_serv,</div><div class='del'>-	            VALUE local_host, VALUE local_serv, int type)</div><div class='add'>+                    VALUE local_host, VALUE local_serv, int type,</div><div class='add'>+                    VALUE resolv_timeout, VALUE connect_timeout)</div><div class='ctx'> {</div><div class='ctx'>     struct inetsock_arg arg;</div><div class='ctx'>     arg.sock = sock;</div><div class='hunk'>@@ -162,8 +182,10 @@ rsock_init_inetsock(VALUE sock, VALUE remote_host, VALUE remote_serv,</div><div class='ctx'>     arg.local.res = 0;</div><div class='ctx'>     arg.type = type;</div><div class='ctx'>     arg.fd = -1;</div><div class='add'>+    arg.resolv_timeout = resolv_timeout;</div><div class='add'>+    arg.connect_timeout = connect_timeout;</div><div class='ctx'>     return rb_ensure(init_inetsock_internal, (VALUE)&amp;arg,</div><div class='del'>-		     inetsock_cleanup, (VALUE)&amp;arg);</div><div class='add'>+                     inetsock_cleanup, (VALUE)&amp;arg);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static ID id_numeric, id_hostname;</div><div class='hunk'>@@ -179,11 +201,11 @@ rsock_revlookup_flag(VALUE revlookup, int *norevlookup)</div><div class='ctx'>       case Qfalse: return_norevlookup(1);</div><div class='ctx'>       case Qnil: break;</div><div class='ctx'>       default:</div><div class='del'>-	Check_Type(revlookup, T_SYMBOL);</div><div class='del'>-	id = SYM2ID(revlookup);</div><div class='del'>-	if (id == id_numeric) return_norevlookup(1);</div><div class='del'>-	if (id == id_hostname) return_norevlookup(0);</div><div class='del'>-	rb_raise(rb_eArgError, "invalid reverse_lookup flag: :%s", rb_id2name(id));</div><div class='add'>+        Check_Type(revlookup, T_SYMBOL);</div><div class='add'>+        id = SYM2ID(revlookup);</div><div class='add'>+        if (id == id_numeric) return_norevlookup(1);</div><div class='add'>+        if (id == id_hostname) return_norevlookup(0);</div><div class='add'>+        rb_raise(rb_eArgError, "invalid reverse_lookup flag: :%s", rb_id2name(id));</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> #undef return_norevlookup</div><div class='hunk'>@@ -204,24 +226,24 @@ ip_inspect(VALUE sock)</div><div class='ctx'>     socklen_t len = (socklen_t)sizeof addr;</div><div class='ctx'>     ID id;</div><div class='ctx'>     if (fptr &amp;&amp; fptr-&gt;fd &gt;= 0 &amp;&amp;</div><div class='del'>-	getsockname(fptr-&gt;fd, &amp;addr.addr, &amp;len) &gt;= 0 &amp;&amp;</div><div class='del'>-	(id = rsock_intern_family(addr.addr.sa_family)) != 0) {</div><div class='del'>-	VALUE family = rb_id2str(id);</div><div class='del'>-	char hbuf[1024], pbuf[1024];</div><div class='del'>-	long slen = RSTRING_LEN(str);</div><div class='del'>-	const char last = (slen &gt; 1 &amp;&amp; RSTRING_PTR(str)[slen - 1] == '&gt;') ?</div><div class='del'>-	    (--slen, '&gt;') : 0;</div><div class='del'>-	str = rb_str_subseq(str, 0, slen);</div><div class='del'>-	rb_str_cat_cstr(str, ", ");</div><div class='del'>-	rb_str_append(str, family);</div><div class='del'>-	if (!rb_getnameinfo(&amp;addr.addr, len, hbuf, sizeof(hbuf),</div><div class='del'>-			    pbuf, sizeof(pbuf), NI_NUMERICHOST | NI_NUMERICSERV)) {</div><div class='del'>-	    rb_str_cat_cstr(str, ", ");</div><div class='del'>-	    rb_str_cat_cstr(str, hbuf);</div><div class='del'>-	    rb_str_cat_cstr(str, ", ");</div><div class='del'>-	    rb_str_cat_cstr(str, pbuf);</div><div class='del'>-	}</div><div class='del'>-	if (last) rb_str_cat(str, &amp;last, 1);</div><div class='add'>+        getsockname(fptr-&gt;fd, &amp;addr.addr, &amp;len) &gt;= 0 &amp;&amp;</div><div class='add'>+        (id = rsock_intern_family(addr.addr.sa_family)) != 0) {</div><div class='add'>+        VALUE family = rb_id2str(id);</div><div class='add'>+        char hbuf[1024], pbuf[1024];</div><div class='add'>+        long slen = RSTRING_LEN(str);</div><div class='add'>+        const char last = (slen &gt; 1 &amp;&amp; RSTRING_PTR(str)[slen - 1] == '&gt;') ?</div><div class='add'>+            (--slen, '&gt;') : 0;</div><div class='add'>+        str = rb_str_subseq(str, 0, slen);</div><div class='add'>+        rb_str_cat_cstr(str, ", ");</div><div class='add'>+        rb_str_append(str, family);</div><div class='add'>+        if (!rb_getnameinfo(&amp;addr.addr, len, hbuf, sizeof(hbuf),</div><div class='add'>+                            pbuf, sizeof(pbuf), NI_NUMERICHOST | NI_NUMERICSERV)) {</div><div class='add'>+            rb_str_cat_cstr(str, ", ");</div><div class='add'>+            rb_str_cat_cstr(str, hbuf);</div><div class='add'>+            rb_str_cat_cstr(str, ", ");</div><div class='add'>+            rb_str_cat_cstr(str, pbuf);</div><div class='add'>+        }</div><div class='add'>+        if (last) rb_str_cat(str, &amp;last, 1);</div><div class='ctx'>     }</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='hunk'>@@ -236,7 +258,7 @@ ip_inspect(VALUE sock)</div><div class='ctx'>  * If +reverse_lookup+ is +true+ or +:hostname+,</div><div class='ctx'>  * hostname is obtained from numeric_address using reverse lookup.</div><div class='ctx'>  * Or if it is +false+, or +:numeric+,</div><div class='del'>- * hostname is same as numeric_address.</div><div class='add'>+ * hostname is the same as numeric_address.</div><div class='ctx'>  * Or if it is +nil+ or omitted, obeys to +ipsocket.do_not_reverse_lookup+.</div><div class='ctx'>  * See +Socket.getaddrinfo+ also.</div><div class='ctx'>  *</div><div class='hunk'>@@ -260,9 +282,9 @@ ip_addr(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'> </div><div class='ctx'>     if (argc &lt; 1 || !rsock_revlookup_flag(argv[0], &amp;norevlookup))</div><div class='del'>-	norevlookup = fptr-&gt;mode &amp; FMODE_NOREVLOOKUP;</div><div class='add'>+        norevlookup = fptr-&gt;mode &amp; FMODE_NOREVLOOKUP;</div><div class='ctx'>     if (getsockname(fptr-&gt;fd, &amp;addr.addr, &amp;len) &lt; 0)</div><div class='del'>-	rb_sys_fail("getsockname(2)");</div><div class='add'>+        rb_sys_fail("getsockname(2)");</div><div class='ctx'>     return rsock_ipaddr(&amp;addr.addr, len, norevlookup);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -277,7 +299,7 @@ ip_addr(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'>  * If +reverse_lookup+ is +true+ or +:hostname+,</div><div class='ctx'>  * hostname is obtained from numeric_address using reverse lookup.</div><div class='ctx'>  * Or if it is +false+, or +:numeric+,</div><div class='del'>- * hostname is same as numeric_address.</div><div class='add'>+ * hostname is the same as numeric_address.</div><div class='ctx'>  * Or if it is +nil+ or omitted, obeys to +ipsocket.do_not_reverse_lookup+.</div><div class='ctx'>  * See +Socket.getaddrinfo+ also.</div><div class='ctx'>  *</div><div class='hunk'>@@ -301,9 +323,9 @@ ip_peeraddr(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'> </div><div class='ctx'>     if (argc &lt; 1 || !rsock_revlookup_flag(argv[0], &amp;norevlookup))</div><div class='del'>-	norevlookup = fptr-&gt;mode &amp; FMODE_NOREVLOOKUP;</div><div class='add'>+        norevlookup = fptr-&gt;mode &amp; FMODE_NOREVLOOKUP;</div><div class='ctx'>     if (getpeername(fptr-&gt;fd, &amp;addr.addr, &amp;len) &lt; 0)</div><div class='del'>-	rb_sys_fail("getpeername(2)");</div><div class='add'>+        rb_sys_fail("getpeername(2)");</div><div class='ctx'>     return rsock_ipaddr(&amp;addr.addr, len, norevlookup);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -319,7 +341,7 @@ ip_peeraddr(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'>  *</div><div class='ctx'>  * _flags_ should be a bitwise OR of Socket::MSG_* constants.</div><div class='ctx'>  *</div><div class='del'>- * ipaddr is same as IPSocket#{peeraddr,addr}.</div><div class='add'>+ * ipaddr is the same as IPSocket#{peeraddr,addr}.</div><div class='ctx'>  *</div><div class='ctx'>  *   u1 = UDPSocket.new</div><div class='ctx'>  *   u1.bind("127.0.0.1", 4913)</div><div class='head'>diff --git a/ext/socket/lib/socket.rb b/ext/socket/lib/socket.rb<br/>index 4ed2df23e6..eecdc7d4b8 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/lib/socket.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/lib/socket.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/lib/socket.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/lib/socket.rb</a></div><div class='hunk'>@@ -1,7 +1,11 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='ctx'> require 'socket.so'</div><div class='del'>-require 'io/wait'</div><div class='add'>+</div><div class='add'>+unless IO.method_defined?(:wait_writable, false)</div><div class='add'>+  # It's only required on older Rubies &lt; v3.2:</div><div class='add'>+  require 'io/wait'</div><div class='add'>+end</div><div class='ctx'> </div><div class='ctx'> class Addrinfo</div><div class='ctx'>   # creates an Addrinfo object from the arguments.</div><div class='hunk'>@@ -197,7 +201,7 @@ class Addrinfo</div><div class='ctx'>     sock = Socket.new(self.pfamily, self.socktype, self.protocol)</div><div class='ctx'>     begin</div><div class='ctx'>       sock.ipv6only! if self.ipv6?</div><div class='del'>-      sock.setsockopt(:SOCKET, :REUSEADDR, 1)</div><div class='add'>+      sock.setsockopt(:SOCKET, :REUSEADDR, 1) unless self.pfamily == Socket::PF_UNIX</div><div class='ctx'>       sock.bind(self)</div><div class='ctx'>       sock.listen(backlog)</div><div class='ctx'>     rescue Exception</div><div class='hunk'>@@ -223,8 +227,8 @@ class Addrinfo</div><div class='ctx'>   #   #   #&lt;Addrinfo: [::1]:80 TCP (:80)&gt;</div><div class='ctx'>   #   #   #&lt;Addrinfo: [::1]:80 UDP (:80)&gt;</div><div class='ctx'>   #</div><div class='del'>-  def self.foreach(nodename, service, family=nil, socktype=nil, protocol=nil, flags=nil, &amp;block)</div><div class='del'>-    Addrinfo.getaddrinfo(nodename, service, family, socktype, protocol, flags).each(&amp;block)</div><div class='add'>+  def self.foreach(nodename, service, family=nil, socktype=nil, protocol=nil, flags=nil, timeout: nil, &amp;block)</div><div class='add'>+    Addrinfo.getaddrinfo(nodename, service, family, socktype, protocol, flags, timeout: timeout).each(&amp;block)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='hunk'>@@ -619,7 +623,7 @@ class Socket &lt; BasicSocket</div><div class='ctx'>   #     puts sock.read</div><div class='ctx'>   #   }</div><div class='ctx'>   #</div><div class='del'>-  def self.tcp(host, port, local_host = nil, local_port = nil, connect_timeout: nil) # :yield: socket</div><div class='add'>+  def self.tcp(host, port, local_host = nil, local_port = nil, connect_timeout: nil, resolv_timeout: nil) # :yield: socket</div><div class='ctx'>     last_error = nil</div><div class='ctx'>     ret = nil</div><div class='ctx'> </div><div class='hunk'>@@ -628,7 +632,7 @@ class Socket &lt; BasicSocket</div><div class='ctx'>       local_addr_list = Addrinfo.getaddrinfo(local_host, local_port, nil, :STREAM, nil)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    Addrinfo.foreach(host, port, nil, :STREAM) {|ai|</div><div class='add'>+    Addrinfo.foreach(host, port, nil, :STREAM, timeout: resolv_timeout) {|ai|</div><div class='ctx'>       if local_addr_list</div><div class='ctx'>         local_addr = local_addr_list.find {|local_ai| local_ai.afamily == ai.afamily }</div><div class='ctx'>         next unless local_addr</div><div class='head'>diff --git a/ext/socket/mkconstants.rb b/ext/socket/mkconstants.rb<br/>index 81b8224077..5e6c0668f6 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/mkconstants.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/mkconstants.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/mkconstants.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/mkconstants.rb</a></div><div class='hunk'>@@ -180,6 +180,7 @@ int</div><div class='ctx'> </div><div class='ctx'> %    }</div><div class='ctx'>       default:</div><div class='add'>+        if (!str || !valp) {/* wrong argument */}</div><div class='ctx'>         return -1;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -357,6 +358,8 @@ SOCK_RAW	nil	A raw socket provides low-level access for direct access or impleme</div><div class='ctx'> SOCK_RDM	nil	A reliable datagram socket provides reliable delivery of messages</div><div class='ctx'> SOCK_SEQPACKET	nil	A sequential packet socket provides sequenced, reliable two-way connection for datagrams</div><div class='ctx'> SOCK_PACKET	nil	Device-level packet access</div><div class='add'>+SOCK_NONBLOCK	nil	Set the O_NONBLOCK file status flag on the open file description (see open(2)) referred to by the new file descriptor.</div><div class='add'>+SOCK_CLOEXEC	nil	Set the close-on-exec (FD_CLOEXEC) flag on the new file  descriptor.</div><div class='ctx'> </div><div class='ctx'> AF_UNSPEC	nil	Unspecified protocol, any supported address family</div><div class='ctx'> PF_UNSPEC	nil	Unspecified protocol, any supported address family</div><div class='hunk'>@@ -396,6 +399,8 @@ AF_SNA	nil	IBM SNA protocol</div><div class='ctx'> PF_SNA	nil	IBM SNA protocol</div><div class='ctx'> AF_DEC	nil	DECnet protocol</div><div class='ctx'> PF_DEC	nil	DECnet protocol</div><div class='add'>+AF_DECnet	nil	DECnet protocol</div><div class='add'>+PF_DECnet	nil	DECnet protocol</div><div class='ctx'> AF_DLI	nil	DEC Direct Data Link Interface protocol</div><div class='ctx'> PF_DLI	nil	DEC Direct Data Link Interface protocol</div><div class='ctx'> AF_LAT	nil	Local Area Transport protocol</div><div class='hunk'>@@ -437,7 +442,34 @@ AF_E164	nil	CCITT (ITU-T) E.164 recommendation</div><div class='ctx'> PF_XTP	nil	eXpress Transfer Protocol</div><div class='ctx'> PF_RTIP</div><div class='ctx'> PF_PIP</div><div class='del'>-PF_KEY</div><div class='add'>+AF_KEY	nil	Key management protocol, originally developed for usage with IPsec</div><div class='add'>+PF_KEY	nil	Key management protocol, originally developed for usage with IPsec</div><div class='add'>+AF_NETLINK	nil	Kernel user interface device</div><div class='add'>+PF_NETLINK	nil	Kernel user interface device</div><div class='add'>+AF_RDS	nil	Reliable Datagram Sockets (RDS) protocol</div><div class='add'>+PF_RDS	nil	Reliable Datagram Sockets (RDS) protocol</div><div class='add'>+AF_PPPOX	nil	Generic PPP transport layer, for setting up L2 tunnels (L2TP and PPPoE)</div><div class='add'>+PF_PPPOX	nil	Generic PPP transport layer, for setting up L2 tunnels (L2TP and PPPoE)</div><div class='add'>+AF_LLC	nil	Logical  link control (IEEE 802.2 LLC) protocol</div><div class='add'>+PF_LLC	nil	Logical  link control (IEEE 802.2 LLC) protocol</div><div class='add'>+AF_IB	nil	InfiniBand native addressing</div><div class='add'>+PF_IB	nil	InfiniBand native addressing</div><div class='add'>+AF_MPLS	nil	Multiprotocol Label Switching</div><div class='add'>+PF_MPLS	nil	Multiprotocol Label Switching</div><div class='add'>+AF_CAN	nil	Controller Area Network automotive bus protocol</div><div class='add'>+PF_CAN	nil	Controller Area Network automotive bus protocol</div><div class='add'>+AF_TIPC	nil	TIPC, "cluster domain sockets" protocol</div><div class='add'>+PF_TIPC	nil	TIPC, "cluster domain sockets" protocol</div><div class='add'>+AF_BLUETOOTH	nil	Bluetooth low-level socket protocol</div><div class='add'>+PF_BLUETOOTH	nil	Bluetooth low-level socket protocol</div><div class='add'>+AF_ALG	nil	Interface to kernel crypto API</div><div class='add'>+PF_ALG	nil	Interface to kernel crypto API</div><div class='add'>+AF_VSOCK	nil	VSOCK (originally "VMWare VSockets") protocol for hypervisor-guest communication</div><div class='add'>+PF_VSOCK	nil	VSOCK (originally "VMWare VSockets") protocol for hypervisor-guest communication</div><div class='add'>+AF_KCM	nil	KCM (kernel connection multiplexor) interface</div><div class='add'>+PF_KCM	nil	KCM (kernel connection multiplexor) interface</div><div class='add'>+AF_XDP	nil	XDP (express data path) interface</div><div class='add'>+PF_XDP	nil	XDP (express data path) interface</div><div class='ctx'> </div><div class='ctx'> MSG_OOB	nil	Process out-of-band data</div><div class='ctx'> MSG_PEEK	nil	Peek at incoming message</div><div class='hunk'>@@ -594,6 +626,7 @@ SO_SNDTIMEO	nil	Send timeout</div><div class='ctx'> SO_ACCEPTCONN	nil	Socket has had listen() called on it</div><div class='ctx'> SO_USELOOPBACK	nil	Bypass hardware when possible</div><div class='ctx'> SO_ACCEPTFILTER	nil	There is an accept filter</div><div class='add'>+SO_USER_COOKIE	nil	Setting an identifier for ipfw purpose mainly</div><div class='ctx'> SO_DONTTRUNC	nil	Retain unread data</div><div class='ctx'> SO_WANTMORE	nil	Give a hint when more data is ready</div><div class='ctx'> SO_WANTOOBFLAG	nil	OOB data is wanted in MSG_FLAG on receive</div><div class='hunk'>@@ -629,6 +662,10 @@ SO_SELECT_ERR_QUEUE     nil     Make select() detect socket error queue with err</div><div class='ctx'> SO_BUSY_POLL    nil     Set the threshold in microseconds for low latency polling (Linux 3.11)</div><div class='ctx'> SO_MAX_PACING_RATE      nil     Cap the rate computed by transport layer. [bytes per second] (Linux 3.13)</div><div class='ctx'> SO_BPF_EXTENSIONS       nil     Query supported BPF extensions (Linux 3.14)</div><div class='add'>+SO_SETFIB       nil     Set the associated routing table for the socket (FreeBSD)</div><div class='add'>+SO_RTABLE               nil     Set the routing table for this socket (OpenBSD)</div><div class='add'>+SO_INCOMING_CPU         nil     Receive the cpu attached to the socket (Linux 3.19)</div><div class='add'>+SO_INCOMING_NAPI_ID     nil     Receive the napi ID attached to a RX queue (Linux 4.12)</div><div class='ctx'> </div><div class='ctx'> SOPRI_INTERACTIVE	nil	Interactive socket priority</div><div class='ctx'> SOPRI_NORMAL	nil	Normal socket priority</div><div class='hunk'>@@ -638,9 +675,11 @@ IPX_TYPE</div><div class='ctx'> </div><div class='ctx'> TCP_NODELAY	nil	Don't delay sending to coalesce packets</div><div class='ctx'> TCP_MAXSEG	nil	Set maximum segment size</div><div class='add'>+TCP_CONNECTION_INFO     nil     Retrieve information about this socket (macOS)</div><div class='ctx'> TCP_CORK	nil	Don't send partial frames (Linux 2.2, glibc 2.2)</div><div class='ctx'> TCP_DEFER_ACCEPT	nil	Don't notify a listening socket until data is ready (Linux 2.4, glibc 2.2)</div><div class='ctx'> TCP_INFO	nil	Retrieve information about this socket (Linux 2.4, glibc 2.2)</div><div class='add'>+TCP_KEEPALIVE	nil	Idle time before keepalive probes are sent (macOS)</div><div class='ctx'> TCP_KEEPCNT	nil	Maximum number of keepalive probes allowed before dropping a connection (Linux 2.4, glibc 2.2)</div><div class='ctx'> TCP_KEEPIDLE	nil	Idle time before keepalive probes are sent (Linux 2.4, glibc 2.2)</div><div class='ctx'> TCP_KEEPINTVL	nil	Time between keepalive probes (Linux 2.4, glibc 2.2)</div><div class='head'>diff --git a/ext/socket/option.c b/ext/socket/option.c<br/>index 5ad44cdcd8..0d818d0c70 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/option.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/option.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/option.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/option.c</a></div><div class='hunk'>@@ -31,7 +31,7 @@ VALUE rb_cSockOpt;</div><div class='ctx'>     ((len) == (size) ? \</div><div class='ctx'>      (void)0 : \</div><div class='ctx'>      rb_raise(rb_eTypeError, "size differ.  expected as "#size"=%d but %ld", \</div><div class='del'>-	      (int)size, (long)(len)))</div><div class='add'>+              (int)size, (long)(len)))</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> sockopt_pack_byte(VALUE value)</div><div class='hunk'>@@ -106,9 +106,9 @@ sockopt_initialize(VALUE self, VALUE vfamily, VALUE vlevel, VALUE voptname, VALU</div><div class='ctx'> VALUE</div><div class='ctx'> rsock_sockopt_new(int family, int level, int optname, VALUE data)</div><div class='ctx'> {</div><div class='del'>-    NEWOBJ_OF(obj, struct RObject, rb_cSockOpt, T_OBJECT);</div><div class='add'>+    VALUE obj = rb_obj_alloc(rb_cSockOpt);</div><div class='ctx'>     StringValue(data);</div><div class='del'>-    sockopt_initialize((VALUE)obj, INT2NUM(family), INT2NUM(level), INT2NUM(optname), data);</div><div class='add'>+    sockopt_initialize(obj, INT2NUM(family), INT2NUM(level), INT2NUM(optname), data);</div><div class='ctx'>     return (VALUE)obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -309,7 +309,7 @@ sockopt_bool(VALUE self)</div><div class='ctx'>     StringValue(data);</div><div class='ctx'>     len = RSTRING_LEN(data);</div><div class='ctx'>     if (len == 1) {</div><div class='del'>-	return *RSTRING_PTR(data) == 0 ? Qfalse : Qtrue;</div><div class='add'>+        return *RSTRING_PTR(data) == 0 ? Qfalse : Qtrue;</div><div class='ctx'>     }</div><div class='ctx'>     check_size(len, sizeof(int));</div><div class='ctx'>     memcpy((char*)&amp;i, RSTRING_PTR(data), len);</div><div class='hunk'>@@ -420,7 +420,7 @@ sockopt_ipv4_multicast_loop(VALUE self)</div><div class='ctx'> </div><div class='ctx'> #if defined(IPPROTO_IP) &amp;&amp; defined(IP_MULTICAST_LOOP)</div><div class='ctx'>     if (family == AF_INET &amp;&amp; level == IPPROTO_IP &amp;&amp; optname == IP_MULTICAST_LOOP) {</div><div class='del'>-	return XCAT(sockopt_,TYPE_IP_MULTICAST_LOOP)(self);</div><div class='add'>+        return XCAT(sockopt_,TYPE_IP_MULTICAST_LOOP)(self);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     rb_raise(rb_eTypeError, "ipv4_multicast_loop socket option expected");</div><div class='hunk'>@@ -471,7 +471,7 @@ sockopt_ipv4_multicast_ttl(VALUE self)</div><div class='ctx'> </div><div class='ctx'> #if defined(IPPROTO_IP) &amp;&amp; defined(IP_MULTICAST_TTL)</div><div class='ctx'>     if (family == AF_INET &amp;&amp; level == IPPROTO_IP &amp;&amp; optname == IP_MULTICAST_TTL) {</div><div class='del'>-	return XCAT(sockopt_,TYPE_IP_MULTICAST_TTL)(self);</div><div class='add'>+        return XCAT(sockopt_,TYPE_IP_MULTICAST_TTL)(self);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     rb_raise(rb_eTypeError, "ipv4_multicast_ttl socket option expected");</div><div class='hunk'>@@ -657,8 +657,8 @@ inet_ntop(int af, const void *addr, char *numaddr, size_t numaddr_len)</div><div class='ctx'> #else</div><div class='ctx'>     unsigned long x = ntohl(*(unsigned long*)addr);</div><div class='ctx'>     snprintf(numaddr, numaddr_len, "%d.%d.%d.%d",</div><div class='del'>-	     (int) (x&gt;&gt;24) &amp; 0xff, (int) (x&gt;&gt;16) &amp; 0xff,</div><div class='del'>-	     (int) (x&gt;&gt; 8) &amp; 0xff, (int) (x&gt;&gt; 0) &amp; 0xff);</div><div class='add'>+             (int) (x&gt;&gt;24) &amp; 0xff, (int) (x&gt;&gt;16) &amp; 0xff,</div><div class='add'>+             (int) (x&gt;&gt; 8) &amp; 0xff, (int) (x&gt;&gt; 0) &amp; 0xff);</div><div class='ctx'> #endif</div><div class='ctx'>     return numaddr;</div><div class='ctx'> }</div><div class='hunk'>@@ -670,10 +670,10 @@ rb_if_indextoname(const char *succ_prefix, const char *fail_prefix, unsigned int</div><div class='ctx'> {</div><div class='ctx'> #if defined(HAVE_IF_INDEXTONAME)</div><div class='ctx'>     char ifbuf[IFNAMSIZ];</div><div class='del'>-    if (if_indextoname(ifindex, ifbuf) == NULL)</div><div class='del'>-        return snprintf(buf, len, "%s%u", fail_prefix, ifindex);</div><div class='del'>-    else</div><div class='add'>+    if (if_indextoname(ifindex, ifbuf))</div><div class='ctx'>         return snprintf(buf, len, "%s%s", succ_prefix, ifbuf);</div><div class='add'>+    else</div><div class='add'>+        return snprintf(buf, len, "%s%u", fail_prefix, ifindex);</div><div class='ctx'> #else</div><div class='ctx'> #   ifndef IFNAMSIZ</div><div class='ctx'> #       define IFNAMSIZ (sizeof(unsigned int)*3+1)</div><div class='hunk'>@@ -1059,16 +1059,16 @@ inspect_tcp_info(int level, int optname, VALUE data, VALUE ret)</div><div class='ctx'>         rb_str_catf(ret, " fackets=%u", s.tcpi_fackets);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef HAVE_STRUCT_TCP_INFO_TCPI_LAST_DATA_SENT</div><div class='del'>-	inspect_tcpi_last_data_sent(ret, s.tcpi_last_data_sent);</div><div class='add'>+        inspect_tcpi_last_data_sent(ret, s.tcpi_last_data_sent);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef HAVE_STRUCT_TCP_INFO_TCPI_LAST_ACK_SENT</div><div class='del'>-	inspect_tcpi_last_ack_sent(ret, s.tcpi_last_ack_sent);</div><div class='add'>+        inspect_tcpi_last_ack_sent(ret, s.tcpi_last_ack_sent);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef HAVE_STRUCT_TCP_INFO_TCPI_LAST_DATA_RECV</div><div class='del'>-	inspect_tcpi_last_data_recv(ret, s.tcpi_last_data_recv);</div><div class='add'>+        inspect_tcpi_last_data_recv(ret, s.tcpi_last_data_recv);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef HAVE_STRUCT_TCP_INFO_TCPI_LAST_ACK_RECV</div><div class='del'>-	inspect_tcpi_last_ack_recv(ret, s.tcpi_last_ack_recv);</div><div class='add'>+        inspect_tcpi_last_ack_recv(ret, s.tcpi_last_ack_recv);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef HAVE_STRUCT_TCP_INFO_TCPI_PMTU</div><div class='ctx'>         rb_str_catf(ret, " pmtu=%u", s.tcpi_pmtu);</div><div class='hunk'>@@ -1077,10 +1077,10 @@ inspect_tcp_info(int level, int optname, VALUE data, VALUE ret)</div><div class='ctx'>         rb_str_catf(ret, " rcv_ssthresh=%u", s.tcpi_rcv_ssthresh);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef HAVE_STRUCT_TCP_INFO_TCPI_RTT</div><div class='del'>-	inspect_tcpi_rtt(ret, s.tcpi_rtt);</div><div class='add'>+        inspect_tcpi_rtt(ret, s.tcpi_rtt);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef HAVE_STRUCT_TCP_INFO_TCPI_RTTVAR</div><div class='del'>-	inspect_tcpi_rttvar(ret, s.tcpi_rttvar);</div><div class='add'>+        inspect_tcpi_rttvar(ret, s.tcpi_rttvar);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef HAVE_STRUCT_TCP_INFO_TCPI_SND_SSTHRESH</div><div class='ctx'>         rb_str_catf(ret, " snd_ssthresh=%u", s.tcpi_snd_ssthresh);</div><div class='hunk'>@@ -1150,7 +1150,7 @@ inspect_peercred(int level, int optname, VALUE data, VALUE ret)</div><div class='ctx'>         RUBY_SOCK_PEERCRED cred;</div><div class='ctx'>         memcpy(&amp;cred, RSTRING_PTR(data), sizeof(RUBY_SOCK_PEERCRED));</div><div class='ctx'>         rb_str_catf(ret, " pid=%u euid=%u egid=%u",</div><div class='del'>-		    (unsigned)cred.pid, (unsigned)cred.uid, (unsigned)cred.gid);</div><div class='add'>+                    (unsigned)cred.pid, (unsigned)cred.uid, (unsigned)cred.gid);</div><div class='ctx'>         rb_str_cat2(ret, " (ucred)");</div><div class='ctx'>         return 1;</div><div class='ctx'>     }</div><div class='hunk'>@@ -1171,14 +1171,14 @@ inspect_local_peercred(int level, int optname, VALUE data, VALUE ret)</div><div class='ctx'>             return 0;</div><div class='ctx'>         rb_str_catf(ret, " version=%u", cred.cr_version);</div><div class='ctx'>         rb_str_catf(ret, " euid=%u", cred.cr_uid);</div><div class='del'>-	if (cred.cr_ngroups) {</div><div class='del'>-	    int i;</div><div class='del'>-	    const char *sep = " groups=";</div><div class='del'>-	    for (i = 0; i &lt; cred.cr_ngroups; i++) {</div><div class='del'>-		rb_str_catf(ret, "%s%u", sep, cred.cr_groups[i]);</div><div class='del'>-		sep = ",";</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        if (cred.cr_ngroups) {</div><div class='add'>+            int i;</div><div class='add'>+            const char *sep = " groups=";</div><div class='add'>+            for (i = 0; i &lt; cred.cr_ngroups; i++) {</div><div class='add'>+                rb_str_catf(ret, "%s%u", sep, cred.cr_groups[i]);</div><div class='add'>+                sep = ",";</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>         rb_str_cat2(ret, " (xucred)");</div><div class='ctx'>         return 1;</div><div class='ctx'>     }</div><div class='hunk'>@@ -1216,42 +1216,42 @@ sockopt_inspect(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     family_id = rsock_intern_family_noprefix(family);</div><div class='ctx'>     if (family_id)</div><div class='del'>-	rb_str_catf(ret, " %s", rb_id2name(family_id));</div><div class='add'>+        rb_str_catf(ret, " %s", rb_id2name(family_id));</div><div class='ctx'>     else</div><div class='ctx'>         rb_str_catf(ret, " family:%d", family);</div><div class='ctx'> </div><div class='ctx'>     if (level == SOL_SOCKET) {</div><div class='ctx'>         rb_str_cat2(ret, " SOCKET");</div><div class='ctx'> </div><div class='del'>-	optname_id = rsock_intern_so_optname(optname);</div><div class='del'>-	if (optname_id)</div><div class='del'>-	    rb_str_catf(ret, " %s", rb_id2name(optname_id));</div><div class='del'>-	else</div><div class='del'>-	    rb_str_catf(ret, " optname:%d", optname);</div><div class='add'>+        optname_id = rsock_intern_so_optname(optname);</div><div class='add'>+        if (optname_id)</div><div class='add'>+            rb_str_catf(ret, " %s", rb_id2name(optname_id));</div><div class='add'>+        else</div><div class='add'>+            rb_str_catf(ret, " optname:%d", optname);</div><div class='ctx'>     }</div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>     else if (family == AF_UNIX) {</div><div class='del'>-	rb_str_catf(ret, " level:%d", level);</div><div class='add'>+        rb_str_catf(ret, " level:%d", level);</div><div class='ctx'> </div><div class='del'>-	optname_id = rsock_intern_local_optname(optname);</div><div class='del'>-	if (optname_id)</div><div class='del'>-	    rb_str_catf(ret, " %s", rb_id2name(optname_id));</div><div class='del'>-	else</div><div class='del'>-	    rb_str_catf(ret, " optname:%d", optname);</div><div class='add'>+        optname_id = rsock_intern_local_optname(optname);</div><div class='add'>+        if (optname_id)</div><div class='add'>+            rb_str_catf(ret, " %s", rb_id2name(optname_id));</div><div class='add'>+        else</div><div class='add'>+            rb_str_catf(ret, " optname:%d", optname);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     else if (IS_IP_FAMILY(family)) {</div><div class='del'>-	level_id = rsock_intern_iplevel(level);</div><div class='del'>-	if (level_id)</div><div class='del'>-	    rb_str_catf(ret, " %s", rb_id2name(level_id));</div><div class='del'>-	else</div><div class='del'>-	    rb_str_catf(ret, " level:%d", level);</div><div class='del'>-</div><div class='del'>-	v = optname_to_sym(level, optname);</div><div class='del'>-	if (SYMBOL_P(v))</div><div class='del'>-	    rb_str_catf(ret, " %"PRIsVALUE, rb_sym2str(v));</div><div class='del'>-	else</div><div class='del'>-	    rb_str_catf(ret, " optname:%d", optname);</div><div class='add'>+        level_id = rsock_intern_iplevel(level);</div><div class='add'>+        if (level_id)</div><div class='add'>+            rb_str_catf(ret, " %s", rb_id2name(level_id));</div><div class='add'>+        else</div><div class='add'>+            rb_str_catf(ret, " level:%d", level);</div><div class='add'>+</div><div class='add'>+        v = optname_to_sym(level, optname);</div><div class='add'>+        if (SYMBOL_P(v))</div><div class='add'>+            rb_str_catf(ret, " %"PRIsVALUE, rb_sym2str(v));</div><div class='add'>+        else</div><div class='add'>+            rb_str_catf(ret, " optname:%d", optname);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         rb_str_catf(ret, " level:%d", level);</div><div class='hunk'>@@ -1393,7 +1393,7 @@ sockopt_inspect(VALUE self)</div><div class='ctx'>         }</div><div class='ctx'>         break;</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>       case AF_UNIX:</div><div class='ctx'>         switch (level) {</div><div class='ctx'>           case 0:</div><div class='head'>diff --git a/ext/socket/raddrinfo.c b/ext/socket/raddrinfo.c<br/>index 4c6a9b511c..45b4cad38f 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/raddrinfo.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/raddrinfo.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/raddrinfo.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/raddrinfo.c</a></div><div class='hunk'>@@ -24,28 +24,28 @@ static const int lookup_order_table[] = {</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> ruby_getaddrinfo(const char *nodename, const char *servname,</div><div class='del'>-		 const struct addrinfo *hints, struct addrinfo **res)</div><div class='add'>+                 const struct addrinfo *hints, struct addrinfo **res)</div><div class='ctx'> {</div><div class='ctx'>     struct addrinfo tmp_hints;</div><div class='ctx'>     int i, af, error;</div><div class='ctx'> </div><div class='ctx'>     if (hints-&gt;ai_family != PF_UNSPEC) {</div><div class='del'>-	return getaddrinfo(nodename, servname, hints, res);</div><div class='add'>+        return getaddrinfo(nodename, servname, hints, res);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; LOOKUP_ORDERS; i++) {</div><div class='del'>-	af = lookup_order_table[i];</div><div class='del'>-	MEMCPY(&amp;tmp_hints, hints, struct addrinfo, 1);</div><div class='del'>-	tmp_hints.ai_family = af;</div><div class='del'>-	error = getaddrinfo(nodename, servname, &amp;tmp_hints, res);</div><div class='del'>-	if (error) {</div><div class='del'>-	    if (tmp_hints.ai_family == PF_UNSPEC) {</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        af = lookup_order_table[i];</div><div class='add'>+        MEMCPY(&amp;tmp_hints, hints, struct addrinfo, 1);</div><div class='add'>+        tmp_hints.ai_family = af;</div><div class='add'>+        error = getaddrinfo(nodename, servname, &amp;tmp_hints, res);</div><div class='add'>+        if (error) {</div><div class='add'>+            if (tmp_hints.ai_family == PF_UNSPEC) {</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return error;</div><div class='hunk'>@@ -56,17 +56,17 @@ ruby_getaddrinfo(const char *nodename, const char *servname,</div><div class='ctx'> #if defined(_AIX)</div><div class='ctx'> static int</div><div class='ctx'> ruby_getaddrinfo__aix(const char *nodename, const char *servname,</div><div class='del'>-		      const struct addrinfo *hints, struct addrinfo **res)</div><div class='add'>+                      const struct addrinfo *hints, struct addrinfo **res)</div><div class='ctx'> {</div><div class='ctx'>     int error = getaddrinfo(nodename, servname, hints, res);</div><div class='ctx'>     struct addrinfo *r;</div><div class='ctx'>     if (error)</div><div class='del'>-	return error;</div><div class='add'>+        return error;</div><div class='ctx'>     for (r = *res; r != NULL; r = r-&gt;ai_next) {</div><div class='del'>-	if (r-&gt;ai_addr-&gt;sa_family == 0)</div><div class='del'>-	    r-&gt;ai_addr-&gt;sa_family = r-&gt;ai_family;</div><div class='del'>-	if (r-&gt;ai_addr-&gt;sa_len == 0)</div><div class='del'>-	    r-&gt;ai_addr-&gt;sa_len = r-&gt;ai_addrlen;</div><div class='add'>+        if (r-&gt;ai_addr-&gt;sa_family == 0)</div><div class='add'>+            r-&gt;ai_addr-&gt;sa_family = r-&gt;ai_family;</div><div class='add'>+        if (r-&gt;ai_addr-&gt;sa_len == 0)</div><div class='add'>+            r-&gt;ai_addr-&gt;sa_len = r-&gt;ai_addrlen;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -74,21 +74,21 @@ ruby_getaddrinfo__aix(const char *nodename, const char *servname,</div><div class='ctx'> #define getaddrinfo(node,serv,hints,res) ruby_getaddrinfo__aix((node),(serv),(hints),(res))</div><div class='ctx'> static int</div><div class='ctx'> ruby_getnameinfo__aix(const struct sockaddr *sa, size_t salen,</div><div class='del'>-		      char *host, size_t hostlen,</div><div class='del'>-		      char *serv, size_t servlen, int flags)</div><div class='add'>+                      char *host, size_t hostlen,</div><div class='add'>+                      char *serv, size_t servlen, int flags)</div><div class='ctx'> {</div><div class='ctx'>     struct sockaddr_in6 *sa6;</div><div class='ctx'>     u_int32_t *a6;</div><div class='ctx'> </div><div class='ctx'>     if (sa-&gt;sa_family == AF_INET6) {</div><div class='del'>-	sa6 = (struct sockaddr_in6 *)sa;</div><div class='del'>-	a6 = sa6-&gt;sin6_addr.u6_addr.u6_addr32;</div><div class='add'>+        sa6 = (struct sockaddr_in6 *)sa;</div><div class='add'>+        a6 = sa6-&gt;sin6_addr.u6_addr.u6_addr32;</div><div class='ctx'> </div><div class='del'>-	if (a6[0] == 0 &amp;&amp; a6[1] == 0 &amp;&amp; a6[2] == 0 &amp;&amp; a6[3] == 0) {</div><div class='del'>-	    strncpy(host, "::", hostlen);</div><div class='del'>-	    snprintf(serv, servlen, "%d", sa6-&gt;sin6_port);</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='add'>+        if (a6[0] == 0 &amp;&amp; a6[1] == 0 &amp;&amp; a6[2] == 0 &amp;&amp; a6[3] == 0) {</div><div class='add'>+            strncpy(host, "::", hostlen);</div><div class='add'>+            snprintf(serv, servlen, "%d", sa6-&gt;sin6_port);</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return getnameinfo(sa, salen, host, hostlen, serv, servlen, flags);</div><div class='ctx'> }</div><div class='hunk'>@@ -102,7 +102,7 @@ static int str_is_number(const char *);</div><div class='ctx'> #if defined(__APPLE__)</div><div class='ctx'> static int</div><div class='ctx'> ruby_getaddrinfo__darwin(const char *nodename, const char *servname,</div><div class='del'>-			 const struct addrinfo *hints, struct addrinfo **res)</div><div class='add'>+                         const struct addrinfo *hints, struct addrinfo **res)</div><div class='ctx'> {</div><div class='ctx'>     /* fix [ruby-core:29427] */</div><div class='ctx'>     const char *tmp_servname;</div><div class='hunk'>@@ -112,12 +112,12 @@ ruby_getaddrinfo__darwin(const char *nodename, const char *servname,</div><div class='ctx'>     tmp_servname = servname;</div><div class='ctx'>     MEMCPY(&amp;tmp_hints, hints, struct addrinfo, 1);</div><div class='ctx'>     if (nodename &amp;&amp; servname) {</div><div class='del'>-	if (str_is_number(tmp_servname) &amp;&amp; atoi(servname) == 0) {</div><div class='del'>-	    tmp_servname = NULL;</div><div class='add'>+        if (str_is_number(tmp_servname) &amp;&amp; atoi(servname) == 0) {</div><div class='add'>+            tmp_servname = NULL;</div><div class='ctx'> #ifdef AI_NUMERICSERV</div><div class='del'>-	    if (tmp_hints.ai_flags) tmp_hints.ai_flags &amp;= ~AI_NUMERICSERV;</div><div class='add'>+            if (tmp_hints.ai_flags) tmp_hints.ai_flags &amp;= ~AI_NUMERICSERV;</div><div class='ctx'> #endif</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     error = getaddrinfo(nodename, tmp_servname, &amp;tmp_hints, res);</div><div class='hunk'>@@ -193,7 +193,7 @@ nogvl_getaddrinfo(void *arg)</div><div class='ctx'>      * it cause getaddrinfo to return EAI_SYSTEM/ENOENT. [ruby-list:49420]</div><div class='ctx'>      */</div><div class='ctx'>     if (ret == EAI_SYSTEM &amp;&amp; errno == ENOENT)</div><div class='del'>-	ret = EAI_NONAME;</div><div class='add'>+        ret = EAI_NONAME;</div><div class='ctx'> #endif</div><div class='ctx'>     return (void *)(VALUE)ret;</div><div class='ctx'> }</div><div class='hunk'>@@ -212,15 +212,15 @@ numeric_getaddrinfo(const char *node, const char *service,</div><div class='ctx'>     int port;</div><div class='ctx'> </div><div class='ctx'>     if (node &amp;&amp; parse_numeric_port(service, &amp;port)) {</div><div class='del'>-	static const struct {</div><div class='del'>-	    int socktype;</div><div class='del'>-	    int protocol;</div><div class='del'>-	} list[] = {</div><div class='del'>-	    { SOCK_STREAM, IPPROTO_TCP },</div><div class='del'>-	    { SOCK_DGRAM, IPPROTO_UDP },</div><div class='del'>-	    { SOCK_RAW, 0 }</div><div class='del'>-	};</div><div class='del'>-	struct addrinfo *ai = NULL;</div><div class='add'>+        static const struct {</div><div class='add'>+            int socktype;</div><div class='add'>+            int protocol;</div><div class='add'>+        } list[] = {</div><div class='add'>+            { SOCK_STREAM, IPPROTO_TCP },</div><div class='add'>+            { SOCK_DGRAM, IPPROTO_UDP },</div><div class='add'>+            { SOCK_RAW, 0 }</div><div class='add'>+        };</div><div class='add'>+        struct addrinfo *ai = NULL;</div><div class='ctx'>         int hint_family = hints ? hints-&gt;ai_family : PF_UNSPEC;</div><div class='ctx'>         int hint_socktype = hints ? hints-&gt;ai_socktype : 0;</div><div class='ctx'>         int hint_protocol = hints ? hints-&gt;ai_protocol : 0;</div><div class='hunk'>@@ -284,45 +284,12 @@ numeric_getaddrinfo(const char *node, const char *service,</div><div class='ctx'>     return EAI_FAIL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-int</div><div class='del'>-rb_getaddrinfo(const char *node, const char *service,</div><div class='del'>-               const struct addrinfo *hints,</div><div class='del'>-               struct rb_addrinfo **res)</div><div class='del'>-{</div><div class='del'>-    struct addrinfo *ai;</div><div class='del'>-    int ret;</div><div class='del'>-    int allocated_by_malloc = 0;</div><div class='del'>-</div><div class='del'>-    ret = numeric_getaddrinfo(node, service, hints, &amp;ai);</div><div class='del'>-    if (ret == 0)</div><div class='del'>-        allocated_by_malloc = 1;</div><div class='del'>-    else {</div><div class='del'>-#ifdef GETADDRINFO_EMU</div><div class='del'>-        ret = getaddrinfo(node, service, hints, &amp;ai);</div><div class='del'>-#else</div><div class='del'>-        struct getaddrinfo_arg arg;</div><div class='del'>-        MEMZERO(&amp;arg, struct getaddrinfo_arg, 1);</div><div class='del'>-        arg.node = node;</div><div class='del'>-        arg.service = service;</div><div class='del'>-        arg.hints = hints;</div><div class='del'>-        arg.res = &amp;ai;</div><div class='del'>-        ret = (int)(VALUE)rb_thread_call_without_gvl(nogvl_getaddrinfo, &amp;arg, RUBY_UBF_IO, 0);</div><div class='del'>-#endif</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (ret == 0) {</div><div class='del'>-        *res = (struct rb_addrinfo *)xmalloc(sizeof(struct rb_addrinfo));</div><div class='del'>-        (*res)-&gt;allocated_by_malloc = allocated_by_malloc;</div><div class='del'>-        (*res)-&gt;ai = ai;</div><div class='del'>-    }</div><div class='del'>-    return ret;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> void</div><div class='ctx'> rb_freeaddrinfo(struct rb_addrinfo *ai)</div><div class='ctx'> {</div><div class='del'>-    if (!ai-&gt;allocated_by_malloc)</div><div class='del'>-        freeaddrinfo(ai-&gt;ai);</div><div class='add'>+    if (!ai-&gt;allocated_by_malloc) {</div><div class='add'>+        if (ai-&gt;ai) freeaddrinfo(ai-&gt;ai);</div><div class='add'>+    }</div><div class='ctx'>     else {</div><div class='ctx'>         struct addrinfo *ai1, *ai2;</div><div class='ctx'>         ai1 = ai-&gt;ai;</div><div class='hunk'>@@ -353,9 +320,9 @@ nogvl_getnameinfo(void *arg)</div><div class='ctx'> {</div><div class='ctx'>     struct getnameinfo_arg *ptr = arg;</div><div class='ctx'>     return (void *)(VALUE)getnameinfo(ptr-&gt;sa, ptr-&gt;salen,</div><div class='del'>-				      ptr-&gt;host, (socklen_t)ptr-&gt;hostlen,</div><div class='del'>-				      ptr-&gt;serv, (socklen_t)ptr-&gt;servlen,</div><div class='del'>-				      ptr-&gt;flags);</div><div class='add'>+                                      ptr-&gt;host, (socklen_t)ptr-&gt;hostlen,</div><div class='add'>+                                      ptr-&gt;serv, (socklen_t)ptr-&gt;servlen,</div><div class='add'>+                                      ptr-&gt;flags);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -417,22 +384,18 @@ str_is_number(const char *p)</div><div class='ctx'>     char *ep;</div><div class='ctx'> </div><div class='ctx'>     if (!p || *p == '\0')</div><div class='del'>-       return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     ep = NULL;</div><div class='ctx'>     (void)STRTOUL(p, &amp;ep, 10);</div><div class='ctx'>     if (ep &amp;&amp; *ep == '\0')</div><div class='del'>-       return 1;</div><div class='add'>+        return 1;</div><div class='ctx'>     else</div><div class='del'>-       return 0;</div><div class='add'>+        return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define str_equal(ptr, len, name) \</div><div class='ctx'>     ((ptr)[0] == name[0] &amp;&amp; \</div><div class='ctx'>      rb_strlen_lit(name) == (len) &amp;&amp; memcmp(ptr, name, len) == 0)</div><div class='del'>-#define SafeStringValueCStr(v) do {\</div><div class='del'>-    StringValueCStr(v);\</div><div class='del'>-    rb_check_safe_obj(v);\</div><div class='del'>-} while(0)</div><div class='ctx'> </div><div class='ctx'> static char*</div><div class='ctx'> host_str(VALUE host, char *hbuf, size_t hbuflen, int *flags_ptr)</div><div class='hunk'>@@ -451,7 +414,7 @@ host_str(VALUE host, char *hbuf, size_t hbuflen, int *flags_ptr)</div><div class='ctx'>         const char *name;</div><div class='ctx'>         size_t len;</div><div class='ctx'> </div><div class='del'>-        SafeStringValueCStr(host);</div><div class='add'>+        StringValueCStr(host);</div><div class='ctx'>         RSTRING_GETMEM(host, name, len);</div><div class='ctx'>         if (!len || str_equal(name, len, "&lt;any&gt;")) {</div><div class='ctx'>             make_inetaddr(INADDR_ANY, hbuf, hbuflen);</div><div class='hunk'>@@ -490,7 +453,7 @@ port_str(VALUE port, char *pbuf, size_t pbuflen, int *flags_ptr)</div><div class='ctx'>         const char *serv;</div><div class='ctx'>         size_t len;</div><div class='ctx'> </div><div class='del'>-        SafeStringValueCStr(port);</div><div class='add'>+        StringValueCStr(port);</div><div class='ctx'>         RSTRING_GETMEM(port, serv, len);</div><div class='ctx'>         if (len &gt;= pbuflen) {</div><div class='ctx'>             rb_raise(rb_eArgError, "service name too long (%"PRIuSIZE")",</div><div class='hunk'>@@ -502,12 +465,63 @@ port_str(VALUE port, char *pbuf, size_t pbuflen, int *flags_ptr)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+rb_scheduler_getaddrinfo(VALUE scheduler, VALUE host, const char *service,</div><div class='add'>+    const struct addrinfo *hints, struct rb_addrinfo **res)</div><div class='add'>+{</div><div class='add'>+    int error, res_allocated = 0, _additional_flags = 0;</div><div class='add'>+    long i, len;</div><div class='add'>+    struct addrinfo *ai, *ai_tail = NULL;</div><div class='add'>+    char *hostp;</div><div class='add'>+    char _hbuf[NI_MAXHOST];</div><div class='add'>+    VALUE ip_addresses_array, ip_address;</div><div class='add'>+</div><div class='add'>+    ip_addresses_array = rb_fiber_scheduler_address_resolve(scheduler, host);</div><div class='add'>+</div><div class='add'>+    if (ip_addresses_array == Qundef) {</div><div class='add'>+        // Returns EAI_FAIL if the scheduler hook is not implemented:</div><div class='add'>+        return EAI_FAIL;</div><div class='add'>+    } else if (ip_addresses_array == Qnil) {</div><div class='add'>+        len = 0;</div><div class='add'>+    } else {</div><div class='add'>+        len = RARRAY_LEN(ip_addresses_array);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    for(i=0; i&lt;len; i++) {</div><div class='add'>+        ip_address = rb_ary_entry(ip_addresses_array, i);</div><div class='add'>+        hostp = host_str(ip_address, _hbuf, sizeof(_hbuf), &amp;_additional_flags);</div><div class='add'>+        error = numeric_getaddrinfo(hostp, service, hints, &amp;ai);</div><div class='add'>+        if (error == 0) {</div><div class='add'>+            if (!res_allocated) {</div><div class='add'>+                res_allocated = 1;</div><div class='add'>+                *res = (struct rb_addrinfo *)xmalloc(sizeof(struct rb_addrinfo));</div><div class='add'>+                (*res)-&gt;allocated_by_malloc = 1;</div><div class='add'>+                (*res)-&gt;ai = ai;</div><div class='add'>+                ai_tail = ai;</div><div class='add'>+            } else {</div><div class='add'>+                while (ai_tail-&gt;ai_next) {</div><div class='add'>+                    ai_tail = ai_tail-&gt;ai_next;</div><div class='add'>+                }</div><div class='add'>+                ai_tail-&gt;ai_next = ai;</div><div class='add'>+                ai_tail = ai;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (res_allocated) { // At least one valid result.</div><div class='add'>+        return 0;</div><div class='add'>+    } else {</div><div class='add'>+        return EAI_NONAME;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> struct rb_addrinfo*</div><div class='ctx'> rsock_getaddrinfo(VALUE host, VALUE port, struct addrinfo *hints, int socktype_hack)</div><div class='ctx'> {</div><div class='ctx'>     struct rb_addrinfo* res = NULL;</div><div class='add'>+    struct addrinfo *ai;</div><div class='ctx'>     char *hostp, *portp;</div><div class='del'>-    int error;</div><div class='add'>+    int error = 0;</div><div class='ctx'>     char hbuf[NI_MAXHOST], pbuf[NI_MAXSERV];</div><div class='ctx'>     int additional_flags = 0;</div><div class='ctx'> </div><div class='hunk'>@@ -515,11 +529,47 @@ rsock_getaddrinfo(VALUE host, VALUE port, struct addrinfo *hints, int socktype_h</div><div class='ctx'>     portp = port_str(port, pbuf, sizeof(pbuf), &amp;additional_flags);</div><div class='ctx'> </div><div class='ctx'>     if (socktype_hack &amp;&amp; hints-&gt;ai_socktype == 0 &amp;&amp; str_is_number(portp)) {</div><div class='del'>-       hints-&gt;ai_socktype = SOCK_DGRAM;</div><div class='add'>+        hints-&gt;ai_socktype = SOCK_DGRAM;</div><div class='ctx'>     }</div><div class='ctx'>     hints-&gt;ai_flags |= additional_flags;</div><div class='ctx'> </div><div class='del'>-    error = rb_getaddrinfo(hostp, portp, hints, &amp;res);</div><div class='add'>+    error = numeric_getaddrinfo(hostp, portp, hints, &amp;ai);</div><div class='add'>+    if (error == 0) {</div><div class='add'>+        res = (struct rb_addrinfo *)xmalloc(sizeof(struct rb_addrinfo));</div><div class='add'>+        res-&gt;allocated_by_malloc = 1;</div><div class='add'>+        res-&gt;ai = ai;</div><div class='add'>+    } else {</div><div class='add'>+        VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+        int resolved = 0;</div><div class='add'>+</div><div class='add'>+        if (scheduler != Qnil &amp;&amp; hostp &amp;&amp; !(hints-&gt;ai_flags &amp; AI_NUMERICHOST)) {</div><div class='add'>+            error = rb_scheduler_getaddrinfo(scheduler, host, portp, hints, &amp;res);</div><div class='add'>+</div><div class='add'>+            if (error != EAI_FAIL) {</div><div class='add'>+                resolved = 1;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (!resolved) {</div><div class='add'>+#ifdef GETADDRINFO_EMU</div><div class='add'>+            error = getaddrinfo(hostp, portp, hints, &amp;ai);</div><div class='add'>+#else</div><div class='add'>+            struct getaddrinfo_arg arg;</div><div class='add'>+            MEMZERO(&amp;arg, struct getaddrinfo_arg, 1);</div><div class='add'>+            arg.node = hostp;</div><div class='add'>+            arg.service = portp;</div><div class='add'>+            arg.hints = hints;</div><div class='add'>+            arg.res = &amp;ai;</div><div class='add'>+            error = (int)(VALUE)rb_thread_call_without_gvl(nogvl_getaddrinfo, &amp;arg, RUBY_UBF_IO, 0);</div><div class='add'>+#endif</div><div class='add'>+            if (error == 0) {</div><div class='add'>+                res = (struct rb_addrinfo *)xmalloc(sizeof(struct rb_addrinfo));</div><div class='add'>+                res-&gt;allocated_by_malloc = 0;</div><div class='add'>+                res-&gt;ai = ai;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     if (error) {</div><div class='ctx'>         if (hostp &amp;&amp; hostp[strlen(hostp)-1] == '\n') {</div><div class='ctx'>             rb_raise(rb_eSocket, "newline at the end of hostname");</div><div class='hunk'>@@ -538,7 +588,7 @@ rsock_fd_family(int fd)</div><div class='ctx'> </div><div class='ctx'>     if (fd &lt; 0 || getsockname(fd, &amp;sa, &amp;sa_len) != 0 ||</div><div class='ctx'>         (size_t)sa_len &lt; offsetof(struct sockaddr, sa_family) + sizeof(sa.sa_family)) {</div><div class='del'>-	return AF_UNSPEC;</div><div class='add'>+        return AF_UNSPEC;</div><div class='ctx'>     }</div><div class='ctx'>     return sa.sa_family;</div><div class='ctx'> }</div><div class='hunk'>@@ -569,8 +619,7 @@ rsock_ipaddr(struct sockaddr *sockaddr, socklen_t sockaddrlen, int norevlookup)</div><div class='ctx'>         family = rb_str_dup(rb_id2str(id));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        sprintf(pbuf, "unknown:%d", sockaddr-&gt;sa_family);</div><div class='del'>-        family = rb_str_new2(pbuf);</div><div class='add'>+        family = rb_sprintf("unknown:%d", sockaddr-&gt;sa_family);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     addr1 = Qnil;</div><div class='hunk'>@@ -596,17 +645,22 @@ rsock_ipaddr(struct sockaddr *sockaddr, socklen_t sockaddrlen, int norevlookup)</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='del'>-VALUE</div><div class='del'>-rsock_unixpath_str(struct sockaddr_un *sockaddr, socklen_t len)</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='add'>+static long</div><div class='add'>+unixsocket_len(const struct sockaddr_un *su, socklen_t socklen)</div><div class='ctx'> {</div><div class='del'>-    char *s, *e;</div><div class='del'>-    s = sockaddr-&gt;sun_path;</div><div class='del'>-    e = (char *)sockaddr + len;</div><div class='add'>+    const char *s = su-&gt;sun_path, *e = (const char*)su + socklen;</div><div class='ctx'>     while (s &lt; e &amp;&amp; *(e-1) == '\0')</div><div class='ctx'>         e--;</div><div class='del'>-    if (s &lt;= e)</div><div class='del'>-        return rb_str_new(s, e-s);</div><div class='add'>+    return e - s;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rsock_unixpath_str(struct sockaddr_un *sockaddr, socklen_t len)</div><div class='add'>+{</div><div class='add'>+    long n = unixsocket_len(sockaddr, len);</div><div class='add'>+    if (n &gt;= 0)</div><div class='add'>+        return rb_str_new(sockaddr-&gt;sun_path, n);</div><div class='ctx'>     else</div><div class='ctx'>         return rb_str_new2("");</div><div class='ctx'> }</div><div class='hunk'>@@ -623,19 +677,19 @@ rsock_unix_sockaddr_len(VALUE path)</div><div class='ctx'> {</div><div class='ctx'> #ifdef __linux__</div><div class='ctx'>     if (RSTRING_LEN(path) == 0) {</div><div class='del'>-	/* autobind; see unix(7) for details. */</div><div class='del'>-	return (socklen_t) sizeof(sa_family_t);</div><div class='add'>+        /* autobind; see unix(7) for details. */</div><div class='add'>+        return (socklen_t) sizeof(sa_family_t);</div><div class='ctx'>     }</div><div class='ctx'>     else if (RSTRING_PTR(path)[0] == '\0') {</div><div class='del'>-	/* abstract namespace; see unix(7) for details. */</div><div class='add'>+        /* abstract namespace; see unix(7) for details. */</div><div class='ctx'>         if (SOCKLEN_MAX - offsetof(struct sockaddr_un, sun_path) &lt; (size_t)RSTRING_LEN(path))</div><div class='ctx'>             rb_raise(rb_eArgError, "Linux abstract socket too long");</div><div class='del'>-	return (socklen_t) offsetof(struct sockaddr_un, sun_path) +</div><div class='del'>-	    RSTRING_SOCKLEN(path);</div><div class='add'>+        return (socklen_t) offsetof(struct sockaddr_un, sun_path) +</div><div class='add'>+            RSTRING_SOCKLEN(path);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> #endif</div><div class='del'>-	return (socklen_t) sizeof(struct sockaddr_un);</div><div class='add'>+        return (socklen_t) sizeof(struct sockaddr_un);</div><div class='ctx'> #ifdef __linux__</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -649,8 +703,9 @@ struct hostent_arg {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-make_hostent_internal(struct hostent_arg *arg)</div><div class='add'>+make_hostent_internal(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct hostent_arg *arg = (void *)v;</div><div class='ctx'>     VALUE host = arg-&gt;host;</div><div class='ctx'>     struct addrinfo* addr = arg-&gt;addr-&gt;ai;</div><div class='ctx'>     VALUE (*ipaddr)(struct sockaddr*, socklen_t) = arg-&gt;ipaddr;</div><div class='hunk'>@@ -672,7 +727,7 @@ make_hostent_internal(struct hostent_arg *arg)</div><div class='ctx'>     rb_ary_push(ary, rb_str_new2(hostp));</div><div class='ctx'> </div><div class='ctx'>     if (addr-&gt;ai_canonname &amp;&amp; strlen(addr-&gt;ai_canonname) &lt; NI_MAXHOST &amp;&amp;</div><div class='del'>-	(h = gethostbyname(addr-&gt;ai_canonname))) {</div><div class='add'>+        (h = gethostbyname(addr-&gt;ai_canonname))) {</div><div class='ctx'>         names = rb_ary_new();</div><div class='ctx'>         if (h-&gt;h_aliases != NULL) {</div><div class='ctx'>             for (pch = h-&gt;h_aliases; *pch; pch++) {</div><div class='hunk'>@@ -811,7 +866,7 @@ rsock_addrinfo_new(struct sockaddr *addr, socklen_t len,</div><div class='ctx'> static struct rb_addrinfo *</div><div class='ctx'> call_getaddrinfo(VALUE node, VALUE service,</div><div class='ctx'>                  VALUE family, VALUE socktype, VALUE protocol, VALUE flags,</div><div class='del'>-                 int socktype_hack)</div><div class='add'>+                 int socktype_hack, VALUE timeout)</div><div class='ctx'> {</div><div class='ctx'>     struct addrinfo hints;</div><div class='ctx'>     struct rb_addrinfo *res;</div><div class='hunk'>@@ -820,18 +875,19 @@ call_getaddrinfo(VALUE node, VALUE service,</div><div class='ctx'>     hints.ai_family = NIL_P(family) ? PF_UNSPEC : rsock_family_arg(family);</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(socktype)) {</div><div class='del'>-	hints.ai_socktype = rsock_socktype_arg(socktype);</div><div class='add'>+        hints.ai_socktype = rsock_socktype_arg(socktype);</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(protocol)) {</div><div class='del'>-	hints.ai_protocol = NUM2INT(protocol);</div><div class='add'>+        hints.ai_protocol = NUM2INT(protocol);</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(flags)) {</div><div class='del'>-	hints.ai_flags = NUM2INT(flags);</div><div class='add'>+        hints.ai_flags = NUM2INT(flags);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     res = rsock_getaddrinfo(node, service, &amp;hints, socktype_hack);</div><div class='ctx'> </div><div class='ctx'>     if (res == NULL)</div><div class='del'>-	rb_raise(rb_eSocket, "host not found");</div><div class='add'>+        rb_raise(rb_eSocket, "host not found");</div><div class='ctx'>     return res;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -842,13 +898,13 @@ init_addrinfo_getaddrinfo(rb_addrinfo_t *rai, VALUE node, VALUE service,</div><div class='ctx'>                           VALUE family, VALUE socktype, VALUE protocol, VALUE flags,</div><div class='ctx'>                           VALUE inspectnode, VALUE inspectservice)</div><div class='ctx'> {</div><div class='del'>-    struct rb_addrinfo *res = call_getaddrinfo(node, service, family, socktype, protocol, flags, 1);</div><div class='add'>+    struct rb_addrinfo *res = call_getaddrinfo(node, service, family, socktype, protocol, flags, 1, Qnil);</div><div class='ctx'>     VALUE canonname;</div><div class='ctx'>     VALUE inspectname = rb_str_equal(node, inspectnode) ? Qnil : make_inspectname(inspectnode, inspectservice, res-&gt;ai);</div><div class='ctx'> </div><div class='ctx'>     canonname = Qnil;</div><div class='ctx'>     if (res-&gt;ai-&gt;ai_canonname) {</div><div class='del'>-        canonname = rb_tainted_str_new_cstr(res-&gt;ai-&gt;ai_canonname);</div><div class='add'>+        canonname = rb_str_new_cstr(res-&gt;ai-&gt;ai_canonname);</div><div class='ctx'>         OBJ_FREEZE(canonname);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -898,8 +954,6 @@ make_inspectname(VALUE node, VALUE service, struct addrinfo *res)</div><div class='ctx'>             rb_str_catf(inspectname, ":%d", FIX2INT(service));</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(inspectname)) {</div><div class='del'>-        OBJ_INFECT(inspectname, node);</div><div class='del'>-        OBJ_INFECT(inspectname, service);</div><div class='ctx'>         OBJ_FREEZE(inspectname);</div><div class='ctx'>     }</div><div class='ctx'>     return inspectname;</div><div class='hunk'>@@ -912,13 +966,13 @@ addrinfo_firstonly_new(VALUE node, VALUE service, VALUE family, VALUE socktype,</div><div class='ctx'>     VALUE canonname;</div><div class='ctx'>     VALUE inspectname;</div><div class='ctx'> </div><div class='del'>-    struct rb_addrinfo *res = call_getaddrinfo(node, service, family, socktype, protocol, flags, 0);</div><div class='add'>+    struct rb_addrinfo *res = call_getaddrinfo(node, service, family, socktype, protocol, flags, 0, Qnil);</div><div class='ctx'> </div><div class='ctx'>     inspectname = make_inspectname(node, service, res-&gt;ai);</div><div class='ctx'> </div><div class='ctx'>     canonname = Qnil;</div><div class='ctx'>     if (res-&gt;ai-&gt;ai_canonname) {</div><div class='del'>-        canonname = rb_tainted_str_new_cstr(res-&gt;ai-&gt;ai_canonname);</div><div class='add'>+        canonname = rb_str_new_cstr(res-&gt;ai-&gt;ai_canonname);</div><div class='ctx'>         OBJ_FREEZE(canonname);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -932,13 +986,13 @@ addrinfo_firstonly_new(VALUE node, VALUE service, VALUE family, VALUE socktype,</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-addrinfo_list_new(VALUE node, VALUE service, VALUE family, VALUE socktype, VALUE protocol, VALUE flags)</div><div class='add'>+addrinfo_list_new(VALUE node, VALUE service, VALUE family, VALUE socktype, VALUE protocol, VALUE flags, VALUE timeout)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ret;</div><div class='ctx'>     struct addrinfo *r;</div><div class='ctx'>     VALUE inspectname;</div><div class='ctx'> </div><div class='del'>-    struct rb_addrinfo *res = call_getaddrinfo(node, service, family, socktype, protocol, flags, 0);</div><div class='add'>+    struct rb_addrinfo *res = call_getaddrinfo(node, service, family, socktype, protocol, flags, 0, timeout);</div><div class='ctx'> </div><div class='ctx'>     inspectname = make_inspectname(node, service, res-&gt;ai);</div><div class='ctx'> </div><div class='hunk'>@@ -948,7 +1002,7 @@ addrinfo_list_new(VALUE node, VALUE service, VALUE family, VALUE socktype, VALUE</div><div class='ctx'>         VALUE canonname = Qnil;</div><div class='ctx'> </div><div class='ctx'>         if (r-&gt;ai_canonname) {</div><div class='del'>-            canonname = rb_tainted_str_new_cstr(r-&gt;ai_canonname);</div><div class='add'>+            canonname = rb_str_new_cstr(r-&gt;ai_canonname);</div><div class='ctx'>             OBJ_FREEZE(canonname);</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='hunk'>@@ -964,7 +1018,7 @@ addrinfo_list_new(VALUE node, VALUE service, VALUE family, VALUE socktype, VALUE</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'> static void</div><div class='ctx'> init_unix_addrinfo(rb_addrinfo_t *rai, VALUE path, int socktype)</div><div class='ctx'> {</div><div class='hunk'>@@ -983,7 +1037,13 @@ init_unix_addrinfo(rb_addrinfo_t *rai, VALUE path, int socktype)</div><div class='ctx'> </div><div class='ctx'>     len = rsock_unix_sockaddr_len(path);</div><div class='ctx'>     init_addrinfo(rai, (struct sockaddr *)&amp;un, len,</div><div class='del'>-		  PF_UNIX, socktype, 0, Qnil, Qnil);</div><div class='add'>+                  PF_UNIX, socktype, 0, Qnil, Qnil);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static long</div><div class='add'>+rai_unixsocket_len(const rb_addrinfo_t *rai)</div><div class='add'>+{</div><div class='add'>+    return unixsocket_len(&amp;rai-&gt;addr.un, rai-&gt;sockaddr_len);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -1005,13 +1065,13 @@ init_unix_addrinfo(rb_addrinfo_t *rai, VALUE path, int socktype)</div><div class='ctx'>  * Socket.sockaddr_in or Socket.unpack_sockaddr_un.</div><div class='ctx'>  *</div><div class='ctx'>  * sockaddr examples:</div><div class='del'>- * - ["AF_INET", 46102, "localhost.localdomain", "127.0.0.1"]</div><div class='del'>- * - ["AF_INET6", 42304, "ip6-localhost", "::1"]</div><div class='del'>- * - ["AF_UNIX", "/tmp/sock"]</div><div class='del'>- * - Socket.sockaddr_in("smtp", "2001:DB8::1")</div><div class='del'>- * - Socket.sockaddr_in(80, "172.18.22.42")</div><div class='del'>- * - Socket.sockaddr_in(80, "www.ruby-lang.org")</div><div class='del'>- * - Socket.sockaddr_un("/tmp/sock")</div><div class='add'>+ * - &lt;code&gt;["AF_INET", 46102, "localhost.localdomain", "127.0.0.1"]&lt;/code&gt;</div><div class='add'>+ * - &lt;code&gt;["AF_INET6", 42304, "ip6-localhost", "::1"]&lt;/code&gt;</div><div class='add'>+ * - &lt;code&gt;["AF_UNIX", "/tmp/sock"]&lt;/code&gt;</div><div class='add'>+ * - &lt;code&gt;Socket.sockaddr_in("smtp", "2001:DB8::1")&lt;/code&gt;</div><div class='add'>+ * - &lt;code&gt;Socket.sockaddr_in(80, "172.18.22.42")&lt;/code&gt;</div><div class='add'>+ * - &lt;code&gt;Socket.sockaddr_in(80, "www.ruby-lang.org")&lt;/code&gt;</div><div class='add'>+ * - &lt;code&gt;Socket.sockaddr_un("/tmp/sock")&lt;/code&gt;</div><div class='ctx'>  *</div><div class='ctx'>  * In an AF_INET/AF_INET6 sockaddr array, the 4th element,</div><div class='ctx'>  * numeric IP address, is used to construct socket address in the Addrinfo instance.</div><div class='hunk'>@@ -1059,7 +1119,7 @@ addrinfo_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>         int af;</div><div class='ctx'>         StringValue(afamily);</div><div class='ctx'>         if (rsock_family_to_int(RSTRING_PTR(afamily), RSTRING_LEN(afamily), &amp;af) == -1)</div><div class='del'>-	    rb_raise(rb_eSocket, "unknown address family: %s", StringValueCStr(afamily));</div><div class='add'>+            rb_raise(rb_eSocket, "unknown address family: %s", StringValueCStr(afamily));</div><div class='ctx'>         switch (af) {</div><div class='ctx'>           case AF_INET: /* ["AF_INET", 46102, "localhost.localdomain", "127.0.0.1"] */</div><div class='ctx'> #ifdef INET6</div><div class='hunk'>@@ -1087,7 +1147,7 @@ addrinfo_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>             break;</div><div class='ctx'>           }</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>           case AF_UNIX: /* ["AF_UNIX", "/tmp/sock"] */</div><div class='ctx'>           {</div><div class='ctx'>             VALUE path = rb_ary_entry(sockaddr_ary, 1);</div><div class='hunk'>@@ -1114,16 +1174,16 @@ addrinfo_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-get_afamily(struct sockaddr *addr, socklen_t len)</div><div class='add'>+get_afamily(const struct sockaddr *addr, socklen_t len)</div><div class='ctx'> {</div><div class='del'>-    if ((socklen_t)((char*)&amp;addr-&gt;sa_family + sizeof(addr-&gt;sa_family) - (char*)addr) &lt;= len)</div><div class='add'>+    if ((socklen_t)((const char*)&amp;addr-&gt;sa_family + sizeof(addr-&gt;sa_family) - (char*)addr) &lt;= len)</div><div class='ctx'>         return addr-&gt;sa_family;</div><div class='ctx'>     else</div><div class='ctx'>         return AF_UNSPEC;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ai_get_afamily(rb_addrinfo_t *rai)</div><div class='add'>+ai_get_afamily(const rb_addrinfo_t *rai)</div><div class='ctx'> {</div><div class='ctx'>     return get_afamily(&amp;rai-&gt;addr.addr, rai-&gt;sockaddr_len);</div><div class='ctx'> }</div><div class='hunk'>@@ -1149,45 +1209,45 @@ rsock_inspect_sockaddr(struct sockaddr *sockaddr_arg, socklen_t socklen, VALUE r</div><div class='ctx'>     else {</div><div class='ctx'>         switch (sockaddr-&gt;addr.sa_family) {</div><div class='ctx'>           case AF_UNSPEC:</div><div class='del'>-	  {</div><div class='del'>-	    rb_str_cat2(ret, "UNSPEC");</div><div class='add'>+          {</div><div class='add'>+            rb_str_cat2(ret, "UNSPEC");</div><div class='ctx'>             break;</div><div class='del'>-	  }</div><div class='add'>+          }</div><div class='ctx'> </div><div class='ctx'>           case AF_INET:</div><div class='ctx'>           {</div><div class='ctx'>             struct sockaddr_in *addr;</div><div class='ctx'>             int port;</div><div class='del'>-	    addr = &amp;sockaddr-&gt;in;</div><div class='del'>-	    if ((socklen_t)(((char*)&amp;addr-&gt;sin_addr)-(char*)addr+0+1) &lt;= socklen)</div><div class='del'>-		rb_str_catf(ret, "%d", ((unsigned char*)&amp;addr-&gt;sin_addr)[0]);</div><div class='del'>-	    else</div><div class='del'>-		rb_str_cat2(ret, "?");</div><div class='del'>-	    if ((socklen_t)(((char*)&amp;addr-&gt;sin_addr)-(char*)addr+1+1) &lt;= socklen)</div><div class='del'>-		rb_str_catf(ret, ".%d", ((unsigned char*)&amp;addr-&gt;sin_addr)[1]);</div><div class='del'>-	    else</div><div class='del'>-		rb_str_cat2(ret, ".?");</div><div class='del'>-	    if ((socklen_t)(((char*)&amp;addr-&gt;sin_addr)-(char*)addr+2+1) &lt;= socklen)</div><div class='del'>-		rb_str_catf(ret, ".%d", ((unsigned char*)&amp;addr-&gt;sin_addr)[2]);</div><div class='del'>-	    else</div><div class='del'>-		rb_str_cat2(ret, ".?");</div><div class='del'>-	    if ((socklen_t)(((char*)&amp;addr-&gt;sin_addr)-(char*)addr+3+1) &lt;= socklen)</div><div class='del'>-		rb_str_catf(ret, ".%d", ((unsigned char*)&amp;addr-&gt;sin_addr)[3]);</div><div class='del'>-	    else</div><div class='del'>-		rb_str_cat2(ret, ".?");</div><div class='del'>-</div><div class='del'>-	    if ((socklen_t)(((char*)&amp;addr-&gt;sin_port)-(char*)addr+(int)sizeof(addr-&gt;sin_port)) &lt; socklen) {</div><div class='del'>-		port = ntohs(addr-&gt;sin_port);</div><div class='del'>-		if (port)</div><div class='del'>-		    rb_str_catf(ret, ":%d", port);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rb_str_cat2(ret, ":?");</div><div class='del'>-	    }</div><div class='del'>-	    if ((socklen_t)sizeof(struct sockaddr_in) != socklen)</div><div class='del'>-		rb_str_catf(ret, " (%d bytes for %d bytes sockaddr_in)",</div><div class='del'>-		  (int)socklen,</div><div class='del'>-		  (int)sizeof(struct sockaddr_in));</div><div class='add'>+            addr = &amp;sockaddr-&gt;in;</div><div class='add'>+            if ((socklen_t)(((char*)&amp;addr-&gt;sin_addr)-(char*)addr+0+1) &lt;= socklen)</div><div class='add'>+                rb_str_catf(ret, "%d", ((unsigned char*)&amp;addr-&gt;sin_addr)[0]);</div><div class='add'>+            else</div><div class='add'>+                rb_str_cat2(ret, "?");</div><div class='add'>+            if ((socklen_t)(((char*)&amp;addr-&gt;sin_addr)-(char*)addr+1+1) &lt;= socklen)</div><div class='add'>+                rb_str_catf(ret, ".%d", ((unsigned char*)&amp;addr-&gt;sin_addr)[1]);</div><div class='add'>+            else</div><div class='add'>+                rb_str_cat2(ret, ".?");</div><div class='add'>+            if ((socklen_t)(((char*)&amp;addr-&gt;sin_addr)-(char*)addr+2+1) &lt;= socklen)</div><div class='add'>+                rb_str_catf(ret, ".%d", ((unsigned char*)&amp;addr-&gt;sin_addr)[2]);</div><div class='add'>+            else</div><div class='add'>+                rb_str_cat2(ret, ".?");</div><div class='add'>+            if ((socklen_t)(((char*)&amp;addr-&gt;sin_addr)-(char*)addr+3+1) &lt;= socklen)</div><div class='add'>+                rb_str_catf(ret, ".%d", ((unsigned char*)&amp;addr-&gt;sin_addr)[3]);</div><div class='add'>+            else</div><div class='add'>+                rb_str_cat2(ret, ".?");</div><div class='add'>+</div><div class='add'>+            if ((socklen_t)(((char*)&amp;addr-&gt;sin_port)-(char*)addr+(int)sizeof(addr-&gt;sin_port)) &lt; socklen) {</div><div class='add'>+                port = ntohs(addr-&gt;sin_port);</div><div class='add'>+                if (port)</div><div class='add'>+                    rb_str_catf(ret, ":%d", port);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rb_str_cat2(ret, ":?");</div><div class='add'>+            }</div><div class='add'>+            if ((socklen_t)sizeof(struct sockaddr_in) != socklen)</div><div class='add'>+                rb_str_catf(ret, " (%d bytes for %d bytes sockaddr_in)",</div><div class='add'>+                  (int)socklen,</div><div class='add'>+                  (int)sizeof(struct sockaddr_in));</div><div class='ctx'>             break;</div><div class='ctx'>           }</div><div class='ctx'> </div><div class='hunk'>@@ -1227,21 +1287,20 @@ rsock_inspect_sockaddr(struct sockaddr *sockaddr_arg, socklen_t socklen, VALUE r</div><div class='ctx'>           }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>           case AF_UNIX:</div><div class='ctx'>           {</div><div class='ctx'>             struct sockaddr_un *addr = &amp;sockaddr-&gt;un;</div><div class='ctx'>             char *p, *s, *e;</div><div class='add'>+            long len = unixsocket_len(addr, socklen);</div><div class='ctx'>             s = addr-&gt;sun_path;</div><div class='del'>-            e = (char*)addr + socklen;</div><div class='del'>-            while (s &lt; e &amp;&amp; *(e-1) == '\0')</div><div class='del'>-                e--;</div><div class='del'>-            if (e &lt; s)</div><div class='add'>+            if (len &lt; 0)</div><div class='ctx'>                 rb_str_cat2(ret, "too-short-AF_UNIX-sockaddr");</div><div class='del'>-            else if (s == e)</div><div class='add'>+            else if (len == 0)</div><div class='ctx'>                 rb_str_cat2(ret, "empty-path-AF_UNIX-sockaddr");</div><div class='ctx'>             else {</div><div class='ctx'>                 int printable_only = 1;</div><div class='add'>+                e = s + len;</div><div class='ctx'>                 p = s;</div><div class='ctx'>                 while (p &lt; e) {</div><div class='ctx'>                     printable_only = printable_only &amp;&amp; ISPRINT(*p) &amp;&amp; !ISSPACE(*p);</div><div class='hunk'>@@ -1339,20 +1398,20 @@ rsock_inspect_sockaddr(struct sockaddr *sockaddr_arg, socklen_t socklen, VALUE r</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if defined(AF_LINK) &amp;&amp; defined(HAVE_TYPE_STRUCT_SOCKADDR_DL)</div><div class='del'>-	  /* AF_LINK is defined in 4.4BSD derivations since Net2.</div><div class='del'>-	     link_ntoa is also defined at Net2.</div><div class='add'>+          /* AF_LINK is defined in 4.4BSD derivations since Net2.</div><div class='add'>+             link_ntoa is also defined at Net2.</div><div class='ctx'>              However Debian GNU/kFreeBSD defines AF_LINK but</div><div class='ctx'>              don't have link_ntoa.  */</div><div class='ctx'>           case AF_LINK:</div><div class='del'>-	  {</div><div class='del'>-	    /*</div><div class='del'>-	     * Simple implementation using link_ntoa():</div><div class='del'>-	     * This doesn't work on Debian GNU/kFreeBSD 6.0.7 (squeeze).</div><div class='add'>+          {</div><div class='add'>+            /*</div><div class='add'>+             * Simple implementation using link_ntoa():</div><div class='add'>+             * This doesn't work on Debian GNU/kFreeBSD 6.0.7 (squeeze).</div><div class='ctx'>              * Also, the format is bit different.</div><div class='del'>-	     *</div><div class='del'>-	     * rb_str_catf(ret, "LINK %s", link_ntoa(&amp;sockaddr-&gt;dl));</div><div class='del'>-	     * break;</div><div class='del'>-	     */</div><div class='add'>+             *</div><div class='add'>+             * rb_str_catf(ret, "LINK %s", link_ntoa(&amp;sockaddr-&gt;dl));</div><div class='add'>+             * break;</div><div class='add'>+             */</div><div class='ctx'>             struct sockaddr_dl *addr = &amp;sockaddr-&gt;dl;</div><div class='ctx'>             char *np = NULL, *ap = NULL, *endp;</div><div class='ctx'>             int nlen = 0, alen = 0;</div><div class='hunk'>@@ -1379,14 +1438,14 @@ rsock_inspect_sockaddr(struct sockaddr *sockaddr_arg, socklen_t socklen, VALUE r</div><div class='ctx'>                     alen = (int)(endp - ap);</div><div class='ctx'>             }</div><div class='ctx'> </div><div class='del'>-	    CATSEP;</div><div class='add'>+            CATSEP;</div><div class='ctx'>             if (np)</div><div class='ctx'>                 rb_str_catf(ret, "%.*s", nlen, np);</div><div class='ctx'>             else</div><div class='ctx'>                 rb_str_cat2(ret, "?");</div><div class='ctx'> </div><div class='ctx'>             if (ap &amp;&amp; 0 &lt; alen) {</div><div class='del'>-		CATSEP;</div><div class='add'>+                CATSEP;</div><div class='ctx'>                 for (i = 0; i &lt; alen; i++)</div><div class='ctx'>                     rb_str_catf(ret, "%s%02x", i == 0 ? "" : ":", (unsigned char)ap[i]);</div><div class='ctx'>             }</div><div class='hunk'>@@ -1397,10 +1456,10 @@ rsock_inspect_sockaddr(struct sockaddr *sockaddr_arg, socklen_t socklen, VALUE r</div><div class='ctx'>                 /* longer length is possible behavior because struct sockaddr_dl has "minimum work area, can be larger" as the last field.</div><div class='ctx'>                  * cf. Net2:/usr/src/sys/net/if_dl.h. */</div><div class='ctx'>                 socklen &lt; (socklen_t)(offsetof(struct sockaddr_dl, sdl_data) + addr-&gt;sdl_nlen + addr-&gt;sdl_alen + addr-&gt;sdl_slen)) {</div><div class='del'>-		CATSEP;</div><div class='add'>+                CATSEP;</div><div class='ctx'>                 rb_str_catf(ret, "(%d bytes for %d bytes sockaddr_dl)",</div><div class='ctx'>                     (int)socklen, (int)sizeof(struct sockaddr_dl));</div><div class='del'>-	    }</div><div class='add'>+            }</div><div class='ctx'> </div><div class='ctx'>             rb_str_cat2(ret, "]");</div><div class='ctx'> #undef CATSEP</div><div class='hunk'>@@ -1564,16 +1623,10 @@ addrinfo_mdump(VALUE self)</div><div class='ctx'>     afamily = rb_id2str(id);</div><div class='ctx'> </div><div class='ctx'>     switch(afamily_int) {</div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>       case AF_UNIX:</div><div class='ctx'>       {</div><div class='del'>-        struct sockaddr_un *su = &amp;rai-&gt;addr.un;</div><div class='del'>-        char *s, *e;</div><div class='del'>-        s = su-&gt;sun_path;</div><div class='del'>-        e = (char*)su + rai-&gt;sockaddr_len;</div><div class='del'>-        while (s &lt; e &amp;&amp; *(e-1) == '\0')</div><div class='del'>-            e--;</div><div class='del'>-        sockaddr = rb_str_new(s, e-s);</div><div class='add'>+        sockaddr = rb_str_new(rai-&gt;addr.un.sun_path, rai_unixsocket_len(rai));</div><div class='ctx'>         break;</div><div class='ctx'>       }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -1663,7 +1716,7 @@ addrinfo_mload(VALUE self, VALUE ary)</div><div class='ctx'> </div><div class='ctx'>     v = rb_ary_entry(ary, 1);</div><div class='ctx'>     switch(afamily) {</div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>       case AF_UNIX:</div><div class='ctx'>       {</div><div class='ctx'>         struct sockaddr_un uaddr;</div><div class='hunk'>@@ -1691,7 +1744,7 @@ addrinfo_mload(VALUE self, VALUE ary)</div><div class='ctx'> #endif</div><div class='ctx'>         res = call_getaddrinfo(rb_ary_entry(pair, 0), rb_ary_entry(pair, 1),</div><div class='ctx'>                                INT2NUM(pfamily), INT2NUM(socktype), INT2NUM(protocol),</div><div class='del'>-                               INT2NUM(flags), 1);</div><div class='add'>+                               INT2NUM(flags), 1, Qnil);</div><div class='ctx'> </div><div class='ctx'>         len = res-&gt;ai-&gt;ai_addrlen;</div><div class='ctx'>         memcpy(&amp;ss, res-&gt;ai-&gt;ai_addr, res-&gt;ai-&gt;ai_addrlen);</div><div class='hunk'>@@ -1788,7 +1841,6 @@ addrinfo_to_sockaddr(VALUE self)</div><div class='ctx'>     rb_addrinfo_t *rai = get_addrinfo(self);</div><div class='ctx'>     VALUE ret;</div><div class='ctx'>     ret = rb_str_new((char*)&amp;rai-&gt;addr, rai-&gt;sockaddr_len);</div><div class='del'>-    OBJ_INFECT(ret, self);</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1796,7 +1848,7 @@ addrinfo_to_sockaddr(VALUE self)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   addrinfo.canonname =&gt; string or nil</div><div class='ctx'>  *</div><div class='del'>- * returns the canonical name as an string.</div><div class='add'>+ * returns the canonical name as a string.</div><div class='ctx'>  *</div><div class='ctx'>  * nil is returned if no canonical name.</div><div class='ctx'>  *</div><div class='hunk'>@@ -1957,7 +2009,7 @@ addrinfo_ip_unpack(VALUE self)</div><div class='ctx'>     VALUE ret, portstr;</div><div class='ctx'> </div><div class='ctx'>     if (!IS_IP_FAMILY(family))</div><div class='del'>-	rb_raise(rb_eSocket, "need IPv4 or IPv6 address");</div><div class='add'>+        rb_raise(rb_eSocket, "need IPv4 or IPv6 address");</div><div class='ctx'> </div><div class='ctx'>     vflags = INT2NUM(NI_NUMERICHOST|NI_NUMERICSERV);</div><div class='ctx'>     ret = addrinfo_getnameinfo(1, &amp;vflags, self);</div><div class='hunk'>@@ -1984,7 +2036,7 @@ addrinfo_ip_address(VALUE self)</div><div class='ctx'>     VALUE ret;</div><div class='ctx'> </div><div class='ctx'>     if (!IS_IP_FAMILY(family))</div><div class='del'>-	rb_raise(rb_eSocket, "need IPv4 or IPv6 address");</div><div class='add'>+        rb_raise(rb_eSocket, "need IPv4 or IPv6 address");</div><div class='ctx'> </div><div class='ctx'>     vflags = INT2NUM(NI_NUMERICHOST|NI_NUMERICSERV);</div><div class='ctx'>     ret = addrinfo_getnameinfo(1, &amp;vflags, self);</div><div class='hunk'>@@ -2010,9 +2062,9 @@ addrinfo_ip_port(VALUE self)</div><div class='ctx'>     if (!IS_IP_FAMILY(family)) {</div><div class='ctx'>       bad_family:</div><div class='ctx'> #ifdef AF_INET6</div><div class='del'>-	rb_raise(rb_eSocket, "need IPv4 or IPv6 address");</div><div class='add'>+        rb_raise(rb_eSocket, "need IPv4 or IPv6 address");</div><div class='ctx'> #else</div><div class='del'>-	rb_raise(rb_eSocket, "need IPv4 address");</div><div class='add'>+        rb_raise(rb_eSocket, "need IPv4 address");</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -2032,7 +2084,7 @@ addrinfo_ip_port(VALUE self)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	goto bad_family;</div><div class='add'>+        goto bad_family;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return INT2NUM(port);</div><div class='hunk'>@@ -2140,7 +2192,7 @@ addrinfo_ipv6_multicast_p(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Returns true for IPv6 link local address (ff80::/10).</div><div class='add'>+ * Returns true for IPv6 link local address (fe80::/10).</div><div class='ctx'>  * It returns false otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2152,7 +2204,7 @@ addrinfo_ipv6_linklocal_p(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Returns true for IPv6 site local address (ffc0::/10).</div><div class='add'>+ * Returns true for IPv6 site local address (fec0::/10).</div><div class='ctx'>  * It returns false otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2292,7 +2344,7 @@ addrinfo_ipv6_to_ipv4(VALUE self)</div><div class='ctx'> </div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   addrinfo.unix_path =&gt; path</div><div class='hunk'>@@ -2307,28 +2359,27 @@ addrinfo_unix_path(VALUE self)</div><div class='ctx'>     rb_addrinfo_t *rai = get_addrinfo(self);</div><div class='ctx'>     int family = ai_get_afamily(rai);</div><div class='ctx'>     struct sockaddr_un *addr;</div><div class='del'>-    char *s, *e;</div><div class='add'>+    long n;</div><div class='ctx'> </div><div class='ctx'>     if (family != AF_UNIX)</div><div class='del'>-	rb_raise(rb_eSocket, "need AF_UNIX address");</div><div class='add'>+        rb_raise(rb_eSocket, "need AF_UNIX address");</div><div class='ctx'> </div><div class='ctx'>     addr = &amp;rai-&gt;addr.un;</div><div class='ctx'> </div><div class='del'>-    s = addr-&gt;sun_path;</div><div class='del'>-    e = (char*)addr + rai-&gt;sockaddr_len;</div><div class='del'>-    if (e &lt; s)</div><div class='add'>+    n = rai_unixsocket_len(rai);</div><div class='add'>+    if (n &lt; 0)</div><div class='ctx'>         rb_raise(rb_eSocket, "too short AF_UNIX address: %"PRIuSIZE" bytes given for minimum %"PRIuSIZE" bytes.",</div><div class='del'>-            (size_t)rai-&gt;sockaddr_len, (size_t)(s - (char *)addr));</div><div class='del'>-    if (addr-&gt;sun_path + sizeof(addr-&gt;sun_path) &lt; e)</div><div class='add'>+                 (size_t)rai-&gt;sockaddr_len, offsetof(struct sockaddr_un, sun_path));</div><div class='add'>+    if ((long)sizeof(addr-&gt;sun_path) &lt; n)</div><div class='ctx'>         rb_raise(rb_eSocket,</div><div class='ctx'>             "too long AF_UNIX path (%"PRIuSIZE" bytes given but %"PRIuSIZE" bytes max)",</div><div class='del'>-            (size_t)(e - addr-&gt;sun_path), sizeof(addr-&gt;sun_path));</div><div class='del'>-    while (s &lt; e &amp;&amp; *(e-1) == '\0')</div><div class='del'>-        e--;</div><div class='del'>-    return rb_str_new(s, e-s);</div><div class='add'>+            (size_t)n, sizeof(addr-&gt;sun_path));</div><div class='add'>+    return rb_str_new(addr-&gt;sun_path, n);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+static ID id_timeout;</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   Addrinfo.getaddrinfo(nodename, service, family, socktype, protocol, flags) =&gt; [addrinfo, ...]</div><div class='hunk'>@@ -2375,10 +2426,16 @@ addrinfo_unix_path(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> addrinfo_s_getaddrinfo(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    VALUE node, service, family, socktype, protocol, flags;</div><div class='add'>+    VALUE node, service, family, socktype, protocol, flags, opts, timeout;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "24", &amp;node, &amp;service, &amp;family, &amp;socktype, &amp;protocol, &amp;flags);</div><div class='del'>-    return addrinfo_list_new(node, service, family, socktype, protocol, flags);</div><div class='add'>+    rb_scan_args(argc, argv, "24:", &amp;node, &amp;service, &amp;family, &amp;socktype,</div><div class='add'>+                 &amp;protocol, &amp;flags, &amp;opts);</div><div class='add'>+    rb_get_kwargs(opts, &amp;id_timeout, 0, 1, &amp;timeout);</div><div class='add'>+    if (timeout == Qundef) {</div><div class='add'>+        timeout = Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return addrinfo_list_new(node, service, family, socktype, protocol, flags, timeout);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -2435,7 +2492,7 @@ addrinfo_s_udp(VALUE self, VALUE host, VALUE port)</div><div class='ctx'>             INT2NUM(PF_UNSPEC), INT2NUM(SOCK_DGRAM), INT2NUM(IPPROTO_UDP), INT2FIX(0));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='hunk'>@@ -2466,7 +2523,6 @@ addrinfo_s_unix(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     addr = addrinfo_s_allocate(rb_cAddrinfo);</div><div class='ctx'>     DATA_PTR(addr) = rai = alloc_addrinfo();</div><div class='ctx'>     init_unix_addrinfo(rai, path, socktype);</div><div class='del'>-    OBJ_INFECT(addr, path);</div><div class='ctx'>     return addr;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2563,7 +2619,9 @@ rsock_init_addrinfo(void)</div><div class='ctx'>      * The Addrinfo class maps &lt;tt&gt;struct addrinfo&lt;/tt&gt; to ruby.  This</div><div class='ctx'>      * structure identifies an Internet host and a service.</div><div class='ctx'>      */</div><div class='del'>-    rb_cAddrinfo = rb_define_class("Addrinfo", rb_cData);</div><div class='add'>+    id_timeout = rb_intern("timeout");</div><div class='add'>+</div><div class='add'>+    rb_cAddrinfo = rb_define_class("Addrinfo", rb_cObject);</div><div class='ctx'>     rb_define_alloc_func(rb_cAddrinfo, addrinfo_s_allocate);</div><div class='ctx'>     rb_define_method(rb_cAddrinfo, "initialize", addrinfo_initialize, -1);</div><div class='ctx'>     rb_define_method(rb_cAddrinfo, "inspect", addrinfo_inspect, 0);</div><div class='hunk'>@@ -2572,7 +2630,7 @@ rsock_init_addrinfo(void)</div><div class='ctx'>     rb_define_singleton_method(rb_cAddrinfo, "ip", addrinfo_s_ip, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cAddrinfo, "tcp", addrinfo_s_tcp, 2);</div><div class='ctx'>     rb_define_singleton_method(rb_cAddrinfo, "udp", addrinfo_s_udp, 2);</div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>     rb_define_singleton_method(rb_cAddrinfo, "unix", addrinfo_s_unix, -1);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -2613,7 +2671,7 @@ rsock_init_addrinfo(void)</div><div class='ctx'>     rb_define_method(rb_cAddrinfo, "ipv6_to_ipv4", addrinfo_ipv6_to_ipv4, 0);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>     rb_define_method(rb_cAddrinfo, "unix_path", addrinfo_unix_path, 0);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='head'>diff --git a/ext/socket/rubysocket.h b/ext/socket/rubysocket.h<br/>index 0ce77a5f6e..5f803ba0da 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/rubysocket.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/rubysocket.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/rubysocket.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/rubysocket.h</a></div><div class='hunk'>@@ -1,12 +1,22 @@</div><div class='ctx'> #ifndef RUBY_SOCKET_H</div><div class='ctx'> #define RUBY_SOCKET_H 1</div><div class='ctx'> </div><div class='del'>-#include "ruby/ruby.h"</div><div class='del'>-#include "ruby/io.h"</div><div class='del'>-#include "ruby/thread.h"</div><div class='del'>-#include "ruby/util.h"</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "ruby/config.h"</div><div class='add'>+#include RUBY_EXTCONF_H</div><div class='add'>+</div><div class='add'>+#if defined(__sun) || defined(_AIX)</div><div class='add'>+/* (Recent?)  Solaris' &lt;nfs/nfs.h&gt; have conflicting definition of T_DATA.  Let</div><div class='add'>+ * us honour system definition by undefining ours.</div><div class='add'>+ *</div><div class='add'>+ * See also [ruby-core:4261]</div><div class='add'>+ */</div><div class='add'>+# include "ruby/ruby.h"</div><div class='add'>+# undef T_DATA</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include &lt;errno.h&gt;</div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='add'>+</div><div class='ctx'> #include &lt;sys/types.h&gt;</div><div class='ctx'> #include &lt;sys/stat.h&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -23,16 +33,13 @@</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef _WIN32</div><div class='add'>+#  include &lt;winsock2.h&gt;</div><div class='add'>+#  include &lt;ws2tcpip.h&gt;</div><div class='add'>+#  include &lt;iphlpapi.h&gt;</div><div class='ctx'> #  if defined(_MSC_VER)</div><div class='ctx'> #    undef HAVE_TYPE_STRUCT_SOCKADDR_DL</div><div class='ctx'> #  endif</div><div class='del'>-/*</div><div class='del'>- * FIXME: failures if we make nonblocking the default</div><div class='del'>- * [ruby-core:89973] [ruby-core:89976] [ruby-core:89977] [Bug #14968]</div><div class='del'>- */</div><div class='del'>-#  define RSOCK_NONBLOCK_DEFAULT (0)</div><div class='ctx'> #else</div><div class='del'>-#  define RSOCK_NONBLOCK_DEFAULT (0)</div><div class='ctx'> #  include &lt;sys/socket.h&gt;</div><div class='ctx'> #  include &lt;netinet/in.h&gt;</div><div class='ctx'> #  ifdef HAVE_NETINET_IN_SYSTM_H</div><div class='hunk'>@@ -56,16 +63,20 @@</div><div class='ctx'> #ifdef HAVE_NETPACKET_PACKET_H</div><div class='ctx'> #  include &lt;netpacket/packet.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_NET_ETHERNET_H</div><div class='ctx'> #  include &lt;net/ethernet.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#include &lt;errno.h&gt;</div><div class='del'>-</div><div class='ctx'> #ifdef HAVE_SYS_UN_H</div><div class='ctx'> #  include &lt;sys/un.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_AFUNIX_H</div><div class='add'>+// Windows doesn't have sys/un.h, but it does have afunix.h just to be special:</div><div class='add'>+#  include &lt;afunix.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #if defined(HAVE_FCNTL)</div><div class='ctx'> #  ifdef HAVE_SYS_SELECT_H</div><div class='ctx'> #    include &lt;sys/select.h&gt;</div><div class='hunk'>@@ -87,12 +98,15 @@</div><div class='ctx'> #  endif</div><div class='ctx'> #  include &lt;ifaddrs.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_SYS_IOCTL_H</div><div class='ctx'> #  include &lt;sys/ioctl.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_SYS_SOCKIO_H</div><div class='ctx'> #  include &lt;sys/sockio.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_NET_IF_H</div><div class='ctx'> #  include &lt;net/if.h&gt;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -100,16 +114,41 @@</div><div class='ctx'> #ifdef HAVE_SYS_PARAM_H</div><div class='ctx'> #  include &lt;sys/param.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_SYS_UCRED_H</div><div class='ctx'> #  include &lt;sys/ucred.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_UCRED_H</div><div class='ctx'> #  include &lt;ucred.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_NET_IF_DL_H</div><div class='ctx'> #  include &lt;net/if_dl.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifdef SOCKS5</div><div class='add'>+#  include &lt;socks.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_GETADDRINFO</div><div class='add'>+#  include "addrinfo.h"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/array.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/gc.h"</div><div class='add'>+#include "internal/io.h"</div><div class='add'>+#include "internal/thread.h"</div><div class='add'>+#include "internal/vm.h"</div><div class='add'>+#include "ruby/io.h"</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/thread.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "sockport.h"</div><div class='add'>+#include "ruby/fiber/scheduler.h"</div><div class='add'>+</div><div class='ctx'> #ifndef HAVE_TYPE_SOCKLEN_T</div><div class='ctx'> typedef int socklen_t;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -143,11 +182,6 @@ unsigned int if_nametoindex(const char *);</div><div class='ctx'>  */</div><div class='ctx'> #define pseudo_AF_FTIP pseudo_AF_RTIP</div><div class='ctx'> </div><div class='del'>-#ifndef HAVE_GETADDRINFO</div><div class='del'>-#  include "addrinfo.h"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include "sockport.h"</div><div class='ctx'> </div><div class='ctx'> #ifndef NI_MAXHOST</div><div class='ctx'> #  define NI_MAXHOST 1025</div><div class='hunk'>@@ -229,7 +263,6 @@ typedef union {</div><div class='ctx'> #define INET_SOCKS  2</div><div class='ctx'> </div><div class='ctx'> extern int rsock_do_not_reverse_lookup;</div><div class='del'>-extern int rsock_cmsg_cloexec_state;</div><div class='ctx'> #define FMODE_NOREVLOOKUP 0x100</div><div class='ctx'> </div><div class='ctx'> /* common socket families only */</div><div class='hunk'>@@ -243,7 +276,7 @@ extern VALUE rb_cIPSocket;</div><div class='ctx'> extern VALUE rb_cTCPSocket;</div><div class='ctx'> extern VALUE rb_cTCPServer;</div><div class='ctx'> extern VALUE rb_cUDPSocket;</div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'> extern VALUE rb_cUNIXSocket;</div><div class='ctx'> extern VALUE rb_cUNIXServer;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -255,9 +288,7 @@ extern VALUE rb_eSocket;</div><div class='ctx'> </div><div class='ctx'> #ifdef SOCKS</div><div class='ctx'> extern VALUE rb_cSOCKSSocket;</div><div class='del'>-#  ifdef SOCKS5</div><div class='del'>-#    include &lt;socks.h&gt;</div><div class='del'>-#  else</div><div class='add'>+#  ifndef SOCKS5</div><div class='ctx'> void SOCKSinit();</div><div class='ctx'> int Rconnect();</div><div class='ctx'> #  endif</div><div class='hunk'>@@ -291,13 +322,13 @@ struct rb_addrinfo {</div><div class='ctx'>   struct addrinfo *ai;</div><div class='ctx'>   int allocated_by_malloc;</div><div class='ctx'> };</div><div class='del'>-int rb_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct rb_addrinfo **res);</div><div class='ctx'> void rb_freeaddrinfo(struct rb_addrinfo *ai);</div><div class='ctx'> VALUE rsock_freeaddrinfo(VALUE arg);</div><div class='ctx'> int rb_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);</div><div class='ctx'> int rsock_fd_family(int fd);</div><div class='ctx'> struct rb_addrinfo *rsock_addrinfo(VALUE host, VALUE port, int family, int socktype, int flags);</div><div class='ctx'> struct rb_addrinfo *rsock_getaddrinfo(VALUE host, VALUE port, struct addrinfo *hints, int socktype_hack);</div><div class='add'>+</div><div class='ctx'> VALUE rsock_fd_socket_addrinfo(int fd, struct sockaddr *addr, socklen_t len);</div><div class='ctx'> VALUE rsock_io_socket_addrinfo(VALUE io, struct sockaddr *addr, socklen_t len);</div><div class='ctx'> </div><div class='hunk'>@@ -313,7 +344,7 @@ VALUE rsock_sockaddr_obj(struct sockaddr *addr, socklen_t len);</div><div class='ctx'> </div><div class='ctx'> int rsock_revlookup_flag(VALUE revlookup, int *norevlookup);</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'> VALUE rsock_unixpath_str(struct sockaddr_un *sockaddr, socklen_t len);</div><div class='ctx'> VALUE rsock_unixaddr(struct sockaddr_un *sockaddr, socklen_t len);</div><div class='ctx'> socklen_t rsock_unix_sockaddr_len(VALUE path);</div><div class='hunk'>@@ -323,7 +354,7 @@ int rsock_socket(int domain, int type, int proto);</div><div class='ctx'> int rsock_detect_cloexec(int fd);</div><div class='ctx'> VALUE rsock_init_sock(VALUE sock, int fd);</div><div class='ctx'> VALUE rsock_sock_s_socketpair(int argc, VALUE *argv, VALUE klass);</div><div class='del'>-VALUE rsock_init_inetsock(VALUE sock, VALUE remote_host, VALUE remote_serv, VALUE local_host, VALUE local_serv, int type);</div><div class='add'>+VALUE rsock_init_inetsock(VALUE sock, VALUE remote_host, VALUE remote_serv, VALUE local_host, VALUE local_serv, int type, VALUE resolv_timeout, VALUE connect_timeout);</div><div class='ctx'> VALUE rsock_init_unixsock(VALUE sock, VALUE path, int server);</div><div class='ctx'> </div><div class='ctx'> struct rsock_send_arg {</div><div class='hunk'>@@ -345,23 +376,23 @@ enum sock_recv_type {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> VALUE rsock_s_recvfrom_nonblock(VALUE sock, VALUE len, VALUE flg, VALUE str,</div><div class='del'>-			        VALUE ex, enum sock_recv_type from);</div><div class='add'>+                                VALUE ex, enum sock_recv_type from);</div><div class='ctx'> VALUE rsock_s_recvfrom(VALUE sock, int argc, VALUE *argv, enum sock_recv_type from);</div><div class='ctx'> </div><div class='del'>-int rsock_connect(int fd, const struct sockaddr *sockaddr, int len, int socks);</div><div class='add'>+int rsock_connect(int fd, const struct sockaddr *sockaddr, int len, int socks, struct timeval *timeout);</div><div class='ctx'> </div><div class='del'>-VALUE rsock_s_accept(VALUE klass, int fd, struct sockaddr *sockaddr, socklen_t *len);</div><div class='add'>+VALUE rsock_s_accept(VALUE klass, VALUE io, struct sockaddr *sockaddr, socklen_t *len);</div><div class='ctx'> VALUE rsock_s_accept_nonblock(VALUE klass, VALUE ex, rb_io_t *fptr,</div><div class='del'>-			      struct sockaddr *sockaddr, socklen_t *len);</div><div class='add'>+                              struct sockaddr *sockaddr, socklen_t *len);</div><div class='ctx'> VALUE rsock_sock_listen(VALUE sock, VALUE log);</div><div class='ctx'> </div><div class='ctx'> VALUE rsock_sockopt_new(int family, int level, int optname, VALUE data);</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_SENDMSG)</div><div class='ctx'> VALUE rsock_bsock_sendmsg(VALUE sock, VALUE data, VALUE flags,</div><div class='del'>-			  VALUE dest_sockaddr, VALUE controls);</div><div class='add'>+                          VALUE dest_sockaddr, VALUE controls);</div><div class='ctx'> VALUE rsock_bsock_sendmsg_nonblock(VALUE sock, VALUE data, VALUE flags,</div><div class='del'>-			     VALUE dest_sockaddr, VALUE controls, VALUE ex);</div><div class='add'>+                             VALUE dest_sockaddr, VALUE controls, VALUE ex);</div><div class='ctx'> #else</div><div class='ctx'> #define rsock_bsock_sendmsg rb_f_notimplement</div><div class='ctx'> #define rsock_bsock_sendmsg_nonblock rb_f_notimplement</div><div class='hunk'>@@ -369,9 +400,9 @@ VALUE rsock_bsock_sendmsg_nonblock(VALUE sock, VALUE data, VALUE flags,</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_RECVMSG)</div><div class='ctx'> VALUE rsock_bsock_recvmsg(VALUE sock, VALUE dlen, VALUE clen, VALUE flags,</div><div class='del'>-			  VALUE scm_rights);</div><div class='add'>+                          VALUE scm_rights);</div><div class='ctx'> VALUE rsock_bsock_recvmsg_nonblock(VALUE sock, VALUE dlen, VALUE clen,</div><div class='del'>-				   VALUE flags, VALUE scm_rights, VALUE ex);</div><div class='add'>+                                   VALUE flags, VALUE scm_rights, VALUE ex);</div><div class='ctx'> ssize_t rsock_recvmsg(int socket, struct msghdr *message, int flags);</div><div class='ctx'> #else</div><div class='ctx'> #define rsock_bsock_recvmsg rb_f_notimplement</div><div class='hunk'>@@ -409,30 +440,17 @@ NORETURN(void rsock_sys_fail_sockaddr(const char *, struct sockaddr *addr, sockl</div><div class='ctx'> NORETURN(void rsock_sys_fail_raddrinfo(const char *, VALUE rai));</div><div class='ctx'> NORETURN(void rsock_sys_fail_raddrinfo_or_sockaddr(const char *, VALUE addr, VALUE rai));</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * It is safe on Linux to attempt using a socket without waiting on it in</div><div class='del'>- * all cases.  For some syscalls (e.g. accept/accept4), blocking on the</div><div class='del'>- * syscall instead of relying on select/poll allows the kernel to use</div><div class='del'>- * "wake-one" behavior and avoid the thundering herd problem.</div><div class='del'>- * This is likely safe on all other *nix-like systems, so this safe list</div><div class='del'>- * can be expanded by interested parties.</div><div class='del'>- */</div><div class='del'>-#if defined(__linux__)</div><div class='del'>-static inline int rsock_maybe_fd_writable(int fd) { return 1; }</div><div class='del'>-static inline void rsock_maybe_wait_fd(int fd) { }</div><div class='del'>-#  ifdef MSG_DONTWAIT</div><div class='del'>-#    define MSG_DONTWAIT_RELIABLE 1</div><div class='del'>-#  endif</div><div class='del'>-#else /* some systems (mswin/mingw) need these.  ref: r36946 */</div><div class='del'>-#  define rsock_maybe_fd_writable(fd) rb_thread_fd_writable((fd))</div><div class='del'>-#  define rsock_maybe_wait_fd(fd) rb_thread_wait_fd((fd))</div><div class='add'>+#if defined(__MINGW32__) || defined(_WIN32)</div><div class='add'>+#define RSOCK_WAIT_BEFORE_BLOCKING</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * some OSes may support MSG_DONTWAIT inconsistently depending on socket</div><div class='ctx'>  * type, we only expect Linux to support it consistently for all socket types.</div><div class='ctx'>  */</div><div class='del'>-#ifndef MSG_DONTWAIT_RELIABLE</div><div class='add'>+#if defined(MSG_DONTWAIT) &amp;&amp; defined(__linux__)</div><div class='add'>+#  define MSG_DONTWAIT_RELIABLE 1</div><div class='add'>+#else</div><div class='ctx'> #  define MSG_DONTWAIT_RELIABLE 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='head'>diff --git a/ext/socket/socket.c b/ext/socket/socket.c<br/>index 0059595e1b..eb74f7a936 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/socket.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/socket.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/socket.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/socket.c</a></div><div class='hunk'>@@ -26,7 +26,11 @@ rsock_syserr_fail_host_port(int err, const char *mesg, VALUE host, VALUE port)</div><div class='ctx'>     VALUE message;</div><div class='ctx'> </div><div class='ctx'>     message = rb_sprintf("%s for %+"PRIsVALUE" port % "PRIsVALUE"",</div><div class='del'>-			 mesg, host, port);</div><div class='add'>+                         mesg, host, port);</div><div class='add'>+</div><div class='add'>+    if (err == ETIMEDOUT) {</div><div class='add'>+        rb_exc_raise(rb_exc_new3(rb_eIOTimeoutError, message));</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     rb_syserr_fail_str(err, message);</div><div class='ctx'> }</div><div class='hunk'>@@ -43,11 +47,11 @@ rsock_syserr_fail_path(int err, const char *mesg, VALUE path)</div><div class='ctx'>     VALUE message;</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(path, T_STRING)) {</div><div class='del'>-	message = rb_sprintf("%s for % "PRIsVALUE"", mesg, path);</div><div class='del'>-	rb_syserr_fail_str(err, message);</div><div class='add'>+        message = rb_sprintf("%s for % "PRIsVALUE"", mesg, path);</div><div class='add'>+        rb_syserr_fail_str(err, message);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_syserr_fail(err, mesg);</div><div class='add'>+        rb_syserr_fail(err, mesg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -96,12 +100,12 @@ rsock_syserr_fail_raddrinfo_or_sockaddr(int err, const char *mesg, VALUE addr, V</div><div class='ctx'>     if (NIL_P(rai)) {</div><div class='ctx'>         StringValue(addr);</div><div class='ctx'> </div><div class='del'>-	rsock_syserr_fail_sockaddr(err, mesg,</div><div class='add'>+        rsock_syserr_fail_sockaddr(err, mesg,</div><div class='ctx'>             (struct sockaddr *)RSTRING_PTR(addr),</div><div class='ctx'>             (socklen_t)RSTRING_LEN(addr)); /* overflow should be checked already */</div><div class='ctx'>     }</div><div class='ctx'>     else</div><div class='del'>-	rsock_syserr_fail_raddrinfo(err, mesg, rai);</div><div class='add'>+        rsock_syserr_fail_raddrinfo(err, mesg, rai);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -168,93 +172,47 @@ pair_yield(VALUE pair)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if defined HAVE_SOCKETPAIR</div><div class='del'>-</div><div class='del'>-#ifdef SOCK_CLOEXEC</div><div class='ctx'> static int</div><div class='del'>-rsock_socketpair0(int domain, int type, int protocol, int sv[2])</div><div class='add'>+rsock_socketpair0(int domain, int type, int protocol, int descriptors[2])</div><div class='ctx'> {</div><div class='del'>-    int ret;</div><div class='del'>-    static int cloexec_state = -1; /* &lt;0: unknown, 0: ignored, &gt;0: working */</div><div class='del'>-    static const int default_flags = SOCK_CLOEXEC|RSOCK_NONBLOCK_DEFAULT;</div><div class='add'>+#ifdef SOCK_CLOEXEC</div><div class='add'>+    type |= SOCK_CLOEXEC;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    if (cloexec_state &gt; 0) { /* common path, if SOCK_CLOEXEC is defined */</div><div class='del'>-        ret = socketpair(domain, type|default_flags, protocol, sv);</div><div class='del'>-        if (ret == 0 &amp;&amp; (sv[0] &lt;= 2 || sv[1] &lt;= 2)) {</div><div class='del'>-            goto fix_cloexec; /* highly unlikely */</div><div class='del'>-        }</div><div class='del'>-        goto update_max_fd;</div><div class='del'>-    }</div><div class='del'>-    else if (cloexec_state &lt; 0) { /* usually runs once only for detection */</div><div class='del'>-        ret = socketpair(domain, type|default_flags, protocol, sv);</div><div class='del'>-        if (ret == 0) {</div><div class='del'>-            cloexec_state = rsock_detect_cloexec(sv[0]);</div><div class='del'>-            if ((cloexec_state == 0) || (sv[0] &lt;= 2 || sv[1] &lt;= 2))</div><div class='del'>-                goto fix_cloexec;</div><div class='del'>-            goto update_max_fd;</div><div class='del'>-        }</div><div class='del'>-        else if (ret == -1 &amp;&amp; errno == EINVAL) {</div><div class='del'>-            /* SOCK_CLOEXEC is available since Linux 2.6.27.  Linux 2.6.18 fails with EINVAL */</div><div class='del'>-            ret = socketpair(domain, type, protocol, sv);</div><div class='del'>-            if (ret != -1) {</div><div class='del'>-                /* The reason of EINVAL may be other than SOCK_CLOEXEC.</div><div class='del'>-                 * So disable SOCK_CLOEXEC only if socketpair() succeeds without SOCK_CLOEXEC.</div><div class='del'>-                 * Ex. Socket.pair(:UNIX, 0xff) fails with EINVAL.</div><div class='del'>-                 */</div><div class='del'>-                cloexec_state = 0;</div><div class='del'>-            }</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    else { /* cloexec_state == 0 */</div><div class='del'>-        ret = socketpair(domain, type, protocol, sv);</div><div class='del'>-    }</div><div class='del'>-    if (ret == -1) {</div><div class='del'>-        return -1;</div><div class='del'>-    }</div><div class='add'>+#ifdef SOCK_NONBLOCK</div><div class='add'>+    type |= SOCK_NONBLOCK;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-fix_cloexec:</div><div class='del'>-    rb_maygvl_fd_fix_cloexec(sv[0]);</div><div class='del'>-    rb_maygvl_fd_fix_cloexec(sv[1]);</div><div class='del'>-    if (RSOCK_NONBLOCK_DEFAULT) {</div><div class='del'>-        rsock_make_fd_nonblock(sv[0]);</div><div class='del'>-        rsock_make_fd_nonblock(sv[1]);</div><div class='del'>-    }</div><div class='add'>+    int result = socketpair(domain, type, protocol, descriptors);</div><div class='ctx'> </div><div class='del'>-update_max_fd:</div><div class='del'>-    rb_update_max_fd(sv[0]);</div><div class='del'>-    rb_update_max_fd(sv[1]);</div><div class='add'>+    if (result == -1)</div><div class='add'>+        return -1;</div><div class='ctx'> </div><div class='del'>-    return ret;</div><div class='del'>-}</div><div class='del'>-#else /* !SOCK_CLOEXEC */</div><div class='del'>-static int</div><div class='del'>-rsock_socketpair0(int domain, int type, int protocol, int sv[2])</div><div class='del'>-{</div><div class='del'>-    int ret = socketpair(domain, type, protocol, sv);</div><div class='add'>+#ifndef SOCK_CLOEXEC</div><div class='add'>+    rb_fd_fix_cloexec(descriptors[0]);</div><div class='add'>+    rb_fd_fix_cloexec(descriptors[1]);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    if (ret == -1)</div><div class='del'>-	return -1;</div><div class='add'>+#ifndef SOCK_NONBLOCK</div><div class='add'>+    rsock_make_fd_nonblock(descriptors[0]);</div><div class='add'>+    rsock_make_fd_nonblock(descriptors[1]);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    rb_fd_fix_cloexec(sv[0]);</div><div class='del'>-    rb_fd_fix_cloexec(sv[1]);</div><div class='del'>-    if (RSOCK_NONBLOCK_DEFAULT) {</div><div class='del'>-        rsock_make_fd_nonblock(sv[0]);</div><div class='del'>-        rsock_make_fd_nonblock(sv[1]);</div><div class='del'>-    }</div><div class='del'>-    return ret;</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='del'>-#endif /* !SOCK_CLOEXEC */</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-rsock_socketpair(int domain, int type, int protocol, int sv[2])</div><div class='add'>+rsock_socketpair(int domain, int type, int protocol, int descriptors[2])</div><div class='ctx'> {</div><div class='del'>-    int ret;</div><div class='add'>+    int result;</div><div class='add'>+</div><div class='add'>+    result = rsock_socketpair0(domain, type, protocol, descriptors);</div><div class='ctx'> </div><div class='del'>-    ret = rsock_socketpair0(domain, type, protocol, sv);</div><div class='del'>-    if (ret &lt; 0 &amp;&amp; rb_gc_for_fd(errno)) {</div><div class='del'>-        ret = rsock_socketpair0(domain, type, protocol, sv);</div><div class='add'>+    if (result &lt; 0 &amp;&amp; rb_gc_for_fd(errno)) {</div><div class='add'>+        result = rsock_socketpair0(domain, type, protocol, descriptors);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return ret;</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -302,7 +260,7 @@ rsock_sock_s_socketpair(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     p = NUM2INT(protocol);</div><div class='ctx'>     ret = rsock_socketpair(d, t, p, sp);</div><div class='ctx'>     if (ret &lt; 0) {</div><div class='del'>-	rb_sys_fail("socketpair(2)");</div><div class='add'>+        rb_sys_fail("socketpair(2)");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     s1 = rsock_init_sock(rb_obj_alloc(klass), sp[0]);</div><div class='hunk'>@@ -376,7 +334,7 @@ rsock_sock_s_socketpair(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>  * * Errno::EOPNOTSUPP - the calling +socket+ is listening and cannot be connected</div><div class='ctx'>  * * Errno::EPROTOTYPE - the _sockaddr_ has a different type than the socket</div><div class='ctx'>  *   bound to the specified peer address</div><div class='del'>- * * Errno::ETIMEDOUT - the attempt to connect time out before a connection</div><div class='add'>+ * * Errno::ETIMEDOUT - the attempt to connect timed out before a connection</div><div class='ctx'>  *   was made.</div><div class='ctx'>  *</div><div class='ctx'>  * On unix-based systems if the address family of the calling +socket+ is</div><div class='hunk'>@@ -417,7 +375,7 @@ rsock_sock_s_socketpair(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>  * * Errno::EHOSTUNREACH - no route to the network is present</div><div class='ctx'>  * * Errno::ENOBUFS - no buffer space is available</div><div class='ctx'>  * * Errno::ENOTSOCK - the +socket+ argument does not refer to a socket</div><div class='del'>- * * Errno::ETIMEDOUT - the attempt to connect time out before a connection</div><div class='add'>+ * * Errno::ETIMEDOUT - the attempt to connect timed out before a connection</div><div class='ctx'>  *   was made.</div><div class='ctx'>  * * Errno::EWOULDBLOCK - the socket is marked as nonblocking and the</div><div class='ctx'>  *   connection cannot be completed immediately</div><div class='hunk'>@@ -439,9 +397,9 @@ sock_connect(VALUE sock, VALUE addr)</div><div class='ctx'>     addr = rb_str_new4(addr);</div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     fd = fptr-&gt;fd;</div><div class='del'>-    n = rsock_connect(fd, (struct sockaddr*)RSTRING_PTR(addr), RSTRING_SOCKLEN(addr), 0);</div><div class='add'>+    n = rsock_connect(fd, (struct sockaddr*)RSTRING_PTR(addr), RSTRING_SOCKLEN(addr), 0, NULL);</div><div class='ctx'>     if (n &lt; 0) {</div><div class='del'>-	rsock_sys_fail_raddrinfo_or_sockaddr("connect(2)", addr, rai);</div><div class='add'>+        rsock_sys_fail_raddrinfo_or_sockaddr("connect(2)", addr, rai);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(n);</div><div class='hunk'>@@ -461,19 +419,19 @@ sock_connect_nonblock(VALUE sock, VALUE addr, VALUE ex)</div><div class='ctx'>     rb_io_set_nonblock(fptr);</div><div class='ctx'>     n = connect(fptr-&gt;fd, (struct sockaddr*)RSTRING_PTR(addr), RSTRING_SOCKLEN(addr));</div><div class='ctx'>     if (n &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	if (e == EINPROGRESS) {</div><div class='add'>+        int e = errno;</div><div class='add'>+        if (e == EINPROGRESS) {</div><div class='ctx'>             if (ex == Qfalse) {</div><div class='ctx'>                 return sym_wait_writable;</div><div class='ctx'>             }</div><div class='ctx'>             rb_readwrite_syserr_fail(RB_IO_WAIT_WRITABLE, e, "connect(2) would block");</div><div class='del'>-	}</div><div class='del'>-	if (e == EISCONN) {</div><div class='add'>+        }</div><div class='add'>+        if (e == EISCONN) {</div><div class='ctx'>             if (ex == Qfalse) {</div><div class='ctx'>                 return INT2FIX(0);</div><div class='ctx'>             }</div><div class='del'>-	}</div><div class='del'>-	rsock_syserr_fail_raddrinfo_or_sockaddr(e, "connect(2)", addr, rai);</div><div class='add'>+        }</div><div class='add'>+        rsock_syserr_fail_raddrinfo_or_sockaddr(e, "connect(2)", addr, rai);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(n);</div><div class='hunk'>@@ -574,7 +532,7 @@ sock_bind(VALUE sock, VALUE addr)</div><div class='ctx'>     SockAddrStringValueWithAddrinfo(addr, rai);</div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     if (bind(fptr-&gt;fd, (struct sockaddr*)RSTRING_PTR(addr), RSTRING_SOCKLEN(addr)) &lt; 0)</div><div class='del'>-	rsock_sys_fail_raddrinfo_or_sockaddr("bind(2)", addr, rai);</div><div class='add'>+        rsock_sys_fail_raddrinfo_or_sockaddr("bind(2)", addr, rai);</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='hunk'>@@ -658,7 +616,7 @@ rsock_sock_listen(VALUE sock, VALUE log)</div><div class='ctx'>     backlog = NUM2INT(log);</div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     if (listen(fptr-&gt;fd, backlog) &lt; 0)</div><div class='del'>-	rb_sys_fail("listen(2)");</div><div class='add'>+        rb_sys_fail("listen(2)");</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='hunk'>@@ -796,17 +754,14 @@ sock_recvfrom_nonblock(VALUE sock, VALUE len, VALUE flg, VALUE str, VALUE ex)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-sock_accept(VALUE sock)</div><div class='add'>+sock_accept(VALUE server)</div><div class='ctx'> {</div><div class='del'>-    rb_io_t *fptr;</div><div class='del'>-    VALUE sock2;</div><div class='del'>-    union_sockaddr buf;</div><div class='del'>-    socklen_t len = (socklen_t)sizeof buf;</div><div class='add'>+    union_sockaddr buffer;</div><div class='add'>+    socklen_t length = (socklen_t)sizeof(buffer);</div><div class='ctx'> </div><div class='del'>-    GetOpenFile(sock, fptr);</div><div class='del'>-    sock2 = rsock_s_accept(rb_cSocket,fptr-&gt;fd,&amp;buf.addr,&amp;len);</div><div class='add'>+    VALUE peer = rsock_s_accept(rb_cSocket, server, &amp;buffer.addr, &amp;length);</div><div class='ctx'> </div><div class='del'>-    return rb_assoc_new(sock2, rsock_io_socket_addrinfo(sock2, &amp;buf.addr, len));</div><div class='add'>+    return rb_assoc_new(peer, rsock_io_socket_addrinfo(peer, &amp;buffer.addr, length));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='hunk'>@@ -823,7 +778,7 @@ sock_accept_nonblock(VALUE sock, VALUE ex)</div><div class='ctx'>     sock2 = rsock_s_accept_nonblock(rb_cSocket, ex, fptr, addr, &amp;len);</div><div class='ctx'> </div><div class='ctx'>     if (SYMBOL_P(sock2)) /* :wait_readable */</div><div class='del'>-	return sock2;</div><div class='add'>+        return sock2;</div><div class='ctx'>     return rb_assoc_new(sock2, rsock_io_socket_addrinfo(sock2, &amp;buf.addr, len));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -866,17 +821,14 @@ sock_accept_nonblock(VALUE sock, VALUE ex)</div><div class='ctx'>  * * Socket#accept</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-sock_sysaccept(VALUE sock)</div><div class='add'>+sock_sysaccept(VALUE server)</div><div class='ctx'> {</div><div class='del'>-    rb_io_t *fptr;</div><div class='del'>-    VALUE sock2;</div><div class='del'>-    union_sockaddr buf;</div><div class='del'>-    socklen_t len = (socklen_t)sizeof buf;</div><div class='add'>+    union_sockaddr buffer;</div><div class='add'>+    socklen_t length = (socklen_t)sizeof(buffer);</div><div class='ctx'> </div><div class='del'>-    GetOpenFile(sock, fptr);</div><div class='del'>-    sock2 = rsock_s_accept(0,fptr-&gt;fd,&amp;buf.addr,&amp;len);</div><div class='add'>+    VALUE peer = rsock_s_accept(0, server, &amp;buffer.addr, &amp;length);</div><div class='ctx'> </div><div class='del'>-    return rb_assoc_new(sock2, rsock_io_socket_addrinfo(sock2, &amp;buf.addr, len));</div><div class='add'>+    return rb_assoc_new(peer, rsock_io_socket_addrinfo(peer, &amp;buffer.addr, length));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_GETHOSTNAME</div><div class='hunk'>@@ -907,19 +859,19 @@ sock_gethostname(VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     name = rb_str_new(0, len);</div><div class='ctx'>     while (gethostname(RSTRING_PTR(name), len) &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	switch (e) {</div><div class='del'>-	  case ENAMETOOLONG:</div><div class='add'>+        int e = errno;</div><div class='add'>+        switch (e) {</div><div class='add'>+          case ENAMETOOLONG:</div><div class='ctx'> #ifdef __linux__</div><div class='del'>-	  case EINVAL:</div><div class='del'>-	    /* glibc before version 2.1 uses EINVAL instead of ENAMETOOLONG */</div><div class='add'>+          case EINVAL:</div><div class='add'>+            /* glibc before version 2.1 uses EINVAL instead of ENAMETOOLONG */</div><div class='ctx'> #endif</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    rb_syserr_fail(e, "gethostname(3)");</div><div class='del'>-	}</div><div class='del'>-	rb_str_modify_expand(name, len);</div><div class='del'>-	len += len;</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            rb_syserr_fail(e, "gethostname(3)");</div><div class='add'>+        }</div><div class='add'>+        rb_str_modify_expand(name, len);</div><div class='add'>+        len += len;</div><div class='ctx'>     }</div><div class='ctx'>     rb_str_resize(name, strlen(RSTRING_PTR(name)));</div><div class='ctx'>     return name;</div><div class='hunk'>@@ -949,18 +901,18 @@ make_addrinfo(struct rb_addrinfo *res0, int norevlookup)</div><div class='ctx'>     struct addrinfo *res;</div><div class='ctx'> </div><div class='ctx'>     if (res0 == NULL) {</div><div class='del'>-	rb_raise(rb_eSocket, "host not found");</div><div class='add'>+        rb_raise(rb_eSocket, "host not found");</div><div class='ctx'>     }</div><div class='ctx'>     base = rb_ary_new();</div><div class='ctx'>     for (res = res0-&gt;ai; res; res = res-&gt;ai_next) {</div><div class='del'>-	ary = rsock_ipaddr(res-&gt;ai_addr, res-&gt;ai_addrlen, norevlookup);</div><div class='del'>-	if (res-&gt;ai_canonname) {</div><div class='del'>-	    RARRAY_ASET(ary, 2, rb_str_new2(res-&gt;ai_canonname));</div><div class='del'>-	}</div><div class='del'>-	rb_ary_push(ary, INT2FIX(res-&gt;ai_family));</div><div class='del'>-	rb_ary_push(ary, INT2FIX(res-&gt;ai_socktype));</div><div class='del'>-	rb_ary_push(ary, INT2FIX(res-&gt;ai_protocol));</div><div class='del'>-	rb_ary_push(base, ary);</div><div class='add'>+        ary = rsock_ipaddr(res-&gt;ai_addr, res-&gt;ai_addrlen, norevlookup);</div><div class='add'>+        if (res-&gt;ai_canonname) {</div><div class='add'>+            RARRAY_ASET(ary, 2, rb_str_new2(res-&gt;ai_canonname));</div><div class='add'>+        }</div><div class='add'>+        rb_ary_push(ary, INT2FIX(res-&gt;ai_family));</div><div class='add'>+        rb_ary_push(ary, INT2FIX(res-&gt;ai_socktype));</div><div class='add'>+        rb_ary_push(ary, INT2FIX(res-&gt;ai_protocol));</div><div class='add'>+        rb_ary_push(base, ary);</div><div class='ctx'>     }</div><div class='ctx'>     return base;</div><div class='ctx'> }</div><div class='hunk'>@@ -972,18 +924,18 @@ sock_sockaddr(struct sockaddr *addr, socklen_t len)</div><div class='ctx'> </div><div class='ctx'>     switch (addr-&gt;sa_family) {</div><div class='ctx'>       case AF_INET:</div><div class='del'>-	ptr = (char*)&amp;((struct sockaddr_in*)addr)-&gt;sin_addr.s_addr;</div><div class='del'>-	len = (socklen_t)sizeof(((struct sockaddr_in*)addr)-&gt;sin_addr.s_addr);</div><div class='del'>-	break;</div><div class='add'>+        ptr = (char*)&amp;((struct sockaddr_in*)addr)-&gt;sin_addr.s_addr;</div><div class='add'>+        len = (socklen_t)sizeof(((struct sockaddr_in*)addr)-&gt;sin_addr.s_addr);</div><div class='add'>+        break;</div><div class='ctx'> #ifdef AF_INET6</div><div class='ctx'>       case AF_INET6:</div><div class='del'>-	ptr = (char*)&amp;((struct sockaddr_in6*)addr)-&gt;sin6_addr.s6_addr;</div><div class='del'>-	len = (socklen_t)sizeof(((struct sockaddr_in6*)addr)-&gt;sin6_addr.s6_addr);</div><div class='del'>-	break;</div><div class='add'>+        ptr = (char*)&amp;((struct sockaddr_in6*)addr)-&gt;sin6_addr.s6_addr;</div><div class='add'>+        len = (socklen_t)sizeof(((struct sockaddr_in6*)addr)-&gt;sin6_addr.s6_addr);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'>       default:</div><div class='ctx'>         rb_raise(rb_eSocket, "unknown socket family:%d", addr-&gt;sa_family);</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_str_new(ptr, len);</div><div class='ctx'> }</div><div class='hunk'>@@ -1011,8 +963,9 @@ sock_sockaddr(struct sockaddr *addr, socklen_t len)</div><div class='ctx'> static VALUE</div><div class='ctx'> sock_s_gethostbyname(VALUE obj, VALUE host)</div><div class='ctx'> {</div><div class='add'>+    rb_warn("Socket.gethostbyname is deprecated; use Addrinfo.getaddrinfo instead.");</div><div class='ctx'>     struct rb_addrinfo *res =</div><div class='del'>-	rsock_addrinfo(host, Qnil, AF_UNSPEC, SOCK_STREAM, AI_CANONNAME);</div><div class='add'>+        rsock_addrinfo(host, Qnil, AF_UNSPEC, SOCK_STREAM, AI_CANONNAME);</div><div class='ctx'>     return rsock_make_hostent(host, res, sock_sockaddr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1042,7 +995,7 @@ sock_s_gethostbyname(VALUE obj, VALUE host)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-sock_s_gethostbyaddr(int argc, VALUE *argv)</div><div class='add'>+sock_s_gethostbyaddr(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE addr, family;</div><div class='ctx'>     struct hostent *h;</div><div class='hunk'>@@ -1050,23 +1003,25 @@ sock_s_gethostbyaddr(int argc, VALUE *argv)</div><div class='ctx'>     VALUE ary, names;</div><div class='ctx'>     int t = AF_INET;</div><div class='ctx'> </div><div class='add'>+    rb_warn("Socket.gethostbyaddr is deprecated; use Addrinfo#getnameinfo instead.");</div><div class='add'>+</div><div class='ctx'>     rb_scan_args(argc, argv, "11", &amp;addr, &amp;family);</div><div class='ctx'>     StringValue(addr);</div><div class='ctx'>     if (!NIL_P(family)) {</div><div class='del'>-	t = rsock_family_arg(family);</div><div class='add'>+        t = rsock_family_arg(family);</div><div class='ctx'>     }</div><div class='ctx'> #ifdef AF_INET6</div><div class='ctx'>     else if (RSTRING_LEN(addr) == 16) {</div><div class='del'>-	t = AF_INET6;</div><div class='add'>+        t = AF_INET6;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     h = gethostbyaddr(RSTRING_PTR(addr), RSTRING_SOCKLEN(addr), t);</div><div class='ctx'>     if (h == NULL) {</div><div class='ctx'> #ifdef HAVE_HSTRERROR</div><div class='del'>-	extern int h_errno;</div><div class='del'>-	rb_raise(rb_eSocket, "%s", (char*)hstrerror(h_errno));</div><div class='add'>+        extern int h_errno;</div><div class='add'>+        rb_raise(rb_eSocket, "%s", (char*)hstrerror(h_errno));</div><div class='ctx'> #else</div><div class='del'>-	rb_raise(rb_eSocket, "host not found");</div><div class='add'>+        rb_raise(rb_eSocket, "host not found");</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     ary = rb_ary_new();</div><div class='hunk'>@@ -1074,14 +1029,14 @@ sock_s_gethostbyaddr(int argc, VALUE *argv)</div><div class='ctx'>     names = rb_ary_new();</div><div class='ctx'>     rb_ary_push(ary, names);</div><div class='ctx'>     if (h-&gt;h_aliases != NULL) {</div><div class='del'>-	for (pch = h-&gt;h_aliases; *pch; pch++) {</div><div class='del'>-	    rb_ary_push(names, rb_str_new2(*pch));</div><div class='del'>-	}</div><div class='add'>+        for (pch = h-&gt;h_aliases; *pch; pch++) {</div><div class='add'>+            rb_ary_push(names, rb_str_new2(*pch));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     rb_ary_push(ary, INT2NUM(h-&gt;h_addrtype));</div><div class='ctx'> #ifdef h_addr</div><div class='ctx'>     for (pch = h-&gt;h_addr_list; *pch; pch++) {</div><div class='del'>-	rb_ary_push(ary, rb_str_new(*pch, h-&gt;h_length));</div><div class='add'>+        rb_ary_push(ary, rb_str_new(*pch, h-&gt;h_length));</div><div class='ctx'>     }</div><div class='ctx'> #else</div><div class='ctx'>     rb_ary_push(ary, rb_str_new(h-&gt;h_addr, h-&gt;h_length));</div><div class='hunk'>@@ -1104,7 +1059,7 @@ sock_s_gethostbyaddr(int argc, VALUE *argv)</div><div class='ctx'>  *   Socket.getservbyname("syslog", "udp") #=&gt; 514</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-sock_s_getservbyname(int argc, VALUE *argv)</div><div class='add'>+sock_s_getservbyname(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE service, proto;</div><div class='ctx'>     struct servent *sp;</div><div class='hunk'>@@ -1118,15 +1073,15 @@ sock_s_getservbyname(int argc, VALUE *argv)</div><div class='ctx'>     if (!NIL_P(proto)) protoname = StringValueCStr(proto);</div><div class='ctx'>     sp = getservbyname(servicename, protoname);</div><div class='ctx'>     if (sp) {</div><div class='del'>-	port = ntohs(sp-&gt;s_port);</div><div class='add'>+        port = ntohs(sp-&gt;s_port);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	char *end;</div><div class='add'>+        char *end;</div><div class='ctx'> </div><div class='del'>-	port = STRTOUL(servicename, &amp;end, 0);</div><div class='del'>-	if (*end != '\0') {</div><div class='del'>-	    rb_raise(rb_eSocket, "no such service %s/%s", servicename, protoname);</div><div class='del'>-	}</div><div class='add'>+        port = STRTOUL(servicename, &amp;end, 0);</div><div class='add'>+        if (*end != '\0') {</div><div class='add'>+            rb_raise(rb_eSocket, "no such service %s/%s", servicename, protoname);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return INT2FIX(port);</div><div class='ctx'> }</div><div class='hunk'>@@ -1145,7 +1100,7 @@ sock_s_getservbyname(int argc, VALUE *argv)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-sock_s_getservbyport(int argc, VALUE *argv)</div><div class='add'>+sock_s_getservbyport(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE port, proto;</div><div class='ctx'>     struct servent *sp;</div><div class='hunk'>@@ -1155,16 +1110,16 @@ sock_s_getservbyport(int argc, VALUE *argv)</div><div class='ctx'>     rb_scan_args(argc, argv, "11", &amp;port, &amp;proto);</div><div class='ctx'>     portnum = NUM2LONG(port);</div><div class='ctx'>     if (portnum != (uint16_t)portnum) {</div><div class='del'>-	const char *s = portnum &gt; 0 ? "big" : "small";</div><div class='del'>-	rb_raise(rb_eRangeError, "integer %ld too %s to convert into `int16_t'", portnum, s);</div><div class='add'>+        const char *s = portnum &gt; 0 ? "big" : "small";</div><div class='add'>+        rb_raise(rb_eRangeError, "integer %ld too %s to convert into `int16_t'", portnum, s);</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(proto)) protoname = StringValueCStr(proto);</div><div class='ctx'> </div><div class='ctx'>     sp = getservbyport((int)htons((uint16_t)portnum), protoname);</div><div class='ctx'>     if (!sp) {</div><div class='del'>-	rb_raise(rb_eSocket, "no such service for port %d/%s", (int)portnum, protoname);</div><div class='add'>+        rb_raise(rb_eSocket, "no such service for port %d/%s", (int)portnum, protoname);</div><div class='ctx'>     }</div><div class='del'>-    return rb_tainted_str_new2(sp-&gt;s_name);</div><div class='add'>+    return rb_str_new2(sp-&gt;s_name);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1197,13 +1152,13 @@ sock_s_getservbyport(int argc, VALUE *argv)</div><div class='ctx'>  * be one of below.  If _reverse_lookup_ is omitted, the default value is +nil+.</div><div class='ctx'>  *</div><div class='ctx'>  *   +true+, +:hostname+:  hostname is obtained from numeric address using reverse lookup, which may take a time.</div><div class='del'>- *   +false+, +:numeric+:  hostname is same as numeric address.</div><div class='add'>+ *   +false+, +:numeric+:  hostname is the same as numeric address.</div><div class='ctx'>  *   +nil+:              obey to the current +do_not_reverse_lookup+ flag.</div><div class='ctx'>  *</div><div class='ctx'>  * If Addrinfo object is preferred, use Addrinfo.getaddrinfo.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-sock_s_getaddrinfo(int argc, VALUE *argv)</div><div class='add'>+sock_s_getaddrinfo(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE host, port, family, socktype, protocol, flags, ret, revlookup;</div><div class='ctx'>     struct addrinfo hints;</div><div class='hunk'>@@ -1216,17 +1171,18 @@ sock_s_getaddrinfo(int argc, VALUE *argv)</div><div class='ctx'>     hints.ai_family = NIL_P(family) ? PF_UNSPEC : rsock_family_arg(family);</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(socktype)) {</div><div class='del'>-	hints.ai_socktype = rsock_socktype_arg(socktype);</div><div class='add'>+        hints.ai_socktype = rsock_socktype_arg(socktype);</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(protocol)) {</div><div class='del'>-	hints.ai_protocol = NUM2INT(protocol);</div><div class='add'>+        hints.ai_protocol = NUM2INT(protocol);</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(flags)) {</div><div class='del'>-	hints.ai_flags = NUM2INT(flags);</div><div class='add'>+        hints.ai_flags = NUM2INT(flags);</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(revlookup) || !rsock_revlookup_flag(revlookup, &amp;norevlookup)) {</div><div class='del'>-	norevlookup = rsock_do_not_reverse_lookup;</div><div class='add'>+        norevlookup = rsock_do_not_reverse_lookup;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     res = rsock_getaddrinfo(host, port, &amp;hints, 0);</div><div class='ctx'> </div><div class='ctx'>     ret = make_addrinfo(res, norevlookup);</div><div class='hunk'>@@ -1257,10 +1213,9 @@ sock_s_getaddrinfo(int argc, VALUE *argv)</div><div class='ctx'>  * If Addrinfo object is preferred, use Addrinfo#getnameinfo.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-sock_s_getnameinfo(int argc, VALUE *argv)</div><div class='add'>+sock_s_getnameinfo(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE sa, af = Qnil, host = Qnil, port = Qnil, flags, tmp;</div><div class='del'>-    char *hptr, *pptr;</div><div class='ctx'>     char hbuf[1024], pbuf[1024];</div><div class='ctx'>     int fl;</div><div class='ctx'>     struct rb_addrinfo *res = NULL;</div><div class='hunk'>@@ -1275,115 +1230,85 @@ sock_s_getnameinfo(int argc, VALUE *argv)</div><div class='ctx'> </div><div class='ctx'>     fl = 0;</div><div class='ctx'>     if (!NIL_P(flags)) {</div><div class='del'>-	fl = NUM2INT(flags);</div><div class='add'>+        fl = NUM2INT(flags);</div><div class='ctx'>     }</div><div class='ctx'>     tmp = rb_check_sockaddr_string_type(sa);</div><div class='ctx'>     if (!NIL_P(tmp)) {</div><div class='del'>-	sa = tmp;</div><div class='del'>-	if (sizeof(ss) &lt; (size_t)RSTRING_LEN(sa)) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "sockaddr length too big");</div><div class='del'>-	}</div><div class='del'>-	memcpy(&amp;ss, RSTRING_PTR(sa), RSTRING_LEN(sa));</div><div class='add'>+        sa = tmp;</div><div class='add'>+        if (sizeof(ss) &lt; (size_t)RSTRING_LEN(sa)) {</div><div class='add'>+            rb_raise(rb_eTypeError, "sockaddr length too big");</div><div class='add'>+        }</div><div class='add'>+        memcpy(&amp;ss, RSTRING_PTR(sa), RSTRING_LEN(sa));</div><div class='ctx'>         if (!VALIDATE_SOCKLEN(&amp;ss.addr, RSTRING_LEN(sa))) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "sockaddr size differs - should not happen");</div><div class='del'>-	}</div><div class='del'>-	sap = &amp;ss.addr;</div><div class='add'>+            rb_raise(rb_eTypeError, "sockaddr size differs - should not happen");</div><div class='add'>+        }</div><div class='add'>+        sap = &amp;ss.addr;</div><div class='ctx'>         salen = RSTRING_SOCKLEN(sa);</div><div class='del'>-	goto call_nameinfo;</div><div class='add'>+        goto call_nameinfo;</div><div class='ctx'>     }</div><div class='ctx'>     tmp = rb_check_array_type(sa);</div><div class='ctx'>     if (!NIL_P(tmp)) {</div><div class='del'>-	sa = tmp;</div><div class='del'>-	MEMZERO(&amp;hints, struct addrinfo, 1);</div><div class='del'>-	if (RARRAY_LEN(sa) == 3) {</div><div class='del'>-	    af = RARRAY_AREF(sa, 0);</div><div class='del'>-	    port = RARRAY_AREF(sa, 1);</div><div class='del'>-	    host = RARRAY_AREF(sa, 2);</div><div class='del'>-	}</div><div class='del'>-	else if (RARRAY_LEN(sa) &gt;= 4) {</div><div class='del'>-	    af = RARRAY_AREF(sa, 0);</div><div class='del'>-	    port = RARRAY_AREF(sa, 1);</div><div class='del'>-	    host = RARRAY_AREF(sa, 3);</div><div class='del'>-	    if (NIL_P(host)) {</div><div class='del'>-		host = RARRAY_AREF(sa, 2);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		/*</div><div class='del'>-		 * 4th element holds numeric form, don't resolve.</div><div class='del'>-		 * see rsock_ipaddr().</div><div class='del'>-		 */</div><div class='add'>+        sa = tmp;</div><div class='add'>+        MEMZERO(&amp;hints, struct addrinfo, 1);</div><div class='add'>+        if (RARRAY_LEN(sa) == 3) {</div><div class='add'>+            af = RARRAY_AREF(sa, 0);</div><div class='add'>+            port = RARRAY_AREF(sa, 1);</div><div class='add'>+            host = RARRAY_AREF(sa, 2);</div><div class='add'>+        }</div><div class='add'>+        else if (RARRAY_LEN(sa) &gt;= 4) {</div><div class='add'>+            af = RARRAY_AREF(sa, 0);</div><div class='add'>+            port = RARRAY_AREF(sa, 1);</div><div class='add'>+            host = RARRAY_AREF(sa, 3);</div><div class='add'>+            if (NIL_P(host)) {</div><div class='add'>+                host = RARRAY_AREF(sa, 2);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                /*</div><div class='add'>+                 * 4th element holds numeric form, don't resolve.</div><div class='add'>+                 * see rsock_ipaddr().</div><div class='add'>+                 */</div><div class='ctx'> #ifdef AI_NUMERICHOST /* AIX 4.3.3 doesn't have AI_NUMERICHOST. */</div><div class='del'>-		hints.ai_flags |= AI_NUMERICHOST;</div><div class='add'>+                hints.ai_flags |= AI_NUMERICHOST;</div><div class='ctx'> #endif</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_raise(rb_eArgError, "array size should be 3 or 4, %ld given",</div><div class='del'>-		     RARRAY_LEN(sa));</div><div class='del'>-	}</div><div class='del'>-	/* host */</div><div class='del'>-	if (NIL_P(host)) {</div><div class='del'>-	    hptr = NULL;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    strncpy(hbuf, StringValueCStr(host), sizeof(hbuf));</div><div class='del'>-	    hbuf[sizeof(hbuf) - 1] = '\0';</div><div class='del'>-	    hptr = hbuf;</div><div class='del'>-	}</div><div class='del'>-	/* port */</div><div class='del'>-	if (NIL_P(port)) {</div><div class='del'>-	    strcpy(pbuf, "0");</div><div class='del'>-	    pptr = NULL;</div><div class='del'>-	}</div><div class='del'>-	else if (FIXNUM_P(port)) {</div><div class='del'>-	    snprintf(pbuf, sizeof(pbuf), "%ld", NUM2LONG(port));</div><div class='del'>-	    pptr = pbuf;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    strncpy(pbuf, StringValueCStr(port), sizeof(pbuf));</div><div class='del'>-	    pbuf[sizeof(pbuf) - 1] = '\0';</div><div class='del'>-	    pptr = pbuf;</div><div class='del'>-	}</div><div class='del'>-	hints.ai_socktype = (fl &amp; NI_DGRAM) ? SOCK_DGRAM : SOCK_STREAM;</div><div class='del'>-	/* af */</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_raise(rb_eArgError, "array size should be 3 or 4, %ld given",</div><div class='add'>+                     RARRAY_LEN(sa));</div><div class='add'>+        }</div><div class='add'>+        hints.ai_socktype = (fl &amp; NI_DGRAM) ? SOCK_DGRAM : SOCK_STREAM;</div><div class='add'>+        /* af */</div><div class='ctx'>         hints.ai_family = NIL_P(af) ? PF_UNSPEC : rsock_family_arg(af);</div><div class='del'>-	error = rb_getaddrinfo(hptr, pptr, &amp;hints, &amp;res);</div><div class='del'>-	if (error) goto error_exit_addr;</div><div class='del'>-	sap = res-&gt;ai-&gt;ai_addr;</div><div class='add'>+        res = rsock_getaddrinfo(host, port, &amp;hints, 0);</div><div class='add'>+        sap = res-&gt;ai-&gt;ai_addr;</div><div class='ctx'>         salen = res-&gt;ai-&gt;ai_addrlen;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_raise(rb_eTypeError, "expecting String or Array");</div><div class='add'>+        rb_raise(rb_eTypeError, "expecting String or Array");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>   call_nameinfo:</div><div class='ctx'>     error = rb_getnameinfo(sap, salen, hbuf, sizeof(hbuf),</div><div class='del'>-			   pbuf, sizeof(pbuf), fl);</div><div class='add'>+                           pbuf, sizeof(pbuf), fl);</div><div class='ctx'>     if (error) goto error_exit_name;</div><div class='ctx'>     if (res) {</div><div class='del'>-	for (r = res-&gt;ai-&gt;ai_next; r; r = r-&gt;ai_next) {</div><div class='del'>-	    char hbuf2[1024], pbuf2[1024];</div><div class='add'>+        for (r = res-&gt;ai-&gt;ai_next; r; r = r-&gt;ai_next) {</div><div class='add'>+            char hbuf2[1024], pbuf2[1024];</div><div class='ctx'> </div><div class='del'>-	    sap = r-&gt;ai_addr;</div><div class='add'>+            sap = r-&gt;ai_addr;</div><div class='ctx'>             salen = r-&gt;ai_addrlen;</div><div class='del'>-	    error = rb_getnameinfo(sap, salen, hbuf2, sizeof(hbuf2),</div><div class='del'>-				   pbuf2, sizeof(pbuf2), fl);</div><div class='del'>-	    if (error) goto error_exit_name;</div><div class='del'>-	    if (strcmp(hbuf, hbuf2) != 0|| strcmp(pbuf, pbuf2) != 0) {</div><div class='del'>-		rb_freeaddrinfo(res);</div><div class='del'>-		rb_raise(rb_eSocket, "sockaddr resolved to multiple nodename");</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	rb_freeaddrinfo(res);</div><div class='add'>+            error = rb_getnameinfo(sap, salen, hbuf2, sizeof(hbuf2),</div><div class='add'>+                                   pbuf2, sizeof(pbuf2), fl);</div><div class='add'>+            if (error) goto error_exit_name;</div><div class='add'>+            if (strcmp(hbuf, hbuf2) != 0|| strcmp(pbuf, pbuf2) != 0) {</div><div class='add'>+                rb_freeaddrinfo(res);</div><div class='add'>+                rb_raise(rb_eSocket, "sockaddr resolved to multiple nodename");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        rb_freeaddrinfo(res);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_assoc_new(rb_str_new2(hbuf), rb_str_new2(pbuf));</div><div class='ctx'> </div><div class='del'>-  error_exit_addr:</div><div class='del'>-    saved_errno = errno;</div><div class='del'>-    if (res) rb_freeaddrinfo(res);</div><div class='del'>-    errno = saved_errno;</div><div class='del'>-    rsock_raise_socket_error("getaddrinfo", error);</div><div class='del'>-</div><div class='ctx'>   error_exit_name:</div><div class='ctx'>     saved_errno = errno;</div><div class='ctx'>     if (res) rb_freeaddrinfo(res);</div><div class='hunk'>@@ -1414,8 +1339,6 @@ sock_s_pack_sockaddr_in(VALUE self, VALUE port, VALUE host)</div><div class='ctx'>     VALUE addr = rb_str_new((char*)res-&gt;ai-&gt;ai_addr, res-&gt;ai-&gt;ai_addrlen);</div><div class='ctx'> </div><div class='ctx'>     rb_freeaddrinfo(res);</div><div class='del'>-    OBJ_INFECT(addr, port);</div><div class='del'>-    OBJ_INFECT(addr, host);</div><div class='ctx'> </div><div class='ctx'>     return addr;</div><div class='ctx'> }</div><div class='hunk'>@@ -1457,11 +1380,10 @@ sock_s_unpack_sockaddr_in(VALUE self, VALUE addr)</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     host = rsock_make_ipaddr((struct sockaddr*)sockaddr, RSTRING_SOCKLEN(addr));</div><div class='del'>-    OBJ_INFECT(host, addr);</div><div class='ctx'>     return rb_assoc_new(INT2NUM(ntohs(sockaddr-&gt;sin_port)), host);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='hunk'>@@ -1487,7 +1409,6 @@ sock_s_pack_sockaddr_un(VALUE self, VALUE path)</div><div class='ctx'>     }</div><div class='ctx'>     memcpy(sockaddr.sun_path, RSTRING_PTR(path), RSTRING_LEN(path));</div><div class='ctx'>     addr = rb_str_new((char*)&amp;sockaddr, rsock_unix_sockaddr_len(path));</div><div class='del'>-    OBJ_INFECT(addr, path);</div><div class='ctx'> </div><div class='ctx'>     return addr;</div><div class='ctx'> }</div><div class='hunk'>@@ -1520,11 +1441,10 @@ sock_s_unpack_sockaddr_un(VALUE self, VALUE addr)</div><div class='ctx'>         rb_raise(rb_eArgError, "not an AF_UNIX sockaddr");</div><div class='ctx'>     }</div><div class='ctx'>     if (sizeof(struct sockaddr_un) &lt; (size_t)RSTRING_LEN(addr)) {</div><div class='del'>-	rb_raise(rb_eTypeError, "too long sockaddr_un - %ld longer than %d",</div><div class='del'>-		 RSTRING_LEN(addr), (int)sizeof(struct sockaddr_un));</div><div class='add'>+        rb_raise(rb_eTypeError, "too long sockaddr_un - %ld longer than %d",</div><div class='add'>+                 RSTRING_LEN(addr), (int)sizeof(struct sockaddr_un));</div><div class='ctx'>     }</div><div class='ctx'>     path = rsock_unixpath_str(sockaddr, RSTRING_SOCKLEN(addr));</div><div class='del'>-    OBJ_INFECT(path, addr);</div><div class='ctx'>     return path;</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -1551,7 +1471,7 @@ sockaddr_len(struct sockaddr *addr)</div><div class='ctx'>         return (socklen_t)sizeof(struct sockaddr_in6);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>       case AF_UNIX:</div><div class='ctx'>         return (socklen_t)sizeof(struct sockaddr_un);</div><div class='ctx'> #endif</div><div class='hunk'>@@ -1586,19 +1506,19 @@ sockaddr_obj(struct sockaddr *addr, socklen_t len)</div><div class='ctx'> </div><div class='ctx'> #if defined(__KAME__) &amp;&amp; defined(AF_INET6)</div><div class='ctx'>     if (addr-&gt;sa_family == AF_INET6) {</div><div class='del'>-	/* KAME uses the 2nd 16bit word of link local IPv6 address as interface index internally */</div><div class='add'>+        /* KAME uses the 2nd 16bit word of link local IPv6 address as interface index internally */</div><div class='ctx'>         /* http://orange.kame.net/dev/cvsweb.cgi/kame/IMPLEMENTATION */</div><div class='del'>-	/* convert fe80:1::1 to fe80::1%1 */</div><div class='add'>+        /* convert fe80:1::1 to fe80::1%1 */</div><div class='ctx'>         len = (socklen_t)sizeof(struct sockaddr_in6);</div><div class='del'>-	memcpy(&amp;addr6, addr, len);</div><div class='del'>-	addr = (struct sockaddr *)&amp;addr6;</div><div class='del'>-	if (IN6_IS_ADDR_LINKLOCAL(&amp;addr6.sin6_addr) &amp;&amp;</div><div class='del'>-	    addr6.sin6_scope_id == 0 &amp;&amp;</div><div class='del'>-	    (addr6.sin6_addr.s6_addr[2] || addr6.sin6_addr.s6_addr[3])) {</div><div class='del'>-	    addr6.sin6_scope_id = (addr6.sin6_addr.s6_addr[2] &lt;&lt; 8) | addr6.sin6_addr.s6_addr[3];</div><div class='del'>-	    addr6.sin6_addr.s6_addr[2] = 0;</div><div class='del'>-	    addr6.sin6_addr.s6_addr[3] = 0;</div><div class='del'>-	}</div><div class='add'>+        memcpy(&amp;addr6, addr, len);</div><div class='add'>+        addr = (struct sockaddr *)&amp;addr6;</div><div class='add'>+        if (IN6_IS_ADDR_LINKLOCAL(&amp;addr6.sin6_addr) &amp;&amp;</div><div class='add'>+            addr6.sin6_scope_id == 0 &amp;&amp;</div><div class='add'>+            (addr6.sin6_addr.s6_addr[2] || addr6.sin6_addr.s6_addr[3])) {</div><div class='add'>+            addr6.sin6_scope_id = (addr6.sin6_addr.s6_addr[2] &lt;&lt; 8) | addr6.sin6_addr.s6_addr[3];</div><div class='add'>+            addr6.sin6_addr.s6_addr[2] = 0;</div><div class='add'>+            addr6.sin6_addr.s6_addr[3] = 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -1613,7 +1533,7 @@ rsock_sockaddr_obj(struct sockaddr *addr, socklen_t len)</div><div class='ctx'> </div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_GETIFADDRS) || (defined(SIOCGLIFCONF) &amp;&amp; defined(SIOCGLIFNUM) &amp;&amp; !defined(__hpux)) || defined(SIOCGIFCONF) ||  defined(_WIN32)</div><div class='add'>+#if defined(HAVE_GETIFADDRS) || (defined(SIOCGLIFCONF) &amp;&amp; defined(SIOCGLIFNUM)) || defined(SIOCGIFCONF) ||  defined(_WIN32)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   Socket.ip_address_list =&gt; array</div><div class='hunk'>@@ -1674,9 +1594,8 @@ socket_s_ip_address_list(VALUE self)</div><div class='ctx'>     freeifaddrs(ifp);</div><div class='ctx'> </div><div class='ctx'>     return list;</div><div class='del'>-#elif defined(SIOCGLIFCONF) &amp;&amp; defined(SIOCGLIFNUM) &amp;&amp; !defined(__hpux)</div><div class='add'>+#elif defined(SIOCGLIFCONF) &amp;&amp; defined(SIOCGLIFNUM)</div><div class='ctx'>     /* Solaris if_tcp(7P) */</div><div class='del'>-    /* HP-UX has SIOCGLIFCONF too.  But it uses different struct */</div><div class='ctx'>     int fd = -1;</div><div class='ctx'>     int ret;</div><div class='ctx'>     struct lifnum ln;</div><div class='hunk'>@@ -1697,8 +1616,8 @@ socket_s_ip_address_list(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     ret = ioctl(fd, SIOCGLIFNUM, &amp;ln);</div><div class='ctx'>     if (ret == -1) {</div><div class='del'>-	reason = "SIOCGLIFNUM";</div><div class='del'>-	goto finish;</div><div class='add'>+        reason = "SIOCGLIFNUM";</div><div class='add'>+        goto finish;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     memset(&amp;lc, 0, sizeof(lc));</div><div class='hunk'>@@ -1709,13 +1628,13 @@ socket_s_ip_address_list(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     ret = ioctl(fd, SIOCGLIFCONF, &amp;lc);</div><div class='ctx'>     if (ret == -1) {</div><div class='del'>-	reason = "SIOCGLIFCONF";</div><div class='del'>-	goto finish;</div><div class='add'>+        reason = "SIOCGLIFCONF";</div><div class='add'>+        goto finish;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     list = rb_ary_new();</div><div class='ctx'>     for (i = 0; i &lt; ln.lifn_count; i++) {</div><div class='del'>-	struct lifreq *req = &amp;lc.lifc_req[i];</div><div class='add'>+        struct lifreq *req = &amp;lc.lifc_req[i];</div><div class='ctx'>         if (IS_IP_FAMILY(req-&gt;lifr_addr.ss_family)) {</div><div class='ctx'>             if (req-&gt;lifr_addr.ss_family == AF_INET6 &amp;&amp;</div><div class='ctx'>                 IN6_IS_ADDR_LINKLOCAL(&amp;((struct sockaddr_in6 *)(&amp;req-&gt;lifr_addr))-&gt;sin6_addr) &amp;&amp;</div><div class='hunk'>@@ -1736,13 +1655,13 @@ socket_s_ip_address_list(VALUE self)</div><div class='ctx'>   finish:</div><div class='ctx'>     save_errno = errno;</div><div class='ctx'>     if (lc.lifc_buf != NULL)</div><div class='del'>-	xfree(lc.lifc_req);</div><div class='add'>+        xfree(lc.lifc_req);</div><div class='ctx'>     if (fd != -1)</div><div class='del'>-	close(fd);</div><div class='add'>+        close(fd);</div><div class='ctx'>     errno = save_errno;</div><div class='ctx'> </div><div class='ctx'>     if (reason)</div><div class='del'>-	rb_syserr_fail(save_errno, reason);</div><div class='add'>+        rb_syserr_fail(save_errno, reason);</div><div class='ctx'>     return list;</div><div class='ctx'> </div><div class='ctx'> #elif defined(SIOCGIFCONF)</div><div class='hunk'>@@ -1780,17 +1699,17 @@ socket_s_ip_address_list(VALUE self)</div><div class='ctx'>     /* fprintf(stderr, "conf.ifc_len: %d\n", conf.ifc_len); */</div><div class='ctx'> </div><div class='ctx'>     if (bufsize - EXTRA_SPACE &lt; conf.ifc_len) {</div><div class='del'>-	if (bufsize &lt; conf.ifc_len) {</div><div class='del'>-	    /* NetBSD returns required size for all interfaces. */</div><div class='del'>-	    bufsize = conf.ifc_len + EXTRA_SPACE;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    bufsize = bufsize &lt;&lt; 1;</div><div class='del'>-	}</div><div class='del'>-	if (buf == initbuf)</div><div class='del'>-	    buf = NULL;</div><div class='del'>-	buf = xrealloc(buf, bufsize);</div><div class='del'>-	goto retry;</div><div class='add'>+        if (bufsize &lt; conf.ifc_len) {</div><div class='add'>+            /* NetBSD returns required size for all interfaces. */</div><div class='add'>+            bufsize = conf.ifc_len + EXTRA_SPACE;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            bufsize = bufsize &lt;&lt; 1;</div><div class='add'>+        }</div><div class='add'>+        if (buf == initbuf)</div><div class='add'>+            buf = NULL;</div><div class='add'>+        buf = xrealloc(buf, bufsize);</div><div class='add'>+        goto retry;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     close(fd);</div><div class='hunk'>@@ -1799,10 +1718,10 @@ socket_s_ip_address_list(VALUE self)</div><div class='ctx'>     list = rb_ary_new();</div><div class='ctx'>     req = conf.ifc_req;</div><div class='ctx'>     while ((char*)req &lt; (char*)conf.ifc_req + conf.ifc_len) {</div><div class='del'>-	struct sockaddr *addr = &amp;req-&gt;ifr_addr;</div><div class='add'>+        struct sockaddr *addr = &amp;req-&gt;ifr_addr;</div><div class='ctx'>         if (IS_IP_FAMILY(addr-&gt;sa_family)) {</div><div class='del'>-	    rb_ary_push(list, sockaddr_obj(addr, sockaddr_len(addr)));</div><div class='del'>-	}</div><div class='add'>+            rb_ary_push(list, sockaddr_obj(addr, sockaddr_len(addr)));</div><div class='add'>+        }</div><div class='ctx'> #ifdef HAVE_STRUCT_SOCKADDR_SA_LEN</div><div class='ctx'> # ifndef _SIZEOF_ADDR_IFREQ</div><div class='ctx'> #  define _SIZEOF_ADDR_IFREQ(r) \</div><div class='hunk'>@@ -1811,9 +1730,9 @@ socket_s_ip_address_list(VALUE self)</div><div class='ctx'>             (r).ifr_addr.sa_len - sizeof(struct sockaddr) : \</div><div class='ctx'>             0))</div><div class='ctx'> # endif</div><div class='del'>-	req = (struct ifreq *)((char*)req + _SIZEOF_ADDR_IFREQ(*req));</div><div class='add'>+        req = (struct ifreq *)((char*)req + _SIZEOF_ADDR_IFREQ(*req));</div><div class='ctx'> #else</div><div class='del'>-	req = (struct ifreq *)((char*)req + sizeof(struct ifreq));</div><div class='add'>+        req = (struct ifreq *)((char*)req + sizeof(struct ifreq));</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -1823,57 +1742,57 @@ socket_s_ip_address_list(VALUE self)</div><div class='ctx'>     if (buf != initbuf)</div><div class='ctx'>         xfree(buf);</div><div class='ctx'>     if (fd != -1)</div><div class='del'>-	close(fd);</div><div class='add'>+        close(fd);</div><div class='ctx'>     errno = save_errno;</div><div class='ctx'> </div><div class='ctx'>     if (reason)</div><div class='del'>-	rb_syserr_fail(save_errno, reason);</div><div class='add'>+        rb_syserr_fail(save_errno, reason);</div><div class='ctx'>     return list;</div><div class='ctx'> </div><div class='ctx'> #undef EXTRA_SPACE</div><div class='ctx'> #elif defined(_WIN32)</div><div class='ctx'>     typedef struct ip_adapter_unicast_address_st {</div><div class='del'>-	unsigned LONG_LONG dummy0;</div><div class='del'>-	struct ip_adapter_unicast_address_st *Next;</div><div class='del'>-	struct {</div><div class='del'>-	    struct sockaddr *lpSockaddr;</div><div class='del'>-	    int iSockaddrLength;</div><div class='del'>-	} Address;</div><div class='del'>-	int dummy1;</div><div class='del'>-	int dummy2;</div><div class='del'>-	int dummy3;</div><div class='del'>-	long dummy4;</div><div class='del'>-	long dummy5;</div><div class='del'>-	long dummy6;</div><div class='add'>+        unsigned LONG_LONG dummy0;</div><div class='add'>+        struct ip_adapter_unicast_address_st *Next;</div><div class='add'>+        struct {</div><div class='add'>+            struct sockaddr *lpSockaddr;</div><div class='add'>+            int iSockaddrLength;</div><div class='add'>+        } Address;</div><div class='add'>+        int dummy1;</div><div class='add'>+        int dummy2;</div><div class='add'>+        int dummy3;</div><div class='add'>+        long dummy4;</div><div class='add'>+        long dummy5;</div><div class='add'>+        long dummy6;</div><div class='ctx'>     } ip_adapter_unicast_address_t;</div><div class='ctx'>     typedef struct ip_adapter_anycast_address_st {</div><div class='del'>-	unsigned LONG_LONG dummy0;</div><div class='del'>-	struct ip_adapter_anycast_address_st *Next;</div><div class='del'>-	struct {</div><div class='del'>-	    struct sockaddr *lpSockaddr;</div><div class='del'>-	    int iSockaddrLength;</div><div class='del'>-	} Address;</div><div class='add'>+        unsigned LONG_LONG dummy0;</div><div class='add'>+        struct ip_adapter_anycast_address_st *Next;</div><div class='add'>+        struct {</div><div class='add'>+            struct sockaddr *lpSockaddr;</div><div class='add'>+            int iSockaddrLength;</div><div class='add'>+        } Address;</div><div class='ctx'>     } ip_adapter_anycast_address_t;</div><div class='ctx'>     typedef struct ip_adapter_addresses_st {</div><div class='del'>-	unsigned LONG_LONG dummy0;</div><div class='del'>-	struct ip_adapter_addresses_st *Next;</div><div class='del'>-	void *dummy1;</div><div class='del'>-	ip_adapter_unicast_address_t *FirstUnicastAddress;</div><div class='del'>-	ip_adapter_anycast_address_t *FirstAnycastAddress;</div><div class='del'>-	void *dummy2;</div><div class='del'>-	void *dummy3;</div><div class='del'>-	void *dummy4;</div><div class='del'>-	void *dummy5;</div><div class='del'>-	void *dummy6;</div><div class='del'>-	BYTE dummy7[8];</div><div class='del'>-	DWORD dummy8;</div><div class='del'>-	DWORD dummy9;</div><div class='del'>-	DWORD dummy10;</div><div class='del'>-	DWORD IfType;</div><div class='del'>-	int OperStatus;</div><div class='del'>-	DWORD dummy12;</div><div class='del'>-	DWORD dummy13[16];</div><div class='del'>-	void *dummy14;</div><div class='add'>+        unsigned LONG_LONG dummy0;</div><div class='add'>+        struct ip_adapter_addresses_st *Next;</div><div class='add'>+        void *dummy1;</div><div class='add'>+        ip_adapter_unicast_address_t *FirstUnicastAddress;</div><div class='add'>+        ip_adapter_anycast_address_t *FirstAnycastAddress;</div><div class='add'>+        void *dummy2;</div><div class='add'>+        void *dummy3;</div><div class='add'>+        void *dummy4;</div><div class='add'>+        void *dummy5;</div><div class='add'>+        void *dummy6;</div><div class='add'>+        BYTE dummy7[8];</div><div class='add'>+        DWORD dummy8;</div><div class='add'>+        DWORD dummy9;</div><div class='add'>+        DWORD dummy10;</div><div class='add'>+        DWORD IfType;</div><div class='add'>+        int OperStatus;</div><div class='add'>+        DWORD dummy12;</div><div class='add'>+        DWORD dummy13[16];</div><div class='add'>+        void *dummy14;</div><div class='ctx'>     } ip_adapter_addresses_t;</div><div class='ctx'>     typedef ULONG (WINAPI *GetAdaptersAddresses_t)(ULONG, ULONG, PVOID, ip_adapter_addresses_t *, PULONG);</div><div class='ctx'>     HMODULE h;</div><div class='hunk'>@@ -1885,49 +1804,49 @@ socket_s_ip_address_list(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     h = LoadLibrary("iphlpapi.dll");</div><div class='ctx'>     if (!h)</div><div class='del'>-	rb_notimplement();</div><div class='add'>+        rb_notimplement();</div><div class='ctx'>     pGetAdaptersAddresses = (GetAdaptersAddresses_t)GetProcAddress(h, "GetAdaptersAddresses");</div><div class='ctx'>     if (!pGetAdaptersAddresses) {</div><div class='del'>-	FreeLibrary(h);</div><div class='del'>-	rb_notimplement();</div><div class='add'>+        FreeLibrary(h);</div><div class='add'>+        rb_notimplement();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     ret = pGetAdaptersAddresses(AF_UNSPEC, 0, NULL, NULL, &amp;len);</div><div class='ctx'>     if (ret != ERROR_SUCCESS &amp;&amp; ret != ERROR_BUFFER_OVERFLOW) {</div><div class='del'>-	errno = rb_w32_map_errno(ret);</div><div class='del'>-	FreeLibrary(h);</div><div class='del'>-	rb_sys_fail("GetAdaptersAddresses");</div><div class='add'>+        errno = rb_w32_map_errno(ret);</div><div class='add'>+        FreeLibrary(h);</div><div class='add'>+        rb_sys_fail("GetAdaptersAddresses");</div><div class='ctx'>     }</div><div class='ctx'>     adapters = (ip_adapter_addresses_t *)ALLOCA_N(BYTE, len);</div><div class='ctx'>     ret = pGetAdaptersAddresses(AF_UNSPEC, 0, NULL, adapters, &amp;len);</div><div class='ctx'>     if (ret != ERROR_SUCCESS) {</div><div class='del'>-	errno = rb_w32_map_errno(ret);</div><div class='del'>-	FreeLibrary(h);</div><div class='del'>-	rb_sys_fail("GetAdaptersAddresses");</div><div class='add'>+        errno = rb_w32_map_errno(ret);</div><div class='add'>+        FreeLibrary(h);</div><div class='add'>+        rb_sys_fail("GetAdaptersAddresses");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     list = rb_ary_new();</div><div class='ctx'>     for (; adapters; adapters = adapters-&gt;Next) {</div><div class='del'>-	ip_adapter_unicast_address_t *uni;</div><div class='del'>-	ip_adapter_anycast_address_t *any;</div><div class='del'>-	if (adapters-&gt;OperStatus != 1)	/* 1 means IfOperStatusUp */</div><div class='del'>-	    continue;</div><div class='del'>-	for (uni = adapters-&gt;FirstUnicastAddress; uni; uni = uni-&gt;Next) {</div><div class='add'>+        ip_adapter_unicast_address_t *uni;</div><div class='add'>+        ip_adapter_anycast_address_t *any;</div><div class='add'>+        if (adapters-&gt;OperStatus != 1)	/* 1 means IfOperStatusUp */</div><div class='add'>+            continue;</div><div class='add'>+        for (uni = adapters-&gt;FirstUnicastAddress; uni; uni = uni-&gt;Next) {</div><div class='ctx'> #ifndef INET6</div><div class='del'>-	    if (uni-&gt;Address.lpSockaddr-&gt;sa_family == AF_INET)</div><div class='add'>+            if (uni-&gt;Address.lpSockaddr-&gt;sa_family == AF_INET)</div><div class='ctx'> #else</div><div class='del'>-	    if (IS_IP_FAMILY(uni-&gt;Address.lpSockaddr-&gt;sa_family))</div><div class='add'>+            if (IS_IP_FAMILY(uni-&gt;Address.lpSockaddr-&gt;sa_family))</div><div class='ctx'> #endif</div><div class='del'>-		rb_ary_push(list, sockaddr_obj(uni-&gt;Address.lpSockaddr, uni-&gt;Address.iSockaddrLength));</div><div class='del'>-	}</div><div class='del'>-	for (any = adapters-&gt;FirstAnycastAddress; any; any = any-&gt;Next) {</div><div class='add'>+                rb_ary_push(list, sockaddr_obj(uni-&gt;Address.lpSockaddr, uni-&gt;Address.iSockaddrLength));</div><div class='add'>+        }</div><div class='add'>+        for (any = adapters-&gt;FirstAnycastAddress; any; any = any-&gt;Next) {</div><div class='ctx'> #ifndef INET6</div><div class='del'>-	    if (any-&gt;Address.lpSockaddr-&gt;sa_family == AF_INET)</div><div class='add'>+            if (any-&gt;Address.lpSockaddr-&gt;sa_family == AF_INET)</div><div class='ctx'> #else</div><div class='del'>-	    if (IS_IP_FAMILY(any-&gt;Address.lpSockaddr-&gt;sa_family))</div><div class='add'>+            if (IS_IP_FAMILY(any-&gt;Address.lpSockaddr-&gt;sa_family))</div><div class='ctx'> #endif</div><div class='del'>-		rb_ary_push(list, sockaddr_obj(any-&gt;Address.lpSockaddr, any-&gt;Address.iSockaddrLength));</div><div class='del'>-	}</div><div class='add'>+                rb_ary_push(list, sockaddr_obj(any-&gt;Address.lpSockaddr, any-&gt;Address.iSockaddrLength));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     FreeLibrary(h);</div><div class='hunk'>@@ -1941,6 +1860,8 @@ socket_s_ip_address_list(VALUE self)</div><div class='ctx'> void</div><div class='ctx'> Init_socket(void)</div><div class='ctx'> {</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+</div><div class='ctx'>     rsock_init_basicsocket();</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='hunk'>@@ -2069,7 +1990,7 @@ Init_socket(void)</div><div class='ctx'> </div><div class='ctx'>     /* for ext/socket/lib/socket.rb use only: */</div><div class='ctx'>     rb_define_private_method(rb_cSocket,</div><div class='del'>-			     "__connect_nonblock", sock_connect_nonblock, 2);</div><div class='add'>+                             "__connect_nonblock", sock_connect_nonblock, 2);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cSocket, "bind", sock_bind, 1);</div><div class='ctx'>     rb_define_method(rb_cSocket, "listen", rsock_sock_listen, 1);</div><div class='hunk'>@@ -2077,7 +1998,7 @@ Init_socket(void)</div><div class='ctx'> </div><div class='ctx'>     /* for ext/socket/lib/socket.rb use only: */</div><div class='ctx'>     rb_define_private_method(rb_cSocket,</div><div class='del'>-			     "__accept_nonblock", sock_accept_nonblock, 1);</div><div class='add'>+                             "__accept_nonblock", sock_accept_nonblock, 1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cSocket, "sysaccept", sock_sysaccept, 0);</div><div class='ctx'> </div><div class='hunk'>@@ -2085,7 +2006,7 @@ Init_socket(void)</div><div class='ctx'> </div><div class='ctx'>     /* for ext/socket/lib/socket.rb use only: */</div><div class='ctx'>     rb_define_private_method(rb_cSocket,</div><div class='del'>-			     "__recvfrom_nonblock", sock_recvfrom_nonblock, 4);</div><div class='add'>+                             "__recvfrom_nonblock", sock_recvfrom_nonblock, 4);</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(rb_cSocket, "socketpair", rsock_sock_s_socketpair, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cSocket, "pair", rsock_sock_s_socketpair, -1);</div><div class='hunk'>@@ -2099,7 +2020,7 @@ Init_socket(void)</div><div class='ctx'>     rb_define_singleton_method(rb_cSocket, "sockaddr_in", sock_s_pack_sockaddr_in, 2);</div><div class='ctx'>     rb_define_singleton_method(rb_cSocket, "pack_sockaddr_in", sock_s_pack_sockaddr_in, 2);</div><div class='ctx'>     rb_define_singleton_method(rb_cSocket, "unpack_sockaddr_in", sock_s_unpack_sockaddr_in, 1);</div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>     rb_define_singleton_method(rb_cSocket, "sockaddr_un", sock_s_pack_sockaddr_un, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cSocket, "pack_sockaddr_un", sock_s_pack_sockaddr_un, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cSocket, "unpack_sockaddr_un", sock_s_unpack_sockaddr_un, 1);</div><div class='head'>diff --git a/ext/socket/sockssocket.c b/ext/socket/sockssocket.c<br/>index 81f77a67c5..f263ac3804 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/sockssocket.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/sockssocket.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/sockssocket.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/sockssocket.c</a></div><div class='hunk'>@@ -13,22 +13,28 @@</div><div class='ctx'> #ifdef SOCKS</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   SOCKSSocket.new(host, serv) =&gt; socket</div><div class='add'>+ *   SOCKSSocket.new(host, port) =&gt; socket</div><div class='ctx'>  *</div><div class='del'>- * Opens a SOCKS connection to +host+ via the SOCKS server +serv+.</div><div class='add'>+ * Opens a SOCKS connection to +host+ via the SOCKS server.</div><div class='add'>+ *</div><div class='add'>+ * The SOCKS server configuration varies by implementation</div><div class='add'>+ *</div><div class='add'>+ * When using the Dante libsocks/libsocksd implementation it is configured as SOCKS_SERVER env var.</div><div class='add'>+ *</div><div class='add'>+ * See: https://manpages.debian.org/testing/dante-client/socksify.1.en.html for full env variable support.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-socks_init(VALUE sock, VALUE host, VALUE serv)</div><div class='add'>+socks_init(VALUE sock, VALUE host, VALUE port)</div><div class='ctx'> {</div><div class='ctx'>     static int init = 0;</div><div class='ctx'> </div><div class='ctx'>     if (init == 0) {</div><div class='del'>-	SOCKSinit("ruby");</div><div class='del'>-	init = 1;</div><div class='add'>+        SOCKSinit("ruby");</div><div class='add'>+        init = 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return rsock_init_inetsock(sock, host, serv, Qnil, Qnil, INET_SOCKS);</div><div class='add'>+    return rsock_init_inetsock(sock, host, port, Qnil, Qnil, INET_SOCKS, Qnil, Qnil);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifdef SOCKS5</div><div class='head'>diff --git a/ext/socket/tcpserver.c b/ext/socket/tcpserver.c<br/>index 1bbb31adcf..04e5a0bb51 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/tcpserver.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/tcpserver.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/tcpserver.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/tcpserver.c</a></div><div class='hunk'>@@ -36,7 +36,7 @@ tcp_svr_init(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'>     VALUE hostname, port;</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "011", &amp;hostname, &amp;port);</div><div class='del'>-    return rsock_init_inetsock(sock, hostname, port, Qnil, Qnil, INET_SERVER);</div><div class='add'>+    return rsock_init_inetsock(sock, hostname, port, Qnil, Qnil, INET_SERVER, Qnil, Qnil);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -53,15 +53,12 @@ tcp_svr_init(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-tcp_accept(VALUE sock)</div><div class='add'>+tcp_accept(VALUE server)</div><div class='ctx'> {</div><div class='del'>-    rb_io_t *fptr;</div><div class='del'>-    union_sockaddr from;</div><div class='del'>-    socklen_t fromlen;</div><div class='add'>+    union_sockaddr buffer;</div><div class='add'>+    socklen_t length = sizeof(buffer);</div><div class='ctx'> </div><div class='del'>-    GetOpenFile(sock, fptr);</div><div class='del'>-    fromlen = (socklen_t)sizeof(from);</div><div class='del'>-    return rsock_s_accept(rb_cTCPSocket, fptr-&gt;fd, &amp;from.addr, &amp;fromlen);</div><div class='add'>+    return rsock_s_accept(rb_cTCPSocket, server, &amp;buffer.addr, &amp;length);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='hunk'>@@ -91,15 +88,12 @@ tcp_accept_nonblock(VALUE sock, VALUE ex)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-tcp_sysaccept(VALUE sock)</div><div class='add'>+tcp_sysaccept(VALUE server)</div><div class='ctx'> {</div><div class='del'>-    rb_io_t *fptr;</div><div class='del'>-    union_sockaddr from;</div><div class='del'>-    socklen_t fromlen;</div><div class='add'>+    union_sockaddr buffer;</div><div class='add'>+    socklen_t length = sizeof(buffer);</div><div class='ctx'> </div><div class='del'>-    GetOpenFile(sock, fptr);</div><div class='del'>-    fromlen = (socklen_t)sizeof(from);</div><div class='del'>-    return rsock_s_accept(0, fptr-&gt;fd, &amp;from.addr, &amp;fromlen);</div><div class='add'>+    return rsock_s_accept(0, server, &amp;buffer.addr, &amp;length);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -139,7 +133,7 @@ rsock_init_tcpserver(void)</div><div class='ctx'>     rb_cTCPServer = rb_define_class("TCPServer", rb_cTCPSocket);</div><div class='ctx'>     rb_define_method(rb_cTCPServer, "accept", tcp_accept, 0);</div><div class='ctx'>     rb_define_private_method(rb_cTCPServer,</div><div class='del'>-			     "__accept_nonblock", tcp_accept_nonblock, 1);</div><div class='add'>+                             "__accept_nonblock", tcp_accept_nonblock, 1);</div><div class='ctx'>     rb_define_method(rb_cTCPServer, "sysaccept", tcp_sysaccept, 0);</div><div class='ctx'>     rb_define_method(rb_cTCPServer, "initialize", tcp_svr_init, -1);</div><div class='ctx'>     rb_define_method(rb_cTCPServer, "listen", rsock_sock_listen, 1); /* in socket.c */</div><div class='head'>diff --git a/ext/socket/tcpsocket.c b/ext/socket/tcpsocket.c<br/>index 29a3eda45f..03787272f3 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/tcpsocket.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/tcpsocket.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/tcpsocket.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/tcpsocket.c</a></div><div class='hunk'>@@ -12,23 +12,42 @@</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    TCPSocket.new(remote_host, remote_port, local_host=nil, local_port=nil)</div><div class='add'>+ *    TCPSocket.new(remote_host, remote_port, local_host=nil, local_port=nil, connect_timeout: nil)</div><div class='ctx'>  *</div><div class='ctx'>  * Opens a TCP connection to +remote_host+ on +remote_port+.  If +local_host+</div><div class='ctx'>  * and +local_port+ are specified, then those parameters are used on the local</div><div class='ctx'>  * end to establish the connection.</div><div class='add'>+ *</div><div class='add'>+ * [:connect_timeout] specify the timeout in seconds.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> tcp_init(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'> {</div><div class='ctx'>     VALUE remote_host, remote_serv;</div><div class='ctx'>     VALUE local_host, local_serv;</div><div class='add'>+    VALUE opt;</div><div class='add'>+    static ID keyword_ids[2];</div><div class='add'>+    VALUE kwargs[2];</div><div class='add'>+    VALUE resolv_timeout = Qnil;</div><div class='add'>+    VALUE connect_timeout = Qnil;</div><div class='add'>+</div><div class='add'>+    if (!keyword_ids[0]) {</div><div class='add'>+        CONST_ID(keyword_ids[0], "resolv_timeout");</div><div class='add'>+        CONST_ID(keyword_ids[1], "connect_timeout");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "22:", &amp;remote_host, &amp;remote_serv,</div><div class='add'>+                        &amp;local_host, &amp;local_serv, &amp;opt);</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "22", &amp;remote_host, &amp;remote_serv,</div><div class='del'>-			&amp;local_host, &amp;local_serv);</div><div class='add'>+    if (!NIL_P(opt)) {</div><div class='add'>+        rb_get_kwargs(opt, keyword_ids, 0, 2, kwargs);</div><div class='add'>+        if (kwargs[0] != Qundef) { resolv_timeout = kwargs[0]; }</div><div class='add'>+        if (kwargs[1] != Qundef) { connect_timeout = kwargs[1]; }</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     return rsock_init_inetsock(sock, remote_host, remote_serv,</div><div class='del'>-			       local_host, local_serv, INET_CLIENT);</div><div class='add'>+                               local_host, local_serv, INET_CLIENT,</div><div class='add'>+                               resolv_timeout, connect_timeout);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -59,8 +78,9 @@ tcp_sockaddr(struct sockaddr *addr, socklen_t len)</div><div class='ctx'> static VALUE</div><div class='ctx'> tcp_s_gethostbyname(VALUE obj, VALUE host)</div><div class='ctx'> {</div><div class='add'>+    rb_warn("TCPSocket.gethostbyname is deprecated; use Addrinfo.getaddrinfo instead.");</div><div class='ctx'>     struct rb_addrinfo *res =</div><div class='del'>-	rsock_addrinfo(host, Qnil, AF_UNSPEC, SOCK_STREAM, AI_CANONNAME);</div><div class='add'>+        rsock_addrinfo(host, Qnil, AF_UNSPEC, SOCK_STREAM, AI_CANONNAME);</div><div class='ctx'>     return rsock_make_hostent(host, res, tcp_sockaddr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='head'>diff --git a/ext/socket/udpsocket.c b/ext/socket/udpsocket.c<br/>index c2e273c2a3..5224e48a96 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/udpsocket.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/udpsocket.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/udpsocket.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/udpsocket.c</a></div><div class='hunk'>@@ -33,11 +33,11 @@ udp_init(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'>     int fd;</div><div class='ctx'> </div><div class='ctx'>     if (rb_scan_args(argc, argv, "01", &amp;arg) == 1) {</div><div class='del'>-	family = rsock_family_arg(arg);</div><div class='add'>+        family = rsock_family_arg(arg);</div><div class='ctx'>     }</div><div class='ctx'>     fd = rsock_socket(family, SOCK_DGRAM, 0);</div><div class='ctx'>     if (fd &lt; 0) {</div><div class='del'>-	rb_sys_fail("socket(2) - udp");</div><div class='add'>+        rb_sys_fail("socket(2) - udp");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return rsock_init_sock(sock, fd);</div><div class='hunk'>@@ -50,8 +50,9 @@ struct udp_arg</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-udp_connect_internal(struct udp_arg *arg)</div><div class='add'>+udp_connect_internal(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct udp_arg *arg = (void *)v;</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     int fd;</div><div class='ctx'>     struct addrinfo *res;</div><div class='hunk'>@@ -59,9 +60,9 @@ udp_connect_internal(struct udp_arg *arg)</div><div class='ctx'>     rb_io_check_closed(fptr = arg-&gt;fptr);</div><div class='ctx'>     fd = fptr-&gt;fd;</div><div class='ctx'>     for (res = arg-&gt;res-&gt;ai; res; res = res-&gt;ai_next) {</div><div class='del'>-	if (rsock_connect(fd, res-&gt;ai_addr, res-&gt;ai_addrlen, 0) &gt;= 0) {</div><div class='del'>-	    return Qtrue;</div><div class='del'>-	}</div><div class='add'>+        if (rsock_connect(fd, res-&gt;ai_addr, res-&gt;ai_addrlen, 0, NULL) &gt;= 0) {</div><div class='add'>+            return Qtrue;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -91,14 +92,15 @@ udp_connect(VALUE sock, VALUE host, VALUE port)</div><div class='ctx'>     GetOpenFile(sock, arg.fptr);</div><div class='ctx'>     arg.res = rsock_addrinfo(host, port, rsock_fd_family(arg.fptr-&gt;fd), SOCK_DGRAM, 0);</div><div class='ctx'>     ret = rb_ensure(udp_connect_internal, (VALUE)&amp;arg,</div><div class='del'>-		    rsock_freeaddrinfo, (VALUE)arg.res);</div><div class='add'>+                    rsock_freeaddrinfo, (VALUE)arg.res);</div><div class='ctx'>     if (!ret) rsock_sys_fail_host_port("connect(2)", host, port);</div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-udp_bind_internal(struct udp_arg *arg)</div><div class='add'>+udp_bind_internal(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct udp_arg *arg = (void *)v;</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     int fd;</div><div class='ctx'>     struct addrinfo *res;</div><div class='hunk'>@@ -106,10 +108,10 @@ udp_bind_internal(struct udp_arg *arg)</div><div class='ctx'>     rb_io_check_closed(fptr = arg-&gt;fptr);</div><div class='ctx'>     fd = fptr-&gt;fd;</div><div class='ctx'>     for (res = arg-&gt;res-&gt;ai; res; res = res-&gt;ai_next) {</div><div class='del'>-	if (bind(fd, res-&gt;ai_addr, res-&gt;ai_addrlen) &lt; 0) {</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	return Qtrue;</div><div class='add'>+        if (bind(fd, res-&gt;ai_addr, res-&gt;ai_addrlen) &lt; 0) {</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        return Qtrue;</div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -135,7 +137,7 @@ udp_bind(VALUE sock, VALUE host, VALUE port)</div><div class='ctx'>     GetOpenFile(sock, arg.fptr);</div><div class='ctx'>     arg.res = rsock_addrinfo(host, port, rsock_fd_family(arg.fptr-&gt;fd), SOCK_DGRAM, 0);</div><div class='ctx'>     ret = rb_ensure(udp_bind_internal, (VALUE)&amp;arg,</div><div class='del'>-		    rsock_freeaddrinfo, (VALUE)arg.res);</div><div class='add'>+                    rsock_freeaddrinfo, (VALUE)arg.res);</div><div class='ctx'>     if (!ret) rsock_sys_fail_host_port("bind(2)", host, port);</div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='hunk'>@@ -147,26 +149,30 @@ struct udp_send_arg {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-udp_send_internal(struct udp_send_arg *arg)</div><div class='add'>+udp_send_internal(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct udp_send_arg *arg = (void *)v;</div><div class='ctx'>     rb_io_t *fptr;</div><div class='del'>-    int n;</div><div class='ctx'>     struct addrinfo *res;</div><div class='ctx'> </div><div class='ctx'>     rb_io_check_closed(fptr = arg-&gt;fptr);</div><div class='ctx'>     for (res = arg-&gt;res-&gt;ai; res; res = res-&gt;ai_next) {</div><div class='ctx'>       retry:</div><div class='del'>-	arg-&gt;sarg.fd = fptr-&gt;fd;</div><div class='del'>-	arg-&gt;sarg.to = res-&gt;ai_addr;</div><div class='del'>-	arg-&gt;sarg.tolen = res-&gt;ai_addrlen;</div><div class='del'>-	rsock_maybe_fd_writable(arg-&gt;sarg.fd);</div><div class='del'>-	n = (int)BLOCKING_REGION_FD(rsock_sendto_blocking, &amp;arg-&gt;sarg);</div><div class='del'>-	if (n &gt;= 0) {</div><div class='del'>-	    return INT2FIX(n);</div><div class='del'>-	}</div><div class='del'>-	if (rb_io_wait_writable(fptr-&gt;fd)) {</div><div class='del'>-	    goto retry;</div><div class='del'>-	}</div><div class='add'>+        arg-&gt;sarg.fd = fptr-&gt;fd;</div><div class='add'>+        arg-&gt;sarg.to = res-&gt;ai_addr;</div><div class='add'>+        arg-&gt;sarg.tolen = res-&gt;ai_addrlen;</div><div class='add'>+</div><div class='add'>+#ifdef RSOCK_WAIT_BEFORE_BLOCKING</div><div class='add'>+        rb_io_wait(fptr-&gt;self, RB_INT2NUM(RUBY_IO_WRITABLE), Qnil);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        ssize_t n = (ssize_t)BLOCKING_REGION_FD(rsock_sendto_blocking, &amp;arg-&gt;sarg);</div><div class='add'>+</div><div class='add'>+        if (n &gt;= 0) return RB_SSIZE2NUM(n);</div><div class='add'>+</div><div class='add'>+        if (rb_io_maybe_wait_writable(errno, fptr-&gt;self, RUBY_IO_TIMEOUT_DEFAULT)) {</div><div class='add'>+            goto retry;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -201,7 +207,7 @@ udp_send(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'>     VALUE ret;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 2 || argc == 3) {</div><div class='del'>-	return rsock_bsock_send(argc, argv, sock);</div><div class='add'>+        return rsock_bsock_send(argc, argv, sock);</div><div class='ctx'>     }</div><div class='ctx'>     rb_scan_args(argc, argv, "4", &amp;arg.sarg.mesg, &amp;flags, &amp;host, &amp;port);</div><div class='ctx'> </div><div class='hunk'>@@ -211,7 +217,7 @@ udp_send(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'>     arg.sarg.flags = NUM2INT(flags);</div><div class='ctx'>     arg.res = rsock_addrinfo(host, port, rsock_fd_family(arg.fptr-&gt;fd), SOCK_DGRAM, 0);</div><div class='ctx'>     ret = rb_ensure(udp_send_internal, (VALUE)&amp;arg,</div><div class='del'>-		    rsock_freeaddrinfo, (VALUE)arg.res);</div><div class='add'>+                    rsock_freeaddrinfo, (VALUE)arg.res);</div><div class='ctx'>     if (!ret) rsock_sys_fail_host_port("sendto(2)", host, port);</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='hunk'>@@ -240,5 +246,5 @@ rsock_init_udpsocket(void)</div><div class='ctx'> </div><div class='ctx'>     /* for ext/socket/lib/socket.rb use only: */</div><div class='ctx'>     rb_define_private_method(rb_cUDPSocket,</div><div class='del'>-			     "__recvfrom_nonblock", udp_recvfrom_nonblock, 4);</div><div class='add'>+                             "__recvfrom_nonblock", udp_recvfrom_nonblock, 4);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/socket/unixserver.c b/ext/socket/unixserver.c<br/>index b1f2a38547..0ea5ac083c 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/unixserver.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/unixserver.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/unixserver.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/unixserver.c</a></div><div class='hunk'>@@ -10,7 +10,7 @@</div><div class='ctx'> </div><div class='ctx'> #include "rubysocket.h"</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   UNIXServer.new(path) =&gt; unixserver</div><div class='hunk'>@@ -47,16 +47,12 @@ unix_svr_init(VALUE sock, VALUE path)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-unix_accept(VALUE sock)</div><div class='add'>+unix_accept(VALUE server)</div><div class='ctx'> {</div><div class='del'>-    rb_io_t *fptr;</div><div class='del'>-    struct sockaddr_un from;</div><div class='del'>-    socklen_t fromlen;</div><div class='add'>+    struct sockaddr_un buffer;</div><div class='add'>+    socklen_t length = sizeof(buffer);</div><div class='ctx'> </div><div class='del'>-    GetOpenFile(sock, fptr);</div><div class='del'>-    fromlen = (socklen_t)sizeof(struct sockaddr_un);</div><div class='del'>-    return rsock_s_accept(rb_cUNIXSocket, fptr-&gt;fd,</div><div class='del'>-		          (struct sockaddr*)&amp;from, &amp;fromlen);</div><div class='add'>+    return rsock_s_accept(rb_cUNIXSocket, server, (struct sockaddr*)&amp;buffer, &amp;length);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='hunk'>@@ -70,7 +66,7 @@ unix_accept_nonblock(VALUE sock, VALUE ex)</div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     fromlen = (socklen_t)sizeof(from);</div><div class='ctx'>     return rsock_s_accept_nonblock(rb_cUNIXSocket, ex, fptr,</div><div class='del'>-			           (struct sockaddr *)&amp;from, &amp;fromlen);</div><div class='add'>+                                   (struct sockaddr *)&amp;from, &amp;fromlen);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -92,15 +88,12 @@ unix_accept_nonblock(VALUE sock, VALUE ex)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-unix_sysaccept(VALUE sock)</div><div class='add'>+unix_sysaccept(VALUE server)</div><div class='ctx'> {</div><div class='del'>-    rb_io_t *fptr;</div><div class='del'>-    struct sockaddr_un from;</div><div class='del'>-    socklen_t fromlen;</div><div class='add'>+    struct sockaddr_un buffer;</div><div class='add'>+    socklen_t length = sizeof(buffer);</div><div class='ctx'> </div><div class='del'>-    GetOpenFile(sock, fptr);</div><div class='del'>-    fromlen = (socklen_t)sizeof(struct sockaddr_un);</div><div class='del'>-    return rsock_s_accept(0, fptr-&gt;fd, (struct sockaddr*)&amp;from, &amp;fromlen);</div><div class='add'>+    return rsock_s_accept(0, server, (struct sockaddr*)&amp;buffer, &amp;length);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #endif</div><div class='hunk'>@@ -108,7 +101,7 @@ unix_sysaccept(VALUE sock)</div><div class='ctx'> void</div><div class='ctx'> rsock_init_unixserver(void)</div><div class='ctx'> {</div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>     /*</div><div class='ctx'>      * Document-class: UNIXServer &lt; UNIXSocket</div><div class='ctx'>      *</div><div class='hunk'>@@ -120,7 +113,7 @@ rsock_init_unixserver(void)</div><div class='ctx'>     rb_define_method(rb_cUNIXServer, "accept", unix_accept, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_private_method(rb_cUNIXServer,</div><div class='del'>-			     "__accept_nonblock", unix_accept_nonblock, 1);</div><div class='add'>+                             "__accept_nonblock", unix_accept_nonblock, 1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cUNIXServer, "sysaccept", unix_sysaccept, 0);</div><div class='ctx'>     rb_define_method(rb_cUNIXServer, "listen", rsock_sock_listen, 1); /* in socket.c */</div><div class='head'>diff --git a/ext/socket/unixsocket.c b/ext/socket/unixsocket.c<br/>index 8bdfc84575..26ab76fc9f 100644<br/>--- a/<a href='/ruby.git/tree/ext/socket/unixsocket.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/socket/unixsocket.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/socket/unixsocket.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/socket/unixsocket.c</a></div><div class='hunk'>@@ -10,7 +10,7 @@</div><div class='ctx'> </div><div class='ctx'> #include "rubysocket.h"</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'> struct unixsock_arg {</div><div class='ctx'>     struct sockaddr_un *sockaddr;</div><div class='ctx'>     socklen_t sockaddrlen;</div><div class='hunk'>@@ -22,7 +22,7 @@ unixsock_connect_internal(VALUE a)</div><div class='ctx'> {</div><div class='ctx'>     struct unixsock_arg *arg = (struct unixsock_arg *)a;</div><div class='ctx'>     return (VALUE)rsock_connect(arg-&gt;fd, (struct sockaddr*)arg-&gt;sockaddr,</div><div class='del'>-			        arg-&gt;sockaddrlen, 0);</div><div class='add'>+                                arg-&gt;sockaddrlen, 0, NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -39,11 +39,14 @@ unixsock_path_value(VALUE path)</div><div class='ctx'> #endif</div><div class='ctx'>     if (isstr) {</div><div class='ctx'>         if (RSTRING_LEN(name) == 0 || RSTRING_PTR(name)[0] == '\0') {</div><div class='del'>-            rb_check_safe_obj(name);</div><div class='ctx'>             return name;             /* ignore encoding */</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    /* UNIXSocket requires UTF-8 per spec. */</div><div class='add'>+    path = rb_str_export_to_enc(path, rb_utf8_encoding());</div><div class='add'>+#endif</div><div class='ctx'>     return rb_get_path(path);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -67,42 +70,42 @@ rsock_init_unixsock(VALUE sock, VALUE path, int server)</div><div class='ctx'> </div><div class='ctx'>     fd = rsock_socket(AF_UNIX, SOCK_STREAM, 0);</div><div class='ctx'>     if (fd &lt; 0) {</div><div class='del'>-	rsock_sys_fail_path("socket(2)", path);</div><div class='add'>+        rsock_sys_fail_path("socket(2)", path);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (server) {</div><div class='ctx'>         status = bind(fd, (struct sockaddr*)&amp;sockaddr, sockaddrlen);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	int prot;</div><div class='del'>-	struct unixsock_arg arg;</div><div class='del'>-	arg.sockaddr = &amp;sockaddr;</div><div class='del'>-	arg.sockaddrlen = sockaddrlen;</div><div class='del'>-	arg.fd = fd;</div><div class='add'>+        int prot;</div><div class='add'>+        struct unixsock_arg arg;</div><div class='add'>+        arg.sockaddr = &amp;sockaddr;</div><div class='add'>+        arg.sockaddrlen = sockaddrlen;</div><div class='add'>+        arg.fd = fd;</div><div class='ctx'>         status = (int)rb_protect(unixsock_connect_internal, (VALUE)&amp;arg, &amp;prot);</div><div class='del'>-	if (prot) {</div><div class='del'>-	    close(fd);</div><div class='del'>-	    rb_jump_tag(prot);</div><div class='del'>-	}</div><div class='add'>+        if (prot) {</div><div class='add'>+            close(fd);</div><div class='add'>+            rb_jump_tag(prot);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (status &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	close(fd);</div><div class='del'>-	rsock_syserr_fail_path(e, "connect(2)", path);</div><div class='add'>+        int e = errno;</div><div class='add'>+        close(fd);</div><div class='add'>+        rsock_syserr_fail_path(e, "connect(2)", path);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (server) {</div><div class='del'>-	if (listen(fd, SOMAXCONN) &lt; 0) {</div><div class='del'>-	    int e = errno;</div><div class='del'>-	    close(fd);</div><div class='del'>-	    rsock_syserr_fail_path(e, "listen(2)", path);</div><div class='del'>-	}</div><div class='add'>+        if (listen(fd, SOMAXCONN) &lt; 0) {</div><div class='add'>+            int e = errno;</div><div class='add'>+            close(fd);</div><div class='add'>+            rsock_syserr_fail_path(e, "listen(2)", path);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rsock_init_sock(sock, fd);</div><div class='ctx'>     if (server) {</div><div class='del'>-	GetOpenFile(sock, fptr);</div><div class='add'>+        GetOpenFile(sock, fptr);</div><div class='ctx'>         fptr-&gt;pathv = rb_str_new_frozen(path);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -144,13 +147,13 @@ unix_path(VALUE sock)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='ctx'>     if (NIL_P(fptr-&gt;pathv)) {</div><div class='del'>-	struct sockaddr_un addr;</div><div class='del'>-	socklen_t len = (socklen_t)sizeof(addr);</div><div class='del'>-	socklen_t len0 = len;</div><div class='del'>-	if (getsockname(fptr-&gt;fd, (struct sockaddr*)&amp;addr, &amp;len) &lt; 0)</div><div class='add'>+        struct sockaddr_un addr;</div><div class='add'>+        socklen_t len = (socklen_t)sizeof(addr);</div><div class='add'>+        socklen_t len0 = len;</div><div class='add'>+        if (getsockname(fptr-&gt;fd, (struct sockaddr*)&amp;addr, &amp;len) &lt; 0)</div><div class='ctx'>             rsock_sys_fail_path("getsockname(2)", fptr-&gt;pathv);</div><div class='ctx'>         if (len0 &lt; len) len = len0;</div><div class='del'>-	fptr-&gt;pathv = rb_obj_freeze(rsock_unixpath_str(&amp;addr, len));</div><div class='add'>+        fptr-&gt;pathv = rb_obj_freeze(rsock_unixpath_str(&amp;addr, len));</div><div class='ctx'>     }</div><div class='ctx'>     return rb_str_dup(fptr-&gt;pathv);</div><div class='ctx'> }</div><div class='hunk'>@@ -241,21 +244,21 @@ unix_send_io(VALUE sock, VALUE val)</div><div class='ctx'> </div><div class='ctx'> #if FD_PASSING_BY_MSG_CONTROL</div><div class='ctx'>     union {</div><div class='del'>-	struct cmsghdr hdr;</div><div class='del'>-	char pad[sizeof(struct cmsghdr)+8+sizeof(int)+8];</div><div class='add'>+        struct cmsghdr hdr;</div><div class='add'>+        char pad[sizeof(struct cmsghdr)+8+sizeof(int)+8];</div><div class='ctx'>     } cmsg;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     if (rb_obj_is_kind_of(val, rb_cIO)) {</div><div class='ctx'>         rb_io_t *valfptr;</div><div class='del'>-	GetOpenFile(val, valfptr);</div><div class='del'>-	fd = valfptr-&gt;fd;</div><div class='add'>+        GetOpenFile(val, valfptr);</div><div class='add'>+        fd = valfptr-&gt;fd;</div><div class='ctx'>     }</div><div class='ctx'>     else if (FIXNUM_P(val)) {</div><div class='ctx'>         fd = FIX2INT(val);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_raise(rb_eTypeError, "neither IO nor file descriptor");</div><div class='add'>+        rb_raise(rb_eTypeError, "neither IO nor file descriptor");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='hunk'>@@ -286,8 +289,8 @@ unix_send_io(VALUE sock, VALUE val)</div><div class='ctx'> </div><div class='ctx'>     arg.fd = fptr-&gt;fd;</div><div class='ctx'>     while ((int)BLOCKING_REGION_FD(sendmsg_blocking, &amp;arg) == -1) {</div><div class='del'>-	if (!rb_io_wait_writable(arg.fd))</div><div class='del'>-	    rsock_sys_fail_path("sendmsg(2)", fptr-&gt;pathv);</div><div class='add'>+        if (!rb_io_wait_writable(arg.fd))</div><div class='add'>+            rsock_sys_fail_path("sendmsg(2)", fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -349,16 +352,16 @@ unix_recv_io(int argc, VALUE *argv, VALUE sock)</div><div class='ctx'>     int fd;</div><div class='ctx'> #if FD_PASSING_BY_MSG_CONTROL</div><div class='ctx'>     union {</div><div class='del'>-	struct cmsghdr hdr;</div><div class='del'>-	char pad[sizeof(struct cmsghdr)+8+sizeof(int)+8];</div><div class='add'>+        struct cmsghdr hdr;</div><div class='add'>+        char pad[sizeof(struct cmsghdr)+8+sizeof(int)+8];</div><div class='ctx'>     } cmsg;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "02", &amp;klass, &amp;mode);</div><div class='ctx'>     if (argc == 0)</div><div class='del'>-	klass = rb_cIO;</div><div class='add'>+        klass = rb_cIO;</div><div class='ctx'>     if (argc &lt;= 1)</div><div class='del'>-	mode = Qnil;</div><div class='add'>+        mode = Qnil;</div><div class='ctx'> </div><div class='ctx'> retry:</div><div class='ctx'>     GetOpenFile(sock, fptr);</div><div class='hunk'>@@ -401,8 +404,8 @@ retry:</div><div class='ctx'>             rb_gc_for_fd(e);</div><div class='ctx'>             goto retry;</div><div class='ctx'>         }</div><div class='del'>-	if (!rb_io_wait_readable(arg.fd))</div><div class='del'>-	    rsock_syserr_fail_path(e, "recvmsg(2)", fptr-&gt;pathv);</div><div class='add'>+        if (!rb_io_wait_readable(arg.fd))</div><div class='add'>+            rsock_syserr_fail_path(e, "recvmsg(2)", fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> #if FD_PASSING_BY_MSG_CONTROL</div><div class='hunk'>@@ -413,41 +416,41 @@ retry:</div><div class='ctx'>             rb_gc_for_fd(EMFILE);</div><div class='ctx'>             goto retry;</div><div class='ctx'>         }</div><div class='del'>-	rb_raise(rb_eSocket,</div><div class='del'>-		 "file descriptor was not passed (msg_controllen=%d smaller than sizeof(struct cmsghdr)=%d)",</div><div class='del'>-		 (int)arg.msg.msg_controllen, (int)sizeof(struct cmsghdr));</div><div class='add'>+        rb_raise(rb_eSocket,</div><div class='add'>+                 "file descriptor was not passed (msg_controllen=%d smaller than sizeof(struct cmsghdr)=%d)",</div><div class='add'>+                 (int)arg.msg.msg_controllen, (int)sizeof(struct cmsghdr));</div><div class='ctx'>     }</div><div class='ctx'>     if (cmsg.hdr.cmsg_level != SOL_SOCKET) {</div><div class='del'>-	rb_raise(rb_eSocket,</div><div class='del'>-		 "file descriptor was not passed (cmsg_level=%d, %d expected)",</div><div class='del'>-		 cmsg.hdr.cmsg_level, SOL_SOCKET);</div><div class='add'>+        rb_raise(rb_eSocket,</div><div class='add'>+                 "file descriptor was not passed (cmsg_level=%d, %d expected)",</div><div class='add'>+                 cmsg.hdr.cmsg_level, SOL_SOCKET);</div><div class='ctx'>     }</div><div class='ctx'>     if (cmsg.hdr.cmsg_type != SCM_RIGHTS) {</div><div class='del'>-	rb_raise(rb_eSocket,</div><div class='del'>-		 "file descriptor was not passed (cmsg_type=%d, %d expected)",</div><div class='del'>-		 cmsg.hdr.cmsg_type, SCM_RIGHTS);</div><div class='add'>+        rb_raise(rb_eSocket,</div><div class='add'>+                 "file descriptor was not passed (cmsg_type=%d, %d expected)",</div><div class='add'>+                 cmsg.hdr.cmsg_type, SCM_RIGHTS);</div><div class='ctx'>     }</div><div class='ctx'>     if (arg.msg.msg_controllen &lt; (socklen_t)CMSG_LEN(sizeof(int))) {</div><div class='del'>-	rb_raise(rb_eSocket,</div><div class='del'>-		 "file descriptor was not passed (msg_controllen=%d smaller than CMSG_LEN(sizeof(int))=%d)",</div><div class='del'>-		 (int)arg.msg.msg_controllen, (int)CMSG_LEN(sizeof(int)));</div><div class='add'>+        rb_raise(rb_eSocket,</div><div class='add'>+                 "file descriptor was not passed (msg_controllen=%d smaller than CMSG_LEN(sizeof(int))=%d)",</div><div class='add'>+                 (int)arg.msg.msg_controllen, (int)CMSG_LEN(sizeof(int)));</div><div class='ctx'>     }</div><div class='ctx'>     if ((socklen_t)CMSG_SPACE(sizeof(int)) &lt; arg.msg.msg_controllen) {</div><div class='del'>-	rb_raise(rb_eSocket,</div><div class='del'>-		 "file descriptor was not passed (msg_controllen=%d bigger than CMSG_SPACE(sizeof(int))=%d)",</div><div class='del'>-		 (int)arg.msg.msg_controllen, (int)CMSG_SPACE(sizeof(int)));</div><div class='add'>+        rb_raise(rb_eSocket,</div><div class='add'>+                 "file descriptor was not passed (msg_controllen=%d bigger than CMSG_SPACE(sizeof(int))=%d)",</div><div class='add'>+                 (int)arg.msg.msg_controllen, (int)CMSG_SPACE(sizeof(int)));</div><div class='ctx'>     }</div><div class='ctx'>     if (cmsg.hdr.cmsg_len != CMSG_LEN(sizeof(int))) {</div><div class='del'>-	rsock_discard_cmsg_resource(&amp;arg.msg, 0);</div><div class='del'>-	rb_raise(rb_eSocket,</div><div class='del'>-		 "file descriptor was not passed (cmsg_len=%d, %d expected)",</div><div class='del'>-		 (int)cmsg.hdr.cmsg_len, (int)CMSG_LEN(sizeof(int)));</div><div class='add'>+        rsock_discard_cmsg_resource(&amp;arg.msg, 0);</div><div class='add'>+        rb_raise(rb_eSocket,</div><div class='add'>+                 "file descriptor was not passed (cmsg_len=%d, %d expected)",</div><div class='add'>+                 (int)cmsg.hdr.cmsg_len, (int)CMSG_LEN(sizeof(int)));</div><div class='ctx'>     }</div><div class='ctx'> #else</div><div class='ctx'>     if (arg.msg.msg_accrightslen != sizeof(fd)) {</div><div class='del'>-	rb_raise(rb_eSocket,</div><div class='del'>-		 "file descriptor was not passed (accrightslen=%d, %d expected)",</div><div class='del'>-		 arg.msg.msg_accrightslen, (int)sizeof(fd));</div><div class='add'>+        rb_raise(rb_eSocket,</div><div class='add'>+                 "file descriptor was not passed (accrightslen=%d, %d expected)",</div><div class='add'>+                 arg.msg.msg_accrightslen, (int)sizeof(fd));</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -456,22 +459,18 @@ retry:</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     rb_update_max_fd(fd);</div><div class='del'>-</div><div class='del'>-    if (rsock_cmsg_cloexec_state &lt; 0)</div><div class='del'>-	rsock_cmsg_cloexec_state = rsock_detect_cloexec(fd);</div><div class='del'>-    if (rsock_cmsg_cloexec_state == 0 || fd &lt;= 2)</div><div class='del'>-	rb_maygvl_fd_fix_cloexec(fd);</div><div class='add'>+    rb_maygvl_fd_fix_cloexec(fd);</div><div class='ctx'> </div><div class='ctx'>     if (klass == Qnil)</div><div class='del'>-	return INT2FIX(fd);</div><div class='add'>+        return INT2FIX(fd);</div><div class='ctx'>     else {</div><div class='del'>-	ID for_fd;</div><div class='del'>-	int ff_argc;</div><div class='del'>-	VALUE ff_argv[2];</div><div class='del'>-	CONST_ID(for_fd, "for_fd");</div><div class='del'>-	ff_argc = mode == Qnil ? 1 : 2;</div><div class='del'>-	ff_argv[0] = INT2FIX(fd);</div><div class='del'>-	ff_argv[1] = mode;</div><div class='add'>+        ID for_fd;</div><div class='add'>+        int ff_argc;</div><div class='add'>+        VALUE ff_argv[2];</div><div class='add'>+        CONST_ID(for_fd, "for_fd");</div><div class='add'>+        ff_argc = mode == Qnil ? 1 : 2;</div><div class='add'>+        ff_argv[0] = INT2FIX(fd);</div><div class='add'>+        ff_argv[1] = mode;</div><div class='ctx'>         return rb_funcallv(klass, for_fd, ff_argc, ff_argv);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -561,9 +560,9 @@ unix_s_socketpair(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     domain = INT2FIX(PF_UNIX);</div><div class='ctx'>     rb_scan_args(argc, argv, "02", &amp;type, &amp;protocol);</div><div class='ctx'>     if (argc == 0)</div><div class='del'>-	type = INT2FIX(SOCK_STREAM);</div><div class='add'>+        type = INT2FIX(SOCK_STREAM);</div><div class='ctx'>     if (argc &lt;= 1)</div><div class='del'>-	protocol = INT2FIX(0);</div><div class='add'>+        protocol = INT2FIX(0);</div><div class='ctx'> </div><div class='ctx'>     args[0] = domain;</div><div class='ctx'>     args[1] = type;</div><div class='hunk'>@@ -576,7 +575,7 @@ unix_s_socketpair(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> void</div><div class='ctx'> rsock_init_unixsocket(void)</div><div class='ctx'> {</div><div class='del'>-#ifdef HAVE_SYS_UN_H</div><div class='add'>+#ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN</div><div class='ctx'>     /*</div><div class='ctx'>      * Document-class: UNIXSocket &lt; BasicSocket</div><div class='ctx'>      *</div><div class='head'>diff --git a/ext/stringio/depend b/ext/stringio/depend<br/>index 852146f503..828fc6e842 100644<br/>--- a/<a href='/ruby.git/tree/ext/stringio/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/stringio/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/stringio/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/stringio/depend</a></div><div class='hunk'>@@ -1,10 +1,169 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> stringio.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> stringio.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> stringio.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> stringio.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> stringio.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> stringio.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+stringio.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> stringio.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> stringio.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> stringio.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -12,6 +171,5 @@ stringio.o: $(hdrdir)/ruby/oniguruma.h</div><div class='ctx'> stringio.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> stringio.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> stringio.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-stringio.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> stringio.o: stringio.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/stringio/extconf.rb b/ext/stringio/extconf.rb<br/>index ad8650dce2..a933159766 100644<br/>--- a/<a href='/ruby.git/tree/ext/stringio/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/stringio/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/stringio/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/stringio/extconf.rb</a></div><div class='hunk'>@@ -1,3 +1,4 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> require 'mkmf'</div><div class='add'>+have_func("rb_io_extract_modeenc", "ruby/io.h")</div><div class='ctx'> create_makefile('stringio')</div><div class='head'>diff --git a/ext/stringio/stringio.c b/ext/stringio/stringio.c<br/>index eb23109087..0054766dac 100644<br/>--- a/<a href='/ruby.git/tree/ext/stringio/stringio.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/stringio/stringio.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/stringio/stringio.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/stringio/stringio.c</a></div><div class='hunk'>@@ -1,3 +1,4 @@</div><div class='add'>+/* -*- mode: c; indent-tabs-mode: t -*- */</div><div class='ctx'> /**********************************************************************</div><div class='ctx'> </div><div class='ctx'>   stringio.c -</div><div class='hunk'>@@ -11,6 +12,8 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='add'>+#define STRINGIO_VERSION "3.0.4"</div><div class='add'>+</div><div class='ctx'> #include "ruby.h"</div><div class='ctx'> #include "ruby/io.h"</div><div class='ctx'> #include "ruby/encoding.h"</div><div class='hunk'>@@ -24,6 +27,91 @@</div><div class='ctx'> # define RB_INTEGER_TYPE_P(c) (FIXNUM_P(c) || RB_TYPE_P(c, T_BIGNUM))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifndef RB_PASS_CALLED_KEYWORDS</div><div class='add'>+# define rb_funcallv_kw(recv, mid, arg, argv, kw_splat) rb_funcallv(recv, mid, arg, argv)</div><div class='add'>+# define rb_class_new_instance_kw(argc, argv, klass, kw_splat) rb_class_new_instance(argc, argv, klass)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_RB_IO_EXTRACT_MODEENC</div><div class='add'>+#define rb_io_extract_modeenc strio_extract_modeenc</div><div class='add'>+static void</div><div class='add'>+strio_extract_modeenc(VALUE *vmode_p, VALUE *vperm_p, VALUE opthash,</div><div class='add'>+		      int *oflags_p, int *fmode_p, struct rb_io_enc_t *convconfig_p)</div><div class='add'>+{</div><div class='add'>+    VALUE mode = *vmode_p;</div><div class='add'>+    VALUE intmode;</div><div class='add'>+    int fmode;</div><div class='add'>+    int has_enc = 0, has_vmode = 0;</div><div class='add'>+</div><div class='add'>+    convconfig_p-&gt;enc = convconfig_p-&gt;enc2 = 0;</div><div class='add'>+</div><div class='add'>+  vmode_handle:</div><div class='add'>+    if (NIL_P(mode)) {</div><div class='add'>+	fmode = FMODE_READABLE;</div><div class='add'>+    }</div><div class='add'>+    else if (!NIL_P(intmode = rb_check_to_integer(mode, "to_int"))) {</div><div class='add'>+	int flags = NUM2INT(intmode);</div><div class='add'>+	fmode = rb_io_oflags_fmode(flags);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	const char *m = StringValueCStr(mode), *n, *e;</div><div class='add'>+	fmode = rb_io_modestr_fmode(m);</div><div class='add'>+	n = strchr(m, ':');</div><div class='add'>+	if (n) {</div><div class='add'>+	    long len;</div><div class='add'>+	    char encname[ENCODING_MAXNAMELEN+1];</div><div class='add'>+	    has_enc = 1;</div><div class='add'>+	    if (fmode &amp; FMODE_SETENC_BY_BOM) {</div><div class='add'>+		n = strchr(n, '|');</div><div class='add'>+	    }</div><div class='add'>+	    e = strchr(++n, ':');</div><div class='add'>+	    len = e ? e - n : (long)strlen(n);</div><div class='add'>+	    if (len &gt; 0 &amp;&amp; len &lt;= ENCODING_MAXNAMELEN) {</div><div class='add'>+		rb_encoding *enc;</div><div class='add'>+		if (e) {</div><div class='add'>+		    memcpy(encname, n, len);</div><div class='add'>+		    encname[len] = '\0';</div><div class='add'>+		    n = encname;</div><div class='add'>+		}</div><div class='add'>+		enc = rb_enc_find(n);</div><div class='add'>+		if (e)</div><div class='add'>+		    convconfig_p-&gt;enc2 = enc;</div><div class='add'>+		else</div><div class='add'>+		    convconfig_p-&gt;enc = enc;</div><div class='add'>+	    }</div><div class='add'>+	    if (e &amp;&amp; (len = strlen(++e)) &gt; 0 &amp;&amp; len &lt;= ENCODING_MAXNAMELEN) {</div><div class='add'>+		convconfig_p-&gt;enc = rb_enc_find(e);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(opthash)) {</div><div class='add'>+	rb_encoding *extenc = 0, *intenc = 0;</div><div class='add'>+	VALUE v;</div><div class='add'>+	if (!has_vmode) {</div><div class='add'>+	    ID id_mode;</div><div class='add'>+	    CONST_ID(id_mode, "mode");</div><div class='add'>+	    v = rb_hash_aref(opthash, ID2SYM(id_mode));</div><div class='add'>+	    if (!NIL_P(v)) {</div><div class='add'>+		if (!NIL_P(mode)) {</div><div class='add'>+		    rb_raise(rb_eArgError, "mode specified twice");</div><div class='add'>+		}</div><div class='add'>+		has_vmode = 1;</div><div class='add'>+		mode = v;</div><div class='add'>+		goto vmode_handle;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (rb_io_extract_encoding_option(opthash, &amp;extenc, &amp;intenc, &amp;fmode)) {</div><div class='add'>+	    if (has_enc) {</div><div class='add'>+		rb_raise(rb_eArgError, "encoding specified twice");</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    *fmode_p = fmode;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> struct StringIO {</div><div class='ctx'>     VALUE string;</div><div class='ctx'>     rb_encoding *enc;</div><div class='hunk'>@@ -169,9 +257,20 @@ strio_s_allocate(VALUE klass)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq: StringIO.new(string=""[, mode])</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   StringIO.new(string = '', mode = 'r+') -&gt; new_stringio</div><div class='ctx'>  *</div><div class='del'>- * Creates new StringIO instance from with _string_ and _mode_.</div><div class='add'>+ * Note that +mode+ defaults to &lt;tt&gt;'r'&lt;/tt&gt; if +string+ is frozen.</div><div class='add'>+ *</div><div class='add'>+ * Returns a new \StringIO instance formed from +string+ and +mode+;</div><div class='add'>+ * see {Access Modes}[rdoc-ref:File@Access+Modes]:</div><div class='add'>+ *</div><div class='add'>+ *   strio = StringIO.new # =&gt; #&lt;StringIO&gt;</div><div class='add'>+ *   strio.close</div><div class='add'>+ *</div><div class='add'>+ * The instance should be closed when no longer needed.</div><div class='add'>+ *</div><div class='add'>+ * Related: StringIO.open (accepts block; closes automatically).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_initialize(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -185,45 +284,111 @@ strio_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     return strio_init(argc, argv, ptr, self);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-strio_init(int argc, VALUE *argv, struct StringIO *ptr, VALUE self)</div><div class='add'>+static int</div><div class='add'>+detect_bom(VALUE str, int *bomlen)</div><div class='ctx'> {</div><div class='del'>-    VALUE string, mode;</div><div class='del'>-    int trunc = 0;</div><div class='add'>+    const char *p;</div><div class='add'>+    long len;</div><div class='ctx'> </div><div class='del'>-    switch (rb_scan_args(argc, argv, "02", &amp;string, &amp;mode)) {</div><div class='del'>-      case 2:</div><div class='del'>-	if (FIXNUM_P(mode)) {</div><div class='del'>-	    int flags = FIX2INT(mode);</div><div class='del'>-	    ptr-&gt;flags = rb_io_oflags_fmode(flags);</div><div class='del'>-	    trunc = flags &amp; O_TRUNC;</div><div class='add'>+    RSTRING_GETMEM(str, p, len);</div><div class='add'>+    if (len &lt; 1) return 0;</div><div class='add'>+    switch ((unsigned char)p[0]) {</div><div class='add'>+      case 0xEF:</div><div class='add'>+	if (len &lt; 2) break;</div><div class='add'>+	if ((unsigned char)p[1] == 0xBB &amp;&amp; len &gt; 2) {</div><div class='add'>+	    if ((unsigned char)p[2] == 0xBF) {</div><div class='add'>+		*bomlen = 3;</div><div class='add'>+		return rb_utf8_encindex();</div><div class='add'>+	    }</div><div class='ctx'> 	}</div><div class='del'>-	else {</div><div class='del'>-	    const char *m = StringValueCStr(mode);</div><div class='del'>-	    ptr-&gt;flags = rb_io_modestr_fmode(m);</div><div class='del'>-	    trunc = *m == 'w';</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case 0xFE:</div><div class='add'>+	if (len &lt; 2) break;</div><div class='add'>+	if ((unsigned char)p[1] == 0xFF) {</div><div class='add'>+	    *bomlen = 2;</div><div class='add'>+	    return rb_enc_find_index("UTF-16BE");</div><div class='ctx'> 	}</div><div class='del'>-	StringValue(string);</div><div class='del'>-	if ((ptr-&gt;flags &amp; FMODE_WRITABLE) &amp;&amp; OBJ_FROZEN(string)) {</div><div class='del'>-	    rb_syserr_fail(EACCES, 0);</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case 0xFF:</div><div class='add'>+	if (len &lt; 2) break;</div><div class='add'>+	if ((unsigned char)p[1] == 0xFE) {</div><div class='add'>+	    if (len &gt;= 4 &amp;&amp; (unsigned char)p[2] == 0 &amp;&amp; (unsigned char)p[3] == 0) {</div><div class='add'>+		*bomlen = 4;</div><div class='add'>+		return rb_enc_find_index("UTF-32LE");</div><div class='add'>+	    }</div><div class='add'>+	    *bomlen = 2;</div><div class='add'>+	    return rb_enc_find_index("UTF-16LE");</div><div class='ctx'> 	}</div><div class='del'>-	if (trunc) {</div><div class='del'>-	    rb_str_resize(string, 0);</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case 0:</div><div class='add'>+	if (len &lt; 4) break;</div><div class='add'>+	if ((unsigned char)p[1] == 0 &amp;&amp; (unsigned char)p[2] == 0xFE &amp;&amp; (unsigned char)p[3] == 0xFF) {</div><div class='add'>+	    *bomlen = 4;</div><div class='add'>+	    return rb_enc_find_index("UTF-32BE");</div><div class='ctx'> 	}</div><div class='ctx'> 	break;</div><div class='del'>-      case 1:</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static rb_encoding *</div><div class='add'>+set_encoding_by_bom(struct StringIO *ptr)</div><div class='add'>+{</div><div class='add'>+    int bomlen, idx = detect_bom(ptr-&gt;string, &amp;bomlen);</div><div class='add'>+    rb_encoding *extenc = NULL;</div><div class='add'>+</div><div class='add'>+    if (idx) {</div><div class='add'>+	extenc = rb_enc_from_index(idx);</div><div class='add'>+	ptr-&gt;pos = bomlen;</div><div class='add'>+	if (ptr-&gt;flags &amp; FMODE_WRITABLE) {</div><div class='add'>+	    rb_enc_associate_index(ptr-&gt;string, idx);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    ptr-&gt;enc = extenc;</div><div class='add'>+    return extenc;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+strio_init(int argc, VALUE *argv, struct StringIO *ptr, VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE string, vmode, opt;</div><div class='add'>+    int oflags;</div><div class='add'>+    struct rb_io_enc_t convconfig;</div><div class='add'>+</div><div class='add'>+    argc = rb_scan_args(argc, argv, "02:", &amp;string, &amp;vmode, &amp;opt);</div><div class='add'>+    rb_io_extract_modeenc(&amp;vmode, 0, opt, &amp;oflags, &amp;ptr-&gt;flags, &amp;convconfig);</div><div class='add'>+    if (argc) {</div><div class='ctx'> 	StringValue(string);</div><div class='del'>-	ptr-&gt;flags = OBJ_FROZEN(string) ? FMODE_READABLE : FMODE_READWRITE;</div><div class='del'>-	break;</div><div class='del'>-      case 0:</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='ctx'> 	string = rb_enc_str_new("", 0, rb_default_external_encoding());</div><div class='del'>-	ptr-&gt;flags = FMODE_READWRITE;</div><div class='del'>-	break;</div><div class='add'>+    }</div><div class='add'>+    if (OBJ_FROZEN_RAW(string)) {</div><div class='add'>+	if (ptr-&gt;flags &amp; FMODE_WRITABLE) {</div><div class='add'>+	    rb_syserr_fail(EACCES, 0);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	if (NIL_P(vmode)) {</div><div class='add'>+	    ptr-&gt;flags |= FMODE_WRITABLE;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    if (ptr-&gt;flags &amp; FMODE_TRUNC) {</div><div class='add'>+	rb_str_resize(string, 0);</div><div class='ctx'>     }</div><div class='ctx'>     ptr-&gt;string = string;</div><div class='del'>-    ptr-&gt;enc = 0;</div><div class='add'>+    if (argc == 1) {</div><div class='add'>+	ptr-&gt;enc = rb_enc_get(string);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	ptr-&gt;enc = convconfig.enc;</div><div class='add'>+    }</div><div class='ctx'>     ptr-&gt;pos = 0;</div><div class='ctx'>     ptr-&gt;lineno = 0;</div><div class='add'>+    if (ptr-&gt;flags &amp; FMODE_SETENC_BY_BOM) set_encoding_by_bom(ptr);</div><div class='ctx'>     RBASIC(self)-&gt;flags |= (ptr-&gt;flags &amp; FMODE_READWRITE) * (STRIO_READABLE / FMODE_READABLE);</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -238,16 +403,31 @@ strio_finalize(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq: StringIO.open(string=""[, mode]) {|strio| ...}</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   StringIO.open(string = '', mode = 'r+') {|strio| ... }</div><div class='add'>+ *</div><div class='add'>+ * Note that +mode+ defaults to &lt;tt&gt;'r'&lt;/tt&gt; if +string+ is frozen.</div><div class='add'>+ *</div><div class='add'>+ * Creates a new \StringIO instance formed from +string+ and +mode+;</div><div class='add'>+ * see {Access Modes}[rdoc-ref:File@Access+Modes].</div><div class='add'>+ *</div><div class='add'>+ * With no block, returns the new instance:</div><div class='ctx'>  *</div><div class='del'>- * Equivalent to StringIO.new except that when it is called with a block, it</div><div class='del'>- * yields with the new instance and closes it, and returns the result which</div><div class='del'>- * returned from the block.</div><div class='add'>+ *   strio = StringIO.open # =&gt; #&lt;StringIO&gt;</div><div class='add'>+ *</div><div class='add'>+ * With a block, calls the block with the new instance</div><div class='add'>+ * and returns the block's value;</div><div class='add'>+ * closes the instance on block exit.</div><div class='add'>+ *</div><div class='add'>+ *   StringIO.open {|strio| p strio }</div><div class='add'>+ *   # =&gt; #&lt;StringIO&gt;</div><div class='add'>+ *</div><div class='add'>+ * Related: StringIO.new.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE obj = rb_class_new_instance(argc, argv, klass);</div><div class='add'>+    VALUE obj = rb_class_new_instance_kw(argc, argv, klass, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'>     if (!rb_block_given_p()) return obj;</div><div class='ctx'>     return rb_ensure(rb_yield, obj, strio_finalize, obj);</div><div class='ctx'> }</div><div class='hunk'>@@ -262,7 +442,7 @@ strio_s_new(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> 	rb_warn("%"PRIsVALUE"::new() does not take block; use %"PRIsVALUE"::open() instead",</div><div class='ctx'> 		cname, cname);</div><div class='ctx'>     }</div><div class='del'>-    return rb_class_new_instance(argc, argv, klass);</div><div class='add'>+    return rb_class_new_instance_kw(argc, argv, klass, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -286,7 +466,7 @@ strio_nil(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Returns *strio* itself.  Just for compatibility to IO.</div><div class='add'>+ * Returns an object itself.  Just for compatibility to IO.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_self(VALUE self)</div><div class='hunk'>@@ -328,9 +508,23 @@ strio_unimpl(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq: strio.string     -&gt; string</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   string -&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Returns underlying string:</div><div class='ctx'>  *</div><div class='del'>- * Returns underlying String object, the subject of IO.</div><div class='add'>+ *   StringIO.open('foo') do |strio|</div><div class='add'>+ *     p strio.string</div><div class='add'>+ *     strio.string = 'bar'</div><div class='add'>+ *     p strio.string</div><div class='add'>+ *   end</div><div class='add'>+ *</div><div class='add'>+ * Output:</div><div class='add'>+ *</div><div class='add'>+ *   "foo"</div><div class='add'>+ *   "bar"</div><div class='add'>+ *</div><div class='add'>+ * Related: StringIO#string= (assigns the underlying string).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_get_string(VALUE self)</div><div class='hunk'>@@ -340,9 +534,23 @@ strio_get_string(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.string = string  -&gt; string</div><div class='add'>+ *   string = other_string -&gt; other_string</div><div class='add'>+ *</div><div class='add'>+ * Assigns the underlying string as +other_string+, and sets position to zero;</div><div class='add'>+ * returns +other_string+:</div><div class='add'>+ *</div><div class='add'>+ *   StringIO.open('foo') do |strio|</div><div class='add'>+ *     p strio.string</div><div class='add'>+ *     strio.string = 'bar'</div><div class='add'>+ *     p strio.string</div><div class='add'>+ *   end</div><div class='add'>+ *</div><div class='add'>+ * Output:</div><div class='ctx'>  *</div><div class='del'>- * Changes underlying String object, the subject of IO.</div><div class='add'>+ *   "foo"</div><div class='add'>+ *   "bar"</div><div class='add'>+ *</div><div class='add'>+ * Related: StringIO#string (returns the underlying string).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_set_string(VALUE self, VALUE string)</div><div class='hunk'>@@ -360,10 +568,13 @@ strio_set_string(VALUE self, VALUE string)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.close  -&gt; nil</div><div class='add'>+ *   close -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ * Closes +self+ for both reading and writing.</div><div class='add'>+ *</div><div class='add'>+ * Raises IOError if reading or writing is attempted.</div><div class='ctx'>  *</div><div class='del'>- * Closes strio.  The *strio* is unavailable for any further data</div><div class='del'>- * operations; an +IOError+ is raised if such an attempt is made.</div><div class='add'>+ * Related: StringIO#close_read, StringIO#close_write.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_close(VALUE self)</div><div class='hunk'>@@ -375,10 +586,13 @@ strio_close(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.close_read    -&gt; nil</div><div class='add'>+ *   close_read -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ * Closes +self+ for reading; closed-write setting remains unchanged.</div><div class='add'>+ *</div><div class='add'>+ * Raises IOError if reading is attempted.</div><div class='ctx'>  *</div><div class='del'>- * Closes the read end of a StringIO.  Will raise an +IOError+ if the</div><div class='del'>- * *strio* is not readable.</div><div class='add'>+ * Related: StringIO#close, StringIO#close_write.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_close_read(VALUE self)</div><div class='hunk'>@@ -393,10 +607,13 @@ strio_close_read(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.close_write    -&gt; nil</div><div class='add'>+ *   close_write -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- * Closes the write end of a StringIO.  Will raise an  +IOError+ if the</div><div class='del'>- * *strio* is not writeable.</div><div class='add'>+ * Closes +self+ for writing; closed-read setting remains unchanged.</div><div class='add'>+ *</div><div class='add'>+ * Raises IOError if writing is attempted.</div><div class='add'>+ *</div><div class='add'>+ * Related: StringIO#close, StringIO#close_read.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_close_write(VALUE self)</div><div class='hunk'>@@ -411,9 +628,10 @@ strio_close_write(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.closed?    -&gt; true or false</div><div class='add'>+ *   closed? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns +true+ if *strio* is completely closed, +false+ otherwise.</div><div class='add'>+ * Returns +true+ if +self+ is closed for both reading and writing,</div><div class='add'>+ * +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_closed(VALUE self)</div><div class='hunk'>@@ -425,9 +643,9 @@ strio_closed(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.closed_read?    -&gt; true or false</div><div class='add'>+ *   closed_read? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns +true+ if *strio* is not readable, +false+ otherwise.</div><div class='add'>+ * Returns +true+ if +self+ is closed for reading, +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_closed_read(VALUE self)</div><div class='hunk'>@@ -439,9 +657,9 @@ strio_closed_read(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.closed_write?    -&gt; true or false</div><div class='add'>+ *   closed_write? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns +true+ if *strio* is not writable, +false+ otherwise.</div><div class='add'>+ * Returns +true+ if +self+ is closed for writing, +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_closed_write(VALUE self)</div><div class='hunk'>@@ -451,19 +669,29 @@ strio_closed_write(VALUE self)</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static struct StringIO *</div><div class='add'>+strio_to_read(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct StringIO *ptr = readable(self);</div><div class='add'>+    if (ptr-&gt;pos &lt; RSTRING_LEN(ptr-&gt;string)) return ptr;</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.eof     -&gt; true or false</div><div class='del'>- *   strio.eof?    -&gt; true or false</div><div class='add'>+ *   eof? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if positioned at end-of-stream, +false+ otherwise;</div><div class='add'>+ * see {Position}[rdoc-ref:File@Position].</div><div class='add'>+ *</div><div class='add'>+ * Raises IOError if the stream is not opened for reading.</div><div class='ctx'>  *</div><div class='del'>- * Returns true if *strio* is at end of file. The stringio must be</div><div class='del'>- * opened for reading or an +IOError+ will be raised.</div><div class='add'>+ * StreamIO#eof is an alias for StreamIO#eof?.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_eof(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    struct StringIO *ptr = readable(self);</div><div class='del'>-    if (ptr-&gt;pos &lt; RSTRING_LEN(ptr-&gt;string)) return Qfalse;</div><div class='add'>+    if (strio_to_read(self)) return Qfalse;</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -480,7 +708,6 @@ strio_copy(VALUE copy, VALUE orig)</div><div class='ctx'> 	strio_free(DATA_PTR(copy));</div><div class='ctx'>     }</div><div class='ctx'>     DATA_PTR(copy) = ptr;</div><div class='del'>-    OBJ_INFECT(copy, orig);</div><div class='ctx'>     RBASIC(copy)-&gt;flags &amp;= ~STRIO_READWRITE;</div><div class='ctx'>     RBASIC(copy)-&gt;flags |= RBASIC(orig)-&gt;flags &amp; STRIO_READWRITE;</div><div class='ctx'>     ++ptr-&gt;count;</div><div class='hunk'>@@ -489,13 +716,10 @@ strio_copy(VALUE copy, VALUE orig)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.lineno    -&gt; integer</div><div class='add'>+ *   lineno -&gt; current_line_number</div><div class='ctx'>  *</div><div class='del'>- * Returns the current line number in *strio*. The stringio must be</div><div class='del'>- * opened for reading. +lineno+ counts the number of times  +gets+ is</div><div class='del'>- * called, rather than the number of newlines  encountered. The two</div><div class='del'>- * values will differ if +gets+ is  called with a separator other than</div><div class='del'>- * newline.  See also the  &lt;code&gt;$.&lt;/code&gt; variable.</div><div class='add'>+ * Returns the current line number in +self+;</div><div class='add'>+ * see {Line Number}[rdoc-ref:IO@Line+Number].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_get_lineno(VALUE self)</div><div class='hunk'>@@ -505,10 +729,10 @@ strio_get_lineno(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.lineno = integer    -&gt; integer</div><div class='add'>+ *   lineno = new_line_number -&gt; new_line_number</div><div class='ctx'>  *</div><div class='del'>- * Manually sets the current line number to the given value.</div><div class='del'>- * &lt;code&gt;$.&lt;/code&gt; is updated only on the next read.</div><div class='add'>+ * Sets the current line number in +self+ to the given +new_line_number+;</div><div class='add'>+ * see {Line Number}[rdoc-ref:IO@Line+Number].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_set_lineno(VALUE self, VALUE lineno)</div><div class='hunk'>@@ -517,6 +741,14 @@ strio_set_lineno(VALUE self, VALUE lineno)</div><div class='ctx'>     return lineno;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   binmode -&gt; self</div><div class='add'>+ *</div><div class='add'>+ * Sets the data mode in +self+ to binary mode;</div><div class='add'>+ * see {Data Mode}[rdoc-ref:File@Data+Mode].</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_binmode(VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -538,11 +770,27 @@ strio_binmode(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.reopen(other_StrIO)     -&gt; strio</div><div class='del'>- *   strio.reopen(string, mode)    -&gt; strio</div><div class='add'>+ *   reopen(other, mode = 'r+') -&gt; self</div><div class='add'>+ *</div><div class='add'>+ * Reinitializes the stream with the given +other+ (string or StringIO) and +mode+;</div><div class='add'>+ * see IO.new:</div><div class='add'>+ *</div><div class='add'>+ *   StringIO.open('foo') do |strio|</div><div class='add'>+ *     p strio.string</div><div class='add'>+ *     strio.reopen('bar')</div><div class='add'>+ *     p strio.string</div><div class='add'>+ *     other_strio = StringIO.new('baz')</div><div class='add'>+ *     strio.reopen(other_strio)</div><div class='add'>+ *     p strio.string</div><div class='add'>+ *     other_strio.close</div><div class='add'>+ *   end</div><div class='add'>+ *</div><div class='add'>+ * Output:</div><div class='add'>+ *</div><div class='add'>+ *   "foo"</div><div class='add'>+ *   "bar"</div><div class='add'>+ *   "baz"</div><div class='ctx'>  *</div><div class='del'>- * Reinitializes *strio* with the given &lt;i&gt;other_StrIO&lt;/i&gt; or _string_</div><div class='del'>- * and _mode_ (see StringIO#new).</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_reopen(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -556,10 +804,12 @@ strio_reopen(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.pos     -&gt; integer</div><div class='del'>- *   strio.tell    -&gt; integer</div><div class='add'>+ *   pos -&gt; stream_position</div><div class='add'>+ *</div><div class='add'>+ * Returns the current position (in bytes);</div><div class='add'>+ * see {Position}[rdoc-ref:IO@Position].</div><div class='ctx'>  *</div><div class='del'>- * Returns the current offset (in bytes) of *strio*.</div><div class='add'>+ * StringIO#tell is an alias for StringIO#pos.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_get_pos(VALUE self)</div><div class='hunk'>@@ -569,9 +819,10 @@ strio_get_pos(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.pos = integer    -&gt; integer</div><div class='add'>+ *   pos = new_position -&gt; new_position</div><div class='ctx'>  *</div><div class='del'>- * Seeks to the given position (in bytes) in *strio*.</div><div class='add'>+ * Sets the current position (in bytes);</div><div class='add'>+ * see {Position}[rdoc-ref:IO@Position].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_set_pos(VALUE self, VALUE pos)</div><div class='hunk'>@@ -587,10 +838,11 @@ strio_set_pos(VALUE self, VALUE pos)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.rewind    -&gt; 0</div><div class='add'>+ *   rewind -&gt; 0</div><div class='ctx'>  *</div><div class='del'>- * Positions *strio* to the beginning of input, resetting</div><div class='del'>- * +lineno+ to zero.</div><div class='add'>+ * Sets the current position and line number to zero;</div><div class='add'>+ * see {Position}[rdoc-ref:IO@Position]</div><div class='add'>+ * and {Line Number}[rdoc-ref:IO@Line+Number].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_rewind(VALUE self)</div><div class='hunk'>@@ -603,10 +855,11 @@ strio_rewind(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.seek(amount, whence=SEEK_SET) -&gt; 0</div><div class='add'>+ *   seek(offset, whence = SEEK_SET) -&gt; 0</div><div class='ctx'>  *</div><div class='del'>- * Seeks to a given offset _amount_ in the stream according to</div><div class='del'>- * the value of _whence_ (see IO#seek).</div><div class='add'>+ * Sets the current position to the given integer +offset+ (in bytes),</div><div class='add'>+ * with respect to a given constant +whence+;</div><div class='add'>+ * see {Position}[rdoc-ref:IO@Position].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_seek(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -642,9 +895,9 @@ strio_seek(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.sync    -&gt; true</div><div class='add'>+ *   sync -&gt; true</div><div class='ctx'>  *</div><div class='del'>- * Returns +true+ always.</div><div class='add'>+ * Returns +true+; implemented only for compatibility with other stream classes.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_get_sync(VALUE self)</div><div class='hunk'>@@ -659,19 +912,21 @@ strio_get_sync(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.each_byte {|byte| block }  -&gt; strio</div><div class='del'>- *   strio.each_byte                  -&gt; anEnumerator</div><div class='add'>+ *   each_byte {|byte| ... } -&gt; self</div><div class='ctx'>  *</div><div class='del'>- * See IO#each_byte.</div><div class='add'>+ * With a block given, calls the block with each remaining byte in the stream;</div><div class='add'>+ * see {Byte IO}[rdoc-ref:IO@Byte+IO].</div><div class='add'>+ *</div><div class='add'>+ * With no block given, returns an enumerator.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_each_byte(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    struct StringIO *ptr = readable(self);</div><div class='add'>+    struct StringIO *ptr;</div><div class='ctx'> </div><div class='ctx'>     RETURN_ENUMERATOR(self, 0, 0);</div><div class='ctx'> </div><div class='del'>-    while (ptr-&gt;pos &lt; RSTRING_LEN(ptr-&gt;string)) {</div><div class='add'>+    while ((ptr = strio_to_read(self)) != NULL) {</div><div class='ctx'> 	char c = RSTRING_PTR(ptr-&gt;string)[ptr-&gt;pos++];</div><div class='ctx'> 	rb_yield(CHR2FIX(c));</div><div class='ctx'>     }</div><div class='hunk'>@@ -679,22 +934,11 @@ strio_each_byte(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  This is a deprecated alias for #each_byte.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-strio_bytes(VALUE self)</div><div class='del'>-{</div><div class='del'>-    rb_warn("StringIO#bytes is deprecated; use #each_byte instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(self, ID2SYM(rb_intern("each_byte")), 0, 0);</div><div class='del'>-    return strio_each_byte(self);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.getc   -&gt; string or nil</div><div class='add'>+ *   getc -&gt; character or nil</div><div class='ctx'>  *</div><div class='del'>- * See IO#getc.</div><div class='add'>+ * Reads and returns the next character from the stream;</div><div class='add'>+ * see {Character IO}[rdoc-ref:IO@Character+IO].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_getc(VALUE self)</div><div class='hunk'>@@ -717,9 +961,10 @@ strio_getc(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.getbyte   -&gt; fixnum or nil</div><div class='add'>+ *   getbyte -&gt; byte or nil</div><div class='ctx'>  *</div><div class='del'>- * See IO#getbyte.</div><div class='add'>+ * Reads and returns the next 8-bit byte from the stream;</div><div class='add'>+ * see {Byte IO}[rdoc-ref:IO@Byte+IO].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_getbyte(VALUE self)</div><div class='hunk'>@@ -755,12 +1000,10 @@ strio_extend(struct StringIO *ptr, long pos, long len)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.ungetc(string)   -&gt; nil</div><div class='add'>+ *   ungetc(character) -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- * Pushes back one character (passed as a parameter) onto *strio*</div><div class='del'>- * such that a subsequent buffered read will return it.  There is no</div><div class='del'>- * limitation for multiple pushbacks including pushing back behind the</div><div class='del'>- * beginning of the buffer string.</div><div class='add'>+ * Pushes back ("unshifts") a character or integer onto the stream;</div><div class='add'>+ * see {Character IO}[rdoc-ref:IO@Character+IO].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_ungetc(VALUE self, VALUE c)</div><div class='hunk'>@@ -795,32 +1038,34 @@ strio_ungetc(VALUE self, VALUE c)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.ungetbyte(fixnum)   -&gt; nil</div><div class='add'>+ *   ungetbyte(byte) -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- * See IO#ungetbyte</div><div class='add'>+ * Pushes back ("unshifts") an 8-bit byte onto the stream;</div><div class='add'>+ * see {Byte IO}[rdoc-ref:IO@Byte+IO].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_ungetbyte(VALUE self, VALUE c)</div><div class='ctx'> {</div><div class='ctx'>     struct StringIO *ptr = readable(self);</div><div class='del'>-    char buf[1], *cp = buf;</div><div class='del'>-    long cl = 1;</div><div class='ctx'> </div><div class='ctx'>     check_modifiable(ptr);</div><div class='ctx'>     if (NIL_P(c)) return Qnil;</div><div class='del'>-    if (FIXNUM_P(c)) {</div><div class='del'>-	buf[0] = (char)FIX2INT(c);</div><div class='del'>-	return strio_unget_bytes(ptr, buf, 1);</div><div class='add'>+    if (RB_INTEGER_TYPE_P(c)) {</div><div class='add'>+        /* rb_int_and() not visible from exts */</div><div class='add'>+        VALUE v = rb_funcall(c, '&amp;', 1, INT2FIX(0xff));</div><div class='add'>+        const char cc = NUM2INT(v) &amp; 0xFF;</div><div class='add'>+        strio_unget_bytes(ptr, &amp;cc, 1);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='add'>+	long cl;</div><div class='ctx'> 	SafeStringValue(c);</div><div class='del'>-	cp = RSTRING_PTR(c);</div><div class='ctx'> 	cl = RSTRING_LEN(c);</div><div class='del'>-	if (cl == 0) return Qnil;</div><div class='del'>-	strio_unget_bytes(ptr, cp, cl);</div><div class='del'>-	RB_GC_GUARD(c);</div><div class='del'>-	return Qnil;</div><div class='add'>+	if (cl &gt; 0) {</div><div class='add'>+	    strio_unget_bytes(ptr, RSTRING_PTR(c), cl);</div><div class='add'>+	    RB_GC_GUARD(c);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -833,7 +1078,7 @@ strio_unget_bytes(struct StringIO *ptr, const char *cp, long cl)</div><div class='ctx'>     len = RSTRING_LEN(str);</div><div class='ctx'>     rest = pos - len;</div><div class='ctx'>     if (cl &gt; pos) {</div><div class='del'>-	long ex = (rest &lt; 0 ? cl-pos : cl+rest);</div><div class='add'>+	long ex = cl - (rest &lt; 0 ? pos : len);</div><div class='ctx'> 	rb_str_modify_expand(str, ex);</div><div class='ctx'> 	rb_str_set_len(str, len + ex);</div><div class='ctx'> 	s = RSTRING_PTR(str);</div><div class='hunk'>@@ -856,38 +1101,42 @@ strio_unget_bytes(struct StringIO *ptr, const char *cp, long cl)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.readchar   -&gt; string</div><div class='add'>+ *   readchar -&gt; string</div><div class='ctx'>  *</div><div class='del'>- * See IO#readchar.</div><div class='add'>+ * Like +getc+, but raises an exception if already at end-of-stream;</div><div class='add'>+ * see {Character IO}[rdoc-ref:IO@Character+IO].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_readchar(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    VALUE c = rb_funcall2(self, rb_intern("getc"), 0, 0);</div><div class='add'>+    VALUE c = rb_funcallv(self, rb_intern("getc"), 0, 0);</div><div class='ctx'>     if (NIL_P(c)) rb_eof_error();</div><div class='ctx'>     return c;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.readbyte   -&gt; fixnum</div><div class='add'>+ *   readbyte -&gt; byte</div><div class='ctx'>  *</div><div class='del'>- * See IO#readbyte.</div><div class='add'>+ * Like +getbyte+, but raises an exception if already at end-of-stream;</div><div class='add'>+ * see {Byte IO}[rdoc-ref:IO@Byte+IO].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_readbyte(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    VALUE c = rb_funcall2(self, rb_intern("getbyte"), 0, 0);</div><div class='add'>+    VALUE c = rb_funcallv(self, rb_intern("getbyte"), 0, 0);</div><div class='ctx'>     if (NIL_P(c)) rb_eof_error();</div><div class='ctx'>     return c;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.each_char {|char| block }  -&gt; strio</div><div class='del'>- *   strio.each_char                  -&gt; anEnumerator</div><div class='add'>+ *   each_char {|c| ... } -&gt; self</div><div class='add'>+ *</div><div class='add'>+ * With a block given, calls the block with each remaining character in the stream;</div><div class='add'>+ * see {Character IO}[rdoc-ref:IO@Character+IO].</div><div class='ctx'>  *</div><div class='del'>- * See IO#each_char.</div><div class='add'>+ * With no block given, returns an enumerator.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_each_char(VALUE self)</div><div class='hunk'>@@ -903,23 +1152,13 @@ strio_each_char(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_char&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-strio_chars(VALUE self)</div><div class='del'>-{</div><div class='del'>-    rb_warn("StringIO#chars is deprecated; use #each_char instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(self, ID2SYM(rb_intern("each_char")), 0, 0);</div><div class='del'>-    return strio_each_char(self);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.each_codepoint {|c| block }  -&gt; strio</div><div class='del'>- *   strio.each_codepoint               -&gt; anEnumerator</div><div class='add'>+ *   each_codepoint {|codepoint| ... } -&gt; self</div><div class='add'>+ *</div><div class='add'>+ * With a block given, calls the block with each remaining codepoint in the stream;</div><div class='add'>+ * see {Codepoint IO}[rdoc-ref:IO@Codepoint+IO].</div><div class='ctx'>  *</div><div class='del'>- * See IO#each_codepoint.</div><div class='add'>+ * With no block given, returns an enumerator.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_each_codepoint(VALUE self)</div><div class='hunk'>@@ -933,31 +1172,15 @@ strio_each_codepoint(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     ptr = readable(self);</div><div class='ctx'>     enc = get_enc(ptr);</div><div class='del'>-    for (;;) {</div><div class='del'>-	if (ptr-&gt;pos &gt;= RSTRING_LEN(ptr-&gt;string)) {</div><div class='del'>-	    return self;</div><div class='del'>-	}</div><div class='del'>-</div><div class='add'>+    while ((ptr = strio_to_read(self)) != NULL) {</div><div class='ctx'> 	c = rb_enc_codepoint_len(RSTRING_PTR(ptr-&gt;string)+ptr-&gt;pos,</div><div class='ctx'> 				 RSTRING_END(ptr-&gt;string), &amp;n, enc);</div><div class='del'>-	rb_yield(UINT2NUM(c));</div><div class='ctx'> 	ptr-&gt;pos += n;</div><div class='add'>+	rb_yield(UINT2NUM(c));</div><div class='ctx'>     }</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_codepoint&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-strio_codepoints(VALUE self)</div><div class='del'>-{</div><div class='del'>-    rb_warn("StringIO#codepoints is deprecated; use #each_codepoint instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(self, ID2SYM(rb_intern("each_codepoint")), 0, 0);</div><div class='del'>-    return strio_each_codepoint(self);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /* Boyer-Moore search: copied from regex.c */</div><div class='ctx'> static void</div><div class='ctx'> bm_init_skip(long *skip, const char *pat, long m)</div><div class='hunk'>@@ -1002,8 +1225,10 @@ prepare_getline_args(struct getline_arg *arg, int argc, VALUE *argv)</div><div class='ctx'> {</div><div class='ctx'>     VALUE str, lim, opts;</div><div class='ctx'>     long limit = -1;</div><div class='add'>+    int respect_chomp;</div><div class='ctx'> </div><div class='ctx'>     argc = rb_scan_args(argc, argv, "02:", &amp;str, &amp;lim, &amp;opts);</div><div class='add'>+    respect_chomp = argc == 0 || !NIL_P(str);</div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 0:</div><div class='ctx'> 	str = rb_rs;</div><div class='hunk'>@@ -1037,7 +1262,9 @@ prepare_getline_args(struct getline_arg *arg, int argc, VALUE *argv)</div><div class='ctx'> 	    keywords[0] = rb_intern_const("chomp");</div><div class='ctx'> 	}</div><div class='ctx'> 	rb_get_kwargs(opts, keywords, 0, 1, &amp;vchomp);</div><div class='del'>-	arg-&gt;chomp = (vchomp != Qundef) &amp;&amp; RTEST(vchomp);</div><div class='add'>+        if (respect_chomp) {</div><div class='add'>+	    arg-&gt;chomp = (vchomp != Qundef) &amp;&amp; RTEST(vchomp);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return arg;</div><div class='ctx'> }</div><div class='hunk'>@@ -1058,7 +1285,7 @@ strio_getline(struct getline_arg *arg, struct StringIO *ptr)</div><div class='ctx'>     const char *s, *e, *p;</div><div class='ctx'>     long n, limit = arg-&gt;limit;</div><div class='ctx'>     VALUE str = arg-&gt;rs;</div><div class='del'>-    int w = 0;</div><div class='add'>+    long w = 0;</div><div class='ctx'>     rb_encoding *enc = get_enc(ptr);</div><div class='ctx'> </div><div class='ctx'>     if (ptr-&gt;pos &gt;= (n = RSTRING_LEN(ptr-&gt;string))) {</div><div class='hunk'>@@ -1077,6 +1304,7 @@ strio_getline(struct getline_arg *arg, struct StringIO *ptr)</div><div class='ctx'> 	str = strio_substr(ptr, ptr-&gt;pos, e - s - w, enc);</div><div class='ctx'>     }</div><div class='ctx'>     else if ((n = RSTRING_LEN(str)) == 0) {</div><div class='add'>+        const char *paragraph_end = NULL;</div><div class='ctx'> 	p = s;</div><div class='ctx'> 	while (p[(p + 1 &lt; e) &amp;&amp; (*p == '\r') &amp;&amp; 0] == '\n') {</div><div class='ctx'> 	    p += *p == '\r';</div><div class='hunk'>@@ -1086,19 +1314,21 @@ strio_getline(struct getline_arg *arg, struct StringIO *ptr)</div><div class='ctx'> 	}</div><div class='ctx'> 	s = p;</div><div class='ctx'> 	while ((p = memchr(p, '\n', e - p)) &amp;&amp; (p != e)) {</div><div class='del'>-	    if (*++p == '\n') {</div><div class='del'>-		e = p + 1;</div><div class='del'>-		w = (arg-&gt;chomp ? 1 : 0);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    else if (*p == '\r' &amp;&amp; p &lt; e &amp;&amp; p[1] == '\n') {</div><div class='del'>-		e = p + 2;</div><div class='del'>-		w = (arg-&gt;chomp ? 2 : 0);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='add'>+            p++;</div><div class='add'>+            if (!((p &lt; e &amp;&amp; *p == '\n') ||</div><div class='add'>+                  (p + 1 &lt; e &amp;&amp; *p == '\r' &amp;&amp; *(p+1) == '\n'))) {</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            paragraph_end = p - ((*(p-2) == '\r') ? 2 : 1);</div><div class='add'>+            while ((p &lt; e &amp;&amp; *p == '\n') ||</div><div class='add'>+                   (p + 1 &lt; e &amp;&amp; *p == '\r' &amp;&amp; *(p+1) == '\n')) {</div><div class='add'>+                p += (*p == '\r') ? 2 : 1;</div><div class='add'>+            }</div><div class='add'>+            e = p;</div><div class='add'>+            break;</div><div class='ctx'> 	}</div><div class='del'>-	if (!w &amp;&amp; arg-&gt;chomp) {</div><div class='del'>-	    w = chomp_newline_width(s, e);</div><div class='add'>+	if (arg-&gt;chomp &amp;&amp; paragraph_end) {</div><div class='add'>+	    w = e - paragraph_end;</div><div class='ctx'> 	}</div><div class='ctx'> 	str = strio_substr(ptr, s - RSTRING_PTR(ptr-&gt;string), e - s - w, enc);</div><div class='ctx'>     }</div><div class='hunk'>@@ -1110,11 +1340,13 @@ strio_getline(struct getline_arg *arg, struct StringIO *ptr)</div><div class='ctx'> 	str = strio_substr(ptr, ptr-&gt;pos, e - s - w, enc);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (n &lt; e - s) {</div><div class='del'>-	    if (e - s &lt; 1024) {</div><div class='add'>+	if (n &lt; e - s + arg-&gt;chomp) {</div><div class='add'>+	    /* unless chomping, RS at the end does not matter */</div><div class='add'>+	    if (e - s &lt; 1024 || n == e - s) {</div><div class='ctx'> 		for (p = s; p + n &lt;= e; ++p) {</div><div class='ctx'> 		    if (MEMCMP(p, RSTRING_PTR(str), char, n) == 0) {</div><div class='del'>-			e = p + (arg-&gt;chomp ? 0 : n);</div><div class='add'>+			e = p + n;</div><div class='add'>+			w = (arg-&gt;chomp ? n : 0);</div><div class='ctx'> 			break;</div><div class='ctx'> 		    }</div><div class='ctx'> 		}</div><div class='hunk'>@@ -1137,11 +1369,13 @@ strio_getline(struct getline_arg *arg, struct StringIO *ptr)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.gets(sep=$/)     -&gt; string or nil</div><div class='del'>- *   strio.gets(limit)      -&gt; string or nil</div><div class='del'>- *   strio.gets(sep, limit) -&gt; string or nil</div><div class='add'>+ *   gets(sep = $/, chomp: false) -&gt; string or nil</div><div class='add'>+ *   gets(limit, chomp: false) -&gt; string or nil</div><div class='add'>+ *   gets(sep, limit, chomp: false) -&gt; string or nil</div><div class='ctx'>  *</div><div class='del'>- * See IO#gets.</div><div class='add'>+ * Reads and returns a line from the stream;</div><div class='add'>+ * assigns the return value to &lt;tt&gt;$_&lt;/tt&gt;;</div><div class='add'>+ * see {Line IO}[rdoc-ref:IO@Line+IO].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_gets(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -1161,33 +1395,33 @@ strio_gets(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.readline(sep=$/)     -&gt; string</div><div class='del'>- *   strio.readline(limit)      -&gt; string or nil</div><div class='del'>- *   strio.readline(sep, limit) -&gt; string or nil</div><div class='add'>+ *   readline(sep = $/, chomp: false) -&gt; string</div><div class='add'>+ *   readline(limit, chomp: false) -&gt; string</div><div class='add'>+ *   readline(sep, limit, chomp: false) -&gt; string</div><div class='ctx'>  *</div><div class='del'>- * See IO#readline.</div><div class='add'>+ * Reads a line as with IO#gets, but raises EOFError if already at end-of-file;</div><div class='add'>+ * see {Line IO}[rdoc-ref:IO@Line+IO].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_readline(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    VALUE line = rb_funcall2(self, rb_intern("gets"), argc, argv);</div><div class='add'>+    VALUE line = rb_funcallv_kw(self, rb_intern("gets"), argc, argv, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'>     if (NIL_P(line)) rb_eof_error();</div><div class='ctx'>     return line;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.each(sep=$/) {|line| block }         -&gt; strio</div><div class='del'>- *   strio.each(limit) {|line| block }          -&gt; strio</div><div class='del'>- *   strio.each(sep, limit) {|line| block }     -&gt; strio</div><div class='del'>- *   strio.each(...)                            -&gt; anEnumerator</div><div class='add'>+ *   each_line(sep = $/, chomp: false) {|line| ... }   -&gt; self</div><div class='add'>+ *   each_line(limit, chomp: false) {|line| ... }      -&gt; self</div><div class='add'>+ *   each_line(sep, limit, chomp: false) {|line| ... } -&gt; self</div><div class='ctx'>  *</div><div class='del'>- *   strio.each_line(sep=$/) {|line| block }    -&gt; strio</div><div class='del'>- *   strio.each_line(limit) {|line| block }     -&gt; strio</div><div class='del'>- *   strio.each_line(sep,limit) {|line| block } -&gt; strio</div><div class='del'>- *   strio.each_line(...)                       -&gt; anEnumerator</div><div class='add'>+ * Calls the block with each remaining line read from the stream;</div><div class='add'>+ * does nothing if already at end-of-file;</div><div class='add'>+ * returns +self+.</div><div class='add'>+ * See {Line IO}[rdoc-ref:IO@Line+IO].</div><div class='ctx'>  *</div><div class='del'>- * See IO#each.</div><div class='add'>+ * StringIO#each is an alias for StringIO#each_line.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_each(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -1209,22 +1443,10 @@ strio_each(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_line&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-strio_lines(int argc, VALUE *argv, VALUE self)</div><div class='del'>-{</div><div class='del'>-    rb_warn("StringIO#lines is deprecated; use #each_line instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(self, ID2SYM(rb_intern("each_line")), argc, argv);</div><div class='del'>-    return strio_each(argc, argv, self);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   strio.readlines(sep=$/)    -&gt;   array</div><div class='del'>- *   strio.readlines(limit)     -&gt;   array</div><div class='del'>- *   strio.readlines(sep,limit) -&gt;   array</div><div class='add'>+ *   strio.readlines(sep=$/, chomp: false)     -&gt;   array</div><div class='add'>+ *   strio.readlines(limit, chomp: false)      -&gt;   array</div><div class='add'>+ *   strio.readlines(sep, limit, chomp: false) -&gt;   array</div><div class='ctx'>  *</div><div class='ctx'>  * See IO#readlines.</div><div class='ctx'>  */</div><div class='hunk'>@@ -1251,7 +1473,7 @@ strio_readlines(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *   strio.write(string, ...) -&gt; integer</div><div class='ctx'>  *   strio.syswrite(string)   -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- * Appends the given string to the underlying buffer string of *strio*.</div><div class='add'>+ * Appends the given string to the underlying buffer string.</div><div class='ctx'>  * The stream must be opened for writing.  If the argument is not a</div><div class='ctx'>  * string, it will be converted to a string using &lt;code&gt;to_s&lt;/code&gt;.</div><div class='ctx'>  * Returns the number of bytes written.  See IO#write.</div><div class='hunk'>@@ -1274,13 +1496,18 @@ strio_write(VALUE self, VALUE str)</div><div class='ctx'>     long len, olen;</div><div class='ctx'>     rb_encoding *enc, *enc2;</div><div class='ctx'>     rb_encoding *const ascii8bit = rb_ascii8bit_encoding();</div><div class='add'>+    rb_encoding *usascii = 0;</div><div class='ctx'> </div><div class='ctx'>     if (!RB_TYPE_P(str, T_STRING))</div><div class='ctx'> 	str = rb_obj_as_string(str);</div><div class='ctx'>     enc = get_enc(ptr);</div><div class='ctx'>     enc2 = rb_enc_get(str);</div><div class='del'>-    if (enc != enc2 &amp;&amp; enc != ascii8bit) {</div><div class='del'>-	str = rb_str_conv_enc(str, enc2, enc);</div><div class='add'>+    if (enc != enc2 &amp;&amp; enc != ascii8bit &amp;&amp; enc != (usascii = rb_usascii_encoding())) {</div><div class='add'>+	VALUE converted = rb_str_conv_enc(str, enc2, enc);</div><div class='add'>+	if (converted == str &amp;&amp; enc2 != ascii8bit &amp;&amp; enc2 != usascii) { /* conversion failed */</div><div class='add'>+	    rb_enc_check(rb_enc_from_encoding(enc), str);</div><div class='add'>+	}</div><div class='add'>+	str = converted;</div><div class='ctx'>     }</div><div class='ctx'>     len = RSTRING_LEN(str);</div><div class='ctx'>     if (len == 0) return 0;</div><div class='hunk'>@@ -1292,7 +1519,6 @@ strio_write(VALUE self, VALUE str)</div><div class='ctx'>     if (ptr-&gt;pos == olen) {</div><div class='ctx'> 	if (enc == ascii8bit || enc2 == ascii8bit) {</div><div class='ctx'> 	    rb_enc_str_buf_cat(ptr-&gt;string, RSTRING_PTR(str), len, enc);</div><div class='del'>-	    OBJ_INFECT(ptr-&gt;string, str);</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='ctx'> 	    rb_str_buf_append(ptr-&gt;string, str);</div><div class='hunk'>@@ -1301,9 +1527,7 @@ strio_write(VALUE self, VALUE str)</div><div class='ctx'>     else {</div><div class='ctx'> 	strio_extend(ptr, ptr-&gt;pos, len);</div><div class='ctx'> 	memmove(RSTRING_PTR(ptr-&gt;string)+ptr-&gt;pos, RSTRING_PTR(str), len);</div><div class='del'>-	OBJ_INFECT(ptr-&gt;string, str);</div><div class='ctx'>     }</div><div class='del'>-    OBJ_INFECT(ptr-&gt;string, self);</div><div class='ctx'>     RB_GC_GUARD(str);</div><div class='ctx'>     ptr-&gt;pos += len;</div><div class='ctx'>     return len;</div><div class='hunk'>@@ -1380,7 +1604,6 @@ strio_read(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     long len;</div><div class='ctx'>     int binary = 0;</div><div class='ctx'> </div><div class='del'>-    rb_check_arity(argc, 0, 2);</div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 2:</div><div class='ctx'> 	str = argv[1];</div><div class='hunk'>@@ -1406,7 +1629,7 @@ strio_read(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>       case 0:</div><div class='ctx'> 	len = RSTRING_LEN(ptr-&gt;string);</div><div class='ctx'> 	if (len &lt;= ptr-&gt;pos) {</div><div class='del'>-	    rb_encoding *enc = binary ? rb_ascii8bit_encoding() : get_enc(ptr);</div><div class='add'>+	    rb_encoding *enc = get_enc(ptr);</div><div class='ctx'> 	    if (NIL_P(str)) {</div><div class='ctx'> 		str = rb_str_new(0, 0);</div><div class='ctx'> 	    }</div><div class='hunk'>@@ -1420,6 +1643,8 @@ strio_read(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	    len -= ptr-&gt;pos;</div><div class='ctx'> 	}</div><div class='ctx'> 	break;</div><div class='add'>+      default:</div><div class='add'>+        rb_error_arity(argc, 0, 2);</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(str)) {</div><div class='ctx'> 	rb_encoding *enc = binary ? rb_ascii8bit_encoding() : get_enc(ptr);</div><div class='hunk'>@@ -1450,7 +1675,7 @@ strio_read(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> strio_sysread(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    VALUE val = rb_funcall2(self, rb_intern("read"), argc, argv);</div><div class='add'>+    VALUE val = rb_funcallv_kw(self, rb_intern("read"), argc, argv, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'>     if (NIL_P(val)) {</div><div class='ctx'> 	rb_eof_error();</div><div class='ctx'>     }</div><div class='hunk'>@@ -1525,7 +1750,7 @@ strio_size(VALUE self)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   strio.truncate(integer)    -&gt; 0</div><div class='ctx'>  *</div><div class='del'>- * Truncates the buffer string to at most _integer_ bytes. The *strio*</div><div class='add'>+ * Truncates the buffer string to at most _integer_ bytes. The stream</div><div class='ctx'>  * must be opened for writing.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1541,7 +1766,7 @@ strio_truncate(VALUE self, VALUE len)</div><div class='ctx'>     if (plen &lt; l) {</div><div class='ctx'> 	MEMZERO(RSTRING_PTR(string) + plen, char, l - plen);</div><div class='ctx'>     }</div><div class='del'>-    return len;</div><div class='add'>+    return INT2FIX(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1549,7 +1774,8 @@ strio_truncate(VALUE self, VALUE len)</div><div class='ctx'>  *     strio.external_encoding   =&gt; encoding</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the Encoding object that represents the encoding of the file.</div><div class='del'>- *  If strio is write mode and no encoding is specified, returns &lt;code&gt;nil&lt;/code&gt;.</div><div class='add'>+ *  If the stream is write mode and no encoding is specified, returns</div><div class='add'>+ *  +nil+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1564,7 +1790,7 @@ strio_external_encoding(VALUE self)</div><div class='ctx'>  *     strio.internal_encoding   =&gt; encoding</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the Encoding of the internal string if conversion is</div><div class='del'>- *  specified.  Otherwise returns nil.</div><div class='add'>+ *  specified.  Otherwise returns +nil+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1596,7 +1822,14 @@ strio_set_encoding(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> 	enc = rb_default_external_encoding();</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	enc = rb_to_encoding(ext_enc);</div><div class='add'>+	enc = rb_find_encoding(ext_enc);</div><div class='add'>+	if (!enc) {</div><div class='add'>+	    struct rb_io_enc_t convconfig;</div><div class='add'>+	    int oflags, fmode;</div><div class='add'>+	    VALUE vmode = rb_str_append(rb_str_new_cstr("r:"), ext_enc);</div><div class='add'>+	    rb_io_extract_modeenc(&amp;vmode, 0, Qnil, &amp;oflags, &amp;fmode, &amp;convconfig);</div><div class='add'>+	    enc = convconfig.enc2;</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='ctx'>     ptr-&gt;enc = enc;</div><div class='ctx'>     if (WRITABLE(self)) {</div><div class='hunk'>@@ -1606,24 +1839,39 @@ strio_set_encoding(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+strio_set_encoding_by_bom(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct StringIO *ptr = StringIO(self);</div><div class='add'>+</div><div class='add'>+    if (!set_encoding_by_bom(ptr)) return Qnil;</div><div class='add'>+    return rb_enc_from_encoding(ptr-&gt;enc);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='del'>- * Pseudo I/O on String object.</div><div class='add'>+ * \IO streams for strings, with access similar to</div><div class='add'>+ * {IO}[rdoc-ref:IO];</div><div class='add'>+ * see {IO}[rdoc-ref:IO].</div><div class='ctx'>  *</div><div class='del'>- * Commonly used to simulate `$stdio` or `$stderr`</div><div class='add'>+ * === About the Examples</div><div class='ctx'>  *</div><div class='del'>- * === Examples</div><div class='add'>+ * Examples on this page assume that \StringIO has been required:</div><div class='ctx'>  *</div><div class='ctx'>  *   require 'stringio'</div><div class='ctx'>  *</div><div class='del'>- *   io = StringIO.new</div><div class='del'>- *   io.puts "Hello World"</div><div class='del'>- *   io.string #=&gt; "Hello World\n"</div><div class='ctx'>  */</div><div class='ctx'> void</div><div class='ctx'> Init_stringio(void)</div><div class='ctx'> {</div><div class='ctx'> #undef rb_intern</div><div class='del'>-    VALUE StringIO = rb_define_class("StringIO", rb_cData);</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+  rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    VALUE StringIO = rb_define_class("StringIO", rb_cObject);</div><div class='add'>+</div><div class='add'>+    rb_define_const(StringIO, "VERSION", rb_str_new_cstr(STRINGIO_VERSION));</div><div class='ctx'> </div><div class='ctx'>     rb_include_module(StringIO, rb_mEnumerable);</div><div class='ctx'>     rb_define_alloc_func(StringIO, strio_s_allocate);</div><div class='hunk'>@@ -1666,13 +1914,9 @@ Init_stringio(void)</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(StringIO, "each", strio_each, -1);</div><div class='ctx'>     rb_define_method(StringIO, "each_line", strio_each, -1);</div><div class='del'>-    rb_define_method(StringIO, "lines", strio_lines, -1);</div><div class='ctx'>     rb_define_method(StringIO, "each_byte", strio_each_byte, 0);</div><div class='del'>-    rb_define_method(StringIO, "bytes", strio_bytes, 0);</div><div class='ctx'>     rb_define_method(StringIO, "each_char", strio_each_char, 0);</div><div class='del'>-    rb_define_method(StringIO, "chars", strio_chars, 0);</div><div class='ctx'>     rb_define_method(StringIO, "each_codepoint", strio_each_codepoint, 0);</div><div class='del'>-    rb_define_method(StringIO, "codepoints", strio_codepoints, 0);</div><div class='ctx'>     rb_define_method(StringIO, "getc", strio_getc, 0);</div><div class='ctx'>     rb_define_method(StringIO, "ungetc", strio_ungetc, 1);</div><div class='ctx'>     rb_define_method(StringIO, "ungetbyte", strio_ungetbyte, 1);</div><div class='hunk'>@@ -1705,6 +1949,7 @@ Init_stringio(void)</div><div class='ctx'>     rb_define_method(StringIO, "external_encoding", strio_external_encoding, 0);</div><div class='ctx'>     rb_define_method(StringIO, "internal_encoding", strio_internal_encoding, 0);</div><div class='ctx'>     rb_define_method(StringIO, "set_encoding", strio_set_encoding, -1);</div><div class='add'>+    rb_define_method(StringIO, "set_encoding_by_bom", strio_set_encoding_by_bom, 0);</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='ctx'> 	VALUE mReadable = rb_define_module_under(rb_cIO, "generic_readable");</div><div class='head'>diff --git a/ext/stringio/stringio.gemspec b/ext/stringio/stringio.gemspec<br/>index df1d468f93..1015d261f5 100644<br/>--- a/<a href='/ruby.git/tree/ext/stringio/stringio.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/stringio/stringio.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/stringio/stringio.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/stringio/stringio.gemspec</a></div><div class='hunk'>@@ -1,27 +1,38 @@</div><div class='del'>-# -*- encoding: utf-8 -*-</div><div class='add'>+# -*- coding: utf-8 -*-</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-# stub: stringio 0.0.0 ruby lib</div><div class='del'>-# stub: extconf.rb</div><div class='ctx'> </div><div class='add'>+source_version = ["", "ext/stringio/"].find do |dir|</div><div class='add'>+  begin</div><div class='add'>+    break File.open(File.join(__dir__, "#{dir}stringio.c")) {|f|</div><div class='add'>+      f.gets("\n#define STRINGIO_VERSION ")</div><div class='add'>+      f.gets[/\s*"(.+)"/, 1]</div><div class='add'>+    }</div><div class='add'>+  rescue Errno::ENOENT</div><div class='add'>+  end</div><div class='add'>+end</div><div class='ctx'> Gem::Specification.new do |s|</div><div class='del'>-  s.name = "stringio".freeze</div><div class='del'>-  s.version = "0.0.2"</div><div class='add'>+  s.name = "stringio"</div><div class='add'>+  s.version = source_version</div><div class='ctx'> </div><div class='del'>-  s.required_rubygems_version = Gem::Requirement.new("&gt;= 2.6".freeze)</div><div class='del'>-  s.require_paths = ["lib".freeze]</div><div class='del'>-  s.authors = ["Nobu Nakada".freeze]</div><div class='del'>-  s.description = "Pseudo `IO` class from/to `String`.".freeze</div><div class='del'>-  s.email = "nobu@ruby-lang.org".freeze</div><div class='del'>-  s.extensions = ["ext/stringio/extconf.rb".freeze]</div><div class='del'>-  s.files = ["README.md".freeze, "ext/stringio/extconf.rb".freeze, "ext/stringio/stringio.c".freeze]</div><div class='del'>-  s.homepage = "https://github.com/ruby/stringio".freeze</div><div class='del'>-  s.licenses = ["BSD-2-Clause".freeze]</div><div class='del'>-  s.required_ruby_version = Gem::Requirement.new("&gt;= 2.2".freeze)</div><div class='del'>-  s.rubygems_version = "2.6.11".freeze</div><div class='del'>-  s.summary = "Pseudo IO on String".freeze</div><div class='add'>+  s.required_rubygems_version = Gem::Requirement.new("&gt;= 2.6")</div><div class='add'>+  s.require_paths = ["lib"]</div><div class='add'>+  s.authors = ["Nobu Nakada", "Charles Oliver Nutter"]</div><div class='add'>+  s.description = "Pseudo `IO` class from/to `String`."</div><div class='add'>+  s.email = ["nobu@ruby-lang.org", "headius@headius.com"]</div><div class='add'>+  s.files = ["README.md"]</div><div class='add'>+  jruby = true if Gem::Platform.new('java') =~ s.platform or RUBY_ENGINE == 'jruby'</div><div class='add'>+  if jruby</div><div class='add'>+    s.files += ["lib/stringio.rb", "lib/stringio.jar"]</div><div class='add'>+    s.platform = "java"</div><div class='add'>+  else</div><div class='add'>+    s.extensions = ["ext/stringio/extconf.rb"]</div><div class='add'>+    s.files += ["ext/stringio/extconf.rb", "ext/stringio/stringio.c"]</div><div class='add'>+  end</div><div class='add'>+  s.homepage = "https://github.com/ruby/stringio"</div><div class='add'>+  s.licenses = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+  s.required_ruby_version = "&gt;= 2.5"</div><div class='add'>+  s.summary = "Pseudo IO on String"</div><div class='ctx'> </div><div class='ctx'>   # s.cert_chain  = %w[certs/nobu.pem]</div><div class='ctx'>   # s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/</div><div class='del'>-</div><div class='del'>-  s.add_development_dependency 'rake-compiler'</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/strscan/depend b/ext/strscan/depend<br/>index 1c396b00cf..8fe3cb23d9 100644<br/>--- a/<a href='/ruby.git/tree/ext/strscan/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/strscan/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/strscan/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/strscan/depend</a></div><div class='hunk'>@@ -1,10 +1,169 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> strscan.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> strscan.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> strscan.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> strscan.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> strscan.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> strscan.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rmatch.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+strscan.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> strscan.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> strscan.o: $(hdrdir)/ruby/onigmo.h</div><div class='ctx'> strscan.o: $(hdrdir)/ruby/oniguruma.h</div><div class='hunk'>@@ -13,7 +172,5 @@ strscan.o: $(hdrdir)/ruby/regex.h</div><div class='ctx'> strscan.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> strscan.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> strscan.o: $(hdrdir)/ruby/subst.h</div><div class='del'>-strscan.o: $(top_srcdir)/regenc.h</div><div class='del'>-strscan.o: $(top_srcdir)/regint.h</div><div class='ctx'> strscan.o: strscan.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/strscan/extconf.rb b/ext/strscan/extconf.rb<br/>index 714fa99fae..3c311d2364 100644<br/>--- a/<a href='/ruby.git/tree/ext/strscan/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/strscan/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/strscan/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/strscan/extconf.rb</a></div><div class='hunk'>@@ -1,4 +1,10 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> require 'mkmf'</div><div class='del'>-$INCFLAGS &lt;&lt; " -I$(top_srcdir)"</div><div class='del'>-create_makefile 'strscan'</div><div class='add'>+if RUBY_ENGINE == 'ruby'</div><div class='add'>+  $INCFLAGS &lt;&lt; " -I$(top_srcdir)" if $extmk</div><div class='add'>+  have_func("onig_region_memsize(NULL)")</div><div class='add'>+  have_func("rb_reg_onig_match", "ruby/re.h")</div><div class='add'>+  create_makefile 'strscan'</div><div class='add'>+else</div><div class='add'>+  File.write('Makefile', dummy_makefile("").join)</div><div class='add'>+end</div><div class='head'>diff --git a/ext/strscan/strscan.c b/ext/strscan/strscan.c<br/>index 77a36fe323..16d669d8a5 100644<br/>--- a/<a href='/ruby.git/tree/ext/strscan/strscan.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/strscan/strscan.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/strscan/strscan.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/strscan/strscan.c</a></div><div class='hunk'>@@ -4,16 +4,25 @@</div><div class='ctx'>     Copyright (c) 1999-2006 Minero Aoki</div><div class='ctx'> </div><div class='ctx'>     This program is free software.</div><div class='del'>-    You can distribute/modify this program under the terms of</div><div class='del'>-    the Ruby License. For details, see the file COPYING.</div><div class='add'>+    You can redistribute this program under the terms of the Ruby's or 2-clause</div><div class='add'>+    BSD License.  For details, see the COPYING and LICENSE.txt files.</div><div class='ctx'> */</div><div class='ctx'> </div><div class='ctx'> #include "ruby/ruby.h"</div><div class='ctx'> #include "ruby/re.h"</div><div class='ctx'> #include "ruby/encoding.h"</div><div class='del'>-#include "regint.h"</div><div class='ctx'> </div><div class='del'>-#define STRSCAN_VERSION "0.7.0"</div><div class='add'>+#ifdef RUBY_EXTCONF_H</div><div class='add'>+#  include RUBY_EXTCONF_H</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_ONIG_REGION_MEMSIZE</div><div class='add'>+extern size_t onig_region_memsize(const struct re_registers *regs);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include &lt;stdbool.h&gt;</div><div class='add'>+</div><div class='add'>+#define STRSCAN_VERSION "3.0.7"</div><div class='ctx'> </div><div class='ctx'> /* =======================================================================</div><div class='ctx'>                          Data Type Definitions</div><div class='hunk'>@@ -41,6 +50,9 @@ struct strscanner</div><div class='ctx'> </div><div class='ctx'>     /* regexp used for last scan */</div><div class='ctx'>     VALUE regex;</div><div class='add'>+</div><div class='add'>+    /* anchor mode */</div><div class='add'>+    bool fixed_anchor_p;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> #define MATCHED_P(s)          ((s)-&gt;flags &amp; FLAG_MATCHED)</div><div class='hunk'>@@ -65,7 +77,6 @@ struct strscanner</div><div class='ctx'>    ======================================================================= */</div><div class='ctx'> </div><div class='ctx'> static inline long minl _((const long n, const long x));</div><div class='del'>-static VALUE infect _((VALUE str, struct strscanner *p));</div><div class='ctx'> static VALUE extract_range _((struct strscanner *p, long beg_i, long end_i));</div><div class='ctx'> static VALUE extract_beg_len _((struct strscanner *p, long beg_i, long len));</div><div class='ctx'> </div><div class='hunk'>@@ -127,13 +138,6 @@ static VALUE inspect2 _((struct strscanner *p));</div><div class='ctx'>    ======================================================================= */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-infect(VALUE str, struct strscanner *p)</div><div class='del'>-{</div><div class='del'>-    OBJ_INFECT(str, p-&gt;str);</div><div class='del'>-    return str;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='ctx'> str_new(struct strscanner *p, const char *ptr, long len)</div><div class='ctx'> {</div><div class='ctx'>     VALUE str = rb_str_new(ptr, len);</div><div class='hunk'>@@ -152,7 +156,7 @@ extract_range(struct strscanner *p, long beg_i, long end_i)</div><div class='ctx'> {</div><div class='ctx'>     if (beg_i &gt; S_LEN(p)) return Qnil;</div><div class='ctx'>     end_i = minl(end_i, S_LEN(p));</div><div class='del'>-    return infect(str_new(p, S_PBEG(p) + beg_i, end_i - beg_i), p);</div><div class='add'>+    return str_new(p, S_PBEG(p) + beg_i, end_i - beg_i);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -160,7 +164,7 @@ extract_beg_len(struct strscanner *p, long beg_i, long len)</div><div class='ctx'> {</div><div class='ctx'>     if (beg_i &gt; S_LEN(p)) return Qnil;</div><div class='ctx'>     len = minl(len, S_LEN(p) - beg_i);</div><div class='del'>-    return infect(str_new(p, S_PBEG(p) + beg_i, len), p);</div><div class='add'>+    return str_new(p, S_PBEG(p) + beg_i, len);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* =======================================================================</div><div class='hunk'>@@ -172,6 +176,7 @@ strscan_mark(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct strscanner *p = ptr;</div><div class='ctx'>     rb_gc_mark(p-&gt;str);</div><div class='add'>+    rb_gc_mark(p-&gt;regex);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -186,7 +191,11 @@ static size_t</div><div class='ctx'> strscan_memsize(const void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     const struct strscanner *p = ptr;</div><div class='del'>-    return sizeof(*p) - sizeof(p-&gt;regs) + onig_region_memsize(&amp;p-&gt;regs);</div><div class='add'>+    size_t size = sizeof(*p) - sizeof(p-&gt;regs);</div><div class='add'>+#ifdef HAVE_ONIG_REGION_MEMSIZE</div><div class='add'>+    size += onig_region_memsize(&amp;p-&gt;regs);</div><div class='add'>+#endif</div><div class='add'>+    return size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const rb_data_type_t strscanner_type = {</div><div class='hunk'>@@ -204,23 +213,46 @@ strscan_s_allocate(VALUE klass)</div><div class='ctx'>     CLEAR_MATCH_STATUS(p);</div><div class='ctx'>     onig_region_init(&amp;(p-&gt;regs));</div><div class='ctx'>     p-&gt;str = Qnil;</div><div class='add'>+    p-&gt;regex = Qnil;</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq: StringScanner.new(string, dup = false)</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    StringScanner.new(string, fixed_anchor: false)</div><div class='add'>+ *    StringScanner.new(string, dup = false)</div><div class='ctx'>  *</div><div class='ctx'>  * Creates a new StringScanner object to scan over the given +string+.</div><div class='add'>+ *</div><div class='add'>+ * If +fixed_anchor+ is +true+, +\A+ always matches the beginning of</div><div class='add'>+ * the string. Otherwise, +\A+ always matches the current position.</div><div class='add'>+ *</div><div class='ctx'>  * +dup+ argument is obsolete and not used now.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strscan_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     struct strscanner *p;</div><div class='del'>-    VALUE str, need_dup;</div><div class='add'>+    VALUE str, options;</div><div class='ctx'> </div><div class='ctx'>     p = check_strscan(self);</div><div class='del'>-    rb_scan_args(argc, argv, "11", &amp;str, &amp;need_dup);</div><div class='add'>+    rb_scan_args(argc, argv, "11", &amp;str, &amp;options);</div><div class='add'>+    options = rb_check_hash_type(options);</div><div class='add'>+    if (!NIL_P(options)) {</div><div class='add'>+        VALUE fixed_anchor;</div><div class='add'>+        ID keyword_ids[1];</div><div class='add'>+        keyword_ids[0] = rb_intern("fixed_anchor");</div><div class='add'>+        rb_get_kwargs(options, keyword_ids, 0, 1, &amp;fixed_anchor);</div><div class='add'>+        if (fixed_anchor == Qundef) {</div><div class='add'>+            p-&gt;fixed_anchor_p = false;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            p-&gt;fixed_anchor_p = RTEST(fixed_anchor);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        p-&gt;fixed_anchor_p = false;</div><div class='add'>+    }</div><div class='ctx'>     StringValue(str);</div><div class='ctx'>     p-&gt;str = str;</div><div class='ctx'> </div><div class='hunk'>@@ -294,7 +326,7 @@ strscan_reset(VALUE self)</div><div class='ctx'>  *   terminate</div><div class='ctx'>  *   clear</div><div class='ctx'>  *</div><div class='del'>- * Set the scan pointer to the end of the string and clear matching data.</div><div class='add'>+ * Sets the scan pointer to the end of the string and clear matching data.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strscan_terminate(VALUE self)</div><div class='hunk'>@@ -403,29 +435,26 @@ strscan_get_pos(VALUE self)</div><div class='ctx'>  *</div><div class='ctx'>  * In short, it's a 0-based index into the string.</div><div class='ctx'>  *</div><div class='del'>- *   s = StringScanner.new("abcÃ¤defÃ¶ghi")</div><div class='del'>- *   s.charpos           # -&gt; 0</div><div class='del'>- *   s.scan_until(/Ã¤/)   # -&gt; "abcÃ¤"</div><div class='del'>- *   s.pos               # -&gt; 5</div><div class='del'>- *   s.charpos           # -&gt; 4</div><div class='add'>+ *   s = StringScanner.new("abc\u00e4def\u00f6ghi")</div><div class='add'>+ *   s.charpos                # -&gt; 0</div><div class='add'>+ *   s.scan_until(/\u00e4/)   # -&gt; "abc\u00E4"</div><div class='add'>+ *   s.pos                    # -&gt; 5</div><div class='add'>+ *   s.charpos                # -&gt; 4</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strscan_get_charpos(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     struct strscanner *p;</div><div class='del'>-    VALUE substr;</div><div class='ctx'> </div><div class='ctx'>     GET_SCANNER(self, p);</div><div class='ctx'> </div><div class='del'>-    substr = rb_funcall(p-&gt;str, id_byteslice, 2, INT2FIX(0), INT2NUM(p-&gt;curr));</div><div class='del'>-</div><div class='del'>-    return rb_str_length(substr);</div><div class='add'>+    return LONG2NUM(rb_enc_strlen(S_PBEG(p), CURPTR(p), rb_enc_get(p-&gt;str)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq: pos=(n)</div><div class='ctx'>  *</div><div class='del'>- * Set the byte position of the scan pointer.</div><div class='add'>+ * Sets the byte position of the scan pointer.</div><div class='ctx'>  *</div><div class='ctx'>  *   s = StringScanner.new('test string')</div><div class='ctx'>  *   s.pos = 7            # -&gt; 7</div><div class='hunk'>@@ -443,69 +472,192 @@ strscan_set_pos(VALUE self, VALUE v)</div><div class='ctx'>     if (i &lt; 0) rb_raise(rb_eRangeError, "index out of range");</div><div class='ctx'>     if (i &gt; S_LEN(p)) rb_raise(rb_eRangeError, "index out of range");</div><div class='ctx'>     p-&gt;curr = i;</div><div class='del'>-    return INT2NUM(i);</div><div class='add'>+    return LONG2NUM(i);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-strscan_do_scan(VALUE self, VALUE regex, int succptr, int getstr, int headonly)</div><div class='add'>+static inline UChar *</div><div class='add'>+match_target(struct strscanner *p)</div><div class='ctx'> {</div><div class='del'>-    regex_t *rb_reg_prepare_re(VALUE re, VALUE str);</div><div class='del'>-    struct strscanner *p;</div><div class='del'>-    regex_t *re;</div><div class='del'>-    long ret;</div><div class='del'>-    int tmpreg;</div><div class='add'>+    if (p-&gt;fixed_anchor_p) {</div><div class='add'>+        return (UChar *)S_PBEG(p);</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+    {</div><div class='add'>+        return (UChar *)CURPTR(p);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    Check_Type(regex, T_REGEXP);</div><div class='del'>-    GET_SCANNER(self, p);</div><div class='add'>+static inline void</div><div class='add'>+set_registers(struct strscanner *p, size_t length)</div><div class='add'>+{</div><div class='add'>+    const int at = 0;</div><div class='add'>+    OnigRegion *regs = &amp;(p-&gt;regs);</div><div class='add'>+    onig_region_clear(regs);</div><div class='add'>+    if (onig_region_set(regs, at, 0, 0)) return;</div><div class='add'>+    if (p-&gt;fixed_anchor_p) {</div><div class='add'>+        regs-&gt;beg[at] = p-&gt;curr;</div><div class='add'>+        regs-&gt;end[at] = p-&gt;curr + length;</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+    {</div><div class='add'>+        regs-&gt;end[at] = length;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    CLEAR_MATCH_STATUS(p);</div><div class='del'>-    if (S_RESTLEN(p) &lt; 0) {</div><div class='del'>-        return Qnil;</div><div class='add'>+static inline void</div><div class='add'>+succ(struct strscanner *p)</div><div class='add'>+{</div><div class='add'>+    if (p-&gt;fixed_anchor_p) {</div><div class='add'>+        p-&gt;curr = p-&gt;regs.end[0];</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+    {</div><div class='add'>+        p-&gt;curr += p-&gt;regs.end[0];</div><div class='ctx'>     }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    p-&gt;regex = regex;</div><div class='del'>-    re = rb_reg_prepare_re(regex, p-&gt;str);</div><div class='del'>-    tmpreg = re != RREGEXP_PTR(regex);</div><div class='del'>-    if (!tmpreg) RREGEXP(regex)-&gt;usecnt++;</div><div class='add'>+static inline long</div><div class='add'>+last_match_length(struct strscanner *p)</div><div class='add'>+{</div><div class='add'>+    if (p-&gt;fixed_anchor_p) {</div><div class='add'>+        return p-&gt;regs.end[0] - p-&gt;prev;</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+    {</div><div class='add'>+        return p-&gt;regs.end[0];</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (headonly) {</div><div class='del'>-        ret = onig_match(re, (UChar* )CURPTR(p),</div><div class='del'>-                         (UChar* )(CURPTR(p) + S_RESTLEN(p)),</div><div class='del'>-                         (UChar* )CURPTR(p), &amp;(p-&gt;regs), ONIG_OPTION_NONE);</div><div class='add'>+static inline long</div><div class='add'>+adjust_register_position(struct strscanner *p, long position)</div><div class='add'>+{</div><div class='add'>+    if (p-&gt;fixed_anchor_p) {</div><div class='add'>+        return position;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        ret = onig_search(re,</div><div class='del'>-                          (UChar* )CURPTR(p), (UChar* )(CURPTR(p) + S_RESTLEN(p)),</div><div class='del'>-                          (UChar* )CURPTR(p), (UChar* )(CURPTR(p) + S_RESTLEN(p)),</div><div class='del'>-                          &amp;(p-&gt;regs), ONIG_OPTION_NONE);</div><div class='add'>+        return p-&gt;prev + position;</div><div class='ctx'>     }</div><div class='del'>-    if (!tmpreg) RREGEXP(regex)-&gt;usecnt--;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* rb_reg_onig_match is available in Ruby 3.3 and later. */</div><div class='add'>+#ifndef HAVE_RB_REG_ONIG_MATCH</div><div class='add'>+static OnigPosition</div><div class='add'>+rb_reg_onig_match(VALUE re, VALUE str,</div><div class='add'>+                  OnigPosition (*match)(regex_t *reg, VALUE str, struct re_registers *regs, void *args),</div><div class='add'>+                  void *args, struct re_registers *regs)</div><div class='add'>+{</div><div class='add'>+    regex_t *reg = rb_reg_prepare_re(re, str);</div><div class='add'>+</div><div class='add'>+    bool tmpreg = reg != RREGEXP_PTR(re);</div><div class='add'>+    if (!tmpreg) RREGEXP(re)-&gt;usecnt++;</div><div class='add'>+</div><div class='add'>+    OnigPosition result = match(reg, str, regs, args);</div><div class='add'>+</div><div class='add'>+    if (!tmpreg) RREGEXP(re)-&gt;usecnt--;</div><div class='ctx'>     if (tmpreg) {</div><div class='del'>-        if (RREGEXP(regex)-&gt;usecnt) {</div><div class='del'>-            onig_free(re);</div><div class='add'>+        if (RREGEXP(re)-&gt;usecnt) {</div><div class='add'>+            onig_free(reg);</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-            onig_free(RREGEXP_PTR(regex));</div><div class='del'>-            RREGEXP_PTR(regex) = re;</div><div class='add'>+            onig_free(RREGEXP_PTR(re));</div><div class='add'>+            RREGEXP_PTR(re) = reg;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (result &lt; 0) {</div><div class='add'>+        if (result != ONIG_MISMATCH) {</div><div class='add'>+            rb_raise(ScanError, "regexp buffer overflow");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static OnigPosition</div><div class='add'>+strscan_match(regex_t *reg, VALUE str, struct re_registers *regs, void *args_ptr)</div><div class='add'>+{</div><div class='add'>+    struct strscanner *p = (struct strscanner *)args_ptr;</div><div class='add'>+</div><div class='add'>+    return onig_match(reg,</div><div class='add'>+                      match_target(p),</div><div class='add'>+                      (UChar* )(CURPTR(p) + S_RESTLEN(p)),</div><div class='add'>+                      (UChar* )CURPTR(p),</div><div class='add'>+                      regs,</div><div class='add'>+                      ONIG_OPTION_NONE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static OnigPosition</div><div class='add'>+strscan_search(regex_t *reg, VALUE str, struct re_registers *regs, void *args_ptr)</div><div class='add'>+{</div><div class='add'>+    struct strscanner *p = (struct strscanner *)args_ptr;</div><div class='add'>+</div><div class='add'>+    return onig_search(reg,</div><div class='add'>+                       match_target(p),</div><div class='add'>+                       (UChar *)(CURPTR(p) + S_RESTLEN(p)),</div><div class='add'>+                       (UChar *)CURPTR(p),</div><div class='add'>+                       (UChar *)(CURPTR(p) + S_RESTLEN(p)),</div><div class='add'>+                       regs,</div><div class='add'>+                       ONIG_OPTION_NONE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+strscan_do_scan(VALUE self, VALUE pattern, int succptr, int getstr, int headonly)</div><div class='add'>+{</div><div class='add'>+    struct strscanner *p;</div><div class='add'>+</div><div class='add'>+    if (headonly) {</div><div class='add'>+        if (!RB_TYPE_P(pattern, T_REGEXP)) {</div><div class='add'>+            StringValue(pattern);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='add'>+    else {</div><div class='add'>+        Check_Type(pattern, T_REGEXP);</div><div class='add'>+    }</div><div class='add'>+    GET_SCANNER(self, p);</div><div class='ctx'> </div><div class='del'>-    if (ret == -2) rb_raise(ScanError, "regexp buffer overflow");</div><div class='del'>-    if (ret &lt; 0) {</div><div class='del'>-        /* not matched */</div><div class='add'>+    CLEAR_MATCH_STATUS(p);</div><div class='add'>+    if (S_RESTLEN(p) &lt; 0) {</div><div class='ctx'>         return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    if (RB_TYPE_P(pattern, T_REGEXP)) {</div><div class='add'>+        p-&gt;regex = pattern;</div><div class='add'>+        OnigPosition ret = rb_reg_onig_match(pattern,</div><div class='add'>+                                             p-&gt;str,</div><div class='add'>+                                             headonly ? strscan_match : strscan_search,</div><div class='add'>+                                             (void *)p,</div><div class='add'>+                                             &amp;(p-&gt;regs));</div><div class='add'>+</div><div class='add'>+        if (ret == ONIG_MISMATCH) {</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_enc_check(p-&gt;str, pattern);</div><div class='add'>+        if (S_RESTLEN(p) &lt; RSTRING_LEN(pattern)) {</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='add'>+        if (memcmp(CURPTR(p), RSTRING_PTR(pattern), RSTRING_LEN(pattern)) != 0) {</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='add'>+        set_registers(p, RSTRING_LEN(pattern));</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     MATCHED(p);</div><div class='ctx'>     p-&gt;prev = p-&gt;curr;</div><div class='add'>+</div><div class='ctx'>     if (succptr) {</div><div class='del'>-        p-&gt;curr += p-&gt;regs.end[0];</div><div class='add'>+        succ(p);</div><div class='ctx'>     }</div><div class='del'>-    if (getstr) {</div><div class='del'>-        return extract_beg_len(p, p-&gt;prev, p-&gt;regs.end[0]);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        return INT2FIX(p-&gt;regs.end[0]);</div><div class='add'>+    {</div><div class='add'>+        const long length = last_match_length(p);</div><div class='add'>+        if (getstr) {</div><div class='add'>+            return extract_beg_len(p, p-&gt;prev, length);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return INT2FIX(length);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -520,7 +672,8 @@ strscan_do_scan(VALUE self, VALUE regex, int succptr, int getstr, int headonly)</div><div class='ctx'>  *   p s.scan(/\w+/)   # -&gt; "test"</div><div class='ctx'>  *   p s.scan(/\w+/)   # -&gt; nil</div><div class='ctx'>  *   p s.scan(/\s+/)   # -&gt; " "</div><div class='del'>- *   p s.scan(/\w+/)   # -&gt; "string"</div><div class='add'>+ *   p s.scan("str")   # -&gt; "str"</div><div class='add'>+ *   p s.scan(/\w+/)   # -&gt; "ing"</div><div class='ctx'>  *   p s.scan(/./)     # -&gt; nil</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='hunk'>@@ -539,6 +692,7 @@ strscan_scan(VALUE self, VALUE re)</div><div class='ctx'>  *   s = StringScanner.new('test string')</div><div class='ctx'>  *   p s.match?(/\w+/)   # -&gt; 4</div><div class='ctx'>  *   p s.match?(/\w+/)   # -&gt; 4</div><div class='add'>+ *   p s.match?("test")  # -&gt; 4</div><div class='ctx'>  *   p s.match?(/\s+/)   # -&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -560,7 +714,8 @@ strscan_match_p(VALUE self, VALUE re)</div><div class='ctx'>  *   p s.skip(/\w+/)   # -&gt; 4</div><div class='ctx'>  *   p s.skip(/\w+/)   # -&gt; nil</div><div class='ctx'>  *   p s.skip(/\s+/)   # -&gt; 1</div><div class='del'>- *   p s.skip(/\w+/)   # -&gt; 6</div><div class='add'>+ *   p s.skip("st")    # -&gt; 2</div><div class='add'>+ *   p s.skip(/\w+/)   # -&gt; 4</div><div class='ctx'>  *   p s.skip(/./)     # -&gt; nil</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='hunk'>@@ -704,7 +859,12 @@ static void</div><div class='ctx'> adjust_registers_to_matched(struct strscanner *p)</div><div class='ctx'> {</div><div class='ctx'>     onig_region_clear(&amp;(p-&gt;regs));</div><div class='del'>-    onig_region_set(&amp;(p-&gt;regs), 0, 0, (int)(p-&gt;curr - p-&gt;prev));</div><div class='add'>+    if (p-&gt;fixed_anchor_p) {</div><div class='add'>+        onig_region_set(&amp;(p-&gt;regs), 0, (int)p-&gt;prev, (int)p-&gt;curr);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        onig_region_set(&amp;(p-&gt;regs), 0, 0, (int)(p-&gt;curr - p-&gt;prev));</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -716,9 +876,8 @@ adjust_registers_to_matched(struct strscanner *p)</div><div class='ctx'>  *   s.getch           # =&gt; "b"</div><div class='ctx'>  *   s.getch           # =&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *   $KCODE = 'EUC'</div><div class='del'>- *   s = StringScanner.new("\244\242")</div><div class='del'>- *   s.getch           # =&gt; "\244\242"   # Japanese hira-kana "A" in EUC-JP</div><div class='add'>+ *   s = StringScanner.new("\244\242".force_encoding("euc-jp"))</div><div class='add'>+ *   s.getch           # =&gt; "\x{A4A2}"   # Japanese hira-kana "A" in EUC-JP</div><div class='ctx'>  *   s.getch           # =&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -738,8 +897,9 @@ strscan_getch(VALUE self)</div><div class='ctx'>     p-&gt;curr += len;</div><div class='ctx'>     MATCHED(p);</div><div class='ctx'>     adjust_registers_to_matched(p);</div><div class='del'>-    return extract_range(p, p-&gt;prev + p-&gt;regs.beg[0],</div><div class='del'>-                            p-&gt;prev + p-&gt;regs.end[0]);</div><div class='add'>+    return extract_range(p,</div><div class='add'>+                         adjust_register_position(p, p-&gt;regs.beg[0]),</div><div class='add'>+                         adjust_register_position(p, p-&gt;regs.end[0]));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -752,10 +912,9 @@ strscan_getch(VALUE self)</div><div class='ctx'>  *   s.get_byte         # =&gt; "b"</div><div class='ctx'>  *   s.get_byte         # =&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *   $KCODE = 'EUC'</div><div class='del'>- *   s = StringScanner.new("\244\242")</div><div class='del'>- *   s.get_byte         # =&gt; "\244"</div><div class='del'>- *   s.get_byte         # =&gt; "\242"</div><div class='add'>+ *   s = StringScanner.new("\244\242".force_encoding("euc-jp"))</div><div class='add'>+ *   s.get_byte         # =&gt; "\xA4"</div><div class='add'>+ *   s.get_byte         # =&gt; "\xA2"</div><div class='ctx'>  *   s.get_byte         # =&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -772,8 +931,9 @@ strscan_get_byte(VALUE self)</div><div class='ctx'>     p-&gt;curr++;</div><div class='ctx'>     MATCHED(p);</div><div class='ctx'>     adjust_registers_to_matched(p);</div><div class='del'>-    return extract_range(p, p-&gt;prev + p-&gt;regs.beg[0],</div><div class='del'>-                            p-&gt;prev + p-&gt;regs.end[0]);</div><div class='add'>+    return extract_range(p,</div><div class='add'>+                         adjust_register_position(p, p-&gt;regs.beg[0]),</div><div class='add'>+                         adjust_register_position(p, p-&gt;regs.end[0]));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -808,7 +968,7 @@ strscan_peek(VALUE self, VALUE vlen)</div><div class='ctx'> </div><div class='ctx'>     len = NUM2LONG(vlen);</div><div class='ctx'>     if (EOS_P(p))</div><div class='del'>-        return infect(str_new(p, "", 0), p);</div><div class='add'>+        return str_new(p, "", 0);</div><div class='ctx'> </div><div class='ctx'>     len = minl(len, S_RESTLEN(p));</div><div class='ctx'>     return extract_beg_len(p, p-&gt;curr, len);</div><div class='hunk'>@@ -826,7 +986,7 @@ strscan_peep(VALUE self, VALUE vlen)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Set the scan pointer to the previous position.  Only one previous position is</div><div class='add'>+ * Sets the scan pointer to the previous position.  Only one previous position is</div><div class='ctx'>  * remembered, and it changes with each scanning operation.</div><div class='ctx'>  *</div><div class='ctx'>  *   s = StringScanner.new('test string')</div><div class='hunk'>@@ -850,7 +1010,7 @@ strscan_unscan(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Returns +true+ iff the scan pointer is at the beginning of the line.</div><div class='add'>+ * Returns +true+ if and only if the scan pointer is at the beginning of the line.</div><div class='ctx'>  *</div><div class='ctx'>  *   s = StringScanner.new("test\ntest\n")</div><div class='ctx'>  *   s.bol?           # =&gt; true</div><div class='hunk'>@@ -903,12 +1063,13 @@ strscan_empty_p(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Returns true iff there is more data in the string.  See #eos?.</div><div class='add'>+ * Returns true if and only if there is more data in the string.  See #eos?.</div><div class='ctx'>  * This method is obsolete; use #eos? instead.</div><div class='ctx'>  *</div><div class='ctx'>  *   s = StringScanner.new('test string')</div><div class='del'>- *   s.eos?              # These two</div><div class='del'>- *   s.rest?             # are opposites.</div><div class='add'>+ *   # These two are opposites</div><div class='add'>+ *   s.eos? # =&gt; false</div><div class='add'>+ *   s.rest? # =&gt; true</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> strscan_rest_p(VALUE self)</div><div class='hunk'>@@ -920,7 +1081,7 @@ strscan_rest_p(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Returns +true+ iff the last match was successful.</div><div class='add'>+ * Returns +true+ if and only if the last match was successful.</div><div class='ctx'>  *</div><div class='ctx'>  *   s = StringScanner.new('test string')</div><div class='ctx'>  *   s.match?(/\w+/)     # =&gt; 4</div><div class='hunk'>@@ -951,13 +1112,15 @@ strscan_matched(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GET_SCANNER(self, p);</div><div class='ctx'>     if (! MATCHED_P(p)) return Qnil;</div><div class='del'>-    return extract_range(p, p-&gt;prev + p-&gt;regs.beg[0],</div><div class='del'>-                            p-&gt;prev + p-&gt;regs.end[0]);</div><div class='add'>+    return extract_range(p,</div><div class='add'>+                         adjust_register_position(p, p-&gt;regs.beg[0]),</div><div class='add'>+                         adjust_register_position(p, p-&gt;regs.end[0]));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Returns the size of the most recent match (see #matched), or +nil+ if there</div><div class='del'>- * was no recent match.</div><div class='add'>+ * Returns the size of the most recent match in bytes, or +nil+ if there</div><div class='add'>+ * was no recent match.  This is different than &lt;tt&gt;matched.size&lt;/tt&gt;,</div><div class='add'>+ * which will return the size in characters.</div><div class='ctx'>  *</div><div class='ctx'>  *   s = StringScanner.new('test string')</div><div class='ctx'>  *   s.check /\w+/           # -&gt; "test"</div><div class='hunk'>@@ -972,7 +1135,7 @@ strscan_matched_size(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GET_SCANNER(self, p);</div><div class='ctx'>     if (! MATCHED_P(p)) return Qnil;</div><div class='del'>-    return INT2NUM(p-&gt;regs.end[0] - p-&gt;regs.beg[0]);</div><div class='add'>+    return LONG2NUM(p-&gt;regs.end[0] - p-&gt;regs.beg[0]);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -1034,7 +1197,7 @@ strscan_aref(VALUE self, VALUE idx)</div><div class='ctx'>             idx = rb_sym2str(idx);</div><div class='ctx'>             /* fall through */</div><div class='ctx'>         case T_STRING:</div><div class='del'>-            if (!p-&gt;regex) return Qnil;</div><div class='add'>+            if (!RTEST(p-&gt;regex)) return Qnil;</div><div class='ctx'>             RSTRING_GETMEM(idx, name, i);</div><div class='ctx'>             i = name_to_backref_number(&amp;(p-&gt;regs), p-&gt;regex, name, name + i, rb_enc_get(idx));</div><div class='ctx'>             break;</div><div class='hunk'>@@ -1048,8 +1211,9 @@ strscan_aref(VALUE self, VALUE idx)</div><div class='ctx'>     if (i &gt;= p-&gt;regs.num_regs) return Qnil;</div><div class='ctx'>     if (p-&gt;regs.beg[i] == -1)  return Qnil;</div><div class='ctx'> </div><div class='del'>-    return extract_range(p, p-&gt;prev + p-&gt;regs.beg[i],</div><div class='del'>-                            p-&gt;prev + p-&gt;regs.end[i]);</div><div class='add'>+    return extract_range(p,</div><div class='add'>+                         adjust_register_position(p, p-&gt;regs.beg[i]),</div><div class='add'>+                         adjust_register_position(p, p-&gt;regs.end[i]));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1098,8 +1262,9 @@ strscan_captures(VALUE self)</div><div class='ctx'>     new_ary  = rb_ary_new2(num_regs);</div><div class='ctx'> </div><div class='ctx'>     for (i = 1; i &lt; num_regs; i++) {</div><div class='del'>-        VALUE str = extract_range(p, p-&gt;prev + p-&gt;regs.beg[i],</div><div class='del'>-                                     p-&gt;prev + p-&gt;regs.end[i]);</div><div class='add'>+        VALUE str = extract_range(p,</div><div class='add'>+                                  adjust_register_position(p, p-&gt;regs.beg[i]),</div><div class='add'>+                                  adjust_register_position(p, p-&gt;regs.end[i]));</div><div class='ctx'>         rb_ary_push(new_ary, str);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -1154,7 +1319,9 @@ strscan_pre_match(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GET_SCANNER(self, p);</div><div class='ctx'>     if (! MATCHED_P(p)) return Qnil;</div><div class='del'>-    return extract_range(p, 0, p-&gt;prev + p-&gt;regs.beg[0]);</div><div class='add'>+    return extract_range(p,</div><div class='add'>+                         0,</div><div class='add'>+                         adjust_register_position(p, p-&gt;regs.beg[0]));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1173,7 +1340,9 @@ strscan_post_match(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GET_SCANNER(self, p);</div><div class='ctx'>     if (! MATCHED_P(p)) return Qnil;</div><div class='del'>-    return extract_range(p, p-&gt;prev + p-&gt;regs.end[0], S_LEN(p));</div><div class='add'>+    return extract_range(p,</div><div class='add'>+                         adjust_register_position(p, p-&gt;regs.end[0]),</div><div class='add'>+                         S_LEN(p));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1187,7 +1356,7 @@ strscan_rest(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     GET_SCANNER(self, p);</div><div class='ctx'>     if (EOS_P(p)) {</div><div class='del'>-        return infect(str_new(p, "", 0), p);</div><div class='add'>+        return str_new(p, "", 0);</div><div class='ctx'>     }</div><div class='ctx'>     return extract_range(p, p-&gt;curr, S_LEN(p));</div><div class='ctx'> }</div><div class='hunk'>@@ -1242,11 +1411,11 @@ strscan_inspect(VALUE self)</div><div class='ctx'>     p = check_strscan(self);</div><div class='ctx'>     if (NIL_P(p-&gt;str)) {</div><div class='ctx'> 	a = rb_sprintf("#&lt;%"PRIsVALUE" (uninitialized)&gt;", rb_obj_class(self));</div><div class='del'>-	return infect(a, p);</div><div class='add'>+	return a;</div><div class='ctx'>     }</div><div class='ctx'>     if (EOS_P(p)) {</div><div class='ctx'> 	a = rb_sprintf("#&lt;%"PRIsVALUE" fin&gt;", rb_obj_class(self));</div><div class='del'>-	return infect(a, p);</div><div class='add'>+	return a;</div><div class='ctx'>     }</div><div class='ctx'>     if (p-&gt;curr == 0) {</div><div class='ctx'> 	b = inspect2(p);</div><div class='hunk'>@@ -1254,7 +1423,7 @@ strscan_inspect(VALUE self)</div><div class='ctx'> 		       rb_obj_class(self),</div><div class='ctx'> 		       p-&gt;curr, S_LEN(p),</div><div class='ctx'> 		       b);</div><div class='del'>-	return infect(a, p);</div><div class='add'>+	return a;</div><div class='ctx'>     }</div><div class='ctx'>     a = inspect1(p);</div><div class='ctx'>     b = inspect2(p);</div><div class='hunk'>@@ -1262,7 +1431,7 @@ strscan_inspect(VALUE self)</div><div class='ctx'> 		   rb_obj_class(self),</div><div class='ctx'> 		   p-&gt;curr, S_LEN(p),</div><div class='ctx'> 		   a, b);</div><div class='del'>-    return infect(a, p);</div><div class='add'>+    return a;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1302,6 +1471,73 @@ inspect2(struct strscanner *p)</div><div class='ctx'>     return rb_str_dump(str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    scanner.fixed_anchor? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Whether +scanner+ uses fixed anchor mode or not.</div><div class='add'>+ *</div><div class='add'>+ * If fixed anchor mode is used, +\A+ always matches the beginning of</div><div class='add'>+ * the string. Otherwise, +\A+ always matches the current position.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+strscan_fixed_anchor_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct strscanner *p;</div><div class='add'>+    p = check_strscan(self);</div><div class='add'>+    return p-&gt;fixed_anchor_p ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+typedef struct {</div><div class='add'>+    VALUE self;</div><div class='add'>+    VALUE captures;</div><div class='add'>+} named_captures_data;</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+named_captures_iter(const OnigUChar *name,</div><div class='add'>+                    const OnigUChar *name_end,</div><div class='add'>+                    int back_num,</div><div class='add'>+                    int *back_refs,</div><div class='add'>+                    OnigRegex regex,</div><div class='add'>+                    void *arg)</div><div class='add'>+{</div><div class='add'>+    named_captures_data *data = arg;</div><div class='add'>+</div><div class='add'>+    VALUE key = rb_str_new((const char *)name, name_end - name);</div><div class='add'>+    VALUE value = RUBY_Qnil;</div><div class='add'>+    int i;</div><div class='add'>+    for (i = 0; i &lt; back_num; i++) {</div><div class='add'>+        value = strscan_aref(data-&gt;self, INT2NUM(back_refs[i]));</div><div class='add'>+    }</div><div class='add'>+    rb_hash_aset(data-&gt;captures, key, value);</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   scanner.named_captures -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ * Returns a hash of string variables matching the regular expression.</div><div class='add'>+ *</div><div class='add'>+ *   scan = StringScanner.new('foobarbaz')</div><div class='add'>+ *   scan.match?(/(?&lt;f&gt;foo)(?&lt;r&gt;bar)(?&lt;z&gt;baz)/)</div><div class='add'>+ *   scan.named_captures # -&gt; {"f"=&gt;"foo", "r"=&gt;"bar", "z"=&gt;"baz"}</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+strscan_named_captures(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct strscanner *p;</div><div class='add'>+    GET_SCANNER(self, p);</div><div class='add'>+    named_captures_data data;</div><div class='add'>+    data.self = self;</div><div class='add'>+    data.captures = rb_hash_new();</div><div class='add'>+    if (!RB_NIL_P(p-&gt;regex)) {</div><div class='add'>+        onig_foreach_name(RREGEXP_PTR(p-&gt;regex), named_captures_iter, &amp;data);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return data.captures;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* =======================================================================</div><div class='ctx'>                               Ruby Interface</div><div class='ctx'>    ======================================================================= */</div><div class='hunk'>@@ -1312,6 +1548,8 @@ inspect2(struct strscanner *p)</div><div class='ctx'>  * StringScanner provides for lexical scanning operations on a String.  Here is</div><div class='ctx'>  * an example of its usage:</div><div class='ctx'>  *</div><div class='add'>+ *   require 'strscan'</div><div class='add'>+ *</div><div class='ctx'>  *   s = StringScanner.new('This is an example string')</div><div class='ctx'>  *   s.eos?               # -&gt; false</div><div class='ctx'>  *</div><div class='hunk'>@@ -1378,7 +1616,7 @@ inspect2(struct strscanner *p)</div><div class='ctx'>  *</div><div class='ctx'>  * === Finding Where we Are</div><div class='ctx'>  *</div><div class='del'>- * - #beginning_of_line? (#bol?)</div><div class='add'>+ * - #beginning_of_line? (&lt;tt&gt;#bol?&lt;/tt&gt;)</div><div class='ctx'>  * - #eos?</div><div class='ctx'>  * - #rest?</div><div class='ctx'>  * - #rest_size</div><div class='hunk'>@@ -1395,13 +1633,13 @@ inspect2(struct strscanner *p)</div><div class='ctx'>  * - #matched</div><div class='ctx'>  * - #matched?</div><div class='ctx'>  * - #matched_size</div><div class='del'>- * - []</div><div class='add'>+ * - &lt;tt&gt;#[]&lt;/tt&gt;</div><div class='ctx'>  * - #pre_match</div><div class='ctx'>  * - #post_match</div><div class='ctx'>  *</div><div class='ctx'>  * === Miscellaneous</div><div class='ctx'>  *</div><div class='del'>- * - &lt;&lt;</div><div class='add'>+ * - &lt;tt&gt;&lt;&lt;&lt;/tt&gt;</div><div class='ctx'>  * - #concat</div><div class='ctx'>  * - #string</div><div class='ctx'>  * - #string=</div><div class='hunk'>@@ -1412,6 +1650,10 @@ inspect2(struct strscanner *p)</div><div class='ctx'> void</div><div class='ctx'> Init_strscan(void)</div><div class='ctx'> {</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #undef rb_intern</div><div class='ctx'>     ID id_scanerr = rb_intern("ScanError");</div><div class='ctx'>     VALUE tmp;</div><div class='hunk'>@@ -1488,4 +1730,8 @@ Init_strscan(void)</div><div class='ctx'>     rb_define_method(StringScanner, "restsize",    strscan_restsize,    0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(StringScanner, "inspect",     strscan_inspect,     0);</div><div class='add'>+</div><div class='add'>+    rb_define_method(StringScanner, "fixed_anchor?", strscan_fixed_anchor_p, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_method(StringScanner, "named_captures", strscan_named_captures, 0);</div><div class='ctx'> }</div><div class='head'>diff --git a/ext/strscan/strscan.gemspec b/ext/strscan/strscan.gemspec<br/>index eefe8fbf2c..8a61c7abe6 100644<br/>--- a/<a href='/ruby.git/tree/ext/strscan/strscan.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/strscan/strscan.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/strscan/strscan.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/strscan/strscan.gemspec</a></div><div class='hunk'>@@ -1,19 +1,41 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='add'>+#</div><div class='add'>+source_version = ["", "ext/strscan/"].find do |dir|</div><div class='add'>+  begin</div><div class='add'>+    break File.open(File.join(__dir__, "#{dir}strscan.c")) {|f|</div><div class='add'>+      f.gets("\n#define STRSCAN_VERSION ")</div><div class='add'>+      f.gets[/\s*"(.+)"/, 1]</div><div class='add'>+    }</div><div class='add'>+  rescue Errno::ENOENT</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='ctx'> Gem::Specification.new do |s|</div><div class='ctx'>   s.name = "strscan"</div><div class='del'>-  s.version = '1.0.0'</div><div class='add'>+  s.version = source_version</div><div class='ctx'>   s.summary = "Provides lexical scanning operations on a String."</div><div class='ctx'>   s.description = "Provides lexical scanning operations on a String."</div><div class='ctx'> </div><div class='del'>-  s.require_path = %w{lib}</div><div class='del'>-  s.files = %w{ext/strscan/extconf.rb ext/strscan/strscan.c ext/strscan/regenc.h ext/strscan/regint.h}</div><div class='del'>-  s.extensions = %w{ext/strscan/extconf.rb}</div><div class='add'>+  files = [</div><div class='add'>+    "COPYING",</div><div class='add'>+    "LICENSE.txt",</div><div class='add'>+  ]</div><div class='add'>+  if RUBY_ENGINE == "jruby"</div><div class='add'>+    s.require_paths = %w{ext/jruby/lib lib}</div><div class='add'>+    files &lt;&lt; "ext/jruby/lib/strscan.rb"</div><div class='add'>+    files &lt;&lt; "lib/strscan.jar"</div><div class='add'>+    s.platform = "java"</div><div class='add'>+  else</div><div class='add'>+    s.require_paths = %w{lib}</div><div class='add'>+    files &lt;&lt; "ext/strscan/extconf.rb"</div><div class='add'>+    files &lt;&lt; "ext/strscan/strscan.c"</div><div class='add'>+    s.extensions = %w{ext/strscan/extconf.rb}</div><div class='add'>+  end</div><div class='add'>+  s.files = files</div><div class='ctx'>   s.required_ruby_version = "&gt;= 2.4.0"</div><div class='ctx'> </div><div class='del'>-  s.authors = ["Minero Aoki"]</div><div class='del'>-  s.email = [nil]</div><div class='add'>+  s.authors = ["Minero Aoki", "Sutou Kouhei", "Charles Oliver Nutter"]</div><div class='add'>+  s.email = [nil, "kou@cozmixng.org", "headius@headius.com"]</div><div class='ctx'>   s.homepage = "https://github.com/ruby/strscan"</div><div class='del'>-  s.license = "BSD-2-Clause"</div><div class='del'>-</div><div class='del'>-  s.add_development_dependency "rake-compiler"</div><div class='add'>+  s.licenses = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/syslog/depend b/ext/syslog/depend<br/>index ee2ad79052..4eea8c3bf9 100644<br/>--- a/<a href='/ruby.git/tree/ext/syslog/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/syslog/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/syslog/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/syslog/depend</a></div><div class='hunk'>@@ -1,9 +1,158 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> syslog.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> syslog.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> syslog.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> syslog.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> syslog.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+syslog.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> syslog.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> syslog.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> syslog.o: $(hdrdir)/ruby/st.h</div><div class='head'>diff --git a/ext/syslog/extconf.rb b/ext/syslog/extconf.rb<br/>index 3bfea1fa73..1230a4d52e 100644<br/>--- a/<a href='/ruby.git/tree/ext/syslog/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/syslog/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/syslog/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/syslog/extconf.rb</a></div><div class='hunk'>@@ -4,6 +4,8 @@</div><div class='ctx'> </div><div class='ctx'> require 'mkmf'</div><div class='ctx'> </div><div class='add'>+have_library("log") # for Android</div><div class='add'>+</div><div class='ctx'> have_header("syslog.h") &amp;&amp;</div><div class='ctx'>   have_func("openlog") &amp;&amp;</div><div class='ctx'>   have_func("setlogmask") &amp;&amp;</div><div class='head'>diff --git a/ext/syslog/lib/syslog/logger.rb b/ext/syslog/lib/syslog/logger.rb<br/>index 06cbe5b19d..453ca2785c 100644<br/>--- a/<a href='/ruby.git/tree/ext/syslog/lib/syslog/logger.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/syslog/lib/syslog/logger.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/syslog/lib/syslog/logger.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/syslog/lib/syslog/logger.rb</a></div><div class='hunk'>@@ -112,7 +112,7 @@ class Syslog::Logger</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def #{meth}?</div><div class='del'>-        @level &lt;= #{level}</div><div class='add'>+        level &lt;= #{level}</div><div class='ctx'>       end</div><div class='ctx'>     EOM</div><div class='ctx'>   end</div><div class='hunk'>@@ -202,7 +202,7 @@ class Syslog::Logger</div><div class='ctx'> </div><div class='ctx'>   def add severity, message = nil, progname = nil, &amp;block</div><div class='ctx'>     severity ||= ::Logger::UNKNOWN</div><div class='del'>-    @level &lt;= severity and</div><div class='add'>+    level &lt;= severity and</div><div class='ctx'>       @@syslog.log( (LEVEL_MAP[severity] | @facility), '%s', formatter.call(severity, Time.now, progname, (message || block.call)) )</div><div class='ctx'>     true</div><div class='ctx'>   end</div><div class='head'>diff --git a/ext/syslog/syslog.c b/ext/syslog/syslog.c<br/>index 754efd0317..8f3674aa8d 100644<br/>--- a/<a href='/ruby.git/tree/ext/syslog/syslog.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/syslog/syslog.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/syslog/syslog.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/syslog/syslog.c</a></div><div class='hunk'>@@ -162,19 +162,18 @@ static VALUE mSyslog_open(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>         ident = rb_gv_get("$0");</div><div class='ctx'>     }</div><div class='ctx'>     ident_ptr = StringValueCStr(ident);</div><div class='del'>-    rb_check_safe_obj(ident);</div><div class='ctx'>     syslog_ident = strdup(ident_ptr);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(opt)) {</div><div class='del'>-	syslog_options = LOG_PID | LOG_CONS;</div><div class='add'>+        syslog_options = LOG_PID | LOG_CONS;</div><div class='ctx'>     } else {</div><div class='del'>-	syslog_options = NUM2INT(opt);</div><div class='add'>+        syslog_options = NUM2INT(opt);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(fac)) {</div><div class='del'>-	syslog_facility = LOG_USER;</div><div class='add'>+        syslog_facility = LOG_USER;</div><div class='ctx'>     } else {</div><div class='del'>-	syslog_facility = NUM2INT(fac);</div><div class='add'>+        syslog_facility = NUM2INT(fac);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     openlog(syslog_ident, syslog_options, syslog_facility);</div><div class='hunk'>@@ -297,10 +296,6 @@ static VALUE mSyslog_set_mask(VALUE self, VALUE mask)</div><div class='ctx'>  *   Syslog.log(Syslog::LOG_ALERT, "Out of memory")</div><div class='ctx'>  *   Syslog.alert("Out of memory")</div><div class='ctx'>  *</div><div class='del'>- * Format strings are as for printf/sprintf, except that in addition %m is</div><div class='del'>- * replaced with the error message string that would be returned by</div><div class='del'>- * strerror(errno).</div><div class='del'>- *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE mSyslog_log(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='hunk'>@@ -312,7 +307,7 @@ static VALUE mSyslog_log(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     pri = *argv++;</div><div class='ctx'> </div><div class='ctx'>     if (!FIXNUM_P(pri)) {</div><div class='del'>-	rb_raise(rb_eTypeError, "type mismatch: %"PRIsVALUE" given", rb_obj_class(pri));</div><div class='add'>+        rb_raise(rb_eTypeError, "type mismatch: %"PRIsVALUE" given", rb_obj_class(pri));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     syslog_write(FIX2INT(pri), argc, argv);</div><div class='hunk'>@@ -327,14 +322,14 @@ static VALUE mSyslog_inspect(VALUE self)</div><div class='ctx'>     Check_Type(self, T_MODULE);</div><div class='ctx'> </div><div class='ctx'>     if (!syslog_opened)</div><div class='del'>-	return rb_sprintf("&lt;#%"PRIsVALUE": opened=false&gt;", self);</div><div class='add'>+        return rb_sprintf("&lt;#%"PRIsVALUE": opened=false&gt;", self);</div><div class='ctx'> </div><div class='ctx'>     return rb_sprintf("&lt;#%"PRIsVALUE": opened=true, ident=\"%s\", options=%d, facility=%d, mask=%d&gt;",</div><div class='del'>-		      self,</div><div class='del'>-		      syslog_ident,</div><div class='del'>-		      syslog_options,</div><div class='del'>-		      syslog_facility,</div><div class='del'>-		      syslog_mask);</div><div class='add'>+                      self,</div><div class='add'>+                      syslog_ident,</div><div class='add'>+                      syslog_options,</div><div class='add'>+                      syslog_facility,</div><div class='add'>+                      syslog_mask);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Returns self, for backward compatibility.</div><div class='head'>diff --git a/ext/syslog/syslog.gemspec b/ext/syslog/syslog.gemspec<br/>new file mode 100644<br/>index 0000000000..6aa2e9570d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/syslog/syslog.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/syslog/syslog.gemspec</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "syslog"</div><div class='add'>+  spec.version       = "0.1.1"</div><div class='add'>+  spec.authors       = ["Akinori MUSHA"]</div><div class='add'>+  spec.email         = ["knu@idaemons.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Ruby interface for the POSIX system logging facility.}</div><div class='add'>+  spec.description   = %q{Ruby interface for the POSIX system logging facility.}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/syslog"</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 2.3.0")</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.extensions    = ["ext/syslog/extconf.rb"]</div><div class='add'>+  spec.bindir        = "exe"</div><div class='add'>+  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/ext/win32/depend b/ext/win32/depend<br/>new file mode 100644<br/>index 0000000000..0301ce074c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/win32/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32/depend</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/win32/lib/Win32API.rb b/ext/win32/lib/Win32API.rb<br/>deleted file mode 100644<br/>index 97b29fbf74..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/win32/lib/Win32API.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/Win32API.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,47 +0,0 @@</div><div class='del'>-# -*- ruby -*-</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-# for backward compatibility</div><div class='del'>-warn "Win32API is deprecated after Ruby 1.9.1; use fiddle directly instead", uplevel: 2</div><div class='del'>-</div><div class='del'>-require 'fiddle/import'</div><div class='del'>-</div><div class='del'>-class Win32API</div><div class='del'>-  DLL = {}</div><div class='del'>-  TYPEMAP = {"0" =&gt; Fiddle::TYPE_VOID, "S" =&gt; Fiddle::TYPE_VOIDP, "I" =&gt; Fiddle::TYPE_LONG}</div><div class='del'>-  POINTER_TYPE = Fiddle::SIZEOF_VOIDP == Fiddle::SIZEOF_LONG_LONG ? 'q*' : 'l!*'</div><div class='del'>-</div><div class='del'>-  WIN32_TYPES = "VPpNnLlIi"</div><div class='del'>-  DL_TYPES = "0SSI"</div><div class='del'>-</div><div class='del'>-  def initialize(dllname, func, import, export = "0", calltype = :stdcall)</div><div class='del'>-    @proto = [import].join.tr(WIN32_TYPES, DL_TYPES).sub(/^(.)0*$/, '\1')</div><div class='del'>-    import = @proto.chars.map {|win_type| TYPEMAP[win_type.tr(WIN32_TYPES, DL_TYPES)]}</div><div class='del'>-    export = TYPEMAP[export.tr(WIN32_TYPES, DL_TYPES)]</div><div class='del'>-    calltype = Fiddle::Importer.const_get(:CALL_TYPE_TO_ABI)[calltype]</div><div class='del'>-</div><div class='del'>-    handle = DLL[dllname] ||=</div><div class='del'>-             begin</div><div class='del'>-               Fiddle.dlopen(dllname)</div><div class='del'>-             rescue Fiddle::DLError</div><div class='del'>-               raise unless File.extname(dllname).empty?</div><div class='del'>-               Fiddle.dlopen(dllname + ".dll")</div><div class='del'>-             end</div><div class='del'>-</div><div class='del'>-    @func = Fiddle::Function.new(handle[func], import, export, calltype)</div><div class='del'>-  rescue Fiddle::DLError =&gt; e</div><div class='del'>-    raise LoadError, e.message, e.backtrace</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def call(*args)</div><div class='del'>-    import = @proto.split("")</div><div class='del'>-    args.each_with_index do |x, i|</div><div class='del'>-      args[i], = [x == 0 ? nil : x].pack("p").unpack(POINTER_TYPE) if import[i] == "S"</div><div class='del'>-      args[i], = [x].pack("I").unpack("i") if import[i] == "I"</div><div class='del'>-    end</div><div class='del'>-    ret, = @func.call(*args)</div><div class='del'>-    return ret || 0</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  alias Call call</div><div class='del'>-end</div><div class='head'>diff --git a/ext/win32/lib/win32/importer.rb b/ext/win32/lib/win32/importer.rb<br/>deleted file mode 100644<br/>index 2bef016c29..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/win32/lib/win32/importer.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/win32/importer.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,9 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-require 'fiddle/import'</div><div class='del'>-</div><div class='del'>-module Win32</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-Win32.module_eval do</div><div class='del'>-  Importer = Fiddle::Importer</div><div class='del'>-end</div><div class='head'>diff --git a/ext/win32/lib/win32/registry.rb b/ext/win32/lib/win32/registry.rb<br/>index ea04bb34bf..bda8bb012f 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32/lib/win32/registry.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/win32/registry.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32/lib/win32/registry.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32/lib/win32/registry.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='del'>-require 'win32/importer'</div><div class='add'>+require 'fiddle/import'</div><div class='ctx'> </div><div class='ctx'> module Win32</div><div class='ctx'> </div><div class='hunk'>@@ -69,7 +69,11 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr</div><div class='ctx'>   WCHAR_NUL = "\0".encode(WCHAR).freeze</div><div class='ctx'>   WCHAR_CR = "\r".encode(WCHAR).freeze</div><div class='ctx'>   WCHAR_SIZE = WCHAR_NUL.bytesize</div><div class='del'>-  LOCALE = Encoding.find(Encoding.locale_charmap)</div><div class='add'>+  begin</div><div class='add'>+    LOCALE = Encoding.find(Encoding.locale_charmap)</div><div class='add'>+  rescue ArgumentError</div><div class='add'>+    LOCALE = Encoding::UTF_8</div><div class='add'>+  end</div><div class='ctx'> </div><div class='ctx'>   class Registry</div><div class='ctx'> </div><div class='hunk'>@@ -169,7 +173,7 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr</div><div class='ctx'>     #</div><div class='ctx'>     class Error &lt; ::StandardError</div><div class='ctx'>       module Kernel32</div><div class='del'>-        extend Importer</div><div class='add'>+        extend Fiddle::Importer</div><div class='ctx'>         dlload "kernel32.dll"</div><div class='ctx'>       end</div><div class='ctx'>       FormatMessageW = Kernel32.extern "int FormatMessageW(int, void *, int, int, void *, int, void *)", :stdcall</div><div class='hunk'>@@ -225,7 +229,7 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr</div><div class='ctx'>     #</div><div class='ctx'>     module API</div><div class='ctx'>       include Constants</div><div class='del'>-      extend Importer</div><div class='add'>+      extend Fiddle::Importer</div><div class='ctx'>       dlload "advapi32.dll"</div><div class='ctx'>       [</div><div class='ctx'>         "long RegOpenKeyExW(void *, void *, long, long, void *)",</div><div class='hunk'>@@ -575,9 +579,9 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr</div><div class='ctx'>         begin</div><div class='ctx'>           type, data = read(subkey)</div><div class='ctx'>         rescue Error</div><div class='del'>-          next</div><div class='add'>+        else</div><div class='add'>+          yield subkey, type, data</div><div class='ctx'>         end</div><div class='del'>-        yield subkey, type, data</div><div class='ctx'>         index += 1</div><div class='ctx'>       end</div><div class='ctx'>       index</div><div class='hunk'>@@ -667,14 +671,14 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr</div><div class='ctx'> </div><div class='ctx'>     #</div><div class='ctx'>     # Read a registry value named name and return its value data.</div><div class='del'>-    # The class of value is same as #read method returns.</div><div class='add'>+    # The class of the value is the same as the #read method returns.</div><div class='ctx'>     #</div><div class='ctx'>     # If the value type is REG_EXPAND_SZ, returns value data whose environment</div><div class='ctx'>     # variables are replaced.</div><div class='ctx'>     # If the value type is neither REG_SZ, REG_MULTI_SZ, REG_DWORD,</div><div class='ctx'>     # REG_DWORD_BIG_ENDIAN, nor REG_QWORD, TypeError is raised.</div><div class='ctx'>     #</div><div class='del'>-    # The meaning of rtype is same as #read method.</div><div class='add'>+    # The meaning of rtype is the same as for the #read method.</div><div class='ctx'>     #</div><div class='ctx'>     def [](name, *rtype)</div><div class='ctx'>       type, data = read(name, *rtype)</div><div class='hunk'>@@ -740,14 +744,11 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr</div><div class='ctx'>     # method returns.</div><div class='ctx'>     #</div><div class='ctx'>     def write(name, type, data)</div><div class='del'>-      termsize = 0</div><div class='ctx'>       case type</div><div class='ctx'>       when REG_SZ, REG_EXPAND_SZ</div><div class='del'>-        data = data.encode(WCHAR)</div><div class='del'>-        termsize = WCHAR_SIZE</div><div class='add'>+        data = data.encode(WCHAR) &lt;&lt; WCHAR_NUL</div><div class='ctx'>       when REG_MULTI_SZ</div><div class='ctx'>         data = data.to_a.map {|s| s.encode(WCHAR)}.join(WCHAR_NUL) &lt;&lt; WCHAR_NUL</div><div class='del'>-        termsize = WCHAR_SIZE</div><div class='ctx'>       when REG_BINARY, REG_NONE</div><div class='ctx'>         data = data.to_s</div><div class='ctx'>       when REG_DWORD</div><div class='hunk'>@@ -759,7 +760,7 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr</div><div class='ctx'>       else</div><div class='ctx'>         raise TypeError, "Unsupported type #{Registry.type2name(type)}"</div><div class='ctx'>       end</div><div class='del'>-      API.SetValue(@hkey, name, type, data, data.bytesize + termsize)</div><div class='add'>+      API.SetValue(@hkey, name, type, data, data.bytesize)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     #</div><div class='head'>diff --git a/ext/win32/lib/win32/resolv.rb b/ext/win32/lib/win32/resolv.rb<br/>index 1eb70d5dc6..d06658f0aa 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32/lib/win32/resolv.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/win32/resolv.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32/lib/win32/resolv.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32/lib/win32/resolv.rb</a></div><div class='hunk'>@@ -42,19 +42,6 @@ begin</div><div class='ctx'> rescue LoadError</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-if [nil].pack("p").size &lt;= 4 # 32bit env</div><div class='del'>-  begin</div><div class='del'>-    f = Fiddle</div><div class='del'>-    osid = f::Handle.new["rb_w32_osid"]</div><div class='del'>-  rescue f::DLError # not ix86, cannot be Windows 9x</div><div class='del'>-  else</div><div class='del'>-    if f::Function.new(osid, [], f::TYPE_INT).call &lt; 2  # VER_PLATFORM_WIN32_NT</div><div class='del'>-      require_relative 'resolv9x'</div><div class='del'>-      return</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='ctx'> module Win32</div><div class='ctx'> #====================================================================</div><div class='ctx'> # Windows NT</div><div class='head'>diff --git a/ext/win32/lib/win32/resolv9x.rb b/ext/win32/lib/win32/resolv9x.rb<br/>deleted file mode 100644<br/>index a409d59c0c..0000000000<br/>--- a/<a href='/ruby.git/tree/ext/win32/lib/win32/resolv9x.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/win32/resolv9x.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,253 +0,0 @@</div><div class='del'>-#====================================================================</div><div class='del'>-# Windows 9x</div><div class='del'>-#====================================================================</div><div class='del'>-module Win32</div><div class='del'>-  module Resolv</div><div class='del'>-    TCPIP_9X = 'SYSTEM\CurrentControlSet\Services\VxD\MSTCP'</div><div class='del'>-    DHCP_9X = 'SYSTEM\CurrentControlSet\Services\VxD\DHCP'</div><div class='del'>-    WINDOWS = 'Software\Microsoft\Windows\CurrentVersion'</div><div class='del'>-</div><div class='del'>-    class &lt;&lt; self</div><div class='del'>-   #   private</div><div class='del'>-</div><div class='del'>-      def get_hosts_dir</div><div class='del'>-        Registry::HKEY_LOCAL_MACHINE.open(WINDOWS) do |reg|</div><div class='del'>-          reg.read_s_expand('SystemRoot')</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def get_info</div><div class='del'>-        search = []</div><div class='del'>-        nameserver = []</div><div class='del'>-        begin</div><div class='del'>-          Registry::HKEY_LOCAL_MACHINE.open(TCPIP_9X) do |reg|</div><div class='del'>-            if reg.read_s("EnableDNS") == "1"</div><div class='del'>-              domain = reg.read_s("Domain")</div><div class='del'>-              ns = reg.read_s("NameServer")</div><div class='del'>-              slist = reg.read_s("SearchList")</div><div class='del'>-              search &lt;&lt; domain unless domain.empty?</div><div class='del'>-              search.concat(slist.split(/,\s*/))</div><div class='del'>-              nameserver.concat(ns.split(/[,\s]\s*/))</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        rescue Registry::Error</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        dhcpinfo = get_dhcpinfo</div><div class='del'>-        search.concat(dhcpinfo[0])</div><div class='del'>-        nameserver.concat(dhcpinfo[1])</div><div class='del'>-        [ search, nameserver ]</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def get_dhcpinfo</div><div class='del'>-        macaddrs = {}</div><div class='del'>-        ipaddrs = {}</div><div class='del'>-        WsControl.get_iflist.each do |index, macaddr, *ipaddr|</div><div class='del'>-          macaddrs[macaddr] = 1</div><div class='del'>-          ipaddr.each { |ipaddr| ipaddrs[ipaddr] = 1 }</div><div class='del'>-        end</div><div class='del'>-        iflist = [ macaddrs, ipaddrs ]</div><div class='del'>-</div><div class='del'>-        search = []</div><div class='del'>-        nameserver = []</div><div class='del'>-        version = -1</div><div class='del'>-        Registry::HKEY_LOCAL_MACHINE.open(DHCP_9X) do |reg|</div><div class='del'>-          begin</div><div class='del'>-            version = API.unpackdw(reg.read_bin("Version"))</div><div class='del'>-          rescue Registry::Error</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          reg.each_key do |key, |</div><div class='del'>-            catch(:not_used) do</div><div class='del'>-              reg.open(key) do |regdi|</div><div class='del'>-                dom, ns = get_dhcpinfo_key(version, regdi, iflist)</div><div class='del'>-                search &lt;&lt; dom if dom</div><div class='del'>-                nameserver.concat(ns) if ns</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        [ search, nameserver ]</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def get_dhcpinfo_95(reg)</div><div class='del'>-        dhcp = reg.read_bin("DhcpInfo")</div><div class='del'>-        [</div><div class='del'>-          API.unpackdw(dhcp[4..7]),</div><div class='del'>-          API.unpackdw(dhcp[8..11]),</div><div class='del'>-          1,</div><div class='del'>-          dhcp[45..50],</div><div class='del'>-          reg.read_bin("OptionInfo"),</div><div class='del'>-        ]</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def get_dhcpinfo_98(reg)</div><div class='del'>-        [</div><div class='del'>-          API.unpackdw(reg.read_bin("DhcpIPAddress")),</div><div class='del'>-          API.unpackdw(reg.read_bin("DhcpSubnetMask")),</div><div class='del'>-          API.unpackdw(reg.read_bin("HardwareType")),</div><div class='del'>-          reg.read_bin("HardwareAddress"),</div><div class='del'>-          reg.read_bin("OptionInfo"),</div><div class='del'>-        ]</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def get_dhcpinfo_key(version, reg, iflist)</div><div class='del'>-        info = case version</div><div class='del'>-               when 1</div><div class='del'>-                 get_dhcpinfo_95(reg)</div><div class='del'>-               when 2</div><div class='del'>-                 get_dhcpinfo_98(reg)</div><div class='del'>-               else</div><div class='del'>-                 begin</div><div class='del'>-                   get_dhcpinfo_98(reg)</div><div class='del'>-                 rescue Registry::Error</div><div class='del'>-                   get_dhcpinfo_95(reg)</div><div class='del'>-                 end</div><div class='del'>-               end</div><div class='del'>-        ipaddr, netmask, hwtype, macaddr, opt = info</div><div class='del'>-        throw :not_used unless</div><div class='del'>-          ipaddr and ipaddr != 0 and</div><div class='del'>-          netmask and netmask != 0 and</div><div class='del'>-          macaddr and macaddr.size == 6 and</div><div class='del'>-          hwtype == 1 and</div><div class='del'>-          iflist[0][macaddr] and iflist[1][ipaddr]</div><div class='del'>-</div><div class='del'>-        size = opt.size</div><div class='del'>-        idx = 0</div><div class='del'>-        while idx &lt;= size</div><div class='del'>-          opttype = opt[idx]</div><div class='del'>-          optsize = opt[idx + 1]</div><div class='del'>-          optval  = opt[idx + 2, optsize]</div><div class='del'>-          case opttype</div><div class='del'>-          when 0xFF    ## term</div><div class='del'>-            break</div><div class='del'>-          when 0x0F    ## domain</div><div class='del'>-            domain = optval.chomp("\0")</div><div class='del'>-          when 0x06    ## dns</div><div class='del'>-            nameserver = optval.scan(/..../).collect { |addr|</div><div class='del'>-              "%d.%d.%d.%d" % addr.unpack('C4')</div><div class='del'>-            }</div><div class='del'>-          end</div><div class='del'>-          idx += optsize + 2</div><div class='del'>-        end</div><div class='del'>-        [ domain, nameserver ]</div><div class='del'>-      rescue Registry::Error</div><div class='del'>-        throw :not_used</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    module WsControl</div><div class='del'>-      module WSock32</div><div class='del'>-        extend Importer</div><div class='del'>-        dlload "wsock32.dll"</div><div class='del'>-      end</div><div class='del'>-      WsControl = WSock32.extern "int WsControl(int, int, void *, void *, void *, void *)", :stdcall</div><div class='del'>-      WSAGetLastError = WSock32.extern "int WSAGetLastError(void)", :stdcall</div><div class='del'>-</div><div class='del'>-      MAX_TDI_ENTITIES = 512</div><div class='del'>-      IPPROTO_TCP = 6</div><div class='del'>-      WSCTL_TCP_QUERY_INFORMATION = 0</div><div class='del'>-      INFO_CLASS_GENERIC = 0x100</div><div class='del'>-      INFO_CLASS_PROTOCOL = 0x200</div><div class='del'>-      INFO_TYPE_PROVIDER = 0x100</div><div class='del'>-      ENTITY_LIST_ID = 0</div><div class='del'>-      GENERIC_ENTITY = 0</div><div class='del'>-      CL_NL_ENTITY = 0x301</div><div class='del'>-      IF_ENTITY = 0x200</div><div class='del'>-      ENTITY_TYPE_ID = 1</div><div class='del'>-      CL_NL_IP = 0x303</div><div class='del'>-      IF_MIB = 0x202</div><div class='del'>-      IF_MIB_STATS_ID = 1</div><div class='del'>-      IP_MIB_ADDRTABLE_ENTRY_ID = 0x102</div><div class='del'>-</div><div class='del'>-      def self.wsctl(tei_entity, tei_instance,</div><div class='del'>-                     toi_class, toi_type, toi_id,</div><div class='del'>-                     buffsize)</div><div class='del'>-        reqinfo = [</div><div class='del'>-                  ## TDIEntityID</div><div class='del'>-                    tei_entity, tei_instance,</div><div class='del'>-                  ## TDIObjectID</div><div class='del'>-                    toi_class, toi_type, toi_id,</div><div class='del'>-                  ## TCP_REQUEST_INFORMATION_EX</div><div class='del'>-                    ""</div><div class='del'>-                  ].pack('VVVVVa16')</div><div class='del'>-        reqsize = API.packdw(reqinfo.size)</div><div class='del'>-        buff = "\0" * buffsize</div><div class='del'>-        buffsize = API.packdw(buffsize)</div><div class='del'>-        result = WsControl.call(</div><div class='del'>-                   IPPROTO_TCP,</div><div class='del'>-                   WSCTL_TCP_QUERY_INFORMATION,</div><div class='del'>-                   reqinfo, reqsize,</div><div class='del'>-                   buff, buffsize)</div><div class='del'>-        if result != 0</div><div class='del'>-          raise RuntimeError, "WsControl failed.(#{result})"</div><div class='del'>-        end</div><div class='del'>-        [ buff, API.unpackdw(buffsize) ]</div><div class='del'>-      end</div><div class='del'>-      private_class_method :wsctl</div><div class='del'>-</div><div class='del'>-      def self.get_iflist</div><div class='del'>-        # Get TDI Entity List</div><div class='del'>-        entities, size =</div><div class='del'>-          wsctl(GENERIC_ENTITY, 0,</div><div class='del'>-                INFO_CLASS_GENERIC,</div><div class='del'>-                INFO_TYPE_PROVIDER,</div><div class='del'>-                ENTITY_LIST_ID,</div><div class='del'>-                MAX_TDI_ENTITIES * 8)  # sizeof(TDIEntityID)</div><div class='del'>-        entities = entities[0, size].</div><div class='del'>-                     scan(/.{8}/).</div><div class='del'>-                     collect { |e| e.unpack('VV') }</div><div class='del'>-</div><div class='del'>-        # Get MIB Interface List</div><div class='del'>-        iflist = []</div><div class='del'>-        ifcount = 0</div><div class='del'>-        entities.each do |entity, instance|</div><div class='del'>-          if( (entity &amp; IF_ENTITY)&gt;0 )</div><div class='del'>-            ifcount += 1</div><div class='del'>-            etype, = wsctl(entity, instance,</div><div class='del'>-                           INFO_CLASS_GENERIC,</div><div class='del'>-                           INFO_TYPE_PROVIDER,</div><div class='del'>-                           ENTITY_TYPE_ID,</div><div class='del'>-                           4)</div><div class='del'>-            if( (API.unpackdw(etype) &amp; IF_MIB)==IF_MIB )</div><div class='del'>-              ifentry, = wsctl(entity, instance,</div><div class='del'>-                               INFO_CLASS_PROTOCOL,</div><div class='del'>-                               INFO_TYPE_PROVIDER,</div><div class='del'>-                               IF_MIB_STATS_ID,</div><div class='del'>-                               21 * 4 + 8 + 130)  # sizeof(IFEntry)</div><div class='del'>-              iflist &lt;&lt; [</div><div class='del'>-                API.unpackdw(ifentry[0,4]),</div><div class='del'>-                ifentry[20, 6]</div><div class='del'>-              ]</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # Get IP Addresses</div><div class='del'>-        entities.each do |entity, instance|</div><div class='del'>-          if entity == CL_NL_ENTITY</div><div class='del'>-            etype, = wsctl(entity, instance,</div><div class='del'>-                           INFO_CLASS_GENERIC,</div><div class='del'>-                           INFO_TYPE_PROVIDER,</div><div class='del'>-                           ENTITY_TYPE_ID,</div><div class='del'>-                           4)</div><div class='del'>-            if API.unpackdw(etype) == CL_NL_IP</div><div class='del'>-              ipentries, = wsctl(entity, instance,</div><div class='del'>-                                 INFO_CLASS_PROTOCOL,</div><div class='del'>-                                 INFO_TYPE_PROVIDER,</div><div class='del'>-                                 IP_MIB_ADDRTABLE_ENTRY_ID,</div><div class='del'>-                                 24 * (ifcount+1))  # sizeof(IPAddrEntry)</div><div class='del'>-              ipentries.scan(/.{24}/) do |ipentry|</div><div class='del'>-                ipaddr, index = ipentry.unpack('VV')</div><div class='del'>-                if ifitem = iflist.assoc(index)</div><div class='del'>-                  ifitem &lt;&lt; ipaddr</div><div class='del'>-                end</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        iflist</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/ext/win32/lib/win32/sspi.rb b/ext/win32/lib/win32/sspi.rb<br/>index 8103893d7f..20205fd4d6 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32/lib/win32/sspi.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/lib/win32/sspi.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32/lib/win32/sspi.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32/lib/win32/sspi.rb</a></div><div class='hunk'>@@ -11,321 +11,328 @@</div><div class='ctx'> # Ruby Distribution License or GNU General Public License.</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require 'Win32API'</div><div class='add'>+require 'fiddle/import'</div><div class='ctx'> </div><div class='ctx'> # Implements bindings to Win32 SSPI functions, focused on authentication to a proxy server over HTTP.</div><div class='ctx'> module Win32</div><div class='del'>-	module SSPI</div><div class='del'>-		# Specifies how credential structure requested will be used. Only SECPKG_CRED_OUTBOUND is used</div><div class='del'>-		# here.</div><div class='del'>-		SECPKG_CRED_INBOUND = 0x00000001</div><div class='del'>-		SECPKG_CRED_OUTBOUND = 0x00000002</div><div class='del'>-		SECPKG_CRED_BOTH = 0x00000003</div><div class='del'>-</div><div class='del'>-		# Format of token. NETWORK format is used here.</div><div class='del'>-		SECURITY_NATIVE_DREP = 0x00000010</div><div class='del'>-		SECURITY_NETWORK_DREP = 0x00000000</div><div class='del'>-</div><div class='del'>-		# InitializeSecurityContext Requirement flags</div><div class='del'>-		ISC_REQ_REPLAY_DETECT = 0x00000004</div><div class='del'>-		ISC_REQ_SEQUENCE_DETECT = 0x00000008</div><div class='del'>-		ISC_REQ_CONFIDENTIALITY = 0x00000010</div><div class='del'>-		ISC_REQ_USE_SESSION_KEY = 0x00000020</div><div class='del'>-		ISC_REQ_PROMPT_FOR_CREDS = 0x00000040</div><div class='del'>-		ISC_REQ_CONNECTION = 0x00000800</div><div class='del'>-</div><div class='del'>-		# Win32 API Functions. Uses Win32API to bind methods to constants contained in class.</div><div class='del'>-		module API</div><div class='del'>-			# Can be called with AcquireCredentialsHandle.call()</div><div class='del'>-			AcquireCredentialsHandle = Win32API.new("secur32", "AcquireCredentialsHandle", 'ppLpppppp', 'L')</div><div class='del'>-			# Can be called with InitializeSecurityContext.call()</div><div class='del'>-			InitializeSecurityContext = Win32API.new("secur32", "InitializeSecurityContext", 'pppLLLpLpppp', 'L')</div><div class='del'>-			# Can be called with DeleteSecurityContext.call()</div><div class='del'>-			DeleteSecurityContext = Win32API.new("secur32", "DeleteSecurityContext", 'P', 'L')</div><div class='del'>-			# Can be called with FreeCredentialsHandle.call()</div><div class='del'>-			FreeCredentialsHandle = Win32API.new("secur32", "FreeCredentialsHandle", 'P', 'L')</div><div class='del'>-		end</div><div class='del'>-</div><div class='del'>-		# SecHandle struct</div><div class='del'>-		class SecurityHandle</div><div class='del'>-			def upper</div><div class='del'>-				@struct.unpack("LL")[1]</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			def lower</div><div class='del'>-				@struct.unpack("LL")[0]</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			def to_p</div><div class='del'>-				@struct ||= "\0" * 8</div><div class='del'>-			end</div><div class='del'>-		end</div><div class='del'>-</div><div class='del'>-		# Some familiar aliases for the SecHandle structure</div><div class='del'>-		CredHandle = CtxtHandle = SecurityHandle</div><div class='del'>-</div><div class='del'>-		# TimeStamp struct</div><div class='del'>-		class TimeStamp</div><div class='del'>-			attr_reader :struct</div><div class='del'>-</div><div class='del'>-			def to_p</div><div class='del'>-				@struct ||= "\0" * 8</div><div class='del'>-			end</div><div class='del'>-		end</div><div class='del'>-</div><div class='del'>-		# Creates binary representations of a SecBufferDesc structure,</div><div class='del'>-		# including the SecBuffer contained inside.</div><div class='del'>-		class SecurityBuffer</div><div class='del'>-</div><div class='del'>-			SECBUFFER_TOKEN = 2   # Security token</div><div class='del'>-</div><div class='del'>-			TOKENBUFSIZE = 12288</div><div class='del'>-			SECBUFFER_VERSION = 0</div><div class='del'>-</div><div class='del'>-			def initialize(buffer = nil)</div><div class='del'>-				@buffer = buffer || "\0" * TOKENBUFSIZE</div><div class='del'>-				@bufferSize = @buffer.length</div><div class='del'>-				@type = SECBUFFER_TOKEN</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			def bufferSize</div><div class='del'>-				unpack</div><div class='del'>-				@bufferSize</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			def bufferType</div><div class='del'>-				unpack</div><div class='del'>-				@type</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			def token</div><div class='del'>-				unpack</div><div class='del'>-				@buffer</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			def to_p</div><div class='del'>-				# Assumption is that when to_p is called we are going to get a packed structure. Therefore,</div><div class='del'>-				# set @unpacked back to nil so we know to unpack when accessors are next accessed.</div><div class='del'>-				@unpacked = nil</div><div class='del'>-				# Assignment of inner structure to variable is very important here. Without it,</div><div class='del'>-				# will not be able to unpack changes to the structure. Alternative, nested unpacks,</div><div class='del'>-				# does not work (i.e. @struct.unpack("LLP12")[2].unpack("LLP12") results in "no associated pointer")</div><div class='del'>-				@sec_buffer ||= [@bufferSize, @type, @buffer].pack("LLP")</div><div class='del'>-				@struct ||= [SECBUFFER_VERSION, 1, @sec_buffer].pack("LLP")</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-		private</div><div class='del'>-</div><div class='del'>-			# Unpacks the SecurityBufferDesc structure into member variables. We</div><div class='del'>-			# only want to do this once per struct, so the struct is deleted</div><div class='del'>-			# after unpacking.</div><div class='del'>-			def unpack</div><div class='del'>-				if ! @unpacked &amp;&amp; @sec_buffer &amp;&amp; @struct</div><div class='del'>-					@bufferSize, @type = @sec_buffer.unpack("LL")</div><div class='del'>-					@buffer = @sec_buffer.unpack("LLP#{@bufferSize}")[2]</div><div class='del'>-					@struct = nil</div><div class='del'>-					@sec_buffer = nil</div><div class='del'>-					@unpacked = true</div><div class='del'>-				end</div><div class='del'>-			end</div><div class='del'>-		end</div><div class='del'>-</div><div class='del'>-		# SEC_WINNT_AUTH_IDENTITY structure</div><div class='del'>-		class Identity</div><div class='del'>-			SEC_WINNT_AUTH_IDENTITY_ANSI = 0x1</div><div class='del'>-</div><div class='del'>-			attr_accessor :user, :domain, :password</div><div class='del'>-</div><div class='del'>-			def initialize(user = nil, domain = nil, password = nil)</div><div class='del'>-				@user = user</div><div class='del'>-				@domain = domain</div><div class='del'>-				@password = password</div><div class='del'>-				@flags = SEC_WINNT_AUTH_IDENTITY_ANSI</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			def to_p</div><div class='del'>-				[@user, @user ? @user.length : 0,</div><div class='del'>-				 @domain, @domain ? @domain.length : 0,</div><div class='del'>-				 @password, @password ? @password.length : 0,</div><div class='del'>-				 @flags].pack("PLPLPLL")</div><div class='del'>-			end</div><div class='del'>-		end</div><div class='del'>-</div><div class='del'>-		# Takes a return result from an SSPI function and interprets the value.</div><div class='del'>-		class SSPIResult</div><div class='del'>-			# Good results</div><div class='del'>-			SEC_E_OK = 0x00000000</div><div class='del'>-			SEC_I_CONTINUE_NEEDED = 0x00090312</div><div class='del'>-</div><div class='del'>-			# These are generally returned by InitializeSecurityContext</div><div class='del'>-			SEC_E_INSUFFICIENT_MEMORY = 0x80090300</div><div class='del'>-			SEC_E_INTERNAL_ERROR = 0x80090304</div><div class='del'>-			SEC_E_INVALID_HANDLE = 0x80090301</div><div class='del'>-			SEC_E_INVALID_TOKEN = 0x80090308</div><div class='del'>-			SEC_E_LOGON_DENIED = 0x8009030C</div><div class='del'>-			SEC_E_NO_AUTHENTICATING_AUTHORITY = 0x80090311</div><div class='del'>-			SEC_E_NO_CREDENTIALS = 0x8009030E</div><div class='del'>-			SEC_E_TARGET_UNKNOWN = 0x80090303</div><div class='del'>-			SEC_E_UNSUPPORTED_FUNCTION = 0x80090302</div><div class='del'>-			SEC_E_WRONG_PRINCIPAL = 0x80090322</div><div class='del'>-</div><div class='del'>-			# These are generally returned by AcquireCredentialsHandle</div><div class='del'>-			SEC_E_NOT_OWNER = 0x80090306</div><div class='del'>-			SEC_E_SECPKG_NOT_FOUND = 0x80090305</div><div class='del'>-			SEC_E_UNKNOWN_CREDENTIALS = 0x8009030D</div><div class='del'>-</div><div class='del'>-			@@map = {}</div><div class='del'>-			constants.each { |v| @@map[self.const_get(v.to_s)] = v }</div><div class='del'>-</div><div class='del'>-			attr_reader :value</div><div class='del'>-</div><div class='del'>-			def initialize(value)</div><div class='del'>-				# convert to unsigned long</div><div class='del'>-				value = [value].pack("L").unpack("L").first</div><div class='del'>-				raise "#{value.to_s(16)} is not a recognized result" unless @@map.has_key? value</div><div class='del'>-				@value = value</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			def to_s</div><div class='del'>-				@@map[@value].to_s</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			def ok?</div><div class='del'>-				@value == SEC_I_CONTINUE_NEEDED || @value == SEC_E_OK</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			def ==(other)</div><div class='del'>-				if other.is_a?(SSPIResult)</div><div class='del'>-					@value == other.value</div><div class='del'>-				elsif other.is_a?(Fixnum)</div><div class='del'>-					@value == @@map[other]</div><div class='del'>-				else</div><div class='del'>-					false</div><div class='del'>-				end</div><div class='del'>-			end</div><div class='del'>-		end</div><div class='del'>-</div><div class='del'>-		# Handles "Negotiate" type authentication. Geared towards authenticating with a proxy server over HTTP</div><div class='del'>-		class NegotiateAuth</div><div class='del'>-			attr_accessor :credentials, :context, :contextAttributes, :user, :domain</div><div class='del'>-</div><div class='del'>-			# Default request flags for SSPI functions</div><div class='del'>-			REQUEST_FLAGS = ISC_REQ_CONFIDENTIALITY | ISC_REQ_REPLAY_DETECT | ISC_REQ_CONNECTION</div><div class='del'>-</div><div class='del'>-			# NTLM tokens start with this header always. Encoding alone adds "==" and newline, so remove those</div><div class='add'>+  module SSPI</div><div class='add'>+    # Specifies how credential structure requested will be used. Only SECPKG_CRED_OUTBOUND is used</div><div class='add'>+    # here.</div><div class='add'>+    SECPKG_CRED_INBOUND = 0x00000001</div><div class='add'>+    SECPKG_CRED_OUTBOUND = 0x00000002</div><div class='add'>+    SECPKG_CRED_BOTH = 0x00000003</div><div class='add'>+</div><div class='add'>+    # Format of token. NETWORK format is used here.</div><div class='add'>+    SECURITY_NATIVE_DREP = 0x00000010</div><div class='add'>+    SECURITY_NETWORK_DREP = 0x00000000</div><div class='add'>+</div><div class='add'>+    # InitializeSecurityContext Requirement flags</div><div class='add'>+    ISC_REQ_REPLAY_DETECT = 0x00000004</div><div class='add'>+    ISC_REQ_SEQUENCE_DETECT = 0x00000008</div><div class='add'>+    ISC_REQ_CONFIDENTIALITY = 0x00000010</div><div class='add'>+    ISC_REQ_USE_SESSION_KEY = 0x00000020</div><div class='add'>+    ISC_REQ_PROMPT_FOR_CREDS = 0x00000040</div><div class='add'>+    ISC_REQ_CONNECTION = 0x00000800</div><div class='add'>+</div><div class='add'>+    # Win32 API Functions. Uses Win32API to bind methods to constants contained in class.</div><div class='add'>+    module API</div><div class='add'>+      extend Fiddle::Importer</div><div class='add'>+      dlload "secur32.dll"</div><div class='add'>+      [</div><div class='add'>+        # Can be called with AcquireCredentialsHandleA.call()</div><div class='add'>+        "unsigned long AcquireCredentialsHandleA(void *, void *, unsigned long, void *, void *, void *, void *, void *, void *)",</div><div class='add'>+        # Can be called with InitializeSecurityContextA.call()</div><div class='add'>+        "unsigned long InitializeSecurityContextA(void *, void *, void *, unsigned long, unsigned long, unsigned long, void *, unsigned long, void *, void *, void *, void *)",</div><div class='add'>+        # Can be called with DeleteSecurityContext.call()</div><div class='add'>+        "unsigned long DeleteSecurityContext(void *)",</div><div class='add'>+        # Can be called with FreeCredentialsHandle.call()</div><div class='add'>+        "unsigned long FreeCredentialsHandle(void *)"</div><div class='add'>+      ].each do |fn|</div><div class='add'>+        cfunc = extern fn, :stdcall</div><div class='add'>+        const_set cfunc.name.intern, cfunc</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # SecHandle struct</div><div class='add'>+    class SecurityHandle</div><div class='add'>+      def upper</div><div class='add'>+        @struct.unpack("LL")[1]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def lower</div><div class='add'>+        @struct.unpack("LL")[0]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def to_p</div><div class='add'>+        @struct ||= "\0" * 8</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Some familiar aliases for the SecHandle structure</div><div class='add'>+    CredHandle = CtxtHandle = SecurityHandle</div><div class='add'>+</div><div class='add'>+    # TimeStamp struct</div><div class='add'>+    class TimeStamp</div><div class='add'>+      attr_reader :struct</div><div class='add'>+</div><div class='add'>+      def to_p</div><div class='add'>+        @struct ||= "\0" * 8</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Creates binary representations of a SecBufferDesc structure,</div><div class='add'>+    # including the SecBuffer contained inside.</div><div class='add'>+    class SecurityBuffer</div><div class='add'>+</div><div class='add'>+      SECBUFFER_TOKEN = 2   # Security token</div><div class='add'>+</div><div class='add'>+      TOKENBUFSIZE = 12288</div><div class='add'>+      SECBUFFER_VERSION = 0</div><div class='add'>+</div><div class='add'>+      def initialize(buffer = nil)</div><div class='add'>+        @buffer = buffer || "\0" * TOKENBUFSIZE</div><div class='add'>+        @bufferSize = @buffer.length</div><div class='add'>+        @type = SECBUFFER_TOKEN</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def bufferSize</div><div class='add'>+        unpack</div><div class='add'>+        @bufferSize</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def bufferType</div><div class='add'>+        unpack</div><div class='add'>+        @type</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def token</div><div class='add'>+        unpack</div><div class='add'>+        @buffer</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def to_p</div><div class='add'>+        # Assumption is that when to_p is called we are going to get a packed structure. Therefore,</div><div class='add'>+        # set @unpacked back to nil so we know to unpack when accessors are next accessed.</div><div class='add'>+        @unpacked = nil</div><div class='add'>+        # Assignment of inner structure to variable is very important here. Without it,</div><div class='add'>+        # will not be able to unpack changes to the structure. Alternative, nested unpacks,</div><div class='add'>+        # does not work (i.e. @struct.unpack("LLP12")[2].unpack("LLP12") results in "no associated pointer")</div><div class='add'>+        @sec_buffer ||= [@bufferSize, @type, @buffer].pack("LLP")</div><div class='add'>+        @struct ||= [SECBUFFER_VERSION, 1, @sec_buffer].pack("LLP")</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+      # Unpacks the SecurityBufferDesc structure into member variables. We</div><div class='add'>+      # only want to do this once per struct, so the struct is deleted</div><div class='add'>+      # after unpacking.</div><div class='add'>+      def unpack</div><div class='add'>+        if ! @unpacked &amp;&amp; @sec_buffer &amp;&amp; @struct</div><div class='add'>+          @bufferSize, @type = @sec_buffer.unpack("LL")</div><div class='add'>+          @buffer = @sec_buffer.unpack("LLP#{@bufferSize}")[2]</div><div class='add'>+          @struct = nil</div><div class='add'>+          @sec_buffer = nil</div><div class='add'>+          @unpacked = true</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # SEC_WINNT_AUTH_IDENTITY structure</div><div class='add'>+    class Identity</div><div class='add'>+      SEC_WINNT_AUTH_IDENTITY_ANSI = 0x1</div><div class='add'>+</div><div class='add'>+      attr_accessor :user, :domain, :password</div><div class='add'>+</div><div class='add'>+      def initialize(user = nil, domain = nil, password = nil)</div><div class='add'>+        @user = user</div><div class='add'>+        @domain = domain</div><div class='add'>+        @password = password</div><div class='add'>+        @flags = SEC_WINNT_AUTH_IDENTITY_ANSI</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def to_p</div><div class='add'>+        [@user, @user ? @user.length : 0,</div><div class='add'>+         @domain, @domain ? @domain.length : 0,</div><div class='add'>+         @password, @password ? @password.length : 0,</div><div class='add'>+         @flags].pack("PLPLPLL")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Takes a return result from an SSPI function and interprets the value.</div><div class='add'>+    class SSPIResult</div><div class='add'>+      # Good results</div><div class='add'>+      SEC_E_OK = 0x00000000</div><div class='add'>+      SEC_I_CONTINUE_NEEDED = 0x00090312</div><div class='add'>+</div><div class='add'>+      # These are generally returned by InitializeSecurityContext</div><div class='add'>+      SEC_E_INSUFFICIENT_MEMORY = 0x80090300</div><div class='add'>+      SEC_E_INTERNAL_ERROR = 0x80090304</div><div class='add'>+      SEC_E_INVALID_HANDLE = 0x80090301</div><div class='add'>+      SEC_E_INVALID_TOKEN = 0x80090308</div><div class='add'>+      SEC_E_LOGON_DENIED = 0x8009030C</div><div class='add'>+      SEC_E_NO_AUTHENTICATING_AUTHORITY = 0x80090311</div><div class='add'>+      SEC_E_NO_CREDENTIALS = 0x8009030E</div><div class='add'>+      SEC_E_TARGET_UNKNOWN = 0x80090303</div><div class='add'>+      SEC_E_UNSUPPORTED_FUNCTION = 0x80090302</div><div class='add'>+      SEC_E_WRONG_PRINCIPAL = 0x80090322</div><div class='add'>+</div><div class='add'>+      # These are generally returned by AcquireCredentialsHandle</div><div class='add'>+      SEC_E_NOT_OWNER = 0x80090306</div><div class='add'>+      SEC_E_SECPKG_NOT_FOUND = 0x80090305</div><div class='add'>+      SEC_E_UNKNOWN_CREDENTIALS = 0x8009030D</div><div class='add'>+</div><div class='add'>+      @@map = {}</div><div class='add'>+      constants.each { |v| @@map[self.const_get(v.to_s)] = v }</div><div class='add'>+</div><div class='add'>+      attr_reader :value</div><div class='add'>+</div><div class='add'>+      def initialize(value)</div><div class='add'>+        # convert to unsigned long</div><div class='add'>+        value = [value].pack("L").unpack("L").first</div><div class='add'>+        raise "#{value.to_s(16)} is not a recognized result" unless @@map.has_key? value</div><div class='add'>+        @value = value</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def to_s</div><div class='add'>+        @@map[@value].to_s</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def ok?</div><div class='add'>+        @value == SEC_I_CONTINUE_NEEDED || @value == SEC_E_OK</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def ==(other)</div><div class='add'>+        if other.is_a?(SSPIResult)</div><div class='add'>+          @value == other.value</div><div class='add'>+        elsif other.is_a?(Fixnum)</div><div class='add'>+          @value == @@map[other]</div><div class='add'>+        else</div><div class='add'>+          false</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Handles "Negotiate" type authentication. Geared towards authenticating with a proxy server over HTTP</div><div class='add'>+    class NegotiateAuth</div><div class='add'>+      attr_accessor :credentials, :context, :contextAttributes, :user, :domain</div><div class='add'>+</div><div class='add'>+      # Default request flags for SSPI functions</div><div class='add'>+      REQUEST_FLAGS = ISC_REQ_CONFIDENTIALITY | ISC_REQ_REPLAY_DETECT | ISC_REQ_CONNECTION</div><div class='add'>+</div><div class='add'>+      # NTLM tokens start with this header always. Encoding alone adds "==" and newline, so remove those</div><div class='ctx'>       B64_TOKEN_PREFIX = ["NTLMSSP"].pack("m").delete("=\n")</div><div class='ctx'> </div><div class='del'>-			# Given a connection and a request path, performs authentication as the current user and returns</div><div class='del'>-			# the response from a GET request. The connnection should be a Net::HTTP object, and it should</div><div class='del'>-			# have been constructed using the Net::HTTP.Proxy method, but anything that responds to "get" will work.</div><div class='del'>-			# If a user and domain are given, will authenticate as the given user.</div><div class='del'>-			# Returns the response received from the get method (usually Net::HTTPResponse)</div><div class='del'>-			def NegotiateAuth.proxy_auth_get(http, path, user = nil, domain = nil)</div><div class='del'>-				raise "http must respond to :get" unless http.respond_to?(:get)</div><div class='del'>-				nego_auth = self.new user, domain</div><div class='del'>-</div><div class='del'>-				resp = http.get path, { "Proxy-Authorization" =&gt; "Negotiate " + nego_auth.get_initial_token }</div><div class='del'>-				if resp["Proxy-Authenticate"]</div><div class='del'>-					resp = http.get path, { "Proxy-Authorization" =&gt; "Negotiate " + nego_auth.complete_authentication(resp["Proxy-Authenticate"].split(" ").last.strip) }</div><div class='del'>-				end</div><div class='del'>-</div><div class='del'>-				resp</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			# Creates a new instance ready for authentication as the given user in the given domain.</div><div class='del'>-			# Defaults to current user and domain as defined by ENV["USERDOMAIN"] and ENV["USERNAME"] if</div><div class='del'>-			# no arguments are supplied.</div><div class='del'>-			def initialize(user = nil, domain = nil)</div><div class='del'>-				if user.nil? &amp;&amp; domain.nil? &amp;&amp; ENV["USERNAME"].nil? &amp;&amp; ENV["USERDOMAIN"].nil?</div><div class='del'>-					raise "A username or domain must be supplied since they cannot be retrieved from the environment"</div><div class='del'>-				end</div><div class='del'>-</div><div class='del'>-				@user = user || ENV["USERNAME"]</div><div class='del'>-				@domain = domain || ENV["USERDOMAIN"]</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			# Gets the initial Negotiate token. Returns it as a base64 encoded string suitable for use in HTTP. Can</div><div class='del'>-			# be easily decoded, however.</div><div class='del'>-			def get_initial_token</div><div class='del'>-				raise "This object is no longer usable because its resources have been freed." if @cleaned_up</div><div class='del'>-				get_credentials</div><div class='del'>-</div><div class='del'>-				outputBuffer = SecurityBuffer.new</div><div class='del'>-				@context = CtxtHandle.new</div><div class='del'>-				@contextAttributes = "\0" * 4</div><div class='del'>-</div><div class='del'>-				result = SSPIResult.new(API::InitializeSecurityContext.call(@credentials.to_p, nil, nil,</div><div class='del'>-					REQUEST_FLAGS,0, SECURITY_NETWORK_DREP, nil, 0, @context.to_p, outputBuffer.to_p, @contextAttributes, TimeStamp.new.to_p))</div><div class='del'>-</div><div class='del'>-				if result.ok? then</div><div class='del'>-					return encode_token(outputBuffer.token)</div><div class='del'>-				else</div><div class='del'>-					raise "Error: #{result.to_s}"</div><div class='del'>-				end</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			# Takes a token and gets the next token in the Negotiate authentication chain. Token can be Base64 encoded or not.</div><div class='del'>-			# The token can include the "Negotiate" header and it will be stripped.</div><div class='del'>-			# Does not indicate if SEC_I_CONTINUE or SEC_E_OK was returned.</div><div class='del'>-			# Token returned is Base64 encoded w/ all new lines removed.</div><div class='del'>-			def complete_authentication(token)</div><div class='del'>-				raise "This object is no longer usable because its resources have been freed." if @cleaned_up</div><div class='del'>-</div><div class='del'>-				# Nil token OK, just set it to empty string</div><div class='del'>-				token = "" if token.nil?</div><div class='del'>-</div><div class='del'>-				if token.include? "Negotiate"</div><div class='del'>-					# If the Negotiate prefix is passed in, assume we are seeing "Negotiate &lt;token&gt;" and get the token.</div><div class='del'>-					token = token.split(" ").last</div><div class='del'>-				end</div><div class='del'>-</div><div class='del'>-				if token.include? B64_TOKEN_PREFIX</div><div class='del'>-					# indicates base64 encoded token</div><div class='add'>+      # Given a connection and a request path, performs authentication as the current user and returns</div><div class='add'>+      # the response from a GET request. The connection should be a Net::HTTP object, and it should</div><div class='add'>+      # have been constructed using the Net::HTTP.Proxy method, but anything that responds to "get" will work.</div><div class='add'>+      # If a user and domain are given, will authenticate as the given user.</div><div class='add'>+      # Returns the response received from the get method (usually Net::HTTPResponse)</div><div class='add'>+      def NegotiateAuth.proxy_auth_get(http, path, user = nil, domain = nil)</div><div class='add'>+        raise "http must respond to :get" unless http.respond_to?(:get)</div><div class='add'>+        nego_auth = self.new user, domain</div><div class='add'>+</div><div class='add'>+        resp = http.get path, { "Proxy-Authorization" =&gt; "Negotiate " + nego_auth.get_initial_token }</div><div class='add'>+        if resp["Proxy-Authenticate"]</div><div class='add'>+          resp = http.get path, { "Proxy-Authorization" =&gt; "Negotiate " + nego_auth.complete_authentication(resp["Proxy-Authenticate"].split(" ").last.strip) }</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        resp</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Creates a new instance ready for authentication as the given user in the given domain.</div><div class='add'>+      # Defaults to current user and domain as defined by ENV["USERDOMAIN"] and ENV["USERNAME"] if</div><div class='add'>+      # no arguments are supplied.</div><div class='add'>+      def initialize(user = nil, domain = nil)</div><div class='add'>+        if user.nil? &amp;&amp; domain.nil? &amp;&amp; ENV["USERNAME"].nil? &amp;&amp; ENV["USERDOMAIN"].nil?</div><div class='add'>+          raise "A username or domain must be supplied since they cannot be retrieved from the environment"</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        @user = user || ENV["USERNAME"]</div><div class='add'>+        @domain = domain || ENV["USERDOMAIN"]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Gets the initial Negotiate token. Returns it as a base64 encoded string suitable for use in HTTP. Can</div><div class='add'>+      # be easily decoded, however.</div><div class='add'>+      def get_initial_token</div><div class='add'>+        raise "This object is no longer usable because its resources have been freed." if @cleaned_up</div><div class='add'>+        get_credentials</div><div class='add'>+</div><div class='add'>+        outputBuffer = SecurityBuffer.new</div><div class='add'>+        @context = CtxtHandle.new</div><div class='add'>+        @contextAttributes = "\0" * 4</div><div class='add'>+</div><div class='add'>+        result = SSPIResult.new(API::InitializeSecurityContextA.call(@credentials.to_p, nil, nil,</div><div class='add'>+          REQUEST_FLAGS,0, SECURITY_NETWORK_DREP, nil, 0, @context.to_p, outputBuffer.to_p, @contextAttributes, TimeStamp.new.to_p))</div><div class='add'>+</div><div class='add'>+        if result.ok? then</div><div class='add'>+          return encode_token(outputBuffer.token)</div><div class='add'>+        else</div><div class='add'>+          raise "Error: #{result.to_s}"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Takes a token and gets the next token in the Negotiate authentication chain. Token can be Base64 encoded or not.</div><div class='add'>+      # The token can include the "Negotiate" header and it will be stripped.</div><div class='add'>+      # Does not indicate if SEC_I_CONTINUE or SEC_E_OK was returned.</div><div class='add'>+      # Token returned is Base64 encoded w/ all new lines removed.</div><div class='add'>+      def complete_authentication(token)</div><div class='add'>+        raise "This object is no longer usable because its resources have been freed." if @cleaned_up</div><div class='add'>+</div><div class='add'>+        # Nil token OK, just set it to empty string</div><div class='add'>+        token = "" if token.nil?</div><div class='add'>+</div><div class='add'>+        if token.include? "Negotiate"</div><div class='add'>+          # If the Negotiate prefix is passed in, assume we are seeing "Negotiate &lt;token&gt;" and get the token.</div><div class='add'>+          token = token.split(" ").last</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        if token.include? B64_TOKEN_PREFIX</div><div class='add'>+          # indicates base64 encoded token</div><div class='ctx'>           token = token.strip.unpack("m")[0]</div><div class='del'>-				end</div><div class='del'>-</div><div class='del'>-				outputBuffer = SecurityBuffer.new</div><div class='del'>-				result = SSPIResult.new(API::InitializeSecurityContext.call(@credentials.to_p, @context.to_p, nil,</div><div class='del'>-					REQUEST_FLAGS, 0, SECURITY_NETWORK_DREP, SecurityBuffer.new(token).to_p, 0,</div><div class='del'>-					@context.to_p,</div><div class='del'>-					outputBuffer.to_p, @contextAttributes, TimeStamp.new.to_p))</div><div class='del'>-</div><div class='del'>-				if result.ok? then</div><div class='del'>-					return encode_token(outputBuffer.token)</div><div class='del'>-				else</div><div class='del'>-					raise "Error: #{result.to_s}"</div><div class='del'>-				end</div><div class='del'>-			ensure</div><div class='del'>-				# need to make sure we don't clean up if we've already cleaned up.</div><div class='del'>-				clean_up unless @cleaned_up</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-		 private</div><div class='del'>-</div><div class='del'>-			def clean_up</div><div class='del'>-				# free structures allocated</div><div class='del'>-				@cleaned_up = true</div><div class='del'>-				API::FreeCredentialsHandle.call(@credentials.to_p)</div><div class='del'>-				API::DeleteSecurityContext.call(@context.to_p)</div><div class='del'>-				@context = nil</div><div class='del'>-				@credentials = nil</div><div class='del'>-				@contextAttributes = nil</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			# Gets credentials based on user, domain or both. If both are nil, an error occurs</div><div class='del'>-			def get_credentials</div><div class='del'>-				@credentials = CredHandle.new</div><div class='del'>-				ts = TimeStamp.new</div><div class='del'>-				@identity = Identity.new @user, @domain</div><div class='del'>-				result = SSPIResult.new(API::AcquireCredentialsHandle.call(nil, "Negotiate", SECPKG_CRED_OUTBOUND, nil, @identity.to_p,</div><div class='del'>-					nil, nil, @credentials.to_p, ts.to_p))</div><div class='del'>-				raise "Error acquire credentials: #{result}" unless result.ok?</div><div class='del'>-			end</div><div class='del'>-</div><div class='del'>-			def encode_token(t)</div><div class='del'>-				# encode64 will add newlines every 60 characters so we need to remove those.</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        outputBuffer = SecurityBuffer.new</div><div class='add'>+        result = SSPIResult.new(API::InitializeSecurityContext.call(@credentials.to_p, @context.to_p, nil,</div><div class='add'>+          REQUEST_FLAGS, 0, SECURITY_NETWORK_DREP, SecurityBuffer.new(token).to_p, 0,</div><div class='add'>+          @context.to_p,</div><div class='add'>+          outputBuffer.to_p, @contextAttributes, TimeStamp.new.to_p))</div><div class='add'>+</div><div class='add'>+        if result.ok? then</div><div class='add'>+          return encode_token(outputBuffer.token)</div><div class='add'>+        else</div><div class='add'>+          raise "Error: #{result.to_s}"</div><div class='add'>+        end</div><div class='add'>+      ensure</div><div class='add'>+        # need to make sure we don't clean up if we've already cleaned up.</div><div class='add'>+        clean_up unless @cleaned_up</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+     private</div><div class='add'>+</div><div class='add'>+      def clean_up</div><div class='add'>+        # free structures allocated</div><div class='add'>+        @cleaned_up = true</div><div class='add'>+        API::FreeCredentialsHandle.call(@credentials.to_p)</div><div class='add'>+        API::DeleteSecurityContext.call(@context.to_p)</div><div class='add'>+        @context = nil</div><div class='add'>+        @credentials = nil</div><div class='add'>+        @contextAttributes = nil</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Gets credentials based on user, domain or both. If both are nil, an error occurs</div><div class='add'>+      def get_credentials</div><div class='add'>+        @credentials = CredHandle.new</div><div class='add'>+        ts = TimeStamp.new</div><div class='add'>+        @identity = Identity.new @user, @domain</div><div class='add'>+        result = SSPIResult.new(API::AcquireCredentialsHandleA.call(nil, "Negotiate", SECPKG_CRED_OUTBOUND, nil, @identity.to_p,</div><div class='add'>+          nil, nil, @credentials.to_p, ts.to_p))</div><div class='add'>+        raise "Error acquire credentials: #{result}" unless result.ok?</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def encode_token(t)</div><div class='add'>+        # encode64 will add newlines every 60 characters so we need to remove those.</div><div class='ctx'>         [t].pack("m").delete("\n")</div><div class='del'>-			end</div><div class='del'>-		end</div><div class='del'>-	end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='head'>diff --git a/ext/win32/resolv/depend b/ext/win32/resolv/depend<br/>new file mode 100644<br/>index 0000000000..a6d24c3738<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/win32/resolv/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32/resolv/depend</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+# AUTOGENERATED DEPENDENCIES START</div><div class='add'>+resolv.o: $(RUBY_EXTCONF_H)</div><div class='add'>+resolv.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby/assert.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby/defines.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby/encoding.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby/missing.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby/onigmo.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby/oniguruma.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby/ruby.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby/st.h</div><div class='add'>+resolv.o: $(hdrdir)/ruby/subst.h</div><div class='add'>+resolv.o: resolv.c</div><div class='add'>+# AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/win32/resolv/resolv.c b/ext/win32/resolv/resolv.c<br/>index f19243ccc1..8a50ef7824 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32/resolv/resolv.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32/resolv/resolv.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32/resolv/resolv.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32/resolv/resolv.c</a></div><div class='hunk'>@@ -29,19 +29,19 @@ get_dns_server_list(VALUE self)</div><div class='ctx'> </div><div class='ctx'>     ret = GetNetworkParams(NULL, &amp;buflen);</div><div class='ctx'>     if (ret != NO_ERROR &amp;&amp; ret != ERROR_BUFFER_OVERFLOW) {</div><div class='del'>-	w32error_raise(ret);</div><div class='add'>+        w32error_raise(ret);</div><div class='ctx'>     }</div><div class='ctx'>     fixedinfo = ALLOCV(buf, buflen);</div><div class='ctx'>     ret = GetNetworkParams(fixedinfo, &amp;buflen);</div><div class='ctx'>     if (ret == NO_ERROR) {</div><div class='del'>-	const IP_ADDR_STRING *ipaddr = &amp;fixedinfo-&gt;DnsServerList;</div><div class='del'>-	nameservers = rb_ary_new();</div><div class='del'>-	do {</div><div class='del'>-	    const char *s = ipaddr-&gt;IpAddress.String;</div><div class='del'>-	    if (!*s) continue;</div><div class='del'>-	    if (strcmp(s, "0.0.0.0") == 0) continue;</div><div class='del'>-	    rb_ary_push(nameservers, rb_str_new_cstr(s));</div><div class='del'>-	} while ((ipaddr = ipaddr-&gt;Next) != NULL);</div><div class='add'>+        const IP_ADDR_STRING *ipaddr = &amp;fixedinfo-&gt;DnsServerList;</div><div class='add'>+        nameservers = rb_ary_new();</div><div class='add'>+        do {</div><div class='add'>+            const char *s = ipaddr-&gt;IpAddress.String;</div><div class='add'>+            if (!*s) continue;</div><div class='add'>+            if (strcmp(s, "0.0.0.0") == 0) continue;</div><div class='add'>+            rb_ary_push(nameservers, rb_str_new_cstr(s));</div><div class='add'>+        } while ((ipaddr = ipaddr-&gt;Next) != NULL);</div><div class='ctx'>     }</div><div class='ctx'>     ALLOCV_END(buf);</div><div class='ctx'>     if (ret != NO_ERROR) w32error_raise(ret);</div><div class='head'>diff --git a/ext/win32ole/sample/xml.rb b/ext/win32ole/sample/xml.rb<br/>index 36c3db32ef..5a239c9336 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/sample/xml.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/sample/xml.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/sample/xml.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/sample/xml.rb</a></div><div class='hunk'>@@ -1032,8 +1032,8 @@ module IXMLDOMDocument</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # VOID save</div><div class='del'>-  # save the document to a specified desination</div><div class='del'>-  #   VARIANT arg0 --- desination [IN]</div><div class='add'>+  # save the document to a specified destination</div><div class='add'>+  #   VARIANT arg0 --- destination [IN]</div><div class='ctx'>   def save(arg0)</div><div class='ctx'>     ret = _invoke(64, [arg0], [VT_VARIANT])</div><div class='ctx'>     @lastargs = WIN32OLE::ARGV</div><div class='hunk'>@@ -6224,8 +6224,8 @@ class Microsoft_XMLDOM_1_0 # DOMDocument</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # VOID save</div><div class='del'>-  # save the document to a specified desination</div><div class='del'>-  #   VARIANT arg0 --- desination [IN]</div><div class='add'>+  # save the document to a specified destination</div><div class='add'>+  #   VARIANT arg0 --- destination [IN]</div><div class='ctx'>   def save(arg0)</div><div class='ctx'>     ret = @dispatch._invoke(64, [arg0], [VT_VARIANT])</div><div class='ctx'>     @lastargs = WIN32OLE::ARGV</div><div class='hunk'>@@ -6831,8 +6831,8 @@ class Microsoft_FreeThreadedXMLDOM_1_0 # DOMFreeThreadedDocument</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # VOID save</div><div class='del'>-  # save the document to a specified desination</div><div class='del'>-  #   VARIANT arg0 --- desination [IN]</div><div class='add'>+  # save the document to a specified destination</div><div class='add'>+  #   VARIANT arg0 --- destination [IN]</div><div class='ctx'>   def save(arg0)</div><div class='ctx'>     ret = @dispatch._invoke(64, [arg0], [VT_VARIANT])</div><div class='ctx'>     @lastargs = WIN32OLE::ARGV</div><div class='head'>diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c<br/>index c46d3937c3..3f083bb12d 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole.c</a></div><div class='hunk'>@@ -454,12 +454,12 @@ vtdate2rbtime(double date)</div><div class='ctx'>     double sec;</div><div class='ctx'>     VariantTimeToSystemTime(date, &amp;st);</div><div class='ctx'>     v = rb_funcall(rb_cTime, rb_intern("new"), 6,</div><div class='del'>-		      RB_INT2FIX(st.wYear),</div><div class='del'>-		      RB_INT2FIX(st.wMonth),</div><div class='del'>-		      RB_INT2FIX(st.wDay),</div><div class='del'>-		      RB_INT2FIX(st.wHour),</div><div class='del'>-		      RB_INT2FIX(st.wMinute),</div><div class='del'>-		      RB_INT2FIX(st.wSecond));</div><div class='add'>+                      RB_INT2FIX(st.wYear),</div><div class='add'>+                      RB_INT2FIX(st.wMonth),</div><div class='add'>+                      RB_INT2FIX(st.wDay),</div><div class='add'>+                      RB_INT2FIX(st.wHour),</div><div class='add'>+                      RB_INT2FIX(st.wMinute),</div><div class='add'>+                      RB_INT2FIX(st.wSecond));</div><div class='ctx'>     st.wYear = RB_FIX2INT(rb_funcall(v, rb_intern("year"), 0));</div><div class='ctx'>     st.wMonth = RB_FIX2INT(rb_funcall(v, rb_intern("month"), 0));</div><div class='ctx'>     st.wDay = RB_FIX2INT(rb_funcall(v, rb_intern("mday"), 0));</div><div class='hunk'>@@ -507,6 +507,7 @@ static UINT ole_encoding2cp(rb_encoding *enc)</div><div class='ctx'>     ENC_MACHING_CP(enc, "GB2312", 20936);</div><div class='ctx'>     ENC_MACHING_CP(enc, "GBK", 936);</div><div class='ctx'>     ENC_MACHING_CP(enc, "IBM437", 437);</div><div class='add'>+    ENC_MACHING_CP(enc, "IBM720", 720);</div><div class='ctx'>     ENC_MACHING_CP(enc, "IBM737", 737);</div><div class='ctx'>     ENC_MACHING_CP(enc, "IBM775", 775);</div><div class='ctx'>     ENC_MACHING_CP(enc, "IBM852", 852);</div><div class='hunk'>@@ -567,16 +568,16 @@ load_conv_function51932(void)</div><div class='ctx'>     void *p;</div><div class='ctx'>     if (!pIMultiLanguage) {</div><div class='ctx'> #if defined(HAVE_TYPE_IMULTILANGUAGE2)</div><div class='del'>-	hr = CoCreateInstance(&amp;CLSID_CMultiLanguage, NULL, CLSCTX_INPROC_SERVER,</div><div class='del'>-		              &amp;IID_IMultiLanguage2, &amp;p);</div><div class='add'>+        hr = CoCreateInstance(&amp;CLSID_CMultiLanguage, NULL, CLSCTX_INPROC_SERVER,</div><div class='add'>+                              &amp;IID_IMultiLanguage2, &amp;p);</div><div class='ctx'> #elif defined(HAVE_TYPE_IMULTILANGUAGE)</div><div class='del'>-	hr = CoCreateInstance(&amp;CLSID_CMultiLanguage, NULL, CLSCTX_INPROC_SERVER,</div><div class='del'>-		              &amp;IID_IMultiLanguage, &amp;p);</div><div class='add'>+        hr = CoCreateInstance(&amp;CLSID_CMultiLanguage, NULL, CLSCTX_INPROC_SERVER,</div><div class='add'>+                              &amp;IID_IMultiLanguage, &amp;p);</div><div class='ctx'> #endif</div><div class='del'>-	if (FAILED(hr)) {</div><div class='del'>-	    failed_load_conv51932();</div><div class='del'>-	}</div><div class='del'>-	pIMultiLanguage = p;</div><div class='add'>+        if (FAILED(hr)) {</div><div class='add'>+            failed_load_conv51932();</div><div class='add'>+        }</div><div class='add'>+        pIMultiLanguage = p;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #define need_conv_function51932() (load_conv_function51932(), 1)</div><div class='hunk'>@@ -623,7 +624,7 @@ ole_init_cp(void)</div><div class='ctx'>     rb_encoding *encdef;</div><div class='ctx'>     encdef = rb_default_internal_encoding();</div><div class='ctx'>     if (!encdef) {</div><div class='del'>-	encdef = rb_default_external_encoding();</div><div class='add'>+        encdef = rb_default_external_encoding();</div><div class='ctx'>     }</div><div class='ctx'>     cp = ole_encoding2cp(encdef);</div><div class='ctx'>     set_ole_codepage(cp);</div><div class='hunk'>@@ -649,38 +650,38 @@ ole_cp2encoding(UINT cp)</div><div class='ctx'>     int idx;</div><div class='ctx'> </div><div class='ctx'>     if (!code_page_installed(cp)) {</div><div class='del'>-	switch(cp) {</div><div class='del'>-	  case CP_ACP:</div><div class='del'>-	    cp = GetACP();</div><div class='del'>-	    break;</div><div class='del'>-	  case CP_OEMCP:</div><div class='del'>-	    cp = GetOEMCP();</div><div class='del'>-	    break;</div><div class='del'>-	  case CP_MACCP:</div><div class='del'>-	  case CP_THREAD_ACP:</div><div class='del'>-	    if (!pGetCPInfoEx) {</div><div class='del'>-		pGetCPInfoEx = (BOOL (*)(UINT, DWORD, struct myCPINFOEX *))</div><div class='del'>-		    GetProcAddress(GetModuleHandle("kernel32"), "GetCPInfoEx");</div><div class='del'>-		if (!pGetCPInfoEx) {</div><div class='del'>-		    pGetCPInfoEx = (void*)-1;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    buf = ALLOCA_N(struct myCPINFOEX, 1);</div><div class='del'>-	    ZeroMemory(buf, sizeof(struct myCPINFOEX));</div><div class='del'>-	    if (pGetCPInfoEx == (void*)-1 || !pGetCPInfoEx(cp, 0, buf)) {</div><div class='del'>-		rb_raise(eWIN32OLERuntimeError, "cannot map codepage to encoding.");</div><div class='del'>-		break;	/* never reach here */</div><div class='del'>-	    }</div><div class='del'>-	    cp = buf-&gt;CodePage;</div><div class='del'>-	    break;</div><div class='del'>-	  case CP_SYMBOL:</div><div class='del'>-	  case CP_UTF7:</div><div class='del'>-	  case CP_UTF8:</div><div class='del'>-	    break;</div><div class='del'>-	  case 51932:</div><div class='del'>-	    load_conv_function51932();</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='add'>+        switch(cp) {</div><div class='add'>+          case CP_ACP:</div><div class='add'>+            cp = GetACP();</div><div class='add'>+            break;</div><div class='add'>+          case CP_OEMCP:</div><div class='add'>+            cp = GetOEMCP();</div><div class='add'>+            break;</div><div class='add'>+          case CP_MACCP:</div><div class='add'>+          case CP_THREAD_ACP:</div><div class='add'>+            if (!pGetCPInfoEx) {</div><div class='add'>+                pGetCPInfoEx = (BOOL (*)(UINT, DWORD, struct myCPINFOEX *))</div><div class='add'>+                    GetProcAddress(GetModuleHandle("kernel32"), "GetCPInfoEx");</div><div class='add'>+                if (!pGetCPInfoEx) {</div><div class='add'>+                    pGetCPInfoEx = (void*)-1;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            buf = ALLOCA_N(struct myCPINFOEX, 1);</div><div class='add'>+            ZeroMemory(buf, sizeof(struct myCPINFOEX));</div><div class='add'>+            if (pGetCPInfoEx == (void*)-1 || !pGetCPInfoEx(cp, 0, buf)) {</div><div class='add'>+                rb_raise(eWIN32OLERuntimeError, "cannot map codepage to encoding.");</div><div class='add'>+                break;	/* never reach here */</div><div class='add'>+            }</div><div class='add'>+            cp = buf-&gt;CodePage;</div><div class='add'>+            break;</div><div class='add'>+          case CP_SYMBOL:</div><div class='add'>+          case CP_UTF7:</div><div class='add'>+          case CP_UTF8:</div><div class='add'>+            break;</div><div class='add'>+          case 51932:</div><div class='add'>+            load_conv_function51932();</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='ctx'>             rb_raise(eWIN32OLERuntimeError, "codepage should be WIN32OLE::CP_ACP, WIN32OLE::CP_OEMCP, WIN32OLE::CP_MACCP, WIN32OLE::CP_THREAD_ACP, WIN32OLE::CP_SYMBOL, WIN32OLE::CP_UTF7, WIN32OLE::CP_UTF8, or installed codepage.");</div><div class='ctx'>             break;</div><div class='ctx'>         }</div><div class='hunk'>@@ -689,7 +690,7 @@ ole_cp2encoding(UINT cp)</div><div class='ctx'>     enc_name = rb_sprintf("CP%d", cp);</div><div class='ctx'>     idx = rb_enc_find_index(enc_cstr = StringValueCStr(enc_name));</div><div class='ctx'>     if (idx &lt; 0)</div><div class='del'>-	idx = rb_define_dummy_encoding(enc_cstr);</div><div class='add'>+        idx = rb_define_dummy_encoding(enc_cstr);</div><div class='ctx'>     return rb_enc_from_index(idx);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -699,14 +700,14 @@ ole_ml_wc2mb_conv0(LPWSTR pw, LPSTR pm, UINT *size)</div><div class='ctx'> {</div><div class='ctx'>     DWORD dw = 0;</div><div class='ctx'>     return pIMultiLanguage-&gt;lpVtbl-&gt;ConvertStringFromUnicode(pIMultiLanguage,</div><div class='del'>-		    &amp;dw, cWIN32OLE_cp, pw, NULL, pm, size);</div><div class='add'>+                    &amp;dw, cWIN32OLE_cp, pw, NULL, pm, size);</div><div class='ctx'> }</div><div class='ctx'> #define ole_ml_wc2mb_conv(pw, pm, size, onfailure) do { \</div><div class='del'>-	HRESULT hr = ole_ml_wc2mb_conv0(pw, pm, &amp;size); \</div><div class='del'>-	if (FAILED(hr)) { \</div><div class='del'>-	    onfailure; \</div><div class='del'>-	    ole_raise(hr, eWIN32OLERuntimeError, "fail to convert Unicode to CP%d", cWIN32OLE_cp); \</div><div class='del'>-	} \</div><div class='add'>+        HRESULT hr = ole_ml_wc2mb_conv0(pw, pm, &amp;size); \</div><div class='add'>+        if (FAILED(hr)) { \</div><div class='add'>+            onfailure; \</div><div class='add'>+            ole_raise(hr, eWIN32OLERuntimeError, "fail to convert Unicode to CP%d", cWIN32OLE_cp); \</div><div class='add'>+        } \</div><div class='ctx'>     } while (0)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -719,11 +720,11 @@ ole_wc2mb_alloc(LPWSTR pw, char *(alloc)(UINT size, void *arg), void *arg)</div><div class='ctx'>     UINT size = 0;</div><div class='ctx'>     if (conv_51932(cWIN32OLE_cp)) {</div><div class='ctx'> #ifndef pIMultiLanguage</div><div class='del'>-	ole_ml_wc2mb_conv(pw, NULL, size, {});</div><div class='del'>-	pm = alloc(size, arg);</div><div class='del'>-	if (size) ole_ml_wc2mb_conv(pw, pm, size, xfree(pm));</div><div class='del'>-	pm[size] = '\0';</div><div class='del'>-	return pm;</div><div class='add'>+        ole_ml_wc2mb_conv(pw, NULL, size, {});</div><div class='add'>+        pm = alloc(size, arg);</div><div class='add'>+        if (size) ole_ml_wc2mb_conv(pw, pm, size, xfree(pm));</div><div class='add'>+        pm[size] = '\0';</div><div class='add'>+        return pm;</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     size = ole_wc2mb_conv(pw, NULL, 0);</div><div class='hunk'>@@ -815,8 +816,8 @@ ole_initialize(void)</div><div class='ctx'>     HRESULT hr;</div><div class='ctx'> </div><div class='ctx'>     if(!g_uninitialize_hooked) {</div><div class='del'>-	rb_add_event_hook(ole_uninitialize_hook, RUBY_EVENT_THREAD_END, Qnil);</div><div class='del'>-	g_uninitialize_hooked = TRUE;</div><div class='add'>+        rb_add_event_hook(ole_uninitialize_hook, RUBY_EVENT_THREAD_END, Qnil);</div><div class='add'>+        g_uninitialize_hooked = TRUE;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if(g_ole_initialized == FALSE) {</div><div class='hunk'>@@ -910,21 +911,21 @@ ole_mb2wc(char *pm, int len, UINT cp)</div><div class='ctx'> </div><div class='ctx'>     if (conv_51932(cp)) {</div><div class='ctx'> #ifndef pIMultiLanguage</div><div class='del'>-	DWORD dw = 0;</div><div class='del'>-	UINT n = len;</div><div class='del'>-	HRESULT hr = pIMultiLanguage-&gt;lpVtbl-&gt;ConvertStringToUnicode(pIMultiLanguage,</div><div class='del'>-		&amp;dw, cp, pm, &amp;n, NULL, &amp;size);</div><div class='del'>-	if (FAILED(hr)) {</div><div class='add'>+        DWORD dw = 0;</div><div class='add'>+        UINT n = len;</div><div class='add'>+        HRESULT hr = pIMultiLanguage-&gt;lpVtbl-&gt;ConvertStringToUnicode(pIMultiLanguage,</div><div class='add'>+                &amp;dw, cp, pm, &amp;n, NULL, &amp;size);</div><div class='add'>+        if (FAILED(hr)) {</div><div class='ctx'>             ole_raise(hr, eWIN32OLERuntimeError, "fail to convert CP%d to Unicode", cp);</div><div class='del'>-	}</div><div class='del'>-	pw = SysAllocStringLen(NULL, size);</div><div class='del'>-	n = len;</div><div class='del'>-	hr = pIMultiLanguage-&gt;lpVtbl-&gt;ConvertStringToUnicode(pIMultiLanguage,</div><div class='del'>-		&amp;dw, cp, pm, &amp;n, pw, &amp;size);</div><div class='del'>-	if (FAILED(hr)) {</div><div class='add'>+        }</div><div class='add'>+        pw = SysAllocStringLen(NULL, size);</div><div class='add'>+        n = len;</div><div class='add'>+        hr = pIMultiLanguage-&gt;lpVtbl-&gt;ConvertStringToUnicode(pIMultiLanguage,</div><div class='add'>+                &amp;dw, cp, pm, &amp;n, pw, &amp;size);</div><div class='add'>+        if (FAILED(hr)) {</div><div class='ctx'>             ole_raise(hr, eWIN32OLERuntimeError, "fail to convert CP%d to Unicode", cp);</div><div class='del'>-	}</div><div class='del'>-	return pw;</div><div class='add'>+        }</div><div class='add'>+        return pw;</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     size = MultiByteToWideChar(cp, 0, pm, len, NULL, 0);</div><div class='hunk'>@@ -994,7 +995,7 @@ ole_val2variant_ex(VALUE val, VARIANT *var, VARTYPE vt)</div><div class='ctx'>         }</div><div class='ctx'>         return;</div><div class='ctx'>     }</div><div class='del'>-#if (_MSC_VER &gt;= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='add'>+#if (defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='ctx'>     switch(vt &amp; ~VT_BYREF) {</div><div class='ctx'>     case VT_I8:</div><div class='ctx'>         V_VT(var) = VT_I8;</div><div class='hunk'>@@ -1008,7 +1009,7 @@ ole_val2variant_ex(VALUE val, VARIANT *var, VARTYPE vt)</div><div class='ctx'>         ole_val2variant2(val, var);</div><div class='ctx'>         break;</div><div class='ctx'>     }</div><div class='del'>-#else  /* (_MSC_VER &gt;= 1300) || defined(__CYGWIN__) || defined(__MINGW32__) */</div><div class='add'>+#else  /* (defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__) */</div><div class='ctx'>     ole_val2variant2(val, var);</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='hunk'>@@ -1062,7 +1063,7 @@ get_ptr_of_variant(VARIANT *pvar)</div><div class='ctx'>     case VT_R8:</div><div class='ctx'>         return &amp;V_R8(pvar);</div><div class='ctx'>         break;</div><div class='del'>-#if (_MSC_VER &gt;= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='add'>+#if (defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='ctx'>     case VT_I8:</div><div class='ctx'>         return &amp;V_I8(pvar);</div><div class='ctx'>         break;</div><div class='hunk'>@@ -1549,10 +1550,10 @@ ole_variant2val(VARIANT *pvar)</div><div class='ctx'>             obj = RB_INT2NUM((long)V_UINT(pvar));</div><div class='ctx'>         break;</div><div class='ctx'> </div><div class='del'>-#if (_MSC_VER &gt;= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='add'>+#if (defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='ctx'>     case VT_I8:</div><div class='ctx'>         if(V_ISBYREF(pvar))</div><div class='del'>-#if (_MSC_VER &gt;= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='add'>+#if (defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='ctx'> #ifdef V_I8REF</div><div class='ctx'>             obj = I8_2_NUM(*V_I8REF(pvar));</div><div class='ctx'> #endif</div><div class='hunk'>@@ -1564,7 +1565,7 @@ ole_variant2val(VARIANT *pvar)</div><div class='ctx'>         break;</div><div class='ctx'>     case VT_UI8:</div><div class='ctx'>         if(V_ISBYREF(pvar))</div><div class='del'>-#if (_MSC_VER &gt;= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='add'>+#if (defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='ctx'> #ifdef V_UI8REF</div><div class='ctx'>             obj = UI8_2_NUM(*V_UI8REF(pvar));</div><div class='ctx'> #endif</div><div class='hunk'>@@ -1574,7 +1575,7 @@ ole_variant2val(VARIANT *pvar)</div><div class='ctx'>         else</div><div class='ctx'>             obj = UI8_2_NUM(V_UI8(pvar));</div><div class='ctx'>         break;</div><div class='del'>-#endif  /* (_MSC_VER &gt;= 1300) || defined(__CYGWIN__) || defined(__MINGW32__) */</div><div class='add'>+#endif  /* (defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__) */</div><div class='ctx'> </div><div class='ctx'>     case VT_R4:</div><div class='ctx'>         if(V_ISBYREF(pvar))</div><div class='hunk'>@@ -1736,11 +1737,11 @@ reg_get_val(HKEY hkey, const char *subkey)</div><div class='ctx'>         if (err == ERROR_SUCCESS) {</div><div class='ctx'>             pbuf[size] = '\0';</div><div class='ctx'>             if (dwtype == REG_EXPAND_SZ) {</div><div class='del'>-		char* pbuf2 = (char *)pbuf;</div><div class='del'>-		DWORD len = ExpandEnvironmentStrings(pbuf2, NULL, 0);</div><div class='del'>-		pbuf = ALLOC_N(char, len + 1);</div><div class='del'>-		ExpandEnvironmentStrings(pbuf2, pbuf, len + 1);</div><div class='del'>-		free(pbuf2);</div><div class='add'>+                char* pbuf2 = (char *)pbuf;</div><div class='add'>+                DWORD len = ExpandEnvironmentStrings(pbuf2, NULL, 0);</div><div class='add'>+                pbuf = ALLOC_N(char, len + 1);</div><div class='add'>+                ExpandEnvironmentStrings(pbuf2, pbuf, len + 1);</div><div class='add'>+                free(pbuf2);</div><div class='ctx'>             }</div><div class='ctx'>             val = rb_str_new2((char *)pbuf);</div><div class='ctx'>         }</div><div class='hunk'>@@ -1985,10 +1986,6 @@ fole_s_connect(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "1*", &amp;svr_name, &amp;others);</div><div class='ctx'>     StringValue(svr_name);</div><div class='del'>-    if (rb_safe_level() &gt; 0 &amp;&amp; OBJ_TAINTED(svr_name)) {</div><div class='del'>-        rb_raise(rb_eSecurityError, "insecure connection - `%s'",</div><div class='del'>-		StringValuePtr(svr_name));</div><div class='del'>-    }</div><div class='ctx'> </div><div class='ctx'>     /* get CLSID from OLE server name */</div><div class='ctx'>     pBuf = ole_vstr2wc(svr_name);</div><div class='hunk'>@@ -2478,16 +2475,8 @@ fole_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     rb_scan_args(argc, argv, "11*:", &amp;svr_name, &amp;host, &amp;others, &amp;opts);</div><div class='ctx'> </div><div class='ctx'>     StringValue(svr_name);</div><div class='del'>-    if (rb_safe_level() &gt; 0 &amp;&amp; OBJ_TAINTED(svr_name)) {</div><div class='del'>-        rb_raise(rb_eSecurityError, "insecure object creation - `%s'",</div><div class='del'>-                 StringValuePtr(svr_name));</div><div class='del'>-    }</div><div class='ctx'>     if (!NIL_P(host)) {</div><div class='ctx'>         StringValue(host);</div><div class='del'>-        if (rb_safe_level() &gt; 0 &amp;&amp; OBJ_TAINTED(host)) {</div><div class='del'>-            rb_raise(rb_eSecurityError, "insecure object creation - `%s'",</div><div class='del'>-                     StringValuePtr(host));</div><div class='del'>-        }</div><div class='ctx'>         return ole_create_dcom(self, svr_name, host, others);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -2533,12 +2522,12 @@ fole_initialize(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>             OLE_RELEASE(pIClassFactory2);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='del'>-    pDispatch = p;</div><div class='ctx'>     if(FAILED(hr)) {</div><div class='ctx'>         ole_raise(hr, eWIN32OLERuntimeError,</div><div class='ctx'>                   "failed to create WIN32OLE object from `%s'",</div><div class='ctx'>                   StringValuePtr(svr_name));</div><div class='ctx'>     }</div><div class='add'>+    pDispatch = p;</div><div class='ctx'> </div><div class='ctx'>     ole_set_member(self, pDispatch);</div><div class='ctx'>     return self;</div><div class='hunk'>@@ -2566,7 +2555,7 @@ hash2named_arg(VALUE key, VALUE val, VALUE pop)</div><div class='ctx'>         rb_raise(rb_eTypeError, "wrong argument type (expected String or Symbol)");</div><div class='ctx'>     }</div><div class='ctx'>     if (RB_TYPE_P(key, T_SYMBOL)) {</div><div class='del'>-	key = rb_sym2str(key);</div><div class='add'>+        key = rb_sym2str(key);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* pNamedArgs[0] is &lt;method name&gt;, so "index + 1" */</div><div class='hunk'>@@ -2630,10 +2619,10 @@ ole_invoke(int argc, VALUE *argv, VALUE self, USHORT wFlags, BOOL is_bracket)</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "1*", &amp;cmd, &amp;paramS);</div><div class='ctx'>     if(!RB_TYPE_P(cmd, T_STRING) &amp;&amp; !RB_TYPE_P(cmd, T_SYMBOL) &amp;&amp; !is_bracket) {</div><div class='del'>-	rb_raise(rb_eTypeError, "method is wrong type (expected String or Symbol)");</div><div class='add'>+        rb_raise(rb_eTypeError, "method is wrong type (expected String or Symbol)");</div><div class='ctx'>     }</div><div class='ctx'>     if (RB_TYPE_P(cmd, T_SYMBOL)) {</div><div class='del'>-	cmd = rb_sym2str(cmd);</div><div class='add'>+        cmd = rb_sym2str(cmd);</div><div class='ctx'>     }</div><div class='ctx'>     pole = oledata_get_struct(self);</div><div class='ctx'>     if(!pole-&gt;pDispatch) {</div><div class='hunk'>@@ -2642,7 +2631,7 @@ ole_invoke(int argc, VALUE *argv, VALUE self, USHORT wFlags, BOOL is_bracket)</div><div class='ctx'>     if (is_bracket) {</div><div class='ctx'>         DispID = DISPID_VALUE;</div><div class='ctx'>         argc += 1;</div><div class='del'>-	rb_ary_unshift(paramS, cmd);</div><div class='add'>+        rb_ary_unshift(paramS, cmd);</div><div class='ctx'>     } else {</div><div class='ctx'>         wcmdname = ole_vstr2wc(cmd);</div><div class='ctx'>         hr = pole-&gt;pDispatch-&gt;lpVtbl-&gt;GetIDsOfNames( pole-&gt;pDispatch, &amp;IID_NULL,</div><div class='hunk'>@@ -2663,7 +2652,7 @@ ole_invoke(int argc, VALUE *argv, VALUE self, USHORT wFlags, BOOL is_bracket)</div><div class='ctx'>         /*------------------------------------------</div><div class='ctx'>           hash object ==&gt; named dispatch parameters</div><div class='ctx'>         --------------------------------------------*/</div><div class='del'>-        cNamedArgs = rb_long2int(RHASH_SIZE(param));</div><div class='add'>+        cNamedArgs = rb_long2int((long)RHASH_SIZE(param));</div><div class='ctx'>         op.dp.cArgs = cNamedArgs + argc - 2;</div><div class='ctx'>         op.pNamedArgs = ALLOCA_N(OLECHAR*, cNamedArgs + 1);</div><div class='ctx'>         op.dp.rgvarg = ALLOCA_N(VARIANTARG, op.dp.cArgs);</div><div class='hunk'>@@ -3650,7 +3639,7 @@ fole_respond_to(VALUE self, VALUE method)</div><div class='ctx'>     pole = oledata_get_struct(self);</div><div class='ctx'>     wcmdname = ole_vstr2wc(method);</div><div class='ctx'>     hr = pole-&gt;pDispatch-&gt;lpVtbl-&gt;GetIDsOfNames( pole-&gt;pDispatch, &amp;IID_NULL,</div><div class='del'>-	    &amp;wcmdname, 1, cWIN32OLE_lcid, &amp;DispID);</div><div class='add'>+            &amp;wcmdname, 1, cWIN32OLE_lcid, &amp;DispID);</div><div class='ctx'>     SysFreeString(wcmdname);</div><div class='ctx'>     return SUCCEEDED(hr) ? Qtrue : Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -3764,7 +3753,7 @@ ole_typedesc2val(ITypeInfo *pTypeInfo, TYPEDESC *pTypeDesc, VALUE typedetails)</div><div class='ctx'>     case VT_UI4:</div><div class='ctx'>         typestr = rb_str_new2("UI4");</div><div class='ctx'>         break;</div><div class='del'>-#if (_MSC_VER &gt;= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='add'>+#if (defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='ctx'>     case VT_I8:</div><div class='ctx'>         typestr = rb_str_new2("I8");</div><div class='ctx'>         break;</div><div class='hunk'>@@ -3974,6 +3963,7 @@ check_nano_server(void)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+LCID cWIN32OLE_lcid;</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_win32ole(void)</div><div class='head'>diff --git a/ext/win32ole/win32ole.gemspec b/ext/win32ole/win32ole.gemspec<br/>new file mode 100644<br/>index 0000000000..b6ea8e8a55<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole.gemspec</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "win32ole"</div><div class='add'>+  spec.version       = "1.8.9"</div><div class='add'>+  spec.authors       = ["Masaki Suketa"]</div><div class='add'>+  spec.email         = ["suke@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Provides an interface for OLE Automation in Ruby}</div><div class='add'>+  spec.description   = spec.summary</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/win32ole"</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 2.3.0")</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.bindir        = "exe"</div><div class='add'>+  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/ext/win32ole/win32ole.h b/ext/win32ole/win32ole.h<br/>index c019930397..cd627ef765 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole.h</a></div><div class='hunk'>@@ -112,8 +112,8 @@ struct oledata {</div><div class='ctx'>     IDispatch *pDispatch;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-VALUE cWIN32OLE;</div><div class='del'>-LCID cWIN32OLE_lcid;</div><div class='add'>+extern VALUE cWIN32OLE;</div><div class='add'>+extern LCID cWIN32OLE_lcid;</div><div class='ctx'> </div><div class='ctx'> struct oledata *oledata_get_struct(VALUE obj);</div><div class='ctx'> LPWSTR ole_vstr2wc(VALUE vstr);</div><div class='head'>diff --git a/ext/win32ole/win32ole_error.c b/ext/win32ole/win32ole_error.c<br/>index 022527617e..2bb5156263 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_error.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_error.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_error.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_error.c</a></div><div class='hunk'>@@ -60,6 +60,9 @@ ole_raise(HRESULT hr, VALUE ecs, const char *fmt, ...)</div><div class='ctx'>     rb_exc_raise(rb_exc_new_str(ecs, msg));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE eWIN32OLERuntimeError;</div><div class='add'>+VALUE eWIN32OLEQueryInterfaceError;</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_win32ole_error(void)</div><div class='ctx'> {</div><div class='head'>diff --git a/ext/win32ole/win32ole_error.h b/ext/win32ole/win32ole_error.h<br/>index 296eb101ad..a2f329856f 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_error.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_error.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_error.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_error.h</a></div><div class='hunk'>@@ -1,8 +1,8 @@</div><div class='ctx'> #ifndef WIN32OLE_ERROR_H</div><div class='ctx'> #define WIN32OLE_ERROR_H 1</div><div class='ctx'> </div><div class='del'>-VALUE eWIN32OLERuntimeError;</div><div class='del'>-VALUE eWIN32OLEQueryInterfaceError;</div><div class='add'>+extern VALUE eWIN32OLERuntimeError;</div><div class='add'>+extern VALUE eWIN32OLEQueryInterfaceError;</div><div class='ctx'> NORETURN(PRINTF_ARGS(void ole_raise(HRESULT hr, VALUE ecs, const char *fmt, ...), 3, 4));</div><div class='ctx'> void Init_win32ole_error(void);</div><div class='ctx'> </div><div class='head'>diff --git a/ext/win32ole/win32ole_event.c b/ext/win32ole/win32ole_event.c<br/>index ddb5200b9a..45ebf13433 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_event.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_event.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_event.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_event.c</a></div><div class='hunk'>@@ -200,7 +200,7 @@ STDMETHODIMP EVENTSINK_Invoke(</div><div class='ctx'>     }</div><div class='ctx'>     outargv = Qnil;</div><div class='ctx'>     if (is_outarg == Qtrue) {</div><div class='del'>-	outargv = rb_ary_new();</div><div class='add'>+        outargv = rb_ary_new();</div><div class='ctx'>         rb_ary_push(args, outargv);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -413,15 +413,15 @@ hash2ptr_dispparams(VALUE hash, ITypeInfo *pTypeInfo, DISPID dispid, DISPPARAMS</div><div class='ctx'>                                      bstrs, pdispparams-&gt;cArgs + 1,</div><div class='ctx'>                                      &amp;len);</div><div class='ctx'>     if (FAILED(hr))</div><div class='del'>-	return;</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; len - 1; i++) {</div><div class='del'>-	key = WC2VSTR(bstrs[i + 1]);</div><div class='add'>+        key = WC2VSTR(bstrs[i + 1]);</div><div class='ctx'>         val = rb_hash_aref(hash, RB_UINT2NUM(i));</div><div class='del'>-	if (val == Qnil)</div><div class='del'>-	    val = rb_hash_aref(hash, key);</div><div class='del'>-	if (val == Qnil)</div><div class='del'>-	    val = rb_hash_aref(hash, rb_str_intern(key));</div><div class='add'>+        if (val == Qnil)</div><div class='add'>+            val = rb_hash_aref(hash, key);</div><div class='add'>+        if (val == Qnil)</div><div class='add'>+            val = rb_hash_aref(hash, rb_str_intern(key));</div><div class='ctx'>         pvar = &amp;pdispparams-&gt;rgvarg[pdispparams-&gt;cArgs-i-1];</div><div class='ctx'>         ole_val2ptr_variant(val, pvar);</div><div class='ctx'>     }</div><div class='hunk'>@@ -433,7 +433,7 @@ hash2result(VALUE hash)</div><div class='ctx'>     VALUE ret = Qnil;</div><div class='ctx'>     ret = rb_hash_aref(hash, rb_str_new2("return"));</div><div class='ctx'>     if (ret == Qnil)</div><div class='del'>-	ret = rb_hash_aref(hash, rb_str_intern(rb_str_new2("return")));</div><div class='add'>+        ret = rb_hash_aref(hash, rb_str_intern(rb_str_new2("return")));</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -610,7 +610,7 @@ find_coclass(</div><div class='ctx'> </div><div class='ctx'>     hr = pTypeInfo-&gt;lpVtbl-&gt;GetContainingTypeLib(pTypeInfo, &amp;pTypeLib, NULL);</div><div class='ctx'>     if (FAILED(hr)) {</div><div class='del'>-	return hr;</div><div class='add'>+        return hr;</div><div class='ctx'>     }</div><div class='ctx'>     count = pTypeLib-&gt;lpVtbl-&gt;GetTypeInfoCount(pTypeLib);</div><div class='ctx'>     for (i = 0; i &lt; count &amp;&amp; !found; i++) {</div><div class='hunk'>@@ -922,10 +922,6 @@ ev_advise(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     if(!RB_TYPE_P(itf, T_NIL)) {</div><div class='ctx'>         pitf = StringValuePtr(itf);</div><div class='del'>-        if (rb_safe_level() &gt; 0 &amp;&amp; OBJ_TAINTED(itf)) {</div><div class='del'>-            rb_raise(rb_eSecurityError, "insecure event creation - `%s'",</div><div class='del'>-                     StringValuePtr(itf));</div><div class='del'>-        }</div><div class='ctx'>         hr = find_iid(ole, pitf, &amp;iid, &amp;pTypeInfo);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='hunk'>@@ -1268,7 +1264,8 @@ Init_win32ole_event(void)</div><div class='ctx'>     ary_ole_event = rb_ary_new();</div><div class='ctx'>     rb_gc_register_mark_object(ary_ole_event);</div><div class='ctx'>     id_events = rb_intern("events");</div><div class='del'>-    cWIN32OLE_EVENT = rb_define_class("WIN32OLE_EVENT", rb_cObject);</div><div class='add'>+    cWIN32OLE_EVENT = rb_define_class_under(cWIN32OLE, "Event", rb_cObject);</div><div class='add'>+    rb_define_const(rb_cObject, "WIN32OLE_EVENT", cWIN32OLE_EVENT);</div><div class='ctx'>     rb_define_singleton_method(cWIN32OLE_EVENT, "message_loop", fev_s_msg_loop, 0);</div><div class='ctx'>     rb_define_alloc_func(cWIN32OLE_EVENT, fev_s_allocate);</div><div class='ctx'>     rb_define_method(cWIN32OLE_EVENT, "initialize", fev_initialize, -1);</div><div class='head'>diff --git a/ext/win32ole/win32ole_method.c b/ext/win32ole/win32ole_method.c<br/>index ffa9324657..646fdaf60c 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_method.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_method.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_method.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_method.c</a></div><div class='hunk'>@@ -437,7 +437,7 @@ ole_method_invoke_kind(ITypeInfo *pTypeInfo, UINT method_index)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *   call-seq:</div><div class='del'>- *      WIN32OLE_MTHOD#invkind</div><div class='add'>+ *      WIN32OLE_METHOD#invkind</div><div class='ctx'>  *</div><div class='ctx'>  *   Returns the method invoke kind.</div><div class='ctx'>  *     tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbooks')</div><div class='hunk'>@@ -923,9 +923,12 @@ folemethod_inspect(VALUE self)</div><div class='ctx'>     return default_inspect(self, "WIN32OLE_METHOD");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE cWIN32OLE_METHOD;</div><div class='add'>+</div><div class='ctx'> void Init_win32ole_method(void)</div><div class='ctx'> {</div><div class='del'>-    cWIN32OLE_METHOD = rb_define_class("WIN32OLE_METHOD", rb_cObject);</div><div class='add'>+    cWIN32OLE_METHOD = rb_define_class_under(cWIN32OLE, "Method", rb_cObject);</div><div class='add'>+    rb_define_const(rb_cObject, "WIN32OLE_METHOD", cWIN32OLE_METHOD);</div><div class='ctx'>     rb_define_alloc_func(cWIN32OLE_METHOD, folemethod_s_allocate);</div><div class='ctx'>     rb_define_method(cWIN32OLE_METHOD, "initialize", folemethod_initialize, 2);</div><div class='ctx'>     rb_define_method(cWIN32OLE_METHOD, "name", folemethod_name, 0);</div><div class='head'>diff --git a/ext/win32ole/win32ole_method.h b/ext/win32ole/win32ole_method.h<br/>index ff2898ebeb..ef907d2fac 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_method.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_method.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_method.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_method.h</a></div><div class='hunk'>@@ -7,7 +7,7 @@ struct olemethoddata {</div><div class='ctx'>     UINT index;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-VALUE cWIN32OLE_METHOD;</div><div class='add'>+extern VALUE cWIN32OLE_METHOD;</div><div class='ctx'> VALUE folemethod_s_allocate(VALUE klass);</div><div class='ctx'> VALUE ole_methods_from_typeinfo(ITypeInfo *pTypeInfo, int mask);</div><div class='ctx'> VALUE create_win32ole_method(ITypeInfo *pTypeInfo, VALUE name);</div><div class='head'>diff --git a/ext/win32ole/win32ole_param.c b/ext/win32ole/win32ole_param.c<br/>index 52905b3e8e..b654aaa845 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_param.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_param.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_param.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_param.c</a></div><div class='hunk'>@@ -422,7 +422,8 @@ foleparam_inspect(VALUE self)</div><div class='ctx'> void</div><div class='ctx'> Init_win32ole_param(void)</div><div class='ctx'> {</div><div class='del'>-    cWIN32OLE_PARAM = rb_define_class("WIN32OLE_PARAM", rb_cObject);</div><div class='add'>+    cWIN32OLE_PARAM = rb_define_class_under(cWIN32OLE, "Param", rb_cObject);</div><div class='add'>+    rb_define_const(rb_cObject, "WIN32OLE_PARAM", cWIN32OLE_PARAM);</div><div class='ctx'>     rb_define_alloc_func(cWIN32OLE_PARAM, foleparam_s_allocate);</div><div class='ctx'>     rb_define_method(cWIN32OLE_PARAM, "initialize", foleparam_initialize, 2);</div><div class='ctx'>     rb_define_method(cWIN32OLE_PARAM, "name", foleparam_name, 0);</div><div class='head'>diff --git a/ext/win32ole/win32ole_record.c b/ext/win32ole/win32ole_record.c<br/>index e8838832a7..9e18653db9 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_record.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_record.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_record.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_record.c</a></div><div class='hunk'>@@ -589,10 +589,13 @@ folerecord_inspect(VALUE self)</div><div class='ctx'>                       field);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE cWIN32OLE_RECORD;</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_win32ole_record(void)</div><div class='ctx'> {</div><div class='del'>-    cWIN32OLE_RECORD = rb_define_class("WIN32OLE_RECORD", rb_cObject);</div><div class='add'>+    cWIN32OLE_RECORD = rb_define_class_under(cWIN32OLE, "Record", rb_cObject);</div><div class='add'>+    rb_define_const(rb_cObject, "WIN32OLE_RECORD", cWIN32OLE_RECORD);</div><div class='ctx'>     rb_define_alloc_func(cWIN32OLE_RECORD, folerecord_s_allocate);</div><div class='ctx'>     rb_define_method(cWIN32OLE_RECORD, "initialize", folerecord_initialize, 2);</div><div class='ctx'>     rb_define_method(cWIN32OLE_RECORD, "to_h", folerecord_to_h, 0);</div><div class='head'>diff --git a/ext/win32ole/win32ole_record.h b/ext/win32ole/win32ole_record.h<br/>index ea431e91f7..ab1df0ee7f 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_record.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_record.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_record.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_record.h</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> #ifndef WIN32OLE_RECORD_H</div><div class='ctx'> #define WIN32OLE_RECORD_H 1</div><div class='ctx'> </div><div class='del'>-VALUE cWIN32OLE_RECORD;</div><div class='add'>+extern VALUE cWIN32OLE_RECORD;</div><div class='ctx'> void ole_rec2variant(VALUE rec, VARIANT *var);</div><div class='ctx'> void olerecord_set_ivar(VALUE obj, IRecordInfo *pri, void *prec);</div><div class='ctx'> VALUE create_win32ole_record(IRecordInfo *pri, void *prec);</div><div class='head'>diff --git a/ext/win32ole/win32ole_type.c b/ext/win32ole/win32ole_type.c<br/>index e6ac402ecf..1b96aea858 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_type.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_type.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_type.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_type.c</a></div><div class='hunk'>@@ -56,7 +56,7 @@ static const rb_data_type_t oletype_datatype = {</div><div class='ctx'> /*</div><div class='ctx'>  * Document-class: WIN32OLE_TYPE</div><div class='ctx'>  *</div><div class='del'>- *   &lt;code&gt;WIN32OLE_TYPE&lt;/code&gt; objects represent OLE type libarary information.</div><div class='add'>+ *   &lt;code&gt;WIN32OLE_TYPE&lt;/code&gt; objects represent OLE type library information.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -883,9 +883,12 @@ foletype_inspect(VALUE self)</div><div class='ctx'>     return default_inspect(self, "WIN32OLE_TYPE");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE cWIN32OLE_TYPE;</div><div class='add'>+</div><div class='ctx'> void Init_win32ole_type(void)</div><div class='ctx'> {</div><div class='del'>-    cWIN32OLE_TYPE = rb_define_class("WIN32OLE_TYPE", rb_cObject);</div><div class='add'>+    cWIN32OLE_TYPE = rb_define_class_under(cWIN32OLE, "Type", rb_cObject);</div><div class='add'>+    rb_define_const(rb_cObject, "WIN32OLE_TYPE", cWIN32OLE_TYPE);</div><div class='ctx'>     rb_define_singleton_method(cWIN32OLE_TYPE, "ole_classes", foletype_s_ole_classes, 1);</div><div class='ctx'>     rb_define_singleton_method(cWIN32OLE_TYPE, "typelibs", foletype_s_typelibs, 0);</div><div class='ctx'>     rb_define_singleton_method(cWIN32OLE_TYPE, "progids", foletype_s_progids, 0);</div><div class='head'>diff --git a/ext/win32ole/win32ole_type.h b/ext/win32ole/win32ole_type.h<br/>index a26bf3e043..87b551e502 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_type.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_type.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_type.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_type.h</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> #ifndef WIN32OLE_TYPE_H</div><div class='ctx'> #define WIN32OLE_TYPE_H 1</div><div class='del'>-VALUE cWIN32OLE_TYPE;</div><div class='add'>+extern VALUE cWIN32OLE_TYPE;</div><div class='ctx'> VALUE create_win32ole_type(ITypeInfo *pTypeInfo, VALUE name);</div><div class='ctx'> ITypeInfo *itypeinfo(VALUE self);</div><div class='ctx'> VALUE ole_type_from_itypeinfo(ITypeInfo *pTypeInfo);</div><div class='head'>diff --git a/ext/win32ole/win32ole_typelib.c b/ext/win32ole/win32ole_typelib.c<br/>index 35376c644b..fb68bebda8 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_typelib.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_typelib.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_typelib.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_typelib.c</a></div><div class='hunk'>@@ -285,7 +285,7 @@ oletypelib_get_libattr(ITypeLib *pTypeLib, TLIBATTR **ppTLibAttr)</div><div class='ctx'>     hr = pTypeLib-&gt;lpVtbl-&gt;GetLibAttr(pTypeLib, ppTLibAttr);</div><div class='ctx'>     if (FAILED(hr)) {</div><div class='ctx'>         ole_raise(hr, eWIN32OLERuntimeError,</div><div class='del'>-		  "failed to get library attribute(TLIBATTR) from ITypeLib");</div><div class='add'>+                  "failed to get library attribute(TLIBATTR) from ITypeLib");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -588,13 +588,13 @@ foletypelib_path(VALUE self)</div><div class='ctx'>     pTypeLib = itypelib(self);</div><div class='ctx'>     oletypelib_get_libattr(pTypeLib, &amp;pTLibAttr);</div><div class='ctx'>     hr = QueryPathOfRegTypeLib(&amp;pTLibAttr-&gt;guid,</div><div class='del'>-	                       pTLibAttr-&gt;wMajorVerNum,</div><div class='del'>-			       pTLibAttr-&gt;wMinorVerNum,</div><div class='del'>-			       lcid,</div><div class='del'>-			       &amp;bstr);</div><div class='add'>+                               pTLibAttr-&gt;wMajorVerNum,</div><div class='add'>+                               pTLibAttr-&gt;wMinorVerNum,</div><div class='add'>+                               lcid,</div><div class='add'>+                               &amp;bstr);</div><div class='ctx'>     if (FAILED(hr)) {</div><div class='del'>-	pTypeLib-&gt;lpVtbl-&gt;ReleaseTLibAttr(pTypeLib, pTLibAttr);</div><div class='del'>-	ole_raise(hr, eWIN32OLERuntimeError, "failed to QueryPathOfRegTypeTypeLib");</div><div class='add'>+        pTypeLib-&gt;lpVtbl-&gt;ReleaseTLibAttr(pTypeLib, pTLibAttr);</div><div class='add'>+        ole_raise(hr, eWIN32OLERuntimeError, "failed to QueryPathOfRegTypeTypeLib");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     pTypeLib-&gt;lpVtbl-&gt;ReleaseTLibAttr(pTypeLib, pTLibAttr);</div><div class='hunk'>@@ -722,7 +722,7 @@ typelib_file_from_typelib(VALUE ole)</div><div class='ctx'>             if (ver == Qnil)</div><div class='ctx'>                 break;</div><div class='ctx'>             err = reg_open_vkey(hclsid, ver, &amp;hversion);</div><div class='del'>-			if (err != ERROR_SUCCESS || fver &gt; atof(StringValuePtr(ver)))</div><div class='add'>+                        if (err != ERROR_SUCCESS || fver &gt; atof(StringValuePtr(ver)))</div><div class='ctx'>                 continue;</div><div class='ctx'>             fver = atof(StringValuePtr(ver));</div><div class='ctx'>             typelib = reg_get_val(hversion, NULL);</div><div class='hunk'>@@ -822,10 +822,13 @@ foletypelib_inspect(VALUE self)</div><div class='ctx'>     return default_inspect(self, "WIN32OLE_TYPELIB");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE cWIN32OLE_TYPELIB;</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_win32ole_typelib(void)</div><div class='ctx'> {</div><div class='del'>-    cWIN32OLE_TYPELIB = rb_define_class("WIN32OLE_TYPELIB", rb_cObject);</div><div class='add'>+    cWIN32OLE_TYPELIB = rb_define_class_under(cWIN32OLE, "Typelib", rb_cObject);</div><div class='add'>+    rb_define_const(rb_cObject, "WIN32OLE_TYPELIB", cWIN32OLE_TYPELIB);</div><div class='ctx'>     rb_define_singleton_method(cWIN32OLE_TYPELIB, "typelibs", foletypelib_s_typelibs, 0);</div><div class='ctx'>     rb_define_alloc_func(cWIN32OLE_TYPELIB, foletypelib_s_allocate);</div><div class='ctx'>     rb_define_method(cWIN32OLE_TYPELIB, "initialize", foletypelib_initialize, -2);</div><div class='head'>diff --git a/ext/win32ole/win32ole_typelib.h b/ext/win32ole/win32ole_typelib.h<br/>index 9fc117fcb4..2c2730bb58 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_typelib.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_typelib.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_typelib.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_typelib.h</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> #ifndef WIN32OLE_TYPELIB_H</div><div class='ctx'> #define WIN32OLE_TYPELIB_H 1</div><div class='ctx'> </div><div class='del'>-VALUE cWIN32OLE_TYPELIB;</div><div class='add'>+extern VALUE cWIN32OLE_TYPELIB;</div><div class='ctx'> </div><div class='ctx'> void Init_win32ole_typelib(void);</div><div class='ctx'> ITypeLib * itypelib(VALUE self);</div><div class='head'>diff --git a/ext/win32ole/win32ole_variable.c b/ext/win32ole/win32ole_variable.c<br/>index 3dc9972ee7..e7f58c891e 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_variable.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variable.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_variable.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_variable.c</a></div><div class='hunk'>@@ -365,9 +365,13 @@ folevariable_inspect(VALUE self)</div><div class='ctx'>     return make_inspect("WIN32OLE_VARIABLE", detail);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE cWIN32OLE_VARIABLE;</div><div class='add'>+</div><div class='ctx'> void Init_win32ole_variable(void)</div><div class='ctx'> {</div><div class='del'>-    cWIN32OLE_VARIABLE = rb_define_class("WIN32OLE_VARIABLE", rb_cObject);</div><div class='add'>+    cWIN32OLE_VARIABLE = rb_define_class_under(cWIN32OLE, "Variable", rb_cObject);</div><div class='add'>+    rb_define_const(rb_cObject, "WIN32OLE_VARIABLE", cWIN32OLE_VARIABLE);</div><div class='add'>+    rb_undef_alloc_func(cWIN32OLE_VARIABLE);</div><div class='ctx'>     rb_define_method(cWIN32OLE_VARIABLE, "name", folevariable_name, 0);</div><div class='ctx'>     rb_define_method(cWIN32OLE_VARIABLE, "ole_type", folevariable_ole_type, 0);</div><div class='ctx'>     rb_define_method(cWIN32OLE_VARIABLE, "ole_type_detail", folevariable_ole_type_detail, 0);</div><div class='head'>diff --git a/ext/win32ole/win32ole_variable.h b/ext/win32ole/win32ole_variable.h<br/>index 704dc13508..209613fd44 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_variable.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variable.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_variable.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_variable.h</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> #ifndef WIN32OLE_VARIABLE_H</div><div class='ctx'> #define WIN32OLE_VARIABLE_H 1</div><div class='ctx'> </div><div class='del'>-VALUE cWIN32OLE_VARIABLE;</div><div class='add'>+extern VALUE cWIN32OLE_VARIABLE;</div><div class='ctx'> VALUE create_win32ole_variable(ITypeInfo *pTypeInfo, UINT index, VALUE name);</div><div class='ctx'> void Init_win32ole_variable(void);</div><div class='ctx'> </div><div class='head'>diff --git a/ext/win32ole/win32ole_variant.c b/ext/win32ole/win32ole_variant.c<br/>index 3ff8f4ffbf..f1d83ed2e1 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_variant.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variant.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_variant.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_variant.c</a></div><div class='hunk'>@@ -94,7 +94,7 @@ ole_val2olevariantdata(VALUE val, VARTYPE vt, struct olevariantdata *pvar)</div><div class='ctx'>                 }</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='del'>-#if (_MSC_VER &gt;= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='add'>+#if (defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='ctx'>     } else if ( (vt &amp; ~VT_BYREF) == VT_I8 || (vt &amp; ~VT_BYREF) == VT_UI8) {</div><div class='ctx'>         ole_val2variant_ex(val, &amp;(pvar-&gt;realvar), (vt &amp; ~VT_BYREF));</div><div class='ctx'>         ole_val2variant_ex(val, &amp;(pvar-&gt;var), (vt &amp; ~VT_BYREF));</div><div class='hunk'>@@ -202,7 +202,7 @@ ole_set_byref(VARIANT *realvar, VARIANT *var,  VARTYPE vt)</div><div class='ctx'>             V_R8REF(var) = &amp;V_R8(realvar);</div><div class='ctx'>             break;</div><div class='ctx'> </div><div class='del'>-#if (_MSC_VER &gt;= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='add'>+#if (defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='ctx'> #ifdef V_I8REF</div><div class='ctx'>         case VT_I8:</div><div class='ctx'>             V_I8REF(var) = &amp;V_I8(realvar);</div><div class='hunk'>@@ -371,7 +371,7 @@ check_type_val2variant(VALUE val)</div><div class='ctx'>  *   Win32OLE converts Ruby object into OLE variant automatically when</div><div class='ctx'>  *   invoking OLE methods. If OLE method requires the argument which is</div><div class='ctx'>  *   different from the variant by automatic conversion of Win32OLE, you</div><div class='del'>- *   can convert the specfied variant type by using WIN32OLE_VARIANT class.</div><div class='add'>+ *   can convert the specified variant type by using WIN32OLE_VARIANT class.</div><div class='ctx'>  *</div><div class='ctx'>  *     param = WIN32OLE_VARIANT.new(10, WIN32OLE::VARIANT::VT_R4)</div><div class='ctx'>  *     oleobj.method(param)</div><div class='hunk'>@@ -689,11 +689,14 @@ ole_variant2variant(VALUE val, VARIANT *var)</div><div class='ctx'>     VariantCopy(var, &amp;(pvar-&gt;var));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE cWIN32OLE_VARIANT;</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_win32ole_variant(void)</div><div class='ctx'> {</div><div class='ctx'> #undef rb_intern</div><div class='del'>-    cWIN32OLE_VARIANT = rb_define_class("WIN32OLE_VARIANT", rb_cObject);</div><div class='add'>+    cWIN32OLE_VARIANT = rb_define_class_under(cWIN32OLE, "Variant", rb_cObject);</div><div class='add'>+    rb_define_const(rb_cObject, "WIN32OLE_VARIANT", cWIN32OLE_VARIANT);</div><div class='ctx'>     rb_define_alloc_func(cWIN32OLE_VARIANT, folevariant_s_allocate);</div><div class='ctx'>     rb_define_singleton_method(cWIN32OLE_VARIANT, "array", folevariant_s_array, 2);</div><div class='ctx'>     rb_define_method(cWIN32OLE_VARIANT, "initialize", folevariant_initialize, -2);</div><div class='head'>diff --git a/ext/win32ole/win32ole_variant.h b/ext/win32ole/win32ole_variant.h<br/>index efe7ea8bef..4bd3b0aeea 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_variant.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variant.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_variant.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_variant.h</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> #ifndef WIN32OLE_VARIANT_H</div><div class='ctx'> #define WIN32OLE_VARIANT_H 1</div><div class='ctx'> </div><div class='del'>-VALUE cWIN32OLE_VARIANT;</div><div class='add'>+extern VALUE cWIN32OLE_VARIANT;</div><div class='ctx'> void ole_variant2variant(VALUE val, VARIANT *var);</div><div class='ctx'> void Init_win32ole_variant(void);</div><div class='ctx'> </div><div class='head'>diff --git a/ext/win32ole/win32ole_variant_m.c b/ext/win32ole/win32ole_variant_m.c<br/>index 4d76fdc790..c285a00177 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_variant_m.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variant_m.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_variant_m.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_variant_m.c</a></div><div class='hunk'>@@ -1,5 +1,7 @@</div><div class='ctx'> #include "win32ole.h"</div><div class='ctx'> </div><div class='add'>+VALUE mWIN32OLE_VARIANT;</div><div class='add'>+</div><div class='ctx'> void Init_win32ole_variant_m(void)</div><div class='ctx'> {</div><div class='ctx'>     /*</div><div class='hunk'>@@ -114,7 +116,7 @@ void Init_win32ole_variant_m(void)</div><div class='ctx'>      */</div><div class='ctx'>     rb_define_const(mWIN32OLE_VARIANT, "VT_UI4", RB_INT2FIX(VT_UI4));</div><div class='ctx'> </div><div class='del'>-#if (_MSC_VER &gt;= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='add'>+#if (defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)</div><div class='ctx'>     /*</div><div class='ctx'>      * represents VT_I8 type constant.</div><div class='ctx'>      */</div><div class='head'>diff --git a/ext/win32ole/win32ole_variant_m.h b/ext/win32ole/win32ole_variant_m.h<br/>index afbef30218..6272a6578f 100644<br/>--- a/<a href='/ruby.git/tree/ext/win32ole/win32ole_variant_m.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/win32ole/win32ole_variant_m.h</a><br/>+++ b/<a href='/ruby.git/tree/ext/win32ole/win32ole_variant_m.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/win32ole/win32ole_variant_m.h</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> #ifndef WIN32OLE_VARIANT_M_H</div><div class='ctx'> #define WIN32OLE_VARIANT_M_H 1</div><div class='ctx'> </div><div class='del'>-VALUE mWIN32OLE_VARIANT;</div><div class='add'>+extern VALUE mWIN32OLE_VARIANT;</div><div class='ctx'> void Init_win32ole_variant_m(void);</div><div class='ctx'> </div><div class='ctx'> #endif</div><div class='head'>diff --git a/ext/zlib/depend b/ext/zlib/depend<br/>index bfba309dae..15186f8266 100644<br/>--- a/<a href='/ruby.git/tree/ext/zlib/depend?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/zlib/depend</a><br/>+++ b/<a href='/ruby.git/tree/ext/zlib/depend?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/zlib/depend</a></div><div class='hunk'>@@ -1,10 +1,169 @@</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES START</div><div class='ctx'> zlib.o: $(RUBY_EXTCONF_H)</div><div class='ctx'> zlib.o: $(arch_hdrdir)/ruby/config.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/assert.h</div><div class='ctx'> zlib.o: $(hdrdir)/ruby/backward.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/backward/2/assume.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/backward/2/attributes.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/backward/2/bool.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/backward/2/inttypes.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/backward/2/limits.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/backward/2/long_long.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/backward/2/stdalign.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/backward/2/stdarg.h</div><div class='ctx'> zlib.o: $(hdrdir)/ruby/defines.h</div><div class='ctx'> zlib.o: $(hdrdir)/ruby/encoding.h</div><div class='ctx'> zlib.o: $(hdrdir)/ruby/intern.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/abi.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/anyargs.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/char.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/double.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/int.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/long.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/short.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/assume.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/alloc_size.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/artificial.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/cold.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/const.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/constexpr.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/deprecated.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/error.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/flag_enum.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/forceinline.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/format.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/noalias.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/nodiscard.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/noexcept.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/noinline.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/nonnull.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/noreturn.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/pure.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/restrict.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/warning.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/attr/weakref.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/cast.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/compiler_is.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/compiler_is/apple.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/compiler_is/clang.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/compiler_is/intel.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/compiler_since.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/config.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/constant_p.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/rarray.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/rbasic.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/rbignum.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/rclass.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/rdata.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/rfile.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/rhash.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/robject.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/rregexp.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/rstring.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/rstruct.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/core/rtypeddata.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/ctype.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/dllexport.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/dosish.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/encoding/coderange.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/encoding/ctype.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/encoding/encoding.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/encoding/pathname.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/encoding/re.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/encoding/sprintf.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/encoding/string.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/encoding/symbol.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/encoding/transcode.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/error.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/eval.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/event.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/fl_type.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/gc.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/glob.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/globals.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/has/attribute.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/has/builtin.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/has/c_attribute.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/has/extension.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/has/feature.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/has/warning.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/array.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/bignum.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/class.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/compar.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/complex.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/cont.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/dir.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/enum.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/enumerator.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/error.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/eval.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/file.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/gc.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/hash.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/io.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/load.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/marshal.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/numeric.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/object.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/parse.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/proc.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/process.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/random.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/range.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/rational.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/re.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/ruby.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/select.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/select/largesize.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/signal.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/sprintf.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/string.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/struct.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/thread.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/time.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/variable.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/intern/vm.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/interpreter.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/iterator.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/memory.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/method.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/module.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/newobj.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/rgengc.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/scan_args.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/special_consts.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/static_assert.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/stdalign.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/stdbool.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/symbol.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/value.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/value_type.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/variable.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/warning_push.h</div><div class='add'>+zlib.o: $(hdrdir)/ruby/internal/xmalloc.h</div><div class='ctx'> zlib.o: $(hdrdir)/ruby/io.h</div><div class='ctx'> zlib.o: $(hdrdir)/ruby/missing.h</div><div class='ctx'> zlib.o: $(hdrdir)/ruby/onigmo.h</div><div class='hunk'>@@ -13,6 +172,5 @@ zlib.o: $(hdrdir)/ruby/ruby.h</div><div class='ctx'> zlib.o: $(hdrdir)/ruby/st.h</div><div class='ctx'> zlib.o: $(hdrdir)/ruby/subst.h</div><div class='ctx'> zlib.o: $(hdrdir)/ruby/thread.h</div><div class='del'>-zlib.o: $(top_srcdir)/include/ruby.h</div><div class='ctx'> zlib.o: zlib.c</div><div class='ctx'> # AUTOGENERATED DEPENDENCIES END</div><div class='head'>diff --git a/ext/zlib/extconf.rb b/ext/zlib/extconf.rb<br/>index fd2f168522..5477f49178 100644<br/>--- a/<a href='/ruby.git/tree/ext/zlib/extconf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/zlib/extconf.rb</a><br/>+++ b/<a href='/ruby.git/tree/ext/zlib/extconf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/zlib/extconf.rb</a></div><div class='hunk'>@@ -10,11 +10,12 @@ require 'rbconfig'</div><div class='ctx'> </div><div class='ctx'> dir_config 'zlib'</div><div class='ctx'> </div><div class='del'>-</div><div class='add'>+libs = $libs</div><div class='ctx'> if %w'z libz zlib1 zlib zdll zlibwapi'.find {|z| have_library(z, 'deflateReset')} and</div><div class='ctx'>     have_header('zlib.h') then</div><div class='ctx'>   have_zlib = true</div><div class='ctx'> else</div><div class='add'>+  $libs = libs</div><div class='ctx'>   unless File.directory?(zsrc = "#{$srcdir}/zlib")</div><div class='ctx'>     dirs = Dir.open($srcdir) {|z| z.grep(/\Azlib-\d+[.\d]*\z/) {|x|"#{$srcdir}/#{x}"}}</div><div class='ctx'>     dirs.delete_if {|x| !File.directory?(x)}</div><div class='hunk'>@@ -31,9 +32,12 @@ else</div><div class='ctx'>       $extso &lt;&lt; dll</div><div class='ctx'>       $cleanfiles &lt;&lt; "$(topdir)/#{dll}" &lt;&lt; "$(ZIMPLIB)"</div><div class='ctx'>       zmk = "\t$(MAKE) -f $(ZMKFILE) TOP=$(ZSRC)"</div><div class='add'>+      zopts = []</div><div class='ctx'>       if $nmake</div><div class='ctx'>         zmkfile = "$(ZSRC)/win32/Makefile.msc"</div><div class='ctx'>         m = "#{zsrc}/win32/Makefile.msc"</div><div class='add'>+        # zopts &lt;&lt; "USE_ASM=1"</div><div class='add'>+        zopts &lt;&lt; "ARCH=#{RbConfig::CONFIG['target_cpu']}"</div><div class='ctx'>       else</div><div class='ctx'>         zmkfile = "$(ZSRC)/win32/Makefile.gcc"</div><div class='ctx'>         m = "#{zsrc}/win32/Makefile.gcc"</div><div class='hunk'>@@ -43,7 +47,7 @@ else</div><div class='ctx'>       end</div><div class='ctx'>       m = File.read(m)</div><div class='ctx'>       zimplib = m[/^IMPLIB[ \t]*=[ \t]*(\S+)/, 1]</div><div class='del'>-      $LOCAL_LIBS &lt;&lt; " " &lt;&lt; zimplib</div><div class='add'>+      ($LOCAL_LIBS &lt;&lt; " ./" &lt;&lt; zimplib).strip!</div><div class='ctx'>       unless $nmake or /^TOP[ \t]/ =~ m</div><div class='ctx'>         m.gsub!(/win32\/zlib\.def/, '$(TOP)/\&amp;')</div><div class='ctx'>         m.gsub!(/^(\t.*[ \t])(\S+\.rc)/, '\1-I$(&lt;D) $&lt;')</div><div class='hunk'>@@ -55,10 +59,11 @@ else</div><div class='ctx'>       addconf.push(</div><div class='ctx'>         "ZMKFILE = #{zmkfile}\n",</div><div class='ctx'>         "ZIMPLIB = #{zimplib}\n",</div><div class='add'>+        "ZOPTS = #{zopts.join(' ')}\n",</div><div class='ctx'>         "$(TARGET_SO): $(ZIMPLIB)\n",</div><div class='ctx'>         "$(ZIMPLIB):\n",</div><div class='del'>-        "#{zmk} $@\n",</div><div class='del'>-        "install-so: $(topdir)/#{dll}",</div><div class='add'>+        "#{zmk} $(ZOPTS) $@\n",</div><div class='add'>+        "install-so static: $(topdir)/#{dll}",</div><div class='ctx'>         "$(topdir)/#{dll}: $(ZIMPLIB)\n",</div><div class='ctx'>         "\t$(Q) $(COPY) #{dll} $(@D)\n",</div><div class='ctx'>         "clean: clean-zsrc\n",</div><div class='hunk'>@@ -116,10 +121,12 @@ if have_zlib</div><div class='ctx'>     $defs &lt;&lt; "-DHAVE_CRC32_COMBINE"</div><div class='ctx'>     $defs &lt;&lt; "-DHAVE_ADLER32_COMBINE"</div><div class='ctx'>     $defs &lt;&lt; "-DHAVE_TYPE_Z_CRC_T"</div><div class='add'>+    $defs &lt;&lt; "-DHAVE_TYPE_Z_SIZE_T"</div><div class='ctx'>   else</div><div class='ctx'>     have_func('crc32_combine', 'zlib.h')</div><div class='ctx'>     have_func('adler32_combine', 'zlib.h')</div><div class='ctx'>     have_type('z_crc_t', 'zlib.h')</div><div class='add'>+    have_type('z_size_t', 'zlib.h')</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   create_makefile('zlib') {|conf|</div><div class='head'>diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c<br/>index 1b48bb2677..aefdba0ebd 100644<br/>--- a/<a href='/ruby.git/tree/ext/zlib/zlib.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/zlib/zlib.c</a><br/>+++ b/<a href='/ruby.git/tree/ext/zlib/zlib.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/zlib/zlib.c</a></div><div class='hunk'>@@ -25,7 +25,11 @@</div><div class='ctx'> # define VALGRIND_MAKE_MEM_UNDEFINED(p, n) 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define RUBY_ZLIB_VERSION "1.0.0"</div><div class='add'>+#define RUBY_ZLIB_VERSION "3.0.0"</div><div class='add'>+</div><div class='add'>+#ifndef RB_PASS_CALLED_KEYWORDS</div><div class='add'>+# define rb_class_new_instance_kw(argc, argv, klass, kw_splat) rb_class_new_instance(argc, argv, klass)</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #ifndef GZIP_SUPPORT</div><div class='ctx'> #define GZIP_SUPPORT  1</div><div class='hunk'>@@ -40,6 +44,14 @@</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#if defined(HAVE_TYPE_Z_SIZE_T)</div><div class='add'>+typedef uLong (*checksum_func)(uLong, const Bytef*, z_size_t);</div><div class='add'>+# define crc32 crc32_z</div><div class='add'>+# define adler32 adler32_z</div><div class='add'>+#else</div><div class='add'>+typedef uLong (*checksum_func)(uLong, const Bytef*, uInt);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #if SIZEOF_LONG &gt; SIZEOF_INT</div><div class='ctx'> static inline uInt</div><div class='ctx'> max_uint(long n)</div><div class='hunk'>@@ -52,13 +64,16 @@ max_uint(long n)</div><div class='ctx'> #define MAX_UINT(n) (uInt)(n)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-static ID id_dictionaries;</div><div class='add'>+#define OPTHASH_GIVEN_P(opts) \</div><div class='add'>+    (argc &gt; 0 &amp;&amp; !NIL_P((opts) = rb_check_hash_type(argv[argc-1])) &amp;&amp; (--argc, 1))</div><div class='add'>+</div><div class='add'>+static ID id_dictionaries, id_read, id_buffer;</div><div class='ctx'> </div><div class='ctx'> /*--------- Prototypes --------*/</div><div class='ctx'> </div><div class='ctx'> static NORETURN(void raise_zlib_error(int, const char*));</div><div class='ctx'> static VALUE rb_zlib_version(VALUE);</div><div class='del'>-static VALUE do_checksum(int, VALUE*, uLong (*)(uLong, const Bytef*, uInt));</div><div class='add'>+static VALUE do_checksum(int, VALUE*, checksum_func);</div><div class='ctx'> static VALUE rb_zlib_adler32(int, VALUE*, VALUE);</div><div class='ctx'> static VALUE rb_zlib_crc32(int, VALUE*, VALUE);</div><div class='ctx'> static VALUE rb_zlib_crc_table(VALUE);</div><div class='hunk'>@@ -85,6 +100,7 @@ static void zstream_passthrough_input(struct zstream*);</div><div class='ctx'> static VALUE zstream_detach_input(struct zstream*);</div><div class='ctx'> static void zstream_reset(struct zstream*);</div><div class='ctx'> static VALUE zstream_end(struct zstream*);</div><div class='add'>+static VALUE zstream_ensure_end(VALUE v);</div><div class='ctx'> static void zstream_run(struct zstream*, Bytef*, long, int);</div><div class='ctx'> static VALUE zstream_sync(struct zstream*, Bytef*, long);</div><div class='ctx'> static void zstream_mark(void*);</div><div class='hunk'>@@ -125,7 +141,7 @@ static VALUE rb_inflate_s_allocate(VALUE);</div><div class='ctx'> static VALUE rb_inflate_initialize(int, VALUE*, VALUE);</div><div class='ctx'> static VALUE rb_inflate_s_inflate(VALUE, VALUE);</div><div class='ctx'> static void do_inflate(struct zstream*, VALUE);</div><div class='del'>-static VALUE rb_inflate_inflate(VALUE, VALUE);</div><div class='add'>+static VALUE rb_inflate_inflate(int, VALUE*, VALUE);</div><div class='ctx'> static VALUE rb_inflate_addstr(VALUE, VALUE);</div><div class='ctx'> static VALUE rb_inflate_sync(VALUE, VALUE);</div><div class='ctx'> static VALUE rb_inflate_sync_point_p(VALUE);</div><div class='hunk'>@@ -140,7 +156,7 @@ static void gzfile_reset(struct gzfile*);</div><div class='ctx'> static void gzfile_close(struct gzfile*, int);</div><div class='ctx'> static void gzfile_write_raw(struct gzfile*);</div><div class='ctx'> static VALUE gzfile_read_raw_partial(VALUE);</div><div class='del'>-static VALUE gzfile_read_raw_rescue(VALUE);</div><div class='add'>+static VALUE gzfile_read_raw_rescue(VALUE,VALUE);</div><div class='ctx'> static VALUE gzfile_read_raw(struct gzfile*, VALUE outbuf);</div><div class='ctx'> static int gzfile_read_raw_ensure(struct gzfile*, long, VALUE outbuf);</div><div class='ctx'> static char *gzfile_read_raw_until_zero(struct gzfile*, long);</div><div class='hunk'>@@ -280,6 +296,7 @@ static VALUE rb_gzreader_readlines(int, VALUE*, VALUE);</div><div class='ctx'>  *   - Zlib::MemError</div><div class='ctx'>  *   - Zlib::BufError</div><div class='ctx'>  *   - Zlib::VersionError</div><div class='add'>+ *   - Zlib::InProgressError</div><div class='ctx'>  *</div><div class='ctx'>  * (if you have GZIP_SUPPORT)</div><div class='ctx'>  * - Zlib::GzipReader</div><div class='hunk'>@@ -296,7 +313,7 @@ void Init_zlib(void);</div><div class='ctx'> /*--------- Exceptions --------*/</div><div class='ctx'> </div><div class='ctx'> static VALUE cZError, cStreamEnd, cNeedDict;</div><div class='del'>-static VALUE cStreamError, cDataError, cMemError, cBufError, cVersionError;</div><div class='add'>+static VALUE cStreamError, cDataError, cMemError, cBufError, cVersionError, cInProgressError;</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> raise_zlib_error(int err, const char *msg)</div><div class='hunk'>@@ -346,7 +363,9 @@ raise_zlib_error(int err, const char *msg)</div><div class='ctx'> static void</div><div class='ctx'> finalizer_warn(const char *msg)</div><div class='ctx'> {</div><div class='add'>+#if 0</div><div class='ctx'>     fprintf(stderr, "zlib(finalizer): %s\n", msg);</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -360,33 +379,35 @@ finalizer_warn(const char *msg)</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_zlib_version(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE str;</div><div class='del'>-</div><div class='del'>-    str = rb_str_new2(zlibVersion());</div><div class='del'>-    OBJ_TAINT(str);  /* for safe */</div><div class='del'>-    return str;</div><div class='add'>+    return rb_str_new2(zlibVersion());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if SIZEOF_LONG &gt; SIZEOF_INT</div><div class='add'>+#if SIZEOF_LONG * CHAR_BIT &gt; 32</div><div class='add'>+# define mask32(x) ((x) &amp; 0xffffffff)</div><div class='add'>+#else</div><div class='add'>+# define mask32(x) (x)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if SIZEOF_LONG &gt; SIZEOF_INT &amp;&amp; !defined(HAVE_TYPE_Z_SIZE_T)</div><div class='ctx'> static uLong</div><div class='ctx'> checksum_long(uLong (*func)(uLong, const Bytef*, uInt), uLong sum, const Bytef *ptr, long len)</div><div class='ctx'> {</div><div class='ctx'>     if (len &gt; UINT_MAX) {</div><div class='ctx'> 	do {</div><div class='del'>-	    sum = func(sum, ptr, UINT_MAX);</div><div class='add'>+	    sum = func(mask32(sum), ptr, UINT_MAX);</div><div class='ctx'> 	    ptr += UINT_MAX;</div><div class='ctx'> 	    len -= UINT_MAX;</div><div class='ctx'> 	} while (len &gt;= UINT_MAX);</div><div class='ctx'>     }</div><div class='del'>-    if (len &gt; 0) sum = func(sum, ptr, (uInt)len);</div><div class='add'>+    if (len &gt; 0) sum = func(mask32(sum), ptr, (uInt)len);</div><div class='ctx'>     return sum;</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='del'>-#define checksum_long(func, sum, ptr, len) (func)((sum), (ptr), (len))</div><div class='add'>+#define checksum_long(func, sum, ptr, len) (func)(mask32(sum), (ptr), (len))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-do_checksum(int argc, VALUE *argv, uLong (*func)(uLong, const Bytef*, uInt))</div><div class='add'>+do_checksum(int argc, VALUE *argv, checksum_func func)</div><div class='ctx'> {</div><div class='ctx'>     VALUE str, vsum;</div><div class='ctx'>     unsigned long sum;</div><div class='hunk'>@@ -404,7 +425,16 @@ do_checksum(int argc, VALUE *argv, uLong (*func)(uLong, const Bytef*, uInt))</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(str)) {</div><div class='del'>-	sum = func(sum, Z_NULL, 0);</div><div class='add'>+	sum = func(mask32(sum), Z_NULL, 0);</div><div class='add'>+    }</div><div class='add'>+    else if (rb_obj_is_kind_of(str, rb_cIO)) {</div><div class='add'>+        VALUE buf;</div><div class='add'>+        VALUE buflen = INT2NUM(8192);</div><div class='add'>+</div><div class='add'>+        while (!NIL_P(buf = rb_funcall(str, id_read, 1, buflen))) {</div><div class='add'>+            StringValue(buf);</div><div class='add'>+            sum = checksum_long(func, sum, (Bytef*)RSTRING_PTR(buf), RSTRING_LEN(buf));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	StringValue(str);</div><div class='hunk'>@@ -421,6 +451,8 @@ do_checksum(int argc, VALUE *argv, uLong (*func)(uLong, const Bytef*, uInt))</div><div class='ctx'>  * Calculates Adler-32 checksum for +string+, and returns updated value of</div><div class='ctx'>  * +adler+. If +string+ is omitted, it returns the Adler-32 initial value. If</div><div class='ctx'>  * +adler+ is omitted, it assumes that the initial value is given to +adler+.</div><div class='add'>+ * If +string+ is an IO instance, reads from the IO until the IO returns nil</div><div class='add'>+ * and returns Adler-32 of all read data.</div><div class='ctx'>  *</div><div class='ctx'>  * Example usage:</div><div class='ctx'>  *</div><div class='hunk'>@@ -443,7 +475,7 @@ rb_zlib_adler32(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>  *</div><div class='ctx'>  * call-seq: Zlib.adler32_combine(adler1, adler2, len2)</div><div class='ctx'>  *</div><div class='del'>- * Combine two Adler-32 check values in to one.  +alder1+ is the first Adler-32</div><div class='add'>+ * Combine two Adler-32 check values in to one.  +adler1+ is the first Adler-32</div><div class='ctx'>  * value, +adler2+ is the second Adler-32 value.  +len2+ is the length of the</div><div class='ctx'>  * string used to generate +adler2+.</div><div class='ctx'>  *</div><div class='hunk'>@@ -465,7 +497,9 @@ rb_zlib_adler32_combine(VALUE klass, VALUE adler1, VALUE adler2, VALUE len2)</div><div class='ctx'>  *</div><div class='ctx'>  * Calculates CRC checksum for +string+, and returns updated value of +crc+. If</div><div class='ctx'>  * +string+ is omitted, it returns the CRC initial value. If +crc+ is omitted, it</div><div class='del'>- * assumes that the initial value is given to +crc+.</div><div class='add'>+ * assumes that the initial value is given to +crc+. If +string+ is an IO instance,</div><div class='add'>+ * reads from the IO until the IO returns nil and returns CRC checksum of all read</div><div class='add'>+ * data.</div><div class='ctx'>  *</div><div class='ctx'>  * FIXME: expression.</div><div class='ctx'>  */</div><div class='hunk'>@@ -529,6 +563,7 @@ struct zstream {</div><div class='ctx'>     unsigned long flags;</div><div class='ctx'>     VALUE buf;</div><div class='ctx'>     VALUE input;</div><div class='add'>+    VALUE mutex;</div><div class='ctx'>     z_stream stream;</div><div class='ctx'>     const struct zstream_funcs {</div><div class='ctx'> 	int (*reset)(z_streamp);</div><div class='hunk'>@@ -537,13 +572,15 @@ struct zstream {</div><div class='ctx'>     } *func;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-#define ZSTREAM_FLAG_READY      0x1</div><div class='del'>-#define ZSTREAM_FLAG_IN_STREAM  0x2</div><div class='del'>-#define ZSTREAM_FLAG_FINISHED   0x4</div><div class='del'>-#define ZSTREAM_FLAG_CLOSING    0x8</div><div class='del'>-#define ZSTREAM_FLAG_GZFILE     0x10 /* disallows yield from expand_buffer for</div><div class='add'>+#define ZSTREAM_FLAG_READY      (1 &lt;&lt; 0)</div><div class='add'>+#define ZSTREAM_FLAG_IN_STREAM  (1 &lt;&lt; 1)</div><div class='add'>+#define ZSTREAM_FLAG_FINISHED   (1 &lt;&lt; 2)</div><div class='add'>+#define ZSTREAM_FLAG_CLOSING    (1 &lt;&lt; 3)</div><div class='add'>+#define ZSTREAM_FLAG_GZFILE     (1 &lt;&lt; 4) /* disallows yield from expand_buffer for</div><div class='ctx'>                                         gzip*/</div><div class='del'>-#define ZSTREAM_FLAG_UNUSED     0x20</div><div class='add'>+#define ZSTREAM_REUSE_BUFFER    (1 &lt;&lt; 5)</div><div class='add'>+#define ZSTREAM_IN_PROGRESS     (1 &lt;&lt; 6)</div><div class='add'>+#define ZSTREAM_FLAG_UNUSED     (1 &lt;&lt; 7)</div><div class='ctx'> </div><div class='ctx'> #define ZSTREAM_READY(z)       ((z)-&gt;flags |= ZSTREAM_FLAG_READY)</div><div class='ctx'> #define ZSTREAM_IS_READY(z)    ((z)-&gt;flags &amp; ZSTREAM_FLAG_READY)</div><div class='hunk'>@@ -552,6 +589,8 @@ struct zstream {</div><div class='ctx'> #define ZSTREAM_IS_GZFILE(z)   ((z)-&gt;flags &amp; ZSTREAM_FLAG_GZFILE)</div><div class='ctx'> #define ZSTREAM_BUF_FILLED(z)  (NIL_P((z)-&gt;buf) ? 0 : RSTRING_LEN((z)-&gt;buf))</div><div class='ctx'> </div><div class='add'>+#define ZSTREAM_REUSE_BUFFER_P(z)     ((z)-&gt;flags &amp; ZSTREAM_REUSE_BUFFER)</div><div class='add'>+</div><div class='ctx'> #define ZSTREAM_EXPAND_BUFFER_OK          0</div><div class='ctx'> </div><div class='ctx'> /* I think that more better value should be found,</div><div class='hunk'>@@ -570,7 +609,9 @@ static const struct zstream_funcs inflate_funcs = {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> struct zstream_run_args {</div><div class='del'>-    struct zstream * z;</div><div class='add'>+    struct zstream *const z;</div><div class='add'>+    Bytef *src;</div><div class='add'>+    long len;</div><div class='ctx'>     int flush;         /* stream flush value for inflate() or deflate() */</div><div class='ctx'>     int interrupt;     /* stop processing the stream and return to ruby */</div><div class='ctx'>     int jump_state;    /* for buffer expansion block break or exception */</div><div class='hunk'>@@ -601,6 +642,7 @@ zstream_init(struct zstream *z, const struct zstream_funcs *func)</div><div class='ctx'>     z-&gt;flags = 0;</div><div class='ctx'>     z-&gt;buf = Qnil;</div><div class='ctx'>     z-&gt;input = Qnil;</div><div class='add'>+    z-&gt;mutex = rb_mutex_new();</div><div class='ctx'>     z-&gt;stream.zalloc = zlib_mem_alloc;</div><div class='ctx'>     z-&gt;stream.zfree = zlib_mem_free;</div><div class='ctx'>     z-&gt;stream.opaque = Z_NULL;</div><div class='hunk'>@@ -627,14 +669,22 @@ zstream_expand_buffer(struct zstream *z)</div><div class='ctx'> 	long buf_filled = ZSTREAM_BUF_FILLED(z);</div><div class='ctx'> 	if (buf_filled &gt;= ZSTREAM_AVAIL_OUT_STEP_MAX) {</div><div class='ctx'> 	    int state = 0;</div><div class='del'>-	    VALUE self = (VALUE)z-&gt;stream.opaque;</div><div class='ctx'> </div><div class='del'>-	    rb_obj_reveal(z-&gt;buf, rb_cString);</div><div class='del'>-	    OBJ_INFECT(z-&gt;buf, self);</div><div class='add'>+            if (!ZSTREAM_REUSE_BUFFER_P(z)) {</div><div class='add'>+	        rb_obj_reveal(z-&gt;buf, rb_cString);</div><div class='add'>+            }</div><div class='ctx'> </div><div class='add'>+            rb_mutex_unlock(z-&gt;mutex);</div><div class='ctx'> 	    rb_protect(rb_yield, z-&gt;buf, &amp;state);</div><div class='del'>-</div><div class='del'>-	    z-&gt;buf = Qnil;</div><div class='add'>+            rb_mutex_lock(z-&gt;mutex);</div><div class='add'>+</div><div class='add'>+            if (ZSTREAM_REUSE_BUFFER_P(z)) {</div><div class='add'>+                rb_str_modify(z-&gt;buf);</div><div class='add'>+                rb_str_set_len(z-&gt;buf, 0);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                z-&gt;buf = Qnil;</div><div class='add'>+            }</div><div class='ctx'> 	    zstream_expand_buffer_into(z, ZSTREAM_AVAIL_OUT_STEP_MAX);</div><div class='ctx'> </div><div class='ctx'> 	    if (state)</div><div class='hunk'>@@ -738,7 +788,7 @@ zstream_append_buffer(struct zstream *z, const Bytef *src, long len)</div><div class='ctx'> static VALUE</div><div class='ctx'> zstream_detach_buffer(struct zstream *z)</div><div class='ctx'> {</div><div class='del'>-    VALUE dst, self = (VALUE)z-&gt;stream.opaque;</div><div class='add'>+    VALUE dst;</div><div class='ctx'> </div><div class='ctx'>     if (!ZSTREAM_IS_FINISHED(z) &amp;&amp; !ZSTREAM_IS_GZFILE(z) &amp;&amp;</div><div class='ctx'> 	    rb_block_given_p()) {</div><div class='hunk'>@@ -752,11 +802,11 @@ zstream_detach_buffer(struct zstream *z)</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	dst = z-&gt;buf;</div><div class='del'>-	rb_obj_reveal(dst, rb_cString);</div><div class='add'>+        if (!ZSTREAM_REUSE_BUFFER_P(z)) {</div><div class='add'>+	    rb_obj_reveal(dst, rb_cString);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(dst, self);</div><div class='del'>-</div><div class='ctx'>     z-&gt;buf = Qnil;</div><div class='ctx'>     z-&gt;stream.next_out = 0;</div><div class='ctx'>     z-&gt;stream.avail_out = 0;</div><div class='hunk'>@@ -862,7 +912,6 @@ zstream_discard_input(struct zstream *z, long len)</div><div class='ctx'> 	}</div><div class='ctx'> 	rb_str_resize(z-&gt;input, newlen);</div><div class='ctx'> 	if (newlen == 0) {</div><div class='del'>-	    rb_gc_force_recycle(z-&gt;input);</div><div class='ctx'> 	    z-&gt;input = Qnil;</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='hunk'>@@ -955,6 +1004,12 @@ zstream_end(struct zstream *z)</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+zstream_ensure_end(VALUE v)</div><div class='add'>+{</div><div class='add'>+    return zstream_end((struct zstream *)v);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void *</div><div class='ctx'> zstream_run_func(void *ptr)</div><div class='ctx'> {</div><div class='hunk'>@@ -1011,6 +1066,7 @@ zstream_run_func(void *ptr)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * There is no safe way to interrupt z-&gt;run-&gt;func().</div><div class='add'>+ * async-signal-safe</div><div class='ctx'>  */</div><div class='ctx'> static void</div><div class='ctx'> zstream_unblock_func(void *ptr)</div><div class='hunk'>@@ -1020,19 +1076,18 @@ zstream_unblock_func(void *ptr)</div><div class='ctx'>     args-&gt;interrupt = 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-zstream_run(struct zstream *z, Bytef *src, long len, int flush)</div><div class='add'>+static VALUE</div><div class='add'>+zstream_run_try(VALUE value_arg)</div><div class='ctx'> {</div><div class='del'>-    struct zstream_run_args args;</div><div class='add'>+    struct zstream_run_args *args = (struct zstream_run_args *)value_arg;</div><div class='add'>+    struct zstream *z = args-&gt;z;</div><div class='add'>+    Bytef *src = args-&gt;src;</div><div class='add'>+    long len = args-&gt;len;</div><div class='add'>+    int flush = args-&gt;flush;</div><div class='add'>+</div><div class='ctx'>     int err;</div><div class='ctx'>     VALUE old_input = Qnil;</div><div class='ctx'> </div><div class='del'>-    args.z = z;</div><div class='del'>-    args.flush = flush;</div><div class='del'>-    args.interrupt = 0;</div><div class='del'>-    args.jump_state = 0;</div><div class='del'>-    args.stream_output = !ZSTREAM_IS_GZFILE(z) &amp;&amp; rb_block_given_p();</div><div class='del'>-</div><div class='ctx'>     if (NIL_P(z-&gt;input) &amp;&amp; len == 0) {</div><div class='ctx'> 	z-&gt;stream.next_in = (Bytef*)"";</div><div class='ctx'> 	z-&gt;stream.avail_in = 0;</div><div class='hunk'>@@ -1053,8 +1108,20 @@ zstream_run(struct zstream *z, Bytef *src, long len, int flush)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> loop:</div><div class='del'>-    err = (int)(VALUE)rb_thread_call_without_gvl(zstream_run_func, (void *)&amp;args,</div><div class='del'>-						 zstream_unblock_func, (void *)&amp;args);</div><div class='add'>+#ifndef RB_NOGVL_UBF_ASYNC_SAFE</div><div class='add'>+    err = (int)(VALUE)rb_thread_call_without_gvl(zstream_run_func, (void *)args,</div><div class='add'>+						 zstream_unblock_func, (void *)args);</div><div class='add'>+#else</div><div class='add'>+    err = (int)(VALUE)rb_nogvl(zstream_run_func, (void *)args,</div><div class='add'>+                               zstream_unblock_func, (void *)args,</div><div class='add'>+                               RB_NOGVL_UBF_ASYNC_SAFE);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    /* retry if no exception is thrown */</div><div class='add'>+    if (err == Z_OK &amp;&amp; args-&gt;interrupt) {</div><div class='add'>+       args-&gt;interrupt = 0;</div><div class='add'>+       goto loop;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (flush != Z_FINISH &amp;&amp; err == Z_BUF_ERROR</div><div class='ctx'> 	    &amp;&amp; z-&gt;stream.avail_out &gt; 0) {</div><div class='hunk'>@@ -1086,11 +1153,54 @@ loop:</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(old_input)) {</div><div class='ctx'> 	rb_str_resize(old_input, 0);</div><div class='del'>-	rb_gc_force_recycle(old_input);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (args.jump_state)</div><div class='del'>-	rb_jump_tag(args.jump_state);</div><div class='add'>+    if (args-&gt;jump_state)</div><div class='add'>+	rb_jump_tag(args-&gt;jump_state);</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+zstream_run_ensure(VALUE value_arg)</div><div class='add'>+{</div><div class='add'>+    struct zstream_run_args *args = (struct zstream_run_args *)value_arg;</div><div class='add'>+</div><div class='add'>+    /* Remove ZSTREAM_IN_PROGRESS flag to signal that this zstream is not in use. */</div><div class='add'>+    args-&gt;z-&gt;flags &amp;= ~ZSTREAM_IN_PROGRESS;</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+zstream_run_synchronized(VALUE value_arg)</div><div class='add'>+{</div><div class='add'>+    struct zstream_run_args *args = (struct zstream_run_args *)value_arg;</div><div class='add'>+</div><div class='add'>+    /* Cannot start zstream while it is in progress. */</div><div class='add'>+    if (args-&gt;z-&gt;flags &amp; ZSTREAM_IN_PROGRESS) {</div><div class='add'>+        rb_raise(cInProgressError, "zlib stream is in progress");</div><div class='add'>+    }</div><div class='add'>+    args-&gt;z-&gt;flags |= ZSTREAM_IN_PROGRESS;</div><div class='add'>+</div><div class='add'>+    rb_ensure(zstream_run_try, value_arg, zstream_run_ensure, value_arg);</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+zstream_run(struct zstream *z, Bytef *src, long len, int flush)</div><div class='add'>+{</div><div class='add'>+    struct zstream_run_args args = {</div><div class='add'>+        .z = z,</div><div class='add'>+        .src = src,</div><div class='add'>+        .len = len,</div><div class='add'>+        .flush = flush,</div><div class='add'>+        .interrupt = 0,</div><div class='add'>+        .jump_state = 0,</div><div class='add'>+        .stream_output = !ZSTREAM_IS_GZFILE(z) &amp;&amp; rb_block_given_p(),</div><div class='add'>+    };</div><div class='add'>+    rb_mutex_synchronize(z-&gt;mutex, zstream_run_synchronized, (VALUE)&amp;args);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1138,6 +1248,7 @@ zstream_mark(void *p)</div><div class='ctx'>     struct zstream *z = p;</div><div class='ctx'>     rb_gc_mark(z-&gt;buf);</div><div class='ctx'>     rb_gc_mark(z-&gt;input);</div><div class='add'>+    rb_gc_mark(z-&gt;mutex);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -1319,7 +1430,6 @@ rb_zstream_flush_next_in(VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(obj, struct zstream, &amp;zstream_data_type, z);</div><div class='ctx'>     dst = zstream_detach_input(z);</div><div class='del'>-    OBJ_INFECT(dst, obj);</div><div class='ctx'>     return dst;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1638,9 +1748,8 @@ rb_deflate_s_deflate(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'>     args[0] = (VALUE)&amp;z;</div><div class='ctx'>     args[1] = src;</div><div class='del'>-    dst = rb_ensure(deflate_run, (VALUE)args, zstream_end, (VALUE)&amp;z);</div><div class='add'>+    dst = rb_ensure(deflate_run, (VALUE)args, zstream_ensure_end, (VALUE)&amp;z);</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(dst, src);</div><div class='ctx'>     return dst;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1690,7 +1799,6 @@ rb_deflate_deflate(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     VALUE src, flush;</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "11", &amp;src, &amp;flush);</div><div class='del'>-    OBJ_INFECT(obj, src);</div><div class='ctx'>     do_deflate(z, src, ARG_FLUSH(flush));</div><div class='ctx'> </div><div class='ctx'>     return zstream_detach_buffer(z);</div><div class='hunk'>@@ -1708,7 +1816,6 @@ rb_deflate_deflate(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_deflate_addstr(VALUE obj, VALUE src)</div><div class='ctx'> {</div><div class='del'>-    OBJ_INFECT(obj, src);</div><div class='ctx'>     do_deflate(get_zstream(obj), src, Z_NO_FLUSH);</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='hunk'>@@ -1808,7 +1915,6 @@ rb_deflate_set_dictionary(VALUE obj, VALUE dic)</div><div class='ctx'>     VALUE src = dic;</div><div class='ctx'>     int err;</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(obj, dic);</div><div class='ctx'>     StringValue(src);</div><div class='ctx'>     err = deflateSetDictionary(&amp;z-&gt;stream,</div><div class='ctx'> 			       (Bytef*)RSTRING_PTR(src), RSTRING_LENINT(src));</div><div class='hunk'>@@ -1953,9 +2059,8 @@ rb_inflate_s_inflate(VALUE obj, VALUE src)</div><div class='ctx'> </div><div class='ctx'>     args[0] = (VALUE)&amp;z;</div><div class='ctx'>     args[1] = src;</div><div class='del'>-    dst = rb_ensure(inflate_run, (VALUE)args, zstream_end, (VALUE)&amp;z);</div><div class='add'>+    dst = rb_ensure(inflate_run, (VALUE)args, zstream_ensure_end, (VALUE)&amp;z);</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(dst, src);</div><div class='ctx'>     return dst;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1996,8 +2101,8 @@ rb_inflate_add_dictionary(VALUE obj, VALUE dictionary)</div><div class='ctx'>  * Document-method: Zlib::Inflate#inflate</div><div class='ctx'>  *</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   inflate(deflate_string)                 -&gt; String</div><div class='del'>- *   inflate(deflate_string) { |chunk| ... } -&gt; nil</div><div class='add'>+ *   inflate(deflate_string, buffer: nil)                 -&gt; String</div><div class='add'>+ *   inflate(deflate_string, buffer: nil) { |chunk| ... } -&gt; nil</div><div class='ctx'>  *</div><div class='ctx'>  * Inputs +deflate_string+ into the inflate stream and returns the output from</div><div class='ctx'>  * the stream.  Calling this method, both the input and the output buffer of</div><div class='hunk'>@@ -2007,6 +2112,15 @@ rb_inflate_add_dictionary(VALUE obj, VALUE dictionary)</div><div class='ctx'>  * If a block is given consecutive inflated chunks from the +deflate_string+</div><div class='ctx'>  * are yielded to the block and +nil+ is returned.</div><div class='ctx'>  *</div><div class='add'>+ * If a :buffer keyword argument is given and not nil:</div><div class='add'>+ *</div><div class='add'>+ * * The :buffer keyword should be a String, and will used as the output buffer.</div><div class='add'>+ *   Using this option can reuse the memory required during inflation.</div><div class='add'>+ * * When not passing a block, the return value will be the same object as the</div><div class='add'>+ *   :buffer keyword argument.</div><div class='add'>+ * * When passing a block, the yielded chunks will be the same value as the</div><div class='add'>+ *   :buffer keyword argument.</div><div class='add'>+ *</div><div class='ctx'>  * Raises a Zlib::NeedDict exception if a preset dictionary is needed to</div><div class='ctx'>  * decompress.  Set the dictionary by Zlib::Inflate#set_dictionary and then</div><div class='ctx'>  * call this method again with an empty string to flush the stream:</div><div class='hunk'>@@ -2030,12 +2144,37 @@ rb_inflate_add_dictionary(VALUE obj, VALUE dictionary)</div><div class='ctx'>  * See also Zlib::Inflate.new</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_inflate_inflate(VALUE obj, VALUE src)</div><div class='add'>+rb_inflate_inflate(int argc, VALUE* argv, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     struct zstream *z = get_zstream(obj);</div><div class='del'>-    VALUE dst;</div><div class='add'>+    VALUE dst, src, opts, buffer = Qnil;</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(obj, src);</div><div class='add'>+    if (OPTHASH_GIVEN_P(opts)) {</div><div class='add'>+        VALUE buf;</div><div class='add'>+        rb_get_kwargs(opts, &amp;id_buffer, 0, 1, &amp;buf);</div><div class='add'>+        if (buf != Qundef &amp;&amp; buf != Qnil) {</div><div class='add'>+            buffer = StringValue(buf);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (buffer != Qnil) {</div><div class='add'>+        if (!(ZSTREAM_REUSE_BUFFER_P(z) &amp;&amp; z-&gt;buf == buffer)) {</div><div class='add'>+            long len = RSTRING_LEN(buffer);</div><div class='add'>+            if (len &gt;= ZSTREAM_AVAIL_OUT_STEP_MAX) {</div><div class='add'>+                rb_str_modify(buffer);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                len = ZSTREAM_AVAIL_OUT_STEP_MAX - len;</div><div class='add'>+                rb_str_modify_expand(buffer, len);</div><div class='add'>+            }</div><div class='add'>+            rb_str_set_len(buffer, 0);</div><div class='add'>+            z-&gt;flags |= ZSTREAM_REUSE_BUFFER;</div><div class='add'>+            z-&gt;buf = buffer;</div><div class='add'>+        }</div><div class='add'>+    } else if (ZSTREAM_REUSE_BUFFER_P(z)) {</div><div class='add'>+        z-&gt;flags &amp;= ~ZSTREAM_REUSE_BUFFER;</div><div class='add'>+        z-&gt;buf = Qnil;</div><div class='add'>+    }</div><div class='add'>+    rb_scan_args(argc, argv, "10", &amp;src);</div><div class='ctx'> </div><div class='ctx'>     if (ZSTREAM_IS_FINISHED(z)) {</div><div class='ctx'> 	if (NIL_P(src)) {</div><div class='hunk'>@@ -2044,8 +2183,11 @@ rb_inflate_inflate(VALUE obj, VALUE src)</div><div class='ctx'> 	else {</div><div class='ctx'> 	    StringValue(src);</div><div class='ctx'> 	    zstream_append_buffer2(z, src);</div><div class='del'>-	    dst = rb_str_new(0, 0);</div><div class='del'>-	    OBJ_INFECT(dst, obj);</div><div class='add'>+	    if (ZSTREAM_REUSE_BUFFER_P(z)) {</div><div class='add'>+                dst = rb_str_resize(buffer, 0);</div><div class='add'>+            } else {</div><div class='add'>+                dst = rb_str_new(0, 0);</div><div class='add'>+            }</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='hunk'>@@ -2071,8 +2213,6 @@ rb_inflate_addstr(VALUE obj, VALUE src)</div><div class='ctx'> {</div><div class='ctx'>     struct zstream *z = get_zstream(obj);</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(obj, src);</div><div class='del'>-</div><div class='ctx'>     if (ZSTREAM_IS_FINISHED(z)) {</div><div class='ctx'> 	if (!NIL_P(src)) {</div><div class='ctx'> 	    StringValue(src);</div><div class='hunk'>@@ -2102,7 +2242,6 @@ rb_inflate_sync(VALUE obj, VALUE src)</div><div class='ctx'> {</div><div class='ctx'>     struct zstream *z = get_zstream(obj);</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(obj, src);</div><div class='ctx'>     StringValue(src);</div><div class='ctx'>     return zstream_sync(z, (Bytef*)RSTRING_PTR(src), RSTRING_LEN(src));</div><div class='ctx'> }</div><div class='hunk'>@@ -2144,7 +2283,6 @@ rb_inflate_set_dictionary(VALUE obj, VALUE dic)</div><div class='ctx'>     VALUE src = dic;</div><div class='ctx'>     int err;</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(obj, dic);</div><div class='ctx'>     StringValue(src);</div><div class='ctx'>     err = inflateSetDictionary(&amp;z-&gt;stream,</div><div class='ctx'> 			       (Bytef*)RSTRING_PTR(src), RSTRING_LENINT(src));</div><div class='hunk'>@@ -2201,7 +2339,7 @@ rb_inflate_set_dictionary(VALUE obj, VALUE dic)</div><div class='ctx'> #define OS_CODE  OS_UNIX</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-static ID id_write, id_read, id_readpartial, id_flush, id_seek, id_close, id_path, id_input;</div><div class='add'>+static ID id_write, id_readpartial, id_flush, id_seek, id_close, id_path, id_input;</div><div class='ctx'> static VALUE cGzError, cNoFooter, cCRCError, cLengthError;</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -2232,6 +2370,7 @@ struct gzfile {</div><div class='ctx'> #define GZFILE_FLAG_SYNC             ZSTREAM_FLAG_UNUSED</div><div class='ctx'> #define GZFILE_FLAG_HEADER_FINISHED  (ZSTREAM_FLAG_UNUSED &lt;&lt; 1)</div><div class='ctx'> #define GZFILE_FLAG_FOOTER_FINISHED  (ZSTREAM_FLAG_UNUSED &lt;&lt; 2)</div><div class='add'>+#define GZFILE_FLAG_MTIME_IS_SET     (ZSTREAM_FLAG_UNUSED &lt;&lt; 3)</div><div class='ctx'> </div><div class='ctx'> #define GZFILE_IS_FINISHED(gz) \</div><div class='ctx'>     (ZSTREAM_IS_FINISHED(&amp;(gz)-&gt;z) &amp;&amp; ZSTREAM_BUF_FILLED(&amp;(gz)-&gt;z) == 0)</div><div class='hunk'>@@ -2362,7 +2501,6 @@ gzfile_write_raw(struct gzfile *gz)</div><div class='ctx'> </div><div class='ctx'>     if (ZSTREAM_BUF_FILLED(&amp;gz-&gt;z) &gt; 0) {</div><div class='ctx'> 	str = zstream_detach_buffer(&amp;gz-&gt;z);</div><div class='del'>-	OBJ_TAINT(str);  /* for safe */</div><div class='ctx'> 	rb_funcall(gz-&gt;io, id_write, 1, str);</div><div class='ctx'> 	if ((gz-&gt;z.flags &amp; GZFILE_FLAG_SYNC)</div><div class='ctx'> 	    &amp;&amp; rb_respond_to(gz-&gt;io, id_flush))</div><div class='hunk'>@@ -2383,7 +2521,7 @@ gzfile_read_raw_partial(VALUE arg)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-gzfile_read_raw_rescue(VALUE arg)</div><div class='add'>+gzfile_read_raw_rescue(VALUE arg, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     struct read_raw_arg *ra = (struct read_raw_arg *)arg;</div><div class='ctx'>     VALUE str = Qnil;</div><div class='hunk'>@@ -2519,7 +2657,7 @@ gzfile_make_header(struct gzfile *gz)</div><div class='ctx'>     if (!NIL_P(gz-&gt;comment)) {</div><div class='ctx'> 	flags |= GZ_FLAG_COMMENT;</div><div class='ctx'>     }</div><div class='del'>-    if (gz-&gt;mtime == 0) {</div><div class='add'>+    if (!(gz-&gt;z.flags &amp; GZFILE_FLAG_MTIME_IS_SET)) {</div><div class='ctx'> 	gz-&gt;mtime = time(0);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -2625,7 +2763,6 @@ gzfile_read_header(struct gzfile *gz, VALUE outbuf)</div><div class='ctx'> 	p = gzfile_read_raw_until_zero(gz, 0);</div><div class='ctx'> 	len = p - RSTRING_PTR(gz-&gt;z.input);</div><div class='ctx'> 	gz-&gt;orig_name = rb_str_new(RSTRING_PTR(gz-&gt;z.input), len);</div><div class='del'>-	OBJ_TAINT(gz-&gt;orig_name);  /* for safe */</div><div class='ctx'> 	zstream_discard_input(&amp;gz-&gt;z, len + 1);</div><div class='ctx'>     }</div><div class='ctx'>     if (flags &amp; GZ_FLAG_COMMENT) {</div><div class='hunk'>@@ -2635,7 +2772,6 @@ gzfile_read_header(struct gzfile *gz, VALUE outbuf)</div><div class='ctx'> 	p = gzfile_read_raw_until_zero(gz, 0);</div><div class='ctx'> 	len = p - RSTRING_PTR(gz-&gt;z.input);</div><div class='ctx'> 	gz-&gt;comment = rb_str_new(RSTRING_PTR(gz-&gt;z.input), len);</div><div class='del'>-	OBJ_TAINT(gz-&gt;comment);  /* for safe */</div><div class='ctx'> 	zstream_discard_input(&amp;gz-&gt;z, len + 1);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -2726,13 +2862,11 @@ gzfile_newstr(struct gzfile *gz, VALUE str)</div><div class='ctx'> {</div><div class='ctx'>     if (!gz-&gt;enc2) {</div><div class='ctx'> 	rb_enc_associate(str, gz-&gt;enc);</div><div class='del'>-	OBJ_TAINT(str);  /* for safe */</div><div class='ctx'> 	return str;</div><div class='ctx'>     }</div><div class='ctx'>     if (gz-&gt;ec &amp;&amp; rb_enc_dummy_p(gz-&gt;enc2)) {</div><div class='ctx'>         str = rb_econv_str_convert(gz-&gt;ec, str, ECONV_PARTIAL_INPUT);</div><div class='ctx'> 	rb_enc_associate(str, gz-&gt;enc);</div><div class='del'>-	OBJ_TAINT(str);</div><div class='ctx'> 	return str;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_str_conv_enc_opts(str, gz-&gt;enc2, gz-&gt;enc,</div><div class='hunk'>@@ -2779,9 +2913,6 @@ gzfile_readpartial(struct gzfile *gz, long len, VALUE outbuf)</div><div class='ctx'>     if (len &lt; 0)</div><div class='ctx'>         rb_raise(rb_eArgError, "negative length %ld given", len);</div><div class='ctx'> </div><div class='del'>-    if (!NIL_P(outbuf))</div><div class='del'>-	OBJ_TAINT(outbuf);</div><div class='del'>-</div><div class='ctx'>     if (len == 0) {</div><div class='ctx'>         if (NIL_P(outbuf))</div><div class='ctx'>             return rb_str_new(0, 0);</div><div class='hunk'>@@ -2808,11 +2939,8 @@ gzfile_readpartial(struct gzfile *gz, long len, VALUE outbuf)</div><div class='ctx'>     if (!NIL_P(outbuf)) {</div><div class='ctx'>         rb_str_resize(outbuf, RSTRING_LEN(dst));</div><div class='ctx'>         memcpy(RSTRING_PTR(outbuf), RSTRING_PTR(dst), RSTRING_LEN(dst));</div><div class='del'>-	rb_str_resize(dst, 0);</div><div class='del'>-	rb_gc_force_recycle(dst);</div><div class='ctx'> 	dst = outbuf;</div><div class='ctx'>     }</div><div class='del'>-    OBJ_TAINT(dst);  /* for safe */</div><div class='ctx'>     return dst;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2834,7 +2962,6 @@ gzfile_read_all(struct gzfile *gz)</div><div class='ctx'>     dst = zstream_detach_buffer(&amp;gz-&gt;z);</div><div class='ctx'>     if (NIL_P(dst)) return dst;</div><div class='ctx'>     gzfile_calc_crc(gz, dst);</div><div class='del'>-    OBJ_TAINT(dst);</div><div class='ctx'>     return gzfile_newstr(gz, dst);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2869,7 +2996,6 @@ gzfile_getc(struct gzfile *gz)</div><div class='ctx'> 	dst = zstream_shift_buffer(&amp;gz-&gt;z, sp - ss);</div><div class='ctx'> 	gzfile_calc_crc(gz, dst);</div><div class='ctx'> 	rb_str_resize(cbuf, dp - ds);</div><div class='del'>-	OBJ_TAINT(cbuf);</div><div class='ctx'> 	return cbuf;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='hunk'>@@ -2917,7 +3043,7 @@ gzfile_writer_end(struct gzfile *gz)</div><div class='ctx'>     if (ZSTREAM_IS_CLOSING(&amp;gz-&gt;z)) return;</div><div class='ctx'>     gz-&gt;z.flags |= ZSTREAM_FLAG_CLOSING;</div><div class='ctx'> </div><div class='del'>-    rb_ensure(gzfile_writer_end_run, (VALUE)gz, zstream_end, (VALUE)&amp;gz-&gt;z);</div><div class='add'>+    rb_ensure(gzfile_writer_end_run, (VALUE)gz, zstream_ensure_end, (VALUE)&amp;gz-&gt;z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2939,7 +3065,7 @@ gzfile_reader_end(struct gzfile *gz)</div><div class='ctx'>     if (ZSTREAM_IS_CLOSING(&amp;gz-&gt;z)) return;</div><div class='ctx'>     gz-&gt;z.flags |= ZSTREAM_FLAG_CLOSING;</div><div class='ctx'> </div><div class='del'>-    rb_ensure(gzfile_reader_end_run, (VALUE)gz, zstream_end, (VALUE)&amp;gz-&gt;z);</div><div class='add'>+    rb_ensure(gzfile_reader_end_run, (VALUE)gz, zstream_ensure_end, (VALUE)&amp;gz-&gt;z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -2969,7 +3095,6 @@ gzfile_reader_get_unused(struct gzfile *gz)</div><div class='ctx'>     if (NIL_P(gz-&gt;z.input)) return Qnil;</div><div class='ctx'> </div><div class='ctx'>     str = rb_str_resurrect(gz-&gt;z.input);</div><div class='del'>-    OBJ_TAINT(str);  /* for safe */</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3036,7 +3161,7 @@ static VALUE</div><div class='ctx'> new_wrap(VALUE tmp)</div><div class='ctx'> {</div><div class='ctx'>     new_wrap_arg_t *arg = (new_wrap_arg_t *)tmp;</div><div class='del'>-    return rb_class_new_instance(arg-&gt;argc, arg-&gt;argv, arg-&gt;klass);</div><div class='add'>+    return rb_class_new_instance_kw(arg-&gt;argc, arg-&gt;argv, arg-&gt;klass, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3069,7 +3194,7 @@ gzfile_wrap(int argc, VALUE *argv, VALUE klass, int close_io_on_error)</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	obj = rb_class_new_instance(argc, argv, klass);</div><div class='add'>+	obj = rb_class_new_instance_kw(argc, argv, klass, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='hunk'>@@ -3186,7 +3311,6 @@ rb_gzfile_orig_name(VALUE obj)</div><div class='ctx'>     if (!NIL_P(str)) {</div><div class='ctx'> 	str = rb_str_dup(str);</div><div class='ctx'>     }</div><div class='del'>-    OBJ_TAINT(str);  /* for safe */</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3203,7 +3327,6 @@ rb_gzfile_comment(VALUE obj)</div><div class='ctx'>     if (!NIL_P(str)) {</div><div class='ctx'> 	str = rb_str_dup(str);</div><div class='ctx'>     }</div><div class='del'>-    OBJ_TAINT(str);  /* for safe */</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3262,6 +3385,7 @@ rb_gzfile_set_mtime(VALUE obj, VALUE mtime)</div><div class='ctx'> </div><div class='ctx'>     val = rb_Integer(mtime);</div><div class='ctx'>     gz-&gt;mtime = NUM2UINT(val);</div><div class='add'>+    gz-&gt;z.flags |= GZFILE_FLAG_MTIME_IS_SET;</div><div class='ctx'> </div><div class='ctx'>     return mtime;</div><div class='ctx'> }</div><div class='hunk'>@@ -3460,6 +3584,16 @@ rb_gzfile_path(VALUE obj)</div><div class='ctx'>     return gz-&gt;path;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+gzfile_initialize_path_partial(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    struct gzfile* gz;</div><div class='add'>+    TypedData_Get_Struct(obj, struct gzfile, &amp;gzfile_data_type, gz);</div><div class='add'>+    gz-&gt;path = rb_funcall(gz-&gt;io, id_path, 0);</div><div class='add'>+    rb_define_singleton_method(obj, "path", rb_gzfile_path, 0);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> rb_gzfile_ecopts(struct gzfile *gz, VALUE opts)</div><div class='ctx'> {</div><div class='hunk'>@@ -3568,8 +3702,8 @@ rb_gzwriter_initialize(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     rb_gzfile_ecopts(gz, opt);</div><div class='ctx'> </div><div class='ctx'>     if (rb_respond_to(io, id_path)) {</div><div class='del'>-	gz-&gt;path = rb_funcall(gz-&gt;io, id_path, 0);</div><div class='del'>-	rb_define_singleton_method(obj, "path", rb_gzfile_path, 0);</div><div class='add'>+	/* File#path may raise IOError in case when a path is unavailable */</div><div class='add'>+	rb_rescue2(gzfile_initialize_path_partial, obj, NULL, Qnil, rb_eIOError, (VALUE)0);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return obj;</div><div class='hunk'>@@ -3739,6 +3873,60 @@ rb_gzreader_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ * Document-method: Zlib::GzipReader.zcat</div><div class='add'>+ *</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   Zlib::GzipReader.zcat(io, options = {}, &amp;block) =&gt; nil</div><div class='add'>+ *   Zlib::GzipReader.zcat(io, options = {}) =&gt; string</div><div class='add'>+ *</div><div class='add'>+ * Decompresses all gzip data in the +io+, handling multiple gzip</div><div class='add'>+ * streams until the end of the +io+.  There should not be any non-gzip</div><div class='add'>+ * data after the gzip streams.</div><div class='add'>+ *</div><div class='add'>+ * If a block is given, it is yielded strings of uncompressed data,</div><div class='add'>+ * and the method returns +nil+.</div><div class='add'>+ * If a block is not given, the method returns the concatenation of</div><div class='add'>+ * all uncompressed data in all gzip streams.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_gzreader_s_zcat(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE io, unused, obj, buf=0, tmpbuf;</div><div class='add'>+    long pos;</div><div class='add'>+</div><div class='add'>+    rb_check_arity(argc, 1, 2);</div><div class='add'>+    io = argv[0];</div><div class='add'>+</div><div class='add'>+    do {</div><div class='add'>+        obj = rb_funcallv(klass, rb_intern("new"), argc, argv);</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+           rb_gzreader_each(0, 0, obj);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (!buf) {</div><div class='add'>+                buf = rb_str_new(0, 0);</div><div class='add'>+            }</div><div class='add'>+            tmpbuf = gzfile_read_all(get_gzfile(obj));</div><div class='add'>+            rb_str_cat(buf, RSTRING_PTR(tmpbuf), RSTRING_LEN(tmpbuf));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        rb_gzreader_read(0, 0, obj);</div><div class='add'>+        pos = NUM2LONG(rb_funcall(io, rb_intern("pos"), 0));</div><div class='add'>+        unused = rb_gzreader_unused(obj);</div><div class='add'>+        rb_gzfile_finish(obj);</div><div class='add'>+        if (!NIL_P(unused)) {</div><div class='add'>+            pos -= NUM2LONG(rb_funcall(unused, rb_intern("length"), 0));</div><div class='add'>+            rb_funcall(io, rb_intern("pos="), 1, LONG2NUM(pos));</div><div class='add'>+        }</div><div class='add'>+    } while (pos &lt; NUM2LONG(rb_funcall(io, rb_intern("size"), 0)));</div><div class='add'>+</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+    return buf;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  * Document-method: Zlib::GzipReader.new</div><div class='ctx'>  *</div><div class='ctx'>  * call-seq:</div><div class='hunk'>@@ -3776,8 +3964,8 @@ rb_gzreader_initialize(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>     rb_gzfile_ecopts(gz, opt);</div><div class='ctx'> </div><div class='ctx'>     if (rb_respond_to(io, id_path)) {</div><div class='del'>-	gz-&gt;path = rb_funcall(gz-&gt;io, id_path, 0);</div><div class='del'>-	rb_define_singleton_method(obj, "path", rb_gzfile_path, 0);</div><div class='add'>+	/* File#path may raise IOError in case when a path is unavailable */</div><div class='add'>+	rb_rescue2(gzfile_initialize_path_partial, obj, NULL, Qnil, rb_eIOError, (VALUE)0);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return obj;</div><div class='hunk'>@@ -3965,20 +4153,6 @@ rb_gzreader_each_byte(VALUE obj)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Document-method: Zlib::GzipReader#bytes</div><div class='del'>- *</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_byte&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-rb_gzreader_bytes(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    rb_warn("Zlib::GzipReader#bytes is deprecated; use #each_byte instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(obj, ID2SYM(rb_intern("each_byte")), 0, 0);</div><div class='del'>-    return rb_gzreader_each_byte(obj);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * Document-method: Zlib::GzipReader#ungetc</div><div class='ctx'>  *</div><div class='ctx'>  * See Zlib::GzipReader documentation for a description.</div><div class='hunk'>@@ -4056,17 +4230,17 @@ gzreader_charboundary(struct gzfile *gz, long n)</div><div class='ctx'> {</div><div class='ctx'>     char *s = RSTRING_PTR(gz-&gt;z.buf);</div><div class='ctx'>     char *e = s + ZSTREAM_BUF_FILLED(&amp;gz-&gt;z);</div><div class='del'>-    char *p = rb_enc_left_char_head(s, s + n, e, gz-&gt;enc);</div><div class='add'>+    char *p = rb_enc_left_char_head(s, s + n - 1, e, gz-&gt;enc);</div><div class='ctx'>     long l = p - s;</div><div class='ctx'>     if (l &lt; n) {</div><div class='del'>-	n = rb_enc_precise_mbclen(p, e, gz-&gt;enc);</div><div class='del'>-	if (MBCLEN_NEEDMORE_P(n)) {</div><div class='del'>-	    if ((l = gzfile_fill(gz, l + MBCLEN_NEEDMORE_LEN(n))) &gt; 0) {</div><div class='add'>+	int n_bytes = rb_enc_precise_mbclen(p, e, gz-&gt;enc);</div><div class='add'>+	if (MBCLEN_NEEDMORE_P(n_bytes)) {</div><div class='add'>+	    if ((l = gzfile_fill(gz, n + MBCLEN_NEEDMORE_LEN(n_bytes))) &gt; 0) {</div><div class='ctx'> 		return l;</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='del'>-	else if (MBCLEN_CHARFOUND_P(n)) {</div><div class='del'>-	    return l + MBCLEN_CHARFOUND_LEN(n);</div><div class='add'>+	else if (MBCLEN_CHARFOUND_P(n_bytes)) {</div><div class='add'>+	    return l + MBCLEN_CHARFOUND_LEN(n_bytes);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     return n;</div><div class='hunk'>@@ -4204,6 +4378,8 @@ gzreader_gets(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'>  * Document-method: Zlib::GzipReader#gets</div><div class='ctx'>  *</div><div class='ctx'>  * See Zlib::GzipReader documentation for a description.</div><div class='add'>+ * However, note that this method can return +nil+ even if</div><div class='add'>+ * #eof? returns false, unlike the behavior of File#gets.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_gzreader_gets(int argc, VALUE *argv, VALUE obj)</div><div class='hunk'>@@ -4251,20 +4427,6 @@ rb_gzreader_each(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Document-method: Zlib::GzipReader#lines</div><div class='del'>- *</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_line&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-rb_gzreader_lines(int argc, VALUE *argv, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    rb_warn("Zlib::GzipReader#lines is deprecated; use #each_line instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(obj, ID2SYM(rb_intern("each_line")), argc, argv);</div><div class='del'>-    return rb_gzreader_each(argc, argv, obj);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * Document-method: Zlib::GzipReader#readlines</div><div class='ctx'>  *</div><div class='ctx'>  * See Zlib::GzipReader documentation for a description.</div><div class='hunk'>@@ -4292,13 +4454,19 @@ rb_gzreader_external_encoding(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-zlib_gzip_ensure(VALUE arg)</div><div class='add'>+zlib_gzip_end_rescue(VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     struct gzfile *gz = (struct gzfile *)arg;</div><div class='del'>-    rb_rescue((VALUE(*)())gz-&gt;end, arg, NULL, Qnil);</div><div class='add'>+    gz-&gt;end(gz);</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+zlib_gzip_ensure(VALUE arg)</div><div class='add'>+{</div><div class='add'>+    return rb_rescue(zlib_gzip_end_rescue, arg, NULL, Qnil);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> zlib_gzip_end(struct gzfile *gz)</div><div class='ctx'> {</div><div class='hunk'>@@ -4308,8 +4476,6 @@ zlib_gzip_end(struct gzfile *gz)</div><div class='ctx'>     zstream_end(&amp;gz-&gt;z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define OPTHASH_GIVEN_P(opts) \</div><div class='del'>-    (argc &gt; 0 &amp;&amp; !NIL_P((opts) = rb_check_hash_type(argv[argc-1])) &amp;&amp; (--argc, 1))</div><div class='ctx'> static ID id_level, id_strategy;</div><div class='ctx'> static VALUE zlib_gzip_run(VALUE arg);</div><div class='ctx'> </div><div class='hunk'>@@ -4462,6 +4628,10 @@ zlib_gunzip_run(VALUE arg)</div><div class='ctx'> void</div><div class='ctx'> Init_zlib(void)</div><div class='ctx'> {</div><div class='add'>+#ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+    rb_ext_ractor_safe(true);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #undef rb_intern</div><div class='ctx'>     VALUE mZlib, cZStream, cDeflate, cInflate;</div><div class='ctx'> #if GZIP_SUPPORT</div><div class='hunk'>@@ -4480,6 +4650,7 @@ Init_zlib(void)</div><div class='ctx'>     cMemError     = rb_define_class_under(mZlib, "MemError", cZError);</div><div class='ctx'>     cBufError     = rb_define_class_under(mZlib, "BufError", cZError);</div><div class='ctx'>     cVersionError = rb_define_class_under(mZlib, "VersionError", cZError);</div><div class='add'>+    cInProgressError = rb_define_class_under(mZlib, "InProgressError", cZError);</div><div class='ctx'> </div><div class='ctx'>     rb_define_module_function(mZlib, "zlib_version", rb_zlib_version, 0);</div><div class='ctx'>     rb_define_module_function(mZlib, "adler32", rb_zlib_adler32, -1);</div><div class='hunk'>@@ -4556,7 +4727,7 @@ Init_zlib(void)</div><div class='ctx'>     rb_define_alloc_func(cInflate, rb_inflate_s_allocate);</div><div class='ctx'>     rb_define_method(cInflate, "initialize", rb_inflate_initialize, -1);</div><div class='ctx'>     rb_define_method(cInflate, "add_dictionary", rb_inflate_add_dictionary, 1);</div><div class='del'>-    rb_define_method(cInflate, "inflate", rb_inflate_inflate, 1);</div><div class='add'>+    rb_define_method(cInflate, "inflate", rb_inflate_inflate, -1);</div><div class='ctx'>     rb_define_method(cInflate, "&lt;&lt;", rb_inflate_addstr, 1);</div><div class='ctx'>     rb_define_method(cInflate, "sync", rb_inflate_sync, 1);</div><div class='ctx'>     rb_define_method(cInflate, "sync_point?", rb_inflate_sync_point_p, 0);</div><div class='hunk'>@@ -4705,6 +4876,7 @@ Init_zlib(void)</div><div class='ctx'>     rb_define_method(cGzipWriter, "puts", rb_gzwriter_puts, -1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(cGzipReader, "open", rb_gzreader_s_open,-1);</div><div class='add'>+    rb_define_singleton_method(cGzipReader, "zcat", rb_gzreader_s_zcat, -1);</div><div class='ctx'>     rb_define_alloc_func(cGzipReader, rb_gzreader_s_allocate);</div><div class='ctx'>     rb_define_method(cGzipReader, "initialize", rb_gzreader_initialize, -1);</div><div class='ctx'>     rb_define_method(cGzipReader, "rewind", rb_gzreader_rewind, 0);</div><div class='hunk'>@@ -4717,14 +4889,12 @@ Init_zlib(void)</div><div class='ctx'>     rb_define_method(cGzipReader, "readbyte", rb_gzreader_readbyte, 0);</div><div class='ctx'>     rb_define_method(cGzipReader, "each_byte", rb_gzreader_each_byte, 0);</div><div class='ctx'>     rb_define_method(cGzipReader, "each_char", rb_gzreader_each_char, 0);</div><div class='del'>-    rb_define_method(cGzipReader, "bytes", rb_gzreader_bytes, 0);</div><div class='ctx'>     rb_define_method(cGzipReader, "ungetc", rb_gzreader_ungetc, 1);</div><div class='ctx'>     rb_define_method(cGzipReader, "ungetbyte", rb_gzreader_ungetbyte, 1);</div><div class='ctx'>     rb_define_method(cGzipReader, "gets", rb_gzreader_gets, -1);</div><div class='ctx'>     rb_define_method(cGzipReader, "readline", rb_gzreader_readline, -1);</div><div class='ctx'>     rb_define_method(cGzipReader, "each", rb_gzreader_each, -1);</div><div class='ctx'>     rb_define_method(cGzipReader, "each_line", rb_gzreader_each, -1);</div><div class='del'>-    rb_define_method(cGzipReader, "lines", rb_gzreader_lines, -1);</div><div class='ctx'>     rb_define_method(cGzipReader, "readlines", rb_gzreader_readlines, -1);</div><div class='ctx'>     rb_define_method(cGzipReader, "external_encoding", rb_gzreader_external_encoding, 0);</div><div class='ctx'> </div><div class='hunk'>@@ -4766,6 +4936,7 @@ Init_zlib(void)</div><div class='ctx'> </div><div class='ctx'>     id_level = rb_intern("level");</div><div class='ctx'>     id_strategy = rb_intern("strategy");</div><div class='add'>+    id_buffer = rb_intern("buffer");</div><div class='ctx'> #endif /* GZIP_SUPPORT */</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4787,6 +4958,7 @@ Init_zlib(void)</div><div class='ctx'>  * - Zlib::MemError</div><div class='ctx'>  * - Zlib::BufError</div><div class='ctx'>  * - Zlib::VersionError</div><div class='add'>+ * - Zlib::InProgressError</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -4862,6 +5034,20 @@ Init_zlib(void)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='add'>+ * Document-class: Zlib::InProgressError</div><div class='add'>+ *</div><div class='add'>+ * Subclass of Zlib::Error. This error is raised when the zlib</div><div class='add'>+ * stream is currently in progress.</div><div class='add'>+ *</div><div class='add'>+ * For example:</div><div class='add'>+ *</div><div class='add'>+ *   inflater = Zlib::Inflate.new</div><div class='add'>+ *   inflater.inflate(compressed) do</div><div class='add'>+ *     inflater.inflate(compressed) # Raises Zlib::InProgressError</div><div class='add'>+ *   end</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='ctx'>  * Document-class: Zlib::GzipFile::Error</div><div class='ctx'>  *</div><div class='ctx'>  * Base class of errors that occur when processing GZIP files.</div><div class='hunk'>@@ -4886,5 +5072,3 @@ Init_zlib(void)</div><div class='ctx'>  * Raised when the data length recorded in the gzip file footer is not equivalent</div><div class='ctx'>  * to the length of the actual uncompressed data.</div><div class='ctx'>  */</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/ext/zlib/zlib.gemspec b/ext/zlib/zlib.gemspec<br/>index f5b6443258..4a5f8f2ee8 100644<br/>--- a/<a href='/ruby.git/tree/ext/zlib/zlib.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ext/zlib/zlib.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/ext/zlib/zlib.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>ext/zlib/zlib.gemspec</a></div><div class='hunk'>@@ -1,9 +1,16 @@</div><div class='ctx'> # coding: utf-8</div><div class='ctx'> # frozen_string_literal: true</div><div class='del'>-source_version = File.open(File.join(__dir__, "zlib.c")) {|f|</div><div class='del'>-  f.gets("\n#define RUBY_ZLIB_VERSION ")</div><div class='del'>-  f.gets[/\s*(".+")/, 1].undump</div><div class='del'>-}</div><div class='add'>+</div><div class='add'>+source_version = ["", "ext/zlib/"].find do |dir|</div><div class='add'>+  begin</div><div class='add'>+    break File.open(File.join(__dir__, "#{dir}zlib.c")) {|f|</div><div class='add'>+      f.gets("\n#define RUBY_ZLIB_VERSION ")</div><div class='add'>+      f.gets[/\s*"(.+)"/, 1]</div><div class='add'>+    }</div><div class='add'>+  rescue Errno::ENOENT</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='ctx'> Gem::Specification.new do |spec|</div><div class='ctx'>   spec.name          = "zlib"</div><div class='ctx'>   spec.version       = source_version</div><div class='hunk'>@@ -13,16 +20,12 @@ Gem::Specification.new do |spec|</div><div class='ctx'>   spec.summary       = %q{Ruby interface for the zlib compression/decompression library}</div><div class='ctx'>   spec.description   = %q{Ruby interface for the zlib compression/decompression library}</div><div class='ctx'>   spec.homepage      = "https://github.com/ruby/zlib"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='add'>+  spec.licenses       = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> </div><div class='del'>-  spec.files         = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "ext/zlib/extconf.rb", "ext/zlib/zlib.c", "zlib.gemspec"]</div><div class='add'>+  spec.files         = ["LICENSE.txt", "README.md", "ext/zlib/extconf.rb", "ext/zlib/zlib.c", "zlib.gemspec"]</div><div class='ctx'>   spec.bindir        = "exe"</div><div class='del'>-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='add'>+  spec.executables   = []</div><div class='ctx'>   spec.require_paths = ["lib"]</div><div class='ctx'>   spec.extensions    = "ext/zlib/extconf.rb"</div><div class='ctx'>   spec.required_ruby_version = "&gt;= 2.3.0"</div><div class='del'>-</div><div class='del'>-  spec.add_development_dependency "bundler"</div><div class='del'>-  spec.add_development_dependency "rake"</div><div class='del'>-  spec.add_development_dependency "rake-compiler"</div><div class='ctx'> end</div><div class='head'>diff --git a/file.c b/file.c<br/>index fa420c6921..3a8439ef07 100644<br/>--- a/<a href='/ruby.git/tree/file.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>file.c</a><br/>+++ b/<a href='/ruby.git/tree/file.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>file.c</a></div><div class='hunk'>@@ -11,30 +11,38 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='ctx'> #ifdef _WIN32</div><div class='del'>-#include "missing/file.h"</div><div class='add'>+# include "missing/file.h"</div><div class='add'>+# include "ruby.h"</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='add'>+#include &lt;ctype.h&gt;</div><div class='add'>+#include &lt;time.h&gt;</div><div class='add'>+</div><div class='ctx'> #ifdef __CYGWIN__</div><div class='del'>-#include &lt;windows.h&gt;</div><div class='del'>-#include &lt;sys/cygwin.h&gt;</div><div class='del'>-#include &lt;wchar.h&gt;</div><div class='add'>+# include &lt;windows.h&gt;</div><div class='add'>+# include &lt;sys/cygwin.h&gt;</div><div class='add'>+# include &lt;wchar.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef __APPLE__</div><div class='del'>-#include &lt;CoreFoundation/CFString.h&gt;</div><div class='add'>+# if !(defined(__has_feature) &amp;&amp; defined(__has_attribute))</div><div class='add'>+/* Maybe a bug in SDK of Xcode 10.2.1 */</div><div class='add'>+/* In this condition, &lt;os/availability.h&gt; does not define</div><div class='add'>+ * API_AVAILABLE and similar, but __API_AVAILABLE and similar which</div><div class='add'>+ * are defined in &lt;Availability.h&gt; */</div><div class='add'>+#   define API_AVAILABLE(...)</div><div class='add'>+#   define API_DEPRECATED(...)</div><div class='add'>+# endif</div><div class='add'>+# include &lt;CoreFoundation/CFString.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#include "id.h"</div><div class='del'>-#include "ruby/encoding.h"</div><div class='del'>-#include "ruby/io.h"</div><div class='del'>-#include "ruby/util.h"</div><div class='del'>-#include "ruby/thread.h"</div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "dln.h"</div><div class='del'>-#include "encindex.h"</div><div class='del'>-</div><div class='ctx'> #ifdef HAVE_UNISTD_H</div><div class='del'>-#include &lt;unistd.h&gt;</div><div class='add'>+# include &lt;unistd.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_SYS_TIME_H</div><div class='ctx'> # include &lt;sys/time.h&gt;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -52,71 +60,75 @@ int flock(int, int);</div><div class='ctx'> # define MAXPATHLEN 1024</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-</div><div class='ctx'> #ifdef HAVE_UTIME_H</div><div class='del'>-#include &lt;utime.h&gt;</div><div class='add'>+# include &lt;utime.h&gt;</div><div class='ctx'> #elif defined HAVE_SYS_UTIME_H</div><div class='del'>-#include &lt;sys/utime.h&gt;</div><div class='add'>+# include &lt;sys/utime.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_PWD_H</div><div class='del'>-#include &lt;pwd.h&gt;</div><div class='add'>+# include &lt;pwd.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_SYS_SYSMACROS_H</div><div class='del'>-#include &lt;sys/sysmacros.h&gt;</div><div class='add'>+# include &lt;sys/sysmacros.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #include &lt;sys/types.h&gt;</div><div class='ctx'> #include &lt;sys/stat.h&gt;</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_SYS_MKDEV_H</div><div class='del'>-#include &lt;sys/mkdev.h&gt;</div><div class='add'>+# include &lt;sys/mkdev.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_FCNTL_H)</div><div class='del'>-#include &lt;fcntl.h&gt;</div><div class='add'>+# include &lt;fcntl.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_SYS_TIME_H)</div><div class='del'>-#include &lt;sys/time.h&gt;</div><div class='add'>+# include &lt;sys/time.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if !defined HAVE_LSTAT &amp;&amp; !defined lstat</div><div class='del'>-#define lstat stat</div><div class='add'>+# define lstat stat</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> /* define system APIs */</div><div class='ctx'> #ifdef _WIN32</div><div class='del'>-#include "win32/file.h"</div><div class='del'>-#define STAT(p, s)	rb_w32_ustati128((p), (s))</div><div class='del'>-#undef lstat</div><div class='del'>-#define lstat(p, s)	rb_w32_ulstati128((p), (s))</div><div class='del'>-#undef access</div><div class='del'>-#define access(p, m)	rb_w32_uaccess((p), (m))</div><div class='del'>-#undef truncate</div><div class='del'>-#define truncate(p, n)	rb_w32_utruncate((p), (n))</div><div class='del'>-#undef chmod</div><div class='del'>-#define chmod(p, m)	rb_w32_uchmod((p), (m))</div><div class='del'>-#undef chown</div><div class='del'>-#define chown(p, o, g)	rb_w32_uchown((p), (o), (g))</div><div class='del'>-#undef lchown</div><div class='del'>-#define lchown(p, o, g)	rb_w32_ulchown((p), (o), (g))</div><div class='del'>-#undef utimensat</div><div class='del'>-#define utimensat(s, p, t, f)	rb_w32_uutimensat((s), (p), (t), (f))</div><div class='del'>-#undef link</div><div class='del'>-#define link(f, t)	rb_w32_ulink((f), (t))</div><div class='del'>-#undef unlink</div><div class='del'>-#define unlink(p)	rb_w32_uunlink(p)</div><div class='del'>-#undef rename</div><div class='del'>-#define rename(f, t)	rb_w32_urename((f), (t))</div><div class='del'>-#undef symlink</div><div class='del'>-#define symlink(s, l)	rb_w32_usymlink((s), (l))</div><div class='add'>+# include "win32/file.h"</div><div class='add'>+# define STAT(p, s)      rb_w32_ustati128((p), (s))</div><div class='add'>+# undef lstat</div><div class='add'>+# define lstat(p, s)     rb_w32_ulstati128((p), (s))</div><div class='add'>+# undef access</div><div class='add'>+# define access(p, m)    rb_w32_uaccess((p), (m))</div><div class='add'>+# undef truncate</div><div class='add'>+# define truncate(p, n)  rb_w32_utruncate((p), (n))</div><div class='add'>+# undef chmod</div><div class='add'>+# define chmod(p, m)     rb_w32_uchmod((p), (m))</div><div class='add'>+# undef chown</div><div class='add'>+# define chown(p, o, g)  rb_w32_uchown((p), (o), (g))</div><div class='add'>+# undef lchown</div><div class='add'>+# define lchown(p, o, g) rb_w32_ulchown((p), (o), (g))</div><div class='add'>+# undef utimensat</div><div class='add'>+# define utimensat(s, p, t, f)   rb_w32_uutimensat((s), (p), (t), (f))</div><div class='add'>+# undef link</div><div class='add'>+# define link(f, t)      rb_w32_ulink((f), (t))</div><div class='add'>+# undef unlink</div><div class='add'>+# define unlink(p)       rb_w32_uunlink(p)</div><div class='add'>+# undef readlink</div><div class='add'>+# define readlink(f, t, l)    rb_w32_ureadlink((f), (t), (l))</div><div class='add'>+# undef rename</div><div class='add'>+# define rename(f, t)    rb_w32_urename((f), (t))</div><div class='add'>+# undef symlink</div><div class='add'>+# define symlink(s, l)   rb_w32_usymlink((s), (l))</div><div class='add'>+</div><div class='add'>+# ifdef HAVE_REALPATH</div><div class='add'>+/* Don't use native realpath(3) on Windows, as the check for</div><div class='add'>+   absolute paths does not work for drive letters. */</div><div class='add'>+#  undef HAVE_REALPATH</div><div class='add'>+# endif</div><div class='ctx'> #else</div><div class='del'>-#define STAT(p, s)	stat((p), (s))</div><div class='add'>+# define STAT(p, s)      stat((p), (s))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if defined _WIN32 || defined __APPLE__</div><div class='hunk'>@@ -129,15 +141,42 @@ int flock(int, int);</div><div class='ctx'> </div><div class='ctx'> /* utime may fail if time is out-of-range for the FS [ruby-dev:38277] */</div><div class='ctx'> #if defined DOSISH || defined __CYGWIN__</div><div class='del'>-#  define UTIME_EINVAL</div><div class='add'>+# define UTIME_EINVAL</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+/* Solaris 10 realpath(3) doesn't support File.realpath */</div><div class='add'>+#if defined HAVE_REALPATH &amp;&amp; defined __sun &amp;&amp; defined __SVR4</div><div class='add'>+#undef HAVE_REALPATH</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_REALPATH</div><div class='add'>+# include &lt;limits.h&gt;</div><div class='add'>+# include &lt;stdlib.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "dln.h"</div><div class='add'>+#include "encindex.h"</div><div class='add'>+#include "id.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/compilers.h"</div><div class='add'>+#include "internal/dir.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/file.h"</div><div class='add'>+#include "internal/io.h"</div><div class='add'>+#include "internal/load.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/process.h"</div><div class='add'>+#include "internal/thread.h"</div><div class='add'>+#include "internal/vm.h"</div><div class='add'>+#include "ruby/encoding.h"</div><div class='add'>+#include "ruby/io.h"</div><div class='add'>+#include "ruby/thread.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+</div><div class='ctx'> VALUE rb_cFile;</div><div class='ctx'> VALUE rb_mFileTest;</div><div class='ctx'> VALUE rb_cStat;</div><div class='ctx'> </div><div class='del'>-#define insecure_obj_p(obj, level) ((level) &gt; 0 &amp;&amp; OBJ_TAINTED(obj))</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> file_path_convert(VALUE name)</div><div class='ctx'> {</div><div class='hunk'>@@ -145,15 +184,15 @@ file_path_convert(VALUE name)</div><div class='ctx'>     int fname_encidx = ENCODING_GET(name);</div><div class='ctx'>     int fs_encidx;</div><div class='ctx'>     if (ENCINDEX_US_ASCII != fname_encidx &amp;&amp;</div><div class='del'>-	ENCINDEX_ASCII != fname_encidx &amp;&amp;</div><div class='del'>-	(fs_encidx = rb_filesystem_encindex()) != fname_encidx &amp;&amp;</div><div class='del'>-	rb_default_internal_encoding() &amp;&amp;</div><div class='del'>-	!rb_enc_str_asciionly_p(name)) {</div><div class='del'>-	/* Don't call rb_filesystem_encoding() before US-ASCII and ASCII-8BIT */</div><div class='del'>-	/* fs_encoding should be ascii compatible */</div><div class='del'>-	rb_encoding *fname_encoding = rb_enc_from_index(fname_encidx);</div><div class='del'>-	rb_encoding *fs_encoding = rb_enc_from_index(fs_encidx);</div><div class='del'>-	name = rb_str_conv_enc(name, fname_encoding, fs_encoding);</div><div class='add'>+        ENCINDEX_ASCII_8BIT != fname_encidx &amp;&amp;</div><div class='add'>+        (fs_encidx = rb_filesystem_encindex()) != fname_encidx &amp;&amp;</div><div class='add'>+        rb_default_internal_encoding() &amp;&amp;</div><div class='add'>+        !rb_enc_str_asciionly_p(name)) {</div><div class='add'>+        /* Don't call rb_filesystem_encoding() before US-ASCII and ASCII-8BIT */</div><div class='add'>+        /* fs_encoding should be ascii compatible */</div><div class='add'>+        rb_encoding *fname_encoding = rb_enc_from_index(fname_encidx);</div><div class='add'>+        rb_encoding *fs_encoding = rb_enc_from_index(fs_encidx);</div><div class='add'>+        name = rb_str_conv_enc(name, fname_encoding, fs_encoding);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return name;</div><div class='hunk'>@@ -164,24 +203,20 @@ check_path_encoding(VALUE str)</div><div class='ctx'> {</div><div class='ctx'>     rb_encoding *enc = rb_enc_get(str);</div><div class='ctx'>     if (!rb_enc_asciicompat(enc)) {</div><div class='del'>-	rb_raise(rb_eEncCompatError, "path name must be ASCII-compatible (%s): %"PRIsVALUE,</div><div class='del'>-		 rb_enc_name(enc), rb_str_inspect(str));</div><div class='add'>+        rb_raise(rb_eEncCompatError, "path name must be ASCII-compatible (%s): %"PRIsVALUE,</div><div class='add'>+                 rb_enc_name(enc), rb_str_inspect(str));</div><div class='ctx'>     }</div><div class='ctx'>     return enc;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_get_path_check_to_string(VALUE obj, int level)</div><div class='add'>+rb_get_path_check_to_string(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE tmp;</div><div class='ctx'>     ID to_path;</div><div class='ctx'> </div><div class='del'>-    if (insecure_obj_p(obj, level)) {</div><div class='del'>-	rb_insecure_operation();</div><div class='del'>-    }</div><div class='del'>-</div><div class='ctx'>     if (RB_TYPE_P(obj, T_STRING)) {</div><div class='del'>-	return obj;</div><div class='add'>+        return obj;</div><div class='ctx'>     }</div><div class='ctx'>     CONST_ID(to_path, "to_path");</div><div class='ctx'>     tmp = rb_check_funcall_default(obj, to_path, 0, 0, obj);</div><div class='hunk'>@@ -190,38 +225,28 @@ rb_get_path_check_to_string(VALUE obj, int level)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_get_path_check_convert(VALUE obj, VALUE tmp, int level)</div><div class='add'>+rb_get_path_check_convert(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    tmp = file_path_convert(tmp);</div><div class='del'>-    if (obj != tmp &amp;&amp; insecure_obj_p(tmp, level)) {</div><div class='del'>-	rb_insecure_operation();</div><div class='del'>-    }</div><div class='add'>+    obj = file_path_convert(obj);</div><div class='ctx'> </div><div class='del'>-    check_path_encoding(tmp);</div><div class='del'>-    if (!rb_str_to_cstr(tmp)) {</div><div class='del'>-	rb_raise(rb_eArgError, "path name contains null byte");</div><div class='add'>+    check_path_encoding(obj);</div><div class='add'>+    if (!rb_str_to_cstr(obj)) {</div><div class='add'>+        rb_raise(rb_eArgError, "path name contains null byte");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return rb_str_new4(tmp);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-rb_get_path_check(VALUE obj, int level)</div><div class='del'>-{</div><div class='del'>-    VALUE tmp = rb_get_path_check_to_string(obj, level);</div><div class='del'>-    return rb_get_path_check_convert(obj, tmp, level);</div><div class='add'>+    return rb_str_new4(obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_get_path_no_checksafe(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    return rb_get_path_check(obj, 0);</div><div class='add'>+    return rb_get_path(obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_get_path(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    return rb_get_path_check(obj, rb_safe_level());</div><div class='add'>+    return rb_get_path_check_convert(rb_get_path_check_to_string(obj));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -229,15 +254,15 @@ rb_str_encode_ospath(VALUE path)</div><div class='ctx'> {</div><div class='ctx'> #if USE_OSPATH</div><div class='ctx'>     int encidx = ENCODING_GET(path);</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-    if (encidx == ENCINDEX_ASCII) {</div><div class='del'>-	encidx = rb_filesystem_encindex();</div><div class='add'>+#if 0 &amp;&amp; defined _WIN32</div><div class='add'>+    if (encidx == ENCINDEX_ASCII_8BIT) {</div><div class='add'>+        encidx = rb_filesystem_encindex();</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='del'>-    if (encidx != ENCINDEX_UTF_8) {</div><div class='del'>-	rb_encoding *enc = rb_enc_from_index(encidx);</div><div class='del'>-	rb_encoding *utf8 = rb_utf8_encoding();</div><div class='del'>-	path = rb_str_conv_enc(path, enc, utf8);</div><div class='add'>+    if (encidx != ENCINDEX_ASCII_8BIT &amp;&amp; encidx != ENCINDEX_UTF_8) {</div><div class='add'>+        rb_encoding *enc = rb_enc_from_index(encidx);</div><div class='add'>+        rb_encoding *utf8 = rb_utf8_encoding();</div><div class='add'>+        path = rb_str_conv_enc(path, enc, utf8);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return path;</div><div class='hunk'>@@ -245,15 +270,55 @@ rb_str_encode_ospath(VALUE path)</div><div class='ctx'> </div><div class='ctx'> #ifdef __APPLE__</div><div class='ctx'> # define NORMALIZE_UTF8PATH 1</div><div class='add'>+</div><div class='add'>+# ifdef HAVE_WORKING_FORK</div><div class='add'>+static void</div><div class='add'>+rb_CFString_class_initialize_before_fork(void)</div><div class='add'>+{</div><div class='add'>+    /*</div><div class='add'>+     * Since macOS 13, CFString family API used in</div><div class='add'>+     * rb_str_append_normalized_ospath may internally use Objective-C classes</div><div class='add'>+     * (NSTaggedPointerString and NSPlaceholderMutableString) for small strings.</div><div class='add'>+     *</div><div class='add'>+     * On the other hand, Objective-C classes should not be used for the first</div><div class='add'>+     * time in a fork()'ed but not exec()'ed process. Violations for this rule</div><div class='add'>+     * can result deadlock during class initialization, so Objective-C runtime</div><div class='add'>+     * conservatively crashes on such cases by default.</div><div class='add'>+     *</div><div class='add'>+     * Therefore, we need to use CFString API to initialize Objective-C classes</div><div class='add'>+     * used internally *before* fork().</div><div class='add'>+     *</div><div class='add'>+     * For future changes, please note that this initialization process cannot</div><div class='add'>+     * be done in ctor because NSTaggedPointerString in CoreFoundation is enabled</div><div class='add'>+     * after CFStringInitializeTaggedStrings(), which is called during loading</div><div class='add'>+     * Objective-C runtime after ctor.</div><div class='add'>+     * For more details, see https://bugs.ruby-lang.org/issues/18912</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    /* Enough small but non-empty ASCII string to fit in NSTaggedPointerString. */</div><div class='add'>+    const char small_str[] = "/";</div><div class='add'>+    long len = sizeof(small_str) - 1;</div><div class='add'>+</div><div class='add'>+    const CFAllocatorRef alloc = kCFAllocatorDefault;</div><div class='add'>+    CFStringRef s = CFStringCreateWithBytesNoCopy(alloc,</div><div class='add'>+                                                  (const UInt8 *)small_str,</div><div class='add'>+                                                  len, kCFStringEncodingUTF8,</div><div class='add'>+                                                  FALSE, kCFAllocatorNull);</div><div class='add'>+    CFMutableStringRef m = CFStringCreateMutableCopy(alloc, len, s);</div><div class='add'>+    CFRelease(m);</div><div class='add'>+    CFRelease(s);</div><div class='add'>+}</div><div class='add'>+# endif</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_str_append_normalized_ospath(VALUE str, const char *ptr, long len)</div><div class='ctx'> {</div><div class='ctx'>     CFIndex buflen = 0;</div><div class='ctx'>     CFRange all;</div><div class='ctx'>     CFStringRef s = CFStringCreateWithBytesNoCopy(kCFAllocatorDefault,</div><div class='del'>-						  (const UInt8 *)ptr, len,</div><div class='del'>-						  kCFStringEncodingUTF8, FALSE,</div><div class='del'>-						  kCFAllocatorNull);</div><div class='add'>+                                                  (const UInt8 *)ptr, len,</div><div class='add'>+                                                  kCFStringEncodingUTF8, FALSE,</div><div class='add'>+                                                  kCFAllocatorNull);</div><div class='ctx'>     CFMutableStringRef m = CFStringCreateMutableCopy(kCFAllocatorDefault, len, s);</div><div class='ctx'>     long oldlen = RSTRING_LEN(str);</div><div class='ctx'> </div><div class='hunk'>@@ -262,7 +327,7 @@ rb_str_append_normalized_ospath(VALUE str, const char *ptr, long len)</div><div class='ctx'>     CFStringGetBytes(m, all, kCFStringEncodingUTF8, '?', FALSE, NULL, 0, &amp;buflen);</div><div class='ctx'>     rb_str_modify_expand(str, buflen);</div><div class='ctx'>     CFStringGetBytes(m, all, kCFStringEncodingUTF8, '?', FALSE,</div><div class='del'>-		     (UInt8 *)(RSTRING_PTR(str) + oldlen), buflen, &amp;buflen);</div><div class='add'>+                     (UInt8 *)(RSTRING_PTR(str) + oldlen), buflen, &amp;buflen);</div><div class='ctx'>     rb_str_set_len(str, oldlen + buflen);</div><div class='ctx'>     CFRelease(m);</div><div class='ctx'>     CFRelease(s);</div><div class='hunk'>@@ -280,34 +345,34 @@ rb_str_normalize_ospath(const char *ptr, long len)</div><div class='ctx'>     rb_enc_associate(str, enc);</div><div class='ctx'> </div><div class='ctx'>     while (p &lt; e) {</div><div class='del'>-	int l, c;</div><div class='del'>-	int r = rb_enc_precise_mbclen(p, e, enc);</div><div class='del'>-	if (!MBCLEN_CHARFOUND_P(r)) {</div><div class='del'>-	    /* invalid byte shall not happen but */</div><div class='del'>-	    static const char invalid[3] = "\xEF\xBF\xBD";</div><div class='del'>-	    rb_str_append_normalized_ospath(str, p1, p-p1);</div><div class='del'>-	    rb_str_cat(str, invalid, sizeof(invalid));</div><div class='del'>-	    p += 1;</div><div class='del'>-	    p1 = p;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	l = MBCLEN_CHARFOUND_LEN(r);</div><div class='del'>-	c = rb_enc_mbc_to_codepoint(p, e, enc);</div><div class='del'>-	if ((0x2000 &lt;= c &amp;&amp; c &lt;= 0x2FFF) || (0xF900 &lt;= c &amp;&amp; c &lt;= 0xFAFF) ||</div><div class='del'>-		(0x2F800 &lt;= c &amp;&amp; c &lt;= 0x2FAFF)) {</div><div class='del'>-	    if (p - p1 &gt; 0) {</div><div class='del'>-		rb_str_append_normalized_ospath(str, p1, p-p1);</div><div class='del'>-	    }</div><div class='del'>-	    rb_str_cat(str, p, l);</div><div class='del'>-	    p += l;</div><div class='del'>-	    p1 = p;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    p += l;</div><div class='del'>-	}</div><div class='add'>+        int l, c;</div><div class='add'>+        int r = rb_enc_precise_mbclen(p, e, enc);</div><div class='add'>+        if (!MBCLEN_CHARFOUND_P(r)) {</div><div class='add'>+            /* invalid byte shall not happen but */</div><div class='add'>+            static const char invalid[3] = "\xEF\xBF\xBD";</div><div class='add'>+            rb_str_append_normalized_ospath(str, p1, p-p1);</div><div class='add'>+            rb_str_cat(str, invalid, sizeof(invalid));</div><div class='add'>+            p += 1;</div><div class='add'>+            p1 = p;</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        l = MBCLEN_CHARFOUND_LEN(r);</div><div class='add'>+        c = rb_enc_mbc_to_codepoint(p, e, enc);</div><div class='add'>+        if ((0x2000 &lt;= c &amp;&amp; c &lt;= 0x2FFF) || (0xF900 &lt;= c &amp;&amp; c &lt;= 0xFAFF) ||</div><div class='add'>+                (0x2F800 &lt;= c &amp;&amp; c &lt;= 0x2FAFF)) {</div><div class='add'>+            if (p - p1 &gt; 0) {</div><div class='add'>+                rb_str_append_normalized_ospath(str, p1, p-p1);</div><div class='add'>+            }</div><div class='add'>+            rb_str_cat(str, p, l);</div><div class='add'>+            p += l;</div><div class='add'>+            p1 = p;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            p += l;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (p - p1 &gt; 0) {</div><div class='del'>-	rb_str_append_normalized_ospath(str, p1, p-p1);</div><div class='add'>+        rb_str_append_normalized_ospath(str, p1, p-p1);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='hunk'>@@ -320,27 +385,27 @@ ignored_char_p(const char *p, const char *e, rb_encoding *enc)</div><div class='ctx'>     if (p+3 &gt; e) return 0;</div><div class='ctx'>     switch ((unsigned char)*p) {</div><div class='ctx'>       case 0xe2:</div><div class='del'>-	switch ((unsigned char)p[1]) {</div><div class='del'>-	  case 0x80:</div><div class='del'>-	    c = (unsigned char)p[2];</div><div class='del'>-	    /* c &gt;= 0x200c &amp;&amp; c &lt;= 0x200f */</div><div class='del'>-	    if (c &gt;= 0x8c &amp;&amp; c &lt;= 0x8f) return 3;</div><div class='del'>-	    /* c &gt;= 0x202a &amp;&amp; c &lt;= 0x202e */</div><div class='del'>-	    if (c &gt;= 0xaa &amp;&amp; c &lt;= 0xae) return 3;</div><div class='del'>-	    return 0;</div><div class='del'>-	  case 0x81:</div><div class='del'>-	    c = (unsigned char)p[2];</div><div class='del'>-	    /* c &gt;= 0x206a &amp;&amp; c &lt;= 0x206f */</div><div class='del'>-	    if (c &gt;= 0xaa &amp;&amp; c &lt;= 0xaf) return 3;</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        switch ((unsigned char)p[1]) {</div><div class='add'>+          case 0x80:</div><div class='add'>+            c = (unsigned char)p[2];</div><div class='add'>+            /* c &gt;= 0x200c &amp;&amp; c &lt;= 0x200f */</div><div class='add'>+            if (c &gt;= 0x8c &amp;&amp; c &lt;= 0x8f) return 3;</div><div class='add'>+            /* c &gt;= 0x202a &amp;&amp; c &lt;= 0x202e */</div><div class='add'>+            if (c &gt;= 0xaa &amp;&amp; c &lt;= 0xae) return 3;</div><div class='add'>+            return 0;</div><div class='add'>+          case 0x81:</div><div class='add'>+            c = (unsigned char)p[2];</div><div class='add'>+            /* c &gt;= 0x206a &amp;&amp; c &lt;= 0x206f */</div><div class='add'>+            if (c &gt;= 0xaa &amp;&amp; c &lt;= 0xaf) return 3;</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case 0xef:</div><div class='del'>-	/* c == 0xfeff */</div><div class='del'>-	if ((unsigned char)p[1] == 0xbb &amp;&amp;</div><div class='del'>-	    (unsigned char)p[2] == 0xbf)</div><div class='del'>-	    return 3;</div><div class='del'>-	break;</div><div class='add'>+        /* c == 0xfeff */</div><div class='add'>+        if ((unsigned char)p[1] == 0xbb &amp;&amp;</div><div class='add'>+            (unsigned char)p[2] == 0xbf)</div><div class='add'>+            return 3;</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -370,10 +435,10 @@ no_gvl_apply2files(void *ptr)</div><div class='ctx'>     struct apply_arg *aa = ptr;</div><div class='ctx'> </div><div class='ctx'>     for (aa-&gt;i = 0; aa-&gt;i &lt; aa-&gt;argc; aa-&gt;i++) {</div><div class='del'>-	if (aa-&gt;func(aa-&gt;fn[aa-&gt;i].ptr, aa-&gt;arg) &lt; 0) {</div><div class='del'>-	    aa-&gt;errnum = errno;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        if (aa-&gt;func(aa-&gt;fn[aa-&gt;i].ptr, aa-&gt;arg) &lt; 0) {</div><div class='add'>+            aa-&gt;errnum = errno;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -397,63 +462,28 @@ apply2files(int (*func)(const char *, void *), int argc, VALUE *argv, void *arg)</div><div class='ctx'>     aa-&gt;func = func;</div><div class='ctx'> </div><div class='ctx'>     for (aa-&gt;i = 0; aa-&gt;i &lt; argc; aa-&gt;i++) {</div><div class='del'>-	VALUE path = rb_get_path(argv[aa-&gt;i]);</div><div class='add'>+        VALUE path = rb_get_path(argv[aa-&gt;i]);</div><div class='ctx'> </div><div class='del'>-	path = rb_str_encode_ospath(path);</div><div class='del'>-	aa-&gt;fn[aa-&gt;i].ptr = RSTRING_PTR(path);</div><div class='del'>-	aa-&gt;fn[aa-&gt;i].path = path;</div><div class='add'>+        path = rb_str_encode_ospath(path);</div><div class='add'>+        aa-&gt;fn[aa-&gt;i].ptr = RSTRING_PTR(path);</div><div class='add'>+        aa-&gt;fn[aa-&gt;i].path = path;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_thread_call_without_gvl(no_gvl_apply2files, aa, RUBY_UBF_IO, 0);</div><div class='ctx'>     if (aa-&gt;errnum) {</div><div class='ctx'> #ifdef UTIME_EINVAL</div><div class='del'>-	if (func == utime_internal) {</div><div class='del'>-	    utime_failed(aa);</div><div class='del'>-	}</div><div class='add'>+        if (func == utime_internal) {</div><div class='add'>+            utime_failed(aa);</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='del'>-	rb_syserr_fail_path(aa-&gt;errnum, aa-&gt;fn[aa-&gt;i].path);</div><div class='add'>+        rb_syserr_fail_path(aa-&gt;errnum, aa-&gt;fn[aa-&gt;i].path);</div><div class='ctx'>     }</div><div class='ctx'>     if (v) {</div><div class='del'>-	ALLOCV_END(v);</div><div class='add'>+        ALLOCV_END(v);</div><div class='ctx'>     }</div><div class='ctx'>     return LONG2FIX(argc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     file.path  -&gt;  filename</div><div class='del'>- *     file.to_path  -&gt;  filename</div><div class='del'>- *</div><div class='del'>- *  Returns the pathname used to create &lt;i&gt;file&lt;/i&gt; as a string. Does</div><div class='del'>- *  not normalize the name.</div><div class='del'>- *</div><div class='del'>- *  The pathname may not point to the file corresponding to &lt;i&gt;file&lt;/i&gt;.</div><div class='del'>- *  For instance, the pathname becomes void when the file has been</div><div class='del'>- *  moved or deleted.</div><div class='del'>- *</div><div class='del'>- *  This method raises &lt;code&gt;IOError&lt;/code&gt; for a &lt;i&gt;file&lt;/i&gt; created using</div><div class='del'>- *  &lt;code&gt;File::Constants::TMPFILE&lt;/code&gt; because they don't have a pathname.</div><div class='del'>- *</div><div class='del'>- *     File.new("testfile").path               #=&gt; "testfile"</div><div class='del'>- *     File.new("/tmp/../tmp/xxx", "w").path   #=&gt; "/tmp/../tmp/xxx"</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_file_path(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    rb_io_t *fptr;</div><div class='del'>-</div><div class='del'>-    fptr = RFILE(rb_io_taint_check(obj))-&gt;fptr;</div><div class='del'>-    rb_io_check_initialized(fptr);</div><div class='del'>-</div><div class='del'>-    if (NIL_P(fptr-&gt;pathv)) {</div><div class='del'>-        rb_raise(rb_eIOError, "File is unnamed (TMPFILE?)");</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return rb_obj_taint(rb_str_dup(fptr-&gt;pathv));</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static size_t</div><div class='ctx'> stat_memsize(const void *p)</div><div class='ctx'> {</div><div class='hunk'>@@ -473,9 +503,9 @@ stat_new_0(VALUE klass, const struct stat *st)</div><div class='ctx'>     VALUE obj = TypedData_Wrap_Struct(klass, &amp;stat_data_type, 0);</div><div class='ctx'> </div><div class='ctx'>     if (st) {</div><div class='del'>-	nst = ALLOC(struct stat);</div><div class='del'>-	*nst = *st;</div><div class='del'>-	RTYPEDDATA_DATA(obj) = nst;</div><div class='add'>+        nst = ALLOC(struct stat);</div><div class='add'>+        *nst = *st;</div><div class='add'>+        RTYPEDDATA_DATA(obj) = nst;</div><div class='ctx'>     }</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='hunk'>@@ -495,7 +525,7 @@ get_stat(VALUE self)</div><div class='ctx'>     return st;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static struct timespec stat_mtimespec(struct stat *st);</div><div class='add'>+static struct timespec stat_mtimespec(const struct stat *st);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='hunk'>@@ -554,7 +584,13 @@ rb_stat_cmp(VALUE self, VALUE other)</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_stat_dev(VALUE self)</div><div class='ctx'> {</div><div class='add'>+#if SIZEOF_STRUCT_STAT_ST_DEV &lt;= SIZEOF_DEV_T</div><div class='ctx'>     return DEVT2NUM(get_stat(self)-&gt;st_dev);</div><div class='add'>+#elif SIZEOF_STRUCT_STAT_ST_DEV &lt;= SIZEOF_LONG</div><div class='add'>+    return ULONG2NUM(get_stat(self)-&gt;st_dev);</div><div class='add'>+#else</div><div class='add'>+    return ULL2NUM(get_stat(self)-&gt;st_dev);</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -659,7 +695,21 @@ rb_stat_mode(VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_stat_nlink(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    return UINT2NUM(get_stat(self)-&gt;st_nlink);</div><div class='add'>+    /* struct stat::st_nlink is nlink_t in POSIX.  Not the case for Windows. */</div><div class='add'>+    const struct stat *ptr = get_stat(self);</div><div class='add'>+</div><div class='add'>+    if (sizeof(ptr-&gt;st_nlink) &lt;= sizeof(int)) {</div><div class='add'>+        return UINT2NUM((unsigned)ptr-&gt;st_nlink);</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(ptr-&gt;st_nlink) == sizeof(long)) {</div><div class='add'>+        return ULONG2NUM((unsigned long)ptr-&gt;st_nlink);</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(ptr-&gt;st_nlink) == sizeof(LONG_LONG)) {</div><div class='add'>+        return ULL2NUM((unsigned LONG_LONG)ptr-&gt;st_nlink);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_bug(":FIXME: don't know what to do");</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -710,7 +760,13 @@ static VALUE</div><div class='ctx'> rb_stat_rdev(VALUE self)</div><div class='ctx'> {</div><div class='ctx'> #ifdef HAVE_STRUCT_STAT_ST_RDEV</div><div class='add'>+# if SIZEOF_STRUCT_STAT_ST_RDEV &lt;= SIZEOF_DEV_T</div><div class='ctx'>     return DEVT2NUM(get_stat(self)-&gt;st_rdev);</div><div class='add'>+# elif SIZEOF_STRUCT_STAT_ST_RDEV &lt;= SIZEOF_LONG</div><div class='add'>+    return ULONG2NUM(get_stat(self)-&gt;st_rdev);</div><div class='add'>+# else</div><div class='add'>+    return ULL2NUM(get_stat(self)-&gt;st_rdev);</div><div class='add'>+# endif</div><div class='ctx'> #else</div><div class='ctx'>     return Qnil;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -820,7 +876,7 @@ rb_stat_blocks(VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct timespec</div><div class='del'>-stat_atimespec(struct stat *st)</div><div class='add'>+stat_atimespec(const struct stat *st)</div><div class='ctx'> {</div><div class='ctx'>     struct timespec ts;</div><div class='ctx'>     ts.tv_sec = st-&gt;st_atime;</div><div class='hunk'>@@ -837,14 +893,19 @@ stat_atimespec(struct stat *st)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-stat_atime(struct stat *st)</div><div class='add'>+stat_time(const struct timespec ts)</div><div class='ctx'> {</div><div class='del'>-    struct timespec ts = stat_atimespec(st);</div><div class='ctx'>     return rb_time_nano_new(ts.tv_sec, ts.tv_nsec);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+stat_atime(const struct stat *st)</div><div class='add'>+{</div><div class='add'>+    return stat_time(stat_atimespec(st));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static struct timespec</div><div class='del'>-stat_mtimespec(struct stat *st)</div><div class='add'>+stat_mtimespec(const struct stat *st)</div><div class='ctx'> {</div><div class='ctx'>     struct timespec ts;</div><div class='ctx'>     ts.tv_sec = st-&gt;st_mtime;</div><div class='hunk'>@@ -861,14 +922,13 @@ stat_mtimespec(struct stat *st)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-stat_mtime(struct stat *st)</div><div class='add'>+stat_mtime(const struct stat *st)</div><div class='ctx'> {</div><div class='del'>-    struct timespec ts = stat_mtimespec(st);</div><div class='del'>-    return rb_time_nano_new(ts.tv_sec, ts.tv_nsec);</div><div class='add'>+    return stat_time(stat_mtimespec(st));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct timespec</div><div class='del'>-stat_ctimespec(struct stat *st)</div><div class='add'>+stat_ctimespec(const struct stat *st)</div><div class='ctx'> {</div><div class='ctx'>     struct timespec ts;</div><div class='ctx'>     ts.tv_sec = st-&gt;st_ctime;</div><div class='hunk'>@@ -885,21 +945,22 @@ stat_ctimespec(struct stat *st)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-stat_ctime(struct stat *st)</div><div class='add'>+stat_ctime(const struct stat *st)</div><div class='ctx'> {</div><div class='del'>-    struct timespec ts = stat_ctimespec(st);</div><div class='del'>-    return rb_time_nano_new(ts.tv_sec, ts.tv_nsec);</div><div class='add'>+    return stat_time(stat_ctimespec(st));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define HAVE_STAT_BIRTHTIME</div><div class='ctx'> #if defined(HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC)</div><div class='add'>+typedef struct stat statx_data;</div><div class='ctx'> static VALUE</div><div class='del'>-stat_birthtime(struct stat *st)</div><div class='add'>+stat_birthtime(const struct stat *st)</div><div class='ctx'> {</div><div class='del'>-    struct timespec *ts = &amp;st-&gt;st_birthtimespec;</div><div class='add'>+    const struct timespec *ts = &amp;st-&gt;st_birthtimespec;</div><div class='ctx'>     return rb_time_nano_new(ts-&gt;tv_sec, ts-&gt;tv_nsec);</div><div class='ctx'> }</div><div class='ctx'> #elif defined(_WIN32)</div><div class='add'>+typedef struct stat statx_data;</div><div class='ctx'> # define stat_birthtime stat_ctime</div><div class='ctx'> #else</div><div class='ctx'> # undef HAVE_STAT_BIRTHTIME</div><div class='hunk'>@@ -910,7 +971,7 @@ stat_birthtime(struct stat *st)</div><div class='ctx'>  *     stat.atime   -&gt; time</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the last access time for this file as an object of class</div><div class='del'>- *  &lt;code&gt;Time&lt;/code&gt;.</div><div class='add'>+ *  Time.</div><div class='ctx'>  *</div><div class='ctx'>  *     File.stat("testfile").atime   #=&gt; Wed Dec 31 18:00:00 CST 1969</div><div class='ctx'>  *</div><div class='hunk'>@@ -924,7 +985,7 @@ rb_stat_atime(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     stat.mtime  -&gt;  aTime</div><div class='add'>+ *     stat.mtime  -&gt;  time</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the modification time of &lt;i&gt;stat&lt;/i&gt;.</div><div class='ctx'>  *</div><div class='hunk'>@@ -940,7 +1001,7 @@ rb_stat_mtime(VALUE self)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     stat.ctime  -&gt;  aTime</div><div class='add'>+ *     stat.ctime  -&gt;  time</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the change time for &lt;i&gt;stat&lt;/i&gt; (that is, the time</div><div class='ctx'>  *  directory information about the file was changed, not the file</div><div class='hunk'>@@ -961,7 +1022,7 @@ rb_stat_ctime(VALUE self)</div><div class='ctx'> #if defined(HAVE_STAT_BIRTHTIME)</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     stat.birthtime  -&gt;  aTime</div><div class='add'>+ *     stat.birthtime  -&gt;  time</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the birth time for &lt;i&gt;stat&lt;/i&gt;.</div><div class='ctx'>  *</div><div class='hunk'>@@ -1011,24 +1072,24 @@ rb_stat_inspect(VALUE self)</div><div class='ctx'>     VALUE str;</div><div class='ctx'>     size_t i;</div><div class='ctx'>     static const struct {</div><div class='del'>-	const char *name;</div><div class='del'>-	VALUE (*func)(VALUE);</div><div class='add'>+        const char *name;</div><div class='add'>+        VALUE (*func)(VALUE);</div><div class='ctx'>     } member[] = {</div><div class='del'>-	{"dev",	    rb_stat_dev},</div><div class='del'>-	{"ino",	    rb_stat_ino},</div><div class='del'>-	{"mode",    rb_stat_mode},</div><div class='del'>-	{"nlink",   rb_stat_nlink},</div><div class='del'>-	{"uid",	    rb_stat_uid},</div><div class='del'>-	{"gid",	    rb_stat_gid},</div><div class='del'>-	{"rdev",    rb_stat_rdev},</div><div class='del'>-	{"size",    rb_stat_size},</div><div class='del'>-	{"blksize", rb_stat_blksize},</div><div class='del'>-	{"blocks",  rb_stat_blocks},</div><div class='del'>-	{"atime",   rb_stat_atime},</div><div class='del'>-	{"mtime",   rb_stat_mtime},</div><div class='del'>-	{"ctime",   rb_stat_ctime},</div><div class='add'>+        {"dev",	    rb_stat_dev},</div><div class='add'>+        {"ino",	    rb_stat_ino},</div><div class='add'>+        {"mode",    rb_stat_mode},</div><div class='add'>+        {"nlink",   rb_stat_nlink},</div><div class='add'>+        {"uid",	    rb_stat_uid},</div><div class='add'>+        {"gid",	    rb_stat_gid},</div><div class='add'>+        {"rdev",    rb_stat_rdev},</div><div class='add'>+        {"size",    rb_stat_size},</div><div class='add'>+        {"blksize", rb_stat_blksize},</div><div class='add'>+        {"blocks",  rb_stat_blocks},</div><div class='add'>+        {"atime",   rb_stat_atime},</div><div class='add'>+        {"mtime",   rb_stat_mtime},</div><div class='add'>+        {"ctime",   rb_stat_ctime},</div><div class='ctx'> #if defined(HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC)</div><div class='del'>-	{"birthtime",   rb_stat_birthtime},</div><div class='add'>+        {"birthtime",   rb_stat_birthtime},</div><div class='ctx'> #endif</div><div class='ctx'>     };</div><div class='ctx'> </div><div class='hunk'>@@ -1043,26 +1104,25 @@ rb_stat_inspect(VALUE self)</div><div class='ctx'>     rb_str_buf_cat2(str, " ");</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; sizeof(member)/sizeof(member[0]); i++) {</div><div class='del'>-	VALUE v;</div><div class='del'>-</div><div class='del'>-	if (i &gt; 0) {</div><div class='del'>-	    rb_str_buf_cat2(str, ", ");</div><div class='del'>-	}</div><div class='del'>-	rb_str_buf_cat2(str, member[i].name);</div><div class='del'>-	rb_str_buf_cat2(str, "=");</div><div class='del'>-	v = (*member[i].func)(self);</div><div class='del'>-	if (i == 2) {		/* mode */</div><div class='del'>-	    rb_str_catf(str, "0%lo", (unsigned long)NUM2ULONG(v));</div><div class='del'>-	}</div><div class='del'>-	else if (i == 0 || i == 6) { /* dev/rdev */</div><div class='del'>-	    rb_str_catf(str, "0x%"PRI_DEVT_PREFIX"x", NUM2DEVT(v));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_str_append(str, rb_inspect(v));</div><div class='del'>-	}</div><div class='add'>+        VALUE v;</div><div class='add'>+</div><div class='add'>+        if (i &gt; 0) {</div><div class='add'>+            rb_str_buf_cat2(str, ", ");</div><div class='add'>+        }</div><div class='add'>+        rb_str_buf_cat2(str, member[i].name);</div><div class='add'>+        rb_str_buf_cat2(str, "=");</div><div class='add'>+        v = (*member[i].func)(self);</div><div class='add'>+        if (i == 2) {		/* mode */</div><div class='add'>+            rb_str_catf(str, "0%lo", (unsigned long)NUM2ULONG(v));</div><div class='add'>+        }</div><div class='add'>+        else if (i == 0 || i == 6) { /* dev/rdev */</div><div class='add'>+            rb_str_catf(str, "0x%"PRI_DEVT_PREFIX"x", NUM2DEVT(v));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_str_append(str, rb_inspect(v));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     rb_str_buf_cat2(str, "&gt;");</div><div class='del'>-    OBJ_INFECT(str, self);</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='hunk'>@@ -1070,8 +1130,8 @@ rb_stat_inspect(VALUE self)</div><div class='ctx'> typedef struct no_gvl_stat_data {</div><div class='ctx'>     struct stat *st;</div><div class='ctx'>     union {</div><div class='del'>-	const char *path;</div><div class='del'>-	int fd;</div><div class='add'>+        const char *path;</div><div class='add'>+        int fd;</div><div class='ctx'>     } file;</div><div class='ctx'> } no_gvl_stat_data;</div><div class='ctx'> </div><div class='hunk'>@@ -1109,9 +1169,128 @@ stat_without_gvl(const char *path, struct stat *st)</div><div class='ctx'>     data.st = st;</div><div class='ctx'> </div><div class='ctx'>     return (int)(VALUE)rb_thread_call_without_gvl(no_gvl_stat, &amp;data,</div><div class='del'>-						  RUBY_UBF_IO, NULL);</div><div class='add'>+                                                  RUBY_UBF_IO, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if !defined(HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC) &amp;&amp; \</div><div class='add'>+    defined(HAVE_STRUCT_STATX_STX_BTIME)</div><div class='add'>+</div><div class='add'>+# ifndef HAVE_STATX</div><div class='add'>+#   ifdef HAVE_SYSCALL_H</div><div class='add'>+#     include &lt;syscall.h&gt;</div><div class='add'>+#   elif defined HAVE_SYS_SYSCALL_H</div><div class='add'>+#     include &lt;sys/syscall.h&gt;</div><div class='add'>+#   endif</div><div class='add'>+#   if defined __linux__</div><div class='add'>+#     include &lt;linux/stat.h&gt;</div><div class='add'>+static inline int</div><div class='add'>+statx(int dirfd, const char *pathname, int flags,</div><div class='add'>+      unsigned int mask, struct statx *statxbuf)</div><div class='add'>+{</div><div class='add'>+    return (int)syscall(__NR_statx, dirfd, pathname, flags, mask, statxbuf);</div><div class='add'>+}</div><div class='add'>+#   endif</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+typedef struct no_gvl_statx_data {</div><div class='add'>+    struct statx *stx;</div><div class='add'>+    int fd;</div><div class='add'>+    const char *path;</div><div class='add'>+    int flags;</div><div class='add'>+    unsigned int mask;</div><div class='add'>+} no_gvl_statx_data;</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_blocking_statx(void *data)</div><div class='add'>+{</div><div class='add'>+    no_gvl_statx_data *arg = data;</div><div class='add'>+    return (VALUE)statx(arg-&gt;fd, arg-&gt;path, arg-&gt;flags, arg-&gt;mask, arg-&gt;stx);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+no_gvl_statx(void *data)</div><div class='add'>+{</div><div class='add'>+    return (void *)io_blocking_statx(data);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+statx_without_gvl(const char *path, struct statx *stx, unsigned int mask)</div><div class='add'>+{</div><div class='add'>+    no_gvl_statx_data data = {stx, AT_FDCWD, path, 0, mask};</div><div class='add'>+</div><div class='add'>+    /* call statx(2) with pathname */</div><div class='add'>+    return (int)(VALUE)rb_thread_call_without_gvl(no_gvl_statx, &amp;data,</div><div class='add'>+                                                  RUBY_UBF_IO, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+fstatx_without_gvl(int fd, struct statx *stx, unsigned int mask)</div><div class='add'>+{</div><div class='add'>+    no_gvl_statx_data data = {stx, fd, "", AT_EMPTY_PATH, mask};</div><div class='add'>+</div><div class='add'>+    /* call statx(2) with fd */</div><div class='add'>+    return (int)rb_thread_io_blocking_region(io_blocking_statx, &amp;data, fd);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+rb_statx(VALUE file, struct statx *stx, unsigned int mask)</div><div class='add'>+{</div><div class='add'>+    VALUE tmp;</div><div class='add'>+    int result;</div><div class='add'>+</div><div class='add'>+    tmp = rb_check_convert_type_with_id(file, T_FILE, "IO", idTo_io);</div><div class='add'>+    if (!NIL_P(tmp)) {</div><div class='add'>+        rb_io_t *fptr;</div><div class='add'>+        GetOpenFile(tmp, fptr);</div><div class='add'>+        result = fstatx_without_gvl(fptr-&gt;fd, stx, mask);</div><div class='add'>+        file = tmp;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        FilePathValue(file);</div><div class='add'>+        file = rb_str_encode_ospath(file);</div><div class='add'>+        result = statx_without_gvl(RSTRING_PTR(file), stx, mask);</div><div class='add'>+    }</div><div class='add'>+    RB_GC_GUARD(file);</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# define statx_has_birthtime(st) ((st)-&gt;stx_mask &amp; STATX_BTIME)</div><div class='add'>+</div><div class='add'>+NORETURN(static void statx_notimplement(const char *field_name));</div><div class='add'>+</div><div class='add'>+/* rb_notimplement() shows "function is unimplemented on this machine".</div><div class='add'>+   It is not applicable to statx which behavior depends on the filesystem. */</div><div class='add'>+static void</div><div class='add'>+statx_notimplement(const char *field_name)</div><div class='add'>+{</div><div class='add'>+    rb_raise(rb_eNotImpError,</div><div class='add'>+             "%s is unimplemented on this filesystem",</div><div class='add'>+             field_name);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+statx_birthtime(const struct statx *stx, VALUE fname)</div><div class='add'>+{</div><div class='add'>+    if (!statx_has_birthtime(stx)) {</div><div class='add'>+        /* birthtime is not supported on the filesystem */</div><div class='add'>+        statx_notimplement("birthtime");</div><div class='add'>+    }</div><div class='add'>+    return rb_time_nano_new((time_t)stx-&gt;stx_btime.tv_sec, stx-&gt;stx_btime.tv_nsec);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+typedef struct statx statx_data;</div><div class='add'>+# define HAVE_STAT_BIRTHTIME</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_STAT_BIRTHTIME)</div><div class='add'>+# define statx_without_gvl(path, st, mask) stat_without_gvl(path, st)</div><div class='add'>+# define fstatx_without_gvl(fd, st, mask) fstat_without_gvl(fd, st)</div><div class='add'>+# define statx_birthtime(st, fname) stat_birthtime(st)</div><div class='add'>+# define statx_has_birthtime(st) 1</div><div class='add'>+# define rb_statx(file, st, mask) rb_stat(file, st)</div><div class='add'>+#else</div><div class='add'>+# define statx_has_birthtime(st) 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> rb_stat(VALUE file, struct stat *st)</div><div class='ctx'> {</div><div class='hunk'>@@ -1120,16 +1299,16 @@ rb_stat(VALUE file, struct stat *st)</div><div class='ctx'> </div><div class='ctx'>     tmp = rb_check_convert_type_with_id(file, T_FILE, "IO", idTo_io);</div><div class='ctx'>     if (!NIL_P(tmp)) {</div><div class='del'>-	rb_io_t *fptr;</div><div class='add'>+        rb_io_t *fptr;</div><div class='ctx'> </div><div class='del'>-	GetOpenFile(tmp, fptr);</div><div class='del'>-	result = fstat_without_gvl(fptr-&gt;fd, st);</div><div class='del'>-	file = tmp;</div><div class='add'>+        GetOpenFile(tmp, fptr);</div><div class='add'>+        result = fstat_without_gvl(fptr-&gt;fd, st);</div><div class='add'>+        file = tmp;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	FilePathValue(file);</div><div class='del'>-	file = rb_str_encode_ospath(file);</div><div class='del'>-	result = stat_without_gvl(RSTRING_PTR(file), st);</div><div class='add'>+        FilePathValue(file);</div><div class='add'>+        file = rb_str_encode_ospath(file);</div><div class='add'>+        result = stat_without_gvl(RSTRING_PTR(file), st);</div><div class='ctx'>     }</div><div class='ctx'>     RB_GC_GUARD(file);</div><div class='ctx'>     return result;</div><div class='hunk'>@@ -1137,12 +1316,11 @@ rb_stat(VALUE file, struct stat *st)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     File.stat(file_name)   -&gt;  stat</div><div class='add'>+ *    File.stat(filepath) -&gt;  stat</div><div class='ctx'>  *</div><div class='del'>- *  Returns a &lt;code&gt;File::Stat&lt;/code&gt; object for the named file (see</div><div class='del'>- *  &lt;code&gt;File::Stat&lt;/code&gt;).</div><div class='add'>+ *  Returns a File::Stat object for the file at +filepath+ (see File::Stat):</div><div class='ctx'>  *</div><div class='del'>- *     File.stat("testfile").mtime   #=&gt; Tue Apr 08 12:58:04 CDT 2003</div><div class='add'>+ *    File.stat('t.txt').class # =&gt; File::Stat</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -1154,7 +1332,7 @@ rb_file_s_stat(VALUE klass, VALUE fname)</div><div class='ctx'>     FilePathValue(fname);</div><div class='ctx'>     fname = rb_str_encode_ospath(fname);</div><div class='ctx'>     if (stat_without_gvl(RSTRING_PTR(fname), &amp;st) &lt; 0) {</div><div class='del'>-	rb_sys_fail_path(fname);</div><div class='add'>+        rb_sys_fail_path(fname);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_stat_new(&amp;st);</div><div class='ctx'> }</div><div class='hunk'>@@ -1164,7 +1342,7 @@ rb_file_s_stat(VALUE klass, VALUE fname)</div><div class='ctx'>  *     ios.stat    -&gt; stat</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns status information for &lt;em&gt;ios&lt;/em&gt; as an object of type</div><div class='del'>- *  &lt;code&gt;File::Stat&lt;/code&gt;.</div><div class='add'>+ *  File::Stat.</div><div class='ctx'>  *</div><div class='ctx'>  *     f = File.new("testfile")</div><div class='ctx'>  *     s = f.stat</div><div class='hunk'>@@ -1182,7 +1360,7 @@ rb_io_stat(VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(obj, fptr);</div><div class='ctx'>     if (fstat(fptr-&gt;fd, &amp;st) == -1) {</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_stat_new(&amp;st);</div><div class='ctx'> }</div><div class='hunk'>@@ -1204,21 +1382,20 @@ lstat_without_gvl(const char *path, struct stat *st)</div><div class='ctx'>     data.st = st;</div><div class='ctx'> </div><div class='ctx'>     return (int)(VALUE)rb_thread_call_without_gvl(no_gvl_lstat, &amp;data,</div><div class='del'>-						    RUBY_UBF_IO, NULL);</div><div class='add'>+                                                    RUBY_UBF_IO, NULL);</div><div class='ctx'> }</div><div class='ctx'> #endif /* HAVE_LSTAT */</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     File.lstat(file_name)   -&gt; stat</div><div class='add'>+ *    File.lstat(filepath) -&gt; stat</div><div class='ctx'>  *</div><div class='del'>- *  Same as &lt;code&gt;File::stat&lt;/code&gt;, but does not follow the last symbolic</div><div class='del'>- *  link. Instead, reports on the link itself.</div><div class='add'>+ *  Like File::stat, but does not follow the last symbolic link;</div><div class='add'>+ *  instead, returns a File::Stat object for the link itself.</div><div class='ctx'>  *</div><div class='del'>- *     File.symlink("testfile", "link2test")   #=&gt; 0</div><div class='del'>- *     File.stat("testfile").size              #=&gt; 66</div><div class='del'>- *     File.lstat("link2test").size            #=&gt; 8</div><div class='del'>- *     File.stat("link2test").size             #=&gt; 66</div><div class='add'>+ *    File.symlink('t.txt', 'symlink')</div><div class='add'>+ *    File.stat('symlink').size  # =&gt; 47</div><div class='add'>+ *    File.lstat('symlink').size # =&gt; 5</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -1231,7 +1408,7 @@ rb_file_s_lstat(VALUE klass, VALUE fname)</div><div class='ctx'>     FilePathValue(fname);</div><div class='ctx'>     fname = rb_str_encode_ospath(fname);</div><div class='ctx'>     if (lstat_without_gvl(StringValueCStr(fname), &amp;st) == -1) {</div><div class='del'>-	rb_sys_fail_path(fname);</div><div class='add'>+        rb_sys_fail_path(fname);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_stat_new(&amp;st);</div><div class='ctx'> #else</div><div class='hunk'>@@ -1241,16 +1418,16 @@ rb_file_s_lstat(VALUE klass, VALUE fname)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     file.lstat   -&gt;  stat</div><div class='add'>+ *    lstat -&gt; stat</div><div class='ctx'>  *</div><div class='del'>- *  Same as &lt;code&gt;IO#stat&lt;/code&gt;, but does not follow the last symbolic</div><div class='del'>- *  link. Instead, reports on the link itself.</div><div class='add'>+ *  Like File#stat, but does not follow the last symbolic link;</div><div class='add'>+ *  instead, returns a File::Stat object for the link itself:</div><div class='add'>+ *</div><div class='add'>+ *    File.symlink('t.txt', 'symlink')</div><div class='add'>+ *    f = File.new('symlink')</div><div class='add'>+ *    f.stat.size  # =&gt; 47</div><div class='add'>+ *    f.lstat.size # =&gt; 11</div><div class='ctx'>  *</div><div class='del'>- *     File.symlink("testfile", "link2test")   #=&gt; 0</div><div class='del'>- *     File.stat("testfile").size              #=&gt; 66</div><div class='del'>- *     f = File.new("link2test")</div><div class='del'>- *     f.lstat.size                            #=&gt; 8</div><div class='del'>- *     f.stat.size                             #=&gt; 66</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1265,7 +1442,7 @@ rb_file_lstat(VALUE obj)</div><div class='ctx'>     if (NIL_P(fptr-&gt;pathv)) return Qnil;</div><div class='ctx'>     path = rb_str_encode_ospath(fptr-&gt;pathv);</div><div class='ctx'>     if (lstat_without_gvl(RSTRING_PTR(path), &amp;st) == -1) {</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_stat_new(&amp;st);</div><div class='ctx'> #else</div><div class='hunk'>@@ -1280,41 +1457,25 @@ rb_group_member(GETGROUPS_T gid)</div><div class='ctx'>     return FALSE;</div><div class='ctx'> #else</div><div class='ctx'>     int rv = FALSE;</div><div class='del'>-    int groups = 16;</div><div class='add'>+    int groups;</div><div class='ctx'>     VALUE v = 0;</div><div class='ctx'>     GETGROUPS_T *gary;</div><div class='ctx'>     int anum = -1;</div><div class='ctx'> </div><div class='ctx'>     if (getgid() == gid || getegid() == gid)</div><div class='del'>-	return TRUE;</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * On Mac OS X (Mountain Lion), NGROUPS is 16. But libc and kernel</div><div class='del'>-     * accept more larger value.</div><div class='del'>-     * So we don't trunk NGROUPS anymore.</div><div class='del'>-     */</div><div class='del'>-    while (groups &lt;= RB_MAX_GROUPS) {</div><div class='del'>-	gary = ALLOCV_N(GETGROUPS_T, v, groups);</div><div class='del'>-	anum = getgroups(groups, gary);</div><div class='del'>-	if (anum != -1 &amp;&amp; anum != groups)</div><div class='del'>-	    break;</div><div class='del'>-	groups *= 2;</div><div class='del'>-	if (v) {</div><div class='del'>-	    ALLOCV_END(v);</div><div class='del'>-	    v = 0;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    if (anum == -1)</div><div class='del'>-	return FALSE;</div><div class='add'>+        return TRUE;</div><div class='ctx'> </div><div class='add'>+    groups = getgroups(0, NULL);</div><div class='add'>+    gary = ALLOCV_N(GETGROUPS_T, v, groups);</div><div class='add'>+    anum = getgroups(groups, gary);</div><div class='ctx'>     while (--anum &gt;= 0) {</div><div class='del'>-	if (gary[anum] == gid) {</div><div class='del'>-	    rv = TRUE;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        if (gary[anum] == gid) {</div><div class='add'>+            rv = TRUE;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (v)</div><div class='del'>-	ALLOCV_END(v);</div><div class='add'>+        ALLOCV_END(v);</div><div class='ctx'> </div><div class='ctx'>     return rv;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -1340,28 +1501,28 @@ eaccess(const char *path, int mode)</div><div class='ctx'> </div><div class='ctx'>     /* no setuid nor setgid. run shortcut. */</div><div class='ctx'>     if (getuid() == euid &amp;&amp; getgid() == getegid())</div><div class='del'>-	return access(path, mode);</div><div class='add'>+        return access(path, mode);</div><div class='ctx'> </div><div class='ctx'>     if (STAT(path, &amp;st) &lt; 0)</div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'> </div><div class='ctx'>     if (euid == 0) {</div><div class='del'>-	/* Root can read or write any file. */</div><div class='del'>-	if (!(mode &amp; X_OK))</div><div class='del'>-	    return 0;</div><div class='add'>+        /* Root can read or write any file. */</div><div class='add'>+        if (!(mode &amp; X_OK))</div><div class='add'>+            return 0;</div><div class='ctx'> </div><div class='del'>-	/* Root can execute any file that has any one of the execute</div><div class='del'>-	   bits set. */</div><div class='del'>-	if (st.st_mode &amp; S_IXUGO)</div><div class='del'>-	    return 0;</div><div class='add'>+        /* Root can execute any file that has any one of the execute</div><div class='add'>+           bits set. */</div><div class='add'>+        if (st.st_mode &amp; S_IXUGO)</div><div class='add'>+            return 0;</div><div class='ctx'> </div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (st.st_uid == euid)        /* owner */</div><div class='del'>-	mode &lt;&lt;= 6;</div><div class='add'>+        mode &lt;&lt;= 6;</div><div class='ctx'>     else if (rb_group_member(st.st_gid))</div><div class='del'>-	mode &lt;&lt;= 3;</div><div class='add'>+        mode &lt;&lt;= 3;</div><div class='ctx'> </div><div class='ctx'>     if ((int)(st.st_mode &amp; mode) == mode) return 0;</div><div class='ctx'> </div><div class='hunk'>@@ -1396,7 +1557,7 @@ rb_eaccess(VALUE fname, int mode)</div><div class='ctx'>     aa.mode = mode;</div><div class='ctx'> </div><div class='ctx'>     return (int)(VALUE)rb_thread_call_without_gvl(nogvl_eaccess, &amp;aa,</div><div class='del'>-						RUBY_UBF_IO, 0);</div><div class='add'>+                                                RUBY_UBF_IO, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void *</div><div class='hunk'>@@ -1418,16 +1579,16 @@ rb_access(VALUE fname, int mode)</div><div class='ctx'>     aa.mode = mode;</div><div class='ctx'> </div><div class='ctx'>     return (int)(VALUE)rb_thread_call_without_gvl(nogvl_access, &amp;aa,</div><div class='del'>-						RUBY_UBF_IO, 0);</div><div class='add'>+                                                RUBY_UBF_IO, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Document-class: FileTest</div><div class='ctx'>  *</div><div class='del'>- *  &lt;code&gt;FileTest&lt;/code&gt; implements file test operations similar to</div><div class='del'>- *  those used in &lt;code&gt;File::Stat&lt;/code&gt;. It exists as a standalone</div><div class='del'>- *  module, and its methods are also insinuated into the &lt;code&gt;File&lt;/code&gt;</div><div class='del'>- *  class. (Note that this is not done by inclusion: the interpreter cheats).</div><div class='add'>+ *  FileTest implements file test operations similar to those used in</div><div class='add'>+ *  File::Stat. It exists as a standalone module, and its methods are</div><div class='add'>+ *  also insinuated into the File class. (Note that this is not done</div><div class='add'>+ *  by inclusion: the interpreter cheats).</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -1435,15 +1596,20 @@ rb_access(VALUE fname, int mode)</div><div class='ctx'>  * Document-method: directory?</div><div class='ctx'>  *</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   File.directory?(file_name)   -&gt;  true or false</div><div class='add'>+ *   File.directory?(path) -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns &lt;code&gt;true&lt;/code&gt; if the named file is a directory,</div><div class='del'>- * or a symlink that points at a directory, and &lt;code&gt;false&lt;/code&gt;</div><div class='del'>- * otherwise.</div><div class='add'>+ * With string +object+ given, returns +true+ if +path+ is a string path</div><div class='add'>+ * leading to a directory, or to a symbolic link to a directory; +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- * _file_name_ can be an IO object.</div><div class='add'>+ *   File.directory?('.')              # =&gt; true</div><div class='add'>+ *   File.directory?('foo')            # =&gt; false</div><div class='add'>+ *   File.symlink('.', 'dirlink')      # =&gt; 0</div><div class='add'>+ *   File.directory?('dirlink')        # =&gt; true</div><div class='add'>+ *   File.symlink('t,txt', 'filelink') # =&gt; 0</div><div class='add'>+ *   File.directory?('filelink')       # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ * Argument +path+ can be an IO object.</div><div class='ctx'>  *</div><div class='del'>- *    File.directory?(".")</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -1462,11 +1628,14 @@ rb_file_directory_p(VALUE obj, VALUE fname)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   File.pipe?(file_name)   -&gt;  true or false</div><div class='add'>+ *   File.pipe?(filepath) -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns &lt;code&gt;true&lt;/code&gt; if the named file is a pipe.</div><div class='add'>+ * Returns +true+ if +filepath+ points to a pipe, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *   File.mkfifo('tmp/fifo')</div><div class='add'>+ *   File.pipe?('tmp/fifo') # =&gt; true</div><div class='add'>+ *   File.pipe?('t.txt')    # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- * _file_name_ can be an IO object.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1488,9 +1657,14 @@ rb_file_pipe_p(VALUE obj, VALUE fname)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   File.symlink?(file_name)   -&gt;  true or false</div><div class='add'>+ *   File.symlink?(filepath) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if +filepath+ points to a symbolic link, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *   symlink = File.symlink('t.txt', 'symlink')</div><div class='add'>+ *   File.symlink?('symlink') # =&gt; true</div><div class='add'>+ *   File.symlink?('t.txt')   # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- * Returns &lt;code&gt;true&lt;/code&gt; if the named file is a symbolic link.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1524,11 +1698,14 @@ rb_file_symlink_p(VALUE obj, VALUE fname)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   File.socket?(file_name)   -&gt;  true or false</div><div class='add'>+ *   File.socket?(filepath)   -&gt;  true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns &lt;code&gt;true&lt;/code&gt; if the named file is a socket.</div><div class='add'>+ * Returns +true+ if +filepath+ points to a socket, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *   require 'socket'</div><div class='add'>+ *   File.socket?(Socket.new(:INET, :STREAM)) # =&gt; true</div><div class='add'>+ *   File.socket?(File.new('t.txt'))          # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- * _file_name_ can be an IO object.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1553,18 +1730,20 @@ rb_file_socket_p(VALUE obj, VALUE fname)</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) return Qfalse;</div><div class='ctx'>     if (S_ISSOCK(st.st_mode)) return Qtrue;</div><div class='del'>-</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   File.blockdev?(file_name)   -&gt;  true or false</div><div class='add'>+ *   File.blockdev?(filepath) -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns &lt;code&gt;true&lt;/code&gt; if the named file is a block device.</div><div class='add'>+ * Returns +true+ if +filepath+ points to a block device, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *   File.blockdev?('/dev/sda1')       # =&gt; true</div><div class='add'>+ *   File.blockdev?(File.new('t.tmp')) # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- * _file_name_ can be an IO object.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1590,11 +1769,13 @@ rb_file_blockdev_p(VALUE obj, VALUE fname)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   File.chardev?(file_name)   -&gt;  true or false</div><div class='add'>+ *   File.chardev?(filepath) -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns &lt;code&gt;true&lt;/code&gt; if the named file is a character device.</div><div class='add'>+ * Returns +true+ if +filepath+ points to a character device, +false+ otherwise.</div><div class='add'>+ *</div><div class='add'>+  *  File.chardev?($stdin)     # =&gt; true</div><div class='add'>+ *   File.chardev?('t.txt')     # =&gt; false</div><div class='ctx'>  *</div><div class='del'>- * _file_name_ can be an IO object.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_file_chardev_p(VALUE obj, VALUE fname)</div><div class='hunk'>@@ -1633,39 +1814,19 @@ rb_file_exist_p(VALUE obj, VALUE fname)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *    File.exists?(file_name)   -&gt;  true or false</div><div class='del'>- *</div><div class='del'>- * Deprecated method. Don't use.</div><div class='del'>- */</div><div class='del'>-static VALUE</div><div class='del'>-rb_file_exists_p(VALUE obj, VALUE fname)</div><div class='del'>-{</div><div class='del'>-    const char *s = "FileTest#";</div><div class='del'>-    if (obj == rb_mFileTest) {</div><div class='del'>-	s = "FileTest.";</div><div class='del'>-    }</div><div class='del'>-    else if (obj == rb_cFile ||</div><div class='del'>-	     (RB_TYPE_P(obj, T_CLASS) &amp;&amp;</div><div class='del'>-	      RTEST(rb_class_inherited_p(obj, rb_cFile)))) {</div><div class='del'>-	s = "File.";</div><div class='del'>-    }</div><div class='del'>-    rb_warning("%sexists? is a deprecated name, use %sexist? instead", s, s);</div><div class='del'>-    return rb_file_exist_p(obj, fname);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='ctx'>  *    File.readable?(file_name)   -&gt; true or false</div><div class='ctx'>  *</div><div class='ctx'>  * Returns &lt;code&gt;true&lt;/code&gt; if the named file is readable by the effective</div><div class='ctx'>  * user and group id of this process. See eaccess(3).</div><div class='add'>+ *</div><div class='add'>+ * Note that some OS-level security features may cause this to return true</div><div class='add'>+ * even though the file is not readable by the effective user/group.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_file_readable_p(VALUE obj, VALUE fname)</div><div class='ctx'> {</div><div class='del'>-    if (rb_eaccess(fname, R_OK) &lt; 0) return Qfalse;</div><div class='del'>-    return Qtrue;</div><div class='add'>+    return RBOOL(rb_eaccess(fname, R_OK) &gt;= 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1674,13 +1835,15 @@ rb_file_readable_p(VALUE obj, VALUE fname)</div><div class='ctx'>  *</div><div class='ctx'>  * Returns &lt;code&gt;true&lt;/code&gt; if the named file is readable by the real</div><div class='ctx'>  * user and group id of this process. See access(3).</div><div class='add'>+ *</div><div class='add'>+ * Note that some OS-level security features may cause this to return true</div><div class='add'>+ * even though the file is not readable by the real user/group.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_file_readable_real_p(VALUE obj, VALUE fname)</div><div class='ctx'> {</div><div class='del'>-    if (rb_access(fname, R_OK) &lt; 0) return Qfalse;</div><div class='del'>-    return Qtrue;</div><div class='add'>+    return RBOOL(rb_access(fname, R_OK) &gt;= 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef S_IRUGO</div><div class='hunk'>@@ -1715,7 +1878,7 @@ rb_file_world_readable_p(VALUE obj, VALUE fname)</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) return Qnil;</div><div class='ctx'>     if ((st.st_mode &amp; (S_IROTH)) == S_IROTH) {</div><div class='del'>-	return UINT2NUM(st.st_mode &amp; (S_IRUGO|S_IWUGO|S_IXUGO));</div><div class='add'>+        return UINT2NUM(st.st_mode &amp; (S_IRUGO|S_IWUGO|S_IXUGO));</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -1727,13 +1890,15 @@ rb_file_world_readable_p(VALUE obj, VALUE fname)</div><div class='ctx'>  *</div><div class='ctx'>  * Returns &lt;code&gt;true&lt;/code&gt; if the named file is writable by the effective</div><div class='ctx'>  * user and group id of this process. See eaccess(3).</div><div class='add'>+ *</div><div class='add'>+ * Note that some OS-level security features may cause this to return true</div><div class='add'>+ * even though the file is not writable by the effective user/group.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_file_writable_p(VALUE obj, VALUE fname)</div><div class='ctx'> {</div><div class='del'>-    if (rb_eaccess(fname, W_OK) &lt; 0) return Qfalse;</div><div class='del'>-    return Qtrue;</div><div class='add'>+    return RBOOL(rb_eaccess(fname, W_OK) &gt;= 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1741,14 +1906,16 @@ rb_file_writable_p(VALUE obj, VALUE fname)</div><div class='ctx'>  *    File.writable_real?(file_name)   -&gt; true or false</div><div class='ctx'>  *</div><div class='ctx'>  * Returns &lt;code&gt;true&lt;/code&gt; if the named file is writable by the real</div><div class='del'>- * user and group id of this process. See access(3)</div><div class='add'>+ * user and group id of this process. See access(3).</div><div class='add'>+ *</div><div class='add'>+ * Note that some OS-level security features may cause this to return true</div><div class='add'>+ * even though the file is not writable by the real user/group.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_file_writable_real_p(VALUE obj, VALUE fname)</div><div class='ctx'> {</div><div class='del'>-    if (rb_access(fname, W_OK) &lt; 0) return Qfalse;</div><div class='del'>-    return Qtrue;</div><div class='add'>+    return RBOOL(rb_access(fname, W_OK) &gt;= 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1775,7 +1942,7 @@ rb_file_world_writable_p(VALUE obj, VALUE fname)</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) return Qnil;</div><div class='ctx'>     if ((st.st_mode &amp; (S_IWOTH)) == S_IWOTH) {</div><div class='del'>-	return UINT2NUM(st.st_mode &amp; (S_IRUGO|S_IWUGO|S_IXUGO));</div><div class='add'>+        return UINT2NUM(st.st_mode &amp; (S_IRUGO|S_IWUGO|S_IXUGO));</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -1787,13 +1954,19 @@ rb_file_world_writable_p(VALUE obj, VALUE fname)</div><div class='ctx'>  *</div><div class='ctx'>  * Returns &lt;code&gt;true&lt;/code&gt; if the named file is executable by the effective</div><div class='ctx'>  * user and group id of this process. See eaccess(3).</div><div class='add'>+ *</div><div class='add'>+ * Windows does not support execute permissions separately from read</div><div class='add'>+ * permissions. On Windows, a file is only considered executable if it ends in</div><div class='add'>+ * .bat, .cmd, .com, or .exe.</div><div class='add'>+ *</div><div class='add'>+ * Note that some OS-level security features may cause this to return true</div><div class='add'>+ * even though the file is not executable by the effective user/group.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_file_executable_p(VALUE obj, VALUE fname)</div><div class='ctx'> {</div><div class='del'>-    if (rb_eaccess(fname, X_OK) &lt; 0) return Qfalse;</div><div class='del'>-    return Qtrue;</div><div class='add'>+    return RBOOL(rb_eaccess(fname, X_OK) &gt;= 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1802,13 +1975,19 @@ rb_file_executable_p(VALUE obj, VALUE fname)</div><div class='ctx'>  *</div><div class='ctx'>  * Returns &lt;code&gt;true&lt;/code&gt; if the named file is executable by the real</div><div class='ctx'>  * user and group id of this process. See access(3).</div><div class='add'>+ *</div><div class='add'>+ * Windows does not support execute permissions separately from read</div><div class='add'>+ * permissions. On Windows, a file is only considered executable if it ends in</div><div class='add'>+ * .bat, .cmd, .com, or .exe.</div><div class='add'>+ *</div><div class='add'>+ * Note that some OS-level security features may cause this to return true</div><div class='add'>+ * even though the file is not executable by the real user/group.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_file_executable_real_p(VALUE obj, VALUE fname)</div><div class='ctx'> {</div><div class='del'>-    if (rb_access(fname, X_OK) &lt; 0) return Qfalse;</div><div class='del'>-    return Qtrue;</div><div class='add'>+    return RBOOL(rb_access(fname, X_OK) &gt;= 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef S_ISREG</div><div class='hunk'>@@ -1833,8 +2012,7 @@ rb_file_file_p(VALUE obj, VALUE fname)</div><div class='ctx'>     struct stat st;</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) return Qfalse;</div><div class='del'>-    if (S_ISREG(st.st_mode)) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(S_ISREG(st.st_mode));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1853,8 +2031,7 @@ rb_file_zero_p(VALUE obj, VALUE fname)</div><div class='ctx'>     struct stat st;</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) return Qfalse;</div><div class='del'>-    if (st.st_size == 0) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(st.st_size == 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1894,8 +2071,7 @@ rb_file_owned_p(VALUE obj, VALUE fname)</div><div class='ctx'>     struct stat st;</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) return Qfalse;</div><div class='del'>-    if (st.st_uid == geteuid()) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(st.st_uid == geteuid());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1904,8 +2080,7 @@ rb_file_rowned_p(VALUE obj, VALUE fname)</div><div class='ctx'>     struct stat st;</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) return Qfalse;</div><div class='del'>-    if (st.st_uid == getuid()) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(st.st_uid == getuid());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1938,8 +2113,7 @@ check3rdbyte(VALUE fname, int mode)</div><div class='ctx'>     struct stat st;</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) return Qfalse;</div><div class='del'>-    if (st.st_mode &amp; mode) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(st.st_mode &amp; mode);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -1996,7 +2170,7 @@ rb_file_sticky_p(VALUE obj, VALUE fname)</div><div class='ctx'> #ifdef S_ISVTX</div><div class='ctx'>     return check3rdbyte(fname, S_ISVTX);</div><div class='ctx'> #else</div><div class='del'>-    return Qnil;</div><div class='add'>+    return Qfalse;</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2051,9 +2225,9 @@ rb_file_s_size(VALUE klass, VALUE fname)</div><div class='ctx'>     struct stat st;</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	FilePathValue(fname);</div><div class='del'>-	rb_syserr_fail_path(e, fname);</div><div class='add'>+        int e = errno;</div><div class='add'>+        FilePathValue(fname);</div><div class='add'>+        rb_syserr_fail_path(e, fname);</div><div class='ctx'>     }</div><div class='ctx'>     return OFFT2NUM(st.st_size);</div><div class='ctx'> }</div><div class='hunk'>@@ -2064,36 +2238,36 @@ rb_file_ftype(const struct stat *st)</div><div class='ctx'>     const char *t;</div><div class='ctx'> </div><div class='ctx'>     if (S_ISREG(st-&gt;st_mode)) {</div><div class='del'>-	t = "file";</div><div class='add'>+        t = "file";</div><div class='ctx'>     }</div><div class='ctx'>     else if (S_ISDIR(st-&gt;st_mode)) {</div><div class='del'>-	t = "directory";</div><div class='add'>+        t = "directory";</div><div class='ctx'>     }</div><div class='ctx'>     else if (S_ISCHR(st-&gt;st_mode)) {</div><div class='del'>-	t = "characterSpecial";</div><div class='add'>+        t = "characterSpecial";</div><div class='ctx'>     }</div><div class='ctx'> #ifdef S_ISBLK</div><div class='ctx'>     else if (S_ISBLK(st-&gt;st_mode)) {</div><div class='del'>-	t = "blockSpecial";</div><div class='add'>+        t = "blockSpecial";</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_ISFIFO</div><div class='ctx'>     else if (S_ISFIFO(st-&gt;st_mode)) {</div><div class='del'>-	t = "fifo";</div><div class='add'>+        t = "fifo";</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_ISLNK</div><div class='ctx'>     else if (S_ISLNK(st-&gt;st_mode)) {</div><div class='del'>-	t = "link";</div><div class='add'>+        t = "link";</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_ISSOCK</div><div class='ctx'>     else if (S_ISSOCK(st-&gt;st_mode)) {</div><div class='del'>-	t = "socket";</div><div class='add'>+        t = "socket";</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     else {</div><div class='del'>-	t = "unknown";</div><div class='add'>+        t = "unknown";</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return rb_usascii_str_new2(t);</div><div class='hunk'>@@ -2122,7 +2296,7 @@ rb_file_s_ftype(VALUE klass, VALUE fname)</div><div class='ctx'>     FilePathValue(fname);</div><div class='ctx'>     fname = rb_str_encode_ospath(fname);</div><div class='ctx'>     if (lstat_without_gvl(StringValueCStr(fname), &amp;st) == -1) {</div><div class='del'>-	rb_sys_fail_path(fname);</div><div class='add'>+        rb_sys_fail_path(fname);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return rb_file_ftype(&amp;st);</div><div class='hunk'>@@ -2146,9 +2320,9 @@ rb_file_s_atime(VALUE klass, VALUE fname)</div><div class='ctx'>     struct stat st;</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	FilePathValue(fname);</div><div class='del'>-	rb_syserr_fail_path(e, fname);</div><div class='add'>+        int e = errno;</div><div class='add'>+        FilePathValue(fname);</div><div class='add'>+        rb_syserr_fail_path(e, fname);</div><div class='ctx'>     }</div><div class='ctx'>     return stat_atime(&amp;st);</div><div class='ctx'> }</div><div class='hunk'>@@ -2157,8 +2331,8 @@ rb_file_s_atime(VALUE klass, VALUE fname)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     file.atime    -&gt; time</div><div class='ctx'>  *</div><div class='del'>- *  Returns the last access time (a &lt;code&gt;Time&lt;/code&gt; object)</div><div class='del'>- *  for &lt;i&gt;file&lt;/i&gt;, or epoch if &lt;i&gt;file&lt;/i&gt; has not been accessed.</div><div class='add'>+ *  Returns the last access time (a Time object) for &lt;i&gt;file&lt;/i&gt;, or</div><div class='add'>+ *  epoch if &lt;i&gt;file&lt;/i&gt; has not been accessed.</div><div class='ctx'>  *</div><div class='ctx'>  *     File.new("testfile").atime   #=&gt; Wed Dec 31 18:00:00 CST 1969</div><div class='ctx'>  *</div><div class='hunk'>@@ -2172,7 +2346,7 @@ rb_file_atime(VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(obj, fptr);</div><div class='ctx'>     if (fstat(fptr-&gt;fd, &amp;st) == -1) {</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'>     return stat_atime(&amp;st);</div><div class='ctx'> }</div><div class='hunk'>@@ -2195,9 +2369,9 @@ rb_file_s_mtime(VALUE klass, VALUE fname)</div><div class='ctx'>     struct stat st;</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	FilePathValue(fname);</div><div class='del'>-	rb_syserr_fail_path(e, fname);</div><div class='add'>+        int e = errno;</div><div class='add'>+        FilePathValue(fname);</div><div class='add'>+        rb_syserr_fail_path(e, fname);</div><div class='ctx'>     }</div><div class='ctx'>     return stat_mtime(&amp;st);</div><div class='ctx'> }</div><div class='hunk'>@@ -2220,7 +2394,7 @@ rb_file_mtime(VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(obj, fptr);</div><div class='ctx'>     if (fstat(fptr-&gt;fd, &amp;st) == -1) {</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'>     return stat_mtime(&amp;st);</div><div class='ctx'> }</div><div class='hunk'>@@ -2247,9 +2421,9 @@ rb_file_s_ctime(VALUE klass, VALUE fname)</div><div class='ctx'>     struct stat st;</div><div class='ctx'> </div><div class='ctx'>     if (rb_stat(fname, &amp;st) &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	FilePathValue(fname);</div><div class='del'>-	rb_syserr_fail_path(e, fname);</div><div class='add'>+        int e = errno;</div><div class='add'>+        FilePathValue(fname);</div><div class='add'>+        rb_syserr_fail_path(e, fname);</div><div class='ctx'>     }</div><div class='ctx'>     return stat_ctime(&amp;st);</div><div class='ctx'> }</div><div class='hunk'>@@ -2275,12 +2449,11 @@ rb_file_ctime(VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(obj, fptr);</div><div class='ctx'>     if (fstat(fptr-&gt;fd, &amp;st) == -1) {</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'>     return stat_ctime(&amp;st);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_STAT_BIRTHTIME)</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     File.birthtime(file_name)  -&gt; time</div><div class='hunk'>@@ -2295,17 +2468,18 @@ rb_file_ctime(VALUE obj)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='add'>+#if defined(HAVE_STAT_BIRTHTIME)</div><div class='add'>+RUBY_FUNC_EXPORTED VALUE</div><div class='ctx'> rb_file_s_birthtime(VALUE klass, VALUE fname)</div><div class='ctx'> {</div><div class='del'>-    struct stat st;</div><div class='add'>+    statx_data st;</div><div class='ctx'> </div><div class='del'>-    if (rb_stat(fname, &amp;st) &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	FilePathValue(fname);</div><div class='del'>-	rb_syserr_fail_path(e, fname);</div><div class='add'>+    if (rb_statx(fname, &amp;st, STATX_BTIME) &lt; 0) {</div><div class='add'>+        int e = errno;</div><div class='add'>+        FilePathValue(fname);</div><div class='add'>+        rb_syserr_fail_path(e, fname);</div><div class='ctx'>     }</div><div class='del'>-    return stat_birthtime(&amp;st);</div><div class='add'>+    return statx_birthtime(&amp;st, fname);</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='ctx'> # define rb_file_s_birthtime rb_f_notimplement</div><div class='hunk'>@@ -2328,13 +2502,13 @@ static VALUE</div><div class='ctx'> rb_file_birthtime(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='del'>-    struct stat st;</div><div class='add'>+    statx_data st;</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(obj, fptr);</div><div class='del'>-    if (fstat(fptr-&gt;fd, &amp;st) == -1) {</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+    if (fstatx_without_gvl(fptr-&gt;fd, &amp;st, STATX_BTIME) == -1) {</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='del'>-    return stat_birthtime(&amp;st);</div><div class='add'>+    return statx_birthtime(&amp;st, fptr-&gt;pathv);</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='ctx'> # define rb_file_birthtime rb_f_notimplement</div><div class='hunk'>@@ -2350,20 +2524,33 @@ rb_file_birthtime(VALUE obj)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-rb_file_size(VALUE obj)</div><div class='add'>+rb_off_t</div><div class='add'>+rb_file_size(VALUE file)</div><div class='ctx'> {</div><div class='del'>-    rb_io_t *fptr;</div><div class='del'>-    struct stat st;</div><div class='add'>+    if (RB_TYPE_P(file, T_FILE)) {</div><div class='add'>+        rb_io_t *fptr;</div><div class='add'>+        struct stat st;</div><div class='ctx'> </div><div class='del'>-    GetOpenFile(obj, fptr);</div><div class='del'>-    if (fptr-&gt;mode &amp; FMODE_WRITABLE) {</div><div class='del'>-	rb_io_flush_raw(obj, 0);</div><div class='add'>+        RB_IO_POINTER(file, fptr);</div><div class='add'>+        if (fptr-&gt;mode &amp; FMODE_WRITABLE) {</div><div class='add'>+            rb_io_flush_raw(file, 0);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (fstat(fptr-&gt;fd, &amp;st) == -1) {</div><div class='add'>+            rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        return st.st_size;</div><div class='ctx'>     }</div><div class='del'>-    if (fstat(fptr-&gt;fd, &amp;st) == -1) {</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+    else {</div><div class='add'>+        return NUM2OFFT(rb_funcall(file, idSize, 0));</div><div class='ctx'>     }</div><div class='del'>-    return OFFT2NUM(st.st_size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+file_size(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return OFFT2NUM(rb_file_size(self));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -2386,7 +2573,7 @@ chmod_internal(const char *path, void *mode)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_file_s_chmod(int argc, VALUE *argv)</div><div class='add'>+rb_file_s_chmod(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     mode_t mode;</div><div class='ctx'> </div><div class='hunk'>@@ -2403,7 +2590,7 @@ rb_file_s_chmod(int argc, VALUE *argv)</div><div class='ctx'>  *  Changes permission bits on &lt;i&gt;file&lt;/i&gt; to the bit pattern</div><div class='ctx'>  *  represented by &lt;i&gt;mode_int&lt;/i&gt;. Actual effects are platform</div><div class='ctx'>  *  dependent; on Unix systems, see &lt;code&gt;chmod(2)&lt;/code&gt; for details.</div><div class='del'>- *  Follows symbolic links. Also see &lt;code&gt;File#lchmod&lt;/code&gt;.</div><div class='add'>+ *  Follows symbolic links. Also see File#lchmod.</div><div class='ctx'>  *</div><div class='ctx'>  *     f = File.new("out", "w");</div><div class='ctx'>  *     f.chmod(0644)   #=&gt; 0</div><div class='hunk'>@@ -2423,18 +2610,18 @@ rb_file_chmod(VALUE obj, VALUE vmode)</div><div class='ctx'>     GetOpenFile(obj, fptr);</div><div class='ctx'> #ifdef HAVE_FCHMOD</div><div class='ctx'>     if (fchmod(fptr-&gt;fd, mode) == -1) {</div><div class='del'>-	if (HAVE_FCHMOD || errno != ENOSYS)</div><div class='del'>-	    rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        if (HAVE_FCHMOD || errno != ENOSYS)</div><div class='add'>+            rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (!HAVE_FCHMOD) return INT2FIX(0);</div><div class='add'>+        if (!HAVE_FCHMOD) return INT2FIX(0);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> #if !defined HAVE_FCHMOD || !HAVE_FCHMOD</div><div class='ctx'>     if (NIL_P(fptr-&gt;pathv)) return Qnil;</div><div class='ctx'>     path = rb_str_encode_ospath(fptr-&gt;pathv);</div><div class='ctx'>     if (chmod(RSTRING_PTR(path), mode) == -1)</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='hunk'>@@ -2451,14 +2638,14 @@ lchmod_internal(const char *path, void *mode)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     File.lchmod(mode_int, file_name, ...)  -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  Equivalent to &lt;code&gt;File::chmod&lt;/code&gt;, but does not follow symbolic</div><div class='del'>- *  links (so it will change the permissions associated with the link,</div><div class='del'>- *  not the file referenced by the link). Often not available.</div><div class='add'>+ *  Equivalent to File::chmod, but does not follow symbolic links (so</div><div class='add'>+ *  it will change the permissions associated with the link, not the</div><div class='add'>+ *  file referenced by the link). Often not available.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_file_s_lchmod(int argc, VALUE *argv)</div><div class='add'>+rb_file_s_lchmod(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     mode_t mode;</div><div class='ctx'> </div><div class='hunk'>@@ -2475,7 +2662,7 @@ static inline rb_uid_t</div><div class='ctx'> to_uid(VALUE u)</div><div class='ctx'> {</div><div class='ctx'>     if (NIL_P(u)) {</div><div class='del'>-	return (rb_uid_t)-1;</div><div class='add'>+        return (rb_uid_t)-1;</div><div class='ctx'>     }</div><div class='ctx'>     return NUM2UIDT(u);</div><div class='ctx'> }</div><div class='hunk'>@@ -2484,7 +2671,7 @@ static inline rb_gid_t</div><div class='ctx'> to_gid(VALUE g)</div><div class='ctx'> {</div><div class='ctx'>     if (NIL_P(g)) {</div><div class='del'>-	return (rb_gid_t)-1;</div><div class='add'>+        return (rb_gid_t)-1;</div><div class='ctx'>     }</div><div class='ctx'>     return NUM2GIDT(g);</div><div class='ctx'> }</div><div class='hunk'>@@ -2517,7 +2704,7 @@ chown_internal(const char *path, void *arg)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_file_s_chown(int argc, VALUE *argv)</div><div class='add'>+rb_file_s_chown(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     struct chown_args arg;</div><div class='ctx'> </div><div class='hunk'>@@ -2537,7 +2724,7 @@ rb_file_s_chown(int argc, VALUE *argv)</div><div class='ctx'>  *  change the owner of a file. The current owner of a file may change</div><div class='ctx'>  *  the file's group to any group to which the owner belongs. A</div><div class='ctx'>  *  &lt;code&gt;nil&lt;/code&gt; or -1 owner or group id is ignored. Follows</div><div class='del'>- *  symbolic links. See also &lt;code&gt;File#lchown&lt;/code&gt;.</div><div class='add'>+ *  symbolic links. See also File#lchown.</div><div class='ctx'>  *</div><div class='ctx'>  *     File.new("testfile").chown(502, 1000)</div><div class='ctx'>  *</div><div class='hunk'>@@ -2560,10 +2747,10 @@ rb_file_chown(VALUE obj, VALUE owner, VALUE group)</div><div class='ctx'>     if (NIL_P(fptr-&gt;pathv)) return Qnil;</div><div class='ctx'>     path = rb_str_encode_ospath(fptr-&gt;pathv);</div><div class='ctx'>     if (chown(RSTRING_PTR(path), o, g) == -1)</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'> #else</div><div class='ctx'>     if (fchown(fptr-&gt;fd, o, g) == -1)</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='hunk'>@@ -2581,7 +2768,7 @@ lchown_internal(const char *path, void *arg)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     File.lchown(owner_int, group_int, file_name,..) -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  Equivalent to &lt;code&gt;File::chown&lt;/code&gt;, but does not follow symbolic</div><div class='add'>+ *  Equivalent to File::chown, but does not follow symbolic</div><div class='ctx'>  *  links (so it will change the owner associated with the link, not the</div><div class='ctx'>  *  file referenced by the link). Often not available. Returns number</div><div class='ctx'>  *  of files in the argument list.</div><div class='hunk'>@@ -2589,7 +2776,7 @@ lchown_internal(const char *path, void *arg)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_file_s_lchown(int argc, VALUE *argv)</div><div class='add'>+rb_file_s_lchown(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     struct chown_args arg;</div><div class='ctx'> </div><div class='hunk'>@@ -2620,32 +2807,32 @@ utime_failed(struct apply_arg *aa)</div><div class='ctx'>     struct utime_args *ua = aa-&gt;arg;</div><div class='ctx'> </div><div class='ctx'>     if (ua-&gt;tsp &amp;&amp; e == EINVAL) {</div><div class='del'>-	VALUE e[2], a = Qnil, m = Qnil;</div><div class='del'>-	int d = 0;</div><div class='del'>-	VALUE atime = ua-&gt;atime;</div><div class='del'>-	VALUE mtime = ua-&gt;mtime;</div><div class='del'>-</div><div class='del'>-	if (!NIL_P(atime)) {</div><div class='del'>-	    a = rb_inspect(atime);</div><div class='del'>-	}</div><div class='del'>-	if (!NIL_P(mtime) &amp;&amp; mtime != atime &amp;&amp; !rb_equal(atime, mtime)) {</div><div class='del'>-	    m = rb_inspect(mtime);</div><div class='del'>-	}</div><div class='del'>-	if (NIL_P(a)) e[0] = m;</div><div class='del'>-	else if (NIL_P(m) || rb_str_cmp(a, m) == 0) e[0] = a;</div><div class='del'>-	else {</div><div class='del'>-	    e[0] = rb_str_plus(a, rb_str_new_cstr(" or "));</div><div class='del'>-	    rb_str_append(e[0], m);</div><div class='del'>-	    d = 1;</div><div class='del'>-	}</div><div class='del'>-	if (!NIL_P(e[0])) {</div><div class='del'>-	    if (path) {</div><div class='del'>-		if (!d) e[0] = rb_str_dup(e[0]);</div><div class='del'>-		rb_str_append(rb_str_cat2(e[0], " for "), path);</div><div class='del'>-	    }</div><div class='del'>-	    e[1] = INT2FIX(EINVAL);</div><div class='del'>-	    rb_exc_raise(rb_class_new_instance(2, e, rb_eSystemCallError));</div><div class='del'>-	}</div><div class='add'>+        VALUE e[2], a = Qnil, m = Qnil;</div><div class='add'>+        int d = 0;</div><div class='add'>+        VALUE atime = ua-&gt;atime;</div><div class='add'>+        VALUE mtime = ua-&gt;mtime;</div><div class='add'>+</div><div class='add'>+        if (!NIL_P(atime)) {</div><div class='add'>+            a = rb_inspect(atime);</div><div class='add'>+        }</div><div class='add'>+        if (!NIL_P(mtime) &amp;&amp; mtime != atime &amp;&amp; !rb_equal(atime, mtime)) {</div><div class='add'>+            m = rb_inspect(mtime);</div><div class='add'>+        }</div><div class='add'>+        if (NIL_P(a)) e[0] = m;</div><div class='add'>+        else if (NIL_P(m) || rb_str_cmp(a, m) == 0) e[0] = a;</div><div class='add'>+        else {</div><div class='add'>+            e[0] = rb_str_plus(a, rb_str_new_cstr(" or "));</div><div class='add'>+            rb_str_append(e[0], m);</div><div class='add'>+            d = 1;</div><div class='add'>+        }</div><div class='add'>+        if (!NIL_P(e[0])) {</div><div class='add'>+            if (path) {</div><div class='add'>+                if (!d) e[0] = rb_str_dup(e[0]);</div><div class='add'>+                rb_str_append(rb_str_cat2(e[0], " for "), path);</div><div class='add'>+            }</div><div class='add'>+            e[1] = INT2FIX(EINVAL);</div><div class='add'>+            rb_exc_raise(rb_class_new_instance(2, e, rb_eSystemCallError));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     rb_syserr_fail_path(e, path);</div><div class='ctx'> }</div><div class='hunk'>@@ -2653,6 +2840,29 @@ utime_failed(struct apply_arg *aa)</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_UTIMES)</div><div class='ctx'> </div><div class='add'>+# if !defined(HAVE_UTIMENSAT)</div><div class='add'>+/* utimensat() is not found, runtime check is not needed */</div><div class='add'>+# elif defined(__APPLE__) &amp;&amp; \</div><div class='add'>+    (!defined(MAC_OS_X_VERSION_13_0) || (MAC_OS_X_VERSION_MIN_REQUIRED &lt; MAC_OS_X_VERSION_13_0))</div><div class='add'>+</div><div class='add'>+#   if defined(__has_attribute) &amp;&amp; __has_attribute(availability)</div><div class='add'>+typedef int utimensat_func(int, const char *, const struct timespec [2], int);</div><div class='add'>+</div><div class='add'>+RBIMPL_WARNING_PUSH()</div><div class='add'>+RBIMPL_WARNING_IGNORED(-Wunguarded-availability-new)</div><div class='add'>+static inline utimensat_func *</div><div class='add'>+rb_utimensat(void)</div><div class='add'>+{</div><div class='add'>+    return &amp;utimensat;</div><div class='add'>+}</div><div class='add'>+RBIMPL_WARNING_POP()</div><div class='add'>+</div><div class='add'>+#   define utimensat rb_utimensat()</div><div class='add'>+#   else /* __API_AVAILABLE macro does nothing on gcc */</div><div class='add'>+__attribute__((weak)) int utimensat(int, const char *, const struct timespec [2], int);</div><div class='add'>+#   endif</div><div class='add'>+# endif</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> utime_internal(const char *path, void *arg)</div><div class='ctx'> {</div><div class='hunk'>@@ -2661,35 +2871,40 @@ utime_internal(const char *path, void *arg)</div><div class='ctx'>     struct timeval tvbuf[2], *tvp = NULL;</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_UTIMENSAT)</div><div class='add'>+# if defined(__APPLE__)</div><div class='add'>+    const int try_utimensat = utimensat != NULL;</div><div class='add'>+    const int try_utimensat_follow = utimensat != NULL;</div><div class='add'>+# else</div><div class='add'>+#   define TRY_UTIMENSAT 1</div><div class='ctx'>     static int try_utimensat = 1;</div><div class='ctx'> # ifdef AT_SYMLINK_NOFOLLOW</div><div class='ctx'>     static int try_utimensat_follow = 1;</div><div class='ctx'> # else</div><div class='ctx'>     const int try_utimensat_follow = 0;</div><div class='ctx'> # endif</div><div class='add'>+# endif</div><div class='ctx'>     int flags = 0;</div><div class='ctx'> </div><div class='ctx'>     if (v-&gt;follow ? try_utimensat_follow : try_utimensat) {</div><div class='ctx'> # ifdef AT_SYMLINK_NOFOLLOW</div><div class='del'>-	if (v-&gt;follow) {</div><div class='del'>-	    flags = AT_SYMLINK_NOFOLLOW;</div><div class='del'>-	}</div><div class='add'>+        if (v-&gt;follow) {</div><div class='add'>+            flags = AT_SYMLINK_NOFOLLOW;</div><div class='add'>+        }</div><div class='ctx'> # endif</div><div class='ctx'> </div><div class='del'>-	if (utimensat(AT_FDCWD, path, tsp, flags) &lt; 0) {</div><div class='del'>-            if (errno == ENOSYS) {</div><div class='add'>+        int result = utimensat(AT_FDCWD, path, tsp, flags);</div><div class='add'>+# ifdef TRY_UTIMENSAT</div><div class='add'>+        if (result &lt; 0 &amp;&amp; errno == ENOSYS) {</div><div class='ctx'> # ifdef AT_SYMLINK_NOFOLLOW</div><div class='del'>-		try_utimensat_follow = 0;</div><div class='add'>+            try_utimensat_follow = 0;</div><div class='ctx'> # endif</div><div class='del'>-		if (!v-&gt;follow)</div><div class='del'>-		    try_utimensat = 0;</div><div class='del'>-                goto no_utimensat;</div><div class='del'>-            }</div><div class='del'>-            return -1; /* calls utime_failed */</div><div class='add'>+            if (!v-&gt;follow)</div><div class='add'>+                try_utimensat = 0;</div><div class='ctx'>         }</div><div class='del'>-        return 0;</div><div class='add'>+        else</div><div class='add'>+# endif</div><div class='add'>+            return result;</div><div class='ctx'>     }</div><div class='del'>-no_utimensat:</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     if (tsp) {</div><div class='hunk'>@@ -2743,12 +2958,12 @@ utime_internal_i(int argc, VALUE *argv, int follow)</div><div class='ctx'>     args.follow = follow;</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(args.atime) || !NIL_P(args.mtime)) {</div><div class='del'>-	tsp = tss;</div><div class='del'>-	tsp[0] = rb_time_timespec(args.atime);</div><div class='del'>-	if (args.atime == args.mtime)</div><div class='del'>-	    tsp[1] = tsp[0];</div><div class='del'>-	else</div><div class='del'>-	    tsp[1] = rb_time_timespec(args.mtime);</div><div class='add'>+        tsp = tss;</div><div class='add'>+        tsp[0] = rb_time_timespec(args.atime);</div><div class='add'>+        if (args.atime == args.mtime)</div><div class='add'>+            tsp[1] = tsp[0];</div><div class='add'>+        else</div><div class='add'>+            tsp[1] = rb_time_timespec(args.mtime);</div><div class='ctx'>     }</div><div class='ctx'>     args.tsp = tsp;</div><div class='ctx'> </div><div class='hunk'>@@ -2767,7 +2982,7 @@ utime_internal_i(int argc, VALUE *argv, int follow)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_file_s_utime(int argc, VALUE *argv)</div><div class='add'>+rb_file_s_utime(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     return utime_internal_i(argc, argv, FALSE);</div><div class='ctx'> }</div><div class='hunk'>@@ -2786,7 +3001,7 @@ rb_file_s_utime(int argc, VALUE *argv)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_file_s_lutime(int argc, VALUE *argv)</div><div class='add'>+rb_file_s_lutime(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     return utime_internal_i(argc, argv, TRUE);</div><div class='ctx'> }</div><div class='hunk'>@@ -2812,7 +3027,7 @@ syserr_fail2_in(const char *func, int e, VALUE s1, VALUE s2)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     if (e == EEXIST) {</div><div class='del'>-	rb_syserr_fail_path(e, rb_str_ellipsize(s2, max_pathlen));</div><div class='add'>+        rb_syserr_fail_path(e, rb_str_ellipsize(s2, max_pathlen));</div><div class='ctx'>     }</div><div class='ctx'>     str = rb_str_new_cstr("(");</div><div class='ctx'>     rb_str_append(str, rb_str_ellipsize(s1, max_pathlen));</div><div class='hunk'>@@ -2833,7 +3048,7 @@ syserr_fail2_in(const char *func, int e, VALUE s1, VALUE s2)</div><div class='ctx'>  *</div><div class='ctx'>  *  Creates a new name for an existing file using a hard link. Will not</div><div class='ctx'>  *  overwrite &lt;i&gt;new_name&lt;/i&gt; if it already exists (raising a subclass</div><div class='del'>- *  of &lt;code&gt;SystemCallError&lt;/code&gt;). Not available on all platforms.</div><div class='add'>+ *  of SystemCallError). Not available on all platforms.</div><div class='ctx'>  *</div><div class='ctx'>  *     File.link("testfile", ".testfile")   #=&gt; 0</div><div class='ctx'>  *     IO.readlines(".testfile")[0]         #=&gt; "This is line one\n"</div><div class='hunk'>@@ -2848,7 +3063,7 @@ rb_file_s_link(VALUE klass, VALUE from, VALUE to)</div><div class='ctx'>     to = rb_str_encode_ospath(to);</div><div class='ctx'> </div><div class='ctx'>     if (link(StringValueCStr(from), StringValueCStr(to)) &lt; 0) {</div><div class='del'>-	sys_fail2(from, to);</div><div class='add'>+        sys_fail2(from, to);</div><div class='ctx'>     }</div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='hunk'>@@ -2862,7 +3077,7 @@ rb_file_s_link(VALUE klass, VALUE from, VALUE to)</div><div class='ctx'>  *     File.symlink(old_name, new_name)   -&gt; 0</div><div class='ctx'>  *</div><div class='ctx'>  *  Creates a symbolic link called &lt;i&gt;new_name&lt;/i&gt; for the existing file</div><div class='del'>- *  &lt;i&gt;old_name&lt;/i&gt;. Raises a &lt;code&gt;NotImplemented&lt;/code&gt; exception on</div><div class='add'>+ *  &lt;i&gt;old_name&lt;/i&gt;. Raises a NotImplemented exception on</div><div class='ctx'>  *  platforms that do not support symbolic links.</div><div class='ctx'>  *</div><div class='ctx'>  *     File.symlink("testfile", "link2test")   #=&gt; 0</div><div class='hunk'>@@ -2878,7 +3093,7 @@ rb_file_s_symlink(VALUE klass, VALUE from, VALUE to)</div><div class='ctx'>     to = rb_str_encode_ospath(to);</div><div class='ctx'> </div><div class='ctx'>     if (symlink(StringValueCStr(from), StringValueCStr(to)) &lt; 0) {</div><div class='del'>-	sys_fail2(from, to);</div><div class='add'>+        sys_fail2(from, to);</div><div class='ctx'>     }</div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='hunk'>@@ -2904,7 +3119,6 @@ rb_file_s_readlink(VALUE klass, VALUE path)</div><div class='ctx'>     return rb_readlink(path, rb_filesystem_encoding());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifndef _WIN32</div><div class='ctx'> struct readlink_arg {</div><div class='ctx'>     const char *path;</div><div class='ctx'>     char *buf;</div><div class='hunk'>@@ -2929,7 +3143,7 @@ readlink_without_gvl(VALUE path, VALUE buf, size_t size)</div><div class='ctx'>     ra.size = size;</div><div class='ctx'> </div><div class='ctx'>     return (ssize_t)rb_thread_call_without_gvl(nogvl_readlink, &amp;ra,</div><div class='del'>-						RUBY_UBF_IO, 0);</div><div class='add'>+                                                RUBY_UBF_IO, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -2944,23 +3158,22 @@ rb_readlink(VALUE path, rb_encoding *enc)</div><div class='ctx'>     v = rb_enc_str_new(0, size, enc);</div><div class='ctx'>     while ((rv = readlink_without_gvl(path, v, size)) == size</div><div class='ctx'> #ifdef _AIX</div><div class='del'>-	    || (rv &lt; 0 &amp;&amp; errno == ERANGE) /* quirky behavior of GPFS */</div><div class='add'>+            || (rv &lt; 0 &amp;&amp; errno == ERANGE) /* quirky behavior of GPFS */</div><div class='ctx'> #endif</div><div class='del'>-	) {</div><div class='del'>-	rb_str_modify_expand(v, size);</div><div class='del'>-	size *= 2;</div><div class='del'>-	rb_str_set_len(v, size);</div><div class='add'>+        ) {</div><div class='add'>+        rb_str_modify_expand(v, size);</div><div class='add'>+        size *= 2;</div><div class='add'>+        rb_str_set_len(v, size);</div><div class='ctx'>     }</div><div class='ctx'>     if (rv &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	rb_str_resize(v, 0);</div><div class='del'>-	rb_syserr_fail_path(e, path);</div><div class='add'>+        int e = errno;</div><div class='add'>+        rb_str_resize(v, 0);</div><div class='add'>+        rb_syserr_fail_path(e, path);</div><div class='ctx'>     }</div><div class='ctx'>     rb_str_resize(v, rv);</div><div class='ctx'> </div><div class='ctx'>     return v;</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> #else</div><div class='ctx'> #define rb_file_s_readlink rb_f_notimplement</div><div class='ctx'> #endif</div><div class='hunk'>@@ -2982,9 +3195,9 @@ unlink_internal(const char *path, void *arg)</div><div class='ctx'>  *  &lt;code&gt;unlink(2)&lt;/code&gt; system call, the type of</div><div class='ctx'>  *  exception raised depends on its error type (see</div><div class='ctx'>  *  https://linux.die.net/man/2/unlink) and has the form of</div><div class='del'>- *  e.g. &lt;code&gt;Errno::ENOENT&lt;/code&gt;.</div><div class='add'>+ *  e.g. Errno::ENOENT.</div><div class='ctx'>  *</div><div class='del'>- *  See also &lt;code&gt;Dir::rmdir&lt;/code&gt;.</div><div class='add'>+ *  See also Dir::rmdir.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3010,8 +3223,8 @@ no_gvl_rename(void *ptr)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     File.rename(old_name, new_name)   -&gt; 0</div><div class='ctx'>  *</div><div class='del'>- *  Renames the given file to the new name. Raises a</div><div class='del'>- *  &lt;code&gt;SystemCallError&lt;/code&gt; if the file cannot be renamed.</div><div class='add'>+ *  Renames the given file to the new name. Raises a SystemCallError</div><div class='add'>+ *  if the file cannot be renamed.</div><div class='ctx'>  *</div><div class='ctx'>  *     File.rename("afile", "afile.bak")   #=&gt; 0</div><div class='ctx'>  */</div><div class='hunk'>@@ -3032,18 +3245,18 @@ rb_file_s_rename(VALUE klass, VALUE from, VALUE to)</div><div class='ctx'>     errno = 0;</div><div class='ctx'> #endif</div><div class='ctx'>     if ((int)(VALUE)rb_thread_call_without_gvl(no_gvl_rename, &amp;ra,</div><div class='del'>-					 RUBY_UBF_IO, 0) &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='add'>+                                         RUBY_UBF_IO, 0) &lt; 0) {</div><div class='add'>+        int e = errno;</div><div class='ctx'> #if defined DOSISH</div><div class='del'>-	switch (e) {</div><div class='del'>-	  case EEXIST:</div><div class='del'>-	    if (chmod(ra.dst, 0666) == 0 &amp;&amp;</div><div class='del'>-		unlink(ra.dst) == 0 &amp;&amp;</div><div class='del'>-		rename(ra.src, ra.dst) == 0)</div><div class='del'>-		return INT2FIX(0);</div><div class='del'>-	}</div><div class='add'>+        switch (e) {</div><div class='add'>+          case EEXIST:</div><div class='add'>+            if (chmod(ra.dst, 0666) == 0 &amp;&amp;</div><div class='add'>+                unlink(ra.dst) == 0 &amp;&amp;</div><div class='add'>+                rename(ra.src, ra.dst) == 0)</div><div class='add'>+                return INT2FIX(0);</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='del'>-	syserr_fail2(e, from, to);</div><div class='add'>+        syserr_fail2(e, from, to);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='hunk'>@@ -3065,19 +3278,20 @@ rb_file_s_rename(VALUE klass, VALUE from, VALUE to)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_file_s_umask(int argc, VALUE *argv)</div><div class='add'>+rb_file_s_umask(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     mode_t omask = 0;</div><div class='ctx'> </div><div class='del'>-    if (argc == 0) {</div><div class='del'>-	omask = umask(0);</div><div class='del'>-	umask(omask);</div><div class='del'>-    }</div><div class='del'>-    else if (argc == 1) {</div><div class='del'>-	omask = umask(NUM2MODET(argv[0]));</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	rb_check_arity(argc, 0, 1);</div><div class='add'>+    switch (argc) {</div><div class='add'>+      case 0:</div><div class='add'>+        omask = umask(0);</div><div class='add'>+        umask(omask);</div><div class='add'>+        break;</div><div class='add'>+      case 1:</div><div class='add'>+        omask = umask(NUM2MODET(argv[0]));</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        rb_error_arity(argc, 0, 1);</div><div class='ctx'>     }</div><div class='ctx'>     return MODET2NUM(omask);</div><div class='ctx'> }</div><div class='hunk'>@@ -3139,10 +3353,10 @@ static inline int</div><div class='ctx'> has_drive_letter(const char *buf)</div><div class='ctx'> {</div><div class='ctx'>     if (ISALPHA(buf[0]) &amp;&amp; buf[1] == ':') {</div><div class='del'>-	return 1;</div><div class='add'>+        return 1;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3163,17 +3377,16 @@ getcwdofdrv(int drv)</div><div class='ctx'>     */</div><div class='ctx'>     oldcwd = ruby_getcwd();</div><div class='ctx'>     if (chdir(drive) == 0) {</div><div class='del'>-	drvcwd = ruby_getcwd();</div><div class='del'>-	chdir(oldcwd);</div><div class='del'>-	xfree(oldcwd);</div><div class='add'>+        drvcwd = ruby_getcwd();</div><div class='add'>+        chdir(oldcwd);</div><div class='add'>+        xfree(oldcwd);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	/* perhaps the drive is not exist. we return only drive letter */</div><div class='del'>-	drvcwd = strdup(drive);</div><div class='add'>+        /* perhaps the drive is not exist. we return only drive letter */</div><div class='add'>+        drvcwd = strdup(drive);</div><div class='ctx'>     }</div><div class='ctx'>     return drvcwd;</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> static inline int</div><div class='ctx'> not_same_drive(VALUE path, int drive)</div><div class='hunk'>@@ -3181,13 +3394,14 @@ not_same_drive(VALUE path, int drive)</div><div class='ctx'>     const char *p = RSTRING_PTR(path);</div><div class='ctx'>     if (RSTRING_LEN(path) &lt; 2) return 0;</div><div class='ctx'>     if (has_drive_letter(p)) {</div><div class='del'>-	return TOLOWER(p[0]) != TOLOWER(drive);</div><div class='add'>+        return TOLOWER(p[0]) != TOLOWER(drive);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return has_unc(p);</div><div class='add'>+        return has_unc(p);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> static inline char *</div><div class='ctx'> skiproot(const char *path, const char *end, rb_encoding *enc)</div><div class='hunk'>@@ -3204,7 +3418,7 @@ char *</div><div class='ctx'> rb_enc_path_next(const char *s, const char *e, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     while (s &lt; e &amp;&amp; !isdirsep(*s)) {</div><div class='del'>-	Inc(s, e, enc);</div><div class='add'>+        Inc(s, e, enc);</div><div class='ctx'>     }</div><div class='ctx'>     return (char *)s;</div><div class='ctx'> }</div><div class='hunk'>@@ -3220,16 +3434,16 @@ rb_enc_path_skip_prefix(const char *path, const char *end, rb_encoding *enc)</div><div class='ctx'> #if defined(DOSISH_UNC) || defined(DOSISH_DRIVE_LETTER)</div><div class='ctx'> #ifdef DOSISH_UNC</div><div class='ctx'>     if (path + 2 &lt;= end &amp;&amp; isdirsep(path[0]) &amp;&amp; isdirsep(path[1])) {</div><div class='del'>-	path += 2;</div><div class='del'>-	while (path &lt; end &amp;&amp; isdirsep(*path)) path++;</div><div class='del'>-	if ((path = rb_enc_path_next(path, end, enc)) &lt; end &amp;&amp; path[0] &amp;&amp; path[1] &amp;&amp; !isdirsep(path[1]))</div><div class='del'>-	    path = rb_enc_path_next(path + 1, end, enc);</div><div class='del'>-	return (char *)path;</div><div class='add'>+        path += 2;</div><div class='add'>+        while (path &lt; end &amp;&amp; isdirsep(*path)) path++;</div><div class='add'>+        if ((path = rb_enc_path_next(path, end, enc)) &lt; end &amp;&amp; path[0] &amp;&amp; path[1] &amp;&amp; !isdirsep(path[1]))</div><div class='add'>+            path = rb_enc_path_next(path + 1, end, enc);</div><div class='add'>+        return (char *)path;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef DOSISH_DRIVE_LETTER</div><div class='ctx'>     if (has_drive_letter(path))</div><div class='del'>-	return (char *)(path + 2);</div><div class='add'>+        return (char *)(path + 2);</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='ctx'>     return (char *)path;</div><div class='hunk'>@@ -3253,15 +3467,15 @@ rb_enc_path_last_separator(const char *path, const char *end, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     char *last = NULL;</div><div class='ctx'>     while (path &lt; end) {</div><div class='del'>-	if (isdirsep(*path)) {</div><div class='del'>-	    const char *tmp = path++;</div><div class='del'>-	    while (path &lt; end &amp;&amp; isdirsep(*path)) path++;</div><div class='del'>-	    if (path &gt;= end) break;</div><div class='del'>-	    last = (char *)tmp;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    Inc(path, end, enc);</div><div class='del'>-	}</div><div class='add'>+        if (isdirsep(*path)) {</div><div class='add'>+            const char *tmp = path++;</div><div class='add'>+            while (path &lt; end &amp;&amp; isdirsep(*path)) path++;</div><div class='add'>+            if (path &gt;= end) break;</div><div class='add'>+            last = (char *)tmp;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            Inc(path, end, enc);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return last;</div><div class='ctx'> }</div><div class='hunk'>@@ -3270,14 +3484,14 @@ static char *</div><div class='ctx'> chompdirsep(const char *path, const char *end, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     while (path &lt; end) {</div><div class='del'>-	if (isdirsep(*path)) {</div><div class='del'>-	    const char *last = path++;</div><div class='del'>-	    while (path &lt; end &amp;&amp; isdirsep(*path)) path++;</div><div class='del'>-	    if (path &gt;= end) return (char *)last;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    Inc(path, end, enc);</div><div class='del'>-	}</div><div class='add'>+        if (isdirsep(*path)) {</div><div class='add'>+            const char *last = path++;</div><div class='add'>+            while (path &lt; end &amp;&amp; isdirsep(*path)) path++;</div><div class='add'>+            if (path &gt;= end) return (char *)last;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            Inc(path, end, enc);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return (char *)path;</div><div class='ctx'> }</div><div class='hunk'>@@ -3289,26 +3503,40 @@ rb_enc_path_end(const char *path, const char *end, rb_encoding *enc)</div><div class='ctx'>     return chompdirsep(path, end, enc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static rb_encoding *</div><div class='add'>+fs_enc_check(VALUE path1, VALUE path2)</div><div class='add'>+{</div><div class='add'>+    rb_encoding *enc = rb_enc_check(path1, path2);</div><div class='add'>+    int encidx = rb_enc_to_index(enc);</div><div class='add'>+    if (encidx == ENCINDEX_US_ASCII) {</div><div class='add'>+        encidx = rb_enc_get_index(path1);</div><div class='add'>+        if (encidx == ENCINDEX_US_ASCII)</div><div class='add'>+            encidx = rb_enc_get_index(path2);</div><div class='add'>+        enc = rb_enc_from_index(encidx);</div><div class='add'>+    }</div><div class='add'>+    return enc;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #if USE_NTFS</div><div class='ctx'> static char *</div><div class='ctx'> ntfs_tail(const char *path, const char *end, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     while (path &lt; end &amp;&amp; *path == '.') path++;</div><div class='ctx'>     while (path &lt; end &amp;&amp; !isADS(*path)) {</div><div class='del'>-	if (istrailinggarbage(*path)) {</div><div class='del'>-	    const char *last = path++;</div><div class='del'>-	    while (path &lt; end &amp;&amp; istrailinggarbage(*path)) path++;</div><div class='del'>-	    if (path &gt;= end || isADS(*path)) return (char *)last;</div><div class='del'>-	}</div><div class='del'>-	else if (isdirsep(*path)) {</div><div class='del'>-	    const char *last = path++;</div><div class='del'>-	    while (path &lt; end &amp;&amp; isdirsep(*path)) path++;</div><div class='del'>-	    if (path &gt;= end) return (char *)last;</div><div class='del'>-	    if (isADS(*path)) path++;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    Inc(path, end, enc);</div><div class='del'>-	}</div><div class='add'>+        if (istrailinggarbage(*path)) {</div><div class='add'>+            const char *last = path++;</div><div class='add'>+            while (path &lt; end &amp;&amp; istrailinggarbage(*path)) path++;</div><div class='add'>+            if (path &gt;= end || isADS(*path)) return (char *)last;</div><div class='add'>+        }</div><div class='add'>+        else if (isdirsep(*path)) {</div><div class='add'>+            const char *last = path++;</div><div class='add'>+            while (path &lt; end &amp;&amp; isdirsep(*path)) path++;</div><div class='add'>+            if (path &gt;= end) return (char *)last;</div><div class='add'>+            if (isADS(*path)) path++;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            Inc(path, end, enc);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return (char *)path;</div><div class='ctx'> }</div><div class='hunk'>@@ -3317,11 +3545,11 @@ ntfs_tail(const char *path, const char *end, rb_encoding *enc)</div><div class='ctx'> #define BUFCHECK(cond) do {\</div><div class='ctx'>     bdiff = p - buf;\</div><div class='ctx'>     if (cond) {\</div><div class='del'>-	do {buflen *= 2;} while (cond);\</div><div class='del'>-	rb_str_resize(result, buflen);\</div><div class='del'>-	buf = RSTRING_PTR(result);\</div><div class='del'>-	p = buf + bdiff;\</div><div class='del'>-	pend = buf + buflen;\</div><div class='add'>+        do {buflen *= 2;} while (cond);\</div><div class='add'>+        rb_str_resize(result, buflen);\</div><div class='add'>+        buf = RSTRING_PTR(result);\</div><div class='add'>+        p = buf + bdiff;\</div><div class='add'>+        pend = buf + buflen;\</div><div class='ctx'>     }\</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='hunk'>@@ -3370,9 +3598,9 @@ copy_home_path(VALUE result, const char *dir)</div><div class='ctx'> #if defined DOSISH || defined __CYGWIN__</div><div class='ctx'>     enc = rb_enc_from_index(encidx);</div><div class='ctx'>     for (bend = (p = buf) + dirlen; p &lt; bend; Inc(p, bend, enc)) {</div><div class='del'>-	if (*p == '\\') {</div><div class='del'>-	    *p = '/';</div><div class='del'>-	}</div><div class='add'>+        if (*p == '\\') {</div><div class='add'>+            *p = '/';</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return result;</div><div class='hunk'>@@ -3403,11 +3631,11 @@ rb_home_dir_of(VALUE user, VALUE result)</div><div class='ctx'>     pwPtr = getpwnam(username);</div><div class='ctx'> #else</div><div class='ctx'>     if (strcasecmp(username, getlogin()) == 0)</div><div class='del'>-	dir = pwPtr = getenv("HOME");</div><div class='add'>+        dir = pwPtr = getenv("HOME");</div><div class='ctx'> #endif</div><div class='ctx'>     if (!pwPtr) {</div><div class='del'>-	endpwent();</div><div class='del'>-	rb_raise(rb_eArgError, "user %"PRIsVALUE" doesn't exist", user);</div><div class='add'>+        endpwent();</div><div class='add'>+        rb_raise(rb_eArgError, "user %"PRIsVALUE" doesn't exist", user);</div><div class='ctx'>     }</div><div class='ctx'> #ifdef HAVE_PWD_H</div><div class='ctx'>     dir = pwPtr-&gt;pw_dir;</div><div class='hunk'>@@ -3425,25 +3653,46 @@ rb_default_home_dir(VALUE result)</div><div class='ctx'> </div><div class='ctx'> #if defined HAVE_PWD_H</div><div class='ctx'>     if (!dir) {</div><div class='del'>-	const char *login = getlogin();</div><div class='del'>-	if (login) {</div><div class='del'>-	    struct passwd *pw = getpwnam(login);</div><div class='del'>-	    if (pw) {</div><div class='del'>-		copy_home_path(result, pw-&gt;pw_dir);</div><div class='del'>-		endpwent();</div><div class='del'>-		return result;</div><div class='del'>-	    }</div><div class='del'>-	    endpwent();</div><div class='del'>-	    rb_raise(rb_eArgError, "couldn't find HOME for login `%s' -- expanding `~'",</div><div class='del'>-		     login);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_raise(rb_eArgError, "couldn't find login name -- expanding `~'");</div><div class='del'>-	}</div><div class='add'>+        /* We'll look up the user's default home dir in the password db by</div><div class='add'>+         * login name, if possible, and failing that will fall back to looking</div><div class='add'>+         * the information up by uid (as would be needed for processes that</div><div class='add'>+         * are not a descendant of login(1) or a work-alike).</div><div class='add'>+         *</div><div class='add'>+         * While the lookup by uid is more likely to succeed (since we always</div><div class='add'>+         * have a uid, but may or may not have a login name), we prefer first</div><div class='add'>+         * looking up by name to accommodate the possibility of multiple login</div><div class='add'>+         * names (each with its own record in the password database, so each</div><div class='add'>+         * with a potentially different home directory) being mapped to the</div><div class='add'>+         * same uid (as explicitly allowed for by POSIX; see getlogin(3posix)).</div><div class='add'>+         */</div><div class='add'>+        VALUE login_name = rb_getlogin();</div><div class='add'>+</div><div class='add'>+# if !defined(HAVE_GETPWUID_R) &amp;&amp; !defined(HAVE_GETPWUID)</div><div class='add'>+        /* This is a corner case, but for backward compatibility reasons we</div><div class='add'>+         * want to emit this error if neither the lookup by login name nor</div><div class='add'>+         * lookup by getuid() has a chance of succeeding.</div><div class='add'>+         */</div><div class='add'>+        if (NIL_P(login_name)) {</div><div class='add'>+            rb_raise(rb_eArgError, "couldn't find login name -- expanding `~'");</div><div class='add'>+        }</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+        VALUE pw_dir = rb_getpwdirnam_for_login(login_name);</div><div class='add'>+        if (NIL_P(pw_dir)) {</div><div class='add'>+            pw_dir = rb_getpwdiruid();</div><div class='add'>+            if (NIL_P(pw_dir)) {</div><div class='add'>+                rb_raise(rb_eArgError, "couldn't find home for uid `%ld'", (long)getuid());</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* found it */</div><div class='add'>+        copy_home_path(result, RSTRING_PTR(pw_dir));</div><div class='add'>+        rb_str_resize(pw_dir, 0);</div><div class='add'>+        return result;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     if (!dir) {</div><div class='del'>-	rb_raise(rb_eArgError, "couldn't find HOME environment -- expanding `~'");</div><div class='add'>+        rb_raise(rb_eArgError, "couldn't find HOME environment -- expanding `~'");</div><div class='ctx'>     }</div><div class='ctx'>     return copy_home_path(result, dir);</div><div class='ctx'> }</div><div class='hunk'>@@ -3468,15 +3717,15 @@ append_fspath(VALUE result, VALUE fname, char *dir, rb_encoding **enc, rb_encodi</div><div class='ctx'>     size_t dirlen = strlen(dir), buflen = rb_str_capacity(result);</div><div class='ctx'> </div><div class='ctx'>     if (NORMALIZE_UTF8PATH || *enc != fsenc) {</div><div class='del'>-	rb_encoding *direnc = rb_enc_check(fname, dirname = ospath_new(dir, dirlen, fsenc));</div><div class='del'>-	if (direnc != fsenc) {</div><div class='del'>-	    dirname = rb_str_conv_enc(dirname, fsenc, direnc);</div><div class='del'>-	    RSTRING_GETMEM(dirname, cwdp, dirlen);</div><div class='del'>-	}</div><div class='del'>-	else if (NORMALIZE_UTF8PATH) {</div><div class='del'>-	    RSTRING_GETMEM(dirname, cwdp, dirlen);</div><div class='del'>-	}</div><div class='del'>-	*enc = direnc;</div><div class='add'>+        rb_encoding *direnc = fs_enc_check(fname, dirname = ospath_new(dir, dirlen, fsenc));</div><div class='add'>+        if (direnc != fsenc) {</div><div class='add'>+            dirname = rb_str_conv_enc(dirname, fsenc, direnc);</div><div class='add'>+            RSTRING_GETMEM(dirname, cwdp, dirlen);</div><div class='add'>+        }</div><div class='add'>+        else if (NORMALIZE_UTF8PATH) {</div><div class='add'>+            RSTRING_GETMEM(dirname, cwdp, dirlen);</div><div class='add'>+        }</div><div class='add'>+        *enc = direnc;</div><div class='ctx'>     }</div><div class='ctx'>     do {buflen *= 2;} while (dirlen &gt; buflen);</div><div class='ctx'>     rb_str_resize(result, buflen);</div><div class='hunk'>@@ -3494,128 +3743,123 @@ rb_file_expand_path_internal(VALUE fname, VALUE dname, int abs_mode, int long_na</div><div class='ctx'>     const char *s, *b, *fend;</div><div class='ctx'>     char *buf, *p, *pend, *root;</div><div class='ctx'>     size_t buflen, bdiff;</div><div class='del'>-    int tainted;</div><div class='ctx'>     rb_encoding *enc, *fsenc = rb_filesystem_encoding();</div><div class='ctx'> </div><div class='ctx'>     s = StringValuePtr(fname);</div><div class='ctx'>     fend = s + RSTRING_LEN(fname);</div><div class='ctx'>     enc = rb_enc_get(fname);</div><div class='ctx'>     BUFINIT();</div><div class='del'>-    tainted = OBJ_TAINTED(fname);</div><div class='ctx'> </div><div class='ctx'>     if (s[0] == '~' &amp;&amp; abs_mode == 0) {      /* execute only if NOT absolute_path() */</div><div class='del'>-	long userlen = 0;</div><div class='del'>-	tainted = 1;</div><div class='del'>-	if (isdirsep(s[1]) || s[1] == '\0') {</div><div class='del'>-	    buf = 0;</div><div class='del'>-	    b = 0;</div><div class='del'>-	    rb_str_set_len(result, 0);</div><div class='del'>-	    if (*++s) ++s;</div><div class='del'>-	    rb_default_home_dir(result);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    s = nextdirsep(b = s, fend, enc);</div><div class='del'>-	    b++; /* b[0] is '~' */</div><div class='del'>-	    userlen = s - b;</div><div class='del'>-	    BUFCHECK(bdiff + userlen &gt;= buflen);</div><div class='del'>-	    memcpy(p, b, userlen);</div><div class='del'>-	    ENC_CODERANGE_CLEAR(result);</div><div class='del'>-	    rb_str_set_len(result, userlen);</div><div class='del'>-	    rb_enc_associate(result, enc);</div><div class='del'>-	    rb_home_dir_of(result, result);</div><div class='del'>-	    buf = p + 1;</div><div class='del'>-	    p += userlen;</div><div class='del'>-	}</div><div class='del'>-	if (!rb_is_absolute_path(RSTRING_PTR(result))) {</div><div class='del'>-	    if (userlen) {</div><div class='del'>-		rb_enc_raise(enc, rb_eArgError, "non-absolute home of %.*s%.0"PRIsVALUE,</div><div class='del'>-			     (int)userlen, b, fname);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rb_raise(rb_eArgError, "non-absolute home");</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	BUFINIT();</div><div class='del'>-	p = pend;</div><div class='add'>+        long userlen = 0;</div><div class='add'>+        if (isdirsep(s[1]) || s[1] == '\0') {</div><div class='add'>+            buf = 0;</div><div class='add'>+            b = 0;</div><div class='add'>+            rb_str_set_len(result, 0);</div><div class='add'>+            if (*++s) ++s;</div><div class='add'>+            rb_default_home_dir(result);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            s = nextdirsep(b = s, fend, enc);</div><div class='add'>+            b++; /* b[0] is '~' */</div><div class='add'>+            userlen = s - b;</div><div class='add'>+            BUFCHECK(bdiff + userlen &gt;= buflen);</div><div class='add'>+            memcpy(p, b, userlen);</div><div class='add'>+            ENC_CODERANGE_CLEAR(result);</div><div class='add'>+            rb_str_set_len(result, userlen);</div><div class='add'>+            rb_enc_associate(result, enc);</div><div class='add'>+            rb_home_dir_of(result, result);</div><div class='add'>+            buf = p + 1;</div><div class='add'>+            p += userlen;</div><div class='add'>+        }</div><div class='add'>+        if (!rb_is_absolute_path(RSTRING_PTR(result))) {</div><div class='add'>+            if (userlen) {</div><div class='add'>+                rb_enc_raise(enc, rb_eArgError, "non-absolute home of %.*s%.0"PRIsVALUE,</div><div class='add'>+                             (int)userlen, b, fname);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rb_raise(rb_eArgError, "non-absolute home");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        BUFINIT();</div><div class='add'>+        p = pend;</div><div class='ctx'>     }</div><div class='ctx'> #ifdef DOSISH_DRIVE_LETTER</div><div class='ctx'>     /* skip drive letter */</div><div class='ctx'>     else if (has_drive_letter(s)) {</div><div class='del'>-	if (isdirsep(s[2])) {</div><div class='del'>-	    /* specified drive letter, and full path */</div><div class='del'>-	    /* skip drive letter */</div><div class='del'>-	    BUFCHECK(bdiff + 2 &gt;= buflen);</div><div class='del'>-	    memcpy(p, s, 2);</div><div class='del'>-	    p += 2;</div><div class='del'>-	    s += 2;</div><div class='del'>-	    rb_enc_copy(result, fname);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    /* specified drive, but not full path */</div><div class='del'>-	    int same = 0;</div><div class='del'>-	    if (!NIL_P(dname) &amp;&amp; !not_same_drive(dname, s[0])) {</div><div class='del'>-		rb_file_expand_path_internal(dname, Qnil, abs_mode, long_name, result);</div><div class='del'>-		BUFINIT();</div><div class='del'>-		if (has_drive_letter(p) &amp;&amp; TOLOWER(p[0]) == TOLOWER(s[0])) {</div><div class='del'>-		    /* ok, same drive */</div><div class='del'>-		    same = 1;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    if (!same) {</div><div class='del'>-		char *e = append_fspath(result, fname, getcwdofdrv(*s), &amp;enc, fsenc);</div><div class='del'>-		tainted = 1;</div><div class='del'>-		BUFINIT();</div><div class='del'>-		p = e;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rb_enc_associate(result, enc = rb_enc_check(result, fname));</div><div class='del'>-		p = pend;</div><div class='del'>-	    }</div><div class='del'>-	    p = chompdirsep(skiproot(buf, p, enc), p, enc);</div><div class='del'>-	    s += 2;</div><div class='del'>-	}</div><div class='add'>+        if (isdirsep(s[2])) {</div><div class='add'>+            /* specified drive letter, and full path */</div><div class='add'>+            /* skip drive letter */</div><div class='add'>+            BUFCHECK(bdiff + 2 &gt;= buflen);</div><div class='add'>+            memcpy(p, s, 2);</div><div class='add'>+            p += 2;</div><div class='add'>+            s += 2;</div><div class='add'>+            rb_enc_copy(result, fname);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* specified drive, but not full path */</div><div class='add'>+            int same = 0;</div><div class='add'>+            if (!NIL_P(dname) &amp;&amp; !not_same_drive(dname, s[0])) {</div><div class='add'>+                rb_file_expand_path_internal(dname, Qnil, abs_mode, long_name, result);</div><div class='add'>+                BUFINIT();</div><div class='add'>+                if (has_drive_letter(p) &amp;&amp; TOLOWER(p[0]) == TOLOWER(s[0])) {</div><div class='add'>+                    /* ok, same drive */</div><div class='add'>+                    same = 1;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            if (!same) {</div><div class='add'>+                char *e = append_fspath(result, fname, getcwdofdrv(*s), &amp;enc, fsenc);</div><div class='add'>+                BUFINIT();</div><div class='add'>+                p = e;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rb_enc_associate(result, enc = fs_enc_check(result, fname));</div><div class='add'>+                p = pend;</div><div class='add'>+            }</div><div class='add'>+            p = chompdirsep(skiproot(buf, p, enc), p, enc);</div><div class='add'>+            s += 2;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     else if (!rb_is_absolute_path(s)) {</div><div class='del'>-	if (!NIL_P(dname)) {</div><div class='del'>-	    rb_file_expand_path_internal(dname, Qnil, abs_mode, long_name, result);</div><div class='del'>-	    rb_enc_associate(result, rb_enc_check(result, fname));</div><div class='del'>-	    BUFINIT();</div><div class='del'>-	    p = pend;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    char *e = append_fspath(result, fname, ruby_getcwd(), &amp;enc, fsenc);</div><div class='del'>-	    tainted = 1;</div><div class='del'>-	    BUFINIT();</div><div class='del'>-	    p = e;</div><div class='del'>-	}</div><div class='add'>+        if (!NIL_P(dname)) {</div><div class='add'>+            rb_file_expand_path_internal(dname, Qnil, abs_mode, long_name, result);</div><div class='add'>+            rb_enc_associate(result, fs_enc_check(result, fname));</div><div class='add'>+            BUFINIT();</div><div class='add'>+            p = pend;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            char *e = append_fspath(result, fname, ruby_getcwd(), &amp;enc, fsenc);</div><div class='add'>+            BUFINIT();</div><div class='add'>+            p = e;</div><div class='add'>+        }</div><div class='ctx'> #if defined DOSISH || defined __CYGWIN__</div><div class='del'>-	if (isdirsep(*s)) {</div><div class='del'>-	    /* specified full path, but not drive letter nor UNC */</div><div class='del'>-	    /* we need to get the drive letter or UNC share name */</div><div class='del'>-	    p = skipprefix(buf, p, enc);</div><div class='del'>-	}</div><div class='del'>-	else</div><div class='add'>+        if (isdirsep(*s)) {</div><div class='add'>+            /* specified full path, but not drive letter nor UNC */</div><div class='add'>+            /* we need to get the drive letter or UNC share name */</div><div class='add'>+            p = skipprefix(buf, p, enc);</div><div class='add'>+        }</div><div class='add'>+        else</div><div class='ctx'> #endif</div><div class='del'>-	    p = chompdirsep(skiproot(buf, p, enc), p, enc);</div><div class='add'>+            p = chompdirsep(skiproot(buf, p, enc), p, enc);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	size_t len;</div><div class='del'>-	b = s;</div><div class='del'>-	do s++; while (isdirsep(*s));</div><div class='del'>-	len = s - b;</div><div class='del'>-	p = buf + len;</div><div class='del'>-	BUFCHECK(bdiff &gt;= buflen);</div><div class='del'>-	memset(buf, '/', len);</div><div class='del'>-	rb_str_set_len(result, len);</div><div class='del'>-	rb_enc_associate(result, rb_enc_check(result, fname));</div><div class='add'>+        size_t len;</div><div class='add'>+        b = s;</div><div class='add'>+        do s++; while (isdirsep(*s));</div><div class='add'>+        len = s - b;</div><div class='add'>+        p = buf + len;</div><div class='add'>+        BUFCHECK(bdiff &gt;= buflen);</div><div class='add'>+        memset(buf, '/', len);</div><div class='add'>+        rb_str_set_len(result, len);</div><div class='add'>+        rb_enc_associate(result, fs_enc_check(result, fname));</div><div class='ctx'>     }</div><div class='ctx'>     if (p &gt; buf &amp;&amp; p[-1] == '/')</div><div class='del'>-	--p;</div><div class='add'>+        --p;</div><div class='ctx'>     else {</div><div class='del'>-	rb_str_set_len(result, p-buf);</div><div class='del'>-	BUFCHECK(bdiff + 1 &gt;= buflen);</div><div class='del'>-	*p = '/';</div><div class='add'>+        rb_str_set_len(result, p-buf);</div><div class='add'>+        BUFCHECK(bdiff + 1 &gt;= buflen);</div><div class='add'>+        *p = '/';</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_str_set_len(result, p-buf+1);</div><div class='hunk'>@@ -3625,218 +3869,217 @@ rb_file_expand_path_internal(VALUE fname, VALUE dname, int abs_mode, int long_na</div><div class='ctx'> </div><div class='ctx'>     b = s;</div><div class='ctx'>     while (*s) {</div><div class='del'>-	switch (*s) {</div><div class='del'>-	  case '.':</div><div class='del'>-	    if (b == s++) {	/* beginning of path element */</div><div class='del'>-		switch (*s) {</div><div class='del'>-		  case '\0':</div><div class='del'>-		    b = s;</div><div class='del'>-		    break;</div><div class='del'>-		  case '.':</div><div class='del'>-		    if (*(s+1) == '\0' || isdirsep(*(s+1))) {</div><div class='del'>-			/* We must go back to the parent */</div><div class='del'>-			char *n;</div><div class='del'>-			*p = '\0';</div><div class='del'>-			if (!(n = strrdirsep(root, p, enc))) {</div><div class='del'>-			    *p = '/';</div><div class='del'>-			}</div><div class='del'>-			else {</div><div class='del'>-			    p = n;</div><div class='del'>-			}</div><div class='del'>-			b = ++s;</div><div class='del'>-		    }</div><div class='add'>+        switch (*s) {</div><div class='add'>+          case '.':</div><div class='add'>+            if (b == s++) {	/* beginning of path element */</div><div class='add'>+                switch (*s) {</div><div class='add'>+                  case '\0':</div><div class='add'>+                    b = s;</div><div class='add'>+                    break;</div><div class='add'>+                  case '.':</div><div class='add'>+                    if (*(s+1) == '\0' || isdirsep(*(s+1))) {</div><div class='add'>+                        /* We must go back to the parent */</div><div class='add'>+                        char *n;</div><div class='add'>+                        *p = '\0';</div><div class='add'>+                        if (!(n = strrdirsep(root, p, enc))) {</div><div class='add'>+                            *p = '/';</div><div class='add'>+                        }</div><div class='add'>+                        else {</div><div class='add'>+                            p = n;</div><div class='add'>+                        }</div><div class='add'>+                        b = ++s;</div><div class='add'>+                    }</div><div class='ctx'> #if USE_NTFS</div><div class='del'>-		    else {</div><div class='del'>-			do ++s; while (istrailinggarbage(*s));</div><div class='del'>-		    }</div><div class='add'>+                    else {</div><div class='add'>+                        do ++s; while (istrailinggarbage(*s));</div><div class='add'>+                    }</div><div class='ctx'> #endif</div><div class='del'>-		    break;</div><div class='del'>-		  case '/':</div><div class='add'>+                    break;</div><div class='add'>+                  case '/':</div><div class='ctx'> #if defined DOSISH || defined __CYGWIN__</div><div class='del'>-		  case '\\':</div><div class='del'>-#endif</div><div class='del'>-		    b = ++s;</div><div class='del'>-		    break;</div><div class='del'>-		  default:</div><div class='del'>-		    /* ordinary path element, beginning don't move */</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='add'>+                  case '\\':</div><div class='add'>+#endif</div><div class='add'>+                    b = ++s;</div><div class='add'>+                    break;</div><div class='add'>+                  default:</div><div class='add'>+                    /* ordinary path element, beginning don't move */</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='ctx'> #if USE_NTFS</div><div class='del'>-	    else {</div><div class='del'>-		--s;</div><div class='del'>-	      case ' ': {</div><div class='del'>-		const char *e = s;</div><div class='del'>-		while (s &lt; fend &amp;&amp; istrailinggarbage(*s)) s++;</div><div class='del'>-		if (s &gt;= fend) {</div><div class='del'>-		    s = e;</div><div class='del'>-		    goto endpath;</div><div class='del'>-		}</div><div class='del'>-	      }</div><div class='del'>-	    }</div><div class='del'>-#endif</div><div class='del'>-	    break;</div><div class='del'>-	  case '/':</div><div class='add'>+            else {</div><div class='add'>+                --s;</div><div class='add'>+              case ' ': {</div><div class='add'>+                const char *e = s;</div><div class='add'>+                while (s &lt; fend &amp;&amp; istrailinggarbage(*s)) s++;</div><div class='add'>+                if (s &gt;= fend) {</div><div class='add'>+                    s = e;</div><div class='add'>+                    goto endpath;</div><div class='add'>+                }</div><div class='add'>+              }</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+            break;</div><div class='add'>+          case '/':</div><div class='ctx'> #if defined DOSISH || defined __CYGWIN__</div><div class='del'>-	  case '\\':</div><div class='del'>-#endif</div><div class='del'>-	    if (s &gt; b) {</div><div class='del'>-		WITH_ROOTDIFF(BUFCOPY(b, s-b));</div><div class='del'>-		*p = '/';</div><div class='del'>-	    }</div><div class='del'>-	    b = ++s;</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='add'>+          case '\\':</div><div class='add'>+#endif</div><div class='add'>+            if (s &gt; b) {</div><div class='add'>+                WITH_ROOTDIFF(BUFCOPY(b, s-b));</div><div class='add'>+                *p = '/';</div><div class='add'>+            }</div><div class='add'>+            b = ++s;</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='ctx'> #ifdef __APPLE__</div><div class='del'>-	    {</div><div class='del'>-		int n = ignored_char_p(s, fend, enc);</div><div class='del'>-		if (n) {</div><div class='del'>-		    if (s &gt; b) {</div><div class='del'>-			WITH_ROOTDIFF(BUFCOPY(b, s-b));</div><div class='del'>-			*p = '\0';</div><div class='del'>-		    }</div><div class='del'>-		    b = s += n;</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-#endif</div><div class='del'>-	    Inc(s, fend, enc);</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+            {</div><div class='add'>+                int n = ignored_char_p(s, fend, enc);</div><div class='add'>+                if (n) {</div><div class='add'>+                    if (s &gt; b) {</div><div class='add'>+                        WITH_ROOTDIFF(BUFCOPY(b, s-b));</div><div class='add'>+                        *p = '\0';</div><div class='add'>+                    }</div><div class='add'>+                    b = s += n;</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+            Inc(s, fend, enc);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (s &gt; b) {</div><div class='ctx'> #if USE_NTFS</div><div class='ctx'> # if USE_NTFS_ADS</div><div class='del'>-	static const char prime[] = ":$DATA";</div><div class='del'>-	enum {prime_len = sizeof(prime) -1};</div><div class='add'>+        static const char prime[] = ":$DATA";</div><div class='add'>+        enum {prime_len = sizeof(prime) -1};</div><div class='ctx'> # endif</div><div class='ctx'>       endpath:</div><div class='ctx'> # if USE_NTFS_ADS</div><div class='del'>-	if (s &gt; b + prime_len &amp;&amp; strncasecmp(s - prime_len, prime, prime_len) == 0) {</div><div class='del'>-	    /* alias of stream */</div><div class='del'>-	    /* get rid of a bug of x64 VC++ */</div><div class='del'>-	    if (isADS(*(s - (prime_len+1)))) {</div><div class='del'>-		s -= prime_len + 1; /* prime */</div><div class='del'>-	    }</div><div class='del'>-	    else if (memchr(b, ':', s - prime_len - b)) {</div><div class='del'>-		s -= prime_len;	/* alternative */</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        if (s &gt; b + prime_len &amp;&amp; strncasecmp(s - prime_len, prime, prime_len) == 0) {</div><div class='add'>+            /* alias of stream */</div><div class='add'>+            /* get rid of a bug of x64 VC++ */</div><div class='add'>+            if (isADS(*(s - (prime_len+1)))) {</div><div class='add'>+                s -= prime_len + 1; /* prime */</div><div class='add'>+            }</div><div class='add'>+            else if (memchr(b, ':', s - prime_len - b)) {</div><div class='add'>+                s -= prime_len;	/* alternative */</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> # endif</div><div class='ctx'> #endif</div><div class='del'>-	BUFCOPY(b, s-b);</div><div class='del'>-	rb_str_set_len(result, p-buf);</div><div class='add'>+        BUFCOPY(b, s-b);</div><div class='add'>+        rb_str_set_len(result, p-buf);</div><div class='ctx'>     }</div><div class='ctx'>     if (p == skiproot(buf, p + !!*p, enc) - 1) p++;</div><div class='ctx'> </div><div class='ctx'> #if USE_NTFS</div><div class='ctx'>     *p = '\0';</div><div class='ctx'>     if ((s = strrdirsep(b = buf, p, enc)) != 0 &amp;&amp; !strpbrk(s, "*?")) {</div><div class='del'>-	VALUE tmp, v;</div><div class='del'>-	size_t len;</div><div class='del'>-	int encidx;</div><div class='del'>-	WCHAR *wstr;</div><div class='del'>-	WIN32_FIND_DATAW wfd;</div><div class='del'>-	HANDLE h;</div><div class='add'>+        VALUE tmp, v;</div><div class='add'>+        size_t len;</div><div class='add'>+        int encidx;</div><div class='add'>+        WCHAR *wstr;</div><div class='add'>+        WIN32_FIND_DATAW wfd;</div><div class='add'>+        HANDLE h;</div><div class='ctx'> #ifdef __CYGWIN__</div><div class='ctx'> #ifdef HAVE_CYGWIN_CONV_PATH</div><div class='del'>-	char *w32buf = NULL;</div><div class='del'>-	const int flags = CCP_POSIX_TO_WIN_A | CCP_RELATIVE;</div><div class='add'>+        char *w32buf = NULL;</div><div class='add'>+        const int flags = CCP_POSIX_TO_WIN_A | CCP_RELATIVE;</div><div class='ctx'> #else</div><div class='del'>-	char w32buf[MAXPATHLEN];</div><div class='del'>-#endif</div><div class='del'>-	const char *path;</div><div class='del'>-	ssize_t bufsize;</div><div class='del'>-	int lnk_added = 0, is_symlink = 0;</div><div class='del'>-	struct stat st;</div><div class='del'>-	p = (char *)s;</div><div class='del'>-	len = strlen(p);</div><div class='del'>-	if (lstat_without_gvl(buf, &amp;st) == 0 &amp;&amp; S_ISLNK(st.st_mode)) {</div><div class='del'>-	    is_symlink = 1;</div><div class='del'>-	    if (len &gt; 4 &amp;&amp; STRCASECMP(p + len - 4, ".lnk") != 0) {</div><div class='del'>-		lnk_added = 1;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	path = *buf ? buf : "/";</div><div class='add'>+        char w32buf[MAXPATHLEN];</div><div class='add'>+#endif</div><div class='add'>+        const char *path;</div><div class='add'>+        ssize_t bufsize;</div><div class='add'>+        int lnk_added = 0, is_symlink = 0;</div><div class='add'>+        struct stat st;</div><div class='add'>+        p = (char *)s;</div><div class='add'>+        len = strlen(p);</div><div class='add'>+        if (lstat_without_gvl(buf, &amp;st) == 0 &amp;&amp; S_ISLNK(st.st_mode)) {</div><div class='add'>+            is_symlink = 1;</div><div class='add'>+            if (len &gt; 4 &amp;&amp; STRCASECMP(p + len - 4, ".lnk") != 0) {</div><div class='add'>+                lnk_added = 1;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        path = *buf ? buf : "/";</div><div class='ctx'> #ifdef HAVE_CYGWIN_CONV_PATH</div><div class='del'>-	bufsize = cygwin_conv_path(flags, path, NULL, 0);</div><div class='del'>-	if (bufsize &gt; 0) {</div><div class='del'>-	    bufsize += len;</div><div class='del'>-	    if (lnk_added) bufsize += 4;</div><div class='del'>-	    w32buf = ALLOCA_N(char, bufsize);</div><div class='del'>-	    if (cygwin_conv_path(flags, path, w32buf, bufsize) == 0) {</div><div class='del'>-		b = w32buf;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        bufsize = cygwin_conv_path(flags, path, NULL, 0);</div><div class='add'>+        if (bufsize &gt; 0) {</div><div class='add'>+            bufsize += len;</div><div class='add'>+            if (lnk_added) bufsize += 4;</div><div class='add'>+            w32buf = ALLOCA_N(char, bufsize);</div><div class='add'>+            if (cygwin_conv_path(flags, path, w32buf, bufsize) == 0) {</div><div class='add'>+                b = w32buf;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> #else</div><div class='del'>-	bufsize = MAXPATHLEN;</div><div class='del'>-	if (cygwin_conv_to_win32_path(path, w32buf) == 0) {</div><div class='del'>-	    b = w32buf;</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-	if (is_symlink &amp;&amp; b == w32buf) {</div><div class='del'>-	    *p = '\\';</div><div class='del'>-	    strlcat(w32buf, p, bufsize);</div><div class='del'>-	    if (lnk_added) {</div><div class='del'>-		strlcat(w32buf, ".lnk", bufsize);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    lnk_added = 0;</div><div class='del'>-	}</div><div class='del'>-	*p = '/';</div><div class='del'>-#endif</div><div class='del'>-	rb_str_set_len(result, p - buf + strlen(p));</div><div class='del'>-	encidx = ENCODING_GET(result);</div><div class='del'>-	tmp = result;</div><div class='del'>-	if (encidx != ENCINDEX_UTF_8 &amp;&amp; rb_enc_str_coderange(result) != ENC_CODERANGE_7BIT) {</div><div class='del'>-	    tmp = rb_str_encode_ospath(result);</div><div class='del'>-	}</div><div class='del'>-	len = MultiByteToWideChar(CP_UTF8, 0, RSTRING_PTR(tmp), -1, NULL, 0);</div><div class='del'>-	wstr = ALLOCV_N(WCHAR, v, len);</div><div class='del'>-	MultiByteToWideChar(CP_UTF8, 0, RSTRING_PTR(tmp), -1, wstr, len);</div><div class='del'>-	if (tmp != result) rb_str_set_len(tmp, 0);</div><div class='del'>-	h = FindFirstFileW(wstr, &amp;wfd);</div><div class='del'>-	ALLOCV_END(v);</div><div class='del'>-	if (h != INVALID_HANDLE_VALUE) {</div><div class='del'>-	    size_t wlen;</div><div class='del'>-	    FindClose(h);</div><div class='del'>-	    len = lstrlenW(wfd.cFileName);</div><div class='add'>+        bufsize = MAXPATHLEN;</div><div class='add'>+        if (cygwin_conv_to_win32_path(path, w32buf) == 0) {</div><div class='add'>+            b = w32buf;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        if (is_symlink &amp;&amp; b == w32buf) {</div><div class='add'>+            *p = '\\';</div><div class='add'>+            strlcat(w32buf, p, bufsize);</div><div class='add'>+            if (lnk_added) {</div><div class='add'>+                strlcat(w32buf, ".lnk", bufsize);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            lnk_added = 0;</div><div class='add'>+        }</div><div class='add'>+        *p = '/';</div><div class='add'>+#endif</div><div class='add'>+        rb_str_set_len(result, p - buf + strlen(p));</div><div class='add'>+        encidx = ENCODING_GET(result);</div><div class='add'>+        tmp = result;</div><div class='add'>+        if (encidx != ENCINDEX_UTF_8 &amp;&amp; !is_ascii_string(result)) {</div><div class='add'>+            tmp = rb_str_encode_ospath(result);</div><div class='add'>+        }</div><div class='add'>+        len = MultiByteToWideChar(CP_UTF8, 0, RSTRING_PTR(tmp), -1, NULL, 0);</div><div class='add'>+        wstr = ALLOCV_N(WCHAR, v, len);</div><div class='add'>+        MultiByteToWideChar(CP_UTF8, 0, RSTRING_PTR(tmp), -1, wstr, len);</div><div class='add'>+        if (tmp != result) rb_str_set_len(tmp, 0);</div><div class='add'>+        h = FindFirstFileW(wstr, &amp;wfd);</div><div class='add'>+        ALLOCV_END(v);</div><div class='add'>+        if (h != INVALID_HANDLE_VALUE) {</div><div class='add'>+            size_t wlen;</div><div class='add'>+            FindClose(h);</div><div class='add'>+            len = lstrlenW(wfd.cFileName);</div><div class='ctx'> #ifdef __CYGWIN__</div><div class='del'>-	    if (lnk_added &amp;&amp; len &gt; 4 &amp;&amp;</div><div class='del'>-		wcscasecmp(wfd.cFileName + len - 4, L".lnk") == 0) {</div><div class='del'>-		wfd.cFileName[len -= 4] = L'\0';</div><div class='del'>-	    }</div><div class='add'>+            if (lnk_added &amp;&amp; len &gt; 4 &amp;&amp;</div><div class='add'>+                wcscasecmp(wfd.cFileName + len - 4, L".lnk") == 0) {</div><div class='add'>+                wfd.cFileName[len -= 4] = L'\0';</div><div class='add'>+            }</div><div class='ctx'> #else</div><div class='del'>-	    p = (char *)s;</div><div class='del'>-#endif</div><div class='del'>-	    ++p;</div><div class='del'>-	    wlen = (int)len;</div><div class='del'>-	    len = WideCharToMultiByte(CP_UTF8, 0, wfd.cFileName, wlen, NULL, 0, NULL, NULL);</div><div class='del'>-	    if (tmp == result) {</div><div class='del'>-		BUFCHECK(bdiff + len &gt;= buflen);</div><div class='del'>-		WideCharToMultiByte(CP_UTF8, 0, wfd.cFileName, wlen, p, len + 1, NULL, NULL);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rb_str_modify_expand(tmp, len);</div><div class='del'>-		WideCharToMultiByte(CP_UTF8, 0, wfd.cFileName, wlen, RSTRING_PTR(tmp), len + 1, NULL, NULL);</div><div class='del'>-		rb_str_cat_conv_enc_opts(result, bdiff, RSTRING_PTR(tmp), len,</div><div class='del'>-					 rb_utf8_encoding(), 0, Qnil);</div><div class='del'>-		BUFINIT();</div><div class='del'>-		rb_str_resize(tmp, 0);</div><div class='del'>-	    }</div><div class='del'>-	    p += len;</div><div class='del'>-	}</div><div class='add'>+            p = (char *)s;</div><div class='add'>+#endif</div><div class='add'>+            ++p;</div><div class='add'>+            wlen = (int)len;</div><div class='add'>+            len = WideCharToMultiByte(CP_UTF8, 0, wfd.cFileName, wlen, NULL, 0, NULL, NULL);</div><div class='add'>+            if (tmp == result) {</div><div class='add'>+                BUFCHECK(bdiff + len &gt;= buflen);</div><div class='add'>+                WideCharToMultiByte(CP_UTF8, 0, wfd.cFileName, wlen, p, len + 1, NULL, NULL);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rb_str_modify_expand(tmp, len);</div><div class='add'>+                WideCharToMultiByte(CP_UTF8, 0, wfd.cFileName, wlen, RSTRING_PTR(tmp), len + 1, NULL, NULL);</div><div class='add'>+                rb_str_cat_conv_enc_opts(result, bdiff, RSTRING_PTR(tmp), len,</div><div class='add'>+                                         rb_utf8_encoding(), 0, Qnil);</div><div class='add'>+                BUFINIT();</div><div class='add'>+                rb_str_resize(tmp, 0);</div><div class='add'>+            }</div><div class='add'>+            p += len;</div><div class='add'>+        }</div><div class='ctx'> #ifdef __CYGWIN__</div><div class='del'>-	else {</div><div class='del'>-	    p += strlen(p);</div><div class='del'>-	}</div><div class='add'>+        else {</div><div class='add'>+            p += strlen(p);</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    if (tainted) OBJ_TAINT(result);</div><div class='ctx'>     rb_str_set_len(result, p - buf);</div><div class='ctx'>     rb_enc_check(fname, result);</div><div class='ctx'>     ENC_CODERANGE_CLEAR(result);</div><div class='hunk'>@@ -3844,7 +4087,7 @@ rb_file_expand_path_internal(VALUE fname, VALUE dname, int abs_mode, int long_na</div><div class='ctx'> }</div><div class='ctx'> #endif /* _WIN32 */</div><div class='ctx'> </div><div class='del'>-#define EXPAND_PATH_BUFFER() rb_usascii_str_new(0, MAXPATHLEN + 2)</div><div class='add'>+#define EXPAND_PATH_BUFFER() rb_usascii_str_new(0, 1)</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> str_shrink(VALUE str)</div><div class='hunk'>@@ -3879,6 +4122,13 @@ rb_file_expand_path_fast(VALUE fname, VALUE dname)</div><div class='ctx'>     return expand_path(fname, dname, 0, 0, EXPAND_PATH_BUFFER());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_file_s_expand_path(int argc, const VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 1, 2);</div><div class='add'>+    return rb_file_expand_path(argv[0], argc &gt; 1 ? argv[1] : Qnil);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     File.expand_path(file_name [, dir_string] )  -&gt;  abs_file_name</div><div class='hunk'>@@ -3907,11 +4157,10 @@ rb_file_expand_path_fast(VALUE fname, VALUE dname)</div><div class='ctx'>  *  parent, the root of the project and appends +lib/mygem.rb+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_file_s_expand_path(int argc, const VALUE *argv)</div><div class='add'>+static VALUE</div><div class='add'>+s_expand_path(int c, const VALUE * v, VALUE _)</div><div class='ctx'> {</div><div class='del'>-    rb_check_arity(argc, 1, 2);</div><div class='del'>-    return rb_file_expand_path(argv[0], argc &gt; 1 ? argv[1] : Qnil);</div><div class='add'>+    return rb_file_s_expand_path(c, v);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -3921,6 +4170,13 @@ rb_file_absolute_path(VALUE fname, VALUE dname)</div><div class='ctx'>     return expand_path(fname, dname, 1, 1, EXPAND_PATH_BUFFER());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_file_s_absolute_path(int argc, const VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 1, 2);</div><div class='add'>+    return rb_file_absolute_path(argv[0], argc &gt; 1 ? argv[1] : Qnil);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     File.absolute_path(file_name [, dir_string] )  -&gt;  abs_file_name</div><div class='hunk'>@@ -3934,11 +4190,29 @@ rb_file_absolute_path(VALUE fname, VALUE dname)</div><div class='ctx'>  *     File.absolute_path("~oracle/bin")       #=&gt; "&lt;relative_path&gt;/~oracle/bin"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_file_s_absolute_path(int argc, const VALUE *argv)</div><div class='add'>+static VALUE</div><div class='add'>+s_absolute_path(int c, const VALUE * v, VALUE _)</div><div class='ctx'> {</div><div class='del'>-    rb_check_arity(argc, 1, 2);</div><div class='del'>-    return rb_file_absolute_path(argv[0], argc &gt; 1 ? argv[1] : Qnil);</div><div class='add'>+    return rb_file_s_absolute_path(c, v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     File.absolute_path?(file_name)  -&gt;  true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns &lt;code&gt;true&lt;/code&gt; if +file_name+ is an absolute path, and</div><div class='add'>+ *  &lt;code&gt;false&lt;/code&gt; otherwise.</div><div class='add'>+ *</div><div class='add'>+ *     File.absolute_path?("c:/foo")     #=&gt; false (on Linux), true (on Windows)</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+s_absolute_path_p(VALUE klass, VALUE fname)</div><div class='add'>+{</div><div class='add'>+    VALUE path = rb_get_path(fname);</div><div class='add'>+</div><div class='add'>+    if (!rb_is_absolute_path(RSTRING_PTR(path))) return Qfalse;</div><div class='add'>+    return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> enum rb_realpath_mode {</div><div class='hunk'>@@ -3950,27 +4224,27 @@ enum rb_realpath_mode {</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> realpath_rec(long *prefixlenp, VALUE *resolvedp, const char *unresolved, VALUE fallback,</div><div class='del'>-	     VALUE loopcheck, enum rb_realpath_mode mode, int last)</div><div class='add'>+             VALUE loopcheck, enum rb_realpath_mode mode, int last)</div><div class='ctx'> {</div><div class='ctx'>     const char *pend = unresolved + strlen(unresolved);</div><div class='ctx'>     rb_encoding *enc = rb_enc_get(*resolvedp);</div><div class='ctx'>     ID resolving;</div><div class='ctx'>     CONST_ID(resolving, "resolving");</div><div class='ctx'>     while (unresolved &lt; pend) {</div><div class='del'>-	const char *testname = unresolved;</div><div class='del'>-	const char *unresolved_firstsep = rb_enc_path_next(unresolved, pend, enc);</div><div class='del'>-	long testnamelen = unresolved_firstsep - unresolved;</div><div class='del'>-	const char *unresolved_nextname = unresolved_firstsep;</div><div class='add'>+        const char *testname = unresolved;</div><div class='add'>+        const char *unresolved_firstsep = rb_enc_path_next(unresolved, pend, enc);</div><div class='add'>+        long testnamelen = unresolved_firstsep - unresolved;</div><div class='add'>+        const char *unresolved_nextname = unresolved_firstsep;</div><div class='ctx'>         while (unresolved_nextname &lt; pend &amp;&amp; isdirsep(*unresolved_nextname))</div><div class='del'>-	    unresolved_nextname++;</div><div class='add'>+            unresolved_nextname++;</div><div class='ctx'>         unresolved = unresolved_nextname;</div><div class='ctx'>         if (testnamelen == 1 &amp;&amp; testname[0] == '.') {</div><div class='ctx'>         }</div><div class='ctx'>         else if (testnamelen == 2 &amp;&amp; testname[0] == '.' &amp;&amp; testname[1] == '.') {</div><div class='ctx'>             if (*prefixlenp &lt; RSTRING_LEN(*resolvedp)) {</div><div class='del'>-		const char *resolved_str = RSTRING_PTR(*resolvedp);</div><div class='del'>-		const char *resolved_names = resolved_str + *prefixlenp;</div><div class='del'>-		const char *lastsep = strrdirsep(resolved_names, resolved_str + RSTRING_LEN(*resolvedp), enc);</div><div class='add'>+                const char *resolved_str = RSTRING_PTR(*resolvedp);</div><div class='add'>+                const char *resolved_names = resolved_str + *prefixlenp;</div><div class='add'>+                const char *lastsep = strrdirsep(resolved_names, resolved_str + RSTRING_LEN(*resolvedp), enc);</div><div class='ctx'>                 long len = lastsep ? lastsep - resolved_names : 0;</div><div class='ctx'>                 rb_str_resize(*resolvedp, *prefixlenp + len);</div><div class='ctx'>             }</div><div class='hunk'>@@ -3981,20 +4255,20 @@ realpath_rec(long *prefixlenp, VALUE *resolvedp, const char *unresolved, VALUE f</div><div class='ctx'>             if (*prefixlenp &lt; RSTRING_LEN(testpath))</div><div class='ctx'>                 rb_str_cat2(testpath, "/");</div><div class='ctx'> #if defined(DOSISH_UNC) || defined(DOSISH_DRIVE_LETTER)</div><div class='del'>-	    if (*prefixlenp &gt; 1 &amp;&amp; *prefixlenp == RSTRING_LEN(testpath)) {</div><div class='del'>-		const char *prefix = RSTRING_PTR(testpath);</div><div class='del'>-		const char *last = rb_enc_left_char_head(prefix, prefix + *prefixlenp - 1, prefix + *prefixlenp, enc);</div><div class='del'>-		if (!isdirsep(*last)) rb_str_cat2(testpath, "/");</div><div class='del'>-	    }</div><div class='add'>+            if (*prefixlenp &gt; 1 &amp;&amp; *prefixlenp == RSTRING_LEN(testpath)) {</div><div class='add'>+                const char *prefix = RSTRING_PTR(testpath);</div><div class='add'>+                const char *last = rb_enc_left_char_head(prefix, prefix + *prefixlenp - 1, prefix + *prefixlenp, enc);</div><div class='add'>+                if (!isdirsep(*last)) rb_str_cat2(testpath, "/");</div><div class='add'>+            }</div><div class='ctx'> #endif</div><div class='ctx'>             rb_str_cat(testpath, testname, testnamelen);</div><div class='ctx'>             checkval = rb_hash_aref(loopcheck, testpath);</div><div class='ctx'>             if (!NIL_P(checkval)) {</div><div class='ctx'>                 if (checkval == ID2SYM(resolving)) {</div><div class='del'>-		    if (mode == RB_REALPATH_CHECK) {</div><div class='del'>-			errno = ELOOP;</div><div class='del'>-			return -1;</div><div class='del'>-		    }</div><div class='add'>+                    if (mode == RB_REALPATH_CHECK) {</div><div class='add'>+                        errno = ELOOP;</div><div class='add'>+                        return -1;</div><div class='add'>+                    }</div><div class='ctx'>                     rb_syserr_fail_path(ELOOP, testpath);</div><div class='ctx'>                 }</div><div class='ctx'>                 else {</div><div class='hunk'>@@ -4006,49 +4280,49 @@ realpath_rec(long *prefixlenp, VALUE *resolvedp, const char *unresolved, VALUE f</div><div class='ctx'>                 int ret;</div><div class='ctx'>                 ret = lstat_without_gvl(RSTRING_PTR(testpath), &amp;sbuf);</div><div class='ctx'>                 if (ret == -1) {</div><div class='del'>-		    int e = errno;</div><div class='del'>-		    if (e == ENOENT &amp;&amp; !NIL_P(fallback)) {</div><div class='del'>-			if (stat_without_gvl(RSTRING_PTR(fallback), &amp;sbuf) == 0) {</div><div class='del'>-			    rb_str_replace(*resolvedp, fallback);</div><div class='del'>-			    return 0;</div><div class='del'>-			}</div><div class='del'>-		    }</div><div class='del'>-		    if (mode == RB_REALPATH_CHECK) return -1;</div><div class='del'>-		    if (e == ENOENT) {</div><div class='del'>-			if (mode == RB_REALPATH_STRICT || !last || *unresolved_firstsep)</div><div class='del'>-			    rb_syserr_fail_path(e, testpath);</div><div class='add'>+                    int e = errno;</div><div class='add'>+                    if (e == ENOENT &amp;&amp; !NIL_P(fallback)) {</div><div class='add'>+                        if (stat_without_gvl(RSTRING_PTR(fallback), &amp;sbuf) == 0) {</div><div class='add'>+                            rb_str_replace(*resolvedp, fallback);</div><div class='add'>+                            return 0;</div><div class='add'>+                        }</div><div class='add'>+                    }</div><div class='add'>+                    if (mode == RB_REALPATH_CHECK) return -1;</div><div class='add'>+                    if (e == ENOENT) {</div><div class='add'>+                        if (mode == RB_REALPATH_STRICT || !last || *unresolved_firstsep)</div><div class='add'>+                            rb_syserr_fail_path(e, testpath);</div><div class='ctx'>                         *resolvedp = testpath;</div><div class='ctx'>                         break;</div><div class='ctx'>                     }</div><div class='ctx'>                     else {</div><div class='del'>-			rb_syserr_fail_path(e, testpath);</div><div class='add'>+                        rb_syserr_fail_path(e, testpath);</div><div class='ctx'>                     }</div><div class='ctx'>                 }</div><div class='ctx'> #ifdef HAVE_READLINK</div><div class='ctx'>                 if (S_ISLNK(sbuf.st_mode)) {</div><div class='del'>-		    VALUE link;</div><div class='del'>-		    VALUE link_orig = Qnil;</div><div class='del'>-		    const char *link_prefix, *link_names;</div><div class='add'>+                    VALUE link;</div><div class='add'>+                    VALUE link_orig = Qnil;</div><div class='add'>+                    const char *link_prefix, *link_names;</div><div class='ctx'>                     long link_prefixlen;</div><div class='ctx'>                     rb_hash_aset(loopcheck, testpath, ID2SYM(resolving));</div><div class='del'>-		    link = rb_readlink(testpath, enc);</div><div class='add'>+                    link = rb_readlink(testpath, enc);</div><div class='ctx'>                     link_prefix = RSTRING_PTR(link);</div><div class='del'>-		    link_names = skipprefixroot(link_prefix, link_prefix + RSTRING_LEN(link), rb_enc_get(link));</div><div class='del'>-		    link_prefixlen = link_names - link_prefix;</div><div class='del'>-		    if (link_prefixlen &gt; 0) {</div><div class='del'>-			rb_encoding *tmpenc, *linkenc = rb_enc_get(link);</div><div class='del'>-			link_orig = link;</div><div class='del'>-			link = rb_str_subseq(link, 0, link_prefixlen);</div><div class='del'>-			tmpenc = rb_enc_check(*resolvedp, link);</div><div class='del'>-			if (tmpenc != linkenc) link = rb_str_conv_enc(link, linkenc, tmpenc);</div><div class='del'>-			*resolvedp = link;</div><div class='del'>-			*prefixlenp = link_prefixlen;</div><div class='del'>-		    }</div><div class='del'>-		    if (realpath_rec(prefixlenp, resolvedp, link_names, testpath,</div><div class='del'>-				     loopcheck, mode, !*unresolved_firstsep))</div><div class='del'>-			return -1;</div><div class='del'>-		    RB_GC_GUARD(link_orig);</div><div class='del'>-		    rb_hash_aset(loopcheck, testpath, rb_str_dup_frozen(*resolvedp));</div><div class='add'>+                    link_names = skipprefixroot(link_prefix, link_prefix + RSTRING_LEN(link), rb_enc_get(link));</div><div class='add'>+                    link_prefixlen = link_names - link_prefix;</div><div class='add'>+                    if (link_prefixlen &gt; 0) {</div><div class='add'>+                        rb_encoding *tmpenc, *linkenc = rb_enc_get(link);</div><div class='add'>+                        link_orig = link;</div><div class='add'>+                        link = rb_str_subseq(link, 0, link_prefixlen);</div><div class='add'>+                        tmpenc = fs_enc_check(*resolvedp, link);</div><div class='add'>+                        if (tmpenc != linkenc) link = rb_str_conv_enc(link, linkenc, tmpenc);</div><div class='add'>+                        *resolvedp = link;</div><div class='add'>+                        *prefixlenp = link_prefixlen;</div><div class='add'>+                    }</div><div class='add'>+                    if (realpath_rec(prefixlenp, resolvedp, link_names, testpath,</div><div class='add'>+                                     loopcheck, mode, !*unresolved_firstsep))</div><div class='add'>+                        return -1;</div><div class='add'>+                    RB_GC_GUARD(link_orig);</div><div class='add'>+                    rb_hash_aset(loopcheck, testpath, rb_str_dup_frozen(*resolvedp));</div><div class='ctx'>                 }</div><div class='ctx'>                 else</div><div class='ctx'> #endif</div><div class='hunk'>@@ -4064,7 +4338,7 @@ realpath_rec(long *prefixlenp, VALUE *resolvedp, const char *unresolved, VALUE f</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_check_realpath_internal(VALUE basedir, VALUE path, enum rb_realpath_mode mode)</div><div class='add'>+rb_check_realpath_emulate(VALUE basedir, VALUE path, rb_encoding *origenc, enum rb_realpath_mode mode)</div><div class='ctx'> {</div><div class='ctx'>     long prefixlen;</div><div class='ctx'>     VALUE resolved;</div><div class='hunk'>@@ -4072,7 +4346,7 @@ rb_check_realpath_internal(VALUE basedir, VALUE path, enum rb_realpath_mode mode</div><div class='ctx'>     VALUE loopcheck;</div><div class='ctx'>     VALUE curdir = Qnil;</div><div class='ctx'> </div><div class='del'>-    rb_encoding *enc, *origenc;</div><div class='add'>+    rb_encoding *enc;</div><div class='ctx'>     char *path_names = NULL, *basedir_names = NULL, *curdir_names = NULL;</div><div class='ctx'>     char *ptr, *prefixptr = NULL, *pend;</div><div class='ctx'>     long len;</div><div class='hunk'>@@ -4085,7 +4359,6 @@ rb_check_realpath_internal(VALUE basedir, VALUE path, enum rb_realpath_mode mode</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     enc = rb_enc_get(unresolved_path);</div><div class='del'>-    origenc = enc;</div><div class='ctx'>     unresolved_path = TO_OSPATH(unresolved_path);</div><div class='ctx'>     RSTRING_GETMEM(unresolved_path, ptr, len);</div><div class='ctx'>     path_names = skipprefixroot(ptr, ptr + len, rb_enc_get(unresolved_path));</div><div class='hunk'>@@ -4095,11 +4368,11 @@ rb_check_realpath_internal(VALUE basedir, VALUE path, enum rb_realpath_mode mode</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(basedir)) {</div><div class='del'>-	RSTRING_GETMEM(basedir, ptr, len);</div><div class='del'>-	basedir_names = skipprefixroot(ptr, ptr + len, rb_enc_get(basedir));</div><div class='add'>+        RSTRING_GETMEM(basedir, ptr, len);</div><div class='add'>+        basedir_names = skipprefixroot(ptr, ptr + len, rb_enc_get(basedir));</div><div class='ctx'>         if (ptr != basedir_names) {</div><div class='del'>-	    resolved = rb_str_subseq(basedir, 0, basedir_names - ptr);</div><div class='del'>-	    goto root_found;</div><div class='add'>+            resolved = rb_str_subseq(basedir, 0, basedir_names - ptr);</div><div class='add'>+            goto root_found;</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -4118,58 +4391,155 @@ rb_check_realpath_internal(VALUE basedir, VALUE path, enum rb_realpath_mode mode</div><div class='ctx'>     }</div><div class='ctx'> #ifdef FILE_ALT_SEPARATOR</div><div class='ctx'>     while (prefixptr &lt; ptr) {</div><div class='del'>-	if (*prefixptr == FILE_ALT_SEPARATOR) {</div><div class='del'>-	    *prefixptr = '/';</div><div class='del'>-	}</div><div class='del'>-	Inc(prefixptr, pend, enc);</div><div class='add'>+        if (*prefixptr == FILE_ALT_SEPARATOR) {</div><div class='add'>+            *prefixptr = '/';</div><div class='add'>+        }</div><div class='add'>+        Inc(prefixptr, pend, enc);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     switch (rb_enc_to_index(enc)) {</div><div class='del'>-      case ENCINDEX_ASCII:</div><div class='add'>+      case ENCINDEX_ASCII_8BIT:</div><div class='ctx'>       case ENCINDEX_US_ASCII:</div><div class='del'>-	rb_enc_associate_index(resolved, rb_filesystem_encindex());</div><div class='add'>+        rb_enc_associate_index(resolved, rb_filesystem_encindex());</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     loopcheck = rb_hash_new();</div><div class='ctx'>     if (curdir_names) {</div><div class='del'>-	if (realpath_rec(&amp;prefixlen, &amp;resolved, curdir_names, Qnil, loopcheck, mode, 0))</div><div class='del'>-	    return Qnil;</div><div class='add'>+        if (realpath_rec(&amp;prefixlen, &amp;resolved, curdir_names, Qnil, loopcheck, mode, 0))</div><div class='add'>+            return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     if (basedir_names) {</div><div class='del'>-	if (realpath_rec(&amp;prefixlen, &amp;resolved, basedir_names, Qnil, loopcheck, mode, 0))</div><div class='del'>-	    return Qnil;</div><div class='add'>+        if (realpath_rec(&amp;prefixlen, &amp;resolved, basedir_names, Qnil, loopcheck, mode, 0))</div><div class='add'>+            return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     if (realpath_rec(&amp;prefixlen, &amp;resolved, path_names, Qnil, loopcheck, mode, 1))</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'> </div><div class='del'>-    if (origenc != rb_enc_get(resolved)) {</div><div class='del'>-	if (rb_enc_str_asciionly_p(resolved)) {</div><div class='del'>-	    rb_enc_associate(resolved, origenc);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    resolved = rb_str_conv_enc(resolved, NULL, origenc);</div><div class='del'>-	}</div><div class='add'>+    if (origenc &amp;&amp; origenc != rb_enc_get(resolved)) {</div><div class='add'>+        if (rb_enc_str_asciionly_p(resolved)) {</div><div class='add'>+            rb_enc_associate(resolved, origenc);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            resolved = rb_str_conv_enc(resolved, NULL, origenc);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    OBJ_INFECT(resolved, unresolved_path);</div><div class='ctx'>     RB_GC_GUARD(unresolved_path);</div><div class='ctx'>     RB_GC_GUARD(curdir);</div><div class='ctx'>     return resolved;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE rb_file_join(VALUE ary);</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_REALPATH</div><div class='add'>+static VALUE</div><div class='add'>+rb_check_realpath_emulate_try(VALUE arg)</div><div class='add'>+{</div><div class='add'>+    VALUE *args = (VALUE *)arg;</div><div class='add'>+    return rb_check_realpath_emulate(args[0], args[1], (rb_encoding *)args[2], RB_REALPATH_CHECK);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_check_realpath_emulate_rescue(VALUE arg, VALUE exc)</div><div class='add'>+{</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+#endif /* HAVE_REALPATH */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_check_realpath_internal(VALUE basedir, VALUE path, rb_encoding *origenc, enum rb_realpath_mode mode)</div><div class='add'>+{</div><div class='add'>+#ifdef HAVE_REALPATH</div><div class='add'>+    VALUE unresolved_path;</div><div class='add'>+    char *resolved_ptr = NULL;</div><div class='add'>+    VALUE resolved;</div><div class='add'>+</div><div class='add'>+    if (mode == RB_REALPATH_DIR) {</div><div class='add'>+        return rb_check_realpath_emulate(basedir, path, origenc, mode);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    unresolved_path = rb_str_dup_frozen(path);</div><div class='add'>+    if (*RSTRING_PTR(unresolved_path) != '/' &amp;&amp; !NIL_P(basedir)) {</div><div class='add'>+        unresolved_path = rb_file_join(rb_assoc_new(basedir, unresolved_path));</div><div class='add'>+    }</div><div class='add'>+    if (origenc) unresolved_path = TO_OSPATH(unresolved_path);</div><div class='add'>+</div><div class='add'>+    if ((resolved_ptr = realpath(RSTRING_PTR(unresolved_path), NULL)) == NULL) {</div><div class='add'>+        /* glibc realpath(3) does not allow /path/to/file.rb/../other_file.rb,</div><div class='add'>+           returning ENOTDIR in that case.</div><div class='add'>+           glibc realpath(3) can also return ENOENT for paths that exist,</div><div class='add'>+           such as /dev/fd/5.</div><div class='add'>+           Fallback to the emulated approach in either of those cases. */</div><div class='add'>+        if (errno == ENOTDIR ||</div><div class='add'>+            (errno == ENOENT &amp;&amp; rb_file_exist_p(0, unresolved_path))) {</div><div class='add'>+            return rb_check_realpath_emulate(basedir, path, origenc, mode);</div><div class='add'>+</div><div class='add'>+        }</div><div class='add'>+        if (mode == RB_REALPATH_CHECK) {</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='add'>+        rb_sys_fail_path(unresolved_path);</div><div class='add'>+    }</div><div class='add'>+    resolved = ospath_new(resolved_ptr, strlen(resolved_ptr), rb_filesystem_encoding());</div><div class='add'>+    free(resolved_ptr);</div><div class='add'>+</div><div class='add'>+# if !defined(__LINUX__) &amp;&amp; !defined(__APPLE__)</div><div class='add'>+    /* As `resolved` is a String in the filesystem encoding, no</div><div class='add'>+     * conversion is needed */</div><div class='add'>+    struct stat st;</div><div class='add'>+    if (stat_without_gvl(RSTRING_PTR(resolved), &amp;st) &lt; 0) {</div><div class='add'>+        if (mode == RB_REALPATH_CHECK) {</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='add'>+        rb_sys_fail_path(unresolved_path);</div><div class='add'>+    }</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+    if (origenc &amp;&amp; origenc != rb_enc_get(resolved)) {</div><div class='add'>+        if (!rb_enc_str_asciionly_p(resolved)) {</div><div class='add'>+            resolved = rb_str_conv_enc(resolved, NULL, origenc);</div><div class='add'>+        }</div><div class='add'>+        rb_enc_associate(resolved, origenc);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (is_broken_string(resolved)) {</div><div class='add'>+        rb_enc_associate(resolved, rb_filesystem_encoding());</div><div class='add'>+        if (is_broken_string(resolved)) {</div><div class='add'>+            rb_enc_associate(resolved, rb_ascii8bit_encoding());</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(unresolved_path);</div><div class='add'>+    return resolved;</div><div class='add'>+#else</div><div class='add'>+    if (mode == RB_REALPATH_CHECK) {</div><div class='add'>+        VALUE arg[3];</div><div class='add'>+        arg[0] = basedir;</div><div class='add'>+        arg[1] = path;</div><div class='add'>+        arg[2] = (VALUE)origenc;</div><div class='add'>+</div><div class='add'>+        return rb_rescue(rb_check_realpath_emulate_try, (VALUE)arg,</div><div class='add'>+                         rb_check_realpath_emulate_rescue, Qnil);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_check_realpath_emulate(basedir, path, origenc, mode);</div><div class='add'>+    }</div><div class='add'>+#endif /* HAVE_REALPATH */</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='ctx'> rb_realpath_internal(VALUE basedir, VALUE path, int strict)</div><div class='ctx'> {</div><div class='ctx'>     const enum rb_realpath_mode mode =</div><div class='del'>-	strict ? RB_REALPATH_STRICT : RB_REALPATH_DIR;</div><div class='del'>-    return rb_check_realpath_internal(basedir, path, mode);</div><div class='add'>+        strict ? RB_REALPATH_STRICT : RB_REALPATH_DIR;</div><div class='add'>+    return rb_check_realpath_internal(basedir, path, rb_enc_get(path), mode);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_check_realpath(VALUE basedir, VALUE path)</div><div class='add'>+rb_check_realpath(VALUE basedir, VALUE path, rb_encoding *enc)</div><div class='ctx'> {</div><div class='del'>-    return rb_check_realpath_internal(basedir, path, RB_REALPATH_CHECK);</div><div class='add'>+    return rb_check_realpath_internal(basedir, path, enc, RB_REALPATH_CHECK);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -4226,15 +4596,15 @@ rmext(const char *p, long l0, long l1, const char *e, long l2, rb_encoding *enc)</div><div class='ctx'> </div><div class='ctx'>     c = rb_enc_codepoint_len(e, e + l2, &amp;len1, enc);</div><div class='ctx'>     if (rb_enc_ascget(e + len1, e + l2, &amp;len2, enc) == '*' &amp;&amp; len1 + len2 == l2) {</div><div class='del'>-	if (c == '.') return l0;</div><div class='del'>-	s = p;</div><div class='del'>-	e = p + l1;</div><div class='del'>-	last = e;</div><div class='del'>-	while (s &lt; e) {</div><div class='del'>-	    if (rb_enc_codepoint_len(s, e, &amp;len1, enc) == c) last = s;</div><div class='del'>-	    s += len1;</div><div class='del'>-	}</div><div class='del'>-	return last - p;</div><div class='add'>+        if (c == '.') return l0;</div><div class='add'>+        s = p;</div><div class='add'>+        e = p + l1;</div><div class='add'>+        last = e;</div><div class='add'>+        while (s &lt; e) {</div><div class='add'>+            if (rb_enc_codepoint_len(s, e, &amp;len1, enc) == c) last = s;</div><div class='add'>+            s += len1;</div><div class='add'>+        }</div><div class='add'>+        return last - p;</div><div class='ctx'>     }</div><div class='ctx'>     if (l1 &lt; l2) return l1;</div><div class='ctx'> </div><div class='hunk'>@@ -4246,7 +4616,7 @@ rmext(const char *p, long l0, long l1, const char *e, long l2, rb_encoding *enc)</div><div class='ctx'> #define fncomp strncmp</div><div class='ctx'> #endif</div><div class='ctx'>     if (fncomp(s, e, l2) == 0) {</div><div class='del'>-	return l1-l2;</div><div class='add'>+        return l1-l2;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -4266,51 +4636,51 @@ ruby_enc_find_basename(const char *name, long *baselen, long *alllen, rb_encodin</div><div class='ctx'>     root = name;</div><div class='ctx'> #endif</div><div class='ctx'>     while (isdirsep(*name))</div><div class='del'>-	name++;</div><div class='add'>+        name++;</div><div class='ctx'>     if (!*name) {</div><div class='del'>-	p = name - 1;</div><div class='del'>-	f = 1;</div><div class='add'>+        p = name - 1;</div><div class='add'>+        f = 1;</div><div class='ctx'> #if defined DOSISH_DRIVE_LETTER || defined DOSISH_UNC</div><div class='del'>-	if (name != root) {</div><div class='del'>-	    /* has slashes */</div><div class='del'>-	}</div><div class='add'>+        if (name != root) {</div><div class='add'>+            /* has slashes */</div><div class='add'>+        }</div><div class='ctx'> #ifdef DOSISH_DRIVE_LETTER</div><div class='del'>-	else if (*p == ':') {</div><div class='del'>-	    p++;</div><div class='del'>-	    f = 0;</div><div class='del'>-	}</div><div class='add'>+        else if (*p == ':') {</div><div class='add'>+            p++;</div><div class='add'>+            f = 0;</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef DOSISH_UNC</div><div class='del'>-	else {</div><div class='del'>-	    p = "/";</div><div class='del'>-	}</div><div class='add'>+        else {</div><div class='add'>+            p = "/";</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (!(p = strrdirsep(name, end, enc))) {</div><div class='del'>-	    p = name;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    while (isdirsep(*p)) p++; /* skip last / */</div><div class='del'>-	}</div><div class='add'>+        if (!(p = strrdirsep(name, end, enc))) {</div><div class='add'>+            p = name;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            while (isdirsep(*p)) p++; /* skip last / */</div><div class='add'>+        }</div><div class='ctx'> #if USE_NTFS</div><div class='del'>-	n = ntfs_tail(p, end, enc) - p;</div><div class='add'>+        n = ntfs_tail(p, end, enc) - p;</div><div class='ctx'> #else</div><div class='del'>-	n = chompdirsep(p, end, enc) - p;</div><div class='add'>+        n = chompdirsep(p, end, enc) - p;</div><div class='ctx'> #endif</div><div class='del'>-	for (q = p; q - p &lt; n &amp;&amp; *q == '.'; q++);</div><div class='del'>-	for (e = 0; q - p &lt; n; Inc(q, end, enc)) {</div><div class='del'>-	    if (*q == '.') e = q;</div><div class='del'>-	}</div><div class='del'>-	if (e) f = e - p;</div><div class='del'>-	else f = n;</div><div class='add'>+        for (q = p; q - p &lt; n &amp;&amp; *q == '.'; q++);</div><div class='add'>+        for (e = 0; q - p &lt; n; Inc(q, end, enc)) {</div><div class='add'>+            if (*q == '.') e = q;</div><div class='add'>+        }</div><div class='add'>+        if (e) f = e - p;</div><div class='add'>+        else f = n;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (baselen)</div><div class='del'>-	*baselen = f;</div><div class='add'>+        *baselen = f;</div><div class='ctx'>     if (alllen)</div><div class='del'>-	*alllen = n;</div><div class='add'>+        *alllen = n;</div><div class='ctx'>     return p;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4320,12 +4690,11 @@ ruby_enc_find_basename(const char *name, long *baselen, long *alllen, rb_encodin</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the last component of the filename given in</div><div class='ctx'>  *  &lt;i&gt;file_name&lt;/i&gt; (after first stripping trailing separators),</div><div class='del'>- *  which can be formed using both &lt;code&gt;File::SEPARATOR&lt;/code&gt; and</div><div class='del'>- *  &lt;code&gt;File::ALT_SEPARATOR&lt;/code&gt; as the separator when</div><div class='del'>- *  &lt;code&gt;File::ALT_SEPARATOR&lt;/code&gt; is not &lt;code&gt;nil&lt;/code&gt;. If</div><div class='del'>- *  &lt;i&gt;suffix&lt;/i&gt; is given and present at the end of &lt;i&gt;file_name&lt;/i&gt;,</div><div class='del'>- *  it is removed. If &lt;i&gt;suffix&lt;/i&gt; is ".*", any extension will be</div><div class='del'>- *  removed.</div><div class='add'>+ *  which can be formed using both File::SEPARATOR and</div><div class='add'>+ *  File::ALT_SEPARATOR as the separator when File::ALT_SEPARATOR is</div><div class='add'>+ *  not &lt;code&gt;nil&lt;/code&gt;. If &lt;i&gt;suffix&lt;/i&gt; is given and present at the</div><div class='add'>+ *  end of &lt;i&gt;file_name&lt;/i&gt;, it is removed. If &lt;i&gt;suffix&lt;/i&gt; is ".*",</div><div class='add'>+ *  any extension will be removed.</div><div class='ctx'>  *</div><div class='ctx'>  *     File.basename("/home/gumby/work/ruby.rb")          #=&gt; "ruby.rb"</div><div class='ctx'>  *     File.basename("/home/gumby/work/ruby.rb", ".rb")   #=&gt; "ruby"</div><div class='hunk'>@@ -4333,7 +4702,7 @@ ruby_enc_find_basename(const char *name, long *baselen, long *alllen, rb_encodin</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_file_s_basename(int argc, VALUE *argv)</div><div class='add'>+rb_file_s_basename(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE fname, fext, basename;</div><div class='ctx'>     const char *name, *p;</div><div class='hunk'>@@ -4342,67 +4711,87 @@ rb_file_s_basename(int argc, VALUE *argv)</div><div class='ctx'> </div><div class='ctx'>     fext = Qnil;</div><div class='ctx'>     if (rb_check_arity(argc, 1, 2) == 2) {</div><div class='del'>-	fext = argv[1];</div><div class='del'>-	StringValue(fext);</div><div class='del'>-	enc = check_path_encoding(fext);</div><div class='add'>+        fext = argv[1];</div><div class='add'>+        StringValue(fext);</div><div class='add'>+        enc = check_path_encoding(fext);</div><div class='ctx'>     }</div><div class='ctx'>     fname = argv[0];</div><div class='ctx'>     FilePathStringValue(fname);</div><div class='ctx'>     if (NIL_P(fext) || !(enc = rb_enc_compatible(fname, fext))) {</div><div class='del'>-	enc = rb_enc_get(fname);</div><div class='del'>-	fext = Qnil;</div><div class='add'>+        enc = rb_enc_get(fname);</div><div class='add'>+        fext = Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     if ((n = RSTRING_LEN(fname)) == 0 || !*(name = RSTRING_PTR(fname)))</div><div class='del'>-	return rb_str_new_shared(fname);</div><div class='add'>+        return rb_str_new_shared(fname);</div><div class='ctx'> </div><div class='ctx'>     p = ruby_enc_find_basename(name, &amp;f, &amp;n, enc);</div><div class='ctx'>     if (n &gt;= 0) {</div><div class='del'>-	if (NIL_P(fext)) {</div><div class='del'>-	    f = n;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    const char *fp;</div><div class='del'>-	    fp = StringValueCStr(fext);</div><div class='del'>-	    if (!(f = rmext(p, f, n, fp, RSTRING_LEN(fext), enc))) {</div><div class='del'>-		f = n;</div><div class='del'>-	    }</div><div class='del'>-	    RB_GC_GUARD(fext);</div><div class='del'>-	}</div><div class='del'>-	if (f == RSTRING_LEN(fname)) return rb_str_new_shared(fname);</div><div class='add'>+        if (NIL_P(fext)) {</div><div class='add'>+            f = n;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            const char *fp;</div><div class='add'>+            fp = StringValueCStr(fext);</div><div class='add'>+            if (!(f = rmext(p, f, n, fp, RSTRING_LEN(fext), enc))) {</div><div class='add'>+                f = n;</div><div class='add'>+            }</div><div class='add'>+            RB_GC_GUARD(fext);</div><div class='add'>+        }</div><div class='add'>+        if (f == RSTRING_LEN(fname)) return rb_str_new_shared(fname);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     basename = rb_str_new(p, f);</div><div class='ctx'>     rb_enc_copy(basename, fname);</div><div class='del'>-    OBJ_INFECT(basename, fname);</div><div class='ctx'>     return basename;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE rb_file_dirname_n(VALUE fname, int n);</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     File.dirname(file_name)  -&gt;  dir_name</div><div class='add'>+ *     File.dirname(file_name, level = 1)  -&gt;  dir_name</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns all components of the filename given in &lt;i&gt;file_name&lt;/i&gt;</div><div class='ctx'>  *  except the last one (after first stripping trailing separators).</div><div class='del'>- *  The filename can be formed using both &lt;code&gt;File::SEPARATOR&lt;/code&gt;</div><div class='del'>- *  and &lt;code&gt;File::ALT_SEPARATOR&lt;/code&gt; as the separator when</div><div class='del'>- *  &lt;code&gt;File::ALT_SEPARATOR&lt;/code&gt; is not &lt;code&gt;nil&lt;/code&gt;.</div><div class='add'>+ *  The filename can be formed using both File::SEPARATOR and</div><div class='add'>+ *  File::ALT_SEPARATOR as the separator when File::ALT_SEPARATOR is</div><div class='add'>+ *  not &lt;code&gt;nil&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='ctx'>  *     File.dirname("/home/gumby/work/ruby.rb")   #=&gt; "/home/gumby/work"</div><div class='add'>+ *</div><div class='add'>+ *  If +level+ is given, removes the last +level+ components, not only</div><div class='add'>+ *  one.</div><div class='add'>+ *</div><div class='add'>+ *     File.dirname("/home/gumby/work/ruby.rb", 2) #=&gt; "/home/gumby"</div><div class='add'>+ *     File.dirname("/home/gumby/work/ruby.rb", 4) #=&gt; "/"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_file_s_dirname(VALUE klass, VALUE fname)</div><div class='add'>+rb_file_s_dirname(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    return rb_file_dirname(fname);</div><div class='add'>+    int n = 1;</div><div class='add'>+    if ((argc = rb_check_arity(argc, 1, 2)) &gt; 1) {</div><div class='add'>+        n = NUM2INT(argv[1]);</div><div class='add'>+    }</div><div class='add'>+    return rb_file_dirname_n(argv[0], n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_file_dirname(VALUE fname)</div><div class='ctx'> {</div><div class='add'>+    return rb_file_dirname_n(fname, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_file_dirname_n(VALUE fname, int n)</div><div class='add'>+{</div><div class='ctx'>     const char *name, *root, *p, *end;</div><div class='ctx'>     VALUE dirname;</div><div class='ctx'>     rb_encoding *enc;</div><div class='add'>+    VALUE sepsv = 0;</div><div class='add'>+    const char **seps;</div><div class='ctx'> </div><div class='add'>+    if (n &lt; 0) rb_raise(rb_eArgError, "negative level: %d", n);</div><div class='ctx'>     FilePathStringValue(fname);</div><div class='ctx'>     name = StringValueCStr(fname);</div><div class='ctx'>     end = name + RSTRING_LEN(fname);</div><div class='hunk'>@@ -4410,32 +4799,60 @@ rb_file_dirname(VALUE fname)</div><div class='ctx'>     root = skiproot(name, end, enc);</div><div class='ctx'> #ifdef DOSISH_UNC</div><div class='ctx'>     if (root &gt; name + 1 &amp;&amp; isdirsep(*name))</div><div class='del'>-	root = skipprefix(name = root - 2, end, enc);</div><div class='add'>+        root = skipprefix(name = root - 2, end, enc);</div><div class='ctx'> #else</div><div class='ctx'>     if (root &gt; name + 1)</div><div class='del'>-	name = root - 1;</div><div class='add'>+        name = root - 1;</div><div class='ctx'> #endif</div><div class='del'>-    p = strrdirsep(root, end, enc);</div><div class='del'>-    if (!p) {</div><div class='del'>-	p = root;</div><div class='add'>+    if (n &gt; (end - root + 1) / 2) {</div><div class='add'>+        p = root;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        int i;</div><div class='add'>+        switch (n) {</div><div class='add'>+          case 0:</div><div class='add'>+            p = end;</div><div class='add'>+            break;</div><div class='add'>+          case 1:</div><div class='add'>+            if (!(p = strrdirsep(root, end, enc))) p = root;</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            seps = ALLOCV_N(const char *, sepsv, n);</div><div class='add'>+            for (i = 0; i &lt; n; ++i) seps[i] = root;</div><div class='add'>+            i = 0;</div><div class='add'>+            for (p = root; p &lt; end; ) {</div><div class='add'>+                if (isdirsep(*p)) {</div><div class='add'>+                    const char *tmp = p++;</div><div class='add'>+                    while (p &lt; end &amp;&amp; isdirsep(*p)) p++;</div><div class='add'>+                    if (p &gt;= end) break;</div><div class='add'>+                    seps[i++] = tmp;</div><div class='add'>+                    if (i == n) i = 0;</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    Inc(p, end, enc);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            p = seps[i];</div><div class='add'>+            ALLOCV_END(sepsv);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (p == name)</div><div class='del'>-	return rb_usascii_str_new2(".");</div><div class='add'>+        return rb_usascii_str_new2(".");</div><div class='ctx'> #ifdef DOSISH_DRIVE_LETTER</div><div class='ctx'>     if (has_drive_letter(name) &amp;&amp; isdirsep(*(name + 2))) {</div><div class='del'>-	const char *top = skiproot(name + 2, end, enc);</div><div class='del'>-	dirname = rb_str_new(name, 3);</div><div class='del'>-	rb_str_cat(dirname, top, p - top);</div><div class='add'>+        const char *top = skiproot(name + 2, end, enc);</div><div class='add'>+        dirname = rb_str_new(name, 3);</div><div class='add'>+        rb_str_cat(dirname, top, p - top);</div><div class='ctx'>     }</div><div class='ctx'>     else</div><div class='ctx'> #endif</div><div class='ctx'>     dirname = rb_str_new(name, p - name);</div><div class='ctx'> #ifdef DOSISH_DRIVE_LETTER</div><div class='ctx'>     if (has_drive_letter(name) &amp;&amp; root == name + 2 &amp;&amp; p - name == 2)</div><div class='del'>-	rb_str_cat(dirname, ".", 1);</div><div class='add'>+        rb_str_cat(dirname, ".", 1);</div><div class='ctx'> #endif</div><div class='ctx'>     rb_enc_copy(dirname, fname);</div><div class='del'>-    OBJ_INFECT(dirname, fname);</div><div class='ctx'>     return dirname;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4448,7 +4865,7 @@ rb_file_dirname(VALUE fname)</div><div class='ctx'>  *   dotfile       top       0</div><div class='ctx'>  *   end with dot  dot       1</div><div class='ctx'>  *   .ext          dot       len of .ext</div><div class='del'>- *   .ext:stream   dot       len of .ext without :stream (NT only)</div><div class='add'>+ *   .ext:stream   dot       len of .ext without :stream (NTFS only)</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> const char *</div><div class='hunk'>@@ -4458,48 +4875,48 @@ ruby_enc_find_extname(const char *name, long *len, rb_encoding *enc)</div><div class='ctx'> </div><div class='ctx'>     p = strrdirsep(name, end, enc);	/* get the last path component */</div><div class='ctx'>     if (!p)</div><div class='del'>-	p = name;</div><div class='add'>+        p = name;</div><div class='ctx'>     else</div><div class='del'>-	do name = ++p; while (isdirsep(*p));</div><div class='add'>+        do name = ++p; while (isdirsep(*p));</div><div class='ctx'> </div><div class='ctx'>     e = 0;</div><div class='ctx'>     while (*p &amp;&amp; *p == '.') p++;</div><div class='ctx'>     while (*p) {</div><div class='del'>-	if (*p == '.' || istrailinggarbage(*p)) {</div><div class='add'>+        if (*p == '.' || istrailinggarbage(*p)) {</div><div class='ctx'> #if USE_NTFS</div><div class='del'>-	    const char *last = p++, *dot = last;</div><div class='del'>-	    while (istrailinggarbage(*p)) {</div><div class='del'>-		if (*p == '.') dot = p;</div><div class='del'>-		p++;</div><div class='del'>-	    }</div><div class='del'>-	    if (!*p || isADS(*p)) {</div><div class='del'>-		p = last;</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	    if (*last == '.' || dot &gt; last) e = dot;</div><div class='del'>-	    continue;</div><div class='add'>+            const char *last = p++, *dot = last;</div><div class='add'>+            while (istrailinggarbage(*p)) {</div><div class='add'>+                if (*p == '.') dot = p;</div><div class='add'>+                p++;</div><div class='add'>+            }</div><div class='add'>+            if (!*p || isADS(*p)) {</div><div class='add'>+                p = last;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            if (*last == '.' || dot &gt; last) e = dot;</div><div class='add'>+            continue;</div><div class='ctx'> #else</div><div class='del'>-	    e = p;	  /* get the last dot of the last component */</div><div class='add'>+            e = p;	  /* get the last dot of the last component */</div><div class='ctx'> #endif</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'> #if USE_NTFS</div><div class='del'>-	else if (isADS(*p)) {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        else if (isADS(*p)) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='del'>-	else if (isdirsep(*p))</div><div class='del'>-	    break;</div><div class='del'>-	Inc(p, end, enc);</div><div class='add'>+        else if (isdirsep(*p))</div><div class='add'>+            break;</div><div class='add'>+        Inc(p, end, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (len) {</div><div class='del'>-	/* no dot, or the only dot is first or end? */</div><div class='del'>-	if (!e || e == name)</div><div class='del'>-	    *len = 0;</div><div class='del'>-	else if (e+1 == p)</div><div class='del'>-	    *len = 1;</div><div class='del'>-	else</div><div class='del'>-	    *len = p - e;</div><div class='add'>+        /* no dot, or the only dot is first or end? */</div><div class='add'>+        if (!e || e == name)</div><div class='add'>+            *len = 0;</div><div class='add'>+        else if (e+1 == p)</div><div class='add'>+            *len = 1;</div><div class='add'>+        else</div><div class='add'>+            *len = p - e;</div><div class='ctx'>     }</div><div class='ctx'>     return e;</div><div class='ctx'> }</div><div class='hunk'>@@ -4517,10 +4934,13 @@ ruby_enc_find_extname(const char *name, long *len, rb_encoding *enc)</div><div class='ctx'>  *  An empty string will also be returned when the period is the last character</div><div class='ctx'>  *  in +path+.</div><div class='ctx'>  *</div><div class='add'>+ *  On Windows, trailing dots are truncated.</div><div class='add'>+ *</div><div class='ctx'>  *     File.extname("test.rb")         #=&gt; ".rb"</div><div class='ctx'>  *     File.extname("a/b/d/test.rb")   #=&gt; ".rb"</div><div class='ctx'>  *     File.extname(".a/b/d/test.rb")  #=&gt; ".rb"</div><div class='del'>- *     File.extname("foo.")            #=&gt; ""</div><div class='add'>+ *     File.extname("foo.")            #=&gt; "" on Windows</div><div class='add'>+ *     File.extname("foo.")            #=&gt; "." on non-Windows</div><div class='ctx'>  *     File.extname("test")            #=&gt; ""</div><div class='ctx'>  *     File.extname(".profile")        #=&gt; ""</div><div class='ctx'>  *     File.extname(".profile.sh")     #=&gt; ".sh"</div><div class='hunk'>@@ -4538,10 +4958,9 @@ rb_file_s_extname(VALUE klass, VALUE fname)</div><div class='ctx'>     name = StringValueCStr(fname);</div><div class='ctx'>     len = RSTRING_LEN(fname);</div><div class='ctx'>     e = ruby_enc_find_extname(name, &amp;len, rb_enc_get(fname));</div><div class='del'>-    if (len &lt;= 1)</div><div class='del'>-	return rb_str_new(0, 0);</div><div class='add'>+    if (len &lt; 1)</div><div class='add'>+        return rb_str_new(0, 0);</div><div class='ctx'>     extname = rb_str_subseq(fname, e - name, len); /* keep the dot, too! */</div><div class='del'>-    OBJ_INFECT(extname, fname);</div><div class='ctx'>     return extname;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4567,8 +4986,8 @@ rb_file_s_path(VALUE klass, VALUE fname)</div><div class='ctx'>  *     File.split(file_name)   -&gt; array</div><div class='ctx'>  *</div><div class='ctx'>  *  Splits the given string into a directory and a file component and</div><div class='del'>- *  returns them in a two-element array. See also</div><div class='del'>- *  &lt;code&gt;File::dirname&lt;/code&gt; and &lt;code&gt;File::basename&lt;/code&gt;.</div><div class='add'>+ *  returns them in a two-element array. See also File::dirname and</div><div class='add'>+ *  File::basename.</div><div class='ctx'>  *</div><div class='ctx'>  *     File.split("/home/gumby/.profile")   #=&gt; ["/home/gumby", ".profile"]</div><div class='ctx'>  */</div><div class='hunk'>@@ -4577,11 +4996,9 @@ static VALUE</div><div class='ctx'> rb_file_s_split(VALUE klass, VALUE path)</div><div class='ctx'> {</div><div class='ctx'>     FilePathStringValue(path);		/* get rid of converting twice */</div><div class='del'>-    return rb_assoc_new(rb_file_dirname(path), rb_file_s_basename(1,&amp;path));</div><div class='add'>+    return rb_assoc_new(rb_file_dirname(path), rb_file_s_basename(1,&amp;path,Qundef));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE rb_file_join(VALUE ary);</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> file_inspect_join(VALUE ary, VALUE arg, int recur)</div><div class='ctx'> {</div><div class='hunk'>@@ -4602,54 +5019,53 @@ rb_file_join(VALUE ary)</div><div class='ctx'> </div><div class='ctx'>     len = 1;</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	tmp = RARRAY_AREF(ary, i);</div><div class='del'>-	if (RB_TYPE_P(tmp, T_STRING)) {</div><div class='del'>-	    check_path_encoding(tmp);</div><div class='del'>-	    len += RSTRING_LEN(tmp);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    len += 10;</div><div class='del'>-	}</div><div class='add'>+        tmp = RARRAY_AREF(ary, i);</div><div class='add'>+        if (RB_TYPE_P(tmp, T_STRING)) {</div><div class='add'>+            check_path_encoding(tmp);</div><div class='add'>+            len += RSTRING_LEN(tmp);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            len += 10;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     len += RARRAY_LEN(ary) - 1;</div><div class='ctx'>     result = rb_str_buf_new(len);</div><div class='ctx'>     RBASIC_CLEAR_CLASS(result);</div><div class='del'>-    OBJ_INFECT(result, ary);</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	tmp = RARRAY_AREF(ary, i);</div><div class='del'>-	switch (OBJ_BUILTIN_TYPE(tmp)) {</div><div class='del'>-	  case T_STRING:</div><div class='del'>-	    if (!checked) check_path_encoding(tmp);</div><div class='del'>-	    StringValueCStr(tmp);</div><div class='del'>-	    break;</div><div class='del'>-	  case T_ARRAY:</div><div class='del'>-	    if (ary == tmp) {</div><div class='del'>-		rb_raise(rb_eArgError, "recursive array");</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		tmp = rb_exec_recursive(file_inspect_join, ary, tmp);</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    FilePathStringValue(tmp);</div><div class='del'>-	    checked = FALSE;</div><div class='del'>-	}</div><div class='del'>-	RSTRING_GETMEM(result, name, len);</div><div class='del'>-	if (i == 0) {</div><div class='del'>-	    rb_enc_copy(result, tmp);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    tail = chompdirsep(name, name + len, rb_enc_get(result));</div><div class='del'>-	    if (RSTRING_PTR(tmp) &amp;&amp; isdirsep(RSTRING_PTR(tmp)[0])) {</div><div class='del'>-		rb_str_set_len(result, tail - name);</div><div class='del'>-	    }</div><div class='del'>-	    else if (!*tail) {</div><div class='del'>-		rb_str_cat(result, "/", 1);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	enc = rb_enc_check(result, tmp);</div><div class='del'>-	rb_str_buf_append(result, tmp);</div><div class='del'>-	rb_enc_associate(result, enc);</div><div class='add'>+        tmp = RARRAY_AREF(ary, i);</div><div class='add'>+        switch (OBJ_BUILTIN_TYPE(tmp)) {</div><div class='add'>+          case T_STRING:</div><div class='add'>+            if (!checked) check_path_encoding(tmp);</div><div class='add'>+            StringValueCStr(tmp);</div><div class='add'>+            break;</div><div class='add'>+          case T_ARRAY:</div><div class='add'>+            if (ary == tmp) {</div><div class='add'>+                rb_raise(rb_eArgError, "recursive array");</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                tmp = rb_exec_recursive(file_inspect_join, ary, tmp);</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            FilePathStringValue(tmp);</div><div class='add'>+            checked = FALSE;</div><div class='add'>+        }</div><div class='add'>+        RSTRING_GETMEM(result, name, len);</div><div class='add'>+        if (i == 0) {</div><div class='add'>+            rb_enc_copy(result, tmp);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            tail = chompdirsep(name, name + len, rb_enc_get(result));</div><div class='add'>+            if (RSTRING_PTR(tmp) &amp;&amp; isdirsep(RSTRING_PTR(tmp)[0])) {</div><div class='add'>+                rb_str_set_len(result, tail - name);</div><div class='add'>+            }</div><div class='add'>+            else if (!*tail) {</div><div class='add'>+                rb_str_cat(result, "/", 1);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        enc = fs_enc_check(result, tmp);</div><div class='add'>+        rb_str_buf_append(result, tmp);</div><div class='add'>+        rb_enc_associate(result, enc);</div><div class='ctx'>     }</div><div class='ctx'>     RBASIC_SET_CLASS_RAW(result, rb_cString);</div><div class='ctx'> </div><div class='hunk'>@@ -4673,41 +5089,17 @@ rb_file_s_join(VALUE klass, VALUE args)</div><div class='ctx'>     return rb_file_join(args);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_TRUNCATE) || defined(HAVE_CHSIZE)</div><div class='add'>+#if defined(HAVE_TRUNCATE)</div><div class='ctx'> struct truncate_arg {</div><div class='ctx'>     const char *path;</div><div class='del'>-#if defined(HAVE_TRUNCATE)</div><div class='del'>-#define NUM2POS(n) NUM2OFFT(n)</div><div class='del'>-    off_t pos;</div><div class='del'>-#else</div><div class='del'>-#define NUM2POS(n) NUM2LONG(n)</div><div class='del'>-    long pos;</div><div class='del'>-#endif</div><div class='add'>+    rb_off_t pos;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static void *</div><div class='ctx'> nogvl_truncate(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct truncate_arg *ta = ptr;</div><div class='del'>-#ifdef HAVE_TRUNCATE</div><div class='ctx'>     return (void *)(VALUE)truncate(ta-&gt;path, ta-&gt;pos);</div><div class='del'>-#else /* defined(HAVE_CHSIZE) */</div><div class='del'>-    {</div><div class='del'>-	int tmpfd = rb_cloexec_open(ta-&gt;path, 0, 0);</div><div class='del'>-</div><div class='del'>-	if (tmpfd &lt; 0)</div><div class='del'>-	    return (void *)-1;</div><div class='del'>-	rb_update_max_fd(tmpfd);</div><div class='del'>-	if (chsize(tmpfd, ta-&gt;pos) &lt; 0) {</div><div class='del'>-	    int e = errno;</div><div class='del'>-	    close(tmpfd);</div><div class='del'>-	    errno = e;</div><div class='del'>-	    return (void *)-1;</div><div class='del'>-	}</div><div class='del'>-	close(tmpfd);</div><div class='del'>-	return 0;</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -4731,32 +5123,25 @@ rb_file_s_truncate(VALUE klass, VALUE path, VALUE len)</div><div class='ctx'>     struct truncate_arg ta;</div><div class='ctx'>     int r;</div><div class='ctx'> </div><div class='del'>-    ta.pos = NUM2POS(len);</div><div class='add'>+    ta.pos = NUM2OFFT(len);</div><div class='ctx'>     FilePathValue(path);</div><div class='ctx'>     path = rb_str_encode_ospath(path);</div><div class='ctx'>     ta.path = StringValueCStr(path);</div><div class='ctx'> </div><div class='ctx'>     r = (int)(VALUE)rb_thread_call_without_gvl(nogvl_truncate, &amp;ta,</div><div class='del'>-						RUBY_UBF_IO, NULL);</div><div class='add'>+                                                RUBY_UBF_IO, NULL);</div><div class='ctx'>     if (r &lt; 0)</div><div class='del'>-	rb_sys_fail_path(path);</div><div class='add'>+        rb_sys_fail_path(path);</div><div class='ctx'>     return INT2FIX(0);</div><div class='del'>-#undef NUM2POS</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='ctx'> #define rb_file_s_truncate rb_f_notimplement</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_FTRUNCATE) || defined(HAVE_CHSIZE)</div><div class='add'>+#if defined(HAVE_FTRUNCATE)</div><div class='ctx'> struct ftruncate_arg {</div><div class='ctx'>     int fd;</div><div class='del'>-#if defined(HAVE_FTRUNCATE)</div><div class='del'>-#define NUM2POS(n) NUM2OFFT(n)</div><div class='del'>-    off_t pos;</div><div class='del'>-#else</div><div class='del'>-#define NUM2POS(n) NUM2LONG(n)</div><div class='del'>-    long pos;</div><div class='del'>-#endif</div><div class='add'>+    rb_off_t pos;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4764,11 +5149,7 @@ nogvl_ftruncate(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct ftruncate_arg *fa = ptr;</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_FTRUNCATE</div><div class='ctx'>     return (VALUE)ftruncate(fa-&gt;fd, fa-&gt;pos);</div><div class='del'>-#else /* defined(HAVE_CHSIZE) */</div><div class='del'>-    return (VALUE)chsize(fa-&gt;fd, fa-&gt;pos);</div><div class='del'>-#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -4791,18 +5172,17 @@ rb_file_truncate(VALUE obj, VALUE len)</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     struct ftruncate_arg fa;</div><div class='ctx'> </div><div class='del'>-    fa.pos = NUM2POS(len);</div><div class='add'>+    fa.pos = NUM2OFFT(len);</div><div class='ctx'>     GetOpenFile(obj, fptr);</div><div class='ctx'>     if (!(fptr-&gt;mode &amp; FMODE_WRITABLE)) {</div><div class='del'>-	rb_raise(rb_eIOError, "not opened for writing");</div><div class='add'>+        rb_raise(rb_eIOError, "not opened for writing");</div><div class='ctx'>     }</div><div class='ctx'>     rb_io_flush_raw(obj, 0);</div><div class='ctx'>     fa.fd = fptr-&gt;fd;</div><div class='ctx'>     if ((int)rb_thread_io_blocking_region(nogvl_ftruncate, &amp;fa, fa.fd) &lt; 0) {</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'>     return INT2FIX(0);</div><div class='del'>-#undef NUM2POS</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='ctx'> #define rb_file_truncate rb_f_notimplement</div><div class='hunk'>@@ -4835,8 +5215,8 @@ rb_thread_flock(void *data)</div><div class='ctx'> </div><div class='ctx'> #ifdef __CYGWIN__</div><div class='ctx'>     if (GetLastError() == ERROR_NOT_LOCKED) {</div><div class='del'>-	ret = 0;</div><div class='del'>-	errno = old_errno;</div><div class='add'>+        ret = 0;</div><div class='add'>+        errno = old_errno;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return (VALUE)ret;</div><div class='hunk'>@@ -4848,9 +5228,9 @@ rb_thread_flock(void *data)</div><div class='ctx'>  *</div><div class='ctx'>  *  Locks or unlocks a file according to &lt;i&gt;locking_constant&lt;/i&gt; (a</div><div class='ctx'>  *  logical &lt;em&gt;or&lt;/em&gt; of the values in the table below).</div><div class='del'>- *  Returns &lt;code&gt;false&lt;/code&gt; if &lt;code&gt;File::LOCK_NB&lt;/code&gt; is</div><div class='del'>- *  specified and the operation would otherwise have blocked. Not</div><div class='del'>- *  available on all platforms.</div><div class='add'>+ *  Returns &lt;code&gt;false&lt;/code&gt; if File::LOCK_NB is specified and the</div><div class='add'>+ *  operation would otherwise have blocked. Not available on all</div><div class='add'>+ *  platforms.</div><div class='ctx'>  *</div><div class='ctx'>  *  Locking constants (in class File):</div><div class='ctx'>  *</div><div class='hunk'>@@ -4898,33 +5278,33 @@ rb_file_flock(VALUE obj, VALUE operation)</div><div class='ctx'>     op[0] = fptr-&gt;fd;</div><div class='ctx'> </div><div class='ctx'>     if (fptr-&gt;mode &amp; FMODE_WRITABLE) {</div><div class='del'>-	rb_io_flush_raw(obj, 0);</div><div class='add'>+        rb_io_flush_raw(obj, 0);</div><div class='ctx'>     }</div><div class='ctx'>     while ((int)rb_thread_io_blocking_region(rb_thread_flock, op, fptr-&gt;fd) &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	switch (e) {</div><div class='del'>-	  case EAGAIN:</div><div class='del'>-	  case EACCES:</div><div class='add'>+        int e = errno;</div><div class='add'>+        switch (e) {</div><div class='add'>+          case EAGAIN:</div><div class='add'>+          case EACCES:</div><div class='ctx'> #if defined(EWOULDBLOCK) &amp;&amp; EWOULDBLOCK != EAGAIN</div><div class='del'>-	  case EWOULDBLOCK:</div><div class='add'>+          case EWOULDBLOCK:</div><div class='ctx'> #endif</div><div class='del'>-	    if (op1 &amp; LOCK_NB) return Qfalse;</div><div class='add'>+            if (op1 &amp; LOCK_NB) return Qfalse;</div><div class='ctx'> </div><div class='del'>-	    time.tv_sec = 0;</div><div class='del'>-	    time.tv_usec = 100 * 1000;	/* 0.1 sec */</div><div class='del'>-	    rb_thread_wait_for(time);</div><div class='del'>-	    rb_io_check_closed(fptr);</div><div class='del'>-	    continue;</div><div class='add'>+            time.tv_sec = 0;</div><div class='add'>+            time.tv_usec = 100 * 1000;	/* 0.1 sec */</div><div class='add'>+            rb_thread_wait_for(time);</div><div class='add'>+            rb_io_check_closed(fptr);</div><div class='add'>+            continue;</div><div class='ctx'> </div><div class='del'>-	  case EINTR:</div><div class='add'>+          case EINTR:</div><div class='ctx'> #if defined(ERESTART)</div><div class='del'>-	  case ERESTART:</div><div class='add'>+          case ERESTART:</div><div class='ctx'> #endif</div><div class='del'>-	    break;</div><div class='add'>+            break;</div><div class='ctx'> </div><div class='del'>-	  default:</div><div class='del'>-	    rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='del'>-	}</div><div class='add'>+          default:</div><div class='add'>+            rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='hunk'>@@ -4937,9 +5317,9 @@ test_check(int n, int argc, VALUE *argv)</div><div class='ctx'>     n+=1;</div><div class='ctx'>     rb_check_arity(argc, n, n);</div><div class='ctx'>     for (i=1; i&lt;n; i++) {</div><div class='del'>-	if (!RB_TYPE_P(argv[i], T_FILE)) {</div><div class='del'>-	    FilePathValue(argv[i]);</div><div class='del'>-	}</div><div class='add'>+        if (!RB_TYPE_P(argv[i], T_FILE)) {</div><div class='add'>+            FilePathValue(argv[i]);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4962,8 +5342,7 @@ test_check(int n, int argc, VALUE *argv)</div><div class='ctx'>  *    "d"  | boolean | True if file1 exists and is a directory</div><div class='ctx'>  *    "e"  | boolean | True if file1 exists</div><div class='ctx'>  *    "f"  | boolean | True if file1 exists and is a regular file</div><div class='del'>- *    "g"  | boolean | True if file1 has the \CF{setgid} bit</div><div class='del'>- *         |         | set (false under NT)</div><div class='add'>+ *    "g"  | boolean | True if file1 has the setgid bit set</div><div class='ctx'>  *    "G"  | boolean | True if file1 exists and has a group</div><div class='ctx'>  *         |         | ownership equal to the caller's group</div><div class='ctx'>  *    "k"  | boolean | True if file1 exists and has the sticky bit set</div><div class='hunk'>@@ -5004,162 +5383,161 @@ test_check(int n, int argc, VALUE *argv)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_f_test(int argc, VALUE *argv)</div><div class='add'>+rb_f_test(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     int cmd;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) rb_check_arity(argc, 2, 3);</div><div class='ctx'>     cmd = NUM2CHR(argv[0]);</div><div class='ctx'>     if (cmd == 0) {</div><div class='del'>-      unknown:</div><div class='del'>-	/* unknown command */</div><div class='del'>-	if (ISPRINT(cmd)) {</div><div class='del'>-	    rb_raise(rb_eArgError, "unknown command '%s%c'", cmd == '\'' || cmd == '\\' ? "\\" : "", cmd);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_raise(rb_eArgError, "unknown command \"\\x%02X\"", cmd);</div><div class='del'>-	}</div><div class='add'>+        goto unknown;</div><div class='ctx'>     }</div><div class='ctx'>     if (strchr("bcdefgGkloOprRsSuwWxXz", cmd)) {</div><div class='del'>-	CHECK(1);</div><div class='del'>-	switch (cmd) {</div><div class='del'>-	  case 'b':</div><div class='del'>-	    return rb_file_blockdev_p(0, argv[1]);</div><div class='add'>+        CHECK(1);</div><div class='add'>+        switch (cmd) {</div><div class='add'>+          case 'b':</div><div class='add'>+            return rb_file_blockdev_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'c':</div><div class='del'>-	    return rb_file_chardev_p(0, argv[1]);</div><div class='add'>+          case 'c':</div><div class='add'>+            return rb_file_chardev_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'd':</div><div class='del'>-	    return rb_file_directory_p(0, argv[1]);</div><div class='add'>+          case 'd':</div><div class='add'>+            return rb_file_directory_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'e':</div><div class='del'>-	    return rb_file_exist_p(0, argv[1]);</div><div class='add'>+          case 'e':</div><div class='add'>+            return rb_file_exist_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'f':</div><div class='del'>-	    return rb_file_file_p(0, argv[1]);</div><div class='add'>+          case 'f':</div><div class='add'>+            return rb_file_file_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'g':</div><div class='del'>-	    return rb_file_sgid_p(0, argv[1]);</div><div class='add'>+          case 'g':</div><div class='add'>+            return rb_file_sgid_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'G':</div><div class='del'>-	    return rb_file_grpowned_p(0, argv[1]);</div><div class='add'>+          case 'G':</div><div class='add'>+            return rb_file_grpowned_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'k':</div><div class='del'>-	    return rb_file_sticky_p(0, argv[1]);</div><div class='add'>+          case 'k':</div><div class='add'>+            return rb_file_sticky_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'l':</div><div class='del'>-	    return rb_file_symlink_p(0, argv[1]);</div><div class='add'>+          case 'l':</div><div class='add'>+            return rb_file_symlink_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'o':</div><div class='del'>-	    return rb_file_owned_p(0, argv[1]);</div><div class='add'>+          case 'o':</div><div class='add'>+            return rb_file_owned_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'O':</div><div class='del'>-	    return rb_file_rowned_p(0, argv[1]);</div><div class='add'>+          case 'O':</div><div class='add'>+            return rb_file_rowned_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'p':</div><div class='del'>-	    return rb_file_pipe_p(0, argv[1]);</div><div class='add'>+          case 'p':</div><div class='add'>+            return rb_file_pipe_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'r':</div><div class='del'>-	    return rb_file_readable_p(0, argv[1]);</div><div class='add'>+          case 'r':</div><div class='add'>+            return rb_file_readable_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'R':</div><div class='del'>-	    return rb_file_readable_real_p(0, argv[1]);</div><div class='add'>+          case 'R':</div><div class='add'>+            return rb_file_readable_real_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 's':</div><div class='del'>-	    return rb_file_size_p(0, argv[1]);</div><div class='add'>+          case 's':</div><div class='add'>+            return rb_file_size_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'S':</div><div class='del'>-	    return rb_file_socket_p(0, argv[1]);</div><div class='add'>+          case 'S':</div><div class='add'>+            return rb_file_socket_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'u':</div><div class='del'>-	    return rb_file_suid_p(0, argv[1]);</div><div class='add'>+          case 'u':</div><div class='add'>+            return rb_file_suid_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'w':</div><div class='del'>-	    return rb_file_writable_p(0, argv[1]);</div><div class='add'>+          case 'w':</div><div class='add'>+            return rb_file_writable_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'W':</div><div class='del'>-	    return rb_file_writable_real_p(0, argv[1]);</div><div class='add'>+          case 'W':</div><div class='add'>+            return rb_file_writable_real_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'x':</div><div class='del'>-	    return rb_file_executable_p(0, argv[1]);</div><div class='add'>+          case 'x':</div><div class='add'>+            return rb_file_executable_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'X':</div><div class='del'>-	    return rb_file_executable_real_p(0, argv[1]);</div><div class='add'>+          case 'X':</div><div class='add'>+            return rb_file_executable_real_p(0, argv[1]);</div><div class='ctx'> </div><div class='del'>-	  case 'z':</div><div class='del'>-	    return rb_file_zero_p(0, argv[1]);</div><div class='del'>-	}</div><div class='add'>+          case 'z':</div><div class='add'>+            return rb_file_zero_p(0, argv[1]);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (strchr("MAC", cmd)) {</div><div class='del'>-	struct stat st;</div><div class='del'>-	VALUE fname = argv[1];</div><div class='del'>-</div><div class='del'>-	CHECK(1);</div><div class='del'>-	if (rb_stat(fname, &amp;st) == -1) {</div><div class='del'>-	    int e = errno;</div><div class='del'>-	    FilePathValue(fname);</div><div class='del'>-	    rb_syserr_fail_path(e, fname);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	switch (cmd) {</div><div class='del'>-	  case 'A':</div><div class='del'>-	    return stat_atime(&amp;st);</div><div class='del'>-	  case 'M':</div><div class='del'>-	    return stat_mtime(&amp;st);</div><div class='del'>-	  case 'C':</div><div class='del'>-	    return stat_ctime(&amp;st);</div><div class='del'>-	}</div><div class='add'>+        struct stat st;</div><div class='add'>+        VALUE fname = argv[1];</div><div class='add'>+</div><div class='add'>+        CHECK(1);</div><div class='add'>+        if (rb_stat(fname, &amp;st) == -1) {</div><div class='add'>+            int e = errno;</div><div class='add'>+            FilePathValue(fname);</div><div class='add'>+            rb_syserr_fail_path(e, fname);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        switch (cmd) {</div><div class='add'>+          case 'A':</div><div class='add'>+            return stat_atime(&amp;st);</div><div class='add'>+          case 'M':</div><div class='add'>+            return stat_mtime(&amp;st);</div><div class='add'>+          case 'C':</div><div class='add'>+            return stat_ctime(&amp;st);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (cmd == '-') {</div><div class='del'>-	CHECK(2);</div><div class='del'>-	return rb_file_identical_p(0, argv[1], argv[2]);</div><div class='add'>+        CHECK(2);</div><div class='add'>+        return rb_file_identical_p(0, argv[1], argv[2]);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (strchr("=&lt;&gt;", cmd)) {</div><div class='del'>-	struct stat st1, st2;</div><div class='add'>+        struct stat st1, st2;</div><div class='ctx'>         struct timespec t1, t2;</div><div class='ctx'> </div><div class='del'>-	CHECK(2);</div><div class='del'>-	if (rb_stat(argv[1], &amp;st1) &lt; 0) return Qfalse;</div><div class='del'>-	if (rb_stat(argv[2], &amp;st2) &lt; 0) return Qfalse;</div><div class='add'>+        CHECK(2);</div><div class='add'>+        if (rb_stat(argv[1], &amp;st1) &lt; 0) return Qfalse;</div><div class='add'>+        if (rb_stat(argv[2], &amp;st2) &lt; 0) return Qfalse;</div><div class='ctx'> </div><div class='ctx'>         t1 = stat_mtimespec(&amp;st1);</div><div class='ctx'>         t2 = stat_mtimespec(&amp;st2);</div><div class='ctx'> </div><div class='del'>-	switch (cmd) {</div><div class='del'>-	  case '=':</div><div class='del'>-	    if (t1.tv_sec == t2.tv_sec &amp;&amp; t1.tv_nsec == t2.tv_nsec) return Qtrue;</div><div class='del'>-	    return Qfalse;</div><div class='add'>+        switch (cmd) {</div><div class='add'>+          case '=':</div><div class='add'>+            if (t1.tv_sec == t2.tv_sec &amp;&amp; t1.tv_nsec == t2.tv_nsec) return Qtrue;</div><div class='add'>+            return Qfalse;</div><div class='ctx'> </div><div class='del'>-	  case '&gt;':</div><div class='del'>-	    if (t1.tv_sec &gt; t2.tv_sec) return Qtrue;</div><div class='del'>-	    if (t1.tv_sec == t2.tv_sec &amp;&amp; t1.tv_nsec &gt; t2.tv_nsec) return Qtrue;</div><div class='del'>-	    return Qfalse;</div><div class='add'>+          case '&gt;':</div><div class='add'>+            if (t1.tv_sec &gt; t2.tv_sec) return Qtrue;</div><div class='add'>+            if (t1.tv_sec == t2.tv_sec &amp;&amp; t1.tv_nsec &gt; t2.tv_nsec) return Qtrue;</div><div class='add'>+            return Qfalse;</div><div class='ctx'> </div><div class='del'>-	  case '&lt;':</div><div class='del'>-	    if (t1.tv_sec &lt; t2.tv_sec) return Qtrue;</div><div class='del'>-	    if (t1.tv_sec == t2.tv_sec &amp;&amp; t1.tv_nsec &lt; t2.tv_nsec) return Qtrue;</div><div class='del'>-	    return Qfalse;</div><div class='del'>-	}</div><div class='add'>+          case '&lt;':</div><div class='add'>+            if (t1.tv_sec &lt; t2.tv_sec) return Qtrue;</div><div class='add'>+            if (t1.tv_sec == t2.tv_sec &amp;&amp; t1.tv_nsec &lt; t2.tv_nsec) return Qtrue;</div><div class='add'>+            return Qfalse;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+  unknown:</div><div class='add'>+    /* unknown command */</div><div class='add'>+    if (ISPRINT(cmd)) {</div><div class='add'>+        rb_raise(rb_eArgError, "unknown command '%s%c'", cmd == '\'' || cmd == '\\' ? "\\" : "", cmd);</div><div class='ctx'>     }</div><div class='del'>-    goto unknown;</div><div class='add'>+    else {</div><div class='add'>+        rb_raise(rb_eArgError, "unknown command \"\\x%02X\"", cmd);</div><div class='add'>+    }</div><div class='add'>+    UNREACHABLE_RETURN(Qundef);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  Document-class: File::Stat</div><div class='ctx'>  *</div><div class='del'>- *  Objects of class &lt;code&gt;File::Stat&lt;/code&gt; encapsulate common status</div><div class='del'>- *  information for &lt;code&gt;File&lt;/code&gt; objects. The information is</div><div class='del'>- *  recorded at the moment the &lt;code&gt;File::Stat&lt;/code&gt; object is</div><div class='del'>- *  created; changes made to the file after that point will not be</div><div class='del'>- *  reflected. &lt;code&gt;File::Stat&lt;/code&gt; objects are returned by</div><div class='del'>- *  &lt;code&gt;IO#stat&lt;/code&gt;, &lt;code&gt;File::stat&lt;/code&gt;,</div><div class='del'>- *  &lt;code&gt;File#lstat&lt;/code&gt;, and &lt;code&gt;File::lstat&lt;/code&gt;. Many of these</div><div class='add'>+ *  Objects of class File::Stat encapsulate common status information</div><div class='add'>+ *  for File objects. The information is recorded at the moment the</div><div class='add'>+ *  File::Stat object is created; changes made to the file after that</div><div class='add'>+ *  point will not be reflected. File::Stat objects are returned by</div><div class='add'>+ *  IO#stat, File::stat, File#lstat, and File::lstat. Many of these</div><div class='ctx'>  *  methods return platform-specific values, and not all values are</div><div class='del'>- *  meaningful on all systems. See also &lt;code&gt;Kernel#test&lt;/code&gt;.</div><div class='add'>+ *  meaningful on all systems. See also Kernel#test.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -5185,11 +5563,12 @@ rb_stat_init(VALUE obj, VALUE fname)</div><div class='ctx'>     FilePathValue(fname);</div><div class='ctx'>     fname = rb_str_encode_ospath(fname);</div><div class='ctx'>     if (STAT(StringValueCStr(fname), &amp;st) == -1) {</div><div class='del'>-	rb_sys_fail_path(fname);</div><div class='add'>+        rb_sys_fail_path(fname);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     if (DATA_PTR(obj)) {</div><div class='del'>-	xfree(DATA_PTR(obj));</div><div class='del'>-	DATA_PTR(obj) = NULL;</div><div class='add'>+        xfree(DATA_PTR(obj));</div><div class='add'>+        DATA_PTR(obj) = NULL;</div><div class='ctx'>     }</div><div class='ctx'>     nst = ALLOC(struct stat);</div><div class='ctx'>     *nst = st;</div><div class='hunk'>@@ -5206,13 +5585,13 @@ rb_stat_init_copy(VALUE copy, VALUE orig)</div><div class='ctx'> </div><div class='ctx'>     if (!OBJ_INIT_COPY(copy, orig)) return copy;</div><div class='ctx'>     if (DATA_PTR(copy)) {</div><div class='del'>-	xfree(DATA_PTR(copy));</div><div class='del'>-	DATA_PTR(copy) = 0;</div><div class='add'>+        xfree(DATA_PTR(copy));</div><div class='add'>+        DATA_PTR(copy) = 0;</div><div class='ctx'>     }</div><div class='ctx'>     if (DATA_PTR(orig)) {</div><div class='del'>-	nst = ALLOC(struct stat);</div><div class='del'>-	*nst = *(struct stat*)DATA_PTR(orig);</div><div class='del'>-	DATA_PTR(copy) = nst;</div><div class='add'>+        nst = ALLOC(struct stat);</div><div class='add'>+        *nst = *(struct stat*)DATA_PTR(orig);</div><div class='add'>+        DATA_PTR(copy) = nst;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return copy;</div><div class='hunk'>@@ -5280,10 +5659,9 @@ rb_stat_p(VALUE obj)</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;stat&lt;/i&gt; is a symbolic link,</div><div class='ctx'>  *  &lt;code&gt;false&lt;/code&gt; if it isn't or if the operating system doesn't</div><div class='del'>- *  support this feature. As &lt;code&gt;File::stat&lt;/code&gt; automatically</div><div class='del'>- *  follows symbolic links, &lt;code&gt;symlink?&lt;/code&gt; will always be</div><div class='del'>- *  &lt;code&gt;false&lt;/code&gt; for an object returned by</div><div class='del'>- *  &lt;code&gt;File::stat&lt;/code&gt;.</div><div class='add'>+ *  support this feature. As File::stat automatically follows symbolic</div><div class='add'>+ *  links, #symlink? will always be &lt;code&gt;false&lt;/code&gt; for an object</div><div class='add'>+ *  returned by File::stat.</div><div class='ctx'>  *</div><div class='ctx'>  *     File.symlink("testfile", "alink")   #=&gt; 0</div><div class='ctx'>  *     File.stat("alink").symlink?         #=&gt; false</div><div class='hunk'>@@ -5396,7 +5774,7 @@ rb_stat_rowned(VALUE obj)</div><div class='ctx'>  *     stat.grpowned?   -&gt; true or false</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns true if the effective group id of the process is the same as</div><div class='del'>- *  the group id of &lt;i&gt;stat&lt;/i&gt;. On Windows NT, returns &lt;code&gt;false&lt;/code&gt;.</div><div class='add'>+ *  the group id of &lt;i&gt;stat&lt;/i&gt;. On Windows, returns &lt;code&gt;false&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='ctx'>  *     File.stat("testfile").grpowned?      #=&gt; true</div><div class='ctx'>  *     File.stat("/etc/passwd").grpowned?   #=&gt; false</div><div class='hunk'>@@ -5433,11 +5811,11 @@ rb_stat_r(VALUE obj)</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IRUSR</div><div class='ctx'>     if (rb_stat_owned(obj))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IRUSR ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IRUSR);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IRGRP</div><div class='ctx'>     if (rb_stat_grpowned(obj))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IRGRP ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IRGRP);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IROTH</div><div class='ctx'>     if (!(st-&gt;st_mode &amp; S_IROTH)) return Qfalse;</div><div class='hunk'>@@ -5466,11 +5844,11 @@ rb_stat_R(VALUE obj)</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IRUSR</div><div class='ctx'>     if (rb_stat_rowned(obj))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IRUSR ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IRUSR);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IRGRP</div><div class='ctx'>     if (rb_group_member(get_stat(obj)-&gt;st_gid))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IRGRP ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IRGRP);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IROTH</div><div class='ctx'>     if (!(st-&gt;st_mode &amp; S_IROTH)) return Qfalse;</div><div class='hunk'>@@ -5497,10 +5875,10 @@ rb_stat_wr(VALUE obj)</div><div class='ctx'> #ifdef S_IROTH</div><div class='ctx'>     struct stat *st = get_stat(obj);</div><div class='ctx'>     if ((st-&gt;st_mode &amp; (S_IROTH)) == S_IROTH) {</div><div class='del'>-	return UINT2NUM(st-&gt;st_mode &amp; (S_IRUGO|S_IWUGO|S_IXUGO));</div><div class='add'>+        return UINT2NUM(st-&gt;st_mode &amp; (S_IRUGO|S_IWUGO|S_IXUGO));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='hunk'>@@ -5526,11 +5904,11 @@ rb_stat_w(VALUE obj)</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IWUSR</div><div class='ctx'>     if (rb_stat_owned(obj))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IWUSR ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IWUSR);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IWGRP</div><div class='ctx'>     if (rb_stat_grpowned(obj))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IWGRP ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IWGRP);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IWOTH</div><div class='ctx'>     if (!(st-&gt;st_mode &amp; S_IWOTH)) return Qfalse;</div><div class='hunk'>@@ -5559,11 +5937,11 @@ rb_stat_W(VALUE obj)</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IWUSR</div><div class='ctx'>     if (rb_stat_rowned(obj))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IWUSR ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IWUSR);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IWGRP</div><div class='ctx'>     if (rb_group_member(get_stat(obj)-&gt;st_gid))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IWGRP ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IWGRP);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IWOTH</div><div class='ctx'>     if (!(st-&gt;st_mode &amp; S_IWOTH)) return Qfalse;</div><div class='hunk'>@@ -5590,10 +5968,10 @@ rb_stat_ww(VALUE obj)</div><div class='ctx'> #ifdef S_IROTH</div><div class='ctx'>     struct stat *st = get_stat(obj);</div><div class='ctx'>     if ((st-&gt;st_mode &amp; (S_IWOTH)) == S_IWOTH) {</div><div class='del'>-	return UINT2NUM(st-&gt;st_mode &amp; (S_IRUGO|S_IWUGO|S_IXUGO));</div><div class='add'>+        return UINT2NUM(st-&gt;st_mode &amp; (S_IRUGO|S_IWUGO|S_IXUGO));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='hunk'>@@ -5618,16 +5996,16 @@ rb_stat_x(VALUE obj)</div><div class='ctx'> </div><div class='ctx'> #ifdef USE_GETEUID</div><div class='ctx'>     if (geteuid() == 0) {</div><div class='del'>-	return st-&gt;st_mode &amp; S_IXUGO ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IXUGO);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IXUSR</div><div class='ctx'>     if (rb_stat_owned(obj))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IXUSR ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IXUSR);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IXGRP</div><div class='ctx'>     if (rb_stat_grpowned(obj))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IXGRP ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IXGRP);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IXOTH</div><div class='ctx'>     if (!(st-&gt;st_mode &amp; S_IXOTH)) return Qfalse;</div><div class='hunk'>@@ -5650,16 +6028,16 @@ rb_stat_X(VALUE obj)</div><div class='ctx'> </div><div class='ctx'> #ifdef USE_GETEUID</div><div class='ctx'>     if (getuid() == 0) {</div><div class='del'>-	return st-&gt;st_mode &amp; S_IXUGO ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IXUGO);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IXUSR</div><div class='ctx'>     if (rb_stat_rowned(obj))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IXUSR ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IXUSR);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IXGRP</div><div class='ctx'>     if (rb_group_member(get_stat(obj)-&gt;st_gid))</div><div class='del'>-	return st-&gt;st_mode &amp; S_IXGRP ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(st-&gt;st_mode &amp; S_IXGRP);</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef S_IXOTH</div><div class='ctx'>     if (!(st-&gt;st_mode &amp; S_IXOTH)) return Qfalse;</div><div class='hunk'>@@ -5705,18 +6083,20 @@ rb_stat_z(VALUE obj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     state.size    -&gt; integer</div><div class='add'>+ *     stat.size?    -&gt; Integer or nil</div><div class='ctx'>  *</div><div class='del'>- *  Returns the size of &lt;i&gt;stat&lt;/i&gt; in bytes.</div><div class='add'>+ *  Returns +nil+ if &lt;i&gt;stat&lt;/i&gt; is a zero-length file, the size of</div><div class='add'>+ *  the file otherwise.</div><div class='ctx'>  *</div><div class='del'>- *     File.stat("testfile").size   #=&gt; 66</div><div class='add'>+ *     File.stat("testfile").size?   #=&gt; 66</div><div class='add'>+ *     File.stat("/dev/null").size?  #=&gt; nil</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_stat_s(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    off_t size = get_stat(obj)-&gt;st_size;</div><div class='add'>+    rb_off_t size = get_stat(obj)-&gt;st_size;</div><div class='ctx'> </div><div class='ctx'>     if (size == 0) return Qnil;</div><div class='ctx'>     return OFFT2NUM(size);</div><div class='hunk'>@@ -5814,7 +6194,7 @@ nogvl_mkfifo(void *ptr)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_file_s_mkfifo(int argc, VALUE *argv)</div><div class='add'>+rb_file_s_mkfifo(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE path;</div><div class='ctx'>     struct mkfifo_arg ma;</div><div class='hunk'>@@ -5822,14 +6202,14 @@ rb_file_s_mkfifo(int argc, VALUE *argv)</div><div class='ctx'>     ma.mode = 0666;</div><div class='ctx'>     rb_check_arity(argc, 1, 2);</div><div class='ctx'>     if (argc &gt; 1) {</div><div class='del'>-	ma.mode = NUM2MODET(argv[1]);</div><div class='add'>+        ma.mode = NUM2MODET(argv[1]);</div><div class='ctx'>     }</div><div class='ctx'>     path = argv[0];</div><div class='ctx'>     FilePathValue(path);</div><div class='ctx'>     path = rb_str_encode_ospath(path);</div><div class='ctx'>     ma.path = RSTRING_PTR(path);</div><div class='ctx'>     if (rb_thread_call_without_gvl(nogvl_mkfifo, &amp;ma, RUBY_UBF_IO, 0)) {</div><div class='del'>-	rb_sys_fail_path(path);</div><div class='add'>+        rb_sys_fail_path(path);</div><div class='ctx'>     }</div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='hunk'>@@ -5870,7 +6250,7 @@ rb_is_absolute_path(const char *path)</div><div class='ctx'> </div><div class='ctx'> #if ENABLE_PATH_CHECK</div><div class='ctx'> static int</div><div class='del'>-path_check_0(VALUE path, int execpath)</div><div class='add'>+path_check_0(VALUE path)</div><div class='ctx'> {</div><div class='ctx'>     struct stat st;</div><div class='ctx'>     const char *p0 = StringValueCStr(path);</div><div class='hunk'>@@ -5879,16 +6259,16 @@ path_check_0(VALUE path, int execpath)</div><div class='ctx'>     char *p = 0, *s;</div><div class='ctx'> </div><div class='ctx'>     if (!rb_is_absolute_path(p0)) {</div><div class='del'>-	char *buf = ruby_getcwd();</div><div class='del'>-	VALUE newpath;</div><div class='add'>+        char *buf = ruby_getcwd();</div><div class='add'>+        VALUE newpath;</div><div class='ctx'> </div><div class='del'>-	newpath = rb_str_new2(buf);</div><div class='del'>-	xfree(buf);</div><div class='add'>+        newpath = rb_str_new2(buf);</div><div class='add'>+        xfree(buf);</div><div class='ctx'> </div><div class='del'>-	rb_str_cat2(newpath, "/");</div><div class='del'>-	rb_str_cat2(newpath, p0);</div><div class='del'>-	path = newpath;</div><div class='del'>-	p0 = RSTRING_PTR(path);</div><div class='add'>+        rb_str_cat2(newpath, "/");</div><div class='add'>+        rb_str_cat2(newpath, p0);</div><div class='add'>+        path = newpath;</div><div class='add'>+        p0 = RSTRING_PTR(path);</div><div class='ctx'>     }</div><div class='ctx'>     e0 = p0 + RSTRING_LEN(path);</div><div class='ctx'>     enc = rb_enc_get(path);</div><div class='hunk'>@@ -5896,34 +6276,32 @@ path_check_0(VALUE path, int execpath)</div><div class='ctx'> #ifndef S_IWOTH</div><div class='ctx'> # define S_IWOTH 002</div><div class='ctx'> #endif</div><div class='del'>-	if (STAT(p0, &amp;st) == 0 &amp;&amp; S_ISDIR(st.st_mode) &amp;&amp; (st.st_mode &amp; S_IWOTH)</div><div class='add'>+        if (STAT(p0, &amp;st) == 0 &amp;&amp; S_ISDIR(st.st_mode) &amp;&amp; (st.st_mode &amp; S_IWOTH)</div><div class='ctx'> #ifdef S_ISVTX</div><div class='del'>-	    &amp;&amp; !(p &amp;&amp; execpath &amp;&amp; (st.st_mode &amp; S_ISVTX))</div><div class='add'>+            &amp;&amp; !(p &amp;&amp; (st.st_mode &amp; S_ISVTX))</div><div class='add'>+#endif</div><div class='add'>+            &amp;&amp; !access(p0, W_OK)) {</div><div class='add'>+            rb_enc_warn(enc, "Insecure world writable dir %s in PATH, mode 0%"</div><div class='add'>+#if SIZEOF_DEV_T &gt; SIZEOF_INT</div><div class='add'>+                        PRI_MODET_PREFIX"o",</div><div class='add'>+#else</div><div class='add'>+                        "o",</div><div class='ctx'> #endif</div><div class='del'>-	    &amp;&amp; !access(p0, W_OK)) {</div><div class='del'>-	    rb_enc_warn(enc, "Insecure world writable dir %s in %sPATH, mode 0%"</div><div class='del'>-			PRI_MODET_PREFIX"o",</div><div class='del'>-			p0, (execpath ? "" : "LOAD_"), st.st_mode);</div><div class='del'>-	    if (p) *p = '/';</div><div class='del'>-	    RB_GC_GUARD(path);</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='del'>-	s = strrdirsep(p0, e0, enc);</div><div class='del'>-	if (p) *p = '/';</div><div class='del'>-	if (!s || s == p0) return 1;</div><div class='del'>-	p = s;</div><div class='del'>-	e0 = p;</div><div class='del'>-	*p = '\0';</div><div class='add'>+                        p0, st.st_mode);</div><div class='add'>+            if (p) *p = '/';</div><div class='add'>+            RB_GC_GUARD(path);</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+        s = strrdirsep(p0, e0, enc);</div><div class='add'>+        if (p) *p = '/';</div><div class='add'>+        if (!s || s == p0) return 1;</div><div class='add'>+        p = s;</div><div class='add'>+        e0 = p;</div><div class='add'>+        *p = '\0';</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if ENABLE_PATH_CHECK</div><div class='del'>-#define fpath_check(path) path_check_0((path), FALSE)</div><div class='del'>-#else</div><div class='del'>-#define fpath_check(path) 1</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> int</div><div class='ctx'> rb_path_check(const char *path)</div><div class='ctx'> {</div><div class='hunk'>@@ -5939,13 +6317,13 @@ rb_path_check(const char *path)</div><div class='ctx'>     if (!p) p = pend;</div><div class='ctx'> </div><div class='ctx'>     for (;;) {</div><div class='del'>-	if (!path_check_0(rb_str_new(p0, p - p0), TRUE)) {</div><div class='del'>-	    return 0;		/* not safe */</div><div class='del'>-	}</div><div class='del'>-	p0 = p + 1;</div><div class='del'>-	if (p0 &gt; pend) break;</div><div class='del'>-	p = strchr(p0, sep);</div><div class='del'>-	if (!p) p = pend;</div><div class='add'>+        if (!path_check_0(rb_str_new(p0, p - p0))) {</div><div class='add'>+            return 0;		/* not safe */</div><div class='add'>+        }</div><div class='add'>+        p0 = p + 1;</div><div class='add'>+        if (p0 &gt; pend) break;</div><div class='add'>+        p = strchr(p0, sep);</div><div class='add'>+        if (!p) p = pend;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return 1;</div><div class='hunk'>@@ -5960,18 +6338,18 @@ ruby_is_fd_loadable(int fd)</div><div class='ctx'>     struct stat st;</div><div class='ctx'> </div><div class='ctx'>     if (fstat(fd, &amp;st) &lt; 0)</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'> </div><div class='ctx'>     if (S_ISREG(st.st_mode))</div><div class='del'>-	return 1;</div><div class='add'>+        return 1;</div><div class='ctx'> </div><div class='ctx'>     if (S_ISFIFO(st.st_mode) || S_ISCHR(st.st_mode))</div><div class='del'>-	return -1;</div><div class='add'>+        return -1;</div><div class='ctx'> </div><div class='ctx'>     if (S_ISDIR(st.st_mode))</div><div class='del'>-	errno = EISDIR;</div><div class='add'>+        errno = EISDIR;</div><div class='ctx'>     else</div><div class='del'>-	errno = ENXIO;</div><div class='add'>+        errno = ENXIO;</div><div class='ctx'> </div><div class='ctx'>     return 0;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -5988,11 +6366,11 @@ rb_file_load_ok(const char *path)</div><div class='ctx'>     */</div><div class='ctx'>     int mode = (O_RDONLY |</div><div class='ctx'> #if defined O_NONBLOCK</div><div class='del'>-		O_NONBLOCK |</div><div class='add'>+                O_NONBLOCK |</div><div class='ctx'> #elif defined O_NDELAY</div><div class='del'>-		O_NDELAY |</div><div class='add'>+                O_NDELAY |</div><div class='ctx'> #endif</div><div class='del'>-		0);</div><div class='add'>+                0);</div><div class='ctx'>     int fd = rb_cloexec_open(path, mode, 0);</div><div class='ctx'>     if (fd == -1) return 0;</div><div class='ctx'>     rb_update_max_fd(fd);</div><div class='hunk'>@@ -6013,6 +6391,10 @@ is_explicit_relative(const char *path)</div><div class='ctx'> static VALUE</div><div class='ctx'> copy_path_class(VALUE path, VALUE orig)</div><div class='ctx'> {</div><div class='add'>+    int encidx = rb_enc_get_index(orig);</div><div class='add'>+    if (encidx == ENCINDEX_ASCII_8BIT || encidx == ENCINDEX_US_ASCII)</div><div class='add'>+        encidx = rb_filesystem_encindex();</div><div class='add'>+    rb_enc_associate_index(path, encidx);</div><div class='ctx'>     str_shrink(path);</div><div class='ctx'>     RBASIC_SET_CLASS(path, rb_obj_class(orig));</div><div class='ctx'>     OBJ_FREEZE(path);</div><div class='hunk'>@@ -6022,12 +6404,6 @@ copy_path_class(VALUE path, VALUE orig)</div><div class='ctx'> int</div><div class='ctx'> rb_find_file_ext(VALUE *filep, const char *const *ext)</div><div class='ctx'> {</div><div class='del'>-    return rb_find_file_ext_safe(filep, ext, rb_safe_level());</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-rb_find_file_ext_safe(VALUE *filep, const char *const *ext, int safe_level)</div><div class='del'>-{</div><div class='ctx'>     const char *f = StringValueCStr(*filep);</div><div class='ctx'>     VALUE fname = *filep, load_path, tmp;</div><div class='ctx'>     long i, j, fnlen;</div><div class='hunk'>@@ -6036,30 +6412,24 @@ rb_find_file_ext_safe(VALUE *filep, const char *const *ext, int safe_level)</div><div class='ctx'>     if (!ext[0]) return 0;</div><div class='ctx'> </div><div class='ctx'>     if (f[0] == '~') {</div><div class='del'>-	fname = file_expand_path_1(fname);</div><div class='del'>-	if (safe_level &gt;= 1 &amp;&amp; OBJ_TAINTED(fname)) {</div><div class='del'>-	    rb_raise(rb_eSecurityError, "loading from unsafe file %s", f);</div><div class='del'>-	}</div><div class='del'>-	f = RSTRING_PTR(fname);</div><div class='del'>-	*filep = fname;</div><div class='del'>-	expanded = 1;</div><div class='add'>+        fname = file_expand_path_1(fname);</div><div class='add'>+        f = RSTRING_PTR(fname);</div><div class='add'>+        *filep = fname;</div><div class='add'>+        expanded = 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (expanded || rb_is_absolute_path(f) || is_explicit_relative(f)) {</div><div class='del'>-	if (safe_level &gt;= 1 &amp;&amp; !fpath_check(fname)) {</div><div class='del'>-	    rb_raise(rb_eSecurityError, "loading from unsafe path %s", f);</div><div class='del'>-	}</div><div class='del'>-	if (!expanded) fname = file_expand_path_1(fname);</div><div class='del'>-	fnlen = RSTRING_LEN(fname);</div><div class='del'>-	for (i=0; ext[i]; i++) {</div><div class='del'>-	    rb_str_cat2(fname, ext[i]);</div><div class='del'>-	    if (rb_file_load_ok(RSTRING_PTR(fname))) {</div><div class='del'>-		*filep = copy_path_class(fname, *filep);</div><div class='del'>-		return (int)(i+1);</div><div class='del'>-	    }</div><div class='del'>-	    rb_str_set_len(fname, fnlen);</div><div class='del'>-	}</div><div class='del'>-	return 0;</div><div class='add'>+        if (!expanded) fname = file_expand_path_1(fname);</div><div class='add'>+        fnlen = RSTRING_LEN(fname);</div><div class='add'>+        for (i=0; ext[i]; i++) {</div><div class='add'>+            rb_str_cat2(fname, ext[i]);</div><div class='add'>+            if (rb_file_load_ok(RSTRING_PTR(fname))) {</div><div class='add'>+                *filep = copy_path_class(fname, *filep);</div><div class='add'>+                return (int)(i+1);</div><div class='add'>+            }</div><div class='add'>+            rb_str_set_len(fname, fnlen);</div><div class='add'>+        }</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     RB_GC_GUARD(load_path) = rb_get_expanded_load_path();</div><div class='hunk'>@@ -6071,20 +6441,19 @@ rb_find_file_ext_safe(VALUE *filep, const char *const *ext, int safe_level)</div><div class='ctx'>     tmp = rb_str_tmp_new(MAXPATHLEN + 2);</div><div class='ctx'>     rb_enc_associate_index(tmp, rb_usascii_encindex());</div><div class='ctx'>     for (j=0; ext[j]; j++) {</div><div class='del'>-	rb_str_cat2(fname, ext[j]);</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(load_path); i++) {</div><div class='del'>-	    VALUE str = RARRAY_AREF(load_path, i);</div><div class='del'>-</div><div class='del'>-	    RB_GC_GUARD(str) = rb_get_path_check(str, safe_level);</div><div class='del'>-	    if (RSTRING_LEN(str) == 0) continue;</div><div class='del'>-	    rb_file_expand_path_internal(fname, str, 0, 0, tmp);</div><div class='del'>-	    if (rb_file_load_ok(RSTRING_PTR(tmp))) {</div><div class='del'>-		*filep = copy_path_class(tmp, *filep);</div><div class='del'>-		return (int)(j+1);</div><div class='del'>-	    }</div><div class='del'>-	    FL_UNSET(tmp, FL_TAINT);</div><div class='del'>-	}</div><div class='del'>-	rb_str_set_len(fname, fnlen);</div><div class='add'>+        rb_str_cat2(fname, ext[j]);</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(load_path); i++) {</div><div class='add'>+            VALUE str = RARRAY_AREF(load_path, i);</div><div class='add'>+</div><div class='add'>+            RB_GC_GUARD(str) = rb_get_path(str);</div><div class='add'>+            if (RSTRING_LEN(str) == 0) continue;</div><div class='add'>+            rb_file_expand_path_internal(fname, str, 0, 0, tmp);</div><div class='add'>+            if (rb_file_load_ok(RSTRING_PTR(tmp))) {</div><div class='add'>+                *filep = copy_path_class(tmp, *filep);</div><div class='add'>+                return (int)(j+1);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        rb_str_set_len(fname, fnlen);</div><div class='ctx'>     }</div><div class='ctx'>     rb_str_resize(tmp, 0);</div><div class='ctx'>     RB_GC_GUARD(load_path);</div><div class='hunk'>@@ -6094,72 +6463,54 @@ rb_find_file_ext_safe(VALUE *filep, const char *const *ext, int safe_level)</div><div class='ctx'> VALUE</div><div class='ctx'> rb_find_file(VALUE path)</div><div class='ctx'> {</div><div class='del'>-    return rb_find_file_safe(path, rb_safe_level());</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-rb_find_file_safe(VALUE path, int safe_level)</div><div class='del'>-{</div><div class='ctx'>     VALUE tmp, load_path;</div><div class='ctx'>     const char *f = StringValueCStr(path);</div><div class='ctx'>     int expanded = 0;</div><div class='ctx'> </div><div class='ctx'>     if (f[0] == '~') {</div><div class='del'>-	tmp = file_expand_path_1(path);</div><div class='del'>-	if (safe_level &gt;= 1 &amp;&amp; OBJ_TAINTED(tmp)) {</div><div class='del'>-	    rb_raise(rb_eSecurityError, "loading from unsafe file %"PRIsVALUE, tmp);</div><div class='del'>-	}</div><div class='del'>-	path = copy_path_class(tmp, path);</div><div class='del'>-	f = RSTRING_PTR(path);</div><div class='del'>-	expanded = 1;</div><div class='add'>+        tmp = file_expand_path_1(path);</div><div class='add'>+        path = copy_path_class(tmp, path);</div><div class='add'>+        f = RSTRING_PTR(path);</div><div class='add'>+        expanded = 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (expanded || rb_is_absolute_path(f) || is_explicit_relative(f)) {</div><div class='del'>-	if (safe_level &gt;= 1 &amp;&amp; !fpath_check(path)) {</div><div class='del'>-	    rb_raise(rb_eSecurityError, "loading from unsafe path %"PRIsVALUE, path);</div><div class='del'>-	}</div><div class='del'>-	if (!rb_file_load_ok(f)) return 0;</div><div class='del'>-	if (!expanded)</div><div class='del'>-	    path = copy_path_class(file_expand_path_1(path), path);</div><div class='del'>-	return path;</div><div class='add'>+        if (!rb_file_load_ok(f)) return 0;</div><div class='add'>+        if (!expanded)</div><div class='add'>+            path = copy_path_class(file_expand_path_1(path), path);</div><div class='add'>+        return path;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     RB_GC_GUARD(load_path) = rb_get_expanded_load_path();</div><div class='ctx'>     if (load_path) {</div><div class='del'>-	long i;</div><div class='del'>-</div><div class='del'>-	tmp = rb_str_tmp_new(MAXPATHLEN + 2);</div><div class='del'>-	rb_enc_associate_index(tmp, rb_usascii_encindex());</div><div class='del'>-	for (i = 0; i &lt; RARRAY_LEN(load_path); i++) {</div><div class='del'>-	    VALUE str = RARRAY_AREF(load_path, i);</div><div class='del'>-	    RB_GC_GUARD(str) = rb_get_path_check(str, safe_level);</div><div class='del'>-	    if (RSTRING_LEN(str) &gt; 0) {</div><div class='del'>-		rb_file_expand_path_internal(path, str, 0, 0, tmp);</div><div class='del'>-		f = RSTRING_PTR(tmp);</div><div class='del'>-		if (rb_file_load_ok(f)) goto found;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	rb_str_resize(tmp, 0);</div><div class='del'>-	return 0;</div><div class='add'>+        long i;</div><div class='add'>+</div><div class='add'>+        tmp = rb_str_tmp_new(MAXPATHLEN + 2);</div><div class='add'>+        rb_enc_associate_index(tmp, rb_usascii_encindex());</div><div class='add'>+        for (i = 0; i &lt; RARRAY_LEN(load_path); i++) {</div><div class='add'>+            VALUE str = RARRAY_AREF(load_path, i);</div><div class='add'>+            RB_GC_GUARD(str) = rb_get_path(str);</div><div class='add'>+            if (RSTRING_LEN(str) &gt; 0) {</div><div class='add'>+                rb_file_expand_path_internal(path, str, 0, 0, tmp);</div><div class='add'>+                f = RSTRING_PTR(tmp);</div><div class='add'>+                if (rb_file_load_ok(f)) goto found;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        rb_str_resize(tmp, 0);</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return 0;		/* no path, no load */</div><div class='add'>+        return 0;		/* no path, no load */</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>   found:</div><div class='del'>-    if (safe_level &gt;= 1 &amp;&amp; !fpath_check(tmp)) {</div><div class='del'>-	rb_raise(rb_eSecurityError, "loading from unsafe file %"PRIsVALUE, tmp);</div><div class='del'>-    }</div><div class='del'>-</div><div class='ctx'>     return copy_path_class(tmp, path);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-define_filetest_function(const char *name, VALUE (*func)(ANYARGS), int argc)</div><div class='del'>-{</div><div class='del'>-    rb_define_module_function(rb_mFileTest, name, func, argc);</div><div class='del'>-    rb_define_singleton_method(rb_cFile, name, func, argc);</div><div class='del'>-}</div><div class='add'>+#define define_filetest_function(name, func, argc) do {        \</div><div class='add'>+    rb_define_module_function(rb_mFileTest, name, func, argc); \</div><div class='add'>+    rb_define_singleton_method(rb_cFile, name, func, argc);    \</div><div class='add'>+} while(false)</div><div class='ctx'> </div><div class='ctx'> const char ruby_null_device[] =</div><div class='ctx'> #if defined DOSISH</div><div class='hunk'>@@ -6174,42 +6525,805 @@ const char ruby_null_device[] =</div><div class='ctx'>     ;</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  A &lt;code&gt;File&lt;/code&gt; is an abstraction of any file object accessible</div><div class='del'>- *  by the program and is closely associated with class &lt;code&gt;IO&lt;/code&gt;.</div><div class='del'>- *  &lt;code&gt;File&lt;/code&gt; includes the methods of module</div><div class='del'>- *  &lt;code&gt;FileTest&lt;/code&gt; as class methods, allowing you to write (for</div><div class='del'>- *  example) &lt;code&gt;File.exist?("foo")&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- *  In the description of File methods,</div><div class='del'>- *  &lt;em&gt;permission bits&lt;/em&gt; are a platform-specific</div><div class='del'>- *  set of bits that indicate permissions of a file. On Unix-based</div><div class='del'>- *  systems, permissions are viewed as a set of three octets, for the</div><div class='del'>- *  owner, the group, and the rest of the world. For each of these</div><div class='del'>- *  entities, permissions may be set to read, write, or execute the</div><div class='del'>- *  file:</div><div class='del'>- *</div><div class='del'>- *  The permission bits &lt;code&gt;0644&lt;/code&gt; (in octal) would thus be</div><div class='del'>- *  interpreted as read/write for owner, and read-only for group and</div><div class='del'>- *  other. Higher-order bits may also be used to indicate the type of</div><div class='del'>- *  file (plain, directory, pipe, socket, and so on) and various other</div><div class='del'>- *  special features. If the permissions are for a directory, the</div><div class='del'>- *  meaning of the execute bit changes; when set the directory can be</div><div class='del'>- *  searched.</div><div class='del'>- *</div><div class='del'>- *  On non-Posix operating systems, there may be only the ability to</div><div class='del'>- *  make a file read-only or read-write. In this case, the remaining</div><div class='del'>- *  permission bits will be synthesized to resemble typical values. For</div><div class='del'>- *  instance, on Windows NT the default permission bits are</div><div class='del'>- *  &lt;code&gt;0644&lt;/code&gt;, which means read/write for owner, read-only for</div><div class='del'>- *  all others. The only change that can be made is to make the file</div><div class='add'>+ *  A \File object is a representation of a file in the underlying platform.</div><div class='add'>+ *</div><div class='add'>+ *  \Class \File extends module FileTest, supporting such singleton methods</div><div class='add'>+ *  as &lt;tt&gt;File.exist?&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  === About the Examples</div><div class='add'>+ *</div><div class='add'>+ *  Many examples here use these variables:</div><div class='add'>+ *</div><div class='add'>+ *    :include: doc/examples/files.rdoc</div><div class='add'>+ *</div><div class='add'>+ *  == Access Modes</div><div class='add'>+ *</div><div class='add'>+ *  \Methods File.new and File.open each create a \File object for a given file path.</div><div class='add'>+ *</div><div class='add'>+ *  === \String Access Modes</div><div class='add'>+ *</div><div class='add'>+ *  \Methods File.new and File.open each may take string argument +mode+, which:</div><div class='add'>+ *</div><div class='add'>+ *  - Begins with a 1- or 2-character</div><div class='add'>+ *    {read/write mode}[rdoc-ref:File@Read-2FWrite+Mode].</div><div class='add'>+ *  - May also contain a 1-character {data mode}[rdoc-ref:File@Data+Mode].</div><div class='add'>+ *  - May also contain a 1-character</div><div class='add'>+ *    {file-create mode}[rdoc-ref:File@File-Create+Mode].</div><div class='add'>+ *</div><div class='add'>+ *  ==== Read/Write Mode</div><div class='add'>+ *</div><div class='add'>+ *  The read/write +mode+ determines:</div><div class='add'>+ *</div><div class='add'>+ *  - Whether the file is to be initially truncated.</div><div class='add'>+ *</div><div class='add'>+ *  - Whether reading is allowed, and if so:</div><div class='add'>+ *</div><div class='add'>+ *    - The initial read position in the file.</div><div class='add'>+ *    - Where in the file reading can occur.</div><div class='add'>+ *</div><div class='add'>+ *  - Whether writing is allowed, and if so:</div><div class='add'>+ *</div><div class='add'>+ *    - The initial write position in the file.</div><div class='add'>+ *    - Where in the file writing can occur.</div><div class='add'>+ *</div><div class='add'>+ *  These tables summarize:</div><div class='add'>+ *</div><div class='add'>+ *    Read/Write Modes for Existing File</div><div class='add'>+ *</div><div class='add'>+ *    |------|-----------|----------|----------|----------|-----------|</div><div class='add'>+ *    | R/W  | Initial   |          | Initial  |          | Initial   |</div><div class='add'>+ *    | Mode | Truncate? |  Read    | Read Pos |  Write   | Write Pos |</div><div class='add'>+ *    |------|-----------|----------|----------|----------|-----------|</div><div class='add'>+ *    | 'r'  |    No     | Anywhere |    0     |   Error  |     -     |</div><div class='add'>+ *    | 'w'  |    Yes    |   Error  |    -     | Anywhere |     0     |</div><div class='add'>+ *    | 'a'  |    No     |   Error  |    -     | End only |    End    |</div><div class='add'>+ *    | 'r+' |    No     | Anywhere |    0     | Anywhere |     0     |</div><div class='add'>+ *    | 'w+' |    Yes    | Anywhere |    0     | Anywhere |     0     |</div><div class='add'>+ *    | 'a+' |    No     | Anywhere |   End    | End only |    End    |</div><div class='add'>+ *    |------|-----------|----------|----------|----------|-----------|</div><div class='add'>+ *</div><div class='add'>+ *    Read/Write Modes for \File To Be Created</div><div class='add'>+ *</div><div class='add'>+ *    |------|----------|----------|----------|-----------|</div><div class='add'>+ *    | R/W  |          | Initial  |          | Initial   |</div><div class='add'>+ *    | Mode |  Read    | Read Pos |  Write   | Write Pos |</div><div class='add'>+ *    |------|----------|----------|----------|-----------|</div><div class='add'>+ *    | 'w'  |   Error  |    -     | Anywhere |     0     |</div><div class='add'>+ *    | 'a'  |   Error  |    -     | End only |     0     |</div><div class='add'>+ *    | 'w+' | Anywhere |    0     | Anywhere |     0     |</div><div class='add'>+ *    | 'a+' | Anywhere |    0     | End only |    End    |</div><div class='add'>+ *    |------|----------|----------|----------|-----------|</div><div class='add'>+ *</div><div class='add'>+ *  Note that modes &lt;tt&gt;'r'&lt;/tt&gt; and &lt;tt&gt;'r+'&lt;/tt&gt; are not allowed</div><div class='add'>+ *  for a non-existent file (exception raised).</div><div class='add'>+ *</div><div class='add'>+ *  In the tables:</div><div class='add'>+ *</div><div class='add'>+ *  - +Anywhere+ means that methods IO#rewind, IO#pos=, and IO#seek</div><div class='add'>+ *    may be used to change the file's position,</div><div class='add'>+ *    so that allowed reading or writing may occur anywhere in the file.</div><div class='add'>+ *  - &lt;tt&gt;End only&lt;/tt&gt; means that writing can occur only at end-of-file,</div><div class='add'>+ *    and that methods IO#rewind, IO#pos=, and IO#seek do not affect writing.</div><div class='add'>+ *  - +Error+ means that an exception is raised if disallowed reading or writing</div><div class='add'>+ *    is attempted.</div><div class='add'>+ *</div><div class='add'>+ *  ===== Read/Write Modes for Existing \File</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;'r'&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    - File is not initially truncated:</div><div class='add'>+ *</div><div class='add'>+ *        f = File.new('t.txt') # =&gt; #&lt;File:t.txt&gt;</div><div class='add'>+ *        f.size == 0           # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *    - File's initial read position is 0:</div><div class='add'>+ *</div><div class='add'>+ *        f.pos # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *    - File may be read anywhere; see IO#rewind, IO#pos=, IO#seek:</div><div class='add'>+ *</div><div class='add'>+ *        f.readline # =&gt; "First line\n"</div><div class='add'>+ *        f.readline # =&gt; "Second line\n"</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.readline # =&gt; "First line\n"</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 1</div><div class='add'>+ *        f.readline # =&gt; "irst line\n"</div><div class='add'>+ *</div><div class='add'>+ *        f.seek(1, :CUR)</div><div class='add'>+ *        f.readline # =&gt; "econd line\n"</div><div class='add'>+ *</div><div class='add'>+ *    - Writing is not allowed:</div><div class='add'>+ *</div><div class='add'>+ *        f.write('foo') # Raises IOError.</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;'w'&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    - File is initially truncated:</div><div class='add'>+ *</div><div class='add'>+ *        path = 't.tmp'</div><div class='add'>+ *        File.write(path, text)</div><div class='add'>+ *        f = File.new(path, 'w')</div><div class='add'>+ *        f.size == 0 # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ *    - File's initial write position is 0:</div><div class='add'>+ *</div><div class='add'>+ *        f.pos # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *    - File may be written anywhere (even past end-of-file);</div><div class='add'>+ *      see IO#rewind, IO#pos=, IO#seek:</div><div class='add'>+ *</div><div class='add'>+ *        f.write('foo')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foo"</div><div class='add'>+ *        f.pos # =&gt; 3</div><div class='add'>+ *</div><div class='add'>+ *        f.write('bar')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foobar"</div><div class='add'>+ *        f.pos # =&gt; 6</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.write('baz')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazbar"</div><div class='add'>+ *        f.pos # =&gt; 3</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 3</div><div class='add'>+ *        f.write('foo')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazfoo"</div><div class='add'>+ *        f.pos # =&gt; 6</div><div class='add'>+ *</div><div class='add'>+ *        f.seek(-3, :END)</div><div class='add'>+ *        f.write('bam')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazbam"</div><div class='add'>+ *        f.pos # =&gt; 6</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 8</div><div class='add'>+ *        f.write('bah')  # Zero padding as needed.</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazbam\u0000\u0000bah"</div><div class='add'>+ *        f.pos # =&gt; 11</div><div class='add'>+ *</div><div class='add'>+ *    - Reading is not allowed:</div><div class='add'>+ *</div><div class='add'>+ *        f.read # Raises IOError.</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;'a'&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    - File is not initially truncated:</div><div class='add'>+ *</div><div class='add'>+ *        path = 't.tmp'</div><div class='add'>+ *        File.write(path, 'foo')</div><div class='add'>+ *        f = File.new(path, 'a')</div><div class='add'>+ *        f.size == 0 # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *    - File's initial position is 0 (but is ignored):</div><div class='add'>+ *</div><div class='add'>+ *        f.pos # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *    - File may be written only at end-of-file;</div><div class='add'>+ *      IO#rewind, IO#pos=, IO#seek do not affect writing:</div><div class='add'>+ *</div><div class='add'>+ *        f.write('bar')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foobar"</div><div class='add'>+ *        f.write('baz')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foobarbaz"</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.write('bat')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foobarbazbat"</div><div class='add'>+ *</div><div class='add'>+ *    - Reading is not allowed:</div><div class='add'>+ *</div><div class='add'>+ *        f.read # Raises IOError.</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;'r+'&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    - File is not initially truncated:</div><div class='add'>+ *</div><div class='add'>+ *        path = 't.tmp'</div><div class='add'>+ *        File.write(path, text)</div><div class='add'>+ *        f = File.new(path, 'r+')</div><div class='add'>+ *        f.size == 0 # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *    - File's initial read position is 0:</div><div class='add'>+ *</div><div class='add'>+ *        f.pos # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *    - File may be read or written anywhere (even past end-of-file);</div><div class='add'>+ *      see IO#rewind, IO#pos=, IO#seek:</div><div class='add'>+ *</div><div class='add'>+ *        f.readline # =&gt; "First line\n"</div><div class='add'>+ *        f.readline # =&gt; "Second line\n"</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.readline # =&gt; "First line\n"</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 1</div><div class='add'>+ *        f.readline # =&gt; "irst line\n"</div><div class='add'>+ *</div><div class='add'>+ *        f.seek(1, :CUR)</div><div class='add'>+ *        f.readline # =&gt; "econd line\n"</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.write('WWW')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path)</div><div class='add'>+ *        # =&gt; "WWWst line\nSecond line\nFourth line\nFifth line\n"</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 10</div><div class='add'>+ *        f.write('XXX')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path)</div><div class='add'>+ *        # =&gt; "WWWst lineXXXecond line\nFourth line\nFifth line\n"</div><div class='add'>+ *</div><div class='add'>+ *        f.seek(-6, :END)</div><div class='add'>+ *        # =&gt; 0</div><div class='add'>+ *        f.write('YYY')</div><div class='add'>+ *        # =&gt; 3</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        # =&gt; #&lt;File:t.tmp&gt;</div><div class='add'>+ *        File.read(path)</div><div class='add'>+ *        # =&gt; "WWWst lineXXXecond line\nFourth line\nFifth YYYe\n"</div><div class='add'>+ *</div><div class='add'>+ *        f.seek(2, :END)</div><div class='add'>+ *        f.write('ZZZ') # Zero padding as needed.</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path)</div><div class='add'>+ *        # =&gt; "WWWst lineXXXecond line\nFourth line\nFifth YYYe\n\u0000\u0000ZZZ"</div><div class='add'>+ *</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;'a+'&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    - File is not initially truncated:</div><div class='add'>+ *</div><div class='add'>+ *        path = 't.tmp'</div><div class='add'>+ *        File.write(path, 'foo')</div><div class='add'>+ *        f = File.new(path, 'a+')</div><div class='add'>+ *        f.size == 0 # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *    - File's initial read position is 0:</div><div class='add'>+ *</div><div class='add'>+ *        f.pos # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *    - File may be written only at end-of-file;</div><div class='add'>+ *      IO#rewind, IO#pos=, IO#seek do not affect writing:</div><div class='add'>+ *</div><div class='add'>+ *        f.write('bar')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path)      # =&gt; "foobar"</div><div class='add'>+ *        f.write('baz')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path)      # =&gt; "foobarbaz"</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.write('bat')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foobarbazbat"</div><div class='add'>+ *</div><div class='add'>+ *    - File may be read anywhere; see IO#rewind, IO#pos=, IO#seek:</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.read # =&gt; "foobarbazbat"</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 3</div><div class='add'>+ *        f.read # =&gt; "barbazbat"</div><div class='add'>+ *</div><div class='add'>+ *        f.seek(-3, :END)</div><div class='add'>+ *        f.read # =&gt; "bat"</div><div class='add'>+ *</div><div class='add'>+ *  ===== Read/Write Modes for \File To Be Created</div><div class='add'>+ *</div><div class='add'>+ *  Note that modes &lt;tt&gt;'r'&lt;/tt&gt; and &lt;tt&gt;'r+'&lt;/tt&gt; are not allowed</div><div class='add'>+ *  for a non-existent file (exception raised).</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;'w'&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    - File's initial write position is 0:</div><div class='add'>+ *</div><div class='add'>+ *        path = 't.tmp'</div><div class='add'>+ *        FileUtils.rm_f(path)</div><div class='add'>+ *        f = File.new(path, 'w')</div><div class='add'>+ *        f.pos # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *    - File may be written anywhere (even past end-of-file);</div><div class='add'>+ *      see IO#rewind, IO#pos=, IO#seek:</div><div class='add'>+ *</div><div class='add'>+ *        f.write('foo')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foo"</div><div class='add'>+ *        f.pos # =&gt; 3</div><div class='add'>+ *</div><div class='add'>+ *        f.write('bar')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foobar"</div><div class='add'>+ *        f.pos # =&gt; 6</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.write('baz')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazbar"</div><div class='add'>+ *        f.pos # =&gt; 3</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 3</div><div class='add'>+ *        f.write('foo')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazfoo"</div><div class='add'>+ *        f.pos # =&gt; 6</div><div class='add'>+ *</div><div class='add'>+ *        f.seek(-3, :END)</div><div class='add'>+ *        f.write('bam')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazbam"</div><div class='add'>+ *        f.pos # =&gt; 6</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 8</div><div class='add'>+ *        f.write('bah')  # Zero padding as needed.</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazbam\u0000\u0000bah"</div><div class='add'>+ *        f.pos # =&gt; 11</div><div class='add'>+ *</div><div class='add'>+ *    - Reading is not allowed:</div><div class='add'>+ *</div><div class='add'>+ *        f.read # Raises IOError.</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;'a'&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    - File's initial write position is 0:</div><div class='add'>+ *</div><div class='add'>+ *        path = 't.tmp'</div><div class='add'>+ *        FileUtils.rm_f(path)</div><div class='add'>+ *        f = File.new(path, 'a')</div><div class='add'>+ *        f.pos # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *    - Writing occurs only at end-of-file:</div><div class='add'>+ *</div><div class='add'>+ *        f.write('foo')</div><div class='add'>+ *        f.pos # =&gt; 3</div><div class='add'>+ *        f.write('bar')</div><div class='add'>+ *        f.pos # =&gt; 6</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foobar"</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.write('baz')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foobarbaz"</div><div class='add'>+ *</div><div class='add'>+ *    - Reading is not allowed:</div><div class='add'>+ *</div><div class='add'>+ *        f.read # Raises IOError.</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;'w+'&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    - File's initial position is 0:</div><div class='add'>+ *</div><div class='add'>+ *        path = 't.tmp'</div><div class='add'>+ *        FileUtils.rm_f(path)</div><div class='add'>+ *        f = File.new(path, 'w+')</div><div class='add'>+ *        f.pos # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *    - File may be written anywhere (even past end-of-file);</div><div class='add'>+ *      see IO#rewind, IO#pos=, IO#seek:</div><div class='add'>+ *</div><div class='add'>+ *        f.write('foo')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foo"</div><div class='add'>+ *        f.pos # =&gt; 3</div><div class='add'>+ *</div><div class='add'>+ *        f.write('bar')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foobar"</div><div class='add'>+ *        f.pos # =&gt; 6</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.write('baz')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazbar"</div><div class='add'>+ *        f.pos # =&gt; 3</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 3</div><div class='add'>+ *        f.write('foo')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazfoo"</div><div class='add'>+ *        f.pos # =&gt; 6</div><div class='add'>+ *</div><div class='add'>+ *        f.seek(-3, :END)</div><div class='add'>+ *        f.write('bam')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazbam"</div><div class='add'>+ *        f.pos # =&gt; 6</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 8</div><div class='add'>+ *        f.write('bah')  # Zero padding as needed.</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "bazbam\u0000\u0000bah"</div><div class='add'>+ *        f.pos # =&gt; 11</div><div class='add'>+ *</div><div class='add'>+ *    - File may be read anywhere (even past end-of-file);</div><div class='add'>+ *      see IO#rewind, IO#pos=, IO#seek:</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        # =&gt; 0</div><div class='add'>+ *        f.read</div><div class='add'>+ *        # =&gt; "bazbam\u0000\u0000bah"</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 3</div><div class='add'>+ *        # =&gt; 3</div><div class='add'>+ *        f.read</div><div class='add'>+ *        # =&gt; "bam\u0000\u0000bah"</div><div class='add'>+ *</div><div class='add'>+ *        f.seek(-3, :END)</div><div class='add'>+ *        # =&gt; 0</div><div class='add'>+ *        f.read</div><div class='add'>+ *        # =&gt; "bah"</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;'a+'&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    - File's initial write position is 0:</div><div class='add'>+ *</div><div class='add'>+ *        path = 't.tmp'</div><div class='add'>+ *        FileUtils.rm_f(path)</div><div class='add'>+ *        f = File.new(path, 'a+')</div><div class='add'>+ *        f.pos # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *    - Writing occurs only at end-of-file:</div><div class='add'>+ *</div><div class='add'>+ *        f.write('foo')</div><div class='add'>+ *        f.pos # =&gt; 3</div><div class='add'>+ *        f.write('bar')</div><div class='add'>+ *        f.pos # =&gt; 6</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foobar"</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.write('baz')</div><div class='add'>+ *        f.flush</div><div class='add'>+ *        File.read(path) # =&gt; "foobarbaz"</div><div class='add'>+ *</div><div class='add'>+ *    - File may be read anywhere (even past end-of-file);</div><div class='add'>+ *      see IO#rewind, IO#pos=, IO#seek:</div><div class='add'>+ *</div><div class='add'>+ *        f.rewind</div><div class='add'>+ *        f.read # =&gt; "foobarbaz"</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 3</div><div class='add'>+ *        f.read # =&gt; "barbaz"</div><div class='add'>+ *</div><div class='add'>+ *        f.seek(-3, :END)</div><div class='add'>+ *        f.read # =&gt; "baz"</div><div class='add'>+ *</div><div class='add'>+ *        f.pos = 800</div><div class='add'>+ *        f.read # =&gt; ""</div><div class='add'>+ *</div><div class='add'>+ *  ==== \Data Mode</div><div class='add'>+ *</div><div class='add'>+ *  To specify whether data is to be treated as text or as binary data,</div><div class='add'>+ *  either of the following may be suffixed to any of the string read/write modes</div><div class='add'>+ *  above:</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;'t'&lt;/tt&gt;: Text data; sets the default external encoding</div><div class='add'>+ *    to &lt;tt&gt;Encoding::UTF_8&lt;/tt&gt;;</div><div class='add'>+ *    on Windows, enables conversion between EOL and CRLF</div><div class='add'>+ *    and enables interpreting &lt;tt&gt;0x1A&lt;/tt&gt; as an end-of-file marker.</div><div class='add'>+ *  - &lt;tt&gt;'b'&lt;/tt&gt;: Binary data; sets the default external encoding</div><div class='add'>+ *    to &lt;tt&gt;Encoding::ASCII_8BIT&lt;/tt&gt;;</div><div class='add'>+ *    on Windows, suppresses conversion between EOL and CRLF</div><div class='add'>+ *    and disables interpreting &lt;tt&gt;0x1A&lt;/tt&gt; as an end-of-file marker.</div><div class='add'>+ *</div><div class='add'>+ *  If neither is given, the stream defaults to text data.</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *    File.new('t.txt', 'rt')</div><div class='add'>+ *    File.new('t.dat', 'rb')</div><div class='add'>+ *</div><div class='add'>+ *  When the data mode is specified, the read/write mode may not be omitted,</div><div class='add'>+ *  and the data mode must precede the file-create mode, if given:</div><div class='add'>+ *</div><div class='add'>+ *    File.new('t.dat', 'b')   # Raises an exception.</div><div class='add'>+ *    File.new('t.dat', 'rxb') # Raises an exception.</div><div class='add'>+ *</div><div class='add'>+ *  ==== \File-Create Mode</div><div class='add'>+ *</div><div class='add'>+ *  The following may be suffixed to any writable string mode above:</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;'x'&lt;/tt&gt;: Creates the file if it does not exist;</div><div class='add'>+ *    raises an exception if the file exists.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    File.new('t.tmp', 'wx')</div><div class='add'>+ *</div><div class='add'>+ *  When the file-create mode is specified, the read/write mode may not be omitted,</div><div class='add'>+ *  and the file-create mode must follow the data mode:</div><div class='add'>+ *</div><div class='add'>+ *    File.new('t.dat', 'x')   # Raises an exception.</div><div class='add'>+ *    File.new('t.dat', 'rxb') # Raises an exception.</div><div class='add'>+ *</div><div class='add'>+ *  === \Integer Access Modes</div><div class='add'>+ *</div><div class='add'>+ *  When mode is an integer it must be one or more of the following constants,</div><div class='add'>+ *  which may be combined by the bitwise OR operator &lt;tt&gt;|&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *  - +File::RDONLY+: Open for reading only.</div><div class='add'>+ *  - +File::WRONLY+: Open for writing only.</div><div class='add'>+ *  - +File::RDWR+: Open for reading and writing.</div><div class='add'>+ *  - +File::APPEND+: Open for appending only.</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *    File.new('t.txt', File::RDONLY)</div><div class='add'>+ *    File.new('t.tmp', File::RDWR | File::CREAT | File::EXCL)</div><div class='add'>+ *</div><div class='add'>+ *  Note: Method IO#set_encoding does not allow the mode to be specified as an integer.</div><div class='add'>+ *</div><div class='add'>+ *  === File-Create Mode Specified as an \Integer</div><div class='add'>+ *</div><div class='add'>+ *  These constants may also be ORed into the integer mode:</div><div class='add'>+ *</div><div class='add'>+ *  - +File::CREAT+: Create file if it does not exist.</div><div class='add'>+ *  - +File::EXCL+: Raise an exception if +File::CREAT+ is given and the file exists.</div><div class='add'>+ *</div><div class='add'>+ *  === \Data Mode Specified as an \Integer</div><div class='add'>+ *</div><div class='add'>+ *  \Data mode cannot be specified as an integer.</div><div class='add'>+ *  When the stream access mode is given as an integer,</div><div class='add'>+ *  the data mode is always text, never binary.</div><div class='add'>+ *</div><div class='add'>+ *  Note that although there is a constant +File::BINARY+,</div><div class='add'>+ *  setting its value in an integer stream mode has no effect;</div><div class='add'>+ *  this is because, as documented in File::Constants,</div><div class='add'>+ *  the +File::BINARY+ value disables line code conversion,</div><div class='add'>+ *  but does not change the external encoding.</div><div class='add'>+ *</div><div class='add'>+ *  === Encodings</div><div class='add'>+ *</div><div class='add'>+ *  Any of the string modes above may specify encodings -</div><div class='add'>+ *  either external encoding only or both external and internal encodings -</div><div class='add'>+ *  by appending one or both encoding names, separated by colons:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.dat', 'rb')</div><div class='add'>+ *    f.external_encoding # =&gt; #&lt;Encoding:ASCII-8BIT&gt;</div><div class='add'>+ *    f.internal_encoding # =&gt; nil</div><div class='add'>+ *    f = File.new('t.dat', 'rb:UTF-16')</div><div class='add'>+ *    f.external_encoding # =&gt; #&lt;Encoding:UTF-16 (dummy)&gt;</div><div class='add'>+ *    f.internal_encoding # =&gt; nil</div><div class='add'>+ *    f = File.new('t.dat', 'rb:UTF-16:UTF-16')</div><div class='add'>+ *    f.external_encoding # =&gt; #&lt;Encoding:UTF-16 (dummy)&gt;</div><div class='add'>+ *    f.internal_encoding # =&gt; #&lt;Encoding:UTF-16&gt;</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  The numerous encoding names are available in array Encoding.name_list:</div><div class='add'>+ *</div><div class='add'>+ *    Encoding.name_list.take(3) # =&gt; ["ASCII-8BIT", "UTF-8", "US-ASCII"]</div><div class='add'>+ *</div><div class='add'>+ *  When the external encoding is set, strings read are tagged by that encoding</div><div class='add'>+ *  when reading, and strings written are converted to that encoding when</div><div class='add'>+ *  writing.</div><div class='add'>+ *</div><div class='add'>+ *  When both external and internal encodings are set,</div><div class='add'>+ *  strings read are converted from external to internal encoding,</div><div class='add'>+ *  and strings written are converted from internal to external encoding.</div><div class='add'>+ *  For further details about transcoding input and output,</div><div class='add'>+ *  see {Encodings}[rdoc-ref:encodings.rdoc@Encodings].</div><div class='add'>+ *</div><div class='add'>+ *  If the external encoding is &lt;tt&gt;'BOM|UTF-8'&lt;/tt&gt;, &lt;tt&gt;'BOM|UTF-16LE'&lt;/tt&gt;</div><div class='add'>+ *  or &lt;tt&gt;'BOM|UTF16-BE'&lt;/tt&gt;,</div><div class='add'>+ *  Ruby checks for a Unicode BOM in the input document</div><div class='add'>+ *  to help determine the encoding.</div><div class='add'>+ *  For UTF-16 encodings the file open mode must be binary.</div><div class='add'>+ *  If the BOM is found,</div><div class='add'>+ *  it is stripped and the external encoding from the BOM is used.</div><div class='add'>+ *</div><div class='add'>+ *  Note that the BOM-style encoding option is case insensitive,</div><div class='add'>+ *  so &lt;tt&gt;'bom|utf-8'&lt;/tt&gt; is also valid.</div><div class='add'>+ *</div><div class='add'>+ *  == \File Permissions</div><div class='add'>+ *</div><div class='add'>+ *  A \File object has _permissions_, an octal integer representing</div><div class='add'>+ *  the permissions of an actual file in the underlying platform.</div><div class='add'>+ *</div><div class='add'>+ *  Note that file permissions are quite different from the _mode_</div><div class='add'>+ *  of a file stream (\File object).</div><div class='add'>+ *  See IO@Modes.</div><div class='add'>+ *</div><div class='add'>+ *  In a \File object, the permissions are available thus,</div><div class='add'>+ *  where method +mode+, despite its name, returns permissions:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.lstat.mode.to_s(8) # =&gt; "100644"</div><div class='add'>+ *</div><div class='add'>+ *  On a Unix-based operating system,</div><div class='add'>+ *  the three low-order octal digits represent the permissions</div><div class='add'>+ *  for owner (6), group (4), and world (4).</div><div class='add'>+ *  The triplet of bits in each octal digit represent, respectively,</div><div class='add'>+ *  read, write, and execute permissions.</div><div class='add'>+ *</div><div class='add'>+ *  Permissions &lt;tt&gt;0644&lt;/tt&gt; thus represent read-write access for owner</div><div class='add'>+ *  and read-only access for group and world.</div><div class='add'>+ *  See man pages {open(2)}[https://www.unix.com/man-page/bsd/2/open]</div><div class='add'>+ *  and {chmod(2)}[https://www.unix.com/man-page/bsd/2/chmod].</div><div class='add'>+ *</div><div class='add'>+ *  For a directory, the meaning of the execute bit changes:</div><div class='add'>+ *  when set, the directory can be searched.</div><div class='add'>+ *</div><div class='add'>+ *  Higher-order bits in permissions may indicate the type of file</div><div class='add'>+ *  (plain, directory, pipe, socket, etc.) and various other special features.</div><div class='add'>+ *</div><div class='add'>+ *  On non-Posix operating systems, permissions may include only read-only or read-write,</div><div class='add'>+ *  in which case, the remaining permission will resemble typical values.</div><div class='add'>+ *  On Windows, for instance, the default permissions are &lt;code&gt;0644&lt;/code&gt;;</div><div class='add'>+ *  The only change that can be made is to make the file</div><div class='ctx'>  *  read-only, which is reported as &lt;code&gt;0444&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='del'>- *  Various constants for the methods in File can be found in File::Constants.</div><div class='add'>+ *  For a method that actually creates a file in the underlying platform</div><div class='add'>+ *  (as opposed to merely creating a \File object),</div><div class='add'>+ *  permissions may be specified:</div><div class='add'>+ *</div><div class='add'>+ *    File.new('t.tmp', File::CREAT, 0644)</div><div class='add'>+ *    File.new('t.tmp', File::CREAT, 0444)</div><div class='add'>+ *</div><div class='add'>+ *  Permissions may also be changed:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.tmp', File::CREAT, 0444)</div><div class='add'>+ *    f.chmod(0644)</div><div class='add'>+ *    f.chmod(0444)</div><div class='add'>+ *</div><div class='add'>+ *  == \File \Constants</div><div class='add'>+ *</div><div class='add'>+ *  Various constants for use in \File and \IO methods</div><div class='add'>+ *  may be found in module File::Constants;</div><div class='add'>+ *  an array of their names is returned by &lt;tt&gt;File::Constants.constants&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  == What's Here</div><div class='add'>+ *</div><div class='add'>+ *  First, what's elsewhere. \Class \File:</div><div class='add'>+ *</div><div class='add'>+ *  - Inherits from {class IO}[rdoc-ref:IO@What-27s+Here],</div><div class='add'>+ *    in particular, methods for creating, reading, and writing files</div><div class='add'>+ *  - Includes {module FileTest}[rdoc-ref:FileTest@What-27s+Here].</div><div class='add'>+ *    which provides dozens of additional methods.</div><div class='add'>+ *</div><div class='add'>+ *  Here, class \File provides methods that are useful for:</div><div class='add'>+ *</div><div class='add'>+ *  - {Creating}[rdoc-ref:File@Creating]</div><div class='add'>+ *  - {Querying}[rdoc-ref:File@Querying]</div><div class='add'>+ *  - {Settings}[rdoc-ref:File@Settings]</div><div class='add'>+ *  - {Other}[rdoc-ref:File@Other]</div><div class='add'>+ *</div><div class='add'>+ *  === Creating</div><div class='add'>+ *</div><div class='add'>+ *  - ::new: Opens the file at the given path; returns the file.</div><div class='add'>+ *  - ::open: Same as ::new, but when given a block will yield the file to the block,</div><div class='add'>+ *    and close the file upon exiting the block.</div><div class='add'>+ *  - ::link: Creates a new name for an existing file using a hard link.</div><div class='add'>+ *  - ::mkfifo: Returns the FIFO file created at the given path.</div><div class='add'>+ *  - ::symlink: Creates a symbolic link for the given file path.</div><div class='add'>+ *</div><div class='add'>+ *  === Querying</div><div class='add'>+ *</div><div class='add'>+ *  _Paths_</div><div class='add'>+ *</div><div class='add'>+ *  - ::absolute_path: Returns the absolute file path for the given path.</div><div class='add'>+ *  - ::absolute_path?: Returns whether the given path is the absolute file path.</div><div class='add'>+ *  - ::basename: Returns the last component of the given file path.</div><div class='add'>+ *  - ::dirname: Returns all but the last component of the given file path.</div><div class='add'>+ *  - ::expand_path: Returns the absolute file path for the given path,</div><div class='add'>+ *    expanding &lt;tt&gt;~&lt;/tt&gt; for a home directory.</div><div class='add'>+ *  - ::extname: Returns the file extension for the given file path.</div><div class='add'>+ *  - ::fnmatch? (aliased as ::fnmatch): Returns whether the given file path</div><div class='add'>+ *    matches the given pattern.</div><div class='add'>+ *  - ::join: Joins path components into a single path string.</div><div class='add'>+ *  - ::path: Returns the string representation of the given path.</div><div class='add'>+ *  - ::readlink: Returns the path to the file at the given symbolic link.</div><div class='add'>+ *  - ::realdirpath: Returns the real path for the given file path,</div><div class='add'>+ *    where the last component need not exist.</div><div class='add'>+ *  - ::realpath: Returns the real path for the given file path,</div><div class='add'>+ *    where all components must exist.</div><div class='add'>+ *  - ::split: Returns an array of two strings: the directory name and basename</div><div class='add'>+ *    of the file at the given path.</div><div class='add'>+ *  - #path (aliased as #to_path):  Returns the string representation of the given path.</div><div class='add'>+ *</div><div class='add'>+ *  _Times_</div><div class='add'>+ *</div><div class='add'>+ *  - ::atime: Returns a \Time for the most recent access to the given file.</div><div class='add'>+ *  - ::birthtime: Returns a \Time  for the creation of the given file.</div><div class='add'>+ *  - ::ctime: Returns a \Time  for the metadata change of the given file.</div><div class='add'>+ *  - ::mtime: Returns a \Time for the most recent data modification to</div><div class='add'>+ *    the content of the given file.</div><div class='add'>+ *  - #atime: Returns a \Time for the most recent access to +self+.</div><div class='add'>+ *  - #birthtime: Returns a \Time  the creation for +self+.</div><div class='add'>+ *  - #ctime: Returns a \Time for the metadata change of +self+.</div><div class='add'>+ *  - #mtime: Returns a \Time for the most recent data modification</div><div class='add'>+ *    to the content of +self+.</div><div class='add'>+ *</div><div class='add'>+ *  _Types_</div><div class='add'>+ *</div><div class='add'>+ *  - ::blockdev?: Returns whether the file at the given path is a block device.</div><div class='add'>+ *  - ::chardev?: Returns whether the file at the given path is a character device.</div><div class='add'>+ *  - ::directory?: Returns whether the file at the given path is a directory.</div><div class='add'>+ *  - ::executable?: Returns whether the file at the given path is executable</div><div class='add'>+ *    by the effective user and group of the current process.</div><div class='add'>+ *  - ::executable_real?: Returns whether the file at the given path is executable</div><div class='add'>+ *    by the real user and group of the current process.</div><div class='add'>+ *  - ::exist?: Returns whether the file at the given path exists.</div><div class='add'>+ *  - ::file?: Returns whether the file at the given path is a regular file.</div><div class='add'>+ *  - ::ftype: Returns a string giving the type of the file at the given path.</div><div class='add'>+ *  - ::grpowned?: Returns whether the effective group of the current process</div><div class='add'>+ *    owns the file at the given path.</div><div class='add'>+ *  - ::identical?: Returns whether the files at two given paths are identical.</div><div class='add'>+ *  - ::lstat: Returns the File::Stat object for the last symbolic link</div><div class='add'>+ *    in the given path.</div><div class='add'>+ *  - ::owned?: Returns whether the effective user of the current process</div><div class='add'>+ *    owns the file at the given path.</div><div class='add'>+ *  - ::pipe?: Returns whether the file at the given path is a pipe.</div><div class='add'>+ *  - ::readable?: Returns whether the file at the given path is readable</div><div class='add'>+ *    by the effective user and group of the current process.</div><div class='add'>+ *  - ::readable_real?: Returns whether the file at the given path is readable</div><div class='add'>+ *    by the real user and group of the current process.</div><div class='add'>+ *  - ::setgid?: Returns whether the setgid bit is set for the file at the given path.</div><div class='add'>+ *  - ::setuid?: Returns whether the setuid bit is set for the file at the given path.</div><div class='add'>+ *  - ::socket?: Returns whether the file at the given path is a socket.</div><div class='add'>+ *  - ::stat: Returns the File::Stat object for the file at the given path.</div><div class='add'>+ *  - ::sticky?: Returns whether the file at the given path has its sticky bit set.</div><div class='add'>+ *  - ::symlink?: Returns whether the file at the given path is a symbolic link.</div><div class='add'>+ *  - ::umask: Returns the umask value for the current process.</div><div class='add'>+ *  - ::world_readable?: Returns whether the file at the given path is readable</div><div class='add'>+ *    by others.</div><div class='add'>+ *  - ::world_writable?: Returns whether the file at the given path is writable</div><div class='add'>+ *    by others.</div><div class='add'>+ *  - ::writable?: Returns whether the file at the given path is writable</div><div class='add'>+ *    by the effective user and group of the current process.</div><div class='add'>+ *  - ::writable_real?: Returns whether the file at the given path is writable</div><div class='add'>+ *    by the real user and group of the current process.</div><div class='add'>+ *  - #lstat: Returns the File::Stat object for the last symbolic link</div><div class='add'>+ *    in the path for +self+.</div><div class='add'>+ *</div><div class='add'>+ *  _Contents_</div><div class='add'>+ *</div><div class='add'>+ *  - ::empty? (aliased as ::zero?): Returns whether the file at the given path</div><div class='add'>+ *    exists and is empty.</div><div class='add'>+ *  - ::size: Returns the size (bytes) of the file at the given path.</div><div class='add'>+ *  - ::size?: Returns +nil+ if there is no file at the given path,</div><div class='add'>+ *    or if that file is empty; otherwise returns the file size (bytes).</div><div class='add'>+ *  - #size: Returns the size (bytes) of +self+.</div><div class='add'>+ *</div><div class='add'>+ *  === Settings</div><div class='add'>+ *</div><div class='add'>+ *  - ::chmod: Changes permissions of the file at the given path.</div><div class='add'>+ *  - ::chown: Change ownership of the file at the given path.</div><div class='add'>+ *  - ::lchmod: Changes permissions of the last symbolic link in the given path.</div><div class='add'>+ *  - ::lchown: Change ownership of the last symbolic in the given path.</div><div class='add'>+ *  - ::lutime: For each given file path, sets the access time and modification time</div><div class='add'>+ *    of the last symbolic link in the path.</div><div class='add'>+ *  - ::rename: Moves the file at one given path to another given path.</div><div class='add'>+ *  - ::utime: Sets the access time and modification time of each file</div><div class='add'>+ *    at the given paths.</div><div class='add'>+ *  - #flock: Locks or unlocks +self+.</div><div class='add'>+ *</div><div class='add'>+ *  === Other</div><div class='add'>+ *</div><div class='add'>+ *  - ::truncate: Truncates the file at the given file path to the given size.</div><div class='add'>+ *  - ::unlink (aliased as ::delete): Deletes the file for each given file path.</div><div class='add'>+ *  - #truncate: Truncates +self+ to the given size.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_File(void)</div><div class='ctx'> {</div><div class='add'>+#if defined(__APPLE__) &amp;&amp; defined(HAVE_WORKING_FORK)</div><div class='add'>+    rb_CFString_class_initialize_before_fork();</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     VALUE separator;</div><div class='ctx'> </div><div class='ctx'>     rb_mFileTest = rb_define_module("FileTest");</div><div class='hunk'>@@ -6217,7 +7331,6 @@ Init_File(void)</div><div class='ctx'> </div><div class='ctx'>     define_filetest_function("directory?", rb_file_directory_p, 1);</div><div class='ctx'>     define_filetest_function("exist?", rb_file_exist_p, 1);</div><div class='del'>-    define_filetest_function("exists?", rb_file_exists_p, 1);</div><div class='ctx'>     define_filetest_function("readable?", rb_file_readable_p, 1);</div><div class='ctx'>     define_filetest_function("readable_real?", rb_file_readable_real_p, 1);</div><div class='ctx'>     define_filetest_function("world_readable?", rb_file_world_readable_p, 1);</div><div class='hunk'>@@ -6273,12 +7386,13 @@ Init_File(void)</div><div class='ctx'>     rb_define_singleton_method(rb_cFile, "umask", rb_file_s_umask, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cFile, "truncate", rb_file_s_truncate, 2);</div><div class='ctx'>     rb_define_singleton_method(rb_cFile, "mkfifo", rb_file_s_mkfifo, -1);</div><div class='del'>-    rb_define_singleton_method(rb_cFile, "expand_path", rb_file_s_expand_path, -1);</div><div class='del'>-    rb_define_singleton_method(rb_cFile, "absolute_path", rb_file_s_absolute_path, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cFile, "expand_path", s_expand_path, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cFile, "absolute_path", s_absolute_path, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cFile, "absolute_path?", s_absolute_path_p, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cFile, "realpath", rb_file_s_realpath, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cFile, "realdirpath", rb_file_s_realdirpath, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cFile, "basename", rb_file_s_basename, -1);</div><div class='del'>-    rb_define_singleton_method(rb_cFile, "dirname", rb_file_s_dirname, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cFile, "dirname", rb_file_s_dirname, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cFile, "extname", rb_file_s_extname, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cFile, "path", rb_file_s_path, 1);</div><div class='ctx'> </div><div class='hunk'>@@ -6306,7 +7420,7 @@ Init_File(void)</div><div class='ctx'>     rb_define_method(rb_cFile, "mtime", rb_file_mtime, 0);</div><div class='ctx'>     rb_define_method(rb_cFile, "ctime", rb_file_ctime, 0);</div><div class='ctx'>     rb_define_method(rb_cFile, "birthtime", rb_file_birthtime, 0);</div><div class='del'>-    rb_define_method(rb_cFile, "size", rb_file_size, 0);</div><div class='add'>+    rb_define_method(rb_cFile, "size", file_size, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cFile, "chmod", rb_file_chmod, 1);</div><div class='ctx'>     rb_define_method(rb_cFile, "chown", rb_file_chown, 2);</div><div class='hunk'>@@ -6406,8 +7520,6 @@ Init_File(void)</div><div class='ctx'>     /* Name of the null device */</div><div class='ctx'>     rb_define_const(rb_mFConst, "NULL", rb_fstring_cstr(ruby_null_device));</div><div class='ctx'> </div><div class='del'>-    rb_define_method(rb_cFile, "path",  rb_file_path, 0);</div><div class='del'>-    rb_define_method(rb_cFile, "to_path",  rb_file_path, 0);</div><div class='ctx'>     rb_define_global_function("test", rb_f_test, -1);</div><div class='ctx'> </div><div class='ctx'>     rb_cStat = rb_define_class_under(rb_cFile, "Stat", rb_cObject);</div><div class='head'>diff --git a/gc.c b/gc.c<br/>index 0e1a4f39c4..919d57989a 100644<br/>--- a/<a href='/ruby.git/tree/gc.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>gc.c</a><br/>+++ b/<a href='/ruby.git/tree/gc.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>gc.c</a></div><div class='hunk'>@@ -14,45 +14,44 @@</div><div class='ctx'> #define rb_data_object_alloc rb_data_object_alloc</div><div class='ctx'> #define rb_data_typed_object_alloc rb_data_typed_object_alloc</div><div class='ctx'> </div><div class='del'>-#include "ruby/encoding.h"</div><div class='del'>-#include "ruby/io.h"</div><div class='del'>-#include "ruby/st.h"</div><div class='del'>-#include "ruby/re.h"</div><div class='del'>-#include "ruby/thread.h"</div><div class='del'>-#include "ruby/util.h"</div><div class='del'>-#include "ruby/debug.h"</div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "eval_intern.h"</div><div class='del'>-#include "vm_core.h"</div><div class='del'>-#include "gc.h"</div><div class='del'>-#include "constant.h"</div><div class='del'>-#include "ruby_atomic.h"</div><div class='del'>-#include "probes.h"</div><div class='del'>-#include "id_table.h"</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;stdarg.h&gt;</div><div class='del'>-#include &lt;setjmp.h&gt;</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include "ruby_assert.h"</div><div class='del'>-#include "debug_counter.h"</div><div class='del'>-#include "transient_heap.h"</div><div class='del'>-#include "mjit.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+# include "ruby/ruby.h"</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-#undef rb_data_object_wrap</div><div class='add'>+#include &lt;signal.h&gt;</div><div class='add'>+</div><div class='add'>+#define sighandler_t ruby_sighandler_t</div><div class='ctx'> </div><div class='add'>+#ifndef _WIN32</div><div class='add'>+#include &lt;unistd.h&gt;</div><div class='add'>+#include &lt;sys/mman.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(__wasm__) &amp;&amp; !defined(__EMSCRIPTEN__)</div><div class='add'>+# include "wasm/setjmp.h"</div><div class='add'>+# include "wasm/machine.h"</div><div class='add'>+#else</div><div class='add'>+# include &lt;setjmp.h&gt;</div><div class='add'>+#endif</div><div class='add'>+#include &lt;stdarg.h&gt;</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+</div><div class='add'>+/* MALLOC_HEADERS_BEGIN */</div><div class='ctx'> #ifndef HAVE_MALLOC_USABLE_SIZE</div><div class='ctx'> # ifdef _WIN32</div><div class='del'>-#   define HAVE_MALLOC_USABLE_SIZE</div><div class='del'>-#   define malloc_usable_size(a) _msize(a)</div><div class='add'>+#  define HAVE_MALLOC_USABLE_SIZE</div><div class='add'>+#  define malloc_usable_size(a) _msize(a)</div><div class='ctx'> # elif defined HAVE_MALLOC_SIZE</div><div class='del'>-#   define HAVE_MALLOC_USABLE_SIZE</div><div class='del'>-#   define malloc_usable_size(a) malloc_size(a)</div><div class='add'>+#  define HAVE_MALLOC_USABLE_SIZE</div><div class='add'>+#  define malloc_usable_size(a) malloc_size(a)</div><div class='ctx'> # endif</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_MALLOC_USABLE_SIZE</div><div class='ctx'> # ifdef RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='del'>-#  include RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='del'>-# elif HAVE_MALLOC_H</div><div class='add'>+/* Alternative malloc header is included in ruby/missing.h */</div><div class='add'>+# elif defined(HAVE_MALLOC_H)</div><div class='ctx'> #  include &lt;malloc.h&gt;</div><div class='ctx'> # elif defined(HAVE_MALLOC_NP_H)</div><div class='ctx'> #  include &lt;malloc_np.h&gt;</div><div class='hunk'>@@ -61,23 +60,212 @@</div><div class='ctx'> # endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#if !defined(PAGE_SIZE) &amp;&amp; defined(HAVE_SYS_USER_H)</div><div class='add'>+/* LIST_HEAD conflicts with sys/queue.h on macOS */</div><div class='add'>+# include &lt;sys/user.h&gt;</div><div class='add'>+#endif</div><div class='add'>+/* MALLOC_HEADERS_END */</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_SYS_TIME_H</div><div class='del'>-#include &lt;sys/time.h&gt;</div><div class='add'>+# include &lt;sys/time.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_SYS_RESOURCE_H</div><div class='del'>-#include &lt;sys/resource.h&gt;</div><div class='add'>+# include &lt;sys/resource.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if defined _WIN32 || defined __CYGWIN__</div><div class='del'>-#include &lt;windows.h&gt;</div><div class='add'>+# include &lt;windows.h&gt;</div><div class='ctx'> #elif defined(HAVE_POSIX_MEMALIGN)</div><div class='ctx'> #elif defined(HAVE_MEMALIGN)</div><div class='del'>-#include &lt;malloc.h&gt;</div><div class='add'>+# include &lt;malloc.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include &lt;sys/types.h&gt;</div><div class='add'>+</div><div class='add'>+#ifdef __EMSCRIPTEN__</div><div class='add'>+#include &lt;emscripten.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_MACH_TASK_EXCEPTION_PORTS</div><div class='add'>+# include &lt;mach/task.h&gt;</div><div class='add'>+# include &lt;mach/mach_init.h&gt;</div><div class='add'>+# include &lt;mach/mach_port.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+#undef LIST_HEAD /* ccan/list conflicts with BSD-origin sys/queue.h. */</div><div class='add'>+</div><div class='add'>+#include "constant.h"</div><div class='add'>+#include "debug_counter.h"</div><div class='add'>+#include "eval_intern.h"</div><div class='add'>+#include "gc.h"</div><div class='add'>+#include "id_table.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/class.h"</div><div class='add'>+#include "internal/complex.h"</div><div class='add'>+#include "internal/cont.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/eval.h"</div><div class='add'>+#include "internal/gc.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/imemo.h"</div><div class='add'>+#include "internal/io.h"</div><div class='add'>+#include "internal/numeric.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/proc.h"</div><div class='add'>+#include "internal/rational.h"</div><div class='add'>+#include "internal/sanitizers.h"</div><div class='add'>+#include "internal/struct.h"</div><div class='add'>+#include "internal/symbol.h"</div><div class='add'>+#include "internal/thread.h"</div><div class='add'>+#include "internal/variable.h"</div><div class='add'>+#include "internal/warnings.h"</div><div class='add'>+#include "mjit.h"</div><div class='add'>+#include "probes.h"</div><div class='add'>+#include "regint.h"</div><div class='add'>+#include "ruby/debug.h"</div><div class='add'>+#include "ruby/io.h"</div><div class='add'>+#include "ruby/re.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+#include "ruby/thread.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "ruby_assert.h"</div><div class='add'>+#include "ruby_atomic.h"</div><div class='add'>+#include "symbol.h"</div><div class='add'>+#include "transient_heap.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "vm_sync.h"</div><div class='add'>+#include "vm_callinfo.h"</div><div class='add'>+#include "ractor_core.h"</div><div class='add'>+</div><div class='add'>+#include "builtin.h"</div><div class='add'>+#include "shape.h"</div><div class='ctx'> </div><div class='ctx'> #define rb_setjmp(env) RUBY_SETJMP(env)</div><div class='ctx'> #define rb_jmp_buf rb_jmpbuf_t</div><div class='add'>+#undef rb_data_object_wrap</div><div class='add'>+</div><div class='add'>+#if !defined(MAP_ANONYMOUS) &amp;&amp; defined(MAP_ANON)</div><div class='add'>+#define MAP_ANONYMOUS MAP_ANON</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static inline struct rbimpl_size_mul_overflow_tag</div><div class='add'>+size_add_overflow(size_t x, size_t y)</div><div class='add'>+{</div><div class='add'>+    size_t z;</div><div class='add'>+    bool p;</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif __has_builtin(__builtin_add_overflow)</div><div class='add'>+    p = __builtin_add_overflow(x, y, &amp;z);</div><div class='add'>+</div><div class='add'>+#elif defined(DSIZE_T)</div><div class='add'>+    RB_GNUC_EXTENSION DSIZE_T dx = x;</div><div class='add'>+    RB_GNUC_EXTENSION DSIZE_T dy = y;</div><div class='add'>+    RB_GNUC_EXTENSION DSIZE_T dz = dx + dy;</div><div class='add'>+    p = dz &gt; SIZE_MAX;</div><div class='add'>+    z = (size_t)dz;</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    z = x + y;</div><div class='add'>+    p = z &lt; y;</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+    return (struct rbimpl_size_mul_overflow_tag) { p, z, };</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline struct rbimpl_size_mul_overflow_tag</div><div class='add'>+size_mul_add_overflow(size_t x, size_t y, size_t z) /* x * y + z */</div><div class='add'>+{</div><div class='add'>+    struct rbimpl_size_mul_overflow_tag t = rbimpl_size_mul_overflow(x, y);</div><div class='add'>+    struct rbimpl_size_mul_overflow_tag u = size_add_overflow(t.right, z);</div><div class='add'>+    return (struct rbimpl_size_mul_overflow_tag) { t.left || u.left, u.right };</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline struct rbimpl_size_mul_overflow_tag</div><div class='add'>+size_mul_add_mul_overflow(size_t x, size_t y, size_t z, size_t w) /* x * y + z * w */</div><div class='add'>+{</div><div class='add'>+    struct rbimpl_size_mul_overflow_tag t = rbimpl_size_mul_overflow(x, y);</div><div class='add'>+    struct rbimpl_size_mul_overflow_tag u = rbimpl_size_mul_overflow(z, w);</div><div class='add'>+    struct rbimpl_size_mul_overflow_tag v = size_add_overflow(t.right, u.right);</div><div class='add'>+    return (struct rbimpl_size_mul_overflow_tag) { t.left || u.left || v.left, v.right };</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+PRINTF_ARGS(NORETURN(static void gc_raise(VALUE, const char*, ...)), 2, 3);</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+size_mul_or_raise(size_t x, size_t y, VALUE exc)</div><div class='add'>+{</div><div class='add'>+    struct rbimpl_size_mul_overflow_tag t = rbimpl_size_mul_overflow(x, y);</div><div class='add'>+    if (LIKELY(!t.left)) {</div><div class='add'>+        return t.right;</div><div class='add'>+    }</div><div class='add'>+    else if (rb_during_gc()) {</div><div class='add'>+        rb_memerror();          /* or...? */</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        gc_raise(</div><div class='add'>+            exc,</div><div class='add'>+            "integer overflow: %"PRIuSIZE</div><div class='add'>+            " * %"PRIuSIZE</div><div class='add'>+            " &gt; %"PRIuSIZE,</div><div class='add'>+            x, y, (size_t)SIZE_MAX);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+size_t</div><div class='add'>+rb_size_mul_or_raise(size_t x, size_t y, VALUE exc)</div><div class='add'>+{</div><div class='add'>+    return size_mul_or_raise(x, y, exc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+size_mul_add_or_raise(size_t x, size_t y, size_t z, VALUE exc)</div><div class='add'>+{</div><div class='add'>+    struct rbimpl_size_mul_overflow_tag t = size_mul_add_overflow(x, y, z);</div><div class='add'>+    if (LIKELY(!t.left)) {</div><div class='add'>+        return t.right;</div><div class='add'>+    }</div><div class='add'>+    else if (rb_during_gc()) {</div><div class='add'>+        rb_memerror();          /* or...? */</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        gc_raise(</div><div class='add'>+            exc,</div><div class='add'>+            "integer overflow: %"PRIuSIZE</div><div class='add'>+            " * %"PRIuSIZE</div><div class='add'>+            " + %"PRIuSIZE</div><div class='add'>+            " &gt; %"PRIuSIZE,</div><div class='add'>+            x, y, z, (size_t)SIZE_MAX);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+size_t</div><div class='add'>+rb_size_mul_add_or_raise(size_t x, size_t y, size_t z, VALUE exc)</div><div class='add'>+{</div><div class='add'>+    return size_mul_add_or_raise(x, y, z, exc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+size_mul_add_mul_or_raise(size_t x, size_t y, size_t z, size_t w, VALUE exc)</div><div class='add'>+{</div><div class='add'>+    struct rbimpl_size_mul_overflow_tag t = size_mul_add_mul_overflow(x, y, z, w);</div><div class='add'>+    if (LIKELY(!t.left)) {</div><div class='add'>+        return t.right;</div><div class='add'>+    }</div><div class='add'>+    else if (rb_during_gc()) {</div><div class='add'>+        rb_memerror();          /* or...? */</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        gc_raise(</div><div class='add'>+            exc,</div><div class='add'>+            "integer overflow: %"PRIdSIZE</div><div class='add'>+            " * %"PRIdSIZE</div><div class='add'>+            " + %"PRIdSIZE</div><div class='add'>+            " * %"PRIdSIZE</div><div class='add'>+            " &gt; %"PRIdSIZE,</div><div class='add'>+            x, y, z, w, (size_t)SIZE_MAX);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_RB_GC_GUARDED_PTR_VAL) &amp;&amp; HAVE_RB_GC_GUARDED_PTR_VAL</div><div class='ctx'> /* trick the compiler into thinking a external signal handler uses this */</div><div class='hunk'>@@ -201,7 +389,6 @@ static ruby_gc_params_t gc_params = {</div><div class='ctx'> #define GC_DEBUG 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'> /* RGENGC_DEBUG:</div><div class='ctx'>  * 1: basic information</div><div class='ctx'>  * 2: remember set operation</div><div class='hunk'>@@ -218,8 +405,10 @@ static ruby_gc_params_t gc_params = {</div><div class='ctx'> #endif</div><div class='ctx'> #if RGENGC_DEBUG &lt; 0 &amp;&amp; !defined(_MSC_VER)</div><div class='ctx'> # define RGENGC_DEBUG_ENABLED(level) (-(RGENGC_DEBUG) &gt;= (level) &amp;&amp; ruby_rgengc_debug &gt;= (level))</div><div class='del'>-#else</div><div class='add'>+#elif defined(HAVE_VA_ARGS_MACRO)</div><div class='ctx'> # define RGENGC_DEBUG_ENABLED(level) ((RGENGC_DEBUG) &gt;= (level))</div><div class='add'>+#else</div><div class='add'>+# define RGENGC_DEBUG_ENABLED(level) 0</div><div class='ctx'> #endif</div><div class='ctx'> int ruby_rgengc_debug;</div><div class='ctx'> </div><div class='hunk'>@@ -235,11 +424,8 @@ int ruby_rgengc_debug;</div><div class='ctx'> #define RGENGC_CHECK_MODE  0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if RGENGC_CHECK_MODE &gt; 0</div><div class='add'>+// Note: using RUBY_ASSERT_WHEN() extend a macro in expr (info by nobu).</div><div class='ctx'> #define GC_ASSERT(expr) RUBY_ASSERT_MESG_WHEN(RGENGC_CHECK_MODE &gt; 0, expr, #expr)</div><div class='del'>-#else</div><div class='del'>-#define GC_ASSERT(expr) ((void)0)</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> /* RGENGC_OLD_NEWOBJ_CHECK</div><div class='ctx'>  * 0:  disable all assertions</div><div class='hunk'>@@ -277,22 +463,6 @@ int ruby_rgengc_debug;</div><div class='ctx'> #define RGENGC_FORCE_MAJOR_GC 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#else /* USE_RGENGC */</div><div class='del'>-</div><div class='del'>-#ifdef RGENGC_DEBUG</div><div class='del'>-#undef RGENGC_DEBUG</div><div class='del'>-#endif</div><div class='del'>-#define RGENGC_DEBUG       0</div><div class='del'>-#ifdef RGENGC_CHECK_MODE</div><div class='del'>-#undef RGENGC_CHECK_MODE</div><div class='del'>-#endif</div><div class='del'>-#define RGENGC_CHECK_MODE  0</div><div class='del'>-#define RGENGC_PROFILE     0</div><div class='del'>-#define RGENGC_ESTIMATE_OLDMALLOC 0</div><div class='del'>-#define RGENGC_FORCE_MAJOR_GC 0</div><div class='del'>-</div><div class='del'>-#endif /* USE_RGENGC */</div><div class='del'>-</div><div class='ctx'> #ifndef GC_PROFILE_MORE_DETAIL</div><div class='ctx'> #define GC_PROFILE_MORE_DETAIL 0</div><div class='ctx'> #endif</div><div class='hunk'>@@ -350,11 +520,16 @@ typedef enum {</div><div class='ctx'>     GPR_FLAG_IMMEDIATE_SWEEP   = 0x2000,</div><div class='ctx'>     GPR_FLAG_HAVE_FINALIZE     = 0x4000,</div><div class='ctx'>     GPR_FLAG_IMMEDIATE_MARK    = 0x8000,</div><div class='del'>-    GPR_FLAG_FULL_MARK        = 0x10000</div><div class='add'>+    GPR_FLAG_FULL_MARK        = 0x10000,</div><div class='add'>+    GPR_FLAG_COMPACT          = 0x20000,</div><div class='add'>+</div><div class='add'>+    GPR_DEFAULT_REASON =</div><div class='add'>+        (GPR_FLAG_FULL_MARK | GPR_FLAG_IMMEDIATE_MARK |</div><div class='add'>+         GPR_FLAG_IMMEDIATE_SWEEP | GPR_FLAG_CAPI),</div><div class='ctx'> } gc_profile_record_flag;</div><div class='ctx'> </div><div class='ctx'> typedef struct gc_profile_record {</div><div class='del'>-    int flags;</div><div class='add'>+    unsigned int flags;</div><div class='ctx'> </div><div class='ctx'>     double gc_time;</div><div class='ctx'>     double gc_invoke_time;</div><div class='hunk'>@@ -362,6 +537,7 @@ typedef struct gc_profile_record {</div><div class='ctx'>     size_t heap_total_objects;</div><div class='ctx'>     size_t heap_use_size;</div><div class='ctx'>     size_t heap_total_size;</div><div class='add'>+    size_t moved_objects;</div><div class='ctx'> </div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='ctx'>     double gc_mark_time;</div><div class='hunk'>@@ -394,66 +570,89 @@ typedef struct gc_profile_record {</div><div class='ctx'> #endif</div><div class='ctx'> } gc_profile_record;</div><div class='ctx'> </div><div class='del'>-#if defined(_MSC_VER) || defined(__CYGWIN__)</div><div class='del'>-#pragma pack(push, 1) /* magic for reducing sizeof(RVALUE): 24 -&gt; 20 */</div><div class='del'>-#endif</div><div class='add'>+struct RMoved {</div><div class='add'>+    VALUE flags;</div><div class='add'>+    VALUE dummy;</div><div class='add'>+    VALUE destination;</div><div class='add'>+    shape_id_t original_shape_id;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define RMOVED(obj) ((struct RMoved *)(obj))</div><div class='ctx'> </div><div class='ctx'> typedef struct RVALUE {</div><div class='ctx'>     union {</div><div class='del'>-	struct {</div><div class='del'>-	    VALUE flags;		/* always 0 for freed obj */</div><div class='del'>-	    struct RVALUE *next;</div><div class='del'>-	} free;</div><div class='del'>-	struct RBasic  basic;</div><div class='del'>-	struct RObject object;</div><div class='del'>-	struct RClass  klass;</div><div class='del'>-	struct RFloat  flonum;</div><div class='del'>-	struct RString string;</div><div class='del'>-	struct RArray  array;</div><div class='del'>-	struct RRegexp regexp;</div><div class='del'>-	struct RHash   hash;</div><div class='del'>-	struct RData   data;</div><div class='del'>-	struct RTypedData   typeddata;</div><div class='del'>-	struct RStruct rstruct;</div><div class='del'>-	struct RBignum bignum;</div><div class='del'>-	struct RFile   file;</div><div class='del'>-	struct RMatch  match;</div><div class='del'>-	struct RRational rational;</div><div class='del'>-	struct RComplex complex;</div><div class='del'>-	union {</div><div class='del'>-	    rb_cref_t cref;</div><div class='del'>-	    struct vm_svar svar;</div><div class='del'>-	    struct vm_throw_data throw_data;</div><div class='del'>-	    struct vm_ifunc ifunc;</div><div class='del'>-	    struct MEMO memo;</div><div class='del'>-	    struct rb_method_entry_struct ment;</div><div class='del'>-	    const rb_iseq_t iseq;</div><div class='del'>-	    rb_env_t env;</div><div class='del'>-	    struct rb_imemo_tmpbuf_struct alloc;</div><div class='del'>-	    rb_ast_t ast;</div><div class='del'>-	} imemo;</div><div class='del'>-	struct {</div><div class='del'>-	    struct RBasic basic;</div><div class='del'>-	    VALUE v1;</div><div class='del'>-	    VALUE v2;</div><div class='del'>-	    VALUE v3;</div><div class='del'>-	} values;</div><div class='add'>+        struct {</div><div class='add'>+            VALUE flags;		/* always 0 for freed obj */</div><div class='add'>+            struct RVALUE *next;</div><div class='add'>+        } free;</div><div class='add'>+        struct RMoved  moved;</div><div class='add'>+        struct RBasic  basic;</div><div class='add'>+        struct RObject object;</div><div class='add'>+        struct RClass  klass;</div><div class='add'>+        struct RFloat  flonum;</div><div class='add'>+        struct RString string;</div><div class='add'>+        struct RArray  array;</div><div class='add'>+        struct RRegexp regexp;</div><div class='add'>+        struct RHash   hash;</div><div class='add'>+        struct RData   data;</div><div class='add'>+        struct RTypedData   typeddata;</div><div class='add'>+        struct RStruct rstruct;</div><div class='add'>+        struct RBignum bignum;</div><div class='add'>+        struct RFile   file;</div><div class='add'>+        struct RMatch  match;</div><div class='add'>+        struct RRational rational;</div><div class='add'>+        struct RComplex complex;</div><div class='add'>+        struct RSymbol symbol;</div><div class='add'>+        union {</div><div class='add'>+            rb_cref_t cref;</div><div class='add'>+            struct vm_svar svar;</div><div class='add'>+            struct vm_throw_data throw_data;</div><div class='add'>+            struct vm_ifunc ifunc;</div><div class='add'>+            struct MEMO memo;</div><div class='add'>+            struct rb_method_entry_struct ment;</div><div class='add'>+            const rb_iseq_t iseq;</div><div class='add'>+            rb_env_t env;</div><div class='add'>+            struct rb_imemo_tmpbuf_struct alloc;</div><div class='add'>+            rb_ast_t ast;</div><div class='add'>+        } imemo;</div><div class='add'>+        struct {</div><div class='add'>+            struct RBasic basic;</div><div class='add'>+            VALUE v1;</div><div class='add'>+            VALUE v2;</div><div class='add'>+            VALUE v3;</div><div class='add'>+        } values;</div><div class='ctx'>     } as;</div><div class='add'>+</div><div class='add'>+    /* Start of RVALUE_OVERHEAD.</div><div class='add'>+     * Do not directly read these members from the RVALUE as they're located</div><div class='add'>+     * at the end of the slot (which may differ in size depending on the size</div><div class='add'>+     * pool). */</div><div class='add'>+#if RACTOR_CHECK_MODE</div><div class='add'>+    uint32_t _ractor_belonging_id;</div><div class='add'>+#endif</div><div class='ctx'> #if GC_DEBUG</div><div class='ctx'>     const char *file;</div><div class='ctx'>     int line;</div><div class='ctx'> #endif</div><div class='ctx'> } RVALUE;</div><div class='ctx'> </div><div class='del'>-#if defined(_MSC_VER) || defined(__CYGWIN__)</div><div class='del'>-#pragma pack(pop)</div><div class='add'>+#if RACTOR_CHECK_MODE</div><div class='add'>+# define RVALUE_OVERHEAD (sizeof(RVALUE) - offsetof(RVALUE, _ractor_belonging_id))</div><div class='add'>+#elif GC_DEBUG</div><div class='add'>+# define RVALUE_OVERHEAD (sizeof(RVALUE) - offsetof(RVALUE, file))</div><div class='add'>+#else</div><div class='add'>+# define RVALUE_OVERHEAD 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+STATIC_ASSERT(sizeof_rvalue, sizeof(RVALUE) == (SIZEOF_VALUE * 5) + RVALUE_OVERHEAD);</div><div class='add'>+STATIC_ASSERT(alignof_rvalue, RUBY_ALIGNOF(RVALUE) == SIZEOF_VALUE);</div><div class='add'>+</div><div class='ctx'> typedef uintptr_t bits_t;</div><div class='ctx'> enum {</div><div class='ctx'>     BITS_SIZE = sizeof(bits_t),</div><div class='ctx'>     BITS_BITLENGTH = ( BITS_SIZE * CHAR_BIT )</div><div class='ctx'> };</div><div class='add'>+#define popcount_bits rb_popcount_intptr</div><div class='ctx'> </div><div class='ctx'> struct heap_page_header {</div><div class='ctx'>     struct heap_page *page;</div><div class='hunk'>@@ -486,13 +685,15 @@ typedef struct mark_stack {</div><div class='ctx'>     size_t unused_cache_size;</div><div class='ctx'> } mark_stack_t;</div><div class='ctx'> </div><div class='del'>-typedef struct rb_heap_struct {</div><div class='del'>-    RVALUE *freelist;</div><div class='add'>+#define SIZE_POOL_EDEN_HEAP(size_pool) (&amp;(size_pool)-&gt;eden_heap)</div><div class='add'>+#define SIZE_POOL_TOMB_HEAP(size_pool) (&amp;(size_pool)-&gt;tomb_heap)</div><div class='ctx'> </div><div class='add'>+typedef struct rb_heap_struct {</div><div class='ctx'>     struct heap_page *free_pages;</div><div class='del'>-    struct heap_page *using_page;</div><div class='del'>-    struct list_head pages;</div><div class='add'>+    struct ccan_list_head pages;</div><div class='ctx'>     struct heap_page *sweeping_page; /* iterator for .pages */</div><div class='add'>+    struct heap_page *compact_cursor;</div><div class='add'>+    uintptr_t compact_cursor_index;</div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='ctx'>     struct heap_page *pooled_pages;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -500,148 +701,175 @@ typedef struct rb_heap_struct {</div><div class='ctx'>     size_t total_slots;      /* total slot count (about total_pages * HEAP_PAGE_OBJ_LIMIT) */</div><div class='ctx'> } rb_heap_t;</div><div class='ctx'> </div><div class='add'>+typedef struct rb_size_pool_struct {</div><div class='add'>+    short slot_size;</div><div class='add'>+</div><div class='add'>+    size_t allocatable_pages;</div><div class='add'>+</div><div class='add'>+    /* Basic statistics */</div><div class='add'>+    size_t total_allocated_pages;</div><div class='add'>+    size_t total_freed_pages;</div><div class='add'>+    size_t force_major_gc_count;</div><div class='add'>+</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    /* Sweeping statistics */</div><div class='add'>+    size_t freed_slots;</div><div class='add'>+    size_t empty_slots;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    rb_heap_t eden_heap;</div><div class='add'>+    rb_heap_t tomb_heap;</div><div class='add'>+} rb_size_pool_t;</div><div class='add'>+</div><div class='ctx'> enum gc_mode {</div><div class='ctx'>     gc_mode_none,</div><div class='ctx'>     gc_mode_marking,</div><div class='del'>-    gc_mode_sweeping</div><div class='add'>+    gc_mode_sweeping,</div><div class='add'>+    gc_mode_compacting,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> typedef struct rb_objspace {</div><div class='ctx'>     struct {</div><div class='del'>-	size_t limit;</div><div class='del'>-	size_t increase;</div><div class='add'>+        size_t limit;</div><div class='add'>+        size_t increase;</div><div class='ctx'> #if MALLOC_ALLOCATED_SIZE</div><div class='del'>-	size_t allocated_size;</div><div class='del'>-	size_t allocations;</div><div class='add'>+        size_t allocated_size;</div><div class='add'>+        size_t allocations;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'>     } malloc_params;</div><div class='ctx'> </div><div class='ctx'>     struct {</div><div class='del'>-	unsigned int mode : 2;</div><div class='del'>-	unsigned int immediate_sweep : 1;</div><div class='del'>-	unsigned int dont_gc : 1;</div><div class='del'>-	unsigned int dont_incremental : 1;</div><div class='del'>-	unsigned int during_gc : 1;</div><div class='del'>-	unsigned int gc_stressful: 1;</div><div class='del'>-	unsigned int has_hook: 1;</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-	unsigned int during_minor_gc : 1;</div><div class='del'>-#endif</div><div class='add'>+        unsigned int mode : 2;</div><div class='add'>+        unsigned int immediate_sweep : 1;</div><div class='add'>+        unsigned int dont_gc : 1;</div><div class='add'>+        unsigned int dont_incremental : 1;</div><div class='add'>+        unsigned int during_gc : 1;</div><div class='add'>+        unsigned int during_compacting : 1;</div><div class='add'>+        unsigned int gc_stressful: 1;</div><div class='add'>+        unsigned int has_hook: 1;</div><div class='add'>+        unsigned int during_minor_gc : 1;</div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='del'>-	unsigned int during_incremental_marking : 1;</div><div class='add'>+        unsigned int during_incremental_marking : 1;</div><div class='ctx'> #endif</div><div class='add'>+        unsigned int measure_gc : 1;</div><div class='ctx'>     } flags;</div><div class='ctx'> </div><div class='ctx'>     rb_event_flag_t hook_events;</div><div class='ctx'>     size_t total_allocated_objects;</div><div class='add'>+    VALUE next_object_id;</div><div class='ctx'> </div><div class='del'>-    rb_heap_t eden_heap;</div><div class='del'>-    rb_heap_t tomb_heap; /* heap for zombies and ghosts */</div><div class='add'>+    rb_size_pool_t size_pools[SIZE_POOL_COUNT];</div><div class='ctx'> </div><div class='ctx'>     struct {</div><div class='del'>-	rb_atomic_t finalizing;</div><div class='add'>+        rb_atomic_t finalizing;</div><div class='ctx'>     } atomic_flags;</div><div class='ctx'> </div><div class='del'>-    struct mark_func_data_struct {</div><div class='del'>-	void *data;</div><div class='del'>-	void (*mark_func)(VALUE v, void *data);</div><div class='del'>-    } *mark_func_data;</div><div class='del'>-</div><div class='ctx'>     mark_stack_t mark_stack;</div><div class='ctx'>     size_t marked_slots;</div><div class='ctx'> </div><div class='ctx'>     struct {</div><div class='del'>-	struct heap_page **sorted;</div><div class='del'>-	size_t allocated_pages;</div><div class='del'>-	size_t allocatable_pages;</div><div class='del'>-	size_t sorted_length;</div><div class='del'>-	RVALUE *range[2];</div><div class='del'>-	size_t freeable_pages;</div><div class='del'>-</div><div class='del'>-	/* final */</div><div class='del'>-	size_t final_slots;</div><div class='del'>-	VALUE deferred_final;</div><div class='add'>+        struct heap_page **sorted;</div><div class='add'>+        size_t allocated_pages;</div><div class='add'>+        size_t allocatable_pages;</div><div class='add'>+        size_t sorted_length;</div><div class='add'>+        uintptr_t range[2];</div><div class='add'>+        size_t freeable_pages;</div><div class='add'>+</div><div class='add'>+        /* final */</div><div class='add'>+        size_t final_slots;</div><div class='add'>+        VALUE deferred_final;</div><div class='ctx'>     } heap_pages;</div><div class='ctx'> </div><div class='ctx'>     st_table *finalizer_table;</div><div class='ctx'> </div><div class='ctx'>     struct {</div><div class='del'>-	int run;</div><div class='del'>-	int latest_gc_info;</div><div class='del'>-	gc_profile_record *records;</div><div class='del'>-	gc_profile_record *current_record;</div><div class='del'>-	size_t next_index;</div><div class='del'>-	size_t size;</div><div class='add'>+        int run;</div><div class='add'>+        unsigned int latest_gc_info;</div><div class='add'>+        gc_profile_record *records;</div><div class='add'>+        gc_profile_record *current_record;</div><div class='add'>+        size_t next_index;</div><div class='add'>+        size_t size;</div><div class='ctx'> </div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='del'>-	double prepare_time;</div><div class='add'>+        double prepare_time;</div><div class='ctx'> #endif</div><div class='del'>-	double invoke_time;</div><div class='add'>+        double invoke_time;</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='del'>-	size_t minor_gc_count;</div><div class='del'>-	size_t major_gc_count;</div><div class='add'>+        size_t minor_gc_count;</div><div class='add'>+        size_t major_gc_count;</div><div class='add'>+        size_t compact_count;</div><div class='add'>+        size_t read_barrier_faults;</div><div class='ctx'> #if RGENGC_PROFILE &gt; 0</div><div class='del'>-	size_t total_generated_normal_object_count;</div><div class='del'>-	size_t total_generated_shady_object_count;</div><div class='del'>-	size_t total_shade_operation_count;</div><div class='del'>-	size_t total_promoted_count;</div><div class='del'>-	size_t total_remembered_normal_object_count;</div><div class='del'>-	size_t total_remembered_shady_object_count;</div><div class='add'>+        size_t total_generated_normal_object_count;</div><div class='add'>+        size_t total_generated_shady_object_count;</div><div class='add'>+        size_t total_shade_operation_count;</div><div class='add'>+        size_t total_promoted_count;</div><div class='add'>+        size_t total_remembered_normal_object_count;</div><div class='add'>+        size_t total_remembered_shady_object_count;</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_PROFILE &gt;= 2</div><div class='del'>-	size_t generated_normal_object_count_types[RUBY_T_MASK];</div><div class='del'>-	size_t generated_shady_object_count_types[RUBY_T_MASK];</div><div class='del'>-	size_t shade_operation_count_types[RUBY_T_MASK];</div><div class='del'>-	size_t promoted_types[RUBY_T_MASK];</div><div class='del'>-	size_t remembered_normal_object_count_types[RUBY_T_MASK];</div><div class='del'>-	size_t remembered_shady_object_count_types[RUBY_T_MASK];</div><div class='add'>+        size_t generated_normal_object_count_types[RUBY_T_MASK];</div><div class='add'>+        size_t generated_shady_object_count_types[RUBY_T_MASK];</div><div class='add'>+        size_t shade_operation_count_types[RUBY_T_MASK];</div><div class='add'>+        size_t promoted_types[RUBY_T_MASK];</div><div class='add'>+        size_t remembered_normal_object_count_types[RUBY_T_MASK];</div><div class='add'>+        size_t remembered_shady_object_count_types[RUBY_T_MASK];</div><div class='ctx'> #endif</div><div class='ctx'> #endif /* RGENGC_PROFILE */</div><div class='del'>-#endif /* USE_RGENGC */</div><div class='del'>-</div><div class='del'>-	/* temporary profiling space */</div><div class='del'>-	double gc_sweep_start_time;</div><div class='del'>-	size_t total_allocated_objects_at_gc_start;</div><div class='del'>-	size_t heap_used_at_gc_start;</div><div class='del'>-</div><div class='del'>-	/* basic statistics */</div><div class='del'>-	size_t count;</div><div class='del'>-	size_t total_freed_objects;</div><div class='del'>-	size_t total_allocated_pages;</div><div class='del'>-	size_t total_freed_pages;</div><div class='add'>+</div><div class='add'>+        /* temporary profiling space */</div><div class='add'>+        double gc_sweep_start_time;</div><div class='add'>+        size_t total_allocated_objects_at_gc_start;</div><div class='add'>+        size_t heap_used_at_gc_start;</div><div class='add'>+</div><div class='add'>+        /* basic statistics */</div><div class='add'>+        size_t count;</div><div class='add'>+        size_t total_freed_objects;</div><div class='add'>+        uint64_t total_time_ns;</div><div class='add'>+        struct timespec start_time;</div><div class='ctx'>     } profile;</div><div class='ctx'>     struct gc_list *global_list;</div><div class='ctx'> </div><div class='ctx'>     VALUE gc_stress_mode;</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     struct {</div><div class='del'>-	VALUE parent_object;</div><div class='del'>-	int need_major_gc;</div><div class='del'>-	size_t last_major_gc;</div><div class='del'>-	size_t uncollectible_wb_unprotected_objects;</div><div class='del'>-	size_t uncollectible_wb_unprotected_objects_limit;</div><div class='del'>-	size_t old_objects;</div><div class='del'>-	size_t old_objects_limit;</div><div class='add'>+        VALUE parent_object;</div><div class='add'>+        int need_major_gc;</div><div class='add'>+        size_t last_major_gc;</div><div class='add'>+        size_t uncollectible_wb_unprotected_objects;</div><div class='add'>+        size_t uncollectible_wb_unprotected_objects_limit;</div><div class='add'>+        size_t old_objects;</div><div class='add'>+        size_t old_objects_limit;</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='del'>-	size_t oldmalloc_increase;</div><div class='del'>-	size_t oldmalloc_increase_limit;</div><div class='add'>+        size_t oldmalloc_increase;</div><div class='add'>+        size_t oldmalloc_increase_limit;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_CHECK_MODE &gt;= 2</div><div class='del'>-	struct st_table *allrefs_table;</div><div class='del'>-	size_t error_count;</div><div class='add'>+        struct st_table *allrefs_table;</div><div class='add'>+        size_t error_count;</div><div class='ctx'> #endif</div><div class='ctx'>     } rgengc;</div><div class='add'>+</div><div class='add'>+    struct {</div><div class='add'>+        size_t considered_count_table[T_MASK];</div><div class='add'>+        size_t moved_count_table[T_MASK];</div><div class='add'>+        size_t moved_up_count_table[T_MASK];</div><div class='add'>+        size_t moved_down_count_table[T_MASK];</div><div class='add'>+        size_t total_moved;</div><div class='add'>+    } rcompactor;</div><div class='add'>+</div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='ctx'>     struct {</div><div class='del'>-	size_t pooled_slots;</div><div class='del'>-	size_t step_slots;</div><div class='add'>+        size_t pooled_slots;</div><div class='add'>+        size_t step_slots;</div><div class='ctx'>     } rincgc;</div><div class='ctx'> #endif</div><div class='del'>-#endif /* USE_RGENGC */</div><div class='add'>+</div><div class='add'>+    st_table *id_to_obj_tbl;</div><div class='add'>+    st_table *obj_to_id_tbl;</div><div class='ctx'> </div><div class='ctx'> #if GC_DEBUG_STRESS_TO_CLASS</div><div class='ctx'>     VALUE stress_to_class;</div><div class='hunk'>@@ -649,52 +877,123 @@ typedef struct rb_objspace {</div><div class='ctx'> } rb_objspace_t;</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-/* default tiny heap size: 16KB */</div><div class='del'>-#define HEAP_PAGE_ALIGN_LOG 14</div><div class='del'>-#define CEILDIV(i, mod) (((i) + (mod) - 1)/(mod))</div><div class='add'>+#ifndef HEAP_PAGE_ALIGN_LOG</div><div class='add'>+/* default tiny heap size: 64KiB */</div><div class='add'>+#define HEAP_PAGE_ALIGN_LOG 16</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define BASE_SLOT_SIZE sizeof(RVALUE)</div><div class='add'>+</div><div class='add'>+#define CEILDIV(i, mod) roomof(i, mod)</div><div class='ctx'> enum {</div><div class='ctx'>     HEAP_PAGE_ALIGN = (1UL &lt;&lt; HEAP_PAGE_ALIGN_LOG),</div><div class='ctx'>     HEAP_PAGE_ALIGN_MASK = (~(~0UL &lt;&lt; HEAP_PAGE_ALIGN_LOG)),</div><div class='del'>-    REQUIRED_SIZE_BY_MALLOC = (sizeof(size_t) * 5),</div><div class='del'>-    HEAP_PAGE_SIZE = (HEAP_PAGE_ALIGN - REQUIRED_SIZE_BY_MALLOC),</div><div class='del'>-    HEAP_PAGE_OBJ_LIMIT = (unsigned int)((HEAP_PAGE_SIZE - sizeof(struct heap_page_header))/sizeof(struct RVALUE)),</div><div class='del'>-    HEAP_PAGE_BITMAP_LIMIT = CEILDIV(CEILDIV(HEAP_PAGE_SIZE, sizeof(struct RVALUE)), BITS_BITLENGTH),</div><div class='add'>+    HEAP_PAGE_SIZE = HEAP_PAGE_ALIGN,</div><div class='add'>+    HEAP_PAGE_OBJ_LIMIT = (unsigned int)((HEAP_PAGE_SIZE - sizeof(struct heap_page_header)) / BASE_SLOT_SIZE),</div><div class='add'>+    HEAP_PAGE_BITMAP_LIMIT = CEILDIV(CEILDIV(HEAP_PAGE_SIZE, BASE_SLOT_SIZE), BITS_BITLENGTH),</div><div class='ctx'>     HEAP_PAGE_BITMAP_SIZE = (BITS_SIZE * HEAP_PAGE_BITMAP_LIMIT),</div><div class='del'>-    HEAP_PAGE_BITMAP_PLANES = USE_RGENGC ? 4 : 1 /* RGENGC: mark, unprotected, uncollectible, marking */</div><div class='ctx'> };</div><div class='add'>+#define HEAP_PAGE_ALIGN (1 &lt;&lt; HEAP_PAGE_ALIGN_LOG)</div><div class='add'>+#define HEAP_PAGE_SIZE HEAP_PAGE_ALIGN</div><div class='add'>+</div><div class='add'>+#if GC_ENABLE_INCREMENTAL_MARK &amp;&amp; !defined(INCREMENTAL_MARK_STEP_ALLOCATIONS)</div><div class='add'>+# define INCREMENTAL_MARK_STEP_ALLOCATIONS 500</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef INIT_HEAP_PAGE_ALLOC_USE_MMAP</div><div class='add'>+/* Must define either HEAP_PAGE_ALLOC_USE_MMAP or</div><div class='add'>+ * INIT_HEAP_PAGE_ALLOC_USE_MMAP. */</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_MMAP</div><div class='add'>+/* We can't use mmap of course, if it is not available. */</div><div class='add'>+static const bool HEAP_PAGE_ALLOC_USE_MMAP = false;</div><div class='add'>+</div><div class='add'>+#elif defined(__wasm__)</div><div class='add'>+/* wasmtime does not have proper support for mmap.</div><div class='add'>+ * See https://github.com/bytecodealliance/wasmtime/blob/main/docs/WASI-rationale.md#why-no-mmap-and-friends</div><div class='add'>+ */</div><div class='add'>+static const bool HEAP_PAGE_ALLOC_USE_MMAP = false;</div><div class='add'>+</div><div class='add'>+#elif HAVE_CONST_PAGE_SIZE</div><div class='add'>+/* If we have the PAGE_SIZE and it is a constant, then we can directly use it. */</div><div class='add'>+static const bool HEAP_PAGE_ALLOC_USE_MMAP = (PAGE_SIZE &lt;= HEAP_PAGE_SIZE);</div><div class='add'>+</div><div class='add'>+#elif defined(PAGE_MAX_SIZE) &amp;&amp; (PAGE_MAX_SIZE &lt;= HEAP_PAGE_SIZE)</div><div class='add'>+/* If we can use the maximum page size. */</div><div class='add'>+static const bool HEAP_PAGE_ALLOC_USE_MMAP = true;</div><div class='add'>+</div><div class='add'>+#elif defined(PAGE_SIZE)</div><div class='add'>+/* If the PAGE_SIZE macro can be used dynamically. */</div><div class='add'>+# define INIT_HEAP_PAGE_ALLOC_USE_MMAP (PAGE_SIZE &lt;= HEAP_PAGE_SIZE)</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_SYSCONF) &amp;&amp; defined(_SC_PAGE_SIZE)</div><div class='add'>+/* If we can use sysconf to determine the page size. */</div><div class='add'>+# define INIT_HEAP_PAGE_ALLOC_USE_MMAP (sysconf(_SC_PAGE_SIZE) &lt;= HEAP_PAGE_SIZE)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+/* Otherwise we can't determine the system page size, so don't use mmap. */</div><div class='add'>+static const bool HEAP_PAGE_ALLOC_USE_MMAP = false;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef INIT_HEAP_PAGE_ALLOC_USE_MMAP</div><div class='add'>+/* We can determine the system page size at runtime. */</div><div class='add'>+# define HEAP_PAGE_ALLOC_USE_MMAP (heap_page_alloc_use_mmap != false)</div><div class='add'>+</div><div class='add'>+static bool heap_page_alloc_use_mmap;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> struct heap_page {</div><div class='add'>+    short slot_size;</div><div class='ctx'>     short total_slots;</div><div class='ctx'>     short free_slots;</div><div class='ctx'>     short final_slots;</div><div class='ctx'>     struct {</div><div class='del'>-	unsigned int before_sweep : 1;</div><div class='del'>-	unsigned int has_remembered_objects : 1;</div><div class='del'>-	unsigned int has_uncollectible_shady_objects : 1;</div><div class='del'>-	unsigned int in_tomb : 1;</div><div class='add'>+        unsigned int before_sweep : 1;</div><div class='add'>+        unsigned int has_remembered_objects : 1;</div><div class='add'>+        unsigned int has_uncollectible_shady_objects : 1;</div><div class='add'>+        unsigned int in_tomb : 1;</div><div class='ctx'>     } flags;</div><div class='ctx'> </div><div class='add'>+    rb_size_pool_t *size_pool;</div><div class='add'>+</div><div class='ctx'>     struct heap_page *free_next;</div><div class='del'>-    RVALUE *start;</div><div class='add'>+    uintptr_t start;</div><div class='ctx'>     RVALUE *freelist;</div><div class='del'>-    struct list_node page_node;</div><div class='add'>+    struct ccan_list_node page_node;</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     bits_t wb_unprotected_bits[HEAP_PAGE_BITMAP_LIMIT];</div><div class='del'>-#endif</div><div class='ctx'>     /* the following three bitmaps are cleared at the beginning of full GC */</div><div class='ctx'>     bits_t mark_bits[HEAP_PAGE_BITMAP_LIMIT];</div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     bits_t uncollectible_bits[HEAP_PAGE_BITMAP_LIMIT];</div><div class='ctx'>     bits_t marking_bits[HEAP_PAGE_BITMAP_LIMIT];</div><div class='del'>-#endif</div><div class='add'>+</div><div class='add'>+    /* If set, the object is not movable */</div><div class='add'>+    bits_t pinned_bits[HEAP_PAGE_BITMAP_LIMIT];</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * When asan is enabled, this will prohibit writing to the freelist until it is unlocked</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+asan_lock_freelist(struct heap_page *page)</div><div class='add'>+{</div><div class='add'>+    asan_poison_memory_region(&amp;page-&gt;freelist, sizeof(RVALUE*));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * When asan is enabled, this will enable the ability to write to the freelist</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+asan_unlock_freelist(struct heap_page *page)</div><div class='add'>+{</div><div class='add'>+    asan_unpoison_memory_region(&amp;page-&gt;freelist, sizeof(RVALUE*), false);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #define GET_PAGE_BODY(x)   ((struct heap_page_body *)((bits_t)(x) &amp; ~(HEAP_PAGE_ALIGN_MASK)))</div><div class='ctx'> #define GET_PAGE_HEADER(x) (&amp;GET_PAGE_BODY(x)-&gt;header)</div><div class='ctx'> #define GET_HEAP_PAGE(x)   (GET_PAGE_HEADER(x)-&gt;page)</div><div class='ctx'> </div><div class='del'>-#define NUM_IN_PAGE(p)   (((bits_t)(p) &amp; HEAP_PAGE_ALIGN_MASK)/sizeof(RVALUE))</div><div class='add'>+#define NUM_IN_PAGE(p)   (((bits_t)(p) &amp; HEAP_PAGE_ALIGN_MASK) / BASE_SLOT_SIZE)</div><div class='ctx'> #define BITMAP_INDEX(p)  (NUM_IN_PAGE(p) / BITS_BITLENGTH )</div><div class='ctx'> #define BITMAP_OFFSET(p) (NUM_IN_PAGE(p) &amp; (BITS_BITLENGTH-1))</div><div class='ctx'> #define BITMAP_BIT(p)    ((bits_t)1 &lt;&lt; BITMAP_OFFSET(p))</div><div class='hunk'>@@ -706,24 +1005,16 @@ struct heap_page {</div><div class='ctx'> </div><div class='ctx'> /* getting bitmap */</div><div class='ctx'> #define GET_HEAP_MARK_BITS(x)           (&amp;GET_HEAP_PAGE(x)-&gt;mark_bits[0])</div><div class='del'>-#if USE_RGENGC</div><div class='add'>+#define GET_HEAP_PINNED_BITS(x)         (&amp;GET_HEAP_PAGE(x)-&gt;pinned_bits[0])</div><div class='ctx'> #define GET_HEAP_UNCOLLECTIBLE_BITS(x)  (&amp;GET_HEAP_PAGE(x)-&gt;uncollectible_bits[0])</div><div class='ctx'> #define GET_HEAP_WB_UNPROTECTED_BITS(x) (&amp;GET_HEAP_PAGE(x)-&gt;wb_unprotected_bits[0])</div><div class='ctx'> #define GET_HEAP_MARKING_BITS(x)        (&amp;GET_HEAP_PAGE(x)-&gt;marking_bits[0])</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-#ifndef ENABLE_VM_OBJSPACE</div><div class='del'>-# define ENABLE_VM_OBJSPACE 1</div><div class='del'>-#endif</div><div class='add'>+#define GC_SWEEP_PAGES_FREEABLE_PER_STEP 3</div><div class='ctx'> </div><div class='ctx'> /* Aliases */</div><div class='del'>-#if defined(ENABLE_VM_OBJSPACE) &amp;&amp; ENABLE_VM_OBJSPACE</div><div class='ctx'> #define rb_objspace (*rb_objspace_of(GET_VM()))</div><div class='ctx'> #define rb_objspace_of(vm) ((vm)-&gt;objspace)</div><div class='del'>-#else</div><div class='del'>-static rb_objspace_t rb_objspace = {{GC_MALLOC_LIMIT_MIN}};</div><div class='del'>-#define rb_objspace_of(vm) (&amp;rb_objspace)</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> #define ruby_initial_gc_stress	gc_params.gc_stress</div><div class='ctx'> </div><div class='hunk'>@@ -737,13 +1028,10 @@ VALUE *ruby_initial_gc_stress_ptr = &amp;ruby_initial_gc_stress;</div><div class='ctx'> #define heap_pages_sorted_length objspace-&gt;heap_pages.sorted_length</div><div class='ctx'> #define heap_pages_lomem	objspace-&gt;heap_pages.range[0]</div><div class='ctx'> #define heap_pages_himem	objspace-&gt;heap_pages.range[1]</div><div class='del'>-#define heap_allocatable_pages	objspace-&gt;heap_pages.allocatable_pages</div><div class='ctx'> #define heap_pages_freeable_pages	objspace-&gt;heap_pages.freeable_pages</div><div class='ctx'> #define heap_pages_final_slots		objspace-&gt;heap_pages.final_slots</div><div class='ctx'> #define heap_pages_deferred_final	objspace-&gt;heap_pages.deferred_final</div><div class='del'>-#define heap_eden               (&amp;objspace-&gt;eden_heap)</div><div class='del'>-#define heap_tomb               (&amp;objspace-&gt;tomb_heap)</div><div class='del'>-#define dont_gc 		objspace-&gt;flags.dont_gc</div><div class='add'>+#define size_pools              objspace-&gt;size_pools</div><div class='ctx'> #define during_gc		objspace-&gt;flags.during_gc</div><div class='ctx'> #define finalizing		objspace-&gt;atomic_flags.finalizing</div><div class='ctx'> #define finalizer_table 	objspace-&gt;finalizer_table</div><div class='hunk'>@@ -756,6 +1044,18 @@ VALUE *ruby_initial_gc_stress_ptr = &amp;ruby_initial_gc_stress;</div><div class='ctx'> #define stress_to_class         0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#if 0</div><div class='add'>+#define dont_gc_on()          (fprintf(stderr, "dont_gc_on@%s:%d\n",      __FILE__, __LINE__), objspace-&gt;flags.dont_gc = 1)</div><div class='add'>+#define dont_gc_off()         (fprintf(stderr, "dont_gc_off@%s:%d\n",     __FILE__, __LINE__), objspace-&gt;flags.dont_gc = 0)</div><div class='add'>+#define dont_gc_set(b)        (fprintf(stderr, "dont_gc_set(%d)@%s:%d\n", __FILE__, __LINE__), (int)b), objspace-&gt;flags.dont_gc = (b))</div><div class='add'>+#define dont_gc_val()         (objspace-&gt;flags.dont_gc)</div><div class='add'>+#else</div><div class='add'>+#define dont_gc_on()          (objspace-&gt;flags.dont_gc = 1)</div><div class='add'>+#define dont_gc_off()         (objspace-&gt;flags.dont_gc = 0)</div><div class='add'>+#define dont_gc_set(b)        (((int)b), objspace-&gt;flags.dont_gc = (b))</div><div class='add'>+#define dont_gc_val()         (objspace-&gt;flags.dont_gc)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static inline enum gc_mode</div><div class='ctx'> gc_mode_verify(enum gc_mode mode)</div><div class='ctx'> {</div><div class='hunk'>@@ -764,24 +1064,106 @@ gc_mode_verify(enum gc_mode mode)</div><div class='ctx'>       case gc_mode_none:</div><div class='ctx'>       case gc_mode_marking:</div><div class='ctx'>       case gc_mode_sweeping:</div><div class='del'>-	break;</div><div class='add'>+      case gc_mode_compacting:</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	rb_bug("gc_mode_verify: unreachable (%d)", (int)mode);</div><div class='add'>+        rb_bug("gc_mode_verify: unreachable (%d)", (int)mode);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return mode;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static inline bool</div><div class='add'>+has_sweeping_pages(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        if (SIZE_POOL_EDEN_HEAP(&amp;size_pools[i])-&gt;sweeping_page) {</div><div class='add'>+            return TRUE;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+heap_eden_total_pages(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    size_t count = 0;</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        count += SIZE_POOL_EDEN_HEAP(&amp;size_pools[i])-&gt;total_pages;</div><div class='add'>+    }</div><div class='add'>+    return count;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+heap_eden_total_slots(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    size_t count = 0;</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        count += SIZE_POOL_EDEN_HEAP(&amp;size_pools[i])-&gt;total_slots;</div><div class='add'>+    }</div><div class='add'>+    return count;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+heap_tomb_total_pages(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    size_t count = 0;</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        count += SIZE_POOL_TOMB_HEAP(&amp;size_pools[i])-&gt;total_pages;</div><div class='add'>+    }</div><div class='add'>+    return count;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+heap_allocatable_pages(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    size_t count = 0;</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        count += size_pools[i].allocatable_pages;</div><div class='add'>+    }</div><div class='add'>+    return count;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+heap_allocatable_slots(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    size_t count = 0;</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        int slot_size_multiple = size_pool-&gt;slot_size / BASE_SLOT_SIZE;</div><div class='add'>+        count += size_pool-&gt;allocatable_pages * HEAP_PAGE_OBJ_LIMIT / slot_size_multiple;</div><div class='add'>+    }</div><div class='add'>+    return count;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+total_allocated_pages(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    size_t count = 0;</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        count += size_pool-&gt;total_allocated_pages;</div><div class='add'>+    }</div><div class='add'>+    return count;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+total_freed_pages(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    size_t count = 0;</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        count += size_pool-&gt;total_freed_pages;</div><div class='add'>+    }</div><div class='add'>+    return count;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #define gc_mode(objspace)                gc_mode_verify((enum gc_mode)(objspace)-&gt;flags.mode)</div><div class='ctx'> #define gc_mode_set(objspace, mode)      ((objspace)-&gt;flags.mode = (unsigned int)gc_mode_verify(mode))</div><div class='ctx'> </div><div class='ctx'> #define is_marking(objspace)             (gc_mode(objspace) == gc_mode_marking)</div><div class='ctx'> #define is_sweeping(objspace)            (gc_mode(objspace) == gc_mode_sweeping)</div><div class='del'>-#if USE_RGENGC</div><div class='ctx'> #define is_full_marking(objspace)        ((objspace)-&gt;flags.during_minor_gc == FALSE)</div><div class='del'>-#else</div><div class='del'>-#define is_full_marking(objspace)        TRUE</div><div class='del'>-#endif</div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='ctx'> #define is_incremental_marking(objspace) ((objspace)-&gt;flags.during_incremental_marking != FALSE)</div><div class='ctx'> #else</div><div class='hunk'>@@ -792,8 +1174,10 @@ gc_mode_verify(enum gc_mode mode)</div><div class='ctx'> #else</div><div class='ctx'> #define will_be_incremental_marking(objspace) FALSE</div><div class='ctx'> #endif</div><div class='del'>-#define has_sweeping_pages(heap)         ((heap)-&gt;sweeping_page != 0)</div><div class='del'>-#define is_lazy_sweeping(heap)           (GC_ENABLE_LAZY_SWEEP &amp;&amp; has_sweeping_pages(heap))</div><div class='add'>+#if GC_ENABLE_INCREMENTAL_MARK</div><div class='add'>+#define GC_INCREMENTAL_SWEEP_SLOT_COUNT 2048</div><div class='add'>+#endif</div><div class='add'>+#define is_lazy_sweeping(objspace)           (GC_ENABLE_LAZY_SWEEP &amp;&amp; has_sweeping_pages(objspace))</div><div class='ctx'> </div><div class='ctx'> #if SIZEOF_LONG == SIZEOF_VOIDP</div><div class='ctx'> # define nonspecial_obj_id(obj) (VALUE)((SIGNED_VALUE)(obj)|FIXNUM_FLAG)</div><div class='hunk'>@@ -824,43 +1208,62 @@ int ruby_gc_debug_indent = 0;</div><div class='ctx'> #endif</div><div class='ctx'> VALUE rb_mGC;</div><div class='ctx'> int ruby_disable_gc = 0;</div><div class='add'>+int ruby_enable_autocompact = 0;</div><div class='ctx'> </div><div class='ctx'> void rb_iseq_mark(const rb_iseq_t *iseq);</div><div class='add'>+void rb_iseq_update_references(rb_iseq_t *iseq);</div><div class='ctx'> void rb_iseq_free(const rb_iseq_t *iseq);</div><div class='add'>+size_t rb_iseq_memsize(const rb_iseq_t *iseq);</div><div class='add'>+void rb_vm_update_references(void *ptr);</div><div class='ctx'> </div><div class='ctx'> void rb_gcdebug_print_obj_condition(VALUE obj);</div><div class='ctx'> </div><div class='del'>-static void rb_objspace_call_finalizer(rb_objspace_t *objspace);</div><div class='ctx'> static VALUE define_final0(VALUE obj, VALUE block);</div><div class='ctx'> </div><div class='del'>-static void negative_size_allocation_error(const char *);</div><div class='add'>+NORETURN(static void *gc_vraise(void *ptr));</div><div class='add'>+NORETURN(static void gc_raise(VALUE exc, const char *fmt, ...));</div><div class='add'>+NORETURN(static void negative_size_allocation_error(const char *));</div><div class='ctx'> </div><div class='ctx'> static void init_mark_stack(mark_stack_t *stack);</div><div class='ctx'> </div><div class='ctx'> static int ready_to_gc(rb_objspace_t *objspace);</div><div class='ctx'> </div><div class='del'>-static int garbage_collect(rb_objspace_t *, int reason);</div><div class='add'>+static int garbage_collect(rb_objspace_t *, unsigned int reason);</div><div class='ctx'> </div><div class='del'>-static int  gc_start(rb_objspace_t *objspace, int reason);</div><div class='add'>+static int  gc_start(rb_objspace_t *objspace, unsigned int reason);</div><div class='ctx'> static void gc_rest(rb_objspace_t *objspace);</div><div class='del'>-static inline void gc_enter(rb_objspace_t *objspace, const char *event);</div><div class='del'>-static inline void gc_exit(rb_objspace_t *objspace, const char *event);</div><div class='add'>+</div><div class='add'>+enum gc_enter_event {</div><div class='add'>+    gc_enter_event_start,</div><div class='add'>+    gc_enter_event_mark_continue,</div><div class='add'>+    gc_enter_event_sweep_continue,</div><div class='add'>+    gc_enter_event_rest,</div><div class='add'>+    gc_enter_event_finalizer,</div><div class='add'>+    gc_enter_event_rb_memerror,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static inline void gc_enter(rb_objspace_t *objspace, enum gc_enter_event event, unsigned int *lock_lev);</div><div class='add'>+static inline void gc_exit(rb_objspace_t *objspace, enum gc_enter_event event, unsigned int *lock_lev);</div><div class='ctx'> </div><div class='ctx'> static void gc_marks(rb_objspace_t *objspace, int full_mark);</div><div class='ctx'> static void gc_marks_start(rb_objspace_t *objspace, int full);</div><div class='del'>-static int  gc_marks_finish(rb_objspace_t *objspace);</div><div class='add'>+static void gc_marks_finish(rb_objspace_t *objspace);</div><div class='ctx'> static void gc_marks_rest(rb_objspace_t *objspace);</div><div class='del'>-static void gc_marks_step(rb_objspace_t *objspace, int slots);</div><div class='del'>-static void gc_marks_continue(rb_objspace_t *objspace, rb_heap_t *heap);</div><div class='add'>+static void gc_marks_continue(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap);</div><div class='ctx'> </div><div class='ctx'> static void gc_sweep(rb_objspace_t *objspace);</div><div class='ctx'> static void gc_sweep_start(rb_objspace_t *objspace);</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+static void gc_sweep_finish_size_pool(rb_objspace_t *objspace, rb_size_pool_t *size_pool);</div><div class='add'>+#endif</div><div class='ctx'> static void gc_sweep_finish(rb_objspace_t *objspace);</div><div class='del'>-static int  gc_sweep_step(rb_objspace_t *objspace, rb_heap_t *heap);</div><div class='add'>+static int  gc_sweep_step(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap);</div><div class='ctx'> static void gc_sweep_rest(rb_objspace_t *objspace);</div><div class='del'>-static void gc_sweep_continue(rb_objspace_t *objspace, rb_heap_t *heap);</div><div class='add'>+static void gc_sweep_continue(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap);</div><div class='ctx'> </div><div class='ctx'> static inline void gc_mark(rb_objspace_t *objspace, VALUE ptr);</div><div class='add'>+static inline void gc_pin(rb_objspace_t *objspace, VALUE ptr);</div><div class='add'>+static inline void gc_mark_and_pin(rb_objspace_t *objspace, VALUE ptr);</div><div class='ctx'> static void gc_mark_ptr(rb_objspace_t *objspace, VALUE ptr);</div><div class='ctx'> NO_SANITIZE("memory", static void gc_mark_maybe(rb_objspace_t *objspace, VALUE ptr));</div><div class='ctx'> static void gc_mark_children(rb_objspace_t *objspace, VALUE ptr);</div><div class='hunk'>@@ -878,14 +1281,15 @@ static size_t mark_stack_size(mark_stack_t *stack);</div><div class='ctx'> static void   shrink_stack_chunk_cache(mark_stack_t *stack);</div><div class='ctx'> </div><div class='ctx'> static size_t obj_memsize_of(VALUE obj, int use_all_types);</div><div class='del'>-static VALUE gc_verify_internal_consistency(VALUE self);</div><div class='add'>+static void gc_verify_internal_consistency(rb_objspace_t *objspace);</div><div class='ctx'> static int gc_verify_heap_page(rb_objspace_t *objspace, struct heap_page *page, VALUE obj);</div><div class='ctx'> static int gc_verify_heap_pages(rb_objspace_t *objspace);</div><div class='ctx'> </div><div class='ctx'> static void gc_stress_set(rb_objspace_t *objspace, VALUE flag);</div><div class='add'>+static VALUE gc_disable_no_rest(rb_objspace_t *);</div><div class='ctx'> </div><div class='ctx'> static double getrusage_time(void);</div><div class='del'>-static inline void gc_prof_setup_new_record(rb_objspace_t *objspace, int reason);</div><div class='add'>+static inline void gc_prof_setup_new_record(rb_objspace_t *objspace, unsigned int reason);</div><div class='ctx'> static inline void gc_prof_timer_start(rb_objspace_t *);</div><div class='ctx'> static inline void gc_prof_timer_stop(rb_objspace_t *);</div><div class='ctx'> static inline void gc_prof_mark_timer_start(rb_objspace_t *);</div><div class='hunk'>@@ -895,6 +1299,14 @@ static inline void gc_prof_sweep_timer_stop(rb_objspace_t *);</div><div class='ctx'> static inline void gc_prof_set_malloc_info(rb_objspace_t *);</div><div class='ctx'> static inline void gc_prof_set_heap_info(rb_objspace_t *);</div><div class='ctx'> </div><div class='add'>+#define TYPED_UPDATE_IF_MOVED(_objspace, _type, _thing) do { \</div><div class='add'>+    if (gc_object_moved_p((_objspace), (VALUE)(_thing))) {    \</div><div class='add'>+        *(_type *)&amp;(_thing) = (_type)RMOVED(_thing)-&gt;destination; \</div><div class='add'>+    } \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+#define UPDATE_IF_MOVED(_objspace, _thing) TYPED_UPDATE_IF_MOVED(_objspace, VALUE, _thing)</div><div class='add'>+</div><div class='ctx'> #define gc_prof_record(objspace) (objspace)-&gt;profile.current_record</div><div class='ctx'> #define gc_prof_enabled(objspace) ((objspace)-&gt;profile.run &amp;&amp; (objspace)-&gt;profile.current_record)</div><div class='ctx'> </div><div class='hunk'>@@ -906,12 +1318,7 @@ static inline void gc_prof_set_heap_info(rb_objspace_t *);</div><div class='ctx'> #endif</div><div class='ctx'> PRINTF_ARGS(static void gc_report_body(int level, rb_objspace_t *objspace, const char *fmt, ...), 3, 4);</div><div class='ctx'> static const char *obj_info(VALUE obj);</div><div class='del'>-</div><div class='del'>-#define PUSH_MARK_FUNC_DATA(v) do { \</div><div class='del'>-    struct mark_func_data_struct *prev_mark_func_data = objspace-&gt;mark_func_data; \</div><div class='del'>-    objspace-&gt;mark_func_data = (v);</div><div class='del'>-</div><div class='del'>-#define POP_MARK_FUNC_DATA() objspace-&gt;mark_func_data = prev_mark_func_data;} while (0)</div><div class='add'>+static const char *obj_type_name(VALUE obj);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * 1 - TSC (H/W Time Stamp Counter)</div><div class='hunk'>@@ -927,7 +1334,7 @@ static const char *obj_info(VALUE obj);</div><div class='ctx'> /* the following code is only for internal tuning. */</div><div class='ctx'> </div><div class='ctx'> /* Source code to use RDTSC is quoted and modified from</div><div class='del'>- * http://www.mcs.anl.gov/~kazutomo/rdtsc.html</div><div class='add'>+ * https://www.mcs.anl.gov/~kazutomo/rdtsc.html</div><div class='ctx'>  * written by Kazutomo Yoshii &lt;kazutomo@mcs.anl.gov&gt;</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -965,6 +1372,40 @@ tick(void)</div><div class='ctx'>     return val;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* Implementation for macOS PPC by @nobu</div><div class='add'>+ * See: https://github.com/ruby/ruby/pull/5975#discussion_r890045558</div><div class='add'>+ */</div><div class='add'>+#elif defined(__POWERPC__) &amp;&amp; defined(__APPLE__)</div><div class='add'>+typedef unsigned long long tick_t;</div><div class='add'>+#define PRItick "llu"</div><div class='add'>+</div><div class='add'>+static __inline__ tick_t</div><div class='add'>+tick(void)</div><div class='add'>+{</div><div class='add'>+    unsigned long int upper, lower, tmp;</div><div class='add'>+    # define mftbu(r) __asm__ volatile("mftbu   %0" : "=r"(r))</div><div class='add'>+    # define mftb(r)  __asm__ volatile("mftb    %0" : "=r"(r))</div><div class='add'>+        do {</div><div class='add'>+            mftbu(upper);</div><div class='add'>+            mftb(lower);</div><div class='add'>+            mftbu(tmp);</div><div class='add'>+        } while (tmp != upper);</div><div class='add'>+    return ((tick_t)upper &lt;&lt; 32) | lower;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#elif defined(__aarch64__) &amp;&amp;  defined(__GNUC__)</div><div class='add'>+typedef unsigned long tick_t;</div><div class='add'>+#define PRItick "lu"</div><div class='add'>+</div><div class='add'>+static __inline__ tick_t</div><div class='add'>+tick(void)</div><div class='add'>+{</div><div class='add'>+    unsigned long val;</div><div class='add'>+    __asm__ __volatile__ ("mrs %0, cntvct_el0" : "=r" (val));</div><div class='add'>+    return val;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'> #elif defined(_WIN32) &amp;&amp; defined(_MSC_VER)</div><div class='ctx'> #include &lt;intrin.h&gt;</div><div class='ctx'> typedef unsigned __int64 tick_t;</div><div class='hunk'>@@ -1012,6 +1453,29 @@ tick(void)</div><div class='ctx'> #define MEASURE_LINE(expr) expr</div><div class='ctx'> #endif /* USE_TICK_T */</div><div class='ctx'> </div><div class='add'>+static inline void *</div><div class='add'>+asan_unpoison_object_temporary(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    void *ptr = asan_poisoned_object_p(obj);</div><div class='add'>+    asan_unpoison_object(obj, false);</div><div class='add'>+    return ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+asan_poison_object_restore(VALUE obj, void *ptr)</div><div class='add'>+{</div><div class='add'>+    if (ptr) {</div><div class='add'>+        asan_poison_object(obj);</div><div class='add'>+    }</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define asan_unpoisoning_object(obj) \</div><div class='add'>+    for (void *poisoned = asan_unpoison_object_temporary(obj), \</div><div class='add'>+              *unpoisoning = &amp;poisoned; /* flag to loop just once */ \</div><div class='add'>+         unpoisoning; \</div><div class='add'>+         unpoisoning = asan_poison_object_restore(obj, poisoned))</div><div class='add'>+</div><div class='ctx'> #define FL_CHECK2(name, x, pred) \</div><div class='ctx'>     ((RGENGC_CHECK_MODE &amp;&amp; SPECIAL_CONST_P(x)) ? \</div><div class='ctx'>      (rb_bug(name": SPECIAL_CONST (%p)", (void *)(x)), 0) : (pred))</div><div class='hunk'>@@ -1020,9 +1484,9 @@ tick(void)</div><div class='ctx'> #define FL_UNSET2(x,f) FL_CHECK2("FL_UNSET2", x, RBASIC(x)-&gt;flags &amp;= ~(f))</div><div class='ctx'> </div><div class='ctx'> #define RVALUE_MARK_BITMAP(obj)           MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(obj), (obj))</div><div class='add'>+#define RVALUE_PIN_BITMAP(obj)            MARKED_IN_BITMAP(GET_HEAP_PINNED_BITS(obj), (obj))</div><div class='ctx'> #define RVALUE_PAGE_MARKED(page, obj)     MARKED_IN_BITMAP((page)-&gt;mark_bits, (obj))</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'> #define RVALUE_WB_UNPROTECTED_BITMAP(obj) MARKED_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS(obj), (obj))</div><div class='ctx'> #define RVALUE_UNCOLLECTIBLE_BITMAP(obj)  MARKED_IN_BITMAP(GET_HEAP_UNCOLLECTIBLE_BITS(obj), (obj))</div><div class='ctx'> #define RVALUE_MARKING_BITMAP(obj)        MARKED_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), (obj))</div><div class='hunk'>@@ -1035,6 +1499,7 @@ tick(void)</div><div class='ctx'> #define RVALUE_AGE_SHIFT 5 /* FL_PROMOTED0 bit */</div><div class='ctx'> </div><div class='ctx'> static int rgengc_remembered(rb_objspace_t *objspace, VALUE obj);</div><div class='add'>+static int rgengc_remembered_sweep(rb_objspace_t *objspace, VALUE obj);</div><div class='ctx'> static int rgengc_remember(rb_objspace_t *objspace, VALUE obj);</div><div class='ctx'> static void rgengc_mark_and_rememberset_clear(rb_objspace_t *objspace, rb_heap_t *heap);</div><div class='ctx'> static void rgengc_rememberset_mark(rb_objspace_t *objspace, rb_heap_t *heap);</div><div class='hunk'>@@ -1045,8 +1510,110 @@ RVALUE_FLAGS_AGE(VALUE flags)</div><div class='ctx'>     return (int)((flags &amp; (FL_PROMOTED0 | FL_PROMOTED1)) &gt;&gt; RVALUE_AGE_SHIFT);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#endif /* USE_RGENGC */</div><div class='add'>+static int</div><div class='add'>+check_rvalue_consistency_force(const VALUE obj, int terminate)</div><div class='add'>+{</div><div class='add'>+    int err = 0;</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+</div><div class='add'>+    RB_VM_LOCK_ENTER_NO_BARRIER();</div><div class='add'>+    {</div><div class='add'>+        if (SPECIAL_CONST_P(obj)) {</div><div class='add'>+            fprintf(stderr, "check_rvalue_consistency: %p is a special const.\n", (void *)obj);</div><div class='add'>+            err++;</div><div class='add'>+        }</div><div class='add'>+        else if (!is_pointer_to_heap(objspace, (void *)obj)) {</div><div class='add'>+            /* check if it is in tomb_pages */</div><div class='add'>+            struct heap_page *page = NULL;</div><div class='add'>+            for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+                rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+                ccan_list_for_each(&amp;size_pool-&gt;tomb_heap.pages, page, page_node) {</div><div class='add'>+                    if (page-&gt;start &lt;= (uintptr_t)obj &amp;&amp;</div><div class='add'>+                            (uintptr_t)obj &lt; (page-&gt;start + (page-&gt;total_slots * size_pool-&gt;slot_size))) {</div><div class='add'>+                        fprintf(stderr, "check_rvalue_consistency: %p is in a tomb_heap (%p).\n",</div><div class='add'>+                                (void *)obj, (void *)page);</div><div class='add'>+                        err++;</div><div class='add'>+                        goto skip;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            bp();</div><div class='add'>+            fprintf(stderr, "check_rvalue_consistency: %p is not a Ruby object.\n", (void *)obj);</div><div class='add'>+            err++;</div><div class='add'>+          skip:</div><div class='add'>+            ;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            const int wb_unprotected_bit = RVALUE_WB_UNPROTECTED_BITMAP(obj) != 0;</div><div class='add'>+            const int uncollectible_bit = RVALUE_UNCOLLECTIBLE_BITMAP(obj) != 0;</div><div class='add'>+            const int mark_bit = RVALUE_MARK_BITMAP(obj) != 0;</div><div class='add'>+            const int marking_bit = RVALUE_MARKING_BITMAP(obj) != 0, remembered_bit = marking_bit;</div><div class='add'>+            const int age = RVALUE_FLAGS_AGE(RBASIC(obj)-&gt;flags);</div><div class='add'>+</div><div class='add'>+            if (GET_HEAP_PAGE(obj)-&gt;flags.in_tomb) {</div><div class='add'>+                fprintf(stderr, "check_rvalue_consistency: %s is in tomb page.\n", obj_info(obj));</div><div class='add'>+                err++;</div><div class='add'>+            }</div><div class='add'>+            if (BUILTIN_TYPE(obj) == T_NONE) {</div><div class='add'>+                fprintf(stderr, "check_rvalue_consistency: %s is T_NONE.\n", obj_info(obj));</div><div class='add'>+                err++;</div><div class='add'>+            }</div><div class='add'>+            if (BUILTIN_TYPE(obj) == T_ZOMBIE) {</div><div class='add'>+                fprintf(stderr, "check_rvalue_consistency: %s is T_ZOMBIE.\n", obj_info(obj));</div><div class='add'>+                err++;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            obj_memsize_of((VALUE)obj, FALSE);</div><div class='ctx'> </div><div class='add'>+            /* check generation</div><div class='add'>+             *</div><div class='add'>+             * OLD == age == 3 &amp;&amp; old-bitmap &amp;&amp; mark-bit (except incremental marking)</div><div class='add'>+             */</div><div class='add'>+            if (age &gt; 0 &amp;&amp; wb_unprotected_bit) {</div><div class='add'>+                fprintf(stderr, "check_rvalue_consistency: %s is not WB protected, but age is %d &gt; 0.\n", obj_info(obj), age);</div><div class='add'>+                err++;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (!is_marking(objspace) &amp;&amp; uncollectible_bit &amp;&amp; !mark_bit) {</div><div class='add'>+                fprintf(stderr, "check_rvalue_consistency: %s is uncollectible, but is not marked while !gc.\n", obj_info(obj));</div><div class='add'>+                err++;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (!is_full_marking(objspace)) {</div><div class='add'>+                if (uncollectible_bit &amp;&amp; age != RVALUE_OLD_AGE &amp;&amp; !wb_unprotected_bit) {</div><div class='add'>+                    fprintf(stderr, "check_rvalue_consistency: %s is uncollectible, but not old (age: %d) and not WB unprotected.\n",</div><div class='add'>+                            obj_info(obj), age);</div><div class='add'>+                    err++;</div><div class='add'>+                }</div><div class='add'>+                if (remembered_bit &amp;&amp; age != RVALUE_OLD_AGE) {</div><div class='add'>+                    fprintf(stderr, "check_rvalue_consistency: %s is remembered, but not old (age: %d).\n",</div><div class='add'>+                            obj_info(obj), age);</div><div class='add'>+                    err++;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            /*</div><div class='add'>+             * check coloring</div><div class='add'>+             *</div><div class='add'>+             *               marking:false marking:true</div><div class='add'>+             * marked:false  white         *invalid*</div><div class='add'>+             * marked:true   black         grey</div><div class='add'>+             */</div><div class='add'>+            if (is_incremental_marking(objspace) &amp;&amp; marking_bit) {</div><div class='add'>+                if (!is_marking(objspace) &amp;&amp; !mark_bit) {</div><div class='add'>+                    fprintf(stderr, "check_rvalue_consistency: %s is marking, but not marked.\n", obj_info(obj));</div><div class='add'>+                    err++;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    RB_VM_LOCK_LEAVE_NO_BARRIER();</div><div class='add'>+</div><div class='add'>+    if (err &gt; 0 &amp;&amp; terminate) {</div><div class='add'>+        rb_bug("check_rvalue_consistency_force: there is %d errors.", err);</div><div class='add'>+    }</div><div class='add'>+    return err;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_CHECK_MODE == 0</div><div class='ctx'> static inline VALUE</div><div class='hunk'>@@ -1058,60 +1625,29 @@ check_rvalue_consistency(const VALUE obj)</div><div class='ctx'> static VALUE</div><div class='ctx'> check_rvalue_consistency(const VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    check_rvalue_consistency_force(obj, TRUE);</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    if (SPECIAL_CONST_P(obj)) {</div><div class='del'>-	rb_bug("check_rvalue_consistency: %p is a special const.", (void *)obj);</div><div class='del'>-    }</div><div class='del'>-    else if (!is_pointer_to_heap(objspace, (void *)obj)) {</div><div class='del'>-	rb_bug("check_rvalue_consistency: %p is not a Ruby object.", (void *)obj);</div><div class='add'>+static inline int</div><div class='add'>+gc_object_moved_p(rb_objspace_t * objspace, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (RB_SPECIAL_CONST_P(obj)) {</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	const int wb_unprotected_bit = RVALUE_WB_UNPROTECTED_BITMAP(obj) != 0;</div><div class='del'>-	const int uncollectible_bit = RVALUE_UNCOLLECTIBLE_BITMAP(obj) != 0;</div><div class='del'>-	const int mark_bit = RVALUE_MARK_BITMAP(obj) != 0;</div><div class='del'>-	const int marking_bit = RVALUE_MARKING_BITMAP(obj) != 0, remembered_bit = marking_bit;</div><div class='del'>-	const int age = RVALUE_FLAGS_AGE(RBASIC(obj)-&gt;flags);</div><div class='del'>-</div><div class='del'>-	if (BUILTIN_TYPE(obj) == T_NONE)   rb_bug("check_rvalue_consistency: %s is T_NONE", obj_info(obj));</div><div class='del'>-	if (BUILTIN_TYPE(obj) == T_ZOMBIE) rb_bug("check_rvalue_consistency: %s is T_ZOMBIE", obj_info(obj));</div><div class='del'>-	obj_memsize_of((VALUE)obj, FALSE);</div><div class='del'>-</div><div class='del'>-	/* check generation</div><div class='del'>-	 *</div><div class='del'>-	 * OLD == age == 3 &amp;&amp; old-bitmap &amp;&amp; mark-bit (except incremental marking)</div><div class='del'>-	 */</div><div class='del'>-	if (age &gt; 0 &amp;&amp; wb_unprotected_bit) {</div><div class='del'>-	    rb_bug("check_rvalue_consistency: %s is not WB protected, but age is %d &gt; 0.", obj_info(obj), age);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (!is_marking(objspace) &amp;&amp; uncollectible_bit &amp;&amp; !mark_bit) {</div><div class='del'>-	    rb_bug("check_rvalue_consistency: %s is uncollectible, but is not marked while !gc.", obj_info(obj));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (!is_full_marking(objspace)) {</div><div class='del'>-	    if (uncollectible_bit &amp;&amp; age != RVALUE_OLD_AGE &amp;&amp; !wb_unprotected_bit) {</div><div class='del'>-		rb_bug("check_rvalue_consistency: %s is uncollectible, but not old (age: %d) and not WB unprotected.", obj_info(obj), age);</div><div class='del'>-	    }</div><div class='del'>-	    if (remembered_bit &amp;&amp; age != RVALUE_OLD_AGE) {</div><div class='del'>-		rb_bug("check_rvalue_consistency: %s is remembered, but not old (age: %d).", obj_info(obj), age);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/*</div><div class='del'>-	 * check coloring</div><div class='del'>-	 *</div><div class='del'>-	 *               marking:false marking:true</div><div class='del'>-	 * marked:false  white         *invalid*</div><div class='del'>-	 * marked:true   black         grey</div><div class='del'>-	 */</div><div class='del'>-	if (is_incremental_marking(objspace) &amp;&amp; marking_bit) {</div><div class='del'>-	    if (!is_marking(objspace) &amp;&amp; !mark_bit) rb_bug("check_rvalue_consistency: %s is marking, but not marked.", obj_info(obj));</div><div class='del'>-	}</div><div class='add'>+        void *poisoned = asan_unpoison_object_temporary(obj);</div><div class='add'>+</div><div class='add'>+        int ret =  BUILTIN_TYPE(obj) == T_MOVED;</div><div class='add'>+        /* Re-poison slot if it's not the one we want */</div><div class='add'>+        if (poisoned) {</div><div class='add'>+            GC_ASSERT(BUILTIN_TYPE(obj) == T_NONE);</div><div class='add'>+            asan_poison_object(obj);</div><div class='add'>+        }</div><div class='add'>+        return ret;</div><div class='ctx'>     }</div><div class='del'>-    return obj;</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> static inline int</div><div class='ctx'> RVALUE_MARKED(VALUE obj)</div><div class='hunk'>@@ -1120,7 +1656,13 @@ RVALUE_MARKED(VALUE obj)</div><div class='ctx'>     return RVALUE_MARK_BITMAP(obj) != 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='add'>+static inline int</div><div class='add'>+RVALUE_PINNED(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    check_rvalue_consistency(obj);</div><div class='add'>+    return RVALUE_PIN_BITMAP(obj) != 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static inline int</div><div class='ctx'> RVALUE_WB_UNPROTECTED(VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -1208,14 +1750,14 @@ RVALUE_AGE_INC(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>     int age = RVALUE_FLAGS_AGE(flags);</div><div class='ctx'> </div><div class='ctx'>     if (RGENGC_CHECK_MODE &amp;&amp; age == RVALUE_OLD_AGE) {</div><div class='del'>-	rb_bug("RVALUE_AGE_INC: can not increment age of OLD object %s.", obj_info(obj));</div><div class='add'>+        rb_bug("RVALUE_AGE_INC: can not increment age of OLD object %s.", obj_info(obj));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     age++;</div><div class='ctx'>     RBASIC(obj)-&gt;flags = RVALUE_FLAGS_AGE_SET(flags, age);</div><div class='ctx'> </div><div class='ctx'>     if (age == RVALUE_OLD_AGE) {</div><div class='del'>-	RVALUE_OLD_UNCOLLECTIBLE_SET(objspace, obj);</div><div class='add'>+        RVALUE_OLD_UNCOLLECTIBLE_SET(objspace, obj);</div><div class='ctx'>     }</div><div class='ctx'>     check_rvalue_consistency(obj);</div><div class='ctx'> }</div><div class='hunk'>@@ -1259,13 +1801,13 @@ RVALUE_DEMOTE(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>     GC_ASSERT(RVALUE_OLD_P(obj));</div><div class='ctx'> </div><div class='ctx'>     if (!is_incremental_marking(objspace) &amp;&amp; RVALUE_REMEMBERED(obj)) {</div><div class='del'>-	CLEAR_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), obj);</div><div class='add'>+        CLEAR_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), obj);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     RVALUE_DEMOTE_RAW(objspace, obj);</div><div class='ctx'> </div><div class='ctx'>     if (RVALUE_MARKED(obj)) {</div><div class='del'>-	objspace-&gt;rgengc.old_objects--;</div><div class='add'>+        objspace-&gt;rgengc.old_objects--;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     check_rvalue_consistency(obj);</div><div class='hunk'>@@ -1307,66 +1849,82 @@ RVALUE_WHITE_P(VALUE obj)</div><div class='ctx'>     return RVALUE_MARKED(obj) == FALSE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#endif /* USE_RGENGC */</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>   --------------------------- ObjectSpace -----------------------------</div><div class='ctx'> */</div><div class='ctx'> </div><div class='add'>+static inline void *</div><div class='add'>+calloc1(size_t n)</div><div class='add'>+{</div><div class='add'>+    return calloc(1, n);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> rb_objspace_t *</div><div class='ctx'> rb_objspace_alloc(void)</div><div class='ctx'> {</div><div class='del'>-#if defined(ENABLE_VM_OBJSPACE) &amp;&amp; ENABLE_VM_OBJSPACE</div><div class='del'>-    rb_objspace_t *objspace = calloc(1, sizeof(rb_objspace_t));</div><div class='del'>-#else</div><div class='del'>-    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-#endif</div><div class='add'>+    rb_objspace_t *objspace = calloc1(sizeof(rb_objspace_t));</div><div class='add'>+    objspace-&gt;flags.measure_gc = 1;</div><div class='ctx'>     malloc_limit = gc_params.malloc_limit_min;</div><div class='del'>-    list_head_init(&amp;objspace-&gt;eden_heap.pages);</div><div class='del'>-    list_head_init(&amp;objspace-&gt;tomb_heap.pages);</div><div class='add'>+</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+</div><div class='add'>+        size_pool-&gt;slot_size = (1 &lt;&lt; i) * BASE_SLOT_SIZE;</div><div class='add'>+</div><div class='add'>+        ccan_list_head_init(&amp;SIZE_POOL_EDEN_HEAP(size_pool)-&gt;pages);</div><div class='add'>+        ccan_list_head_init(&amp;SIZE_POOL_TOMB_HEAP(size_pool)-&gt;pages);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    dont_gc_on();</div><div class='ctx'> </div><div class='ctx'>     return objspace;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void free_stack_chunks(mark_stack_t *);</div><div class='add'>+static void mark_stack_free_cache(mark_stack_t *);</div><div class='ctx'> static void heap_page_free(rb_objspace_t *objspace, struct heap_page *page);</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_objspace_free(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='del'>-    if (is_lazy_sweeping(heap_eden))</div><div class='del'>-	rb_bug("lazy sweeping underway when freeing object space");</div><div class='add'>+    if (is_lazy_sweeping(objspace))</div><div class='add'>+        rb_bug("lazy sweeping underway when freeing object space");</div><div class='ctx'> </div><div class='ctx'>     if (objspace-&gt;profile.records) {</div><div class='del'>-	free(objspace-&gt;profile.records);</div><div class='del'>-	objspace-&gt;profile.records = 0;</div><div class='add'>+        free(objspace-&gt;profile.records);</div><div class='add'>+        objspace-&gt;profile.records = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (global_list) {</div><div class='del'>-	struct gc_list *list, *next;</div><div class='del'>-	for (list = global_list; list; list = next) {</div><div class='del'>-	    next = list-&gt;next;</div><div class='del'>-	    xfree(list);</div><div class='del'>-	}</div><div class='add'>+        struct gc_list *list, *next;</div><div class='add'>+        for (list = global_list; list; list = next) {</div><div class='add'>+            next = list-&gt;next;</div><div class='add'>+            xfree(list);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (heap_pages_sorted) {</div><div class='del'>-	size_t i;</div><div class='del'>-	for (i = 0; i &lt; heap_allocated_pages; ++i) {</div><div class='del'>-	    heap_page_free(objspace, heap_pages_sorted[i]);</div><div class='del'>-	}</div><div class='del'>-	free(heap_pages_sorted);</div><div class='del'>-	heap_allocated_pages = 0;</div><div class='del'>-	heap_pages_sorted_length = 0;</div><div class='del'>-	heap_pages_lomem = 0;</div><div class='del'>-	heap_pages_himem = 0;</div><div class='del'>-</div><div class='del'>-	objspace-&gt;eden_heap.total_pages = 0;</div><div class='del'>-	objspace-&gt;eden_heap.total_slots = 0;</div><div class='add'>+        size_t i;</div><div class='add'>+        for (i = 0; i &lt; heap_allocated_pages; ++i) {</div><div class='add'>+            heap_page_free(objspace, heap_pages_sorted[i]);</div><div class='add'>+        }</div><div class='add'>+        free(heap_pages_sorted);</div><div class='add'>+        heap_allocated_pages = 0;</div><div class='add'>+        heap_pages_sorted_length = 0;</div><div class='add'>+        heap_pages_lomem = 0;</div><div class='add'>+        heap_pages_himem = 0;</div><div class='add'>+</div><div class='add'>+        for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+            rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+            SIZE_POOL_EDEN_HEAP(size_pool)-&gt;total_pages = 0;</div><div class='add'>+            SIZE_POOL_EDEN_HEAP(size_pool)-&gt;total_slots = 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+    st_free_table(objspace-&gt;id_to_obj_tbl);</div><div class='add'>+    st_free_table(objspace-&gt;obj_to_id_tbl);</div><div class='add'>+</div><div class='ctx'>     free_stack_chunks(&amp;objspace-&gt;mark_stack);</div><div class='del'>-#if !(defined(ENABLE_VM_OBJSPACE) &amp;&amp; ENABLE_VM_OBJSPACE)</div><div class='del'>-    if (objspace == &amp;rb_objspace) return;</div><div class='del'>-#endif</div><div class='add'>+    mark_stack_free_cache(&amp;objspace-&gt;mark_stack);</div><div class='add'>+</div><div class='ctx'>     free(objspace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1374,20 +1932,21 @@ static void</div><div class='ctx'> heap_pages_expand_sorted_to(rb_objspace_t *objspace, size_t next_length)</div><div class='ctx'> {</div><div class='ctx'>     struct heap_page **sorted;</div><div class='del'>-    size_t size = next_length * sizeof(struct heap_page *);</div><div class='add'>+    size_t size = size_mul_or_raise(next_length, sizeof(struct heap_page *), rb_eRuntimeError);</div><div class='ctx'> </div><div class='del'>-    gc_report(3, objspace, "heap_pages_expand_sorted: next_length: %d, size: %d\n", (int)next_length, (int)size);</div><div class='add'>+    gc_report(3, objspace, "heap_pages_expand_sorted: next_length: %"PRIdSIZE", size: %"PRIdSIZE"\n",</div><div class='add'>+              next_length, size);</div><div class='ctx'> </div><div class='ctx'>     if (heap_pages_sorted_length &gt; 0) {</div><div class='del'>-	sorted = (struct heap_page **)realloc(heap_pages_sorted, size);</div><div class='del'>-	if (sorted) heap_pages_sorted = sorted;</div><div class='add'>+        sorted = (struct heap_page **)realloc(heap_pages_sorted, size);</div><div class='add'>+        if (sorted) heap_pages_sorted = sorted;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	sorted = heap_pages_sorted = (struct heap_page **)malloc(size);</div><div class='add'>+        sorted = heap_pages_sorted = (struct heap_page **)malloc(size);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (sorted == 0) {</div><div class='del'>-	rb_memerror();</div><div class='add'>+        rb_memerror();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     heap_pages_sorted_length = next_length;</div><div class='hunk'>@@ -1401,81 +1960,121 @@ heap_pages_expand_sorted(rb_objspace_t *objspace)</div><div class='ctx'>      * however, if there are pages which do not have empty slots, then try to create new pages</div><div class='ctx'>      * so that the additional allocatable_pages counts (heap_tomb-&gt;total_pages) are added.</div><div class='ctx'>      */</div><div class='del'>-    size_t next_length = heap_allocatable_pages;</div><div class='del'>-    next_length += heap_eden-&gt;total_pages;</div><div class='del'>-    next_length += heap_tomb-&gt;total_pages;</div><div class='add'>+    size_t next_length = heap_allocatable_pages(objspace);</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        next_length += SIZE_POOL_EDEN_HEAP(size_pool)-&gt;total_pages;</div><div class='add'>+        next_length += SIZE_POOL_TOMB_HEAP(size_pool)-&gt;total_pages;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (next_length &gt; heap_pages_sorted_length) {</div><div class='del'>-	heap_pages_expand_sorted_to(objspace, next_length);</div><div class='add'>+        heap_pages_expand_sorted_to(objspace, next_length);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    GC_ASSERT(heap_allocatable_pages + heap_eden-&gt;total_pages &lt;= heap_pages_sorted_length);</div><div class='add'>+    GC_ASSERT(heap_allocatable_pages(objspace) + heap_eden_total_pages(objspace) &lt;= heap_pages_sorted_length);</div><div class='ctx'>     GC_ASSERT(heap_allocated_pages &lt;= heap_pages_sorted_length);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-heap_allocatable_pages_set(rb_objspace_t *objspace, size_t s)</div><div class='add'>+size_pool_allocatable_pages_set(rb_objspace_t *objspace, rb_size_pool_t *size_pool, size_t s)</div><div class='ctx'> {</div><div class='del'>-    heap_allocatable_pages = s;</div><div class='add'>+    size_pool-&gt;allocatable_pages = s;</div><div class='ctx'>     heap_pages_expand_sorted(objspace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='ctx'> static inline void</div><div class='ctx'> heap_page_add_freeobj(rb_objspace_t *objspace, struct heap_page *page, VALUE obj)</div><div class='ctx'> {</div><div class='add'>+    ASSERT_vm_locking();</div><div class='add'>+</div><div class='ctx'>     RVALUE *p = (RVALUE *)obj;</div><div class='add'>+</div><div class='add'>+    asan_unpoison_object(obj, false);</div><div class='add'>+</div><div class='add'>+    asan_unlock_freelist(page);</div><div class='add'>+</div><div class='ctx'>     p-&gt;as.free.flags = 0;</div><div class='ctx'>     p-&gt;as.free.next = page-&gt;freelist;</div><div class='ctx'>     page-&gt;freelist = p;</div><div class='add'>+    asan_lock_freelist(page);</div><div class='ctx'> </div><div class='del'>-    if (RGENGC_CHECK_MODE &amp;&amp; !is_pointer_to_heap(objspace, p)) {</div><div class='del'>-	rb_bug("heap_page_add_freeobj: %p is not rvalue.", (void *)p);</div><div class='add'>+    if (RGENGC_CHECK_MODE &amp;&amp;</div><div class='add'>+        /* obj should belong to page */</div><div class='add'>+        !(page-&gt;start &lt;= (uintptr_t)obj &amp;&amp;</div><div class='add'>+          (uintptr_t)obj   &lt;  ((uintptr_t)page-&gt;start + (page-&gt;total_slots * page-&gt;slot_size)) &amp;&amp;</div><div class='add'>+          obj % BASE_SLOT_SIZE == 0)) {</div><div class='add'>+        rb_bug("heap_page_add_freeobj: %p is not rvalue.", (void *)p);</div><div class='ctx'>     }</div><div class='del'>-    poison_object(obj);</div><div class='ctx'> </div><div class='add'>+    asan_poison_object(obj);</div><div class='ctx'>     gc_report(3, objspace, "heap_page_add_freeobj: add %p to freelist\n", (void *)obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='del'>-heap_add_freepage(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *page)</div><div class='add'>+heap_add_freepage(rb_heap_t *heap, struct heap_page *page)</div><div class='ctx'> {</div><div class='del'>-    if (page-&gt;freelist) {</div><div class='del'>-	page-&gt;free_next = heap-&gt;free_pages;</div><div class='del'>-	heap-&gt;free_pages = page;</div><div class='del'>-    }</div><div class='add'>+    asan_unlock_freelist(page);</div><div class='add'>+    GC_ASSERT(page-&gt;free_slots != 0);</div><div class='add'>+    GC_ASSERT(page-&gt;freelist != NULL);</div><div class='add'>+</div><div class='add'>+    page-&gt;free_next = heap-&gt;free_pages;</div><div class='add'>+    heap-&gt;free_pages = page;</div><div class='add'>+</div><div class='add'>+    RUBY_DEBUG_LOG("page:%p freelist:%p", (void *)page, (void *)page-&gt;freelist);</div><div class='add'>+</div><div class='add'>+    asan_lock_freelist(page);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='del'>-static inline int</div><div class='add'>+static inline void</div><div class='ctx'> heap_add_poolpage(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *page)</div><div class='ctx'> {</div><div class='del'>-    if (page-&gt;freelist) {</div><div class='del'>-	page-&gt;free_next = heap-&gt;pooled_pages;</div><div class='del'>-	heap-&gt;pooled_pages = page;</div><div class='del'>-	objspace-&gt;rincgc.pooled_slots += page-&gt;free_slots;</div><div class='del'>-	return TRUE;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	return FALSE;</div><div class='del'>-    }</div><div class='add'>+    asan_unlock_freelist(page);</div><div class='add'>+    GC_ASSERT(page-&gt;free_slots != 0);</div><div class='add'>+    GC_ASSERT(page-&gt;freelist != NULL);</div><div class='add'>+</div><div class='add'>+    page-&gt;free_next = heap-&gt;pooled_pages;</div><div class='add'>+    heap-&gt;pooled_pages = page;</div><div class='add'>+    objspace-&gt;rincgc.pooled_slots += page-&gt;free_slots;</div><div class='add'>+</div><div class='add'>+    asan_lock_freelist(page);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> heap_unlink_page(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *page)</div><div class='ctx'> {</div><div class='del'>-    list_del(&amp;page-&gt;page_node);</div><div class='add'>+    ccan_list_del(&amp;page-&gt;page_node);</div><div class='ctx'>     heap-&gt;total_pages--;</div><div class='ctx'>     heap-&gt;total_slots -= page-&gt;total_slots;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void rb_aligned_free(void *ptr, size_t size);</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+heap_page_body_free(struct heap_page_body *page_body)</div><div class='add'>+{</div><div class='add'>+    GC_ASSERT((uintptr_t)page_body % HEAP_PAGE_ALIGN == 0);</div><div class='add'>+</div><div class='add'>+    if (HEAP_PAGE_ALLOC_USE_MMAP) {</div><div class='add'>+#ifdef HAVE_MMAP</div><div class='add'>+        GC_ASSERT(HEAP_PAGE_SIZE % sysconf(_SC_PAGE_SIZE) == 0);</div><div class='add'>+        if (munmap(page_body, HEAP_PAGE_SIZE)) {</div><div class='add'>+            rb_bug("heap_page_body_free: munmap failed");</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_aligned_free(page_body, HEAP_PAGE_SIZE);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> heap_page_free(rb_objspace_t *objspace, struct heap_page *page)</div><div class='ctx'> {</div><div class='ctx'>     heap_allocated_pages--;</div><div class='del'>-    objspace-&gt;profile.total_freed_pages++;</div><div class='del'>-    rb_aligned_free(GET_PAGE_BODY(page-&gt;start));</div><div class='add'>+    page-&gt;size_pool-&gt;total_freed_pages++;</div><div class='add'>+    heap_page_body_free(GET_PAGE_BODY(page-&gt;start));</div><div class='ctx'>     free(page);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1484,92 +2083,167 @@ heap_pages_free_unused_pages(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     size_t i, j;</div><div class='ctx'> </div><div class='del'>-    if (!list_empty(&amp;heap_tomb-&gt;pages)) {</div><div class='del'>-	for (i = j = 1; j &lt; heap_allocated_pages; i++) {</div><div class='del'>-	    struct heap_page *page = heap_pages_sorted[i];</div><div class='add'>+    bool has_pages_in_tomb_heap = FALSE;</div><div class='add'>+    for (i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        if (!ccan_list_empty(&amp;SIZE_POOL_TOMB_HEAP(&amp;size_pools[i])-&gt;pages)) {</div><div class='add'>+            has_pages_in_tomb_heap = TRUE;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (has_pages_in_tomb_heap) {</div><div class='add'>+        for (i = j = 1; j &lt; heap_allocated_pages; i++) {</div><div class='add'>+            struct heap_page *page = heap_pages_sorted[i];</div><div class='add'>+</div><div class='add'>+            if (page-&gt;flags.in_tomb &amp;&amp; page-&gt;free_slots == page-&gt;total_slots) {</div><div class='add'>+                heap_unlink_page(objspace, SIZE_POOL_TOMB_HEAP(page-&gt;size_pool), page);</div><div class='add'>+                heap_page_free(objspace, page);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                if (i != j) {</div><div class='add'>+                    heap_pages_sorted[j] = page;</div><div class='add'>+                }</div><div class='add'>+                j++;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        struct heap_page *hipage = heap_pages_sorted[heap_allocated_pages - 1];</div><div class='add'>+        uintptr_t himem = (uintptr_t)hipage-&gt;start + (hipage-&gt;total_slots * hipage-&gt;slot_size);</div><div class='add'>+        GC_ASSERT(himem &lt;= heap_pages_himem);</div><div class='add'>+        heap_pages_himem = himem;</div><div class='add'>+</div><div class='add'>+        GC_ASSERT(j == heap_allocated_pages);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct heap_page_body *</div><div class='add'>+heap_page_body_allocate(void)</div><div class='add'>+{</div><div class='add'>+    struct heap_page_body *page_body;</div><div class='add'>+</div><div class='add'>+    if (HEAP_PAGE_ALLOC_USE_MMAP) {</div><div class='add'>+#ifdef HAVE_MMAP</div><div class='add'>+        GC_ASSERT(HEAP_PAGE_ALIGN % sysconf(_SC_PAGE_SIZE) == 0);</div><div class='add'>+</div><div class='add'>+        char *ptr = mmap(NULL, HEAP_PAGE_ALIGN + HEAP_PAGE_SIZE,</div><div class='add'>+                         PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);</div><div class='add'>+        if (ptr == MAP_FAILED) {</div><div class='add'>+            return NULL;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        char *aligned = ptr + HEAP_PAGE_ALIGN;</div><div class='add'>+        aligned -= ((VALUE)aligned &amp; (HEAP_PAGE_ALIGN - 1));</div><div class='add'>+        GC_ASSERT(aligned &gt; ptr);</div><div class='add'>+        GC_ASSERT(aligned &lt;= ptr + HEAP_PAGE_ALIGN);</div><div class='add'>+</div><div class='add'>+        size_t start_out_of_range_size = aligned - ptr;</div><div class='add'>+        GC_ASSERT(start_out_of_range_size % sysconf(_SC_PAGE_SIZE) == 0);</div><div class='add'>+        if (start_out_of_range_size &gt; 0) {</div><div class='add'>+            if (munmap(ptr, start_out_of_range_size)) {</div><div class='add'>+                rb_bug("heap_page_body_allocate: munmap failed for start");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        size_t end_out_of_range_size = HEAP_PAGE_ALIGN - start_out_of_range_size;</div><div class='add'>+        GC_ASSERT(end_out_of_range_size % sysconf(_SC_PAGE_SIZE) == 0);</div><div class='add'>+        if (end_out_of_range_size &gt; 0) {</div><div class='add'>+            if (munmap(aligned + HEAP_PAGE_SIZE, end_out_of_range_size)) {</div><div class='add'>+                rb_bug("heap_page_body_allocate: munmap failed for end");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	    if (page-&gt;flags.in_tomb &amp;&amp; page-&gt;free_slots == page-&gt;total_slots) {</div><div class='del'>-		heap_unlink_page(objspace, heap_tomb, page);</div><div class='del'>-		heap_page_free(objspace, page);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		if (i != j) {</div><div class='del'>-		    heap_pages_sorted[j] = page;</div><div class='del'>-		}</div><div class='del'>-		j++;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	GC_ASSERT(j == heap_allocated_pages);</div><div class='add'>+        page_body = (struct heap_page_body *)aligned;</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        page_body = rb_aligned_malloc(HEAP_PAGE_ALIGN, HEAP_PAGE_SIZE);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    GC_ASSERT((uintptr_t)page_body % HEAP_PAGE_ALIGN == 0);</div><div class='add'>+</div><div class='add'>+    return page_body;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct heap_page *</div><div class='del'>-heap_page_allocate(rb_objspace_t *objspace)</div><div class='add'>+heap_page_allocate(rb_objspace_t *objspace, rb_size_pool_t *size_pool)</div><div class='ctx'> {</div><div class='del'>-    RVALUE *start, *end, *p;</div><div class='add'>+    uintptr_t start, end, p;</div><div class='ctx'>     struct heap_page *page;</div><div class='del'>-    struct heap_page_body *page_body = 0;</div><div class='del'>-    size_t hi, lo, mid;</div><div class='del'>-    int limit = HEAP_PAGE_OBJ_LIMIT;</div><div class='add'>+    uintptr_t hi, lo, mid;</div><div class='add'>+    size_t stride = size_pool-&gt;slot_size;</div><div class='add'>+    unsigned int limit = (unsigned int)((HEAP_PAGE_SIZE - sizeof(struct heap_page_header)))/(int)stride;</div><div class='ctx'> </div><div class='ctx'>     /* assign heap_page body (contains heap_page_header and RVALUEs) */</div><div class='del'>-    page_body = (struct heap_page_body *)rb_aligned_malloc(HEAP_PAGE_ALIGN, HEAP_PAGE_SIZE);</div><div class='add'>+    struct heap_page_body *page_body = heap_page_body_allocate();</div><div class='ctx'>     if (page_body == 0) {</div><div class='del'>-	rb_memerror();</div><div class='add'>+        rb_memerror();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* assign heap_page entry */</div><div class='del'>-    page = (struct heap_page *)calloc(1, sizeof(struct heap_page));</div><div class='add'>+    page = calloc1(sizeof(struct heap_page));</div><div class='ctx'>     if (page == 0) {</div><div class='del'>-        rb_aligned_free(page_body);</div><div class='del'>-	rb_memerror();</div><div class='add'>+        heap_page_body_free(page_body);</div><div class='add'>+        rb_memerror();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* adjust obj_limit (object number available in this page) */</div><div class='del'>-    start = (RVALUE*)((VALUE)page_body + sizeof(struct heap_page_header));</div><div class='del'>-    if ((VALUE)start % sizeof(RVALUE) != 0) {</div><div class='del'>-	int delta = (int)(sizeof(RVALUE) - ((VALUE)start % sizeof(RVALUE)));</div><div class='del'>-	start = (RVALUE*)((VALUE)start + delta);</div><div class='del'>-	limit = (HEAP_PAGE_SIZE - (int)((VALUE)start - (VALUE)page_body))/(int)sizeof(RVALUE);</div><div class='add'>+    start = (uintptr_t)((VALUE)page_body + sizeof(struct heap_page_header));</div><div class='add'>+</div><div class='add'>+    if (start % BASE_SLOT_SIZE != 0) {</div><div class='add'>+        int delta = BASE_SLOT_SIZE - (start % BASE_SLOT_SIZE);</div><div class='add'>+        start = start + delta;</div><div class='add'>+        GC_ASSERT(NUM_IN_PAGE(start) == 0 || NUM_IN_PAGE(start) == 1);</div><div class='add'>+</div><div class='add'>+        /* Find a num in page that is evenly divisible by `stride`.</div><div class='add'>+         * This is to ensure that objects are aligned with bit planes.</div><div class='add'>+         * In other words, ensure there are an even number of objects</div><div class='add'>+         * per bit plane. */</div><div class='add'>+        if (NUM_IN_PAGE(start) == 1) {</div><div class='add'>+            start += stride - BASE_SLOT_SIZE;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        GC_ASSERT(NUM_IN_PAGE(start) * BASE_SLOT_SIZE % stride == 0);</div><div class='add'>+</div><div class='add'>+        limit = (HEAP_PAGE_SIZE - (int)(start - (uintptr_t)page_body))/(int)stride;</div><div class='ctx'>     }</div><div class='del'>-    end = start + limit;</div><div class='add'>+    end = start + (limit * (int)stride);</div><div class='ctx'> </div><div class='ctx'>     /* setup heap_pages_sorted */</div><div class='ctx'>     lo = 0;</div><div class='del'>-    hi = heap_allocated_pages;</div><div class='add'>+    hi = (uintptr_t)heap_allocated_pages;</div><div class='ctx'>     while (lo &lt; hi) {</div><div class='del'>-	struct heap_page *mid_page;</div><div class='add'>+        struct heap_page *mid_page;</div><div class='ctx'> </div><div class='del'>-	mid = (lo + hi) / 2;</div><div class='del'>-	mid_page = heap_pages_sorted[mid];</div><div class='del'>-	if (mid_page-&gt;start &lt; start) {</div><div class='del'>-	    lo = mid + 1;</div><div class='del'>-	}</div><div class='del'>-	else if (mid_page-&gt;start &gt; start) {</div><div class='del'>-	    hi = mid;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_bug("same heap page is allocated: %p at %"PRIuVALUE, (void *)page_body, (VALUE)mid);</div><div class='del'>-	}</div><div class='add'>+        mid = (lo + hi) / 2;</div><div class='add'>+        mid_page = heap_pages_sorted[mid];</div><div class='add'>+        if ((uintptr_t)mid_page-&gt;start &lt; start) {</div><div class='add'>+            lo = mid + 1;</div><div class='add'>+        }</div><div class='add'>+        else if ((uintptr_t)mid_page-&gt;start &gt; start) {</div><div class='add'>+            hi = mid;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_bug("same heap page is allocated: %p at %"PRIuVALUE, (void *)page_body, (VALUE)mid);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (hi &lt; heap_allocated_pages) {</div><div class='del'>-	MEMMOVE(&amp;heap_pages_sorted[hi+1], &amp;heap_pages_sorted[hi], struct heap_page_header*, heap_allocated_pages - hi);</div><div class='add'>+    if (hi &lt; (uintptr_t)heap_allocated_pages) {</div><div class='add'>+        MEMMOVE(&amp;heap_pages_sorted[hi+1], &amp;heap_pages_sorted[hi], struct heap_page_header*, heap_allocated_pages - hi);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     heap_pages_sorted[hi] = page;</div><div class='ctx'> </div><div class='ctx'>     heap_allocated_pages++;</div><div class='ctx'> </div><div class='del'>-    GC_ASSERT(heap_eden-&gt;total_pages + heap_allocatable_pages &lt;= heap_pages_sorted_length);</div><div class='del'>-    GC_ASSERT(heap_eden-&gt;total_pages + heap_tomb-&gt;total_pages == heap_allocated_pages - 1);</div><div class='add'>+    GC_ASSERT(heap_eden_total_pages(objspace) + heap_allocatable_pages(objspace) &lt;= heap_pages_sorted_length);</div><div class='add'>+    GC_ASSERT(heap_eden_total_pages(objspace) + heap_tomb_total_pages(objspace) == heap_allocated_pages - 1);</div><div class='ctx'>     GC_ASSERT(heap_allocated_pages &lt;= heap_pages_sorted_length);</div><div class='ctx'> </div><div class='del'>-    objspace-&gt;profile.total_allocated_pages++;</div><div class='add'>+    size_pool-&gt;total_allocated_pages++;</div><div class='ctx'> </div><div class='ctx'>     if (heap_allocated_pages &gt; heap_pages_sorted_length) {</div><div class='del'>-	rb_bug("heap_page_allocate: allocated(%"PRIdSIZE") &gt; sorted(%"PRIdSIZE")",</div><div class='del'>-	       heap_allocated_pages, heap_pages_sorted_length);</div><div class='add'>+        rb_bug("heap_page_allocate: allocated(%"PRIdSIZE") &gt; sorted(%"PRIdSIZE")",</div><div class='add'>+               heap_allocated_pages, heap_pages_sorted_length);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (heap_pages_lomem == 0 || heap_pages_lomem &gt; start) heap_pages_lomem = start;</div><div class='hunk'>@@ -1577,216 +2251,216 @@ heap_page_allocate(rb_objspace_t *objspace)</div><div class='ctx'> </div><div class='ctx'>     page-&gt;start = start;</div><div class='ctx'>     page-&gt;total_slots = limit;</div><div class='add'>+    page-&gt;slot_size = size_pool-&gt;slot_size;</div><div class='add'>+    page-&gt;size_pool = size_pool;</div><div class='ctx'>     page_body-&gt;header.page = page;</div><div class='ctx'> </div><div class='del'>-    for (p = start; p != end; p++) {</div><div class='del'>-	gc_report(3, objspace, "assign_heap_page: %p is added to freelist\n", (void *)p);</div><div class='del'>-	heap_page_add_freeobj(objspace, page, (VALUE)p);</div><div class='add'>+    for (p = start; p != end; p += stride) {</div><div class='add'>+        gc_report(3, objspace, "assign_heap_page: %p is added to freelist\n", (void *)p);</div><div class='add'>+        heap_page_add_freeobj(objspace, page, (VALUE)p);</div><div class='ctx'>     }</div><div class='ctx'>     page-&gt;free_slots = limit;</div><div class='ctx'> </div><div class='add'>+    asan_lock_freelist(page);</div><div class='ctx'>     return page;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct heap_page *</div><div class='del'>-heap_page_resurrect(rb_objspace_t *objspace)</div><div class='add'>+heap_page_resurrect(rb_objspace_t *objspace, rb_size_pool_t *size_pool)</div><div class='ctx'> {</div><div class='ctx'>     struct heap_page *page = 0, *next;</div><div class='ctx'> </div><div class='del'>-    list_for_each_safe(&amp;heap_tomb-&gt;pages, page, next, page_node) {</div><div class='del'>-	if (page-&gt;freelist != NULL) {</div><div class='del'>-	    heap_unlink_page(objspace, heap_tomb, page);</div><div class='del'>-	    return page;</div><div class='del'>-	}</div><div class='add'>+    ccan_list_for_each_safe(&amp;SIZE_POOL_TOMB_HEAP(size_pool)-&gt;pages, page, next, page_node) {</div><div class='add'>+        asan_unlock_freelist(page);</div><div class='add'>+        if (page-&gt;freelist != NULL) {</div><div class='add'>+            heap_unlink_page(objspace, &amp;size_pool-&gt;tomb_heap, page);</div><div class='add'>+            asan_lock_freelist(page);</div><div class='add'>+            return page;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return NULL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static struct heap_page *</div><div class='del'>-heap_page_create(rb_objspace_t *objspace)</div><div class='add'>+heap_page_create(rb_objspace_t *objspace, rb_size_pool_t *size_pool)</div><div class='ctx'> {</div><div class='ctx'>     struct heap_page *page;</div><div class='ctx'>     const char *method = "recycle";</div><div class='ctx'> </div><div class='del'>-    heap_allocatable_pages--;</div><div class='add'>+    size_pool-&gt;allocatable_pages--;</div><div class='ctx'> </div><div class='del'>-    page = heap_page_resurrect(objspace);</div><div class='add'>+    page = heap_page_resurrect(objspace, size_pool);</div><div class='ctx'> </div><div class='ctx'>     if (page == NULL) {</div><div class='del'>-	page = heap_page_allocate(objspace);</div><div class='del'>-	method = "allocate";</div><div class='del'>-    }</div><div class='del'>-    if (0) fprintf(stderr, "heap_page_create: %s - %p, heap_allocated_pages: %d, heap_allocated_pages: %d, tomb-&gt;total_pages: %d\n",</div><div class='del'>-		   method, (void *)page, (int)heap_pages_sorted_length, (int)heap_allocated_pages, (int)heap_tomb-&gt;total_pages);</div><div class='add'>+        page = heap_page_allocate(objspace, size_pool);</div><div class='add'>+        method = "allocate";</div><div class='add'>+    }</div><div class='add'>+    if (0) fprintf(stderr, "heap_page_create: %s - %p, "</div><div class='add'>+                   "heap_allocated_pages: %"PRIdSIZE", "</div><div class='add'>+                   "heap_allocated_pages: %"PRIdSIZE", "</div><div class='add'>+                   "tomb-&gt;total_pages: %"PRIdSIZE"\n",</div><div class='add'>+                   method, (void *)page, heap_pages_sorted_length, heap_allocated_pages, SIZE_POOL_TOMB_HEAP(size_pool)-&gt;total_pages);</div><div class='ctx'>     return page;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-heap_add_page(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *page)</div><div class='add'>+heap_add_page(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap, struct heap_page *page)</div><div class='ctx'> {</div><div class='del'>-    page-&gt;flags.in_tomb = (heap == heap_tomb);</div><div class='del'>-    list_add(&amp;heap-&gt;pages, &amp;page-&gt;page_node);</div><div class='add'>+    /* Adding to eden heap during incremental sweeping is forbidden */</div><div class='add'>+    GC_ASSERT(!(heap == SIZE_POOL_EDEN_HEAP(size_pool) &amp;&amp; heap-&gt;sweeping_page));</div><div class='add'>+    page-&gt;flags.in_tomb = (heap == SIZE_POOL_TOMB_HEAP(size_pool));</div><div class='add'>+    ccan_list_add_tail(&amp;heap-&gt;pages, &amp;page-&gt;page_node);</div><div class='ctx'>     heap-&gt;total_pages++;</div><div class='ctx'>     heap-&gt;total_slots += page-&gt;total_slots;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-heap_assign_page(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='add'>+heap_assign_page(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='del'>-    struct heap_page *page = heap_page_create(objspace);</div><div class='del'>-    heap_add_page(objspace, heap, page);</div><div class='del'>-    heap_add_freepage(objspace, heap, page);</div><div class='add'>+    struct heap_page *page = heap_page_create(objspace, size_pool);</div><div class='add'>+    heap_add_page(objspace, size_pool, heap, page);</div><div class='add'>+    heap_add_freepage(heap, page);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-heap_add_pages(rb_objspace_t *objspace, rb_heap_t *heap, size_t add)</div><div class='add'>+heap_add_pages(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap, size_t add)</div><div class='ctx'> {</div><div class='ctx'>     size_t i;</div><div class='ctx'> </div><div class='del'>-    heap_allocatable_pages_set(objspace, add);</div><div class='add'>+    size_pool_allocatable_pages_set(objspace, size_pool, add);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; add; i++) {</div><div class='del'>-	heap_assign_page(objspace, heap);</div><div class='add'>+        heap_assign_page(objspace, size_pool, heap);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    GC_ASSERT(heap_allocatable_pages == 0);</div><div class='add'>+    GC_ASSERT(size_pool-&gt;allocatable_pages == 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static size_t</div><div class='del'>-heap_extend_pages(rb_objspace_t *objspace, size_t free_slots, size_t total_slots)</div><div class='add'>+heap_extend_pages(rb_objspace_t *objspace, rb_size_pool_t *size_pool, size_t free_slots, size_t total_slots, size_t used)</div><div class='ctx'> {</div><div class='ctx'>     double goal_ratio = gc_params.heap_free_slots_goal_ratio;</div><div class='del'>-    size_t used = heap_allocated_pages + heap_allocatable_pages;</div><div class='ctx'>     size_t next_used;</div><div class='ctx'> </div><div class='ctx'>     if (goal_ratio == 0.0) {</div><div class='del'>-	next_used = (size_t)(used * gc_params.growth_factor);</div><div class='add'>+        next_used = (size_t)(used * gc_params.growth_factor);</div><div class='add'>+    }</div><div class='add'>+    else if (total_slots == 0) {</div><div class='add'>+        int multiple = size_pool-&gt;slot_size / BASE_SLOT_SIZE;</div><div class='add'>+        next_used = (gc_params.heap_init_slots * multiple) / HEAP_PAGE_OBJ_LIMIT;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	/* Find `f' where free_slots = f * total_slots * goal_ratio</div><div class='del'>-	 * =&gt; f = (total_slots - free_slots) / ((1 - goal_ratio) * total_slots)</div><div class='del'>-	 */</div><div class='del'>-	double f = (double)(total_slots - free_slots) / ((1 - goal_ratio) * total_slots);</div><div class='del'>-</div><div class='del'>-	if (f &gt; gc_params.growth_factor) f = gc_params.growth_factor;</div><div class='del'>-	if (f &lt; 1.0) f = 1.1;</div><div class='del'>-</div><div class='del'>-	next_used = (size_t)(f * used);</div><div class='del'>-</div><div class='del'>-	if (0) {</div><div class='del'>-	    fprintf(stderr,</div><div class='del'>-		    "free_slots(%8"PRIuSIZE")/total_slots(%8"PRIuSIZE")=%1.2f,"</div><div class='del'>-		    " G(%1.2f), f(%1.2f),"</div><div class='del'>-		    " used(%8"PRIuSIZE") =&gt; next_used(%8"PRIuSIZE")\n",</div><div class='del'>-		    free_slots, total_slots, free_slots/(double)total_slots,</div><div class='del'>-		    goal_ratio, f, used, next_used);</div><div class='del'>-	}</div><div class='add'>+        /* Find `f' where free_slots = f * total_slots * goal_ratio</div><div class='add'>+         * =&gt; f = (total_slots - free_slots) / ((1 - goal_ratio) * total_slots)</div><div class='add'>+         */</div><div class='add'>+        double f = (double)(total_slots - free_slots) / ((1 - goal_ratio) * total_slots);</div><div class='add'>+</div><div class='add'>+        if (f &gt; gc_params.growth_factor) f = gc_params.growth_factor;</div><div class='add'>+        if (f &lt; 1.0) f = 1.1;</div><div class='add'>+</div><div class='add'>+        next_used = (size_t)(f * used);</div><div class='add'>+</div><div class='add'>+        if (0) {</div><div class='add'>+            fprintf(stderr,</div><div class='add'>+                    "free_slots(%8"PRIuSIZE")/total_slots(%8"PRIuSIZE")=%1.2f,"</div><div class='add'>+                    " G(%1.2f), f(%1.2f),"</div><div class='add'>+                    " used(%8"PRIuSIZE") =&gt; next_used(%8"PRIuSIZE")\n",</div><div class='add'>+                    free_slots, total_slots, free_slots/(double)total_slots,</div><div class='add'>+                    goal_ratio, f, used, next_used);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (gc_params.growth_max_slots &gt; 0) {</div><div class='del'>-	size_t max_used = (size_t)(used + gc_params.growth_max_slots/HEAP_PAGE_OBJ_LIMIT);</div><div class='del'>-	if (next_used &gt; max_used) next_used = max_used;</div><div class='add'>+        size_t max_used = (size_t)(used + gc_params.growth_max_slots/HEAP_PAGE_OBJ_LIMIT);</div><div class='add'>+        if (next_used &gt; max_used) next_used = max_used;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return next_used - used;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-heap_set_increment(rb_objspace_t *objspace, size_t additional_pages)</div><div class='del'>-{</div><div class='del'>-    size_t used = heap_eden-&gt;total_pages;</div><div class='del'>-    size_t next_used_limit = used + additional_pages;</div><div class='del'>-</div><div class='del'>-    if (next_used_limit == heap_allocated_pages) next_used_limit++;</div><div class='add'>+    size_t extend_page_count = next_used - used;</div><div class='add'>+    /* Extend by at least 1 page. */</div><div class='add'>+    if (extend_page_count == 0) extend_page_count = 1;</div><div class='ctx'> </div><div class='del'>-    heap_allocatable_pages_set(objspace, next_used_limit - used);</div><div class='del'>-</div><div class='del'>-    gc_report(1, objspace, "heap_set_increment: heap_allocatable_pages is %d\n", (int)heap_allocatable_pages);</div><div class='add'>+    return extend_page_count;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-heap_increment(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='add'>+heap_increment(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='del'>-    if (heap_allocatable_pages &gt; 0) {</div><div class='del'>-	gc_report(1, objspace, "heap_increment: heap_pages_sorted_length: %d, heap_pages_inc: %d, heap-&gt;total_pages: %d\n",</div><div class='del'>-		  (int)heap_pages_sorted_length, (int)heap_allocatable_pages, (int)heap-&gt;total_pages);</div><div class='add'>+    if (size_pool-&gt;allocatable_pages &gt; 0) {</div><div class='add'>+        gc_report(1, objspace, "heap_increment: heap_pages_sorted_length: %"PRIdSIZE", "</div><div class='add'>+                  "heap_pages_inc: %"PRIdSIZE", heap-&gt;total_pages: %"PRIdSIZE"\n",</div><div class='add'>+                  heap_pages_sorted_length, size_pool-&gt;allocatable_pages, heap-&gt;total_pages);</div><div class='ctx'> </div><div class='del'>-	GC_ASSERT(heap_allocatable_pages + heap_eden-&gt;total_pages &lt;= heap_pages_sorted_length);</div><div class='del'>-	GC_ASSERT(heap_allocated_pages &lt;= heap_pages_sorted_length);</div><div class='add'>+        GC_ASSERT(heap_allocatable_pages(objspace) + heap_eden_total_pages(objspace) &lt;= heap_pages_sorted_length);</div><div class='add'>+        GC_ASSERT(heap_allocated_pages &lt;= heap_pages_sorted_length);</div><div class='ctx'> </div><div class='del'>-	heap_assign_page(objspace, heap);</div><div class='del'>-	return TRUE;</div><div class='add'>+        heap_assign_page(objspace, size_pool, heap);</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     return FALSE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-heap_prepare(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='add'>+gc_continue(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='del'>-    GC_ASSERT(heap-&gt;free_pages == NULL);</div><div class='del'>-</div><div class='del'>-    if (is_lazy_sweeping(heap)) {</div><div class='del'>-	gc_sweep_continue(objspace, heap);</div><div class='del'>-    }</div><div class='del'>-    else if (is_incremental_marking(objspace)) {</div><div class='del'>-	gc_marks_continue(objspace, heap);</div><div class='add'>+    /* Continue marking if in incremental marking. */</div><div class='add'>+    if (heap-&gt;free_pages == NULL &amp;&amp; is_incremental_marking(objspace)) {</div><div class='add'>+        gc_marks_continue(objspace, size_pool, heap);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (heap-&gt;free_pages == NULL &amp;&amp;</div><div class='del'>-	(will_be_incremental_marking(objspace) || heap_increment(objspace, heap) == FALSE) &amp;&amp;</div><div class='del'>-	gc_start(objspace, GPR_FLAG_NEWOBJ) == FALSE) {</div><div class='del'>-	rb_memerror();</div><div class='add'>+    /* Continue sweeping if in lazy sweeping or the previous incremental</div><div class='add'>+     * marking finished and did not yield a free page. */</div><div class='add'>+    if (heap-&gt;free_pages == NULL &amp;&amp; is_lazy_sweeping(objspace)) {</div><div class='add'>+        gc_sweep_continue(objspace, size_pool, heap);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static RVALUE *</div><div class='del'>-heap_get_freeobj_from_next_freepage(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='add'>+static void</div><div class='add'>+heap_prepare(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='del'>-    struct heap_page *page;</div><div class='del'>-    RVALUE *p;</div><div class='del'>-</div><div class='del'>-    while (heap-&gt;free_pages == NULL) {</div><div class='del'>-	heap_prepare(objspace, heap);</div><div class='del'>-    }</div><div class='del'>-    page = heap-&gt;free_pages;</div><div class='del'>-    heap-&gt;free_pages = page-&gt;free_next;</div><div class='del'>-    heap-&gt;using_page = page;</div><div class='add'>+    GC_ASSERT(heap-&gt;free_pages == NULL);</div><div class='ctx'> </div><div class='del'>-    GC_ASSERT(page-&gt;free_slots != 0);</div><div class='del'>-    p = page-&gt;freelist;</div><div class='del'>-    page-&gt;freelist = NULL;</div><div class='del'>-    page-&gt;free_slots = 0;</div><div class='del'>-    unpoison_object((VALUE)p, true);</div><div class='del'>-    return p;</div><div class='del'>-}</div><div class='add'>+    /* Continue incremental marking or lazy sweeping, if in any of those steps. */</div><div class='add'>+    gc_continue(objspace, size_pool, heap);</div><div class='ctx'> </div><div class='del'>-static inline VALUE</div><div class='del'>-heap_get_freeobj_head(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='del'>-{</div><div class='del'>-    RVALUE *p = heap-&gt;freelist;</div><div class='del'>-    if (LIKELY(p != NULL)) {</div><div class='del'>-	heap-&gt;freelist = p-&gt;as.free.next;</div><div class='add'>+    /* If we still don't have a free page and not allowed to create a new page,</div><div class='add'>+     * we should start a new GC cycle. */</div><div class='add'>+    if (heap-&gt;free_pages == NULL &amp;&amp;</div><div class='add'>+            (will_be_incremental_marking(objspace) ||</div><div class='add'>+                (heap_increment(objspace, size_pool, heap) == FALSE))) {</div><div class='add'>+        if (gc_start(objspace, GPR_FLAG_NEWOBJ) == FALSE) {</div><div class='add'>+            rb_memerror();</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* Do steps of incremental marking or lazy sweeping if the GC run permits. */</div><div class='add'>+            gc_continue(objspace, size_pool, heap);</div><div class='add'>+</div><div class='add'>+            /* If we're not incremental marking (e.g. a minor GC) or finished</div><div class='add'>+             * sweeping and still don't have a free page, then</div><div class='add'>+             * gc_sweep_finish_size_pool should allow us to create a new page. */</div><div class='add'>+            if (heap-&gt;free_pages == NULL &amp;&amp; !heap_increment(objspace, size_pool, heap)) {</div><div class='add'>+                if (objspace-&gt;rgengc.need_major_gc == GPR_FLAG_NONE) {</div><div class='add'>+                    rb_bug("cannot create a new page after GC");</div><div class='add'>+                }</div><div class='add'>+                else { // Major GC is required, which will allow us to create new page</div><div class='add'>+                    if (gc_start(objspace, GPR_FLAG_NEWOBJ) == FALSE) {</div><div class='add'>+                        rb_memerror();</div><div class='add'>+                    }</div><div class='add'>+                    else {</div><div class='add'>+                        /* Do steps of incremental marking or lazy sweeping. */</div><div class='add'>+                        gc_continue(objspace, size_pool, heap);</div><div class='add'>+</div><div class='add'>+                        if (heap-&gt;free_pages == NULL &amp;&amp;</div><div class='add'>+                                !heap_increment(objspace, size_pool, heap)) {</div><div class='add'>+                            rb_bug("cannot create a new page after major GC");</div><div class='add'>+                        }</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    unpoison_object((VALUE)p, true);</div><div class='del'>-    return (VALUE)p;</div><div class='del'>-}</div><div class='ctx'> </div><div class='del'>-static inline VALUE</div><div class='del'>-heap_get_freeobj(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='del'>-{</div><div class='del'>-    RVALUE *p = heap-&gt;freelist;</div><div class='del'>-</div><div class='del'>-    while (1) {</div><div class='del'>-	if (LIKELY(p != NULL)) {</div><div class='del'>-            unpoison_object((VALUE)p, true);</div><div class='del'>-	    heap-&gt;freelist = p-&gt;as.free.next;</div><div class='del'>-	    return (VALUE)p;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    p = heap_get_freeobj_from_next_freepage(objspace, heap);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='add'>+    GC_ASSERT(heap-&gt;free_pages != NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -1800,8 +2474,12 @@ rb_objspace_set_event_hook(const rb_event_flag_t event)</div><div class='ctx'> static void</div><div class='ctx'> gc_event_hook_body(rb_execution_context_t *ec, rb_objspace_t *objspace, const rb_event_flag_t event, VALUE data)</div><div class='ctx'> {</div><div class='del'>-    /* increment PC because source line is calculated with PC-1 */</div><div class='del'>-    const VALUE *pc = ec-&gt;cfp-&gt;pc++;</div><div class='add'>+    if (UNLIKELY(!ec-&gt;cfp)) return;</div><div class='add'>+    const VALUE *pc = ec-&gt;cfp-&gt;pc;</div><div class='add'>+    if (pc &amp;&amp; VM_FRAME_RUBYFRAME_P(ec-&gt;cfp)) {</div><div class='add'>+        /* increment PC because source line is calculated with PC-1 */</div><div class='add'>+        ec-&gt;cfp-&gt;pc++;</div><div class='add'>+    }</div><div class='ctx'>     EXEC_EVENT_HOOK(ec, event, ec-&gt;cfp-&gt;self, 0, 0, 0, data);</div><div class='ctx'>     ec-&gt;cfp-&gt;pc = pc;</div><div class='ctx'> }</div><div class='hunk'>@@ -1809,57 +2487,72 @@ gc_event_hook_body(rb_execution_context_t *ec, rb_objspace_t *objspace, const rb</div><div class='ctx'> #define gc_event_hook_available_p(objspace) ((objspace)-&gt;flags.has_hook)</div><div class='ctx'> #define gc_event_hook_needed_p(objspace, event) ((objspace)-&gt;hook_events &amp; (event))</div><div class='ctx'> </div><div class='del'>-#define gc_event_hook(objspace, event, data) do { \</div><div class='add'>+#define gc_event_hook_prep(objspace, event, data, prep) do { \</div><div class='ctx'>     if (UNLIKELY(gc_event_hook_needed_p(objspace, event))) { \</div><div class='del'>-	gc_event_hook_body(GET_EC(), (objspace), (event), (data)); \</div><div class='add'>+        prep; \</div><div class='add'>+        gc_event_hook_body(GET_EC(), (objspace), (event), (data)); \</div><div class='ctx'>     } \</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='add'>+#define gc_event_hook(objspace, event, data) gc_event_hook_prep(objspace, event, data, (void)0)</div><div class='add'>+</div><div class='ctx'> static inline VALUE</div><div class='del'>-newobj_init(VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, int wb_protected, rb_objspace_t *objspace, VALUE obj)</div><div class='add'>+newobj_init(VALUE klass, VALUE flags, int wb_protected, rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='add'>+#if !__has_feature(memory_sanitizer)</div><div class='ctx'>     GC_ASSERT(BUILTIN_TYPE(obj) == T_NONE);</div><div class='ctx'>     GC_ASSERT((flags &amp; FL_WB_PROTECTED) == 0);</div><div class='add'>+#endif</div><div class='add'>+    RVALUE *p = RANY(obj);</div><div class='add'>+    p-&gt;as.basic.flags = flags;</div><div class='add'>+    *((VALUE *)&amp;p-&gt;as.basic.klass) = klass;</div><div class='ctx'> </div><div class='del'>-    /* OBJSETUP */</div><div class='del'>-    RBASIC(obj)-&gt;flags = flags;</div><div class='del'>-    RBASIC_SET_CLASS_RAW(obj, klass);</div><div class='del'>-    RANY(obj)-&gt;as.values.v1 = v1;</div><div class='del'>-    RANY(obj)-&gt;as.values.v2 = v2;</div><div class='del'>-    RANY(obj)-&gt;as.values.v3 = v3;</div><div class='add'>+#if RACTOR_CHECK_MODE</div><div class='add'>+    rb_ractor_setup_belonging(obj);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_CHECK_MODE</div><div class='del'>-    GC_ASSERT(RVALUE_MARKED(obj) == FALSE);</div><div class='del'>-    GC_ASSERT(RVALUE_MARKING(obj) == FALSE);</div><div class='del'>-    GC_ASSERT(RVALUE_OLD_P(obj) == FALSE);</div><div class='del'>-    GC_ASSERT(RVALUE_WB_UNPROTECTED(obj) == FALSE);</div><div class='add'>+    p-&gt;as.values.v1 = p-&gt;as.values.v2 = p-&gt;as.values.v3 = 0;</div><div class='ctx'> </div><div class='del'>-    if (flags &amp; FL_PROMOTED1) {</div><div class='del'>-	if (RVALUE_AGE(obj) != 2) rb_bug("newobj: %s of age (%d) != 2.", obj_info(obj), RVALUE_AGE(obj));</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	if (RVALUE_AGE(obj) &gt; 0) rb_bug("newobj: %s of age (%d) &gt; 0.", obj_info(obj), RVALUE_AGE(obj));</div><div class='add'>+    RB_VM_LOCK_ENTER_NO_BARRIER();</div><div class='add'>+    {</div><div class='add'>+        check_rvalue_consistency(obj);</div><div class='add'>+</div><div class='add'>+        GC_ASSERT(RVALUE_MARKED(obj) == FALSE);</div><div class='add'>+        GC_ASSERT(RVALUE_MARKING(obj) == FALSE);</div><div class='add'>+        GC_ASSERT(RVALUE_OLD_P(obj) == FALSE);</div><div class='add'>+        GC_ASSERT(RVALUE_WB_UNPROTECTED(obj) == FALSE);</div><div class='add'>+</div><div class='add'>+        if (flags &amp; FL_PROMOTED1) {</div><div class='add'>+            if (RVALUE_AGE(obj) != 2) rb_bug("newobj: %s of age (%d) != 2.", obj_info(obj), RVALUE_AGE(obj));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (RVALUE_AGE(obj) &gt; 0) rb_bug("newobj: %s of age (%d) &gt; 0.", obj_info(obj), RVALUE_AGE(obj));</div><div class='add'>+        }</div><div class='add'>+        if (rgengc_remembered(objspace, (VALUE)obj)) rb_bug("newobj: %s is remembered.", obj_info(obj));</div><div class='ctx'>     }</div><div class='del'>-    if (rgengc_remembered(objspace, (VALUE)obj)) rb_bug("newobj: %s is remembered.", obj_info(obj));</div><div class='add'>+    RB_VM_LOCK_LEAVE_NO_BARRIER();</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     if (UNLIKELY(wb_protected == FALSE)) {</div><div class='del'>-	MARK_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS(obj), obj);</div><div class='add'>+        ASSERT_vm_locking();</div><div class='add'>+        MARK_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS(obj), obj);</div><div class='ctx'>     }</div><div class='del'>-#endif</div><div class='add'>+</div><div class='add'>+    // TODO: make it atomic, or ractor local</div><div class='add'>+    objspace-&gt;total_allocated_objects++;</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_PROFILE</div><div class='ctx'>     if (wb_protected) {</div><div class='del'>-	objspace-&gt;profile.total_generated_normal_object_count++;</div><div class='add'>+        objspace-&gt;profile.total_generated_normal_object_count++;</div><div class='ctx'> #if RGENGC_PROFILE &gt;= 2</div><div class='del'>-	objspace-&gt;profile.generated_normal_object_count_types[BUILTIN_TYPE(obj)]++;</div><div class='add'>+        objspace-&gt;profile.generated_normal_object_count_types[BUILTIN_TYPE(obj)]++;</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	objspace-&gt;profile.total_generated_shady_object_count++;</div><div class='add'>+        objspace-&gt;profile.total_generated_shady_object_count++;</div><div class='ctx'> #if RGENGC_PROFILE &gt;= 2</div><div class='del'>-	objspace-&gt;profile.generated_shady_object_count_types[BUILTIN_TYPE(obj)]++;</div><div class='add'>+        objspace-&gt;profile.generated_shady_object_count_types[BUILTIN_TYPE(obj)]++;</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -1869,77 +2562,305 @@ newobj_init(VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, int wb_prote</div><div class='ctx'>     GC_ASSERT(!SPECIAL_CONST_P(obj)); /* check alignment */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    objspace-&gt;total_allocated_objects++;</div><div class='del'>-</div><div class='ctx'>     gc_report(5, objspace, "newobj: %s\n", obj_info(obj));</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_OLD_NEWOBJ_CHECK &gt; 0</div><div class='ctx'>     {</div><div class='del'>-	static int newobj_cnt = RGENGC_OLD_NEWOBJ_CHECK;</div><div class='add'>+        static int newobj_cnt = RGENGC_OLD_NEWOBJ_CHECK;</div><div class='ctx'> </div><div class='del'>-	if (!is_incremental_marking(objspace) &amp;&amp;</div><div class='del'>-	    flags &amp; FL_WB_PROTECTED &amp;&amp;   /* do not promote WB unprotected objects */</div><div class='del'>-	    ! RB_TYPE_P(obj, T_ARRAY)) { /* array.c assumes that allocated objects are new */</div><div class='del'>-	    if (--newobj_cnt == 0) {</div><div class='del'>-		newobj_cnt = RGENGC_OLD_NEWOBJ_CHECK;</div><div class='add'>+        if (!is_incremental_marking(objspace) &amp;&amp;</div><div class='add'>+            flags &amp; FL_WB_PROTECTED &amp;&amp;   /* do not promote WB unprotected objects */</div><div class='add'>+            ! RB_TYPE_P(obj, T_ARRAY)) { /* array.c assumes that allocated objects are new */</div><div class='add'>+            if (--newobj_cnt == 0) {</div><div class='add'>+                newobj_cnt = RGENGC_OLD_NEWOBJ_CHECK;</div><div class='ctx'> </div><div class='del'>-		gc_mark_set(objspace, obj);</div><div class='del'>-		RVALUE_AGE_SET_OLD(objspace, obj);</div><div class='add'>+                gc_mark_set(objspace, obj);</div><div class='add'>+                RVALUE_AGE_SET_OLD(objspace, obj);</div><div class='ctx'> </div><div class='del'>-		rb_gc_writebarrier_remember(obj);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+                rb_gc_writebarrier_remember(obj);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='del'>-    check_rvalue_consistency(obj);</div><div class='add'>+    // RUBY_DEBUG_LOG("obj:%p (%s)", (void *)obj, obj_type_name(obj));</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+size_t</div><div class='add'>+rb_gc_obj_slot_size(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return GET_HEAP_PAGE(obj)-&gt;slot_size - RVALUE_OVERHEAD;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+size_pool_slot_size(unsigned char pool_id)</div><div class='add'>+{</div><div class='add'>+    GC_ASSERT(pool_id &lt; SIZE_POOL_COUNT);</div><div class='add'>+</div><div class='add'>+    size_t slot_size = (1 &lt;&lt; pool_id) * BASE_SLOT_SIZE;</div><div class='add'>+</div><div class='add'>+#if RGENGC_CHECK_MODE</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    GC_ASSERT(size_pools[pool_id].slot_size == (short)slot_size);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    slot_size -= RVALUE_OVERHEAD;</div><div class='add'>+</div><div class='add'>+    return slot_size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+size_t</div><div class='add'>+rb_size_pool_slot_size(unsigned char pool_id)</div><div class='add'>+{</div><div class='add'>+    return size_pool_slot_size(pool_id);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+bool</div><div class='add'>+rb_gc_size_allocatable_p(size_t size)</div><div class='add'>+{</div><div class='add'>+    return size &lt;= size_pool_slot_size(SIZE_POOL_COUNT - 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static inline VALUE</div><div class='del'>-newobj_slowpath(VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, rb_objspace_t *objspace, int wb_protected)</div><div class='add'>+ractor_cache_allocate_slot(rb_objspace_t *objspace, rb_ractor_newobj_cache_t *cache,</div><div class='add'>+                           size_t size_pool_idx)</div><div class='add'>+{</div><div class='add'>+    rb_ractor_newobj_size_pool_cache_t *size_pool_cache = &amp;cache-&gt;size_pool_caches[size_pool_idx];</div><div class='add'>+    RVALUE *p = size_pool_cache-&gt;freelist;</div><div class='add'>+</div><div class='add'>+#if GC_ENABLE_INCREMENTAL_MARK</div><div class='add'>+    if (is_incremental_marking(objspace)) {</div><div class='add'>+        // Not allowed to allocate without running an incremental marking step</div><div class='add'>+        if (cache-&gt;incremental_mark_step_allocated_slots &gt;= INCREMENTAL_MARK_STEP_ALLOCATIONS) {</div><div class='add'>+            return Qfalse;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (p) {</div><div class='add'>+            cache-&gt;incremental_mark_step_allocated_slots++;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (p) {</div><div class='add'>+        VALUE obj = (VALUE)p;</div><div class='add'>+        MAYBE_UNUSED(const size_t) stride = size_pool_slot_size(size_pool_idx);</div><div class='add'>+        size_pool_cache-&gt;freelist = p-&gt;as.free.next;</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+        asan_unpoison_memory_region(p, stride, true);</div><div class='add'>+#else</div><div class='add'>+        asan_unpoison_object(obj, true);</div><div class='add'>+#endif</div><div class='add'>+#if RGENGC_CHECK_MODE</div><div class='add'>+        GC_ASSERT(rb_gc_obj_slot_size(obj) == stride);</div><div class='add'>+        // zero clear</div><div class='add'>+        MEMZERO((char *)obj, char, stride);</div><div class='add'>+#endif</div><div class='add'>+        return obj;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return Qfalse;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static struct heap_page *</div><div class='add'>+heap_next_free_page(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap)</div><div class='add'>+{</div><div class='add'>+    ASSERT_vm_locking();</div><div class='add'>+</div><div class='add'>+    struct heap_page *page;</div><div class='add'>+</div><div class='add'>+    if (heap-&gt;free_pages == NULL) {</div><div class='add'>+        heap_prepare(objspace, size_pool, heap);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    page = heap-&gt;free_pages;</div><div class='add'>+    heap-&gt;free_pages = page-&gt;free_next;</div><div class='add'>+</div><div class='add'>+    GC_ASSERT(page-&gt;free_slots != 0);</div><div class='add'>+    RUBY_DEBUG_LOG("page:%p freelist:%p cnt:%d", (void *)page, (void *)page-&gt;freelist, page-&gt;free_slots);</div><div class='add'>+</div><div class='add'>+    asan_unlock_freelist(page);</div><div class='add'>+</div><div class='add'>+    return page;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+ractor_cache_set_page(rb_ractor_newobj_cache_t *cache, size_t size_pool_idx,</div><div class='add'>+                      struct heap_page *page)</div><div class='add'>+{</div><div class='add'>+    gc_report(3, &amp;rb_objspace, "ractor_set_cache: Using page %p\n", (void *)GET_PAGE_BODY(page-&gt;start));</div><div class='add'>+</div><div class='add'>+    rb_ractor_newobj_size_pool_cache_t *size_pool_cache = &amp;cache-&gt;size_pool_caches[size_pool_idx];</div><div class='add'>+</div><div class='add'>+    GC_ASSERT(size_pool_cache-&gt;freelist == NULL);</div><div class='add'>+    GC_ASSERT(page-&gt;free_slots != 0);</div><div class='add'>+    GC_ASSERT(page-&gt;freelist != NULL);</div><div class='add'>+</div><div class='add'>+    size_pool_cache-&gt;using_page = page;</div><div class='add'>+    size_pool_cache-&gt;freelist = page-&gt;freelist;</div><div class='add'>+    page-&gt;free_slots = 0;</div><div class='add'>+    page-&gt;freelist = NULL;</div><div class='add'>+</div><div class='add'>+    asan_unpoison_object((VALUE)size_pool_cache-&gt;freelist, false);</div><div class='add'>+    GC_ASSERT(RB_TYPE_P((VALUE)size_pool_cache-&gt;freelist, T_NONE));</div><div class='add'>+    asan_poison_object((VALUE)size_pool_cache-&gt;freelist);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+newobj_fill(VALUE obj, VALUE v1, VALUE v2, VALUE v3)</div><div class='add'>+{</div><div class='add'>+    RVALUE *p = (RVALUE *)obj;</div><div class='add'>+    p-&gt;as.values.v1 = v1;</div><div class='add'>+    p-&gt;as.values.v2 = v2;</div><div class='add'>+    p-&gt;as.values.v3 = v3;</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+size_pool_idx_for_size(size_t size)</div><div class='add'>+{</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    size += RVALUE_OVERHEAD;</div><div class='add'>+</div><div class='add'>+    size_t slot_count = CEILDIV(size, BASE_SLOT_SIZE);</div><div class='add'>+</div><div class='add'>+    /* size_pool_idx is ceil(log2(slot_count)) */</div><div class='add'>+    size_t size_pool_idx = 64 - nlz_int64(slot_count - 1);</div><div class='add'>+</div><div class='add'>+    if (size_pool_idx &gt;= SIZE_POOL_COUNT) {</div><div class='add'>+        rb_bug("size_pool_idx_for_size: allocation size too large");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#if RGENGC_CHECK_MODE</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    GC_ASSERT(size &lt;= (size_t)size_pools[size_pool_idx].slot_size);</div><div class='add'>+    if (size_pool_idx &gt; 0) GC_ASSERT(size &gt; (size_t)size_pools[size_pool_idx - 1].slot_size);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return size_pool_idx;</div><div class='add'>+#else</div><div class='add'>+    GC_ASSERT(size &lt;= sizeof(RVALUE));</div><div class='add'>+    return 0;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+newobj_alloc(rb_objspace_t *objspace, rb_ractor_t *cr, size_t size_pool_idx, bool vm_locked)</div><div class='add'>+{</div><div class='add'>+    rb_size_pool_t *size_pool = &amp;size_pools[size_pool_idx];</div><div class='add'>+    rb_heap_t *heap = SIZE_POOL_EDEN_HEAP(size_pool);</div><div class='add'>+    rb_ractor_newobj_cache_t *cache = &amp;cr-&gt;newobj_cache;</div><div class='add'>+</div><div class='add'>+    VALUE obj = ractor_cache_allocate_slot(objspace, cache, size_pool_idx);</div><div class='add'>+</div><div class='add'>+    if (UNLIKELY(obj == Qfalse)) {</div><div class='add'>+        unsigned int lev;</div><div class='add'>+        bool unlock_vm = false;</div><div class='add'>+</div><div class='add'>+        if (!vm_locked) {</div><div class='add'>+            RB_VM_LOCK_ENTER_CR_LEV(cr, &amp;lev);</div><div class='add'>+            vm_locked = true;</div><div class='add'>+            unlock_vm = true;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        {</div><div class='add'>+            ASSERT_vm_locking();</div><div class='add'>+</div><div class='add'>+#if GC_ENABLE_INCREMENTAL_MARK</div><div class='add'>+            if (is_incremental_marking(objspace)) {</div><div class='add'>+                gc_marks_continue(objspace, size_pool, heap);</div><div class='add'>+                cache-&gt;incremental_mark_step_allocated_slots = 0;</div><div class='add'>+</div><div class='add'>+                // Retry allocation after resetting incremental_mark_step_allocated_slots</div><div class='add'>+                obj = ractor_cache_allocate_slot(objspace, cache, size_pool_idx);</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+            if (obj == Qfalse) {</div><div class='add'>+                // Get next free page (possibly running GC)</div><div class='add'>+                struct heap_page *page = heap_next_free_page(objspace, size_pool, heap);</div><div class='add'>+                ractor_cache_set_page(cache, size_pool_idx, page);</div><div class='add'>+</div><div class='add'>+                // Retry allocation after moving to new page</div><div class='add'>+                obj = ractor_cache_allocate_slot(objspace, cache, size_pool_idx);</div><div class='add'>+</div><div class='add'>+                GC_ASSERT(obj != Qfalse);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (unlock_vm) {</div><div class='add'>+            RB_VM_LOCK_LEAVE_CR_LEV(cr, &amp;lev);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+newobj_zero_slot(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    memset((char *)obj + sizeof(struct RBasic), 0, rb_gc_obj_slot_size(obj) - sizeof(struct RBasic));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+ALWAYS_INLINE(static VALUE newobj_slowpath(VALUE klass, VALUE flags, rb_objspace_t *objspace, rb_ractor_t *cr, int wb_protected, size_t size_pool_idx));</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+newobj_slowpath(VALUE klass, VALUE flags, rb_objspace_t *objspace, rb_ractor_t *cr, int wb_protected, size_t size_pool_idx)</div><div class='ctx'> {</div><div class='ctx'>     VALUE obj;</div><div class='add'>+    unsigned int lev;</div><div class='ctx'> </div><div class='del'>-    if (UNLIKELY(during_gc || ruby_gc_stressful)) {</div><div class='del'>-	if (during_gc) {</div><div class='del'>-	    dont_gc = 1;</div><div class='del'>-	    during_gc = 0;</div><div class='del'>-	    rb_bug("object allocation during garbage collection phase");</div><div class='del'>-	}</div><div class='add'>+    RB_VM_LOCK_ENTER_CR_LEV(cr, &amp;lev);</div><div class='add'>+    {</div><div class='add'>+        if (UNLIKELY(during_gc || ruby_gc_stressful)) {</div><div class='add'>+            if (during_gc) {</div><div class='add'>+                dont_gc_on();</div><div class='add'>+                during_gc = 0;</div><div class='add'>+                rb_bug("object allocation during garbage collection phase");</div><div class='add'>+            }</div><div class='ctx'> </div><div class='del'>-	if (ruby_gc_stressful) {</div><div class='del'>-	    if (!garbage_collect(objspace, GPR_FLAG_NEWOBJ)) {</div><div class='del'>-		rb_memerror();</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+            if (ruby_gc_stressful) {</div><div class='add'>+                if (!garbage_collect(objspace, GPR_FLAG_NEWOBJ)) {</div><div class='add'>+                    rb_memerror();</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        obj = newobj_alloc(objspace, cr, size_pool_idx, true);</div><div class='add'>+#if SHAPE_IN_BASIC_FLAGS</div><div class='add'>+        flags |= (VALUE)(size_pool_idx) &lt;&lt; SHAPE_FLAG_SHIFT;</div><div class='add'>+#endif</div><div class='add'>+        newobj_init(klass, flags, wb_protected, objspace, obj);</div><div class='add'>+</div><div class='add'>+        gc_event_hook_prep(objspace, RUBY_INTERNAL_EVENT_NEWOBJ, obj, newobj_zero_slot(obj));</div><div class='ctx'>     }</div><div class='add'>+    RB_VM_LOCK_LEAVE_CR_LEV(cr, &amp;lev);</div><div class='ctx'> </div><div class='del'>-    obj = heap_get_freeobj(objspace, heap_eden);</div><div class='del'>-    newobj_init(klass, flags, v1, v2, v3, wb_protected, objspace, obj);</div><div class='del'>-    gc_event_hook(objspace, RUBY_INTERNAL_EVENT_NEWOBJ, obj);</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-NOINLINE(static VALUE newobj_slowpath_wb_protected(VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, rb_objspace_t *objspace));</div><div class='del'>-NOINLINE(static VALUE newobj_slowpath_wb_unprotected(VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, rb_objspace_t *objspace));</div><div class='add'>+NOINLINE(static VALUE newobj_slowpath_wb_protected(VALUE klass, VALUE flags,</div><div class='add'>+                                                   rb_objspace_t *objspace, rb_ractor_t *cr, size_t size_pool_idx));</div><div class='add'>+NOINLINE(static VALUE newobj_slowpath_wb_unprotected(VALUE klass, VALUE flags,</div><div class='add'>+                                                     rb_objspace_t *objspace, rb_ractor_t *cr, size_t size_pool_idx));</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-newobj_slowpath_wb_protected(VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, rb_objspace_t *objspace)</div><div class='add'>+newobj_slowpath_wb_protected(VALUE klass, VALUE flags, rb_objspace_t *objspace, rb_ractor_t *cr, size_t size_pool_idx)</div><div class='ctx'> {</div><div class='del'>-    return newobj_slowpath(klass, flags, v1, v2, v3, objspace, TRUE);</div><div class='add'>+    return newobj_slowpath(klass, flags, objspace, cr, TRUE, size_pool_idx);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-newobj_slowpath_wb_unprotected(VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, rb_objspace_t *objspace)</div><div class='add'>+newobj_slowpath_wb_unprotected(VALUE klass, VALUE flags, rb_objspace_t *objspace, rb_ractor_t *cr, size_t size_pool_idx)</div><div class='ctx'> {</div><div class='del'>-    return newobj_slowpath(klass, flags, v1, v2, v3, objspace, FALSE);</div><div class='add'>+    return newobj_slowpath(klass, flags, objspace, cr, FALSE, size_pool_idx);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline VALUE</div><div class='del'>-newobj_of(VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, int wb_protected)</div><div class='add'>+newobj_of0(VALUE klass, VALUE flags, int wb_protected, rb_ractor_t *cr, size_t alloc_size)</div><div class='ctx'> {</div><div class='del'>-    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'>     VALUE obj;</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'> </div><div class='ctx'>     RB_DEBUG_COUNTER_INC(obj_newobj);</div><div class='ctx'>     (void)RB_DEBUG_COUNTER_INC_IF(obj_newobj_wb_unprotected, !wb_protected);</div><div class='hunk'>@@ -1952,33 +2873,63 @@ newobj_of(VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, int wb_protect</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='del'>-    if (!(during_gc ||</div><div class='del'>-	  ruby_gc_stressful ||</div><div class='del'>-	  gc_event_hook_available_p(objspace)) &amp;&amp;</div><div class='del'>-	(obj = heap_get_freeobj_head(objspace, heap_eden)) != Qfalse) {</div><div class='del'>-	return newobj_init(klass, flags, v1, v2, v3, wb_protected, objspace, obj);</div><div class='add'>+</div><div class='add'>+    size_t size_pool_idx = size_pool_idx_for_size(alloc_size);</div><div class='add'>+</div><div class='add'>+    if (!UNLIKELY(during_gc ||</div><div class='add'>+                  ruby_gc_stressful ||</div><div class='add'>+                  gc_event_hook_available_p(objspace)) &amp;&amp;</div><div class='add'>+            wb_protected) {</div><div class='add'>+        obj = newobj_alloc(objspace, cr, size_pool_idx, false);</div><div class='add'>+#if SHAPE_IN_BASIC_FLAGS</div><div class='add'>+        flags |= (VALUE)size_pool_idx &lt;&lt; SHAPE_FLAG_SHIFT;</div><div class='add'>+#endif</div><div class='add'>+        newobj_init(klass, flags, wb_protected, objspace, obj);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         RB_DEBUG_COUNTER_INC(obj_newobj_slowpath);</div><div class='ctx'> </div><div class='del'>-	return wb_protected ?</div><div class='del'>-	  newobj_slowpath_wb_protected(klass, flags, v1, v2, v3, objspace) :</div><div class='del'>-	  newobj_slowpath_wb_unprotected(klass, flags, v1, v2, v3, objspace);</div><div class='add'>+        obj = wb_protected ?</div><div class='add'>+          newobj_slowpath_wb_protected(klass, flags, objspace, cr, size_pool_idx) :</div><div class='add'>+          newobj_slowpath_wb_unprotected(klass, flags, objspace, cr, size_pool_idx);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+newobj_of(VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, int wb_protected, size_t alloc_size)</div><div class='add'>+{</div><div class='add'>+    VALUE obj = newobj_of0(klass, flags, wb_protected, GET_RACTOR(), alloc_size);</div><div class='add'>+    return newobj_fill(obj, v1, v2, v3);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+newobj_of_cr(rb_ractor_t *cr, VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, int wb_protected, size_t alloc_size)</div><div class='add'>+{</div><div class='add'>+    VALUE obj = newobj_of0(klass, flags, wb_protected, cr, alloc_size);</div><div class='add'>+    return newobj_fill(obj, v1, v2, v3);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_wb_unprotected_newobj_of(VALUE klass, VALUE flags)</div><div class='add'>+rb_wb_unprotected_newobj_of(VALUE klass, VALUE flags, size_t size)</div><div class='ctx'> {</div><div class='ctx'>     GC_ASSERT((flags &amp; FL_WB_PROTECTED) == 0);</div><div class='del'>-    return newobj_of(klass, flags, 0, 0, 0, FALSE);</div><div class='add'>+    return newobj_of(klass, flags, 0, 0, 0, FALSE, size);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-rb_wb_protected_newobj_of(VALUE klass, VALUE flags)</div><div class='add'>+rb_wb_protected_newobj_of(VALUE klass, VALUE flags, size_t size)</div><div class='ctx'> {</div><div class='ctx'>     GC_ASSERT((flags &amp; FL_WB_PROTECTED) == 0);</div><div class='del'>-    return newobj_of(klass, flags, 0, 0, 0, TRUE);</div><div class='add'>+    return newobj_of(klass, flags, 0, 0, 0, TRUE, size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ec_wb_protected_newobj_of(rb_execution_context_t *ec, VALUE klass, VALUE flags, size_t size)</div><div class='add'>+{</div><div class='add'>+    GC_ASSERT((flags &amp; FL_WB_PROTECTED) == 0);</div><div class='add'>+    return newobj_of_cr(rb_ec_ractor_ptr(ec), klass, flags, 0, 0, 0, TRUE, size);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* for compatibility */</div><div class='hunk'>@@ -1986,42 +2937,111 @@ rb_wb_protected_newobj_of(VALUE klass, VALUE flags)</div><div class='ctx'> VALUE</div><div class='ctx'> rb_newobj(void)</div><div class='ctx'> {</div><div class='del'>-    return newobj_of(0, T_NONE, 0, 0, 0, FALSE);</div><div class='add'>+    return newobj_of(0, T_NONE, 0, 0, 0, FALSE, RVALUE_SIZE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+rb_obj_embedded_size(uint32_t numiv)</div><div class='add'>+{</div><div class='add'>+    return offsetof(struct RObject, as.ary) + (sizeof(VALUE) * numiv);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_class_instance_allocate_internal(VALUE klass, VALUE flags, bool wb_protected)</div><div class='add'>+{</div><div class='add'>+    GC_ASSERT((flags &amp; RUBY_T_MASK) == T_OBJECT);</div><div class='add'>+    GC_ASSERT(flags &amp; ROBJECT_EMBED);</div><div class='add'>+</div><div class='add'>+    size_t size;</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    uint32_t index_tbl_num_entries = RCLASS_EXT(klass)-&gt;max_iv_count;</div><div class='add'>+</div><div class='add'>+    size = rb_obj_embedded_size(index_tbl_num_entries);</div><div class='add'>+    if (!rb_gc_size_allocatable_p(size)) {</div><div class='add'>+        size = sizeof(struct RObject);</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    size = sizeof(struct RObject);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    VALUE obj = newobj_of(klass, flags, 0, 0, 0, wb_protected, size);</div><div class='add'>+    RUBY_ASSERT(rb_shape_get_shape(obj)-&gt;type == SHAPE_ROOT ||</div><div class='add'>+            rb_shape_get_shape(obj)-&gt;type == SHAPE_INITIAL_CAPACITY);</div><div class='add'>+</div><div class='add'>+    // Set the shape to the specific T_OBJECT shape which is always</div><div class='add'>+    // SIZE_POOL_COUNT away from the root shape.</div><div class='add'>+    ROBJECT_SET_SHAPE_ID(obj, ROBJECT_SHAPE_ID(obj) + SIZE_POOL_COUNT);</div><div class='add'>+</div><div class='add'>+#if RUBY_DEBUG</div><div class='add'>+    RUBY_ASSERT(!rb_shape_obj_too_complex(obj));</div><div class='add'>+    VALUE *ptr = ROBJECT_IVPTR(obj);</div><div class='add'>+    for (size_t i = 0; i &lt; ROBJECT_IV_CAPACITY(obj); i++) {</div><div class='add'>+        ptr[i] = Qundef;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_newobj_of(VALUE klass, VALUE flags)</div><div class='ctx'> {</div><div class='del'>-    return newobj_of(klass, flags &amp; ~FL_WB_PROTECTED, 0, 0, 0, flags &amp; FL_WB_PROTECTED);</div><div class='add'>+    if ((flags &amp; RUBY_T_MASK) == T_OBJECT) {</div><div class='add'>+        return rb_class_instance_allocate_internal(klass, (flags | ROBJECT_EMBED) &amp; ~FL_WB_PROTECTED, flags &amp; FL_WB_PROTECTED);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return newobj_of(klass, flags &amp; ~FL_WB_PROTECTED, 0, 0, 0, flags &amp; FL_WB_PROTECTED, RVALUE_SIZE);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define UNEXPECTED_NODE(func) \</div><div class='ctx'>     rb_bug(#func"(): GC does not handle T_NODE 0x%x(%p) 0x%"PRIxVALUE, \</div><div class='del'>-	   BUILTIN_TYPE(obj), (void*)(obj), RBASIC(obj)-&gt;flags)</div><div class='add'>+           BUILTIN_TYPE(obj), (void*)(obj), RBASIC(obj)-&gt;flags)</div><div class='add'>+</div><div class='add'>+const char *</div><div class='add'>+rb_imemo_name(enum imemo_type type)</div><div class='add'>+{</div><div class='add'>+    // put no default case to get a warning if an imemo type is missing</div><div class='add'>+    switch (type) {</div><div class='add'>+#define IMEMO_NAME(x) case imemo_##x: return #x;</div><div class='add'>+        IMEMO_NAME(env);</div><div class='add'>+        IMEMO_NAME(cref);</div><div class='add'>+        IMEMO_NAME(svar);</div><div class='add'>+        IMEMO_NAME(throw_data);</div><div class='add'>+        IMEMO_NAME(ifunc);</div><div class='add'>+        IMEMO_NAME(memo);</div><div class='add'>+        IMEMO_NAME(ment);</div><div class='add'>+        IMEMO_NAME(iseq);</div><div class='add'>+        IMEMO_NAME(tmpbuf);</div><div class='add'>+        IMEMO_NAME(ast);</div><div class='add'>+        IMEMO_NAME(parser_strterm);</div><div class='add'>+        IMEMO_NAME(callinfo);</div><div class='add'>+        IMEMO_NAME(callcache);</div><div class='add'>+        IMEMO_NAME(constcache);</div><div class='add'>+#undef IMEMO_NAME</div><div class='add'>+    }</div><div class='add'>+    return "unknown";</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> #undef rb_imemo_new</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_imemo_new(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0)</div><div class='ctx'> {</div><div class='add'>+    size_t size = RVALUE_SIZE;</div><div class='ctx'>     VALUE flags = T_IMEMO | (type &lt;&lt; FL_USHIFT);</div><div class='del'>-    return newobj_of(v0, flags, v1, v2, v3, TRUE);</div><div class='add'>+    return newobj_of(v0, flags, v1, v2, v3, TRUE, size);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_imemo_tmpbuf_new(VALUE v1, VALUE v2, VALUE v3, VALUE v0)</div><div class='ctx'> {</div><div class='add'>+    size_t size = sizeof(struct rb_imemo_tmpbuf_struct);</div><div class='ctx'>     VALUE flags = T_IMEMO | (imemo_tmpbuf &lt;&lt; FL_USHIFT);</div><div class='del'>-    return newobj_of(v0, flags, v1, v2, v3, FALSE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-rb_imemo_tmpbuf_auto_free_pointer(void *buf)</div><div class='del'>-{</div><div class='del'>-    return rb_imemo_new(imemo_tmpbuf, (VALUE)buf, 0, 0, 0);</div><div class='add'>+    return newobj_of(v0, flags, v1, v2, v3, FALSE, size);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_imemo_tmpbuf_auto_free_maybe_mark_buffer(void *buf, size_t cnt)</div><div class='ctx'> {</div><div class='ctx'>     return rb_imemo_tmpbuf_new((VALUE)buf, 0, (VALUE)cnt, 0);</div><div class='hunk'>@@ -2033,6 +3053,40 @@ rb_imemo_tmpbuf_parser_heap(void *buf, rb_imemo_tmpbuf_t *old_heap, size_t cnt)</div><div class='ctx'>     return (rb_imemo_tmpbuf_t *)rb_imemo_tmpbuf_new((VALUE)buf, (VALUE)old_heap, (VALUE)cnt, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static size_t</div><div class='add'>+imemo_memsize(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    size_t size = 0;</div><div class='add'>+    switch (imemo_type(obj)) {</div><div class='add'>+      case imemo_ment:</div><div class='add'>+        size += sizeof(RANY(obj)-&gt;as.imemo.ment.def);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_iseq:</div><div class='add'>+        size += rb_iseq_memsize((rb_iseq_t *)obj);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_env:</div><div class='add'>+        size += RANY(obj)-&gt;as.imemo.env.env_size * sizeof(VALUE);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_tmpbuf:</div><div class='add'>+        size += RANY(obj)-&gt;as.imemo.alloc.cnt * sizeof(VALUE);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_ast:</div><div class='add'>+        size += rb_ast_memsize(&amp;RANY(obj)-&gt;as.imemo.ast);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_cref:</div><div class='add'>+      case imemo_svar:</div><div class='add'>+      case imemo_throw_data:</div><div class='add'>+      case imemo_ifunc:</div><div class='add'>+      case imemo_memo:</div><div class='add'>+      case imemo_parser_strterm:</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        /* unreachable */</div><div class='add'>+        break;</div><div class='add'>+    }</div><div class='add'>+    return size;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #if IMEMO_DEBUG</div><div class='ctx'> VALUE</div><div class='ctx'> rb_imemo_new_debug(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0, const char *file, int line)</div><div class='hunk'>@@ -2043,18 +3097,28 @@ rb_imemo_new_debug(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0,</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_data_object_wrap(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree)</div><div class='add'>+MJIT_FUNC_EXPORTED VALUE</div><div class='add'>+rb_class_allocate_instance(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    if (klass) Check_Type(klass, T_CLASS);</div><div class='del'>-    return newobj_of(klass, T_DATA, (VALUE)dmark, (VALUE)dfree, (VALUE)datap, FALSE);</div><div class='add'>+    return rb_class_instance_allocate_internal(klass, T_OBJECT | ROBJECT_EMBED, RGENGC_WB_PROTECTED_OBJECT);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#undef rb_data_object_alloc</div><div class='del'>-RUBY_ALIAS_FUNCTION(rb_data_object_alloc(VALUE klass, void *datap,</div><div class='del'>-					 RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree),</div><div class='del'>-		    rb_data_object_wrap, (klass, datap, dmark, dfree))</div><div class='add'>+static inline void</div><div class='add'>+rb_data_object_check(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    if (klass != rb_cObject &amp;&amp; (rb_get_alloc_func(klass) == rb_class_allocate_instance)) {</div><div class='add'>+        rb_undef_alloc_func(klass);</div><div class='add'>+        rb_warn("undefining the allocator of T_DATA class %"PRIsVALUE, klass);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_data_object_wrap(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree)</div><div class='add'>+{</div><div class='add'>+    RUBY_ASSERT_ALWAYS(dfree != (RUBY_DATA_FUNC)1);</div><div class='add'>+    if (klass) rb_data_object_check(klass);</div><div class='add'>+    return newobj_of(klass, T_DATA, (VALUE)dmark, (VALUE)dfree, (VALUE)datap, FALSE, sizeof(struct RTypedData));</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_data_object_zalloc(VALUE klass, size_t size, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree)</div><div class='hunk'>@@ -2067,15 +3131,11 @@ rb_data_object_zalloc(VALUE klass, size_t size, RUBY_DATA_FUNC dmark, RUBY_DATA_</div><div class='ctx'> VALUE</div><div class='ctx'> rb_data_typed_object_wrap(VALUE klass, void *datap, const rb_data_type_t *type)</div><div class='ctx'> {</div><div class='del'>-    if (klass) Check_Type(klass, T_CLASS);</div><div class='del'>-    return newobj_of(klass, T_DATA, (VALUE)type, (VALUE)1, (VALUE)datap, type-&gt;flags &amp; RUBY_FL_WB_PROTECTED);</div><div class='add'>+    RBIMPL_NONNULL_ARG(type);</div><div class='add'>+    if (klass) rb_data_object_check(klass);</div><div class='add'>+    return newobj_of(klass, T_DATA, (VALUE)type, (VALUE)1, (VALUE)datap, type-&gt;flags &amp; RUBY_FL_WB_PROTECTED, sizeof(struct RTypedData));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#undef rb_data_typed_object_alloc</div><div class='del'>-RUBY_ALIAS_FUNCTION(rb_data_typed_object_alloc(VALUE klass, void *datap,</div><div class='del'>-					       const rb_data_type_t *type),</div><div class='del'>-		    rb_data_typed_object_wrap, (klass, datap, type))</div><div class='del'>-</div><div class='ctx'> VALUE</div><div class='ctx'> rb_data_typed_object_zalloc(VALUE klass, size_t size, const rb_data_type_t *type)</div><div class='ctx'> {</div><div class='hunk'>@@ -2088,11 +3148,11 @@ size_t</div><div class='ctx'> rb_objspace_data_type_memsize(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (RTYPEDDATA_P(obj)) {</div><div class='del'>-	const rb_data_type_t *type = RTYPEDDATA_TYPE(obj);</div><div class='del'>-	const void *ptr = RTYPEDDATA_DATA(obj);</div><div class='del'>-	if (ptr &amp;&amp; type-&gt;function.dsize) {</div><div class='del'>-	    return type-&gt;function.dsize(ptr);</div><div class='del'>-	}</div><div class='add'>+        const rb_data_type_t *type = RTYPEDDATA_TYPE(obj);</div><div class='add'>+        const void *ptr = RTYPEDDATA_DATA(obj);</div><div class='add'>+        if (ptr &amp;&amp; type-&gt;function.dsize) {</div><div class='add'>+            return type-&gt;function.dsize(ptr);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -2101,10 +3161,47 @@ const char *</div><div class='ctx'> rb_objspace_data_type_name(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (RTYPEDDATA_P(obj)) {</div><div class='del'>-	return RTYPEDDATA_TYPE(obj)-&gt;wrap_struct_name;</div><div class='add'>+        return RTYPEDDATA_TYPE(obj)-&gt;wrap_struct_name;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ptr_in_page_body_p(const void *ptr, const void *memb)</div><div class='add'>+{</div><div class='add'>+    struct heap_page *page = *(struct heap_page **)memb;</div><div class='add'>+    uintptr_t p_body = (uintptr_t)GET_PAGE_BODY(page-&gt;start);</div><div class='add'>+</div><div class='add'>+    if ((uintptr_t)ptr &gt;= p_body) {</div><div class='add'>+        return (uintptr_t)ptr &lt; (p_body + HEAP_PAGE_SIZE) ? 0 : 1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return -1;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+PUREFUNC(static inline struct heap_page * heap_page_for_ptr(rb_objspace_t *objspace, uintptr_t ptr);)</div><div class='add'>+static inline struct heap_page *</div><div class='add'>+heap_page_for_ptr(rb_objspace_t *objspace, uintptr_t ptr)</div><div class='add'>+{</div><div class='add'>+    struct heap_page **res;</div><div class='add'>+</div><div class='add'>+    if (ptr &lt; (uintptr_t)heap_pages_lomem ||</div><div class='add'>+            ptr &gt; (uintptr_t)heap_pages_himem) {</div><div class='add'>+        return NULL;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    res = bsearch((void *)ptr, heap_pages_sorted,</div><div class='add'>+                  (size_t)heap_allocated_pages, sizeof(struct heap_page *),</div><div class='add'>+                  ptr_in_page_body_p);</div><div class='add'>+</div><div class='add'>+    if (res) {</div><div class='add'>+        return *res;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2112,28 +3209,30 @@ PUREFUNC(static inline int is_pointer_to_heap(rb_objspace_t *objspace, void *ptr</div><div class='ctx'> static inline int</div><div class='ctx'> is_pointer_to_heap(rb_objspace_t *objspace, void *ptr)</div><div class='ctx'> {</div><div class='del'>-    register RVALUE *p = RANY(ptr);</div><div class='add'>+    register uintptr_t p = (uintptr_t)ptr;</div><div class='ctx'>     register struct heap_page *page;</div><div class='del'>-    register size_t hi, lo, mid;</div><div class='add'>+</div><div class='add'>+    RB_DEBUG_COUNTER_INC(gc_isptr_trial);</div><div class='ctx'> </div><div class='ctx'>     if (p &lt; heap_pages_lomem || p &gt; heap_pages_himem) return FALSE;</div><div class='del'>-    if ((VALUE)p % sizeof(RVALUE) != 0) return FALSE;</div><div class='add'>+    RB_DEBUG_COUNTER_INC(gc_isptr_range);</div><div class='ctx'> </div><div class='del'>-    /* check if p looks like a pointer using bsearch*/</div><div class='del'>-    lo = 0;</div><div class='del'>-    hi = heap_allocated_pages;</div><div class='del'>-    while (lo &lt; hi) {</div><div class='del'>-	mid = (lo + hi) / 2;</div><div class='del'>-	page = heap_pages_sorted[mid];</div><div class='del'>-	if (page-&gt;start &lt;= p) {</div><div class='del'>-	    if (p &lt; page-&gt;start + page-&gt;total_slots) {</div><div class='del'>-		return TRUE;</div><div class='del'>-	    }</div><div class='del'>-	    lo = mid + 1;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    hi = mid;</div><div class='del'>-	}</div><div class='add'>+    if (p % BASE_SLOT_SIZE != 0) return FALSE;</div><div class='add'>+    RB_DEBUG_COUNTER_INC(gc_isptr_align);</div><div class='add'>+</div><div class='add'>+    page = heap_page_for_ptr(objspace, (uintptr_t)ptr);</div><div class='add'>+    if (page) {</div><div class='add'>+        RB_DEBUG_COUNTER_INC(gc_isptr_maybe);</div><div class='add'>+        if (page-&gt;flags.in_tomb) {</div><div class='add'>+            return FALSE;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (p &lt; page-&gt;start) return FALSE;</div><div class='add'>+            if (p &gt;= page-&gt;start + (page-&gt;total_slots * page-&gt;slot_size)) return FALSE;</div><div class='add'>+            if ((NUM_IN_PAGE(p) * BASE_SLOT_SIZE) % page-&gt;slot_size != 0) return FALSE;</div><div class='add'>+</div><div class='add'>+            return TRUE;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return FALSE;</div><div class='ctx'> }</div><div class='hunk'>@@ -2153,28 +3252,178 @@ rb_free_const_table(struct rb_id_table *tbl)</div><div class='ctx'>     rb_id_table_free(tbl);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+// alive: if false, target pointers can be freed already.</div><div class='add'>+//        To check it, we need objspace parameter.</div><div class='add'>+static void</div><div class='add'>+vm_ccs_free(struct rb_class_cc_entries *ccs, int alive, rb_objspace_t *objspace, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    if (ccs-&gt;entries) {</div><div class='add'>+        for (int i=0; i&lt;ccs-&gt;len; i++) {</div><div class='add'>+            const struct rb_callcache *cc = ccs-&gt;entries[i].cc;</div><div class='add'>+            if (!alive) {</div><div class='add'>+                void *ptr = asan_unpoison_object_temporary((VALUE)cc);</div><div class='add'>+                // ccs can be free'ed.</div><div class='add'>+                if (is_pointer_to_heap(objspace, (void *)cc) &amp;&amp;</div><div class='add'>+                    IMEMO_TYPE_P(cc, imemo_callcache) &amp;&amp;</div><div class='add'>+                    cc-&gt;klass == klass) {</div><div class='add'>+                    // OK. maybe target cc.</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    if (ptr) {</div><div class='add'>+                        asan_poison_object((VALUE)cc);</div><div class='add'>+                    }</div><div class='add'>+                    continue;</div><div class='add'>+                }</div><div class='add'>+                if (ptr) {</div><div class='add'>+                    asan_poison_object((VALUE)cc);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            vm_cc_invalidate(cc);</div><div class='add'>+        }</div><div class='add'>+        ruby_xfree(ccs-&gt;entries);</div><div class='add'>+    }</div><div class='add'>+    ruby_xfree(ccs);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_vm_ccs_free(struct rb_class_cc_entries *ccs)</div><div class='add'>+{</div><div class='add'>+    RB_DEBUG_COUNTER_INC(ccs_free);</div><div class='add'>+    vm_ccs_free(ccs, TRUE, NULL, Qundef);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct cc_tbl_i_data {</div><div class='add'>+    rb_objspace_t *objspace;</div><div class='add'>+    VALUE klass;</div><div class='add'>+    bool alive;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+cc_table_mark_i(ID id, VALUE ccs_ptr, void *data_ptr)</div><div class='add'>+{</div><div class='add'>+    struct cc_tbl_i_data *data = data_ptr;</div><div class='add'>+    struct rb_class_cc_entries *ccs = (struct rb_class_cc_entries *)ccs_ptr;</div><div class='add'>+    VM_ASSERT(vm_ccs_p(ccs));</div><div class='add'>+    VM_ASSERT(id == ccs-&gt;cme-&gt;called_id);</div><div class='add'>+</div><div class='add'>+    if (METHOD_ENTRY_INVALIDATED(ccs-&gt;cme)) {</div><div class='add'>+        rb_vm_ccs_free(ccs);</div><div class='add'>+        return ID_TABLE_DELETE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        gc_mark(data-&gt;objspace, (VALUE)ccs-&gt;cme);</div><div class='add'>+</div><div class='add'>+        for (int i=0; i&lt;ccs-&gt;len; i++) {</div><div class='add'>+            VM_ASSERT(data-&gt;klass == ccs-&gt;entries[i].cc-&gt;klass);</div><div class='add'>+            VM_ASSERT(vm_cc_check_cme(ccs-&gt;entries[i].cc, ccs-&gt;cme));</div><div class='add'>+</div><div class='add'>+            gc_mark(data-&gt;objspace, (VALUE)ccs-&gt;entries[i].ci);</div><div class='add'>+            gc_mark(data-&gt;objspace, (VALUE)ccs-&gt;entries[i].cc);</div><div class='add'>+        }</div><div class='add'>+        return ID_TABLE_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+cc_table_mark(rb_objspace_t *objspace, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    struct rb_id_table *cc_tbl = RCLASS_CC_TBL(klass);</div><div class='add'>+    if (cc_tbl) {</div><div class='add'>+        struct cc_tbl_i_data data = {</div><div class='add'>+            .objspace = objspace,</div><div class='add'>+            .klass = klass,</div><div class='add'>+        };</div><div class='add'>+        rb_id_table_foreach(cc_tbl, cc_table_mark_i, &amp;data);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+cc_table_free_i(VALUE ccs_ptr, void *data_ptr)</div><div class='add'>+{</div><div class='add'>+    struct cc_tbl_i_data *data = data_ptr;</div><div class='add'>+    struct rb_class_cc_entries *ccs = (struct rb_class_cc_entries *)ccs_ptr;</div><div class='add'>+    VM_ASSERT(vm_ccs_p(ccs));</div><div class='add'>+    vm_ccs_free(ccs, data-&gt;alive, data-&gt;objspace, data-&gt;klass);</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+cc_table_free(rb_objspace_t *objspace, VALUE klass, bool alive)</div><div class='add'>+{</div><div class='add'>+    struct rb_id_table *cc_tbl = RCLASS_CC_TBL(klass);</div><div class='add'>+</div><div class='add'>+    if (cc_tbl) {</div><div class='add'>+        struct cc_tbl_i_data data = {</div><div class='add'>+            .objspace = objspace,</div><div class='add'>+            .klass = klass,</div><div class='add'>+            .alive = alive,</div><div class='add'>+        };</div><div class='add'>+        rb_id_table_foreach_values(cc_tbl, cc_table_free_i, &amp;data);</div><div class='add'>+        rb_id_table_free(cc_tbl);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+cvar_table_free_i(VALUE value, void * ctx)</div><div class='add'>+{</div><div class='add'>+    xfree((void *) value);</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_cc_table_free(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    cc_table_free(&amp;rb_objspace, klass, TRUE);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static inline void</div><div class='ctx'> make_zombie(rb_objspace_t *objspace, VALUE obj, void (*dfree)(void *), void *data)</div><div class='ctx'> {</div><div class='ctx'>     struct RZombie *zombie = RZOMBIE(obj);</div><div class='del'>-    zombie-&gt;basic.flags = T_ZOMBIE;</div><div class='add'>+    zombie-&gt;basic.flags = T_ZOMBIE | (zombie-&gt;basic.flags &amp; FL_SEEN_OBJ_ID);</div><div class='ctx'>     zombie-&gt;dfree = dfree;</div><div class='ctx'>     zombie-&gt;data = data;</div><div class='del'>-    zombie-&gt;next = heap_pages_deferred_final;</div><div class='del'>-    heap_pages_deferred_final = (VALUE)zombie;</div><div class='add'>+    VALUE prev, next = heap_pages_deferred_final;</div><div class='add'>+    do {</div><div class='add'>+        zombie-&gt;next = prev = next;</div><div class='add'>+        next = RUBY_ATOMIC_VALUE_CAS(heap_pages_deferred_final, prev, obj);</div><div class='add'>+    } while (next != prev);</div><div class='add'>+</div><div class='add'>+    struct heap_page *page = GET_HEAP_PAGE(obj);</div><div class='add'>+    page-&gt;final_slots++;</div><div class='add'>+    heap_pages_final_slots++;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='ctx'> make_io_zombie(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr = RANY(obj)-&gt;as.file.fptr;</div><div class='del'>-    make_zombie(objspace, obj, (void (*)(void*))rb_io_fptr_finalize, fptr);</div><div class='add'>+    make_zombie(objspace, obj, rb_io_fptr_finalize_internal, fptr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+obj_free_object_id(rb_objspace_t *objspace, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    ASSERT_vm_locking();</div><div class='add'>+    st_data_t o = (st_data_t)obj, id;</div><div class='add'>+</div><div class='add'>+    GC_ASSERT(FL_TEST(obj, FL_SEEN_OBJ_ID));</div><div class='add'>+    FL_UNSET(obj, FL_SEEN_OBJ_ID);</div><div class='add'>+</div><div class='add'>+    if (st_delete(objspace-&gt;obj_to_id_tbl, &amp;o, &amp;id)) {</div><div class='add'>+        GC_ASSERT(id);</div><div class='add'>+        st_delete(objspace-&gt;id_to_obj_tbl, &amp;id, NULL);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_bug("Object ID seen, but not in mapping table: %s\n", obj_info(obj));</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> obj_free(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     RB_DEBUG_COUNTER_INC(obj_free);</div><div class='add'>+    // RUBY_DEBUG_LOG("obj:%p (%s)", (void *)obj, obj_type_name(obj));</div><div class='ctx'> </div><div class='ctx'>     gc_event_hook(objspace, RUBY_INTERNAL_EVENT_FREEOBJ, obj);</div><div class='ctx'> </div><div class='hunk'>@@ -2183,32 +3432,39 @@ obj_free(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>       case T_FIXNUM:</div><div class='ctx'>       case T_TRUE:</div><div class='ctx'>       case T_FALSE:</div><div class='del'>-	rb_bug("obj_free() called for broken object");</div><div class='del'>-	break;</div><div class='add'>+        rb_bug("obj_free() called for broken object");</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (FL_TEST(obj, FL_EXIVAR)) {</div><div class='del'>-	rb_free_generic_ivar((VALUE)obj);</div><div class='del'>-	FL_UNSET(obj, FL_EXIVAR);</div><div class='add'>+        rb_free_generic_ivar((VALUE)obj);</div><div class='add'>+        FL_UNSET(obj, FL_EXIVAR);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (FL_TEST(obj, FL_SEEN_OBJ_ID) &amp;&amp; !FL_TEST(obj, FL_FINALIZE)) {</div><div class='add'>+        obj_free_object_id(objspace, obj);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     if (RVALUE_WB_UNPROTECTED(obj)) CLEAR_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS(obj), obj);</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_CHECK_MODE</div><div class='ctx'> #define CHECK(x) if (x(obj) != FALSE) rb_bug("obj_free: " #x "(%s) != FALSE", obj_info(obj))</div><div class='del'>-	CHECK(RVALUE_WB_UNPROTECTED);</div><div class='del'>-	CHECK(RVALUE_MARKED);</div><div class='del'>-	CHECK(RVALUE_MARKING);</div><div class='del'>-	CHECK(RVALUE_UNCOLLECTIBLE);</div><div class='add'>+        CHECK(RVALUE_WB_UNPROTECTED);</div><div class='add'>+        CHECK(RVALUE_MARKED);</div><div class='add'>+        CHECK(RVALUE_MARKING);</div><div class='add'>+        CHECK(RVALUE_UNCOLLECTIBLE);</div><div class='ctx'> #undef CHECK</div><div class='ctx'> #endif</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'>     switch (BUILTIN_TYPE(obj)) {</div><div class='ctx'>       case T_OBJECT:</div><div class='del'>-        if ((RANY(obj)-&gt;as.basic.flags &amp; ROBJECT_EMBED) ||</div><div class='del'>-            RANY(obj)-&gt;as.object.as.heap.ivptr == NULL) {</div><div class='add'>+        if (rb_shape_obj_too_complex(obj)) {</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_obj_too_complex);</div><div class='add'>+            st_free_table(ROBJECT_IV_HASH(obj));</div><div class='add'>+        }</div><div class='add'>+        else if (RANY(obj)-&gt;as.basic.flags &amp; ROBJECT_EMBED) {</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_obj_embed);</div><div class='ctx'>         }</div><div class='ctx'>         else if (ROBJ_TRANSIENT_P(obj)) {</div><div class='hunk'>@@ -2221,65 +3477,82 @@ obj_free(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>         break;</div><div class='ctx'>       case T_MODULE:</div><div class='ctx'>       case T_CLASS:</div><div class='del'>-        mjit_remove_class_serial(RCLASS_SERIAL(obj));</div><div class='del'>-	rb_id_table_free(RCLASS_M_TBL(obj));</div><div class='del'>-	if (RCLASS_IV_TBL(obj)) {</div><div class='del'>-	    st_free_table(RCLASS_IV_TBL(obj));</div><div class='del'>-	}</div><div class='del'>-	if (RCLASS_CONST_TBL(obj)) {</div><div class='del'>-	    rb_free_const_table(RCLASS_CONST_TBL(obj));</div><div class='del'>-	}</div><div class='del'>-	if (RCLASS_IV_INDEX_TBL(obj)) {</div><div class='del'>-	    st_free_table(RCLASS_IV_INDEX_TBL(obj));</div><div class='del'>-	}</div><div class='del'>-	if (RCLASS_EXT(obj)-&gt;subclasses) {</div><div class='del'>-	    if (BUILTIN_TYPE(obj) == T_MODULE) {</div><div class='del'>-		rb_class_detach_module_subclasses(obj);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rb_class_detach_subclasses(obj);</div><div class='del'>-	    }</div><div class='del'>-	    RCLASS_EXT(obj)-&gt;subclasses = NULL;</div><div class='del'>-	}</div><div class='del'>-	rb_class_remove_from_module_subclasses(obj);</div><div class='del'>-	rb_class_remove_from_super_subclasses(obj);</div><div class='del'>-	if (RANY(obj)-&gt;as.klass.ptr)</div><div class='del'>-	    xfree(RANY(obj)-&gt;as.klass.ptr);</div><div class='del'>-	RANY(obj)-&gt;as.klass.ptr = NULL;</div><div class='add'>+        rb_id_table_free(RCLASS_M_TBL(obj));</div><div class='add'>+        cc_table_free(objspace, obj, FALSE);</div><div class='add'>+        if (RCLASS_IVPTR(obj)) {</div><div class='add'>+            xfree(RCLASS_IVPTR(obj));</div><div class='add'>+        }</div><div class='add'>+        if (RCLASS_CONST_TBL(obj)) {</div><div class='add'>+            rb_free_const_table(RCLASS_CONST_TBL(obj));</div><div class='add'>+        }</div><div class='add'>+        if (RCLASS_CVC_TBL(obj)) {</div><div class='add'>+            rb_id_table_foreach_values(RCLASS_CVC_TBL(obj), cvar_table_free_i, NULL);</div><div class='add'>+            rb_id_table_free(RCLASS_CVC_TBL(obj));</div><div class='add'>+        }</div><div class='add'>+        rb_class_remove_subclass_head(obj);</div><div class='add'>+        rb_class_remove_from_module_subclasses(obj);</div><div class='add'>+        rb_class_remove_from_super_subclasses(obj);</div><div class='add'>+        if (FL_TEST_RAW(obj, RCLASS_SUPERCLASSES_INCLUDE_SELF)) {</div><div class='add'>+            xfree(RCLASS_SUPERCLASSES(obj));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+#if SIZE_POOL_COUNT == 1</div><div class='add'>+        if (RCLASS_EXT(obj))</div><div class='add'>+            xfree(RCLASS_EXT(obj));</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>         (void)RB_DEBUG_COUNTER_INC_IF(obj_module_ptr, BUILTIN_TYPE(obj) == T_MODULE);</div><div class='ctx'>         (void)RB_DEBUG_COUNTER_INC_IF(obj_class_ptr, BUILTIN_TYPE(obj) == T_CLASS);</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>       case T_STRING:</div><div class='del'>-	rb_str_free(obj);</div><div class='del'>-	break;</div><div class='add'>+        rb_str_free(obj);</div><div class='add'>+        break;</div><div class='ctx'>       case T_ARRAY:</div><div class='ctx'>         rb_ary_free(obj);</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>       case T_HASH:</div><div class='ctx'> #if USE_DEBUG_COUNTER</div><div class='del'>-        if (RHASH_SIZE(obj) &gt;= 8) {</div><div class='del'>-            RB_DEBUG_COUNTER_INC(obj_hash_ge8);</div><div class='del'>-        }</div><div class='del'>-        else if (RHASH_SIZE(obj) &gt;= 4) {</div><div class='del'>-            RB_DEBUG_COUNTER_INC(obj_hash_ge4);</div><div class='del'>-        }</div><div class='del'>-        else if (RHASH_SIZE(obj) &gt;= 1) {</div><div class='del'>-            RB_DEBUG_COUNTER_INC(obj_hash_under4);</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='add'>+        switch (RHASH_SIZE(obj)) {</div><div class='add'>+          case 0:</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_hash_empty);</div><div class='add'>+            break;</div><div class='add'>+          case 1:</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_hash_1);</div><div class='add'>+            break;</div><div class='add'>+          case 2:</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_hash_2);</div><div class='add'>+            break;</div><div class='add'>+          case 3:</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_hash_3);</div><div class='add'>+            break;</div><div class='add'>+          case 4:</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_hash_4);</div><div class='add'>+            break;</div><div class='add'>+          case 5:</div><div class='add'>+          case 6:</div><div class='add'>+          case 7:</div><div class='add'>+          case 8:</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_hash_5_8);</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            GC_ASSERT(RHASH_SIZE(obj) &gt; 8);</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_hash_g8);</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='ctx'>         if (RHASH_AR_TABLE_P(obj)) {</div><div class='del'>-            RB_DEBUG_COUNTER_INC(obj_hash_ar);</div><div class='add'>+            if (RHASH_AR_TABLE(obj) == NULL) {</div><div class='add'>+                RB_DEBUG_COUNTER_INC(obj_hash_null);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                RB_DEBUG_COUNTER_INC(obj_hash_ar);</div><div class='add'>+            }</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_hash_st);</div><div class='ctx'>         }</div><div class='ctx'> #endif</div><div class='ctx'>         if (/* RHASH_AR_TABLE_P(obj) */ !FL_TEST_RAW(obj, RHASH_ST_TABLE_FLAG)) {</div><div class='del'>-            ar_table *tab = RHASH(obj)-&gt;as.ar;</div><div class='add'>+            struct ar_table_struct *tab = RHASH(obj)-&gt;as.ar;</div><div class='ctx'> </div><div class='ctx'>             if (tab) {</div><div class='ctx'>                 if (RHASH_TRANSIENT_P(obj)) {</div><div class='hunk'>@@ -2294,105 +3567,125 @@ obj_free(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>             GC_ASSERT(RHASH_ST_TABLE_P(obj));</div><div class='ctx'>             st_free_table(RHASH(obj)-&gt;as.st);</div><div class='ctx'>         }</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>       case T_REGEXP:</div><div class='del'>-	if (RANY(obj)-&gt;as.regexp.ptr) {</div><div class='del'>-	    onig_free(RANY(obj)-&gt;as.regexp.ptr);</div><div class='add'>+        if (RANY(obj)-&gt;as.regexp.ptr) {</div><div class='add'>+            onig_free(RANY(obj)-&gt;as.regexp.ptr);</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_regexp_ptr);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case T_DATA:</div><div class='del'>-	if (DATA_PTR(obj)) {</div><div class='del'>-	    int free_immediately = FALSE;</div><div class='del'>-	    void (*dfree)(void *);</div><div class='del'>-	    void *data = DATA_PTR(obj);</div><div class='del'>-</div><div class='del'>-	    if (RTYPEDDATA_P(obj)) {</div><div class='del'>-		free_immediately = (RANY(obj)-&gt;as.typeddata.type-&gt;flags &amp; RUBY_TYPED_FREE_IMMEDIATELY) != 0;</div><div class='del'>-		dfree = RANY(obj)-&gt;as.typeddata.type-&gt;function.dfree;</div><div class='del'>-		if (0 &amp;&amp; free_immediately == 0) {</div><div class='del'>-		    /* to expose non-free-immediate T_DATA */</div><div class='del'>-		    fprintf(stderr, "not immediate -&gt; %s\n", RANY(obj)-&gt;as.typeddata.type-&gt;wrap_struct_name);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		dfree = RANY(obj)-&gt;as.data.dfree;</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (dfree) {</div><div class='del'>-		if (dfree == RUBY_DEFAULT_FREE) {</div><div class='del'>-		    xfree(data);</div><div class='add'>+        if (DATA_PTR(obj)) {</div><div class='add'>+            int free_immediately = FALSE;</div><div class='add'>+            void (*dfree)(void *);</div><div class='add'>+            void *data = DATA_PTR(obj);</div><div class='add'>+</div><div class='add'>+            if (RTYPEDDATA_P(obj)) {</div><div class='add'>+                free_immediately = (RANY(obj)-&gt;as.typeddata.type-&gt;flags &amp; RUBY_TYPED_FREE_IMMEDIATELY) != 0;</div><div class='add'>+                dfree = RANY(obj)-&gt;as.typeddata.type-&gt;function.dfree;</div><div class='add'>+                if (0 &amp;&amp; free_immediately == 0) {</div><div class='add'>+                    /* to expose non-free-immediate T_DATA */</div><div class='add'>+                    fprintf(stderr, "not immediate -&gt; %s\n", RANY(obj)-&gt;as.typeddata.type-&gt;wrap_struct_name);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                dfree = RANY(obj)-&gt;as.data.dfree;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (dfree) {</div><div class='add'>+                if (dfree == RUBY_DEFAULT_FREE) {</div><div class='add'>+                    xfree(data);</div><div class='ctx'>                     RB_DEBUG_COUNTER_INC(obj_data_xfree);</div><div class='del'>-		}</div><div class='del'>-		else if (free_immediately) {</div><div class='del'>-		    (*dfree)(data);</div><div class='add'>+                }</div><div class='add'>+                else if (free_immediately) {</div><div class='add'>+                    (*dfree)(data);</div><div class='ctx'>                     RB_DEBUG_COUNTER_INC(obj_data_imm_free);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    make_zombie(objspace, obj, dfree, data);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    make_zombie(objspace, obj, dfree, data);</div><div class='ctx'>                     RB_DEBUG_COUNTER_INC(obj_data_zombie);</div><div class='del'>-		    return 1;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='add'>+                    return FALSE;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='ctx'>             else {</div><div class='ctx'>                 RB_DEBUG_COUNTER_INC(obj_data_empty);</div><div class='ctx'>             }</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case T_MATCH:</div><div class='del'>-	if (RANY(obj)-&gt;as.match.rmatch) {</div><div class='add'>+        if (RANY(obj)-&gt;as.match.rmatch) {</div><div class='ctx'>             struct rmatch *rm = RANY(obj)-&gt;as.match.rmatch;</div><div class='del'>-	    onig_region_free(&amp;rm-&gt;regs, 0);</div><div class='add'>+#if USE_DEBUG_COUNTER</div><div class='add'>+            if (rm-&gt;regs.num_regs &gt;= 8) {</div><div class='add'>+                RB_DEBUG_COUNTER_INC(obj_match_ge8);</div><div class='add'>+            }</div><div class='add'>+            else if (rm-&gt;regs.num_regs &gt;= 4) {</div><div class='add'>+                RB_DEBUG_COUNTER_INC(obj_match_ge4);</div><div class='add'>+            }</div><div class='add'>+            else if (rm-&gt;regs.num_regs &gt;= 1) {</div><div class='add'>+                RB_DEBUG_COUNTER_INC(obj_match_under4);</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+            onig_region_free(&amp;rm-&gt;regs, 0);</div><div class='ctx'>             if (rm-&gt;char_offset)</div><div class='del'>-		xfree(rm-&gt;char_offset);</div><div class='del'>-	    xfree(rm);</div><div class='add'>+                xfree(rm-&gt;char_offset);</div><div class='add'>+            xfree(rm);</div><div class='ctx'> </div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_match_ptr);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case T_FILE:</div><div class='del'>-	if (RANY(obj)-&gt;as.file.fptr) {</div><div class='del'>-	    make_io_zombie(objspace, obj);</div><div class='add'>+        if (RANY(obj)-&gt;as.file.fptr) {</div><div class='add'>+            make_io_zombie(objspace, obj);</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_file_ptr);</div><div class='del'>-	    return 1;</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+            return FALSE;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case T_RATIONAL:</div><div class='add'>+        RB_DEBUG_COUNTER_INC(obj_rational);</div><div class='add'>+        break;</div><div class='ctx'>       case T_COMPLEX:</div><div class='del'>-	break;</div><div class='add'>+        RB_DEBUG_COUNTER_INC(obj_complex);</div><div class='add'>+        break;</div><div class='add'>+      case T_MOVED:</div><div class='add'>+        break;</div><div class='ctx'>       case T_ICLASS:</div><div class='del'>-	/* Basically , T_ICLASS shares table with the module */</div><div class='del'>-	if (FL_TEST(obj, RICLASS_IS_ORIGIN)) {</div><div class='del'>-	    rb_id_table_free(RCLASS_M_TBL(obj));</div><div class='del'>-	}</div><div class='del'>-	if (RCLASS_CALLABLE_M_TBL(obj) != NULL) {</div><div class='del'>-	    rb_id_table_free(RCLASS_CALLABLE_M_TBL(obj));</div><div class='del'>-	}</div><div class='del'>-	if (RCLASS_EXT(obj)-&gt;subclasses) {</div><div class='del'>-	    rb_class_detach_subclasses(obj);</div><div class='del'>-	    RCLASS_EXT(obj)-&gt;subclasses = NULL;</div><div class='del'>-	}</div><div class='del'>-	rb_class_remove_from_module_subclasses(obj);</div><div class='del'>-	rb_class_remove_from_super_subclasses(obj);</div><div class='del'>-	xfree(RANY(obj)-&gt;as.klass.ptr);</div><div class='del'>-	RANY(obj)-&gt;as.klass.ptr = NULL;</div><div class='add'>+        /* Basically , T_ICLASS shares table with the module */</div><div class='add'>+        if (RICLASS_OWNS_M_TBL_P(obj)) {</div><div class='add'>+            /* Method table is not shared for origin iclasses of classes */</div><div class='add'>+            rb_id_table_free(RCLASS_M_TBL(obj));</div><div class='add'>+        }</div><div class='add'>+        if (RCLASS_CALLABLE_M_TBL(obj) != NULL) {</div><div class='add'>+            rb_id_table_free(RCLASS_CALLABLE_M_TBL(obj));</div><div class='add'>+        }</div><div class='add'>+        rb_class_remove_subclass_head(obj);</div><div class='add'>+        cc_table_free(objspace, obj, FALSE);</div><div class='add'>+        rb_class_remove_from_module_subclasses(obj);</div><div class='add'>+        rb_class_remove_from_super_subclasses(obj);</div><div class='add'>+#if !RCLASS_EXT_EMBEDDED</div><div class='add'>+        xfree(RCLASS_EXT(obj));</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>         RB_DEBUG_COUNTER_INC(obj_iclass_ptr);</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_FLOAT:</div><div class='del'>-	break;</div><div class='add'>+        RB_DEBUG_COUNTER_INC(obj_float);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_BIGNUM:</div><div class='del'>-	if (!(RBASIC(obj)-&gt;flags &amp; BIGNUM_EMBED_FLAG) &amp;&amp; BIGNUM_DIGITS(obj)) {</div><div class='del'>-	    xfree(BIGNUM_DIGITS(obj));</div><div class='add'>+        if (!BIGNUM_EMBED_P(obj) &amp;&amp; BIGNUM_DIGITS(obj)) {</div><div class='add'>+            xfree(BIGNUM_DIGITS(obj));</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_bignum_ptr);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_bignum_embed);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_NODE:</div><div class='del'>-	UNEXPECTED_NODE(obj_free);</div><div class='del'>-	break;</div><div class='add'>+        UNEXPECTED_NODE(obj_free);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_STRUCT:</div><div class='ctx'>         if ((RBASIC(obj)-&gt;flags &amp; RSTRUCT_EMBED_LEN_MASK) ||</div><div class='hunk'>@@ -2405,39 +3698,39 @@ obj_free(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>         else {</div><div class='ctx'>             xfree((void *)RANY(obj)-&gt;as.rstruct.as.heap.ptr);</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_struct_ptr);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_SYMBOL:</div><div class='del'>-	{</div><div class='add'>+        {</div><div class='ctx'>             rb_gc_free_dsymbol(obj);</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_symbol);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_IMEMO:</div><div class='del'>-	switch (imemo_type(obj)) {</div><div class='del'>-	  case imemo_ment:</div><div class='del'>-	    rb_free_method_entry(&amp;RANY(obj)-&gt;as.imemo.ment);</div><div class='add'>+        switch (imemo_type(obj)) {</div><div class='add'>+          case imemo_ment:</div><div class='add'>+            rb_free_method_entry(&amp;RANY(obj)-&gt;as.imemo.ment);</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_imemo_ment);</div><div class='del'>-	    break;</div><div class='del'>-	  case imemo_iseq:</div><div class='del'>-	    rb_iseq_free(&amp;RANY(obj)-&gt;as.imemo.iseq);</div><div class='add'>+            break;</div><div class='add'>+          case imemo_iseq:</div><div class='add'>+            rb_iseq_free(&amp;RANY(obj)-&gt;as.imemo.iseq);</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_imemo_iseq);</div><div class='del'>-	    break;</div><div class='del'>-	  case imemo_env:</div><div class='del'>-	    GC_ASSERT(VM_ENV_ESCAPED_P(RANY(obj)-&gt;as.imemo.env.ep));</div><div class='del'>-	    xfree((VALUE *)RANY(obj)-&gt;as.imemo.env.env);</div><div class='add'>+            break;</div><div class='add'>+          case imemo_env:</div><div class='add'>+            GC_ASSERT(VM_ENV_ESCAPED_P(RANY(obj)-&gt;as.imemo.env.ep));</div><div class='add'>+            xfree((VALUE *)RANY(obj)-&gt;as.imemo.env.env);</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_imemo_env);</div><div class='del'>-	    break;</div><div class='del'>-	  case imemo_tmpbuf:</div><div class='del'>-	    xfree(RANY(obj)-&gt;as.imemo.alloc.ptr);</div><div class='add'>+            break;</div><div class='add'>+          case imemo_tmpbuf:</div><div class='add'>+            xfree(RANY(obj)-&gt;as.imemo.alloc.ptr);</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_imemo_tmpbuf);</div><div class='del'>-	    break;</div><div class='del'>-	  case imemo_ast:</div><div class='del'>-	    rb_ast_free(&amp;RANY(obj)-&gt;as.imemo.ast);</div><div class='add'>+            break;</div><div class='add'>+          case imemo_ast:</div><div class='add'>+            rb_ast_free(&amp;RANY(obj)-&gt;as.imemo.ast);</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_imemo_ast);</div><div class='del'>-	    break;</div><div class='add'>+            break;</div><div class='ctx'>           case imemo_cref:</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_imemo_cref);</div><div class='ctx'>             break;</div><div class='hunk'>@@ -2456,85 +3749,200 @@ obj_free(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>           case imemo_parser_strterm:</div><div class='ctx'>             RB_DEBUG_COUNTER_INC(obj_imemo_parser_strterm);</div><div class='ctx'>             break;</div><div class='del'>-	  default:</div><div class='del'>-            /* unreachable */</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	return 0;</div><div class='add'>+          case imemo_callinfo:</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_imemo_callinfo);</div><div class='add'>+            break;</div><div class='add'>+          case imemo_callcache:</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_imemo_callcache);</div><div class='add'>+            break;</div><div class='add'>+          case imemo_constcache:</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_imemo_constcache);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        return TRUE;</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	rb_bug("gc_sweep(): unknown data type 0x%x(%p) 0x%"PRIxVALUE,</div><div class='del'>-	       BUILTIN_TYPE(obj), (void*)obj, RBASIC(obj)-&gt;flags);</div><div class='add'>+        rb_bug("gc_sweep(): unknown data type 0x%x(%p) 0x%"PRIxVALUE,</div><div class='add'>+               BUILTIN_TYPE(obj), (void*)obj, RBASIC(obj)-&gt;flags);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (FL_TEST(obj, FL_FINALIZE)) {</div><div class='del'>-	make_zombie(objspace, obj, 0, 0);</div><div class='del'>-	return 1;</div><div class='add'>+        make_zombie(objspace, obj, 0, 0);</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return 0;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+#define OBJ_ID_INCREMENT (sizeof(RVALUE) / 2)</div><div class='add'>+#define OBJ_ID_INITIAL (OBJ_ID_INCREMENT * 2)</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+object_id_cmp(st_data_t x, st_data_t y)</div><div class='add'>+{</div><div class='add'>+    if (RB_BIGNUM_TYPE_P(x)) {</div><div class='add'>+        return !rb_big_eql(x, y);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return x != y;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static st_index_t</div><div class='add'>+object_id_hash(st_data_t n)</div><div class='add'>+{</div><div class='add'>+    if (RB_BIGNUM_TYPE_P(n)) {</div><div class='add'>+        return FIX2LONG(rb_big_hash(n));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return st_numhash(n);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+static const struct st_hash_type object_id_hash_type = {</div><div class='add'>+    object_id_cmp,</div><div class='add'>+    object_id_hash,</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> Init_heap(void)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'> </div><div class='del'>-    gc_stress_set(objspace, ruby_initial_gc_stress);</div><div class='add'>+#if defined(INIT_HEAP_PAGE_ALLOC_USE_MMAP)</div><div class='add'>+    /* Need to determine if we can use mmap at runtime. */</div><div class='add'>+    heap_page_alloc_use_mmap = INIT_HEAP_PAGE_ALLOC_USE_MMAP;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    objspace-&gt;next_object_id = INT2FIX(OBJ_ID_INITIAL);</div><div class='add'>+    objspace-&gt;id_to_obj_tbl = st_init_table(&amp;object_id_hash_type);</div><div class='add'>+    objspace-&gt;obj_to_id_tbl = st_init_numtable();</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='ctx'>     objspace-&gt;rgengc.oldmalloc_increase_limit = gc_params.oldmalloc_limit_min;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    heap_add_pages(objspace, heap_eden, gc_params.heap_init_slots / HEAP_PAGE_OBJ_LIMIT);</div><div class='add'>+    heap_add_pages(objspace, &amp;size_pools[0], SIZE_POOL_EDEN_HEAP(&amp;size_pools[0]), gc_params.heap_init_slots / HEAP_PAGE_OBJ_LIMIT);</div><div class='add'>+</div><div class='add'>+    /* Give other size pools allocatable pages. */</div><div class='add'>+    for (int i = 1; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        int multiple = size_pool-&gt;slot_size / BASE_SLOT_SIZE;</div><div class='add'>+        size_pool-&gt;allocatable_pages = gc_params.heap_init_slots * multiple / HEAP_PAGE_OBJ_LIMIT;</div><div class='add'>+    }</div><div class='add'>+    heap_pages_expand_sorted(objspace);</div><div class='add'>+</div><div class='ctx'>     init_mark_stack(&amp;objspace-&gt;mark_stack);</div><div class='ctx'> </div><div class='ctx'>     objspace-&gt;profile.invoke_time = getrusage_time();</div><div class='ctx'>     finalizer_table = st_init_numtable();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+Init_gc_stress(void)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+</div><div class='add'>+    gc_stress_set(objspace, ruby_initial_gc_stress);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> typedef int each_obj_callback(void *, void *, size_t, void *);</div><div class='ctx'> </div><div class='del'>-struct each_obj_args {</div><div class='add'>+static void objspace_each_objects(rb_objspace_t *objspace, each_obj_callback *callback, void *data, bool protected);</div><div class='add'>+static void objspace_reachable_objects_from_root(rb_objspace_t *, void (func)(const char *, VALUE, void *), void *);</div><div class='add'>+</div><div class='add'>+struct each_obj_data {</div><div class='add'>+    rb_objspace_t *objspace;</div><div class='add'>+    bool reenable_incremental;</div><div class='add'>+</div><div class='ctx'>     each_obj_callback *callback;</div><div class='ctx'>     void *data;</div><div class='add'>+</div><div class='add'>+    struct heap_page **pages[SIZE_POOL_COUNT];</div><div class='add'>+    size_t pages_counts[SIZE_POOL_COUNT];</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-objspace_each_objects(VALUE arg)</div><div class='add'>+objspace_each_objects_ensure(VALUE arg)</div><div class='ctx'> {</div><div class='del'>-    size_t i;</div><div class='del'>-    struct heap_page *page;</div><div class='del'>-    RVALUE *pstart = NULL, *pend;</div><div class='del'>-    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-    struct each_obj_args *args = (struct each_obj_args *)arg;</div><div class='del'>-</div><div class='del'>-    i = 0;</div><div class='del'>-    while (i &lt; heap_allocated_pages) {</div><div class='del'>-	while (0 &lt; i &amp;&amp; pstart &lt; heap_pages_sorted[i-1]-&gt;start)              i--;</div><div class='del'>-	while (i &lt; heap_allocated_pages &amp;&amp; heap_pages_sorted[i]-&gt;start &lt;= pstart) i++;</div><div class='del'>-	if (heap_allocated_pages &lt;= i) break;</div><div class='del'>-</div><div class='del'>-	page = heap_pages_sorted[i];</div><div class='add'>+    struct each_obj_data *data = (struct each_obj_data *)arg;</div><div class='add'>+    rb_objspace_t *objspace = data-&gt;objspace;</div><div class='ctx'> </div><div class='del'>-	pstart = page-&gt;start;</div><div class='del'>-	pend = pstart + page-&gt;total_slots;</div><div class='add'>+    /* Reenable incremental GC */</div><div class='add'>+    if (data-&gt;reenable_incremental) {</div><div class='add'>+        objspace-&gt;flags.dont_incremental = FALSE;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-	if ((*args-&gt;callback)(pstart, pend, sizeof(RVALUE), args-&gt;data)) {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        struct heap_page **pages = data-&gt;pages[i];</div><div class='add'>+        /* pages could be NULL if an error was raised during setup (e.g.</div><div class='add'>+         * malloc failed due to out of memory). */</div><div class='add'>+        if (pages) {</div><div class='add'>+            free(pages);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-incremental_enable(void)</div><div class='add'>+objspace_each_objects_try(VALUE arg)</div><div class='ctx'> {</div><div class='del'>-    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    struct each_obj_data *data = (struct each_obj_data *)arg;</div><div class='add'>+    rb_objspace_t *objspace = data-&gt;objspace;</div><div class='add'>+</div><div class='add'>+    /* Copy pages from all size_pools to their respective buffers. */</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        size_t size = size_mul_or_raise(SIZE_POOL_EDEN_HEAP(size_pool)-&gt;total_pages, sizeof(struct heap_page *), rb_eRuntimeError);</div><div class='add'>+</div><div class='add'>+        struct heap_page **pages = malloc(size);</div><div class='add'>+        if (!pages) rb_memerror();</div><div class='add'>+</div><div class='add'>+        /* Set up pages buffer by iterating over all pages in the current eden</div><div class='add'>+         * heap. This will be a snapshot of the state of the heap before we</div><div class='add'>+         * call the callback over each page that exists in this buffer. Thus it</div><div class='add'>+         * is safe for the callback to allocate objects without possibly entering</div><div class='add'>+         * an infinite loop. */</div><div class='add'>+        struct heap_page *page = 0;</div><div class='add'>+        size_t pages_count = 0;</div><div class='add'>+        ccan_list_for_each(&amp;SIZE_POOL_EDEN_HEAP(size_pool)-&gt;pages, page, page_node) {</div><div class='add'>+            pages[pages_count] = page;</div><div class='add'>+            pages_count++;</div><div class='add'>+        }</div><div class='add'>+        data-&gt;pages[i] = pages;</div><div class='add'>+        data-&gt;pages_counts[i] = pages_count;</div><div class='add'>+        GC_ASSERT(pages_count == SIZE_POOL_EDEN_HEAP(size_pool)-&gt;total_pages);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        size_t pages_count = data-&gt;pages_counts[i];</div><div class='add'>+        struct heap_page **pages = data-&gt;pages[i];</div><div class='add'>+</div><div class='add'>+        struct heap_page *page = ccan_list_top(&amp;SIZE_POOL_EDEN_HEAP(size_pool)-&gt;pages, struct heap_page, page_node);</div><div class='add'>+        for (size_t i = 0; i &lt; pages_count; i++) {</div><div class='add'>+            /* If we have reached the end of the linked list then there are no</div><div class='add'>+             * more pages, so break. */</div><div class='add'>+            if (page == NULL) break;</div><div class='add'>+</div><div class='add'>+            /* If this page does not match the one in the buffer, then move to</div><div class='add'>+             * the next page in the buffer. */</div><div class='add'>+            if (pages[i] != page) continue;</div><div class='add'>+</div><div class='add'>+            uintptr_t pstart = (uintptr_t)page-&gt;start;</div><div class='add'>+            uintptr_t pend = pstart + (page-&gt;total_slots * size_pool-&gt;slot_size);</div><div class='add'>+</div><div class='add'>+            if (!__asan_region_is_poisoned((void *)pstart, pend - pstart) &amp;&amp;</div><div class='add'>+                (*data-&gt;callback)((void *)pstart, (void *)pend, size_pool-&gt;slot_size, data-&gt;data)) {</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            page = ccan_list_next(&amp;SIZE_POOL_EDEN_HEAP(size_pool)-&gt;pages, page, page_node);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    objspace-&gt;flags.dont_incremental = FALSE;</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2569,7 +3977,7 @@ incremental_enable(void)</div><div class='ctx'>  *       This means that you can not walk through all Ruby object page</div><div class='ctx'>  *       including freed object page.</div><div class='ctx'>  *</div><div class='del'>- * Note: On this implementation, 'stride' is same as sizeof(RVALUE).</div><div class='add'>+ * Note: On this implementation, 'stride' is the same as sizeof(RVALUE).</div><div class='ctx'>  *       However, there are possibilities to pass variable values with</div><div class='ctx'>  *       'stride' with some reasons.  You must use stride instead of</div><div class='ctx'>  *       use some constant value in the iteration.</div><div class='hunk'>@@ -2577,32 +3985,39 @@ incremental_enable(void)</div><div class='ctx'> void</div><div class='ctx'> rb_objspace_each_objects(each_obj_callback *callback, void *data)</div><div class='ctx'> {</div><div class='del'>-    struct each_obj_args args;</div><div class='del'>-    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-    int prev_dont_incremental = objspace-&gt;flags.dont_incremental;</div><div class='del'>-</div><div class='del'>-    gc_rest(objspace);</div><div class='del'>-    objspace-&gt;flags.dont_incremental = TRUE;</div><div class='add'>+    objspace_each_objects(&amp;rb_objspace, callback, data, TRUE);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    args.callback = callback;</div><div class='del'>-    args.data = data;</div><div class='add'>+static void</div><div class='add'>+objspace_each_objects(rb_objspace_t *objspace, each_obj_callback *callback, void *data, bool protected)</div><div class='add'>+{</div><div class='add'>+    /* Disable incremental GC */</div><div class='add'>+    bool reenable_incremental = FALSE;</div><div class='add'>+    if (protected) {</div><div class='add'>+        reenable_incremental = !objspace-&gt;flags.dont_incremental;</div><div class='ctx'> </div><div class='del'>-    if (prev_dont_incremental) {</div><div class='del'>-	objspace_each_objects((VALUE)&amp;args);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	rb_ensure(objspace_each_objects, (VALUE)&amp;args, incremental_enable, Qnil);</div><div class='add'>+        gc_rest(objspace);</div><div class='add'>+        objspace-&gt;flags.dont_incremental = TRUE;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    struct each_obj_data each_obj_data = {</div><div class='add'>+        .objspace = objspace,</div><div class='add'>+        .reenable_incremental = reenable_incremental,</div><div class='add'>+</div><div class='add'>+        .callback = callback,</div><div class='add'>+        .data = data,</div><div class='add'>+</div><div class='add'>+        .pages = {NULL},</div><div class='add'>+        .pages_counts = {0},</div><div class='add'>+    };</div><div class='add'>+    rb_ensure(objspace_each_objects_try, (VALUE)&amp;each_obj_data,</div><div class='add'>+              objspace_each_objects_ensure, (VALUE)&amp;each_obj_data);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_objspace_each_objects_without_setup(each_obj_callback *callback, void *data)</div><div class='ctx'> {</div><div class='del'>-    struct each_obj_args args;</div><div class='del'>-    args.callback = callback;</div><div class='del'>-    args.data = data;</div><div class='del'>-</div><div class='del'>-    objspace_each_objects((VALUE)&amp;args);</div><div class='add'>+    objspace_each_objects(&amp;rb_objspace, callback, data, FALSE);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct os_each_struct {</div><div class='hunk'>@@ -2614,33 +4029,33 @@ static int</div><div class='ctx'> internal_object_p(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     RVALUE *p = (RVALUE *)obj;</div><div class='del'>-    void *ptr = __asan_region_is_poisoned(p, SIZEOF_VALUE);</div><div class='add'>+    void *ptr = asan_unpoison_object_temporary(obj);</div><div class='ctx'>     bool used_p = p-&gt;as.basic.flags;</div><div class='del'>-    unpoison_object(obj, false);</div><div class='ctx'> </div><div class='ctx'>     if (used_p) {</div><div class='del'>-	switch (BUILTIN_TYPE(p)) {</div><div class='del'>-	  case T_NODE:</div><div class='del'>-	    UNEXPECTED_NODE(internal_object_p);</div><div class='del'>-	    break;</div><div class='del'>-	  case T_NONE:</div><div class='del'>-	  case T_IMEMO:</div><div class='del'>-	  case T_ICLASS:</div><div class='del'>-	  case T_ZOMBIE:</div><div class='del'>-	    break;</div><div class='del'>-	  case T_CLASS:</div><div class='del'>-	    if (!p-&gt;as.basic.klass) break;</div><div class='del'>-	    if (FL_TEST(obj, FL_SINGLETON)) {</div><div class='del'>-		return rb_singleton_class_internal_p(obj);</div><div class='del'>-	    }</div><div class='del'>-	    return 0;</div><div class='del'>-	  default:</div><div class='del'>-	    if (!p-&gt;as.basic.klass) break;</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='add'>+        switch (BUILTIN_TYPE(obj)) {</div><div class='add'>+          case T_NODE:</div><div class='add'>+            UNEXPECTED_NODE(internal_object_p);</div><div class='add'>+            break;</div><div class='add'>+          case T_NONE:</div><div class='add'>+          case T_MOVED:</div><div class='add'>+          case T_IMEMO:</div><div class='add'>+          case T_ICLASS:</div><div class='add'>+          case T_ZOMBIE:</div><div class='add'>+            break;</div><div class='add'>+          case T_CLASS:</div><div class='add'>+            if (!p-&gt;as.basic.klass) break;</div><div class='add'>+            if (FL_TEST(obj, FL_SINGLETON)) {</div><div class='add'>+                return rb_singleton_class_internal_p(obj);</div><div class='add'>+            }</div><div class='add'>+            return 0;</div><div class='add'>+          default:</div><div class='add'>+            if (!p-&gt;as.basic.klass) break;</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (ptr || ! used_p) {</div><div class='del'>-        poison_object(obj);</div><div class='add'>+        asan_poison_object(obj);</div><div class='ctx'>     }</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='hunk'>@@ -2655,16 +4070,17 @@ static int</div><div class='ctx'> os_obj_of_i(void *vstart, void *vend, size_t stride, void *data)</div><div class='ctx'> {</div><div class='ctx'>     struct os_each_struct *oes = (struct os_each_struct *)data;</div><div class='del'>-    RVALUE *p = (RVALUE *)vstart, *pend = (RVALUE *)vend;</div><div class='ctx'> </div><div class='del'>-    for (; p != pend; p++) {</div><div class='del'>-	volatile VALUE v = (VALUE)p;</div><div class='del'>-	if (!internal_object_p(v)) {</div><div class='del'>-	    if (!oes-&gt;of || rb_obj_is_kind_of(v, oes-&gt;of)) {</div><div class='del'>-		rb_yield(v);</div><div class='del'>-		oes-&gt;num++;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+    VALUE v = (VALUE)vstart;</div><div class='add'>+    for (; v != (VALUE)vend; v += stride) {</div><div class='add'>+        if (!internal_object_p(v)) {</div><div class='add'>+            if (!oes-&gt;of || rb_obj_is_kind_of(v, oes-&gt;of)) {</div><div class='add'>+                if (!rb_multi_ractor_p() || rb_ractor_shareable_p(v)) {</div><div class='add'>+                    rb_yield(v);</div><div class='add'>+                    oes-&gt;num++;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return 0;</div><div class='hunk'>@@ -2692,9 +4108,9 @@ os_obj_of(VALUE of)</div><div class='ctx'>  *  &lt;i&gt;module&lt;/i&gt;. Returns the number of objects found. Immediate</div><div class='ctx'>  *  objects (&lt;code&gt;Fixnum&lt;/code&gt;s, &lt;code&gt;Symbol&lt;/code&gt;s</div><div class='ctx'>  *  &lt;code&gt;true&lt;/code&gt;, &lt;code&gt;false&lt;/code&gt;, and &lt;code&gt;nil&lt;/code&gt;) are</div><div class='del'>- *  never returned. In the example below, &lt;code&gt;each_object&lt;/code&gt;</div><div class='del'>- *  returns both the numbers we defined and several constants defined in</div><div class='del'>- *  the &lt;code&gt;Math&lt;/code&gt; module.</div><div class='add'>+ *  never returned. In the example below, #each_object returns both</div><div class='add'>+ *  the numbers we defined and several constants defined in the Math</div><div class='add'>+ *  module.</div><div class='ctx'>  *</div><div class='ctx'>  *  If no block is given, an enumerator is returned instead.</div><div class='ctx'>  *</div><div class='hunk'>@@ -2756,16 +4172,17 @@ static void</div><div class='ctx'> should_be_callable(VALUE block)</div><div class='ctx'> {</div><div class='ctx'>     if (!rb_obj_respond_to(block, idCall, TRUE)) {</div><div class='del'>-	rb_raise(rb_eArgError, "wrong type argument %"PRIsVALUE" (should be callable)",</div><div class='del'>-		 rb_obj_class(block));</div><div class='add'>+        rb_raise(rb_eArgError, "wrong type argument %"PRIsVALUE" (should be callable)",</div><div class='add'>+                 rb_obj_class(block));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> should_be_finalizable(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (!FL_ABLE(obj)) {</div><div class='del'>-	rb_raise(rb_eArgError, "cannot define finalizer for %s",</div><div class='del'>-		 rb_obj_classname(obj));</div><div class='add'>+        rb_raise(rb_eArgError, "cannot define finalizer for %s",</div><div class='add'>+                 rb_obj_classname(obj));</div><div class='ctx'>     }</div><div class='ctx'>     rb_check_frozen(obj);</div><div class='ctx'> }</div><div class='hunk'>@@ -2779,6 +4196,57 @@ should_be_finalizable(VALUE obj)</div><div class='ctx'>  *  as an argument to &lt;i&gt;aProc&lt;/i&gt;. If &lt;i&gt;aProc&lt;/i&gt; is a lambda or</div><div class='ctx'>  *  method, make sure it can be called with a single argument.</div><div class='ctx'>  *</div><div class='add'>+ *  The return value is an array &lt;code&gt;[0, aProc]&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  The two recommended patterns are to either create the finaliser proc</div><div class='add'>+ *  in a non-instance method where it can safely capture the needed state,</div><div class='add'>+ *  or to use a custom callable object that stores the needed state</div><div class='add'>+ *  explicitly as instance variables.</div><div class='add'>+ *</div><div class='add'>+ *      class Foo</div><div class='add'>+ *        def initialize(data_needed_for_finalization)</div><div class='add'>+ *          ObjectSpace.define_finalizer(self, self.class.create_finalizer(data_needed_for_finalization))</div><div class='add'>+ *        end</div><div class='add'>+ *</div><div class='add'>+ *        def self.create_finalizer(data_needed_for_finalization)</div><div class='add'>+ *          proc {</div><div class='add'>+ *            puts "finalizing #{data_needed_for_finalization}"</div><div class='add'>+ *          }</div><div class='add'>+ *        end</div><div class='add'>+ *      end</div><div class='add'>+ *</div><div class='add'>+ *      class Bar</div><div class='add'>+ *       class Remover</div><div class='add'>+ *          def initialize(data_needed_for_finalization)</div><div class='add'>+ *            @data_needed_for_finalization = data_needed_for_finalization</div><div class='add'>+ *          end</div><div class='add'>+ *</div><div class='add'>+ *          def call(id)</div><div class='add'>+ *            puts "finalizing #{@data_needed_for_finalization}"</div><div class='add'>+ *          end</div><div class='add'>+ *        end</div><div class='add'>+ *</div><div class='add'>+ *        def initialize(data_needed_for_finalization)</div><div class='add'>+ *          ObjectSpace.define_finalizer(self, Remover.new(data_needed_for_finalization))</div><div class='add'>+ *        end</div><div class='add'>+ *      end</div><div class='add'>+ *</div><div class='add'>+ *  Note that if your finalizer references the object to be</div><div class='add'>+ *  finalized it will never be run on GC, although it will still be</div><div class='add'>+ *  run at exit. You will get a warning if you capture the object</div><div class='add'>+ *  to be finalized as the receiver of the finalizer.</div><div class='add'>+ *</div><div class='add'>+ *      class CapturesSelf</div><div class='add'>+ *        def initialize(name)</div><div class='add'>+ *          ObjectSpace.define_finalizer(self, proc {</div><div class='add'>+ *            # this finalizer will only be run on exit</div><div class='add'>+ *            puts "finalizing #{name}"</div><div class='add'>+ *          })</div><div class='add'>+ *        end</div><div class='add'>+ *      end</div><div class='add'>+ *</div><div class='add'>+ *  Also note that finalization can be unpredictable and is never guaranteed</div><div class='add'>+ *  to be run except on exit.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2789,10 +4257,14 @@ define_final(int argc, VALUE *argv, VALUE os)</div><div class='ctx'>     rb_scan_args(argc, argv, "11", &amp;obj, &amp;block);</div><div class='ctx'>     should_be_finalizable(obj);</div><div class='ctx'>     if (argc == 1) {</div><div class='del'>-	block = rb_block_proc();</div><div class='add'>+        block = rb_block_proc();</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	should_be_callable(block);</div><div class='add'>+        should_be_callable(block);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (rb_callable_receiver(block) == obj) {</div><div class='add'>+        rb_warn("finalizer references object to be finalized");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return define_final0(obj, block);</div><div class='hunk'>@@ -2807,32 +4279,33 @@ define_final0(VALUE obj, VALUE block)</div><div class='ctx'> </div><div class='ctx'>     RBASIC(obj)-&gt;flags |= FL_FINALIZE;</div><div class='ctx'> </div><div class='del'>-    block = rb_ary_new3(2, INT2FIX(rb_safe_level()), block);</div><div class='del'>-    OBJ_FREEZE(block);</div><div class='del'>-</div><div class='ctx'>     if (st_lookup(finalizer_table, obj, &amp;data)) {</div><div class='del'>-	table = (VALUE)data;</div><div class='add'>+        table = (VALUE)data;</div><div class='ctx'> </div><div class='del'>-	/* avoid duplicate block, table is usually small */</div><div class='del'>-	{</div><div class='del'>-	    long len = RARRAY_LEN(table);</div><div class='del'>-	    long i;</div><div class='add'>+        /* avoid duplicate block, table is usually small */</div><div class='add'>+        {</div><div class='add'>+            long len = RARRAY_LEN(table);</div><div class='add'>+            long i;</div><div class='ctx'> </div><div class='ctx'>             for (i = 0; i &lt; len; i++) {</div><div class='ctx'>                 VALUE recv = RARRAY_AREF(table, i);</div><div class='del'>-                if (rb_funcall(recv, idEq, 1, block)) {</div><div class='del'>-                    return recv;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+                if (rb_equal(recv, block)) {</div><div class='add'>+                    block = recv;</div><div class='add'>+                    goto end;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	rb_ary_push(table, block);</div><div class='add'>+        rb_ary_push(table, block);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	table = rb_ary_new3(1, block);</div><div class='del'>-	RBASIC_CLEAR_CLASS(table);</div><div class='del'>-	st_add_direct(finalizer_table, obj, table);</div><div class='add'>+        table = rb_ary_new3(1, block);</div><div class='add'>+        RBASIC_CLEAR_CLASS(table);</div><div class='add'>+        st_add_direct(finalizer_table, obj, table);</div><div class='ctx'>     }</div><div class='add'>+  end:</div><div class='add'>+    block = rb_ary_new3(2, INT2FIX(0), block);</div><div class='add'>+    OBJ_FREEZE(block);</div><div class='ctx'>     return block;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2853,56 +4326,65 @@ rb_gc_copy_finalizer(VALUE dest, VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     if (!FL_TEST(obj, FL_FINALIZE)) return;</div><div class='ctx'>     if (st_lookup(finalizer_table, obj, &amp;data)) {</div><div class='del'>-	table = (VALUE)data;</div><div class='del'>-	st_insert(finalizer_table, dest, table);</div><div class='add'>+        table = (VALUE)data;</div><div class='add'>+        st_insert(finalizer_table, dest, table);</div><div class='ctx'>     }</div><div class='ctx'>     FL_SET(dest, FL_FINALIZE);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-run_single_final(VALUE final, VALUE objid)</div><div class='add'>+run_single_final(VALUE cmd, VALUE objid)</div><div class='ctx'> {</div><div class='del'>-    const VALUE cmd = RARRAY_AREF(final, 1);</div><div class='del'>-    const int level = OBJ_TAINTED(cmd) ?</div><div class='del'>-	RUBY_SAFE_LEVEL_MAX : FIX2INT(RARRAY_AREF(final, 0));</div><div class='del'>-</div><div class='del'>-    rb_set_safe_level_force(level);</div><div class='ctx'>     return rb_check_funcall(cmd, idCall, 1, &amp;objid);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='add'>+warn_exception_in_finalizer(rb_execution_context_t *ec, VALUE final)</div><div class='add'>+{</div><div class='add'>+    if (!UNDEF_P(final) &amp;&amp; !NIL_P(ruby_verbose)) {</div><div class='add'>+        VALUE errinfo = ec-&gt;errinfo;</div><div class='add'>+        rb_warn("Exception in finalizer %+"PRIsVALUE, final);</div><div class='add'>+        rb_ec_error_print(ec, errinfo);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='ctx'> run_finalizer(rb_objspace_t *objspace, VALUE obj, VALUE table)</div><div class='ctx'> {</div><div class='ctx'>     long i;</div><div class='ctx'>     enum ruby_tag_type state;</div><div class='ctx'>     volatile struct {</div><div class='del'>-	VALUE errinfo;</div><div class='del'>-	VALUE objid;</div><div class='del'>-	rb_control_frame_t *cfp;</div><div class='del'>-	long finished;</div><div class='del'>-	int safe;</div><div class='add'>+        VALUE errinfo;</div><div class='add'>+        VALUE objid;</div><div class='add'>+        VALUE final;</div><div class='add'>+        rb_control_frame_t *cfp;</div><div class='add'>+        VALUE *sp;</div><div class='add'>+        long finished;</div><div class='ctx'>     } saved;</div><div class='add'>+</div><div class='ctx'>     rb_execution_context_t * volatile ec = GET_EC();</div><div class='ctx'> #define RESTORE_FINALIZER() (\</div><div class='del'>-	ec-&gt;cfp = saved.cfp, \</div><div class='del'>-	rb_set_safe_level_force(saved.safe), \</div><div class='del'>-	rb_set_errinfo(saved.errinfo))</div><div class='add'>+        ec-&gt;cfp = saved.cfp, \</div><div class='add'>+        ec-&gt;cfp-&gt;sp = saved.sp, \</div><div class='add'>+        ec-&gt;errinfo = saved.errinfo)</div><div class='ctx'> </div><div class='del'>-    saved.safe = rb_safe_level();</div><div class='del'>-    saved.errinfo = rb_errinfo();</div><div class='del'>-    saved.objid = nonspecial_obj_id(obj);</div><div class='add'>+    saved.errinfo = ec-&gt;errinfo;</div><div class='add'>+    saved.objid = rb_obj_id(obj);</div><div class='ctx'>     saved.cfp = ec-&gt;cfp;</div><div class='add'>+    saved.sp = ec-&gt;cfp-&gt;sp;</div><div class='ctx'>     saved.finished = 0;</div><div class='add'>+    saved.final = Qundef;</div><div class='ctx'> </div><div class='ctx'>     EC_PUSH_TAG(ec);</div><div class='ctx'>     state = EC_EXEC_TAG();</div><div class='ctx'>     if (state != TAG_NONE) {</div><div class='del'>-	++saved.finished;	/* skip failed finalizer */</div><div class='add'>+        ++saved.finished;	/* skip failed finalizer */</div><div class='add'>+        warn_exception_in_finalizer(ec, ATOMIC_VALUE_EXCHANGE(saved.final, Qundef));</div><div class='ctx'>     }</div><div class='ctx'>     for (i = saved.finished;</div><div class='del'>-	 RESTORE_FINALIZER(), i&lt;RARRAY_LEN(table);</div><div class='del'>-	 saved.finished = ++i) {</div><div class='del'>-	run_single_final(RARRAY_AREF(table, i), saved.objid);</div><div class='add'>+         RESTORE_FINALIZER(), i&lt;RARRAY_LEN(table);</div><div class='add'>+         saved.finished = ++i) {</div><div class='add'>+        run_single_final(saved.final = RARRAY_AREF(table, i), saved.objid);</div><div class='ctx'>     }</div><div class='ctx'>     EC_POP_TAG();</div><div class='ctx'> #undef RESTORE_FINALIZER</div><div class='hunk'>@@ -2914,12 +4396,12 @@ run_final(rb_objspace_t *objspace, VALUE zombie)</div><div class='ctx'>     st_data_t key, table;</div><div class='ctx'> </div><div class='ctx'>     if (RZOMBIE(zombie)-&gt;dfree) {</div><div class='del'>-	RZOMBIE(zombie)-&gt;dfree(RZOMBIE(zombie)-&gt;data);</div><div class='add'>+        RZOMBIE(zombie)-&gt;dfree(RZOMBIE(zombie)-&gt;data);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     key = (st_data_t)zombie;</div><div class='ctx'>     if (st_delete(finalizer_table, &amp;key, &amp;table)) {</div><div class='del'>-	run_finalizer(objspace, zombie, (VALUE)table);</div><div class='add'>+        run_finalizer(objspace, zombie, (VALUE)table);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2929,55 +4411,67 @@ finalize_list(rb_objspace_t *objspace, VALUE zombie)</div><div class='ctx'>     while (zombie) {</div><div class='ctx'>         VALUE next_zombie;</div><div class='ctx'>         struct heap_page *page;</div><div class='del'>-        unpoison_object(zombie, false);</div><div class='add'>+        asan_unpoison_object(zombie, false);</div><div class='ctx'>         next_zombie = RZOMBIE(zombie)-&gt;next;</div><div class='ctx'>         page = GET_HEAP_PAGE(zombie);</div><div class='ctx'> </div><div class='del'>-	run_final(objspace, zombie);</div><div class='add'>+        run_final(objspace, zombie);</div><div class='add'>+</div><div class='add'>+        RB_VM_LOCK_ENTER();</div><div class='add'>+        {</div><div class='add'>+            GC_ASSERT(BUILTIN_TYPE(zombie) == T_ZOMBIE);</div><div class='add'>+            if (FL_TEST(zombie, FL_SEEN_OBJ_ID)) {</div><div class='add'>+                obj_free_object_id(objspace, zombie);</div><div class='add'>+            }</div><div class='ctx'> </div><div class='del'>-	RZOMBIE(zombie)-&gt;basic.flags = 0;</div><div class='del'>-        if (LIKELY(heap_pages_final_slots)) heap_pages_final_slots--;</div><div class='del'>-	page-&gt;final_slots--;</div><div class='del'>-	page-&gt;free_slots++;</div><div class='del'>-	heap_page_add_freeobj(objspace, GET_HEAP_PAGE(zombie), zombie);</div><div class='add'>+            GC_ASSERT(heap_pages_final_slots &gt; 0);</div><div class='add'>+            GC_ASSERT(page-&gt;final_slots &gt; 0);</div><div class='ctx'> </div><div class='del'>-	objspace-&gt;profile.total_freed_objects++;</div><div class='add'>+            heap_pages_final_slots--;</div><div class='add'>+            page-&gt;final_slots--;</div><div class='add'>+            page-&gt;free_slots++;</div><div class='add'>+            heap_page_add_freeobj(objspace, page, zombie);</div><div class='add'>+            objspace-&gt;profile.total_freed_objects++;</div><div class='add'>+        }</div><div class='add'>+        RB_VM_LOCK_LEAVE();</div><div class='ctx'> </div><div class='del'>-	zombie = next_zombie;</div><div class='add'>+        zombie = next_zombie;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-finalize_deferred(rb_objspace_t *objspace)</div><div class='add'>+finalize_deferred_heap_pages(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     VALUE zombie;</div><div class='del'>-</div><div class='ctx'>     while ((zombie = ATOMIC_VALUE_EXCHANGE(heap_pages_deferred_final, 0)) != 0) {</div><div class='del'>-	finalize_list(objspace, zombie);</div><div class='add'>+        finalize_list(objspace, zombie);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='add'>+finalize_deferred(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    rb_execution_context_t *ec = GET_EC();</div><div class='add'>+    ec-&gt;interrupt_mask |= PENDING_INTERRUPT_MASK;</div><div class='add'>+    finalize_deferred_heap_pages(objspace);</div><div class='add'>+    ec-&gt;interrupt_mask &amp;= ~PENDING_INTERRUPT_MASK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='ctx'> gc_finalize_deferred(void *dmy)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = dmy;</div><div class='ctx'>     if (ATOMIC_EXCHANGE(finalizing, 1)) return;</div><div class='add'>+</div><div class='ctx'>     finalize_deferred(objspace);</div><div class='ctx'>     ATOMIC_SET(finalizing, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* TODO: to keep compatibility, maybe unused. */</div><div class='del'>-void</div><div class='del'>-rb_gc_finalize_deferred(void)</div><div class='del'>-{</div><div class='del'>-    gc_finalize_deferred(0);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static void</div><div class='ctx'> gc_finalize_deferred_register(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     if (rb_postponed_job_register_one(0, gc_finalize_deferred, objspace) == 0) {</div><div class='del'>-	rb_bug("gc_finalize_deferred_register: can't register finalizer.");</div><div class='add'>+        rb_bug("gc_finalize_deferred_register: can't register finalizer.");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2999,21 +4493,16 @@ force_chain_object(st_data_t key, st_data_t val, st_data_t arg)</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_gc_call_finalizer_at_exit(void)</div><div class='del'>-{</div><div class='del'>-#if RGENGC_CHECK_MODE &gt;= 2</div><div class='del'>-    gc_verify_internal_consistency(Qnil);</div><div class='del'>-#endif</div><div class='del'>-    rb_objspace_call_finalizer(&amp;rb_objspace);</div><div class='del'>-}</div><div class='add'>+bool rb_obj_is_main_ractor(VALUE gv);</div><div class='ctx'> </div><div class='del'>-static void</div><div class='add'>+void</div><div class='ctx'> rb_objspace_call_finalizer(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='del'>-    RVALUE *p, *pend;</div><div class='ctx'>     size_t i;</div><div class='ctx'> </div><div class='add'>+#if RGENGC_CHECK_MODE &gt;= 2</div><div class='add'>+    gc_verify_internal_consistency(objspace);</div><div class='add'>+#endif</div><div class='ctx'>     gc_rest(objspace);</div><div class='ctx'> </div><div class='ctx'>     if (ATOMIC_EXCHANGE(finalizing, 1)) return;</div><div class='hunk'>@@ -3028,108 +4517,96 @@ rb_objspace_call_finalizer(rb_objspace_t *objspace)</div><div class='ctx'> </div><div class='ctx'>     /* force to run finalizer */</div><div class='ctx'>     while (finalizer_table-&gt;num_entries) {</div><div class='del'>-	struct force_finalize_list *list = 0;</div><div class='del'>-	st_foreach(finalizer_table, force_chain_object, (st_data_t)&amp;list);</div><div class='del'>-	while (list) {</div><div class='del'>-	    struct force_finalize_list *curr = list;</div><div class='del'>-	    st_data_t obj = (st_data_t)curr-&gt;obj;</div><div class='del'>-	    run_finalizer(objspace, curr-&gt;obj, curr-&gt;table);</div><div class='del'>-	    st_delete(finalizer_table, &amp;obj, 0);</div><div class='del'>-	    list = curr-&gt;next;</div><div class='del'>-	    xfree(curr);</div><div class='del'>-	}</div><div class='add'>+        struct force_finalize_list *list = 0;</div><div class='add'>+        st_foreach(finalizer_table, force_chain_object, (st_data_t)&amp;list);</div><div class='add'>+        while (list) {</div><div class='add'>+            struct force_finalize_list *curr = list;</div><div class='add'>+            st_data_t obj = (st_data_t)curr-&gt;obj;</div><div class='add'>+            run_finalizer(objspace, curr-&gt;obj, curr-&gt;table);</div><div class='add'>+            st_delete(finalizer_table, &amp;obj, 0);</div><div class='add'>+            list = curr-&gt;next;</div><div class='add'>+            xfree(curr);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* prohibit GC because force T_DATA finalizers can break an object graph consistency */</div><div class='del'>-    dont_gc = 1;</div><div class='add'>+    dont_gc_on();</div><div class='ctx'> </div><div class='ctx'>     /* running data/file finalizers are part of garbage collection */</div><div class='del'>-    gc_enter(objspace, "rb_objspace_call_finalizer");</div><div class='add'>+    unsigned int lock_lev;</div><div class='add'>+    gc_enter(objspace, gc_enter_event_finalizer, &amp;lock_lev);</div><div class='ctx'> </div><div class='ctx'>     /* run data/file object's finalizers */</div><div class='ctx'>     for (i = 0; i &lt; heap_allocated_pages; i++) {</div><div class='del'>-	p = heap_pages_sorted[i]-&gt;start; pend = p + heap_pages_sorted[i]-&gt;total_slots;</div><div class='del'>-	while (p &lt; pend) {</div><div class='del'>-            unpoison_object((VALUE)p, false);</div><div class='del'>-	    switch (BUILTIN_TYPE(p)) {</div><div class='del'>-	      case T_DATA:</div><div class='del'>-		if (!DATA_PTR(p) || !RANY(p)-&gt;as.data.dfree) break;</div><div class='del'>-		if (rb_obj_is_thread((VALUE)p)) break;</div><div class='del'>-		if (rb_obj_is_mutex((VALUE)p)) break;</div><div class='del'>-		if (rb_obj_is_fiber((VALUE)p)) break;</div><div class='del'>-		p-&gt;as.free.flags = 0;</div><div class='del'>-		if (RTYPEDDATA_P(p)) {</div><div class='del'>-		    RDATA(p)-&gt;dfree = RANY(p)-&gt;as.typeddata.type-&gt;function.dfree;</div><div class='del'>-		}</div><div class='del'>-		if (RANY(p)-&gt;as.data.dfree == RUBY_DEFAULT_FREE) {</div><div class='del'>-		    xfree(DATA_PTR(p));</div><div class='del'>-		}</div><div class='del'>-		else if (RANY(p)-&gt;as.data.dfree) {</div><div class='del'>-		    make_zombie(objspace, (VALUE)p, RANY(p)-&gt;as.data.dfree, RANY(p)-&gt;as.data.data);</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      case T_FILE:</div><div class='del'>-		if (RANY(p)-&gt;as.file.fptr) {</div><div class='del'>-		    make_io_zombie(objspace, (VALUE)p);</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-            poison_object((VALUE)p);</div><div class='del'>-	    p++;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    gc_exit(objspace, "rb_objspace_call_finalizer");</div><div class='del'>-</div><div class='del'>-    if (heap_pages_deferred_final) {</div><div class='del'>-	finalize_list(objspace, heap_pages_deferred_final);</div><div class='add'>+        struct heap_page *page = heap_pages_sorted[i];</div><div class='add'>+        short stride = page-&gt;slot_size;</div><div class='add'>+</div><div class='add'>+        uintptr_t p = (uintptr_t)page-&gt;start;</div><div class='add'>+        uintptr_t pend = p + page-&gt;total_slots * stride;</div><div class='add'>+        for (; p &lt; pend; p += stride) {</div><div class='add'>+            VALUE vp = (VALUE)p;</div><div class='add'>+            void *poisoned = asan_unpoison_object_temporary(vp);</div><div class='add'>+            switch (BUILTIN_TYPE(vp)) {</div><div class='add'>+              case T_DATA:</div><div class='add'>+                if (!DATA_PTR(p) || !RANY(p)-&gt;as.data.dfree) break;</div><div class='add'>+                if (rb_obj_is_thread(vp)) break;</div><div class='add'>+                if (rb_obj_is_mutex(vp)) break;</div><div class='add'>+                if (rb_obj_is_fiber(vp)) break;</div><div class='add'>+                if (rb_obj_is_main_ractor(vp)) break;</div><div class='add'>+                if (RTYPEDDATA_P(vp)) {</div><div class='add'>+                    RDATA(p)-&gt;dfree = RANY(p)-&gt;as.typeddata.type-&gt;function.dfree;</div><div class='add'>+                }</div><div class='add'>+                RANY(p)-&gt;as.free.flags = 0;</div><div class='add'>+                if (RANY(p)-&gt;as.data.dfree == RUBY_DEFAULT_FREE) {</div><div class='add'>+                    xfree(DATA_PTR(p));</div><div class='add'>+                }</div><div class='add'>+                else if (RANY(p)-&gt;as.data.dfree) {</div><div class='add'>+                    make_zombie(objspace, vp, RANY(p)-&gt;as.data.dfree, RANY(p)-&gt;as.data.data);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case T_FILE:</div><div class='add'>+                if (RANY(p)-&gt;as.file.fptr) {</div><div class='add'>+                    make_io_zombie(objspace, vp);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              default:</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            if (poisoned) {</div><div class='add'>+                GC_ASSERT(BUILTIN_TYPE(vp) == T_NONE);</div><div class='add'>+                asan_poison_object(vp);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    gc_exit(objspace, gc_enter_event_finalizer, &amp;lock_lev);</div><div class='add'>+</div><div class='add'>+    finalize_deferred_heap_pages(objspace);</div><div class='add'>+</div><div class='ctx'>     st_free_table(finalizer_table);</div><div class='ctx'>     finalizer_table = 0;</div><div class='ctx'>     ATOMIC_SET(finalizing, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-PUREFUNC(static inline int is_id_value(rb_objspace_t *objspace, VALUE ptr));</div><div class='del'>-static inline int</div><div class='del'>-is_id_value(rb_objspace_t *objspace, VALUE ptr)</div><div class='del'>-{</div><div class='del'>-    if (!is_pointer_to_heap(objspace, (void *)ptr)) return FALSE;</div><div class='del'>-    if (BUILTIN_TYPE(ptr) &gt; T_FIXNUM) return FALSE;</div><div class='del'>-    if (BUILTIN_TYPE(ptr) == T_ICLASS) return FALSE;</div><div class='del'>-    return TRUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static inline int</div><div class='del'>-heap_is_swept_object(rb_objspace_t *objspace, rb_heap_t *heap, VALUE ptr)</div><div class='add'>+is_swept_object(rb_objspace_t *objspace, VALUE ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct heap_page *page = GET_HEAP_PAGE(ptr);</div><div class='ctx'>     return page-&gt;flags.before_sweep ? FALSE : TRUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static inline int</div><div class='del'>-is_swept_object(rb_objspace_t *objspace, VALUE ptr)</div><div class='del'>-{</div><div class='del'>-    if (heap_is_swept_object(objspace, heap_eden, ptr)) {</div><div class='del'>-	return TRUE;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	return FALSE;</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /* garbage objects will be collected soon. */</div><div class='ctx'> static inline int</div><div class='ctx'> is_garbage_object(rb_objspace_t *objspace, VALUE ptr)</div><div class='ctx'> {</div><div class='del'>-    if (!is_lazy_sweeping(heap_eden) ||</div><div class='del'>-	is_swept_object(objspace, ptr) ||</div><div class='del'>-	MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(ptr), ptr)) {</div><div class='add'>+    if (!is_lazy_sweeping(objspace) ||</div><div class='add'>+        is_swept_object(objspace, ptr) ||</div><div class='add'>+        MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(ptr), ptr)) {</div><div class='ctx'> </div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3138,15 +4615,18 @@ is_live_object(rb_objspace_t *objspace, VALUE ptr)</div><div class='ctx'> {</div><div class='ctx'>     switch (BUILTIN_TYPE(ptr)) {</div><div class='ctx'>       case T_NONE:</div><div class='add'>+      case T_MOVED:</div><div class='ctx'>       case T_ZOMBIE:</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='add'>+      default:</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!is_garbage_object(objspace, ptr)) {</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3172,6 +4652,18 @@ rb_objspace_garbage_object_p(VALUE obj)</div><div class='ctx'>     return is_garbage_object(objspace, obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+id2ref_obj_tbl(rb_objspace_t *objspace, VALUE objid)</div><div class='add'>+{</div><div class='add'>+    VALUE orig;</div><div class='add'>+    if (st_lookup(objspace-&gt;id_to_obj_tbl, objid, &amp;orig)) {</div><div class='add'>+        return orig;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return Qundef;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ObjectSpace._id2ref(object_id) -&gt; an_object</div><div class='hunk'>@@ -3183,10 +4675,12 @@ rb_objspace_garbage_object_p(VALUE obj)</div><div class='ctx'>  *     r = ObjectSpace._id2ref(s.object_id)   #=&gt; "I am a string"</div><div class='ctx'>  *     r == s                                 #=&gt; true</div><div class='ctx'>  *</div><div class='add'>+ *  On multi-ractor mode, if the object is not shareable, it raises</div><div class='add'>+ *  RangeError.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-id2ref(VALUE obj, VALUE objid)</div><div class='add'>+id2ref(VALUE objid)</div><div class='ctx'> {</div><div class='ctx'> #if SIZEOF_LONG == SIZEOF_VOIDP</div><div class='ctx'> #define NUM2PTR(x) NUM2ULONG(x)</div><div class='hunk'>@@ -3195,35 +4689,112 @@ id2ref(VALUE obj, VALUE objid)</div><div class='ctx'> #endif</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'>     VALUE ptr;</div><div class='add'>+    VALUE orig;</div><div class='ctx'>     void *p0;</div><div class='ctx'> </div><div class='del'>-    ptr = NUM2PTR(objid);</div><div class='del'>-    p0 = (void *)ptr;</div><div class='add'>+    objid = rb_to_int(objid);</div><div class='add'>+    if (FIXNUM_P(objid) || rb_big_size(objid) &lt;= SIZEOF_VOIDP) {</div><div class='add'>+        ptr = NUM2PTR(objid);</div><div class='add'>+        if (ptr == Qtrue) return Qtrue;</div><div class='add'>+        if (ptr == Qfalse) return Qfalse;</div><div class='add'>+        if (NIL_P(ptr)) return Qnil;</div><div class='add'>+        if (FIXNUM_P(ptr)) return (VALUE)ptr;</div><div class='add'>+        if (FLONUM_P(ptr)) return (VALUE)ptr;</div><div class='add'>+</div><div class='add'>+        ptr = obj_id_to_ref(objid);</div><div class='add'>+        if ((ptr % sizeof(RVALUE)) == (4 &lt;&lt; 2)) {</div><div class='add'>+            ID symid = ptr / sizeof(RVALUE);</div><div class='add'>+            p0 = (void *)ptr;</div><div class='add'>+            if (!rb_static_id_valid_p(symid))</div><div class='add'>+                rb_raise(rb_eRangeError, "%p is not symbol id value", p0);</div><div class='add'>+            return ID2SYM(symid);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    if (ptr == Qtrue) return Qtrue;</div><div class='del'>-    if (ptr == Qfalse) return Qfalse;</div><div class='del'>-    if (ptr == Qnil) return Qnil;</div><div class='del'>-    if (FIXNUM_P(ptr)) return (VALUE)ptr;</div><div class='del'>-    if (FLONUM_P(ptr)) return (VALUE)ptr;</div><div class='del'>-    ptr = obj_id_to_ref(objid);</div><div class='add'>+    if (!UNDEF_P(orig = id2ref_obj_tbl(objspace, objid)) &amp;&amp;</div><div class='add'>+        is_live_object(objspace, orig)) {</div><div class='ctx'> </div><div class='del'>-    if ((ptr % sizeof(RVALUE)) == (4 &lt;&lt; 2)) {</div><div class='del'>-        ID symid = ptr / sizeof(RVALUE);</div><div class='del'>-        if (rb_id2str(symid) == 0)</div><div class='del'>-	    rb_raise(rb_eRangeError, "%p is not symbol id value", p0);</div><div class='del'>-	return ID2SYM(symid);</div><div class='add'>+        if (!rb_multi_ractor_p() || rb_ractor_shareable_p(orig)) {</div><div class='add'>+            return orig;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_raise(rb_eRangeError, "%+"PRIsVALUE" is id of the unshareable object on multi-ractor", rb_int2str(objid, 10));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (!is_id_value(objspace, ptr)) {</div><div class='del'>-	rb_raise(rb_eRangeError, "%p is not id value", p0);</div><div class='add'>+    if (rb_int_ge(objid, objspace-&gt;next_object_id)) {</div><div class='add'>+        rb_raise(rb_eRangeError, "%+"PRIsVALUE" is not id value", rb_int2str(objid, 10));</div><div class='ctx'>     }</div><div class='del'>-    if (!is_live_object(objspace, ptr)) {</div><div class='del'>-	rb_raise(rb_eRangeError, "%p is recycled object", p0);</div><div class='add'>+    else {</div><div class='add'>+        rb_raise(rb_eRangeError, "%+"PRIsVALUE" is recycled object", rb_int2str(objid, 10));</div><div class='ctx'>     }</div><div class='del'>-    if (RBASIC(ptr)-&gt;klass == 0) {</div><div class='del'>-	rb_raise(rb_eRangeError, "%p is internal object", p0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+static VALUE</div><div class='add'>+os_id2ref(VALUE os, VALUE objid)</div><div class='add'>+{</div><div class='add'>+    return id2ref(objid);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_find_object_id(VALUE obj, VALUE (*get_heap_object_id)(VALUE))</div><div class='add'>+{</div><div class='add'>+    if (STATIC_SYM_P(obj)) {</div><div class='add'>+        return (SYM2ID(obj) * sizeof(RVALUE) + (4 &lt;&lt; 2)) | FIXNUM_FLAG;</div><div class='ctx'>     }</div><div class='del'>-    return (VALUE)ptr;</div><div class='add'>+    else if (FLONUM_P(obj)) {</div><div class='add'>+#if SIZEOF_LONG == SIZEOF_VOIDP</div><div class='add'>+        return LONG2NUM((SIGNED_VALUE)obj);</div><div class='add'>+#else</div><div class='add'>+        return LL2NUM((SIGNED_VALUE)obj);</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    else if (SPECIAL_CONST_P(obj)) {</div><div class='add'>+        return LONG2NUM((SIGNED_VALUE)obj);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return get_heap_object_id(obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+cached_object_id(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE id;</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+</div><div class='add'>+    RB_VM_LOCK_ENTER();</div><div class='add'>+    if (st_lookup(objspace-&gt;obj_to_id_tbl, (st_data_t)obj, &amp;id)) {</div><div class='add'>+        GC_ASSERT(FL_TEST(obj, FL_SEEN_OBJ_ID));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        GC_ASSERT(!FL_TEST(obj, FL_SEEN_OBJ_ID));</div><div class='add'>+</div><div class='add'>+        id = objspace-&gt;next_object_id;</div><div class='add'>+        objspace-&gt;next_object_id = rb_int_plus(id, INT2FIX(OBJ_ID_INCREMENT));</div><div class='add'>+</div><div class='add'>+        VALUE already_disabled = rb_gc_disable_no_rest();</div><div class='add'>+        st_insert(objspace-&gt;obj_to_id_tbl, (st_data_t)obj, (st_data_t)id);</div><div class='add'>+        st_insert(objspace-&gt;id_to_obj_tbl, (st_data_t)id, (st_data_t)obj);</div><div class='add'>+        if (already_disabled == Qfalse) rb_objspace_gc_enable(objspace);</div><div class='add'>+        FL_SET(obj, FL_SEEN_OBJ_ID);</div><div class='add'>+    }</div><div class='add'>+    RB_VM_LOCK_LEAVE();</div><div class='add'>+</div><div class='add'>+    return id;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+nonspecial_obj_id_(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return nonspecial_obj_id(obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_memory_id(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return rb_find_object_id(obj, nonspecial_obj_id_);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -3242,6 +4813,8 @@ id2ref(VALUE obj, VALUE objid)</div><div class='ctx'>  *  Note: that some objects of builtin classes are reused for optimization.</div><div class='ctx'>  *  This is the case for immediate values and frozen string literals.</div><div class='ctx'>  *</div><div class='add'>+ *  BasicObject implements +__id__+, Kernel implements +object_id+.</div><div class='add'>+ *</div><div class='ctx'>  *  Immediate values are not passed by reference but are passed by value:</div><div class='ctx'>  *  +nil+, +true+, +false+, Fixnums, Symbols, and some Floats.</div><div class='ctx'>  *</div><div class='hunk'>@@ -3282,23 +4855,27 @@ rb_obj_id(VALUE obj)</div><div class='ctx'>      *  24 if 32-bit, double is 8-byte aligned</div><div class='ctx'>      *  40 if 64-bit</div><div class='ctx'>      */</div><div class='del'>-    if (STATIC_SYM_P(obj)) {</div><div class='del'>-        return (SYM2ID(obj) * sizeof(RVALUE) + (4 &lt;&lt; 2)) | FIXNUM_FLAG;</div><div class='del'>-    }</div><div class='del'>-    else if (FLONUM_P(obj)) {</div><div class='del'>-#if SIZEOF_LONG == SIZEOF_VOIDP</div><div class='del'>-	return LONG2NUM((SIGNED_VALUE)obj);</div><div class='del'>-#else</div><div class='del'>-	return LL2NUM((SIGNED_VALUE)obj);</div><div class='del'>-#endif</div><div class='del'>-    }</div><div class='del'>-    else if (SPECIAL_CONST_P(obj)) {</div><div class='del'>-	return LONG2NUM((SIGNED_VALUE)obj);</div><div class='del'>-    }</div><div class='del'>-    return nonspecial_obj_id(obj);</div><div class='add'>+</div><div class='add'>+    return rb_find_object_id(obj, cached_object_id);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#include "regint.h"</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+cc_table_memsize_i(VALUE ccs_ptr, void *data_ptr)</div><div class='add'>+{</div><div class='add'>+    size_t *total_size = data_ptr;</div><div class='add'>+    struct rb_class_cc_entries *ccs = (struct rb_class_cc_entries *)ccs_ptr;</div><div class='add'>+    *total_size += sizeof(*ccs);</div><div class='add'>+    *total_size += sizeof(ccs-&gt;entries[0]) * ccs-&gt;capa;</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+cc_table_memsize(struct rb_id_table *cc_table)</div><div class='add'>+{</div><div class='add'>+    size_t total = rb_id_table_memsize(cc_table);</div><div class='add'>+    rb_id_table_foreach_values(cc_table, cc_table_memsize_i, &amp;total);</div><div class='add'>+    return total;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static size_t</div><div class='ctx'> obj_memsize_of(VALUE obj, int use_all_types)</div><div class='hunk'>@@ -3306,122 +4883,134 @@ obj_memsize_of(VALUE obj, int use_all_types)</div><div class='ctx'>     size_t size = 0;</div><div class='ctx'> </div><div class='ctx'>     if (SPECIAL_CONST_P(obj)) {</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (FL_TEST(obj, FL_EXIVAR)) {</div><div class='del'>-	size += rb_generic_ivar_memsize(obj);</div><div class='add'>+        size += rb_generic_ivar_memsize(obj);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     switch (BUILTIN_TYPE(obj)) {</div><div class='ctx'>       case T_OBJECT:</div><div class='del'>-	if (!(RBASIC(obj)-&gt;flags &amp; ROBJECT_EMBED) &amp;&amp;</div><div class='del'>-	    ROBJECT(obj)-&gt;as.heap.ivptr) {</div><div class='del'>-	    size += ROBJECT(obj)-&gt;as.heap.numiv * sizeof(VALUE);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (rb_shape_obj_too_complex(obj)) {</div><div class='add'>+            size += rb_st_memsize(ROBJECT_IV_HASH(obj));</div><div class='add'>+        }</div><div class='add'>+        else if (!(RBASIC(obj)-&gt;flags &amp; ROBJECT_EMBED)) {</div><div class='add'>+            size += ROBJECT_IV_CAPACITY(obj) * sizeof(VALUE);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case T_MODULE:</div><div class='ctx'>       case T_CLASS:</div><div class='del'>-	if (RCLASS_M_TBL(obj)) {</div><div class='del'>-	    size += rb_id_table_memsize(RCLASS_M_TBL(obj));</div><div class='del'>-	}</div><div class='del'>-	if (RCLASS_EXT(obj)) {</div><div class='del'>-	    if (RCLASS_IV_TBL(obj)) {</div><div class='del'>-		size += st_memsize(RCLASS_IV_TBL(obj));</div><div class='del'>-	    }</div><div class='del'>-	    if (RCLASS_IV_INDEX_TBL(obj)) {</div><div class='del'>-		size += st_memsize(RCLASS_IV_INDEX_TBL(obj));</div><div class='del'>-	    }</div><div class='del'>-	    if (RCLASS(obj)-&gt;ptr-&gt;iv_tbl) {</div><div class='del'>-		size += st_memsize(RCLASS(obj)-&gt;ptr-&gt;iv_tbl);</div><div class='del'>-	    }</div><div class='del'>-	    if (RCLASS(obj)-&gt;ptr-&gt;const_tbl) {</div><div class='del'>-		size += rb_id_table_memsize(RCLASS(obj)-&gt;ptr-&gt;const_tbl);</div><div class='del'>-	    }</div><div class='del'>-	    size += sizeof(rb_classext_t);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (RCLASS_EXT(obj)) {</div><div class='add'>+            if (RCLASS_M_TBL(obj)) {</div><div class='add'>+                size += rb_id_table_memsize(RCLASS_M_TBL(obj));</div><div class='add'>+            }</div><div class='add'>+            // class IV sizes are allocated as powers of two</div><div class='add'>+            size += SIZEOF_VALUE &lt;&lt; bit_length(RCLASS_IV_COUNT(obj));</div><div class='add'>+            if (RCLASS_CVC_TBL(obj)) {</div><div class='add'>+                size += rb_id_table_memsize(RCLASS_CVC_TBL(obj));</div><div class='add'>+            }</div><div class='add'>+            if (RCLASS_EXT(obj)-&gt;const_tbl) {</div><div class='add'>+                size += rb_id_table_memsize(RCLASS_EXT(obj)-&gt;const_tbl);</div><div class='add'>+            }</div><div class='add'>+            if (RCLASS_CC_TBL(obj)) {</div><div class='add'>+                size += cc_table_memsize(RCLASS_CC_TBL(obj));</div><div class='add'>+            }</div><div class='add'>+            if (FL_TEST_RAW(obj, RCLASS_SUPERCLASSES_INCLUDE_SELF)) {</div><div class='add'>+                size += (RCLASS_SUPERCLASS_DEPTH(obj) + 1) * sizeof(VALUE);</div><div class='add'>+            }</div><div class='add'>+#if SIZE_POOL_COUNT == 1</div><div class='add'>+            size += sizeof(rb_classext_t);</div><div class='add'>+#endif</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case T_ICLASS:</div><div class='del'>-	if (FL_TEST(obj, RICLASS_IS_ORIGIN)) {</div><div class='del'>-	    if (RCLASS_M_TBL(obj)) {</div><div class='del'>-		size += rb_id_table_memsize(RCLASS_M_TBL(obj));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (RICLASS_OWNS_M_TBL_P(obj)) {</div><div class='add'>+            if (RCLASS_M_TBL(obj)) {</div><div class='add'>+                size += rb_id_table_memsize(RCLASS_M_TBL(obj));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (RCLASS_EXT(obj) &amp;&amp; RCLASS_CC_TBL(obj)) {</div><div class='add'>+            size += cc_table_memsize(RCLASS_CC_TBL(obj));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case T_STRING:</div><div class='del'>-	size += rb_str_memsize(obj);</div><div class='del'>-	break;</div><div class='add'>+        size += rb_str_memsize(obj);</div><div class='add'>+        break;</div><div class='ctx'>       case T_ARRAY:</div><div class='del'>-	size += rb_ary_memsize(obj);</div><div class='del'>-	break;</div><div class='add'>+        size += rb_ary_memsize(obj);</div><div class='add'>+        break;</div><div class='ctx'>       case T_HASH:</div><div class='ctx'>         if (RHASH_AR_TABLE_P(obj)) {</div><div class='del'>-            size += sizeof(ar_table);</div><div class='del'>-	}</div><div class='add'>+            if (RHASH_AR_TABLE(obj) != NULL) {</div><div class='add'>+                size_t rb_hash_ar_table_size(void);</div><div class='add'>+                size += rb_hash_ar_table_size();</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>         else {</div><div class='ctx'>             VM_ASSERT(RHASH_ST_TABLE(obj) != NULL);</div><div class='ctx'>             size += st_memsize(RHASH_ST_TABLE(obj));</div><div class='ctx'>         }</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>       case T_REGEXP:</div><div class='del'>-	if (RREGEXP_PTR(obj)) {</div><div class='del'>-	    size += onig_memsize(RREGEXP_PTR(obj));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (RREGEXP_PTR(obj)) {</div><div class='add'>+            size += onig_memsize(RREGEXP_PTR(obj));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case T_DATA:</div><div class='del'>-	if (use_all_types) size += rb_objspace_data_type_memsize(obj);</div><div class='del'>-	break;</div><div class='add'>+        if (use_all_types) size += rb_objspace_data_type_memsize(obj);</div><div class='add'>+        break;</div><div class='ctx'>       case T_MATCH:</div><div class='del'>-	if (RMATCH(obj)-&gt;rmatch) {</div><div class='add'>+        if (RMATCH(obj)-&gt;rmatch) {</div><div class='ctx'>             struct rmatch *rm = RMATCH(obj)-&gt;rmatch;</div><div class='del'>-	    size += onig_region_memsize(&amp;rm-&gt;regs);</div><div class='del'>-	    size += sizeof(struct rmatch_offset) * rm-&gt;char_offset_num_allocated;</div><div class='del'>-	    size += sizeof(struct rmatch);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+            size += onig_region_memsize(&amp;rm-&gt;regs);</div><div class='add'>+            size += sizeof(struct rmatch_offset) * rm-&gt;char_offset_num_allocated;</div><div class='add'>+            size += sizeof(struct rmatch);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case T_FILE:</div><div class='del'>-	if (RFILE(obj)-&gt;fptr) {</div><div class='del'>-	    size += rb_io_memsize(RFILE(obj)-&gt;fptr);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (RFILE(obj)-&gt;fptr) {</div><div class='add'>+            size += rb_io_memsize(RFILE(obj)-&gt;fptr);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case T_RATIONAL:</div><div class='ctx'>       case T_COMPLEX:</div><div class='add'>+        break;</div><div class='ctx'>       case T_IMEMO:</div><div class='del'>-	if (imemo_type_p(obj, imemo_tmpbuf)) {</div><div class='del'>-	    size += RANY(obj)-&gt;as.imemo.alloc.cnt * sizeof(VALUE);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        size += imemo_memsize(obj);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_FLOAT:</div><div class='ctx'>       case T_SYMBOL:</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_BIGNUM:</div><div class='del'>-	if (!(RBASIC(obj)-&gt;flags &amp; BIGNUM_EMBED_FLAG) &amp;&amp; BIGNUM_DIGITS(obj)) {</div><div class='del'>-	    size += BIGNUM_LEN(obj) * sizeof(BDIGIT);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (!(RBASIC(obj)-&gt;flags &amp; BIGNUM_EMBED_FLAG) &amp;&amp; BIGNUM_DIGITS(obj)) {</div><div class='add'>+            size += BIGNUM_LEN(obj) * sizeof(BDIGIT);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_NODE:</div><div class='del'>-	UNEXPECTED_NODE(obj_memsize_of);</div><div class='del'>-	break;</div><div class='add'>+        UNEXPECTED_NODE(obj_memsize_of);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_STRUCT:</div><div class='del'>-	if ((RBASIC(obj)-&gt;flags &amp; RSTRUCT_EMBED_LEN_MASK) == 0 &amp;&amp;</div><div class='del'>-	    RSTRUCT(obj)-&gt;as.heap.ptr) {</div><div class='del'>-	    size += sizeof(VALUE) * RSTRUCT_LEN(obj);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if ((RBASIC(obj)-&gt;flags &amp; RSTRUCT_EMBED_LEN_MASK) == 0 &amp;&amp;</div><div class='add'>+            RSTRUCT(obj)-&gt;as.heap.ptr) {</div><div class='add'>+            size += sizeof(VALUE) * RSTRUCT_LEN(obj);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_ZOMBIE:</div><div class='del'>-	break;</div><div class='add'>+      case T_MOVED:</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	rb_bug("objspace/memsize_of(): unknown data type 0x%x(%p)",</div><div class='del'>-	       BUILTIN_TYPE(obj), (void*)obj);</div><div class='add'>+        rb_bug("objspace/memsize_of(): unknown data type 0x%x(%p)",</div><div class='add'>+               BUILTIN_TYPE(obj), (void*)obj);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return size + sizeof(RVALUE);</div><div class='add'>+    return size + rb_gc_obj_slot_size(obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> size_t</div><div class='hunk'>@@ -3439,6 +5028,43 @@ set_zero(st_data_t key, st_data_t val, st_data_t arg)</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+type_sym(size_t type)</div><div class='add'>+{</div><div class='add'>+    switch (type) {</div><div class='add'>+#define COUNT_TYPE(t) case (t): return ID2SYM(rb_intern(#t)); break;</div><div class='add'>+        COUNT_TYPE(T_NONE);</div><div class='add'>+        COUNT_TYPE(T_OBJECT);</div><div class='add'>+        COUNT_TYPE(T_CLASS);</div><div class='add'>+        COUNT_TYPE(T_MODULE);</div><div class='add'>+        COUNT_TYPE(T_FLOAT);</div><div class='add'>+        COUNT_TYPE(T_STRING);</div><div class='add'>+        COUNT_TYPE(T_REGEXP);</div><div class='add'>+        COUNT_TYPE(T_ARRAY);</div><div class='add'>+        COUNT_TYPE(T_HASH);</div><div class='add'>+        COUNT_TYPE(T_STRUCT);</div><div class='add'>+        COUNT_TYPE(T_BIGNUM);</div><div class='add'>+        COUNT_TYPE(T_FILE);</div><div class='add'>+        COUNT_TYPE(T_DATA);</div><div class='add'>+        COUNT_TYPE(T_MATCH);</div><div class='add'>+        COUNT_TYPE(T_COMPLEX);</div><div class='add'>+        COUNT_TYPE(T_RATIONAL);</div><div class='add'>+        COUNT_TYPE(T_NIL);</div><div class='add'>+        COUNT_TYPE(T_TRUE);</div><div class='add'>+        COUNT_TYPE(T_FALSE);</div><div class='add'>+        COUNT_TYPE(T_SYMBOL);</div><div class='add'>+        COUNT_TYPE(T_FIXNUM);</div><div class='add'>+        COUNT_TYPE(T_IMEMO);</div><div class='add'>+        COUNT_TYPE(T_UNDEF);</div><div class='add'>+        COUNT_TYPE(T_NODE);</div><div class='add'>+        COUNT_TYPE(T_ICLASS);</div><div class='add'>+        COUNT_TYPE(T_ZOMBIE);</div><div class='add'>+        COUNT_TYPE(T_MOVED);</div><div class='add'>+#undef COUNT_TYPE</div><div class='add'>+        default:              return SIZET2NUM(type); break;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ObjectSpace.count_objects([result_hash]) -&gt; hash</div><div class='hunk'>@@ -3495,22 +5121,31 @@ count_objects(int argc, VALUE *argv, VALUE os)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; heap_allocated_pages; i++) {</div><div class='del'>-	struct heap_page *page = heap_pages_sorted[i];</div><div class='del'>-	RVALUE *p, *pend;</div><div class='del'>-</div><div class='del'>-	p = page-&gt;start; pend = p + page-&gt;total_slots;</div><div class='del'>-	for (;p &lt; pend; p++) {</div><div class='del'>-	    if (p-&gt;as.basic.flags) {</div><div class='del'>-		counts[BUILTIN_TYPE(p)]++;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		freed++;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	total += page-&gt;total_slots;</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (hash == Qnil) {</div><div class='add'>+        struct heap_page *page = heap_pages_sorted[i];</div><div class='add'>+        short stride = page-&gt;slot_size;</div><div class='add'>+</div><div class='add'>+        uintptr_t p = (uintptr_t)page-&gt;start;</div><div class='add'>+        uintptr_t pend = p + page-&gt;total_slots * stride;</div><div class='add'>+        for (;p &lt; pend; p += stride) {</div><div class='add'>+            VALUE vp = (VALUE)p;</div><div class='add'>+            GC_ASSERT((NUM_IN_PAGE(vp) * BASE_SLOT_SIZE) % page-&gt;slot_size == 0);</div><div class='add'>+</div><div class='add'>+            void *poisoned = asan_unpoison_object_temporary(vp);</div><div class='add'>+            if (RANY(p)-&gt;as.basic.flags) {</div><div class='add'>+                counts[BUILTIN_TYPE(vp)]++;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                freed++;</div><div class='add'>+            }</div><div class='add'>+            if (poisoned) {</div><div class='add'>+                GC_ASSERT(BUILTIN_TYPE(vp) == T_NONE);</div><div class='add'>+                asan_poison_object(vp);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        total += page-&gt;total_slots;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (NIL_P(hash)) {</div><div class='ctx'>         hash = rb_hash_new();</div><div class='ctx'>     }</div><div class='ctx'>     else if (!RHASH_EMPTY_P(hash)) {</div><div class='hunk'>@@ -3520,37 +5155,7 @@ count_objects(int argc, VALUE *argv, VALUE os)</div><div class='ctx'>     rb_hash_aset(hash, ID2SYM(rb_intern("FREE")), SIZET2NUM(freed));</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt;= T_MASK; i++) {</div><div class='del'>-        VALUE type;</div><div class='del'>-        switch (i) {</div><div class='del'>-#define COUNT_TYPE(t) case (t): type = ID2SYM(rb_intern(#t)); break;</div><div class='del'>-	    COUNT_TYPE(T_NONE);</div><div class='del'>-	    COUNT_TYPE(T_OBJECT);</div><div class='del'>-	    COUNT_TYPE(T_CLASS);</div><div class='del'>-	    COUNT_TYPE(T_MODULE);</div><div class='del'>-	    COUNT_TYPE(T_FLOAT);</div><div class='del'>-	    COUNT_TYPE(T_STRING);</div><div class='del'>-	    COUNT_TYPE(T_REGEXP);</div><div class='del'>-	    COUNT_TYPE(T_ARRAY);</div><div class='del'>-	    COUNT_TYPE(T_HASH);</div><div class='del'>-	    COUNT_TYPE(T_STRUCT);</div><div class='del'>-	    COUNT_TYPE(T_BIGNUM);</div><div class='del'>-	    COUNT_TYPE(T_FILE);</div><div class='del'>-	    COUNT_TYPE(T_DATA);</div><div class='del'>-	    COUNT_TYPE(T_MATCH);</div><div class='del'>-	    COUNT_TYPE(T_COMPLEX);</div><div class='del'>-	    COUNT_TYPE(T_RATIONAL);</div><div class='del'>-	    COUNT_TYPE(T_NIL);</div><div class='del'>-	    COUNT_TYPE(T_TRUE);</div><div class='del'>-	    COUNT_TYPE(T_FALSE);</div><div class='del'>-	    COUNT_TYPE(T_SYMBOL);</div><div class='del'>-	    COUNT_TYPE(T_FIXNUM);</div><div class='del'>-	    COUNT_TYPE(T_IMEMO);</div><div class='del'>-	    COUNT_TYPE(T_UNDEF);</div><div class='del'>-	    COUNT_TYPE(T_ICLASS);</div><div class='del'>-	    COUNT_TYPE(T_ZOMBIE);</div><div class='del'>-#undef COUNT_TYPE</div><div class='del'>-          default:              type = INT2NUM(i); break;</div><div class='del'>-        }</div><div class='add'>+        VALUE type = type_sym(i);</div><div class='ctx'>         if (counts[i])</div><div class='ctx'>             rb_hash_aset(hash, type, SIZET2NUM(counts[i]));</div><div class='ctx'>     }</div><div class='hunk'>@@ -3567,7 +5172,13 @@ count_objects(int argc, VALUE *argv, VALUE os)</div><div class='ctx'> static size_t</div><div class='ctx'> objspace_available_slots(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='del'>-    return heap_eden-&gt;total_slots + heap_tomb-&gt;total_slots;</div><div class='add'>+    size_t total_slots = 0;</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        total_slots += SIZE_POOL_EDEN_HEAP(size_pool)-&gt;total_slots;</div><div class='add'>+        total_slots += SIZE_POOL_TOMB_HEAP(size_pool)-&gt;total_slots;</div><div class='add'>+    }</div><div class='add'>+    return total_slots;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static size_t</div><div class='hunk'>@@ -3585,122 +5196,551 @@ objspace_free_slots(rb_objspace_t *objspace)</div><div class='ctx'> static void</div><div class='ctx'> gc_setup_mark_bits(struct heap_page *page)</div><div class='ctx'> {</div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     /* copy oldgen bitmap to mark bitmap */</div><div class='ctx'>     memcpy(&amp;page-&gt;mark_bits[0], &amp;page-&gt;uncollectible_bits[0], HEAP_PAGE_BITMAP_SIZE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int gc_is_moveable_obj(rb_objspace_t *objspace, VALUE obj);</div><div class='add'>+static VALUE gc_move(rb_objspace_t *objspace, VALUE scan, VALUE free, size_t src_slot_size, size_t slot_size);</div><div class='add'>+</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+enum {HEAP_PAGE_LOCK = PAGE_NOACCESS, HEAP_PAGE_UNLOCK = PAGE_READWRITE};</div><div class='add'>+</div><div class='add'>+static BOOL</div><div class='add'>+protect_page_body(struct heap_page_body *body, DWORD protect)</div><div class='add'>+{</div><div class='add'>+    DWORD old_protect;</div><div class='add'>+    return VirtualProtect(body, HEAP_PAGE_SIZE, protect, &amp;old_protect) != 0;</div><div class='add'>+}</div><div class='ctx'> #else</div><div class='del'>-    /* clear mark bitmap */</div><div class='del'>-    memset(&amp;page-&gt;mark_bits[0], 0, HEAP_PAGE_BITMAP_SIZE);</div><div class='add'>+enum {HEAP_PAGE_LOCK = PROT_NONE, HEAP_PAGE_UNLOCK = PROT_READ | PROT_WRITE};</div><div class='add'>+#define protect_page_body(body, protect) !mprotect((body), HEAP_PAGE_SIZE, (protect))</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+lock_page_body(rb_objspace_t *objspace, struct heap_page_body *body)</div><div class='add'>+{</div><div class='add'>+    if (!protect_page_body(body, HEAP_PAGE_LOCK)) {</div><div class='add'>+        rb_bug("Couldn't protect page %p, errno: %s", (void *)body, strerror(errno));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        gc_report(5, objspace, "Protecting page in move %p\n", (void *)body);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static inline int</div><div class='del'>-gc_page_sweep(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *sweep_page)</div><div class='add'>+static void</div><div class='add'>+unlock_page_body(rb_objspace_t *objspace, struct heap_page_body *body)</div><div class='ctx'> {</div><div class='del'>-    int i;</div><div class='del'>-    int empty_slots = 0, freed_slots = 0, final_slots = 0;</div><div class='del'>-    RVALUE *p, *pend,*offset;</div><div class='add'>+    if (!protect_page_body(body, HEAP_PAGE_UNLOCK)) {</div><div class='add'>+        rb_bug("Couldn't unprotect page %p, errno: %s", (void *)body, strerror(errno));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        gc_report(5, objspace, "Unprotecting page in move %p\n", (void *)body);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+try_move(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *free_page, VALUE src)</div><div class='add'>+{</div><div class='add'>+    GC_ASSERT(gc_is_moveable_obj(objspace, src));</div><div class='add'>+</div><div class='add'>+    struct heap_page *src_page = GET_HEAP_PAGE(src);</div><div class='add'>+    if (!free_page) {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* We should return true if either src is successfully moved, or src is</div><div class='add'>+     * unmoveable. A false return will cause the sweeping cursor to be</div><div class='add'>+     * incremented to the next page, and src will attempt to move again */</div><div class='add'>+    GC_ASSERT(MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(src), src));</div><div class='add'>+</div><div class='add'>+    asan_unlock_freelist(free_page);</div><div class='add'>+    VALUE dest = (VALUE)free_page-&gt;freelist;</div><div class='add'>+    asan_lock_freelist(free_page);</div><div class='add'>+    asan_unpoison_object(dest, false);</div><div class='add'>+    if (!dest) {</div><div class='add'>+        /* if we can't get something from the freelist then the page must be</div><div class='add'>+         * full */</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+    free_page-&gt;freelist = RANY(dest)-&gt;as.free.next;</div><div class='add'>+</div><div class='add'>+    GC_ASSERT(RB_BUILTIN_TYPE(dest) == T_NONE);</div><div class='add'>+</div><div class='add'>+    if (src_page-&gt;slot_size &gt; free_page-&gt;slot_size) {</div><div class='add'>+        objspace-&gt;rcompactor.moved_down_count_table[BUILTIN_TYPE(src)]++;</div><div class='add'>+    }</div><div class='add'>+    else if (free_page-&gt;slot_size &gt; src_page-&gt;slot_size) {</div><div class='add'>+        objspace-&gt;rcompactor.moved_up_count_table[BUILTIN_TYPE(src)]++;</div><div class='add'>+    }</div><div class='add'>+    objspace-&gt;rcompactor.moved_count_table[BUILTIN_TYPE(src)]++;</div><div class='add'>+    objspace-&gt;rcompactor.total_moved++;</div><div class='add'>+</div><div class='add'>+    gc_move(objspace, src, dest, src_page-&gt;slot_size, free_page-&gt;slot_size);</div><div class='add'>+    gc_pin(objspace, src);</div><div class='add'>+    free_page-&gt;free_slots--;</div><div class='add'>+</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_unprotect_pages(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='add'>+{</div><div class='add'>+    struct heap_page *cursor = heap-&gt;compact_cursor;</div><div class='add'>+</div><div class='add'>+    while (cursor) {</div><div class='add'>+        unlock_page_body(objspace, GET_PAGE_BODY(cursor-&gt;start));</div><div class='add'>+        cursor = ccan_list_next(&amp;heap-&gt;pages, cursor, page_node);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void gc_update_references(rb_objspace_t * objspace);</div><div class='add'>+static void invalidate_moved_page(rb_objspace_t *objspace, struct heap_page *page);</div><div class='add'>+</div><div class='add'>+#ifndef GC_CAN_COMPILE_COMPACTION</div><div class='add'>+#if defined(__wasi__) /* WebAssembly doesn't support signals */</div><div class='add'>+# define GC_CAN_COMPILE_COMPACTION 0</div><div class='add'>+#else</div><div class='add'>+# define GC_CAN_COMPILE_COMPACTION 1</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(__MINGW32__) || defined(_WIN32)</div><div class='add'>+# define GC_COMPACTION_SUPPORTED 1</div><div class='add'>+#else</div><div class='add'>+/* If not MinGW, Windows, or does not have mmap, we cannot use mprotect for</div><div class='add'>+ * the read barrier, so we must disable compaction. */</div><div class='add'>+# define GC_COMPACTION_SUPPORTED (GC_CAN_COMPILE_COMPACTION &amp;&amp; HEAP_PAGE_ALLOC_USE_MMAP)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if GC_CAN_COMPILE_COMPACTION</div><div class='add'>+static void</div><div class='add'>+read_barrier_handler(uintptr_t original_address)</div><div class='add'>+{</div><div class='add'>+    VALUE obj;</div><div class='add'>+    rb_objspace_t * objspace = &amp;rb_objspace;</div><div class='add'>+</div><div class='add'>+    /* Calculate address aligned to slots. */</div><div class='add'>+    uintptr_t address = original_address - (original_address % BASE_SLOT_SIZE);</div><div class='add'>+</div><div class='add'>+    obj = (VALUE)address;</div><div class='add'>+</div><div class='add'>+    struct heap_page_body *page_body = GET_PAGE_BODY(obj);</div><div class='add'>+</div><div class='add'>+    /* If the page_body is NULL, then mprotect cannot handle it and will crash</div><div class='add'>+     * with "Cannot allocate memory". */</div><div class='add'>+    if (page_body == NULL) {</div><div class='add'>+        rb_bug("read_barrier_handler: segmentation fault at %p", (void *)original_address);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RB_VM_LOCK_ENTER();</div><div class='add'>+    {</div><div class='add'>+        unlock_page_body(objspace, page_body);</div><div class='add'>+</div><div class='add'>+        objspace-&gt;profile.read_barrier_faults++;</div><div class='add'>+</div><div class='add'>+        invalidate_moved_page(objspace, GET_HEAP_PAGE(obj));</div><div class='add'>+    }</div><div class='add'>+    RB_VM_LOCK_LEAVE();</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !GC_CAN_COMPILE_COMPACTION</div><div class='add'>+static void</div><div class='add'>+uninstall_handlers(void)</div><div class='add'>+{</div><div class='add'>+    /* no-op */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+install_handlers(void)</div><div class='add'>+{</div><div class='add'>+    /* no-op */</div><div class='add'>+}</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+static LPTOP_LEVEL_EXCEPTION_FILTER old_handler;</div><div class='add'>+typedef void (*signal_handler)(int);</div><div class='add'>+static signal_handler old_sigsegv_handler;</div><div class='add'>+</div><div class='add'>+static LONG WINAPI</div><div class='add'>+read_barrier_signal(EXCEPTION_POINTERS * info)</div><div class='add'>+{</div><div class='add'>+    /* EXCEPTION_ACCESS_VIOLATION is what's raised by access to protected pages */</div><div class='add'>+    if (info-&gt;ExceptionRecord-&gt;ExceptionCode == EXCEPTION_ACCESS_VIOLATION) {</div><div class='add'>+        /* &gt; The second array element specifies the virtual address of the inaccessible data.</div><div class='add'>+         * https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-exception_record</div><div class='add'>+         *</div><div class='add'>+         * Use this address to invalidate the page */</div><div class='add'>+        read_barrier_handler((uintptr_t)info-&gt;ExceptionRecord-&gt;ExceptionInformation[1]);</div><div class='add'>+        return EXCEPTION_CONTINUE_EXECUTION;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return EXCEPTION_CONTINUE_SEARCH;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+uninstall_handlers(void)</div><div class='add'>+{</div><div class='add'>+    signal(SIGSEGV, old_sigsegv_handler);</div><div class='add'>+    SetUnhandledExceptionFilter(old_handler);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+install_handlers(void)</div><div class='add'>+{</div><div class='add'>+    /* Remove SEGV handler so that the Unhandled Exception Filter handles it */</div><div class='add'>+    old_sigsegv_handler = signal(SIGSEGV, NULL);</div><div class='add'>+    /* Unhandled Exception Filter has access to the violation address similar</div><div class='add'>+     * to si_addr from sigaction */</div><div class='add'>+    old_handler = SetUnhandledExceptionFilter(read_barrier_signal);</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+static struct sigaction old_sigbus_handler;</div><div class='add'>+static struct sigaction old_sigsegv_handler;</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_MACH_TASK_EXCEPTION_PORTS</div><div class='add'>+static exception_mask_t old_exception_masks[32];</div><div class='add'>+static mach_port_t old_exception_ports[32];</div><div class='add'>+static exception_behavior_t old_exception_behaviors[32];</div><div class='add'>+static thread_state_flavor_t old_exception_flavors[32];</div><div class='add'>+static mach_msg_type_number_t old_exception_count;</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+disable_mach_bad_access_exc(void)</div><div class='add'>+{</div><div class='add'>+    old_exception_count = sizeof(old_exception_masks) / sizeof(old_exception_masks[0]);</div><div class='add'>+    task_swap_exception_ports(</div><div class='add'>+        mach_task_self(), EXC_MASK_BAD_ACCESS,</div><div class='add'>+        MACH_PORT_NULL, EXCEPTION_DEFAULT, 0,</div><div class='add'>+        old_exception_masks, &amp;old_exception_count,</div><div class='add'>+        old_exception_ports, old_exception_behaviors, old_exception_flavors</div><div class='add'>+    );</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+restore_mach_bad_access_exc(void)</div><div class='add'>+{</div><div class='add'>+    for (mach_msg_type_number_t i = 0; i &lt; old_exception_count; i++) {</div><div class='add'>+        task_set_exception_ports(</div><div class='add'>+            mach_task_self(),</div><div class='add'>+            old_exception_masks[i], old_exception_ports[i],</div><div class='add'>+            old_exception_behaviors[i], old_exception_flavors[i]</div><div class='add'>+        );</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+read_barrier_signal(int sig, siginfo_t * info, void * data)</div><div class='add'>+{</div><div class='add'>+    // setup SEGV/BUS handlers for errors</div><div class='add'>+    struct sigaction prev_sigbus, prev_sigsegv;</div><div class='add'>+    sigaction(SIGBUS, &amp;old_sigbus_handler, &amp;prev_sigbus);</div><div class='add'>+    sigaction(SIGSEGV, &amp;old_sigsegv_handler, &amp;prev_sigsegv);</div><div class='add'>+</div><div class='add'>+    // enable SIGBUS/SEGV</div><div class='add'>+    sigset_t set, prev_set;</div><div class='add'>+    sigemptyset(&amp;set);</div><div class='add'>+    sigaddset(&amp;set, SIGBUS);</div><div class='add'>+    sigaddset(&amp;set, SIGSEGV);</div><div class='add'>+    sigprocmask(SIG_UNBLOCK, &amp;set, &amp;prev_set);</div><div class='add'>+#ifdef HAVE_MACH_TASK_EXCEPTION_PORTS</div><div class='add'>+    disable_mach_bad_access_exc();</div><div class='add'>+#endif</div><div class='add'>+    // run handler</div><div class='add'>+    read_barrier_handler((uintptr_t)info-&gt;si_addr);</div><div class='add'>+</div><div class='add'>+    // reset SEGV/BUS handlers</div><div class='add'>+#ifdef HAVE_MACH_TASK_EXCEPTION_PORTS</div><div class='add'>+    restore_mach_bad_access_exc();</div><div class='add'>+#endif</div><div class='add'>+    sigaction(SIGBUS, &amp;prev_sigbus, NULL);</div><div class='add'>+    sigaction(SIGSEGV, &amp;prev_sigsegv, NULL);</div><div class='add'>+    sigprocmask(SIG_SETMASK, &amp;prev_set, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+uninstall_handlers(void)</div><div class='add'>+{</div><div class='add'>+#ifdef HAVE_MACH_TASK_EXCEPTION_PORTS</div><div class='add'>+    restore_mach_bad_access_exc();</div><div class='add'>+#endif</div><div class='add'>+    sigaction(SIGBUS, &amp;old_sigbus_handler, NULL);</div><div class='add'>+    sigaction(SIGSEGV, &amp;old_sigsegv_handler, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+install_handlers(void)</div><div class='add'>+{</div><div class='add'>+    struct sigaction action;</div><div class='add'>+    memset(&amp;action, 0, sizeof(struct sigaction));</div><div class='add'>+    sigemptyset(&amp;action.sa_mask);</div><div class='add'>+    action.sa_sigaction = read_barrier_signal;</div><div class='add'>+    action.sa_flags = SA_SIGINFO | SA_ONSTACK;</div><div class='add'>+</div><div class='add'>+    sigaction(SIGBUS, &amp;action, &amp;old_sigbus_handler);</div><div class='add'>+    sigaction(SIGSEGV, &amp;action, &amp;old_sigsegv_handler);</div><div class='add'>+#ifdef HAVE_MACH_TASK_EXCEPTION_PORTS</div><div class='add'>+    disable_mach_bad_access_exc();</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+revert_stack_objects(VALUE stack_obj, void *ctx)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t * objspace = (rb_objspace_t*)ctx;</div><div class='add'>+</div><div class='add'>+    if (BUILTIN_TYPE(stack_obj) == T_MOVED) {</div><div class='add'>+        /* For now we'll revert the whole page if the object made it to the</div><div class='add'>+         * stack.  I think we can change this to move just the one object</div><div class='add'>+         * back though */</div><div class='add'>+        invalidate_moved_page(objspace, GET_HEAP_PAGE(stack_obj));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+revert_machine_stack_references(rb_objspace_t *objspace, VALUE v)</div><div class='add'>+{</div><div class='add'>+    if (is_pointer_to_heap(objspace, (void *)v)) {</div><div class='add'>+        if (BUILTIN_TYPE(v) == T_MOVED) {</div><div class='add'>+            /* For now we'll revert the whole page if the object made it to the</div><div class='add'>+             * stack.  I think we can change this to move just the one object</div><div class='add'>+             * back though */</div><div class='add'>+            invalidate_moved_page(objspace, GET_HEAP_PAGE(v));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void each_machine_stack_value(const rb_execution_context_t *ec, void (*cb)(rb_objspace_t *, VALUE));</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+check_stack_for_moved(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    rb_execution_context_t *ec = GET_EC();</div><div class='add'>+    rb_vm_t *vm = rb_ec_vm_ptr(ec);</div><div class='add'>+    rb_vm_each_stack_value(vm, revert_stack_objects, (void*)objspace);</div><div class='add'>+    each_machine_stack_value(ec, revert_machine_stack_references);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void gc_mode_transition(rb_objspace_t *objspace, enum gc_mode mode);</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_compact_finish(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        rb_heap_t *heap = SIZE_POOL_EDEN_HEAP(size_pool);</div><div class='add'>+        gc_unprotect_pages(objspace, heap);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    uninstall_handlers();</div><div class='add'>+</div><div class='add'>+    /* The mutator is allowed to run during incremental sweeping. T_MOVED</div><div class='add'>+     * objects can get pushed on the stack and when the compaction process</div><div class='add'>+     * finishes up, it may remove the read barrier before anything has a</div><div class='add'>+     * chance to read from the T_MOVED address. To fix this, we scan the stack</div><div class='add'>+     * then revert any moved objects that made it to the stack. */</div><div class='add'>+    check_stack_for_moved(objspace);</div><div class='add'>+</div><div class='add'>+    gc_update_references(objspace);</div><div class='add'>+    objspace-&gt;profile.compact_count++;</div><div class='add'>+</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        rb_heap_t *heap = SIZE_POOL_EDEN_HEAP(size_pool);</div><div class='add'>+        heap-&gt;compact_cursor = NULL;</div><div class='add'>+        heap-&gt;free_pages = NULL;</div><div class='add'>+        heap-&gt;compact_cursor_index = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (gc_prof_enabled(objspace)) {</div><div class='add'>+        gc_profile_record *record = gc_prof_record(objspace);</div><div class='add'>+        record-&gt;moved_objects = objspace-&gt;rcompactor.total_moved - record-&gt;moved_objects;</div><div class='add'>+    }</div><div class='add'>+    objspace-&gt;flags.during_compacting = FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct gc_sweep_context {</div><div class='add'>+    struct heap_page *page;</div><div class='add'>+    int final_slots;</div><div class='add'>+    int freed_slots;</div><div class='add'>+    int empty_slots;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+gc_sweep_plane(rb_objspace_t *objspace, rb_heap_t *heap, uintptr_t p, bits_t bitset, struct gc_sweep_context *ctx)</div><div class='add'>+{</div><div class='add'>+    struct heap_page * sweep_page = ctx-&gt;page;</div><div class='add'>+    short slot_size = sweep_page-&gt;slot_size;</div><div class='add'>+    short slot_bits = slot_size / BASE_SLOT_SIZE;</div><div class='add'>+    GC_ASSERT(slot_bits &gt; 0);</div><div class='add'>+</div><div class='add'>+    do {</div><div class='add'>+        VALUE vp = (VALUE)p;</div><div class='add'>+        GC_ASSERT(vp % BASE_SLOT_SIZE == 0);</div><div class='add'>+</div><div class='add'>+        asan_unpoison_object(vp, false);</div><div class='add'>+        if (bitset &amp; 1) {</div><div class='add'>+            switch (BUILTIN_TYPE(vp)) {</div><div class='add'>+                default: /* majority case */</div><div class='add'>+                    gc_report(2, objspace, "page_sweep: free %p\n", (void *)p);</div><div class='add'>+#if RGENGC_CHECK_MODE</div><div class='add'>+                    if (!is_full_marking(objspace)) {</div><div class='add'>+                        if (RVALUE_OLD_P(vp)) rb_bug("page_sweep: %p - old while minor GC.", (void *)p);</div><div class='add'>+                        if (rgengc_remembered_sweep(objspace, vp)) rb_bug("page_sweep: %p - remembered.", (void *)p);</div><div class='add'>+                    }</div><div class='add'>+#endif</div><div class='add'>+                    if (obj_free(objspace, vp)) {</div><div class='add'>+                        // always add free slots back to the swept pages freelist,</div><div class='add'>+                        // so that if we're comapacting, we can re-use the slots</div><div class='add'>+                        (void)VALGRIND_MAKE_MEM_UNDEFINED((void*)p, BASE_SLOT_SIZE);</div><div class='add'>+                        heap_page_add_freeobj(objspace, sweep_page, vp);</div><div class='add'>+                        gc_report(3, objspace, "page_sweep: %s is added to freelist\n", obj_info(vp));</div><div class='add'>+                        ctx-&gt;freed_slots++;</div><div class='add'>+                    }</div><div class='add'>+                    else {</div><div class='add'>+                        ctx-&gt;final_slots++;</div><div class='add'>+                    }</div><div class='add'>+                    break;</div><div class='add'>+</div><div class='add'>+                case T_MOVED:</div><div class='add'>+                    if (objspace-&gt;flags.during_compacting) {</div><div class='add'>+                        /* The sweep cursor shouldn't have made it to any</div><div class='add'>+                         * T_MOVED slots while the compact flag is enabled.</div><div class='add'>+                         * The sweep cursor and compact cursor move in</div><div class='add'>+                         * opposite directions, and when they meet references will</div><div class='add'>+                         * get updated and "during_compacting" should get disabled */</div><div class='add'>+                        rb_bug("T_MOVED shouldn't be seen until compaction is finished\n");</div><div class='add'>+                    }</div><div class='add'>+                    gc_report(3, objspace, "page_sweep: %s is added to freelist\n", obj_info(vp));</div><div class='add'>+                    ctx-&gt;empty_slots++;</div><div class='add'>+                    heap_page_add_freeobj(objspace, sweep_page, vp);</div><div class='add'>+                    break;</div><div class='add'>+                case T_ZOMBIE:</div><div class='add'>+                    /* already counted */</div><div class='add'>+                    break;</div><div class='add'>+                case T_NONE:</div><div class='add'>+                    ctx-&gt;empty_slots++; /* already freed */</div><div class='add'>+                    break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        p += slot_size;</div><div class='add'>+        bitset &gt;&gt;= slot_bits;</div><div class='add'>+    } while (bitset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+gc_sweep_page(rb_objspace_t *objspace, rb_heap_t *heap, struct gc_sweep_context *ctx)</div><div class='add'>+{</div><div class='add'>+    struct heap_page *sweep_page = ctx-&gt;page;</div><div class='add'>+    GC_ASSERT(SIZE_POOL_EDEN_HEAP(sweep_page-&gt;size_pool) == heap);</div><div class='add'>+</div><div class='add'>+    uintptr_t p;</div><div class='ctx'>     bits_t *bits, bitset;</div><div class='ctx'> </div><div class='ctx'>     gc_report(2, objspace, "page_sweep: start.\n");</div><div class='ctx'> </div><div class='add'>+#if RGENGC_CHECK_MODE</div><div class='add'>+    if (!objspace-&gt;flags.immediate_sweep) {</div><div class='add'>+        GC_ASSERT(sweep_page-&gt;flags.before_sweep == TRUE);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='ctx'>     sweep_page-&gt;flags.before_sweep = FALSE;</div><div class='add'>+    sweep_page-&gt;free_slots = 0;</div><div class='ctx'> </div><div class='del'>-    p = sweep_page-&gt;start; pend = p + sweep_page-&gt;total_slots;</div><div class='del'>-    offset = p - NUM_IN_PAGE(p);</div><div class='add'>+    p = (uintptr_t)sweep_page-&gt;start;</div><div class='ctx'>     bits = sweep_page-&gt;mark_bits;</div><div class='ctx'> </div><div class='del'>-    /* create guard : fill 1 out-of-range */</div><div class='del'>-    bits[BITMAP_INDEX(p)] |= BITMAP_BIT(p)-1;</div><div class='del'>-    bits[BITMAP_INDEX(pend)] |= ~(BITMAP_BIT(pend) - 1);</div><div class='del'>-</div><div class='del'>-    for (i=0; i &lt; HEAP_PAGE_BITMAP_LIMIT; i++) {</div><div class='del'>-	bitset = ~bits[i];</div><div class='del'>-	if (bitset) {</div><div class='del'>-	    p = offset  + i * BITS_BITLENGTH;</div><div class='del'>-	    do {</div><div class='del'>-                unpoison_object((VALUE)p, false);</div><div class='del'>-		if (bitset &amp; 1) {</div><div class='del'>-		    switch (BUILTIN_TYPE(p)) {</div><div class='del'>-		      default: { /* majority case */</div><div class='del'>-			  gc_report(2, objspace, "page_sweep: free %p\n", (void *)p);</div><div class='del'>-#if USE_RGENGC &amp;&amp; RGENGC_CHECK_MODE</div><div class='del'>-			  if (!is_full_marking(objspace)) {</div><div class='del'>-			      if (RVALUE_OLD_P((VALUE)p)) rb_bug("page_sweep: %p - old while minor GC.", (void *)p);</div><div class='del'>-			      if (rgengc_remembered(objspace, (VALUE)p)) rb_bug("page_sweep: %p - remembered.", (void *)p);</div><div class='del'>-			  }</div><div class='del'>-#endif</div><div class='del'>-			  if (obj_free(objspace, (VALUE)p)) {</div><div class='del'>-			      final_slots++;</div><div class='del'>-			  }</div><div class='del'>-			  else {</div><div class='del'>-			      (void)VALGRIND_MAKE_MEM_UNDEFINED((void*)p, sizeof(RVALUE));</div><div class='del'>-			      heap_page_add_freeobj(objspace, sweep_page, (VALUE)p);</div><div class='del'>-			      gc_report(3, objspace, "page_sweep: %s is added to freelist\n", obj_info((VALUE)p));</div><div class='del'>-			      freed_slots++;</div><div class='del'>-                              poison_object((VALUE)p);</div><div class='del'>-			  }</div><div class='del'>-			  break;</div><div class='del'>-		      }</div><div class='del'>-</div><div class='del'>-			/* minor cases */</div><div class='del'>-		      case T_ZOMBIE:</div><div class='del'>-			/* already counted */</div><div class='del'>-			break;</div><div class='del'>-		      case T_NONE:</div><div class='del'>-			empty_slots++; /* already freed */</div><div class='del'>-			break;</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		p++;</div><div class='del'>-		bitset &gt;&gt;= 1;</div><div class='del'>-	    } while (bitset);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    gc_setup_mark_bits(sweep_page);</div><div class='add'>+    int page_rvalue_count = sweep_page-&gt;total_slots * (sweep_page-&gt;slot_size / BASE_SLOT_SIZE);</div><div class='add'>+    int out_of_range_bits = (NUM_IN_PAGE(p) + page_rvalue_count) % BITS_BITLENGTH;</div><div class='add'>+    if (out_of_range_bits != 0) { // sizeof(RVALUE) == 64</div><div class='add'>+        bits[BITMAP_INDEX(p) + page_rvalue_count / BITS_BITLENGTH] |= ~(((bits_t)1 &lt;&lt; out_of_range_bits) - 1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* The last bitmap plane may not be used if the last plane does not</div><div class='add'>+     * have enough space for the slot_size. In that case, the last plane must</div><div class='add'>+     * be skipped since none of the bits will be set. */</div><div class='add'>+    int bitmap_plane_count = CEILDIV(NUM_IN_PAGE(p) + page_rvalue_count, BITS_BITLENGTH);</div><div class='add'>+    GC_ASSERT(bitmap_plane_count == HEAP_PAGE_BITMAP_LIMIT - 1 ||</div><div class='add'>+                  bitmap_plane_count == HEAP_PAGE_BITMAP_LIMIT);</div><div class='add'>+</div><div class='add'>+    // Skip out of range slots at the head of the page</div><div class='add'>+    bitset = ~bits[0];</div><div class='add'>+    bitset &gt;&gt;= NUM_IN_PAGE(p);</div><div class='add'>+    if (bitset) {</div><div class='add'>+        gc_sweep_plane(objspace, heap, p, bitset, ctx);</div><div class='add'>+    }</div><div class='add'>+    p += (BITS_BITLENGTH - NUM_IN_PAGE(p)) * BASE_SLOT_SIZE;</div><div class='add'>+</div><div class='add'>+    for (int i = 1; i &lt; bitmap_plane_count; i++) {</div><div class='add'>+        bitset = ~bits[i];</div><div class='add'>+        if (bitset) {</div><div class='add'>+            gc_sweep_plane(objspace, heap, p, bitset, ctx);</div><div class='add'>+        }</div><div class='add'>+        p += BITS_BITLENGTH * BASE_SLOT_SIZE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!heap-&gt;compact_cursor) {</div><div class='add'>+        gc_setup_mark_bits(sweep_page);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='ctx'>     if (gc_prof_enabled(objspace)) {</div><div class='del'>-	gc_profile_record *record = gc_prof_record(objspace);</div><div class='del'>-	record-&gt;removing_objects += final_slots + freed_slots;</div><div class='del'>-	record-&gt;empty_objects += empty_slots;</div><div class='add'>+        gc_profile_record *record = gc_prof_record(objspace);</div><div class='add'>+        record-&gt;removing_objects += ctx-&gt;final_slots + ctx-&gt;freed_slots;</div><div class='add'>+        record-&gt;empty_objects += ctx-&gt;empty_slots;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='del'>-    if (0) fprintf(stderr, "gc_page_sweep(%d): total_slots: %d, freed_slots: %d, empty_slots: %d, final_slots: %d\n",</div><div class='del'>-		   (int)rb_gc_count(),</div><div class='del'>-		   (int)sweep_page-&gt;total_slots,</div><div class='del'>-		   freed_slots, empty_slots, final_slots);</div><div class='add'>+    if (0) fprintf(stderr, "gc_sweep_page(%"PRIdSIZE"): total_slots: %d, freed_slots: %d, empty_slots: %d, final_slots: %d\n",</div><div class='add'>+                   rb_gc_count(),</div><div class='add'>+                   sweep_page-&gt;total_slots,</div><div class='add'>+                   ctx-&gt;freed_slots, ctx-&gt;empty_slots, ctx-&gt;final_slots);</div><div class='ctx'> </div><div class='del'>-    sweep_page-&gt;free_slots = freed_slots + empty_slots;</div><div class='del'>-    objspace-&gt;profile.total_freed_objects += freed_slots;</div><div class='del'>-    heap_pages_final_slots += final_slots;</div><div class='del'>-    sweep_page-&gt;final_slots += final_slots;</div><div class='add'>+    sweep_page-&gt;free_slots += ctx-&gt;freed_slots + ctx-&gt;empty_slots;</div><div class='add'>+    objspace-&gt;profile.total_freed_objects += ctx-&gt;freed_slots;</div><div class='ctx'> </div><div class='ctx'>     if (heap_pages_deferred_final &amp;&amp; !finalizing) {</div><div class='ctx'>         rb_thread_t *th = GET_THREAD();</div><div class='ctx'>         if (th) {</div><div class='del'>-	    gc_finalize_deferred_register(objspace);</div><div class='add'>+            gc_finalize_deferred_register(objspace);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    gc_report(2, objspace, "page_sweep: end.\n");</div><div class='add'>+#if RGENGC_CHECK_MODE</div><div class='add'>+    short freelist_len = 0;</div><div class='add'>+    asan_unlock_freelist(sweep_page);</div><div class='add'>+    RVALUE *ptr = sweep_page-&gt;freelist;</div><div class='add'>+    while (ptr) {</div><div class='add'>+        freelist_len++;</div><div class='add'>+        ptr = ptr-&gt;as.free.next;</div><div class='add'>+    }</div><div class='add'>+    asan_lock_freelist(sweep_page);</div><div class='add'>+    if (freelist_len != sweep_page-&gt;free_slots) {</div><div class='add'>+        rb_bug("inconsistent freelist length: expected %d but was %d", sweep_page-&gt;free_slots, freelist_len);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    return freed_slots + empty_slots;</div><div class='add'>+    gc_report(2, objspace, "page_sweep: end.\n");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if !USE_RVARGC</div><div class='ctx'> /* allocate additional minimum page to work */</div><div class='ctx'> static void</div><div class='del'>-gc_heap_prepare_minimum_pages(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='del'>-{</div><div class='del'>-    if (!heap-&gt;free_pages &amp;&amp; heap_increment(objspace, heap) == FALSE) {</div><div class='del'>-	/* there is no free after page_sweep() */</div><div class='del'>-	heap_set_increment(objspace, 1);</div><div class='del'>-	if (!heap_increment(objspace, heap)) { /* can't allocate additional free objects */</div><div class='del'>-	    rb_memerror();</div><div class='del'>-	}</div><div class='add'>+gc_heap_prepare_minimum_pages(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap)</div><div class='add'>+{</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        if (!heap-&gt;free_pages &amp;&amp; heap_increment(objspace, size_pool, heap) == FALSE) {</div><div class='add'>+            /* there is no free after page_sweep() */</div><div class='add'>+            size_pool_allocatable_pages_set(objspace, size_pool, 1);</div><div class='add'>+            if (!heap_increment(objspace, size_pool, heap)) { /* can't allocate additional free objects */</div><div class='add'>+                rb_memerror();</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> static const char *</div><div class='ctx'> gc_mode_name(enum gc_mode mode)</div><div class='hunk'>@@ -3709,6 +5749,7 @@ gc_mode_name(enum gc_mode mode)</div><div class='ctx'>       case gc_mode_none: return "none";</div><div class='ctx'>       case gc_mode_marking: return "marking";</div><div class='ctx'>       case gc_mode_sweeping: return "sweeping";</div><div class='add'>+      case gc_mode_compacting: return "compacting";</div><div class='ctx'>       default: rb_bug("gc_mode_name: unknown mode: %d", (int)mode);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -3721,7 +5762,8 @@ gc_mode_transition(rb_objspace_t *objspace, enum gc_mode mode)</div><div class='ctx'>     switch (prev_mode) {</div><div class='ctx'>       case gc_mode_none:     GC_ASSERT(mode == gc_mode_marking); break;</div><div class='ctx'>       case gc_mode_marking:  GC_ASSERT(mode == gc_mode_sweeping); break;</div><div class='del'>-      case gc_mode_sweeping: GC_ASSERT(mode == gc_mode_none); break;</div><div class='add'>+      case gc_mode_sweeping: GC_ASSERT(mode == gc_mode_none || mode == gc_mode_compacting); break;</div><div class='add'>+      case gc_mode_compacting: GC_ASSERT(mode == gc_mode_none); break;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     if (0) fprintf(stderr, "gc_mode_transition: %s-&gt;%s\n", gc_mode_name(gc_mode(objspace)), gc_mode_name(mode));</div><div class='hunk'>@@ -3729,23 +5771,44 @@ gc_mode_transition(rb_objspace_t *objspace, enum gc_mode mode)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='add'>+heap_page_freelist_append(struct heap_page *page, RVALUE *freelist)</div><div class='add'>+{</div><div class='add'>+    if (freelist) {</div><div class='add'>+        asan_unlock_freelist(page);</div><div class='add'>+        if (page-&gt;freelist) {</div><div class='add'>+            RVALUE *p = page-&gt;freelist;</div><div class='add'>+            asan_unpoison_object((VALUE)p, false);</div><div class='add'>+            while (p-&gt;as.free.next) {</div><div class='add'>+                RVALUE *prev = p;</div><div class='add'>+                p = p-&gt;as.free.next;</div><div class='add'>+                asan_poison_object((VALUE)prev);</div><div class='add'>+                asan_unpoison_object((VALUE)p, false);</div><div class='add'>+            }</div><div class='add'>+            p-&gt;as.free.next = freelist;</div><div class='add'>+            asan_poison_object((VALUE)p);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            page-&gt;freelist = freelist;</div><div class='add'>+        }</div><div class='add'>+        asan_lock_freelist(page);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='ctx'> gc_sweep_start_heap(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='del'>-    heap-&gt;sweeping_page = list_top(&amp;heap-&gt;pages, struct heap_page, page_node);</div><div class='add'>+    heap-&gt;sweeping_page = ccan_list_top(&amp;heap-&gt;pages, struct heap_page, page_node);</div><div class='ctx'>     heap-&gt;free_pages = NULL;</div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='ctx'>     heap-&gt;pooled_pages = NULL;</div><div class='del'>-    objspace-&gt;rincgc.pooled_slots = 0;</div><div class='ctx'> #endif</div><div class='del'>-    if (heap-&gt;using_page) {</div><div class='del'>-	RVALUE **p = &amp;heap-&gt;using_page-&gt;freelist;</div><div class='del'>-	while (*p) {</div><div class='del'>-	    p = &amp;(*p)-&gt;as.free.next;</div><div class='del'>-	}</div><div class='del'>-	*p = heap-&gt;freelist;</div><div class='del'>-	heap-&gt;using_page = NULL;</div><div class='add'>+    if (!objspace-&gt;flags.immediate_sweep) {</div><div class='add'>+        struct heap_page *page = NULL;</div><div class='add'>+</div><div class='add'>+        ccan_list_for_each(&amp;heap-&gt;pages, page, page_node) {</div><div class='add'>+            page-&gt;flags.before_sweep = TRUE;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    heap-&gt;freelist = NULL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if defined(__GNUC__) &amp;&amp; __GNUC__ == 4 &amp;&amp; __GNUC_MINOR__ == 4</div><div class='hunk'>@@ -3755,9 +5818,98 @@ static void</div><div class='ctx'> gc_sweep_start(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     gc_mode_transition(objspace, gc_mode_sweeping);</div><div class='del'>-    gc_sweep_start_heap(objspace, heap_eden);</div><div class='add'>+</div><div class='add'>+#if GC_ENABLE_INCREMENTAL_MARK</div><div class='add'>+    objspace-&gt;rincgc.pooled_slots = 0;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        rb_heap_t *heap = SIZE_POOL_EDEN_HEAP(size_pool);</div><div class='add'>+</div><div class='add'>+        gc_sweep_start_heap(objspace, heap);</div><div class='add'>+</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+        /* We should call gc_sweep_finish_size_pool for size pools with no pages. */</div><div class='add'>+        if (heap-&gt;sweeping_page == NULL) {</div><div class='add'>+            GC_ASSERT(heap-&gt;total_pages == 0);</div><div class='add'>+            GC_ASSERT(heap-&gt;total_slots == 0);</div><div class='add'>+            gc_sweep_finish_size_pool(objspace, size_pool);</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_ractor_t *r = NULL;</div><div class='add'>+    ccan_list_for_each(&amp;GET_VM()-&gt;ractor.set, r, vmlr_node) {</div><div class='add'>+        rb_gc_ractor_newobj_cache_clear(&amp;r-&gt;newobj_cache);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if USE_RVARGC</div><div class='add'>+static void</div><div class='add'>+gc_sweep_finish_size_pool(rb_objspace_t *objspace, rb_size_pool_t *size_pool)</div><div class='add'>+{</div><div class='add'>+    rb_heap_t *heap = SIZE_POOL_EDEN_HEAP(size_pool);</div><div class='add'>+    size_t total_slots = heap-&gt;total_slots + SIZE_POOL_TOMB_HEAP(size_pool)-&gt;total_slots;</div><div class='add'>+    size_t total_pages = heap-&gt;total_pages + SIZE_POOL_TOMB_HEAP(size_pool)-&gt;total_pages;</div><div class='add'>+    size_t swept_slots = size_pool-&gt;freed_slots + size_pool-&gt;empty_slots;</div><div class='add'>+</div><div class='add'>+    size_t min_free_slots = (size_t)(total_slots * gc_params.heap_free_slots_min_ratio);</div><div class='add'>+</div><div class='add'>+    /* If we don't have enough slots and we have pages on the tomb heap, move</div><div class='add'>+     * pages from the tomb heap to the eden heap. This may prevent page</div><div class='add'>+     * creation thrashing (frequently allocating and deallocting pages) and</div><div class='add'>+     * GC thrashing (running GC more frequently than required). */</div><div class='add'>+    struct heap_page *resurrected_page;</div><div class='add'>+    while ((swept_slots &lt; min_free_slots || swept_slots &lt; gc_params.heap_init_slots) &amp;&amp;</div><div class='add'>+            (resurrected_page = heap_page_resurrect(objspace, size_pool))) {</div><div class='add'>+        swept_slots += resurrected_page-&gt;free_slots;</div><div class='add'>+</div><div class='add'>+        heap_add_page(objspace, size_pool, heap, resurrected_page);</div><div class='add'>+        heap_add_freepage(heap, resurrected_page);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* Some size pools may have very few pages (or even no pages). These size pools</div><div class='add'>+     * should still have allocatable pages. */</div><div class='add'>+    if (min_free_slots &lt; gc_params.heap_init_slots &amp;&amp; swept_slots &lt; gc_params.heap_init_slots) {</div><div class='add'>+        int multiple = size_pool-&gt;slot_size / BASE_SLOT_SIZE;</div><div class='add'>+        size_t extra_slots = gc_params.heap_init_slots - swept_slots;</div><div class='add'>+        size_t extend_page_count = CEILDIV(extra_slots * multiple, HEAP_PAGE_OBJ_LIMIT);</div><div class='add'>+        if (extend_page_count &gt; size_pool-&gt;allocatable_pages) {</div><div class='add'>+            size_pool_allocatable_pages_set(objspace, size_pool, extend_page_count);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (swept_slots &lt; min_free_slots) {</div><div class='add'>+        bool grow_heap = is_full_marking(objspace);</div><div class='add'>+</div><div class='add'>+        if (!is_full_marking(objspace)) {</div><div class='add'>+            /* The heap is a growth heap if it freed more slots than had empty</div><div class='add'>+             * slots and used up all of its allocatable pages. */</div><div class='add'>+            bool is_growth_heap = (size_pool-&gt;empty_slots == 0 ||</div><div class='add'>+                                       size_pool-&gt;freed_slots &gt; size_pool-&gt;empty_slots) &amp;&amp;</div><div class='add'>+                                   size_pool-&gt;allocatable_pages == 0;</div><div class='add'>+</div><div class='add'>+            if (objspace-&gt;profile.count - objspace-&gt;rgengc.last_major_gc &lt; RVALUE_OLD_AGE) {</div><div class='add'>+                grow_heap = TRUE;</div><div class='add'>+            }</div><div class='add'>+            else if (is_growth_heap) { /* Only growth heaps are allowed to start a major GC. */</div><div class='add'>+                objspace-&gt;rgengc.need_major_gc |= GPR_FLAG_MAJOR_BY_NOFREE;</div><div class='add'>+                size_pool-&gt;force_major_gc_count++;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (grow_heap) {</div><div class='add'>+            size_t extend_page_count = heap_extend_pages(objspace, size_pool, swept_slots, total_slots, total_pages);</div><div class='add'>+</div><div class='add'>+            if (extend_page_count &gt; size_pool-&gt;allocatable_pages) {</div><div class='add'>+                size_pool_allocatable_pages_set(objspace, size_pool, extend_page_count);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> gc_sweep_finish(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='hunk'>@@ -3766,26 +5918,55 @@ gc_sweep_finish(rb_objspace_t *objspace)</div><div class='ctx'>     gc_prof_set_heap_info(objspace);</div><div class='ctx'>     heap_pages_free_unused_pages(objspace);</div><div class='ctx'> </div><div class='del'>-    /* if heap_pages has unused pages, then assign them to increment */</div><div class='del'>-    if (heap_allocatable_pages &lt; heap_tomb-&gt;total_pages) {</div><div class='del'>-	heap_allocatable_pages_set(objspace, heap_tomb-&gt;total_pages);</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+</div><div class='add'>+        /* if heap_pages has unused pages, then assign them to increment */</div><div class='add'>+        size_t tomb_pages = SIZE_POOL_TOMB_HEAP(size_pool)-&gt;total_pages;</div><div class='add'>+        if (size_pool-&gt;allocatable_pages &lt; tomb_pages) {</div><div class='add'>+            size_pool-&gt;allocatable_pages = tomb_pages;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+        size_pool-&gt;freed_slots = 0;</div><div class='add'>+        size_pool-&gt;empty_slots = 0;</div><div class='add'>+</div><div class='add'>+#if GC_ENABLE_INCREMENTAL_MARK</div><div class='add'>+        if (!will_be_incremental_marking(objspace)) {</div><div class='add'>+            rb_heap_t *eden_heap = SIZE_POOL_EDEN_HEAP(size_pool);</div><div class='add'>+            struct heap_page *end_page = eden_heap-&gt;free_pages;</div><div class='add'>+            if (end_page) {</div><div class='add'>+                while (end_page-&gt;free_next) end_page = end_page-&gt;free_next;</div><div class='add'>+                end_page-&gt;free_next = eden_heap-&gt;pooled_pages;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                eden_heap-&gt;free_pages = eden_heap-&gt;pooled_pages;</div><div class='add'>+            }</div><div class='add'>+            eden_heap-&gt;pooled_pages = NULL;</div><div class='add'>+            objspace-&gt;rincgc.pooled_slots = 0;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='ctx'>     }</div><div class='add'>+    heap_pages_expand_sorted(objspace);</div><div class='ctx'> </div><div class='ctx'>     gc_event_hook(objspace, RUBY_INTERNAL_EVENT_GC_END_SWEEP, 0);</div><div class='ctx'>     gc_mode_transition(objspace, gc_mode_none);</div><div class='del'>-</div><div class='del'>-#if RGENGC_CHECK_MODE &gt;= 2</div><div class='del'>-    gc_verify_internal_consistency(Qnil);</div><div class='del'>-#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-gc_sweep_step(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='add'>+gc_sweep_step(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='ctx'>     struct heap_page *sweep_page = heap-&gt;sweeping_page;</div><div class='del'>-    int unlink_limit = 3;</div><div class='add'>+    int unlink_limit = GC_SWEEP_PAGES_FREEABLE_PER_STEP;</div><div class='add'>+</div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='add'>+    int swept_slots = 0;</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    bool need_pool = TRUE;</div><div class='add'>+#else</div><div class='ctx'>     int need_pool = will_be_incremental_marking(objspace) ? TRUE : FALSE;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     gc_report(2, objspace, "gc_sweep_step (need_pool: %d)\n", need_pool);</div><div class='ctx'> #else</div><div class='hunk'>@@ -3799,41 +5980,64 @@ gc_sweep_step(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     do {</div><div class='del'>-	int free_slots = gc_page_sweep(objspace, heap, sweep_page);</div><div class='del'>-	heap-&gt;sweeping_page = list_next(&amp;heap-&gt;pages, sweep_page, page_node);</div><div class='del'>-</div><div class='del'>-	if (sweep_page-&gt;final_slots + free_slots == sweep_page-&gt;total_slots &amp;&amp;</div><div class='del'>-	    heap_pages_freeable_pages &gt; 0 &amp;&amp;</div><div class='del'>-	    unlink_limit &gt; 0) {</div><div class='del'>-	    heap_pages_freeable_pages--;</div><div class='del'>-	    unlink_limit--;</div><div class='del'>-	    /* there are no living objects -&gt; move this page to tomb heap */</div><div class='del'>-	    heap_unlink_page(objspace, heap, sweep_page);</div><div class='del'>-	    heap_add_page(objspace, heap_tomb, sweep_page);</div><div class='del'>-	}</div><div class='del'>-	else if (free_slots &gt; 0) {</div><div class='add'>+        RUBY_DEBUG_LOG("sweep_page:%p", (void *)sweep_page);</div><div class='add'>+</div><div class='add'>+        struct gc_sweep_context ctx = {</div><div class='add'>+            .page = sweep_page,</div><div class='add'>+            .final_slots = 0,</div><div class='add'>+            .freed_slots = 0,</div><div class='add'>+            .empty_slots = 0,</div><div class='add'>+        };</div><div class='add'>+        gc_sweep_page(objspace, heap, &amp;ctx);</div><div class='add'>+        int free_slots = ctx.freed_slots + ctx.empty_slots;</div><div class='add'>+</div><div class='add'>+        heap-&gt;sweeping_page = ccan_list_next(&amp;heap-&gt;pages, sweep_page, page_node);</div><div class='add'>+</div><div class='add'>+        if (sweep_page-&gt;final_slots + free_slots == sweep_page-&gt;total_slots &amp;&amp;</div><div class='add'>+            heap_pages_freeable_pages &gt; 0 &amp;&amp;</div><div class='add'>+            unlink_limit &gt; 0) {</div><div class='add'>+            heap_pages_freeable_pages--;</div><div class='add'>+            unlink_limit--;</div><div class='add'>+            /* there are no living objects -&gt; move this page to tomb heap */</div><div class='add'>+            heap_unlink_page(objspace, heap, sweep_page);</div><div class='add'>+            heap_add_page(objspace, size_pool, SIZE_POOL_TOMB_HEAP(size_pool), sweep_page);</div><div class='add'>+        }</div><div class='add'>+        else if (free_slots &gt; 0) {</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+            size_pool-&gt;freed_slots += ctx.freed_slots;</div><div class='add'>+            size_pool-&gt;empty_slots += ctx.empty_slots;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='del'>-	    if (need_pool) {</div><div class='del'>-		if (heap_add_poolpage(objspace, heap, sweep_page)) {</div><div class='del'>-		    need_pool = FALSE;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		heap_add_freepage(objspace, heap, sweep_page);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='add'>+            if (need_pool) {</div><div class='add'>+                heap_add_poolpage(objspace, heap, sweep_page);</div><div class='add'>+                need_pool = FALSE;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                heap_add_freepage(heap, sweep_page);</div><div class='add'>+                swept_slots += free_slots;</div><div class='add'>+                if (swept_slots &gt; GC_INCREMENTAL_SWEEP_SLOT_COUNT) {</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='ctx'> #else</div><div class='del'>-	    heap_add_freepage(objspace, heap, sweep_page);</div><div class='del'>-	    break;</div><div class='add'>+            heap_add_freepage(heap, sweep_page);</div><div class='add'>+            break;</div><div class='ctx'> #endif</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    sweep_page-&gt;free_next = NULL;</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            sweep_page-&gt;free_next = NULL;</div><div class='add'>+        }</div><div class='ctx'>     } while ((sweep_page = heap-&gt;sweeping_page));</div><div class='ctx'> </div><div class='ctx'>     if (!heap-&gt;sweeping_page) {</div><div class='del'>-	gc_sweep_finish(objspace);</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+        gc_sweep_finish_size_pool(objspace, size_pool);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        if (!has_sweeping_pages(objspace)) {</div><div class='add'>+            gc_sweep_finish(objspace);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> #if GC_ENABLE_LAZY_SWEEP</div><div class='hunk'>@@ -3846,29 +6050,151 @@ gc_sweep_step(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='ctx'> static void</div><div class='ctx'> gc_sweep_rest(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='del'>-    rb_heap_t *heap = heap_eden; /* lazy sweep only for eden */</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='ctx'> </div><div class='del'>-    while (has_sweeping_pages(heap)) {</div><div class='del'>-	gc_sweep_step(objspace, heap);</div><div class='add'>+        while (SIZE_POOL_EDEN_HEAP(size_pool)-&gt;sweeping_page) {</div><div class='add'>+            gc_sweep_step(objspace, size_pool, SIZE_POOL_EDEN_HEAP(size_pool));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-gc_sweep_continue(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='add'>+gc_sweep_continue(rb_objspace_t *objspace, rb_size_pool_t *sweep_size_pool, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='del'>-    GC_ASSERT(dont_gc == FALSE);</div><div class='add'>+    GC_ASSERT(dont_gc_val() == FALSE);</div><div class='ctx'>     if (!GC_ENABLE_LAZY_SWEEP) return;</div><div class='ctx'> </div><div class='del'>-    gc_enter(objspace, "sweep_continue");</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-    if (objspace-&gt;rgengc.need_major_gc == GPR_FLAG_NONE &amp;&amp; heap_increment(objspace, heap)) {</div><div class='del'>-	gc_report(3, objspace, "gc_sweep_continue: success heap_increment().\n");</div><div class='del'>-    }</div><div class='add'>+    unsigned int lock_lev;</div><div class='add'>+    gc_enter(objspace, gc_enter_event_sweep_continue, &amp;lock_lev);</div><div class='add'>+</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        if (!gc_sweep_step(objspace, size_pool, SIZE_POOL_EDEN_HEAP(size_pool))) {</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+            /* sweep_size_pool requires a free slot but sweeping did not yield any. */</div><div class='add'>+            if (size_pool == sweep_size_pool) {</div><div class='add'>+                if (size_pool-&gt;allocatable_pages &gt; 0) {</div><div class='add'>+                    heap_increment(objspace, size_pool, heap);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    /* Not allowed to create a new page so finish sweeping. */</div><div class='add'>+                    gc_sweep_rest(objspace);</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='ctx'> #endif</div><div class='del'>-    gc_sweep_step(objspace, heap);</div><div class='del'>-    gc_exit(objspace, "sweep_continue");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    gc_exit(objspace, gc_enter_event_sweep_continue, &amp;lock_lev);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+invalidate_moved_plane(rb_objspace_t *objspace, struct heap_page *page, uintptr_t p, bits_t bitset)</div><div class='add'>+{</div><div class='add'>+    if (bitset) {</div><div class='add'>+        do {</div><div class='add'>+            if (bitset &amp; 1) {</div><div class='add'>+                VALUE forwarding_object = (VALUE)p;</div><div class='add'>+                VALUE object;</div><div class='add'>+</div><div class='add'>+                if (BUILTIN_TYPE(forwarding_object) == T_MOVED) {</div><div class='add'>+                    GC_ASSERT(MARKED_IN_BITMAP(GET_HEAP_PINNED_BITS(forwarding_object), forwarding_object));</div><div class='add'>+                    GC_ASSERT(!MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(forwarding_object), forwarding_object));</div><div class='add'>+</div><div class='add'>+                    CLEAR_IN_BITMAP(GET_HEAP_PINNED_BITS(forwarding_object), forwarding_object);</div><div class='add'>+</div><div class='add'>+                    object = rb_gc_location(forwarding_object);</div><div class='add'>+</div><div class='add'>+                    shape_id_t original_shape_id = 0;</div><div class='add'>+                    if (RB_TYPE_P(object, T_OBJECT)) {</div><div class='add'>+                        original_shape_id = RMOVED(forwarding_object)-&gt;original_shape_id;</div><div class='add'>+                    }</div><div class='add'>+</div><div class='add'>+                    gc_move(objspace, object, forwarding_object, GET_HEAP_PAGE(object)-&gt;slot_size, page-&gt;slot_size);</div><div class='add'>+                    /* forwarding_object is now our actual object, and "object"</div><div class='add'>+                     * is the free slot for the original page */</div><div class='add'>+</div><div class='add'>+                    if (original_shape_id) {</div><div class='add'>+                        ROBJECT_SET_SHAPE_ID(forwarding_object, original_shape_id);</div><div class='add'>+                    }</div><div class='add'>+</div><div class='add'>+                    struct heap_page *orig_page = GET_HEAP_PAGE(object);</div><div class='add'>+                    orig_page-&gt;free_slots++;</div><div class='add'>+                    heap_page_add_freeobj(objspace, orig_page, object);</div><div class='add'>+</div><div class='add'>+                    GC_ASSERT(MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(forwarding_object), forwarding_object));</div><div class='add'>+                    GC_ASSERT(BUILTIN_TYPE(forwarding_object) != T_MOVED);</div><div class='add'>+                    GC_ASSERT(BUILTIN_TYPE(forwarding_object) != T_NONE);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            p += BASE_SLOT_SIZE;</div><div class='add'>+            bitset &gt;&gt;= 1;</div><div class='add'>+        } while (bitset);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+invalidate_moved_page(rb_objspace_t *objspace, struct heap_page *page)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    bits_t *mark_bits, *pin_bits;</div><div class='add'>+    bits_t bitset;</div><div class='add'>+</div><div class='add'>+    mark_bits = page-&gt;mark_bits;</div><div class='add'>+    pin_bits = page-&gt;pinned_bits;</div><div class='add'>+</div><div class='add'>+    uintptr_t p = page-&gt;start;</div><div class='add'>+</div><div class='add'>+    // Skip out of range slots at the head of the page</div><div class='add'>+    bitset = pin_bits[0] &amp; ~mark_bits[0];</div><div class='add'>+    bitset &gt;&gt;= NUM_IN_PAGE(p);</div><div class='add'>+    invalidate_moved_plane(objspace, page, p, bitset);</div><div class='add'>+    p += (BITS_BITLENGTH - NUM_IN_PAGE(p)) * BASE_SLOT_SIZE;</div><div class='add'>+</div><div class='add'>+    for (i=1; i &lt; HEAP_PAGE_BITMAP_LIMIT; i++) {</div><div class='add'>+        /* Moved objects are pinned but never marked. We reuse the pin bits</div><div class='add'>+         * to indicate there is a moved object in this slot. */</div><div class='add'>+        bitset = pin_bits[i] &amp; ~mark_bits[i];</div><div class='add'>+</div><div class='add'>+        invalidate_moved_plane(objspace, page, p, bitset);</div><div class='add'>+        p += BITS_BITLENGTH * BASE_SLOT_SIZE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_compact_start(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    struct heap_page *page = NULL;</div><div class='add'>+    gc_mode_transition(objspace, gc_mode_compacting);</div><div class='add'>+</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_heap_t *heap = SIZE_POOL_EDEN_HEAP(&amp;size_pools[i]);</div><div class='add'>+        ccan_list_for_each(&amp;heap-&gt;pages, page, page_node) {</div><div class='add'>+            page-&gt;flags.before_sweep = TRUE;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        heap-&gt;compact_cursor = ccan_list_tail(&amp;heap-&gt;pages, struct heap_page, page_node);</div><div class='add'>+        heap-&gt;compact_cursor_index = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (gc_prof_enabled(objspace)) {</div><div class='add'>+        gc_profile_record *record = gc_prof_record(objspace);</div><div class='add'>+        record-&gt;moved_objects = objspace-&gt;rcompactor.total_moved;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    memset(objspace-&gt;rcompactor.considered_count_table, 0, T_MASK * sizeof(size_t));</div><div class='add'>+    memset(objspace-&gt;rcompactor.moved_count_table, 0, T_MASK * sizeof(size_t));</div><div class='add'>+    memset(objspace-&gt;rcompactor.moved_up_count_table, 0, T_MASK * sizeof(size_t));</div><div class='add'>+    memset(objspace-&gt;rcompactor.moved_down_count_table, 0, T_MASK * sizeof(size_t));</div><div class='add'>+</div><div class='add'>+    /* Set up read barrier for pages containing MOVED objects */</div><div class='add'>+    install_handlers();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void gc_sweep_compact(rb_objspace_t *objspace);</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> gc_sweep(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='hunk'>@@ -3876,27 +6202,33 @@ gc_sweep(rb_objspace_t *objspace)</div><div class='ctx'> </div><div class='ctx'>     gc_report(1, objspace, "gc_sweep: immediate: %d\n", immediate_sweep);</div><div class='ctx'> </div><div class='add'>+    gc_sweep_start(objspace);</div><div class='add'>+    if (objspace-&gt;flags.during_compacting) {</div><div class='add'>+        gc_sweep_compact(objspace);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     if (immediate_sweep) {</div><div class='ctx'> #if !GC_ENABLE_LAZY_SWEEP</div><div class='del'>-	gc_prof_sweep_timer_start(objspace);</div><div class='add'>+        gc_prof_sweep_timer_start(objspace);</div><div class='ctx'> #endif</div><div class='del'>-	gc_sweep_start(objspace);</div><div class='del'>-	gc_sweep_rest(objspace);</div><div class='add'>+        gc_sweep_rest(objspace);</div><div class='ctx'> #if !GC_ENABLE_LAZY_SWEEP</div><div class='del'>-	gc_prof_sweep_timer_stop(objspace);</div><div class='add'>+        gc_prof_sweep_timer_stop(objspace);</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	struct heap_page *page = NULL;</div><div class='del'>-	gc_sweep_start(objspace);</div><div class='ctx'> </div><div class='del'>-        list_for_each(&amp;heap_eden-&gt;pages, page, page_node) {</div><div class='del'>-            page-&gt;flags.before_sweep = TRUE;</div><div class='add'>+        /* Sweep every size pool. */</div><div class='add'>+        for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+            rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+            gc_sweep_step(objspace, size_pool, SIZE_POOL_EDEN_HEAP(size_pool));</div><div class='ctx'>         }</div><div class='del'>-	gc_sweep_step(objspace, heap_eden);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    gc_heap_prepare_minimum_pages(objspace, heap_eden);</div><div class='add'>+#if !USE_RVARGC</div><div class='add'>+    rb_size_pool_t *size_pool = &amp;size_pools[0];</div><div class='add'>+    gc_heap_prepare_minimum_pages(objspace, size_pool, SIZE_POOL_EDEN_HEAP(size_pool));</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Marking - Marking stack */</div><div class='hunk'>@@ -3926,8 +6258,8 @@ mark_stack_size(mark_stack_t *stack)</div><div class='ctx'>     stack_chunk_t *chunk = stack-&gt;chunk ? stack-&gt;chunk-&gt;next : NULL;</div><div class='ctx'> </div><div class='ctx'>     while (chunk) {</div><div class='del'>-	size += stack-&gt;limit;</div><div class='del'>-	chunk = chunk-&gt;next;</div><div class='add'>+        size += stack-&gt;limit;</div><div class='add'>+        chunk = chunk-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'>     return size;</div><div class='ctx'> }</div><div class='hunk'>@@ -3989,9 +6321,8 @@ pop_mark_stack_chunk(mark_stack_t *stack)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-free_stack_chunks(mark_stack_t *stack)</div><div class='add'>+mark_stack_chunk_list_free(stack_chunk_t *chunk)</div><div class='ctx'> {</div><div class='del'>-    stack_chunk_t *chunk = stack-&gt;chunk;</div><div class='ctx'>     stack_chunk_t *next = NULL;</div><div class='ctx'> </div><div class='ctx'>     while (chunk != NULL) {</div><div class='hunk'>@@ -4002,12 +6333,68 @@ free_stack_chunks(mark_stack_t *stack)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='add'>+free_stack_chunks(mark_stack_t *stack)</div><div class='add'>+{</div><div class='add'>+    mark_stack_chunk_list_free(stack-&gt;chunk);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+mark_stack_free_cache(mark_stack_t *stack)</div><div class='add'>+{</div><div class='add'>+    mark_stack_chunk_list_free(stack-&gt;cache);</div><div class='add'>+    stack-&gt;cache_size = 0;</div><div class='add'>+    stack-&gt;unused_cache_size = 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='ctx'> push_mark_stack(mark_stack_t *stack, VALUE data)</div><div class='ctx'> {</div><div class='del'>-    if (stack-&gt;index == stack-&gt;limit) {</div><div class='del'>-        push_mark_stack_chunk(stack);</div><div class='add'>+    VALUE obj = data;</div><div class='add'>+    switch (BUILTIN_TYPE(obj)) {</div><div class='add'>+      case T_OBJECT:</div><div class='add'>+      case T_CLASS:</div><div class='add'>+      case T_MODULE:</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+      case T_STRING:</div><div class='add'>+      case T_REGEXP:</div><div class='add'>+      case T_ARRAY:</div><div class='add'>+      case T_HASH:</div><div class='add'>+      case T_STRUCT:</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+      case T_FILE:</div><div class='add'>+      case T_DATA:</div><div class='add'>+      case T_MATCH:</div><div class='add'>+      case T_COMPLEX:</div><div class='add'>+      case T_RATIONAL:</div><div class='add'>+      case T_TRUE:</div><div class='add'>+      case T_FALSE:</div><div class='add'>+      case T_SYMBOL:</div><div class='add'>+      case T_IMEMO:</div><div class='add'>+      case T_ICLASS:</div><div class='add'>+        if (stack-&gt;index == stack-&gt;limit) {</div><div class='add'>+            push_mark_stack_chunk(stack);</div><div class='add'>+        }</div><div class='add'>+        stack-&gt;chunk-&gt;data[stack-&gt;index++] = data;</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+      case T_NONE:</div><div class='add'>+      case T_NIL:</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+      case T_MOVED:</div><div class='add'>+      case T_ZOMBIE:</div><div class='add'>+      case T_UNDEF:</div><div class='add'>+      case T_MASK:</div><div class='add'>+        rb_bug("push_mark_stack() called for broken object");</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_NODE:</div><div class='add'>+        UNEXPECTED_NODE(push_mark_stack);</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='del'>-    stack-&gt;chunk-&gt;data[stack-&gt;index++] = data;</div><div class='add'>+</div><div class='add'>+    rb_bug("rb_gc_mark(): unknown data type 0x%x(%p) %s",</div><div class='add'>+            BUILTIN_TYPE(obj), (void *)data,</div><div class='add'>+            is_pointer_to_heap(&amp;rb_objspace, (void *)data) ? "corrupted object" : "non object");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -4021,40 +6408,11 @@ pop_mark_stack(mark_stack_t *stack, VALUE *data)</div><div class='ctx'>         pop_mark_stack_chunk(stack);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	*data = stack-&gt;chunk-&gt;data[--stack-&gt;index];</div><div class='add'>+        *data = stack-&gt;chunk-&gt;data[--stack-&gt;index];</div><div class='ctx'>     }</div><div class='ctx'>     return TRUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if GC_ENABLE_INCREMENTAL_MARK</div><div class='del'>-static int</div><div class='del'>-invalidate_mark_stack_chunk(stack_chunk_t *chunk, int limit, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    int i;</div><div class='del'>-    for (i=0; i&lt;limit; i++) {</div><div class='del'>-	if (chunk-&gt;data[i] == obj) {</div><div class='del'>-	    chunk-&gt;data[i] = Qundef;</div><div class='del'>-	    return TRUE;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    return FALSE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void</div><div class='del'>-invalidate_mark_stack(mark_stack_t *stack, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    stack_chunk_t *chunk = stack-&gt;chunk;</div><div class='del'>-    int limit = stack-&gt;index;</div><div class='del'>-</div><div class='del'>-    while (chunk) {</div><div class='del'>-	if (invalidate_mark_stack_chunk(chunk, limit, obj)) return;</div><div class='del'>-	chunk = chunk-&gt;next;</div><div class='del'>-	limit = stack-&gt;limit;</div><div class='del'>-    }</div><div class='del'>-    rb_bug("invalid_mark_stack: unreachable");</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> static void</div><div class='ctx'> init_mark_stack(mark_stack_t *stack)</div><div class='ctx'> {</div><div class='hunk'>@@ -4062,7 +6420,6 @@ init_mark_stack(mark_stack_t *stack)</div><div class='ctx'> </div><div class='ctx'>     MEMZERO(stack, mark_stack_t, 1);</div><div class='ctx'>     stack-&gt;index = stack-&gt;limit = STACK_CHUNK_SIZE;</div><div class='del'>-    stack-&gt;cache_size = 0;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i &lt; 4; i++) {</div><div class='ctx'>         add_stack_chunk_cache(stack, stack_chunk_alloc());</div><div class='hunk'>@@ -4072,28 +6429,19 @@ init_mark_stack(mark_stack_t *stack)</div><div class='ctx'> </div><div class='ctx'> /* Marking */</div><div class='ctx'> </div><div class='del'>-#ifdef __ia64</div><div class='del'>-#define SET_STACK_END (SET_MACHINE_STACK_END(&amp;ec-&gt;machine.stack_end), ec-&gt;machine.register_stack_end = rb_ia64_bsp())</div><div class='del'>-#else</div><div class='ctx'> #define SET_STACK_END SET_MACHINE_STACK_END(&amp;ec-&gt;machine.stack_end)</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> #define STACK_START (ec-&gt;machine.stack_start)</div><div class='ctx'> #define STACK_END (ec-&gt;machine.stack_end)</div><div class='ctx'> #define STACK_LEVEL_MAX (ec-&gt;machine.stack_maxsize/sizeof(VALUE))</div><div class='ctx'> </div><div class='del'>-#ifdef __EMSCRIPTEN__</div><div class='del'>-#undef STACK_GROW_DIRECTION</div><div class='del'>-#define STACK_GROW_DIRECTION 1</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #if STACK_GROW_DIRECTION &lt; 0</div><div class='ctx'> # define STACK_LENGTH  (size_t)(STACK_START - STACK_END)</div><div class='ctx'> #elif STACK_GROW_DIRECTION &gt; 0</div><div class='ctx'> # define STACK_LENGTH  (size_t)(STACK_END - STACK_START + 1)</div><div class='ctx'> #else</div><div class='ctx'> # define STACK_LENGTH  ((STACK_END &lt; STACK_START) ? (size_t)(STACK_START - STACK_END) \</div><div class='del'>-			: (size_t)(STACK_END - STACK_START + 1))</div><div class='add'>+                        : (size_t)(STACK_END - STACK_START + 1))</div><div class='ctx'> #endif</div><div class='ctx'> #if !STACK_GROW_DIRECTION</div><div class='ctx'> int ruby_stack_grow_direction;</div><div class='hunk'>@@ -4125,26 +6473,22 @@ ruby_stack_length(VALUE **p)</div><div class='ctx'> # define PREVENT_STACK_OVERFLOW 0</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='del'>-#if PREVENT_STACK_OVERFLOW</div><div class='add'>+#if PREVENT_STACK_OVERFLOW &amp;&amp; !defined(__EMSCRIPTEN__)</div><div class='ctx'> static int</div><div class='ctx'> stack_check(rb_execution_context_t *ec, int water_mark)</div><div class='ctx'> {</div><div class='del'>-    int ret;</div><div class='ctx'>     SET_STACK_END;</div><div class='del'>-    ret = STACK_LENGTH &gt; STACK_LEVEL_MAX - water_mark;</div><div class='del'>-#ifdef __ia64</div><div class='del'>-    if (!ret) {</div><div class='del'>-        ret = (VALUE*)rb_ia64_bsp() - ec-&gt;machine.register_stack_start &gt;</div><div class='del'>-	    ec-&gt;machine.register_stack_maxsize/sizeof(VALUE) - water_mark;</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-    return ret;</div><div class='add'>+</div><div class='add'>+    size_t length = STACK_LENGTH;</div><div class='add'>+    size_t maximum_length = STACK_LEVEL_MAX - water_mark;</div><div class='add'>+</div><div class='add'>+    return length &gt; maximum_length;</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='ctx'> #define stack_check(ec, water_mark) FALSE</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define STACKFRAME_FOR_CALL_CFUNC 838</div><div class='add'>+#define STACKFRAME_FOR_CALL_CFUNC 2048</div><div class='ctx'> </div><div class='ctx'> MJIT_FUNC_EXPORTED int</div><div class='ctx'> rb_ec_stack_check(rb_execution_context_t *ec)</div><div class='hunk'>@@ -4158,32 +6502,32 @@ ruby_stack_check(void)</div><div class='ctx'>     return stack_check(GET_EC(), STACKFRAME_FOR_CALL_CFUNC);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(static void mark_locations_array(rb_objspace_t *objspace, register const VALUE *x, register long n));</div><div class='add'>+ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(static void each_location(rb_objspace_t *objspace, register const VALUE *x, register long n, void (*cb)(rb_objspace_t *, VALUE)));</div><div class='ctx'> static void</div><div class='del'>-mark_locations_array(rb_objspace_t *objspace, register const VALUE *x, register long n)</div><div class='add'>+each_location(rb_objspace_t *objspace, register const VALUE *x, register long n, void (*cb)(rb_objspace_t *, VALUE))</div><div class='ctx'> {</div><div class='ctx'>     VALUE v;</div><div class='ctx'>     while (n--) {</div><div class='ctx'>         v = *x;</div><div class='del'>-	gc_mark_maybe(objspace, v);</div><div class='del'>-	x++;</div><div class='add'>+        cb(objspace, v);</div><div class='add'>+        x++;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-gc_mark_locations(rb_objspace_t *objspace, const VALUE *start, const VALUE *end)</div><div class='add'>+gc_mark_locations(rb_objspace_t *objspace, const VALUE *start, const VALUE *end, void (*cb)(rb_objspace_t *, VALUE))</div><div class='ctx'> {</div><div class='ctx'>     long n;</div><div class='ctx'> </div><div class='ctx'>     if (end &lt;= start) return;</div><div class='ctx'>     n = end - start;</div><div class='del'>-    mark_locations_array(objspace, start, n);</div><div class='add'>+    each_location(objspace, start, n, cb);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_gc_mark_locations(const VALUE *start, const VALUE *end)</div><div class='ctx'> {</div><div class='del'>-    gc_mark_locations(&amp;rb_objspace, start, end);</div><div class='add'>+    gc_mark_locations(&amp;rb_objspace, start, end, gc_mark_maybe);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -4192,37 +6536,75 @@ gc_mark_values(rb_objspace_t *objspace, long n, const VALUE *values)</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;n; i++) {</div><div class='del'>-	gc_mark(objspace, values[i]);</div><div class='add'>+        gc_mark(objspace, values[i]);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_gc_mark_values(long n, const VALUE *values)</div><div class='ctx'> {</div><div class='add'>+    long i;</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-    gc_mark_values(objspace, n, values);</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;n; i++) {</div><div class='add'>+        gc_mark_and_pin(objspace, values[i]);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_mark_stack_values(rb_objspace_t *objspace, long n, const VALUE *values)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;n; i++) {</div><div class='add'>+        if (is_markable_object(objspace, values[i])) {</div><div class='add'>+            gc_mark_and_pin(objspace, values[i]);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_gc_mark_vm_stack_values(long n, const VALUE *values)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    gc_mark_stack_values(objspace, n, values);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-mark_entry(st_data_t key, st_data_t value, st_data_t data)</div><div class='add'>+mark_value(st_data_t key, st_data_t value, st_data_t data)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = (rb_objspace_t *)data;</div><div class='ctx'>     gc_mark(objspace, (VALUE)value);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+mark_value_pin(st_data_t key, st_data_t value, st_data_t data)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = (rb_objspace_t *)data;</div><div class='add'>+    gc_mark_and_pin(objspace, (VALUE)value);</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+mark_tbl_no_pin(rb_objspace_t *objspace, st_table *tbl)</div><div class='add'>+{</div><div class='add'>+    if (!tbl || tbl-&gt;num_entries == 0) return;</div><div class='add'>+    st_foreach(tbl, mark_value, (st_data_t)objspace);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> mark_tbl(rb_objspace_t *objspace, st_table *tbl)</div><div class='ctx'> {</div><div class='ctx'>     if (!tbl || tbl-&gt;num_entries == 0) return;</div><div class='del'>-    st_foreach(tbl, mark_entry, (st_data_t)objspace);</div><div class='add'>+    st_foreach(tbl, mark_value_pin, (st_data_t)objspace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> mark_key(st_data_t key, st_data_t value, st_data_t data)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = (rb_objspace_t *)data;</div><div class='del'>-    gc_mark(objspace, (VALUE)key);</div><div class='add'>+    gc_mark_and_pin(objspace, (VALUE)key);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4233,6 +6615,21 @@ mark_set(rb_objspace_t *objspace, st_table *tbl)</div><div class='ctx'>     st_foreach(tbl, mark_key, (st_data_t)objspace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+pin_value(st_data_t key, st_data_t value, st_data_t data)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = (rb_objspace_t *)data;</div><div class='add'>+    gc_mark_and_pin(objspace, (VALUE)value);</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+mark_finalizer_tbl(rb_objspace_t *objspace, st_table *tbl)</div><div class='add'>+{</div><div class='add'>+    if (!tbl) return;</div><div class='add'>+    st_foreach(tbl, pin_value, (st_data_t)objspace);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> rb_mark_set(st_table *tbl)</div><div class='ctx'> {</div><div class='hunk'>@@ -4249,13 +6646,38 @@ mark_keyvalue(st_data_t key, st_data_t value, st_data_t data)</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+pin_key_pin_value(st_data_t key, st_data_t value, st_data_t data)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = (rb_objspace_t *)data;</div><div class='add'>+</div><div class='add'>+    gc_mark_and_pin(objspace, (VALUE)key);</div><div class='add'>+    gc_mark_and_pin(objspace, (VALUE)value);</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+pin_key_mark_value(st_data_t key, st_data_t value, st_data_t data)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = (rb_objspace_t *)data;</div><div class='add'>+</div><div class='add'>+    gc_mark_and_pin(objspace, (VALUE)key);</div><div class='add'>+    gc_mark(objspace, (VALUE)value);</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> mark_hash(rb_objspace_t *objspace, VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    rb_hash_stlike_foreach(hash, mark_keyvalue, (st_data_t)objspace);</div><div class='add'>+    if (rb_hash_compare_by_id_p(hash)) {</div><div class='add'>+        rb_hash_stlike_foreach(hash, pin_key_mark_value, (st_data_t)objspace);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_hash_stlike_foreach(hash, mark_keyvalue, (st_data_t)objspace);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (RHASH_AR_TABLE_P(hash)) {</div><div class='del'>-        if (objspace-&gt;mark_func_data == NULL &amp;&amp; RHASH_TRANSIENT_P(hash)) {</div><div class='add'>+        if (LIKELY(during_gc) &amp;&amp; RHASH_TRANSIENT_P(hash)) {</div><div class='ctx'>             rb_transient_heap_mark(hash, RHASH_AR_TABLE(hash));</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='hunk'>@@ -4269,7 +6691,7 @@ static void</div><div class='ctx'> mark_st(rb_objspace_t *objspace, st_table *tbl)</div><div class='ctx'> {</div><div class='ctx'>     if (!tbl) return;</div><div class='del'>-    st_foreach(tbl, mark_keyvalue, (st_data_t)objspace);</div><div class='add'>+    st_foreach(tbl, pin_key_pin_value, (st_data_t)objspace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -4287,34 +6709,40 @@ mark_method_entry(rb_objspace_t *objspace, const rb_method_entry_t *me)</div><div class='ctx'>     gc_mark(objspace, me-&gt;defined_class);</div><div class='ctx'> </div><div class='ctx'>     if (def) {</div><div class='del'>-	switch (def-&gt;type) {</div><div class='del'>-	  case VM_METHOD_TYPE_ISEQ:</div><div class='del'>-	    if (def-&gt;body.iseq.iseqptr) gc_mark(objspace, (VALUE)def-&gt;body.iseq.iseqptr);</div><div class='del'>-	    gc_mark(objspace, (VALUE)def-&gt;body.iseq.cref);</div><div class='del'>-	    break;</div><div class='del'>-	  case VM_METHOD_TYPE_ATTRSET:</div><div class='del'>-	  case VM_METHOD_TYPE_IVAR:</div><div class='del'>-	    gc_mark(objspace, def-&gt;body.attr.location);</div><div class='del'>-	    break;</div><div class='del'>-	  case VM_METHOD_TYPE_BMETHOD:</div><div class='add'>+        switch (def-&gt;type) {</div><div class='add'>+          case VM_METHOD_TYPE_ISEQ:</div><div class='add'>+            if (def-&gt;body.iseq.iseqptr) gc_mark(objspace, (VALUE)def-&gt;body.iseq.iseqptr);</div><div class='add'>+            gc_mark(objspace, (VALUE)def-&gt;body.iseq.cref);</div><div class='add'>+</div><div class='add'>+            if (def-&gt;iseq_overload &amp;&amp; me-&gt;defined_class) {</div><div class='add'>+                // it can be a key of "overloaded_cme" table</div><div class='add'>+                // so it should be pinned.</div><div class='add'>+                gc_mark_and_pin(objspace, (VALUE)me);</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+          case VM_METHOD_TYPE_ATTRSET:</div><div class='add'>+          case VM_METHOD_TYPE_IVAR:</div><div class='add'>+            gc_mark(objspace, def-&gt;body.attr.location);</div><div class='add'>+            break;</div><div class='add'>+          case VM_METHOD_TYPE_BMETHOD:</div><div class='ctx'>             gc_mark(objspace, def-&gt;body.bmethod.proc);</div><div class='ctx'>             if (def-&gt;body.bmethod.hooks) rb_hook_list_mark(def-&gt;body.bmethod.hooks);</div><div class='del'>-	    break;</div><div class='del'>-	  case VM_METHOD_TYPE_ALIAS:</div><div class='del'>-	    gc_mark(objspace, (VALUE)def-&gt;body.alias.original_me);</div><div class='del'>-	    return;</div><div class='del'>-	  case VM_METHOD_TYPE_REFINED:</div><div class='del'>-	    gc_mark(objspace, (VALUE)def-&gt;body.refined.orig_me);</div><div class='del'>-	    gc_mark(objspace, (VALUE)def-&gt;body.refined.owner);</div><div class='del'>-	    break;</div><div class='del'>-	  case VM_METHOD_TYPE_CFUNC:</div><div class='del'>-	  case VM_METHOD_TYPE_ZSUPER:</div><div class='del'>-	  case VM_METHOD_TYPE_MISSING:</div><div class='del'>-	  case VM_METHOD_TYPE_OPTIMIZED:</div><div class='del'>-	  case VM_METHOD_TYPE_UNDEF:</div><div class='del'>-	  case VM_METHOD_TYPE_NOTIMPLEMENTED:</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+            break;</div><div class='add'>+          case VM_METHOD_TYPE_ALIAS:</div><div class='add'>+            gc_mark(objspace, (VALUE)def-&gt;body.alias.original_me);</div><div class='add'>+            return;</div><div class='add'>+          case VM_METHOD_TYPE_REFINED:</div><div class='add'>+            gc_mark(objspace, (VALUE)def-&gt;body.refined.orig_me);</div><div class='add'>+            gc_mark(objspace, (VALUE)def-&gt;body.refined.owner);</div><div class='add'>+            break;</div><div class='add'>+          case VM_METHOD_TYPE_CFUNC:</div><div class='add'>+          case VM_METHOD_TYPE_ZSUPER:</div><div class='add'>+          case VM_METHOD_TYPE_MISSING:</div><div class='add'>+          case VM_METHOD_TYPE_OPTIMIZED:</div><div class='add'>+          case VM_METHOD_TYPE_UNDEF:</div><div class='add'>+          case VM_METHOD_TYPE_NOTIMPLEMENTED:</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4331,7 +6759,7 @@ static void</div><div class='ctx'> mark_m_tbl(rb_objspace_t *objspace, struct rb_id_table *tbl)</div><div class='ctx'> {</div><div class='ctx'>     if (tbl) {</div><div class='del'>-	rb_id_table_foreach_values(tbl, mark_method_entry_i, objspace);</div><div class='add'>+        rb_id_table_foreach_values(tbl, mark_method_entry_i, objspace);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4363,19 +6791,61 @@ mark_const_tbl(rb_objspace_t *objspace, struct rb_id_table *tbl)</div><div class='ctx'>      ((start) = STACK_END, (end) = STACK_START) : ((start) = STACK_START, (end) = STACK_END+(appendix)))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-static void mark_stack_locations(rb_objspace_t *objspace, const rb_execution_context_t *ec,</div><div class='del'>-				 const VALUE *stack_start, const VALUE *stack_end);</div><div class='add'>+static void each_stack_location(rb_objspace_t *objspace, const rb_execution_context_t *ec,</div><div class='add'>+                                 const VALUE *stack_start, const VALUE *stack_end, void (*cb)(rb_objspace_t *, VALUE));</div><div class='add'>+</div><div class='add'>+#if defined(__wasm__)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static VALUE *rb_stack_range_tmp[2];</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_mark_locations(void *begin, void *end)</div><div class='add'>+{</div><div class='add'>+    rb_stack_range_tmp[0] = begin;</div><div class='add'>+    rb_stack_range_tmp[1] = end;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# if defined(__EMSCRIPTEN__)</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+mark_current_machine_context(rb_objspace_t *objspace, rb_execution_context_t *ec)</div><div class='add'>+{</div><div class='add'>+    emscripten_scan_stack(rb_mark_locations);</div><div class='add'>+    each_stack_location(objspace, ec, rb_stack_range_tmp[0], rb_stack_range_tmp[1], gc_mark_maybe);</div><div class='add'>+</div><div class='add'>+    emscripten_scan_registers(rb_mark_locations);</div><div class='add'>+    each_stack_location(objspace, ec, rb_stack_range_tmp[0], rb_stack_range_tmp[1], gc_mark_maybe);</div><div class='add'>+}</div><div class='add'>+# else // use Asyncify version</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+mark_current_machine_context(rb_objspace_t *objspace, rb_execution_context_t *ec)</div><div class='add'>+{</div><div class='add'>+    VALUE *stack_start, *stack_end;</div><div class='add'>+    SET_STACK_END;</div><div class='add'>+    GET_STACK_BOUNDS(stack_start, stack_end, 1);</div><div class='add'>+    each_stack_location(objspace, ec, stack_start, stack_end, gc_mark_maybe);</div><div class='add'>+</div><div class='add'>+    rb_wasm_scan_locals(rb_mark_locations);</div><div class='add'>+    each_stack_location(objspace, ec, rb_stack_range_tmp[0], rb_stack_range_tmp[1], gc_mark_maybe);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+#else // !defined(__wasm__)</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> mark_current_machine_context(rb_objspace_t *objspace, rb_execution_context_t *ec)</div><div class='ctx'> {</div><div class='ctx'>     union {</div><div class='del'>-	rb_jmp_buf j;</div><div class='del'>-	VALUE v[sizeof(rb_jmp_buf) / sizeof(VALUE)];</div><div class='add'>+        rb_jmp_buf j;</div><div class='add'>+        VALUE v[sizeof(rb_jmp_buf) / (sizeof(VALUE))];</div><div class='ctx'>     } save_regs_gc_mark;</div><div class='ctx'>     VALUE *stack_start, *stack_end;</div><div class='ctx'> </div><div class='ctx'>     FLUSH_REGISTER_WINDOWS;</div><div class='add'>+    memset(&amp;save_regs_gc_mark, 0, sizeof(save_regs_gc_mark));</div><div class='ctx'>     /* This assumes that all registers are saved into the jmp_buf (and stack) */</div><div class='ctx'>     rb_setjmp(save_regs_gc_mark.j);</div><div class='ctx'> </div><div class='hunk'>@@ -4385,36 +6855,39 @@ mark_current_machine_context(rb_objspace_t *objspace, rb_execution_context_t *ec</div><div class='ctx'>     SET_STACK_END;</div><div class='ctx'>     GET_STACK_BOUNDS(stack_start, stack_end, 1);</div><div class='ctx'> </div><div class='del'>-    mark_locations_array(objspace, save_regs_gc_mark.v, numberof(save_regs_gc_mark.v));</div><div class='add'>+    each_location(objspace, save_regs_gc_mark.v, numberof(save_regs_gc_mark.v), gc_mark_maybe);</div><div class='ctx'> </div><div class='del'>-    mark_stack_locations(objspace, ec, stack_start, stack_end);</div><div class='add'>+    each_stack_location(objspace, ec, stack_start, stack_end, gc_mark_maybe);</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_gc_mark_machine_stack(const rb_execution_context_t *ec)</div><div class='add'>+static void</div><div class='add'>+each_machine_stack_value(const rb_execution_context_t *ec, void (*cb)(rb_objspace_t *, VALUE))</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'>     VALUE *stack_start, *stack_end;</div><div class='ctx'> </div><div class='ctx'>     GET_STACK_BOUNDS(stack_start, stack_end, 0);</div><div class='del'>-    mark_stack_locations(objspace, ec, stack_start, stack_end);</div><div class='add'>+    each_stack_location(objspace, ec, stack_start, stack_end, cb);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_gc_mark_machine_stack(const rb_execution_context_t *ec)</div><div class='add'>+{</div><div class='add'>+    each_machine_stack_value(ec, gc_mark_maybe);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-mark_stack_locations(rb_objspace_t *objspace, const rb_execution_context_t *ec,</div><div class='del'>-		     const VALUE *stack_start, const VALUE *stack_end)</div><div class='add'>+each_stack_location(rb_objspace_t *objspace, const rb_execution_context_t *ec,</div><div class='add'>+                     const VALUE *stack_start, const VALUE *stack_end, void (*cb)(rb_objspace_t *, VALUE))</div><div class='ctx'> {</div><div class='ctx'> </div><div class='del'>-    gc_mark_locations(objspace, stack_start, stack_end);</div><div class='del'>-#ifdef __ia64</div><div class='del'>-    gc_mark_locations(objspace,</div><div class='del'>-		      ec-&gt;machine.register_stack_start,</div><div class='del'>-		      ec-&gt;machine.register_stack_end);</div><div class='del'>-#endif</div><div class='add'>+    gc_mark_locations(objspace, stack_start, stack_end, cb);</div><div class='add'>+</div><div class='ctx'> #if defined(__mc68000__)</div><div class='ctx'>     gc_mark_locations(objspace,</div><div class='del'>-		      (VALUE*)((char*)stack_start + 2),</div><div class='del'>-		      (VALUE*)((char*)stack_end - 2));</div><div class='add'>+                      (VALUE*)((char*)stack_start + 2),</div><div class='add'>+                      (VALUE*)((char*)stack_end - 2), cb);</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4424,21 +6897,33 @@ rb_mark_tbl(st_table *tbl)</div><div class='ctx'>     mark_tbl(&amp;rb_objspace, tbl);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+rb_mark_tbl_no_pin(st_table *tbl)</div><div class='add'>+{</div><div class='add'>+    mark_tbl_no_pin(&amp;rb_objspace, tbl);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> gc_mark_maybe(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     (void)VALGRIND_MAKE_MEM_DEFINED(&amp;obj, sizeof(obj));</div><div class='add'>+</div><div class='ctx'>     if (is_pointer_to_heap(objspace, (void *)obj)) {</div><div class='del'>-        int type;</div><div class='del'>-        void *ptr = __asan_region_is_poisoned((void *)obj, SIZEOF_VALUE);</div><div class='del'>-</div><div class='del'>-        unpoison_object(obj, false);</div><div class='del'>-        type = BUILTIN_TYPE(obj);</div><div class='del'>-	if (type != T_ZOMBIE &amp;&amp; type != T_NONE) {</div><div class='del'>-	    gc_mark_ptr(objspace, obj);</div><div class='del'>-	}</div><div class='add'>+        void *ptr = asan_unpoison_object_temporary(obj);</div><div class='add'>+</div><div class='add'>+        /* Garbage can live on the stack, so do not mark or pin */</div><div class='add'>+        switch (BUILTIN_TYPE(obj)) {</div><div class='add'>+          case T_ZOMBIE:</div><div class='add'>+          case T_NONE:</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            gc_mark_and_pin(objspace, obj);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+</div><div class='ctx'>         if (ptr) {</div><div class='del'>-            poison_object(obj);</div><div class='add'>+            GC_ASSERT(BUILTIN_TYPE(obj) == T_NONE);</div><div class='add'>+            asan_poison_object(obj);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -4452,12 +6937,12 @@ rb_gc_mark_maybe(VALUE obj)</div><div class='ctx'> static inline int</div><div class='ctx'> gc_mark_set(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='add'>+    ASSERT_vm_locking();</div><div class='ctx'>     if (RVALUE_MARKED(obj)) return 0;</div><div class='ctx'>     MARK_IN_BITMAP(GET_HEAP_MARK_BITS(obj), obj);</div><div class='ctx'>     return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'> static int</div><div class='ctx'> gc_remember_unprotected(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -4465,61 +6950,58 @@ gc_remember_unprotected(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>     bits_t *uncollectible_bits = &amp;page-&gt;uncollectible_bits[0];</div><div class='ctx'> </div><div class='ctx'>     if (!MARKED_IN_BITMAP(uncollectible_bits, obj)) {</div><div class='del'>-	page-&gt;flags.has_uncollectible_shady_objects = TRUE;</div><div class='del'>-	MARK_IN_BITMAP(uncollectible_bits, obj);</div><div class='del'>-	objspace-&gt;rgengc.uncollectible_wb_unprotected_objects++;</div><div class='add'>+        page-&gt;flags.has_uncollectible_shady_objects = TRUE;</div><div class='add'>+        MARK_IN_BITMAP(uncollectible_bits, obj);</div><div class='add'>+        objspace-&gt;rgengc.uncollectible_wb_unprotected_objects++;</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_PROFILE &gt; 0</div><div class='del'>-	objspace-&gt;profile.total_remembered_shady_object_count++;</div><div class='add'>+        objspace-&gt;profile.total_remembered_shady_object_count++;</div><div class='ctx'> #if RGENGC_PROFILE &gt;= 2</div><div class='del'>-	objspace-&gt;profile.remembered_shady_object_count_types[BUILTIN_TYPE(obj)]++;</div><div class='add'>+        objspace-&gt;profile.remembered_shady_object_count_types[BUILTIN_TYPE(obj)]++;</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> rgengc_check_relation(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     const VALUE old_parent = objspace-&gt;rgengc.parent_object;</div><div class='ctx'> </div><div class='ctx'>     if (old_parent) { /* parent object is old */</div><div class='del'>-	if (RVALUE_WB_UNPROTECTED(obj)) {</div><div class='del'>-	    if (gc_remember_unprotected(objspace, obj)) {</div><div class='del'>-		gc_report(2, objspace, "relation: (O-&gt;S) %s -&gt; %s\n", obj_info(old_parent), obj_info(obj));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (!RVALUE_OLD_P(obj)) {</div><div class='del'>-		if (RVALUE_MARKED(obj)) {</div><div class='del'>-		    /* An object pointed from an OLD object should be OLD. */</div><div class='del'>-		    gc_report(2, objspace, "relation: (O-&gt;unmarked Y) %s -&gt; %s\n", obj_info(old_parent), obj_info(obj));</div><div class='del'>-		    RVALUE_AGE_SET_OLD(objspace, obj);</div><div class='del'>-		    if (is_incremental_marking(objspace)) {</div><div class='del'>-			if (!RVALUE_MARKING(obj)) {</div><div class='del'>-			    gc_grey(objspace, obj);</div><div class='del'>-			}</div><div class='del'>-		    }</div><div class='del'>-		    else {</div><div class='del'>-			rgengc_remember(objspace, obj);</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    gc_report(2, objspace, "relation: (O-&gt;Y) %s -&gt; %s\n", obj_info(old_parent), obj_info(obj));</div><div class='del'>-		    RVALUE_AGE_SET_CANDIDATE(objspace, obj);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        if (RVALUE_WB_UNPROTECTED(obj)) {</div><div class='add'>+            if (gc_remember_unprotected(objspace, obj)) {</div><div class='add'>+                gc_report(2, objspace, "relation: (O-&gt;S) %s -&gt; %s\n", obj_info(old_parent), obj_info(obj));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (!RVALUE_OLD_P(obj)) {</div><div class='add'>+                if (RVALUE_MARKED(obj)) {</div><div class='add'>+                    /* An object pointed from an OLD object should be OLD. */</div><div class='add'>+                    gc_report(2, objspace, "relation: (O-&gt;unmarked Y) %s -&gt; %s\n", obj_info(old_parent), obj_info(obj));</div><div class='add'>+                    RVALUE_AGE_SET_OLD(objspace, obj);</div><div class='add'>+                    if (is_incremental_marking(objspace)) {</div><div class='add'>+                        if (!RVALUE_MARKING(obj)) {</div><div class='add'>+                            gc_grey(objspace, obj);</div><div class='add'>+                        }</div><div class='add'>+                    }</div><div class='add'>+                    else {</div><div class='add'>+                        rgengc_remember(objspace, obj);</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    gc_report(2, objspace, "relation: (O-&gt;Y) %s -&gt; %s\n", obj_info(old_parent), obj_info(obj));</div><div class='add'>+                    RVALUE_AGE_SET_CANDIDATE(objspace, obj);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     GC_ASSERT(old_parent == objspace-&gt;rgengc.parent_object);</div><div class='del'>-#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -4532,7 +7014,7 @@ gc_grey(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> </div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='ctx'>     if (is_incremental_marking(objspace)) {</div><div class='del'>-	MARK_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), obj);</div><div class='add'>+        MARK_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), obj);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -4542,46 +7024,79 @@ gc_grey(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> static void</div><div class='ctx'> gc_aging(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     struct heap_page *page = GET_HEAP_PAGE(obj);</div><div class='ctx'> </div><div class='ctx'>     GC_ASSERT(RVALUE_MARKING(obj) == FALSE);</div><div class='ctx'>     check_rvalue_consistency(obj);</div><div class='ctx'> </div><div class='ctx'>     if (!RVALUE_PAGE_WB_UNPROTECTED(page, obj)) {</div><div class='del'>-	if (!RVALUE_OLD_P(obj)) {</div><div class='del'>-	    gc_report(3, objspace, "gc_aging: YOUNG: %s\n", obj_info(obj));</div><div class='del'>-	    RVALUE_AGE_INC(objspace, obj);</div><div class='del'>-	}</div><div class='del'>-	else if (is_full_marking(objspace)) {</div><div class='del'>-	    GC_ASSERT(RVALUE_PAGE_UNCOLLECTIBLE(page, obj) == FALSE);</div><div class='del'>-	    RVALUE_PAGE_OLD_UNCOLLECTIBLE_SET(objspace, page, obj);</div><div class='del'>-	}</div><div class='add'>+        if (!RVALUE_OLD_P(obj)) {</div><div class='add'>+            gc_report(3, objspace, "gc_aging: YOUNG: %s\n", obj_info(obj));</div><div class='add'>+            RVALUE_AGE_INC(objspace, obj);</div><div class='add'>+        }</div><div class='add'>+        else if (is_full_marking(objspace)) {</div><div class='add'>+            GC_ASSERT(RVALUE_PAGE_UNCOLLECTIBLE(page, obj) == FALSE);</div><div class='add'>+            RVALUE_PAGE_OLD_UNCOLLECTIBLE_SET(objspace, page, obj);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     check_rvalue_consistency(obj);</div><div class='del'>-#endif /* USE_RGENGC */</div><div class='ctx'> </div><div class='ctx'>     objspace-&gt;marked_slots++;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> NOINLINE(static void gc_mark_ptr(rb_objspace_t *objspace, VALUE obj));</div><div class='add'>+static void reachable_objects_from_callback(VALUE obj);</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> gc_mark_ptr(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    if (LIKELY(objspace-&gt;mark_func_data == NULL)) {</div><div class='del'>-        if (RB_TYPE_P(obj, T_NONE)) rb_bug("...");</div><div class='del'>-	rgengc_check_relation(objspace, obj);</div><div class='del'>-	if (!gc_mark_set(objspace, obj)) return; /* already marked */</div><div class='del'>-	gc_aging(objspace, obj);</div><div class='del'>-	gc_grey(objspace, obj);</div><div class='add'>+    if (LIKELY(during_gc)) {</div><div class='add'>+        rgengc_check_relation(objspace, obj);</div><div class='add'>+        if (!gc_mark_set(objspace, obj)) return; /* already marked */</div><div class='add'>+</div><div class='add'>+        if (0) { // for debug GC marking miss</div><div class='add'>+            if (objspace-&gt;rgengc.parent_object) {</div><div class='add'>+                RUBY_DEBUG_LOG("%p (%s) parent:%p (%s)",</div><div class='add'>+                               (void *)obj, obj_type_name(obj),</div><div class='add'>+                               (void *)objspace-&gt;rgengc.parent_object, obj_type_name(objspace-&gt;rgengc.parent_object));</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                RUBY_DEBUG_LOG("%p (%s)", (void *)obj, obj_type_name(obj));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (UNLIKELY(RB_TYPE_P(obj, T_NONE))) {</div><div class='add'>+            rp(obj);</div><div class='add'>+            rb_bug("try to mark T_NONE object"); /* check here will help debugging */</div><div class='add'>+        }</div><div class='add'>+        gc_aging(objspace, obj);</div><div class='add'>+        gc_grey(objspace, obj);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	objspace-&gt;mark_func_data-&gt;mark_func(obj, objspace-&gt;mark_func_data-&gt;data);</div><div class='add'>+        reachable_objects_from_callback(obj);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+gc_pin(rb_objspace_t *objspace, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    GC_ASSERT(is_markable_object(objspace, obj));</div><div class='add'>+    if (UNLIKELY(objspace-&gt;flags.during_compacting)) {</div><div class='add'>+        if (LIKELY(during_gc)) {</div><div class='add'>+            MARK_IN_BITMAP(GET_HEAP_PINNED_BITS(obj), obj);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='add'>+gc_mark_and_pin(rb_objspace_t *objspace, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (!is_markable_object(objspace, obj)) return;</div><div class='add'>+    gc_pin(objspace, obj);</div><div class='add'>+    gc_mark_ptr(objspace, obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='ctx'> gc_mark(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (!is_markable_object(objspace, obj)) return;</div><div class='hunk'>@@ -4589,11 +7104,17 @@ gc_mark(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_gc_mark(VALUE ptr)</div><div class='add'>+rb_gc_mark_movable(VALUE ptr)</div><div class='ctx'> {</div><div class='ctx'>     gc_mark(&amp;rb_objspace, ptr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+rb_gc_mark(VALUE ptr)</div><div class='add'>+{</div><div class='add'>+    gc_mark_and_pin(&amp;rb_objspace, ptr);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* CAUTION: THIS FUNCTION ENABLE *ONLY BEFORE* SWEEPING.</div><div class='ctx'>  * This function is only for GC_END_MARK timing.</div><div class='ctx'>  */</div><div class='hunk'>@@ -4607,14 +7128,12 @@ rb_objspace_marked_object_p(VALUE obj)</div><div class='ctx'> static inline void</div><div class='ctx'> gc_mark_set_parent(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     if (RVALUE_OLD_P(obj)) {</div><div class='del'>-	objspace-&gt;rgengc.parent_object = obj;</div><div class='add'>+        objspace-&gt;rgengc.parent_object = obj;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	objspace-&gt;rgengc.parent_object = Qfalse;</div><div class='add'>+        objspace-&gt;rgengc.parent_object = Qfalse;</div><div class='ctx'>     }</div><div class='del'>-#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -4622,64 +7141,86 @@ gc_mark_imemo(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     switch (imemo_type(obj)) {</div><div class='ctx'>       case imemo_env:</div><div class='del'>-	{</div><div class='del'>-	    const rb_env_t *env = (const rb_env_t *)obj;</div><div class='del'>-	    GC_ASSERT(VM_ENV_ESCAPED_P(env-&gt;ep));</div><div class='del'>-	    gc_mark_values(objspace, (long)env-&gt;env_size, env-&gt;env);</div><div class='del'>-	    VM_ENV_FLAGS_SET(env-&gt;ep, VM_ENV_FLAG_WB_REQUIRED);</div><div class='del'>-	    gc_mark(objspace, (VALUE)rb_vm_env_prev_env(env));</div><div class='del'>-	    gc_mark(objspace, (VALUE)env-&gt;iseq);</div><div class='del'>-	}</div><div class='del'>-	return;</div><div class='add'>+        {</div><div class='add'>+            const rb_env_t *env = (const rb_env_t *)obj;</div><div class='add'>+</div><div class='add'>+            if (LIKELY(env-&gt;ep)) {</div><div class='add'>+                // just after newobj() can be NULL here.</div><div class='add'>+                GC_ASSERT(env-&gt;ep[VM_ENV_DATA_INDEX_ENV] == obj);</div><div class='add'>+                GC_ASSERT(VM_ENV_ESCAPED_P(env-&gt;ep));</div><div class='add'>+                gc_mark_values(objspace, (long)env-&gt;env_size, env-&gt;env);</div><div class='add'>+                VM_ENV_FLAGS_SET(env-&gt;ep, VM_ENV_FLAG_WB_REQUIRED);</div><div class='add'>+                gc_mark(objspace, (VALUE)rb_vm_env_prev_env(env));</div><div class='add'>+                gc_mark(objspace, (VALUE)env-&gt;iseq);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        return;</div><div class='ctx'>       case imemo_cref:</div><div class='del'>-	gc_mark(objspace, RANY(obj)-&gt;as.imemo.cref.klass);</div><div class='del'>-	gc_mark(objspace, (VALUE)RANY(obj)-&gt;as.imemo.cref.next);</div><div class='del'>-	gc_mark(objspace, RANY(obj)-&gt;as.imemo.cref.refinements);</div><div class='del'>-	return;</div><div class='add'>+        gc_mark(objspace, RANY(obj)-&gt;as.imemo.cref.klass_or_self);</div><div class='add'>+        gc_mark(objspace, (VALUE)RANY(obj)-&gt;as.imemo.cref.next);</div><div class='add'>+        gc_mark(objspace, RANY(obj)-&gt;as.imemo.cref.refinements);</div><div class='add'>+        return;</div><div class='ctx'>       case imemo_svar:</div><div class='del'>-	gc_mark(objspace, RANY(obj)-&gt;as.imemo.svar.cref_or_me);</div><div class='del'>-	gc_mark(objspace, RANY(obj)-&gt;as.imemo.svar.lastline);</div><div class='del'>-	gc_mark(objspace, RANY(obj)-&gt;as.imemo.svar.backref);</div><div class='del'>-	gc_mark(objspace, RANY(obj)-&gt;as.imemo.svar.others);</div><div class='del'>-	return;</div><div class='add'>+        gc_mark(objspace, RANY(obj)-&gt;as.imemo.svar.cref_or_me);</div><div class='add'>+        gc_mark(objspace, RANY(obj)-&gt;as.imemo.svar.lastline);</div><div class='add'>+        gc_mark(objspace, RANY(obj)-&gt;as.imemo.svar.backref);</div><div class='add'>+        gc_mark(objspace, RANY(obj)-&gt;as.imemo.svar.others);</div><div class='add'>+        return;</div><div class='ctx'>       case imemo_throw_data:</div><div class='del'>-	gc_mark(objspace, RANY(obj)-&gt;as.imemo.throw_data.throw_obj);</div><div class='del'>-	return;</div><div class='add'>+        gc_mark(objspace, RANY(obj)-&gt;as.imemo.throw_data.throw_obj);</div><div class='add'>+        return;</div><div class='ctx'>       case imemo_ifunc:</div><div class='del'>-	gc_mark_maybe(objspace, (VALUE)RANY(obj)-&gt;as.imemo.ifunc.data);</div><div class='del'>-	return;</div><div class='add'>+        gc_mark_maybe(objspace, (VALUE)RANY(obj)-&gt;as.imemo.ifunc.data);</div><div class='add'>+        return;</div><div class='ctx'>       case imemo_memo:</div><div class='del'>-	gc_mark(objspace, RANY(obj)-&gt;as.imemo.memo.v1);</div><div class='del'>-	gc_mark(objspace, RANY(obj)-&gt;as.imemo.memo.v2);</div><div class='del'>-	gc_mark_maybe(objspace, RANY(obj)-&gt;as.imemo.memo.u3.value);</div><div class='del'>-	return;</div><div class='add'>+        gc_mark(objspace, RANY(obj)-&gt;as.imemo.memo.v1);</div><div class='add'>+        gc_mark(objspace, RANY(obj)-&gt;as.imemo.memo.v2);</div><div class='add'>+        gc_mark_maybe(objspace, RANY(obj)-&gt;as.imemo.memo.u3.value);</div><div class='add'>+        return;</div><div class='ctx'>       case imemo_ment:</div><div class='del'>-	mark_method_entry(objspace, &amp;RANY(obj)-&gt;as.imemo.ment);</div><div class='del'>-	return;</div><div class='add'>+        mark_method_entry(objspace, &amp;RANY(obj)-&gt;as.imemo.ment);</div><div class='add'>+        return;</div><div class='ctx'>       case imemo_iseq:</div><div class='del'>-	rb_iseq_mark((rb_iseq_t *)obj);</div><div class='del'>-	return;</div><div class='add'>+        rb_iseq_mark((rb_iseq_t *)obj);</div><div class='add'>+        return;</div><div class='ctx'>       case imemo_tmpbuf:</div><div class='del'>-	{</div><div class='del'>-	    const rb_imemo_tmpbuf_t *m = &amp;RANY(obj)-&gt;as.imemo.alloc;</div><div class='del'>-	    do {</div><div class='del'>-		rb_gc_mark_locations(m-&gt;ptr, m-&gt;ptr + m-&gt;cnt);</div><div class='del'>-	    } while ((m = m-&gt;next) != NULL);</div><div class='del'>-	}</div><div class='del'>-	return;</div><div class='add'>+        {</div><div class='add'>+            const rb_imemo_tmpbuf_t *m = &amp;RANY(obj)-&gt;as.imemo.alloc;</div><div class='add'>+            do {</div><div class='add'>+                rb_gc_mark_locations(m-&gt;ptr, m-&gt;ptr + m-&gt;cnt);</div><div class='add'>+            } while ((m = m-&gt;next) != NULL);</div><div class='add'>+        }</div><div class='add'>+        return;</div><div class='ctx'>       case imemo_ast:</div><div class='del'>-	rb_ast_mark(&amp;RANY(obj)-&gt;as.imemo.ast);</div><div class='del'>-	return;</div><div class='add'>+        rb_ast_mark(&amp;RANY(obj)-&gt;as.imemo.ast);</div><div class='add'>+        return;</div><div class='ctx'>       case imemo_parser_strterm:</div><div class='del'>-	rb_strterm_mark(obj);</div><div class='del'>-	return;</div><div class='add'>+        rb_strterm_mark(obj);</div><div class='add'>+        return;</div><div class='add'>+      case imemo_callinfo:</div><div class='add'>+        return;</div><div class='add'>+      case imemo_callcache:</div><div class='add'>+        {</div><div class='add'>+            const struct rb_callcache *cc = (const struct rb_callcache *)obj;</div><div class='add'>+            // should not mark klass here</div><div class='add'>+            gc_mark(objspace, (VALUE)vm_cc_cme(cc));</div><div class='add'>+        }</div><div class='add'>+        return;</div><div class='add'>+      case imemo_constcache:</div><div class='add'>+        {</div><div class='add'>+            const struct iseq_inline_constant_cache_entry *ice = (struct iseq_inline_constant_cache_entry *)obj;</div><div class='add'>+            gc_mark(objspace, ice-&gt;value);</div><div class='add'>+        }</div><div class='add'>+        return;</div><div class='ctx'> #if VM_CHECK_MODE &gt; 0</div><div class='ctx'>       default:</div><div class='del'>-	VM_UNREACHABLE(gc_mark_imemo);</div><div class='add'>+        VM_UNREACHABLE(gc_mark_imemo);</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void mark_cvc_tbl(rb_objspace_t *objspace, VALUE klass);</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> gc_mark_children(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -4687,22 +7228,32 @@ gc_mark_children(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>     gc_mark_set_parent(objspace, obj);</div><div class='ctx'> </div><div class='ctx'>     if (FL_TEST(obj, FL_EXIVAR)) {</div><div class='del'>-	rb_mark_generic_ivar(obj);</div><div class='add'>+        rb_mark_generic_ivar(obj);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     switch (BUILTIN_TYPE(obj)) {</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+      case T_SYMBOL:</div><div class='add'>+        /* Not immediates, but does not have references and singleton</div><div class='add'>+         * class */</div><div class='add'>+        return;</div><div class='add'>+</div><div class='ctx'>       case T_NIL:</div><div class='ctx'>       case T_FIXNUM:</div><div class='del'>-	rb_bug("rb_gc_mark() called for broken object");</div><div class='del'>-	break;</div><div class='add'>+        rb_bug("rb_gc_mark() called for broken object");</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_NODE:</div><div class='del'>-	UNEXPECTED_NODE(rb_gc_mark);</div><div class='del'>-	break;</div><div class='add'>+        UNEXPECTED_NODE(rb_gc_mark);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_IMEMO:</div><div class='del'>-	gc_mark_imemo(objspace, obj);</div><div class='del'>-	return;</div><div class='add'>+        gc_mark_imemo(objspace, obj);</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+      default:</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     gc_mark(objspace, any-&gt;as.basic.klass);</div><div class='hunk'>@@ -4710,122 +7261,145 @@ gc_mark_children(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>     switch (BUILTIN_TYPE(obj)) {</div><div class='ctx'>       case T_CLASS:</div><div class='ctx'>       case T_MODULE:</div><div class='del'>-	mark_m_tbl(objspace, RCLASS_M_TBL(obj));</div><div class='del'>-	if (!RCLASS_EXT(obj)) break;</div><div class='del'>-	mark_tbl(objspace, RCLASS_IV_TBL(obj));</div><div class='del'>-	mark_const_tbl(objspace, RCLASS_CONST_TBL(obj));</div><div class='del'>-	gc_mark(objspace, RCLASS_SUPER((VALUE)obj));</div><div class='del'>-	break;</div><div class='add'>+        if (RCLASS_SUPER(obj)) {</div><div class='add'>+            gc_mark(objspace, RCLASS_SUPER(obj));</div><div class='add'>+        }</div><div class='add'>+        if (!RCLASS_EXT(obj)) break;</div><div class='add'>+</div><div class='add'>+        mark_m_tbl(objspace, RCLASS_M_TBL(obj));</div><div class='add'>+        mark_cvc_tbl(objspace, obj);</div><div class='add'>+        cc_table_mark(objspace, obj);</div><div class='add'>+        for (attr_index_t i = 0; i &lt; RCLASS_IV_COUNT(obj); i++) {</div><div class='add'>+            gc_mark(objspace, RCLASS_IVPTR(obj)[i]);</div><div class='add'>+        }</div><div class='add'>+        mark_const_tbl(objspace, RCLASS_CONST_TBL(obj));</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_ICLASS:</div><div class='del'>-	if (FL_TEST(obj, RICLASS_IS_ORIGIN)) {</div><div class='del'>-	    mark_m_tbl(objspace, RCLASS_M_TBL(obj));</div><div class='del'>-	}</div><div class='del'>-	if (!RCLASS_EXT(obj)) break;</div><div class='del'>-	mark_m_tbl(objspace, RCLASS_CALLABLE_M_TBL(obj));</div><div class='del'>-	gc_mark(objspace, RCLASS_SUPER((VALUE)obj));</div><div class='del'>-	break;</div><div class='add'>+        if (RICLASS_OWNS_M_TBL_P(obj)) {</div><div class='add'>+            mark_m_tbl(objspace, RCLASS_M_TBL(obj));</div><div class='add'>+        }</div><div class='add'>+        if (RCLASS_SUPER(obj)) {</div><div class='add'>+            gc_mark(objspace, RCLASS_SUPER(obj));</div><div class='add'>+        }</div><div class='add'>+        if (!RCLASS_EXT(obj)) break;</div><div class='add'>+</div><div class='add'>+        if (RCLASS_INCLUDER(obj)) {</div><div class='add'>+            gc_mark(objspace, RCLASS_INCLUDER(obj));</div><div class='add'>+        }</div><div class='add'>+        mark_m_tbl(objspace, RCLASS_CALLABLE_M_TBL(obj));</div><div class='add'>+        cc_table_mark(objspace, obj);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_ARRAY:</div><div class='del'>-        if (FL_TEST(obj, ELTS_SHARED)) {</div><div class='del'>-            VALUE root = any-&gt;as.array.as.heap.aux.shared;</div><div class='add'>+        if (ARY_SHARED_P(obj)) {</div><div class='add'>+            VALUE root = ARY_SHARED_ROOT(obj);</div><div class='ctx'>             gc_mark(objspace, root);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    long i, len = RARRAY_LEN(obj);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            long i, len = RARRAY_LEN(obj);</div><div class='ctx'>             const VALUE *ptr = RARRAY_CONST_PTR_TRANSIENT(obj);</div><div class='del'>-	    for (i=0; i &lt; len; i++) {</div><div class='add'>+            for (i=0; i &lt; len; i++) {</div><div class='ctx'>                 gc_mark(objspace, ptr[i]);</div><div class='del'>-	    }</div><div class='add'>+            }</div><div class='ctx'> </div><div class='del'>-            if (objspace-&gt;mark_func_data == NULL) {</div><div class='del'>-                if (!FL_TEST_RAW(obj, RARRAY_EMBED_FLAG) &amp;&amp;</div><div class='del'>-                    RARRAY_TRANSIENT_P(obj)) {</div><div class='add'>+            if (LIKELY(during_gc)) {</div><div class='add'>+                if (!ARY_EMBED_P(obj) &amp;&amp; RARRAY_TRANSIENT_P(obj)) {</div><div class='ctx'>                     rb_transient_heap_mark(obj, ptr);</div><div class='ctx'>                 }</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_HASH:</div><div class='ctx'>         mark_hash(objspace, obj);</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_STRING:</div><div class='del'>-	if (STR_SHARED_P(obj)) {</div><div class='del'>-	    gc_mark(objspace, any-&gt;as.string.as.heap.aux.shared);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        if (STR_SHARED_P(obj)) {</div><div class='add'>+            gc_mark(objspace, any-&gt;as.string.as.heap.aux.shared);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_DATA:</div><div class='del'>-	{</div><div class='del'>-	    void *const ptr = DATA_PTR(obj);</div><div class='del'>-	    if (ptr) {</div><div class='del'>-		RUBY_DATA_FUNC mark_func = RTYPEDDATA_P(obj) ?</div><div class='del'>-		    any-&gt;as.typeddata.type-&gt;function.dmark :</div><div class='del'>-		    any-&gt;as.data.dmark;</div><div class='del'>-		if (mark_func) (*mark_func)(ptr);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        {</div><div class='add'>+            void *const ptr = DATA_PTR(obj);</div><div class='add'>+            if (ptr) {</div><div class='add'>+                RUBY_DATA_FUNC mark_func = RTYPEDDATA_P(obj) ?</div><div class='add'>+                    any-&gt;as.typeddata.type-&gt;function.dmark :</div><div class='add'>+                    any-&gt;as.data.dmark;</div><div class='add'>+                if (mark_func) (*mark_func)(ptr);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_OBJECT:</div><div class='ctx'>         {</div><div class='del'>-            const VALUE * const ptr = ROBJECT_IVPTR(obj);</div><div class='add'>+            rb_shape_t *shape = rb_shape_get_shape_by_id(ROBJECT_SHAPE_ID(obj));</div><div class='add'>+            if (rb_shape_obj_too_complex(obj)) {</div><div class='add'>+                mark_tbl_no_pin(objspace, ROBJECT_IV_HASH(obj));</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                const VALUE * const ptr = ROBJECT_IVPTR(obj);</div><div class='ctx'> </div><div class='del'>-            if (ptr) {</div><div class='del'>-                uint32_t i, len = ROBJECT_NUMIV(obj);</div><div class='add'>+                uint32_t i, len = ROBJECT_IV_COUNT(obj);</div><div class='ctx'>                 for (i  = 0; i &lt; len; i++) {</div><div class='ctx'>                     gc_mark(objspace, ptr[i]);</div><div class='ctx'>                 }</div><div class='ctx'> </div><div class='del'>-                if (objspace-&gt;mark_func_data == NULL &amp;&amp;</div><div class='del'>-                    ROBJ_TRANSIENT_P(obj)) {</div><div class='add'>+                if (LIKELY(during_gc) &amp;&amp;</div><div class='add'>+                        ROBJ_TRANSIENT_P(obj)) {</div><div class='ctx'>                     rb_transient_heap_mark(obj, ptr);</div><div class='ctx'>                 }</div><div class='ctx'>             }</div><div class='add'>+            if (shape) {</div><div class='add'>+                VALUE klass = RBASIC_CLASS(obj);</div><div class='add'>+</div><div class='add'>+                // Increment max_iv_count if applicable, used to determine size pool allocation</div><div class='add'>+                uint32_t num_of_ivs = shape-&gt;next_iv_index;</div><div class='add'>+                if (RCLASS_EXT(klass)-&gt;max_iv_count &lt; num_of_ivs) {</div><div class='add'>+                    RCLASS_EXT(klass)-&gt;max_iv_count = num_of_ivs;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='ctx'>         }</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_FILE:</div><div class='ctx'>         if (any-&gt;as.file.fptr) {</div><div class='add'>+            gc_mark(objspace, any-&gt;as.file.fptr-&gt;self);</div><div class='ctx'>             gc_mark(objspace, any-&gt;as.file.fptr-&gt;pathv);</div><div class='ctx'>             gc_mark(objspace, any-&gt;as.file.fptr-&gt;tied_io_for_writing);</div><div class='ctx'>             gc_mark(objspace, any-&gt;as.file.fptr-&gt;writeconv_asciicompat);</div><div class='ctx'>             gc_mark(objspace, any-&gt;as.file.fptr-&gt;writeconv_pre_ecopts);</div><div class='ctx'>             gc_mark(objspace, any-&gt;as.file.fptr-&gt;encs.ecopts);</div><div class='ctx'>             gc_mark(objspace, any-&gt;as.file.fptr-&gt;write_lock);</div><div class='add'>+            gc_mark(objspace, any-&gt;as.file.fptr-&gt;timeout);</div><div class='ctx'>         }</div><div class='ctx'>         break;</div><div class='ctx'> </div><div class='ctx'>       case T_REGEXP:</div><div class='ctx'>         gc_mark(objspace, any-&gt;as.regexp.src);</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      case T_FLOAT:</div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-      case T_SYMBOL:</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_MATCH:</div><div class='del'>-	gc_mark(objspace, any-&gt;as.match.regexp);</div><div class='del'>-	if (any-&gt;as.match.str) {</div><div class='del'>-	    gc_mark(objspace, any-&gt;as.match.str);</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        gc_mark(objspace, any-&gt;as.match.regexp);</div><div class='add'>+        if (any-&gt;as.match.str) {</div><div class='add'>+            gc_mark(objspace, any-&gt;as.match.str);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_RATIONAL:</div><div class='del'>-	gc_mark(objspace, any-&gt;as.rational.num);</div><div class='del'>-	gc_mark(objspace, any-&gt;as.rational.den);</div><div class='del'>-	break;</div><div class='add'>+        gc_mark(objspace, any-&gt;as.rational.num);</div><div class='add'>+        gc_mark(objspace, any-&gt;as.rational.den);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_COMPLEX:</div><div class='del'>-	gc_mark(objspace, any-&gt;as.complex.real);</div><div class='del'>-	gc_mark(objspace, any-&gt;as.complex.imag);</div><div class='del'>-	break;</div><div class='add'>+        gc_mark(objspace, any-&gt;as.complex.real);</div><div class='add'>+        gc_mark(objspace, any-&gt;as.complex.imag);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case T_STRUCT:</div><div class='del'>-	{</div><div class='add'>+        {</div><div class='ctx'>             long i;</div><div class='ctx'>             const long len = RSTRUCT_LEN(obj);</div><div class='ctx'>             const VALUE * const ptr = RSTRUCT_CONST_PTR(obj);</div><div class='hunk'>@@ -4834,22 +7408,23 @@ gc_mark_children(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>                 gc_mark(objspace, ptr[i]);</div><div class='ctx'>             }</div><div class='ctx'> </div><div class='del'>-            if (objspace-&gt;mark_func_data == NULL &amp;&amp;</div><div class='add'>+            if (LIKELY(during_gc) &amp;&amp;</div><div class='ctx'>                 RSTRUCT_TRANSIENT_P(obj)) {</div><div class='ctx'>                 rb_transient_heap_mark(obj, ptr);</div><div class='ctx'>             }</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='ctx'> #if GC_DEBUG</div><div class='del'>-	rb_gcdebug_print_obj_condition((VALUE)obj);</div><div class='add'>+        rb_gcdebug_print_obj_condition((VALUE)obj);</div><div class='ctx'> #endif</div><div class='del'>-	if (BUILTIN_TYPE(obj) == T_NONE)   rb_bug("rb_gc_mark(): %p is T_NONE", (void *)obj);</div><div class='del'>-	if (BUILTIN_TYPE(obj) == T_ZOMBIE) rb_bug("rb_gc_mark(): %p is T_ZOMBIE", (void *)obj);</div><div class='del'>-	rb_bug("rb_gc_mark(): unknown data type 0x%x(%p) %s",</div><div class='del'>-	       BUILTIN_TYPE(obj), (void *)any,</div><div class='del'>-	       is_pointer_to_heap(objspace, any) ? "corrupted object" : "non object");</div><div class='add'>+        if (BUILTIN_TYPE(obj) == T_MOVED)   rb_bug("rb_gc_mark(): %p is T_MOVED", (void *)obj);</div><div class='add'>+        if (BUILTIN_TYPE(obj) == T_NONE)   rb_bug("rb_gc_mark(): %p is T_NONE", (void *)obj);</div><div class='add'>+        if (BUILTIN_TYPE(obj) == T_ZOMBIE) rb_bug("rb_gc_mark(): %p is T_ZOMBIE", (void *)obj);</div><div class='add'>+        rb_bug("rb_gc_mark(): unknown data type 0x%x(%p) %s",</div><div class='add'>+               BUILTIN_TYPE(obj), (void *)any,</div><div class='add'>+               is_pointer_to_heap(objspace, any) ? "corrupted object" : "non object");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4868,39 +7443,39 @@ gc_mark_stacked_objects(rb_objspace_t *objspace, int incremental, size_t count)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     while (pop_mark_stack(mstack, &amp;obj)) {</div><div class='del'>-	if (obj == Qundef) continue; /* skip */</div><div class='add'>+        if (UNDEF_P(obj)) continue; /* skip */</div><div class='ctx'> </div><div class='del'>-	if (RGENGC_CHECK_MODE &amp;&amp; !RVALUE_MARKED(obj)) {</div><div class='del'>-	    rb_bug("gc_mark_stacked_objects: %s is not marked.", obj_info(obj));</div><div class='del'>-	}</div><div class='add'>+        if (RGENGC_CHECK_MODE &amp;&amp; !RVALUE_MARKED(obj)) {</div><div class='add'>+            rb_bug("gc_mark_stacked_objects: %s is not marked.", obj_info(obj));</div><div class='add'>+        }</div><div class='ctx'>         gc_mark_children(objspace, obj);</div><div class='ctx'> </div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='del'>-	if (incremental) {</div><div class='del'>-	    if (RGENGC_CHECK_MODE &amp;&amp; !RVALUE_MARKING(obj)) {</div><div class='del'>-		rb_bug("gc_mark_stacked_objects: incremental, but marking bit is 0");</div><div class='del'>-	    }</div><div class='del'>-	    CLEAR_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), obj);</div><div class='del'>-	    popped_count++;</div><div class='add'>+        if (incremental) {</div><div class='add'>+            if (RGENGC_CHECK_MODE &amp;&amp; !RVALUE_MARKING(obj)) {</div><div class='add'>+                rb_bug("gc_mark_stacked_objects: incremental, but marking bit is 0");</div><div class='add'>+            }</div><div class='add'>+            CLEAR_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), obj);</div><div class='add'>+            popped_count++;</div><div class='ctx'> </div><div class='del'>-	    if (popped_count + (objspace-&gt;marked_slots - marked_slots_at_the_beginning) &gt; count) {</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    /* just ignore marking bits */</div><div class='del'>-	}</div><div class='add'>+            if (popped_count + (objspace-&gt;marked_slots - marked_slots_at_the_beginning) &gt; count) {</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* just ignore marking bits */</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (RGENGC_CHECK_MODE &gt;= 3) gc_verify_internal_consistency(Qnil);</div><div class='add'>+    if (RGENGC_CHECK_MODE &gt;= 3) gc_verify_internal_consistency(objspace);</div><div class='ctx'> </div><div class='ctx'>     if (is_mark_stack_empty(mstack)) {</div><div class='del'>-	shrink_stack_chunk_cache(mstack);</div><div class='del'>-	return TRUE;</div><div class='add'>+        shrink_stack_chunk_cache(mstack);</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4927,17 +7502,17 @@ show_mark_ticks(void)</div><div class='ctx'>     int i;</div><div class='ctx'>     fprintf(stderr, "mark ticks result:\n");</div><div class='ctx'>     for (i=0; i&lt;MAX_TICKS; i++) {</div><div class='del'>-	const char *category = mark_ticks_categories[i];</div><div class='del'>-	if (category) {</div><div class='del'>-	    fprintf(stderr, "%s\t%8lu\n", category, (unsigned long)mark_ticks[i]);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        const char *category = mark_ticks_categories[i];</div><div class='add'>+        if (category) {</div><div class='add'>+            fprintf(stderr, "%s\t%8lu\n", category, (unsigned long)mark_ticks[i]);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#endif /* PRITNT_ROOT_TICKS */</div><div class='add'>+#endif /* PRINT_ROOT_TICKS */</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> gc_mark_roots(rb_objspace_t *objspace, const char **categoryp)</div><div class='hunk'>@@ -4952,28 +7527,26 @@ gc_mark_roots(rb_objspace_t *objspace, const char **categoryp)</div><div class='ctx'>     const char *prev_category = 0;</div><div class='ctx'> </div><div class='ctx'>     if (mark_ticks_categories[0] == 0) {</div><div class='del'>-	atexit(show_mark_ticks);</div><div class='add'>+        atexit(show_mark_ticks);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     if (categoryp) *categoryp = "xxx";</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     objspace-&gt;rgengc.parent_object = Qfalse;</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> #if PRINT_ROOT_TICKS</div><div class='ctx'> #define MARK_CHECKPOINT_PRINT_TICK(category) do { \</div><div class='ctx'>     if (prev_category) { \</div><div class='del'>-	tick_t t = tick(); \</div><div class='del'>-	mark_ticks[tick_count] = t - start_tick; \</div><div class='del'>-	mark_ticks_categories[tick_count] = prev_category; \</div><div class='del'>-	tick_count++; \</div><div class='add'>+        tick_t t = tick(); \</div><div class='add'>+        mark_ticks[tick_count] = t - start_tick; \</div><div class='add'>+        mark_ticks_categories[tick_count] = prev_category; \</div><div class='add'>+        tick_count++; \</div><div class='ctx'>     } \</div><div class='ctx'>     prev_category = category; \</div><div class='ctx'>     start_tick = tick(); \</div><div class='ctx'> } while (0)</div><div class='del'>-#else /* PRITNT_ROOT_TICKS */</div><div class='add'>+#else /* PRINT_ROOT_TICKS */</div><div class='ctx'> #define MARK_CHECKPOINT_PRINT_TICK(category)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -4988,7 +7561,7 @@ gc_mark_roots(rb_objspace_t *objspace, const char **categoryp)</div><div class='ctx'>     if (vm-&gt;self) gc_mark(objspace, vm-&gt;self);</div><div class='ctx'> </div><div class='ctx'>     MARK_CHECKPOINT("finalizers");</div><div class='del'>-    mark_tbl(objspace, finalizer_table);</div><div class='add'>+    mark_finalizer_tbl(objspace, finalizer_table);</div><div class='ctx'> </div><div class='ctx'>     MARK_CHECKPOINT("machine_context");</div><div class='ctx'>     mark_current_machine_context(objspace, ec);</div><div class='hunk'>@@ -4996,7 +7569,7 @@ gc_mark_roots(rb_objspace_t *objspace, const char **categoryp)</div><div class='ctx'>     /* mark protected global variables */</div><div class='ctx'>     MARK_CHECKPOINT("global_list");</div><div class='ctx'>     for (list = global_list; list; list = list-&gt;next) {</div><div class='del'>-	rb_gc_mark_maybe(*list-&gt;varptr);</div><div class='add'>+        gc_mark_maybe(objspace, *list-&gt;varptr);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     MARK_CHECKPOINT("end_proc");</div><div class='hunk'>@@ -5005,6 +7578,10 @@ gc_mark_roots(rb_objspace_t *objspace, const char **categoryp)</div><div class='ctx'>     MARK_CHECKPOINT("global_tbl");</div><div class='ctx'>     rb_gc_mark_global_tbl();</div><div class='ctx'> </div><div class='add'>+    MARK_CHECKPOINT("object_id");</div><div class='add'>+    rb_gc_mark(objspace-&gt;next_object_id);</div><div class='add'>+    mark_tbl_no_pin(objspace, objspace-&gt;obj_to_id_tbl); /* Only mark ids */</div><div class='add'>+</div><div class='ctx'>     if (stress_to_class) rb_gc_mark(stress_to_class);</div><div class='ctx'> </div><div class='ctx'>     MARK_CHECKPOINT("finish");</div><div class='hunk'>@@ -5045,8 +7622,8 @@ static void</div><div class='ctx'> reflist_add(struct reflist *refs, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (refs-&gt;pos == refs-&gt;size) {</div><div class='del'>-	refs-&gt;size *= 2;</div><div class='del'>-	SIZED_REALLOC_N(refs-&gt;list, VALUE, refs-&gt;size, refs-&gt;size/2);</div><div class='add'>+        refs-&gt;size *= 2;</div><div class='add'>+        SIZED_REALLOC_N(refs-&gt;list, VALUE, refs-&gt;size, refs-&gt;size/2);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     refs-&gt;list[refs-&gt;pos++] = obj;</div><div class='hunk'>@@ -5057,14 +7634,14 @@ reflist_dump(struct reflist *refs)</div><div class='ctx'> {</div><div class='ctx'>     int i;</div><div class='ctx'>     for (i=0; i&lt;refs-&gt;pos; i++) {</div><div class='del'>-	VALUE obj = refs-&gt;list[i];</div><div class='del'>-	if (IS_ROOTSIG(obj)) { /* root */</div><div class='del'>-	    fprintf(stderr, "&lt;root@%s&gt;", GET_ROOTSIG(obj));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    fprintf(stderr, "&lt;%s&gt;", obj_info(obj));</div><div class='del'>-	}</div><div class='del'>-	if (i+1 &lt; refs-&gt;pos) fprintf(stderr, ", ");</div><div class='add'>+        VALUE obj = refs-&gt;list[i];</div><div class='add'>+        if (IS_ROOTSIG(obj)) { /* root */</div><div class='add'>+            fprintf(stderr, "&lt;root@%s&gt;", GET_ROOTSIG(obj));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            fprintf(stderr, "&lt;%s&gt;", obj_info(obj));</div><div class='add'>+        }</div><div class='add'>+        if (i+1 &lt; refs-&gt;pos) fprintf(stderr, ", ");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5073,8 +7650,8 @@ reflist_referred_from_machine_context(struct reflist *refs)</div><div class='ctx'> {</div><div class='ctx'>     int i;</div><div class='ctx'>     for (i=0; i&lt;refs-&gt;pos; i++) {</div><div class='del'>-	VALUE obj = refs-&gt;list[i];</div><div class='del'>-	if (IS_ROOTSIG(obj) &amp;&amp; strcmp(GET_ROOTSIG(obj), "machine_context") == 0) return 1;</div><div class='add'>+        VALUE obj = refs-&gt;list[i];</div><div class='add'>+        if (IS_ROOTSIG(obj) &amp;&amp; strcmp(GET_ROOTSIG(obj), "machine_context") == 0) return 1;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -5098,15 +7675,17 @@ static int</div><div class='ctx'> allrefs_add(struct allrefs *data, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     struct reflist *refs;</div><div class='add'>+    st_data_t r;</div><div class='ctx'> </div><div class='del'>-    if (st_lookup(data-&gt;references, obj, (st_data_t *)&amp;refs)) {</div><div class='del'>-	reflist_add(refs, data-&gt;root_obj);</div><div class='del'>-	return 0;</div><div class='add'>+    if (st_lookup(data-&gt;references, obj, &amp;r)) {</div><div class='add'>+        refs = (struct reflist *)r;</div><div class='add'>+        reflist_add(refs, data-&gt;root_obj);</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	refs = reflist_create(data-&gt;root_obj);</div><div class='del'>-	st_insert(data-&gt;references, obj, (st_data_t)refs);</div><div class='del'>-	return 1;</div><div class='add'>+        refs = reflist_create(data-&gt;root_obj);</div><div class='add'>+        st_insert(data-&gt;references, obj, (st_data_t)refs);</div><div class='add'>+        return 1;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5116,7 +7695,7 @@ allrefs_i(VALUE obj, void *ptr)</div><div class='ctx'>     struct allrefs *data = (struct allrefs *)ptr;</div><div class='ctx'> </div><div class='ctx'>     if (allrefs_add(data, obj)) {</div><div class='del'>-	push_mark_stack(&amp;data-&gt;mark_stack, obj);</div><div class='add'>+        push_mark_stack(&amp;data-&gt;mark_stack, obj);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5128,18 +7707,23 @@ allrefs_roots_i(VALUE obj, void *ptr)</div><div class='ctx'>     data-&gt;root_obj = MAKE_ROOTSIG(data-&gt;category);</div><div class='ctx'> </div><div class='ctx'>     if (allrefs_add(data, obj)) {</div><div class='del'>-	push_mark_stack(&amp;data-&gt;mark_stack, obj);</div><div class='add'>+        push_mark_stack(&amp;data-&gt;mark_stack, obj);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='add'>+#define PUSH_MARK_FUNC_DATA(v) do { \</div><div class='add'>+    struct gc_mark_func_data_struct *prev_mark_func_data = GET_RACTOR()-&gt;mfd; \</div><div class='add'>+    GET_RACTOR()-&gt;mfd = (v);</div><div class='add'>+</div><div class='add'>+#define POP_MARK_FUNC_DATA() GET_RACTOR()-&gt;mfd = prev_mark_func_data;} while (0)</div><div class='ctx'> </div><div class='ctx'> static st_table *</div><div class='ctx'> objspace_allrefs(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     struct allrefs data;</div><div class='del'>-    struct mark_func_data_struct mfd;</div><div class='add'>+    struct gc_mark_func_data_struct mfd;</div><div class='ctx'>     VALUE obj;</div><div class='del'>-    int prev_dont_gc = dont_gc;</div><div class='del'>-    dont_gc = TRUE;</div><div class='add'>+    int prev_dont_gc = dont_gc_val();</div><div class='add'>+    dont_gc_on();</div><div class='ctx'> </div><div class='ctx'>     data.objspace = objspace;</div><div class='ctx'>     data.references = st_init_numtable();</div><div class='hunk'>@@ -5150,22 +7734,22 @@ objspace_allrefs(rb_objspace_t *objspace)</div><div class='ctx'> </div><div class='ctx'>     /* traverse root objects */</div><div class='ctx'>     PUSH_MARK_FUNC_DATA(&amp;mfd);</div><div class='del'>-    objspace-&gt;mark_func_data = &amp;mfd;</div><div class='add'>+    GET_RACTOR()-&gt;mfd = &amp;mfd;</div><div class='ctx'>     gc_mark_roots(objspace, &amp;data.category);</div><div class='ctx'>     POP_MARK_FUNC_DATA();</div><div class='ctx'> </div><div class='ctx'>     /* traverse rest objects reachable from root objects */</div><div class='ctx'>     while (pop_mark_stack(&amp;data.mark_stack, &amp;obj)) {</div><div class='del'>-	rb_objspace_reachable_objects_from(data.root_obj = obj, allrefs_i, &amp;data);</div><div class='add'>+        rb_objspace_reachable_objects_from(data.root_obj = obj, allrefs_i, &amp;data);</div><div class='ctx'>     }</div><div class='ctx'>     free_stack_chunks(&amp;data.mark_stack);</div><div class='ctx'> </div><div class='del'>-    dont_gc = prev_dont_gc;</div><div class='add'>+    dont_gc_set(prev_dont_gc);</div><div class='ctx'>     return data.references;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-objspace_allrefs_destruct_i(st_data_t key, st_data_t value, void *ptr)</div><div class='add'>+objspace_allrefs_destruct_i(st_data_t key, st_data_t value, st_data_t ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct reflist *refs = (struct reflist *)value;</div><div class='ctx'>     reflist_destruct(refs);</div><div class='hunk'>@@ -5194,13 +7778,14 @@ allrefs_dump_i(st_data_t k, st_data_t v, st_data_t ptr)</div><div class='ctx'> static void</div><div class='ctx'> allrefs_dump(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='del'>-    fprintf(stderr, "[all refs] (size: %d)\n", (int)objspace-&gt;rgengc.allrefs_table-&gt;num_entries);</div><div class='add'>+    VALUE size = objspace-&gt;rgengc.allrefs_table-&gt;num_entries;</div><div class='add'>+    fprintf(stderr, "[all refs] (size: %"PRIuVALUE")\n", size);</div><div class='ctx'>     st_foreach(objspace-&gt;rgengc.allrefs_table, allrefs_dump_i, 0);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-gc_check_after_marks_i(st_data_t k, st_data_t v, void *ptr)</div><div class='add'>+gc_check_after_marks_i(st_data_t k, st_data_t v, st_data_t ptr)</div><div class='ctx'> {</div><div class='ctx'>     VALUE obj = k;</div><div class='ctx'>     struct reflist *refs = (struct reflist *)v;</div><div class='hunk'>@@ -5208,48 +7793,48 @@ gc_check_after_marks_i(st_data_t k, st_data_t v, void *ptr)</div><div class='ctx'> </div><div class='ctx'>     /* object should be marked or oldgen */</div><div class='ctx'>     if (!MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(obj), obj)) {</div><div class='del'>-	fprintf(stderr, "gc_check_after_marks_i: %s is not marked and not oldgen.\n", obj_info(obj));</div><div class='del'>-	fprintf(stderr, "gc_check_after_marks_i: %p is referred from ", (void *)obj);</div><div class='del'>-	reflist_dump(refs);</div><div class='del'>-</div><div class='del'>-	if (reflist_referred_from_machine_context(refs)) {</div><div class='del'>-	    fprintf(stderr, " (marked from machine stack).\n");</div><div class='del'>-	    /* marked from machine context can be false positive */</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    objspace-&gt;rgengc.error_count++;</div><div class='del'>-	    fprintf(stderr, "\n");</div><div class='del'>-	}</div><div class='add'>+        fprintf(stderr, "gc_check_after_marks_i: %s is not marked and not oldgen.\n", obj_info(obj));</div><div class='add'>+        fprintf(stderr, "gc_check_after_marks_i: %p is referred from ", (void *)obj);</div><div class='add'>+        reflist_dump(refs);</div><div class='add'>+</div><div class='add'>+        if (reflist_referred_from_machine_context(refs)) {</div><div class='add'>+            fprintf(stderr, " (marked from machine stack).\n");</div><div class='add'>+            /* marked from machine context can be false positive */</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            objspace-&gt;rgengc.error_count++;</div><div class='add'>+            fprintf(stderr, "\n");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-gc_marks_check(rb_objspace_t *objspace, int (*checker_func)(ANYARGS), const char *checker_name)</div><div class='add'>+gc_marks_check(rb_objspace_t *objspace, st_foreach_callback_func *checker_func, const char *checker_name)</div><div class='ctx'> {</div><div class='ctx'>     size_t saved_malloc_increase = objspace-&gt;malloc_params.increase;</div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='ctx'>     size_t saved_oldmalloc_increase = objspace-&gt;rgengc.oldmalloc_increase;</div><div class='ctx'> #endif</div><div class='del'>-    VALUE already_disabled = rb_gc_disable();</div><div class='add'>+    VALUE already_disabled = rb_objspace_gc_disable(objspace);</div><div class='ctx'> </div><div class='ctx'>     objspace-&gt;rgengc.allrefs_table = objspace_allrefs(objspace);</div><div class='ctx'> </div><div class='ctx'>     if (checker_func) {</div><div class='del'>-	st_foreach(objspace-&gt;rgengc.allrefs_table, checker_func, (st_data_t)objspace);</div><div class='add'>+        st_foreach(objspace-&gt;rgengc.allrefs_table, checker_func, (st_data_t)objspace);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (objspace-&gt;rgengc.error_count &gt; 0) {</div><div class='ctx'> #if RGENGC_CHECK_MODE &gt;= 5</div><div class='del'>-	allrefs_dump(objspace);</div><div class='add'>+        allrefs_dump(objspace);</div><div class='ctx'> #endif</div><div class='del'>-	if (checker_name) rb_bug("%s: GC has problem.", checker_name);</div><div class='add'>+        if (checker_name) rb_bug("%s: GC has problem.", checker_name);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     objspace_allrefs_destruct(objspace-&gt;rgengc.allrefs_table);</div><div class='ctx'>     objspace-&gt;rgengc.allrefs_table = 0;</div><div class='ctx'> </div><div class='del'>-    if (already_disabled == Qfalse) rb_gc_enable();</div><div class='add'>+    if (already_disabled == Qfalse) rb_objspace_gc_enable(objspace);</div><div class='ctx'>     objspace-&gt;malloc_params.increase = saved_malloc_increase;</div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='ctx'>     objspace-&gt;rgengc.oldmalloc_increase = saved_oldmalloc_increase;</div><div class='hunk'>@@ -5263,14 +7848,11 @@ struct verify_internal_consistency_struct {</div><div class='ctx'>     size_t live_object_count;</div><div class='ctx'>     size_t zombie_object_count;</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     VALUE parent;</div><div class='ctx'>     size_t old_object_count;</div><div class='ctx'>     size_t remembered_shady_count;</div><div class='del'>-#endif</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'> static void</div><div class='ctx'> check_generation_i(const VALUE child, void *ptr)</div><div class='ctx'> {</div><div class='hunk'>@@ -5280,12 +7862,12 @@ check_generation_i(const VALUE child, void *ptr)</div><div class='ctx'>     if (RGENGC_CHECK_MODE) GC_ASSERT(RVALUE_OLD_P(parent));</div><div class='ctx'> </div><div class='ctx'>     if (!RVALUE_OLD_P(child)) {</div><div class='del'>-	if (!RVALUE_REMEMBERED(parent) &amp;&amp;</div><div class='del'>-	    !RVALUE_REMEMBERED(child) &amp;&amp;</div><div class='del'>-	    !RVALUE_UNCOLLECTIBLE(child)) {</div><div class='del'>-	    fprintf(stderr, "verify_internal_consistency_reachable_i: WB miss (O-&gt;Y) %s -&gt; %s\n", obj_info(parent), obj_info(child));</div><div class='del'>-	    data-&gt;err_count++;</div><div class='del'>-	}</div><div class='add'>+        if (!RVALUE_REMEMBERED(parent) &amp;&amp;</div><div class='add'>+            !RVALUE_REMEMBERED(child) &amp;&amp;</div><div class='add'>+            !RVALUE_UNCOLLECTIBLE(child)) {</div><div class='add'>+            fprintf(stderr, "verify_internal_consistency_reachable_i: WB miss (O-&gt;Y) %s -&gt; %s\n", obj_info(parent), obj_info(child));</div><div class='add'>+            data-&gt;err_count++;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5296,61 +7878,75 @@ check_color_i(const VALUE child, void *ptr)</div><div class='ctx'>     const VALUE parent = data-&gt;parent;</div><div class='ctx'> </div><div class='ctx'>     if (!RVALUE_WB_UNPROTECTED(parent) &amp;&amp; RVALUE_WHITE_P(child)) {</div><div class='del'>-	fprintf(stderr, "verify_internal_consistency_reachable_i: WB miss (B-&gt;W) - %s -&gt; %s\n",</div><div class='del'>-		obj_info(parent), obj_info(child));</div><div class='del'>-	data-&gt;err_count++;</div><div class='add'>+        fprintf(stderr, "verify_internal_consistency_reachable_i: WB miss (B-&gt;W) - %s -&gt; %s\n",</div><div class='add'>+                obj_info(parent), obj_info(child));</div><div class='add'>+        data-&gt;err_count++;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> check_children_i(const VALUE child, void *ptr)</div><div class='ctx'> {</div><div class='del'>-    check_rvalue_consistency(child);</div><div class='add'>+    struct verify_internal_consistency_struct *data = (struct verify_internal_consistency_struct *)ptr;</div><div class='add'>+    if (check_rvalue_consistency_force(child, FALSE) != 0) {</div><div class='add'>+        fprintf(stderr, "check_children_i: %s has error (referenced from %s)",</div><div class='add'>+                obj_info(child), obj_info(data-&gt;parent));</div><div class='add'>+        rb_print_backtrace(); /* C backtrace will help to debug */</div><div class='add'>+</div><div class='add'>+        data-&gt;err_count++;</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-verify_internal_consistency_i(void *page_start, void *page_end, size_t stride, void *ptr)</div><div class='add'>+verify_internal_consistency_i(void *page_start, void *page_end, size_t stride,</div><div class='add'>+                              struct verify_internal_consistency_struct *data)</div><div class='ctx'> {</div><div class='del'>-    struct verify_internal_consistency_struct *data = (struct verify_internal_consistency_struct *)ptr;</div><div class='ctx'>     VALUE obj;</div><div class='ctx'>     rb_objspace_t *objspace = data-&gt;objspace;</div><div class='ctx'> </div><div class='ctx'>     for (obj = (VALUE)page_start; obj != (VALUE)page_end; obj += stride) {</div><div class='del'>-	if (is_live_object(objspace, obj)) {</div><div class='del'>-	    /* count objects */</div><div class='del'>-	    data-&gt;live_object_count++;</div><div class='del'>-</div><div class='del'>-	    rb_objspace_reachable_objects_from(obj, check_children_i, (void *)data);</div><div class='del'>-</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-	    /* check health of children */</div><div class='del'>-	    data-&gt;parent = obj;</div><div class='del'>-</div><div class='del'>-	    if (RVALUE_OLD_P(obj)) data-&gt;old_object_count++;</div><div class='del'>-	    if (RVALUE_WB_UNPROTECTED(obj) &amp;&amp; RVALUE_UNCOLLECTIBLE(obj)) data-&gt;remembered_shady_count++;</div><div class='del'>-</div><div class='del'>-	    if (!is_marking(objspace) &amp;&amp; RVALUE_OLD_P(obj)) {</div><div class='del'>-		/* reachable objects from an oldgen object should be old or (young with remember) */</div><div class='del'>-		data-&gt;parent = obj;</div><div class='del'>-		rb_objspace_reachable_objects_from(obj, check_generation_i, (void *)data);</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (is_incremental_marking(objspace)) {</div><div class='del'>-		if (RVALUE_BLACK_P(obj)) {</div><div class='del'>-		    /* reachable objects from black objects should be black or grey objects */</div><div class='del'>-		    data-&gt;parent = obj;</div><div class='del'>-		    rb_objspace_reachable_objects_from(obj, check_color_i, (void *)data);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-#endif</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (BUILTIN_TYPE(obj) == T_ZOMBIE) {</div><div class='del'>-		GC_ASSERT(RBASIC(obj)-&gt;flags == T_ZOMBIE);</div><div class='del'>-		data-&gt;zombie_object_count++;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        void *poisoned = asan_unpoison_object_temporary(obj);</div><div class='add'>+</div><div class='add'>+        if (is_live_object(objspace, obj)) {</div><div class='add'>+            /* count objects */</div><div class='add'>+            data-&gt;live_object_count++;</div><div class='add'>+            data-&gt;parent = obj;</div><div class='add'>+</div><div class='add'>+            /* Normally, we don't expect T_MOVED objects to be in the heap.</div><div class='add'>+             * But they can stay alive on the stack, */</div><div class='add'>+            if (!gc_object_moved_p(objspace, obj)) {</div><div class='add'>+                /* moved slots don't have children */</div><div class='add'>+                rb_objspace_reachable_objects_from(obj, check_children_i, (void *)data);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            /* check health of children */</div><div class='add'>+            if (RVALUE_OLD_P(obj)) data-&gt;old_object_count++;</div><div class='add'>+            if (RVALUE_WB_UNPROTECTED(obj) &amp;&amp; RVALUE_UNCOLLECTIBLE(obj)) data-&gt;remembered_shady_count++;</div><div class='add'>+</div><div class='add'>+            if (!is_marking(objspace) &amp;&amp; RVALUE_OLD_P(obj)) {</div><div class='add'>+                /* reachable objects from an oldgen object should be old or (young with remember) */</div><div class='add'>+                data-&gt;parent = obj;</div><div class='add'>+                rb_objspace_reachable_objects_from(obj, check_generation_i, (void *)data);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (is_incremental_marking(objspace)) {</div><div class='add'>+                if (RVALUE_BLACK_P(obj)) {</div><div class='add'>+                    /* reachable objects from black objects should be black or grey objects */</div><div class='add'>+                    data-&gt;parent = obj;</div><div class='add'>+                    rb_objspace_reachable_objects_from(obj, check_color_i, (void *)data);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (BUILTIN_TYPE(obj) == T_ZOMBIE) {</div><div class='add'>+                GC_ASSERT((RBASIC(obj)-&gt;flags &amp; ~FL_SEEN_OBJ_ID) == T_ZOMBIE);</div><div class='add'>+                data-&gt;zombie_object_count++;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (poisoned) {</div><div class='add'>+            GC_ASSERT(BUILTIN_TYPE(obj) == T_NONE);</div><div class='add'>+            asan_poison_object(obj);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return 0;</div><div class='hunk'>@@ -5359,71 +7955,92 @@ verify_internal_consistency_i(void *page_start, void *page_end, size_t stride, v</div><div class='ctx'> static int</div><div class='ctx'> gc_verify_heap_page(rb_objspace_t *objspace, struct heap_page *page, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-    int i;</div><div class='ctx'>     unsigned int has_remembered_shady = FALSE;</div><div class='ctx'>     unsigned int has_remembered_old = FALSE;</div><div class='ctx'>     int remembered_old_objects = 0;</div><div class='ctx'>     int free_objects = 0;</div><div class='ctx'>     int zombie_objects = 0;</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;page-&gt;total_slots; i++) {</div><div class='del'>-	VALUE val = (VALUE)&amp;page-&gt;start[i];</div><div class='del'>-	if (RBASIC(val) == 0) free_objects++;</div><div class='del'>-	if (BUILTIN_TYPE(val) == T_ZOMBIE) zombie_objects++;</div><div class='del'>-	if (RVALUE_PAGE_UNCOLLECTIBLE(page, val) &amp;&amp; RVALUE_PAGE_WB_UNPROTECTED(page, val)) {</div><div class='del'>-	    has_remembered_shady = TRUE;</div><div class='del'>-	}</div><div class='del'>-	if (RVALUE_PAGE_MARKING(page, val)) {</div><div class='del'>-	    has_remembered_old = TRUE;</div><div class='del'>-	    remembered_old_objects++;</div><div class='del'>-	}</div><div class='add'>+    short slot_size = page-&gt;slot_size;</div><div class='add'>+    uintptr_t start = (uintptr_t)page-&gt;start;</div><div class='add'>+    uintptr_t end = start + page-&gt;total_slots * slot_size;</div><div class='add'>+</div><div class='add'>+    for (uintptr_t ptr = start; ptr &lt; end; ptr += slot_size) {</div><div class='add'>+        VALUE val = (VALUE)ptr;</div><div class='add'>+        void *poisoned = asan_unpoison_object_temporary(val);</div><div class='add'>+        enum ruby_value_type type = BUILTIN_TYPE(val);</div><div class='add'>+</div><div class='add'>+        if (type == T_NONE) free_objects++;</div><div class='add'>+        if (type == T_ZOMBIE) zombie_objects++;</div><div class='add'>+        if (RVALUE_PAGE_UNCOLLECTIBLE(page, val) &amp;&amp; RVALUE_PAGE_WB_UNPROTECTED(page, val)) {</div><div class='add'>+            has_remembered_shady = TRUE;</div><div class='add'>+        }</div><div class='add'>+        if (RVALUE_PAGE_MARKING(page, val)) {</div><div class='add'>+            has_remembered_old = TRUE;</div><div class='add'>+            remembered_old_objects++;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (poisoned) {</div><div class='add'>+            GC_ASSERT(BUILTIN_TYPE(val) == T_NONE);</div><div class='add'>+            asan_poison_object(val);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!is_incremental_marking(objspace) &amp;&amp;</div><div class='del'>-	page-&gt;flags.has_remembered_objects == FALSE &amp;&amp; has_remembered_old == TRUE) {</div><div class='add'>+        page-&gt;flags.has_remembered_objects == FALSE &amp;&amp; has_remembered_old == TRUE) {</div><div class='ctx'> </div><div class='del'>-	for (i=0; i&lt;page-&gt;total_slots; i++) {</div><div class='del'>-	    VALUE val = (VALUE)&amp;page-&gt;start[i];</div><div class='del'>-	    if (RVALUE_PAGE_MARKING(page, val)) {</div><div class='del'>-		fprintf(stderr, "marking -&gt; %s\n", obj_info(val));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	rb_bug("page %p's has_remembered_objects should be false, but there are remembered old objects (%d). %s",</div><div class='del'>-	       (void *)page, remembered_old_objects, obj ? obj_info(obj) : "");</div><div class='add'>+        for (uintptr_t ptr = start; ptr &lt; end; ptr += slot_size) {</div><div class='add'>+            VALUE val = (VALUE)ptr;</div><div class='add'>+            if (RVALUE_PAGE_MARKING(page, val)) {</div><div class='add'>+                fprintf(stderr, "marking -&gt; %s\n", obj_info(val));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        rb_bug("page %p's has_remembered_objects should be false, but there are remembered old objects (%d). %s",</div><div class='add'>+               (void *)page, remembered_old_objects, obj ? obj_info(obj) : "");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (page-&gt;flags.has_uncollectible_shady_objects == FALSE &amp;&amp; has_remembered_shady == TRUE) {</div><div class='del'>-	rb_bug("page %p's has_remembered_shady should be false, but there are remembered shady objects. %s",</div><div class='del'>-	       (void *)page, obj ? obj_info(obj) : "");</div><div class='add'>+        rb_bug("page %p's has_remembered_shady should be false, but there are remembered shady objects. %s",</div><div class='add'>+               (void *)page, obj ? obj_info(obj) : "");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (0) {</div><div class='del'>-	/* free_slots may not equal to free_objects */</div><div class='del'>-	if (page-&gt;free_slots != free_objects) {</div><div class='del'>-	    rb_bug("page %p's free_slots should be %d, but %d\n", (void *)page, (int)page-&gt;free_slots, free_objects);</div><div class='del'>-	}</div><div class='add'>+        /* free_slots may not equal to free_objects */</div><div class='add'>+        if (page-&gt;free_slots != free_objects) {</div><div class='add'>+            rb_bug("page %p's free_slots should be %d, but %d\n", (void *)page, page-&gt;free_slots, free_objects);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (page-&gt;final_slots != zombie_objects) {</div><div class='del'>-	rb_bug("page %p's final_slots should be %d, but %d\n", (void *)page, (int)page-&gt;final_slots, zombie_objects);</div><div class='add'>+        rb_bug("page %p's final_slots should be %d, but %d\n", (void *)page, page-&gt;final_slots, zombie_objects);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return remembered_old_objects;</div><div class='del'>-#else</div><div class='del'>-    return 0;</div><div class='del'>-#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-gc_verify_heap_pages_(rb_objspace_t *objspace, struct list_head *head)</div><div class='add'>+gc_verify_heap_pages_(rb_objspace_t *objspace, struct ccan_list_head *head)</div><div class='ctx'> {</div><div class='ctx'>     int remembered_old_objects = 0;</div><div class='ctx'>     struct heap_page *page = 0;</div><div class='ctx'> </div><div class='del'>-    list_for_each(head, page, page_node) {</div><div class='del'>-	if (page-&gt;flags.has_remembered_objects == FALSE) {</div><div class='del'>-	    remembered_old_objects += gc_verify_heap_page(objspace, page, Qfalse);</div><div class='del'>-	}</div><div class='add'>+    ccan_list_for_each(head, page, page_node) {</div><div class='add'>+        asan_unlock_freelist(page);</div><div class='add'>+        RVALUE *p = page-&gt;freelist;</div><div class='add'>+        while (p) {</div><div class='add'>+            VALUE vp = (VALUE)p;</div><div class='add'>+            VALUE prev = vp;</div><div class='add'>+            asan_unpoison_object(vp, false);</div><div class='add'>+            if (BUILTIN_TYPE(vp) != T_NONE) {</div><div class='add'>+                fprintf(stderr, "freelist slot expected to be T_NONE but was: %s\n", obj_info(vp));</div><div class='add'>+            }</div><div class='add'>+            p = p-&gt;as.free.next;</div><div class='add'>+            asan_poison_object(prev);</div><div class='add'>+        }</div><div class='add'>+        asan_lock_freelist(page);</div><div class='add'>+</div><div class='add'>+        if (page-&gt;flags.has_remembered_objects == FALSE) {</div><div class='add'>+            remembered_old_objects += gc_verify_heap_page(objspace, page, Qfalse);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return remembered_old_objects;</div><div class='hunk'>@@ -5433,8 +8050,10 @@ static int</div><div class='ctx'> gc_verify_heap_pages(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     int remembered_old_objects = 0;</div><div class='del'>-    remembered_old_objects += gc_verify_heap_pages_(objspace, &amp;heap_eden-&gt;pages);</div><div class='del'>-    remembered_old_objects += gc_verify_heap_pages_(objspace, &amp;heap_tomb-&gt;pages);</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        remembered_old_objects += gc_verify_heap_pages_(objspace, &amp;(SIZE_POOL_EDEN_HEAP(&amp;size_pools[i])-&gt;pages));</div><div class='add'>+        remembered_old_objects += gc_verify_heap_pages_(objspace, &amp;(SIZE_POOL_TOMB_HEAP(&amp;size_pools[i])-&gt;pages));</div><div class='add'>+    }</div><div class='ctx'>     return remembered_old_objects;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5449,28 +8068,38 @@ gc_verify_heap_pages(rb_objspace_t *objspace)</div><div class='ctx'>  *  if RGenGC is supported.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-gc_verify_internal_consistency(VALUE dummy)</div><div class='add'>+gc_verify_internal_consistency_m(VALUE dummy)</div><div class='add'>+{</div><div class='add'>+    gc_verify_internal_consistency(&amp;rb_objspace);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_verify_internal_consistency_(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='del'>-    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'>     struct verify_internal_consistency_struct data = {0};</div><div class='del'>-    struct each_obj_args eo_args;</div><div class='ctx'> </div><div class='ctx'>     data.objspace = objspace;</div><div class='ctx'>     gc_report(5, objspace, "gc_verify_internal_consistency: start\n");</div><div class='ctx'> </div><div class='ctx'>     /* check relations */</div><div class='add'>+    for (size_t i = 0; i &lt; heap_allocated_pages; i++) {</div><div class='add'>+        struct heap_page *page = heap_pages_sorted[i];</div><div class='add'>+        short slot_size = page-&gt;slot_size;</div><div class='ctx'> </div><div class='del'>-    eo_args.callback = verify_internal_consistency_i;</div><div class='del'>-    eo_args.data = (void *)&amp;data;</div><div class='del'>-    objspace_each_objects((VALUE)&amp;eo_args);</div><div class='add'>+        uintptr_t start = (uintptr_t)page-&gt;start;</div><div class='add'>+        uintptr_t end = start + page-&gt;total_slots * slot_size;</div><div class='add'>+</div><div class='add'>+        verify_internal_consistency_i((void *)start, (void *)end, slot_size, &amp;data);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (data.err_count != 0) {</div><div class='ctx'> #if RGENGC_CHECK_MODE &gt;= 5</div><div class='del'>-	objspace-&gt;rgengc.error_count = data.err_count;</div><div class='del'>-	gc_marks_check(objspace, NULL, NULL);</div><div class='del'>-	allrefs_dump(objspace);</div><div class='add'>+        objspace-&gt;rgengc.error_count = data.err_count;</div><div class='add'>+        gc_marks_check(objspace, NULL, NULL);</div><div class='add'>+        allrefs_dump(objspace);</div><div class='ctx'> #endif</div><div class='del'>-	rb_bug("gc_verify_internal_consistency: found internal inconsistency.");</div><div class='add'>+        rb_bug("gc_verify_internal_consistency: found internal inconsistency.");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* check heap_page status */</div><div class='hunk'>@@ -5478,58 +8107,77 @@ gc_verify_internal_consistency(VALUE dummy)</div><div class='ctx'> </div><div class='ctx'>     /* check counters */</div><div class='ctx'> </div><div class='del'>-    if (!is_lazy_sweeping(heap_eden) &amp;&amp; !finalizing) {</div><div class='del'>-	if (objspace_live_slots(objspace) != data.live_object_count) {</div><div class='del'>-	    fprintf(stderr, "heap_pages_final_slots: %d, objspace-&gt;profile.total_freed_objects: %d\n",</div><div class='del'>-		    (int)heap_pages_final_slots, (int)objspace-&gt;profile.total_freed_objects);</div><div class='del'>-	    rb_bug("inconsistent live slot number: expect %"PRIuSIZE", but %"PRIuSIZE".", objspace_live_slots(objspace), data.live_object_count);</div><div class='del'>-	}</div><div class='add'>+    if (!is_lazy_sweeping(objspace) &amp;&amp;</div><div class='add'>+        !finalizing &amp;&amp;</div><div class='add'>+        ruby_single_main_ractor != NULL) {</div><div class='add'>+        if (objspace_live_slots(objspace) != data.live_object_count) {</div><div class='add'>+            fprintf(stderr, "heap_pages_final_slots: %"PRIdSIZE", "</div><div class='add'>+                    "objspace-&gt;profile.total_freed_objects: %"PRIdSIZE"\n",</div><div class='add'>+                    heap_pages_final_slots, objspace-&gt;profile.total_freed_objects);</div><div class='add'>+            rb_bug("inconsistent live slot number: expect %"PRIuSIZE", but %"PRIuSIZE".",</div><div class='add'>+                   objspace_live_slots(objspace), data.live_object_count);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     if (!is_marking(objspace)) {</div><div class='del'>-	if (objspace-&gt;rgengc.old_objects != data.old_object_count) {</div><div class='del'>-	    rb_bug("inconsistent old slot number: expect %"PRIuSIZE", but %"PRIuSIZE".", objspace-&gt;rgengc.old_objects, data.old_object_count);</div><div class='del'>-	}</div><div class='del'>-	if (objspace-&gt;rgengc.uncollectible_wb_unprotected_objects != data.remembered_shady_count) {</div><div class='del'>-	    rb_bug("inconsistent old slot number: expect %"PRIuSIZE", but %"PRIuSIZE".", objspace-&gt;rgengc.uncollectible_wb_unprotected_objects, data.remembered_shady_count);</div><div class='del'>-	}</div><div class='add'>+        if (objspace-&gt;rgengc.old_objects != data.old_object_count) {</div><div class='add'>+            rb_bug("inconsistent old slot number: expect %"PRIuSIZE", but %"PRIuSIZE".",</div><div class='add'>+                   objspace-&gt;rgengc.old_objects, data.old_object_count);</div><div class='add'>+        }</div><div class='add'>+        if (objspace-&gt;rgengc.uncollectible_wb_unprotected_objects != data.remembered_shady_count) {</div><div class='add'>+            rb_bug("inconsistent number of wb unprotected objects: expect %"PRIuSIZE", but %"PRIuSIZE".",</div><div class='add'>+                   objspace-&gt;rgengc.uncollectible_wb_unprotected_objects, data.remembered_shady_count);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'>     if (!finalizing) {</div><div class='del'>-	size_t list_count = 0;</div><div class='add'>+        size_t list_count = 0;</div><div class='ctx'> </div><div class='del'>-	{</div><div class='del'>-	    VALUE z = heap_pages_deferred_final;</div><div class='del'>-	    while (z) {</div><div class='del'>-		list_count++;</div><div class='del'>-		z = RZOMBIE(z)-&gt;next;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        {</div><div class='add'>+            VALUE z = heap_pages_deferred_final;</div><div class='add'>+            while (z) {</div><div class='add'>+                list_count++;</div><div class='add'>+                z = RZOMBIE(z)-&gt;next;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	if (heap_pages_final_slots != data.zombie_object_count ||</div><div class='del'>-	    heap_pages_final_slots != list_count) {</div><div class='add'>+        if (heap_pages_final_slots != data.zombie_object_count ||</div><div class='add'>+            heap_pages_final_slots != list_count) {</div><div class='ctx'> </div><div class='del'>-	    rb_bug("inconsistent finalizing object count:\n"</div><div class='del'>-		   "  expect %"PRIuSIZE"\n"</div><div class='del'>-		   "  but    %"PRIuSIZE" zombies\n"</div><div class='del'>-		   "  heap_pages_deferred_final list has %"PRIuSIZE" items.",</div><div class='del'>-		   heap_pages_final_slots,</div><div class='del'>-		   data.zombie_object_count,</div><div class='del'>-		   list_count);</div><div class='del'>-	}</div><div class='add'>+            rb_bug("inconsistent finalizing object count:\n"</div><div class='add'>+                    "  expect %"PRIuSIZE"\n"</div><div class='add'>+                    "  but    %"PRIuSIZE" zombies\n"</div><div class='add'>+                    "  heap_pages_deferred_final list has %"PRIuSIZE" items.",</div><div class='add'>+                    heap_pages_final_slots,</div><div class='add'>+                    data.zombie_object_count,</div><div class='add'>+                    list_count);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     gc_report(5, objspace, "gc_verify_internal_consistency: OK\n");</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return Qnil;</div><div class='add'>+static void</div><div class='add'>+gc_verify_internal_consistency(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    RB_VM_LOCK_ENTER();</div><div class='add'>+    {</div><div class='add'>+        rb_vm_barrier(); // stop other ractors</div><div class='add'>+</div><div class='add'>+        unsigned int prev_during_gc = during_gc;</div><div class='add'>+        during_gc = FALSE; // stop gc here</div><div class='add'>+        {</div><div class='add'>+            gc_verify_internal_consistency_(objspace);</div><div class='add'>+        }</div><div class='add'>+        during_gc = prev_during_gc;</div><div class='add'>+    }</div><div class='add'>+    RB_VM_LOCK_LEAVE();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_gc_verify_internal_consistency(void)</div><div class='ctx'> {</div><div class='del'>-    gc_verify_internal_consistency(Qnil);</div><div class='add'>+    gc_verify_internal_consistency(&amp;rb_objspace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -5539,6 +8187,27 @@ gc_verify_transient_heap_internal_consistency(VALUE dmy)</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if GC_ENABLE_INCREMENTAL_MARK</div><div class='add'>+static void</div><div class='add'>+heap_move_pooled_pages_to_free_pages(rb_heap_t *heap)</div><div class='add'>+{</div><div class='add'>+    if (heap-&gt;pooled_pages) {</div><div class='add'>+        if (heap-&gt;free_pages) {</div><div class='add'>+            struct heap_page *free_pages_tail = heap-&gt;free_pages;</div><div class='add'>+            while (free_pages_tail-&gt;free_next) {</div><div class='add'>+                free_pages_tail = free_pages_tail-&gt;free_next;</div><div class='add'>+            }</div><div class='add'>+            free_pages_tail-&gt;free_next = heap-&gt;pooled_pages;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            heap-&gt;free_pages = heap-&gt;pooled_pages;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        heap-&gt;pooled_pages = NULL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> /* marks */</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -5548,233 +8217,457 @@ gc_marks_start(rb_objspace_t *objspace, int full_mark)</div><div class='ctx'>     gc_report(1, objspace, "gc_marks_start: (%s)\n", full_mark ? "full" : "minor");</div><div class='ctx'>     gc_mode_transition(objspace, gc_mode_marking);</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     if (full_mark) {</div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='del'>-	objspace-&gt;rincgc.step_slots = (objspace-&gt;marked_slots * 2) / ((objspace-&gt;rincgc.pooled_slots / HEAP_PAGE_OBJ_LIMIT) + 1);</div><div class='add'>+        size_t incremental_marking_steps = (objspace-&gt;rincgc.pooled_slots / INCREMENTAL_MARK_STEP_ALLOCATIONS) + 1;</div><div class='add'>+        objspace-&gt;rincgc.step_slots = (objspace-&gt;marked_slots * 2) / incremental_marking_steps;</div><div class='ctx'> </div><div class='del'>-	if (0) fprintf(stderr, "objspace-&gt;marked_slots: %d, objspace-&gt;rincgc.pooled_page_num: %d, objspace-&gt;rincgc.step_slots: %d, \n",</div><div class='del'>-		       (int)objspace-&gt;marked_slots, (int)objspace-&gt;rincgc.pooled_slots, (int)objspace-&gt;rincgc.step_slots);</div><div class='add'>+        if (0) fprintf(stderr, "objspace-&gt;marked_slots: %"PRIdSIZE", "</div><div class='add'>+                       "objspace-&gt;rincgc.pooled_page_num: %"PRIdSIZE", "</div><div class='add'>+                       "objspace-&gt;rincgc.step_slots: %"PRIdSIZE", \n",</div><div class='add'>+                       objspace-&gt;marked_slots, objspace-&gt;rincgc.pooled_slots, objspace-&gt;rincgc.step_slots);</div><div class='ctx'> #endif</div><div class='del'>-	objspace-&gt;flags.during_minor_gc = FALSE;</div><div class='del'>-	objspace-&gt;profile.major_gc_count++;</div><div class='del'>-	objspace-&gt;rgengc.uncollectible_wb_unprotected_objects = 0;</div><div class='del'>-	objspace-&gt;rgengc.old_objects = 0;</div><div class='del'>-	objspace-&gt;rgengc.last_major_gc = objspace-&gt;profile.count;</div><div class='del'>-	objspace-&gt;marked_slots = 0;</div><div class='del'>-	rgengc_mark_and_rememberset_clear(objspace, heap_eden);</div><div class='add'>+        objspace-&gt;flags.during_minor_gc = FALSE;</div><div class='add'>+        if (ruby_enable_autocompact) {</div><div class='add'>+            objspace-&gt;flags.during_compacting |= TRUE;</div><div class='add'>+        }</div><div class='add'>+        objspace-&gt;profile.major_gc_count++;</div><div class='add'>+        objspace-&gt;rgengc.uncollectible_wb_unprotected_objects = 0;</div><div class='add'>+        objspace-&gt;rgengc.old_objects = 0;</div><div class='add'>+        objspace-&gt;rgengc.last_major_gc = objspace-&gt;profile.count;</div><div class='add'>+        objspace-&gt;marked_slots = 0;</div><div class='add'>+</div><div class='add'>+        for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+            rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+            rb_heap_t *heap = SIZE_POOL_EDEN_HEAP(size_pool);</div><div class='add'>+            rgengc_mark_and_rememberset_clear(objspace, heap);</div><div class='add'>+            heap_move_pooled_pages_to_free_pages(heap);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	objspace-&gt;flags.during_minor_gc = TRUE;</div><div class='del'>-	objspace-&gt;marked_slots =</div><div class='del'>-	  objspace-&gt;rgengc.old_objects + objspace-&gt;rgengc.uncollectible_wb_unprotected_objects; /* uncollectible objects are marked already */</div><div class='del'>-	objspace-&gt;profile.minor_gc_count++;</div><div class='del'>-	rgengc_rememberset_mark(objspace, heap_eden);</div><div class='add'>+        objspace-&gt;flags.during_minor_gc = TRUE;</div><div class='add'>+        objspace-&gt;marked_slots =</div><div class='add'>+          objspace-&gt;rgengc.old_objects + objspace-&gt;rgengc.uncollectible_wb_unprotected_objects; /* uncollectible objects are marked already */</div><div class='add'>+        objspace-&gt;profile.minor_gc_count++;</div><div class='add'>+</div><div class='add'>+        for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+            rgengc_rememberset_mark(objspace, SIZE_POOL_EDEN_HEAP(&amp;size_pools[i]));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'>     gc_mark_roots(objspace, NULL);</div><div class='ctx'> </div><div class='del'>-    gc_report(1, objspace, "gc_marks_start: (%s) end, stack in %d\n", full_mark ? "full" : "minor", (int)mark_stack_size(&amp;objspace-&gt;mark_stack));</div><div class='add'>+    gc_report(1, objspace, "gc_marks_start: (%s) end, stack in %"PRIdSIZE"\n",</div><div class='add'>+              full_mark ? "full" : "minor", mark_stack_size(&amp;objspace-&gt;mark_stack));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='add'>+static inline void</div><div class='add'>+gc_marks_wb_unprotected_objects_plane(rb_objspace_t *objspace, uintptr_t p, bits_t bits)</div><div class='add'>+{</div><div class='add'>+    if (bits) {</div><div class='add'>+        do {</div><div class='add'>+            if (bits &amp; 1) {</div><div class='add'>+                gc_report(2, objspace, "gc_marks_wb_unprotected_objects: marked shady: %s\n", obj_info((VALUE)p));</div><div class='add'>+                GC_ASSERT(RVALUE_WB_UNPROTECTED((VALUE)p));</div><div class='add'>+                GC_ASSERT(RVALUE_MARKED((VALUE)p));</div><div class='add'>+                gc_mark_children(objspace, (VALUE)p);</div><div class='add'>+            }</div><div class='add'>+            p += BASE_SLOT_SIZE;</div><div class='add'>+            bits &gt;&gt;= 1;</div><div class='add'>+        } while (bits);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='del'>-gc_marks_wb_unprotected_objects(rb_objspace_t *objspace)</div><div class='add'>+gc_marks_wb_unprotected_objects(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='ctx'>     struct heap_page *page = 0;</div><div class='ctx'> </div><div class='del'>-    list_for_each(&amp;heap_eden-&gt;pages, page, page_node) {</div><div class='del'>-	bits_t *mark_bits = page-&gt;mark_bits;</div><div class='del'>-	bits_t *wbun_bits = page-&gt;wb_unprotected_bits;</div><div class='del'>-	RVALUE *p = page-&gt;start;</div><div class='del'>-	RVALUE *offset = p - NUM_IN_PAGE(p);</div><div class='del'>-	size_t j;</div><div class='del'>-</div><div class='del'>-	for (j=0; j&lt;HEAP_PAGE_BITMAP_LIMIT; j++) {</div><div class='del'>-	    bits_t bits = mark_bits[j] &amp; wbun_bits[j];</div><div class='del'>-</div><div class='del'>-	    if (bits) {</div><div class='del'>-		p = offset  + j * BITS_BITLENGTH;</div><div class='del'>-</div><div class='del'>-		do {</div><div class='del'>-		    if (bits &amp; 1) {</div><div class='del'>-			gc_report(2, objspace, "gc_marks_wb_unprotected_objects: marked shady: %s\n", obj_info((VALUE)p));</div><div class='del'>-			GC_ASSERT(RVALUE_WB_UNPROTECTED((VALUE)p));</div><div class='del'>-			GC_ASSERT(RVALUE_MARKED((VALUE)p));</div><div class='del'>-			gc_mark_children(objspace, (VALUE)p);</div><div class='del'>-		    }</div><div class='del'>-		    p++;</div><div class='del'>-		    bits &gt;&gt;= 1;</div><div class='del'>-		} while (bits);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='add'>+    ccan_list_for_each(&amp;heap-&gt;pages, page, page_node) {</div><div class='add'>+        bits_t *mark_bits = page-&gt;mark_bits;</div><div class='add'>+        bits_t *wbun_bits = page-&gt;wb_unprotected_bits;</div><div class='add'>+        uintptr_t p = page-&gt;start;</div><div class='add'>+        size_t j;</div><div class='ctx'> </div><div class='del'>-    gc_mark_stacked_objects_all(objspace);</div><div class='del'>-}</div><div class='add'>+        bits_t bits = mark_bits[0] &amp; wbun_bits[0];</div><div class='add'>+        bits &gt;&gt;= NUM_IN_PAGE(p);</div><div class='add'>+        gc_marks_wb_unprotected_objects_plane(objspace, p, bits);</div><div class='add'>+        p += (BITS_BITLENGTH - NUM_IN_PAGE(p)) * BASE_SLOT_SIZE;</div><div class='ctx'> </div><div class='del'>-static struct heap_page *</div><div class='del'>-heap_move_pooled_pages_to_free_pages(rb_heap_t *heap)</div><div class='del'>-{</div><div class='del'>-    struct heap_page *page = heap-&gt;pooled_pages;</div><div class='add'>+        for (j=1; j&lt;HEAP_PAGE_BITMAP_LIMIT; j++) {</div><div class='add'>+            bits_t bits = mark_bits[j] &amp; wbun_bits[j];</div><div class='ctx'> </div><div class='del'>-    if (page) {</div><div class='del'>-	heap-&gt;pooled_pages = page-&gt;free_next;</div><div class='del'>-	page-&gt;free_next = heap-&gt;free_pages;</div><div class='del'>-	heap-&gt;free_pages = page;</div><div class='add'>+            gc_marks_wb_unprotected_objects_plane(objspace, p, bits);</div><div class='add'>+            p += BITS_BITLENGTH * BASE_SLOT_SIZE;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return page;</div><div class='add'>+    gc_mark_stacked_objects_all(objspace);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-static int</div><div class='add'>+static void</div><div class='ctx'> gc_marks_finish(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='ctx'>     /* finish incremental GC */</div><div class='ctx'>     if (is_incremental_marking(objspace)) {</div><div class='del'>-	if (heap_eden-&gt;pooled_pages) {</div><div class='del'>-	    heap_move_pooled_pages_to_free_pages(heap_eden);</div><div class='del'>-	    gc_report(1, objspace, "gc_marks_finish: pooled pages are exists. retry.\n");</div><div class='del'>-	    return FALSE; /* continue marking phase */</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (RGENGC_CHECK_MODE &amp;&amp; is_mark_stack_empty(&amp;objspace-&gt;mark_stack) == 0) {</div><div class='del'>-	    rb_bug("gc_marks_finish: mark stack is not empty (%d).", (int)mark_stack_size(&amp;objspace-&gt;mark_stack));</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gc_mark_roots(objspace, 0);</div><div class='add'>+        if (RGENGC_CHECK_MODE &amp;&amp; is_mark_stack_empty(&amp;objspace-&gt;mark_stack) == 0) {</div><div class='add'>+            rb_bug("gc_marks_finish: mark stack is not empty (%"PRIdSIZE").",</div><div class='add'>+                   mark_stack_size(&amp;objspace-&gt;mark_stack));</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	if (is_mark_stack_empty(&amp;objspace-&gt;mark_stack) == FALSE) {</div><div class='del'>-	    gc_report(1, objspace, "gc_marks_finish: not empty (%d). retry.\n", (int)mark_stack_size(&amp;objspace-&gt;mark_stack));</div><div class='del'>-	    return FALSE;</div><div class='del'>-	}</div><div class='add'>+        gc_mark_roots(objspace, 0);</div><div class='add'>+        while (gc_mark_stacked_objects_incremental(objspace, INT_MAX) == false);</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_CHECK_MODE &gt;= 2</div><div class='del'>-	if (gc_verify_heap_pages(objspace) != 0) {</div><div class='del'>-	    rb_bug("gc_marks_finish (incremental): there are remembered old objects.");</div><div class='del'>-	}</div><div class='add'>+        if (gc_verify_heap_pages(objspace) != 0) {</div><div class='add'>+            rb_bug("gc_marks_finish (incremental): there are remembered old objects.");</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-	objspace-&gt;flags.during_incremental_marking = FALSE;</div><div class='del'>-	/* check children of all marked wb-unprotected objects */</div><div class='del'>-	gc_marks_wb_unprotected_objects(objspace);</div><div class='add'>+        objspace-&gt;flags.during_incremental_marking = FALSE;</div><div class='add'>+        /* check children of all marked wb-unprotected objects */</div><div class='add'>+        for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+            gc_marks_wb_unprotected_objects(objspace, SIZE_POOL_EDEN_HEAP(&amp;size_pools[i]));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif /* GC_ENABLE_INCREMENTAL_MARK */</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_CHECK_MODE &gt;= 2</div><div class='del'>-    gc_verify_internal_consistency(Qnil);</div><div class='add'>+    gc_verify_internal_consistency(objspace);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     if (is_full_marking(objspace)) {</div><div class='del'>-	/* See the comment about RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR */</div><div class='del'>-	const double r = gc_params.oldobject_limit_factor;</div><div class='del'>-	objspace-&gt;rgengc.uncollectible_wb_unprotected_objects_limit = (size_t)(objspace-&gt;rgengc.uncollectible_wb_unprotected_objects * r);</div><div class='del'>-	objspace-&gt;rgengc.old_objects_limit = (size_t)(objspace-&gt;rgengc.old_objects * r);</div><div class='add'>+        /* See the comment about RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR */</div><div class='add'>+        const double r = gc_params.oldobject_limit_factor;</div><div class='add'>+        objspace-&gt;rgengc.uncollectible_wb_unprotected_objects_limit = (size_t)(objspace-&gt;rgengc.uncollectible_wb_unprotected_objects * r);</div><div class='add'>+        objspace-&gt;rgengc.old_objects_limit = (size_t)(objspace-&gt;rgengc.old_objects * r);</div><div class='ctx'>     }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_CHECK_MODE &gt;= 4</div><div class='add'>+    during_gc = FALSE;</div><div class='ctx'>     gc_marks_check(objspace, gc_check_after_marks_i, "after_marks");</div><div class='add'>+    during_gc = TRUE;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	/* decide full GC is needed or not */</div><div class='del'>-	rb_heap_t *heap = heap_eden;</div><div class='del'>-	size_t total_slots = heap_allocatable_pages * HEAP_PAGE_OBJ_LIMIT + heap-&gt;total_slots;</div><div class='del'>-	size_t sweep_slots = total_slots - objspace-&gt;marked_slots; /* will be swept slots */</div><div class='del'>-	size_t max_free_slots = (size_t)(total_slots * gc_params.heap_free_slots_max_ratio);</div><div class='del'>-	size_t min_free_slots = (size_t)(total_slots * gc_params.heap_free_slots_min_ratio);</div><div class='del'>-	int full_marking = is_full_marking(objspace);</div><div class='del'>-</div><div class='del'>-	GC_ASSERT(heap-&gt;total_slots &gt;= objspace-&gt;marked_slots);</div><div class='del'>-</div><div class='del'>-	/* setup free-able page counts */</div><div class='del'>-	if (max_free_slots &lt; gc_params.heap_init_slots) max_free_slots = gc_params.heap_init_slots;</div><div class='del'>-</div><div class='del'>-	if (sweep_slots &gt; max_free_slots) {</div><div class='del'>-	    heap_pages_freeable_pages = (sweep_slots - max_free_slots) / HEAP_PAGE_OBJ_LIMIT;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    heap_pages_freeable_pages = 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* check free_min */</div><div class='del'>-	if (min_free_slots &lt; gc_params.heap_free_slots) min_free_slots = gc_params.heap_free_slots;</div><div class='del'>-</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-	if (sweep_slots &lt; min_free_slots) {</div><div class='del'>-	    if (!full_marking) {</div><div class='del'>-		if (objspace-&gt;profile.count - objspace-&gt;rgengc.last_major_gc &lt; RVALUE_OLD_AGE) {</div><div class='del'>-		    full_marking = TRUE;</div><div class='del'>-		    /* do not update last_major_gc, because full marking is not done. */</div><div class='del'>-		    goto increment;</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    gc_report(1, objspace, "gc_marks_finish: next is full GC!!)\n");</div><div class='del'>-		    objspace-&gt;rgengc.need_major_gc |= GPR_FLAG_MAJOR_BY_NOFREE;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-	      increment:</div><div class='del'>-		gc_report(1, objspace, "gc_marks_finish: heap_set_increment!!\n");</div><div class='del'>-		heap_set_increment(objspace, heap_extend_pages(objspace, sweep_slots, total_slots));</div><div class='del'>-		heap_increment(objspace, heap);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (full_marking) {</div><div class='del'>-	    /* See the comment about RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR */</div><div class='del'>-	    const double r = gc_params.oldobject_limit_factor;</div><div class='del'>-	    objspace-&gt;rgengc.uncollectible_wb_unprotected_objects_limit = (size_t)(objspace-&gt;rgengc.uncollectible_wb_unprotected_objects * r);</div><div class='del'>-	    objspace-&gt;rgengc.old_objects_limit = (size_t)(objspace-&gt;rgengc.old_objects * r);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (objspace-&gt;rgengc.uncollectible_wb_unprotected_objects &gt; objspace-&gt;rgengc.uncollectible_wb_unprotected_objects_limit) {</div><div class='del'>-	    objspace-&gt;rgengc.need_major_gc |= GPR_FLAG_MAJOR_BY_SHADY;</div><div class='del'>-	}</div><div class='del'>-	if (objspace-&gt;rgengc.old_objects &gt; objspace-&gt;rgengc.old_objects_limit) {</div><div class='del'>-	    objspace-&gt;rgengc.need_major_gc |= GPR_FLAG_MAJOR_BY_OLDGEN;</div><div class='del'>-	}</div><div class='del'>-	if (RGENGC_FORCE_MAJOR_GC) {</div><div class='del'>-	    objspace-&gt;rgengc.need_major_gc = GPR_FLAG_MAJOR_BY_FORCE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	gc_report(1, objspace, "gc_marks_finish (marks %d objects, old %d objects, total %d slots, sweep %d slots, increment: %d, next GC: %s)\n",</div><div class='del'>-		  (int)objspace-&gt;marked_slots, (int)objspace-&gt;rgengc.old_objects, (int)heap-&gt;total_slots, (int)sweep_slots, (int)heap_allocatable_pages,</div><div class='del'>-		  objspace-&gt;rgengc.need_major_gc ? "major" : "minor");</div><div class='del'>-#else /* USE_RGENGC */</div><div class='del'>-	if (sweep_slots &lt; min_free_slots) {</div><div class='del'>-	    gc_report(1, objspace, "gc_marks_finish: heap_set_increment!!\n");</div><div class='del'>-	    heap_set_increment(objspace, heap_extend_pages(objspace, sweep_slot, total_slot));</div><div class='del'>-	    heap_increment(objspace, heap);</div><div class='del'>-	}</div><div class='add'>+        /* decide full GC is needed or not */</div><div class='add'>+        size_t total_slots = heap_allocatable_slots(objspace) + heap_eden_total_slots(objspace);</div><div class='add'>+        size_t sweep_slots = total_slots - objspace-&gt;marked_slots; /* will be swept slots */</div><div class='add'>+        size_t max_free_slots = (size_t)(total_slots * gc_params.heap_free_slots_max_ratio);</div><div class='add'>+        size_t min_free_slots = (size_t)(total_slots * gc_params.heap_free_slots_min_ratio);</div><div class='add'>+        int full_marking = is_full_marking(objspace);</div><div class='add'>+        const int r_cnt = GET_VM()-&gt;ractor.cnt;</div><div class='add'>+        const int r_mul = r_cnt &gt; 8 ? 8 : r_cnt; // upto 8</div><div class='add'>+</div><div class='add'>+        GC_ASSERT(heap_eden_total_slots(objspace) &gt;= objspace-&gt;marked_slots);</div><div class='add'>+</div><div class='add'>+        /* setup free-able page counts */</div><div class='add'>+        if (max_free_slots &lt; gc_params.heap_init_slots * r_mul) {</div><div class='add'>+            max_free_slots = gc_params.heap_init_slots * r_mul;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (sweep_slots &gt; max_free_slots) {</div><div class='add'>+            heap_pages_freeable_pages = (sweep_slots - max_free_slots) / HEAP_PAGE_OBJ_LIMIT;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            heap_pages_freeable_pages = 0;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* check free_min */</div><div class='add'>+        if (min_free_slots &lt; gc_params.heap_free_slots * r_mul) {</div><div class='add'>+            min_free_slots = gc_params.heap_free_slots * r_mul;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (sweep_slots &lt; min_free_slots) {</div><div class='add'>+            if (!full_marking) {</div><div class='add'>+                if (objspace-&gt;profile.count - objspace-&gt;rgengc.last_major_gc &lt; RVALUE_OLD_AGE) {</div><div class='add'>+                    full_marking = TRUE;</div><div class='add'>+                    /* do not update last_major_gc, because full marking is not done. */</div><div class='add'>+                    /* goto increment; */</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    gc_report(1, objspace, "gc_marks_finish: next is full GC!!)\n");</div><div class='add'>+                    objspace-&gt;rgengc.need_major_gc |= GPR_FLAG_MAJOR_BY_NOFREE;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+#if !USE_RVARGC</div><div class='add'>+            if (full_marking) {</div><div class='add'>+              /* increment: */</div><div class='add'>+                gc_report(1, objspace, "gc_marks_finish: heap_set_increment!!\n");</div><div class='add'>+                rb_size_pool_t *size_pool = &amp;size_pools[0];</div><div class='add'>+                size_pool_allocatable_pages_set(objspace, size_pool, heap_extend_pages(objspace, size_pool, sweep_slots, total_slots, heap_allocated_pages + heap_allocatable_pages(objspace)));</div><div class='add'>+</div><div class='add'>+                heap_increment(objspace, size_pool, SIZE_POOL_EDEN_HEAP(size_pool));</div><div class='add'>+            }</div><div class='ctx'> #endif</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (full_marking) {</div><div class='add'>+            /* See the comment about RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR */</div><div class='add'>+            const double r = gc_params.oldobject_limit_factor;</div><div class='add'>+            objspace-&gt;rgengc.uncollectible_wb_unprotected_objects_limit = (size_t)(objspace-&gt;rgengc.uncollectible_wb_unprotected_objects * r);</div><div class='add'>+            objspace-&gt;rgengc.old_objects_limit = (size_t)(objspace-&gt;rgengc.old_objects * r);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (objspace-&gt;rgengc.uncollectible_wb_unprotected_objects &gt; objspace-&gt;rgengc.uncollectible_wb_unprotected_objects_limit) {</div><div class='add'>+            objspace-&gt;rgengc.need_major_gc |= GPR_FLAG_MAJOR_BY_SHADY;</div><div class='add'>+        }</div><div class='add'>+        if (objspace-&gt;rgengc.old_objects &gt; objspace-&gt;rgengc.old_objects_limit) {</div><div class='add'>+            objspace-&gt;rgengc.need_major_gc |= GPR_FLAG_MAJOR_BY_OLDGEN;</div><div class='add'>+        }</div><div class='add'>+        if (RGENGC_FORCE_MAJOR_GC) {</div><div class='add'>+            objspace-&gt;rgengc.need_major_gc = GPR_FLAG_MAJOR_BY_FORCE;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        gc_report(1, objspace, "gc_marks_finish (marks %"PRIdSIZE" objects, "</div><div class='add'>+                  "old %"PRIdSIZE" objects, total %"PRIdSIZE" slots, "</div><div class='add'>+                  "sweep %"PRIdSIZE" slots, increment: %"PRIdSIZE", next GC: %s)\n",</div><div class='add'>+                  objspace-&gt;marked_slots, objspace-&gt;rgengc.old_objects, heap_eden_total_slots(objspace), sweep_slots, heap_allocatable_pages(objspace),</div><div class='add'>+                  objspace-&gt;rgengc.need_major_gc ? "major" : "minor");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_transient_heap_finish_marking();</div><div class='add'>+    rb_ractor_finish_marking();</div><div class='ctx'> </div><div class='ctx'>     gc_event_hook(objspace, RUBY_INTERNAL_EVENT_GC_END_MARK, 0);</div><div class='del'>-</div><div class='del'>-    return TRUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if GC_ENABLE_INCREMENTAL_MARK</div><div class='ctx'> static void</div><div class='del'>-gc_marks_step(rb_objspace_t *objspace, int slots)</div><div class='add'>+gc_marks_step(rb_objspace_t *objspace, size_t slots)</div><div class='ctx'> {</div><div class='del'>-#if GC_ENABLE_INCREMENTAL_MARK</div><div class='ctx'>     GC_ASSERT(is_marking(objspace));</div><div class='ctx'> </div><div class='ctx'>     if (gc_mark_stacked_objects_incremental(objspace, slots)) {</div><div class='del'>-	if (gc_marks_finish(objspace)) {</div><div class='del'>-	    /* finish */</div><div class='del'>-	    gc_sweep(objspace);</div><div class='del'>-	}</div><div class='add'>+        gc_marks_finish(objspace);</div><div class='add'>+        gc_sweep(objspace);</div><div class='ctx'>     }</div><div class='del'>-    if (0) fprintf(stderr, "objspace-&gt;marked_slots: %d\n", (int)objspace-&gt;marked_slots);</div><div class='add'>+    if (0) fprintf(stderr, "objspace-&gt;marked_slots: %"PRIdSIZE"\n", objspace-&gt;marked_slots);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+gc_compact_heap_cursors_met_p(rb_heap_t *heap)</div><div class='add'>+{</div><div class='add'>+    return heap-&gt;sweeping_page == heap-&gt;compact_cursor;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static rb_size_pool_t *</div><div class='add'>+gc_compact_destination_pool(rb_objspace_t *objspace, rb_size_pool_t *src_pool, VALUE src)</div><div class='add'>+{</div><div class='add'>+    size_t obj_size;</div><div class='add'>+    size_t idx = 0;</div><div class='add'>+</div><div class='add'>+    switch (BUILTIN_TYPE(src)) {</div><div class='add'>+      case T_ARRAY:</div><div class='add'>+        obj_size = rb_ary_size_as_embedded(src);</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_OBJECT:</div><div class='add'>+        if (rb_shape_obj_too_complex(src)) {</div><div class='add'>+            return &amp;size_pools[0];</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            obj_size = rb_obj_embedded_size(ROBJECT_IV_CAPACITY(src));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_STRING:</div><div class='add'>+        obj_size = rb_str_size_as_embedded(src);</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      default:</div><div class='add'>+        return src_pool;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (rb_gc_size_allocatable_p(obj_size)){</div><div class='add'>+        idx = size_pool_idx_for_size(obj_size);</div><div class='add'>+    }</div><div class='add'>+    return &amp;size_pools[idx];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+gc_compact_move(rb_objspace_t *objspace, rb_heap_t *heap, rb_size_pool_t *size_pool, VALUE src)</div><div class='add'>+{</div><div class='add'>+    GC_ASSERT(BUILTIN_TYPE(src) != T_MOVED);</div><div class='add'>+    GC_ASSERT(gc_is_moveable_obj(objspace, src));</div><div class='add'>+</div><div class='add'>+    rb_size_pool_t *dest_pool = gc_compact_destination_pool(objspace, size_pool, src);</div><div class='add'>+    rb_heap_t *dheap = SIZE_POOL_EDEN_HEAP(dest_pool);</div><div class='add'>+    rb_shape_t *new_shape = NULL;</div><div class='add'>+    rb_shape_t *orig_shape = NULL;</div><div class='add'>+</div><div class='add'>+    if (gc_compact_heap_cursors_met_p(dheap)) {</div><div class='add'>+        return dheap != heap;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(src, T_OBJECT)) {</div><div class='add'>+        orig_shape = rb_shape_get_shape(src);</div><div class='add'>+        if (dheap != heap &amp;&amp; !rb_shape_obj_too_complex(src)) {</div><div class='add'>+            rb_shape_t *initial_shape = rb_shape_get_shape_by_id((shape_id_t)((dest_pool - size_pools) + SIZE_POOL_COUNT));</div><div class='add'>+            new_shape = rb_shape_traverse_from_new_root(initial_shape, orig_shape);</div><div class='add'>+</div><div class='add'>+            if (!new_shape) {</div><div class='add'>+                dest_pool = size_pool;</div><div class='add'>+                dheap = heap;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (!try_move(objspace, dheap, dheap-&gt;free_pages, src)) {</div><div class='add'>+        struct gc_sweep_context ctx = {</div><div class='add'>+            .page = dheap-&gt;sweeping_page,</div><div class='add'>+            .final_slots = 0,</div><div class='add'>+            .freed_slots = 0,</div><div class='add'>+            .empty_slots = 0,</div><div class='add'>+        };</div><div class='add'>+</div><div class='add'>+        /* The page of src could be partially compacted, so it may contain</div><div class='add'>+         * T_MOVED. Sweeping a page may read objects on this page, so we</div><div class='add'>+         * need to lock the page. */</div><div class='add'>+        lock_page_body(objspace, GET_PAGE_BODY(src));</div><div class='add'>+        gc_sweep_page(objspace, dheap, &amp;ctx);</div><div class='add'>+        unlock_page_body(objspace, GET_PAGE_BODY(src));</div><div class='add'>+</div><div class='add'>+        if (dheap-&gt;sweeping_page-&gt;free_slots &gt; 0) {</div><div class='add'>+            heap_add_freepage(dheap, dheap-&gt;sweeping_page);</div><div class='add'>+        };</div><div class='add'>+</div><div class='add'>+        dheap-&gt;sweeping_page = ccan_list_next(&amp;dheap-&gt;pages, dheap-&gt;sweeping_page, page_node);</div><div class='add'>+        if (gc_compact_heap_cursors_met_p(dheap)) {</div><div class='add'>+            return dheap != heap;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (orig_shape) {</div><div class='add'>+        if (new_shape) {</div><div class='add'>+            VALUE dest = rb_gc_location(src);</div><div class='add'>+            rb_shape_set_shape(dest, new_shape);</div><div class='add'>+        }</div><div class='add'>+        RMOVED(src)-&gt;original_shape_id = rb_shape_id(orig_shape);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+gc_compact_plane(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap, uintptr_t p, bits_t bitset, struct heap_page *page)</div><div class='add'>+{</div><div class='add'>+    short slot_size = page-&gt;slot_size;</div><div class='add'>+    short slot_bits = slot_size / BASE_SLOT_SIZE;</div><div class='add'>+    GC_ASSERT(slot_bits &gt; 0);</div><div class='add'>+</div><div class='add'>+    do {</div><div class='add'>+        VALUE vp = (VALUE)p;</div><div class='add'>+        GC_ASSERT(vp % sizeof(RVALUE) == 0);</div><div class='add'>+</div><div class='add'>+        if (bitset &amp; 1) {</div><div class='add'>+            objspace-&gt;rcompactor.considered_count_table[BUILTIN_TYPE(vp)]++;</div><div class='add'>+</div><div class='add'>+            if (gc_is_moveable_obj(objspace, vp)) {</div><div class='add'>+                if (!gc_compact_move(objspace, heap, size_pool, vp)) {</div><div class='add'>+                    //the cursors met. bubble up</div><div class='add'>+                    return false;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        p += slot_size;</div><div class='add'>+        bitset &gt;&gt;= slot_bits;</div><div class='add'>+    } while (bitset);</div><div class='add'>+</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Iterate up all the objects in page, moving them to where they want to go</div><div class='add'>+static bool</div><div class='add'>+gc_compact_page(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap, struct heap_page *page)</div><div class='add'>+{</div><div class='add'>+    GC_ASSERT(page == heap-&gt;compact_cursor);</div><div class='add'>+</div><div class='add'>+    bits_t *mark_bits, *pin_bits;</div><div class='add'>+    bits_t bitset;</div><div class='add'>+    uintptr_t p = page-&gt;start;</div><div class='add'>+</div><div class='add'>+    mark_bits = page-&gt;mark_bits;</div><div class='add'>+    pin_bits = page-&gt;pinned_bits;</div><div class='add'>+</div><div class='add'>+    // objects that can be moved are marked and not pinned</div><div class='add'>+    bitset = (mark_bits[0] &amp; ~pin_bits[0]);</div><div class='add'>+    bitset &gt;&gt;= NUM_IN_PAGE(p);</div><div class='add'>+    if (bitset) {</div><div class='add'>+        if (!gc_compact_plane(objspace, size_pool, heap, (uintptr_t)p, bitset, page))</div><div class='add'>+            return false;</div><div class='add'>+    }</div><div class='add'>+    p += (BITS_BITLENGTH - NUM_IN_PAGE(p)) * BASE_SLOT_SIZE;</div><div class='add'>+</div><div class='add'>+    for (int j = 1; j &lt; HEAP_PAGE_BITMAP_LIMIT; j++) {</div><div class='add'>+        bitset = (mark_bits[j] &amp; ~pin_bits[j]);</div><div class='add'>+        if (bitset) {</div><div class='add'>+            if (!gc_compact_plane(objspace, size_pool, heap, (uintptr_t)p, bitset, page))</div><div class='add'>+                return false;</div><div class='add'>+        }</div><div class='add'>+        p += BITS_BITLENGTH * BASE_SLOT_SIZE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+gc_compact_all_compacted_p(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        rb_heap_t *heap = SIZE_POOL_EDEN_HEAP(size_pool);</div><div class='add'>+</div><div class='add'>+        if (heap-&gt;total_pages &gt; 0 &amp;&amp;</div><div class='add'>+                !gc_compact_heap_cursors_met_p(heap)) {</div><div class='add'>+            return false;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return true;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_sweep_compact(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    gc_compact_start(objspace);</div><div class='add'>+#if RGENGC_CHECK_MODE &gt;= 2</div><div class='add'>+    gc_verify_internal_consistency(objspace);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    while (!gc_compact_all_compacted_p(objspace)) {</div><div class='add'>+        for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+            rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+            rb_heap_t *heap = SIZE_POOL_EDEN_HEAP(size_pool);</div><div class='add'>+</div><div class='add'>+            if (gc_compact_heap_cursors_met_p(heap)) {</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            struct heap_page *start_page = heap-&gt;compact_cursor;</div><div class='add'>+</div><div class='add'>+            if (!gc_compact_page(objspace, size_pool, heap, start_page)) {</div><div class='add'>+                lock_page_body(objspace, GET_PAGE_BODY(start_page-&gt;start));</div><div class='add'>+</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            // If we get here, we've finished moving all objects on the compact_cursor page</div><div class='add'>+            // So we can lock it and move the cursor on to the next one.</div><div class='add'>+            lock_page_body(objspace, GET_PAGE_BODY(start_page-&gt;start));</div><div class='add'>+            heap-&gt;compact_cursor = ccan_list_prev(&amp;heap-&gt;pages, heap-&gt;compact_cursor, page_node);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    gc_compact_finish(objspace);</div><div class='add'>+</div><div class='add'>+#if RGENGC_CHECK_MODE &gt;= 2</div><div class='add'>+    gc_verify_internal_consistency(objspace);</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5784,60 +8677,44 @@ gc_marks_rest(rb_objspace_t *objspace)</div><div class='ctx'>     gc_report(1, objspace, "gc_marks_rest\n");</div><div class='ctx'> </div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='del'>-    heap_eden-&gt;pooled_pages = NULL;</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        SIZE_POOL_EDEN_HEAP(&amp;size_pools[i])-&gt;pooled_pages = NULL;</div><div class='add'>+    }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     if (is_incremental_marking(objspace)) {</div><div class='del'>-	do {</div><div class='del'>-	    while (gc_mark_stacked_objects_incremental(objspace, INT_MAX) == FALSE);</div><div class='del'>-	} while (gc_marks_finish(objspace) == FALSE);</div><div class='add'>+        while (gc_mark_stacked_objects_incremental(objspace, INT_MAX) == FALSE);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	gc_mark_stacked_objects_all(objspace);</div><div class='del'>-	gc_marks_finish(objspace);</div><div class='add'>+        gc_mark_stacked_objects_all(objspace);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    gc_marks_finish(objspace);</div><div class='add'>+</div><div class='ctx'>     /* move to sweep */</div><div class='ctx'>     gc_sweep(objspace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-gc_marks_continue(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='add'>+gc_marks_continue(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='del'>-    GC_ASSERT(dont_gc == FALSE);</div><div class='add'>+    GC_ASSERT(dont_gc_val() == FALSE);</div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='ctx'> </div><div class='del'>-    gc_enter(objspace, "marks_continue");</div><div class='add'>+    unsigned int lock_lev;</div><div class='add'>+    gc_enter(objspace, gc_enter_event_mark_continue, &amp;lock_lev);</div><div class='ctx'> </div><div class='del'>-    PUSH_MARK_FUNC_DATA(NULL);</div><div class='del'>-    {</div><div class='del'>-        int slots = 0;</div><div class='del'>-        const char *from;</div><div class='del'>-</div><div class='del'>-	if (heap-&gt;pooled_pages) {</div><div class='del'>-	    while (heap-&gt;pooled_pages &amp;&amp; slots &lt; HEAP_PAGE_OBJ_LIMIT) {</div><div class='del'>-		struct heap_page *page = heap_move_pooled_pages_to_free_pages(heap);</div><div class='del'>-		slots += page-&gt;free_slots;</div><div class='del'>-	    }</div><div class='del'>-	    from = "pooled-pages";</div><div class='del'>-	}</div><div class='del'>-	else if (heap_increment(objspace, heap)) {</div><div class='del'>-	    slots = heap-&gt;free_pages-&gt;free_slots;</div><div class='del'>-	    from = "incremented-pages";</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (slots &gt; 0) {</div><div class='del'>-	    gc_report(2, objspace, "gc_marks_continue: provide %d slots from %s.\n", slots, from);</div><div class='del'>-	    gc_marks_step(objspace, (int)objspace-&gt;rincgc.step_slots);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    gc_report(2, objspace, "gc_marks_continue: no more pooled pages (stack depth: %d).\n", (int)mark_stack_size(&amp;objspace-&gt;mark_stack));</div><div class='del'>-	    gc_marks_rest(objspace);</div><div class='del'>-	}</div><div class='add'>+    if (heap-&gt;free_pages) {</div><div class='add'>+        gc_report(2, objspace, "gc_marks_continue: has pooled pages");</div><div class='add'>+        gc_marks_step(objspace, objspace-&gt;rincgc.step_slots);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        gc_report(2, objspace, "gc_marks_continue: no more pooled pages (stack depth: %"PRIdSIZE").\n",</div><div class='add'>+                  mark_stack_size(&amp;objspace-&gt;mark_stack));</div><div class='add'>+        gc_marks_rest(objspace);</div><div class='ctx'>     }</div><div class='del'>-    POP_MARK_FUNC_DATA();</div><div class='ctx'> </div><div class='del'>-    gc_exit(objspace, "marks_continue");</div><div class='add'>+    gc_exit(objspace, gc_enter_event_mark_continue, &amp;lock_lev);</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5846,29 +8723,19 @@ gc_marks(rb_objspace_t *objspace, int full_mark)</div><div class='ctx'> {</div><div class='ctx'>     gc_prof_mark_timer_start(objspace);</div><div class='ctx'> </div><div class='del'>-    PUSH_MARK_FUNC_DATA(NULL);</div><div class='del'>-    {</div><div class='del'>-	/* setup marking */</div><div class='add'>+    /* setup marking */</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='del'>-	gc_marks_start(objspace, full_mark);</div><div class='del'>-	if (!is_incremental_marking(objspace)) {</div><div class='del'>-	    gc_marks_rest(objspace);</div><div class='del'>-	}</div><div class='add'>+    gc_marks_start(objspace, full_mark);</div><div class='add'>+    if (!is_incremental_marking(objspace)) {</div><div class='add'>+        gc_marks_rest(objspace);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_PROFILE &gt; 0</div><div class='del'>-	if (gc_prof_record(objspace)) {</div><div class='del'>-	    gc_profile_record *record = gc_prof_record(objspace);</div><div class='del'>-	    record-&gt;old_objects = objspace-&gt;rgengc.old_objects;</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#else /* USE_RGENGC */</div><div class='del'>-	gc_marks_start(objspace, TRUE);</div><div class='del'>-	gc_marks_rest(objspace);</div><div class='del'>-#endif</div><div class='add'>+    if (gc_prof_record(objspace)) {</div><div class='add'>+        gc_profile_record *record = gc_prof_record(objspace);</div><div class='add'>+        record-&gt;old_objects = objspace-&gt;rgengc.old_objects;</div><div class='ctx'>     }</div><div class='del'>-    POP_MARK_FUNC_DATA();</div><div class='add'>+#endif</div><div class='ctx'>     gc_prof_mark_timer_stop(objspace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5878,36 +8745,32 @@ static void</div><div class='ctx'> gc_report_body(int level, rb_objspace_t *objspace, const char *fmt, ...)</div><div class='ctx'> {</div><div class='ctx'>     if (level &lt;= RGENGC_DEBUG) {</div><div class='del'>-	char buf[1024];</div><div class='del'>-	FILE *out = stderr;</div><div class='del'>-	va_list args;</div><div class='del'>-	const char *status = " ";</div><div class='add'>+        char buf[1024];</div><div class='add'>+        FILE *out = stderr;</div><div class='add'>+        va_list args;</div><div class='add'>+        const char *status = " ";</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='del'>-	if (during_gc) {</div><div class='del'>-	    status = is_full_marking(objspace) ? "+" : "-";</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (is_lazy_sweeping(heap_eden)) {</div><div class='del'>-		status = "S";</div><div class='del'>-	    }</div><div class='del'>-	    if (is_incremental_marking(objspace)) {</div><div class='del'>-		status = "M";</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='add'>+        if (during_gc) {</div><div class='add'>+            status = is_full_marking(objspace) ? "+" : "-";</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (is_lazy_sweeping(objspace)) {</div><div class='add'>+                status = "S";</div><div class='add'>+            }</div><div class='add'>+            if (is_incremental_marking(objspace)) {</div><div class='add'>+                status = "M";</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	va_start(args, fmt);</div><div class='del'>-	vsnprintf(buf, 1024, fmt, args);</div><div class='del'>-	va_end(args);</div><div class='add'>+        va_start(args, fmt);</div><div class='add'>+        vsnprintf(buf, 1024, fmt, args);</div><div class='add'>+        va_end(args);</div><div class='ctx'> </div><div class='del'>-	fprintf(out, "%s|", status);</div><div class='del'>-	fputs(buf, out);</div><div class='add'>+        fprintf(out, "%s|", status);</div><div class='add'>+        fputs(buf, out);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='del'>-</div><div class='ctx'> /* bit operations */</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -5925,12 +8788,12 @@ rgengc_remembersetbits_set(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'>     GC_ASSERT(!is_incremental_marking(objspace));</div><div class='ctx'> </div><div class='ctx'>     if (MARKED_IN_BITMAP(bits, obj)) {</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	page-&gt;flags.has_remembered_objects = TRUE;</div><div class='del'>-	MARK_IN_BITMAP(bits, obj);</div><div class='del'>-	return TRUE;</div><div class='add'>+        page-&gt;flags.has_remembered_objects = TRUE;</div><div class='add'>+        MARK_IN_BITMAP(bits, obj);</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5941,22 +8804,22 @@ static int</div><div class='ctx'> rgengc_remember(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     gc_report(6, objspace, "rgengc_remember: %s %s\n", obj_info(obj),</div><div class='del'>-	      rgengc_remembersetbits_get(objspace, obj) ? "was already remembered" : "is remembered now");</div><div class='add'>+              rgengc_remembersetbits_get(objspace, obj) ? "was already remembered" : "is remembered now");</div><div class='ctx'> </div><div class='ctx'>     check_rvalue_consistency(obj);</div><div class='ctx'> </div><div class='ctx'>     if (RGENGC_CHECK_MODE) {</div><div class='del'>-	if (RVALUE_WB_UNPROTECTED(obj)) rb_bug("rgengc_remember: %s is not wb protected.", obj_info(obj));</div><div class='add'>+        if (RVALUE_WB_UNPROTECTED(obj)) rb_bug("rgengc_remember: %s is not wb protected.", obj_info(obj));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_PROFILE &gt; 0</div><div class='ctx'>     if (!rgengc_remembered(objspace, obj)) {</div><div class='del'>-	if (RVALUE_WB_UNPROTECTED(obj) == 0) {</div><div class='del'>-	    objspace-&gt;profile.total_remembered_normal_object_count++;</div><div class='add'>+        if (RVALUE_WB_UNPROTECTED(obj) == 0) {</div><div class='add'>+            objspace-&gt;profile.total_remembered_normal_object_count++;</div><div class='ctx'> #if RGENGC_PROFILE &gt;= 2</div><div class='del'>-	    objspace-&gt;profile.remembered_normal_object_count_types[BUILTIN_TYPE(obj)]++;</div><div class='add'>+            objspace-&gt;profile.remembered_normal_object_count_types[BUILTIN_TYPE(obj)]++;</div><div class='ctx'> #endif</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif /* RGENGC_PROFILE &gt; 0 */</div><div class='ctx'> </div><div class='hunk'>@@ -5964,18 +8827,43 @@ rgengc_remember(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-rgengc_remembered(rb_objspace_t *objspace, VALUE obj)</div><div class='add'>+rgengc_remembered_sweep(rb_objspace_t *objspace, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     int result = rgengc_remembersetbits_get(objspace, obj);</div><div class='ctx'>     check_rvalue_consistency(obj);</div><div class='del'>-    gc_report(6, objspace, "rgengc_remembered: %s\n", obj_info(obj));</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+rgengc_remembered(rb_objspace_t *objspace, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    gc_report(6, objspace, "rgengc_remembered: %s\n", obj_info(obj));</div><div class='add'>+    return rgengc_remembered_sweep(objspace, obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #ifndef PROFILE_REMEMBERSET_MARK</div><div class='ctx'> #define PROFILE_REMEMBERSET_MARK 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+static inline void</div><div class='add'>+rgengc_rememberset_mark_plane(rb_objspace_t *objspace, uintptr_t p, bits_t bitset)</div><div class='add'>+{</div><div class='add'>+    if (bitset) {</div><div class='add'>+        do {</div><div class='add'>+            if (bitset &amp; 1) {</div><div class='add'>+                VALUE obj = (VALUE)p;</div><div class='add'>+                gc_report(2, objspace, "rgengc_rememberset_mark: mark %s\n", obj_info(obj));</div><div class='add'>+                GC_ASSERT(RVALUE_UNCOLLECTIBLE(obj));</div><div class='add'>+                GC_ASSERT(RVALUE_OLD_P(obj) || RVALUE_WB_UNPROTECTED(obj));</div><div class='add'>+</div><div class='add'>+                gc_mark_children(objspace, obj);</div><div class='add'>+            }</div><div class='add'>+            p += BASE_SLOT_SIZE;</div><div class='add'>+            bitset &gt;&gt;= 1;</div><div class='add'>+        } while (bitset);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> rgengc_rememberset_mark(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='hunk'>@@ -5986,50 +8874,39 @@ rgengc_rememberset_mark(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='ctx'> #endif</div><div class='ctx'>     gc_report(1, objspace, "rgengc_rememberset_mark: start\n");</div><div class='ctx'> </div><div class='del'>-    list_for_each(&amp;heap-&gt;pages, page, page_node) {</div><div class='del'>-	if (page-&gt;flags.has_remembered_objects | page-&gt;flags.has_uncollectible_shady_objects) {</div><div class='del'>-	    RVALUE *p = page-&gt;start;</div><div class='del'>-	    RVALUE *offset = p - NUM_IN_PAGE(p);</div><div class='del'>-	    bits_t bitset, bits[HEAP_PAGE_BITMAP_LIMIT];</div><div class='del'>-	    bits_t *marking_bits = page-&gt;marking_bits;</div><div class='del'>-	    bits_t *uncollectible_bits = page-&gt;uncollectible_bits;</div><div class='del'>-	    bits_t *wb_unprotected_bits = page-&gt;wb_unprotected_bits;</div><div class='add'>+    ccan_list_for_each(&amp;heap-&gt;pages, page, page_node) {</div><div class='add'>+        if (page-&gt;flags.has_remembered_objects | page-&gt;flags.has_uncollectible_shady_objects) {</div><div class='add'>+            uintptr_t p = page-&gt;start;</div><div class='add'>+            bits_t bitset, bits[HEAP_PAGE_BITMAP_LIMIT];</div><div class='add'>+            bits_t *marking_bits = page-&gt;marking_bits;</div><div class='add'>+            bits_t *uncollectible_bits = page-&gt;uncollectible_bits;</div><div class='add'>+            bits_t *wb_unprotected_bits = page-&gt;wb_unprotected_bits;</div><div class='ctx'> #if PROFILE_REMEMBERSET_MARK</div><div class='del'>-	    if (page-&gt;flags.has_remembered_objects &amp;&amp; page-&gt;flags.has_uncollectible_shady_objects) has_both++;</div><div class='del'>-	    else if (page-&gt;flags.has_remembered_objects) has_old++;</div><div class='del'>-	    else if (page-&gt;flags.has_uncollectible_shady_objects) has_shady++;</div><div class='del'>-#endif</div><div class='del'>-	    for (j=0; j&lt;HEAP_PAGE_BITMAP_LIMIT; j++) {</div><div class='del'>-		bits[j] = marking_bits[j] | (uncollectible_bits[j] &amp; wb_unprotected_bits[j]);</div><div class='del'>-		marking_bits[j] = 0;</div><div class='del'>-	    }</div><div class='del'>-	    page-&gt;flags.has_remembered_objects = FALSE;</div><div class='del'>-</div><div class='del'>-	    for (j=0; j &lt; HEAP_PAGE_BITMAP_LIMIT; j++) {</div><div class='del'>-		bitset = bits[j];</div><div class='del'>-</div><div class='del'>-		if (bitset) {</div><div class='del'>-		    p = offset  + j * BITS_BITLENGTH;</div><div class='del'>-</div><div class='del'>-		    do {</div><div class='del'>-			if (bitset &amp; 1) {</div><div class='del'>-			    VALUE obj = (VALUE)p;</div><div class='del'>-			    gc_report(2, objspace, "rgengc_rememberset_mark: mark %s\n", obj_info(obj));</div><div class='del'>-			    GC_ASSERT(RVALUE_UNCOLLECTIBLE(obj));</div><div class='del'>-			    GC_ASSERT(RVALUE_OLD_P(obj) || RVALUE_WB_UNPROTECTED(obj));</div><div class='del'>-</div><div class='del'>-			    gc_mark_children(objspace, obj);</div><div class='del'>-			}</div><div class='del'>-			p++;</div><div class='del'>-			bitset &gt;&gt;= 1;</div><div class='del'>-		    } while (bitset);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+            if (page-&gt;flags.has_remembered_objects &amp;&amp; page-&gt;flags.has_uncollectible_shady_objects) has_both++;</div><div class='add'>+            else if (page-&gt;flags.has_remembered_objects) has_old++;</div><div class='add'>+            else if (page-&gt;flags.has_uncollectible_shady_objects) has_shady++;</div><div class='add'>+#endif</div><div class='add'>+            for (j=0; j&lt;HEAP_PAGE_BITMAP_LIMIT; j++) {</div><div class='add'>+                bits[j] = marking_bits[j] | (uncollectible_bits[j] &amp; wb_unprotected_bits[j]);</div><div class='add'>+                marking_bits[j] = 0;</div><div class='add'>+            }</div><div class='add'>+            page-&gt;flags.has_remembered_objects = FALSE;</div><div class='add'>+</div><div class='add'>+            bitset = bits[0];</div><div class='add'>+            bitset &gt;&gt;= NUM_IN_PAGE(p);</div><div class='add'>+            rgengc_rememberset_mark_plane(objspace, p, bitset);</div><div class='add'>+            p += (BITS_BITLENGTH - NUM_IN_PAGE(p)) * BASE_SLOT_SIZE;</div><div class='add'>+</div><div class='add'>+            for (j=1; j &lt; HEAP_PAGE_BITMAP_LIMIT; j++) {</div><div class='add'>+                bitset = bits[j];</div><div class='add'>+                rgengc_rememberset_mark_plane(objspace, p, bitset);</div><div class='add'>+                p += BITS_BITLENGTH * BASE_SLOT_SIZE;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> #if PROFILE_REMEMBERSET_MARK</div><div class='del'>-	else {</div><div class='del'>-	    skip++;</div><div class='del'>-	}</div><div class='add'>+        else {</div><div class='add'>+            skip++;</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -6044,12 +8921,13 @@ rgengc_mark_and_rememberset_clear(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='ctx'>     struct heap_page *page = 0;</div><div class='ctx'> </div><div class='del'>-    list_for_each(&amp;heap-&gt;pages, page, page_node) {</div><div class='del'>-	memset(&amp;page-&gt;mark_bits[0],       0, HEAP_PAGE_BITMAP_SIZE);</div><div class='del'>-	memset(&amp;page-&gt;marking_bits[0],    0, HEAP_PAGE_BITMAP_SIZE);</div><div class='del'>-	memset(&amp;page-&gt;uncollectible_bits[0], 0, HEAP_PAGE_BITMAP_SIZE);</div><div class='del'>-	page-&gt;flags.has_uncollectible_shady_objects = FALSE;</div><div class='del'>-	page-&gt;flags.has_remembered_objects = FALSE;</div><div class='add'>+    ccan_list_for_each(&amp;heap-&gt;pages, page, page_node) {</div><div class='add'>+        memset(&amp;page-&gt;mark_bits[0],       0, HEAP_PAGE_BITMAP_SIZE);</div><div class='add'>+        memset(&amp;page-&gt;uncollectible_bits[0], 0, HEAP_PAGE_BITMAP_SIZE);</div><div class='add'>+        memset(&amp;page-&gt;marking_bits[0],    0, HEAP_PAGE_BITMAP_SIZE);</div><div class='add'>+        memset(&amp;page-&gt;pinned_bits[0],     0, HEAP_PAGE_BITMAP_SIZE);</div><div class='add'>+        page-&gt;flags.has_uncollectible_shady_objects = FALSE;</div><div class='add'>+        page-&gt;flags.has_remembered_objects = FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6061,26 +8939,30 @@ static void</div><div class='ctx'> gc_writebarrier_generational(VALUE a, VALUE b, rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     if (RGENGC_CHECK_MODE) {</div><div class='del'>-	if (!RVALUE_OLD_P(a)) rb_bug("gc_writebarrier_generational: %s is not an old object.", obj_info(a));</div><div class='del'>-	if ( RVALUE_OLD_P(b)) rb_bug("gc_writebarrier_generational: %s is an old object.", obj_info(b));</div><div class='del'>-	if (is_incremental_marking(objspace)) rb_bug("gc_writebarrier_generational: called while incremental marking: %s -&gt; %s", obj_info(a), obj_info(b));</div><div class='add'>+        if (!RVALUE_OLD_P(a)) rb_bug("gc_writebarrier_generational: %s is not an old object.", obj_info(a));</div><div class='add'>+        if ( RVALUE_OLD_P(b)) rb_bug("gc_writebarrier_generational: %s is an old object.", obj_info(b));</div><div class='add'>+        if (is_incremental_marking(objspace)) rb_bug("gc_writebarrier_generational: called while incremental marking: %s -&gt; %s", obj_info(a), obj_info(b));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> #if 1</div><div class='ctx'>     /* mark `a' and remember (default behavior) */</div><div class='ctx'>     if (!rgengc_remembered(objspace, a)) {</div><div class='del'>-	rgengc_remember(objspace, a);</div><div class='del'>-	gc_report(1, objspace, "gc_writebarrier_generational: %s (remembered) -&gt; %s\n", obj_info(a), obj_info(b));</div><div class='add'>+        RB_VM_LOCK_ENTER_NO_BARRIER();</div><div class='add'>+        {</div><div class='add'>+            rgengc_remember(objspace, a);</div><div class='add'>+        }</div><div class='add'>+        RB_VM_LOCK_LEAVE_NO_BARRIER();</div><div class='add'>+        gc_report(1, objspace, "gc_writebarrier_generational: %s (remembered) -&gt; %s\n", obj_info(a), obj_info(b));</div><div class='ctx'>     }</div><div class='ctx'> #else</div><div class='ctx'>     /* mark `b' and remember */</div><div class='ctx'>     MARK_IN_BITMAP(GET_HEAP_MARK_BITS(b), b);</div><div class='ctx'>     if (RVALUE_WB_UNPROTECTED(b)) {</div><div class='del'>-	gc_remember_unprotected(objspace, b);</div><div class='add'>+        gc_remember_unprotected(objspace, b);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	RVALUE_AGE_SET_OLD(objspace, b);</div><div class='del'>-	rgengc_remember(objspace, b);</div><div class='add'>+        RVALUE_AGE_SET_OLD(objspace, b);</div><div class='add'>+        rgengc_remember(objspace, b);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     gc_report(1, objspace, "gc_writebarrier_generational: %s -&gt; %s (remembered)\n", obj_info(a), obj_info(b));</div><div class='hunk'>@@ -6109,26 +8991,30 @@ gc_writebarrier_incremental(VALUE a, VALUE b, rb_objspace_t *objspace)</div><div class='ctx'>     gc_report(2, objspace, "gc_writebarrier_incremental: [LG] %p -&gt; %s\n", (void *)a, obj_info(b));</div><div class='ctx'> </div><div class='ctx'>     if (RVALUE_BLACK_P(a)) {</div><div class='del'>-	if (RVALUE_WHITE_P(b)) {</div><div class='del'>-	    if (!RVALUE_WB_UNPROTECTED(a)) {</div><div class='del'>-		gc_report(2, objspace, "gc_writebarrier_incremental: [IN] %p -&gt; %s\n", (void *)a, obj_info(b));</div><div class='del'>-		gc_mark_from(objspace, b, a);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else if (RVALUE_OLD_P(a) &amp;&amp; !RVALUE_OLD_P(b)) {</div><div class='del'>-	    if (!RVALUE_WB_UNPROTECTED(b)) {</div><div class='del'>-		gc_report(1, objspace, "gc_writebarrier_incremental: [GN] %p -&gt; %s\n", (void *)a, obj_info(b));</div><div class='del'>-		RVALUE_AGE_SET_OLD(objspace, b);</div><div class='del'>-</div><div class='del'>-		if (RVALUE_BLACK_P(b)) {</div><div class='del'>-		    gc_grey(objspace, b);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		gc_report(1, objspace, "gc_writebarrier_incremental: [LL] %p -&gt; %s\n", (void *)a, obj_info(b));</div><div class='del'>-		gc_remember_unprotected(objspace, b);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        if (RVALUE_WHITE_P(b)) {</div><div class='add'>+            if (!RVALUE_WB_UNPROTECTED(a)) {</div><div class='add'>+                gc_report(2, objspace, "gc_writebarrier_incremental: [IN] %p -&gt; %s\n", (void *)a, obj_info(b));</div><div class='add'>+                gc_mark_from(objspace, b, a);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else if (RVALUE_OLD_P(a) &amp;&amp; !RVALUE_OLD_P(b)) {</div><div class='add'>+            if (!RVALUE_WB_UNPROTECTED(b)) {</div><div class='add'>+                gc_report(1, objspace, "gc_writebarrier_incremental: [GN] %p -&gt; %s\n", (void *)a, obj_info(b));</div><div class='add'>+                RVALUE_AGE_SET_OLD(objspace, b);</div><div class='add'>+</div><div class='add'>+                if (RVALUE_BLACK_P(b)) {</div><div class='add'>+                    gc_grey(objspace, b);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                gc_report(1, objspace, "gc_writebarrier_incremental: [LL] %p -&gt; %s\n", (void *)a, obj_info(b));</div><div class='add'>+                gc_remember_unprotected(objspace, b);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (UNLIKELY(objspace-&gt;flags.during_compacting)) {</div><div class='add'>+            MARK_IN_BITMAP(GET_HEAP_PINNED_BITS(b), b);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='hunk'>@@ -6140,53 +9026,74 @@ rb_gc_writebarrier(VALUE a, VALUE b)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'> </div><div class='del'>-    if (RGENGC_CHECK_MODE &amp;&amp; SPECIAL_CONST_P(a)) rb_bug("rb_gc_writebarrier: a is special const");</div><div class='del'>-    if (RGENGC_CHECK_MODE &amp;&amp; SPECIAL_CONST_P(b)) rb_bug("rb_gc_writebarrier: b is special const");</div><div class='add'>+    if (RGENGC_CHECK_MODE) {</div><div class='add'>+        if (SPECIAL_CONST_P(a)) rb_bug("rb_gc_writebarrier: a is special const: %"PRIxVALUE, a);</div><div class='add'>+        if (SPECIAL_CONST_P(b)) rb_bug("rb_gc_writebarrier: b is special const: %"PRIxVALUE, b);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='add'>+  retry:</div><div class='ctx'>     if (!is_incremental_marking(objspace)) {</div><div class='del'>-	if (!RVALUE_OLD_P(a) || RVALUE_OLD_P(b)) {</div><div class='del'>-	    return;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    gc_writebarrier_generational(a, b, objspace);</div><div class='del'>-	}</div><div class='add'>+        if (!RVALUE_OLD_P(a) || RVALUE_OLD_P(b)) {</div><div class='add'>+            // do nothing</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            gc_writebarrier_generational(a, b, objspace);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    else { /* slow path */</div><div class='del'>-	gc_writebarrier_incremental(a, b, objspace);</div><div class='add'>+    else {</div><div class='add'>+        bool retry = false;</div><div class='add'>+        /* slow path */</div><div class='add'>+        RB_VM_LOCK_ENTER_NO_BARRIER();</div><div class='add'>+        {</div><div class='add'>+            if (is_incremental_marking(objspace)) {</div><div class='add'>+                gc_writebarrier_incremental(a, b, objspace);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                retry = true;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        RB_VM_LOCK_LEAVE_NO_BARRIER();</div><div class='add'>+</div><div class='add'>+        if (retry) goto retry;</div><div class='ctx'>     }</div><div class='add'>+    return;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_gc_writebarrier_unprotect(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (RVALUE_WB_UNPROTECTED(obj)) {</div><div class='del'>-	return;</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+        rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'> </div><div class='del'>-	gc_report(2, objspace, "rb_gc_writebarrier_unprotect: %s %s\n", obj_info(obj),</div><div class='del'>-		  rgengc_remembered(objspace, obj) ? " (already remembered)" : "");</div><div class='add'>+        gc_report(2, objspace, "rb_gc_writebarrier_unprotect: %s %s\n", obj_info(obj),</div><div class='add'>+                  rgengc_remembered(objspace, obj) ? " (already remembered)" : "");</div><div class='ctx'> </div><div class='del'>-	if (RVALUE_OLD_P(obj)) {</div><div class='del'>-	    gc_report(1, objspace, "rb_gc_writebarrier_unprotect: %s\n", obj_info(obj));</div><div class='del'>-	    RVALUE_DEMOTE(objspace, obj);</div><div class='del'>-	    gc_mark_set(objspace, obj);</div><div class='del'>-	    gc_remember_unprotected(objspace, obj);</div><div class='add'>+        RB_VM_LOCK_ENTER_NO_BARRIER();</div><div class='add'>+        {</div><div class='add'>+            if (RVALUE_OLD_P(obj)) {</div><div class='add'>+                gc_report(1, objspace, "rb_gc_writebarrier_unprotect: %s\n", obj_info(obj));</div><div class='add'>+                RVALUE_DEMOTE(objspace, obj);</div><div class='add'>+                gc_mark_set(objspace, obj);</div><div class='add'>+                gc_remember_unprotected(objspace, obj);</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_PROFILE</div><div class='del'>-	    objspace-&gt;profile.total_shade_operation_count++;</div><div class='add'>+                objspace-&gt;profile.total_shade_operation_count++;</div><div class='ctx'> #if RGENGC_PROFILE &gt;= 2</div><div class='del'>-	    objspace-&gt;profile.shade_operation_count_types[BUILTIN_TYPE(obj)]++;</div><div class='add'>+                objspace-&gt;profile.shade_operation_count_types[BUILTIN_TYPE(obj)]++;</div><div class='ctx'> #endif /* RGENGC_PROFILE &gt;= 2 */</div><div class='ctx'> #endif /* RGENGC_PROFILE */</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    RVALUE_AGE_RESET(obj);</div><div class='del'>-	}</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                RVALUE_AGE_RESET(obj);</div><div class='add'>+            }</div><div class='ctx'> </div><div class='del'>-        RB_DEBUG_COUNTER_INC(obj_wb_unprotect);</div><div class='del'>-	MARK_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS(obj), obj);</div><div class='add'>+            RB_DEBUG_COUNTER_INC(obj_wb_unprotect);</div><div class='add'>+            MARK_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS(obj), obj);</div><div class='add'>+        }</div><div class='add'>+        RB_VM_LOCK_LEAVE_NO_BARRIER();</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6201,14 +9108,14 @@ rb_gc_writebarrier_remember(VALUE obj)</div><div class='ctx'>     gc_report(1, objspace, "rb_gc_writebarrier_remember: %s\n", obj_info(obj));</div><div class='ctx'> </div><div class='ctx'>     if (is_incremental_marking(objspace)) {</div><div class='del'>-	if (RVALUE_BLACK_P(obj)) {</div><div class='del'>-	    gc_grey(objspace, obj);</div><div class='del'>-	}</div><div class='add'>+        if (RVALUE_BLACK_P(obj)) {</div><div class='add'>+            gc_grey(objspace, obj);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (RVALUE_OLD_P(obj)) {</div><div class='del'>-	    rgengc_remember(objspace, obj);</div><div class='del'>-	}</div><div class='add'>+        if (RVALUE_OLD_P(obj)) {</div><div class='add'>+            rgengc_remember(objspace, obj);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6217,7 +9124,7 @@ static st_table *rgengc_unprotect_logging_table;</div><div class='ctx'> static int</div><div class='ctx'> rgengc_unprotect_logging_exit_func_i(st_data_t key, st_data_t val, st_data_t arg)</div><div class='ctx'> {</div><div class='del'>-    fprintf(stderr, "%s\t%d\n", (char *)key, (int)val);</div><div class='add'>+    fprintf(stderr, "%s\t%"PRIuVALUE"\n", (char *)key, (VALUE)val);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6233,47 +9140,44 @@ rb_gc_unprotect_logging(void *objptr, const char *filename, int line)</div><div class='ctx'>     VALUE obj = (VALUE)objptr;</div><div class='ctx'> </div><div class='ctx'>     if (rgengc_unprotect_logging_table == 0) {</div><div class='del'>-	rgengc_unprotect_logging_table = st_init_strtable();</div><div class='del'>-	atexit(rgengc_unprotect_logging_exit_func);</div><div class='add'>+        rgengc_unprotect_logging_table = st_init_strtable();</div><div class='add'>+        atexit(rgengc_unprotect_logging_exit_func);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (RVALUE_WB_UNPROTECTED(obj) == 0) {</div><div class='del'>-	char buff[0x100];</div><div class='del'>-	st_data_t cnt = 1;</div><div class='del'>-	char *ptr = buff;</div><div class='add'>+        char buff[0x100];</div><div class='add'>+        st_data_t cnt = 1;</div><div class='add'>+        char *ptr = buff;</div><div class='ctx'> </div><div class='del'>-	snprintf(ptr, 0x100 - 1, "%s|%s:%d", obj_info(obj), filename, line);</div><div class='add'>+        snprintf(ptr, 0x100 - 1, "%s|%s:%d", obj_info(obj), filename, line);</div><div class='ctx'> </div><div class='del'>-	if (st_lookup(rgengc_unprotect_logging_table, (st_data_t)ptr, &amp;cnt)) {</div><div class='del'>-	    cnt++;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ptr = (strdup)(buff);</div><div class='del'>-	    if (!ptr) rb_memerror();</div><div class='del'>-	}</div><div class='del'>-	st_insert(rgengc_unprotect_logging_table, (st_data_t)ptr, cnt);</div><div class='add'>+        if (st_lookup(rgengc_unprotect_logging_table, (st_data_t)ptr, &amp;cnt)) {</div><div class='add'>+            cnt++;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ptr = (strdup)(buff);</div><div class='add'>+            if (!ptr) rb_memerror();</div><div class='add'>+        }</div><div class='add'>+        st_insert(rgengc_unprotect_logging_table, (st_data_t)ptr, cnt);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='del'>-#endif /* USE_RGENGC */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_copy_wb_protected_attribute(VALUE dest, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'> </div><div class='ctx'>     if (RVALUE_WB_UNPROTECTED(obj) &amp;&amp; !RVALUE_WB_UNPROTECTED(dest)) {</div><div class='del'>-	if (!RVALUE_OLD_P(dest)) {</div><div class='del'>-	    MARK_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS(dest), dest);</div><div class='del'>-	    RVALUE_AGE_RESET_RAW(dest);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    RVALUE_DEMOTE(objspace, dest);</div><div class='del'>-	}</div><div class='add'>+        if (!RVALUE_OLD_P(dest)) {</div><div class='add'>+            MARK_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS(dest), dest);</div><div class='add'>+            RVALUE_AGE_RESET_RAW(dest);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            RVALUE_DEMOTE(objspace, dest);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     check_rvalue_consistency(dest);</div><div class='del'>-#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* RGENGC analysis information */</div><div class='hunk'>@@ -6281,17 +9185,13 @@ rb_copy_wb_protected_attribute(VALUE dest, VALUE obj)</div><div class='ctx'> VALUE</div><div class='ctx'> rb_obj_rgengc_writebarrier_protected_p(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-    return RVALUE_WB_UNPROTECTED(obj) ? Qfalse : Qtrue;</div><div class='del'>-#else</div><div class='del'>-    return Qfalse;</div><div class='del'>-#endif</div><div class='add'>+    return RBOOL(!RVALUE_WB_UNPROTECTED(obj));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_obj_rgengc_promoted_p(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    return OBJ_PROMOTED(obj) ? Qtrue : Qfalse;</div><div class='add'>+    return RBOOL(OBJ_PROMOTED(obj));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> size_t</div><div class='hunk'>@@ -6299,80 +9199,55 @@ rb_obj_gc_flags(VALUE obj, ID* flags, size_t max)</div><div class='ctx'> {</div><div class='ctx'>     size_t n = 0;</div><div class='ctx'>     static ID ID_marked;</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-    static ID ID_wb_protected, ID_old, ID_marking, ID_uncollectible;</div><div class='del'>-#endif</div><div class='add'>+    static ID ID_wb_protected, ID_old, ID_marking, ID_uncollectible, ID_pinned;</div><div class='ctx'> </div><div class='ctx'>     if (!ID_marked) {</div><div class='ctx'> #define I(s) ID_##s = rb_intern(#s);</div><div class='del'>-	I(marked);</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-	I(wb_protected);</div><div class='del'>-	I(old);</div><div class='del'>-	I(marking);</div><div class='del'>-	I(uncollectible);</div><div class='del'>-#endif</div><div class='add'>+        I(marked);</div><div class='add'>+        I(wb_protected);</div><div class='add'>+        I(old);</div><div class='add'>+        I(marking);</div><div class='add'>+        I(uncollectible);</div><div class='add'>+        I(pinned);</div><div class='ctx'> #undef I</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     if (RVALUE_WB_UNPROTECTED(obj) == 0 &amp;&amp; n&lt;max)                   flags[n++] = ID_wb_protected;</div><div class='ctx'>     if (RVALUE_OLD_P(obj) &amp;&amp; n&lt;max)                                 flags[n++] = ID_old;</div><div class='ctx'>     if (RVALUE_UNCOLLECTIBLE(obj) &amp;&amp; n&lt;max)                         flags[n++] = ID_uncollectible;</div><div class='ctx'>     if (MARKED_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), obj) &amp;&amp; n&lt;max) flags[n++] = ID_marking;</div><div class='del'>-#endif</div><div class='ctx'>     if (MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(obj), obj) &amp;&amp; n&lt;max)    flags[n++] = ID_marked;</div><div class='add'>+    if (MARKED_IN_BITMAP(GET_HEAP_PINNED_BITS(obj), obj) &amp;&amp; n&lt;max)  flags[n++] = ID_pinned;</div><div class='ctx'>     return n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* GC */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_gc_force_recycle(VALUE obj)</div><div class='add'>+rb_gc_ractor_newobj_cache_clear(rb_ractor_newobj_cache_t *newobj_cache)</div><div class='ctx'> {</div><div class='del'>-    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+#if GC_ENABLE_INCREMENTAL_MARK</div><div class='add'>+    newobj_cache-&gt;incremental_mark_step_allocated_slots = 0;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-#if USE_RGENGC</div><div class='del'>-    int is_old = RVALUE_OLD_P(obj);</div><div class='add'>+    for (size_t size_pool_idx = 0; size_pool_idx &lt; SIZE_POOL_COUNT; size_pool_idx++) {</div><div class='add'>+        rb_ractor_newobj_size_pool_cache_t *cache = &amp;newobj_cache-&gt;size_pool_caches[size_pool_idx];</div><div class='ctx'> </div><div class='del'>-    gc_report(2, objspace, "rb_gc_force_recycle: %s\n", obj_info(obj));</div><div class='add'>+        struct heap_page *page = cache-&gt;using_page;</div><div class='add'>+        RVALUE *freelist = cache-&gt;freelist;</div><div class='add'>+        RUBY_DEBUG_LOG("ractor using_page:%p freelist:%p", (void *)page, (void *)freelist);</div><div class='ctx'> </div><div class='del'>-    if (is_old) {</div><div class='del'>-	if (RVALUE_MARKED(obj)) {</div><div class='del'>-	    objspace-&gt;rgengc.old_objects--;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    CLEAR_IN_BITMAP(GET_HEAP_UNCOLLECTIBLE_BITS(obj), obj);</div><div class='del'>-    CLEAR_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS(obj), obj);</div><div class='add'>+        heap_page_freelist_append(page, freelist);</div><div class='ctx'> </div><div class='del'>-#if GC_ENABLE_INCREMENTAL_MARK</div><div class='del'>-    if (is_incremental_marking(objspace)) {</div><div class='del'>-	if (MARKED_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), obj)) {</div><div class='del'>-	    invalidate_mark_stack(&amp;objspace-&gt;mark_stack, obj);</div><div class='del'>-	    CLEAR_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), obj);</div><div class='del'>-	}</div><div class='del'>-	CLEAR_IN_BITMAP(GET_HEAP_MARK_BITS(obj), obj);</div><div class='add'>+        cache-&gt;using_page = NULL;</div><div class='add'>+        cache-&gt;freelist = NULL;</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-#endif</div><div class='del'>-	if (is_old || !GET_HEAP_PAGE(obj)-&gt;flags.before_sweep) {</div><div class='del'>-	    CLEAR_IN_BITMAP(GET_HEAP_MARK_BITS(obj), obj);</div><div class='del'>-	}</div><div class='del'>-	CLEAR_IN_BITMAP(GET_HEAP_MARKING_BITS(obj), obj);</div><div class='del'>-#if GC_ENABLE_INCREMENTAL_MARK</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    objspace-&gt;profile.total_freed_objects++;</div><div class='del'>-</div><div class='del'>-    heap_page_add_freeobj(objspace, GET_HEAP_PAGE(obj), obj);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    /* Disable counting swept_slots because there are no meaning.</div><div class='del'>-     * if (!MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(p), p)) {</div><div class='del'>-     *   objspace-&gt;heap.swept_slots++;</div><div class='del'>-     * }</div><div class='del'>-     */</div><div class='add'>+void</div><div class='add'>+rb_gc_force_recycle(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    /* no-op */</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifndef MARK_OBJECT_ARY_BUCKET_SIZE</div><div class='hunk'>@@ -6382,15 +9257,22 @@ rb_gc_force_recycle(VALUE obj)</div><div class='ctx'> void</div><div class='ctx'> rb_gc_register_mark_object(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary_ary = GET_VM()-&gt;mark_object_ary;</div><div class='del'>-    VALUE ary = rb_ary_last(0, 0, ary_ary);</div><div class='add'>+    if (!is_pointer_to_heap(&amp;rb_objspace, (void *)obj))</div><div class='add'>+        return;</div><div class='ctx'> </div><div class='del'>-    if (ary == Qnil || RARRAY_LEN(ary) &gt;= MARK_OBJECT_ARY_BUCKET_SIZE) {</div><div class='del'>-	ary = rb_ary_tmp_new(MARK_OBJECT_ARY_BUCKET_SIZE);</div><div class='del'>-	rb_ary_push(ary_ary, ary);</div><div class='del'>-    }</div><div class='add'>+    RB_VM_LOCK_ENTER();</div><div class='add'>+    {</div><div class='add'>+        VALUE ary_ary = GET_VM()-&gt;mark_object_ary;</div><div class='add'>+        VALUE ary = rb_ary_last(0, 0, ary_ary);</div><div class='ctx'> </div><div class='del'>-    rb_ary_push(ary, obj);</div><div class='add'>+        if (NIL_P(ary) || RARRAY_LEN(ary) &gt;= MARK_OBJECT_ARY_BUCKET_SIZE) {</div><div class='add'>+            ary = rb_ary_hidden_new(MARK_OBJECT_ARY_BUCKET_SIZE);</div><div class='add'>+            rb_ary_push(ary_ary, ary);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        rb_ary_push(ary, obj);</div><div class='add'>+    }</div><div class='add'>+    RB_VM_LOCK_LEAVE();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -6399,10 +9281,23 @@ rb_gc_register_address(VALUE *addr)</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'>     struct gc_list *tmp;</div><div class='ctx'> </div><div class='add'>+    VALUE obj = *addr;</div><div class='add'>+</div><div class='ctx'>     tmp = ALLOC(struct gc_list);</div><div class='ctx'>     tmp-&gt;next = global_list;</div><div class='ctx'>     tmp-&gt;varptr = addr;</div><div class='ctx'>     global_list = tmp;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * Because some C extensions have assignment-then-register bugs,</div><div class='add'>+     * we guard `obj` here so that it would not get swept defensively.</div><div class='add'>+     */</div><div class='add'>+    RB_GC_GUARD(obj);</div><div class='add'>+    if (0 &amp;&amp; !SPECIAL_CONST_P(obj)) {</div><div class='add'>+	rb_warn("Object is assigned to registering address already: %"PRIsVALUE,</div><div class='add'>+		rb_obj_class(obj));</div><div class='add'>+	rb_print_backtrace();</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -6412,19 +9307,19 @@ rb_gc_unregister_address(VALUE *addr)</div><div class='ctx'>     struct gc_list *tmp = global_list;</div><div class='ctx'> </div><div class='ctx'>     if (tmp-&gt;varptr == addr) {</div><div class='del'>-	global_list = tmp-&gt;next;</div><div class='del'>-	xfree(tmp);</div><div class='del'>-	return;</div><div class='add'>+        global_list = tmp-&gt;next;</div><div class='add'>+        xfree(tmp);</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='ctx'>     while (tmp-&gt;next) {</div><div class='del'>-	if (tmp-&gt;next-&gt;varptr == addr) {</div><div class='del'>-	    struct gc_list *t = tmp-&gt;next;</div><div class='add'>+        if (tmp-&gt;next-&gt;varptr == addr) {</div><div class='add'>+            struct gc_list *t = tmp-&gt;next;</div><div class='ctx'> </div><div class='del'>-	    tmp-&gt;next = tmp-&gt;next-&gt;next;</div><div class='del'>-	    xfree(t);</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	tmp = tmp-&gt;next;</div><div class='add'>+            tmp-&gt;next = tmp-&gt;next-&gt;next;</div><div class='add'>+            xfree(t);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        tmp = tmp-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6447,179 +9342,200 @@ enum {</div><div class='ctx'>     (FIXNUM_P(ruby_gc_stress_mode) &amp;&amp; (FIX2LONG(ruby_gc_stress_mode) &amp; (1&lt;&lt;gc_stress_full_mark_after_malloc)))</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-heap_ready_to_gc(rb_objspace_t *objspace, rb_heap_t *heap)</div><div class='add'>+heap_ready_to_gc(rb_objspace_t *objspace, rb_size_pool_t *size_pool, rb_heap_t *heap)</div><div class='ctx'> {</div><div class='del'>-    if (!heap-&gt;freelist &amp;&amp; !heap-&gt;free_pages) {</div><div class='del'>-	if (!heap_increment(objspace, heap)) {</div><div class='del'>-	    heap_set_increment(objspace, 1);</div><div class='del'>-	    heap_increment(objspace, heap);</div><div class='del'>-	}</div><div class='add'>+    if (!heap-&gt;free_pages) {</div><div class='add'>+        if (!heap_increment(objspace, size_pool, heap)) {</div><div class='add'>+            size_pool_allocatable_pages_set(objspace, size_pool, 1);</div><div class='add'>+            heap_increment(objspace, size_pool, heap);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> ready_to_gc(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='del'>-    if (dont_gc || during_gc || ruby_disable_gc) {</div><div class='del'>-	heap_ready_to_gc(objspace, heap_eden);</div><div class='del'>-	return FALSE;</div><div class='add'>+    if (dont_gc_val() || during_gc || ruby_disable_gc) {</div><div class='add'>+        for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+            rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+            heap_ready_to_gc(objspace, size_pool, SIZE_POOL_EDEN_HEAP(size_pool));</div><div class='add'>+        }</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-gc_reset_malloc_info(rb_objspace_t *objspace)</div><div class='add'>+gc_reset_malloc_info(rb_objspace_t *objspace, bool full_mark)</div><div class='ctx'> {</div><div class='ctx'>     gc_prof_set_malloc_info(objspace);</div><div class='ctx'>     {</div><div class='del'>-	size_t inc = ATOMIC_SIZE_EXCHANGE(malloc_increase, 0);</div><div class='del'>-	size_t old_limit = malloc_limit;</div><div class='del'>-</div><div class='del'>-	if (inc &gt; malloc_limit) {</div><div class='del'>-	    malloc_limit = (size_t)(inc * gc_params.malloc_limit_growth_factor);</div><div class='del'>-	    if (malloc_limit &gt; gc_params.malloc_limit_max) {</div><div class='del'>-		malloc_limit = gc_params.malloc_limit_max;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    malloc_limit = (size_t)(malloc_limit * 0.98); /* magic number */</div><div class='del'>-	    if (malloc_limit &lt; gc_params.malloc_limit_min) {</div><div class='del'>-		malloc_limit = gc_params.malloc_limit_min;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (0) {</div><div class='del'>-	    if (old_limit != malloc_limit) {</div><div class='del'>-		fprintf(stderr, "[%"PRIuSIZE"] malloc_limit: %"PRIuSIZE" -&gt; %"PRIuSIZE"\n",</div><div class='del'>-			rb_gc_count(), old_limit, malloc_limit);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		fprintf(stderr, "[%"PRIuSIZE"] malloc_limit: not changed (%"PRIuSIZE")\n",</div><div class='del'>-			rb_gc_count(), malloc_limit);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        size_t inc = ATOMIC_SIZE_EXCHANGE(malloc_increase, 0);</div><div class='add'>+        size_t old_limit = malloc_limit;</div><div class='add'>+</div><div class='add'>+        if (inc &gt; malloc_limit) {</div><div class='add'>+            malloc_limit = (size_t)(inc * gc_params.malloc_limit_growth_factor);</div><div class='add'>+            if (malloc_limit &gt; gc_params.malloc_limit_max) {</div><div class='add'>+                malloc_limit = gc_params.malloc_limit_max;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            malloc_limit = (size_t)(malloc_limit * 0.98); /* magic number */</div><div class='add'>+            if (malloc_limit &lt; gc_params.malloc_limit_min) {</div><div class='add'>+                malloc_limit = gc_params.malloc_limit_min;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (0) {</div><div class='add'>+            if (old_limit != malloc_limit) {</div><div class='add'>+                fprintf(stderr, "[%"PRIuSIZE"] malloc_limit: %"PRIuSIZE" -&gt; %"PRIuSIZE"\n",</div><div class='add'>+                        rb_gc_count(), old_limit, malloc_limit);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                fprintf(stderr, "[%"PRIuSIZE"] malloc_limit: not changed (%"PRIuSIZE")\n",</div><div class='add'>+                        rb_gc_count(), malloc_limit);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* reset oldmalloc info */</div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='del'>-    if (!is_full_marking(objspace)) {</div><div class='del'>-	if (objspace-&gt;rgengc.oldmalloc_increase &gt; objspace-&gt;rgengc.oldmalloc_increase_limit) {</div><div class='del'>-	    objspace-&gt;rgengc.need_major_gc |= GPR_FLAG_MAJOR_BY_OLDMALLOC;</div><div class='del'>-	    objspace-&gt;rgengc.oldmalloc_increase_limit =</div><div class='del'>-	      (size_t)(objspace-&gt;rgengc.oldmalloc_increase_limit * gc_params.oldmalloc_limit_growth_factor);</div><div class='del'>-</div><div class='del'>-	    if (objspace-&gt;rgengc.oldmalloc_increase_limit &gt; gc_params.oldmalloc_limit_max) {</div><div class='del'>-		objspace-&gt;rgengc.oldmalloc_increase_limit = gc_params.oldmalloc_limit_max;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (0) fprintf(stderr, "%d\t%d\t%u\t%u\t%d\n",</div><div class='del'>-		       (int)rb_gc_count(),</div><div class='del'>-		       (int)objspace-&gt;rgengc.need_major_gc,</div><div class='del'>-		       (unsigned int)objspace-&gt;rgengc.oldmalloc_increase,</div><div class='del'>-		       (unsigned int)objspace-&gt;rgengc.oldmalloc_increase_limit,</div><div class='del'>-		       (unsigned int)gc_params.oldmalloc_limit_max);</div><div class='add'>+    if (!full_mark) {</div><div class='add'>+        if (objspace-&gt;rgengc.oldmalloc_increase &gt; objspace-&gt;rgengc.oldmalloc_increase_limit) {</div><div class='add'>+            objspace-&gt;rgengc.need_major_gc |= GPR_FLAG_MAJOR_BY_OLDMALLOC;</div><div class='add'>+            objspace-&gt;rgengc.oldmalloc_increase_limit =</div><div class='add'>+              (size_t)(objspace-&gt;rgengc.oldmalloc_increase_limit * gc_params.oldmalloc_limit_growth_factor);</div><div class='add'>+</div><div class='add'>+            if (objspace-&gt;rgengc.oldmalloc_increase_limit &gt; gc_params.oldmalloc_limit_max) {</div><div class='add'>+                objspace-&gt;rgengc.oldmalloc_increase_limit = gc_params.oldmalloc_limit_max;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (0) fprintf(stderr, "%"PRIdSIZE"\t%d\t%"PRIuSIZE"\t%"PRIuSIZE"\t%"PRIdSIZE"\n",</div><div class='add'>+                       rb_gc_count(),</div><div class='add'>+                       objspace-&gt;rgengc.need_major_gc,</div><div class='add'>+                       objspace-&gt;rgengc.oldmalloc_increase,</div><div class='add'>+                       objspace-&gt;rgengc.oldmalloc_increase_limit,</div><div class='add'>+                       gc_params.oldmalloc_limit_max);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	/* major GC */</div><div class='del'>-	objspace-&gt;rgengc.oldmalloc_increase = 0;</div><div class='del'>-</div><div class='del'>-	if ((objspace-&gt;profile.latest_gc_info &amp; GPR_FLAG_MAJOR_BY_OLDMALLOC) == 0) {</div><div class='del'>-	    objspace-&gt;rgengc.oldmalloc_increase_limit =</div><div class='del'>-	      (size_t)(objspace-&gt;rgengc.oldmalloc_increase_limit / ((gc_params.oldmalloc_limit_growth_factor - 1)/10 + 1));</div><div class='del'>-	    if (objspace-&gt;rgengc.oldmalloc_increase_limit &lt; gc_params.oldmalloc_limit_min) {</div><div class='del'>-		objspace-&gt;rgengc.oldmalloc_increase_limit = gc_params.oldmalloc_limit_min;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        /* major GC */</div><div class='add'>+        objspace-&gt;rgengc.oldmalloc_increase = 0;</div><div class='add'>+</div><div class='add'>+        if ((objspace-&gt;profile.latest_gc_info &amp; GPR_FLAG_MAJOR_BY_OLDMALLOC) == 0) {</div><div class='add'>+            objspace-&gt;rgengc.oldmalloc_increase_limit =</div><div class='add'>+              (size_t)(objspace-&gt;rgengc.oldmalloc_increase_limit / ((gc_params.oldmalloc_limit_growth_factor - 1)/10 + 1));</div><div class='add'>+            if (objspace-&gt;rgengc.oldmalloc_increase_limit &lt; gc_params.oldmalloc_limit_min) {</div><div class='add'>+                objspace-&gt;rgengc.oldmalloc_increase_limit = gc_params.oldmalloc_limit_min;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-garbage_collect(rb_objspace_t *objspace, int reason)</div><div class='add'>+garbage_collect(rb_objspace_t *objspace, unsigned int reason)</div><div class='ctx'> {</div><div class='add'>+    int ret;</div><div class='add'>+</div><div class='add'>+    RB_VM_LOCK_ENTER();</div><div class='add'>+    {</div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='del'>-    objspace-&gt;profile.prepare_time = getrusage_time();</div><div class='add'>+        objspace-&gt;profile.prepare_time = getrusage_time();</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    gc_rest(objspace);</div><div class='add'>+        gc_rest(objspace);</div><div class='ctx'> </div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='del'>-    objspace-&gt;profile.prepare_time = getrusage_time() - objspace-&gt;profile.prepare_time;</div><div class='add'>+        objspace-&gt;profile.prepare_time = getrusage_time() - objspace-&gt;profile.prepare_time;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    return gc_start(objspace, reason);</div><div class='add'>+        ret = gc_start(objspace, reason);</div><div class='add'>+    }</div><div class='add'>+    RB_VM_LOCK_LEAVE();</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-gc_start(rb_objspace_t *objspace, int reason)</div><div class='add'>+gc_start(rb_objspace_t *objspace, unsigned int reason)</div><div class='ctx'> {</div><div class='del'>-    unsigned int do_full_mark = !!((unsigned)reason &amp; GPR_FLAG_FULL_MARK);</div><div class='del'>-    unsigned int immediate_mark = (unsigned)reason &amp; GPR_FLAG_IMMEDIATE_MARK;</div><div class='add'>+    unsigned int do_full_mark = !!(reason &amp; GPR_FLAG_FULL_MARK);</div><div class='add'>+#if GC_ENABLE_INCREMENTAL_MARK</div><div class='add'>+    unsigned int immediate_mark = reason &amp; GPR_FLAG_IMMEDIATE_MARK;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     /* reason may be clobbered, later, so keep set immediate_sweep here */</div><div class='del'>-    objspace-&gt;flags.immediate_sweep = !!((unsigned)reason &amp; GPR_FLAG_IMMEDIATE_SWEEP);</div><div class='add'>+    objspace-&gt;flags.immediate_sweep = !!(reason &amp; GPR_FLAG_IMMEDIATE_SWEEP);</div><div class='add'>+</div><div class='add'>+    /* Explicitly enable compaction (GC.compact) */</div><div class='add'>+    if (do_full_mark &amp;&amp; ruby_enable_autocompact) {</div><div class='add'>+        objspace-&gt;flags.during_compacting = TRUE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        objspace-&gt;flags.during_compacting = !!(reason &amp; GPR_FLAG_COMPACT);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (!heap_allocated_pages) return FALSE; /* heap is not ready */</div><div class='ctx'>     if (!(reason &amp; GPR_FLAG_METHOD) &amp;&amp; !ready_to_gc(objspace)) return TRUE; /* GC is not allowed */</div><div class='ctx'> </div><div class='ctx'>     GC_ASSERT(gc_mode(objspace) == gc_mode_none);</div><div class='del'>-    GC_ASSERT(!is_lazy_sweeping(heap_eden));</div><div class='add'>+    GC_ASSERT(!is_lazy_sweeping(objspace));</div><div class='ctx'>     GC_ASSERT(!is_incremental_marking(objspace));</div><div class='add'>+</div><div class='add'>+    unsigned int lock_lev;</div><div class='add'>+    gc_enter(objspace, gc_enter_event_start, &amp;lock_lev);</div><div class='add'>+</div><div class='ctx'> #if RGENGC_CHECK_MODE &gt;= 2</div><div class='del'>-    gc_verify_internal_consistency(Qnil);</div><div class='add'>+    gc_verify_internal_consistency(objspace);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    gc_enter(objspace, "gc_start");</div><div class='del'>-</div><div class='ctx'>     if (ruby_gc_stressful) {</div><div class='del'>-	int flag = FIXNUM_P(ruby_gc_stress_mode) ? FIX2INT(ruby_gc_stress_mode) : 0;</div><div class='add'>+        int flag = FIXNUM_P(ruby_gc_stress_mode) ? FIX2INT(ruby_gc_stress_mode) : 0;</div><div class='ctx'> </div><div class='del'>-	if ((flag &amp; (1&lt;&lt;gc_stress_no_major)) == 0) {</div><div class='del'>-	    do_full_mark = TRUE;</div><div class='del'>-	}</div><div class='add'>+        if ((flag &amp; (1&lt;&lt;gc_stress_no_major)) == 0) {</div><div class='add'>+            do_full_mark = TRUE;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	objspace-&gt;flags.immediate_sweep = !(flag &amp; (1&lt;&lt;gc_stress_no_immediate_sweep));</div><div class='add'>+        objspace-&gt;flags.immediate_sweep = !(flag &amp; (1&lt;&lt;gc_stress_no_immediate_sweep));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-	if (objspace-&gt;rgengc.need_major_gc) {</div><div class='del'>-	    reason |= objspace-&gt;rgengc.need_major_gc;</div><div class='del'>-	    do_full_mark = TRUE;</div><div class='del'>-	}</div><div class='del'>-	else if (RGENGC_FORCE_MAJOR_GC) {</div><div class='del'>-	    reason = GPR_FLAG_MAJOR_BY_FORCE;</div><div class='del'>-	    do_full_mark = TRUE;</div><div class='del'>-	}</div><div class='add'>+        if (objspace-&gt;rgengc.need_major_gc) {</div><div class='add'>+            reason |= objspace-&gt;rgengc.need_major_gc;</div><div class='add'>+            do_full_mark = TRUE;</div><div class='add'>+        }</div><div class='add'>+        else if (RGENGC_FORCE_MAJOR_GC) {</div><div class='add'>+            reason = GPR_FLAG_MAJOR_BY_FORCE;</div><div class='add'>+            do_full_mark = TRUE;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	objspace-&gt;rgengc.need_major_gc = GPR_FLAG_NONE;</div><div class='del'>-#endif</div><div class='add'>+        objspace-&gt;rgengc.need_major_gc = GPR_FLAG_NONE;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (do_full_mark &amp;&amp; (reason &amp; GPR_FLAG_MAJOR_MASK) == 0) {</div><div class='del'>-	reason |= GPR_FLAG_MAJOR_BY_FORCE; /* GC by CAPI, METHOD, and so on. */</div><div class='add'>+        reason |= GPR_FLAG_MAJOR_BY_FORCE; /* GC by CAPI, METHOD, and so on. */</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='ctx'>     if (!GC_ENABLE_INCREMENTAL_MARK || objspace-&gt;flags.dont_incremental || immediate_mark) {</div><div class='del'>-	objspace-&gt;flags.during_incremental_marking = FALSE;</div><div class='add'>+        objspace-&gt;flags.during_incremental_marking = FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	objspace-&gt;flags.during_incremental_marking = do_full_mark;</div><div class='add'>+        objspace-&gt;flags.during_incremental_marking = do_full_mark;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     if (!GC_ENABLE_LAZY_SWEEP || objspace-&gt;flags.dont_incremental) {</div><div class='del'>-	objspace-&gt;flags.immediate_sweep = TRUE;</div><div class='add'>+        objspace-&gt;flags.immediate_sweep = TRUE;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (objspace-&gt;flags.immediate_sweep) reason |= GPR_FLAG_IMMEDIATE_SWEEP;</div><div class='ctx'> </div><div class='del'>-    gc_report(1, objspace, "gc_start(reason: %d) =&gt; %u, %d, %d\n",</div><div class='del'>-	      reason,</div><div class='del'>-	      do_full_mark, !is_incremental_marking(objspace), objspace-&gt;flags.immediate_sweep);</div><div class='add'>+    gc_report(1, objspace, "gc_start(reason: %x) =&gt; %u, %d, %d\n",</div><div class='add'>+              reason,</div><div class='add'>+              do_full_mark, !is_incremental_marking(objspace), objspace-&gt;flags.immediate_sweep);</div><div class='ctx'> </div><div class='ctx'> #if USE_DEBUG_COUNTER</div><div class='ctx'>     RB_DEBUG_COUNTER_INC(gc_count);</div><div class='hunk'>@@ -6647,7 +9563,7 @@ gc_start(rb_objspace_t *objspace, int reason)</div><div class='ctx'>     objspace-&gt;profile.total_allocated_objects_at_gc_start = objspace-&gt;total_allocated_objects;</div><div class='ctx'>     objspace-&gt;profile.heap_used_at_gc_start = heap_allocated_pages;</div><div class='ctx'>     gc_prof_setup_new_record(objspace, reason);</div><div class='del'>-    gc_reset_malloc_info(objspace);</div><div class='add'>+    gc_reset_malloc_info(objspace, do_full_mark);</div><div class='ctx'>     rb_transient_heap_start_marking(do_full_mark);</div><div class='ctx'> </div><div class='ctx'>     gc_event_hook(objspace, RUBY_INTERNAL_EVENT_GC_START, 0 /* TODO: pass minor/immediate flag? */);</div><div class='hunk'>@@ -6655,11 +9571,11 @@ gc_start(rb_objspace_t *objspace, int reason)</div><div class='ctx'> </div><div class='ctx'>     gc_prof_timer_start(objspace);</div><div class='ctx'>     {</div><div class='del'>-	gc_marks(objspace, do_full_mark);</div><div class='add'>+        gc_marks(objspace, do_full_mark);</div><div class='ctx'>     }</div><div class='ctx'>     gc_prof_timer_stop(objspace);</div><div class='ctx'> </div><div class='del'>-    gc_exit(objspace, "gc_start");</div><div class='add'>+    gc_exit(objspace, gc_enter_event_start, &amp;lock_lev);</div><div class='ctx'>     return TRUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6667,28 +9583,27 @@ static void</div><div class='ctx'> gc_rest(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     int marking = is_incremental_marking(objspace);</div><div class='del'>-    int sweeping = is_lazy_sweeping(heap_eden);</div><div class='add'>+    int sweeping = is_lazy_sweeping(objspace);</div><div class='ctx'> </div><div class='ctx'>     if (marking || sweeping) {</div><div class='del'>-	gc_enter(objspace, "gc_rest");</div><div class='add'>+        unsigned int lock_lev;</div><div class='add'>+        gc_enter(objspace, gc_enter_event_rest, &amp;lock_lev);</div><div class='ctx'> </div><div class='del'>-	if (RGENGC_CHECK_MODE &gt;= 2) gc_verify_internal_consistency(Qnil);</div><div class='add'>+        if (RGENGC_CHECK_MODE &gt;= 2) gc_verify_internal_consistency(objspace);</div><div class='ctx'> </div><div class='del'>-	if (is_incremental_marking(objspace)) {</div><div class='del'>-	    PUSH_MARK_FUNC_DATA(NULL);</div><div class='del'>-	    gc_marks_rest(objspace);</div><div class='del'>-	    POP_MARK_FUNC_DATA();</div><div class='del'>-	}</div><div class='del'>-	if (is_lazy_sweeping(heap_eden)) {</div><div class='del'>-	    gc_sweep_rest(objspace);</div><div class='del'>-	}</div><div class='del'>-	gc_exit(objspace, "gc_rest");</div><div class='add'>+        if (is_incremental_marking(objspace)) {</div><div class='add'>+            gc_marks_rest(objspace);</div><div class='add'>+        }</div><div class='add'>+        if (is_lazy_sweeping(objspace)) {</div><div class='add'>+            gc_sweep_rest(objspace);</div><div class='add'>+        }</div><div class='add'>+        gc_exit(objspace, gc_enter_event_rest, &amp;lock_lev);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct objspace_and_reason {</div><div class='ctx'>     rb_objspace_t *objspace;</div><div class='del'>-    int reason;</div><div class='add'>+    unsigned int reason;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -6696,20 +9611,18 @@ gc_current_status_fill(rb_objspace_t *objspace, char *buff)</div><div class='ctx'> {</div><div class='ctx'>     int i = 0;</div><div class='ctx'>     if (is_marking(objspace)) {</div><div class='del'>-	buff[i++] = 'M';</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-	if (is_full_marking(objspace))        buff[i++] = 'F';</div><div class='add'>+        buff[i++] = 'M';</div><div class='add'>+        if (is_full_marking(objspace))        buff[i++] = 'F';</div><div class='ctx'> #if GC_ENABLE_INCREMENTAL_MARK</div><div class='del'>-	if (is_incremental_marking(objspace)) buff[i++] = 'I';</div><div class='del'>-#endif</div><div class='add'>+        if (is_incremental_marking(objspace)) buff[i++] = 'I';</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     else if (is_sweeping(objspace)) {</div><div class='del'>-	buff[i++] = 'S';</div><div class='del'>-	if (is_lazy_sweeping(heap_eden))      buff[i++] = 'L';</div><div class='add'>+        buff[i++] = 'S';</div><div class='add'>+        if (is_lazy_sweeping(objspace))      buff[i++] = 'L';</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	buff[i++] = 'N';</div><div class='add'>+        buff[i++] = 'N';</div><div class='ctx'>     }</div><div class='ctx'>     buff[i] = '\0';</div><div class='ctx'> }</div><div class='hunk'>@@ -6733,31 +9646,31 @@ static inline void</div><div class='ctx'> gc_record(rb_objspace_t *objspace, int direction, const char *event)</div><div class='ctx'> {</div><div class='ctx'>     if (direction == 0) { /* enter */</div><div class='del'>-	enter_count++;</div><div class='del'>-	enter_tick = tick();</div><div class='del'>-	gc_current_status_fill(objspace, last_gc_status);</div><div class='add'>+        enter_count++;</div><div class='add'>+        enter_tick = tick();</div><div class='add'>+        gc_current_status_fill(objspace, last_gc_status);</div><div class='ctx'>     }</div><div class='ctx'>     else { /* exit */</div><div class='del'>-	tick_t exit_tick = tick();</div><div class='del'>-	char current_gc_status[0x10];</div><div class='del'>-	gc_current_status_fill(objspace, current_gc_status);</div><div class='add'>+        tick_t exit_tick = tick();</div><div class='add'>+        char current_gc_status[0x10];</div><div class='add'>+        gc_current_status_fill(objspace, current_gc_status);</div><div class='ctx'> #if 1</div><div class='del'>-	/* [last mutator time] [gc time] [event] */</div><div class='del'>-	fprintf(stderr, "%"PRItick"\t%"PRItick"\t%s\t[%s-&gt;%s|%c]\n",</div><div class='del'>-		enter_tick - last_exit_tick,</div><div class='del'>-		exit_tick - enter_tick,</div><div class='del'>-		event,</div><div class='del'>-		last_gc_status, current_gc_status,</div><div class='del'>-		(objspace-&gt;profile.latest_gc_info &amp; GPR_FLAG_MAJOR_MASK) ? '+' : '-');</div><div class='del'>-	last_exit_tick = exit_tick;</div><div class='add'>+        /* [last mutator time] [gc time] [event] */</div><div class='add'>+        fprintf(stderr, "%"PRItick"\t%"PRItick"\t%s\t[%s-&gt;%s|%c]\n",</div><div class='add'>+                enter_tick - last_exit_tick,</div><div class='add'>+                exit_tick - enter_tick,</div><div class='add'>+                event,</div><div class='add'>+                last_gc_status, current_gc_status,</div><div class='add'>+                (objspace-&gt;profile.latest_gc_info &amp; GPR_FLAG_MAJOR_MASK) ? '+' : '-');</div><div class='add'>+        last_exit_tick = exit_tick;</div><div class='ctx'> #else</div><div class='del'>-	/* [enter_tick] [gc time] [event] */</div><div class='del'>-	fprintf(stderr, "%"PRItick"\t%"PRItick"\t%s\t[%s-&gt;%s|%c]\n",</div><div class='del'>-		enter_tick,</div><div class='del'>-		exit_tick - enter_tick,</div><div class='del'>-		event,</div><div class='del'>-		last_gc_status, current_gc_status,</div><div class='del'>-		(objspace-&gt;profile.latest_gc_info &amp; GPR_FLAG_MAJOR_MASK) ? '+' : '-');</div><div class='add'>+        /* [enter_tick] [gc time] [event] */</div><div class='add'>+        fprintf(stderr, "%"PRItick"\t%"PRItick"\t%s\t[%s-&gt;%s|%c]\n",</div><div class='add'>+                enter_tick,</div><div class='add'>+                exit_tick - enter_tick,</div><div class='add'>+                event,</div><div class='add'>+                last_gc_status, current_gc_status,</div><div class='add'>+                (objspace-&gt;profile.latest_gc_info &amp; GPR_FLAG_MAJOR_MASK) ? '+' : '-');</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -6769,31 +9682,144 @@ gc_record(rb_objspace_t *objspace, int direction, const char *event)</div><div class='ctx'> }</div><div class='ctx'> #endif /* PRINT_ENTER_EXIT_TICK */</div><div class='ctx'> </div><div class='add'>+static const char *</div><div class='add'>+gc_enter_event_cstr(enum gc_enter_event event)</div><div class='add'>+{</div><div class='add'>+    switch (event) {</div><div class='add'>+      case gc_enter_event_start: return "start";</div><div class='add'>+      case gc_enter_event_mark_continue: return "mark_continue";</div><div class='add'>+      case gc_enter_event_sweep_continue: return "sweep_continue";</div><div class='add'>+      case gc_enter_event_rest: return "rest";</div><div class='add'>+      case gc_enter_event_finalizer: return "finalizer";</div><div class='add'>+      case gc_enter_event_rb_memerror: return "rb_memerror";</div><div class='add'>+    }</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_enter_count(enum gc_enter_event event)</div><div class='add'>+{</div><div class='add'>+    switch (event) {</div><div class='add'>+      case gc_enter_event_start:          RB_DEBUG_COUNTER_INC(gc_enter_start); break;</div><div class='add'>+      case gc_enter_event_mark_continue:  RB_DEBUG_COUNTER_INC(gc_enter_mark_continue); break;</div><div class='add'>+      case gc_enter_event_sweep_continue: RB_DEBUG_COUNTER_INC(gc_enter_sweep_continue); break;</div><div class='add'>+      case gc_enter_event_rest:           RB_DEBUG_COUNTER_INC(gc_enter_rest); break;</div><div class='add'>+      case gc_enter_event_finalizer:      RB_DEBUG_COUNTER_INC(gc_enter_finalizer); break;</div><div class='add'>+      case gc_enter_event_rb_memerror:    /* nothing */ break;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifndef MEASURE_GC</div><div class='add'>+#define MEASURE_GC (objspace-&gt;flags.measure_gc)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+gc_enter_event_measure_p(rb_objspace_t *objspace, enum gc_enter_event event)</div><div class='add'>+{</div><div class='add'>+    if (!MEASURE_GC) return false;</div><div class='add'>+</div><div class='add'>+    switch (event) {</div><div class='add'>+      case gc_enter_event_start:</div><div class='add'>+      case gc_enter_event_mark_continue:</div><div class='add'>+      case gc_enter_event_sweep_continue:</div><div class='add'>+      case gc_enter_event_rest:</div><div class='add'>+        return true;</div><div class='add'>+</div><div class='add'>+      default:</div><div class='add'>+        // case gc_enter_event_finalizer:</div><div class='add'>+        // case gc_enter_event_rb_memerror:</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool current_process_time(struct timespec *ts);</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_enter_clock(rb_objspace_t *objspace, enum gc_enter_event event)</div><div class='add'>+{</div><div class='add'>+    if (gc_enter_event_measure_p(objspace, event)) {</div><div class='add'>+        if (!current_process_time(&amp;objspace-&gt;profile.start_time)) {</div><div class='add'>+            objspace-&gt;profile.start_time.tv_sec = 0;</div><div class='add'>+            objspace-&gt;profile.start_time.tv_nsec = 0;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_exit_clock(rb_objspace_t *objspace, enum gc_enter_event event)</div><div class='add'>+{</div><div class='add'>+    if (gc_enter_event_measure_p(objspace, event)) {</div><div class='add'>+        struct timespec end_time;</div><div class='add'>+</div><div class='add'>+        if ((objspace-&gt;profile.start_time.tv_sec &gt; 0 ||</div><div class='add'>+             objspace-&gt;profile.start_time.tv_nsec &gt; 0) &amp;&amp;</div><div class='add'>+            current_process_time(&amp;end_time)) {</div><div class='add'>+</div><div class='add'>+            if (end_time.tv_sec &lt; objspace-&gt;profile.start_time.tv_sec) {</div><div class='add'>+                return; // ignore</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                uint64_t ns =</div><div class='add'>+                  (uint64_t)(end_time.tv_sec - objspace-&gt;profile.start_time.tv_sec) * (1000 * 1000 * 1000) +</div><div class='add'>+                            (end_time.tv_nsec - objspace-&gt;profile.start_time.tv_nsec);</div><div class='add'>+                objspace-&gt;profile.total_time_ns += ns;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static inline void</div><div class='del'>-gc_enter(rb_objspace_t *objspace, const char *event)</div><div class='add'>+gc_enter(rb_objspace_t *objspace, enum gc_enter_event event, unsigned int *lock_lev)</div><div class='ctx'> {</div><div class='del'>-    GC_ASSERT(during_gc == 0);</div><div class='del'>-    if (RGENGC_CHECK_MODE &gt;= 3) gc_verify_internal_consistency(Qnil);</div><div class='add'>+    RB_VM_LOCK_ENTER_LEV(lock_lev);</div><div class='ctx'> </div><div class='del'>-    mjit_gc_start_hook();</div><div class='add'>+    gc_enter_clock(objspace, event);</div><div class='add'>+</div><div class='add'>+    switch (event) {</div><div class='add'>+      case gc_enter_event_rest:</div><div class='add'>+        if (!is_marking(objspace)) break;</div><div class='add'>+        // fall through</div><div class='add'>+      case gc_enter_event_start:</div><div class='add'>+      case gc_enter_event_mark_continue:</div><div class='add'>+        // stop other ractors</div><div class='add'>+        rb_vm_barrier();</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    gc_enter_count(event);</div><div class='add'>+    if (UNLIKELY(during_gc != 0)) rb_bug("during_gc != 0");</div><div class='add'>+    if (RGENGC_CHECK_MODE &gt;= 3) gc_verify_internal_consistency(objspace);</div><div class='ctx'> </div><div class='ctx'>     during_gc = TRUE;</div><div class='del'>-    gc_report(1, objspace, "gc_enter: %s [%s]\n", event, gc_current_status(objspace));</div><div class='del'>-    gc_record(objspace, 0, event);</div><div class='add'>+    RUBY_DEBUG_LOG("%s (%s)",gc_enter_event_cstr(event), gc_current_status(objspace));</div><div class='add'>+    gc_report(1, objspace, "gc_enter: %s [%s]\n", gc_enter_event_cstr(event), gc_current_status(objspace));</div><div class='add'>+    gc_record(objspace, 0, gc_enter_event_cstr(event));</div><div class='ctx'>     gc_event_hook(objspace, RUBY_INTERNAL_EVENT_GC_ENTER, 0); /* TODO: which parameter should be passed? */</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='del'>-gc_exit(rb_objspace_t *objspace, const char *event)</div><div class='add'>+gc_exit(rb_objspace_t *objspace, enum gc_enter_event event, unsigned int *lock_lev)</div><div class='ctx'> {</div><div class='ctx'>     GC_ASSERT(during_gc != 0);</div><div class='ctx'> </div><div class='ctx'>     gc_event_hook(objspace, RUBY_INTERNAL_EVENT_GC_EXIT, 0); /* TODO: which parameter should be passsed? */</div><div class='del'>-    gc_record(objspace, 1, event);</div><div class='del'>-    gc_report(1, objspace, "gc_exit: %s [%s]\n", event, gc_current_status(objspace));</div><div class='add'>+    gc_record(objspace, 1, gc_enter_event_cstr(event));</div><div class='add'>+    RUBY_DEBUG_LOG("%s (%s)", gc_enter_event_cstr(event), gc_current_status(objspace));</div><div class='add'>+    gc_report(1, objspace, "gc_exit: %s [%s]\n", gc_enter_event_cstr(event), gc_current_status(objspace));</div><div class='ctx'>     during_gc = FALSE;</div><div class='ctx'> </div><div class='del'>-    mjit_gc_finish_hook();</div><div class='add'>+    gc_exit_clock(objspace, event);</div><div class='add'>+    RB_VM_LOCK_LEAVE_LEV(lock_lev);</div><div class='add'>+</div><div class='add'>+#if RGENGC_CHECK_MODE &gt;= 2</div><div class='add'>+    if (event == gc_enter_event_sweep_continue &amp;&amp; gc_mode(objspace) == gc_mode_none) {</div><div class='add'>+        GC_ASSERT(!during_gc);</div><div class='add'>+        // sweep finished</div><div class='add'>+        gc_verify_internal_consistency(objspace);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void *</div><div class='hunk'>@@ -6804,96 +9830,1204 @@ gc_with_gvl(void *ptr)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-garbage_collect_with_gvl(rb_objspace_t *objspace, int reason)</div><div class='add'>+garbage_collect_with_gvl(rb_objspace_t *objspace, unsigned int reason)</div><div class='ctx'> {</div><div class='del'>-    if (dont_gc) return TRUE;</div><div class='add'>+    if (dont_gc_val()) return TRUE;</div><div class='ctx'>     if (ruby_thread_has_gvl_p()) {</div><div class='del'>-	return garbage_collect(objspace, reason);</div><div class='add'>+        return garbage_collect(objspace, reason);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (ruby_native_thread_p()) {</div><div class='add'>+            struct objspace_and_reason oar;</div><div class='add'>+            oar.objspace = objspace;</div><div class='add'>+            oar.reason = reason;</div><div class='add'>+            return (int)(VALUE)rb_thread_call_with_gvl(gc_with_gvl, (void *)&amp;oar);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* no ruby thread */</div><div class='add'>+            fprintf(stderr, "[FATAL] failed to allocate memory\n");</div><div class='add'>+            exit(EXIT_FAILURE);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+gc_start_internal(rb_execution_context_t *ec, VALUE self, VALUE full_mark, VALUE immediate_mark, VALUE immediate_sweep, VALUE compact)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    unsigned int reason = (GPR_FLAG_FULL_MARK |</div><div class='add'>+                           GPR_FLAG_IMMEDIATE_MARK |</div><div class='add'>+                           GPR_FLAG_IMMEDIATE_SWEEP |</div><div class='add'>+                           GPR_FLAG_METHOD);</div><div class='add'>+</div><div class='add'>+    /* For now, compact implies full mark / sweep, so ignore other flags */</div><div class='add'>+    if (RTEST(compact)) {</div><div class='add'>+        GC_ASSERT(GC_COMPACTION_SUPPORTED);</div><div class='add'>+</div><div class='add'>+        reason |= GPR_FLAG_COMPACT;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (!RTEST(full_mark))       reason &amp;= ~GPR_FLAG_FULL_MARK;</div><div class='add'>+        if (!RTEST(immediate_mark))  reason &amp;= ~GPR_FLAG_IMMEDIATE_MARK;</div><div class='add'>+        if (!RTEST(immediate_sweep)) reason &amp;= ~GPR_FLAG_IMMEDIATE_SWEEP;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    garbage_collect(objspace, reason);</div><div class='add'>+    gc_finalize_deferred(objspace);</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gc_is_moveable_obj(rb_objspace_t *objspace, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    GC_ASSERT(!SPECIAL_CONST_P(obj));</div><div class='add'>+</div><div class='add'>+    switch (BUILTIN_TYPE(obj)) {</div><div class='add'>+      case T_NONE:</div><div class='add'>+      case T_NIL:</div><div class='add'>+      case T_MOVED:</div><div class='add'>+      case T_ZOMBIE:</div><div class='add'>+        return FALSE;</div><div class='add'>+      case T_SYMBOL:</div><div class='add'>+        if (DYNAMIC_SYM_P(obj) &amp;&amp; (RSYMBOL(obj)-&gt;id &amp; ~ID_SCOPE_MASK)) {</div><div class='add'>+            return FALSE;</div><div class='add'>+        }</div><div class='add'>+        /* fall through */</div><div class='add'>+      case T_STRING:</div><div class='add'>+      case T_OBJECT:</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+      case T_IMEMO:</div><div class='add'>+      case T_ARRAY:</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+      case T_ICLASS:</div><div class='add'>+      case T_MODULE:</div><div class='add'>+      case T_REGEXP:</div><div class='add'>+      case T_DATA:</div><div class='add'>+      case T_MATCH:</div><div class='add'>+      case T_STRUCT:</div><div class='add'>+      case T_HASH:</div><div class='add'>+      case T_FILE:</div><div class='add'>+      case T_COMPLEX:</div><div class='add'>+      case T_RATIONAL:</div><div class='add'>+      case T_NODE:</div><div class='add'>+      case T_CLASS:</div><div class='add'>+        if (FL_TEST(obj, FL_FINALIZE)) {</div><div class='add'>+            /* The finalizer table is a numtable. It looks up objects by address.</div><div class='add'>+             * We can't mark the keys in the finalizer table because that would</div><div class='add'>+             * prevent the objects from being collected.  This check prevents</div><div class='add'>+             * objects that are keys in the finalizer table from being moved</div><div class='add'>+             * without directly pinning them. */</div><div class='add'>+            if (st_is_member(finalizer_table, obj)) {</div><div class='add'>+                return FALSE;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        GC_ASSERT(RVALUE_MARKED(obj));</div><div class='add'>+        GC_ASSERT(!RVALUE_PINNED(obj));</div><div class='add'>+</div><div class='add'>+        return TRUE;</div><div class='add'>+</div><div class='add'>+      default:</div><div class='add'>+        rb_bug("gc_is_moveable_obj: unreachable (%d)", (int)BUILTIN_TYPE(obj));</div><div class='add'>+        break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* Used in places that could malloc, which can cause the GC to run. We need to</div><div class='add'>+ * temporarily disable the GC to allow the malloc to happen. */</div><div class='add'>+#define COULD_MALLOC_REGION_START() \</div><div class='add'>+    GC_ASSERT(during_gc); \</div><div class='add'>+    VALUE _already_disabled = rb_gc_disable_no_rest(); \</div><div class='add'>+    during_gc = false;</div><div class='add'>+</div><div class='add'>+#define COULD_MALLOC_REGION_END() \</div><div class='add'>+    during_gc = true; \</div><div class='add'>+    if (_already_disabled == Qfalse) rb_objspace_gc_enable(objspace);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+gc_move(rb_objspace_t *objspace, VALUE scan, VALUE free, size_t src_slot_size, size_t slot_size)</div><div class='add'>+{</div><div class='add'>+    int marked;</div><div class='add'>+    int wb_unprotected;</div><div class='add'>+    int uncollectible;</div><div class='add'>+    int marking;</div><div class='add'>+    RVALUE *dest = (RVALUE *)free;</div><div class='add'>+    RVALUE *src = (RVALUE *)scan;</div><div class='add'>+</div><div class='add'>+    gc_report(4, objspace, "Moving object: %p -&gt; %p\n", (void*)scan, (void *)free);</div><div class='add'>+</div><div class='add'>+    GC_ASSERT(BUILTIN_TYPE(scan) != T_NONE);</div><div class='add'>+    GC_ASSERT(!MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(free), free));</div><div class='add'>+</div><div class='add'>+    /* Save off bits for current object. */</div><div class='add'>+    marked = rb_objspace_marked_object_p((VALUE)src);</div><div class='add'>+    wb_unprotected = RVALUE_WB_UNPROTECTED((VALUE)src);</div><div class='add'>+    uncollectible = RVALUE_UNCOLLECTIBLE((VALUE)src);</div><div class='add'>+    marking = RVALUE_MARKING((VALUE)src);</div><div class='add'>+</div><div class='add'>+    /* Clear bits for eventual T_MOVED */</div><div class='add'>+    CLEAR_IN_BITMAP(GET_HEAP_MARK_BITS((VALUE)src), (VALUE)src);</div><div class='add'>+    CLEAR_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS((VALUE)src), (VALUE)src);</div><div class='add'>+    CLEAR_IN_BITMAP(GET_HEAP_UNCOLLECTIBLE_BITS((VALUE)src), (VALUE)src);</div><div class='add'>+    CLEAR_IN_BITMAP(GET_HEAP_MARKING_BITS((VALUE)src), (VALUE)src);</div><div class='add'>+</div><div class='add'>+    if (FL_TEST((VALUE)src, FL_EXIVAR)) {</div><div class='add'>+        /* Resizing the st table could cause a malloc */</div><div class='add'>+        COULD_MALLOC_REGION_START();</div><div class='add'>+        {</div><div class='add'>+            rb_mv_generic_ivar((VALUE)src, (VALUE)dest);</div><div class='add'>+        }</div><div class='add'>+        COULD_MALLOC_REGION_END();</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    st_data_t srcid = (st_data_t)src, id;</div><div class='add'>+</div><div class='add'>+    /* If the source object's object_id has been seen, we need to update</div><div class='add'>+     * the object to object id mapping. */</div><div class='add'>+    if (st_lookup(objspace-&gt;obj_to_id_tbl, srcid, &amp;id)) {</div><div class='add'>+        gc_report(4, objspace, "Moving object with seen id: %p -&gt; %p\n", (void *)src, (void *)dest);</div><div class='add'>+        /* Resizing the st table could cause a malloc */</div><div class='add'>+        COULD_MALLOC_REGION_START();</div><div class='add'>+        {</div><div class='add'>+            st_delete(objspace-&gt;obj_to_id_tbl, &amp;srcid, 0);</div><div class='add'>+            st_insert(objspace-&gt;obj_to_id_tbl, (st_data_t)dest, id);</div><div class='add'>+        }</div><div class='add'>+        COULD_MALLOC_REGION_END();</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* Move the object */</div><div class='add'>+    memcpy(dest, src, MIN(src_slot_size, slot_size));</div><div class='add'>+</div><div class='add'>+    if (RVALUE_OVERHEAD &gt; 0) {</div><div class='add'>+        void *dest_overhead = (void *)(((uintptr_t)dest) + slot_size - RVALUE_OVERHEAD);</div><div class='add'>+        void *src_overhead = (void *)(((uintptr_t)src) + src_slot_size - RVALUE_OVERHEAD);</div><div class='add'>+</div><div class='add'>+        memcpy(dest_overhead, src_overhead, RVALUE_OVERHEAD);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    memset(src, 0, src_slot_size);</div><div class='add'>+</div><div class='add'>+    /* Set bits for object in new location */</div><div class='add'>+    if (marking) {</div><div class='add'>+        MARK_IN_BITMAP(GET_HEAP_MARKING_BITS((VALUE)dest), (VALUE)dest);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        CLEAR_IN_BITMAP(GET_HEAP_MARKING_BITS((VALUE)dest), (VALUE)dest);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (marked) {</div><div class='add'>+        MARK_IN_BITMAP(GET_HEAP_MARK_BITS((VALUE)dest), (VALUE)dest);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        CLEAR_IN_BITMAP(GET_HEAP_MARK_BITS((VALUE)dest), (VALUE)dest);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (wb_unprotected) {</div><div class='add'>+        MARK_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS((VALUE)dest), (VALUE)dest);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        CLEAR_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS((VALUE)dest), (VALUE)dest);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (uncollectible) {</div><div class='add'>+        MARK_IN_BITMAP(GET_HEAP_UNCOLLECTIBLE_BITS((VALUE)dest), (VALUE)dest);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        CLEAR_IN_BITMAP(GET_HEAP_UNCOLLECTIBLE_BITS((VALUE)dest), (VALUE)dest);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* Assign forwarding address */</div><div class='add'>+    src-&gt;as.moved.flags = T_MOVED;</div><div class='add'>+    src-&gt;as.moved.dummy = Qundef;</div><div class='add'>+    src-&gt;as.moved.destination = (VALUE)dest;</div><div class='add'>+    GC_ASSERT(BUILTIN_TYPE((VALUE)dest) != T_NONE);</div><div class='add'>+</div><div class='add'>+    return (VALUE)src;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if GC_CAN_COMPILE_COMPACTION</div><div class='add'>+static int</div><div class='add'>+compare_free_slots(const void *left, const void *right, void *dummy)</div><div class='add'>+{</div><div class='add'>+    struct heap_page *left_page;</div><div class='add'>+    struct heap_page *right_page;</div><div class='add'>+</div><div class='add'>+    left_page = *(struct heap_page * const *)left;</div><div class='add'>+    right_page = *(struct heap_page * const *)right;</div><div class='add'>+</div><div class='add'>+    return left_page-&gt;free_slots - right_page-&gt;free_slots;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_sort_heap_by_empty_slots(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    for (int j = 0; j &lt; SIZE_POOL_COUNT; j++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[j];</div><div class='add'>+</div><div class='add'>+        size_t total_pages = SIZE_POOL_EDEN_HEAP(size_pool)-&gt;total_pages;</div><div class='add'>+        size_t size = size_mul_or_raise(total_pages, sizeof(struct heap_page *), rb_eRuntimeError);</div><div class='add'>+        struct heap_page *page = 0, **page_list = malloc(size);</div><div class='add'>+        size_t i = 0;</div><div class='add'>+</div><div class='add'>+        SIZE_POOL_EDEN_HEAP(size_pool)-&gt;free_pages = NULL;</div><div class='add'>+        ccan_list_for_each(&amp;SIZE_POOL_EDEN_HEAP(size_pool)-&gt;pages, page, page_node) {</div><div class='add'>+            page_list[i++] = page;</div><div class='add'>+            GC_ASSERT(page);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        GC_ASSERT((size_t)i == total_pages);</div><div class='add'>+</div><div class='add'>+        /* Sort the heap so "filled pages" are first. `heap_add_page` adds to the</div><div class='add'>+         * head of the list, so empty pages will end up at the start of the heap */</div><div class='add'>+        ruby_qsort(page_list, total_pages, sizeof(struct heap_page *), compare_free_slots, NULL);</div><div class='add'>+</div><div class='add'>+        /* Reset the eden heap */</div><div class='add'>+        ccan_list_head_init(&amp;SIZE_POOL_EDEN_HEAP(size_pool)-&gt;pages);</div><div class='add'>+</div><div class='add'>+        for (i = 0; i &lt; total_pages; i++) {</div><div class='add'>+            ccan_list_add(&amp;SIZE_POOL_EDEN_HEAP(size_pool)-&gt;pages, &amp;page_list[i]-&gt;page_node);</div><div class='add'>+            if (page_list[i]-&gt;free_slots != 0) {</div><div class='add'>+                heap_add_freepage(SIZE_POOL_EDEN_HEAP(size_pool), page_list[i]);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        free(page_list);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_ref_update_array(rb_objspace_t * objspace, VALUE v)</div><div class='add'>+{</div><div class='add'>+    if (ARY_SHARED_P(v)) {</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+        VALUE old_root = RARRAY(v)-&gt;as.heap.aux.shared_root;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+        UPDATE_IF_MOVED(objspace, RARRAY(v)-&gt;as.heap.aux.shared_root);</div><div class='add'>+</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+        VALUE new_root = RARRAY(v)-&gt;as.heap.aux.shared_root;</div><div class='add'>+        // If the root is embedded and its location has changed</div><div class='add'>+        if (ARY_EMBED_P(new_root) &amp;&amp; new_root != old_root) {</div><div class='add'>+            size_t offset = (size_t)(RARRAY(v)-&gt;as.heap.ptr - RARRAY(old_root)-&gt;as.ary);</div><div class='add'>+            GC_ASSERT(RARRAY(v)-&gt;as.heap.ptr &gt;= RARRAY(old_root)-&gt;as.ary);</div><div class='add'>+            RARRAY(v)-&gt;as.heap.ptr = RARRAY(new_root)-&gt;as.ary + offset;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (ruby_native_thread_p()) {</div><div class='del'>-	    struct objspace_and_reason oar;</div><div class='del'>-	    oar.objspace = objspace;</div><div class='del'>-	    oar.reason = reason;</div><div class='del'>-	    return (int)(VALUE)rb_thread_call_with_gvl(gc_with_gvl, (void *)&amp;oar);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    /* no ruby thread */</div><div class='del'>-	    fprintf(stderr, "[FATAL] failed to allocate memory\n");</div><div class='del'>-	    exit(EXIT_FAILURE);</div><div class='del'>-	}</div><div class='add'>+        long len = RARRAY_LEN(v);</div><div class='add'>+</div><div class='add'>+        if (len &gt; 0) {</div><div class='add'>+            VALUE *ptr = (VALUE *)RARRAY_CONST_PTR_TRANSIENT(v);</div><div class='add'>+            for (long i = 0; i &lt; len; i++) {</div><div class='add'>+                UPDATE_IF_MOVED(objspace, ptr[i]);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+        if (rb_gc_obj_slot_size(v) &gt;= rb_ary_size_as_embedded(v)) {</div><div class='add'>+            if (rb_ary_embeddable_p(v)) {</div><div class='add'>+                rb_ary_make_embedded(v);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#undef Init_stack</div><div class='add'>+static void</div><div class='add'>+gc_ref_update_object(rb_objspace_t *objspace, VALUE v)</div><div class='add'>+{</div><div class='add'>+    VALUE *ptr = ROBJECT_IVPTR(v);</div><div class='add'>+</div><div class='add'>+    if (rb_shape_obj_too_complex(v)) {</div><div class='add'>+        rb_gc_update_tbl_refs(ROBJECT_IV_HASH(v));</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    size_t slot_size = rb_gc_obj_slot_size(v);</div><div class='add'>+    size_t embed_size = rb_obj_embedded_size(ROBJECT_IV_CAPACITY(v));</div><div class='add'>+    if (slot_size &gt;= embed_size &amp;&amp; !RB_FL_TEST_RAW(v, ROBJECT_EMBED)) {</div><div class='add'>+        // Object can be re-embedded</div><div class='add'>+        memcpy(ROBJECT(v)-&gt;as.ary, ptr, sizeof(VALUE) * ROBJECT_IV_COUNT(v));</div><div class='add'>+        RB_FL_SET_RAW(v, ROBJECT_EMBED);</div><div class='add'>+        if (ROBJ_TRANSIENT_P(v)) {</div><div class='add'>+            ROBJ_TRANSIENT_UNSET(v);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            xfree(ptr);</div><div class='add'>+        }</div><div class='add'>+        ptr = ROBJECT(v)-&gt;as.ary;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='add'>+    for (uint32_t i = 0; i &lt; ROBJECT_IV_COUNT(v); i++) {</div><div class='add'>+        UPDATE_IF_MOVED(objspace, ptr[i]);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+hash_replace_ref(st_data_t *key, st_data_t *value, st_data_t argp, int existing)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = (rb_objspace_t *)argp;</div><div class='add'>+</div><div class='add'>+    if (gc_object_moved_p(objspace, (VALUE)*key)) {</div><div class='add'>+        *key = rb_gc_location((VALUE)*key);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (gc_object_moved_p(objspace, (VALUE)*value)) {</div><div class='add'>+        *value = rb_gc_location((VALUE)*value);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+hash_foreach_replace(st_data_t key, st_data_t value, st_data_t argp, int error)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace;</div><div class='add'>+</div><div class='add'>+    objspace = (rb_objspace_t *)argp;</div><div class='add'>+</div><div class='add'>+    if (gc_object_moved_p(objspace, (VALUE)key)) {</div><div class='add'>+        return ST_REPLACE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (gc_object_moved_p(objspace, (VALUE)value)) {</div><div class='add'>+        return ST_REPLACE;</div><div class='add'>+    }</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+hash_replace_ref_value(st_data_t *key, st_data_t *value, st_data_t argp, int existing)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = (rb_objspace_t *)argp;</div><div class='add'>+</div><div class='add'>+    if (gc_object_moved_p(objspace, (VALUE)*value)) {</div><div class='add'>+        *value = rb_gc_location((VALUE)*value);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+hash_foreach_replace_value(st_data_t key, st_data_t value, st_data_t argp, int error)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace;</div><div class='add'>+</div><div class='add'>+    objspace = (rb_objspace_t *)argp;</div><div class='add'>+</div><div class='add'>+    if (gc_object_moved_p(objspace, (VALUE)value)) {</div><div class='add'>+        return ST_REPLACE;</div><div class='add'>+    }</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_update_tbl_refs(rb_objspace_t * objspace, st_table *tbl)</div><div class='add'>+{</div><div class='add'>+    if (!tbl || tbl-&gt;num_entries == 0) return;</div><div class='add'>+</div><div class='add'>+    if (st_foreach_with_replace(tbl, hash_foreach_replace_value, hash_replace_ref_value, (st_data_t)objspace)) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "hash modified during iteration");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_update_table_refs(rb_objspace_t * objspace, st_table *tbl)</div><div class='add'>+{</div><div class='add'>+    if (!tbl || tbl-&gt;num_entries == 0) return;</div><div class='add'>+</div><div class='add'>+    if (st_foreach_with_replace(tbl, hash_foreach_replace, hash_replace_ref, (st_data_t)objspace)) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "hash modified during iteration");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* Update MOVED references in an st_table */</div><div class='ctx'> void</div><div class='del'>-Init_stack(volatile VALUE *addr)</div><div class='add'>+rb_gc_update_tbl_refs(st_table *ptr)</div><div class='ctx'> {</div><div class='del'>-    ruby_init_stack(addr);</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    gc_update_table_refs(objspace, ptr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+gc_ref_update_hash(rb_objspace_t * objspace, VALUE v)</div><div class='add'>+{</div><div class='add'>+    rb_hash_stlike_foreach_with_replace(v, hash_foreach_replace, hash_replace_ref, (st_data_t)objspace);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_ref_update_method_entry(rb_objspace_t *objspace, rb_method_entry_t *me)</div><div class='add'>+{</div><div class='add'>+    rb_method_definition_t *def = me-&gt;def;</div><div class='add'>+</div><div class='add'>+    UPDATE_IF_MOVED(objspace, me-&gt;owner);</div><div class='add'>+    UPDATE_IF_MOVED(objspace, me-&gt;defined_class);</div><div class='add'>+</div><div class='add'>+    if (def) {</div><div class='add'>+        switch (def-&gt;type) {</div><div class='add'>+          case VM_METHOD_TYPE_ISEQ:</div><div class='add'>+            if (def-&gt;body.iseq.iseqptr) {</div><div class='add'>+                TYPED_UPDATE_IF_MOVED(objspace, rb_iseq_t *, def-&gt;body.iseq.iseqptr);</div><div class='add'>+            }</div><div class='add'>+            TYPED_UPDATE_IF_MOVED(objspace, rb_cref_t *, def-&gt;body.iseq.cref);</div><div class='add'>+            break;</div><div class='add'>+          case VM_METHOD_TYPE_ATTRSET:</div><div class='add'>+          case VM_METHOD_TYPE_IVAR:</div><div class='add'>+            UPDATE_IF_MOVED(objspace, def-&gt;body.attr.location);</div><div class='add'>+            break;</div><div class='add'>+          case VM_METHOD_TYPE_BMETHOD:</div><div class='add'>+            UPDATE_IF_MOVED(objspace, def-&gt;body.bmethod.proc);</div><div class='add'>+            break;</div><div class='add'>+          case VM_METHOD_TYPE_ALIAS:</div><div class='add'>+            TYPED_UPDATE_IF_MOVED(objspace, struct rb_method_entry_struct *, def-&gt;body.alias.original_me);</div><div class='add'>+            return;</div><div class='add'>+          case VM_METHOD_TYPE_REFINED:</div><div class='add'>+            TYPED_UPDATE_IF_MOVED(objspace, struct rb_method_entry_struct *, def-&gt;body.refined.orig_me);</div><div class='add'>+            UPDATE_IF_MOVED(objspace, def-&gt;body.refined.owner);</div><div class='add'>+            break;</div><div class='add'>+          case VM_METHOD_TYPE_CFUNC:</div><div class='add'>+          case VM_METHOD_TYPE_ZSUPER:</div><div class='add'>+          case VM_METHOD_TYPE_MISSING:</div><div class='add'>+          case VM_METHOD_TYPE_OPTIMIZED:</div><div class='add'>+          case VM_METHOD_TYPE_UNDEF:</div><div class='add'>+          case VM_METHOD_TYPE_NOTIMPLEMENTED:</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_update_values(rb_objspace_t *objspace, long n, VALUE *values)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;n; i++) {</div><div class='add'>+        UPDATE_IF_MOVED(objspace, values[i]);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_ref_update_imemo(rb_objspace_t *objspace, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    switch (imemo_type(obj)) {</div><div class='add'>+      case imemo_env:</div><div class='add'>+        {</div><div class='add'>+            rb_env_t *env = (rb_env_t *)obj;</div><div class='add'>+            if (LIKELY(env-&gt;ep)) {</div><div class='add'>+                // just after newobj() can be NULL here.</div><div class='add'>+                TYPED_UPDATE_IF_MOVED(objspace, rb_iseq_t *, env-&gt;iseq);</div><div class='add'>+                UPDATE_IF_MOVED(objspace, env-&gt;ep[VM_ENV_DATA_INDEX_ENV]);</div><div class='add'>+                gc_update_values(objspace, (long)env-&gt;env_size, (VALUE *)env-&gt;env);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      case imemo_cref:</div><div class='add'>+        UPDATE_IF_MOVED(objspace, RANY(obj)-&gt;as.imemo.cref.klass_or_self);</div><div class='add'>+        TYPED_UPDATE_IF_MOVED(objspace, struct rb_cref_struct *, RANY(obj)-&gt;as.imemo.cref.next);</div><div class='add'>+        UPDATE_IF_MOVED(objspace, RANY(obj)-&gt;as.imemo.cref.refinements);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_svar:</div><div class='add'>+        UPDATE_IF_MOVED(objspace, RANY(obj)-&gt;as.imemo.svar.cref_or_me);</div><div class='add'>+        UPDATE_IF_MOVED(objspace, RANY(obj)-&gt;as.imemo.svar.lastline);</div><div class='add'>+        UPDATE_IF_MOVED(objspace, RANY(obj)-&gt;as.imemo.svar.backref);</div><div class='add'>+        UPDATE_IF_MOVED(objspace, RANY(obj)-&gt;as.imemo.svar.others);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_throw_data:</div><div class='add'>+        UPDATE_IF_MOVED(objspace, RANY(obj)-&gt;as.imemo.throw_data.throw_obj);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_ifunc:</div><div class='add'>+        break;</div><div class='add'>+      case imemo_memo:</div><div class='add'>+        UPDATE_IF_MOVED(objspace, RANY(obj)-&gt;as.imemo.memo.v1);</div><div class='add'>+        UPDATE_IF_MOVED(objspace, RANY(obj)-&gt;as.imemo.memo.v2);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_ment:</div><div class='add'>+        gc_ref_update_method_entry(objspace, &amp;RANY(obj)-&gt;as.imemo.ment);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_iseq:</div><div class='add'>+        rb_iseq_update_references((rb_iseq_t *)obj);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_ast:</div><div class='add'>+        rb_ast_update_references((rb_ast_t *)obj);</div><div class='add'>+        break;</div><div class='add'>+      case imemo_callcache:</div><div class='add'>+        {</div><div class='add'>+            const struct rb_callcache *cc = (const struct rb_callcache *)obj;</div><div class='add'>+            if (cc-&gt;klass) {</div><div class='add'>+                UPDATE_IF_MOVED(objspace, cc-&gt;klass);</div><div class='add'>+                if (!is_live_object(objspace, cc-&gt;klass)) {</div><div class='add'>+                    *((VALUE *)(&amp;cc-&gt;klass)) = (VALUE)0;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (cc-&gt;cme_) {</div><div class='add'>+                TYPED_UPDATE_IF_MOVED(objspace, struct rb_callable_method_entry_struct *, cc-&gt;cme_);</div><div class='add'>+                if (!is_live_object(objspace, (VALUE)cc-&gt;cme_)) {</div><div class='add'>+                    *((struct rb_callable_method_entry_struct **)(&amp;cc-&gt;cme_)) = (struct rb_callable_method_entry_struct *)0;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      case imemo_constcache:</div><div class='add'>+        {</div><div class='add'>+            const struct iseq_inline_constant_cache_entry *ice = (struct iseq_inline_constant_cache_entry *)obj;</div><div class='add'>+            UPDATE_IF_MOVED(objspace, ice-&gt;value);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      case imemo_parser_strterm:</div><div class='add'>+      case imemo_tmpbuf:</div><div class='add'>+      case imemo_callinfo:</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        rb_bug("not reachable %d", imemo_type(obj));</div><div class='add'>+        break;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+check_id_table_move(VALUE value, void *data)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = (rb_objspace_t *)data;</div><div class='add'>+</div><div class='add'>+    if (gc_object_moved_p(objspace, (VALUE)value)) {</div><div class='add'>+        return ID_TABLE_REPLACE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* Returns the new location of an object, if it moved.  Otherwise returns</div><div class='add'>+ * the existing location. */</div><div class='add'>+VALUE</div><div class='add'>+rb_gc_location(VALUE value)</div><div class='add'>+{</div><div class='add'>+</div><div class='add'>+    VALUE destination;</div><div class='add'>+</div><div class='add'>+    if (!SPECIAL_CONST_P(value)) {</div><div class='add'>+        void *poisoned = asan_unpoison_object_temporary(value);</div><div class='add'>+</div><div class='add'>+        if (BUILTIN_TYPE(value) == T_MOVED) {</div><div class='add'>+            destination = (VALUE)RMOVED(value)-&gt;destination;</div><div class='add'>+            GC_ASSERT(BUILTIN_TYPE(destination) != T_NONE);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            destination = value;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* Re-poison slot if it's not the one we want */</div><div class='add'>+        if (poisoned) {</div><div class='add'>+            GC_ASSERT(BUILTIN_TYPE(value) == T_NONE);</div><div class='add'>+            asan_poison_object(value);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        destination = value;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return destination;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+update_id_table(VALUE *value, void *data, int existing)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = (rb_objspace_t *)data;</div><div class='add'>+</div><div class='add'>+    if (gc_object_moved_p(objspace, (VALUE)*value)) {</div><div class='add'>+        *value = rb_gc_location((VALUE)*value);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+update_m_tbl(rb_objspace_t *objspace, struct rb_id_table *tbl)</div><div class='add'>+{</div><div class='add'>+    if (tbl) {</div><div class='add'>+        rb_id_table_foreach_values_with_replace(tbl, check_id_table_move, update_id_table, objspace);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+update_cc_tbl_i(VALUE ccs_ptr, void *data)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = (rb_objspace_t *)data;</div><div class='add'>+    struct rb_class_cc_entries *ccs = (struct rb_class_cc_entries *)ccs_ptr;</div><div class='add'>+    VM_ASSERT(vm_ccs_p(ccs));</div><div class='add'>+</div><div class='add'>+    if (gc_object_moved_p(objspace, (VALUE)ccs-&gt;cme)) {</div><div class='add'>+        ccs-&gt;cme = (const rb_callable_method_entry_t *)rb_gc_location((VALUE)ccs-&gt;cme);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    for (int i=0; i&lt;ccs-&gt;len; i++) {</div><div class='add'>+        if (gc_object_moved_p(objspace, (VALUE)ccs-&gt;entries[i].ci)) {</div><div class='add'>+            ccs-&gt;entries[i].ci = (struct rb_callinfo *)rb_gc_location((VALUE)ccs-&gt;entries[i].ci);</div><div class='add'>+        }</div><div class='add'>+        if (gc_object_moved_p(objspace, (VALUE)ccs-&gt;entries[i].cc)) {</div><div class='add'>+            ccs-&gt;entries[i].cc = (struct rb_callcache *)rb_gc_location((VALUE)ccs-&gt;entries[i].cc);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // do not replace</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+update_cc_tbl(rb_objspace_t *objspace, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    struct rb_id_table *tbl = RCLASS_CC_TBL(klass);</div><div class='add'>+    if (tbl) {</div><div class='add'>+        rb_id_table_foreach_values(tbl, update_cc_tbl_i, objspace);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+update_cvc_tbl_i(VALUE cvc_entry, void *data)</div><div class='add'>+{</div><div class='add'>+    struct rb_cvar_class_tbl_entry *entry;</div><div class='add'>+    rb_objspace_t * objspace = (rb_objspace_t *)data;</div><div class='add'>+</div><div class='add'>+    entry = (struct rb_cvar_class_tbl_entry *)cvc_entry;</div><div class='add'>+</div><div class='add'>+    if (entry-&gt;cref) {</div><div class='add'>+        TYPED_UPDATE_IF_MOVED(objspace, rb_cref_t *, entry-&gt;cref);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    entry-&gt;class_value = rb_gc_location(entry-&gt;class_value);</div><div class='add'>+</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+update_cvc_tbl(rb_objspace_t *objspace, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    struct rb_id_table *tbl = RCLASS_CVC_TBL(klass);</div><div class='add'>+    if (tbl) {</div><div class='add'>+        rb_id_table_foreach_values(tbl, update_cvc_tbl_i, objspace);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+mark_cvc_tbl_i(VALUE cvc_entry, void *data)</div><div class='add'>+{</div><div class='add'>+    struct rb_cvar_class_tbl_entry *entry;</div><div class='add'>+</div><div class='add'>+    entry = (struct rb_cvar_class_tbl_entry *)cvc_entry;</div><div class='add'>+</div><div class='add'>+    RUBY_ASSERT(entry-&gt;cref == 0 || (BUILTIN_TYPE((VALUE)entry-&gt;cref) == T_IMEMO &amp;&amp; IMEMO_TYPE_P(entry-&gt;cref, imemo_cref)));</div><div class='add'>+    rb_gc_mark((VALUE) entry-&gt;cref);</div><div class='add'>+</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+mark_cvc_tbl(rb_objspace_t *objspace, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    struct rb_id_table *tbl = RCLASS_CVC_TBL(klass);</div><div class='add'>+    if (tbl) {</div><div class='add'>+        rb_id_table_foreach_values(tbl, mark_cvc_tbl_i, objspace);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static enum rb_id_table_iterator_result</div><div class='add'>+update_const_table(VALUE value, void *data)</div><div class='add'>+{</div><div class='add'>+    rb_const_entry_t *ce = (rb_const_entry_t *)value;</div><div class='add'>+    rb_objspace_t * objspace = (rb_objspace_t *)data;</div><div class='add'>+</div><div class='add'>+    if (gc_object_moved_p(objspace, ce-&gt;value)) {</div><div class='add'>+        ce-&gt;value = rb_gc_location(ce-&gt;value);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (gc_object_moved_p(objspace, ce-&gt;file)) {</div><div class='add'>+        ce-&gt;file = rb_gc_location(ce-&gt;file);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ID_TABLE_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+update_const_tbl(rb_objspace_t *objspace, struct rb_id_table *tbl)</div><div class='add'>+{</div><div class='add'>+    if (!tbl) return;</div><div class='add'>+    rb_id_table_foreach_values(tbl, update_const_table, objspace);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+update_subclass_entries(rb_objspace_t *objspace, rb_subclass_entry_t *entry)</div><div class='add'>+{</div><div class='add'>+    while (entry) {</div><div class='add'>+        UPDATE_IF_MOVED(objspace, entry-&gt;klass);</div><div class='add'>+        entry = entry-&gt;next;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+update_class_ext(rb_objspace_t *objspace, rb_classext_t *ext)</div><div class='add'>+{</div><div class='add'>+    UPDATE_IF_MOVED(objspace, ext-&gt;origin_);</div><div class='add'>+    UPDATE_IF_MOVED(objspace, ext-&gt;includer);</div><div class='add'>+    UPDATE_IF_MOVED(objspace, ext-&gt;refined_class);</div><div class='add'>+    update_subclass_entries(objspace, ext-&gt;subclasses);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+update_superclasses(rb_objspace_t *objspace, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (FL_TEST_RAW(obj, RCLASS_SUPERCLASSES_INCLUDE_SELF)) {</div><div class='add'>+        for (size_t i = 0; i &lt; RCLASS_SUPERCLASS_DEPTH(obj) + 1; i++) {</div><div class='add'>+            UPDATE_IF_MOVED(objspace, RCLASS_SUPERCLASSES(obj)[i]);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_update_object_references(rb_objspace_t *objspace, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    RVALUE *any = RANY(obj);</div><div class='add'>+</div><div class='add'>+    gc_report(4, objspace, "update-refs: %p -&gt;\n", (void *)obj);</div><div class='add'>+</div><div class='add'>+    switch (BUILTIN_TYPE(obj)) {</div><div class='add'>+      case T_CLASS:</div><div class='add'>+      case T_MODULE:</div><div class='add'>+        if (RCLASS_SUPER((VALUE)obj)) {</div><div class='add'>+            UPDATE_IF_MOVED(objspace, RCLASS(obj)-&gt;super);</div><div class='add'>+        }</div><div class='add'>+        if (!RCLASS_EXT(obj)) break;</div><div class='add'>+        update_m_tbl(objspace, RCLASS_M_TBL(obj));</div><div class='add'>+        update_cc_tbl(objspace, obj);</div><div class='add'>+        update_cvc_tbl(objspace, obj);</div><div class='add'>+        update_superclasses(objspace, obj);</div><div class='add'>+</div><div class='add'>+        for (attr_index_t i = 0; i &lt; RCLASS_IV_COUNT(obj); i++) {</div><div class='add'>+            UPDATE_IF_MOVED(objspace, RCLASS_IVPTR(obj)[i]);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        update_class_ext(objspace, RCLASS_EXT(obj));</div><div class='add'>+        update_const_tbl(objspace, RCLASS_CONST_TBL(obj));</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_ICLASS:</div><div class='add'>+        if (FL_TEST(obj, RICLASS_IS_ORIGIN) &amp;&amp;</div><div class='add'>+                !FL_TEST(obj, RICLASS_ORIGIN_SHARED_MTBL)) {</div><div class='add'>+            update_m_tbl(objspace, RCLASS_M_TBL(obj));</div><div class='add'>+        }</div><div class='add'>+        if (RCLASS_SUPER((VALUE)obj)) {</div><div class='add'>+            UPDATE_IF_MOVED(objspace, RCLASS(obj)-&gt;super);</div><div class='add'>+        }</div><div class='add'>+        if (!RCLASS_EXT(obj)) break;</div><div class='add'>+        update_class_ext(objspace, RCLASS_EXT(obj));</div><div class='add'>+        update_m_tbl(objspace, RCLASS_CALLABLE_M_TBL(obj));</div><div class='add'>+        update_cc_tbl(objspace, obj);</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_IMEMO:</div><div class='add'>+        gc_ref_update_imemo(objspace, obj);</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+      case T_NIL:</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+      case T_NODE:</div><div class='add'>+      case T_MOVED:</div><div class='add'>+      case T_NONE:</div><div class='add'>+        /* These can't move */</div><div class='add'>+        return;</div><div class='add'>+</div><div class='add'>+      case T_ARRAY:</div><div class='add'>+        gc_ref_update_array(objspace, obj);</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_HASH:</div><div class='add'>+        gc_ref_update_hash(objspace, obj);</div><div class='add'>+        UPDATE_IF_MOVED(objspace, any-&gt;as.hash.ifnone);</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_STRING:</div><div class='add'>+        {</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+            if (STR_SHARED_P(obj)) {</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+                VALUE old_root = any-&gt;as.string.as.heap.aux.shared;</div><div class='add'>+#endif</div><div class='add'>+                UPDATE_IF_MOVED(objspace, any-&gt;as.string.as.heap.aux.shared);</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+                VALUE new_root = any-&gt;as.string.as.heap.aux.shared;</div><div class='add'>+                rb_str_update_shared_ary(obj, old_root, new_root);</div><div class='add'>+#endif</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+            /* If, after move the string is not embedded, and can fit in the</div><div class='add'>+             * slot it's been placed in, then re-embed it. */</div><div class='add'>+            if (rb_gc_obj_slot_size(obj) &gt;= rb_str_size_as_embedded(obj)) {</div><div class='add'>+                if (!STR_EMBED_P(obj) &amp;&amp; rb_str_reembeddable_p(obj)) {</div><div class='add'>+                    rb_str_make_embedded(obj);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+      case T_DATA:</div><div class='add'>+        /* Call the compaction callback, if it exists */</div><div class='add'>+        {</div><div class='add'>+            void *const ptr = DATA_PTR(obj);</div><div class='add'>+            if (ptr) {</div><div class='add'>+                if (RTYPEDDATA_P(obj)) {</div><div class='add'>+                    RUBY_DATA_FUNC compact_func = any-&gt;as.typeddata.type-&gt;function.dcompact;</div><div class='add'>+                    if (compact_func) (*compact_func)(ptr);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_OBJECT:</div><div class='add'>+        gc_ref_update_object(objspace, obj);</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_FILE:</div><div class='add'>+        if (any-&gt;as.file.fptr) {</div><div class='add'>+            UPDATE_IF_MOVED(objspace, any-&gt;as.file.fptr-&gt;self);</div><div class='add'>+            UPDATE_IF_MOVED(objspace, any-&gt;as.file.fptr-&gt;pathv);</div><div class='add'>+            UPDATE_IF_MOVED(objspace, any-&gt;as.file.fptr-&gt;tied_io_for_writing);</div><div class='add'>+            UPDATE_IF_MOVED(objspace, any-&gt;as.file.fptr-&gt;writeconv_asciicompat);</div><div class='add'>+            UPDATE_IF_MOVED(objspace, any-&gt;as.file.fptr-&gt;writeconv_pre_ecopts);</div><div class='add'>+            UPDATE_IF_MOVED(objspace, any-&gt;as.file.fptr-&gt;encs.ecopts);</div><div class='add'>+            UPDATE_IF_MOVED(objspace, any-&gt;as.file.fptr-&gt;write_lock);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      case T_REGEXP:</div><div class='add'>+        UPDATE_IF_MOVED(objspace, any-&gt;as.regexp.src);</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_SYMBOL:</div><div class='add'>+        if (DYNAMIC_SYM_P((VALUE)any)) {</div><div class='add'>+            UPDATE_IF_MOVED(objspace, RSYMBOL(any)-&gt;fstr);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_MATCH:</div><div class='add'>+        UPDATE_IF_MOVED(objspace, any-&gt;as.match.regexp);</div><div class='add'>+</div><div class='add'>+        if (any-&gt;as.match.str) {</div><div class='add'>+            UPDATE_IF_MOVED(objspace, any-&gt;as.match.str);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_RATIONAL:</div><div class='add'>+        UPDATE_IF_MOVED(objspace, any-&gt;as.rational.num);</div><div class='add'>+        UPDATE_IF_MOVED(objspace, any-&gt;as.rational.den);</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_COMPLEX:</div><div class='add'>+        UPDATE_IF_MOVED(objspace, any-&gt;as.complex.real);</div><div class='add'>+        UPDATE_IF_MOVED(objspace, any-&gt;as.complex.imag);</div><div class='add'>+</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case T_STRUCT:</div><div class='add'>+        {</div><div class='add'>+            long i, len = RSTRUCT_LEN(obj);</div><div class='add'>+            VALUE *ptr = (VALUE *)RSTRUCT_CONST_PTR(obj);</div><div class='add'>+</div><div class='add'>+            for (i = 0; i &lt; len; i++) {</div><div class='add'>+                UPDATE_IF_MOVED(objspace, ptr[i]);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+#if GC_DEBUG</div><div class='add'>+        rb_gcdebug_print_obj_condition((VALUE)obj);</div><div class='add'>+        rb_obj_info_dump(obj);</div><div class='add'>+        rb_bug("unreachable");</div><div class='add'>+#endif</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    UPDATE_IF_MOVED(objspace, RBASIC(obj)-&gt;klass);</div><div class='add'>+</div><div class='add'>+    gc_report(4, objspace, "update-refs: %p &lt;-\n", (void *)obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gc_ref_update(void *vstart, void *vend, size_t stride, rb_objspace_t * objspace, struct heap_page *page)</div><div class='add'>+{</div><div class='add'>+    VALUE v = (VALUE)vstart;</div><div class='add'>+    asan_unlock_freelist(page);</div><div class='add'>+    asan_lock_freelist(page);</div><div class='add'>+    page-&gt;flags.has_uncollectible_shady_objects = FALSE;</div><div class='add'>+    page-&gt;flags.has_remembered_objects = FALSE;</div><div class='add'>+</div><div class='add'>+    /* For each object on the page */</div><div class='add'>+    for (; v != (VALUE)vend; v += stride) {</div><div class='add'>+        void *poisoned = asan_unpoison_object_temporary(v);</div><div class='add'>+</div><div class='add'>+        switch (BUILTIN_TYPE(v)) {</div><div class='add'>+          case T_NONE:</div><div class='add'>+          case T_MOVED:</div><div class='add'>+          case T_ZOMBIE:</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            if (RVALUE_WB_UNPROTECTED(v)) {</div><div class='add'>+                page-&gt;flags.has_uncollectible_shady_objects = TRUE;</div><div class='add'>+            }</div><div class='add'>+            if (RVALUE_PAGE_MARKING(page, v)) {</div><div class='add'>+                page-&gt;flags.has_remembered_objects = TRUE;</div><div class='add'>+            }</div><div class='add'>+            if (page-&gt;flags.before_sweep) {</div><div class='add'>+                if (RVALUE_MARKED(v)) {</div><div class='add'>+                    gc_update_object_references(objspace, v);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                gc_update_object_references(objspace, v);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (poisoned) {</div><div class='add'>+            asan_poison_object(v);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+extern rb_symbols_t ruby_global_symbols;</div><div class='add'>+#define global_symbols ruby_global_symbols</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+gc_update_references(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    rb_execution_context_t *ec = GET_EC();</div><div class='add'>+    rb_vm_t *vm = rb_ec_vm_ptr(ec);</div><div class='add'>+</div><div class='add'>+    struct heap_page *page = NULL;</div><div class='add'>+</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        bool should_set_mark_bits = TRUE;</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+        rb_heap_t *heap = SIZE_POOL_EDEN_HEAP(size_pool);</div><div class='add'>+</div><div class='add'>+        ccan_list_for_each(&amp;heap-&gt;pages, page, page_node) {</div><div class='add'>+            uintptr_t start = (uintptr_t)page-&gt;start;</div><div class='add'>+            uintptr_t end = start + (page-&gt;total_slots * size_pool-&gt;slot_size);</div><div class='add'>+</div><div class='add'>+            gc_ref_update((void *)start, (void *)end, size_pool-&gt;slot_size, objspace, page);</div><div class='add'>+            if (page == heap-&gt;sweeping_page) {</div><div class='add'>+                should_set_mark_bits = FALSE;</div><div class='add'>+            }</div><div class='add'>+            if (should_set_mark_bits) {</div><div class='add'>+                gc_setup_mark_bits(page);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    rb_vm_update_references(vm);</div><div class='add'>+    rb_transient_heap_update_references();</div><div class='add'>+    rb_gc_update_global_tbl();</div><div class='add'>+    global_symbols.ids = rb_gc_location(global_symbols.ids);</div><div class='add'>+    global_symbols.dsymbol_fstr_hash = rb_gc_location(global_symbols.dsymbol_fstr_hash);</div><div class='add'>+    gc_update_tbl_refs(objspace, objspace-&gt;obj_to_id_tbl);</div><div class='add'>+    gc_update_table_refs(objspace, objspace-&gt;id_to_obj_tbl);</div><div class='add'>+    gc_update_table_refs(objspace, global_symbols.str_sym);</div><div class='add'>+    gc_update_table_refs(objspace, finalizer_table);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if GC_CAN_COMPILE_COMPACTION</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     GC.start                     -&gt; nil</div><div class='del'>- *     ObjectSpace.garbage_collect  -&gt; nil</div><div class='del'>- *     include GC; garbage_collect  -&gt; nil</div><div class='del'>- *     GC.start(full_mark: true, immediate_sweep: true)           -&gt; nil</div><div class='del'>- *     ObjectSpace.garbage_collect(full_mark: true, immediate_sweep: true) -&gt; nil</div><div class='del'>- *     include GC; garbage_collect(full_mark: true, immediate_sweep: true) -&gt; nil</div><div class='add'>+ *     GC.latest_compact_info -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ * Returns information about object moved in the most recent \GC compaction.</div><div class='ctx'>  *</div><div class='del'>- *  Initiates garbage collection, unless manually disabled.</div><div class='add'>+ * The returned hash has two keys :considered and :moved.  The hash for</div><div class='add'>+ * :considered lists the number of objects that were considered for movement</div><div class='add'>+ * by the compactor, and the :moved hash lists the number of objects that</div><div class='add'>+ * were actually moved.  Some objects can't be moved (maybe they were pinned)</div><div class='add'>+ * so these numbers can be used to calculate compaction efficiency.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+gc_compact_stats(VALUE self)</div><div class='add'>+{</div><div class='add'>+    size_t i;</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    VALUE h = rb_hash_new();</div><div class='add'>+    VALUE considered = rb_hash_new();</div><div class='add'>+    VALUE moved = rb_hash_new();</div><div class='add'>+    VALUE moved_up = rb_hash_new();</div><div class='add'>+    VALUE moved_down = rb_hash_new();</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;T_MASK; i++) {</div><div class='add'>+        if (objspace-&gt;rcompactor.considered_count_table[i]) {</div><div class='add'>+            rb_hash_aset(considered, type_sym(i), SIZET2NUM(objspace-&gt;rcompactor.considered_count_table[i]));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (objspace-&gt;rcompactor.moved_count_table[i]) {</div><div class='add'>+            rb_hash_aset(moved, type_sym(i), SIZET2NUM(objspace-&gt;rcompactor.moved_count_table[i]));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (objspace-&gt;rcompactor.moved_up_count_table[i]) {</div><div class='add'>+            rb_hash_aset(moved_up, type_sym(i), SIZET2NUM(objspace-&gt;rcompactor.moved_up_count_table[i]));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (objspace-&gt;rcompactor.moved_down_count_table[i]) {</div><div class='add'>+            rb_hash_aset(moved_down, type_sym(i), SIZET2NUM(objspace-&gt;rcompactor.moved_down_count_table[i]));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_hash_aset(h, ID2SYM(rb_intern("considered")), considered);</div><div class='add'>+    rb_hash_aset(h, ID2SYM(rb_intern("moved")), moved);</div><div class='add'>+    rb_hash_aset(h, ID2SYM(rb_intern("moved_up")), moved_up);</div><div class='add'>+    rb_hash_aset(h, ID2SYM(rb_intern("moved_down")), moved_down);</div><div class='add'>+</div><div class='add'>+    return h;</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+#  define gc_compact_stats rb_f_notimplement</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if GC_CAN_COMPILE_COMPACTION</div><div class='add'>+static void</div><div class='add'>+root_obj_check_moved_i(const char *category, VALUE obj, void *data)</div><div class='add'>+{</div><div class='add'>+    if (gc_object_moved_p(&amp;rb_objspace, obj)) {</div><div class='add'>+        rb_bug("ROOT %s points to MOVED: %p -&gt; %s\n", category, (void *)obj, obj_info(rb_gc_location(obj)));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+reachable_object_check_moved_i(VALUE ref, void *data)</div><div class='add'>+{</div><div class='add'>+    VALUE parent = (VALUE)data;</div><div class='add'>+    if (gc_object_moved_p(&amp;rb_objspace, ref)) {</div><div class='add'>+        rb_bug("Object %s points to MOVED: %p -&gt; %s\n", obj_info(parent), (void *)ref, obj_info(rb_gc_location(ref)));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+heap_check_moved_i(void *vstart, void *vend, size_t stride, void *data)</div><div class='add'>+{</div><div class='add'>+    VALUE v = (VALUE)vstart;</div><div class='add'>+    for (; v != (VALUE)vend; v += stride) {</div><div class='add'>+        if (gc_object_moved_p(&amp;rb_objspace, v)) {</div><div class='add'>+            /* Moved object still on the heap, something may have a reference. */</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            void *poisoned = asan_unpoison_object_temporary(v);</div><div class='add'>+</div><div class='add'>+            switch (BUILTIN_TYPE(v)) {</div><div class='add'>+              case T_NONE:</div><div class='add'>+              case T_ZOMBIE:</div><div class='add'>+                break;</div><div class='add'>+              default:</div><div class='add'>+                if (!rb_objspace_garbage_object_p(v)) {</div><div class='add'>+                    rb_objspace_reachable_objects_from(v, reachable_object_check_moved_i, (void *)v);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (poisoned) {</div><div class='add'>+                GC_ASSERT(BUILTIN_TYPE(v) == T_NONE);</div><div class='add'>+                asan_poison_object(v);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     GC.compact</div><div class='ctx'>  *</div><div class='del'>- *  This method is defined with keyword arguments that default to true:</div><div class='add'>+ * This function compacts objects together in Ruby's heap.  It eliminates</div><div class='add'>+ * unused space (or fragmentation) in the heap by moving objects in to that</div><div class='add'>+ * unused space.  This function returns a hash which contains statistics about</div><div class='add'>+ * which objects were moved.  See &lt;tt&gt;GC.latest_gc_info&lt;/tt&gt; for details about</div><div class='add'>+ * compaction statistics.</div><div class='ctx'>  *</div><div class='del'>- *     def GC.start(full_mark: true, immediate_sweep: true); end</div><div class='add'>+ * This method is implementation specific and not expected to be implemented</div><div class='add'>+ * in any implementation besides MRI.</div><div class='ctx'>  *</div><div class='del'>- *  Use full_mark: false to perform a minor GC.</div><div class='del'>- *  Use immediate_sweep: false to defer sweeping (use lazy sweep).</div><div class='add'>+ * To test whether \GC compaction is supported, use the idiom:</div><div class='ctx'>  *</div><div class='del'>- *  Note: These keyword arguments are implementation and version dependent. They</div><div class='del'>- *  are not guaranteed to be future-compatible, and may be ignored if the</div><div class='del'>- *  underlying implementation does not support them.</div><div class='add'>+ *   GC.respond_to?(:compact)</div><div class='ctx'>  */</div><div class='add'>+static VALUE</div><div class='add'>+gc_compact(VALUE self)</div><div class='add'>+{</div><div class='add'>+    /* Run GC with compaction enabled */</div><div class='add'>+    gc_start_internal(NULL, self, Qtrue, Qtrue, Qtrue, Qtrue);</div><div class='ctx'> </div><div class='add'>+    return gc_compact_stats(self);</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+#  define gc_compact rb_f_notimplement</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if GC_CAN_COMPILE_COMPACTION</div><div class='ctx'> static VALUE</div><div class='del'>-gc_start_internal(int argc, VALUE *argv, VALUE self)</div><div class='add'>+gc_verify_compaction_references(rb_execution_context_t *ec, VALUE self, VALUE double_heap, VALUE expand_heap, VALUE toward_empty)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-    int reason = GPR_FLAG_FULL_MARK | GPR_FLAG_IMMEDIATE_MARK |</div><div class='del'>-                GPR_FLAG_IMMEDIATE_SWEEP | GPR_FLAG_METHOD;</div><div class='del'>-    VALUE opt = Qnil;</div><div class='del'>-    static ID keyword_ids[3];</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "0:", &amp;opt);</div><div class='add'>+    /* Clear the heap. */</div><div class='add'>+    gc_start_internal(NULL, self, Qtrue, Qtrue, Qtrue, Qfalse);</div><div class='add'>+    size_t growth_slots = gc_params.heap_init_slots;</div><div class='ctx'> </div><div class='del'>-    if (!NIL_P(opt)) {</div><div class='del'>-	VALUE kwvals[3];</div><div class='add'>+    if (RTEST(double_heap)) {</div><div class='add'>+        rb_warn("double_heap is deprecated, please use expand_heap instead");</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-	if (!keyword_ids[0]) {</div><div class='del'>-	    keyword_ids[0] = rb_intern("full_mark");</div><div class='del'>-	    keyword_ids[1] = rb_intern("immediate_mark");</div><div class='del'>-	    keyword_ids[2] = rb_intern("immediate_sweep");</div><div class='del'>-	}</div><div class='add'>+    RB_VM_LOCK_ENTER();</div><div class='add'>+    {</div><div class='add'>+        gc_rest(objspace);</div><div class='ctx'> </div><div class='del'>-	rb_get_kwargs(opt, keyword_ids, 0, 3, kwvals);</div><div class='add'>+        /* if both double_heap and expand_heap are set, expand_heap takes precedence */</div><div class='add'>+        if (RTEST(double_heap) || RTEST(expand_heap)) {</div><div class='add'>+            for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+                rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='add'>+                rb_heap_t *heap = SIZE_POOL_EDEN_HEAP(size_pool);</div><div class='ctx'> </div><div class='del'>-	if (kwvals[0] != Qundef &amp;&amp; !RTEST(kwvals[0])) {</div><div class='del'>-            reason &amp;= ~GPR_FLAG_FULL_MARK;</div><div class='del'>-        }</div><div class='del'>-	if (kwvals[1] != Qundef &amp;&amp; !RTEST(kwvals[1])) {</div><div class='del'>-            reason &amp;= ~GPR_FLAG_IMMEDIATE_MARK;</div><div class='add'>+                if (RTEST(expand_heap)) {</div><div class='add'>+                    size_t required_pages = growth_slots / size_pool-&gt;slot_size;</div><div class='add'>+                    heap_add_pages(objspace, size_pool, heap, MAX(required_pages, heap-&gt;total_pages));</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    heap_add_pages(objspace, size_pool, heap, heap-&gt;total_pages);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='ctx'>         }</div><div class='del'>-	if (kwvals[2] != Qundef &amp;&amp; !RTEST(kwvals[2])) {</div><div class='del'>-            reason &amp;= ~GPR_FLAG_IMMEDIATE_SWEEP;</div><div class='add'>+</div><div class='add'>+        if (RTEST(toward_empty)) {</div><div class='add'>+            gc_sort_heap_by_empty_slots(objspace);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='add'>+    RB_VM_LOCK_LEAVE();</div><div class='ctx'> </div><div class='del'>-    garbage_collect(objspace, reason);</div><div class='del'>-    gc_finalize_deferred(objspace);</div><div class='add'>+    gc_start_internal(NULL, self, Qtrue, Qtrue, Qtrue, Qtrue);</div><div class='ctx'> </div><div class='del'>-    return Qnil;</div><div class='add'>+    objspace_reachable_objects_from_root(objspace, root_obj_check_moved_i, NULL);</div><div class='add'>+    objspace_each_objects(objspace, heap_check_moved_i, NULL, TRUE);</div><div class='add'>+</div><div class='add'>+    return gc_compact_stats(self);</div><div class='ctx'> }</div><div class='add'>+#else</div><div class='add'>+#  define gc_verify_compaction_references (rb_builtin_arity3_function_type)rb_f_notimplement</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_gc_start(void)</div><div class='hunk'>@@ -6906,10 +11040,8 @@ void</div><div class='ctx'> rb_gc(void)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-    int reason = GPR_FLAG_FULL_MARK | GPR_FLAG_IMMEDIATE_MARK |</div><div class='del'>-                GPR_FLAG_IMMEDIATE_SWEEP | GPR_FLAG_CAPI;</div><div class='add'>+    unsigned int reason = GPR_DEFAULT_REASON;</div><div class='ctx'>     garbage_collect(objspace, reason);</div><div class='del'>-    gc_finalize_deferred(objspace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='hunk'>@@ -6929,8 +11061,8 @@ gc_count_add_each_types(VALUE hash, const char *name, const size_t *types)</div><div class='ctx'>     VALUE result = rb_hash_new_with_size(T_MASK);</div><div class='ctx'>     int i;</div><div class='ctx'>     for (i=0; i&lt;T_MASK; i++) {</div><div class='del'>-	const char *type = type_name(i, 0);</div><div class='del'>-	rb_hash_aset(result, ID2SYM(rb_intern(type)), SIZET2NUM(types[i]));</div><div class='add'>+        const char *type = type_name(i, 0);</div><div class='add'>+        rb_hash_aset(result, ID2SYM(rb_intern(type)), SIZET2NUM(types[i]));</div><div class='ctx'>     }</div><div class='ctx'>     rb_hash_aset(hash, ID2SYM(rb_intern(name)), result);</div><div class='ctx'> }</div><div class='hunk'>@@ -6942,26 +11074,16 @@ rb_gc_count(void)</div><div class='ctx'>     return rb_objspace.profile.count;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     GC.count -&gt; Integer</div><div class='del'>- *</div><div class='del'>- *  The number of times GC occurred.</div><div class='del'>- *</div><div class='del'>- *  It returns the number of times GC occurred since the process started.</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='del'>-gc_count(VALUE self)</div><div class='add'>+gc_count(rb_execution_context_t *ec, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     return SIZET2NUM(rb_gc_count());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-gc_info_decode(rb_objspace_t *objspace, const VALUE hash_or_key, const int orig_flags)</div><div class='add'>+gc_info_decode(rb_objspace_t *objspace, const VALUE hash_or_key, const unsigned int orig_flags)</div><div class='ctx'> {</div><div class='del'>-    static VALUE sym_major_by = Qnil, sym_gc_by, sym_immediate_sweep, sym_have_finalizer, sym_state;</div><div class='add'>+    static VALUE sym_major_by = Qnil, sym_gc_by, sym_immediate_sweep, sym_have_finalizer, sym_state, sym_need_major_by;</div><div class='ctx'>     static VALUE sym_nofree, sym_oldgen, sym_shady, sym_force, sym_stress;</div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='ctx'>     static VALUE sym_oldmalloc;</div><div class='hunk'>@@ -6969,51 +11091,52 @@ gc_info_decode(rb_objspace_t *objspace, const VALUE hash_or_key, const int orig_</div><div class='ctx'>     static VALUE sym_newobj, sym_malloc, sym_method, sym_capi;</div><div class='ctx'>     static VALUE sym_none, sym_marking, sym_sweeping;</div><div class='ctx'>     VALUE hash = Qnil, key = Qnil;</div><div class='del'>-    VALUE major_by;</div><div class='del'>-    VALUE flags = orig_flags ? orig_flags : objspace-&gt;profile.latest_gc_info;</div><div class='add'>+    VALUE major_by, need_major_by;</div><div class='add'>+    unsigned int flags = orig_flags ? orig_flags : objspace-&gt;profile.latest_gc_info;</div><div class='ctx'> </div><div class='ctx'>     if (SYMBOL_P(hash_or_key)) {</div><div class='del'>-	key = hash_or_key;</div><div class='add'>+        key = hash_or_key;</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(hash_or_key, T_HASH)) {</div><div class='del'>-	hash = hash_or_key;</div><div class='add'>+        hash = hash_or_key;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_raise(rb_eTypeError, "non-hash or symbol given");</div><div class='add'>+        rb_raise(rb_eTypeError, "non-hash or symbol given");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (sym_major_by == Qnil) {</div><div class='add'>+    if (NIL_P(sym_major_by)) {</div><div class='ctx'> #define S(s) sym_##s = ID2SYM(rb_intern_const(#s))</div><div class='del'>-	S(major_by);</div><div class='del'>-	S(gc_by);</div><div class='del'>-	S(immediate_sweep);</div><div class='del'>-	S(have_finalizer);</div><div class='del'>-	S(state);</div><div class='del'>-</div><div class='del'>-	S(stress);</div><div class='del'>-	S(nofree);</div><div class='del'>-	S(oldgen);</div><div class='del'>-	S(shady);</div><div class='del'>-	S(force);</div><div class='add'>+        S(major_by);</div><div class='add'>+        S(gc_by);</div><div class='add'>+        S(immediate_sweep);</div><div class='add'>+        S(have_finalizer);</div><div class='add'>+        S(state);</div><div class='add'>+        S(need_major_by);</div><div class='add'>+</div><div class='add'>+        S(stress);</div><div class='add'>+        S(nofree);</div><div class='add'>+        S(oldgen);</div><div class='add'>+        S(shady);</div><div class='add'>+        S(force);</div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='del'>-	S(oldmalloc);</div><div class='add'>+        S(oldmalloc);</div><div class='ctx'> #endif</div><div class='del'>-	S(newobj);</div><div class='del'>-	S(malloc);</div><div class='del'>-	S(method);</div><div class='del'>-	S(capi);</div><div class='add'>+        S(newobj);</div><div class='add'>+        S(malloc);</div><div class='add'>+        S(method);</div><div class='add'>+        S(capi);</div><div class='ctx'> </div><div class='del'>-	S(none);</div><div class='del'>-	S(marking);</div><div class='del'>-	S(sweeping);</div><div class='add'>+        S(none);</div><div class='add'>+        S(marking);</div><div class='add'>+        S(sweeping);</div><div class='ctx'> #undef S</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> #define SET(name, attr) \</div><div class='ctx'>     if (key == sym_##name) \</div><div class='del'>-	return (attr); \</div><div class='add'>+        return (attr); \</div><div class='ctx'>     else if (hash != Qnil) \</div><div class='del'>-	rb_hash_aset(hash, sym_##name, (attr));</div><div class='add'>+        rb_hash_aset(hash, sym_##name, (attr));</div><div class='ctx'> </div><div class='ctx'>     major_by =</div><div class='ctx'>       (flags &amp; GPR_FLAG_MAJOR_BY_NOFREE) ? sym_nofree :</div><div class='hunk'>@@ -7026,26 +11149,40 @@ gc_info_decode(rb_objspace_t *objspace, const VALUE hash_or_key, const int orig_</div><div class='ctx'>       Qnil;</div><div class='ctx'>     SET(major_by, major_by);</div><div class='ctx'> </div><div class='add'>+    if (orig_flags == 0) { /* set need_major_by only if flags not set explicitly */</div><div class='add'>+        unsigned int need_major_flags = objspace-&gt;rgengc.need_major_gc;</div><div class='add'>+        need_major_by =</div><div class='add'>+            (need_major_flags &amp; GPR_FLAG_MAJOR_BY_NOFREE) ? sym_nofree :</div><div class='add'>+            (need_major_flags &amp; GPR_FLAG_MAJOR_BY_OLDGEN) ? sym_oldgen :</div><div class='add'>+            (need_major_flags &amp; GPR_FLAG_MAJOR_BY_SHADY)  ? sym_shady :</div><div class='add'>+            (need_major_flags &amp; GPR_FLAG_MAJOR_BY_FORCE)  ? sym_force :</div><div class='add'>+#if RGENGC_ESTIMATE_OLDMALLOC</div><div class='add'>+            (need_major_flags &amp; GPR_FLAG_MAJOR_BY_OLDMALLOC) ? sym_oldmalloc :</div><div class='add'>+#endif</div><div class='add'>+            Qnil;</div><div class='add'>+        SET(need_major_by, need_major_by);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     SET(gc_by,</div><div class='del'>-	(flags &amp; GPR_FLAG_NEWOBJ) ? sym_newobj :</div><div class='del'>-	(flags &amp; GPR_FLAG_MALLOC) ? sym_malloc :</div><div class='del'>-	(flags &amp; GPR_FLAG_METHOD) ? sym_method :</div><div class='del'>-	(flags &amp; GPR_FLAG_CAPI)   ? sym_capi :</div><div class='del'>-	(flags &amp; GPR_FLAG_STRESS) ? sym_stress :</div><div class='del'>-	Qnil</div><div class='add'>+        (flags &amp; GPR_FLAG_NEWOBJ) ? sym_newobj :</div><div class='add'>+        (flags &amp; GPR_FLAG_MALLOC) ? sym_malloc :</div><div class='add'>+        (flags &amp; GPR_FLAG_METHOD) ? sym_method :</div><div class='add'>+        (flags &amp; GPR_FLAG_CAPI)   ? sym_capi :</div><div class='add'>+        (flags &amp; GPR_FLAG_STRESS) ? sym_stress :</div><div class='add'>+        Qnil</div><div class='ctx'>     );</div><div class='ctx'> </div><div class='del'>-    SET(have_finalizer, (flags &amp; GPR_FLAG_HAVE_FINALIZE) ? Qtrue : Qfalse);</div><div class='del'>-    SET(immediate_sweep, (flags &amp; GPR_FLAG_IMMEDIATE_SWEEP) ? Qtrue : Qfalse);</div><div class='add'>+    SET(have_finalizer, RBOOL(flags &amp; GPR_FLAG_HAVE_FINALIZE));</div><div class='add'>+    SET(immediate_sweep, RBOOL(flags &amp; GPR_FLAG_IMMEDIATE_SWEEP));</div><div class='ctx'> </div><div class='ctx'>     if (orig_flags == 0) {</div><div class='del'>-	SET(state, gc_mode(objspace) == gc_mode_none ? sym_none :</div><div class='del'>-	           gc_mode(objspace) == gc_mode_marking ? sym_marking : sym_sweeping);</div><div class='add'>+        SET(state, gc_mode(objspace) == gc_mode_none ? sym_none :</div><div class='add'>+                   gc_mode(objspace) == gc_mode_marking ? sym_marking : sym_sweeping);</div><div class='ctx'>     }</div><div class='ctx'> #undef SET</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(key)) {/* matched key should return above */</div><div class='del'>-	rb_raise(rb_eArgError, "unknown key: %"PRIsVALUE, rb_sym2str(key));</div><div class='add'>+        rb_raise(rb_eArgError, "unknown key: %"PRIsVALUE, rb_sym2str(key));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return hash;</div><div class='hunk'>@@ -7058,29 +11195,16 @@ rb_gc_latest_gc_info(VALUE key)</div><div class='ctx'>     return gc_info_decode(objspace, key, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     GC.latest_gc_info -&gt; {:gc_by=&gt;:newobj}</div><div class='del'>- *     GC.latest_gc_info(hash) -&gt; hash</div><div class='del'>- *     GC.latest_gc_info(:major_by) -&gt; :malloc</div><div class='del'>- *</div><div class='del'>- *  Returns information about the most recent garbage collection.</div><div class='del'>- */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='del'>-gc_latest_gc_info(int argc, VALUE *argv, VALUE self)</div><div class='add'>+gc_latest_gc_info(rb_execution_context_t *ec, VALUE self, VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-    VALUE arg = Qnil;</div><div class='ctx'> </div><div class='del'>-    if (rb_check_arity(argc, 0, 1) == 1) {</div><div class='del'>-        arg = argv[0];</div><div class='del'>-	if (!SYMBOL_P(arg) &amp;&amp; !RB_TYPE_P(arg, T_HASH)) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "non-hash or symbol given");</div><div class='del'>-	}</div><div class='add'>+    if (NIL_P(arg)) {</div><div class='add'>+        arg = rb_hash_new();</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	arg = rb_hash_new();</div><div class='add'>+    else if (!SYMBOL_P(arg) &amp;&amp; !RB_TYPE_P(arg, T_HASH)) {</div><div class='add'>+        rb_raise(rb_eTypeError, "non-hash or symbol given");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return gc_info_decode(objspace, arg, 0);</div><div class='hunk'>@@ -7088,6 +11212,7 @@ gc_latest_gc_info(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'> enum gc_stat_sym {</div><div class='ctx'>     gc_stat_sym_count,</div><div class='add'>+    gc_stat_sym_time,</div><div class='ctx'>     gc_stat_sym_heap_allocated_pages,</div><div class='ctx'>     gc_stat_sym_heap_sorted_length,</div><div class='ctx'>     gc_stat_sym_heap_allocatable_pages,</div><div class='hunk'>@@ -7104,9 +11229,11 @@ enum gc_stat_sym {</div><div class='ctx'>     gc_stat_sym_total_freed_objects,</div><div class='ctx'>     gc_stat_sym_malloc_increase_bytes,</div><div class='ctx'>     gc_stat_sym_malloc_increase_bytes_limit,</div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     gc_stat_sym_minor_gc_count,</div><div class='ctx'>     gc_stat_sym_major_gc_count,</div><div class='add'>+    gc_stat_sym_compact_count,</div><div class='add'>+    gc_stat_sym_read_barrier_faults,</div><div class='add'>+    gc_stat_sym_total_moved_objects,</div><div class='ctx'>     gc_stat_sym_remembered_wb_unprotected_objects,</div><div class='ctx'>     gc_stat_sym_remembered_wb_unprotected_objects_limit,</div><div class='ctx'>     gc_stat_sym_old_objects,</div><div class='hunk'>@@ -7123,180 +11250,57 @@ enum gc_stat_sym {</div><div class='ctx'>     gc_stat_sym_total_remembered_normal_object_count,</div><div class='ctx'>     gc_stat_sym_total_remembered_shady_object_count,</div><div class='ctx'> #endif</div><div class='del'>-#endif</div><div class='ctx'>     gc_stat_sym_last</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-enum gc_stat_compat_sym {</div><div class='del'>-    gc_stat_compat_sym_gc_stat_heap_used,</div><div class='del'>-    gc_stat_compat_sym_heap_eden_page_length,</div><div class='del'>-    gc_stat_compat_sym_heap_tomb_page_length,</div><div class='del'>-    gc_stat_compat_sym_heap_increment,</div><div class='del'>-    gc_stat_compat_sym_heap_length,</div><div class='del'>-    gc_stat_compat_sym_heap_live_slot,</div><div class='del'>-    gc_stat_compat_sym_heap_free_slot,</div><div class='del'>-    gc_stat_compat_sym_heap_final_slot,</div><div class='del'>-    gc_stat_compat_sym_heap_swept_slot,</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-    gc_stat_compat_sym_remembered_shady_object,</div><div class='del'>-    gc_stat_compat_sym_remembered_shady_object_limit,</div><div class='del'>-    gc_stat_compat_sym_old_object,</div><div class='del'>-    gc_stat_compat_sym_old_object_limit,</div><div class='del'>-#endif</div><div class='del'>-    gc_stat_compat_sym_total_allocated_object,</div><div class='del'>-    gc_stat_compat_sym_total_freed_object,</div><div class='del'>-    gc_stat_compat_sym_malloc_increase,</div><div class='del'>-    gc_stat_compat_sym_malloc_limit,</div><div class='del'>-#if RGENGC_ESTIMATE_OLDMALLOC</div><div class='del'>-    gc_stat_compat_sym_oldmalloc_increase,</div><div class='del'>-    gc_stat_compat_sym_oldmalloc_limit,</div><div class='del'>-#endif</div><div class='del'>-    gc_stat_compat_sym_last</div><div class='del'>-};</div><div class='del'>-</div><div class='ctx'> static VALUE gc_stat_symbols[gc_stat_sym_last];</div><div class='del'>-static VALUE gc_stat_compat_symbols[gc_stat_compat_sym_last];</div><div class='del'>-static VALUE gc_stat_compat_table;</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> setup_gc_stat_symbols(void)</div><div class='ctx'> {</div><div class='ctx'>     if (gc_stat_symbols[0] == 0) {</div><div class='ctx'> #define S(s) gc_stat_symbols[gc_stat_sym_##s] = ID2SYM(rb_intern_const(#s))</div><div class='del'>-	S(count);</div><div class='del'>-	S(heap_allocated_pages);</div><div class='del'>-	S(heap_sorted_length);</div><div class='del'>-	S(heap_allocatable_pages);</div><div class='del'>-	S(heap_available_slots);</div><div class='del'>-	S(heap_live_slots);</div><div class='del'>-	S(heap_free_slots);</div><div class='del'>-	S(heap_final_slots);</div><div class='del'>-	S(heap_marked_slots);</div><div class='del'>-	S(heap_eden_pages);</div><div class='del'>-	S(heap_tomb_pages);</div><div class='del'>-	S(total_allocated_pages);</div><div class='del'>-	S(total_freed_pages);</div><div class='del'>-	S(total_allocated_objects);</div><div class='del'>-	S(total_freed_objects);</div><div class='del'>-	S(malloc_increase_bytes);</div><div class='del'>-	S(malloc_increase_bytes_limit);</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-	S(minor_gc_count);</div><div class='del'>-	S(major_gc_count);</div><div class='del'>-	S(remembered_wb_unprotected_objects);</div><div class='del'>-	S(remembered_wb_unprotected_objects_limit);</div><div class='del'>-	S(old_objects);</div><div class='del'>-	S(old_objects_limit);</div><div class='add'>+        S(count);</div><div class='add'>+        S(time);</div><div class='add'>+        S(heap_allocated_pages);</div><div class='add'>+        S(heap_sorted_length);</div><div class='add'>+        S(heap_allocatable_pages);</div><div class='add'>+        S(heap_available_slots);</div><div class='add'>+        S(heap_live_slots);</div><div class='add'>+        S(heap_free_slots);</div><div class='add'>+        S(heap_final_slots);</div><div class='add'>+        S(heap_marked_slots);</div><div class='add'>+        S(heap_eden_pages);</div><div class='add'>+        S(heap_tomb_pages);</div><div class='add'>+        S(total_allocated_pages);</div><div class='add'>+        S(total_freed_pages);</div><div class='add'>+        S(total_allocated_objects);</div><div class='add'>+        S(total_freed_objects);</div><div class='add'>+        S(malloc_increase_bytes);</div><div class='add'>+        S(malloc_increase_bytes_limit);</div><div class='add'>+        S(minor_gc_count);</div><div class='add'>+        S(major_gc_count);</div><div class='add'>+        S(compact_count);</div><div class='add'>+        S(read_barrier_faults);</div><div class='add'>+        S(total_moved_objects);</div><div class='add'>+        S(remembered_wb_unprotected_objects);</div><div class='add'>+        S(remembered_wb_unprotected_objects_limit);</div><div class='add'>+        S(old_objects);</div><div class='add'>+        S(old_objects_limit);</div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='del'>-	S(oldmalloc_increase_bytes);</div><div class='del'>-	S(oldmalloc_increase_bytes_limit);</div><div class='add'>+        S(oldmalloc_increase_bytes);</div><div class='add'>+        S(oldmalloc_increase_bytes_limit);</div><div class='ctx'> #endif</div><div class='ctx'> #if RGENGC_PROFILE</div><div class='del'>-	S(total_generated_normal_object_count);</div><div class='del'>-	S(total_generated_shady_object_count);</div><div class='del'>-	S(total_shade_operation_count);</div><div class='del'>-	S(total_promoted_count);</div><div class='del'>-	S(total_remembered_normal_object_count);</div><div class='del'>-	S(total_remembered_shady_object_count);</div><div class='add'>+        S(total_generated_normal_object_count);</div><div class='add'>+        S(total_generated_shady_object_count);</div><div class='add'>+        S(total_shade_operation_count);</div><div class='add'>+        S(total_promoted_count);</div><div class='add'>+        S(total_remembered_normal_object_count);</div><div class='add'>+        S(total_remembered_shady_object_count);</div><div class='ctx'> #endif /* RGENGC_PROFILE */</div><div class='del'>-#endif /* USE_RGENGC */</div><div class='del'>-#undef S</div><div class='del'>-#define S(s) gc_stat_compat_symbols[gc_stat_compat_sym_##s] = ID2SYM(rb_intern_const(#s))</div><div class='del'>-	S(gc_stat_heap_used);</div><div class='del'>-	S(heap_eden_page_length);</div><div class='del'>-	S(heap_tomb_page_length);</div><div class='del'>-	S(heap_increment);</div><div class='del'>-	S(heap_length);</div><div class='del'>-	S(heap_live_slot);</div><div class='del'>-	S(heap_free_slot);</div><div class='del'>-	S(heap_final_slot);</div><div class='del'>-	S(heap_swept_slot);</div><div class='del'>-#if USE_RGEGC</div><div class='del'>-	S(remembered_shady_object);</div><div class='del'>-	S(remembered_shady_object_limit);</div><div class='del'>-	S(old_object);</div><div class='del'>-	S(old_object_limit);</div><div class='del'>-#endif</div><div class='del'>-	S(total_allocated_object);</div><div class='del'>-	S(total_freed_object);</div><div class='del'>-	S(malloc_increase);</div><div class='del'>-	S(malloc_limit);</div><div class='del'>-#if RGENGC_ESTIMATE_OLDMALLOC</div><div class='del'>-	S(oldmalloc_increase);</div><div class='del'>-	S(oldmalloc_limit);</div><div class='del'>-#endif</div><div class='ctx'> #undef S</div><div class='del'>-</div><div class='del'>-	{</div><div class='del'>-	    VALUE table = gc_stat_compat_table = rb_hash_new();</div><div class='del'>-	    rb_obj_hide(table);</div><div class='del'>-	    rb_gc_register_mark_object(table);</div><div class='del'>-</div><div class='del'>-	    /* compatibility layer for Ruby 2.1 */</div><div class='del'>-#define OLD_SYM(s) gc_stat_compat_symbols[gc_stat_compat_sym_##s]</div><div class='del'>-#define NEW_SYM(s) gc_stat_symbols[gc_stat_sym_##s]</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(gc_stat_heap_used), NEW_SYM(heap_allocated_pages));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(heap_eden_page_length), NEW_SYM(heap_eden_pages));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(heap_tomb_page_length), NEW_SYM(heap_tomb_pages));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(heap_increment), NEW_SYM(heap_allocatable_pages));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(heap_length), NEW_SYM(heap_sorted_length));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(heap_live_slot), NEW_SYM(heap_live_slots));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(heap_free_slot), NEW_SYM(heap_free_slots));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(heap_final_slot), NEW_SYM(heap_final_slots));</div><div class='del'>-#if USE_RGEGC</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(remembered_shady_object), NEW_SYM(remembered_wb_unprotected_objects));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(remembered_shady_object_limit), NEW_SYM(remembered_wb_unprotected_objects_limit));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(old_object), NEW_SYM(old_objects));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(old_object_limit), NEW_SYM(old_objects_limit));</div><div class='del'>-#endif</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(total_allocated_object), NEW_SYM(total_allocated_objects));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(total_freed_object), NEW_SYM(total_freed_objects));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(malloc_increase), NEW_SYM(malloc_increase_bytes));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(malloc_limit), NEW_SYM(malloc_increase_bytes_limit));</div><div class='del'>-#if RGENGC_ESTIMATE_OLDMALLOC</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(oldmalloc_increase), NEW_SYM(oldmalloc_increase_bytes));</div><div class='del'>-	    rb_hash_aset(table, OLD_SYM(oldmalloc_limit), NEW_SYM(oldmalloc_increase_bytes_limit));</div><div class='del'>-#endif</div><div class='del'>-#undef OLD_SYM</div><div class='del'>-#undef NEW_SYM</div><div class='del'>-	    rb_obj_freeze(table);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-compat_key(VALUE key)</div><div class='del'>-{</div><div class='del'>-    VALUE new_key = rb_hash_lookup(gc_stat_compat_table, key);</div><div class='del'>-</div><div class='del'>-    if (!NIL_P(new_key)) {</div><div class='del'>-	static int warned = 0;</div><div class='del'>-	if (warned == 0) {</div><div class='del'>-	    rb_warn("GC.stat keys were changed from Ruby 2.1. "</div><div class='del'>-		    "In this case, you refer to obsolete `%"PRIsVALUE"' (new key is `%"PRIsVALUE"'). "</div><div class='del'>-		    "Please check &lt;https://bugs.ruby-lang.org/issues/9924&gt; for more information.",</div><div class='del'>-		    key, new_key);</div><div class='del'>-	    warned = 1;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return new_key;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-default_proc_for_compat_func(VALUE hash, VALUE dmy, int argc, VALUE *argv)</div><div class='del'>-{</div><div class='del'>-    VALUE key, new_key;</div><div class='del'>-</div><div class='del'>-    Check_Type(hash, T_HASH);</div><div class='del'>-    rb_check_arity(argc, 2, 2);</div><div class='del'>-    key = argv[1];</div><div class='del'>-</div><div class='del'>-    if ((new_key = compat_key(key)) != Qnil) {</div><div class='del'>-	return rb_hash_lookup(hash, new_key);</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static size_t</div><div class='hunk'>@@ -7308,53 +11312,46 @@ gc_stat_internal(VALUE hash_or_sym)</div><div class='ctx'>     setup_gc_stat_symbols();</div><div class='ctx'> </div><div class='ctx'>     if (RB_TYPE_P(hash_or_sym, T_HASH)) {</div><div class='del'>-	hash = hash_or_sym;</div><div class='del'>-</div><div class='del'>-	if (NIL_P(RHASH_IFNONE(hash))) {</div><div class='del'>-	    static VALUE default_proc_for_compat = 0;</div><div class='del'>-	    if (default_proc_for_compat == 0) { /* TODO: it should be */</div><div class='del'>-		default_proc_for_compat = rb_proc_new(default_proc_for_compat_func, Qnil);</div><div class='del'>-		rb_gc_register_mark_object(default_proc_for_compat);</div><div class='del'>-	    }</div><div class='del'>-	    rb_hash_set_default_proc(hash, default_proc_for_compat);</div><div class='del'>-	}</div><div class='add'>+        hash = hash_or_sym;</div><div class='ctx'>     }</div><div class='ctx'>     else if (SYMBOL_P(hash_or_sym)) {</div><div class='del'>-	key = hash_or_sym;</div><div class='add'>+        key = hash_or_sym;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_raise(rb_eTypeError, "non-hash or symbol argument");</div><div class='add'>+        rb_raise(rb_eTypeError, "non-hash or symbol argument");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> #define SET(name, attr) \</div><div class='ctx'>     if (key == gc_stat_symbols[gc_stat_sym_##name]) \</div><div class='del'>-	return attr; \</div><div class='add'>+        return attr; \</div><div class='ctx'>     else if (hash != Qnil) \</div><div class='del'>-	rb_hash_aset(hash, gc_stat_symbols[gc_stat_sym_##name], SIZET2NUM(attr));</div><div class='add'>+        rb_hash_aset(hash, gc_stat_symbols[gc_stat_sym_##name], SIZET2NUM(attr));</div><div class='ctx'> </div><div class='del'>-  again:</div><div class='ctx'>     SET(count, objspace-&gt;profile.count);</div><div class='add'>+    SET(time, (size_t) (objspace-&gt;profile.total_time_ns / (1000 * 1000) /* ns -&gt; ms */)); // TODO: UINT64T2NUM</div><div class='ctx'> </div><div class='ctx'>     /* implementation dependent counters */</div><div class='ctx'>     SET(heap_allocated_pages, heap_allocated_pages);</div><div class='ctx'>     SET(heap_sorted_length, heap_pages_sorted_length);</div><div class='del'>-    SET(heap_allocatable_pages, heap_allocatable_pages);</div><div class='add'>+    SET(heap_allocatable_pages, heap_allocatable_pages(objspace));</div><div class='ctx'>     SET(heap_available_slots, objspace_available_slots(objspace));</div><div class='ctx'>     SET(heap_live_slots, objspace_live_slots(objspace));</div><div class='ctx'>     SET(heap_free_slots, objspace_free_slots(objspace));</div><div class='ctx'>     SET(heap_final_slots, heap_pages_final_slots);</div><div class='ctx'>     SET(heap_marked_slots, objspace-&gt;marked_slots);</div><div class='del'>-    SET(heap_eden_pages, heap_eden-&gt;total_pages);</div><div class='del'>-    SET(heap_tomb_pages, heap_tomb-&gt;total_pages);</div><div class='del'>-    SET(total_allocated_pages, objspace-&gt;profile.total_allocated_pages);</div><div class='del'>-    SET(total_freed_pages, objspace-&gt;profile.total_freed_pages);</div><div class='add'>+    SET(heap_eden_pages, heap_eden_total_pages(objspace));</div><div class='add'>+    SET(heap_tomb_pages, heap_tomb_total_pages(objspace));</div><div class='add'>+    SET(total_allocated_pages, total_allocated_pages(objspace));</div><div class='add'>+    SET(total_freed_pages, total_freed_pages(objspace));</div><div class='ctx'>     SET(total_allocated_objects, objspace-&gt;total_allocated_objects);</div><div class='ctx'>     SET(total_freed_objects, objspace-&gt;profile.total_freed_objects);</div><div class='ctx'>     SET(malloc_increase_bytes, malloc_increase);</div><div class='ctx'>     SET(malloc_increase_bytes_limit, malloc_limit);</div><div class='del'>-#if USE_RGENGC</div><div class='ctx'>     SET(minor_gc_count, objspace-&gt;profile.minor_gc_count);</div><div class='ctx'>     SET(major_gc_count, objspace-&gt;profile.major_gc_count);</div><div class='add'>+    SET(compact_count, objspace-&gt;profile.compact_count);</div><div class='add'>+    SET(read_barrier_faults, objspace-&gt;profile.read_barrier_faults);</div><div class='add'>+    SET(total_moved_objects, objspace-&gt;rcompactor.total_moved);</div><div class='ctx'>     SET(remembered_wb_unprotected_objects, objspace-&gt;rgengc.uncollectible_wb_unprotected_objects);</div><div class='ctx'>     SET(remembered_wb_unprotected_objects_limit, objspace-&gt;rgengc.uncollectible_wb_unprotected_objects_limit);</div><div class='ctx'>     SET(old_objects, objspace-&gt;rgengc.old_objects);</div><div class='hunk'>@@ -7372,95 +11369,43 @@ gc_stat_internal(VALUE hash_or_sym)</div><div class='ctx'>     SET(total_remembered_normal_object_count, objspace-&gt;profile.total_remembered_normal_object_count);</div><div class='ctx'>     SET(total_remembered_shady_object_count, objspace-&gt;profile.total_remembered_shady_object_count);</div><div class='ctx'> #endif /* RGENGC_PROFILE */</div><div class='del'>-#endif /* USE_RGENGC */</div><div class='ctx'> #undef SET</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(key)) { /* matched key should return above */</div><div class='del'>-	VALUE new_key;</div><div class='del'>-	if ((new_key = compat_key(key)) != Qnil) {</div><div class='del'>-	    key = new_key;</div><div class='del'>-	    goto again;</div><div class='del'>-	}</div><div class='del'>-	rb_raise(rb_eArgError, "unknown key: %"PRIsVALUE, rb_sym2str(key));</div><div class='add'>+        rb_raise(rb_eArgError, "unknown key: %"PRIsVALUE, rb_sym2str(key));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> #if defined(RGENGC_PROFILE) &amp;&amp; RGENGC_PROFILE &gt;= 2</div><div class='ctx'>     if (hash != Qnil) {</div><div class='del'>-	gc_count_add_each_types(hash, "generated_normal_object_count_types", objspace-&gt;profile.generated_normal_object_count_types);</div><div class='del'>-	gc_count_add_each_types(hash, "generated_shady_object_count_types", objspace-&gt;profile.generated_shady_object_count_types);</div><div class='del'>-	gc_count_add_each_types(hash, "shade_operation_count_types", objspace-&gt;profile.shade_operation_count_types);</div><div class='del'>-	gc_count_add_each_types(hash, "promoted_types", objspace-&gt;profile.promoted_types);</div><div class='del'>-	gc_count_add_each_types(hash, "remembered_normal_object_count_types", objspace-&gt;profile.remembered_normal_object_count_types);</div><div class='del'>-	gc_count_add_each_types(hash, "remembered_shady_object_count_types", objspace-&gt;profile.remembered_shady_object_count_types);</div><div class='add'>+        gc_count_add_each_types(hash, "generated_normal_object_count_types", objspace-&gt;profile.generated_normal_object_count_types);</div><div class='add'>+        gc_count_add_each_types(hash, "generated_shady_object_count_types", objspace-&gt;profile.generated_shady_object_count_types);</div><div class='add'>+        gc_count_add_each_types(hash, "shade_operation_count_types", objspace-&gt;profile.shade_operation_count_types);</div><div class='add'>+        gc_count_add_each_types(hash, "promoted_types", objspace-&gt;profile.promoted_types);</div><div class='add'>+        gc_count_add_each_types(hash, "remembered_normal_object_count_types", objspace-&gt;profile.remembered_normal_object_count_types);</div><div class='add'>+        gc_count_add_each_types(hash, "remembered_shady_object_count_types", objspace-&gt;profile.remembered_shady_object_count_types);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     GC.stat -&gt; Hash</div><div class='del'>- *     GC.stat(hash) -&gt; hash</div><div class='del'>- *     GC.stat(:key) -&gt; Numeric</div><div class='del'>- *</div><div class='del'>- *  Returns a Hash containing information about the GC.</div><div class='del'>- *</div><div class='del'>- *  The hash includes information about internal statistics about GC such as:</div><div class='del'>- *</div><div class='del'>- *      {</div><div class='del'>- *          :count=&gt;0,</div><div class='del'>- *          :heap_allocated_pages=&gt;24,</div><div class='del'>- *          :heap_sorted_length=&gt;24,</div><div class='del'>- *          :heap_allocatable_pages=&gt;0,</div><div class='del'>- *          :heap_available_slots=&gt;9783,</div><div class='del'>- *          :heap_live_slots=&gt;7713,</div><div class='del'>- *          :heap_free_slots=&gt;2070,</div><div class='del'>- *          :heap_final_slots=&gt;0,</div><div class='del'>- *          :heap_marked_slots=&gt;0,</div><div class='del'>- *          :heap_eden_pages=&gt;24,</div><div class='del'>- *          :heap_tomb_pages=&gt;0,</div><div class='del'>- *          :total_allocated_pages=&gt;24,</div><div class='del'>- *          :total_freed_pages=&gt;0,</div><div class='del'>- *          :total_allocated_objects=&gt;7796,</div><div class='del'>- *          :total_freed_objects=&gt;83,</div><div class='del'>- *          :malloc_increase_bytes=&gt;2389312,</div><div class='del'>- *          :malloc_increase_bytes_limit=&gt;16777216,</div><div class='del'>- *          :minor_gc_count=&gt;0,</div><div class='del'>- *          :major_gc_count=&gt;0,</div><div class='del'>- *          :remembered_wb_unprotected_objects=&gt;0,</div><div class='del'>- *          :remembered_wb_unprotected_objects_limit=&gt;0,</div><div class='del'>- *          :old_objects=&gt;0,</div><div class='del'>- *          :old_objects_limit=&gt;0,</div><div class='del'>- *          :oldmalloc_increase_bytes=&gt;2389760,</div><div class='del'>- *          :oldmalloc_increase_bytes_limit=&gt;16777216</div><div class='del'>- *      }</div><div class='del'>- *</div><div class='del'>- *  The contents of the hash are implementation specific and may be changed in</div><div class='del'>- *  the future.</div><div class='del'>- *</div><div class='del'>- *  This method is only expected to work on C Ruby.</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='del'>-gc_stat(int argc, VALUE *argv, VALUE self)</div><div class='add'>+gc_stat(rb_execution_context_t *ec, VALUE self, VALUE arg) // arg is (nil || hash || symbol)</div><div class='ctx'> {</div><div class='del'>-    VALUE arg = Qnil;</div><div class='del'>-</div><div class='del'>-    if (rb_check_arity(argc, 0, 1) == 1) {</div><div class='del'>-        arg = argv[0];</div><div class='del'>-	if (SYMBOL_P(arg)) {</div><div class='del'>-	    size_t value = gc_stat_internal(arg);</div><div class='del'>-	    return SIZET2NUM(value);</div><div class='del'>-	}</div><div class='del'>-	else if (!RB_TYPE_P(arg, T_HASH)) {</div><div class='del'>-	    rb_raise(rb_eTypeError, "non-hash or symbol given");</div><div class='del'>-	}</div><div class='add'>+    if (NIL_P(arg)) {</div><div class='add'>+        arg = rb_hash_new();</div><div class='add'>+    }</div><div class='add'>+    else if (SYMBOL_P(arg)) {</div><div class='add'>+        size_t value = gc_stat_internal(arg);</div><div class='add'>+        return SIZET2NUM(value);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(arg, T_HASH)) {</div><div class='add'>+        // ok</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        arg = rb_hash_new();</div><div class='add'>+        rb_raise(rb_eTypeError, "non-hash or symbol given");</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     gc_stat_internal(arg);</div><div class='ctx'>     return arg;</div><div class='ctx'> }</div><div class='hunk'>@@ -7469,24 +11414,148 @@ size_t</div><div class='ctx'> rb_gc_stat(VALUE key)</div><div class='ctx'> {</div><div class='ctx'>     if (SYMBOL_P(key)) {</div><div class='del'>-	size_t value = gc_stat_internal(key);</div><div class='del'>-	return value;</div><div class='add'>+        size_t value = gc_stat_internal(key);</div><div class='add'>+        return value;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	gc_stat_internal(key);</div><div class='del'>-	return 0;</div><div class='add'>+        gc_stat_internal(key);</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *    GC.stress	    -&gt; integer, true or false</div><div class='del'>- *</div><div class='del'>- *  Returns current status of GC stress mode.</div><div class='del'>- */</div><div class='add'>+</div><div class='add'>+enum gc_stat_heap_sym {</div><div class='add'>+    gc_stat_heap_sym_slot_size,</div><div class='add'>+    gc_stat_heap_sym_heap_allocatable_pages,</div><div class='add'>+    gc_stat_heap_sym_heap_eden_pages,</div><div class='add'>+    gc_stat_heap_sym_heap_eden_slots,</div><div class='add'>+    gc_stat_heap_sym_heap_tomb_pages,</div><div class='add'>+    gc_stat_heap_sym_heap_tomb_slots,</div><div class='add'>+    gc_stat_heap_sym_total_allocated_pages,</div><div class='add'>+    gc_stat_heap_sym_total_freed_pages,</div><div class='add'>+    gc_stat_heap_sym_force_major_gc_count,</div><div class='add'>+    gc_stat_heap_sym_last</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE gc_stat_heap_symbols[gc_stat_heap_sym_last];</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+setup_gc_stat_heap_symbols(void)</div><div class='add'>+{</div><div class='add'>+    if (gc_stat_heap_symbols[0] == 0) {</div><div class='add'>+#define S(s) gc_stat_heap_symbols[gc_stat_heap_sym_##s] = ID2SYM(rb_intern_const(#s))</div><div class='add'>+        S(slot_size);</div><div class='add'>+        S(heap_allocatable_pages);</div><div class='add'>+        S(heap_eden_pages);</div><div class='add'>+        S(heap_eden_slots);</div><div class='add'>+        S(heap_tomb_pages);</div><div class='add'>+        S(heap_tomb_slots);</div><div class='add'>+        S(total_allocated_pages);</div><div class='add'>+        S(total_freed_pages);</div><div class='add'>+        S(force_major_gc_count);</div><div class='add'>+#undef S</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+gc_stat_heap_internal(int size_pool_idx, VALUE hash_or_sym)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    VALUE hash = Qnil, key = Qnil;</div><div class='add'>+</div><div class='add'>+    setup_gc_stat_heap_symbols();</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(hash_or_sym, T_HASH)) {</div><div class='add'>+        hash = hash_or_sym;</div><div class='add'>+    }</div><div class='add'>+    else if (SYMBOL_P(hash_or_sym)) {</div><div class='add'>+        key = hash_or_sym;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_raise(rb_eTypeError, "non-hash or symbol argument");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (size_pool_idx &lt; 0 || size_pool_idx &gt;= SIZE_POOL_COUNT) {</div><div class='add'>+        rb_raise(rb_eArgError, "size pool index out of range");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_size_pool_t *size_pool = &amp;size_pools[size_pool_idx];</div><div class='add'>+</div><div class='add'>+#define SET(name, attr) \</div><div class='add'>+    if (key == gc_stat_heap_symbols[gc_stat_heap_sym_##name]) \</div><div class='add'>+        return attr; \</div><div class='add'>+    else if (hash != Qnil) \</div><div class='add'>+        rb_hash_aset(hash, gc_stat_heap_symbols[gc_stat_heap_sym_##name], SIZET2NUM(attr));</div><div class='add'>+</div><div class='add'>+    SET(slot_size, size_pool-&gt;slot_size);</div><div class='add'>+    SET(heap_allocatable_pages, size_pool-&gt;allocatable_pages);</div><div class='add'>+    SET(heap_eden_pages, SIZE_POOL_EDEN_HEAP(size_pool)-&gt;total_pages);</div><div class='add'>+    SET(heap_eden_slots, SIZE_POOL_EDEN_HEAP(size_pool)-&gt;total_slots);</div><div class='add'>+    SET(heap_tomb_pages, SIZE_POOL_TOMB_HEAP(size_pool)-&gt;total_pages);</div><div class='add'>+    SET(heap_tomb_slots, SIZE_POOL_TOMB_HEAP(size_pool)-&gt;total_slots);</div><div class='add'>+    SET(total_allocated_pages, size_pool-&gt;total_allocated_pages);</div><div class='add'>+    SET(total_freed_pages, size_pool-&gt;total_freed_pages);</div><div class='add'>+    SET(force_major_gc_count, size_pool-&gt;force_major_gc_count);</div><div class='add'>+#undef SET</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(key)) { /* matched key should return above */</div><div class='add'>+        rb_raise(rb_eArgError, "unknown key: %"PRIsVALUE, rb_sym2str(key));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+gc_stat_heap(rb_execution_context_t *ec, VALUE self, VALUE heap_name, VALUE arg)</div><div class='add'>+{</div><div class='add'>+    if (NIL_P(heap_name)) {</div><div class='add'>+        if (NIL_P(arg)) {</div><div class='add'>+            arg = rb_hash_new();</div><div class='add'>+        }</div><div class='add'>+        else if (RB_TYPE_P(arg, T_HASH)) {</div><div class='add'>+            // ok</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_raise(rb_eTypeError, "non-hash given");</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+            VALUE hash = rb_hash_aref(arg, INT2FIX(i));</div><div class='add'>+            if (NIL_P(hash)) {</div><div class='add'>+                hash = rb_hash_new();</div><div class='add'>+                rb_hash_aset(arg, INT2FIX(i), hash);</div><div class='add'>+            }</div><div class='add'>+            gc_stat_heap_internal(i, hash);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else if (FIXNUM_P(heap_name)) {</div><div class='add'>+        int size_pool_idx = FIX2INT(heap_name);</div><div class='add'>+</div><div class='add'>+        if (NIL_P(arg)) {</div><div class='add'>+            arg = rb_hash_new();</div><div class='add'>+        }</div><div class='add'>+        else if (SYMBOL_P(arg)) {</div><div class='add'>+            size_t value = gc_stat_heap_internal(size_pool_idx, arg);</div><div class='add'>+            return SIZET2NUM(value);</div><div class='add'>+        }</div><div class='add'>+        else if (RB_TYPE_P(arg, T_HASH)) {</div><div class='add'>+            // ok</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_raise(rb_eTypeError, "non-hash or symbol given");</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        gc_stat_heap_internal(size_pool_idx, arg);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_raise(rb_eTypeError, "heap_name must be nil or an Integer");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return arg;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-gc_stress_get(VALUE self)</div><div class='add'>+gc_stress_get(rb_execution_context_t *ec, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'>     return ruby_gc_stress_mode;</div><div class='hunk'>@@ -7499,132 +11568,164 @@ gc_stress_set(rb_objspace_t *objspace, VALUE flag)</div><div class='ctx'>     objspace-&gt;gc_stress_mode = flag;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *    GC.stress = flag          -&gt; flag</div><div class='del'>- *</div><div class='del'>- *  Updates the GC stress mode.</div><div class='del'>- *</div><div class='del'>- *  When stress mode is enabled, the GC is invoked at every GC opportunity:</div><div class='del'>- *  all memory and object allocations.</div><div class='del'>- *</div><div class='del'>- *  Enabling stress mode will degrade performance, it is only for debugging.</div><div class='del'>- *</div><div class='del'>- *  flag can be true, false, or an integer bit-ORed following flags.</div><div class='del'>- *    0x01:: no major GC</div><div class='del'>- *    0x02:: no immediate sweep</div><div class='del'>- *    0x04:: full mark after malloc/calloc/realloc</div><div class='del'>- */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='del'>-gc_stress_set_m(VALUE self, VALUE flag)</div><div class='add'>+gc_stress_set_m(rb_execution_context_t *ec, VALUE self, VALUE flag)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'>     gc_stress_set(objspace, flag);</div><div class='ctx'>     return flag;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     GC.enable    -&gt; true or false</div><div class='del'>- *</div><div class='del'>- *  Enables garbage collection, returning +true+ if garbage</div><div class='del'>- *  collection was previously disabled.</div><div class='del'>- *</div><div class='del'>- *     GC.disable   #=&gt; false</div><div class='del'>- *     GC.enable    #=&gt; true</div><div class='del'>- *     GC.enable    #=&gt; false</div><div class='del'>- *</div><div class='del'>- */</div><div class='del'>-</div><div class='ctx'> VALUE</div><div class='ctx'> rb_gc_enable(void)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-    int old = dont_gc;</div><div class='add'>+    return rb_objspace_gc_enable(objspace);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_objspace_gc_enable(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    int old = dont_gc_val();</div><div class='add'>+</div><div class='add'>+    dont_gc_off();</div><div class='add'>+    return RBOOL(old);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+gc_enable(rb_execution_context_t *ec, VALUE _)</div><div class='add'>+{</div><div class='add'>+    return rb_gc_enable();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_gc_disable_no_rest(void)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    return gc_disable_no_rest(objspace);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+gc_disable_no_rest(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    int old = dont_gc_val();</div><div class='add'>+    dont_gc_on();</div><div class='add'>+    return RBOOL(old);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    dont_gc = FALSE;</div><div class='del'>-    return old ? Qtrue : Qfalse;</div><div class='add'>+VALUE</div><div class='add'>+rb_gc_disable(void)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    return rb_objspace_gc_disable(objspace);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_objspace_gc_disable(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    gc_rest(objspace);</div><div class='add'>+    return gc_disable_no_rest(objspace);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+gc_disable(rb_execution_context_t *ec, VALUE _)</div><div class='add'>+{</div><div class='add'>+    return rb_gc_disable();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if GC_CAN_COMPILE_COMPACTION</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     GC.disable    -&gt; true or false</div><div class='add'>+ *     GC.auto_compact = flag</div><div class='ctx'>  *</div><div class='del'>- *  Disables garbage collection, returning +true+ if garbage</div><div class='del'>- *  collection was already disabled.</div><div class='add'>+ *  Updates automatic compaction mode.</div><div class='ctx'>  *</div><div class='del'>- *     GC.disable   #=&gt; false</div><div class='del'>- *     GC.disable   #=&gt; true</div><div class='add'>+ *  When enabled, the compactor will execute on every major collection.</div><div class='ctx'>  *</div><div class='add'>+ *  Enabling compaction will degrade performance on major collections.</div><div class='ctx'>  */</div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-rb_gc_disable(void)</div><div class='add'>+static VALUE</div><div class='add'>+gc_set_auto_compact(VALUE _, VALUE v)</div><div class='ctx'> {</div><div class='del'>-    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-    int old = dont_gc;</div><div class='add'>+    GC_ASSERT(GC_COMPACTION_SUPPORTED);</div><div class='ctx'> </div><div class='del'>-    gc_rest(objspace);</div><div class='add'>+    ruby_enable_autocompact = RTEST(v);</div><div class='add'>+    return v;</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+#  define gc_set_auto_compact rb_f_notimplement</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-    dont_gc = TRUE;</div><div class='del'>-    return old ? Qtrue : Qfalse;</div><div class='add'>+#if GC_CAN_COMPILE_COMPACTION</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     GC.auto_compact    -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns whether or not automatic compaction has been enabled.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+gc_get_auto_compact(VALUE _)</div><div class='add'>+{</div><div class='add'>+    return RBOOL(ruby_enable_autocompact);</div><div class='ctx'> }</div><div class='add'>+#else</div><div class='add'>+#  define gc_get_auto_compact rb_f_notimplement</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> get_envparam_size(const char *name, size_t *default_value, size_t lower_bound)</div><div class='ctx'> {</div><div class='del'>-    char *ptr = getenv(name);</div><div class='add'>+    const char *ptr = getenv(name);</div><div class='ctx'>     ssize_t val;</div><div class='ctx'> </div><div class='ctx'>     if (ptr != NULL &amp;&amp; *ptr) {</div><div class='del'>-	size_t unit = 0;</div><div class='del'>-	char *end;</div><div class='add'>+        size_t unit = 0;</div><div class='add'>+        char *end;</div><div class='ctx'> #if SIZEOF_SIZE_T == SIZEOF_LONG_LONG</div><div class='del'>-	val = strtoll(ptr, &amp;end, 0);</div><div class='add'>+        val = strtoll(ptr, &amp;end, 0);</div><div class='ctx'> #else</div><div class='del'>-	val = strtol(ptr, &amp;end, 0);</div><div class='del'>-#endif</div><div class='del'>-	switch (*end) {</div><div class='del'>-	  case 'k': case 'K':</div><div class='del'>-	    unit = 1024;</div><div class='del'>-	    ++end;</div><div class='del'>-	    break;</div><div class='del'>-	  case 'm': case 'M':</div><div class='del'>-	    unit = 1024*1024;</div><div class='del'>-	    ++end;</div><div class='del'>-	    break;</div><div class='del'>-	  case 'g': case 'G':</div><div class='del'>-	    unit = 1024*1024*1024;</div><div class='del'>-	    ++end;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	while (*end &amp;&amp; isspace((unsigned char)*end)) end++;</div><div class='del'>-	if (*end) {</div><div class='del'>-	    if (RTEST(ruby_verbose)) fprintf(stderr, "invalid string for %s: %s\n", name, ptr);</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='del'>-	if (unit &gt; 0) {</div><div class='del'>-	    if (val &lt; -(ssize_t)(SIZE_MAX / 2 / unit) || (ssize_t)(SIZE_MAX / 2 / unit) &lt; val) {</div><div class='del'>-		if (RTEST(ruby_verbose)) fprintf(stderr, "%s=%s is ignored because it overflows\n", name, ptr);</div><div class='del'>-		return 0;</div><div class='del'>-	    }</div><div class='del'>-	    val *= unit;</div><div class='del'>-	}</div><div class='del'>-	if (val &gt; 0 &amp;&amp; (size_t)val &gt; lower_bound) {</div><div class='del'>-	    if (RTEST(ruby_verbose)) {</div><div class='del'>-		fprintf(stderr, "%s=%"PRIdSIZE" (default value: %"PRIuSIZE")\n", name, val, *default_value);</div><div class='del'>-	    }</div><div class='del'>-	    *default_value = (size_t)val;</div><div class='del'>-	    return 1;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (RTEST(ruby_verbose)) {</div><div class='del'>-		fprintf(stderr, "%s=%"PRIdSIZE" (default value: %"PRIuSIZE") is ignored because it must be greater than %"PRIuSIZE".\n",</div><div class='del'>-			name, val, *default_value, lower_bound);</div><div class='del'>-	    }</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='add'>+        val = strtol(ptr, &amp;end, 0);</div><div class='add'>+#endif</div><div class='add'>+        switch (*end) {</div><div class='add'>+          case 'k': case 'K':</div><div class='add'>+            unit = 1024;</div><div class='add'>+            ++end;</div><div class='add'>+            break;</div><div class='add'>+          case 'm': case 'M':</div><div class='add'>+            unit = 1024*1024;</div><div class='add'>+            ++end;</div><div class='add'>+            break;</div><div class='add'>+          case 'g': case 'G':</div><div class='add'>+            unit = 1024*1024*1024;</div><div class='add'>+            ++end;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        while (*end &amp;&amp; isspace((unsigned char)*end)) end++;</div><div class='add'>+        if (*end) {</div><div class='add'>+            if (RTEST(ruby_verbose)) fprintf(stderr, "invalid string for %s: %s\n", name, ptr);</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+        if (unit &gt; 0) {</div><div class='add'>+            if (val &lt; -(ssize_t)(SIZE_MAX / 2 / unit) || (ssize_t)(SIZE_MAX / 2 / unit) &lt; val) {</div><div class='add'>+                if (RTEST(ruby_verbose)) fprintf(stderr, "%s=%s is ignored because it overflows\n", name, ptr);</div><div class='add'>+                return 0;</div><div class='add'>+            }</div><div class='add'>+            val *= unit;</div><div class='add'>+        }</div><div class='add'>+        if (val &gt; 0 &amp;&amp; (size_t)val &gt; lower_bound) {</div><div class='add'>+            if (RTEST(ruby_verbose)) {</div><div class='add'>+                fprintf(stderr, "%s=%"PRIdSIZE" (default value: %"PRIuSIZE")\n", name, val, *default_value);</div><div class='add'>+            }</div><div class='add'>+            *default_value = (size_t)val;</div><div class='add'>+            return 1;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (RTEST(ruby_verbose)) {</div><div class='add'>+                fprintf(stderr, "%s=%"PRIdSIZE" (default value: %"PRIuSIZE") is ignored because it must be greater than %"PRIuSIZE".\n",</div><div class='add'>+                        name, val, *default_value, lower_bound);</div><div class='add'>+            }</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -7632,53 +11733,65 @@ get_envparam_size(const char *name, size_t *default_value, size_t lower_bound)</div><div class='ctx'> static int</div><div class='ctx'> get_envparam_double(const char *name, double *default_value, double lower_bound, double upper_bound, int accept_zero)</div><div class='ctx'> {</div><div class='del'>-    char *ptr = getenv(name);</div><div class='add'>+    const char *ptr = getenv(name);</div><div class='ctx'>     double val;</div><div class='ctx'> </div><div class='ctx'>     if (ptr != NULL &amp;&amp; *ptr) {</div><div class='del'>-	char *end;</div><div class='del'>-	val = strtod(ptr, &amp;end);</div><div class='del'>-	if (!*ptr || *end) {</div><div class='del'>-	    if (RTEST(ruby_verbose)) fprintf(stderr, "invalid string for %s: %s\n", name, ptr);</div><div class='del'>-	    return 0;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (accept_zero &amp;&amp; val == 0.0) {</div><div class='del'>-	    goto accept;</div><div class='del'>-	}</div><div class='del'>-	else if (val &lt;= lower_bound) {</div><div class='del'>-	    if (RTEST(ruby_verbose)) {</div><div class='del'>-		fprintf(stderr, "%s=%f (default value: %f) is ignored because it must be greater than %f.\n",</div><div class='del'>-			name, val, *default_value, lower_bound);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else if (upper_bound != 0.0 &amp;&amp; /* ignore upper_bound if it is 0.0 */</div><div class='del'>-		 val &gt; upper_bound) {</div><div class='del'>-	    if (RTEST(ruby_verbose)) {</div><div class='del'>-		fprintf(stderr, "%s=%f (default value: %f) is ignored because it must be lower than %f.\n",</div><div class='del'>-			name, val, *default_value, upper_bound);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	  accept:</div><div class='del'>-	    if (RTEST(ruby_verbose)) fprintf(stderr, "%s=%f (default value: %f)\n", name, val, *default_value);</div><div class='del'>-	    *default_value = val;</div><div class='del'>-	    return 1;</div><div class='del'>-	}</div><div class='add'>+        char *end;</div><div class='add'>+        val = strtod(ptr, &amp;end);</div><div class='add'>+        if (!*ptr || *end) {</div><div class='add'>+            if (RTEST(ruby_verbose)) fprintf(stderr, "invalid string for %s: %s\n", name, ptr);</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (accept_zero &amp;&amp; val == 0.0) {</div><div class='add'>+            goto accept;</div><div class='add'>+        }</div><div class='add'>+        else if (val &lt;= lower_bound) {</div><div class='add'>+            if (RTEST(ruby_verbose)) {</div><div class='add'>+                fprintf(stderr, "%s=%f (default value: %f) is ignored because it must be greater than %f.\n",</div><div class='add'>+                        name, val, *default_value, lower_bound);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else if (upper_bound != 0.0 &amp;&amp; /* ignore upper_bound if it is 0.0 */</div><div class='add'>+                 val &gt; upper_bound) {</div><div class='add'>+            if (RTEST(ruby_verbose)) {</div><div class='add'>+                fprintf(stderr, "%s=%f (default value: %f) is ignored because it must be lower than %f.\n",</div><div class='add'>+                        name, val, *default_value, upper_bound);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            goto accept;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='add'>+</div><div class='add'>+  accept:</div><div class='add'>+    if (RTEST(ruby_verbose)) fprintf(stderr, "%s=%f (default value: %f)\n", name, val, *default_value);</div><div class='add'>+    *default_value = val;</div><div class='add'>+    return 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-gc_set_initial_pages(void)</div><div class='add'>+gc_set_initial_pages(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='del'>-    size_t min_pages;</div><div class='del'>-    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    gc_rest(objspace);</div><div class='add'>+</div><div class='add'>+    for (int i = 0; i &lt; SIZE_POOL_COUNT; i++) {</div><div class='add'>+        rb_size_pool_t *size_pool = &amp;size_pools[i];</div><div class='ctx'> </div><div class='del'>-    min_pages = gc_params.heap_init_slots / HEAP_PAGE_OBJ_LIMIT;</div><div class='del'>-    if (min_pages &gt; heap_eden-&gt;total_pages) {</div><div class='del'>-	heap_add_pages(objspace, heap_eden, min_pages - heap_eden-&gt;total_pages);</div><div class='add'>+        if (gc_params.heap_init_slots &gt; size_pool-&gt;eden_heap.total_slots) {</div><div class='add'>+            size_t slots = gc_params.heap_init_slots - size_pool-&gt;eden_heap.total_slots;</div><div class='add'>+            int multiple = size_pool-&gt;slot_size / BASE_SLOT_SIZE;</div><div class='add'>+            size_pool-&gt;allocatable_pages = slots * multiple / HEAP_PAGE_OBJ_LIMIT;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* We already have more slots than heap_init_slots allows, so</div><div class='add'>+             * prevent creating more pages. */</div><div class='add'>+            size_pool-&gt;allocatable_pages = 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+    heap_pages_expand_sorted(objspace);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -7724,38 +11837,32 @@ gc_set_initial_pages(void)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-ruby_gc_set_params(int safe_level)</div><div class='add'>+ruby_gc_set_params(void)</div><div class='ctx'> {</div><div class='del'>-    if (safe_level &gt; 0) return;</div><div class='del'>-</div><div class='add'>+    rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'>     /* RUBY_GC_HEAP_FREE_SLOTS */</div><div class='ctx'>     if (get_envparam_size("RUBY_GC_HEAP_FREE_SLOTS", &amp;gc_params.heap_free_slots, 0)) {</div><div class='del'>-	/* ok */</div><div class='del'>-    }</div><div class='del'>-    else if (get_envparam_size("RUBY_FREE_MIN", &amp;gc_params.heap_free_slots, 0)) {</div><div class='del'>-	rb_warn("RUBY_FREE_MIN is obsolete. Use RUBY_GC_HEAP_FREE_SLOTS instead.");</div><div class='add'>+        /* ok */</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* RUBY_GC_HEAP_INIT_SLOTS */</div><div class='ctx'>     if (get_envparam_size("RUBY_GC_HEAP_INIT_SLOTS", &amp;gc_params.heap_init_slots, 0)) {</div><div class='del'>-	gc_set_initial_pages();</div><div class='del'>-    }</div><div class='del'>-    else if (get_envparam_size("RUBY_HEAP_MIN_SLOTS", &amp;gc_params.heap_init_slots, 0)) {</div><div class='del'>-	rb_warn("RUBY_HEAP_MIN_SLOTS is obsolete. Use RUBY_GC_HEAP_INIT_SLOTS instead.");</div><div class='del'>-	gc_set_initial_pages();</div><div class='add'>+        gc_set_initial_pages(objspace);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     get_envparam_double("RUBY_GC_HEAP_GROWTH_FACTOR", &amp;gc_params.growth_factor, 1.0, 0.0, FALSE);</div><div class='ctx'>     get_envparam_size  ("RUBY_GC_HEAP_GROWTH_MAX_SLOTS", &amp;gc_params.growth_max_slots, 0);</div><div class='ctx'>     get_envparam_double("RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO", &amp;gc_params.heap_free_slots_min_ratio,</div><div class='del'>-			0.0, 1.0, FALSE);</div><div class='add'>+                        0.0, 1.0, FALSE);</div><div class='ctx'>     get_envparam_double("RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO", &amp;gc_params.heap_free_slots_max_ratio,</div><div class='del'>-			gc_params.heap_free_slots_min_ratio, 1.0, FALSE);</div><div class='add'>+                        gc_params.heap_free_slots_min_ratio, 1.0, FALSE);</div><div class='ctx'>     get_envparam_double("RUBY_GC_HEAP_FREE_SLOTS_GOAL_RATIO", &amp;gc_params.heap_free_slots_goal_ratio,</div><div class='del'>-			gc_params.heap_free_slots_min_ratio, gc_params.heap_free_slots_max_ratio, TRUE);</div><div class='add'>+                        gc_params.heap_free_slots_min_ratio, gc_params.heap_free_slots_max_ratio, TRUE);</div><div class='ctx'>     get_envparam_double("RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR", &amp;gc_params.oldobject_limit_factor, 0.0, 0.0, TRUE);</div><div class='ctx'> </div><div class='del'>-    get_envparam_size  ("RUBY_GC_MALLOC_LIMIT", &amp;gc_params.malloc_limit_min, 0);</div><div class='add'>+    if (get_envparam_size("RUBY_GC_MALLOC_LIMIT", &amp;gc_params.malloc_limit_min, 0)) {</div><div class='add'>+        malloc_limit = gc_params.malloc_limit_min;</div><div class='add'>+    }</div><div class='ctx'>     get_envparam_size  ("RUBY_GC_MALLOC_LIMIT_MAX", &amp;gc_params.malloc_limit_max, 0);</div><div class='ctx'>     if (!gc_params.malloc_limit_max) { /* ignore max-check if 0 */</div><div class='ctx'>         gc_params.malloc_limit_max = SIZE_MAX;</div><div class='hunk'>@@ -7764,27 +11871,42 @@ ruby_gc_set_params(int safe_level)</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='ctx'>     if (get_envparam_size("RUBY_GC_OLDMALLOC_LIMIT", &amp;gc_params.oldmalloc_limit_min, 0)) {</div><div class='del'>-	rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-	objspace-&gt;rgengc.oldmalloc_increase_limit = gc_params.oldmalloc_limit_min;</div><div class='add'>+        objspace-&gt;rgengc.oldmalloc_increase_limit = gc_params.oldmalloc_limit_min;</div><div class='ctx'>     }</div><div class='ctx'>     get_envparam_size  ("RUBY_GC_OLDMALLOC_LIMIT_MAX", &amp;gc_params.oldmalloc_limit_max, 0);</div><div class='ctx'>     get_envparam_double("RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR", &amp;gc_params.oldmalloc_limit_growth_factor, 1.0, 0.0, FALSE);</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+reachable_objects_from_callback(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    rb_ractor_t *cr = GET_RACTOR();</div><div class='add'>+    cr-&gt;mfd-&gt;mark_func(obj, cr-&gt;mfd-&gt;data);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> void</div><div class='ctx'> rb_objspace_reachable_objects_from(VALUE obj, void (func)(VALUE, void *), void *data)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'> </div><div class='del'>-    if (is_markable_object(objspace, obj)) {</div><div class='del'>-	struct mark_func_data_struct mfd;</div><div class='del'>-	mfd.mark_func = func;</div><div class='del'>-	mfd.data = data;</div><div class='del'>-	PUSH_MARK_FUNC_DATA(&amp;mfd);</div><div class='del'>-	gc_mark_children(objspace, obj);</div><div class='del'>-	POP_MARK_FUNC_DATA();</div><div class='add'>+    RB_VM_LOCK_ENTER();</div><div class='add'>+    {</div><div class='add'>+        if (during_gc) rb_bug("rb_objspace_reachable_objects_from() is not supported while during_gc == true");</div><div class='add'>+</div><div class='add'>+        if (is_markable_object(objspace, obj)) {</div><div class='add'>+            rb_ractor_t *cr = GET_RACTOR();</div><div class='add'>+            struct gc_mark_func_data_struct mfd = {</div><div class='add'>+                .mark_func = func,</div><div class='add'>+                .data = data,</div><div class='add'>+            }, *prev_mfd = cr-&gt;mfd;</div><div class='add'>+</div><div class='add'>+            cr-&gt;mfd = &amp;mfd;</div><div class='add'>+            gc_mark_children(objspace, obj);</div><div class='add'>+            cr-&gt;mfd = prev_mfd;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+    RB_VM_LOCK_LEAVE();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct root_objects_data {</div><div class='hunk'>@@ -7804,48 +11926,80 @@ void</div><div class='ctx'> rb_objspace_reachable_objects_from_root(void (func)(const char *category, VALUE, void *), void *passing_data)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-    struct root_objects_data data;</div><div class='del'>-    struct mark_func_data_struct mfd;</div><div class='add'>+    objspace_reachable_objects_from_root(objspace, func, passing_data);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    data.func = func;</div><div class='del'>-    data.data = passing_data;</div><div class='add'>+static void</div><div class='add'>+objspace_reachable_objects_from_root(rb_objspace_t *objspace, void (func)(const char *category, VALUE, void *), void *passing_data)</div><div class='add'>+{</div><div class='add'>+    if (during_gc) rb_bug("objspace_reachable_objects_from_root() is not supported while during_gc == true");</div><div class='ctx'> </div><div class='del'>-    mfd.mark_func = root_objects_from;</div><div class='del'>-    mfd.data = &amp;data;</div><div class='add'>+    rb_ractor_t *cr = GET_RACTOR();</div><div class='add'>+    struct root_objects_data data = {</div><div class='add'>+        .func = func,</div><div class='add'>+        .data = passing_data,</div><div class='add'>+    };</div><div class='add'>+    struct gc_mark_func_data_struct mfd = {</div><div class='add'>+        .mark_func = root_objects_from,</div><div class='add'>+        .data = &amp;data,</div><div class='add'>+    }, *prev_mfd = cr-&gt;mfd;</div><div class='ctx'> </div><div class='del'>-    PUSH_MARK_FUNC_DATA(&amp;mfd);</div><div class='add'>+    cr-&gt;mfd = &amp;mfd;</div><div class='ctx'>     gc_mark_roots(objspace, &amp;data.category);</div><div class='del'>-    POP_MARK_FUNC_DATA();</div><div class='add'>+    cr-&gt;mfd = prev_mfd;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>   ------------------------ Extended allocator ------------------------</div><div class='ctx'> */</div><div class='ctx'> </div><div class='del'>-static void objspace_xfree(rb_objspace_t *objspace, void *ptr, size_t size);</div><div class='add'>+struct gc_raise_tag {</div><div class='add'>+    VALUE exc;</div><div class='add'>+    const char *fmt;</div><div class='add'>+    va_list *ap;</div><div class='add'>+};</div><div class='ctx'> </div><div class='ctx'> static void *</div><div class='del'>-negative_size_allocation_error_with_gvl(void *ptr)</div><div class='add'>+gc_vraise(void *ptr)</div><div class='ctx'> {</div><div class='del'>-    rb_raise(rb_eNoMemError, "%s", (const char *)ptr);</div><div class='del'>-    return 0; /* should not be reached */</div><div class='add'>+    struct gc_raise_tag *argv = ptr;</div><div class='add'>+    rb_vraise(argv-&gt;exc, argv-&gt;fmt, *argv-&gt;ap);</div><div class='add'>+    UNREACHABLE_RETURN(NULL);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-negative_size_allocation_error(const char *msg)</div><div class='add'>+gc_raise(VALUE exc, const char *fmt, ...)</div><div class='ctx'> {</div><div class='add'>+    va_list ap;</div><div class='add'>+    va_start(ap, fmt);</div><div class='add'>+    struct gc_raise_tag argv = {</div><div class='add'>+        exc, fmt, &amp;ap,</div><div class='add'>+    };</div><div class='add'>+</div><div class='ctx'>     if (ruby_thread_has_gvl_p()) {</div><div class='del'>-	rb_raise(rb_eNoMemError, "%s", msg);</div><div class='add'>+        gc_vraise(&amp;argv);</div><div class='add'>+        UNREACHABLE;</div><div class='add'>+    }</div><div class='add'>+    else if (ruby_native_thread_p()) {</div><div class='add'>+        rb_thread_call_with_gvl(gc_vraise, &amp;argv);</div><div class='add'>+        UNREACHABLE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (ruby_native_thread_p()) {</div><div class='del'>-	    rb_thread_call_with_gvl(negative_size_allocation_error_with_gvl, (void *)msg);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    fprintf(stderr, "[FATAL] %s\n", msg);</div><div class='del'>-	    exit(EXIT_FAILURE);</div><div class='del'>-	}</div><div class='add'>+        /* Not in a ruby thread */</div><div class='add'>+        fprintf(stderr, "%s", "[FATAL] ");</div><div class='add'>+        vfprintf(stderr, fmt, ap);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    va_end(ap);</div><div class='add'>+    abort();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void objspace_xfree(rb_objspace_t *objspace, void *ptr, size_t size);</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+negative_size_allocation_error(const char *msg)</div><div class='add'>+{</div><div class='add'>+    gc_raise(rb_eNoMemError, "%s", msg);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void *</div><div class='hunk'>@@ -7855,22 +12009,24 @@ ruby_memerror_body(void *dummy)</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+NORETURN(static void ruby_memerror(void));</div><div class='add'>+RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='ctx'> static void</div><div class='ctx'> ruby_memerror(void)</div><div class='ctx'> {</div><div class='ctx'>     if (ruby_thread_has_gvl_p()) {</div><div class='del'>-	rb_memerror();</div><div class='add'>+        rb_memerror();</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (ruby_native_thread_p()) {</div><div class='del'>-	    rb_thread_call_with_gvl(ruby_memerror_body, 0);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    /* no ruby thread */</div><div class='del'>-	    fprintf(stderr, "[FATAL] failed to allocate memory\n");</div><div class='del'>-	    exit(EXIT_FAILURE);</div><div class='del'>-	}</div><div class='add'>+        if (ruby_native_thread_p()) {</div><div class='add'>+            rb_thread_call_with_gvl(ruby_memerror_body, 0);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /* no ruby thread */</div><div class='add'>+            fprintf(stderr, "[FATAL] failed to allocate memory\n");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+    exit(EXIT_FAILURE);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -7880,20 +12036,29 @@ rb_memerror(void)</div><div class='ctx'>     rb_objspace_t *objspace = rb_objspace_of(rb_ec_vm_ptr(ec));</div><div class='ctx'>     VALUE exc;</div><div class='ctx'> </div><div class='del'>-    if (during_gc) gc_exit(objspace, "rb_memerror");</div><div class='add'>+    if (0) {</div><div class='add'>+        // Print out pid, sleep, so you can attach debugger to see what went wrong:</div><div class='add'>+        fprintf(stderr, "rb_memerror pid=%"PRI_PIDT_PREFIX"d\n", getpid());</div><div class='add'>+        sleep(60);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (during_gc) {</div><div class='add'>+        // TODO: OMG!! How to implement it?</div><div class='add'>+        gc_exit(objspace, gc_enter_event_rb_memerror, NULL);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     exc = nomem_error;</div><div class='ctx'>     if (!exc ||</div><div class='del'>-	rb_ec_raised_p(ec, RAISED_NOMEMORY)) {</div><div class='del'>-	fprintf(stderr, "[FATAL] failed to allocate memory\n");</div><div class='del'>-	exit(EXIT_FAILURE);</div><div class='add'>+        rb_ec_raised_p(ec, RAISED_NOMEMORY)) {</div><div class='add'>+        fprintf(stderr, "[FATAL] failed to allocate memory\n");</div><div class='add'>+        exit(EXIT_FAILURE);</div><div class='ctx'>     }</div><div class='ctx'>     if (rb_ec_raised_p(ec, RAISED_NOMEMORY)) {</div><div class='del'>-	rb_ec_raised_clear(ec);</div><div class='add'>+        rb_ec_raised_clear(ec);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_ec_raised_set(ec, RAISED_NOMEMORY);</div><div class='del'>-	exc = ruby_vm_special_exception_copy(exc);</div><div class='add'>+        rb_ec_raised_set(ec, RAISED_NOMEMORY);</div><div class='add'>+        exc = ruby_vm_special_exception_copy(exc);</div><div class='ctx'>     }</div><div class='ctx'>     ec-&gt;errinfo = exc;</div><div class='ctx'>     EC_JUMP_TAG(ec, TAG_RAISE);</div><div class='hunk'>@@ -7902,6 +12067,10 @@ rb_memerror(void)</div><div class='ctx'> void *</div><div class='ctx'> rb_aligned_malloc(size_t alignment, size_t size)</div><div class='ctx'> {</div><div class='add'>+    /* alignment must be a power of 2 */</div><div class='add'>+    GC_ASSERT(((alignment - 1) &amp; alignment) == 0);</div><div class='add'>+    GC_ASSERT(alignment % sizeof(void*) == 0);</div><div class='add'>+</div><div class='ctx'>     void *res;</div><div class='ctx'> </div><div class='ctx'> #if defined __MINGW32__</div><div class='hunk'>@@ -7910,10 +12079,7 @@ rb_aligned_malloc(size_t alignment, size_t size)</div><div class='ctx'>     void *_aligned_malloc(size_t, size_t);</div><div class='ctx'>     res = _aligned_malloc(size, alignment);</div><div class='ctx'> #elif defined(HAVE_POSIX_MEMALIGN)</div><div class='del'>-    if (posix_memalign(&amp;res, alignment, size) == 0) {</div><div class='del'>-        return res;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='add'>+    if (posix_memalign(&amp;res, alignment, size) != 0) {</div><div class='ctx'>         return NULL;</div><div class='ctx'>     }</div><div class='ctx'> #elif defined(HAVE_MEMALIGN)</div><div class='hunk'>@@ -7927,20 +12093,19 @@ rb_aligned_malloc(size_t alignment, size_t size)</div><div class='ctx'>     res = (void*)aligned;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    /* alignment must be a power of 2 */</div><div class='del'>-    GC_ASSERT(((alignment - 1) &amp; alignment) == 0);</div><div class='del'>-    GC_ASSERT(alignment % sizeof(void*) == 0);</div><div class='add'>+    GC_ASSERT((uintptr_t)res % alignment == 0);</div><div class='add'>+</div><div class='ctx'>     return res;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_aligned_free(void *ptr)</div><div class='add'>+static void</div><div class='add'>+rb_aligned_free(void *ptr, size_t size)</div><div class='ctx'> {</div><div class='ctx'> #if defined __MINGW32__</div><div class='ctx'>     __mingw_aligned_free(ptr);</div><div class='ctx'> #elif defined _WIN32</div><div class='ctx'>     _aligned_free(ptr);</div><div class='del'>-#elif defined(HAVE_MEMALIGN) || defined(HAVE_POSIX_MEMALIGN)</div><div class='add'>+#elif defined(HAVE_POSIX_MEMALIGN) || defined(HAVE_MEMALIGN)</div><div class='ctx'>     free(ptr);</div><div class='ctx'> #else</div><div class='ctx'>     free(((void**)ptr)[-1]);</div><div class='hunk'>@@ -7969,9 +12134,9 @@ atomic_sub_nounderflow(size_t *var, size_t sub)</div><div class='ctx'>     if (sub == 0) return;</div><div class='ctx'> </div><div class='ctx'>     while (1) {</div><div class='del'>-	size_t val = *var;</div><div class='del'>-	if (val &lt; sub) sub = val;</div><div class='del'>-	if (ATOMIC_SIZE_CAS(*var, val, val-sub) == val) break;</div><div class='add'>+        size_t val = *var;</div><div class='add'>+        if (val &lt; sub) sub = val;</div><div class='add'>+        if (ATOMIC_SIZE_CAS(*var, val, val-sub) == val) break;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -7979,8 +12144,8 @@ static void</div><div class='ctx'> objspace_malloc_gc_stress(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     if (ruby_gc_stressful &amp;&amp; ruby_native_thread_p()) {</div><div class='del'>-        int reason = GPR_FLAG_IMMEDIATE_MARK | GPR_FLAG_IMMEDIATE_SWEEP |</div><div class='del'>-                                     GPR_FLAG_STRESS | GPR_FLAG_MALLOC;</div><div class='add'>+        unsigned int reason = (GPR_FLAG_IMMEDIATE_MARK | GPR_FLAG_IMMEDIATE_SWEEP |</div><div class='add'>+                               GPR_FLAG_STRESS | GPR_FLAG_MALLOC);</div><div class='ctx'> </div><div class='ctx'>         if (gc_stress_full_mark_after_malloc_p()) {</div><div class='ctx'>             reason |= GPR_FLAG_FULL_MARK;</div><div class='hunk'>@@ -7989,78 +12154,89 @@ objspace_malloc_gc_stress(rb_objspace_t *objspace)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-objspace_malloc_increase(rb_objspace_t *objspace, void *mem, size_t new_size, size_t old_size, enum memop_type type)</div><div class='add'>+static inline bool</div><div class='add'>+objspace_malloc_increase_report(rb_objspace_t *objspace, void *mem, size_t new_size, size_t old_size, enum memop_type type)</div><div class='add'>+{</div><div class='add'>+    if (0) fprintf(stderr, "increase - ptr: %p, type: %s, new_size: %"PRIdSIZE", old_size: %"PRIdSIZE"\n",</div><div class='add'>+                   mem,</div><div class='add'>+                   type == MEMOP_TYPE_MALLOC  ? "malloc" :</div><div class='add'>+                   type == MEMOP_TYPE_FREE    ? "free  " :</div><div class='add'>+                   type == MEMOP_TYPE_REALLOC ? "realloc": "error",</div><div class='add'>+                   new_size, old_size);</div><div class='add'>+    return false;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+objspace_malloc_increase_body(rb_objspace_t *objspace, void *mem, size_t new_size, size_t old_size, enum memop_type type)</div><div class='ctx'> {</div><div class='ctx'>     if (new_size &gt; old_size) {</div><div class='del'>-	ATOMIC_SIZE_ADD(malloc_increase, new_size - old_size);</div><div class='add'>+        ATOMIC_SIZE_ADD(malloc_increase, new_size - old_size);</div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='del'>-	ATOMIC_SIZE_ADD(objspace-&gt;rgengc.oldmalloc_increase, new_size - old_size);</div><div class='add'>+        ATOMIC_SIZE_ADD(objspace-&gt;rgengc.oldmalloc_increase, new_size - old_size);</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	atomic_sub_nounderflow(&amp;malloc_increase, old_size - new_size);</div><div class='add'>+        atomic_sub_nounderflow(&amp;malloc_increase, old_size - new_size);</div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='del'>-	atomic_sub_nounderflow(&amp;objspace-&gt;rgengc.oldmalloc_increase, old_size - new_size);</div><div class='add'>+        atomic_sub_nounderflow(&amp;objspace-&gt;rgengc.oldmalloc_increase, old_size - new_size);</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (type == MEMOP_TYPE_MALLOC) {</div><div class='ctx'>       retry:</div><div class='del'>-	if (malloc_increase &gt; malloc_limit &amp;&amp; ruby_native_thread_p() &amp;&amp; !dont_gc) {</div><div class='del'>-	    if (ruby_thread_has_gvl_p() &amp;&amp; is_lazy_sweeping(heap_eden)) {</div><div class='del'>-		gc_rest(objspace); /* gc_rest can reduce malloc_increase */</div><div class='del'>-		goto retry;</div><div class='del'>-	    }</div><div class='del'>-	    garbage_collect_with_gvl(objspace, GPR_FLAG_MALLOC);</div><div class='del'>-	}</div><div class='add'>+        if (malloc_increase &gt; malloc_limit &amp;&amp; ruby_native_thread_p() &amp;&amp; !dont_gc_val()) {</div><div class='add'>+            if (ruby_thread_has_gvl_p() &amp;&amp; is_lazy_sweeping(objspace)) {</div><div class='add'>+                gc_rest(objspace); /* gc_rest can reduce malloc_increase */</div><div class='add'>+                goto retry;</div><div class='add'>+            }</div><div class='add'>+            garbage_collect_with_gvl(objspace, GPR_FLAG_MALLOC);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> #if MALLOC_ALLOCATED_SIZE</div><div class='ctx'>     if (new_size &gt;= old_size) {</div><div class='del'>-	ATOMIC_SIZE_ADD(objspace-&gt;malloc_params.allocated_size, new_size - old_size);</div><div class='add'>+        ATOMIC_SIZE_ADD(objspace-&gt;malloc_params.allocated_size, new_size - old_size);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	size_t dec_size = old_size - new_size;</div><div class='del'>-	size_t allocated_size = objspace-&gt;malloc_params.allocated_size;</div><div class='add'>+        size_t dec_size = old_size - new_size;</div><div class='add'>+        size_t allocated_size = objspace-&gt;malloc_params.allocated_size;</div><div class='ctx'> </div><div class='ctx'> #if MALLOC_ALLOCATED_SIZE_CHECK</div><div class='del'>-	if (allocated_size &lt; dec_size) {</div><div class='del'>-	    rb_bug("objspace_malloc_increase: underflow malloc_params.allocated_size.");</div><div class='del'>-	}</div><div class='add'>+        if (allocated_size &lt; dec_size) {</div><div class='add'>+            rb_bug("objspace_malloc_increase: underflow malloc_params.allocated_size.");</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='del'>-	atomic_sub_nounderflow(&amp;objspace-&gt;malloc_params.allocated_size, dec_size);</div><div class='add'>+        atomic_sub_nounderflow(&amp;objspace-&gt;malloc_params.allocated_size, dec_size);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (0) fprintf(stderr, "increase - ptr: %p, type: %s, new_size: %d, old_size: %d\n",</div><div class='del'>-		   mem,</div><div class='del'>-		   type == MEMOP_TYPE_MALLOC  ? "malloc" :</div><div class='del'>-		   type == MEMOP_TYPE_FREE    ? "free  " :</div><div class='del'>-		   type == MEMOP_TYPE_REALLOC ? "realloc": "error",</div><div class='del'>-		   (int)new_size, (int)old_size);</div><div class='del'>-</div><div class='ctx'>     switch (type) {</div><div class='ctx'>       case MEMOP_TYPE_MALLOC:</div><div class='del'>-	ATOMIC_SIZE_INC(objspace-&gt;malloc_params.allocations);</div><div class='del'>-	break;</div><div class='add'>+        ATOMIC_SIZE_INC(objspace-&gt;malloc_params.allocations);</div><div class='add'>+        break;</div><div class='ctx'>       case MEMOP_TYPE_FREE:</div><div class='del'>-	{</div><div class='del'>-	    size_t allocations = objspace-&gt;malloc_params.allocations;</div><div class='del'>-	    if (allocations &gt; 0) {</div><div class='del'>-		atomic_sub_nounderflow(&amp;objspace-&gt;malloc_params.allocations, 1);</div><div class='del'>-	    }</div><div class='add'>+        {</div><div class='add'>+            size_t allocations = objspace-&gt;malloc_params.allocations;</div><div class='add'>+            if (allocations &gt; 0) {</div><div class='add'>+                atomic_sub_nounderflow(&amp;objspace-&gt;malloc_params.allocations, 1);</div><div class='add'>+            }</div><div class='ctx'> #if MALLOC_ALLOCATED_SIZE_CHECK</div><div class='del'>-	    else {</div><div class='del'>-		GC_ASSERT(objspace-&gt;malloc_params.allocations &gt; 0);</div><div class='del'>-	    }</div><div class='add'>+            else {</div><div class='add'>+                GC_ASSERT(objspace-&gt;malloc_params.allocations &gt; 0);</div><div class='add'>+            }</div><div class='ctx'> #endif</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       case MEMOP_TYPE_REALLOC: /* ignore */ break;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='add'>+    return true;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#define objspace_malloc_increase(...) \</div><div class='add'>+    for (bool malloc_increase_done = objspace_malloc_increase_report(__VA_ARGS__); \</div><div class='add'>+         !malloc_increase_done; \</div><div class='add'>+         malloc_increase_done = objspace_malloc_increase_body(__VA_ARGS__))</div><div class='add'>+</div><div class='ctx'> struct malloc_obj_info { /* 4 words */</div><div class='ctx'>     size_t size;</div><div class='ctx'> #if USE_GC_MALLOC_OBJ_INFO_DETAILS</div><div class='hunk'>@@ -8087,6 +12263,16 @@ objspace_malloc_prepare(rb_objspace_t *objspace, size_t size)</div><div class='ctx'>     return size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static bool</div><div class='add'>+malloc_during_gc_p(rb_objspace_t *objspace)</div><div class='add'>+{</div><div class='add'>+    /* malloc is not allowed during GC when we're not using multiple ractors</div><div class='add'>+     * (since ractors can run while another thread is sweeping) and when we</div><div class='add'>+     * have the GVL (since if we don't have the GVL, we'll try to acquire the</div><div class='add'>+     * GVL which will block and ensure the other thread finishes GC). */</div><div class='add'>+    return during_gc &amp;&amp; !rb_multi_ractor_p() &amp;&amp; ruby_thread_has_gvl_p();</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static inline void *</div><div class='ctx'> objspace_malloc_fixup(rb_objspace_t *objspace, void *mem, size_t size)</div><div class='ctx'> {</div><div class='hunk'>@@ -8101,8 +12287,6 @@ objspace_malloc_fixup(rb_objspace_t *objspace, void *mem, size_t size)</div><div class='ctx'>         info-&gt;gen = objspace-&gt;profile.count;</div><div class='ctx'>         info-&gt;file = ruby_malloc_info_file;</div><div class='ctx'>         info-&gt;line = info-&gt;file ? ruby_malloc_info_line : 0;</div><div class='del'>-#else</div><div class='del'>-        info-&gt;file = NULL;</div><div class='ctx'> #endif</div><div class='ctx'>         mem = info + 1;</div><div class='ctx'>     }</div><div class='hunk'>@@ -8111,27 +12295,64 @@ objspace_malloc_fixup(rb_objspace_t *objspace, void *mem, size_t size)</div><div class='ctx'>     return mem;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define TRY_WITH_GC(alloc) do { \</div><div class='del'>-        objspace_malloc_gc_stress(objspace); \</div><div class='del'>-	if (!(alloc) &amp;&amp; \</div><div class='del'>-            (!garbage_collect_with_gvl(objspace, GPR_FLAG_FULL_MARK | \</div><div class='del'>-                GPR_FLAG_IMMEDIATE_MARK | GPR_FLAG_IMMEDIATE_SWEEP | \</div><div class='del'>-                GPR_FLAG_MALLOC) || \</div><div class='del'>-	     !(alloc))) { \</div><div class='del'>-	    ruby_memerror(); \</div><div class='del'>-	} \</div><div class='add'>+#if defined(__GNUC__) &amp;&amp; RUBY_DEBUG</div><div class='add'>+#define RB_BUG_INSTEAD_OF_RB_MEMERROR 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef RB_BUG_INSTEAD_OF_RB_MEMERROR</div><div class='add'>+# define RB_BUG_INSTEAD_OF_RB_MEMERROR 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define GC_MEMERROR(...) \</div><div class='add'>+    ((RB_BUG_INSTEAD_OF_RB_MEMERROR+0) ? rb_bug("" __VA_ARGS__) : rb_memerror())</div><div class='add'>+</div><div class='add'>+#define TRY_WITH_GC(siz, expr) do {                          \</div><div class='add'>+        const gc_profile_record_flag gpr =                   \</div><div class='add'>+            GPR_FLAG_FULL_MARK           |                   \</div><div class='add'>+            GPR_FLAG_IMMEDIATE_MARK      |                   \</div><div class='add'>+            GPR_FLAG_IMMEDIATE_SWEEP     |                   \</div><div class='add'>+            GPR_FLAG_MALLOC;                                 \</div><div class='add'>+        objspace_malloc_gc_stress(objspace);                 \</div><div class='add'>+                                                             \</div><div class='add'>+        if (LIKELY((expr))) {                                \</div><div class='add'>+            /* Success on 1st try */                         \</div><div class='add'>+        }                                                    \</div><div class='add'>+        else if (!garbage_collect_with_gvl(objspace, gpr)) { \</div><div class='add'>+            /* @shyouhei thinks this doesn't happen */       \</div><div class='add'>+            GC_MEMERROR("TRY_WITH_GC: could not GC");        \</div><div class='add'>+        }                                                    \</div><div class='add'>+        else if ((expr)) {                                   \</div><div class='add'>+            /* Success on 2nd try */                         \</div><div class='add'>+        }                                                    \</div><div class='add'>+        else {                                               \</div><div class='add'>+            GC_MEMERROR("TRY_WITH_GC: could not allocate:"   \</div><div class='add'>+                        "%"PRIdSIZE" bytes for %s",          \</div><div class='add'>+                        siz, # expr);                        \</div><div class='add'>+        }                                                    \</div><div class='ctx'>     } while (0)</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+check_malloc_not_in_gc(rb_objspace_t *objspace, const char *msg)</div><div class='add'>+{</div><div class='add'>+    if (UNLIKELY(malloc_during_gc_p(objspace))) {</div><div class='add'>+        dont_gc_on();</div><div class='add'>+        during_gc = false;</div><div class='add'>+        rb_bug("Cannot %s during GC", msg);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* these shouldn't be called directly.</div><div class='del'>- * objspace_* functinos do not check allocation size.</div><div class='add'>+ * objspace_* functions do not check allocation size.</div><div class='ctx'>  */</div><div class='ctx'> static void *</div><div class='ctx'> objspace_xmalloc0(rb_objspace_t *objspace, size_t size)</div><div class='ctx'> {</div><div class='add'>+    check_malloc_not_in_gc(objspace, "malloc");</div><div class='add'>+</div><div class='ctx'>     void *mem;</div><div class='ctx'> </div><div class='ctx'>     size = objspace_malloc_prepare(objspace, size);</div><div class='del'>-    TRY_WITH_GC(mem = malloc(size));</div><div class='add'>+    TRY_WITH_GC(size, mem = malloc(size));</div><div class='ctx'>     RB_DEBUG_COUNTER_INC(heap_xmalloc);</div><div class='ctx'>     return objspace_malloc_fixup(objspace, mem, size);</div><div class='ctx'> }</div><div class='hunk'>@@ -8139,16 +12360,14 @@ objspace_xmalloc0(rb_objspace_t *objspace, size_t size)</div><div class='ctx'> static inline size_t</div><div class='ctx'> xmalloc2_size(const size_t count, const size_t elsize)</div><div class='ctx'> {</div><div class='del'>-    size_t ret;</div><div class='del'>-    if (rb_mul_size_overflow(count, elsize, SSIZE_MAX, &amp;ret)) {</div><div class='del'>-	ruby_malloc_size_overflow(count, elsize);</div><div class='del'>-    }</div><div class='del'>-    return ret;</div><div class='add'>+    return size_mul_or_raise(count, elsize, rb_eArgError);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void *</div><div class='ctx'> objspace_xrealloc(rb_objspace_t *objspace, void *ptr, size_t new_size, size_t old_size)</div><div class='ctx'> {</div><div class='add'>+    check_malloc_not_in_gc(objspace, "realloc");</div><div class='add'>+</div><div class='ctx'>     void *mem;</div><div class='ctx'> </div><div class='ctx'>     if (!ptr) return objspace_xmalloc0(objspace, new_size);</div><div class='hunk'>@@ -8159,8 +12378,41 @@ objspace_xrealloc(rb_objspace_t *objspace, void *ptr, size_t new_size, size_t ol</div><div class='ctx'>      * see http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_400.htm</div><div class='ctx'>      */</div><div class='ctx'>     if (new_size == 0) {</div><div class='del'>-	objspace_xfree(objspace, ptr, old_size);</div><div class='del'>-	return 0;</div><div class='add'>+        if ((mem = objspace_xmalloc0(objspace, 0)) != NULL) {</div><div class='add'>+            /*</div><div class='add'>+             * - OpenBSD's malloc(3) man page says that when 0 is passed, it</div><div class='add'>+             *   returns a non-NULL pointer to an access-protected memory page.</div><div class='add'>+             *   The returned pointer cannot be read / written at all, but</div><div class='add'>+             *   still be a valid argument of free().</div><div class='add'>+             *</div><div class='add'>+             *   https://man.openbsd.org/malloc.3</div><div class='add'>+             *</div><div class='add'>+             * - Linux's malloc(3) man page says that it _might_ perhaps return</div><div class='add'>+             *   a non-NULL pointer when its argument is 0.  That return value</div><div class='add'>+             *   is safe (and is expected) to be passed to free().</div><div class='add'>+             *</div><div class='add'>+             *   https://man7.org/linux/man-pages/man3/malloc.3.html</div><div class='add'>+             *</div><div class='add'>+             * - As I read the implementation jemalloc's malloc() returns fully</div><div class='add'>+             *   normal 16 bytes memory region when its argument is 0.</div><div class='add'>+             *</div><div class='add'>+             * - As I read the implementation musl libc's malloc() returns</div><div class='add'>+             *   fully normal 32 bytes memory region when its argument is 0.</div><div class='add'>+             *</div><div class='add'>+             * - Other malloc implementations can also return non-NULL.</div><div class='add'>+             */</div><div class='add'>+            objspace_xfree(objspace, ptr, old_size);</div><div class='add'>+            return mem;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            /*</div><div class='add'>+             * It is dangerous to return NULL here, because that could lead to</div><div class='add'>+             * RCE.  Fallback to 1 byte instead of zero.</div><div class='add'>+             *</div><div class='add'>+             * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11932</div><div class='add'>+             */</div><div class='add'>+            new_size = 1;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'> #if CALC_EXACT_MALLOC_SIZE</div><div class='hunk'>@@ -8173,7 +12425,7 @@ objspace_xrealloc(rb_objspace_t *objspace, void *ptr, size_t new_size, size_t ol</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     old_size = objspace_malloc_size(objspace, ptr, old_size);</div><div class='del'>-    TRY_WITH_GC(mem = realloc(ptr, new_size));</div><div class='add'>+    TRY_WITH_GC(new_size, mem = RB_GNUC_EXTENSION_BLOCK(realloc(ptr, new_size)));</div><div class='ctx'>     new_size = objspace_malloc_size(objspace, mem, new_size);</div><div class='ctx'> </div><div class='ctx'> #if CALC_EXACT_MALLOC_SIZE</div><div class='hunk'>@@ -8205,7 +12457,7 @@ mmalloc_info_file_i(st_data_t key, st_data_t val, st_data_t dmy)</div><div class='ctx'>     const char *file = (void *)key;</div><div class='ctx'>     const size_t *data = (void *)val;</div><div class='ctx'> </div><div class='del'>-    fprintf(stderr, "%s\t%d\t%d\n", file, (int)data[0], (int)data[1]);</div><div class='add'>+    fprintf(stderr, "%s\t%"PRIdSIZE"\t%"PRIdSIZE"\n", file, data[0], data[1]);</div><div class='ctx'> </div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -8219,19 +12471,19 @@ rb_malloc_info_show_results(void)</div><div class='ctx'>     fprintf(stderr, "* malloc_info gen statistics\n");</div><div class='ctx'>     for (i=0; i&lt;MALLOC_INFO_GEN_SIZE; i++) {</div><div class='ctx'>         if (i == MALLOC_INFO_GEN_SIZE-1) {</div><div class='del'>-            fprintf(stderr, "more\t%d\t%d\n", (int)malloc_info_gen_cnt[i], (int)malloc_info_gen_size[i]);</div><div class='add'>+            fprintf(stderr, "more\t%"PRIdSIZE"\t%"PRIdSIZE"\n", malloc_info_gen_cnt[i], malloc_info_gen_size[i]);</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-            fprintf(stderr, "%d\t%d\t%d\n", i, (int)malloc_info_gen_cnt[i], (int)malloc_info_gen_size[i]);</div><div class='add'>+            fprintf(stderr, "%d\t%"PRIdSIZE"\t%"PRIdSIZE"\n", i, malloc_info_gen_cnt[i], malloc_info_gen_size[i]);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     fprintf(stderr, "* malloc_info size statistics\n");</div><div class='ctx'>     for (i=0; i&lt;MALLOC_INFO_SIZE_SIZE; i++) {</div><div class='ctx'>         int s = 16 &lt;&lt; i;</div><div class='del'>-        fprintf(stderr, "%d\t%d\n", (int)s, (int)malloc_info_size[i]);</div><div class='add'>+        fprintf(stderr, "%d\t%"PRIdSIZE"\n", s, malloc_info_size[i]);</div><div class='ctx'>     }</div><div class='del'>-    fprintf(stderr, "more\t%d\n", (int)malloc_info_size[i]);</div><div class='add'>+    fprintf(stderr, "more\t%"PRIdSIZE"\n", malloc_info_size[i]);</div><div class='ctx'> </div><div class='ctx'>     if (malloc_info_file_table) {</div><div class='ctx'>         fprintf(stderr, "* malloc_info file statistics\n");</div><div class='hunk'>@@ -8248,6 +12500,13 @@ rb_malloc_info_show_results(void)</div><div class='ctx'> static void</div><div class='ctx'> objspace_xfree(rb_objspace_t *objspace, void *ptr, size_t old_size)</div><div class='ctx'> {</div><div class='add'>+    if (!ptr) {</div><div class='add'>+        /*</div><div class='add'>+         * ISO/IEC 9899 says "If ptr is a null pointer, no action occurs" since</div><div class='add'>+         * its first version.  We would better follow.</div><div class='add'>+         */</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='ctx'> #if CALC_EXACT_MALLOC_SIZE</div><div class='ctx'>     struct malloc_obj_info *info = (struct malloc_obj_info *)ptr - 1;</div><div class='ctx'>     ptr = info;</div><div class='hunk'>@@ -8273,17 +12532,18 @@ objspace_xfree(rb_objspace_t *objspace, void *ptr, size_t old_size)</div><div class='ctx'>       found:;</div><div class='ctx'> </div><div class='ctx'>         {</div><div class='del'>-            st_data_t key = (st_data_t)info-&gt;file;</div><div class='add'>+            st_data_t key = (st_data_t)info-&gt;file, d;</div><div class='ctx'>             size_t *data;</div><div class='ctx'> </div><div class='ctx'>             if (malloc_info_file_table == NULL) {</div><div class='ctx'>                 malloc_info_file_table = st_init_numtable_with_size(1024);</div><div class='ctx'>             }</div><div class='del'>-            if (st_lookup(malloc_info_file_table, key, (st_data_t *)&amp;data)) {</div><div class='add'>+            if (st_lookup(malloc_info_file_table, key, &amp;d)) {</div><div class='ctx'>                 /* hit */</div><div class='add'>+                data = (size_t *)d;</div><div class='ctx'>             }</div><div class='ctx'>             else {</div><div class='del'>-                data = malloc(sizeof(size_t) * 2);</div><div class='add'>+                data = malloc(xmalloc2_size(2, sizeof(size_t)));</div><div class='ctx'>                 if (data == NULL) rb_bug("objspace_xfree: can not allocate memory");</div><div class='ctx'>                 data[0] = data[1] = 0;</div><div class='ctx'>                 st_insert(malloc_info_file_table, key, (st_data_t)data);</div><div class='hunk'>@@ -8291,25 +12551,26 @@ objspace_xfree(rb_objspace_t *objspace, void *ptr, size_t old_size)</div><div class='ctx'>             data[0] ++;</div><div class='ctx'>             data[1] += info-&gt;size;</div><div class='ctx'>         };</div><div class='del'>-#if 0 /* verbose output */</div><div class='del'>-        if (gen &gt;= 2) {</div><div class='add'>+        if (0 &amp;&amp; gen &gt;= 2) {         /* verbose output */</div><div class='ctx'>             if (info-&gt;file) {</div><div class='del'>-                fprintf(stderr, "free - size:%d, gen:%d, pos: %s:%d\n", (int)info-&gt;size, gen, info-&gt;file, (int)info-&gt;line);</div><div class='add'>+                fprintf(stderr, "free - size:%"PRIdSIZE", gen:%d, pos: %s:%"PRIdSIZE"\n",</div><div class='add'>+                        info-&gt;size, gen, info-&gt;file, info-&gt;line);</div><div class='ctx'>             }</div><div class='ctx'>             else {</div><div class='del'>-                fprintf(stderr, "free - size:%d, gen:%d\n", (int)info-&gt;size, gen);</div><div class='add'>+                fprintf(stderr, "free - size:%"PRIdSIZE", gen:%d\n",</div><div class='add'>+                        info-&gt;size, gen);</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='del'>-#endif</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='ctx'>     old_size = objspace_malloc_size(objspace, ptr, old_size);</div><div class='ctx'> </div><div class='del'>-    free(ptr);</div><div class='del'>-    RB_DEBUG_COUNTER_INC(heap_xfree);</div><div class='del'>-</div><div class='del'>-    objspace_malloc_increase(objspace, ptr, 0, old_size, MEMOP_TYPE_FREE);</div><div class='add'>+    objspace_malloc_increase(objspace, ptr, 0, old_size, MEMOP_TYPE_FREE) {</div><div class='add'>+        free(ptr);</div><div class='add'>+        ptr = NULL;</div><div class='add'>+        RB_DEBUG_COUNTER_INC(heap_xfree);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void *</div><div class='hunk'>@@ -8322,7 +12583,7 @@ void *</div><div class='ctx'> ruby_xmalloc_body(size_t size)</div><div class='ctx'> {</div><div class='ctx'>     if ((ssize_t)size &lt; 0) {</div><div class='del'>-	negative_size_allocation_error("too large allocation size");</div><div class='add'>+        negative_size_allocation_error("too large allocation size");</div><div class='ctx'>     }</div><div class='ctx'>     return ruby_xmalloc0(size);</div><div class='ctx'> }</div><div class='hunk'>@@ -8331,8 +12592,8 @@ void</div><div class='ctx'> ruby_malloc_size_overflow(size_t count, size_t elsize)</div><div class='ctx'> {</div><div class='ctx'>     rb_raise(rb_eArgError,</div><div class='del'>-	     "malloc: possible integer overflow (%"PRIuSIZE"*%"PRIuSIZE")",</div><div class='del'>-	     count, elsize);</div><div class='add'>+             "malloc: possible integer overflow (%"PRIuSIZE"*%"PRIuSIZE")",</div><div class='add'>+             count, elsize);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void *</div><div class='hunk'>@@ -8344,10 +12605,17 @@ ruby_xmalloc2_body(size_t n, size_t size)</div><div class='ctx'> static void *</div><div class='ctx'> objspace_xcalloc(rb_objspace_t *objspace, size_t size)</div><div class='ctx'> {</div><div class='add'>+    if (UNLIKELY(malloc_during_gc_p(objspace))) {</div><div class='add'>+        rb_warn("calloc during GC detected, this could cause crashes if it triggers another GC");</div><div class='add'>+#if RGENGC_CHECK_MODE || RUBY_DEBUG</div><div class='add'>+        rb_bug("Cannot calloc during GC");</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     void *mem;</div><div class='ctx'> </div><div class='ctx'>     size = objspace_malloc_prepare(objspace, size);</div><div class='del'>-    TRY_WITH_GC(mem = calloc(1, size));</div><div class='add'>+    TRY_WITH_GC(size, mem = calloc1(size));</div><div class='ctx'>     return objspace_malloc_fixup(objspace, mem, size);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -8364,7 +12632,7 @@ void *</div><div class='ctx'> ruby_sized_xrealloc(void *ptr, size_t new_size, size_t old_size)</div><div class='ctx'> {</div><div class='ctx'>     if ((ssize_t)new_size &lt; 0) {</div><div class='del'>-	negative_size_allocation_error("too large allocation size");</div><div class='add'>+        negative_size_allocation_error("too large allocation size");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return objspace_xrealloc(&amp;rb_objspace, ptr, new_size, old_size);</div><div class='hunk'>@@ -8382,10 +12650,7 @@ ruby_xrealloc_body(void *ptr, size_t new_size)</div><div class='ctx'> void *</div><div class='ctx'> ruby_sized_xrealloc2(void *ptr, size_t n, size_t size, size_t old_n)</div><div class='ctx'> {</div><div class='del'>-    size_t len = size * n;</div><div class='del'>-    if (n != 0 &amp;&amp; size != len / n) {</div><div class='del'>-	rb_raise(rb_eArgError, "realloc: possible integer overflow");</div><div class='del'>-    }</div><div class='add'>+    size_t len = xmalloc2_size(n, size);</div><div class='ctx'>     return objspace_xrealloc(&amp;rb_objspace, ptr, len, old_n * size);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -8401,8 +12666,16 @@ ruby_xrealloc2_body(void *ptr, size_t n, size_t size)</div><div class='ctx'> void</div><div class='ctx'> ruby_sized_xfree(void *x, size_t size)</div><div class='ctx'> {</div><div class='del'>-    if (x) {</div><div class='del'>-	objspace_xfree(&amp;rb_objspace, x, size);</div><div class='add'>+    if (LIKELY(x)) {</div><div class='add'>+        /* It's possible for a C extension's pthread destructor function set by pthread_key_create</div><div class='add'>+         * to be called after ruby_vm_destruct and attempt to free memory. Fall back to mimfree in</div><div class='add'>+         * that case. */</div><div class='add'>+        if (LIKELY(GET_VM())) {</div><div class='add'>+            objspace_xfree(&amp;rb_objspace, x, size);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ruby_mimfree(x);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -8412,6 +12685,41 @@ ruby_xfree(void *x)</div><div class='ctx'>     ruby_sized_xfree(x, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+void *</div><div class='add'>+rb_xmalloc_mul_add(size_t x, size_t y, size_t z) /* x * y + z */</div><div class='add'>+{</div><div class='add'>+    size_t w = size_mul_add_or_raise(x, y, z, rb_eArgError);</div><div class='add'>+    return ruby_xmalloc(w);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void *</div><div class='add'>+rb_xcalloc_mul_add(size_t x, size_t y, size_t z) /* x * y + z */</div><div class='add'>+{</div><div class='add'>+    size_t w = size_mul_add_or_raise(x, y, z, rb_eArgError);</div><div class='add'>+    return ruby_xcalloc(w, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void *</div><div class='add'>+rb_xrealloc_mul_add(const void *p, size_t x, size_t y, size_t z) /* x * y + z */</div><div class='add'>+{</div><div class='add'>+    size_t w = size_mul_add_or_raise(x, y, z, rb_eArgError);</div><div class='add'>+    return ruby_xrealloc((void *)p, w);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void *</div><div class='add'>+rb_xmalloc_mul_add_mul(size_t x, size_t y, size_t z, size_t w) /* x * y + z * w */</div><div class='add'>+{</div><div class='add'>+    size_t u = size_mul_add_mul_or_raise(x, y, z, w, rb_eArgError);</div><div class='add'>+    return ruby_xmalloc(u);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void *</div><div class='add'>+rb_xcalloc_mul_add_mul(size_t x, size_t y, size_t z, size_t w) /* x * y + z * w */</div><div class='add'>+{</div><div class='add'>+    size_t u = size_mul_add_mul_or_raise(x, y, z, w, rb_eArgError);</div><div class='add'>+    return ruby_xcalloc(u, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* Mimic ruby_xmalloc, but need not rb_objspace.</div><div class='ctx'>  * should return pointer suitable for ruby_xfree</div><div class='ctx'>  */</div><div class='hunk'>@@ -8424,6 +12732,10 @@ ruby_mimmalloc(size_t size)</div><div class='ctx'> #endif</div><div class='ctx'>     mem = malloc(size);</div><div class='ctx'> #if CALC_EXACT_MALLOC_SIZE</div><div class='add'>+    if (!mem) {</div><div class='add'>+        return NULL;</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='ctx'>     /* set 0 for consistency of allocated_size/allocations */</div><div class='ctx'>     {</div><div class='ctx'>         struct malloc_obj_info *info = mem;</div><div class='hunk'>@@ -8432,8 +12744,6 @@ ruby_mimmalloc(size_t size)</div><div class='ctx'>         info-&gt;gen = 0;</div><div class='ctx'>         info-&gt;file = NULL;</div><div class='ctx'>         info-&gt;line = 0;</div><div class='del'>-#else</div><div class='del'>-        info-&gt;file = NULL;</div><div class='ctx'> #endif</div><div class='ctx'>         mem = info + 1;</div><div class='ctx'>     }</div><div class='hunk'>@@ -8475,7 +12785,7 @@ rb_alloc_tmp_buffer(volatile VALUE *store, long len)</div><div class='ctx'>     long cnt;</div><div class='ctx'> </div><div class='ctx'>     if (len &lt; 0 || (cnt = (long)roomof(len, sizeof(VALUE))) &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "negative buffer size (or size too big)");</div><div class='add'>+        rb_raise(rb_eArgError, "negative buffer size (or size too big)");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return rb_alloc_tmp_buffer_with_count(store, len, cnt);</div><div class='hunk'>@@ -8486,9 +12796,9 @@ rb_free_tmp_buffer(volatile VALUE *store)</div><div class='ctx'> {</div><div class='ctx'>     rb_imemo_tmpbuf_t *s = (rb_imemo_tmpbuf_t*)ATOMIC_VALUE_EXCHANGE(*store, 0);</div><div class='ctx'>     if (s) {</div><div class='del'>-	void *ptr = ATOMIC_PTR_EXCHANGE(s-&gt;ptr, 0);</div><div class='del'>-	s-&gt;cnt = 0;</div><div class='del'>-	ruby_xfree(ptr);</div><div class='add'>+        void *ptr = ATOMIC_PTR_EXCHANGE(s-&gt;ptr, 0);</div><div class='add'>+        s-&gt;cnt = 0;</div><div class='add'>+        ruby_xfree(ptr);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -8529,10 +12839,10 @@ rb_gc_adjust_memory_usage(ssize_t diff)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'>     if (diff &gt; 0) {</div><div class='del'>-	objspace_malloc_increase(objspace, 0, diff, 0, MEMOP_TYPE_REALLOC);</div><div class='add'>+        objspace_malloc_increase(objspace, 0, diff, 0, MEMOP_TYPE_REALLOC);</div><div class='ctx'>     }</div><div class='ctx'>     else if (diff &lt; 0) {</div><div class='del'>-	objspace_malloc_increase(objspace, 0, 0, -diff, MEMOP_TYPE_REALLOC);</div><div class='add'>+        objspace_malloc_increase(objspace, 0, 0, -diff, MEMOP_TYPE_REALLOC);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -8559,6 +12869,50 @@ wmap_mark_map(st_data_t key, st_data_t val, st_data_t arg)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+wmap_replace_ref(st_data_t *key, st_data_t *value, st_data_t _argp, int existing)</div><div class='add'>+{</div><div class='add'>+    *key = rb_gc_location((VALUE)*key);</div><div class='add'>+</div><div class='add'>+    VALUE *values = (VALUE *)*value;</div><div class='add'>+    VALUE size = values[0];</div><div class='add'>+</div><div class='add'>+    for (VALUE index = 1; index &lt;= size; index++) {</div><div class='add'>+        values[index] = rb_gc_location(values[index]);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+wmap_foreach_replace(st_data_t key, st_data_t value, st_data_t _argp, int error)</div><div class='add'>+{</div><div class='add'>+    if (rb_gc_location((VALUE)key) != (VALUE)key) {</div><div class='add'>+        return ST_REPLACE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE *values = (VALUE *)value;</div><div class='add'>+    VALUE size = values[0];</div><div class='add'>+</div><div class='add'>+    for (VALUE index = 1; index &lt;= size; index++) {</div><div class='add'>+        VALUE val = values[index];</div><div class='add'>+        if (rb_gc_location(val) != val) {</div><div class='add'>+            return ST_REPLACE;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+wmap_compact(void *ptr)</div><div class='add'>+{</div><div class='add'>+    struct weakmap *w = ptr;</div><div class='add'>+    if (w-&gt;wmap2obj) rb_gc_update_tbl_refs(w-&gt;wmap2obj);</div><div class='add'>+    if (w-&gt;obj2wmap) st_foreach_with_replace(w-&gt;obj2wmap, wmap_foreach_replace, wmap_replace_ref, (st_data_t)NULL);</div><div class='add'>+    w-&gt;final = rb_gc_location(w-&gt;final);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> wmap_mark(void *ptr)</div><div class='ctx'> {</div><div class='hunk'>@@ -8566,7 +12920,7 @@ wmap_mark(void *ptr)</div><div class='ctx'> #if WMAP_DELETE_DEAD_OBJECT_IN_MARK</div><div class='ctx'>     if (w-&gt;obj2wmap) st_foreach(w-&gt;obj2wmap, wmap_mark_map, (st_data_t)&amp;rb_objspace);</div><div class='ctx'> #endif</div><div class='del'>-    rb_gc_mark(w-&gt;final);</div><div class='add'>+    rb_gc_mark_movable(w-&gt;final);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -8584,6 +12938,7 @@ wmap_free(void *ptr)</div><div class='ctx'>     st_foreach(w-&gt;obj2wmap, wmap_free_map, 0);</div><div class='ctx'>     st_free_table(w-&gt;obj2wmap);</div><div class='ctx'>     st_free_table(w-&gt;wmap2obj);</div><div class='add'>+    xfree(w);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -8609,50 +12964,89 @@ wmap_memsize(const void *ptr)</div><div class='ctx'> static const rb_data_type_t weakmap_type = {</div><div class='ctx'>     "weakmap",</div><div class='ctx'>     {</div><div class='del'>-	wmap_mark,</div><div class='del'>-	wmap_free,</div><div class='del'>-	wmap_memsize,</div><div class='add'>+        wmap_mark,</div><div class='add'>+        wmap_free,</div><div class='add'>+        wmap_memsize,</div><div class='add'>+        wmap_compact,</div><div class='ctx'>     },</div><div class='ctx'>     0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+static VALUE wmap_finalize(RB_BLOCK_CALL_FUNC_ARGLIST(objid, self));</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> wmap_allocate(VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     struct weakmap *w;</div><div class='ctx'>     VALUE obj = TypedData_Make_Struct(klass, struct weakmap, &amp;weakmap_type, w);</div><div class='del'>-    w-&gt;obj2wmap = st_init_numtable();</div><div class='del'>-    w-&gt;wmap2obj = st_init_numtable();</div><div class='del'>-    w-&gt;final = rb_obj_method(obj, ID2SYM(rb_intern("finalize")));</div><div class='add'>+    w-&gt;obj2wmap = rb_init_identtable();</div><div class='add'>+    w-&gt;wmap2obj = rb_init_identtable();</div><div class='add'>+    w-&gt;final = rb_func_lambda_new(wmap_finalize, obj, 1, 1);</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-wmap_final_func(st_data_t *key, st_data_t *value, st_data_t arg, int existing)</div><div class='add'>+wmap_live_p(rb_objspace_t *objspace, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (SPECIAL_CONST_P(obj)) return TRUE;</div><div class='add'>+    /* If is_pointer_to_heap returns false, the page could be in the tomb heap</div><div class='add'>+     * or have already been freed. */</div><div class='add'>+    if (!is_pointer_to_heap(objspace, (void *)obj)) return FALSE;</div><div class='add'>+</div><div class='add'>+    void *poisoned = asan_unpoison_object_temporary(obj);</div><div class='add'>+</div><div class='add'>+    enum ruby_value_type t = BUILTIN_TYPE(obj);</div><div class='add'>+    int ret = (!(t == T_NONE || t &gt;= T_FIXNUM || t == T_ICLASS) &amp;&amp;</div><div class='add'>+                is_live_object(objspace, obj));</div><div class='add'>+</div><div class='add'>+    if (poisoned) {</div><div class='add'>+        asan_poison_object(obj);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+wmap_remove_inverse_ref(st_data_t *key, st_data_t *val, st_data_t arg, int existing)</div><div class='ctx'> {</div><div class='del'>-    VALUE wmap, *ptr, size, i, j;</div><div class='ctx'>     if (!existing) return ST_STOP;</div><div class='del'>-    wmap = (VALUE)arg, ptr = (VALUE *)*value;</div><div class='del'>-    for (i = j = 1, size = ptr[0]; i &lt;= size; ++i) {</div><div class='del'>-	if (ptr[i] != wmap) {</div><div class='del'>-	    ptr[j++] = ptr[i];</div><div class='del'>-	}</div><div class='add'>+</div><div class='add'>+    VALUE old_ref = (VALUE)arg;</div><div class='add'>+</div><div class='add'>+    VALUE *values = (VALUE *)*val;</div><div class='add'>+    VALUE size = values[0];</div><div class='add'>+</div><div class='add'>+    if (size == 1) {</div><div class='add'>+        // fast path, we only had one backref</div><div class='add'>+        RUBY_ASSERT(values[1] == old_ref);</div><div class='add'>+        ruby_sized_xfree(values, 2 * sizeof(VALUE));</div><div class='add'>+        return ST_DELETE;</div><div class='ctx'>     }</div><div class='del'>-    if (j == 1) {</div><div class='del'>-	ruby_sized_xfree(ptr, i * sizeof(VALUE));</div><div class='del'>-	return ST_DELETE;</div><div class='add'>+</div><div class='add'>+    bool found = false;</div><div class='add'>+    VALUE index = 1;</div><div class='add'>+    for (; index &lt;= size; index++) {</div><div class='add'>+        if (values[index] == old_ref) {</div><div class='add'>+            found = true;</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    if (j &lt; i) {</div><div class='del'>-	ptr = ruby_sized_xrealloc2(ptr, j + 1, sizeof(VALUE), i);</div><div class='del'>-	ptr[0] = j;</div><div class='del'>-	*value = (st_data_t)ptr;</div><div class='add'>+    if (!found) return ST_STOP;</div><div class='add'>+</div><div class='add'>+    if (size &gt; index) {</div><div class='add'>+        MEMMOVE(&amp;values[index], &amp;values[index + 1], VALUE, size - index);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    size -= 1;</div><div class='add'>+    values[0] = size;</div><div class='add'>+    SIZED_REALLOC_N(values, VALUE, size + 1, size + 2);</div><div class='add'>+    *val = (st_data_t)values;</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='del'>-wmap_finalize(VALUE self, VALUE objid)</div><div class='add'>+wmap_finalize(RB_BLOCK_CALL_FUNC_ARGLIST(objid, self))</div><div class='ctx'> {</div><div class='ctx'>     st_data_t orig, wmap, data;</div><div class='ctx'>     VALUE obj, *rids, i, size;</div><div class='hunk'>@@ -8660,24 +13054,26 @@ wmap_finalize(VALUE self, VALUE objid)</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, struct weakmap, &amp;weakmap_type, w);</div><div class='ctx'>     /* Get reference from object id. */</div><div class='del'>-    obj = obj_id_to_ref(objid);</div><div class='add'>+    if (UNDEF_P(obj = id2ref_obj_tbl(&amp;rb_objspace, objid))) {</div><div class='add'>+        rb_bug("wmap_finalize: objid is not found.");</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     /* obj is original referenced object and/or weak reference. */</div><div class='ctx'>     orig = (st_data_t)obj;</div><div class='ctx'>     if (st_delete(w-&gt;obj2wmap, &amp;orig, &amp;data)) {</div><div class='del'>-	rids = (VALUE *)data;</div><div class='del'>-	size = *rids++;</div><div class='del'>-	for (i = 0; i &lt; size; ++i) {</div><div class='del'>-	    wmap = (st_data_t)rids[i];</div><div class='del'>-	    st_delete(w-&gt;wmap2obj, &amp;wmap, NULL);</div><div class='del'>-	}</div><div class='del'>-	ruby_sized_xfree((VALUE *)data, (size + 1) * sizeof(VALUE));</div><div class='add'>+        rids = (VALUE *)data;</div><div class='add'>+        size = *rids++;</div><div class='add'>+        for (i = 0; i &lt; size; ++i) {</div><div class='add'>+            wmap = (st_data_t)rids[i];</div><div class='add'>+            st_delete(w-&gt;wmap2obj, &amp;wmap, NULL);</div><div class='add'>+        }</div><div class='add'>+        ruby_sized_xfree((VALUE *)data, (size + 1) * sizeof(VALUE));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     wmap = (st_data_t)obj;</div><div class='ctx'>     if (st_delete(w-&gt;wmap2obj, &amp;wmap, &amp;orig)) {</div><div class='del'>-	wmap = (st_data_t)obj;</div><div class='del'>-	st_update(w-&gt;obj2wmap, orig, wmap_final_func, wmap);</div><div class='add'>+        wmap = (st_data_t)obj;</div><div class='add'>+        st_update(w-&gt;obj2wmap, orig, wmap_remove_inverse_ref, wmap);</div><div class='ctx'>     }</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -8687,26 +13083,38 @@ struct wmap_iter_arg {</div><div class='ctx'>     VALUE value;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+wmap_inspect_append(rb_objspace_t *objspace, VALUE str, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (SPECIAL_CONST_P(obj)) {</div><div class='add'>+        return rb_str_append(str, rb_inspect(obj));</div><div class='add'>+    }</div><div class='add'>+    else if (wmap_live_p(objspace, obj)) {</div><div class='add'>+        return rb_str_append(str, rb_any_to_s(obj));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_str_catf(str, "#&lt;collected:%p&gt;", (void*)obj);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> wmap_inspect_i(st_data_t key, st_data_t val, st_data_t arg)</div><div class='ctx'> {</div><div class='del'>-    VALUE str = (VALUE)arg;</div><div class='add'>+    struct wmap_iter_arg *argp = (struct wmap_iter_arg *)arg;</div><div class='add'>+    rb_objspace_t *objspace = argp-&gt;objspace;</div><div class='add'>+    VALUE str = argp-&gt;value;</div><div class='ctx'>     VALUE k = (VALUE)key, v = (VALUE)val;</div><div class='ctx'> </div><div class='ctx'>     if (RSTRING_PTR(str)[0] == '#') {</div><div class='del'>-	rb_str_cat2(str, ", ");</div><div class='add'>+        rb_str_cat2(str, ", ");</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_str_cat2(str, ": ");</div><div class='del'>-	RSTRING_PTR(str)[0] = '#';</div><div class='add'>+        rb_str_cat2(str, ": ");</div><div class='add'>+        RSTRING_PTR(str)[0] = '#';</div><div class='ctx'>     }</div><div class='del'>-    k = SPECIAL_CONST_P(k) ? rb_inspect(k) : rb_any_to_s(k);</div><div class='del'>-    rb_str_append(str, k);</div><div class='add'>+    wmap_inspect_append(objspace, str, k);</div><div class='ctx'>     rb_str_cat2(str, " =&gt; ");</div><div class='del'>-    v = SPECIAL_CONST_P(v) ? rb_inspect(v) : rb_any_to_s(v);</div><div class='del'>-    rb_str_append(str, v);</div><div class='del'>-    OBJ_INFECT(str, k);</div><div class='del'>-    OBJ_INFECT(str, v);</div><div class='add'>+    wmap_inspect_append(objspace, str, v);</div><div class='ctx'> </div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -8717,26 +13125,38 @@ wmap_inspect(VALUE self)</div><div class='ctx'>     VALUE str;</div><div class='ctx'>     VALUE c = rb_class_name(CLASS_OF(self));</div><div class='ctx'>     struct weakmap *w;</div><div class='add'>+    struct wmap_iter_arg args;</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, struct weakmap, &amp;weakmap_type, w);</div><div class='ctx'>     str = rb_sprintf("-&lt;%"PRIsVALUE":%p", c, (void *)self);</div><div class='ctx'>     if (w-&gt;wmap2obj) {</div><div class='del'>-	st_foreach(w-&gt;wmap2obj, wmap_inspect_i, str);</div><div class='add'>+        args.objspace = &amp;rb_objspace;</div><div class='add'>+        args.value = str;</div><div class='add'>+        st_foreach(w-&gt;wmap2obj, wmap_inspect_i, (st_data_t)&amp;args);</div><div class='ctx'>     }</div><div class='ctx'>     RSTRING_PTR(str)[0] = '#';</div><div class='ctx'>     rb_str_cat2(str, "&gt;");</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static inline bool</div><div class='add'>+wmap_live_entry_p(rb_objspace_t *objspace, st_data_t key, st_data_t val)</div><div class='add'>+{</div><div class='add'>+    return wmap_live_p(objspace, (VALUE)key) &amp;&amp; wmap_live_p(objspace, (VALUE)val);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> wmap_each_i(st_data_t key, st_data_t val, st_data_t arg)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = (rb_objspace_t *)arg;</div><div class='del'>-    VALUE obj = (VALUE)val;</div><div class='del'>-    if (is_id_value(objspace, obj) &amp;&amp; is_live_object(objspace, obj)) {</div><div class='del'>-	rb_yield_values(2, (VALUE)key, obj);</div><div class='add'>+</div><div class='add'>+    if (wmap_live_entry_p(objspace, key, val)) {</div><div class='add'>+        rb_yield_values(2, (VALUE)key, (VALUE)val);</div><div class='add'>+        return ST_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return ST_DELETE;</div><div class='ctx'>     }</div><div class='del'>-    return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Iterates over keys and objects in a weakly referenced object */</div><div class='hunk'>@@ -8755,11 +13175,14 @@ static int</div><div class='ctx'> wmap_each_key_i(st_data_t key, st_data_t val, st_data_t arg)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = (rb_objspace_t *)arg;</div><div class='del'>-    VALUE obj = (VALUE)val;</div><div class='del'>-    if (is_id_value(objspace, obj) &amp;&amp; is_live_object(objspace, obj)) {</div><div class='del'>-	rb_yield((VALUE)key);</div><div class='add'>+</div><div class='add'>+    if (wmap_live_entry_p(objspace, key, val)) {</div><div class='add'>+        rb_yield((VALUE)key);</div><div class='add'>+        return ST_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return ST_DELETE;</div><div class='ctx'>     }</div><div class='del'>-    return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Iterates over keys and objects in a weakly referenced object */</div><div class='hunk'>@@ -8778,11 +13201,14 @@ static int</div><div class='ctx'> wmap_each_value_i(st_data_t key, st_data_t val, st_data_t arg)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = (rb_objspace_t *)arg;</div><div class='del'>-    VALUE obj = (VALUE)val;</div><div class='del'>-    if (is_id_value(objspace, obj) &amp;&amp; is_live_object(objspace, obj)) {</div><div class='del'>-	rb_yield(obj);</div><div class='add'>+</div><div class='add'>+    if (wmap_live_entry_p(objspace, key, val)) {</div><div class='add'>+        rb_yield((VALUE)val);</div><div class='add'>+        return ST_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return ST_DELETE;</div><div class='ctx'>     }</div><div class='del'>-    return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Iterates over keys and objects in a weakly referenced object */</div><div class='hunk'>@@ -8803,11 +13229,14 @@ wmap_keys_i(st_data_t key, st_data_t val, st_data_t arg)</div><div class='ctx'>     struct wmap_iter_arg *argp = (struct wmap_iter_arg *)arg;</div><div class='ctx'>     rb_objspace_t *objspace = argp-&gt;objspace;</div><div class='ctx'>     VALUE ary = argp-&gt;value;</div><div class='del'>-    VALUE obj = (VALUE)val;</div><div class='del'>-    if (is_id_value(objspace, obj) &amp;&amp; is_live_object(objspace, obj)) {</div><div class='del'>-	rb_ary_push(ary, (VALUE)key);</div><div class='add'>+</div><div class='add'>+    if (wmap_live_entry_p(objspace, key, val)) {</div><div class='add'>+        rb_ary_push(ary, (VALUE)key);</div><div class='add'>+        return ST_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return ST_DELETE;</div><div class='ctx'>     }</div><div class='del'>-    return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Iterates over keys and objects in a weakly referenced object */</div><div class='hunk'>@@ -8830,11 +13259,14 @@ wmap_values_i(st_data_t key, st_data_t val, st_data_t arg)</div><div class='ctx'>     struct wmap_iter_arg *argp = (struct wmap_iter_arg *)arg;</div><div class='ctx'>     rb_objspace_t *objspace = argp-&gt;objspace;</div><div class='ctx'>     VALUE ary = argp-&gt;value;</div><div class='del'>-    VALUE obj = (VALUE)val;</div><div class='del'>-    if (is_id_value(objspace, obj) &amp;&amp; is_live_object(objspace, obj)) {</div><div class='del'>-	rb_ary_push(ary, obj);</div><div class='add'>+</div><div class='add'>+    if (wmap_live_entry_p(objspace, key, val)) {</div><div class='add'>+        rb_ary_push(ary, (VALUE)val);</div><div class='add'>+        return ST_CONTINUE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return ST_DELETE;</div><div class='ctx'>     }</div><div class='del'>-    return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Iterates over values and objects in a weakly referenced object */</div><div class='hunk'>@@ -8856,14 +13288,22 @@ wmap_aset_update(st_data_t *key, st_data_t *val, st_data_t arg, int existing)</div><div class='ctx'> {</div><div class='ctx'>     VALUE size, *ptr, *optr;</div><div class='ctx'>     if (existing) {</div><div class='del'>-	size = (ptr = optr = (VALUE *)*val)[0];</div><div class='del'>-	++size;</div><div class='del'>-	ptr = ruby_sized_xrealloc2(ptr, size + 1, sizeof(VALUE), size);</div><div class='add'>+        size = (ptr = optr = (VALUE *)*val)[0];</div><div class='add'>+</div><div class='add'>+        for (VALUE index = 1; index &lt;= size; index++) {</div><div class='add'>+            if (ptr[index] == (VALUE)arg) {</div><div class='add'>+                // The reference was already registered.</div><div class='add'>+                return ST_STOP;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ++size;</div><div class='add'>+        SIZED_REALLOC_N(ptr, VALUE, size + 1, size);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	optr = 0;</div><div class='del'>-	size = 1;</div><div class='del'>-	ptr = ruby_xmalloc0(2 * sizeof(VALUE));</div><div class='add'>+        optr = 0;</div><div class='add'>+        size = 1;</div><div class='add'>+        ptr = ruby_xmalloc0(2 * sizeof(VALUE));</div><div class='ctx'>     }</div><div class='ctx'>     ptr[0] = size;</div><div class='ctx'>     ptr[size] = (VALUE)arg;</div><div class='hunk'>@@ -8872,44 +13312,89 @@ wmap_aset_update(st_data_t *key, st_data_t *val, st_data_t arg, int existing)</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+struct wmap_aset_replace_args {</div><div class='add'>+    VALUE new_value;</div><div class='add'>+    VALUE old_value;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+wmap_aset_replace_value(st_data_t *key, st_data_t *val, st_data_t _args, int existing)</div><div class='add'>+{</div><div class='add'>+    struct wmap_aset_replace_args *args = (struct wmap_aset_replace_args *)_args;</div><div class='add'>+</div><div class='add'>+    if (existing) {</div><div class='add'>+        args-&gt;old_value = *val;</div><div class='add'>+    }</div><div class='add'>+    *val = (st_data_t)args-&gt;new_value;</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* Creates a weak reference from the given key to the given value */</div><div class='ctx'> static VALUE</div><div class='del'>-wmap_aset(VALUE self, VALUE wmap, VALUE orig)</div><div class='add'>+wmap_aset(VALUE self, VALUE key, VALUE value)</div><div class='ctx'> {</div><div class='ctx'>     struct weakmap *w;</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, struct weakmap, &amp;weakmap_type, w);</div><div class='del'>-    should_be_finalizable(orig);</div><div class='del'>-    should_be_finalizable(wmap);</div><div class='del'>-    define_final0(orig, w-&gt;final);</div><div class='del'>-    define_final0(wmap, w-&gt;final);</div><div class='del'>-    st_update(w-&gt;obj2wmap, (st_data_t)orig, wmap_aset_update, wmap);</div><div class='del'>-    st_insert(w-&gt;wmap2obj, (st_data_t)wmap, (st_data_t)orig);</div><div class='del'>-    return nonspecial_obj_id(orig);</div><div class='add'>+    if (FL_ABLE(value)) {</div><div class='add'>+        define_final0(value, w-&gt;final);</div><div class='add'>+    }</div><div class='add'>+    if (FL_ABLE(key)) {</div><div class='add'>+        define_final0(key, w-&gt;final);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    struct wmap_aset_replace_args aset_args = {</div><div class='add'>+        .new_value = value,</div><div class='add'>+        .old_value = Qundef,</div><div class='add'>+    };</div><div class='add'>+    st_update(w-&gt;wmap2obj, (st_data_t)key, wmap_aset_replace_value, (st_data_t)&amp;aset_args);</div><div class='add'>+</div><div class='add'>+    // If the value is unchanged, we have nothing to do.</div><div class='add'>+    if (value != aset_args.old_value) {</div><div class='add'>+        if (!UNDEF_P(aset_args.old_value) &amp;&amp; FL_ABLE(aset_args.old_value)) {</div><div class='add'>+            // That key existed and had an inverse reference, we need to clear the outdated inverse reference.</div><div class='add'>+            st_update(w-&gt;obj2wmap, (st_data_t)aset_args.old_value, wmap_remove_inverse_ref, key);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (FL_ABLE(value)) {</div><div class='add'>+            // If the value has no finalizer, we don't need to keep the inverse reference</div><div class='add'>+            st_update(w-&gt;obj2wmap, (st_data_t)value, wmap_aset_update, key);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return nonspecial_obj_id(value);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Retrieves a weakly referenced object with the given key */</div><div class='ctx'> static VALUE</div><div class='del'>-wmap_aref(VALUE self, VALUE wmap)</div><div class='add'>+wmap_lookup(VALUE self, VALUE key)</div><div class='ctx'> {</div><div class='ctx'>     st_data_t data;</div><div class='ctx'>     VALUE obj;</div><div class='ctx'>     struct weakmap *w;</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='add'>+    GC_ASSERT(wmap_live_p(objspace, key));</div><div class='ctx'> </div><div class='ctx'>     TypedData_Get_Struct(self, struct weakmap, &amp;weakmap_type, w);</div><div class='del'>-    if (!st_lookup(w-&gt;wmap2obj, (st_data_t)wmap, &amp;data)) return Qnil;</div><div class='add'>+    if (!st_lookup(w-&gt;wmap2obj, (st_data_t)key, &amp;data)) return Qundef;</div><div class='ctx'>     obj = (VALUE)data;</div><div class='del'>-    if (!is_id_value(objspace, obj)) return Qnil;</div><div class='del'>-    if (!is_live_object(objspace, obj)) return Qnil;</div><div class='add'>+    if (!wmap_live_p(objspace, obj)) return Qundef;</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* Retrieves a weakly referenced object with the given key */</div><div class='add'>+static VALUE</div><div class='add'>+wmap_aref(VALUE self, VALUE key)</div><div class='add'>+{</div><div class='add'>+    VALUE obj = wmap_lookup(self, key);</div><div class='add'>+    return !UNDEF_P(obj) ? obj : Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /* Returns +true+ if +key+ is registered */</div><div class='ctx'> static VALUE</div><div class='ctx'> wmap_has_key(VALUE self, VALUE key)</div><div class='ctx'> {</div><div class='del'>-    return NIL_P(wmap_aref(self, key)) ? Qfalse : Qtrue;</div><div class='add'>+    return RBOOL(!UNDEF_P(wmap_lookup(self, key)));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Returns the number of referenced objects */</div><div class='hunk'>@@ -8934,16 +13419,14 @@ wmap_size(VALUE self)</div><div class='ctx'> </div><div class='ctx'> #define GC_PROFILE_RECORD_DEFAULT_SIZE 100</div><div class='ctx'> </div><div class='del'>-/* return sec in user time */</div><div class='del'>-static double</div><div class='del'>-getrusage_time(void)</div><div class='add'>+static bool</div><div class='add'>+current_process_time(struct timespec *ts)</div><div class='ctx'> {</div><div class='ctx'> #if defined(HAVE_CLOCK_GETTIME) &amp;&amp; defined(CLOCK_PROCESS_CPUTIME_ID)</div><div class='ctx'>     {</div><div class='ctx'>         static int try_clock_gettime = 1;</div><div class='del'>-        struct timespec ts;</div><div class='del'>-        if (try_clock_gettime &amp;&amp; clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &amp;ts) == 0) {</div><div class='del'>-            return ts.tv_sec + ts.tv_nsec * 1e-9;</div><div class='add'>+        if (try_clock_gettime &amp;&amp; clock_gettime(CLOCK_PROCESS_CPUTIME_ID, ts) == 0) {</div><div class='add'>+            return true;</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='ctx'>             try_clock_gettime = 0;</div><div class='hunk'>@@ -8957,80 +13440,87 @@ getrusage_time(void)</div><div class='ctx'>         struct timeval time;</div><div class='ctx'>         if (getrusage(RUSAGE_SELF, &amp;usage) == 0) {</div><div class='ctx'>             time = usage.ru_utime;</div><div class='del'>-            return time.tv_sec + time.tv_usec * 1e-6;</div><div class='add'>+            ts-&gt;tv_sec = time.tv_sec;</div><div class='add'>+            ts-&gt;tv_nsec = (int32_t)time.tv_usec * 1000;</div><div class='add'>+            return true;</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'>     {</div><div class='del'>-	FILETIME creation_time, exit_time, kernel_time, user_time;</div><div class='del'>-	ULARGE_INTEGER ui;</div><div class='del'>-	LONG_LONG q;</div><div class='del'>-	double t;</div><div class='del'>-</div><div class='del'>-	if (GetProcessTimes(GetCurrentProcess(),</div><div class='del'>-			    &amp;creation_time, &amp;exit_time, &amp;kernel_time, &amp;user_time) != 0) {</div><div class='del'>-	    memcpy(&amp;ui, &amp;user_time, sizeof(FILETIME));</div><div class='del'>-	    q = ui.QuadPart / 10L;</div><div class='del'>-	    t = (DWORD)(q % 1000000L) * 1e-6;</div><div class='del'>-	    q /= 1000000L;</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-	    t += q;</div><div class='del'>-#else</div><div class='del'>-	    t += (double)(DWORD)(q &gt;&gt; 16) * (1 &lt;&lt; 16);</div><div class='del'>-	    t += (DWORD)q &amp; ~(~0 &lt;&lt; 16);</div><div class='del'>-#endif</div><div class='del'>-	    return t;</div><div class='del'>-	}</div><div class='add'>+        FILETIME creation_time, exit_time, kernel_time, user_time;</div><div class='add'>+        ULARGE_INTEGER ui;</div><div class='add'>+</div><div class='add'>+        if (GetProcessTimes(GetCurrentProcess(),</div><div class='add'>+                            &amp;creation_time, &amp;exit_time, &amp;kernel_time, &amp;user_time) != 0) {</div><div class='add'>+            memcpy(&amp;ui, &amp;user_time, sizeof(FILETIME));</div><div class='add'>+#define PER100NSEC (uint64_t)(1000 * 1000 * 10)</div><div class='add'>+            ts-&gt;tv_nsec = (long)(ui.QuadPart % PER100NSEC);</div><div class='add'>+            ts-&gt;tv_sec  = (time_t)(ui.QuadPart / PER100NSEC);</div><div class='add'>+            return true;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    return 0.0;</div><div class='add'>+    return false;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static double</div><div class='add'>+getrusage_time(void)</div><div class='add'>+{</div><div class='add'>+    struct timespec ts;</div><div class='add'>+    if (current_process_time(&amp;ts)) {</div><div class='add'>+        return ts.tv_sec + ts.tv_nsec * 1e-9;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return 0.0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'> static inline void</div><div class='del'>-gc_prof_setup_new_record(rb_objspace_t *objspace, int reason)</div><div class='add'>+gc_prof_setup_new_record(rb_objspace_t *objspace, unsigned int reason)</div><div class='ctx'> {</div><div class='ctx'>     if (objspace-&gt;profile.run) {</div><div class='del'>-	size_t index = objspace-&gt;profile.next_index;</div><div class='del'>-	gc_profile_record *record;</div><div class='del'>-</div><div class='del'>-	/* create new record */</div><div class='del'>-	objspace-&gt;profile.next_index++;</div><div class='del'>-</div><div class='del'>-	if (!objspace-&gt;profile.records) {</div><div class='del'>-	    objspace-&gt;profile.size = GC_PROFILE_RECORD_DEFAULT_SIZE;</div><div class='del'>-	    objspace-&gt;profile.records = malloc(sizeof(gc_profile_record) * objspace-&gt;profile.size);</div><div class='del'>-	}</div><div class='del'>-	if (index &gt;= objspace-&gt;profile.size) {</div><div class='del'>-	    void *ptr;</div><div class='del'>-	    objspace-&gt;profile.size += 1000;</div><div class='del'>-	    ptr = realloc(objspace-&gt;profile.records, sizeof(gc_profile_record) * objspace-&gt;profile.size);</div><div class='del'>-	    if (!ptr) rb_memerror();</div><div class='del'>-	    objspace-&gt;profile.records = ptr;</div><div class='del'>-	}</div><div class='del'>-	if (!objspace-&gt;profile.records) {</div><div class='del'>-	    rb_bug("gc_profile malloc or realloc miss");</div><div class='del'>-	}</div><div class='del'>-	record = objspace-&gt;profile.current_record = &amp;objspace-&gt;profile.records[objspace-&gt;profile.next_index - 1];</div><div class='del'>-	MEMZERO(record, gc_profile_record, 1);</div><div class='del'>-</div><div class='del'>-	/* setup before-GC parameter */</div><div class='del'>-	record-&gt;flags = reason | (ruby_gc_stressful ? GPR_FLAG_STRESS : 0);</div><div class='add'>+        size_t index = objspace-&gt;profile.next_index;</div><div class='add'>+        gc_profile_record *record;</div><div class='add'>+</div><div class='add'>+        /* create new record */</div><div class='add'>+        objspace-&gt;profile.next_index++;</div><div class='add'>+</div><div class='add'>+        if (!objspace-&gt;profile.records) {</div><div class='add'>+            objspace-&gt;profile.size = GC_PROFILE_RECORD_DEFAULT_SIZE;</div><div class='add'>+            objspace-&gt;profile.records = malloc(xmalloc2_size(sizeof(gc_profile_record), objspace-&gt;profile.size));</div><div class='add'>+        }</div><div class='add'>+        if (index &gt;= objspace-&gt;profile.size) {</div><div class='add'>+            void *ptr;</div><div class='add'>+            objspace-&gt;profile.size += 1000;</div><div class='add'>+            ptr = realloc(objspace-&gt;profile.records, xmalloc2_size(sizeof(gc_profile_record), objspace-&gt;profile.size));</div><div class='add'>+            if (!ptr) rb_memerror();</div><div class='add'>+            objspace-&gt;profile.records = ptr;</div><div class='add'>+        }</div><div class='add'>+        if (!objspace-&gt;profile.records) {</div><div class='add'>+            rb_bug("gc_profile malloc or realloc miss");</div><div class='add'>+        }</div><div class='add'>+        record = objspace-&gt;profile.current_record = &amp;objspace-&gt;profile.records[objspace-&gt;profile.next_index - 1];</div><div class='add'>+        MEMZERO(record, gc_profile_record, 1);</div><div class='add'>+</div><div class='add'>+        /* setup before-GC parameter */</div><div class='add'>+        record-&gt;flags = reason | (ruby_gc_stressful ? GPR_FLAG_STRESS : 0);</div><div class='ctx'> #if MALLOC_ALLOCATED_SIZE</div><div class='del'>-	record-&gt;allocated_size = malloc_allocated_size;</div><div class='add'>+        record-&gt;allocated_size = malloc_allocated_size;</div><div class='ctx'> #endif</div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL &amp;&amp; GC_PROFILE_DETAIL_MEMORY</div><div class='ctx'> #ifdef RUSAGE_SELF</div><div class='del'>-	{</div><div class='del'>-	    struct rusage usage;</div><div class='del'>-	    if (getrusage(RUSAGE_SELF, &amp;usage) == 0) {</div><div class='del'>-		record-&gt;maxrss = usage.ru_maxrss;</div><div class='del'>-		record-&gt;minflt = usage.ru_minflt;</div><div class='del'>-		record-&gt;majflt = usage.ru_majflt;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        {</div><div class='add'>+            struct rusage usage;</div><div class='add'>+            if (getrusage(RUSAGE_SELF, &amp;usage) == 0) {</div><div class='add'>+                record-&gt;maxrss = usage.ru_maxrss;</div><div class='add'>+                record-&gt;minflt = usage.ru_minflt;</div><div class='add'>+                record-&gt;majflt = usage.ru_majflt;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='hunk'>@@ -9040,12 +13530,12 @@ static inline void</div><div class='ctx'> gc_prof_timer_start(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     if (gc_prof_enabled(objspace)) {</div><div class='del'>-	gc_profile_record *record = gc_prof_record(objspace);</div><div class='add'>+        gc_profile_record *record = gc_prof_record(objspace);</div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='del'>-	record-&gt;prepare_time = objspace-&gt;profile.prepare_time;</div><div class='add'>+        record-&gt;prepare_time = objspace-&gt;profile.prepare_time;</div><div class='ctx'> #endif</div><div class='del'>-	record-&gt;gc_time = 0;</div><div class='del'>-	record-&gt;gc_invoke_time = getrusage_time();</div><div class='add'>+        record-&gt;gc_time = 0;</div><div class='add'>+        record-&gt;gc_invoke_time = getrusage_time();</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -9054,10 +13544,10 @@ elapsed_time_from(double time)</div><div class='ctx'> {</div><div class='ctx'>     double now = getrusage_time();</div><div class='ctx'>     if (now &gt; time) {</div><div class='del'>-	return now - time;</div><div class='add'>+        return now - time;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -9065,9 +13555,9 @@ static inline void</div><div class='ctx'> gc_prof_timer_stop(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     if (gc_prof_enabled(objspace)) {</div><div class='del'>-	gc_profile_record *record = gc_prof_record(objspace);</div><div class='del'>-	record-&gt;gc_time = elapsed_time_from(record-&gt;gc_invoke_time);</div><div class='del'>-	record-&gt;gc_invoke_time -= objspace-&gt;profile.invoke_time;</div><div class='add'>+        gc_profile_record *record = gc_prof_record(objspace);</div><div class='add'>+        record-&gt;gc_time = elapsed_time_from(record-&gt;gc_invoke_time);</div><div class='add'>+        record-&gt;gc_invoke_time -= objspace-&gt;profile.invoke_time;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -9079,7 +13569,7 @@ gc_prof_mark_timer_start(rb_objspace_t *objspace)</div><div class='ctx'>     RUBY_DTRACE_GC_HOOK(MARK_BEGIN);</div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='ctx'>     if (gc_prof_enabled(objspace)) {</div><div class='del'>-	gc_prof_record(objspace)-&gt;gc_mark_time = getrusage_time();</div><div class='add'>+        gc_prof_record(objspace)-&gt;gc_mark_time = getrusage_time();</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='hunk'>@@ -9091,7 +13581,7 @@ gc_prof_mark_timer_stop(rb_objspace_t *objspace)</div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='ctx'>     if (gc_prof_enabled(objspace)) {</div><div class='ctx'>         gc_profile_record *record = gc_prof_record(objspace);</div><div class='del'>-	record-&gt;gc_mark_time = elapsed_time_from(record-&gt;gc_mark_time);</div><div class='add'>+        record-&gt;gc_mark_time = elapsed_time_from(record-&gt;gc_mark_time);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='hunk'>@@ -9101,11 +13591,11 @@ gc_prof_sweep_timer_start(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     RUBY_DTRACE_GC_HOOK(SWEEP_BEGIN);</div><div class='ctx'>     if (gc_prof_enabled(objspace)) {</div><div class='del'>-	gc_profile_record *record = gc_prof_record(objspace);</div><div class='add'>+        gc_profile_record *record = gc_prof_record(objspace);</div><div class='ctx'> </div><div class='del'>-	if (record-&gt;gc_time &gt; 0 || GC_PROFILE_MORE_DETAIL) {</div><div class='del'>-	    objspace-&gt;profile.gc_sweep_start_time = getrusage_time();</div><div class='del'>-	}</div><div class='add'>+        if (record-&gt;gc_time &gt; 0 || GC_PROFILE_MORE_DETAIL) {</div><div class='add'>+            objspace-&gt;profile.gc_sweep_start_time = getrusage_time();</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -9115,23 +13605,23 @@ gc_prof_sweep_timer_stop(rb_objspace_t *objspace)</div><div class='ctx'>     RUBY_DTRACE_GC_HOOK(SWEEP_END);</div><div class='ctx'> </div><div class='ctx'>     if (gc_prof_enabled(objspace)) {</div><div class='del'>-	double sweep_time;</div><div class='del'>-	gc_profile_record *record = gc_prof_record(objspace);</div><div class='del'>-</div><div class='del'>-	if (record-&gt;gc_time &gt; 0) {</div><div class='del'>-	    sweep_time = elapsed_time_from(objspace-&gt;profile.gc_sweep_start_time);</div><div class='del'>-	    /* need to accumulate GC time for lazy sweep after gc() */</div><div class='del'>-	    record-&gt;gc_time += sweep_time;</div><div class='del'>-	}</div><div class='del'>-	else if (GC_PROFILE_MORE_DETAIL) {</div><div class='del'>-	    sweep_time = elapsed_time_from(objspace-&gt;profile.gc_sweep_start_time);</div><div class='del'>-	}</div><div class='add'>+        double sweep_time;</div><div class='add'>+        gc_profile_record *record = gc_prof_record(objspace);</div><div class='add'>+</div><div class='add'>+        if (record-&gt;gc_time &gt; 0) {</div><div class='add'>+            sweep_time = elapsed_time_from(objspace-&gt;profile.gc_sweep_start_time);</div><div class='add'>+            /* need to accumulate GC time for lazy sweep after gc() */</div><div class='add'>+            record-&gt;gc_time += sweep_time;</div><div class='add'>+        }</div><div class='add'>+        else if (GC_PROFILE_MORE_DETAIL) {</div><div class='add'>+            sweep_time = elapsed_time_from(objspace-&gt;profile.gc_sweep_start_time);</div><div class='add'>+        }</div><div class='ctx'> </div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='del'>-	record-&gt;gc_sweep_time += sweep_time;</div><div class='del'>-	if (heap_pages_deferred_final) record-&gt;flags |= GPR_FLAG_HAVE_FINALIZE;</div><div class='add'>+        record-&gt;gc_sweep_time += sweep_time;</div><div class='add'>+        if (heap_pages_deferred_final) record-&gt;flags |= GPR_FLAG_HAVE_FINALIZE;</div><div class='ctx'> #endif</div><div class='del'>-	if (heap_pages_deferred_final) objspace-&gt;profile.latest_gc_info |= GPR_FLAG_HAVE_FINALIZE;</div><div class='add'>+        if (heap_pages_deferred_final) objspace-&gt;profile.latest_gc_info |= GPR_FLAG_HAVE_FINALIZE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -9141,8 +13631,8 @@ gc_prof_set_malloc_info(rb_objspace_t *objspace)</div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='ctx'>     if (gc_prof_enabled(objspace)) {</div><div class='ctx'>         gc_profile_record *record = gc_prof_record(objspace);</div><div class='del'>-	record-&gt;allocate_increase = malloc_increase;</div><div class='del'>-	record-&gt;allocate_limit = malloc_limit;</div><div class='add'>+        record-&gt;allocate_increase = malloc_increase;</div><div class='add'>+        record-&gt;allocate_limit = malloc_limit;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='hunk'>@@ -9151,19 +13641,19 @@ static inline void</div><div class='ctx'> gc_prof_set_heap_info(rb_objspace_t *objspace)</div><div class='ctx'> {</div><div class='ctx'>     if (gc_prof_enabled(objspace)) {</div><div class='del'>-	gc_profile_record *record = gc_prof_record(objspace);</div><div class='del'>-	size_t live = objspace-&gt;profile.total_allocated_objects_at_gc_start - objspace-&gt;profile.total_freed_objects;</div><div class='del'>-	size_t total = objspace-&gt;profile.heap_used_at_gc_start * HEAP_PAGE_OBJ_LIMIT;</div><div class='add'>+        gc_profile_record *record = gc_prof_record(objspace);</div><div class='add'>+        size_t live = objspace-&gt;profile.total_allocated_objects_at_gc_start - objspace-&gt;profile.total_freed_objects;</div><div class='add'>+        size_t total = objspace-&gt;profile.heap_used_at_gc_start * HEAP_PAGE_OBJ_LIMIT;</div><div class='ctx'> </div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='del'>-	record-&gt;heap_use_pages = objspace-&gt;profile.heap_used_at_gc_start;</div><div class='del'>-	record-&gt;heap_live_objects = live;</div><div class='del'>-	record-&gt;heap_free_objects = total - live;</div><div class='add'>+        record-&gt;heap_use_pages = objspace-&gt;profile.heap_used_at_gc_start;</div><div class='add'>+        record-&gt;heap_live_objects = live;</div><div class='add'>+        record-&gt;heap_free_objects = total - live;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-	record-&gt;heap_total_objects = total;</div><div class='del'>-	record-&gt;heap_use_size = live * sizeof(RVALUE);</div><div class='del'>-	record-&gt;heap_total_size = total * sizeof(RVALUE);</div><div class='add'>+        record-&gt;heap_total_objects = total;</div><div class='add'>+        record-&gt;heap_use_size = live * sizeof(RVALUE);</div><div class='add'>+        record-&gt;heap_total_size = total * sizeof(RVALUE);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -9171,24 +13661,22 @@ gc_prof_set_heap_info(rb_objspace_t *objspace)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *    GC::Profiler.clear          -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Clears the GC profiler data.</div><div class='add'>+ *  Clears the \GC profiler data.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-gc_profile_clear(void)</div><div class='add'>+gc_profile_clear(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-    if (GC_PROFILE_RECORD_DEFAULT_SIZE * 2 &lt; objspace-&gt;profile.size) {</div><div class='del'>-        objspace-&gt;profile.size = GC_PROFILE_RECORD_DEFAULT_SIZE * 2;</div><div class='del'>-        objspace-&gt;profile.records = realloc(objspace-&gt;profile.records, sizeof(gc_profile_record) * objspace-&gt;profile.size);</div><div class='del'>-        if (!objspace-&gt;profile.records) {</div><div class='del'>-            rb_memerror();</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    MEMZERO(objspace-&gt;profile.records, gc_profile_record, objspace-&gt;profile.size);</div><div class='add'>+    void *p = objspace-&gt;profile.records;</div><div class='add'>+    objspace-&gt;profile.records = NULL;</div><div class='add'>+    objspace-&gt;profile.size = 0;</div><div class='ctx'>     objspace-&gt;profile.next_index = 0;</div><div class='ctx'>     objspace-&gt;profile.current_record = 0;</div><div class='add'>+    if (p) {</div><div class='add'>+        free(p);</div><div class='add'>+    }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -9243,7 +13731,7 @@ gc_profile_clear(void)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-gc_profile_record_get(void)</div><div class='add'>+gc_profile_record_get(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE prof;</div><div class='ctx'>     VALUE gc_profile = rb_ary_new();</div><div class='hunk'>@@ -9251,19 +13739,20 @@ gc_profile_record_get(void)</div><div class='ctx'>     rb_objspace_t *objspace = (&amp;rb_objspace);</div><div class='ctx'> </div><div class='ctx'>     if (!objspace-&gt;profile.run) {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     for (i =0; i &lt; objspace-&gt;profile.next_index; i++) {</div><div class='del'>-	gc_profile_record *record = &amp;objspace-&gt;profile.records[i];</div><div class='add'>+        gc_profile_record *record = &amp;objspace-&gt;profile.records[i];</div><div class='ctx'> </div><div class='del'>-	prof = rb_hash_new();</div><div class='del'>-	rb_hash_aset(prof, ID2SYM(rb_intern("GC_FLAGS")), gc_info_decode(0, rb_hash_new(), record-&gt;flags));</div><div class='add'>+        prof = rb_hash_new();</div><div class='add'>+        rb_hash_aset(prof, ID2SYM(rb_intern("GC_FLAGS")), gc_info_decode(0, rb_hash_new(), record-&gt;flags));</div><div class='ctx'>         rb_hash_aset(prof, ID2SYM(rb_intern("GC_TIME")), DBL2NUM(record-&gt;gc_time));</div><div class='ctx'>         rb_hash_aset(prof, ID2SYM(rb_intern("GC_INVOKE_TIME")), DBL2NUM(record-&gt;gc_invoke_time));</div><div class='ctx'>         rb_hash_aset(prof, ID2SYM(rb_intern("HEAP_USE_SIZE")), SIZET2NUM(record-&gt;heap_use_size));</div><div class='ctx'>         rb_hash_aset(prof, ID2SYM(rb_intern("HEAP_TOTAL_SIZE")), SIZET2NUM(record-&gt;heap_total_size));</div><div class='ctx'>         rb_hash_aset(prof, ID2SYM(rb_intern("HEAP_TOTAL_OBJECTS")), SIZET2NUM(record-&gt;heap_total_objects));</div><div class='add'>+        rb_hash_aset(prof, ID2SYM(rb_intern("MOVED_OBJECTS")), SIZET2NUM(record-&gt;moved_objects));</div><div class='ctx'>         rb_hash_aset(prof, ID2SYM(rb_intern("GC_IS_MARKED")), Qtrue);</div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='ctx'>         rb_hash_aset(prof, ID2SYM(rb_intern("GC_MARK_TIME")), DBL2NUM(record-&gt;gc_mark_time));</div><div class='hunk'>@@ -9274,18 +13763,18 @@ gc_profile_record_get(void)</div><div class='ctx'>         rb_hash_aset(prof, ID2SYM(rb_intern("HEAP_LIVE_OBJECTS")), SIZET2NUM(record-&gt;heap_live_objects));</div><div class='ctx'>         rb_hash_aset(prof, ID2SYM(rb_intern("HEAP_FREE_OBJECTS")), SIZET2NUM(record-&gt;heap_free_objects));</div><div class='ctx'> </div><div class='del'>-	rb_hash_aset(prof, ID2SYM(rb_intern("REMOVING_OBJECTS")), SIZET2NUM(record-&gt;removing_objects));</div><div class='del'>-	rb_hash_aset(prof, ID2SYM(rb_intern("EMPTY_OBJECTS")), SIZET2NUM(record-&gt;empty_objects));</div><div class='add'>+        rb_hash_aset(prof, ID2SYM(rb_intern("REMOVING_OBJECTS")), SIZET2NUM(record-&gt;removing_objects));</div><div class='add'>+        rb_hash_aset(prof, ID2SYM(rb_intern("EMPTY_OBJECTS")), SIZET2NUM(record-&gt;empty_objects));</div><div class='ctx'> </div><div class='del'>-	rb_hash_aset(prof, ID2SYM(rb_intern("HAVE_FINALIZE")), (record-&gt;flags &amp; GPR_FLAG_HAVE_FINALIZE) ? Qtrue : Qfalse);</div><div class='add'>+        rb_hash_aset(prof, ID2SYM(rb_intern("HAVE_FINALIZE")), RBOOL(record-&gt;flags &amp; GPR_FLAG_HAVE_FINALIZE));</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if RGENGC_PROFILE &gt; 0</div><div class='del'>-	rb_hash_aset(prof, ID2SYM(rb_intern("OLD_OBJECTS")), SIZET2NUM(record-&gt;old_objects));</div><div class='del'>-	rb_hash_aset(prof, ID2SYM(rb_intern("REMEMBERED_NORMAL_OBJECTS")), SIZET2NUM(record-&gt;remembered_normal_objects));</div><div class='del'>-	rb_hash_aset(prof, ID2SYM(rb_intern("REMEMBERED_SHADY_OBJECTS")), SIZET2NUM(record-&gt;remembered_shady_objects));</div><div class='add'>+        rb_hash_aset(prof, ID2SYM(rb_intern("OLD_OBJECTS")), SIZET2NUM(record-&gt;old_objects));</div><div class='add'>+        rb_hash_aset(prof, ID2SYM(rb_intern("REMEMBERED_NORMAL_OBJECTS")), SIZET2NUM(record-&gt;remembered_normal_objects));</div><div class='add'>+        rb_hash_aset(prof, ID2SYM(rb_intern("REMEMBERED_SHADY_OBJECTS")), SIZET2NUM(record-&gt;remembered_shady_objects));</div><div class='ctx'> #endif</div><div class='del'>-	rb_ary_push(gc_profile, prof);</div><div class='add'>+        rb_ary_push(gc_profile, prof);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return gc_profile;</div><div class='hunk'>@@ -9295,14 +13784,14 @@ gc_profile_record_get(void)</div><div class='ctx'> #define MAJOR_REASON_MAX 0x10</div><div class='ctx'> </div><div class='ctx'> static char *</div><div class='del'>-gc_profile_dump_major_reason(int flags, char *buff)</div><div class='add'>+gc_profile_dump_major_reason(unsigned int flags, char *buff)</div><div class='ctx'> {</div><div class='del'>-    int reason = flags &amp; GPR_FLAG_MAJOR_MASK;</div><div class='add'>+    unsigned int reason = flags &amp; GPR_FLAG_MAJOR_MASK;</div><div class='ctx'>     int i = 0;</div><div class='ctx'> </div><div class='ctx'>     if (reason == GPR_FLAG_NONE) {</div><div class='del'>-	buff[0] = '-';</div><div class='del'>-	buff[1] = 0;</div><div class='add'>+        buff[0] = '-';</div><div class='add'>+        buff[1] = 0;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> #define C(x, s) \</div><div class='hunk'>@@ -9311,11 +13800,11 @@ gc_profile_dump_major_reason(int flags, char *buff)</div><div class='ctx'>       if (i &gt;= MAJOR_REASON_MAX) rb_bug("gc_profile_dump_major_reason: overflow"); \</div><div class='ctx'>       buff[i] = 0; \</div><div class='ctx'>   }</div><div class='del'>-	C(NOFREE, N);</div><div class='del'>-	C(OLDGEN, O);</div><div class='del'>-	C(SHADY,  S);</div><div class='add'>+        C(NOFREE, N);</div><div class='add'>+        C(OLDGEN, O);</div><div class='add'>+        C(SHADY,  S);</div><div class='ctx'> #if RGENGC_ESTIMATE_OLDMALLOC</div><div class='del'>-	C(OLDMALLOC, M);</div><div class='add'>+        C(OLDMALLOC, M);</div><div class='ctx'> #endif</div><div class='ctx'> #undef C</div><div class='ctx'>     }</div><div class='hunk'>@@ -9333,87 +13822,88 @@ gc_profile_dump_on(VALUE out, VALUE (*append)(VALUE, VALUE))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     if (objspace-&gt;profile.run &amp;&amp; count /* &gt; 1 */) {</div><div class='del'>-	size_t i;</div><div class='del'>-	const gc_profile_record *record;</div><div class='add'>+        size_t i;</div><div class='add'>+        const gc_profile_record *record;</div><div class='ctx'> </div><div class='del'>-	append(out, rb_sprintf("GC %"PRIuSIZE" invokes.\n", objspace-&gt;profile.count));</div><div class='del'>-	append(out, rb_str_new_cstr("Index    Invoke Time(sec)       Use Size(byte)     Total Size(byte)         Total Object                    GC Time(ms)\n"));</div><div class='add'>+        append(out, rb_sprintf("GC %"PRIuSIZE" invokes.\n", objspace-&gt;profile.count));</div><div class='add'>+        append(out, rb_str_new_cstr("Index    Invoke Time(sec)       Use Size(byte)     Total Size(byte)         Total Object                    GC Time(ms)\n"));</div><div class='ctx'> </div><div class='del'>-	for (i = 0; i &lt; count; i++) {</div><div class='del'>-	    record = &amp;objspace-&gt;profile.records[i];</div><div class='del'>-	    append(out, rb_sprintf("%5"PRIuSIZE" %19.3f %20"PRIuSIZE" %20"PRIuSIZE" %20"PRIuSIZE" %30.20f\n",</div><div class='del'>-				   i+1, record-&gt;gc_invoke_time, record-&gt;heap_use_size,</div><div class='del'>-				   record-&gt;heap_total_size, record-&gt;heap_total_objects, record-&gt;gc_time*1000));</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; count; i++) {</div><div class='add'>+            record = &amp;objspace-&gt;profile.records[i];</div><div class='add'>+            append(out, rb_sprintf("%5"PRIuSIZE" %19.3f %20"PRIuSIZE" %20"PRIuSIZE" %20"PRIuSIZE" %30.20f\n",</div><div class='add'>+                                   i+1, record-&gt;gc_invoke_time, record-&gt;heap_use_size,</div><div class='add'>+                                   record-&gt;heap_total_size, record-&gt;heap_total_objects, record-&gt;gc_time*1000));</div><div class='add'>+        }</div><div class='ctx'> </div><div class='ctx'> #if GC_PROFILE_MORE_DETAIL</div><div class='del'>-	append(out, rb_str_new_cstr("\n\n" \</div><div class='del'>-				    "More detail.\n" \</div><div class='del'>-				    "Prepare Time = Previously GC's rest sweep time\n"</div><div class='del'>-				    "Index Flags          Allocate Inc.  Allocate Limit"</div><div class='add'>+        const char *str = "\n\n" \</div><div class='add'>+                                    "More detail.\n" \</div><div class='add'>+                                    "Prepare Time = Previously GC's rest sweep time\n"</div><div class='add'>+                                    "Index Flags          Allocate Inc.  Allocate Limit"</div><div class='ctx'> #if CALC_EXACT_MALLOC_SIZE</div><div class='del'>-				    "  Allocated Size"</div><div class='add'>+                                    "  Allocated Size"</div><div class='ctx'> #endif</div><div class='del'>-				    "  Use Page     Mark Time(ms)    Sweep Time(ms)  Prepare Time(ms)  LivingObj    FreeObj RemovedObj   EmptyObj"</div><div class='add'>+                                    "  Use Page     Mark Time(ms)    Sweep Time(ms)  Prepare Time(ms)  LivingObj    FreeObj RemovedObj   EmptyObj"</div><div class='ctx'> #if RGENGC_PROFILE</div><div class='del'>-				    " OldgenObj RemNormObj RemShadObj"</div><div class='add'>+                                    " OldgenObj RemNormObj RemShadObj"</div><div class='ctx'> #endif</div><div class='ctx'> #if GC_PROFILE_DETAIL_MEMORY</div><div class='del'>-				    " MaxRSS(KB) MinorFLT MajorFLT"</div><div class='add'>+                                    " MaxRSS(KB) MinorFLT MajorFLT"</div><div class='ctx'> #endif</div><div class='del'>-				    "\n"));</div><div class='add'>+                                    "\n";</div><div class='add'>+        append(out, rb_str_new_cstr(str));</div><div class='ctx'> </div><div class='del'>-	for (i = 0; i &lt; count; i++) {</div><div class='del'>-	    record = &amp;objspace-&gt;profile.records[i];</div><div class='del'>-	    append(out, rb_sprintf("%5"PRIuSIZE" %4s/%c/%6s%c %13"PRIuSIZE" %15"PRIuSIZE</div><div class='add'>+        for (i = 0; i &lt; count; i++) {</div><div class='add'>+            record = &amp;objspace-&gt;profile.records[i];</div><div class='add'>+            append(out, rb_sprintf("%5"PRIuSIZE" %4s/%c/%6s%c %13"PRIuSIZE" %15"PRIuSIZE</div><div class='ctx'> #if CALC_EXACT_MALLOC_SIZE</div><div class='del'>-				   " %15"PRIuSIZE</div><div class='add'>+                                   " %15"PRIuSIZE</div><div class='ctx'> #endif</div><div class='del'>-				   " %9"PRIuSIZE" %17.12f %17.12f %17.12f %10"PRIuSIZE" %10"PRIuSIZE" %10"PRIuSIZE" %10"PRIuSIZE</div><div class='add'>+                                   " %9"PRIuSIZE" %17.12f %17.12f %17.12f %10"PRIuSIZE" %10"PRIuSIZE" %10"PRIuSIZE" %10"PRIuSIZE</div><div class='ctx'> #if RGENGC_PROFILE</div><div class='del'>-				   "%10"PRIuSIZE" %10"PRIuSIZE" %10"PRIuSIZE</div><div class='add'>+                                   "%10"PRIuSIZE" %10"PRIuSIZE" %10"PRIuSIZE</div><div class='ctx'> #endif</div><div class='ctx'> #if GC_PROFILE_DETAIL_MEMORY</div><div class='del'>-				   "%11ld %8ld %8ld"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-				   "\n",</div><div class='del'>-				   i+1,</div><div class='del'>-				   gc_profile_dump_major_reason(record-&gt;flags, reason_str),</div><div class='del'>-				   (record-&gt;flags &amp; GPR_FLAG_HAVE_FINALIZE) ? 'F' : '.',</div><div class='del'>-				   (record-&gt;flags &amp; GPR_FLAG_NEWOBJ) ? "NEWOBJ" :</div><div class='del'>-				   (record-&gt;flags &amp; GPR_FLAG_MALLOC) ? "MALLOC" :</div><div class='del'>-				   (record-&gt;flags &amp; GPR_FLAG_METHOD) ? "METHOD" :</div><div class='del'>-				   (record-&gt;flags &amp; GPR_FLAG_CAPI)   ? "CAPI__" : "??????",</div><div class='del'>-				   (record-&gt;flags &amp; GPR_FLAG_STRESS) ? '!' : ' ',</div><div class='del'>-				   record-&gt;allocate_increase, record-&gt;allocate_limit,</div><div class='add'>+                                   "%11ld %8ld %8ld"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+                                   "\n",</div><div class='add'>+                                   i+1,</div><div class='add'>+                                   gc_profile_dump_major_reason(record-&gt;flags, reason_str),</div><div class='add'>+                                   (record-&gt;flags &amp; GPR_FLAG_HAVE_FINALIZE) ? 'F' : '.',</div><div class='add'>+                                   (record-&gt;flags &amp; GPR_FLAG_NEWOBJ) ? "NEWOBJ" :</div><div class='add'>+                                   (record-&gt;flags &amp; GPR_FLAG_MALLOC) ? "MALLOC" :</div><div class='add'>+                                   (record-&gt;flags &amp; GPR_FLAG_METHOD) ? "METHOD" :</div><div class='add'>+                                   (record-&gt;flags &amp; GPR_FLAG_CAPI)   ? "CAPI__" : "??????",</div><div class='add'>+                                   (record-&gt;flags &amp; GPR_FLAG_STRESS) ? '!' : ' ',</div><div class='add'>+                                   record-&gt;allocate_increase, record-&gt;allocate_limit,</div><div class='ctx'> #if CALC_EXACT_MALLOC_SIZE</div><div class='del'>-				   record-&gt;allocated_size,</div><div class='add'>+                                   record-&gt;allocated_size,</div><div class='ctx'> #endif</div><div class='del'>-				   record-&gt;heap_use_pages,</div><div class='del'>-				   record-&gt;gc_mark_time*1000,</div><div class='del'>-				   record-&gt;gc_sweep_time*1000,</div><div class='del'>-				   record-&gt;prepare_time*1000,</div><div class='add'>+                                   record-&gt;heap_use_pages,</div><div class='add'>+                                   record-&gt;gc_mark_time*1000,</div><div class='add'>+                                   record-&gt;gc_sweep_time*1000,</div><div class='add'>+                                   record-&gt;prepare_time*1000,</div><div class='ctx'> </div><div class='del'>-				   record-&gt;heap_live_objects,</div><div class='del'>-				   record-&gt;heap_free_objects,</div><div class='del'>-				   record-&gt;removing_objects,</div><div class='del'>-				   record-&gt;empty_objects</div><div class='add'>+                                   record-&gt;heap_live_objects,</div><div class='add'>+                                   record-&gt;heap_free_objects,</div><div class='add'>+                                   record-&gt;removing_objects,</div><div class='add'>+                                   record-&gt;empty_objects</div><div class='ctx'> #if RGENGC_PROFILE</div><div class='del'>-				   ,</div><div class='del'>-				   record-&gt;old_objects,</div><div class='del'>-				   record-&gt;remembered_normal_objects,</div><div class='del'>-				   record-&gt;remembered_shady_objects</div><div class='add'>+                                   ,</div><div class='add'>+                                   record-&gt;old_objects,</div><div class='add'>+                                   record-&gt;remembered_normal_objects,</div><div class='add'>+                                   record-&gt;remembered_shady_objects</div><div class='ctx'> #endif</div><div class='ctx'> #if GC_PROFILE_DETAIL_MEMORY</div><div class='del'>-				   ,</div><div class='del'>-				   record-&gt;maxrss / 1024,</div><div class='del'>-				   record-&gt;minflt,</div><div class='del'>-				   record-&gt;majflt</div><div class='add'>+                                   ,</div><div class='add'>+                                   record-&gt;maxrss / 1024,</div><div class='add'>+                                   record-&gt;minflt,</div><div class='add'>+                                   record-&gt;majflt</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-		       ));</div><div class='del'>-	}</div><div class='add'>+                       ));</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -9430,7 +13920,7 @@ gc_profile_dump_on(VALUE out, VALUE (*append)(VALUE, VALUE))</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-gc_profile_result(void)</div><div class='add'>+gc_profile_result(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE str = rb_str_buf_new(0);</div><div class='ctx'>     gc_profile_dump_on(str, rb_str_buf_append);</div><div class='hunk'>@@ -9471,12 +13961,12 @@ gc_profile_total_time(VALUE self)</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'> </div><div class='ctx'>     if (objspace-&gt;profile.run &amp;&amp; objspace-&gt;profile.next_index &gt; 0) {</div><div class='del'>-	size_t i;</div><div class='del'>-	size_t count = objspace-&gt;profile.next_index;</div><div class='add'>+        size_t i;</div><div class='add'>+        size_t count = objspace-&gt;profile.next_index;</div><div class='ctx'> </div><div class='del'>-	for (i = 0; i &lt; count; i++) {</div><div class='del'>-	    time += objspace-&gt;profile.records[i].gc_time;</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; count; i++) {</div><div class='add'>+            time += objspace-&gt;profile.records[i].gc_time;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return DBL2NUM(time);</div><div class='ctx'> }</div><div class='hunk'>@@ -9485,26 +13975,26 @@ gc_profile_total_time(VALUE self)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *    GC::Profiler.enabled?	-&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  The current status of GC profile mode.</div><div class='add'>+ *  The current status of \GC profile mode.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> gc_profile_enable_get(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='del'>-    return objspace-&gt;profile.run ? Qtrue : Qfalse;</div><div class='add'>+    return RBOOL(objspace-&gt;profile.run);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *    GC::Profiler.enable	-&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Starts the GC profiler.</div><div class='add'>+ *  Starts the \GC profiler.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-gc_profile_enable(void)</div><div class='add'>+gc_profile_enable(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'>     objspace-&gt;profile.run = TRUE;</div><div class='hunk'>@@ -9516,12 +14006,12 @@ gc_profile_enable(void)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *    GC::Profiler.disable	-&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Stops the GC profiler.</div><div class='add'>+ *  Stops the \GC profiler.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-gc_profile_disable(void)</div><div class='add'>+gc_profile_disable(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'> </div><div class='hunk'>@@ -9539,35 +14029,36 @@ type_name(int type, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     switch (type) {</div><div class='ctx'> #define TYPE_NAME(t) case (t): return #t;</div><div class='del'>-	    TYPE_NAME(T_NONE);</div><div class='del'>-	    TYPE_NAME(T_OBJECT);</div><div class='del'>-	    TYPE_NAME(T_CLASS);</div><div class='del'>-	    TYPE_NAME(T_MODULE);</div><div class='del'>-	    TYPE_NAME(T_FLOAT);</div><div class='del'>-	    TYPE_NAME(T_STRING);</div><div class='del'>-	    TYPE_NAME(T_REGEXP);</div><div class='del'>-	    TYPE_NAME(T_ARRAY);</div><div class='del'>-	    TYPE_NAME(T_HASH);</div><div class='del'>-	    TYPE_NAME(T_STRUCT);</div><div class='del'>-	    TYPE_NAME(T_BIGNUM);</div><div class='del'>-	    TYPE_NAME(T_FILE);</div><div class='del'>-	    TYPE_NAME(T_MATCH);</div><div class='del'>-	    TYPE_NAME(T_COMPLEX);</div><div class='del'>-	    TYPE_NAME(T_RATIONAL);</div><div class='del'>-	    TYPE_NAME(T_NIL);</div><div class='del'>-	    TYPE_NAME(T_TRUE);</div><div class='del'>-	    TYPE_NAME(T_FALSE);</div><div class='del'>-	    TYPE_NAME(T_SYMBOL);</div><div class='del'>-	    TYPE_NAME(T_FIXNUM);</div><div class='del'>-	    TYPE_NAME(T_UNDEF);</div><div class='del'>-	    TYPE_NAME(T_IMEMO);</div><div class='del'>-	    TYPE_NAME(T_ICLASS);</div><div class='del'>-	    TYPE_NAME(T_ZOMBIE);</div><div class='add'>+            TYPE_NAME(T_NONE);</div><div class='add'>+            TYPE_NAME(T_OBJECT);</div><div class='add'>+            TYPE_NAME(T_CLASS);</div><div class='add'>+            TYPE_NAME(T_MODULE);</div><div class='add'>+            TYPE_NAME(T_FLOAT);</div><div class='add'>+            TYPE_NAME(T_STRING);</div><div class='add'>+            TYPE_NAME(T_REGEXP);</div><div class='add'>+            TYPE_NAME(T_ARRAY);</div><div class='add'>+            TYPE_NAME(T_HASH);</div><div class='add'>+            TYPE_NAME(T_STRUCT);</div><div class='add'>+            TYPE_NAME(T_BIGNUM);</div><div class='add'>+            TYPE_NAME(T_FILE);</div><div class='add'>+            TYPE_NAME(T_MATCH);</div><div class='add'>+            TYPE_NAME(T_COMPLEX);</div><div class='add'>+            TYPE_NAME(T_RATIONAL);</div><div class='add'>+            TYPE_NAME(T_NIL);</div><div class='add'>+            TYPE_NAME(T_TRUE);</div><div class='add'>+            TYPE_NAME(T_FALSE);</div><div class='add'>+            TYPE_NAME(T_SYMBOL);</div><div class='add'>+            TYPE_NAME(T_FIXNUM);</div><div class='add'>+            TYPE_NAME(T_UNDEF);</div><div class='add'>+            TYPE_NAME(T_IMEMO);</div><div class='add'>+            TYPE_NAME(T_ICLASS);</div><div class='add'>+            TYPE_NAME(T_MOVED);</div><div class='add'>+            TYPE_NAME(T_ZOMBIE);</div><div class='ctx'>       case T_DATA:</div><div class='del'>-	if (obj &amp;&amp; rb_objspace_data_type_name(obj)) {</div><div class='del'>-	    return rb_objspace_data_type_name(obj);</div><div class='del'>-	}</div><div class='del'>-	return "T_DATA";</div><div class='add'>+        if (obj &amp;&amp; rb_objspace_data_type_name(obj)) {</div><div class='add'>+            return rb_objspace_data_type_name(obj);</div><div class='add'>+        }</div><div class='add'>+        return "T_DATA";</div><div class='ctx'> #undef TYPE_NAME</div><div class='ctx'>     }</div><div class='ctx'>     return "unknown";</div><div class='hunk'>@@ -9579,8 +14070,8 @@ obj_type_name(VALUE obj)</div><div class='ctx'>     return type_name(TYPE(obj), obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static const char *</div><div class='del'>-method_type_name(rb_method_type_t type)</div><div class='add'>+const char *</div><div class='add'>+rb_method_type_name(rb_method_type_t type)</div><div class='ctx'> {</div><div class='ctx'>     switch (type) {</div><div class='ctx'>       case VM_METHOD_TYPE_ISEQ:           return "iseq";</div><div class='hunk'>@@ -9596,131 +14087,175 @@ method_type_name(rb_method_type_t type)</div><div class='ctx'>       case VM_METHOD_TYPE_UNDEF:          return "undef";</div><div class='ctx'>       case VM_METHOD_TYPE_NOTIMPLEMENTED: return "notimplemented";</div><div class='ctx'>     }</div><div class='del'>-    rb_bug("method_type_name: unreachable (type: %d)", type);</div><div class='add'>+    rb_bug("rb_method_type_name: unreachable (type: %d)", type);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* from array.c */</div><div class='del'>-# define ARY_SHARED_P(ary) \</div><div class='del'>-    (GC_ASSERT(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), \</div><div class='del'>-     FL_TEST((ary),ELTS_SHARED)!=0)</div><div class='del'>-# define ARY_EMBED_P(ary) \</div><div class='del'>-    (GC_ASSERT(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), \</div><div class='del'>-     FL_TEST((ary), RARRAY_EMBED_FLAG)!=0)</div><div class='del'>-</div><div class='ctx'> static void</div><div class='del'>-rb_raw_iseq_info(char *buff, const int buff_size, const rb_iseq_t *iseq)</div><div class='add'>+rb_raw_iseq_info(char *const buff, const size_t buff_size, const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    if (iseq-&gt;body &amp;&amp; iseq-&gt;body-&gt;location.label) {</div><div class='del'>-	VALUE path = rb_iseq_path(iseq);</div><div class='del'>-	VALUE n = iseq-&gt;body-&gt;location.first_lineno;</div><div class='del'>-	snprintf(buff, buff_size, "%s %s@%s:%d", buff,</div><div class='del'>-		 RSTRING_PTR(iseq-&gt;body-&gt;location.label),</div><div class='del'>-		 RSTRING_PTR(path),</div><div class='del'>-		 n ? FIX2INT(n) : 0 );</div><div class='add'>+    if (buff_size &gt; 0 &amp;&amp; ISEQ_BODY(iseq) &amp;&amp; ISEQ_BODY(iseq)-&gt;location.label &amp;&amp; !RB_TYPE_P(ISEQ_BODY(iseq)-&gt;location.pathobj, T_MOVED)) {</div><div class='add'>+        VALUE path = rb_iseq_path(iseq);</div><div class='add'>+        int n = ISEQ_BODY(iseq)-&gt;location.first_lineno;</div><div class='add'>+        snprintf(buff, buff_size, " %s@%s:%d",</div><div class='add'>+                 RSTRING_PTR(ISEQ_BODY(iseq)-&gt;location.label),</div><div class='add'>+                 RSTRING_PTR(path), n);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-const char *</div><div class='del'>-rb_raw_obj_info(char *buff, const int buff_size, VALUE obj)</div><div class='add'>+static int</div><div class='add'>+str_len_no_raise(VALUE str)</div><div class='add'>+{</div><div class='add'>+    long len = RSTRING_LEN(str);</div><div class='add'>+    if (len &lt; 0) return 0;</div><div class='add'>+    if (len &gt; INT_MAX) return INT_MAX;</div><div class='add'>+    return (int)len;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define BUFF_ARGS buff + pos, buff_size - pos</div><div class='add'>+#define APPEND_F(...) if ((pos += snprintf(BUFF_ARGS, "" __VA_ARGS__)) &gt;= buff_size) goto end</div><div class='add'>+#define APPEND_S(s) do { \</div><div class='add'>+        if ((pos + (int)rb_strlen_lit(s)) &gt;= buff_size) { \</div><div class='add'>+            goto end; \</div><div class='add'>+        } \</div><div class='add'>+        else { \</div><div class='add'>+            memcpy(buff + pos, (s), rb_strlen_lit(s) + 1); \</div><div class='add'>+        } \</div><div class='add'>+    } while (0)</div><div class='add'>+#define TF(c) ((c) != 0 ? "true" : "false")</div><div class='add'>+#define C(c, s) ((c) != 0 ? (s) : " ")</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+rb_raw_obj_info_common(char *const buff, const size_t buff_size, const VALUE obj)</div><div class='ctx'> {</div><div class='add'>+    size_t pos = 0;</div><div class='add'>+</div><div class='ctx'>     if (SPECIAL_CONST_P(obj)) {</div><div class='del'>-	snprintf(buff, buff_size, "%s", obj_type_name(obj));</div><div class='add'>+        APPEND_F("%s", obj_type_name(obj));</div><div class='ctx'> </div><div class='ctx'>         if (FIXNUM_P(obj)) {</div><div class='del'>-            snprintf(buff, buff_size, "%s %ld", buff, FIX2LONG(obj));</div><div class='add'>+            APPEND_F(" %ld", FIX2LONG(obj));</div><div class='ctx'>         }</div><div class='ctx'>         else if (SYMBOL_P(obj)) {</div><div class='del'>-            snprintf(buff, buff_size, "%s %s", buff, rb_id2name(SYM2ID(obj)));</div><div class='add'>+            APPEND_F(" %s", rb_id2name(SYM2ID(obj)));</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-#define TF(c) ((c) != 0 ? "true" : "false")</div><div class='del'>-#define C(c, s) ((c) != 0 ? (s) : " ")</div><div class='del'>-	const int type = BUILTIN_TYPE(obj);</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-	const int age = RVALUE_FLAGS_AGE(RBASIC(obj)-&gt;flags);</div><div class='add'>+        const int age = RVALUE_FLAGS_AGE(RBASIC(obj)-&gt;flags);</div><div class='ctx'> </div><div class='ctx'>         if (is_pointer_to_heap(&amp;rb_objspace, (void *)obj)) {</div><div class='del'>-            snprintf(buff, buff_size, "%p [%d%s%s%s%s] %s",</div><div class='add'>+            APPEND_F("%p [%d%s%s%s%s%s%s] %s ",</div><div class='ctx'>                      (void *)obj, age,</div><div class='ctx'>                      C(RVALUE_UNCOLLECTIBLE_BITMAP(obj),  "L"),</div><div class='ctx'>                      C(RVALUE_MARK_BITMAP(obj),           "M"),</div><div class='add'>+                     C(RVALUE_PIN_BITMAP(obj),            "P"),</div><div class='ctx'>                      C(RVALUE_MARKING_BITMAP(obj),        "R"),</div><div class='ctx'>                      C(RVALUE_WB_UNPROTECTED_BITMAP(obj), "U"),</div><div class='add'>+                     C(rb_objspace_garbage_object_p(obj), "G"),</div><div class='ctx'>                      obj_type_name(obj));</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='ctx'>             /* fake */</div><div class='del'>-            snprintf(buff, buff_size, "%p [%dXXXX] %s",</div><div class='add'>+            APPEND_F("%p [%dXXXX] %s",</div><div class='ctx'>                      (void *)obj, age,</div><div class='ctx'>                      obj_type_name(obj));</div><div class='ctx'>         }</div><div class='del'>-#else</div><div class='del'>-	snprintf(buff, buff_size, "%p [%s] %s",</div><div class='del'>-		 (void *)obj,</div><div class='del'>-		 C(RVALUE_MARK_BITMAP(obj),           "M"),</div><div class='del'>-		 obj_type_name(obj));</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-	if (internal_object_p(obj)) {</div><div class='del'>-	    /* ignore */</div><div class='del'>-	}</div><div class='del'>-	else if (RBASIC(obj)-&gt;klass == 0) {</div><div class='del'>-	    snprintf(buff, buff_size, "%s (temporary internal)", buff);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    VALUE class_path = rb_class_path_cached(RBASIC(obj)-&gt;klass);</div><div class='del'>-	    if (!NIL_P(class_path)) {</div><div class='del'>-		snprintf(buff, buff_size, "%s (%s)", buff, RSTRING_PTR(class_path));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+</div><div class='add'>+        if (internal_object_p(obj)) {</div><div class='add'>+            /* ignore */</div><div class='add'>+        }</div><div class='add'>+        else if (RBASIC(obj)-&gt;klass == 0) {</div><div class='add'>+            APPEND_S("(temporary internal)");</div><div class='add'>+        }</div><div class='add'>+        else if (RTEST(RBASIC(obj)-&gt;klass)) {</div><div class='add'>+            VALUE class_path = rb_class_path_cached(RBASIC(obj)-&gt;klass);</div><div class='add'>+            if (!NIL_P(class_path)) {</div><div class='add'>+                APPEND_F("(%s)", RSTRING_PTR(class_path));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> </div><div class='ctx'> #if GC_DEBUG</div><div class='del'>-	snprintf(buff, buff_size, "%s @%s:%d", buff, RANY(obj)-&gt;file, RANY(obj)-&gt;line);</div><div class='add'>+        APPEND_F("@%s:%d", RANY(obj)-&gt;file, RANY(obj)-&gt;line);</div><div class='ctx'> #endif</div><div class='add'>+    }</div><div class='add'>+  end:</div><div class='ctx'> </div><div class='del'>-	switch (type) {</div><div class='del'>-	  case T_NODE:</div><div class='del'>-	    UNEXPECTED_NODE(rb_raw_obj_info);</div><div class='del'>-	    break;</div><div class='del'>-	  case T_ARRAY:</div><div class='del'>-            if (FL_TEST(obj, ELTS_SHARED)) {</div><div class='del'>-                snprintf(buff, buff_size, "%s shared -&gt; %s", buff,</div><div class='del'>-                         rb_obj_info(RARRAY(obj)-&gt;as.heap.aux.shared));</div><div class='add'>+    return pos;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+rb_raw_obj_info_buitin_type(char *const buff, const size_t buff_size, const VALUE obj, size_t pos)</div><div class='add'>+{</div><div class='add'>+    if (LIKELY(pos &lt; buff_size) &amp;&amp; !SPECIAL_CONST_P(obj)) {</div><div class='add'>+        const enum ruby_value_type type = BUILTIN_TYPE(obj);</div><div class='add'>+</div><div class='add'>+        switch (type) {</div><div class='add'>+          case T_NODE:</div><div class='add'>+            UNEXPECTED_NODE(rb_raw_obj_info);</div><div class='add'>+            break;</div><div class='add'>+          case T_ARRAY:</div><div class='add'>+            if (ARY_SHARED_P(obj)) {</div><div class='add'>+                APPEND_S("shared -&gt; ");</div><div class='add'>+                rb_raw_obj_info(BUFF_ARGS, ARY_SHARED_ROOT(obj));</div><div class='ctx'>             }</div><div class='del'>-            else if (FL_TEST(obj, RARRAY_EMBED_FLAG)) {</div><div class='del'>-                snprintf(buff, buff_size, "%s [%s%s] len: %d (embed)", buff,</div><div class='add'>+            else if (ARY_EMBED_P(obj)) {</div><div class='add'>+                APPEND_F("[%s%s] len: %ld (embed)",</div><div class='ctx'>                          C(ARY_EMBED_P(obj),  "E"),</div><div class='ctx'>                          C(ARY_SHARED_P(obj), "S"),</div><div class='del'>-                         (int)RARRAY_LEN(obj));</div><div class='add'>+                         RARRAY_LEN(obj));</div><div class='ctx'>             }</div><div class='ctx'>             else {</div><div class='del'>-                snprintf(buff, buff_size, "%s [%s%s%s] len: %d, capa:%d ptr:%p", buff,</div><div class='add'>+                APPEND_F("[%s%s%s] len: %ld, capa:%ld ptr:%p",</div><div class='ctx'>                          C(ARY_EMBED_P(obj),  "E"),</div><div class='ctx'>                          C(ARY_SHARED_P(obj), "S"),</div><div class='ctx'>                          C(RARRAY_TRANSIENT_P(obj), "T"),</div><div class='del'>-                         (int)RARRAY_LEN(obj),</div><div class='del'>-                         ARY_EMBED_P(obj) ? -1 : (int)RARRAY(obj)-&gt;as.heap.aux.capa,</div><div class='add'>+                         RARRAY_LEN(obj),</div><div class='add'>+                         ARY_EMBED_P(obj) ? -1L : RARRAY(obj)-&gt;as.heap.aux.capa,</div><div class='ctx'>                          (void *)RARRAY_CONST_PTR_TRANSIENT(obj));</div><div class='ctx'>             }</div><div class='del'>-	    break;</div><div class='del'>-	  case T_STRING: {</div><div class='del'>-	    snprintf(buff, buff_size, "%s %s", buff, RSTRING_PTR(obj));</div><div class='del'>-	    break;</div><div class='del'>-	  }</div><div class='add'>+            break;</div><div class='add'>+          case T_STRING: {</div><div class='add'>+            if (STR_SHARED_P(obj)) {</div><div class='add'>+                APPEND_F(" [shared] len: %ld", RSTRING_LEN(obj));</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                if (STR_EMBED_P(obj)) APPEND_S(" [embed]");</div><div class='add'>+</div><div class='add'>+                APPEND_F(" len: %ld, capa: %" PRIdSIZE, RSTRING_LEN(obj), rb_str_capacity(obj));</div><div class='add'>+            }</div><div class='add'>+            APPEND_F(" \"%.*s\"", str_len_no_raise(obj), RSTRING_PTR(obj));</div><div class='add'>+            break;</div><div class='add'>+          }</div><div class='add'>+          case T_SYMBOL: {</div><div class='add'>+            VALUE fstr = RSYMBOL(obj)-&gt;fstr;</div><div class='add'>+            ID id = RSYMBOL(obj)-&gt;id;</div><div class='add'>+            if (RB_TYPE_P(fstr, T_STRING)) {</div><div class='add'>+                APPEND_F(":%s id:%d", RSTRING_PTR(fstr), (unsigned int)id);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                APPEND_F("(%p) id:%d", (void *)fstr, (unsigned int)id);</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+          }</div><div class='add'>+          case T_MOVED: {</div><div class='add'>+            APPEND_F("-&gt; %p", (void*)rb_gc_location(obj));</div><div class='add'>+            break;</div><div class='add'>+          }</div><div class='ctx'>           case T_HASH: {</div><div class='del'>-              snprintf(buff, buff_size, "%s [%c%c] %d", buff,</div><div class='del'>-                       RHASH_AR_TABLE_P(obj) ? 'A' : 'S',</div><div class='del'>-                       RHASH_TRANSIENT_P(obj) ? 'T' : ' ',</div><div class='del'>-                       (int)RHASH_SIZE(obj));</div><div class='del'>-              break;</div><div class='add'>+            APPEND_F("[%c%c] %"PRIdSIZE,</div><div class='add'>+                     RHASH_AR_TABLE_P(obj) ? 'A' : 'S',</div><div class='add'>+                     RHASH_TRANSIENT_P(obj) ? 'T' : ' ',</div><div class='add'>+                     RHASH_SIZE(obj));</div><div class='add'>+            break;</div><div class='ctx'>           }</div><div class='ctx'>           case T_CLASS:</div><div class='ctx'>           case T_MODULE:</div><div class='ctx'>             {</div><div class='ctx'>                 VALUE class_path = rb_class_path_cached(obj);</div><div class='ctx'>                 if (!NIL_P(class_path)) {</div><div class='del'>-                    snprintf(buff, buff_size, "%s %s", buff, RSTRING_PTR(class_path));</div><div class='add'>+                    APPEND_F("%s", RSTRING_PTR(class_path));</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    APPEND_S("(annon)");</div><div class='ctx'>                 }</div><div class='ctx'>                 break;</div><div class='ctx'>             }</div><div class='hunk'>@@ -9728,110 +14263,166 @@ rb_raw_obj_info(char *buff, const int buff_size, VALUE obj)</div><div class='ctx'>             {</div><div class='ctx'>                 VALUE class_path = rb_class_path_cached(RBASIC_CLASS(obj));</div><div class='ctx'>                 if (!NIL_P(class_path)) {</div><div class='del'>-                    snprintf(buff, buff_size, "%s src:%s", buff, RSTRING_PTR(class_path));</div><div class='add'>+                    APPEND_F("src:%s", RSTRING_PTR(class_path));</div><div class='ctx'>                 }</div><div class='ctx'>                 break;</div><div class='ctx'>             }</div><div class='ctx'>           case T_OBJECT:</div><div class='ctx'>             {</div><div class='del'>-                uint32_t len = ROBJECT_NUMIV(obj);</div><div class='add'>+                uint32_t len = ROBJECT_IV_CAPACITY(obj);</div><div class='ctx'> </div><div class='ctx'>                 if (RANY(obj)-&gt;as.basic.flags &amp; ROBJECT_EMBED) {</div><div class='del'>-                    snprintf(buff, buff_size, "%s (embed) len:%d", buff, len);</div><div class='add'>+                    APPEND_F("(embed) len:%d", len);</div><div class='ctx'>                 }</div><div class='ctx'>                 else {</div><div class='ctx'>                     VALUE *ptr = ROBJECT_IVPTR(obj);</div><div class='del'>-                    snprintf(buff, buff_size, "%s len:%d ptr:%p", buff, len, (void *)ptr);</div><div class='add'>+                    APPEND_F("len:%d ptr:%p", len, (void *)ptr);</div><div class='ctx'>                 }</div><div class='ctx'>             }</div><div class='ctx'>             break;</div><div class='del'>-	  case T_DATA: {</div><div class='del'>-	    const struct rb_block *block;</div><div class='del'>-	    const rb_iseq_t *iseq;</div><div class='del'>-	    if (rb_obj_is_proc(obj) &amp;&amp;</div><div class='del'>-		(block = vm_proc_block(obj)) != NULL &amp;&amp;</div><div class='del'>-		(vm_block_type(block) == block_type_iseq) &amp;&amp;</div><div class='del'>-		(iseq = vm_block_iseq(block)) != NULL) {</div><div class='del'>-		rb_raw_iseq_info(buff, buff_size, iseq);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		const char * const type_name = rb_objspace_data_type_name(obj);</div><div class='del'>-		if (type_name) {</div><div class='del'>-		    snprintf(buff, buff_size, "%s %s", buff, type_name);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	  }</div><div class='del'>-	  case T_IMEMO: {</div><div class='del'>-	    const char *imemo_name = "\0";</div><div class='del'>-	    switch (imemo_type(obj)) {</div><div class='del'>-#define IMEMO_NAME(x) case imemo_##x: imemo_name = #x; break;</div><div class='del'>-		IMEMO_NAME(env);</div><div class='del'>-		IMEMO_NAME(cref);</div><div class='del'>-		IMEMO_NAME(svar);</div><div class='del'>-		IMEMO_NAME(throw_data);</div><div class='del'>-		IMEMO_NAME(ifunc);</div><div class='del'>-		IMEMO_NAME(memo);</div><div class='del'>-		IMEMO_NAME(ment);</div><div class='del'>-		IMEMO_NAME(iseq);</div><div class='del'>-		IMEMO_NAME(tmpbuf);</div><div class='del'>-                IMEMO_NAME(ast);</div><div class='del'>-                IMEMO_NAME(parser_strterm);</div><div class='del'>-#undef IMEMO_NAME</div><div class='del'>-	      default: UNREACHABLE;</div><div class='del'>-	    }</div><div class='del'>-	    snprintf(buff, buff_size, "%s %s", buff, imemo_name);</div><div class='del'>-</div><div class='del'>-	    switch (imemo_type(obj)) {</div><div class='del'>-	      case imemo_ment: {</div><div class='del'>-		const rb_method_entry_t *me = &amp;RANY(obj)-&gt;as.imemo.ment;</div><div class='del'>-		if (me-&gt;def) {</div><div class='del'>-		    snprintf(buff, buff_size, "%s (called_id: %s, type: %s, alias: %d, owner: %s, defined_class: %s)", buff,</div><div class='del'>-			     rb_id2name(me-&gt;called_id),</div><div class='del'>-			     method_type_name(me-&gt;def-&gt;type),</div><div class='del'>-			     me-&gt;def-&gt;alias_count,</div><div class='del'>-			     obj_info(me-&gt;owner),</div><div class='del'>-			     obj_info(me-&gt;defined_class));</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    snprintf(buff, buff_size, "%s", rb_id2name(me-&gt;called_id));</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      }</div><div class='del'>-	      case imemo_iseq: {</div><div class='del'>-		const rb_iseq_t *iseq = (const rb_iseq_t *)obj;</div><div class='del'>-		rb_raw_iseq_info(buff, buff_size, iseq);</div><div class='del'>-		break;</div><div class='del'>-	      }</div><div class='del'>-	      default:</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	  }</div><div class='del'>-	  default:</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+          case T_DATA: {</div><div class='add'>+            const struct rb_block *block;</div><div class='add'>+            const rb_iseq_t *iseq;</div><div class='add'>+            if (rb_obj_is_proc(obj) &amp;&amp;</div><div class='add'>+                (block = vm_proc_block(obj)) != NULL &amp;&amp;</div><div class='add'>+                (vm_block_type(block) == block_type_iseq) &amp;&amp;</div><div class='add'>+                (iseq = vm_block_iseq(block)) != NULL) {</div><div class='add'>+                rb_raw_iseq_info(BUFF_ARGS, iseq);</div><div class='add'>+            }</div><div class='add'>+            else if (rb_ractor_p(obj)) {</div><div class='add'>+                rb_ractor_t *r = (void *)DATA_PTR(obj);</div><div class='add'>+                if (r) {</div><div class='add'>+                    APPEND_F("r:%d", r-&gt;pub.id);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                const char * const type_name = rb_objspace_data_type_name(obj);</div><div class='add'>+                if (type_name) {</div><div class='add'>+                    APPEND_F("%s", type_name);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+          }</div><div class='add'>+          case T_IMEMO: {</div><div class='add'>+            APPEND_F("&lt;%s&gt; ", rb_imemo_name(imemo_type(obj)));</div><div class='add'>+</div><div class='add'>+            switch (imemo_type(obj)) {</div><div class='add'>+              case imemo_ment:</div><div class='add'>+                {</div><div class='add'>+                    const rb_method_entry_t *me = &amp;RANY(obj)-&gt;as.imemo.ment;</div><div class='add'>+</div><div class='add'>+                    APPEND_F(":%s (%s%s%s%s) type:%s aliased:%d owner:%p defined_class:%p",</div><div class='add'>+                             rb_id2name(me-&gt;called_id),</div><div class='add'>+                             METHOD_ENTRY_VISI(me) == METHOD_VISI_PUBLIC ?  "pub" :</div><div class='add'>+                             METHOD_ENTRY_VISI(me) == METHOD_VISI_PRIVATE ? "pri" : "pro",</div><div class='add'>+                             METHOD_ENTRY_COMPLEMENTED(me) ? ",cmp" : "",</div><div class='add'>+                             METHOD_ENTRY_CACHED(me) ? ",cc" : "",</div><div class='add'>+                             METHOD_ENTRY_INVALIDATED(me) ? ",inv" : "",</div><div class='add'>+                             me-&gt;def ? rb_method_type_name(me-&gt;def-&gt;type) : "NULL",</div><div class='add'>+                             me-&gt;def ? me-&gt;def-&gt;aliased : -1,</div><div class='add'>+                             (void *)me-&gt;owner, // obj_info(me-&gt;owner),</div><div class='add'>+                             (void *)me-&gt;defined_class); //obj_info(me-&gt;defined_class)));</div><div class='add'>+</div><div class='add'>+                    if (me-&gt;def) {</div><div class='add'>+                        switch (me-&gt;def-&gt;type) {</div><div class='add'>+                          case VM_METHOD_TYPE_ISEQ:</div><div class='add'>+                            APPEND_S(" (iseq:");</div><div class='add'>+                            rb_raw_obj_info(BUFF_ARGS, (VALUE)me-&gt;def-&gt;body.iseq.iseqptr);</div><div class='add'>+                            APPEND_S(")");</div><div class='add'>+                            break;</div><div class='add'>+                          default:</div><div class='add'>+                            break;</div><div class='add'>+                        }</div><div class='add'>+                    }</div><div class='add'>+</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+              case imemo_iseq: {</div><div class='add'>+                const rb_iseq_t *iseq = (const rb_iseq_t *)obj;</div><div class='add'>+                rb_raw_iseq_info(BUFF_ARGS, iseq);</div><div class='add'>+                break;</div><div class='add'>+              }</div><div class='add'>+              case imemo_callinfo:</div><div class='add'>+                {</div><div class='add'>+                    const struct rb_callinfo *ci = (const struct rb_callinfo *)obj;</div><div class='add'>+                    APPEND_F("(mid:%s, flag:%x argc:%d, kwarg:%s)",</div><div class='add'>+                             rb_id2name(vm_ci_mid(ci)),</div><div class='add'>+                             vm_ci_flag(ci),</div><div class='add'>+                             vm_ci_argc(ci),</div><div class='add'>+                             vm_ci_kwarg(ci) ? "available" : "NULL");</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+              case imemo_callcache:</div><div class='add'>+                {</div><div class='add'>+                    const struct rb_callcache *cc = (const struct rb_callcache *)obj;</div><div class='add'>+                    VALUE class_path = cc-&gt;klass ? rb_class_path_cached(cc-&gt;klass) : Qnil;</div><div class='add'>+                    const rb_callable_method_entry_t *cme = vm_cc_cme(cc);</div><div class='add'>+</div><div class='add'>+                    APPEND_F("(klass:%s cme:%s%s (%p) call:%p",</div><div class='add'>+                             NIL_P(class_path) ? (cc-&gt;klass ? "??" : "&lt;NULL&gt;") : RSTRING_PTR(class_path),</div><div class='add'>+                             cme ? rb_id2name(cme-&gt;called_id) : "&lt;NULL&gt;",</div><div class='add'>+                             cme ? (METHOD_ENTRY_INVALIDATED(cme) ? " [inv]" : "") : "",</div><div class='add'>+                             (void *)cme,</div><div class='add'>+                             (void *)vm_cc_call(cc));</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+              default:</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+          }</div><div class='add'>+          default:</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+  end:</div><div class='add'>+</div><div class='add'>+    return pos;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #undef TF</div><div class='ctx'> #undef C</div><div class='add'>+</div><div class='add'>+const char *</div><div class='add'>+rb_raw_obj_info(char *const buff, const size_t buff_size, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    asan_unpoisoning_object(obj) {</div><div class='add'>+        size_t pos = rb_raw_obj_info_common(buff, buff_size, obj);</div><div class='add'>+        pos = rb_raw_obj_info_buitin_type(buff, buff_size, obj, pos);</div><div class='add'>+        if (pos &gt;= buff_size) {} // truncated</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     return buff;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#undef APPEND_S</div><div class='add'>+#undef APPEND_F</div><div class='add'>+#undef BUFF_ARGS</div><div class='add'>+</div><div class='ctx'> #if RGENGC_OBJ_INFO</div><div class='ctx'> #define OBJ_INFO_BUFFERS_NUM  10</div><div class='ctx'> #define OBJ_INFO_BUFFERS_SIZE 0x100</div><div class='del'>-static int obj_info_buffers_index = 0;</div><div class='add'>+static rb_atomic_t obj_info_buffers_index = 0;</div><div class='ctx'> static char obj_info_buffers[OBJ_INFO_BUFFERS_NUM][OBJ_INFO_BUFFERS_SIZE];</div><div class='ctx'> </div><div class='del'>-static const char *</div><div class='del'>-obj_info(VALUE obj)</div><div class='add'>+/* Increments *var atomically and resets *var to 0 when maxval is</div><div class='add'>+ * reached. Returns the wraparound old *var value (0...maxval). */</div><div class='add'>+static rb_atomic_t</div><div class='add'>+atomic_inc_wraparound(rb_atomic_t *var, const rb_atomic_t maxval)</div><div class='ctx'> {</div><div class='del'>-    const int index = obj_info_buffers_index++;</div><div class='del'>-    char *const buff = &amp;obj_info_buffers[index][0];</div><div class='del'>-</div><div class='del'>-    if (obj_info_buffers_index &gt;= OBJ_INFO_BUFFERS_NUM) {</div><div class='del'>-	obj_info_buffers_index = 0;</div><div class='add'>+    rb_atomic_t oldval = RUBY_ATOMIC_FETCH_ADD(*var, 1);</div><div class='add'>+    if (UNLIKELY(oldval &gt;= maxval - 1)) { // wraparound *var</div><div class='add'>+        const rb_atomic_t newval = oldval + 1;</div><div class='add'>+        RUBY_ATOMIC_CAS(*var, newval, newval % maxval);</div><div class='add'>+        oldval %= maxval;</div><div class='ctx'>     }</div><div class='add'>+    return oldval;</div><div class='add'>+}</div><div class='ctx'> </div><div class='add'>+static const char *</div><div class='add'>+obj_info(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    rb_atomic_t index = atomic_inc_wraparound(&amp;obj_info_buffers_index, OBJ_INFO_BUFFERS_NUM);</div><div class='add'>+    char *const buff = obj_info_buffers[index];</div><div class='ctx'>     return rb_raw_obj_info(buff, OBJ_INFO_BUFFERS_SIZE, obj);</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='hunk'>@@ -9845,12 +14436,7 @@ obj_info(VALUE obj)</div><div class='ctx'> MJIT_FUNC_EXPORTED const char *</div><div class='ctx'> rb_obj_info(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    if (!rb_special_const_p(obj)) {</div><div class='del'>-	return obj_info(obj);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	return obj_type_name(obj);</div><div class='del'>-    }</div><div class='add'>+    return obj_info(obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -9860,6 +14446,13 @@ rb_obj_info_dump(VALUE obj)</div><div class='ctx'>     fprintf(stderr, "rb_obj_info_dump: %s\n", rb_raw_obj_info(buff, 0x100, obj));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+MJIT_FUNC_EXPORTED void</div><div class='add'>+rb_obj_info_dump_loc(VALUE obj, const char *file, int line, const char *func)</div><div class='add'>+{</div><div class='add'>+    char buff[0x100];</div><div class='add'>+    fprintf(stderr, "&lt;OBJ_INFO:%s@%s:%d&gt; %s\n", func, file, line, rb_raw_obj_info(buff, 0x100, obj));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #if GC_DEBUG</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -9869,6 +14462,12 @@ rb_gcdebug_print_obj_condition(VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     fprintf(stderr, "created at: %s:%d\n", RANY(obj)-&gt;file, RANY(obj)-&gt;line);</div><div class='ctx'> </div><div class='add'>+    if (BUILTIN_TYPE(obj) == T_MOVED) {</div><div class='add'>+        fprintf(stderr, "moved?: true\n");</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        fprintf(stderr, "moved?: false\n");</div><div class='add'>+    }</div><div class='ctx'>     if (is_pointer_to_heap(objspace, (void *)obj)) {</div><div class='ctx'>         fprintf(stderr, "pointer to heap?: true\n");</div><div class='ctx'>     }</div><div class='hunk'>@@ -9878,14 +14477,13 @@ rb_gcdebug_print_obj_condition(VALUE obj)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     fprintf(stderr, "marked?      : %s\n", MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(obj), obj) ? "true" : "false");</div><div class='del'>-#if USE_RGENGC</div><div class='add'>+    fprintf(stderr, "pinned?      : %s\n", MARKED_IN_BITMAP(GET_HEAP_PINNED_BITS(obj), obj) ? "true" : "false");</div><div class='ctx'>     fprintf(stderr, "age?         : %d\n", RVALUE_AGE(obj));</div><div class='ctx'>     fprintf(stderr, "old?         : %s\n", RVALUE_OLD_P(obj) ? "true" : "false");</div><div class='ctx'>     fprintf(stderr, "WB-protected?: %s\n", RVALUE_WB_UNPROTECTED(obj) ? "false" : "true");</div><div class='ctx'>     fprintf(stderr, "remembered?  : %s\n", RVALUE_REMEMBERED(obj) ? "true" : "false");</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-    if (is_lazy_sweeping(heap_eden)) {</div><div class='add'>+    if (is_lazy_sweeping(objspace)) {</div><div class='ctx'>         fprintf(stderr, "lazy sweeping?: true\n");</div><div class='ctx'>         fprintf(stderr, "swept?: %s\n", is_swept_object(objspace, obj) ? "done" : "not yet");</div><div class='ctx'>     }</div><div class='hunk'>@@ -9895,7 +14493,7 @@ rb_gcdebug_print_obj_condition(VALUE obj)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-gcdebug_sentinel(VALUE obj, VALUE name)</div><div class='add'>+gcdebug_sentinel(RB_BLOCK_CALL_FUNC_ARGLIST(obj, name))</div><div class='ctx'> {</div><div class='ctx'>     fprintf(stderr, "WARNING: object %s(%p) is inadvertently collected\n", (char *)name, (void *)obj);</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -9923,7 +14521,7 @@ rb_gcdebug_add_stress_to_class(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     rb_objspace_t *objspace = &amp;rb_objspace;</div><div class='ctx'> </div><div class='ctx'>     if (!stress_to_class) {</div><div class='del'>-	stress_to_class = rb_ary_tmp_new(argc);</div><div class='add'>+        stress_to_class = rb_ary_hidden_new(argc);</div><div class='ctx'>     }</div><div class='ctx'>     rb_ary_cat(stress_to_class, argv, argc);</div><div class='ctx'>     return self;</div><div class='hunk'>@@ -9944,12 +14542,12 @@ rb_gcdebug_remove_stress_to_class(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='ctx'>     if (stress_to_class) {</div><div class='del'>-	for (i = 0; i &lt; argc; ++i) {</div><div class='del'>-	    rb_ary_delete_same(stress_to_class, argv[i]);</div><div class='del'>-	}</div><div class='del'>-	if (RARRAY_LEN(stress_to_class) == 0) {</div><div class='del'>-	    stress_to_class = 0;</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; argc; ++i) {</div><div class='add'>+            rb_ary_delete_same(stress_to_class, argv[i]);</div><div class='add'>+        }</div><div class='add'>+        if (RARRAY_LEN(stress_to_class) == 0) {</div><div class='add'>+            stress_to_class = 0;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -9964,9 +14562,9 @@ rb_gcdebug_remove_stress_to_class(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *</div><div class='ctx'>  *  ObjectSpace also provides support for object finalizers, procs that will be</div><div class='ctx'>  *  called when a specific object is about to be destroyed by garbage</div><div class='del'>- *  collection.</div><div class='del'>- *</div><div class='del'>- *     require 'objspace'</div><div class='add'>+ *  collection. See the documentation for</div><div class='add'>+ *  &lt;code&gt;ObjectSpace.define_finalizer&lt;/code&gt; for important information on</div><div class='add'>+ *  how to use this method correctly.</div><div class='ctx'>  *</div><div class='ctx'>  *     a = "A"</div><div class='ctx'>  *     b = "B"</div><div class='hunk'>@@ -9974,6 +14572,9 @@ rb_gcdebug_remove_stress_to_class(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *     ObjectSpace.define_finalizer(a, proc {|id| puts "Finalizer one on #{id}" })</div><div class='ctx'>  *     ObjectSpace.define_finalizer(b, proc {|id| puts "Finalizer two on #{id}" })</div><div class='ctx'>  *</div><div class='add'>+ *     a = nil</div><div class='add'>+ *     b = nil</div><div class='add'>+ *</div><div class='ctx'>  *  _produces:_</div><div class='ctx'>  *</div><div class='ctx'>  *     Finalizer two on 537763470</div><div class='hunk'>@@ -10008,16 +14609,23 @@ rb_gcdebug_remove_stress_to_class(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>  *  See also GC.count, GC.malloc_allocated_size and GC.malloc_allocations</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='add'>+#include "gc.rbinc"</div><div class='ctx'> /*</div><div class='del'>- *  The GC module provides an interface to Ruby's mark and</div><div class='del'>- *  sweep garbage collection mechanism.</div><div class='del'>- *</div><div class='del'>- *  Some of the underlying methods are also available via the ObjectSpace</div><div class='del'>- *  module.</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *      GC.using_rvargc? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  You may obtain information about the operation of the GC through</div><div class='del'>- *  GC::Profiler.</div><div class='add'>+ *  Returns true if using experimental feature Variable Width Allocation, false</div><div class='add'>+ *  otherwise.</div><div class='ctx'>  */</div><div class='add'>+static VALUE</div><div class='add'>+gc_using_rvargc_p(VALUE mod)</div><div class='add'>+{</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    return Qtrue;</div><div class='add'>+#else</div><div class='add'>+    return Qfalse;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_GC(void)</div><div class='hunk'>@@ -10028,21 +14636,17 @@ Init_GC(void)</div><div class='ctx'>     VALUE gc_constants;</div><div class='ctx'> </div><div class='ctx'>     rb_mGC = rb_define_module("GC");</div><div class='del'>-    rb_define_singleton_method(rb_mGC, "start", gc_start_internal, -1);</div><div class='del'>-    rb_define_singleton_method(rb_mGC, "enable", rb_gc_enable, 0);</div><div class='del'>-    rb_define_singleton_method(rb_mGC, "disable", rb_gc_disable, 0);</div><div class='del'>-    rb_define_singleton_method(rb_mGC, "stress", gc_stress_get, 0);</div><div class='del'>-    rb_define_singleton_method(rb_mGC, "stress=", gc_stress_set_m, 1);</div><div class='del'>-    rb_define_singleton_method(rb_mGC, "count", gc_count, 0);</div><div class='del'>-    rb_define_singleton_method(rb_mGC, "stat", gc_stat, -1);</div><div class='del'>-    rb_define_singleton_method(rb_mGC, "latest_gc_info", gc_latest_gc_info, -1);</div><div class='del'>-    rb_define_method(rb_mGC, "garbage_collect", gc_start_internal, -1);</div><div class='ctx'> </div><div class='ctx'>     gc_constants = rb_hash_new();</div><div class='add'>+    rb_hash_aset(gc_constants, ID2SYM(rb_intern("DEBUG")), RBOOL(GC_DEBUG));</div><div class='add'>+    rb_hash_aset(gc_constants, ID2SYM(rb_intern("BASE_SLOT_SIZE")), SIZET2NUM(BASE_SLOT_SIZE - RVALUE_OVERHEAD));</div><div class='add'>+    rb_hash_aset(gc_constants, ID2SYM(rb_intern("RVALUE_OVERHEAD")), SIZET2NUM(RVALUE_OVERHEAD));</div><div class='ctx'>     rb_hash_aset(gc_constants, ID2SYM(rb_intern("RVALUE_SIZE")), SIZET2NUM(sizeof(RVALUE)));</div><div class='ctx'>     rb_hash_aset(gc_constants, ID2SYM(rb_intern("HEAP_PAGE_OBJ_LIMIT")), SIZET2NUM(HEAP_PAGE_OBJ_LIMIT));</div><div class='ctx'>     rb_hash_aset(gc_constants, ID2SYM(rb_intern("HEAP_PAGE_BITMAP_SIZE")), SIZET2NUM(HEAP_PAGE_BITMAP_SIZE));</div><div class='del'>-    rb_hash_aset(gc_constants, ID2SYM(rb_intern("HEAP_PAGE_BITMAP_PLANES")), SIZET2NUM(HEAP_PAGE_BITMAP_PLANES));</div><div class='add'>+    rb_hash_aset(gc_constants, ID2SYM(rb_intern("HEAP_PAGE_SIZE")), SIZET2NUM(HEAP_PAGE_SIZE));</div><div class='add'>+    rb_hash_aset(gc_constants, ID2SYM(rb_intern("SIZE_POOL_COUNT")), LONG2FIX(SIZE_POOL_COUNT));</div><div class='add'>+    rb_hash_aset(gc_constants, ID2SYM(rb_intern("RVARGC_MAX_ALLOCATE_SIZE")), LONG2FIX(size_pool_slot_size(SIZE_POOL_COUNT - 1)));</div><div class='ctx'>     OBJ_FREEZE(gc_constants);</div><div class='ctx'>     /* internal constants */</div><div class='ctx'>     rb_define_const(rb_mGC, "INTERNAL_CONSTANTS", gc_constants);</div><div class='hunk'>@@ -10058,13 +14662,13 @@ Init_GC(void)</div><div class='ctx'>     rb_define_singleton_method(rb_mProfiler, "total_time", gc_profile_total_time, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_mObjSpace = rb_define_module("ObjectSpace");</div><div class='add'>+</div><div class='ctx'>     rb_define_module_function(rb_mObjSpace, "each_object", os_each_obj, -1);</div><div class='del'>-    rb_define_module_function(rb_mObjSpace, "garbage_collect", gc_start_internal, -1);</div><div class='ctx'> </div><div class='ctx'>     rb_define_module_function(rb_mObjSpace, "define_finalizer", define_final, -1);</div><div class='ctx'>     rb_define_module_function(rb_mObjSpace, "undefine_finalizer", undefine_final, 1);</div><div class='ctx'> </div><div class='del'>-    rb_define_module_function(rb_mObjSpace, "_id2ref", id2ref, 1);</div><div class='add'>+    rb_define_module_function(rb_mObjSpace, "_id2ref", os_id2ref, 1);</div><div class='ctx'> </div><div class='ctx'>     rb_vm_register_special_exception(ruby_error_nomemory, rb_eNoMemError, "failed to allocate memory");</div><div class='ctx'> </div><div class='hunk'>@@ -10074,58 +14678,75 @@ Init_GC(void)</div><div class='ctx'>     rb_define_module_function(rb_mObjSpace, "count_objects", count_objects, -1);</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE rb_cWeakMap = rb_define_class_under(rb_mObjSpace, "WeakMap", rb_cObject);</div><div class='del'>-	rb_define_alloc_func(rb_cWeakMap, wmap_allocate);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "[]=", wmap_aset, 2);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "[]", wmap_aref, 1);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "include?", wmap_has_key, 1);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "member?", wmap_has_key, 1);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "key?", wmap_has_key, 1);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "inspect", wmap_inspect, 0);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "each", wmap_each, 0);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "each_pair", wmap_each, 0);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "each_key", wmap_each_key, 0);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "each_value", wmap_each_value, 0);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "keys", wmap_keys, 0);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "values", wmap_values, 0);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "size", wmap_size, 0);</div><div class='del'>-	rb_define_method(rb_cWeakMap, "length", wmap_size, 0);</div><div class='del'>-	rb_define_private_method(rb_cWeakMap, "finalize", wmap_finalize, 1);</div><div class='del'>-	rb_include_module(rb_cWeakMap, rb_mEnumerable);</div><div class='add'>+        VALUE rb_cWeakMap = rb_define_class_under(rb_mObjSpace, "WeakMap", rb_cObject);</div><div class='add'>+        rb_define_alloc_func(rb_cWeakMap, wmap_allocate);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "[]=", wmap_aset, 2);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "[]", wmap_aref, 1);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "include?", wmap_has_key, 1);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "member?", wmap_has_key, 1);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "key?", wmap_has_key, 1);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "inspect", wmap_inspect, 0);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "each", wmap_each, 0);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "each_pair", wmap_each, 0);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "each_key", wmap_each_key, 0);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "each_value", wmap_each_value, 0);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "keys", wmap_keys, 0);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "values", wmap_values, 0);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "size", wmap_size, 0);</div><div class='add'>+        rb_define_method(rb_cWeakMap, "length", wmap_size, 0);</div><div class='add'>+        rb_include_module(rb_cWeakMap, rb_mEnumerable);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* internal methods */</div><div class='del'>-    rb_define_singleton_method(rb_mGC, "verify_internal_consistency", gc_verify_internal_consistency, 0);</div><div class='add'>+    rb_define_singleton_method(rb_mGC, "verify_internal_consistency", gc_verify_internal_consistency_m, 0);</div><div class='ctx'>     rb_define_singleton_method(rb_mGC, "verify_transient_heap_internal_consistency", gc_verify_transient_heap_internal_consistency, 0);</div><div class='ctx'> #if MALLOC_ALLOCATED_SIZE</div><div class='ctx'>     rb_define_singleton_method(rb_mGC, "malloc_allocated_size", gc_malloc_allocated_size, 0);</div><div class='ctx'>     rb_define_singleton_method(rb_mGC, "malloc_allocations", gc_malloc_allocations, 0);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+    rb_define_singleton_method(rb_mGC, "using_rvargc?", gc_using_rvargc_p, 0);</div><div class='add'>+</div><div class='add'>+    if (GC_COMPACTION_SUPPORTED) {</div><div class='add'>+        rb_define_singleton_method(rb_mGC, "compact", gc_compact, 0);</div><div class='add'>+        rb_define_singleton_method(rb_mGC, "auto_compact", gc_get_auto_compact, 0);</div><div class='add'>+        rb_define_singleton_method(rb_mGC, "auto_compact=", gc_set_auto_compact, 1);</div><div class='add'>+        rb_define_singleton_method(rb_mGC, "latest_compact_info", gc_compact_stats, 0);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_define_singleton_method(rb_mGC, "compact", rb_f_notimplement, 0);</div><div class='add'>+        rb_define_singleton_method(rb_mGC, "auto_compact", rb_f_notimplement, 0);</div><div class='add'>+        rb_define_singleton_method(rb_mGC, "auto_compact=", rb_f_notimplement, 1);</div><div class='add'>+        rb_define_singleton_method(rb_mGC, "latest_compact_info", rb_f_notimplement, 0);</div><div class='add'>+        /* When !GC_COMPACTION_SUPPORTED, this method is not defined in gc.rb */</div><div class='add'>+        rb_define_singleton_method(rb_mGC, "verify_compaction_references", rb_f_notimplement, -1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'> #if GC_DEBUG_STRESS_TO_CLASS</div><div class='ctx'>     rb_define_singleton_method(rb_mGC, "add_stress_to_class", rb_gcdebug_add_stress_to_class, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_mGC, "remove_stress_to_class", rb_gcdebug_remove_stress_to_class, -1);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	VALUE opts;</div><div class='del'>-	/* GC build options */</div><div class='del'>-	rb_define_const(rb_mGC, "OPTS", opts = rb_ary_new());</div><div class='add'>+        VALUE opts;</div><div class='add'>+        /* \GC build options */</div><div class='add'>+        rb_define_const(rb_mGC, "OPTS", opts = rb_ary_new());</div><div class='ctx'> #define OPT(o) if (o) rb_ary_push(opts, rb_fstring_lit(#o))</div><div class='del'>-	OPT(GC_DEBUG);</div><div class='del'>-	OPT(USE_RGENGC);</div><div class='del'>-	OPT(RGENGC_DEBUG);</div><div class='del'>-	OPT(RGENGC_CHECK_MODE);</div><div class='del'>-	OPT(RGENGC_PROFILE);</div><div class='del'>-	OPT(RGENGC_ESTIMATE_OLDMALLOC);</div><div class='del'>-	OPT(GC_PROFILE_MORE_DETAIL);</div><div class='del'>-	OPT(GC_ENABLE_LAZY_SWEEP);</div><div class='del'>-	OPT(CALC_EXACT_MALLOC_SIZE);</div><div class='del'>-	OPT(MALLOC_ALLOCATED_SIZE);</div><div class='del'>-	OPT(MALLOC_ALLOCATED_SIZE_CHECK);</div><div class='del'>-	OPT(GC_PROFILE_DETAIL_MEMORY);</div><div class='add'>+        OPT(GC_DEBUG);</div><div class='add'>+        OPT(USE_RGENGC);</div><div class='add'>+        OPT(RGENGC_DEBUG);</div><div class='add'>+        OPT(RGENGC_CHECK_MODE);</div><div class='add'>+        OPT(RGENGC_PROFILE);</div><div class='add'>+        OPT(RGENGC_ESTIMATE_OLDMALLOC);</div><div class='add'>+        OPT(GC_PROFILE_MORE_DETAIL);</div><div class='add'>+        OPT(GC_ENABLE_LAZY_SWEEP);</div><div class='add'>+        OPT(CALC_EXACT_MALLOC_SIZE);</div><div class='add'>+        OPT(MALLOC_ALLOCATED_SIZE);</div><div class='add'>+        OPT(MALLOC_ALLOCATED_SIZE_CHECK);</div><div class='add'>+        OPT(GC_PROFILE_DETAIL_MEMORY);</div><div class='add'>+        OPT(GC_COMPACTION_SUPPORTED);</div><div class='ctx'> #undef OPT</div><div class='del'>-	OBJ_FREEZE(opts);</div><div class='add'>+        OBJ_FREEZE(opts);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='head'>diff --git a/gc.h b/gc.h<br/>index 2c91e06620..23218c1a9e 100644<br/>--- a/<a href='/ruby.git/tree/gc.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>gc.h</a><br/>+++ b/<a href='/ruby.git/tree/gc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>gc.h</a></div><div class='hunk'>@@ -1,17 +1,32 @@</div><div class='del'>-</div><div class='ctx'> #ifndef RUBY_GC_H</div><div class='ctx'> #define RUBY_GC_H 1</div><div class='add'>+#include "ruby/ruby.h"</div><div class='ctx'> </div><div class='ctx'> #if defined(__x86_64__) &amp;&amp; !defined(_ILP32) &amp;&amp; defined(__GNUC__)</div><div class='ctx'> #define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("movq\t%%rsp, %0" : "=r" (*(p)))</div><div class='ctx'> #elif defined(__i386) &amp;&amp; defined(__GNUC__)</div><div class='ctx'> #define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("movl\t%%esp, %0" : "=r" (*(p)))</div><div class='add'>+#elif (defined(__powerpc__) || defined(__powerpc64__)) &amp;&amp; defined(__GNUC__) &amp;&amp; !defined(_AIX) &amp;&amp; !defined(__APPLE__) // Not Apple is NEEDED to unbreak ppc64 build on Darwin. Don't ask.</div><div class='add'>+#define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("mr\t%0, %%r1" : "=r" (*(p)))</div><div class='add'>+#elif (defined(__powerpc__) || defined(__powerpc64__)) &amp;&amp; defined(__GNUC__) &amp;&amp; defined(_AIX)</div><div class='add'>+#define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("mr %0,1" : "=r" (*(p)))</div><div class='add'>+#elif defined(__POWERPC__) &amp;&amp; defined(__APPLE__) // Darwin ppc and ppc64</div><div class='add'>+#define SET_MACHINE_STACK_END(p) __asm__ volatile("mr %0, r1" : "=r" (*(p)))</div><div class='add'>+#elif defined(__aarch64__) &amp;&amp; defined(__GNUC__)</div><div class='add'>+#define SET_MACHINE_STACK_END(p) __asm__ __volatile__ ("mov\t%0, sp" : "=r" (*(p)))</div><div class='ctx'> #else</div><div class='ctx'> NOINLINE(void rb_gc_set_stack_end(VALUE **stack_end_p));</div><div class='ctx'> #define SET_MACHINE_STACK_END(p) rb_gc_set_stack_end(p)</div><div class='ctx'> #define USE_CONSERVATIVE_STACK_END</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#define RB_GC_SAVE_MACHINE_CONTEXT(th)				\</div><div class='add'>+    do {							\</div><div class='add'>+        FLUSH_REGISTER_WINDOWS;					\</div><div class='add'>+        setjmp((th)-&gt;ec-&gt;machine.regs);				\</div><div class='add'>+        SET_MACHINE_STACK_END(&amp;(th)-&gt;ec-&gt;machine.stack_end);	\</div><div class='add'>+    } while (0)</div><div class='add'>+</div><div class='ctx'> /* for GC debug */</div><div class='ctx'> </div><div class='ctx'> #ifndef RUBY_MARK_FREE_DEBUG</div><div class='hunk'>@@ -24,20 +39,20 @@ extern int ruby_gc_debug_indent;</div><div class='ctx'> static inline void</div><div class='ctx'> rb_gc_debug_indent(void)</div><div class='ctx'> {</div><div class='del'>-    printf("%*s", ruby_gc_debug_indent, "");</div><div class='add'>+    ruby_debug_printf("%*s", ruby_gc_debug_indent, "");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='ctx'> rb_gc_debug_body(const char *mode, const char *msg, int st, void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     if (st == 0) {</div><div class='del'>-	ruby_gc_debug_indent--;</div><div class='add'>+        ruby_gc_debug_indent--;</div><div class='ctx'>     }</div><div class='ctx'>     rb_gc_debug_indent();</div><div class='del'>-    printf("%s: %s %s (%p)\n", mode, st ? "-&gt;" : "&lt;-", msg, ptr);</div><div class='add'>+    ruby_debug_printf("%s: %s %s (%p)\n", mode, st ? "-&gt;" : "&lt;-", msg, ptr);</div><div class='ctx'> </div><div class='ctx'>     if (st) {</div><div class='del'>-	ruby_gc_debug_indent++;</div><div class='add'>+        ruby_gc_debug_indent++;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     fflush(stdout);</div><div class='hunk'>@@ -47,7 +62,7 @@ rb_gc_debug_body(const char *mode, const char *msg, int st, void *ptr)</div><div class='ctx'> #define RUBY_MARK_LEAVE(msg) rb_gc_debug_body("mark", (msg), 0, ptr)</div><div class='ctx'> #define RUBY_FREE_ENTER(msg) rb_gc_debug_body("free", (msg), 1, ptr)</div><div class='ctx'> #define RUBY_FREE_LEAVE(msg) rb_gc_debug_body("free", (msg), 0, ptr)</div><div class='del'>-#define RUBY_GC_INFO         rb_gc_debug_indent(); printf</div><div class='add'>+#define RUBY_GC_INFO         rb_gc_debug_indent(), ruby_debug_printf</div><div class='ctx'> </div><div class='ctx'> #else</div><div class='ctx'> #define RUBY_MARK_ENTER(msg)</div><div class='hunk'>@@ -57,6 +72,10 @@ rb_gc_debug_body(const char *mode, const char *msg, int st, void *ptr)</div><div class='ctx'> #define RUBY_GC_INFO if(0)printf</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#define RUBY_MARK_MOVABLE_UNLESS_NULL(ptr) do { \</div><div class='add'>+    VALUE markobj = (ptr); \</div><div class='add'>+    if (RTEST(markobj)) {rb_gc_mark_movable(markobj);} \</div><div class='add'>+} while (0)</div><div class='ctx'> #define RUBY_MARK_UNLESS_NULL(ptr) do { \</div><div class='ctx'>     VALUE markobj = (ptr); \</div><div class='ctx'>     if (RTEST(markobj)) {rb_gc_mark(markobj);} \</div><div class='hunk'>@@ -71,12 +90,20 @@ rb_gc_debug_body(const char *mode, const char *msg, int st, void *ptr)</div><div class='ctx'> RUBY_EXTERN int ruby_stack_grow_direction;</div><div class='ctx'> int ruby_get_stack_grow_direction(volatile VALUE *addr);</div><div class='ctx'> # define stack_growup_p(x) (			\</div><div class='del'>-	(ruby_stack_grow_direction ?		\</div><div class='del'>-	 ruby_stack_grow_direction :		\</div><div class='del'>-	 ruby_get_stack_grow_direction(x)) &gt; 0)</div><div class='add'>+        (ruby_stack_grow_direction ?		\</div><div class='add'>+         ruby_stack_grow_direction :		\</div><div class='add'>+         ruby_get_stack_grow_direction(x)) &gt; 0)</div><div class='ctx'> # define STACK_UPPER(x, a, b) (stack_growup_p(x) ? (a) : (b))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+  STACK_GROW_DIR_DETECTION is used with STACK_DIR_UPPER.</div><div class='add'>+</div><div class='add'>+  On most normal systems, stacks grow from high address to lower address. In</div><div class='add'>+  this case, STACK_DIR_UPPER(a, b) will return (b), but on exotic systems where</div><div class='add'>+  the stack grows UP (from low address to high address), it will return (a).</div><div class='add'>+*/</div><div class='add'>+</div><div class='ctx'> #if STACK_GROW_DIRECTION</div><div class='ctx'> #define STACK_GROW_DIR_DETECTION</div><div class='ctx'> #define STACK_DIR_UPPER(a,b) STACK_UPPER(0, (a), (b))</div><div class='hunk'>@@ -87,11 +114,12 @@ int ruby_get_stack_grow_direction(volatile VALUE *addr);</div><div class='ctx'> #define IS_STACK_DIR_UPPER() STACK_DIR_UPPER(1,0)</div><div class='ctx'> </div><div class='ctx'> const char *rb_obj_info(VALUE obj);</div><div class='del'>-const char *rb_raw_obj_info(char *buff, const int buff_size, VALUE obj);</div><div class='del'>-void rb_obj_info_dump(VALUE obj);</div><div class='add'>+const char *rb_raw_obj_info(char *const buff, const size_t buff_size, VALUE obj);</div><div class='ctx'> </div><div class='ctx'> struct rb_thread_struct;</div><div class='ctx'> </div><div class='add'>+size_t rb_size_pool_slot_size(unsigned char pool_id);</div><div class='add'>+</div><div class='ctx'> RUBY_SYMBOL_EXPORT_BEGIN</div><div class='ctx'> </div><div class='ctx'> /* exports for objspace module */</div><div class='hunk'>@@ -101,7 +129,6 @@ void rb_objspace_reachable_objects_from_root(void (func)(const char *category, V</div><div class='ctx'> int rb_objspace_markable_object_p(VALUE obj);</div><div class='ctx'> int rb_objspace_internal_object_p(VALUE obj);</div><div class='ctx'> int rb_objspace_marked_object_p(VALUE obj);</div><div class='del'>-int rb_objspace_garbage_object_p(VALUE obj);</div><div class='ctx'> </div><div class='ctx'> void rb_objspace_each_objects(</div><div class='ctx'>     int (*callback)(void *start, void *end, size_t stride, void *data),</div><div class='hunk'>@@ -111,6 +138,10 @@ void rb_objspace_each_objects_without_setup(</div><div class='ctx'>     int (*callback)(void *, void *, size_t, void *),</div><div class='ctx'>     void *data);</div><div class='ctx'> </div><div class='add'>+size_t rb_gc_obj_slot_size(VALUE obj);</div><div class='add'>+</div><div class='add'>+VALUE rb_gc_disable_no_rest(void);</div><div class='add'>+</div><div class='ctx'> RUBY_SYMBOL_EXPORT_END</div><div class='ctx'> </div><div class='ctx'> #endif /* RUBY_GC_H */</div><div class='head'>diff --git a/gc.rb b/gc.rb<br/>new file mode 100644<br/>index 0000000000..57aeeb9131<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/gc.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>gc.rb</a></div><div class='hunk'>@@ -0,0 +1,296 @@</div><div class='add'>+# for gc.c</div><div class='add'>+</div><div class='add'>+#  The GC module provides an interface to Ruby's mark and</div><div class='add'>+#  sweep garbage collection mechanism.</div><div class='add'>+#</div><div class='add'>+#  Some of the underlying methods are also available via the ObjectSpace</div><div class='add'>+#  module.</div><div class='add'>+#</div><div class='add'>+#  You may obtain information about the operation of the \GC through</div><div class='add'>+#  GC::Profiler.</div><div class='add'>+module GC</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     GC.start                     -&gt; nil</div><div class='add'>+  #     ObjectSpace.garbage_collect  -&gt; nil</div><div class='add'>+  #     include GC; garbage_collect  -&gt; nil</div><div class='add'>+  #     GC.start(full_mark: true, immediate_sweep: true)           -&gt; nil</div><div class='add'>+  #     ObjectSpace.garbage_collect(full_mark: true, immediate_sweep: true) -&gt; nil</div><div class='add'>+  #     include GC; garbage_collect(full_mark: true, immediate_sweep: true) -&gt; nil</div><div class='add'>+  #</div><div class='add'>+  #  Initiates garbage collection, even if manually disabled.</div><div class='add'>+  #</div><div class='add'>+  #  This method is defined with keyword arguments that default to true:</div><div class='add'>+  #</div><div class='add'>+  #     def GC.start(full_mark: true, immediate_sweep: true); end</div><div class='add'>+  #</div><div class='add'>+  #  Use full_mark: false to perform a minor \GC.</div><div class='add'>+  #  Use immediate_sweep: false to defer sweeping (use lazy sweep).</div><div class='add'>+  #</div><div class='add'>+  #  Note: These keyword arguments are implementation and version dependent. They</div><div class='add'>+  #  are not guaranteed to be future-compatible, and may be ignored if the</div><div class='add'>+  #  underlying implementation does not support them.</div><div class='add'>+  def self.start full_mark: true, immediate_mark: true, immediate_sweep: true</div><div class='add'>+    Primitive.gc_start_internal full_mark, immediate_mark, immediate_sweep, false</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def garbage_collect full_mark: true, immediate_mark: true, immediate_sweep: true</div><div class='add'>+    Primitive.gc_start_internal full_mark, immediate_mark, immediate_sweep, false</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     GC.enable    -&gt; true or false</div><div class='add'>+  #</div><div class='add'>+  #  Enables garbage collection, returning +true+ if garbage</div><div class='add'>+  #  collection was previously disabled.</div><div class='add'>+  #</div><div class='add'>+  #     GC.disable   #=&gt; false</div><div class='add'>+  #     GC.enable    #=&gt; true</div><div class='add'>+  #     GC.enable    #=&gt; false</div><div class='add'>+  #</div><div class='add'>+  def self.enable</div><div class='add'>+    Primitive.gc_enable</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     GC.disable    -&gt; true or false</div><div class='add'>+  #</div><div class='add'>+  #  Disables garbage collection, returning +true+ if garbage</div><div class='add'>+  #  collection was already disabled.</div><div class='add'>+  #</div><div class='add'>+  #     GC.disable   #=&gt; false</div><div class='add'>+  #     GC.disable   #=&gt; true</div><div class='add'>+  def self.disable</div><div class='add'>+    Primitive.gc_disable</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #    GC.stress	    -&gt; integer, true or false</div><div class='add'>+  #</div><div class='add'>+  #  Returns current status of \GC stress mode.</div><div class='add'>+  def self.stress</div><div class='add'>+    Primitive.gc_stress_get</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #    GC.stress = flag          -&gt; flag</div><div class='add'>+  #</div><div class='add'>+  #  Updates the \GC stress mode.</div><div class='add'>+  #</div><div class='add'>+  #  When stress mode is enabled, the \GC is invoked at every \GC opportunity:</div><div class='add'>+  #  all memory and object allocations.</div><div class='add'>+  #</div><div class='add'>+  #  Enabling stress mode will degrade performance, it is only for debugging.</div><div class='add'>+  #</div><div class='add'>+  #  flag can be true, false, or an integer bit-ORed following flags.</div><div class='add'>+  #    0x01:: no major GC</div><div class='add'>+  #    0x02:: no immediate sweep</div><div class='add'>+  #    0x04:: full mark after malloc/calloc/realloc</div><div class='add'>+  def self.stress=(flag)</div><div class='add'>+    Primitive.gc_stress_set_m flag</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     GC.count -&gt; Integer</div><div class='add'>+  #</div><div class='add'>+  #  The number of times \GC occurred.</div><div class='add'>+  #</div><div class='add'>+  #  It returns the number of times \GC occurred since the process started.</div><div class='add'>+  def self.count</div><div class='add'>+    Primitive.gc_count</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     GC.stat -&gt; Hash</div><div class='add'>+  #     GC.stat(hash) -&gt; Hash</div><div class='add'>+  #     GC.stat(:key) -&gt; Numeric</div><div class='add'>+  #</div><div class='add'>+  #  Returns a Hash containing information about the \GC.</div><div class='add'>+  #</div><div class='add'>+  #  The contents of the hash are implementation specific and may change in</div><div class='add'>+  #  the future without notice.</div><div class='add'>+  #</div><div class='add'>+  #  The hash includes information about internal statistics about \GC such as:</div><div class='add'>+  #</div><div class='add'>+  #  [count]</div><div class='add'>+  #    The total number of garbage collections ran since application start</div><div class='add'>+  #    (count includes both minor and major garbage collections)</div><div class='add'>+  #  [time]</div><div class='add'>+  #    The total time spent in garbage collections (in milliseconds)</div><div class='add'>+  #  [heap_allocated_pages]</div><div class='add'>+  #    The total number of `:heap_eden_pages` + `:heap_tomb_pages`</div><div class='add'>+  #  [heap_sorted_length]</div><div class='add'>+  #    The number of pages that can fit into the buffer that holds references to</div><div class='add'>+  #    all pages</div><div class='add'>+  #  [heap_allocatable_pages]</div><div class='add'>+  #    The total number of pages the application could allocate without additional \GC</div><div class='add'>+  #  [heap_available_slots]</div><div class='add'>+  #    The total number of slots in all `:heap_allocated_pages`</div><div class='add'>+  #  [heap_live_slots]</div><div class='add'>+  #    The total number of slots which contain live objects</div><div class='add'>+  #  [heap_free_slots]</div><div class='add'>+  #    The total number of slots which do not contain live objects</div><div class='add'>+  #  [heap_final_slots]</div><div class='add'>+  #    The total number of slots with pending finalizers to be run</div><div class='add'>+  #  [heap_marked_slots]</div><div class='add'>+  #    The total number of objects marked in the last \GC</div><div class='add'>+  #  [heap_eden_pages]</div><div class='add'>+  #    The total number of pages which contain at least one live slot</div><div class='add'>+  #  [heap_tomb_pages]</div><div class='add'>+  #    The total number of pages which do not contain any live slots</div><div class='add'>+  #  [total_allocated_pages]</div><div class='add'>+  #    The cumulative number of pages allocated since application start</div><div class='add'>+  #  [total_freed_pages]</div><div class='add'>+  #    The cumulative number of pages freed since application start</div><div class='add'>+  #  [total_allocated_objects]</div><div class='add'>+  #    The cumulative number of objects allocated since application start</div><div class='add'>+  #  [total_freed_objects]</div><div class='add'>+  #    The cumulative number of objects freed since application start</div><div class='add'>+  #  [malloc_increase_bytes]</div><div class='add'>+  #    Amount of memory allocated on the heap for objects. Decreased by any \GC</div><div class='add'>+  #  [malloc_increase_bytes_limit]</div><div class='add'>+  #    When `:malloc_increase_bytes` crosses this limit, \GC is triggered</div><div class='add'>+  #  [minor_gc_count]</div><div class='add'>+  #    The total number of minor garbage collections run since process start</div><div class='add'>+  #  [major_gc_count]</div><div class='add'>+  #    The total number of major garbage collections run since process start</div><div class='add'>+  #  [compact_count]</div><div class='add'>+  #    The total number of compactions run since process start</div><div class='add'>+  #  [read_barrier_faults]</div><div class='add'>+  #    The total number of times the read barrier was triggered during</div><div class='add'>+  #    compaction</div><div class='add'>+  #  [total_moved_objects]</div><div class='add'>+  #    The total number of objects compaction has moved</div><div class='add'>+  #  [remembered_wb_unprotected_objects]</div><div class='add'>+  #    The total number of objects without write barriers</div><div class='add'>+  #  [remembered_wb_unprotected_objects_limit]</div><div class='add'>+  #    When `:remembered_wb_unprotected_objects` crosses this limit,</div><div class='add'>+  #    major \GC is triggered</div><div class='add'>+  #  [old_objects]</div><div class='add'>+  #    Number of live, old objects which have survived at least 3 garbage collections</div><div class='add'>+  #  [old_objects_limit]</div><div class='add'>+  #    When `:old_objects` crosses this limit, major \GC is triggered</div><div class='add'>+  #  [oldmalloc_increase_bytes]</div><div class='add'>+  #    Amount of memory allocated on the heap for objects. Decreased by major \GC</div><div class='add'>+  #  [oldmalloc_increase_bytes_limit]</div><div class='add'>+  #    When `:old_malloc_increase_bytes` crosses this limit, major \GC is triggered</div><div class='add'>+  #</div><div class='add'>+  #  If the optional argument, hash, is given,</div><div class='add'>+  #  it is overwritten and returned.</div><div class='add'>+  #  This is intended to avoid probe effect.</div><div class='add'>+  #</div><div class='add'>+  #  This method is only expected to work on CRuby.</div><div class='add'>+  def self.stat hash_or_key = nil</div><div class='add'>+    Primitive.gc_stat hash_or_key</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    GC.stat_heap -&gt; Hash</div><div class='add'>+  #    GC.stat_heap(nil, hash) -&gt; Hash</div><div class='add'>+  #    GC.stat_heap(heap_name) -&gt; Hash</div><div class='add'>+  #    GC.stat_heap(heap_name, hash) -&gt; Hash</div><div class='add'>+  #    GC.stat_heap(heap_name, :key) -&gt; Numeric</div><div class='add'>+  #</div><div class='add'>+  # Returns information for memory pools in the \GC.</div><div class='add'>+  #</div><div class='add'>+  # If the first optional argument, +heap_name+, is passed in and not +nil+, it</div><div class='add'>+  # returns a +Hash+ containing information about the particular memory pool.</div><div class='add'>+  # Otherwise, it will return a +Hash+ with memory pool names as keys and</div><div class='add'>+  # a +Hash+ containing information about the memory pool as values.</div><div class='add'>+  #</div><div class='add'>+  # If the second optional argument, +hash_or_key+, is given as +Hash+, it will</div><div class='add'>+  # be overwritten and returned. This is intended to avoid the probe effect.</div><div class='add'>+  #</div><div class='add'>+  # If both optional arguments are passed in and the second optional argument is</div><div class='add'>+  # a symbol, it will return a +Numeric+ of the value for the particular memory</div><div class='add'>+  # pool.</div><div class='add'>+  #</div><div class='add'>+  # On CRuby, +heap_name+ is of the type +Integer+ but may be of type +String+</div><div class='add'>+  # on other implementations.</div><div class='add'>+  #</div><div class='add'>+  # The contents of the hash are implementation specific and may change in</div><div class='add'>+  # the future without notice.</div><div class='add'>+  #</div><div class='add'>+  # If the optional argument, hash, is given, it is overwritten and returned.</div><div class='add'>+  #</div><div class='add'>+  # This method is only expected to work on CRuby.</div><div class='add'>+  def self.stat_heap heap_name = nil, hash_or_key = nil</div><div class='add'>+    Primitive.gc_stat_heap heap_name, hash_or_key</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #     GC.latest_gc_info -&gt; hash</div><div class='add'>+  #     GC.latest_gc_info(hash) -&gt; hash</div><div class='add'>+  #     GC.latest_gc_info(:major_by) -&gt; :malloc</div><div class='add'>+  #</div><div class='add'>+  # Returns information about the most recent garbage collection.</div><div class='add'>+  #</div><div class='add'>+  # If the optional argument, hash, is given,</div><div class='add'>+  # it is overwritten and returned.</div><div class='add'>+  # This is intended to avoid probe effect.</div><div class='add'>+  def self.latest_gc_info hash_or_key = nil</div><div class='add'>+    Primitive.gc_latest_gc_info hash_or_key</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  if respond_to?(:compact)</div><div class='add'>+    # call-seq:</div><div class='add'>+    #    GC.verify_compaction_references(toward: nil, double_heap: false) -&gt; hash</div><div class='add'>+    #</div><div class='add'>+    # Verify compaction reference consistency.</div><div class='add'>+    #</div><div class='add'>+    # This method is implementation specific.  During compaction, objects that</div><div class='add'>+    # were moved are replaced with T_MOVED objects.  No object should have a</div><div class='add'>+    # reference to a T_MOVED object after compaction.</div><div class='add'>+    #</div><div class='add'>+    # This function expands the heap to ensure room to move all objects,</div><div class='add'>+    # compacts the heap to make sure everything moves, updates all references,</div><div class='add'>+    # then performs a full \GC.  If any object contains a reference to a T_MOVED</div><div class='add'>+    # object, that object should be pushed on the mark stack, and will</div><div class='add'>+    # make a SEGV.</div><div class='add'>+    def self.verify_compaction_references(toward: nil, double_heap: false, expand_heap: false)</div><div class='add'>+      Primitive.gc_verify_compaction_references(double_heap, expand_heap, toward == :empty)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    GC.measure_total_time = true/false</div><div class='add'>+  #</div><div class='add'>+  # Enable to measure \GC time.</div><div class='add'>+  # You can get the result with &lt;tt&gt;GC.stat(:time)&lt;/tt&gt;.</div><div class='add'>+  # Note that \GC time measurement can cause some performance overhead.</div><div class='add'>+  def self.measure_total_time=(flag)</div><div class='add'>+    Primitive.cstmt! %{</div><div class='add'>+      rb_objspace.flags.measure_gc = RTEST(flag) ? TRUE : FALSE;</div><div class='add'>+      return flag;</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    GC.measure_total_time -&gt; true/false</div><div class='add'>+  #</div><div class='add'>+  # Return measure_total_time flag (default: +true+).</div><div class='add'>+  # Note that measurement can affect the application performance.</div><div class='add'>+  def self.measure_total_time</div><div class='add'>+    Primitive.cexpr! %{</div><div class='add'>+      RBOOL(rb_objspace.flags.measure_gc)</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    GC.total_time -&gt; int</div><div class='add'>+  #</div><div class='add'>+  # Return measured \GC total time in nano seconds.</div><div class='add'>+  def self.total_time</div><div class='add'>+    Primitive.cexpr! %{</div><div class='add'>+      ULL2NUM(rb_objspace.profile.total_time_ns)</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+module ObjectSpace</div><div class='add'>+  def garbage_collect full_mark: true, immediate_mark: true, immediate_sweep: true</div><div class='add'>+    Primitive.gc_start_internal full_mark, immediate_mark, immediate_sweep, false</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module_function :garbage_collect</div><div class='add'>+end</div><div class='head'>diff --git a/gem_prelude.rb b/gem_prelude.rb<br/>index be9c41933c..f382021ca3 100644<br/>--- a/<a href='/ruby.git/tree/gem_prelude.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>gem_prelude.rb</a><br/>+++ b/<a href='/ruby.git/tree/gem_prelude.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>gem_prelude.rb</a></div><div class='hunk'>@@ -1,8 +1,26 @@</div><div class='del'>-if defined?(Gem)</div><div class='del'>-  require 'rubygems.rb'</div><div class='del'>-  begin</div><div class='del'>-    gem 'did_you_mean'</div><div class='del'>-    require 'did_you_mean'</div><div class='del'>-  rescue Gem::LoadError, LoadError</div><div class='del'>-  end if defined?(DidYouMean)</div><div class='del'>-end</div><div class='add'>+begin</div><div class='add'>+  require 'rubygems'</div><div class='add'>+rescue LoadError =&gt; e</div><div class='add'>+  raise unless e.path == 'rubygems'</div><div class='add'>+</div><div class='add'>+  warn "`RubyGems' were not loaded."</div><div class='add'>+end if defined?(Gem)</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  require 'error_highlight'</div><div class='add'>+rescue LoadError</div><div class='add'>+  warn "`error_highlight' was not loaded."</div><div class='add'>+end if defined?(ErrorHighlight)</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  require 'did_you_mean'</div><div class='add'>+rescue LoadError</div><div class='add'>+  warn "`did_you_mean' was not loaded."</div><div class='add'>+end if defined?(DidYouMean)</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  require 'syntax_suggest/core_ext'</div><div class='add'>+rescue LoadError</div><div class='add'>+  warn "`syntax_suggest' was not loaded."</div><div class='add'>+end if defined?(SyntaxSuggest)</div><div class='add'>+</div><div class='head'>diff --git a/gems/bundled_gems b/gems/bundled_gems<br/>index 2230b9a0f6..d37d869d41 100644<br/>--- a/<a href='/ruby.git/tree/gems/bundled_gems?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>gems/bundled_gems</a><br/>+++ b/<a href='/ruby.git/tree/gems/bundled_gems?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>gems/bundled_gems</a></div><div class='hunk'>@@ -1,7 +1,16 @@</div><div class='del'>-did_you_mean 1.3.0 https://github.com/yuki24/did_you_mean</div><div class='del'>-minitest 5.11.3 https://github.com/seattlerb/minitest</div><div class='del'>-net-telnet 0.2.0 https://github.com/ruby/net-telnet</div><div class='del'>-power_assert 1.1.3 https://github.com/k-tsj/power_assert</div><div class='del'>-rake 12.3.2 https://github.com/ruby/rake</div><div class='del'>-test-unit 3.2.9 https://github.com/test-unit/test-unit</div><div class='del'>-xmlrpc 0.3.0 https://github.com/ruby/xmlrpc</div><div class='add'>+# gem-name version-to-bundle repository-url [optional-commit-hash-to-test-or-defaults-to-v-version]</div><div class='add'>+minitest        5.25.1  https://github.com/seattlerb/minitest</div><div class='add'>+power_assert    2.0.3   https://github.com/ruby/power_assert</div><div class='add'>+rake            13.0.6  https://github.com/ruby/rake</div><div class='add'>+test-unit       3.5.7   https://github.com/test-unit/test-unit</div><div class='add'>+rexml           3.3.9   https://github.com/ruby/rexml</div><div class='add'>+rss             0.3.1   https://github.com/ruby/rss</div><div class='add'>+net-ftp         0.2.1   https://github.com/ruby/net-ftp</div><div class='add'>+net-imap        0.3.9   https://github.com/ruby/net-imap</div><div class='add'>+net-pop         0.1.2   https://github.com/ruby/net-pop</div><div class='add'>+net-smtp        0.3.4   https://github.com/ruby/net-smtp</div><div class='add'>+matrix          0.4.2   https://github.com/ruby/matrix</div><div class='add'>+prime           0.1.2   https://github.com/ruby/prime</div><div class='add'>+rbs             2.8.2   https://github.com/ruby/rbs</div><div class='add'>+typeprof        0.21.3  https://github.com/ruby/typeprof</div><div class='add'>+debug           1.7.1   https://github.com/ruby/debug</div><div class='head'>diff --git a/gems/lib/core_assertions.rb b/gems/lib/core_assertions.rb<br/>new file mode 100644<br/>index 0000000000..7334063885<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/gems/lib/core_assertions.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>gems/lib/core_assertions.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+require_relative "../../tool/lib/core_assertions.rb"</div><div class='head'>diff --git a/gems/lib/envutil.rb b/gems/lib/envutil.rb<br/>new file mode 100644<br/>index 0000000000..d684c22cf2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/gems/lib/envutil.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>gems/lib/envutil.rb</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+require_relative "../../tool/lib/envutil.rb"</div><div class='head'>diff --git a/gems/lib/rake/extensiontask.rb b/gems/lib/rake/extensiontask.rb<br/>new file mode 100644<br/>index 0000000000..fdbe8d8874<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/gems/lib/rake/extensiontask.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>gems/lib/rake/extensiontask.rb</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+require "rake/tasklib" unless defined?(Rake::TaskLib)</div><div class='add'>+</div><div class='add'>+module Rake</div><div class='add'>+  class ExtensionTask &lt; TaskLib</div><div class='add'>+    def initialize(...)</div><div class='add'>+      task :compile do |args|</div><div class='add'>+        puts "Dummy `compile` task defined in #{__FILE__}"</div><div class='add'>+        puts "#{args.name} =&gt; #{args.prereqs.join(' ')}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/golf_prelude.rb b/golf_prelude.rb<br/>index 204f659b0e..a13d3f71bc 100644<br/>--- a/<a href='/ruby.git/tree/golf_prelude.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>golf_prelude.rb</a><br/>+++ b/<a href='/ruby.git/tree/golf_prelude.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>golf_prelude.rb</a></div><div class='hunk'>@@ -1,6 +1,7 @@</div><div class='ctx'> class Object</div><div class='ctx'>   @@golf_hash = {}</div><div class='ctx'> </div><div class='add'>+  verbose, $VERBOSE = $VERBOSE, nil</div><div class='ctx'>   def method_missing m, *a, &amp;b</div><div class='ctx'>     t = @@golf_hash[ [m, self.class] ] ||= matching_methods(m)[0]</div><div class='ctx'>     if t &amp;&amp; b</div><div class='hunk'>@@ -12,6 +13,7 @@ class Object</div><div class='ctx'>       t ? __send__(t, *a, &amp;b) : super</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='add'>+  $VERBOSE = verbose</div><div class='ctx'> </div><div class='ctx'>   def matching_methods(s = '', m = callable_methods)</div><div class='ctx'>     r = /^#{s.to_s.gsub(/./){"(.*?)" + Regexp.escape($&amp;)}}/</div><div class='head'>diff --git a/goruby.c b/goruby.c<br/>index ddb62562d4..5d45277207 100644<br/>--- a/<a href='/ruby.git/tree/goruby.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>goruby.c</a><br/>+++ b/<a href='/ruby.git/tree/goruby.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>goruby.c</a></div><div class='hunk'>@@ -1,4 +1,6 @@</div><div class='del'>-void Init_golf(void);</div><div class='add'>+static void Init_golf(void);</div><div class='add'>+static void *goruby_options(int argc, char **argv);</div><div class='add'>+static int goruby_run_node(void *arg);</div><div class='ctx'> #define ruby_options goruby_options</div><div class='ctx'> #define ruby_run_node goruby_run_node</div><div class='ctx'> #include "main.c"</div><div class='hunk'>@@ -17,6 +19,8 @@ RUBY_EXTERN void *ruby_options(int argc, char **argv);</div><div class='ctx'> RUBY_EXTERN int ruby_run_node(void*);</div><div class='ctx'> RUBY_EXTERN void ruby_init_ext(const char *name, void (*init)(void));</div><div class='ctx'> </div><div class='add'>+#include "golf_prelude.c"</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> init_golf(VALUE arg)</div><div class='ctx'> {</div><div class='hunk'>@@ -33,26 +37,24 @@ goruby_options(int argc, char **argv)</div><div class='ctx'>     void *ret;</div><div class='ctx'> </div><div class='ctx'>     if ((isatty(0) &amp;&amp; isatty(1) &amp;&amp; isatty(2)) &amp;&amp; (pipe(rw) == 0)) {</div><div class='del'>-	ssize_t n;</div><div class='del'>-	infd = dup(0);</div><div class='del'>-	if (infd &lt; 0) {</div><div class='del'>-	    close(rw[0]);</div><div class='del'>-	    close(rw[1]);</div><div class='del'>-	    goto no_irb;</div><div class='del'>-	}</div><div class='del'>-	dup2(rw[0], 0);</div><div class='del'>-	close(rw[0]);</div><div class='del'>-	n = write(rw[1], cmd, sizeof(cmd) - 1);</div><div class='del'>-	close(rw[1]);</div><div class='del'>-	ret = n &gt; 0 ? ruby_options(argc, argv) : NULL;</div><div class='del'>-	dup2(infd, 0);</div><div class='del'>-	close(infd);</div><div class='del'>-	return ret;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-      no_irb:</div><div class='del'>-	return ruby_options(argc, argv);</div><div class='add'>+        ssize_t n;</div><div class='add'>+        infd = dup(0);</div><div class='add'>+        if (infd &lt; 0) {</div><div class='add'>+            close(rw[0]);</div><div class='add'>+            close(rw[1]);</div><div class='add'>+            goto no_irb;</div><div class='add'>+        }</div><div class='add'>+        dup2(rw[0], 0);</div><div class='add'>+        close(rw[0]);</div><div class='add'>+        n = write(rw[1], cmd, sizeof(cmd) - 1);</div><div class='add'>+        close(rw[1]);</div><div class='add'>+        ret = n &gt; 0 ? ruby_options(argc, argv) : NULL;</div><div class='add'>+        dup2(infd, 0);</div><div class='add'>+        close(infd);</div><div class='add'>+        return ret;</div><div class='ctx'>     }</div><div class='add'>+  no_irb:</div><div class='add'>+    return ruby_options(argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='hunk'>@@ -60,7 +62,7 @@ goruby_run_node(void *arg)</div><div class='ctx'> {</div><div class='ctx'>     int state;</div><div class='ctx'>     if (NIL_P(rb_protect(init_golf, Qtrue, &amp;state))) {</div><div class='del'>-	return state == EXIT_SUCCESS ? EXIT_FAILURE : state;</div><div class='add'>+        return state == EXIT_SUCCESS ? EXIT_FAILURE : state;</div><div class='ctx'>     }</div><div class='ctx'>     return ruby_run_node(arg);</div><div class='ctx'> }</div><div class='head'>diff --git a/hash.c b/hash.c<br/>index 3bba88adc7..d2dce30624 100644<br/>--- a/<a href='/ruby.git/tree/hash.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>hash.c</a><br/>+++ b/<a href='/ruby.git/tree/hash.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>hash.c</a></div><div class='hunk'>@@ -11,18 +11,10 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby/encoding.h"</div><div class='del'>-#include "ruby/st.h"</div><div class='del'>-#include "ruby/util.h"</div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='ctx'> #include &lt;errno.h&gt;</div><div class='del'>-#include "probes.h"</div><div class='del'>-#include "id.h"</div><div class='del'>-#include "symbol.h"</div><div class='del'>-#include "gc.h"</div><div class='del'>-#include "debug_counter.h"</div><div class='del'>-#include "transient_heap.h"</div><div class='del'>-#include "ruby_assert.h"</div><div class='add'>+</div><div class='ctx'> #ifdef __APPLE__</div><div class='ctx'> # ifdef HAVE_CRT_EXTERNS_H</div><div class='ctx'> #  include &lt;crt_externs.h&gt;</div><div class='hunk'>@@ -31,17 +23,42 @@</div><div class='ctx'> # endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#include "debug_counter.h"</div><div class='add'>+#include "id.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/array.h"</div><div class='add'>+#include "internal/bignum.h"</div><div class='add'>+#include "internal/basic_operators.h"</div><div class='add'>+#include "internal/class.h"</div><div class='add'>+#include "internal/cont.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/proc.h"</div><div class='add'>+#include "internal/symbol.h"</div><div class='add'>+#include "internal/thread.h"</div><div class='add'>+#include "internal/time.h"</div><div class='add'>+#include "internal/vm.h"</div><div class='add'>+#include "probes.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "ruby_assert.h"</div><div class='add'>+#include "symbol.h"</div><div class='add'>+#include "transient_heap.h"</div><div class='add'>+#include "ruby/thread_native.h"</div><div class='add'>+#include "ruby/ractor.h"</div><div class='add'>+#include "vm_sync.h"</div><div class='add'>+</div><div class='ctx'> #ifndef HASH_DEBUG</div><div class='ctx'> #define HASH_DEBUG 0</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define HAS_EXTRA_STATES(hash, klass) ( \</div><div class='del'>-    ((klass = has_extra_methods(rb_obj_class(hash))) != 0) || \</div><div class='del'>-    FL_TEST((hash), FL_EXIVAR|FL_TAINT|HASH_PROC_DEFAULT) || \</div><div class='del'>-    !NIL_P(RHASH_IFNONE(hash)))</div><div class='add'>+#if HASH_DEBUG</div><div class='add'>+#include "gc.h"</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #define SET_DEFAULT(hash, ifnone) ( \</div><div class='del'>-    FL_UNSET_RAW(hash, HASH_PROC_DEFAULT), \</div><div class='add'>+    FL_UNSET_RAW(hash, RHASH_PROC_DEFAULT), \</div><div class='ctx'>     RHASH_SET_IFNONE(hash, ifnone))</div><div class='ctx'> </div><div class='ctx'> #define SET_PROC_DEFAULT(hash, proc) set_proc_default(hash, proc)</div><div class='hunk'>@@ -51,21 +68,9 @@</div><div class='ctx'> static inline void</div><div class='ctx'> copy_default(struct RHash *hash, const struct RHash *hash2)</div><div class='ctx'> {</div><div class='del'>-    hash-&gt;basic.flags &amp;= ~HASH_PROC_DEFAULT;</div><div class='del'>-    hash-&gt;basic.flags |= hash2-&gt;basic.flags &amp; HASH_PROC_DEFAULT;</div><div class='del'>-    RHASH_SET_IFNONE(hash, RHASH_IFNONE(hash2));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-has_extra_methods(VALUE klass)</div><div class='del'>-{</div><div class='del'>-    const VALUE base = rb_cHash;</div><div class='del'>-    VALUE c = klass;</div><div class='del'>-    while (c != base) {</div><div class='del'>-	if (rb_class_has_methods(c)) return klass;</div><div class='del'>-	c = RCLASS_SUPER(c);</div><div class='del'>-    }</div><div class='del'>-    return 0;</div><div class='add'>+    hash-&gt;basic.flags &amp;= ~RHASH_PROC_DEFAULT;</div><div class='add'>+    hash-&gt;basic.flags |= hash2-&gt;basic.flags &amp; RHASH_PROC_DEFAULT;</div><div class='add'>+    RHASH_SET_IFNONE(hash, RHASH_IFNONE((VALUE)hash2));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE rb_hash_s_try_convert(VALUE, VALUE);</div><div class='hunk'>@@ -89,7 +94,10 @@ rb_hash_freeze(VALUE hash)</div><div class='ctx'> VALUE rb_cHash;</div><div class='ctx'> </div><div class='ctx'> static VALUE envtbl;</div><div class='del'>-static ID id_hash, id_yield, id_default, id_flatten_bang;</div><div class='add'>+static ID id_hash, id_flatten_bang;</div><div class='add'>+static ID id_hash_iter_lev;</div><div class='add'>+</div><div class='add'>+#define id_default idDefault</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_hash_set_ifnone(VALUE hash, VALUE ifnone)</div><div class='hunk'>@@ -102,16 +110,13 @@ static int</div><div class='ctx'> rb_any_cmp(VALUE a, VALUE b)</div><div class='ctx'> {</div><div class='ctx'>     if (a == b) return 0;</div><div class='del'>-    if (FIXNUM_P(a) &amp;&amp; FIXNUM_P(b)) {</div><div class='del'>-	return a != b;</div><div class='del'>-    }</div><div class='ctx'>     if (RB_TYPE_P(a, T_STRING) &amp;&amp; RBASIC(a)-&gt;klass == rb_cString &amp;&amp;</div><div class='del'>-	RB_TYPE_P(b, T_STRING) &amp;&amp; RBASIC(b)-&gt;klass == rb_cString) {</div><div class='del'>-	return rb_str_hash_cmp(a, b);</div><div class='add'>+        RB_TYPE_P(b, T_STRING) &amp;&amp; RBASIC(b)-&gt;klass == rb_cString) {</div><div class='add'>+        return rb_str_hash_cmp(a, b);</div><div class='ctx'>     }</div><div class='del'>-    if (a == Qundef || b == Qundef) return -1;</div><div class='add'>+    if (UNDEF_P(a) || UNDEF_P(b)) return -1;</div><div class='ctx'>     if (SYMBOL_P(a) &amp;&amp; SYMBOL_P(b)) {</div><div class='del'>-	return a != b;</div><div class='add'>+        return a != b;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return !rb_eql(a, b);</div><div class='hunk'>@@ -124,29 +129,16 @@ hash_recursive(VALUE obj, VALUE arg, int recurse)</div><div class='ctx'>     return rb_funcallv(obj, id_hash, 0, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_hash(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    VALUE hval = rb_exec_recursive_outer(hash_recursive, obj, 0);</div><div class='add'>+static long rb_objid_hash(st_index_t index);</div><div class='ctx'> </div><div class='del'>-    while (!FIXNUM_P(hval)) {</div><div class='del'>-        if (RB_TYPE_P(hval, T_BIGNUM)) {</div><div class='del'>-            int sign;</div><div class='del'>-            unsigned long ul;</div><div class='del'>-            sign = rb_integer_pack(hval, &amp;ul, 1, sizeof(ul), 0,</div><div class='del'>-                    INTEGER_PACK_NATIVE_BYTE_ORDER);</div><div class='del'>-            ul &amp;= (1UL &lt;&lt; (sizeof(long)*CHAR_BIT-1)) - 1;</div><div class='del'>-            if (sign &lt; 0)</div><div class='del'>-                return LONG2FIX(-(long)ul);</div><div class='del'>-            return LONG2FIX((long)ul);</div><div class='del'>-        }</div><div class='del'>-	hval = rb_to_int(hval);</div><div class='del'>-    }</div><div class='del'>-    return hval;</div><div class='add'>+static st_index_t</div><div class='add'>+dbl_to_index(double d)</div><div class='add'>+{</div><div class='add'>+    union {double d; st_index_t i;} u;</div><div class='add'>+    u.d = d;</div><div class='add'>+    return u.i;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-long rb_objid_hash(st_index_t index);</div><div class='del'>-</div><div class='ctx'> long</div><div class='ctx'> rb_dbl_long_hash(double d)</div><div class='ctx'> {</div><div class='hunk'>@@ -155,12 +147,7 @@ rb_dbl_long_hash(double d)</div><div class='ctx'> #if SIZEOF_INT == SIZEOF_VOIDP</div><div class='ctx'>     return rb_memhash(&amp;d, sizeof(d));</div><div class='ctx'> #else</div><div class='del'>-    {</div><div class='del'>-	union {double d; uint64_t i;} u;</div><div class='del'>-</div><div class='del'>-	u.d = d;</div><div class='del'>-	return rb_objid_hash(rb_hash_start(u.i));</div><div class='del'>-    }</div><div class='add'>+    return rb_objid_hash(dbl_to_index(d));</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -170,61 +157,83 @@ any_hash(VALUE a, st_index_t (*other_func)(VALUE))</div><div class='ctx'>     VALUE hval;</div><div class='ctx'>     st_index_t hnum;</div><div class='ctx'> </div><div class='del'>-    if (SPECIAL_CONST_P(a)) {</div><div class='del'>-	if (STATIC_SYM_P(a)) {</div><div class='del'>-	    hnum = a &gt;&gt; (RUBY_SPECIAL_SHIFT + ID_SCOPE_SHIFT);</div><div class='del'>-	    hnum = rb_hash_start(hnum);</div><div class='del'>-	    goto out;</div><div class='del'>-	}</div><div class='del'>-	else if (FLONUM_P(a)) {</div><div class='del'>-	    /* prevent pathological behavior: [Bug #10761] */</div><div class='del'>-	    goto flt;</div><div class='del'>-	}</div><div class='del'>-	hnum = rb_objid_hash((st_index_t)a);</div><div class='del'>-    }</div><div class='del'>-    else if (BUILTIN_TYPE(a) == T_STRING) {</div><div class='del'>-	hnum = rb_str_hash(a);</div><div class='del'>-    }</div><div class='del'>-    else if (BUILTIN_TYPE(a) == T_SYMBOL) {</div><div class='del'>-	hnum = RSYMBOL(a)-&gt;hashval;</div><div class='del'>-    }</div><div class='del'>-    else if (BUILTIN_TYPE(a) == T_BIGNUM) {</div><div class='del'>-	hval = rb_big_hash(a);</div><div class='del'>-	hnum = FIX2LONG(hval);</div><div class='del'>-    }</div><div class='del'>-    else if (BUILTIN_TYPE(a) == T_FLOAT) {</div><div class='del'>-      flt:</div><div class='del'>-	hnum = rb_dbl_long_hash(rb_float_value(a));</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	hnum = other_func(a);</div><div class='add'>+    switch (TYPE(a)) {</div><div class='add'>+      case T_SYMBOL:</div><div class='add'>+        if (STATIC_SYM_P(a)) {</div><div class='add'>+            hnum = a &gt;&gt; (RUBY_SPECIAL_SHIFT + ID_SCOPE_SHIFT);</div><div class='add'>+            hnum = rb_hash_start(hnum);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            hnum = RSYMBOL(a)-&gt;hashval;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+      case T_TRUE:</div><div class='add'>+      case T_FALSE:</div><div class='add'>+      case T_NIL:</div><div class='add'>+        hnum = rb_objid_hash((st_index_t)a);</div><div class='add'>+        break;</div><div class='add'>+      case T_STRING:</div><div class='add'>+        hnum = rb_str_hash(a);</div><div class='add'>+        break;</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+        hval = rb_big_hash(a);</div><div class='add'>+        hnum = FIX2LONG(hval);</div><div class='add'>+        break;</div><div class='add'>+      case T_FLOAT: /* prevent pathological behavior: [Bug #10761] */</div><div class='add'>+        hnum = rb_dbl_long_hash(rb_float_value(a));</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        hnum = other_func(a);</div><div class='ctx'>     }</div><div class='del'>-  out:</div><div class='del'>-#if SIZEOF_LONG &lt; SIZEOF_ST_INDEX_T</div><div class='del'>-    if (hnum &gt; 0)</div><div class='del'>-	hnum &amp;= (unsigned long)-1 &gt;&gt; 2;</div><div class='add'>+    if ((SIGNED_VALUE)hnum &gt; 0)</div><div class='add'>+        hnum &amp;= FIXNUM_MAX;</div><div class='ctx'>     else</div><div class='del'>-	hnum |= ~((unsigned long)-1 &gt;&gt; 2);</div><div class='del'>-#else</div><div class='del'>-    hnum &lt;&lt;= 1;</div><div class='del'>-    hnum = RSHIFT(hnum, 1);</div><div class='del'>-#endif</div><div class='add'>+        hnum |= FIXNUM_MIN;</div><div class='ctx'>     return (long)hnum;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static st_index_t</div><div class='ctx'> obj_any_hash(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    obj = rb_hash(obj);</div><div class='del'>-    return FIX2LONG(obj);</div><div class='add'>+    VALUE hval = rb_check_funcall_basic_kw(obj, id_hash, rb_mKernel, 0, 0, 0);</div><div class='add'>+</div><div class='add'>+    if (UNDEF_P(hval)) {</div><div class='add'>+        hval = rb_exec_recursive_outer_mid(hash_recursive, obj, 0, id_hash);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (!FIXNUM_P(hval)) {</div><div class='add'>+        if (RB_TYPE_P(hval, T_BIGNUM)) {</div><div class='add'>+            int sign;</div><div class='add'>+            unsigned long ul;</div><div class='add'>+            sign = rb_integer_pack(hval, &amp;ul, 1, sizeof(ul), 0,</div><div class='add'>+                    INTEGER_PACK_NATIVE_BYTE_ORDER);</div><div class='add'>+            if (sign &lt; 0) {</div><div class='add'>+                hval = LONG2FIX(ul | FIXNUM_MIN);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                hval = LONG2FIX(ul &amp; FIXNUM_MAX);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        hval = rb_to_int(hval);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return FIX2LONG(hval);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static st_index_t</div><div class='add'>+st_index_t</div><div class='ctx'> rb_any_hash(VALUE a)</div><div class='ctx'> {</div><div class='ctx'>     return any_hash(a, obj_any_hash);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_hash(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return LONG2FIX(any_hash(obj, obj_any_hash));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'> /* Here is a hash function for 64-bit key.  It is about 5 times faster</div><div class='ctx'>    (2 times faster when uint128 type is absent) on Haswell than</div><div class='ctx'>    tailored Spooky or City hash function can be.  */</div><div class='hunk'>@@ -257,18 +266,64 @@ key64_hash(uint64_t key, uint32_t seed)</div><div class='ctx'>     return mult_and_mix(key + seed, prime1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-long</div><div class='add'>+/* Should cast down the result for each purpose */</div><div class='add'>+#define st_index_hash(index) key64_hash(rb_hash_start(index), prime2)</div><div class='add'>+</div><div class='add'>+static long</div><div class='ctx'> rb_objid_hash(st_index_t index)</div><div class='ctx'> {</div><div class='del'>-    return (long)key64_hash(rb_hash_start(index), prime2);</div><div class='add'>+    return (long)st_index_hash(index);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static st_index_t</div><div class='ctx'> objid_hash(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    return rb_objid_hash((st_index_t)obj);</div><div class='add'>+    VALUE object_id = rb_obj_id(obj);</div><div class='add'>+    if (!FIXNUM_P(object_id))</div><div class='add'>+        object_id = rb_big_hash(object_id);</div><div class='add'>+</div><div class='add'>+#if SIZEOF_LONG == SIZEOF_VOIDP</div><div class='add'>+    return (st_index_t)st_index_hash((st_index_t)NUM2LONG(object_id));</div><div class='add'>+#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP</div><div class='add'>+    return (st_index_t)st_index_hash((st_index_t)NUM2LL(object_id));</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    obj.hash    -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ * Generates an Integer hash value for this object.  This function must have the</div><div class='add'>+ * property that &lt;code&gt;a.eql?(b)&lt;/code&gt; implies &lt;code&gt;a.hash == b.hash&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ * The hash value is used along with #eql? by the Hash class to determine if</div><div class='add'>+ * two objects reference the same hash key.  Any hash value that exceeds the</div><div class='add'>+ * capacity of an Integer will be truncated before being used.</div><div class='add'>+ *</div><div class='add'>+ * The hash value for an object may not be identical across invocations or</div><div class='add'>+ * implementations of Ruby.  If you need a stable identifier across Ruby</div><div class='add'>+ * invocations and implementations you will need to generate one with a custom</div><div class='add'>+ * method.</div><div class='add'>+ *</div><div class='add'>+ * Certain core classes such as Integer use built-in hash calculations and</div><div class='add'>+ * do not call the #hash method when used as a hash key.</div><div class='add'>+ *</div><div class='add'>+ * When implementing your own #hash based on multiple values, the best</div><div class='add'>+ * practice is to combine the class and any values using the hash code of an</div><div class='add'>+ * array:</div><div class='add'>+ *</div><div class='add'>+ * For example:</div><div class='add'>+ *</div><div class='add'>+ *   def hash</div><div class='add'>+ *     [self.class, a, b, c].hash</div><div class='add'>+ *   end</div><div class='add'>+ *</div><div class='add'>+ * The reason for this is that the Array#hash method already has logic for</div><div class='add'>+ * safely and efficiently combining multiple hash values.</div><div class='add'>+ *--</div><div class='add'>+ * \private</div><div class='add'>+ *++</div><div class='add'>+ */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_obj_hash(VALUE obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -293,81 +348,134 @@ rb_ident_hash(st_data_t n)</div><div class='ctx'>      *   many integers get interpreted as 2.0 or -2.0 [Bug #10761]</div><div class='ctx'>      */</div><div class='ctx'>     if (FLONUM_P(n)) {</div><div class='del'>-        union { double d; st_data_t i; } u;</div><div class='del'>-        u.d = rb_float_value(n);</div><div class='del'>-        n ^= u.i;</div><div class='add'>+        n ^= dbl_to_index(rb_float_value(n));</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    return (st_index_t)key64_hash(rb_hash_start((st_index_t)n), prime2);</div><div class='add'>+    return (st_index_t)st_index_hash((st_index_t)n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static const struct st_hash_type identhash = {</div><div class='add'>+#define identhash rb_hashtype_ident</div><div class='add'>+const struct st_hash_type rb_hashtype_ident = {</div><div class='ctx'>     rb_ident_cmp,</div><div class='ctx'>     rb_ident_hash,</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-#define EQUAL(x,y) ((x) == (y) || (*objhash.compare)((x),(y)) == 0)</div><div class='del'>-#define PTR_EQUAL(ptr, hash_val, key_) \</div><div class='del'>-    ((ptr)-&gt;hash == (hash_val) &amp;&amp; EQUAL((key_), (ptr)-&gt;key))</div><div class='add'>+#define RHASH_IDENTHASH_P(hash) (RHASH_TYPE(hash) == &amp;identhash)</div><div class='add'>+#define RHASH_STRING_KEY_P(hash, key) (!RHASH_IDENTHASH_P(hash) &amp;&amp; (rb_obj_class(key) == rb_cString))</div><div class='add'>+</div><div class='add'>+typedef st_index_t st_hash_t;</div><div class='ctx'> </div><div class='del'>-#define RESERVED_HASH_VAL (~(st_hash_t) 0)</div><div class='del'>-#define RESERVED_HASH_SUBSTITUTION_VAL ((st_hash_t) 0)</div><div class='add'>+/*</div><div class='add'>+ * RHASH_AR_TABLE_P(h):</div><div class='add'>+ * * as.ar == NULL or</div><div class='add'>+ *   as.ar points ar_table.</div><div class='add'>+ * * as.ar is allocated by transient heap or xmalloc.</div><div class='add'>+ *</div><div class='add'>+ * !RHASH_AR_TABLE_P(h):</div><div class='add'>+ * * as.st points st_table.</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-#define SET_KEY(entry, _key) (entry)-&gt;key = (_key)</div><div class='del'>-#define SET_HASH(entry, _hash) (entry)-&gt;hash = (_hash)</div><div class='del'>-#define SET_RECORD(entry, _value) (entry)-&gt;record = (_value)</div><div class='add'>+#define RHASH_AR_TABLE_MAX_BOUND     RHASH_AR_TABLE_MAX_SIZE</div><div class='ctx'> </div><div class='del'>-typedef st_data_t st_hash_t;</div><div class='del'>-extern const st_hash_t st_reserved_hash_val;</div><div class='del'>-extern const st_hash_t st_reserved_hash_substitution_val;</div><div class='add'>+#define RHASH_AR_TABLE_REF(hash, n) (&amp;RHASH_AR_TABLE(hash)-&gt;pairs[n])</div><div class='add'>+#define RHASH_AR_CLEARED_HINT 0xff</div><div class='add'>+</div><div class='add'>+typedef struct ar_table_pair_struct {</div><div class='add'>+    VALUE key;</div><div class='add'>+    VALUE val;</div><div class='add'>+} ar_table_pair;</div><div class='add'>+</div><div class='add'>+typedef struct ar_table_struct {</div><div class='add'>+    /* 64bit CPU: 8B * 2 * 8 = 128B */</div><div class='add'>+    ar_table_pair pairs[RHASH_AR_TABLE_MAX_SIZE];</div><div class='add'>+} ar_table;</div><div class='add'>+</div><div class='add'>+size_t</div><div class='add'>+rb_hash_ar_table_size(void)</div><div class='add'>+{</div><div class='add'>+    return sizeof(ar_table);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static inline st_hash_t</div><div class='del'>-do_hash(st_data_t key)</div><div class='add'>+ar_do_hash(st_data_t key)</div><div class='add'>+{</div><div class='add'>+    return (st_hash_t)rb_any_hash(key);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline ar_hint_t</div><div class='add'>+ar_do_hash_hint(st_hash_t hash_value)</div><div class='add'>+{</div><div class='add'>+    return (ar_hint_t)hash_value;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline ar_hint_t</div><div class='add'>+ar_hint(VALUE hash, unsigned int index)</div><div class='add'>+{</div><div class='add'>+    return RHASH(hash)-&gt;ar_hint.ary[index];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+ar_hint_set_hint(VALUE hash, unsigned int index, ar_hint_t hint)</div><div class='ctx'> {</div><div class='del'>-    st_hash_t hash = (st_hash_t)(*objhash.hash)(key);</div><div class='del'>-    return (RESERVED_HASH_VAL == hash) ? RESERVED_HASH_SUBSTITUTION_VAL : hash;</div><div class='add'>+    RHASH(hash)-&gt;ar_hint.ary[index] = hint;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='del'>-set_entry(ar_table_entry *entry, st_data_t key, st_data_t val, st_hash_t hash)</div><div class='add'>+ar_hint_set(VALUE hash, unsigned int index, st_hash_t hash_value)</div><div class='ctx'> {</div><div class='del'>-    SET_HASH(entry, hash);</div><div class='del'>-    SET_KEY(entry, key);</div><div class='del'>-    SET_RECORD(entry, val);</div><div class='add'>+    ar_hint_set_hint(hash, index, ar_do_hash_hint(hash_value));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='del'>-clear_entry(ar_table_entry* entry)</div><div class='add'>+ar_clear_entry(VALUE hash, unsigned int index)</div><div class='ctx'> {</div><div class='del'>-    SET_KEY(entry, Qundef);</div><div class='del'>-    SET_RECORD(entry, Qundef);</div><div class='del'>-    SET_HASH(entry, RESERVED_HASH_VAL);</div><div class='add'>+    ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, index);</div><div class='add'>+    pair-&gt;key = Qundef;</div><div class='add'>+    ar_hint_set_hint(hash, index, RHASH_AR_CLEARED_HINT);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline int</div><div class='del'>-empty_entry(ar_table_entry *entry)</div><div class='add'>+ar_cleared_entry(VALUE hash, unsigned int index)</div><div class='ctx'> {</div><div class='del'>-    return entry-&gt;hash == RESERVED_HASH_VAL;</div><div class='add'>+    if (ar_hint(hash, index) == RHASH_AR_CLEARED_HINT) {</div><div class='add'>+        /* RHASH_AR_CLEARED_HINT is only a hint, not mean cleared entry,</div><div class='add'>+         * so you need to check key == Qundef</div><div class='add'>+         */</div><div class='add'>+        ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, index);</div><div class='add'>+        return UNDEF_P(pair-&gt;key);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return FALSE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+ar_set_entry(VALUE hash, unsigned int index, st_data_t key, st_data_t val, st_hash_t hash_value)</div><div class='add'>+{</div><div class='add'>+    ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, index);</div><div class='add'>+    pair-&gt;key = key;</div><div class='add'>+    pair-&gt;val = val;</div><div class='add'>+    ar_hint_set(hash, index, hash_value);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define RHASH_AR_TABLE_SIZE(h) (HASH_ASSERT(RHASH_AR_TABLE_P(h)), \</div><div class='del'>-                             RHASH_AR_TABLE_SIZE_RAW(h))</div><div class='add'>+                                RHASH_AR_TABLE_SIZE_RAW(h))</div><div class='ctx'> </div><div class='ctx'> #define RHASH_AR_TABLE_BOUND_RAW(h) \</div><div class='ctx'>   ((unsigned int)((RBASIC(h)-&gt;flags &gt;&gt; RHASH_AR_TABLE_BOUND_SHIFT) &amp; \</div><div class='ctx'>                   (RHASH_AR_TABLE_BOUND_MASK &gt;&gt; RHASH_AR_TABLE_BOUND_SHIFT)))</div><div class='ctx'> </div><div class='ctx'> #define RHASH_AR_TABLE_BOUND(h) (HASH_ASSERT(RHASH_AR_TABLE_P(h)), \</div><div class='del'>-                              RHASH_AR_TABLE_BOUND_RAW(h))</div><div class='add'>+                                 RHASH_AR_TABLE_BOUND_RAW(h))</div><div class='ctx'> </div><div class='ctx'> #define RHASH_ST_TABLE_SET(h, s)  rb_hash_st_table_set(h, s)</div><div class='ctx'> #define RHASH_TYPE(hash) (RHASH_AR_TABLE_P(hash) ? &amp;objhash : RHASH_ST_TABLE(hash)-&gt;type)</div><div class='del'>-#define RHASH_AR_TABLE_REF(hash, n) (&amp;RHASH_AR_TABLE(hash)-&gt;entries[n])</div><div class='add'>+</div><div class='add'>+#define HASH_ASSERT(expr) RUBY_ASSERT_MESG_WHEN(HASH_DEBUG, expr, #expr)</div><div class='ctx'> </div><div class='ctx'> #if HASH_DEBUG</div><div class='ctx'> #define hash_verify(hash) hash_verify_(hash, __FILE__, __LINE__)</div><div class='del'>-#define HASH_ASSERT(expr) RUBY_ASSERT_MESG_WHEN(1, expr, #expr)</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_hash_dump(VALUE hash)</div><div class='hunk'>@@ -381,17 +489,17 @@ rb_hash_dump(VALUE hash)</div><div class='ctx'>                 RHASH_AR_TABLE_SIZE(hash), RHASH_AR_TABLE_BOUND(hash));</div><div class='ctx'> </div><div class='ctx'>         for (i=0; i&lt;bound; i++) {</div><div class='del'>-            ar_table_entry *cur_entry = RHASH_AR_TABLE_REF(hash, i);</div><div class='ctx'>             st_data_t k, v;</div><div class='ctx'> </div><div class='del'>-            if (!empty_entry(cur_entry)) {</div><div class='add'>+            if (!ar_cleared_entry(hash, i)) {</div><div class='ctx'>                 char b1[0x100], b2[0x100];</div><div class='del'>-                /* h = cur_entry-&gt;hash; */</div><div class='del'>-                k = cur_entry-&gt;key;</div><div class='del'>-                v = cur_entry-&gt;record;</div><div class='del'>-                fprintf(stderr, "  %d key:%s val:%s\n", i,</div><div class='add'>+                ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, i);</div><div class='add'>+                k = pair-&gt;key;</div><div class='add'>+                v = pair-&gt;val;</div><div class='add'>+                fprintf(stderr, "  %d key:%s val:%s hint:%02x\n", i,</div><div class='ctx'>                         rb_raw_obj_info(b1, 0x100, k),</div><div class='del'>-                        rb_raw_obj_info(b2, 0x100, v));</div><div class='add'>+                        rb_raw_obj_info(b2, 0x100, v),</div><div class='add'>+                        ar_hint(hash, i));</div><div class='ctx'>                 n++;</div><div class='ctx'>             }</div><div class='ctx'>             else {</div><div class='hunk'>@@ -410,15 +518,13 @@ hash_verify_(VALUE hash, const char *file, int line)</div><div class='ctx'>         unsigned i, n = 0, bound = RHASH_AR_TABLE_BOUND(hash);</div><div class='ctx'> </div><div class='ctx'>         for (i=0; i&lt;bound; i++) {</div><div class='del'>-            ar_table_entry *cur_entry = RHASH_AR_TABLE_REF(hash, i);</div><div class='del'>-            st_data_t h, k, v;</div><div class='del'>-            if (!empty_entry(cur_entry)) {</div><div class='del'>-                h = cur_entry-&gt;hash;</div><div class='del'>-                k = cur_entry-&gt;key;</div><div class='del'>-                v = cur_entry-&gt;record;</div><div class='del'>-                HASH_ASSERT(h != RESERVED_HASH_VAL);</div><div class='del'>-                HASH_ASSERT(k != Qundef);</div><div class='del'>-                HASH_ASSERT(v != Qundef);</div><div class='add'>+            st_data_t k, v;</div><div class='add'>+            if (!ar_cleared_entry(hash, i)) {</div><div class='add'>+                ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, i);</div><div class='add'>+                k = pair-&gt;key;</div><div class='add'>+                v = pair-&gt;val;</div><div class='add'>+                HASH_ASSERT(!UNDEF_P(k));</div><div class='add'>+                HASH_ASSERT(!UNDEF_P(v));</div><div class='ctx'>                 n++;</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='hunk'>@@ -432,17 +538,18 @@ hash_verify_(VALUE hash, const char *file, int line)</div><div class='ctx'>         HASH_ASSERT(RHASH_AR_TABLE_BOUND_RAW(hash) == 0);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='ctx'>     if (RHASH_TRANSIENT_P(hash)) {</div><div class='ctx'>         volatile st_data_t MAYBE_UNUSED(key) = RHASH_AR_TABLE_REF(hash, 0)-&gt;key; /* read */</div><div class='ctx'>         HASH_ASSERT(RHASH_AR_TABLE(hash) != NULL);</div><div class='ctx'>         HASH_ASSERT(rb_transient_heap_managed_ptr_p(RHASH_AR_TABLE(hash)));</div><div class='ctx'>     }</div><div class='add'>+#endif</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #else</div><div class='ctx'> #define hash_verify(h) ((void)0)</div><div class='del'>-#define HASH_ASSERT(e) ((void)0)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static inline int</div><div class='hunk'>@@ -463,7 +570,7 @@ RHASH_TABLE_EMPTY_P(VALUE hash)</div><div class='ctx'>     return RHASH_SIZE(hash) == 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-MJIT_FUNC_EXPORTED int</div><div class='add'>+int</div><div class='ctx'> rb_hash_ar_table_p(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     if (FL_TEST_RAW((hash), RHASH_ST_TABLE_FLAG)) {</div><div class='hunk'>@@ -482,7 +589,7 @@ rb_hash_ar_table(VALUE hash)</div><div class='ctx'>     return RHASH(hash)-&gt;as.ar;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-MJIT_FUNC_EXPORTED st_table *</div><div class='add'>+st_table *</div><div class='ctx'> rb_hash_st_table(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     HASH_ASSERT(!RHASH_AR_TABLE_P(hash));</div><div class='hunk'>@@ -506,45 +613,65 @@ hash_ar_table_set(VALUE hash, ar_table *ar)</div><div class='ctx'>     hash_verify(hash);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define RHASH_AR_TABLE_SET(h, a) hash_ar_table_set(h, a)</div><div class='del'>-</div><div class='ctx'> #define RHASH_SET_ST_FLAG(h)          FL_SET_RAW(h, RHASH_ST_TABLE_FLAG)</div><div class='ctx'> #define RHASH_UNSET_ST_FLAG(h)        FL_UNSET_RAW(h, RHASH_ST_TABLE_FLAG)</div><div class='ctx'> </div><div class='del'>-#define RHASH_AR_TABLE_BOUND_SET(h, n) do { \</div><div class='del'>-    st_index_t tmp_n = (n);          \</div><div class='del'>-    HASH_ASSERT(RHASH_AR_TABLE_P(h)); \</div><div class='del'>-    HASH_ASSERT(tmp_n &lt;= RHASH_AR_TABLE_MAX_BOUND); \</div><div class='del'>-    RBASIC(h)-&gt;flags &amp;= ~RHASH_AR_TABLE_BOUND_MASK; \</div><div class='del'>-    RBASIC(h)-&gt;flags |= (tmp_n) &lt;&lt; RHASH_AR_TABLE_BOUND_SHIFT; \</div><div class='del'>-} while (0)</div><div class='add'>+static inline void</div><div class='add'>+RHASH_AR_TABLE_BOUND_SET(VALUE h, st_index_t n)</div><div class='add'>+{</div><div class='add'>+    HASH_ASSERT(RHASH_AR_TABLE_P(h));</div><div class='add'>+    HASH_ASSERT(n &lt;= RHASH_AR_TABLE_MAX_BOUND);</div><div class='ctx'> </div><div class='del'>-#define RHASH_AR_TABLE_SIZE_SET(h, n) do { \</div><div class='del'>-    st_index_t tmp_n = n; \</div><div class='del'>-    HASH_ASSERT(RHASH_AR_TABLE_P(h)); \</div><div class='del'>-    RBASIC(h)-&gt;flags &amp;= ~RHASH_AR_TABLE_SIZE_MASK; \</div><div class='del'>-    RBASIC(h)-&gt;flags |= (tmp_n) &lt;&lt; RHASH_AR_TABLE_SIZE_SHIFT; \</div><div class='del'>-} while (0)</div><div class='add'>+    RBASIC(h)-&gt;flags &amp;= ~RHASH_AR_TABLE_BOUND_MASK;</div><div class='add'>+    RBASIC(h)-&gt;flags |= n &lt;&lt; RHASH_AR_TABLE_BOUND_SHIFT;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-#define HASH_AR_TABLE_SIZE_ADD(h, n) do  { \</div><div class='del'>-    HASH_ASSERT(RHASH_AR_TABLE_P(h)); \</div><div class='del'>-    RHASH_AR_TABLE_SIZE_SET((h), RHASH_AR_TABLE_SIZE(h)+(n)); \</div><div class='del'>-    hash_verify(h); \</div><div class='del'>-} while (0)</div><div class='add'>+static inline void</div><div class='add'>+RHASH_AR_TABLE_SIZE_SET(VALUE h, st_index_t n)</div><div class='add'>+{</div><div class='add'>+    HASH_ASSERT(RHASH_AR_TABLE_P(h));</div><div class='add'>+    HASH_ASSERT(n &lt;= RHASH_AR_TABLE_MAX_SIZE);</div><div class='add'>+</div><div class='add'>+    RBASIC(h)-&gt;flags &amp;= ~RHASH_AR_TABLE_SIZE_MASK;</div><div class='add'>+    RBASIC(h)-&gt;flags |= n &lt;&lt; RHASH_AR_TABLE_SIZE_SHIFT;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+HASH_AR_TABLE_SIZE_ADD(VALUE h, st_index_t n)</div><div class='add'>+{</div><div class='add'>+    HASH_ASSERT(RHASH_AR_TABLE_P(h));</div><div class='add'>+</div><div class='add'>+    RHASH_AR_TABLE_SIZE_SET(h, RHASH_AR_TABLE_SIZE(h) + n);</div><div class='add'>+</div><div class='add'>+    hash_verify(h);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> #define RHASH_AR_TABLE_SIZE_INC(h) HASH_AR_TABLE_SIZE_ADD(h, 1)</div><div class='del'>-#define RHASH_AR_TABLE_SIZE_DEC(h) do  { \</div><div class='del'>-    HASH_ASSERT(RHASH_AR_TABLE_P(h)); \</div><div class='del'>-    RHASH_AR_TABLE_SIZE_SET((h), RHASH_AR_TABLE_SIZE(h) - 1); \</div><div class='del'>-    hash_verify(h); \</div><div class='del'>-} while (0)</div><div class='ctx'> </div><div class='del'>-#define RHASH_AR_TABLE_CLEAR(h) do { \</div><div class='del'>-    RBASIC(h)-&gt;flags &amp;= ~RHASH_AR_TABLE_SIZE_MASK; \</div><div class='del'>-    RBASIC(h)-&gt;flags &amp;= ~RHASH_AR_TABLE_BOUND_MASK; \</div><div class='del'>-    RHASH_AR_TABLE_SET(hash, NULL); \</div><div class='del'>-} while (0)</div><div class='add'>+static inline void</div><div class='add'>+RHASH_AR_TABLE_SIZE_DEC(VALUE h)</div><div class='add'>+{</div><div class='add'>+    HASH_ASSERT(RHASH_AR_TABLE_P(h));</div><div class='add'>+    int new_size = RHASH_AR_TABLE_SIZE(h) - 1;</div><div class='add'>+</div><div class='add'>+    if (new_size != 0) {</div><div class='add'>+        RHASH_AR_TABLE_SIZE_SET(h, new_size);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        RHASH_AR_TABLE_SIZE_SET(h, 0);</div><div class='add'>+        RHASH_AR_TABLE_BOUND_SET(h, 0);</div><div class='add'>+    }</div><div class='add'>+    hash_verify(h);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RHASH_AR_TABLE_CLEAR(VALUE h)</div><div class='add'>+{</div><div class='add'>+    RBASIC(h)-&gt;flags &amp;= ~RHASH_AR_TABLE_SIZE_MASK;</div><div class='add'>+    RBASIC(h)-&gt;flags &amp;= ~RHASH_AR_TABLE_BOUND_MASK;</div><div class='ctx'> </div><div class='add'>+    hash_ar_table_set(h, NULL);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static ar_table*</div><div class='ctx'> ar_alloc_table(VALUE hash)</div><div class='hunk'>@@ -561,26 +688,69 @@ ar_alloc_table(VALUE hash)</div><div class='ctx'> </div><div class='ctx'>     RHASH_AR_TABLE_SIZE_SET(hash, 0);</div><div class='ctx'>     RHASH_AR_TABLE_BOUND_SET(hash, 0);</div><div class='del'>-    RHASH_AR_TABLE_SET(hash, tab);</div><div class='add'>+    hash_ar_table_set(hash, tab);</div><div class='ctx'> </div><div class='ctx'>     return tab;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+NOINLINE(static int ar_equal(VALUE x, VALUE y));</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ar_equal(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return rb_any_cmp(x, y) == 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static unsigned</div><div class='del'>-find_entry(VALUE hash, st_hash_t hash_value, st_data_t key)</div><div class='add'>+ar_find_entry_hint(VALUE hash, ar_hint_t hint, st_data_t key)</div><div class='ctx'> {</div><div class='ctx'>     unsigned i, bound = RHASH_AR_TABLE_BOUND(hash);</div><div class='add'>+    const ar_hint_t *hints = RHASH(hash)-&gt;ar_hint.ary;</div><div class='ctx'> </div><div class='ctx'>     /* if table is NULL, then bound also should be 0 */</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; bound; i++) {</div><div class='del'>-        if (PTR_EQUAL(RHASH_AR_TABLE_REF(hash, i), hash_value, key)) {</div><div class='del'>-            return i;</div><div class='add'>+        if (hints[i] == hint) {</div><div class='add'>+            ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, i);</div><div class='add'>+            if (ar_equal(key, pair-&gt;key)) {</div><div class='add'>+                RB_DEBUG_COUNTER_INC(artable_hint_hit);</div><div class='add'>+                return i;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+#if 0</div><div class='add'>+                static int pid;</div><div class='add'>+                static char fname[256];</div><div class='add'>+                static FILE *fp;</div><div class='add'>+</div><div class='add'>+                if (pid != getpid()) {</div><div class='add'>+                    snprintf(fname, sizeof(fname), "/tmp/ruby-armiss.%d", pid = getpid());</div><div class='add'>+                    if ((fp = fopen(fname, "w")) == NULL) rb_bug("fopen");</div><div class='add'>+                }</div><div class='add'>+</div><div class='add'>+                st_hash_t h1 = ar_do_hash(key);</div><div class='add'>+                st_hash_t h2 = ar_do_hash(pair-&gt;key);</div><div class='add'>+</div><div class='add'>+                fprintf(fp, "miss: hash_eq:%d hints[%d]:%02x hint:%02x\n"</div><div class='add'>+                            "      key      :%016lx %s\n"</div><div class='add'>+                            "      pair-&gt;key:%016lx %s\n",</div><div class='add'>+                        h1 == h2, i, hints[i], hint,</div><div class='add'>+                        h1, rb_obj_info(key), h2, rb_obj_info(pair-&gt;key));</div><div class='add'>+#endif</div><div class='add'>+                RB_DEBUG_COUNTER_INC(artable_hint_miss);</div><div class='add'>+            }</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='add'>+    RB_DEBUG_COUNTER_INC(artable_hint_notfound);</div><div class='ctx'>     return RHASH_AR_TABLE_MAX_BOUND;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static unsigned</div><div class='add'>+ar_find_entry(VALUE hash, st_hash_t hash_value, st_data_t key)</div><div class='add'>+{</div><div class='add'>+    ar_hint_t hint = ar_do_hash_hint(hash_value);</div><div class='add'>+    return ar_find_entry_hint(hash, hint, key);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static inline void</div><div class='ctx'> ar_free_and_clear_table(VALUE hash)</div><div class='ctx'> {</div><div class='hunk'>@@ -600,32 +770,38 @@ ar_free_and_clear_table(VALUE hash)</div><div class='ctx'>     HASH_ASSERT(RHASH_TRANSIENT_P(hash) == 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void st_add_direct_with_hash(st_table *tab, st_data_t key, st_data_t value, st_hash_t hash); /* st.c */</div><div class='add'>+void rb_st_add_direct_with_hash(st_table *tab, st_data_t key, st_data_t value, st_hash_t hash); // st.c</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-ar_try_convert_table(VALUE hash)</div><div class='del'>-{</div><div class='del'>-    st_table *new_tab;</div><div class='del'>-    ar_table_entry *entry;</div><div class='del'>-    const unsigned size = RHASH_AR_TABLE_SIZE(hash);</div><div class='del'>-    st_index_t i;</div><div class='add'>+enum ar_each_key_type {</div><div class='add'>+    ar_each_key_copy,</div><div class='add'>+    ar_each_key_cmp,</div><div class='add'>+    ar_each_key_insert,</div><div class='add'>+};</div><div class='ctx'> </div><div class='del'>-    if (!RHASH_AR_TABLE_P(hash) || size &lt; RHASH_AR_TABLE_MAX_SIZE) {</div><div class='del'>-        return;</div><div class='add'>+static inline int</div><div class='add'>+ar_each_key(ar_table *ar, int max, enum ar_each_key_type type, st_data_t *dst_keys, st_table *new_tab, st_hash_t *hashes)</div><div class='add'>+{</div><div class='add'>+    for (int i = 0; i &lt; max; i++) {</div><div class='add'>+        ar_table_pair *pair = &amp;ar-&gt;pairs[i];</div><div class='add'>+</div><div class='add'>+        switch (type) {</div><div class='add'>+          case ar_each_key_copy:</div><div class='add'>+            dst_keys[i] = pair-&gt;key;</div><div class='add'>+            break;</div><div class='add'>+          case ar_each_key_cmp:</div><div class='add'>+            if (dst_keys[i] != pair-&gt;key) return 1;</div><div class='add'>+            break;</div><div class='add'>+          case ar_each_key_insert:</div><div class='add'>+            if (UNDEF_P(pair-&gt;key)) continue; // deleted entry</div><div class='add'>+            rb_st_add_direct_with_hash(new_tab, pair-&gt;key, pair-&gt;val, hashes[i]);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    new_tab = st_init_table_with_size(&amp;objhash, size * 2);</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    for (i = 0; i &lt; RHASH_AR_TABLE_MAX_BOUND; i++) {</div><div class='del'>-        entry = RHASH_AR_TABLE_REF(hash, i);</div><div class='del'>-        HASH_ASSERT(entry-&gt;hash != RESERVED_HASH_VAL);</div><div class='ctx'> </div><div class='del'>-        st_add_direct_with_hash(new_tab, entry-&gt;key, entry-&gt;record, entry-&gt;hash);</div><div class='del'>-    }</div><div class='del'>-    ar_free_and_clear_table(hash);</div><div class='del'>-    RHASH_ST_TABLE_SET(hash, new_tab);</div><div class='del'>-    return;</div><div class='del'>-}</div><div class='ctx'> </div><div class='ctx'> static st_table *</div><div class='ctx'> ar_force_convert_table(VALUE hash, const char *file, int line)</div><div class='hunk'>@@ -637,23 +813,32 @@ ar_force_convert_table(VALUE hash, const char *file, int line)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (RHASH_AR_TABLE(hash)) {</div><div class='del'>-        ar_table_entry *entry;</div><div class='del'>-        unsigned i, bound = RHASH_AR_TABLE_BOUND(hash);</div><div class='del'>-</div><div class='del'>-#if RHASH_CONVERT_TABLE_DEBUG</div><div class='del'>-        rb_obj_info_dump(hash);</div><div class='del'>-        fprintf(stderr, "force_convert: %s:%d\n", file, line);</div><div class='del'>-        RB_DEBUG_COUNTER_INC(obj_hash_force_convert);</div><div class='del'>-#endif</div><div class='add'>+        ar_table *ar = RHASH_AR_TABLE(hash);</div><div class='add'>+        st_hash_t hashes[RHASH_AR_TABLE_MAX_SIZE];</div><div class='add'>+        unsigned int bound, size;</div><div class='add'>+</div><div class='add'>+        // prepare hash values</div><div class='add'>+        do {</div><div class='add'>+            st_data_t keys[RHASH_AR_TABLE_MAX_SIZE];</div><div class='add'>+            bound = RHASH_AR_TABLE_BOUND(hash);</div><div class='add'>+            size = RHASH_AR_TABLE_SIZE(hash);</div><div class='add'>+            ar_each_key(ar, bound, ar_each_key_copy, keys, NULL, NULL);</div><div class='add'>+</div><div class='add'>+            for (unsigned int i = 0; i &lt; bound; i++) {</div><div class='add'>+                // do_hash calls #hash method and it can modify hash object</div><div class='add'>+                hashes[i] = UNDEF_P(keys[i]) ? 0 : ar_do_hash(keys[i]);</div><div class='add'>+            }</div><div class='ctx'> </div><div class='del'>-        new_tab = st_init_table_with_size(&amp;objhash, RHASH_AR_TABLE_SIZE(hash));</div><div class='add'>+            // check if modified</div><div class='add'>+            if (UNLIKELY(!RHASH_AR_TABLE_P(hash))) return RHASH_ST_TABLE(hash);</div><div class='add'>+            if (UNLIKELY(RHASH_AR_TABLE_BOUND(hash) != bound)) continue;</div><div class='add'>+            if (UNLIKELY(ar_each_key(ar, bound, ar_each_key_cmp, keys, NULL, NULL))) continue;</div><div class='add'>+        } while (0);</div><div class='ctx'> </div><div class='del'>-        for (i = 0; i &lt; bound; i++) {</div><div class='del'>-            entry = RHASH_AR_TABLE_REF(hash, i);</div><div class='del'>-            if (empty_entry(entry)) continue;</div><div class='ctx'> </div><div class='del'>-            st_add_direct_with_hash(new_tab, entry-&gt;key, entry-&gt;record, entry-&gt;hash);</div><div class='del'>-        }</div><div class='add'>+        // make st</div><div class='add'>+        new_tab = st_init_table_with_size(&amp;objhash, size);</div><div class='add'>+        ar_each_key(ar, bound, ar_each_key_insert, NULL, new_tab, hashes);</div><div class='ctx'>         ar_free_and_clear_table(hash);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='hunk'>@@ -684,15 +869,16 @@ ar_compact_table(VALUE hash)</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         unsigned i, j=0;</div><div class='del'>-        ar_table_entry *entries = RHASH_AR_TABLE_REF(hash, 0);</div><div class='add'>+        ar_table_pair *pairs = RHASH_AR_TABLE(hash)-&gt;pairs;</div><div class='ctx'> </div><div class='ctx'>         for (i=0; i&lt;bound; i++) {</div><div class='del'>-            if (empty_entry(&amp;entries[i])) {</div><div class='add'>+            if (ar_cleared_entry(hash, i)) {</div><div class='ctx'>                 if (j &lt;= i) j = i+1;</div><div class='ctx'>                 for (; j&lt;bound; j++) {</div><div class='del'>-                    if (!empty_entry(&amp;entries[j])) {</div><div class='del'>-                        entries[i] = entries[j];</div><div class='del'>-                        clear_entry(&amp;entries[j]);</div><div class='add'>+                    if (!ar_cleared_entry(hash, j)) {</div><div class='add'>+                        pairs[i] = pairs[j];</div><div class='add'>+                        ar_hint_set_hint(hash, i, (st_hash_t)ar_hint(hash, j));</div><div class='add'>+                        ar_clear_entry(hash, j);</div><div class='ctx'>                         j++;</div><div class='ctx'>                         goto found;</div><div class='ctx'>                     }</div><div class='hunk'>@@ -715,8 +901,6 @@ static int</div><div class='ctx'> ar_add_direct_with_hash(VALUE hash, st_data_t key, st_data_t val, st_hash_t hash_value)</div><div class='ctx'> {</div><div class='ctx'>     unsigned bin = RHASH_AR_TABLE_BOUND(hash);</div><div class='del'>-    ar_table *tab = RHASH_AR_TABLE(hash);</div><div class='del'>-    ar_table_entry *entry;</div><div class='ctx'> </div><div class='ctx'>     if (RHASH_AR_TABLE_SIZE(hash) &gt;= RHASH_AR_TABLE_MAX_SIZE) {</div><div class='ctx'>         return 1;</div><div class='hunk'>@@ -728,8 +912,7 @@ ar_add_direct_with_hash(VALUE hash, st_data_t key, st_data_t val, st_hash_t hash</div><div class='ctx'>         }</div><div class='ctx'>         HASH_ASSERT(bin &lt; RHASH_AR_TABLE_MAX_BOUND);</div><div class='ctx'> </div><div class='del'>-        entry = &amp;tab-&gt;entries[bin];</div><div class='del'>-        set_entry(entry, key, val, hash_value);</div><div class='add'>+        ar_set_entry(hash, bin, key, val, hash_value);</div><div class='ctx'>         RHASH_AR_TABLE_BOUND_SET(hash, bin+1);</div><div class='ctx'>         RHASH_AR_TABLE_SIZE_INC(hash);</div><div class='ctx'>         return 0;</div><div class='hunk'>@@ -737,17 +920,17 @@ ar_add_direct_with_hash(VALUE hash, st_data_t key, st_data_t val, st_hash_t hash</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ar_foreach(VALUE hash, int (*func)(ANYARGS), st_data_t arg)</div><div class='add'>+ar_general_foreach(VALUE hash, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg)</div><div class='ctx'> {</div><div class='ctx'>     if (RHASH_AR_TABLE_SIZE(hash) &gt; 0) {</div><div class='ctx'>         unsigned i, bound = RHASH_AR_TABLE_BOUND(hash);</div><div class='ctx'> </div><div class='ctx'>         for (i = 0; i &lt; bound; i++) {</div><div class='del'>-            enum st_retval retval;</div><div class='del'>-            ar_table_entry *cur_entry = RHASH_AR_TABLE_REF(hash, i);</div><div class='del'>-            if (empty_entry(cur_entry)) continue;</div><div class='del'>-            retval = (*func)(cur_entry-&gt;key, cur_entry-&gt;record, arg, 0);</div><div class='del'>-            /* cur_entry is not valid after that */</div><div class='add'>+            if (ar_cleared_entry(hash, i)) continue;</div><div class='add'>+</div><div class='add'>+            ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, i);</div><div class='add'>+            enum st_retval retval = (*func)(pair-&gt;key, pair-&gt;val, arg, 0);</div><div class='add'>+            /* pair may be not valid here because of theap */</div><div class='ctx'> </div><div class='ctx'>             switch (retval) {</div><div class='ctx'>               case ST_CONTINUE:</div><div class='hunk'>@@ -755,8 +938,20 @@ ar_foreach(VALUE hash, int (*func)(ANYARGS), st_data_t arg)</div><div class='ctx'>               case ST_CHECK:</div><div class='ctx'>               case ST_STOP:</div><div class='ctx'>                 return 0;</div><div class='add'>+              case ST_REPLACE:</div><div class='add'>+                if (replace) {</div><div class='add'>+                    VALUE key = pair-&gt;key;</div><div class='add'>+                    VALUE val = pair-&gt;val;</div><div class='add'>+                    retval = (*replace)(&amp;key, &amp;val, arg, TRUE);</div><div class='add'>+</div><div class='add'>+                    // TODO: pair should be same as pair before.</div><div class='add'>+                    ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, i);</div><div class='add'>+                    pair-&gt;key = key;</div><div class='add'>+                    pair-&gt;val = val;</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='ctx'>               case ST_DELETE:</div><div class='del'>-                clear_entry(RHASH_AR_TABLE_REF(hash, i));</div><div class='add'>+                ar_clear_entry(hash, i);</div><div class='ctx'>                 RHASH_AR_TABLE_SIZE_DEC(hash);</div><div class='ctx'>                 break;</div><div class='ctx'>             }</div><div class='hunk'>@@ -766,48 +961,72 @@ ar_foreach(VALUE hash, int (*func)(ANYARGS), st_data_t arg)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ar_foreach_check(VALUE hash, int (*func)(ANYARGS), st_data_t arg,</div><div class='del'>-                     st_data_t never)</div><div class='add'>+ar_foreach_with_replace(VALUE hash, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg)</div><div class='add'>+{</div><div class='add'>+    return ar_general_foreach(hash, func, replace, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct functor {</div><div class='add'>+    st_foreach_callback_func *func;</div><div class='add'>+    st_data_t arg;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_functor(st_data_t k, st_data_t v, st_data_t d, int _)</div><div class='add'>+{</div><div class='add'>+    const struct functor *f = (void *)d;</div><div class='add'>+    return f-&gt;func(k, v, f-&gt;arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ar_foreach(VALUE hash, st_foreach_callback_func *func, st_data_t arg)</div><div class='add'>+{</div><div class='add'>+    const struct functor f = { func, arg };</div><div class='add'>+    return ar_general_foreach(hash, apply_functor, NULL, (st_data_t)&amp;f);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ar_foreach_check(VALUE hash, st_foreach_check_callback_func *func, st_data_t arg,</div><div class='add'>+                 st_data_t never)</div><div class='ctx'> {</div><div class='ctx'>     if (RHASH_AR_TABLE_SIZE(hash) &gt; 0) {</div><div class='ctx'>         unsigned i, ret = 0, bound = RHASH_AR_TABLE_BOUND(hash);</div><div class='ctx'>         enum st_retval retval;</div><div class='del'>-        ar_table_entry *cur_entry;</div><div class='ctx'>         st_data_t key;</div><div class='del'>-        st_hash_t hash_value;</div><div class='add'>+        ar_table_pair *pair;</div><div class='add'>+        ar_hint_t hint;</div><div class='ctx'> </div><div class='ctx'>         for (i = 0; i &lt; bound; i++) {</div><div class='del'>-            cur_entry = RHASH_AR_TABLE_REF(hash, i);</div><div class='del'>-            if (empty_entry(cur_entry))</div><div class='del'>-              continue;</div><div class='del'>-            key = cur_entry-&gt;key;</div><div class='del'>-            hash_value = cur_entry-&gt;hash;</div><div class='add'>+            if (ar_cleared_entry(hash, i)) continue;</div><div class='ctx'> </div><div class='del'>-            retval = (*func)(key, cur_entry-&gt;record, arg, 0);</div><div class='del'>-            hash_verify(hash);</div><div class='add'>+            pair = RHASH_AR_TABLE_REF(hash, i);</div><div class='add'>+            key = pair-&gt;key;</div><div class='add'>+            hint = ar_hint(hash, i);</div><div class='ctx'> </div><div class='del'>-            cur_entry = RHASH_AR_TABLE_REF(hash, i);</div><div class='add'>+            retval = (*func)(key, pair-&gt;val, arg, 0);</div><div class='add'>+            hash_verify(hash);</div><div class='ctx'> </div><div class='ctx'>             switch (retval) {</div><div class='ctx'>               case ST_CHECK: {</div><div class='del'>-                  if (cur_entry-&gt;key == never &amp;&amp; cur_entry-&gt;hash == RESERVED_HASH_VAL)</div><div class='del'>-                      break;</div><div class='del'>-                  ret = find_entry(hash, hash_value, key);</div><div class='del'>-                  if (ret == RHASH_AR_TABLE_MAX_BOUND) {</div><div class='del'>-                      retval = (*func)(0, 0, arg, 1);</div><div class='del'>-                      return 2;</div><div class='del'>-                  }</div><div class='add'>+                pair = RHASH_AR_TABLE_REF(hash, i);</div><div class='add'>+                if (pair-&gt;key == never) break;</div><div class='add'>+                ret = ar_find_entry_hint(hash, hint, key);</div><div class='add'>+                if (ret == RHASH_AR_TABLE_MAX_BOUND) {</div><div class='add'>+                    retval = (*func)(0, 0, arg, 1);</div><div class='add'>+                    return 2;</div><div class='add'>+                }</div><div class='ctx'>               }</div><div class='ctx'>               case ST_CONTINUE:</div><div class='ctx'>                 break;</div><div class='ctx'>               case ST_STOP:</div><div class='add'>+              case ST_REPLACE:</div><div class='ctx'>                 return 0;</div><div class='ctx'>               case ST_DELETE: {</div><div class='del'>-                  if (!empty_entry(cur_entry)) {</div><div class='del'>-                      clear_entry(cur_entry);</div><div class='del'>-                      RHASH_AR_TABLE_SIZE_DEC(hash);</div><div class='del'>-                  }</div><div class='del'>-                  break;</div><div class='add'>+                if (!ar_cleared_entry(hash, i)) {</div><div class='add'>+                    ar_clear_entry(hash, i);</div><div class='add'>+                    RHASH_AR_TABLE_SIZE_DEC(hash);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='ctx'>               }</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='hunk'>@@ -822,10 +1041,15 @@ ar_update(VALUE hash, st_data_t key,</div><div class='ctx'>     int retval, existing;</div><div class='ctx'>     unsigned bin = RHASH_AR_TABLE_MAX_BOUND;</div><div class='ctx'>     st_data_t value = 0, old_key;</div><div class='del'>-    st_hash_t hash_value = do_hash(key);</div><div class='add'>+    st_hash_t hash_value = ar_do_hash(key);</div><div class='add'>+</div><div class='add'>+    if (UNLIKELY(!RHASH_AR_TABLE_P(hash))) {</div><div class='add'>+        // `#hash` changes ar_table -&gt; st_table</div><div class='add'>+        return -1;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (RHASH_AR_TABLE_SIZE(hash) &gt; 0) {</div><div class='del'>-        bin = find_entry(hash, hash_value, key);</div><div class='add'>+        bin = ar_find_entry(hash, hash_value, key);</div><div class='ctx'>         existing = (bin != RHASH_AR_TABLE_MAX_BOUND) ? TRUE : FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='hunk'>@@ -834,12 +1058,13 @@ ar_update(VALUE hash, st_data_t key,</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (existing) {</div><div class='del'>-        ar_table_entry *entry = RHASH_AR_TABLE_REF(hash, bin);</div><div class='del'>-        key = entry-&gt;key;</div><div class='del'>-        value = entry-&gt;record;</div><div class='add'>+        ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, bin);</div><div class='add'>+        key = pair-&gt;key;</div><div class='add'>+        value = pair-&gt;val;</div><div class='ctx'>     }</div><div class='ctx'>     old_key = key;</div><div class='ctx'>     retval = (*func)(&amp;key, &amp;value, arg, existing);</div><div class='add'>+    /* pair can be invalid here because of theap */</div><div class='ctx'> </div><div class='ctx'>     switch (retval) {</div><div class='ctx'>       case ST_CONTINUE:</div><div class='hunk'>@@ -849,16 +1074,16 @@ ar_update(VALUE hash, st_data_t key,</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-            ar_table_entry *entry = RHASH_AR_TABLE_REF(hash, bin);</div><div class='add'>+            ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, bin);</div><div class='ctx'>             if (old_key != key) {</div><div class='del'>-                entry-&gt;key = key;</div><div class='add'>+                pair-&gt;key = key;</div><div class='ctx'>             }</div><div class='del'>-            entry-&gt;record = value;</div><div class='add'>+            pair-&gt;val = value;</div><div class='ctx'>         }</div><div class='ctx'>         break;</div><div class='ctx'>       case ST_DELETE:</div><div class='ctx'>         if (existing) {</div><div class='del'>-            clear_entry(RHASH_AR_TABLE_REF(hash, bin));</div><div class='add'>+            ar_clear_entry(hash, bin);</div><div class='ctx'>             RHASH_AR_TABLE_SIZE_DEC(hash);</div><div class='ctx'>         }</div><div class='ctx'>         break;</div><div class='hunk'>@@ -870,11 +1095,16 @@ static int</div><div class='ctx'> ar_insert(VALUE hash, st_data_t key, st_data_t value)</div><div class='ctx'> {</div><div class='ctx'>     unsigned bin = RHASH_AR_TABLE_BOUND(hash);</div><div class='del'>-    st_hash_t hash_value = do_hash(key);</div><div class='add'>+    st_hash_t hash_value = ar_do_hash(key);</div><div class='add'>+</div><div class='add'>+    if (UNLIKELY(!RHASH_AR_TABLE_P(hash))) {</div><div class='add'>+        // `#hash` changes ar_table -&gt; st_table</div><div class='add'>+        return -1;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     hash_ar_table(hash); /* prepare ltbl */</div><div class='ctx'> </div><div class='del'>-    bin = find_entry(hash, hash_value, key);</div><div class='add'>+    bin = ar_find_entry(hash, hash_value, key);</div><div class='ctx'>     if (bin == RHASH_AR_TABLE_MAX_BOUND) {</div><div class='ctx'>         if (RHASH_AR_TABLE_SIZE(hash) &gt;= RHASH_AR_TABLE_MAX_SIZE) {</div><div class='ctx'>             return -1;</div><div class='hunk'>@@ -885,13 +1115,13 @@ ar_insert(VALUE hash, st_data_t key, st_data_t value)</div><div class='ctx'>         }</div><div class='ctx'>         HASH_ASSERT(bin &lt; RHASH_AR_TABLE_MAX_BOUND);</div><div class='ctx'> </div><div class='del'>-        set_entry(RHASH_AR_TABLE_REF(hash, bin), key, value, hash_value);</div><div class='add'>+        ar_set_entry(hash, bin, key, value, hash_value);</div><div class='ctx'>         RHASH_AR_TABLE_BOUND_SET(hash, bin+1);</div><div class='ctx'>         RHASH_AR_TABLE_SIZE_INC(hash);</div><div class='ctx'>         return 0;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        RHASH_AR_TABLE_REF(hash, bin)-&gt;record = value;</div><div class='add'>+        RHASH_AR_TABLE_REF(hash, bin)-&gt;val = value;</div><div class='ctx'>         return 1;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='hunk'>@@ -899,18 +1129,27 @@ ar_insert(VALUE hash, st_data_t key, st_data_t value)</div><div class='ctx'> static int</div><div class='ctx'> ar_lookup(VALUE hash, st_data_t key, st_data_t *value)</div><div class='ctx'> {</div><div class='del'>-    st_hash_t hash_value = do_hash(key);</div><div class='del'>-    unsigned bin = find_entry(hash, hash_value, key);</div><div class='del'>-</div><div class='del'>-    if (bin == RHASH_AR_TABLE_MAX_BOUND) {</div><div class='add'>+    if (RHASH_AR_TABLE_SIZE(hash) == 0) {</div><div class='ctx'>         return 0;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        HASH_ASSERT(bin &lt; RHASH_AR_TABLE_MAX_BOUND);</div><div class='del'>-        if (value != NULL) {</div><div class='del'>-            *value = RHASH_AR_TABLE_REF(hash, bin)-&gt;record;</div><div class='add'>+        st_hash_t hash_value = ar_do_hash(key);</div><div class='add'>+        if (UNLIKELY(!RHASH_AR_TABLE_P(hash))) {</div><div class='add'>+            // `#hash` changes ar_table -&gt; st_table</div><div class='add'>+            return st_lookup(RHASH_ST_TABLE(hash), key, value);</div><div class='add'>+        }</div><div class='add'>+        unsigned bin = ar_find_entry(hash, hash_value, key);</div><div class='add'>+</div><div class='add'>+        if (bin == RHASH_AR_TABLE_MAX_BOUND) {</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            HASH_ASSERT(bin &lt; RHASH_AR_TABLE_MAX_BOUND);</div><div class='add'>+            if (value != NULL) {</div><div class='add'>+                *value = RHASH_AR_TABLE_REF(hash, bin)-&gt;val;</div><div class='add'>+            }</div><div class='add'>+            return 1;</div><div class='ctx'>         }</div><div class='del'>-        return 1;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -918,19 +1157,25 @@ static int</div><div class='ctx'> ar_delete(VALUE hash, st_data_t *key, st_data_t *value)</div><div class='ctx'> {</div><div class='ctx'>     unsigned bin;</div><div class='del'>-    st_hash_t hash_value = do_hash(*key);</div><div class='add'>+    st_hash_t hash_value = ar_do_hash(*key);</div><div class='ctx'> </div><div class='add'>+    if (UNLIKELY(!RHASH_AR_TABLE_P(hash))) {</div><div class='add'>+        // `#hash` changes ar_table -&gt; st_table</div><div class='add'>+        return st_delete(RHASH_ST_TABLE(hash), key, value);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    bin = find_entry(hash, hash_value, *key);</div><div class='add'>+    bin = ar_find_entry(hash, hash_value, *key);</div><div class='ctx'> </div><div class='ctx'>     if (bin == RHASH_AR_TABLE_MAX_BOUND) {</div><div class='ctx'>         if (value != 0) *value = 0;</div><div class='ctx'>         return 0;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        ar_table_entry *entry = RHASH_AR_TABLE_REF(hash, bin);</div><div class='del'>-        if (value != 0) *value = entry-&gt;record;</div><div class='del'>-        clear_entry(entry);</div><div class='add'>+        if (value != 0) {</div><div class='add'>+            ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, bin);</div><div class='add'>+            *value = pair-&gt;val;</div><div class='add'>+        }</div><div class='add'>+        ar_clear_entry(hash, bin);</div><div class='ctx'>         RHASH_AR_TABLE_SIZE_DEC(hash);</div><div class='ctx'>         return 1;</div><div class='ctx'>     }</div><div class='hunk'>@@ -941,20 +1186,19 @@ ar_shift(VALUE hash, st_data_t *key, st_data_t *value)</div><div class='ctx'> {</div><div class='ctx'>     if (RHASH_AR_TABLE_SIZE(hash) &gt; 0) {</div><div class='ctx'>         unsigned i, bound = RHASH_AR_TABLE_BOUND(hash);</div><div class='del'>-        ar_table_entry *entry, *entries = RHASH_AR_TABLE(hash)-&gt;entries;</div><div class='ctx'> </div><div class='ctx'>         for (i = 0; i &lt; bound; i++) {</div><div class='del'>-            entry = &amp;entries[i];</div><div class='del'>-            if (!empty_entry(entry)) {</div><div class='del'>-                if (value != 0) *value = entry-&gt;record;</div><div class='del'>-                *key = entry-&gt;key;</div><div class='del'>-                clear_entry(entry);</div><div class='add'>+            if (!ar_cleared_entry(hash, i)) {</div><div class='add'>+                ar_table_pair *pair = RHASH_AR_TABLE_REF(hash, i);</div><div class='add'>+                if (value != 0) *value = pair-&gt;val;</div><div class='add'>+                *key = pair-&gt;key;</div><div class='add'>+                ar_clear_entry(hash, i);</div><div class='ctx'>                 RHASH_AR_TABLE_SIZE_DEC(hash);</div><div class='ctx'>                 return 1;</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='del'>-    if (value != 0) *value = 0;</div><div class='add'>+    if (value != NULL) *value = 0;</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -969,9 +1213,9 @@ ar_keys(VALUE hash, st_data_t *keys, st_index_t size)</div><div class='ctx'>           break;</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-            ar_table_entry *cur_entry = RHASH_AR_TABLE_REF(hash, i);</div><div class='del'>-            if (!empty_entry(cur_entry))</div><div class='del'>-              *keys++ = cur_entry-&gt;key;</div><div class='add'>+            if (!ar_cleared_entry(hash, i)) {</div><div class='add'>+                *keys++ = RHASH_AR_TABLE_REF(hash, i)-&gt;key;</div><div class='add'>+            }</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -989,9 +1233,9 @@ ar_values(VALUE hash, st_data_t *values, st_index_t size)</div><div class='ctx'>           break;</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-            ar_table_entry *cur_entry = RHASH_AR_TABLE_REF(hash, i);</div><div class='del'>-            if (!empty_entry(cur_entry))</div><div class='del'>-              *values++ = cur_entry-&gt;record;</div><div class='add'>+            if (!ar_cleared_entry(hash, i)) {</div><div class='add'>+                *values++ = RHASH_AR_TABLE_REF(hash, i)-&gt;val;</div><div class='add'>+            }</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -1016,9 +1260,10 @@ ar_copy(VALUE hash1, VALUE hash2)</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='ctx'>         *new_tab = *old_tab;</div><div class='add'>+        RHASH(hash1)-&gt;ar_hint.word = RHASH(hash2)-&gt;ar_hint.word;</div><div class='ctx'>         RHASH_AR_TABLE_BOUND_SET(hash1, RHASH_AR_TABLE_BOUND(hash2));</div><div class='ctx'>         RHASH_AR_TABLE_SIZE_SET(hash1, RHASH_AR_TABLE_SIZE(hash2));</div><div class='del'>-        RHASH_AR_TABLE_SET(hash1, new_tab);</div><div class='add'>+        hash_ar_table_set(hash1, new_tab);</div><div class='ctx'> </div><div class='ctx'>         rb_gc_writebarrier_remember(hash1);</div><div class='ctx'>         return new_tab;</div><div class='hunk'>@@ -1034,7 +1279,7 @@ ar_copy(VALUE hash1, VALUE hash2)</div><div class='ctx'>             ruby_xfree(RHASH_AR_TABLE(hash1));</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='del'>-        RHASH_AR_TABLE_SET(hash1, NULL);</div><div class='add'>+        hash_ar_table_set(hash1, NULL);</div><div class='ctx'> </div><div class='ctx'>         rb_gc_writebarrier_remember(hash1);</div><div class='ctx'>         return old_tab;</div><div class='hunk'>@@ -1063,21 +1308,19 @@ rb_hash_transient_heap_evacuate(VALUE hash, int promote)</div><div class='ctx'>         ar_table *old_tab = RHASH_AR_TABLE(hash);</div><div class='ctx'> </div><div class='ctx'>         if (UNLIKELY(old_tab == NULL)) {</div><div class='del'>-            rb_gc_force_recycle(hash);</div><div class='ctx'>             return;</div><div class='ctx'>         }</div><div class='ctx'>         HASH_ASSERT(old_tab != NULL);</div><div class='add'>+        if (! promote) {</div><div class='add'>+            new_tab = rb_transient_heap_alloc(hash, sizeof(ar_table));</div><div class='add'>+            if (new_tab == NULL) promote = true;</div><div class='add'>+        }</div><div class='ctx'>         if (promote) {</div><div class='del'>-          promote:</div><div class='ctx'>             new_tab = ruby_xmalloc(sizeof(ar_table));</div><div class='ctx'>             RHASH_UNSET_TRANSIENT_FLAG(hash);</div><div class='ctx'>         }</div><div class='del'>-        else {</div><div class='del'>-            new_tab = rb_transient_heap_alloc(hash, sizeof(ar_table));</div><div class='del'>-            if (new_tab == NULL) goto promote;</div><div class='del'>-        }</div><div class='ctx'>         *new_tab = *old_tab;</div><div class='del'>-        RHASH_AR_TABLE_SET(hash, new_tab);</div><div class='add'>+        hash_ar_table_set(hash, new_tab);</div><div class='ctx'>     }</div><div class='ctx'>     hash_verify(hash);</div><div class='ctx'> }</div><div class='hunk'>@@ -1100,13 +1343,13 @@ foreach_safe_i(st_data_t key, st_data_t value, st_data_t args, int error)</div><div class='ctx'>     if (error) return ST_STOP;</div><div class='ctx'>     status = (*arg-&gt;func)(key, value, arg-&gt;arg);</div><div class='ctx'>     if (status == ST_CONTINUE) {</div><div class='del'>-	return ST_CHECK;</div><div class='add'>+        return ST_CHECK;</div><div class='ctx'>     }</div><div class='ctx'>     return status;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-st_foreach_safe(st_table *table, int (*func)(ANYARGS), st_data_t a)</div><div class='add'>+st_foreach_safe(st_table *table, st_foreach_func *func, st_data_t a)</div><div class='ctx'> {</div><div class='ctx'>     struct foreach_safe_arg arg;</div><div class='ctx'> </div><div class='hunk'>@@ -1114,7 +1357,7 @@ st_foreach_safe(st_table *table, int (*func)(ANYARGS), st_data_t a)</div><div class='ctx'>     arg.func = (st_foreach_func *)func;</div><div class='ctx'>     arg.arg = a;</div><div class='ctx'>     if (st_foreach_check(table, foreach_safe_i, (st_data_t)&amp;arg, 0)) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "hash modified during iteration");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "hash modified during iteration");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1127,15 +1370,8 @@ struct hash_foreach_arg {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-hash_ar_foreach_iter(st_data_t key, st_data_t value, st_data_t argp, int error)</div><div class='add'>+hash_iter_status_check(int status)</div><div class='ctx'> {</div><div class='del'>-    struct hash_foreach_arg *arg = (struct hash_foreach_arg *)argp;</div><div class='del'>-    int status;</div><div class='del'>-</div><div class='del'>-    if (error) return ST_STOP;</div><div class='del'>-    status = (*arg-&gt;func)((VALUE)key, (VALUE)value, arg-&gt;arg);</div><div class='del'>-    /* TODO: rehash check? rb_raise(rb_eRuntimeError, "rehash occurred during iteration"); */</div><div class='del'>-</div><div class='ctx'>     switch (status) {</div><div class='ctx'>       case ST_DELETE:</div><div class='ctx'>         return ST_DELETE;</div><div class='hunk'>@@ -1144,49 +1380,130 @@ hash_ar_foreach_iter(st_data_t key, st_data_t value, st_data_t argp, int error)</div><div class='ctx'>       case ST_STOP:</div><div class='ctx'>         return ST_STOP;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     return ST_CHECK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='add'>+hash_ar_foreach_iter(st_data_t key, st_data_t value, st_data_t argp, int error)</div><div class='add'>+{</div><div class='add'>+    struct hash_foreach_arg *arg = (struct hash_foreach_arg *)argp;</div><div class='add'>+</div><div class='add'>+    if (error) return ST_STOP;</div><div class='add'>+</div><div class='add'>+    int status = (*arg-&gt;func)((VALUE)key, (VALUE)value, arg-&gt;arg);</div><div class='add'>+    /* TODO: rehash check? rb_raise(rb_eRuntimeError, "rehash occurred during iteration"); */</div><div class='add'>+</div><div class='add'>+    return hash_iter_status_check(status);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='ctx'> hash_foreach_iter(st_data_t key, st_data_t value, st_data_t argp, int error)</div><div class='ctx'> {</div><div class='ctx'>     struct hash_foreach_arg *arg = (struct hash_foreach_arg *)argp;</div><div class='del'>-    int status;</div><div class='del'>-    st_table *tbl;</div><div class='ctx'> </div><div class='ctx'>     if (error) return ST_STOP;</div><div class='del'>-    tbl = RHASH_ST_TABLE(arg-&gt;hash);</div><div class='del'>-    status = (*arg-&gt;func)((VALUE)key, (VALUE)value, arg-&gt;arg);</div><div class='add'>+</div><div class='add'>+    st_table *tbl = RHASH_ST_TABLE(arg-&gt;hash);</div><div class='add'>+    int status = (*arg-&gt;func)((VALUE)key, (VALUE)value, arg-&gt;arg);</div><div class='add'>+</div><div class='ctx'>     if (RHASH_ST_TABLE(arg-&gt;hash) != tbl) {</div><div class='del'>-    	rb_raise(rb_eRuntimeError, "rehash occurred during iteration");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "rehash occurred during iteration");</div><div class='ctx'>     }</div><div class='del'>-    switch (status) {</div><div class='del'>-      case ST_DELETE:</div><div class='del'>-	return ST_DELETE;</div><div class='del'>-      case ST_CONTINUE:</div><div class='del'>-	break;</div><div class='del'>-      case ST_STOP:</div><div class='del'>-	return ST_STOP;</div><div class='add'>+</div><div class='add'>+    return hash_iter_status_check(status);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iter_lev_in_ivar(VALUE hash)</div><div class='add'>+{</div><div class='add'>+    VALUE levval = rb_ivar_get(hash, id_hash_iter_lev);</div><div class='add'>+    HASH_ASSERT(FIXNUM_P(levval));</div><div class='add'>+    return FIX2INT(levval);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void rb_ivar_set_internal(VALUE obj, ID id, VALUE val);</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+iter_lev_in_ivar_set(VALUE hash, int lev)</div><div class='add'>+{</div><div class='add'>+    rb_ivar_set_internal(hash, id_hash_iter_lev, INT2FIX(lev));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+iter_lev_in_flags(VALUE hash)</div><div class='add'>+{</div><div class='add'>+    unsigned int u = (unsigned int)((RBASIC(hash)-&gt;flags &gt;&gt; RHASH_LEV_SHIFT) &amp; RHASH_LEV_MAX);</div><div class='add'>+    return (int)u;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+iter_lev_in_flags_set(VALUE hash, int lev)</div><div class='add'>+{</div><div class='add'>+    RBASIC(hash)-&gt;flags = ((RBASIC(hash)-&gt;flags &amp; ~RHASH_LEV_MASK) | ((VALUE)lev &lt;&lt; RHASH_LEV_SHIFT));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+RHASH_ITER_LEV(VALUE hash)</div><div class='add'>+{</div><div class='add'>+    int lev = iter_lev_in_flags(hash);</div><div class='add'>+</div><div class='add'>+    if (lev == RHASH_LEV_MAX) {</div><div class='add'>+        return iter_lev_in_ivar(hash);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return lev;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+hash_iter_lev_inc(VALUE hash)</div><div class='add'>+{</div><div class='add'>+    int lev = iter_lev_in_flags(hash);</div><div class='add'>+    if (lev == RHASH_LEV_MAX) {</div><div class='add'>+        lev = iter_lev_in_ivar(hash);</div><div class='add'>+        iter_lev_in_ivar_set(hash, lev+1);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        lev += 1;</div><div class='add'>+        iter_lev_in_flags_set(hash, lev);</div><div class='add'>+        if (lev == RHASH_LEV_MAX) {</div><div class='add'>+            iter_lev_in_ivar_set(hash, lev);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+hash_iter_lev_dec(VALUE hash)</div><div class='add'>+{</div><div class='add'>+    int lev = iter_lev_in_flags(hash);</div><div class='add'>+    if (lev == RHASH_LEV_MAX) {</div><div class='add'>+        lev = iter_lev_in_ivar(hash);</div><div class='add'>+        HASH_ASSERT(lev &gt; 0);</div><div class='add'>+        iter_lev_in_ivar_set(hash, lev-1);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        HASH_ASSERT(lev &gt; 0);</div><div class='add'>+        iter_lev_in_flags_set(hash, lev - 1);</div><div class='ctx'>     }</div><div class='del'>-    return ST_CHECK;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> hash_foreach_ensure_rollback(VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    RHASH_ITER_LEV(hash)++;</div><div class='add'>+    hash_iter_lev_inc(hash);</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> hash_foreach_ensure(VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    RHASH_ITER_LEV(hash)--;</div><div class='add'>+    hash_iter_lev_dec(hash);</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='del'>-rb_hash_stlike_foreach(VALUE hash, int (*func)(ANYARGS), st_data_t arg)</div><div class='add'>+rb_hash_stlike_foreach(VALUE hash, st_foreach_callback_func *func, st_data_t arg)</div><div class='ctx'> {</div><div class='ctx'>     if (RHASH_AR_TABLE_P(hash)) {</div><div class='ctx'>         return ar_foreach(hash, func, arg);</div><div class='hunk'>@@ -1196,6 +1513,17 @@ rb_hash_stlike_foreach(VALUE hash, int (*func)(ANYARGS), st_data_t arg)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+int</div><div class='add'>+rb_hash_stlike_foreach_with_replace(VALUE hash, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg)</div><div class='add'>+{</div><div class='add'>+    if (RHASH_AR_TABLE_P(hash)) {</div><div class='add'>+        return ar_foreach_with_replace(hash, func, replace, arg);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return st_foreach_with_replace(RHASH_ST_TABLE(hash), func, replace, arg);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> hash_foreach_call(VALUE arg)</div><div class='ctx'> {</div><div class='hunk'>@@ -1216,20 +1544,35 @@ hash_foreach_call(VALUE arg)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_hash_foreach(VALUE hash, int (*func)(ANYARGS), VALUE farg)</div><div class='add'>+rb_hash_foreach(VALUE hash, rb_foreach_func *func, VALUE farg)</div><div class='ctx'> {</div><div class='ctx'>     struct hash_foreach_arg arg;</div><div class='ctx'> </div><div class='ctx'>     if (RHASH_TABLE_EMPTY_P(hash))</div><div class='ctx'>         return;</div><div class='del'>-    RHASH_ITER_LEV(hash)++;</div><div class='ctx'>     arg.hash = hash;</div><div class='ctx'>     arg.func = (rb_foreach_func *)func;</div><div class='ctx'>     arg.arg  = farg;</div><div class='del'>-    rb_ensure(hash_foreach_call, (VALUE)&amp;arg, hash_foreach_ensure, hash);</div><div class='add'>+    if (RB_OBJ_FROZEN(hash)) {</div><div class='add'>+        hash_foreach_call((VALUE)&amp;arg);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        hash_iter_lev_inc(hash);</div><div class='add'>+        rb_ensure(hash_foreach_call, (VALUE)&amp;arg, hash_foreach_ensure, hash);</div><div class='add'>+    }</div><div class='ctx'>     hash_verify(hash);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+void rb_st_compact_table(st_table *tab);</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+compact_after_delete(VALUE hash)</div><div class='add'>+{</div><div class='add'>+    if (RHASH_ITER_LEV(hash) == 0 &amp;&amp; RHASH_ST_TABLE_P(hash)) {</div><div class='add'>+        rb_st_compact_table(RHASH_ST_TABLE(hash));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> hash_alloc_flags(VALUE klass, VALUE flags, VALUE ifnone)</div><div class='ctx'> {</div><div class='hunk'>@@ -1261,11 +1604,12 @@ rb_hash_new(void)</div><div class='ctx'>     return hash_alloc(rb_cHash);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_hash_new_compare_by_id(void)</div><div class='add'>+static VALUE</div><div class='add'>+copy_compare_by_id(VALUE hash, VALUE basis)</div><div class='ctx'> {</div><div class='del'>-    VALUE hash = rb_hash_new();</div><div class='del'>-    RHASH_ST_TABLE_SET(hash, rb_init_identtable());</div><div class='add'>+    if (rb_hash_compare_by_id_p(basis)) {</div><div class='add'>+        return rb_hash_compare_by_id(hash);</div><div class='add'>+    }</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1285,11 +1629,15 @@ rb_hash_new_with_size(st_index_t size)</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_hash_new_capa(long capa)</div><div class='add'>+{</div><div class='add'>+    return rb_hash_new_with_size((st_index_t)capa);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-hash_dup(VALUE hash, VALUE klass, VALUE flags)</div><div class='add'>+hash_copy(VALUE ret, VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    VALUE ret = hash_alloc_flags(klass, flags,</div><div class='del'>-				 RHASH_IFNONE(hash));</div><div class='ctx'>     if (!RHASH_EMPTY_P(hash)) {</div><div class='ctx'>         if (RHASH_AR_TABLE_P(hash))</div><div class='ctx'>             ar_copy(ret, hash);</div><div class='hunk'>@@ -1299,12 +1647,25 @@ hash_dup(VALUE hash, VALUE klass, VALUE flags)</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+hash_dup_with_compare_by_id(VALUE hash)</div><div class='add'>+{</div><div class='add'>+    return hash_copy(copy_compare_by_id(rb_hash_new(), hash), hash);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+hash_dup(VALUE hash, VALUE klass, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    return hash_copy(hash_alloc_flags(klass, flags, RHASH_IFNONE(hash)),</div><div class='add'>+                     hash);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='ctx'> rb_hash_dup(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     const VALUE flags = RBASIC(hash)-&gt;flags;</div><div class='ctx'>     VALUE ret = hash_dup(hash, rb_obj_class(hash),</div><div class='del'>-			 flags &amp; (FL_EXIVAR|FL_TAINT|HASH_PROC_DEFAULT));</div><div class='add'>+                         flags &amp; (FL_EXIVAR|RHASH_PROC_DEFAULT));</div><div class='ctx'>     if (flags &amp; FL_EXIVAR)</div><div class='ctx'>         rb_copy_generic_ivar(ret, hash);</div><div class='ctx'>     return ret;</div><div class='hunk'>@@ -1324,23 +1685,16 @@ rb_hash_modify_check(VALUE hash)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> MJIT_FUNC_EXPORTED struct st_table *</div><div class='del'>-#if RHASH_CONVERT_TABLE_DEBUG</div><div class='ctx'> rb_hash_tbl_raw(VALUE hash, const char *file, int line)</div><div class='ctx'> {</div><div class='ctx'>     return ar_force_convert_table(hash, file, line);</div><div class='ctx'> }</div><div class='del'>-#else</div><div class='del'>-rb_hash_tbl_raw(VALUE hash)</div><div class='del'>-{</div><div class='del'>-    return ar_force_convert_table(hash, NULL, 0);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> struct st_table *</div><div class='ctx'> rb_hash_tbl(VALUE hash, const char *file, int line)</div><div class='ctx'> {</div><div class='ctx'>     OBJ_WB_UNPROTECT(hash);</div><div class='del'>-    return RHASH_TBL_RAW(hash);</div><div class='add'>+    return rb_hash_tbl_raw(hash, file, line);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -1377,51 +1731,75 @@ func##_insert(st_data_t *key, st_data_t *val, st_data_t arg, int existing)   \</div><div class='ctx'> </div><div class='ctx'> struct update_arg {</div><div class='ctx'>     st_data_t arg;</div><div class='add'>+    st_update_callback_func *func;</div><div class='ctx'>     VALUE hash;</div><div class='del'>-    VALUE new_key;</div><div class='del'>-    VALUE old_key;</div><div class='del'>-    VALUE new_value;</div><div class='del'>-    VALUE old_value;</div><div class='add'>+    VALUE key;</div><div class='add'>+    VALUE value;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> typedef int (*tbl_update_func)(st_data_t *, st_data_t *, st_data_t, int);</div><div class='ctx'> </div><div class='ctx'> int</div><div class='del'>-rb_hash_stlike_update(VALUE hash, st_data_t key, st_update_callback_func func, st_data_t arg)</div><div class='add'>+rb_hash_stlike_update(VALUE hash, st_data_t key, st_update_callback_func *func, st_data_t arg)</div><div class='ctx'> {</div><div class='ctx'>     if (RHASH_AR_TABLE_P(hash)) {</div><div class='del'>-        int result = ar_update(hash, (st_data_t)key, func, arg);</div><div class='add'>+        int result = ar_update(hash, key, func, arg);</div><div class='ctx'>         if (result == -1) {</div><div class='del'>-            ar_try_convert_table(hash);</div><div class='add'>+            ar_force_convert_table(hash, __FILE__, __LINE__);</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='ctx'>             return result;</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return st_update(RHASH_ST_TABLE(hash), (st_data_t)key, func, arg);</div><div class='add'>+    return st_update(RHASH_ST_TABLE(hash), key, func, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+tbl_update_modify(st_data_t *key, st_data_t *val, st_data_t arg, int existing)</div><div class='add'>+{</div><div class='add'>+    struct update_arg *p = (struct update_arg *)arg;</div><div class='add'>+    st_data_t old_key = *key;</div><div class='add'>+    st_data_t old_value = *val;</div><div class='add'>+    VALUE hash = p-&gt;hash;</div><div class='add'>+    int ret = (p-&gt;func)(key, val, arg, existing);</div><div class='add'>+    switch (ret) {</div><div class='add'>+      default:</div><div class='add'>+        break;</div><div class='add'>+      case ST_CONTINUE:</div><div class='add'>+        if (!existing || *key != old_key || *val != old_value) {</div><div class='add'>+            rb_hash_modify(hash);</div><div class='add'>+            p-&gt;key = *key;</div><div class='add'>+            p-&gt;value = *val;</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      case ST_DELETE:</div><div class='add'>+        if (existing)</div><div class='add'>+            rb_hash_modify(hash);</div><div class='add'>+        break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> tbl_update(VALUE hash, VALUE key, tbl_update_func func, st_data_t optional_arg)</div><div class='ctx'> {</div><div class='del'>-    struct update_arg arg;</div><div class='del'>-    int result;</div><div class='del'>-</div><div class='del'>-    arg.arg = optional_arg;</div><div class='del'>-    arg.hash = hash;</div><div class='del'>-    arg.new_key = 0;</div><div class='del'>-    arg.old_key = Qundef;</div><div class='del'>-    arg.new_value = 0;</div><div class='del'>-    arg.old_value = Qundef;</div><div class='add'>+    struct update_arg arg = {</div><div class='add'>+        .arg = optional_arg,</div><div class='add'>+        .func = func,</div><div class='add'>+        .hash = hash,</div><div class='add'>+        .key  = key,</div><div class='add'>+        .value = (VALUE)optional_arg,</div><div class='add'>+    };</div><div class='ctx'> </div><div class='del'>-    result = rb_hash_stlike_update(hash, key, func, (st_data_t)&amp;arg);</div><div class='add'>+    int ret = rb_hash_stlike_update(hash, key, tbl_update_modify, (st_data_t)&amp;arg);</div><div class='ctx'> </div><div class='ctx'>     /* write barrier */</div><div class='del'>-    if (arg.new_key)   RB_OBJ_WRITTEN(hash, arg.old_key, arg.new_key);</div><div class='del'>-    if (arg.new_value) RB_OBJ_WRITTEN(hash, arg.old_value, arg.new_value);</div><div class='add'>+    RB_OBJ_WRITTEN(hash, Qundef, arg.key);</div><div class='add'>+    RB_OBJ_WRITTEN(hash, Qundef, arg.value);</div><div class='ctx'> </div><div class='del'>-    return result;</div><div class='add'>+    return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define UPDATE_CALLBACK(iter_lev, func) ((iter_lev) &gt; 0 ? func##_noinsert : func##_insert)</div><div class='hunk'>@@ -1437,51 +1815,47 @@ static void</div><div class='ctx'> set_proc_default(VALUE hash, VALUE proc)</div><div class='ctx'> {</div><div class='ctx'>     if (rb_proc_lambda_p(proc)) {</div><div class='del'>-	int n = rb_proc_arity(proc);</div><div class='add'>+        int n = rb_proc_arity(proc);</div><div class='ctx'> </div><div class='del'>-	if (n != 2 &amp;&amp; (n &gt;= 0 || n &lt; -3)) {</div><div class='del'>-	    if (n &lt; 0) n = -n-1;</div><div class='del'>-	    rb_raise(rb_eTypeError, "default_proc takes two arguments (2 for %d)", n);</div><div class='del'>-	}</div><div class='add'>+        if (n != 2 &amp;&amp; (n &gt;= 0 || n &lt; -3)) {</div><div class='add'>+            if (n &lt; 0) n = -n-1;</div><div class='add'>+            rb_raise(rb_eTypeError, "default_proc takes two arguments (2 for %d)", n);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    FL_SET_RAW(hash, HASH_PROC_DEFAULT);</div><div class='add'>+    FL_SET_RAW(hash, RHASH_PROC_DEFAULT);</div><div class='ctx'>     RHASH_SET_IFNONE(hash, proc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Hash.new                          -&gt; new_hash</div><div class='del'>- *     Hash.new(obj)                     -&gt; new_hash</div><div class='del'>- *     Hash.new {|hash, key| block }     -&gt; new_hash</div><div class='del'>- *</div><div class='del'>- *  Returns a new, empty hash. If this hash is subsequently accessed by</div><div class='del'>- *  a key that doesn't correspond to a hash entry, the value returned</div><div class='del'>- *  depends on the style of &lt;code&gt;new&lt;/code&gt; used to create the hash. In</div><div class='del'>- *  the first form, the access returns &lt;code&gt;nil&lt;/code&gt;. If</div><div class='del'>- *  &lt;i&gt;obj&lt;/i&gt; is specified, this single object will be used for</div><div class='del'>- *  all &lt;em&gt;default values&lt;/em&gt;. If a block is specified, it will be</div><div class='del'>- *  called with the hash object and the key, and should return the</div><div class='del'>- *  default value. It is the block's responsibility to store the value</div><div class='del'>- *  in the hash if required.</div><div class='del'>- *</div><div class='del'>- *     h = Hash.new("Go Fish")</div><div class='del'>- *     h["a"] = 100</div><div class='del'>- *     h["b"] = 200</div><div class='del'>- *     h["a"]           #=&gt; 100</div><div class='del'>- *     h["c"]           #=&gt; "Go Fish"</div><div class='del'>- *     # The following alters the single default object</div><div class='del'>- *     h["c"].upcase!   #=&gt; "GO FISH"</div><div class='del'>- *     h["d"]           #=&gt; "GO FISH"</div><div class='del'>- *     h.keys           #=&gt; ["a", "b"]</div><div class='del'>- *</div><div class='del'>- *     # While this creates a new default object each time</div><div class='del'>- *     h = Hash.new { |hash, key| hash[key] = "Go Fish: #{key}" }</div><div class='del'>- *     h["c"]           #=&gt; "Go Fish: c"</div><div class='del'>- *     h["c"].upcase!   #=&gt; "GO FISH: C"</div><div class='del'>- *     h["d"]           #=&gt; "Go Fish: d"</div><div class='del'>- *     h.keys           #=&gt; ["c", "d"]</div><div class='del'>- *</div><div class='add'>+ *     Hash.new(default_value = nil) -&gt; new_hash</div><div class='add'>+ *     Hash.new {|hash, key| ... } -&gt; new_hash</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new empty \Hash object.</div><div class='add'>+ *</div><div class='add'>+ *  The initial default value and initial default proc for the new hash</div><div class='add'>+ *  depend on which form above was used. See {Default Values}[rdoc-ref:Hash@Default+Values].</div><div class='add'>+ *</div><div class='add'>+ *  If neither an argument nor a block given,</div><div class='add'>+ *  initializes both the default value and the default proc to &lt;tt&gt;nil&lt;/tt&gt;:</div><div class='add'>+ *    h = Hash.new</div><div class='add'>+ *    h.default # =&gt; nil</div><div class='add'>+ *    h.default_proc # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  If argument &lt;tt&gt;default_value&lt;/tt&gt; given but no block given,</div><div class='add'>+ *  initializes the default value to the given &lt;tt&gt;default_value&lt;/tt&gt;</div><div class='add'>+ *  and the default proc to &lt;tt&gt;nil&lt;/tt&gt;:</div><div class='add'>+ *    h = Hash.new(false)</div><div class='add'>+ *    h.default # =&gt; false</div><div class='add'>+ *    h.default_proc # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  If a block given but no argument, stores the block as the default proc</div><div class='add'>+ *  and sets the default value to &lt;tt&gt;nil&lt;/tt&gt;:</div><div class='add'>+ *    h = Hash.new {|hash, key| "Default value for #{key}" }</div><div class='add'>+ *    h.default # =&gt; nil</div><div class='add'>+ *    h.default_proc.class # =&gt; Proc</div><div class='add'>+ *    h[:nosuch] # =&gt; "Default value for nosuch"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1491,14 +1865,14 @@ rb_hash_initialize(int argc, VALUE *argv, VALUE hash)</div><div class='ctx'> </div><div class='ctx'>     rb_hash_modify(hash);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	rb_check_arity(argc, 0, 0);</div><div class='del'>-	ifnone = rb_block_proc();</div><div class='del'>-	SET_PROC_DEFAULT(hash, ifnone);</div><div class='add'>+        rb_check_arity(argc, 0, 0);</div><div class='add'>+        ifnone = rb_block_proc();</div><div class='add'>+        SET_PROC_DEFAULT(hash, ifnone);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_check_arity(argc, 0, 1);</div><div class='del'>-	ifnone = argc == 0 ? Qnil : argv[0];</div><div class='del'>-	RHASH_SET_IFNONE(hash, ifnone);</div><div class='add'>+        rb_check_arity(argc, 0, 1);</div><div class='add'>+        ifnone = argc == 0 ? Qnil : argv[0];</div><div class='add'>+        RHASH_SET_IFNONE(hash, ifnone);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return hash;</div><div class='hunk'>@@ -1506,22 +1880,37 @@ rb_hash_initialize(int argc, VALUE *argv, VALUE hash)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Hash[ key, value, ... ]         -&gt; new_hash</div><div class='del'>- *     Hash[ [ [key, value], ... ] ]   -&gt; new_hash</div><div class='del'>- *     Hash[ object ]                  -&gt; new_hash</div><div class='add'>+ *    Hash[] -&gt; new_empty_hash</div><div class='add'>+ *    Hash[hash] -&gt; new_hash</div><div class='add'>+ *    Hash[ [*2_element_arrays] ] -&gt; new_hash</div><div class='add'>+ *    Hash[*objects] -&gt; new_hash</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Hash object populated with the given objects, if any.</div><div class='add'>+ *  See Hash::new.</div><div class='add'>+ *</div><div class='add'>+ *  With no argument, returns a new empty \Hash.</div><div class='add'>+ *</div><div class='add'>+ *  When the single given argument is a \Hash, returns a new \Hash</div><div class='add'>+ *  populated with the entries from the given \Hash, excluding the</div><div class='add'>+ *  default value or proc.</div><div class='add'>+ *</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    Hash[h] # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='del'>- *  Creates a new hash populated with the given objects.</div><div class='add'>+ *  When the single given argument is an \Array of 2-element Arrays,</div><div class='add'>+ *  returns a new \Hash object wherein each 2-element array forms a</div><div class='add'>+ *  key-value entry:</div><div class='ctx'>  *</div><div class='del'>- *  Similar to the literal &lt;code&gt;{ _key_ =&gt; _value_, ... }&lt;/code&gt;. In the first</div><div class='del'>- *  form, keys and values occur in pairs, so there must be an even number of</div><div class='del'>- *  arguments.</div><div class='add'>+ *    Hash[ [ [:foo, 0], [:bar, 1] ] ] # =&gt; {:foo=&gt;0, :bar=&gt;1}</div><div class='ctx'>  *</div><div class='del'>- *  The second and third form take a single argument which is either an array</div><div class='del'>- *  of key-value pairs or an object convertible to a hash.</div><div class='add'>+ *  When the argument count is an even number;</div><div class='add'>+ *  returns a new \Hash object wherein each successive pair of arguments</div><div class='add'>+ *  has become a key-value entry:</div><div class='ctx'>  *</div><div class='del'>- *     Hash["a", 100, "b", 200]             #=&gt; {"a"=&gt;100, "b"=&gt;200}</div><div class='del'>- *     Hash[ [ ["a", 100], ["b", 200] ] ]   #=&gt; {"a"=&gt;100, "b"=&gt;200}</div><div class='del'>- *     Hash["a" =&gt; 100, "b" =&gt; 200]         #=&gt; {"a"=&gt;100, "b"=&gt;200}</div><div class='add'>+ *    Hash[:foo, 0, :bar, 1] # =&gt; {:foo=&gt;0, :bar=&gt;1}</div><div class='add'>+ *</div><div class='add'>+ *  Raises an exception if the argument list does not conform to any</div><div class='add'>+ *  of the above.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1531,56 +1920,42 @@ rb_hash_s_create(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'>     if (argc == 1) {</div><div class='ctx'>         tmp = rb_hash_s_try_convert(Qnil, argv[0]);</div><div class='del'>-	if (!NIL_P(tmp)) {</div><div class='del'>-	    hash = hash_alloc(klass);</div><div class='del'>-            if (RHASH_AR_TABLE_P(tmp)) {</div><div class='del'>-                ar_copy(hash, tmp);</div><div class='del'>-	    }</div><div class='del'>-            else {</div><div class='del'>-                RHASH_ST_TABLE_SET(hash, st_copy(RHASH_ST_TABLE(tmp)));</div><div class='del'>-            }</div><div class='del'>-	    return hash;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	tmp = rb_check_array_type(argv[0]);</div><div class='del'>-	if (!NIL_P(tmp)) {</div><div class='del'>-	    long i;</div><div class='add'>+        if (!NIL_P(tmp)) {</div><div class='add'>+            hash = hash_alloc(klass);</div><div class='add'>+            hash_copy(hash, tmp);</div><div class='add'>+            return hash;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	    hash = hash_alloc(klass);</div><div class='del'>-	    for (i = 0; i &lt; RARRAY_LEN(tmp); ++i) {</div><div class='del'>-		VALUE e = RARRAY_AREF(tmp, i);</div><div class='del'>-		VALUE v = rb_check_array_type(e);</div><div class='del'>-		VALUE key, val = Qnil;</div><div class='add'>+        tmp = rb_check_array_type(argv[0]);</div><div class='add'>+        if (!NIL_P(tmp)) {</div><div class='add'>+            long i;</div><div class='ctx'> </div><div class='del'>-		if (NIL_P(v)) {</div><div class='del'>-#if 0 /* refix in the next release */</div><div class='del'>-		    rb_raise(rb_eArgError, "wrong element type %s at %ld (expected array)",</div><div class='del'>-			     rb_builtin_class_name(e), i);</div><div class='add'>+            hash = hash_alloc(klass);</div><div class='add'>+            for (i = 0; i &lt; RARRAY_LEN(tmp); ++i) {</div><div class='add'>+                VALUE e = RARRAY_AREF(tmp, i);</div><div class='add'>+                VALUE v = rb_check_array_type(e);</div><div class='add'>+                VALUE key, val = Qnil;</div><div class='ctx'> </div><div class='del'>-#else</div><div class='del'>-		    rb_warn("wrong element type %s at %ld (expected array)",</div><div class='del'>-			    rb_builtin_class_name(e), i);</div><div class='del'>-		    rb_warn("ignoring wrong elements is deprecated, remove them explicitly");</div><div class='del'>-		    rb_warn("this causes ArgumentError in the next release");</div><div class='del'>-		    continue;</div><div class='del'>-#endif</div><div class='del'>-		}</div><div class='del'>-		switch (RARRAY_LEN(v)) {</div><div class='del'>-		  default:</div><div class='del'>-		    rb_raise(rb_eArgError, "invalid number of elements (%ld for 1..2)",</div><div class='del'>-			     RARRAY_LEN(v));</div><div class='del'>-		  case 2:</div><div class='del'>-		    val = RARRAY_AREF(v, 1);</div><div class='del'>-		  case 1:</div><div class='del'>-		    key = RARRAY_AREF(v, 0);</div><div class='del'>-		    rb_hash_aset(hash, key, val);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    return hash;</div><div class='del'>-	}</div><div class='add'>+                if (NIL_P(v)) {</div><div class='add'>+                    rb_raise(rb_eArgError, "wrong element type %s at %ld (expected array)",</div><div class='add'>+                             rb_builtin_class_name(e), i);</div><div class='add'>+                }</div><div class='add'>+                switch (RARRAY_LEN(v)) {</div><div class='add'>+                  default:</div><div class='add'>+                    rb_raise(rb_eArgError, "invalid number of elements (%ld for 1..2)",</div><div class='add'>+                             RARRAY_LEN(v));</div><div class='add'>+                  case 2:</div><div class='add'>+                    val = RARRAY_AREF(v, 1);</div><div class='add'>+                  case 1:</div><div class='add'>+                    key = RARRAY_AREF(v, 0);</div><div class='add'>+                    rb_hash_aset(hash, key, val);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            return hash;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (argc % 2 != 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "odd number of arguments for Hash");</div><div class='add'>+        rb_raise(rb_eArgError, "odd number of arguments for Hash");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     hash = hash_alloc(klass);</div><div class='hunk'>@@ -1589,7 +1964,7 @@ rb_hash_s_create(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+MJIT_FUNC_EXPORTED VALUE</div><div class='ctx'> rb_to_hash_type(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     return rb_convert_type_with_id(hash, T_HASH, "Hash", idTo_hash);</div><div class='hunk'>@@ -1604,14 +1979,16 @@ rb_check_hash_type(VALUE hash)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     Hash.try_convert(obj) -&gt; hash or nil</div><div class='add'>+ *    Hash.try_convert(obj) -&gt; obj, new_hash, or nil</div><div class='add'>+ *</div><div class='add'>+ *  If +obj+ is a \Hash object, returns +obj+.</div><div class='ctx'>  *</div><div class='del'>- *  Try to convert &lt;i&gt;obj&lt;/i&gt; into a hash, using to_hash method.</div><div class='del'>- *  Returns converted hash or nil if &lt;i&gt;obj&lt;/i&gt; cannot be converted</div><div class='del'>- *  for any reason.</div><div class='add'>+ *  Otherwise if +obj+ responds to &lt;tt&gt;:to_hash&lt;/tt&gt;,</div><div class='add'>+ *  calls &lt;tt&gt;obj.to_hash&lt;/tt&gt; and returns the result.</div><div class='ctx'>  *</div><div class='del'>- *     Hash.try_convert({1=&gt;2})   # =&gt; {1=&gt;2}</div><div class='del'>- *     Hash.try_convert("1=&gt;2")   # =&gt; nil</div><div class='add'>+ *  Returns +nil+ if +obj+ does not respond to &lt;tt&gt;:to_hash&lt;/tt&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Raises an exception unless &lt;tt&gt;obj.to_hash&lt;/tt&gt; returns a \Hash object.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_s_try_convert(VALUE dummy, VALUE hash)</div><div class='hunk'>@@ -1619,6 +1996,52 @@ rb_hash_s_try_convert(VALUE dummy, VALUE hash)</div><div class='ctx'>     return rb_check_hash_type(hash);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Hash.ruby2_keywords_hash?(hash) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Checks if a given hash is flagged by Module#ruby2_keywords (or</div><div class='add'>+ *  Proc#ruby2_keywords).</div><div class='add'>+ *  This method is not for casual use; debugging, researching, and</div><div class='add'>+ *  some truly necessary cases like serialization of arguments.</div><div class='add'>+ *</div><div class='add'>+ *     ruby2_keywords def foo(*args)</div><div class='add'>+ *       Hash.ruby2_keywords_hash?(args.last)</div><div class='add'>+ *     end</div><div class='add'>+ *     foo(k: 1)   #=&gt; true</div><div class='add'>+ *     foo({k: 1}) #=&gt; false</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_hash_s_ruby2_keywords_hash_p(VALUE dummy, VALUE hash)</div><div class='add'>+{</div><div class='add'>+    Check_Type(hash, T_HASH);</div><div class='add'>+    return RBOOL(RHASH(hash)-&gt;basic.flags &amp; RHASH_PASS_AS_KEYWORDS);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Hash.ruby2_keywords_hash(hash) -&gt; hash</div><div class='add'>+ *</div><div class='add'>+ *  Duplicates a given hash and adds a ruby2_keywords flag.</div><div class='add'>+ *  This method is not for casual use; debugging, researching, and</div><div class='add'>+ *  some truly necessary cases like deserialization of arguments.</div><div class='add'>+ *</div><div class='add'>+ *     h = {k: 1}</div><div class='add'>+ *     h = Hash.ruby2_keywords_hash(h)</div><div class='add'>+ *     def foo(k: 42)</div><div class='add'>+ *       k</div><div class='add'>+ *     end</div><div class='add'>+ *     foo(*[h]) #=&gt; 1 with neither a warning or an error</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_hash_s_ruby2_keywords_hash(VALUE dummy, VALUE hash)</div><div class='add'>+{</div><div class='add'>+    Check_Type(hash, T_HASH);</div><div class='add'>+    hash = rb_hash_dup(hash);</div><div class='add'>+    RHASH(hash)-&gt;basic.flags |= RHASH_PASS_AS_KEYWORDS;</div><div class='add'>+    return hash;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> struct rehash_arg {</div><div class='ctx'>     VALUE hash;</div><div class='ctx'>     st_table *tbl;</div><div class='hunk'>@@ -1638,22 +2061,14 @@ rb_hash_rehash_i(VALUE key, VALUE value, VALUE arg)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.rehash -&gt; hsh</div><div class='del'>- *</div><div class='del'>- *  Rebuilds the hash based on the current hash values for each key. If</div><div class='del'>- *  values of key objects have changed since they were inserted, this</div><div class='del'>- *  method will reindex &lt;i&gt;hsh&lt;/i&gt;. If &lt;code&gt;Hash#rehash&lt;/code&gt; is</div><div class='del'>- *  called while an iterator is traversing the hash, a</div><div class='del'>- *  &lt;code&gt;RuntimeError&lt;/code&gt; will be raised in the iterator.</div><div class='del'>- *</div><div class='del'>- *     a = [ "a", "b" ]</div><div class='del'>- *     c = [ "c", "d" ]</div><div class='del'>- *     h = { a =&gt; 100, c =&gt; 300 }</div><div class='del'>- *     h[a]       #=&gt; 100</div><div class='del'>- *     a[0] = "z"</div><div class='del'>- *     h[a]       #=&gt; nil</div><div class='del'>- *     h.rehash   #=&gt; {["z", "b"]=&gt;100, ["c", "d"]=&gt;300}</div><div class='del'>- *     h[a]       #=&gt; 100</div><div class='add'>+ *     hash.rehash -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Rebuilds the hash table by recomputing the hash index for each key;</div><div class='add'>+ *  returns &lt;tt&gt;self&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  The hash table becomes invalid if the hash value of a key</div><div class='add'>+ *  has changed after the entry was created.</div><div class='add'>+ *  See {Modifying an Active Hash Key}[rdoc-ref:Hash@Modifying+an+Active+Hash+Key].</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -1663,7 +2078,7 @@ rb_hash_rehash(VALUE hash)</div><div class='ctx'>     st_table *tbl;</div><div class='ctx'> </div><div class='ctx'>     if (RHASH_ITER_LEV(hash) &gt; 0) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "rehash during iteration");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "rehash during iteration");</div><div class='ctx'>     }</div><div class='ctx'>     rb_hash_modify_check(hash);</div><div class='ctx'>     if (RHASH_AR_TABLE_P(hash)) {</div><div class='hunk'>@@ -1688,32 +2103,72 @@ rb_hash_rehash(VALUE hash)</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+call_default_proc(VALUE proc, VALUE hash, VALUE key)</div><div class='add'>+{</div><div class='add'>+    VALUE args[2] = {hash, key};</div><div class='add'>+    return rb_proc_call_with_block(proc, 2, args, Qnil);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static bool</div><div class='add'>+rb_hash_default_unredefined(VALUE hash)</div><div class='add'>+{</div><div class='add'>+    VALUE klass = RBASIC_CLASS(hash);</div><div class='add'>+    if (LIKELY(klass == rb_cHash)) {</div><div class='add'>+        return !!BASIC_OP_UNREDEFINED_P(BOP_DEFAULT, HASH_REDEFINED_OP_FLAG);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return LIKELY(rb_method_basic_definition_p(klass, id_default));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='ctx'> rb_hash_default_value(VALUE hash, VALUE key)</div><div class='ctx'> {</div><div class='del'>-    if (rb_method_basic_definition_p(CLASS_OF(hash), id_default)) {</div><div class='del'>-	VALUE ifnone = RHASH_IFNONE(hash);</div><div class='del'>-	if (!FL_TEST(hash, HASH_PROC_DEFAULT)) return ifnone;</div><div class='del'>-	if (key == Qundef) return Qnil;</div><div class='del'>-	return rb_funcall(ifnone, id_yield, 2, hash, key);</div><div class='add'>+    RUBY_ASSERT(RB_TYPE_P(hash, T_HASH));</div><div class='add'>+</div><div class='add'>+    if (LIKELY(rb_hash_default_unredefined(hash))) {</div><div class='add'>+        VALUE ifnone = RHASH_IFNONE(hash);</div><div class='add'>+        if (LIKELY(!FL_TEST_RAW(hash, RHASH_PROC_DEFAULT))) return ifnone;</div><div class='add'>+        if (UNDEF_P(key)) return Qnil;</div><div class='add'>+        return call_default_proc(ifnone, hash, key);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_funcall(hash, id_default, 1, key);</div><div class='add'>+        return rb_funcall(hash, id_default, 1, key);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static inline int</div><div class='add'>+hash_stlike_lookup(VALUE hash, st_data_t key, st_data_t *pval)</div><div class='add'>+{</div><div class='add'>+    hash_verify(hash);</div><div class='add'>+</div><div class='add'>+    if (RHASH_AR_TABLE_P(hash)) {</div><div class='add'>+        return ar_lookup(hash, key, pval);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return st_lookup(RHASH_ST_TABLE(hash), key, pval);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+MJIT_FUNC_EXPORTED int</div><div class='add'>+rb_hash_stlike_lookup(VALUE hash, st_data_t key, st_data_t *pval)</div><div class='add'>+{</div><div class='add'>+    return hash_stlike_lookup(hash, key, pval);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh[key]    -&gt;  value</div><div class='add'>+ *    hash[key] -&gt; value</div><div class='ctx'>  *</div><div class='del'>- *  Element Reference---Retrieves the &lt;i&gt;value&lt;/i&gt; object corresponding</div><div class='del'>- *  to the &lt;i&gt;key&lt;/i&gt; object. If not found, returns the default value (see</div><div class='del'>- *  &lt;code&gt;Hash::new&lt;/code&gt; for details).</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h["a"]   #=&gt; 100</div><div class='del'>- *     h["c"]   #=&gt; nil</div><div class='add'>+ *  Returns the value associated with the given +key+, if found:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h[:foo] # =&gt; 0</div><div class='ctx'>  *</div><div class='add'>+ *  If +key+ is not found, returns a default value</div><div class='add'>+ *  (see {Default Values}[rdoc-ref:Hash@Default+Values]):</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h[:nosuch] # =&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -1721,26 +2176,11 @@ rb_hash_aref(VALUE hash, VALUE key)</div><div class='ctx'> {</div><div class='ctx'>     st_data_t val;</div><div class='ctx'> </div><div class='del'>-    if (RHASH_AR_TABLE_P(hash) &amp;&amp; ar_lookup(hash, key, &amp;val)) {</div><div class='del'>-        return (VALUE)val;</div><div class='del'>-    }</div><div class='del'>-    else if (RHASH_ST_TABLE_P(hash) &amp;&amp; st_lookup(RHASH_ST_TABLE(hash), key, &amp;val)) {</div><div class='add'>+    if (hash_stlike_lookup(hash, key, &amp;val)) {</div><div class='ctx'>         return (VALUE)val;</div><div class='ctx'>     }</div><div class='del'>-    hash_verify(hash);</div><div class='del'>-    return rb_hash_default_value(hash, key);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-MJIT_FUNC_EXPORTED int</div><div class='del'>-rb_hash_stlike_lookup(VALUE hash, st_data_t key, st_data_t *pval)</div><div class='del'>-{</div><div class='del'>-    hash_verify(hash);</div><div class='del'>-</div><div class='del'>-    if (RHASH_AR_TABLE_P(hash)) {</div><div class='del'>-        return ar_lookup(hash, key, pval);</div><div class='del'>-    }</div><div class='ctx'>     else {</div><div class='del'>-        return st_lookup(RHASH_ST_TABLE(hash), key, pval);</div><div class='add'>+        return rb_hash_default_value(hash, key);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1749,7 +2189,7 @@ rb_hash_lookup2(VALUE hash, VALUE key, VALUE def)</div><div class='ctx'> {</div><div class='ctx'>     st_data_t val;</div><div class='ctx'> </div><div class='del'>-    if (rb_hash_stlike_lookup(hash, key, &amp;val)) {</div><div class='add'>+    if (hash_stlike_lookup(hash, key, &amp;val)) {</div><div class='ctx'>         return (VALUE)val;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='hunk'>@@ -1765,31 +2205,25 @@ rb_hash_lookup(VALUE hash, VALUE key)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.fetch(key [, default] )       -&gt; obj</div><div class='del'>- *     hsh.fetch(key) {| key | block }   -&gt; obj</div><div class='del'>- *</div><div class='del'>- *  Returns a value from the hash for the given key. If the key can't be</div><div class='del'>- *  found, there are several options: With no other arguments, it will</div><div class='del'>- *  raise a &lt;code&gt;KeyError&lt;/code&gt; exception; if &lt;i&gt;default&lt;/i&gt; is given,</div><div class='del'>- *  then that will be returned; if the optional code block is specified,</div><div class='del'>- *  then that will be run and its result returned.</div><div class='add'>+ *    hash.fetch(key) -&gt; object</div><div class='add'>+ *    hash.fetch(key, default_value) -&gt; object</div><div class='add'>+ *    hash.fetch(key) {|key| ... } -&gt; object</div><div class='ctx'>  *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h.fetch("a")                            #=&gt; 100</div><div class='del'>- *     h.fetch("z", "go fish")                 #=&gt; "go fish"</div><div class='del'>- *     h.fetch("z") { |el| "go fish, #{el}"}   #=&gt; "go fish, z"</div><div class='add'>+ *  Returns the value for the given +key+, if found.</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.fetch(:bar) # =&gt; 1</div><div class='ctx'>  *</div><div class='del'>- *  The following example shows that an exception is raised if the key</div><div class='del'>- *  is not found and a default value is not supplied.</div><div class='add'>+ *  If +key+ is not found and no block was given,</div><div class='add'>+ *  returns +default_value+:</div><div class='add'>+ *    {}.fetch(:nosuch, :default) # =&gt; :default</div><div class='ctx'>  *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h.fetch("z")</div><div class='add'>+ *  If +key+ is not found and a block was given,</div><div class='add'>+ *  yields +key+ to the block and returns the block's return value:</div><div class='add'>+ *    {}.fetch(:nosuch) {|key| "No key #{key}"} # =&gt; "No key nosuch"</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='del'>- *</div><div class='del'>- *     prog.rb:2:in `fetch': key not found (KeyError)</div><div class='del'>- *      from prog.rb:2</div><div class='add'>+ *  Raises KeyError if neither +default_value+ nor a block was given.</div><div class='ctx'>  *</div><div class='add'>+ *  Note that this method does not use the values of either #default or #default_proc.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1804,25 +2238,28 @@ rb_hash_fetch_m(int argc, VALUE *argv, VALUE hash)</div><div class='ctx'> </div><div class='ctx'>     block_given = rb_block_given_p();</div><div class='ctx'>     if (block_given &amp;&amp; argc == 2) {</div><div class='del'>-	rb_warn("block supersedes default value argument");</div><div class='del'>-    }</div><div class='del'>-    if (RHASH_AR_TABLE_P(hash) &amp;&amp; ar_lookup(hash, key, &amp;val)) {</div><div class='del'>-        return (VALUE)val;</div><div class='add'>+        rb_warn("block supersedes default value argument");</div><div class='ctx'>     }</div><div class='del'>-    else if (RHASH_ST_TABLE_P(hash) &amp;&amp; st_lookup(RHASH_ST_TABLE(hash), key, &amp;val)) {</div><div class='add'>+</div><div class='add'>+    if (hash_stlike_lookup(hash, key, &amp;val)) {</div><div class='ctx'>         return (VALUE)val;</div><div class='ctx'>     }</div><div class='del'>-    if (block_given) return rb_yield(key);</div><div class='del'>-    if (argc == 1) {</div><div class='del'>-        VALUE desc = rb_protect(rb_inspect, key, 0);</div><div class='del'>-        if (NIL_P(desc)) {</div><div class='del'>-            desc = rb_any_to_s(key);</div><div class='del'>-	}</div><div class='del'>-        desc = rb_str_ellipsize(desc, 65);</div><div class='del'>-        rb_key_err_raise(rb_sprintf("key not found: %"PRIsVALUE, desc), hash, key);</div><div class='add'>+    else {</div><div class='add'>+        if (block_given) {</div><div class='add'>+            return rb_yield(key);</div><div class='add'>+        }</div><div class='add'>+        else if (argc == 1) {</div><div class='add'>+            VALUE desc = rb_protect(rb_inspect, key, 0);</div><div class='add'>+            if (NIL_P(desc)) {</div><div class='add'>+                desc = rb_any_to_s(key);</div><div class='add'>+            }</div><div class='add'>+            desc = rb_str_ellipsize(desc, 65);</div><div class='add'>+            rb_key_err_raise(rb_sprintf("key not found: %"PRIsVALUE, desc), hash, key);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return argv[1];</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    hash_verify(hash);</div><div class='del'>-    return argv[1];</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -1833,59 +2270,49 @@ rb_hash_fetch(VALUE hash, VALUE key)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.default(key=nil)   -&gt; obj</div><div class='del'>- *</div><div class='del'>- *  Returns the default value, the value that would be returned by</div><div class='del'>- *  &lt;i&gt;hsh&lt;/i&gt;[&lt;i&gt;key&lt;/i&gt;] if &lt;i&gt;key&lt;/i&gt; did not exist in &lt;i&gt;hsh&lt;/i&gt;.</div><div class='del'>- *  See also &lt;code&gt;Hash::new&lt;/code&gt; and &lt;code&gt;Hash#default=&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- *     h = Hash.new                            #=&gt; {}</div><div class='del'>- *     h.default                               #=&gt; nil</div><div class='del'>- *     h.default(2)                            #=&gt; nil</div><div class='del'>- *</div><div class='del'>- *     h = Hash.new("cat")                     #=&gt; {}</div><div class='del'>- *     h.default                               #=&gt; "cat"</div><div class='del'>- *     h.default(2)                            #=&gt; "cat"</div><div class='del'>- *</div><div class='del'>- *     h = Hash.new {|h,k| h[k] = k.to_i*10}   #=&gt; {}</div><div class='del'>- *     h.default                               #=&gt; nil</div><div class='del'>- *     h.default(2)                            #=&gt; 20</div><div class='add'>+ *    hash.default -&gt; object</div><div class='add'>+ *    hash.default(key) -&gt; object</div><div class='add'>+ *</div><div class='add'>+ *  Returns the default value for the given +key+.</div><div class='add'>+ *  The returned value will be determined either by the default proc or by the default value.</div><div class='add'>+ *  See {Default Values}[rdoc-ref:Hash@Default+Values].</div><div class='add'>+ *</div><div class='add'>+ *  With no argument, returns the current default value:</div><div class='add'>+ *    h = {}</div><div class='add'>+ *    h.default # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  If +key+ is given, returns the default value for +key+,</div><div class='add'>+ *  regardless of whether that key exists:</div><div class='add'>+ *    h = Hash.new { |hash, key| hash[key] = "No key #{key}"}</div><div class='add'>+ *    h[:foo] = "Hello"</div><div class='add'>+ *    h.default(:foo) # =&gt; "No key foo"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_default(int argc, VALUE *argv, VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    VALUE args[2], ifnone;</div><div class='add'>+    VALUE ifnone;</div><div class='ctx'> </div><div class='ctx'>     rb_check_arity(argc, 0, 1);</div><div class='ctx'>     ifnone = RHASH_IFNONE(hash);</div><div class='del'>-    if (FL_TEST(hash, HASH_PROC_DEFAULT)) {</div><div class='del'>-	if (argc == 0) return Qnil;</div><div class='del'>-	args[0] = hash;</div><div class='del'>-	args[1] = argv[0];</div><div class='del'>-	return rb_funcallv(ifnone, id_yield, 2, args);</div><div class='add'>+    if (FL_TEST(hash, RHASH_PROC_DEFAULT)) {</div><div class='add'>+        if (argc == 0) return Qnil;</div><div class='add'>+        return call_default_proc(ifnone, hash, argv[0]);</div><div class='ctx'>     }</div><div class='ctx'>     return ifnone;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.default = obj     -&gt; obj</div><div class='del'>- *</div><div class='del'>- *  Sets the default value, the value returned for a key that does not</div><div class='del'>- *  exist in the hash. It is not possible to set the default to a</div><div class='del'>- *  &lt;code&gt;Proc&lt;/code&gt; that will be executed on each key lookup.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h.default = "Go fish"</div><div class='del'>- *     h["a"]     #=&gt; 100</div><div class='del'>- *     h["z"]     #=&gt; "Go fish"</div><div class='del'>- *     # This doesn't do what you might hope...</div><div class='del'>- *     h.default = proc do |hash, key|</div><div class='del'>- *       hash[key] = key + key</div><div class='del'>- *     end</div><div class='del'>- *     h[2]       #=&gt; #&lt;Proc:0x401b3948@-:6&gt;</div><div class='del'>- *     h["cat"]   #=&gt; #&lt;Proc:0x401b3948@-:6&gt;</div><div class='add'>+ *    hash.default = value -&gt; object</div><div class='add'>+ *</div><div class='add'>+ *  Sets the default value to +value+; returns +value+:</div><div class='add'>+ *    h = {}</div><div class='add'>+ *    h.default # =&gt; nil</div><div class='add'>+ *    h.default = false # =&gt; false</div><div class='add'>+ *    h.default # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  See {Default Values}[rdoc-ref:Hash@Default+Values].</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1898,39 +2325,37 @@ rb_hash_set_default(VALUE hash, VALUE ifnone)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.default_proc -&gt; anObject</div><div class='del'>- *</div><div class='del'>- *  If &lt;code&gt;Hash::new&lt;/code&gt; was invoked with a block, return that</div><div class='del'>- *  block, otherwise return &lt;code&gt;nil&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- *     h = Hash.new {|h,k| h[k] = k*k }   #=&gt; {}</div><div class='del'>- *     p = h.default_proc                 #=&gt; #&lt;Proc:0x401b3d08@-:1&gt;</div><div class='del'>- *     a = []                             #=&gt; []</div><div class='del'>- *     p.call(a, 2)</div><div class='del'>- *     a                                  #=&gt; [nil, nil, 4]</div><div class='add'>+ *    hash.default_proc -&gt; proc or nil</div><div class='add'>+ *</div><div class='add'>+ *  Returns the default proc for +self+</div><div class='add'>+ *  (see {Default Values}[rdoc-ref:Hash@Default+Values]):</div><div class='add'>+ *    h = {}</div><div class='add'>+ *    h.default_proc # =&gt; nil</div><div class='add'>+ *    h.default_proc = proc {|hash, key| "Default value for #{key}" }</div><div class='add'>+ *    h.default_proc.class # =&gt; Proc</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_default_proc(VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    if (FL_TEST(hash, HASH_PROC_DEFAULT)) {</div><div class='del'>-	return RHASH_IFNONE(hash);</div><div class='add'>+    if (FL_TEST(hash, RHASH_PROC_DEFAULT)) {</div><div class='add'>+        return RHASH_IFNONE(hash);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.default_proc = proc_obj or nil</div><div class='del'>- *</div><div class='del'>- *  Sets the default proc to be executed on each failed key lookup.</div><div class='del'>- *</div><div class='del'>- *     h.default_proc = proc do |hash, key|</div><div class='del'>- *       hash[key] = key + key</div><div class='del'>- *     end</div><div class='del'>- *     h[2]       #=&gt; 4</div><div class='del'>- *     h["cat"]   #=&gt; "catcat"</div><div class='add'>+ *    hash.default_proc = proc -&gt; proc</div><div class='add'>+ *</div><div class='add'>+ *  Sets the default proc for +self+ to +proc+:</div><div class='add'>+ *  (see {Default Values}[rdoc-ref:Hash@Default+Values]):</div><div class='add'>+ *    h = {}</div><div class='add'>+ *    h.default_proc # =&gt; nil</div><div class='add'>+ *    h.default_proc = proc { |hash, key| "Default value for #{key}" }</div><div class='add'>+ *    h.default_proc.class # =&gt; Proc</div><div class='add'>+ *    h.default_proc = nil</div><div class='add'>+ *    h.default_proc # =&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -1940,14 +2365,14 @@ rb_hash_set_default_proc(VALUE hash, VALUE proc)</div><div class='ctx'> </div><div class='ctx'>     rb_hash_modify_check(hash);</div><div class='ctx'>     if (NIL_P(proc)) {</div><div class='del'>-	SET_DEFAULT(hash, proc);</div><div class='del'>-	return proc;</div><div class='add'>+        SET_DEFAULT(hash, proc);</div><div class='add'>+        return proc;</div><div class='ctx'>     }</div><div class='ctx'>     b = rb_check_convert_type_with_id(proc, T_DATA, "Proc", idTo_proc);</div><div class='ctx'>     if (NIL_P(b) || !rb_obj_is_proc(b)) {</div><div class='del'>-	rb_raise(rb_eTypeError,</div><div class='del'>-		 "wrong default_proc type %s (expected Proc)",</div><div class='del'>-		 rb_obj_classname(proc));</div><div class='add'>+        rb_raise(rb_eTypeError,</div><div class='add'>+                 "wrong default_proc type %s (expected Proc)",</div><div class='add'>+                 rb_obj_classname(proc));</div><div class='ctx'>     }</div><div class='ctx'>     proc = b;</div><div class='ctx'>     SET_PROC_DEFAULT(hash, proc);</div><div class='hunk'>@@ -1960,24 +2385,23 @@ key_i(VALUE key, VALUE value, VALUE arg)</div><div class='ctx'>     VALUE *args = (VALUE *)arg;</div><div class='ctx'> </div><div class='ctx'>     if (rb_equal(value, args[0])) {</div><div class='del'>-	args[1] = key;</div><div class='del'>-	return ST_STOP;</div><div class='add'>+        args[1] = key;</div><div class='add'>+        return ST_STOP;</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.key(value)    -&gt; key</div><div class='del'>- *</div><div class='del'>- *  Returns the key of an occurrence of a given value. If the value is</div><div class='del'>- *  not found, returns &lt;code&gt;nil&lt;/code&gt;.</div><div class='add'>+ *    hash.key(value) -&gt; key or nil</div><div class='ctx'>  *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200, "c" =&gt; 300, "d" =&gt; 300 }</div><div class='del'>- *     h.key(200)   #=&gt; "b"</div><div class='del'>- *     h.key(300)   #=&gt; "c"</div><div class='del'>- *     h.key(999)   #=&gt; nil</div><div class='add'>+ *  Returns the key for the first-found entry with the given +value+</div><div class='add'>+ *  (see {Entry Order}[rdoc-ref:Hash@Entry+Order]):</div><div class='add'>+ *    h = {foo: 0, bar: 2, baz: 2}</div><div class='add'>+ *    h.key(0) # =&gt; :foo</div><div class='add'>+ *    h.key(2) # =&gt; :bar</div><div class='ctx'>  *</div><div class='add'>+ *  Returns +nil+ if so such value is found.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1993,14 +2417,6 @@ rb_hash_key(VALUE hash, VALUE value)</div><div class='ctx'>     return args[1];</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* :nodoc: */</div><div class='del'>-static VALUE</div><div class='del'>-rb_hash_index(VALUE hash, VALUE value)</div><div class='del'>-{</div><div class='del'>-    rb_warn("Hash#index is deprecated; use Hash#key");</div><div class='del'>-    return rb_hash_key(hash, value);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> int</div><div class='ctx'> rb_hash_stlike_delete(VALUE hash, st_data_t *pkey, st_data_t *pval)</div><div class='ctx'> {</div><div class='hunk'>@@ -2013,7 +2429,7 @@ rb_hash_stlike_delete(VALUE hash, st_data_t *pkey, st_data_t *pval)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * delete a specified entry a given key.</div><div class='add'>+ * delete a specified entry by a given key.</div><div class='ctx'>  * if there is the corresponding entry, return a value of the entry.</div><div class='ctx'>  * if there is no corresponding entry, return Qundef.</div><div class='ctx'>  */</div><div class='hunk'>@@ -2040,30 +2456,39 @@ rb_hash_delete(VALUE hash, VALUE key)</div><div class='ctx'> {</div><div class='ctx'>     VALUE deleted_value = rb_hash_delete_entry(hash, key);</div><div class='ctx'> </div><div class='del'>-    if (deleted_value != Qundef) { /* likely pass */</div><div class='del'>-	return deleted_value;</div><div class='add'>+    if (!UNDEF_P(deleted_value)) { /* likely pass */</div><div class='add'>+        return deleted_value;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.delete(key)                   -&gt; value</div><div class='del'>- *     hsh.delete(key) {| key | block }  -&gt; value</div><div class='add'>+ *    hash.delete(key) -&gt; value or nil</div><div class='add'>+ *    hash.delete(key) {|key| ... } -&gt; object</div><div class='ctx'>  *</div><div class='del'>- *  Deletes the key-value pair and returns the value from &lt;i&gt;hsh&lt;/i&gt; whose</div><div class='del'>- *  key is equal to &lt;i&gt;key&lt;/i&gt;. If the key is not found, it returns</div><div class='del'>- *  &lt;em&gt;nil&lt;/em&gt;. If the optional code block is given and the</div><div class='del'>- *  key is not found, pass in the key and return the result of</div><div class='del'>- *  &lt;i&gt;block&lt;/i&gt;.</div><div class='add'>+ *  Deletes the entry for the given +key+ and returns its associated value.</div><div class='ctx'>  *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h.delete("a")                              #=&gt; 100</div><div class='del'>- *     h.delete("z")                              #=&gt; nil</div><div class='del'>- *     h.delete("z") { |el| "#{el} not found" }   #=&gt; "z not found"</div><div class='add'>+ *  If no block is given and +key+ is found, deletes the entry and returns the associated value:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.delete(:bar) # =&gt; 1</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='add'>+ *  If no block given and +key+ is not found, returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  If a block is given and +key+ is found, ignores the block,</div><div class='add'>+ *  deletes the entry, and returns the associated value:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.delete(:baz) { |key| raise 'Will never happen'} # =&gt; 2</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1}</div><div class='add'>+ *</div><div class='add'>+ *  If a block is given and +key+ is not found,</div><div class='add'>+ *  calls the block and returns the block's return value:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.delete(:nosuch) { |key| "Key #{key} not found" } # =&gt; "Key nosuch not found"</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2074,16 +2499,17 @@ rb_hash_delete_m(VALUE hash, VALUE key)</div><div class='ctx'>     rb_hash_modify_check(hash);</div><div class='ctx'>     val = rb_hash_delete_entry(hash, key);</div><div class='ctx'> </div><div class='del'>-    if (val != Qundef) {</div><div class='del'>-	return val;</div><div class='add'>+    if (!UNDEF_P(val)) {</div><div class='add'>+        compact_after_delete(hash);</div><div class='add'>+        return val;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    return rb_yield(key);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    return Qnil;</div><div class='del'>-	}</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            return rb_yield(key);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2104,15 +2530,16 @@ shift_i_safe(VALUE key, VALUE value, VALUE arg)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.shift -&gt; anArray or obj</div><div class='add'>+ *    hash.shift -&gt; [key, value] or nil</div><div class='ctx'>  *</div><div class='del'>- *  Removes a key-value pair from &lt;i&gt;hsh&lt;/i&gt; and returns it as the</div><div class='del'>- *  two-item array &lt;code&gt;[&lt;/code&gt; &lt;i&gt;key, value&lt;/i&gt; &lt;code&gt;]&lt;/code&gt;, or</div><div class='del'>- *  the hash's default value if the hash is empty.</div><div class='add'>+ *  Removes the first hash entry</div><div class='add'>+ *  (see {Entry Order}[rdoc-ref:Hash@Entry+Order]);</div><div class='add'>+ *  returns a 2-element \Array containing the removed key and value:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.shift # =&gt; [:foo, 0]</div><div class='add'>+ *    h # =&gt; {:bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='del'>- *     h = { 1 =&gt; "a", 2 =&gt; "b", 3 =&gt; "c" }</div><div class='del'>- *     h.shift   #=&gt; [1, "a"]</div><div class='del'>- *     h         #=&gt; {2=&gt;"b", 3=&gt;"c"}</div><div class='add'>+ *  Returns nil if the hash is empty.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2122,15 +2549,15 @@ rb_hash_shift(VALUE hash)</div><div class='ctx'> </div><div class='ctx'>     rb_hash_modify_check(hash);</div><div class='ctx'>     if (RHASH_AR_TABLE_P(hash)) {</div><div class='del'>-	var.key = Qundef;</div><div class='del'>-	if (RHASH_ITER_LEV(hash) == 0) {</div><div class='add'>+        var.key = Qundef;</div><div class='add'>+        if (RHASH_ITER_LEV(hash) == 0) {</div><div class='ctx'>             if (ar_shift(hash, &amp;var.key, &amp;var.val)) {</div><div class='del'>-		return rb_assoc_new(var.key, var.val);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='add'>+                return rb_assoc_new(var.key, var.val);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='ctx'>             rb_hash_foreach(hash, shift_i_safe, (VALUE)&amp;var);</div><div class='del'>-            if (var.key != Qundef) {</div><div class='add'>+            if (!UNDEF_P(var.key)) {</div><div class='ctx'>                 rb_hash_delete_entry(hash, var.key);</div><div class='ctx'>                 return rb_assoc_new(var.key, var.val);</div><div class='ctx'>             }</div><div class='hunk'>@@ -2144,21 +2571,22 @@ rb_hash_shift(VALUE hash)</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-	    rb_hash_foreach(hash, shift_i_safe, (VALUE)&amp;var);</div><div class='del'>-	    if (var.key != Qundef) {</div><div class='del'>-		rb_hash_delete_entry(hash, var.key);</div><div class='del'>-		return rb_assoc_new(var.key, var.val);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+            rb_hash_foreach(hash, shift_i_safe, (VALUE)&amp;var);</div><div class='add'>+            if (!UNDEF_P(var.key)) {</div><div class='add'>+                rb_hash_delete_entry(hash, var.key);</div><div class='add'>+                return rb_assoc_new(var.key, var.val);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-    return rb_hash_default_value(hash, Qnil);</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> delete_if_i(VALUE key, VALUE value, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(rb_yield_values(2, key, value))) {</div><div class='del'>-	return ST_DELETE;</div><div class='add'>+        rb_hash_modify(hash);</div><div class='add'>+        return ST_DELETE;</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -2171,17 +2599,19 @@ hash_enum_size(VALUE hash, VALUE args, VALUE eobj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.delete_if {| key, value | block }  -&gt; hsh</div><div class='del'>- *     hsh.delete_if                          -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Deletes every key-value pair from &lt;i&gt;hsh&lt;/i&gt; for which &lt;i&gt;block&lt;/i&gt;</div><div class='del'>- *  evaluates to &lt;code&gt;true&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200, "c" =&gt; 300 }</div><div class='del'>- *     h.delete_if {|key, value| key &gt;= "b" }   #=&gt; {"a"=&gt;100}</div><div class='del'>- *</div><div class='add'>+ *    hash.delete_if {|key, value| ... } -&gt; self</div><div class='add'>+ *    hash.delete_if -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  If a block given, calls the block with each key-value pair;</div><div class='add'>+ *  deletes each entry for which the block returns a truthy value;</div><div class='add'>+ *  returns +self+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.delete_if {|key, value| value &gt; 0 } # =&gt; {:foo=&gt;0}</div><div class='add'>+ *</div><div class='add'>+ *  If no block given, returns a new \Enumerator:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.delete_if # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}:delete_if&gt;</div><div class='add'>+ *    e.each { |key, value| value &gt; 0 } # =&gt; {:foo=&gt;0}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -2191,20 +2621,30 @@ rb_hash_delete_if(VALUE hash)</div><div class='ctx'>     rb_hash_modify_check(hash);</div><div class='ctx'>     if (!RHASH_TABLE_EMPTY_P(hash)) {</div><div class='ctx'>         rb_hash_foreach(hash, delete_if_i, hash);</div><div class='add'>+        compact_after_delete(hash);</div><div class='ctx'>     }</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.reject! {| key, value | block }  -&gt; hsh or nil</div><div class='del'>- *     hsh.reject!                          -&gt; an_enumerator</div><div class='add'>+ *    hash.reject! {|key, value| ... } -&gt; self or nil</div><div class='add'>+ *    hash.reject! -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns +self+, whose remaining entries are those</div><div class='add'>+ *  for which the block returns +false+ or +nil+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.reject! {|key, value| value &lt; 2 } # =&gt; {:baz=&gt;2}</div><div class='add'>+ *</div><div class='add'>+ *  Returns +nil+ if no entries are removed.</div><div class='ctx'>  *</div><div class='del'>- *  Equivalent to &lt;code&gt;Hash#delete_if&lt;/code&gt;, but returns</div><div class='del'>- *  &lt;code&gt;nil&lt;/code&gt; if no changes were made.</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.reject! # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}:reject!&gt;</div><div class='add'>+ *    e.each {|key, value| key.start_with?('b') } # =&gt; {:foo=&gt;0}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_hash_reject_bang(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     st_index_t n;</div><div class='hunk'>@@ -2218,57 +2658,47 @@ rb_hash_reject_bang(VALUE hash)</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-reject_i(VALUE key, VALUE value, VALUE result)</div><div class='del'>-{</div><div class='del'>-    if (!RTEST(rb_yield_values(2, key, value))) {</div><div class='del'>-	rb_hash_aset(result, key, value);</div><div class='del'>-    }</div><div class='del'>-    return ST_CONTINUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.reject {|key, value| block}   -&gt; a_hash</div><div class='del'>- *     hsh.reject                        -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Returns a new hash consisting of entries for which the block returns false.</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200, "c" =&gt; 300 }</div><div class='del'>- *     h.reject {|k,v| k &lt; "b"}  #=&gt; {"b" =&gt; 200, "c" =&gt; 300}</div><div class='del'>- *     h.reject {|k,v| v &gt; 100}  #=&gt; {"a" =&gt; 100}</div><div class='add'>+ *    hash.reject {|key, value| ... } -&gt; new_hash</div><div class='add'>+ *    hash.reject -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Hash object whose entries are all those</div><div class='add'>+ *  from +self+ for which the block returns +false+ or +nil+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 = h.reject {|key, value| key.start_with?('b') }</div><div class='add'>+ *    h1 # =&gt; {:foo=&gt;0}</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.reject # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}:reject&gt;</div><div class='add'>+ *    h1 = e.each {|key, value| key.start_with?('b') }</div><div class='add'>+ *    h1 # =&gt; {:foo=&gt;0}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_hash_reject(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     VALUE result;</div><div class='ctx'> </div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);</div><div class='del'>-    if (RTEST(ruby_verbose)) {</div><div class='del'>-	VALUE klass;</div><div class='del'>-	if (HAS_EXTRA_STATES(hash, klass)) {</div><div class='del'>-	    rb_warn("extra states are no longer copied: %+"PRIsVALUE, hash);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    result = rb_hash_new();</div><div class='add'>+    result = hash_dup_with_compare_by_id(hash);</div><div class='ctx'>     if (!RHASH_EMPTY_P(hash)) {</div><div class='del'>-	rb_hash_foreach(hash, reject_i, result);</div><div class='add'>+        rb_hash_foreach(result, delete_if_i, result);</div><div class='add'>+        compact_after_delete(result);</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.slice(*keys) -&gt; a_hash</div><div class='add'>+ *    hash.slice(*keys) -&gt; new_hash</div><div class='ctx'>  *</div><div class='del'>- *  Returns a hash containing only the given keys and their values.</div><div class='add'>+ *  Returns a new \Hash object containing the entries for the given +keys+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.slice(:baz, :foo) # =&gt; {:baz=&gt;2, :foo=&gt;0}</div><div class='ctx'>  *</div><div class='del'>- *     h = { a: 100, b: 200, c: 300 }</div><div class='del'>- *     h.slice(:a)           #=&gt; {:a=&gt;100}</div><div class='del'>- *     h.slice(:b, :c, :d)   #=&gt; {:b=&gt;200, :c=&gt;300}</div><div class='add'>+ *  Any given +keys+ that are not found are ignored.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2278,134 +2708,166 @@ rb_hash_slice(int argc, VALUE *argv, VALUE hash)</div><div class='ctx'>     VALUE key, value, result;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0 || RHASH_EMPTY_P(hash)) {</div><div class='del'>-	return rb_hash_new();</div><div class='add'>+        return copy_compare_by_id(rb_hash_new(), hash);</div><div class='ctx'>     }</div><div class='del'>-    result = rb_hash_new_with_size(argc);</div><div class='add'>+    result = copy_compare_by_id(rb_hash_new_with_size(argc), hash);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; argc; i++) {</div><div class='del'>-	key = argv[i];</div><div class='del'>-	value = rb_hash_lookup2(hash, key, Qundef);</div><div class='del'>-	if (value != Qundef)</div><div class='del'>-	    rb_hash_aset(result, key, value);</div><div class='add'>+        key = argv[i];</div><div class='add'>+        value = rb_hash_lookup2(hash, key, Qundef);</div><div class='add'>+        if (!UNDEF_P(value))</div><div class='add'>+            rb_hash_aset(result, key, value);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   hsh.values_at(key, ...)   -&gt; array</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     hsh.except(*keys) -&gt; a_hash</div><div class='ctx'>  *</div><div class='del'>- * Return an array containing the values associated with the given keys.</div><div class='del'>- * Also see &lt;code&gt;Hash.select&lt;/code&gt;.</div><div class='add'>+ *  Returns a new \Hash excluding entries for the given +keys+:</div><div class='add'>+ *     h = { a: 100, b: 200, c: 300 }</div><div class='add'>+ *     h.except(:a)          #=&gt; {:b=&gt;200, :c=&gt;300}</div><div class='ctx'>  *</div><div class='del'>- *   h = { "cat" =&gt; "feline", "dog" =&gt; "canine", "cow" =&gt; "bovine" }</div><div class='del'>- *   h.values_at("cow", "cat")  #=&gt; ["bovine", "feline"]</div><div class='add'>+ *  Any given +keys+ that are not found are ignored.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='add'>+rb_hash_except(int argc, VALUE *argv, VALUE hash)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    VALUE key, result;</div><div class='add'>+</div><div class='add'>+    result = hash_dup_with_compare_by_id(hash);</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; argc; i++) {</div><div class='add'>+        key = argv[i];</div><div class='add'>+        rb_hash_delete(result, key);</div><div class='add'>+    }</div><div class='add'>+    compact_after_delete(result);</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    hash.values_at(*keys) -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Array containing values for the given +keys+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.values_at(:baz, :foo) # =&gt; [2, 0]</div><div class='add'>+ *</div><div class='add'>+ *  The {default values}[rdoc-ref:Hash@Default+Values] are returned</div><div class='add'>+ *  for any keys that are not found:</div><div class='add'>+ *    h.values_at(:hello, :foo) # =&gt; [nil, 0]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='ctx'> rb_hash_values_at(int argc, VALUE *argv, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     VALUE result = rb_ary_new2(argc);</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;argc; i++) {</div><div class='del'>-	rb_ary_push(result, rb_hash_aref(hash, argv[i]));</div><div class='add'>+        rb_ary_push(result, rb_hash_aref(hash, argv[i]));</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   hsh.fetch_values(key, ...)                 -&gt; array</div><div class='del'>- *   hsh.fetch_values(key, ...) { |key| block } -&gt; array</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    hash.fetch_values(*keys) -&gt; new_array</div><div class='add'>+ *    hash.fetch_values(*keys) {|key| ... } -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- * Returns an array containing the values associated with the given keys</div><div class='del'>- * but also raises &lt;code&gt;KeyError&lt;/code&gt; when one of keys can't be found.</div><div class='del'>- * Also see &lt;code&gt;Hash#values_at&lt;/code&gt; and &lt;code&gt;Hash#fetch&lt;/code&gt;.</div><div class='add'>+ *  Returns a new \Array containing the values associated with the given keys *keys:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.fetch_values(:baz, :foo) # =&gt; [2, 0]</div><div class='ctx'>  *</div><div class='del'>- *   h = { "cat" =&gt; "feline", "dog" =&gt; "canine", "cow" =&gt; "bovine" }</div><div class='add'>+ *  Returns a new empty \Array if no arguments given.</div><div class='ctx'>  *</div><div class='del'>- *   h.fetch_values("cow", "cat")                   #=&gt; ["bovine", "feline"]</div><div class='del'>- *   h.fetch_values("cow", "bird")                  # raises KeyError</div><div class='del'>- *   h.fetch_values("cow", "bird") { |k| k.upcase } #=&gt; ["bovine", "BIRD"]</div><div class='add'>+ *  When a block is given, calls the block with each missing key,</div><div class='add'>+ *  treating the block's return value as the value for that key:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    values = h.fetch_values(:bar, :foo, :bad, :bam) {|key| key.to_s}</div><div class='add'>+ *    values # =&gt; [1, 0, "bad", "bam"]</div><div class='add'>+ *</div><div class='add'>+ *  When no block is given, raises an exception if any given key is not found.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_hash_fetch_values(int argc, VALUE *argv, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     VALUE result = rb_ary_new2(argc);</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;argc; i++) {</div><div class='del'>-	rb_ary_push(result, rb_hash_fetch(hash, argv[i]));</div><div class='add'>+        rb_ary_push(result, rb_hash_fetch(hash, argv[i]));</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-select_i(VALUE key, VALUE value, VALUE result)</div><div class='add'>+keep_if_i(VALUE key, VALUE value, VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    if (RTEST(rb_yield_values(2, key, value))) {</div><div class='del'>-	rb_hash_aset(result, key, value);</div><div class='add'>+    if (!RTEST(rb_yield_values(2, key, value))) {</div><div class='add'>+        rb_hash_modify(hash);</div><div class='add'>+        return ST_DELETE;</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.select {|key, value| block}   -&gt; a_hash</div><div class='del'>- *     hsh.select                        -&gt; an_enumerator</div><div class='del'>- *     hsh.filter {|key, value| block}   -&gt; a_hash</div><div class='del'>- *     hsh.filter                        -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Returns a new hash consisting of entries for which the block returns true.</div><div class='add'>+ *    hash.select {|key, value| ... } -&gt; new_hash</div><div class='add'>+ *    hash.select -&gt; new_enumerator</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *  Hash#filter is an alias for Hash#select.</div><div class='ctx'>  *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200, "c" =&gt; 300 }</div><div class='del'>- *     h.select {|k,v| k &gt; "a"}  #=&gt; {"b" =&gt; 200, "c" =&gt; 300}</div><div class='del'>- *     h.select {|k,v| v &lt; 200}  #=&gt; {"a" =&gt; 100}</div><div class='add'>+ *  Returns a new \Hash object whose entries are those for which the block returns a truthy value:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.select {|key, value| value &lt; 2 } # =&gt; {:foo=&gt;0, :bar=&gt;1}</div><div class='ctx'>  *</div><div class='del'>- *  Hash#filter is an alias for Hash#select.</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.select # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}:select&gt;</div><div class='add'>+ *    e.each {|key, value| value &lt; 2 } # =&gt; {:foo=&gt;0, :bar=&gt;1}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_hash_select(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     VALUE result;</div><div class='ctx'> </div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);</div><div class='del'>-    result = rb_hash_new();</div><div class='add'>+    result = hash_dup_with_compare_by_id(hash);</div><div class='ctx'>     if (!RHASH_EMPTY_P(hash)) {</div><div class='del'>-	rb_hash_foreach(hash, select_i, result);</div><div class='add'>+        rb_hash_foreach(result, keep_if_i, result);</div><div class='add'>+        compact_after_delete(result);</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-keep_if_i(VALUE key, VALUE value, VALUE hash)</div><div class='del'>-{</div><div class='del'>-    if (!RTEST(rb_yield_values(2, key, value))) {</div><div class='del'>-	return ST_DELETE;</div><div class='del'>-    }</div><div class='del'>-    return ST_CONTINUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.select! {| key, value | block }  -&gt; hsh or nil</div><div class='del'>- *     hsh.select!                          -&gt; an_enumerator</div><div class='del'>- *     hsh.filter! {| key, value | block }  -&gt; hsh or nil</div><div class='del'>- *     hsh.filter!                          -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Equivalent to Hash#keep_if, but returns</div><div class='del'>- *  +nil+ if no changes were made.</div><div class='add'>+ *    hash.select! {|key, value| ... } -&gt; self or nil</div><div class='add'>+ *    hash.select! -&gt; new_enumerator</div><div class='ctx'>  *</div><div class='ctx'>  *  Hash#filter! is an alias for Hash#select!.</div><div class='add'>+ *</div><div class='add'>+ *  Returns +self+, whose entries are those for which the block returns a truthy value:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.select! {|key, value| value &lt; 2 }  =&gt; {:foo=&gt;0, :bar=&gt;1}</div><div class='add'>+ *</div><div class='add'>+ *  Returns +nil+ if no entries were removed.</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.select!  # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}:select!&gt;</div><div class='add'>+ *    e.each { |key, value| value &lt; 2 } # =&gt; {:foo=&gt;0, :bar=&gt;1}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_hash_select_bang(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     st_index_t n;</div><div class='hunk'>@@ -2421,18 +2883,22 @@ rb_hash_select_bang(VALUE hash)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.keep_if {| key, value | block }  -&gt; hsh</div><div class='del'>- *     hsh.keep_if                          -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Deletes every key-value pair from &lt;i&gt;hsh&lt;/i&gt; for which &lt;i&gt;block&lt;/i&gt;</div><div class='del'>- *  evaluates to +false+.</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='del'>- *</div><div class='del'>- *  See also Hash#select!.</div><div class='add'>+ *    hash.keep_if {|key, value| ... } -&gt; self</div><div class='add'>+ *    hash.keep_if -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block for each key-value pair;</div><div class='add'>+ *  retains the entry if the block returns a truthy value;</div><div class='add'>+ *  otherwise deletes the entry; returns +self+.</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.keep_if { |key, value| key.start_with?('b') } # =&gt; {:bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.keep_if # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}:keep_if&gt;</div><div class='add'>+ *    e.each { |key, value| key.start_with?('b') } # =&gt; {:bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_hash_keep_if(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);</div><div class='hunk'>@@ -2451,13 +2917,9 @@ clear_i(VALUE key, VALUE value, VALUE dummy)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.clear -&gt; hsh</div><div class='del'>- *</div><div class='del'>- *  Removes all key-value pairs from &lt;i&gt;hsh&lt;/i&gt;.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }   #=&gt; {"a"=&gt;100, "b"=&gt;200}</div><div class='del'>- *     h.clear                          #=&gt; {}</div><div class='add'>+ *    hash.clear -&gt; self</div><div class='ctx'>  *</div><div class='add'>+ *  Removes all hash entries; returns +self+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -2473,6 +2935,7 @@ rb_hash_clear(VALUE hash)</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         st_clear(RHASH_ST_TABLE(hash));</div><div class='add'>+        compact_after_delete(hash);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return hash;</div><div class='hunk'>@@ -2481,14 +2944,6 @@ rb_hash_clear(VALUE hash)</div><div class='ctx'> static int</div><div class='ctx'> hash_aset(st_data_t *key, st_data_t *val, struct update_arg *arg, int existing)</div><div class='ctx'> {</div><div class='del'>-    if (existing) {</div><div class='del'>-	arg-&gt;new_value = arg-&gt;arg;</div><div class='del'>-	arg-&gt;old_value = *val;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	arg-&gt;new_key = *key;</div><div class='del'>-	arg-&gt;new_value = arg-&gt;arg;</div><div class='del'>-    }</div><div class='ctx'>     *val = arg-&gt;arg;</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -2496,11 +2951,11 @@ hash_aset(st_data_t *key, st_data_t *val, struct update_arg *arg, int existing)</div><div class='ctx'> VALUE</div><div class='ctx'> rb_hash_key_str(VALUE key)</div><div class='ctx'> {</div><div class='del'>-    if (!RB_FL_ANY_RAW(key, FL_TAINT|FL_EXIVAR) &amp;&amp; RBASIC_CLASS(key) == rb_cString) {</div><div class='add'>+    if (!RB_FL_ANY_RAW(key, FL_EXIVAR) &amp;&amp; RBASIC_CLASS(key) == rb_cString) {</div><div class='ctx'>         return rb_fstring(key);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_str_new_frozen(key);</div><div class='add'>+        return rb_str_new_frozen(key);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2508,7 +2963,7 @@ static int</div><div class='ctx'> hash_aset_str(st_data_t *key, st_data_t *val, struct update_arg *arg, int existing)</div><div class='ctx'> {</div><div class='ctx'>     if (!existing &amp;&amp; !RB_OBJ_FROZEN(*key)) {</div><div class='del'>-	*key = rb_hash_key_str(*key);</div><div class='add'>+        *key = rb_hash_key_str(*key);</div><div class='ctx'>     }</div><div class='ctx'>     return hash_aset(key, val, arg, existing);</div><div class='ctx'> }</div><div class='hunk'>@@ -2518,29 +2973,28 @@ NOINSERT_UPDATE_CALLBACK(hash_aset_str)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh[key] = value        -&gt; value</div><div class='del'>- *     hsh.store(key, value)   -&gt; value</div><div class='del'>- *</div><div class='del'>- *  == Element Assignment</div><div class='del'>- *</div><div class='del'>- *  Associates the value given by +value+ with the key given by +key+.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h["a"] = 9</div><div class='del'>- *     h["c"] = 4</div><div class='del'>- *     h   #=&gt; {"a"=&gt;9, "b"=&gt;200, "c"=&gt;4}</div><div class='del'>- *     h.store("d", 42) #=&gt; 42</div><div class='del'>- *     h   #=&gt; {"a"=&gt;9, "b"=&gt;200, "c"=&gt;4, "d"=&gt;42}</div><div class='del'>- *</div><div class='del'>- *  +key+ should not have its value changed while it is in use as a key (an</div><div class='del'>- *  &lt;tt&gt;unfrozen String&lt;/tt&gt; passed as a key will be duplicated and frozen).</div><div class='del'>- *</div><div class='del'>- *     a = "a"</div><div class='del'>- *     b = "b".freeze</div><div class='del'>- *     h = { a =&gt; 100, b =&gt; 200 }</div><div class='del'>- *     h.key(100).equal? a #=&gt; false</div><div class='del'>- *     h.key(200).equal? b #=&gt; true</div><div class='del'>- *</div><div class='add'>+ *    hash[key] = value -&gt; value</div><div class='add'>+ *    hash.store(key, value)</div><div class='add'>+ *</div><div class='add'>+ *  Hash#store is an alias for Hash#[]=.</div><div class='add'>+</div><div class='add'>+ *  Associates the given +value+ with the given +key+; returns +value+.</div><div class='add'>+ *</div><div class='add'>+ *  If the given +key+ exists, replaces its value with the given +value+;</div><div class='add'>+ *  the ordering is not affected</div><div class='add'>+ *  (see {Entry Order}[rdoc-ref:Hash@Entry+Order]):</div><div class='add'>+ *    h = {foo: 0, bar: 1}</div><div class='add'>+ *    h[:foo] = 2 # =&gt; 2</div><div class='add'>+ *    h.store(:bar, 3) # =&gt; 3</div><div class='add'>+ *    h # =&gt; {:foo=&gt;2, :bar=&gt;3}</div><div class='add'>+ *</div><div class='add'>+ *  If +key+ does not exist, adds the +key+ and +value+;</div><div class='add'>+ *  the new entry is last in the order</div><div class='add'>+ *  (see {Entry Order}[rdoc-ref:Hash@Entry+Order]):</div><div class='add'>+ *    h = {foo: 0, bar: 1}</div><div class='add'>+ *    h[:baz] = 2 # =&gt; 2</div><div class='add'>+ *    h.store(:bat, 3) # =&gt; 3</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2, :bat=&gt;3}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -2551,72 +3005,27 @@ rb_hash_aset(VALUE hash, VALUE key, VALUE val)</div><div class='ctx'>     rb_hash_modify(hash);</div><div class='ctx'> </div><div class='ctx'>     if (RHASH_TABLE_NULL_P(hash)) {</div><div class='del'>-	if (iter_lev &gt; 0) no_new_key();</div><div class='add'>+        if (iter_lev &gt; 0) no_new_key();</div><div class='ctx'>         ar_alloc_table(hash);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (RHASH_TYPE(hash) == &amp;identhash || rb_obj_class(key) != rb_cString) {</div><div class='del'>-	RHASH_UPDATE_ITER(hash, iter_lev, key, hash_aset, val);</div><div class='add'>+    if (!RHASH_STRING_KEY_P(hash, key)) {</div><div class='add'>+        RHASH_UPDATE_ITER(hash, iter_lev, key, hash_aset, val);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	RHASH_UPDATE_ITER(hash, iter_lev, key, hash_aset_str, val);</div><div class='add'>+        RHASH_UPDATE_ITER(hash, iter_lev, key, hash_aset_str, val);</div><div class='ctx'>     }</div><div class='ctx'>     return val;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-replace_i(VALUE key, VALUE val, VALUE hash)</div><div class='del'>-{</div><div class='del'>-    rb_hash_aset(hash, key, val);</div><div class='del'>-</div><div class='del'>-    return ST_CONTINUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* :nodoc: */</div><div class='del'>-static VALUE</div><div class='del'>-rb_hash_initialize_copy(VALUE hash, VALUE hash2)</div><div class='del'>-{</div><div class='del'>-    rb_hash_modify_check(hash);</div><div class='del'>-    hash2 = to_hash(hash2);</div><div class='del'>-</div><div class='del'>-    Check_Type(hash2, T_HASH);</div><div class='del'>-</div><div class='del'>-    if (hash == hash2) return hash;</div><div class='del'>-</div><div class='del'>-    if (RHASH_AR_TABLE_P(hash2)) {</div><div class='del'>-        if (RHASH_AR_TABLE_P(hash)) ar_free_and_clear_table(hash);</div><div class='del'>-        ar_copy(hash, hash2);</div><div class='del'>-        if (RHASH_AR_TABLE_SIZE(hash))</div><div class='del'>-	    rb_hash_rehash(hash);</div><div class='del'>-    }</div><div class='del'>-    else if (RHASH_ST_TABLE_P(hash2)) {</div><div class='del'>-        if (RHASH_ST_TABLE_P(hash)) st_free_table(RHASH_ST_TABLE(hash));</div><div class='del'>-        RHASH_ST_TABLE_SET(hash, st_copy(RHASH_ST_TABLE(hash2)));</div><div class='del'>-        if (RHASH_ST_TABLE(hash)-&gt;num_entries)</div><div class='del'>-            rb_hash_rehash(hash);</div><div class='del'>-    }</div><div class='del'>-    else if (RHASH_AR_TABLE_P(hash)) {</div><div class='del'>-        ar_clear(hash);</div><div class='del'>-    }</div><div class='del'>-    else if (RHASH_ST_TABLE_P(hash)) {</div><div class='del'>-        st_clear(RHASH_ST_TABLE(hash));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    COPY_DEFAULT(hash, hash2);</div><div class='del'>-</div><div class='del'>-    return hash;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.replace(other_hash) -&gt; hsh</div><div class='del'>- *</div><div class='del'>- *  Replaces the contents of &lt;i&gt;hsh&lt;/i&gt; with the contents of</div><div class='del'>- *  &lt;i&gt;other_hash&lt;/i&gt;.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h.replace({ "c" =&gt; 300, "d" =&gt; 400 })   #=&gt; {"c"=&gt;300, "d"=&gt;400}</div><div class='add'>+ *    hash.replace(other_hash) -&gt; self</div><div class='ctx'>  *</div><div class='add'>+ *  Replaces the entire contents of +self+ with the contents of +other_hash+;</div><div class='add'>+ *  returns +self+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.replace({bat: 3, bam: 4}) # =&gt; {:bat=&gt;3, :bam=&gt;4}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2624,42 +3033,38 @@ rb_hash_replace(VALUE hash, VALUE hash2)</div><div class='ctx'> {</div><div class='ctx'>     rb_hash_modify_check(hash);</div><div class='ctx'>     if (hash == hash2) return hash;</div><div class='add'>+    if (RHASH_ITER_LEV(hash) &gt; 0) {</div><div class='add'>+        rb_raise(rb_eRuntimeError, "can't replace hash during iteration");</div><div class='add'>+    }</div><div class='ctx'>     hash2 = to_hash(hash2);</div><div class='ctx'> </div><div class='ctx'>     COPY_DEFAULT(hash, hash2);</div><div class='ctx'> </div><div class='del'>-    rb_hash_clear(hash);</div><div class='del'>-</div><div class='ctx'>     if (RHASH_AR_TABLE_P(hash)) {</div><div class='del'>-        if (RHASH_AR_TABLE_P(hash2)) {</div><div class='del'>-            ar_copy(hash, hash2);</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            goto st_to_st;</div><div class='del'>-        }</div><div class='add'>+        ar_free_and_clear_table(hash);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        if (RHASH_AR_TABLE_P(hash2)) ar_force_convert_table(hash2, __FILE__, __LINE__);</div><div class='del'>-      st_to_st:</div><div class='del'>-        RHASH_TBL_RAW(hash)-&gt;type = RHASH_ST_TABLE(hash2)-&gt;type;</div><div class='del'>-        rb_hash_foreach(hash2, replace_i, hash);</div><div class='add'>+        st_free_table(RHASH_ST_TABLE(hash));</div><div class='add'>+        RHASH_ST_CLEAR(hash);</div><div class='add'>+    }</div><div class='add'>+    hash_copy(hash, hash2);</div><div class='add'>+    if (RHASH_EMPTY_P(hash2) &amp;&amp; RHASH_ST_TABLE_P(hash2)) {</div><div class='add'>+        /* ident hash */</div><div class='add'>+        RHASH_ST_TABLE_SET(hash, st_init_table_with_size(RHASH_TYPE(hash2), 0));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    rb_gc_writebarrier_remember(hash);</div><div class='add'>+</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.length    -&gt;  integer</div><div class='del'>- *     hsh.size      -&gt;  integer</div><div class='add'>+ *     hash.length -&gt; integer</div><div class='add'>+ *     hash.size -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  Returns the number of key-value pairs in the hash.</div><div class='del'>- *</div><div class='del'>- *     h = { "d" =&gt; 100, "a" =&gt; 200, "v" =&gt; 300, "e" =&gt; 400 }</div><div class='del'>- *     h.size          #=&gt; 4</div><div class='del'>- *     h.delete("a")   #=&gt; 200</div><div class='del'>- *     h.size          #=&gt; 3</div><div class='del'>- *     h.length        #=&gt; 3</div><div class='add'>+ *  Returns the count of entries in +self+:</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.length # =&gt; 3</div><div class='ctx'>  *</div><div class='ctx'>  *  Hash#length is an alias for Hash#size.</div><div class='ctx'>  */</div><div class='hunk'>@@ -2678,22 +3083,21 @@ rb_hash_size_num(VALUE hash)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.empty?    -&gt; true or false</div><div class='del'>- *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;hsh&lt;/i&gt; contains no key-value pairs.</div><div class='del'>- *</div><div class='del'>- *     {}.empty?   #=&gt; true</div><div class='add'>+ *    hash.empty? -&gt; true or false</div><div class='ctx'>  *</div><div class='add'>+ *  Returns +true+ if there are no hash entries, +false+ otherwise:</div><div class='add'>+ *    {}.empty? # =&gt; true</div><div class='add'>+ *    {foo: 0, bar: 1, baz: 2}.empty? # =&gt; false</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_empty_p(VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    return RHASH_EMPTY_P(hash) ? Qtrue : Qfalse;</div><div class='add'>+    return RBOOL(RHASH_EMPTY_P(hash));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-each_value_i(VALUE key, VALUE value)</div><div class='add'>+each_value_i(VALUE key, VALUE value, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     rb_yield(value);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='hunk'>@@ -2701,21 +3105,26 @@ each_value_i(VALUE key, VALUE value)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.each_value {| value | block } -&gt; hsh</div><div class='del'>- *     hsh.each_value                    -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Calls &lt;i&gt;block&lt;/i&gt; once for each key in &lt;i&gt;hsh&lt;/i&gt;, passing the</div><div class='del'>- *  value as a parameter.</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h.each_value {|value| puts value }</div><div class='del'>- *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='del'>- *</div><div class='del'>- *     100</div><div class='del'>- *     200</div><div class='add'>+ *    hash.each_value {|value| ... } -&gt; self</div><div class='add'>+ *    hash.each_value -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the given block with each value; returns +self+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.each_value {|value| puts value } # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *  Output:</div><div class='add'>+ *    0</div><div class='add'>+ *    1</div><div class='add'>+ *    2</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.each_value # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}:each_value&gt;</div><div class='add'>+ *    h1 = e.each {|value| puts value }</div><div class='add'>+ *    h1 # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *  Output:</div><div class='add'>+ *    0</div><div class='add'>+ *    1</div><div class='add'>+ *    2</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2727,7 +3136,7 @@ rb_hash_each_value(VALUE hash)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-each_key_i(VALUE key, VALUE value)</div><div class='add'>+each_key_i(VALUE key, VALUE value, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     rb_yield(key);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='hunk'>@@ -2735,21 +3144,26 @@ each_key_i(VALUE key, VALUE value)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.each_key {| key | block } -&gt; hsh</div><div class='del'>- *     hsh.each_key                  -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Calls &lt;i&gt;block&lt;/i&gt; once for each key in &lt;i&gt;hsh&lt;/i&gt;, passing the key</div><div class='del'>- *  as a parameter.</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h.each_key {|key| puts key }</div><div class='del'>- *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='del'>- *</div><div class='del'>- *     a</div><div class='del'>- *     b</div><div class='add'>+ *    hash.each_key {|key| ... } -&gt; self</div><div class='add'>+ *    hash.each_key -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the given block with each key; returns +self+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.each_key {|key| puts key }  # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *  Output:</div><div class='add'>+ *    foo</div><div class='add'>+ *    bar</div><div class='add'>+ *    baz</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.each_key # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}:each_key&gt;</div><div class='add'>+ *    h1 = e.each {|key| puts key }</div><div class='add'>+ *    h1 # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *  Output:</div><div class='add'>+ *    foo</div><div class='add'>+ *    bar</div><div class='add'>+ *    baz</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_each_key(VALUE hash)</div><div class='hunk'>@@ -2760,14 +3174,14 @@ rb_hash_each_key(VALUE hash)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-each_pair_i(VALUE key, VALUE value)</div><div class='add'>+each_pair_i(VALUE key, VALUE value, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     rb_yield(rb_assoc_new(key, value));</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-each_pair_i_fast(VALUE key, VALUE value)</div><div class='add'>+each_pair_i_fast(VALUE key, VALUE value, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE argv[2];</div><div class='ctx'>     argv[0] = key;</div><div class='hunk'>@@ -2778,37 +3192,65 @@ each_pair_i_fast(VALUE key, VALUE value)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.each      {| key, value | block } -&gt; hsh</div><div class='del'>- *     hsh.each_pair {| key, value | block } -&gt; hsh</div><div class='del'>- *     hsh.each                              -&gt; an_enumerator</div><div class='del'>- *     hsh.each_pair                         -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Calls &lt;i&gt;block&lt;/i&gt; once for each key in &lt;i&gt;hsh&lt;/i&gt;, passing the key-value</div><div class='del'>- *  pair as parameters.</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h.each {|key, value| puts "#{key} is #{value}" }</div><div class='del'>- *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='del'>- *</div><div class='del'>- *     a is 100</div><div class='del'>- *     b is 200</div><div class='del'>- *</div><div class='add'>+ *    hash.each {|key, value| ... } -&gt; self</div><div class='add'>+ *    hash.each_pair {|key, value| ... } -&gt; self</div><div class='add'>+ *    hash.each -&gt; new_enumerator</div><div class='add'>+ *    hash.each_pair -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Hash#each is an alias for Hash#each_pair.</div><div class='add'>+</div><div class='add'>+ *  Calls the given block with each key-value pair; returns +self+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.each_pair {|key, value| puts "#{key}: #{value}"} # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *  Output:</div><div class='add'>+ *    foo: 0</div><div class='add'>+ *    bar: 1</div><div class='add'>+ *    baz: 2</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.each_pair # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}:each_pair&gt;</div><div class='add'>+ *    h1 = e.each {|key, value| puts "#{key}: #{value}"}</div><div class='add'>+ *    h1 # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *  Output:</div><div class='add'>+ *    foo: 0</div><div class='add'>+ *    bar: 1</div><div class='add'>+ *    baz: 2</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_each_pair(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);</div><div class='del'>-    if (rb_block_arity() &gt; 1)</div><div class='del'>-	rb_hash_foreach(hash, each_pair_i_fast, 0);</div><div class='add'>+    if (rb_block_pair_yield_optimizable())</div><div class='add'>+        rb_hash_foreach(hash, each_pair_i_fast, 0);</div><div class='ctx'>     else</div><div class='del'>-	rb_hash_foreach(hash, each_pair_i, 0);</div><div class='add'>+        rb_hash_foreach(hash, each_pair_i, 0);</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+struct transform_keys_args{</div><div class='add'>+    VALUE trans;</div><div class='add'>+    VALUE result;</div><div class='add'>+    int block_given;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+transform_keys_hash_i(VALUE key, VALUE value, VALUE transarg)</div><div class='add'>+{</div><div class='add'>+    struct transform_keys_args *p = (void *)transarg;</div><div class='add'>+    VALUE trans = p-&gt;trans, result = p-&gt;result;</div><div class='add'>+    VALUE new_key = rb_hash_lookup2(trans, key, Qundef);</div><div class='add'>+    if (UNDEF_P(new_key)) {</div><div class='add'>+        if (p-&gt;block_given)</div><div class='add'>+            new_key = rb_yield(key);</div><div class='add'>+        else</div><div class='add'>+            new_key = key;</div><div class='add'>+    }</div><div class='add'>+    rb_hash_aset(result, new_key, value);</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> transform_keys_i(VALUE key, VALUE value, VALUE result)</div><div class='ctx'> {</div><div class='hunk'>@@ -2819,96 +3261,165 @@ transform_keys_i(VALUE key, VALUE value, VALUE result)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.transform_keys {|key| block } -&gt; new_hash</div><div class='del'>- *     hsh.transform_keys                -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Returns a new hash with the results of running the block once for</div><div class='del'>- *  every key.</div><div class='del'>- *  This method does not change the values.</div><div class='del'>- *</div><div class='del'>- *     h = { a: 1, b: 2, c: 3 }</div><div class='del'>- *     h.transform_keys {|k| k.to_s }  #=&gt; { "a" =&gt; 1, "b" =&gt; 2, "c" =&gt; 3 }</div><div class='del'>- *     h.transform_keys(&amp;:to_s)        #=&gt; { "a" =&gt; 1, "b" =&gt; 2, "c" =&gt; 3 }</div><div class='del'>- *     h.transform_keys.with_index {|k, i| "#{k}.#{i}" }</div><div class='del'>- *                                     #=&gt; { "a.0" =&gt; 1, "b.1" =&gt; 2, "c.2" =&gt; 3 }</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *    hash.transform_keys {|key| ... } -&gt; new_hash</div><div class='add'>+ *    hash.transform_keys(hash2) -&gt; new_hash</div><div class='add'>+ *    hash.transform_keys(hash2) {|other_key| ...} -&gt; new_hash</div><div class='add'>+ *    hash.transform_keys -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Hash object; each entry has:</div><div class='add'>+ *  * A key provided by the block.</div><div class='add'>+ *  * The value from +self+.</div><div class='add'>+ *</div><div class='add'>+ *  An optional hash argument can be provided to map keys to new keys.</div><div class='add'>+ *  Any key not given will be mapped using the provided block,</div><div class='add'>+ *  or remain the same if no block is given.</div><div class='add'>+ *</div><div class='add'>+ *  Transform keys:</div><div class='add'>+ *      h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *      h1 = h.transform_keys {|key| key.to_s }</div><div class='add'>+ *      h1 # =&gt; {"foo"=&gt;0, "bar"=&gt;1, "baz"=&gt;2}</div><div class='add'>+ *</div><div class='add'>+ *      h.transform_keys(foo: :bar, bar: :foo)</div><div class='add'>+ *      #=&gt; {bar: 0, foo: 1, baz: 2}</div><div class='add'>+ *</div><div class='add'>+ *      h.transform_keys(foo: :hello, &amp;:to_s)</div><div class='add'>+ *      #=&gt; {:hello=&gt;0, "bar"=&gt;1, "baz"=&gt;2}</div><div class='add'>+ *</div><div class='add'>+ *  Overwrites values for duplicate keys:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 = h.transform_keys {|key| :bat }</div><div class='add'>+ *    h1 # =&gt; {:bat=&gt;2}</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.transform_keys # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}:transform_keys&gt;</div><div class='add'>+ *    h1 = e.each { |key| key.to_s }</div><div class='add'>+ *    h1 # =&gt; {"foo"=&gt;0, "bar"=&gt;1, "baz"=&gt;2}</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_hash_transform_keys(VALUE hash)</div><div class='add'>+rb_hash_transform_keys(int argc, VALUE *argv, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     VALUE result;</div><div class='add'>+    struct transform_keys_args transarg = {0};</div><div class='ctx'> </div><div class='del'>-    RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);</div><div class='add'>+    argc = rb_check_arity(argc, 0, 1);</div><div class='add'>+    if (argc &gt; 0) {</div><div class='add'>+        transarg.trans = to_hash(argv[0]);</div><div class='add'>+        transarg.block_given = rb_block_given_p();</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);</div><div class='add'>+    }</div><div class='ctx'>     result = rb_hash_new();</div><div class='ctx'>     if (!RHASH_EMPTY_P(hash)) {</div><div class='del'>-        rb_hash_foreach(hash, transform_keys_i, result);</div><div class='add'>+        if (transarg.trans) {</div><div class='add'>+            transarg.result = result;</div><div class='add'>+            rb_hash_foreach(hash, transform_keys_hash_i, (VALUE)&amp;transarg);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_hash_foreach(hash, transform_keys_i, result);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE rb_hash_flatten(int argc, VALUE *argv, VALUE hash);</div><div class='add'>+static int flatten_i(VALUE key, VALUE val, VALUE ary);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.transform_keys! {|key| block } -&gt; hsh</div><div class='del'>- *     hsh.transform_keys!                -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Invokes the given block once for each key in &lt;i&gt;hsh&lt;/i&gt;, replacing it</div><div class='del'>- *  with the new key returned by the block, and then returns &lt;i&gt;hsh&lt;/i&gt;.</div><div class='del'>- *  This method does not change the values.</div><div class='add'>+ *    hash.transform_keys! {|key| ... } -&gt; self</div><div class='add'>+ *    hash.transform_keys!(hash2) -&gt; self</div><div class='add'>+ *    hash.transform_keys!(hash2) {|other_key| ...} -&gt; self</div><div class='add'>+ *    hash.transform_keys! -&gt; new_enumerator</div><div class='ctx'>  *</div><div class='del'>- *     h = { a: 1, b: 2, c: 3 }</div><div class='del'>- *     h.transform_keys! {|k| k.to_s }  #=&gt; { "a" =&gt; 1, "b" =&gt; 2, "c" =&gt; 3 }</div><div class='del'>- *     h.transform_keys!(&amp;:to_sym)      #=&gt; { a: 1, b: 2, c: 3 }</div><div class='del'>- *     h.transform_keys!.with_index {|k, i| "#{k}.#{i}" }</div><div class='del'>- *                                      #=&gt; { "a.0" =&gt; 1, "b.1" =&gt; 2, "c.2" =&gt; 3 }</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *  Same as Hash#transform_keys but modifies the receiver in place</div><div class='add'>+ *  instead of returning a new hash.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-rb_hash_transform_keys_bang(VALUE hash)</div><div class='add'>+rb_hash_transform_keys_bang(int argc, VALUE *argv, VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);</div><div class='add'>+    VALUE trans = 0;</div><div class='add'>+    int block_given = 0;</div><div class='add'>+</div><div class='add'>+    argc = rb_check_arity(argc, 0, 1);</div><div class='add'>+    if (argc &gt; 0) {</div><div class='add'>+        trans = to_hash(argv[0]);</div><div class='add'>+        block_given = rb_block_given_p();</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);</div><div class='add'>+    }</div><div class='ctx'>     rb_hash_modify_check(hash);</div><div class='ctx'>     if (!RHASH_TABLE_EMPTY_P(hash)) {</div><div class='ctx'>         long i;</div><div class='del'>-        VALUE pairs = rb_hash_flatten(0, NULL, hash);</div><div class='del'>-        rb_hash_clear(hash);</div><div class='add'>+        VALUE new_keys = hash_alloc(0);</div><div class='add'>+        VALUE pairs = rb_ary_hidden_new(RHASH_SIZE(hash) * 2);</div><div class='add'>+        rb_hash_foreach(hash, flatten_i, pairs);</div><div class='ctx'>         for (i = 0; i &lt; RARRAY_LEN(pairs); i += 2) {</div><div class='del'>-            VALUE key = RARRAY_AREF(pairs, i), new_key = rb_yield(key),</div><div class='del'>-                  val = RARRAY_AREF(pairs, i+1);</div><div class='add'>+            VALUE key = RARRAY_AREF(pairs, i), new_key, val;</div><div class='add'>+</div><div class='add'>+            if (!trans) {</div><div class='add'>+                new_key = rb_yield(key);</div><div class='add'>+            }</div><div class='add'>+            else if (!UNDEF_P(new_key = rb_hash_lookup2(trans, key, Qundef))) {</div><div class='add'>+                /* use the transformed key */</div><div class='add'>+            }</div><div class='add'>+            else if (block_given) {</div><div class='add'>+                new_key = rb_yield(key);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                new_key = key;</div><div class='add'>+            }</div><div class='add'>+            val = RARRAY_AREF(pairs, i+1);</div><div class='add'>+            if (!hash_stlike_lookup(new_keys, key, NULL)) {</div><div class='add'>+                rb_hash_stlike_delete(hash, &amp;key, NULL);</div><div class='add'>+            }</div><div class='ctx'>             rb_hash_aset(hash, new_key, val);</div><div class='add'>+            rb_hash_aset(new_keys, new_key, Qnil);</div><div class='ctx'>         }</div><div class='add'>+        rb_ary_clear(pairs);</div><div class='add'>+        rb_hash_clear(new_keys);</div><div class='ctx'>     }</div><div class='add'>+    compact_after_delete(hash);</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-transform_values_i(VALUE key, VALUE value, VALUE result)</div><div class='add'>+transform_values_foreach_func(st_data_t key, st_data_t value, st_data_t argp, int error)</div><div class='ctx'> {</div><div class='del'>-    VALUE new_value = rb_yield(value);</div><div class='del'>-    rb_hash_aset(result, key, new_value);</div><div class='add'>+    return ST_REPLACE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+transform_values_foreach_replace(st_data_t *key, st_data_t *value, st_data_t argp, int existing)</div><div class='add'>+{</div><div class='add'>+    VALUE new_value = rb_yield((VALUE)*value);</div><div class='add'>+    VALUE hash = (VALUE)argp;</div><div class='add'>+    rb_hash_modify(hash);</div><div class='add'>+    RB_OBJ_WRITE(hash, value, new_value);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.transform_values {|value| block } -&gt; new_hash</div><div class='del'>- *     hsh.transform_values                  -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Returns a new hash with the results of running the block once for</div><div class='del'>- *  every value.</div><div class='del'>- *  This method does not change the keys.</div><div class='del'>- *</div><div class='del'>- *     h = { a: 1, b: 2, c: 3 }</div><div class='del'>- *     h.transform_values {|v| v * v + 1 }  #=&gt; { a: 2, b: 5, c: 10 }</div><div class='del'>- *     h.transform_values(&amp;:to_s)           #=&gt; { a: "1", b: "2", c: "3" }</div><div class='del'>- *     h.transform_values.with_index {|v, i| "#{v}.#{i}" }</div><div class='del'>- *                                          #=&gt; { a: "1.0", b: "2.1", c: "3.2" }</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *    hash.transform_values {|value| ... } -&gt; new_hash</div><div class='add'>+ *    hash.transform_values -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Hash object; each entry has:</div><div class='add'>+ *  * A key from +self+.</div><div class='add'>+ *  * A value provided by the block.</div><div class='add'>+ *</div><div class='add'>+ *  Transform values:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 = h.transform_values {|value| value * 100}</div><div class='add'>+ *    h1 # =&gt; {:foo=&gt;0, :bar=&gt;100, :baz=&gt;200}</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.transform_values # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}:transform_values&gt;</div><div class='add'>+ *    h1 = e.each { |value| value * 100}</div><div class='add'>+ *    h1 # =&gt; {:foo=&gt;0, :bar=&gt;100, :baz=&gt;200}</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_transform_values(VALUE hash)</div><div class='hunk'>@@ -2916,9 +3427,12 @@ rb_hash_transform_values(VALUE hash)</div><div class='ctx'>     VALUE result;</div><div class='ctx'> </div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);</div><div class='del'>-    result = rb_hash_new_with_size(RHASH_SIZE(hash));</div><div class='add'>+    result = hash_dup_with_compare_by_id(hash);</div><div class='add'>+    SET_DEFAULT(result, Qnil);</div><div class='add'>+</div><div class='ctx'>     if (!RHASH_EMPTY_P(hash)) {</div><div class='del'>-        rb_hash_foreach(hash, transform_values_i, result);</div><div class='add'>+        rb_hash_stlike_foreach_with_replace(result, transform_values_foreach_func, transform_values_foreach_replace, result);</div><div class='add'>+        compact_after_delete(result);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='hunk'>@@ -2926,28 +3440,29 @@ rb_hash_transform_values(VALUE hash)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.transform_values! {|value| block } -&gt; hsh</div><div class='del'>- *     hsh.transform_values!                  -&gt; an_enumerator</div><div class='del'>- *</div><div class='del'>- *  Invokes the given block once for each value in &lt;i&gt;hsh&lt;/i&gt;, replacing it</div><div class='del'>- *  with the new value returned by the block, and then returns &lt;i&gt;hsh&lt;/i&gt;.</div><div class='del'>- *  This method does not change the keys.</div><div class='del'>- *</div><div class='del'>- *     h = { a: 1, b: 2, c: 3 }</div><div class='del'>- *     h.transform_values! {|v| v * v + 1 }  #=&gt; { a: 2, b: 5, c: 10 }</div><div class='del'>- *     h.transform_values!(&amp;:to_s)           #=&gt; { a: "2", b: "5", c: "10" }</div><div class='del'>- *     h.transform_values!.with_index {|v, i| "#{v}.#{i}" }</div><div class='del'>- *                                           #=&gt; { a: "2.0", b: "5.1", c: "10.2" }</div><div class='del'>- *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *    hash.transform_values! {|value| ... } -&gt; self</div><div class='add'>+ *    hash.transform_values! -&gt; new_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns +self+, whose keys are unchanged, and whose values are determined by the given block.</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.transform_values! {|value| value * 100} # =&gt; {:foo=&gt;0, :bar=&gt;100, :baz=&gt;200}</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Enumerator if no block given:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    e = h.transform_values! # =&gt; #&lt;Enumerator: {:foo=&gt;0, :bar=&gt;100, :baz=&gt;200}:transform_values!&gt;</div><div class='add'>+ *    h1 = e.each {|value| value * 100}</div><div class='add'>+ *    h1 # =&gt; {:foo=&gt;0, :bar=&gt;100, :baz=&gt;200}</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_transform_values_bang(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);</div><div class='ctx'>     rb_hash_modify_check(hash);</div><div class='del'>-    if (!RHASH_TABLE_EMPTY_P(hash))</div><div class='del'>-        rb_hash_foreach(hash, transform_values_i, hash);</div><div class='add'>+</div><div class='add'>+    if (!RHASH_TABLE_EMPTY_P(hash)) {</div><div class='add'>+        rb_hash_stlike_foreach_with_replace(hash, transform_values_foreach_func, transform_values_foreach_replace, hash);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2960,13 +3475,12 @@ to_a_i(VALUE key, VALUE value, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.to_a -&gt; array</div><div class='del'>- *</div><div class='del'>- *  Converts &lt;i&gt;hsh&lt;/i&gt; to a nested array of &lt;code&gt;[&lt;/code&gt; &lt;i&gt;key,</div><div class='del'>- *  value&lt;/i&gt; &lt;code&gt;]&lt;/code&gt; arrays.</div><div class='add'>+ *    hash.to_a -&gt; new_array</div><div class='ctx'>  *</div><div class='del'>- *     h = { "c" =&gt; 300, "a" =&gt; 100, "d" =&gt; 400, "c" =&gt; 300  }</div><div class='del'>- *     h.to_a   #=&gt; [["c", 300], ["a", 100], ["d", 400]]</div><div class='add'>+ *  Returns a new \Array of 2-element \Array objects;</div><div class='add'>+ *  each nested \Array contains a key-value pair from +self+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.to_a # =&gt; [[:foo, 0], [:bar, 1], [:baz, 2]]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2976,7 +3490,6 @@ rb_hash_to_a(VALUE hash)</div><div class='ctx'> </div><div class='ctx'>     ary = rb_ary_new_capa(RHASH_SIZE(hash));</div><div class='ctx'>     rb_hash_foreach(hash, to_a_i, ary);</div><div class='del'>-    OBJ_INFECT(ary, hash);</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -2988,17 +3501,15 @@ inspect_i(VALUE key, VALUE value, VALUE str)</div><div class='ctx'> </div><div class='ctx'>     str2 = rb_inspect(key);</div><div class='ctx'>     if (RSTRING_LEN(str) &gt; 1) {</div><div class='del'>-	rb_str_buf_cat_ascii(str, ", ");</div><div class='add'>+        rb_str_buf_cat_ascii(str, ", ");</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_enc_copy(str, str2);</div><div class='add'>+        rb_enc_copy(str, str2);</div><div class='ctx'>     }</div><div class='ctx'>     rb_str_buf_append(str, str2);</div><div class='del'>-    OBJ_INFECT(str, str2);</div><div class='ctx'>     rb_str_buf_cat_ascii(str, "=&gt;");</div><div class='ctx'>     str2 = rb_inspect(value);</div><div class='ctx'>     rb_str_buf_append(str, str2);</div><div class='del'>-    OBJ_INFECT(str, str2);</div><div class='ctx'> </div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -3012,37 +3523,35 @@ inspect_hash(VALUE hash, VALUE dummy, int recur)</div><div class='ctx'>     str = rb_str_buf_new2("{");</div><div class='ctx'>     rb_hash_foreach(hash, inspect_i, str);</div><div class='ctx'>     rb_str_buf_cat2(str, "}");</div><div class='del'>-    OBJ_INFECT(str, hash);</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   hsh.to_s     -&gt; string</div><div class='del'>- *   hsh.inspect  -&gt; string</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    hash.inspect -&gt; new_string</div><div class='ctx'>  *</div><div class='del'>- * Return the contents of this hash as a string.</div><div class='add'>+ *  Returns a new \String containing the hash entries:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.inspect # =&gt; "{:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}"</div><div class='ctx'>  *</div><div class='del'>- *     h = { "c" =&gt; 300, "a" =&gt; 100, "d" =&gt; 400, "c" =&gt; 300  }</div><div class='del'>- *     h.to_s   #=&gt; "{\"c\"=&gt;300, \"a\"=&gt;100, \"d\"=&gt;400}"</div><div class='add'>+ *  Hash#to_s is an alias for Hash#inspect.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_inspect(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     if (RHASH_EMPTY_P(hash))</div><div class='del'>-	return rb_usascii_str_new2("{}");</div><div class='add'>+        return rb_usascii_str_new2("{}");</div><div class='ctx'>     return rb_exec_recursive(inspect_hash, hash, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *    hsh.to_hash   =&gt; hsh</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    hash.to_hash -&gt; self</div><div class='ctx'>  *</div><div class='del'>- * Returns +self+.</div><div class='add'>+ *  Returns +self+.</div><div class='ctx'>  */</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_to_hash(VALUE hash)</div><div class='ctx'> {</div><div class='hunk'>@@ -3079,20 +3588,26 @@ rb_hash_to_h_block(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     VALUE h = rb_hash_new_with_size(RHASH_SIZE(hash));</div><div class='ctx'>     rb_hash_foreach(hash, to_h_i, h);</div><div class='del'>-    OBJ_INFECT(h, hash);</div><div class='ctx'>     return h;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.to_h                         -&gt; hsh or new_hash</div><div class='del'>- *     hsh.to_h {|key, value| block }   -&gt; new_hash</div><div class='add'>+ *    hash.to_h -&gt; self or new_hash</div><div class='add'>+ *    hash.to_h {|key, value| ... } -&gt; new_hash</div><div class='add'>+ *</div><div class='add'>+ *  For an instance of \Hash, returns +self+.</div><div class='ctx'>  *</div><div class='del'>- *  Returns +self+. If called on a subclass of Hash, converts</div><div class='del'>- *  the receiver to a Hash object.</div><div class='add'>+ *  For a subclass of \Hash, returns a new \Hash</div><div class='add'>+ *  containing the content of +self+.</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given, the results of the block on each pair of</div><div class='del'>- *  the receiver will be used as pairs.</div><div class='add'>+ *  When a block is given, returns a new \Hash object</div><div class='add'>+ *  whose content is based on the block;</div><div class='add'>+ *  the block should return a 2-element \Array object</div><div class='add'>+ *  specifying the key-value pair to be included in the returned \Array:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 = h.to_h {|key, value| [value, key] }</div><div class='add'>+ *    h1 # =&gt; {0=&gt;:foo, 1=&gt;:bar, 2=&gt;:baz}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3102,8 +3617,8 @@ rb_hash_to_h(VALUE hash)</div><div class='ctx'>         return rb_hash_to_h_block(hash);</div><div class='ctx'>     }</div><div class='ctx'>     if (rb_obj_class(hash) != rb_cHash) {</div><div class='del'>-	const VALUE flags = RBASIC(hash)-&gt;flags;</div><div class='del'>-	hash = hash_dup(hash, rb_cHash, flags &amp; HASH_PROC_DEFAULT);</div><div class='add'>+        const VALUE flags = RBASIC(hash)-&gt;flags;</div><div class='add'>+        hash = hash_dup(hash, rb_cHash, flags &amp; RHASH_PROC_DEFAULT);</div><div class='ctx'>     }</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='hunk'>@@ -3117,14 +3632,11 @@ keys_i(VALUE key, VALUE value, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.keys    -&gt; array</div><div class='del'>- *</div><div class='del'>- *  Returns a new array populated with the keys from this hash. See also</div><div class='del'>- *  &lt;code&gt;Hash#values&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200, "c" =&gt; 300, "d" =&gt; 400 }</div><div class='del'>- *     h.keys   #=&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *    hash.keys -&gt; new_array</div><div class='ctx'>  *</div><div class='add'>+ *  Returns a new \Array containing all keys in +self+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.keys # =&gt; [:foo, :bar, :baz]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> MJIT_FUNC_EXPORTED VALUE</div><div class='hunk'>@@ -3146,10 +3658,10 @@ rb_hash_keys(VALUE hash)</div><div class='ctx'>             }</div><div class='ctx'>         });</div><div class='ctx'>         rb_gc_writebarrier_remember(keys);</div><div class='del'>-	rb_ary_set_len(keys, size);</div><div class='add'>+        rb_ary_set_len(keys, size);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_hash_foreach(hash, keys_i, keys);</div><div class='add'>+        rb_hash_foreach(hash, keys_i, keys);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return keys;</div><div class='hunk'>@@ -3164,14 +3676,11 @@ values_i(VALUE key, VALUE value, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.values    -&gt; array</div><div class='del'>- *</div><div class='del'>- *  Returns a new array populated with the values from &lt;i&gt;hsh&lt;/i&gt;. See</div><div class='del'>- *  also &lt;code&gt;Hash#keys&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200, "c" =&gt; 300 }</div><div class='del'>- *     h.values   #=&gt; [100, 200, 300]</div><div class='add'>+ *    hash.values -&gt; new_array</div><div class='ctx'>  *</div><div class='add'>+ *  Returns a new \Array containing all values in +self+:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.values # =&gt; [0, 1, 2]</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -3197,10 +3706,11 @@ rb_hash_values(VALUE hash)</div><div class='ctx'>                 size = st_values(table, ptr, size);</div><div class='ctx'>             });</div><div class='ctx'>         }</div><div class='del'>-	rb_ary_set_len(values, size);</div><div class='add'>+        rb_ary_set_len(values, size);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     else {</div><div class='del'>-	rb_hash_foreach(hash, values_i, values);</div><div class='add'>+        rb_hash_foreach(hash, values_i, values);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return values;</div><div class='hunk'>@@ -3208,33 +3718,20 @@ rb_hash_values(VALUE hash)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.has_key?(key)    -&gt; true or false</div><div class='del'>- *     hsh.include?(key)    -&gt; true or false</div><div class='del'>- *     hsh.key?(key)        -&gt; true or false</div><div class='del'>- *     hsh.member?(key)     -&gt; true or false</div><div class='del'>- *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if the given key is present in &lt;i&gt;hsh&lt;/i&gt;.</div><div class='del'>- *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h.has_key?("a")   #=&gt; true</div><div class='del'>- *     h.has_key?("z")   #=&gt; false</div><div class='del'>- *</div><div class='del'>- *  Note that &lt;code&gt;include?&lt;/code&gt; and &lt;code&gt;member?&lt;/code&gt; do not test member</div><div class='del'>- *  equality using &lt;code&gt;==&lt;/code&gt; as do other Enumerables.</div><div class='add'>+ *    hash.include?(key) -&gt; true or false</div><div class='add'>+ *    hash.has_key?(key) -&gt; true or false</div><div class='add'>+ *    hash.key?(key) -&gt; true or false</div><div class='add'>+ *    hash.member?(key) -&gt; true or false</div><div class='add'>+</div><div class='add'>+ *  Methods #has_key?, #key?, and #member? are aliases for \#include?.</div><div class='ctx'>  *</div><div class='del'>- *  See also Enumerable#include?</div><div class='add'>+ *  Returns +true+ if +key+ is a key in +self+, otherwise +false+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> MJIT_FUNC_EXPORTED VALUE</div><div class='ctx'> rb_hash_has_key(VALUE hash, VALUE key)</div><div class='ctx'> {</div><div class='del'>-    if (RHASH_AR_TABLE_P(hash) &amp;&amp; ar_lookup(hash, key, 0)) {</div><div class='del'>-        return Qtrue;</div><div class='del'>-    }</div><div class='del'>-    else if (RHASH_ST_TABLE_P(hash) &amp;&amp; st_lookup(RHASH_ST_TABLE(hash), key, 0)) {</div><div class='del'>-	return Qtrue;</div><div class='del'>-    }</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(hash_stlike_lookup(hash, key, NULL));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -3243,23 +3740,20 @@ rb_hash_search_value(VALUE key, VALUE value, VALUE arg)</div><div class='ctx'>     VALUE *data = (VALUE *)arg;</div><div class='ctx'> </div><div class='ctx'>     if (rb_equal(value, data[1])) {</div><div class='del'>-	data[0] = Qtrue;</div><div class='del'>-	return ST_STOP;</div><div class='add'>+        data[0] = Qtrue;</div><div class='add'>+        return ST_STOP;</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.has_value?(value)    -&gt; true or false</div><div class='del'>- *     hsh.value?(value)        -&gt; true or false</div><div class='add'>+ *    hash.has_value?(value) -&gt; true or false</div><div class='add'>+ *    hash.value?(value) -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if the given value is present for some key</div><div class='del'>- *  in &lt;i&gt;hsh&lt;/i&gt;.</div><div class='add'>+ *  Method #value? is an alias for \#has_value?.</div><div class='ctx'>  *</div><div class='del'>- *     h = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h.value?(100)   #=&gt; true</div><div class='del'>- *     h.value?(999)   #=&gt; false</div><div class='add'>+ *  Returns +true+ if +value+ is a value in +self+, otherwise +false+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3285,20 +3779,17 @@ eql_i(VALUE key, VALUE val1, VALUE arg)</div><div class='ctx'>     struct equal_data *data = (struct equal_data *)arg;</div><div class='ctx'>     st_data_t val2;</div><div class='ctx'> </div><div class='del'>-    if (RHASH_AR_TABLE_P(data-&gt;hash) &amp;&amp; !ar_lookup(data-&gt;hash, key, &amp;val2)) {</div><div class='del'>-	data-&gt;result = Qfalse;</div><div class='del'>-	return ST_STOP;</div><div class='del'>-    }</div><div class='del'>-    else if (RHASH_ST_TABLE_P(data-&gt;hash) &amp;&amp; !st_lookup(RHASH_ST_TABLE(data-&gt;hash), key, &amp;val2)) {</div><div class='add'>+    if (!hash_stlike_lookup(data-&gt;hash, key, &amp;val2)) {</div><div class='ctx'>         data-&gt;result = Qfalse;</div><div class='ctx'>         return ST_STOP;</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    if (!(data-&gt;eql ? rb_eql(val1, (VALUE)val2) : (int)rb_equal(val1, (VALUE)val2))) {</div><div class='del'>-	data-&gt;result = Qfalse;</div><div class='del'>-	return ST_STOP;</div><div class='add'>+    else {</div><div class='add'>+        if (!(data-&gt;eql ? rb_eql(val1, (VALUE)val2) : (int)rb_equal(val1, (VALUE)val2))) {</div><div class='add'>+            data-&gt;result = Qfalse;</div><div class='add'>+            return ST_STOP;</div><div class='add'>+        }</div><div class='add'>+        return ST_CONTINUE;</div><div class='ctx'>     }</div><div class='del'>-    return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3321,23 +3812,23 @@ hash_equal(VALUE hash1, VALUE hash2, int eql)</div><div class='ctx'> </div><div class='ctx'>     if (hash1 == hash2) return Qtrue;</div><div class='ctx'>     if (!RB_TYPE_P(hash2, T_HASH)) {</div><div class='del'>-	if (!rb_respond_to(hash2, idTo_hash)) {</div><div class='del'>-	    return Qfalse;</div><div class='del'>-	}</div><div class='del'>-	if (eql) {</div><div class='del'>-	    if (rb_eql(hash2, hash1)) {</div><div class='del'>-		return Qtrue;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		return Qfalse;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    return rb_equal(hash2, hash1);</div><div class='del'>-	}</div><div class='add'>+        if (!rb_respond_to(hash2, idTo_hash)) {</div><div class='add'>+            return Qfalse;</div><div class='add'>+        }</div><div class='add'>+        if (eql) {</div><div class='add'>+            if (rb_eql(hash2, hash1)) {</div><div class='add'>+                return Qtrue;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                return Qfalse;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return rb_equal(hash2, hash1);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (RHASH_SIZE(hash1) != RHASH_SIZE(hash2))</div><div class='del'>-	return Qfalse;</div><div class='add'>+        return Qfalse;</div><div class='ctx'>     if (!RHASH_TABLE_EMPTY_P(hash1) &amp;&amp; !RHASH_TABLE_EMPTY_P(hash2)) {</div><div class='ctx'>         if (RHASH_TYPE(hash1) != RHASH_TYPE(hash2)) {</div><div class='ctx'>             return Qfalse;</div><div class='hunk'>@@ -3351,35 +3842,29 @@ hash_equal(VALUE hash1, VALUE hash2, int eql)</div><div class='ctx'> </div><div class='ctx'> #if 0</div><div class='ctx'>     if (!(rb_equal(RHASH_IFNONE(hash1), RHASH_IFNONE(hash2)) &amp;&amp;</div><div class='del'>-	  FL_TEST(hash1, HASH_PROC_DEFAULT) == FL_TEST(hash2, HASH_PROC_DEFAULT)))</div><div class='del'>-	return Qfalse;</div><div class='add'>+          FL_TEST(hash1, RHASH_PROC_DEFAULT) == FL_TEST(hash2, RHASH_PROC_DEFAULT)))</div><div class='add'>+        return Qfalse;</div><div class='ctx'> #endif</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh == other_hash    -&gt; true or false</div><div class='add'>+ *    hash == object -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Equality---Two hashes are equal if they each contain the same number</div><div class='del'>- *  of keys and if each key-value pair is equal to (according to</div><div class='del'>- *  &lt;code&gt;Object#==&lt;/code&gt;) the corresponding elements in the other</div><div class='del'>- *  hash.</div><div class='add'>+ *  Returns +true+ if all of the following are true:</div><div class='add'>+ *  * +object+ is a \Hash object.</div><div class='add'>+ *  * +hash+ and +object+ have the same keys (regardless of order).</div><div class='add'>+ *  * For each key +key+, &lt;tt&gt;hash[key] == object[key]&lt;/tt&gt;.</div><div class='ctx'>  *</div><div class='del'>- *     h1 = { "a" =&gt; 1, "c" =&gt; 2 }</div><div class='del'>- *     h2 = { 7 =&gt; 35, "c" =&gt; 2, "a" =&gt; 1 }</div><div class='del'>- *     h3 = { "a" =&gt; 1, "c" =&gt; 2, 7 =&gt; 35 }</div><div class='del'>- *     h4 = { "a" =&gt; 1, "d" =&gt; 2, "f" =&gt; 35 }</div><div class='del'>- *     h1 == h2   #=&gt; false</div><div class='del'>- *     h2 == h3   #=&gt; true</div><div class='del'>- *     h3 == h4   #=&gt; false</div><div class='del'>- *</div><div class='del'>- *  The orders of each hashes are not compared.</div><div class='del'>- *</div><div class='del'>- *     h1 = { "a" =&gt; 1, "c" =&gt; 2 }</div><div class='del'>- *     h2 = { "c" =&gt; 2, "a" =&gt; 1 }</div><div class='del'>- *     h1 == h2   #=&gt; true</div><div class='add'>+ *  Otherwise, returns +false+.</div><div class='ctx'>  *</div><div class='add'>+ *  Equal:</div><div class='add'>+ *    h1 = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h2 = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 == h2 # =&gt; true</div><div class='add'>+ *    h3 = {baz: 2, bar: 1, foo: 0}</div><div class='add'>+ *    h1 == h3 # =&gt; true</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3390,11 +3875,21 @@ rb_hash_equal(VALUE hash1, VALUE hash2)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hash.eql?(other)  -&gt; true or false</div><div class='add'>+ *    hash.eql? object -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if all of the following are true:</div><div class='add'>+ *  * +object+ is a \Hash object.</div><div class='add'>+ *  * +hash+ and +object+ have the same keys (regardless of order).</div><div class='add'>+ *  * For each key +key+, &lt;tt&gt;h[key] eql? object[key]&lt;/tt&gt;.</div><div class='ctx'>  *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;hash&lt;/i&gt; and &lt;i&gt;other&lt;/i&gt; are</div><div class='del'>- *  both hashes with the same content.</div><div class='del'>- *  The orders of each hashes are not compared.</div><div class='add'>+ *  Otherwise, returns +false+.</div><div class='add'>+ *</div><div class='add'>+ *  Equal:</div><div class='add'>+ *    h1 = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h2 = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1.eql? h2 # =&gt; true</div><div class='add'>+ *    h3 = {baz: 2, bar: 1, foo: 0}</div><div class='add'>+ *    h1.eql? h3 # =&gt; true</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3417,12 +3912,16 @@ hash_i(VALUE key, VALUE val, VALUE arg)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.hash   -&gt; integer</div><div class='add'>+ *    hash.hash -&gt; an_integer</div><div class='ctx'>  *</div><div class='del'>- *  Compute a hash-code for this hash. Two hashes with the same content</div><div class='del'>- *  will have the same hash code (and will compare using &lt;code&gt;eql?&lt;/code&gt;).</div><div class='add'>+ *  Returns the \Integer hash-code for the hash.</div><div class='ctx'>  *</div><div class='del'>- *  See also Object#hash.</div><div class='add'>+ *  Two \Hash objects have the same hash-code if their content is the same</div><div class='add'>+ *  (regardless or order):</div><div class='add'>+ *    h1 = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h2 = {baz: 2, bar: 1, foo: 0}</div><div class='add'>+ *    h2.hash == h1.hash # =&gt; true</div><div class='add'>+ *    h2.eql? h1 # =&gt; true</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3432,7 +3931,7 @@ rb_hash_hash(VALUE hash)</div><div class='ctx'>     st_index_t hval = rb_hash_start(size);</div><div class='ctx'>     hval = rb_hash_uint(hval, (st_index_t)rb_hash_hash);</div><div class='ctx'>     if (size) {</div><div class='del'>-	rb_hash_foreach(hash, hash_i, (VALUE)&amp;hval);</div><div class='add'>+        rb_hash_foreach(hash, hash_i, (VALUE)&amp;hval);</div><div class='ctx'>     }</div><div class='ctx'>     hval = rb_hash_end(hval);</div><div class='ctx'>     return ST2FIX(hval);</div><div class='hunk'>@@ -3447,32 +3946,17 @@ rb_hash_invert_i(VALUE key, VALUE value, VALUE hash)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.invert -&gt; new_hash</div><div class='del'>- *</div><div class='del'>- *  Returns a new hash created by using &lt;i&gt;hsh&lt;/i&gt;'s values as keys, and</div><div class='del'>- *  the keys as values.</div><div class='del'>- *  If a key with the same value already exists in the &lt;i&gt;hsh&lt;/i&gt;, then</div><div class='del'>- *  the last one defined will be used, the earlier value(s) will be discarded.</div><div class='del'>- *</div><div class='del'>- *     h = { "n" =&gt; 100, "m" =&gt; 100, "y" =&gt; 300, "d" =&gt; 200, "a" =&gt; 0 }</div><div class='del'>- *     h.invert   #=&gt; {0=&gt;"a", 100=&gt;"m", 200=&gt;"d", 300=&gt;"y"}</div><div class='del'>- *</div><div class='del'>- *  If there is no key with the same value, Hash#invert is involutive.</div><div class='del'>- *</div><div class='del'>- *    h = { a: 1, b: 3, c: 4 }</div><div class='del'>- *    h.invert.invert == h #=&gt; true</div><div class='add'>+ *    hash.invert -&gt; new_hash</div><div class='ctx'>  *</div><div class='del'>- *  The condition, no key with the same value, can be tested by comparing</div><div class='del'>- *  the size of inverted hash.</div><div class='del'>- *</div><div class='del'>- *    # no key with the same value</div><div class='del'>- *    h = { a: 1, b: 3, c: 4 }</div><div class='del'>- *    h.size == h.invert.size #=&gt; true</div><div class='del'>- *</div><div class='del'>- *    # two (or more) keys has the same value</div><div class='del'>- *    h = { a: 1, b: 3, c: 1 }</div><div class='del'>- *    h.size == h.invert.size #=&gt; false</div><div class='add'>+ *  Returns a new \Hash object with the each key-value pair inverted:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 = h.invert</div><div class='add'>+ *    h1 # =&gt; {0=&gt;:foo, 1=&gt;:bar, 2=&gt;:baz}</div><div class='ctx'>  *</div><div class='add'>+ *  Overwrites any repeated new keys:</div><div class='add'>+ *  (see {Entry Order}[rdoc-ref:Hash@Entry+Order]):</div><div class='add'>+ *    h = {foo: 0, bar: 0, baz: 0}</div><div class='add'>+ *    h.invert # =&gt; {0=&gt;:baz}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3485,42 +3969,23 @@ rb_hash_invert(VALUE hash)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-rb_hash_update_callback(st_data_t *key, st_data_t *value, struct update_arg *arg, int existing)</div><div class='del'>-{</div><div class='del'>-    if (existing) {</div><div class='del'>-	arg-&gt;old_value = *value;</div><div class='del'>-	arg-&gt;new_value = arg-&gt;arg;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	arg-&gt;new_key = *key;</div><div class='del'>-	arg-&gt;new_value = arg-&gt;arg;</div><div class='del'>-    }</div><div class='del'>-    *value = arg-&gt;arg;</div><div class='del'>-    return ST_CONTINUE;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-NOINSERT_UPDATE_CALLBACK(rb_hash_update_callback)</div><div class='del'>-</div><div class='del'>-static int</div><div class='ctx'> rb_hash_update_i(VALUE key, VALUE value, VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    RHASH_UPDATE(hash, key, rb_hash_update_callback, value);</div><div class='add'>+    rb_hash_aset(hash, key, value);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> rb_hash_update_block_callback(st_data_t *key, st_data_t *value, struct update_arg *arg, int existing)</div><div class='ctx'> {</div><div class='del'>-    VALUE newvalue = (VALUE)arg-&gt;arg;</div><div class='add'>+    st_data_t newvalue = arg-&gt;arg;</div><div class='ctx'> </div><div class='ctx'>     if (existing) {</div><div class='del'>-	newvalue = rb_yield_values(3, (VALUE)*key, (VALUE)*value, newvalue);</div><div class='del'>-	arg-&gt;old_value = *value;</div><div class='add'>+        newvalue = (st_data_t)rb_yield_values(3, (VALUE)*key, (VALUE)*value, (VALUE)newvalue);</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	arg-&gt;new_key = *key;</div><div class='add'>+    else if (RHASH_STRING_KEY_P(arg-&gt;hash, *key) &amp;&amp; !RB_OBJ_FROZEN(*key)) {</div><div class='add'>+        *key = rb_hash_key_str(*key);</div><div class='ctx'>     }</div><div class='del'>-    arg-&gt;new_value = newvalue;</div><div class='ctx'>     *value = newvalue;</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -3536,45 +4001,52 @@ rb_hash_update_block_i(VALUE key, VALUE value, VALUE hash)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.merge!(other_hash1, other_hash2, ...)              -&gt; hsh</div><div class='del'>- *     hsh.update(other_hash1, other_hash2, ...)              -&gt; hsh</div><div class='del'>- *     hsh.merge!(other_hash1, other_hash2, ...) {|key, oldval, newval| block}</div><div class='del'>- *                                                            -&gt; hsh</div><div class='del'>- *     hsh.update(other_hash1, other_hash2, ...) {|key, oldval, newval| block}</div><div class='del'>- *                                                            -&gt; hsh</div><div class='del'>- *</div><div class='del'>- *  Adds the contents of the given hashes to the receiver.</div><div class='del'>- *</div><div class='del'>- *  If no block is given, entries with duplicate keys are overwritten</div><div class='del'>- *  with the values from each +other_hash+ successively,</div><div class='del'>- *  otherwise the value for each duplicate key is determined by</div><div class='del'>- *  calling the block with the key, its value in the receiver and</div><div class='del'>- *  its value in each +other_hash+.</div><div class='del'>- *</div><div class='del'>- *     h1 = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h1.merge!          #=&gt; {"a"=&gt;100, "b"=&gt;200}</div><div class='del'>- *     h1                 #=&gt; {"a"=&gt;100, "b"=&gt;200}</div><div class='del'>- *</div><div class='del'>- *     h1 = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h2 = { "b" =&gt; 246, "c" =&gt; 300 }</div><div class='del'>- *     h1.merge!(h2)      #=&gt; {"a"=&gt;100, "b"=&gt;246, "c"=&gt;300}</div><div class='del'>- *     h1                 #=&gt; {"a"=&gt;100, "b"=&gt;246, "c"=&gt;300}</div><div class='del'>- *</div><div class='del'>- *     h1 = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h2 = { "b" =&gt; 246, "c" =&gt; 300 }</div><div class='del'>- *     h3 = { "b" =&gt; 357, "d" =&gt; 400 }</div><div class='del'>- *     h1.merge!(h2, h3)</div><div class='del'>- *                        #=&gt; {"a"=&gt;100, "b"=&gt;357, "c"=&gt;300, "d"=&gt;400}</div><div class='del'>- *     h1                 #=&gt; {"a"=&gt;100, "b"=&gt;357, "c"=&gt;300, "d"=&gt;400}</div><div class='del'>- *</div><div class='del'>- *     h1 = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h2 = { "b" =&gt; 246, "c" =&gt; 300 }</div><div class='del'>- *     h3 = { "b" =&gt; 357, "d" =&gt; 400 }</div><div class='del'>- *     h1.merge!(h2, h3) {|key, v1, v2| v1 }</div><div class='del'>- *                        #=&gt; {"a"=&gt;100, "b"=&gt;200, "c"=&gt;300, "d"=&gt;400}</div><div class='del'>- *     h1                 #=&gt; {"a"=&gt;100, "b"=&gt;200, "c"=&gt;300, "d"=&gt;400}</div><div class='del'>- *</div><div class='del'>- *  Hash#update is an alias for Hash#merge!.</div><div class='add'>+ *    hash.merge! -&gt; self</div><div class='add'>+ *    hash.merge!(*other_hashes) -&gt; self</div><div class='add'>+ *    hash.merge!(*other_hashes) { |key, old_value, new_value| ... } -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Merges each of +other_hashes+ into +self+; returns +self+.</div><div class='add'>+ *</div><div class='add'>+ *  Each argument in +other_hashes+ must be a \Hash.</div><div class='add'>+ *</div><div class='add'>+ *  \Method #update is an alias for \#merge!.</div><div class='add'>+ *</div><div class='add'>+ *  With arguments and no block:</div><div class='add'>+ *  * Returns +self+, after the given hashes are merged into it.</div><div class='add'>+ *  * The given hashes are merged left to right.</div><div class='add'>+ *  * Each new entry is added at the end.</div><div class='add'>+ *  * Each duplicate-key entry's value overwrites the previous value.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 = {bat: 3, bar: 4}</div><div class='add'>+ *    h2 = {bam: 5, bat:6}</div><div class='add'>+ *    h.merge!(h1, h2) # =&gt; {:foo=&gt;0, :bar=&gt;4, :baz=&gt;2, :bat=&gt;6, :bam=&gt;5}</div><div class='add'>+ *</div><div class='add'>+ *  With arguments and a block:</div><div class='add'>+ *  * Returns +self+, after the given hashes are merged.</div><div class='add'>+ *  *  The given hashes are merged left to right.</div><div class='add'>+ *  *  Each new-key entry is added at the end.</div><div class='add'>+ *  *  For each duplicate key:</div><div class='add'>+ *     * Calls the block with the key and the old and new values.</div><div class='add'>+ *     * The block's return value becomes the new value for the entry.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 = {bat: 3, bar: 4}</div><div class='add'>+ *    h2 = {bam: 5, bat:6}</div><div class='add'>+ *    h3 = h.merge!(h1, h2) { |key, old_value, new_value| old_value + new_value }</div><div class='add'>+ *    h3 # =&gt; {:foo=&gt;0, :bar=&gt;5, :baz=&gt;2, :bat=&gt;9, :bam=&gt;5}</div><div class='add'>+ *</div><div class='add'>+ *  With no arguments:</div><div class='add'>+ *  * Returns +self+, unmodified.</div><div class='add'>+ *  * The block, if given, is ignored.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.merge # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *    h1 = h.merge! { |key, old_value, new_value| raise 'Cannot happen' }</div><div class='add'>+ *    h1 # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3585,13 +4057,13 @@ rb_hash_update(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     rb_hash_modify(self);</div><div class='ctx'>     for (i = 0; i &lt; argc; i++){</div><div class='del'>-       VALUE hash = to_hash(argv[i]);</div><div class='del'>-       if (block_given) {</div><div class='del'>-           rb_hash_foreach(hash, rb_hash_update_block_i, self);</div><div class='del'>-       }</div><div class='del'>-       else {</div><div class='del'>-           rb_hash_foreach(hash, rb_hash_update_i, self);</div><div class='del'>-       }</div><div class='add'>+        VALUE hash = to_hash(argv[i]);</div><div class='add'>+        if (block_given) {</div><div class='add'>+            rb_hash_foreach(hash, rb_hash_update_block_i, self);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_hash_foreach(hash, rb_hash_update_i, self);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return self;</div><div class='ctx'> }</div><div class='hunk'>@@ -3609,13 +4081,8 @@ rb_hash_update_func_callback(st_data_t *key, st_data_t *value, struct update_arg</div><div class='ctx'>     VALUE newvalue = uf_arg-&gt;value;</div><div class='ctx'> </div><div class='ctx'>     if (existing) {</div><div class='del'>-	newvalue = (*uf_arg-&gt;func)((VALUE)*key, (VALUE)*value, newvalue);</div><div class='del'>-	arg-&gt;old_value = *value;</div><div class='add'>+        newvalue = (*uf_arg-&gt;func)((VALUE)*key, (VALUE)*value, newvalue);</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	arg-&gt;new_key = *key;</div><div class='del'>-    }</div><div class='del'>-    arg-&gt;new_value = newvalue;</div><div class='ctx'>     *value = newvalue;</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -3639,52 +4106,72 @@ rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func)</div><div class='ctx'>     rb_hash_modify(hash1);</div><div class='ctx'>     hash2 = to_hash(hash2);</div><div class='ctx'>     if (func) {</div><div class='del'>-	struct update_func_arg arg;</div><div class='del'>-	arg.hash = hash1;</div><div class='del'>-	arg.func = func;</div><div class='del'>-	rb_hash_foreach(hash2, rb_hash_update_func_i, (VALUE)&amp;arg);</div><div class='add'>+        struct update_func_arg arg;</div><div class='add'>+        arg.hash = hash1;</div><div class='add'>+        arg.func = func;</div><div class='add'>+        rb_hash_foreach(hash2, rb_hash_update_func_i, (VALUE)&amp;arg);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_hash_foreach(hash2, rb_hash_update_i, hash1);</div><div class='add'>+        rb_hash_foreach(hash2, rb_hash_update_i, hash1);</div><div class='ctx'>     }</div><div class='ctx'>     return hash1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.merge(other_hash1, other_hash2, ...)           -&gt; new_hash</div><div class='del'>- *     hsh.merge(other_hash1, other_hash2, ...) {|key, oldval, newval| block}</div><div class='del'>- *                                                        -&gt; new_hash</div><div class='del'>- *</div><div class='del'>- *  Returns a new hash that combines the contents of the receiver and</div><div class='del'>- *  the contents of the given hashes.</div><div class='del'>- *</div><div class='del'>- *  If no block is given, entries with duplicate keys are overwritten</div><div class='del'>- *  with the values from each +other_hash+ successively,</div><div class='del'>- *  otherwise the value for each duplicate key is determined by</div><div class='del'>- *  calling the block with the key, its value in the receiver and</div><div class='del'>- *  its value in each +other_hash+.</div><div class='del'>- *</div><div class='del'>- *  When called without any argument, returns a copy of the receiver.</div><div class='del'>- *</div><div class='del'>- *     h1 = { "a" =&gt; 100, "b" =&gt; 200 }</div><div class='del'>- *     h2 = { "b" =&gt; 246, "c" =&gt; 300 }</div><div class='del'>- *     h3 = { "b" =&gt; 357, "d" =&gt; 400 }</div><div class='del'>- *     h1.merge          #=&gt; {"a"=&gt;100, "b"=&gt;200}</div><div class='del'>- *     h1.merge(h2)      #=&gt; {"a"=&gt;100, "b"=&gt;246, "c"=&gt;300}</div><div class='del'>- *     h1.merge(h2, h3)  #=&gt; {"a"=&gt;100, "b"=&gt;357, "c"=&gt;300, "d"=&gt;400}</div><div class='del'>- *     h1.merge(h2) {|key, oldval, newval| newval - oldval}</div><div class='del'>- *                       #=&gt; {"a"=&gt;100, "b"=&gt;46,  "c"=&gt;300}</div><div class='del'>- *     h1.merge(h2, h3) {|key, oldval, newval| newval - oldval}</div><div class='del'>- *                       #=&gt; {"a"=&gt;100, "b"=&gt;311, "c"=&gt;300, "d"=&gt;400}</div><div class='del'>- *     h1                #=&gt; {"a"=&gt;100, "b"=&gt;200}</div><div class='del'>- *</div><div class='add'>+ *    hash.merge -&gt; copy_of_self</div><div class='add'>+ *    hash.merge(*other_hashes) -&gt; new_hash</div><div class='add'>+ *    hash.merge(*other_hashes) { |key, old_value, new_value| ... } -&gt; new_hash</div><div class='add'>+ *</div><div class='add'>+ *  Returns the new \Hash formed by merging each of +other_hashes+</div><div class='add'>+ *  into a copy of +self+.</div><div class='add'>+ *</div><div class='add'>+ *  Each argument in +other_hashes+ must be a \Hash.</div><div class='add'>+ *</div><div class='add'>+ *  ---</div><div class='add'>+ *</div><div class='add'>+ *  With arguments and no block:</div><div class='add'>+ *  * Returns the new \Hash object formed by merging each successive</div><div class='add'>+ *    \Hash in +other_hashes+ into +self+.</div><div class='add'>+ *  * Each new-key entry is added at the end.</div><div class='add'>+ *  * Each duplicate-key entry's value overwrites the previous value.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 = {bat: 3, bar: 4}</div><div class='add'>+ *    h2 = {bam: 5, bat:6}</div><div class='add'>+ *    h.merge(h1, h2) # =&gt; {:foo=&gt;0, :bar=&gt;4, :baz=&gt;2, :bat=&gt;6, :bam=&gt;5}</div><div class='add'>+ *</div><div class='add'>+ *  With arguments and a block:</div><div class='add'>+ *  * Returns a new \Hash object that is the merge of +self+ and each given hash.</div><div class='add'>+ *  * The given hashes are merged left to right.</div><div class='add'>+ *  * Each new-key entry is added at the end.</div><div class='add'>+ *  * For each duplicate key:</div><div class='add'>+ *    * Calls the block with the key and the old and new values.</div><div class='add'>+ *    * The block's return value becomes the new value for the entry.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 = {bat: 3, bar: 4}</div><div class='add'>+ *    h2 = {bam: 5, bat:6}</div><div class='add'>+ *    h3 = h.merge(h1, h2) { |key, old_value, new_value| old_value + new_value }</div><div class='add'>+ *    h3 # =&gt; {:foo=&gt;0, :bar=&gt;5, :baz=&gt;2, :bat=&gt;9, :bam=&gt;5}</div><div class='add'>+ *</div><div class='add'>+ *  With no arguments:</div><div class='add'>+ *  * Returns a copy of +self+.</div><div class='add'>+ *  * The block, if given, is ignored.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.merge # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *    h1 = h.merge { |key, old_value, new_value| raise 'Cannot happen' }</div><div class='add'>+ *    h1 # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_merge(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    return rb_hash_update(argc, argv, rb_hash_dup(self));</div><div class='add'>+    return rb_hash_update(argc, argv, copy_compare_by_id(rb_hash_dup(self), self));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -3720,27 +4207,24 @@ assoc_i(VALUE key, VALUE val, VALUE arg)</div><div class='ctx'>     VALUE *args = (VALUE *)arg;</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(rb_equal(args[0], key))) {</div><div class='del'>-	args[1] = rb_assoc_new(key, val);</div><div class='del'>-	return ST_STOP;</div><div class='add'>+        args[1] = rb_assoc_new(key, val);</div><div class='add'>+        return ST_STOP;</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hash.assoc(obj)   -&gt;  an_array  or  nil</div><div class='add'>+ *    hash.assoc(key) -&gt; new_array or nil</div><div class='ctx'>  *</div><div class='del'>- *  Searches through the hash comparing _obj_ with the key using &lt;code&gt;==&lt;/code&gt;.</div><div class='del'>- *  Returns the key-value pair (two elements array) or +nil+</div><div class='del'>- *  if no match is found.  See &lt;code&gt;Array#assoc&lt;/code&gt;.</div><div class='add'>+ *  If the given +key+ is found, returns a 2-element \Array containing that key and its value:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.assoc(:bar) # =&gt; [:bar, 1]</div><div class='ctx'>  *</div><div class='del'>- *     h = {"colors"  =&gt; ["red", "blue", "green"],</div><div class='del'>- *          "letters" =&gt; ["a", "b", "c" ]}</div><div class='del'>- *     h.assoc("letters")  #=&gt; ["letters", ["a", "b", "c"]]</div><div class='del'>- *     h.assoc("foo")      #=&gt; nil</div><div class='add'>+ *  Returns +nil+ if key +key+ is not found.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_hash_assoc(VALUE hash, VALUE key)</div><div class='ctx'> {</div><div class='ctx'>     st_table *table;</div><div class='hunk'>@@ -3754,20 +4238,20 @@ rb_hash_assoc(VALUE hash, VALUE key)</div><div class='ctx'>     table = RHASH_ST_TABLE(hash);</div><div class='ctx'>     orighash = table-&gt;type;</div><div class='ctx'> </div><div class='del'>-    if (orighash != &amp;identhash) {</div><div class='del'>-	VALUE value;</div><div class='del'>-	struct reset_hash_type_arg ensure_arg;</div><div class='del'>-	struct st_hash_type assochash;</div><div class='add'>+    if (!RHASH_IDENTHASH_P(hash)) {</div><div class='add'>+        VALUE value;</div><div class='add'>+        struct reset_hash_type_arg ensure_arg;</div><div class='add'>+        struct st_hash_type assochash;</div><div class='ctx'> </div><div class='del'>-	assochash.compare = assoc_cmp;</div><div class='del'>-	assochash.hash = orighash-&gt;hash;</div><div class='add'>+        assochash.compare = assoc_cmp;</div><div class='add'>+        assochash.hash = orighash-&gt;hash;</div><div class='ctx'>         table-&gt;type = &amp;assochash;</div><div class='del'>-	args[0] = hash;</div><div class='del'>-	args[1] = key;</div><div class='del'>-	ensure_arg.hash = hash;</div><div class='del'>-	ensure_arg.orighash = orighash;</div><div class='del'>-	value = rb_ensure(lookup2_call, (VALUE)&amp;args, reset_hash_type, (VALUE)&amp;ensure_arg);</div><div class='del'>-	if (value != Qundef) return rb_assoc_new(key, value);</div><div class='add'>+        args[0] = hash;</div><div class='add'>+        args[1] = key;</div><div class='add'>+        ensure_arg.hash = hash;</div><div class='add'>+        ensure_arg.orighash = orighash;</div><div class='add'>+        value = rb_ensure(lookup2_call, (VALUE)&amp;args, reset_hash_type, (VALUE)&amp;ensure_arg);</div><div class='add'>+        if (!UNDEF_P(value)) return rb_assoc_new(key, value);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     args[0] = key;</div><div class='hunk'>@@ -3782,26 +4266,26 @@ rassoc_i(VALUE key, VALUE val, VALUE arg)</div><div class='ctx'>     VALUE *args = (VALUE *)arg;</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(rb_equal(args[0], val))) {</div><div class='del'>-	args[1] = rb_assoc_new(key, val);</div><div class='del'>-	return ST_STOP;</div><div class='add'>+        args[1] = rb_assoc_new(key, val);</div><div class='add'>+        return ST_STOP;</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hash.rassoc(obj) -&gt; an_array or nil</div><div class='add'>+ *    hash.rassoc(value) -&gt; new_array or nil</div><div class='ctx'>  *</div><div class='del'>- *  Searches through the hash comparing _obj_ with the value using &lt;code&gt;==&lt;/code&gt;.</div><div class='del'>- *  Returns the first key-value pair (two-element array) that matches. See</div><div class='del'>- *  also &lt;code&gt;Array#rassoc&lt;/code&gt;.</div><div class='add'>+ *  Returns a new 2-element \Array consisting of the key and value</div><div class='add'>+ *  of the first-found entry whose value is &lt;tt&gt;==&lt;/tt&gt; to value</div><div class='add'>+ *  (see {Entry Order}[rdoc-ref:Hash@Entry+Order]):</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 1}</div><div class='add'>+ *    h.rassoc(1) # =&gt; [:bar, 1]</div><div class='ctx'>  *</div><div class='del'>- *     a = {1=&gt; "one", 2 =&gt; "two", 3 =&gt; "three", "ii" =&gt; "two"}</div><div class='del'>- *     a.rassoc("two")    #=&gt; [2, "two"]</div><div class='del'>- *     a.rassoc("four")   #=&gt; nil</div><div class='add'>+ *  Returns +nil+ if no such value found.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='add'>+static VALUE</div><div class='ctx'> rb_hash_rassoc(VALUE hash, VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     VALUE args[2];</div><div class='hunk'>@@ -3826,18 +4310,33 @@ flatten_i(VALUE key, VALUE val, VALUE ary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hash.flatten -&gt; an_array</div><div class='del'>- *     hash.flatten(level) -&gt; an_array</div><div class='del'>- *</div><div class='del'>- *  Returns a new array that is a one-dimensional flattening of this</div><div class='del'>- *  hash. That is, for every key or value that is an array, extract</div><div class='del'>- *  its elements into the new array.  Unlike Array#flatten, this</div><div class='del'>- *  method does not flatten recursively by default.  The optional</div><div class='del'>- *  &lt;i&gt;level&lt;/i&gt; argument determines the level of recursion to flatten.</div><div class='del'>- *</div><div class='del'>- *     a =  {1=&gt; "one", 2 =&gt; [2,"two"], 3 =&gt; "three"}</div><div class='del'>- *     a.flatten    # =&gt; [1, "one", 2, [2, "two"], 3, "three"]</div><div class='del'>- *     a.flatten(2) # =&gt; [1, "one", 2, 2, "two", 3, "three"]</div><div class='add'>+ *     hash.flatten -&gt; new_array</div><div class='add'>+ *     hash.flatten(level) -&gt; new_array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new \Array object that is a 1-dimensional flattening of +self+.</div><div class='add'>+ *</div><div class='add'>+ *  ---</div><div class='add'>+ *</div><div class='add'>+ *  By default, nested Arrays are not flattened:</div><div class='add'>+ *    h = {foo: 0, bar: [:bat, 3], baz: 2}</div><div class='add'>+ *    h.flatten # =&gt; [:foo, 0, :bar, [:bat, 3], :baz, 2]</div><div class='add'>+ *</div><div class='add'>+ *  Takes the depth of recursive flattening from \Integer argument +level+:</div><div class='add'>+ *    h = {foo: 0, bar: [:bat, [:baz, [:bat, ]]]}</div><div class='add'>+ *    h.flatten(1) # =&gt; [:foo, 0, :bar, [:bat, [:baz, [:bat]]]]</div><div class='add'>+ *    h.flatten(2) # =&gt; [:foo, 0, :bar, :bat, [:baz, [:bat]]]</div><div class='add'>+ *    h.flatten(3) # =&gt; [:foo, 0, :bar, :bat, :baz, [:bat]]</div><div class='add'>+ *    h.flatten(4) # =&gt; [:foo, 0, :bar, :bat, :baz, :bat]</div><div class='add'>+ *</div><div class='add'>+ *  When +level+ is negative, flattens all nested Arrays:</div><div class='add'>+ *    h = {foo: 0, bar: [:bat, [:baz, [:bat, ]]]}</div><div class='add'>+ *    h.flatten(-1) # =&gt; [:foo, 0, :bar, :bat, :baz, :bat]</div><div class='add'>+ *    h.flatten(-2) # =&gt; [:foo, 0, :bar, :bat, :baz, :bat]</div><div class='add'>+ *</div><div class='add'>+ *  When +level+ is zero, returns the equivalent of #to_a :</div><div class='add'>+ *    h = {foo: 0, bar: [:bat, 3], baz: 2}</div><div class='add'>+ *    h.flatten(0) # =&gt; [[:foo, 0], [:bar, [:bat, 3]], [:baz, 2]]</div><div class='add'>+ *    h.flatten(0) == h.to_a # =&gt; true</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3848,26 +4347,26 @@ rb_hash_flatten(int argc, VALUE *argv, VALUE hash)</div><div class='ctx'>     rb_check_arity(argc, 0, 1);</div><div class='ctx'> </div><div class='ctx'>     if (argc) {</div><div class='del'>-	int level = NUM2INT(argv[0]);</div><div class='add'>+        int level = NUM2INT(argv[0]);</div><div class='ctx'> </div><div class='del'>-	if (level == 0) return rb_hash_to_a(hash);</div><div class='add'>+        if (level == 0) return rb_hash_to_a(hash);</div><div class='ctx'> </div><div class='del'>-	ary = rb_ary_new_capa(RHASH_SIZE(hash) * 2);</div><div class='del'>-	rb_hash_foreach(hash, flatten_i, ary);</div><div class='del'>-	level--;</div><div class='add'>+        ary = rb_ary_new_capa(RHASH_SIZE(hash) * 2);</div><div class='add'>+        rb_hash_foreach(hash, flatten_i, ary);</div><div class='add'>+        level--;</div><div class='ctx'> </div><div class='del'>-	if (level &gt; 0) {</div><div class='del'>-	    VALUE ary_flatten_level = INT2FIX(level);</div><div class='del'>-	    rb_funcallv(ary, id_flatten_bang, 1, &amp;ary_flatten_level);</div><div class='del'>-	}</div><div class='del'>-	else if (level &lt; 0) {</div><div class='del'>-	    /* flatten recursively */</div><div class='del'>-	    rb_funcallv(ary, id_flatten_bang, 0, 0);</div><div class='del'>-	}</div><div class='add'>+        if (level &gt; 0) {</div><div class='add'>+            VALUE ary_flatten_level = INT2FIX(level);</div><div class='add'>+            rb_funcallv(ary, id_flatten_bang, 1, &amp;ary_flatten_level);</div><div class='add'>+        }</div><div class='add'>+        else if (level &lt; 0) {</div><div class='add'>+            /* flatten recursively */</div><div class='add'>+            rb_funcallv(ary, id_flatten_bang, 0, 0);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ary = rb_ary_new_capa(RHASH_SIZE(hash) * 2);</div><div class='del'>-	rb_hash_foreach(hash, flatten_i, ary);</div><div class='add'>+        ary = rb_ary_new_capa(RHASH_SIZE(hash) * 2);</div><div class='add'>+        rb_hash_foreach(hash, flatten_i, ary);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return ary;</div><div class='hunk'>@@ -3877,7 +4376,7 @@ static int</div><div class='ctx'> delete_if_nil(VALUE key, VALUE value, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     if (NIL_P(value)) {</div><div class='del'>-	return ST_DELETE;</div><div class='add'>+        return ST_DELETE;</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -3886,21 +4385,19 @@ static int</div><div class='ctx'> set_if_not_nil(VALUE key, VALUE value, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     if (!NIL_P(value)) {</div><div class='del'>-	rb_hash_aset(hash, key, value);</div><div class='add'>+        rb_hash_aset(hash, key, value);</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.compact -&gt; new_hash</div><div class='del'>- *</div><div class='del'>- *  Returns a new hash with the nil values/key pairs removed</div><div class='del'>- *</div><div class='del'>- *     h = { a: 1, b: false, c: nil }</div><div class='del'>- *     h.compact     #=&gt; { a: 1, b: false }</div><div class='del'>- *     h             #=&gt; { a: 1, b: false, c: nil }</div><div class='add'>+ *    hash.compact -&gt; new_hash</div><div class='ctx'>  *</div><div class='add'>+ *  Returns a copy of +self+ with all +nil+-valued entries removed:</div><div class='add'>+ *    h = {foo: 0, bar: nil, baz: 2, bat: nil}</div><div class='add'>+ *    h1 = h.compact</div><div class='add'>+ *    h1 # =&gt; {:foo=&gt;0, :baz=&gt;2}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3908,21 +4405,20 @@ rb_hash_compact(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     VALUE result = rb_hash_new();</div><div class='ctx'>     if (!RHASH_EMPTY_P(hash)) {</div><div class='del'>-	rb_hash_foreach(hash, set_if_not_nil, result);</div><div class='add'>+        rb_hash_foreach(hash, set_if_not_nil, result);</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.compact! -&gt; hsh or nil</div><div class='add'>+ *    hash.compact! -&gt; self or nil</div><div class='ctx'>  *</div><div class='del'>- *  Removes all nil values from the hash.</div><div class='del'>- *  Returns nil if no changes were made, otherwise returns the hash.</div><div class='del'>- *</div><div class='del'>- *     h = { a: 1, b: false, c: nil }</div><div class='del'>- *     h.compact!     #=&gt; { a: 1, b: false }</div><div class='add'>+ *  Returns +self+ with all its +nil+-valued entries removed (in place):</div><div class='add'>+ *    h = {foo: 0, bar: nil, baz: 2, bat: nil}</div><div class='add'>+ *    h.compact! # =&gt; {:foo=&gt;0, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='add'>+ *  Returns +nil+ if no entries were removed.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3932,30 +4428,44 @@ rb_hash_compact_bang(VALUE hash)</div><div class='ctx'>     rb_hash_modify_check(hash);</div><div class='ctx'>     n = RHASH_SIZE(hash);</div><div class='ctx'>     if (n) {</div><div class='del'>-	rb_hash_foreach(hash, delete_if_nil, hash);</div><div class='add'>+        rb_hash_foreach(hash, delete_if_nil, hash);</div><div class='ctx'>         if (n != RHASH_SIZE(hash))</div><div class='del'>-	    return hash;</div><div class='add'>+            return hash;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static st_table *rb_init_identtable_with_size(st_index_t size);</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.compare_by_identity -&gt; hsh</div><div class='del'>- *</div><div class='del'>- *  Makes &lt;i&gt;hsh&lt;/i&gt; compare its keys by their identity, i.e. it</div><div class='del'>- *  will consider exact same objects as same keys.</div><div class='del'>- *</div><div class='del'>- *     h1 = { "a" =&gt; 100, "b" =&gt; 200, :c =&gt; "c" }</div><div class='del'>- *     h1["a"]        #=&gt; 100</div><div class='del'>- *     h1.compare_by_identity</div><div class='del'>- *     h1.compare_by_identity? #=&gt; true</div><div class='del'>- *     h1["a".dup]    #=&gt; nil  # different objects.</div><div class='del'>- *     h1[:c]         #=&gt; "c"  # same symbols are all same.</div><div class='del'>- *</div><div class='add'>+ *    hash.compare_by_identity -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Sets +self+ to consider only identity in comparing keys;</div><div class='add'>+ *  two keys are considered the same only if they are the same object;</div><div class='add'>+ *  returns +self+.</div><div class='add'>+ *</div><div class='add'>+ *  By default, these two object are considered to be the same key,</div><div class='add'>+ *  so +s1+ will overwrite +s0+:</div><div class='add'>+ *    s0 = 'x'</div><div class='add'>+ *    s1 = 'x'</div><div class='add'>+ *    h = {}</div><div class='add'>+ *    h.compare_by_identity? # =&gt; false</div><div class='add'>+ *    h[s0] = 0</div><div class='add'>+ *    h[s1] = 1</div><div class='add'>+ *    h # =&gt; {"x"=&gt;1}</div><div class='add'>+ *</div><div class='add'>+ *  After calling \#compare_by_identity, the keys are considered to be different,</div><div class='add'>+ *  and therefore do not overwrite each other:</div><div class='add'>+ *    h = {}</div><div class='add'>+ *    h.compare_by_identity # =&gt; {}</div><div class='add'>+ *    h.compare_by_identity? # =&gt; true</div><div class='add'>+ *    h[s0] = 0</div><div class='add'>+ *    h[s1] = 1</div><div class='add'>+ *    h # =&gt; {"x"=&gt;0, "x"=&gt;1}</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='add'>+VALUE</div><div class='ctx'> rb_hash_compare_by_id(VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     VALUE tmp;</div><div class='hunk'>@@ -3974,29 +4484,21 @@ rb_hash_compare_by_id(VALUE hash)</div><div class='ctx'>     st_free_table(RHASH_ST_TABLE(hash));</div><div class='ctx'>     RHASH_ST_TABLE_SET(hash, identtable);</div><div class='ctx'>     RHASH_ST_CLEAR(tmp);</div><div class='del'>-    rb_gc_force_recycle(tmp);</div><div class='ctx'> </div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.compare_by_identity? -&gt; true or false</div><div class='del'>- *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;hsh&lt;/i&gt; will compare its keys by</div><div class='del'>- *  their identity.  Also see &lt;code&gt;Hash#compare_by_identity&lt;/code&gt;.</div><div class='add'>+ *    hash.compare_by_identity? -&gt; true or false</div><div class='ctx'>  *</div><div class='add'>+ *  Returns +true+ if #compare_by_identity has been called, +false+ otherwise.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> MJIT_FUNC_EXPORTED VALUE</div><div class='ctx'> rb_hash_compare_by_id_p(VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    if (RHASH_ST_TABLE_P(hash) &amp;&amp; RHASH_ST_TABLE(hash)-&gt;type == &amp;identhash) {</div><div class='del'>-	return Qtrue;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        return Qfalse;</div><div class='del'>-    }</div><div class='add'>+    return RBOOL(RHASH_IDENTHASH_P(hash));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -4007,13 +4509,21 @@ rb_ident_hash_new(void)</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_ident_hash_new_with_size(st_index_t size)</div><div class='add'>+{</div><div class='add'>+    VALUE hash = rb_hash_new();</div><div class='add'>+    RHASH_ST_TABLE_SET(hash, st_init_table_with_size(&amp;identhash, size));</div><div class='add'>+    return hash;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> st_table *</div><div class='ctx'> rb_init_identtable(void)</div><div class='ctx'> {</div><div class='ctx'>     return st_init_table(&amp;identhash);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-st_table *</div><div class='add'>+static st_table *</div><div class='ctx'> rb_init_identtable_with_size(st_index_t size)</div><div class='ctx'> {</div><div class='ctx'>     return st_init_table_with_size(&amp;identhash, size);</div><div class='hunk'>@@ -4024,8 +4534,8 @@ any_p_i(VALUE key, VALUE value, VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ret = rb_yield(rb_assoc_new(key, value));</div><div class='ctx'>     if (RTEST(ret)) {</div><div class='del'>-	*(VALUE *)arg = Qtrue;</div><div class='del'>-	return ST_STOP;</div><div class='add'>+        *(VALUE *)arg = Qtrue;</div><div class='add'>+        return ST_STOP;</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -4035,8 +4545,8 @@ any_p_i_fast(VALUE key, VALUE value, VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ret = rb_yield_values(2, key, value);</div><div class='ctx'>     if (RTEST(ret)) {</div><div class='del'>-	*(VALUE *)arg = Qtrue;</div><div class='del'>-	return ST_STOP;</div><div class='add'>+        *(VALUE *)arg = Qtrue;</div><div class='add'>+        return ST_STOP;</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='hunk'>@@ -4046,18 +4556,39 @@ any_p_i_pattern(VALUE key, VALUE value, VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ret = rb_funcall(((VALUE *)arg)[1], idEqq, 1, rb_assoc_new(key, value));</div><div class='ctx'>     if (RTEST(ret)) {</div><div class='del'>-	*(VALUE *)arg = Qtrue;</div><div class='del'>-	return ST_STOP;</div><div class='add'>+        *(VALUE *)arg = Qtrue;</div><div class='add'>+        return ST_STOP;</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     hsh.any? [{ |(key, value)| block }]   -&gt; true or false</div><div class='del'>- *     hsh.any?(pattern)                     -&gt; true or false</div><div class='del'>- *</div><div class='del'>- *  See also Enumerable#any?</div><div class='add'>+ *    hash.any? -&gt; true or false</div><div class='add'>+ *    hash.any?(object) -&gt; true or false</div><div class='add'>+ *    hash.any? {|key, value| ... } -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if any element satisfies a given criterion;</div><div class='add'>+ *  +false+ otherwise.</div><div class='add'>+ *</div><div class='add'>+ *  With no argument and no block,</div><div class='add'>+ *  returns +true+ if +self+ is non-empty; +false+ if empty.</div><div class='add'>+ *</div><div class='add'>+ *  With argument +object+ and no block,</div><div class='add'>+ *  returns +true+ if for any key +key+</div><div class='add'>+ *  &lt;tt&gt;h.assoc(key) == object&lt;/tt&gt;:</div><div class='add'>+ *   h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *   h.any?([:bar, 1]) # =&gt; true</div><div class='add'>+ *   h.any?([:bar, 0]) # =&gt; false</div><div class='add'>+ *   h.any?([:baz, 1]) # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  With no argument and a block,</div><div class='add'>+ *  calls the block with each key-value pair;</div><div class='add'>+ *  returns +true+ if the block returns any truthy value,</div><div class='add'>+ *  +false+ otherwise:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.any? {|key, value| value &lt; 3 } # =&gt; true</div><div class='add'>+ *    h.any? {|key, value| value &gt; 3 } # =&gt; false</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4072,40 +4603,50 @@ rb_hash_any_p(int argc, VALUE *argv, VALUE hash)</div><div class='ctx'>         if (rb_block_given_p()) {</div><div class='ctx'>             rb_warn("given block not used");</div><div class='ctx'>         }</div><div class='del'>-	args[1] = argv[0];</div><div class='add'>+        args[1] = argv[0];</div><div class='ctx'> </div><div class='del'>-	rb_hash_foreach(hash, any_p_i_pattern, (VALUE)args);</div><div class='add'>+        rb_hash_foreach(hash, any_p_i_pattern, (VALUE)args);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (!rb_block_given_p()) {</div><div class='del'>-	    /* yields pairs, never false */</div><div class='del'>-	    return Qtrue;</div><div class='del'>-	}</div><div class='del'>-	if (rb_block_arity() &gt; 1)</div><div class='del'>-	    rb_hash_foreach(hash, any_p_i_fast, (VALUE)args);</div><div class='del'>-	else</div><div class='del'>-	    rb_hash_foreach(hash, any_p_i, (VALUE)args);</div><div class='add'>+        if (!rb_block_given_p()) {</div><div class='add'>+            /* yields pairs, never false */</div><div class='add'>+            return Qtrue;</div><div class='add'>+        }</div><div class='add'>+        if (rb_block_pair_yield_optimizable())</div><div class='add'>+            rb_hash_foreach(hash, any_p_i_fast, (VALUE)args);</div><div class='add'>+        else</div><div class='add'>+            rb_hash_foreach(hash, any_p_i, (VALUE)args);</div><div class='ctx'>     }</div><div class='ctx'>     return args[0];</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   hsh.dig(key, ...)                 -&gt; object</div><div class='del'>- *</div><div class='del'>- * Extracts the nested value specified by the sequence of &lt;i&gt;key&lt;/i&gt;</div><div class='del'>- * objects by calling +dig+ at each step, returning +nil+ if any</div><div class='del'>- * intermediate step is +nil+.</div><div class='del'>- *</div><div class='del'>- *   h = { foo: {bar: {baz: 1}}}</div><div class='del'>- *</div><div class='del'>- *   h.dig(:foo, :bar, :baz)     #=&gt; 1</div><div class='del'>- *   h.dig(:foo, :zot, :xyz)     #=&gt; nil</div><div class='del'>- *</div><div class='del'>- *   g = { foo: [10, 11, 12] }</div><div class='del'>- *   g.dig(:foo, 1)              #=&gt; 11</div><div class='del'>- *   g.dig(:foo, 1, 0)           #=&gt; TypeError: Integer does not have #dig method</div><div class='del'>- *   g.dig(:foo, :bar)           #=&gt; TypeError: no implicit conversion of Symbol into Integer</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    hash.dig(key, *identifiers) -&gt; object</div><div class='add'>+ *</div><div class='add'>+ *  Finds and returns the object in nested objects</div><div class='add'>+ *  that is specified by +key+ and +identifiers+.</div><div class='add'>+ *  The nested objects may be instances of various classes.</div><div class='add'>+ *  See {Dig Methods}[rdoc-ref:dig_methods.rdoc].</div><div class='add'>+ *</div><div class='add'>+ *  Nested Hashes:</div><div class='add'>+ *    h = {foo: {bar: {baz: 2}}}</div><div class='add'>+ *    h.dig(:foo) # =&gt; {:bar=&gt;{:baz=&gt;2}}</div><div class='add'>+ *    h.dig(:foo, :bar) # =&gt; {:baz=&gt;2}</div><div class='add'>+ *    h.dig(:foo, :bar, :baz) # =&gt; 2</div><div class='add'>+ *    h.dig(:foo, :bar, :BAZ) # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Nested Hashes and Arrays:</div><div class='add'>+ *    h = {foo: {bar: [:a, :b, :c]}}</div><div class='add'>+ *    h.dig(:foo, :bar, 2) # =&gt; :c</div><div class='add'>+ *</div><div class='add'>+ *  This method will use the {default values}[rdoc-ref:Hash@Default+Values]</div><div class='add'>+ *  for keys that are not present:</div><div class='add'>+ *    h = {foo: {bar: [:a, :b, :c]}}</div><div class='add'>+ *    h.dig(:hello) # =&gt; nil</div><div class='add'>+ *    h.default_proc = -&gt; (hash, _key) { hash }</div><div class='add'>+ *    h.dig(:hello, :world) # =&gt; h</div><div class='add'>+ *    h.dig(:hello, :world, :foo, :bar, 2) # =&gt; :c</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4123,7 +4664,7 @@ hash_le_i(VALUE key, VALUE value, VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     VALUE *args = (VALUE *)arg;</div><div class='ctx'>     VALUE v = rb_hash_lookup2(args[0], key, Qundef);</div><div class='del'>-    if (v != Qundef &amp;&amp; rb_equal(value, v)) return ST_CONTINUE;</div><div class='add'>+    if (!UNDEF_P(v) &amp;&amp; rb_equal(value, v)) return ST_CONTINUE;</div><div class='ctx'>     args[1] = Qfalse;</div><div class='ctx'>     return ST_STOP;</div><div class='ctx'> }</div><div class='hunk'>@@ -4139,17 +4680,15 @@ hash_le(VALUE hash1, VALUE hash2)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   hash &lt;= other -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;hash&lt;/i&gt; is subset of</div><div class='del'>- * &lt;i&gt;other&lt;/i&gt; or equals to &lt;i&gt;other&lt;/i&gt;.</div><div class='del'>- *</div><div class='del'>- *    h1 = {a:1, b:2}</div><div class='del'>- *    h2 = {a:1, b:2, c:3}</div><div class='del'>- *    h1 &lt;= h2   #=&gt; true</div><div class='del'>- *    h2 &lt;= h1   #=&gt; false</div><div class='del'>- *    h1 &lt;= h1   #=&gt; true</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    hash &lt;= other_hash -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if +hash+ is a subset of +other_hash+, +false+ otherwise:</div><div class='add'>+ *    h1 = {foo: 0, bar: 1}</div><div class='add'>+ *    h2 = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 &lt;= h2 # =&gt; true</div><div class='add'>+ *    h2 &lt;= h1 # =&gt; false</div><div class='add'>+ *    h1 &lt;= h1 # =&gt; true</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_le(VALUE hash, VALUE other)</div><div class='hunk'>@@ -4160,17 +4699,15 @@ rb_hash_le(VALUE hash, VALUE other)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   hash &lt; other -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;hash&lt;/i&gt; is subset of</div><div class='del'>- * &lt;i&gt;other&lt;/i&gt;.</div><div class='del'>- *</div><div class='del'>- *    h1 = {a:1, b:2}</div><div class='del'>- *    h2 = {a:1, b:2, c:3}</div><div class='del'>- *    h1 &lt; h2    #=&gt; true</div><div class='del'>- *    h2 &lt; h1    #=&gt; false</div><div class='del'>- *    h1 &lt; h1    #=&gt; false</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    hash &lt; other_hash -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if +hash+ is a proper subset of +other_hash+, +false+ otherwise:</div><div class='add'>+ *    h1 = {foo: 0, bar: 1}</div><div class='add'>+ *    h2 = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h1 &lt; h2 # =&gt; true</div><div class='add'>+ *    h2 &lt; h1 # =&gt; false</div><div class='add'>+ *    h1 &lt; h1 # =&gt; false</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_lt(VALUE hash, VALUE other)</div><div class='hunk'>@@ -4181,17 +4718,15 @@ rb_hash_lt(VALUE hash, VALUE other)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   hash &gt;= other -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;other&lt;/i&gt; is subset of</div><div class='del'>- * &lt;i&gt;hash&lt;/i&gt; or equals to &lt;i&gt;hash&lt;/i&gt;.</div><div class='del'>- *</div><div class='del'>- *    h1 = {a:1, b:2}</div><div class='del'>- *    h2 = {a:1, b:2, c:3}</div><div class='del'>- *    h1 &gt;= h2   #=&gt; false</div><div class='del'>- *    h2 &gt;= h1   #=&gt; true</div><div class='del'>- *    h1 &gt;= h1   #=&gt; true</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    hash &gt;= other_hash -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if +hash+ is a superset of +other_hash+, +false+ otherwise:</div><div class='add'>+ *    h1 = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h2 = {foo: 0, bar: 1}</div><div class='add'>+ *    h1 &gt;= h2 # =&gt; true</div><div class='add'>+ *    h2 &gt;= h1 # =&gt; false</div><div class='add'>+ *    h1 &gt;= h1 # =&gt; true</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_ge(VALUE hash, VALUE other)</div><div class='hunk'>@@ -4202,17 +4737,15 @@ rb_hash_ge(VALUE hash, VALUE other)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   hash &gt; other -&gt; true or false</div><div class='del'>- *</div><div class='del'>- * Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;other&lt;/i&gt; is subset of</div><div class='del'>- * &lt;i&gt;hash&lt;/i&gt;.</div><div class='del'>- *</div><div class='del'>- *    h1 = {a:1, b:2}</div><div class='del'>- *    h2 = {a:1, b:2, c:3}</div><div class='del'>- *    h1 &gt; h2    #=&gt; false</div><div class='del'>- *    h2 &gt; h1    #=&gt; true</div><div class='del'>- *    h1 &gt; h1    #=&gt; false</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    hash &gt; other_hash -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if +hash+ is a proper superset of +other_hash+, +false+ otherwise:</div><div class='add'>+ *    h1 = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h2 = {foo: 0, bar: 1}</div><div class='add'>+ *    h1 &gt; h2 # =&gt; true</div><div class='add'>+ *    h2 &gt; h1 # =&gt; false</div><div class='add'>+ *    h1 &gt; h1 # =&gt; false</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_gt(VALUE hash, VALUE other)</div><div class='hunk'>@@ -4223,29 +4756,34 @@ rb_hash_gt(VALUE hash, VALUE other)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-hash_proc_call(VALUE key, VALUE hash, int argc, const VALUE *argv, VALUE passed_proc)</div><div class='add'>+hash_proc_call(RB_BLOCK_CALL_FUNC_ARGLIST(key, hash))</div><div class='ctx'> {</div><div class='ctx'>     rb_check_arity(argc, 1, 1);</div><div class='ctx'>     return rb_hash_aref(hash, *argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   hash.to_proc -&gt; proc</div><div class='del'>- *</div><div class='del'>- * Returns a Proc which maps keys to values.</div><div class='del'>- *</div><div class='del'>- *   h = {a:1, b:2}</div><div class='del'>- *   hp = h.to_proc</div><div class='del'>- *   hp.call(:a)          #=&gt; 1</div><div class='del'>- *   hp.call(:b)          #=&gt; 2</div><div class='del'>- *   hp.call(:c)          #=&gt; nil</div><div class='del'>- *   [:a, :b, :c].map(&amp;h) #=&gt; [1, 2, nil]</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    hash.to_proc -&gt; proc</div><div class='add'>+ *</div><div class='add'>+ *  Returns a \Proc object that maps a key to its value:</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    proc = h.to_proc</div><div class='add'>+ *    proc.class # =&gt; Proc</div><div class='add'>+ *    proc.call(:foo) # =&gt; 0</div><div class='add'>+ *    proc.call(:bar) # =&gt; 1</div><div class='add'>+ *    proc.call(:nosuch) # =&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_hash_to_proc(VALUE hash)</div><div class='ctx'> {</div><div class='del'>-    return rb_func_proc_new(hash_proc_call, hash);</div><div class='add'>+    return rb_func_lambda_new(hash_proc_call, hash, 1, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_hash_deconstruct_keys(VALUE hash, VALUE keys)</div><div class='add'>+{</div><div class='add'>+    return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -4278,7 +4816,7 @@ rb_hash_add_new_element(VALUE hash, VALUE key, VALUE val)</div><div class='ctx'>         if (ret != -1) {</div><div class='ctx'>             return ret;</div><div class='ctx'>         }</div><div class='del'>-        ar_try_convert_table(hash);</div><div class='add'>+        ar_force_convert_table(hash, __FILE__, __LINE__);</div><div class='ctx'>     }</div><div class='ctx'>     tbl = RHASH_TBL_RAW(hash);</div><div class='ctx'>     return st_update(tbl, (st_data_t)key, add_new_i, (st_data_t)args);</div><div class='hunk'>@@ -4305,7 +4843,7 @@ ar_bulk_insert(VALUE hash, long argc, const VALUE *argv)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-MJIT_FUNC_EXPORTED void</div><div class='add'>+void</div><div class='ctx'> rb_hash_bulk_insert(long argc, const VALUE *argv, VALUE hash)</div><div class='ctx'> {</div><div class='ctx'>     HASH_ASSERT(argc % 2 == 0);</div><div class='hunk'>@@ -4331,8 +4869,6 @@ rb_hash_bulk_insert(long argc, const VALUE *argv, VALUE hash)</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int path_tainted = -1;</div><div class='del'>-</div><div class='ctx'> static char **origenviron;</div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'> #define GET_ENVIRON(e) ((e) = rb_w32_get_environ())</div><div class='hunk'>@@ -4341,22 +4877,7 @@ static char **my_environ;</div><div class='ctx'> #undef environ</div><div class='ctx'> #define environ my_environ</div><div class='ctx'> #undef getenv</div><div class='del'>-static char *(*w32_getenv)(const char*);</div><div class='del'>-static char *</div><div class='del'>-w32_getenv_unknown(const char *name)</div><div class='del'>-{</div><div class='del'>-    char *(*func)(const char*);</div><div class='del'>-    if (rb_locale_encindex() == rb_ascii8bit_encindex()) {</div><div class='del'>-	func = rb_w32_getenv;</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	func = rb_w32_ugetenv;</div><div class='del'>-    }</div><div class='del'>-    /* atomic assignment in flat memory model */</div><div class='del'>-    return (w32_getenv = func)(name);</div><div class='del'>-}</div><div class='del'>-static char *(*w32_getenv)(const char*) = w32_getenv_unknown;</div><div class='del'>-#define getenv(n) w32_getenv(n)</div><div class='add'>+#define getenv(n) rb_w32_ugetenv(n)</div><div class='ctx'> #elif defined(__APPLE__)</div><div class='ctx'> #undef environ</div><div class='ctx'> #define environ (*_NSGetEnviron())</div><div class='hunk'>@@ -4375,36 +4896,32 @@ extern char **environ;</div><div class='ctx'> #define ENVNMATCH(s1, s2, n) (memcmp((s1), (s2), (n)) == 0)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-env_enc_str_new(const char *ptr, long len, rb_encoding *enc)</div><div class='add'>+#define ENV_LOCK()   RB_VM_LOCK_ENTER()</div><div class='add'>+#define ENV_UNLOCK() RB_VM_LOCK_LEAVE()</div><div class='add'>+</div><div class='add'>+static inline rb_encoding *</div><div class='add'>+env_encoding(void)</div><div class='ctx'> {</div><div class='ctx'> #ifdef _WIN32</div><div class='del'>-    rb_encoding *internal = rb_default_internal_encoding();</div><div class='del'>-    const int ecflags = ECONV_INVALID_REPLACE | ECONV_UNDEF_REPLACE;</div><div class='del'>-    rb_encoding *utf8 = rb_utf8_encoding();</div><div class='del'>-    VALUE str = rb_enc_str_new(NULL, 0, (internal ? internal : enc));</div><div class='del'>-    if (NIL_P(rb_str_cat_conv_enc_opts(str, 0, ptr, len, utf8, ecflags, Qnil))) {</div><div class='del'>-        rb_str_initialize(str, ptr, len, NULL);</div><div class='del'>-    }</div><div class='add'>+    return rb_utf8_encoding();</div><div class='ctx'> #else</div><div class='del'>-    VALUE str = rb_external_str_new_with_enc(ptr, len, enc);</div><div class='add'>+    return rb_locale_encoding();</div><div class='ctx'> #endif</div><div class='del'>-</div><div class='del'>-    OBJ_TAINT(str);</div><div class='del'>-    rb_obj_freeze(str);</div><div class='del'>-    return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-env_enc_str_new_cstr(const char *ptr, rb_encoding *enc)</div><div class='add'>+env_enc_str_new(const char *ptr, long len, rb_encoding *enc)</div><div class='ctx'> {</div><div class='del'>-    return env_enc_str_new(ptr, strlen(ptr), enc);</div><div class='add'>+    VALUE str = rb_external_str_new_with_enc(ptr, len, enc);</div><div class='add'>+</div><div class='add'>+    rb_obj_freeze(str);</div><div class='add'>+    return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> env_str_new(const char *ptr, long len)</div><div class='ctx'> {</div><div class='del'>-    return env_enc_str_new(ptr, len, rb_locale_encoding());</div><div class='add'>+    return env_enc_str_new(ptr, len, env_encoding());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4414,65 +4931,55 @@ env_str_new2(const char *ptr)</div><div class='ctx'>     return env_str_new(ptr, strlen(ptr));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int env_path_tainted(const char *);</div><div class='del'>-</div><div class='del'>-static const char TZ_ENV[] = "TZ";</div><div class='del'>-extern bool ruby_tz_uptodate_p;</div><div class='del'>-</div><div class='del'>-static rb_encoding *</div><div class='del'>-env_encoding_for(const char *name, const char *ptr)</div><div class='add'>+static VALUE</div><div class='add'>+getenv_with_lock(const char *name)</div><div class='ctx'> {</div><div class='del'>-    if (ENVMATCH(name, PATH_ENV) &amp;&amp; !env_path_tainted(ptr)) {</div><div class='del'>-	return rb_filesystem_encoding();</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	return rb_locale_encoding();</div><div class='add'>+    VALUE ret;</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        const char *val = getenv(name);</div><div class='add'>+        ret = env_str_new2(val);</div><div class='ctx'>     }</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+    return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-env_name_new(const char *name, const char *ptr)</div><div class='add'>+static bool</div><div class='add'>+has_env_with_lock(const char *name)</div><div class='ctx'> {</div><div class='del'>-    return env_enc_str_new_cstr(ptr, env_encoding_for(name, ptr));</div><div class='add'>+    const char *val;</div><div class='add'>+</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        val = getenv(name);</div><div class='add'>+    }</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+    return val ? true : false;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const char TZ_ENV[] = "TZ";</div><div class='add'>+</div><div class='ctx'> static void *</div><div class='ctx'> get_env_cstr(</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-    volatile VALUE *pstr,</div><div class='del'>-#else</div><div class='ctx'>     VALUE str,</div><div class='del'>-#endif</div><div class='ctx'>     const char *name)</div><div class='ctx'> {</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-    VALUE str = *pstr;</div><div class='del'>-#endif</div><div class='ctx'>     char *var;</div><div class='ctx'>     rb_encoding *enc = rb_enc_get(str);</div><div class='ctx'>     if (!rb_enc_asciicompat(enc)) {</div><div class='del'>-	rb_raise(rb_eArgError, "bad environment variable %s: ASCII incompatible encoding: %s",</div><div class='del'>-		 name, rb_enc_name(enc));</div><div class='add'>+        rb_raise(rb_eArgError, "bad environment variable %s: ASCII incompatible encoding: %s",</div><div class='add'>+                 name, rb_enc_name(enc));</div><div class='ctx'>     }</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-    if (!rb_enc_str_asciionly_p(str)) {</div><div class='del'>-	*pstr = str = rb_str_conv_enc(str, NULL, rb_utf8_encoding());</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='ctx'>     var = RSTRING_PTR(str);</div><div class='ctx'>     if (memchr(var, '\0', RSTRING_LEN(str))) {</div><div class='del'>-	rb_raise(rb_eArgError, "bad environment variable %s: contains null byte", name);</div><div class='add'>+        rb_raise(rb_eArgError, "bad environment variable %s: contains null byte", name);</div><div class='ctx'>     }</div><div class='ctx'>     return rb_str_fill_terminator(str, 1); /* ASCII compatible */</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef _WIN32</div><div class='del'>-#define get_env_ptr(var, val) \</div><div class='del'>-    (var = get_env_cstr(&amp;(val), #var))</div><div class='del'>-#else</div><div class='ctx'> #define get_env_ptr(var, val) \</div><div class='ctx'>     (var = get_env_cstr(val, #var))</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> static inline const char *</div><div class='ctx'> env_name(volatile VALUE *s)</div><div class='hunk'>@@ -4485,45 +4992,67 @@ env_name(volatile VALUE *s)</div><div class='ctx'> </div><div class='ctx'> #define env_name(s) env_name(&amp;(s))</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-env_delete(VALUE obj, VALUE name)</div><div class='add'>+static VALUE env_aset(VALUE nm, VALUE val);</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+reset_by_modified_env(const char *nam, const char *val)</div><div class='ctx'> {</div><div class='del'>-    const char *nam, *val;</div><div class='add'>+    /*</div><div class='add'>+     * ENV['TZ'] = nil has a special meaning.</div><div class='add'>+     * TZ is no longer considered up-to-date and ruby call tzset() as needed.</div><div class='add'>+     * It could be useful if sysadmin change /etc/localtime.</div><div class='add'>+     * This hack might works only on Linux glibc.</div><div class='add'>+     */</div><div class='add'>+    if (ENVMATCH(nam, TZ_ENV)) {</div><div class='add'>+        ruby_reset_timezone(val);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    nam = env_name(name);</div><div class='del'>-    val = getenv(nam);</div><div class='del'>-    if (val) {</div><div class='del'>-	VALUE value = env_str_new2(val);</div><div class='add'>+static VALUE</div><div class='add'>+env_delete(VALUE name)</div><div class='add'>+{</div><div class='add'>+    const char *nam = env_name(name);</div><div class='add'>+    reset_by_modified_env(nam, NULL);</div><div class='add'>+    VALUE val = getenv_with_lock(nam);</div><div class='ctx'> </div><div class='del'>-	ruby_setenv(nam, 0);</div><div class='del'>-	if (ENVMATCH(nam, PATH_ENV)) {</div><div class='del'>-	    RB_GC_GUARD(name);</div><div class='del'>-	    path_tainted = 0;</div><div class='del'>-	}</div><div class='del'>-	else if (ENVMATCH(nam, TZ_ENV)) {</div><div class='del'>-	    ruby_tz_uptodate_p = FALSE;</div><div class='del'>-	}</div><div class='del'>-	return value;</div><div class='add'>+    if (!NIL_P(val)) {</div><div class='add'>+        ruby_setenv(nam, 0);</div><div class='ctx'>     }</div><div class='del'>-    return Qnil;</div><div class='add'>+    return val;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.delete(name)                  -&gt; value</div><div class='del'>- *   ENV.delete(name) { |name| block } -&gt; value</div><div class='add'>+ *   ENV.delete(name)                           -&gt; value</div><div class='add'>+ *   ENV.delete(name) { |name| block }          -&gt; value</div><div class='add'>+ *   ENV.delete(missing_name)                   -&gt; nil</div><div class='add'>+ *   ENV.delete(missing_name) { |name| block }  -&gt; block_value</div><div class='ctx'>  *</div><div class='del'>- * Deletes the environment variable with +name+ and returns the value of the</div><div class='del'>- * variable.  If a block is given it will be called when the named environment</div><div class='del'>- * does not exist.</div><div class='add'>+ * Deletes the environment variable with +name+ if it exists and returns its value:</div><div class='add'>+ *   ENV['foo'] = '0'</div><div class='add'>+ *   ENV.delete('foo') # =&gt; '0'</div><div class='add'>+ *</div><div class='add'>+ * If a block is not given and the named environment variable does not exist, returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ * If a block given and the environment variable does not exist,</div><div class='add'>+ * yields +name+ to the block and returns the value of the block:</div><div class='add'>+ *   ENV.delete('foo') { |name| name * 2 } # =&gt; "foofoo"</div><div class='add'>+ *</div><div class='add'>+ * If a block given and the environment variable exists,</div><div class='add'>+ * deletes the environment variable and returns its value (ignoring the block):</div><div class='add'>+ *   ENV['foo'] = '0'</div><div class='add'>+ *   ENV.delete('foo') { |name| raise 'ignored' } # =&gt; "0"</div><div class='add'>+ *</div><div class='add'>+ * Raises an exception if +name+ is invalid.</div><div class='add'>+ * See {Invalid Names and Values}[rdoc-ref:ENV@Invalid+Names+and+Values].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_delete_m(VALUE obj, VALUE name)</div><div class='ctx'> {</div><div class='ctx'>     VALUE val;</div><div class='ctx'> </div><div class='del'>-    val = env_delete(obj, name);</div><div class='del'>-    if (NIL_P(val) &amp;&amp; rb_block_given_p()) rb_yield(name);</div><div class='add'>+    val = env_delete(name);</div><div class='add'>+    if (NIL_P(val) &amp;&amp; rb_block_given_p()) val = rb_yield(name);</div><div class='ctx'>     return val;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4531,83 +5060,72 @@ env_delete_m(VALUE obj, VALUE name)</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   ENV[name] -&gt; value</div><div class='ctx'>  *</div><div class='del'>- * Retrieves the +value+ for environment variable +name+ as a String.  Returns</div><div class='del'>- * +nil+ if the named variable does not exist.</div><div class='add'>+ * Returns the value for the environment variable +name+ if it exists:</div><div class='add'>+ *   ENV['foo'] = '0'</div><div class='add'>+ *   ENV['foo'] # =&gt; "0"</div><div class='add'>+ * Returns +nil+ if the named variable does not exist.</div><div class='add'>+ *</div><div class='add'>+ * Raises an exception if +name+ is invalid.</div><div class='add'>+ * See {Invalid Names and Values}[rdoc-ref:ENV@Invalid+Names+and+Values].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_f_getenv(VALUE obj, VALUE name)</div><div class='ctx'> {</div><div class='del'>-    const char *nam, *env;</div><div class='del'>-</div><div class='del'>-    nam = env_name(name);</div><div class='del'>-    env = getenv(nam);</div><div class='del'>-    if (env) {</div><div class='del'>-	return env_name_new(nam, env);</div><div class='del'>-    }</div><div class='del'>-    return Qnil;</div><div class='add'>+    const char *nam = env_name(name);</div><div class='add'>+    VALUE env = getenv_with_lock(nam);</div><div class='add'>+    return env;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * :yield: missing_name</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.fetch(name)                          -&gt; value</div><div class='del'>- *   ENV.fetch(name, default)                 -&gt; value</div><div class='del'>- *   ENV.fetch(name) { |missing_name| block } -&gt; value</div><div class='del'>- *</div><div class='del'>- * Retrieves the environment variable +name+.</div><div class='del'>- *</div><div class='del'>- * If the given name does not exist and neither +default+ nor a block a</div><div class='del'>- * provided an KeyError is raised.  If a block is given it is called with</div><div class='del'>- * the missing name to provide a value.  If a default value is given it will</div><div class='del'>- * be returned when no block is given.</div><div class='add'>+ *   ENV.fetch(name)                  -&gt; value</div><div class='add'>+ *   ENV.fetch(name, default)         -&gt; value</div><div class='add'>+ *   ENV.fetch(name) { |name| block } -&gt; value</div><div class='add'>+ *</div><div class='add'>+ * If +name+ is the name of an environment variable, returns its value:</div><div class='add'>+ *   ENV['foo'] = '0'</div><div class='add'>+ *   ENV.fetch('foo') # =&gt; '0'</div><div class='add'>+ * Otherwise if a block is given (but not a default value),</div><div class='add'>+ * yields +name+ to the block and returns the block's return value:</div><div class='add'>+ *   ENV.fetch('foo') { |name| :need_not_return_a_string } # =&gt; :need_not_return_a_string</div><div class='add'>+ * Otherwise if a default value is given (but not a block), returns the default value:</div><div class='add'>+ *   ENV.delete('foo')</div><div class='add'>+ *   ENV.fetch('foo', :default_need_not_be_a_string) # =&gt; :default_need_not_be_a_string</div><div class='add'>+ * If the environment variable does not exist and both default and block are given,</div><div class='add'>+ * issues a warning ("warning: block supersedes default value argument"),</div><div class='add'>+ * yields +name+ to the block, and returns the block's return value:</div><div class='add'>+ *   ENV.fetch('foo', :default) { |name| :block_return } # =&gt; :block_return</div><div class='add'>+ * Raises KeyError if +name+ is valid, but not found,</div><div class='add'>+ * and neither default value nor block is given:</div><div class='add'>+ *   ENV.fetch('foo') # Raises KeyError (key not found: "foo")</div><div class='add'>+ * Raises an exception if +name+ is invalid.</div><div class='add'>+ * See {Invalid Names and Values}[rdoc-ref:ENV@Invalid+Names+and+Values].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_fetch(int argc, VALUE *argv)</div><div class='add'>+env_fetch(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE key;</div><div class='ctx'>     long block_given;</div><div class='del'>-    const char *nam, *env;</div><div class='add'>+    const char *nam;</div><div class='add'>+    VALUE env;</div><div class='ctx'> </div><div class='ctx'>     rb_check_arity(argc, 1, 2);</div><div class='ctx'>     key = argv[0];</div><div class='ctx'>     block_given = rb_block_given_p();</div><div class='ctx'>     if (block_given &amp;&amp; argc == 2) {</div><div class='del'>-	rb_warn("block supersedes default value argument");</div><div class='add'>+        rb_warn("block supersedes default value argument");</div><div class='ctx'>     }</div><div class='ctx'>     nam = env_name(key);</div><div class='del'>-    env = getenv(nam);</div><div class='del'>-    if (!env) {</div><div class='del'>-	if (block_given) return rb_yield(key);</div><div class='del'>-	if (argc == 1) {</div><div class='del'>-	    rb_key_err_raise(rb_sprintf("key not found: \"%"PRIsVALUE"\"", key), envtbl, key);</div><div class='del'>-	}</div><div class='del'>-	return argv[1];</div><div class='del'>-    }</div><div class='del'>-    return env_name_new(nam, env);</div><div class='del'>-}</div><div class='add'>+    env = getenv_with_lock(nam);</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-path_tainted_p(const char *path)</div><div class='del'>-{</div><div class='del'>-    path_tainted = rb_path_check(path)?0:1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static int</div><div class='del'>-env_path_tainted(const char *path)</div><div class='del'>-{</div><div class='del'>-    if (path_tainted &lt; 0) {</div><div class='del'>-	path_tainted_p(path);</div><div class='del'>-    }</div><div class='del'>-    return path_tainted;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-int</div><div class='del'>-rb_env_path_tainted(void)</div><div class='del'>-{</div><div class='del'>-    if (path_tainted &lt; 0) {</div><div class='del'>-	path_tainted_p(getenv(PATH_ENV));</div><div class='add'>+    if (NIL_P(env)) {</div><div class='add'>+        if (block_given) return rb_yield(key);</div><div class='add'>+        if (argc == 1) {</div><div class='add'>+            rb_key_err_raise(rb_sprintf("key not found: \"%"PRIsVALUE"\"", key), envtbl, key);</div><div class='add'>+        }</div><div class='add'>+        return argv[1];</div><div class='ctx'>     }</div><div class='del'>-    return path_tainted;</div><div class='add'>+    return env;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if defined(_WIN32) || (defined(HAVE_SETENV) &amp;&amp; defined(HAVE_UNSETENV))</div><div class='hunk'>@@ -4617,7 +5135,7 @@ in_origenv(const char *str)</div><div class='ctx'> {</div><div class='ctx'>     char **env;</div><div class='ctx'>     for (env = origenviron; *env; ++env) {</div><div class='del'>-	if (*env == str) return 1;</div><div class='add'>+        if (*env == str) return 1;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -4625,13 +5143,15 @@ in_origenv(const char *str)</div><div class='ctx'> static int</div><div class='ctx'> envix(const char *nam)</div><div class='ctx'> {</div><div class='add'>+    // should be locked</div><div class='add'>+</div><div class='ctx'>     register int i, len = strlen(nam);</div><div class='ctx'>     char **env;</div><div class='ctx'> </div><div class='ctx'>     env = GET_ENVIRON(environ);</div><div class='ctx'>     for (i = 0; env[i]; i++) {</div><div class='del'>-	if (ENVNMATCH(env[i],nam,len) &amp;&amp; env[i][len] == '=')</div><div class='del'>-	    break;			/* memcmp must come first to avoid */</div><div class='add'>+        if (ENVNMATCH(env[i],nam,len) &amp;&amp; env[i][len] == '=')</div><div class='add'>+            break;			/* memcmp must come first to avoid */</div><div class='ctx'>     }					/* potential SEGV's */</div><div class='ctx'>     FREE_ENVIRON(environ);</div><div class='ctx'>     return i;</div><div class='hunk'>@@ -4661,16 +5181,16 @@ static int</div><div class='ctx'> check_envsize(size_t n)</div><div class='ctx'> {</div><div class='ctx'>     if (_WIN32_WINNT &lt; 0x0600 &amp;&amp; rb_w32_osver() &lt; 6) {</div><div class='del'>-	/* https://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx */</div><div class='del'>-	/* Windows Server 2003 and Windows XP: The maximum size of the</div><div class='del'>-	 * environment block for the process is 32,767 characters. */</div><div class='del'>-	WCHAR* p = GetEnvironmentStringsW();</div><div class='del'>-	if (!p) return -1; /* never happen */</div><div class='del'>-	n += getenvsize(p);</div><div class='del'>-	FreeEnvironmentStringsW(p);</div><div class='del'>-	if (n &gt;= getenvblocksize()) {</div><div class='del'>-	    return -1;</div><div class='del'>-	}</div><div class='add'>+        /* https://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx */</div><div class='add'>+        /* Windows Server 2003 and Windows XP: The maximum size of the</div><div class='add'>+         * environment block for the process is 32,767 characters. */</div><div class='add'>+        WCHAR* p = GetEnvironmentStringsW();</div><div class='add'>+        if (!p) return -1; /* never happen */</div><div class='add'>+        n += getenvsize(p);</div><div class='add'>+        FreeEnvironmentStringsW(p);</div><div class='add'>+        if (n &gt;= getenvblocksize()) {</div><div class='add'>+            return -1;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -4691,7 +5211,7 @@ static const char *</div><div class='ctx'> check_envname(const char *name)</div><div class='ctx'> {</div><div class='ctx'>     if (strchr(name, '=')) {</div><div class='del'>-	invalid_envname(name);</div><div class='add'>+        invalid_envname(name);</div><div class='ctx'>     }</div><div class='ctx'>     return name;</div><div class='ctx'> }</div><div class='hunk'>@@ -4712,56 +5232,78 @@ ruby_setenv(const char *name, const char *value)</div><div class='ctx'>     check_envname(name);</div><div class='ctx'>     len = MultiByteToWideChar(CP_UTF8, 0, name, -1, NULL, 0);</div><div class='ctx'>     if (value) {</div><div class='del'>-	int len2;</div><div class='del'>-	len2 = MultiByteToWideChar(CP_UTF8, 0, value, -1, NULL, 0);</div><div class='del'>-	if (check_envsize((size_t)len + len2)) { /* len and len2 include '\0' */</div><div class='del'>-	    goto fail;  /* 2 for '=' &amp; '\0' */</div><div class='del'>-	}</div><div class='del'>-	wname = ALLOCV_N(WCHAR, buf, len + len2);</div><div class='del'>-	wvalue = wname + len;</div><div class='del'>-	MultiByteToWideChar(CP_UTF8, 0, name, -1, wname, len);</div><div class='del'>-	MultiByteToWideChar(CP_UTF8, 0, value, -1, wvalue, len2);</div><div class='add'>+        int len2;</div><div class='add'>+        len2 = MultiByteToWideChar(CP_UTF8, 0, value, -1, NULL, 0);</div><div class='add'>+        if (check_envsize((size_t)len + len2)) { /* len and len2 include '\0' */</div><div class='add'>+            goto fail;  /* 2 for '=' &amp; '\0' */</div><div class='add'>+        }</div><div class='add'>+        wname = ALLOCV_N(WCHAR, buf, len + len2);</div><div class='add'>+        wvalue = wname + len;</div><div class='add'>+        MultiByteToWideChar(CP_UTF8, 0, name, -1, wname, len);</div><div class='add'>+        MultiByteToWideChar(CP_UTF8, 0, value, -1, wvalue, len2);</div><div class='ctx'> #ifndef HAVE__WPUTENV_S</div><div class='del'>-	wname[len-1] = L'=';</div><div class='add'>+        wname[len-1] = L'=';</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	wname = ALLOCV_N(WCHAR, buf, len + 1);</div><div class='del'>-	MultiByteToWideChar(CP_UTF8, 0, name, -1, wname, len);</div><div class='del'>-	wvalue = wname + len;</div><div class='del'>-	*wvalue = L'\0';</div><div class='add'>+        wname = ALLOCV_N(WCHAR, buf, len + 1);</div><div class='add'>+        MultiByteToWideChar(CP_UTF8, 0, name, -1, wname, len);</div><div class='add'>+        wvalue = wname + len;</div><div class='add'>+        *wvalue = L'\0';</div><div class='ctx'> #ifndef HAVE__WPUTENV_S</div><div class='del'>-	wname[len-1] = L'=';</div><div class='add'>+        wname[len-1] = L'=';</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='ctx'> #ifndef HAVE__WPUTENV_S</div><div class='del'>-    failed = _wputenv(wname);</div><div class='add'>+        failed = _wputenv(wname);</div><div class='ctx'> #else</div><div class='del'>-    failed = _wputenv_s(wname, wvalue);</div><div class='add'>+        failed = _wputenv_s(wname, wvalue);</div><div class='ctx'> #endif</div><div class='add'>+    }</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='ctx'>     ALLOCV_END(buf);</div><div class='ctx'>     /* even if putenv() failed, clean up and try to delete the</div><div class='ctx'>      * variable from the system area. */</div><div class='ctx'>     if (!value || !*value) {</div><div class='del'>-	/* putenv() doesn't handle empty value */</div><div class='del'>-	if (!SetEnvironmentVariable(name, value) &amp;&amp;</div><div class='del'>-	    GetLastError() != ERROR_ENVVAR_NOT_FOUND) goto fail;</div><div class='add'>+        /* putenv() doesn't handle empty value */</div><div class='add'>+        if (!SetEnvironmentVariable(name, value) &amp;&amp;</div><div class='add'>+            GetLastError() != ERROR_ENVVAR_NOT_FOUND) goto fail;</div><div class='ctx'>     }</div><div class='ctx'>     if (failed) {</div><div class='ctx'>       fail:</div><div class='del'>-	invalid_envname(name);</div><div class='add'>+        invalid_envname(name);</div><div class='ctx'>     }</div><div class='ctx'> #elif defined(HAVE_SETENV) &amp;&amp; defined(HAVE_UNSETENV)</div><div class='ctx'>     if (value) {</div><div class='del'>-	if (setenv(name, value, 1))</div><div class='del'>-	    rb_sys_fail_str(rb_sprintf("setenv(%s)", name));</div><div class='add'>+        int ret;</div><div class='add'>+        ENV_LOCK();</div><div class='add'>+        {</div><div class='add'>+            ret = setenv(name, value, 1);</div><div class='add'>+        }</div><div class='add'>+        ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+        if (ret) rb_sys_fail_str(rb_sprintf("setenv(%s)", name));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> #ifdef VOID_UNSETENV</div><div class='del'>-	unsetenv(name);</div><div class='add'>+        ENV_LOCK();</div><div class='add'>+        {</div><div class='add'>+            unsetenv(name);</div><div class='add'>+        }</div><div class='add'>+        ENV_UNLOCK();</div><div class='ctx'> #else</div><div class='del'>-	if (unsetenv(name))</div><div class='del'>-	    rb_sys_fail_str(rb_sprintf("unsetenv(%s)", name));</div><div class='add'>+        int ret;</div><div class='add'>+        ENV_LOCK();</div><div class='add'>+        {</div><div class='add'>+            ret = unsetenv(name);</div><div class='add'>+        }</div><div class='add'>+        ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+        if (ret) rb_sys_fail_str(rb_sprintf("unsetenv(%s)", name));</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'> #elif defined __sun</div><div class='hunk'>@@ -4775,64 +5317,85 @@ ruby_setenv(const char *name, const char *value)</div><div class='ctx'>     check_envname(name);</div><div class='ctx'>     len = strlen(name);</div><div class='ctx'>     if (value) {</div><div class='del'>-	mem_size = len + strlen(value) + 2;</div><div class='del'>-	mem_ptr = malloc(mem_size);</div><div class='del'>-	if (mem_ptr == NULL)</div><div class='del'>-	    rb_sys_fail_str(rb_sprintf("malloc("PRIuSIZE")", mem_size));</div><div class='del'>-	snprintf(mem_ptr, mem_size, "%s=%s", name, value);</div><div class='del'>-    }</div><div class='del'>-    for (env_ptr = GET_ENVIRON(environ); (str = *env_ptr) != 0; ++env_ptr) {</div><div class='del'>-	if (!strncmp(str, name, len) &amp;&amp; str[len] == '=') {</div><div class='del'>-	    if (!in_origenv(str)) free(str);</div><div class='del'>-	    while ((env_ptr[0] = env_ptr[1]) != 0) env_ptr++;</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        mem_size = len + strlen(value) + 2;</div><div class='add'>+        mem_ptr = malloc(mem_size);</div><div class='add'>+        if (mem_ptr == NULL)</div><div class='add'>+            rb_sys_fail_str(rb_sprintf("malloc(%"PRIuSIZE")", mem_size));</div><div class='add'>+        snprintf(mem_ptr, mem_size, "%s=%s", name, value);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        for (env_ptr = GET_ENVIRON(environ); (str = *env_ptr) != 0; ++env_ptr) {</div><div class='add'>+            if (!strncmp(str, name, len) &amp;&amp; str[len] == '=') {</div><div class='add'>+                if (!in_origenv(str)) free(str);</div><div class='add'>+                while ((env_ptr[0] = env_ptr[1]) != 0) env_ptr++;</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='ctx'>     if (value) {</div><div class='del'>-	if (putenv(mem_ptr)) {</div><div class='del'>-	    free(mem_ptr);</div><div class='del'>-	    rb_sys_fail_str(rb_sprintf("putenv(%s)", name));</div><div class='del'>-	}</div><div class='add'>+        int ret;</div><div class='add'>+        ENV_LOCK();</div><div class='add'>+        {</div><div class='add'>+            ret = putenv(mem_ptr);</div><div class='add'>+        }</div><div class='add'>+        ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+        if (ret) {</div><div class='add'>+            free(mem_ptr);</div><div class='add'>+            rb_sys_fail_str(rb_sprintf("putenv(%s)", name));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #else  /* WIN32 */</div><div class='ctx'>     size_t len;</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='del'>-    i=envix(name);		        /* where does it go? */</div><div class='del'>-</div><div class='del'>-    if (environ == origenviron) {	/* need we copy environment? */</div><div class='del'>-	int j;</div><div class='del'>-	int max;</div><div class='del'>-	char **tmpenv;</div><div class='del'>-</div><div class='del'>-	for (max = i; environ[max]; max++) ;</div><div class='del'>-	tmpenv = ALLOC_N(char*, max+2);</div><div class='del'>-	for (j=0; j&lt;max; j++)		/* copy environment */</div><div class='del'>-	    tmpenv[j] = ruby_strdup(environ[j]);</div><div class='del'>-	tmpenv[max] = 0;</div><div class='del'>-	environ = tmpenv;		/* tell exec where it is now */</div><div class='del'>-    }</div><div class='del'>-    if (environ[i]) {</div><div class='del'>-	char **envp = origenviron;</div><div class='del'>-	while (*envp &amp;&amp; *envp != environ[i]) envp++;</div><div class='del'>-	if (!*envp)</div><div class='del'>-	    xfree(environ[i]);</div><div class='del'>-	if (!value) {</div><div class='del'>-	    while (environ[i]) {</div><div class='del'>-		environ[i] = environ[i+1];</div><div class='del'>-		i++;</div><div class='del'>-	    }</div><div class='del'>-	    return;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else {			/* does not exist yet */</div><div class='del'>-	if (!value) return;</div><div class='del'>-	REALLOC_N(environ, char*, i+2);	/* just expand it a bit */</div><div class='del'>-	environ[i+1] = 0;	/* make sure it's null terminated */</div><div class='del'>-    }</div><div class='del'>-    len = strlen(name) + strlen(value) + 2;</div><div class='del'>-    environ[i] = ALLOC_N(char, len);</div><div class='del'>-    snprintf(environ[i],len,"%s=%s",name,value); /* all that work just for this */</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        i = envix(name);		/* where does it go? */</div><div class='add'>+</div><div class='add'>+        if (environ == origenviron) {	/* need we copy environment? */</div><div class='add'>+            int j;</div><div class='add'>+            int max;</div><div class='add'>+            char **tmpenv;</div><div class='add'>+</div><div class='add'>+            for (max = i; environ[max]; max++) ;</div><div class='add'>+            tmpenv = ALLOC_N(char*, max+2);</div><div class='add'>+            for (j=0; j&lt;max; j++)		/* copy environment */</div><div class='add'>+                tmpenv[j] = ruby_strdup(environ[j]);</div><div class='add'>+            tmpenv[max] = 0;</div><div class='add'>+            environ = tmpenv;		/* tell exec where it is now */</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (environ[i]) {</div><div class='add'>+            char **envp = origenviron;</div><div class='add'>+            while (*envp &amp;&amp; *envp != environ[i]) envp++;</div><div class='add'>+            if (!*envp)</div><div class='add'>+                xfree(environ[i]);</div><div class='add'>+            if (!value) {</div><div class='add'>+                while (environ[i]) {</div><div class='add'>+                    environ[i] = environ[i+1];</div><div class='add'>+                    i++;</div><div class='add'>+                }</div><div class='add'>+                goto finish;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {			/* does not exist yet */</div><div class='add'>+            if (!value) goto finish;</div><div class='add'>+            REALLOC_N(environ, char*, i+2);	/* just expand it a bit */</div><div class='add'>+            environ[i+1] = 0;	/* make sure it's null terminated */</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        len = strlen(name) + strlen(value) + 2;</div><div class='add'>+        environ[i] = ALLOC_N(char, len);</div><div class='add'>+        snprintf(environ[i],len,"%s=%s",name,value); /* all that work just for this */</div><div class='add'>+</div><div class='add'>+      finish:;</div><div class='add'>+    }</div><div class='add'>+    ENV_UNLOCK();</div><div class='ctx'> #endif /* WIN32 */</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4844,22 +5407,62 @@ ruby_unsetenv(const char *name)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV[name] = value</div><div class='add'>+ *   ENV[name] = value      -&gt; value</div><div class='ctx'>  *   ENV.store(name, value) -&gt; value</div><div class='ctx'>  *</div><div class='del'>- * Sets the environment variable +name+ to +value+.  If the value given is</div><div class='del'>- * +nil+ the environment variable is deleted.</div><div class='del'>- * +name+ must be a string.</div><div class='del'>- *</div><div class='add'>+ * ENV.store is an alias for ENV.[]=.</div><div class='add'>+ *</div><div class='add'>+ * Creates, updates, or deletes the named environment variable, returning the value.</div><div class='add'>+ * Both +name+ and +value+ may be instances of String.</div><div class='add'>+ * See {Valid Names and Values}[rdoc-ref:ENV@Valid+Names+and+Values].</div><div class='add'>+ *</div><div class='add'>+ * - If the named environment variable does not exist:</div><div class='add'>+ *   - If +value+ is +nil+, does nothing.</div><div class='add'>+ *       ENV.clear</div><div class='add'>+ *       ENV['foo'] = nil # =&gt; nil</div><div class='add'>+ *       ENV.include?('foo') # =&gt; false</div><div class='add'>+ *       ENV.store('bar', nil) # =&gt; nil</div><div class='add'>+ *       ENV.include?('bar') # =&gt; false</div><div class='add'>+ *   - If +value+ is not +nil+, creates the environment variable with +name+ and +value+:</div><div class='add'>+ *       # Create 'foo' using ENV.[]=.</div><div class='add'>+ *       ENV['foo'] = '0' # =&gt; '0'</div><div class='add'>+ *       ENV['foo'] # =&gt; '0'</div><div class='add'>+ *       # Create 'bar' using ENV.store.</div><div class='add'>+ *       ENV.store('bar', '1') # =&gt; '1'</div><div class='add'>+ *       ENV['bar'] # =&gt; '1'</div><div class='add'>+ * - If the named environment variable exists:</div><div class='add'>+ *   - If +value+ is not +nil+, updates the environment variable with value +value+:</div><div class='add'>+ *       # Update 'foo' using ENV.[]=.</div><div class='add'>+ *       ENV['foo'] = '2' # =&gt; '2'</div><div class='add'>+ *       ENV['foo'] # =&gt; '2'</div><div class='add'>+ *       # Update 'bar' using ENV.store.</div><div class='add'>+ *       ENV.store('bar', '3') # =&gt; '3'</div><div class='add'>+ *       ENV['bar'] # =&gt; '3'</div><div class='add'>+ *   - If +value+ is +nil+, deletes the environment variable:</div><div class='add'>+ *       # Delete 'foo' using ENV.[]=.</div><div class='add'>+ *       ENV['foo'] = nil # =&gt; nil</div><div class='add'>+ *       ENV.include?('foo') # =&gt; false</div><div class='add'>+ *       # Delete 'bar' using ENV.store.</div><div class='add'>+ *       ENV.store('bar', nil) # =&gt; nil</div><div class='add'>+ *       ENV.include?('bar') # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ * Raises an exception if +name+ or +value+ is invalid.</div><div class='add'>+ * See {Invalid Names and Values}[rdoc-ref:ENV@Invalid+Names+and+Values].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_aset(VALUE obj, VALUE nm, VALUE val)</div><div class='add'>+env_aset_m(VALUE obj, VALUE nm, VALUE val)</div><div class='add'>+{</div><div class='add'>+    return env_aset(nm, val);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+env_aset(VALUE nm, VALUE val)</div><div class='ctx'> {</div><div class='ctx'>     char *name, *value;</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(val)) {</div><div class='del'>-	env_delete(obj, nm);</div><div class='del'>-	return Qnil;</div><div class='add'>+        env_delete(nm);</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     SafeStringValue(nm);</div><div class='ctx'>     SafeStringValue(val);</div><div class='hunk'>@@ -4869,46 +5472,53 @@ env_aset(VALUE obj, VALUE nm, VALUE val)</div><div class='ctx'>     get_env_ptr(value, val);</div><div class='ctx'> </div><div class='ctx'>     ruby_setenv(name, value);</div><div class='del'>-    if (ENVMATCH(name, PATH_ENV)) {</div><div class='del'>-	RB_GC_GUARD(nm);</div><div class='del'>-	if (OBJ_TAINTED(val)) {</div><div class='del'>-	    /* already tainted, no check */</div><div class='del'>-	    path_tainted = 1;</div><div class='del'>-	    return val;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    path_tainted_p(value);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else if (ENVMATCH(name, TZ_ENV)) {</div><div class='del'>-	ruby_tz_uptodate_p = FALSE;</div><div class='del'>-    }</div><div class='add'>+    reset_by_modified_env(name, value);</div><div class='ctx'>     return val;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+env_keys(int raw)</div><div class='add'>+{</div><div class='add'>+    rb_encoding *enc = raw ? 0 : rb_locale_encoding();</div><div class='add'>+    VALUE ary = rb_ary_new();</div><div class='add'>+</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+        while (*env) {</div><div class='add'>+            char *s = strchr(*env, '=');</div><div class='add'>+            if (s) {</div><div class='add'>+                const char *p = *env;</div><div class='add'>+                size_t l = s - p;</div><div class='add'>+                VALUE e = raw ? rb_utf8_str_new(p, l) : env_enc_str_new(p, l, enc);</div><div class='add'>+                rb_ary_push(ary, e);</div><div class='add'>+            }</div><div class='add'>+            env++;</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='add'>+    }</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.keys -&gt; Array</div><div class='add'>+ *   ENV.keys -&gt; array of names</div><div class='add'>+ *</div><div class='add'>+ * Returns all variable names in an Array:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.keys # =&gt; ['bar', 'foo']</div><div class='add'>+ * The order of the names is OS-dependent.</div><div class='add'>+ * See {About Ordering}[rdoc-ref:ENV@About+Ordering].</div><div class='ctx'>  *</div><div class='del'>- * Returns every environment variable name in an Array</div><div class='add'>+ * Returns the empty Array if ENV is empty.</div><div class='ctx'>  */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-env_keys(void)</div><div class='add'>+env_f_keys(VALUE _)</div><div class='ctx'> {</div><div class='del'>-    char **env;</div><div class='del'>-    VALUE ary;</div><div class='del'>-</div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    while (*env) {</div><div class='del'>-	char *s = strchr(*env, '=');</div><div class='del'>-	if (s) {</div><div class='del'>-	    rb_ary_push(ary, env_str_new(*env, s-*env));</div><div class='del'>-	}</div><div class='del'>-	env++;</div><div class='del'>-    }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='del'>-    return ary;</div><div class='add'>+    return env_keys(FALSE);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4917,24 +5527,37 @@ rb_env_size(VALUE ehash, VALUE args, VALUE eobj)</div><div class='ctx'>     char **env;</div><div class='ctx'>     long cnt = 0;</div><div class='ctx'> </div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    for (; *env ; ++env) {</div><div class='del'>-	if (strchr(*env, '=')) {</div><div class='del'>-	    cnt++;</div><div class='del'>-	}</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        env = GET_ENVIRON(environ);</div><div class='add'>+        for (; *env ; ++env) {</div><div class='add'>+            if (strchr(*env, '=')) {</div><div class='add'>+                cnt++;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='ctx'>     }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='ctx'>     return LONG2FIX(cnt);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.each_key { |name| block } -&gt; Hash</div><div class='del'>- *   ENV.each_key                  -&gt; Enumerator</div><div class='del'>- *</div><div class='del'>- * Yields each environment variable name.</div><div class='del'>- *</div><div class='del'>- * An Enumerator is returned if no block is given.</div><div class='add'>+ *   ENV.each_key { |name| block } -&gt; ENV</div><div class='add'>+ *   ENV.each_key                  -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ * Yields each environment variable name:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1') # =&gt; ENV</div><div class='add'>+ *   names = []</div><div class='add'>+ *   ENV.each_key { |name| names.push(name) } # =&gt; ENV</div><div class='add'>+ *   names # =&gt; ["bar", "foo"]</div><div class='add'>+ *</div><div class='add'>+ * Returns an Enumerator if no block given:</div><div class='add'>+ *   e = ENV.each_key # =&gt; #&lt;Enumerator: {"bar"=&gt;"1", "foo"=&gt;"0"}:each_key&gt;</div><div class='add'>+ *   names = []</div><div class='add'>+ *   e.each { |name| names.push(name) } # =&gt; ENV</div><div class='add'>+ *   names # =&gt; ["bar", "foo"]</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_each_key(VALUE ehash)</div><div class='hunk'>@@ -4943,46 +5566,70 @@ env_each_key(VALUE ehash)</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size);</div><div class='del'>-    keys = env_keys();</div><div class='add'>+    keys = env_keys(FALSE);</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(keys); i++) {</div><div class='del'>-	rb_yield(RARRAY_AREF(keys, i));</div><div class='add'>+        rb_yield(RARRAY_AREF(keys, i));</div><div class='ctx'>     }</div><div class='ctx'>     return ehash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   ENV.values -&gt; Array</div><div class='del'>- *</div><div class='del'>- * Returns every environment variable value as an Array</div><div class='del'>- */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_values(void)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary;</div><div class='del'>-    char **env;</div><div class='add'>+    VALUE ary = rb_ary_new();</div><div class='ctx'> </div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    while (*env) {</div><div class='del'>-	char *s = strchr(*env, '=');</div><div class='del'>-	if (s) {</div><div class='del'>-	    rb_ary_push(ary, env_str_new2(s+1));</div><div class='del'>-	}</div><div class='del'>-	env++;</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+</div><div class='add'>+        while (*env) {</div><div class='add'>+            char *s = strchr(*env, '=');</div><div class='add'>+            if (s) {</div><div class='add'>+                rb_ary_push(ary, env_str_new2(s+1));</div><div class='add'>+            }</div><div class='add'>+            env++;</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='ctx'>     }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.each_value { |value| block } -&gt; Hash</div><div class='del'>- *   ENV.each_value                   -&gt; Enumerator</div><div class='add'>+ *   ENV.values -&gt; array of values</div><div class='ctx'>  *</div><div class='del'>- * Yields each environment variable +value+.</div><div class='add'>+ * Returns all environment variable values in an Array:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.values # =&gt; ['1', '0']</div><div class='add'>+ * The order of the values is OS-dependent.</div><div class='add'>+ * See {About Ordering}[rdoc-ref:ENV@About+Ordering].</div><div class='ctx'>  *</div><div class='del'>- * An Enumerator is returned if no block was given.</div><div class='add'>+ * Returns the empty Array if ENV is empty.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+env_f_values(VALUE _)</div><div class='add'>+{</div><div class='add'>+    return env_values();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   ENV.each_value { |value| block } -&gt; ENV</div><div class='add'>+ *   ENV.each_value                   -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ * Yields each environment variable value:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1') # =&gt; ENV</div><div class='add'>+ *   values = []</div><div class='add'>+ *   ENV.each_value { |value| values.push(value) } # =&gt; ENV</div><div class='add'>+ *   values # =&gt; ["1", "0"]</div><div class='add'>+ *</div><div class='add'>+ * Returns an Enumerator if no block given:</div><div class='add'>+ *   e = ENV.each_value # =&gt; #&lt;Enumerator: {"bar"=&gt;"1", "foo"=&gt;"0"}:each_value&gt;</div><div class='add'>+ *   values = []</div><div class='add'>+ *   e.each { |value| values.push(value) } # =&gt; ENV</div><div class='add'>+ *   values # =&gt; ["1", "0"]</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_each_value(VALUE ehash)</div><div class='hunk'>@@ -4993,64 +5640,89 @@ env_each_value(VALUE ehash)</div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size);</div><div class='ctx'>     values = env_values();</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(values); i++) {</div><div class='del'>-	rb_yield(RARRAY_AREF(values, i));</div><div class='add'>+        rb_yield(RARRAY_AREF(values, i));</div><div class='ctx'>     }</div><div class='ctx'>     return ehash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.each      { |name, value| block } -&gt; Hash</div><div class='del'>- *   ENV.each                              -&gt; Enumerator</div><div class='del'>- *   ENV.each_pair { |name, value| block } -&gt; Hash</div><div class='del'>- *   ENV.each_pair                         -&gt; Enumerator</div><div class='del'>- *</div><div class='del'>- * Yields each environment variable +name+ and +value+.</div><div class='del'>- *</div><div class='del'>- * If no block is given an Enumerator is returned.</div><div class='add'>+ *   ENV.each      { |name, value| block } -&gt; ENV</div><div class='add'>+ *   ENV.each                              -&gt; an_enumerator</div><div class='add'>+ *   ENV.each_pair { |name, value| block } -&gt; ENV</div><div class='add'>+ *   ENV.each_pair                         -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ * Yields each environment variable name and its value as a 2-element \Array:</div><div class='add'>+ *   h = {}</div><div class='add'>+ *   ENV.each_pair { |name, value| h[name] = value } # =&gt; ENV</div><div class='add'>+ *   h # =&gt; {"bar"=&gt;"1", "foo"=&gt;"0"}</div><div class='add'>+ *</div><div class='add'>+ * Returns an Enumerator if no block given:</div><div class='add'>+ *   h = {}</div><div class='add'>+ *   e = ENV.each_pair # =&gt; #&lt;Enumerator: {"bar"=&gt;"1", "foo"=&gt;"0"}:each_pair&gt;</div><div class='add'>+ *   e.each { |name, value| h[name] = value } # =&gt; ENV</div><div class='add'>+ *   h # =&gt; {"bar"=&gt;"1", "foo"=&gt;"0"}</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_each_pair(VALUE ehash)</div><div class='ctx'> {</div><div class='del'>-    char **env;</div><div class='del'>-    VALUE ary;</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size);</div><div class='ctx'> </div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    while (*env) {</div><div class='del'>-	char *s = strchr(*env, '=');</div><div class='del'>-	if (s) {</div><div class='del'>-	    rb_ary_push(ary, env_str_new(*env, s-*env));</div><div class='del'>-	    rb_ary_push(ary, env_str_new2(s+1));</div><div class='del'>-	}</div><div class='del'>-	env++;</div><div class='add'>+    VALUE ary = rb_ary_new();</div><div class='add'>+</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+</div><div class='add'>+        while (*env) {</div><div class='add'>+            char *s = strchr(*env, '=');</div><div class='add'>+            if (s) {</div><div class='add'>+                rb_ary_push(ary, env_str_new(*env, s-*env));</div><div class='add'>+                rb_ary_push(ary, env_str_new2(s+1));</div><div class='add'>+            }</div><div class='add'>+            env++;</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='ctx'>     }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='add'>+    ENV_UNLOCK();</div><div class='ctx'> </div><div class='del'>-    if (rb_block_arity() &gt; 1) {</div><div class='del'>-	for (i=0; i&lt;RARRAY_LEN(ary); i+=2) {</div><div class='del'>-	    rb_yield_values(2, RARRAY_AREF(ary, i), RARRAY_AREF(ary, i+1));</div><div class='del'>-	}</div><div class='add'>+    if (rb_block_pair_yield_optimizable()) {</div><div class='add'>+        for (i=0; i&lt;RARRAY_LEN(ary); i+=2) {</div><div class='add'>+            rb_yield_values(2, RARRAY_AREF(ary, i), RARRAY_AREF(ary, i+1));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	for (i=0; i&lt;RARRAY_LEN(ary); i+=2) {</div><div class='del'>-	    rb_yield(rb_assoc_new(RARRAY_AREF(ary, i), RARRAY_AREF(ary, i+1)));</div><div class='del'>-	}</div><div class='add'>+        for (i=0; i&lt;RARRAY_LEN(ary); i+=2) {</div><div class='add'>+            rb_yield(rb_assoc_new(RARRAY_AREF(ary, i), RARRAY_AREF(ary, i+1)));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     return ehash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   ENV.reject! { |name, value| block } -&gt; ENV or nil</div><div class='del'>- *   ENV.reject!                         -&gt; Enumerator</div><div class='del'>- *</div><div class='del'>- * Equivalent to ENV.delete_if but returns +nil+ if no changes were made.</div><div class='del'>- *</div><div class='del'>- * Returns an Enumerator if no block was given.</div><div class='add'>+ *   ENV.reject!                         -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ * Similar to ENV.delete_if, but returns +nil+ if no changes were made.</div><div class='add'>+ *</div><div class='add'>+ * Yields each environment variable name and its value as a 2-element Array,</div><div class='add'>+ * deleting each environment variable for which the block returns a truthy value,</div><div class='add'>+ * and returning ENV (if any deletions) or +nil+ (if not):</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   ENV.reject! { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='add'>+ *   ENV # =&gt; {"foo"=&gt;"0"}</div><div class='add'>+ *   ENV.reject! { |name, value| name.start_with?('b') } # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ * Returns an Enumerator if no block given:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   e = ENV.reject! # =&gt; #&lt;Enumerator: {"bar"=&gt;"1", "baz"=&gt;"2", "foo"=&gt;"0"}:reject!&gt;</div><div class='add'>+ *   e.each { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='add'>+ *   ENV # =&gt; {"foo"=&gt;"0"}</div><div class='add'>+ *   e.each { |name, value| name.start_with?('b') } # =&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_reject_bang(VALUE ehash)</div><div class='hunk'>@@ -5060,17 +5732,16 @@ env_reject_bang(VALUE ehash)</div><div class='ctx'>     int del = 0;</div><div class='ctx'> </div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size);</div><div class='del'>-    keys = env_keys();</div><div class='add'>+    keys = env_keys(FALSE);</div><div class='ctx'>     RBASIC_CLEAR_CLASS(keys);</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(keys); i++) {</div><div class='del'>-	VALUE val = rb_f_getenv(Qnil, RARRAY_AREF(keys, i));</div><div class='del'>-	if (!NIL_P(val)) {</div><div class='del'>-	    if (RTEST(rb_yield_values(2, RARRAY_AREF(keys, i), val))) {</div><div class='del'>-		FL_UNSET(RARRAY_AREF(keys, i), FL_TAINT);</div><div class='del'>-		env_delete(Qnil, RARRAY_AREF(keys, i));</div><div class='del'>-		del++;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        VALUE val = rb_f_getenv(Qnil, RARRAY_AREF(keys, i));</div><div class='add'>+        if (!NIL_P(val)) {</div><div class='add'>+            if (RTEST(rb_yield_values(2, RARRAY_AREF(keys, i), val))) {</div><div class='add'>+                env_delete(RARRAY_AREF(keys, i));</div><div class='add'>+                del++;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     RB_GC_GUARD(keys);</div><div class='ctx'>     if (del == 0) return Qnil;</div><div class='hunk'>@@ -5079,12 +5750,23 @@ env_reject_bang(VALUE ehash)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.delete_if { |name, value| block } -&gt; Hash</div><div class='del'>- *   ENV.delete_if                         -&gt; Enumerator</div><div class='del'>- *</div><div class='del'>- * Deletes every environment variable for which the block evaluates to +true+.</div><div class='del'>- *</div><div class='del'>- * If no block is given an enumerator is returned instead.</div><div class='add'>+ *   ENV.delete_if { |name, value| block } -&gt; ENV</div><div class='add'>+ *   ENV.delete_if                         -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ * Yields each environment variable name and its value as a 2-element Array,</div><div class='add'>+ * deleting each environment variable for which the block returns a truthy value,</div><div class='add'>+ * and returning ENV (regardless of whether any deletions):</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   ENV.delete_if { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='add'>+ *   ENV # =&gt; {"foo"=&gt;"0"}</div><div class='add'>+ *   ENV.delete_if { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='add'>+ *</div><div class='add'>+ * Returns an Enumerator if no block given:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   e = ENV.delete_if # =&gt; #&lt;Enumerator: {"bar"=&gt;"1", "baz"=&gt;"2", "foo"=&gt;"0"}:delete_if!&gt;</div><div class='add'>+ *   e.each { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='add'>+ *   ENV # =&gt; {"foo"=&gt;"0"}</div><div class='add'>+ *   e.each { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_delete_if(VALUE ehash)</div><div class='hunk'>@@ -5096,36 +5778,54 @@ env_delete_if(VALUE ehash)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.values_at(name, ...) -&gt; Array</div><div class='add'>+ *   ENV.values_at(*names) -&gt; array of values</div><div class='add'>+ *</div><div class='add'>+ * Returns an Array containing the environment variable values associated with</div><div class='add'>+ * the given names:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   ENV.values_at('foo', 'baz') # =&gt; ["0", "2"]</div><div class='add'>+ *</div><div class='add'>+ * Returns +nil+ in the Array for each name that is not an ENV name:</div><div class='add'>+ *   ENV.values_at('foo', 'bat', 'bar', 'bam') # =&gt; ["0", nil, "1", nil]</div><div class='ctx'>  *</div><div class='del'>- * Returns an array containing the environment variable values associated with</div><div class='del'>- * the given names.  See also ENV.select.</div><div class='add'>+ * Returns an empty \Array if no names given.</div><div class='add'>+ *</div><div class='add'>+ * Raises an exception if any name is invalid.</div><div class='add'>+ * See {Invalid Names and Values}[rdoc-ref:ENV@Invalid+Names+and+Values].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_values_at(int argc, VALUE *argv)</div><div class='add'>+env_values_at(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE result;</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     result = rb_ary_new();</div><div class='ctx'>     for (i=0; i&lt;argc; i++) {</div><div class='del'>-	rb_ary_push(result, rb_f_getenv(Qnil, argv[i]));</div><div class='add'>+        rb_ary_push(result, rb_f_getenv(Qnil, argv[i]));</div><div class='ctx'>     }</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.select { |name, value| block } -&gt; Hash</div><div class='del'>- *   ENV.select                         -&gt; Enumerator</div><div class='del'>- *   ENV.filter { |name, value| block } -&gt; Hash</div><div class='del'>- *   ENV.filter                         -&gt; Enumerator</div><div class='del'>- *</div><div class='del'>- * Returns a copy of the environment for entries where the block returns true.</div><div class='del'>- *</div><div class='del'>- * Returns an Enumerator if no block was given.</div><div class='add'>+ *   ENV.select { |name, value| block } -&gt; hash of name/value pairs</div><div class='add'>+ *   ENV.select                         -&gt; an_enumerator</div><div class='add'>+ *   ENV.filter { |name, value| block } -&gt; hash of name/value pairs</div><div class='add'>+ *   ENV.filter                         -&gt; an_enumerator</div><div class='ctx'>  *</div><div class='ctx'>  * ENV.filter is an alias for ENV.select.</div><div class='add'>+ *</div><div class='add'>+ * Yields each environment variable name and its value as a 2-element Array,</div><div class='add'>+ * returning a Hash of the names and values for which the block returns a truthy value:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   ENV.select { |name, value| name.start_with?('b') } # =&gt; {"bar"=&gt;"1", "baz"=&gt;"2"}</div><div class='add'>+ *   ENV.filter { |name, value| name.start_with?('b') } # =&gt; {"bar"=&gt;"1", "baz"=&gt;"2"}</div><div class='add'>+ *</div><div class='add'>+ * Returns an Enumerator if no block given:</div><div class='add'>+ *   e = ENV.select # =&gt; #&lt;Enumerator: {"bar"=&gt;"1", "baz"=&gt;"2", "foo"=&gt;"0"}:select&gt;</div><div class='add'>+ *   e.each { |name, value | name.start_with?('b') } # =&gt; {"bar"=&gt;"1", "baz"=&gt;"2"}</div><div class='add'>+ *   e = ENV.filter # =&gt; #&lt;Enumerator: {"bar"=&gt;"1", "baz"=&gt;"2", "foo"=&gt;"0"}:filter&gt;</div><div class='add'>+ *   e.each { |name, value | name.start_with?('b') } # =&gt; {"bar"=&gt;"1", "baz"=&gt;"2"}</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_select(VALUE ehash)</div><div class='hunk'>@@ -5136,15 +5836,15 @@ env_select(VALUE ehash)</div><div class='ctx'> </div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size);</div><div class='ctx'>     result = rb_hash_new();</div><div class='del'>-    keys = env_keys();</div><div class='add'>+    keys = env_keys(FALSE);</div><div class='ctx'>     for (i = 0; i &lt; RARRAY_LEN(keys); ++i) {</div><div class='del'>-	VALUE key = RARRAY_AREF(keys, i);</div><div class='del'>-	VALUE val = rb_f_getenv(Qnil, key);</div><div class='del'>-	if (!NIL_P(val)) {</div><div class='del'>-	    if (RTEST(rb_yield_values(2, key, val))) {</div><div class='del'>-		rb_hash_aset(result, key, val);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        VALUE key = RARRAY_AREF(keys, i);</div><div class='add'>+        VALUE val = rb_f_getenv(Qnil, key);</div><div class='add'>+        if (!NIL_P(val)) {</div><div class='add'>+            if (RTEST(rb_yield_values(2, key, val))) {</div><div class='add'>+                rb_hash_aset(result, key, val);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     RB_GC_GUARD(keys);</div><div class='ctx'> </div><div class='hunk'>@@ -5154,13 +5854,39 @@ env_select(VALUE ehash)</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   ENV.select! { |name, value| block } -&gt; ENV or nil</div><div class='del'>- *   ENV.select!                         -&gt; Enumerator</div><div class='add'>+ *   ENV.select!                         -&gt; an_enumerator</div><div class='ctx'>  *   ENV.filter! { |name, value| block } -&gt; ENV or nil</div><div class='del'>- *   ENV.filter!                         -&gt; Enumerator</div><div class='del'>- *</div><div class='del'>- * Equivalent to ENV.keep_if but returns +nil+ if no changes were made.</div><div class='add'>+ *   ENV.filter!                         -&gt; an_enumerator</div><div class='ctx'>  *</div><div class='ctx'>  * ENV.filter! is an alias for ENV.select!.</div><div class='add'>+ *</div><div class='add'>+ * Yields each environment variable name and its value as a 2-element Array,</div><div class='add'>+ * deleting each entry for which the block returns +false+ or +nil+,</div><div class='add'>+ * and returning ENV if any deletions made, or +nil+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   ENV.select! { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='add'>+ *   ENV # =&gt; {"bar"=&gt;"1", "baz"=&gt;"2"}</div><div class='add'>+ *   ENV.select! { |name, value| true } # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   ENV.filter! { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='add'>+ *   ENV # =&gt; {"bar"=&gt;"1", "baz"=&gt;"2"}</div><div class='add'>+ *   ENV.filter! { |name, value| true } # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ * Returns an Enumerator if no block given:</div><div class='add'>+ *</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   e = ENV.select! # =&gt; #&lt;Enumerator: {"bar"=&gt;"1", "baz"=&gt;"2"}:select!&gt;</div><div class='add'>+ *   e.each { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='add'>+ *   ENV # =&gt; {"bar"=&gt;"1", "baz"=&gt;"2"}</div><div class='add'>+ *   e.each { |name, value| true } # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   e = ENV.filter! # =&gt; #&lt;Enumerator: {"bar"=&gt;"1", "baz"=&gt;"2"}:filter!&gt;</div><div class='add'>+ *   e.each { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='add'>+ *   ENV # =&gt; {"bar"=&gt;"1", "baz"=&gt;"2"}</div><div class='add'>+ *   e.each { |name, value| true } # =&gt; nil</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_select_bang(VALUE ehash)</div><div class='hunk'>@@ -5170,17 +5896,16 @@ env_select_bang(VALUE ehash)</div><div class='ctx'>     int del = 0;</div><div class='ctx'> </div><div class='ctx'>     RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size);</div><div class='del'>-    keys = env_keys();</div><div class='add'>+    keys = env_keys(FALSE);</div><div class='ctx'>     RBASIC_CLEAR_CLASS(keys);</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(keys); i++) {</div><div class='del'>-	VALUE val = rb_f_getenv(Qnil, RARRAY_AREF(keys, i));</div><div class='del'>-	if (!NIL_P(val)) {</div><div class='del'>-	    if (!RTEST(rb_yield_values(2, RARRAY_AREF(keys, i), val))) {</div><div class='del'>-		FL_UNSET(RARRAY_AREF(keys, i), FL_TAINT);</div><div class='del'>-		env_delete(Qnil, RARRAY_AREF(keys, i));</div><div class='del'>-		del++;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        VALUE val = rb_f_getenv(Qnil, RARRAY_AREF(keys, i));</div><div class='add'>+        if (!NIL_P(val)) {</div><div class='add'>+            if (!RTEST(rb_yield_values(2, RARRAY_AREF(keys, i), val))) {</div><div class='add'>+                env_delete(RARRAY_AREF(keys, i));</div><div class='add'>+                del++;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     RB_GC_GUARD(keys);</div><div class='ctx'>     if (del == 0) return Qnil;</div><div class='hunk'>@@ -5189,12 +5914,21 @@ env_select_bang(VALUE ehash)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.keep_if { |name, value| block } -&gt; Hash</div><div class='del'>- *   ENV.keep_if                         -&gt; Enumerator</div><div class='del'>- *</div><div class='del'>- * Deletes every environment variable where the block evaluates to +false+.</div><div class='del'>- *</div><div class='del'>- * Returns an enumerator if no block was given.</div><div class='add'>+ *   ENV.keep_if { |name, value| block } -&gt; ENV</div><div class='add'>+ *   ENV.keep_if                         -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ * Yields each environment variable name and its value as a 2-element Array,</div><div class='add'>+ * deleting each environment variable for which the block returns +false+ or +nil+,</div><div class='add'>+ * and returning ENV:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   ENV.keep_if { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='add'>+ *   ENV # =&gt; {"bar"=&gt;"1", "baz"=&gt;"2"}</div><div class='add'>+ *</div><div class='add'>+ * Returns an Enumerator if no block given:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   e = ENV.keep_if # =&gt; #&lt;Enumerator: {"bar"=&gt;"1", "baz"=&gt;"2", "foo"=&gt;"0"}:keep_if&gt;</div><div class='add'>+ *   e.each { |name, value| name.start_with?('b') } # =&gt; ENV</div><div class='add'>+ *   ENV # =&gt; {"bar"=&gt;"1", "baz"=&gt;"2"}</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_keep_if(VALUE ehash)</div><div class='hunk'>@@ -5205,15 +5939,19 @@ env_keep_if(VALUE ehash)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  call-seq:</div><div class='del'>- *     ENV.slice(*keys) -&gt; a_hash</div><div class='del'>- *</div><div class='del'>- *  Returns a hash containing only the given keys from ENV and their values.</div><div class='del'>- *</div><div class='del'>- *     ENV.slice("TERM","HOME")  #=&gt; {"TERM"=&gt;"xterm-256color", "HOME"=&gt;"/Users/rhc"}</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   ENV.slice(*names) -&gt; hash of name/value pairs</div><div class='add'>+ *</div><div class='add'>+ * Returns a Hash of the given ENV names and their corresponding values:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2', 'bat' =&gt; '3')</div><div class='add'>+ *   ENV.slice('foo', 'baz') # =&gt; {"foo"=&gt;"0", "baz"=&gt;"2"}</div><div class='add'>+ *   ENV.slice('baz', 'foo') # =&gt; {"baz"=&gt;"2", "foo"=&gt;"0"}</div><div class='add'>+ * Raises an exception if any of the +names+ is invalid</div><div class='add'>+ * (see {Invalid Names and Values}[rdoc-ref:ENV@Invalid+Names+and+Values]):</div><div class='add'>+ *   ENV.slice('foo', 'bar', :bat) # Raises TypeError (no implicit conversion of Symbol into String)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_slice(int argc, VALUE *argv)</div><div class='add'>+env_slice(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     int i;</div><div class='ctx'>     VALUE key, value, result;</div><div class='hunk'>@@ -5233,24 +5971,17 @@ env_slice(int argc, VALUE *argv)</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * call-seq:</div><div class='del'>- *   ENV.clear</div><div class='del'>- *</div><div class='del'>- * Removes every environment variable.</div><div class='del'>- */</div><div class='ctx'> VALUE</div><div class='ctx'> rb_env_clear(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE keys;</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='del'>-    keys = env_keys();</div><div class='add'>+    keys = env_keys(TRUE);</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(keys); i++) {</div><div class='del'>-	VALUE val = rb_f_getenv(Qnil, RARRAY_AREF(keys, i));</div><div class='del'>-	if (!NIL_P(val)) {</div><div class='del'>-	    env_delete(Qnil, RARRAY_AREF(keys, i));</div><div class='del'>-	}</div><div class='add'>+        VALUE key = RARRAY_AREF(keys, i);</div><div class='add'>+        const char *nam = RSTRING_PTR(key);</div><div class='add'>+        ruby_setenv(nam, 0);</div><div class='ctx'>     }</div><div class='ctx'>     RB_GC_GUARD(keys);</div><div class='ctx'>     return envtbl;</div><div class='hunk'>@@ -5258,393 +5989,622 @@ rb_env_clear(void)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='add'>+ *   ENV.clear -&gt; ENV</div><div class='add'>+ *</div><div class='add'>+ * Removes every environment variable; returns ENV:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.size # =&gt; 2</div><div class='add'>+ *   ENV.clear # =&gt; ENV</div><div class='add'>+ *   ENV.size # =&gt; 0</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+env_clear(VALUE _)</div><div class='add'>+{</div><div class='add'>+    return rb_env_clear();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='ctx'>  *   ENV.to_s -&gt; "ENV"</div><div class='ctx'>  *</div><div class='del'>- * Returns "ENV"</div><div class='add'>+ * Returns String 'ENV':</div><div class='add'>+ *   ENV.to_s # =&gt; "ENV"</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_to_s(void)</div><div class='add'>+env_to_s(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     return rb_usascii_str_new2("ENV");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.inspect -&gt; string</div><div class='add'>+ *   ENV.inspect -&gt; a_string</div><div class='ctx'>  *</div><div class='del'>- * Returns the contents of the environment as a String.</div><div class='add'>+ * Returns the contents of the environment as a String:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.inspect # =&gt; "{\"bar\"=&gt;\"1\", \"foo\"=&gt;\"0\"}"</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_inspect(void)</div><div class='add'>+env_inspect(VALUE _)</div><div class='ctx'> {</div><div class='del'>-    char **env;</div><div class='del'>-    VALUE str, i;</div><div class='add'>+    VALUE str = rb_str_buf_new2("{");</div><div class='add'>+    rb_encoding *enc = env_encoding();</div><div class='ctx'> </div><div class='del'>-    str = rb_str_buf_new2("{");</div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    while (*env) {</div><div class='del'>-	char *s = strchr(*env, '=');</div><div class='del'>-</div><div class='del'>-	if (env != environ) {</div><div class='del'>-	    rb_str_buf_cat2(str, ", ");</div><div class='del'>-	}</div><div class='del'>-	if (s) {</div><div class='del'>-	    rb_str_buf_cat2(str, "\"");</div><div class='del'>-	    rb_str_buf_cat(str, *env, s-*env);</div><div class='del'>-	    rb_str_buf_cat2(str, "\"=&gt;");</div><div class='del'>-	    i = rb_inspect(rb_str_new2(s+1));</div><div class='del'>-	    rb_str_buf_append(str, i);</div><div class='del'>-	}</div><div class='del'>-	env++;</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+        while (*env) {</div><div class='add'>+            const char *s = strchr(*env, '=');</div><div class='add'>+</div><div class='add'>+            if (env != environ) {</div><div class='add'>+                rb_str_buf_cat2(str, ", ");</div><div class='add'>+            }</div><div class='add'>+            if (s) {</div><div class='add'>+                rb_str_buf_append(str, rb_str_inspect(env_enc_str_new(*env, s-*env, enc)));</div><div class='add'>+                rb_str_buf_cat2(str, "=&gt;");</div><div class='add'>+                s++;</div><div class='add'>+                rb_str_buf_append(str, rb_str_inspect(env_enc_str_new(s, strlen(s), enc)));</div><div class='add'>+            }</div><div class='add'>+            env++;</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='ctx'>     }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='ctx'>     rb_str_buf_cat2(str, "}");</div><div class='del'>-    OBJ_TAINT(str);</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.to_a -&gt; Array</div><div class='del'>- *</div><div class='del'>- * Converts the environment variables into an array of names and value arrays.</div><div class='del'>- *</div><div class='del'>- *   ENV.to_a # =&gt; [["TERM", "xterm-color"], ["SHELL", "/bin/bash"], ...]</div><div class='add'>+ *   ENV.to_a -&gt; array of 2-element arrays</div><div class='ctx'>  *</div><div class='add'>+ * Returns the contents of ENV as an Array of 2-element Arrays,</div><div class='add'>+ * each of which is a name/value pair:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.to_a # =&gt; [["bar", "1"], ["foo", "0"]]</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_to_a(void)</div><div class='add'>+env_to_a(VALUE _)</div><div class='ctx'> {</div><div class='del'>-    char **env;</div><div class='del'>-    VALUE ary;</div><div class='add'>+    VALUE ary = rb_ary_new();</div><div class='ctx'> </div><div class='del'>-    ary = rb_ary_new();</div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    while (*env) {</div><div class='del'>-	char *s = strchr(*env, '=');</div><div class='del'>-	if (s) {</div><div class='del'>-	    rb_ary_push(ary, rb_assoc_new(env_str_new(*env, s-*env),</div><div class='del'>-					  env_str_new2(s+1)));</div><div class='del'>-	}</div><div class='del'>-	env++;</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+        while (*env) {</div><div class='add'>+            char *s = strchr(*env, '=');</div><div class='add'>+            if (s) {</div><div class='add'>+                rb_ary_push(ary, rb_assoc_new(env_str_new(*env, s-*env),</div><div class='add'>+                                              env_str_new2(s+1)));</div><div class='add'>+            }</div><div class='add'>+            env++;</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='ctx'>     }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.rehash</div><div class='add'>+ *   ENV.rehash -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ * (Provided for compatibility with Hash.)</div><div class='ctx'>  *</div><div class='del'>- * Re-hashing the environment variables does nothing.  It is provided for</div><div class='del'>- * compatibility with Hash.</div><div class='add'>+ * Does not modify ENV; returns +nil+.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_none(void)</div><div class='add'>+env_none(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+env_size_with_lock(void)</div><div class='add'>+{</div><div class='add'>+    int i = 0;</div><div class='add'>+</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+        while (env[i]) i++;</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='add'>+    }</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+    return i;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.length</div><div class='del'>- *   ENV.size</div><div class='add'>+ *   ENV.length -&gt; an_integer</div><div class='add'>+ *   ENV.size   -&gt; an_integer</div><div class='ctx'>  *</div><div class='del'>- * Returns the number of environment variables.</div><div class='add'>+ * Returns the count of environment variables:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.length # =&gt; 2</div><div class='add'>+ *   ENV.size # =&gt; 2</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_size(void)</div><div class='add'>+env_size(VALUE _)</div><div class='ctx'> {</div><div class='del'>-    int i;</div><div class='del'>-    char **env;</div><div class='del'>-</div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    for (i=0; env[i]; i++)</div><div class='del'>-	;</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='del'>-    return INT2FIX(i);</div><div class='add'>+    return INT2FIX(env_size_with_lock());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='ctx'>  *   ENV.empty? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns true when there are no environment variables</div><div class='add'>+ * Returns +true+ when there are no environment variables, +false+ otherwise:</div><div class='add'>+ *   ENV.clear</div><div class='add'>+ *   ENV.empty? # =&gt; true</div><div class='add'>+ *   ENV['foo'] = '0'</div><div class='add'>+ *   ENV.empty? # =&gt; false</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_empty_p(void)</div><div class='add'>+env_empty_p(VALUE _)</div><div class='ctx'> {</div><div class='del'>-    char **env;</div><div class='add'>+    bool empty = true;</div><div class='ctx'> </div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    if (env[0] == 0) {</div><div class='del'>-	FREE_ENVIRON(environ);</div><div class='del'>-	return Qtrue;</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+        if (env[0] != 0) {</div><div class='add'>+            empty = false;</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='ctx'>     }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='del'>-    return Qfalse;</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+    return RBOOL(empty);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.key?(name)     -&gt; true or false</div><div class='ctx'>  *   ENV.include?(name) -&gt; true or false</div><div class='ctx'>  *   ENV.has_key?(name) -&gt; true or false</div><div class='ctx'>  *   ENV.member?(name)  -&gt; true or false</div><div class='add'>+ *   ENV.key?(name)     -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns +true+ if there is an environment variable with the given +name+.</div><div class='add'>+ * ENV.has_key?, ENV.member?, and ENV.key? are aliases for ENV.include?.</div><div class='add'>+ *</div><div class='add'>+ * Returns +true+ if there is an environment variable with the given +name+:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.include?('foo') # =&gt; true</div><div class='add'>+ * Returns +false+ if +name+ is a valid String and there is no such environment variable:</div><div class='add'>+ *   ENV.include?('baz') # =&gt; false</div><div class='add'>+ * Returns +false+ if +name+ is the empty String or is a String containing character &lt;code&gt;'='&lt;/code&gt;:</div><div class='add'>+ *   ENV.include?('') # =&gt; false</div><div class='add'>+ *   ENV.include?('=') # =&gt; false</div><div class='add'>+ * Raises an exception if +name+ is a String containing the NUL character &lt;code&gt;"\0"&lt;/code&gt;:</div><div class='add'>+ *   ENV.include?("\0") # Raises ArgumentError (bad environment variable name: contains null byte)</div><div class='add'>+ * Raises an exception if +name+ has an encoding that is not ASCII-compatible:</div><div class='add'>+ *   ENV.include?("\xa1\xa1".force_encoding(Encoding::UTF_16LE))</div><div class='add'>+ *   # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)</div><div class='add'>+ * Raises an exception if +name+ is not a String:</div><div class='add'>+ *   ENV.include?(Object.new) # TypeError (no implicit conversion of Object into String)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_has_key(VALUE env, VALUE key)</div><div class='ctx'> {</div><div class='del'>-    const char *s;</div><div class='del'>-</div><div class='del'>-    s = env_name(key);</div><div class='del'>-    if (getenv(s)) return Qtrue;</div><div class='del'>-    return Qfalse;</div><div class='add'>+    const char *s = env_name(key);</div><div class='add'>+    return RBOOL(has_env_with_lock(s));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.assoc(name) -&gt; Array or nil</div><div class='del'>- *</div><div class='del'>- * Returns an Array of the name and value of the environment variable with</div><div class='del'>- * +name+ or +nil+ if the name cannot be found.</div><div class='add'>+ *   ENV.assoc(name) -&gt; [name, value] or nil</div><div class='add'>+ *</div><div class='add'>+ * Returns a 2-element Array containing the name and value of the environment variable</div><div class='add'>+ * for +name+ if it exists:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.assoc('foo') # =&gt; ['foo', '0']</div><div class='add'>+ * Returns +nil+ if +name+ is a valid String and there is no such environment variable.</div><div class='add'>+ *</div><div class='add'>+ * Returns +nil+ if +name+ is the empty String or is a String containing character &lt;code&gt;'='&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ * Raises an exception if +name+ is a String containing the NUL character &lt;code&gt;"\0"&lt;/code&gt;:</div><div class='add'>+ *   ENV.assoc("\0") # Raises ArgumentError (bad environment variable name: contains null byte)</div><div class='add'>+ * Raises an exception if +name+ has an encoding that is not ASCII-compatible:</div><div class='add'>+ *   ENV.assoc("\xa1\xa1".force_encoding(Encoding::UTF_16LE))</div><div class='add'>+ *   # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)</div><div class='add'>+ * Raises an exception if +name+ is not a String:</div><div class='add'>+ *   ENV.assoc(Object.new) # TypeError (no implicit conversion of Object into String)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_assoc(VALUE env, VALUE key)</div><div class='ctx'> {</div><div class='del'>-    const char *s, *e;</div><div class='add'>+    const char *s = env_name(key);</div><div class='add'>+    VALUE e = getenv_with_lock(s);</div><div class='ctx'> </div><div class='del'>-    s = env_name(key);</div><div class='del'>-    e = getenv(s);</div><div class='del'>-    if (e) return rb_assoc_new(key, env_str_new2(e));</div><div class='del'>-    return Qnil;</div><div class='add'>+    if (!NIL_P(e)) {</div><div class='add'>+        return rb_assoc_new(key, e);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.value?(value) -&gt; true or false</div><div class='add'>+ *   ENV.value?(value)     -&gt; true or false</div><div class='ctx'>  *   ENV.has_value?(value) -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- * Returns +true+ if there is an environment variable with the given +value+.</div><div class='add'>+ * Returns +true+ if +value+ is the value for some environment variable name, +false+ otherwise:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.value?('0') # =&gt; true</div><div class='add'>+ *   ENV.has_value?('0') # =&gt; true</div><div class='add'>+ *   ENV.value?('2') # =&gt; false</div><div class='add'>+ *   ENV.has_value?('2') # =&gt; false</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_has_value(VALUE dmy, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    char **env;</div><div class='del'>-</div><div class='ctx'>     obj = rb_check_string_type(obj);</div><div class='ctx'>     if (NIL_P(obj)) return Qnil;</div><div class='del'>-    rb_check_safe_obj(obj);</div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    while (*env) {</div><div class='del'>-	char *s = strchr(*env, '=');</div><div class='del'>-	if (s++) {</div><div class='del'>-	    long len = strlen(s);</div><div class='del'>-	    if (RSTRING_LEN(obj) == len &amp;&amp; strncmp(s, RSTRING_PTR(obj), len) == 0) {</div><div class='del'>-		FREE_ENVIRON(environ);</div><div class='del'>-		return Qtrue;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	env++;</div><div class='add'>+</div><div class='add'>+    VALUE ret = Qfalse;</div><div class='add'>+</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+        while (*env) {</div><div class='add'>+            char *s = strchr(*env, '=');</div><div class='add'>+            if (s++) {</div><div class='add'>+                long len = strlen(s);</div><div class='add'>+                if (RSTRING_LEN(obj) == len &amp;&amp; strncmp(s, RSTRING_PTR(obj), len) == 0) {</div><div class='add'>+                    ret = Qtrue;</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            env++;</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='ctx'>     }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='del'>-    return Qfalse;</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.rassoc(value)</div><div class='add'>+ *   ENV.rassoc(value) -&gt; [name, value] or nil</div><div class='ctx'>  *</div><div class='del'>- * Returns an Array of the name and value of the environment variable with</div><div class='del'>- * +value+ or +nil+ if the value cannot be found.</div><div class='add'>+ * Returns a 2-element Array containing the name and value of the</div><div class='add'>+ * *first* *found* environment variable that has value +value+, if one</div><div class='add'>+ * exists:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '0')</div><div class='add'>+ *   ENV.rassoc('0') # =&gt; ["bar", "0"]</div><div class='add'>+ * The order in which environment variables are examined is OS-dependent.</div><div class='add'>+ * See {About Ordering}[rdoc-ref:ENV@About+Ordering].</div><div class='add'>+ *</div><div class='add'>+ * Returns +nil+ if there is no such environment variable.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_rassoc(VALUE dmy, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    char **env;</div><div class='del'>-</div><div class='ctx'>     obj = rb_check_string_type(obj);</div><div class='ctx'>     if (NIL_P(obj)) return Qnil;</div><div class='del'>-    rb_check_safe_obj(obj);</div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    while (*env) {</div><div class='del'>-	char *s = strchr(*env, '=');</div><div class='del'>-	if (s++) {</div><div class='del'>-	    long len = strlen(s);</div><div class='del'>-	    if (RSTRING_LEN(obj) == len &amp;&amp; strncmp(s, RSTRING_PTR(obj), len) == 0) {</div><div class='del'>-		VALUE result = rb_assoc_new(rb_tainted_str_new(*env, s-*env-1), obj);</div><div class='del'>-		FREE_ENVIRON(environ);</div><div class='del'>-		return result;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	env++;</div><div class='add'>+</div><div class='add'>+    VALUE result = Qnil;</div><div class='add'>+</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+</div><div class='add'>+        while (*env) {</div><div class='add'>+            const char *p = *env;</div><div class='add'>+            char *s = strchr(p, '=');</div><div class='add'>+            if (s++) {</div><div class='add'>+                long len = strlen(s);</div><div class='add'>+                if (RSTRING_LEN(obj) == len &amp;&amp; strncmp(s, RSTRING_PTR(obj), len) == 0) {</div><div class='add'>+                    result = rb_assoc_new(rb_str_new(p, s-p-1), obj);</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            env++;</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='ctx'>     }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='del'>-    return Qnil;</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.key(value) -&gt; name</div><div class='add'>+ *   ENV.key(value) -&gt; name or nil</div><div class='add'>+ *</div><div class='add'>+ * Returns the name of the first environment variable with +value+, if it exists:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '0')</div><div class='add'>+ *   ENV.key('0') # =&gt; "foo"</div><div class='add'>+ * The order in which environment variables are examined is OS-dependent.</div><div class='add'>+ * See {About Ordering}[rdoc-ref:ENV@About+Ordering].</div><div class='add'>+ *</div><div class='add'>+ * Returns +nil+ if there is no such value.</div><div class='ctx'>  *</div><div class='del'>- * Returns the name of the environment variable with +value+.  If the value is</div><div class='del'>- * not found +nil+ is returned.</div><div class='add'>+ * Raises an exception if +value+ is invalid:</div><div class='add'>+ *   ENV.key(Object.new) # raises TypeError (no implicit conversion of Object into String)</div><div class='add'>+ * See {Invalid Names and Values}[rdoc-ref:ENV@Invalid+Names+and+Values].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_key(VALUE dmy, VALUE value)</div><div class='ctx'> {</div><div class='del'>-    char **env;</div><div class='del'>-    VALUE str;</div><div class='del'>-</div><div class='ctx'>     SafeStringValue(value);</div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    while (*env) {</div><div class='del'>-	char *s = strchr(*env, '=');</div><div class='del'>-	if (s++) {</div><div class='del'>-	    long len = strlen(s);</div><div class='del'>-	    if (RSTRING_LEN(value) == len &amp;&amp; strncmp(s, RSTRING_PTR(value), len) == 0) {</div><div class='del'>-		str = env_str_new(*env, s-*env-1);</div><div class='del'>-		FREE_ENVIRON(environ);</div><div class='del'>-		return str;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	env++;</div><div class='add'>+    VALUE str = Qnil;</div><div class='add'>+</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+        while (*env) {</div><div class='add'>+            char *s = strchr(*env, '=');</div><div class='add'>+            if (s++) {</div><div class='add'>+                long len = strlen(s);</div><div class='add'>+                if (RSTRING_LEN(value) == len &amp;&amp; strncmp(s, RSTRING_PTR(value), len) == 0) {</div><div class='add'>+                    str = env_str_new(*env, s-*env-1);</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            env++;</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='ctx'>     }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='del'>-    return Qnil;</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+env_to_hash(void)</div><div class='add'>+{</div><div class='add'>+    VALUE hash = rb_hash_new();</div><div class='add'>+</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+        while (*env) {</div><div class='add'>+            char *s = strchr(*env, '=');</div><div class='add'>+            if (s) {</div><div class='add'>+                rb_hash_aset(hash, env_str_new(*env, s-*env),</div><div class='add'>+                             env_str_new2(s+1));</div><div class='add'>+            }</div><div class='add'>+            env++;</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='add'>+    }</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+    return hash;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_envtbl(void)</div><div class='add'>+{</div><div class='add'>+    return envtbl;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_env_to_hash(void)</div><div class='add'>+{</div><div class='add'>+    return env_to_hash();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.index(value) -&gt; key</div><div class='add'>+ *   ENV.to_hash -&gt; hash of name/value pairs</div><div class='ctx'>  *</div><div class='del'>- * Deprecated method that is equivalent to ENV.key</div><div class='add'>+ * Returns a Hash containing all name/value pairs from ENV:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.to_hash # =&gt; {"bar"=&gt;"1", "foo"=&gt;"0"}</div><div class='ctx'>  */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-env_index(VALUE dmy, VALUE value)</div><div class='add'>+env_f_to_hash(VALUE _)</div><div class='ctx'> {</div><div class='del'>-    rb_warn("ENV.index is deprecated; use ENV.key");</div><div class='del'>-    return env_key(dmy, value);</div><div class='add'>+    return env_to_hash();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.to_hash -&gt; hash</div><div class='del'>- *</div><div class='del'>- * Creates a hash with a copy of the environment variables.</div><div class='del'>- *</div><div class='add'>+ *   ENV.to_h                        -&gt; hash of name/value pairs</div><div class='add'>+ *   ENV.to_h {|name, value| block } -&gt; hash of name/value pairs</div><div class='add'>+ *</div><div class='add'>+ * With no block, returns a Hash containing all name/value pairs from ENV:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.to_h # =&gt; {"bar"=&gt;"1", "foo"=&gt;"0"}</div><div class='add'>+ * With a block, returns a Hash whose items are determined by the block.</div><div class='add'>+ * Each name/value pair in ENV is yielded to the block.</div><div class='add'>+ * The block must return a 2-element Array (name/value pair)</div><div class='add'>+ * that is added to the return Hash as a key and value:</div><div class='add'>+ *   ENV.to_h { |name, value| [name.to_sym, value.to_i] } # =&gt; {:bar=&gt;1, :foo=&gt;0}</div><div class='add'>+ * Raises an exception if the block does not return an Array:</div><div class='add'>+ *   ENV.to_h { |name, value| name } # Raises TypeError (wrong element type String (expected array))</div><div class='add'>+ * Raises an exception if the block returns an Array of the wrong size:</div><div class='add'>+ *   ENV.to_h { |name, value| [name] } # Raises ArgumentError (element has wrong array length (expected 2, was 1))</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_to_hash(void)</div><div class='add'>+env_to_h(VALUE _)</div><div class='ctx'> {</div><div class='del'>-    char **env;</div><div class='del'>-    VALUE hash;</div><div class='del'>-</div><div class='del'>-    hash = rb_hash_new();</div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    while (*env) {</div><div class='del'>-	char *s = strchr(*env, '=');</div><div class='del'>-	if (s) {</div><div class='del'>-	    rb_hash_aset(hash, env_str_new(*env, s-*env),</div><div class='del'>-			       env_str_new2(s+1));</div><div class='del'>-	}</div><div class='del'>-	env++;</div><div class='add'>+    VALUE hash = env_to_hash();</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+        hash = rb_hash_to_h_block(hash);</div><div class='ctx'>     }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   ENV.to_h                        -&gt; hash</div><div class='del'>- *   ENV.to_h {|name, value| block } -&gt; hash</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ENV.except(*keys) -&gt; a_hash</div><div class='ctx'>  *</div><div class='del'>- * Creates a hash with a copy of the environment variables.</div><div class='add'>+ *  Returns a hash except the given keys from ENV and their values.</div><div class='ctx'>  *</div><div class='add'>+ *     ENV                       #=&gt; {"LANG"=&gt;"en_US.UTF-8", "TERM"=&gt;"xterm-256color", "HOME"=&gt;"/Users/rhc"}</div><div class='add'>+ *     ENV.except("TERM","HOME") #=&gt; {"LANG"=&gt;"en_US.UTF-8"}</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_to_h(void)</div><div class='add'>+env_except(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='del'>-    VALUE hash = env_to_hash();</div><div class='del'>-    if (rb_block_given_p()) {</div><div class='del'>-        hash = rb_hash_to_h_block(hash);</div><div class='add'>+    int i;</div><div class='add'>+    VALUE key, hash = env_to_hash();</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; argc; i++) {</div><div class='add'>+        key = argv[i];</div><div class='add'>+        rb_hash_delete(hash, key);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     return hash;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.reject { |name, value| block } -&gt; Hash</div><div class='del'>- *   ENV.reject                         -&gt; Enumerator</div><div class='del'>- *</div><div class='del'>- * Same as ENV.delete_if, but works on (and returns) a copy of the</div><div class='del'>- * environment.</div><div class='add'>+ *   ENV.reject { |name, value| block } -&gt; hash of name/value pairs</div><div class='add'>+ *   ENV.reject                         -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ * Yields each environment variable name and its value as a 2-element Array.</div><div class='add'>+ * Returns a Hash whose items are determined by the block.</div><div class='add'>+ * When the block returns a truthy value, the name/value pair is added to the return Hash;</div><div class='add'>+ * otherwise the pair is ignored:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1', 'baz' =&gt; '2')</div><div class='add'>+ *   ENV.reject { |name, value| name.start_with?('b') } # =&gt; {"foo"=&gt;"0"}</div><div class='add'>+ * Returns an Enumerator if no block given:</div><div class='add'>+ *   e = ENV.reject</div><div class='add'>+ *   e.each { |name, value| name.start_with?('b') } # =&gt; {"foo"=&gt;"0"}</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_reject(void)</div><div class='add'>+env_reject(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     return rb_hash_delete_if(env_to_hash());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+NORETURN(static VALUE env_freeze(VALUE self));</div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.shift -&gt; Array or nil</div><div class='add'>+ *   ENV.freeze</div><div class='ctx'>  *</div><div class='del'>- * Removes an environment variable name-value pair from ENV and returns it as</div><div class='del'>- * an Array.  Returns +nil+ if when the environment is empty.</div><div class='add'>+ * Raises an exception:</div><div class='add'>+ *   ENV.freeze # Raises TypeError (cannot freeze ENV)</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_shift(void)</div><div class='add'>+env_freeze(VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_raise(rb_eTypeError, "cannot freeze ENV");</div><div class='add'>+    UNREACHABLE_RETURN(self);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   ENV.shift -&gt; [name, value] or nil</div><div class='add'>+ *</div><div class='add'>+ * Removes the first environment variable from ENV and returns</div><div class='add'>+ * a 2-element Array containing its name and value:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.to_hash # =&gt; {'bar' =&gt; '1', 'foo' =&gt; '0'}</div><div class='add'>+ *   ENV.shift # =&gt; ['bar', '1']</div><div class='add'>+ *   ENV.to_hash # =&gt; {'foo' =&gt; '0'}</div><div class='add'>+ * Exactly which environment variable is "first" is OS-dependent.</div><div class='add'>+ * See {About Ordering}[rdoc-ref:ENV@About+Ordering].</div><div class='add'>+ *</div><div class='add'>+ * Returns +nil+ if the environment is empty.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+env_shift(VALUE _)</div><div class='ctx'> {</div><div class='del'>-    char **env;</div><div class='ctx'>     VALUE result = Qnil;</div><div class='add'>+    VALUE key = Qnil;</div><div class='ctx'> </div><div class='del'>-    env = GET_ENVIRON(environ);</div><div class='del'>-    if (*env) {</div><div class='del'>-	char *s = strchr(*env, '=');</div><div class='del'>-	if (s) {</div><div class='del'>-	    VALUE key = env_str_new(*env, s-*env);</div><div class='del'>-	    VALUE val = env_str_new2(getenv(RSTRING_PTR(key)));</div><div class='del'>-	    env_delete(Qnil, key);</div><div class='del'>-	    result = rb_assoc_new(key, val);</div><div class='del'>-	}</div><div class='add'>+    ENV_LOCK();</div><div class='add'>+    {</div><div class='add'>+        char **env = GET_ENVIRON(environ);</div><div class='add'>+        if (*env) {</div><div class='add'>+            const char *p = *env;</div><div class='add'>+            char *s = strchr(p, '=');</div><div class='add'>+            if (s) {</div><div class='add'>+                key = env_str_new(p, s-p);</div><div class='add'>+                VALUE val = env_str_new2(getenv(RSTRING_PTR(key)));</div><div class='add'>+                result = rb_assoc_new(key, val);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        FREE_ENVIRON(environ);</div><div class='ctx'>     }</div><div class='del'>-    FREE_ENVIRON(environ);</div><div class='add'>+    ENV_UNLOCK();</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(key)) {</div><div class='add'>+        env_delete(key);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.invert -&gt; Hash</div><div class='del'>- *</div><div class='del'>- * Returns a new hash created by using environment variable names as values</div><div class='del'>- * and values as names.</div><div class='add'>+ *   ENV.invert -&gt; hash of value/name pairs</div><div class='add'>+ *</div><div class='add'>+ * Returns a Hash whose keys are the ENV values,</div><div class='add'>+ * and whose values are the corresponding ENV names:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.invert # =&gt; {"1"=&gt;"bar", "0"=&gt;"foo"}</div><div class='add'>+ * For a duplicate ENV value, overwrites the hash entry:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '0')</div><div class='add'>+ *   ENV.invert # =&gt; {"0"=&gt;"foo"}</div><div class='add'>+ * Note that the order of the ENV processing is OS-dependent,</div><div class='add'>+ * which means that the order of overwriting is also OS-dependent.</div><div class='add'>+ * See {About Ordering}[rdoc-ref:ENV@About+Ordering].</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_invert(void)</div><div class='add'>+env_invert(VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     return rb_hash_invert(env_to_hash());</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+keylist_delete(VALUE keys, VALUE key)</div><div class='add'>+{</div><div class='add'>+    long keylen, elen;</div><div class='add'>+    const char *keyptr, *eptr;</div><div class='add'>+    RSTRING_GETMEM(key, keyptr, keylen);</div><div class='add'>+    /* Don't stop at first key, as it is possible to have</div><div class='add'>+       multiple environment values with the same key.</div><div class='add'>+    */</div><div class='add'>+    for (long i=0; i&lt;RARRAY_LEN(keys); i++) {</div><div class='add'>+        VALUE e = RARRAY_AREF(keys, i);</div><div class='add'>+        RSTRING_GETMEM(e, eptr, elen);</div><div class='add'>+        if (elen != keylen) continue;</div><div class='add'>+        if (!ENVNMATCH(keyptr, eptr, elen)) continue;</div><div class='add'>+        rb_ary_delete_at(keys, i);</div><div class='add'>+        i--;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> env_replace_i(VALUE key, VALUE val, VALUE keys)</div><div class='ctx'> {</div><div class='del'>-    env_aset(Qnil, key, val);</div><div class='del'>-    if (rb_ary_includes(keys, key)) {</div><div class='del'>-	rb_ary_delete(keys, key);</div><div class='del'>-    }</div><div class='add'>+    env_name(key);</div><div class='add'>+    env_aset(key, val);</div><div class='add'>+</div><div class='add'>+    keylist_delete(keys, key);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.replace(hash) -&gt; env</div><div class='add'>+ *   ENV.replace(hash) -&gt; ENV</div><div class='add'>+ *</div><div class='add'>+ * Replaces the entire content of the environment variables</div><div class='add'>+ * with the name/value pairs in the given +hash+;</div><div class='add'>+ * returns ENV.</div><div class='add'>+ *</div><div class='add'>+ * Replaces the content of ENV with the given pairs:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1') # =&gt; ENV</div><div class='add'>+ *   ENV.to_hash # =&gt; {"bar"=&gt;"1", "foo"=&gt;"0"}</div><div class='ctx'>  *</div><div class='del'>- * Replaces the contents of the environment variables with the contents of</div><div class='del'>- * +hash+.</div><div class='add'>+ * Raises an exception if a name or value is invalid</div><div class='add'>+ * (see {Invalid Names and Values}[rdoc-ref:ENV@Invalid+Names+and+Values]):</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', :bar =&gt; '1') # Raises TypeError (no implicit conversion of Symbol into String)</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; 1) # Raises TypeError (no implicit conversion of Integer into String)</div><div class='add'>+ *   ENV.to_hash # =&gt; {"bar"=&gt;"1", "foo"=&gt;"0"}</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> env_replace(VALUE env, VALUE hash)</div><div class='hunk'>@@ -5652,121 +6612,359 @@ env_replace(VALUE env, VALUE hash)</div><div class='ctx'>     VALUE keys;</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='del'>-    keys = env_keys();</div><div class='add'>+    keys = env_keys(TRUE);</div><div class='ctx'>     if (env == hash) return env;</div><div class='ctx'>     hash = to_hash(hash);</div><div class='ctx'>     rb_hash_foreach(hash, env_replace_i, keys);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(keys); i++) {</div><div class='del'>-	env_delete(env, RARRAY_AREF(keys, i));</div><div class='add'>+        env_delete(RARRAY_AREF(keys, i));</div><div class='ctx'>     }</div><div class='ctx'>     RB_GC_GUARD(keys);</div><div class='ctx'>     return env;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-env_update_i(VALUE key, VALUE val)</div><div class='add'>+env_update_i(VALUE key, VALUE val, VALUE _)</div><div class='ctx'> {</div><div class='del'>-    if (rb_block_given_p()) {</div><div class='del'>-	val = rb_yield_values(3, key, rb_f_getenv(Qnil, key), val);</div><div class='add'>+    env_aset(key, val);</div><div class='add'>+    return ST_CONTINUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+env_update_block_i(VALUE key, VALUE val, VALUE _)</div><div class='add'>+{</div><div class='add'>+    VALUE oldval = rb_f_getenv(Qnil, key);</div><div class='add'>+    if (!NIL_P(oldval)) {</div><div class='add'>+        val = rb_yield_values(3, key, oldval, val);</div><div class='ctx'>     }</div><div class='del'>-    env_aset(Qnil, key, val);</div><div class='add'>+    env_aset(key, val);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * call-seq:</div><div class='del'>- *   ENV.update(hash)                                        -&gt; Hash</div><div class='del'>- *   ENV.update(hash) { |name, old_value, new_value| block } -&gt; Hash</div><div class='del'>- *</div><div class='del'>- * Adds the contents of +hash+ to the environment variables.  If no block is</div><div class='del'>- * specified entries with duplicate keys are overwritten, otherwise the value</div><div class='del'>- * of each duplicate name is determined by calling the block with the key, its</div><div class='del'>- * value from the environment and its value from the hash.</div><div class='add'>+ *   ENV.update                                              -&gt; ENV</div><div class='add'>+ *   ENV.update(*hashes)                                     -&gt; ENV</div><div class='add'>+ *   ENV.update(*hashes) { |name, env_val, hash_val| block } -&gt; ENV</div><div class='add'>+ *   ENV.merge!                                              -&gt; ENV</div><div class='add'>+ *   ENV.merge!(*hashes)                                     -&gt; ENV</div><div class='add'>+ *   ENV.merge!(*hashes) { |name, env_val, hash_val| block } -&gt; ENV</div><div class='add'>+ *</div><div class='add'>+ * ENV.update is an alias for ENV.merge!.</div><div class='add'>+ *</div><div class='add'>+ * Adds to ENV each key/value pair in the given +hash+; returns ENV:</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.merge!('baz' =&gt; '2', 'bat' =&gt; '3') # =&gt; {"bar"=&gt;"1", "bat"=&gt;"3", "baz"=&gt;"2", "foo"=&gt;"0"}</div><div class='add'>+ * Deletes the ENV entry for a hash value that is +nil+:</div><div class='add'>+ *   ENV.merge!('baz' =&gt; nil, 'bat' =&gt; nil) # =&gt; {"bar"=&gt;"1", "foo"=&gt;"0"}</div><div class='add'>+ * For an already-existing name, if no block given, overwrites the ENV value:</div><div class='add'>+ *   ENV.merge!('foo' =&gt; '4') # =&gt; {"bar"=&gt;"1", "foo"=&gt;"4"}</div><div class='add'>+ * For an already-existing name, if block given,</div><div class='add'>+ * yields the name, its ENV value, and its hash value;</div><div class='add'>+ * the block's return value becomes the new name:</div><div class='add'>+ *   ENV.merge!('foo' =&gt; '5') { |name, env_val, hash_val | env_val + hash_val } # =&gt; {"bar"=&gt;"1", "foo"=&gt;"45"}</div><div class='add'>+ * Raises an exception if a name or value is invalid</div><div class='add'>+ * (see {Invalid Names and Values}[rdoc-ref:ENV@Invalid+Names+and+Values]);</div><div class='add'>+ *   ENV.replace('foo' =&gt; '0', 'bar' =&gt; '1')</div><div class='add'>+ *   ENV.merge!('foo' =&gt; '6', :bar =&gt; '7', 'baz' =&gt; '9') # Raises TypeError (no implicit conversion of Symbol into String)</div><div class='add'>+ *   ENV # =&gt; {"bar"=&gt;"1", "foo"=&gt;"6"}</div><div class='add'>+ *   ENV.merge!('foo' =&gt; '7', 'bar' =&gt; 8, 'baz' =&gt; '9') # Raises TypeError (no implicit conversion of Integer into String)</div><div class='add'>+ *   ENV # =&gt; {"bar"=&gt;"1", "foo"=&gt;"7"}</div><div class='add'>+ * Raises an exception if the block returns an invalid name:</div><div class='add'>+ * (see {Invalid Names and Values}[rdoc-ref:ENV@Invalid+Names+and+Values]):</div><div class='add'>+ *   ENV.merge!('bat' =&gt; '8', 'foo' =&gt; '9') { |name, env_val, hash_val | 10 } # Raises TypeError (no implicit conversion of Integer into String)</div><div class='add'>+ *   ENV # =&gt; {"bar"=&gt;"1", "bat"=&gt;"8", "foo"=&gt;"7"}</div><div class='add'>+ *</div><div class='add'>+ * Note that for the exceptions above,</div><div class='add'>+ * hash pairs preceding an invalid name or value are processed normally;</div><div class='add'>+ * those following are ignored.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='del'>-env_update(VALUE env, VALUE hash)</div><div class='add'>+env_update(int argc, VALUE *argv, VALUE env)</div><div class='ctx'> {</div><div class='del'>-    if (env == hash) return env;</div><div class='del'>-    hash = to_hash(hash);</div><div class='del'>-    rb_hash_foreach(hash, env_update_i, 0);</div><div class='add'>+    rb_foreach_func *func = rb_block_given_p() ?</div><div class='add'>+        env_update_block_i : env_update_i;</div><div class='add'>+    for (int i = 0; i &lt; argc; ++i) {</div><div class='add'>+        VALUE hash = argv[i];</div><div class='add'>+        if (env == hash) continue;</div><div class='add'>+        hash = to_hash(hash);</div><div class='add'>+        rb_hash_foreach(hash, func, 0);</div><div class='add'>+    }</div><div class='ctx'>     return env;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+NORETURN(static VALUE env_clone(int, VALUE *, VALUE));</div><div class='ctx'> /*</div><div class='del'>- *  A Hash is a dictionary-like collection of unique keys and their values.</div><div class='del'>- *  Also called associative arrays, they are similar to Arrays, but where an</div><div class='del'>- *  Array uses integers as its index, a Hash allows you to use any object</div><div class='del'>- *  type.</div><div class='del'>- *</div><div class='del'>- *  Hashes enumerate their values in the order that the corresponding keys</div><div class='del'>- *  were inserted.</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   ENV.clone(freeze: nil) # raises TypeError</div><div class='ctx'>  *</div><div class='del'>- *  A Hash can be easily created by using its implicit form:</div><div class='add'>+ * Raises TypeError, because ENV is a wrapper for the process-wide</div><div class='add'>+ * environment variables and a clone is useless.</div><div class='add'>+ * Use #to_h to get a copy of ENV data as a hash.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+env_clone(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (argc) {</div><div class='add'>+        VALUE opt;</div><div class='add'>+        if (rb_scan_args(argc, argv, "0:", &amp;opt) &lt; argc) {</div><div class='add'>+            rb_get_freeze_opt(1, &amp;opt);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_raise(rb_eTypeError, "Cannot clone ENV, use ENV.to_h to get a copy of ENV as a hash");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+NORETURN(static VALUE env_dup(VALUE));</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   ENV.dup # raises TypeError</div><div class='ctx'>  *</div><div class='del'>- *    grades = { "Jane Doe" =&gt; 10, "Jim Doe" =&gt; 6 }</div><div class='add'>+ * Raises TypeError, because ENV is a singleton object.</div><div class='add'>+ * Use #to_h to get a copy of ENV data as a hash.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+env_dup(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    rb_raise(rb_eTypeError, "Cannot dup ENV, use ENV.to_h to get a copy of ENV as a hash");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t env_data_type = {</div><div class='add'>+    "ENV",</div><div class='add'>+    {</div><div class='add'>+        NULL,</div><div class='add'>+        NULL,</div><div class='add'>+        NULL,</div><div class='add'>+        NULL,</div><div class='add'>+    },</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  A \Hash maps each of its unique keys to a specific value.</div><div class='ctx'>  *</div><div class='del'>- *  Hashes allow an alternate syntax for keys that are symbols.</div><div class='del'>- *  Instead of</div><div class='add'>+ *  A \Hash has certain similarities to an \Array, but:</div><div class='add'>+ *  - An \Array index is always an \Integer.</div><div class='add'>+ *  - A \Hash key can be (almost) any object.</div><div class='ctx'>  *</div><div class='del'>- *    options = { :font_size =&gt; 10, :font_family =&gt; "Arial" }</div><div class='add'>+ *  === \Hash \Data Syntax</div><div class='ctx'>  *</div><div class='del'>- *  You could write it as:</div><div class='add'>+ *  The older syntax for \Hash data uses the "hash rocket," &lt;tt&gt;=&gt;&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *    options = { font_size: 10, font_family: "Arial" }</div><div class='add'>+ *    h = {:foo =&gt; 0, :bar =&gt; 1, :baz =&gt; 2}</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='del'>- *  Each named key is a symbol you can access in hash:</div><div class='add'>+ *  Alternatively, but only for a \Hash key that's a \Symbol,</div><div class='add'>+ *  you can use a newer JSON-style syntax,</div><div class='add'>+ *  where each bareword becomes a \Symbol:</div><div class='ctx'>  *</div><div class='del'>- *    options[:font_size]  # =&gt; 10</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='del'>- *  A Hash can also be created through its ::new method:</div><div class='add'>+ *  You can also use a \String in place of a bareword:</div><div class='ctx'>  *</div><div class='del'>- *    grades = Hash.new</div><div class='del'>- *    grades["Dorothy Doe"] = 9</div><div class='add'>+ *    h = {'foo': 0, 'bar': 1, 'baz': 2}</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='del'>- *  Hashes have a &lt;em&gt;default value&lt;/em&gt; that is returned when accessing</div><div class='del'>- *  keys that do not exist in the hash. If no default is set +nil+ is used.</div><div class='del'>- *  You can set the default value by sending it as an argument to Hash.new:</div><div class='add'>+ *  And you can mix the styles:</div><div class='ctx'>  *</div><div class='del'>- *    grades = Hash.new(0)</div><div class='add'>+ *    h = {foo: 0, :bar =&gt; 1, 'baz': 2}</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='del'>- *  Or by using the #default= method:</div><div class='add'>+ *  But it's an error to try the JSON-style syntax</div><div class='add'>+ *  for a key that's not a bareword or a String:</div><div class='ctx'>  *</div><div class='del'>- *    grades = {"Timmy Doe" =&gt; 8}</div><div class='del'>- *    grades.default = 0</div><div class='add'>+ *    # Raises SyntaxError (syntax error, unexpected ':', expecting =&gt;):</div><div class='add'>+ *    h = {0: 'zero'}</div><div class='ctx'>  *</div><div class='del'>- *  Accessing a value in a Hash requires using its key:</div><div class='add'>+ *  Hash value can be omitted, meaning that value will be fetched from the context</div><div class='add'>+ *  by the name of the key:</div><div class='ctx'>  *</div><div class='del'>- *    puts grades["Jane Doe"] # =&gt; 0</div><div class='add'>+ *    x = 0</div><div class='add'>+ *    y = 100</div><div class='add'>+ *    h = {x:, y:}</div><div class='add'>+ *    h # =&gt; {:x=&gt;0, :y=&gt;100}</div><div class='ctx'>  *</div><div class='ctx'>  *  === Common Uses</div><div class='ctx'>  *</div><div class='del'>- *  Hashes are an easy way to represent data structures, such as</div><div class='add'>+ *  You can use a \Hash to give names to objects:</div><div class='add'>+ *</div><div class='add'>+ *    person = {name: 'Matz', language: 'Ruby'}</div><div class='add'>+ *    person # =&gt; {:name=&gt;"Matz", :language=&gt;"Ruby"}</div><div class='add'>+ *</div><div class='add'>+ *  You can use a \Hash to give names to method arguments:</div><div class='ctx'>  *</div><div class='del'>- *    books         = {}</div><div class='del'>- *    books[:matz]  = "The Ruby Programming Language"</div><div class='del'>- *    books[:black] = "The Well-Grounded Rubyist"</div><div class='add'>+ *    def some_method(hash)</div><div class='add'>+ *      p hash</div><div class='add'>+ *    end</div><div class='add'>+ *    some_method({foo: 0, bar: 1, baz: 2}) # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *</div><div class='add'>+ *  Note: when the last argument in a method call is a \Hash,</div><div class='add'>+ *  the curly braces may be omitted:</div><div class='ctx'>  *</div><div class='del'>- *  Hashes are also commonly used as a way to have named parameters in</div><div class='del'>- *  functions. Note that no brackets are used below. If a hash is the last</div><div class='del'>- *  argument on a method call, no braces are needed, thus creating a really</div><div class='del'>- *  clean interface:</div><div class='add'>+ *    some_method(foo: 0, bar: 1, baz: 2) # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='ctx'>  *</div><div class='del'>- *    Person.create(name: "John Doe", age: 27)</div><div class='add'>+ *  You can use a \Hash to initialize an object:</div><div class='ctx'>  *</div><div class='del'>- *    def self.create(params)</div><div class='del'>- *      @name = params[:name]</div><div class='del'>- *      @age  = params[:age]</div><div class='add'>+ *    class Dev</div><div class='add'>+ *      attr_accessor :name, :language</div><div class='add'>+ *      def initialize(hash)</div><div class='add'>+ *        self.name = hash[:name]</div><div class='add'>+ *        self.language = hash[:language]</div><div class='add'>+ *      end</div><div class='ctx'>  *    end</div><div class='add'>+ *    matz = Dev.new(name: 'Matz', language: 'Ruby')</div><div class='add'>+ *    matz # =&gt; #&lt;Dev: @name="Matz", @language="Ruby"&gt;</div><div class='add'>+ *</div><div class='add'>+ *  === Creating a \Hash</div><div class='add'>+ *</div><div class='add'>+ *  You can create a \Hash object explicitly with:</div><div class='add'>+ *</div><div class='add'>+ *  - A {hash literal}[rdoc-ref:syntax/literals.rdoc@Hash+Literals].</div><div class='add'>+ *</div><div class='add'>+ *  You can convert certain objects to Hashes with:</div><div class='add'>+ *</div><div class='add'>+ *  - \Method #Hash.</div><div class='ctx'>  *</div><div class='del'>- *  === Hash Keys</div><div class='add'>+ *  You can create a \Hash by calling method Hash.new.</div><div class='ctx'>  *</div><div class='del'>- *  Two objects refer to the same hash key when their &lt;code&gt;hash&lt;/code&gt; value</div><div class='add'>+ *  Create an empty Hash:</div><div class='add'>+ *</div><div class='add'>+ *    h = Hash.new</div><div class='add'>+ *    h # =&gt; {}</div><div class='add'>+ *    h.class # =&gt; Hash</div><div class='add'>+ *</div><div class='add'>+ *  You can create a \Hash by calling method Hash.[].</div><div class='add'>+ *</div><div class='add'>+ *  Create an empty Hash:</div><div class='add'>+ *</div><div class='add'>+ *    h = Hash[]</div><div class='add'>+ *    h # =&gt; {}</div><div class='add'>+ *</div><div class='add'>+ *  Create a \Hash with initial entries:</div><div class='add'>+ *</div><div class='add'>+ *    h = Hash[foo: 0, bar: 1, baz: 2]</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *</div><div class='add'>+ *  You can create a \Hash by using its literal form (curly braces).</div><div class='add'>+ *</div><div class='add'>+ *  Create an empty \Hash:</div><div class='add'>+ *</div><div class='add'>+ *    h = {}</div><div class='add'>+ *    h # =&gt; {}</div><div class='add'>+ *</div><div class='add'>+ *  Create a \Hash with initial entries:</div><div class='add'>+ *</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *</div><div class='add'>+ *</div><div class='add'>+ *  === \Hash Value Basics</div><div class='add'>+ *</div><div class='add'>+ *  The simplest way to retrieve a \Hash value (instance method #[]):</div><div class='add'>+ *</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h[:foo] # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *  The simplest way to create or update a \Hash value (instance method #[]=):</div><div class='add'>+ *</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h[:bat] = 3 # =&gt; 3</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2, :bat=&gt;3}</div><div class='add'>+ *    h[:foo] = 4 # =&gt; 4</div><div class='add'>+ *    h # =&gt; {:foo=&gt;4, :bar=&gt;1, :baz=&gt;2, :bat=&gt;3}</div><div class='add'>+ *</div><div class='add'>+ *  The simplest way to delete a \Hash entry (instance method #delete):</div><div class='add'>+ *</div><div class='add'>+ *    h = {foo: 0, bar: 1, baz: 2}</div><div class='add'>+ *    h.delete(:bar) # =&gt; 1</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :baz=&gt;2}</div><div class='add'>+ *</div><div class='add'>+ *  === Entry Order</div><div class='add'>+ *</div><div class='add'>+ *  A \Hash object presents its entries in the order of their creation. This is seen in:</div><div class='add'>+ *</div><div class='add'>+ *  - Iterative methods such as &lt;tt&gt;each&lt;/tt&gt;, &lt;tt&gt;each_key&lt;/tt&gt;, &lt;tt&gt;each_pair&lt;/tt&gt;, &lt;tt&gt;each_value&lt;/tt&gt;.</div><div class='add'>+ *  - Other order-sensitive methods such as &lt;tt&gt;shift&lt;/tt&gt;, &lt;tt&gt;keys&lt;/tt&gt;, &lt;tt&gt;values&lt;/tt&gt;.</div><div class='add'>+ *  - The \String returned by method &lt;tt&gt;inspect&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  A new \Hash has its initial ordering per the given entries:</div><div class='add'>+ *</div><div class='add'>+ *    h = Hash[foo: 0, bar: 1]</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1}</div><div class='add'>+ *</div><div class='add'>+ *  New entries are added at the end:</div><div class='add'>+ *</div><div class='add'>+ *    h[:baz] = 2</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;2}</div><div class='add'>+ *</div><div class='add'>+ *  Updating a value does not affect the order:</div><div class='add'>+ *</div><div class='add'>+ *    h[:baz] = 3</div><div class='add'>+ *    h # =&gt; {:foo=&gt;0, :bar=&gt;1, :baz=&gt;3}</div><div class='add'>+ *</div><div class='add'>+ *  But re-creating a deleted entry can affect the order:</div><div class='add'>+ *</div><div class='add'>+ *    h.delete(:foo)</div><div class='add'>+ *    h[:foo] = 5</div><div class='add'>+ *    h # =&gt; {:bar=&gt;1, :baz=&gt;3, :foo=&gt;5}</div><div class='add'>+ *</div><div class='add'>+ *  === \Hash Keys</div><div class='add'>+ *</div><div class='add'>+ *  ==== \Hash Key Equivalence</div><div class='add'>+ *</div><div class='add'>+ *  Two objects are treated as the same \hash key when their &lt;code&gt;hash&lt;/code&gt; value</div><div class='ctx'>  *  is identical and the two objects are &lt;code&gt;eql?&lt;/code&gt; to each other.</div><div class='ctx'>  *</div><div class='del'>- *  A user-defined class may be used as a hash key if the &lt;code&gt;hash&lt;/code&gt;</div><div class='del'>- *  and &lt;code&gt;eql?&lt;/code&gt; methods are overridden to provide meaningful</div><div class='del'>- *  behavior.  By default, separate instances refer to separate hash keys.</div><div class='add'>+ *  ==== Modifying an Active \Hash Key</div><div class='add'>+ *</div><div class='add'>+ *  Modifying a \Hash key while it is in use damages the hash's index.</div><div class='add'>+ *</div><div class='add'>+ *  This \Hash has keys that are Arrays:</div><div class='add'>+ *</div><div class='add'>+ *    a0 = [ :foo, :bar ]</div><div class='add'>+ *    a1 = [ :baz, :bat ]</div><div class='add'>+ *    h = {a0 =&gt; 0, a1 =&gt; 1}</div><div class='add'>+ *    h.include?(a0) # =&gt; true</div><div class='add'>+ *    h[a0] # =&gt; 0</div><div class='add'>+ *    a0.hash # =&gt; 110002110</div><div class='add'>+ *</div><div class='add'>+ *  Modifying array element &lt;tt&gt;a0[0]&lt;/tt&gt; changes its hash value:</div><div class='add'>+ *</div><div class='add'>+ *    a0[0] = :bam</div><div class='add'>+ *    a0.hash # =&gt; 1069447059</div><div class='add'>+ *</div><div class='add'>+ *  And damages the \Hash index:</div><div class='add'>+ *</div><div class='add'>+ *    h.include?(a0) # =&gt; false</div><div class='add'>+ *    h[a0] # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  You can repair the hash index using method +rehash+:</div><div class='add'>+ *</div><div class='add'>+ *    h.rehash # =&gt; {[:bam, :bar]=&gt;0, [:baz, :bat]=&gt;1}</div><div class='add'>+ *    h.include?(a0) # =&gt; true</div><div class='add'>+ *    h[a0] # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *  A \String key is always safe.</div><div class='add'>+ *  That's because an unfrozen \String</div><div class='add'>+ *  passed as a key will be replaced by a duplicated and frozen \String:</div><div class='add'>+ *</div><div class='add'>+ *    s = 'foo'</div><div class='add'>+ *    s.frozen? # =&gt; false</div><div class='add'>+ *    h = {s =&gt; 0}</div><div class='add'>+ *    first_key = h.keys.first</div><div class='add'>+ *    first_key.frozen? # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ *  ==== User-Defined \Hash Keys</div><div class='add'>+ *</div><div class='add'>+ *  To be useable as a \Hash key, objects must implement the methods &lt;code&gt;hash&lt;/code&gt; and &lt;code&gt;eql?&lt;/code&gt;.</div><div class='add'>+ *  Note: this requirement does not apply if the \Hash uses #compare_by_identity since comparison will then</div><div class='add'>+ *  rely on the keys' object id instead of &lt;code&gt;hash&lt;/code&gt; and &lt;code&gt;eql?&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  \Object defines basic implementation for &lt;code&gt;hash&lt;/code&gt; and &lt;code&gt;eq?&lt;/code&gt; that makes each object</div><div class='add'>+ *  a distinct key. Typically, user-defined classes will want to override these methods to provide meaningful</div><div class='add'>+ *  behavior, or for example inherit \Struct that has useful definitions for these.</div><div class='ctx'>  *</div><div class='ctx'>  *  A typical implementation of &lt;code&gt;hash&lt;/code&gt; is based on the</div><div class='ctx'>  *  object's data while &lt;code&gt;eql?&lt;/code&gt; is usually aliased to the overridden</div><div class='hunk'>@@ -5781,8 +6979,8 @@ env_update(VALUE env, VALUE hash)</div><div class='ctx'>  *      end</div><div class='ctx'>  *</div><div class='ctx'>  *      def ==(other)</div><div class='del'>- *        self.class === other and</div><div class='del'>- *          other.author == @author and</div><div class='add'>+ *        self.class === other &amp;&amp;</div><div class='add'>+ *          other.author == @author &amp;&amp;</div><div class='ctx'>  *          other.title == @title</div><div class='ctx'>  *      end</div><div class='ctx'>  *</div><div class='hunk'>@@ -5803,22 +7001,226 @@ env_update(VALUE env, VALUE hash)</div><div class='ctx'>  *</div><div class='ctx'>  *    reviews.length #=&gt; 1</div><div class='ctx'>  *</div><div class='del'>- *  See also Object#hash and Object#eql?</div><div class='add'>+ *  === Default Values</div><div class='add'>+ *</div><div class='add'>+ *  The methods #[], #values_at and #dig need to return the value associated to a certain key.</div><div class='add'>+ *  When that key is not found, that value will be determined by its default proc (if any)</div><div class='add'>+ *  or else its default (initially `nil`).</div><div class='add'>+ *</div><div class='add'>+ *  You can retrieve the default value with method #default:</div><div class='add'>+ *</div><div class='add'>+ *    h = Hash.new</div><div class='add'>+ *    h.default # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  You can set the default value by passing an argument to method Hash.new or</div><div class='add'>+ *  with method #default=</div><div class='add'>+ *</div><div class='add'>+ *    h = Hash.new(-1)</div><div class='add'>+ *    h.default # =&gt; -1</div><div class='add'>+ *    h.default = 0</div><div class='add'>+ *    h.default # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *  This default value is returned for #[], #values_at and #dig when a key is</div><div class='add'>+ *  not found:</div><div class='add'>+ *</div><div class='add'>+ *    counts = {foo: 42}</div><div class='add'>+ *    counts.default # =&gt; nil (default)</div><div class='add'>+ *    counts[:foo] = 42</div><div class='add'>+ *    counts[:bar] # =&gt; nil</div><div class='add'>+ *    counts.default = 0</div><div class='add'>+ *    counts[:bar] # =&gt; 0</div><div class='add'>+ *    counts.values_at(:foo, :bar, :baz) # =&gt; [42, 0, 0]</div><div class='add'>+ *    counts.dig(:bar) # =&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *  Note that the default value is used without being duplicated. It is not advised to set</div><div class='add'>+ *  the default value to a mutable object:</div><div class='add'>+ *</div><div class='add'>+ *    synonyms = Hash.new([])</div><div class='add'>+ *    synonyms[:hello] # =&gt; []</div><div class='add'>+ *    synonyms[:hello] &lt;&lt; :hi # =&gt; [:hi], but this mutates the default!</div><div class='add'>+ *    synonyms.default # =&gt; [:hi]</div><div class='add'>+ *    synonyms[:world] &lt;&lt; :universe</div><div class='add'>+ *    synonyms[:world] # =&gt; [:hi, :universe], oops</div><div class='add'>+ *    synonyms.keys # =&gt; [], oops</div><div class='add'>+ *</div><div class='add'>+ *  To use a mutable object as default, it is recommended to use a default proc</div><div class='add'>+ *</div><div class='add'>+ *  ==== Default \Proc</div><div class='add'>+ *</div><div class='add'>+ *  When the default proc for a \Hash is set (i.e., not +nil+),</div><div class='add'>+ *  the default value returned by method #[] is determined by the default proc alone.</div><div class='add'>+ *</div><div class='add'>+ *  You can retrieve the default proc with method #default_proc:</div><div class='add'>+ *</div><div class='add'>+ *    h = Hash.new</div><div class='add'>+ *    h.default_proc # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  You can set the default proc by calling Hash.new with a block or</div><div class='add'>+ *  calling the method #default_proc=</div><div class='add'>+ *</div><div class='add'>+ *    h = Hash.new { |hash, key| "Default value for #{key}" }</div><div class='add'>+ *    h.default_proc.class # =&gt; Proc</div><div class='add'>+ *    h.default_proc = proc { |hash, key| "Default value for #{key.inspect}" }</div><div class='add'>+ *    h.default_proc.class # =&gt; Proc</div><div class='add'>+ *</div><div class='add'>+ *  When the default proc is set (i.e., not +nil+)</div><div class='add'>+ *  and method #[] is called with with a non-existent key,</div><div class='add'>+ *  #[] calls the default proc with both the \Hash object itself and the missing key,</div><div class='add'>+ *  then returns the proc's return value:</div><div class='add'>+ *</div><div class='add'>+ *    h = Hash.new { |hash, key| "Default value for #{key}" }</div><div class='add'>+ *    h[:nosuch] # =&gt; "Default value for nosuch"</div><div class='add'>+ *</div><div class='add'>+ *  Note that in the example above no entry for key +:nosuch+ is created:</div><div class='add'>+ *</div><div class='add'>+ *    h.include?(:nosuch) # =&gt; false</div><div class='add'>+ *</div><div class='add'>+ *  However, the proc itself can add a new entry:</div><div class='add'>+ *</div><div class='add'>+ *    synonyms = Hash.new { |hash, key| hash[key] = [] }</div><div class='add'>+ *    synonyms.include?(:hello) # =&gt; false</div><div class='add'>+ *    synonyms[:hello] &lt;&lt; :hi # =&gt; [:hi]</div><div class='add'>+ *    synonyms[:world] &lt;&lt; :universe # =&gt; [:universe]</div><div class='add'>+ *    synonyms.keys # =&gt; [:hello, :world]</div><div class='add'>+ *</div><div class='add'>+ *  Note that setting the default proc will clear the default value and vice versa.</div><div class='add'>+ *</div><div class='add'>+ *  === What's Here</div><div class='add'>+ *</div><div class='add'>+ *  First, what's elsewhere. \Class \Hash:</div><div class='add'>+ *</div><div class='add'>+ *  - Inherits from {class Object}[rdoc-ref:Object@What-27s+Here].</div><div class='add'>+ *  - Includes {module Enumerable}[rdoc-ref:Enumerable@What-27s+Here],</div><div class='add'>+ *    which provides dozens of additional methods.</div><div class='add'>+ *</div><div class='add'>+ *  Here, class \Hash provides methods that are useful for:</div><div class='add'>+ *</div><div class='add'>+ *  - {Creating a Hash}[rdoc-ref:Hash@Methods+for+Creating+a+Hash]</div><div class='add'>+ *  - {Setting Hash State}[rdoc-ref:Hash@Methods+for+Setting+Hash+State]</div><div class='add'>+ *  - {Querying}[rdoc-ref:Hash@Methods+for+Querying]</div><div class='add'>+ *  - {Comparing}[rdoc-ref:Hash@Methods+for+Comparing]</div><div class='add'>+ *  - {Fetching}[rdoc-ref:Hash@Methods+for+Fetching]</div><div class='add'>+ *  - {Assigning}[rdoc-ref:Hash@Methods+for+Assigning]</div><div class='add'>+ *  - {Deleting}[rdoc-ref:Hash@Methods+for+Deleting]</div><div class='add'>+ *  - {Iterating}[rdoc-ref:Hash@Methods+for+Iterating]</div><div class='add'>+ *  - {Converting}[rdoc-ref:Hash@Methods+for+Converting]</div><div class='add'>+ *  - {Transforming Keys and Values}[rdoc-ref:Hash@Methods+for+Transforming+Keys+and+Values]</div><div class='add'>+ *  - {And more....}[rdoc-ref:Hash@Other+Methods]</div><div class='add'>+ *</div><div class='add'>+ *  \Class \Hash also includes methods from module Enumerable.</div><div class='add'>+ *</div><div class='add'>+ *  ==== Methods for Creating a \Hash</div><div class='add'>+ *</div><div class='add'>+ *  - ::[]: Returns a new hash populated with given objects.</div><div class='add'>+ *  - ::new: Returns a new empty hash.</div><div class='add'>+ *  - ::try_convert: Returns a new hash created from a given object.</div><div class='add'>+ *</div><div class='add'>+ *  ==== Methods for Setting \Hash State</div><div class='add'>+ *</div><div class='add'>+ *  - #compare_by_identity: Sets +self+ to consider only identity in comparing keys.</div><div class='add'>+ *  - #default=: Sets the default to a given value.</div><div class='add'>+ *  - #default_proc=: Sets the default proc to a given proc.</div><div class='add'>+ *  - #rehash: Rebuilds the hash table by recomputing the hash index for each key.</div><div class='add'>+ *</div><div class='add'>+ *  ==== Methods for Querying</div><div class='add'>+ *</div><div class='add'>+ *  - #any?: Returns whether any element satisfies a given criterion.</div><div class='add'>+ *  - #compare_by_identity?: Returns whether the hash considers only identity when comparing keys.</div><div class='add'>+ *  - #default: Returns the default value, or the default value for a given key.</div><div class='add'>+ *  - #default_proc: Returns the default proc.</div><div class='add'>+ *  - #empty?: Returns whether there are no entries.</div><div class='add'>+ *  - #eql?: Returns whether a given object is equal to +self+.</div><div class='add'>+ *  - #hash: Returns the integer hash code.</div><div class='add'>+ *  - #has_value?: Returns whether a given object is a value in +self+.</div><div class='add'>+ *  - #include?, #has_key?, #member?, #key?: Returns whether a given object is a key in +self+.</div><div class='add'>+ *  - #length, #size: Returns the count of entries.</div><div class='add'>+ *  - #value?: Returns whether a given object is a value in +self+.</div><div class='add'>+ *</div><div class='add'>+ *  ==== Methods for Comparing</div><div class='add'>+ *</div><div class='add'>+ *  - #&lt;: Returns whether +self+ is a proper subset of a given object.</div><div class='add'>+ *  - #&lt;=: Returns whether +self+ is a subset of a given object.</div><div class='add'>+ *  - #==: Returns whether a given object is equal to +self+.</div><div class='add'>+ *  - #&gt;: Returns whether +self+ is a proper superset of a given object</div><div class='add'>+ *  - #&gt;=: Returns whether +self+ is a proper superset of a given object.</div><div class='add'>+ *</div><div class='add'>+ *  ==== Methods for Fetching</div><div class='add'>+ *</div><div class='add'>+ *  - #[]: Returns the value associated with a given key.</div><div class='add'>+ *  - #assoc: Returns a 2-element array containing a given key and its value.</div><div class='add'>+ *  - #dig: Returns the object in nested objects that is specified</div><div class='add'>+ *    by a given key and additional arguments.</div><div class='add'>+ *  - #fetch: Returns the value for a given key.</div><div class='add'>+ *  - #fetch_values: Returns array containing the values associated with given keys.</div><div class='add'>+ *  - #key: Returns the key for the first-found entry with a given value.</div><div class='add'>+ *  - #keys: Returns an array containing all keys in +self+.</div><div class='add'>+ *  - #rassoc: Returns a 2-element array consisting of the key and value</div><div class='add'>+      of the first-found entry having a given value.</div><div class='add'>+ *  - #values: Returns an array containing all values in +self+/</div><div class='add'>+ *  - #values_at: Returns an array containing values for given keys.</div><div class='add'>+ *</div><div class='add'>+ *  ==== Methods for Assigning</div><div class='add'>+ *</div><div class='add'>+ *  - #[]=, #store: Associates a given key with a given value.</div><div class='add'>+ *  - #merge: Returns the hash formed by merging each given hash into a copy of +self+.</div><div class='add'>+ *  - #merge!, #update: Merges each given hash into +self+.</div><div class='add'>+ *  - #replace: Replaces the entire contents of +self+ with the contents of a given hash.</div><div class='add'>+ *</div><div class='add'>+ *  ==== Methods for Deleting</div><div class='add'>+ *</div><div class='add'>+ *  These methods remove entries from +self+:</div><div class='add'>+ *</div><div class='add'>+ *  - #clear: Removes all entries from +self+.</div><div class='add'>+ *  - #compact!: Removes all +nil+-valued entries from +self+.</div><div class='add'>+ *  - #delete: Removes the entry for a given key.</div><div class='add'>+ *  - #delete_if: Removes entries selected by a given block.</div><div class='add'>+ *  - #filter!, #select!: Keep only those entries selected by a given block.</div><div class='add'>+ *  - #keep_if: Keep only those entries selected by a given block.</div><div class='add'>+ *  - #reject!: Removes entries selected by a given block.</div><div class='add'>+ *  - #shift: Removes and returns the first entry.</div><div class='add'>+ *</div><div class='add'>+ *  These methods return a copy of +self+ with some entries removed:</div><div class='add'>+ *</div><div class='add'>+ *  - #compact: Returns a copy of +self+ with all +nil+-valued entries removed.</div><div class='add'>+ *  - #except: Returns a copy of +self+ with entries removed for specified keys.</div><div class='add'>+ *  - #filter, #select: Returns a copy of +self+ with only those entries selected by a given block.</div><div class='add'>+ *  - #reject: Returns a copy of +self+ with entries removed as specified by a given block.</div><div class='add'>+ *  - #slice: Returns a hash containing the entries for given keys.</div><div class='add'>+ *</div><div class='add'>+ *  ==== Methods for Iterating</div><div class='add'>+ *  - #each, #each_pair: Calls a given block with each key-value pair.</div><div class='add'>+ *  - #each_key: Calls a given block with each key.</div><div class='add'>+ *  - #each_value: Calls a given block with each value.</div><div class='add'>+ *</div><div class='add'>+ *  ==== Methods for Converting</div><div class='add'>+ *</div><div class='add'>+ *  - #inspect, #to_s: Returns a new String containing the hash entries.</div><div class='add'>+ *  - #to_a: Returns a new array of 2-element arrays;</div><div class='add'>+ *    each nested array contains a key-value pair from +self+.</div><div class='add'>+ *  - #to_h: Returns +self+ if a \Hash;</div><div class='add'>+ *    if a subclass of \Hash, returns a \Hash containing the entries from +self+.</div><div class='add'>+ *  - #to_hash: Returns +self+.</div><div class='add'>+ *  - #to_proc: Returns a proc that maps a given key to its value.</div><div class='add'>+ *</div><div class='add'>+ *  ==== Methods for Transforming Keys and Values</div><div class='add'>+ *</div><div class='add'>+ *  - #transform_keys: Returns a copy of +self+ with modified keys.</div><div class='add'>+ *  - #transform_keys!: Modifies keys in +self+</div><div class='add'>+ *  - #transform_values: Returns a copy of +self+ with modified values.</div><div class='add'>+ *  - #transform_values!: Modifies values in +self+.</div><div class='add'>+ *</div><div class='add'>+ *  ==== Other Methods</div><div class='add'>+ *  - #flatten: Returns an array that is a 1-dimensional flattening of +self+.</div><div class='add'>+ *  - #invert: Returns a hash with the each key-value pair inverted.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_Hash(void)</div><div class='ctx'> {</div><div class='del'>-#undef rb_intern</div><div class='del'>-#define rb_intern(str) rb_intern_const(str)</div><div class='del'>-</div><div class='del'>-    RUBY_ASSERT(RESERVED_HASH_VAL == st_reserved_hash_val);</div><div class='del'>-    RUBY_ASSERT(RESERVED_HASH_SUBSTITUTION_VAL == st_reserved_hash_substitution_val);</div><div class='del'>-</div><div class='del'>-    id_hash = rb_intern("hash");</div><div class='del'>-    id_yield = rb_intern("yield");</div><div class='del'>-    id_default = rb_intern("default");</div><div class='del'>-    id_flatten_bang = rb_intern("flatten!");</div><div class='add'>+    id_hash = rb_intern_const("hash");</div><div class='add'>+    id_flatten_bang = rb_intern_const("flatten!");</div><div class='add'>+    id_hash_iter_lev = rb_make_internal_id();</div><div class='ctx'> </div><div class='ctx'>     rb_cHash = rb_define_class("Hash", rb_cObject);</div><div class='ctx'> </div><div class='hunk'>@@ -5828,7 +7230,7 @@ Init_Hash(void)</div><div class='ctx'>     rb_define_singleton_method(rb_cHash, "[]", rb_hash_s_create, -1);</div><div class='ctx'>     rb_define_singleton_method(rb_cHash, "try_convert", rb_hash_s_try_convert, 1);</div><div class='ctx'>     rb_define_method(rb_cHash, "initialize", rb_hash_initialize, -1);</div><div class='del'>-    rb_define_method(rb_cHash, "initialize_copy", rb_hash_initialize_copy, 1);</div><div class='add'>+    rb_define_method(rb_cHash, "initialize_copy", rb_hash_replace, 1);</div><div class='ctx'>     rb_define_method(rb_cHash, "rehash", rb_hash_rehash, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cHash, "to_hash", rb_hash_to_hash, 0);</div><div class='hunk'>@@ -5850,7 +7252,6 @@ Init_Hash(void)</div><div class='ctx'>     rb_define_method(rb_cHash, "default_proc", rb_hash_default_proc, 0);</div><div class='ctx'>     rb_define_method(rb_cHash, "default_proc=", rb_hash_set_default_proc, 1);</div><div class='ctx'>     rb_define_method(rb_cHash, "key", rb_hash_key, 1);</div><div class='del'>-    rb_define_method(rb_cHash, "index", rb_hash_index, 1);</div><div class='ctx'>     rb_define_method(rb_cHash, "size", rb_hash_size, 0);</div><div class='ctx'>     rb_define_method(rb_cHash, "length", rb_hash_size, 0);</div><div class='ctx'>     rb_define_method(rb_cHash, "empty?", rb_hash_empty_p, 0);</div><div class='hunk'>@@ -5860,8 +7261,8 @@ Init_Hash(void)</div><div class='ctx'>     rb_define_method(rb_cHash, "each_pair", rb_hash_each_pair, 0);</div><div class='ctx'>     rb_define_method(rb_cHash, "each", rb_hash_each_pair, 0);</div><div class='ctx'> </div><div class='del'>-    rb_define_method(rb_cHash, "transform_keys", rb_hash_transform_keys, 0);</div><div class='del'>-    rb_define_method(rb_cHash, "transform_keys!", rb_hash_transform_keys_bang, 0);</div><div class='add'>+    rb_define_method(rb_cHash, "transform_keys", rb_hash_transform_keys, -1);</div><div class='add'>+    rb_define_method(rb_cHash, "transform_keys!", rb_hash_transform_keys_bang, -1);</div><div class='ctx'>     rb_define_method(rb_cHash, "transform_values", rb_hash_transform_values, 0);</div><div class='ctx'>     rb_define_method(rb_cHash, "transform_values!", rb_hash_transform_values_bang, 0);</div><div class='ctx'> </div><div class='hunk'>@@ -5881,6 +7282,7 @@ Init_Hash(void)</div><div class='ctx'>     rb_define_method(rb_cHash, "reject", rb_hash_reject, 0);</div><div class='ctx'>     rb_define_method(rb_cHash, "reject!", rb_hash_reject_bang, 0);</div><div class='ctx'>     rb_define_method(rb_cHash, "slice", rb_hash_slice, -1);</div><div class='add'>+    rb_define_method(rb_cHash, "except", rb_hash_except, -1);</div><div class='ctx'>     rb_define_method(rb_cHash, "clear", rb_hash_clear, 0);</div><div class='ctx'>     rb_define_method(rb_cHash, "invert", rb_hash_invert, 0);</div><div class='ctx'>     rb_define_method(rb_cHash, "update", rb_hash_update, -1);</div><div class='hunk'>@@ -5911,9 +7313,169 @@ Init_Hash(void)</div><div class='ctx'>     rb_define_method(rb_cHash, "&gt;=", rb_hash_ge, 1);</div><div class='ctx'>     rb_define_method(rb_cHash, "&gt;", rb_hash_gt, 1);</div><div class='ctx'> </div><div class='add'>+    rb_define_method(rb_cHash, "deconstruct_keys", rb_hash_deconstruct_keys, 1);</div><div class='add'>+</div><div class='add'>+    rb_define_singleton_method(rb_cHash, "ruby2_keywords_hash?", rb_hash_s_ruby2_keywords_hash_p, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cHash, "ruby2_keywords_hash", rb_hash_s_ruby2_keywords_hash, 1);</div><div class='add'>+</div><div class='ctx'>     /* Document-class: ENV</div><div class='ctx'>      *</div><div class='ctx'>      * ENV is a hash-like accessor for environment variables.</div><div class='add'>+     *</div><div class='add'>+     * === Interaction with the Operating System</div><div class='add'>+     *</div><div class='add'>+     * The ENV object interacts with the operating system's environment variables:</div><div class='add'>+     *</div><div class='add'>+     * - When you get the value for a name in ENV, the value is retrieved from among the current environment variables.</div><div class='add'>+     * - When you create or set a name-value pair in ENV, the name and value are immediately set in the environment variables.</div><div class='add'>+     * - When you delete a name-value pair in ENV, it is immediately deleted from the environment variables.</div><div class='add'>+     *</div><div class='add'>+     * === Names and Values</div><div class='add'>+     *</div><div class='add'>+     * Generally, a name or value is a String.</div><div class='add'>+     *</div><div class='add'>+     * ==== Valid Names and Values</div><div class='add'>+     *</div><div class='add'>+     * Each name or value must be one of the following:</div><div class='add'>+     *</div><div class='add'>+     * - A String.</div><div class='add'>+     * - An object that responds to \#to_str by returning a String, in which case that String will be used as the name or value.</div><div class='add'>+     *</div><div class='add'>+     * ==== Invalid Names and Values</div><div class='add'>+     *</div><div class='add'>+     * A new name:</div><div class='add'>+     *</div><div class='add'>+     * - May not be the empty string:</div><div class='add'>+     *     ENV[''] = '0'</div><div class='add'>+     *     # Raises Errno::EINVAL (Invalid argument - ruby_setenv())</div><div class='add'>+     *</div><div class='add'>+     * - May not contain character &lt;code&gt;"="&lt;/code&gt;:</div><div class='add'>+     *     ENV['='] = '0'</div><div class='add'>+     *     # Raises Errno::EINVAL (Invalid argument - ruby_setenv(=))</div><div class='add'>+     *</div><div class='add'>+     * A new name or value:</div><div class='add'>+     *</div><div class='add'>+     * - May not be a non-String that does not respond to \#to_str:</div><div class='add'>+     *</div><div class='add'>+     *     ENV['foo'] = Object.new</div><div class='add'>+     *     # Raises TypeError (no implicit conversion of Object into String)</div><div class='add'>+     *     ENV[Object.new] = '0'</div><div class='add'>+     *     # Raises TypeError (no implicit conversion of Object into String)</div><div class='add'>+     *</div><div class='add'>+     * - May not contain the NUL character &lt;code&gt;"\0"&lt;/code&gt;:</div><div class='add'>+     *</div><div class='add'>+     *     ENV['foo'] = "\0"</div><div class='add'>+     *     # Raises ArgumentError (bad environment variable value: contains null byte)</div><div class='add'>+     *     ENV["\0"] == '0'</div><div class='add'>+     *     # Raises ArgumentError (bad environment variable name: contains null byte)</div><div class='add'>+     *</div><div class='add'>+     * - May not have an ASCII-incompatible encoding such as UTF-16LE or ISO-2022-JP:</div><div class='add'>+     *</div><div class='add'>+     *     ENV['foo'] = '0'.force_encoding(Encoding::ISO_2022_JP)</div><div class='add'>+     *     # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: ISO-2022-JP)</div><div class='add'>+     *     ENV["foo".force_encoding(Encoding::ISO_2022_JP)] = '0'</div><div class='add'>+     *     # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: ISO-2022-JP)</div><div class='add'>+     *</div><div class='add'>+     * === About Ordering</div><div class='add'>+     *</div><div class='add'>+     * ENV enumerates its name/value pairs in the order found</div><div class='add'>+     * in the operating system's environment variables.</div><div class='add'>+     * Therefore the ordering of ENV content is OS-dependent, and may be indeterminate.</div><div class='add'>+     *</div><div class='add'>+     * This will be seen in:</div><div class='add'>+     * - A Hash returned by an ENV method.</div><div class='add'>+     * - An Enumerator returned by an ENV method.</div><div class='add'>+     * - An Array returned by ENV.keys, ENV.values, or ENV.to_a.</div><div class='add'>+     * - The String returned by ENV.inspect.</div><div class='add'>+     * - The Array returned by ENV.shift.</div><div class='add'>+     * - The name returned by ENV.key.</div><div class='add'>+     *</div><div class='add'>+     * === About the Examples</div><div class='add'>+     * Some methods in ENV return ENV itself. Typically, there are many environment variables.</div><div class='add'>+     * It's not useful to display a large ENV in the examples here,</div><div class='add'>+     * so most example snippets begin by resetting the contents of ENV:</div><div class='add'>+     * - ENV.replace replaces ENV with a new collection of entries.</div><div class='add'>+     * - ENV.clear empties ENV.</div><div class='add'>+     *</div><div class='add'>+     * == What's Here</div><div class='add'>+     *</div><div class='add'>+     * First, what's elsewhere. \Class \ENV:</div><div class='add'>+     *</div><div class='add'>+     * - Inherits from {class Object}[rdoc-ref:Object@What-27s+Here].</div><div class='add'>+     * - Extends {module Enumerable}[rdoc-ref:Enumerable@What-27s+Here],</div><div class='add'>+     *</div><div class='add'>+     * Here, class \ENV provides methods that are useful for:</div><div class='add'>+     *</div><div class='add'>+     * - {Querying}[rdoc-ref:ENV@Methods+for+Querying]</div><div class='add'>+     * - {Assigning}[rdoc-ref:ENV@Methods+for+Assigning]</div><div class='add'>+     * - {Deleting}[rdoc-ref:ENV@Methods+for+Deleting]</div><div class='add'>+     * - {Iterating}[rdoc-ref:ENV@Methods+for+Iterating]</div><div class='add'>+     * - {Converting}[rdoc-ref:ENV@Methods+for+Converting]</div><div class='add'>+     * - {And more ....}[rdoc-ref:ENV@More+Methods]</div><div class='add'>+     *</div><div class='add'>+     * === Methods for Querying</div><div class='add'>+     *</div><div class='add'>+     * - ::[]: Returns the value for the given environment variable name if it exists:</div><div class='add'>+     * - ::empty?: Returns whether \ENV is empty.</div><div class='add'>+     * - ::has_value?, ::value?: Returns whether the given value is in \ENV.</div><div class='add'>+     * - ::include?, ::has_key?, ::key?, ::member?: Returns whether the given name</div><div class='add'>+         is in \ENV.</div><div class='add'>+     * - ::key: Returns the name of the first entry with the given value.</div><div class='add'>+     * - ::size, ::length: Returns the number of entries.</div><div class='add'>+     * - ::value?: Returns whether any entry has the given value.</div><div class='add'>+     *</div><div class='add'>+     * === Methods for Assigning</div><div class='add'>+     *</div><div class='add'>+     * - ::[]=, ::store: Creates, updates, or deletes the named environment variable.</div><div class='add'>+     * - ::clear: Removes every environment variable; returns \ENV:</div><div class='add'>+     * - ::update, ::merge!: Adds to \ENV each key/value pair in the given hash.</div><div class='add'>+     * - ::replace: Replaces the entire content of the \ENV</div><div class='add'>+     *   with the name/value pairs in the given hash.</div><div class='add'>+     *</div><div class='add'>+     * === Methods for Deleting</div><div class='add'>+     *</div><div class='add'>+     * - ::delete: Deletes the named environment variable name if it exists.</div><div class='add'>+     * - ::delete_if: Deletes entries selected by the block.</div><div class='add'>+     * - ::keep_if: Deletes entries not selected by the block.</div><div class='add'>+     * - ::reject!: Similar to #delete_if, but returns +nil+ if no change was made.</div><div class='add'>+     * - ::select!, ::filter!: Deletes entries selected by the block.</div><div class='add'>+     * - ::shift: Removes and returns the first entry.</div><div class='add'>+     *</div><div class='add'>+     * === Methods for Iterating</div><div class='add'>+     *</div><div class='add'>+     * - ::each, ::each_pair: Calls the block with each name/value pair.</div><div class='add'>+     * - ::each_key: Calls the block with each name.</div><div class='add'>+     * - ::each_value: Calls the block with each value.</div><div class='add'>+     *</div><div class='add'>+     * === Methods for Converting</div><div class='add'>+     *</div><div class='add'>+     * - ::assoc: Returns a 2-element array containing the name and value</div><div class='add'>+     *   of the named environment variable if it exists:</div><div class='add'>+     * - ::clone: Returns \ENV (and issues a warning).</div><div class='add'>+     * - ::except: Returns a hash of all name/value pairs except those given.</div><div class='add'>+     * - ::fetch: Returns the value for the given name.</div><div class='add'>+     * - ::inspect: Returns the contents of \ENV as a string.</div><div class='add'>+     * - ::invert: Returns a hash whose keys are the ENV values,</div><div class='add'>+         and whose values are the corresponding ENV names.</div><div class='add'>+     * - ::keys: Returns an array of all names.</div><div class='add'>+     * - ::rassoc: Returns the name and value of the first found entry</div><div class='add'>+     *   that has the given value.</div><div class='add'>+     * - ::reject: Returns a hash of those entries not rejected by the block.</div><div class='add'>+     * - ::select, ::filter: Returns a hash of name/value pairs selected by the block.</div><div class='add'>+     * - ::slice: Returns a hash of the given names and their corresponding values.</div><div class='add'>+     * - ::to_a: Returns the entries as an array of 2-element Arrays.</div><div class='add'>+     * - ::to_h: Returns a hash of entries selected by the block.</div><div class='add'>+     * - ::to_hash: Returns a hash of all entries.</div><div class='add'>+     * - ::to_s: Returns the string &lt;tt&gt;'ENV'&lt;/tt&gt;.</div><div class='add'>+     * - ::values: Returns all values as an array.</div><div class='add'>+     * - ::values_at: Returns an array of the values for the given name.</div><div class='add'>+     *</div><div class='add'>+     * === More Methods</div><div class='add'>+     *</div><div class='add'>+     * - ::dup: Raises an exception.</div><div class='add'>+     * - ::freeze: Raises an exception.</div><div class='add'>+     * - ::rehash: Returns +nil+, without modifying \ENV.</div><div class='add'>+     *</div><div class='ctx'>      */</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='hunk'>@@ -5921,13 +7483,15 @@ Init_Hash(void)</div><div class='ctx'>      * envtbl = rb_define_class("ENV", rb_cObject);</div><div class='ctx'>      */</div><div class='ctx'>     origenviron = environ;</div><div class='del'>-    envtbl = rb_obj_alloc(rb_cObject);</div><div class='add'>+    envtbl = TypedData_Wrap_Struct(rb_cObject, &amp;env_data_type, NULL);</div><div class='ctx'>     rb_extend_object(envtbl, rb_mEnumerable);</div><div class='add'>+    FL_SET_RAW(envtbl, RUBY_FL_SHAREABLE);</div><div class='add'>+</div><div class='ctx'> </div><div class='ctx'>     rb_define_singleton_method(envtbl, "[]", rb_f_getenv, 1);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "fetch", env_fetch, -1);</div><div class='del'>-    rb_define_singleton_method(envtbl, "[]=", env_aset, 2);</div><div class='del'>-    rb_define_singleton_method(envtbl, "store", env_aset, 2);</div><div class='add'>+    rb_define_singleton_method(envtbl, "[]=", env_aset_m, 2);</div><div class='add'>+    rb_define_singleton_method(envtbl, "store", env_aset_m, 2);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "each", env_each_pair, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "each_pair", env_each_pair, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "each_key", env_each_key, 0);</div><div class='hunk'>@@ -5936,7 +7500,8 @@ Init_Hash(void)</div><div class='ctx'>     rb_define_singleton_method(envtbl, "delete_if", env_delete_if, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "keep_if", env_keep_if, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "slice", env_slice, -1);</div><div class='del'>-    rb_define_singleton_method(envtbl, "clear", rb_env_clear, 0);</div><div class='add'>+    rb_define_singleton_method(envtbl, "except", env_except, -1);</div><div class='add'>+    rb_define_singleton_method(envtbl, "clear", env_clear, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "reject", env_reject, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "reject!", env_reject_bang, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "select", env_select, 0);</div><div class='hunk'>@@ -5944,20 +7509,21 @@ Init_Hash(void)</div><div class='ctx'>     rb_define_singleton_method(envtbl, "filter", env_select, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "filter!", env_select_bang, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "shift", env_shift, 0);</div><div class='add'>+    rb_define_singleton_method(envtbl, "freeze", env_freeze, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "invert", env_invert, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "replace", env_replace, 1);</div><div class='del'>-    rb_define_singleton_method(envtbl, "update", env_update, 1);</div><div class='add'>+    rb_define_singleton_method(envtbl, "update", env_update, -1);</div><div class='add'>+    rb_define_singleton_method(envtbl, "merge!", env_update, -1);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "inspect", env_inspect, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "rehash", env_none, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "to_a", env_to_a, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "to_s", env_to_s, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "key", env_key, 1);</div><div class='del'>-    rb_define_singleton_method(envtbl, "index", env_index, 1);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "size", env_size, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "length", env_size, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "empty?", env_empty_p, 0);</div><div class='del'>-    rb_define_singleton_method(envtbl, "keys", env_keys, 0);</div><div class='del'>-    rb_define_singleton_method(envtbl, "values", env_values, 0);</div><div class='add'>+    rb_define_singleton_method(envtbl, "keys", env_f_keys, 0);</div><div class='add'>+    rb_define_singleton_method(envtbl, "values", env_f_values, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "values_at", env_values_at, -1);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "include?", env_has_key, 1);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "member?", env_has_key, 1);</div><div class='hunk'>@@ -5965,10 +7531,18 @@ Init_Hash(void)</div><div class='ctx'>     rb_define_singleton_method(envtbl, "has_value?", env_has_value, 1);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "key?", env_has_key, 1);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "value?", env_has_value, 1);</div><div class='del'>-    rb_define_singleton_method(envtbl, "to_hash", env_to_hash, 0);</div><div class='add'>+    rb_define_singleton_method(envtbl, "to_hash", env_f_to_hash, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "to_h", env_to_h, 0);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "assoc", env_assoc, 1);</div><div class='ctx'>     rb_define_singleton_method(envtbl, "rassoc", env_rassoc, 1);</div><div class='add'>+    rb_define_singleton_method(envtbl, "clone", env_clone, -1);</div><div class='add'>+    rb_define_singleton_method(envtbl, "dup", env_dup, 0);</div><div class='add'>+</div><div class='add'>+    VALUE envtbl_class = rb_singleton_class(envtbl);</div><div class='add'>+    rb_undef_method(envtbl_class, "initialize");</div><div class='add'>+    rb_undef_method(envtbl_class, "initialize_clone");</div><div class='add'>+    rb_undef_method(envtbl_class, "initialize_copy");</div><div class='add'>+    rb_undef_method(envtbl_class, "initialize_dup");</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * ENV is a Hash-like accessor for environment variables.</div><div class='hunk'>@@ -5979,4 +7553,6 @@ Init_Hash(void)</div><div class='ctx'> </div><div class='ctx'>     /* for callcc */</div><div class='ctx'>     ruby_register_rollback_func_for_ensure(hash_foreach_ensure, hash_foreach_ensure_rollback);</div><div class='add'>+</div><div class='add'>+    HASH_ASSERT(sizeof(ar_hint_t) * RHASH_AR_TABLE_MAX_SIZE == sizeof(VALUE));</div><div class='ctx'> }</div><div class='head'>diff --git a/hrtime.h b/hrtime.h<br/>index f133bdb1ac..7ed4e6b04c 100644<br/>--- a/<a href='/ruby.git/tree/hrtime.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>hrtime.h</a><br/>+++ b/<a href='/ruby.git/tree/hrtime.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>hrtime.h</a></div><div class='hunk'>@@ -36,6 +36,7 @@</div><div class='ctx'> #define RB_HRTIME_PER_MSEC (RB_HRTIME_PER_USEC * (rb_hrtime_t)1000)</div><div class='ctx'> #define RB_HRTIME_PER_SEC  (RB_HRTIME_PER_MSEC * (rb_hrtime_t)1000)</div><div class='ctx'> #define RB_HRTIME_MAX      UINT64_MAX</div><div class='add'>+#define RB_HRTIME_MIN      ((rb_hrtime_t)0)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Lets try to support time travelers.  Lets assume anybody with a time machine</div><div class='hunk'>@@ -91,6 +92,15 @@ rb_hrtime_add(rb_hrtime_t a, rb_hrtime_t b)</div><div class='ctx'>     return c;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static inline rb_hrtime_t</div><div class='add'>+rb_hrtime_sub(rb_hrtime_t a, rb_hrtime_t b)</div><div class='add'>+{</div><div class='add'>+    if (a &lt; b) {</div><div class='add'>+        return RB_HRTIME_MIN;</div><div class='add'>+    }</div><div class='add'>+    return a - b;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * convert a timeval struct to rb_hrtime_t, clamping at RB_HRTIME_MAX</div><div class='ctx'>  */</div><div class='hunk'>@@ -165,4 +175,53 @@ rb_hrtime2timeval(struct timeval *tv, const rb_hrtime_t *hrt)</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='add'>+</div><div class='add'>+#include "internal/warnings.h"</div><div class='add'>+#include "internal/time.h"</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Back when we used "struct timeval", not all platforms implemented</div><div class='add'>+ * tv_sec as time_t.  Nowadays we use "struct timespec" and tv_sec</div><div class='add'>+ * seems to be implemented more consistently across platforms.</div><div class='add'>+ * At least other parts of our code hasn't had to deal with non-time_t</div><div class='add'>+ * tv_sec in timespec...</div><div class='add'>+ */</div><div class='add'>+#define TIMESPEC_SEC_MAX TIMET_MAX</div><div class='add'>+#define TIMESPEC_SEC_MIN TIMET_MIN</div><div class='add'>+</div><div class='add'>+COMPILER_WARNING_PUSH</div><div class='add'>+#if __has_warning("-Wimplicit-int-float-conversion")</div><div class='add'>+COMPILER_WARNING_IGNORED(-Wimplicit-int-float-conversion)</div><div class='add'>+#elif defined(_MSC_VER)</div><div class='add'>+/* C4305: 'initializing': truncation from '__int64' to 'const double' */</div><div class='add'>+COMPILER_WARNING_IGNORED(4305)</div><div class='add'>+#endif</div><div class='add'>+static const double TIMESPEC_SEC_MAX_as_double = TIMESPEC_SEC_MAX;</div><div class='add'>+COMPILER_WARNING_POP</div><div class='add'>+</div><div class='add'>+static inline rb_hrtime_t *</div><div class='add'>+double2hrtime(rb_hrtime_t *hrt, double d)</div><div class='add'>+{</div><div class='add'>+    /* assume timespec.tv_sec has same signedness as time_t */</div><div class='add'>+    const double TIMESPEC_SEC_MAX_PLUS_ONE = 2.0 * (TIMESPEC_SEC_MAX_as_double / 2.0 + 1.0);</div><div class='add'>+</div><div class='add'>+    if (TIMESPEC_SEC_MAX_PLUS_ONE &lt;= d) {</div><div class='add'>+        *hrt = RB_HRTIME_MAX;</div><div class='add'>+        return NULL;</div><div class='add'>+    }</div><div class='add'>+    else if (d &lt;= 0) {</div><div class='add'>+        *hrt = 0;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        *hrt = (rb_hrtime_t)(d * (double)RB_HRTIME_PER_SEC);</div><div class='add'>+    }</div><div class='add'>+    return hrt;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline double</div><div class='add'>+hrtime2double(rb_hrtime_t hrt)</div><div class='add'>+{</div><div class='add'>+    return (double)hrt / (double)RB_HRTIME_PER_SEC;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #endif /* RB_HRTIME_H */</div><div class='head'>diff --git a/ia64.S b/ia64.S<br/>deleted file mode 100644<br/>index 1087105585..0000000000<br/>--- a/<a href='/ruby.git/tree/ia64.S?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>ia64.S</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,42 +0,0 @@</div><div class='del'>-// rb_ia64_flushrs and rb_ia64_bsp is written in IA64 assembly language</div><div class='del'>-// because Intel Compiler for IA64 doesn't support inline assembly.</div><div class='del'>-//</div><div class='del'>-// This file is based on following C program compiled by gcc.</div><div class='del'>-//</div><div class='del'>-//   void rb_ia64_flushrs(void) { __builtin_ia64_flushrs(); }</div><div class='del'>-//   void *rb_ia64_bsp(void) { return __builtin_ia64_bsp(); }</div><div class='del'>-//</div><div class='del'>-// Note that rb_ia64_flushrs and rb_ia64_bsp works in its own stack frame.</div><div class='del'>-// It's because BSP is updated by br.call/brl.call (not alloc instruction).</div><div class='del'>-// So rb_ia64_flushrs flushes stack frames including caller's one.</div><div class='del'>-// rb_ia64_bsp returns the address next to caller's register stack frame.</div><div class='del'>-//</div><div class='del'>-// See also</div><div class='del'>-// Intel Itanium Architecture Software Developer's Manual</div><div class='del'>-// Volume 2: System Architecture.</div><div class='del'>-//</div><div class='del'>-	.file	"ia64.c"</div><div class='del'>-	.text</div><div class='del'>-	.align 16</div><div class='del'>-	.global rb_ia64_flushrs#</div><div class='del'>-	.proc rb_ia64_flushrs#</div><div class='del'>-rb_ia64_flushrs:</div><div class='del'>-	.prologue</div><div class='del'>-	.body</div><div class='del'>-	flushrs</div><div class='del'>-	;;</div><div class='del'>-	nop.i 0</div><div class='del'>-	br.ret.sptk.many b0</div><div class='del'>-	.endp rb_ia64_flushrs#</div><div class='del'>-	.align 16</div><div class='del'>-	.global rb_ia64_bsp#</div><div class='del'>-	.proc rb_ia64_bsp#</div><div class='del'>-rb_ia64_bsp:</div><div class='del'>-	.prologue</div><div class='del'>-	.body</div><div class='del'>-	nop.m 0</div><div class='del'>-	;;</div><div class='del'>-	mov r8 = ar.bsp</div><div class='del'>-	br.ret.sptk.many b0</div><div class='del'>-	.endp rb_ia64_bsp#</div><div class='del'>-	.ident	"GCC: (GNU) 3.3.5 (Debian 1:3.3.5-13)"</div><div class='head'>diff --git a/id_table.c b/id_table.c<br/>index 74c9e756a0..a9a041b955 100644<br/>--- a/<a href='/ruby.git/tree/id_table.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>id_table.c</a><br/>+++ b/<a href='/ruby.git/tree/id_table.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>id_table.c</a></div><div class='hunk'>@@ -7,6 +7,7 @@</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if ID_TABLE_DEBUG == 0</div><div class='add'>+#undef NDEBUG</div><div class='ctx'> #define NDEBUG</div><div class='ctx'> #endif</div><div class='ctx'> #include "ruby_assert.h"</div><div class='hunk'>@@ -84,14 +85,14 @@ rb_id_table_init(struct rb_id_table *tbl, int capa)</div><div class='ctx'> {</div><div class='ctx'>     MEMZERO(tbl, struct rb_id_table, 1);</div><div class='ctx'>     if (capa &gt; 0) {</div><div class='del'>-	capa = round_capa(capa);</div><div class='del'>-	tbl-&gt;capa = (int)capa;</div><div class='del'>-	tbl-&gt;items = ZALLOC_N(item_t, capa);</div><div class='add'>+        capa = round_capa(capa);</div><div class='add'>+        tbl-&gt;capa = (int)capa;</div><div class='add'>+        tbl-&gt;items = ZALLOC_N(item_t, capa);</div><div class='ctx'>     }</div><div class='ctx'>     return tbl;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-struct rb_id_table *</div><div class='add'>+MJIT_FUNC_EXPORTED struct rb_id_table *</div><div class='ctx'> rb_id_table_create(size_t capa)</div><div class='ctx'> {</div><div class='ctx'>     struct rb_id_table *tbl = ALLOC(struct rb_id_table);</div><div class='hunk'>@@ -129,16 +130,16 @@ static int</div><div class='ctx'> hash_table_index(struct rb_id_table* tbl, id_key_t key)</div><div class='ctx'> {</div><div class='ctx'>     if (tbl-&gt;capa &gt; 0) {</div><div class='del'>-	int mask = tbl-&gt;capa - 1;</div><div class='del'>-	int ix = key &amp; mask;</div><div class='del'>-	int d = 1;</div><div class='del'>-	while (key != ITEM_GET_KEY(tbl, ix)) {</div><div class='del'>-	    if (!ITEM_COLLIDED(tbl, ix))</div><div class='del'>-		return -1;</div><div class='del'>-	    ix = (ix + d) &amp; mask;</div><div class='del'>-	    d++;</div><div class='del'>-	}</div><div class='del'>-	return ix;</div><div class='add'>+        int mask = tbl-&gt;capa - 1;</div><div class='add'>+        int ix = key &amp; mask;</div><div class='add'>+        int d = 1;</div><div class='add'>+        while (key != ITEM_GET_KEY(tbl, ix)) {</div><div class='add'>+            if (!ITEM_COLLIDED(tbl, ix))</div><div class='add'>+                return -1;</div><div class='add'>+            ix = (ix + d) &amp; mask;</div><div class='add'>+            d++;</div><div class='add'>+        }</div><div class='add'>+        return ix;</div><div class='ctx'>     }</div><div class='ctx'>     return -1;</div><div class='ctx'> }</div><div class='hunk'>@@ -151,13 +152,13 @@ hash_table_raw_insert(struct rb_id_table *tbl, id_key_t key, VALUE val)</div><div class='ctx'>     int d = 1;</div><div class='ctx'>     assert(key != 0);</div><div class='ctx'>     while (ITEM_KEY_ISSET(tbl, ix)) {</div><div class='del'>-	ITEM_SET_COLLIDED(tbl, ix);</div><div class='del'>-	ix = (ix + d) &amp; mask;</div><div class='del'>-	d++;</div><div class='add'>+        ITEM_SET_COLLIDED(tbl, ix);</div><div class='add'>+        ix = (ix + d) &amp; mask;</div><div class='add'>+        d++;</div><div class='ctx'>     }</div><div class='ctx'>     tbl-&gt;num++;</div><div class='ctx'>     if (!ITEM_COLLIDED(tbl, ix)) {</div><div class='del'>-	tbl-&gt;used++;</div><div class='add'>+        tbl-&gt;used++;</div><div class='ctx'>     }</div><div class='ctx'>     ITEM_SET_KEY(tbl, ix, key);</div><div class='ctx'>     tbl-&gt;items[ix].val = val;</div><div class='hunk'>@@ -167,16 +168,16 @@ static int</div><div class='ctx'> hash_delete_index(struct rb_id_table *tbl, int ix)</div><div class='ctx'> {</div><div class='ctx'>     if (ix &gt;= 0) {</div><div class='del'>-	if (!ITEM_COLLIDED(tbl, ix)) {</div><div class='del'>-	    tbl-&gt;used--;</div><div class='del'>-	}</div><div class='del'>-	tbl-&gt;num--;</div><div class='del'>-	ITEM_SET_KEY(tbl, ix, 0);</div><div class='del'>-	tbl-&gt;items[ix].val = 0;</div><div class='del'>-	return TRUE;</div><div class='add'>+        if (!ITEM_COLLIDED(tbl, ix)) {</div><div class='add'>+            tbl-&gt;used--;</div><div class='add'>+        }</div><div class='add'>+        tbl-&gt;num--;</div><div class='add'>+        ITEM_SET_KEY(tbl, ix, 0);</div><div class='add'>+        tbl-&gt;items[ix].val = 0;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -184,24 +185,24 @@ static void</div><div class='ctx'> hash_table_extend(struct rb_id_table* tbl)</div><div class='ctx'> {</div><div class='ctx'>     if (tbl-&gt;used + (tbl-&gt;used &gt;&gt; 1) &gt;= tbl-&gt;capa) {</div><div class='del'>-	int new_cap = round_capa(tbl-&gt;num + (tbl-&gt;num &gt;&gt; 1));</div><div class='del'>-	int i;</div><div class='del'>-	item_t* old;</div><div class='del'>-	struct rb_id_table tmp_tbl = {0, 0, 0};</div><div class='del'>-	if (new_cap &lt; tbl-&gt;capa) {</div><div class='del'>-	    new_cap = round_capa(tbl-&gt;used + (tbl-&gt;used &gt;&gt; 1));</div><div class='del'>-	}</div><div class='del'>-	tmp_tbl.capa = new_cap;</div><div class='del'>-	tmp_tbl.items = ZALLOC_N(item_t, new_cap);</div><div class='del'>-	for (i = 0; i &lt; tbl-&gt;capa; i++) {</div><div class='del'>-	    id_key_t key = ITEM_GET_KEY(tbl, i);</div><div class='del'>-	    if (key != 0) {</div><div class='del'>-		hash_table_raw_insert(&amp;tmp_tbl, key, tbl-&gt;items[i].val);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	old = tbl-&gt;items;</div><div class='del'>-	*tbl = tmp_tbl;</div><div class='del'>-	xfree(old);</div><div class='add'>+        int new_cap = round_capa(tbl-&gt;num + (tbl-&gt;num &gt;&gt; 1));</div><div class='add'>+        int i;</div><div class='add'>+        item_t* old;</div><div class='add'>+        struct rb_id_table tmp_tbl = {0, 0, 0};</div><div class='add'>+        if (new_cap &lt; tbl-&gt;capa) {</div><div class='add'>+            new_cap = round_capa(tbl-&gt;used + (tbl-&gt;used &gt;&gt; 1));</div><div class='add'>+        }</div><div class='add'>+        tmp_tbl.capa = new_cap;</div><div class='add'>+        tmp_tbl.items = ZALLOC_N(item_t, new_cap);</div><div class='add'>+        for (i = 0; i &lt; tbl-&gt;capa; i++) {</div><div class='add'>+            id_key_t key = ITEM_GET_KEY(tbl, i);</div><div class='add'>+            if (key != 0) {</div><div class='add'>+                hash_table_raw_insert(&amp;tmp_tbl, key, tbl-&gt;items[i].val);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        old = tbl-&gt;items;</div><div class='add'>+        *tbl = tmp_tbl;</div><div class='add'>+        xfree(old);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -215,25 +216,25 @@ hash_table_show(struct rb_id_table *tbl)</div><div class='ctx'> </div><div class='ctx'>     fprintf(stderr, "tbl: %p (capa: %d, num: %d, used: %d)\n", tbl, tbl-&gt;capa, tbl-&gt;num, tbl-&gt;used);</div><div class='ctx'>     for (i=0; i&lt;capa; i++) {</div><div class='del'>-	if (ITEM_KEY_ISSET(tbl, i)) {</div><div class='del'>-	    fprintf(stderr, " -&gt; [%d] %s %d\n", i, rb_id2name(key2id(keys[i])), (int)keys[i]);</div><div class='del'>-	}</div><div class='add'>+        if (ITEM_KEY_ISSET(tbl, i)) {</div><div class='add'>+            fprintf(stderr, " -&gt; [%d] %s %d\n", i, rb_id2name(key2id(keys[i])), (int)keys[i]);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-int</div><div class='add'>+MJIT_FUNC_EXPORTED int</div><div class='ctx'> rb_id_table_lookup(struct rb_id_table *tbl, ID id, VALUE *valp)</div><div class='ctx'> {</div><div class='ctx'>     id_key_t key = id2key(id);</div><div class='ctx'>     int index = hash_table_index(tbl, key);</div><div class='ctx'> </div><div class='ctx'>     if (index &gt;= 0) {</div><div class='del'>-	*valp = tbl-&gt;items[index].val;</div><div class='del'>-	return TRUE;</div><div class='add'>+        *valp = tbl-&gt;items[index].val;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -243,16 +244,16 @@ rb_id_table_insert_key(struct rb_id_table *tbl, const id_key_t key, const VALUE</div><div class='ctx'>     const int index = hash_table_index(tbl, key);</div><div class='ctx'> </div><div class='ctx'>     if (index &gt;= 0) {</div><div class='del'>-	tbl-&gt;items[index].val = val;</div><div class='add'>+        tbl-&gt;items[index].val = val;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	hash_table_extend(tbl);</div><div class='del'>-	hash_table_raw_insert(tbl, key, val);</div><div class='add'>+        hash_table_extend(tbl);</div><div class='add'>+        hash_table_raw_insert(tbl, key, val);</div><div class='ctx'>     }</div><div class='ctx'>     return TRUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-int</div><div class='add'>+MJIT_FUNC_EXPORTED int</div><div class='ctx'> rb_id_table_insert(struct rb_id_table *tbl, ID id, VALUE val)</div><div class='ctx'> {</div><div class='ctx'>     return rb_id_table_insert_key(tbl, id2key(id), val);</div><div class='hunk'>@@ -272,16 +273,16 @@ rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, v</div><div class='ctx'>     int i, capa = tbl-&gt;capa;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;capa; i++) {</div><div class='del'>-	if (ITEM_KEY_ISSET(tbl, i)) {</div><div class='del'>-	    const id_key_t key = ITEM_GET_KEY(tbl, i);</div><div class='del'>-	    enum rb_id_table_iterator_result ret = (*func)(key2id(key), tbl-&gt;items[i].val, data);</div><div class='del'>-	    assert(key != 0);</div><div class='del'>-</div><div class='del'>-	    if (ret == ID_TABLE_DELETE)</div><div class='del'>-		hash_delete_index(tbl, i);</div><div class='del'>-	    else if (ret == ID_TABLE_STOP)</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='add'>+        if (ITEM_KEY_ISSET(tbl, i)) {</div><div class='add'>+            const id_key_t key = ITEM_GET_KEY(tbl, i);</div><div class='add'>+            enum rb_id_table_iterator_result ret = (*func)(key2id(key), tbl-&gt;items[i].val, data);</div><div class='add'>+            assert(key != 0);</div><div class='add'>+</div><div class='add'>+            if (ret == ID_TABLE_DELETE)</div><div class='add'>+                hash_delete_index(tbl, i);</div><div class='add'>+            else if (ret == ID_TABLE_STOP)</div><div class='add'>+                return;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -291,13 +292,35 @@ rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_f</div><div class='ctx'>     int i, capa = tbl-&gt;capa;</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;capa; i++) {</div><div class='del'>-	if (ITEM_KEY_ISSET(tbl, i)) {</div><div class='del'>-	    enum rb_id_table_iterator_result ret = (*func)(tbl-&gt;items[i].val, data);</div><div class='del'>-</div><div class='del'>-	    if (ret == ID_TABLE_DELETE)</div><div class='del'>-		hash_delete_index(tbl, i);</div><div class='del'>-	    else if (ret == ID_TABLE_STOP)</div><div class='del'>-		return;</div><div class='del'>-	}</div><div class='add'>+        if (ITEM_KEY_ISSET(tbl, i)) {</div><div class='add'>+            enum rb_id_table_iterator_result ret = (*func)(tbl-&gt;items[i].val, data);</div><div class='add'>+</div><div class='add'>+            if (ret == ID_TABLE_DELETE)</div><div class='add'>+                hash_delete_index(tbl, i);</div><div class='add'>+            else if (ret == ID_TABLE_STOP)</div><div class='add'>+                return;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_id_table_foreach_values_with_replace(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, rb_id_table_update_value_callback_func_t *replace, void *data)</div><div class='add'>+{</div><div class='add'>+    int i, capa = tbl-&gt;capa;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; capa; i++) {</div><div class='add'>+        if (ITEM_KEY_ISSET(tbl, i)) {</div><div class='add'>+            enum rb_id_table_iterator_result ret = (*func)(tbl-&gt;items[i].val, data);</div><div class='add'>+</div><div class='add'>+            if (ret == ID_TABLE_REPLACE) {</div><div class='add'>+                VALUE val = tbl-&gt;items[i].val;</div><div class='add'>+                ret = (*replace)(&amp;val, data, TRUE);</div><div class='add'>+                tbl-&gt;items[i].val = val;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (ret == ID_TABLE_STOP)</div><div class='add'>+                return;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='add'>+</div><div class='head'>diff --git a/id_table.h b/id_table.h<br/>index b10b4ac164..f72e2d1d92 100644<br/>--- a/<a href='/ruby.git/tree/id_table.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>id_table.h</a><br/>+++ b/<a href='/ruby.git/tree/id_table.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>id_table.h</a></div><div class='hunk'>@@ -1,5 +1,7 @@</div><div class='ctx'> #ifndef RUBY_ID_TABLE_H</div><div class='ctx'> #define RUBY_ID_TABLE_H 1</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='ctx'> #include "ruby/ruby.h"</div><div class='ctx'> </div><div class='ctx'> struct rb_id_table;</div><div class='hunk'>@@ -9,6 +11,7 @@ enum rb_id_table_iterator_result {</div><div class='ctx'>     ID_TABLE_CONTINUE = ST_CONTINUE,</div><div class='ctx'>     ID_TABLE_STOP     = ST_STOP,</div><div class='ctx'>     ID_TABLE_DELETE   = ST_DELETE,</div><div class='add'>+    ID_TABLE_REPLACE  = ST_REPLACE,</div><div class='ctx'>     ID_TABLE_ITERATOR_RESULT_END</div><div class='ctx'> };</div><div class='ctx'> </div><div class='hunk'>@@ -16,16 +19,21 @@ struct rb_id_table *rb_id_table_create(size_t size);</div><div class='ctx'> void rb_id_table_free(struct rb_id_table *tbl);</div><div class='ctx'> void rb_id_table_clear(struct rb_id_table *tbl);</div><div class='ctx'> </div><div class='del'>-size_t rb_id_table_size(const struct rb_id_table *tbl);</div><div class='ctx'> size_t rb_id_table_memsize(const struct rb_id_table *tbl);</div><div class='ctx'> </div><div class='ctx'> int rb_id_table_insert(struct rb_id_table *tbl, ID id, VALUE val);</div><div class='ctx'> int rb_id_table_lookup(struct rb_id_table *tbl, ID id, VALUE *valp);</div><div class='ctx'> int rb_id_table_delete(struct rb_id_table *tbl, ID id);</div><div class='ctx'> </div><div class='add'>+typedef enum rb_id_table_iterator_result rb_id_table_update_value_callback_func_t(VALUE *val, void *data, int existing);</div><div class='ctx'> typedef enum rb_id_table_iterator_result rb_id_table_foreach_func_t(ID id, VALUE val, void *data);</div><div class='ctx'> typedef enum rb_id_table_iterator_result rb_id_table_foreach_values_func_t(VALUE val, void *data);</div><div class='ctx'> void rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, void *data);</div><div class='ctx'> void rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data);</div><div class='add'>+void rb_id_table_foreach_values_with_replace(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, rb_id_table_update_value_callback_func_t *replace, void *data);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+size_t rb_id_table_size(const struct rb_id_table *tbl);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='ctx'> </div><div class='ctx'> #endif	/* RUBY_ID_TABLE_H */</div><div class='head'>diff --git a/include/ruby.h b/include/ruby.h<br/>index 076b5ce258..789804b7b4 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby.h</a></div><div class='hunk'>@@ -1,28 +1,33 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  ruby.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Sun 10 12:06:15 Jun JST 2007</div><div class='del'>-</div><div class='del'>-  Copyright (C) 2007-2008 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_H</div><div class='add'>+#ifndef RUBY_H                                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_H 1</div><div class='del'>-</div><div class='add'>+/**</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @date       Sun 10 12:06:15 Jun JST 2007</div><div class='add'>+ * @copyright  2007-2008 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='add'>+#define HAVE_RUBY_ATOMIC_H      1</div><div class='add'>+#define HAVE_RUBY_DEBUG_H       1</div><div class='ctx'> #define HAVE_RUBY_DEFINES_H     1</div><div class='ctx'> #define HAVE_RUBY_ENCODING_H    1</div><div class='add'>+#define HAVE_RUBY_FIBER_SCHEDULER_H 1</div><div class='ctx'> #define HAVE_RUBY_INTERN_H      1</div><div class='ctx'> #define HAVE_RUBY_IO_H          1</div><div class='add'>+#define HAVE_RUBY_MEMORY_VIEW_H 1</div><div class='ctx'> #define HAVE_RUBY_MISSING_H     1</div><div class='add'>+#define HAVE_RUBY_ONIGMO_H      1</div><div class='ctx'> #define HAVE_RUBY_ONIGURUMA_H   1</div><div class='add'>+#define HAVE_RUBY_RACTOR_H      1</div><div class='add'>+#define HAVE_RUBY_RANDOM_H      1</div><div class='ctx'> #define HAVE_RUBY_RE_H          1</div><div class='ctx'> #define HAVE_RUBY_REGEX_H       1</div><div class='ctx'> #define HAVE_RUBY_RUBY_H        1</div><div class='ctx'> #define HAVE_RUBY_ST_H          1</div><div class='ctx'> #define HAVE_RUBY_THREAD_H      1</div><div class='add'>+#define HAVE_RUBY_THREAD_NATIVE_H 1</div><div class='ctx'> #define HAVE_RUBY_UTIL_H        1</div><div class='ctx'> #define HAVE_RUBY_VERSION_H     1</div><div class='ctx'> #define HAVE_RUBY_VM_H          1</div><div class='head'>diff --git a/include/ruby/assert.h b/include/ruby/assert.h<br/>new file mode 100644<br/>index 0000000000..0c052363bc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/assert.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/assert.h</a></div><div class='hunk'>@@ -0,0 +1,234 @@</div><div class='add'>+#ifndef RUBY_ASSERT_H                                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_ASSERT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @date       Wed May 18 00:21:44 JST 1994</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/assume.h"</div><div class='add'>+#include "ruby/internal/attr/cold.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/backward/2/assume.h"</div><div class='add'>+</div><div class='add'>+/* RUBY_NDEBUG  is very  simple:  after everything  described  below are  done,</div><div class='add'>+ * define it with either NDEBUG is undefined (=0) or defined (=1).  It is truly</div><div class='add'>+ * subordinate.</div><div class='add'>+ *</div><div class='add'>+ * RUBY_DEBUG versus NDEBUG is complicated.  Assertions shall be:</div><div class='add'>+ *</div><div class='add'>+ *                      | -UNDEBUG | -DNDEBUG</div><div class='add'>+ *       ---------------+----------+---------</div><div class='add'>+ *       -URUBY_DEBUG   | (*1)     | disabled</div><div class='add'>+ *       -DRUBY_DEBUG=0 | disabled | disabled</div><div class='add'>+ *       -DRUBY_DEBUG=1 | enabled  | (*2)</div><div class='add'>+ *       -DRUBY_DEBUG   | enabled  | (*2)</div><div class='add'>+ *</div><div class='add'>+ * where:</div><div class='add'>+ *</div><div class='add'>+ *   - (*1): Assertions shall  be silently disabled, no warnings,  in favour of</div><div class='add'>+ *     commit 21991e6ca59274e41a472b5256bd3245f6596c90.</div><div class='add'>+ *</div><div class='add'>+ *   - (*2): Compile-time warnings shall be issued.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Pro tip: `!!RUBY_DEBUG-1` expands to...</div><div class='add'>+ *</div><div class='add'>+ * - `!!(-1)`  (== `!0`  ==  `1`) when RUBY_DEBUG is defined to be empty,</div><div class='add'>+ * - `(!!0)-1` (== `0-1` == `-1`) when RUBY_DEBUG is defined as 0, and</div><div class='add'>+ * - `(!!n)-1` (== `1-1` ==  `0`) when RUBY_DEBUG is defined as something else.</div><div class='add'>+ */</div><div class='add'>+#if ! defined(RUBY_DEBUG)</div><div class='add'>+# define RBIMPL_RUBY_DEBUG 0</div><div class='add'>+#elif !!RUBY_DEBUG-1 &lt; 0</div><div class='add'>+# define RBIMPL_RUBY_DEBUG 0</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_RUBY_DEBUG 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * ISO/IEC 9899 (all past versions) says that  "If NDEBUG is defined as a macro</div><div class='add'>+ * name at  the point  in the  source file where  &lt;assert.h&gt; is  included, ..."</div><div class='add'>+ * which means we must not take its defined value into account.</div><div class='add'>+ */</div><div class='add'>+#if defined(NDEBUG)</div><div class='add'>+# define RBIMPL_NDEBUG 1</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_NDEBUG 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/* Here we go... */</div><div class='add'>+#undef RUBY_DEBUG</div><div class='add'>+#undef RUBY_NDEBUG</div><div class='add'>+#undef NDEBUG</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+# /** Define this macro when you want assertions. */</div><div class='add'>+# define RUBY_DEBUG 0</div><div class='add'>+# /** Define this macro when you don't want assertions. */</div><div class='add'>+# define NDEBUG</div><div class='add'>+# /** This macro is basically the same as #NDEBUG */</div><div class='add'>+# define RUBY_NDEBUG 1</div><div class='add'>+</div><div class='add'>+#elif (RBIMPL_NDEBUG == 1) &amp;&amp; (RBIMPL_RUBY_DEBUG == 0)</div><div class='add'>+# /* Assertions disabled as per request, no conflicts. */</div><div class='add'>+# define RUBY_DEBUG 0</div><div class='add'>+# define RUBY_NDEBUG 1</div><div class='add'>+# define NDEBUG</div><div class='add'>+</div><div class='add'>+#elif (RBIMPL_NDEBUG == 0) &amp;&amp; (RBIMPL_RUBY_DEBUG == 1)</div><div class='add'>+# /* Assertions enabled as per request, no conflicts. */</div><div class='add'>+# define RUBY_DEBUG 1</div><div class='add'>+# define RUBY_NDEBUG 0</div><div class='add'>+# /* keep NDEBUG undefined */</div><div class='add'>+</div><div class='add'>+#elif (RBIMPL_NDEBUG == 0) &amp;&amp; (RBIMPL_RUBY_DEBUG == 0)</div><div class='add'>+# /* The (*1) situation in above diagram. */</div><div class='add'>+# define RUBY_DEBUG 0</div><div class='add'>+# define RUBY_NDEBUG 1</div><div class='add'>+# define NDEBUG</div><div class='add'>+</div><div class='add'>+#elif (RBIMPL_NDEBUG == 1) &amp;&amp; (RBIMPL_RUBY_DEBUG == 1)</div><div class='add'>+# /* The (*2) situation in above diagram. */</div><div class='add'>+# define RUBY_DEBUG 1</div><div class='add'>+# define RUBY_NDEBUG 0</div><div class='add'>+# /* keep NDEBUG undefined */</div><div class='add'>+</div><div class='add'>+# if defined(_MSC_VER)</div><div class='add'>+#  pragma message("NDEBUG is ignored because RUBY_DEBUG&gt;0.")</div><div class='add'>+# elif defined(__GNUC__)</div><div class='add'>+#  pragma GCC warning "NDEBUG is ignored because RUBY_DEBUG&gt;0."</div><div class='add'>+# else</div><div class='add'>+#  error NDEBUG is ignored because RUBY_DEBUG&gt;0.</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+#undef RBIMPL_NDEBUG</div><div class='add'>+#undef RBIMPL_RUBY_DEBUG</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RBIMPL_ASSERT_NOTHING RBIMPL_CAST((void)0)</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_COLD()</div><div class='add'>+void rb_assert_failure(const char *file, int line, const char *name, const char *expr);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#ifdef RUBY_FUNCTION_NAME_STRING</div><div class='add'>+# define RBIMPL_ASSERT_FUNC RUBY_FUNCTION_NAME_STRING</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ASSERT_FUNC RBIMPL_CAST((const char *)0)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Prints the given message, and terminates the entire process abnormally.</div><div class='add'>+ *</div><div class='add'>+ * @param  mesg  The message to display.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ASSERT_FAIL(mesg) \</div><div class='add'>+    rb_assert_failure(__FILE__, __LINE__, RBIMPL_ASSERT_FUNC, mesg)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts that the expression is truthy.  If not aborts with the message.</div><div class='add'>+ *</div><div class='add'>+ * @param  expr  What supposedly evaluates to true.</div><div class='add'>+ * @param  mesg  The message to display on failure.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ASSERT_MESG(expr, mesg) \</div><div class='add'>+    (RB_LIKELY(expr) ? RBIMPL_ASSERT_NOTHING : RUBY_ASSERT_FAIL(mesg))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * A variant of #RUBY_ASSERT that does not interface with #RUBY_DEBUG.</div><div class='add'>+ *</div><div class='add'>+ * @copydetails #RUBY_ASSERT</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ASSERT_ALWAYS(expr) RUBY_ASSERT_MESG((expr), #expr)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts that the given expression is truthy if and only if #RUBY_DEBUG is truthy.</div><div class='add'>+ *</div><div class='add'>+ * @param  expr  What supposedly evaluates to true.</div><div class='add'>+ */</div><div class='add'>+#if RUBY_DEBUG</div><div class='add'>+# define RUBY_ASSERT(expr) RUBY_ASSERT_MESG((expr), #expr)</div><div class='add'>+#else</div><div class='add'>+# define RUBY_ASSERT(expr) RBIMPL_ASSERT_NOTHING</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * A  variant  of   #RUBY_ASSERT  that  interfaces  with   #NDEBUG  instead  of</div><div class='add'>+ * #RUBY_DEBUG.  This almost resembles `assert`  C standard macro, except minor</div><div class='add'>+ * implementation details.</div><div class='add'>+ *</div><div class='add'>+ * @copydetails #RUBY_ASSERT</div><div class='add'>+ */</div><div class='add'>+/* Currently  `RUBY_DEBUG == ! defined(NDEBUG)` is  always true.   There is  no</div><div class='add'>+ * difference any longer between this one and `RUBY_ASSERT`. */</div><div class='add'>+#if defined(NDEBUG)</div><div class='add'>+# define RUBY_ASSERT_NDEBUG(expr) RBIMPL_ASSERT_NOTHING</div><div class='add'>+#else</div><div class='add'>+# define RUBY_ASSERT_NDEBUG(expr) RUBY_ASSERT_MESG((expr), #expr)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @copydoc #RUBY_ASSERT_WHEN</div><div class='add'>+ * @param  mesg  The message to display on failure.</div><div class='add'>+ */</div><div class='add'>+#if RUBY_DEBUG</div><div class='add'>+# define RUBY_ASSERT_MESG_WHEN(cond, expr, mesg) RUBY_ASSERT_MESG((expr), (mesg))</div><div class='add'>+#else</div><div class='add'>+# define RUBY_ASSERT_MESG_WHEN(cond, expr, mesg) \</div><div class='add'>+    ((cond) ? RUBY_ASSERT_MESG((expr), (mesg)) : RBIMPL_ASSERT_NOTHING)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * A variant  of #RUBY_ASSERT  that asserts when  either #RUBY_DEBUG  or `cond`</div><div class='add'>+ * parameter is truthy.</div><div class='add'>+ *</div><div class='add'>+ * @param  cond  Extra condition that shall hold for assertion to take effect.</div><div class='add'>+ * @param  expr  What supposedly evaluates to true.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ASSERT_WHEN(cond, expr) RUBY_ASSERT_MESG_WHEN((cond), (expr), #expr)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is either #RUBY_ASSERT or #RBIMPL_ASSUME, depending on #RUBY_DEBUG.</div><div class='add'>+ *</div><div class='add'>+ * @copydetails #RUBY_ASSERT</div><div class='add'>+ */</div><div class='add'>+#if RUBY_DEBUG</div><div class='add'>+# define RBIMPL_ASSERT_OR_ASSUME(expr) RUBY_ASSERT_ALWAYS(expr)</div><div class='add'>+#elif RBIMPL_COMPILER_BEFORE(Clang, 7, 0, 0)</div><div class='add'>+# /* See commit 67d259c5dccd31fe49d417fec169977712ffdf10 */</div><div class='add'>+# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING</div><div class='add'>+#elif defined(RUBY_ASSERT_NOASSUME)</div><div class='add'>+# /* See commit d300a734414ef6de7e8eb563b7cc4389c455ed08 */</div><div class='add'>+# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING</div><div class='add'>+#elif ! defined(RBIMPL_HAVE___ASSUME)</div><div class='add'>+# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSERT_NOTHING</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ASSERT_OR_ASSUME(expr) RBIMPL_ASSUME(expr)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_ASSERT_H */</div><div class='head'>diff --git a/include/ruby/atomic.h b/include/ruby/atomic.h<br/>new file mode 100644<br/>index 0000000000..3eb80fbf7d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/atomic.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/atomic.h</a></div><div class='hunk'>@@ -0,0 +1,890 @@</div><div class='add'>+#ifndef RUBY_ATOMIC_H                                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_ATOMIC_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Atomic operations</div><div class='add'>+ *</div><div class='add'>+ * Basically, if  we could assume  either C11 or  C++11, these macros  are just</div><div class='add'>+ * redundant.  Sadly we cannot.  We have to do them ourselves.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;            /* size_t */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SYS_TYPES_H</div><div class='add'>+# include &lt;sys/types.h&gt;         /* ssize_t */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if RBIMPL_COMPILER_SINCE(MSVC, 13, 0, 0)</div><div class='add'>+# pragma intrinsic(_InterlockedOr)</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+# include &lt;atomic.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+#include "ruby/backward/2/limits.h"</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/noalias.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/static_assert.h"</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Asserts that  your environment supports  more than one atomic  types.  These</div><div class='add'>+ * days systems tend to have such property  (C11 was a standard of decades ago,</div><div class='add'>+ * right?) but we still support older ones.</div><div class='add'>+ */</div><div class='add'>+#if defined(__DOXYGEN__) || defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+# define RUBY_ATOMIC_GENERIC_MACRO 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Type  that  is eligible  for  atomic  operations.   Depending on  your  host</div><div class='add'>+ * platform you might have  more than one such type, but we  choose one of them</div><div class='add'>+ * anyways.</div><div class='add'>+ */</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+using rb_atomic_t = std::atomic&lt;unsigned&gt;;</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+typedef unsigned int rb_atomic_t;</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+typedef unsigned int rb_atomic_t;</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+typedef LONG rb_atomic_t;</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+typedef unsigned int rb_atomic_t;</div><div class='add'>+#else</div><div class='add'>+# error No atomic operation found</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Atomically replaces the  value pointed by `var` with the  result of addition</div><div class='add'>+ * of `val` to the old value of `var`.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of ::rb_atomic_t.</div><div class='add'>+ * @param   val  Value to add.</div><div class='add'>+ * @return  What was stored in `var` before the addition.</div><div class='add'>+ * @post    `var` holds `var + val`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_FETCH_ADD(var, val) rbimpl_atomic_fetch_add(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Atomically  replaces  the  value  pointed   by  `var`  with  the  result  of</div><div class='add'>+ * subtraction of `val` to the old value of `var`.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of ::rb_atomic_t.</div><div class='add'>+ * @param   val  Value to subtract.</div><div class='add'>+ * @return  What was stored in `var` before the subtraction.</div><div class='add'>+ * @post    `var` holds `var - val`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_FETCH_SUB(var, val) rbimpl_atomic_fetch_sub(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Atomically  replaces  the  value  pointed   by  `var`  with  the  result  of</div><div class='add'>+ * bitwise OR between `val` and the old value of `var`.</div><div class='add'>+ *</div><div class='add'>+ * @param   var   A variable of ::rb_atomic_t.</div><div class='add'>+ * @param   val   Value to mix.</div><div class='add'>+ * @return  void</div><div class='add'>+ * @post    `var` holds `var | val`.</div><div class='add'>+ * @note    For portability, this macro can return void.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_OR(var, val) rbimpl_atomic_or(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Atomically replaces the value pointed by  `var` with `val`.  This is just an</div><div class='add'>+ * assignment, but you can additionally know the previous value.</div><div class='add'>+ *</div><div class='add'>+ * @param   var   A variable of ::rb_atomic_t.</div><div class='add'>+ * @param   val   Value to set.</div><div class='add'>+ * @return  What was stored in `var` before the assignment.</div><div class='add'>+ * @post    `var` holds `val`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_EXCHANGE(var, val) rbimpl_atomic_exchange(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Atomic compare-and-swap.   This stores  `val` to  `var` if  and only  if the</div><div class='add'>+ * assignment changes  the value of `var`  from `oldval` to `newval`.   You can</div><div class='add'>+ * detect whether the assignment happened or not using the return value.</div><div class='add'>+ *</div><div class='add'>+ * @param   var        A variable of ::rb_atomic_t.</div><div class='add'>+ * @param   oldval     Expected value of `var` before the assignment.</div><div class='add'>+ * @param   newval     What you want to store at `var`.</div><div class='add'>+ * @retval  oldval     Successful assignment (`var` is now `newval`).</div><div class='add'>+ * @retval  otherwise  Something else is at `var`; not updated.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_CAS(var, oldval, newval) \</div><div class='add'>+    rbimpl_atomic_cas(&amp;(var), (oldval), (newval))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RUBY_ATOMIC_EXCHANGE, except for the return type.</div><div class='add'>+ *</div><div class='add'>+ * @param   var   A variable of ::rb_atomic_t.</div><div class='add'>+ * @param   val   Value to set.</div><div class='add'>+ * @return  void</div><div class='add'>+ * @post    `var` holds `val`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_SET(var, val) rbimpl_atomic_set(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RUBY_ATOMIC_FETCH_ADD, except for the return type.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of ::rb_atomic_t.</div><div class='add'>+ * @param   val  Value to add.</div><div class='add'>+ * @return  void</div><div class='add'>+ * @post    `var` holds `var + val`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_ADD(var, val) rbimpl_atomic_add(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RUBY_ATOMIC_FETCH_SUB, except for the return type.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of ::rb_atomic_t.</div><div class='add'>+ * @param   val  Value to subtract.</div><div class='add'>+ * @return  void</div><div class='add'>+ * @post    `var` holds `var - val`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_SUB(var, val) rbimpl_atomic_sub(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Atomically increments the value pointed by `var`.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of ::rb_atomic_t.</div><div class='add'>+ * @return  void</div><div class='add'>+ * @post    `var` holds `var + 1`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_INC(var) rbimpl_atomic_inc(&amp;(var))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Atomically decrements the value pointed by `var`.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of ::rb_atomic_t.</div><div class='add'>+ * @return  void</div><div class='add'>+ * @post    `var` holds `var - 1`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_DEC(var) rbimpl_atomic_dec(&amp;(var))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RUBY_ATOMIC_INC,  except it expects its  argument is `size_t`.</div><div class='add'>+ * There are cases where ::rb_atomic_t is  32bit while `size_t` is 64bit.  This</div><div class='add'>+ * should be used for size related operations to support such platforms.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of `size_t`.</div><div class='add'>+ * @return  void</div><div class='add'>+ * @post    `var` holds `var + 1`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_SIZE_INC(var) rbimpl_atomic_size_inc(&amp;(var))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RUBY_ATOMIC_DEC,  except it expects its  argument is `size_t`.</div><div class='add'>+ * There are cases where ::rb_atomic_t is  32bit while `size_t` is 64bit.  This</div><div class='add'>+ * should be used for size related operations to support such platforms.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of `size_t`.</div><div class='add'>+ * @return  void</div><div class='add'>+ * @post    `var` holds `var - 1`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_SIZE_DEC(var) rbimpl_atomic_size_dec(&amp;(var))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to #RUBY_ATOMIC_EXCHANGE,  except  it expects  its arguments  are</div><div class='add'>+ * `size_t`.  There  are cases where  ::rb_atomic_t is 32bit while  `size_t` is</div><div class='add'>+ * 64bit.  This  should be  used for  size related  operations to  support such</div><div class='add'>+ * platforms.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of `size_t`.</div><div class='add'>+ * @param   val   Value to set.</div><div class='add'>+ * @return  What was stored in `var` before the assignment.</div><div class='add'>+ * @post    `var` holds `val`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_SIZE_EXCHANGE(var, val) \</div><div class='add'>+    rbimpl_atomic_size_exchange(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RUBY_ATOMIC_CAS, except it expects its arguments are `size_t`.</div><div class='add'>+ * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit.  This</div><div class='add'>+ * should be used for size related operations to support such platforms.</div><div class='add'>+ *</div><div class='add'>+ * @param   var        A variable of `size_t`.</div><div class='add'>+ * @param   oldval     Expected value of `var` before the assignment.</div><div class='add'>+ * @param   newval     What you want to store at `var`.</div><div class='add'>+ * @retval  oldval     Successful assignment (`var` is now `newval`).</div><div class='add'>+ * @retval  otherwise  Something else is at `var`; not updated.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_SIZE_CAS(var, oldval, newval) \</div><div class='add'>+    rbimpl_atomic_size_cas(&amp;(var), (oldval), (newval))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RUBY_ATOMIC_ADD, except it expects its arguments are `size_t`.</div><div class='add'>+ * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit.  This</div><div class='add'>+ * should be used for size related operations to support such platforms.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of `size_t`.</div><div class='add'>+ * @param   val  Value to add.</div><div class='add'>+ * @return  void</div><div class='add'>+ * @post    `var` holds `var + val`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_SIZE_ADD(var, val) rbimpl_atomic_size_add(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RUBY_ATOMIC_SUB, except it expects its arguments are `size_t`.</div><div class='add'>+ * There are cases where ::rb_atomic_t is 32bit while `size_t` is 64bit.  This</div><div class='add'>+ * should be used for size related operations to support such platforms.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of `size_t`.</div><div class='add'>+ * @param   val  Value to subtract.</div><div class='add'>+ * @return  void</div><div class='add'>+ * @post    `var` holds `var - val`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_SIZE_SUB(var, val) rbimpl_atomic_size_sub(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to #RUBY_ATOMIC_EXCHANGE,  except  it expects  its arguments  are</div><div class='add'>+ * `void*`.   There are  cases where  ::rb_atomic_t is  32bit while  `void*` is</div><div class='add'>+ * 64bit.  This should  be used for pointer related operations  to support such</div><div class='add'>+ * platforms.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of `void *`.</div><div class='add'>+ * @param   val   Value to set.</div><div class='add'>+ * @return  What was stored in `var` before the assignment.</div><div class='add'>+ * @post    `var` holds `val`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * :FIXME: this `(void*)` cast is evil!  However `void*` is incompatible with</div><div class='add'>+ * some pointers, most notably function pointers.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_PTR_EXCHANGE(var, val) \</div><div class='add'>+    RBIMPL_CAST(rbimpl_atomic_ptr_exchange((void **)&amp;(var), (void *)val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RUBY_ATOMIC_CAS, except it expects its arguments are `void*`.</div><div class='add'>+ * There are cases where ::rb_atomic_t is 32bit while `void*` is 64bit.  This</div><div class='add'>+ * should be used for size related operations to support such platforms.</div><div class='add'>+ *</div><div class='add'>+ * @param   var        A variable of `void*`.</div><div class='add'>+ * @param   oldval     Expected value of `var` before the assignment.</div><div class='add'>+ * @param   newval     What you want to store at `var`.</div><div class='add'>+ * @retval  oldval     Successful assignment (`var` is now `newval`).</div><div class='add'>+ * @retval  otherwise  Something else is at `var`; not updated.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_PTR_CAS(var, oldval, newval) \</div><div class='add'>+    RBIMPL_CAST(rbimpl_atomic_ptr_cas((void **)&amp;(var), (oldval), (newval)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to #RUBY_ATOMIC_EXCHANGE,  except  it expects  its arguments  are</div><div class='add'>+ * ::VALUE.   There are  cases where  ::rb_atomic_t is  32bit while  ::VALUE is</div><div class='add'>+ * 64bit.  This should  be used for pointer related operations  to support such</div><div class='add'>+ * platforms.</div><div class='add'>+ *</div><div class='add'>+ * @param   var  A variable of ::VALUE.</div><div class='add'>+ * @param   val   Value to set.</div><div class='add'>+ * @return  What was stored in `var` before the assignment.</div><div class='add'>+ * @post    `var` holds `val`.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_VALUE_EXCHANGE(var, val) \</div><div class='add'>+    rbimpl_atomic_value_exchange(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RUBY_ATOMIC_CAS, except it  expects its arguments are ::VALUE.</div><div class='add'>+ * There are cases  where ::rb_atomic_t is 32bit while ::VALUE  is 64bit.  This</div><div class='add'>+ * should be used for size related operations to support such platforms.</div><div class='add'>+ *</div><div class='add'>+ * @param   var        A variable of `void*`.</div><div class='add'>+ * @param   oldval     Expected value of `var` before the assignment.</div><div class='add'>+ * @param   newval     What you want to store at `var`.</div><div class='add'>+ * @retval  oldval     Successful assignment (`var` is now `newval`).</div><div class='add'>+ * @retval  otherwise  Something else is at `var`; not updated.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ATOMIC_VALUE_CAS(var, oldval, newval) \</div><div class='add'>+    rbimpl_atomic_value_cas(&amp;(var), (oldval), (newval))</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline rb_atomic_t</div><div class='add'>+rbimpl_atomic_fetch_add(volatile rb_atomic_t *ptr, rb_atomic_t val)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    return __atomic_fetch_add(ptr, val, __ATOMIC_SEQ_CST);</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    return __sync_fetch_and_add(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+    return InterlockedExchangeAdd(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+    /*</div><div class='add'>+     * `atomic_add_int_nv` takes its second argument as `int`!  Meanwhile our</div><div class='add'>+     * `rb_atomic_t` is unsigned.  We cannot pass `val` as-is.  We have to</div><div class='add'>+     * manually check integer overflow.</div><div class='add'>+     */</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(val &lt;= INT_MAX);</div><div class='add'>+    return atomic_add_int_nv(ptr, val) - val;</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# error Unsupported platform.</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_atomic_add(volatile rb_atomic_t *ptr, rb_atomic_t val)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    /*</div><div class='add'>+     * GCC on amd64 is smart enough to detect this `__atomic_add_fetch`'s</div><div class='add'>+     * return value is not used, then compiles it into single `LOCK ADD`</div><div class='add'>+     * instruction.</div><div class='add'>+     */</div><div class='add'>+    __atomic_add_fetch(ptr, val, __ATOMIC_SEQ_CST);</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    __sync_add_and_fetch(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+    /*</div><div class='add'>+     * `InterlockedExchangeAdd` is `LOCK XADD`.  It seems there also is</div><div class='add'>+     * `_InterlockedAdd` intrinsic in ARM Windows but not for x86?  Sticking to</div><div class='add'>+     * `InterlockedExchangeAdd` for better portability.</div><div class='add'>+     */</div><div class='add'>+    InterlockedExchangeAdd(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+    /* Ditto for `atomic_add_int_nv`. */</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(val &lt;= INT_MAX);</div><div class='add'>+    atomic_add_int(ptr, val);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# error Unsupported platform.</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_atomic_size_add(volatile size_t *ptr, size_t val)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    __atomic_add_fetch(ptr, val, __ATOMIC_SEQ_CST);</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    __sync_add_and_fetch(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32) &amp;&amp; defined(_M_AMD64)</div><div class='add'>+    /* Ditto for `InterlockeExchangedAdd`. */</div><div class='add'>+    InterlockedExchangeAdd64(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H) &amp;&amp; (defined(_LP64) || defined(_I32LPx))</div><div class='add'>+    /* Ditto for `atomic_add_int_nv`. */</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(val &lt;= LONG_MAX);</div><div class='add'>+    atomic_add_long(ptr, val);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    RBIMPL_STATIC_ASSERT(size_of_rb_atomic_t, sizeof *ptr == sizeof(rb_atomic_t));</div><div class='add'>+</div><div class='add'>+    volatile rb_atomic_t *const tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr);</div><div class='add'>+    rbimpl_atomic_add(tmp, val);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_atomic_inc(volatile rb_atomic_t *ptr)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    rbimpl_atomic_add(ptr, 1);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+    InterlockedIncrement(ptr);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+    atomic_inc_uint(ptr);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    rbimpl_atomic_add(ptr, 1);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_atomic_size_inc(volatile size_t *ptr)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    rbimpl_atomic_size_add(ptr, 1);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32) &amp;&amp; defined(_M_AMD64)</div><div class='add'>+    InterlockedIncrement64(ptr);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H) &amp;&amp; (defined(_LP64) || defined(_I32LPx))</div><div class='add'>+    atomic_inc_ulong(ptr);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    rbimpl_atomic_size_add(ptr, 1);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline rb_atomic_t</div><div class='add'>+rbimpl_atomic_fetch_sub(volatile rb_atomic_t *ptr, rb_atomic_t val)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    return __atomic_fetch_sub(ptr, val, __ATOMIC_SEQ_CST);</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    return __sync_fetch_and_sub(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+    /* rb_atomic_t is signed here! Safe to do `-val`. */</div><div class='add'>+    return InterlockedExchangeAdd(ptr, -val);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+    /* Ditto for `rbimpl_atomic_fetch_add`. */</div><div class='add'>+    const signed neg = -1;</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(val &lt;= INT_MAX);</div><div class='add'>+    return atomic_add_int_nv(ptr, neg * val) + val;</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# error Unsupported platform.</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_atomic_sub(volatile rb_atomic_t *ptr, rb_atomic_t val)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    __atomic_sub_fetch(ptr, val, __ATOMIC_SEQ_CST);</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    __sync_sub_and_fetch(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+    InterlockedExchangeAdd(ptr, -val);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+    const signed neg = -1;</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(val &lt;= INT_MAX);</div><div class='add'>+    atomic_add_int(ptr, neg * val);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# error Unsupported platform.</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_atomic_size_sub(volatile size_t *ptr, size_t val)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    __atomic_sub_fetch(ptr, val, __ATOMIC_SEQ_CST);</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    __sync_sub_and_fetch(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32) &amp;&amp; defined(_M_AMD64)</div><div class='add'>+    const ssize_t neg = -1;</div><div class='add'>+    InterlockedExchangeAdd64(ptr, neg * val);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H) &amp;&amp; (defined(_LP64) || defined(_I32LPx))</div><div class='add'>+    const signed neg = -1;</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(val &lt;= LONG_MAX);</div><div class='add'>+    atomic_add_long(ptr, neg * val);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    RBIMPL_STATIC_ASSERT(size_of_rb_atomic_t, sizeof *ptr == sizeof(rb_atomic_t));</div><div class='add'>+</div><div class='add'>+    volatile rb_atomic_t *const tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr);</div><div class='add'>+    rbimpl_atomic_sub(tmp, val);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_atomic_dec(volatile rb_atomic_t *ptr)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    rbimpl_atomic_sub(ptr, 1);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+    InterlockedDecrement(ptr);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+    atomic_dec_uint(ptr);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    rbimpl_atomic_sub(ptr, 1);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_atomic_size_dec(volatile size_t *ptr)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS) || defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    rbimpl_atomic_size_sub(ptr, 1);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32) &amp;&amp; defined(_M_AMD64)</div><div class='add'>+    InterlockedDecrement64(ptr);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H) &amp;&amp; (defined(_LP64) || defined(_I32LPx))</div><div class='add'>+    atomic_dec_ulong(ptr);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    rbimpl_atomic_size_sub(ptr, 1);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_atomic_or(volatile rb_atomic_t *ptr, rb_atomic_t val)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    __atomic_or_fetch(ptr, val, __ATOMIC_SEQ_CST);</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    __sync_or_and_fetch(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(MSVC, 13, 0, 0)</div><div class='add'>+    _InterlockedOr(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32) &amp;&amp; defined(__GNUC__)</div><div class='add'>+    /* This was for old MinGW.  Maybe not needed any longer? */</div><div class='add'>+    __asm__(</div><div class='add'>+        "lock\n\t"</div><div class='add'>+        "orl\t%1, %0"</div><div class='add'>+        : "=m"(ptr)</div><div class='add'>+        : "Ir"(val));</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32) &amp;&amp; defined(_M_IX86)</div><div class='add'>+    __asm mov eax, ptr;</div><div class='add'>+    __asm mov ecx, val;</div><div class='add'>+    __asm lock or [eax], ecx;</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+    atomic_or_uint(ptr, val);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# error Unsupported platform.</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* Nobody uses this but for theoretical backwards compatibility... */</div><div class='add'>+#if RBIMPL_COMPILER_BEFORE(MSVC, 13, 0, 0)</div><div class='add'>+static inline rb_atomic_t</div><div class='add'>+rb_w32_atomic_or(volatile rb_atomic_t *var, rb_atomic_t val)</div><div class='add'>+{</div><div class='add'>+    return rbimpl_atomic_or(var, val);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline rb_atomic_t</div><div class='add'>+rbimpl_atomic_exchange(volatile rb_atomic_t *ptr, rb_atomic_t val)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    return __atomic_exchange_n(ptr, val, __ATOMIC_SEQ_CST);</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    return __sync_lock_test_and_set(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+    return InterlockedExchange(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+    return atomic_swap_uint(ptr, val);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# error Unsupported platform.</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline size_t</div><div class='add'>+rbimpl_atomic_size_exchange(volatile size_t *ptr, size_t val)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    return __atomic_exchange_n(ptr, val, __ATOMIC_SEQ_CST);</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    return __sync_lock_test_and_set(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32) &amp;&amp; defined(_M_AMD64)</div><div class='add'>+    return InterlockedExchange64(ptr, val);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H) &amp;&amp; (defined(_LP64) || defined(_I32LPx))</div><div class='add'>+    return atomic_swap_ulong(ptr, val);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    RBIMPL_STATIC_ASSERT(size_of_size_t, sizeof *ptr == sizeof(rb_atomic_t));</div><div class='add'>+</div><div class='add'>+    volatile rb_atomic_t *const tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr);</div><div class='add'>+    const rb_atomic_t ret = rbimpl_atomic_exchange(tmp, val);</div><div class='add'>+    return RBIMPL_CAST((size_t)ret);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void *</div><div class='add'>+rbimpl_atomic_ptr_exchange(void *volatile *ptr, const void *val)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(InterlockedExchangePointer)</div><div class='add'>+    /* const_cast */</div><div class='add'>+    PVOID *pptr = RBIMPL_CAST((PVOID *)ptr);</div><div class='add'>+    PVOID pval = RBIMPL_CAST((PVOID)val);</div><div class='add'>+    return InterlockedExchangePointer(pptr, pval);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+    return atomic_swap_ptr(ptr, RBIMPL_CAST((void *)val));</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    RBIMPL_STATIC_ASSERT(sizeof_voidp, sizeof *ptr == sizeof(size_t));</div><div class='add'>+</div><div class='add'>+    const size_t sval = RBIMPL_CAST((size_t)val);</div><div class='add'>+    volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr);</div><div class='add'>+    const size_t sret = rbimpl_atomic_size_exchange(sptr, sval);</div><div class='add'>+    return RBIMPL_CAST((void *)sret);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline VALUE</div><div class='add'>+rbimpl_atomic_value_exchange(volatile VALUE *ptr, VALUE val)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_STATIC_ASSERT(sizeof_value, sizeof *ptr == sizeof(size_t));</div><div class='add'>+</div><div class='add'>+    const size_t sval = RBIMPL_CAST((size_t)val);</div><div class='add'>+    volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr);</div><div class='add'>+    const size_t sret = rbimpl_atomic_size_exchange(sptr, sval);</div><div class='add'>+    return RBIMPL_CAST((VALUE)sret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_atomic_set(volatile rb_atomic_t *ptr, rb_atomic_t val)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    __atomic_store_n(ptr, val, __ATOMIC_SEQ_CST);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    /* Maybe std::atomic&lt;rb_atomic_t&gt;::store can be faster? */</div><div class='add'>+    rbimpl_atomic_exchange(ptr, val);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline rb_atomic_t</div><div class='add'>+rbimpl_atomic_cas(volatile rb_atomic_t *ptr, rb_atomic_t oldval, rb_atomic_t newval)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    __atomic_compare_exchange_n(</div><div class='add'>+        ptr, &amp;oldval, newval, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);</div><div class='add'>+    return oldval;</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    return __sync_val_compare_and_swap(ptr, oldval, newval);</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(MSVC, 13, 0, 0)</div><div class='add'>+    return InterlockedCompareExchange(ptr, newval, oldval);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+    PVOID *pptr = RBIMPL_CAST((PVOID *)ptr);</div><div class='add'>+    PVOID pold = RBIMPL_CAST((PVOID)oldval);</div><div class='add'>+    PVOID pnew = RBIMPL_CAST((PVOID)newval);</div><div class='add'>+    PVOID pret = InterlockedCompareExchange(pptr, pnew, pold);</div><div class='add'>+    return RBIMPL_CAST((rb_atomic_t)pret);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+    return atomic_cas_uint(ptr, oldval, newval);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# error Unsupported platform.</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* Nobody uses this but for theoretical backwards compatibility... */</div><div class='add'>+#if RBIMPL_COMPILER_BEFORE(MSVC, 13, 0, 0)</div><div class='add'>+static inline rb_atomic_t</div><div class='add'>+rb_w32_atomic_cas(volatile rb_atomic_t *var, rb_atomic_t oldval, rb_atomic_t newval)</div><div class='add'>+{</div><div class='add'>+    return rbimpl_atomic_cas(var, oldval, newval);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline size_t</div><div class='add'>+rbimpl_atomic_size_cas(volatile size_t *ptr, size_t oldval, size_t newval)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    __atomic_compare_exchange_n(</div><div class='add'>+        ptr, &amp;oldval, newval, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);</div><div class='add'>+    return oldval;</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_GCC_SYNC_BUILTINS)</div><div class='add'>+    return __sync_val_compare_and_swap(ptr, oldval, newval);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32) &amp;&amp; defined(_M_AMD64)</div><div class='add'>+    return InterlockedCompareExchange64(ptr, newval, oldval);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H) &amp;&amp; (defined(_LP64) || defined(_I32LPx))</div><div class='add'>+    return atomic_cas_ulong(ptr, oldval, newval);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    RBIMPL_STATIC_ASSERT(size_of_size_t, sizeof *ptr == sizeof(rb_atomic_t));</div><div class='add'>+</div><div class='add'>+    volatile rb_atomic_t *tmp = RBIMPL_CAST((volatile rb_atomic_t *)ptr);</div><div class='add'>+    return rbimpl_atomic_cas(tmp, oldval, newval);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline void *</div><div class='add'>+rbimpl_atomic_ptr_cas(void **ptr, const void *oldval, const void *newval)</div><div class='add'>+{</div><div class='add'>+#if 0</div><div class='add'>+</div><div class='add'>+#elif defined(InterlockedExchangePointer)</div><div class='add'>+    /* ... Can we say that InterlockedCompareExchangePtr surly exists when</div><div class='add'>+     * InterlockedExchangePointer is defined?  Seems so but...?*/</div><div class='add'>+    PVOID *pptr = RBIMPL_CAST((PVOID *)ptr);</div><div class='add'>+    PVOID pold = RBIMPL_CAST((PVOID)oldval);</div><div class='add'>+    PVOID pnew = RBIMPL_CAST((PVOID)newval);</div><div class='add'>+    return InterlockedCompareExchangePointer(pptr, pnew, pold);</div><div class='add'>+</div><div class='add'>+#elif defined(__sun) &amp;&amp; defined(HAVE_ATOMIC_H)</div><div class='add'>+    void *pold = RBIMPL_CAST((void *)oldval);</div><div class='add'>+    void *pnew = RBIMPL_CAST((void *)newval);</div><div class='add'>+    return atomic_cas_ptr(ptr, pold, pnew);</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    RBIMPL_STATIC_ASSERT(sizeof_voidp, sizeof *ptr == sizeof(size_t));</div><div class='add'>+</div><div class='add'>+    const size_t snew = RBIMPL_CAST((size_t)newval);</div><div class='add'>+    const size_t sold = RBIMPL_CAST((size_t)oldval);</div><div class='add'>+    volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr);</div><div class='add'>+    const size_t sret = rbimpl_atomic_size_cas(sptr, sold, snew);</div><div class='add'>+    return RBIMPL_CAST((void *)sret);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+static inline VALUE</div><div class='add'>+rbimpl_atomic_value_cas(volatile VALUE *ptr, VALUE oldval, VALUE newval)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_STATIC_ASSERT(sizeof_value, sizeof *ptr == sizeof(size_t));</div><div class='add'>+</div><div class='add'>+    const size_t snew = RBIMPL_CAST((size_t)newval);</div><div class='add'>+    const size_t sold = RBIMPL_CAST((size_t)oldval);</div><div class='add'>+    volatile size_t *const sptr = RBIMPL_CAST((volatile size_t *)ptr);</div><div class='add'>+    const size_t sret = rbimpl_atomic_size_cas(sptr, sold, snew);</div><div class='add'>+    return RBIMPL_CAST((VALUE)sret);</div><div class='add'>+}</div><div class='add'>+/** @endcond */</div><div class='add'>+#endif /* RUBY_ATOMIC_H */</div><div class='head'>diff --git a/include/ruby/backward.h b/include/ruby/backward.h<br/>index 2483f961c0..f804c2c36e 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/backward.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward.h</a></div><div class='hunk'>@@ -1,72 +1,25 @@</div><div class='del'>-#ifndef RUBY_RUBY_BACKWARD_H</div><div class='add'>+#ifndef RUBY_RUBY_BACKWARD_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_RUBY_BACKWARD_H 1</div><div class='del'>-</div><div class='del'>-#define RClass RClassDeprecated</div><div class='del'>-#ifndef __cplusplus</div><div class='del'>-DEPRECATED_TYPE(("RClass is internal use only"),</div><div class='del'>-struct RClass {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-});</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define DECLARE_DEPRECATED_FEATURE(ver, func) \</div><div class='del'>-    NORETURN(ERRORFUNC(("deprecated since "#ver), DEPRECATED(void func(void))))</div><div class='del'>-</div><div class='del'>-/* eval.c */</div><div class='del'>-DECLARE_DEPRECATED_FEATURE(2.2, rb_disable_super);</div><div class='del'>-DECLARE_DEPRECATED_FEATURE(2.2, rb_enable_super);</div><div class='del'>-</div><div class='del'>-/* hash.c */</div><div class='del'>-DECLARE_DEPRECATED_FEATURE(2.2, rb_hash_iter_lev);</div><div class='del'>-DECLARE_DEPRECATED_FEATURE(2.2, rb_hash_ifnone);</div><div class='del'>-</div><div class='del'>-/* string.c */</div><div class='del'>-DECLARE_DEPRECATED_FEATURE(2.2, rb_str_associate);</div><div class='del'>-DECLARE_DEPRECATED_FEATURE(2.2, rb_str_associated);</div><div class='del'>-</div><div class='del'>-/* variable.c */</div><div class='del'>-DEPRECATED(void rb_autoload(VALUE, ID, const char*));</div><div class='del'>-</div><div class='del'>-/* vm.c */</div><div class='del'>-DECLARE_DEPRECATED_FEATURE(2.2, rb_clear_cache);</div><div class='del'>-DECLARE_DEPRECATED_FEATURE(2.2, rb_frame_pop);</div><div class='del'>-</div><div class='del'>-#define DECLARE_DEPRECATED_INTERNAL_FEATURE(func) \</div><div class='del'>-    NORETURN(ERRORFUNC(("deprecated internal function"), DEPRECATED(void func(void))))</div><div class='del'>-</div><div class='del'>-/* eval.c */</div><div class='del'>-NORETURN(ERRORFUNC(("internal function"), void rb_frozen_class_p(VALUE)));</div><div class='del'>-</div><div class='del'>-/* error.c */</div><div class='del'>-DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error);</div><div class='del'>-DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error_with_enc);</div><div class='del'>-DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error_append);</div><div class='del'>-</div><div class='del'>-/* struct.c */</div><div class='del'>-DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_struct_ptr);</div><div class='del'>-</div><div class='del'>-/* variable.c */</div><div class='del'>-DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_generic_ivar_table);</div><div class='del'>-NORETURN(ERRORFUNC(("internal function"), VALUE rb_mod_const_missing(VALUE, VALUE)));</div><div class='del'>-</div><div class='del'>-/* vm.c */</div><div class='del'>-DEPRECATED(int rb_frame_method_id_and_class(ID *idp, VALUE *klassp));</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/interpreter.h"</div><div class='add'>+#include "ruby/backward/2/attributes.h"</div><div class='add'>+</div><div class='add'>+#define RBIMPL_ATTR_DEPRECATED_SINCE(ver) RBIMPL_ATTR_DEPRECATED(("since " #ver))</div><div class='add'>+#define RBIMPL_ATTR_DEPRECATED_INTERNAL(ver) RBIMPL_ATTR_DEPRECATED(("since "#ver", also internal"))</div><div class='add'>+#define RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY() RBIMPL_ATTR_DEPRECATED(("only for internal use"))</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY() void rb_clear_constant_cache(void);</div><div class='ctx'> </div><div class='ctx'> /* from version.c */</div><div class='del'>-#ifndef RUBY_SHOW_COPYRIGHT_TO_DIE</div><div class='del'>-# define RUBY_SHOW_COPYRIGHT_TO_DIE 1</div><div class='del'>-#endif</div><div class='del'>-#if RUBY_SHOW_COPYRIGHT_TO_DIE</div><div class='del'>-/* for source code backward compatibility */</div><div class='del'>-DEPRECATED(static inline int ruby_show_copyright_to_die(int));</div><div class='del'>-static inline int</div><div class='del'>-ruby_show_copyright_to_die(int exitcode)</div><div class='del'>-{</div><div class='del'>-    ruby_show_copyright();</div><div class='del'>-    return exitcode;</div><div class='del'>-}</div><div class='del'>-#define ruby_show_copyright() /* defer EXIT_SUCCESS */ \</div><div class='del'>-    (exit(ruby_show_copyright_to_die(EXIT_SUCCESS)))</div><div class='add'>+#if defined(RUBY_SHOW_COPYRIGHT_TO_DIE) &amp;&amp; !!(RUBY_SHOW_COPYRIGHT_TO_DIE+0)</div><div class='add'>+# error RUBY_SHOW_COPYRIGHT_TO_DIE is deprecated</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #endif /* RUBY_RUBY_BACKWARD_H */</div><div class='head'>diff --git a/include/ruby/backward/2/assume.h b/include/ruby/backward/2/assume.h<br/>new file mode 100644<br/>index 0000000000..d148710127<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/2/assume.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/2/assume.h</a></div><div class='hunk'>@@ -0,0 +1,56 @@</div><div class='add'>+#ifndef RUBY_BACKWARD2_ASSUME_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_BACKWARD2_ASSUME_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #ASSUME / #RB_LIKELY / #UNREACHABLE</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/assume.h"</div><div class='add'>+#include "ruby/internal/has/builtin.h"</div><div class='add'>+</div><div class='add'>+#define ASSUME             RBIMPL_ASSUME             /**&lt; @old{RBIMPL_ASSUME} */</div><div class='add'>+#define UNREACHABLE        RBIMPL_UNREACHABLE()      /**&lt; @old{RBIMPL_UNREACHABLE} */</div><div class='add'>+#define UNREACHABLE_RETURN RBIMPL_UNREACHABLE_RETURN /**&lt; @old{RBIMPL_UNREACHABLE_RETURN} */</div><div class='add'>+</div><div class='add'>+/* likely */</div><div class='add'>+#if RBIMPL_HAS_BUILTIN(__builtin_expect)</div><div class='add'>+/**</div><div class='add'>+ * Asserts that the given Boolean expression likely holds.</div><div class='add'>+ *</div><div class='add'>+ * @param  x  An expression that likely holds.</div><div class='add'>+ *</div><div class='add'>+ * @note  Consider this macro carefully.  It has been here since when CPUs were</div><div class='add'>+ *        like  babies,  but  contemporary  processors are  beasts.   They  are</div><div class='add'>+ *        smarter than  mare mortals like  us today.  Their  branch predictions</div><div class='add'>+ *        highly expectedly outperform your use of this macro.</div><div class='add'>+ */</div><div class='add'>+# define RB_LIKELY(x)   (__builtin_expect(!!(x), 1))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts that the given Boolean expression likely doesn't hold.</div><div class='add'>+ *</div><div class='add'>+ * @param  x  An expression that likely doesn't hold.</div><div class='add'>+ */</div><div class='add'>+# define RB_UNLIKELY(x) (__builtin_expect(!!(x), 0))</div><div class='add'>+#else</div><div class='add'>+# define RB_LIKELY(x)   (x)</div><div class='add'>+# define RB_UNLIKELY(x) (x)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_BACKWARD2_ASSUME_H */</div><div class='head'>diff --git a/include/ruby/backward/2/attributes.h b/include/ruby/backward/2/attributes.h<br/>new file mode 100644<br/>index 0000000000..73acfc9dc0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/2/attributes.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/2/attributes.h</a></div><div class='hunk'>@@ -0,0 +1,165 @@</div><div class='add'>+#ifndef RUBY_BACKWARD2_ATTRIBUTES_H                  /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_BACKWARD2_ATTRIBUTES_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Various attribute-related macros.</div><div class='add'>+ *</div><div class='add'>+ * ### Q&amp;A ###</div><div class='add'>+ *</div><div class='add'>+ * - Q: Why  are the  macros defined  in this  header file  so inconsistent  in</div><div class='add'>+ *      style?</div><div class='add'>+ *</div><div class='add'>+ * - A: Don't know.   Don't blame me.  Backward compatibility is  the key here.</div><div class='add'>+ *      I'm just preserving what they have been.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/attr/alloc_size.h"</div><div class='add'>+#include "ruby/internal/attr/cold.h"</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/deprecated.h"</div><div class='add'>+#include "ruby/internal/attr/error.h"</div><div class='add'>+#include "ruby/internal/attr/forceinline.h"</div><div class='add'>+#include "ruby/internal/attr/format.h"</div><div class='add'>+#include "ruby/internal/attr/maybe_unused.h"</div><div class='add'>+#include "ruby/internal/attr/noinline.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/attr/restrict.h"</div><div class='add'>+#include "ruby/internal/attr/returns_nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/warning.h"</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/* function attributes */</div><div class='add'>+#undef CONSTFUNC</div><div class='add'>+#define CONSTFUNC(x) RBIMPL_ATTR_CONST() x</div><div class='add'>+</div><div class='add'>+#undef PUREFUNC</div><div class='add'>+#define PUREFUNC(x) RBIMPL_ATTR_PURE() x</div><div class='add'>+</div><div class='add'>+#undef DEPRECATED</div><div class='add'>+#define DEPRECATED(x) RBIMPL_ATTR_DEPRECATED(("")) x</div><div class='add'>+</div><div class='add'>+#undef DEPRECATED_BY</div><div class='add'>+#define DEPRECATED_BY(n,x) RBIMPL_ATTR_DEPRECATED(("by: " # n)) x</div><div class='add'>+</div><div class='add'>+#undef DEPRECATED_TYPE</div><div class='add'>+#if defined(__GNUC__)</div><div class='add'>+# define DEPRECATED_TYPE(mesg, decl)                      \</div><div class='add'>+    _Pragma("message \"DEPRECATED_TYPE is deprecated\""); \</div><div class='add'>+    decl RBIMPL_ATTR_DEPRECATED(mseg)</div><div class='add'>+#elif defined(_MSC_VER)</div><div class='add'>+# pragma deprecated(DEPRECATED_TYPE)</div><div class='add'>+# define DEPRECATED_TYPE(mesg, decl)                              \</div><div class='add'>+    __pragma(message(__FILE__"("STRINGIZE(__LINE__)"): warning: " \</div><div class='add'>+                     "DEPRECATED_TYPE is deprecated"))            \</div><div class='add'>+    decl RBIMPL_ATTR_DEPRECATED(mseg)</div><div class='add'>+#else</div><div class='add'>+# define DEPRECATED_TYPE(mesg, decl)                    \</div><div class='add'>+    &lt;-&lt;-"DEPRECATED_TYPE is deprecated"-&gt;-&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef RUBY_CXX_DEPRECATED</div><div class='add'>+#define RUBY_CXX_DEPRECATED(mseg) RBIMPL_ATTR_DEPRECATED((mseg))</div><div class='add'>+</div><div class='add'>+#undef NOINLINE</div><div class='add'>+#define NOINLINE(x) RBIMPL_ATTR_NOINLINE() x</div><div class='add'>+</div><div class='add'>+#ifndef MJIT_HEADER</div><div class='add'>+# undef ALWAYS_INLINE</div><div class='add'>+# define ALWAYS_INLINE(x) RBIMPL_ATTR_FORCEINLINE() x</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef ERRORFUNC</div><div class='add'>+#define ERRORFUNC(mesg, x) RBIMPL_ATTR_ERROR(mesg) x</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(error)</div><div class='add'>+# define HAVE_ATTRIBUTE_ERRORFUNC 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef WARNINGFUNC</div><div class='add'>+#define WARNINGFUNC(mesg, x) RBIMPL_ATTR_WARNING(mesg) x</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(warning)</div><div class='add'>+# define HAVE_ATTRIBUTE_WARNINGFUNC 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+  cold attribute for code layout improvements</div><div class='add'>+  RUBY_FUNC_ATTRIBUTE not used because MSVC does not like nested func macros</div><div class='add'>+ */</div><div class='add'>+#undef COLDFUNC</div><div class='add'>+#define COLDFUNC RBIMPL_ATTR_COLD()</div><div class='add'>+</div><div class='add'>+#define PRINTF_ARGS(decl, string_index, first_to_check) \</div><div class='add'>+    RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, (string_index), (first_to_check)) \</div><div class='add'>+    decl</div><div class='add'>+</div><div class='add'>+#undef RUBY_ATTR_ALLOC_SIZE</div><div class='add'>+#define RUBY_ATTR_ALLOC_SIZE RBIMPL_ATTR_ALLOC_SIZE</div><div class='add'>+</div><div class='add'>+#undef RUBY_ATTR_MALLOC</div><div class='add'>+#define RUBY_ATTR_MALLOC RBIMPL_ATTR_RESTRICT()</div><div class='add'>+</div><div class='add'>+#undef RUBY_ATTR_RETURNS_NONNULL</div><div class='add'>+#define RUBY_ATTR_RETURNS_NONNULL RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+</div><div class='add'>+#ifndef FUNC_MINIMIZED</div><div class='add'>+#define FUNC_MINIMIZED(x) x</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef FUNC_UNOPTIMIZED</div><div class='add'>+#define FUNC_UNOPTIMIZED(x) x</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_ALIAS_FUNCTION_TYPE</div><div class='add'>+#define RUBY_ALIAS_FUNCTION_TYPE(type, prot, name, args) \</div><div class='add'>+    FUNC_MINIMIZED(type prot) {return (type)name args;}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_ALIAS_FUNCTION_VOID</div><div class='add'>+#define RUBY_ALIAS_FUNCTION_VOID(prot, name, args) \</div><div class='add'>+    FUNC_MINIMIZED(void prot) {name args;}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_ALIAS_FUNCTION</div><div class='add'>+#define RUBY_ALIAS_FUNCTION(prot, name, args) \</div><div class='add'>+    RUBY_ALIAS_FUNCTION_TYPE(VALUE, prot, name, args)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef RUBY_FUNC_NONNULL</div><div class='add'>+#define RUBY_FUNC_NONNULL(n, x) RBIMPL_ATTR_NONNULL(n) x</div><div class='add'>+</div><div class='add'>+#undef  NORETURN</div><div class='add'>+#define NORETURN(x) RBIMPL_ATTR_NORETURN() x</div><div class='add'>+#define NORETURN_STYLE_NEW</div><div class='add'>+</div><div class='add'>+#ifndef PACKED_STRUCT</div><div class='add'>+# define PACKED_STRUCT(x) x</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef PACKED_STRUCT_UNALIGNED</div><div class='add'>+# if UNALIGNED_WORD_ACCESS</div><div class='add'>+#   define PACKED_STRUCT_UNALIGNED(x) PACKED_STRUCT(x)</div><div class='add'>+# else</div><div class='add'>+#   define PACKED_STRUCT_UNALIGNED(x) x</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef RB_UNUSED_VAR</div><div class='add'>+#define RB_UNUSED_VAR(x) x RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_BACKWARD2_ATTRIBUTES_H */</div><div class='head'>diff --git a/include/ruby/backward/2/bool.h b/include/ruby/backward/2/bool.h<br/>new file mode 100644<br/>index 0000000000..f2fa390c80<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/2/bool.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/2/bool.h</a></div><div class='hunk'>@@ -0,0 +1,36 @@</div><div class='add'>+#ifndef RUBY_BACKWARD2_BOOL_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_BACKWARD2_BOOL_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines old TRUE / FALSE</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+</div><div class='add'>+#ifndef FALSE</div><div class='add'>+# define FALSE false</div><div class='add'>+#elif FALSE</div><div class='add'>+# error FALSE must be false</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef TRUE</div><div class='add'>+# define TRUE true</div><div class='add'>+#elif ! TRUE</div><div class='add'>+# error TRUE must be true</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_BACKWARD2_BOOL_H */</div><div class='head'>diff --git a/include/ruby/backward/2/gcc_version_since.h b/include/ruby/backward/2/gcc_version_since.h<br/>new file mode 100644<br/>index 0000000000..00cc40ca56<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/2/gcc_version_since.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/2/gcc_version_since.h</a></div><div class='hunk'>@@ -0,0 +1,37 @@</div><div class='add'>+#ifndef RUBY_BACKWARD2_GCC_VERSION_SINCE_H           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_BACKWARD2_GCC_VERSION_SINCE_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines old GCC_VERSION_SINCE</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+</div><div class='add'>+#ifndef GCC_VERSION_SINCE</div><div class='add'>+#define GCC_VERSION_SINCE(x, y, z) RBIMPL_COMPILER_SINCE(GCC, (x), (y), (z))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef GCC_VERSION_BEFORE</div><div class='add'>+#define GCC_VERSION_BEFORE(x, y, z) \</div><div class='add'>+     (RBIMPL_COMPILER_BEFORE(GCC, (x), (y), (z)) || \</div><div class='add'>+     (RBIMPL_COMPILER_IS(GCC)                    &amp;&amp; \</div><div class='add'>+    ((RBIMPL_COMPILER_VERSION_MAJOR == (x))      &amp;&amp; \</div><div class='add'>+    ((RBIMPL_COMPILER_VERSION_MINOR == (y))      &amp;&amp; \</div><div class='add'>+     (RBIMPL_COMPILER_VERSION_PATCH == (z))))))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_BACKWARD2_GCC_VERSION_SINCE_H */</div><div class='head'>diff --git a/include/ruby/backward/2/inttypes.h b/include/ruby/backward/2/inttypes.h<br/>new file mode 100644<br/>index 0000000000..45460878bc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/2/inttypes.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/2/inttypes.h</a></div><div class='hunk'>@@ -0,0 +1,131 @@</div><div class='add'>+#ifndef RUBY_BACKWARD2_INTTYPES_H                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_BACKWARD2_INTTYPES_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      C99 shim for `&lt;inttypes.h&gt;`</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"      /* PRI_LL_PREFIX etc. are here */</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_INTTYPES_H</div><div class='add'>+# include &lt;inttypes.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/value.h"       /* PRI_VALUE_PREFIX is here. */</div><div class='add'>+</div><div class='add'>+#ifndef PRI_INT_PREFIX</div><div class='add'>+# define PRI_INT_PREFIX ""</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef PRI_LONG_PREFIX</div><div class='add'>+# define PRI_LONG_PREFIX "l"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef PRI_SHORT_PREFIX</div><div class='add'>+# define PRI_SHORT_PREFIX "h"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef PRI_64_PREFIX</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif SIZEOF_LONG == 8</div><div class='add'>+# define PRI_64_PREFIX PRI_LONG_PREFIX</div><div class='add'>+#elif SIZEOF_LONG_LONG == 8</div><div class='add'>+# define PRI_64_PREFIX PRI_LL_PREFIX</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef PRIdPTR</div><div class='add'>+# define PRIdPTR PRI_PTR_PREFIX"d"</div><div class='add'>+# define PRIiPTR PRI_PTR_PREFIX"i"</div><div class='add'>+# define PRIoPTR PRI_PTR_PREFIX"o"</div><div class='add'>+# define PRIuPTR PRI_PTR_PREFIX"u"</div><div class='add'>+# define PRIxPTR PRI_PTR_PREFIX"x"</div><div class='add'>+# define PRIXPTR PRI_PTR_PREFIX"X"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_PRI_VALUE_MARK</div><div class='add'>+# define RUBY_PRI_VALUE_MARK "\v"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined PRIdPTR &amp;&amp; !defined PRI_VALUE_PREFIX</div><div class='add'>+# define PRIdVALUE PRIdPTR</div><div class='add'>+# define PRIoVALUE PRIoPTR</div><div class='add'>+# define PRIuVALUE PRIuPTR</div><div class='add'>+# define PRIxVALUE PRIxPTR</div><div class='add'>+# define PRIXVALUE PRIXPTR</div><div class='add'>+# define PRIsVALUE PRIiPTR"" RUBY_PRI_VALUE_MARK</div><div class='add'>+#else</div><div class='add'>+# define PRIdVALUE PRI_VALUE_PREFIX"d"</div><div class='add'>+# define PRIoVALUE PRI_VALUE_PREFIX"o"</div><div class='add'>+# define PRIuVALUE PRI_VALUE_PREFIX"u"</div><div class='add'>+# define PRIxVALUE PRI_VALUE_PREFIX"x"</div><div class='add'>+# define PRIXVALUE PRI_VALUE_PREFIX"X"</div><div class='add'>+# define PRIsVALUE PRI_VALUE_PREFIX"i" RUBY_PRI_VALUE_MARK</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef PRI_VALUE_PREFIX</div><div class='add'>+# define PRI_VALUE_PREFIX ""</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef PRI_TIMET_PREFIX</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif SIZEOF_TIME_T == SIZEOF_INT</div><div class='add'>+# define PRI_TIMET_PREFIX</div><div class='add'>+#elif SIZEOF_TIME_T == SIZEOF_LONG</div><div class='add'>+# define PRI_TIMET_PREFIX "l"</div><div class='add'>+#elif SIZEOF_TIME_T == SIZEOF_LONG_LONG</div><div class='add'>+# define PRI_TIMET_PREFIX PRI_LL_PREFIX</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef PRI_PTRDIFF_PREFIX</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif SIZEOF_PTRDIFF_T == SIZEOF_INT</div><div class='add'>+# define PRI_PTRDIFF_PREFIX ""</div><div class='add'>+#elif SIZEOF_PTRDIFF_T == SIZEOF_LONG</div><div class='add'>+# define PRI_PTRDIFF_PREFIX "l"</div><div class='add'>+#elif SIZEOF_PTRDIFF_T == SIZEOF_LONG_LONG</div><div class='add'>+# define PRI_PTRDIFF_PREFIX PRI_LL_PREFIX</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef PRIdPTRDIFF</div><div class='add'>+# define PRIdPTRDIFF PRI_PTRDIFF_PREFIX"d"</div><div class='add'>+# define PRIiPTRDIFF PRI_PTRDIFF_PREFIX"i"</div><div class='add'>+# define PRIoPTRDIFF PRI_PTRDIFF_PREFIX"o"</div><div class='add'>+# define PRIuPTRDIFF PRI_PTRDIFF_PREFIX"u"</div><div class='add'>+# define PRIxPTRDIFF PRI_PTRDIFF_PREFIX"x"</div><div class='add'>+# define PRIXPTRDIFF PRI_PTRDIFF_PREFIX"X"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef PRI_SIZE_PREFIX</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_INT</div><div class='add'>+# define PRI_SIZE_PREFIX ""</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_LONG</div><div class='add'>+# define PRI_SIZE_PREFIX "l"</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG</div><div class='add'>+# define PRI_SIZE_PREFIX PRI_LL_PREFIX</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef PRIdSIZE</div><div class='add'>+# define PRIdSIZE PRI_SIZE_PREFIX"d"</div><div class='add'>+# define PRIiSIZE PRI_SIZE_PREFIX"i"</div><div class='add'>+# define PRIoSIZE PRI_SIZE_PREFIX"o"</div><div class='add'>+# define PRIuSIZE PRI_SIZE_PREFIX"u"</div><div class='add'>+# define PRIxSIZE PRI_SIZE_PREFIX"x"</div><div class='add'>+# define PRIXSIZE PRI_SIZE_PREFIX"X"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_BACKWARD2_INTTYPES_H */</div><div class='head'>diff --git a/include/ruby/backward/2/limits.h b/include/ruby/backward/2/limits.h<br/>new file mode 100644<br/>index 0000000000..6f7021e5f4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/2/limits.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/2/limits.h</a></div><div class='hunk'>@@ -0,0 +1,99 @@</div><div class='add'>+#ifndef RUBY_BACKWARD2_LIMITS_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_BACKWARD2_LIMITS_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Historical shim for `&lt;limits.h&gt;`.</div><div class='add'>+ *</div><div class='add'>+ * The macros in this header file are obsolescent.  Does anyone really need our</div><div class='add'>+ * own definition of `CHAR_BIT` today?</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_LIMITS_H</div><div class='add'>+# include &lt;limits.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/backward/2/long_long.h"</div><div class='add'>+</div><div class='add'>+#ifndef LONG_MAX</div><div class='add'>+# /* assuming 32bit(2's complement) long */</div><div class='add'>+# define LONG_MAX 2147483647L</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef LONG_MIN</div><div class='add'>+# define LONG_MIN (-LONG_MAX-1)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef CHAR_BIT</div><div class='add'>+# define CHAR_BIT 8</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef LLONG_MAX</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif defined(LONG_LONG_MAX)</div><div class='add'>+# define LLONG_MAX  LONG_LONG_MAX</div><div class='add'>+#elif defined(_I64_MAX)</div><div class='add'>+# define LLONG_MAX _I64_MAX</div><div class='add'>+#else</div><div class='add'>+# /* assuming 64bit(2's complement) long long */</div><div class='add'>+# define LLONG_MAX 9223372036854775807LL</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef LLONG_MIN</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif defined(LONG_LONG_MIN)</div><div class='add'>+# define LLONG_MIN  LONG_LONG_MIN</div><div class='add'>+#elif defined(_I64_MAX)</div><div class='add'>+# define LLONG_MIN _I64_MIN</div><div class='add'>+#else</div><div class='add'>+# define LLONG_MIN (-LLONG_MAX-1)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef SIZE_MAX</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG</div><div class='add'>+# define SIZE_MAX ULLONG_MAX</div><div class='add'>+# define SIZE_MIN ULLONG_MIN</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_LONG</div><div class='add'>+# define SIZE_MAX ULONG_MAX</div><div class='add'>+# define SIZE_MIN ULONG_MIN</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_INT</div><div class='add'>+# define SIZE_MAX UINT_MAX</div><div class='add'>+# define SIZE_MIN UINT_MIN</div><div class='add'>+#else</div><div class='add'>+# define SIZE_MAX USHRT_MAX</div><div class='add'>+# define SIZE_MIN USHRT_MIN</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef SSIZE_MAX</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG</div><div class='add'>+# define SSIZE_MAX LLONG_MAX</div><div class='add'>+# define SSIZE_MIN LLONG_MIN</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_LONG</div><div class='add'>+# define SSIZE_MAX LONG_MAX</div><div class='add'>+# define SSIZE_MIN LONG_MIN</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_INT</div><div class='add'>+# define SSIZE_MAX INT_MAX</div><div class='add'>+# define SSIZE_MIN INT_MIN</div><div class='add'>+#else</div><div class='add'>+# define SSIZE_MAX SHRT_MAX</div><div class='add'>+# define SSIZE_MIN SHRT_MIN</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_BACKWARD2_LIMITS_H */</div><div class='head'>diff --git a/include/ruby/backward/2/long_long.h b/include/ruby/backward/2/long_long.h<br/>new file mode 100644<br/>index 0000000000..8e6b2743fc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/2/long_long.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/2/long_long.h</a></div><div class='hunk'>@@ -0,0 +1,73 @@</div><div class='add'>+#ifndef RUBY_BACKWARD2_LONG_LONG_H                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_BACKWARD2_LONG_LONG_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines old #LONG_LONG</div><div class='add'>+ *</div><div class='add'>+ * No  known  compiler   that  can  compile  today's  ruby   lacks  long  long.</div><div class='add'>+ * Historically MSVC was  one of such compiler, but it  implemented long long a</div><div class='add'>+ * while  ago  (some  time  back  in  2013).   The  macros  are  for  backwards</div><div class='add'>+ * compatibility only.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/has/warning.h"</div><div class='add'>+#include "ruby/internal/warning_push.h"</div><div class='add'>+</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+# /** @cond INTERNAL_MACRO */</div><div class='add'>+# define HAVE_LONG_LONG 1</div><div class='add'>+# define HAVE_TRUE_LONG_LONG 1</div><div class='add'>+# /** @endcond */</div><div class='add'>+# /** @deprecated  Just use `long long` directly. */</div><div class='add'>+# define LONG_LONG long long.</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_WARNING("-Wc++11-long-long")</div><div class='add'>+# define HAVE_TRUE_LONG_LONG 1</div><div class='add'>+# define LONG_LONG                           \</div><div class='add'>+    RBIMPL_WARNING_PUSH()                     \</div><div class='add'>+    RBIMPL_WARNING_IGNORED(-Wc++11-long-long) \</div><div class='add'>+    long long                                \</div><div class='add'>+    RBIMPL_WARNING_POP()</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_WARNING("-Wlong-long")</div><div class='add'>+# define HAVE_TRUE_LONG_LONG 1</div><div class='add'>+# define LONG_LONG                     \</div><div class='add'>+    RBIMPL_WARNING_PUSH()               \</div><div class='add'>+    RBIMPL_WARNING_IGNORED(-Wlong-long) \</div><div class='add'>+    long long                          \</div><div class='add'>+    RBIMPL_WARNING_POP()</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_LONG_LONG)</div><div class='add'>+# define HAVE_TRUE_LONG_LONG 1</div><div class='add'>+# define LONG_LONG long long</div><div class='add'>+</div><div class='add'>+#elif SIZEOF___INT64 &gt; 0</div><div class='add'>+# define HAVE_LONG_LONG 1</div><div class='add'>+# define LONG_LONG __int64</div><div class='add'>+# undef SIZEOF_LONG_LONG</div><div class='add'>+# define SIZEOF_LONG_LONG SIZEOF___INT64</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# error Hello!  Ruby developers believe this message must not happen.</div><div class='add'>+# error If you encounter this message, can you file a bug report?</div><div class='add'>+# error Remember to attach a detailed description of your environment.</div><div class='add'>+# error Thank you!</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_BACKWARD2_LONG_LONG_H */</div><div class='head'>diff --git a/include/ruby/backward/2/r_cast.h b/include/ruby/backward/2/r_cast.h<br/>new file mode 100644<br/>index 0000000000..3d0f40fd1e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/2/r_cast.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/2/r_cast.h</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+#ifndef RUBY_BACKWARD2_R_CAST_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_BACKWARD2_R_CAST_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines old R_CAST</div><div class='add'>+ *</div><div class='add'>+ * Nobody is actively using this macro.</div><div class='add'>+ */</div><div class='add'>+#define R_CAST(st)   (struct st*)</div><div class='add'>+#define RMOVED(obj)  (R_CAST(RMoved)(obj))</div><div class='add'>+</div><div class='add'>+#if defined(__GNUC__)</div><div class='add'>+# warning R_CAST and RMOVED are deprecated</div><div class='add'>+#elif defined(_MSC_VER)</div><div class='add'>+# pragma message("warning: R_CAST and RMOVED are deprecated")</div><div class='add'>+#endif</div><div class='add'>+#endif /* RUBY_BACKWARD2_R_CAST_H */</div><div class='head'>diff --git a/include/ruby/backward/2/rmodule.h b/include/ruby/backward/2/rmodule.h<br/>new file mode 100644<br/>index 0000000000..53b37831c0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/2/rmodule.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/2/rmodule.h</a></div><div class='hunk'>@@ -0,0 +1,36 @@</div><div class='add'>+#ifndef RUBY_BACKWARD2_RMODULE_H                     /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_BACKWARD2_RMODULE_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Orphan macros.</div><div class='add'>+ *</div><div class='add'>+ * These macros  seems broken since at  least 2011. Nobody (except  ruby itself</div><div class='add'>+ * who is implementing the internals) could have used those macros for a while.</div><div class='add'>+ * Kept public as-is here to keep some theoretical backwards compatibility.</div><div class='add'>+ */</div><div class='add'>+#define RMODULE_IV_TBL(m) RCLASS_IV_TBL(m)</div><div class='add'>+#define RMODULE_CONST_TBL(m) RCLASS_CONST_TBL(m)</div><div class='add'>+#define RMODULE_M_TBL(m) RCLASS_M_TBL(m)</div><div class='add'>+#define RMODULE_SUPER(m) RCLASS_SUPER(m)</div><div class='add'>+</div><div class='add'>+#if defined(__GNUC__)</div><div class='add'>+# warning RMODULE_* macros are deprecated</div><div class='add'>+#elif defined(_MSC_VER)</div><div class='add'>+# pragma message("warning: RMODULE_* macros are deprecated")</div><div class='add'>+#endif</div><div class='add'>+#endif /* RUBY_BACKWARD2_RMODULE_H */</div><div class='head'>diff --git a/include/ruby/backward/2/stdalign.h b/include/ruby/backward/2/stdalign.h<br/>new file mode 100644<br/>index 0000000000..8b491bf564<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/2/stdalign.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/2/stdalign.h</a></div><div class='hunk'>@@ -0,0 +1,30 @@</div><div class='add'>+#ifndef RUBY_BACKWARD2_STDALIGN_H                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_BACKWARD2_STDALIGN_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RUBY_ALIGNAS / #RUBY_ALIGNOF</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/stdalign.h"</div><div class='add'>+</div><div class='add'>+#undef RUBY_ALIGNAS</div><div class='add'>+#undef RUBY_ALIGNOF</div><div class='add'>+#define RUBY_ALIGNAS RBIMPL_ALIGNAS /**&lt; @copydoc RBIMPL_ALIGNAS */</div><div class='add'>+#define RUBY_ALIGNOF RBIMPL_ALIGNOF /**&lt; @copydoc RBIMPL_ALIGNOF */</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_BACKWARD2_STDALIGN_H */</div><div class='head'>diff --git a/include/ruby/backward/2/stdarg.h b/include/ruby/backward/2/stdarg.h<br/>new file mode 100644<br/>index 0000000000..08659fee47<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/2/stdarg.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/2/stdarg.h</a></div><div class='hunk'>@@ -0,0 +1,69 @@</div><div class='add'>+#ifndef RUBY_BACKWARD2_STDARG_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_BACKWARD2_STDARG_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines old #_</div><div class='add'>+ *</div><div class='add'>+ * Nobody should  ever use these  macros any  longer.  No known  compilers lack</div><div class='add'>+ * prototypes today.  It's 21st century.  Just forget them.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#undef _</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  Nobody practically needs this macro any longer.</div><div class='add'>+ * @brief       This was a transition path from K&amp;R to ANSI.</div><div class='add'>+ */</div><div class='add'>+#ifdef HAVE_PROTOTYPES</div><div class='add'>+# define _(args) args</div><div class='add'>+#else</div><div class='add'>+# define _(args) ()</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef __</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  Nobody practically needs this macro any longer.</div><div class='add'>+ * @brief       This was a transition path from K&amp;R to ANSI.</div><div class='add'>+ */</div><div class='add'>+#ifdef HAVE_STDARG_PROTOTYPES</div><div class='add'>+# define __(args) args</div><div class='add'>+#else</div><div class='add'>+# define __(args) ()</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Functions  declared using  this  macro take  arbitrary arguments,  including</div><div class='add'>+ * void.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * void func(ANYARGS);</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * This  was a  necessary  evil when  there  was no  such  thing like  function</div><div class='add'>+ * overloading.  But it  is the 21st century today.  People  generally need not</div><div class='add'>+ * use this.  Just use a granular typed function.</div><div class='add'>+ *</div><div class='add'>+ * @see ruby::backward::cxxanyargs</div><div class='add'>+ */</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+#define ANYARGS ...</div><div class='add'>+#else</div><div class='add'>+#define ANYARGS</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_BACKWARD2_STDARG_H */</div><div class='head'>diff --git a/include/ruby/backward/classext.h b/include/ruby/backward/classext.h<br/>deleted file mode 100644<br/>index 9d5747316a..0000000000<br/>--- a/<a href='/ruby.git/tree/include/ruby/backward/classext.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/classext.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,18 +0,0 @@</div><div class='del'>-#if   defined __GNUC__</div><div class='del'>-#warning use of RClass internals is deprecated</div><div class='del'>-#elif defined _MSC_VER</div><div class='del'>-#pragma message("warning: use of RClass internals is deprecated")</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_BACKWARD_CLASSEXT_H</div><div class='del'>-#define RUBY_BACKWARD_CLASSEXT_H 1</div><div class='del'>-</div><div class='del'>-typedef struct rb_deprecated_classext_struct {</div><div class='del'>-    VALUE super;</div><div class='del'>-} rb_deprecated_classext_t;</div><div class='del'>-</div><div class='del'>-#undef RCLASS_SUPER(c)</div><div class='del'>-#define RCLASS_EXT(c) ((rb_deprecated_classext_t *)RCLASS(c)-&gt;ptr)</div><div class='del'>-#define RCLASS_SUPER(c) (RCLASS(c)-&gt;super)</div><div class='del'>-</div><div class='del'>-#endif	/* RUBY_BACKWARD_CLASSEXT_H */</div><div class='head'>diff --git a/include/ruby/backward/cxxanyargs.hpp b/include/ruby/backward/cxxanyargs.hpp<br/>new file mode 100644<br/>index 0000000000..2414b7ae6d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/backward/cxxanyargs.hpp?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/backward/cxxanyargs.hpp</a></div><div class='hunk'>@@ -0,0 +1,700 @@</div><div class='add'>+#ifndef RUBY_BACKWARD_CXXANYARGS_HPP                       //-*-C++-*-vi:ft=cpp</div><div class='add'>+#define RUBY_BACKWARD_CXXANYARGS_HPP</div><div class='add'>+/// @file</div><div class='add'>+/// @author     @shyouhei</div><div class='add'>+/// @copyright  This  file  is  a  part   of  the  programming  language  Ruby.</div><div class='add'>+///             Permission  is hereby  granted, to  either redistribute  and/or</div><div class='add'>+///             modify this file, provided that the conditions mentioned in the</div><div class='add'>+///             file COPYING are met.  Consult the file for details.</div><div class='add'>+/// @note       DO NOT  MODERNISE THIS FILE!   As the  file name implies  it is</div><div class='add'>+///             meant to  be a backwards  compatibility shim.  Please  stick to</div><div class='add'>+///             C++ 98 and never use newer features, like `constexpr`.</div><div class='add'>+/// @brief      Provides old prototypes for C++ programs.</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/intern/class.h"</div><div class='add'>+#include "ruby/internal/intern/cont.h"</div><div class='add'>+#include "ruby/internal/intern/hash.h"</div><div class='add'>+#include "ruby/internal/intern/proc.h"</div><div class='add'>+#include "ruby/internal/intern/thread.h"</div><div class='add'>+#include "ruby/internal/intern/variable.h"</div><div class='add'>+#include "ruby/internal/intern/vm.h"</div><div class='add'>+#include "ruby/internal/iterator.h"</div><div class='add'>+#include "ruby/internal/method.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/variable.h"</div><div class='add'>+#include "ruby/backward/2/stdarg.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+</div><div class='add'>+extern "C++" {</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+#include &lt;cstddef&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/// @brief  The main namespace.</div><div class='add'>+/// @note   The name  "ruby" might  already be  taken, but that  must not  be a</div><div class='add'>+///         problem because namespaces are allowed to reopen.</div><div class='add'>+namespace ruby {</div><div class='add'>+</div><div class='add'>+/// Backwards compatibility layer.</div><div class='add'>+namespace backward {</div><div class='add'>+</div><div class='add'>+/// Provides ANYARGS  deprecation warnings.   In C, ANYARGS  means there  is no</div><div class='add'>+/// function prototype.  Literally  anything, even including nothing,  can be a</div><div class='add'>+/// valid ANYARGS.   So passing a  correctly prototyped function pointer  to an</div><div class='add'>+/// ANYARGS-ed  function  parameter is  valid,  at  the  same time  passing  an</div><div class='add'>+/// ANYARGS-ed function pointer to a  granular typed function parameter is also</div><div class='add'>+/// valid.  However on the other hand in C++, ANYARGS doesn't actually mean any</div><div class='add'>+/// number of arguments.   C++'s ANYARGS means _variadic_  number of arguments.</div><div class='add'>+/// This is incompatible with ordinal, correct function prototypes.</div><div class='add'>+///</div><div class='add'>+/// Luckily, function  prototypes being distinct  each other means they  can be</div><div class='add'>+/// overloaded.  We can provide a compatibility layer for older Ruby APIs which</div><div class='add'>+/// used to have ANYARGS.  This namespace includes such attempts.</div><div class='add'>+namespace cxxanyargs {</div><div class='add'>+</div><div class='add'>+typedef VALUE type(ANYARGS);      ///&lt; ANYARGS-ed function type.</div><div class='add'>+typedef void void_type(ANYARGS);  ///&lt; ANYARGS-ed function type, void variant.</div><div class='add'>+typedef int int_type(ANYARGS);    ///&lt; ANYARGS-ed function type, int variant.</div><div class='add'>+typedef VALUE onearg_type(VALUE); ///&lt; Single-argumented function type.</div><div class='add'>+</div><div class='add'>+/// @name Hooking global variables</div><div class='add'>+/// @{</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Define a function-backended global variable.</div><div class='add'>+/// @param[in]   q  Name of the variable.</div><div class='add'>+/// @param[in]   w  Getter function.</div><div class='add'>+/// @param[in]   e  Setter function.</div><div class='add'>+/// @note        Both functions can be nullptr.</div><div class='add'>+/// @see         rb_define_hooked_variable()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline void</div><div class='add'>+rb_define_virtual_variable(const char *q, type *w, void_type *e)</div><div class='add'>+{</div><div class='add'>+    rb_gvar_getter_t *r = reinterpret_cast&lt;rb_gvar_getter_t*&gt;(w);</div><div class='add'>+    rb_gvar_setter_t *t = reinterpret_cast&lt;rb_gvar_setter_t*&gt;(e);</div><div class='add'>+    ::rb_define_virtual_variable(q, r, t);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+inline void</div><div class='add'>+rb_define_virtual_variable(const char *q, rb_gvar_getter_t *w, void_type *e)</div><div class='add'>+{</div><div class='add'>+    rb_gvar_setter_t *t = reinterpret_cast&lt;rb_gvar_setter_t*&gt;(e);</div><div class='add'>+    ::rb_define_virtual_variable(q, w, t);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+inline void</div><div class='add'>+rb_define_virtual_variable(const char *q, type *w, rb_gvar_setter_t *e)</div><div class='add'>+{</div><div class='add'>+    rb_gvar_getter_t *r = reinterpret_cast&lt;rb_gvar_getter_t*&gt;(w);</div><div class='add'>+    ::rb_define_virtual_variable(q, r, e);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+inline void</div><div class='add'>+rb_define_virtual_variable(const char *q, rb_gvar_getter_t *w, std::nullptr_t e)</div><div class='add'>+{</div><div class='add'>+    ::rb_define_virtual_variable(q, w, e);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+inline void</div><div class='add'>+rb_define_virtual_variable(const char *q, type *w, std::nullptr_t e)</div><div class='add'>+{</div><div class='add'>+    rb_gvar_getter_t *r = reinterpret_cast&lt;rb_gvar_getter_t *&gt;(w);</div><div class='add'>+    ::rb_define_virtual_variable(q, r, e);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline void</div><div class='add'>+rb_define_virtual_variable(const char *q, std::nullptr_t w, rb_gvar_setter_t *e)</div><div class='add'>+{</div><div class='add'>+    ::rb_define_virtual_variable(q, w, e);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+inline void</div><div class='add'>+rb_define_virtual_variable(const char *q, std::nullptr_t w, void_type *e)</div><div class='add'>+{</div><div class='add'>+    rb_gvar_setter_t *r = reinterpret_cast&lt;rb_gvar_setter_t *&gt;(e);</div><div class='add'>+    ::rb_define_virtual_variable(q, w, r);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Define a function-backended global variable.</div><div class='add'>+/// @param[in]   q  Name of the variable.</div><div class='add'>+/// @param[in]   w  Variable storage.</div><div class='add'>+/// @param[in]   e  Getter function.</div><div class='add'>+/// @param[in]   r  Setter function.</div><div class='add'>+/// @note        Both functions can be nullptr.</div><div class='add'>+/// @see         rb_define_virtual_variable()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline void</div><div class='add'>+rb_define_hooked_variable(const char *q, VALUE *w, type *e, void_type *r)</div><div class='add'>+{</div><div class='add'>+    rb_gvar_getter_t *t = reinterpret_cast&lt;rb_gvar_getter_t*&gt;(e);</div><div class='add'>+    rb_gvar_setter_t *y = reinterpret_cast&lt;rb_gvar_setter_t*&gt;(r);</div><div class='add'>+    ::rb_define_hooked_variable(q, w, t, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+inline void</div><div class='add'>+rb_define_hooked_variable(const char *q, VALUE *w, rb_gvar_getter_t *e, void_type *r)</div><div class='add'>+{</div><div class='add'>+    rb_gvar_setter_t *y = reinterpret_cast&lt;rb_gvar_setter_t*&gt;(r);</div><div class='add'>+    ::rb_define_hooked_variable(q, w, e, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+inline void</div><div class='add'>+rb_define_hooked_variable(const char *q, VALUE *w, type *e, rb_gvar_setter_t *r)</div><div class='add'>+{</div><div class='add'>+    rb_gvar_getter_t *t = reinterpret_cast&lt;rb_gvar_getter_t*&gt;(e);</div><div class='add'>+    ::rb_define_hooked_variable(q, w, t, r);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+inline void</div><div class='add'>+rb_define_hooked_variable(const char *q, VALUE *w, rb_gvar_getter_t *e, std::nullptr_t r)</div><div class='add'>+{</div><div class='add'>+    ::rb_define_hooked_variable(q, w, e, r);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+inline void</div><div class='add'>+rb_define_hooked_variable(const char *q, VALUE *w, type *e, std::nullptr_t r)</div><div class='add'>+{</div><div class='add'>+    rb_gvar_getter_t *y = reinterpret_cast&lt;rb_gvar_getter_t *&gt;(e);</div><div class='add'>+    ::rb_define_hooked_variable(q, w, y, r);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline void</div><div class='add'>+rb_define_hooked_variable(const char *q, VALUE *w, std::nullptr_t e, rb_gvar_setter_t *r)</div><div class='add'>+{</div><div class='add'>+    ::rb_define_hooked_variable(q, w, e, r);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+inline void</div><div class='add'>+rb_define_hooked_variable(const char *q, VALUE *w, std::nullptr_t e, void_type *r)</div><div class='add'>+{</div><div class='add'>+    rb_gvar_setter_t *y = reinterpret_cast&lt;rb_gvar_setter_t *&gt;(r);</div><div class='add'>+    ::rb_define_hooked_variable(q, w, e, y);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/// @}</div><div class='add'>+/// @name Exceptions and tag jumps</div><div class='add'>+/// @{</div><div class='add'>+</div><div class='add'>+// RUBY_CXX_DEPRECATED("by rb_block_call since 1.9")</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Old way to implement iterators.</div><div class='add'>+/// @param[in]   q  A function that can yield.</div><div class='add'>+/// @param[in]   w  Passed to `q`.</div><div class='add'>+/// @param[in]   e  What is to be yielded.</div><div class='add'>+/// @param[in]   r  Passed to `e`.</div><div class='add'>+/// @return      The return value of `q`.</div><div class='add'>+/// @note        `e` can be nullptr.</div><div class='add'>+/// @deprecated  This function is obsoleted since  long before 2.x era.  Do not</div><div class='add'>+///              use it any longer.  rb_block_call() is provided instead.</div><div class='add'>+inline VALUE</div><div class='add'>+rb_iterate(onearg_type *q, VALUE w, type *e, VALUE r)</div><div class='add'>+{</div><div class='add'>+    rb_block_call_func_t t = reinterpret_cast&lt;rb_block_call_func_t&gt;(e);</div><div class='add'>+    return backward::rb_iterate_deprecated(q, w, t, r);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+RUBY_CXX_DEPRECATED("by rb_block_call since 1.9")</div><div class='add'>+inline VALUE</div><div class='add'>+rb_iterate(onearg_type *q, VALUE w, std::nullptr_t e, VALUE r)</div><div class='add'>+{</div><div class='add'>+    return backward::rb_iterate_deprecated(q, w, e, r);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Call a method with a block.</div><div class='add'>+/// @param[in]   q  The self.</div><div class='add'>+/// @param[in]   w  The method.</div><div class='add'>+/// @param[in]   e  The # of elems of `r`</div><div class='add'>+/// @param[in]   r  The arguments.</div><div class='add'>+/// @param[in]   t  What is to be yielded.</div><div class='add'>+/// @param[in]   y  Passed to `t`</div><div class='add'>+/// @return      Return value of `q#w(*r,&amp;t)`</div><div class='add'>+/// @note        't' can be nullptr.</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline VALUE</div><div class='add'>+rb_block_call(VALUE q, ID w, int e, const VALUE *r, type *t, VALUE y)</div><div class='add'>+{</div><div class='add'>+    rb_block_call_func_t u = reinterpret_cast&lt;rb_block_call_func_t&gt;(t);</div><div class='add'>+    return ::rb_block_call(q, w, e, r, u, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+inline VALUE</div><div class='add'>+rb_block_call(VALUE q, ID w, int e, const VALUE *r, std::nullptr_t t, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return ::rb_block_call(q, w, e, r, t, y);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       An equivalent of `rescue` clause.</div><div class='add'>+/// @param[in]   q  A function that can raise.</div><div class='add'>+/// @param[in]   w  Passed to `q`.</div><div class='add'>+/// @param[in]   e  A function that cleans-up.</div><div class='add'>+/// @param[in]   r  Passed to `e`.</div><div class='add'>+/// @return      The return value of `q` if  no exception occurs, or the return</div><div class='add'>+///              value of `e` if otherwise.</div><div class='add'>+/// @note        `e` can be nullptr.</div><div class='add'>+/// @see         rb_ensure()</div><div class='add'>+/// @see         rb_rescue2()</div><div class='add'>+/// @see         rb_protect()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline VALUE</div><div class='add'>+rb_rescue(type *q, VALUE w, type *e, VALUE r)</div><div class='add'>+{</div><div class='add'>+    typedef VALUE func1_t(VALUE);</div><div class='add'>+    typedef VALUE func2_t(VALUE, VALUE);</div><div class='add'>+    func1_t *t = reinterpret_cast&lt;func1_t*&gt;(q);</div><div class='add'>+    func2_t *y = reinterpret_cast&lt;func2_t*&gt;(e);</div><div class='add'>+    return ::rb_rescue(t, w, y, r);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       An equivalent of `rescue` clause.</div><div class='add'>+/// @param[in]   q    A function that can raise.</div><div class='add'>+/// @param[in]   w    Passed to `q`.</div><div class='add'>+/// @param[in]   e    A function that cleans-up.</div><div class='add'>+/// @param[in]   r    Passed to `e`.</div><div class='add'>+/// @param[in]   ...  0-terminated list of subclass of @ref rb_eException.</div><div class='add'>+/// @return      The return value of `q` if  no exception occurs, or the return</div><div class='add'>+///              value of `e` if otherwise.</div><div class='add'>+/// @note        `e` can be nullptr.</div><div class='add'>+/// @see         rb_ensure()</div><div class='add'>+/// @see         rb_rescue()</div><div class='add'>+/// @see         rb_protect()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline VALUE</div><div class='add'>+rb_rescue2(type *q, VALUE w, type *e, VALUE r, ...)</div><div class='add'>+{</div><div class='add'>+    typedef VALUE func1_t(VALUE);</div><div class='add'>+    typedef VALUE func2_t(VALUE, VALUE);</div><div class='add'>+    func1_t *t = reinterpret_cast&lt;func1_t*&gt;(q);</div><div class='add'>+    func2_t *y = reinterpret_cast&lt;func2_t*&gt;(e);</div><div class='add'>+    va_list ap;</div><div class='add'>+    va_start(ap, r);</div><div class='add'>+    VALUE ret = ::rb_vrescue2(t, w, y, r, ap);</div><div class='add'>+    va_end(ap);</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       An equivalent of `ensure` clause.</div><div class='add'>+/// @param[in]   q  A function that can raise.</div><div class='add'>+/// @param[in]   w  Passed to `q`.</div><div class='add'>+/// @param[in]   e  A function that ensures.</div><div class='add'>+/// @param[in]   r  Passed to `e`.</div><div class='add'>+/// @return      The return value of `q`.</div><div class='add'>+/// @note        It makes no sense to pass nullptr to `e`.</div><div class='add'>+/// @see         rb_rescue()</div><div class='add'>+/// @see         rb_rescue2()</div><div class='add'>+/// @see         rb_protect()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline VALUE</div><div class='add'>+rb_ensure(type *q, VALUE w, type *e, VALUE r)</div><div class='add'>+{</div><div class='add'>+    typedef VALUE func1_t(VALUE);</div><div class='add'>+    func1_t *t = reinterpret_cast&lt;func1_t*&gt;(q);</div><div class='add'>+    func1_t *y = reinterpret_cast&lt;func1_t*&gt;(e);</div><div class='add'>+    return ::rb_ensure(t, w, y, r);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       An equivalent of `Kernel#catch`.</div><div class='add'>+/// @param[in]   q  The "tag" string.</div><div class='add'>+/// @param[in]   w  A function that can throw.</div><div class='add'>+/// @param[in]   e  Passed to `w`.</div><div class='add'>+/// @return      What was thrown.</div><div class='add'>+/// @note        `q` can be a nullptr but makes no sense to pass nullptr to`w`.</div><div class='add'>+/// @see         rb_block_call()</div><div class='add'>+/// @see         rb_protect()</div><div class='add'>+/// @see         rb_rb_catch_obj()</div><div class='add'>+/// @see         rb_rescue()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline VALUE</div><div class='add'>+rb_catch(const char *q, type *w, VALUE e)</div><div class='add'>+{</div><div class='add'>+    rb_block_call_func_t r = reinterpret_cast&lt;rb_block_call_func_t&gt;(w);</div><div class='add'>+    return ::rb_catch(q, r, e);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_NULLPTR</div><div class='add'>+inline VALUE</div><div class='add'>+rb_catch(const char *q, std::nullptr_t w, VALUE e)</div><div class='add'>+{</div><div class='add'>+    return ::rb_catch(q, w, e);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       An equivalent of `Kernel#catch`.</div><div class='add'>+/// @param[in]   q  The "tag" object.</div><div class='add'>+/// @param[in]   w  A function that can throw.</div><div class='add'>+/// @param[in]   e  Passed to `w`.</div><div class='add'>+/// @return      What was thrown.</div><div class='add'>+/// @note        It makes no sense to pass nullptr to`w`.</div><div class='add'>+/// @see         rb_block_call()</div><div class='add'>+/// @see         rb_protect()</div><div class='add'>+/// @see         rb_rb_catch_obj()</div><div class='add'>+/// @see         rb_rescue()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline VALUE</div><div class='add'>+rb_catch_obj(VALUE q, type *w, VALUE e)</div><div class='add'>+{</div><div class='add'>+    rb_block_call_func_t r = reinterpret_cast&lt;rb_block_call_func_t&gt;(w);</div><div class='add'>+    return ::rb_catch_obj(q, r, e);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/// @}</div><div class='add'>+/// @name Procs, Fibers and Threads</div><div class='add'>+/// @{</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Creates a rb_cFiber instance.</div><div class='add'>+/// @param[in]   q  The fiber body.</div><div class='add'>+/// @param[in]   w  Passed to `q`.</div><div class='add'>+/// @return      What was allocated.</div><div class='add'>+/// @note        It makes no sense to pass nullptr to`q`.</div><div class='add'>+/// @see         rb_proc_new()</div><div class='add'>+/// @see         rb_thread_create()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline VALUE</div><div class='add'>+rb_fiber_new(type *q, VALUE w)</div><div class='add'>+{</div><div class='add'>+    rb_block_call_func_t e = reinterpret_cast&lt;rb_block_call_func_t&gt;(q);</div><div class='add'>+    return ::rb_fiber_new(e, w);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Creates a @ref rb_cProc instance.</div><div class='add'>+/// @param[in]   q  The proc body.</div><div class='add'>+/// @param[in]   w  Passed to `q`.</div><div class='add'>+/// @return      What was allocated.</div><div class='add'>+/// @note        It makes no sense to pass nullptr to`q`.</div><div class='add'>+/// @see         rb_fiber_new()</div><div class='add'>+/// @see         rb_thread_create()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline VALUE</div><div class='add'>+rb_proc_new(type *q, VALUE w)</div><div class='add'>+{</div><div class='add'>+    rb_block_call_func_t e = reinterpret_cast&lt;rb_block_call_func_t&gt;(q);</div><div class='add'>+    return ::rb_proc_new(e, w);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Creates a @ref rb_cThread instance.</div><div class='add'>+/// @param[in]   q  The thread body.</div><div class='add'>+/// @param[in]   w  Passed to `q`.</div><div class='add'>+/// @return      What was allocated.</div><div class='add'>+/// @note        It makes no sense to pass nullptr to`q`.</div><div class='add'>+/// @see         rb_proc_new()</div><div class='add'>+/// @see         rb_fiber_new()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline VALUE</div><div class='add'>+rb_thread_create(type *q, void *w)</div><div class='add'>+{</div><div class='add'>+    typedef VALUE ptr_t(void*);</div><div class='add'>+    ptr_t *e = reinterpret_cast&lt;ptr_t*&gt;(q);</div><div class='add'>+    return ::rb_thread_create(e, w);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/// @}</div><div class='add'>+/// @name Hash and st_table</div><div class='add'>+/// @{</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Iteration over the given table.</div><div class='add'>+/// @param[in]   q  A table to scan.</div><div class='add'>+/// @param[in]   w  A function to iterate.</div><div class='add'>+/// @param[in]   e  Passed to `w`.</div><div class='add'>+/// @retval      0  Always returns 0.</div><div class='add'>+/// @note        It makes no sense to pass nullptr to`w`.</div><div class='add'>+/// @see         st_foreach_check()</div><div class='add'>+/// @see         rb_hash_foreach()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline int</div><div class='add'>+st_foreach(st_table *q, int_type *w, st_data_t e)</div><div class='add'>+{</div><div class='add'>+    st_foreach_callback_func *r =</div><div class='add'>+        reinterpret_cast&lt;st_foreach_callback_func*&gt;(w);</div><div class='add'>+    return ::st_foreach(q, r, e);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Iteration over the given table.</div><div class='add'>+/// @param[in]   q  A table to scan.</div><div class='add'>+/// @param[in]   w  A function to iterate.</div><div class='add'>+/// @param[in]   e  Passed to `w`.</div><div class='add'>+/// @retval      0  Successful end of iteration.</div><div class='add'>+/// @retval      1  Element removed during traversing.</div><div class='add'>+/// @note        It makes no sense to pass nullptr to`w`.</div><div class='add'>+/// @see         st_foreach()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline int</div><div class='add'>+st_foreach_check(st_table *q, int_type *w, st_data_t e, st_data_t)</div><div class='add'>+{</div><div class='add'>+    st_foreach_check_callback_func *t =</div><div class='add'>+        reinterpret_cast&lt;st_foreach_check_callback_func*&gt;(w);</div><div class='add'>+    return ::st_foreach_check(q, t, e, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Iteration over the given table.</div><div class='add'>+/// @param[in]   q  A table to scan.</div><div class='add'>+/// @param[in]   w  A function to iterate.</div><div class='add'>+/// @param[in]   e  Passed to `w`.</div><div class='add'>+/// @note        It makes no sense to pass nullptr to`w`.</div><div class='add'>+/// @see         st_foreach_check()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline void</div><div class='add'>+st_foreach_safe(st_table *q, int_type *w, st_data_t e)</div><div class='add'>+{</div><div class='add'>+    st_foreach_callback_func *r =</div><div class='add'>+        reinterpret_cast&lt;st_foreach_callback_func*&gt;(w);</div><div class='add'>+    ::st_foreach_safe(q, r, e);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Iteration over the given hash.</div><div class='add'>+/// @param[in]   q  A hash to scan.</div><div class='add'>+/// @param[in]   w  A function to iterate.</div><div class='add'>+/// @param[in]   e  Passed to `w`.</div><div class='add'>+/// @note        It makes no sense to pass nullptr to`w`.</div><div class='add'>+/// @see         st_foreach()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline void</div><div class='add'>+rb_hash_foreach(VALUE q, int_type *w, VALUE e)</div><div class='add'>+{</div><div class='add'>+    st_foreach_callback_func *r =</div><div class='add'>+        reinterpret_cast&lt;st_foreach_callback_func*&gt;(w);</div><div class='add'>+    ::rb_hash_foreach(q, r, e);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_CXX_DEPRECATED("Use of ANYARGS in this function is deprecated")</div><div class='add'>+/// @brief       Iteration over each instance variable of the object.</div><div class='add'>+/// @param[in]   q  An object.</div><div class='add'>+/// @param[in]   w  A function to iterate.</div><div class='add'>+/// @param[in]   e  Passed to `w`.</div><div class='add'>+/// @note        It makes no sense to pass nullptr to`w`.</div><div class='add'>+/// @see         st_foreach()</div><div class='add'>+/// @deprecated  Use granular typed overload instead.</div><div class='add'>+inline void</div><div class='add'>+rb_ivar_foreach(VALUE q, int_type *w, VALUE e)</div><div class='add'>+{</div><div class='add'>+    st_foreach_callback_func *r =</div><div class='add'>+        reinterpret_cast&lt;st_foreach_callback_func*&gt;(w);</div><div class='add'>+    ::rb_ivar_foreach(q, r, e);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/// @}</div><div class='add'>+</div><div class='add'>+/// Driver for *_define_method.  ::rb_define_method function for instance takes</div><div class='add'>+/// a  pointer to  ANYARGS-ed  functions,  which in  fact  varies 18  different</div><div class='add'>+/// prototypes.  We  still need to  preserve ANYARGS  for storages but  why not</div><div class='add'>+/// check  the consistencies  if  possible.   In C++  a  function  has its  own</div><div class='add'>+/// prototype, which  is a compile-time  constant (static type) by  nature.  We</div><div class='add'>+/// can list  up all the  possible input types  and provide warnings  for other</div><div class='add'>+/// cases.  This is such attempt.</div><div class='add'>+namespace define_method {</div><div class='add'>+</div><div class='add'>+/// Type of ::rb_f_notimplement().</div><div class='add'>+typedef VALUE notimpl_type(int, const VALUE *, VALUE, VALUE);</div><div class='add'>+</div><div class='add'>+/// @brief   Template metaprogramming to generate function prototypes.</div><div class='add'>+/// @tparam  T  Type of method id (`ID` or `const char*` in practice).</div><div class='add'>+/// @tparam  F  Definition driver e.g. ::rb_define_method.</div><div class='add'>+template&lt;typename T, void (*F)(VALUE klass, T mid, type *func, int arity)&gt;</div><div class='add'>+struct driver {</div><div class='add'>+</div><div class='add'>+    /// @brief      Defines a method</div><div class='add'>+    /// @tparam     N  Arity of the function.</div><div class='add'>+    /// @tparam     U  The function in question</div><div class='add'>+    template&lt;int N, typename U&gt;</div><div class='add'>+    struct engine {</div><div class='add'>+</div><div class='add'>+        /* :TODO: Following deprecation attribute renders tons of warnings (one</div><div class='add'>+         * per  every  method  definitions),  which  is  annoying.   Of  course</div><div class='add'>+         * annoyance is the  core feature of deprecation  warnings...  But that</div><div class='add'>+         * could be  too much,  especially when the  warnings happen  inside of</div><div class='add'>+         * machine-generated programs.   And SWIG  is known  to do  such thing.</div><div class='add'>+         * The new  (granular) API was  introduced in  API version 2.7.   As of</div><div class='add'>+         * this writing the  version is 2.8.  Let's warn this  later, some time</div><div class='add'>+         * during 3.x.   Hopefully codes in  old (ANYARGS-ed) format  should be</div><div class='add'>+         * less than now. */</div><div class='add'>+#if (RUBY_API_VERSION_MAJOR * 100 + RUBY_API_VERSION_MINOR) &gt;= 301</div><div class='add'>+        RUBY_CXX_DEPRECATED("use of ANYARGS is deprecated")</div><div class='add'>+#endif</div><div class='add'>+        /// @copydoc define(VALUE klass, T mid, U func)</div><div class='add'>+        /// @deprecated  Pass correctly typed function instead.</div><div class='add'>+        static inline void</div><div class='add'>+        define(VALUE klass, T mid, type func)</div><div class='add'>+        {</div><div class='add'>+            F(klass, mid, func, N);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /// @brief      Defines klass#mid as func, whose arity is N.</div><div class='add'>+        /// @param[in]  klass  Where the method lives.</div><div class='add'>+        /// @param[in]  mid    Name of the method to define.</div><div class='add'>+        /// @param[in]  func   Function that implements klass#mid.</div><div class='add'>+        static inline void</div><div class='add'>+        define(VALUE klass, T mid, U func)</div><div class='add'>+        {</div><div class='add'>+            F(klass, mid, reinterpret_cast&lt;type *&gt;(func), N);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /// @copydoc define(VALUE klass, T mid, U func)</div><div class='add'>+        static inline void</div><div class='add'>+        define(VALUE klass, T mid, notimpl_type func)</div><div class='add'>+        {</div><div class='add'>+            F(klass, mid, reinterpret_cast&lt;type *&gt;(func), N);</div><div class='add'>+        }</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    /// @cond INTERNAL_MACRO</div><div class='add'>+    template&lt;int N, bool = false&gt; struct specific : public engine&lt;N, type *&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;15, b&gt; : public engine&lt;15, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;14, b&gt; : public engine&lt;14, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;13, b&gt; : public engine&lt;13, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;12, b&gt; : public engine&lt;12, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;11, b&gt; : public engine&lt;11, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;10, b&gt; : public engine&lt;10, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 9, b&gt; : public engine&lt; 9, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 8, b&gt; : public engine&lt; 8, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 7, b&gt; : public engine&lt; 7, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 6, b&gt; : public engine&lt; 6, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 5, b&gt; : public engine&lt; 5, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 4, b&gt; : public engine&lt; 4, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 3, b&gt; : public engine&lt; 3, VALUE(*)(VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 2, b&gt; : public engine&lt; 2, VALUE(*)(VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 1, b&gt; : public engine&lt; 1, VALUE(*)(VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 0, b&gt; : public engine&lt; 0, VALUE(*)(VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;-1, b&gt; : public engine&lt;-1, VALUE(*)(int argc, VALUE *argv, VALUE self)&gt; {</div><div class='add'>+        using engine&lt;-1, VALUE(*)(int argc, VALUE *argv, VALUE self)&gt;::define;</div><div class='add'>+        static inline void define(VALUE c, T m, VALUE(*f)(int argc, const VALUE *argv, VALUE self)) { F(c, m, reinterpret_cast&lt;type *&gt;(f), -1); }</div><div class='add'>+    };</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;-2, b&gt; : public engine&lt;-2, VALUE(*)(VALUE, VALUE)&gt; {};</div><div class='add'>+    /// @endcond</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* We could perhaps merge this struct into the one above using variadic</div><div class='add'>+ * template parameters if we could assume C++11, but sadly we cannot. */</div><div class='add'>+/// @copydoc ruby::backward::cxxanyargs::define_method::driver</div><div class='add'>+template&lt;typename T, void (*F)(T mid, type func, int arity)&gt;</div><div class='add'>+struct driver0 {</div><div class='add'>+</div><div class='add'>+    /// @brief      Defines a method</div><div class='add'>+    /// @tparam     N  Arity of the function.</div><div class='add'>+    /// @tparam     U  The function in question</div><div class='add'>+    template&lt;int N, typename U&gt;</div><div class='add'>+    struct engine {</div><div class='add'>+        RUBY_CXX_DEPRECATED("use of ANYARGS is deprecated")</div><div class='add'>+        /// @copydoc define(T mid, U func)</div><div class='add'>+        /// @deprecated  Pass correctly typed function instead.</div><div class='add'>+        static inline void</div><div class='add'>+        define(T mid, type func)</div><div class='add'>+        {</div><div class='add'>+            F(mid, func, N);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /// @brief      Defines Kernel#mid as func, whose arity is N.</div><div class='add'>+        /// @param[in]  mid    Name of the method to define.</div><div class='add'>+        /// @param[in]  func   Function that implements klass#mid.</div><div class='add'>+        static inline void</div><div class='add'>+        define(T mid, U func)</div><div class='add'>+        {</div><div class='add'>+            F(mid, reinterpret_cast&lt;type *&gt;(func), N);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /// @copydoc define(T mid, U func)</div><div class='add'>+        /// @deprecated  Pass correctly typed function instead.</div><div class='add'>+        static inline void</div><div class='add'>+        define(T mid, notimpl_type func)</div><div class='add'>+        {</div><div class='add'>+            F(mid, reinterpret_cast&lt;type *&gt;(func), N);</div><div class='add'>+        }</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    /// @cond INTERNAL_MACRO</div><div class='add'>+    template&lt;int N, bool = false&gt; struct specific : public engine&lt;N, type *&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;15, b&gt; : public engine&lt;15, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;14, b&gt; : public engine&lt;14, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;13, b&gt; : public engine&lt;13, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;12, b&gt; : public engine&lt;12, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;11, b&gt; : public engine&lt;11, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;10, b&gt; : public engine&lt;10, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 9, b&gt; : public engine&lt; 9, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 8, b&gt; : public engine&lt; 8, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 7, b&gt; : public engine&lt; 7, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 6, b&gt; : public engine&lt; 6, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 5, b&gt; : public engine&lt; 5, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 4, b&gt; : public engine&lt; 4, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 3, b&gt; : public engine&lt; 3, VALUE(*)(VALUE, VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 2, b&gt; : public engine&lt; 2, VALUE(*)(VALUE, VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 1, b&gt; : public engine&lt; 1, VALUE(*)(VALUE, VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt; 0, b&gt; : public engine&lt; 0, VALUE(*)(VALUE)&gt; {};</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;-1, b&gt; : public engine&lt;-1, VALUE(*)(int argc, VALUE *argv, VALUE self)&gt; {</div><div class='add'>+        using engine&lt;-1, VALUE(*)(int argc, VALUE *argv, VALUE self)&gt;::define;</div><div class='add'>+        static inline void define(T m, VALUE(*f)(int argc, const VALUE *argv, VALUE self)) { F(m, reinterpret_cast&lt;type *&gt;(f), -1); }</div><div class='add'>+    };</div><div class='add'>+    template&lt;bool b&gt; struct specific&lt;-2, b&gt; : public engine&lt;-2, VALUE(*)(VALUE, VALUE)&gt; {};</div><div class='add'>+    /// @endcond</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct rb_define_method           : public driver &lt;const char *, ::rb_define_method&gt; {};           ///&lt; Dispatches appropriate driver for ::rb_define_method.</div><div class='add'>+struct rb_define_method_id        : public driver &lt;ID,           ::rb_define_method_id&gt; {};        ///&lt; Dispatches appropriate driver for ::rb_define_method_id.</div><div class='add'>+struct rb_define_private_method   : public driver &lt;const char *, ::rb_define_private_method&gt; {};   ///&lt; Dispatches appropriate driver for ::rb_define_private_method.</div><div class='add'>+struct rb_define_protected_method : public driver &lt;const char *, ::rb_define_protected_method&gt; {}; ///&lt; Dispatches appropriate driver for ::rb_define_protected_method.</div><div class='add'>+struct rb_define_singleton_method : public driver &lt;const char *, ::rb_define_singleton_method&gt; {}; ///&lt; Dispatches appropriate driver for ::rb_define_singleton_method.</div><div class='add'>+struct rb_define_module_function  : public driver &lt;const char *, ::rb_define_module_function&gt; {};  ///&lt; Dispatches appropriate driver for ::rb_define_module_function.</div><div class='add'>+struct rb_define_global_function  : public driver0&lt;const char *, ::rb_define_global_function&gt; {};  ///&lt; Dispatches appropriate driver for ::rb_define_global_function.</div><div class='add'>+</div><div class='add'>+/// @brief        Defines klass\#mid.</div><div class='add'>+/// @param        klass  Where the method lives.</div><div class='add'>+/// @copydetails  #rb_define_global_function(mid, func, arity)</div><div class='add'>+#define rb_define_method(klass, mid, func, arity)           ::ruby::backward::cxxanyargs::define_method::rb_define_method::specific&lt;arity&gt;::define(klass, mid, func)</div><div class='add'>+</div><div class='add'>+/// @copydoc #rb_define_method(klass, mid, func, arity)</div><div class='add'>+#define rb_define_method_id(klass, mid, func, arity)        ::ruby::backward::cxxanyargs::define_method::rb_define_method_id::specific&lt;arity&gt;::define(klass, mid, func)</div><div class='add'>+</div><div class='add'>+/// @brief        Defines klass\#mid and makes it private.</div><div class='add'>+/// @copydetails  #rb_define_method(klass, mid, func, arity)</div><div class='add'>+#define rb_define_private_method(klass, mid, func, arity)   ::ruby::backward::cxxanyargs::define_method::rb_define_private_method::specific&lt;arity&gt;::define(klass, mid, func)</div><div class='add'>+</div><div class='add'>+/// @brief        Defines klass\#mid and makes it protected.</div><div class='add'>+/// @copydetails  #rb_define_method</div><div class='add'>+#define rb_define_protected_method(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_protected_method::specific&lt;arity&gt;::define(klass, mid, func)</div><div class='add'>+</div><div class='add'>+/// @brief        Defines klass.mid.(klass, mid, func, arity)</div><div class='add'>+/// @copydetails  #rb_define_method</div><div class='add'>+#define rb_define_singleton_method(klass, mid, func, arity) ::ruby::backward::cxxanyargs::define_method::rb_define_singleton_method::specific&lt;arity&gt;::define(klass, mid, func)</div><div class='add'>+</div><div class='add'>+/// @brief        Defines klass\#mid and makes it a module function.</div><div class='add'>+/// @copydetails  #rb_define_method(klass, mid, func, arity)</div><div class='add'>+#define rb_define_module_function(klass, mid, func, arity)  ::ruby::backward::cxxanyargs::define_method::rb_define_module_function::specific&lt;arity&gt;::define(klass, mid, func)</div><div class='add'>+</div><div class='add'>+/// @brief Defines ::rb_mKernel \#mid.</div><div class='add'>+/// @param mid    Name of the defining method.</div><div class='add'>+/// @param func   Implementation of \#mid.</div><div class='add'>+/// @param arity  Arity of \#mid.</div><div class='add'>+#define rb_define_global_function(mid, func, arity)         ::ruby::backward::cxxanyargs::define_method::rb_define_global_function::specific&lt;arity&gt;::define(mid, func)</div><div class='add'>+</div><div class='add'>+}}}}}</div><div class='add'>+</div><div class='add'>+using namespace ruby::backward::cxxanyargs;</div><div class='add'>+#endif // RUBY_BACKWARD_CXXANYARGS_HPP</div><div class='head'>diff --git a/include/ruby/backward/rubyio.h b/include/ruby/backward/rubyio.h<br/>deleted file mode 100644<br/>index a6e3a7c78b..0000000000<br/>--- a/<a href='/ruby.git/tree/include/ruby/backward/rubyio.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/rubyio.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-#if   defined __GNUC__</div><div class='del'>-#warning use "ruby/io.h" instead of "rubyio.h"</div><div class='del'>-#elif defined _MSC_VER</div><div class='del'>-#pragma message("warning: use \"ruby/io.h\" instead of \"rubyio.h\"")</div><div class='del'>-#endif</div><div class='del'>-#include "ruby/io.h"</div><div class='head'>diff --git a/include/ruby/backward/rubysig.h b/include/ruby/backward/rubysig.h<br/>deleted file mode 100644<br/>index 58b13cab1c..0000000000<br/>--- a/<a href='/ruby.git/tree/include/ruby/backward/rubysig.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/rubysig.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,47 +0,0 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  rubysig.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  $Date$</div><div class='del'>-  created at: Wed Aug 16 01:15:38 JST 1995</div><div class='del'>-</div><div class='del'>-  Copyright (C) 1993-2008 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#if   defined __GNUC__</div><div class='del'>-#warning rubysig.h is obsolete</div><div class='del'>-#elif defined _MSC_VER</div><div class='del'>-#pragma message("warning: rubysig.h is obsolete")</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RUBYSIG_H</div><div class='del'>-#define RUBYSIG_H</div><div class='del'>-#include "ruby/ruby.h"</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-</div><div class='del'>-#define RUBY_CRITICAL(statements) do {statements;} while (0)</div><div class='del'>-#define DEFER_INTS (0)</div><div class='del'>-#define ENABLE_INTS (1)</div><div class='del'>-#define ALLOW_INTS do {CHECK_INTS;} while (0)</div><div class='del'>-#define CHECK_INTS rb_thread_check_ints()</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#endif</div><div class='head'>diff --git a/include/ruby/backward/st.h b/include/ruby/backward/st.h<br/>deleted file mode 100644<br/>index 3e36d44cf8..0000000000<br/>--- a/<a href='/ruby.git/tree/include/ruby/backward/st.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/st.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-#if   defined __GNUC__</div><div class='del'>-#warning use "ruby/st.h" instead of bare "st.h"</div><div class='del'>-#elif defined _MSC_VER</div><div class='del'>-#pragma message("warning: use \"ruby/st.h\" instead of bare \"st.h\"")</div><div class='del'>-#endif</div><div class='del'>-#include "ruby/st.h"</div><div class='head'>diff --git a/include/ruby/backward/util.h b/include/ruby/backward/util.h<br/>deleted file mode 100644<br/>index 11d32a2da8..0000000000<br/>--- a/<a href='/ruby.git/tree/include/ruby/backward/util.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/backward/util.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-#if   defined __GNUC__</div><div class='del'>-#warning use "ruby/util.h" instead of bare "util.h"</div><div class='del'>-#elif defined _MSC_VER</div><div class='del'>-#pragma message("warning: use \"ruby/util.h\" instead of bare \"util.h\"")</div><div class='del'>-#endif</div><div class='del'>-#include "ruby/util.h"</div><div class='head'>diff --git a/include/ruby/debug.h b/include/ruby/debug.h<br/>index 8a831e61ab..f95acdb17e 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/debug.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/debug.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/debug.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/debug.h</a></div><div class='hunk'>@@ -1,97 +1,654 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  ruby/debug.h -</div><div class='del'>-</div><div class='del'>-  $Author: ko1 $</div><div class='del'>-  created at: Tue Nov 20 20:35:08 2012</div><div class='del'>-</div><div class='del'>-  Copyright (C) 2012 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RB_DEBUG_H</div><div class='add'>+#ifndef RB_DEBUG_H                                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RB_DEBUG_H 1</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author: ko1 $</div><div class='add'>+ * @date       Tue Nov 20 20:35:08 2012</div><div class='add'>+ * @copyright  Copyright (C) 2012 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/returns_nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/event.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='ctx'> </div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='ctx'> </div><div class='ctx'> /* Note: This file contains experimental APIs. */</div><div class='ctx'> /* APIs can be replaced at Ruby 2.0.1 or later */</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * @name Frame-profiling APIs</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-/* profile frames APIs */</div><div class='add'>+RBIMPL_ATTR_NONNULL((3))</div><div class='add'>+/**</div><div class='add'>+ * Queries mysterious "frame"s of the given range.</div><div class='add'>+ *</div><div class='add'>+ * The returned values are opaque backtrace  pointers, which you are allowed to</div><div class='add'>+ * issue a very  limited set of operations listed below.   Don't call arbitrary</div><div class='add'>+ * ruby methods.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   start  Start position (0 means the topmost).</div><div class='add'>+ * @param[in]   limit  Number objects of `buff`.</div><div class='add'>+ * @param[out]  buff   Return buffer.</div><div class='add'>+ * @param[out]  lines  Return buffer.</div><div class='add'>+ * @return      Number of objects filled into `buff`.</div><div class='add'>+ * @post        `buff` is filled with backtrace pointers.</div><div class='add'>+ * @post        `lines` is filled with `__LINE__` of each backtraces.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei  doesn't  like  this  abuse  of  ::VALUE.   It  should  have  been</div><div class='add'>+ * `const struct rb_callable_method_entry_struct *`.</div><div class='add'>+ */</div><div class='ctx'> int rb_profile_frames(int start, int limit, VALUE *buff, int *lines);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the path of the passed backtrace.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  frame      What rb_profile_frames() returned.</div><div class='add'>+ * @retval     RUBY_Qnil  The frame is implemented in C etc.</div><div class='add'>+ * @retval     otherwise  Where `frame` is running.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_profile_frame_path(VALUE frame);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_profile_frame_path(),  except   it  tries  to  expand  the</div><div class='add'>+ * returning  path.   In case  the  path  is  `require`-d from  something  else</div><div class='add'>+ * rb_profile_frame_path() can return relative paths.   This one tries to avoid</div><div class='add'>+ * that.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  frame      What rb_profile_frames() returned.</div><div class='add'>+ * @retval     "&lt;cfunc&gt;"  The frame is in C.</div><div class='add'>+ * @retval     RUBY_Qnil  Can't infer real path (inside of `eval` etc.).</div><div class='add'>+ * @retval     otherwise  Where `frame` is running.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_profile_frame_absolute_path(VALUE frame);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries human-readable "label" string.  This is `"&lt;main&gt;"` for the toplevel,</div><div class='add'>+ * `"&lt;compiled&gt;"` for evaluated  ones, method name for methods,  class name for</div><div class='add'>+ * classes.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  frame         What rb_profile_frames() returned.</div><div class='add'>+ * @retval     RUBY_Qnil     Can't infer the label (C etc.).</div><div class='add'>+ * @retval     "&lt;main&gt;"      The frame is global toplevel.</div><div class='add'>+ * @retval     "&lt;compiled&gt;"  The frame is dynamic.</div><div class='add'>+ * @retval     otherwise     Label of the frame.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_profile_frame_label(VALUE frame);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_profile_frame_label(),  except  it does  not "qualify"  the</div><div class='add'>+ * result.  Consider the following backtrace:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * def bar</div><div class='add'>+ *   caller_locations</div><div class='add'>+ * end</div><div class='add'>+ *</div><div class='add'>+ * def foo</div><div class='add'>+ *   [1].map { bar }.first</div><div class='add'>+ * end</div><div class='add'>+ *</div><div class='add'>+ * obj = foo.first</div><div class='add'>+ * obj.label      # =&gt; "block in foo"</div><div class='add'>+ * obj.base_label # =&gt; "foo"</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  frame         What rb_profile_frames() returned.</div><div class='add'>+ * @retval     RUBY_Qnil     Can't infer the label (C etc.).</div><div class='add'>+ * @retval     "&lt;main&gt;"      The frame is global toplevel.</div><div class='add'>+ * @retval     "&lt;compiled&gt;"  The frame is dynamic.</div><div class='add'>+ * @retval     otherwise     Base label of the frame.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_profile_frame_base_label(VALUE frame);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_profile_frame_label(), except it returns a qualified result.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  frame         What rb_profile_frames() returned.</div><div class='add'>+ * @retval     RUBY_Qnil     Can't infer the label (C etc.).</div><div class='add'>+ * @retval     "&lt;main&gt;"      The frame is global toplevel.</div><div class='add'>+ * @retval     "&lt;compiled&gt;"  The frame is dynamic.</div><div class='add'>+ * @retval     otherwise     Qualified label of the frame.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * As  of writing  there is  no way  to obtain  this return  value from  a Ruby</div><div class='add'>+ * script.  This may change  in future (it took 8 years  and still no progress,</div><div class='add'>+ * though).</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_profile_frame_full_label(VALUE frame);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the first  line of the method  of the passed frame  pointer.  Can be</div><div class='add'>+ * handy when for instance a debugger want to display the frame in question.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  frame      What rb_profile_frames() returned.</div><div class='add'>+ * @retval     RUBY_Qnil  Can't infer the line (C etc.).</div><div class='add'>+ * @retval     otherwise  Line number of the method in question.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_profile_frame_first_lineno(VALUE frame);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the class path of the method that the passed frame represents.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  frame      What rb_profile_frames() returned.</div><div class='add'>+ * @retval     RUBY_Qnil  Can't infer the class (global toplevel etc.).</div><div class='add'>+ * @retval     otherwise  Class path as in rb_class_path().</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_profile_frame_classpath(VALUE frame);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the method of the passed frame is a singleton class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  frame        What rb_profile_frames() returned.</div><div class='add'>+ * @retval     RUBY_Qtrue   It is a singleton method.</div><div class='add'>+ * @retval     RUBY_Qfalse  Otherwise (normal method/non-method).</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_profile_frame_singleton_method_p(VALUE frame);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the name of the method of the passed frame.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  frame      What rb_profile_frames() returned.</div><div class='add'>+ * @retval     RUBY_Qnil  The frame in question is not a method.</div><div class='add'>+ * @retval     otherwise  Name of the method of the frame.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_profile_frame_method_name(VALUE frame);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_profile_frame_method_name(),  except  it  "qualifies"  the</div><div class='add'>+ * return value with its defining class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  frame      What rb_profile_frames() returned.</div><div class='add'>+ * @retval     RUBY_Qnil  The frame in question is not a method.</div><div class='add'>+ * @retval     otherwise  Qualified name of the method of the frame.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_profile_frame_qualified_method_name(VALUE frame);</div><div class='ctx'> </div><div class='del'>-/* debug inspector APIs */</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Debug inspector APIs</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/** Opaque struct representing a debug inspector. */</div><div class='ctx'> typedef struct rb_debug_inspector_struct rb_debug_inspector_t;</div><div class='del'>-typedef VALUE (*rb_debug_inspector_func_t)(const rb_debug_inspector_t *, void *);</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * Type  of   the  callback   function  passed   to  rb_debug_inspector_open().</div><div class='add'>+ * Inspection  shall happen  only inside  of  them.  The  passed pointers  gets</div><div class='add'>+ * invalidated once after the callback returns.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      dc    A debug context.</div><div class='add'>+ * @param[in,out]  data  What was passed to rb_debug_inspector_open().</div><div class='add'>+ * @return         What would be the return value of rb_debug_inspector_open().</div><div class='add'>+ */</div><div class='add'>+typedef VALUE (*rb_debug_inspector_func_t)(const rb_debug_inspector_t *dc, void *data);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Prepares, executes, then cleans up a debug session.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      func  A callback to run inside of a debug session.</div><div class='add'>+ * @param[in,out]  data  Passed as-is to `func`.</div><div class='add'>+ * @return         What was returned from `func`.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_debug_inspector_open(rb_debug_inspector_func_t func, void *data);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the backtrace  object  of the  context.   This is  as  if you  call</div><div class='add'>+ * `caller_locations` at the point of debugger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  dc  A debug context.</div><div class='add'>+ * @return     An array  of `Thread::Backtrace::Location` which  represents the</div><div class='add'>+ *             current point of execution at `dc`.</div><div class='add'>+</div><div class='add'>+ */</div><div class='add'>+VALUE rb_debug_inspector_backtrace_locations(const rb_debug_inspector_t *dc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the current receiver of the passed context's upper frame.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  dc           A debug context.</div><div class='add'>+ * @param[in]  index        Index of the frame from top to bottom.</div><div class='add'>+ * @exception  rb_eArgError `index` out of range.</div><div class='add'>+ * @return     The current receiver at `index`-th frame.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_debug_inspector_frame_self_get(const rb_debug_inspector_t *dc, long index);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the current class of the passed context's upper frame.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  dc           A debug context.</div><div class='add'>+ * @param[in]  index        Index of the frame from top to bottom.</div><div class='add'>+ * @exception  rb_eArgError `index` out of range.</div><div class='add'>+ * @return     The current class at `index`-th frame.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_debug_inspector_frame_class_get(const rb_debug_inspector_t *dc, long index);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the binding of the passed context's upper frame.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  dc           A debug context.</div><div class='add'>+ * @param[in]  index        Index of the frame from top to bottom.</div><div class='add'>+ * @exception  rb_eArgError `index` out of range.</div><div class='add'>+ * @return     The binding at `index`-th frame.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_debug_inspector_frame_binding_get(const rb_debug_inspector_t *dc, long index);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the instruction sequence of the passed context's upper frame.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  dc           A debug context.</div><div class='add'>+ * @param[in]  index        Index of the frame from top to bottom.</div><div class='add'>+ * @exception  rb_eArgError `index` out of range.</div><div class='add'>+ * @retval     RUBY_Qnil    `index`-th frame is not in Ruby (C etc.).</div><div class='add'>+ * @retval     otherwise    An instance  of `RubyVM::InstructionSequence` which</div><div class='add'>+ *                          represents the  instruction sequence  at `index`-th</div><div class='add'>+ *                          frame.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_debug_inspector_frame_iseq_get(const rb_debug_inspector_t *dc, long index);</div><div class='del'>-VALUE rb_debug_inspector_backtrace_locations(const rb_debug_inspector_t *dc);</div><div class='ctx'> </div><div class='del'>-/* Old style set_trace_func APIs */</div><div class='add'>+/**</div><div class='add'>+ * Queries the depth of the passed context's upper frame.</div><div class='add'>+ *</div><div class='add'>+ * Note that the depth is not same as the frame index because debug_inspector</div><div class='add'>+ * skips some special frames but the depth counts all frames.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  dc           A debug context.</div><div class='add'>+ * @param[in]  index        Index of the frame from top to bottom.</div><div class='add'>+ * @exception  rb_eArgError `index` out of range.</div><div class='add'>+ * @retval     The depth at `index`-th frame in Integer.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_debug_inspector_frame_depth(const rb_debug_inspector_t *dc, long index);</div><div class='add'>+</div><div class='add'>+// A macro to recognize `rb_debug_inspector_frame_depth()` is available or not</div><div class='add'>+#define RB_DEBUG_INSPECTOR_FRAME_DEPTH(dc, index) rb_debug_inspector_frame_depth(dc, index)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Return current frmae depth.</div><div class='add'>+ *</div><div class='add'>+ * @retval     The depth of the current frame in Integer.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_debug_inspector_current_depth(void);</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Old style set_trace_func APIs</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='ctx'> </div><div class='ctx'> /* duplicated def of include/ruby/ruby.h */</div><div class='del'>-void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data);</div><div class='del'>-int rb_remove_event_hook(rb_event_hook_func_t func);</div><div class='add'>+#include "ruby/internal/event.h"</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_remove_event_hook(), except it additionally  takes the data</div><div class='add'>+ * argument.  This extra  argument is the same as  that of rb_add_event_hook(),</div><div class='add'>+ * and this function removes the hook which matches both arguments at once.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  func  A callback.</div><div class='add'>+ * @param[in]  data  What to be passed to `func`.</div><div class='add'>+ * @return     Number of deleted event hooks.</div><div class='add'>+ * @note       As  multiple  events can  share  the  same  `func` it  is  quite</div><div class='add'>+ *             possible for the return value to become more than one.</div><div class='add'>+ */</div><div class='ctx'> int rb_remove_event_hook_with_data(rb_event_hook_func_t func, VALUE data);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_add_event_hook(), except its effect is limited to the passed</div><div class='add'>+ * thread.  Other threads are not affected by this.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  thval          An instance of ::rb_cThread.</div><div class='add'>+ * @param[in]  func           A callback.</div><div class='add'>+ * @param[in]  events         A set of events that `func` should run.</div><div class='add'>+ * @param[in]  data           Passed as-is to `func`.</div><div class='add'>+ * @exception  rb_eTypeError  `thval` is not a thread.</div><div class='add'>+ */</div><div class='ctx'> void rb_thread_add_event_hook(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_remove_event_hook(), except it additionally  takes a thread</div><div class='add'>+ * argument.     This   extra    argument   is    the   same    as   that    of</div><div class='add'>+ * rb_thread_add_event_hook(), and this function removes the hook which matches</div><div class='add'>+ * both arguments at once.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  thval          An instance of ::rb_cThread.</div><div class='add'>+ * @param[in]  func           A callback.</div><div class='add'>+ * @exception  rb_eTypeError  `thval` is not a thread.</div><div class='add'>+ * @return     Number of deleted event hooks.</div><div class='add'>+ * @note       As  multiple  events can  share  the  same  `func` it  is  quite</div><div class='add'>+ *             possible for the return value to become more than one.</div><div class='add'>+ */</div><div class='ctx'> int rb_thread_remove_event_hook(VALUE thval, rb_event_hook_func_t func);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_thread_remove_event_hook(), except it additionally takes the</div><div class='add'>+ * data  argument.    It  can  also   be  seen   as  a  routine   identical  to</div><div class='add'>+ * rb_remove_event_hook_with_data(), except  it additionally takes  the thread.</div><div class='add'>+ * This function deletes hooks that satisfy all three criteria.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  thval          An instance of ::rb_cThread.</div><div class='add'>+ * @param[in]  func           A callback.</div><div class='add'>+ * @param[in]  data           What to be passed to `func`.</div><div class='add'>+ * @exception  rb_eTypeError  `thval` is not a thread.</div><div class='add'>+ * @return     Number of deleted event hooks.</div><div class='add'>+ * @note       As  multiple  events can  share  the  same  `func` it  is  quite</div><div class='add'>+ *             possible for the return value to become more than one.</div><div class='add'>+ */</div><div class='ctx'> int rb_thread_remove_event_hook_with_data(VALUE thval, rb_event_hook_func_t func, VALUE data);</div><div class='ctx'> </div><div class='del'>-/* TracePoint APIs */</div><div class='add'>+/** @} */</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * @name TracePoint APIs</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a  tracepoint by  registering a  callback function  for one  or more</div><div class='add'>+ * tracepoint   events.  Once   the  tracepoint   is  created,   you  can   use</div><div class='add'>+ * rb_tracepoint_enable to enable the tracepoint.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      target_thread_not_supported_yet  Meant   for   picking   the</div><div class='add'>+ *                         thread  in which  the tracepoint  is to  be created.</div><div class='add'>+ *                         However,   current    implementation   ignore   this</div><div class='add'>+ *                         parameter,  tracepoint is  created for  all threads.</div><div class='add'>+ *                         Simply specify Qnil.</div><div class='add'>+ * @param[in]      events  Event(s) to listen to.</div><div class='add'>+ * @param[in]      func    A callback function.</div><div class='add'>+ * @param[in,out]  data    Void  pointer that  will be  passed to  the callback</div><div class='add'>+ *                         function.</div><div class='add'>+ *</div><div class='add'>+ * When the callback function is called, it will be passed 2 parameters:</div><div class='add'>+ *   1. `VALUE  tpval` -  the TracePoint  object from which  trace args  can be</div><div class='add'>+ *      extracted.</div><div class='add'>+ *   1. `void  *data` -  A void  pointer which  helps to  share scope  with the</div><div class='add'>+ *      callback function.</div><div class='add'>+ *</div><div class='add'>+ * It is important to note that you cannot register callbacks for normal events</div><div class='add'>+ * and internal events simultaneously because  they are different purpose.  You</div><div class='add'>+ * can use  any Ruby APIs  (calling methods and so  on) on normal  event hooks.</div><div class='add'>+ * However, in  internal events,  you can  not use any  Ruby APIs  (even object</div><div class='add'>+ * creations).   This is  why we  can't specify  internal events  by TracePoint</div><div class='add'>+ * directly.  Limitations are MRI version specific.</div><div class='add'>+ *</div><div class='add'>+ * Example:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * rb_tracepoint_new(</div><div class='add'>+ *     Qnil,</div><div class='add'>+ *     RUBY_INTERNAL_EVENT_NEWOBJ | RUBY_INTERNAL_EVENT_FREEOBJ,</div><div class='add'>+ *     obj_event_i,</div><div class='add'>+ *     data);</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * In this  example, a callback  function `obj_event_i` will be  registered for</div><div class='add'>+ * internal           events          #RUBY_INTERNAL_EVENT_NEWOBJ           and</div><div class='add'>+ * #RUBY_INTERNAL_EVENT_FREEOBJ.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracepoint_new(VALUE target_thread_not_supported_yet, rb_event_flag_t events, void (*func)(VALUE, void *), void *data);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Starts (enables) trace(s) defined by the passed object.  A TracePoint object</div><div class='add'>+ * does not immediately  take effect on creation.  You have  to explicitly call</div><div class='add'>+ * this API.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  tpval         An instance of TracePoint.</div><div class='add'>+ * @exception  rb_eArgError  A trace is already running.</div><div class='add'>+ * @return     Undefined value.  Forget this.  It should have returned `void`.</div><div class='add'>+ * @post       Trace(s) defined by `tpval` start.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracepoint_enable(VALUE tpval);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Stops (disables) an already running instance of TracePoint.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  tpval  An instance of TracePoint.</div><div class='add'>+ * @return     Undefined value.  Forget this.  It should have returned `void`.</div><div class='add'>+ * @post       Trace(s) defined by `tpval` stop.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracepoint_disable(VALUE tpval);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the passed TracePoint is up and running.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  tpval        An instance of TracePoint.</div><div class='add'>+ * @retval     RUBY_Qtrue   It is.</div><div class='add'>+ * @retval     RUBY_Qfalse  It isn't.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracepoint_enabled_p(VALUE tpval);</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * Type  that  represents  a  specific  trace  event.   Roughly  resembles  the</div><div class='add'>+ * tracepoint object that is passed to the block of `TracePoint.new`:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * TracePoint.new(*events) do |obj|</div><div class='add'>+ *   ...                    # ^^^^^  Resembles this object.</div><div class='add'>+ * end</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='ctx'> typedef struct rb_trace_arg_struct rb_trace_arg_t;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the current event of the passed tracepoint.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  tpval             An instance of TracePoint.</div><div class='add'>+ * @exception  rb_eRuntimeError  `tpval` is disabled.</div><div class='add'>+ * @return     The current event.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * `tpval` is  a fake.  There is  only one instance of  ::rb_trace_arg_t at one</div><div class='add'>+ * time.  This function just returns that global variable.</div><div class='add'>+ */</div><div class='ctx'> rb_trace_arg_t *rb_tracearg_from_tracepoint(VALUE tpval);</div><div class='ctx'> </div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Queries the event of the passed trace.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg  A trace instance.</div><div class='add'>+ * @return     Its event.</div><div class='add'>+ */</div><div class='ctx'> rb_event_flag_t rb_tracearg_event_flag(rb_trace_arg_t *trace_arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_tracearg_event_flag(), except  it returns  the name  of the</div><div class='add'>+ * event in Ruby's symbol.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg  A trace instance.</div><div class='add'>+ * @return     Its event, in Ruby level Symbol object.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracearg_event(rb_trace_arg_t *trace_arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Queries the line of the point where the trace is at.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg  A trace instance.</div><div class='add'>+ * @retval     0          The trace is not at Ruby frame.</div><div class='add'>+ * @return     otherwise  Its line number.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracearg_lineno(rb_trace_arg_t *trace_arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Queries the file name of the point where the trace is at.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg  A trace instance.</div><div class='add'>+ * @retval     RUBY_Qnil  The trace is not at Ruby frame.</div><div class='add'>+ * @retval     otherwise  Its path.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracearg_path(rb_trace_arg_t *trace_arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Queries the method name of the point where the trace is at.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg  A trace instance.</div><div class='add'>+ * @retval     RUBY_Qnil  There is no method.</div><div class='add'>+ * @retval     otherwise  Its method name, in Ruby level Symbol.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracearg_method_id(rb_trace_arg_t *trace_arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_tracearg_method_id(), except  it  returns  callee id  like</div><div class='add'>+ * rb_frame_callee().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg  A trace instance.</div><div class='add'>+ * @retval     RUBY_Qnil  There is no method.</div><div class='add'>+ * @retval     otherwise  Its method name, in Ruby level Symbol.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracearg_callee_id(rb_trace_arg_t *trace_arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Queries the class that defines the method that the passed trace is at.  This</div><div class='add'>+ * can be different from the class of rb_tracearg_self()'s return value because</div><div class='add'>+ * of inheritance(s).</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg  A trace instance.</div><div class='add'>+ * @retval     RUBY_Qnil  There is no method.</div><div class='add'>+ * @retval     otherwise  Its method's class.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracearg_defined_class(rb_trace_arg_t *trace_arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Creates a binding object of the point where the trace is at.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg  A trace instance.</div><div class='add'>+ * @retval     RUBY_Qnil  The point has no binding.</div><div class='add'>+ * @retval     otherwise  Its binding.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei  has  no  idea  on  which situation  shall  this  function  return</div><div class='add'>+ * ::RUBY_Qnil.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracearg_binding(rb_trace_arg_t *trace_arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Queries the receiver of the point trace is at.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg  A trace instance.</div><div class='add'>+ * @return     Its receiver.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracearg_self(rb_trace_arg_t *trace_arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Queries the return value that the trace represents.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg         A trace instance.</div><div class='add'>+ * @exception  rb_eRuntimeError  The tracing event is not return-related.</div><div class='add'>+ * @return     The return value.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracearg_return_value(rb_trace_arg_t *trace_arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Queries the raised exception that the trace represents.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg         A trace instance.</div><div class='add'>+ * @exception  rb_eRuntimeError  The tracing event is not exception-related.</div><div class='add'>+ * @return     The raised exception.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracearg_raised_exception(rb_trace_arg_t *trace_arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Queries the allocated/deallocated object that the trace represents.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  trace_arg         A trace instance.</div><div class='add'>+ * @exception  rb_eRuntimeError  The tracing event is not GC-related.</div><div class='add'>+ * @return     The allocated/deallocated object.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_tracearg_object(rb_trace_arg_t *trace_arg);</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Postponed Job API</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  * Postponed Job API</div><div class='ctx'>  * rb_postponed_job_register and rb_postponed_job_register_one are</div><div class='ctx'>  * async-signal-safe and used via SIGPROF by the "stackprof" RubyGem</div><div class='ctx'>  */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Type of postponed jobs.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  arg What was passed to rb_postponed_job_register().</div><div class='add'>+ */</div><div class='ctx'> typedef void (*rb_postponed_job_func_t)(void *arg);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Registers a postponed job.</div><div class='add'>+ *</div><div class='add'>+ * There  are situations  when running  a ruby  program is  not possible.   For</div><div class='add'>+ * instance when  a program is in  a signal handler; for  another instance when</div><div class='add'>+ * the GC  is busy.   On such situations  however, there might  be needs  to do</div><div class='add'>+ * something.  We cannot but defer such operations until we are 100% sure it is</div><div class='add'>+ * safe  to execute  them.   This  mechanism is  called  postponed jobs.   This</div><div class='add'>+ * function  registers a  new one.   The registered  job would  eventually gets</div><div class='add'>+ * executed.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      flags      (Unused) reserved for future extensions.</div><div class='add'>+ * @param[in]      func       Job body.</div><div class='add'>+ * @param[in,out]  data       Passed as-is to `func`.</div><div class='add'>+ * @retval         0          Postponed job buffer is full.  Failed.</div><div class='add'>+ * @retval         otherwise  Opaque return value.</div><div class='add'>+ * @post           The passed job is postponed.</div><div class='add'>+ */</div><div class='ctx'> int rb_postponed_job_register(unsigned int flags, rb_postponed_job_func_t func, void *data);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_postponed_job_register_one(),  except it additionally checks</div><div class='add'>+ * for  duplicated registration.   In case  the passed  job is  already in  the</div><div class='add'>+ * postponed job buffer this function does nothing.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      flags      (Unused) reserved for future extensions.</div><div class='add'>+ * @param[in]      func       Job body.</div><div class='add'>+ * @param[in,out]  data       Passed as-is to `func`.</div><div class='add'>+ * @retval         0          Postponed job buffer is full.  Failed.</div><div class='add'>+ * @retval         otherwise  Opaque return value.</div><div class='add'>+ */</div><div class='ctx'> int rb_postponed_job_register_one(unsigned int flags, rb_postponed_job_func_t func, void *data);</div><div class='ctx'> </div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @cond INTERNAL_MACRO</div><div class='add'>+ *</div><div class='add'>+ * Anything  after this  are  intentionally left  undocumented,  to honour  the</div><div class='add'>+ * comment below.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> /* undocumented advanced tracing APIs */</div><div class='ctx'> </div><div class='ctx'> typedef enum {</div><div class='hunk'>@@ -103,13 +660,8 @@ typedef enum {</div><div class='ctx'> void rb_add_event_hook2(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_event_hook_flag_t hook_flag);</div><div class='ctx'> void rb_thread_add_event_hook2(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_event_hook_flag_t hook_flag);</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='add'>+/** @endcond */</div><div class='ctx'> </div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='ctx'> </div><div class='ctx'> #endif /* RUBY_DEBUG_H */</div><div class='head'>diff --git a/include/ruby/defines.h b/include/ruby/defines.h<br/>index cbf5537790..48184f8a18 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/defines.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/defines.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/defines.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/defines.h</a></div><div class='hunk'>@@ -1,132 +1,28 @@</div><div class='del'>-/************************************************</div><div class='del'>-</div><div class='del'>-  defines.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Wed May 18 00:21:44 JST 1994</div><div class='del'>-</div><div class='del'>-************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_DEFINES_H</div><div class='add'>+#ifndef RUBY_DEFINES_H                               /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_DEFINES_H 1</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include "ruby/config.h"</div><div class='del'>-#ifdef RUBY_EXTCONF_H</div><div class='del'>-#include RUBY_EXTCONF_H</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* function attributes */</div><div class='del'>-#ifndef CONSTFUNC</div><div class='del'>-# define CONSTFUNC(x) x</div><div class='del'>-#endif</div><div class='del'>-#ifndef PUREFUNC</div><div class='del'>-# define PUREFUNC(x) x</div><div class='del'>-#endif</div><div class='del'>-#ifndef DEPRECATED</div><div class='del'>-# define DEPRECATED(x) x</div><div class='del'>-#endif</div><div class='del'>-#ifndef DEPRECATED_BY</div><div class='del'>-# define DEPRECATED_BY(n,x) DEPRECATED(x)</div><div class='del'>-#endif</div><div class='del'>-#ifndef DEPRECATED_TYPE</div><div class='del'>-# define DEPRECATED_TYPE(mesg, decl) decl</div><div class='del'>-#endif</div><div class='del'>-#ifndef NOINLINE</div><div class='del'>-# define NOINLINE(x) x</div><div class='del'>-#endif</div><div class='del'>-#ifndef ALWAYS_INLINE</div><div class='del'>-# define ALWAYS_INLINE(x) x</div><div class='del'>-#endif</div><div class='del'>-#ifndef ERRORFUNC</div><div class='del'>-# define HAVE_ATTRIBUTE_ERRORFUNC 0</div><div class='del'>-# define ERRORFUNC(mesg, x) x</div><div class='del'>-#else</div><div class='del'>-# define HAVE_ATTRIBUTE_ERRORFUNC 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef WARNINGFUNC</div><div class='del'>-# define HAVE_ATTRIBUTE_WARNINGFUNC 0</div><div class='del'>-# define WARNINGFUNC(mesg, x) x</div><div class='del'>-#else</div><div class='del'>-# define HAVE_ATTRIBUTE_WARNINGFUNC 1</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef GCC_VERSION_SINCE</div><div class='del'>-# if defined(__GNUC__) &amp;&amp; !defined(__INTEL_COMPILER) &amp;&amp; !defined(__clang__)</div><div class='del'>-#  define GCC_VERSION_SINCE(major, minor, patchlevel) \</div><div class='del'>-    ((__GNUC__ &gt; (major)) ||  \</div><div class='del'>-     ((__GNUC__ == (major) &amp;&amp; \</div><div class='del'>-       ((__GNUC_MINOR__ &gt; (minor)) || \</div><div class='del'>-        (__GNUC_MINOR__ == (minor) &amp;&amp; __GNUC_PATCHLEVEL__ &gt;= (patchlevel))))))</div><div class='del'>-# else</div><div class='del'>-#  define GCC_VERSION_SINCE(major, minor, patchlevel) 0</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-#ifndef GCC_VERSION_BEFORE</div><div class='del'>-# if defined(__GNUC__) &amp;&amp; !defined(__INTEL_COMPILER) &amp;&amp; !defined(__clang__)</div><div class='del'>-#  define GCC_VERSION_BEFORE(major, minor, patchlevel) \</div><div class='del'>-    ((__GNUC__ &lt; (major)) ||  \</div><div class='del'>-     ((__GNUC__ == (major) &amp;&amp; \</div><div class='del'>-       ((__GNUC_MINOR__ &lt; (minor)) || \</div><div class='del'>-        (__GNUC_MINOR__ == (minor) &amp;&amp; __GNUC_PATCHLEVEL__ &lt;= (patchlevel))))))</div><div class='del'>-# else</div><div class='del'>-#  define GCC_VERSION_BEFORE(major, minor, patchlevel) 0</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* likely */</div><div class='del'>-#if __GNUC__ &gt;= 3</div><div class='del'>-#define RB_LIKELY(x)   (__builtin_expect(!!(x), 1))</div><div class='del'>-#define RB_UNLIKELY(x) (__builtin_expect(!!(x), 0))</div><div class='del'>-#else /* __GNUC__ &gt;= 3 */</div><div class='del'>-#define RB_LIKELY(x)   (x)</div><div class='del'>-#define RB_UNLIKELY(x) (x)</div><div class='del'>-#endif /* __GNUC__ &gt;= 3 */</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>-  cold attribute for code layout improvements</div><div class='del'>-  RUBY_FUNC_ATTRIBUTE not used because MSVC does not like nested func macros</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @date       Wed May 18 00:21:44 JST 1994</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='ctx'>  */</div><div class='del'>-#if defined(__clang__) || GCC_VERSION_SINCE(4, 3, 0)</div><div class='del'>-#define COLDFUNC __attribute__((cold))</div><div class='del'>-#else</div><div class='del'>-#define COLDFUNC</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#if defined __MINGW_PRINTF_FORMAT</div><div class='del'>-#define PRINTF_ARGS(decl, string_index, first_to_check) \</div><div class='del'>-  decl __attribute__((format(__MINGW_PRINTF_FORMAT, string_index, first_to_check)))</div><div class='del'>-#else</div><div class='del'>-#define PRINTF_ARGS(decl, string_index, first_to_check) \</div><div class='del'>-  decl __attribute__((format(printf, string_index, first_to_check)))</div><div class='del'>-#endif</div><div class='del'>-#else</div><div class='del'>-#define PRINTF_ARGS(decl, string_index, first_to_check) decl</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#define RB_GNUC_EXTENSION __extension__</div><div class='del'>-#define RB_GNUC_EXTENSION_BLOCK(x) __extension__ ({ x; })</div><div class='del'>-#else</div><div class='del'>-#define RB_GNUC_EXTENSION</div><div class='del'>-#define RB_GNUC_EXTENSION_BLOCK(x) (x)</div><div class='del'>-#endif</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> </div><div class='ctx'> /* AC_INCLUDES_DEFAULT */</div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_SYS_TYPES_H</div><div class='ctx'> # include &lt;sys/types.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_SYS_STAT_H</div><div class='ctx'> # include &lt;sys/stat.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef STDC_HEADERS</div><div class='ctx'> # include &lt;stdlib.h&gt;</div><div class='ctx'> # include &lt;stddef.h&gt;</div><div class='hunk'>@@ -135,24 +31,30 @@ extern "C" {</div><div class='ctx'> #  include &lt;stdlib.h&gt;</div><div class='ctx'> # endif</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_STRING_H</div><div class='ctx'> # if !defined STDC_HEADERS &amp;&amp; defined HAVE_MEMORY_H</div><div class='ctx'> #  include &lt;memory.h&gt;</div><div class='ctx'> # endif</div><div class='ctx'> # include &lt;string.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_STRINGS_H</div><div class='ctx'> # include &lt;strings.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_INTTYPES_H</div><div class='ctx'> # include &lt;inttypes.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_STDINT_H</div><div class='ctx'> # include &lt;stdint.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_STDALIGN_H</div><div class='ctx'> # include &lt;stdalign.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_UNISTD_H</div><div class='ctx'> # include &lt;unistd.h&gt;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -162,354 +64,53 @@ extern "C" {</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef RUBY_USE_SETJMPEX</div><div class='del'>-#include &lt;setjmpex.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='add'>+# include &lt;setjmpex.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/xmalloc.h"</div><div class='add'>+#include "ruby/backward/2/assume.h"</div><div class='add'>+#include "ruby/backward/2/attributes.h"</div><div class='add'>+#include "ruby/backward/2/bool.h"</div><div class='add'>+#include "ruby/backward/2/long_long.h"</div><div class='add'>+#include "ruby/backward/2/stdalign.h"</div><div class='add'>+#include "ruby/backward/2/stdarg.h"</div><div class='add'>+#include "ruby/internal/dosish.h"</div><div class='ctx'> #include "ruby/missing.h"</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * Asserts that the compilation unit includes  Ruby's CAPI.  This has been here</div><div class='add'>+ * since the very beginning (at least since version 0.49).</div><div class='add'>+ */</div><div class='ctx'> #define RUBY</div><div class='ctx'> </div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-# ifndef  HAVE_PROTOTYPES</div><div class='del'>-#  define HAVE_PROTOTYPES 1</div><div class='del'>-# endif</div><div class='del'>-# ifndef  HAVE_STDARG_PROTOTYPES</div><div class='del'>-#  define HAVE_STDARG_PROTOTYPES 1</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#undef _</div><div class='del'>-#ifdef HAVE_PROTOTYPES</div><div class='del'>-# define _(args) args</div><div class='del'>-#else</div><div class='del'>-# define _(args) ()</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#undef __</div><div class='del'>-#ifdef HAVE_STDARG_PROTOTYPES</div><div class='del'>-# define __(args) args</div><div class='del'>-#else</div><div class='del'>-# define __(args) ()</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-#define ANYARGS ...</div><div class='del'>-#else</div><div class='del'>-#define ANYARGS</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-# define RUBY_SYMBOL_EXPORT_BEGIN /* begin */</div><div class='del'>-# define RUBY_SYMBOL_EXPORT_END   /* end */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-</div><div class='del'>-#define xmalloc ruby_xmalloc</div><div class='del'>-#define xmalloc2 ruby_xmalloc2</div><div class='del'>-#define xcalloc ruby_xcalloc</div><div class='del'>-#define xrealloc ruby_xrealloc</div><div class='del'>-#define xrealloc2 ruby_xrealloc2</div><div class='del'>-#define xfree ruby_xfree</div><div class='del'>-</div><div class='del'>-#if GCC_VERSION_SINCE(4,3,0)</div><div class='del'>-# define RUBY_ATTR_ALLOC_SIZE(params) __attribute__ ((alloc_size params))</div><div class='add'>+#ifdef __GNUC__</div><div class='add'>+# /** This is expanded to nothing for non-GCC compilers. */</div><div class='add'>+# define RB_GNUC_EXTENSION __extension__</div><div class='add'>+# /** This is expanded to the passed token for non-GCC compilers. */</div><div class='add'>+# define RB_GNUC_EXTENSION_BLOCK(x) __extension__ ({ x; })</div><div class='ctx'> #else</div><div class='del'>-# define RUBY_ATTR_ALLOC_SIZE(params)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-void *ruby_xmalloc(size_t) RUBY_ATTR_ALLOC_SIZE((1));</div><div class='del'>-void *ruby_xmalloc2(size_t,size_t) RUBY_ATTR_ALLOC_SIZE((1,2));</div><div class='del'>-void *ruby_xcalloc(size_t,size_t) RUBY_ATTR_ALLOC_SIZE((1,2));</div><div class='del'>-void *ruby_xrealloc(void*,size_t) RUBY_ATTR_ALLOC_SIZE((2));</div><div class='del'>-void *ruby_xrealloc2(void*,size_t,size_t) RUBY_ATTR_ALLOC_SIZE((2,3));</div><div class='del'>-void ruby_xfree(void*);</div><div class='del'>-</div><div class='del'>-#ifndef USE_GC_MALLOC_OBJ_INFO_DETAILS</div><div class='del'>-#define USE_GC_MALLOC_OBJ_INFO_DETAILS 0</div><div class='add'>+# define RB_GNUC_EXTENSION</div><div class='add'>+# define RB_GNUC_EXTENSION_BLOCK(x) (x)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if USE_GC_MALLOC_OBJ_INFO_DETAILS</div><div class='del'>-</div><div class='del'>-void *ruby_xmalloc_body(size_t) RUBY_ATTR_ALLOC_SIZE((1));</div><div class='del'>-void *ruby_xmalloc2_body(size_t,size_t) RUBY_ATTR_ALLOC_SIZE((1,2));</div><div class='del'>-void *ruby_xcalloc_body(size_t,size_t) RUBY_ATTR_ALLOC_SIZE((1,2));</div><div class='del'>-void *ruby_xrealloc_body(void*,size_t) RUBY_ATTR_ALLOC_SIZE((2));</div><div class='del'>-void *ruby_xrealloc2_body(void*,size_t,size_t) RUBY_ATTR_ALLOC_SIZE((2,3));</div><div class='del'>-</div><div class='del'>-#define ruby_xmalloc(s1)            ruby_xmalloc_with_location(s1, __FILE__, __LINE__)</div><div class='del'>-#define ruby_xmalloc2(s1, s2)       ruby_xmalloc2_with_location(s1, s2, __FILE__, __LINE__)</div><div class='del'>-#define ruby_xcalloc(s1, s2)        ruby_xcalloc_with_location(s1, s2, __FILE__, __LINE__)</div><div class='del'>-#define ruby_xrealloc(ptr, s1)      ruby_xrealloc_with_location(ptr, s1, __FILE__, __LINE__)</div><div class='del'>-#define ruby_xrealloc2(ptr, s1, s2) ruby_xrealloc2_with_location(ptr, s1, s2, __FILE__, __LINE__)</div><div class='del'>-</div><div class='del'>-extern const char *ruby_malloc_info_file;</div><div class='del'>-extern int ruby_malloc_info_line;</div><div class='del'>-</div><div class='del'>-static inline void *</div><div class='del'>-ruby_xmalloc_with_location(size_t s, const char *file, int line)</div><div class='del'>-{</div><div class='del'>-    void *ptr;</div><div class='del'>-    ruby_malloc_info_file = file;</div><div class='del'>-    ruby_malloc_info_line = line;</div><div class='del'>-    ptr = ruby_xmalloc_body(s);</div><div class='del'>-    ruby_malloc_info_file = NULL;</div><div class='del'>-    return ptr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline void *</div><div class='del'>-ruby_xmalloc2_with_location(size_t s1, size_t s2, const char *file, int line)</div><div class='del'>-{</div><div class='del'>-    void *ptr;</div><div class='del'>-    ruby_malloc_info_file = file;</div><div class='del'>-    ruby_malloc_info_line = line;</div><div class='del'>-    ptr = ruby_xmalloc2_body(s1, s2);</div><div class='del'>-    ruby_malloc_info_file = NULL;</div><div class='del'>-    return ptr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline void *</div><div class='del'>-ruby_xcalloc_with_location(size_t s1, size_t s2, const char *file, int line)</div><div class='del'>-{</div><div class='del'>-    void *ptr;</div><div class='del'>-    ruby_malloc_info_file = file;</div><div class='del'>-    ruby_malloc_info_line = line;</div><div class='del'>-    ptr = ruby_xcalloc_body(s1, s2);</div><div class='del'>-    ruby_malloc_info_file = NULL;</div><div class='del'>-    return ptr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline void *</div><div class='del'>-ruby_xrealloc_with_location(void *ptr, size_t s, const char *file, int line)</div><div class='del'>-{</div><div class='del'>-    void *rptr;</div><div class='del'>-    ruby_malloc_info_file = file;</div><div class='del'>-    ruby_malloc_info_line = line;</div><div class='del'>-    rptr = ruby_xrealloc_body(ptr, s);</div><div class='del'>-    ruby_malloc_info_file = NULL;</div><div class='del'>-    return rptr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline void *</div><div class='del'>-ruby_xrealloc2_with_location(void *ptr, size_t s1, size_t s2, const char *file, int line)</div><div class='del'>-{</div><div class='del'>-    void *rptr;</div><div class='del'>-    ruby_malloc_info_file = file;</div><div class='del'>-    ruby_malloc_info_line = line;</div><div class='del'>-    rptr = ruby_xrealloc2_body(ptr, s1, s2);</div><div class='del'>-    ruby_malloc_info_file = NULL;</div><div class='del'>-    return rptr;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define STRINGIZE(expr) STRINGIZE0(expr)</div><div class='del'>-#ifndef STRINGIZE0</div><div class='del'>-#define STRINGIZE0(expr) #expr</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_LONG_LONG</div><div class='del'>-# define HAVE_TRUE_LONG_LONG 1</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if SIZEOF_LONG_LONG &gt; 0</div><div class='del'>-# define LONG_LONG long long</div><div class='del'>-#elif SIZEOF___INT64 &gt; 0</div><div class='del'>-# define HAVE_LONG_LONG 1</div><div class='del'>-# define LONG_LONG __int64</div><div class='del'>-# undef SIZEOF_LONG_LONG</div><div class='del'>-# define SIZEOF_LONG_LONG SIZEOF___INT64</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef __CYGWIN__</div><div class='del'>-#undef _WIN32</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(_WIN32)</div><div class='del'>-/*</div><div class='del'>-  DOSISH mean MS-Windows style filesystem.</div><div class='del'>-  But you should use more precise macros like DOSISH_DRIVE_LETTER, PATH_SEP,</div><div class='del'>-  ENV_IGNORECASE or CASEFOLD_FILESYSTEM.</div><div class='del'>- */</div><div class='del'>-#define DOSISH 1</div><div class='del'>-# define DOSISH_DRIVE_LETTER</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef AC_APPLE_UNIVERSAL_BUILD</div><div class='del'>-#undef WORDS_BIGENDIAN</div><div class='del'>-#ifdef __BIG_ENDIAN__</div><div class='del'>-#define WORDS_BIGENDIAN</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef _WIN32</div><div class='del'>-#include "ruby/win32.h"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef RUBY_EXPORT</div><div class='del'>-#undef RUBY_EXTERN</div><div class='del'>-</div><div class='del'>-#ifndef FALSE</div><div class='del'>-# define FALSE 0</div><div class='del'>-#elif FALSE</div><div class='del'>-# error FALSE must be false</div><div class='del'>-#endif</div><div class='del'>-#ifndef TRUE</div><div class='del'>-# define TRUE 1</div><div class='del'>-#elif !TRUE</div><div class='del'>-# error TRUE must be true</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_FUNC_EXPORTED</div><div class='del'>-#define RUBY_FUNC_EXPORTED</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* These macros are used for functions which are exported only for MJIT</div><div class='del'>-   and NOT ensured to be exported in future versions. */</div><div class='del'>-#define MJIT_FUNC_EXPORTED RUBY_FUNC_EXPORTED</div><div class='del'>-#define MJIT_SYMBOL_EXPORT_BEGIN RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-#define MJIT_SYMBOL_EXPORT_END RUBY_SYMBOL_EXPORT_END</div><div class='del'>-</div><div class='del'>-#if defined(MJIT_HEADER) &amp;&amp; defined(_MSC_VER)</div><div class='del'>-# undef MJIT_FUNC_EXPORTED</div><div class='del'>-# define MJIT_FUNC_EXPORTED static</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_EXTERN</div><div class='del'>-#define RUBY_EXTERN extern</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef EXTERN</div><div class='del'>-# if defined __GNUC__</div><div class='del'>-#   define EXTERN _Pragma("message \"EXTERN is deprecated, use RUBY_EXTERN instead\""); \</div><div class='del'>-    RUBY_EXTERN</div><div class='del'>-# elif defined _MSC_VER</div><div class='del'>-#   define EXTERN __pragma(message(__FILE__"("STRINGIZE(__LINE__)"): warning: "\</div><div class='del'>-				   "EXTERN is deprecated, use RUBY_EXTERN instead")); \</div><div class='del'>-    RUBY_EXTERN</div><div class='del'>-# else</div><div class='del'>-#   define EXTERN &lt;-&lt;-"EXTERN is deprecated, use RUBY_EXTERN instead"-&gt;-&gt;</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='ctx'> </div><div class='add'>+/* :FIXME:  Can someone  tell us  why is  this macro  defined here?   @shyouhei</div><div class='add'>+ * thinks this  is a  truly internal  macro but cannot  move around  because he</div><div class='add'>+ * doesn't understand the reason of this arrangement. */</div><div class='ctx'> #ifndef RUBY_MBCHAR_MAXSIZE</div><div class='del'>-#define RUBY_MBCHAR_MAXSIZE INT_MAX</div><div class='del'>-        /* MB_CUR_MAX will not work well in C locale */</div><div class='add'>+# define RUBY_MBCHAR_MAXSIZE INT_MAX</div><div class='add'>+# /* MB_CUR_MAX will not work well in C locale */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if defined(__sparc)</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='ctx'> void rb_sparc_flush_register_windows(void);</div><div class='del'>-#  define FLUSH_REGISTER_WINDOWS rb_sparc_flush_register_windows()</div><div class='del'>-#elif defined(__ia64)</div><div class='del'>-void *rb_ia64_bsp(void);</div><div class='del'>-void rb_ia64_flushrs(void);</div><div class='del'>-#  define FLUSH_REGISTER_WINDOWS rb_ia64_flushrs()</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+# define FLUSH_REGISTER_WINDOWS rb_sparc_flush_register_windows()</div><div class='ctx'> #else</div><div class='del'>-#  define FLUSH_REGISTER_WINDOWS ((void)0)</div><div class='add'>+# define FLUSH_REGISTER_WINDOWS ((void)0)</div><div class='ctx'> #endif</div><div class='del'>-</div><div class='del'>-#if defined(DOSISH)</div><div class='del'>-#define PATH_SEP ";"</div><div class='del'>-#else</div><div class='del'>-#define PATH_SEP ":"</div><div class='del'>-#endif</div><div class='del'>-#define PATH_SEP_CHAR PATH_SEP[0]</div><div class='del'>-</div><div class='del'>-#define PATH_ENV "PATH"</div><div class='del'>-</div><div class='del'>-#if defined(DOSISH)</div><div class='del'>-#define ENV_IGNORECASE</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef CASEFOLD_FILESYSTEM</div><div class='del'>-# if defined DOSISH</div><div class='del'>-#   define CASEFOLD_FILESYSTEM 1</div><div class='del'>-# else</div><div class='del'>-#   define CASEFOLD_FILESYSTEM 0</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef DLEXT_MAXLEN</div><div class='del'>-#define DLEXT_MAXLEN 4</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_PLATFORM</div><div class='del'>-#define RUBY_PLATFORM "unknown-unknown"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef FUNC_MINIMIZED</div><div class='del'>-#define FUNC_MINIMIZED(x) x</div><div class='del'>-#endif</div><div class='del'>-#ifndef FUNC_UNOPTIMIZED</div><div class='del'>-#define FUNC_UNOPTIMIZED(x) x</div><div class='del'>-#endif</div><div class='del'>-#ifndef RUBY_ALIAS_FUNCTION_TYPE</div><div class='del'>-#define RUBY_ALIAS_FUNCTION_TYPE(type, prot, name, args) \</div><div class='del'>-    FUNC_MINIMIZED(type prot) {return (type)name args;}</div><div class='del'>-#endif</div><div class='del'>-#ifndef RUBY_ALIAS_FUNCTION_VOID</div><div class='del'>-#define RUBY_ALIAS_FUNCTION_VOID(prot, name, args) \</div><div class='del'>-    FUNC_MINIMIZED(void prot) {name args;}</div><div class='del'>-#endif</div><div class='del'>-#ifndef RUBY_ALIAS_FUNCTION</div><div class='del'>-#define RUBY_ALIAS_FUNCTION(prot, name, args) \</div><div class='del'>-    RUBY_ALIAS_FUNCTION_TYPE(VALUE, prot, name, args)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef UNALIGNED_WORD_ACCESS</div><div class='del'>-# if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \</div><div class='del'>-     defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || \</div><div class='del'>-     defined(__powerpc64__) || \</div><div class='del'>-     defined(__mc68020__)</div><div class='del'>-#   define UNALIGNED_WORD_ACCESS 1</div><div class='del'>-# else</div><div class='del'>-#   define UNALIGNED_WORD_ACCESS 0</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-#ifndef PACKED_STRUCT</div><div class='del'>-# define PACKED_STRUCT(x) x</div><div class='del'>-#endif</div><div class='del'>-#ifndef PACKED_STRUCT_UNALIGNED</div><div class='del'>-# if UNALIGNED_WORD_ACCESS</div><div class='del'>-#   define PACKED_STRUCT_UNALIGNED(x) PACKED_STRUCT(x)</div><div class='del'>-# else</div><div class='del'>-#   define PACKED_STRUCT_UNALIGNED(x) x</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_ALIGNAS</div><div class='del'>-#define RUBY_ALIGNAS(x) /* x */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef RUBY_ALIGNOF</div><div class='del'>-/* OK, take that definition */</div><div class='del'>-#elif defined(__cplusplus) &amp;&amp; (__cplusplus &gt;= 201103L)</div><div class='del'>-#define RUBY_ALIGNOF alignof</div><div class='del'>-#elif defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 201112L)</div><div class='del'>-#define RUBY_ALIGNOF _Alignof</div><div class='del'>-#else</div><div class='del'>-#define RUBY_ALIGNOF(type) ((size_t)offsetof(struct { char f1; type f2; }, f2))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define NORETURN_STYLE_NEW 1</div><div class='del'>-#ifdef NORETURN</div><div class='del'>-/* OK, take that definition */</div><div class='del'>-#elif defined(__cplusplus) &amp;&amp; (__cplusplus &gt;= 201103L)</div><div class='del'>-#define NORETURN(x) [[ noreturn ]] x</div><div class='del'>-#elif defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 201112L)</div><div class='del'>-#define NORETURN(x) _Noreturn x</div><div class='del'>-#else</div><div class='del'>-#define NORETURN(x) x</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='add'>+/** @endcond */</div><div class='ctx'> #endif /* RUBY_DEFINES_H */</div><div class='head'>diff --git a/include/ruby/encoding.h b/include/ruby/encoding.h<br/>index 93939ee7db..1256393701 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/encoding.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/encoding.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/encoding.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/encoding.h</a></div><div class='hunk'>@@ -1,429 +1,31 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  encoding.h -</div><div class='del'>-</div><div class='del'>-  $Author: matz $</div><div class='del'>-  created at: Thu May 24 11:49:41 JST 2007</div><div class='del'>-</div><div class='del'>-  Copyright (C) 2007 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_ENCODING_H</div><div class='add'>+#ifndef RUBY_ENCODING_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_ENCODING_H 1</div><div class='del'>-</div><div class='del'>-#ifdef RUBY_INTERNAL_H</div><div class='del'>-#error "Include this file before internal.h"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include &lt;stdarg.h&gt;</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author: matz $</div><div class='add'>+ * @date       Thu May 24 11:49:41 JST 2007</div><div class='add'>+ * @copyright  Copyright (C) 2007 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Encoding relates APIs.</div><div class='add'>+ *</div><div class='add'>+ * These APIs are mainly for  implementing encodings themselves.  Encodings are</div><div class='add'>+ * built on  top of  Ruby's core  CAPIs.  Though not  prohibited, there  can be</div><div class='add'>+ * relatively less rooms for things in  this header file be useful when writing</div><div class='add'>+ * an extension library.</div><div class='add'>+ */</div><div class='ctx'> #include "ruby/ruby.h"</div><div class='del'>-#include "ruby/oniguruma.h"</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-</div><div class='del'>-enum ruby_encoding_consts {</div><div class='del'>-    RUBY_ENCODING_INLINE_MAX = 127,</div><div class='del'>-    RUBY_ENCODING_SHIFT = (RUBY_FL_USHIFT+10),</div><div class='del'>-    RUBY_ENCODING_MASK = (RUBY_ENCODING_INLINE_MAX&lt;&lt;RUBY_ENCODING_SHIFT</div><div class='del'>-			  /* RUBY_FL_USER10..RUBY_FL_USER16 */),</div><div class='del'>-    RUBY_ENCODING_MAXNAMELEN = 42</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define ENCODING_INLINE_MAX RUBY_ENCODING_INLINE_MAX</div><div class='del'>-#define ENCODING_SHIFT RUBY_ENCODING_SHIFT</div><div class='del'>-#define ENCODING_MASK RUBY_ENCODING_MASK</div><div class='del'>-</div><div class='del'>-#define RB_ENCODING_SET_INLINED(obj,i) do {\</div><div class='del'>-    RBASIC(obj)-&gt;flags &amp;= ~RUBY_ENCODING_MASK;\</div><div class='del'>-    RBASIC(obj)-&gt;flags |= (VALUE)(i) &lt;&lt; RUBY_ENCODING_SHIFT;\</div><div class='del'>-} while (0)</div><div class='del'>-#define RB_ENCODING_SET(obj,i) rb_enc_set_index((obj), (i))</div><div class='del'>-</div><div class='del'>-#define RB_ENCODING_GET_INLINED(obj) \</div><div class='del'>-    (int)((RBASIC(obj)-&gt;flags &amp; RUBY_ENCODING_MASK)&gt;&gt;RUBY_ENCODING_SHIFT)</div><div class='del'>-#define RB_ENCODING_GET(obj) \</div><div class='del'>-    (RB_ENCODING_GET_INLINED(obj) != RUBY_ENCODING_INLINE_MAX ? \</div><div class='del'>-     RB_ENCODING_GET_INLINED(obj) : \</div><div class='del'>-     rb_enc_get_index(obj))</div><div class='del'>-</div><div class='del'>-#define RB_ENCODING_IS_ASCII8BIT(obj) (RB_ENCODING_GET_INLINED(obj) == 0)</div><div class='del'>-</div><div class='del'>-#define ENCODING_SET_INLINED(obj,i) RB_ENCODING_SET_INLINED(obj,i)</div><div class='del'>-#define ENCODING_SET(obj,i) RB_ENCODING_SET(obj,i)</div><div class='del'>-#define ENCODING_GET_INLINED(obj) RB_ENCODING_GET_INLINED(obj)</div><div class='del'>-#define ENCODING_GET(obj) RB_ENCODING_GET(obj)</div><div class='del'>-#define ENCODING_IS_ASCII8BIT(obj) RB_ENCODING_IS_ASCII8BIT(obj)</div><div class='del'>-#define ENCODING_MAXNAMELEN RUBY_ENCODING_MAXNAMELEN</div><div class='del'>-</div><div class='del'>-enum ruby_coderange_type {</div><div class='del'>-    RUBY_ENC_CODERANGE_UNKNOWN	= 0,</div><div class='del'>-    RUBY_ENC_CODERANGE_7BIT	= ((int)RUBY_FL_USER8),</div><div class='del'>-    RUBY_ENC_CODERANGE_VALID	= ((int)RUBY_FL_USER9),</div><div class='del'>-    RUBY_ENC_CODERANGE_BROKEN	= ((int)(RUBY_FL_USER8|RUBY_FL_USER9)),</div><div class='del'>-    RUBY_ENC_CODERANGE_MASK	= (RUBY_ENC_CODERANGE_7BIT|</div><div class='del'>-				   RUBY_ENC_CODERANGE_VALID|</div><div class='del'>-				   RUBY_ENC_CODERANGE_BROKEN)</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-rb_enc_coderange_clean_p(int cr)</div><div class='del'>-{</div><div class='del'>-    return (cr ^ (cr &gt;&gt; 1)) &amp; RUBY_ENC_CODERANGE_7BIT;</div><div class='del'>-}</div><div class='del'>-#define RB_ENC_CODERANGE_CLEAN_P(cr) rb_enc_coderange_clean_p(cr)</div><div class='del'>-#define RB_ENC_CODERANGE(obj) ((int)RBASIC(obj)-&gt;flags &amp; RUBY_ENC_CODERANGE_MASK)</div><div class='del'>-#define RB_ENC_CODERANGE_ASCIIONLY(obj) (RB_ENC_CODERANGE(obj) == RUBY_ENC_CODERANGE_7BIT)</div><div class='del'>-#define RB_ENC_CODERANGE_SET(obj,cr) (\</div><div class='del'>-	RBASIC(obj)-&gt;flags = \</div><div class='del'>-	(RBASIC(obj)-&gt;flags &amp; ~RUBY_ENC_CODERANGE_MASK) | (cr))</div><div class='del'>-#define RB_ENC_CODERANGE_CLEAR(obj) RB_ENC_CODERANGE_SET((obj),0)</div><div class='del'>-</div><div class='del'>-/* assumed ASCII compatibility */</div><div class='del'>-#define RB_ENC_CODERANGE_AND(a, b) \</div><div class='del'>-    ((a) == RUBY_ENC_CODERANGE_7BIT ? (b) : \</div><div class='del'>-     (a) != RUBY_ENC_CODERANGE_VALID ? RUBY_ENC_CODERANGE_UNKNOWN : \</div><div class='del'>-     (b) == RUBY_ENC_CODERANGE_7BIT ? RUBY_ENC_CODERANGE_VALID : (b))</div><div class='del'>-</div><div class='del'>-#define RB_ENCODING_CODERANGE_SET(obj, encindex, cr) \</div><div class='del'>-    do { \</div><div class='del'>-        VALUE rb_encoding_coderange_obj = (obj); \</div><div class='del'>-        RB_ENCODING_SET(rb_encoding_coderange_obj, (encindex)); \</div><div class='del'>-        RB_ENC_CODERANGE_SET(rb_encoding_coderange_obj, (cr)); \</div><div class='del'>-    } while (0)</div><div class='del'>-</div><div class='del'>-#define ENC_CODERANGE_MASK	RUBY_ENC_CODERANGE_MASK</div><div class='del'>-#define ENC_CODERANGE_UNKNOWN	RUBY_ENC_CODERANGE_UNKNOWN</div><div class='del'>-#define ENC_CODERANGE_7BIT	RUBY_ENC_CODERANGE_7BIT</div><div class='del'>-#define ENC_CODERANGE_VALID	RUBY_ENC_CODERANGE_VALID</div><div class='del'>-#define ENC_CODERANGE_BROKEN	RUBY_ENC_CODERANGE_BROKEN</div><div class='del'>-#define ENC_CODERANGE_CLEAN_P(cr)    RB_ENC_CODERANGE_CLEAN_P(cr)</div><div class='del'>-#define ENC_CODERANGE(obj)           RB_ENC_CODERANGE(obj)</div><div class='del'>-#define ENC_CODERANGE_ASCIIONLY(obj) RB_ENC_CODERANGE_ASCIIONLY(obj)</div><div class='del'>-#define ENC_CODERANGE_SET(obj,cr)    RB_ENC_CODERANGE_SET(obj,cr)</div><div class='del'>-#define ENC_CODERANGE_CLEAR(obj)     RB_ENC_CODERANGE_CLEAR(obj)</div><div class='del'>-#define ENC_CODERANGE_AND(a, b)      RB_ENC_CODERANGE_AND(a, b)</div><div class='del'>-#define ENCODING_CODERANGE_SET(obj, encindex, cr) RB_ENCODING_CODERANGE_SET(obj, encindex, cr)</div><div class='del'>-</div><div class='del'>-typedef const OnigEncodingType rb_encoding;</div><div class='del'>-</div><div class='del'>-int rb_char_to_option_kcode(int c, int *option, int *kcode);</div><div class='del'>-</div><div class='del'>-int rb_enc_replicate(const char *, rb_encoding *);</div><div class='del'>-int rb_define_dummy_encoding(const char *);</div><div class='del'>-PUREFUNC(int rb_enc_dummy_p(rb_encoding *enc));</div><div class='del'>-PUREFUNC(int rb_enc_to_index(rb_encoding *enc));</div><div class='del'>-int rb_enc_get_index(VALUE obj);</div><div class='del'>-void rb_enc_set_index(VALUE obj, int encindex);</div><div class='del'>-int rb_enc_capable(VALUE obj);</div><div class='del'>-int rb_enc_find_index(const char *name);</div><div class='del'>-int rb_enc_alias(const char *alias, const char *orig);</div><div class='del'>-int rb_to_encoding_index(VALUE);</div><div class='del'>-rb_encoding *rb_to_encoding(VALUE);</div><div class='del'>-rb_encoding *rb_find_encoding(VALUE);</div><div class='del'>-rb_encoding *rb_enc_get(VALUE);</div><div class='del'>-rb_encoding *rb_enc_compatible(VALUE,VALUE);</div><div class='del'>-rb_encoding *rb_enc_check(VALUE,VALUE);</div><div class='del'>-VALUE rb_enc_associate_index(VALUE, int);</div><div class='del'>-VALUE rb_enc_associate(VALUE, rb_encoding*);</div><div class='del'>-void rb_enc_copy(VALUE dst, VALUE src);</div><div class='del'>-</div><div class='del'>-VALUE rb_enc_str_new(const char*, long, rb_encoding*);</div><div class='del'>-VALUE rb_enc_str_new_cstr(const char*, rb_encoding*);</div><div class='del'>-VALUE rb_enc_str_new_static(const char*, long, rb_encoding*);</div><div class='del'>-VALUE rb_enc_reg_new(const char*, long, rb_encoding*, int);</div><div class='del'>-PRINTF_ARGS(VALUE rb_enc_sprintf(rb_encoding *, const char*, ...), 2, 3);</div><div class='del'>-VALUE rb_enc_vsprintf(rb_encoding *, const char*, va_list);</div><div class='del'>-long rb_enc_strlen(const char*, const char*, rb_encoding*);</div><div class='del'>-char* rb_enc_nth(const char*, const char*, long, rb_encoding*);</div><div class='del'>-VALUE rb_obj_encoding(VALUE);</div><div class='del'>-VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc);</div><div class='del'>-VALUE rb_enc_uint_chr(unsigned int code, rb_encoding *enc);</div><div class='del'>-</div><div class='del'>-VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *);</div><div class='del'>-VALUE rb_str_export_to_enc(VALUE, rb_encoding *);</div><div class='del'>-VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to);</div><div class='del'>-VALUE rb_str_conv_enc_opts(VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, VALUE ecopts);</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P</div><div class='del'>-#define rb_enc_str_new(str, len, enc) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(str) &amp;&amp; __builtin_constant_p(len)) ? \</div><div class='del'>-	rb_enc_str_new_static((str), (len), (enc)) : \</div><div class='del'>-	rb_enc_str_new((str), (len), (enc)) \</div><div class='del'>-)</div><div class='del'>-#define rb_enc_str_new_cstr(str, enc) RB_GNUC_EXTENSION_BLOCK(	\</div><div class='del'>-    (__builtin_constant_p(str)) ?	       \</div><div class='del'>-	rb_enc_str_new_static((str), (long)strlen(str), (enc)) : \</div><div class='del'>-	rb_enc_str_new_cstr((str), (enc)) \</div><div class='del'>-)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-PRINTF_ARGS(NORETURN(void rb_enc_raise(rb_encoding *, VALUE, const char*, ...)), 3, 4);</div><div class='del'>-</div><div class='del'>-/* index -&gt; rb_encoding */</div><div class='del'>-rb_encoding *rb_enc_from_index(int idx);</div><div class='del'>-</div><div class='del'>-/* name -&gt; rb_encoding */</div><div class='del'>-rb_encoding *rb_enc_find(const char *name);</div><div class='del'>-</div><div class='del'>-/* rb_encoding * -&gt; name */</div><div class='del'>-#define rb_enc_name(enc) (enc)-&gt;name</div><div class='del'>-</div><div class='del'>-/* rb_encoding * -&gt; minlen/maxlen */</div><div class='del'>-#define rb_enc_mbminlen(enc) (enc)-&gt;min_enc_len</div><div class='del'>-#define rb_enc_mbmaxlen(enc) (enc)-&gt;max_enc_len</div><div class='del'>-</div><div class='del'>-/* -&gt; mbclen (no error notification: 0 &lt; ret &lt;= e-p, no exception) */</div><div class='del'>-int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc);</div><div class='del'>-</div><div class='del'>-/* -&gt; mbclen (only for valid encoding) */</div><div class='del'>-int rb_enc_fast_mbclen(const char *p, const char *e, rb_encoding *enc);</div><div class='del'>-</div><div class='del'>-/* -&gt; chlen, invalid or needmore */</div><div class='del'>-int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc);</div><div class='del'>-#define MBCLEN_CHARFOUND_P(ret)     ONIGENC_MBCLEN_CHARFOUND_P(ret)</div><div class='del'>-#define MBCLEN_CHARFOUND_LEN(ret)     ONIGENC_MBCLEN_CHARFOUND_LEN(ret)</div><div class='del'>-#define MBCLEN_INVALID_P(ret)       ONIGENC_MBCLEN_INVALID_P(ret)</div><div class='del'>-#define MBCLEN_NEEDMORE_P(ret)      ONIGENC_MBCLEN_NEEDMORE_P(ret)</div><div class='del'>-#define MBCLEN_NEEDMORE_LEN(ret)      ONIGENC_MBCLEN_NEEDMORE_LEN(ret)</div><div class='del'>-</div><div class='del'>-/* -&gt; 0x00..0x7f, -1 */</div><div class='del'>-int rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* -&gt; code (and len) or raise exception */</div><div class='del'>-unsigned int rb_enc_codepoint_len(const char *p, const char *e, int *len, rb_encoding *enc);</div><div class='del'>-</div><div class='del'>-/* prototype for obsolete function */</div><div class='del'>-unsigned int rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc);</div><div class='del'>-/* overriding macro */</div><div class='del'>-#define rb_enc_codepoint(p,e,enc) rb_enc_codepoint_len((p),(e),0,(enc))</div><div class='del'>-#define rb_enc_mbc_to_codepoint(p, e, enc) ONIGENC_MBC_TO_CODE((enc),(UChar*)(p),(UChar*)(e))</div><div class='del'>-</div><div class='del'>-/* -&gt; codelen&gt;0 or raise exception */</div><div class='del'>-int rb_enc_codelen(int code, rb_encoding *enc);</div><div class='del'>-/* -&gt; 0 for invalid codepoint */</div><div class='del'>-int rb_enc_code_to_mbclen(int code, rb_encoding *enc);</div><div class='del'>-#define rb_enc_code_to_mbclen(c, enc) ONIGENC_CODE_TO_MBCLEN((enc), (c));</div><div class='del'>-</div><div class='del'>-/* code,ptr,encoding -&gt; write buf */</div><div class='del'>-#define rb_enc_mbcput(c,buf,enc) ONIGENC_CODE_TO_MBC((enc),(c),(UChar*)(buf))</div><div class='del'>-</div><div class='del'>-/* start, ptr, end, encoding -&gt; prev_char */</div><div class='del'>-#define rb_enc_prev_char(s,p,e,enc) ((char *)onigenc_get_prev_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))</div><div class='del'>-/* start, ptr, end, encoding -&gt; next_char */</div><div class='del'>-#define rb_enc_left_char_head(s,p,e,enc) ((char *)onigenc_get_left_adjust_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))</div><div class='del'>-#define rb_enc_right_char_head(s,p,e,enc) ((char *)onigenc_get_right_adjust_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))</div><div class='del'>-#define rb_enc_step_back(s,p,e,n,enc) ((char *)onigenc_step_back((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e),(int)(n)))</div><div class='del'>-</div><div class='del'>-/* ptr, ptr, encoding -&gt; newline_or_not */</div><div class='del'>-#define rb_enc_is_newline(p,end,enc)  ONIGENC_IS_MBC_NEWLINE((enc),(UChar*)(p),(UChar*)(end))</div><div class='del'>-</div><div class='del'>-#define rb_enc_isctype(c,t,enc) ONIGENC_IS_CODE_CTYPE((enc),(c),(t))</div><div class='del'>-#define rb_enc_isascii(c,enc) ONIGENC_IS_CODE_ASCII(c)</div><div class='del'>-#define rb_enc_isalpha(c,enc) ONIGENC_IS_CODE_ALPHA((enc),(c))</div><div class='del'>-#define rb_enc_islower(c,enc) ONIGENC_IS_CODE_LOWER((enc),(c))</div><div class='del'>-#define rb_enc_isupper(c,enc) ONIGENC_IS_CODE_UPPER((enc),(c))</div><div class='del'>-#define rb_enc_ispunct(c,enc) ONIGENC_IS_CODE_PUNCT((enc),(c))</div><div class='del'>-#define rb_enc_isalnum(c,enc) ONIGENC_IS_CODE_ALNUM((enc),(c))</div><div class='del'>-#define rb_enc_isprint(c,enc) ONIGENC_IS_CODE_PRINT((enc),(c))</div><div class='del'>-#define rb_enc_isspace(c,enc) ONIGENC_IS_CODE_SPACE((enc),(c))</div><div class='del'>-#define rb_enc_isdigit(c,enc) ONIGENC_IS_CODE_DIGIT((enc),(c))</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-rb_enc_asciicompat_inline(rb_encoding *enc)</div><div class='del'>-{</div><div class='del'>-    return rb_enc_mbminlen(enc)==1 &amp;&amp; !rb_enc_dummy_p(enc);</div><div class='del'>-}</div><div class='del'>-#define rb_enc_asciicompat(enc) rb_enc_asciicompat_inline(enc)</div><div class='del'>-</div><div class='del'>-int rb_enc_casefold(char *to, const char *p, const char *e, rb_encoding *enc);</div><div class='del'>-CONSTFUNC(int rb_enc_toupper(int c, rb_encoding *enc));</div><div class='del'>-CONSTFUNC(int rb_enc_tolower(int c, rb_encoding *enc));</div><div class='del'>-ID rb_intern3(const char*, long, rb_encoding*);</div><div class='del'>-ID rb_interned_id_p(const char *, long, rb_encoding *);</div><div class='del'>-int rb_enc_symname_p(const char*, rb_encoding*);</div><div class='del'>-int rb_enc_symname2_p(const char*, long, rb_encoding*);</div><div class='del'>-int rb_enc_str_coderange(VALUE);</div><div class='del'>-long rb_str_coderange_scan_restartable(const char*, const char*, rb_encoding*, int*);</div><div class='del'>-int rb_enc_str_asciionly_p(VALUE);</div><div class='del'>-#define rb_enc_str_asciicompat_p(str) rb_enc_asciicompat(rb_enc_get(str))</div><div class='del'>-VALUE rb_enc_from_encoding(rb_encoding *enc);</div><div class='del'>-PUREFUNC(int rb_enc_unicode_p(rb_encoding *enc));</div><div class='del'>-rb_encoding *rb_ascii8bit_encoding(void);</div><div class='del'>-rb_encoding *rb_utf8_encoding(void);</div><div class='del'>-rb_encoding *rb_usascii_encoding(void);</div><div class='del'>-rb_encoding *rb_locale_encoding(void);</div><div class='del'>-rb_encoding *rb_filesystem_encoding(void);</div><div class='del'>-rb_encoding *rb_default_external_encoding(void);</div><div class='del'>-rb_encoding *rb_default_internal_encoding(void);</div><div class='del'>-#ifndef rb_ascii8bit_encindex</div><div class='del'>-CONSTFUNC(int rb_ascii8bit_encindex(void));</div><div class='del'>-#endif</div><div class='del'>-#ifndef rb_utf8_encindex</div><div class='del'>-CONSTFUNC(int rb_utf8_encindex(void));</div><div class='del'>-#endif</div><div class='del'>-#ifndef rb_usascii_encindex</div><div class='del'>-CONSTFUNC(int rb_usascii_encindex(void));</div><div class='del'>-#endif</div><div class='del'>-int rb_locale_encindex(void);</div><div class='del'>-int rb_filesystem_encindex(void);</div><div class='del'>-VALUE rb_enc_default_external(void);</div><div class='del'>-VALUE rb_enc_default_internal(void);</div><div class='del'>-void rb_enc_set_default_external(VALUE encoding);</div><div class='del'>-void rb_enc_set_default_internal(VALUE encoding);</div><div class='del'>-VALUE rb_locale_charmap(VALUE klass);</div><div class='del'>-long rb_memsearch(const void*,long,const void*,long,rb_encoding*);</div><div class='del'>-char *rb_enc_path_next(const char *,const char *,rb_encoding*);</div><div class='del'>-char *rb_enc_path_skip_prefix(const char *,const char *,rb_encoding*);</div><div class='del'>-char *rb_enc_path_last_separator(const char *,const char *,rb_encoding*);</div><div class='del'>-char *rb_enc_path_end(const char *,const char *,rb_encoding*);</div><div class='del'>-const char *ruby_enc_find_basename(const char *name, long *baselen, long *alllen, rb_encoding *enc);</div><div class='del'>-const char *ruby_enc_find_extname(const char *name, long *len, rb_encoding *enc);</div><div class='del'>-ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc);</div><div class='del'>-VALUE rb_check_symbol_cstr(const char *ptr, long len, rb_encoding *enc);</div><div class='del'>-</div><div class='del'>-RUBY_EXTERN VALUE rb_cEncoding;</div><div class='del'>-</div><div class='del'>-/* econv stuff */</div><div class='del'>-</div><div class='del'>-typedef enum {</div><div class='del'>-    econv_invalid_byte_sequence,</div><div class='del'>-    econv_undefined_conversion,</div><div class='del'>-    econv_destination_buffer_full,</div><div class='del'>-    econv_source_buffer_empty,</div><div class='del'>-    econv_finished,</div><div class='del'>-    econv_after_output,</div><div class='del'>-    econv_incomplete_input</div><div class='del'>-} rb_econv_result_t;</div><div class='del'>-</div><div class='del'>-typedef struct rb_econv_t rb_econv_t;</div><div class='del'>-</div><div class='del'>-VALUE rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts);</div><div class='del'>-int rb_econv_has_convpath_p(const char* from_encoding, const char* to_encoding);</div><div class='del'>-</div><div class='del'>-int rb_econv_prepare_options(VALUE opthash, VALUE *ecopts, int ecflags);</div><div class='del'>-int rb_econv_prepare_opts(VALUE opthash, VALUE *ecopts);</div><div class='del'>-</div><div class='del'>-rb_econv_t *rb_econv_open(const char *source_encoding, const char *destination_encoding, int ecflags);</div><div class='del'>-rb_econv_t *rb_econv_open_opts(const char *source_encoding, const char *destination_encoding, int ecflags, VALUE ecopts);</div><div class='del'>-</div><div class='del'>-rb_econv_result_t rb_econv_convert(rb_econv_t *ec,</div><div class='del'>-    const unsigned char **source_buffer_ptr, const unsigned char *source_buffer_end,</div><div class='del'>-    unsigned char **destination_buffer_ptr, unsigned char *destination_buffer_end,</div><div class='del'>-    int flags);</div><div class='del'>-void rb_econv_close(rb_econv_t *ec);</div><div class='del'>-</div><div class='del'>-/* result: 0:success -1:failure */</div><div class='del'>-int rb_econv_set_replacement(rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname);</div><div class='del'>-</div><div class='del'>-/* result: 0:success -1:failure */</div><div class='del'>-int rb_econv_decorate_at_first(rb_econv_t *ec, const char *decorator_name);</div><div class='del'>-int rb_econv_decorate_at_last(rb_econv_t *ec, const char *decorator_name);</div><div class='del'>-</div><div class='del'>-VALUE rb_econv_open_exc(const char *senc, const char *denc, int ecflags);</div><div class='del'>-</div><div class='del'>-/* result: 0:success -1:failure */</div><div class='del'>-int rb_econv_insert_output(rb_econv_t *ec,</div><div class='del'>-    const unsigned char *str, size_t len, const char *str_encoding);</div><div class='del'>-</div><div class='del'>-/* encoding that rb_econv_insert_output doesn't need conversion */</div><div class='del'>-const char *rb_econv_encoding_to_insert_output(rb_econv_t *ec);</div><div class='del'>-</div><div class='del'>-/* raise an error if the last rb_econv_convert is error */</div><div class='del'>-void rb_econv_check_error(rb_econv_t *ec);</div><div class='del'>-</div><div class='del'>-/* returns an exception object or nil */</div><div class='del'>-VALUE rb_econv_make_exception(rb_econv_t *ec);</div><div class='del'>-</div><div class='del'>-int rb_econv_putbackable(rb_econv_t *ec);</div><div class='del'>-void rb_econv_putback(rb_econv_t *ec, unsigned char *p, int n);</div><div class='del'>-</div><div class='del'>-/* returns the corresponding ASCII compatible encoding for encname,</div><div class='del'>- * or NULL if encname is not ASCII incompatible encoding. */</div><div class='del'>-const char *rb_econv_asciicompat_encoding(const char *encname);</div><div class='del'>-</div><div class='del'>-VALUE rb_econv_str_convert(rb_econv_t *ec, VALUE src, int flags);</div><div class='del'>-VALUE rb_econv_substr_convert(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags);</div><div class='del'>-VALUE rb_econv_str_append(rb_econv_t *ec, VALUE src, VALUE dst, int flags);</div><div class='del'>-VALUE rb_econv_substr_append(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, VALUE dst, int flags);</div><div class='del'>-VALUE rb_econv_append(rb_econv_t *ec, const char *bytesrc, long bytesize, VALUE dst, int flags);</div><div class='del'>-</div><div class='del'>-void rb_econv_binmode(rb_econv_t *ec);</div><div class='del'>-</div><div class='del'>-enum ruby_econv_flag_type {</div><div class='del'>-/* flags for rb_econv_open */</div><div class='del'>-    RUBY_ECONV_ERROR_HANDLER_MASK               = 0x000000ff,</div><div class='del'>-</div><div class='del'>-    RUBY_ECONV_INVALID_MASK                     = 0x0000000f,</div><div class='del'>-    RUBY_ECONV_INVALID_REPLACE                  = 0x00000002,</div><div class='del'>-</div><div class='del'>-    RUBY_ECONV_UNDEF_MASK                       = 0x000000f0,</div><div class='del'>-    RUBY_ECONV_UNDEF_REPLACE                    = 0x00000020,</div><div class='del'>-    RUBY_ECONV_UNDEF_HEX_CHARREF                = 0x00000030,</div><div class='del'>-</div><div class='del'>-    RUBY_ECONV_DECORATOR_MASK                   = 0x0000ff00,</div><div class='del'>-    RUBY_ECONV_NEWLINE_DECORATOR_MASK           = 0x00003f00,</div><div class='del'>-    RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK      = 0x00000f00,</div><div class='del'>-    RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK     = 0x00003000,</div><div class='del'>-</div><div class='del'>-    RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR      = 0x00000100,</div><div class='del'>-    RUBY_ECONV_CRLF_NEWLINE_DECORATOR           = 0x00001000,</div><div class='del'>-    RUBY_ECONV_CR_NEWLINE_DECORATOR             = 0x00002000,</div><div class='del'>-    RUBY_ECONV_XML_TEXT_DECORATOR               = 0x00004000,</div><div class='del'>-    RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR       = 0x00008000,</div><div class='del'>-</div><div class='del'>-    RUBY_ECONV_STATEFUL_DECORATOR_MASK          = 0x00f00000,</div><div class='del'>-    RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR         = 0x00100000,</div><div class='del'>-</div><div class='del'>-    RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR        =</div><div class='del'>-#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32)</div><div class='del'>-	RUBY_ECONV_CRLF_NEWLINE_DECORATOR,</div><div class='del'>-#else</div><div class='del'>-	0,</div><div class='del'>-#endif</div><div class='del'>-#define ECONV_ERROR_HANDLER_MASK                RUBY_ECONV_ERROR_HANDLER_MASK</div><div class='del'>-#define ECONV_INVALID_MASK                      RUBY_ECONV_INVALID_MASK</div><div class='del'>-#define ECONV_INVALID_REPLACE                   RUBY_ECONV_INVALID_REPLACE</div><div class='del'>-#define ECONV_UNDEF_MASK                        RUBY_ECONV_UNDEF_MASK</div><div class='del'>-#define ECONV_UNDEF_REPLACE                     RUBY_ECONV_UNDEF_REPLACE</div><div class='del'>-#define ECONV_UNDEF_HEX_CHARREF                 RUBY_ECONV_UNDEF_HEX_CHARREF</div><div class='del'>-#define ECONV_DECORATOR_MASK                    RUBY_ECONV_DECORATOR_MASK</div><div class='del'>-#define ECONV_NEWLINE_DECORATOR_MASK            RUBY_ECONV_NEWLINE_DECORATOR_MASK</div><div class='del'>-#define ECONV_NEWLINE_DECORATOR_READ_MASK       RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK</div><div class='del'>-#define ECONV_NEWLINE_DECORATOR_WRITE_MASK      RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK</div><div class='del'>-#define ECONV_UNIVERSAL_NEWLINE_DECORATOR       RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR</div><div class='del'>-#define ECONV_CRLF_NEWLINE_DECORATOR            RUBY_ECONV_CRLF_NEWLINE_DECORATOR</div><div class='del'>-#define ECONV_CR_NEWLINE_DECORATOR              RUBY_ECONV_CR_NEWLINE_DECORATOR</div><div class='del'>-#define ECONV_XML_TEXT_DECORATOR                RUBY_ECONV_XML_TEXT_DECORATOR</div><div class='del'>-#define ECONV_XML_ATTR_CONTENT_DECORATOR        RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR</div><div class='del'>-#define ECONV_STATEFUL_DECORATOR_MASK           RUBY_ECONV_STATEFUL_DECORATOR_MASK</div><div class='del'>-#define ECONV_XML_ATTR_QUOTE_DECORATOR          RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR</div><div class='del'>-#define ECONV_DEFAULT_NEWLINE_DECORATOR         RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR</div><div class='del'>-/* end of flags for rb_econv_open */</div><div class='del'>-</div><div class='del'>-/* flags for rb_econv_convert */</div><div class='del'>-    RUBY_ECONV_PARTIAL_INPUT                    = 0x00010000,</div><div class='del'>-    RUBY_ECONV_AFTER_OUTPUT                     = 0x00020000,</div><div class='del'>-#define ECONV_PARTIAL_INPUT                     RUBY_ECONV_PARTIAL_INPUT</div><div class='del'>-#define ECONV_AFTER_OUTPUT                      RUBY_ECONV_AFTER_OUTPUT</div><div class='del'>-/* end of flags for rb_econv_convert */</div><div class='del'>-RUBY_ECONV_FLAGS_PLACEHOLDER};</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='ctx'> </div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='add'>+#include "ruby/internal/encoding/coderange.h"</div><div class='add'>+#include "ruby/internal/encoding/ctype.h"</div><div class='add'>+#include "ruby/internal/encoding/encoding.h"</div><div class='add'>+#include "ruby/internal/encoding/pathname.h"</div><div class='add'>+#include "ruby/internal/encoding/re.h"</div><div class='add'>+#include "ruby/internal/encoding/sprintf.h"</div><div class='add'>+#include "ruby/internal/encoding/string.h"</div><div class='add'>+#include "ruby/internal/encoding/symbol.h"</div><div class='add'>+#include "ruby/internal/encoding/transcode.h"</div><div class='ctx'> </div><div class='ctx'> #endif /* RUBY_ENCODING_H */</div><div class='head'>diff --git a/include/ruby/fiber/scheduler.h b/include/ruby/fiber/scheduler.h<br/>new file mode 100644<br/>index 0000000000..250b39b6df<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/fiber/scheduler.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/fiber/scheduler.h</a></div><div class='hunk'>@@ -0,0 +1,374 @@</div><div class='add'>+#ifndef RUBY_FIBER_SCHEDULER_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_FIBER_SCHEDULER_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Scheduler APIs.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#include &lt;errno.h&gt;</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+#include &lt;stddef.h&gt; /* size_t */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/arithmetic.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+#define RUBY_FIBER_SCHEDULER_VERSION 2</div><div class='add'>+</div><div class='add'>+struct timeval;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Wrap a `ssize_t` and `int errno` into a single `VALUE`. This interface should</div><div class='add'>+ * be used to safely capture results from system calls  like `read` and `write`.</div><div class='add'>+ *</div><div class='add'>+ * You should use `rb_fiber_scheduler_io_result_apply` to unpack the result of</div><div class='add'>+ * this value and update `int errno`.</div><div class='add'>+ *</div><div class='add'>+ * You should not directly try to interpret the result value as it is considered</div><div class='add'>+ * an opaque representation. However, the general representation is an integer</div><div class='add'>+ * in the range of `[-int errno, size_t size]`. Linux generally restricts the</div><div class='add'>+ * result of system calls like `read` and `write` to `&lt;= 2^31` which means this</div><div class='add'>+ * will typically fit within a single FIXNUM.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  result   The result of the system call.</div><div class='add'>+ * @param[in]  error    The value of `errno`.</div><div class='add'>+ * @return              A `VALUE` which contains the result and/or errno.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_fiber_scheduler_io_result(ssize_t result, int error)</div><div class='add'>+{</div><div class='add'>+    if (result == -1) {</div><div class='add'>+        return RB_INT2NUM(-error);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RB_SIZE2NUM(result);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Apply an io result to the local thread, returning the value of the original</div><div class='add'>+ * system call that created it and updating `int errno`.</div><div class='add'>+ *</div><div class='add'>+ * You should not directly try to interpret the result value as it is considered</div><div class='add'>+ * an opaque representation.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  result   The `VALUE` which contains an errno and/or result size.</div><div class='add'>+ * @post                Updates `int errno` with the value if negative.</div><div class='add'>+ * @return              The original result of the system call.</div><div class='add'>+ */</div><div class='add'>+static inline ssize_t</div><div class='add'>+rb_fiber_scheduler_io_result_apply(VALUE result)</div><div class='add'>+{</div><div class='add'>+    if (RB_FIXNUM_P(result) &amp;&amp; RB_NUM2INT(result) &lt; 0) {</div><div class='add'>+        errno = -RB_NUM2INT(result);</div><div class='add'>+        return -1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RB_NUM2SIZE(result);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the  current scheduler of  the current  thread that is  calling this</div><div class='add'>+ * function.</div><div class='add'>+ *</div><div class='add'>+ * @retval  RUBY_Qnil  No scheduler has  been set so far to  this thread (which</div><div class='add'>+ *                     is the default).</div><div class='add'>+ * @retval  otherwise  The scheduler that  was last set for  the current thread</div><div class='add'>+ *                     with rb_fiber_scheduler_set().</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_get(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively assigns  the passed  scheduler to that  of the  current thread</div><div class='add'>+ * that is calling this function.  If the scheduler is set, non-blocking fibers</div><div class='add'>+ * (created by `Fiber.new` with `blocking: false`, or by `Fiber.schedule`) call</div><div class='add'>+ * that scheduler's  hook methods on  potentially blocking operations,  and the</div><div class='add'>+ * current  thread  will  call  scheduler's  `#close`  method  on  finalisation</div><div class='add'>+ * (allowing  the  scheduler  to  properly  manage  all  non-finished  fibers).</div><div class='add'>+ * `scheduler`   can   be   an   object   of   any   class   corresponding   to</div><div class='add'>+ * `Fiber::SchedulerInterface`. Its implementation is up to the user.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler     The scheduler to set.</div><div class='add'>+ * @exception  rb_eArgError  `scheduler` does not conform the interface.</div><div class='add'>+ * @post       Current thread's scheduler is `scheduler`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_set(VALUE scheduler);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_fiber_scheduler_get(), except it also returns ::RUBY_Qnil in</div><div class='add'>+ * case of a blocking fiber.  As blocking fibers do not participate schedulers'</div><div class='add'>+ * scheduling this function can be handy.</div><div class='add'>+ *</div><div class='add'>+ * @retval  RUBY_Qnil  No scheduler is in effect.</div><div class='add'>+ * @retval  otherwise  The scheduler that is in effect, if any.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_current(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_fiber_scheduler_current(), except it queries for that of the</div><div class='add'>+ * passed thread instead of the implicit current one.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  thread         Target thread.</div><div class='add'>+ * @exception  rb_eTypeError  `thread` is not a thread.</div><div class='add'>+ * @retval     RUBY_Qnil      No scheduler is in effect in `thread`.</div><div class='add'>+ * @retval     otherwise      The scheduler that is in effect in `thread`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_current_for_thread(VALUE thread);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts the passed timeout to an expression that rb_fiber_scheduler_block()</div><div class='add'>+ * etc. expects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  timeout    A duration (can be `NULL`).</div><div class='add'>+ * @retval     RUBY_Qnil  No timeout (blocks indefinitely).</div><div class='add'>+ * @retval     otherwise  A timeout object.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_make_timeout(struct timeval *timeout);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Closes the passed scheduler object.  This expects the scheduler to wait for</div><div class='add'>+ * all fibers.  Thus the scheduler's main loop tends to start here.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler  Target scheduler.</div><div class='add'>+ * @return     What `scheduler.close` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_close(VALUE scheduler);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking  `sleep`.  Depending  on  scheduler  implementation,  this  for</div><div class='add'>+ * instance switches to another fiber etc.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler  Target scheduler.</div><div class='add'>+ * @param[in]  duration   Passed as-is to `scheduler.kernel_sleep`.</div><div class='add'>+ * @return     What `scheduler.kernel_sleep` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_kernel_sleep(VALUE scheduler, VALUE duration);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_fiber_scheduler_kernel_sleep(), except  it can pass multiple</div><div class='add'>+ * arguments.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler  Target scheduler.</div><div class='add'>+ * @param[in]  argc       Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv       Passed as-is to `scheduler.kernel_sleep`</div><div class='add'>+ * @return     What `scheduler.kernel_sleep` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_kernel_sleepv(VALUE scheduler, int argc, VALUE * argv);</div><div class='add'>+</div><div class='add'>+/* Description TBW */</div><div class='add'>+#if 0</div><div class='add'>+VALUE rb_fiber_scheduler_timeout_after(VALUE scheduler, VALUE timeout, VALUE exception, VALUE message);</div><div class='add'>+VALUE rb_fiber_scheduler_timeout_afterv(VALUE scheduler, int argc, VALUE * argv);</div><div class='add'>+int rb_fiber_scheduler_supports_process_wait(VALUE scheduler);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking `waitpid`.  Depending  on  scheduler  implementation, this  for</div><div class='add'>+ * instance switches to another fiber etc.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler  Target scheduler.</div><div class='add'>+ * @param[in]  pid        Process ID to wait.</div><div class='add'>+ * @param[in]  flags      Wait flags, e.g. `WUNTRACED`.</div><div class='add'>+ * @return     What `scheduler.process_wait` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_process_wait(VALUE scheduler, rb_pid_t pid, int flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking  wait  for  the  passed   "blocker",  which  is   for  instance</div><div class='add'>+ * `Thread.join` or `Mutex.lock`.  Depending  on scheduler implementation, this</div><div class='add'>+ * for instance switches to another fiber etc.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler  Target scheduler.</div><div class='add'>+ * @param[in]  blocker    What blocks the current fiber.</div><div class='add'>+ * @param[in]  timeout    Numeric timeout.</div><div class='add'>+ * @return     What `scheduler.block` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_block(VALUE scheduler, VALUE blocker, VALUE timeout);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Wakes up a fiber previously blocked using rb_fiber_scheduler_block().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler  Target scheduler.</div><div class='add'>+ * @param[in]  blocker    What was awaited for.</div><div class='add'>+ * @param[in]  fiber      What to unblock.</div><div class='add'>+ * @return     What `scheduler.unblock` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_unblock(VALUE scheduler, VALUE blocker, VALUE fiber);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking version of rb_io_wait().  Depending on scheduler</div><div class='add'>+ * implementation, this for instance switches to another fiber etc.</div><div class='add'>+ *</div><div class='add'>+ * The  "events" here  is a  Ruby level  integer, which  is an  OR-ed value  of</div><div class='add'>+ * `IO::READABLE`, `IO::WRITABLE`, and `IO::PRIORITY`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler  Target scheduler.</div><div class='add'>+ * @param[in]  io         An io object to wait.</div><div class='add'>+ * @param[in]  events     An integer set of interests.</div><div class='add'>+ * @param[in]  timeout    Numeric timeout.</div><div class='add'>+ * @return     What `scheduler.io_wait` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_wait(VALUE scheduler, VALUE io, VALUE events, VALUE timeout);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking  wait until the passed  IO  is ready  for reading.   This is  a</div><div class='add'>+ * special  case   of  rb_fiber_scheduler_io_wait(),  where  the   interest  is</div><div class='add'>+ * `IO::READABLE` and timeout is never.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler  Target scheduler.</div><div class='add'>+ * @param[in]  io         An io object to wait.</div><div class='add'>+ * @return     What `scheduler.io_wait` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_wait_readable(VALUE scheduler, VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking  wait until  the passed  IO  is ready  for writing.   This is a</div><div class='add'>+ * special  case   of  rb_fiber_scheduler_io_wait(),  where  the   interest  is</div><div class='add'>+ * `IO::WRITABLE` and timeout is never.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler  Target scheduler.</div><div class='add'>+ * @param[in]  io         An io object to wait.</div><div class='add'>+ * @return     What `scheduler.io_wait` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_wait_writable(VALUE scheduler, VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking version of `IO.select`.</div><div class='add'>+ *</div><div class='add'>+ * It's possible that this will be emulated using a thread, so you should not</div><div class='add'>+ * rely on it for high performance.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler    Target scheduler.</div><div class='add'>+ * @param[in]  readables    An array of readable objects.</div><div class='add'>+ * @param[in]  writables    An array of writable objects.</div><div class='add'>+ * @param[in]  exceptables  An array of objects that might encounter exceptional conditions.</div><div class='add'>+ * @param[in]  timeout      Numeric timeout or nil.</div><div class='add'>+ * @return     What `scheduler.io_select` returns, normally a 3-tuple of arrays of ready objects.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_select(VALUE scheduler, VALUE readables, VALUE writables, VALUE exceptables, VALUE timeout);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking version of `IO.select`, `argv` variant.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_selectv(VALUE scheduler, int argc, VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking read from the passed IO.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   scheduler    Target scheduler.</div><div class='add'>+ * @param[out]  io           An io object to read from.</div><div class='add'>+ * @param[out]  buffer       Return buffer.</div><div class='add'>+ * @param[in]   length       Requested number of bytes to read.</div><div class='add'>+ * @param[in]   offset       The offset in the buffer to read to.</div><div class='add'>+ * @retval      RUBY_Qundef  `scheduler` doesn't have `#io_read`.</div><div class='add'>+ * @return      otherwise    What `scheduler.io_read` returns `[-errno, size]`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_read(VALUE scheduler, VALUE io, VALUE buffer, size_t length, size_t offset);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking write to the passed IO.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   scheduler    Target scheduler.</div><div class='add'>+ * @param[out]  io           An io object to write to.</div><div class='add'>+ * @param[in]   buffer       What to write.</div><div class='add'>+ * @param[in]   length       Number of bytes to write.</div><div class='add'>+ * @param[in]   offset       The offset in the buffer to write from.</div><div class='add'>+ * @retval      RUBY_Qundef  `scheduler` doesn't have `#io_write`.</div><div class='add'>+ * @return      otherwise    What `scheduler.io_write` returns `[-errno, size]`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_write(VALUE scheduler, VALUE io, VALUE buffer, size_t length, size_t offset);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking read from the passed IO at the specified offset.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   scheduler    Target scheduler.</div><div class='add'>+ * @param[out]  io           An io object to read from.</div><div class='add'>+ * @param[in]   from         The offset in the given IO to read the data from.</div><div class='add'>+ * @param[out]  buffer       The buffer to read the data to.</div><div class='add'>+ * @param[in]   length       Requested number of bytes to read.</div><div class='add'>+ * @param[in]   offset       The offset in the buffer to read to.</div><div class='add'>+ * @retval      RUBY_Qundef  `scheduler` doesn't have `#io_read`.</div><div class='add'>+ * @return      otherwise    What `scheduler.io_read` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_pread(VALUE scheduler, VALUE io, rb_off_t from, VALUE buffer, size_t length, size_t offset);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking write to the passed IO at the specified offset.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   scheduler    Target scheduler.</div><div class='add'>+ * @param[out]  io           An io object to write to.</div><div class='add'>+ * @param[in]   from         The offset in the given IO to write the data to.</div><div class='add'>+ * @param[in]   buffer       The buffer to write the data from.</div><div class='add'>+ * @param[in]   length       Number of bytes to write.</div><div class='add'>+ * @param[in]   offset       The offset in the buffer to write from.</div><div class='add'>+ * @retval      RUBY_Qundef  `scheduler` doesn't have `#io_write`.</div><div class='add'>+ * @return      otherwise    What `scheduler.io_write` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_pwrite(VALUE scheduler, VALUE io, rb_off_t from, VALUE buffer, size_t length, size_t offset);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking read from the passed IO using a native buffer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   scheduler    Target scheduler.</div><div class='add'>+ * @param[out]  io           An io object to read from.</div><div class='add'>+ * @param[out]  buffer       Return buffer.</div><div class='add'>+ * @param[in]   size         Size of the return buffer.</div><div class='add'>+ * @param[in]   length       Requested number of bytes to read.</div><div class='add'>+ * @retval      RUBY_Qundef  `scheduler` doesn't have `#io_read`.</div><div class='add'>+ * @return      otherwise    What `scheduler.io_read` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_read_memory(VALUE scheduler, VALUE io, void *buffer, size_t size, size_t length);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking write to the passed IO using a native buffer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   scheduler    Target scheduler.</div><div class='add'>+ * @param[out]  io           An io object to write to.</div><div class='add'>+ * @param[in]   buffer       What to write.</div><div class='add'>+ * @param[in]   size         Size of the buffer.</div><div class='add'>+ * @param[in]   length       Number of bytes to write.</div><div class='add'>+ * @retval      RUBY_Qundef  `scheduler` doesn't have `#io_write`.</div><div class='add'>+ * @return      otherwise    What `scheduler.io_write` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_write_memory(VALUE scheduler, VALUE io, const void *buffer, size_t size, size_t length);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking close the given IO.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler    Target scheduler.</div><div class='add'>+ * @param[in]  io           An io object to close.</div><div class='add'>+ * @retval     RUBY_Qundef  `scheduler` doesn't have `#io_close`.</div><div class='add'>+ * @return     otherwise    What `scheduler.io_close` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_io_close(VALUE scheduler, VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Non-blocking DNS lookup.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scheduler    Target scheduler.</div><div class='add'>+ * @param[in]  hostname     A host name to query.</div><div class='add'>+ * @retval     RUBY_Qundef  `scheduler` doesn't have `#address_resolve`.</div><div class='add'>+ * @return     otherwise    What `scheduler.address_resolve` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_address_resolve(VALUE scheduler, VALUE hostname);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Create and schedule a non-blocking fiber.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_scheduler_fiber(VALUE scheduler, int argc, VALUE *argv, int kw_splat);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_FIBER_SCHEDULER_H */</div><div class='head'>diff --git a/include/ruby/intern.h b/include/ruby/intern.h<br/>index 7908340397..2480e2e703 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/intern.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/intern.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/intern.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/intern.h</a></div><div class='hunk'>@@ -1,1003 +1,64 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  intern.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Thu Jun 10 14:22:17 JST 1993</div><div class='del'>-</div><div class='del'>-  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='del'>-  Copyright (C) 2000  Network Applied Communication Laboratory, Inc.</div><div class='del'>-  Copyright (C) 2000  Information-technology Promotion Agency, Japan</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_INTERN_H</div><div class='add'>+#ifndef RUBY_INTERN_H                                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_INTERN_H 1</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @date       Thu Jun 10 14:22:17 JST 1993</div><div class='add'>+ * @copyright  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  Copyright (C) 2000  Network Applied Communication Laboratory, Inc.</div><div class='add'>+ * @copyright  Copyright (C) 2000  Information-technology Promotion Agency, Japan</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> #include "ruby/defines.h"</div><div class='del'>-#ifdef RUBY_EXTCONF_H</div><div class='del'>-#include RUBY_EXTCONF_H</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_STDARG_PROTOTYPES</div><div class='del'>-# include &lt;stdarg.h&gt;</div><div class='del'>-#else</div><div class='del'>-# include &lt;varargs.h&gt;</div><div class='del'>-#endif</div><div class='add'>+#include &lt;stdarg.h&gt;</div><div class='ctx'> </div><div class='ctx'> #include "ruby/st.h"</div><div class='ctx'> </div><div class='del'>-/* On mswin, MJIT header transformation can't be used since cl.exe can't output</div><div class='del'>-   preprocessed output preserving macros. So this `MJIT_STATIC` is needed</div><div class='del'>-   to force non-static function to static on MJIT header to avoid symbol conflict. */</div><div class='del'>-#ifdef MJIT_HEADER</div><div class='del'>-# define MJIT_STATIC static</div><div class='del'>-#else</div><div class='del'>-# define MJIT_STATIC</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  * Functions and variables that are used by more than one source file of</div><div class='ctx'>  * the kernel.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-#define UNLIMITED_ARGUMENTS (-1)</div><div class='del'>-</div><div class='del'>-/* array.c */</div><div class='del'>-void rb_mem_clear(register VALUE*, register long);</div><div class='del'>-VALUE rb_assoc_new(VALUE, VALUE);</div><div class='del'>-VALUE rb_check_array_type(VALUE);</div><div class='del'>-VALUE rb_ary_new(void);</div><div class='del'>-VALUE rb_ary_new_capa(long capa);</div><div class='del'>-VALUE rb_ary_new_from_args(long n, ...);</div><div class='del'>-VALUE rb_ary_new_from_values(long n, const VALUE *elts);</div><div class='del'>-VALUE rb_ary_tmp_new(long);</div><div class='del'>-void rb_ary_free(VALUE);</div><div class='del'>-void rb_ary_modify(VALUE);</div><div class='del'>-VALUE rb_ary_freeze(VALUE);</div><div class='del'>-VALUE rb_ary_shared_with_p(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_aref(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_ary_subseq(VALUE, long, long);</div><div class='del'>-void rb_ary_store(VALUE, long, VALUE);</div><div class='del'>-VALUE rb_ary_dup(VALUE);</div><div class='del'>-VALUE rb_ary_resurrect(VALUE ary);</div><div class='del'>-VALUE rb_ary_to_ary(VALUE);</div><div class='del'>-VALUE rb_ary_to_s(VALUE);</div><div class='del'>-VALUE rb_ary_cat(VALUE, const VALUE *, long);</div><div class='del'>-VALUE rb_ary_push(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_pop(VALUE);</div><div class='del'>-VALUE rb_ary_shift(VALUE);</div><div class='del'>-VALUE rb_ary_unshift(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_entry(VALUE, long);</div><div class='del'>-VALUE rb_ary_each(VALUE);</div><div class='del'>-VALUE rb_ary_join(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_reverse(VALUE);</div><div class='del'>-VALUE rb_ary_rotate(VALUE, long);</div><div class='del'>-VALUE rb_ary_sort(VALUE);</div><div class='del'>-VALUE rb_ary_sort_bang(VALUE);</div><div class='del'>-VALUE rb_ary_delete(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_delete_at(VALUE, long);</div><div class='del'>-VALUE rb_ary_clear(VALUE);</div><div class='del'>-VALUE rb_ary_plus(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_concat(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_assoc(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_rassoc(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_includes(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_cmp(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_replace(VALUE copy, VALUE orig);</div><div class='del'>-VALUE rb_get_values_at(VALUE, long, int, const VALUE*, VALUE(*)(VALUE,long));</div><div class='del'>-VALUE rb_ary_resize(VALUE ary, long len);</div><div class='del'>-#define rb_ary_new2 rb_ary_new_capa</div><div class='del'>-#define rb_ary_new3 rb_ary_new_from_args</div><div class='del'>-#define rb_ary_new4 rb_ary_new_from_values</div><div class='del'>-/* bignum.c */</div><div class='del'>-VALUE rb_big_new(size_t, int);</div><div class='del'>-int rb_bigzero_p(VALUE x);</div><div class='del'>-VALUE rb_big_clone(VALUE);</div><div class='del'>-void rb_big_2comp(VALUE);</div><div class='del'>-VALUE rb_big_norm(VALUE);</div><div class='del'>-void rb_big_resize(VALUE big, size_t len);</div><div class='del'>-VALUE rb_cstr_to_inum(const char*, int, int);</div><div class='del'>-VALUE rb_str_to_inum(VALUE, int, int);</div><div class='del'>-VALUE rb_cstr2inum(const char*, int);</div><div class='del'>-VALUE rb_str2inum(VALUE, int);</div><div class='del'>-VALUE rb_big2str(VALUE, int);</div><div class='del'>-long rb_big2long(VALUE);</div><div class='del'>-#define rb_big2int(x) rb_big2long(x)</div><div class='del'>-unsigned long rb_big2ulong(VALUE);</div><div class='del'>-#define rb_big2uint(x) rb_big2ulong(x)</div><div class='del'>-#if HAVE_LONG_LONG</div><div class='del'>-LONG_LONG rb_big2ll(VALUE);</div><div class='del'>-unsigned LONG_LONG rb_big2ull(VALUE);</div><div class='del'>-#endif  /* HAVE_LONG_LONG */</div><div class='del'>-void rb_big_pack(VALUE val, unsigned long *buf, long num_longs);</div><div class='del'>-VALUE rb_big_unpack(unsigned long *buf, long num_longs);</div><div class='del'>-int rb_uv_to_utf8(char[6],unsigned long);</div><div class='del'>-VALUE rb_dbl2big(double);</div><div class='del'>-double rb_big2dbl(VALUE);</div><div class='del'>-VALUE rb_big_cmp(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_eq(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_eql(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_plus(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_minus(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_mul(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_div(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_idiv(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_modulo(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_divmod(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_pow(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_and(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_or(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_xor(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_lshift(VALUE, VALUE);</div><div class='del'>-VALUE rb_big_rshift(VALUE, VALUE);</div><div class='del'>-</div><div class='del'>-/* For rb_integer_pack and rb_integer_unpack: */</div><div class='del'>-/* "MS" in MSWORD and MSBYTE means "most significant" */</div><div class='del'>-/* "LS" in LSWORD and LSBYTE means "least significant" */</div><div class='del'>-#define INTEGER_PACK_MSWORD_FIRST       0x01</div><div class='del'>-#define INTEGER_PACK_LSWORD_FIRST       0x02</div><div class='del'>-#define INTEGER_PACK_MSBYTE_FIRST       0x10</div><div class='del'>-#define INTEGER_PACK_LSBYTE_FIRST       0x20</div><div class='del'>-#define INTEGER_PACK_NATIVE_BYTE_ORDER  0x40</div><div class='del'>-#define INTEGER_PACK_2COMP              0x80</div><div class='del'>-#define INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION     0x400</div><div class='del'>-/* For rb_integer_unpack: */</div><div class='del'>-#define INTEGER_PACK_FORCE_BIGNUM       0x100</div><div class='del'>-#define INTEGER_PACK_NEGATIVE           0x200</div><div class='del'>-/* Combinations: */</div><div class='del'>-#define INTEGER_PACK_LITTLE_ENDIAN \</div><div class='del'>-    (INTEGER_PACK_LSWORD_FIRST | \</div><div class='del'>-     INTEGER_PACK_LSBYTE_FIRST)</div><div class='del'>-#define INTEGER_PACK_BIG_ENDIAN \</div><div class='del'>-    (INTEGER_PACK_MSWORD_FIRST | \</div><div class='del'>-     INTEGER_PACK_MSBYTE_FIRST)</div><div class='del'>-int rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t nails, int flags);</div><div class='del'>-VALUE rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t nails, int flags);</div><div class='del'>-size_t rb_absint_size(VALUE val, int *nlz_bits_ret);</div><div class='del'>-size_t rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret);</div><div class='del'>-int rb_absint_singlebit_p(VALUE val);</div><div class='del'>-</div><div class='del'>-/* rational.c */</div><div class='del'>-VALUE rb_rational_raw(VALUE, VALUE);</div><div class='del'>-#define rb_rational_raw1(x) rb_rational_raw((x), INT2FIX(1))</div><div class='del'>-#define rb_rational_raw2(x,y) rb_rational_raw((x), (y))</div><div class='del'>-VALUE rb_rational_new(VALUE, VALUE);</div><div class='del'>-#define rb_rational_new1(x) rb_rational_new((x), INT2FIX(1))</div><div class='del'>-#define rb_rational_new2(x,y) rb_rational_new((x), (y))</div><div class='del'>-VALUE rb_Rational(VALUE, VALUE);</div><div class='del'>-#define rb_Rational1(x) rb_Rational((x), INT2FIX(1))</div><div class='del'>-#define rb_Rational2(x,y) rb_Rational((x), (y))</div><div class='del'>-VALUE rb_rational_num(VALUE rat);</div><div class='del'>-VALUE rb_rational_den(VALUE rat);</div><div class='del'>-VALUE rb_flt_rationalize_with_prec(VALUE, VALUE);</div><div class='del'>-VALUE rb_flt_rationalize(VALUE);</div><div class='del'>-/* complex.c */</div><div class='del'>-VALUE rb_complex_raw(VALUE, VALUE);</div><div class='del'>-#define rb_complex_raw1(x) rb_complex_raw((x), INT2FIX(0))</div><div class='del'>-#define rb_complex_raw2(x,y) rb_complex_raw((x), (y))</div><div class='del'>-VALUE rb_complex_new(VALUE, VALUE);</div><div class='del'>-#define rb_complex_new1(x) rb_complex_new((x), INT2FIX(0))</div><div class='del'>-#define rb_complex_new2(x,y) rb_complex_new((x), (y))</div><div class='del'>-VALUE rb_complex_new_polar(VALUE abs, VALUE arg);</div><div class='del'>-DEPRECATED_BY(rb_complex_new_polar, VALUE rb_complex_polar(VALUE abs, VALUE arg));</div><div class='del'>-VALUE rb_complex_real(VALUE z);</div><div class='del'>-VALUE rb_complex_imag(VALUE z);</div><div class='del'>-VALUE rb_complex_plus(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_complex_minus(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_complex_mul(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_complex_div(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_complex_uminus(VALUE z);</div><div class='del'>-VALUE rb_complex_conjugate(VALUE z);</div><div class='del'>-VALUE rb_complex_abs(VALUE z);</div><div class='del'>-VALUE rb_complex_arg(VALUE z);</div><div class='del'>-VALUE rb_complex_pow(VALUE base, VALUE exp);</div><div class='del'>-VALUE rb_dbl_complex_new(double real, double imag);</div><div class='del'>-#define rb_complex_add rb_complex_plus</div><div class='del'>-#define rb_complex_sub rb_complex_minus</div><div class='del'>-#define rb_complex_nagate rb_complex_uminus</div><div class='del'>-</div><div class='del'>-VALUE rb_Complex(VALUE, VALUE);</div><div class='del'>-#define rb_Complex1(x) rb_Complex((x), INT2FIX(0))</div><div class='del'>-#define rb_Complex2(x,y) rb_Complex((x), (y))</div><div class='del'>-/* class.c */</div><div class='del'>-VALUE rb_class_new(VALUE);</div><div class='del'>-VALUE rb_mod_init_copy(VALUE, VALUE);</div><div class='del'>-VALUE rb_singleton_class_clone(VALUE);</div><div class='del'>-void rb_singleton_class_attached(VALUE,VALUE);</div><div class='del'>-void rb_check_inheritable(VALUE);</div><div class='del'>-VALUE rb_define_class_id(ID, VALUE);</div><div class='del'>-VALUE rb_define_class_id_under(VALUE, ID, VALUE);</div><div class='del'>-VALUE rb_module_new(void);</div><div class='del'>-VALUE rb_define_module_id(ID);</div><div class='del'>-VALUE rb_define_module_id_under(VALUE, ID);</div><div class='del'>-VALUE rb_mod_included_modules(VALUE);</div><div class='del'>-VALUE rb_mod_include_p(VALUE, VALUE);</div><div class='del'>-VALUE rb_mod_ancestors(VALUE);</div><div class='del'>-VALUE rb_class_instance_methods(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_class_public_instance_methods(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_class_protected_instance_methods(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_class_private_instance_methods(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_obj_singleton_methods(int, const VALUE*, VALUE);</div><div class='del'>-void rb_define_method_id(VALUE, ID, VALUE (*)(ANYARGS), int);</div><div class='del'>-void rb_undef(VALUE, ID);</div><div class='del'>-void rb_define_protected_method(VALUE, const char*, VALUE (*)(ANYARGS), int);</div><div class='del'>-void rb_define_private_method(VALUE, const char*, VALUE (*)(ANYARGS), int);</div><div class='del'>-void rb_define_singleton_method(VALUE, const char*, VALUE(*)(ANYARGS), int);</div><div class='del'>-VALUE rb_singleton_class(VALUE);</div><div class='del'>-/* compar.c */</div><div class='del'>-int rb_cmpint(VALUE, VALUE, VALUE);</div><div class='del'>-NORETURN(void rb_cmperr(VALUE, VALUE));</div><div class='del'>-/* cont.c */</div><div class='del'>-VALUE rb_fiber_new(VALUE (*)(ANYARGS), VALUE);</div><div class='del'>-VALUE rb_fiber_resume(VALUE fib, int argc, const VALUE *argv);</div><div class='del'>-VALUE rb_fiber_yield(int argc, const VALUE *argv);</div><div class='del'>-VALUE rb_fiber_current(void);</div><div class='del'>-VALUE rb_fiber_alive_p(VALUE);</div><div class='del'>-/* enum.c */</div><div class='del'>-VALUE rb_enum_values_pack(int, const VALUE*);</div><div class='del'>-/* enumerator.c */</div><div class='del'>-VALUE rb_enumeratorize(VALUE, VALUE, int, const VALUE *);</div><div class='del'>-typedef VALUE rb_enumerator_size_func(VALUE, VALUE, VALUE);</div><div class='del'>-VALUE rb_enumeratorize_with_size(VALUE, VALUE, int, const VALUE *, rb_enumerator_size_func *);</div><div class='del'>-#ifndef RUBY_EXPORT</div><div class='del'>-#define rb_enumeratorize_with_size(obj, id, argc, argv, size_fn) \</div><div class='del'>-    rb_enumeratorize_with_size(obj, id, argc, argv, (rb_enumerator_size_func *)(size_fn))</div><div class='del'>-#endif</div><div class='del'>-#define SIZED_ENUMERATOR(obj, argc, argv, size_fn) \</div><div class='del'>-    rb_enumeratorize_with_size((obj), ID2SYM(rb_frame_this_func()), \</div><div class='del'>-			       (argc), (argv), (size_fn))</div><div class='del'>-#define RETURN_SIZED_ENUMERATOR(obj, argc, argv, size_fn) do {		\</div><div class='del'>-	if (!rb_block_given_p())					\</div><div class='del'>-	    return SIZED_ENUMERATOR(obj, argc, argv, size_fn);		\</div><div class='del'>-    } while (0)</div><div class='del'>-#define RETURN_ENUMERATOR(obj, argc, argv) RETURN_SIZED_ENUMERATOR(obj, argc, argv, 0)</div><div class='del'>-typedef struct {</div><div class='del'>-    VALUE begin;</div><div class='del'>-    VALUE end;</div><div class='del'>-    VALUE step;</div><div class='del'>-    int exclude_end;</div><div class='del'>-} rb_arithmetic_sequence_components_t;</div><div class='del'>-int rb_arithmetic_sequence_extract(VALUE, rb_arithmetic_sequence_components_t *);</div><div class='del'>-/* error.c */</div><div class='del'>-VALUE rb_exc_new(VALUE, const char*, long);</div><div class='del'>-VALUE rb_exc_new_cstr(VALUE, const char*);</div><div class='del'>-VALUE rb_exc_new_str(VALUE, VALUE);</div><div class='del'>-#define rb_exc_new2 rb_exc_new_cstr</div><div class='del'>-#define rb_exc_new3 rb_exc_new_str</div><div class='del'>-PRINTF_ARGS(NORETURN(void rb_loaderror(const char*, ...)), 1, 2);</div><div class='del'>-PRINTF_ARGS(NORETURN(void rb_loaderror_with_path(VALUE path, const char*, ...)), 2, 3);</div><div class='del'>-PRINTF_ARGS(NORETURN(void rb_name_error(ID, const char*, ...)), 2, 3);</div><div class='del'>-PRINTF_ARGS(NORETURN(void rb_name_error_str(VALUE, const char*, ...)), 2, 3);</div><div class='del'>-NORETURN(void rb_invalid_str(const char*, const char*));</div><div class='del'>-NORETURN(void rb_error_frozen(const char*));</div><div class='del'>-NORETURN(void rb_error_frozen_object(VALUE));</div><div class='del'>-void rb_error_untrusted(VALUE);</div><div class='del'>-void rb_check_frozen(VALUE);</div><div class='del'>-void rb_check_trusted(VALUE);</div><div class='del'>-#define rb_check_frozen_internal(obj) do { \</div><div class='del'>-	VALUE frozen_obj = (obj); \</div><div class='del'>-	if (RB_UNLIKELY(RB_OBJ_FROZEN(frozen_obj))) { \</div><div class='del'>-	    rb_error_frozen_object(frozen_obj); \</div><div class='del'>-	} \</div><div class='del'>-    } while (0)</div><div class='del'>-#define rb_check_trusted_internal(obj) ((void) 0)</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#define rb_check_frozen(obj) __extension__({rb_check_frozen_internal(obj);})</div><div class='del'>-#define rb_check_trusted(obj) __extension__({rb_check_trusted_internal(obj);})</div><div class='del'>-#else</div><div class='del'>-static inline void</div><div class='del'>-rb_check_frozen_inline(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    rb_check_frozen_internal(obj);</div><div class='del'>-}</div><div class='del'>-#define rb_check_frozen(obj) rb_check_frozen_inline(obj)</div><div class='del'>-static inline void</div><div class='del'>-rb_check_trusted_inline(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    rb_check_trusted_internal(obj);</div><div class='del'>-}</div><div class='del'>-#define rb_check_trusted(obj) rb_check_trusted_inline(obj)</div><div class='del'>-#endif</div><div class='del'>-void rb_check_copyable(VALUE obj, VALUE orig);</div><div class='del'>-</div><div class='del'>-#define RB_OBJ_INIT_COPY(obj, orig) \</div><div class='del'>-    ((obj) != (orig) &amp;&amp; (rb_obj_init_copy((obj), (orig)), 1))</div><div class='del'>-#define OBJ_INIT_COPY(obj, orig) RB_OBJ_INIT_COPY(obj, orig)</div><div class='del'>-</div><div class='del'>-/* eval.c */</div><div class='del'>-int rb_sourceline(void);</div><div class='del'>-const char *rb_sourcefile(void);</div><div class='del'>-VALUE rb_check_funcall(VALUE, ID, int, const VALUE*);</div><div class='del'>-</div><div class='del'>-NORETURN(MJIT_STATIC void rb_error_arity(int, int, int));</div><div class='del'>-static inline int</div><div class='del'>-rb_check_arity(int argc, int min, int max)</div><div class='del'>-{</div><div class='del'>-    if ((argc &lt; min) || (max != UNLIMITED_ARGUMENTS &amp;&amp; argc &gt; max))</div><div class='del'>-	rb_error_arity(argc, min, max);</div><div class='del'>-    return argc;</div><div class='del'>-}</div><div class='del'>-#define rb_check_arity rb_check_arity /* for ifdef */</div><div class='del'>-</div><div class='del'>-#if defined(NFDBITS) &amp;&amp; defined(HAVE_RB_FD_INIT)</div><div class='del'>-typedef struct {</div><div class='del'>-    int maxfd;</div><div class='del'>-    fd_set *fdset;</div><div class='del'>-} rb_fdset_t;</div><div class='del'>-</div><div class='del'>-void rb_fd_init(rb_fdset_t *);</div><div class='del'>-void rb_fd_term(rb_fdset_t *);</div><div class='del'>-void rb_fd_zero(rb_fdset_t *);</div><div class='del'>-void rb_fd_set(int, rb_fdset_t *);</div><div class='del'>-void rb_fd_clr(int, rb_fdset_t *);</div><div class='del'>-int rb_fd_isset(int, const rb_fdset_t *);</div><div class='del'>-void rb_fd_copy(rb_fdset_t *, const fd_set *, int);</div><div class='del'>-void rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src);</div><div class='del'>-</div><div class='del'>-struct timeval;</div><div class='del'>-int rb_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);</div><div class='del'>-</div><div class='del'>-#define rb_fd_ptr(f)	((f)-&gt;fdset)</div><div class='del'>-#define rb_fd_max(f)	((f)-&gt;maxfd)</div><div class='del'>-</div><div class='del'>-#elif defined(_WIN32)</div><div class='del'>-</div><div class='del'>-typedef struct {</div><div class='del'>-    int capa;</div><div class='del'>-    fd_set *fdset;</div><div class='del'>-} rb_fdset_t;</div><div class='del'>-</div><div class='del'>-void rb_fd_init(rb_fdset_t *);</div><div class='del'>-void rb_fd_term(rb_fdset_t *);</div><div class='del'>-#define rb_fd_zero(f)		((f)-&gt;fdset-&gt;fd_count = 0)</div><div class='del'>-void rb_fd_set(int, rb_fdset_t *);</div><div class='del'>-#define rb_fd_clr(n, f)		rb_w32_fdclr((n), (f)-&gt;fdset)</div><div class='del'>-#define rb_fd_isset(n, f)	rb_w32_fdisset((n), (f)-&gt;fdset)</div><div class='del'>-#define rb_fd_copy(d, s, n)	rb_w32_fd_copy((d), (s), (n))</div><div class='del'>-void rb_w32_fd_copy(rb_fdset_t *, const fd_set *, int);</div><div class='del'>-#define rb_fd_dup(d, s)	rb_w32_fd_dup((d), (s))</div><div class='del'>-void rb_w32_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src);</div><div class='del'>-static inline int</div><div class='del'>-rb_fd_select(int n, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout)</div><div class='del'>-{</div><div class='del'>-    return rb_w32_select(n,</div><div class='del'>-                         rfds ? rfds-&gt;fdset : NULL,</div><div class='del'>-                         wfds ? wfds-&gt;fdset : NULL,</div><div class='del'>-                         efds ? efds-&gt;fdset : NULL,</div><div class='del'>-                         timeout);</div><div class='del'>-}</div><div class='del'>-#define rb_fd_resize(n, f)	((void)(f))</div><div class='del'>-</div><div class='del'>-#define rb_fd_ptr(f)	((f)-&gt;fdset)</div><div class='del'>-#define rb_fd_max(f)	((f)-&gt;fdset-&gt;fd_count)</div><div class='del'>-</div><div class='del'>-#else</div><div class='del'>-</div><div class='del'>-typedef fd_set rb_fdset_t;</div><div class='del'>-#define rb_fd_zero(f)	FD_ZERO(f)</div><div class='del'>-#define rb_fd_set(n, f)	FD_SET((n), (f))</div><div class='del'>-#define rb_fd_clr(n, f)	FD_CLR((n), (f))</div><div class='del'>-#define rb_fd_isset(n, f) FD_ISSET((n), (f))</div><div class='del'>-#define rb_fd_copy(d, s, n) (*(d) = *(s))</div><div class='del'>-#define rb_fd_dup(d, s) (*(d) = *(s))</div><div class='del'>-#define rb_fd_resize(n, f)	((void)(f))</div><div class='del'>-#define rb_fd_ptr(f)	(f)</div><div class='del'>-#define rb_fd_init(f)	FD_ZERO(f)</div><div class='del'>-#define rb_fd_init_copy(d, s) (*(d) = *(s))</div><div class='del'>-#define rb_fd_term(f)	((void)(f))</div><div class='del'>-#define rb_fd_max(f)	FD_SETSIZE</div><div class='del'>-#define rb_fd_select(n, rfds, wfds, efds, timeout)	select((n), (rfds), (wfds), (efds), (timeout))</div><div class='del'>-</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-NORETURN(void rb_exc_raise(VALUE));</div><div class='del'>-NORETURN(void rb_exc_fatal(VALUE));</div><div class='del'>-NORETURN(VALUE rb_f_exit(int, const VALUE*));</div><div class='del'>-NORETURN(VALUE rb_f_abort(int, const VALUE*));</div><div class='del'>-void rb_remove_method(VALUE, const char*);</div><div class='del'>-void rb_remove_method_id(VALUE, ID);</div><div class='del'>-#define HAVE_RB_DEFINE_ALLOC_FUNC 1</div><div class='del'>-typedef VALUE (*rb_alloc_func_t)(VALUE);</div><div class='del'>-void rb_define_alloc_func(VALUE, rb_alloc_func_t);</div><div class='del'>-void rb_undef_alloc_func(VALUE);</div><div class='del'>-rb_alloc_func_t rb_get_alloc_func(VALUE);</div><div class='del'>-void rb_clear_constant_cache(void);</div><div class='del'>-void rb_clear_method_cache_by_class(VALUE);</div><div class='del'>-void rb_alias(VALUE, ID, ID);</div><div class='del'>-void rb_attr(VALUE,ID,int,int,int);</div><div class='del'>-int rb_method_boundp(VALUE, ID, int);</div><div class='del'>-int rb_method_basic_definition_p(VALUE, ID);</div><div class='del'>-VALUE rb_eval_cmd(VALUE, VALUE, int);</div><div class='del'>-int rb_obj_respond_to(VALUE, ID, int);</div><div class='del'>-int rb_respond_to(VALUE, ID);</div><div class='del'>-NORETURN(VALUE rb_f_notimplement(int argc, const VALUE *argv, VALUE obj));</div><div class='del'>-#if !defined(RUBY_EXPORT) &amp;&amp; defined(_WIN32)</div><div class='del'>-RUBY_EXTERN VALUE (*const rb_f_notimplement_)(int, const VALUE *, VALUE);</div><div class='del'>-#define rb_f_notimplement (*rb_f_notimplement_)</div><div class='del'>-#endif</div><div class='del'>-NORETURN(void rb_interrupt(void));</div><div class='del'>-VALUE rb_apply(VALUE, ID, VALUE);</div><div class='del'>-void rb_backtrace(void);</div><div class='del'>-ID rb_frame_this_func(void);</div><div class='del'>-VALUE rb_obj_instance_eval(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_obj_instance_exec(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_mod_module_eval(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_mod_module_exec(int, const VALUE*, VALUE);</div><div class='del'>-void rb_load(VALUE, int);</div><div class='del'>-void rb_load_protect(VALUE, int, int*);</div><div class='del'>-NORETURN(void rb_jump_tag(int));</div><div class='del'>-int rb_provided(const char*);</div><div class='del'>-int rb_feature_provided(const char *, const char **);</div><div class='del'>-void rb_provide(const char*);</div><div class='del'>-VALUE rb_f_require(VALUE, VALUE);</div><div class='del'>-VALUE rb_require_safe(VALUE, int);</div><div class='del'>-void rb_obj_call_init(VALUE, int, const VALUE*);</div><div class='del'>-VALUE rb_class_new_instance(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_block_proc(void);</div><div class='del'>-VALUE rb_block_lambda(void);</div><div class='del'>-VALUE rb_proc_new(VALUE (*)(ANYARGS/* VALUE yieldarg[, VALUE procarg] */), VALUE);</div><div class='del'>-VALUE rb_obj_is_proc(VALUE);</div><div class='del'>-VALUE rb_proc_call(VALUE, VALUE);</div><div class='del'>-VALUE rb_proc_call_with_block(VALUE, int argc, const VALUE *argv, VALUE);</div><div class='del'>-int rb_proc_arity(VALUE);</div><div class='del'>-VALUE rb_proc_lambda_p(VALUE);</div><div class='del'>-VALUE rb_binding_new(void);</div><div class='del'>-VALUE rb_obj_method(VALUE, VALUE);</div><div class='del'>-VALUE rb_obj_is_method(VALUE);</div><div class='del'>-VALUE rb_method_call(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_method_call_with_block(int, const VALUE *, VALUE, VALUE);</div><div class='del'>-int rb_mod_method_arity(VALUE, ID);</div><div class='del'>-int rb_obj_method_arity(VALUE, ID);</div><div class='del'>-VALUE rb_protect(VALUE (*)(VALUE), VALUE, int*);</div><div class='del'>-void rb_set_end_proc(void (*)(VALUE), VALUE);</div><div class='del'>-void rb_exec_end_proc(void);</div><div class='del'>-void rb_thread_schedule(void);</div><div class='del'>-void rb_thread_wait_fd(int);</div><div class='del'>-int rb_thread_fd_writable(int);</div><div class='del'>-void rb_thread_fd_close(int);</div><div class='del'>-int rb_thread_alone(void);</div><div class='del'>-void rb_thread_sleep(int);</div><div class='del'>-void rb_thread_sleep_forever(void);</div><div class='del'>-void rb_thread_sleep_deadly(void);</div><div class='del'>-VALUE rb_thread_stop(void);</div><div class='del'>-VALUE rb_thread_wakeup(VALUE);</div><div class='del'>-VALUE rb_thread_wakeup_alive(VALUE);</div><div class='del'>-VALUE rb_thread_run(VALUE);</div><div class='del'>-VALUE rb_thread_kill(VALUE);</div><div class='del'>-VALUE rb_thread_create(VALUE (*)(ANYARGS), void*);</div><div class='del'>-int rb_thread_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);</div><div class='del'>-void rb_thread_wait_for(struct timeval);</div><div class='del'>-VALUE rb_thread_current(void);</div><div class='del'>-VALUE rb_thread_main(void);</div><div class='del'>-VALUE rb_thread_local_aref(VALUE, ID);</div><div class='del'>-VALUE rb_thread_local_aset(VALUE, ID, VALUE);</div><div class='del'>-void rb_thread_atfork(void);</div><div class='del'>-void rb_thread_atfork_before_exec(void);</div><div class='del'>-VALUE rb_exec_recursive(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE);</div><div class='del'>-VALUE rb_exec_recursive_paired(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE,VALUE);</div><div class='del'>-VALUE rb_exec_recursive_outer(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE);</div><div class='del'>-VALUE rb_exec_recursive_paired_outer(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE,VALUE);</div><div class='del'>-/* dir.c */</div><div class='del'>-VALUE rb_dir_getwd(void);</div><div class='del'>-/* file.c */</div><div class='del'>-VALUE rb_file_s_expand_path(int, const VALUE *);</div><div class='del'>-VALUE rb_file_expand_path(VALUE, VALUE);</div><div class='del'>-VALUE rb_file_s_absolute_path(int, const VALUE *);</div><div class='del'>-VALUE rb_file_absolute_path(VALUE, VALUE);</div><div class='del'>-VALUE rb_file_dirname(VALUE fname);</div><div class='del'>-int rb_find_file_ext_safe(VALUE*, const char* const*, int);</div><div class='del'>-VALUE rb_find_file_safe(VALUE, int);</div><div class='del'>-int rb_find_file_ext(VALUE*, const char* const*);</div><div class='del'>-VALUE rb_find_file(VALUE);</div><div class='del'>-VALUE rb_file_directory_p(VALUE,VALUE);</div><div class='del'>-VALUE rb_str_encode_ospath(VALUE);</div><div class='del'>-int rb_is_absolute_path(const char *);</div><div class='del'>-/* gc.c */</div><div class='del'>-COLDFUNC NORETURN(void rb_memerror(void));</div><div class='del'>-PUREFUNC(int rb_during_gc(void));</div><div class='del'>-void rb_gc_mark_locations(const VALUE*, const VALUE*);</div><div class='del'>-void rb_mark_tbl(struct st_table*);</div><div class='del'>-void rb_mark_set(struct st_table*);</div><div class='del'>-void rb_mark_hash(struct st_table*);</div><div class='del'>-void rb_gc_mark_maybe(VALUE);</div><div class='del'>-void rb_gc_mark(VALUE);</div><div class='del'>-void rb_gc_force_recycle(VALUE);</div><div class='del'>-void rb_gc(void);</div><div class='del'>-void rb_gc_copy_finalizer(VALUE,VALUE);</div><div class='del'>-void rb_gc_finalize_deferred(void);</div><div class='del'>-void rb_gc_call_finalizer_at_exit(void);</div><div class='del'>-VALUE rb_gc_enable(void);</div><div class='del'>-VALUE rb_gc_disable(void);</div><div class='del'>-VALUE rb_gc_start(void);</div><div class='del'>-VALUE rb_define_finalizer(VALUE, VALUE);</div><div class='del'>-VALUE rb_undefine_finalizer(VALUE);</div><div class='del'>-size_t rb_gc_count(void);</div><div class='del'>-size_t rb_gc_stat(VALUE);</div><div class='del'>-VALUE rb_gc_latest_gc_info(VALUE);</div><div class='del'>-void rb_gc_adjust_memory_usage(ssize_t);</div><div class='del'>-/* hash.c */</div><div class='del'>-void st_foreach_safe(struct st_table *, int (*)(ANYARGS), st_data_t);</div><div class='del'>-VALUE rb_check_hash_type(VALUE);</div><div class='del'>-void rb_hash_foreach(VALUE, int (*)(ANYARGS), VALUE);</div><div class='del'>-VALUE rb_hash(VALUE);</div><div class='del'>-VALUE rb_hash_new(void);</div><div class='del'>-VALUE rb_hash_dup(VALUE);</div><div class='del'>-VALUE rb_hash_freeze(VALUE);</div><div class='del'>-VALUE rb_hash_aref(VALUE, VALUE);</div><div class='del'>-VALUE rb_hash_lookup(VALUE, VALUE);</div><div class='del'>-VALUE rb_hash_lookup2(VALUE, VALUE, VALUE);</div><div class='del'>-VALUE rb_hash_fetch(VALUE, VALUE);</div><div class='del'>-VALUE rb_hash_aset(VALUE, VALUE, VALUE);</div><div class='del'>-VALUE rb_hash_clear(VALUE);</div><div class='del'>-VALUE rb_hash_delete_if(VALUE);</div><div class='del'>-VALUE rb_hash_delete(VALUE,VALUE);</div><div class='del'>-VALUE rb_hash_set_ifnone(VALUE hash, VALUE ifnone);</div><div class='del'>-typedef VALUE rb_hash_update_func(VALUE newkey, VALUE oldkey, VALUE value);</div><div class='del'>-VALUE rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func);</div><div class='del'>-struct st_table *rb_hash_tbl(VALUE, const char *file, int line);</div><div class='del'>-int rb_path_check(const char*);</div><div class='del'>-int rb_env_path_tainted(void);</div><div class='del'>-VALUE rb_env_clear(void);</div><div class='del'>-VALUE rb_hash_size(VALUE);</div><div class='del'>-void rb_hash_free(VALUE);</div><div class='del'>-/* io.c */</div><div class='del'>-#define rb_defout rb_stdout</div><div class='del'>-RUBY_EXTERN VALUE rb_fs;</div><div class='del'>-RUBY_EXTERN VALUE rb_output_fs;</div><div class='del'>-RUBY_EXTERN VALUE rb_rs;</div><div class='del'>-RUBY_EXTERN VALUE rb_default_rs;</div><div class='del'>-RUBY_EXTERN VALUE rb_output_rs;</div><div class='del'>-VALUE rb_io_write(VALUE, VALUE);</div><div class='del'>-VALUE rb_io_gets(VALUE);</div><div class='del'>-VALUE rb_io_getbyte(VALUE);</div><div class='del'>-VALUE rb_io_ungetc(VALUE, VALUE);</div><div class='del'>-VALUE rb_io_ungetbyte(VALUE, VALUE);</div><div class='del'>-VALUE rb_io_close(VALUE);</div><div class='del'>-VALUE rb_io_flush(VALUE);</div><div class='del'>-VALUE rb_io_eof(VALUE);</div><div class='del'>-VALUE rb_io_binmode(VALUE);</div><div class='del'>-VALUE rb_io_ascii8bit_binmode(VALUE);</div><div class='del'>-VALUE rb_io_addstr(VALUE, VALUE);</div><div class='del'>-VALUE rb_io_printf(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_io_print(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_io_puts(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_io_fdopen(int, int, const char*);</div><div class='del'>-VALUE rb_io_get_io(VALUE);</div><div class='del'>-VALUE rb_file_open(const char*, const char*);</div><div class='del'>-VALUE rb_file_open_str(VALUE, const char*);</div><div class='del'>-VALUE rb_gets(void);</div><div class='del'>-void rb_write_error(const char*);</div><div class='del'>-void rb_write_error2(const char*, long);</div><div class='del'>-void rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds);</div><div class='del'>-int rb_pipe(int *pipes);</div><div class='del'>-int rb_reserved_fd_p(int fd);</div><div class='del'>-int rb_cloexec_open(const char *pathname, int flags, mode_t mode);</div><div class='del'>-int rb_cloexec_dup(int oldfd);</div><div class='del'>-int rb_cloexec_dup2(int oldfd, int newfd);</div><div class='del'>-int rb_cloexec_pipe(int fildes[2]);</div><div class='del'>-int rb_cloexec_fcntl_dupfd(int fd, int minfd);</div><div class='del'>-#define RB_RESERVED_FD_P(fd) rb_reserved_fd_p(fd)</div><div class='del'>-void rb_update_max_fd(int fd);</div><div class='del'>-void rb_fd_fix_cloexec(int fd);</div><div class='del'>-/* marshal.c */</div><div class='del'>-VALUE rb_marshal_dump(VALUE, VALUE);</div><div class='del'>-VALUE rb_marshal_load(VALUE);</div><div class='del'>-void rb_marshal_define_compat(VALUE newclass, VALUE oldclass, VALUE (*dumper)(VALUE), VALUE (*loader)(VALUE, VALUE));</div><div class='del'>-/* numeric.c */</div><div class='del'>-NORETURN(void rb_num_zerodiv(void));</div><div class='del'>-#define RB_NUM_COERCE_FUNCS_NEED_OPID 1</div><div class='del'>-VALUE rb_num_coerce_bin(VALUE, VALUE, ID);</div><div class='del'>-VALUE rb_num_coerce_cmp(VALUE, VALUE, ID);</div><div class='del'>-VALUE rb_num_coerce_relop(VALUE, VALUE, ID);</div><div class='del'>-VALUE rb_num_coerce_bit(VALUE, VALUE, ID);</div><div class='del'>-VALUE rb_num2fix(VALUE);</div><div class='del'>-VALUE rb_fix2str(VALUE, int);</div><div class='del'>-CONSTFUNC(VALUE rb_dbl_cmp(double, double));</div><div class='del'>-/* object.c */</div><div class='del'>-int rb_eql(VALUE, VALUE);</div><div class='del'>-VALUE rb_any_to_s(VALUE);</div><div class='del'>-VALUE rb_inspect(VALUE);</div><div class='del'>-VALUE rb_obj_is_instance_of(VALUE, VALUE);</div><div class='del'>-VALUE rb_obj_is_kind_of(VALUE, VALUE);</div><div class='del'>-VALUE rb_obj_alloc(VALUE);</div><div class='del'>-VALUE rb_obj_clone(VALUE);</div><div class='del'>-VALUE rb_obj_dup(VALUE);</div><div class='del'>-VALUE rb_obj_init_copy(VALUE,VALUE);</div><div class='del'>-VALUE rb_obj_taint(VALUE);</div><div class='del'>-PUREFUNC(VALUE rb_obj_tainted(VALUE));</div><div class='del'>-VALUE rb_obj_untaint(VALUE);</div><div class='del'>-VALUE rb_obj_untrust(VALUE);</div><div class='del'>-PUREFUNC(VALUE rb_obj_untrusted(VALUE));</div><div class='del'>-VALUE rb_obj_trust(VALUE);</div><div class='del'>-VALUE rb_obj_freeze(VALUE);</div><div class='del'>-PUREFUNC(VALUE rb_obj_frozen_p(VALUE));</div><div class='del'>-VALUE rb_obj_id(VALUE);</div><div class='del'>-VALUE rb_obj_class(VALUE);</div><div class='del'>-PUREFUNC(VALUE rb_class_real(VALUE));</div><div class='del'>-PUREFUNC(VALUE rb_class_inherited_p(VALUE, VALUE));</div><div class='del'>-VALUE rb_class_superclass(VALUE);</div><div class='del'>-VALUE rb_class_get_superclass(VALUE);</div><div class='del'>-VALUE rb_convert_type(VALUE,int,const char*,const char*);</div><div class='del'>-VALUE rb_check_convert_type(VALUE,int,const char*,const char*);</div><div class='del'>-VALUE rb_check_to_integer(VALUE, const char *);</div><div class='del'>-VALUE rb_check_to_float(VALUE);</div><div class='del'>-VALUE rb_to_int(VALUE);</div><div class='del'>-VALUE rb_check_to_int(VALUE);</div><div class='del'>-VALUE rb_Integer(VALUE);</div><div class='del'>-VALUE rb_to_float(VALUE);</div><div class='del'>-VALUE rb_Float(VALUE);</div><div class='del'>-VALUE rb_String(VALUE);</div><div class='del'>-VALUE rb_Array(VALUE);</div><div class='del'>-VALUE rb_Hash(VALUE);</div><div class='del'>-double rb_cstr_to_dbl(const char*, int);</div><div class='del'>-double rb_str_to_dbl(VALUE, int);</div><div class='del'>-/* parse.y */</div><div class='del'>-ID rb_id_attrset(ID);</div><div class='del'>-CONSTFUNC(int rb_is_const_id(ID));</div><div class='del'>-CONSTFUNC(int rb_is_global_id(ID));</div><div class='del'>-CONSTFUNC(int rb_is_instance_id(ID));</div><div class='del'>-CONSTFUNC(int rb_is_attrset_id(ID));</div><div class='del'>-CONSTFUNC(int rb_is_class_id(ID));</div><div class='del'>-CONSTFUNC(int rb_is_local_id(ID));</div><div class='del'>-CONSTFUNC(int rb_is_junk_id(ID));</div><div class='del'>-int rb_symname_p(const char*);</div><div class='del'>-int rb_sym_interned_p(VALUE);</div><div class='del'>-VALUE rb_backref_get(void);</div><div class='del'>-void rb_backref_set(VALUE);</div><div class='del'>-VALUE rb_lastline_get(void);</div><div class='del'>-void rb_lastline_set(VALUE);</div><div class='del'>-/* process.c */</div><div class='del'>-void rb_last_status_set(int status, rb_pid_t pid);</div><div class='del'>-VALUE rb_last_status_get(void);</div><div class='del'>-int rb_proc_exec(const char*);</div><div class='del'>-NORETURN(VALUE rb_f_exec(int, const VALUE*));</div><div class='del'>-rb_pid_t rb_waitpid(rb_pid_t pid, int *status, int flags);</div><div class='del'>-void rb_syswait(rb_pid_t pid);</div><div class='del'>-rb_pid_t rb_spawn(int, const VALUE*);</div><div class='del'>-rb_pid_t rb_spawn_err(int, const VALUE*, char*, size_t);</div><div class='del'>-VALUE rb_proc_times(VALUE);</div><div class='del'>-VALUE rb_detach_process(rb_pid_t pid);</div><div class='del'>-/* range.c */</div><div class='del'>-VALUE rb_range_new(VALUE, VALUE, int);</div><div class='del'>-VALUE rb_range_beg_len(VALUE, long*, long*, long, int);</div><div class='del'>-int rb_range_values(VALUE range, VALUE *begp, VALUE *endp, int *exclp);</div><div class='del'>-/* random.c */</div><div class='del'>-unsigned int rb_genrand_int32(void);</div><div class='del'>-double rb_genrand_real(void);</div><div class='del'>-void rb_reset_random_seed(void);</div><div class='del'>-VALUE rb_random_bytes(VALUE rnd, long n);</div><div class='del'>-VALUE rb_random_int(VALUE rnd, VALUE max);</div><div class='del'>-unsigned int rb_random_int32(VALUE rnd);</div><div class='del'>-double rb_random_real(VALUE rnd);</div><div class='del'>-unsigned long rb_random_ulong_limited(VALUE rnd, unsigned long limit);</div><div class='del'>-unsigned long rb_genrand_ulong_limited(unsigned long i);</div><div class='del'>-/* re.c */</div><div class='del'>-#define rb_memcmp memcmp</div><div class='del'>-int rb_memcicmp(const void*,const void*,long);</div><div class='del'>-void rb_match_busy(VALUE);</div><div class='del'>-VALUE rb_reg_nth_defined(int, VALUE);</div><div class='del'>-VALUE rb_reg_nth_match(int, VALUE);</div><div class='del'>-int rb_reg_backref_number(VALUE match, VALUE backref);</div><div class='del'>-VALUE rb_reg_last_match(VALUE);</div><div class='del'>-VALUE rb_reg_match_pre(VALUE);</div><div class='del'>-VALUE rb_reg_match_post(VALUE);</div><div class='del'>-VALUE rb_reg_match_last(VALUE);</div><div class='del'>-#define HAVE_RB_REG_NEW_STR 1</div><div class='del'>-VALUE rb_reg_new_str(VALUE, int);</div><div class='del'>-VALUE rb_reg_new(const char *, long, int);</div><div class='del'>-VALUE rb_reg_alloc(void);</div><div class='del'>-VALUE rb_reg_init_str(VALUE re, VALUE s, int options);</div><div class='del'>-VALUE rb_reg_match(VALUE, VALUE);</div><div class='del'>-VALUE rb_reg_match2(VALUE);</div><div class='del'>-int rb_reg_options(VALUE);</div><div class='del'>-/* ruby.c */</div><div class='del'>-#define rb_argv rb_get_argv()</div><div class='del'>-RUBY_EXTERN VALUE rb_argv0;</div><div class='del'>-VALUE rb_get_argv(void);</div><div class='del'>-void *rb_load_file(const char*);</div><div class='del'>-void *rb_load_file_str(VALUE);</div><div class='del'>-/* signal.c */</div><div class='del'>-VALUE rb_f_kill(int, const VALUE*);</div><div class='del'>-#ifdef POSIX_SIGNAL</div><div class='del'>-#define posix_signal ruby_posix_signal</div><div class='del'>-RETSIGTYPE (*posix_signal(int, RETSIGTYPE (*)(int)))(int);</div><div class='del'>-#endif</div><div class='del'>-void rb_trap_exit(void);</div><div class='del'>-void rb_trap_exec(void);</div><div class='del'>-const char *ruby_signal_name(int);</div><div class='del'>-void ruby_default_signal(int);</div><div class='del'>-/* sprintf.c */</div><div class='del'>-VALUE rb_f_sprintf(int, const VALUE*);</div><div class='del'>-PRINTF_ARGS(VALUE rb_sprintf(const char*, ...), 1, 2);</div><div class='del'>-VALUE rb_vsprintf(const char*, va_list);</div><div class='del'>-PRINTF_ARGS(VALUE rb_str_catf(VALUE, const char*, ...), 2, 3);</div><div class='del'>-VALUE rb_str_vcatf(VALUE, const char*, va_list);</div><div class='del'>-VALUE rb_str_format(int, const VALUE *, VALUE);</div><div class='del'>-/* string.c */</div><div class='del'>-VALUE rb_str_new(const char*, long);</div><div class='del'>-VALUE rb_str_new_cstr(const char*);</div><div class='del'>-VALUE rb_str_new_shared(VALUE);</div><div class='del'>-VALUE rb_str_new_frozen(VALUE);</div><div class='del'>-VALUE rb_str_new_with_class(VALUE, const char*, long);</div><div class='del'>-VALUE rb_tainted_str_new_cstr(const char*);</div><div class='del'>-VALUE rb_tainted_str_new(const char*, long);</div><div class='del'>-VALUE rb_external_str_new(const char*, long);</div><div class='del'>-VALUE rb_external_str_new_cstr(const char*);</div><div class='del'>-VALUE rb_locale_str_new(const char*, long);</div><div class='del'>-VALUE rb_locale_str_new_cstr(const char*);</div><div class='del'>-VALUE rb_filesystem_str_new(const char*, long);</div><div class='del'>-VALUE rb_filesystem_str_new_cstr(const char*);</div><div class='del'>-VALUE rb_str_buf_new(long);</div><div class='del'>-VALUE rb_str_buf_new_cstr(const char*);</div><div class='del'>-VALUE rb_str_buf_new2(const char*);</div><div class='del'>-VALUE rb_str_tmp_new(long);</div><div class='del'>-VALUE rb_usascii_str_new(const char*, long);</div><div class='del'>-VALUE rb_usascii_str_new_cstr(const char*);</div><div class='del'>-VALUE rb_utf8_str_new(const char*, long);</div><div class='del'>-VALUE rb_utf8_str_new_cstr(const char*);</div><div class='del'>-VALUE rb_str_new_static(const char *, long);</div><div class='del'>-VALUE rb_usascii_str_new_static(const char *, long);</div><div class='del'>-VALUE rb_utf8_str_new_static(const char *, long);</div><div class='del'>-void rb_str_free(VALUE);</div><div class='del'>-void rb_str_shared_replace(VALUE, VALUE);</div><div class='del'>-VALUE rb_str_buf_append(VALUE, VALUE);</div><div class='del'>-VALUE rb_str_buf_cat(VALUE, const char*, long);</div><div class='del'>-VALUE rb_str_buf_cat2(VALUE, const char*);</div><div class='del'>-VALUE rb_str_buf_cat_ascii(VALUE, const char*);</div><div class='del'>-VALUE rb_obj_as_string(VALUE);</div><div class='del'>-VALUE rb_check_string_type(VALUE);</div><div class='del'>-void rb_must_asciicompat(VALUE);</div><div class='del'>-VALUE rb_str_dup(VALUE);</div><div class='del'>-VALUE rb_str_resurrect(VALUE str);</div><div class='del'>-VALUE rb_str_locktmp(VALUE);</div><div class='del'>-VALUE rb_str_unlocktmp(VALUE);</div><div class='del'>-VALUE rb_str_dup_frozen(VALUE);</div><div class='del'>-#define rb_str_dup_frozen rb_str_new_frozen</div><div class='del'>-VALUE rb_str_plus(VALUE, VALUE);</div><div class='del'>-VALUE rb_str_times(VALUE, VALUE);</div><div class='del'>-long rb_str_sublen(VALUE, long);</div><div class='del'>-VALUE rb_str_substr(VALUE, long, long);</div><div class='del'>-VALUE rb_str_subseq(VALUE, long, long);</div><div class='del'>-char *rb_str_subpos(VALUE, long, long*);</div><div class='del'>-void rb_str_modify(VALUE);</div><div class='del'>-void rb_str_modify_expand(VALUE, long);</div><div class='del'>-VALUE rb_str_freeze(VALUE);</div><div class='del'>-void rb_str_set_len(VALUE, long);</div><div class='del'>-VALUE rb_str_resize(VALUE, long);</div><div class='del'>-VALUE rb_str_cat(VALUE, const char*, long);</div><div class='del'>-VALUE rb_str_cat_cstr(VALUE, const char*);</div><div class='del'>-VALUE rb_str_cat2(VALUE, const char*);</div><div class='del'>-VALUE rb_str_append(VALUE, VALUE);</div><div class='del'>-VALUE rb_str_concat(VALUE, VALUE);</div><div class='del'>-st_index_t rb_memhash(const void *ptr, long len);</div><div class='del'>-st_index_t rb_hash_start(st_index_t);</div><div class='del'>-st_index_t rb_hash_uint32(st_index_t, uint32_t);</div><div class='del'>-st_index_t rb_hash_uint(st_index_t, st_index_t);</div><div class='del'>-st_index_t rb_hash_end(st_index_t);</div><div class='del'>-#define rb_hash_uint32(h, i) st_hash_uint32((h), (i))</div><div class='del'>-#define rb_hash_uint(h, i) st_hash_uint((h), (i))</div><div class='del'>-#define rb_hash_end(h) st_hash_end(h)</div><div class='del'>-st_index_t rb_str_hash(VALUE);</div><div class='del'>-int rb_str_hash_cmp(VALUE,VALUE);</div><div class='del'>-int rb_str_comparable(VALUE, VALUE);</div><div class='del'>-int rb_str_cmp(VALUE, VALUE);</div><div class='del'>-VALUE rb_str_equal(VALUE str1, VALUE str2);</div><div class='del'>-VALUE rb_str_drop_bytes(VALUE, long);</div><div class='del'>-void rb_str_update(VALUE, long, long, VALUE);</div><div class='del'>-VALUE rb_str_replace(VALUE, VALUE);</div><div class='del'>-VALUE rb_str_inspect(VALUE);</div><div class='del'>-VALUE rb_str_dump(VALUE);</div><div class='del'>-VALUE rb_str_split(VALUE, const char*);</div><div class='del'>-void rb_str_setter(VALUE, ID, VALUE*);</div><div class='del'>-VALUE rb_str_intern(VALUE);</div><div class='del'>-VALUE rb_sym_to_s(VALUE);</div><div class='del'>-long rb_str_strlen(VALUE);</div><div class='del'>-VALUE rb_str_length(VALUE);</div><div class='del'>-long rb_str_offset(VALUE, long);</div><div class='del'>-PUREFUNC(size_t rb_str_capacity(VALUE));</div><div class='del'>-VALUE rb_str_ellipsize(VALUE, long);</div><div class='del'>-VALUE rb_str_scrub(VALUE, VALUE);</div><div class='del'>-/* symbol.c */</div><div class='del'>-VALUE rb_sym_all_symbols(void);</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P</div><div class='del'>-#define rb_str_new(str, len) RB_GNUC_EXTENSION_BLOCK(	\</div><div class='del'>-    (__builtin_constant_p(str) &amp;&amp; __builtin_constant_p(len)) ? \</div><div class='del'>-	rb_str_new_static((str), (len)) : \</div><div class='del'>-	rb_str_new((str), (len))	  \</div><div class='del'>-)</div><div class='del'>-#define rb_str_new_cstr(str) RB_GNUC_EXTENSION_BLOCK(	\</div><div class='del'>-    (__builtin_constant_p(str)) ?		\</div><div class='del'>-	rb_str_new_static((str), (long)strlen(str)) : \</div><div class='del'>-	rb_str_new_cstr(str)			\</div><div class='del'>-)</div><div class='del'>-#define rb_usascii_str_new(str, len) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(str) &amp;&amp; __builtin_constant_p(len)) ? \</div><div class='del'>-	rb_usascii_str_new_static((str), (len)) : \</div><div class='del'>-	rb_usascii_str_new((str), (len))	  \</div><div class='del'>-)</div><div class='del'>-#define rb_utf8_str_new(str, len) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(str) &amp;&amp; __builtin_constant_p(len)) ? \</div><div class='del'>-	rb_utf8_str_new_static((str), (len)) : \</div><div class='del'>-	rb_utf8_str_new((str), (len))	  \</div><div class='del'>-)</div><div class='del'>-#define rb_tainted_str_new_cstr(str) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(str)) ?	       \</div><div class='del'>-	rb_tainted_str_new((str), (long)strlen(str)) : \</div><div class='del'>-	rb_tainted_str_new_cstr(str)	       \</div><div class='del'>-)</div><div class='del'>-#define rb_usascii_str_new_cstr(str) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(str)) ?	       \</div><div class='del'>-	rb_usascii_str_new_static((str), (long)strlen(str)) : \</div><div class='del'>-	rb_usascii_str_new_cstr(str)	       \</div><div class='del'>-)</div><div class='del'>-#define rb_utf8_str_new_cstr(str) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(str)) ?		\</div><div class='del'>-	rb_utf8_str_new_static((str), (long)strlen(str)) : \</div><div class='del'>-	rb_utf8_str_new_cstr(str)		\</div><div class='del'>-)</div><div class='del'>-#define rb_external_str_new_cstr(str) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(str)) ?		\</div><div class='del'>-	rb_external_str_new((str), (long)strlen(str)) : \</div><div class='del'>-	rb_external_str_new_cstr(str)		\</div><div class='del'>-)</div><div class='del'>-#define rb_locale_str_new_cstr(str) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(str)) ?	       \</div><div class='del'>-	rb_locale_str_new((str), (long)strlen(str)) :  \</div><div class='del'>-	rb_locale_str_new_cstr(str)	       \</div><div class='del'>-)</div><div class='del'>-#define rb_str_buf_new_cstr(str) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(str)) ?		\</div><div class='del'>-	rb_str_buf_cat(rb_str_buf_new((long)strlen(str)), \</div><div class='del'>-		       (str), (long)strlen(str)) : \</div><div class='del'>-	rb_str_buf_new_cstr(str)		\</div><div class='del'>-)</div><div class='del'>-#define rb_str_cat_cstr(str, ptr) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(ptr)) ?	        \</div><div class='del'>-	rb_str_cat((str), (ptr), (long)strlen(ptr)) : \</div><div class='del'>-	rb_str_cat_cstr((str), (ptr))		\</div><div class='del'>-)</div><div class='del'>-#define rb_exc_new_cstr(klass, ptr) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(ptr)) ?	        \</div><div class='del'>-	rb_exc_new((klass), (ptr), (long)strlen(ptr)) : \</div><div class='del'>-	rb_exc_new_cstr((klass), (ptr))		\</div><div class='del'>-)</div><div class='del'>-#endif</div><div class='del'>-#define rb_str_new2 rb_str_new_cstr</div><div class='del'>-#define rb_str_new3 rb_str_new_shared</div><div class='del'>-#define rb_str_new4 rb_str_new_frozen</div><div class='del'>-#define rb_str_new5 rb_str_new_with_class</div><div class='del'>-#define rb_tainted_str_new2 rb_tainted_str_new_cstr</div><div class='del'>-#define rb_str_buf_new2 rb_str_buf_new_cstr</div><div class='del'>-#define rb_usascii_str_new2 rb_usascii_str_new_cstr</div><div class='del'>-#define rb_str_buf_cat rb_str_cat</div><div class='del'>-#define rb_str_buf_cat2 rb_str_cat_cstr</div><div class='del'>-#define rb_str_cat2 rb_str_cat_cstr</div><div class='del'>-#define rb_strlen_lit(str) (sizeof(str "") - 1)</div><div class='del'>-#define rb_str_new_lit(str) rb_str_new_static((str), rb_strlen_lit(str))</div><div class='del'>-#define rb_usascii_str_new_lit(str) rb_usascii_str_new_static((str), rb_strlen_lit(str))</div><div class='del'>-#define rb_utf8_str_new_lit(str) rb_utf8_str_new_static((str), rb_strlen_lit(str))</div><div class='del'>-#define rb_enc_str_new_lit(str, enc) rb_enc_str_new_static((str), rb_strlen_lit(str), (enc))</div><div class='del'>-#define rb_str_new_literal(str) rb_str_new_lit(str)</div><div class='del'>-#define rb_usascii_str_new_literal(str) rb_usascii_str_new_lit(str)</div><div class='del'>-#define rb_utf8_str_new_literal(str) rb_utf8_str_new_lit(str)</div><div class='del'>-#define rb_enc_str_new_literal(str, enc) rb_enc_str_new_lit(str, enc)</div><div class='del'>-</div><div class='del'>-/* struct.c */</div><div class='del'>-VALUE rb_struct_new(VALUE, ...);</div><div class='del'>-VALUE rb_struct_define(const char*, ...);</div><div class='del'>-VALUE rb_struct_define_under(VALUE, const char*, ...);</div><div class='del'>-VALUE rb_struct_alloc(VALUE, VALUE);</div><div class='del'>-VALUE rb_struct_initialize(VALUE, VALUE);</div><div class='del'>-VALUE rb_struct_aref(VALUE, VALUE);</div><div class='del'>-VALUE rb_struct_aset(VALUE, VALUE, VALUE);</div><div class='del'>-VALUE rb_struct_getmember(VALUE, ID);</div><div class='del'>-VALUE rb_struct_s_members(VALUE);</div><div class='del'>-VALUE rb_struct_members(VALUE);</div><div class='del'>-VALUE rb_struct_size(VALUE s);</div><div class='del'>-VALUE rb_struct_alloc_noinit(VALUE);</div><div class='del'>-VALUE rb_struct_define_without_accessor(const char *, VALUE, rb_alloc_func_t, ...);</div><div class='del'>-VALUE rb_struct_define_without_accessor_under(VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc, ...);</div><div class='del'>-</div><div class='del'>-/* thread.c */</div><div class='del'>-typedef void rb_unblock_function_t(void *);</div><div class='del'>-typedef VALUE rb_blocking_function_t(void *);</div><div class='del'>-void rb_thread_check_ints(void);</div><div class='del'>-int rb_thread_interrupted(VALUE thval);</div><div class='del'>-</div><div class='del'>-#define RUBY_UBF_IO ((rb_unblock_function_t *)-1)</div><div class='del'>-#define RUBY_UBF_PROCESS ((rb_unblock_function_t *)-1)</div><div class='del'>-VALUE rb_mutex_new(void);</div><div class='del'>-VALUE rb_mutex_locked_p(VALUE mutex);</div><div class='del'>-VALUE rb_mutex_trylock(VALUE mutex);</div><div class='del'>-VALUE rb_mutex_lock(VALUE mutex);</div><div class='del'>-VALUE rb_mutex_unlock(VALUE mutex);</div><div class='del'>-VALUE rb_mutex_sleep(VALUE self, VALUE timeout);</div><div class='del'>-VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg);</div><div class='del'>-/* time.c */</div><div class='del'>-void rb_timespec_now(struct timespec *);</div><div class='del'>-VALUE rb_time_new(time_t, long);</div><div class='del'>-VALUE rb_time_nano_new(time_t, long);</div><div class='del'>-VALUE rb_time_timespec_new(const struct timespec *, int);</div><div class='del'>-VALUE rb_time_num_new(VALUE, VALUE);</div><div class='del'>-struct timeval rb_time_interval(VALUE num);</div><div class='del'>-struct timeval rb_time_timeval(VALUE time);</div><div class='del'>-struct timespec rb_time_timespec(VALUE time);</div><div class='del'>-VALUE rb_time_utc_offset(VALUE time);</div><div class='del'>-/* variable.c */</div><div class='del'>-VALUE rb_mod_name(VALUE);</div><div class='del'>-VALUE rb_class_path(VALUE);</div><div class='del'>-VALUE rb_class_path_cached(VALUE);</div><div class='del'>-void rb_set_class_path(VALUE, VALUE, const char*);</div><div class='del'>-void rb_set_class_path_string(VALUE, VALUE, VALUE);</div><div class='del'>-VALUE rb_path_to_class(VALUE);</div><div class='del'>-VALUE rb_path2class(const char*);</div><div class='del'>-void rb_name_class(VALUE, ID);</div><div class='del'>-VALUE rb_class_name(VALUE);</div><div class='del'>-VALUE rb_autoload_load(VALUE, ID);</div><div class='del'>-VALUE rb_autoload_p(VALUE, ID);</div><div class='del'>-VALUE rb_f_trace_var(int, const VALUE*);</div><div class='del'>-VALUE rb_f_untrace_var(int, const VALUE*);</div><div class='del'>-VALUE rb_f_global_variables(void);</div><div class='del'>-void rb_alias_variable(ID, ID);</div><div class='del'>-void rb_copy_generic_ivar(VALUE,VALUE);</div><div class='del'>-void rb_free_generic_ivar(VALUE);</div><div class='del'>-VALUE rb_ivar_get(VALUE, ID);</div><div class='del'>-VALUE rb_ivar_set(VALUE, ID, VALUE);</div><div class='del'>-VALUE rb_ivar_defined(VALUE, ID);</div><div class='del'>-void rb_ivar_foreach(VALUE, int (*)(ANYARGS), st_data_t);</div><div class='del'>-st_index_t rb_ivar_count(VALUE);</div><div class='del'>-VALUE rb_attr_get(VALUE, ID);</div><div class='del'>-VALUE rb_obj_instance_variables(VALUE);</div><div class='del'>-VALUE rb_obj_remove_instance_variable(VALUE, VALUE);</div><div class='del'>-void *rb_mod_const_at(VALUE, void*);</div><div class='del'>-void *rb_mod_const_of(VALUE, void*);</div><div class='del'>-VALUE rb_const_list(void*);</div><div class='del'>-VALUE rb_mod_constants(int, const VALUE *, VALUE);</div><div class='del'>-VALUE rb_mod_remove_const(VALUE, VALUE);</div><div class='del'>-int rb_const_defined(VALUE, ID);</div><div class='del'>-int rb_const_defined_at(VALUE, ID);</div><div class='del'>-int rb_const_defined_from(VALUE, ID);</div><div class='del'>-VALUE rb_const_get(VALUE, ID);</div><div class='del'>-VALUE rb_const_get_at(VALUE, ID);</div><div class='del'>-VALUE rb_const_get_from(VALUE, ID);</div><div class='del'>-void rb_const_set(VALUE, ID, VALUE);</div><div class='del'>-VALUE rb_const_remove(VALUE, ID);</div><div class='del'>-#if 0 /* EXPERIMENTAL: remove if no problem */</div><div class='del'>-NORETURN(VALUE rb_mod_const_missing(VALUE,VALUE));</div><div class='del'>-#endif</div><div class='del'>-VALUE rb_cvar_defined(VALUE, ID);</div><div class='del'>-void rb_cvar_set(VALUE, ID, VALUE);</div><div class='del'>-VALUE rb_cvar_get(VALUE, ID);</div><div class='del'>-void rb_cv_set(VALUE, const char*, VALUE);</div><div class='del'>-VALUE rb_cv_get(VALUE, const char*);</div><div class='del'>-void rb_define_class_variable(VALUE, const char*, VALUE);</div><div class='del'>-VALUE rb_mod_class_variables(int, const VALUE*, VALUE);</div><div class='del'>-VALUE rb_mod_remove_cvar(VALUE, VALUE);</div><div class='del'>-</div><div class='del'>-ID rb_frame_callee(void);</div><div class='del'>-VALUE rb_str_succ(VALUE);</div><div class='del'>-VALUE rb_time_succ(VALUE);</div><div class='del'>-VALUE rb_make_backtrace(void);</div><div class='del'>-VALUE rb_make_exception(int, const VALUE*);</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='add'>+#include "ruby/internal/intern/array.h"</div><div class='add'>+#include "ruby/internal/intern/bignum.h"</div><div class='add'>+#include "ruby/internal/intern/class.h"</div><div class='add'>+#include "ruby/internal/intern/compar.h"</div><div class='add'>+#include "ruby/internal/intern/complex.h"</div><div class='add'>+#include "ruby/internal/intern/cont.h"</div><div class='add'>+#include "ruby/internal/intern/dir.h"</div><div class='add'>+#include "ruby/internal/intern/enum.h"</div><div class='add'>+#include "ruby/internal/intern/enumerator.h"</div><div class='add'>+#include "ruby/internal/intern/error.h"</div><div class='add'>+#include "ruby/internal/intern/eval.h"</div><div class='add'>+#include "ruby/internal/intern/file.h"</div><div class='add'>+#include "ruby/internal/intern/gc.h"</div><div class='add'>+#include "ruby/internal/intern/hash.h"</div><div class='add'>+#include "ruby/internal/intern/io.h"</div><div class='add'>+#include "ruby/internal/intern/load.h"</div><div class='add'>+#include "ruby/internal/intern/marshal.h"</div><div class='add'>+#include "ruby/internal/intern/numeric.h"</div><div class='add'>+#include "ruby/internal/intern/object.h"</div><div class='add'>+#include "ruby/internal/intern/parse.h"</div><div class='add'>+#include "ruby/internal/intern/proc.h"</div><div class='add'>+#include "ruby/internal/intern/process.h"</div><div class='add'>+#include "ruby/internal/intern/random.h"</div><div class='add'>+#include "ruby/internal/intern/range.h"</div><div class='add'>+#include "ruby/internal/intern/rational.h"</div><div class='add'>+#include "ruby/internal/intern/re.h"</div><div class='add'>+#include "ruby/internal/intern/ruby.h"</div><div class='add'>+#include "ruby/internal/intern/select.h"</div><div class='add'>+#include "ruby/internal/intern/signal.h"</div><div class='add'>+#include "ruby/internal/intern/sprintf.h"</div><div class='add'>+#include "ruby/internal/intern/string.h"</div><div class='add'>+#include "ruby/internal/intern/struct.h"</div><div class='add'>+#include "ruby/internal/intern/thread.h"</div><div class='add'>+#include "ruby/internal/intern/time.h"</div><div class='add'>+#include "ruby/internal/intern/variable.h"</div><div class='add'>+#include "ruby/internal/intern/vm.h"</div><div class='ctx'> </div><div class='ctx'> #endif /* RUBY_INTERN_H */</div><div class='head'>diff --git a/include/ruby/internal/abi.h b/include/ruby/internal/abi.h<br/>new file mode 100644<br/>index 0000000000..44111a0055<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/abi.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/abi.h</a></div><div class='hunk'>@@ -0,0 +1,58 @@</div><div class='add'>+#ifndef RUBY_ABI_H</div><div class='add'>+#define RUBY_ABI_H</div><div class='add'>+</div><div class='add'>+#ifdef RUBY_ABI_VERSION /* should match the definition in config.h */</div><div class='add'>+</div><div class='add'>+/* This number represents Ruby's ABI version.</div><div class='add'>+ *</div><div class='add'>+ * In development Ruby, it should be bumped every time an ABI incompatible</div><div class='add'>+ * change is introduced. This will force other developers to rebuild extension</div><div class='add'>+ * gems.</div><div class='add'>+ *</div><div class='add'>+ * The following cases are considered as ABI incompatible changes:</div><div class='add'>+ * - Changing any data structures.</div><div class='add'>+ * - Changing macros or inline functions causing a change in behavior.</div><div class='add'>+ * - Deprecating or removing function declarations.</div><div class='add'>+ *</div><div class='add'>+ * The following cases are NOT considered as ABI incompatible changes:</div><div class='add'>+ * - Any changes that does not involve the header files in the `include`</div><div class='add'>+ *   directory.</div><div class='add'>+ * - Adding macros, inline functions, or function declarations.</div><div class='add'>+ * - Backwards compatible refactors.</div><div class='add'>+ * - Editing comments.</div><div class='add'>+ *</div><div class='add'>+ * In released versions of Ruby, this number is not defined since teeny</div><div class='add'>+ * versions of Ruby should guarantee ABI compatibility.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_ABI_VERSION 3</div><div class='add'>+</div><div class='add'>+/* Windows does not support weak symbols so ruby_abi_version will not exist</div><div class='add'>+ * in the shared library. */</div><div class='add'>+#if defined(HAVE_FUNC_WEAK) &amp;&amp; !defined(_WIN32) &amp;&amp; !defined(__MINGW32__) &amp;&amp; !defined(__CYGWIN__)</div><div class='add'>+# define RUBY_DLN_CHECK_ABI</div><div class='add'>+#endif</div><div class='add'>+#endif  /* RUBY_ABI_VERSION */</div><div class='add'>+</div><div class='add'>+#ifdef RUBY_DLN_CHECK_ABI</div><div class='add'>+</div><div class='add'>+# ifdef __cplusplus</div><div class='add'>+extern "C" {</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+RUBY_FUNC_EXPORTED unsigned long long __attribute__((weak))</div><div class='add'>+ruby_abi_version(void)</div><div class='add'>+{</div><div class='add'>+# ifdef RUBY_ABI_VERSION</div><div class='add'>+    return RUBY_ABI_VERSION;</div><div class='add'>+# else</div><div class='add'>+    return 0;</div><div class='add'>+# endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# ifdef __cplusplus</div><div class='add'>+}</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif</div><div class='head'>diff --git a/include/ruby/internal/anyargs.h b/include/ruby/internal/anyargs.h<br/>new file mode 100644<br/>index 0000000000..e4c6d155cc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/anyargs.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/anyargs.h</a></div><div class='hunk'>@@ -0,0 +1,398 @@</div><div class='add'>+#ifndef RBIMPL_ANYARGS_H                             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ANYARGS_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Function overloads to issue warnings around #ANYARGS.</div><div class='add'>+ *</div><div class='add'>+ * For instance ::rb_define_method  takes a pointer to  #ANYARGS -ed functions,</div><div class='add'>+ * which in  fact varies 18  different prototypes.   We still need  to preserve</div><div class='add'>+ * #ANYARGS for storages but why not check the consistencies if possible.  With</div><div class='add'>+ * those complex macro overlays defined in  this header file, use of a function</div><div class='add'>+ * pointer gets checked against the corresponding arity argument.</div><div class='add'>+ *</div><div class='add'>+ * ### Q&amp;A ###</div><div class='add'>+ *</div><div class='add'>+ * - Q: Where did the magic number "18" came from in the description above?</div><div class='add'>+ *</div><div class='add'>+ * - A: Count the case branch of `vm_method.c:call_cfunc_invoker_func()`.  Note</div><div class='add'>+ *      also that the 18  branches has lasted for at least  25 years.  See also</div><div class='add'>+ *      commit 200e0ee2fd3c1c006c528874a88f684447215524.</div><div class='add'>+ *</div><div class='add'>+ * - Q: What is this `__weakref__` thing?</div><div class='add'>+ *</div><div class='add'>+ * - A: That is a kind of function overloading mechanism that GCC provides.  In</div><div class='add'>+ *      this   case  for   instance  `rb_define_method_00`   is  an   alias  of</div><div class='add'>+ *      ::rb_define_method, with a strong type.</div><div class='add'>+ *</div><div class='add'>+ * - Q: What is this `__transparent_union__` thing?</div><div class='add'>+ *</div><div class='add'>+ *   A: That  is  another  kind  of function  overloading  mechanism  that  GCC</div><div class='add'>+ *      provides.   In this  case  the attributed  function  pointer is  either</div><div class='add'>+ *      `VALUE(*)(int,VALUE*,VALUE)` or `VALUE(*)(int,const VALUE*,VALUE)`.</div><div class='add'>+ *</div><div class='add'>+ *      This is better than `void*` or #ANYARGS because we can reject all other</div><div class='add'>+ *      possibilities than the two.</div><div class='add'>+ *</div><div class='add'>+ * - Q: What does this #rb_define_method macro mean?</div><div class='add'>+ *</div><div class='add'>+ * - A: It  selects  appropriate  alias  of  the  ::rb_define_method  function,</div><div class='add'>+ *      depending on the last (arity) argument.</div><div class='add'>+ *</div><div class='add'>+ * - Q: Why the special case for ::rb_f_notimplement ?</div><div class='add'>+ *</div><div class='add'>+ * - A: Function   pointer  to   ::rb_f_notimplement   is   special  cased   in</div><div class='add'>+ *      `vm_method.c:rb_add_method_cfunc()`.   That should  be  handled by  the</div><div class='add'>+ *      `__builtin_choose_expr`   chain  inside   of  #rb_define_method   macro</div><div class='add'>+ *      expansion.      In    order     to    do     so,    comparison     like</div><div class='add'>+ *      `(func == rb_f_notimplement)`        is        inappropriate        for</div><div class='add'>+ *      `__builtin_choose_expr`'s  expression  (which  must be  a  compile-time</div><div class='add'>+ *      integer constant  but the address  of ::rb_f_notimplement is  not fixed</div><div class='add'>+ *      until      the      linker).        Instead      we      are      using</div><div class='add'>+ *      `__builtin_types_compatible_p`, and in doing  so we need to distinguish</div><div class='add'>+ *      ::rb_f_notimplement from others, by type.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/maybe_unused.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/weakref.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/internal/intern/class.h"</div><div class='add'>+#include "ruby/internal/intern/vm.h"</div><div class='add'>+#include "ruby/internal/method.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/backward/2/stdarg.h"</div><div class='add'>+</div><div class='add'>+#if defined(__cplusplus)</div><div class='add'>+# include "ruby/backward/cxxanyargs.hpp"</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN32) || defined(__CYGWIN__)</div><div class='add'>+# /* Skip due to [Bug #16134] */</div><div class='add'>+# define RBIMPL_CAST_FN_PTR 1</div><div class='add'>+</div><div class='add'>+#elif ! RBIMPL_HAS_ATTRIBUTE(transparent_union)</div><div class='add'>+# /* :TODO: improve here, please find a way to support. */</div><div class='add'>+# define RBIMPL_CAST_FN_PTR 1</div><div class='add'>+</div><div class='add'>+#elif ! defined(HAVE_VA_ARGS_MACRO)</div><div class='add'>+# /* :TODO: improve here, please find a way to support. */</div><div class='add'>+# define RBIMPL_CAST_FN_PTR 1</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# /** @cond INTERNAL_MACRO */</div><div class='add'>+# if ! defined(HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P)</div><div class='add'>+#  define RBIMPL_CFUNC_IS_rb_f_notimplement(f) 0</div><div class='add'>+# else</div><div class='add'>+#  define RBIMPL_CFUNC_IS_rb_f_notimplement(f) \</div><div class='add'>+    __builtin_types_compatible_p(             \</div><div class='add'>+        __typeof__(f),                        \</div><div class='add'>+        __typeof__(rb_f_notimplement))</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+# if ! defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)</div><div class='add'>+#  define RBIMPL_ANYARGS_DISPATCH(expr, truthy, falsy) (falsy)</div><div class='add'>+# else</div><div class='add'>+#  define RBIMPL_ANYARGS_DISPATCH(expr, truthy, falsy) \</div><div class='add'>+    __builtin_choose_expr(                            \</div><div class='add'>+        __builtin_choose_expr(                        \</div><div class='add'>+            __builtin_constant_p(expr),               \</div><div class='add'>+            (expr), 0),                               \</div><div class='add'>+        (truthy), (falsy))</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_singleton_method_m2, rb_define_singleton_method_m3)</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_singleton_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m2(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) ==  0, rb_define_singleton_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_m1(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) ==  1, rb_define_singleton_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_00(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) ==  2, rb_define_singleton_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_01(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) ==  3, rb_define_singleton_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_02(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) ==  4, rb_define_singleton_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_03(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) ==  5, rb_define_singleton_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_04(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) ==  6, rb_define_singleton_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_05(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) ==  7, rb_define_singleton_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_06(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) ==  8, rb_define_singleton_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_07(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) ==  9, rb_define_singleton_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_08(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_singleton_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_09(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_singleton_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_10(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_singleton_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_11(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_singleton_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_12(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_singleton_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_13(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_singleton_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_14(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m2(n) RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_protected_method_m2, rb_define_protected_method_m3)</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m1(n) RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_protected_method_m1, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m2(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_00(n) RBIMPL_ANYARGS_DISPATCH((n) ==  0, rb_define_protected_method_00, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_m1(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_01(n) RBIMPL_ANYARGS_DISPATCH((n) ==  1, rb_define_protected_method_01, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_00(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_02(n) RBIMPL_ANYARGS_DISPATCH((n) ==  2, rb_define_protected_method_02, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_01(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_03(n) RBIMPL_ANYARGS_DISPATCH((n) ==  3, rb_define_protected_method_03, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_02(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_04(n) RBIMPL_ANYARGS_DISPATCH((n) ==  4, rb_define_protected_method_04, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_03(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_05(n) RBIMPL_ANYARGS_DISPATCH((n) ==  5, rb_define_protected_method_05, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_04(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_06(n) RBIMPL_ANYARGS_DISPATCH((n) ==  6, rb_define_protected_method_06, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_05(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_07(n) RBIMPL_ANYARGS_DISPATCH((n) ==  7, rb_define_protected_method_07, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_06(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_08(n) RBIMPL_ANYARGS_DISPATCH((n) ==  8, rb_define_protected_method_08, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_07(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_09(n) RBIMPL_ANYARGS_DISPATCH((n) ==  9, rb_define_protected_method_09, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_08(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_10(n) RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_protected_method_10, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_09(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_11(n) RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_protected_method_11, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_10(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_12(n) RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_protected_method_12, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_11(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_13(n) RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_protected_method_13, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_12(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_14(n) RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_protected_method_14, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_13(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_15(n) RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_protected_method_15, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_14(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m2(n)   RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_private_method_m2,   rb_define_private_method_m3)</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m1(n)   RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_private_method_m1,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m2(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_00(n)   RBIMPL_ANYARGS_DISPATCH((n) ==  0, rb_define_private_method_00,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_m1(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_01(n)   RBIMPL_ANYARGS_DISPATCH((n) ==  1, rb_define_private_method_01,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_00(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_02(n)   RBIMPL_ANYARGS_DISPATCH((n) ==  2, rb_define_private_method_02,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_01(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_03(n)   RBIMPL_ANYARGS_DISPATCH((n) ==  3, rb_define_private_method_03,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_02(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_04(n)   RBIMPL_ANYARGS_DISPATCH((n) ==  4, rb_define_private_method_04,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_03(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_05(n)   RBIMPL_ANYARGS_DISPATCH((n) ==  5, rb_define_private_method_05,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_04(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_06(n)   RBIMPL_ANYARGS_DISPATCH((n) ==  6, rb_define_private_method_06,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_05(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_07(n)   RBIMPL_ANYARGS_DISPATCH((n) ==  7, rb_define_private_method_07,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_06(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_08(n)   RBIMPL_ANYARGS_DISPATCH((n) ==  8, rb_define_private_method_08,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_07(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_09(n)   RBIMPL_ANYARGS_DISPATCH((n) ==  9, rb_define_private_method_09,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_08(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_10(n)   RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_private_method_10,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_09(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_11(n)   RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_private_method_11,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_10(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_12(n)   RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_private_method_12,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_11(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_13(n)   RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_private_method_13,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_12(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_14(n)   RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_private_method_14,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_13(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_15(n)   RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_private_method_15,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_14(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m2(n)  RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_module_function_m2,  rb_define_module_function_m3)</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m1(n)  RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_module_function_m1,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m2(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_00(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  0, rb_define_module_function_00,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_m1(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_01(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  1, rb_define_module_function_01,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_00(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_02(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  2, rb_define_module_function_02,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_01(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_03(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  3, rb_define_module_function_03,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_02(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_04(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  4, rb_define_module_function_04,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_03(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_05(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  5, rb_define_module_function_05,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_04(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_06(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  6, rb_define_module_function_06,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_05(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_07(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  7, rb_define_module_function_07,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_06(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_08(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  8, rb_define_module_function_08,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_07(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_09(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  9, rb_define_module_function_09,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_08(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_10(n)  RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_module_function_10,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_09(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_11(n)  RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_module_function_11,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_10(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_12(n)  RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_module_function_12,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_11(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_13(n)  RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_module_function_13,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_12(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_14(n)  RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_module_function_14,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_13(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_15(n)  RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_module_function_15,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_14(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m2(n)  RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_global_function_m2,  rb_define_global_function_m3)</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m1(n)  RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_global_function_m1,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m2(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_00(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  0, rb_define_global_function_00,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_m1(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_01(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  1, rb_define_global_function_01,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_00(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_02(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  2, rb_define_global_function_02,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_01(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_03(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  3, rb_define_global_function_03,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_02(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_04(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  4, rb_define_global_function_04,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_03(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_05(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  5, rb_define_global_function_05,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_04(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_06(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  6, rb_define_global_function_06,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_05(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_07(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  7, rb_define_global_function_07,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_06(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_08(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  8, rb_define_global_function_08,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_07(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_09(n)  RBIMPL_ANYARGS_DISPATCH((n) ==  9, rb_define_global_function_09,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_08(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_10(n)  RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_global_function_10,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_09(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_11(n)  RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_global_function_11,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_10(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_12(n)  RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_global_function_12,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_11(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_13(n)  RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_global_function_13,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_12(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_14(n)  RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_global_function_14,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_13(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_15(n)  RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_global_function_15,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_14(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m2(n)        RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_method_id_m2,        rb_define_method_id_m3)</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m1(n)        RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_method_id_m1,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m2(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_00(n)        RBIMPL_ANYARGS_DISPATCH((n) ==  0, rb_define_method_id_00,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_m1(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_01(n)        RBIMPL_ANYARGS_DISPATCH((n) ==  1, rb_define_method_id_01,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_00(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_02(n)        RBIMPL_ANYARGS_DISPATCH((n) ==  2, rb_define_method_id_02,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_01(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_03(n)        RBIMPL_ANYARGS_DISPATCH((n) ==  3, rb_define_method_id_03,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_02(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_04(n)        RBIMPL_ANYARGS_DISPATCH((n) ==  4, rb_define_method_id_04,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_03(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_05(n)        RBIMPL_ANYARGS_DISPATCH((n) ==  5, rb_define_method_id_05,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_04(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_06(n)        RBIMPL_ANYARGS_DISPATCH((n) ==  6, rb_define_method_id_06,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_05(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_07(n)        RBIMPL_ANYARGS_DISPATCH((n) ==  7, rb_define_method_id_07,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_06(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_08(n)        RBIMPL_ANYARGS_DISPATCH((n) ==  8, rb_define_method_id_08,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_07(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_09(n)        RBIMPL_ANYARGS_DISPATCH((n) ==  9, rb_define_method_id_09,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_08(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_10(n)        RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_method_id_10,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_09(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_11(n)        RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_method_id_11,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_10(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_12(n)        RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_method_id_12,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_11(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_13(n)        RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_method_id_13,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_12(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_14(n)        RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_method_id_14,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_13(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_15(n)        RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_method_id_15,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_14(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_m2(n)           RBIMPL_ANYARGS_DISPATCH((n) == -2, rb_define_method_m2,           rb_define_method_m3)</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_m1(n)           RBIMPL_ANYARGS_DISPATCH((n) == -1, rb_define_method_m1,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_m2(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_00(n)           RBIMPL_ANYARGS_DISPATCH((n) ==  0, rb_define_method_00,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_m1(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_01(n)           RBIMPL_ANYARGS_DISPATCH((n) ==  1, rb_define_method_01,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_00(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_02(n)           RBIMPL_ANYARGS_DISPATCH((n) ==  2, rb_define_method_02,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_01(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_03(n)           RBIMPL_ANYARGS_DISPATCH((n) ==  3, rb_define_method_03,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_02(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_04(n)           RBIMPL_ANYARGS_DISPATCH((n) ==  4, rb_define_method_04,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_03(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_05(n)           RBIMPL_ANYARGS_DISPATCH((n) ==  5, rb_define_method_05,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_04(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_06(n)           RBIMPL_ANYARGS_DISPATCH((n) ==  6, rb_define_method_06,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_05(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_07(n)           RBIMPL_ANYARGS_DISPATCH((n) ==  7, rb_define_method_07,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_06(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_08(n)           RBIMPL_ANYARGS_DISPATCH((n) ==  8, rb_define_method_08,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_07(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_09(n)           RBIMPL_ANYARGS_DISPATCH((n) ==  9, rb_define_method_09,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_08(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_10(n)           RBIMPL_ANYARGS_DISPATCH((n) == 10, rb_define_method_10,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_09(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_11(n)           RBIMPL_ANYARGS_DISPATCH((n) == 11, rb_define_method_11,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_10(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_12(n)           RBIMPL_ANYARGS_DISPATCH((n) == 12, rb_define_method_12,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_11(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_13(n)           RBIMPL_ANYARGS_DISPATCH((n) == 13, rb_define_method_13,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_12(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_14(n)           RBIMPL_ANYARGS_DISPATCH((n) == 14, rb_define_method_14,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_13(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_15(n)           RBIMPL_ANYARGS_DISPATCH((n) == 15, rb_define_method_15,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_14(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_singleton_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method_15(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method(n, f) RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_protected_method_notimpl, RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method_15(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_private_method(n, f)   RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_private_method_notimpl,   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method_15(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_module_function(n, f)  RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_module_function_notimpl,  RBIMPL_ANYARGS_DISPATCH_rb_define_module_function_15(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_global_function(n, f)  RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_global_function_notimpl,  RBIMPL_ANYARGS_DISPATCH_rb_define_global_function_15(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method_id(n, f)        RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_method_id_notimpl,        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id_15(n))</div><div class='add'>+# define RBIMPL_ANYARGS_DISPATCH_rb_define_method(n, f)           RBIMPL_ANYARGS_DISPATCH(RBIMPL_CFUNC_IS_rb_f_notimplement(f), rb_define_method_notimpl,           RBIMPL_ANYARGS_DISPATCH_rb_define_method_15(n))</div><div class='add'>+# define RBIMPL_ANYARGS_ATTRSET(sym) RBIMPL_ATTR_MAYBE_UNUSED() RBIMPL_ATTR_NONNULL(()) RBIMPL_ATTR_WEAKREF(sym)</div><div class='add'>+# define RBIMPL_ANYARGS_DECL(sym, ...) \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _notimpl(__VA_ARGS__, VALUE(*)(int, const VALUE *, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m3(__VA_ARGS__, VALUE(*)(ANYARGS), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m2(__VA_ARGS__, VALUE(*)(VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m1(__VA_ARGS__, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _00(__VA_ARGS__, VALUE(*)(VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _01(__VA_ARGS__, VALUE(*)(VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _02(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _03(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _04(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _05(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _06(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _07(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _08(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _09(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _10(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _11(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _12(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _13(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _14(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int); \</div><div class='add'>+RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _15(__VA_ARGS__, VALUE(*)(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE), int);</div><div class='add'>+RBIMPL_ANYARGS_DECL(rb_define_singleton_method, VALUE, const char *)</div><div class='add'>+RBIMPL_ANYARGS_DECL(rb_define_protected_method, VALUE, const char *)</div><div class='add'>+RBIMPL_ANYARGS_DECL(rb_define_private_method, VALUE, const char *)</div><div class='add'>+RBIMPL_ANYARGS_DECL(rb_define_module_function, VALUE, const char *)</div><div class='add'>+RBIMPL_ANYARGS_DECL(rb_define_global_function, const char *)</div><div class='add'>+RBIMPL_ANYARGS_DECL(rb_define_method_id, VALUE, ID)</div><div class='add'>+RBIMPL_ANYARGS_DECL(rb_define_method, VALUE, const char *)</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @brief  Defines klass\#mid.</div><div class='add'>+ * @see    ::rb_define_method</div><div class='add'>+ * @param  klass  Where the method lives.</div><div class='add'>+ * @param  mid    Name of the defining method.</div><div class='add'>+ * @param  func   Implementation of klass\#mid.</div><div class='add'>+ * @param  arity  Arity of klass\#mid.</div><div class='add'>+ */</div><div class='add'>+#define rb_define_method(klass, mid, func, arity)           RBIMPL_ANYARGS_DISPATCH_rb_define_method((arity), (func))((klass), (mid), (func), (arity))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @brief  Defines klass\#mid.</div><div class='add'>+ * @see    ::rb_define_method_id</div><div class='add'>+ * @param  klass  Where the method lives.</div><div class='add'>+ * @param  mid    Name of the defining method.</div><div class='add'>+ * @param  func   Implementation of klass\#mid.</div><div class='add'>+ * @param  arity  Arity of klass\#mid.</div><div class='add'>+ */</div><div class='add'>+#define rb_define_method_id(klass, mid, func, arity)        RBIMPL_ANYARGS_DISPATCH_rb_define_method_id((arity), (func))((klass), (mid), (func), (arity))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @brief  Defines obj.mid.</div><div class='add'>+ * @see    ::rb_define_singleton_method</div><div class='add'>+ * @param  obj    Where the method lives.</div><div class='add'>+ * @param  mid    Name of the defining method.</div><div class='add'>+ * @param  func   Implementation of obj.mid.</div><div class='add'>+ * @param  arity  Arity of obj.mid.</div><div class='add'>+ */</div><div class='add'>+#define rb_define_singleton_method(obj, mid, func, arity)   RBIMPL_ANYARGS_DISPATCH_rb_define_singleton_method((arity), (func))((obj), (mid), (func), (arity))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @brief  Defines klass\#mid and make it protected.</div><div class='add'>+ * @see    ::rb_define_protected_method</div><div class='add'>+ * @param  klass  Where the method lives.</div><div class='add'>+ * @param  mid    Name of the defining method.</div><div class='add'>+ * @param  func   Implementation of klass\#mid.</div><div class='add'>+ * @param  arity  Arity of klass\#mid.</div><div class='add'>+ */</div><div class='add'>+#define rb_define_protected_method(klass, mid, func, arity) RBIMPL_ANYARGS_DISPATCH_rb_define_protected_method((arity), (func))((klass), (mid), (func), (arity))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @brief  Defines klass\#mid and make it private.</div><div class='add'>+ * @see    ::rb_define_private_method</div><div class='add'>+ * @param  klass  Where the method lives.</div><div class='add'>+ * @param  mid    Name of the defining method.</div><div class='add'>+ * @param  func   Implementation of klass\#mid.</div><div class='add'>+ * @param  arity  Arity of klass\#mid.</div><div class='add'>+ */</div><div class='add'>+#define rb_define_private_method(klass, mid, func, arity)   RBIMPL_ANYARGS_DISPATCH_rb_define_private_method((arity), (func))((klass), (mid), (func), (arity))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @brief  Defines mod\#mid and make it a module function.</div><div class='add'>+ * @see    ::rb_define_module_function</div><div class='add'>+ * @param  mod    Where the method lives.</div><div class='add'>+ * @param  mid    Name of the defining method.</div><div class='add'>+ * @param  func   Implementation of mod\#mid.</div><div class='add'>+ * @param  arity  Arity of mod\#mid.</div><div class='add'>+ */</div><div class='add'>+#define rb_define_module_function(mod, mid, func, arity)    RBIMPL_ANYARGS_DISPATCH_rb_define_module_function((arity), (func))((mod), (mid), (func), (arity))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @brief  Defines ::rb_mKerbel \#mid.</div><div class='add'>+ * @see    ::rb_define_global_function</div><div class='add'>+ * @param  mid    Name of the defining method.</div><div class='add'>+ * @param  func   Implementation of ::rb_mKernel \#mid.</div><div class='add'>+ * @param  arity  Arity of ::rb_mKernel \#mid.</div><div class='add'>+ */</div><div class='add'>+#define rb_define_global_function(mid, func, arity)         RBIMPL_ANYARGS_DISPATCH_rb_define_global_function((arity), (func))((mid), (func), (arity))</div><div class='add'>+</div><div class='add'>+#endif /* __cplusplus */</div><div class='add'>+</div><div class='add'>+#if defined(RBIMPL_CAST_FN_PTR) &amp;&amp; !defined(__cplusplus)</div><div class='add'>+/* In C23, K&amp;R style prototypes are gone and so `void foo(ANYARGS)` became</div><div class='add'>+ * equivalent to `void foo(void)` unlike in earlier versions. This is a problem</div><div class='add'>+ * for rb_define_* functions since that makes all valid functions one can pass</div><div class='add'>+ * trip -Wincompatible-pointer-types, which we treat as errors. This is mostly</div><div class='add'>+ * not a problem for the __builtin_choose_expr path, but outside of that we</div><div class='add'>+ * need to add a cast for compatibility.</div><div class='add'>+ */</div><div class='add'>+#define rb_define_method(klass, mid, func, arity)           rb_define_method((klass), (mid), (VALUE (*)(ANYARGS))(func), (arity))</div><div class='add'>+#define rb_define_method_id(klass, mid, func, arity)        rb_define_method_id((klass), (mid), (VALUE (*)(ANYARGS))(func), (arity))</div><div class='add'>+#define rb_define_singleton_method(obj, mid, func, arity)   rb_define_singleton_method((obj), (mid), (VALUE (*)(ANYARGS))(func), (arity))</div><div class='add'>+#define rb_define_protected_method(klass, mid, func, arity) rb_define_protected_method((klass), (mid), (VALUE (*)(ANYARGS))(func), (arity))</div><div class='add'>+#define rb_define_private_method(klass, mid, func, arity)   rb_define_private_method((klass), (mid), (VALUE (*)(ANYARGS))(func), (arity))</div><div class='add'>+#define rb_define_module_function(mod, mid, func, arity)    rb_define_module_function((mod), (mid), (VALUE (*)(ANYARGS))(func), (arity))</div><div class='add'>+#define rb_define_global_function(mid, func, arity)         rb_define_global_function((mid), (VALUE (*)(ANYARGS))(func), (arity))</div><div class='add'>+</div><div class='add'>+#undef RBIMPL_CAST_FN_PTR</div><div class='add'>+#endif /* defined(RBIMPL_CAST_FN_PTR) &amp;&amp; !defined(__cplusplus) */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This  macro is  to properly  cast  a function  parameter of  *_define_method</div><div class='add'>+ * family.  It  has been  around since  1.x era so  you can  maximise backwards</div><div class='add'>+ * compatibility by using it.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * rb_define_method(klass, "method", RUBY_METHOD_FUNC(func), arity);</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param  func  A pointer to a function that implements a method.</div><div class='add'>+ */</div><div class='add'>+#if ! defined(RUBY_DEVEL)</div><div class='add'>+# define RUBY_METHOD_FUNC(func) RBIMPL_CAST((VALUE (*)(ANYARGS))(func))</div><div class='add'>+</div><div class='add'>+#elif ! RUBY_DEVEL</div><div class='add'>+# define RUBY_METHOD_FUNC(func) RBIMPL_CAST((VALUE (*)(ANYARGS))(func))</div><div class='add'>+</div><div class='add'>+#elif ! defined(rb_define_method)</div><div class='add'>+# define RUBY_METHOD_FUNC(func) RBIMPL_CAST((VALUE (*)(ANYARGS))(func))</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RUBY_METHOD_FUNC(func) (func)</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ANYARGS_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic.h b/include/ruby/internal/arithmetic.h<br/>new file mode 100644<br/>index 0000000000..7ebb4a86f1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic.h</a></div><div class='hunk'>@@ -0,0 +1,39 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_H                          /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Conversion  between  C's arithmetic  types  and  Ruby's  numeric</div><div class='add'>+ *             types.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/arithmetic/char.h"</div><div class='add'>+#include "ruby/internal/arithmetic/double.h"</div><div class='add'>+#include "ruby/internal/arithmetic/fixnum.h"</div><div class='add'>+#include "ruby/internal/arithmetic/gid_t.h"</div><div class='add'>+#include "ruby/internal/arithmetic/int.h"</div><div class='add'>+#include "ruby/internal/arithmetic/intptr_t.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long_long.h"</div><div class='add'>+#include "ruby/internal/arithmetic/mode_t.h"</div><div class='add'>+#include "ruby/internal/arithmetic/off_t.h"</div><div class='add'>+#include "ruby/internal/arithmetic/pid_t.h"</div><div class='add'>+#include "ruby/internal/arithmetic/short.h"</div><div class='add'>+#include "ruby/internal/arithmetic/size_t.h"</div><div class='add'>+#include "ruby/internal/arithmetic/st_data_t.h"</div><div class='add'>+#include "ruby/internal/arithmetic/uid_t.h"</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/char.h b/include/ruby/internal/arithmetic/char.h<br/>new file mode 100644<br/>index 0000000000..920fdc0c9d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/char.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/char.h</a></div><div class='hunk'>@@ -0,0 +1,81 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_CHAR_H                     /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_CHAR_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `char` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/arithmetic/int.h"  /* NUM2INT is here, but */</div><div class='add'>+#include "ruby/internal/arithmetic/long.h" /* INT2FIX is here.*/</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/constexpr.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/core/rstring.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+</div><div class='add'>+#define RB_NUM2CHR rb_num2char_inline /**&lt; @alias{rb_num2char_inline} */</div><div class='add'>+#define NUM2CHR    RB_NUM2CHR         /**&lt; @old{RB_NUM2CHR} */</div><div class='add'>+#define CHR2FIX    RB_CHR2FIX         /**&lt; @old{RB_CHR2FIX} */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RB_CHR2FIX RB_CHR2FIX</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `unsigned char` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c  Arbitrary `unsigned char` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Nobody explicitly states this but in  Ruby, a char means an unsigned integer</div><div class='add'>+ * value of  range 0..255.   This is  a general principle.   AFAIK there  is no</div><div class='add'>+ * single line of code where char is signed.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+RB_CHR2FIX(unsigned char c)</div><div class='add'>+{</div><div class='add'>+    return RB_INT2FIX(c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into  C's `char`.  At the same time it</div><div class='add'>+ * accepts a String of more than one character, and returns its first byte.  In</div><div class='add'>+ * the  early days  there  was a  Ruby level  "character"  literal `?c`,  which</div><div class='add'>+ * roughly worked this way.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               Either a string or a numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `x` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `unsigned int`.</div><div class='add'>+ * @return     The passed value converted into C's `char`.</div><div class='add'>+ */</div><div class='add'>+static inline char</div><div class='add'>+rb_num2char_inline(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(x, RUBY_T_STRING) &amp;&amp; (RSTRING_LEN(x)&gt;=1))</div><div class='add'>+        return RSTRING_PTR(x)[0];</div><div class='add'>+    else</div><div class='add'>+        return RBIMPL_CAST((char)RB_NUM2INT(x));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_CHAR_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/double.h b/include/ruby/internal/arithmetic/double.h<br/>new file mode 100644<br/>index 0000000000..229de47aef<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/double.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/double.h</a></div><div class='hunk'>@@ -0,0 +1,72 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_DOUBLE_H                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_DOUBLE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `double` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+#define NUM2DBL      rb_num2dbl       /**&lt; @old{rb_num2dbl} */</div><div class='add'>+#define RFLOAT_VALUE rb_float_value   /**&lt; @old{rb_float_value} */</div><div class='add'>+#define DBL2NUM      rb_float_new     /**&lt; @old{rb_float_new} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `double`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @return     The passed value converted into C's `double`.</div><div class='add'>+ */</div><div class='add'>+double rb_num2dbl(VALUE num);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Extracts its double value from an instance of ::rb_cFloat.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num  An instance of ::rb_cFloat.</div><div class='add'>+ * @pre        Must not pass anything other than a Fixnum.</div><div class='add'>+ * @return     The passed value converted into C's `double`.</div><div class='add'>+ */</div><div class='add'>+double rb_float_value(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `double` into an instance of ::rb_cFloat.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  d  Arbitrary `double` value.</div><div class='add'>+ * @return     An instance of ::rb_cFloat.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_float_new(double d);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_float_new(), except it does not generate Flonums.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  d  Arbitrary `double` value.</div><div class='add'>+ * @return     An instance of ::rb_cFloat.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei has no idea why it is here.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_float_new_in_heap(double d);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_DOUBLE_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/fixnum.h b/include/ruby/internal/arithmetic/fixnum.h<br/>new file mode 100644<br/>index 0000000000..c8927ac824<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/fixnum.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/fixnum.h</a></div><div class='hunk'>@@ -0,0 +1,60 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_FIXNUM_H                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_FIXNUM_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Handling of integers formerly known as Fixnums.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/backward/2/limits.h"</div><div class='add'>+</div><div class='add'>+#define FIXABLE    RB_FIXABLE      /**&lt; @old{RB_FIXABLE} */</div><div class='add'>+#define FIXNUM_MAX RUBY_FIXNUM_MAX /**&lt; @old{RUBY_FIXNUM_MAX} */</div><div class='add'>+#define FIXNUM_MIN RUBY_FIXNUM_MIN /**&lt; @old{RUBY_FIXNUM_MIN} */</div><div class='add'>+#define NEGFIXABLE RB_NEGFIXABLE   /**&lt; @old{RB_NEGFIXABLE} */</div><div class='add'>+#define POSFIXABLE RB_POSFIXABLE   /**&lt; @old{RB_POSFIXABLE} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks if the passed value is in  range of fixnum, assuming it is a positive</div><div class='add'>+ * number.  Can sometimes be useful for C's unsigned integer types.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * FIXABLE can be applied to anything, from double to intmax_t.  The problem is</div><div class='add'>+ * double.   On a  64bit system  RUBY_FIXNUM_MAX is  4,611,686,018,427,387,903,</div><div class='add'>+ * which is not representable by a double.  The nearest value that a double can</div><div class='add'>+ * represent  is   4,611,686,018,427,387,904,  which   is  not   fixable.   The</div><div class='add'>+ * seemingly-strange "&lt; FIXNUM_MAX + 1" expression below is due to this.</div><div class='add'>+ */</div><div class='add'>+#define RB_POSFIXABLE(_) ((_) &lt;  RUBY_FIXNUM_MAX + 1)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks if the passed value is in  range of fixnum, assuming it is a negative</div><div class='add'>+ * number.  This is an implementation of #RB_FIXABLE.  Rarely used stand alone.</div><div class='add'>+ */</div><div class='add'>+#define RB_NEGFIXABLE(_) ((_) &gt;= RUBY_FIXNUM_MIN)</div><div class='add'>+</div><div class='add'>+/** Checks if the passed value is in  range of fixnum */</div><div class='add'>+#define RB_FIXABLE(_)    (RB_POSFIXABLE(_) &amp;&amp; RB_NEGFIXABLE(_))</div><div class='add'>+</div><div class='add'>+/** Maximum possible value that a fixnum can represent. */</div><div class='add'>+#define RUBY_FIXNUM_MAX  (LONG_MAX / 2)</div><div class='add'>+</div><div class='add'>+/** Minimum possible value that a fixnum can represent. */</div><div class='add'>+#define RUBY_FIXNUM_MIN  (LONG_MIN / 2)</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_FIXNUM_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/gid_t.h b/include/ruby/internal/arithmetic/gid_t.h<br/>new file mode 100644<br/>index 0000000000..361220bfab<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/gid_t.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/gid_t.h</a></div><div class='hunk'>@@ -0,0 +1,41 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_GID_T_H                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_GID_T_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `gid_t` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h"</div><div class='add'>+</div><div class='add'>+/** Converts a C's `gid_t` into an instance of ::rb_cInteger. */</div><div class='add'>+#ifndef GIDT2NUM</div><div class='add'>+# define GIDT2NUM RB_LONG2NUM</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Converts an instance of ::rb_cNumeric into C's `gid_t`. */</div><div class='add'>+#ifndef NUM2GIDT</div><div class='add'>+# define NUM2GIDT RB_NUM2LONG</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** A rb_sprintf() format prefix to be used for a `gid_t` parameter. */</div><div class='add'>+#ifndef PRI_GIDT_PREFIX</div><div class='add'>+# define PRI_GIDT_PREFIX PRI_LONG_PREFIX</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_GID_T_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/int.h b/include/ruby/internal/arithmetic/int.h<br/>new file mode 100644<br/>index 0000000000..6bd8ec2184<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/int.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/int.h</a></div><div class='hunk'>@@ -0,0 +1,264 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_INT_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_INT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `int` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/arithmetic/fixnum.h"</div><div class='add'>+#include "ruby/internal/arithmetic/intptr_t.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h"</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/constexpr.h"</div><div class='add'>+#include "ruby/internal/compiler_is.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/special_consts.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/warning_push.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+</div><div class='add'>+#define RB_INT2NUM  rb_int2num_inline  /**&lt; @alias{rb_int2num_inline} */</div><div class='add'>+#define RB_NUM2INT  rb_num2int_inline  /**&lt; @alias{rb_num2int_inline} */</div><div class='add'>+#define RB_UINT2NUM rb_uint2num_inline /**&lt; @alias{rb_uint2num_inline} */</div><div class='add'>+</div><div class='add'>+#define FIX2INT    RB_FIX2INT          /**&lt; @old{RB_FIX2INT} */</div><div class='add'>+#define FIX2UINT   RB_FIX2UINT         /**&lt; @old{RB_FIX2UINT} */</div><div class='add'>+#define INT2NUM    RB_INT2NUM          /**&lt; @old{RB_INT2NUM} */</div><div class='add'>+#define NUM2INT    RB_NUM2INT          /**&lt; @old{RB_NUM2INT} */</div><div class='add'>+#define NUM2UINT   RB_NUM2UINT         /**&lt; @old{RB_NUM2UINT} */</div><div class='add'>+#define UINT2NUM   RB_UINT2NUM         /**&lt; @old{RB_UINT2NUM} */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RB_FIX2INT  RB_FIX2INT</div><div class='add'>+#define RB_NUM2UINT RB_NUM2UINT</div><div class='add'>+#define RB_FIX2UINT RB_FIX2UINT</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `int`.</div><div class='add'>+ * @return     The passed value converted into C's `long`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Yes, the  API is  really strange.   It returns `long`,  but raises  when the</div><div class='add'>+ * value is out of `int`.  This seems to  be due to the fact that Matz favoured</div><div class='add'>+ * K&amp;R before, and his machine at that moment was an ILP32 architecture.</div><div class='add'>+ */</div><div class='add'>+long rb_num2int(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_num2int().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `int`.</div><div class='add'>+ * @return     The passed value converted into C's `long`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function seems to be a complete  waste of disk space.  @shyouhei has no</div><div class='add'>+ * idea why this is a different thing from rb_num2short().</div><div class='add'>+ */</div><div class='add'>+long rb_fix2int(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `unsigned long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `unsigned int`.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned long`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Yes, the API is really strange.  It returns `unsigned long`, but raises when</div><div class='add'>+ * the value is out  of `unsigned int`.  This seems to be due  to the fact that</div><div class='add'>+ * Matz  favoured K&amp;R  before, and  his  machine at  that moment  was an  ILP32</div><div class='add'>+ * architecture.</div><div class='add'>+ */</div><div class='add'>+unsigned long rb_num2uint(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_num2uint().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `unsigned int`.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned long`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function seems to be a complete  waste of disk space.  @shyouhei has no</div><div class='add'>+ * idea why this is a different thing from rb_num2short().</div><div class='add'>+ */</div><div class='add'>+unsigned long rb_fix2uint(VALUE num);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Converts a Fixnum into C's `int`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  Some Fixnum.</div><div class='add'>+ * @pre        Must not pass anything other than a Fixnum.</div><div class='add'>+ * @return     The passed value converted into C's `int`.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+RB_FIX2INT(VALUE x)</div><div class='add'>+{</div><div class='add'>+    /* "FIX2INT raises a  TypeError if passed nil", says rubyspec.  Not sure if</div><div class='add'>+     * that is a desired behaviour but just preserve backwards compatilibily.</div><div class='add'>+     */</div><div class='add'>+#if 0</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x));</div><div class='add'>+#endif</div><div class='add'>+    long ret;</div><div class='add'>+</div><div class='add'>+    if /* constexpr */ (sizeof(int) &lt; sizeof(long)) {</div><div class='add'>+        ret = rb_fix2int(x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ret = RB_FIX2LONG(x);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return RBIMPL_CAST((int)ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `int`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `x` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `int`.</div><div class='add'>+ * @return     The passed value converted into C's `int`.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_num2int_inline(VALUE x)</div><div class='add'>+{</div><div class='add'>+    long ret;</div><div class='add'>+</div><div class='add'>+    if /* constexpr */ (sizeof(int) == sizeof(long)) {</div><div class='add'>+        ret = RB_NUM2LONG(x);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FIXNUM_P(x)) {</div><div class='add'>+        ret = rb_fix2int(x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ret = rb_num2int(x);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return RBIMPL_CAST((int)ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `unsigned int`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `x` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `unsigned int`.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned int`.</div><div class='add'>+ */</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+static inline unsigned int</div><div class='add'>+RB_NUM2UINT(VALUE x)</div><div class='add'>+{</div><div class='add'>+    unsigned long ret;</div><div class='add'>+</div><div class='add'>+    if /* constexpr */ (sizeof(int) &lt; sizeof(long)) {</div><div class='add'>+        ret = rb_num2uint(x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ret = RB_NUM2ULONG(x);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return RBIMPL_CAST((unsigned int)ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Converts a Fixnum into C's `int`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  Some Fixnum.</div><div class='add'>+ * @pre        Must not pass anything other than a Fixnum.</div><div class='add'>+ * @return     The passed value converted into C's `int`.</div><div class='add'>+ */</div><div class='add'>+static inline unsigned int</div><div class='add'>+RB_FIX2UINT(VALUE x)</div><div class='add'>+{</div><div class='add'>+#if 0 /* Ditto for RB_FIX2INT. */</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x));</div><div class='add'>+#endif</div><div class='add'>+    unsigned long ret;</div><div class='add'>+</div><div class='add'>+    if /* constexpr */ (sizeof(int) &lt; sizeof(long)) {</div><div class='add'>+        ret = rb_fix2uint(x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ret = RB_FIX2ULONG(x);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return RBIMPL_CAST((unsigned int)ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_WARNING_PUSH()</div><div class='add'>+#if RBIMPL_COMPILER_IS(GCC)</div><div class='add'>+RBIMPL_WARNING_IGNORED(-Wtype-limits) /* We can ignore them here. */</div><div class='add'>+#elif RBIMPL_HAS_WARNING("-Wtautological-constant-out-of-range-compare")</div><div class='add'>+RBIMPL_WARNING_IGNORED(-Wtautological-constant-out-of-range-compare)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `int` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  v  Arbitrary `int` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_int2num_inline(int v)</div><div class='add'>+{</div><div class='add'>+    if (RB_FIXABLE(v))</div><div class='add'>+        return RB_INT2FIX(v);</div><div class='add'>+    else</div><div class='add'>+        return rb_int2big(v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `unsigned int` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  v  Arbitrary `unsigned int` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_uint2num_inline(unsigned int v)</div><div class='add'>+{</div><div class='add'>+    if (RB_POSFIXABLE(v))</div><div class='add'>+        return RB_LONG2FIX(v);</div><div class='add'>+    else</div><div class='add'>+        return rb_uint2big(v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_WARNING_POP()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_INT_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/intptr_t.h b/include/ruby/internal/arithmetic/intptr_t.h<br/>new file mode 100644<br/>index 0000000000..a354f4469c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/intptr_t.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/intptr_t.h</a></div><div class='hunk'>@@ -0,0 +1,74 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_INTPTR_T_H                 /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_INTPTR_T_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `intptr_t` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STDINT_H</div><div class='add'>+# include &lt;stdint.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+</div><div class='add'>+#define rb_int_new  rb_int2inum  /**&lt; @alias{rb_int2inum} */</div><div class='add'>+#define rb_uint_new rb_uint2inum /**&lt; @alias{rb_uint2inum} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `intptr_t` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  i  Arbitrary `intptr_t` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ * @note       This function always allocates Bignums, even if the given number</div><div class='add'>+ *             is small enough to fit into a Fixnum.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_int2big(intptr_t i);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `intptr_t` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  i  Arbitrary `intptr_t` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_int2inum(intptr_t i);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `intptr_t` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  i  Arbitrary `intptr_t` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ * @note       This function always allocates Bignums, even if the given number</div><div class='add'>+ *             is small enough to fit into a Fixnum.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_uint2big(uintptr_t i);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `uintptr_t` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  i  Arbitrary `uintptr_t` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_uint2inum(uintptr_t i);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_INTPTR_T_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/long.h b/include/ruby/internal/arithmetic/long.h<br/>new file mode 100644<br/>index 0000000000..6b8fd8ffc3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/long.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/long.h</a></div><div class='hunk'>@@ -0,0 +1,356 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_LONG_H                     /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_LONG_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `long` and Ruby's.</div><div class='add'>+ *</div><div class='add'>+ * ### Q&amp;A ###</div><div class='add'>+ *</div><div class='add'>+ * - Q: Why are INT2FIX etc. here, not in `int.h`?</div><div class='add'>+ *</div><div class='add'>+ * - A: Because they  are in fact  handling `long`.   It seems someone  did not</div><div class='add'>+ *      understand the difference of `int`  and `long` when they designed those</div><div class='add'>+ *      macros.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/arithmetic/fixnum.h"   /* FIXABLE */</div><div class='add'>+#include "ruby/internal/arithmetic/intptr_t.h" /* rb_int2big etc.*/</div><div class='add'>+#include "ruby/internal/assume.h"</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/cold.h"</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/constexpr.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/special_consts.h"      /* FIXNUM_FLAG */</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+</div><div class='add'>+#define FIX2LONG     RB_FIX2LONG          /**&lt; @old{RB_FIX2LONG} */</div><div class='add'>+#define FIX2ULONG    RB_FIX2ULONG         /**&lt; @old{RB_FIX2ULONG} */</div><div class='add'>+#define INT2FIX      RB_INT2FIX           /**&lt; @old{RB_INT2FIX} */</div><div class='add'>+#define LONG2FIX     RB_INT2FIX           /**&lt; @old{RB_INT2FIX} */</div><div class='add'>+#define LONG2NUM     RB_LONG2NUM          /**&lt; @old{RB_LONG2NUM} */</div><div class='add'>+#define NUM2LONG     RB_NUM2LONG          /**&lt; @old{RB_NUM2LONG} */</div><div class='add'>+#define NUM2ULONG    RB_NUM2ULONG         /**&lt; @old{RB_NUM2ULONG} */</div><div class='add'>+#define RB_FIX2LONG  rb_fix2long          /**&lt; @alias{rb_fix2long} */</div><div class='add'>+#define RB_FIX2ULONG rb_fix2ulong         /**&lt; @alias{rb_fix2ulong} */</div><div class='add'>+#define RB_LONG2FIX  RB_INT2FIX           /**&lt; @alias{RB_INT2FIX} */</div><div class='add'>+#define RB_LONG2NUM  rb_long2num_inline   /**&lt; @alias{rb_long2num_inline} */</div><div class='add'>+#define RB_NUM2LONG  rb_num2long_inline   /**&lt; @alias{rb_num2long_inline} */</div><div class='add'>+#define RB_NUM2ULONG rb_num2ulong_inline  /**&lt; @alias{rb_num2ulong_inline} */</div><div class='add'>+#define RB_ULONG2NUM rb_ulong2num_inline  /**&lt; @alias{rb_ulong2num_inline} */</div><div class='add'>+#define ULONG2NUM    RB_ULONG2NUM         /**&lt; @old{RB_ULONG2NUM} */</div><div class='add'>+#define rb_fix_new   RB_INT2FIX           /**&lt; @alias{RB_INT2FIX} */</div><div class='add'>+#define rb_long2int  rb_long2int_inline   /**&lt; @alias{rb_long2int_inline} */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RB_INT2FIX RB_INT2FIX</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_COLD()</div><div class='add'>+/**</div><div class='add'>+ * This is an utility function to raise an ::rb_eRangeError.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             A signed value about to overflow.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `int`.</div><div class='add'>+ */</div><div class='add'>+void rb_out_of_int(SIGNED_VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `long`.</div><div class='add'>+ * @return     The passed value converted into C's `long`.</div><div class='add'>+ */</div><div class='add'>+long rb_num2long(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `unsigned long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `unsigned long`.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned long`.</div><div class='add'>+ */</div><div class='add'>+unsigned long rb_num2ulong(VALUE num);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `long` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  i  Arbitrary `long` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+RB_INT2FIX(long i)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(i));</div><div class='add'>+</div><div class='add'>+    /* :NOTE: VALUE can be wider than long.  As j being unsigned, 2j+1 is fully</div><div class='add'>+     * defined. Also it can be compiled into a single LEA instruction. */</div><div class='add'>+    const unsigned long j = i;</div><div class='add'>+    const unsigned long k = (j &lt;&lt; 1) + RUBY_FIXNUM_FLAG;</div><div class='add'>+    const long          l = k;</div><div class='add'>+    const SIGNED_VALUE  m = l; /* Sign extend */</div><div class='add'>+    const VALUE         n = m;</div><div class='add'>+</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(n));</div><div class='add'>+    return n;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks if `int` can hold the given integer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n               Arbitrary `long` value.</div><div class='add'>+ * @exception  rb_eRangeError  `n` is out of range of `int`.</div><div class='add'>+ * @return     Identical value of type `int`</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_long2int_inline(long n)</div><div class='add'>+{</div><div class='add'>+    int i = RBIMPL_CAST((int)n);</div><div class='add'>+</div><div class='add'>+    if /* constexpr */ (sizeof(long) &lt;= sizeof(int)) {</div><div class='add'>+        RBIMPL_ASSUME(i == n);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (i != n)</div><div class='add'>+        rb_out_of_int(n);</div><div class='add'>+</div><div class='add'>+    return i;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14)</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is an  implementation detail  of rb_fix2long().   People don't  use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A Fixnum.</div><div class='add'>+ * @return     Identical value of type `long`</div><div class='add'>+ * @pre        Must not pass anything other than a Fixnum.</div><div class='add'>+ */</div><div class='add'>+static inline long</div><div class='add'>+rbimpl_fix2long_by_idiv(VALUE x)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x));</div><div class='add'>+</div><div class='add'>+    /* :NOTE: VALUE  can be wider  than long.  (x-1)/2 never  overflows because</div><div class='add'>+     * RB_FIXNUM_P(x)  holds.   Also it  has  no  portability issue  like  y&gt;&gt;1</div><div class='add'>+     * below. */</div><div class='add'>+    const SIGNED_VALUE y = x - RUBY_FIXNUM_FLAG;</div><div class='add'>+    const SIGNED_VALUE z = y / 2;</div><div class='add'>+    const long         w = RBIMPL_CAST((long)z);</div><div class='add'>+</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(w));</div><div class='add'>+    return w;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14)</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is an  implementation detail  of rb_fix2long().   People don't  use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A Fixnum.</div><div class='add'>+ * @return     Identical value of type `long`</div><div class='add'>+ * @pre        Must not pass anything other than a Fixnum.</div><div class='add'>+ */</div><div class='add'>+static inline long</div><div class='add'>+rbimpl_fix2long_by_shift(VALUE x)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x));</div><div class='add'>+</div><div class='add'>+    /* :NOTE: VALUE can be wider than long.  If right shift is arithmetic, this</div><div class='add'>+     * is noticeably faster than above. */</div><div class='add'>+    const SIGNED_VALUE y = x;</div><div class='add'>+    const SIGNED_VALUE z = y &gt;&gt; 1;</div><div class='add'>+    const long         w = RBIMPL_CAST((long)z);</div><div class='add'>+</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(w));</div><div class='add'>+    return w;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is an  implementation detail  of rb_fix2long().   People don't  use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @retval  true   This C compiler's right shift operator is arithmetic.</div><div class='add'>+ * @retval  false  This C compiler's right shift operator is logical.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rbimpl_right_shift_is_arithmetic_p(void)</div><div class='add'>+{</div><div class='add'>+    return (-1 &gt;&gt; 1) == -1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14)</div><div class='add'>+/**</div><div class='add'>+ * Converts a Fixnum into C's `long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  Some Fixnum.</div><div class='add'>+ * @pre        Must not pass anything other than a Fixnum.</div><div class='add'>+ * @return     The passed value converted into C's `long`.</div><div class='add'>+ */</div><div class='add'>+static inline long</div><div class='add'>+rb_fix2long(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if /* constexpr */ (rbimpl_right_shift_is_arithmetic_p()) {</div><div class='add'>+        return rbimpl_fix2long_by_shift(x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rbimpl_fix2long_by_idiv(x);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14)</div><div class='add'>+/**</div><div class='add'>+ * Converts a Fixnum into C's `unsigned long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  Some Fixnum.</div><div class='add'>+ * @pre        Must not pass anything other than a Fixnum.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned long`.</div><div class='add'>+ * @note       Negative fixnums will be converted into large unsigned longs.</div><div class='add'>+ */</div><div class='add'>+static inline unsigned long</div><div class='add'>+rb_fix2ulong(VALUE x)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FIXNUM_P(x));</div><div class='add'>+    return rb_fix2long(x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `x` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `long`.</div><div class='add'>+ * @return     The passed value converted into C's `long`.</div><div class='add'>+ */</div><div class='add'>+static inline long</div><div class='add'>+rb_num2long_inline(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_FIXNUM_P(x))</div><div class='add'>+        return RB_FIX2LONG(x);</div><div class='add'>+    else</div><div class='add'>+        return rb_num2long(x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `unsigned long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `x` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `unsigned long`.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned long`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  (negative fixnum  would become  a large  unsigned long  while negative</div><div class='add'>+ * bignum  is an  exception)  has been  THE behaviour  of  NUM2ULONG since  the</div><div class='add'>+ * beginning.  It is strange, but we can  no longer change how it works at this</div><div class='add'>+ * moment.  We have to get by with it.</div><div class='add'>+ *</div><div class='add'>+ * @see https://bugs.ruby-lang.org/issues/9089</div><div class='add'>+ */</div><div class='add'>+static inline unsigned long</div><div class='add'>+rb_num2ulong_inline(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_FIXNUM_P(x))</div><div class='add'>+        return RB_FIX2ULONG(x);</div><div class='add'>+    else</div><div class='add'>+        return rb_num2ulong(x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `long` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  v  Arbitrary `long` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_long2num_inline(long v)</div><div class='add'>+{</div><div class='add'>+    if (RB_FIXABLE(v))</div><div class='add'>+        return RB_LONG2FIX(v);</div><div class='add'>+    else</div><div class='add'>+        return rb_int2big(v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `unsigned long` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  v  Arbitrary `unsigned long` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_ulong2num_inline(unsigned long v)</div><div class='add'>+{</div><div class='add'>+    if (RB_POSFIXABLE(v))</div><div class='add'>+        return RB_LONG2FIX(v);</div><div class='add'>+    else</div><div class='add'>+        return rb_uint2big(v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @cond INTERNAL_MACRO</div><div class='add'>+ *</div><div class='add'>+ * Following overload is necessary because sometimes  INT2FIX is used as a enum</div><div class='add'>+ * value (e.g. `enum {  FOO = INT2FIX(0) };`).  THIS IS NG  in theory because a</div><div class='add'>+ * VALUE does not fit into an enum (which must be a signed int).  But we cannot</div><div class='add'>+ * break existing codes.</div><div class='add'>+ */</div><div class='add'>+#if RBIMPL_HAS_ATTR_CONSTEXPR_CXX14</div><div class='add'>+# /* C++ can write constexpr as enum values. */</div><div class='add'>+</div><div class='add'>+#elif ! defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)</div><div class='add'>+# undef INT2FIX</div><div class='add'>+# define INT2FIX(i) (RBIMPL_CAST((VALUE)(i)) &lt;&lt; 1 | RUBY_FIXNUM_FLAG)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# undef INT2FIX</div><div class='add'>+# define INT2FIX(i)                                     \</div><div class='add'>+    __builtin_choose_expr(                              \</div><div class='add'>+        __builtin_constant_p(i),                        \</div><div class='add'>+        RBIMPL_CAST((VALUE)(i)) &lt;&lt; 1 | RUBY_FIXNUM_FLAG, \</div><div class='add'>+        RB_INT2FIX(i))</div><div class='add'>+#endif</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_LONG_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/long_long.h b/include/ruby/internal/arithmetic/long_long.h<br/>new file mode 100644<br/>index 0000000000..65dec8729d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/long_long.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/long_long.h</a></div><div class='hunk'>@@ -0,0 +1,135 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_LONG_LONG_H                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_LONG_LONG_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `long long` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/special_consts.h"</div><div class='add'>+#include "ruby/backward/2/long_long.h"</div><div class='add'>+</div><div class='add'>+#define RB_LL2NUM  rb_ll2num_inline   /**&lt; @alias{rb_ll2num_inline} */</div><div class='add'>+#define RB_ULL2NUM rb_ull2num_inline  /**&lt; @alias{rb_ull2num_inline} */</div><div class='add'>+#define LL2NUM     RB_LL2NUM          /**&lt; @old{RB_LL2NUM} */</div><div class='add'>+#define ULL2NUM    RB_ULL2NUM         /**&lt; @old{RB_ULL2NUM} */</div><div class='add'>+#define RB_NUM2LL  rb_num2ll_inline   /**&lt; @alias{rb_num2ll_inline} */</div><div class='add'>+#define RB_NUM2ULL rb_num2ull_inline  /**&lt; @alias{rb_num2ull_inline} */</div><div class='add'>+#define NUM2LL     RB_NUM2LL          /**&lt; @old{RB_NUM2LL} */</div><div class='add'>+#define NUM2ULL    RB_NUM2ULL         /**&lt; @old{RB_NUM2ULL} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `long long` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num  Arbitrary `long long` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ll2inum(LONG_LONG num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `unsigned long long` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num  Arbitrary `unsigned long long` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ull2inum(unsigned LONG_LONG num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `long long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `long long`.</div><div class='add'>+ * @return     The passed value converted into C's `long long`.</div><div class='add'>+ */</div><div class='add'>+LONG_LONG rb_num2ll(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `unsigned long long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `unsigned long long`.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned long long`.</div><div class='add'>+ */</div><div class='add'>+unsigned LONG_LONG rb_num2ull(VALUE num);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `long long` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n  Arbitrary `long long` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_ll2num_inline(LONG_LONG n)</div><div class='add'>+{</div><div class='add'>+    if (FIXABLE(n)) return LONG2FIX((long)n);</div><div class='add'>+    return rb_ll2inum(n);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `unsigned long long` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n  Arbitrary `unsigned long long` value.</div><div class='add'>+ * @return     An instance of ::rb_cInteger</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_ull2num_inline(unsigned LONG_LONG n)</div><div class='add'>+{</div><div class='add'>+    if (POSFIXABLE(n)) return LONG2FIX((long)n);</div><div class='add'>+    return rb_ull2inum(n);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `long long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `x` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `long long`.</div><div class='add'>+ * @return     The passed value converted into C's `long long`.</div><div class='add'>+ */</div><div class='add'>+static inline LONG_LONG</div><div class='add'>+rb_num2ll_inline(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_FIXNUM_P(x))</div><div class='add'>+        return RB_FIX2LONG(x);</div><div class='add'>+    else</div><div class='add'>+        return rb_num2ll(x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `unsigned long long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `x` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `unsigned long long`.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned long long`.</div><div class='add'>+ */</div><div class='add'>+static inline unsigned LONG_LONG</div><div class='add'>+rb_num2ull_inline(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_FIXNUM_P(x))</div><div class='add'>+        return RB_FIX2LONG(x);</div><div class='add'>+    else</div><div class='add'>+        return rb_num2ull(x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_LONG_LONG_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/mode_t.h b/include/ruby/internal/arithmetic/mode_t.h<br/>new file mode 100644<br/>index 0000000000..5b7ad35fbc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/mode_t.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/mode_t.h</a></div><div class='hunk'>@@ -0,0 +1,41 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_MODE_T_H                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_MODE_T_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `mode_t` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/arithmetic/int.h"</div><div class='add'>+</div><div class='add'>+/** Converts a C's `mode_t` into an instance of ::rb_cInteger. */</div><div class='add'>+#ifndef NUM2MODET</div><div class='add'>+# define NUM2MODET RB_NUM2INT</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Converts an instance of ::rb_cNumeric into C's `mode_t`. */</div><div class='add'>+#ifndef MODET2NUM</div><div class='add'>+# define MODET2NUM RB_INT2NUM</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** A rb_sprintf() format prefix to be used for a `mode_t` parameter. */</div><div class='add'>+#ifndef PRI_MODET_PREFIX</div><div class='add'>+# define PRI_MODET_PREFIX PRI_INT_PREFIX</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_MODE_T_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/off_t.h b/include/ruby/internal/arithmetic/off_t.h<br/>new file mode 100644<br/>index 0000000000..0ec9362cc9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/off_t.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/off_t.h</a></div><div class='hunk'>@@ -0,0 +1,62 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_OFF_T_H                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_OFF_T_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `off_t` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/arithmetic/int.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long_long.h"</div><div class='add'>+#include "ruby/backward/2/long_long.h"</div><div class='add'>+</div><div class='add'>+/** Converts a C's `off_t` into an instance of ::rb_cInteger. */</div><div class='add'>+#ifdef OFFT2NUM</div><div class='add'>+# /* take that. */</div><div class='add'>+#elif SIZEOF_OFF_T == SIZEOF_LONG_LONG</div><div class='add'>+# define OFFT2NUM RB_LL2NUM</div><div class='add'>+#elif SIZEOF_OFF_T == SIZEOF_LONG</div><div class='add'>+# define OFFT2NUM RB_LONG2NUM</div><div class='add'>+#else</div><div class='add'>+# define OFFT2NUM RB_INT2NUM</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Converts an instance of ::rb_cNumeric into C's `off_t`. */</div><div class='add'>+#ifdef NUM2OFFT</div><div class='add'>+# /* take that. */</div><div class='add'>+#elif SIZEOF_OFF_T == SIZEOF_LONG_LONG</div><div class='add'>+# define NUM2OFFT RB_NUM2LL</div><div class='add'>+#elif SIZEOF_OFF_T == SIZEOF_LONG</div><div class='add'>+# define NUM2OFFT RB_NUM2LONG</div><div class='add'>+#else</div><div class='add'>+# define NUM2OFFT RB_NUM2INT</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** A rb_sprintf() format prefix to be used for an `off_t` parameter. */</div><div class='add'>+#ifdef PRI_OFFT_PREFIX</div><div class='add'>+# /* take that. */</div><div class='add'>+#elif SIZEOF_OFF_T == SIZEOF_LONG_LONG</div><div class='add'>+# define PRI_OFFT_PREFIX PRI_LL_PREFIX</div><div class='add'>+#elif SIZEOF_OFF_T == SIZEOF_LONG</div><div class='add'>+# define PRI_OFFT_PREFIX PRI_LONG_PREFIX</div><div class='add'>+#else</div><div class='add'>+# define PRI_OFFT_PREFIX PRI_INT_PREFIX</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_OFF_T_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/pid_t.h b/include/ruby/internal/arithmetic/pid_t.h<br/>new file mode 100644<br/>index 0000000000..df9704e8f5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/pid_t.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/pid_t.h</a></div><div class='hunk'>@@ -0,0 +1,41 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_PID_T_H                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_PID_T_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `pid_t` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h"</div><div class='add'>+</div><div class='add'>+/** Converts a C's `pid_t` into an instance of ::rb_cInteger. */</div><div class='add'>+#ifndef PIDT2NUM</div><div class='add'>+# define PIDT2NUM RB_LONG2NUM</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Converts an instance of ::rb_cNumeric into C's `pid_t`. */</div><div class='add'>+#ifndef NUM2PIDT</div><div class='add'>+# define NUM2PIDT RB_NUM2LONG</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** A rb_sprintf() format prefix to be used for a `pid_t` parameter. */</div><div class='add'>+#ifndef PRI_PIDT_PREFIX</div><div class='add'>+# define PRI_PIDT_PREFIX PRI_LONG_PREFIX</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_PID_T_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/short.h b/include/ruby/internal/arithmetic/short.h<br/>new file mode 100644<br/>index 0000000000..7a324d945b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/short.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/short.h</a></div><div class='hunk'>@@ -0,0 +1,113 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_SHORT_H                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_SHORT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `short` and Ruby's.</div><div class='add'>+ *</div><div class='add'>+ * Shyouhei  wonders:  why  there  is   no  SHORT2NUM,  given  there  are  both</div><div class='add'>+ * #USHORT2NUM and #CHR2FIX?</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/special_consts.h"</div><div class='add'>+</div><div class='add'>+#define RB_NUM2SHORT  rb_num2short_inline /**&lt; @alias{rb_num2short_inline} */</div><div class='add'>+#define RB_NUM2USHORT rb_num2ushort       /**&lt; @alias{rb_num2ushort} */</div><div class='add'>+#define NUM2SHORT     RB_NUM2SHORT        /**&lt; @old{RB_NUM2SHORT} */</div><div class='add'>+#define NUM2USHORT    RB_NUM2USHORT       /**&lt; @old{RB_NUM2USHORT} */</div><div class='add'>+#define USHORT2NUM    RB_INT2FIX          /**&lt; @old{RB_INT2FIX} */</div><div class='add'>+#define RB_FIX2SHORT  rb_fix2short        /**&lt; @alias{rb_fix2ushort} */</div><div class='add'>+#define FIX2SHORT     RB_FIX2SHORT        /**&lt; @old{RB_FIX2SHORT} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `short`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `short`.</div><div class='add'>+ * @return     The passed value converted into C's `short`.</div><div class='add'>+ */</div><div class='add'>+short rb_num2short(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cNumeric into C's `unsigned short`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `unsigned short`.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned short`.</div><div class='add'>+ */</div><div class='add'>+unsigned short rb_num2ushort(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_num2short().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `short`.</div><div class='add'>+ * @return     The passed value converted into C's `short`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function seems to be a complete  waste of disk space.  @shyouhei has no</div><div class='add'>+ * idea why this is a different thing from rb_num2short().</div><div class='add'>+ */</div><div class='add'>+short rb_fix2short(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_num2ushort().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `num` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `unsigned short`.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned short`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function seems to be a complete  waste of disk space.  @shyouhei has no</div><div class='add'>+ * idea why this is a different thing from rb_num2ushort().</div><div class='add'>+ */</div><div class='add'>+unsigned short rb_fix2ushort(VALUE num);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_num2short().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               Something numeric.</div><div class='add'>+ * @exception  rb_eTypeError   `x` is not a numeric.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `short`.</div><div class='add'>+ * @return     The passed value converted into C's `short`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function seems to  be a complete waste of time.   @shyouhei has no idea</div><div class='add'>+ * why this is a different thing from rb_num2short().</div><div class='add'>+ */</div><div class='add'>+static inline short</div><div class='add'>+rb_num2short_inline(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (RB_FIXNUM_P(x))</div><div class='add'>+        return rb_fix2short(x);</div><div class='add'>+    else</div><div class='add'>+        return rb_num2short(x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_SHORT_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/size_t.h b/include/ruby/internal/arithmetic/size_t.h<br/>new file mode 100644<br/>index 0000000000..1082160b8e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/size_t.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/size_t.h</a></div><div class='hunk'>@@ -0,0 +1,66 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_SIZE_T_H                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_SIZE_T_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `size_t` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/arithmetic/int.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long_long.h"</div><div class='add'>+#include "ruby/backward/2/long_long.h"</div><div class='add'>+</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+# /** Converts a C's `size_t` into an instance of ::rb_cInteger. */</div><div class='add'>+# define RB_SIZE2NUM RB_ULONG2NUM</div><div class='add'>+# /** Converts a C's `ssize_t` into an instance of ::rb_cInteger. */</div><div class='add'>+# define RB_SSIZE2NUM RB_LONG2NUM</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG</div><div class='add'>+# define RB_SIZE2NUM RB_ULL2NUM</div><div class='add'>+# define RB_SSIZE2NUM RB_LL2NUM</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_LONG</div><div class='add'>+# define RB_SIZE2NUM RB_ULONG2NUM</div><div class='add'>+# define RB_SSIZE2NUM RB_LONG2NUM</div><div class='add'>+#else</div><div class='add'>+# define RB_SIZE2NUM RB_UINT2NUM</div><div class='add'>+# define RB_SSIZE2NUM RB_INT2NUM</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+# /** Converts an instance of ::rb_cInteger into C's `size_t`. */</div><div class='add'>+# define RB_NUM2SIZE RB_NUM2ULONG</div><div class='add'>+# /** Converts an instance of ::rb_cInteger into C's `ssize_t`. */</div><div class='add'>+# define RB_NUM2SSIZE RB_NUM2LONG</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG</div><div class='add'>+# define RB_NUM2SIZE RB_NUM2ULL</div><div class='add'>+# define RB_NUM2SSIZE RB_NUM2LL</div><div class='add'>+#elif SIZEOF_SIZE_T == SIZEOF_LONG</div><div class='add'>+# define RB_NUM2SIZE RB_NUM2ULONG</div><div class='add'>+# define RB_NUM2SSIZE RB_NUM2LONG</div><div class='add'>+#else</div><div class='add'>+# define RB_NUM2SIZE RB_NUM2UINT</div><div class='add'>+# define RB_NUM2SSIZE RB_NUM2INT</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define NUM2SIZET RB_NUM2SIZE   /**&lt; @old{RB_NUM2SIZE} */</div><div class='add'>+#define SIZET2NUM RB_SIZE2NUM   /**&lt; @old{RB_SIZE2NUM} */</div><div class='add'>+#define NUM2SSIZET RB_NUM2SSIZE /**&lt; @old{RB_NUM2SSIZE} */</div><div class='add'>+#define SSIZET2NUM RB_SSIZE2NUM /**&lt; @old{RB_SSIZE2NUM} */</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_SIZE_T_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/st_data_t.h b/include/ruby/internal/arithmetic/st_data_t.h<br/>new file mode 100644<br/>index 0000000000..3bff4ffc0b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/st_data_t.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/st_data_t.h</a></div><div class='hunk'>@@ -0,0 +1,75 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMERIC_ST_DATA_T_H                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMERIC_ST_DATA_T_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `st_data_t` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/arithmetic/fixnum.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h"</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/constexpr.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+</div><div class='add'>+#define ST2FIX    RB_ST2FIX     /**&lt; @old{RB_ST2FIX} */</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RB_ST2FIX RB_ST2FIX</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(CXX14)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `st_data_t` into an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  i  The data in question.</div><div class='add'>+ * @return     A converted result</div><div class='add'>+ * @warning    THIS CONVERSION LOSES DATA!  Be warned.</div><div class='add'>+ * @see        https://bugs.ruby-lang.org/issues/13877</div><div class='add'>+ * @see        https://bugs.ruby-lang.org/issues/14218</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  is   needed  because  of   hash  functions.   Hash   functions  return</div><div class='add'>+ * `st_data_t`,  which could  theoretically  be bigger  than Fixnums.   However</div><div class='add'>+ * allocating Bignums for them every time  we calculate hash values is just too</div><div class='add'>+ * heavy.  To avoid  penalty we need to  ignore some upper bit(s)  and stick to</div><div class='add'>+ * Fixnums.  This function is used for that purpose.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+RB_ST2FIX(st_data_t i)</div><div class='add'>+{</div><div class='add'>+    SIGNED_VALUE x = i;</div><div class='add'>+</div><div class='add'>+    if (x &gt;= 0) {</div><div class='add'>+        x &amp;= RUBY_FIXNUM_MAX;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        x |= RUBY_FIXNUM_MIN;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FIXABLE(x));</div><div class='add'>+    unsigned long y = RBIMPL_CAST((unsigned long)x);</div><div class='add'>+    return RB_LONG2FIX(y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_ST_DATA_T_H */</div><div class='head'>diff --git a/include/ruby/internal/arithmetic/uid_t.h b/include/ruby/internal/arithmetic/uid_t.h<br/>new file mode 100644<br/>index 0000000000..12cde2a9c8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/arithmetic/uid_t.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/arithmetic/uid_t.h</a></div><div class='hunk'>@@ -0,0 +1,41 @@</div><div class='add'>+#ifndef RBIMPL_ARITHMETIC_UID_T_H                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ARITHMETIC_UID_T_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Arithmetic conversion between C's `uid_t` and Ruby's.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h"</div><div class='add'>+</div><div class='add'>+/** Converts a C's `uid_t` into an instance of ::rb_cInteger. */</div><div class='add'>+#ifndef UIDT2NUM</div><div class='add'>+# define UIDT2NUM RB_LONG2NUM</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Converts an instance of ::rb_cNumeric into C's `uid_t`. */</div><div class='add'>+#ifndef NUM2UIDT</div><div class='add'>+# define NUM2UIDT RB_NUM2LONG</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** A rb_sprintf() format prefix to be used for a `uid_t` parameter. */</div><div class='add'>+#ifndef PRI_UIDT_PREFIX</div><div class='add'>+# define PRI_UIDT_PREFIX PRI_LONG_PREFIX</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ARITHMETIC_UID_T_H */</div><div class='head'>diff --git a/include/ruby/internal/assume.h b/include/ruby/internal/assume.h<br/>new file mode 100644<br/>index 0000000000..4c183e8af9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/assume.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/assume.h</a></div><div class='hunk'>@@ -0,0 +1,87 @@</div><div class='add'>+#ifndef RBIMPL_ASSUME_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ASSUME_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ASSUME / #RBIMPL_UNREACHABLE.</div><div class='add'>+ *</div><div class='add'>+ * These macros must be defined at once because:</div><div class='add'>+ *</div><div class='add'>+ * - #RBIMPL_ASSUME could fallback to #RBIMPL_UNREACHABLE.</div><div class='add'>+ * - #RBIMPL_UNREACHABLE could fallback to #RBIMPL_ASSUME.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/has/builtin.h"</div><div class='add'>+#include "ruby/internal/warning_push.h"</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#if defined(HAVE___ASSUME)</div><div class='add'>+# define RBIMPL_HAVE___ASSUME</div><div class='add'>+#endif</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__builtin_unreachable`. */</div><div class='add'>+#if RBIMPL_HAS_BUILTIN(__builtin_unreachable)</div><div class='add'>+# define RBIMPL_UNREACHABLE_RETURN(_) __builtin_unreachable()</div><div class='add'>+</div><div class='add'>+#elif defined(RBIMPL_HAVE___ASSUME)</div><div class='add'>+# define RBIMPL_UNREACHABLE_RETURN(_) return (__assume(0), (_))</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_UNREACHABLE_RETURN(_) return (_)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__builtin_unreachable`. */</div><div class='add'>+#if RBIMPL_HAS_BUILTIN(__builtin_unreachable)</div><div class='add'>+# define RBIMPL_UNREACHABLE __builtin_unreachable</div><div class='add'>+</div><div class='add'>+#elif defined(RBIMPL_HAVE___ASSUME)</div><div class='add'>+# define RBIMPL_UNREACHABLE() __assume(0)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__assume`. */</div><div class='add'>+#if RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0)</div><div class='add'>+# /* icc warnings are false positives.  Ignore them. */</div><div class='add'>+# /* "warning #2261: __assume expression with side effects discarded" */</div><div class='add'>+# define RBIMPL_ASSUME(expr)     \</div><div class='add'>+    RBIMPL_WARNING_PUSH()        \</div><div class='add'>+    RBIMPL_WARNING_IGNORED(2261) \</div><div class='add'>+    __assume(expr)              \</div><div class='add'>+    RBIMPL_WARNING_POP()</div><div class='add'>+</div><div class='add'>+#elif defined(RBIMPL_HAVE___ASSUME)</div><div class='add'>+# define RBIMPL_ASSUME __assume</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_BUILTIN(__builtin_assume)</div><div class='add'>+# define RBIMPL_ASSUME __builtin_assume</div><div class='add'>+</div><div class='add'>+#elif ! defined(RBIMPL_UNREACHABLE)</div><div class='add'>+# define RBIMPL_ASSUME(_) RBIMPL_CAST((void)(_))</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ASSUME(_) \</div><div class='add'>+    (RB_LIKELY(!!(_)) ? RBIMPL_CAST((void)0) : RBIMPL_UNREACHABLE())</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if ! defined(RBIMPL_UNREACHABLE)</div><div class='add'>+# define RBIMPL_UNREACHABLE() RBIMPL_ASSUME(0)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ASSUME_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/alloc_size.h b/include/ruby/internal/attr/alloc_size.h<br/>new file mode 100644<br/>index 0000000000..954a2010f6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/alloc_size.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/alloc_size.h</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_ALLOC_SIZE_H                     /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_ALLOC_SIZE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_ALLOC_SIZE.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((alloc_size))` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(alloc_size)</div><div class='add'>+# define RBIMPL_ATTR_ALLOC_SIZE(tuple) __attribute__((__alloc_size__ tuple))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_ALLOC_SIZE(tuple) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_ALLOC_SIZE_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/artificial.h b/include/ruby/internal/attr/artificial.h<br/>new file mode 100644<br/>index 0000000000..ef5f36abff<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/artificial.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/artificial.h</a></div><div class='hunk'>@@ -0,0 +1,46 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_ARTIFICIAL_H                     /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_ARTIFICIAL_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_ARTIFICIAL.</div><div class='add'>+ *</div><div class='add'>+ * ### Q&amp;A ###</div><div class='add'>+ *</div><div class='add'>+ * - Q: What is this attribute?  I don't get what GCC manual is talking about.</div><div class='add'>+ *</div><div class='add'>+ * - A: In  short  it  is  an  attribute to  manipulate  GDB  backtraces.   The</div><div class='add'>+ *      attribute    makes    the   best    sense    when    it   comes    with</div><div class='add'>+ *      __attribute__((always_inline)).   When a  function annotated  with this</div><div class='add'>+ *      attribute gets inlined, and when you  somehow look at a backtrace which</div><div class='add'>+ *      includes such  inlined call site,  then the backtrace shows  the caller</div><div class='add'>+ *      and  not the  callee.  This  is handy  for instance  when an  identical</div><div class='add'>+ *      function is inlined  more than once in a single  big function.  On such</div><div class='add'>+ *      case it gets  vital to know where the inlining  happened in the callee.</div><div class='add'>+ *      See also https://stackoverflow.com/a/21936099</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((artificial))` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(artificial)</div><div class='add'>+# define RBIMPL_ATTR_ARTIFICIAL() __attribute__((__artificial__))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_ARTIFICIAL() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_ARTIFICIAL_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/cold.h b/include/ruby/internal/attr/cold.h<br/>new file mode 100644<br/>index 0000000000..c68b3ae784<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/cold.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/cold.h</a></div><div class='hunk'>@@ -0,0 +1,37 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_COLD_H                           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_COLD_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_COLD.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_is.h"</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((cold))` */</div><div class='add'>+#if RBIMPL_COMPILER_IS(SunPro)</div><div class='add'>+# /* Recent SunPro has __has_attribute, and is broken. */</div><div class='add'>+# /* It reports it has attribute cold, reality isn't (warnings issued). */</div><div class='add'>+# define RBIMPL_ATTR_COLD() /* void */</div><div class='add'>+#elif RBIMPL_HAS_ATTRIBUTE(cold)</div><div class='add'>+# define RBIMPL_ATTR_COLD() __attribute__((__cold__))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_COLD() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_COLD_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/const.h b/include/ruby/internal/attr/const.h<br/>new file mode 100644<br/>index 0000000000..e66aa17c70<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/const.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/const.h</a></div><div class='hunk'>@@ -0,0 +1,46 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_CONST_H                          /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_CONST_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_CONST.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/internal/has/declspec_attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((const))` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(const)</div><div class='add'>+# define RBIMPL_ATTR_CONST() __attribute__((__const__))</div><div class='add'>+#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noalias)</div><div class='add'>+# /* If a function can be a const, that is also a noalias. */</div><div class='add'>+# define RBIMPL_ATTR_CONST() __declspec(noalias)</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0)</div><div class='add'>+# define RBIMPL_ATTR_CONST() _Pragma("no_side_effect")</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_CONST() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Enables #RBIMPL_ATTR_CONST if and only if. ! #RUBY_DEBUG. */</div><div class='add'>+#if !defined(RUBY_DEBUG) || !RUBY_DEBUG</div><div class='add'>+# define RBIMPL_ATTR_CONST_UNLESS_DEBUG() RBIMPL_ATTR_CONST()</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_CONST_UNLESS_DEBUG() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_CONST_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/constexpr.h b/include/ruby/internal/attr/constexpr.h<br/>new file mode 100644<br/>index 0000000000..abc4f238b5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/constexpr.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/constexpr.h</a></div><div class='hunk'>@@ -0,0 +1,84 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_CONSTEXPR_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_CONSTEXPR_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      #RBIMPL_ATTR_CONSTEXPR.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/feature.h"</div><div class='add'>+#include "ruby/internal/compiler_is.h"</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#if ! defined(__cplusplus)</div><div class='add'>+# /* Makes no sense. */</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 0</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 0</div><div class='add'>+</div><div class='add'>+#elif defined(__cpp_constexpr)</div><div class='add'>+# /* https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations */</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 (__cpp_constexpr &gt;= 200704L)</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 (__cpp_constexpr &gt;= 201304L)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(MSVC, 19, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 RBIMPL_COMPILER_SINCE(MSVC, 19, 00, 00)</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 RBIMPL_COMPILER_SINCE(MSVC, 19, 11, 00)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 13, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 (__cplusplus &gt;= 201103L)</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 (__cplusplus &gt;= 201402L)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 (__cplusplus &gt;= 201103L)</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 (__cplusplus &gt;= 201402L)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_FEATURE(cxx_relaxed_constexpr)</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 1</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 1</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_FEATURE(cxx_constexpr)</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 1</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 0</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# /* :FIXME: icpc must have constexpr but don't know how to detect. */</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX11 0</div><div class='add'>+# define RBIMPL_HAS_ATTR_CONSTEXPR_CXX14 0</div><div class='add'>+#endif</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) C++11 `constexpr`.  */</div><div class='add'>+#if RBIMPL_HAS_ATTR_CONSTEXPR_CXX14</div><div class='add'>+# define RBIMPL_ATTR_CONSTEXPR(_) constexpr</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_ATTR_CONSTEXPR_CXX11</div><div class='add'>+# define RBIMPL_ATTR_CONSTEXPR(_) RBIMPL_ATTR_CONSTEXPR_ ## _</div><div class='add'>+# define RBIMPL_ATTR_CONSTEXPR_CXX11 constexpr</div><div class='add'>+# define RBIMPL_ATTR_CONSTEXPR_CXX14 /* void */</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_CONSTEXPR(_) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Enables #RBIMPL_ATTR_CONSTEXPR if and only if. ! #RUBY_DEBUG. */</div><div class='add'>+#if !RUBY_DEBUG</div><div class='add'>+# define RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(_) RBIMPL_ATTR_CONSTEXPR(_)</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_CONSTEXPR_UNLESS_DEBUG(_) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_CONSTEXPR_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/deprecated.h b/include/ruby/internal/attr/deprecated.h<br/>new file mode 100644<br/>index 0000000000..e1bbdbd15a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/deprecated.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/deprecated.h</a></div><div class='hunk'>@@ -0,0 +1,75 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_DEPRECATED_H                     /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_DEPRECATED_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_DEPRECATED.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/internal/has/c_attribute.h"</div><div class='add'>+#include "ruby/internal/has/cpp_attribute.h"</div><div class='add'>+#include "ruby/internal/has/declspec_attribute.h"</div><div class='add'>+#include "ruby/internal/has/extension.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `[[deprecated]]` */</div><div class='add'>+#if defined(__COVERITY__)</div><div class='add'>+/* Coverity Scan emulates gcc but seems not to support this attribute correctly */</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED(msg)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_EXTENSION(attribute_deprecated_with_message)</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg))</div><div class='add'>+</div><div class='add'>+#elif defined(__cplusplus) &amp;&amp; RBIMPL_COMPILER_SINCE(GCC, 10, 1, 0) &amp;&amp; RBIMPL_COMPILER_BEFORE(GCC, 10, 3, 0)</div><div class='add'>+# /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95302 */</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED(msg) /* disable until they fix this bug */</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(GCC, 4, 5, 0)</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg))</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0)</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__ msg))</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_ATTRIBUTE(deprecated) /* but not with message. */</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED(msg) __attribute__((__deprecated__))</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(MSVC, 14, 0, 0)</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED(msg) __declspec(deprecated msg)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(deprecated)</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED(msg) __declspec(deprecated)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_CPP_ATTRIBUTE(deprecated)</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED(msg) [[deprecated msg]]</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_C_ATTRIBUTE(deprecated)</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED(msg) [[deprecated msg]]</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED(msg) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** This is when a function is used internally (for backwards compatibility</div><div class='add'>+ * etc.), but extension libraries must consider it deprecated. */</div><div class='add'>+#if defined(RUBY_EXPORT)</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED_EXT(msg) /* void */</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_DEPRECATED_EXT(msg) RBIMPL_ATTR_DEPRECATED(msg)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_DEPRECATED_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/diagnose_if.h b/include/ruby/internal/attr/diagnose_if.h<br/>new file mode 100644<br/>index 0000000000..cadc6ce258<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/diagnose_if.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/diagnose_if.h</a></div><div class='hunk'>@@ -0,0 +1,42 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_DIAGNOSE_IF_H                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_DIAGNOSE_IF_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_DIAGNOSE_IF.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/internal/warning_push.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((diagnose_if))` */</div><div class='add'>+#if RBIMPL_COMPILER_BEFORE(Clang, 5, 0, 0)</div><div class='add'>+# /* https://bugs.llvm.org/show_bug.cgi?id=34319 */</div><div class='add'>+# define RBIMPL_ATTR_DIAGNOSE_IF(_, __, ___) /* void */</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_ATTRIBUTE(diagnose_if)</div><div class='add'>+# define RBIMPL_ATTR_DIAGNOSE_IF(_, __, ___) \</div><div class='add'>+    RBIMPL_WARNING_PUSH() \</div><div class='add'>+    RBIMPL_WARNING_IGNORED(-Wgcc-compat) \</div><div class='add'>+    __attribute__((__diagnose_if__(_, __, ___))) \</div><div class='add'>+    RBIMPL_WARNING_POP()</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_DIAGNOSE_IF(_, __, ___) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_DIAGNOSE_IF_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/enum_extensibility.h b/include/ruby/internal/attr/enum_extensibility.h<br/>new file mode 100644<br/>index 0000000000..eb0d5b6e9b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/enum_extensibility.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/enum_extensibility.h</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_ENUM_EXTENSIBILITY_H             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_ENUM_EXTENSIBILITY_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      #RBIMPL_ATTR_ENUM_EXTENSIBILITY.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((enum_extensibility))` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(enum_extensibility)</div><div class='add'>+# define RBIMPL_ATTR_ENUM_EXTENSIBILITY(_) __attribute__((__enum_extensibility__(_)))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_ENUM_EXTENSIBILITY(_) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_ENUM_EXTENSIBILITY_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/error.h b/include/ruby/internal/attr/error.h<br/>new file mode 100644<br/>index 0000000000..2ed388a770<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/error.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/error.h</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_ERROR_H                          /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_ERROR_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_ERROR.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((error))` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(error)</div><div class='add'>+# define RBIMPL_ATTR_ERROR(msg) __attribute__((__error__ msg))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_ERROR(msg) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_ERROR_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/flag_enum.h b/include/ruby/internal/attr/flag_enum.h<br/>new file mode 100644<br/>index 0000000000..3053d75074<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/flag_enum.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/flag_enum.h</a></div><div class='hunk'>@@ -0,0 +1,33 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_FLAG_ENUM_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_FLAG_ENUM_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_FLAG_ENUM.</div><div class='add'>+ * @see        https://clang.llvm.org/docs/AttributeReference.html#flag_enum</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((flag_enum)` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(flag_enum)</div><div class='add'>+# define RBIMPL_ATTR_FLAG_ENUM() __attribute__((__flag_enum__))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_FLAG_ENUM() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPLATTR_FLAG_ENUM_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/forceinline.h b/include/ruby/internal/attr/forceinline.h<br/>new file mode 100644<br/>index 0000000000..b7daafede7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/forceinline.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/forceinline.h</a></div><div class='hunk'>@@ -0,0 +1,40 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_FORCEINLINE_H                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_FORCEINLINE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_FORCEINLINE.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Wraps (or  simulates) `__forceinline`.  MSVC complains  on declarations like</div><div class='add'>+ * `static inline __forceinline void foo()`.   It  seems  MSVC's  `inline`  and</div><div class='add'>+ * `__forceinline` are mutually exclusive.  We have to mimic that behaviour for</div><div class='add'>+ * non-MSVC compilers.</div><div class='add'>+ */</div><div class='add'>+#if RBIMPL_COMPILER_SINCE(MSVC, 12, 0, 0)</div><div class='add'>+# define RBIMPL_ATTR_FORCEINLINE() __forceinline</div><div class='add'>+#elif RBIMPL_HAS_ATTRIBUTE(always_inline)</div><div class='add'>+# define RBIMPL_ATTR_FORCEINLINE() __attribute__((__always_inline__)) inline</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_FORCEINLINE() inline</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_FORCEINLINE_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/format.h b/include/ruby/internal/attr/format.h<br/>new file mode 100644<br/>index 0000000000..b3488ee00a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/format.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/format.h</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_FORMAT_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_FORMAT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_FORMAT.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((format))` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(format)</div><div class='add'>+# define RBIMPL_ATTR_FORMAT(x, y, z) __attribute__((__format__(x, y, z)))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_FORMAT(x, y, z) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(__MINGW_PRINTF_FORMAT)</div><div class='add'>+# define RBIMPL_PRINTF_FORMAT __MINGW_PRINTF_FORMAT</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_PRINTF_FORMAT __printf__</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_FORMAT_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/maybe_unused.h b/include/ruby/internal/attr/maybe_unused.h<br/>new file mode 100644<br/>index 0000000000..3ee8be4540<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/maybe_unused.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/maybe_unused.h</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_MAYBE_UNUSED_H                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_MAYBE_UNUSED_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_MAYBE_UNUSED.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/internal/has/c_attribute.h"</div><div class='add'>+#include "ruby/internal/has/cpp_attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps  (or simulates)  `[[maybe_unused]]` */</div><div class='add'>+#if RBIMPL_HAS_CPP_ATTRIBUTE(maybe_unused)</div><div class='add'>+# define RBIMPL_ATTR_MAYBE_UNUSED() [[maybe_unused]]</div><div class='add'>+#elif RBIMPL_HAS_C_ATTRIBUTE(maybe_unused)</div><div class='add'>+# define RBIMPL_ATTR_MAYBE_UNUSED() [[maybe_unused]]</div><div class='add'>+#elif RBIMPL_HAS_ATTRIBUTE(unused)</div><div class='add'>+# define RBIMPL_ATTR_MAYBE_UNUSED() __attribute__((__unused__))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_MAYBE_UNUSED() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_MAYBE_UNUSED */</div><div class='head'>diff --git a/include/ruby/internal/attr/noalias.h b/include/ruby/internal/attr/noalias.h<br/>new file mode 100644<br/>index 0000000000..0790ef60e5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/noalias.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/noalias.h</a></div><div class='hunk'>@@ -0,0 +1,69 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_NOALIAS_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_NOALIAS_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_NOALIAS.</div><div class='add'>+ *</div><div class='add'>+ * ### Q&amp;A ###</div><div class='add'>+ *</div><div class='add'>+ * - Q: There  are  seemingly   similar  attributes  named  #RBIMPL_ATTR_CONST,</div><div class='add'>+ *      #RBIMPL_ATTR_PURE, and #RBIMPL_ATTR_NOALIAS.  What are the difference?</div><div class='add'>+ *</div><div class='add'>+ * - A: Allowed operations are different.</div><div class='add'>+ *</div><div class='add'>+ *     - #RBIMPL_ATTR_CONST ... Functions attributed by this are not allowed to</div><div class='add'>+ *       read/write  _any_ pointers  at all  (there are  exceptional situations</div><div class='add'>+ *       when  reading a  pointer is  possible but  forget that;  they are  too</div><div class='add'>+ *       exceptional  to be  useful).  Just  remember that  everything pointer-</div><div class='add'>+ *       related are NG.</div><div class='add'>+ *</div><div class='add'>+ *     - #RBIMPL_ATTR_PURE  ...   Functions attributed  by  this  can read  any</div><div class='add'>+ *       nonvolatile pointers, but  no writes are allowed at  all.  The ability</div><div class='add'>+ *       to read _any_ nonvolatile pointers  makes it possible to mark ::VALUE-</div><div class='add'>+ *       taking functions as being pure, as long as they are read-only.</div><div class='add'>+ *</div><div class='add'>+ *     - #RBIMPL_ATTR_NOALIAS  ...  Can  both   read/write,  but  only  through</div><div class='add'>+ *       pointers  passed to  the function  as parameters.   This is  a typical</div><div class='add'>+ *       situation when you create a  C++ non-static member function which only</div><div class='add'>+ *       concerns `this`.  No  global variables are allowed  to read/write.  So</div><div class='add'>+ *       this is not a super-set of being pure.  If you want to read something,</div><div class='add'>+ *       that has to  be passed to the function as  a pointer.  ::VALUE -taking</div><div class='add'>+ *       functions thus cannot be attributed as such.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/has/declspec_attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__declspec((noalias))` */</div><div class='add'>+#if RBIMPL_COMPILER_BEFORE(Clang, 12, 0, 0)</div><div class='add'>+# /*</div><div class='add'>+#  * `::llvm::Attribute::ArgMemOnly`  was buggy  before.  Maybe  because nobody</div><div class='add'>+#  * actually seriously used it.  It seems they somehow mitigated the situation</div><div class='add'>+#  * in  LLVM  12.  Still  not  found  the  exact  changeset which  fiexed  the</div><div class='add'>+#  * attribute, though.</div><div class='add'>+#  *</div><div class='add'>+#  * :FIXME: others (armclang, xlclang, ...) can also be affected?</div><div class='add'>+#  */</div><div class='add'>+# define RBIMPL_ATTR_NOALIAS() /* void */</div><div class='add'>+#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noalias)</div><div class='add'>+# define RBIMPL_ATTR_NOALIAS() __declspec(noalias)</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_NOALIAS() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_NOALIAS_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/nodiscard.h b/include/ruby/internal/attr/nodiscard.h<br/>new file mode 100644<br/>index 0000000000..c3ae118942<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/nodiscard.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/nodiscard.h</a></div><div class='hunk'>@@ -0,0 +1,45 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_NODISCARD_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_NODISCARD_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_NODISCARD.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/internal/has/c_attribute.h"</div><div class='add'>+#include "ruby/internal/has/cpp_attribute.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Wraps  (or simulates)  `[[nodiscard]]`.  In  C++  (at least  since C++20)  a</div><div class='add'>+ * nodiscard attribute can  have a message why the result shall not be ignored.</div><div class='add'>+ * However GCC attribute and SAL annotation cannot take them.</div><div class='add'>+ */</div><div class='add'>+#if RBIMPL_HAS_CPP_ATTRIBUTE(nodiscard)</div><div class='add'>+# define RBIMPL_ATTR_NODISCARD() [[nodiscard]]</div><div class='add'>+#elif RBIMPL_HAS_C_ATTRIBUTE(nodiscard)</div><div class='add'>+# define RBIMPL_ATTR_NODISCARD() [[nodiscard]]</div><div class='add'>+#elif RBIMPL_HAS_ATTRIBUTE(warn_unused_result)</div><div class='add'>+# define RBIMPL_ATTR_NODISCARD() __attribute__((__warn_unused_result__))</div><div class='add'>+#elif defined(_Check_return_)</div><div class='add'>+# /* Take SAL definition. */</div><div class='add'>+# define RBIMPL_ATTR_NODISCARD() _Check_return_</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_NODISCARD() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_NODISCARD_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/noexcept.h b/include/ruby/internal/attr/noexcept.h<br/>new file mode 100644<br/>index 0000000000..ea3001df2a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/noexcept.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/noexcept.h</a></div><div class='hunk'>@@ -0,0 +1,91 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_NOEXCEPT_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_NOEXCEPT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_NOEXCEPT.</div><div class='add'>+ *</div><div class='add'>+ * This isn't actually an attribute in C++ but who cares...</div><div class='add'>+ *</div><div class='add'>+ * Mainly due  to aesthetic reasons,  this one is  rarely used in  the project.</div><div class='add'>+ * But can  be handy on  occasions, especially when a  function's noexcept-ness</div><div class='add'>+ * depends on its calling functions.</div><div class='add'>+ *</div><div class='add'>+ * ### Q&amp;A ###</div><div class='add'>+ *</div><div class='add'>+ * - Q: Can a function that raises Ruby exceptions be attributed `noexcept`?</div><div class='add'>+ *</div><div class='add'>+ * - A: Yes.   `noexcept` is  about  C++ exceptions,  not  Ruby's.  They  don't</div><div class='add'>+ *      interface each other.  You can  safely attribute a function that raises</div><div class='add'>+ *      Ruby exceptions as `noexcept`.</div><div class='add'>+ *</div><div class='add'>+ * - Q: How, then, can I assert that  a function I wrote doesn't raise any Ruby</div><div class='add'>+ *      exceptions?</div><div class='add'>+ *</div><div class='add'>+ * - A: `__attribute__((__leaf__))` is for that purpose.  A function attributed</div><div class='add'>+ *      as leaf can still throw C++  exceptions, but not Ruby's.  Note however,</div><div class='add'>+ *      that it's extremely difficult -- if  not impossible -- to assert that a</div><div class='add'>+ *      function  doesn't  raise any  Ruby  exceptions  at  all.  Use  of  that</div><div class='add'>+ *      attribute is not  recommended; mere mortals can't properly  use that by</div><div class='add'>+ *      hand.</div><div class='add'>+ *</div><div class='add'>+ * - Q: Does it make sense to attribute an inline function `noexcept`?</div><div class='add'>+ *</div><div class='add'>+ * - A: I thought so before.  But no, I don't think they are useful any longer.</div><div class='add'>+ *</div><div class='add'>+ *     - When an  inline function attributed `noexcept`  actually doesn't throw</div><div class='add'>+ *       any  exceptions at  all:  these days  I don't  see  any difference  in</div><div class='add'>+ *       generated assembly  by adding/removing this attribute.   C++ compilers</div><div class='add'>+ *       get smarter and  smarter.  Today they can infer if  it actually throws</div><div class='add'>+ *       or not without any annotations by humans (correct me if I'm wrong).</div><div class='add'>+ *</div><div class='add'>+ *     - When an inline function attributed `noexcepr` actually _does_ throw an</div><div class='add'>+ *       exception:  they  have to  call  `std::terminate`  then (C++  standard</div><div class='add'>+ *       mandates  so).  This  means exception  handling routines  are actually</div><div class='add'>+ *       enforced, not  omitted.  This doesn't impact  runtime performance (The</div><div class='add'>+ *       Itanium C++ ABI has zero-cost  exception handling), but does impact on</div><div class='add'>+ *       generated binary size.  This is bad.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/has/feature.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) C++11 `noexcept` */</div><div class='add'>+#if ! defined(__cplusplus)</div><div class='add'>+# /* Doesn't make sense. */</div><div class='add'>+# define RBIMPL_ATTR_NOEXCEPT(_) /* void */</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_FEATURE(cxx_noexcept)</div><div class='add'>+# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_))</div><div class='add'>+</div><div class='add'>+#elif defined(__GXX_EXPERIMENTAL_CXX0X__) &amp;&amp; __GXX_EXPERIMENTAL_CXX0X__</div><div class='add'>+# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_))</div><div class='add'>+</div><div class='add'>+#elif defined(__INTEL_CXX11_MODE__)</div><div class='add'>+# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_))</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(MSVC, 19, 0, 0)</div><div class='add'>+# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_))</div><div class='add'>+</div><div class='add'>+#elif __cplusplus &gt;= 201103L</div><div class='add'>+# define RBIMPL_ATTR_NOEXCEPT(_) noexcept(noexcept(_))</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_NOEXCEPT(_) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_NOEXCEPT_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/noinline.h b/include/ruby/internal/attr/noinline.h<br/>new file mode 100644<br/>index 0000000000..b7605a0c91<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/noinline.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/noinline.h</a></div><div class='hunk'>@@ -0,0 +1,35 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_NOINLINE_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_NOINLINE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_NOINLINE.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/internal/has/declspec_attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__declspec(noinline)` */</div><div class='add'>+#if RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noinline)</div><div class='add'>+# define RBIMPL_ATTR_NOINLINE() __declspec(noinline)</div><div class='add'>+#elif RBIMPL_HAS_ATTRIBUTE(noinline)</div><div class='add'>+# define RBIMPL_ATTR_NOINLINE() __attribute__((__noinline__))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_NOINLINE() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_NOINLINE_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/nonnull.h b/include/ruby/internal/attr/nonnull.h<br/>new file mode 100644<br/>index 0000000000..778d5be208<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/nonnull.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/nonnull.h</a></div><div class='hunk'>@@ -0,0 +1,34 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_NONNULL_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_NONNULL_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_NONNULL.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((nonnull))` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(nonnull)</div><div class='add'>+# define RBIMPL_ATTR_NONNULL(list) __attribute__((__nonnull__ list))</div><div class='add'>+# define RBIMPL_NONNULL_ARG(arg) RBIMPL_ASSERT_NOTHING</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_NONNULL(list) /* void */</div><div class='add'>+# define RBIMPL_NONNULL_ARG(arg) RUBY_ASSERT(arg)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_NONNULL_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/nonstring.h b/include/ruby/internal/attr/nonstring.h<br/>new file mode 100644<br/>index 0000000000..de26e926d4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/nonstring.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/nonstring.h</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_NONSTRING_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_NONSTRING_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_NONSTRING.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((nonstring))` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(nonstring)</div><div class='add'>+# define RBIMPL_ATTR_NONSTRING() __attribute__((nonstring))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_NONSTRING() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_NONSTRING_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/noreturn.h b/include/ruby/internal/attr/noreturn.h<br/>new file mode 100644<br/>index 0000000000..5839212037<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/noreturn.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/noreturn.h</a></div><div class='hunk'>@@ -0,0 +1,48 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_NORETURN_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_NORETURN_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_NORETURN.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/internal/has/cpp_attribute.h"</div><div class='add'>+#include "ruby/internal/has/declspec_attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `[[noreturn]]` */</div><div class='add'>+#if RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noreturn)</div><div class='add'>+# define RBIMPL_ATTR_NORETURN() __declspec(noreturn)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_ATTRIBUTE(noreturn)</div><div class='add'>+# define RBIMPL_ATTR_NORETURN() __attribute__((__noreturn__))</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_CPP_ATTRIBUTE(noreturn)</div><div class='add'>+# define RBIMPL_ATTR_NORETURN() [[noreturn]]</div><div class='add'>+</div><div class='add'>+#elif defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 201112)</div><div class='add'>+# define RBIMPL_ATTR_NORETURN() _Noreturn</div><div class='add'>+</div><div class='add'>+#elif defined(_Noreturn)</div><div class='add'>+# /* glibc &lt;sys/cdefs.h&gt; has this macro. */</div><div class='add'>+# define RBIMPL_ATTR_NORETURN() _Noreturn</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_NORETURN() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_NORETURN_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/pure.h b/include/ruby/internal/attr/pure.h<br/>new file mode 100644<br/>index 0000000000..015711bdab<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/pure.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/pure.h</a></div><div class='hunk'>@@ -0,0 +1,43 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_PURE_H                           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_PURE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_PURE.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((pure))` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(pure)</div><div class='add'>+# define RBIMPL_ATTR_PURE() __attribute__((__pure__))</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0)</div><div class='add'>+# define RBIMPL_ATTR_PURE() _Pragma("does_not_write_global_data")</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_PURE() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Enables #RBIMPL_ATTR_PURE if and only if. ! #RUBY_DEBUG. */</div><div class='add'>+#if !RUBY_DEBUG</div><div class='add'>+# define RBIMPL_ATTR_PURE_UNLESS_DEBUG() RBIMPL_ATTR_PURE()</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_PURE_UNLESS_DEBUG() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_PURE_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/restrict.h b/include/ruby/internal/attr/restrict.h<br/>new file mode 100644<br/>index 0000000000..e39104138c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/restrict.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/restrict.h</a></div><div class='hunk'>@@ -0,0 +1,44 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_RESTRICT_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_RESTRICT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_RESTRICT.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/* :FIXME:  config.h  includes conflicting  `#define  restrict`.   MSVC can  be</div><div class='add'>+ * detected  using `RBIMPL_COMPILER_SINCE()`,  but  Clang &amp;  family cannot  use</div><div class='add'>+ * `__has_declspec_attribute()` which involves macro substitution. */</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__declspec(restrict)` */</div><div class='add'>+#if RBIMPL_COMPILER_SINCE(MSVC, 14, 0, 0)</div><div class='add'>+# define RBIMPL_ATTR_RESTRICT() __declspec(re ## strict)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_ATTRIBUTE(malloc)</div><div class='add'>+# define RBIMPL_ATTR_RESTRICT() __attribute__((__malloc__))</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0)</div><div class='add'>+# define RBIMPL_ATTR_RESTRICT() _Pragma("returns_new_memory")</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_RESTRICT() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_RESTRICT_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/returns_nonnull.h b/include/ruby/internal/attr/returns_nonnull.h<br/>new file mode 100644<br/>index 0000000000..5d6f1d1459<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/returns_nonnull.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/returns_nonnull.h</a></div><div class='hunk'>@@ -0,0 +1,37 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_RETURNS_NONNULL_H                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_RETURNS_NONNULL_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_RETURNS_NONNULL.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((returns_nonnull))` */</div><div class='add'>+#if defined(_Ret_nonnull_)</div><div class='add'>+# /* Take SAL definition. */</div><div class='add'>+# define RBIMPL_ATTR_RETURNS_NONNULL() _Ret_nonnull_</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_ATTRIBUTE(returns_nonnull)</div><div class='add'>+# define RBIMPL_ATTR_RETURNS_NONNULL() __attribute__((__returns_nonnull__))</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_RETURNS_NONNULL() /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_RETURNS_NONNULL_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/warning.h b/include/ruby/internal/attr/warning.h<br/>new file mode 100644<br/>index 0000000000..e5ced269b8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/warning.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/warning.h</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_WARNING_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_WARNING_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_WARNING.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((warning))` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(warning)</div><div class='add'>+# define RBIMPL_ATTR_WARNING(msg) __attribute__((__warning__ msg))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_WARNING(msg) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_WARNING_H */</div><div class='head'>diff --git a/include/ruby/internal/attr/weakref.h b/include/ruby/internal/attr/weakref.h<br/>new file mode 100644<br/>index 0000000000..f118bb62b8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/attr/weakref.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/attr/weakref.h</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+#ifndef RBIMPL_ATTR_WEAKREF_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ATTR_WEAKREF_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ATTR_WEAKREF.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__attribute__((weakref))` */</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(weakref)</div><div class='add'>+# define RBIMPL_ATTR_WEAKREF(sym) __attribute__((__weakref__(# sym)))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ATTR_WEAKREF(sym) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ATTR_WEAKREF_H */</div><div class='head'>diff --git a/include/ruby/internal/cast.h b/include/ruby/internal/cast.h<br/>new file mode 100644<br/>index 0000000000..a31fddbe4c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/cast.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/cast.h</a></div><div class='hunk'>@@ -0,0 +1,50 @@</div><div class='add'>+#ifndef RBIMPL_CAST_H                                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_CAST_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines RBIMPL_CAST.</div><div class='add'>+ *</div><div class='add'>+ * This casting macro makes sense only inside  of other macros that are part of</div><div class='add'>+ * public headers.  They could be used  from C++, and C-style casts could issue</div><div class='add'>+ * warnings.  Ruby internals are pure C so they should not bother.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/has/warning.h"</div><div class='add'>+#include "ruby/internal/warning_push.h"</div><div class='add'>+</div><div class='add'>+#if ! defined(__cplusplus)</div><div class='add'>+# define RBIMPL_CAST(expr) (expr)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0)</div><div class='add'>+# /* g++ has -Wold-style-cast since 1997 or so, but its _Pragma is broken. */</div><div class='add'>+# /* See https://gcc.godbolt.org/z/XWhU6J */</div><div class='add'>+# define RBIMPL_CAST(expr) (expr)</div><div class='add'>+# pragma GCC diagnostic ignored "-Wold-style-cast"</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_WARNING("-Wold-style-cast")</div><div class='add'>+# define RBIMPL_CAST(expr)                   \</div><div class='add'>+    RBIMPL_WARNING_PUSH()                    \</div><div class='add'>+    RBIMPL_WARNING_IGNORED(-Wold-style-cast) \</div><div class='add'>+    (expr)                                  \</div><div class='add'>+    RBIMPL_WARNING_POP()</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_CAST(expr) (expr)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_CAST_H */</div><div class='head'>diff --git a/include/ruby/internal/compiler_is.h b/include/ruby/internal/compiler_is.h<br/>new file mode 100644<br/>index 0000000000..7070b033a0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/compiler_is.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/compiler_is.h</a></div><div class='hunk'>@@ -0,0 +1,45 @@</div><div class='add'>+#ifndef RBIMPL_COMPILER_IS_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_COMPILER_IS_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_COMPILER_IS.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @brief   Checks if the compiler is of given brand.</div><div class='add'>+ * @param   cc     Compiler brand, like `MSVC`.</div><div class='add'>+ * @retval  true   It is.</div><div class='add'>+ * @retval  false  It isn't.</div><div class='add'>+ */</div><div class='add'>+#define RBIMPL_COMPILER_IS(cc) RBIMPL_COMPILER_IS_ ## cc</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/compiler_is/apple.h"</div><div class='add'>+#include "ruby/internal/compiler_is/clang.h"</div><div class='add'>+#include "ruby/internal/compiler_is/gcc.h"</div><div class='add'>+#include "ruby/internal/compiler_is/intel.h"</div><div class='add'>+#include "ruby/internal/compiler_is/msvc.h"</div><div class='add'>+#include "ruby/internal/compiler_is/sunpro.h"</div><div class='add'>+/* :TODO: Other possible compilers to support:</div><div class='add'>+ *</div><div class='add'>+ * - IBM  XL: recent  XL are  clang-backended  so some  tweaks like  we do  for</div><div class='add'>+ *   Apple's might be needed.</div><div class='add'>+ *</div><div class='add'>+ * - ARM's armclang: ditto, it can be clang-backended.  */</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_COMPILER_IS_H */</div><div class='head'>diff --git a/include/ruby/internal/compiler_is/apple.h b/include/ruby/internal/compiler_is/apple.h<br/>new file mode 100644<br/>index 0000000000..a81f1f2c8f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/compiler_is/apple.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/compiler_is/apple.h</a></div><div class='hunk'>@@ -0,0 +1,40 @@</div><div class='add'>+#ifndef RBIMPL_COMPILER_IS_APPLE_H                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_COMPILER_IS_APPLE_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines RBIMPL_COMPILER_IS_Apple.</div><div class='add'>+ *</div><div class='add'>+ * Apple  ships clang.   Problem is,  its  `__clang_major__` etc.  are not  the</div><div class='add'>+ * upstream LLVM  version, but XCode's.  We  have to think Apple's  is distinct</div><div class='add'>+ * from LLVM's,  when it comes  to compiler  detection business in  this header</div><div class='add'>+ * file.</div><div class='add'>+ */</div><div class='add'>+#if ! defined(__clang__)</div><div class='add'>+# define RBIMPL_COMPILER_IS_Apple 0</div><div class='add'>+</div><div class='add'>+#elif ! defined(__apple_build_version__)</div><div class='add'>+# define RBIMPL_COMPILER_IS_Apple 0</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_COMPILER_IS_Apple 1</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR __clang_major__</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR __clang_minor__</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH __clang_patchlevel__</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_COMPILER_IS_APPLE_H */</div><div class='head'>diff --git a/include/ruby/internal/compiler_is/clang.h b/include/ruby/internal/compiler_is/clang.h<br/>new file mode 100644<br/>index 0000000000..169ff789f6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/compiler_is/clang.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/compiler_is/clang.h</a></div><div class='hunk'>@@ -0,0 +1,37 @@</div><div class='add'>+#ifndef RBIMPL_COMPILER_IS_CLANG_H                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_COMPILER_IS_CLANG_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines RBIMPL_COMPILER_IS_Clang.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_is/apple.h"</div><div class='add'>+</div><div class='add'>+#if ! defined(__clang__)</div><div class='add'>+# define RBIMPL_COMPILER_IS_Clang 0</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(Apple)</div><div class='add'>+# define RBIMPL_COMPILER_IS_Clang 0</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_COMPILER_IS_Clang 1</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR __clang_major__</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR __clang_minor__</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH __clang_patchlevel__</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_COMPILER_IS_CLANG_H */</div><div class='head'>diff --git a/include/ruby/internal/compiler_is/gcc.h b/include/ruby/internal/compiler_is/gcc.h<br/>new file mode 100644<br/>index 0000000000..accc80e9aa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/compiler_is/gcc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/compiler_is/gcc.h</a></div><div class='hunk'>@@ -0,0 +1,45 @@</div><div class='add'>+#ifndef RBIMPL_COMPILER_IS_GCC_H                     /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_COMPILER_IS_GCC_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines RBIMPL_COMPILER_IS_GCC.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_is/apple.h"</div><div class='add'>+#include "ruby/internal/compiler_is/clang.h"</div><div class='add'>+#include "ruby/internal/compiler_is/intel.h"</div><div class='add'>+</div><div class='add'>+#if ! defined(__GNUC__)</div><div class='add'>+# define RBIMPL_COMPILER_IS_GCC 0</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(Apple)</div><div class='add'>+# define RBIMPL_COMPILER_IS_GCC 0</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(Clang)</div><div class='add'>+# define RBIMPL_COMPILER_IS_GCC 0</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(Intel)</div><div class='add'>+# define RBIMPL_COMPILER_IS_GCC 0</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_COMPILER_IS_GCC 1</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR __GNUC__</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR __GNUC_MINOR__</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH __GNUC_PATCHLEVEL__</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_COMPILER_IS_GCC_H */</div><div class='head'>diff --git a/include/ruby/internal/compiler_is/intel.h b/include/ruby/internal/compiler_is/intel.h<br/>new file mode 100644<br/>index 0000000000..377946ace0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/compiler_is/intel.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/compiler_is/intel.h</a></div><div class='hunk'>@@ -0,0 +1,40 @@</div><div class='add'>+#ifndef RBIMPL_COMPILER_IS_INTEL_H                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_COMPILER_IS_INTEL_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines RBIMPL_COMPILER_IS_Intel.</div><div class='add'>+ */</div><div class='add'>+#if ! defined(__INTEL_COMPILER)</div><div class='add'>+# define RBIMPL_COMPILER_IS_Intel 0</div><div class='add'>+</div><div class='add'>+#elif ! defined(__INTEL_COMPILER_UPDATE)</div><div class='add'>+# define RBIMPL_COMPILER_IS_Intel 1</div><div class='add'>+# /* __INTEL_COMPILER = XXYZ */</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR (__INTEL_COMPILER / 100)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR (__INTEL_COMPILER % 100 / 10)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH (__INTEL_COMPILER       % 10)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_COMPILER_IS_Intel 1</div><div class='add'>+# /* __INTEL_COMPILER = XXYZ */</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR (__INTEL_COMPILER / 100)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR (__INTEL_COMPILER % 100 / 10)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH __INTEL_COMPILER_UPDATE</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_COMPILER_IS_INTEL_H */</div><div class='head'>diff --git a/include/ruby/internal/compiler_is/msvc.h b/include/ruby/internal/compiler_is/msvc.h<br/>new file mode 100644<br/>index 0000000000..8a864ea558<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/compiler_is/msvc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/compiler_is/msvc.h</a></div><div class='hunk'>@@ -0,0 +1,56 @@</div><div class='add'>+#ifndef RBIMPL_COMPILER_IS_MSVC_H                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_COMPILER_IS_MSVC_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines RBIMPL_COMPILER_IS_MSVC.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_is/clang.h"</div><div class='add'>+#include "ruby/internal/compiler_is/intel.h"</div><div class='add'>+</div><div class='add'>+#if ! defined(_MSC_VER)</div><div class='add'>+# define RBIMPL_COMPILER_IS_MSVC 0</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(Clang)</div><div class='add'>+# define RBIMPL_COMPILER_IS_MSVC 0</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(Intel)</div><div class='add'>+# define RBIMPL_COMPILER_IS_MSVC 0</div><div class='add'>+</div><div class='add'>+#elif _MSC_VER &gt;= 1400</div><div class='add'>+# define RBIMPL_COMPILER_IS_MSVC 1</div><div class='add'>+# /* _MSC_FULL_VER = XXYYZZZZZ */</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR (_MSC_FULL_VER / 10000000)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR (_MSC_FULL_VER % 10000000 / 100000)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH (_MSC_FULL_VER            % 100000)</div><div class='add'>+</div><div class='add'>+#elif defined(_MSC_FULL_VER)</div><div class='add'>+# define RBIMPL_COMPILER_IS_MSVC 1</div><div class='add'>+# /* _MSC_FULL_VER = XXYYZZZZ */</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR (_MSC_FULL_VER / 1000000)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR (_MSC_FULL_VER % 1000000 / 10000)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH (_MSC_FULL_VER           % 10000)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_COMPILER_IS_MSVC 1</div><div class='add'>+# /* _MSC_VER = XXYY */</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR (_MSC_VER / 100)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR (_MSC_VER % 100)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_COMPILER_IS_MSVC_H */</div><div class='head'>diff --git a/include/ruby/internal/compiler_is/sunpro.h b/include/ruby/internal/compiler_is/sunpro.h<br/>new file mode 100644<br/>index 0000000000..c11c8452e7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/compiler_is/sunpro.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/compiler_is/sunpro.h</a></div><div class='hunk'>@@ -0,0 +1,54 @@</div><div class='add'>+#ifndef RBIMPL_COMPILER_IS_SUNPRO_H                  /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_COMPILER_IS_SUNPRO_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines RBIMPL_COMPILER_IS_SunPro.</div><div class='add'>+ */</div><div class='add'>+#if ! (defined(__SUNPRO_C) || defined(__SUNPRO_CC))</div><div class='add'>+# define RBIMPL_COMPILER_IS_SunPro 0</div><div class='add'>+</div><div class='add'>+#elif defined(__SUNPRO_C) &amp;&amp; __SUNPRO_C &gt;= 0x5100</div><div class='add'>+# define RBIMPL_COMPILER_IS_SunPro 1</div><div class='add'>+# /* __SUNPRO_C = 0xXYYZ */</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR  (__SUNPRO_C &gt;&gt; 12)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR ((__SUNPRO_C &gt;&gt; 8 &amp; 0xF) * 10 + (__SUNPRO_C &gt;&gt; 4 &amp; 0xF))</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH  (__SUNPRO_C      &amp; 0xF)</div><div class='add'>+</div><div class='add'>+#elif defined(__SUNPRO_CC) &amp;&amp; __SUNPRO_CC &gt;= 0x5100</div><div class='add'>+# define RBIMPL_COMPILER_IS_SunPro 1</div><div class='add'>+# /* __SUNPRO_CC = 0xXYYZ */</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR  (__SUNPRO_CC &gt;&gt; 12)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR ((__SUNPRO_CC &gt;&gt; 8 &amp; 0xF) * 10 + (__SUNPRO_CC &gt;&gt; 4 &amp; 0xF))</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH  (__SUNPRO_CC      &amp; 0xF)</div><div class='add'>+</div><div class='add'>+#elif defined(__SUNPRO_C)</div><div class='add'>+# define RBIMPL_COMPILER_IS_SunPro 1</div><div class='add'>+# /* __SUNPRO_C = 0xXYZ */</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR (__SUNPRO_C &gt;&gt; 8)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR (__SUNPRO_C &gt;&gt; 4 &amp; 0xF)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH (__SUNPRO_C      &amp; 0xF)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_COMPILER_IS_SunPro 1</div><div class='add'>+# /* __SUNPRO_CC = 0xXYZ */</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MAJOR (__SUNPRO_CC &gt;&gt; 8)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_MINOR (__SUNPRO_CC &gt;&gt; 4 &amp; 0xF)</div><div class='add'>+# define RBIMPL_COMPILER_VERSION_PATCH (__SUNPRO_CC      &amp; 0xF)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_COMPILER_IS_SUNPRO_H */</div><div class='head'>diff --git a/include/ruby/internal/compiler_since.h b/include/ruby/internal/compiler_since.h<br/>new file mode 100644<br/>index 0000000000..1929032884<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/compiler_since.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/compiler_since.h</a></div><div class='hunk'>@@ -0,0 +1,61 @@</div><div class='add'>+#ifndef RBIMPL_COMPILER_SINCE_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_COMPILER_SINCE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_COMPILER_SINCE.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_is.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @brief   Checks if the compiler is of given brand and is newer than or equal</div><div class='add'>+ *          to the passed version.</div><div class='add'>+ * @param   cc     Compiler brand, like `MSVC`.</div><div class='add'>+ * @param   x      Major version.</div><div class='add'>+ * @param   y      Minor version.</div><div class='add'>+ * @param   z      Patchlevel.</div><div class='add'>+ * @retval  true   cc &gt;= x.y.z.</div><div class='add'>+ * @retval  false  otherwise.</div><div class='add'>+ */</div><div class='add'>+#define RBIMPL_COMPILER_SINCE(cc, x, y, z)     \</div><div class='add'>+     (RBIMPL_COMPILER_IS(cc)                &amp;&amp; \</div><div class='add'>+    ((RBIMPL_COMPILER_VERSION_MAJOR &gt;  (x)) || \</div><div class='add'>+    ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) &amp;&amp; \</div><div class='add'>+    ((RBIMPL_COMPILER_VERSION_MINOR &gt;  (y)) || \</div><div class='add'>+    ((RBIMPL_COMPILER_VERSION_MINOR == (y)) &amp;&amp; \</div><div class='add'>+     (RBIMPL_COMPILER_VERSION_PATCH &gt;= (z)))))))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @brief   Checks if  the compiler  is of  given brand and  is older  than the</div><div class='add'>+ *          passed version.</div><div class='add'>+ * @param   cc     Compiler brand, like `MSVC`.</div><div class='add'>+ * @param   x      Major version.</div><div class='add'>+ * @param   y      Minor version.</div><div class='add'>+ * @param   z      Patchlevel.</div><div class='add'>+ * @retval  true   cc &lt; x.y.z.</div><div class='add'>+ * @retval  false  otherwise.</div><div class='add'>+ */</div><div class='add'>+#define RBIMPL_COMPILER_BEFORE(cc, x, y, z)    \</div><div class='add'>+     (RBIMPL_COMPILER_IS(cc)                &amp;&amp; \</div><div class='add'>+    ((RBIMPL_COMPILER_VERSION_MAJOR &lt;  (x)) || \</div><div class='add'>+    ((RBIMPL_COMPILER_VERSION_MAJOR == (x)) &amp;&amp; \</div><div class='add'>+    ((RBIMPL_COMPILER_VERSION_MINOR &lt;  (y)) || \</div><div class='add'>+    ((RBIMPL_COMPILER_VERSION_MINOR == (y)) &amp;&amp; \</div><div class='add'>+     (RBIMPL_COMPILER_VERSION_PATCH &lt;  (z)))))))</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_COMPILER_SINCE_H */</div><div class='head'>diff --git a/include/ruby/internal/config.h b/include/ruby/internal/config.h<br/>new file mode 100644<br/>index 0000000000..aa63376d7c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/config.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/config.h</a></div><div class='hunk'>@@ -0,0 +1,155 @@</div><div class='add'>+#ifndef RBIMPL_CONFIG_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_CONFIG_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Thin wrapper to ruby/config.h</div><div class='add'>+ */</div><div class='add'>+#include "ruby/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef RUBY_EXTCONF_H</div><div class='add'>+# include RUBY_EXTCONF_H</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+</div><div class='add'>+#undef  HAVE_PROTOTYPES</div><div class='add'>+#define HAVE_PROTOTYPES 1</div><div class='add'>+</div><div class='add'>+#undef  HAVE_STDARG_PROTOTYPES</div><div class='add'>+#define HAVE_STDARG_PROTOTYPES 1</div><div class='add'>+</div><div class='add'>+#undef  TOKEN_PASTE</div><div class='add'>+#define TOKEN_PASTE(x,y) x##y</div><div class='add'>+</div><div class='add'>+#if defined(__cplusplus)</div><div class='add'>+#/* __builtin_choose_expr and __builtin_types_compatible aren't available</div><div class='add'>+# * on C++.  See https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html */</div><div class='add'>+# undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P</div><div class='add'>+# undef HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P</div><div class='add'>+</div><div class='add'>+/* HAVE_VA_ARGS_MACRO is for C.  C++ situations might be different. */</div><div class='add'>+# undef HAVE_VA_ARGS_MACRO</div><div class='add'>+# if __cplusplus &gt;= 201103L</div><div class='add'>+#  define HAVE_VA_ARGS_MACRO</div><div class='add'>+# elif defined(__GXX_EXPERIMENTAL_CXX0X__) &amp;&amp; __GXX_EXPERIMENTAL_CXX0X__</div><div class='add'>+#  define HAVE_VA_ARGS_MACRO</div><div class='add'>+# elif defined(__INTEL_CXX11_MODE__)</div><div class='add'>+#  define HAVE_VA_ARGS_MACRO</div><div class='add'>+# elif RBIMPL_COMPILER_SINCE(MSVC, 16, 0, 0)</div><div class='add'>+#  define HAVE_VA_ARGS_MACRO</div><div class='add'>+# else</div><div class='add'>+#  /* NG, not known. */</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if RBIMPL_COMPILER_BEFORE(GCC, 4, 9, 0)</div><div class='add'>+# /* See https://bugs.ruby-lang.org/issues/14221 */</div><div class='add'>+# undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if RBIMPL_COMPILER_BEFORE(GCC, 5, 0, 0)</div><div class='add'>+# /* GCC 4.9.2 reportedly has this feature  and is broken.  The function is not</div><div class='add'>+#  * officially documented below.  Seems we should not use it.</div><div class='add'>+#  * https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Other-Builtins.html */</div><div class='add'>+# undef HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(__SUNPRO_CC)</div><div class='add'>+# /* Oracle  Developer Studio  12.5: GCC compatibility guide  says it  supports</div><div class='add'>+#  * statement expressions.   But to our  knowledge they support  the extension</div><div class='add'>+#  * only for C and not for C++.  Prove  me wrong.  Am happy to support them if</div><div class='add'>+#  * there is a way. */</div><div class='add'>+# undef HAVE_STMT_AND_DECL_IN_EXPR</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef STRINGIZE0</div><div class='add'>+# define STRINGIZE(expr) STRINGIZE0(expr)</div><div class='add'>+# define STRINGIZE0(expr) #expr</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef AC_APPLE_UNIVERSAL_BUILD</div><div class='add'>+# undef WORDS_BIGENDIAN</div><div class='add'>+# ifdef __BIG_ENDIAN__</div><div class='add'>+#  define WORDS_BIGENDIAN</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef DLEXT_MAXLEN</div><div class='add'>+# define DLEXT_MAXLEN 4</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_PLATFORM</div><div class='add'>+# define RUBY_PLATFORM "unknown-unknown"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef UNALIGNED_WORD_ACCESS</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif defined(__i386)</div><div class='add'>+# define UNALIGNED_WORD_ACCESS 1</div><div class='add'>+#elif defined(__i386__)</div><div class='add'>+# define UNALIGNED_WORD_ACCESS 1</div><div class='add'>+#elif defined(_M_IX86)</div><div class='add'>+# define UNALIGNED_WORD_ACCESS 1</div><div class='add'>+#elif defined(__x86_64)</div><div class='add'>+# define UNALIGNED_WORD_ACCESS 1</div><div class='add'>+#elif defined(__x86_64__)</div><div class='add'>+# define UNALIGNED_WORD_ACCESS 1</div><div class='add'>+#elif defined(_M_AMD64)</div><div class='add'>+# define UNALIGNED_WORD_ACCESS 1</div><div class='add'>+#elif defined(__powerpc64__)</div><div class='add'>+# define UNALIGNED_WORD_ACCESS 1</div><div class='add'>+#elif defined(__POWERPC__) // __POWERPC__ is defined for ppc and ppc64 on Darwin</div><div class='add'>+# define UNALIGNED_WORD_ACCESS 1</div><div class='add'>+#elif defined(__aarch64__)</div><div class='add'>+# define UNALIGNED_WORD_ACCESS 1</div><div class='add'>+#elif defined(__mc68020__)</div><div class='add'>+# define UNALIGNED_WORD_ACCESS 1</div><div class='add'>+#else</div><div class='add'>+# define UNALIGNED_WORD_ACCESS 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* Detection of __VA_OPT__ */</div><div class='add'>+#if ! defined(HAVE_VA_ARGS_MACRO)</div><div class='add'>+# undef HAVE___VA_OPT__</div><div class='add'>+</div><div class='add'>+#elif defined(__cplusplus)</div><div class='add'>+# if __cplusplus &gt; 201703L</div><div class='add'>+#  define HAVE___VA_OPT__</div><div class='add'>+# else</div><div class='add'>+#  undef HAVE___VA_OPT__</div><div class='add'>+# endif</div><div class='add'>+#else</div><div class='add'>+# /* Idea taken from: https://stackoverflow.com/a/48045656 */</div><div class='add'>+# define RBIMPL_TEST3(q, w, e, ...) e</div><div class='add'>+# define RBIMPL_TEST2(...)          RBIMPL_TEST3(__VA_OPT__(,),1,0,0)</div><div class='add'>+# define RBIMPL_TEST1()             RBIMPL_TEST2("ruby")</div><div class='add'>+# if RBIMPL_TEST1()</div><div class='add'>+#  define HAVE___VA_OPT__</div><div class='add'>+# else</div><div class='add'>+#  undef HAVE___VA_OPT__</div><div class='add'>+# endif</div><div class='add'>+# undef RBIMPL_TEST1</div><div class='add'>+# undef RBIMPL_TEST2</div><div class='add'>+# undef RBIMPL_TEST3</div><div class='add'>+#endif /* HAVE_VA_ARGS_MACRO */</div><div class='add'>+</div><div class='add'>+#ifndef USE_RVARGC</div><div class='add'>+# define USE_RVARGC 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_CONFIG_H */</div><div class='head'>diff --git a/include/ruby/internal/constant_p.h b/include/ruby/internal/constant_p.h<br/>new file mode 100644<br/>index 0000000000..92d69cb972<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/constant_p.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/constant_p.h</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+#ifndef RBIMPL_CONSTANT_P_H                          /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_CONSTANT_P_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_CONSTANT_P.</div><div class='add'>+ *</div><div class='add'>+ * Note that __builtin_constant_p can be applicable inside of inline functions,</div><div class='add'>+ * according to GCC manual.  Clang lacks that feature, though.</div><div class='add'>+ *</div><div class='add'>+ * @see https://bugs.llvm.org/show_bug.cgi?id=4898</div><div class='add'>+ * @see https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/builtin.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__builtin_constant_p` */</div><div class='add'>+#if RBIMPL_HAS_BUILTIN(__builtin_constant_p)</div><div class='add'>+# define RBIMPL_CONSTANT_P(expr) __builtin_constant_p(expr)</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_CONSTANT_P(expr) 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_CONSTANT_P_H */</div><div class='head'>diff --git a/include/ruby/internal/core.h b/include/ruby/internal/core.h<br/>new file mode 100644<br/>index 0000000000..3f4561c6a6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core.h</a></div><div class='hunk'>@@ -0,0 +1,35 @@</div><div class='add'>+#ifndef RBIMPL_CORE_H                                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_CORE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Core data structures, definitions and manipulations.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/core/rarray.h"</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/core/rbignum.h"</div><div class='add'>+#include "ruby/internal/core/rclass.h"</div><div class='add'>+#include "ruby/internal/core/rdata.h"</div><div class='add'>+#include "ruby/internal/core/rfile.h"</div><div class='add'>+#include "ruby/internal/core/rhash.h"</div><div class='add'>+#include "ruby/internal/core/robject.h"</div><div class='add'>+#include "ruby/internal/core/rregexp.h"</div><div class='add'>+#include "ruby/internal/core/rstring.h"</div><div class='add'>+#include "ruby/internal/core/rstruct.h"</div><div class='add'>+#include "ruby/internal/core/rtypeddata.h"</div><div class='add'>+#endif /* RBIMPL_CORE_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rarray.h b/include/ruby/internal/core/rarray.h<br/>new file mode 100644<br/>index 0000000000..c3bb40be25<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rarray.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rarray.h</a></div><div class='hunk'>@@ -0,0 +1,585 @@</div><div class='add'>+#ifndef RBIMPL_RARRAY_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RARRAY_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines struct ::RArray.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/arithmetic/long.h"</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/constexpr.h"</div><div class='add'>+#include "ruby/internal/attr/maybe_unused.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/fl_type.h"</div><div class='add'>+#include "ruby/internal/rgengc.h"</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ * @warning  Do not touch this macro.</div><div class='add'>+ * @warning  It is an implementation detail.</div><div class='add'>+ * @warning  The  value of  this  macro  must match  for  ruby  itself and  all</div><div class='add'>+ *           extension  libraries, otherwise  serious  memory corruption  shall</div><div class='add'>+ *           occur.</div><div class='add'>+ */</div><div class='add'>+#ifndef USE_TRANSIENT_HEAP</div><div class='add'>+# define USE_TRANSIENT_HEAP 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient casting macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  An object, which is in fact an ::RArray.</div><div class='add'>+ * @return  The passed object casted to ::RArray.</div><div class='add'>+ */</div><div class='add'>+#define RARRAY(obj)            RBIMPL_CAST((struct RArray *)(obj))</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RARRAY_EMBED_FLAG      RARRAY_EMBED_FLAG</div><div class='add'>+#define RARRAY_EMBED_LEN_MASK  RARRAY_EMBED_LEN_MASK</div><div class='add'>+#define RARRAY_EMBED_LEN_MAX   RARRAY_EMBED_LEN_MAX</div><div class='add'>+#define RARRAY_EMBED_LEN_SHIFT RARRAY_EMBED_LEN_SHIFT</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+# define RARRAY_TRANSIENT_FLAG RARRAY_TRANSIENT_FLAG</div><div class='add'>+#else</div><div class='add'>+# define RARRAY_TRANSIENT_FLAG 0</div><div class='add'>+#endif</div><div class='add'>+/** @endcond */</div><div class='add'>+#define RARRAY_LEN                 rb_array_len                 /**&lt; @alias{rb_array_len} */</div><div class='add'>+#define RARRAY_CONST_PTR           rb_array_const_ptr           /**&lt; @alias{rb_array_const_ptr} */</div><div class='add'>+#define RARRAY_CONST_PTR_TRANSIENT rb_array_const_ptr_transient /**&lt; @alias{rb_array_const_ptr_transient} */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#if defined(__fcc__) || defined(__fcc_version) || \</div><div class='add'>+    defined(__FCC__) || defined(__FCC_VERSION)</div><div class='add'>+/* workaround for old version of Fujitsu C Compiler (fcc) */</div><div class='add'>+# define FIX_CONST_VALUE_PTR(x) ((const VALUE *)(x))</div><div class='add'>+#else</div><div class='add'>+# define FIX_CONST_VALUE_PTR(x) (x)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define RARRAY_EMBED_LEN   RARRAY_EMBED_LEN</div><div class='add'>+#define RARRAY_LENINT      RARRAY_LENINT</div><div class='add'>+#define RARRAY_TRANSIENT_P RARRAY_TRANSIENT_P</div><div class='add'>+#define RARRAY_ASET        RARRAY_ASET</div><div class='add'>+#define RARRAY_PTR         RARRAY_PTR</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Bits that you can set to ::RBasic::flags.</div><div class='add'>+ *</div><div class='add'>+ * @warning  These enums are not the only bits we use for arrays.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Unlike  strings, flag  usages for  arrays  are scattered  across the  entire</div><div class='add'>+ * source codes.  @shyouhei doesn't know the complete list.  But what is listed</div><div class='add'>+ * here is at least incomplete.</div><div class='add'>+ */</div><div class='add'>+enum ruby_rarray_flags {</div><div class='add'>+    /**</div><div class='add'>+     * This flag  has something to do  with memory footprint.  If  the array is</div><div class='add'>+     * "small"  enough, ruby  tries to  be creative  to abuse  padding bits  of</div><div class='add'>+     * struct  ::RArray  for storing  its  contents.   This flag  denotes  that</div><div class='add'>+     * situation.</div><div class='add'>+     *</div><div class='add'>+     * @warning  This  bit has  to be  considered read-only.   Setting/clearing</div><div class='add'>+     *           this  bit without  corresponding fix  up must  cause immediate</div><div class='add'>+     *           SEGV.    Also,  internal   structures  of   an  array   change</div><div class='add'>+     *           dynamically  and  transparently  throughout of  its  lifetime.</div><div class='add'>+     *           Don't assume it being persistent.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * 3rd parties must  not be aware that  there even is more than  one way to</div><div class='add'>+     * store array elements.  It was a bad idea to expose this to them.</div><div class='add'>+     */</div><div class='add'>+    RARRAY_EMBED_FLAG      = RUBY_FL_USER1,</div><div class='add'>+</div><div class='add'>+    /* RUBY_FL_USER2 is for ELTS_SHARED */</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * When an array employs embedded strategy (see ::RARRAY_EMBED_FLAG), these</div><div class='add'>+     * bits  are used  to store  the number  of elements  actually filled  into</div><div class='add'>+     * ::RArray::ary.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * 3rd parties must  not be aware that  there even is more than  one way to</div><div class='add'>+     * store array elements.  It was a bad idea to expose this to them.</div><div class='add'>+     */</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    RARRAY_EMBED_LEN_MASK  = RUBY_FL_USER9 | RUBY_FL_USER8 | RUBY_FL_USER7 | RUBY_FL_USER6 |</div><div class='add'>+                                 RUBY_FL_USER5 | RUBY_FL_USER4 | RUBY_FL_USER3</div><div class='add'>+#else</div><div class='add'>+    RARRAY_EMBED_LEN_MASK  = RUBY_FL_USER4 | RUBY_FL_USER3</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    ,</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag has something to do with an array's "transiency".  A transient</div><div class='add'>+     * array is an  array of young generation (of generational  GC), who stores</div><div class='add'>+     * its elements inside  of dedicated memory pages called  a transient heap.</div><div class='add'>+     * Not  every  young  generation  share  that  storage  scheme,  but  elder</div><div class='add'>+     * generations must no join.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * 3rd parties must  not be aware that  there even is more than  one way to</div><div class='add'>+     * store array elements.  It was a bad idea to expose this to them.</div><div class='add'>+     */</div><div class='add'>+    RARRAY_TRANSIENT_FLAG  = RUBY_FL_USER13</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is an enum because GDB wants it (rather than a macro).  People need not</div><div class='add'>+ * bother.</div><div class='add'>+ */</div><div class='add'>+enum ruby_rarray_consts {</div><div class='add'>+    /** Where ::RARRAY_EMBED_LEN_MASK resides. */</div><div class='add'>+    RARRAY_EMBED_LEN_SHIFT = RUBY_FL_USHIFT + 3</div><div class='add'>+</div><div class='add'>+#if !USE_RVARGC</div><div class='add'>+    ,</div><div class='add'>+</div><div class='add'>+    /** Max possible number elements that can be embedded. */</div><div class='add'>+    RARRAY_EMBED_LEN_MAX   = RBIMPL_EMBED_LEN_MAX_OF(VALUE)</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/** Ruby's array. */</div><div class='add'>+struct RArray {</div><div class='add'>+</div><div class='add'>+    /** Basic part, including flags and class. */</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+</div><div class='add'>+    /** Array's specific fields. */</div><div class='add'>+    union {</div><div class='add'>+</div><div class='add'>+        /**</div><div class='add'>+         * Arrays  that  use separated  memory  region  for elements  use  this</div><div class='add'>+         * pattern.</div><div class='add'>+         */</div><div class='add'>+        struct {</div><div class='add'>+</div><div class='add'>+            /** Number of elements of the array. */</div><div class='add'>+            long len;</div><div class='add'>+</div><div class='add'>+            /** Auxiliary info. */</div><div class='add'>+            union {</div><div class='add'>+</div><div class='add'>+                /**</div><div class='add'>+                 * Capacity of `*ptr`.  A continuous  memory region of at least</div><div class='add'>+                 * `capa` elements is expected to exist at `*ptr`.  This can be</div><div class='add'>+                 * bigger than `len`.</div><div class='add'>+                 */</div><div class='add'>+                long capa;</div><div class='add'>+</div><div class='add'>+                /**</div><div class='add'>+                 * Parent  of  the  array.   Nowadays arrays  can  share  their</div><div class='add'>+                 * backend  memory regions  each  other, constructing  gigantic</div><div class='add'>+                 * nest  of objects.   This situation  is called  "shared", and</div><div class='add'>+                 * this is the field to control such properties.</div><div class='add'>+                 */</div><div class='add'>+#if defined(__clang__)      /* &lt;- clang++ is sane */ || \</div><div class='add'>+    !defined(__cplusplus)   /* &lt;- C99 is sane */     || \</div><div class='add'>+    (__cplusplus &gt; 199711L) /* &lt;- C++11 is sane */</div><div class='add'>+                const</div><div class='add'>+#endif</div><div class='add'>+                VALUE shared_root;</div><div class='add'>+            } aux;</div><div class='add'>+</div><div class='add'>+            /**</div><div class='add'>+             * Pointer to the C array that holds the elements of the array.  In</div><div class='add'>+             * the old days  each array had dedicated memory  regions.  That is</div><div class='add'>+             * no  longer  true today,  but  there  still  are arrays  of  such</div><div class='add'>+             * properties.  This field could be used to point such things.</div><div class='add'>+             */</div><div class='add'>+            const VALUE *ptr;</div><div class='add'>+        } heap;</div><div class='add'>+</div><div class='add'>+        /**</div><div class='add'>+         * Embedded elements.  When an array is short enough, it uses this area</div><div class='add'>+         * to store its elements.  In this  case the length is encoded into the</div><div class='add'>+         * flags.</div><div class='add'>+         */</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+        /* This is a length 1 array because:</div><div class='add'>+         *   1. GCC has a bug that does not optimize C flexible array members</div><div class='add'>+         *      (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102452)</div><div class='add'>+         *   2. Zero length arrays are not supported by all compilers</div><div class='add'>+         */</div><div class='add'>+        const VALUE ary[1];</div><div class='add'>+#else</div><div class='add'>+        const VALUE ary[RARRAY_EMBED_LEN_MAX];</div><div class='add'>+#endif</div><div class='add'>+    } as;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Declares  a  section of  code  where  raw pointers  are  used.   This is  an</div><div class='add'>+ * implementation detail of #RARRAY_PTR_USE.  People don't use it directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary  An object of ::RArray.</div><div class='add'>+ * @return     `ary`'s backend C array.</div><div class='add'>+ */</div><div class='add'>+VALUE *rb_ary_ptr_use_start(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Declares an  end of  a section  formerly started  by rb_ary_ptr_use_start().</div><div class='add'>+ * This is  an implementation detail  of #RARRAY_PTR_USE.  People don't  use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  a  An object of ::RArray.</div><div class='add'>+ */</div><div class='add'>+void rb_ary_ptr_use_end(VALUE a);</div><div class='add'>+</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+/**</div><div class='add'>+ * Destructively converts an array of transient backend into ordinal one.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  a  An object of ::RArray.</div><div class='add'>+ * @pre         `a` must be a transient array.</div><div class='add'>+ * @post        `a` gets out of transient heap, destructively.</div><div class='add'>+ */</div><div class='add'>+void rb_ary_detransient(VALUE a);</div><div class='add'>+#endif</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the length of the array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary  Array in question.</div><div class='add'>+ * @return     Its number of elements.</div><div class='add'>+ * @pre        `ary`  must  be  an  instance  of ::RArray,  and  must  has  its</div><div class='add'>+ *             ::RARRAY_EMBED_FLAG flag set.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This was a macro  before.  It was inevitable to be  public, since macros are</div><div class='add'>+ * global constructs.   But should it be  forever?  Now that it  is a function,</div><div class='add'>+ * @shyouhei thinks  it could  just be  eliminated, hidden  into implementation</div><div class='add'>+ * details.</div><div class='add'>+ */</div><div class='add'>+static inline long</div><div class='add'>+RARRAY_EMBED_LEN(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY);</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FL_ANY_RAW(ary, RARRAY_EMBED_FLAG));</div><div class='add'>+</div><div class='add'>+    VALUE f = RBASIC(ary)-&gt;flags;</div><div class='add'>+    f &amp;= RARRAY_EMBED_LEN_MASK;</div><div class='add'>+    f &gt;&gt;= RARRAY_EMBED_LEN_SHIFT;</div><div class='add'>+    return RBIMPL_CAST((long)f);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+/**</div><div class='add'>+ * Queries the length of the array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  a  Array in question.</div><div class='add'>+ * @return     Its number of elements.</div><div class='add'>+ * @pre        `a` must be an instance of ::RArray.</div><div class='add'>+ */</div><div class='add'>+static inline long</div><div class='add'>+rb_array_len(VALUE a)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY);</div><div class='add'>+</div><div class='add'>+    if (RB_FL_ANY_RAW(a, RARRAY_EMBED_FLAG)) {</div><div class='add'>+        return RARRAY_EMBED_LEN(a);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RARRAY(a)-&gt;as.heap.len;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_array_len(), except it differs for the return type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary             Array in question.</div><div class='add'>+ * @exception  rb_eRangeError  Too long.</div><div class='add'>+ * @return     Its number of elements.</div><div class='add'>+ * @pre        `ary` must be an instance of ::RArray.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This API seems redundant but has actual usages.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+RARRAY_LENINT(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return rb_long2int(RARRAY_LEN(ary));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the array is a transient array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary    Array in question.</div><div class='add'>+ * @retval     true   Yes it is.</div><div class='add'>+ * @retval     false  No it isn't.</div><div class='add'>+ * @pre        `ary` must be an instance of ::RArray.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei  doesn't  understand the  benefit  of  this function  called  from</div><div class='add'>+ * extension libraries.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RARRAY_TRANSIENT_P(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY);</div><div class='add'>+</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    return RB_FL_ANY_RAW(ary, RARRAY_TRANSIENT_FLAG);</div><div class='add'>+#else</div><div class='add'>+    return false;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is  an implementation  detail of  RARRAY_PTR().  People  do not  use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  a  An object of ::RArray.</div><div class='add'>+ * @return     Its backend storage.</div><div class='add'>+ */</div><div class='add'>+static inline const VALUE *</div><div class='add'>+rb_array_const_ptr_transient(VALUE a)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY);</div><div class='add'>+</div><div class='add'>+    if (RB_FL_ANY_RAW(a, RARRAY_EMBED_FLAG)) {</div><div class='add'>+        return FIX_CONST_VALUE_PTR(RARRAY(a)-&gt;as.ary);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return FIX_CONST_VALUE_PTR(RARRAY(a)-&gt;as.heap.ptr);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if ! USE_TRANSIENT_HEAP</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+#endif</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is  an implementation  detail of  RARRAY_PTR().  People  do not  use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  a  An object of ::RArray.</div><div class='add'>+ * @return     Its backend storage.</div><div class='add'>+ * @post       `a` is not a transient array.</div><div class='add'>+ */</div><div class='add'>+static inline const VALUE *</div><div class='add'>+rb_array_const_ptr(VALUE a)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY);</div><div class='add'>+</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    if (RARRAY_TRANSIENT_P(a)) {</div><div class='add'>+        rb_ary_detransient(a);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return rb_array_const_ptr_transient(a);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implementation detail of #RARRAY_PTR_USE.  People do  not use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  a                An object of ::RArray.</div><div class='add'>+ * @param[in]  allow_transient  Whether `a` can be transient or not.</div><div class='add'>+ * @return     Its backend storage.</div><div class='add'>+ * @post       `a` is not a transient array unless `allow_transient`.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE *</div><div class='add'>+rb_array_ptr_use_start(VALUE a,</div><div class='add'>+                       RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+                       int allow_transient)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY);</div><div class='add'>+</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    if (!allow_transient) {</div><div class='add'>+        if (RARRAY_TRANSIENT_P(a)) {</div><div class='add'>+            rb_ary_detransient(a);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return rb_ary_ptr_use_start(a);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implementation detail of #RARRAY_PTR_USE.  People do  not use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  a                An object of ::RArray.</div><div class='add'>+ * @param[in]  allow_transient  Whether `a` can be transient or not.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rb_array_ptr_use_end(VALUE a,</div><div class='add'>+                     RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+                     int allow_transient)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(a, RUBY_T_ARRAY);</div><div class='add'>+    rb_ary_ptr_use_end(a);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implementation detail of #RARRAY_PTR_USE.  People do  not use it</div><div class='add'>+ * directly.</div><div class='add'>+ */</div><div class='add'>+#define RBIMPL_RARRAY_STMT(flag, ary, var, expr) do {        \</div><div class='add'>+    RBIMPL_ASSERT_TYPE((ary), RUBY_T_ARRAY);                 \</div><div class='add'>+    const VALUE rbimpl_ary = (ary);                          \</div><div class='add'>+    VALUE *var = rb_array_ptr_use_start(rbimpl_ary, (flag)); \</div><div class='add'>+    expr;                                                   \</div><div class='add'>+    rb_array_ptr_use_end(rbimpl_ary, (flag));                \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implementation detail of #RARRAY_PTR_USE.  People do  not use it</div><div class='add'>+ * directly.</div><div class='add'>+ */</div><div class='add'>+#define RARRAY_PTR_USE_END(a) rb_array_ptr_use_end(a, 0)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Declares a section of code where raw pointers are used.  In case you need to</div><div class='add'>+ * touch the raw C array instead of  polite CAPIs, then that operation shall be</div><div class='add'>+ * wrapped using this macro.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * const auto ary = rb_eval_string("[...]");</div><div class='add'>+ * const auto len = RARRAY_LENINT(ary);</div><div class='add'>+ * const auto symwrite = rb_intern("write");</div><div class='add'>+ *</div><div class='add'>+ * RARRAY_PTR_USE(ary, ptr, {</div><div class='add'>+ *     rb_funcallv(rb_stdout, symwrite, len, ptr);</div><div class='add'>+ * });</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param  ary       An object of ::RArray.</div><div class='add'>+ * @param  ptr_name  A variable name which points the C array in `expr`.</div><div class='add'>+ * @param  expr      The expression that touches `ptr_name`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * For  historical reasons  use  of  this macro  is  not  enforced.  There  are</div><div class='add'>+ * extension libraries in the wild which call RARRAY_PTR() without it.  We want</div><div class='add'>+ * them use it...  Maybe some transition path can be implemented later.</div><div class='add'>+ */</div><div class='add'>+#define RARRAY_PTR_USE(ary, ptr_name, expr)     \</div><div class='add'>+    RBIMPL_RARRAY_STMT(0, ary, ptr_name, expr)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RARRAY_PTR_USE, except the pointer can be a transient one.</div><div class='add'>+ *</div><div class='add'>+ * @param  ary       An object of ::RArray.</div><div class='add'>+ * @param  ptr_name  A variable name which points the C array in `expr`.</div><div class='add'>+ * @param  expr      The expression that touches `ptr_name`.</div><div class='add'>+ */</div><div class='add'>+#define RARRAY_PTR_USE_TRANSIENT(ary, ptr_name, expr)   \</div><div class='add'>+    RBIMPL_RARRAY_STMT(1, ary, ptr_name, expr)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Wild  use of  a  C  pointer.  This  function  accesses  the backend  storage</div><div class='add'>+ * directly.   This is  slower  than  #RARRAY_PTR_USE_TRANSIENT.  It  exercises</div><div class='add'>+ * extra manoeuvres  to protect our generational  GC.  Use of this  function is</div><div class='add'>+ * considered archaic.  Use a modern way instead.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary  An object of ::RArray.</div><div class='add'>+ * @return     The backend C array.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * That said...  there are  extension libraries  in the wild  who uses  it.  We</div><div class='add'>+ * cannot but continue supporting.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE *</div><div class='add'>+RARRAY_PTR(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY);</div><div class='add'>+</div><div class='add'>+    VALUE tmp = RB_OBJ_WB_UNPROTECT_FOR(ARRAY, ary);</div><div class='add'>+    return RBIMPL_CAST((VALUE *)RARRAY_CONST_PTR(tmp));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Assigns an object in an array.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary  Destination array object.</div><div class='add'>+ * @param[in]   i    Index of `ary`.</div><div class='add'>+ * @param[in]   v    Arbitrary ruby object.</div><div class='add'>+ * @pre         `ary` must be an instance of ::RArray.</div><div class='add'>+ * @pre         `ary`'s length must be longer than or equal to `i`.</div><div class='add'>+ * @pre         `i` must be greater than or equal to zero.</div><div class='add'>+ * @post        `ary`'s `i`th element is set to `v`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RARRAY_ASET(VALUE ary, long i, VALUE v)</div><div class='add'>+{</div><div class='add'>+    RARRAY_PTR_USE_TRANSIENT(ary, ptr,</div><div class='add'>+        RB_OBJ_WRITE(ary, &amp;ptr[i], v));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated</div><div class='add'>+ *</div><div class='add'>+ * :FIXME: we want to convert RARRAY_AREF into an inline function (to add rooms</div><div class='add'>+ * for more sanity checks).  However there were situations where the address of</div><div class='add'>+ * this macro is taken i.e. &amp;RARRAY_AREF(...).  They cannot be possible if this</div><div class='add'>+ * is not a  macro.  Such usages are abuse, and  we eliminated them internally.</div><div class='add'>+ * However we are afraid  of similar things to remain in  the wild.  This macro</div><div class='add'>+ * remains as  it is due to  that.  If we could  warn such usages we  can set a</div><div class='add'>+ * transition path, but currently no way is found to do so.</div><div class='add'>+ */</div><div class='add'>+#define RARRAY_AREF(a, i) RARRAY_CONST_PTR_TRANSIENT(a)[i]</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_RARRAY_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rbasic.h b/include/ruby/internal/core/rbasic.h<br/>new file mode 100644<br/>index 0000000000..4617f743a7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rbasic.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rbasic.h</a></div><div class='hunk'>@@ -0,0 +1,158 @@</div><div class='add'>+#ifndef RBIMPL_RBASIC_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RBASIC_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines struct ::RBasic.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/constexpr.h"</div><div class='add'>+#include "ruby/internal/attr/forceinline.h"</div><div class='add'>+#include "ruby/internal/attr/noalias.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/special_consts.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient casting macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  Arbitrary Ruby object.</div><div class='add'>+ * @return  The passed object casted to ::RBasic.</div><div class='add'>+ */</div><div class='add'>+#define RBASIC(obj)                 RBIMPL_CAST((struct RBasic *)(obj))</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RBASIC_CLASS                RBASIC_CLASS</div><div class='add'>+#define RBIMPL_RVALUE_EMBED_LEN_MAX 3</div><div class='add'>+#define RVALUE_EMBED_LEN_MAX        RVALUE_EMBED_LEN_MAX</div><div class='add'>+#define RBIMPL_EMBED_LEN_MAX_OF(T) \</div><div class='add'>+    RBIMPL_CAST((int)(sizeof(VALUE[RBIMPL_RVALUE_EMBED_LEN_MAX]) / (sizeof(T))))</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is an enum because GDB wants it (rather than a macro).  People need not</div><div class='add'>+ * bother.</div><div class='add'>+ */</div><div class='add'>+enum ruby_rvalue_flags {</div><div class='add'>+    /** Max possible number of objects that can be embedded. */</div><div class='add'>+    RVALUE_EMBED_LEN_MAX = RBIMPL_RVALUE_EMBED_LEN_MAX</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Ruby's object's,  base components.  Every  single ruby objects have  them in</div><div class='add'>+ * common.</div><div class='add'>+ */</div><div class='add'>+struct</div><div class='add'>+RUBY_ALIGNAS(SIZEOF_VALUE)</div><div class='add'>+RBasic {</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Per-object  flags.  Each  ruby  objects have  their own  characteristics</div><div class='add'>+     * apart from their  classes.  For instance whether an object  is frozen or</div><div class='add'>+     * not is not  controlled by its class.  This is  where such properties are</div><div class='add'>+     * stored.</div><div class='add'>+     *</div><div class='add'>+     * @see enum ::ruby_fl_type</div><div class='add'>+     *</div><div class='add'>+     * @note  This is ::VALUE rather than  an enum for alignment purpose.  Back</div><div class='add'>+     *        in the 1990s there were no such thing like `_Alignas` in C.</div><div class='add'>+     */</div><div class='add'>+    VALUE flags;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Class of an object.  Every object has its class.  Also, everything is an</div><div class='add'>+     * object  in Ruby.   This means  classes are  also objects.   Classes have</div><div class='add'>+     * their own classes,  classes of classes have their classes,  too ...  and</div><div class='add'>+     * it recursively continues forever.</div><div class='add'>+     *</div><div class='add'>+     * Also note the `const` qualifier.  In  ruby an object cannot "change" its</div><div class='add'>+     * class.</div><div class='add'>+     */</div><div class='add'>+    const VALUE klass;</div><div class='add'>+</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+  public:</div><div class='add'>+    RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+    RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+    RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+    RBIMPL_ATTR_NOALIAS()</div><div class='add'>+    /**</div><div class='add'>+     * We need to define this explicit constructor because the field `klass` is</div><div class='add'>+     * const-qualified above,  which effectively  defines the  implicit default</div><div class='add'>+     * constructor as "deleted"  (as of C++11) --  No way but to  define one by</div><div class='add'>+     * ourselves.</div><div class='add'>+     */</div><div class='add'>+    RBasic() :</div><div class='add'>+        flags(RBIMPL_VALUE_NULL),</div><div class='add'>+        klass(RBIMPL_VALUE_NULL)</div><div class='add'>+    {</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/**</div><div class='add'>+ * Make the object invisible from Ruby code.</div><div class='add'>+ *</div><div class='add'>+ * It is  useful to let  Ruby's GC manage your  internal data structure  -- The</div><div class='add'>+ * object keeps being managed by GC, but `ObjectSpace.each_object` never yields</div><div class='add'>+ * the object.</div><div class='add'>+ *</div><div class='add'>+ * Note that the object also lose a way to call a method on it.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj  A Ruby object.</div><div class='add'>+ * @return      The passed object.</div><div class='add'>+ * @post        The object is destructively modified to be invisible.</div><div class='add'>+ * @see         rb_obj_reveal</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_hide(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Make a hidden object visible again.</div><div class='add'>+ *</div><div class='add'>+ * It is  the caller's  responsibility to  pass the  right `klass`  which `obj`</div><div class='add'>+ * originally used to belong to.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj    A Ruby object.</div><div class='add'>+ * @param[in]   klass  Class of `obj`.</div><div class='add'>+ * @return      Passed `obj`.</div><div class='add'>+ * @pre         `obj` was previously hidden.</div><div class='add'>+ * @post        `obj`'s class is `klass`.</div><div class='add'>+ * @see         rb_obj_hide</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_reveal(VALUE obj, VALUE klass); /* do not use this API to change klass information */</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the class of an object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  An object.</div><div class='add'>+ * @return     Its class.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+RBASIC_CLASS(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(! RB_SPECIAL_CONST_P(obj));</div><div class='add'>+    return RBASIC(obj)-&gt;klass;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_RBASIC_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rbignum.h b/include/ruby/internal/core/rbignum.h<br/>new file mode 100644<br/>index 0000000000..1d31743235<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rbignum.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rbignum.h</a></div><div class='hunk'>@@ -0,0 +1,80 @@</div><div class='add'>+#ifndef RBIMPL_RBIGNUM_H                             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RBIGNUM_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Routines to manipulate struct RBignum.</div><div class='add'>+ * @note       The struct RBignum itself is opaque.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+</div><div class='add'>+#define RBIGNUM_SIGN rb_big_sign /**&lt; @alias{rb_big_sign} */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RBIGNUM_POSITIVE_P RBIGNUM_POSITIVE_P</div><div class='add'>+#define RBIGNUM_NEGATIVE_P RBIGNUM_NEGATIVE_P</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/**</div><div class='add'>+ * The "sign" of a bignum.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num  An object of RBignum.</div><div class='add'>+ * @retval     1    It is greater than or equal to zero.</div><div class='add'>+ * @retval     0    It is less than zero.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Implementation wise, unlike fixnums (which  are 2's complement), bignums are</div><div class='add'>+ * signed  magnitude  system.   Theoretically  it could  be  possible  to  have</div><div class='add'>+ * negative zero  instances.  But  in reality  there is no  way to  create such</div><div class='add'>+ * thing.  Nobody ever needed that kind of insanity.</div><div class='add'>+ */</div><div class='add'>+int rb_big_sign(VALUE num);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks if the bignum is positive.</div><div class='add'>+ * @param[in]  b      An object of RBignum.</div><div class='add'>+ * @retval     false  `b` is less than zero.</div><div class='add'>+ * @retval     true   Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RBIGNUM_POSITIVE_P(VALUE b)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(b, RUBY_T_BIGNUM);</div><div class='add'>+    return RBIGNUM_SIGN(b);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks if the bignum is negative.</div><div class='add'>+ * @param[in]  b      An object of RBignum.</div><div class='add'>+ * @retval     true   `b` is less than zero.</div><div class='add'>+ * @retval     false  Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RBIGNUM_NEGATIVE_P(VALUE b)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(b, RUBY_T_BIGNUM);</div><div class='add'>+    return ! RBIGNUM_POSITIVE_P(b);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_RBIGNUM_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rclass.h b/include/ruby/internal/core/rclass.h<br/>new file mode 100644<br/>index 0000000000..b0b6bfc80c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rclass.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rclass.h</a></div><div class='hunk'>@@ -0,0 +1,93 @@</div><div class='add'>+#ifndef RBIMPL_RCLASS_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RCLASS_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Routines to manipulate struct RClass.</div><div class='add'>+ * @note       The struct RClass itself is opaque.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RMODULE_IS_REFINEMENT            RMODULE_IS_REFINEMENT</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient casting macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  An object, which is in fact an RClass.</div><div class='add'>+ * @return  The passed object casted to RClass.</div><div class='add'>+ */</div><div class='add'>+#define RCLASS(obj)  RBIMPL_CAST((struct RClass *)(obj))</div><div class='add'>+</div><div class='add'>+/** @alias{RCLASS} */</div><div class='add'>+#define RMODULE      RCLASS</div><div class='add'>+</div><div class='add'>+/** @alias{rb_class_get_superclass} */</div><div class='add'>+#define RCLASS_SUPER rb_class_get_superclass</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Bits that you can set to ::RBasic::flags.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Why is it here, given RClass itself is not?</div><div class='add'>+ */</div><div class='add'>+enum ruby_rmodule_flags {</div><div class='add'>+    /**</div><div class='add'>+     * This flag has something to do  with refinements.  A module created using</div><div class='add'>+     * rb_mod_refine()  has this  flag set.   This  is the  bit which  controls</div><div class='add'>+     * difference between normal inclusion versus refinements.</div><div class='add'>+     */</div><div class='add'>+    RMODULE_IS_REFINEMENT            = RUBY_FL_USER3</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct RClass; /* Opaque, declared here for RCLASS() macro. */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/**</div><div class='add'>+ * Returns the superclass of a class.</div><div class='add'>+ * @param[in]  klass        An object of RClass.</div><div class='add'>+ * @retval     RUBY_Qfalse  `klass` has no super class.</div><div class='add'>+ * @retval     otherwise    Raw superclass of `klass`</div><div class='add'>+ * @see        rb_class_superclass</div><div class='add'>+ *</div><div class='add'>+ * ### Q&amp;A ###</div><div class='add'>+ *</div><div class='add'>+ * - Q: How can a class have no super class?</div><div class='add'>+ *</div><div class='add'>+ * - A: `klass` could be a module.  Or it could be ::rb_cBasicObject.</div><div class='add'>+ *</div><div class='add'>+ * - Q: What do you mean by "raw" superclass?</div><div class='add'>+ *</div><div class='add'>+ * - A: This  is a  really good  question.  The  answer is  that this  function</div><div class='add'>+ *      returns something  different from what  you would normally  expect.  On</div><div class='add'>+ *      occasions  ruby  inserts  hidden  classes   in  a  hierarchy  of  class</div><div class='add'>+ *      inheritance behind-the-scene.   Such classes are called  "iclass"es and</div><div class='add'>+ *      distinguished  using  ::RUBY_T_ICLASS  in  C  level.   They  are  truly</div><div class='add'>+ *      transparent from Ruby  level but can be accessed from  C, by using this</div><div class='add'>+ *      API.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_get_superclass(VALUE klass);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_RCLASS_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rdata.h b/include/ruby/internal/core/rdata.h<br/>new file mode 100644<br/>index 0000000000..43ab3c01e7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rdata.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rdata.h</a></div><div class='hunk'>@@ -0,0 +1,386 @@</div><div class='add'>+#ifndef RBIMPL_RDATA_H                               /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RDATA_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines struct ::RData.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/deprecated.h"</div><div class='add'>+#include "ruby/internal/attr/warning.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/fl_type.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+#include "ruby/defines.h"</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#ifdef RUBY_UNTYPED_DATA_WARNING</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif defined(RUBY_EXPORT)</div><div class='add'>+# define RUBY_UNTYPED_DATA_WARNING 1</div><div class='add'>+#else</div><div class='add'>+# define RUBY_UNTYPED_DATA_WARNING 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define RBIMPL_DATA_FUNC(f) RBIMPL_CAST((void (*)(void *))(f))</div><div class='add'>+#define RBIMPL_ATTRSET_UNTYPED_DATA_FUNC() \</div><div class='add'>+    RBIMPL_ATTR_WARNING(("untyped Data is unsafe; use TypedData instead")) \</div><div class='add'>+    RBIMPL_ATTR_DEPRECATED(("by TypedData"))</div><div class='add'>+</div><div class='add'>+#define RBIMPL_MACRO_SELECT(x, y) x ## y</div><div class='add'>+#define RUBY_MACRO_SELECT(x, y)   RBIMPL_MACRO_SELECT(x, y)</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient casting macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  An object, which is in fact an ::RData.</div><div class='add'>+ * @return  The passed object casted to ::RData.</div><div class='add'>+ */</div><div class='add'>+#define RDATA(obj)                RBIMPL_CAST((struct RData *)(obj))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient getter macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  An object, which is in fact an ::RData.</div><div class='add'>+ * @return  The passed object's ::RData::data field.</div><div class='add'>+ */</div><div class='add'>+#define DATA_PTR(obj)             RDATA(obj)-&gt;data</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a value you can set  to ::RData::dfree.  Setting this means the data</div><div class='add'>+ * was allocated using ::ruby_xmalloc() (or variants), and shall be freed using</div><div class='add'>+ * ::ruby_xfree().</div><div class='add'>+ *</div><div class='add'>+ * @warning  Do not  use this  if you  want to use  system malloc,  because the</div><div class='add'>+ *           system  and  Ruby  might  or  might  not  share  the  same  malloc</div><div class='add'>+ *           implementation.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_DEFAULT_FREE         RBIMPL_DATA_FUNC(-1)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a value you can set  to ::RData::dfree.  Setting this means the data</div><div class='add'>+ * is managed by  someone else, like, statically allocated.  Of  course you are</div><div class='add'>+ * on your own then.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_NEVER_FREE           RBIMPL_DATA_FUNC(0)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_UNTYPED_DATA_FUNC(f) f RBIMPL_ATTRSET_UNTYPED_DATA_FUNC()</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+#define RUBY_DATA_FUNC(func) ((void (*)(void*))(func))</div><div class='add'>+*/</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is  the type of callbacks  registered to ::RData.  The  argument is the</div><div class='add'>+ * `data` field.</div><div class='add'>+ */</div><div class='add'>+typedef void (*RUBY_DATA_FUNC)(void*);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated</div><div class='add'>+ *</div><div class='add'>+ * Old  "untyped"  user  data.   It  has  roughly  the  same  usage  as  struct</div><div class='add'>+ * ::RTypedData, but lacked several features such as support for compaction GC.</div><div class='add'>+ * Use of this struct is not recommended  any longer.  If it is dead necessary,</div><div class='add'>+ * please inform the core devs about your usage.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei tried to add RBIMPL_ATTR_DEPRECATED for this type but that yielded</div><div class='add'>+ * too many warnings  in the core.  Maybe  we want to retry  later...  Just add</div><div class='add'>+ * deprecated document for now.</div><div class='add'>+ */</div><div class='add'>+struct RData {</div><div class='add'>+</div><div class='add'>+    /** Basic part, including flags and class. */</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This function is called when the object is experiencing GC marks.  If it</div><div class='add'>+     * contains references to  other Ruby objects, you need to  mark them also.</div><div class='add'>+     * Otherwise GC will smash your data.</div><div class='add'>+     *</div><div class='add'>+     * @see      rb_gc_mark()</div><div class='add'>+     * @warning  This  is  called  during  GC  runs.   Object  allocations  are</div><div class='add'>+     *           impossible at that moment (that is why GC runs).</div><div class='add'>+     */</div><div class='add'>+    RUBY_DATA_FUNC dmark;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This function is called when the object  is no longer used.  You need to</div><div class='add'>+     * do whatever necessary to avoid memory leaks.</div><div class='add'>+     *</div><div class='add'>+     * @warning  This  is  called  during  GC  runs.   Object  allocations  are</div><div class='add'>+     *           impossible at that moment (that is why GC runs).</div><div class='add'>+     */</div><div class='add'>+    RUBY_DATA_FUNC dfree;</div><div class='add'>+</div><div class='add'>+    /** Pointer to the actual C level struct that you want to wrap. */</div><div class='add'>+    void *data;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the primitive way to wrap an existing C struct into ::RData.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass          Ruby level class of the returning object.</div><div class='add'>+ * @param[in]  datap          Pointer to the target C struct.</div><div class='add'>+ * @param[in]  dmark          Mark function.</div><div class='add'>+ * @param[in]  dfree          Free function.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @exception  rb_eNoMemError  Out of memory.</div><div class='add'>+ * @return     An allocated object that wraps `datap`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_data_object_wrap(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_data_object_wrap(), except it  allocates a new  data region</div><div class='add'>+ * internally instead of taking an existing  one.  The allocation is done using</div><div class='add'>+ * ruby_calloc().   Hence  it  makes  no  sense to  pass  anything  other  than</div><div class='add'>+ * ::RUBY_DEFAULT_FREE to the last argument.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass          Ruby level class of the returning object.</div><div class='add'>+ * @param[in]  size           Requested size of memory to allocate.</div><div class='add'>+ * @param[in]  dmark          Mark function.</div><div class='add'>+ * @param[in]  dfree          Free function.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @exception  rb_eNoMemError  Out of memory.</div><div class='add'>+ * @return     An allocated object that wraps a new `size` byte region.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_data_object_zalloc(VALUE klass, size_t size, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ * Documented in include/ruby/internal/globals.h</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN VALUE rb_cObject;</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts sval, a pointer to your struct, into a Ruby object.</div><div class='add'>+ *</div><div class='add'>+ * @param      klass          A ruby level class.</div><div class='add'>+ * @param      mark           Mark function.</div><div class='add'>+ * @param      free           Free function.</div><div class='add'>+ * @param      sval           A pointer to your struct.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @exception  rb_eNoMemError  Out of memory.</div><div class='add'>+ * @return     A created Ruby object.</div><div class='add'>+ */</div><div class='add'>+#define Data_Wrap_Struct(klass, mark, free, sval) \</div><div class='add'>+    rb_data_object_wrap(                          \</div><div class='add'>+        (klass),                                  \</div><div class='add'>+        (sval),                                   \</div><div class='add'>+        RBIMPL_DATA_FUNC(mark),                    \</div><div class='add'>+        RBIMPL_DATA_FUNC(free))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail  of #Data_Make_Struct.  People don't use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param  result     Variable name of created Ruby object.</div><div class='add'>+ * @param  klass      Ruby level class of the object.</div><div class='add'>+ * @param  type       Type name of the C struct.</div><div class='add'>+ * @param  size       Size of the C struct.</div><div class='add'>+ * @param  mark       Mark function.</div><div class='add'>+ * @param  free       Free function.</div><div class='add'>+ * @param  sval       Variable name of created C struct.</div><div class='add'>+ */</div><div class='add'>+#define Data_Make_Struct0(result, klass, type, size, mark, free, sval)  \</div><div class='add'>+    VALUE result = rb_data_object_zalloc(          \</div><div class='add'>+        (klass),                                   \</div><div class='add'>+        (size),                                    \</div><div class='add'>+        RBIMPL_DATA_FUNC(mark),                     \</div><div class='add'>+        RBIMPL_DATA_FUNC(free));                    \</div><div class='add'>+    (sval) = RBIMPL_CAST((type *)DATA_PTR(result)); \</div><div class='add'>+    RBIMPL_CAST(/*suppress unused variable warnings*/(void)(sval))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  #Data_Wrap_Struct, except  it  allocates  a new  data  region</div><div class='add'>+ * internally instead of taking an existing  one.  The allocation is done using</div><div class='add'>+ * ruby_calloc().   Hence  it  makes  no  sense to  pass  anything  other  than</div><div class='add'>+ * ::RUBY_DEFAULT_FREE to the `free` argument.</div><div class='add'>+ *</div><div class='add'>+ * @param      klass          Ruby level class of the returning object.</div><div class='add'>+ * @param      type           Type name of the C struct.</div><div class='add'>+ * @param      mark           Mark function.</div><div class='add'>+ * @param      free           Free function.</div><div class='add'>+ * @param      sval           Variable name of created C struct.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @exception  rb_eNoMemError  Out of memory.</div><div class='add'>+ * @return     A created Ruby object.</div><div class='add'>+ */</div><div class='add'>+#ifdef HAVE_STMT_AND_DECL_IN_EXPR</div><div class='add'>+#define Data_Make_Struct(klass, type, mark, free, sval) \</div><div class='add'>+    RB_GNUC_EXTENSION({      \</div><div class='add'>+        Data_Make_Struct0(   \</div><div class='add'>+            data_struct_obj, \</div><div class='add'>+            klass,           \</div><div class='add'>+            type,            \</div><div class='add'>+            sizeof(type),    \</div><div class='add'>+            mark,            \</div><div class='add'>+            free,            \</div><div class='add'>+            sval);           \</div><div class='add'>+        data_struct_obj;     \</div><div class='add'>+    })</div><div class='add'>+#else</div><div class='add'>+#define Data_Make_Struct(klass, type, mark, free, sval) \</div><div class='add'>+    rb_data_object_make(              \</div><div class='add'>+        (klass),                      \</div><div class='add'>+        RBIMPL_DATA_FUNC(mark),        \</div><div class='add'>+        RBIMPL_DATA_FUNC(free),        \</div><div class='add'>+        RBIMPL_CAST((void **)&amp;(sval)), \</div><div class='add'>+        sizeof(type))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Obtains a C struct from inside of a wrapper Ruby object.</div><div class='add'>+ *</div><div class='add'>+ * @param      obj            An instance of ::RData.</div><div class='add'>+ * @param      type           Type name of the C struct.</div><div class='add'>+ * @param      sval           Variable name of obtained C struct.</div><div class='add'>+ * @return     Unwrapped C struct that `obj` holds.</div><div class='add'>+ */</div><div class='add'>+#define Data_Get_Struct(obj, type, sval) \</div><div class='add'>+    ((sval) = RBIMPL_CAST((type*)rb_data_object_get(obj)))</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTRSET_UNTYPED_DATA_FUNC()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail of rb_data_object_wrap().  People don't use</div><div class='add'>+ * it directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass          Ruby level class of the returning object.</div><div class='add'>+ * @param[in]  ptr            Pointer to the target C struct.</div><div class='add'>+ * @param[in]  mark           Mark function.</div><div class='add'>+ * @param[in]  free           Free function.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @exception  rb_eNoMemError  Out of memory.</div><div class='add'>+ * @return     An allocated object that wraps `datap`.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_data_object_wrap_warning(VALUE klass, void *ptr, RUBY_DATA_FUNC mark, RUBY_DATA_FUNC free)</div><div class='add'>+{</div><div class='add'>+    return rb_data_object_wrap(klass, ptr, mark, free);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implementation detail of #Data_Get_Struct.  People  don't use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  An instance of ::RData.</div><div class='add'>+ * @return     Unwrapped C struct that `obj` holds.</div><div class='add'>+ */</div><div class='add'>+static inline void *</div><div class='add'>+rb_data_object_get(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    Check_Type(obj, RUBY_T_DATA);</div><div class='add'>+    return DATA_PTR(obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTRSET_UNTYPED_DATA_FUNC()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implementation detail of #Data_Get_Struct.  People  don't use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  An instance of ::RData.</div><div class='add'>+ * @return     Unwrapped C struct that `obj` holds.</div><div class='add'>+ */</div><div class='add'>+static inline void *</div><div class='add'>+rb_data_object_get_warning(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return rb_data_object_get(obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)</div><div class='add'>+# define rb_data_object_wrap_warning(klass, ptr, mark, free) \</div><div class='add'>+    RB_GNUC_EXTENSION(                                       \</div><div class='add'>+        __builtin_choose_expr(                               \</div><div class='add'>+            __builtin_constant_p(klass) &amp;&amp; !(klass),         \</div><div class='add'>+            rb_data_object_wrap(klass, ptr, mark, free),     \</div><div class='add'>+            (rb_data_object_wrap_warning)(klass, ptr, mark, free)))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is an implementation detail  of #Data_Make_Struct.  People don't use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass           Ruby level class of the returning object.</div><div class='add'>+ * @param[in]  mark_func       Mark function.</div><div class='add'>+ * @param[in]  free_func       Free function.</div><div class='add'>+ * @param[in]  datap           Variable of created C struct.</div><div class='add'>+ * @param[in]  size            Requested size of allocation.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @exception  rb_eNoMemError  Out of memory.</div><div class='add'>+ * @return     A created Ruby object.</div><div class='add'>+ * @post       `*datap` holds the created C struct.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_data_object_make(VALUE klass, RUBY_DATA_FUNC mark_func, RUBY_DATA_FUNC free_func, void **datap, size_t size)</div><div class='add'>+{</div><div class='add'>+    Data_Make_Struct0(result, klass, void, size, mark_func, free_func, *datap);</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("by: rb_data_object_wrap"))</div><div class='add'>+/** @deprecated  This function was renamed to rb_data_object_wrap(). */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_data_object_alloc(VALUE klass, void *data, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree)</div><div class='add'>+{</div><div class='add'>+    return rb_data_object_wrap(klass, data, dmark, dfree);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define rb_data_object_wrap_0 rb_data_object_wrap</div><div class='add'>+#define rb_data_object_wrap_1 rb_data_object_wrap_warning</div><div class='add'>+#define rb_data_object_wrap_2 rb_data_object_wrap_ /* Used here vvvv */</div><div class='add'>+#define rb_data_object_wrap   RUBY_MACRO_SELECT(rb_data_object_wrap_2, RUBY_UNTYPED_DATA_WARNING)</div><div class='add'>+#define rb_data_object_get_0  rb_data_object_get</div><div class='add'>+#define rb_data_object_get_1  rb_data_object_get_warning</div><div class='add'>+#define rb_data_object_get_2  rb_data_object_get_ /* Used here vvvv */</div><div class='add'>+#define rb_data_object_get    RUBY_MACRO_SELECT(rb_data_object_get_2, RUBY_UNTYPED_DATA_WARNING)</div><div class='add'>+#define rb_data_object_make_0 rb_data_object_make</div><div class='add'>+#define rb_data_object_make_1 rb_data_object_make_warning</div><div class='add'>+#define rb_data_object_make_2 rb_data_object_make_ /* Used here vvvv */</div><div class='add'>+#define rb_data_object_make   RUBY_MACRO_SELECT(rb_data_object_make_2, RUBY_UNTYPED_DATA_WARNING)</div><div class='add'>+/** @endcond */</div><div class='add'>+#endif /* RBIMPL_RDATA_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rfile.h b/include/ruby/internal/core/rfile.h<br/>new file mode 100644<br/>index 0000000000..f8dddde9e5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rfile.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rfile.h</a></div><div class='hunk'>@@ -0,0 +1,51 @@</div><div class='add'>+#ifndef RBIMPL_RFILE_H                               /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RFILE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines struct ::RFile.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+</div><div class='add'>+/* rb_io_t is in ruby/io.h.  The header file has historically not been included</div><div class='add'>+ * into ruby/ruby.h.  We follow that tradition. */</div><div class='add'>+struct rb_io_t;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Ruby's File  and IO.  Ruby's  IO are not  just file descriptors.   They have</div><div class='add'>+ * buffers.   They also  have  encodings.  Various  information are  controlled</div><div class='add'>+ * using this struct.</div><div class='add'>+ */</div><div class='add'>+struct RFile {</div><div class='add'>+</div><div class='add'>+    /** Basic part, including flags and class. */</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+</div><div class='add'>+    /** IO's specific fields. */</div><div class='add'>+    struct rb_io_t *fptr;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient casting macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  An object, which is in fact an ::RFile.</div><div class='add'>+ * @return  The passed object casted to ::RFile.</div><div class='add'>+ */</div><div class='add'>+#define RFILE(obj) RBIMPL_CAST((struct RFile *)(obj))</div><div class='add'>+#endif /* RBIMPL_RFILE_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rhash.h b/include/ruby/internal/core/rhash.h<br/>new file mode 100644<br/>index 0000000000..61d2c15d87<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rhash.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rhash.h</a></div><div class='hunk'>@@ -0,0 +1,144 @@</div><div class='add'>+#ifndef RBIMPL_RHASH_H                               /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RHASH_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Routines to manipulate struct RHash.</div><div class='add'>+ * @note       The struct RHash itself is opaque.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#if !defined RUBY_EXPORT &amp;&amp; !defined RUBY_NO_OLD_COMPATIBILITY</div><div class='add'>+# include "ruby/backward.h"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Retrieves the internal table.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  h  An instance of RHash.</div><div class='add'>+ * @pre        `h` must be of ::RUBY_T_HASH.</div><div class='add'>+ * @return     A struct st_table which has the contents of this hash.</div><div class='add'>+ * @note       Nowadays as Ruby  evolved over ages, RHash  has multiple backend</div><div class='add'>+ *             storage  engines.   `h`'s backend  is  not  guaranteed to  be  a</div><div class='add'>+ *             st_table.  This function creates one when necessary.</div><div class='add'>+ */</div><div class='add'>+#define RHASH_TBL(h)                rb_hash_tbl(h, __FILE__, __LINE__)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Declaration of rb_hash_iter_lev() is at include/ruby/backward.h.</div><div class='add'>+ */</div><div class='add'>+#define RHASH_ITER_LEV(h)           rb_hash_iter_lev(h)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Declaration of rb_hash_ifnone() is at include/ruby/backward.h.</div><div class='add'>+ */</div><div class='add'>+#define RHASH_IFNONE(h)             rb_hash_ifnone(h)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the size of  the hash.  Size here means the number  of keys that the</div><div class='add'>+ * hash stores.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  h  An instance of RHash.</div><div class='add'>+ * @pre        `h` must be of ::RUBY_T_HASH.</div><div class='add'>+ * @return     The size of the hash.</div><div class='add'>+ */</div><div class='add'>+#define RHASH_SIZE(h)               rb_hash_size_num(h)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks if the hash is empty.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  h      An instance of RHash.</div><div class='add'>+ * @pre        `h` must be of ::RUBY_T_HASH.</div><div class='add'>+ * @retval     true   It is.</div><div class='add'>+ * @retval     false  It isn't.</div><div class='add'>+ */</div><div class='add'>+#define RHASH_EMPTY_P(h)            (RHASH_SIZE(h) == 0)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively updates the default value of the hash.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  h       An instance of RHash.</div><div class='add'>+ * @param[in]   ifnone  Arbitrary default value.</div><div class='add'>+ * @pre        `h` must be of ::RUBY_T_HASH.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * But why you can set this, given rb_hash_ifnone() doesn't exist?</div><div class='add'>+ */</div><div class='add'>+#define RHASH_SET_IFNONE(h, ifnone) rb_hash_set_ifnone((VALUE)h, ifnone)</div><div class='add'>+</div><div class='add'>+struct st_table;  /* in ruby/st.h */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is  the implementation detail  of #RHASH_SIZE.  People don't  call this</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  hash  An instance of RHash.</div><div class='add'>+ * @pre        `hash` must be of ::RUBY_T_HASH.</div><div class='add'>+ * @return     The size of the hash.</div><div class='add'>+ */</div><div class='add'>+size_t rb_hash_size_num(VALUE hash);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is  the implementation  detail of #RHASH_TBL.   People don't  call this</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  hash  An instance of RHash.</div><div class='add'>+ * @param[in]  file  The `__FILE__`.</div><div class='add'>+ * @param[in]  line  The `__LINE__`.</div><div class='add'>+ * @pre        `hash` must be of ::RUBY_T_HASH.</div><div class='add'>+ * @return     Table that has the contents of the hash.</div><div class='add'>+ */</div><div class='add'>+struct st_table *rb_hash_tbl(VALUE hash, const char *file, int line);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the  implementation detail of #RHASH_SET_IFNONE.   People don't call</div><div class='add'>+ * this directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  hash    An instance of RHash.</div><div class='add'>+ * @param[in]   ifnone  Arbitrary default value.</div><div class='add'>+ * @pre        `hash` must be of ::RUBY_T_HASH.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_set_ifnone(VALUE hash, VALUE ifnone);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_RHASH_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rmatch.h b/include/ruby/internal/core/rmatch.h<br/>new file mode 100644<br/>index 0000000000..2d2fd897f5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rmatch.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rmatch.h</a></div><div class='hunk'>@@ -0,0 +1,146 @@</div><div class='add'>+#ifndef RBIMPL_RMATCH_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RMATCH_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines struct ::RMatch.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient casting macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  An object, which is in fact an ::RMatch.</div><div class='add'>+ * @return  The passed object casted to ::RMatch.</div><div class='add'>+ */</div><div class='add'>+#define RMATCH(obj) RBIMPL_CAST((struct RMatch *)(obj))</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RMATCH_REGS RMATCH_REGS</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+struct re_patter_buffer; /* a.k.a. OnigRegexType, defined in onigmo.h */</div><div class='add'>+struct re_registers;     /* Also in onigmo.h */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @old{re_pattern_buffer}</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei wonders: is anyone actively using this typedef ...?</div><div class='add'>+ */</div><div class='add'>+typedef struct re_pattern_buffer Regexp;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Represents the  region of a  capture group.   This is basically  for caching</div><div class='add'>+ * purpose.  re_registers have similar concepts  (`beg` and `end`) but they are</div><div class='add'>+ * in `ptrdiff_t*`.  In order for  us to implement `MatchData#offset` that info</div><div class='add'>+ * has to  be converted to  offset integers.  This is  the struct to  hold such</div><div class='add'>+ * things.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * But why on earth it has to be visible from extension libraries?</div><div class='add'>+ */</div><div class='add'>+struct rmatch_offset {</div><div class='add'>+    long beg; /**&lt; Beginning of a group. */</div><div class='add'>+    long end; /**&lt; End of a group. */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/** Represents a match. */</div><div class='add'>+struct rmatch {</div><div class='add'>+    /**</div><div class='add'>+     * "Registers"  of a  match.   This  is a  quasi-opaque  struct that  holds</div><div class='add'>+     * execution result of a match.  Roughly resembles `&amp;~`.</div><div class='add'>+     */</div><div class='add'>+    struct re_registers regs;</div><div class='add'>+</div><div class='add'>+    /** Capture group offsets, in C array. */</div><div class='add'>+    struct rmatch_offset *char_offset;</div><div class='add'>+</div><div class='add'>+    /** Number of ::rmatch_offset that ::rmatch::char_offset holds. */</div><div class='add'>+    int char_offset_num_allocated;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Regular expression  execution context.  When a  regular expression "matches"</div><div class='add'>+ * to a string, it generates capture  groups etc.  This struct holds that info.</div><div class='add'>+ * Visible from Ruby as an instance of `MatchData`.</div><div class='add'>+ *</div><div class='add'>+ * @note  There is  no way  for extension libraries  to manually  generate this</div><div class='add'>+ *        struct except by actually exercising the match operation of a regular</div><div class='add'>+ *        expression.</div><div class='add'>+ */</div><div class='add'>+struct RMatch {</div><div class='add'>+</div><div class='add'>+    /** Basic part, including flags and class. */</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The target string that the match was made against.</div><div class='add'>+     */</div><div class='add'>+    VALUE str;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The result of this match.</div><div class='add'>+     */</div><div class='add'>+    struct rmatch *rmatch;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The expression of this match.</div><div class='add'>+     */</div><div class='add'>+    VALUE regexp;  /* RRegexp */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the raw ::re_registers.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  match  A match object</div><div class='add'>+ * @pre        `match` must be of ::RMatch.</div><div class='add'>+ * @return     Its execution result.</div><div class='add'>+ * @note       Good.  So you  are aware of the fact that  it could return NULL.</div><div class='add'>+ *             Yes.  It  actually does.  This  is a really bizarre  thing.  The</div><div class='add'>+ *             situation  is about  `String#gsub`  and its  family.  They  take</div><div class='add'>+ *             strings as  arguments, like `"foo".sub("bar", "baz")`.   On such</div><div class='add'>+ *             situations,  in  order  to optimise  memory  allocations,  these</div><div class='add'>+ *             methods do  not involve regular  expressions at all.   They just</div><div class='add'>+ *             sequentially scan  the receiver.  Okay.  The  story begins here.</div><div class='add'>+ *             Even when  they do  not kick  our regexp  engine, there  must be</div><div class='add'>+ *             backref objects e.g. `$&amp;`.  But how?  You know what?  Ruby fakes</div><div class='add'>+ *             them.  It  allocates an empty  ::RMatch and behaves as  if there</div><div class='add'>+ *             were  execution   contexts.   In  reality  there   weren't.   No</div><div class='add'>+ *             ::re_registers are  allocated then.   There is  no way  for this</div><div class='add'>+ *             function but  to return NULL  for those fake ::RMatch.   This is</div><div class='add'>+ *             the reason for the nullability of this function.</div><div class='add'>+ */</div><div class='add'>+static inline struct re_registers *</div><div class='add'>+RMATCH_REGS(VALUE match)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(match, RUBY_T_MATCH);</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RMATCH(match)-&gt;rmatch != NULL);</div><div class='add'>+    return &amp;RMATCH(match)-&gt;rmatch-&gt;regs;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_RMATCH_H */</div><div class='head'>diff --git a/include/ruby/internal/core/robject.h b/include/ruby/internal/core/robject.h<br/>new file mode 100644<br/>index 0000000000..b1c2e1b0a9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/robject.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/robject.h</a></div><div class='hunk'>@@ -0,0 +1,176 @@</div><div class='add'>+#ifndef RBIMPL_ROBJECT_H                             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ROBJECT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines struct ::RObject.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STDINT_H</div><div class='add'>+# include &lt;stdint.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/deprecated.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/fl_type.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient casting macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  An object, which is in fact an ::RObject.</div><div class='add'>+ * @return  The passed object casted to ::RObject.</div><div class='add'>+ */</div><div class='add'>+#define ROBJECT(obj)          RBIMPL_CAST((struct RObject *)(obj))</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define ROBJECT_EMBED_LEN_MAX ROBJECT_EMBED_LEN_MAX</div><div class='add'>+#define ROBJECT_EMBED         ROBJECT_EMBED</div><div class='add'>+#define ROBJECT_IV_CAPACITY   ROBJECT_IV_CAPACITY</div><div class='add'>+#define ROBJECT_IVPTR         ROBJECT_IVPTR</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Bits that you can set to ::RBasic::flags.</div><div class='add'>+ */</div><div class='add'>+enum ruby_robject_flags {</div><div class='add'>+    /**</div><div class='add'>+     * This flag has  something to do with memory footprint.   If the object is</div><div class='add'>+     * "small"  enough, ruby  tries to  be creative  to abuse  padding bits  of</div><div class='add'>+     * struct ::RObject for storing instance variables.  This flag denotes that</div><div class='add'>+     * situation.</div><div class='add'>+     *</div><div class='add'>+     * @warning  This  bit has  to be  considered read-only.   Setting/clearing</div><div class='add'>+     *           this  bit without  corresponding fix  up must  cause immediate</div><div class='add'>+     *           SEGV.   Also,   internal  structures   of  an   object  change</div><div class='add'>+     *           dynamically  and  transparently  throughout of  its  lifetime.</div><div class='add'>+     *           Don't assume it being persistent.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * 3rd parties must  not be aware that  there even is more than  one way to</div><div class='add'>+     * store instance variables.  Might better be hidden.</div><div class='add'>+     */</div><div class='add'>+    ROBJECT_EMBED = RUBY_FL_USER1</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#if !USE_RVARGC</div><div class='add'>+/**</div><div class='add'>+ * This is an enum because GDB wants it (rather than a macro).  People need not</div><div class='add'>+ * bother.</div><div class='add'>+ */</div><div class='add'>+enum ruby_robject_consts {</div><div class='add'>+    /** Max possible number of instance variables that can be embedded. */</div><div class='add'>+    ROBJECT_EMBED_LEN_MAX = RBIMPL_EMBED_LEN_MAX_OF(VALUE)</div><div class='add'>+};</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct st_table;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Ruby's ordinal objects.  Unless otherwise  special cased, all predefined and</div><div class='add'>+ * user-defined classes share this struct to hold their instances.</div><div class='add'>+ */</div><div class='add'>+struct RObject {</div><div class='add'>+</div><div class='add'>+    /** Basic part, including flags and class. */</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+</div><div class='add'>+    /** Object's specific fields. */</div><div class='add'>+    union {</div><div class='add'>+</div><div class='add'>+        /**</div><div class='add'>+         * Object that use  separated memory region for  instance variables use</div><div class='add'>+         * this pattern.</div><div class='add'>+         */</div><div class='add'>+        struct {</div><div class='add'>+            /** Pointer to a C array that holds instance variables. */</div><div class='add'>+            VALUE *ivptr;</div><div class='add'>+</div><div class='add'>+            /**</div><div class='add'>+             * This  is a  table that  holds  instance variable  name to  index</div><div class='add'>+             * mapping.  Used when accessing instance variables using names.</div><div class='add'>+             *</div><div class='add'>+             * @internal</div><div class='add'>+             *</div><div class='add'>+             * This is a shortcut for `RCLASS_IV_INDEX_TBL(rb_obj_class(obj))`.</div><div class='add'>+             */</div><div class='add'>+            struct rb_id_table *iv_index_tbl;</div><div class='add'>+        } heap;</div><div class='add'>+</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+        /* Embedded instance variables. When an object is small enough, it</div><div class='add'>+         * uses this area to store the instance variables.</div><div class='add'>+         *</div><div class='add'>+         * This is a length 1 array because:</div><div class='add'>+         *   1. GCC has a bug that does not optimize C flexible array members</div><div class='add'>+         *      (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102452)</div><div class='add'>+         *   2. Zero length arrays are not supported by all compilers</div><div class='add'>+         */</div><div class='add'>+        VALUE ary[1];</div><div class='add'>+#else</div><div class='add'>+        /**</div><div class='add'>+        * Embedded instance  variables.  When  an object  is small  enough, it</div><div class='add'>+        * uses this area to store the instance variables.</div><div class='add'>+        */</div><div class='add'>+        VALUE ary[ROBJECT_EMBED_LEN_MAX];</div><div class='add'>+#endif</div><div class='add'>+    } as;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* Offsets for YJIT */</div><div class='add'>+#ifndef __cplusplus</div><div class='add'>+static const int32_t ROBJECT_OFFSET_AS_HEAP_IVPTR = offsetof(struct RObject, as.heap.ivptr);</div><div class='add'>+static const int32_t ROBJECT_OFFSET_AS_HEAP_IV_INDEX_TBL = offsetof(struct RObject, as.heap.iv_index_tbl);</div><div class='add'>+static const int32_t ROBJECT_OFFSET_AS_ARY = offsetof(struct RObject, as.ary);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the instance variables.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Object in question.</div><div class='add'>+ * @return     Its instance variables, in C array.</div><div class='add'>+ * @pre        `obj` must be an instance of ::RObject.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei finds no reason for this to be visible from extension libraries.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE *</div><div class='add'>+ROBJECT_IVPTR(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(obj, RUBY_T_OBJECT);</div><div class='add'>+</div><div class='add'>+    struct RObject *const ptr = ROBJECT(obj);</div><div class='add'>+</div><div class='add'>+    if (RB_FL_ANY_RAW(obj, ROBJECT_EMBED)) {</div><div class='add'>+        return ptr-&gt;as.ary;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return ptr-&gt;as.heap.ivptr;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ROBJECT_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rregexp.h b/include/ruby/internal/core/rregexp.h<br/>new file mode 100644<br/>index 0000000000..cf54a399f1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rregexp.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rregexp.h</a></div><div class='hunk'>@@ -0,0 +1,168 @@</div><div class='add'>+#ifndef RBIMPL_RREGEXP_H                             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RREGEXP_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines struct ::RRegexp.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/core/rstring.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient casting macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  An object, which is in fact an ::RRegexp.</div><div class='add'>+ * @return  The passed object casted to ::RRegexp.</div><div class='add'>+ */</div><div class='add'>+#define RREGEXP(obj)     RBIMPL_CAST((struct RRegexp *)(obj))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient accessor macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  An object, which is in fact an ::RRegexp.</div><div class='add'>+ * @return  The passed object's pattern buffer.</div><div class='add'>+ */</div><div class='add'>+#define RREGEXP_PTR(obj) (RREGEXP(obj)-&gt;ptr)</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RREGEXP_SRC      RREGEXP_SRC</div><div class='add'>+#define RREGEXP_SRC_PTR  RREGEXP_SRC_PTR</div><div class='add'>+#define RREGEXP_SRC_LEN  RREGEXP_SRC_LEN</div><div class='add'>+#define RREGEXP_SRC_END  RREGEXP_SRC_END</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+struct re_patter_buffer;  /* a.k.a. OnigRegexType, defined in onigmo.h */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Ruby's regular expression.   A regexp is compiled into  its own intermediate</div><div class='add'>+ * representation.  This  one holds that  info.  Regexp "match"  operation then</div><div class='add'>+ * executes that IR.</div><div class='add'>+ */</div><div class='add'>+struct RRegexp {</div><div class='add'>+</div><div class='add'>+    /** Basic part, including flags and class. */</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The pattern buffer.   This is a quasi-opaque struct  that holds compiled</div><div class='add'>+     * intermediate representation of the regular expression.</div><div class='add'>+     *</div><div class='add'>+     * @note  Compilation of a regexp could be delayed until actual match.</div><div class='add'>+     */</div><div class='add'>+    struct re_pattern_buffer *ptr;</div><div class='add'>+</div><div class='add'>+    /** Source code of this expression. */</div><div class='add'>+    const VALUE src;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Reference count.  A  regexp match can take extraordinarily  long time to</div><div class='add'>+     * run.  Ruby's  regular expression is  heavily extended and not  a regular</div><div class='add'>+     * language any  longer; runs in NP-time  in practice.  Now, Ruby  also has</div><div class='add'>+     * threads and GVL.  In order to prevent long GVL lockup, our regexp engine</div><div class='add'>+     * can release it on occasions.  This means that multiple threads can touch</div><div class='add'>+     * a regular expressions at once.  That  itself is okay.  But their cleanup</div><div class='add'>+     * phase shall wait for all  the concurrent runs, to prevent use-after-free</div><div class='add'>+     * situation.  This field is used to  count such threads that are executing</div><div class='add'>+     * this particular pattern buffer.</div><div class='add'>+     *</div><div class='add'>+     * @warning  Of course, touching this field from extension libraries causes</div><div class='add'>+     *           catastrophic effects.  Just leave it.</div><div class='add'>+     */</div><div class='add'>+    unsigned long usecnt;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Convenient getter function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  rexp  The regular expression in question.</div><div class='add'>+ * @return     The source code of the regular expression.</div><div class='add'>+ * @pre        `rexp` must be of ::RRegexp.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+RREGEXP_SRC(VALUE rexp)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(rexp, RUBY_T_REGEXP);</div><div class='add'>+    VALUE ret = RREGEXP(rexp)-&gt;src;</div><div class='add'>+    RBIMPL_ASSERT_TYPE(ret, RUBY_T_STRING);</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Convenient getter function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  rexp  The regular expression in question.</div><div class='add'>+ * @return     The source code of the regular expression, in C's string.</div><div class='add'>+ * @pre        `rexp` must be of ::RRegexp.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It seems nobody uses this function in the wild.  Subject to hide?</div><div class='add'>+ */</div><div class='add'>+static inline char *</div><div class='add'>+RREGEXP_SRC_PTR(VALUE rexp)</div><div class='add'>+{</div><div class='add'>+    return RSTRING_PTR(RREGEXP_SRC(rexp));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Convenient getter function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  rexp  The regular expression in question.</div><div class='add'>+ * @return     The length of the source code of the regular expression.</div><div class='add'>+ * @pre        `rexp` must be of ::RRegexp.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It seems nobody uses this function in the wild.  Subject to hide?</div><div class='add'>+ */</div><div class='add'>+static inline long</div><div class='add'>+RREGEXP_SRC_LEN(VALUE rexp)</div><div class='add'>+{</div><div class='add'>+    return RSTRING_LEN(RREGEXP_SRC(rexp));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Convenient getter function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  rexp  The regular expression in question.</div><div class='add'>+ * @return     The end of the source code of the regular expression.</div><div class='add'>+ * @pre        `rexp` must be of ::RRegexp.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It seems nobody uses this function in the wild.  Subject to hide?</div><div class='add'>+ */</div><div class='add'>+static inline char *</div><div class='add'>+RREGEXP_SRC_END(VALUE rexp)</div><div class='add'>+{</div><div class='add'>+    return RSTRING_END(RREGEXP_SRC(rexp));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_RREGEXP_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rstring.h b/include/ruby/internal/core/rstring.h<br/>new file mode 100644<br/>index 0000000000..e394ab7dca<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rstring.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rstring.h</a></div><div class='hunk'>@@ -0,0 +1,578 @@</div><div class='add'>+#ifndef RBIMPL_RSTRING_H                             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RSTRING_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines struct ::RString.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h"</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/fl_type.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+#include "ruby/internal/warning_push.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient casting macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  An object, which is in fact an ::RString.</div><div class='add'>+ * @return  The passed object casted to ::RString.</div><div class='add'>+ */</div><div class='add'>+#define RSTRING(obj)            RBIMPL_CAST((struct RString *)(obj))</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RSTRING_NOEMBED         RSTRING_NOEMBED</div><div class='add'>+#if !USE_RVARGC</div><div class='add'>+#define RSTRING_EMBED_LEN_MASK  RSTRING_EMBED_LEN_MASK</div><div class='add'>+#define RSTRING_EMBED_LEN_SHIFT RSTRING_EMBED_LEN_SHIFT</div><div class='add'>+#define RSTRING_EMBED_LEN_MAX   RSTRING_EMBED_LEN_MAX</div><div class='add'>+#endif</div><div class='add'>+#define RSTRING_FSTR            RSTRING_FSTR</div><div class='add'>+#define RSTRING_EMBED_LEN RSTRING_EMBED_LEN</div><div class='add'>+#define RSTRING_LEN       RSTRING_LEN</div><div class='add'>+#define RSTRING_LENINT    RSTRING_LENINT</div><div class='add'>+#define RSTRING_PTR       RSTRING_PTR</div><div class='add'>+#define RSTRING_END       RSTRING_END</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Conversion of Ruby strings into C's</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Ensures that the parameter object is a  String.  This is done by calling its</div><div class='add'>+ * `to_str` method.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  v              Arbitrary Ruby object.</div><div class='add'>+ * @exception      rb_eTypeError  No implicit conversion defined.</div><div class='add'>+ * @post           `v` is a String.</div><div class='add'>+ */</div><div class='add'>+#define StringValue(v)     rb_string_value(&amp;(v))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #StringValue, except it returns a `char*`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  v              Arbitrary Ruby object.</div><div class='add'>+ * @exception      rb_eTypeError  No implicit conversion defined.</div><div class='add'>+ * @return         Converted Ruby string's backend C string.</div><div class='add'>+ * @post           `v` is a String.</div><div class='add'>+ */</div><div class='add'>+#define StringValuePtr(v)  rb_string_value_ptr(&amp;(v))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #StringValuePtr, except it additionally checks for the contents</div><div class='add'>+ * for viability  as a C  string.  Ruby can accept  wider range of  contents as</div><div class='add'>+ * strings, compared to C.  This function is to check that.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  v              Arbitrary Ruby object.</div><div class='add'>+ * @exception      rb_eTypeError  No implicit conversion defined.</div><div class='add'>+ * @exception      rb_eArgError   String is not C-compatible.</div><div class='add'>+ * @return         Converted Ruby string's backend C string.</div><div class='add'>+ * @post           `v` is a String.</div><div class='add'>+ */</div><div class='add'>+#define StringValueCStr(v) rb_string_value_cstr(&amp;(v))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define SafeStringValue(v) StringValue(v)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to #StringValue,  except  it additionally  converts the  string's</div><div class='add'>+ * encoding to default external encoding.  Ruby has a concept called encodings.</div><div class='add'>+ * A string can have different  encoding than the environment expects.  Someone</div><div class='add'>+ * has to make  sure its contents be converted to  something suitable.  This is</div><div class='add'>+ * that routine.  Call it when necessary.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  v              Arbitrary Ruby object.</div><div class='add'>+ * @exception      rb_eTypeError  No implicit conversion defined.</div><div class='add'>+ * @return         Converted Ruby string's backend C string.</div><div class='add'>+ * @post           `v` is a String.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Not   sure  but   it  seems   this  macro   does  not   raise  on   encoding</div><div class='add'>+ * incompatibilities?  Doesn't sound right to @shyouhei.</div><div class='add'>+ */</div><div class='add'>+#define ExportStringValue(v) do { \</div><div class='add'>+    StringValue(v);               \</div><div class='add'>+    (v) = rb_str_export(v);       \</div><div class='add'>+} while (0)</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Bits that you can set to ::RBasic::flags.</div><div class='add'>+ *</div><div class='add'>+ * @warning  These enums are not the only bits we use for strings.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Actually all bits  through FL_USER1 to FL_USER19 are used  for strings.  Why</div><div class='add'>+ * only this  tiny part of  them are made public  here?  @shyouhei can  find no</div><div class='add'>+ * reason.</div><div class='add'>+ */</div><div class='add'>+enum ruby_rstring_flags {</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag has  something to do with memory footprint.   If the string is</div><div class='add'>+     * short enough, ruby tries to be  creative to abuse padding bits of struct</div><div class='add'>+     * ::RString for  storing contents.  If this  flag is set that  string does</div><div class='add'>+     * _not_  do that,  to resort  to  good old  fashioned external  allocation</div><div class='add'>+     * strategy instead.</div><div class='add'>+     *</div><div class='add'>+     * @warning  This  bit has  to be  considered read-only.   Setting/clearing</div><div class='add'>+     *           this  bit without  corresponding fix  up must  cause immediate</div><div class='add'>+     *           SEGV.    Also,  internal   structures  of   a  string   change</div><div class='add'>+     *           dynamically  and  transparently  throughout of  its  lifetime.</div><div class='add'>+     *           Don't assume it being persistent.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * 3rd parties must  not be aware that  there even is more than  one way to</div><div class='add'>+     * store a string.  Might better be hidden.</div><div class='add'>+     */</div><div class='add'>+    RSTRING_NOEMBED         = RUBY_FL_USER1,</div><div class='add'>+</div><div class='add'>+#if !USE_RVARGC</div><div class='add'>+    /**</div><div class='add'>+     * When a  string employs embedded strategy  (see ::RSTRING_NOEMBED), these</div><div class='add'>+     * bits  are  used to  store  the  number  of  bytes actually  filled  into</div><div class='add'>+     * ::RString::ary.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * 3rd parties must  not be aware that  there even is more than  one way to</div><div class='add'>+     * store a string.  Might better be hidden.</div><div class='add'>+     */</div><div class='add'>+    RSTRING_EMBED_LEN_MASK  = RUBY_FL_USER2 | RUBY_FL_USER3 | RUBY_FL_USER4 |</div><div class='add'>+                              RUBY_FL_USER5 | RUBY_FL_USER6,</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    /* Actually,  string  encodings are  also  encoded  into the  flags,  using</div><div class='add'>+     * remaining bits.*/</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This  flag has  something  to do  with infamous  "f"string.   What is  a</div><div class='add'>+     * fstring?  Well  it is a  special subkind  of strings that  is immutable,</div><div class='add'>+     * deduped globally, and managed  by our GC.  It is much  like a Symbol (in</div><div class='add'>+     * fact Symbols are  dynamic these days and are  backended using fstrings).</div><div class='add'>+     * This concept  has been  silently introduced  at some  point in  2.x era.</div><div class='add'>+     * Since  then it  gained  wider  acceptance in  the  core.  But  extension</div><div class='add'>+     * libraries could not know that until very recently.  Strings of this flag</div><div class='add'>+     * live in  a special Limbo deep  inside of the interpreter.   Never try to</div><div class='add'>+     * manipulate it by hand.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * Fstrings  are not  the only  variant  strings that  we implement  today.</div><div class='add'>+     * Other things are behind-the-scene.  This is the only one that is visible</div><div class='add'>+     * from extension  library.  There  is no  clear reason why  it has  to be.</div><div class='add'>+     * Given there are more "polite" ways to create fstrings, it seems this bit</div><div class='add'>+     * need not be exposed to extension libraries.  Might better be hidden.</div><div class='add'>+     */</div><div class='add'>+    RSTRING_FSTR            = RUBY_FL_USER17</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#if !USE_RVARGC</div><div class='add'>+/**</div><div class='add'>+ * This is an enum because GDB wants it (rather than a macro).  People need not</div><div class='add'>+ * bother.</div><div class='add'>+ */</div><div class='add'>+enum ruby_rstring_consts {</div><div class='add'>+    /** Where ::RSTRING_EMBED_LEN_MASK resides. */</div><div class='add'>+    RSTRING_EMBED_LEN_SHIFT = RUBY_FL_USHIFT + 2,</div><div class='add'>+</div><div class='add'>+    /** Max possible number of characters that can be embedded. */</div><div class='add'>+    RSTRING_EMBED_LEN_MAX   = RBIMPL_EMBED_LEN_MAX_OF(char) - 1</div><div class='add'>+};</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Ruby's String.  A string in ruby conceptually has these information:</div><div class='add'>+ *</div><div class='add'>+ * - Encoding of the string.</div><div class='add'>+ * - Length of the string.</div><div class='add'>+ * - Contents of the string.</div><div class='add'>+ *</div><div class='add'>+ * It is worth  noting that a string  is _not_ an array of  characters in ruby.</div><div class='add'>+ * It has never been.   In 1.x a string was an array of  integers.  Since 2.x a</div><div class='add'>+ * string is no longer an array of anything.  A string is a string -- just like</div><div class='add'>+ * a Time is not an integer.</div><div class='add'>+ */</div><div class='add'>+struct RString {</div><div class='add'>+</div><div class='add'>+    /** Basic part, including flags and class. */</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+</div><div class='add'>+    /** String's specific fields. */</div><div class='add'>+    union {</div><div class='add'>+</div><div class='add'>+        /**</div><div class='add'>+         * Strings  that use  separated  memory region  for  contents use  this</div><div class='add'>+         * pattern.</div><div class='add'>+         */</div><div class='add'>+        struct {</div><div class='add'>+</div><div class='add'>+            /**</div><div class='add'>+             * Length of the string, not including terminating NUL character.</div><div class='add'>+             *</div><div class='add'>+             * @note  This is in bytes.</div><div class='add'>+             */</div><div class='add'>+            long len;</div><div class='add'>+</div><div class='add'>+            /**</div><div class='add'>+             * Pointer to  the contents of  the string.   In the old  days each</div><div class='add'>+             * string had  dedicated memory  regions.  That  is no  longer true</div><div class='add'>+             * today,  but there  still are  strings of  such properties.  This</div><div class='add'>+             * field could be used to point such things.</div><div class='add'>+             */</div><div class='add'>+            char *ptr;</div><div class='add'>+</div><div class='add'>+            /** Auxiliary info. */</div><div class='add'>+            union {</div><div class='add'>+</div><div class='add'>+                /**</div><div class='add'>+                 * Capacity of `*ptr`.  A continuous  memory region of at least</div><div class='add'>+                 * `capa` bytes  is expected to  exist at `*ptr`.  This  can be</div><div class='add'>+                 * bigger than `len`.</div><div class='add'>+                 */</div><div class='add'>+                long capa;</div><div class='add'>+</div><div class='add'>+                /**</div><div class='add'>+                 * Parent  of the  string.   Nowadays strings  can share  their</div><div class='add'>+                 * contents each other, constructing  gigantic nest of objects.</div><div class='add'>+                 * This situation is called "shared",  and this is the field to</div><div class='add'>+                 * control such properties.</div><div class='add'>+                 */</div><div class='add'>+                VALUE shared;</div><div class='add'>+            } aux;</div><div class='add'>+        } heap;</div><div class='add'>+</div><div class='add'>+        /** Embedded contents. */</div><div class='add'>+        struct {</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+            long len;</div><div class='add'>+            /* This is a length 1 array because:</div><div class='add'>+             *   1. GCC has a bug that does not optimize C flexible array members</div><div class='add'>+             *      (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102452)</div><div class='add'>+             *   2. Zero length arrays are not supported by all compilers</div><div class='add'>+             */</div><div class='add'>+            char ary[1];</div><div class='add'>+#else</div><div class='add'>+            /**</div><div class='add'>+             * When a  string is short enough,  it uses this area  to store the</div><div class='add'>+             * contents themselves.  This was  impractical in the 20th century,</div><div class='add'>+             * but these days 64 bit machines can typically hold 24 bytes here.</div><div class='add'>+             * Could be sufficiently large.  In this case the length is encoded</div><div class='add'>+             * into the flags.</div><div class='add'>+             */</div><div class='add'>+            char ary[RSTRING_EMBED_LEN_MAX + 1];</div><div class='add'>+#endif</div><div class='add'>+        } embed;</div><div class='add'>+    } as;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_check_string_type(), except it  raises exceptions in case of</div><div class='add'>+ * conversion failures.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Target object.</div><div class='add'>+ * @exception  rb_eTypeError  No implicit conversion to String.</div><div class='add'>+ * @return     Return value of `obj.to_str`.</div><div class='add'>+ * @see        rb_io_get_io</div><div class='add'>+ * @see        rb_ary_to_ary</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_to_str(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_str_to_str(), except it  fills the passed pointer  with the</div><div class='add'>+ * converted object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  ptr            Pointer to a variable of target object.</div><div class='add'>+ * @exception      rb_eTypeError  No implicit conversion to String.</div><div class='add'>+ * @return         Return value of `obj.to_str`.</div><div class='add'>+ * @post           `*ptr` is the return value.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_string_value(volatile VALUE *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_str_to_str(), except  it  returns  the converted  string's</div><div class='add'>+ * backend memory region.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  ptr            Pointer to a variable of target object.</div><div class='add'>+ * @exception      rb_eTypeError  No implicit conversion to String.</div><div class='add'>+ * @post           `*ptr` is the return value of `obj.to_str`.</div><div class='add'>+ * @return         Pointer to the contents of the return value.</div><div class='add'>+ */</div><div class='add'>+char *rb_string_value_ptr(volatile VALUE *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_string_value_ptr(), except  it additionally checks  for the</div><div class='add'>+ * contents  for viability  as a  C  string.  Ruby  can accept  wider range  of</div><div class='add'>+ * contents as strings, compared to C.  This function is to check that.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  ptr            Pointer to a variable of target object.</div><div class='add'>+ * @exception      rb_eTypeError  No implicit conversion to String.</div><div class='add'>+ * @exception      rb_eArgError   String is not C-compatible.</div><div class='add'>+ * @post           `*ptr` is the return value of `obj.to_str`.</div><div class='add'>+ * @return         Pointer to the contents of the return value.</div><div class='add'>+ */</div><div class='add'>+char *rb_string_value_cstr(volatile VALUE *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_str_to_str(),  except it  additionally converts  the string</div><div class='add'>+ * into default  external encoding.   Ruby has a  concept called  encodings.  A</div><div class='add'>+ * string can  have different encoding  than the environment  expects.  Someone</div><div class='add'>+ * has to make  sure its contents be converted to  something suitable.  This is</div><div class='add'>+ * that routine.  Call it when necessary.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Target object.</div><div class='add'>+ * @exception  rb_eTypeError  No implicit conversion to String.</div><div class='add'>+ * @return     Converted ruby string of default external encoding.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_export(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_str_export(), except it  converts into the  locale encoding</div><div class='add'>+ * instead.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Target object.</div><div class='add'>+ * @exception  rb_eTypeError  No implicit conversion to String.</div><div class='add'>+ * @return     Converted ruby string of locale encoding.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_export_locale(VALUE obj);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ERROR(("rb_check_safe_str() and Check_SafeStr() are obsolete; use StringValue() instead"))</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This function  once was a thing  in the old days,  but makes no</div><div class='add'>+ *              sense   any   longer   today.   Exists   here   for   backwards</div><div class='add'>+ *              compatibility only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+void rb_check_safe_str(VALUE);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define Check_SafeStr(v) rb_check_safe_str(RBIMPL_CAST((VALUE)(v)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Prints diagnostic message to stderr when RSTRING_PTR or RSTRING_END</div><div class='add'>+ * is NULL.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  func           The function name where encountered NULL pointer.</div><div class='add'>+ */</div><div class='add'>+void rb_debug_rstring_null_ptr(const char *func);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the length of the string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  String in question.</div><div class='add'>+ * @return     Its length, in bytes.</div><div class='add'>+ * @pre        `str`  must  be an  instance  of  ::RString,  and must  has  its</div><div class='add'>+ *             ::RSTRING_NOEMBED flag off.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This was a macro  before.  It was inevitable to be  public, since macros are</div><div class='add'>+ * global constructs.   But should it be  forever?  Now that it  is a function,</div><div class='add'>+ * @shyouhei thinks  it could  just be  eliminated, hidden  into implementation</div><div class='add'>+ * details.</div><div class='add'>+ */</div><div class='add'>+static inline long</div><div class='add'>+RSTRING_EMBED_LEN(VALUE str)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(str, RUBY_T_STRING);</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(! RB_FL_ANY_RAW(str, RSTRING_NOEMBED));</div><div class='add'>+</div><div class='add'>+#if USE_RVARGC</div><div class='add'>+    long f = RSTRING(str)-&gt;as.embed.len;</div><div class='add'>+    return f;</div><div class='add'>+#else</div><div class='add'>+    VALUE f = RBASIC(str)-&gt;flags;</div><div class='add'>+    f &amp;= RSTRING_EMBED_LEN_MASK;</div><div class='add'>+    f &gt;&gt;= RSTRING_EMBED_LEN_SHIFT;</div><div class='add'>+    return RBIMPL_CAST((long)f);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_WARNING_PUSH()</div><div class='add'>+#if RBIMPL_COMPILER_IS(Intel)</div><div class='add'>+RBIMPL_WARNING_IGNORED(413)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * "Expands" an embedded  string into an ordinal one.  This  is a function that</div><div class='add'>+ * returns aggregated type.   The returned struct always  has its `as.heap.len`</div><div class='add'>+ * an `as.heap.ptr` fields set appropriately.</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail that 3rd parties should never bother.</div><div class='add'>+ */</div><div class='add'>+static inline struct RString</div><div class='add'>+rbimpl_rstring_getmem(VALUE str)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(str, RUBY_T_STRING);</div><div class='add'>+</div><div class='add'>+    if (RB_FL_ANY_RAW(str, RSTRING_NOEMBED)) {</div><div class='add'>+        return *RSTRING(str);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        /* Expecting compilers to optimize this on-stack struct away. */</div><div class='add'>+        struct RString retval;</div><div class='add'>+        retval.as.heap.len = RSTRING_EMBED_LEN(str);</div><div class='add'>+        retval.as.heap.ptr = RSTRING(str)-&gt;as.embed.ary;</div><div class='add'>+        return retval;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_WARNING_POP()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the length of the string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  String in question.</div><div class='add'>+ * @return     Its length, in bytes.</div><div class='add'>+ * @pre        `str` must be an instance of ::RString.</div><div class='add'>+ */</div><div class='add'>+static inline long</div><div class='add'>+RSTRING_LEN(VALUE str)</div><div class='add'>+{</div><div class='add'>+    return rbimpl_rstring_getmem(str).as.heap.len;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the contents pointer of the string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  String in question.</div><div class='add'>+ * @return     Pointer to its contents.</div><div class='add'>+ * @pre        `str` must be an instance of ::RString.</div><div class='add'>+ */</div><div class='add'>+static inline char *</div><div class='add'>+RSTRING_PTR(VALUE str)</div><div class='add'>+{</div><div class='add'>+    char *ptr = rbimpl_rstring_getmem(str).as.heap.ptr;</div><div class='add'>+</div><div class='add'>+    if (RB_UNLIKELY(! ptr)) {</div><div class='add'>+        /* :BEWARE: @shyouhei thinks  that currently, there are  rooms for this</div><div class='add'>+         * function to return  NULL.  In the 20th century that  was a pointless</div><div class='add'>+         * concern.  However struct RString can hold fake strings nowadays.  It</div><div class='add'>+         * seems no  check against NULL  are exercised around handling  of them</div><div class='add'>+         * (one  of  such   usages  is  located  in   marshal.c,  which  scares</div><div class='add'>+         * @shyouhei).  Better check here for maximum safety.</div><div class='add'>+         *</div><div class='add'>+         * Also,  this is  not rb_warn()  because RSTRING_PTR()  can be  called</div><div class='add'>+         * during GC (see  what obj_info() does).  rb_warn()  needs to allocate</div><div class='add'>+         * Ruby objects.  That is not possible at this moment. */</div><div class='add'>+        rb_debug_rstring_null_ptr("RSTRING_PTR");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the end of the contents pointer of the string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  String in question.</div><div class='add'>+ * @return     Pointer to its end of contents.</div><div class='add'>+ * @pre        `str` must be an instance of ::RString.</div><div class='add'>+ */</div><div class='add'>+static inline char *</div><div class='add'>+RSTRING_END(VALUE str)</div><div class='add'>+{</div><div class='add'>+    struct RString buf = rbimpl_rstring_getmem(str);</div><div class='add'>+</div><div class='add'>+    if (RB_UNLIKELY(! buf.as.heap.ptr)) {</div><div class='add'>+        /* Ditto. */</div><div class='add'>+        rb_debug_rstring_null_ptr("RSTRING_END");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return &amp;buf.as.heap.ptr[buf.as.heap.len];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Identical to RSTRING_LEN(), except it differs for the return type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str             String in question.</div><div class='add'>+ * @exception  rb_eRangeError  Too long.</div><div class='add'>+ * @return     Its length, in bytes.</div><div class='add'>+ * @pre        `str` must be an instance of ::RString.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This API seems redundant but has actual usages.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+RSTRING_LENINT(VALUE str)</div><div class='add'>+{</div><div class='add'>+    return rb_long2int(RSTRING_LEN(str));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient macro to obtain the contents and length at once.</div><div class='add'>+ *</div><div class='add'>+ * @param  str     String in question.</div><div class='add'>+ * @param  ptrvar  Variable where its contents is stored.</div><div class='add'>+ * @param  lenvar  Variable where its length is stored.</div><div class='add'>+ */</div><div class='add'>+#ifdef HAVE_STMT_AND_DECL_IN_EXPR</div><div class='add'>+# define RSTRING_GETMEM(str, ptrvar, lenvar) \</div><div class='add'>+    __extension__ ({ \</div><div class='add'>+        struct RString rbimpl_str = rbimpl_rstring_getmem(str); \</div><div class='add'>+        (ptrvar) = rbimpl_str.as.heap.ptr; \</div><div class='add'>+        (lenvar) = rbimpl_str.as.heap.len; \</div><div class='add'>+    })</div><div class='add'>+#else</div><div class='add'>+# define RSTRING_GETMEM(str, ptrvar, lenvar) \</div><div class='add'>+    ((ptrvar) = RSTRING_PTR(str),           \</div><div class='add'>+     (lenvar) = RSTRING_LEN(str))</div><div class='add'>+#endif /* HAVE_STMT_AND_DECL_IN_EXPR */</div><div class='add'>+#endif /* RBIMPL_RSTRING_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rstruct.h b/include/ruby/internal/core/rstruct.h<br/>new file mode 100644<br/>index 0000000000..69be487b59<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rstruct.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rstruct.h</a></div><div class='hunk'>@@ -0,0 +1,121 @@</div><div class='add'>+#ifndef RBIMPL_RSTRUCT_H                             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RSTRUCT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Routines to manipulate struct RStruct.</div><div class='add'>+ * @note       The struct RStruct itself is opaque.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h"</div><div class='add'>+#include "ruby/internal/arithmetic/int.h"</div><div class='add'>+#if !defined RUBY_EXPORT &amp;&amp; !defined RUBY_NO_OLD_COMPATIBILITY</div><div class='add'>+# include "ruby/backward.h"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Declaration of rb_struct_ptr() is at include/ruby/backward.h.</div><div class='add'>+ */</div><div class='add'>+#define RSTRUCT_PTR(st) rb_struct_ptr(st)</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RSTRUCT_LEN RSTRUCT_LEN</div><div class='add'>+#define RSTRUCT_SET RSTRUCT_SET</div><div class='add'>+#define RSTRUCT_GET RSTRUCT_GET</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/**</div><div class='add'>+ * Returns the number of struct members.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  st  An instance of RStruct.</div><div class='add'>+ * @return     The number of members of `st`.</div><div class='add'>+ * @pre        `st` must be of ::RUBY_T_STRUCT.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_size(VALUE st);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles `Struct#[]`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  st              An instance of RStruct.</div><div class='add'>+ * @param[in]  k               Index a.k.a. key of the struct.</div><div class='add'>+ * @exception  rb_eTypeError   `k` is neither Numeric, Symbol, nor String.</div><div class='add'>+ * @exception  rb_eIndexError  Numerical index out of range.</div><div class='add'>+ * @exception  rb_eNameError   No such key.</div><div class='add'>+ * @return     The member stored at `k` in `st`.</div><div class='add'>+ * @pre        `st` must be of ::RUBY_T_STRUCT.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_aref(VALUE st, VALUE k);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles `Struct#[]=`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  st              An instance of RStruct.</div><div class='add'>+ * @param[in]   k               Index a.k.a. key of the struct.</div><div class='add'>+ * @param[in]   v               Value to store.</div><div class='add'>+ * @exception  rb_eTypeError    `k` is neither Numeric, Symbol, nor String.</div><div class='add'>+ * @exception  rb_eIndexError   Numerical index out of range.</div><div class='add'>+ * @exception  rb_eNameError    No such key.</div><div class='add'>+ * @return     Passed `v`.</div><div class='add'>+ * @pre        `st` must be of ::RUBY_T_STRUCT.</div><div class='add'>+ * @post       `v` is stored at `k` in `st`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_aset(VALUE st, VALUE k, VALUE v);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/** @copydoc rb_struct_size()  */</div><div class='add'>+static inline long</div><div class='add'>+RSTRUCT_LEN(VALUE st)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(st, RUBY_T_STRUCT);</div><div class='add'>+</div><div class='add'>+    return RB_NUM2LONG(rb_struct_size(st));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/** @copydoc rb_struct_aset()  */</div><div class='add'>+static inline VALUE</div><div class='add'>+RSTRUCT_SET(VALUE st, int k, VALUE v)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(st, RUBY_T_STRUCT);</div><div class='add'>+</div><div class='add'>+    return rb_struct_aset(st, INT2NUM(k), (v));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/** @copydoc rb_struct_aref()  */</div><div class='add'>+static inline VALUE</div><div class='add'>+RSTRUCT_GET(VALUE st, int k)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(st, RUBY_T_STRUCT);</div><div class='add'>+</div><div class='add'>+    return rb_struct_aref(st, INT2NUM(k));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_RSTRUCT_H */</div><div class='head'>diff --git a/include/ruby/internal/core/rtypeddata.h b/include/ruby/internal/core/rtypeddata.h<br/>new file mode 100644<br/>index 0000000000..bbf208867d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/core/rtypeddata.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/core/rtypeddata.h</a></div><div class='hunk'>@@ -0,0 +1,604 @@</div><div class='add'>+#ifndef RBIMPL_RTYPEDDATA_H                          /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RTYPEDDATA_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines struct ::RTypedData.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/assume.h"</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/flag_enum.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/core/rdata.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/error.h"</div><div class='add'>+#include "ruby/internal/fl_type.h"</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define HAVE_TYPE_RB_DATA_TYPE_T     1</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define HAVE_RB_DATA_TYPE_T_FUNCTION 1</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define HAVE_RB_DATA_TYPE_T_PARENT   1</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a  value you can set to  ::rb_data_type_struct::dfree.  Setting this</div><div class='add'>+ * means the data was allocated using ::ruby_xmalloc() (or variants), and shall</div><div class='add'>+ * be freed using ::ruby_xfree().</div><div class='add'>+ *</div><div class='add'>+ * @warning  Do not  use this  if you  want to use  system malloc,  because the</div><div class='add'>+ *           system  and  Ruby  might  or  might  not  share  the  same  malloc</div><div class='add'>+ *           implementation.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_TYPED_DEFAULT_FREE      RUBY_DEFAULT_FREE</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a  value you can set to  ::rb_data_type_struct::dfree.  Setting this</div><div class='add'>+ * means the data  is managed by someone else, like,  statically allocated.  Of</div><div class='add'>+ * course you are on your own then.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_TYPED_NEVER_FREE        RUBY_NEVER_FREE</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient casting macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   obj  An object, which is in fact an ::RTypedData.</div><div class='add'>+ * @return  The passed object casted to ::RTypedData.</div><div class='add'>+ */</div><div class='add'>+#define RTYPEDDATA(obj)              RBIMPL_CAST((struct RTypedData *)(obj))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient getter macro.</div><div class='add'>+ *</div><div class='add'>+ * @param   v  An object, which is in fact an ::RTypedData.</div><div class='add'>+ * @return  The passed object's ::RTypedData::data field.</div><div class='add'>+ */</div><div class='add'>+#define RTYPEDDATA_DATA(v)           (RTYPEDDATA(v)-&gt;data)</div><div class='add'>+</div><div class='add'>+/** @old{rb_check_typeddata} */</div><div class='add'>+#define Check_TypedStruct(v, t)      \</div><div class='add'>+    rb_check_typeddata(RBIMPL_CAST((VALUE)(v)), (t))</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RTYPEDDATA_P                 RTYPEDDATA_P</div><div class='add'>+#define RTYPEDDATA_TYPE              RTYPEDDATA_TYPE</div><div class='add'>+#define RUBY_TYPED_FREE_IMMEDIATELY  RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+#define RUBY_TYPED_FROZEN_SHAREABLE  RUBY_TYPED_FROZEN_SHAREABLE</div><div class='add'>+#define RUBY_TYPED_WB_PROTECTED      RUBY_TYPED_WB_PROTECTED</div><div class='add'>+#define RUBY_TYPED_PROMOTED1         RUBY_TYPED_PROMOTED1</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Bits for rb_data_type_struct::flags.</div><div class='add'>+ */</div><div class='add'>+enum</div><div class='add'>+RBIMPL_ATTR_FLAG_ENUM()</div><div class='add'>+rbimpl_typeddata_flags {</div><div class='add'>+    /**</div><div class='add'>+     * This flag has something to do  with Ruby's global interpreter lock.  For</div><div class='add'>+     * maximum  safety, Ruby  locks  the  entire VM  during  GC.  However  your</div><div class='add'>+     * callback functions  could unintentionally  unlock it, for  instance when</div><div class='add'>+     * they try to flush an IO  buffer.  Such operations are dangerous (threads</div><div class='add'>+     * then  run alongside  of GC).   By  default, to  prevent those  scenario,</div><div class='add'>+     * callbacks are deferred until the GC engine is 100% sure threads can run.</div><div class='add'>+     * This flag skips  that; structs with it are deallocated  during the sweep</div><div class='add'>+     * phase.</div><div class='add'>+     *</div><div class='add'>+     * Using this  flag needs deep understanding  of both GC and  threads.  You</div><div class='add'>+     * would better leave it unspecified.</div><div class='add'>+     */</div><div class='add'>+    RUBY_TYPED_FREE_IMMEDIATELY = 1,</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag has something to do with Ractor.  Multiple Ractors run without</div><div class='add'>+     * protecting each  other.  Sharing  an object  among Ractors  is basically</div><div class='add'>+     * dangerous,  disabled by  default.   This  flag is  used  to bypass  that</div><div class='add'>+     * restriction.  but  setting it is not  enough.  In addition to  do so, an</div><div class='add'>+     * object    also    has    to    be   frozen,    and    be    passed    to</div><div class='add'>+     * rb_ractor_make_shareable() before being  actually shareable.  Of course,</div><div class='add'>+     * you have to manually prevent race conditions then.</div><div class='add'>+     *</div><div class='add'>+     * Using this  flag needs deep understanding  of multithreaded programming.</div><div class='add'>+     * You would better leave it unspecified.</div><div class='add'>+     */</div><div class='add'>+    RUBY_TYPED_FROZEN_SHAREABLE = RUBY_FL_SHAREABLE,</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag  has something to do  with our garbage collector.   These days</div><div class='add'>+     * ruby  objects are  "generational".  There  are those  who are  young and</div><div class='add'>+     * those who are old.  Young objects are prone to die; monitored relatively</div><div class='add'>+     * extensively by  the garbage  collector.  OTOH old  objects tend  to live</div><div class='add'>+     * longer.  They  are relatively rarely considered.   This basically works.</div><div class='add'>+     * But there is one  tweak that has to be exercised.   When an elder object</div><div class='add'>+     * has reference(s)  to younger  one(s), that  referenced objects  must not</div><div class='add'>+     * die.  In order  to detect additions of such  references, old generations</div><div class='add'>+     * are  protected by  write  barriers.   It is  a  very  difficult hack  to</div><div class='add'>+     * appropriately  insert  write  barriers everywhere.   This  mechanism  is</div><div class='add'>+     * disabled by default for 3rd party  extensions (they never get aged).  By</div><div class='add'>+     * specifying this  flag you  can enable the  generational feature  to your</div><div class='add'>+     * data structure.  Of  course, you have to manually  insert write barriers</div><div class='add'>+     * then.</div><div class='add'>+     *</div><div class='add'>+     * Using this  flag needs deep understanding  of GC internals, often at the</div><div class='add'>+     * level of source code.  You would better leave it unspecified.</div><div class='add'>+     */</div><div class='add'>+    RUBY_TYPED_WB_PROTECTED     = RUBY_FL_WB_PROTECTED, /* THIS FLAG DEPENDS ON Ruby version */</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag  is mysterious.  It seems  nobody is currently using  it.  The</div><div class='add'>+     * intention of this flag is also unclear.  We need further investigations.</div><div class='add'>+     */</div><div class='add'>+    RUBY_TYPED_PROMOTED1        = RUBY_FL_PROMOTED1     /* THIS FLAG DEPENDS ON Ruby version */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This  is the  struct that  holds necessary  info for  a struct.   It roughly</div><div class='add'>+ * resembles a Ruby level class;  multiple objects can share a ::rb_data_type_t</div><div class='add'>+ * instance.</div><div class='add'>+ */</div><div class='add'>+typedef struct rb_data_type_struct rb_data_type_t;</div><div class='add'>+</div><div class='add'>+/** @copydoc rb_data_type_t */</div><div class='add'>+struct rb_data_type_struct {</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Name of  structs of this  kind.  This  is used for  diagnostic purposes.</div><div class='add'>+     * This has  to be unique  in the  process, but doesn't  has to be  a valid</div><div class='add'>+     * C/Ruby identifier.</div><div class='add'>+     */</div><div class='add'>+    const char *wrap_struct_name;</div><div class='add'>+</div><div class='add'>+    /** Function pointers.  Resembles C++ `vtbl`.*/</div><div class='add'>+    struct {</div><div class='add'>+</div><div class='add'>+        /**</div><div class='add'>+         * This function  is called when  the object is experiencing  GC marks.</div><div class='add'>+         * If it  contains references to other  Ruby objects, you need  to mark</div><div class='add'>+         * them also.  Otherwise GC will smash your data.</div><div class='add'>+         *</div><div class='add'>+         * @see      rb_gc_mark()</div><div class='add'>+         * @warning  This  is called  during GC  runs.  Object  allocations are</div><div class='add'>+         *           impossible at that moment (that is why GC runs).</div><div class='add'>+         */</div><div class='add'>+        RUBY_DATA_FUNC dmark;</div><div class='add'>+</div><div class='add'>+        /**</div><div class='add'>+         * This function is called when the object is no longer used.  You need</div><div class='add'>+         * to do whatever necessary to avoid memory leaks.</div><div class='add'>+         *</div><div class='add'>+         * @warning  This  is called  during GC  runs.  Object  allocations are</div><div class='add'>+         *           impossible at that moment (that is why GC runs).</div><div class='add'>+         */</div><div class='add'>+        RUBY_DATA_FUNC dfree;</div><div class='add'>+</div><div class='add'>+        /**</div><div class='add'>+         * This function is to query the size of the underlying memory regions.</div><div class='add'>+         *</div><div class='add'>+         * @internal</div><div class='add'>+         *</div><div class='add'>+         * This  function  has  only  one   usage,  which  is  form  inside  of</div><div class='add'>+         * `ext/objspace`.</div><div class='add'>+         */</div><div class='add'>+        size_t (*dsize)(const void *);</div><div class='add'>+</div><div class='add'>+        /**</div><div class='add'>+         * This  function  is  called  when  the  object  is  relocated.   Like</div><div class='add'>+         * ::rb_data_type_struct::dmark, you need to  update references to Ruby</div><div class='add'>+         * objects inside of your structs.</div><div class='add'>+         *</div><div class='add'>+         * @see      rb_gc_location()</div><div class='add'>+         * @warning  This  is called  during GC  runs.  Object  allocations are</div><div class='add'>+         *           impossible at that moment (that is why GC runs).</div><div class='add'>+         */</div><div class='add'>+        RUBY_DATA_FUNC dcompact;</div><div class='add'>+</div><div class='add'>+        /**</div><div class='add'>+         * This field  is reserved for future  extension.  For now, it  must be</div><div class='add'>+         * filled with zeros.</div><div class='add'>+         */</div><div class='add'>+        void *reserved[1]; /* For future extension.</div><div class='add'>+                              This array *must* be filled with ZERO. */</div><div class='add'>+    } function;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Parent  of  this  class.   Sometimes  C  structs  have  inheritance-like</div><div class='add'>+     * relationships.  An example is `struct sockaddr`  and its family.  If you</div><div class='add'>+     * design such things,  make ::rb_data_type_t for each of  them and connect</div><div class='add'>+     * using this field.   Ruby can then transparently cast your  data back and</div><div class='add'>+     * forth when you call #TypedData_Get_Struct().</div><div class='add'>+     *</div><div class='add'>+     * ```CXX</div><div class='add'>+     * struct parent { };</div><div class='add'>+     * static inline const rb_data_type_t parent_type = {</div><div class='add'>+     *     .wrap_struct_name = "parent",</div><div class='add'>+     * };</div><div class='add'>+     *</div><div class='add'>+     * struct child: public parent { };</div><div class='add'>+     * static inline const rb_data_type_t child_type = {</div><div class='add'>+     *     .wrap_struct_name = "child",</div><div class='add'>+     *     .parent = &amp;parent_type,</div><div class='add'>+     * };</div><div class='add'>+     *</div><div class='add'>+     * // This function can take both parent_class and child_class.</div><div class='add'>+     * static inline struct parent *</div><div class='add'>+     * get_parent(VALUE v)</div><div class='add'>+     * {</div><div class='add'>+     *     struct parent *p;</div><div class='add'>+     *     TypedData_Get_Struct(v, parent_type, struct parent, p);</div><div class='add'>+     *     return p;</div><div class='add'>+     * }</div><div class='add'>+     * ```</div><div class='add'>+     */</div><div class='add'>+    const rb_data_type_t *parent;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Type-specific static data.   This area can be used for  any purpose by a</div><div class='add'>+     * programmer who define the type.  Ruby does not manage this at all.</div><div class='add'>+     */</div><div class='add'>+    void *data;        /* This area can be used for any purpose</div><div class='add'>+                          by a programmer who define the type. */</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Type-specific behavioural  characteristics.  This is a  bitfield.  It is</div><div class='add'>+     * an EXTREMELY  WISE IDEA to  leave this field  blank.  It is  designed so</div><div class='add'>+     * that setting  zero is the safest  thing to do.   If you risk to  set any</div><div class='add'>+     * bits on, you have to know exactly what you are doing.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * Why it has to be a ::VALUE?  @shyouhei doesn't understand the design.</div><div class='add'>+     */</div><div class='add'>+    VALUE flags;       /* RUBY_FL_WB_PROTECTED */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * "Typed" user data.   By using this, extension libraries can  wrap a C struct</div><div class='add'>+ * to make it visible from Ruby.  For  instance if you have a `struct timeval`,</div><div class='add'>+ * and you want users to use it,</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * static inline const rb_data_type_t timeval_type = {</div><div class='add'>+ *     // Note that unspecified fields are 0-filled by default.</div><div class='add'>+ *     .wrap_struct_name = "timeval",</div><div class='add'>+ *     .function = {</div><div class='add'>+ *         .dmark = nullptr,                 // no need to mark</div><div class='add'>+ *         .dfree = RUBY_TYPED_DEFAULT_FREE, // use ruby_xfree()</div><div class='add'>+ *         .dsize = [](auto) {</div><div class='add'>+ *             return sizeof(struct timeval);</div><div class='add'>+ *         },</div><div class='add'>+ *     },</div><div class='add'>+ * };</div><div class='add'>+ *</div><div class='add'>+ * extern "C" void</div><div class='add'>+ * Init_timeval(void)</div><div class='add'>+ * {</div><div class='add'>+ *     auto klass = rb_define_class("YourName", rb_cObject);</div><div class='add'>+ *</div><div class='add'>+ *     rb_define_alloc_func(klass, [](auto klass) {</div><div class='add'>+ *         struct timeval *t;</div><div class='add'>+ *         auto ret = TypedData_Make_Struct(</div><div class='add'>+ *            klass, struct timeval, &amp;timeval_type, t);</div><div class='add'>+ *</div><div class='add'>+ *         if (auto i = gettimeofday(t, nullptr); i == -1) {</div><div class='add'>+ *             rb_sys_fail("gettimeofday(3)");</div><div class='add'>+ *         }</div><div class='add'>+ *         else {</div><div class='add'>+ *             return ret;</div><div class='add'>+ *         }</div><div class='add'>+ *     });</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+struct RTypedData {</div><div class='add'>+</div><div class='add'>+    /** The part that all ruby objects have in common. */</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This field  stores various  information about how  Ruby should  handle a</div><div class='add'>+     * data.   This roughly  resembles a  Ruby level  class (apart  from method</div><div class='add'>+     * definition etc.)</div><div class='add'>+     */</div><div class='add'>+    const rb_data_type_t *type;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This has to be always 1.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * Why, then, this is not a const ::VALUE?</div><div class='add'>+     */</div><div class='add'>+    VALUE typed_flag;</div><div class='add'>+</div><div class='add'>+    /** Pointer to the actual C level struct that you want to wrap. */</div><div class='add'>+    void *data;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((3))</div><div class='add'>+/**</div><div class='add'>+ * This is the primitive way to wrap an existing C struct into ::RTypedData.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass          Ruby level class of the returning object.</div><div class='add'>+ * @param[in]  datap          Pointer to the target C struct.</div><div class='add'>+ * @param[in]  type           The characteristics of the passed data.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @exception  rb_eNoMemError  Out of memory.</div><div class='add'>+ * @return     An allocated object that wraps `datap`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_data_typed_object_wrap(VALUE klass, void *datap, const rb_data_type_t *type);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_data_typed_object_wrap(),  except it  allocates a  new data</div><div class='add'>+ * region internally instead of taking an existing one.  The allocation is done</div><div class='add'>+ * using ruby_calloc().  Hence it makes  no sense for `type-&gt;function.dfree` to</div><div class='add'>+ * be anything other than ::RUBY_TYPED_DEFAULT_FREE.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass          Ruby level class of the returning object.</div><div class='add'>+ * @param[in]  size           Requested size of memory to allocate.</div><div class='add'>+ * @param[in]  type           The characteristics of the passed data.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @exception  rb_eNoMemError  Out of memory.</div><div class='add'>+ * @return     An allocated object that wraps a new `size` byte region.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_data_typed_object_zalloc(VALUE klass, size_t size, const rb_data_type_t *type);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks for the domestic relationship between the two.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  child   A data type supposed to be a child of `parent`.</div><div class='add'>+ * @param[in]  parent  A data type supposed to be a parent of `child`.</div><div class='add'>+ * @retval     true    `child` is a descendent of `parent`.</div><div class='add'>+ * @retval     false   Otherwise.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * You can path NULL to both arguments, don't know what that means though.</div><div class='add'>+ */</div><div class='add'>+int rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks if the given object is of given kind.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj        An instance of ::RTypedData.</div><div class='add'>+ * @param[in]  data_type  Expected data type of `obj`.</div><div class='add'>+ * @retval     true       `obj` is of `data_type`.</div><div class='add'>+ * @retval     false      Otherwise.</div><div class='add'>+ */</div><div class='add'>+int rb_typeddata_is_kind_of(VALUE obj, const rb_data_type_t *data_type);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_typeddata_is_kind_of(), except  it raises exceptions instead</div><div class='add'>+ * of returning false.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            An instance of ::RTypedData.</div><div class='add'>+ * @param[in]  data_type      Expected data type of `obj`.</div><div class='add'>+ * @exception  rb_eTypeError  obj is not of `data_type`.</div><div class='add'>+ * @return     Unwrapped C struct that `obj` holds.</div><div class='add'>+ * @post       Upon successful return `obj`'s type is guaranteed `data_type`.</div><div class='add'>+ */</div><div class='add'>+void *rb_check_typeddata(VALUE obj, const rb_data_type_t *data_type);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts sval, a pointer to your struct, into a Ruby object.</div><div class='add'>+ *</div><div class='add'>+ * @param      klass          A ruby level class.</div><div class='add'>+ * @param      data_type      The type of `sval`.</div><div class='add'>+ * @param      sval           A pointer to your struct.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @exception  rb_eNoMemError  Out of memory.</div><div class='add'>+ * @return     A created Ruby object.</div><div class='add'>+ */</div><div class='add'>+#define TypedData_Wrap_Struct(klass,data_type,sval)\</div><div class='add'>+  rb_data_typed_object_wrap((klass),(sval),(data_type))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is  an implementation  detail of #TypedData_Make_Struct.   People don't</div><div class='add'>+ * use it directly.</div><div class='add'>+ *</div><div class='add'>+ * @param  result     Variable name of created Ruby object.</div><div class='add'>+ * @param  klass      Ruby level class of the object.</div><div class='add'>+ * @param  type       Type name of the C struct.</div><div class='add'>+ * @param  size       Size of the C struct.</div><div class='add'>+ * @param  data_type  The data type describing `type`.</div><div class='add'>+ * @param  sval       Variable name of created C struct.</div><div class='add'>+ */</div><div class='add'>+#define TypedData_Make_Struct0(result, klass, type, size, data_type, sval) \</div><div class='add'>+    VALUE result = rb_data_typed_object_zalloc(klass, size, data_type);    \</div><div class='add'>+    (sval) = RBIMPL_CAST((type *)RTYPEDDATA_DATA(result));                  \</div><div class='add'>+    RBIMPL_CAST(/*suppress unused variable warnings*/(void)(sval))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #TypedData_Wrap_Struct,  except it allocates a  new data region</div><div class='add'>+ * internally instead of taking an existing  one.  The allocation is done using</div><div class='add'>+ * ruby_calloc().  Hence  it makes no sense  for `data_type-&gt;function.dfree` to</div><div class='add'>+ * be anything other than ::RUBY_TYPED_DEFAULT_FREE.</div><div class='add'>+ *</div><div class='add'>+ * @param      klass          Ruby level class of the object.</div><div class='add'>+ * @param      type           Type name of the C struct.</div><div class='add'>+ * @param      data_type      The data type describing `type`.</div><div class='add'>+ * @param      sval           Variable name of created C struct.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @exception  rb_eNoMemError  Out of memory.</div><div class='add'>+ * @return     A created Ruby object.</div><div class='add'>+ */</div><div class='add'>+#ifdef HAVE_STMT_AND_DECL_IN_EXPR</div><div class='add'>+#define TypedData_Make_Struct(klass, type, data_type, sval) \</div><div class='add'>+    RB_GNUC_EXTENSION({         \</div><div class='add'>+        TypedData_Make_Struct0( \</div><div class='add'>+            data_struct_obj,    \</div><div class='add'>+            klass,              \</div><div class='add'>+            type,               \</div><div class='add'>+            sizeof(type),       \</div><div class='add'>+            data_type,          \</div><div class='add'>+            sval);              \</div><div class='add'>+        data_struct_obj;        \</div><div class='add'>+    })</div><div class='add'>+#else</div><div class='add'>+#define TypedData_Make_Struct(klass, type, data_type, sval) \</div><div class='add'>+    rb_data_typed_object_make(        \</div><div class='add'>+        (klass),                      \</div><div class='add'>+        (data_type),                  \</div><div class='add'>+        RBIMPL_CAST((void **)&amp;(sval)), \</div><div class='add'>+        sizeof(type))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Obtains a C struct from inside of a wrapper Ruby object.</div><div class='add'>+ *</div><div class='add'>+ * @param      obj            An instance of ::RTypedData.</div><div class='add'>+ * @param      type           Type name of the C struct.</div><div class='add'>+ * @param      data_type      The data type describing `type`.</div><div class='add'>+ * @param      sval           Variable name of obtained C struct.</div><div class='add'>+ * @exception  rb_eTypeError  `obj` is not a kind of `data_type`.</div><div class='add'>+ * @return     Unwrapped C struct that `obj` holds.</div><div class='add'>+ */</div><div class='add'>+#define TypedData_Get_Struct(obj,type,data_type,sval) \</div><div class='add'>+    ((sval) = RBIMPL_CAST((type *)rb_check_typeddata((obj), (data_type))))</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is an  implementation detail  of  Check_Type().  People  don't use  it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question</div><div class='add'>+ * @retval     true   `obj` is an instance of ::RTypedData.</div><div class='add'>+ * @retval     false  `obj` is an instance of ::RData.</div><div class='add'>+ * @pre        `obj` must be a Ruby object of ::RUBY_T_DATA.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rbimpl_rtypeddata_p(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return RTYPEDDATA(obj)-&gt;typed_flag == 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Checks whether the passed object is ::RTypedData or ::RData.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question</div><div class='add'>+ * @retval     true   `obj` is an instance of ::RTypedData.</div><div class='add'>+ * @retval     false  `obj` is an instance of ::RData.</div><div class='add'>+ * @pre        `obj` must be a Ruby object of ::RUBY_T_DATA.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RTYPEDDATA_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+#if RUBY_DEBUG</div><div class='add'>+    if (RB_UNLIKELY(! RB_TYPE_P(obj, RUBY_T_DATA))) {</div><div class='add'>+        Check_Type(obj, RUBY_T_DATA);</div><div class='add'>+        RBIMPL_UNREACHABLE_RETURN(false);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return rbimpl_rtypeddata_p(obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/* :TODO: can this function be __attribute__((returns_nonnull)) or not? */</div><div class='add'>+/**</div><div class='add'>+ * Queries for the type of given object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question</div><div class='add'>+ * @return     Data type struct that corresponds to `obj`.</div><div class='add'>+ * @pre        `obj` must be an instance of ::RTypedData.</div><div class='add'>+ */</div><div class='add'>+static inline const struct rb_data_type_struct *</div><div class='add'>+RTYPEDDATA_TYPE(VALUE obj)</div><div class='add'>+{</div><div class='add'>+#if RUBY_DEBUG</div><div class='add'>+    if (RB_UNLIKELY(! RTYPEDDATA_P(obj))) {</div><div class='add'>+        rb_unexpected_type(obj, RUBY_T_DATA);</div><div class='add'>+        RBIMPL_UNREACHABLE_RETURN(NULL);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return RTYPEDDATA(obj)-&gt;type;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * While  we don't  stop  you from  using  this  function, it  seems  to be  an</div><div class='add'>+ * implementation  detail of  #TypedData_Make_Struct, which  is preferred  over</div><div class='add'>+ * this one.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass      Ruby level class of the returning object.</div><div class='add'>+ * @param[in]  type       The data type</div><div class='add'>+ * @param[out] datap      Return pointer.</div><div class='add'>+ * @param[in]  size       Size of the C struct.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @exception  rb_eNoMemError  Out of memory.</div><div class='add'>+ * @return     A created Ruby object.</div><div class='add'>+ * @post       `*datap` points to the C struct wrapped by the returned object.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_data_typed_object_make(VALUE klass, const rb_data_type_t *type, void **datap, size_t size)</div><div class='add'>+{</div><div class='add'>+    TypedData_Make_Struct0(result, klass, void, size, type, *datap);</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("by: rb_data_typed_object_wrap"))</div><div class='add'>+/** @deprecated  This function was renamed to rb_data_typed_object_wrap(). */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *type)</div><div class='add'>+{</div><div class='add'>+    return rb_data_typed_object_wrap(klass, datap, type);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_RTYPEDDATA_H */</div><div class='head'>diff --git a/include/ruby/internal/ctype.h b/include/ruby/internal/ctype.h<br/>new file mode 100644<br/>index 0000000000..0f7ca6c516<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/ctype.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/ctype.h</a></div><div class='hunk'>@@ -0,0 +1,545 @@</div><div class='add'>+#ifndef RBIMPL_CTYPE_H                               /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_CTYPE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Our own, locale independent, character handling routines.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;ctype.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/constexpr.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Old character classification macros</div><div class='add'>+ *</div><div class='add'>+ * What  is this  #ISPRINT  business?   Well, according  to  our  VCS and  some</div><div class='add'>+ * internet surfing, it appears that the initial intent of these macros were to</div><div class='add'>+ * mimic codes appear  in common in several GNU projects.   As far as @shyouhei</div><div class='add'>+ * detects they  seem to originate GNU  regex (that standalone one  rather than</div><div class='add'>+ * Gnulib or Glibc), and at least date back to 1995.</div><div class='add'>+ *</div><div class='add'>+ * Let me lawfully quote from a GNU coreutils commit</div><div class='add'>+ * https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=49803907f5dbd7646184a8912c9db9b09dcd0f22</div><div class='add'>+ *</div><div class='add'>+ *   &gt; Jim Meyering writes:</div><div class='add'>+ *   &gt;</div><div class='add'>+ *   &gt; "... Some ctype macros are valid only for character codes that</div><div class='add'>+ *   &gt; isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when</div><div class='add'>+ *   &gt; using /bin/cc or gcc but without giving an ansi option).  So, all</div><div class='add'>+ *   &gt; ctype uses should be through macros like ISPRINT...  If</div><div class='add'>+ *   &gt; STDC_HEADERS is defined, then autoconf has verified that the ctype</div><div class='add'>+ *   &gt; macros don't need to be guarded with references to isascii. ...</div><div class='add'>+ *   &gt; Defining isascii to 1 should let any compiler worth its salt</div><div class='add'>+ *   &gt; eliminate the &amp;&amp; through constant folding."</div><div class='add'>+ *   &gt;</div><div class='add'>+ *   &gt; Bruno Haible adds:</div><div class='add'>+ *   &gt;</div><div class='add'>+ *   &gt; "... Furthermore, isupper(c) etc. have an undefined result if c is</div><div class='add'>+ *   &gt; outside the range -1 &lt;= c &lt;= 255. One is tempted to write isupper(c)</div><div class='add'>+ *   &gt; with c being of type `char', but this is wrong if c is an 8-bit</div><div class='add'>+ *   &gt; character &gt;= 128 which gets sign-extended to a negative value.</div><div class='add'>+ *   &gt; The macro ISUPPER protects against this as well."</div><div class='add'>+ *</div><div class='add'>+ * So the intent  was to reroute old problematic systems  that no longer exist.</div><div class='add'>+ * At the same time the problems described  above no longer hurt us, because we</div><div class='add'>+ * decided to completely  avoid using system-provided isupper  etc. to reinvent</div><div class='add'>+ * the wheel.  These macros are entirely legacy; please ignore them.</div><div class='add'>+ *</div><div class='add'>+ * But let me also  put stress that GNU people are wise;  they use those macros</div><div class='add'>+ * only inside of  their own implementations and never let  them be public.  On</div><div class='add'>+ * the other hand ruby has thoughtlessly publicised them to 3rd party libraries</div><div class='add'>+ * since its beginning, which is a very bad idea.  These macros are too easy to</div><div class='add'>+ * get conflicted with definitions elsewhere.</div><div class='add'>+ *</div><div class='add'>+ * New programs should stick to the `rb_` prefixed names.</div><div class='add'>+ *</div><div class='add'>+ * @note  It seems we just mimic the API.  We do not share their implementation</div><div class='add'>+ *        with GPL-ed programs.</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+#ifndef ISPRINT</div><div class='add'>+# define ISASCII  rb_isascii    /**&lt; @old{rb_isascii}*/</div><div class='add'>+# define ISPRINT  rb_isprint    /**&lt; @old{rb_isprint}*/</div><div class='add'>+# define ISGRAPH  rb_isgraph    /**&lt; @old{rb_isgraph}*/</div><div class='add'>+# define ISSPACE  rb_isspace    /**&lt; @old{rb_isspace}*/</div><div class='add'>+# define ISUPPER  rb_isupper    /**&lt; @old{rb_isupper}*/</div><div class='add'>+# define ISLOWER  rb_islower    /**&lt; @old{rb_islower}*/</div><div class='add'>+# define ISALNUM  rb_isalnum    /**&lt; @old{rb_isalnum}*/</div><div class='add'>+# define ISALPHA  rb_isalpha    /**&lt; @old{rb_isalpha}*/</div><div class='add'>+# define ISDIGIT  rb_isdigit    /**&lt; @old{rb_isdigit}*/</div><div class='add'>+# define ISXDIGIT rb_isxdigit   /**&lt; @old{rb_isxdigit}*/</div><div class='add'>+# define ISBLANK  rb_isblank    /**&lt; @old{rb_isblank}*/</div><div class='add'>+# define ISCNTRL  rb_iscntrl    /**&lt; @old{rb_iscntrl}*/</div><div class='add'>+# define ISPUNCT  rb_ispunct    /**&lt; @old{rb_ispunct}*/</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define TOUPPER     rb_toupper    /**&lt; @old{rb_toupper}*/</div><div class='add'>+#define TOLOWER     rb_tolower    /**&lt; @old{rb_tolower}*/</div><div class='add'>+#define STRCASECMP  st_locale_insensitive_strcasecmp  /**&lt; @old{st_locale_insensitive_strcasecmp}*/</div><div class='add'>+#define STRNCASECMP st_locale_insensitive_strncasecmp /**&lt; @old{st_locale_insensitive_strncasecmp}*/</div><div class='add'>+#define STRTOUL     ruby_strtoul  /**&lt; @old{ruby_strtoul}*/</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/** @name locale insensitive functions</div><div class='add'>+ *  @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/* In descriptions below, `the POSIX Locale` and `the "C" locale` are tactfully</div><div class='add'>+ * used as to whether the described function mimics POSIX or C99. */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Our  own locale-insensitive  version  of `strcasecmp(3)`.   The "case"  here</div><div class='add'>+ * always means that of the POSIX  Locale.  It doesn't depend on runtime locale</div><div class='add'>+ * settings.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  s1  Comparison LHS.</div><div class='add'>+ * @param[in]  s2  Comparison RHS.</div><div class='add'>+ * @retval     -1  `s1` is "less" than `s2`.</div><div class='add'>+ * @retval      0  Both strings converted into lowercase would be identical.</div><div class='add'>+ * @retval      1  `s1` is "greater" than `s2`.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ */</div><div class='add'>+int st_locale_insensitive_strcasecmp(const char *s1, const char *s2);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Our  own locale-insensitive  version of  `strcnasecmp(3)`.  The  "case" here</div><div class='add'>+ * always means that of the POSIX  Locale.  It doesn't depend on runtime locale</div><div class='add'>+ * settings.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  s1  Comparison LHS.</div><div class='add'>+ * @param[in]  s2  Comparison RHS.</div><div class='add'>+ * @param[in]  n   Comparison shall stop after first `n` bytes are scanned.</div><div class='add'>+ * @retval     -1  `s1` is "less" than `s2`.</div><div class='add'>+ * @retval      0  Both strings converted into lowercase would be identical.</div><div class='add'>+ * @retval      1  `s1` is "greater" than `s2`.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    This function is _not_ timing safe.</div><div class='add'>+ */</div><div class='add'>+int st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of  `strtoul(3)`.  The conversion is done</div><div class='add'>+ * as if the current locale is set  to the "C" locale, no matter actual runtime</div><div class='add'>+ * locale settings.</div><div class='add'>+ *</div><div class='add'>+ * @note        This is needed because  `strtoul("i", 0, 36)` would return zero</div><div class='add'>+ *              if it is locale sensitive and the current locale is `tr_TR`.</div><div class='add'>+ * @param[in]   str     String of digits,  optionally preceded with whitespaces</div><div class='add'>+ *                      (ignored) and optionally `+` or `-` sign.</div><div class='add'>+ * @param[out]  endptr  NULL, or an arbitrary pointer (overwritten on return).</div><div class='add'>+ * @param[in]   base    `2` to  `36` inclusive for  each base, or  special case</div><div class='add'>+ *                      `0` to detect the base from the contents of the string.</div><div class='add'>+ * @return      Converted integer, casted to unsigned long.</div><div class='add'>+ * @post        If `endptr` is not NULL, it  is updated to point the first such</div><div class='add'>+ *              byte where conversion failed.</div><div class='add'>+ * @note        This function sets `errno` on failure.</div><div class='add'>+ *                - `EINVAL`: Passed `base` is out of range.</div><div class='add'>+ *                - `ERANGE`: Converted integer is out of range of `long`.</div><div class='add'>+ * @warning     As far as @shyouhei reads ISO/IEC 9899:2018 section 7.22.1.4, a</div><div class='add'>+ *              conforming  `strtoul`  implementation   shall  render  `ERANGE`</div><div class='add'>+ *              whenever  it  finds  the  input string  represents  a  negative</div><div class='add'>+ *              integer.  Such thing can never be representable using `unsigned</div><div class='add'>+ *              long`.   However  this  implementation  does  not  honour  that</div><div class='add'>+ *              language.   It just  casts such  negative value  to the  return</div><div class='add'>+ *              type, resulting a very big  return value.  This behaviour is at</div><div class='add'>+ *              least questionable.  But  we can no longer change  that at this</div><div class='add'>+ *              point.</div><div class='add'>+ * @note        Not only  does this  function works under  the "C"  locale, but</div><div class='add'>+ *              also assumes its execution character  set be what ruby calls an</div><div class='add'>+ *              ASCII-compatible  character set;  which  does  not include  for</div><div class='add'>+ *              instance EBCDIC or UTF-16LE.</div><div class='add'>+ */</div><div class='add'>+unsigned long ruby_strtoul(const char *str, char **endptr, int base);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * We are making  the functions below to return `int`  instead of `bool`.  They</div><div class='add'>+ * have been as such since their birth at 5f237d79033b2109afb768bc889611fa9630.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `isascii(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     false  `c` is out of range of ASCII character set.</div><div class='add'>+ * @retval     true   Yes it is.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_isascii(int c)</div><div class='add'>+{</div><div class='add'>+    return '\0' &lt;= c &amp;&amp; c &lt;= '\x7f';</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `isupper(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed  in IEEE 1003.1 section 7.3.1.1 "upper".</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_isupper(int c)</div><div class='add'>+{</div><div class='add'>+    return 'A' &lt;= c &amp;&amp; c &lt;= 'Z';</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `islower(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed  in IEEE 1003.1 section 7.3.1.1 "lower".</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_islower(int c)</div><div class='add'>+{</div><div class='add'>+    return 'a' &lt;= c &amp;&amp; c &lt;= 'z';</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `isalpha(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed in  either  IEEE  1003.1 section  7.3.1.1</div><div class='add'>+ *                    "upper" or "lower".</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_isalpha(int c)</div><div class='add'>+{</div><div class='add'>+    return rb_isupper(c) || rb_islower(c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `isdigit(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed  in IEEE 1003.1 section 7.3.1.1 "digit".</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_isdigit(int c)</div><div class='add'>+{</div><div class='add'>+    return '0' &lt;= c &amp;&amp; c &lt;= '9';</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `isalnum(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed in  either  IEEE  1003.1 section  7.3.1.1</div><div class='add'>+ *                    "upper", "lower", or "digit".</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_isalnum(int c)</div><div class='add'>+{</div><div class='add'>+    return rb_isalpha(c) || rb_isdigit(c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `isxdigit(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed  in IEEE 1003.1 section 7.3.1.1 "xdigit".</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_isxdigit(int c)</div><div class='add'>+{</div><div class='add'>+    return rb_isdigit(c) || ('A' &lt;= c &amp;&amp; c &lt;= 'F') || ('a' &lt;= c &amp;&amp; c &lt;= 'f');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `isblank(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed  in IEEE 1003.1 section 7.3.1.1 "blank".</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_isblank(int c)</div><div class='add'>+{</div><div class='add'>+    return c == ' ' || c == '\t';</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `isspace(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed  in IEEE 1003.1 section 7.3.1.1 "space".</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_isspace(int c)</div><div class='add'>+{</div><div class='add'>+    return c == ' ' || ('\t' &lt;= c &amp;&amp; c &lt;= '\r');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `iscntrl(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed  in IEEE 1003.1 section 7.3.1.1 "cntrl".</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_iscntrl(int c)</div><div class='add'>+{</div><div class='add'>+    return ('\0' &lt;= c &amp;&amp; c &lt; ' ') || c == '\x7f';</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_isgraph(), except it also returns true for `' '`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed in  either  IEEE  1003.1 section  7.3.1.1</div><div class='add'>+ *                    "upper", "lower", "digit", "punct", or a `' '`.</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_isprint(int c)</div><div class='add'>+{</div><div class='add'>+    return ' ' &lt;= c &amp;&amp; c &lt;= '\x7e';</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `ispunct(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed  in IEEE 1003.1 section 7.3.1.1 "punct".</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_ispunct(int c)</div><div class='add'>+{</div><div class='add'>+    return !rb_isalnum(c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `isgraph(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c      Byte in question to query.</div><div class='add'>+ * @retval     true   `c`  is  listed in  either  IEEE  1003.1 section  7.3.1.1</div><div class='add'>+ *                    "upper", "lower", "digit", or "punct".</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_isgraph(int c)</div><div class='add'>+{</div><div class='add'>+    return '!' &lt;= c &amp;&amp; c &lt;= '\x7e';</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `tolower(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          Byte in question to convert.</div><div class='add'>+ * @retval     c          The  byte is  not listed  in in  IEEE 1003.1  section</div><div class='add'>+ *                        7.3.1.1 "upper".</div><div class='add'>+ * @retval     otherwise  Byte converted  using the map defined  in IEEE 1003.1</div><div class='add'>+ *                        section 7.3.1 "tolower".</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_tolower(int c)</div><div class='add'>+{</div><div class='add'>+    return rb_isupper(c) ? (c|0x20) : c;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `toupper(3)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          Byte in question to convert.</div><div class='add'>+ * @retval     c          The  byte is  not listed  in in  IEEE 1003.1  section</div><div class='add'>+ *                        7.3.1.1 "lower".</div><div class='add'>+ * @retval     otherwise  Byte converted  using the map defined  in IEEE 1003.1</div><div class='add'>+ *                        section 7.3.1 "toupper".</div><div class='add'>+ * @note       Not only  does this function  works under the POSIX  Locale, but</div><div class='add'>+ *             also assumes its  execution character set be what  ruby calls an</div><div class='add'>+ *             ASCII-compatible  character  set;  which does  not  include  for</div><div class='add'>+ *             instance EBCDIC or UTF-16LE.</div><div class='add'>+ * @warning    `c` is  an int.  This  means that when  you pass a  `char` value</div><div class='add'>+ *             here, it  experiences "integer promotion" as  defined in ISO/IEC</div><div class='add'>+ *             9899:2018 section 6.3.1.1 paragraph 1.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_toupper(int c)</div><div class='add'>+{</div><div class='add'>+    return rb_islower(c) ? (c&amp;0x5f) : c;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+#endif /* RBIMPL_CTYPE_H */</div><div class='head'>diff --git a/include/ruby/internal/dllexport.h b/include/ruby/internal/dllexport.h<br/>new file mode 100644<br/>index 0000000000..08a262209d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/dllexport.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/dllexport.h</a></div><div class='hunk'>@@ -0,0 +1,112 @@</div><div class='add'>+#ifndef RBIMPL_DLLEXPORT_H                           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_DLLEXPORT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Tweaking visibility of C variables/functions.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/compiler_is.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Declaration of externally visible global variables.  Here "externally" means</div><div class='add'>+ * they should  be visible  from extension  libraries.  Depending  on operating</div><div class='add'>+ * systems (dynamic linkers,  to be precise), global variables inside  of a DLL</div><div class='add'>+ * may  or may  not be  visible  form outside  of  that DLL  by default.   This</div><div class='add'>+ * declaration manually tweaks  that default and ensures  the declared variable</div><div class='add'>+ * be truly globally visible.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * extern VALUE foo;      // hidden on some OS</div><div class='add'>+ * RUBY_EXTERN VALUE foo; // ensure visible</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+#undef RUBY_EXTERN</div><div class='add'>+#if defined(MJIT_HEADER) &amp;&amp; defined(_WIN32)</div><div class='add'>+# define RUBY_EXTERN extern __declspec(dllimport)</div><div class='add'>+#elif defined(RUBY_EXPORT)</div><div class='add'>+# define RUBY_EXTERN extern</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+# define RUBY_EXTERN extern __declspec(dllimport)</div><div class='add'>+#else</div><div class='add'>+# define RUBY_EXTERN extern</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+# define RUBY_SYMBOL_EXPORT_BEGIN /* begin */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_SYMBOL_EXPORT_END</div><div class='add'>+# define RUBY_SYMBOL_EXPORT_END   /* end */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef RUBY_FUNC_EXPORTED</div><div class='add'>+# define RUBY_FUNC_EXPORTED /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @cond INTERNAL_MACRO</div><div class='add'>+ *</div><div class='add'>+ * These MJIT related macros are placed here because translate_mjit_header can</div><div class='add'>+ * need them.  Extension libraries should not touch.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/* These macros are used for functions which are exported only for MJIT</div><div class='add'>+   and NOT ensured to be exported in future versions. */</div><div class='add'>+</div><div class='add'>+#if ! defined(MJIT_HEADER)</div><div class='add'>+# define MJIT_FUNC_EXPORTED RUBY_FUNC_EXPORTED</div><div class='add'>+#elif ! RBIMPL_COMPILER_IS(MSVC)</div><div class='add'>+# define MJIT_FUNC_EXPORTED RUBY_FUNC_EXPORTED</div><div class='add'>+#else</div><div class='add'>+# define MJIT_FUNC_EXPORTED static</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define MJIT_SYMBOL_EXPORT_BEGIN RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+#define MJIT_SYMBOL_EXPORT_END   RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+/* On mswin, MJIT header transformation can't be used since cl.exe can't output</div><div class='add'>+   preprocessed output preserving macros. So this `MJIT_STATIC` is needed</div><div class='add'>+   to force non-static function to static on MJIT header to avoid symbol conflict. */</div><div class='add'>+#ifdef MJIT_HEADER</div><div class='add'>+# define MJIT_STATIC static</div><div class='add'>+#else</div><div class='add'>+# define MJIT_STATIC</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/** Shortcut macro equivalent to `RUBY_SYMBOL_EXPORT_BEGIN extern "C" {`.</div><div class='add'>+ * \@shyouhei finds it handy. */</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+# define RBIMPL_SYMBOL_EXPORT_BEGIN() /* void */</div><div class='add'>+#elif defined(__cplusplus)</div><div class='add'>+# define RBIMPL_SYMBOL_EXPORT_BEGIN() RUBY_SYMBOL_EXPORT_BEGIN extern "C" {</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_SYMBOL_EXPORT_BEGIN() RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Counterpart of #RBIMPL_SYMBOL_EXPORT_BEGIN */</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+# define RBIMPL_SYMBOL_EXPORT_END() /* void */</div><div class='add'>+#elif defined(__cplusplus)</div><div class='add'>+# define RBIMPL_SYMBOL_EXPORT_END() } RUBY_SYMBOL_EXPORT_END</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_SYMBOL_EXPORT_END()   RUBY_SYMBOL_EXPORT_END</div><div class='add'>+#endif</div><div class='add'>+#endif /* RBIMPL_DLLEXPORT_H */</div><div class='head'>diff --git a/include/ruby/internal/dosish.h b/include/ruby/internal/dosish.h<br/>new file mode 100644<br/>index 0000000000..7d354ddd1a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/dosish.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/dosish.h</a></div><div class='hunk'>@@ -0,0 +1,89 @@</div><div class='add'>+#ifndef RBIMPL_DOSISH_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_DOSISH_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Support for so-called dosish systems.</div><div class='add'>+ */</div><div class='add'>+#ifdef __CYGWIN__</div><div class='add'>+#undef _WIN32</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+/*</div><div class='add'>+  DOSISH mean MS-Windows style filesystem.</div><div class='add'>+  But you should use more precise macros like DOSISH_DRIVE_LETTER, PATH_SEP,</div><div class='add'>+  ENV_IGNORECASE or CASEFOLD_FILESYSTEM.</div><div class='add'>+ */</div><div class='add'>+#define DOSISH 1</div><div class='add'>+# define DOSISH_DRIVE_LETTER</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+#include "ruby/win32.h"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** The delimiter of `PATH` environment variable. */</div><div class='add'>+#if defined(DOSISH)</div><div class='add'>+#define PATH_SEP ";"</div><div class='add'>+#else</div><div class='add'>+#define PATH_SEP ":"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Identical to #PATH_SEP, except it is of type `char`. */</div><div class='add'>+#define PATH_SEP_CHAR PATH_SEP[0]</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * For  historical interests:  there was  an operating  system called  Human68k</div><div class='add'>+ * which used an environment variable called `"path"` for this purpose.</div><div class='add'>+ */</div><div class='add'>+#define PATH_ENV "PATH"</div><div class='add'>+</div><div class='add'>+#if defined(DOSISH)</div><div class='add'>+#define ENV_IGNORECASE</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Stone age  assumption was that  an operating  system supports only  one file</div><div class='add'>+ * system at a  moment.  This macro was  to detect if such (one  and only) file</div><div class='add'>+ * system  has case  sensitivity.   This  assumption is  largely  not true  any</div><div class='add'>+ * longer; most operating systems can mount  many kinds of file systems side by</div><div class='add'>+ * side.  Also there are file systems that  do or do not ignore cases depending</div><div class='add'>+ * on configuration (e.g.  EXT4's `casefold` feature).</div><div class='add'>+ *</div><div class='add'>+ * This  macro is  still  used  internally (for  instance  Ruby level  constant</div><div class='add'>+ * `File::FNM_SYSCASE` depends on it), but it is basically a wrong idea for you</div><div class='add'>+ * to use it today.  Please just find another way.</div><div class='add'>+ */</div><div class='add'>+#ifndef CASEFOLD_FILESYSTEM</div><div class='add'>+# if defined DOSISH</div><div class='add'>+#   define CASEFOLD_FILESYSTEM 1</div><div class='add'>+# else</div><div class='add'>+#   define CASEFOLD_FILESYSTEM 0</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_DOSISH_H */</div><div class='head'>diff --git a/include/ruby/internal/encoding/coderange.h b/include/ruby/internal/encoding/coderange.h<br/>new file mode 100644<br/>index 0000000000..7a81208c9e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/encoding/coderange.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/encoding/coderange.h</a></div><div class='hunk'>@@ -0,0 +1,202 @@</div><div class='add'>+#ifndef RUBY_INTERNAL_ENCODING_CODERANGE_H           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_INTERNAL_ENCODING_CODERANGE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Routines for code ranges.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/fl_type.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/** What rb_enc_str_coderange() returns. */</div><div class='add'>+enum ruby_coderange_type {</div><div class='add'>+</div><div class='add'>+    /** The object's coderange is unclear yet. */</div><div class='add'>+    RUBY_ENC_CODERANGE_UNKNOWN  = 0,</div><div class='add'>+</div><div class='add'>+    /** The object holds 0 to 127 inclusive and nothing else. */</div><div class='add'>+    RUBY_ENC_CODERANGE_7BIT     = ((int)RUBY_FL_USER8),</div><div class='add'>+</div><div class='add'>+    /** The object's encoding and contents are consistent each other */</div><div class='add'>+    RUBY_ENC_CODERANGE_VALID    = ((int)RUBY_FL_USER9),</div><div class='add'>+</div><div class='add'>+    /** The object holds invalid/malformed/broken character(s). */</div><div class='add'>+    RUBY_ENC_CODERANGE_BROKEN   = ((int)(RUBY_FL_USER8|RUBY_FL_USER9)),</div><div class='add'>+</div><div class='add'>+    /** Where the coderange resides. */</div><div class='add'>+    RUBY_ENC_CODERANGE_MASK     = (RUBY_ENC_CODERANGE_7BIT|</div><div class='add'>+                                   RUBY_ENC_CODERANGE_VALID|</div><div class='add'>+                                   RUBY_ENC_CODERANGE_BROKEN)</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail of #RB_ENC_CODERANGE_CLEAN_P.  People don't</div><div class='add'>+ * use it directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  cr  An enum ::ruby_coderange_type.</div><div class='add'>+ * @retval     1   It is.</div><div class='add'>+ * @retval     0   It isn't.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_enc_coderange_clean_p(int cr)</div><div class='add'>+{</div><div class='add'>+    return (cr ^ (cr &gt;&gt; 1)) &amp; RUBY_ENC_CODERANGE_7BIT;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Queries if  a code range  is "clean".  "Clean" in  this context means  it is</div><div class='add'>+ * known and valid.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  cr  An enum ::ruby_coderange_type.</div><div class='add'>+ * @retval     1   It is.</div><div class='add'>+ * @retval     0   It isn't.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_ENC_CODERANGE_CLEAN_P(enum ruby_coderange_type cr)</div><div class='add'>+{</div><div class='add'>+    return rb_enc_coderange_clean_p(cr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+/**</div><div class='add'>+ * Queries the  (inline) code range of  the passed object.  The  object must be</div><div class='add'>+ * capable  of   having  inline   encoding.   Using   this  macro   needs  deep</div><div class='add'>+ * understanding of bit level object binary layout.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Target object.</div><div class='add'>+ * @return     An enum ::ruby_coderange_type.</div><div class='add'>+ */</div><div class='add'>+static inline enum ruby_coderange_type</div><div class='add'>+RB_ENC_CODERANGE(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE ret = RB_FL_TEST_RAW(obj, RUBY_ENC_CODERANGE_MASK);</div><div class='add'>+</div><div class='add'>+    return RBIMPL_CAST((enum ruby_coderange_type)ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+/**</div><div class='add'>+ * Queries   the    (inline)   code   range    of   the   passed    object   is</div><div class='add'>+ * ::RUBY_ENC_CODERANGE_7BIT.   The object  must  be capable  of having  inline</div><div class='add'>+ * encoding.  Using  this macro  needs deep understanding  of bit  level object</div><div class='add'>+ * binary layout.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Target object.</div><div class='add'>+ * @retval     1    It is ascii only.</div><div class='add'>+ * @retval     0    Otherwise (including cases when the range is not known).</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_ENC_CODERANGE_ASCIIONLY(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return RB_ENC_CODERANGE(obj) == RUBY_ENC_CODERANGE_7BIT;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively modifies the passed object so  that its (inline) code range is</div><div class='add'>+ * the  passed one.   The object  must be  capable of  having inline  encoding.</div><div class='add'>+ * Using this macro needs deep understanding of bit level object binary layout.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj  Target object.</div><div class='add'>+ * @param[out]  cr   An enum ::ruby_coderange_type.</div><div class='add'>+ * @post        `obj`'s code range is `cr`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_ENC_CODERANGE_SET(VALUE obj, enum ruby_coderange_type cr)</div><div class='add'>+{</div><div class='add'>+    RB_FL_UNSET_RAW(obj, RUBY_ENC_CODERANGE_MASK);</div><div class='add'>+    RB_FL_SET_RAW(obj, cr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively clears  the passed object's  (inline) code range.   The object</div><div class='add'>+ * must be  capable of  having inline  encoding.  Using  this macro  needs deep</div><div class='add'>+ * understanding of bit level object binary layout.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj  Target object.</div><div class='add'>+ * @post        `obj`'s code range is ::RUBY_ENC_CODERANGE_UNKNOWN.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_ENC_CODERANGE_CLEAR(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    RB_FL_UNSET_RAW(obj, RUBY_ENC_CODERANGE_MASK);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/* assumed ASCII compatibility */</div><div class='add'>+/**</div><div class='add'>+ * "Mix"  two code  ranges  into one.   This  is handy  for  instance when  you</div><div class='add'>+ * concatenate two  strings into one.   Consider one of  then is valid  but the</div><div class='add'>+ * other isn't.  The result must be  invalid.  This macro computes that kind of</div><div class='add'>+ * mixture.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  a  An enum ::ruby_coderange_type.</div><div class='add'>+ * @param[in]  b  Another enum ::ruby_coderange_type.</div><div class='add'>+ * @return     The `a` "and" `b`.</div><div class='add'>+ */</div><div class='add'>+static inline enum ruby_coderange_type</div><div class='add'>+RB_ENC_CODERANGE_AND(enum ruby_coderange_type a, enum ruby_coderange_type b)</div><div class='add'>+{</div><div class='add'>+    if (a == RUBY_ENC_CODERANGE_7BIT) {</div><div class='add'>+        return b;</div><div class='add'>+    }</div><div class='add'>+    else if (a != RUBY_ENC_CODERANGE_VALID) {</div><div class='add'>+        return RUBY_ENC_CODERANGE_UNKNOWN;</div><div class='add'>+    }</div><div class='add'>+    else if (b == RUBY_ENC_CODERANGE_7BIT) {</div><div class='add'>+        return RUBY_ENC_CODERANGE_VALID;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return b;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define ENC_CODERANGE_MASK                        RUBY_ENC_CODERANGE_MASK                      /**&lt; @old{RUBY_ENC_CODERANGE_MASK} */</div><div class='add'>+#define ENC_CODERANGE_UNKNOWN                     RUBY_ENC_CODERANGE_UNKNOWN                   /**&lt; @old{RUBY_ENC_CODERANGE_UNKNOWN} */</div><div class='add'>+#define ENC_CODERANGE_7BIT                        RUBY_ENC_CODERANGE_7BIT                      /**&lt; @old{RUBY_ENC_CODERANGE_7BIT} */</div><div class='add'>+#define ENC_CODERANGE_VALID                       RUBY_ENC_CODERANGE_VALID                     /**&lt; @old{RUBY_ENC_CODERANGE_VALID} */</div><div class='add'>+#define ENC_CODERANGE_BROKEN                      RUBY_ENC_CODERANGE_BROKEN                    /**&lt; @old{RUBY_ENC_CODERANGE_BROKEN} */</div><div class='add'>+#define ENC_CODERANGE_CLEAN_P(cr)                 RB_ENC_CODERANGE_CLEAN_P(cr)                 /**&lt; @old{RB_ENC_CODERANGE_CLEAN_P} */</div><div class='add'>+#define ENC_CODERANGE(obj)                        RB_ENC_CODERANGE(obj)                        /**&lt; @old{RB_ENC_CODERANGE} */</div><div class='add'>+#define ENC_CODERANGE_ASCIIONLY(obj)              RB_ENC_CODERANGE_ASCIIONLY(obj)              /**&lt; @old{RB_ENC_CODERANGE_ASCIIONLY} */</div><div class='add'>+#define ENC_CODERANGE_SET(obj,cr)                 RB_ENC_CODERANGE_SET(obj,cr)                 /**&lt; @old{RB_ENC_CODERANGE_SET} */</div><div class='add'>+#define ENC_CODERANGE_CLEAR(obj)                  RB_ENC_CODERANGE_CLEAR(obj)                  /**&lt; @old{RB_ENC_CODERANGE_CLEAR} */</div><div class='add'>+#define ENC_CODERANGE_AND(a, b)                   RB_ENC_CODERANGE_AND(a, b)                   /**&lt; @old{RB_ENC_CODERANGE_AND} */</div><div class='add'>+#define ENCODING_CODERANGE_SET(obj, encindex, cr) RB_ENCODING_CODERANGE_SET(obj, encindex, cr) /**&lt; @old{RB_ENCODING_CODERANGE_SET} */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RB_ENC_CODERANGE           RB_ENC_CODERANGE</div><div class='add'>+#define RB_ENC_CODERANGE_AND       RB_ENC_CODERANGE_AND</div><div class='add'>+#define RB_ENC_CODERANGE_ASCIIONLY RB_ENC_CODERANGE_ASCIIONLY</div><div class='add'>+#define RB_ENC_CODERANGE_CLEAN_P   RB_ENC_CODERANGE_CLEAN_P</div><div class='add'>+#define RB_ENC_CODERANGE_CLEAR     RB_ENC_CODERANGE_CLEAR</div><div class='add'>+#define RB_ENC_CODERANGE_SET       RB_ENC_CODERANGE_SET</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_INTERNAL_ENCODING_CODERANGE_H */</div><div class='head'>diff --git a/include/ruby/internal/encoding/ctype.h b/include/ruby/internal/encoding/ctype.h<br/>new file mode 100644<br/>index 0000000000..05c314aeb3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/encoding/ctype.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/encoding/ctype.h</a></div><div class='hunk'>@@ -0,0 +1,258 @@</div><div class='add'>+#ifndef RUBY_INTERNAL_ENCODING_CTYPE_H               /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_INTERNAL_ENCODING_CTYPE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Routines to query chacater types.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "ruby/onigmo.h"</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/encoding/encoding.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if  the passed  pointer points  to a newline  character.  What  is a</div><div class='add'>+ * newline and what is not depends on the passed encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  p          Pointer to a possibly-middle of a character.</div><div class='add'>+ * @param[in]  end        End of the string.</div><div class='add'>+ * @param[in]  enc        Encoding.</div><div class='add'>+ * @retval     false      It isn't.</div><div class='add'>+ * @retval     true       It is.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_is_newline(const char *p,  const char *e, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    OnigUChar *up = RBIMPL_CAST((OnigUChar *)p);</div><div class='add'>+    OnigUChar *ue = RBIMPL_CAST((OnigUChar *)e);</div><div class='add'>+</div><div class='add'>+    return ONIGENC_IS_MBC_NEWLINE(enc, up, ue);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the passed  code point is of passed character  type in the passed</div><div class='add'>+ * encoding.  The "character type" here is a set of macros defined in onigmo.h,</div><div class='add'>+ * like `ONIGENC_CTYPE_PUNCT`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          An `OnigCodePoint` value.</div><div class='add'>+ * @param[in]  t          An `OnigCtype` value.</div><div class='add'>+ * @param[in]  enc        A `rb_encoding*` value.</div><div class='add'>+ * @retval     true       `c` is of `t` in `enc`.</div><div class='add'>+ * @retval     false      Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_isctype(OnigCodePoint c, OnigCtype t, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return ONIGENC_IS_CODE_CTYPE(enc, c, t);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_isascii(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          A code point.</div><div class='add'>+ * @param[in]  enc        An encoding.</div><div class='add'>+ * @retval     false      `c` is out of range of ASCII character set in `enc`.</div><div class='add'>+ * @retval     true       Otherwise.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * `enc` is  ignored.  This  is at least  an intentional  implementation detail</div><div class='add'>+ * (not a bug).  But there could be rooms for future extensions.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_isascii(OnigCodePoint c, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return ONIGENC_IS_CODE_ASCII(c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_isalpha(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          A code point.</div><div class='add'>+ * @param[in]  enc        An encoding.</div><div class='add'>+ * @retval     true       `enc` classifies `c` as "ALPHA".</div><div class='add'>+ * @retval     false      Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_isalpha(OnigCodePoint c, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return ONIGENC_IS_CODE_ALPHA(enc, c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_islower(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          A code point.</div><div class='add'>+ * @param[in]  enc        An encoding.</div><div class='add'>+ * @retval     true       `enc` classifies `c` as "LOWER".</div><div class='add'>+ * @retval     false      Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_islower(OnigCodePoint c, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return ONIGENC_IS_CODE_LOWER(enc, c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_isupper(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          A code point.</div><div class='add'>+ * @param[in]  enc        An encoding.</div><div class='add'>+ * @retval     true       `enc` classifies `c` as "UPPER".</div><div class='add'>+ * @retval     false      Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_isupper(OnigCodePoint c, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return ONIGENC_IS_CODE_UPPER(enc, c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_iscntrl(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          A code point.</div><div class='add'>+ * @param[in]  enc        An encoding.</div><div class='add'>+ * @retval     true       `enc` classifies `c` as "CNTRL".</div><div class='add'>+ * @retval     false      Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_iscntrl(OnigCodePoint c, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return ONIGENC_IS_CODE_CNTRL(enc, c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_ispunct(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          A code point.</div><div class='add'>+ * @param[in]  enc        An encoding.</div><div class='add'>+ * @retval     true       `enc` classifies `c` as "PUNCT".</div><div class='add'>+ * @retval     false      Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_ispunct(OnigCodePoint c, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return ONIGENC_IS_CODE_PUNCT(enc, c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_isalnum(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          A code point.</div><div class='add'>+ * @param[in]  enc        An encoding.</div><div class='add'>+ * @retval     true       `enc` classifies `c` as "ANUM".</div><div class='add'>+ * @retval     false      Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_isalnum(OnigCodePoint c, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return ONIGENC_IS_CODE_ALNUM(enc, c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_isprint(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          A code point.</div><div class='add'>+ * @param[in]  enc        An encoding.</div><div class='add'>+ * @retval     true       `enc` classifies `c` as "PRINT".</div><div class='add'>+ * @retval     false      Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_isprint(OnigCodePoint c, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return ONIGENC_IS_CODE_PRINT(enc, c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_isspace(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          A code point.</div><div class='add'>+ * @param[in]  enc        An encoding.</div><div class='add'>+ * @retval     true       `enc` classifies `c` as "PRINT".</div><div class='add'>+ * @retval     false      Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_isspace(OnigCodePoint c, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return ONIGENC_IS_CODE_SPACE(enc, c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_isdigit(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          A code point.</div><div class='add'>+ * @param[in]  enc        An encoding.</div><div class='add'>+ * @retval     true       `enc` classifies `c` as "DIGIT".</div><div class='add'>+ * @retval     false      Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_isdigit(OnigCodePoint c, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return ONIGENC_IS_CODE_DIGIT(enc, c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_toupper(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c    A code point.</div><div class='add'>+ * @param[in]  enc  An encoding.</div><div class='add'>+ * @return     `c`'s (Ruby's definition of) upper case counterpart.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * As `RBIMPL_ATTR_CONST` implies this function ignores `enc`.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_toupper(int c, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_tolower(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c    A code point.</div><div class='add'>+ * @param[in]  enc  An encoding.</div><div class='add'>+ * @return     `c`'s (Ruby's definition of) lower case counterpart.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * As `RBIMPL_ATTR_CONST` implies this function ignores `enc`.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_tolower(int c, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define rb_enc_is_newline rb_enc_is_newline</div><div class='add'>+#define rb_enc_isalnum    rb_enc_isalnum</div><div class='add'>+#define rb_enc_isalpha    rb_enc_isalpha</div><div class='add'>+#define rb_enc_isascii    rb_enc_isascii</div><div class='add'>+#define rb_enc_isctype    rb_enc_isctype</div><div class='add'>+#define rb_enc_isdigit    rb_enc_isdigit</div><div class='add'>+#define rb_enc_islower    rb_enc_islower</div><div class='add'>+#define rb_enc_isprint    rb_enc_isprint</div><div class='add'>+#define rb_enc_iscntrl    rb_enc_iscntrl</div><div class='add'>+#define rb_enc_ispunct    rb_enc_ispunct</div><div class='add'>+#define rb_enc_isspace    rb_enc_isspace</div><div class='add'>+#define rb_enc_isupper    rb_enc_isupper</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_INTERNAL_ENCODING_CTYPE_H */</div><div class='head'>diff --git a/include/ruby/internal/encoding/encoding.h b/include/ruby/internal/encoding/encoding.h<br/>new file mode 100644<br/>index 0000000000..4748ca806b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/encoding/encoding.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/encoding/encoding.h</a></div><div class='hunk'>@@ -0,0 +1,1060 @@</div><div class='add'>+#ifndef RUBY_INTERNAL_ENCODING_ENCODING_H            /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_INTERNAL_ENCODING_ENCODING_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines ::rb_encoding</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "ruby/oniguruma.h"</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/deprecated.h"</div><div class='add'>+#include "ruby/internal/attr/noalias.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/attr/returns_nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/fl_type.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * `Encoding` class.</div><div class='add'>+ *</div><div class='add'>+ * @ingroup object</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN VALUE rb_cEncoding;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Bit constants used when embedding encodings into ::RBasic::flags.  Extension</div><div class='add'>+ * libraries must not bother such things.</div><div class='add'>+ */</div><div class='add'>+enum ruby_encoding_consts {</div><div class='add'>+</div><div class='add'>+    /** Max possible number of embeddable encodings. */</div><div class='add'>+    RUBY_ENCODING_INLINE_MAX = 127,</div><div class='add'>+</div><div class='add'>+    /** Where inline encodings reside. */</div><div class='add'>+    RUBY_ENCODING_SHIFT = (RUBY_FL_USHIFT+10),</div><div class='add'>+</div><div class='add'>+    /** Bits we use to store inline encodings. */</div><div class='add'>+    RUBY_ENCODING_MASK = (RUBY_ENCODING_INLINE_MAX&lt;&lt;RUBY_ENCODING_SHIFT</div><div class='add'>+                          /* RUBY_FL_USER10..RUBY_FL_USER16 */),</div><div class='add'>+</div><div class='add'>+    /** Max possible length of an encoding name. */</div><div class='add'>+    RUBY_ENCODING_MAXNAMELEN = 42</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define ENCODING_INLINE_MAX RUBY_ENCODING_INLINE_MAX /**&lt; @old{RUBY_ENCODING_INLINE_MAX} */</div><div class='add'>+#define ENCODING_SHIFT RUBY_ENCODING_SHIFT           /**&lt; @old{RUBY_ENCODING_SHIFT} */</div><div class='add'>+#define ENCODING_MASK RUBY_ENCODING_MASK             /**&lt; @old{RUBY_ENCODING_MASK} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively assigns the passed encoding  to the passed object.  The object</div><div class='add'>+ * must be  capable of  having inline  encoding.  Using  this macro  needs deep</div><div class='add'>+ * understanding of bit level object binary layout.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj      Target object to modify.</div><div class='add'>+ * @param[in]   ecindex  Encoding in encindex format.</div><div class='add'>+ * @post        `obj`'s encoding is `encindex`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_ENCODING_SET_INLINED(VALUE obj, int encindex)</div><div class='add'>+{</div><div class='add'>+    VALUE f = /* upcast */ encindex;</div><div class='add'>+</div><div class='add'>+    f &lt;&lt;= RUBY_ENCODING_SHIFT;</div><div class='add'>+    RB_FL_UNSET_RAW(obj, RUBY_ENCODING_MASK);</div><div class='add'>+    RB_FL_SET_RAW(obj, f);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the  encoding of the  passed object.   The encoding must  be smaller</div><div class='add'>+ * than ::RUBY_ENCODING_INLINE_MAX, which means you have some assumption on the</div><div class='add'>+ * return value.  This means the API is for internal use only.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Target object.</div><div class='add'>+ * @return     `obj`'s encoding index.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+RB_ENCODING_GET_INLINED(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE ret = RB_FL_TEST_RAW(obj, RUBY_ENCODING_MASK) &gt;&gt; RUBY_ENCODING_SHIFT;</div><div class='add'>+</div><div class='add'>+    return RBIMPL_CAST((int)ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define ENCODING_SET_INLINED(obj,i) RB_ENCODING_SET_INLINED(obj,i) /**&lt; @old{RB_ENCODING_SET_INLINED} */</div><div class='add'>+#define ENCODING_SET(obj,i) RB_ENCODING_SET(obj,i)                 /**&lt; @old{RB_ENCODING_SET} */</div><div class='add'>+#define ENCODING_GET_INLINED(obj) RB_ENCODING_GET_INLINED(obj)     /**&lt; @old{RB_ENCODING_GET_INLINED} */</div><div class='add'>+#define ENCODING_GET(obj) RB_ENCODING_GET(obj)                     /**&lt; @old{RB_ENCODING_GET} */</div><div class='add'>+#define ENCODING_IS_ASCII8BIT(obj) RB_ENCODING_IS_ASCII8BIT(obj)   /**&lt; @old{RB_ENCODING_IS_ASCII8BIT} */</div><div class='add'>+#define ENCODING_MAXNAMELEN RUBY_ENCODING_MAXNAMELEN               /**&lt; @old{RUBY_ENCODING_MAXNAMELEN} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The  type  of encoding.   Our  design  here  is we  take  Oniguruma/Onigmo's</div><div class='add'>+ * multilingualisation schema as our base data structure.</div><div class='add'>+ */</div><div class='add'>+typedef const OnigEncodingType rb_encoding;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+/**</div><div class='add'>+ * Converts  a character  option  to its  encoding.  It  only  supports a  very</div><div class='add'>+ * limited set  of Japanese encodings due  to its Japanese origin.   Ruby still</div><div class='add'>+ * has this in-core for backwards compatibility.  But new codes must not bother</div><div class='add'>+ * such  concept like  one-character encoding  option.  Consider  deprecated in</div><div class='add'>+ * practice.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   c       One of `['n', 'e', 's', 'u', 'i', 'x', 'm']`.</div><div class='add'>+ * @param[out]  option  Return buffer.</div><div class='add'>+ * @param[out]  kcode   Return buffer.</div><div class='add'>+ * @retval      1       `c` understood properly.</div><div class='add'>+ * @retval      0       `c` is not understood.</div><div class='add'>+ * @post        `option` is a ::OnigOptionType.</div><div class='add'>+ * @post        `kcode` is an enum `ruby_preserved_encindex`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * `kcode`  is opaque  because  `ruby_preserved_encindex` is  not visible  from</div><div class='add'>+ * extension libraries.  But who cares?</div><div class='add'>+ */</div><div class='add'>+int rb_char_to_option_kcode(int c, int *option, int *kcode);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a new encoding, using the passed one as a template.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name          Name of the creating encoding.</div><div class='add'>+ * @param[in]  src           Template.</div><div class='add'>+ * @exception  rb_eArgError  Duplicated or malformed `name`.</div><div class='add'>+ * @return     Replicated new encoding's index.</div><div class='add'>+ * @post       Encoding named `name` is created as a copy of `src`, whose index</div><div class='add'>+ *             is the return value.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * `name` can be `NULL`,  but that just raises an exception.   OTOH it seems no</div><div class='add'>+ * sanity check is done against `src`...?</div><div class='add'>+ */</div><div class='add'>+int rb_enc_replicate(const char *name, rb_encoding *src);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a new "dummy" encoding.  Roughly speaking, an encoding is dummy when</div><div class='add'>+ * it is  stateful.  Notable  example of  dummy encoding  are those  defined in</div><div class='add'>+ * ISO/IEC 2022</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name  Name of the creating encoding.</div><div class='add'>+ * @exception  rb_eArgError  Duplicated or malformed `name`.</div><div class='add'>+ * @return     New dummy encoding's index.</div><div class='add'>+ * @post       Encoding  named `name`  is created,  whose index  is the  return</div><div class='add'>+ *             value.</div><div class='add'>+ */</div><div class='add'>+int rb_define_dummy_encoding(const char *name);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the passed encoding is dummy.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc  Encoding in question.</div><div class='add'>+ * @retval     1    It is.</div><div class='add'>+ * @retval     0    It isn't.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_dummy_p(rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries the  index of  the encoding.   An encoding's  index is  a Ruby-local</div><div class='add'>+ * concept.  It is a (sequential) number assigned to each encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc  Encoding in question.</div><div class='add'>+ * @return     Its index.</div><div class='add'>+ * @note       You can pass  null pointers to this function.   It is equivalent</div><div class='add'>+ *             to rb_usascii_encindex() then.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_to_index(rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the index of the encoding of the passed object, if any.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj        Object in question.</div><div class='add'>+ * @retval     -1         `obj` is incapable of having an encoding.</div><div class='add'>+ * @retval     otherwise  `obj`'s encoding's index.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_get_index(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @alias{rb_enc_get_index}</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Implementation wise this is not a verbatim alias of rb_enc_get_index().  But</div><div class='add'>+ * the API is consistent.  Don't bother.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+RB_ENCODING_GET(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    int encindex = RB_ENCODING_GET_INLINED(obj);</div><div class='add'>+</div><div class='add'>+    if (encindex == RUBY_ENCODING_INLINE_MAX) {</div><div class='add'>+        return rb_enc_get_index(obj);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return encindex;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively assigns an encoding (via its index) to an object.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj                Object in question.</div><div class='add'>+ * @param[in]   encindex           An encoding index.</div><div class='add'>+ * @exception   rb_eFrozenError    `obj` is frozen.</div><div class='add'>+ * @exception   rb_eArgError       `obj` is incapable of having an encoding.</div><div class='add'>+ * @exception   rb_eEncodingError  `encindex` is out of bounds.</div><div class='add'>+ * @exception   rb_eLoadError      Failed to load the encoding.</div><div class='add'>+ */</div><div class='add'>+void rb_enc_set_index(VALUE obj, int encindex);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_enc_set_index} */</div><div class='add'>+static inline void</div><div class='add'>+RB_ENCODING_SET(VALUE obj, int encindex)</div><div class='add'>+{</div><div class='add'>+    rb_enc_set_index(obj, encindex);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is #RB_ENCODING_SET  + RB_ENC_CODERANGE_SET combo.  The  object must be</div><div class='add'>+ * capable  of   having  inline   encoding.   Using   this  macro   needs  deep</div><div class='add'>+ * understanding of bit level object binary layout.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj       Target object.</div><div class='add'>+ * @param[in]   encindex  Encoding in encindex format.</div><div class='add'>+ * @param[in]   cr        An enum ::ruby_coderange_type.</div><div class='add'>+ * @post        `obj`'s encoding is `encindex`.</div><div class='add'>+ * @post        `obj`'s code range is `cr`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_ENCODING_CODERANGE_SET(VALUE obj, int encindex, enum ruby_coderange_type cr)</div><div class='add'>+{</div><div class='add'>+    RB_ENCODING_SET(obj, encindex);</div><div class='add'>+    RB_ENC_CODERANGE_SET(obj, cr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the passed object can have its encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Object in question.</div><div class='add'>+ * @retval     1    It can.</div><div class='add'>+ * @retval     0    It cannot.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_capable(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the index of the encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name          Name of the encoding to find.</div><div class='add'>+ * @exception  rb_eArgError  No such encoding named `name`.</div><div class='add'>+ * @retval     -1            `name` exists, but unable to load.</div><div class='add'>+ * @retval     otherwise     Index of encoding named `name`.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_find_index(const char *name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Registers an  "alias" name.  In  the wild, an  encoding can be  called using</div><div class='add'>+ * multiple names.  For instance an encoding  known as `"CP932"` is also called</div><div class='add'>+ * `"SJIS"` on occasions.  This API registers such relationships.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  alias         New name.</div><div class='add'>+ * @param[in]  orig          Old name.</div><div class='add'>+ * @exception  rb_eArgError  `alias` is duplicated or malformed.</div><div class='add'>+ * @retval     -1            Failed to load `orig`.</div><div class='add'>+ * @retval     otherwise     The index of `orig` and `alias`.</div><div class='add'>+ * @post       `alias` is  a synonym  of `orig`.  They  refer to  the identical</div><div class='add'>+ *             encoding.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_alias(const char *alias, const char *orig);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Obtains   a  encoding   index  from   a   wider  range   of  objects   (than</div><div class='add'>+ * rb_enc_find_index()).</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj        An ::rb_cEncoding, or its name in ::rb_cString.</div><div class='add'>+ * @retval     -1         `obj` is unexpected type/contents.</div><div class='add'>+ * @retval     otherwise  Index corresponding to `obj`.</div><div class='add'>+ */</div><div class='add'>+int rb_to_encoding_index(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_find_encoding(), except it  raises an exception  instead of</div><div class='add'>+ * returning NULL.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            An ::rb_cEncoding, or its name in ::rb_cString.</div><div class='add'>+ * @exception  rb_eTypeError  `obj` is neither ::rb_cEncoding nor ::rb_cString.</div><div class='add'>+ * @exception  rb_eArgError   `obj` is an unknown encoding name.</div><div class='add'>+ * @return     Encoding of `obj`.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_to_encoding(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_to_encoding_index(), except the return type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            An ::rb_cEncoding, or its name in ::rb_cString.</div><div class='add'>+ * @exception  rb_eTypeError  `obj` is neither ::rb_cEncoding nor ::rb_cString.</div><div class='add'>+ * @retval     NULL           No such encoding.</div><div class='add'>+ * @return     otherwise      Encoding of `obj`.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_find_encoding(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_get_index(), except the return type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj        Object in question.</div><div class='add'>+ * @retval     NULL       Obj is incapable of having an encoding.</div><div class='add'>+ * @retval     otherwise  `obj`'s encoding.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_enc_get(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Look for the "common" encoding between the two.  One character can or cannot</div><div class='add'>+ * be expressed depending on an encoding.  This function finds the super-set of</div><div class='add'>+ * encodings that  satisfy contents of  both arguments.  If that  is impossible</div><div class='add'>+ * returns NULL.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str1       An object.</div><div class='add'>+ * @param[in]  str2       Another object.</div><div class='add'>+ * @retval     NULL       No encoding can satisfy both at once.</div><div class='add'>+ * @retval     otherwise  Common encoding between the two.</div><div class='add'>+ * @note       Arguments can be non-string, e.g. Regexp.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_enc_compatible(VALUE str1, VALUE str2);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_compatible(),  except it raises an  exception instead of</div><div class='add'>+ * returning NULL.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str1                An object.</div><div class='add'>+ * @param[in]  str2                Another object.</div><div class='add'>+ * @exception  rb_eEncCompatError  No encoding can satisfy both.</div><div class='add'>+ * @return     Common encoding between the two.</div><div class='add'>+ * @note       Arguments can be non-string, e.g. Regexp.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_enc_check(VALUE str1,VALUE str2);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_set_index(), except it additionally does contents fix-up</div><div class='add'>+ * depending on the passed object.  It  for instance changes the byte length of</div><div class='add'>+ * terminating `U+0000` according to the passed encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj                Object in question.</div><div class='add'>+ * @param[in]   encindex           An encoding index.</div><div class='add'>+ * @exception   rb_eFrozenError    `obj` is frozen.</div><div class='add'>+ * @exception   rb_eArgError       `obj` is incapable of having an encoding.</div><div class='add'>+ * @exception   rb_eEncodingError  `encindex` is out of bounds.</div><div class='add'>+ * @exception   rb_eLoadError      Failed to load the encoding.</div><div class='add'>+ * @return      The passed `obj`.</div><div class='add'>+ * @post        `obj`'s contents might be fixed according to `encindex`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_associate_index(VALUE obj, int encindex);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_enc_associate_index(), except  it takes an  encoding itself</div><div class='add'>+ * instead of its index.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj                Object in question.</div><div class='add'>+ * @param[in]   enc                An encoding.</div><div class='add'>+ * @exception   rb_eFrozenError    `obj` is frozen.</div><div class='add'>+ * @exception   rb_eArgError       `obj` is incapable of having an encoding.</div><div class='add'>+ * @return      The passed `obj`.</div><div class='add'>+ * @post        `obj`'s contents might be fixed according to `enc`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_associate(VALUE obj, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively copies  the encoding of  the latter  object to that  of former</div><div class='add'>+ * one.     It   can    also   be    seen   as    a   routine    identical   to</div><div class='add'>+ * rb_enc_associate_index(), except it takes an object's encoding instead of an</div><div class='add'>+ * encoding's index.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst                Object to modify.</div><div class='add'>+ * @param[in]   src                Object to reference.</div><div class='add'>+ * @exception   rb_eFrozenError    `dst` is frozen.</div><div class='add'>+ * @exception   rb_eArgError       `dst` is incapable of having an encoding.</div><div class='add'>+ * @exception   rb_eEncodingError  `src` is incapable of having an encoding.</div><div class='add'>+ * @post        `dst`'s encoding is that of `src`'s.</div><div class='add'>+ */</div><div class='add'>+void rb_enc_copy(VALUE dst, VALUE src);</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_find_encoding(),  except it takes an  encoding index instead</div><div class='add'>+ * of a Ruby object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  idx        An encoding index.</div><div class='add'>+ * @retval     NULL       No such encoding.</div><div class='add'>+ * @retval     otherwise  An encoding whose index is `idx`.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_enc_from_index(int idx);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_find_encoding(), except  it takes a  C's string  instead of</div><div class='add'>+ * Ruby's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name       Name of the encoding to query.</div><div class='add'>+ * @retval     NULL       No such encoding.</div><div class='add'>+ * @retval     otherwise  An encoding whose index is `idx`.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_enc_find(const char *name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the (canonical) name of the passed encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc  An encoding.</div><div class='add'>+ * @return     Its name.</div><div class='add'>+ */</div><div class='add'>+static inline const char *</div><div class='add'>+rb_enc_name(rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return enc-&gt;name;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the minimum  number  of bytes  that the  passed  encoding needs  to</div><div class='add'>+ * represent a character.  For ASCII and compatible encodings this is typically</div><div class='add'>+ * 1.   There  are  however  encodings  whose   minimum  is  not  1;  they  are</div><div class='add'>+ * historically called wide characters.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc  An encoding.</div><div class='add'>+ * @return     Its least possible number of bytes except 0.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_enc_mbminlen(rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return enc-&gt;min_enc_len;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the maximum  number  of bytes  that the  passed  encoding needs  to</div><div class='add'>+ * represent a character.   Fixed-width encodings have the same  value for this</div><div class='add'>+ * one  and  #rb_enc_mbminlen.   However there  are  variable-width  encodings.</div><div class='add'>+ * UTF-8, for instance, takes from 1 up to 6 bytes.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc  An encoding.</div><div class='add'>+ * @return     Its maximum possible number of bytes of a character.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_enc_mbmaxlen(rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return enc-&gt;max_enc_len;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the number of bytes of the character at the passed pointer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  p    Pointer to a character's first byte.</div><div class='add'>+ * @param[in]  e    End of the string that has `p`.</div><div class='add'>+ * @param[in]  enc  Encoding of the string.</div><div class='add'>+ * @return     If the character at `p` does  not end until `e`, number of bytes</div><div class='add'>+ *             between `p`  and `e`.   Otherwise the number  of bytes  that the</div><div class='add'>+ *             character at `p` is encoded.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Strictly speaking there  are chances when `p`  points to a middle  byte of a</div><div class='add'>+ * wide character.   This function  returns "the  number of  bytes from  `p` to</div><div class='add'>+ * nearest of either `e` or the next character boundary", if you go strict.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_mbclen() unless the character at `p` overruns `e`.  That</div><div class='add'>+ * can happen  for instance when  you read from a  socket and its  partial read</div><div class='add'>+ * cuts  a  wide  character  in-between.  In  those  situations  this  function</div><div class='add'>+ * "estimates" theoretical length  of the character in  question.  Typically it</div><div class='add'>+ * tends  to be  possible  to know  how  many bytes  a  character needs  before</div><div class='add'>+ * actually reaching its  end; for instance UTF-8 encodes  a character's length</div><div class='add'>+ * in the first byte of it.  This function returns that info.</div><div class='add'>+ *</div><div class='add'>+ * @note  This implies that the string is not broken.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  p    Pointer to the character's first byte.</div><div class='add'>+ * @param[in]  e    End of the string that has `p`.</div><div class='add'>+ * @param[in]  enc  Encoding of the string.</div><div class='add'>+ * @return     Number of bytes of character at `p`, measured or estimated.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_fast_mbclen(const char *p, const char *e, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the  number of bytes of  the character at the  passed pointer.  This</div><div class='add'>+ * function returns 3 different types of information:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * auto n = rb_enc_precise_mbclen(p, q, r);</div><div class='add'>+ *</div><div class='add'>+ * if (ONIGENC_MBCLEN_CHARFOUND_P(n)) {</div><div class='add'>+ *     // Character found.  Normal return.</div><div class='add'>+ *     auto found_length = ONIGENC_MBCLEN_CHARFOUND_LEN(n);</div><div class='add'>+ * }</div><div class='add'>+ * else if (ONIGENC_MBCLEN_NEEDMORE_P(n)) {</div><div class='add'>+ *     // Character overruns past `q`; needs more.</div><div class='add'>+ *     auto requested_length = ONIGENC_MBCLEN_NEEDMORE_LEN(n);</div><div class='add'>+ * }</div><div class='add'>+ * else {</div><div class='add'>+ *     // `p` is broken.</div><div class='add'>+ *     assert(ONIGENC_MBCLEN_INVALID_P(n));</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  p    Pointer to the character's first byte.</div><div class='add'>+ * @param[in]  e    End of the string that has `p`.</div><div class='add'>+ * @param[in]  enc  Encoding of the string.</div><div class='add'>+ * @return     Encoded read/needed number of bytes (see above).</div><div class='add'>+ */</div><div class='add'>+int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+#define MBCLEN_CHARFOUND_P(ret)   ONIGENC_MBCLEN_CHARFOUND_P(ret)   /**&lt; @old{ONIGENC_MBCLEN_CHARFOUND_P} */</div><div class='add'>+#define MBCLEN_CHARFOUND_LEN(ret) ONIGENC_MBCLEN_CHARFOUND_LEN(ret) /**&lt; @old{ONIGENC_MBCLEN_CHARFOUND_LEN} */</div><div class='add'>+#define MBCLEN_INVALID_P(ret)     ONIGENC_MBCLEN_INVALID_P(ret)     /**&lt; @old{ONIGENC_MBCLEN_INVALID_P} */</div><div class='add'>+#define MBCLEN_NEEDMORE_P(ret)    ONIGENC_MBCLEN_NEEDMORE_P(ret)    /**&lt; @old{ONIGENC_MBCLEN_NEEDMORE_P} */</div><div class='add'>+#define MBCLEN_NEEDMORE_LEN(ret)  ONIGENC_MBCLEN_NEEDMORE_LEN(ret)  /**&lt; @old{ONIGENC_MBCLEN_NEEDMORE_LEN} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the code point of character  pointed by the passed pointer.  If that</div><div class='add'>+ * code point is included in ASCII  that code point is returned.  Otherwise -1.</div><div class='add'>+ * This can be different from just looking  at the first byte.  For instance it</div><div class='add'>+ * reads 2 bytes in case of UTF-16BE.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  p          Pointer to the character's first byte.</div><div class='add'>+ * @param[in]  e          End of the string that has `p`.</div><div class='add'>+ * @param[in]  len        Return buffer.</div><div class='add'>+ * @param[in]  enc        Encoding of the string.</div><div class='add'>+ * @retval     -1         The character at `p` is not i ASCII.</div><div class='add'>+ * @retval     otherwise  A code point of the character at `p`.</div><div class='add'>+ * @post       `len` (if set) is the number of bytes of `p`.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the  code  point  of  character  pointed  by  the  passed  pointer.</div><div class='add'>+ * Exceptions happen in case of broken input.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  p             Pointer to the character's first byte.</div><div class='add'>+ * @param[in]  e             End of the string that has `p`.</div><div class='add'>+ * @param[in]  len           Return buffer.</div><div class='add'>+ * @param[in]  enc           Encoding of the string.</div><div class='add'>+ * @exception  rb_eArgError  `p` is broken.</div><div class='add'>+ * @return     Code point of the character pointed by `p`.</div><div class='add'>+ * @post       `len` (if set) is the number of bytes of `p`.</div><div class='add'>+ */</div><div class='add'>+unsigned int rb_enc_codepoint_len(const char *p, const char *e, int *len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the  code  point  of  character  pointed  by  the  passed  pointer.</div><div class='add'>+ * Exceptions happen in case of broken input.</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  Use rb_enc_codepoint_len() instead.</div><div class='add'>+ * @param[in]   p             Pointer to the character's first byte.</div><div class='add'>+ * @param[in]   e             End of the string that has `p`.</div><div class='add'>+ * @param[in]   enc           Encoding of the string.</div><div class='add'>+ * @exception   rb_eArgError  `p` is broken.</div><div class='add'>+ * @return      Code point of the character pointed by `p`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @matz says in commit  91e5ba1cb865a2385d3e1cbfacd824496898e098 that the line</div><div class='add'>+ * below  is a  "prototype for  obsolete function".   However even  today there</div><div class='add'>+ * still are some use  cases of it throughout our repository.   It seems it has</div><div class='add'>+ * its own niche.</div><div class='add'>+ */</div><div class='add'>+static inline unsigned int</div><div class='add'>+rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return rb_enc_codepoint_len(p, e, 0, enc);</div><div class='add'>+    /*                               ^^^</div><div class='add'>+     * This can be `NULL` in C, `nullptr` in C++, and `0` for both.</div><div class='add'>+     * We choose the most portable one here.</div><div class='add'>+     */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_codepoint(),  except it assumes the  passed character is</div><div class='add'>+ * not broken.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   p    Pointer to the character's first byte.</div><div class='add'>+ * @param[in]   e    End of the string that has `p`.</div><div class='add'>+ * @param[in]   enc  Encoding of the string.</div><div class='add'>+ * @return      Code point of the character pointed by `p`.</div><div class='add'>+ */</div><div class='add'>+static inline OnigCodePoint</div><div class='add'>+rb_enc_mbc_to_codepoint(const char *p, const char *e, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p);</div><div class='add'>+    const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e);</div><div class='add'>+</div><div class='add'>+    return ONIGENC_MBC_TO_CODE(enc, up, ue);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the  number of bytes  requested to  represent the passed  code point</div><div class='add'>+ * using the passed encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  code          Code point in question.</div><div class='add'>+ * @param[in]  enc           Encoding to convert the code into a byte sequence.</div><div class='add'>+ * @exception  rb_eArgError  `enc` does not glean `code`.</div><div class='add'>+ * @return     Number of bytes requested to represent `code` using `enc`.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_codelen(int code, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_codelen(), except it returns 0 for invalid code points.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          Code point in question.</div><div class='add'>+ * @param[in]  enc        Encoding to convert `c` into a byte sequence.</div><div class='add'>+ * @retval     0          `c` is invalid.</div><div class='add'>+ * @return     otherwise  Number of bytes needed for `enc` to encode `c`.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_enc_code_to_mbclen(int c, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    OnigCodePoint uc = RBIMPL_CAST((OnigCodePoint)c);</div><div class='add'>+</div><div class='add'>+    return ONIGENC_CODE_TO_MBCLEN(enc, uc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_uint_chr(),  except it writes back to  the passed buffer</div><div class='add'>+ * instead of allocating one.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  c          Code point.</div><div class='add'>+ * @param[out] buf        Return buffer.</div><div class='add'>+ * @param[in]  enc        Target encoding scheme.</div><div class='add'>+ * @retval     &lt;= 0       `c` is invalid in `enc`.</div><div class='add'>+ * @return     otherwise  Number of bytes written to `buf`.</div><div class='add'>+ * @post       `c` is encoded according to `enc`, then written to `buf`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The second argument  must be typed.  But its current  usages prevent us from</div><div class='add'>+ * being any stricter than this. :FIXME:</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_enc_mbcput(unsigned int c, void *buf, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    OnigCodePoint uc = RBIMPL_CAST((OnigCodePoint)c);</div><div class='add'>+    OnigUChar *ubuf = RBIMPL_CAST((OnigUChar *)buf);</div><div class='add'>+</div><div class='add'>+    return ONIGENC_CODE_TO_MBC(enc, uc, ubuf);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the previous (left) character.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  s          Start of the string.</div><div class='add'>+ * @param[in]  p          Pointer to a character.</div><div class='add'>+ * @param[in]  e          End of the string.</div><div class='add'>+ * @param[in]  enc        Encoding.</div><div class='add'>+ * @retval     NULL       No previous character.</div><div class='add'>+ * @retval     otherwise  Pointer to the head of the previous character.</div><div class='add'>+ */</div><div class='add'>+static inline char *</div><div class='add'>+rb_enc_prev_char(const char *s, const char *p, const char *e, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s);</div><div class='add'>+    const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p);</div><div class='add'>+    const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e);</div><div class='add'>+    OnigUChar *ur = onigenc_get_prev_char_head(enc, us, up, ue);</div><div class='add'>+</div><div class='add'>+    return RBIMPL_CAST((char *)ur);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the  left boundary of  a character.   This function takes  a pointer</div><div class='add'>+ * that is not necessarily a head of a character, and searches for its head.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  s          Start of the string.</div><div class='add'>+ * @param[in]  p          Pointer to a possibly-middle of a character.</div><div class='add'>+ * @param[in]  e          End of the string.</div><div class='add'>+ * @param[in]  enc        Encoding.</div><div class='add'>+ * @return     Pointer to the head of the character that contains `p`.</div><div class='add'>+ */</div><div class='add'>+static inline char *</div><div class='add'>+rb_enc_left_char_head(const char *s, const char *p, const char *e, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s);</div><div class='add'>+    const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p);</div><div class='add'>+    const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e);</div><div class='add'>+    OnigUChar *ur = onigenc_get_left_adjust_char_head(enc, us, up, ue);</div><div class='add'>+</div><div class='add'>+    return RBIMPL_CAST((char *)ur);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the  right boundary of a  character.  This function takes  a pointer</div><div class='add'>+ * that is not necessarily a head of a character, and searches for its tail.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  s    Start of the string.</div><div class='add'>+ * @param[in]  p    Pointer to a possibly-middle of a character.</div><div class='add'>+ * @param[in]  e    End of the string.</div><div class='add'>+ * @param[in]  enc  Encoding.</div><div class='add'>+ * @return     Pointer to the end of the character that contains `p`.</div><div class='add'>+ */</div><div class='add'>+static inline char *</div><div class='add'>+rb_enc_right_char_head(const char *s, const char *p, const char *e, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s);</div><div class='add'>+    const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p);</div><div class='add'>+    const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e);</div><div class='add'>+    OnigUChar *ur = onigenc_get_right_adjust_char_head(enc, us, up, ue);</div><div class='add'>+</div><div class='add'>+    return RBIMPL_CAST((char *)ur);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Scans the string backwards for n characters.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  s          Start of the string.</div><div class='add'>+ * @param[in]  p          Pointer to a character.</div><div class='add'>+ * @param[in]  e          End of the string.</div><div class='add'>+ * @param[in]  n          Steps.</div><div class='add'>+ * @param[in]  enc        Encoding.</div><div class='add'>+ * @retval     NULL       There are no `n` characters left.</div><div class='add'>+ * @retval     otherwise  Pointer to `n` character before `p`.</div><div class='add'>+ */</div><div class='add'>+static inline char *</div><div class='add'>+rb_enc_step_back(const char *s, const char *p, const char *e, int n, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    const OnigUChar *us = RBIMPL_CAST((const OnigUChar *)s);</div><div class='add'>+    const OnigUChar *up = RBIMPL_CAST((const OnigUChar *)p);</div><div class='add'>+    const OnigUChar *ue = RBIMPL_CAST((const OnigUChar *)e);</div><div class='add'>+    const OnigUChar *ur = onigenc_step_back(enc, us, up, ue, n);</div><div class='add'>+</div><div class='add'>+    return RBIMPL_CAST((char *)ur);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail  of rb_enc_asciicompat().  People don't use</div><div class='add'>+ * it directly.  Just always use rb_enc_asciicompat().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc  Encoding in question.</div><div class='add'>+ * @retval     1    It is ASCII compatible.</div><div class='add'>+ * @retval     0    It isn't.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_enc_asciicompat_inline(rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    return rb_enc_mbminlen(enc)==1 &amp;&amp; !rb_enc_dummy_p(enc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if  the passed encoding  is _in  some sense_ compatible  with ASCII.</div><div class='add'>+ * The  concept  of  ASCII  compatibility   is  nuanced,  and  private  to  our</div><div class='add'>+ * implementation.  For instance SJIS is  ASCII compatible to us, despite their</div><div class='add'>+ * having different  characters at code  point `0x5C`.   This is based  on some</div><div class='add'>+ * practical  consideration that  Japanese people  confuses SJIS  to be  "upper</div><div class='add'>+ * compatible" with ASCII (which is in fact  a wrong idea, but we just don't go</div><div class='add'>+ * strict here).  An example of  ASCII incompatible encoding is UTF-16.  UTF-16</div><div class='add'>+ * shares code points  with ASCII, but employs a  completely different encoding</div><div class='add'>+ * scheme.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc  Encoding in question.</div><div class='add'>+ * @retval     0    It is incompatible.</div><div class='add'>+ * @retval     1    It is compatible.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_asciicompat(rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    if (rb_enc_mbminlen(enc) != 1) {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+    else if (rb_enc_dummy_p(enc)) {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the passed string is in an ASCII-compatible encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A Ruby's string to query.</div><div class='add'>+ * @retval     0    `str` is not a String, or an ASCII-incompatible string.</div><div class='add'>+ * @retval     1    Otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_enc_str_asciicompat_p(VALUE str)</div><div class='add'>+{</div><div class='add'>+    rb_encoding *enc = rb_enc_get(str);</div><div class='add'>+</div><div class='add'>+    return rb_enc_asciicompat(enc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the   Ruby-level  counterpart   instance  of   ::rb_cEncoding  that</div><div class='add'>+ * corresponds to the passed encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc  An encoding</div><div class='add'>+ * @retval     RUBY_Qnil  `enc` is a null pointer.</div><div class='add'>+ * @retval     otherwise  An instance of ::rb_cEncoding.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_from_encoding(rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the passed encoding is either one of UTF-8/16/32.</div><div class='add'>+ *</div><div class='add'>+ * @note  It does not take UTF-7, which we actually support, into account.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc        Encoding in question.</div><div class='add'>+ * @retval     0          It is not a Unicode variant.</div><div class='add'>+ * @retval     otherwise  It is.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * In   reality   it   returns   1/0,   but  the   value   is   abstracted   as</div><div class='add'>+ * `ONIGENC_FLAG_UNICODE`.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_unicode_p(rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the encoding that represents ASCII-8BIT a.k.a. binary.</div><div class='add'>+ *</div><div class='add'>+ * @return  The encoding that represents ASCII-8BIT.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This can not return NULL once the process properly boots up.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_ascii8bit_encoding(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the encoding that represents UTF-8.</div><div class='add'>+ *</div><div class='add'>+ * @return  The encoding that represents UTF-8.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This can not return NULL once the process properly boots up.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_utf8_encoding(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the encoding that represents US-ASCII.</div><div class='add'>+ *</div><div class='add'>+ * @return  The encoding that represents US-ASCII.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This can not return NULL once the process properly boots up.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_usascii_encoding(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the encoding that represents the current locale.</div><div class='add'>+ *</div><div class='add'>+ * @return  The encoding that represents the process' locale.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  is dynamic.   If  you  change the  process'  locale  by e.g.   calling</div><div class='add'>+ * `setlocale(3)`, that should also change the return value of this function.</div><div class='add'>+ *</div><div class='add'>+ * There is no official way for Ruby scripts to manipulate locales, though.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_locale_encoding(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the "filesystem"  encoding.  This is the encoding  that ruby expects</div><div class='add'>+ * info from  the OS'  file system  are in.  This  affects for  instance return</div><div class='add'>+ * value of rb_dir_getwd().  Most  notably on Windows it can be  an alias of OS</div><div class='add'>+ * codepage.  Most  notably on Linux  users can  set this via  default external</div><div class='add'>+ * encoding.</div><div class='add'>+ *</div><div class='add'>+ * @return  The "filesystem" encoding.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_filesystem_encoding(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the "default  external" encoding.   This is  used to  interact with</div><div class='add'>+ * outer-process things such as File.  Though not recommended, you can set this</div><div class='add'>+ * using rb_enc_set_default_external().</div><div class='add'>+ *</div><div class='add'>+ * @return  The "default external"  encoding.</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_default_external_encoding(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the "default  internal" encoding.   This could  be a  null pointer.</div><div class='add'>+ * Otherwise, outer-process info are  transcoded from default external encoding</div><div class='add'>+ * to this one during reading from an IO.</div><div class='add'>+ *</div><div class='add'>+ * @return  The "default internal"  encoding (if any).</div><div class='add'>+ */</div><div class='add'>+rb_encoding *rb_default_internal_encoding(void);</div><div class='add'>+</div><div class='add'>+#ifndef rb_ascii8bit_encindex</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_ascii8bit_encoding(), except it returns the encoding's index</div><div class='add'>+ * instead of the encoding itself.</div><div class='add'>+ *</div><div class='add'>+ * @return  The index of encoding of ASCII-8BIT.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This happens to be 0.</div><div class='add'>+ */</div><div class='add'>+int rb_ascii8bit_encindex(void);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if  the passed  object is  in ascii 8bit  (== binary)  encoding. The</div><div class='add'>+ * object must  be capable of having  inline encoding.  Using this  macro needs</div><div class='add'>+ * deep understanding of bit level object binary layout.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  An object to check.</div><div class='add'>+ * @retval     1    It is.</div><div class='add'>+ * @retval     0    It isn't.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_ENCODING_IS_ASCII8BIT(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return RB_ENCODING_GET_INLINED(obj) == rb_ascii8bit_encindex();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifndef rb_utf8_encindex</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_utf8_encoding(),  except  it returns  the encoding's  index</div><div class='add'>+ * instead of the encoding itself.</div><div class='add'>+ *</div><div class='add'>+ * @return  The index of encoding of UTF-8.</div><div class='add'>+ */</div><div class='add'>+int rb_utf8_encindex(void);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef rb_usascii_encindex</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_usascii_encoding(), except it returns  the encoding's index</div><div class='add'>+ * instead of the encoding itself.</div><div class='add'>+ *</div><div class='add'>+ * @return  The index of encoding of UTF-8.</div><div class='add'>+ */</div><div class='add'>+int rb_usascii_encindex(void);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_locale_encoding(), except  it returns the  encoding's index</div><div class='add'>+ * instead of the encoding itself.</div><div class='add'>+ *</div><div class='add'>+ * @return  The index of the locale encoding.</div><div class='add'>+ */</div><div class='add'>+int rb_locale_encindex(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_filesystem_encoding(),  except  it  returns the  encoding's</div><div class='add'>+ * index instead of the encoding itself.</div><div class='add'>+ *</div><div class='add'>+ * @return  The index of the filesystem encoding.</div><div class='add'>+ */</div><div class='add'>+int rb_filesystem_encindex(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical   to  rb_default_external_encoding(),   except   it  returns   the</div><div class='add'>+ * Ruby-level counterpart  instance of  ::rb_cEncoding that corresponds  to the</div><div class='add'>+ * default external encoding.</div><div class='add'>+ *</div><div class='add'>+ * @return  An instance of ::rb_cEncoding of default external.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_default_external(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical   to  rb_default_internal_encoding(),   except   it  returns   the</div><div class='add'>+ * Ruby-level counterpart  instance of  ::rb_cEncoding that corresponds  to the</div><div class='add'>+ * default internal encoding.</div><div class='add'>+ *</div><div class='add'>+ * @return  An instance of ::rb_cEncoding of default internal.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_default_internal(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively assigns the passed encoding  as the default external encoding.</div><div class='add'>+ * You should not  use this API.  It has process-global  side effects.  Also it</div><div class='add'>+ * doesn't change encodings of strings that have already been read.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  encoding      Ruby level encoding.</div><div class='add'>+ * @exception  rb_eArgError  `encoding` is ::RUBY_Qnil.</div><div class='add'>+ * @post       The default external encoding is `encoding`.</div><div class='add'>+ */</div><div class='add'>+void rb_enc_set_default_external(VALUE encoding);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively assigns the passed encoding  as the default internal encoding.</div><div class='add'>+ * You should not  use this API.  It has process-global  side effects.  Also it</div><div class='add'>+ * doesn't change encodings of strings that have already been read.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  encoding      Ruby level encoding.</div><div class='add'>+ * @post       The default internal encoding is `encoding`.</div><div class='add'>+ * @note       Unlike rb_enc_set_default_external() you can pass ::RUBY_Qnil.</div><div class='add'>+ */</div><div class='add'>+void rb_enc_set_default_internal(VALUE encoding);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Returns  a   platform-depended  "charmap"  of  the   current  locale.   This</div><div class='add'>+ * information  is  called   a  "Codeset  name"  in  IEEE   1003.1  section  13</div><div class='add'>+ * (`&lt;langinfo.h&gt;`).  This is a very low-level  API.  The return value can have</div><div class='add'>+ * no corresponding encoding when passed to rb_find_encoding().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass  Ignored for no reason (why...)</div><div class='add'>+ * @return     The low-level locale charmap, in Ruby's String.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_locale_charmap(VALUE klass);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RB_ENCODING_GET          RB_ENCODING_GET</div><div class='add'>+#define RB_ENCODING_GET_INLINED  RB_ENCODING_GET_INLINED</div><div class='add'>+#define RB_ENCODING_IS_ASCII8BIT RB_ENCODING_IS_ASCII8BIT</div><div class='add'>+#define RB_ENCODING_SET          RB_ENCODING_SET</div><div class='add'>+#define RB_ENCODING_SET_INLINED  RB_ENCODING_SET_INLINED</div><div class='add'>+#define rb_enc_asciicompat       rb_enc_asciicompat</div><div class='add'>+#define rb_enc_code_to_mbclen    rb_enc_code_to_mbclen</div><div class='add'>+#define rb_enc_codepoint         rb_enc_codepoint</div><div class='add'>+#define rb_enc_left_char_head    rb_enc_left_char_head</div><div class='add'>+#define rb_enc_mbc_to_codepoint  rb_enc_mbc_to_codepoint</div><div class='add'>+#define rb_enc_mbcput            rb_enc_mbcput</div><div class='add'>+#define rb_enc_mbmaxlen          rb_enc_mbmaxlen</div><div class='add'>+#define rb_enc_mbminlen          rb_enc_mbminlen</div><div class='add'>+#define rb_enc_name              rb_enc_name</div><div class='add'>+#define rb_enc_prev_char         rb_enc_prev_char</div><div class='add'>+#define rb_enc_right_char_head   rb_enc_right_char_head</div><div class='add'>+#define rb_enc_step_back         rb_enc_step_back</div><div class='add'>+#define rb_enc_str_asciicompat_p rb_enc_str_asciicompat_p</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_INTERNAL_ENCODING_ENCODING_H */</div><div class='head'>diff --git a/include/ruby/internal/encoding/pathname.h b/include/ruby/internal/encoding/pathname.h<br/>new file mode 100644<br/>index 0000000000..0b5e85a524<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/encoding/pathname.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/encoding/pathname.h</a></div><div class='hunk'>@@ -0,0 +1,184 @@</div><div class='add'>+#ifndef RUBY_INTERNAL_ENCODING_PATHNAME_H            /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_INTERNAL_ENCODING_PATHNAME_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Routines to manipulate encodings of pathnames.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/encoding/encoding.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Returns a path component directly adjacent to the passed pointer.</div><div class='add'>+ *</div><div class='add'>+ * ```</div><div class='add'>+ * "/multi/byte/encoded/pathname.txt"</div><div class='add'>+ *         ^    ^                   ^</div><div class='add'>+ *         |    |                   +--- end</div><div class='add'>+ *         |    +--- @return</div><div class='add'>+ *         +--- path</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path  Where to start scanning.</div><div class='add'>+ * @param[in]  end   End of the path string.</div><div class='add'>+ * @param[in]  enc   Encoding of the string.</div><div class='add'>+ * @return     A pointer  in the  passed string where  the next  path component</div><div class='add'>+ *             resides, or `end` if there is no next path component.</div><div class='add'>+ */</div><div class='add'>+char *rb_enc_path_next(const char *path, const char *end, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Seeks for non-prefix  part of a pathname.   This can be a no-op  when the OS</div><div class='add'>+ * has no  such concept  like a  path prefix.   But there  are OSes  where path</div><div class='add'>+ * prefixes do exist.</div><div class='add'>+ *</div><div class='add'>+ * ```</div><div class='add'>+ * "C:\multi\byte\encoded\pathname.txt"</div><div class='add'>+ *  ^ ^                               ^</div><div class='add'>+ *  | |                               +--- end</div><div class='add'>+ *  | +--- @return</div><div class='add'>+ *  +--- path</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path  Where to start scanning.</div><div class='add'>+ * @param[in]  end   End of the path string.</div><div class='add'>+ * @param[in]  enc   Encoding of the string.</div><div class='add'>+ * @return     A pointer in the passed  string where non-prefix part starts, or</div><div class='add'>+ *             `path` if the OS does not have path prefix.</div><div class='add'>+ */</div><div class='add'>+char *rb_enc_path_skip_prefix(const char *path, const char *end, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Returns the last path component.</div><div class='add'>+ *</div><div class='add'>+ * ```</div><div class='add'>+ * "/multi/byte/encoded/pathname.txt"</div><div class='add'>+ *        ^             ^           ^</div><div class='add'>+ *        |             |           +--- end</div><div class='add'>+ *        |             +--- @return</div><div class='add'>+ *        +--- path</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path  Where to start scanning.</div><div class='add'>+ * @param[in]  end   End of the path string.</div><div class='add'>+ * @param[in]  enc   Encoding of the string.</div><div class='add'>+ * @return     A pointer  in the  passed string where  the last  path component</div><div class='add'>+ *             resides, or `end` if there is no more path component.</div><div class='add'>+ */</div><div class='add'>+char *rb_enc_path_last_separator(const char *path, const char *end, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * This just returns the passed end basically.  It makes difference in case the</div><div class='add'>+ * passed string ends with tons of path separators like the following:</div><div class='add'>+ *</div><div class='add'>+ * ```</div><div class='add'>+ * "/path/that/ends/with/lots/of/slashes//////////////"</div><div class='add'>+ *  ^                                   ^             ^</div><div class='add'>+ *  |                                   |             +--- end</div><div class='add'>+ *  |                                   +--- @return</div><div class='add'>+ *  +--- path</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path  Where to start scanning.</div><div class='add'>+ * @param[in]  end   End of the path string.</div><div class='add'>+ * @param[in]  enc   Encoding of the string.</div><div class='add'>+ * @return     A  pointer  in  the  passed   string  where  the  trailing  path</div><div class='add'>+ *             separators  start,  or  `end`  if  there  is  no  trailing  path</div><div class='add'>+ *             separators.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It  seems this  function  was  introduced to  mimic  what  POSIX says  about</div><div class='add'>+ * `basename(3)`.</div><div class='add'>+ */</div><div class='add'>+char *rb_enc_path_end(const char *path, const char *end, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1, 4))</div><div class='add'>+/**</div><div class='add'>+ * Our own  encoding-aware version  of `basename(3)`.  Normally,  this function</div><div class='add'>+ * returns the  last path  component of  the given name.   However in  case the</div><div class='add'>+ * passed  name  ends  with a  path  separator,  it  returns  the name  of  the</div><div class='add'>+ * directory, not  the last (empty)  component.  Also if  the passed name  is a</div><div class='add'>+ * root directory, it  returns that root directory.  Note  however that Windows</div><div class='add'>+ * filesystem have drive letters, which this function does not return.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      name     Target path.</div><div class='add'>+ * @param[out]     baselen  Return buffer.</div><div class='add'>+ * @param[in,out]  alllen   Number of bytes of `name`.</div><div class='add'>+ * @param[enc]     enc      Encoding of `name`.</div><div class='add'>+ * @return         The rightmost component of `name`.</div><div class='add'>+ * @post           `baselen`, if passed,  is updated to be the  number of bytes</div><div class='add'>+ *                 of the returned basename.</div><div class='add'>+ * @post           `alllen`, if passed, is updated to be the number of bytes of</div><div class='add'>+ *                 strings not considered as the basename.</div><div class='add'>+ */</div><div class='add'>+const char *ruby_enc_find_basename(const char *name, long *baselen, long *alllen, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1, 3))</div><div class='add'>+/**</div><div class='add'>+ * Our own  encoding-aware version of  `extname`.  This function  first applies</div><div class='add'>+ * rb_enc_path_last_separator() to the passed name and only concerns its return</div><div class='add'>+ * value (ignores  any parent directories).  This  function returns complicated</div><div class='add'>+ * results:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * auto path = "...";</div><div class='add'>+ * auto len = strlen(path);</div><div class='add'>+ * auto ret = ruby_enc_find_extname(path, &amp;len, rb_ascii8bit_encoding());</div><div class='add'>+ *</div><div class='add'>+ * switch(len) {</div><div class='add'>+ * case 0:</div><div class='add'>+ *     if (ret == 0) {</div><div class='add'>+ *         // `path` is a file without extensions.</div><div class='add'>+ *     }</div><div class='add'>+ *     else {</div><div class='add'>+ *         // `path` is a dotfile.</div><div class='add'>+ *         // `ret` is the file's name.</div><div class='add'>+ *     }</div><div class='add'>+ *     break;</div><div class='add'>+ *</div><div class='add'>+ * case 1:</div><div class='add'>+ *     // `path` _ends_ with a dot.</div><div class='add'>+ *     // `ret` is that dot.</div><div class='add'>+ *     break;</div><div class='add'>+ *</div><div class='add'>+ * default:</div><div class='add'>+ *     // `path` has an extension.</div><div class='add'>+ *     // `ret` is that extension.</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      name  Target path.</div><div class='add'>+ * @param[in,out]  len   Number of bytes of `name`.</div><div class='add'>+ * @param[in]      enc   Encoding of `name`.</div><div class='add'>+ * @return         See above.</div><div class='add'>+ * @post           `len`, if passed, is updated (see above).</div><div class='add'>+ */</div><div class='add'>+const char *ruby_enc_find_extname(const char *name, long *len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_INTERNAL_ENCODING_PATHNAME_H */</div><div class='head'>diff --git a/include/ruby/internal/encoding/re.h b/include/ruby/internal/encoding/re.h<br/>new file mode 100644<br/>index 0000000000..d0de23bc83<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/encoding/re.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/encoding/re.h</a></div><div class='hunk'>@@ -0,0 +1,46 @@</div><div class='add'>+#ifndef RUBY_INTERNAL_ENCODING_RE_H                  /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_INTERNAL_ENCODING_RE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Routines to manipulate encodings of symbols.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/encoding/encoding.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_reg_new(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr              A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len              Length of  `ptr`, in  bytes, not  including the</div><div class='add'>+ *                              terminating NUL character.</div><div class='add'>+ * @param[in]  enc              Encoding of `ptr`.</div><div class='add'>+ * @param[in]  opts             Options e.g. ONIG_OPTION_MULTILINE.</div><div class='add'>+ * @exception  rb_eRegexpError  Failed to compile `ptr`.</div><div class='add'>+ * @return     An allocated  new instance  of ::rb_cRegexp, of  `enc` encoding,</div><div class='add'>+ *             whose expression is compiled according to `ptr`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_reg_new(const char *ptr, long len, rb_encoding *enc, int opts);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_INTERNAL_ENCODING_RE_H */</div><div class='head'>diff --git a/include/ruby/internal/encoding/sprintf.h b/include/ruby/internal/encoding/sprintf.h<br/>new file mode 100644<br/>index 0000000000..cb8737b414<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/encoding/sprintf.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/encoding/sprintf.h</a></div><div class='hunk'>@@ -0,0 +1,78 @@</div><div class='add'>+#ifndef RUBY_INTERNAL_ENCODING_SPRINTF_H             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_INTERNAL_ENCODING_SPRINTF_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Routines to manipulate encodings of symbols.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stdarg.h&gt;</div><div class='add'>+#include "ruby/internal/attr/format.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/encoding/encoding.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_sprintf(), except it  additionally takes an  encoding.  The</div><div class='add'>+ * passed encoding rules  both the incoming format specifier  and the resulting</div><div class='add'>+ * string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc  Encoding of `fmt`.</div><div class='add'>+ * @param[in]  fmt  A `printf`-like format specifier.</div><div class='add'>+ * @param[in]  ...  Variadic number of contents to format.</div><div class='add'>+ * @return     A rendered new instance of ::rb_cString, of `enc` encoding.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_sprintf(rb_encoding *enc, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0)</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_enc_sprintf(), except  it  takes  a `va_list`  instead  of</div><div class='add'>+ * variadic  arguments.   It  can  also  be seen  as  a  routine  identical  to</div><div class='add'>+ * rb_vsprintf(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc  Encoding of `fmt`.</div><div class='add'>+ * @param[in]  fmt  A `printf`-like format specifier.</div><div class='add'>+ * @param[in]  ap   Contents to format.</div><div class='add'>+ * @return     A rendered new instance of ::rb_cString, of `enc` encoding.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_vsprintf(rb_encoding *enc, const char *fmt, va_list ap);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((3))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4)</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_raise(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  enc  Encoding of the generating exception.</div><div class='add'>+ * @param[in]  exc  A subclass of ::rb_eException.</div><div class='add'>+ * @param[in]  fmt  Format specifier string compatible with rb_sprintf().</div><div class='add'>+ * @param[in]  ...  Contents of the message.</div><div class='add'>+ * @exception  exc  The specified exception.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_enc_raise(rb_encoding *enc, VALUE exc, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_INTERNAL_ENCODING_SPRINTF_H */</div><div class='head'>diff --git a/include/ruby/internal/encoding/string.h b/include/ruby/internal/encoding/string.h<br/>new file mode 100644<br/>index 0000000000..6ed7ca1c90<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/encoding/string.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/encoding/string.h</a></div><div class='hunk'>@@ -0,0 +1,346 @@</div><div class='add'>+#ifndef RUBY_INTERNAL_ENCODING_STRING_H              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_INTERNAL_ENCODING_STRING_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Routines to manipulate encodings of strings.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/encoding/encoding.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/intern/string.h" /* rbimpl_strlen */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_str_new(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len             Length  of `ptr`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @param[in]  enc             Encoding of `ptr`.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate `len+1` bytes.</div><div class='add'>+ * @exception  rb_eArgError    `len` is negative.</div><div class='add'>+ * @return     An instance  of ::rb_cString,  of `len`  bytes length,  of `enc`</div><div class='add'>+ *             encoding, whose contents are verbatim copy of `ptr`.</div><div class='add'>+ * @pre        At  least  `len` bytes  of  continuous  memory region  shall  be</div><div class='add'>+ *             accessible via `ptr`.</div><div class='add'>+ * @note       `enc` can be a  null pointer.  It can also be  seen as a routine</div><div class='add'>+ *             identical to rb_usascii_str_new() then.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_str_new(const char *ptr, long len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_enc_str_new(), except  it assumes the  passed pointer  is a</div><div class='add'>+ * pointer  to a  C string.  It can  also  be seen  as a  routine identical  to</div><div class='add'>+ * rb_str_new_cstr(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A C string.</div><div class='add'>+ * @param[in]  enc             Encoding of `ptr`.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An instance  of ::rb_cString, of `enc`  encoding, whose contents</div><div class='add'>+ *             are verbatim copy of `ptr`.</div><div class='add'>+ * @pre        `ptr` must not be a null pointer.</div><div class='add'>+ * @pre        Because `ptr` is  a C string it  makes no sense for  `enc` to be</div><div class='add'>+ *             something like UTF-32.</div><div class='add'>+ * @note       `enc` can be a  null pointer.  It can also be  seen as a routine</div><div class='add'>+ *             identical to rb_usascii_str_new_cstr() then.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_str_new_cstr(const char *ptr, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_str_new(),  except it takes a C string  literal.  It can</div><div class='add'>+ * also  be seen  as  a  routine identical  to  rb_str_new_static(), except  it</div><div class='add'>+ * additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr           A C string literal.</div><div class='add'>+ * @param[in]  len           `strlen(ptr)`.</div><div class='add'>+ * @param[in]  enc           Encoding of `ptr`.</div><div class='add'>+ * @exception  rb_eArgError  `len` out of range of `size_t`.</div><div class='add'>+ * @pre        `ptr` must be a C string constant.</div><div class='add'>+ * @return     An instance  of ::rb_cString,  of `enc` encoding,  whose backend</div><div class='add'>+ *             storage is the passed C string literal.</div><div class='add'>+ * @warning    It is  a very  bad idea to  write to a  C string  literal (often</div><div class='add'>+ *             immediate  SEGV shall  occur).  Consider  return values  of this</div><div class='add'>+ *             function be read-only.</div><div class='add'>+ * @note       `enc` can be a  null pointer.  It can also be  seen as a routine</div><div class='add'>+ *             identical to rb_usascii_str_new_static() then.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_str_new_static(const char *ptr, long len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_str_new(),  except it returns a "f"string.   It can also</div><div class='add'>+ * be seen as a routine  identical to rb_interned_str(), except it additionally</div><div class='add'>+ * takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr           A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len           Length  of  `ptr`,  in bytes,  not  including  the</div><div class='add'>+ *                           terminating NUL character.</div><div class='add'>+ * @param[in]  enc           Encoding of `ptr`.</div><div class='add'>+ * @exception  rb_eArgError  `len` is negative.</div><div class='add'>+ * @return     A  found or  created instance  of ::rb_cString,  of `len`  bytes</div><div class='add'>+ *             length, of `enc` encoding, whose  contents are identical to that</div><div class='add'>+ *             of `ptr`.</div><div class='add'>+ * @pre        At  least  `len` bytes  of  continuous  memory region  shall  be</div><div class='add'>+ *             accessible via `ptr`.</div><div class='add'>+ * @note       `enc` can be a null  pointer.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_interned_str(const char *ptr, long len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_str_new_cstr(),  except it returns a  "f"string.  It can</div><div class='add'>+ * also be  seen as  a routine identical  to rb_interned_str_cstr(),  except it</div><div class='add'>+ * additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr           A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  enc           Encoding of `ptr`.</div><div class='add'>+ * @return     A found  or created instance  of ::rb_cString of `enc` encoding,</div><div class='add'>+ *             whose contents are identical to that of `ptr`.</div><div class='add'>+ * @pre        At  least  `len` bytes  of  continuous  memory region  shall  be</div><div class='add'>+ *             accessible via `ptr`.</div><div class='add'>+ * @note       `enc` can be a null  pointer.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_interned_str_cstr(const char *ptr, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Counts  the number  of characters  of the  passed string,  according to  the</div><div class='add'>+ * passed encoding.   This has to be  complicated.  The passed string  could be</div><div class='add'>+ * invalid and/or broken.   This routine would scan from the  beginning til the</div><div class='add'>+ * end, byte by byte, to seek out character boundaries.  Could be super slow.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  head  Leftmost pointer to the string.</div><div class='add'>+ * @param[in]  tail  Rightmost pointer to the string.</div><div class='add'>+ * @param[in]  enc   Encoding of the string.</div><div class='add'>+ * @return     Number of characters exist in  `head` .. `tail`.  The definition</div><div class='add'>+ *             of "character" depends on the passed `enc`.</div><div class='add'>+ */</div><div class='add'>+long rb_enc_strlen(const char *head, const char *tail, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the n-th character.  Like  rb_enc_strlen() this function can be fast</div><div class='add'>+ * or slow depending on the contents.   Don't expect characters to be uniformly</div><div class='add'>+ * distributed across the entire string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  head  Leftmost pointer to the string.</div><div class='add'>+ * @param[in]  tail  Rightmost pointer to the string.</div><div class='add'>+ * @param[in]  nth   Requested index of characters.</div><div class='add'>+ * @param[in]  enc   Encoding of the string.</div><div class='add'>+ * @return     Pointer  to  the first  byte  of  the  character that  is  `nth`</div><div class='add'>+ *             character  ahead  of `head`,  or  `tail`  if  there is  no  such</div><div class='add'>+ *             character (OOB  etc).  The definition of  "character" depends on</div><div class='add'>+ *             the passed `enc`.</div><div class='add'>+ */</div><div class='add'>+char *rb_enc_nth(const char *head, const char *tail, long nth, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_enc_get_index(), except the return type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Object in question.</div><div class='add'>+ * @exception  rb_eTypeError  `obj` is incapable of having an encoding.</div><div class='add'>+ * @return     `obj`'s encoding.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_encoding(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_cat(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str                 Destination object.</div><div class='add'>+ * @param[in]   ptr                 Contents to append.</div><div class='add'>+ * @param[in]   len                 Length of `src`, in bytes.</div><div class='add'>+ * @param[in]   enc                 Encoding of `ptr`.</div><div class='add'>+ * @exception   rb_eArgError        `len` is negative.</div><div class='add'>+ * @exception   rb_eEncCompatError  `enc` is not compatible with `str`.</div><div class='add'>+ * @return      The passed `dst`.</div><div class='add'>+ * @post        The  contents  of  `ptr`  is copied,  transcoded  into  `dst`'s</div><div class='add'>+ *              encoding, then pasted into `dst`'s end.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Encodes the passed code point into a series of bytes.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  code             Code point.</div><div class='add'>+ * @param[in]  enc              Target encoding scheme.</div><div class='add'>+ * @exception  rb_eRangeError  `enc` does not glean `code`.</div><div class='add'>+ * @return     An  instance  of ::rb_cString,  of  `enc`  encoding, whose  sole</div><div class='add'>+ *             contents is `code` represented in `enc`.</div><div class='add'>+ * @note       No way to encode code points bigger than UINT_MAX.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * In  other languages,  APIs like  this  one could  be seen  as the  primitive</div><div class='add'>+ * routines where encodings' "encode" feature are implemented.  However in case</div><div class='add'>+ * of  Ruby this  is not  the primitive  one.  We  directly manipulate  encoded</div><div class='add'>+ * strings.  Encoding conversion routines  transcode an encoded string directly</div><div class='add'>+ * to another one; not via a code point array.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enc_uint_chr(unsigned int code, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to   rb_external_str_new(),  except  it  additionally   takes  an</div><div class='add'>+ * encoding.  However the  whole point of rb_external_str_new() is  to encode a</div><div class='add'>+ * string  into default  external encoding.   Being able  to specify  arbitrary</div><div class='add'>+ * encoding just ruins the designed purpose the function meseems.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr           A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len           Length  of  `ptr`,  in bytes,  not  including  the</div><div class='add'>+ *                           terminating NUL character.</div><div class='add'>+ * @param[in]  enc           Target encoding scheme.</div><div class='add'>+ * @exception  rb_eArgError  `len` is negative.</div><div class='add'>+ * @return     An instance  of ::rb_cString.  In case  encoding conversion from</div><div class='add'>+ *             "default  internal" to  `enc` is  fully defined  over the  given</div><div class='add'>+ *             contents, then the  return value is a string  of `enc` encoding,</div><div class='add'>+ *             whose contents are the converted  ones.  Otherwise the string is</div><div class='add'>+ *             a junk.</div><div class='add'>+ * @warning    It doesn't raise on a conversion failure and silently ends up in</div><div class='add'>+ *             a  corrupted  output.  You  can  know  the failure  by  querying</div><div class='add'>+ *             `valid_encoding?` of the result object.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei has  no idea why  this one does  not follow the  naming convention</div><div class='add'>+ * that  others obey.   It  seems to  him  that this  should  have been  called</div><div class='add'>+ * `rb_enc_external_str_new`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_export(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Target object.</div><div class='add'>+ * @param[in]  enc            Target encoding.</div><div class='add'>+ * @exception  rb_eTypeError  No implicit conversion to String.</div><div class='add'>+ * @return     Converted ruby string of `enc` encoding.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_export_to_enc(VALUE obj, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Encoding conversion main routine.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str   String to convert.</div><div class='add'>+ * @param[in]  from  Source encoding.</div><div class='add'>+ * @param[in]  to    Destination encoding.</div><div class='add'>+ * @return     A copy of `str`, with conversion from `from` to `to` applied.</div><div class='add'>+ * @note       `from` can be a null pointer.  `str`'s encoding is taken then.</div><div class='add'>+ * @note       `to` can be a null pointer.  No-op then.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_str_conv_enc(),  except  it additionally  takes IO  encoder</div><div class='add'>+ * options.  The extra arguments  can be constructed using io_extract_modeenc()</div><div class='add'>+ * etc.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str      String to convert.</div><div class='add'>+ * @param[in]  from     Source encoding.</div><div class='add'>+ * @param[in]  to       Destination encoding.</div><div class='add'>+ * @param[in]  ecflags  A set of enum ::ruby_econv_flag_type.</div><div class='add'>+ * @param[in]  ecopts   Optional hash.</div><div class='add'>+ * @return     A copy of `str`, with conversion from `from` to `to` applied.</div><div class='add'>+ * @note       `from` can be a null pointer.  `str`'s encoding is taken then.</div><div class='add'>+ * @note       `to` can be a null pointer.  No-op then.</div><div class='add'>+ * @note       `ecopts` can be  ::RUBY_Qnil, which is equivalent  to passing an</div><div class='add'>+ *             empty hash.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_conv_enc_opts(VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, VALUE ecopts);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Scans the passed string to collect  its code range.  Because a Ruby's string</div><div class='add'>+ * is mutable, its contents  change from time to time; so  does its code range.</div><div class='add'>+ * A  long-lived string  tends  to fall  back to  ::RUBY_ENC_CODERANGE_UNKNOWN.</div><div class='add'>+ * This API scans it and re-assigns a fine-grained code range constant.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str  A string.</div><div class='add'>+ * @return      An enum ::ruby_coderange_type.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_str_coderange(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Scans the passed string until it finds something odd.  Returns the number of</div><div class='add'>+ * bytes scanned.  As the name implies this is suitable for repeated call.  One</div><div class='add'>+ * of its application is `IO#readlines`.   The method reads from its receiver's</div><div class='add'>+ * read buffer, maybe more than once,  looking for newlines.  But "newline" can</div><div class='add'>+ * be different among encodings.  This API is used to detect broken contents to</div><div class='add'>+ * properly mark them as such.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   str  String to scan.</div><div class='add'>+ * @param[in]   end  End of `str`.</div><div class='add'>+ * @param[in]   enc  `str`'s encoding.</div><div class='add'>+ * @param[out]  cr   Return buffer.</div><div class='add'>+ * @return      Distance between `str` and first such byte where broken.</div><div class='add'>+ * @post        `cr` has the code range type.</div><div class='add'>+ */</div><div class='add'>+long rb_str_coderange_scan_restartable(const char *str, const char *end, rb_encoding *enc, int *cr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if  the passed string  is "ASCII only".  An  ASCII only string  is a</div><div class='add'>+ * string  who doesn't  have any  non-ASCII  characters at  all.  This  doesn't</div><div class='add'>+ * necessarily mean the string is in  ASCII encoding.  For instance a String of</div><div class='add'>+ * CP932 encoding can quite much be ASCII only, depending on its contents.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  String in question.</div><div class='add'>+ * @retval     1    It doesn't have non-ASCII characters.</div><div class='add'>+ * @retval     0    It has characters that are out of ASCII.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_str_asciionly_p(VALUE str);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Looks for the passed string in the passed buffer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x          Buffer that potentially includes `y`.</div><div class='add'>+ * @param[in]  m          Number of bytes of `x`.</div><div class='add'>+ * @param[in]  y          Query string.</div><div class='add'>+ * @param[in]  n          Number of bytes of `y`.</div><div class='add'>+ * @param[in]  enc        Encoding of both `x` and `y`.</div><div class='add'>+ * @retval     -1         Not found.</div><div class='add'>+ * @retval     otherwise  Found index in `x`.</div><div class='add'>+ * @note       This API can match at a non-character-boundary.</div><div class='add'>+ */</div><div class='add'>+long rb_memsearch(const void *x, long m, const void *y, long n, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+static inline VALUE</div><div class='add'>+rbimpl_enc_str_new_cstr(const char *str, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    long len = rbimpl_strlen(str);</div><div class='add'>+</div><div class='add'>+    return rb_enc_str_new_static(str, len, enc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define rb_enc_str_new(str, len, enc)           \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str) &amp;&amp;                 \</div><div class='add'>+      RBIMPL_CONSTANT_P(len) ?                  \</div><div class='add'>+      rb_enc_str_new_static:                    \</div><div class='add'>+      rb_enc_str_new) ((str), (len), (enc)))</div><div class='add'>+</div><div class='add'>+#define rb_enc_str_new_cstr(str, enc)           \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str)  ?                 \</div><div class='add'>+      rbimpl_enc_str_new_cstr :                 \</div><div class='add'>+      rb_enc_str_new_cstr) ((str), (enc)))</div><div class='add'>+</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_INTERNAL_ENCODING_STRING_H */</div><div class='head'>diff --git a/include/ruby/internal/encoding/symbol.h b/include/ruby/internal/encoding/symbol.h<br/>new file mode 100644<br/>index 0000000000..9cd1b0dbf4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/encoding/symbol.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/encoding/symbol.h</a></div><div class='hunk'>@@ -0,0 +1,100 @@</div><div class='add'>+#ifndef RUBY_INTERNAL_ENCODING_SYMBOL_H              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_INTERNAL_ENCODING_SYMBOL_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Routines to manipulate encodings of symbols.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/encoding/encoding.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_intern2(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name              The name of the id.</div><div class='add'>+ * @param[in]  len               Length of `name`.</div><div class='add'>+ * @param[in]  enc               `name`'s encoding.</div><div class='add'>+ * @exception  rb_eRuntimeError  Too many symbols.</div><div class='add'>+ * @return     A (possibly new) id whose value is the given name.</div><div class='add'>+ * @note       These   days  Ruby   internally   has  two   kinds  of   symbols</div><div class='add'>+ *             (static/dynamic).   Symbols created  using  this function  would</div><div class='add'>+ *             become static ones;  i.e. would never be  garbage collected.  It</div><div class='add'>+ *             is up  to you to avoid  memory leaks.  Think twice  before using</div><div class='add'>+ *             it.</div><div class='add'>+ */</div><div class='add'>+ID rb_intern3(const char *name, long len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_symname_p(), except it additionally takes an encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A C string to check.</div><div class='add'>+ * @param[in]  enc  `str`'s encoding.</div><div class='add'>+ * @retval     1    It is a valid symbol name.</div><div class='add'>+ * @retval     0    It is invalid as a symbol name.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_symname_p(const char *str, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_enc_symname_p(),  except it  additionally takes  the passed</div><div class='add'>+ * string's length.  This  is needed for strings containing NUL  bytes, like in</div><div class='add'>+ * case of UTF-32.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name  A C string to check.</div><div class='add'>+ * @param[in]  len   Number of bytes of `str`.</div><div class='add'>+ * @param[in]  enc   `str`'s encoding.</div><div class='add'>+ * @retval     1     It is a valid symbol name.</div><div class='add'>+ * @retval     0     It is invalid as a symbol name.</div><div class='add'>+ */</div><div class='add'>+int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_check_id(), except it  takes a  pointer to a  memory region</div><div class='add'>+ * instead of Ruby's string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr                A pointer to a memory region.</div><div class='add'>+ * @param[in]  len                Number of bytes of `ptr`.</div><div class='add'>+ * @param[in]  enc                Encoding of `ptr`.</div><div class='add'>+ * @exception  rb_eEncodingError  `ptr` contains non-ASCII according to `enc`.</div><div class='add'>+ * @retval     0                  No such id ever existed in the history.</div><div class='add'>+ * @retval     otherwise          The id that represents the given name.</div><div class='add'>+ */</div><div class='add'>+ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_check_id_cstr(), except for the return type.  It can also be</div><div class='add'>+ * seen as a routine identical to  rb_check_symbol(), except it takes a pointer</div><div class='add'>+ * to a memory region instead of Ruby's string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr                A pointer to a memory region.</div><div class='add'>+ * @param[in]  len                Number of bytes of `ptr`.</div><div class='add'>+ * @param[in]  enc                Encoding of `ptr`.</div><div class='add'>+ * @exception  rb_eEncodingError  `ptr` contains non-ASCII according to `enc`.</div><div class='add'>+ * @retval     RUBY_Qnil          No such id ever existed in the history.</div><div class='add'>+ * @retval     otherwise          The id that represents the given name.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_check_symbol_cstr(const char *ptr, long len, rb_encoding *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_INTERNAL_ENCODING_SYMBOL_H */</div><div class='head'>diff --git a/include/ruby/internal/encoding/transcode.h b/include/ruby/internal/encoding/transcode.h<br/>new file mode 100644<br/>index 0000000000..7f26d2eae9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/encoding/transcode.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/encoding/transcode.h</a></div><div class='hunk'>@@ -0,0 +1,562 @@</div><div class='add'>+#ifndef RUBY_INTERNAL_ENCODING_TRANSCODE_H           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_INTERNAL_ENCODING_TRANSCODE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      econv stuff</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/** return value of rb_econv_convert() */</div><div class='add'>+typedef enum {</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The conversion stopped when it found an invalid sequence.</div><div class='add'>+     */</div><div class='add'>+    econv_invalid_byte_sequence,</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The conversion  stopped when  it found  a character  in the  input which</div><div class='add'>+     * cannot be representable in the output.</div><div class='add'>+     */</div><div class='add'>+    econv_undefined_conversion,</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The conversion stopped because there is no destination.</div><div class='add'>+     */</div><div class='add'>+    econv_destination_buffer_full,</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The conversion stopped because there is no input.</div><div class='add'>+     */</div><div class='add'>+    econv_source_buffer_empty,</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The conversion  stopped after  converting everything.  This  is arguably</div><div class='add'>+     * the expected normal end of conversion.</div><div class='add'>+     */</div><div class='add'>+    econv_finished,</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The  conversion stopped  after  writing something  to somewhere,  before</div><div class='add'>+     * reading everything.</div><div class='add'>+     */</div><div class='add'>+    econv_after_output,</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The conversion stopped in middle of reading a character, possibly due to</div><div class='add'>+     * a partial read of a socket etc.</div><div class='add'>+     */</div><div class='add'>+    econv_incomplete_input</div><div class='add'>+} rb_econv_result_t;</div><div class='add'>+</div><div class='add'>+/** An opaque struct that represents a lowest level of encoding conversion. */</div><div class='add'>+typedef struct rb_econv_t rb_econv_t;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts the contents  of the passed string from its  encoding to the passed</div><div class='add'>+ * one.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str                           Target string.</div><div class='add'>+ * @param[in]  to                            Destination encoding.</div><div class='add'>+ * @param[in]  ecflags                       A        set        of        enum</div><div class='add'>+ *                                           ::ruby_econv_flag_type.</div><div class='add'>+ * @param[in]  ecopts                        A      keyword     hash,      like</div><div class='add'>+ *                                           ::rb_io_t::rb_io_enc_t::ecopts.</div><div class='add'>+ * @exception  rb_eArgError                  Not fully converted.</div><div class='add'>+ * @exception  rb_eInvalidByteSequenceError  `str` is malformed.</div><div class='add'>+ * @exception  rb_eUndefinedConversionError  `str`   has    a   character   not</div><div class='add'>+ *                                           representable using `to`.</div><div class='add'>+ * @exception  rb_eConversionNotFoundError   There is no  known conversion from</div><div class='add'>+ *                                           `str`'s encoding to `to`.</div><div class='add'>+ * @return     A string whose encoding is `to`, and whose contents is converted</div><div class='add'>+ *             contents of `str`.</div><div class='add'>+ * @note       Use rb_econv_prepare_options() to generate `ecopts`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if  there is  more than one  way to convert  between the  passed two</div><div class='add'>+ * encodings.  Encoding  conversion are  has_and_belongs_to_many relationships.</div><div class='add'>+ * There could be no direct conversion defined for the passed pair.  Ruby tries</div><div class='add'>+ * to find  an indirect  way to  do so  then.  For  instance ISO-8859-1  has no</div><div class='add'>+ * direct  conversion  to  ISO-2022-JP.   But  there  is  ISO-8859-1  to  UTF-8</div><div class='add'>+ * conversion; then there is UTF-8 to  EUC-JP conversion; finally there also is</div><div class='add'>+ * EUC-JP to ISO-2022-JP  conversion.  So in short ISO-8859-1  can be converted</div><div class='add'>+ * to ISO-2022-JP using that path.   This function returns true.  Obviously not</div><div class='add'>+ * everything that can be represented using UTF-8 can also be represented using</div><div class='add'>+ * EUC-JP.  Conversions in practice can fail depending on the actual input, and</div><div class='add'>+ * that renders exceptions in case of rb_str_encode().</div><div class='add'>+ *</div><div class='add'>+ * @param[in] from_encoding  One encoding.</div><div class='add'>+ * @param[in] to_encoding    Another encoding.</div><div class='add'>+ * @retval    0              No way to convert the two.</div><div class='add'>+ * @retval    1              At least one way to convert the two.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Practically @shyouhei knows no way for  this function to return 0.  It seems</div><div class='add'>+ * everything  can  eventually  be  converted  to/from  UTF-8,  which  connects</div><div class='add'>+ * everything.</div><div class='add'>+ */</div><div class='add'>+int rb_econv_has_convpath_p(const char* from_encoding, const char* to_encoding);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_econv_prepare_opts(),  except it  additionally  takes  the</div><div class='add'>+ * initial  value of  flags.  The  extra bits  are bitwise-ORed  to the  return</div><div class='add'>+ * value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   opthash       Keyword arguments.</div><div class='add'>+ * @param[out]  ecopts        Return buffer.</div><div class='add'>+ * @param[in]   ecflags       Default set of enum ::ruby_econv_flag_type.</div><div class='add'>+ * @exception   rb_eArgError  Unknown/Broken values passed.</div><div class='add'>+ * @return      Calculated set of enum ::ruby_econv_flag_type.</div><div class='add'>+ * @post        `ecopts`     holds    a     hash     object    suitable     for</div><div class='add'>+ *              ::rb_io_t::rb_io_enc_t::ecopts.</div><div class='add'>+ */</div><div class='add'>+int rb_econv_prepare_options(VALUE opthash, VALUE *ecopts, int ecflags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Splits a  keyword arguments  hash (that  for instance  `String#encode` took)</div><div class='add'>+ * into a  set of  enum ::ruby_econv_flag_type and  a hash  storing replacement</div><div class='add'>+ * characters etc.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   opthash       Keyword arguments.</div><div class='add'>+ * @param[out]  ecopts        Return buffer.</div><div class='add'>+ * @exception   rb_eArgError  Unknown/Broken values passed.</div><div class='add'>+ * @return      Calculated set of enum ::ruby_econv_flag_type.</div><div class='add'>+ * @post        `ecopts`     holds    a     hash     object    suitable     for</div><div class='add'>+ *              ::rb_io_t::rb_io_enc_t::ecopts.</div><div class='add'>+ */</div><div class='add'>+int rb_econv_prepare_opts(VALUE opthash, VALUE *ecopts);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a new instance of struct ::rb_econv_t.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  source_encoding       Name of an encoding.</div><div class='add'>+ * @param[in]  destination_encoding  Name of another encoding.</div><div class='add'>+ * @param[in]  ecflags               A set of enum ::ruby_econv_flag_type.</div><div class='add'>+ * @exception  rb_eArgError          No such encoding.</div><div class='add'>+ * @retval     NULL                  Failed to create a struct ::rb_econv_t.</div><div class='add'>+ * @retval     otherwise             Allocated struct ::rb_econv_t.</div><div class='add'>+ * @warning    Return value must be passed to rb_econv_close() exactly once.</div><div class='add'>+ */</div><div class='add'>+rb_econv_t *rb_econv_open(const char *source_encoding, const char *destination_encoding, int ecflags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_econv_open(),  except  it additionally  takes  a  hash  of</div><div class='add'>+ * optional strings.</div><div class='add'>+ *</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  source_encoding       Name of an encoding.</div><div class='add'>+ * @param[in]  destination_encoding  Name of another encoding.</div><div class='add'>+ * @param[in]  ecflags               A set of enum ::ruby_econv_flag_type.</div><div class='add'>+ * @param[in]  ecopts                Optional set of strings.</div><div class='add'>+ * @exception  rb_eArgError          No such encoding.</div><div class='add'>+ * @retval     NULL                  Failed to create a struct ::rb_econv_t.</div><div class='add'>+ * @retval     otherwise             Allocated struct ::rb_econv_t.</div><div class='add'>+ * @warning    Return value must be passed to rb_econv_close() exactly once.</div><div class='add'>+ */</div><div class='add'>+rb_econv_t *rb_econv_open_opts(const char *source_encoding, const char *destination_encoding, int ecflags, VALUE ecopts);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a string from an encoding to another.</div><div class='add'>+ *</div><div class='add'>+ * Possible  flags  are  either ::RUBY_ECONV_PARTIAL_INPUT  (means  the  source</div><div class='add'>+ * buffer is a  part of much larger  one), ::RUBY_ECONV_AFTER_OUTPUT (instructs</div><div class='add'>+ * the converter to stop after output before input), or both of them.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  ec                      Conversion specification/state etc.</div><div class='add'>+ * @param[in]      source_buffer_ptr       Target string.</div><div class='add'>+ * @param[in]      source_buffer_end       End of target string.</div><div class='add'>+ * @param[out]     destination_buffer_ptr  Return buffer.</div><div class='add'>+ * @param[out]     destination_buffer_end  End of return buffer.</div><div class='add'>+ * @param[in]      flags                   Flags (see above).</div><div class='add'>+ * @return         The status of the conversion.</div><div class='add'>+ * @post           `destination_buffer_ptr` holds conversion results.</div><div class='add'>+ */</div><div class='add'>+rb_econv_result_t rb_econv_convert(rb_econv_t *ec,</div><div class='add'>+    const unsigned char **source_buffer_ptr, const unsigned char *source_buffer_end,</div><div class='add'>+    unsigned char **destination_buffer_ptr, unsigned char *destination_buffer_end,</div><div class='add'>+    int flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructs a converter.  Note that a converter  can have a buffer, and can be</div><div class='add'>+ * non-empty.  Calling this would lose your data then.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ec The converter to destroy.</div><div class='add'>+ * @post        `ec` is no longer a valid pointer.</div><div class='add'>+ */</div><div class='add'>+void rb_econv_close(rb_econv_t *ec);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Assigns  the replacement  string.  The  string passed  here would  appear in</div><div class='add'>+ * converted string when it cannot  represent its source counterpart.  This can</div><div class='add'>+ * happen for instance you convert an emoji to ISO-8859-1.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ec       Target converter.</div><div class='add'>+ * @param[in]   str      Replacement string.</div><div class='add'>+ * @param[in]   len      Number of bytes of `str`.</div><div class='add'>+ * @param[in]   encname  Name of encoding of `str`.</div><div class='add'>+ * @retval      0        Success.</div><div class='add'>+ * @retval      -1       Failure (ENOMEM etc.).</div><div class='add'>+ * @post        `ec`'s replacement string is set to `str`.</div><div class='add'>+ */</div><div class='add'>+int rb_econv_set_replacement(rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * "Decorate"s  a  converter.   There  are  special  kind  of  converters  that</div><div class='add'>+ * transforms the  contents, like  replacing CR  into CRLF.   You can  add such</div><div class='add'>+ * decorators  to  a converter  using  this  API.   By  using this  function  a</div><div class='add'>+ * decorator is prepended at the beginning of a conversion sequence: in case of</div><div class='add'>+ * CRLF conversion, newlines are converted before encodings are converted.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ec              Target converter to decorate.</div><div class='add'>+ * @param[in]   decorator_name  Name of decorator to prepend.</div><div class='add'>+ * @retval      0               Success.</div><div class='add'>+ * @retval      -1              Failure (no such decorator etc.).</div><div class='add'>+ * @post        Decorator works before encoding conversion happens.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * What is the possible value of  the `decorator_name` is not public.  You have</div><div class='add'>+ * to read through `transcode.c` carefully.</div><div class='add'>+ */</div><div class='add'>+int rb_econv_decorate_at_first(rb_econv_t *ec, const char *decorator_name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_econv_decorate_at_first(), except  it adds to  the opposite</div><div class='add'>+ * direction.  For  instance CRLF  conversion would  run _after_  encodings are</div><div class='add'>+ * converted.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ec              Target converter to decorate.</div><div class='add'>+ * @param[in]   decorator_name  Name of decorator to prepend.</div><div class='add'>+ * @retval      0               Success.</div><div class='add'>+ * @retval      -1              Failure (no such decorator etc.).</div><div class='add'>+ * @post        Decorator works after encoding conversion happens.</div><div class='add'>+ */</div><div class='add'>+int rb_econv_decorate_at_last(rb_econv_t *ec, const char *decorator_name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates  a  `rb_eConverterNotFoundError`  exception  object  (but  does  not</div><div class='add'>+ * raise).</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  senc     Name of source encoding.</div><div class='add'>+ * @param[in]  denc     Name of destination encoding.</div><div class='add'>+ * @param[in]  ecflags  A set of enum ::ruby_econv_flag_type.</div><div class='add'>+ * @return     An instance of `rb_eConverterNotFoundError`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_econv_open_exc(const char *senc, const char *denc, int ecflags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Appends the passed string to the passed converter's output buffer.  This can</div><div class='add'>+ * be  handy  when an  encoding  needs  bytes out  of  thin  air; for  instance</div><div class='add'>+ * ISO-2022-JP  has  "shift   function"  which  does  not   correspond  to  any</div><div class='add'>+ * characters.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ec            Target converter.</div><div class='add'>+ * @param[in]   str           String to insert.</div><div class='add'>+ * @param[in]   len           Number of bytes of `str`.</div><div class='add'>+ * @param[in]   str_encoding  Encoding of `str`.</div><div class='add'>+ * @retval      0             Success.</div><div class='add'>+ * @retval      -1            Failure (conversion error etc.).</div><div class='add'>+ * @note        `str_encoding` can  be anything, and `str`  itself is converted</div><div class='add'>+ *              when necessary.</div><div class='add'>+ */</div><div class='add'>+int rb_econv_insert_output(rb_econv_t *ec,</div><div class='add'>+    const unsigned char *str, size_t len, const char *str_encoding);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  an encoding  name which  best suits  for rb_econv_insert_output()'s</div><div class='add'>+ * last parameter.  Strings in this  encoding need no conversion when inserted;</div><div class='add'>+ * can be both time/space efficient.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ec  Target converter.</div><div class='add'>+ * @return     Its encoding for insertion.</div><div class='add'>+ */</div><div class='add'>+const char *rb_econv_encoding_to_insert_output(rb_econv_t *ec);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a rb_econv_make_exception() + rb_exc_raise() combo.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ec                            (Possibly failed) conversion.</div><div class='add'>+ * @exception  rb_eInvalidByteSequenceError  Invalid byte sequence.</div><div class='add'>+ * @exception  rb_eUndefinedConversionError  Conversion undefined.</div><div class='add'>+ * @note       This function can return when no error.</div><div class='add'>+ */</div><div class='add'>+void rb_econv_check_error(rb_econv_t *ec);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This function makes sense right after rb_econv_convert() returns.  As listed</div><div class='add'>+ * in ::rb_econv_result_t, rb_econv_convert() can bail out for various reasons.</div><div class='add'>+ * This function checks the passed converter's internal state and convert it to</div><div class='add'>+ * an appropriate exception object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ec         Target converter.</div><div class='add'>+ * @retval     RUBY_Qnil  The converter has no error.</div><div class='add'>+ * @retval     otherwise  Conversion error turned into an exception.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_econv_make_exception(rb_econv_t *ec);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  if rb_econv_putback()  makes  sense, i.e.  there  are invalid  byte</div><div class='add'>+ * sequences remain in the buffer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ec  Target converter.</div><div class='add'>+ * @return     Number of bytes that can be pushed back.</div><div class='add'>+ */</div><div class='add'>+int rb_econv_putbackable(rb_econv_t *ec);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Puts  back the  bytes.  In  case of  ::econv_invalid_byte_sequence, some  of</div><div class='add'>+ * those  invalid  bytes are  discarded  and  the  others  are buffered  to  be</div><div class='add'>+ * converted later.  The latter bytes can be put back using this API.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ec  Target converter (invalid byte sequence).</div><div class='add'>+ * @param[out]  p   Return buffer.</div><div class='add'>+ * @param[in]   n   Max number of bytes to put back.</div><div class='add'>+ * @post        At most `n` bytes of what was put back is written to `p`.</div><div class='add'>+ */</div><div class='add'>+void rb_econv_putback(rb_econv_t *ec, unsigned char *p, int n);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the passed encoding's corresponding ASCII compatible encoding.  "The</div><div class='add'>+ * corresponding  ASCII  compatible  encoding"  in this  context  is  an  ASCII</div><div class='add'>+ * compatible encoding which  can represent exactly the same  character sets as</div><div class='add'>+ * the given  ASCII incompatible  encoding.  For instance  that of  UTF-16LE is</div><div class='add'>+ * UTF-8.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  encname    Name of an ASCII incompatible encoding.</div><div class='add'>+ * @retval     NULL       `encname` is already ASCII compatible.</div><div class='add'>+ * @retval     otherwise  The corresponding ASCII compatible encoding.</div><div class='add'>+ */</div><div class='add'>+const char *rb_econv_asciicompat_encoding(const char *encname);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_econv_convert(), except it  takes Ruby's string  instead of</div><div class='add'>+ * C's pointer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  ec                            Target converter.</div><div class='add'>+ * @param[in]      src                           Source string.</div><div class='add'>+ * @param[in]      flags                         Flags (see rb_econv_convert).</div><div class='add'>+ * @exception      rb_eArgError                  Converted string is too long.</div><div class='add'>+ * @exception      rb_eInvalidByteSequenceError  Invalid byte sequence.</div><div class='add'>+ * @exception      rb_eUndefinedConversionError  Conversion undefined.</div><div class='add'>+ * @return         The conversion result.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_econv_str_convert(rb_econv_t *ec, VALUE src, int flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_econv_str_convert(),  except it converts only a  part of the</div><div class='add'>+ * passed string.  Can be handy when  you for instance want to do line-buffered</div><div class='add'>+ * conversion.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  ec                            Target converter.</div><div class='add'>+ * @param[in]      src                           Source string.</div><div class='add'>+ * @param[in]      byteoff                       Number of bytes to seek.</div><div class='add'>+ * @param[in]      bytesize                      Number of bytes to read.</div><div class='add'>+ * @param[in]      flags                         Flags (see rb_econv_convert).</div><div class='add'>+ * @exception      rb_eArgError                  Converted string is too long.</div><div class='add'>+ * @exception      rb_eInvalidByteSequenceError  Invalid byte sequence.</div><div class='add'>+ * @exception      rb_eUndefinedConversionError  Conversion undefined.</div><div class='add'>+ * @return         The conversion result.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_econv_substr_convert(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_econv_str_convert(), except it appends the conversion result</div><div class='add'>+ * to the additionally passed string instead  of creating a new string.  It can</div><div class='add'>+ * also be seen as a routine  identical to rb_econv_append(), except it takes a</div><div class='add'>+ * Ruby's string instead of C's pointer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  ec                            Target converter.</div><div class='add'>+ * @param[in]      src                           Source string.</div><div class='add'>+ * @param[in]      dst                           Return buffer.</div><div class='add'>+ * @param[in]      flags                         Flags (see rb_econv_convert).</div><div class='add'>+ * @exception      rb_eArgError                  Converted string is too long.</div><div class='add'>+ * @exception      rb_eInvalidByteSequenceError  Invalid byte sequence.</div><div class='add'>+ * @exception      rb_eUndefinedConversionError  Conversion undefined.</div><div class='add'>+ * @return         The conversion result.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_econv_str_append(rb_econv_t *ec, VALUE src, VALUE dst, int flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_econv_str_append(), except  it appends only  a part  of the</div><div class='add'>+ * passed string with  conversion.  It can also be seen  as a routine identical</div><div class='add'>+ * to rb_econv_substr_convert(), except it appends the conversion result to the</div><div class='add'>+ * additionally passed string instead of creating a new string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  ec                            Target converter.</div><div class='add'>+ * @param[in]      src                           Source string.</div><div class='add'>+ * @param[in]      byteoff                       Number of bytes to seek.</div><div class='add'>+ * @param[in]      bytesize                      Number of bytes to read.</div><div class='add'>+ * @param[in]      dst                           Return buffer.</div><div class='add'>+ * @param[in]      flags                         Flags (see rb_econv_convert).</div><div class='add'>+ * @exception      rb_eArgError                  Converted string is too long.</div><div class='add'>+ * @exception      rb_eInvalidByteSequenceError  Invalid byte sequence.</div><div class='add'>+ * @exception      rb_eUndefinedConversionError  Conversion undefined.</div><div class='add'>+ * @return         The conversion result.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_econv_substr_append(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, VALUE dst, int flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts  the passed  C's pointer  according to  the passed  converter, then</div><div class='add'>+ * append the conversion  result to the passed Ruby's string.   This way buffer</div><div class='add'>+ * overflow is properly avoided to resize the destination properly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  ec                            Target converter.</div><div class='add'>+ * @param[in]      bytesrc                       Target string.</div><div class='add'>+ * @param[in]      bytesize                      Number of bytes of `bytesrc`.</div><div class='add'>+ * @param[in]      dst                           Return buffer.</div><div class='add'>+ * @param[in]      flags                         Flags (see rb_econv_convert).</div><div class='add'>+ * @exception      rb_eArgError                  Converted string is too long.</div><div class='add'>+ * @exception      rb_eInvalidByteSequenceError  Invalid byte sequence.</div><div class='add'>+ * @exception      rb_eUndefinedConversionError  Conversion undefined.</div><div class='add'>+ * @return         The conversion result.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_econv_append(rb_econv_t *ec, const char *bytesrc, long bytesize, VALUE dst, int flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This badly named  function does not set the destination  encoding to binary,</div><div class='add'>+ * but  instead just  nullifies newline  conversion decorators  if any.   Other</div><div class='add'>+ * ordinal character conversions still  happen after this; something non-binary</div><div class='add'>+ * would still be generated.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ec  Target converter to modify.</div><div class='add'>+ * @post        Any newline conversions, if any, would be killed.</div><div class='add'>+ */</div><div class='add'>+void rb_econv_binmode(rb_econv_t *ec);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This enum is kind of omnibus.  Gathers various constants.</div><div class='add'>+ */</div><div class='add'>+enum ruby_econv_flag_type {</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * @name Flags for rb_econv_open()</div><div class='add'>+     *</div><div class='add'>+     * @{</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    /** Mask for error handling related bits. */</div><div class='add'>+    RUBY_ECONV_ERROR_HANDLER_MASK               = 0x000000ff,</div><div class='add'>+</div><div class='add'>+    /** Special handling of invalid sequences are there. */</div><div class='add'>+    RUBY_ECONV_INVALID_MASK                     = 0x0000000f,</div><div class='add'>+</div><div class='add'>+    /** Invalid sequences shall be replaced. */</div><div class='add'>+    RUBY_ECONV_INVALID_REPLACE                  = 0x00000002,</div><div class='add'>+</div><div class='add'>+    /** Special handling of undefined conversion are there. */</div><div class='add'>+    RUBY_ECONV_UNDEF_MASK                       = 0x000000f0,</div><div class='add'>+</div><div class='add'>+    /** Undefined characters shall be replaced. */</div><div class='add'>+    RUBY_ECONV_UNDEF_REPLACE                    = 0x00000020,</div><div class='add'>+</div><div class='add'>+    /** Undefined characters shall be escaped. */</div><div class='add'>+    RUBY_ECONV_UNDEF_HEX_CHARREF                = 0x00000030,</div><div class='add'>+</div><div class='add'>+    /** Decorators are there. */</div><div class='add'>+    RUBY_ECONV_DECORATOR_MASK                   = 0x0001ff00,</div><div class='add'>+</div><div class='add'>+    /** Newline converters are there. */</div><div class='add'>+    RUBY_ECONV_NEWLINE_DECORATOR_MASK           = 0x00007f00,</div><div class='add'>+</div><div class='add'>+    /** (Unclear; seems unused). */</div><div class='add'>+    RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK      = 0x00000f00,</div><div class='add'>+</div><div class='add'>+    /** (Unclear; seems unused). */</div><div class='add'>+    RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK     = 0x00007000,</div><div class='add'>+</div><div class='add'>+    /** Universal newline mode. */</div><div class='add'>+    RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR      = 0x00000100,</div><div class='add'>+</div><div class='add'>+    /** CR to CRLF conversion shall happen. */</div><div class='add'>+    RUBY_ECONV_CRLF_NEWLINE_DECORATOR           = 0x00001000,</div><div class='add'>+</div><div class='add'>+    /** CRLF to CR conversion shall happen. */</div><div class='add'>+    RUBY_ECONV_CR_NEWLINE_DECORATOR             = 0x00002000,</div><div class='add'>+</div><div class='add'>+    /** CRLF to LF conversion shall happen. */</div><div class='add'>+    RUBY_ECONV_LF_NEWLINE_DECORATOR             = 0x00004000,</div><div class='add'>+</div><div class='add'>+    /** Texts shall be XML-escaped. */</div><div class='add'>+    RUBY_ECONV_XML_TEXT_DECORATOR               = 0x00008000,</div><div class='add'>+</div><div class='add'>+    /** Texts shall be AttrValue escaped */</div><div class='add'>+    RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR       = 0x00010000,</div><div class='add'>+</div><div class='add'>+    /** (Unclear; seems unused). */</div><div class='add'>+    RUBY_ECONV_STATEFUL_DECORATOR_MASK          = 0x00f00000,</div><div class='add'>+</div><div class='add'>+    /** Texts shall be AttrValue escaped. */</div><div class='add'>+    RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR         = 0x00100000,</div><div class='add'>+</div><div class='add'>+    /** Newline decorator's default. */</div><div class='add'>+    RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR        =</div><div class='add'>+#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32)</div><div class='add'>+        RUBY_ECONV_CRLF_NEWLINE_DECORATOR,</div><div class='add'>+#else</div><div class='add'>+        0,</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define ECONV_ERROR_HANDLER_MASK                RUBY_ECONV_ERROR_HANDLER_MASK           /**&lt; @old{RUBY_ECONV_ERROR_HANDLER_MASK} */</div><div class='add'>+#define ECONV_INVALID_MASK                      RUBY_ECONV_INVALID_MASK                 /**&lt; @old{RUBY_ECONV_INVALID_MASK} */</div><div class='add'>+#define ECONV_INVALID_REPLACE                   RUBY_ECONV_INVALID_REPLACE              /**&lt; @old{RUBY_ECONV_INVALID_REPLACE} */</div><div class='add'>+#define ECONV_UNDEF_MASK                        RUBY_ECONV_UNDEF_MASK                   /**&lt; @old{RUBY_ECONV_UNDEF_MASK} */</div><div class='add'>+#define ECONV_UNDEF_REPLACE                     RUBY_ECONV_UNDEF_REPLACE                /**&lt; @old{RUBY_ECONV_UNDEF_REPLACE} */</div><div class='add'>+#define ECONV_UNDEF_HEX_CHARREF                 RUBY_ECONV_UNDEF_HEX_CHARREF            /**&lt; @old{RUBY_ECONV_UNDEF_HEX_CHARREF} */</div><div class='add'>+#define ECONV_DECORATOR_MASK                    RUBY_ECONV_DECORATOR_MASK               /**&lt; @old{RUBY_ECONV_DECORATOR_MASK} */</div><div class='add'>+#define ECONV_NEWLINE_DECORATOR_MASK            RUBY_ECONV_NEWLINE_DECORATOR_MASK       /**&lt; @old{RUBY_ECONV_NEWLINE_DECORATOR_MASK} */</div><div class='add'>+#define ECONV_NEWLINE_DECORATOR_READ_MASK       RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK  /**&lt; @old{RUBY_ECONV_NEWLINE_DECORATOR_READ_MASK} */</div><div class='add'>+#define ECONV_NEWLINE_DECORATOR_WRITE_MASK      RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK /**&lt; @old{RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK} */</div><div class='add'>+#define ECONV_UNIVERSAL_NEWLINE_DECORATOR       RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR  /**&lt; @old{RUBY_ECONV_UNIVERSAL_NEWLINE_DECORATOR} */</div><div class='add'>+#define ECONV_CRLF_NEWLINE_DECORATOR            RUBY_ECONV_CRLF_NEWLINE_DECORATOR       /**&lt; @old{RUBY_ECONV_CRLF_NEWLINE_DECORATOR} */</div><div class='add'>+#define ECONV_CR_NEWLINE_DECORATOR              RUBY_ECONV_CR_NEWLINE_DECORATOR         /**&lt; @old{RUBY_ECONV_CR_NEWLINE_DECORATOR} */</div><div class='add'>+#define ECONV_LF_NEWLINE_DECORATOR              RUBY_ECONV_LF_NEWLINE_DECORATOR         /**&lt; @old{RUBY_ECONV_LF_NEWLINE_DECORATOR} */</div><div class='add'>+#define ECONV_XML_TEXT_DECORATOR                RUBY_ECONV_XML_TEXT_DECORATOR           /**&lt; @old{RUBY_ECONV_XML_TEXT_DECORATOR} */</div><div class='add'>+#define ECONV_XML_ATTR_CONTENT_DECORATOR        RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR   /**&lt; @old{RUBY_ECONV_XML_ATTR_CONTENT_DECORATOR} */</div><div class='add'>+#define ECONV_STATEFUL_DECORATOR_MASK           RUBY_ECONV_STATEFUL_DECORATOR_MASK      /**&lt; @old{RUBY_ECONV_STATEFUL_DECORATOR_MASK} */</div><div class='add'>+#define ECONV_XML_ATTR_QUOTE_DECORATOR          RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR     /**&lt; @old{RUBY_ECONV_XML_ATTR_QUOTE_DECORATOR} */</div><div class='add'>+#define ECONV_DEFAULT_NEWLINE_DECORATOR         RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR    /**&lt; @old{RUBY_ECONV_DEFAULT_NEWLINE_DECORATOR} */</div><div class='add'>+    /** @} */</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * @name Flags for rb_econv_convert()</div><div class='add'>+     *</div><div class='add'>+     * @{</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    /** Indicates the input is a part of much larger one. */</div><div class='add'>+    RUBY_ECONV_PARTIAL_INPUT                    = 0x00020000,</div><div class='add'>+</div><div class='add'>+    /** Instructs the converter to stop after output. */</div><div class='add'>+    RUBY_ECONV_AFTER_OUTPUT                     = 0x00040000,</div><div class='add'>+#define ECONV_PARTIAL_INPUT                     RUBY_ECONV_PARTIAL_INPUT /**&lt; @old{RUBY_ECONV_PARTIAL_INPUT} */</div><div class='add'>+#define ECONV_AFTER_OUTPUT                      RUBY_ECONV_AFTER_OUTPUT  /**&lt; @old{RUBY_ECONV_AFTER_OUTPUT} */</div><div class='add'>+</div><div class='add'>+    RUBY_ECONV_FLAGS_PLACEHOLDER /**&lt; Placeholder (not used) */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_INTERNAL_ENCODING_TRANSCODE_H */</div><div class='head'>diff --git a/include/ruby/internal/error.h b/include/ruby/internal/error.h<br/>new file mode 100644<br/>index 0000000000..49e2276cb9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/error.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/error.h</a></div><div class='hunk'>@@ -0,0 +1,582 @@</div><div class='add'>+#ifndef RBIMPL_ERROR_H                               /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ERROR_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Declares ::rb_raise().</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/cold.h"</div><div class='add'>+#include "ruby/internal/attr/format.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @defgroup exception Exception handlings</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Warning  categories.  A  warning issued  using this  API can  be selectively</div><div class='add'>+ * requested   /   suppressed   by   the  end-users.   For   instance   passing</div><div class='add'>+ * `-W:no-deprecated`  to the  ruby process  would suppress  those warnings  in</div><div class='add'>+ * deprecated category.</div><div class='add'>+ *</div><div class='add'>+ * @warning    There is no way to declare a new category (for now).</div><div class='add'>+ */</div><div class='add'>+typedef enum {</div><div class='add'>+    /** Category unspecified. */</div><div class='add'>+    RB_WARN_CATEGORY_NONE,</div><div class='add'>+</div><div class='add'>+    /** Warning is for deprecated features. */</div><div class='add'>+    RB_WARN_CATEGORY_DEPRECATED,</div><div class='add'>+</div><div class='add'>+    /** Warning is for experimental features. */</div><div class='add'>+    RB_WARN_CATEGORY_EXPERIMENTAL,</div><div class='add'>+</div><div class='add'>+    RB_WARN_CATEGORY_ALL_BITS = 0x6 /* no RB_WARN_CATEGORY_NONE bit */</div><div class='add'>+} rb_warning_category_t;</div><div class='add'>+</div><div class='add'>+/** for rb_readwrite_sys_fail first argument */</div><div class='add'>+enum rb_io_wait_readwrite {RB_IO_WAIT_READABLE, RB_IO_WAIT_WRITABLE};</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RB_IO_WAIT_READABLE RB_IO_WAIT_READABLE</div><div class='add'>+#define RB_IO_WAIT_WRITABLE RB_IO_WAIT_WRITABLE</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the same as `$!` in Ruby.</div><div class='add'>+ *</div><div class='add'>+ * @retval   RUBY_Qnil  Not handling exceptions at the moment.</div><div class='add'>+ * @retval   otherwise  The current exception in the current thread.</div><div class='add'>+ * @ingroup  exception</div><div class='add'>+ */</div><div class='add'>+VALUE rb_errinfo(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Sets the current exception (`$!`) to the given value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  err            An instance of ::rb_eException, or ::RUBY_Qnil.</div><div class='add'>+ * @exception  rb_eTypeError  What  is given  was  neither ::rb_eException  nor</div><div class='add'>+ *                            ::RUBY_Qnil.</div><div class='add'>+ * @note       Use  rb_raise()  instead to  raise  `err`.   This function  just</div><div class='add'>+ *             assigns the given object to the global variable.</div><div class='add'>+ * @ingroup    exception</div><div class='add'>+ */</div><div class='add'>+void rb_set_errinfo(VALUE err);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)</div><div class='add'>+/**</div><div class='add'>+ * Exception  entry point.   By calling  this  function the  execution of  your</div><div class='add'>+ * program gets interrupted to "raise" an  exception up to the callee entities.</div><div class='add'>+ * Programs could "rescue" that exception, or could "ensure" some part of them.</div><div class='add'>+ * If nobody cares  about such things, the raised exception  reaches at the top</div><div class='add'>+ * of execution.  This yields abnormal end of the process.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  exc  A subclass of ::rb_eException.</div><div class='add'>+ * @param[in]  fmt  Format specifier string compatible with rb_sprintf().</div><div class='add'>+ * @exception  exc  The specified exception.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_raise(VALUE exc, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)</div><div class='add'>+/**</div><div class='add'>+ * Raises the unsung "fatal" exception.  This is considered severe.  Nobody can</div><div class='add'>+ * rescue  the  exception.  Once  raised,  process  termination is  inevitable.</div><div class='add'>+ * However ensure clauses still run, so that resources are properly cleaned up.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fmt        Format specifier string compatible with rb_sprintf().</div><div class='add'>+ * @exception  rb_eFatal  An exception that you cannot rescue.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_fatal(const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_COLD()</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)</div><div class='add'>+/**</div><div class='add'>+ * Interpreter  panic  switch.   Immediate   process  termination  without  any</div><div class='add'>+ * synchronisations shall  occur.  LOTS of  internal states, stack  traces, and</div><div class='add'>+ * even  machine registers  are displayed  if possible  for debugging  purposes</div><div class='add'>+ * then.</div><div class='add'>+ *</div><div class='add'>+ * @warning    Do not use this API.</div><div class='add'>+ * @warning    You are not expected to use this API.</div><div class='add'>+ * @warning    Why not just fix your code instead of calling this API?</div><div class='add'>+ * @warning    It was a  bad idea to expose this API  to extension libraries at</div><div class='add'>+ *             the first  place.  We just  cannot delete  it at this  point for</div><div class='add'>+ *             backwards  compatibility.    That  doesn't  mean   everyone  are</div><div class='add'>+ *             welcomed to call this function at will.</div><div class='add'>+ * @param[in]  fmt  Format specifier string compatible with rb_sprintf().</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_bug(const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * This is  a wrapper  of rb_bug()  which automatically  constructs appropriate</div><div class='add'>+ * message from the passed errno.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  msg  Additional message to display.</div><div class='add'>+ * @exception  err  C level errno.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_bug_errno(const char *msg, int err);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Converts a C errno into a Ruby exception, then raises it.  For instance:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * static VALUE</div><div class='add'>+ * foo(VALUE argv)</div><div class='add'>+ * {</div><div class='add'>+ *    const auto cmd = StringValueCStr(argv);</div><div class='add'>+ *    const auto waitr = system(cmd);</div><div class='add'>+ *    if (waitr == -1) {</div><div class='add'>+ *        rb_sys_fail("system(3posix)"); // &lt;-------------- this</div><div class='add'>+ *    }</div><div class='add'>+ *    else {</div><div class='add'>+ *        return INT2FIX(fd);</div><div class='add'>+ *    }</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  msg                  Additional message to raise.</div><div class='add'>+ * @exception  rb_eSystemCallError  An exception representing errno.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_sys_fail(const char *msg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_sys_fail(), except  it takes the  message in  Ruby's String</div><div class='add'>+ * instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  msg                  Additional message to raise.</div><div class='add'>+ * @exception  rb_eSystemCallError  An exception representing errno.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_sys_fail_str(VALUE msg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_sys_fail(), except it  takes additional module to extend the</div><div class='add'>+ * exception object before raising.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mod                  A ::rb_cModule instance.</div><div class='add'>+ * @param[in]  msg                  Additional message to raise.</div><div class='add'>+ * @exception  rb_eSystemCallError  An exception representing errno.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Does anybody use it?</div><div class='add'>+ */</div><div class='add'>+void rb_mod_sys_fail(VALUE mod, const char *msg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_mod_sys_fail(), except it takes the message in Ruby's String</div><div class='add'>+ * instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mod                  A ::rb_cModule instance.</div><div class='add'>+ * @param[in]  msg                  Additional message to raise.</div><div class='add'>+ * @exception  rb_eSystemCallError  An exception representing errno.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_mod_sys_fail_str(VALUE mod, VALUE msg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Raises appropriate exception using the parameters.</div><div class='add'>+ *</div><div class='add'>+ * In Ruby level there are  rb_eEAGAINWaitReadable etc.  This function maps the</div><div class='add'>+ * given parameter to an appropriate exception class, then raises it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  waiting  Reason for the IO to wait.</div><div class='add'>+ * @param[in]  msg      Additional message to raise.</div><div class='add'>+ * @exception  rb_eEAGAINWaitWritable</div><div class='add'>+ * @exception  rb_eEWOULDBLOCKWaitWritable</div><div class='add'>+ * @exception  rb_eEINPROGRESSWaitWritable</div><div class='add'>+ * @exception  rb_eEAGAINWaitReadable</div><div class='add'>+ * @exception  rb_eEWOULDBLOCKWaitReadable</div><div class='add'>+ * @exception  rb_eEINPROGRESSWaitReadable</div><div class='add'>+ * @exception  rb_eSystemCallError</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_readwrite_sys_fail(enum rb_io_wait_readwrite waiting, const char *msg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Breaks from a block.  Because you are  using a CAPI this is not as intuitive</div><div class='add'>+ * as  it  sounds.   In order  for  this  function  to  properly work,  make  a</div><div class='add'>+ * ::rb_block_call_func_t  function that  calls  it internally,  and pass  that</div><div class='add'>+ * function to rb_block_call().</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eLocalJumpError  Called from outside of a block.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_iter_break(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_iter_break(), except it  additionally takes the  "value" of</div><div class='add'>+ * this breakage.  It  will be the evaluation result of  the iterator.  This is</div><div class='add'>+ * kind  of  complicated; you  cannot  see  this as  a  "return  from a  block"</div><div class='add'>+ * behaviour.  Take a look at this example:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * def foo(q)</div><div class='add'>+ *   puts(w = yield(q))</div><div class='add'>+ *   puts(e = yield(w))</div><div class='add'>+ *   puts(r = yield(e))</div><div class='add'>+ *   puts(t = yield(r))</div><div class='add'>+ *   puts(y = yield(t))</div><div class='add'>+ *   return "howdy!"</div><div class='add'>+ * end</div><div class='add'>+ *</div><div class='add'>+ * x = foo(0) {|i|</div><div class='add'>+ *   if i &gt; 2</div><div class='add'>+ *     break "hello!"</div><div class='add'>+ *   else</div><div class='add'>+ *     next i + 1</div><div class='add'>+ *   end</div><div class='add'>+ * }</div><div class='add'>+ *</div><div class='add'>+ * puts x</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * This script outputs 1, 2, 3, and hello.  Note that the value passed to break</div><div class='add'>+ * becomes the  return value of  foo method, not the  value of yield.   This is</div><div class='add'>+ * confusing, but  can be  handy on occasions  e.g.  when you  want to  bring a</div><div class='add'>+ * local variable out of a block.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val                 The value of the iterator.</div><div class='add'>+ * @exception  rb_eLocalJumpError  Called from outside of a block.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_iter_break_value(VALUE val);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Terminates the current execution context.  This  API is the entry point of a</div><div class='add'>+ * "well-mannered"  termination  sequence.   When   called  from  an  extension</div><div class='add'>+ * library, it  raises ::rb_eSystemExit exception.  Programs  could rescue that</div><div class='add'>+ * exception.  Can cancel process exit then.  Otherwise, that exception results</div><div class='add'>+ * in a process termination with the status passed to this function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  status          Exit status, see also exit(3).</div><div class='add'>+ * @exception  rb_eSystemExit  Exception representing the exit status.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * "When called from  an extension library"?  You might wonder.   In fact there</div><div class='add'>+ * are chances for this function to be  called from outside of it, for instance</div><div class='add'>+ * when dlopen(3)  failed.  In  case it  is not possible  for this  function to</div><div class='add'>+ * raise an exception,  it does not (silently enters to  process cleanup).  But</div><div class='add'>+ * that  is a  kind of  implementation detail  which extension  library authors</div><div class='add'>+ * should not bother.</div><div class='add'>+ */</div><div class='add'>+void rb_exit(int status);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * @exception  rb_eNotImpError</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_notimplement(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates an exception object that represents the given C errno.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  err                  C level errno.</div><div class='add'>+ * @param[in]  msg                  Additional message.</div><div class='add'>+ * @retval     rb_eSystemCallError  An exception for the errno.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_syserr_new(int err, const char * msg);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_syserr_new(),  except it takes the message  in Ruby's String</div><div class='add'>+ * instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n                    C level errno.</div><div class='add'>+ * @param[in]  arg                  Additional message.</div><div class='add'>+ * @retval     rb_eSystemCallError  An exception for the errno.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_syserr_new_str(int n, VALUE arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Raises appropriate exception that represents a C errno.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  err                  C level errno.</div><div class='add'>+ * @param[in]  msg                  Additional message to raise.</div><div class='add'>+ * @exception  rb_eSystemCallError  An exception representing `err`.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_syserr_fail(int err, const char *msg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_syserr_fail(), except it  takes the message in Ruby's String</div><div class='add'>+ * instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  err                  C level errno.</div><div class='add'>+ * @param[in]  msg                  Additional message to raise.</div><div class='add'>+ * @exception  rb_eSystemCallError  An exception representing `err`.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_syserr_fail_str(int err, VALUE msg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_mod_sys_fail(),  except  it  does not  depend  on C  global</div><div class='add'>+ * variable errno.  Pass it explicitly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mod                  A ::rb_cModule instance.</div><div class='add'>+ * @param[in]  err                  C level errno.</div><div class='add'>+ * @param[in]  msg                  Additional message to raise.</div><div class='add'>+ * @exception  rb_eSystemCallError  An exception representing `err`.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_mod_syserr_fail(VALUE mod, int err, const char *msg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_mod_syserr_fail(), except  it takes  the message  in Ruby's</div><div class='add'>+ * String instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mod                  A ::rb_cModule instance.</div><div class='add'>+ * @param[in]  err                  C level errno.</div><div class='add'>+ * @param[in]  msg                  Additional message to raise.</div><div class='add'>+ * @exception  rb_eSystemCallError  An exception representing `err`.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_mod_syserr_fail_str(VALUE mod, int err, VALUE msg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_readwrite_sys_fail(), except it  does not depend on C global</div><div class='add'>+ * variable errno.  Pass it explicitly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  waiting  Reason for the IO to wait.</div><div class='add'>+ * @param[in]  err      C level errno.</div><div class='add'>+ * @param[in]  msg      Additional message to raise.</div><div class='add'>+ * @exception  rb_eEAGAINWaitWritable</div><div class='add'>+ * @exception  rb_eEWOULDBLOCKWaitWritable</div><div class='add'>+ * @exception  rb_eEINPROGRESSWaitWritable</div><div class='add'>+ * @exception  rb_eEAGAINWaitReadable</div><div class='add'>+ * @exception  rb_eEWOULDBLOCKWaitReadable</div><div class='add'>+ * @exception  rb_eEINPROGRESSWaitReadable</div><div class='add'>+ * @exception  rb_eSystemCallError</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_readwrite_syserr_fail(enum rb_io_wait_readwrite waiting, int err, const char *msg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_COLD()</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Fails with the given object's type incompatibility to the type.</div><div class='add'>+ *</div><div class='add'>+ * It  seems this  function is  visible from  extension libraries  only because</div><div class='add'>+ * RTYPEDDATA_TYPE() uses  it on RUBY_DEBUG.   So you can basically  ignore it;</div><div class='add'>+ * use some other fine-grained method instead.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  self           The object in question.</div><div class='add'>+ * @param[in]  t              Expected type of the object.</div><div class='add'>+ * @exception  rb_eTypeError  `self` not in type `t`.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ * @note       The second  argument must  have been an  enum ::ruby_value_type,</div><div class='add'>+ *             but for  historical reasons it  remains to  be an int  (in other</div><div class='add'>+ *             words we see no benefits fixing this bug).</div><div class='add'>+ */</div><div class='add'>+void rb_unexpected_type(VALUE self, int t);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is an  implementation detail  of #ruby_verbose.   Please don't  use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @retval  Qnil       Interpreter is quiet.</div><div class='add'>+ * @retval  Qfalse     Interpreter is kind of chatty.</div><div class='add'>+ * @retval  otherwise  Interpreter is very verbose.</div><div class='add'>+ */</div><div class='add'>+VALUE *rb_ruby_verbose_ptr(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is an  implementation  detail  of #ruby_debug.   Please  don't use  it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @retval  Qnil       Interpreter not in debug mode.</div><div class='add'>+ * @retval  Qfalse     Interpreter not in debug mode.</div><div class='add'>+ * @retval  otherwise  Interpreter is in debug mode.</div><div class='add'>+ */</div><div class='add'>+VALUE *rb_ruby_debug_ptr(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This variable  controls whether the  interpreter is in debug  mode.  Setting</div><div class='add'>+ * this  to  some truthy  value  is  equivalent to  passing  `-W`  flag to  the</div><div class='add'>+ * interpreter.  Setting this  to ::Qfalse is equivalent to  passing `-W1` flag</div><div class='add'>+ * to the interpreter.   Setting this to ::Qnil is equivalent  to passing `-W0`</div><div class='add'>+ * flag to the interpreter.</div><div class='add'>+ *</div><div class='add'>+ * @retval  Qnil       Interpreter is quiet.</div><div class='add'>+ * @retval  Qfalse     Interpreter is kind of chatty.</div><div class='add'>+ * @retval  otherwise  Interpreter is very verbose.</div><div class='add'>+ */</div><div class='add'>+#define ruby_verbose (*rb_ruby_verbose_ptr())</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This variable  controls whether the  interpreter is in debug  mode.  Setting</div><div class='add'>+ * this  to  some truthy  value  is  equivalent to  passing  `-d`  flag to  the</div><div class='add'>+ * interpreter.</div><div class='add'>+ *</div><div class='add'>+ * @retval  Qnil       Interpreter not in debug mode.</div><div class='add'>+ * @retval  Qfalse     Interpreter not in debug mode.</div><div class='add'>+ * @retval  otherwise  Interpreter is in debug mode.</div><div class='add'>+ */</div><div class='add'>+#define ruby_debug   (*rb_ruby_debug_ptr())</div><div class='add'>+</div><div class='add'>+/* reports if `-W' specified */</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)</div><div class='add'>+/**</div><div class='add'>+ * Issues a warning.</div><div class='add'>+ *</div><div class='add'>+ * In  ruby, warnings  these  days  are tightly  coupled  with the  rb_mWarning</div><div class='add'>+ * constant and its `warn` singleton method.   This CAPI is just a thin wrapper</div><div class='add'>+ * of it;  everything passed  are formatted like  what rb_sprintf()  does, then</div><div class='add'>+ * passed  through   to  the  method.    Programs  can  have  their   own  `def</div><div class='add'>+ * Warning.warn` at will  to do whatever they want, from  ignoring the warnings</div><div class='add'>+ * at all to sinking them to some  BigQuery data set via a Fluentd cluster.  By</div><div class='add'>+ * default,  the method  just emits  its passed  contents to  ::rb_stderr using</div><div class='add'>+ * rb_io_write().</div><div class='add'>+ *</div><div class='add'>+ * @note       This function is affected by the `-W` flag.</div><div class='add'>+ * @param[in]  fmt  Format specifier string compatible with rb_sprintf().</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+void rb_warning(const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_warning(), except it takes additional "category" parameter.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  cat  Name of a known category.</div><div class='add'>+ * @param[in]  fmt  Format specifier string compatible with rb_sprintf().</div><div class='add'>+ */</div><div class='add'>+void rb_category_warning(rb_warning_category_t cat, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1, 3))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4)</div><div class='add'>+/**</div><div class='add'>+ * Issues a compile-time warning  that happens at `__file__:__line__`.  Purpose</div><div class='add'>+ * of this function being exposed to CAPI is unclear.</div><div class='add'>+ *</div><div class='add'>+ * @note       This function is affected by the `-W` flag.</div><div class='add'>+ * @param[in]  file  The path corresponding to Ruby level `__FILE__`.</div><div class='add'>+ * @param[in]  line  The number corresponding to Ruby level `__LINE__`.</div><div class='add'>+ * @param[in]  fmt   Format specifier string compatible with rb_sprintf().</div><div class='add'>+ */</div><div class='add'>+void rb_compile_warning(const char *file, int line, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_sys_fail(), except it does  not raise an exception to render</div><div class='add'>+ * a warning instead.</div><div class='add'>+ *</div><div class='add'>+ * @note       This function is affected by the `-W` flag.</div><div class='add'>+ * @param[in]  fmt  Format specifier string compatible with rb_sprintf().</div><div class='add'>+ */</div><div class='add'>+void rb_sys_warning(const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+/* reports always */</div><div class='add'>+RBIMPL_ATTR_COLD()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_warning(), except it  reports always regardless  of runtime</div><div class='add'>+ * `-W` flag.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fmt  Format specifier string compatible with rb_sprintf().</div><div class='add'>+ */</div><div class='add'>+void rb_warn(const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_COLD()</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_category_warning(), except it reports  always regardless of</div><div class='add'>+ * runtime `-W` flag.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  cat  Category e.g. deprecated.</div><div class='add'>+ * @param[in]  fmt  Format specifier string compatible with rb_sprintf().</div><div class='add'>+ */</div><div class='add'>+void rb_category_warn(rb_warning_category_t cat, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1, 3))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4)</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_compile_warning(), except  it reports always  regardless of</div><div class='add'>+ * runtime `-W` flag.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  file  The path corresponding to Ruby level `__FILE__`.</div><div class='add'>+ * @param[in]  line  The number corresponding to Ruby level `__LINE__`.</div><div class='add'>+ * @param[in]  fmt   Format specifier string compatible with rb_sprintf().</div><div class='add'>+ */</div><div class='add'>+void rb_compile_warn(const char *file, int line, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((2, 4))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 4, 5)</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_compile_warn(), except  it also accepts category.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  cat   Category e.g. deprecated.</div><div class='add'>+ * @param[in]  file  The path corresponding to Ruby level `__FILE__`.</div><div class='add'>+ * @param[in]  line  The number corresponding to Ruby level `__LINE__`.</div><div class='add'>+ * @param[in]  fmt   Format specifier string compatible with rb_sprintf().</div><div class='add'>+ */</div><div class='add'>+void rb_category_compile_warn(rb_warning_category_t cat, const char *file, int line, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ERROR_H */</div><div class='head'>diff --git a/include/ruby/internal/eval.h b/include/ruby/internal/eval.h<br/>new file mode 100644<br/>index 0000000000..5bcbb97746<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/eval.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/eval.h</a></div><div class='hunk'>@@ -0,0 +1,400 @@</div><div class='add'>+#ifndef RBIMPL_EVAL_H                                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_EVAL_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Declares ::rb_eval_string().</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Evaluates the given string.</div><div class='add'>+ *</div><div class='add'>+ * In case  it is called  from within a  C-backended method, the  evaluation is</div><div class='add'>+ * done under  the current binding.  However  there can be no  method.  On such</div><div class='add'>+ * situation this  function evaluates  in an  isolated binding,  like `require`</div><div class='add'>+ * runs in a separate one.</div><div class='add'>+ *</div><div class='add'>+ * `__FILE__`  will  be  `"(eval)"`,  and  `__LINE__`  starts  from  1  in  the</div><div class='add'>+ * evaluation.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str            Ruby code to evaluate.</div><div class='add'>+ * @exception  rb_eException  Raises an exception on error.</div><div class='add'>+ * @return     The evaluated result.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei's old tale about the birth and growth of this function:</div><div class='add'>+ *</div><div class='add'>+ * At  the beginning,  there  was no  rb_eval_string().   @shyouhei heard  that</div><div class='add'>+ * @shugo, author of  Apache httpd's mod_ruby module, requested  @matz for this</div><div class='add'>+ * API.  He wanted a way so that mod_ruby can evaluate ruby scripts one by one,</div><div class='add'>+ * separately, in each different contexts.  So  this function was made.  It was</div><div class='add'>+ * designed to be a global interpreter entry point like ruby_run_node().</div><div class='add'>+ *</div><div class='add'>+ * The  way it  is implemented  however  allows extension  libraries (not  just</div><div class='add'>+ * programs like  Apache httpd) to call  this function.  Because its  name says</div><div class='add'>+ * nothing  about the  initial design,  people  started to  think of  it as  an</div><div class='add'>+ * orthodox  way  to  call  ruby  level  `eval`  method  from  their  extension</div><div class='add'>+ * libraries.  Even our `extension.rdoc` has had a description of this function</div><div class='add'>+ * basically according to this understanding.</div><div class='add'>+ *</div><div class='add'>+ * The old  (mod_ruby like) usage still  works.  But over time,  usages of this</div><div class='add'>+ * function from extension libraries got  popular, while mod_ruby faded out; is</div><div class='add'>+ * no  longer maintained  now.  Devs  decided to  actively support  both.  This</div><div class='add'>+ * function  now auto-detects  how  it is  called, and  switches  how it  works</div><div class='add'>+ * depending on it.</div><div class='add'>+ *</div><div class='add'>+ * @see https://bugs.ruby-lang.org/issues/18780</div><div class='add'>+ */</div><div class='add'>+VALUE rb_eval_string(const char *str);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_eval_string(), except  it avoids potential  global escapes.</div><div class='add'>+ * Such global escapes include exceptions, `throw`, `break`, for example.</div><div class='add'>+ *</div><div class='add'>+ * It first evaluates the given string  as rb_eval_string() does.  If no global</div><div class='add'>+ * escape occurred during the evaluation, it returns the result and `*state` is</div><div class='add'>+ * zero.   Otherwise, it  returns some  undefined  value and  sets `*state`  to</div><div class='add'>+ * nonzero.  If state is `NULL`, it is not set in both cases.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   str    Ruby code to evaluate.</div><div class='add'>+ * @param[out]  state  State of execution.</div><div class='add'>+ * @return      The  evaluated  result  if  succeeded, an  undefined  value  if</div><div class='add'>+ *              otherwise.</div><div class='add'>+ * @post        `*state` is set to zero if succeeded.  Nonzero otherwise.</div><div class='add'>+ * @warning     You have to clear the error info with `rb_set_errinfo(Qnil)` if</div><div class='add'>+ *              you decide to ignore the caught exception.</div><div class='add'>+ * @see         rb_eval_string</div><div class='add'>+ * @see         rb_protect</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The "undefined value"  described above is in fact ::RUBY_Qnil  for now.  But</div><div class='add'>+ * @shyouhei doesn't think that we would never change that.</div><div class='add'>+ *</div><div class='add'>+ * Though   not  a   part  of   our  public   API,  `state`   is  in   fact  an</div><div class='add'>+ * enum ruby_tag_type.  You can  see the potential "nonzero"  values by looking</div><div class='add'>+ * at vm_core.h.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_eval_string_protect(const char *str, int *state);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_eval_string_protect(), except  it evaluates the given string</div><div class='add'>+ * under  a module  binding in  an isolated  binding.  This  is the  same as  a</div><div class='add'>+ * binding for loaded libraries on `rb_load(something, true)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   str    Ruby code to evaluate.</div><div class='add'>+ * @param[out]  state  State of execution.</div><div class='add'>+ * @return      The  evaluated  result  if  succeeded, an  undefined  value  if</div><div class='add'>+ *              otherwise.</div><div class='add'>+ * @post        `*state` is set to zero if succeeded.  Nonzero otherwise.</div><div class='add'>+ * @warning     You have to clear the error info with `rb_set_errinfo(Qnil)` if</div><div class='add'>+ *              you decide to ignore the caught exception.</div><div class='add'>+ * @see         rb_eval_string</div><div class='add'>+ */</div><div class='add'>+VALUE rb_eval_string_wrap(const char *str, int *state);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Calls a method.  Can call both public and private methods.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  recv               Receiver of the method.</div><div class='add'>+ * @param[in]      mid                Name of the method to call.</div><div class='add'>+ * @param[in]      n                  Number of arguments that follow.</div><div class='add'>+ * @param[in]      ...                Arbitrary number of method arguments.</div><div class='add'>+ * @exception      rb_eNoMethodError  No such method.</div><div class='add'>+ * @exception      rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return         What the method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_funcall(VALUE recv, ID mid, int n, ...);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_funcall(),  except it  takes the  method arguments  as a  C</div><div class='add'>+ * array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  recv               Receiver of the method.</div><div class='add'>+ * @param[in]      mid                Name of the method to call.</div><div class='add'>+ * @param[in]      argc               Number of arguments.</div><div class='add'>+ * @param[in]      argv               Arbitrary number of method arguments.</div><div class='add'>+ * @exception      rb_eNoMethodError  No such method.</div><div class='add'>+ * @exception      rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return         What the method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_funcallv(VALUE recv, ID mid, int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_funcallv(), except you can  specify how to handle  the last</div><div class='add'>+ * element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  recv               Receiver of the method.</div><div class='add'>+ * @param[in]      mid                Name of the method to call.</div><div class='add'>+ * @param[in]      argc               Number of arguments.</div><div class='add'>+ * @param[in]      argv               Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]      kw_splat           Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception      rb_eNoMethodError  No such method.</div><div class='add'>+ * @exception      rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return         What the method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_funcallv_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_funcallv(),  except  it only  takes  public  methods  into</div><div class='add'>+ * account.  This is roughly Ruby's `Object#public_send`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  recv               Receiver of the method.</div><div class='add'>+ * @param[in]      mid                Name of the method to call.</div><div class='add'>+ * @param[in]      argc               Number of arguments.</div><div class='add'>+ * @param[in]      argv               Arbitrary number of method arguments.</div><div class='add'>+ * @exception      rb_eNoMethodError  No such method.</div><div class='add'>+ * @exception      rb_eNoMethodError  The method is private or protected.</div><div class='add'>+ * @exception      rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return         What the method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_funcallv_public(VALUE recv, ID mid, int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_funcallv_public(), except you  can specify how to handle the</div><div class='add'>+ * last element of the given array.  It can also be seen as a routine identical</div><div class='add'>+ * to rb_funcallv_kw(), except it only takes public methods into account.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  recv               Receiver of the method.</div><div class='add'>+ * @param[in]      mid                Name of the method to call.</div><div class='add'>+ * @param[in]      argc               Number of arguments.</div><div class='add'>+ * @param[in]      argv               Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]      kw_splat           Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception      rb_eNoMethodError  No such method.</div><div class='add'>+ * @exception      rb_eNoMethodError  The method is private or protected.</div><div class='add'>+ * @exception      rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return         What the method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_funcallv_public_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated   This  is an  old  name of  rb_funcallv().   Provided here  for</div><div class='add'>+ *               backwards compatibility  to 2.x programs (introduced  in 2.1).</div><div class='add'>+ *               It is not a good name.  Please don't use it any longer.</div><div class='add'>+ */</div><div class='add'>+#define rb_funcall2 rb_funcallv</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated   This is  an old  name of rb_funcallv_public().   Provided here</div><div class='add'>+ *               for  backwards compatibility  to 2.x  programs (introduced  in</div><div class='add'>+ *               2.1).  It is not a good name.  Please don't use it any longer.</div><div class='add'>+ */</div><div class='add'>+#define rb_funcall3 rb_funcallv_public</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_funcallv_public(), except you can pass the passed block.</div><div class='add'>+ *</div><div class='add'>+ * Sometimes you want  to "pass" a block parameter form  one method to another.</div><div class='add'>+ * Suppose you have this Ruby method `foo`:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * def foo(x, y, &amp;z)</div><div class='add'>+ *   x.open(y, &amp;z)</div><div class='add'>+ * end</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * And    suppose   you    want    to   translate    this    into   C.     Then</div><div class='add'>+ * rb_funcall_passing_block() function is usable in this situation.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * VALUE</div><div class='add'>+ * foo_translated_into_C(VALUE self, VALUE x, VALUE y)</div><div class='add'>+ * {</div><div class='add'>+ *     const auto open = rb_intern("open");</div><div class='add'>+ *</div><div class='add'>+ *     return rb_funcall_passing_block(x, open, 1, &amp;y);</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @see            rb_yield_block</div><div class='add'>+ * @param[in,out]  recv               Receiver of the method.</div><div class='add'>+ * @param[in]      mid                Name of the method to call.</div><div class='add'>+ * @param[in]      argc               Number of arguments.</div><div class='add'>+ * @param[in]      argv               Arbitrary number of method arguments.</div><div class='add'>+ * @exception      rb_eNoMethodError  No such method.</div><div class='add'>+ * @exception      rb_eNoMethodError  The method is private or protected.</div><div class='add'>+ * @exception      rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return         What the method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_funcall_passing_block(VALUE recv, ID mid, int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_funcallv_passing_block(),  except  you can  specify how  to</div><div class='add'>+ * handle  the last  element of  the given  array.  It  can also  be seen  as a</div><div class='add'>+ * routine identical to rb_funcallv_public_kw(), except you can pass the passed</div><div class='add'>+ * block.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  recv               Receiver of the method.</div><div class='add'>+ * @param[in]      mid                Name of the method to call.</div><div class='add'>+ * @param[in]      argc               Number of arguments.</div><div class='add'>+ * @param[in]      argv               Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]      kw_splat           Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception      rb_eNoMethodError  No such method.</div><div class='add'>+ * @exception      rb_eNoMethodError  The method is private or protected.</div><div class='add'>+ * @exception      rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return         What the method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_funcall_passing_block_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_funcallv_public(), except  you can pass  a block.   A block</div><div class='add'>+ * here  basically is  an  instance of  ::rb_cProc.  If  you  want to  exercise</div><div class='add'>+ * `to_proc` conversion, do so before passing it here.  However nil and symbols</div><div class='add'>+ * are special-case allowed.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  recv               Receiver of the method.</div><div class='add'>+ * @param[in]      mid                Name of the method to call.</div><div class='add'>+ * @param[in]      argc               Number of arguments.</div><div class='add'>+ * @param[in]      argv               Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]      procval            An instance of Proc, Symbol, or NilClass.</div><div class='add'>+ * @exception      rb_eNoMethodError  No such method.</div><div class='add'>+ * @exception      rb_eNoMethodError  The method is private or protected.</div><div class='add'>+ * @exception      rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return         What the method evaluates to.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Implementation-wise, `procval`  is in  fact a  "block handler"  object.  You</div><div class='add'>+ * could also pass an IFUNC (block_handler_ifunc) here to say precise.  --- But</div><div class='add'>+ * AFAIK there is no  3rd party way to even know that  there are objects called</div><div class='add'>+ * IFUNC behind-the-scene.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_funcall_with_block(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE procval);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_funcallv_with_block(), except you  can specify how to handle</div><div class='add'>+ * the last  element of  the given  array.  It can  also be  seen as  a routine</div><div class='add'>+ * identical to rb_funcallv_public_kw(), except you can pass a block.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  recv               Receiver of the method.</div><div class='add'>+ * @param[in]      mid                Name of the method to call.</div><div class='add'>+ * @param[in]      argc               Number of arguments.</div><div class='add'>+ * @param[in]      argv               Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]      procval            An instance of Proc, Symbol, or NilClass.</div><div class='add'>+ * @param[in]      kw_splat           Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception      rb_eNoMethodError  No such method.</div><div class='add'>+ * @exception      rb_eNoMethodError  The method is private or protected.</div><div class='add'>+ * @exception      rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return         What the method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_funcall_with_block_kw(VALUE recv, ID mid, int argc, const VALUE *argv, VALUE procval, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This resembles ruby's `super`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc               Number of arguments.</div><div class='add'>+ * @param[in]  argv               Arbitrary number of method arguments.</div><div class='add'>+ * @exception  rb_eNoMethodError  No super method are there.</div><div class='add'>+ * @exception  rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return     What the super method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_call_super(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_call_super(), except you can  specify how to handle the last</div><div class='add'>+ * element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc               Number of arguments.</div><div class='add'>+ * @param[in]  argv               Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]  kw_splat           Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception  rb_eNoMethodError  No super method are there.</div><div class='add'>+ * @exception  rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return     What the super method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_call_super_kw(int argc, const VALUE *argv, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This resembles ruby's `self`.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eRuntimeError  Called from outside of method context.</div><div class='add'>+ * @return     Current receiver.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_current_receiver(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+/**</div><div class='add'>+ * Keyword argument deconstructor.</div><div class='add'>+ *</div><div class='add'>+ * Retrieves argument values bound to  keywords, which directed by `table` into</div><div class='add'>+ * `values`,  deleting retrieved  entries  from `keyword_hash`  along the  way.</div><div class='add'>+ * First  `required` number  of  IDs  referred by  `table`  are mandatory,  and</div><div class='add'>+ * succeeding `optional`  (`-optional-1` if  `optional` is negative)  number of</div><div class='add'>+ * IDs are  optional.  If a mandatory  key is not contained  in `keyword_hash`,</div><div class='add'>+ * raises ::rb_eArgError.  If an optional key is not present in `keyword_hash`,</div><div class='add'>+ * the  corresponding  element  in  `values`   is  set  to  ::RUBY_Qundef.   If</div><div class='add'>+ * `optional` is negative, rest of `keyword_hash` are ignored, otherwise raises</div><div class='add'>+ * ::rb_eArgError.</div><div class='add'>+ *</div><div class='add'>+ * @warning     Handling keyword arguments in the  C API is less efficient than</div><div class='add'>+ *              handling them  in Ruby.  Consider  using a Ruby  wrapper method</div><div class='add'>+ *              around a non-keyword C function.</div><div class='add'>+ * @see         https://bugs.ruby-lang.org/issues/11339</div><div class='add'>+ * @param[out]  keyword_hash  Target hash to deconstruct.</div><div class='add'>+ * @param[in]   table         List of keywords that you are interested in.</div><div class='add'>+ * @param[in]   required      Number of mandatory keywords.</div><div class='add'>+ * @param[in]   optional      Number of optional keywords (can be negative).</div><div class='add'>+ * @param[out]  values        Buffer to be filled.</div><div class='add'>+ * @exception   rb_eArgError  Absence of a mandatory keyword.</div><div class='add'>+ * @exception   rb_eArgError  Found an unknown keyword.</div><div class='add'>+ * @return      Number of found values that are stored into `values`.</div><div class='add'>+ */</div><div class='add'>+int rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *values);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Splits a hash into two.</div><div class='add'>+ *</div><div class='add'>+ * Takes  a hash  of various  keys, and  split it  into symbol-keyed  parts and</div><div class='add'>+ * others.   Symbol-keyed part  becomes  the return  value.   What remains  are</div><div class='add'>+ * returned as a new hash object stored at the argument pointer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  orighash  Pointer to a target hash to split.</div><div class='add'>+ * @return         An extracted keyword hash.</div><div class='add'>+ * @post           Upon  successful return  `orighash` points  to another  hash</div><div class='add'>+ *                 object, whose contents are the remainder of the operation.</div><div class='add'>+ * @note           The argument hash object is not modified.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_extract_keywords(VALUE *orighash);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_EVAL_H */</div><div class='head'>diff --git a/include/ruby/internal/event.h b/include/ruby/internal/event.h<br/>new file mode 100644<br/>index 0000000000..04b137a193<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/event.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/event.h</a></div><div class='hunk'>@@ -0,0 +1,154 @@</div><div class='add'>+#ifndef RBIMPL_EVENT_H                               /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_EVENT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Debugging and tracing APIs.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+/* These macros are not enums because they are wider than int.*/</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Traditional set_trace_func events</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+#define RUBY_EVENT_NONE      0x0000 /**&lt; No events. */</div><div class='add'>+#define RUBY_EVENT_LINE      0x0001 /**&lt; Encountered a new line. */</div><div class='add'>+#define RUBY_EVENT_CLASS     0x0002 /**&lt; Encountered a new class. */</div><div class='add'>+#define RUBY_EVENT_END       0x0004 /**&lt; Encountered an end of a class clause. */</div><div class='add'>+#define RUBY_EVENT_CALL      0x0008 /**&lt; A method, written in Ruby, is called. */</div><div class='add'>+#define RUBY_EVENT_RETURN    0x0010 /**&lt; Encountered a `return` statement. */</div><div class='add'>+#define RUBY_EVENT_C_CALL    0x0020 /**&lt; A method, written in C, is called. */</div><div class='add'>+#define RUBY_EVENT_C_RETURN  0x0040 /**&lt; Return from a method, written in C. */</div><div class='add'>+#define RUBY_EVENT_RAISE     0x0080 /**&lt; Encountered a `raise` statement. */</div><div class='add'>+#define RUBY_EVENT_ALL       0x00ff /**&lt; Bitmask of traditional events. */</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name TracePoint extended events</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+#define RUBY_EVENT_B_CALL            0x0100 /**&lt; Encountered an `yield` statement. */</div><div class='add'>+#define RUBY_EVENT_B_RETURN          0x0200 /**&lt; Encountered a `next` statement. */</div><div class='add'>+#define RUBY_EVENT_THREAD_BEGIN      0x0400 /**&lt; Encountered a new thread. */</div><div class='add'>+#define RUBY_EVENT_THREAD_END        0x0800 /**&lt; Encountered an end of a thread. */</div><div class='add'>+#define RUBY_EVENT_FIBER_SWITCH      0x1000 /**&lt; Encountered a `Fiber#yield`. */</div><div class='add'>+#define RUBY_EVENT_SCRIPT_COMPILED   0x2000 /**&lt; Encountered an `eval`. */</div><div class='add'>+#define RUBY_EVENT_TRACEPOINT_ALL    0xffff /**&lt; Bitmask of extended events. */</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Special events</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * These bits are actually used internally.  See vm_core.h if you are curious.</div><div class='add'>+ *</div><div class='add'>+ * @endinternal</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+#define RUBY_EVENT_RESERVED_FOR_INTERNAL_USE 0x030000 /**&lt; Opaque bits. */</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Internal events</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei's understanding  is that some  of them are visible  from extension</div><div class='add'>+ * libraries because  of `ext/objspace`.   But it  seems that  doesn't describe</div><div class='add'>+ * everything?  The ultimate reason why they are here remains unclear.</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+#define RUBY_INTERNAL_EVENT_SWITCH          0x040000 /**&lt; Thread switched. */</div><div class='add'>+#define RUBY_EVENT_SWITCH                   0x040000 /**&lt; @old{RUBY_INTERNAL_EVENT_SWITCH} */</div><div class='add'>+                                         /* 0x080000 */</div><div class='add'>+#define RUBY_INTERNAL_EVENT_NEWOBJ          0x100000 /**&lt; Object allocated. */</div><div class='add'>+#define RUBY_INTERNAL_EVENT_FREEOBJ         0x200000 /**&lt; Object swept. */</div><div class='add'>+#define RUBY_INTERNAL_EVENT_GC_START        0x400000 /**&lt; GC started. */</div><div class='add'>+#define RUBY_INTERNAL_EVENT_GC_END_MARK     0x800000 /**&lt; GC ended mark phase. */</div><div class='add'>+#define RUBY_INTERNAL_EVENT_GC_END_SWEEP   0x1000000 /**&lt; GC ended sweep phase. */</div><div class='add'>+#define RUBY_INTERNAL_EVENT_GC_ENTER       0x2000000 /**&lt; `gc_enter()` is called. */</div><div class='add'>+#define RUBY_INTERNAL_EVENT_GC_EXIT        0x4000000 /**&lt; `gc_exit()` is called. */</div><div class='add'>+#define RUBY_INTERNAL_EVENT_OBJSPACE_MASK  0x7f00000 /**&lt; Bitmask of GC events. */</div><div class='add'>+#define RUBY_INTERNAL_EVENT_MASK          0xffff0000 /**&lt; Bitmask of internal events. */</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Represents event(s).  As the name implies events are bit flags.</div><div class='add'>+ */</div><div class='add'>+typedef uint32_t rb_event_flag_t;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Type of event hooks.  When an  event happens registered functions are kicked</div><div class='add'>+ * with appropriate parameters.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  evflag  The kind of event that happened.</div><div class='add'>+ * @param[in]  data    The `data` passed to rb_add_event_hook().</div><div class='add'>+ * @param[in]  self    Current receiver.</div><div class='add'>+ * @param[in]  mid     Name of the current method.</div><div class='add'>+ * @param[in]  klass   Current class.</div><div class='add'>+ */</div><div class='add'>+typedef void (*rb_event_hook_func_t)(rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define RB_EVENT_HOOKS_HAVE_CALLBACK_DATA 1</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Registers an event hook function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  func    A callback.</div><div class='add'>+ * @param[in]  events  A set of events that `func` should run.</div><div class='add'>+ * @param[in]  data    Passed as-is to `func`.</div><div class='add'>+ */</div><div class='add'>+void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Removes the passed function from the list of event hooks.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  func  A callback.</div><div class='add'>+ * @return     Number of deleted event hooks.</div><div class='add'>+ * @note       As  multiple  events can  share  the  same  `func` it  is  quite</div><div class='add'>+ *             possible for the return value to become more than one.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't know if this is an  Easter egg or an official feature, but</div><div class='add'>+ * you can pass 0 to the argument.  That effectively swipes everything out from</div><div class='add'>+ * the hook list.</div><div class='add'>+ */</div><div class='add'>+int rb_remove_event_hook(rb_event_hook_func_t func);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_EVENT_H */</div><div class='head'>diff --git a/include/ruby/internal/fl_type.h b/include/ruby/internal/fl_type.h<br/>new file mode 100644<br/>index 0000000000..7383426b23<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/fl_type.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/fl_type.h</a></div><div class='hunk'>@@ -0,0 +1,948 @@</div><div class='add'>+#ifndef RBIMPL_FL_TYPE_H                             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_FL_TYPE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines enum ::ruby_fl_type.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"      /* for ENUM_OVER_INT */</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/deprecated.h"</div><div class='add'>+#include "ruby/internal/attr/flag_enum.h"</div><div class='add'>+#include "ruby/internal/attr/forceinline.h"</div><div class='add'>+#include "ruby/internal/attr/noalias.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/has/extension.h"</div><div class='add'>+#include "ruby/internal/special_consts.h"</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+#include "ruby/defines.h"</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#if RBIMPL_HAS_EXTENSION(enumerator_attributes)</div><div class='add'>+# define RBIMPL_HAVE_ENUM_ATTRIBUTE 1</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(GCC, 6, 0, 0)</div><div class='add'>+# define RBIMPL_HAVE_ENUM_ATTRIBUTE 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef ENUM_OVER_INT</div><div class='add'>+# define RBIMPL_WIDER_ENUM 1</div><div class='add'>+#elif SIZEOF_INT * CHAR_BIT &gt; 12+19+1</div><div class='add'>+# define RBIMPL_WIDER_ENUM 1</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_WIDER_ENUM 0</div><div class='add'>+#endif</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+#define FL_SINGLETON    RBIMPL_CAST((VALUE)RUBY_FL_SINGLETON)            /**&lt; @old{RUBY_FL_SINGLETON} */</div><div class='add'>+#define FL_WB_PROTECTED RBIMPL_CAST((VALUE)RUBY_FL_WB_PROTECTED)         /**&lt; @old{RUBY_FL_WB_PROTECTED} */</div><div class='add'>+#define FL_PROMOTED0    RBIMPL_CAST((VALUE)RUBY_FL_PROMOTED0)            /**&lt; @old{RUBY_FL_PROMOTED0} */</div><div class='add'>+#define FL_PROMOTED1    RBIMPL_CAST((VALUE)RUBY_FL_PROMOTED1)            /**&lt; @old{RUBY_FL_PROMOTED1} */</div><div class='add'>+#define FL_FINALIZE     RBIMPL_CAST((VALUE)RUBY_FL_FINALIZE)             /**&lt; @old{RUBY_FL_FINALIZE} */</div><div class='add'>+#define FL_TAINT        RBIMPL_CAST((VALUE)RUBY_FL_TAINT)                /**&lt; @old{RUBY_FL_TAINT} */</div><div class='add'>+#define FL_SHAREABLE    RBIMPL_CAST((VALUE)RUBY_FL_SHAREABLE)            /**&lt; @old{RUBY_FL_SHAREABLE} */</div><div class='add'>+#define FL_UNTRUSTED    RBIMPL_CAST((VALUE)RUBY_FL_UNTRUSTED)            /**&lt; @old{RUBY_FL_UNTRUSTED} */</div><div class='add'>+#define FL_SEEN_OBJ_ID  RBIMPL_CAST((VALUE)RUBY_FL_SEEN_OBJ_ID)          /**&lt; @old{RUBY_FL_SEEN_OBJ_ID} */</div><div class='add'>+#define FL_EXIVAR       RBIMPL_CAST((VALUE)RUBY_FL_EXIVAR)               /**&lt; @old{RUBY_FL_EXIVAR} */</div><div class='add'>+#define FL_FREEZE       RBIMPL_CAST((VALUE)RUBY_FL_FREEZE)               /**&lt; @old{RUBY_FL_FREEZE} */</div><div class='add'>+</div><div class='add'>+#define FL_USHIFT       RBIMPL_CAST((VALUE)RUBY_FL_USHIFT)               /**&lt; @old{RUBY_FL_USHIFT} */</div><div class='add'>+</div><div class='add'>+#define FL_USER0        RBIMPL_CAST((VALUE)RUBY_FL_USER0)                /**&lt; @old{RUBY_FL_USER0} */</div><div class='add'>+#define FL_USER1        RBIMPL_CAST((VALUE)RUBY_FL_USER1)                /**&lt; @old{RUBY_FL_USER1} */</div><div class='add'>+#define FL_USER2        RBIMPL_CAST((VALUE)RUBY_FL_USER2)                /**&lt; @old{RUBY_FL_USER2} */</div><div class='add'>+#define FL_USER3        RBIMPL_CAST((VALUE)RUBY_FL_USER3)                /**&lt; @old{RUBY_FL_USER3} */</div><div class='add'>+#define FL_USER4        RBIMPL_CAST((VALUE)RUBY_FL_USER4)                /**&lt; @old{RUBY_FL_USER4} */</div><div class='add'>+#define FL_USER5        RBIMPL_CAST((VALUE)RUBY_FL_USER5)                /**&lt; @old{RUBY_FL_USER5} */</div><div class='add'>+#define FL_USER6        RBIMPL_CAST((VALUE)RUBY_FL_USER6)                /**&lt; @old{RUBY_FL_USER6} */</div><div class='add'>+#define FL_USER7        RBIMPL_CAST((VALUE)RUBY_FL_USER7)                /**&lt; @old{RUBY_FL_USER7} */</div><div class='add'>+#define FL_USER8        RBIMPL_CAST((VALUE)RUBY_FL_USER8)                /**&lt; @old{RUBY_FL_USER8} */</div><div class='add'>+#define FL_USER9        RBIMPL_CAST((VALUE)RUBY_FL_USER9)                /**&lt; @old{RUBY_FL_USER9} */</div><div class='add'>+#define FL_USER10       RBIMPL_CAST((VALUE)RUBY_FL_USER10)               /**&lt; @old{RUBY_FL_USER10} */</div><div class='add'>+#define FL_USER11       RBIMPL_CAST((VALUE)RUBY_FL_USER11)               /**&lt; @old{RUBY_FL_USER11} */</div><div class='add'>+#define FL_USER12       RBIMPL_CAST((VALUE)RUBY_FL_USER12)               /**&lt; @old{RUBY_FL_USER12} */</div><div class='add'>+#define FL_USER13       RBIMPL_CAST((VALUE)RUBY_FL_USER13)               /**&lt; @old{RUBY_FL_USER13} */</div><div class='add'>+#define FL_USER14       RBIMPL_CAST((VALUE)RUBY_FL_USER14)               /**&lt; @old{RUBY_FL_USER14} */</div><div class='add'>+#define FL_USER15       RBIMPL_CAST((VALUE)RUBY_FL_USER15)               /**&lt; @old{RUBY_FL_USER15} */</div><div class='add'>+#define FL_USER16       RBIMPL_CAST((VALUE)RUBY_FL_USER16)               /**&lt; @old{RUBY_FL_USER16} */</div><div class='add'>+#define FL_USER17       RBIMPL_CAST((VALUE)RUBY_FL_USER17)               /**&lt; @old{RUBY_FL_USER17} */</div><div class='add'>+#define FL_USER18       RBIMPL_CAST((VALUE)RUBY_FL_USER18)               /**&lt; @old{RUBY_FL_USER18} */</div><div class='add'>+#define FL_USER19       RBIMPL_CAST((VALUE)(unsigned int)RUBY_FL_USER19) /**&lt; @old{RUBY_FL_USER19} */</div><div class='add'>+</div><div class='add'>+#define ELTS_SHARED          RUBY_ELTS_SHARED     /**&lt; @old{RUBY_ELTS_SHARED} */</div><div class='add'>+#define RB_OBJ_FREEZE        rb_obj_freeze_inline /**&lt; @alias{rb_obj_freeze_inline} */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RUBY_ELTS_SHARED     RUBY_ELTS_SHARED</div><div class='add'>+#define RB_FL_ABLE           RB_FL_ABLE</div><div class='add'>+#define RB_FL_ALL            RB_FL_ALL</div><div class='add'>+#define RB_FL_ALL_RAW        RB_FL_ALL_RAW</div><div class='add'>+#define RB_FL_ANY            RB_FL_ANY</div><div class='add'>+#define RB_FL_ANY_RAW        RB_FL_ANY_RAW</div><div class='add'>+#define RB_FL_REVERSE        RB_FL_REVERSE</div><div class='add'>+#define RB_FL_REVERSE_RAW    RB_FL_REVERSE_RAW</div><div class='add'>+#define RB_FL_SET            RB_FL_SET</div><div class='add'>+#define RB_FL_SET_RAW        RB_FL_SET_RAW</div><div class='add'>+#define RB_FL_TEST           RB_FL_TEST</div><div class='add'>+#define RB_FL_TEST_RAW       RB_FL_TEST_RAW</div><div class='add'>+#define RB_FL_UNSET          RB_FL_UNSET</div><div class='add'>+#define RB_FL_UNSET_RAW      RB_FL_UNSET_RAW</div><div class='add'>+#define RB_OBJ_FREEZE_RAW    RB_OBJ_FREEZE_RAW</div><div class='add'>+#define RB_OBJ_FROZEN        RB_OBJ_FROZEN</div><div class='add'>+#define RB_OBJ_FROZEN_RAW    RB_OBJ_FROZEN_RAW</div><div class='add'>+#define RB_OBJ_INFECT        RB_OBJ_INFECT</div><div class='add'>+#define RB_OBJ_INFECT_RAW    RB_OBJ_INFECT_RAW</div><div class='add'>+#define RB_OBJ_TAINT         RB_OBJ_TAINT</div><div class='add'>+#define RB_OBJ_TAINTABLE     RB_OBJ_TAINTABLE</div><div class='add'>+#define RB_OBJ_TAINTED       RB_OBJ_TAINTED</div><div class='add'>+#define RB_OBJ_TAINTED_RAW   RB_OBJ_TAINTED_RAW</div><div class='add'>+#define RB_OBJ_TAINT_RAW     RB_OBJ_TAINT_RAW</div><div class='add'>+#define RB_OBJ_UNTRUST       RB_OBJ_TAINT</div><div class='add'>+#define RB_OBJ_UNTRUSTED     RB_OBJ_TAINTED</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @defgroup deprecated_macros Deprecated macro APIs</div><div class='add'>+ * @{</div><div class='add'>+ * These macros are deprecated.  Prefer their `RB_`-prefixed versions.</div><div class='add'>+ */</div><div class='add'>+#define FL_ABLE         RB_FL_ABLE         /**&lt; @old{RB_FL_ABLE} */</div><div class='add'>+#define FL_ALL          RB_FL_ALL          /**&lt; @old{RB_FL_ALL} */</div><div class='add'>+#define FL_ALL_RAW      RB_FL_ALL_RAW      /**&lt; @old{RB_FL_ALL_RAW} */</div><div class='add'>+#define FL_ANY          RB_FL_ANY          /**&lt; @old{RB_FL_ANY} */</div><div class='add'>+#define FL_ANY_RAW      RB_FL_ANY_RAW      /**&lt; @old{RB_FL_ANY_RAW} */</div><div class='add'>+#define FL_REVERSE      RB_FL_REVERSE      /**&lt; @old{RB_FL_REVERSE} */</div><div class='add'>+#define FL_REVERSE_RAW  RB_FL_REVERSE_RAW  /**&lt; @old{RB_FL_REVERSE_RAW} */</div><div class='add'>+#define FL_SET          RB_FL_SET          /**&lt; @old{RB_FL_SET} */</div><div class='add'>+#define FL_SET_RAW      RB_FL_SET_RAW      /**&lt; @old{RB_FL_SET_RAW} */</div><div class='add'>+#define FL_TEST         RB_FL_TEST         /**&lt; @old{RB_FL_TEST} */</div><div class='add'>+#define FL_TEST_RAW     RB_FL_TEST_RAW     /**&lt; @old{RB_FL_TEST_RAW} */</div><div class='add'>+#define FL_UNSET        RB_FL_UNSET        /**&lt; @old{RB_FL_UNSET} */</div><div class='add'>+#define FL_UNSET_RAW    RB_FL_UNSET_RAW    /**&lt; @old{RB_FL_UNSET_RAW} */</div><div class='add'>+#define OBJ_FREEZE      RB_OBJ_FREEZE      /**&lt; @old{RB_OBJ_FREEZE} */</div><div class='add'>+#define OBJ_FREEZE_RAW  RB_OBJ_FREEZE_RAW  /**&lt; @old{RB_OBJ_FREEZE_RAW} */</div><div class='add'>+#define OBJ_FROZEN      RB_OBJ_FROZEN      /**&lt; @old{RB_OBJ_FROZEN} */</div><div class='add'>+#define OBJ_FROZEN_RAW  RB_OBJ_FROZEN_RAW  /**&lt; @old{RB_OBJ_FROZEN_RAW} */</div><div class='add'>+#define OBJ_INFECT      RB_OBJ_INFECT      /**&lt; @old{RB_OBJ_INFECT} */</div><div class='add'>+#define OBJ_INFECT_RAW  RB_OBJ_INFECT_RAW  /**&lt; @old{RB_OBJ_INFECT_RAW} */</div><div class='add'>+#define OBJ_TAINT       RB_OBJ_TAINT       /**&lt; @old{RB_OBJ_TAINT} */</div><div class='add'>+#define OBJ_TAINTABLE   RB_OBJ_TAINTABLE   /**&lt; @old{RB_OBJ_TAINT_RAW} */</div><div class='add'>+#define OBJ_TAINTED     RB_OBJ_TAINTED     /**&lt; @old{RB_OBJ_TAINTED} */</div><div class='add'>+#define OBJ_TAINTED_RAW RB_OBJ_TAINTED_RAW /**&lt; @old{RB_OBJ_TAINTED_RAW} */</div><div class='add'>+#define OBJ_TAINT_RAW   RB_OBJ_TAINT_RAW   /**&lt; @old{RB_OBJ_TAINT_RAW} */</div><div class='add'>+#define OBJ_UNTRUST     RB_OBJ_UNTRUST     /**&lt; @old{RB_OBJ_TAINT} */</div><div class='add'>+#define OBJ_UNTRUSTED   RB_OBJ_UNTRUSTED   /**&lt; @old{RB_OBJ_TAINTED} */</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is an enum because GDB wants it (rather than a macro).  People need not</div><div class='add'>+ * bother.</div><div class='add'>+ */</div><div class='add'>+enum ruby_fl_ushift {</div><div class='add'>+    /**</div><div class='add'>+     * Number of bits in ::ruby_fl_type that  are _not_ open to users.  This is</div><div class='add'>+     * an implementation detail.  Please ignore.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_USHIFT = 12</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* &gt; The expression that defines the value  of an enumeration constant shall be</div><div class='add'>+ * &gt; an integer constant expression that has a value representable as an `int`.</div><div class='add'>+ *</div><div class='add'>+ * -- ISO/IEC 9899:2018 section 6.7.2.2</div><div class='add'>+ *</div><div class='add'>+ * So ENUM_OVER_INT  situation is an  extension to the standard.   Note however</div><div class='add'>+ * that we do not support 16 bit `int` environment. */</div><div class='add'>+RB_GNUC_EXTENSION</div><div class='add'>+/**</div><div class='add'>+ * The  flags.  Each  ruby objects  have their  own characteristics  apart from</div><div class='add'>+ * their  classes.  For  instance whether  an object  is frozen  or not  is not</div><div class='add'>+ * controlled by its class.  This is the type that represents such properties.</div><div class='add'>+ *</div><div class='add'>+ * @note  About the `FL_USER` terminology: the "user" here does not necessarily</div><div class='add'>+ *        mean only  you.  For  instance struct  ::RString instances  use these</div><div class='add'>+ *        bits to cache their encodings  etc.  Devs discussed about this topic,</div><div class='add'>+ *        reached their  consensus that  ::RUBY_T_DATA is  the only  valid data</div><div class='add'>+ *        structure that  can use these  bits; other data  structures including</div><div class='add'>+ *        ::RUBY_T_OBJECT  use these  bits  for their  own  purpose.  See  also</div><div class='add'>+ *        https://bugs.ruby-lang.org/issues/18059</div><div class='add'>+ */</div><div class='add'>+enum</div><div class='add'>+RBIMPL_ATTR_FLAG_ENUM()</div><div class='add'>+ruby_fl_type {</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * @deprecated  This flag once was a thing  back in the old days, but makes</div><div class='add'>+     *              no  sense  any longer  today.   Exists  here for  backwards</div><div class='add'>+     *              compatibility only.  You can safely forget about it.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * The reality is our GC no  longer remembers write barriers inside of each</div><div class='add'>+     * objects, to use  dedicated bitmap instead.  But this flag  is still used</div><div class='add'>+     * internally.   The  current  usages  of this  flag  should  be  something</div><div class='add'>+     * different, which is unclear to @shyouhei.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_WB_PROTECTED = (1&lt;&lt;5),</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag  has something to do  with our garbage collector.   These days</div><div class='add'>+     * ruby  objects are  "generational".  There  are those  who are  young and</div><div class='add'>+     * those who are old.  Young objects are prone to die; monitored relatively</div><div class='add'>+     * extensively by  the garbage  collector.  OTOH old  objects tend  to live</div><div class='add'>+     * longer.  They are relatively rarely considered.  This flag is set when a</div><div class='add'>+     * object experienced promotion i.e. survived a garbage collection.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * But honestly, @shyouhei  doesn't think this flag should  be visible from</div><div class='add'>+     * 3rd parties.  It must be an implementation detail that they should never</div><div class='add'>+     * know.  Might better be hidden.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_PROMOTED0    = (1&lt;&lt;5),</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag  has something to do  with our garbage collector.   These days</div><div class='add'>+     * ruby  objects are  "generational".  There  are those  who are  young and</div><div class='add'>+     * those who are old.  Young objects are prone to die; monitored relatively</div><div class='add'>+     * extensively by  the garbage  collector.  OTOH old  objects tend  to live</div><div class='add'>+     * longer.  They are relatively rarely considered.  This flag is set when a</div><div class='add'>+     * object  experienced two  promotions  i.e.  survived garbage  collections</div><div class='add'>+     * twice.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * But honestly, @shyouhei  doesn't think this flag should  be visible from</div><div class='add'>+     * 3rd parties.  It must be an implementation detail that they should never</div><div class='add'>+     * know.  Might better be hidden.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_PROMOTED1    = (1&lt;&lt;6),</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag  has something to do  with our garbage collector.   These days</div><div class='add'>+     * ruby  objects are  "generational".  There  are those  who are  young and</div><div class='add'>+     * those who are old.  Young objects are prone to die; monitored relatively</div><div class='add'>+     * extensively by  the garbage  collector.  OTOH old  objects tend  to live</div><div class='add'>+     * longer.  They are relatively rarely considered.  This flag is set when a</div><div class='add'>+     * object  experienced  promotions i.e.   survived  more  than one  garbage</div><div class='add'>+     * collections.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * But honestly, @shyouhei  doesn't think this flag should  be visible from</div><div class='add'>+     * 3rd parties.  It must be an implementation detail that they should never</div><div class='add'>+     * know.  Might better be hidden.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_PROMOTED     = RUBY_FL_PROMOTED0 | RUBY_FL_PROMOTED1,</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag has  something to do with finalisers.  A  ruby object can have</div><div class='add'>+     * its finaliser,  which is another  object that evaluates when  the target</div><div class='add'>+     * object is about  to die.  This flag  is used to denote that  there is an</div><div class='add'>+     * attached finaliser.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * But honestly, @shyouhei  doesn't think this flag should  be visible from</div><div class='add'>+     * 3rd parties.  It must be an implementation detail that they should never</div><div class='add'>+     * know.  Might better be hidden.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_FINALIZE     = (1&lt;&lt;7),</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * @deprecated  This flag once was a thing  back in the old days, but makes</div><div class='add'>+     *              no  sense  any longer  today.   Exists  here for  backwards</div><div class='add'>+     *              compatibility only.  You can safely forget about it.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_TAINT</div><div class='add'>+</div><div class='add'>+#if defined(RBIMPL_HAVE_ENUM_ATTRIBUTE)</div><div class='add'>+    RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea."))</div><div class='add'>+#elif defined(_MSC_VER)</div><div class='add'>+# pragma deprecated(RUBY_FL_TAINT)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+                         = (1&lt;&lt;8),</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag has something to do with Ractor.  Multiple Ractors run without</div><div class='add'>+     * protecting each  other.  Sharing an  object among Ractors  are basically</div><div class='add'>+     * dangerous,  disabled by  default.   This  flag is  used  to bypass  that</div><div class='add'>+     * restriction.  Of  course, you have  to manually prevent  race conditions</div><div class='add'>+     * then.</div><div class='add'>+     *</div><div class='add'>+     * This flag  needs deep  understanding of multithreaded  programming.  You</div><div class='add'>+     * would better not use it.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_SHAREABLE    = (1&lt;&lt;8),</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * @deprecated  This flag once was a thing  back in the old days, but makes</div><div class='add'>+     *              no  sense  any longer  today.   Exists  here for  backwards</div><div class='add'>+     *              compatibility only.  You can safely forget about it.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_UNTRUSTED</div><div class='add'>+</div><div class='add'>+#if defined(RBIMPL_HAVE_ENUM_ATTRIBUTE)</div><div class='add'>+    RBIMPL_ATTR_DEPRECATED(("trustedness turned out to be a wrong idea."))</div><div class='add'>+#elif defined(_MSC_VER)</div><div class='add'>+# pragma deprecated(RUBY_FL_UNTRUSTED)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+                         = (1&lt;&lt;8),</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag has something to do with  object IDs.  Unlike in the old days,</div><div class='add'>+     * an object's object  ID (that a user can  query using `Object#object_id`)</div><div class='add'>+     * is no longer its physical address represented using Ruby level integers.</div><div class='add'>+     * It is  now a  monotonic-increasing integer  unrelated to  the underlying</div><div class='add'>+     * memory arrangement.  Object IDs are assigned when necessary; objects are</div><div class='add'>+     * born without one,  and will eventually have such  property when queried.</div><div class='add'>+     * The interpreter has to manage which one is which.  This is the flag that</div><div class='add'>+     * helps the  management.  Objects  with this  flag set  are the  ones with</div><div class='add'>+     * object IDs assigned.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * But honestly, @shyouhei  doesn't think this flag should  be visible from</div><div class='add'>+     * 3rd parties.  It must be an implementation detail that they should never</div><div class='add'>+     * know.  Might better be hidden.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_SEEN_OBJ_ID  = (1&lt;&lt;9),</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag has something to do with instance variables.  3rd parties need</div><div class='add'>+     * not  know, but  there are  several ways  to store  an object's  instance</div><div class='add'>+     * variables.   Objects  with this  flag  use  so-called "generic"  backend</div><div class='add'>+     * storage.  This  distinction is purely an  implementation detail.  People</div><div class='add'>+     * need not be aware of this working behind-the-scene.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * As of writing everything except ::RObject and RModule use this scheme.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_EXIVAR       = (1&lt;&lt;10),</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag has something to do with data immutability.  When this flag is</div><div class='add'>+     * set an object  is considered "frozen".  No modification  are expected to</div><div class='add'>+     * happen beyond  that point  for the  particular object.   Immutability is</div><div class='add'>+     * basically considered to be a  good property these days.  Library authors</div><div class='add'>+     * are expected to obey.  Test this bit before you touch a data structure.</div><div class='add'>+     *</div><div class='add'>+     * @see rb_check_frozen()</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_FREEZE       = (1&lt;&lt;11),</div><div class='add'>+</div><div class='add'>+/** (@shyouhei doesn't know how to excude this macro from doxygen). */</div><div class='add'>+#define RBIMPL_FL_USER_N(n) RUBY_FL_USER##n = (1&lt;&lt;(RUBY_FL_USHIFT+n))</div><div class='add'>+    RBIMPL_FL_USER_N(0),  /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(1),  /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(2),  /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(3),  /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(4),  /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(5),  /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(6),  /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(7),  /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(8),  /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(9),  /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(10), /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(11), /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(12), /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(13), /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(14), /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(15), /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(16), /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(17), /**&lt; User-defined flag. */</div><div class='add'>+    RBIMPL_FL_USER_N(18), /**&lt; User-defined flag. */</div><div class='add'>+#ifdef ENUM_OVER_INT</div><div class='add'>+    RBIMPL_FL_USER_N(19), /**&lt; User-defined flag. */</div><div class='add'>+#else</div><div class='add'>+# define RUBY_FL_USER19 (RBIMPL_VALUE_ONE&lt;&lt;(RUBY_FL_USHIFT+19))</div><div class='add'>+#endif</div><div class='add'>+#undef RBIMPL_FL_USER_N</div><div class='add'>+#undef RBIMPL_WIDER_ENUM</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag  has something to  do with  data structures.  Over  time, ruby</div><div class='add'>+     * evolved to reduce  memory footprints.  One of such  attempt is so-called</div><div class='add'>+     * copy-on-write, which  delays duplication  of resources  until ultimately</div><div class='add'>+     * necessary.   Some  data  structures  share  this  scheme.   For  example</div><div class='add'>+     * multiple  instances  of struct  ::RArray  could  point identical  memory</div><div class='add'>+     * region  in common,  as  long as  they don't  differ.   As people  favour</div><div class='add'>+     * immutable style  of programming than  before, this situation  is getting</div><div class='add'>+     * more and more common.  Because such "shared" memory regions have nuanced</div><div class='add'>+     * ownership by nature,  each structures need special care  for them.  This</div><div class='add'>+     * flag is used to distinguish such shared constructs.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * But honestly, @shyouhei  doesn't think this flag should  be visible from</div><div class='add'>+     * 3rd parties.  It must be an implementation detail that they should never</div><div class='add'>+     * know.  Might better be hidden.</div><div class='add'>+     */</div><div class='add'>+    RUBY_ELTS_SHARED  = RUBY_FL_USER2,</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This flag has something to do with an object's class.  There are kind of</div><div class='add'>+     * classes  called  "singleton  class",  each of  which  have  exactly  one</div><div class='add'>+     * instance.  What is interesting about  singleton classes is that they are</div><div class='add'>+     * created _after_ their instance were instantiated, like this:</div><div class='add'>+     *</div><div class='add'>+     * ```ruby</div><div class='add'>+     * foo = Object.new          # foo is an instance of Object...</div><div class='add'>+     * bar = foo.singleton_class # foo is now an instance of bar.</div><div class='add'>+     * ```</div><div class='add'>+     *</div><div class='add'>+     * Here as you see  `bar` is a singleton class of  `foo`, which is injected</div><div class='add'>+     * into  `foo`'s inheritance  tree in  a different  statement (==  distinct</div><div class='add'>+     * sequence point).   In order to  achieve this property  singleton classes</div><div class='add'>+     * are  special-cased in  the  interpreter.   There is  one  bit flag  that</div><div class='add'>+     * distinguishes if a class is a singleton class or not, and this is it.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * But honestly, @shyouhei  doesn't think this flag should  be visible from</div><div class='add'>+     * 3rd parties.  It must be an implementation detail that they should never</div><div class='add'>+     * know.  Might better be hidden.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_SINGLETON = RUBY_FL_USER0,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+enum {</div><div class='add'>+    /**</div><div class='add'>+     * @deprecated  This flag once was a thing  back in the old days, but makes</div><div class='add'>+     *              no  sense  any longer  today.   Exists  here for  backwards</div><div class='add'>+     *              compatibility only.  You can safely forget about it.</div><div class='add'>+     */</div><div class='add'>+    RUBY_FL_DUPPED</div><div class='add'>+</div><div class='add'>+#if defined(RBIMPL_HAVE_ENUM_ATTRIBUTE)</div><div class='add'>+    RBIMPL_ATTR_DEPRECATED(("It seems there is no actual usage of this enum."))</div><div class='add'>+#elif defined(_MSC_VER)</div><div class='add'>+# pragma deprecated(RUBY_FL_DUPPED)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    = (int)RUBY_T_MASK | (int)RUBY_FL_EXIVAR</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#undef RBIMPL_HAVE_ENUM_ATTRIBUTE</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/**</div><div class='add'>+ * This is an  implementation detail of #RB_OBJ_FREEZE().  People  don't use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  A singleton class.</div><div class='add'>+ * @post        `klass` gets frozen.</div><div class='add'>+ */</div><div class='add'>+void rb_freeze_singleton_class(VALUE klass);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+/**</div><div class='add'>+ * Checks  if the  object is  flaggable.  There  are some  special cases  (most</div><div class='add'>+ * notably ::RUBY_Qfalse) where appending a flag  to an object is not possible.</div><div class='add'>+ * This function can detect that.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question</div><div class='add'>+ * @retval     true   It is flaggable.</div><div class='add'>+ * @retval     false  No it isn't.</div><div class='add'>+ */</div><div class='add'>+static bool</div><div class='add'>+RB_FL_ABLE(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (RB_SPECIAL_CONST_P(obj)) {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(obj, RUBY_T_NODE)) {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * This is an implenentation detail of  RB_FL_TEST().  3rd parties need not use</div><div class='add'>+ * this.  Just always use RB_FL_TEST().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question.</div><div class='add'>+ * @param[in]  flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @pre        The object must not be an enum ::ruby_special_consts.</div><div class='add'>+ * @return     `obj`'s flags, masked by `flags`.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+RB_FL_TEST_RAW(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj));</div><div class='add'>+    return RBASIC(obj)-&gt;flags &amp; flags;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Tests if the given  flag(s) are set or not.  You can  pass multiple flags at</div><div class='add'>+ * once:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * auto obj = rb_eval_string("...");</div><div class='add'>+ * if (RB_FL_TEST(obj, RUBY_FL_FREEZE | RUBY_FL_SHAREABLE)) {</div><div class='add'>+ *     printf("Ractor ready!\n");</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question.</div><div class='add'>+ * @param[in]  flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @return     `obj`'s flags, masked by `flags`.</div><div class='add'>+ * @note       It  is intentional  for this  function to  return ::VALUE.   The</div><div class='add'>+ *             return value could be passed to RB_FL_STE() etc.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+RB_FL_TEST(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    if (RB_FL_ABLE(obj)) {</div><div class='add'>+        return RB_FL_TEST_RAW(obj, flags);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RBIMPL_VALUE_NULL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * This is an  implenentation detail of RB_FL_ANY().  3rd parties  need not use</div><div class='add'>+ * this.  Just always use RB_FL_ANY().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question.</div><div class='add'>+ * @param[in]  flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @retval     true   The object has any of the flags set.</div><div class='add'>+ * @retval     false  No it doesn't at all.</div><div class='add'>+ * @pre        The object must not be an enum ::ruby_special_consts.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_FL_ANY_RAW(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    return RB_FL_TEST_RAW(obj, flags);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Identical to RB_FL_TEST(), except it returns bool.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question.</div><div class='add'>+ * @param[in]  flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @retval     true   The object has any of the flags set.</div><div class='add'>+ * @retval     false  No it doesn't at all.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_FL_ANY(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    return RB_FL_TEST(obj, flags);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * This is an  implenentation detail of RB_FL_ALL().  3rd parties  need not use</div><div class='add'>+ * this.  Just always use RB_FL_ALL().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question.</div><div class='add'>+ * @param[in]  flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @retval     true   The object has all of the flags set.</div><div class='add'>+ * @retval     false  The object lacks any of the flags.</div><div class='add'>+ * @pre        The object must not be an enum ::ruby_special_consts.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_FL_ALL_RAW(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    return RB_FL_TEST_RAW(obj, flags) == flags;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Identical to RB_FL_ANY(), except it mandates all passed flags be set.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question.</div><div class='add'>+ * @param[in]  flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @retval     true   The object has all of the flags set.</div><div class='add'>+ * @retval     false  The object lacks any of the flags.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_FL_ALL(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    return RB_FL_TEST(obj, flags) == flags;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implenentation detail of RB_FL_SET().  3rd parties  need not use</div><div class='add'>+ * this.  Just always use RB_FL_SET().</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj    Object in question.</div><div class='add'>+ * @param[in]   flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @post        `obj` has `flags` set.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  is  function  is  here  to  annotate  a  part  of  RB_FL_SET_RAW()  as</div><div class='add'>+ * `__declspec(noalias)`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_fl_set_raw_raw(struct RBasic *obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    obj-&gt;flags |= flags;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * This is an  implenentation detail of RB_FL_SET().  3rd parties  need not use</div><div class='add'>+ * this.  Just always use RB_FL_SET().</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj    Object in question.</div><div class='add'>+ * @param[in]   flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @post        `obj` has `flags` set.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_FL_SET_RAW(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj));</div><div class='add'>+    rbimpl_fl_set_raw_raw(RBASIC(obj), flags);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Sets the given flag(s).</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * auto v = rb_eval_string("...");</div><div class='add'>+ * RB_FL_SET(v, RUBY_FL_FREEZE);</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj    Object in question.</div><div class='add'>+ * @param[in]   flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @post        `obj` has `flags` set.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_FL_SET(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    if (RB_FL_ABLE(obj)) {</div><div class='add'>+        RB_FL_SET_RAW(obj, flags);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implenentation detail of RB_FL_UNSET().  3rd parties need not use</div><div class='add'>+ * this.  Just always use RB_FL_UNSET().</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj    Object in question.</div><div class='add'>+ * @param[in]   flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @post        `obj` has `flags` cleared.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  is  function is  here  to  annotate  a  part of  RB_FL_UNSET_RAW()  as</div><div class='add'>+ * `__declspec(noalias)`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_fl_unset_raw_raw(struct RBasic *obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    obj-&gt;flags &amp;= ~flags;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * This is an implenentation detail of RB_FL_UNSET().  3rd parties need not use</div><div class='add'>+ * this.  Just always use RB_FL_UNSET().</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj    Object in question.</div><div class='add'>+ * @param[in]   flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @post        `obj` has `flags` cleared.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_FL_UNSET_RAW(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj));</div><div class='add'>+    rbimpl_fl_unset_raw_raw(RBASIC(obj), flags);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Clears the given flag(s).</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj    Object in question.</div><div class='add'>+ * @param[in]   flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @post        `obj` has `flags` cleard.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_FL_UNSET(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    if (RB_FL_ABLE(obj)) {</div><div class='add'>+        RB_FL_UNSET_RAW(obj, flags);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implenentation detail of RB_FL_REVERSE().  3rd  parties need not</div><div class='add'>+ * use this.  Just always use RB_FL_REVERSE().</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj    Object in question.</div><div class='add'>+ * @param[in]   flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @post        `obj` has `flags` reversed.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  is function  is  here to  annotate a  part  of RB_FL_REVERSE_RAW()  as</div><div class='add'>+ * `__declspec(noalias)`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_fl_reverse_raw_raw(struct RBasic *obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    obj-&gt;flags ^= flags;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * This is an  implenentation detail of RB_FL_REVERSE().  3rd  parties need not</div><div class='add'>+ * use this.  Just always use RB_FL_REVERSE().</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj    Object in question.</div><div class='add'>+ * @param[in]   flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @post        `obj` has `flags` cleared.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_FL_REVERSE_RAW(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj));</div><div class='add'>+    rbimpl_fl_reverse_raw_raw(RBASIC(obj), flags);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Reverses the flags.  This function is here mainly for symmetry on set/unset.</div><div class='add'>+ * Rarely used in practice.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj    Object in question.</div><div class='add'>+ * @param[in]   flags  A set of enum ::ruby_fl_type.</div><div class='add'>+ * @post        `obj` has `flags` reversed.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_FL_REVERSE(VALUE obj, VALUE flags)</div><div class='add'>+{</div><div class='add'>+    if (RB_FL_ABLE(obj)) {</div><div class='add'>+        RB_FL_REVERSE_RAW(obj, flags);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea."))</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This function  once was a thing  in the old days,  but makes no</div><div class='add'>+ *              sense   any   longer   today.   Exists   here   for   backwards</div><div class='add'>+ *              compatibility only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   obj  Object in question.</div><div class='add'>+ * @return      false always.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_OBJ_TAINTABLE(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return false;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea."))</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This function  once was a thing  in the old days,  but makes no</div><div class='add'>+ *              sense   any   longer   today.   Exists   here   for   backwards</div><div class='add'>+ *              compatibility only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   obj  Object in question.</div><div class='add'>+ * @return      false always.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+RB_OBJ_TAINTED_RAW(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return false;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea."))</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This function  once was a thing  in the old days,  but makes no</div><div class='add'>+ *              sense   any   longer   today.   Exists   here   for   backwards</div><div class='add'>+ *              compatibility only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   obj  Object in question.</div><div class='add'>+ * @return      false always.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_OBJ_TAINTED(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return false;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea."))</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This function  once was a thing  in the old days,  but makes no</div><div class='add'>+ *              sense   any   longer   today.   Exists   here   for   backwards</div><div class='add'>+ *              compatibility only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   obj  Object in question.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_OBJ_TAINT_RAW(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea."))</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This function  once was a thing  in the old days,  but makes no</div><div class='add'>+ *              sense   any   longer   today.   Exists   here   for   backwards</div><div class='add'>+ *              compatibility only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   obj  Object in question.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_OBJ_TAINT(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea."))</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This function  once was a thing  in the old days,  but makes no</div><div class='add'>+ *              sense   any   longer   today.   Exists   here   for   backwards</div><div class='add'>+ *              compatibility only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   dst  Victim object.</div><div class='add'>+ * @param[in]   src  Infectant object.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_OBJ_INFECT_RAW(VALUE dst, VALUE src)</div><div class='add'>+{</div><div class='add'>+    return;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("taintedness turned out to be a wrong idea."))</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This function  once was a thing  in the old days,  but makes no</div><div class='add'>+ *              sense   any   longer   today.   Exists   here   for   backwards</div><div class='add'>+ *              compatibility only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   dst  Victim object.</div><div class='add'>+ * @param[in]   src  Infectant object.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_OBJ_INFECT(VALUE dst, VALUE src)</div><div class='add'>+{</div><div class='add'>+    return;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * This is an  implenentation detail of RB_OBJ_FROZEN().  3rd  parties need not</div><div class='add'>+ * use this.  Just always use RB_OBJ_FROZEN().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj             Object in question.</div><div class='add'>+ * @retval     RUBY_FL_FREEZE  Yes it is.</div><div class='add'>+ * @retval     0               No it isn't.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It is intentional  not to return bool  here.  There is a place  in ruby core</div><div class='add'>+ * (namely `class.c:singleton_class_of()`) where return  value of this function</div><div class='add'>+ * is passed to RB_FL_SET_RAW().</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+RB_OBJ_FROZEN_RAW(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return RB_FL_TEST_RAW(obj, RUBY_FL_FREEZE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Checks if an object is frozen.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question.</div><div class='add'>+ * @retval     true   Yes it is.</div><div class='add'>+ * @retval     false  No it isn't.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_OBJ_FROZEN(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (! RB_FL_ABLE(obj)) {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RB_OBJ_FROZEN_RAW(obj);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * This is an  implenentation detail of RB_OBJ_FREEZE().  3rd  parties need not</div><div class='add'>+ * use this.  Just always use RB_OBJ_FREEZE().</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj  Object in question.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+RB_OBJ_FREEZE_RAW(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    RB_FL_SET_RAW(obj, RUBY_FL_FREEZE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+void rb_obj_freeze_inline(VALUE obj);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_FL_TYPE_H */</div><div class='head'>diff --git a/include/ruby/internal/gc.h b/include/ruby/internal/gc.h<br/>new file mode 100644<br/>index 0000000000..054e4b0f9c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/gc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/gc.h</a></div><div class='hunk'>@@ -0,0 +1,62 @@</div><div class='add'>+#ifndef RBIMPL_GC_H                                  /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_GC_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Registering values to the GC.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Inform the garbage  collector that the global or static  variable pointed by</div><div class='add'>+ * `valptr` stores  a live  Ruby object  that should not  be moved.   Note that</div><div class='add'>+ * extensions  should use  this API  on  global constants  instead of  assuming</div><div class='add'>+ * constants defined  in Ruby are  always alive.   Ruby code can  remove global</div><div class='add'>+ * constants.</div><div class='add'>+ *</div><div class='add'>+ * Because this  registration itself has  a possibility  to trigger a  GC, this</div><div class='add'>+ * function  must be  called  before any  GC-able objects  is  assigned to  the</div><div class='add'>+ * address pointed by `valptr`.</div><div class='add'>+ */</div><div class='add'>+void rb_gc_register_address(VALUE *valptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * An alias for `rb_gc_register_address()`.</div><div class='add'>+ */</div><div class='add'>+void rb_global_variable(VALUE *);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Inform the garbage collector that a pointer previously passed to</div><div class='add'>+ * `rb_gc_register_address()` no longer points to a live Ruby object.</div><div class='add'>+ */</div><div class='add'>+void rb_gc_unregister_address(VALUE *valptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Inform the garbage collector that `object` is a live Ruby object that should</div><div class='add'>+ * not be moved.</div><div class='add'>+ *</div><div class='add'>+ * See also: rb_gc_register_address()</div><div class='add'>+ */</div><div class='add'>+void rb_gc_register_mark_object(VALUE object);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_GC_H */</div><div class='head'>diff --git a/include/ruby/internal/glob.h b/include/ruby/internal/glob.h<br/>new file mode 100644<br/>index 0000000000..adbccbdc5e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/glob.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/glob.h</a></div><div class='hunk'>@@ -0,0 +1,113 @@</div><div class='add'>+#ifndef RBIMPL_GLOB_H                                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_GLOB_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Declares ::rb_glob().</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Type of a glob callback function.  Called every time glob scans a path.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path       The path in question.</div><div class='add'>+ * @param[in]  arg        The argument passed to rb_glob().</div><div class='add'>+ * @param[in]  enc        Encoding of the path.</div><div class='add'>+ * @retval     -1         Not enough memory to do the operation.</div><div class='add'>+ * @retval     0          Operation successful.</div><div class='add'>+ * @retval     otherwise  Opaque exception state.</div><div class='add'>+ * @note       You can use rb_protect() to generate the return value.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  is a  wrong design.   Type of  `enc` should  have been  `rb_encoding*`</div><div class='add'>+ * instead of just `void*`.  But we cannot change the API any longer.</div><div class='add'>+ *</div><div class='add'>+ * Though not a part of our public API, the "opaque exception state" is in fact</div><div class='add'>+ * an  enum ruby_tag_type.   You can  see the  potential "otherwise"  values by</div><div class='add'>+ * looking at vm_core.h.</div><div class='add'>+ */</div><div class='add'>+typedef int ruby_glob_func(const char *path, VALUE arg, void *enc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * The "glob"  operator.  Expands  the given pattern  against the  actual local</div><div class='add'>+ * filesystem,  then  iterates  over  the expanded  filenames  by  calling  the</div><div class='add'>+ * callback function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  pattern        A glob pattern.</div><div class='add'>+ * @param[in]  func           Identical to ruby_glob_func,  except it can raise</div><div class='add'>+ *                            exceptions instead of returning opaque state.</div><div class='add'>+ * @param[in]  arg            Extra argument passed to func.</div><div class='add'>+ * @exception  rb_eException  Can propagate what `func` raises.</div><div class='add'>+ * @note       The  language  accepted   as  the  pattern  is   not  a  regular</div><div class='add'>+ *             expression.  It resembles shell's glob.</div><div class='add'>+ */</div><div class='add'>+void rb_glob(const char *pattern, void (*func)(const char *path, VALUE arg, void *enc), VALUE arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_glob(), except it returns opaque exception states instead of</div><div class='add'>+ * raising exceptions.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  pattern  A glob pattern.</div><div class='add'>+ * @param[in]  flags    No, you are not allowed to use this.  Just pass 0.</div><div class='add'>+ * @param[in]  func     A callback function.</div><div class='add'>+ * @param[in]  arg      Extra argument passed to func.</div><div class='add'>+ * @return     Return value of `func`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function is  completely broken by design...  Not only  is there no sane</div><div class='add'>+ * way to pass flags, but there also is no sane way to know what a return value</div><div class='add'>+ * is meant to be.</div><div class='add'>+ *</div><div class='add'>+ * Though not a part of our public API, and @shyouhei thinks it's a failure not</div><div class='add'>+ * to be  a public  API, the  flags can  be `FNM_EXTGLOB`,  `FNM_DOTMATCH` etc.</div><div class='add'>+ * Look at dir.c for the list.</div><div class='add'>+ *</div><div class='add'>+ * Though  not a  part  of our  public  API, the  return value  is  in fact  an</div><div class='add'>+ * enum ruby_tag_type.   You  can  see  the  potential  values  by  looking  at</div><div class='add'>+ * vm_core.h.</div><div class='add'>+ */</div><div class='add'>+int ruby_glob(const char *pattern, int flags, ruby_glob_func *func, VALUE arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to  ruby_glob(), @shyouhei  currently suspects.   Historically you</div><div class='add'>+ * had to  call this function  instead of  ruby_glob() if the  pattern included</div><div class='add'>+ * "{x,y,...}" syntax.  However since commit 0f63d961169989a7f6dcf7c0487fe29da,</div><div class='add'>+ * ruby_glob() also  supports that syntax.   It seems  as of writing  these two</div><div class='add'>+ * functions  provide   basically  the   same  functionality  in   a  different</div><div class='add'>+ * implementation.  Is this analysis right?  Correct me! :FIXME:</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  pattern  A glob pattern.</div><div class='add'>+ * @param[in]  flags    No, you are not allowed to use this.  Just pass 0.</div><div class='add'>+ * @param[in]  func     A callback function.</div><div class='add'>+ * @param[in]  arg      Extra argument passed to func.</div><div class='add'>+ * @return     Return value of `func`.</div><div class='add'>+ */</div><div class='add'>+int ruby_brace_glob(const char *pattern, int flags, ruby_glob_func *func, VALUE arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_GLOB_H */</div><div class='head'>diff --git a/include/ruby/internal/globals.h b/include/ruby/internal/globals.h<br/>new file mode 100644<br/>index 0000000000..5a414fc472<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/globals.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/globals.h</a></div><div class='hunk'>@@ -0,0 +1,209 @@</div><div class='add'>+#ifndef RBIMPL_GLOBALS_H                             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_GLOBALS_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Ruby-level global variables / constants, visible from C.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/fl_type.h"</div><div class='add'>+#include "ruby/internal/special_consts.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @defgroup object Core objects and their operations</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * There are several  questionable constants listed in this  header file.  They</div><div class='add'>+ * are intentionally left untouched for purely academic backwards compatibility</div><div class='add'>+ * concerns.  But for instance do any one of 3rd party extension libraries even</div><div class='add'>+ * need to know that there is NameError::Message?</div><div class='add'>+ *</div><div class='add'>+ * @endinternal</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_INTEGER_UNIFICATION 1</div><div class='add'>+</div><div class='add'>+RUBY_EXTERN VALUE rb_mKernel;                 /**&lt; `Kernel` module. */</div><div class='add'>+RUBY_EXTERN VALUE rb_mComparable;             /**&lt; `Comparable` module. */</div><div class='add'>+RUBY_EXTERN VALUE rb_mEnumerable;             /**&lt; `Enumerable` module. */</div><div class='add'>+RUBY_EXTERN VALUE rb_mErrno;                  /**&lt; `Errno` module. */</div><div class='add'>+RUBY_EXTERN VALUE rb_mFileTest;               /**&lt; `FileTest` module. */</div><div class='add'>+RUBY_EXTERN VALUE rb_mGC;                     /**&lt; `GC` module. */</div><div class='add'>+RUBY_EXTERN VALUE rb_mMath;                   /**&lt; `Math` module. */</div><div class='add'>+RUBY_EXTERN VALUE rb_mProcess;                /**&lt; `Process` module. */</div><div class='add'>+RUBY_EXTERN VALUE rb_mWaitReadable;           /**&lt; `IO::WaitReadable` module. */</div><div class='add'>+RUBY_EXTERN VALUE rb_mWaitWritable;           /**&lt; `IO::WaitReadable` module. */</div><div class='add'>+</div><div class='add'>+RUBY_EXTERN VALUE rb_cBasicObject;            /**&lt; `BasicObject` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cObject;                 /**&lt; `Object` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cArray;                  /**&lt; `Array` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cBinding;                /**&lt; `Binding` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cClass;                  /**&lt; `Class` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cDir;                    /**&lt; `Dir` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cEncoding;               /**&lt; `Encoding` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cEnumerator;             /**&lt; `Enumerator` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cFalseClass;             /**&lt; `FalseClass` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cFile;                   /**&lt; `File` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cComplex;                /**&lt; `Complex` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cFloat;                  /**&lt; `Float` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cHash;                   /**&lt; `Hash` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cIO;                     /**&lt; `IO` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cInteger;                /**&lt; `Module` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cMatch;                  /**&lt; `MatchData` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cMethod;                 /**&lt; `Method` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cModule;                 /**&lt; `Module` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cRefinement;             /**&lt; `Refinement` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cNameErrorMesg;          /**&lt; `NameError::Message` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cNilClass;               /**&lt; `NilClass` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cNumeric;                /**&lt; `Numeric` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cProc;                   /**&lt; `Proc` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cRandom;                 /**&lt; `Random` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cRange;                  /**&lt; `Range` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cRational;               /**&lt; `Rational` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cRegexp;                 /**&lt; `Regexp` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cStat;                   /**&lt; `File::Stat` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cString;                 /**&lt; `String` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cStruct;                 /**&lt; `Struct` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cSymbol;                 /**&lt; `Sumbol` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cThread;                 /**&lt; `Thread` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cTime;                   /**&lt; `Time` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cTrueClass;              /**&lt; `TrueClass` class. */</div><div class='add'>+RUBY_EXTERN VALUE rb_cUnboundMethod;          /**&lt; `UnboundMethod` class. */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @}</div><div class='add'>+ * @addtogroup exception</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+RUBY_EXTERN VALUE rb_eException;                 /**&lt; Mother of all exceptions. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eStandardError;             /**&lt; `StandardError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eSystemExit;                /**&lt; `SystemExit` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eInterrupt;                 /**&lt; `Interrupt` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eSignal;                    /**&lt; `SignalException` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eFatal;                     /**&lt; `fatal` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eArgError;                  /**&lt; `ArgumentError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eEOFError;                  /**&lt; `EOFError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eIndexError;                /**&lt; `IndexError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eStopIteration;             /**&lt; `StopIteration` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eKeyError;                  /**&lt; `KeyError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eRangeError;                /**&lt; `RangeError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eIOError;                   /**&lt; `IOError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eRuntimeError;              /**&lt; `RuntimeError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eFrozenError;               /**&lt; `FrozenError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eSecurityError;             /**&lt; `SecurityError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eSystemCallError;           /**&lt; `SystemCallError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eThreadError;               /**&lt; `ThreadError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eTypeError;                 /**&lt; `TypeError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eZeroDivError;              /**&lt; `ZeroDivisionError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eNotImpError;               /**&lt; `NotImplementedError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eNoMemError;                /**&lt; `NoMemoryError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eNoMethodError;             /**&lt; `NoMethodError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eFloatDomainError;          /**&lt; `FloatDomainError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eLocalJumpError;            /**&lt; `LocalJumpError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eSysStackError;             /**&lt; `SystemStackError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eRegexpError;               /**&lt; `RegexpError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eEncodingError;             /**&lt; `EncodingError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eEncCompatError;            /**&lt; `Encoding::CompatibilityError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eNoMatchingPatternError;    /**&lt; `NoMatchingPatternError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eNoMatchingPatternKeyError; /**&lt; `NoMatchingPatternKeyError` exception. */</div><div class='add'>+</div><div class='add'>+RUBY_EXTERN VALUE rb_eScriptError;               /**&lt; `ScriptError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eNameError;                 /**&lt; `NameError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eSyntaxError;               /**&lt; `SyntaxError` exception. */</div><div class='add'>+RUBY_EXTERN VALUE rb_eLoadError;                 /**&lt; `LoadError` exception. */</div><div class='add'>+</div><div class='add'>+RUBY_EXTERN VALUE rb_eMathDomainError;           /**&lt; `Math::DomainError` exception. */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @}</div><div class='add'>+ * @addtogroup object</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+RUBY_EXTERN VALUE rb_stdin;                      /**&lt; `STDIN` constant. */</div><div class='add'>+RUBY_EXTERN VALUE rb_stdout;                     /**&lt; `STDOUT` constant. */</div><div class='add'>+RUBY_EXTERN VALUE rb_stderr;                     /**&lt; `STDERR` constant. */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Object  to class  mapping  function.   Every object  have  its class.   This</div><div class='add'>+ * function obtains that.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Target object to query.</div><div class='add'>+ * @return     The class of the given object.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  function is  a super-duper  hot  path.  Optimised  targeting modern  C</div><div class='add'>+ * compilers and x86_64 architecture.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_class_of(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (! RB_SPECIAL_CONST_P(obj)) {</div><div class='add'>+        return RBASIC_CLASS(obj);</div><div class='add'>+    }</div><div class='add'>+    else if (obj == RUBY_Qfalse) {</div><div class='add'>+        return rb_cFalseClass;</div><div class='add'>+    }</div><div class='add'>+    else if (obj == RUBY_Qnil) {</div><div class='add'>+        return rb_cNilClass;</div><div class='add'>+    }</div><div class='add'>+    else if (obj == RUBY_Qtrue) {</div><div class='add'>+        return rb_cTrueClass;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FIXNUM_P(obj)) {</div><div class='add'>+        return rb_cInteger;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_STATIC_SYM_P(obj)) {</div><div class='add'>+        return rb_cSymbol;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FLONUM_P(obj)) {</div><div class='add'>+        return rb_cFloat;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#if !RUBY_DEBUG</div><div class='add'>+    RBIMPL_UNREACHABLE_RETURN(Qfalse);</div><div class='add'>+#else</div><div class='add'>+    RUBY_ASSERT_FAIL("unexpected type");</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define CLASS_OF rb_class_of /**&lt; @old{rb_class_of} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_GLOBALS_H */</div><div class='head'>diff --git a/include/ruby/internal/has/attribute.h b/include/ruby/internal/has/attribute.h<br/>new file mode 100644<br/>index 0000000000..f068a65caf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/has/attribute.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/has/attribute.h</a></div><div class='hunk'>@@ -0,0 +1,163 @@</div><div class='add'>+#ifndef RBIMPL_HAS_ATTRIBUTE_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_HAS_ATTRIBUTE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_HAS_ATTRIBUTE.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+</div><div class='add'>+#if defined(__has_attribute)</div><div class='add'>+# if __has_attribute(pure) || RBIMPL_COMPILER_IS(GCC)</div><div class='add'>+#  /* FreeBSD's   &lt;sys/cdefs.h&gt;   defines   its   own   *broken*   version   of</div><div class='add'>+#   * __has_attribute.   Cygwin copied  that  content  to be  a  victim of  the</div><div class='add'>+#   * broken-ness.  We don't take them into account. */</div><div class='add'>+#  define RBIMPL_HAVE___HAS_ATTRIBUTE 1</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__has_attribute`. */</div><div class='add'>+#if defined(RBIMPL_HAVE___HAS_ATTRIBUTE)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE(_) __has_attribute(_)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(GCC)</div><div class='add'>+# /* GCC  &lt;= 4  lack __has_attribute  predefined macro,  while have  attributes</div><div class='add'>+#  * themselves.  We can simulate the macro like the following: */</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE(_) (RBIMPL_HAS_ATTRIBUTE_ ## _)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_aligned                    RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_alloc_size                 RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_artificial                 RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_always_inline              RBIMPL_COMPILER_SINCE(GCC, 3, 1, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_cdecl                      RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_cold                       RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_const                      RBIMPL_COMPILER_SINCE(GCC, 2, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_deprecated                 RBIMPL_COMPILER_SINCE(GCC, 3, 1, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_dllexport                  RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_dllimport                  RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_error                      RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_format                     RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_hot                        RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_leaf                       RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_malloc                     RBIMPL_COMPILER_SINCE(GCC, 3, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_no_address_safety_analysis RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_no_sanitize_address        RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_no_sanitize_undefined      RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_noinline                   RBIMPL_COMPILER_SINCE(GCC, 3, 1, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_nonnull                    RBIMPL_COMPILER_SINCE(GCC, 3, 3, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_noreturn                   RBIMPL_COMPILER_SINCE(GCC, 2, 5, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_nothrow                    RBIMPL_COMPILER_SINCE(GCC, 3, 3, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_pure                       RBIMPL_COMPILER_SINCE(GCC, 2,96, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_returns_nonnull            RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_returns_twice              RBIMPL_COMPILER_SINCE(GCC, 4, 1, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_stdcall                    RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_unused                     RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_visibility                 RBIMPL_COMPILER_SINCE(GCC, 3, 3, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_warn_unused_result         RBIMPL_COMPILER_SINCE(GCC, 3, 4, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_warning                    RBIMPL_COMPILER_SINCE(GCC, 4, 3, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_weak                       RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0)</div><div class='add'>+# /* Note that "0, 0, 0" might be inaccurate. */</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(SunPro)</div><div class='add'>+# /* Oracle Solaris Studio 12.4 (cc version 5.11) introduced __has_attribute.</div><div class='add'>+#  * Before that, following attributes were available. */</div><div class='add'>+# /* See https://docs.oracle.com/cd/F24633_01/index.html */</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE(_) (RBIMPL_HAS_ATTRIBUTE_ ## _)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_alias                      RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_aligned                    RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_always_inline              RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_const                      RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_constructor                RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_destructor                 RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_malloc                     RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_noinline                   RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_noreturn                   RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_packed                     RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_pure                       RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_returns_twice              RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_vector_size                RBIMPL_COMPILER_SINCE(SunPro, 5, 10, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_visibility                 RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE_weak                       RBIMPL_COMPILER_SINCE(SunPro, 5,  9, 0)</div><div class='add'>+</div><div class='add'>+#elif defined (_MSC_VER)</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE(_) 0</div><div class='add'>+# /* Fallback below doesn't work: see win32/Makefile.sub */</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# /* Take config.h definition when available. */</div><div class='add'>+# define RBIMPL_HAS_ATTRIBUTE(_) ((RBIMPL_HAS_ATTRIBUTE_ ## _)+0)</div><div class='add'>+# ifdef ALWAYS_INLINE</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_always_inline 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef FUNC_CDECL</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_cdecl 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef CONSTFUNC</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_const 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef DEPRECATED</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_deprecated 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef ERRORFUNC</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_error 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef FUNC_FASTCALL</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_fastcall 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef PUREFUNC</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_pure 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef NO_ADDRESS_SAFETY_ANALYSIS</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_no_address_safety_analysis 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef NO_SANITIZE</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_no_sanitize 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef NO_SANITIZE_ADDRESS</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_no_sanitize_address 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef NOINLINE</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_noinline 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef RBIMPL_FUNC_NONNULL</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_nonnull 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef NORETURN</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_noreturn 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef FUNC_OPTIMIZED</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_optimize 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef FUNC_STDCALL</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_stdcall 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef MAYBE_UNUSED</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_unused 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef WARN_UNUSED_RESULT</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_warn_unused_result 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef WARNINGFUNC</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_warning 1</div><div class='add'>+# endif</div><div class='add'>+# ifdef WEAK</div><div class='add'>+#  define RBIMPL_HAS_ATTRIBUTE_weak 1</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_HAS_ATTRIBUTE_H */</div><div class='head'>diff --git a/include/ruby/internal/has/builtin.h b/include/ruby/internal/has/builtin.h<br/>new file mode 100644<br/>index 0000000000..243ba2a34c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/has/builtin.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/has/builtin.h</a></div><div class='hunk'>@@ -0,0 +1,117 @@</div><div class='add'>+#ifndef RBIMPL_HAS_BUILTIN_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_HAS_BUILTIN_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_HAS_BUILTIN.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+</div><div class='add'>+#if defined(__has_builtin)</div><div class='add'>+# if RBIMPL_COMPILER_IS(Intel)</div><div class='add'>+#  /* :TODO: Intel  C Compiler  has __has_builtin (since  19.1 maybe?),  and is</div><div class='add'>+#   * reportedly  broken.  We  have to  skip them.   However the  situation can</div><div class='add'>+#   * change.  They might improve someday.  We need to revisit here later. */</div><div class='add'>+# elif RBIMPL_COMPILER_IS(GCC) &amp;&amp; ! __has_builtin(__builtin_alloca)</div><div class='add'>+#  /* FreeBSD's   &lt;sys/cdefs.h&gt;   defines   its   own   *broken*   version   of</div><div class='add'>+#   * __has_builtin.   Cygwin  copied  that  content  to be  a  victim  of  the</div><div class='add'>+#   * broken-ness.  We don't take them into account. */</div><div class='add'>+# else</div><div class='add'>+#  define RBIMPL_HAVE___HAS_BUILTIN 1</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__has_builtin`. */</div><div class='add'>+#if defined(RBIMPL_HAVE___HAS_BUILTIN)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN(_) __has_builtin(_)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(GCC)</div><div class='add'>+# /* :FIXME: Historically  GCC has had  tons of builtins, but  it implemented</div><div class='add'>+#  * __has_builtin  only  since  GCC  10.   This section  can  be  made  more</div><div class='add'>+#  * granular. */</div><div class='add'>+# /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66970 */</div><div class='add'>+# define RBIMPL_HAS_BUILTIN(_) (RBIMPL_HAS_BUILTIN_ ## _)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_add_overflow      RBIMPL_COMPILER_SINCE(GCC, 5, 1, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_alloca            RBIMPL_COMPILER_SINCE(GCC, 0, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_alloca_with_align RBIMPL_COMPILER_SINCE(GCC, 6, 1, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_assume            0</div><div class='add'>+# /* See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52624 for bswap16. */</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_bswap16           RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0)</div><div class='add'>+#ifndef __OpenBSD__</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_bswap32           RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_bswap64           RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0)</div><div class='add'>+#endif</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_clz               RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_clzl              RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_clzll             RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_constant_p        RBIMPL_COMPILER_SINCE(GCC, 2,95, 3)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_ctz               RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_ctzl              RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_ctzll             RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_expect            RBIMPL_COMPILER_SINCE(GCC, 3, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow      RBIMPL_COMPILER_SINCE(GCC, 5, 1, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow_p    RBIMPL_COMPILER_SINCE(GCC, 7, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_popcount          RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_popcountl         RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_popcountll        RBIMPL_COMPILER_SINCE(GCC, 3, 6, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_rotateleft32      0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_rotateleft64      0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_rotateright32     0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_rotateright64     0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_sub_overflow      RBIMPL_COMPILER_SINCE(GCC, 5, 1, 0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_unreachable       RBIMPL_COMPILER_SINCE(GCC, 4, 5, 0)</div><div class='add'>+# /* Note that "0, 0, 0" might be inaccurate. */</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# /* Take config.h definition when available */</div><div class='add'>+# define RBIMPL_HAS_BUILTIN(_) ((RBIMPL_HAS_BUILTIN_ ## _)+0)</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_add_overflow      HAVE_BUILTIN___BUILTIN_ADD_OVERFLOW</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_alloca            0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_alloca_with_align HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_assume            0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_assume_aligned    HAVE_BUILTIN___BUILTIN_ASSUME_ALIGNED</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_bswap16           HAVE_BUILTIN___BUILTIN_BSWAP16</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_bswap32           HAVE_BUILTIN___BUILTIN_BSWAP32</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_bswap64           HAVE_BUILTIN___BUILTIN_BSWAP64</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_clz               HAVE_BUILTIN___BUILTIN_CLZ</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_clzl              HAVE_BUILTIN___BUILTIN_CLZL</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_clzll             HAVE_BUILTIN___BUILTIN_CLZLL</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_constant_p        HAVE_BUILTIN___BUILTIN_CONSTANT_P</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_ctz               HAVE_BUILTIN___BUILTIN_CTZ</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_ctzl              0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_ctzll             HAVE_BUILTIN___BUILTIN_CTZLL</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_expect            HAVE_BUILTIN___BUILTIN_EXPECT</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow      HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_mul_overflow_p    HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW_P</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_popcount          HAVE_BUILTIN___BUILTIN_POPCOUNT</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_popcountl         0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_rotateleft32      0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_rotateleft64      0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_rotateright32     0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_rotateright64     0</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_popcountll        HAVE_BUILTIN___BUILTIN_POPCOUNTLL</div><div class='add'>+# define RBIMPL_HAS_BUILTIN___builtin_sub_overflow      HAVE_BUILTIN___BUILTIN_SUB_OVERFLOW</div><div class='add'>+# if defined(HAVE___BUILTIN_UNREACHABLE)</div><div class='add'>+#  define RBIMPL_HAS_BUILTIN___builtin_unreachable 1</div><div class='add'>+# else</div><div class='add'>+#  define RBIMPL_HAS_BUILTIN___builtin_unreachable 0</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_HAS_BUILTIN_H */</div><div class='head'>diff --git a/include/ruby/internal/has/c_attribute.h b/include/ruby/internal/has/c_attribute.h<br/>new file mode 100644<br/>index 0000000000..c5c48867bf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/has/c_attribute.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/has/c_attribute.h</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+#ifndef RBIMPL_HAS_C_ATTRIBUTE_H                     /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_HAS_C_ATTRIBUTE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_HAS_C_ATTRIBUTE.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__has_c_attribute`. */</div><div class='add'>+#if defined(__cplusplus)</div><div class='add'>+# /* Makes no sense. */</div><div class='add'>+# define RBIMPL_HAS_C_ATTRIBUTE(_) 0</div><div class='add'>+</div><div class='add'>+#elif defined(__has_c_attribute)</div><div class='add'>+# define RBIMPL_HAS_C_ATTRIBUTE(_) __has_c_attribute(_)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# /* As  of writing  everything  that lacks  __has_c_attribute also  completely</div><div class='add'>+#  * lacks C2x attributes as well.  Might change in future? */</div><div class='add'>+# define RBIMPL_HAS_C_ATTRIBUTE(_) 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_HAS_C_ATTRIBUTE_H */</div><div class='head'>diff --git a/include/ruby/internal/has/cpp_attribute.h b/include/ruby/internal/has/cpp_attribute.h<br/>new file mode 100644<br/>index 0000000000..6a393b1a24<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/has/cpp_attribute.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/has/cpp_attribute.h</a></div><div class='hunk'>@@ -0,0 +1,86 @@</div><div class='add'>+#ifndef RBIMPL_HAS_CPP_ATTRIBUTE_H                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_HAS_CPP_ATTRIBUTE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_HAS_CPP_ATTRIBUTE.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_is.h"</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#if RBIMPL_COMPILER_IS(SunPro)</div><div class='add'>+# /* Oracle Developer Studio 12.5's C++  preprocessor is reportedly broken.  We</div><div class='add'>+#  * could simulate  __has_cpp_attribute like below,  but don't know  the exact</div><div class='add'>+#  * list of which version supported which attribute.  Just kill everything for</div><div class='add'>+#  * now.  If you can please :FIXME: */</div><div class='add'>+# /* https://unicode-org.atlassian.net/browse/ICU-12893 */</div><div class='add'>+# /* https://github.com/boostorg/config/pull/95 */</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) 0</div><div class='add'>+</div><div class='add'>+#elif defined(__has_cpp_attribute)</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) __has_cpp_attribute(_)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(MSVC)</div><div class='add'>+# /* MSVC has  never updated  its __cplusplus  since forever  (unless specified</div><div class='add'>+#  * explicitly by a compiler flag).   They also lack __has_cpp_attribute until</div><div class='add'>+#  * 2019.  However, they do have attributes since 2015 or so. */</div><div class='add'>+# /* https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance */</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) (RBIMPL_HAS_CPP_ATTRIBUTE_ ## _)</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE_noreturn           200809 * RBIMPL_COMPILER_SINCE(MSVC, 19, 00, 0)</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE_carries_dependency 200809 * RBIMPL_COMPILER_SINCE(MSVC, 19, 00, 0)</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE_deprecated         201309 * RBIMPL_COMPILER_SINCE(MSVC, 19, 10, 0)</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE_fallthrough        201603 * RBIMPL_COMPILER_SINCE(MSVC, 19, 10, 0)</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE_maybe_unused       201603 * RBIMPL_COMPILER_SINCE(MSVC, 19, 11, 0)</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE_nodiscard          201603 * RBIMPL_COMPILER_SINCE(MSVC, 19, 11, 0)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_BEFORE(Clang, 3, 6, 0)</div><div class='add'>+# /* Clang  3.6.0  introduced  __has_cpp_attribute.  Prior  to  that  following</div><div class='add'>+#  * attributes were already there. */</div><div class='add'>+# /* https://clang.llvm.org/cxx_status.html */</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) (RBIMPL_HAS_CPP_ATTRIBUTE_ ## _)</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE_noreturn           200809 * RBIMPL_COMPILER_SINCE(Clang, 3, 3, 0)</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE_deprecated         201309 * RBIMPL_COMPILER_SINCE(Clang, 3, 4, 0)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_BEFORE(GCC, 5, 0, 0)</div><div class='add'>+# /* GCC 5+ have __has_cpp_attribute, while 4.x had following attributes. */</div><div class='add'>+# /* https://gcc.gnu.org/projects/cxx-status.html */</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) (RBIMPL_HAS_CPP_ATTRIBUTE_ ## _)</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE_noreturn           200809 * RBIMPL_COMPILER_SINCE(GCC, 4, 8, 0)</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE_deprecated         201309 * RBIMPL_COMPILER_SINCE(GCC, 4, 9, 0)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# /* :FIXME:</div><div class='add'>+#  * Candidate compilers to list here:</div><div class='add'>+#  * - icpc: They have __INTEL_CXX11_MODE__.</div><div class='add'>+#  */</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE0(_) 0</div><div class='add'>+#endif</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__has_cpp_attribute`. */</div><div class='add'>+#if ! defined(__cplusplus)</div><div class='add'>+# /* Makes no sense. */</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE(_) 0</div><div class='add'>+#else</div><div class='add'>+# /* GCC needs workarounds.  See https://gcc.godbolt.org/z/jdz3pa */</div><div class='add'>+# define RBIMPL_HAS_CPP_ATTRIBUTE(_) \</div><div class='add'>+    ((RBIMPL_HAS_CPP_ATTRIBUTE0(_) &lt;= __cplusplus) ? RBIMPL_HAS_CPP_ATTRIBUTE0(_) : 0)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_HAS_CPP_ATTRIBUTE_H */</div><div class='head'>diff --git a/include/ruby/internal/has/declspec_attribute.h b/include/ruby/internal/has/declspec_attribute.h<br/>new file mode 100644<br/>index 0000000000..1c526daf78<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/has/declspec_attribute.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/has/declspec_attribute.h</a></div><div class='hunk'>@@ -0,0 +1,47 @@</div><div class='add'>+#ifndef RBIMPL_HAS_DECLSPEC_ATTRIBUTE_H              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_HAS_DECLSPEC_ATTRIBUTE.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__has_declspec_attribute`. */</div><div class='add'>+#if defined(__has_declspec_attribute)</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE(_) __has_declspec_attribute(_)</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE(_) (RBIMPL_HAS_DECLSPEC_ATTRIBUTE_ ## _)</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_align       RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_deprecated  RBIMPL_COMPILER_SINCE(MSVC,13, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_dllexport   RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_dllimport   RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_empty_bases RBIMPL_COMPILER_SINCE(MSVC,19, 0, 23918)</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_noalias     RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_noinline    RBIMPL_COMPILER_SINCE(MSVC,13, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_noreturn    RBIMPL_COMPILER_SINCE(MSVC,11, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_nothrow     RBIMPL_COMPILER_SINCE(MSVC, 8, 0, 0)</div><div class='add'>+# define RBIMPL_HAS_DECLSPEC_ATTRIBUTE_restrict    RBIMPL_COMPILER_SINCE(MSVC,14, 0, 0)</div><div class='add'>+# /* Note that "8, 0, 0" might be inaccurate. */</div><div class='add'>+# if ! defined(__cplusplus)</div><div class='add'>+#  /* Clang has this in both C/C++, but MSVC has this in C++ only.*/</div><div class='add'>+#  undef RBIMPL_HAS_DECLSPEC_ATTRIBUTE_nothrow</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_HAS_DECLSPEC_ATTRIBUTE_H */</div><div class='head'>diff --git a/include/ruby/internal/has/extension.h b/include/ruby/internal/has/extension.h<br/>new file mode 100644<br/>index 0000000000..da8c0d3cc2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/has/extension.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/has/extension.h</a></div><div class='hunk'>@@ -0,0 +1,33 @@</div><div class='add'>+#ifndef RBIMPL_HAS_EXTENSION_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_HAS_EXTENSION_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_HAS_EXTENSION.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/has/feature.h"</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__has_extension`. */</div><div class='add'>+#if defined(__has_extension)</div><div class='add'>+# define RBIMPL_HAS_EXTENSION(_) __has_extension(_)</div><div class='add'>+#else</div><div class='add'>+# /* Pre-3.0 clang had __has_feature but not __has_extension. */</div><div class='add'>+# define RBIMPL_HAS_EXTENSION(_) RBIMPL_HAS_FEATURE(_)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_HAS_EXTENSION_H */</div><div class='head'>diff --git a/include/ruby/internal/has/feature.h b/include/ruby/internal/has/feature.h<br/>new file mode 100644<br/>index 0000000000..7be8d27314<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/has/feature.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/has/feature.h</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+#ifndef RBIMPL_HAS_FEATURE_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_HAS_FEATURE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_HAS_FEATURE.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__has_feature`. */</div><div class='add'>+#if defined(__has_feature)</div><div class='add'>+# define RBIMPL_HAS_FEATURE(_) __has_feature(_)</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_HAS_FEATURE(_) 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_HAS_FEATURE_H */</div><div class='head'>diff --git a/include/ruby/internal/has/warning.h b/include/ruby/internal/has/warning.h<br/>new file mode 100644<br/>index 0000000000..12d7db183b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/has/warning.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/has/warning.h</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+#ifndef RBIMPL_HAS_WARNING_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_HAS_WARNING_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_HAS_WARNING.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/** Wraps (or simulates) `__has_warning`. */</div><div class='add'>+#if defined(__has_warning)</div><div class='add'>+# define RBIMPL_HAS_WARNING(_) __has_warning(_)</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_HAS_WARNING(_) 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_HAS_WARNING_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/array.h b/include/ruby/internal/intern/array.h<br/>new file mode 100644<br/>index 0000000000..2262c6f0c6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/array.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/array.h</a></div><div class='hunk'>@@ -0,0 +1,657 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_ARRAY_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_ARRAY_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cArray.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/noalias.h"</div><div class='add'>+#include "ruby/internal/attr/noexcept.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* array.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+/**</div><div class='add'>+ * Fills the memory region with a series of ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  buf  Buffer to squash.</div><div class='add'>+ * @param[in]   len  Number of objects of `buf`.</div><div class='add'>+ * @post        `buf` is filled with ::RUBY_Qnil.</div><div class='add'>+ */</div><div class='add'>+void rb_mem_clear(VALUE *buf, long len)</div><div class='add'>+    RBIMPL_ATTR_NOEXCEPT(true)</div><div class='add'>+    ;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_ary_new_from_values(),  except   it  expects  exactly  two</div><div class='add'>+ * parameters.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  car  Arbitrary ruby object.</div><div class='add'>+ * @param[in]  cdr  Arbitrary ruby object.</div><div class='add'>+ * @return     An  allocated new  array, of  length 2,  whose contents  are the</div><div class='add'>+ *             passed objects.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_assoc_new(VALUE car, VALUE cdr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Try  converting an  object to  its array  representation using  its `to_ary`</div><div class='add'>+ * method, if any.  If there is no such thing, returns ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Arbitrary ruby object to convert.</div><div class='add'>+ * @exception  rb_eTypeError  `obj.to_ary` returned something non-Array.</div><div class='add'>+ * @retval     RUBY_Qnil      No conversion from `obj` to array defined.</div><div class='add'>+ * @retval     otherwise      Converted array representation of `obj`.</div><div class='add'>+ * @see        rb_io_check_io</div><div class='add'>+ * @see        rb_check_string_type</div><div class='add'>+ * @see        rb_check_hash_type</div><div class='add'>+ */</div><div class='add'>+VALUE rb_check_array_type(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates a new, empty array.</div><div class='add'>+ *</div><div class='add'>+ * @return  An allocated new array, whose length is 0.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_new(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_ary_new(),  except it additionally specifies  how many rooms</div><div class='add'>+ * of  objects it  should allocate.   This way  you can  create an  array whose</div><div class='add'>+ * capacity is  bigger than the  length of  it.  If you  can say that  an array</div><div class='add'>+ * grows to a  specific amount, this could be effective  than resizing an array</div><div class='add'>+ * over and over again and again.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  capa  Designed capacity of the generating array.</div><div class='add'>+ * @return     An empty array, whose capacity is `capa`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_new_capa(long capa);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Constructs an array from the passed objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n    Number of passed objects.</div><div class='add'>+ * @param[in]  ...  Arbitrary ruby objects, filled into the returning array.</div><div class='add'>+ * @return     An array of size `n`, whose contents are the passed objects.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_new_from_args(long n, ...);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_ary_new_from_args(), except how objects are passed.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n     Number of objects of `elts`.</div><div class='add'>+ * @param[in]  elts  Arbitrary ruby objects, filled into the returning array.</div><div class='add'>+ * @return     An array of size `n`, whose contents are the passed objects.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_new_from_values(long n, const VALUE *elts);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates a hidden (no class) empty array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  capa  Designed capacity of the array.</div><div class='add'>+ * @return     A hidden, empty array.</div><div class='add'>+ * @see        rb_obj_hide()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_hidden_new(long capa);</div><div class='add'>+#define rb_ary_tmp_new rb_ary_hidden_new</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destroys the given array for no reason.</div><div class='add'>+ *</div><div class='add'>+ * @warning  DO NOT USE IT.</div><div class='add'>+ * @warning  Leave this task to our GC.</div><div class='add'>+ * @warning  It was a wrong indea at the first place to let you know about it.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary  The array to be executed.</div><div class='add'>+ * @post        The given array no longer exists.</div><div class='add'>+ * @note        Maybe `Array#clear` could be what you want.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Should have moved this to `internal/array.h`.</div><div class='add'>+ */</div><div class='add'>+void rb_ary_free(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Declares that the array is about to  be modified.  This for instance let the</div><div class='add'>+ * array have a dedicated backend storage.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary               Array about to be modified.</div><div class='add'>+ * @exception   rb_eFrozenError   `ary` is frozen.</div><div class='add'>+ * @post        Upon  successful return  the  passed array  is  eligible to  be</div><div class='add'>+ *              modified.</div><div class='add'>+ */</div><div class='add'>+void rb_ary_modify(VALUE ary);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_obj_freeze} */</div><div class='add'>+VALUE rb_ary_freeze(VALUE obj);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the passed two arrays share the same backend storage.  A use-case</div><div class='add'>+ * for  knowing  such  property is  to  take  a  snapshot  of an  array  (using</div><div class='add'>+ * e.g. rb_ary_replace()), then  check later if that snapshot  still shares the</div><div class='add'>+ * storage with  the original.  Taking  a snapshot is ultra-cheap.   If nothing</div><div class='add'>+ * happens the impact shall be minimal.   But if someone modifies the original,</div><div class='add'>+ * that entity shall pay the cost  of copy-on-write.  You can detect that using</div><div class='add'>+ * this API.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs          Comparison LHS.</div><div class='add'>+ * @param[in]  rhs          Comparison RHS.</div><div class='add'>+ * @retval     RUBY_Qtrue   They share the same backend storage.</div><div class='add'>+ * @retval     RUBY_Qfalse  They are distinct.</div><div class='add'>+ * @pre        Both arguments must be of ::RUBY_T_ARRAY.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_shared_with_p(VALUE lhs, VALUE rhs);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries element(s) of  an array.  This is  complicated!  Refer `Array#slice`</div><div class='add'>+ * document for the complete description of how it behaves.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc            Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv            Up to 2 objects.</div><div class='add'>+ * @param[in]  ary             Target array.</div><div class='add'>+ * @exception  rb_eTypeError   `argv` (or its part) includes non-Integer.</div><div class='add'>+ * @exception  rb_eRangeError  rb_cArithSeq is passed, and is OOB.</div><div class='add'>+ * @return     An  element  (if  requested),  or   an  array  of  elements  (if</div><div class='add'>+ *             requested), or ::RUBY_Qnil (if index OOB).</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * ```rbs</div><div class='add'>+ * # "int" is ::Integer or `#to_int`, defined in builtin.rbs</div><div class='add'>+ *</div><div class='add'>+ * class ::Array[unchecked out T]</div><div class='add'>+ *   def slice</div><div class='add'>+ *     : (int i)                 -&gt; T?</div><div class='add'>+ *     | (int beg, int len)      -&gt; ::Array[T]?</div><div class='add'>+ *     | (Range[int] r)          -&gt; ::Array[T]?</div><div class='add'>+ *     | (ArithmeticSequence as) -&gt; ::Array[T]? # This also raises RagneError.</div><div class='add'>+ * end</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_aref(int argc, const VALUE *argv, VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Obtains a part of the passed array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary        Target array.</div><div class='add'>+ * @param[in]  beg        Subpart index.</div><div class='add'>+ * @param[in]  len        Requested length of returning array.</div><div class='add'>+ * @retval     RUBY_Qnil  Requested range out of bounds of `ary`.</div><div class='add'>+ * @retval     otherwise  An  allocated new  array whose  contents are  `ary`'s</div><div class='add'>+ *                        `beg` to `len`.</div><div class='add'>+ * @note       Return  array  can  be  shorter than  `len`  when  for  instance</div><div class='add'>+ *             `[0, 1, 2, 3]`'s 4th to 1,000,000,000th is requested.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_subseq(VALUE ary, long beg, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively stores  the passed value  to the passed array's  passed index.</div><div class='add'>+ * It also resizes  the array's backend storage so that  the requested index is</div><div class='add'>+ * not out of bounds.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary              Target array to modify.</div><div class='add'>+ * @param[in]   key              Where to store `val`.</div><div class='add'>+ * @param[in]   val              What to store at `key`.</div><div class='add'>+ * @exception   rb_eFrozenError  `ary` is frozen.</div><div class='add'>+ * @exception   rb_eIndexError   `key` is negative.</div><div class='add'>+ * @post        `ary`'s `key`th position is occupied with `val`.</div><div class='add'>+ * @post        Depending on `key` and previous  length of `ary` this operation</div><div class='add'>+ *              can  also create  a series  of "hole"  positions inside  of the</div><div class='add'>+ *              backend storage.  They are filled with ::RUBY_Qnil.</div><div class='add'>+ */</div><div class='add'>+void rb_ary_store(VALUE ary, long key, VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Duplicates an array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary  Target to duplicate.</div><div class='add'>+ * @return     An allocated new array whose contents are identical to `ary`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Not sure why this has to be something different from `ary_make_shared_copy`,</div><div class='add'>+ * which seems much efficient.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_dup(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * I guess there  is no use case  of this function in  extension libraries, but</div><div class='add'>+ * this is a routine identical to rb_ary_dup().  This makes the most sense when</div><div class='add'>+ * the passed array is formerly hidden by rb_obj_hide().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary  An array, possibly hidden.</div><div class='add'>+ * @return     A duplicated new instance of ::rb_cArray.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_resurrect(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Force converts an object to an  array.  It first tries its `#to_ary` method.</div><div class='add'>+ * Takes the result  if any.  Otherwise creates  an array of size  1 whose sole</div><div class='add'>+ * element is the passed object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Arbitrary ruby object.</div><div class='add'>+ * @return     An array representation of `obj`.</div><div class='add'>+ * @note       Unlike    rb_str_to_str()     which    is    a     variant    of</div><div class='add'>+ *             rb_check_string_type(),  rb_ary_to_ary()  is  not a  variant  of</div><div class='add'>+ *             rb_check_array_type().</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_to_ary(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an array into a  human-readable string.  Historically its behaviour</div><div class='add'>+ * changed over time.   Currently it is identical to  calling `inspect` method.</div><div class='add'>+ * This behaviour is from that of python (!!) circa 2006.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary  Array to inspect.</div><div class='add'>+ * @return     Recursively inspected representation of `ary`.</div><div class='add'>+ * @see        `[ruby-dev:29520]`</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_to_s(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively appends multiple elements at the end of the array.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary              Where to push `train`.</div><div class='add'>+ * @param[in]   train            Arbitrary ruby objects to push to `ary`.</div><div class='add'>+ * @param[in]   len              Number of objects of `train`.</div><div class='add'>+ * @exception   rb_eIndexError   `len` too large.</div><div class='add'>+ * @exception   rb_eFrozenError  `ary` is frozen.</div><div class='add'>+ * @return      The passed `ary`.</div><div class='add'>+ * @post        `ary` has contents from `train` appended at its end.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_cat(VALUE ary, const VALUE *train, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Special case of rb_ary_cat() that it adds only one element.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary              Where to push `elem`.</div><div class='add'>+ * @param[in]   elem             Arbitrary ruby object to push.</div><div class='add'>+ * @exception   rb_eFrozenError  `ary` is frozen.</div><div class='add'>+ * @return      The passed `ary`.</div><div class='add'>+ * @post        `ary` has `elem` appended at its end.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_push(VALUE ary, VALUE elem);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively  deletes an  element  from the  end of  the  passed array  and</div><div class='add'>+ * returns what was deleted.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary              Target array to modify.</div><div class='add'>+ * @exception   rb_eFrozenError  `ary` is frozen.</div><div class='add'>+ * @return      What  was at  the  end of  `ary`, or  ::RUBY_Qnil  if there  is</div><div class='add'>+ *              nothing to remove.</div><div class='add'>+ * @post        `ary`'s last element, if any, is removed.</div><div class='add'>+ * @note        There is no  way to distinguish whether `ary`  was an 1-element</div><div class='add'>+ *              array whose content was ::RUBY_Qnil, or was empty.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_pop(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively deletes an element from the  beginning of the passed array and</div><div class='add'>+ * returns what  was deleted.  It  can also be seen  as a routine  identical to</div><div class='add'>+ * rb_ary_pop(), except which side of the array to scrub.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary              Target array to modify.</div><div class='add'>+ * @exception   rb_eFrozenError  `ary` is frozen.</div><div class='add'>+ * @return      What was at the beginning of  `ary`, or ::RUBY_Qnil if there is</div><div class='add'>+ *              nothing to remove.</div><div class='add'>+ * @post        `ary`'s first element, if any, is removed.  As the name implies</div><div class='add'>+ *              everything else  remaining in `ary` gets  moved towards `ary`'s</div><div class='add'>+ *              beginning.</div><div class='add'>+ * @note        There is no  way to distinguish whether `ary`  was an 1-element</div><div class='add'>+ *              array whose content was ::RUBY_Qnil, or was empty.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_shift(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively prepends the passed item at the beginning of the passed array.</div><div class='add'>+ * It can  also be seen as  a routine identical to  rb_ary_push(), except which</div><div class='add'>+ * side of the array to modify.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary              Target array to modify.</div><div class='add'>+ * @param[in]   elem             Arbitrary ruby object to unshift.</div><div class='add'>+ * @exception   rb_eFrozenError  `ary` is frozen.</div><div class='add'>+ * @return      The passed `ary`.</div><div class='add'>+ * @post        `ary` has `elem` prepended at this beginning.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_unshift(VALUE ary, VALUE elem);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries an  element of an array.   When passed offset is  negative it counts</div><div class='add'>+ * backwards.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary  An array to look into.</div><div class='add'>+ * @param[in]  off  Offset (can be negative).</div><div class='add'>+ * @return     ::RUBY_Qnil when  `off` is  out of  bounds of  `ary`.  Otherwise</div><div class='add'>+ *             what is stored at `off`-th position of `ary`.</div><div class='add'>+ * @note       `ary`'s `off`-th element can happen to be ::RUBY_Qnil.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_entry(VALUE ary, long off);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Iteratively yields each element of the passed array to the implicitly passed</div><div class='add'>+ * block if any.  In case there is  no block given, an enumerator that does the</div><div class='add'>+ * thing is generated instead.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary  Array to iterate over.</div><div class='add'>+ * @retval     ary  Passed block was evaluated.</div><div class='add'>+ * @retval     otherwise  An instance of ::rb_cEnumerator for `Array#each`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_each(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Recursively  stringises the  elements  of the  passed  array, flattens  that</div><div class='add'>+ * result, then joins the sequence using the passed separator.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary                 Target array to convert.</div><div class='add'>+ * @param[in]  sep                 Separator.  Either a  string, or ::RUBY_Qnil</div><div class='add'>+ *                                 if you want no separator.</div><div class='add'>+ * @exception  rb_eArgError        Infinite recursion in `ary`.</div><div class='add'>+ * @exception  rb_eTypeError      `sep` is not a string.</div><div class='add'>+ * @exception  rb_eEncCompatError  Strings do not agree with their encodings.</div><div class='add'>+ * @return     An  instance  of   ::rb_cString  which  concatenates  stringised</div><div class='add'>+ *             contents of `ary`, using `sep` as separator.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_join(VALUE ary, VALUE sep);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * _Destructively_ reverses the passed array in-place.</div><div class='add'>+ *</div><div class='add'>+ * @warning     This is `Array#reverse!`, not `Array#reverse`.</div><div class='add'>+ * @param[out]  ary              Target array to modify.</div><div class='add'>+ * @exception   rb_eFrozenError  `ary` is frozen.</div><div class='add'>+ * @return      Passed `ary`.</div><div class='add'>+ * @post        `ary` is reversed.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_reverse(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * _Destructively_ rotates the  passed array in-place to towards  its end.  The</div><div class='add'>+ * amount can be negative.  Would rotate to the opposite direction then.</div><div class='add'>+ *</div><div class='add'>+ * @warning     This is `Array#rotate!`, not `Array#rotate`.</div><div class='add'>+ * @param[out]  ary              Target array to modify.</div><div class='add'>+ * @param[in]   rot              Amount of rotation.</div><div class='add'>+ * @exception   rb_eFrozenError  `ary` is frozen.</div><div class='add'>+ * @retval      RUBY_Qnil        Not rotated.</div><div class='add'>+ * @retval      ary              Rotated.</div><div class='add'>+ * @post        `ary` is rotated.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_rotate(VALUE ary, long rot);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a copy  of the passed array, whose elements  are sorted according to</div><div class='add'>+ * their `&lt;=&gt;` result.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary               Array to sort.</div><div class='add'>+ * @exception  rb_eArgError      Comparison not defined among elements.</div><div class='add'>+ * @exception  rb_eRuntimeError  Infinite recursion in `&lt;=&gt;`.</div><div class='add'>+ * @return     A copy of `ary`, sorted.</div><div class='add'>+ * @note       As of writing  this function uses `qsort`  as backend algorithm,</div><div class='add'>+ *             which means the result is unstable (in terms of sort stability).</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_sort(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively sorts the  passed array in-place, according  to each elements'</div><div class='add'>+ * `&lt;=&gt;` result.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary               Target array to modify.</div><div class='add'>+ * @exception  rb_eArgError      Comparison not defined among elements.</div><div class='add'>+ * @exception  rb_eRuntimeError  Infinite recursion in `&lt;=&gt;`.</div><div class='add'>+ * @return     Passed `ary`.</div><div class='add'>+ * @post       `ary` is sorted.</div><div class='add'>+ * @note       As of writing  this function uses `qsort`  as backend algorithm,</div><div class='add'>+ *             which means the result is unstable (in terms of sort stability).</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_sort_bang(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively removes elements from the passed array, so that there would be</div><div class='add'>+ * no elements  inside that satisfy  `==` relationship with the  passed object.</div><div class='add'>+ * Returns the last deleted  element if any.  But in case  there was nothing to</div><div class='add'>+ * delete it gets complicated.  It checks  for the implicitly passed block.  If</div><div class='add'>+ * there is  a block  the return value  would be what  the block  evaluates to.</div><div class='add'>+ * Otherwise it resorts to ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary              Target array to modify.</div><div class='add'>+ * @param[in]   elem             Template object to match against each element.</div><div class='add'>+ * @exception   rb_eFrozenError  `ary` is frozen.</div><div class='add'>+ * @return      What  was  deleted,   or  what  was  the   block  returned,  or</div><div class='add'>+ *              ::RUBY_Qnil (see above).</div><div class='add'>+ * @post        All elements that have `==` relationship with `elem` are purged</div><div class='add'>+ *              from `ary`.  Elements shift their  positions so that `ary` gets</div><div class='add'>+ *              compact.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Internally there also is `rb_ary_delete_same`, which compares by identity.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_delete(VALUE ary, VALUE elem);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively removes an element which resides  at the specific index of the</div><div class='add'>+ * passed array.  Unlike  rb_ary_stre() the index can be  negative, which means</div><div class='add'>+ * the index counts backwards from the array's tail.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary  Target array to modify.</div><div class='add'>+ * @param[in]   pos  Position (can be negative).</div><div class='add'>+ * @exception   rb_eFrozenError `ary` is frozen.</div><div class='add'>+ * @return      What was deleted, or ::RUBY_Qnil in case of OOB.</div><div class='add'>+ * @post        `ary`'s `pos`-th element is deleted if any.</div><div class='add'>+ * @note        There is no  way to distinguish whether `pos` is  out of bound,</div><div class='add'>+ *              or `pos` did exist but stored ::RUBY_Qnil as an ordinal value.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_delete_at(VALUE ary, long pos);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively removes everything form an array.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary              Target array to modify.</div><div class='add'>+ * @exception   rb_eFrozenError  `ary` is frozen.</div><div class='add'>+ * @return      The passed `ary`.</div><div class='add'>+ * @post        `ary` is an empty array.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_clear(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a new array, concatenating the former to the latter.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs             Source array #1.</div><div class='add'>+ * @param[in]  rhs             Source array #2.</div><div class='add'>+ * @exception  rb_eIndexError  Result array too big.</div><div class='add'>+ * @return     A new array containing `rhs` concatenated to `lhs`.</div><div class='add'>+ * @note       This  operation  doesn't commute.   Don't  get  confused by  the</div><div class='add'>+ *             "plus"  terminology.   For  historical reasons  there  are  some</div><div class='add'>+ *             noncommutative `+`s in Ruby.  This is one of such things.  There</div><div class='add'>+ *             has been a long discussion around `+`s in programming languages.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * rb_ary_concat() is not  a destructive version of  rb_ary_plus().  They raise</div><div class='add'>+ * different exceptions.  Don't know why though.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_plus(VALUE lhs, VALUE rhs);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively appends the contents of latter into the end of former.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  lhs              Destination array.</div><div class='add'>+ * @param[in]   rhs              Source array.</div><div class='add'>+ * @exception   rb_eFrozenError  `lhs` is frozen.</div><div class='add'>+ * @exception   rb_eIndexError   Result array too big.</div><div class='add'>+ * @exception   rb_eTypeError    `rhs` doesn't respond to `#to_ary`.</div><div class='add'>+ * @return      The passed `lhs`.</div><div class='add'>+ * @post        `lhs` has contents of `rhs` appended to its end.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_concat(VALUE lhs, VALUE rhs);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Looks up the passed key, assuming the  passed array is an alist.  An "alist"</div><div class='add'>+ * here  is a  list of  "association"s,  much like  that of  Emacs.  Emacs  has</div><div class='add'>+ * `assoc` function that behaves exactly the same as this one.</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * # This is an example of aliist.</div><div class='add'>+ * auto_mode_alist = [</div><div class='add'>+ *   [ /\.[ch]\z/, :"c-mode" ],</div><div class='add'>+ *   [ /\.[ch]pp\z/, :"c++-mode" ],</div><div class='add'>+ *   [ /\.awk\z/, :"awk-mode" ],</div><div class='add'>+ *   [ /\.cs\z/, :"csharp-mode" ],</div><div class='add'>+ *   [ /\.go\z/, :"go-mode" ],</div><div class='add'>+ *   [ /\.java\z/, :"java-mode" ],</div><div class='add'>+ *   [ /\.pas\z/, :"pascal-mode" ],</div><div class='add'>+ *   [ /\.rs\z/, :"rust-mode" ],</div><div class='add'>+ *   [ /\.txt\z/, :"text-mode" ],</div><div class='add'>+ * ]</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * This function scans the passed array looking for an element, which itself is</div><div class='add'>+ * an array,  whose first  element is the  passed key.  If  no such  element is</div><div class='add'>+ * found, returns ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ * Although this  function expects the passed  array be an array  of arrays, it</div><div class='add'>+ * can happily accept non-array elements; it just ignores such things.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  alist      An array of arrays.</div><div class='add'>+ * @param[in]  key        Needle.</div><div class='add'>+ * @retval     RUBY_Qnil  Nothing was found.</div><div class='add'>+ * @retval     otherwise  An element in `alist` whose  first element is in `==`</div><div class='add'>+ *                        relationship with `key`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_assoc(VALUE alist, VALUE key);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_ary_assoc(),  except it  scans  the passed  array from  the</div><div class='add'>+ * opposite direction.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  alist      An array of arrays.</div><div class='add'>+ * @param[in]  key        Needle.</div><div class='add'>+ * @retval     RUBY_Qnil  Nothing was found.</div><div class='add'>+ * @retval     otherwise  An element in `alist` whose  first element is in `==`</div><div class='add'>+ *                        relationship with `key`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_rassoc(VALUE alist, VALUE key);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the passed array has the passed entry.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary          Target array to scan.</div><div class='add'>+ * @param[in]  elem         Target array to find.</div><div class='add'>+ * @retval     RUBY_Qfalse  No element  in `ary`  is in `==`  relationship with</div><div class='add'>+ *                          `elem`.</div><div class='add'>+ * @retval     RUBY_Qtrue   There is at least one  element in `ary` which is in</div><div class='add'>+ *                          `==` relationship with `elem`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This is  the only function  in the  entire C API  that is named  using third</div><div class='add'>+ * person singular  form of  a verb  (except #ISASCII etc.,  which are  not our</div><div class='add'>+ * naming).  The counterpart Ruby API of this function is `Array#include?`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_includes(VALUE ary, VALUE elem);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Recursively compares each elements of the two arrays one-by-one using `&lt;=&gt;`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs        Comparison LHS.</div><div class='add'>+ * @param[in]  rhs        Comparison RHS.</div><div class='add'>+ * @retval     RUBY_Qnil  `lhs` and `rhs` are not comparable.</div><div class='add'>+ * @retval     -1         `lhs` is less than `rhs`.</div><div class='add'>+ * @retval      0         They are equal.</div><div class='add'>+ * @retval      1         `rhs` is less then `lhs`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_cmp(VALUE lhs, VALUE rhs);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Replaces the contents of the former object with the contents of the latter.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  copy               Destination object.</div><div class='add'>+ * @param[in]   orig               Source object.</div><div class='add'>+ * @exception   rb_eTypeError     `orig` has no implicit conversion to Array.</div><div class='add'>+ * @exception   rb_eFrozenError   `copy` is frozen.</div><div class='add'>+ * @return      The passed `copy`.</div><div class='add'>+ * @post        `copy`'s  former  components are  abandoned.   It  now has  the</div><div class='add'>+ *              identical length and contents to `orig`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_replace(VALUE copy, VALUE orig);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This _was_  a generalisation  of `Array#values_at`,  `Struct#values_at`, and</div><div class='add'>+ * `MatchData#values_at`.  It begun its life  as a refactoring effort.  However</div><div class='add'>+ * as Ruby  evolves over  time, as  of writing  none of  aforementioned methods</div><div class='add'>+ * share their implementations at all.   This function is not deprecated; still</div><div class='add'>+ * works as it has been.  But it is now kind of like a rudimentum.</div><div class='add'>+ *</div><div class='add'>+ * This  function  takes an  object,  which  is a  receiver,  and  a series  of</div><div class='add'>+ * "indices",  which are  either integers,  or ranges  of integers.   Calls the</div><div class='add'>+ * passed callback  for each of those  indices, along with the  receiver.  This</div><div class='add'>+ * callback is  expected to do something  like rb_ary_aref(), rb_struct_aref(),</div><div class='add'>+ * etc.   In  case of  a  range  index  rb_range_beg_len() expands  the  range.</div><div class='add'>+ * Finally  return values  of  the  callback are  gathered  as  an array,  then</div><div class='add'>+ * returned.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj   Arbitrary ruby object.</div><div class='add'>+ * @param[in]  olen  "Length" of `obj`.</div><div class='add'>+ * @param[in]  argc  Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv  List of "indices", described above.</div><div class='add'>+ * @param[in]  func  Callback function.</div><div class='add'>+ * @return     A new instance of ::rb_cArray gathering `func`outputs.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * `Array#values_at` no  longer uses this  function.  There is no  reason apart</div><div class='add'>+ * from historical ones to list this function here.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_get_values_at(VALUE obj, long olen, int argc, const VALUE *argv, VALUE (*func)(VALUE obj, long oidx));</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Expands or shrinks the passed array to the passed length.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ary              An array to modify.</div><div class='add'>+ * @param[in]   len              Desired length of `ary`.</div><div class='add'>+ * @exception   rb_eFrozenError  `ary`  is frozen.</div><div class='add'>+ * @exception   rb_eIndexError   `len` too long.</div><div class='add'>+ * @return      The passed `ary`.</div><div class='add'>+ * @post        `ary`'s length is `len`.</div><div class='add'>+ * @post        Depending on `len` and previous  length of `ary` this operation</div><div class='add'>+ *              can  also create  a series  of "hole"  positions inside  of the</div><div class='add'>+ *              backend storage.  They are filled with ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * `len` is signed.  Intentional or...?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ary_resize(VALUE ary, long len);</div><div class='add'>+</div><div class='add'>+#define rb_ary_new2 rb_ary_new_capa         /**&lt; @old{rb_ary_new_capa} */</div><div class='add'>+#define rb_ary_new3 rb_ary_new_from_args    /**&lt; @old{rb_ary_new_from_args} */</div><div class='add'>+#define rb_ary_new4 rb_ary_new_from_values  /**&lt; @old{rb_ary_new_from_values} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_ARRAY_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/bignum.h b/include/ruby/internal/intern/bignum.h<br/>new file mode 100644<br/>index 0000000000..43d68018de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/bignum.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/bignum.h</a></div><div class='hunk'>@@ -0,0 +1,846 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_BIGNUM_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_BIGNUM_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to so-called rb_cBignum.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/backward/2/long_long.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* bignum.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates a bignum object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  len   Length of the bignum's backend storage, in words.</div><div class='add'>+ * @param[in]  sign  Sign of the bignum.</div><div class='add'>+ * @return     An allocated new bignum instance.</div><div class='add'>+ * @note       This only allocates an object, doesn't fill its value in.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei  finds it  hard to  use from  extension libraries.   `len` is  per</div><div class='add'>+ * `BDIGIT` but its definition is hidden.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_new(size_t len, int sign);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if  the passed bignum  instance is a  "bigzro".  What is  a bigzero?</div><div class='add'>+ * Well, bignums  are for very big  integers, but can also  represent tiny ones</div><div class='add'>+ * like -1,  0, 1.   Bigzero are  instances of bignums  whose values  are zero.</div><div class='add'>+ * Knowing if a bignum is bigzero can  be handy on occasions, like for instance</div><div class='add'>+ * detecting division by zero situation.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @retval     1  It is a bigzero.</div><div class='add'>+ * @retval     0  Otherwise.</div><div class='add'>+ */</div><div class='add'>+int rb_bigzero_p(VALUE x);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Duplicates the given bignum.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num  A bignum.</div><div class='add'>+ * @return     An allocated bignum, who is equivalent to `num`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_clone(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively modify the passed bignum into 2's complement representation.</div><div class='add'>+ *</div><div class='add'>+ * @note  By default bignums are in signed magnitude system.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  num  A bignum to modify.</div><div class='add'>+ */</div><div class='add'>+void rb_big_2comp(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Normalises the passed bignum.  It for  instance returns a fixnum of the same</div><div class='add'>+ * value if fixnum can represent that number.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  x  Target bignum (can be destructively modified).</div><div class='add'>+ * @return      An integer of the identical value (can be `x` itself).</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_norm(VALUE x);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively resizes the backend storage of the passed bignum.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  big  A bignum.</div><div class='add'>+ * @param[in]   len  New length of `big`'s backend, in words.</div><div class='add'>+ */</div><div class='add'>+void rb_big_resize(VALUE big, size_t len);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Parses C's string to convert into a Ruby's integer.  It understands prefixes</div><div class='add'>+ * (e.g. `0x`) and underscores.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str           Stringised representation of the return value.</div><div class='add'>+ * @param[in]  base          Base of conversion.   Must be `-36..36` inclusive,</div><div class='add'>+ *                           except `1`.  `2..36` means  the conversion is done</div><div class='add'>+ *                           according to it,  with unmatched prefix understood</div><div class='add'>+ *                           as  a part  of  the result.   `-36..-2` means  the</div><div class='add'>+ *                           conversion  honours prefix  when  present, or  use</div><div class='add'>+ *                           `-base` when  absent. `0` is equivalent  to `-10`.</div><div class='add'>+ *                           `-1` mandates a prefix. `1` is an error.</div><div class='add'>+ * @param[in]  badcheck      Whether  to raise  ::rb_eArgError on  failure.  If</div><div class='add'>+ *                           `0`  is  passed  here  this  function  can  return</div><div class='add'>+ *                           `INT2FIX(0)` for parse errors.</div><div class='add'>+ * @exception  rb_eArgError  Failed to parse (and `badcheck` is truthy).</div><div class='add'>+ * @return     An instance of ::rb_cInteger,  which is a numeric interpretation</div><div class='add'>+ *             of what is written in `str`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Not sure if it intentionally accepts `base  == -1` or is just buggy.  Nobody</div><div class='add'>+ * practically uses negative bases these days.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_cstr_to_inum(const char *str, int base, int badcheck);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_cstr2inum(), except it takes Ruby's strings instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str                 Stringised  representation   of  the  return</div><div class='add'>+ *                                 value.</div><div class='add'>+ * @param[in]  base                Base  of  conversion.    Must  be  `-36..36`</div><div class='add'>+ *                                 inclusive,  except `1`.   `2..36` means  the</div><div class='add'>+ *                                 conversion  is done  according  to it,  with</div><div class='add'>+ *                                 unmatched prefix understood as a part of the</div><div class='add'>+ *                                 result.   `-36..-2`   means  the  conversion</div><div class='add'>+ *                                 honours prefix when  present, or use `-base`</div><div class='add'>+ *                                 when  absent. `0`  is  equivalent to  `-10`.</div><div class='add'>+ *                                 `-1` mandates a prefix. `1` is an error.</div><div class='add'>+ * @param[in]  badcheck            Whether to raise  ::rb_eArgError on failure.</div><div class='add'>+ *                                 If  `0` is  passed  here  this function  can</div><div class='add'>+ *                                 return `INT2FIX(0)` for parse errors.</div><div class='add'>+ * @exception  rb_eArgError        Failed to parse (and `badcheck` is truthy).</div><div class='add'>+ * @exception  rb_eTypeError       `str` is not a string.</div><div class='add'>+ * @exception  rb_eEncCompatError  `str` is not ASCII compatible.</div><div class='add'>+ * @return     An instance of ::rb_cInteger,  which is a numeric interpretation</div><div class='add'>+ *             of what is written in `str`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_to_inum(VALUE str, int base, int badcheck);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_cstr_to_inum(), except the second argument controls the base</div><div class='add'>+ * and badcheck at  once.  It basically doesn't raise for  parse errors, unless</div><div class='add'>+ * the base is zero.</div><div class='add'>+ *</div><div class='add'>+ * This is an older API.  New codes might prefer rb_cstr_to_inum().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str           Stringised representation of the return value.</div><div class='add'>+ * @param[in]  base          Base of conversion.   Must be `-36..36` inclusive,</div><div class='add'>+ *                           except `1`.  `2..36` means  the conversion is done</div><div class='add'>+ *                           according to it,  with unmatched prefix understood</div><div class='add'>+ *                           as  a part  of  the result.   `-36..-2` means  the</div><div class='add'>+ *                           conversion  honours prefix  when  present, or  use</div><div class='add'>+ *                           `-base` when  absent. `0` is equivalent  to `-10`.</div><div class='add'>+ *                           `-1` mandates a prefix. `1` is an error.</div><div class='add'>+ * @exception  rb_eArgError  Failed to parse (and `base` is zero).</div><div class='add'>+ * @return     An instance of ::rb_cInteger,  which is a numeric interpretation</div><div class='add'>+ *             of what is written in `str`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_cstr2inum(const char *str, int base);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_to_inum(), except the  second argument controls the base</div><div class='add'>+ * and  badcheck at  once.  It  can  also be  seen  as a  routine identical  to</div><div class='add'>+ * rb_cstr2inum(), except it takes Ruby's strings instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * This is an older API.  New codes might prefer rb_cstr_to_inum().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str                 Stringised  representation   of  the  return</div><div class='add'>+ *                                 value.</div><div class='add'>+ * @param[in]  base                Base  of  conversion.    Must  be  `-36..36`</div><div class='add'>+ *                                 inclusive,  except `1`.   `2..36` means  the</div><div class='add'>+ *                                 conversion  is done  according  to it,  with</div><div class='add'>+ *                                 unmatched prefix understood as a part of the</div><div class='add'>+ *                                 result.   `-36..-2`   means  the  conversion</div><div class='add'>+ *                                 honours prefix when  present, or use `-base`</div><div class='add'>+ *                                 when  absent. `0`  is  equivalent to  `-10`.</div><div class='add'>+ *                                 `-1` mandates a prefix. `1` is an error.</div><div class='add'>+ * @exception  rb_eArgError        Failed to parse (and `base` is zero).</div><div class='add'>+ * @exception  rb_eTypeError       `str` is not a string.</div><div class='add'>+ * @exception  rb_eEncCompatError  `str` is not ASCII compatible.</div><div class='add'>+ * @return     An instance of ::rb_cInteger,  which is a numeric interpretation</div><div class='add'>+ *             of what is written in `str`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str2inum(VALUE str, int base);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates a place-value representation of the passed integer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               An integer to stringify.</div><div class='add'>+ * @param[in]  base            `2` to `36` inclusive for each radix.</div><div class='add'>+ * @exception  rb_eArgError    `base` is out of range.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is too big, cannot represent in string.</div><div class='add'>+ * @return     An instance of ::rb_cString which represents `x`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big2str(VALUE x, int base);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a bignum into C's `long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               A bignum.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `long`.</div><div class='add'>+ * @return     The passed value converted into C's `long`.</div><div class='add'>+ */</div><div class='add'>+long rb_big2long(VALUE x);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_big2long} */</div><div class='add'>+#define rb_big2int(x) rb_big2long(x)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a bignum into C's `unsigned long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               A bignum.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `unsigned long`.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned long`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function  can generate  a very  large positive  integer for  a negative</div><div class='add'>+ * input.   For instance  applying  Ruby's  -4,611,686,018,427,387,905 to  this</div><div class='add'>+ * function yields C's  13,835,058,055,282,163,711 on my machine.   This is how</div><div class='add'>+ * it has been.  Cannot change any longer.</div><div class='add'>+ */</div><div class='add'>+unsigned long rb_big2ulong(VALUE x);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_big2long} */</div><div class='add'>+#define rb_big2uint(x) rb_big2ulong(x)</div><div class='add'>+</div><div class='add'>+#if HAVE_LONG_LONG</div><div class='add'>+/**</div><div class='add'>+ * Converts a bignum into C's `long long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               A bignum.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `long long`.</div><div class='add'>+ * @return     The passed value converted into C's `long long`.</div><div class='add'>+ */</div><div class='add'>+LONG_LONG rb_big2ll(VALUE);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a bignum into C's `unsigned long long`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x               A bignum.</div><div class='add'>+ * @exception  rb_eRangeError  `x` is out of range of `unsigned long long`.</div><div class='add'>+ * @return     The passed value converted into C's `unsigned long long`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function  can generate  a very  large positive  integer for  a negative</div><div class='add'>+ * input.   For instance  applying  Ruby's  -4,611,686,018,427,387,905 to  this</div><div class='add'>+ * function yields C's  13,835,058,055,282,163,711 on my machine.   This is how</div><div class='add'>+ * it has been.  Cannot change any longer.</div><div class='add'>+ */</div><div class='add'>+unsigned LONG_LONG rb_big2ull(VALUE);</div><div class='add'>+</div><div class='add'>+#endif  /* HAVE_LONG_LONG */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Converts a bignum into a series of its parts.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   val            An integer.</div><div class='add'>+ * @param[out]  buf            Return buffer.</div><div class='add'>+ * @param[in]   num_longs      Number of words of `buf`.</div><div class='add'>+ * @exception   rb_eTypeError  `val` doesn't respond to `#to_int`.</div><div class='add'>+ * @post        `buf` is filled with  `val`'s 2's complement representation, in</div><div class='add'>+ *              the host CPU's  native byte order, from  least significant word</div><div class='add'>+ *              towards the most significant one, for `num_longs` words.</div><div class='add'>+ * @note        The "pack" terminology comes from `Array#pack`.</div><div class='add'>+ */</div><div class='add'>+void rb_big_pack(VALUE val, unsigned long *buf, long num_longs);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Constructs a (possibly very big) bignum from a series of integers.  `buf[0]`</div><div class='add'>+ * would be the return value's least significant word; `buf[num_longs-1]` would</div><div class='add'>+ * be that of most significant.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  buf           A series of integers.</div><div class='add'>+ * @param[in]  num_longs     Number of words of `buf`.</div><div class='add'>+ * @exception  rb_eArgError  Result would be too big.</div><div class='add'>+ * @return     An instance  of ::rb_cInteger which  is an "unpack"-ed  value of</div><div class='add'>+ *             the parameters.</div><div class='add'>+ * @note       The "unpack" terminology comes from `String#pack`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_unpack(unsigned long *buf, long num_longs);</div><div class='add'>+</div><div class='add'>+/* pack.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Encodes a Unicode codepoint into its UTF-8 representation.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  buf             Return buffer, must at least be 6 bytes width.</div><div class='add'>+ * @param[in]   uv              An Unicode codepoint.</div><div class='add'>+ * @exception   rb_eRangeError  `uv` is out of Unicode.</div><div class='add'>+ * @return      Number of bytes written to `buf`</div><div class='add'>+ * @post        `buf` holds a UTF-8 representation of `uv`.</div><div class='add'>+ */</div><div class='add'>+int rb_uv_to_utf8(char buf[6], unsigned long uv);</div><div class='add'>+</div><div class='add'>+/* bignum.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a C's `double` into a bignum.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  d                     A value to convert.</div><div class='add'>+ * @exception  rb_eFloatDomainError  `d` is Inf/NaN.</div><div class='add'>+ * @return     An instance of ::rb_cInteger whose value is approximately `d`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei is not sure if the result  is guaranteed to be the nearest integer</div><div class='add'>+ * of `d`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_dbl2big(double d);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a bignum into C's `double`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @return     The passed value converted into C's `double`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei is not sure if the result  is guaranteed to be `x`'s nearest value</div><div class='add'>+ * that a `double` can represent.</div><div class='add'>+ */</div><div class='add'>+double rb_big2dbl(VALUE x);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Compares the passed two bignums.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs  Comparison LHS.</div><div class='add'>+ * @param[in]  rhs  Comparison RHS.</div><div class='add'>+ * @retval     -1   `rhs` is bigger than `lhs`.</div><div class='add'>+ * @retval     0    They are identical.</div><div class='add'>+ * @retval     1    `lhs` is bigger than `rhs`.</div><div class='add'>+ * @see        rb_num_coerce_cmp()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_cmp(VALUE lhs, VALUE rhs);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Equality, in terms of `==`.  This checks if the _value_ is the same, not the</div><div class='add'>+ * identity.  For instance `1 == 1.0` must hold.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs          Comparison LHS.</div><div class='add'>+ * @param[in]  rhs          Comparison RHS.</div><div class='add'>+ * @retval     RUBY_Qtrue   They are the same.</div><div class='add'>+ * @retval     RUBY_Qfalse  They are different.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_eq(VALUE lhs, VALUE rhs);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Equality,  in terms  of  `eql?`.   Unlike rb_big_eq()  it  does not  convert</div><div class='add'>+ * ::rb_cFloat etc.   This function  returns ::RUBY_Qtrue if  and only  if both</div><div class='add'>+ * parameters are bignums, which represent the identical numerical value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs          Comparison LHS.</div><div class='add'>+ * @param[in]  rhs          Comparison RHS.</div><div class='add'>+ * @retval     RUBY_Qtrue   They are identical.</div><div class='add'>+ * @retval     RUBY_Qfalse  They are distinct.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_eql(VALUE lhs, VALUE rhs);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs addition of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x + y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_plus(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs subtraction of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x - y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_minus(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs multiplication of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x * y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_mul(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs division of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x / y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_div(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs "integer division".  This is different from rb_big_div().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x.div y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_idiv(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs modulo of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x % y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * There also is `rb_big_remainder()` internally,  which is different from this</div><div class='add'>+ * one.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_modulo(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs "divmod" operation.   The operation in bignum's context  is that it</div><div class='add'>+ * calculates rb_big_idiv() and rb_big_modulo() at once.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x.divmod y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_divmod(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Raises `x` to the powerof `y`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x ** y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ * @note       This can return  an instance of ::rb_cFloat, even  when both `x`</div><div class='add'>+ *             and `y` are bignums.  Or an instance of ::rb_cRational, when for</div><div class='add'>+ *             instance `y` is negative.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_pow(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs bitwise and of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x &amp; y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bit()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_and(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs bitwise or of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x | y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bit()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_or(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs exclusive or of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  A bignum.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x ^ y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bit()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_xor(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs shift left.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x              A bignum.</div><div class='add'>+ * @param[in]  y              Shift amount.</div><div class='add'>+ * @exception  rb_eTypeError  `y` is not an integer.</div><div class='add'>+ * @exception  rb_eArgError   `y` is too big.</div><div class='add'>+ * @return     `x` shifted left to `y` bits.</div><div class='add'>+ * @note       `y` can be negative.  Shifts right then.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_lshift(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs shift right.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x              A bignum.</div><div class='add'>+ * @param[in]  y              Shift amount.</div><div class='add'>+ * @exception  rb_eTypeError  `y` is not an integer.</div><div class='add'>+ * @return     `x` shifted right to `y` bits.</div><div class='add'>+ * @note       This is arithmetic.  Because bignums  are not bitfields there is</div><div class='add'>+ *             no shift right logical operator.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_big_rshift(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Flags for rb_integer_pack()/rb_integer_unpack()</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/** Stores/interprets the most significant word as the first word. */</div><div class='add'>+#define INTEGER_PACK_MSWORD_FIRST       0x01</div><div class='add'>+</div><div class='add'>+/** Stores/interprets the least significant word as the first word. */</div><div class='add'>+#define INTEGER_PACK_LSWORD_FIRST       0x02</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Stores/interprets the most  significant byte in a word as  the first byte in</div><div class='add'>+ * the word.</div><div class='add'>+ */</div><div class='add'>+#define INTEGER_PACK_MSBYTE_FIRST       0x10</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Stores/interprets the least significant byte in  a word as the first byte in</div><div class='add'>+ * the word.</div><div class='add'>+ */</div><div class='add'>+#define INTEGER_PACK_LSBYTE_FIRST       0x20</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Means   either  #INTEGER_PACK_MSBYTE_FIRST   or  #INTEGER_PACK_LSBYTE_FIRST,</div><div class='add'>+ * depending on the host processor's endian.</div><div class='add'>+ */</div><div class='add'>+#define INTEGER_PACK_NATIVE_BYTE_ORDER  0x40</div><div class='add'>+</div><div class='add'>+/** Uses 2's complement representation. */</div><div class='add'>+#define INTEGER_PACK_2COMP              0x80</div><div class='add'>+</div><div class='add'>+/** Uses "generic" implementation (handy on test). */</div><div class='add'>+#define INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION     0x400</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Always generates  a bignum object even  if the integer can  be representable</div><div class='add'>+ * using fixnum scheme (unpack only)</div><div class='add'>+ */</div><div class='add'>+#define INTEGER_PACK_FORCE_BIGNUM       0x100</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Interprets the  input as  a signed  negative number  (unpack only).   If not</div><div class='add'>+ * specified returns a positive number.</div><div class='add'>+ */</div><div class='add'>+#define INTEGER_PACK_NEGATIVE           0x200</div><div class='add'>+</div><div class='add'>+/** Little endian combination. */</div><div class='add'>+#define INTEGER_PACK_LITTLE_ENDIAN \</div><div class='add'>+    (INTEGER_PACK_LSWORD_FIRST | \</div><div class='add'>+     INTEGER_PACK_LSBYTE_FIRST)</div><div class='add'>+</div><div class='add'>+/** Big endian combination */</div><div class='add'>+#define INTEGER_PACK_BIG_ENDIAN \</div><div class='add'>+    (INTEGER_PACK_MSWORD_FIRST | \</div><div class='add'>+     INTEGER_PACK_MSBYTE_FIRST)</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Exports an integer into a buffer.   This function fills the buffer specified</div><div class='add'>+ * by `words`  and `numwords` as `val`  in the format specified  by `wordsize`,</div><div class='add'>+ * `nails` and `flags`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   val            Integer   or  integer-like   object  which   has</div><div class='add'>+ *                             `#to_int` method.</div><div class='add'>+ * @param[out]  words          Return buffer.</div><div class='add'>+ * @param[in]   numwords       Number of words of `words`.</div><div class='add'>+ * @param[in]   wordsize       Number of bytes per word.</div><div class='add'>+ * @param[in]   nails          Number  of   padding  bits  in  a   word.   Most</div><div class='add'>+ *                             significant nails  bits of each word  are filled</div><div class='add'>+ *                             by zero.</div><div class='add'>+ * @param[in]   flags          Bitwise  or  of   constants  whose  name  starts</div><div class='add'>+ *                             "INTEGER_PACK_".</div><div class='add'>+ * @exception   rb_eTypeError  `val` doesn't respond to `#to_int`.</div><div class='add'>+ *</div><div class='add'>+ * Possible flags are:</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_MSWORD_FIRST:</div><div class='add'>+ *       Stores the most significant word as the first word.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_LSWORD_FIRST:</div><div class='add'>+ *       Stores the least significant word as the first word.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_MSBYTE_FIRST:</div><div class='add'>+ *       Stores the most  significant byte in a  word as the first  byte in the</div><div class='add'>+ *       word.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_LSBYTE_FIRST:</div><div class='add'>+ *       Stores the least significant  byte in a word as the  first byte in the</div><div class='add'>+ *       word.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_NATIVE_BYTE_ORDER:</div><div class='add'>+ *       Either   #INTEGER_PACK_MSBYTE_FIRST    or   #INTEGER_PACK_LSBYTE_FIRST</div><div class='add'>+ *       corresponding to the host's endian.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_2COMP:</div><div class='add'>+ *       Uses 2's complement representation.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_LITTLE_ENDIAN: Shorthand of</div><div class='add'>+ *       `INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_LSBYTE_FIRST`.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_BIG_ENDIAN: Shorthand of</div><div class='add'>+ *       `INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_MSBYTE_FIRST`.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION:</div><div class='add'>+ *       Uses generic implementation (for test and debug).</div><div class='add'>+ *</div><div class='add'>+ * This  function  fills  the  buffer  specified  by  `words`  as  `val`'s  2's</div><div class='add'>+ * complement representation  if #INTEGER_PACK_2COMP  is specified  in `flags`.</div><div class='add'>+ * Otherwise it fills `words` as `abs(val)`  and signedness is returned via the</div><div class='add'>+ * return value.</div><div class='add'>+ *</div><div class='add'>+ * @return  The  signedness and  overflow  condition.   The overflow  condition</div><div class='add'>+ *          depends on #INTEGER_PACK_2COMP.</div><div class='add'>+ *</div><div class='add'>+ * When #INTEGER_PACK_2COMP is not specified:</div><div class='add'>+ *</div><div class='add'>+ *   - `-2` :</div><div class='add'>+ *       Negative overflow.  `val &lt;= -2**(numwords*(wordsize*CHAR_BIT-nails))`</div><div class='add'>+ *</div><div class='add'>+ *   - `-1` :</div><div class='add'>+ *       Negative without overflow.</div><div class='add'>+ *       `-2**(numwords*(wordsize*CHAR_BIT-nails)) &lt; val &lt; 0`</div><div class='add'>+ *</div><div class='add'>+ *   - `0` : zero.  `val == 0`</div><div class='add'>+ *</div><div class='add'>+ *   - `1` :</div><div class='add'>+ *       Positive without overflow.</div><div class='add'>+ *       `0 &lt; val &lt; 2**(numwords*(wordsize*CHAR_BIT-nails))`</div><div class='add'>+ *</div><div class='add'>+ *   - `2` :</div><div class='add'>+ *       Positive overflow.  `2**(numwords*(wordsize*CHAR_BIT-nails)) &lt;= val`</div><div class='add'>+ *</div><div class='add'>+ * When #INTEGER_PACK_2COMP is specified:</div><div class='add'>+ *</div><div class='add'>+ *   - `-2` :</div><div class='add'>+ *       Negative overflow.  `val &lt; -2**(numwords*(wordsize*CHAR_BIT-nails))`</div><div class='add'>+ *</div><div class='add'>+ *   - `-1` :</div><div class='add'>+ *       Negative without overflow.</div><div class='add'>+ *       `-2**(numwords*(wordsize*CHAR_BIT-nails)) &lt;= val &lt; 0`</div><div class='add'>+ *</div><div class='add'>+ *   - `0` : zero.  `val == 0`</div><div class='add'>+ *</div><div class='add'>+ *   - `1` :</div><div class='add'>+ *       Positive without overflow.</div><div class='add'>+ *       `0 &lt; val &lt; 2**(numwords*(wordsize*CHAR_BIT-nails))`</div><div class='add'>+ *</div><div class='add'>+ *   - `2` :</div><div class='add'>+ *       Positive overflow.  `2**(numwords*(wordsize*CHAR_BIT-nails)) &lt;= val`</div><div class='add'>+ *</div><div class='add'>+ * The value,  `-2**(numwords*(wordsize*CHAR_BIT-nails))`, is  representable in</div><div class='add'>+ * 2's complement representation  but not representable in  absolute value.  So</div><div class='add'>+ * `-1`  is returned  for the  value  if #INTEGER_PACK_2COMP  is specified  but</div><div class='add'>+ * returns `-2` if #INTEGER_PACK_2COMP is not specified.</div><div class='add'>+ *</div><div class='add'>+ * The least significant words are filled in the buffer when overflow occur.</div><div class='add'>+ */</div><div class='add'>+int rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t nails, int flags);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Import an integer from a buffer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  words         Buffer to import.</div><div class='add'>+ * @param[in]  numwords      Number of words of `words`.</div><div class='add'>+ * @param[in]  wordsize      Number of bytes per word.</div><div class='add'>+ * @param[in]  nails         Number   of  padding   bits  in   a  word.    Most</div><div class='add'>+ *                           significant nails bits of each word are ignored.</div><div class='add'>+ * @param[in]  flags         Bitwise   or  of   constants  whose   name  starts</div><div class='add'>+ *                           "INTEGER_PACK_".</div><div class='add'>+ * @exception  rb_eArgError  `numwords * wordsize` too big.</div><div class='add'>+ *</div><div class='add'>+ * Possible flags are:</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_MSWORD_FIRST:</div><div class='add'>+ *       Interpret the first word as the most significant word.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_LSWORD_FIRST:</div><div class='add'>+ *       Interpret the first word as the least significant word.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_MSBYTE_FIRST:</div><div class='add'>+ *       Interpret the first byte in a word as the most significant byte in the</div><div class='add'>+ *       word.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_LSBYTE_FIRST:</div><div class='add'>+ *       Interpret the  first byte in a  word as the least  significant byte in</div><div class='add'>+ *       the word.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_NATIVE_BYTE_ORDER:</div><div class='add'>+ *       Either   #INTEGER_PACK_MSBYTE_FIRST    or   #INTEGER_PACK_LSBYTE_FIRST</div><div class='add'>+ *       corresponding to the host's endian.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_2COMP:</div><div class='add'>+ *       Uses 2's complement representation.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_LITTLE_ENDIAN: Shorthand of</div><div class='add'>+ *       `INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_LSBYTE_FIRST`</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_BIG_ENDIAN: Shorthand of</div><div class='add'>+ *       `INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_MSBYTE_FIRST`</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_FORCE_BIGNUM:</div><div class='add'>+ *       Returns a bignum even if its value is representable as a fixnum.</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_NEGATIVE:</div><div class='add'>+ *       Returns a  non-positive value.  (Returns a  non-negative value  if not</div><div class='add'>+ *       specified.)</div><div class='add'>+ *</div><div class='add'>+ *   - #INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION:</div><div class='add'>+ *       Uses generic implementation (for test and debug).</div><div class='add'>+ *</div><div class='add'>+ * @return  An  instance  of  ::rb_cInteger  whose  value  is  the  interpreted</div><div class='add'>+ *          `words`.    The   range   of    the   result   value   depends   on</div><div class='add'>+ *          #INTEGER_PACK_2COMP and #INTEGER_PACK_NEGATIVE.</div><div class='add'>+ *</div><div class='add'>+ * When #INTEGER_PACK_2COMP is not set:</div><div class='add'>+ *</div><div class='add'>+ *   - `0 &lt;= val &lt; 2**(numwords*(wordsize*CHAR_BIT-nails))` if</div><div class='add'>+ *     `!INTEGER_PACK_NEGATIVE`</div><div class='add'>+ *</div><div class='add'>+ *   - `-2**(numwords*(wordsize*CHAR_BIT-nails)) &lt; val &lt;= 0` if</div><div class='add'>+ *     `INTEGER_PACK_NEGATIVE`</div><div class='add'>+ *</div><div class='add'>+ * When #INTEGER_PACK_2COMP is set:</div><div class='add'>+ *</div><div class='add'>+ *   - `-2**(numwords*(wordsize*CHAR_BIT-nails)-1)` `&lt;= val &lt;=`</div><div class='add'>+ *     `2**(numwords*(wordsize*CHAR_BIT-nails)-1)-1` if</div><div class='add'>+ *     `!INTEGER_PACK_NEGATIVE`</div><div class='add'>+ *</div><div class='add'>+ *   - `-2**(numwords*(wordsize*CHAR_BIT-nails)) &lt;= val &lt;= -1` if</div><div class='add'>+ *     `INTEGER_PACK_NEGATIVE`</div><div class='add'>+ *</div><div class='add'>+ * Passing  #INTEGER_PACK_2COMP   without  #INTEGER_PACK_NEGATIVE   means  sign</div><div class='add'>+ * extension.  #INTEGER_PACK_2COMP  with #INTEGER_PACK_NEGATIVE  means assuming</div><div class='add'>+ * the higher bits are `1`.</div><div class='add'>+ *</div><div class='add'>+ * Note   that  this   function  returns   0  when   `numwords`  is   zero  and</div><div class='add'>+ * #INTEGER_PACK_2COMP is set but #INTEGER_PACK_NEGATIVE is not set.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t nails, int flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Calculates the number of bytes needed to represent the absolute value of the</div><div class='add'>+ * passed integer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   val            Integer   or  integer-like   object  which   has</div><div class='add'>+ *                             `#to_int` method.</div><div class='add'>+ * @param[out]  nlz_bits_ret   Number  of   leading  zero  bits  in   the  most</div><div class='add'>+ *                             significant byte is returned if not `NULL`.</div><div class='add'>+ * @exception   rb_eTypeError  `val` doesn't respond to `#to_int`.</div><div class='add'>+ * @return      `((val_numbits * CHAR_BIT + CHAR_BIT - 1) / CHAR_BIT)`,   where</div><div class='add'>+ *              val_numbits is the number of bits of `abs(val)`.</div><div class='add'>+ * @post        If `nlz_bits_ret` is not `NULL`,</div><div class='add'>+ *              `(return_value * CHAR_BIT - val_numbits)`    is    stored    in</div><div class='add'>+ *              `*nlz_bits_ret`.  In this case,</div><div class='add'>+ *              `0 &lt;= *nlz_bits_ret &lt; CHAR_BIT`.</div><div class='add'>+ *</div><div class='add'>+ * This function should not overflow.</div><div class='add'>+ */</div><div class='add'>+size_t rb_absint_size(VALUE val, int *nlz_bits_ret);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Calculates the  number of words needed  represent the absolute value  of the</div><div class='add'>+ * passed  integer.  Unlike  rb_absint_size() this  function can  overflow.  It</div><div class='add'>+ * returns `(size_t)-1` then.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   val            Integer   or  integer-like   object  which   has</div><div class='add'>+ *                             `#to_int` method.</div><div class='add'>+ * @param[in]   word_numbits   Number of bits per word.</div><div class='add'>+ * @param[out]  nlz_bits_ret   Number  of   leading  zero  bits  in   the  most</div><div class='add'>+ *                             significant word is returned if not `NULL`.</div><div class='add'>+ * @exception   rb_eTypeError  `val` doesn't respond to `#to_int`.</div><div class='add'>+ * @retval      (size_t)-1     Overflowed.</div><div class='add'>+ * @retval      otherwise</div><div class='add'>+                `((val_numbits * CHAR_BIT + word_numbits - 1) / word_numbits)`,</div><div class='add'>+ *              where val_numbits is the number of bits of `abs(val)`.</div><div class='add'>+ * @post        If  `nlz_bits_ret` is  not  `NULL` and  there  is no  overflow,</div><div class='add'>+ *              `(return_value * word_numbits - val_numbits)`   is  stored   in</div><div class='add'>+ *              `*nlz_bits_ret`.  In this case,</div><div class='add'>+ *              `0 &lt;= *nlz_bits_ret &lt; word_numbits.`</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+size_t rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Tests `abs(val)` consists only of a bit or not.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   val            Integer   or  integer-like   object  which   has</div><div class='add'>+ *                             `#to_int` method.</div><div class='add'>+ * @exception   rb_eTypeError  `val` doesn't respond to `#to_int`.</div><div class='add'>+ * @retval      1              `abs(val) == 1 &lt;&lt; n` for some `n &gt;= 0`.</div><div class='add'>+ * @retval      0              Otherwise.</div><div class='add'>+ *</div><div class='add'>+ * rb_absint_singlebit_p() can  be used to  determine required buffer  size for</div><div class='add'>+ * rb_integer_pack() used with #INTEGER_PACK_2COMP (two's complement).</div><div class='add'>+ *</div><div class='add'>+ * Following example  calculates number  of bits required  to represent  val in</div><div class='add'>+ * two's complement number, without sign bit.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ *   size_t size;</div><div class='add'>+ *   int neg = FIXNUM_P(val) ? FIX2LONG(val) &lt; 0 : BIGNUM_NEGATIVE_P(val);</div><div class='add'>+ *   size = rb_absint_numwords(val, 1, NULL)</div><div class='add'>+ *   if (size == (size_t)-1) ...overflow...</div><div class='add'>+ *   if (neg &amp;&amp; rb_absint_singlebit_p(val))</div><div class='add'>+ *     size--;</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * Following example  calculates number of  bytes required to represent  val in</div><div class='add'>+ * two's complement number, with sign bit.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ *   size_t size;</div><div class='add'>+ *   int neg = FIXNUM_P(val) ? FIX2LONG(val) &lt; 0 : BIGNUM_NEGATIVE_P(val);</div><div class='add'>+ *   int nlz_bits;</div><div class='add'>+ *   size = rb_absint_size(val, &amp;nlz_bits);</div><div class='add'>+ *   if (nlz_bits == 0 &amp;&amp; !(neg &amp;&amp; rb_absint_singlebit_p(val)))</div><div class='add'>+ *     size++;</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+int rb_absint_singlebit_p(VALUE val);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_BIGNUM_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/class.h b/include/ruby/internal/intern/class.h<br/>new file mode 100644<br/>index 0000000000..0fb2d001bc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/class.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/class.h</a></div><div class='hunk'>@@ -0,0 +1,394 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_CLASS_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_CLASS_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cClass/::rb_cModule.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/backward/2/stdarg.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* class.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a new, anonymous class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  super          What would become a parent class.</div><div class='add'>+ * @exception  rb_eTypeError  `super` is not something inheritable.</div><div class='add'>+ * @return     An anonymous class that inherits `super`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_new(VALUE super);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The comment  that comes with  this function  says `:nodoc:`.  Not  sure what</div><div class='add'>+ * that means though.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  clone          Destination object.</div><div class='add'>+ * @param[in]   orig           Source object.</div><div class='add'>+ * @exception   rb_eTypeError  Cannot copy `orig`.</div><div class='add'>+ * @return      The passed `clone`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_init_copy(VALUE clone, VALUE orig);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts that  the given class  can derive a child  class.  A class  might or</div><div class='add'>+ * might not be able to do so; for instance a singleton class cannot.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  super          Possible super class.</div><div class='add'>+ * @exception  rb_eTypeError  No it cannot.</div><div class='add'>+ * @post       Upon successful return `super` can derive.</div><div class='add'>+ */</div><div class='add'>+void rb_check_inheritable(VALUE super);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a very badly designed API that creates an anonymous class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id             Discarded for no reason (why...).</div><div class='add'>+ * @param[in]  super          What  would  become  a  parent  class.   0  means</div><div class='add'>+ *                            ::rb_cObject.</div><div class='add'>+ * @exception  rb_eTypeError  `super` is not something inheritable.</div><div class='add'>+ * @return     An anonymous class that inherits `super`.</div><div class='add'>+ * @warning    You must explicitly name the return value.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_define_class_id(ID id, VALUE super);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_define_class_under(),  except  it takes  the  name in  ::ID</div><div class='add'>+ * instead of C's string.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  outer          A class which contains the new class.</div><div class='add'>+ * @param[in]   id             Name of the new class</div><div class='add'>+ * @param[in]   super          A class from which the new class will derive.</div><div class='add'>+ *                             0 means ::rb_cObject.</div><div class='add'>+ * @exception   rb_eTypeError  The constant name `id`  is already taken but the</div><div class='add'>+ *                             constant is not a class.</div><div class='add'>+ * @exception   rb_eTypeError  The class  is already defined but  the class can</div><div class='add'>+ *                             not be  reopened because  its superclass  is not</div><div class='add'>+ *                             `super`.</div><div class='add'>+ * @exception   rb_eArgError   `super` is NULL.</div><div class='add'>+ * @return      The created class.</div><div class='add'>+ * @post        `outer::id` refers the returned class.</div><div class='add'>+ * @note        If a class named `id` is  already defined and its superclass is</div><div class='add'>+ *              `super`, the function just returns the defined class.</div><div class='add'>+ * @note        The  compaction  GC does  not  move  classes returned  by  this</div><div class='add'>+ *              function.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_define_class_id_under(VALUE outer, ID id, VALUE super);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a new, anonymous module.</div><div class='add'>+ *</div><div class='add'>+ * @return An anonymous module.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_module_new(void);</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a new, anonymous refinement.</div><div class='add'>+ *</div><div class='add'>+ * @return An anonymous refinement.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_refinement_new(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a very badly designed API that creates an anonymous module.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id  Discarded for no reason (why...).</div><div class='add'>+ * @return     An anonymous module.</div><div class='add'>+ * @warning    You must explicitly name the return value.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_define_module_id(ID id);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_define_module_under(),  except it  takes the  name in  ::ID</div><div class='add'>+ * instead of C's string.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  outer          A class which contains the new module.</div><div class='add'>+ * @param[in]   id             Name of the new module</div><div class='add'>+ * @exception   rb_eTypeError  The constant name `id`  is already taken but the</div><div class='add'>+ *                             constant is not a module.</div><div class='add'>+ * @return      The created module.</div><div class='add'>+ * @post        `outer::id` refers the returned module.</div><div class='add'>+ * @note        The  compaction  GC does  not  move  classes returned  by  this</div><div class='add'>+ *              function.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_define_module_id_under(VALUE outer, ID id);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the list of  included modules.  It can also be seen  as a routine to</div><div class='add'>+ * first  call rb_mod_ancestors(),  then  rejects non-modules  from the  return</div><div class='add'>+ * value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mod  Class or Module.</div><div class='add'>+ * @return     An array of modules that are either included or prepended in any</div><div class='add'>+ *             of `mod`'s ancestry tree (including itself).</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_included_modules(VALUE mod);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the passed module is included by the module.  It can also be seen</div><div class='add'>+ * as a routine to first call rb_mod_included_modules(), then see if the return</div><div class='add'>+ * value contains the passed module.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  child          A Module.</div><div class='add'>+ * @param[in]  parent         Another Module.</div><div class='add'>+ * @exception  rb_eTypeError  `child` is not an instance of ::rb_cModule.</div><div class='add'>+ * @retval     RUBY_Qtrue     `parent` is  either included or prepended  in any</div><div class='add'>+ *                            of `child`'s ancestry tree (including itself).</div><div class='add'>+ * @return     RUBY_Qfalse    Otherwise.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_include_p(VALUE child, VALUE parent);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the  module's ancestors.  This routine gathers classes  and modules</div><div class='add'>+ * that  the  passed  module  either  inherits,  includes,  or  prepends,  then</div><div class='add'>+ * recursively applies  that routine again  and again to the  collected entries</div><div class='add'>+ * until the list doesn't grow up.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mod  A module or a class.</div><div class='add'>+ * @return     An array of  classes or modules that  `mod` possibly recursively</div><div class='add'>+ *             inherits, includes, or prepends.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description  is written  in a  recursive language  but in  practice it</div><div class='add'>+ * computes the return value iteratively.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_ancestors(VALUE mod);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the class's descendants. This  routine gathers classes that are</div><div class='add'>+ * subclasses of the given class (or subclasses of those subclasses, etc.),</div><div class='add'>+ * returning an array of classes that have the given class as an ancestor.</div><div class='add'>+ * The returned array does not include the given class or singleton classes.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass A class.</div><div class='add'>+ * @return     An array of classes where `klass` is an ancestor.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_descendants(VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the class's direct descendants. This  routine gathers classes that are</div><div class='add'>+ * direct subclasses of the given class,</div><div class='add'>+ * returning an array of classes that have the given class as a superclass.</div><div class='add'>+ * The returned array does not include singleton classes.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass A class.</div><div class='add'>+ * @return     An array of classes where `klass` is the `superclass`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_subclasses(VALUE klass);</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ *  Returns the attached object for a singleton class.</div><div class='add'>+ *  If the given class is not a singleton class, raises a TypeError.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass A class.</div><div class='add'>+ * @return     The object which has the singleton class `klass`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_attached_object(VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates an array of symbols, which are the list of method names defined in</div><div class='add'>+ * the passed class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc          Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv          Array of  at most  one object, which  controls (if</div><div class='add'>+ *                           any) whether  the return array includes  the names</div><div class='add'>+ *                           of methods defined in ancestors or not.</div><div class='add'>+ * @param[in]  mod           A module or a class.</div><div class='add'>+ * @exception  rb_eArgError  `argc` out of range.</div><div class='add'>+ * @return     An array  of symbols collecting  names of instance  methods that</div><div class='add'>+ *             are not private, defined at `mod`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_instance_methods(int argc, const VALUE *argv, VALUE mod);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_class_instance_methods(), except it returns names of methods</div><div class='add'>+ * that are public only.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc          Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv          Array of  at most  one object, which  controls (if</div><div class='add'>+ *                           any) whether  the return array includes  the names</div><div class='add'>+ *                           of methods defined in ancestors or not.</div><div class='add'>+ * @param[in]  mod           A module or a class.</div><div class='add'>+ * @exception  rb_eArgError  `argc` out of range.</div><div class='add'>+ * @return     An array  of symbols collecting  names of instance  methods that</div><div class='add'>+ *             are public, defined at `mod`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_public_instance_methods(int argc, const VALUE *argv, VALUE mod);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_class_instance_methods(), except it returns names of methods</div><div class='add'>+ * that are protected only.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc          Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv          Array of  at most  one object, which  controls (if</div><div class='add'>+ *                           any) whether  the return array includes  the names</div><div class='add'>+ *                           of methods defined in ancestors or not.</div><div class='add'>+ * @param[in]  mod           A module or a class.</div><div class='add'>+ * @exception  rb_eArgError  `argc` out of range.</div><div class='add'>+ * @return     An array  of symbols collecting  names of instance  methods that</div><div class='add'>+ *             are protected, defined at `mod`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_protected_instance_methods(int argc, const VALUE *argv, VALUE mod);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_class_instance_methods(), except it returns names of methods</div><div class='add'>+ * that are private only.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc          Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv          Array of  at most  one object, which  controls (if</div><div class='add'>+ *                           any) whether  the return array includes  the names</div><div class='add'>+ *                           of methods defined in ancestors or not.</div><div class='add'>+ * @param[in]  mod           A module or a class.</div><div class='add'>+ * @exception  rb_eArgError  `argc` out of range.</div><div class='add'>+ * @return     An array  of symbols collecting  names of instance  methods that</div><div class='add'>+ *             are protected, defined at `mod`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_private_instance_methods(int argc, const VALUE *argv, VALUE mod);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_class_instance_methods(),  except   it  returns  names  of</div><div class='add'>+ * singleton methods instead of instance methods.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc          Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv          Array of  at most  one object, which  controls (if</div><div class='add'>+ *                           any) whether  the return array includes  the names</div><div class='add'>+ *                           of methods defined in ancestors or not.</div><div class='add'>+ * @param[in]  obj           Arbitrary ruby object.</div><div class='add'>+ * @exception  rb_eArgError  `argc` out of range.</div><div class='add'>+ * @return     An array  of symbols collecting  names of instance  methods that</div><div class='add'>+ *             are not private, defined at the singleton class of `obj`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_singleton_methods(int argc, const VALUE *argv, VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_define_method(),  except it takes the name of  the method in</div><div class='add'>+ * ::ID instead of C's string.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  A module or a class.</div><div class='add'>+ * @param[in]   mid    Name of the function.</div><div class='add'>+ * @param[in]   func   The method body.</div><div class='add'>+ * @param[in]   arity  The number of parameters.  See @ref defmethod.</div><div class='add'>+ * @note        There are in fact 18 different prototypes for func.</div><div class='add'>+ * @see         ::ruby::backward::cxxanyargs::define_method::rb_define_method_id</div><div class='add'>+ */</div><div class='add'>+void rb_define_method_id(VALUE klass, ID mid, VALUE (*func)(ANYARGS), int arity);</div><div class='add'>+</div><div class='add'>+/* vm_method.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Inserts a  method entry that hides  previous method definition of  the given</div><div class='add'>+ * name.  This is not a deletion of  a method.  Method of the same name defined</div><div class='add'>+ * in a parent class is kept invisible in this way.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  mod              The module to insert an undef.</div><div class='add'>+ * @param[in]   mid              Name of the undef.</div><div class='add'>+ * @exception   rb_eTypeError    `klass` is a non-module.</div><div class='add'>+ * @exception   rb_eFrozenError  `klass` is frozen.</div><div class='add'>+ * @exception   rb_eNameError    No such method named `klass#name`.</div><div class='add'>+ * @post        `klass#name` is undefined.</div><div class='add'>+ * @see         rb_undef_method</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't  understand why this  is not  the ::ID -taking  variant of</div><div class='add'>+ * rb_undef_method(), given rb_remove_method() has its ::ID -taking counterpart</div><div class='add'>+ * named rb_remove_method_id().</div><div class='add'>+ */</div><div class='add'>+void rb_undef(VALUE mod, ID mid);</div><div class='add'>+</div><div class='add'>+/* class.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_define_method(), except it defines a protected method.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  A module or a class.</div><div class='add'>+ * @param[in]   mid    Name of the function.</div><div class='add'>+ * @param[in]   func   The method body.</div><div class='add'>+ * @param[in]   arity  The number of parameters.  See @ref defmethod.</div><div class='add'>+ * @note        There are in fact 18 different prototypes for func.</div><div class='add'>+ * @see         ::ruby::backward::cxxanyargs::define_method::rb_define_protected_method</div><div class='add'>+ */</div><div class='add'>+void rb_define_protected_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_define_method(), except it defines a private method.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  A module or a class.</div><div class='add'>+ * @param[in]   mid    Name of the function.</div><div class='add'>+ * @param[in]   func   The method body.</div><div class='add'>+ * @param[in]   arity  The number of parameters.  See @ref defmethod.</div><div class='add'>+ * @note        There are in fact 18 different prototypes for func.</div><div class='add'>+ * @see         ::ruby::backward::cxxanyargs::define_method::rb_define_protected_method</div><div class='add'>+ */</div><div class='add'>+void rb_define_private_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_define_method(), except it defines a singleton method.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj    Arbitrary ruby object.</div><div class='add'>+ * @param[in]   mid    Name of the function.</div><div class='add'>+ * @param[in]   func   The method body.</div><div class='add'>+ * @param[in]   arity  The number of parameters.  See @ref defmethod.</div><div class='add'>+ * @note        There are in fact 18 different prototypes for func.</div><div class='add'>+ * @see         ::ruby::backward::cxxanyargs::define_method::rb_define_singleton_method</div><div class='add'>+ */</div><div class='add'>+void rb_define_singleton_method(VALUE obj, const char *mid, VALUE(*func)(ANYARGS), int arity);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Finds or creates the singleton class of the passed object.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj            Arbitrary ruby object.</div><div class='add'>+ * @exception   rb_eTypeError  `obj` cannot have its singleton class.</div><div class='add'>+ * @return      A (possibly newly allocated) instance of ::rb_cClass.</div><div class='add'>+ * @post        `obj` has its singleton class, which is the return value.</div><div class='add'>+ * @post        In case `obj` is a class, the returned singleton class also has</div><div class='add'>+ *              its own  singleton class  in order to  keep consistency  of the</div><div class='add'>+ *              inheritance structure of metaclasses.</div><div class='add'>+ * @note        A new  singleton class will  be created  if `obj` did  not have</div><div class='add'>+ *              one.</div><div class='add'>+ * @note        The  singleton  classes   for  ::RUBY_Qnil,  ::RUBY_Qtrue,  and</div><div class='add'>+ *              ::RUBY_Qfalse   are    ::rb_cNilClass,   ::rb_cTrueClass,   and</div><div class='add'>+ *              ::rb_cFalseClass respectively.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * You can _create_ a singleton class of a frozen object.  Intentional or ...?</div><div class='add'>+ *</div><div class='add'>+ * Nowadays there are wider range of  objects who cannot have singleton classes</div><div class='add'>+ * than before.  For instance some string instances cannot for some reason.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_singleton_class(VALUE obj);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_CLASS_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/compar.h b/include/ruby/internal/intern/compar.h<br/>new file mode 100644<br/>index 0000000000..dc3b377b01<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/compar.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/compar.h</a></div><div class='hunk'>@@ -0,0 +1,62 @@</div><div class='add'>+#ifndef  RBIMPL_INTERN_COMPAR_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define  RBIMPL_INTERN_COMPAR_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_mComparable.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/cold.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* bignum.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Canonicalises the passed `val`, which is the return value of `a &lt;=&gt; b`, into</div><div class='add'>+ * C's `{-1, 0, 1}`.  This can be  handy when you implement a callback function</div><div class='add'>+ * to pass to `qsort(3)` etc.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val           Return value of a space ship operator.</div><div class='add'>+ * @param[in]  a             Comparison LHS.</div><div class='add'>+ * @param[in]  b             Comparison RHS.</div><div class='add'>+ * @exception  rb_eArgError  `a` and `b` are not comparable each other.</div><div class='add'>+ * @retval     -1            `val` is less than zero.</div><div class='add'>+ * @retval     0             `val` is equal to zero.</div><div class='add'>+ * @retval     1             `val` is greater than zero.</div><div class='add'>+ */</div><div class='add'>+int rb_cmpint(VALUE val, VALUE a, VALUE b);</div><div class='add'>+</div><div class='add'>+/* compar.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_COLD()</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Raises "comparison failed" error.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  a             Comparison LHS.</div><div class='add'>+ * @param[in]  b             Comparison RHS.</div><div class='add'>+ * @exception  rb_eArgError  `a` and `b` are not comparable each other.</div><div class='add'>+ */</div><div class='add'>+void rb_cmperr(VALUE a, VALUE b);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_COMPAR_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/complex.h b/include/ruby/internal/intern/complex.h<br/>new file mode 100644<br/>index 0000000000..e111bd8ced<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/complex.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/complex.h</a></div><div class='hunk'>@@ -0,0 +1,253 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_COMPLEX_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_COMPLEX_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cComplex.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/deprecated.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h" /* INT2FIX is here. */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* complex.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_complex_new(),  except it  assumes both  arguments are  not</div><div class='add'>+ * instances of ::rb_cComplex.  It is thus dangerous for extension libraries.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  real  Real part, in any numeric except Complex.</div><div class='add'>+ * @param[in]  imag  Imaginary part, in any numeric except Complex.</div><div class='add'>+ * @return     An instance of ::rb_cComplex whose value is `real + (imag)i`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_raw(VALUE real, VALUE imag);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shorthand of  `x+0i`.  It  practically converts  `x` into  a Complex  of the</div><div class='add'>+ * identical value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  Any numeric except Complex.</div><div class='add'>+ * @return     An instance of ::rb_cComplex, whose value is `x + 0i`.</div><div class='add'>+ */</div><div class='add'>+#define rb_complex_raw1(x) rb_complex_raw((x), INT2FIX(0))</div><div class='add'>+</div><div class='add'>+/** @alias{rb_complex_raw} */</div><div class='add'>+#define rb_complex_raw2(x,y) rb_complex_raw((x), (y))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Constructs a Complex, by first multiplying the imaginary part with `1i` then</div><div class='add'>+ * adds it  to the real part.   This definition doesn't need  both arguments be</div><div class='add'>+ * real numbers.  It  can happily combine two instances  of ::rb_cComplex (with</div><div class='add'>+ * rotating the latter one).</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  real  An instance of ::rb_cNumeric.</div><div class='add'>+ * @param[in]  imag  Another instance of ::rb_cNumeric.</div><div class='add'>+ * @return     An instance of ::rb_cComplex whose value is `imag * 1i + real`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_new(VALUE real, VALUE imag);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shorthand of  `x+0i`.  It  practically converts  `x` into  a Complex  of the</div><div class='add'>+ * identical value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  Any numeric value.</div><div class='add'>+ * @return     An instance of ::rb_cComplex, whose value is `x + 0i`.</div><div class='add'>+ */</div><div class='add'>+#define rb_complex_new1(x) rb_complex_new((x), INT2FIX(0))</div><div class='add'>+</div><div class='add'>+/** @alias{rb_complex_new} */</div><div class='add'>+#define rb_complex_new2(x,y) rb_complex_new((x), (y))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Constructs a  Complex using polar representations.   Unlike rb_complex_new()</div><div class='add'>+ * it makes no sense to pass non-real instances to this function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  abs  Magnitude, in any numeric except Complex.</div><div class='add'>+ * @param[in]  arg  Angle, in radians, in any numeric except Complex.</div><div class='add'>+ * @return     An  instance  of ::rb_cComplex  which  denotes  the given  polar</div><div class='add'>+ *             coordinates.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_new_polar(VALUE abs, VALUE arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("by: rb_complex_new_polar"))</div><div class='add'>+/** @old{rb_complex_new_polar} */</div><div class='add'>+VALUE rb_complex_polar(VALUE abs, VALUE arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries the real part of the passed Complex.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  z  An instance of ::rb_cComplex.</div><div class='add'>+ * @return     Its real part, which is an instance of ::rb_cNumeric.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_real(VALUE z);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries the imaginary part of the passed Complex.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  z  An instance of ::rb_cComplex.</div><div class='add'>+ * @return     Its imaginary part, which is an instance of ::rb_cNumeric.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_imag(VALUE z);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs addition of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  An instance of ::rb_cComplex.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x + y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_plus(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs subtraction of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  An instance of ::rb_cComplex.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x - y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_minus(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs multiplication of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  An instance of ::rb_cComplex.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x * y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_mul(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs division of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  An instance of ::rb_cComplex.</div><div class='add'>+ * @param[in]  y  Arbitrary ruby object.</div><div class='add'>+ * @return     What `x / y` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_div(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs negation of the passed object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  z  An instance of ::rb_cComplex.</div><div class='add'>+ * @return     What `-z` evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_uminus(VALUE z);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs complex conjugation of the passed object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  z  An instance of ::rb_cComplex.</div><div class='add'>+ * @return     Its complex conjugate, in ::rb_cComplex.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_conjugate(VALUE z);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the absolute (or the magnitude) of the passed object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  z  An instance of ::rb_cComplex.</div><div class='add'>+ * @return     Its magnitude, in ::rb_cFloat.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_abs(VALUE z);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the argument (or the angle) of the passed object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  z  An instance of ::rb_cComplex.</div><div class='add'>+ * @return     Its magnitude, in ::rb_cFloat.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_arg(VALUE z);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Performs exponentiation of the passed two objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  base  An instance of ::rb_cComplex.</div><div class='add'>+ * @param[in]  exp   Arbitrary ruby object.</div><div class='add'>+ * @return     What `base ** exp` evaluates to.</div><div class='add'>+ * @see        rb_num_coerce_bin()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_complex_pow(VALUE base, VALUE exp);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_complex_new(),  except it takes the arguments  as C's double</div><div class='add'>+ * instead of Ruby's object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  real  Real part.</div><div class='add'>+ * @param[in]  imag  Imaginary part.</div><div class='add'>+ * @return     An instance of ::rb_cComplex whose value is `real + (imag)i`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_dbl_complex_new(double real, double imag);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_complex_plus} */</div><div class='add'>+#define rb_complex_add rb_complex_plus</div><div class='add'>+</div><div class='add'>+/** @alias{rb_complex_minus} */</div><div class='add'>+#define rb_complex_sub rb_complex_minus</div><div class='add'>+</div><div class='add'>+/** @alias{rb_complex_uminus} */</div><div class='add'>+#define rb_complex_nagate rb_complex_uminus</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts various values into a Complex.  This function accepts:</div><div class='add'>+ *</div><div class='add'>+ * - Instances of ::rb_cComplex (taken as-is),</div><div class='add'>+ * - Instances of ::rb_cNumeric (adds `0i`),</div><div class='add'>+ * - Instances of ::rb_cString  (parses),</div><div class='add'>+ * - Other objects that respond to `#to_c`.</div><div class='add'>+ *</div><div class='add'>+ * It (possibly recursively) applies `#to_c`  until both sides become a Complex</div><div class='add'>+ * value, then computes `imag * 1i + real`.</div><div class='add'>+ *</div><div class='add'>+ * As a  special case, passing ::RUBY_Qundef  to `imag` is the  same as passing</div><div class='add'>+ * `RB_INT2NUM(0)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  real           Real part (see above).</div><div class='add'>+ * @param[in]  imag           Imaginary part (see above).</div><div class='add'>+ * @exception  rb_eTypeError  Passed something not described above.</div><div class='add'>+ * @return     An instance of ::rb_cComplex whose value is `1i * imag + real`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This was the implementation of `Kernel#Complex` before, but they diverged.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_Complex(VALUE real, VALUE imag);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shorthand of  `x+0i`.  It  practically converts  `x` into  a Complex  of the</div><div class='add'>+ * identical value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  ::rb_cNumeric,  ::rb_cString, or  something that  responds to</div><div class='add'>+ *                `#to_c`.</div><div class='add'>+ * @return     An instance of ::rb_cComplex, whose value is `x + 0i`.</div><div class='add'>+ */</div><div class='add'>+#define rb_Complex1(x) rb_Complex((x), INT2FIX(0))</div><div class='add'>+</div><div class='add'>+/** @alias{rb_Complex} */</div><div class='add'>+#define rb_Complex2(x,y) rb_Complex((x), (y))</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_COMPLEX_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/cont.h b/include/ruby/internal/intern/cont.h<br/>new file mode 100644<br/>index 0000000000..32647f48aa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/cont.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/cont.h</a></div><div class='hunk'>@@ -0,0 +1,282 @@</div><div class='add'>+#ifndef  RBIMPL_INTERN_CONT_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define  RBIMPL_INTERN_CONT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to rb_cFiber.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/iterator.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* cont.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a Fiber instance from a C-backended block.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  func          A function, to become the fiber's body.</div><div class='add'>+ * @param[in]  callback_obj  Passed as-is to `func`.</div><div class='add'>+ * @return     An allocated  new instance  of rb_cFiber, which  is ready  to be</div><div class='add'>+ *             "resume"d.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_new(rb_block_call_func_t func, VALUE callback_obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a Fiber instance from a C-backended block with the specified</div><div class='add'>+ * storage.</div><div class='add'>+ *</div><div class='add'>+ * If the given storage is Qundef or Qtrue, this function is equivalent to</div><div class='add'>+ * rb_fiber_new() which inherits storage from the current fiber.</div><div class='add'>+ *</div><div class='add'>+ * Specifying Qtrue is experimental and may be changed in the future.</div><div class='add'>+ *</div><div class='add'>+ * If the given storage is Qnil, this function will lazy initialize the</div><div class='add'>+ * internal storage which starts of empty (without any inheritance).</div><div class='add'>+ *</div><div class='add'>+ * Otherwise, the given storage is used as the internal storage.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  func          A function, to become the fiber's body.</div><div class='add'>+ * @param[in]  callback_obj  Passed as-is to `func`.</div><div class='add'>+ * @param[in]  storage       The way to set up the storage for the fiber.</div><div class='add'>+ * @return     An allocated  new instance  of rb_cFiber, which  is ready  to be</div><div class='add'>+ *             "resume"d.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_new_storage(rb_block_call_func_t func, VALUE callback_obj, VALUE storage);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the fiber  which  is  calling this  function.   Any ruby  execution</div><div class='add'>+ * context has its fiber, either explicitly or implicitly.</div><div class='add'>+ *</div><div class='add'>+ * @return  The current fiber.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_current(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the  liveness of the  passed fiber.   "Alive" in this  context means</div><div class='add'>+ * that  the fiber  can  still be  resumed.   Once  it reaches  is  its end  of</div><div class='add'>+ * execution, this function returns ::RUBY_Qfalse.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fiber        A target fiber.</div><div class='add'>+ * @retval     RUBY_Qtrue   It is.</div><div class='add'>+ * @retval     RUBY_Qfalse  It isn't.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_alive_p(VALUE fiber);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if an object is a fiber.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj          Arbitrary ruby object.</div><div class='add'>+ * @retval     RUBY_Qtrue   It is.</div><div class='add'>+ * @retval     RUBY_Qfalse  It isn't.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_is_fiber(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resumes the  execution of the passed  fiber, either from the  point at which</div><div class='add'>+ * the last  rb_fiber_yield() was  called if  any, or at  the beginning  of the</div><div class='add'>+ * fiber body if it is the first call to this function.</div><div class='add'>+ *</div><div class='add'>+ * Other arguments are passed into the fiber's body, either as return values of</div><div class='add'>+ * rb_fiber_yield() in case it switches to  there, or as the block parameter of</div><div class='add'>+ * the fiber body if it switches to the beginning of the fiber.</div><div class='add'>+ *</div><div class='add'>+ * The return  value of this  function is either  the value passed  to previous</div><div class='add'>+ * rb_fiber_yield() call, or  the ultimate evaluated value of  the entire fiber</div><div class='add'>+ * body if the execution reaches the end of it.</div><div class='add'>+ *</div><div class='add'>+ * When an exception happens inside of a fiber it propagates to this function.</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * f = Fiber.new do |i|</div><div class='add'>+ *   puts "&lt;x&gt; =&gt;&gt; #{i}"</div><div class='add'>+ *   puts "&lt;y&gt; &lt;-- #{i + 1}"</div><div class='add'>+ *   j = Fiber.yield(i + 1)</div><div class='add'>+ *   puts "&lt;z&gt; =&gt;&gt; #{j}"</div><div class='add'>+ *   puts "&lt;w&gt; &lt;-- #{j + 1}"</div><div class='add'>+ *   next j + 1</div><div class='add'>+ * end</div><div class='add'>+ *</div><div class='add'>+ * puts "[a] &lt;-- 1"</div><div class='add'>+ * p = f.resume(1)</div><div class='add'>+ * puts "[b] =&gt;&gt; #{p}"</div><div class='add'>+ * puts "[c] &lt;-- #{p + 1}"</div><div class='add'>+ * q = f.resume(p + 1)</div><div class='add'>+ * puts "[d] =&gt;&gt; #{q}"</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * Above program executes in `[a] &lt;x&gt; &lt;y&gt; [b] [c] &lt;z&gt; &lt;w&gt; [d]`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  fiber          The fiber to resume.</div><div class='add'>+ * @param[in]   argc            Number of objects of `argv`.</div><div class='add'>+ * @param[in]   argv            Passed (somehow) to `fiber`.</div><div class='add'>+ * @exception   rb_eFiberError  `fib` is terminated etc.</div><div class='add'>+ * @exception   rb_eException   Any exceptions happen in `fiber`.</div><div class='add'>+ * @return      (See above)</div><div class='add'>+ * @note        This function _does_ return.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei  expected  this function  to  raise  ::rb_eFrozenError for  frozen</div><div class='add'>+ * fibers but it doesn't in practice.  Intentional or ...?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_resume(VALUE fiber, int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_fiber_resume(), except  you can specify  how to  handle the</div><div class='add'>+ * last element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  fiber           The fiber to resume.</div><div class='add'>+ * @param[in]   argc            Number of objects of `argv`.</div><div class='add'>+ * @param[in]   argv            Passed (somehow) to `fiber`.</div><div class='add'>+ * @param[in]   kw_splat        Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception   rb_eFiberError  `fiber` is terminated etc.</div><div class='add'>+ * @exception   rb_eException   Any exceptions happen in `fiber`.</div><div class='add'>+ * @return      Either what was yielded or the last value of the fiber body.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_resume_kw(VALUE fiber, int argc, const VALUE *argv, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Yields the  control back to the  point where the current  fiber was resumed.</div><div class='add'>+ * The passed  objects would  be the return  value of  rb_fiber_resume().  This</div><div class='add'>+ * fiber then suspends its execution until next time it is resumed.</div><div class='add'>+ *</div><div class='add'>+ * This function can  also raise arbitrary exceptions injected  from outside of</div><div class='add'>+ * the fiber using rb_fiber_raise().</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * exc = Class.new Exception</div><div class='add'>+ *</div><div class='add'>+ * f = Fiber.new do</div><div class='add'>+ *   Fiber.yield</div><div class='add'>+ * rescue exc =&gt; e</div><div class='add'>+ *   puts e.message</div><div class='add'>+ * end</div><div class='add'>+ *</div><div class='add'>+ * f.resume</div><div class='add'>+ * f.raise exc, "Hi!"</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc           Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv           Passed to rb_fiber_resume().</div><div class='add'>+ * @exception  rb_eException  (See above)</div><div class='add'>+ * @return     (See rb_fiber_resume() for details)</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_yield(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_fiber_yield(), except you can specify how to handle the last</div><div class='add'>+ * element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc            Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv            Passed to rb_fiber_resume().</div><div class='add'>+ * @param[in]  kw_splat        Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception  rb_eException   What was raised using `Fiber#raise`.</div><div class='add'>+ * @return     (See rb_fiber_resume() for details)</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_yield_kw(int argc, const VALUE *argv, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Transfers control to  another fiber, resuming it from where  it last stopped</div><div class='add'>+ * or starting  it if  it was not  resumed before.  The  calling fiber  will be</div><div class='add'>+ * suspended much like in a call to rb_fiber_yield().</div><div class='add'>+ *</div><div class='add'>+ * The fiber  which receives  the transfer  call treats it  much like  a resume</div><div class='add'>+ * call.  Arguments passed to transfer are treated like those passed to resume.</div><div class='add'>+ *</div><div class='add'>+ * The two style of control passing to and from fiber (one is rb_fiber_resume()</div><div class='add'>+ * and  rb_fiber_yield(), another  is  rb_fiber_transfer() to  and from  fiber)</div><div class='add'>+ * can't be freely mixed.</div><div class='add'>+ *</div><div class='add'>+ *   - If the  Fiber's lifecycle had  started with  transfer, it will  never be</div><div class='add'>+ *     able to  yield or be  resumed control  passing, only finish  or transfer</div><div class='add'>+ *     back.   (It  still can  resume  other  fibers  that  are allowed  to  be</div><div class='add'>+ *     resumed.)</div><div class='add'>+ *</div><div class='add'>+ *   - If  the Fiber's  lifecycle  had started  with resume,  it  can yield  or</div><div class='add'>+ *     transfer to  another Fiber, but  can receive  control back only  the way</div><div class='add'>+ *     compatible with  the way it  was given away:  if it had  transferred, it</div><div class='add'>+ *     only can  be transferred  back, and if  it had yielded,  it only  can be</div><div class='add'>+ *     resumed back.  After that, it again can transfer or yield.</div><div class='add'>+ *</div><div class='add'>+ * If those rules are broken, rb_eFiberError is raised.</div><div class='add'>+ *</div><div class='add'>+ * For an  individual Fiber design,  yield/resume is  easier to use  (the Fiber</div><div class='add'>+ * just gives away control,  it doesn't need to think about  who the control is</div><div class='add'>+ * given to),  while transfer is more  flexible for complex cases,  allowing to</div><div class='add'>+ * build arbitrary graphs of Fibers dependent on each other.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  fiber           Explicit control destination.</div><div class='add'>+ * @param[in]   argc            Number of objects of `argv`.</div><div class='add'>+ * @param[in]   argv            Passed to rb_fiber_resume().</div><div class='add'>+ * @exception   rb_eFiberError  (See above)</div><div class='add'>+ * @exception   rb_eException   What was raised using `Fiber#raise`.</div><div class='add'>+ * @return      (See rb_fiber_resume() for details)</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_transfer(VALUE fiber, int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_fiber_transfer(),  except you can specify how  to handle the</div><div class='add'>+ * last element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  fiber           Explicit control destination.</div><div class='add'>+ * @param[in]   argc            Number of objects of `argv`.</div><div class='add'>+ * @param[in]   argv            Passed to rb_fiber_resume().</div><div class='add'>+ * @param[in]   kw_splat        Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception   rb_eFiberError  (See above)</div><div class='add'>+ * @exception   rb_eException   What was raised using `Fiber#raise`.</div><div class='add'>+ * @return      (See rb_fiber_resume() for details)</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_transfer_kw(VALUE fiber, int argc, const VALUE *argv, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_fiber_resume()  but instead of resuming  normal execution of</div><div class='add'>+ * the passed fiber, it  raises the given exception in it.   From inside of the</div><div class='add'>+ * fiber this would be seen as if rb_fiber_yield() raised.</div><div class='add'>+ *</div><div class='add'>+ * This function  does return in case  the passed fiber gracefully  handled the</div><div class='add'>+ * passed exception.  But  if it does not, the raised  exception propagates out</div><div class='add'>+ * of the passed fiber; this function then does not return.</div><div class='add'>+ *</div><div class='add'>+ * Parameters are passed to rb_make_exception()  to create an exception object.</div><div class='add'>+ * See its document for what are allowed here.</div><div class='add'>+ *</div><div class='add'>+ * It is  a failure to  call this function against  a fiber which  is resuming,</div><div class='add'>+ * have never run yet, or has already finished running.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  fiber           Where exception is raised.</div><div class='add'>+ * @param[in]   argc            Passed as-is to rb_make_exception().</div><div class='add'>+ * @param[in]   argv            Passed as-is to rb_make_exception().</div><div class='add'>+ * @exception   rb_eFiberError  `fiber` is terminated etc.</div><div class='add'>+ * @return      (See rb_fiber_resume() for details)</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fiber_raise(VALUE fiber, int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_CONT_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/dir.h b/include/ruby/internal/intern/dir.h<br/>new file mode 100644<br/>index 0000000000..da1873e068<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/dir.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/dir.h</a></div><div class='hunk'>@@ -0,0 +1,42 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_DIR_H                          /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_DIR_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cDir.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* dir.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the path of the current working directory of the current process.</div><div class='add'>+ *</div><div class='add'>+ * @return  An instance of ::rb_cString that holds the working directory.</div><div class='add'>+ * @note    The returned string  is in "filesystem" encoding.   Most notably on</div><div class='add'>+ *          Linux this is an alias  of default external encoding.  Most notably</div><div class='add'>+ *          on Windows it can be an alias of OS codepage.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_dir_getwd(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_DIR_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/enum.h b/include/ruby/internal/intern/enum.h<br/>new file mode 100644<br/>index 0000000000..215ad82672<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/enum.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/enum.h</a></div><div class='hunk'>@@ -0,0 +1,73 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_ENUM_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_ENUM_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_mEnumerable.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* enum.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Basically identical to rb_ary_new_form_values(), except it returns something</div><div class='add'>+ * different when `argc` &lt; 2.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc       Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv       Arbitrary objects.</div><div class='add'>+ * @retval     RUBY_Qnil  `argc` is zero.</div><div class='add'>+ * @retval     argv[0]    `argc` is one.</div><div class='add'>+ * @retval     otherwise  Otherwise.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * What  is this  business?   Well,  this function  is  about `yield`'s  taking</div><div class='add'>+ * multiple values.  Consider following user-defined class:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * class Foo</div><div class='add'>+ *   include Enumerable</div><div class='add'>+ *</div><div class='add'>+ *   def each</div><div class='add'>+ *     yield :q, :w, :e, :r</div><div class='add'>+ *   end</div><div class='add'>+ * end</div><div class='add'>+ *</div><div class='add'>+ * Foo.new.each_with_object([]) do |i, j|</div><div class='add'>+ *   j &lt;&lt; i                      # ^^^ &lt;- What to expect for `i`?</div><div class='add'>+ * end</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * Here, `Foo#each_with_object` is in fact `Enumerable#each_with_object`, which</div><div class='add'>+ * doesn't know what would be yielded.  Yet, it has to take a block of arity 2.</div><div class='add'>+ * This function  is used here, to  "pack" arbitrary number of  yielded objects</div><div class='add'>+ * into one.</div><div class='add'>+ *</div><div class='add'>+ * If people want to implement their own `Enumerable#each_with_object` this API</div><div class='add'>+ * can be handy.  Though @shyouhei suspects it is relatively rare for 3rd party</div><div class='add'>+ * extension libraries  to have  such things.  Also  `Enumerable#each_entry` is</div><div class='add'>+ * basically this function exposed as a Ruby method.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enum_values_pack(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_ENUM_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/enumerator.h b/include/ruby/internal/intern/enumerator.h<br/>new file mode 100644<br/>index 0000000000..20e5d7c6fc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/enumerator.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/enumerator.h</a></div><div class='hunk'>@@ -0,0 +1,259 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_ENUMERATOR_H                   /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_ENUMERATOR_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cEnumerator.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/intern/eval.h" /* rb_frame_this_func */</div><div class='add'>+#include "ruby/internal/iterator.h"    /* rb_block_given_p */</div><div class='add'>+#include "ruby/internal/symbol.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the type of functions that rb_enumeratorize_with_size() expects.  In</div><div class='add'>+ * theory an enumerator can have indefinite number of elements, but in practice</div><div class='add'>+ * it often is  the case we can  compute the size of  an enumerator beforehand.</div><div class='add'>+ * If your enumerator has such property, supply a function that calculates such</div><div class='add'>+ * values.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv  The original receiver of the enumerator.</div><div class='add'>+ * @param[in]  argv  Arguments passed to `Object#enum_for` etc.</div><div class='add'>+ * @param[in]  eobj  The enumerator object.</div><div class='add'>+ * @return     The size of `eobj`, in ::rb_cNumeric, or ::RUBY_Qnil if the size</div><div class='add'>+ *             is not known until we actually iterate.</div><div class='add'>+ */</div><div class='add'>+typedef VALUE rb_enumerator_size_func(VALUE recv, VALUE argv, VALUE eobj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Decomposed   `Enumerator::ArithmeicSequence`.   This   is   a  subclass   of</div><div class='add'>+ * ::rb_cEnumerator,  which  represents  a  sequence  of  numbers  with  common</div><div class='add'>+ * difference.  Internal  data structure of the  class is opaque to  users, but</div><div class='add'>+ * you can obtain a decomposed one using rb_arithmetic_sequence_extract().</div><div class='add'>+ */</div><div class='add'>+typedef struct {</div><div class='add'>+    VALUE begin;          /**&lt; "Left" or "lowest" endpoint of the sequence. */</div><div class='add'>+    VALUE end;            /**&lt; "Right" or "highest" endpoint of the sequence.*/</div><div class='add'>+    VALUE step;           /**&lt; Step between a sequence. */</div><div class='add'>+    int exclude_end;      /**&lt; Whether the endpoint is open or closed.  */</div><div class='add'>+} rb_arithmetic_sequence_components_t;</div><div class='add'>+</div><div class='add'>+/* enumerator.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Constructs an enumerator.  This roughly resembles `Object#enum_for`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv           A receiver of `meth`.</div><div class='add'>+ * @param[in]  meth           Method ID in a symbol object.</div><div class='add'>+ * @param[in]  argc           Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv           Arguments passed to `meth`.</div><div class='add'>+ * @exception  rb_eTypeError  `meth` is not an instance of ::rb_cSymbol.</div><div class='add'>+ * @return     A  new   instance  of  ::rb_cEnumerator  which,   when  yielded,</div><div class='add'>+ *             enumerates by calling `meth` on `recv` with `argv`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enumeratorize(VALUE recv, VALUE meth, int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_enumeratorize(),  except you  can additionally  specify the</div><div class='add'>+ * size function of return value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv           A receiver of `meth`.</div><div class='add'>+ * @param[in]  meth           Method ID in a symbol object.</div><div class='add'>+ * @param[in]  argc           Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv           Arguments passed to `meth`.</div><div class='add'>+ * @param[in]  func           Size calculator.</div><div class='add'>+ * @exception  rb_eTypeError  `meth` is not an instance of ::rb_cSymbol.</div><div class='add'>+ * @return     A  new   instance  of  ::rb_cEnumerator  which,   when  yielded,</div><div class='add'>+ *             enumerates by calling `meth` on `recv` with `argv`.</div><div class='add'>+ * @note       `func` can be zero, which means the size is unknown.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enumeratorize_with_size(VALUE recv, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *func);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_enumeratorize_with_func(),  except you  can specify  how to</div><div class='add'>+ * handle the last element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv             A receiver of `meth`.</div><div class='add'>+ * @param[in]  meth             Method ID in a symbol object.</div><div class='add'>+ * @param[in]  argc             Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv             Arguments passed to `meth`.</div><div class='add'>+ * @param[in]  func             Size calculator.</div><div class='add'>+ * @param[in]  kw_splat         Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception  rb_eTypeError    `meth` is not an instance of ::rb_cSymbol.</div><div class='add'>+ * @return     A  new   instance  of  ::rb_cEnumerator  which,   when  yielded,</div><div class='add'>+ *             enumerates by calling `meth` on `recv` with `argv`.</div><div class='add'>+ * @note       `func` can be zero, which means the size is unknown.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_enumeratorize_with_size_kw(VALUE recv, VALUE meth, int argc, const VALUE *argv, rb_enumerator_size_func *func, int kw_splat);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Extracts components of the passed arithmetic  sequence.  This can be seen as</div><div class='add'>+ * an extended version of rb_range_values().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   as   Target instance of `Enumerator::ArithmericSequence`.</div><div class='add'>+ * @param[out]  buf  Decomposed results buffer.</div><div class='add'>+ * @return      0    `as` is not `Enumerator::ArithmericSequence`.</div><div class='add'>+ * @return      1    Success.</div><div class='add'>+ * @post        `buf` is filled.</div><div class='add'>+ */</div><div class='add'>+int rb_arithmetic_sequence_extract(VALUE as, rb_arithmetic_sequence_components_t *buf);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical   to  rb_range_beg_len(),   except   it  takes   an  instance   of</div><div class='add'>+ * `Enumerator::ArithmericSequence`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   as              An `Enumerator::ArithmericSequence` instance.</div><div class='add'>+ * @param[out]  begp            Return value buffer.</div><div class='add'>+ * @param[out]  lenp            Return value buffer.</div><div class='add'>+ * @param[out]  stepp           Return value buffer.</div><div class='add'>+ * @param[in]   len             Updated length.</div><div class='add'>+ * @param[in]   err             In case `len` is out of range...</div><div class='add'>+ *                                - `0`: returns ::RUBY_Qnil.</div><div class='add'>+ *                                - `1`: raises  ::rb_eRangeError.</div><div class='add'>+ *                                - `2`: `beg` and `len` expanded accordingly.</div><div class='add'>+ * @exception   rb_eRangeError  `as` cannot fit into `long`.</div><div class='add'>+ * @retval      RUBY_Qfalse     `as` is not `Enumerator::ArithmericSequence`.</div><div class='add'>+ * @retval      RUBY_Qnil       `len` is out of `as` but `err` is zero.</div><div class='add'>+ * @retval      RUBY_Qtrue      Otherwise.</div><div class='add'>+ * @post        `beg` is the (possibly updated) left endpoint.</div><div class='add'>+ * @post        `len` is the (possibly updated) length of the range.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Currently no 3rd party applications of this function is found.  But that can</div><div class='add'>+ * be because this function is relatively new.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_arithmetic_sequence_beg_len_step(VALUE as, long *begp, long *lenp, long *stepp, long len, int err);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#ifndef RUBY_EXPORT</div><div class='add'>+# define rb_enumeratorize_with_size(obj, id, argc, argv, size_fn) \</div><div class='add'>+    rb_enumeratorize_with_size(obj, id, argc, argv, (rb_enumerator_size_func *)(size_fn))</div><div class='add'>+# define rb_enumeratorize_with_size_kw(obj, id, argc, argv, size_fn, kw_splat) \</div><div class='add'>+    rb_enumeratorize_with_size_kw(obj, id, argc, argv, (rb_enumerator_size_func *)(size_fn), kw_splat)</div><div class='add'>+#endif</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is  an implementation detail of  #RETURN_SIZED_ENUMERATOR().  You could</div><div class='add'>+ * use it directly, but can hardly be handy.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj      A receiver.</div><div class='add'>+ * @param[in]  argc     Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv     Arguments passed to the current method.</div><div class='add'>+ * @param[in]  size_fn  Size calculator.</div><div class='add'>+ * @return     A  new   instance  of  ::rb_cEnumerator  which,   when  yielded,</div><div class='add'>+ *             enumerates by calling the current method on `recv` with `argv`.</div><div class='add'>+ */</div><div class='add'>+#define SIZED_ENUMERATOR(obj, argc, argv, size_fn)                  \</div><div class='add'>+    rb_enumeratorize_with_size((obj), ID2SYM(rb_frame_this_func()), \</div><div class='add'>+                               (argc), (argv), (size_fn))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This  is an  implementation  detail  of #RETURN_SIZED_ENUMERATOR_KW().   You</div><div class='add'>+ * could use it directly, but can hardly be handy.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj              A receiver.</div><div class='add'>+ * @param[in]  argc             Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv             Arguments passed to the current method.</div><div class='add'>+ * @param[in]  size_fn          Size calculator.</div><div class='add'>+ * @param[in]  kw_splat         Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @return     A  new   instance  of  ::rb_cEnumerator  which,   when  yielded,</div><div class='add'>+ *             enumerates by calling the current method on `recv` with `argv`.</div><div class='add'>+ */</div><div class='add'>+#define SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat)        \</div><div class='add'>+    rb_enumeratorize_with_size_kw((obj), ID2SYM(rb_frame_this_func()), \</div><div class='add'>+                                  (argc), (argv), (size_fn), (kw_splat))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This roughly resembles `return enum_for(__callee__) unless block_given?`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj      A receiver.</div><div class='add'>+ * @param[in]  argc     Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv     Arguments passed to the current method.</div><div class='add'>+ * @param[in]  size_fn  Size calculator.</div><div class='add'>+ * @note       This macro may return inside.</div><div class='add'>+ */</div><div class='add'>+#define RETURN_SIZED_ENUMERATOR(obj, argc, argv, size_fn) do {          \</div><div class='add'>+        if (!rb_block_given_p())                                        \</div><div class='add'>+            return SIZED_ENUMERATOR(obj, argc, argv, size_fn);          \</div><div class='add'>+    } while (0)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  #RETURN_SIZED_ENUMERATOR(), except  you  can  specify how  to</div><div class='add'>+ * handle the last element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj              A receiver.</div><div class='add'>+ * @param[in]  argc             Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv             Arguments passed to the current method.</div><div class='add'>+ * @param[in]  size_fn          Size calculator.</div><div class='add'>+ * @param[in]  kw_splat         Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @note       This macro may return inside.</div><div class='add'>+ */</div><div class='add'>+#define RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat) do { \</div><div class='add'>+        if (!rb_block_given_p())                                            \</div><div class='add'>+            return SIZED_ENUMERATOR_KW(obj, argc, argv, size_fn, kw_splat);              \</div><div class='add'>+    } while (0)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RETURN_SIZED_ENUMERATOR(), except its size is unknown.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj   A receiver.</div><div class='add'>+ * @param[in]  argc  Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv  Arguments passed to the current method.</div><div class='add'>+ * @note       This macro may return inside.</div><div class='add'>+ */</div><div class='add'>+#define RETURN_ENUMERATOR(obj, argc, argv) \</div><div class='add'>+    RETURN_SIZED_ENUMERATOR(obj, argc, argv, 0)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RETURN_SIZED_ENUMERATOR_KW(), except  its size is unknown.  It</div><div class='add'>+ * can also be seen as a  routine identical to #RETURN_ENUMERATOR(), except you</div><div class='add'>+ * can specify how to handle the last element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj              A receiver.</div><div class='add'>+ * @param[in]  argc             Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv             Arguments passed to the current method.</div><div class='add'>+ * @param[in]  kw_splat         Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @note       This macro may return inside.</div><div class='add'>+ */</div><div class='add'>+#define RETURN_ENUMERATOR_KW(obj, argc, argv, kw_splat) \</div><div class='add'>+    RETURN_SIZED_ENUMERATOR_KW(obj, argc, argv, 0, kw_splat)</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_ENUMERATOR_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/error.h b/include/ruby/internal/intern/error.h<br/>new file mode 100644<br/>index 0000000000..9c153cbac5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/error.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/error.h</a></div><div class='hunk'>@@ -0,0 +1,287 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_ERROR_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_ERROR_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_eException.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/format.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/fl_type.h"</div><div class='add'>+#include "ruby/backward/2/assume.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This macro is used in conjunction  with rb_check_arity().  If you pass it to</div><div class='add'>+ * the function's last  (max) argument, that means the function  does not check</div><div class='add'>+ * upper limit.</div><div class='add'>+ */</div><div class='add'>+#define UNLIMITED_ARGUMENTS     (-1)</div><div class='add'>+</div><div class='add'>+#define rb_exc_new2             rb_exc_new_cstr  /**&lt; @old{rb_exc_new_cstr} */</div><div class='add'>+#define rb_exc_new3             rb_exc_new_str  /**&lt; @old{rb_exc_new_str} */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define rb_check_arity          rb_check_arity</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* error.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates an instance of the passed exception class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  etype           A subclass of ::rb_eException.</div><div class='add'>+ * @param[in]  ptr             Buffer contains error message.</div><div class='add'>+ * @param[in]  len             Length  of `ptr`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @exception  rb_eTypeError  `etype` is not a class.</div><div class='add'>+ * @exception  rb_eArgError   `len` is negative.</div><div class='add'>+ * @return     An instance of `etype`.</div><div class='add'>+ * @pre        At  least  `len` bytes  of  continuous  memory region  shall  be</div><div class='add'>+ *             accessible via `ptr`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function works for non-exception classes  as well, as long as they take</div><div class='add'>+ * one string argument.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_exc_new(VALUE etype, const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_exc_new(), except it assumes the passed pointer is a pointer</div><div class='add'>+ * to a C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  etype           A subclass of ::rb_eException.</div><div class='add'>+ * @param[in]  str             A C string (becomes an error message).</div><div class='add'>+ * @exception  rb_eTypeError  `etype` is not a class.</div><div class='add'>+ * @return     An instance of `etype`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_exc_new_cstr(VALUE etype, const char *str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_exc_new_cstr(),  except it takes a Ruby's  string instead of</div><div class='add'>+ * C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  etype           A subclass of ::rb_eException.</div><div class='add'>+ * @param[in]  str             An instance of ::rb_cString.</div><div class='add'>+ * @exception  rb_eTypeError  `etype` is not a class.</div><div class='add'>+ * @return     An instance of `etype`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_exc_new_str(VALUE etype, VALUE str);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)</div><div class='add'>+/**</div><div class='add'>+ * Raises an instance of ::rb_eLoadError.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fmt  Format specifier string compatible with rb_sprintf().</div><div class='add'>+ * @exception  rb_eLoadError  Always raises this.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Who needs this?  Except ruby itself?</div><div class='add'>+ */</div><div class='add'>+void rb_loaderror(const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_loaderror(),  except it  additionally takes  which file  is</div><div class='add'>+ * unable to  load.  The path can  be obtained later using  `LoadError#path` of</div><div class='add'>+ * the raising exception.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path  What failed.</div><div class='add'>+ * @param[in]  fmt   Format specifier string compatible with rb_sprintf().</div><div class='add'>+ * @exception  rb_eLoadError  Always raises this.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_loaderror_with_path(VALUE path, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)</div><div class='add'>+/**</div><div class='add'>+ * Raises an instance of ::rb_eNameError.  The name can be obtained later using</div><div class='add'>+ * `NameError#name` of the raising exception.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name  What failed.</div><div class='add'>+ * @param[in]  fmt   Format specifier string compatible with rb_sprintf().</div><div class='add'>+ * @exception  rb_eNameError  Always raises this.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_name_error(ID name, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_name_error(), except it takes a ::VALUE instead of ::ID.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name  What failed.</div><div class='add'>+ * @param[in]  fmt   Format specifier string compatible with rb_sprintf().</div><div class='add'>+ * @exception  rb_eNameError  Always raises this.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_name_error_str(VALUE name, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)</div><div class='add'>+/**</div><div class='add'>+ * Raises an instance  of ::rb_eFrozenError.  The object can  be obtained later</div><div class='add'>+ * using `FrozenError#receiver` of the raising exception.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv  What is frozen.</div><div class='add'>+ * @param[in]  fmt   Format specifier string compatible with rb_sprintf().</div><div class='add'>+ * @exception  rb_eFrozenError  Always raises this.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Note however,  that it  is often  not possible to  inspect a  frozen object,</div><div class='add'>+ * because the inspection itself could be forbidden by the frozen-ness.</div><div class='add'>+ */</div><div class='add'>+void rb_frozen_error_raise(VALUE recv, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Honestly  I  don't  understand  the  name, but  it  raises  an  instance  of</div><div class='add'>+ * ::rb_eArgError.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str           A message.</div><div class='add'>+ * @param[in]  type          Another message.</div><div class='add'>+ * @exception  rb_eArgError  Always raises this.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_invalid_str(const char *str, const char *type);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_frozen_error_raise(),  except its  raising exception  has a</div><div class='add'>+ * message like "can't modify frozen /what/".</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  what             What was frozen.</div><div class='add'>+ * @exception  rb_eFrozenError  Always raises this.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_error_frozen(const char *what);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_error_frozen(),  except  it takes  arbitrary  Ruby  object</div><div class='add'>+ * instead of C's string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  what             What was frozen.</div><div class='add'>+ * @exception  rb_eFrozenError  Always raises this.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_error_frozen_object(VALUE what);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  if the  passed  object is  frozen.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Target object to test frozen-ness.</div><div class='add'>+ * @exception  rb_eFrozenError  It is frozen.</div><div class='add'>+ * @post       Upon successful return it is guaranteed _not_ frozen.</div><div class='add'>+ */</div><div class='add'>+void rb_check_frozen(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Ensures that the passed object  can be `initialize_copy` relationship.  When</div><div class='add'>+ * you implement your own one you would better call this at the right beginning</div><div class='add'>+ * of your implementation.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj              Destination object.</div><div class='add'>+ * @param[in]  orig             Source object.</div><div class='add'>+ * @exception  rb_eFrozenError  `obj` is frozen.</div><div class='add'>+ * @post       Upon successful return obj is guaranteed safe to copy orig.</div><div class='add'>+ */</div><div class='add'>+void rb_check_copyable(VALUE obj, VALUE orig);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is an  implementation detail  of  rb_scan_args().  You  don't have  to</div><div class='add'>+ * bother.</div><div class='add'>+ *</div><div class='add'>+ * @pre        `argc` is out of range of `min`..`max`, both inclusive.</div><div class='add'>+ * @param[in]  argc          Arbitrary integer.</div><div class='add'>+ * @param[in]  min           Minimum allowed `argc`.</div><div class='add'>+ * @param[in]  max           Maximum allowed `argc`.</div><div class='add'>+ * @exception  rb_eArgError  Always.</div><div class='add'>+ */</div><div class='add'>+MJIT_STATIC void rb_error_arity(int argc, int min, int max);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated</div><div class='add'>+ *</div><div class='add'>+ * Does anyone use this?  Remain not deleted for compatibility.</div><div class='add'>+ */</div><div class='add'>+#define rb_check_frozen_internal(obj) do { \</div><div class='add'>+        VALUE frozen_obj = (obj); \</div><div class='add'>+        if (RB_UNLIKELY(RB_OBJ_FROZEN(frozen_obj))) { \</div><div class='add'>+            rb_error_frozen_object(frozen_obj); \</div><div class='add'>+        } \</div><div class='add'>+    } while (0)</div><div class='add'>+</div><div class='add'>+/** @alias{rb_check_frozen} */</div><div class='add'>+static inline void</div><div class='add'>+rb_check_frozen_inline(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (RB_UNLIKELY(RB_OBJ_FROZEN(obj))) {</div><div class='add'>+        rb_error_frozen_object(obj);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/** @alias{rb_check_frozen} */</div><div class='add'>+#define rb_check_frozen rb_check_frozen_inline</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Ensures that the  passed integer is in  the passed range.  When  you can use</div><div class='add'>+ * rb_scan_args() that is preferred over this one (powerful, descriptive).  But</div><div class='add'>+ * it can have its own application area.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc          Arbitrary integer.</div><div class='add'>+ * @param[in]  min           Minimum allowed `argv`.</div><div class='add'>+ * @param[in]  max           Maximum allowed `argv`, or `UNLIMITED_ARGUMENTS`.</div><div class='add'>+ * @exception  rb_eArgError  `argc` out of range.</div><div class='add'>+ * @return     The passed `argc`.</div><div class='add'>+ * @post       Upon successful return `argc` is  in range of `min`..`max`, both</div><div class='add'>+ *             inclusive.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_check_arity(int argc, int min, int max)</div><div class='add'>+{</div><div class='add'>+    if ((argc &lt; min) || (max != UNLIMITED_ARGUMENTS &amp;&amp; argc &gt; max))</div><div class='add'>+        rb_error_arity(argc, min, max);</div><div class='add'>+    return argc;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_ERROR_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/eval.h b/include/ruby/internal/intern/eval.h<br/>new file mode 100644<br/>index 0000000000..2230f7ab0c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/eval.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/eval.h</a></div><div class='hunk'>@@ -0,0 +1,222 @@</div><div class='add'>+#ifndef  RBIMPL_INTERN_EVAL_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define  RBIMPL_INTERN_EVAL_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Pre-1.9 era evaluator APIs (now considered miscellaneous).</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* eval.c */</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_raise(), except it  raises the passed exception instance as-</div><div class='add'>+ * is instead of creating new one.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  exc            An instance of a subclass of ::rb_eException.</div><div class='add'>+ * @exception  exc            What is passed.</div><div class='add'>+ * @exception  rb_eTypeError  `exc` is not an exception.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Wellll  actually, it  can  take more  than what  is  described above.   This</div><div class='add'>+ * function tries  to call `exception`  method of  the passed object.   If that</div><div class='add'>+ * function returns an exception object that is used instead.</div><div class='add'>+ */</div><div class='add'>+void rb_exc_raise(VALUE exc);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_fatal(), except it  raises the passed exception instance as-</div><div class='add'>+ * is instead of creating new one.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  exc  An instance of a subclass of ::rb_eException.</div><div class='add'>+ * @exception  exc  What is passed.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * You know  what...?  Using this API  you can make arbitrary  exceptions, like</div><div class='add'>+ * `RuntimeError`, that doesn't  interface with `rescue` clause.   This is very</div><div class='add'>+ * confusing.</div><div class='add'>+ */</div><div class='add'>+void rb_exc_fatal(VALUE exc);</div><div class='add'>+</div><div class='add'>+/* process.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_exit(), except how arguments are passed.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc            Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv            Contains at most one of the following:</div><div class='add'>+ *                               - ::RUBY_Qtrue - means `EXIT_SUCCESS`.</div><div class='add'>+ *                               - ::RUBY_Qfalse - means `EXIT_FAILURE`.</div><div class='add'>+ *                               - Numerical value - takes that value.</div><div class='add'>+ * @exception  rb_eArgError    Wrong `argc`.</div><div class='add'>+ * @exception  rb_eSystemExit  Exception representing the exit status.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_f_exit(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * This is  similar to rb_f_exit().   In fact  on some situation  it internally</div><div class='add'>+ * calls rb_exit().  But can be very esoteric on occasions.</div><div class='add'>+ *</div><div class='add'>+ * It takes up to one argument.  If  an argument is passed, it tries to display</div><div class='add'>+ * that.   Otherwise if  there is  `$!`, displays  that exception  instead.  It</div><div class='add'>+ * finally raise ::rb_eSystemExit in both cases.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc            Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv            Contains at most one string-ish object.</div><div class='add'>+ * @exception  rb_eArgError    Wrong `argc`.</div><div class='add'>+ * @exception  rb_eTypeError   No conversion from `argv[0]` to String.</div><div class='add'>+ * @exception  rb_eSystemExit  Exception representing `EXIT_FAILURE`.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_f_abort(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/* eval.c*/</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Raises an instance of ::rb_eInterrupt.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eInterrupt  Always raises this exception.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_interrupt(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the  name of the  Ruby level method  that is calling  this function.</div><div class='add'>+ * The "name" in this context is the one assigned to the function for the first</div><div class='add'>+ * time (note that methods can have multiple names via aliases).</div><div class='add'>+ *</div><div class='add'>+ * @retval  0          There is no method (e.g. toplevel context).</div><div class='add'>+ * @retval  otherwise  The name of the current method.</div><div class='add'>+ */</div><div class='add'>+ID rb_frame_this_func(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * This function  is to re-throw  global escapes.  Such global  escapes include</div><div class='add'>+ * exceptions, `throw`, `break`, for example.</div><div class='add'>+ *</div><div class='add'>+ * It makes  sense only  when used  in conjunction  with "protect"  series APIs</div><div class='add'>+ * e.g.  rb_protect(),  rb_load_protect(), rb_eval_string_protect(),  etc.   In</div><div class='add'>+ * case  these functions  experience  global escapes,  they  fill their  opaque</div><div class='add'>+ * `state` return  buffer.  You  can ignore  such escapes.   But if  you decide</div><div class='add'>+ * otherwise, you have to somehow escape globally again.  This function is used</div><div class='add'>+ * for that purpose.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  state  Opaque state of execution.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Though  not  a  part  of  our  public  API,  `state`  is  in  fact  an  enum</div><div class='add'>+ * ruby_tag_type.  You can see the potential values by looking at vm_core.h.</div><div class='add'>+ */</div><div class='add'>+void rb_jump_tag(int state);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Calls `initialize`  method of the  passed object with the  passed arguments.</div><div class='add'>+ * It also forwards the implicitly passed block to the method.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Receiver object.</div><div class='add'>+ * @param[in]  argc           Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv           Passed as-is to `obj.initialize`.</div><div class='add'>+ * @exception  rb_eException  Any exceptions happen inside.</div><div class='add'>+ */</div><div class='add'>+void rb_obj_call_init(VALUE obj, int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_obj_call_init(), except you  can specify how to  handle the</div><div class='add'>+ * last element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj                Receiver object.</div><div class='add'>+ * @param[in]  argc               Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv               Passed as-is to `obj.initialize`.</div><div class='add'>+ * @param[in]  kw_splat           Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS             `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS           `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS    it depends if there is a passed block.</div><div class='add'>+ * @exception  rb_eNoMethodError  No such method.</div><div class='add'>+ * @exception  rb_eException      Any exceptions happen inside.</div><div class='add'>+ */</div><div class='add'>+void rb_obj_call_init_kw(VALUE, int, const VALUE*, int);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_frame_this_func(), except it  returns the named used to call</div><div class='add'>+ * the method.</div><div class='add'>+ *</div><div class='add'>+ * @retval  0          There is no method (e.g. toplevel context).</div><div class='add'>+ * @retval  otherwise  The name of the current method.</div><div class='add'>+ */</div><div class='add'>+ID rb_frame_callee(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Constructs  an exception  object from  the list  of arguments,  in a  manner</div><div class='add'>+ * similar to Ruby's `raise`.  This function can take:</div><div class='add'>+ *</div><div class='add'>+ *   - No arguments  at all,  i.e. `argc  == 0`.   This is  not a  failure.  It</div><div class='add'>+ *     returns ::RUBY_Qnil then.</div><div class='add'>+ *</div><div class='add'>+ *   - An  object, which  is  an instance  of ::rb_cString.   In  this case  an</div><div class='add'>+ *     instance of  ::rb_eRuntimeError whose  message is  the passed  string is</div><div class='add'>+ *     created then returned.</div><div class='add'>+ *</div><div class='add'>+ *   - An  object, which  responds to  `exception` method,  and optionally  its</div><div class='add'>+ *     argument,  and  optionally  its  backtrace.  For  example  instances  of</div><div class='add'>+ *     subclasses of ::rb_eException  have this method.  What  is returned from</div><div class='add'>+ *     the method is returned.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc           Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv           0 up to 3 objects.</div><div class='add'>+ * @exception  rb_eArgError   Wrong `argc`.</div><div class='add'>+ * @exception  rb_eTypeError  `argv[0].exception` returned non-exception.</div><div class='add'>+ * @return     An instance of a subclass of ::rb_eException.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Historically  this was  _the_  way  `raise` converted  its  arguments to  an</div><div class='add'>+ * exception.  However they diverged.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_make_exception(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/* eval_jump.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Registers a function  that shall run on process  exit.  Registered functions</div><div class='add'>+ * run in  reverse-chronological order,  mixed with  syntactic `END`  block and</div><div class='add'>+ * `Kernel#at_exit`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  func  Function to run at process exit.</div><div class='add'>+ * @param[in]  arg   Passed as-is to `func`.</div><div class='add'>+ */</div><div class='add'>+void rb_set_end_proc(void (*func)(VALUE arg), VALUE arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_EVAL_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/file.h b/include/ruby/internal/intern/file.h<br/>new file mode 100644<br/>index 0000000000..79820fdc61<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/file.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/file.h</a></div><div class='hunk'>@@ -0,0 +1,213 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_FILE_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_FILE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cFile.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* file.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_file_expand_path(), except how arguments are passed.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc                Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv                Filename, and base directory, in that order.</div><div class='add'>+ * @exception  rb_eArgError        Wrong `argc`.</div><div class='add'>+ * @exception  rb_eTypeError       Non-string passed.</div><div class='add'>+ * @exception  rb_eEncCompatError  No conversion from arguments to a path.</div><div class='add'>+ * @return     Expanded path.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It seems nobody actually uses this function right now.  Maybe delete it?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_file_s_expand_path(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_file_absolute_path(),  except  it additionally  understands</div><div class='add'>+ * `~`.  If a given pathname starts  with `~someone/`, that part expands to the</div><div class='add'>+ * user's home directory (or that of current process' owner's in case of `~/`).</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fname               Relative file name.</div><div class='add'>+ * @param[in]  dname               Lookup  base  directory  name,  or  in  case</div><div class='add'>+ *                                 ::RUBY_Qnil is  passed the  process' current</div><div class='add'>+ *                                 working directory is assumed.</div><div class='add'>+ * @exception  rb_eArgError        Home directory is not absolute.</div><div class='add'>+ * @exception  rb_eTypeError       Non-string passed.</div><div class='add'>+ * @exception  rb_eEncCompatError  No conversion from arguments to a path.</div><div class='add'>+ * @return     Expanded path.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_file_expand_path(VALUE fname, VALUE dname);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_file_absolute_path(), except how arguments are passed.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc                Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv                Filename, and base directory, in that order.</div><div class='add'>+ * @exception  rb_eArgError        Wrong `argc`.</div><div class='add'>+ * @exception  rb_eTypeError       Non-string passed.</div><div class='add'>+ * @exception  rb_eEncCompatError  No conversion from arguments to a path.</div><div class='add'>+ * @return     Expanded path.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It seems nobody actually uses this function right now.  Maybe delete it?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_file_s_absolute_path(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Maps a  relative path  to its absolute  representation.  Relative  paths are</div><div class='add'>+ * referenced  from the  passed directory  name, or  from the  process' current</div><div class='add'>+ * working directory in case ::RUBY_Qnil is passed.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fname               Relative file name.</div><div class='add'>+ * @param[in]  dname               Lookup  base  directory  name,  or  in  case</div><div class='add'>+ *                                 ::RUBY_Qnil is  passed the  process' current</div><div class='add'>+ *                                 working directory is assumed.</div><div class='add'>+ * @exception  rb_eArgError        Strings contain NUL bytes.</div><div class='add'>+ * @exception  rb_eTypeError       Non-string passed.</div><div class='add'>+ * @exception  rb_eEncCompatError  No conversion from arguments to a path.</div><div class='add'>+ * @return     Expanded path.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_file_absolute_path(VALUE fname, VALUE dname);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Strips a file path's last component  (and trailing separators if any).  This</div><div class='add'>+ * function is relatively  simple on POSIX environments; just  splits the input</div><div class='add'>+ * with  `/`, strips  the  last one,  if something  remains  joins them  again,</div><div class='add'>+ * otherwise the return value is `"."`.   However when it comes to Windows this</div><div class='add'>+ * function is  quite very  much complicated.   We have to  take UNC  etc. into</div><div class='add'>+ * account.  So for instance `"C:foo"`'s dirname is `"C:."`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fname               File name to strip.</div><div class='add'>+ * @exception  rb_eTypeError       `fname` is not a String.</div><div class='add'>+ * @exception  rb_eArgError        `fname` contains NUL bytes.</div><div class='add'>+ * @exception  rb_eEncCompatError  `fname`'s encoding is not path-compat.</div><div class='add'>+ * @return     A dirname of `fname`.</div><div class='add'>+ * @note       This is a "pure" operation;  it computes the return value solely</div><div class='add'>+ *             from the passed object and never does any file IO.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_file_dirname(VALUE fname);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Resolves a  feature's path.  This  function takes for instance  `"json"` and</div><div class='add'>+ * `[".so", ".rb"]`,  and iterates  over the  `$LOAD_PATH` to  see if  there is</div><div class='add'>+ * either `json.so` or `json.rb` in the directory.</div><div class='add'>+ *</div><div class='add'>+ * This is not what everything `require`  does, but at least `require` is built</div><div class='add'>+ * on top of it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  feature             File to search, and return buffer.</div><div class='add'>+ * @param[in]      exts                List of file extensions.</div><div class='add'>+ * @exception      rb_eTypeError       `feature` is not a String.</div><div class='add'>+ * @exception      rb_eArgError        `feature` contains NUL bytes.</div><div class='add'>+ * @exception      rb_eEncCompatError  `feature`'s encoding is not path-compat.</div><div class='add'>+ * @retval         0                   Not found</div><div class='add'>+ * @retval         otherwise           Found index in `ext`, plus one.</div><div class='add'>+ * @post           `*feature` is a resolved path.</div><div class='add'>+ */</div><div class='add'>+int rb_find_file_ext(VALUE *feature, const char *const *exts);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_find_file_ext(),  except it  takes  a feature  name and  is</div><div class='add'>+ * extension  at once,  e.g. `"json.rb"`.   This  difference is  much like  how</div><div class='add'>+ * `require` and `load` are different.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path                A path relative to `$LOAD_PATH`.</div><div class='add'>+ * @exception  rb_eTypeError       `path` is not a String.</div><div class='add'>+ * @exception  rb_eArgError        `path` contains NUL bytes.</div><div class='add'>+ * @exception  rb_eEncCompatError  `path`'s encoding is not path-compat.</div><div class='add'>+ * @return     Expanded path.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_find_file(VALUE path);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  if  the  given path  is  either  a  directory,  or a  symlink  that</div><div class='add'>+ * (potentially recursively) points to such thing.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  _                   Ignored (why...?)</div><div class='add'>+ * @param[in]  path                String,  or IO.   In  case of  IO it  issues</div><div class='add'>+ *                                 `fstat(2)` instead of `stat(2)`.</div><div class='add'>+ * @exception  rb_eFrozenError     `path` is a frozen IO (why...?)</div><div class='add'>+ * @exception  rb_eTypeError       `path` is neither String nor IO.</div><div class='add'>+ * @exception  rb_eArgError        `path` contains NUL bytes.</div><div class='add'>+ * @exception  rb_eEncCompatError  `path`'s encoding is not path-compat.</div><div class='add'>+ * @retval     RUBY_Qtrue          `path` is a directory.</div><div class='add'>+ * @retval     RUBY_Qfalse         Otherwise.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_file_directory_p(VALUE _, VALUE path);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts a  string into an  "OS Path" encoding,  if any.  In  most operating</div><div class='add'>+ * systems there are  no such things like per-OS default  encoding of filename.</div><div class='add'>+ * For them this  function is no-op.  However most notably  on MacOS, pathnames</div><div class='add'>+ * are UTF-8 encoded.  It converts the given string into such encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path                An instance of ::rb_cString.</div><div class='add'>+ * @exception  rb_eEncCompatError  `path`'s encoding is not path-compat.</div><div class='add'>+ * @return     `path`'s contents converted to the OS' path encoding.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_encode_ospath(VALUE path);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the given path is an  absolute path.  On POSIX environments it is</div><div class='add'>+ * as easy  as `path[0]  == '/'`.   However on Windows,  drive letters  and UNC</div><div class='add'>+ * paths are also taken into account.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path  A possibly relative path string.</div><div class='add'>+ * @retval     1     `path` is absolute.</div><div class='add'>+ * @retval     0     `path` is relative.</div><div class='add'>+ */</div><div class='add'>+int rb_is_absolute_path(const char *path);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the file  size  of the  given file.   Because  this function  calls</div><div class='add'>+ * `fstat(2)`  internally, it  is  a failure  to  pass a  closed  file to  this</div><div class='add'>+ * function.</div><div class='add'>+ *</div><div class='add'>+ * This function flushes the passed file's buffer if any.  Can take time.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   file                 A file object.</div><div class='add'>+ * @exception   rb_eFrozenError      `file` is frozen.</div><div class='add'>+ * @exception   rb_eIOError          `file` is closed.</div><div class='add'>+ * @exception   rb_eSystemCallError  Permission denied etc.</div><div class='add'>+ * @exception   rb_eNoMethodError    The given non-file object doesn't respond</div><div class='add'>+ *                                   to `#size`.</div><div class='add'>+ * @return      The size of the passed file.</div><div class='add'>+ * @note        Passing a non-regular file such as a UNIX domain socket to this</div><div class='add'>+ *              function  is   not  a  failure.    But  the  return   value  is</div><div class='add'>+ *              unpredictable.  POSIX's `&lt;sys/stat.h&gt;` states  that "the use of</div><div class='add'>+ *              this field is unspecified" then.</div><div class='add'>+ */</div><div class='add'>+rb_off_t rb_file_size(VALUE file);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_FILE_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/gc.h b/include/ruby/internal/intern/gc.h<br/>new file mode 100644<br/>index 0000000000..2ee1d257db<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/gc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/gc.h</a></div><div class='hunk'>@@ -0,0 +1,392 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_GC_H                           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_GC_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_mGC.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;                       /* size_t */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SYS_TYPES_H</div><div class='add'>+# include &lt;sys/types.h&gt;                    /* ssize_t */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/cold.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* gc.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_COLD()</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Triggers out-of-memory error.  If  possible it raises ::rb_eNoMemError.  But</div><div class='add'>+ * because  we are  running out  of  memory that  is not  always doable.   This</div><div class='add'>+ * function tries hard to show something, but ultimately can die silently.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eNoMemError  Raises it if possible.</div><div class='add'>+ */</div><div class='add'>+void rb_memerror(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the GC is busy.</div><div class='add'>+ *</div><div class='add'>+ * @retval  0  It isn't.</div><div class='add'>+ * @retval  1  It is.</div><div class='add'>+ */</div><div class='add'>+int rb_during_gc(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Marks  objects between  the two  pointers.  This  is one  of the  GC utility</div><div class='add'>+ * functions    that   you    can    call   when    you    design   your    own</div><div class='add'>+ * ::rb_data_type_struct::dmark.</div><div class='add'>+ *</div><div class='add'>+ * @pre         Continuous memory region  from `start` to `end`  shall be fully</div><div class='add'>+ *              addressable.</div><div class='add'>+ * @param[out]  start  Pointer to an array of objects.</div><div class='add'>+ * @param[out]  end    Pointer that terminates the array of objects.</div><div class='add'>+ * @post        Objects from `start` (included) to `end` (excluded) are marked.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * `end` can be NULL...  But that just results in no-op.</div><div class='add'>+ */</div><div class='add'>+void rb_gc_mark_locations(const VALUE *start, const VALUE *end);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_mark_hash(), except it marks  only values of the  table and</div><div class='add'>+ * leave  their  associated keys  unmarked.  This  is  one  of the  GC  utility</div><div class='add'>+ * functions    that   you    can    call   when    you    design   your    own</div><div class='add'>+ * ::rb_data_type_struct::dmark.</div><div class='add'>+ *</div><div class='add'>+ * @warning    Of course it can break GC.  Leave it unused if unsure.</div><div class='add'>+ * @param[in]  tbl  A table to mark.</div><div class='add'>+ * @post       Values stored in `tbl` are marked.</div><div class='add'>+ */</div><div class='add'>+void rb_mark_tbl(struct st_table *tbl);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical    to   rb_mark_tbl(),    except    it    marks   objects    using</div><div class='add'>+ * rb_gc_mark_movable().  This is one of the  GC utility functions that you can</div><div class='add'>+ * call when you design your own ::rb_data_type_struct::dmark.</div><div class='add'>+ *</div><div class='add'>+ * @warning    Of course it can break GC.  Leave it unused if unsure.</div><div class='add'>+ * @param[in]  tbl  A table to mark.</div><div class='add'>+ * @post       Values stored in `tbl` are marked.</div><div class='add'>+ */</div><div class='add'>+void rb_mark_tbl_no_pin(struct st_table *tbl);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_mark_hash(), except  it marks  only keys  of the  table and</div><div class='add'>+ * leave  their associated  values unmarked.   This is  one of  the GC  utility</div><div class='add'>+ * functions    that   you    can    call   when    you    design   your    own</div><div class='add'>+ * ::rb_data_type_struct::dmark.</div><div class='add'>+ *</div><div class='add'>+ * @warning    Of course it can break GC.  Leave it unused if unsure.</div><div class='add'>+ * @param[in]  tbl  A table to mark.</div><div class='add'>+ * @post       Keys stored in `tbl` are marked.</div><div class='add'>+ */</div><div class='add'>+void rb_mark_set(struct st_table *tbl);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Marks keys and values  associated inside of the given table.  This is one of</div><div class='add'>+ * the  GC  utility functions  that  you  can call  when  you  design your  own</div><div class='add'>+ * ::rb_data_type_struct::dmark.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  tbl  A table to mark.</div><div class='add'>+ * @post       Objects stored in `tbl` are marked.</div><div class='add'>+ */</div><div class='add'>+void rb_mark_hash(struct st_table *tbl);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Updates  references  inside  of  tables.   After  you  marked  values  using</div><div class='add'>+ * rb_mark_tbl_no_pin(), the  objects inside  of the table  could of  course be</div><div class='add'>+ * moved.  This function is to fixup  those references.  You can call this from</div><div class='add'>+ * your ::rb_data_type_struct::dcompact.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ptr  A table that potentially includes moved references.</div><div class='add'>+ * @post        Moved references, if any, are corrected.</div><div class='add'>+ */</div><div class='add'>+void rb_gc_update_tbl_refs(st_table *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_gc_mark(),  except  it   allows  the  passed  value  be  a</div><div class='add'>+ * non-object.  For instance  pointers to different type of  memory regions are</div><div class='add'>+ * allowed here.   Such values  are silently  ignored.  This is  one of  the GC</div><div class='add'>+ * utility   functions  that   you  can   call   when  you   design  your   own</div><div class='add'>+ * ::rb_data_type_struct::dmark.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj  A possible object.</div><div class='add'>+ * @post        `obj` is marked, if possible.</div><div class='add'>+ */</div><div class='add'>+void rb_gc_mark_maybe(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Marks an object.  This is one of  the GC utility functions that you can call</div><div class='add'>+ * when you design your own ::rb_data_type_struct::dmark.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj  Arbitrary Ruby object.</div><div class='add'>+ * @post        `obj` is marked.</div><div class='add'>+ */</div><div class='add'>+void rb_gc_mark(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Maybe this  is the only  function provided for  C extensions to  control the</div><div class='add'>+ * pinning of objects, so  let us describe it in detail.   These days Ruby's GC</div><div class='add'>+ * is copying.  As far as an object's physical address is guaranteed unused, it</div><div class='add'>+ * can move  around the object space.   Our GC engine rearranges  these objects</div><div class='add'>+ * after it  reclaims unreachable objects  from our  object space, so  that the</div><div class='add'>+ * space  is   compact  (improves  memory   locality).   This  is   called  the</div><div class='add'>+ * "compaction" phase, and works  well most of the time... as  far as there are</div><div class='add'>+ * no C  extensions.  C  extensions complicate the  scenario because  Ruby core</div><div class='add'>+ * cannot detect  any use  of the  physical address  of an  object inside  of C</div><div class='add'>+ * functions.  In order to prevent  memory corruptions, objects observable from</div><div class='add'>+ * C extensions are "pinned"; they stick to where they are born until they die,</div><div class='add'>+ * just in  case any C  extensions touch their  raw pointers.  This  variant of</div><div class='add'>+ * scheme  is   called  "Mostly-Copying"  garbage  collector.    Authors  of  C</div><div class='add'>+ * extensions,  however,   can  extremely   carefully  write  them   to  become</div><div class='add'>+ * compaction-aware.  To do so avoid referring  to a Ruby object from inside of</div><div class='add'>+ * your struct  in the  first place.   But if  that is  not possible,  use this</div><div class='add'>+ * function  from your  ::rb_data_type_struct::dmark  then.   This way  objects</div><div class='add'>+ * marked using it are  considered movable.  If you chose this  way you have to</div><div class='add'>+ * manually fix up locations of such moved pointers using rb_gc_location().</div><div class='add'>+ *</div><div class='add'>+ * @see  Bartlett,  Joel  F.,  "Compacting Garbage  Collection  with  Ambiguous</div><div class='add'>+ *       Roots",  ACM  SIGPLAN  Lisp  Pointers  Volume  1  Issue  6  pp.  3-12,</div><div class='add'>+ *       April-May-June, 1988. https://doi.org/10.1145/1317224.1317225</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Object that is movable.</div><div class='add'>+ * @post       Values stored in `tbl` are marked.</div><div class='add'>+ */</div><div class='add'>+void rb_gc_mark_movable(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Finds a new "location" of an object.   An object can be moved on compaction.</div><div class='add'>+ * This function projects  its new abode, or just returns  the passed object if</div><div class='add'>+ * not moved.  This is  one of the GC utility functions that  you can call when</div><div class='add'>+ * you design your own ::rb_data_type_struct::dcompact.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  An object, possibly already moved to somewhere else.</div><div class='add'>+ * @return     An object, which holds the current contents of former `obj`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_gc_location(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts  that the  passed  object is  no longer  needed.   Such objects  are</div><div class='add'>+ * reclaimed sooner or later so this  function is not mandatory.  But sometimes</div><div class='add'>+ * you can know  from your application knowledge that an  object is surely dead</div><div class='add'>+ * at some point.  Calling this as a hint can be a polite way.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj  Object, dead.</div><div class='add'>+ * @pre         `obj` have never been passed to this function before.</div><div class='add'>+ * @post        `obj` could be invalidated.</div><div class='add'>+ * @warning     It  is a  failure  to pass  an object  multiple  times to  this</div><div class='add'>+ *              function.</div><div class='add'>+ * @deprecated  This is now a no-op function.</div><div class='add'>+ */</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("this is now a no-op function"))</div><div class='add'>+void rb_gc_force_recycle(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Triggers a GC process.  This was the only  GC entry point that we had at the</div><div class='add'>+ * beginning.  Over time our GC evolved.  Now what this function does is just a</div><div class='add'>+ * very  simplified  variation  of  the  entire GC  algorithms.   A  series  of</div><div class='add'>+ * procedures kicked by this API is called a "full" GC.</div><div class='add'>+ *</div><div class='add'>+ *   - It immediately scans the entire object space to sort the dead.</div><div class='add'>+ *   - It immediately reclaims any single dead bodies to reuse later.</div><div class='add'>+ *</div><div class='add'>+ * It is worth  noting that the procedures above do  not include evaluations of</div><div class='add'>+ * finalisers.  They run later.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Finalisers   are   deferred   until   we   can   handle   interrupts.    See</div><div class='add'>+ * `rb_postponed_job_flush` in vm_trace.c.</div><div class='add'>+ *</div><div class='add'>+ * Of course there are  GC that are not "full".  For instance  this one and the</div><div class='add'>+ * GC  which  runs when  we  are  running out  of  memory  are different.   See</div><div class='add'>+ * `gc_profile_record_flag` defined in gc.c for the kinds of GC.</div><div class='add'>+ *</div><div class='add'>+ * In spite of the name this is not  what everything that a GC can trigger.  As</div><div class='add'>+ * of writing  it seems this  function does  not trigger compaction.   But this</div><div class='add'>+ * might change in future.</div><div class='add'>+ */</div><div class='add'>+void rb_gc(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Copy&amp;paste an object's finaliser to another.   This is one of the GC utility</div><div class='add'>+ * functions  that you  can call  when you  design your  own `initialize_copy`,</div><div class='add'>+ * `initialize_dup`, `initialize_clone`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst  Destination object.</div><div class='add'>+ * @param[in]   src  Source object.</div><div class='add'>+ * @post        `dst` and `src` share the same finaliser.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * But isn't it  easier for you to call super,  and let `Object#initialize_copy`</div><div class='add'>+ * call this function instead?</div><div class='add'>+ */</div><div class='add'>+void rb_gc_copy_finalizer(VALUE dst, VALUE src);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * (Re-) enables GC.  This makes sense only after you called rb_gc_disable().</div><div class='add'>+ *</div><div class='add'>+ * @retval  RUBY_Qtrue   GC was disabled before.</div><div class='add'>+ * @retval  RUBY_Qfalse  GC was enabled before.</div><div class='add'>+ * @post    GC is enabled.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This is  one of  such exceptional  functions that does  not raise  both Ruby</div><div class='add'>+ * exceptions and C++ exceptions.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_gc_enable(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Disables GC.   This prevents automatic GC  runs when the process  is running</div><div class='add'>+ * out of memory.  Such situations shall result in rb_memerror().  However this</div><div class='add'>+ * does not  prevent users from  manually invoking rb_gc().  That  should work.</div><div class='add'>+ * People  abused this  by disabling  GC  at the  beginning of  an event  loop,</div><div class='add'>+ * process events without GC overheads,  then manually force reclaiming garbage</div><div class='add'>+ * at the bottom of the loop.  However  because our GC is now much smarter than</div><div class='add'>+ * just calling rb_gc(), this technique is proven to be sub-optimal these days.</div><div class='add'>+ * It  is  believed that  there  is  currently  practically  no needs  of  this</div><div class='add'>+ * function.</div><div class='add'>+ *</div><div class='add'>+ * @retval  RUBY_Qtrue   GC was disabled before.</div><div class='add'>+ * @retval  RUBY_Qfalse  GC was enabled before.</div><div class='add'>+ * @post    GC is disabled.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_gc_disable(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_gc(), except the return value.</div><div class='add'>+ *</div><div class='add'>+ * @return  Always returns ::RUBY_Qnil.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_gc_start(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Assigns a finaliser for an object.  Each objects can have objects (typically</div><div class='add'>+ * blocks)  that run  immediately  after  that object  dies.   They are  called</div><div class='add'>+ * finalisers of an object.  This function associates a finaliser object with a</div><div class='add'>+ * target object.</div><div class='add'>+ *</div><div class='add'>+ * @note  Note that finalisers run _after_  the object they finalise dies.  You</div><div class='add'>+ *        cannot for instance call its methods.</div><div class='add'>+ * @note  If  your finaliser  references the  object it  finalises that  object</div><div class='add'>+ *        loses any chance to become  a garbage; effectively leaks memory until</div><div class='add'>+ *        the end of the process.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj               Target to finalise.</div><div class='add'>+ * @param[in]  block             Something `call`able.</div><div class='add'>+ * @exception  rb_eRuntimeError  Somehow `obj` cannot have finalisers.</div><div class='add'>+ * @exception  rb_eFrozenError   `obj` is frozen.</div><div class='add'>+ * @exception  rb_eArgError      `block` doesn't respond to `call`.</div><div class='add'>+ * @return     The passed `block`.</div><div class='add'>+ * @post       `block` runs after `obj` dies.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_define_finalizer(VALUE obj, VALUE block);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Modifies the object so  that it has no finalisers at  all.  This function is</div><div class='add'>+ * mainly provided for symmetry.  No practical usages can be thought of.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj               Object to clear its finalisers.</div><div class='add'>+ * @exception   rb_eFrozenError  `obj` is frozen.</div><div class='add'>+ * @return      The passed `obj`.</div><div class='add'>+ * @post        `obj` has no finalisers.</div><div class='add'>+ * @note        There is no way to undefine  a specific part of many finalisers</div><div class='add'>+ *              that `obj` could have.  All you can do is to clear them all.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_undefine_finalizer(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_gc_stat(), with "count" parameter.</div><div class='add'>+ *</div><div class='add'>+ * @return  Lifetime total number of runs of GC.</div><div class='add'>+ */</div><div class='add'>+size_t rb_gc_count(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Obtains various GC  related profiles.  The parameter can be  either a Symbol</div><div class='add'>+ * or a  Hash.  If  a Hash is  passed, it is  filled with  everything currently</div><div class='add'>+ * available.  If a Symbol is passed just that portion is returned.</div><div class='add'>+ *</div><div class='add'>+ * Possible  variations of  keys  you  can pass  here  change  from version  to</div><div class='add'>+ * version.  You can  get the list of  known keys by passing an  empty hash and</div><div class='add'>+ * let it be filled.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  key_or_buf       A Symbol, or a Hash.</div><div class='add'>+ * @exception      rb_eTypeError    Neither Symbol nor Hash.</div><div class='add'>+ * @exception      rb_eFrozenError  Frozen hash is passed.</div><div class='add'>+ * @return         In  case a  Hash  is  passed it  returns  0.  Otherwise  the</div><div class='add'>+ *                 profile value associated with the given key is returned.</div><div class='add'>+ * @post           In case a Hash is passed it is filled with values.</div><div class='add'>+ */</div><div class='add'>+size_t rb_gc_stat(VALUE key_or_buf);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Obtains various  info regarding the most  recent GC run.  This  includes for</div><div class='add'>+ * instance the reason  of the GC.  The  parameter can be either a  Symbol or a</div><div class='add'>+ * Hash.   If  a  Hash  is  passed, it  is  filled  with  everything  currently</div><div class='add'>+ * available.  If a Symbol is passed just that portion is returned.</div><div class='add'>+ *</div><div class='add'>+ * Possible  variations of  keys  you  can pass  here  change  from version  to</div><div class='add'>+ * version.  You can  get the list of  known keys by passing an  empty hash and</div><div class='add'>+ * let it be filled.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  key_or_buf       A Symbol, or a Hash.</div><div class='add'>+ * @exception      rb_eTypeError    Neither Symbol nor Hash.</div><div class='add'>+ * @exception      rb_eFrozenError  Frozen hash is passed.</div><div class='add'>+ * @return         In case  a Hash is  passed it returns that  hash.  Otherwise</div><div class='add'>+ *                 the profile value associated with the given key is returned.</div><div class='add'>+ * @post           In case a Hash is passed it is filled with values.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_gc_latest_gc_info(VALUE key_or_buf);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Informs that  there are  external memory  usages.  Our GC  runs when  we are</div><div class='add'>+ * running out of memory.  The amount of memory, however, can increase/decrease</div><div class='add'>+ * behind-the-scene.  For  instance DLLs can allocate  memories using `mmap(2)`</div><div class='add'>+ * etc, which  are opaque to  us.  Registering such external  allocations using</div><div class='add'>+ * this function enables  proper detection of how much memories  an object used</div><div class='add'>+ * as a whole.  That will trigger GCs  more often than it would otherwise.  You</div><div class='add'>+ * can  also  pass  negative  numbers  here, to  indicate  that  such  external</div><div class='add'>+ * allocations are gone.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  diff  Amount of memory increased(+)/decreased(-).</div><div class='add'>+ */</div><div class='add'>+void rb_gc_adjust_memory_usage(ssize_t diff);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_GC_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/hash.h b/include/ruby/internal/intern/hash.h<br/>new file mode 100644<br/>index 0000000000..af8dfd5d8f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/hash.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/hash.h</a></div><div class='hunk'>@@ -0,0 +1,320 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_HASH_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_HASH_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cHash.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* hash.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_st_foreach(), except it  raises exceptions when the callback</div><div class='add'>+ * function tampers the table during iterating over it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  st                Table to iterate over.</div><div class='add'>+ * @param[in]  func              Callback function to apply.</div><div class='add'>+ * @param[in]  arg               Passed as-is to `func`.</div><div class='add'>+ * @exception  rb_eRuntimeError  `st` was tampered during iterating.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This is declared here because exceptions are Ruby level concept.</div><div class='add'>+ *</div><div class='add'>+ * This is in fact a very thin wrapper of rb_st_foreach_check().</div><div class='add'>+ */</div><div class='add'>+void rb_st_foreach_safe(struct st_table *st, st_foreach_callback_func *func, st_data_t arg);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_st_foreach_safe} */</div><div class='add'>+#define st_foreach_safe rb_st_foreach_safe</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Try  converting an  object to  its hash  representation using  its `to_hash`</div><div class='add'>+ * method, if any.  If there is no such thing, returns ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Arbitrary ruby object to convert.</div><div class='add'>+ * @exception  rb_eTypeError  `obj.to_hash` returned something non-Hash.</div><div class='add'>+ * @retval     RUBY_Qnil      No conversion from `obj` to hash defined.</div><div class='add'>+ * @retval     otherwise      Converted hash representation of `obj`.</div><div class='add'>+ * @see        rb_io_check_io</div><div class='add'>+ * @see        rb_check_array_type</div><div class='add'>+ * @see        rb_check_string_type</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * There   is  no   rb_hash_to_hash()   that   analogous  to   rb_str_to_str().</div><div class='add'>+ * Intentional or ...?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_check_hash_type(VALUE obj);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Iterates   over  a   hash.   This   basically   does  the   same  thing   as</div><div class='add'>+ * rb_st_foreach().  But because the passed hash is a Ruby object, its keys and</div><div class='add'>+ * values are both Ruby objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  hash              An instance of ::rb_cHash to iterate over.</div><div class='add'>+ * @param[in]  func              Callback function to yield.</div><div class='add'>+ * @param[in]  arg               Passed as-is to `func`.</div><div class='add'>+ * @exception  rb_eRuntimeError  `hash` was tampered during iterating.</div><div class='add'>+ */</div><div class='add'>+void rb_hash_foreach(VALUE hash, int (*func)(VALUE key, VALUE val, VALUE arg), VALUE arg);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Calculates a message  authentication code of the passed  object.  The return</div><div class='add'>+ * value is  a very small  integer used as  an index of a  key of a  table.  In</div><div class='add'>+ * order  to calculate  the value  this function  calls `#hash`  method of  the</div><div class='add'>+ * passed  object.  Ruby  provides you  a default  implementation.  But  if you</div><div class='add'>+ * implement  your class  in C,  that  default implementation  cannot know  the</div><div class='add'>+ * underlying data structure.  You must implement your own `#hash` method then,</div><div class='add'>+ * which  must return  an integer  of  uniform distribution  in a  sufficiently</div><div class='add'>+ * instant manner.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Arbitrary Ruby object.</div><div class='add'>+ * @exception  rb_eTypeError  `obj.hash` returned something non-Integer.</div><div class='add'>+ * @return     A small integer.</div><div class='add'>+ * @note       `#hash` can return very big integers, but they get truncated.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a new, empty hash object.</div><div class='add'>+ *</div><div class='add'>+ * @return  An allocated new instance of ::rb_cHash.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_new(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_hash_new(), except it additionally specifies how many keys</div><div class='add'>+ * it is expected to contain. This way you can create a hash that is large enough</div><div class='add'>+ * for your need. For large hashes it means it won't need to be reallocated and</div><div class='add'>+ * rehashed as much, improving performance.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  capa  Designed capacity of the hash.</div><div class='add'>+ * @return     An empty Hash, whose capacity is `capa`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_new_capa(long capa);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Duplicates a hash.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  hash  An instance of ::rb_cHash.</div><div class='add'>+ * @return     An  allocated new  instance  of ::rb_cHash,  whose contents  are</div><div class='add'>+ *             a verbatim copy of from `hash`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_dup(VALUE hash);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_obj_freeze} */</div><div class='add'>+VALUE rb_hash_freeze(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the given key  in the given hash table.  If there is  the key in the</div><div class='add'>+ * hash, returns the  value associated with the key.  Otherwise  it returns the</div><div class='add'>+ * "default" value (defined per hash table).</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  hash  Hash table to look into.</div><div class='add'>+ * @param[in]  key   Hash key to look for.</div><div class='add'>+ * @return     Either the value associated with the  key, or the default one if</div><div class='add'>+ *             absent.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_aref(VALUE hash, VALUE key);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_hash_aref(),  except  it always  returns  ::RUBY_Qnil  for</div><div class='add'>+ * misshits.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  hash  Hash table to look into.</div><div class='add'>+ * @param[in]  key   Hash key to look for.</div><div class='add'>+ * @return     Either  the value  associated with  the key,  or ::RUBY_Qnil  if</div><div class='add'>+ *             absent.</div><div class='add'>+ * @note       A hash can  store ::RUBY_Qnil as an ordinary  value.  You cannot</div><div class='add'>+ *             distinguish whether the  key is missing, or  just its associated</div><div class='add'>+ *             value happens to be ::RUBY_Qnil, as far as you use this API.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_lookup(VALUE hash, VALUE key);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_hash_lookup(),  except you  can specify  what to  return on</div><div class='add'>+ * misshits.  This is much like 2-arguments version of `Hash#fetch`.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * VALUE hash;</div><div class='add'>+ * VALUE key;</div><div class='add'>+ * VALUE tmp = rb_obj_alloc(rb_cObject);</div><div class='add'>+ * VALUE val = rb_hash_lookup2(hash, key, tmp);</div><div class='add'>+ * if (val == tmp) {</div><div class='add'>+ *     printf("misshit");</div><div class='add'>+ * }</div><div class='add'>+ * else {</div><div class='add'>+ *     printf("hit");</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  hash       Hash table to look into.</div><div class='add'>+ * @param[in]  key        Hash key to look for.</div><div class='add'>+ * @param[in]  def        Default value.</div><div class='add'>+ * @retval     def        `hash` does not have `key`.</div><div class='add'>+ * @retval     otherwise  The value associated with `key`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_lookup2(VALUE hash, VALUE key, VALUE def);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_hash_lookup(),  except  it yields  the (implicitly)  passed</div><div class='add'>+ * block instead of returning ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  hash          Hash table to look into.</div><div class='add'>+ * @param[in]  key           Hash key to look for.</div><div class='add'>+ * @exception  rb_eKeyError  No block given.</div><div class='add'>+ * @return     Either  the value  associated with  the key,  or what  the block</div><div class='add'>+ *             evaluates to if absent.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_fetch(VALUE hash, VALUE key);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Inserts or replaces ("upsert"s) the objects into the given hash table.  This</div><div class='add'>+ * basically associates the  given value with the given key.   On duplicate key</div><div class='add'>+ * this function updates its associated value with the given one.  Otherwise it</div><div class='add'>+ * inserts the association at the end of the table.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  hash             Target hash table to modify.</div><div class='add'>+ * @param[in]   key              Arbitrary Ruby object.</div><div class='add'>+ * @param[in]   val              A value to be associated with `key`.</div><div class='add'>+ * @exception   rb_eFrozenError  `hash` is frozen.</div><div class='add'>+ * @return      The passed `val`</div><div class='add'>+ * @post        `val` is associated with `key` in `hash`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Swipes everything out of the passed hash table.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  hash             Target to clear.</div><div class='add'>+ * @exception   rb_eFrozenError  `hash`is frozen.</div><div class='add'>+ * @return      The passed `hash`</div><div class='add'>+ * @post        `hash` has no contents.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_clear(VALUE hash);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Deletes each entry for which the block  returns a truthy value.  If there is</div><div class='add'>+ * no block given, it returns an enumerator that does the thing.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  hash             Target hash to modify.</div><div class='add'>+ * @exception   rb_eFrozenError  `hash` is frozen.</div><div class='add'>+ * @retval      hash             The hash is modified.</div><div class='add'>+ * @retval      otherwise        An instance of ::rb_cEnumerator that does it.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_delete_if(VALUE hash);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Deletes the passed key from the passed hash table, if any.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  hash       Target hash to modify.</div><div class='add'>+ * @param[in]   key        Key to delete.</div><div class='add'>+ * @retval      RUBY_Qnil  `hash` has no such key as `key`.</div><div class='add'>+ * @retval      otherwise  What was associated with `key`.</div><div class='add'>+ * @post        `hash` has no such key as `key`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_delete(VALUE hash, VALUE key);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Inserts  a list  of  key-value pairs  into  a  hash table  at  once.  It  is</div><div class='add'>+ * semantically  identical to  repeatedly  calling rb_hash_aset(),  but can  be</div><div class='add'>+ * faster than that.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   argc  Length of `argv`, must be even.</div><div class='add'>+ * @param[in]   argv  A list of key, value, key, value, ...</div><div class='add'>+ * @param[out]  hash  Target hash table to modify.</div><div class='add'>+ * @post        `hash` has contents from `argv`.</div><div class='add'>+ * @note        `argv` is allowed to be NULL as long as `argc` is zero.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * What happens for  duplicated keys?  Well it silently discards  older ones to</div><div class='add'>+ * accept the newest (rightmost) one.  This behaviour also mimics repeated call</div><div class='add'>+ * of rb_hash_aset().</div><div class='add'>+ */</div><div class='add'>+void rb_hash_bulk_insert(long argc, const VALUE *argv, VALUE hash);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Type of callback functions to pass to rb_hash_update_by().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  newkey  A key of the table.</div><div class='add'>+ * @param[in]  oldkey  Value associated with `key` in hash1.</div><div class='add'>+ * @param[in]  value   Value associated with `key` in hash2.</div><div class='add'>+ * @return     Either one of the passed values to take.</div><div class='add'>+ */</div><div class='add'>+typedef VALUE rb_hash_update_func(VALUE newkey, VALUE oldkey, VALUE value);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively merges two hash tables into one.  It resolves key conflicts by</div><div class='add'>+ * calling the passed function and take its return value.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  hash1             Target hash to be modified.</div><div class='add'>+ * @param[in]   hash2             A hash to merge into `hash1`.</div><div class='add'>+ * @param[in]   func              Conflict reconciler.</div><div class='add'>+ * @exception   rb_eFrozenError   `hash1` is frozen.</div><div class='add'>+ * @exception   rb_eRuntimeError  `hash2` is updated instead.</div><div class='add'>+ * @return      The passed `hash1`.</div><div class='add'>+ * @post        Contents of `hash2` is merged into `hash1`.</div><div class='add'>+ * @note        You can  pass zero to  `func`.  This means values  from `hash2`</div><div class='add'>+ *              are always taken.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func);</div><div class='add'>+</div><div class='add'>+/* file.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This function is mysterious.  What it does is not immediately obvious.  Also</div><div class='add'>+ * what it does seems platform dependent.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path       A local path.</div><div class='add'>+ * @retval     0          The "check" succeeded.</div><div class='add'>+ * @retval     otherwise  The "check" failed.</div><div class='add'>+ */</div><div class='add'>+int rb_path_check(const char *path);</div><div class='add'>+</div><div class='add'>+/* hash.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively removes every environment variables of the running process.</div><div class='add'>+ *</div><div class='add'>+ * @return  The `ENV` object.</div><div class='add'>+ * @post    The process has no environment variables.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_env_clear(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  #RHASH_SIZE(), except  it returns the  size in  Ruby's integer</div><div class='add'>+ * instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  hash  A hash object.</div><div class='add'>+ * @return     The size of the hash.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_hash_size(VALUE hash);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_HASH_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/io.h b/include/ruby/internal/intern/io.h<br/>new file mode 100644<br/>index 0000000000..02c249723e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/io.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/io.h</a></div><div class='hunk'>@@ -0,0 +1,661 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_IO_H                           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_IO_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cIO.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* io.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define rb_defout rb_stdout</div><div class='add'>+</div><div class='add'>+/* string.c */ /* ...why? moved in commit de7161526014b781468cea5d84411e23be */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The field  separator character for  inputs, or  the `$;`.  This  affects how</div><div class='add'>+ * `String#split` works.   You can set this  via the `-F` command  line option.</div><div class='add'>+ * You can  also assign arbitrary  ruby objects programmatically, but  it makes</div><div class='add'>+ * best sense for you to assign a regular expression here.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Tidbit: "fs" comes from AWK's `FS` variable.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN VALUE rb_fs;</div><div class='add'>+</div><div class='add'>+/* io.c */ /* ...why? given rb_fs is in string.c? */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The field  separator character for outputs,  or the `$,`.  This  affects how</div><div class='add'>+ * `Array#join` works.</div><div class='add'>+ *</div><div class='add'>+ * @deprecated Assigning  anything other than  ::RUBY_Qnil to this  variable is</div><div class='add'>+ *             deprecated.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN VALUE rb_output_fs;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The record  separator character for inputs,  or the `$/`.  This  affects how</div><div class='add'>+ * `IO#gets` works.  You can set this via the `-0` command line option.</div><div class='add'>+ *</div><div class='add'>+ * @deprecated Assigning  anything other than  ::RUBY_Qnil to this  variable is</div><div class='add'>+ *             deprecated.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Tidbit: "rs" comes from AWK's `RS` variable.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN VALUE rb_rs;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the default  value of ::rb_rs, i.e. `"\n"`.  It  seems it has always</div><div class='add'>+ * been just a newline string since the beginning.  Not sure why C codes has to</div><div class='add'>+ * use this, given there is no way for ruby programs to interface.</div><div class='add'>+ *</div><div class='add'>+ * Also it has not been deprecated for unknown reasons.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN VALUE rb_default_rs;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The record separator  character for outputs, or the `$\`.   This affects how</div><div class='add'>+ * `IO#print` works.</div><div class='add'>+ *</div><div class='add'>+ * @deprecated Assigning  anything other than  ::RUBY_Qnil to this  variable is</div><div class='add'>+ *             deprecated.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN VALUE rb_output_rs;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Writes the given string to the given IO.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  io                   An IO, opened for writing.</div><div class='add'>+ * @param[in]   str                  A String-like object to write to `io`.</div><div class='add'>+ * @exception   rb_eIOError          `io` isn't opened for writing.</div><div class='add'>+ * @exception   rb_eFrozenError      `io` is frozen.</div><div class='add'>+ * @exception   rb_eTypeError        No conversion from `str` to String.</div><div class='add'>+ * @exception   rb_eSystemCallError  `write(2)` failed for some reason.</div><div class='add'>+ * @return      The number of bytes written to the `io`.</div><div class='add'>+ * @post        `str` (up to the length of return value) is written to `io`.</div><div class='add'>+ * @note        This function blocks.</div><div class='add'>+ * @note        Partial write is a thing.  It must be at least questionable not</div><div class='add'>+ *              to check the return value.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is  in fact inaccurate.  This function  can take arbitrary</div><div class='add'>+ * objects, and  calls their  `write` method.   What is  written above  in fact</div><div class='add'>+ * describes how `IO#write` works.  You can  pass StringIO etc. here, and would</div><div class='add'>+ * work completely differently.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_write(VALUE io, VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Reads a "line" from  the given IO.  A line here means  a chunk of characters</div><div class='add'>+ * which is terminated by either `"\n"` or an EOF.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  io               An IO, opened for reading.</div><div class='add'>+ * @exception      rb_eIOError      `io` isn't opened for reading.</div><div class='add'>+ * @exception      rb_eFrozenError  `io` is frozen.</div><div class='add'>+ * @retval         RUBY_Qnil        `io` is at EOF.</div><div class='add'>+ * @retval         otherwise        An instance of ::rb_cString.</div><div class='add'>+ * @post           `io` is read.</div><div class='add'>+ * @note           Unlike `IO#gets` it doesn't set `$_`.</div><div class='add'>+ * @note           Unlike `IO#gets` it doesn't consider `$/`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_gets(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Reads a byte from the given IO.</div><div class='add'>+ *</div><div class='add'>+ * @note           In Ruby a "byte" always means  an 8 bit integer ranging from</div><div class='add'>+ *                 0 to 255 inclusive.</div><div class='add'>+ * @param[in,out]  io               An IO, opened for reading.</div><div class='add'>+ * @exception      rb_eIOError      `io` is not opened for reading.</div><div class='add'>+ * @exception      rb_eFrozenError  `io` is frozen.</div><div class='add'>+ * @retval         RUBY_Qnil        `io` is at EOF.</div><div class='add'>+ * @retval         otherwise        An instance of ::rb_cInteger.</div><div class='add'>+ * @post           `io` is read.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Of course  there was a  function called  `rb_io_getc()`.  It was  removed in</div><div class='add'>+ * commit a25fbe3b3e531bbe479f344af24eaf9d2eeae6ea.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_getbyte(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * "Unget"s a  string.  This function  pushes back  the passed string  onto the</div><div class='add'>+ * passed IO,  such that  a subsequent  buffered read will  return it.   If the</div><div class='add'>+ * passed content  is in  fact an  integer, a single  character string  of that</div><div class='add'>+ * codepoint of the encoding of the IO will be pushed back instead.</div><div class='add'>+ *</div><div class='add'>+ * It  might be  counter-intuitive but  this  function can  push back  multiple</div><div class='add'>+ * characters at  once.  Also this function  can be called multiple  times on a</div><div class='add'>+ * same IO.   Also a  "character" can be  wider than a  byte, depending  on the</div><div class='add'>+ * encoding of the IO.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  io               An IO, opened for reading.</div><div class='add'>+ * @param[in]   c                Either a String, or an Integer.</div><div class='add'>+ * @exception   rb_eIOError      `io` is not opened for reading.</div><div class='add'>+ * @exception   rb_eFrozenError  `io` is frozen.</div><div class='add'>+ * @exception   rb_eTypeError    No conversion from `c` to ::rb_cString.</div><div class='add'>+ * @return      Always returns ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Why there is ungetc, given there is no getc?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_ungetc(VALUE io, VALUE c);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_io_ungetc(),  except it  doesn't take  the encoding  of the</div><div class='add'>+ * passed IO into account.  When an integer is passed, it just casts that value</div><div class='add'>+ * to C's `unsigned char`, and pushes that back.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  io               An IO, opened for reading.</div><div class='add'>+ * @param[in]   b                Either a String, or an Integer.</div><div class='add'>+ * @exception   rb_eIOError      `io` is not opened for reading.</div><div class='add'>+ * @exception   rb_eFrozenError  `io` is frozen.</div><div class='add'>+ * @exception   rb_eTypeError    No conversion from `b` to ::rb_cString.</div><div class='add'>+ * @return      Always returns ::RUBY_Qnil.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_ungetbyte(VALUE io, VALUE b);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Closes the IO.   Any buffered contents are flushed to  the operating system.</div><div class='add'>+ * Any future operations against the IO would raise ::rb_eIOError.  In case the</div><div class='add'>+ * io was created using `IO.popen`, it also sets the `$?`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  io  Target IO to close.</div><div class='add'>+ * @return      Always returns ::RUBY_Qnil.</div><div class='add'>+ * @post        `$?` is set in case IO is a pipe.</div><div class='add'>+ * @post        No operations are possible against `io` any further.</div><div class='add'>+ * @note        This can block to flush the contents.</div><div class='add'>+ * @note        This  can  wake other  threads  up,  especially those  who  are</div><div class='add'>+ *              `select()`-ing the passed IO.</div><div class='add'>+ * @note        Multiple invocations  of this function  over the same  IO again</div><div class='add'>+ *              and again is not an error, since Ruby 2.3.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * You can close a frozen IO... Is this intentional?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_close(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Flushes any buffered  data within the passed IO to  the underlying operating</div><div class='add'>+ * system.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  io                   Target IO to flush.</div><div class='add'>+ * @exception   rb_eIOError          `io` is closed.</div><div class='add'>+ * @exception   rb_eFrozenError      `io` is frozen.</div><div class='add'>+ * @exception   rb_eSystemCallError  `write(2)` failed for some reason.</div><div class='add'>+ * @return      The passed `io`.</div><div class='add'>+ * @post        `io`'s buffers are empty.</div><div class='add'>+ * @note        This operation also discards the read buffer.  Should basically</div><div class='add'>+ *              be harmless, but in an esoteric situation like when user pushed</div><div class='add'>+ *              something  different from  what was  read using  `ungetc`, this</div><div class='add'>+ *              operation in fact changes the behaviour of the `io`.</div><div class='add'>+ * @note        Buffering is  difficult.  This operation flushes  the data from</div><div class='add'>+ *              our userspace to  the kernel, but that doesn't  always mean you</div><div class='add'>+ *              can expect them stored persistently onto your hard drive.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_flush(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the passed IO is at the end of file.  "The end of file" here mans</div><div class='add'>+ * that there are  no more data to  read.  This function blocks  until the read</div><div class='add'>+ * buffer is filled in, and if that operation reached the end of file, it still</div><div class='add'>+ * returns  ::RUBY_Qfalse (because  there are  data  yet in  that buffer).   It</div><div class='add'>+ * returns ::RUBY_Qtrue once after the buffer is cleared.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  io              Target io to query.</div><div class='add'>+ * @exception      rb_eIOError     `io` is not opened for reading.</div><div class='add'>+ * @exception      rb_eFrozenError  `io` is frozen.</div><div class='add'>+ * @retval         RUBY_Qfalse     There are things yet to be read.</div><div class='add'>+ * @retval         RUBY_Qtrue      "The end of file" situation.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_eof(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Sets the binmode.  This operation  nullifies the effect of textmode (newline</div><div class='add'>+ * conversion from  `"\r\n"` to `"\n"`  or vice  versa).  Note that  it doesn't</div><div class='add'>+ * stop character encodings conversions.  For instance an IO created using:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * File.open(</div><div class='add'>+ *   "/dev/urandom",</div><div class='add'>+ *   textmode: true,</div><div class='add'>+ *   external_encoding: Encoding::GB18030,</div><div class='add'>+ *   internal_encoding: Encoding::Windows_31J)</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * has both  newline and character  conversions.  If you  pass such IO  to this</div><div class='add'>+ * function, only  the `textmode:true` part  is cancelled.  Texts  read through</div><div class='add'>+ * the IO would still  be encoded in Windows-31J; texts written  to the IO will</div><div class='add'>+ * be encoded in GB18030.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  io               Target IO to modify.</div><div class='add'>+ * @exception   rb_eFrozenError  `io` is frozen.</div><div class='add'>+ * @return      The passed `io`.</div><div class='add'>+ * @post        `io` is in binmode.</div><div class='add'>+ * @note        There is no equivalent operation in Ruby.  You can do this only</div><div class='add'>+ *              in C.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_binmode(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Forces no conversions be applied  to the passed IO.  Unlike rb_io_binmode(),</div><div class='add'>+ * this cancels any  newline conversions as well as  encoding conversions.  Any</div><div class='add'>+ * texts read/written through the IO will be the verbatim binary contents.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  io               Target IO to modify.</div><div class='add'>+ * @exception   rb_eFrozenError  `io` is frozen.</div><div class='add'>+ * @return      The passed `io`.</div><div class='add'>+ * @post        `io` is in binmode.  Both external/internal encoding are set to</div><div class='add'>+ *              rb_ascii8bit_encoding().</div><div class='add'>+ * @note        This is the implementation of `IO#binmode`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_ascii8bit_binmode(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_io_write(), except it always returns the passed IO.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  io                   An IO, opened for writing.</div><div class='add'>+ * @param[in]   str                  A String-like object to write to `io`.</div><div class='add'>+ * @exception   rb_eIOError          `io` isn't opened for writing.</div><div class='add'>+ * @exception   rb_eFrozenError      `io` is frozen.</div><div class='add'>+ * @exception   rb_eTypeError        No conversion from `str` to String.</div><div class='add'>+ * @exception   rb_eSystemCallError  `write(2)` failed.</div><div class='add'>+ * @return      The passed `io`.</div><div class='add'>+ * @post        `str` is written to `io`.</div><div class='add'>+ * @note        This function blocks.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * As rb_io_write(), above description is a fake.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_addstr(VALUE io, VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a rb_f_sprintf() + rb_io_write() combo.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   argc                 Number of objects of `argv`.</div><div class='add'>+ * @param[in]   argv                 A format string followed by its arguments.</div><div class='add'>+ * @param[out]  io                   An IO, opened for writing.</div><div class='add'>+ * @exception   rb_eIOError          `io` isn't opened for writing.</div><div class='add'>+ * @exception   rb_eFrozenError      `io` is frozen.</div><div class='add'>+ * @exception   rb_eTypeError        No conversion from `str` to String.</div><div class='add'>+ * @exception   rb_eSystemCallError  `write(2)` failed.</div><div class='add'>+ * @return      Always returns ::RUBY_Qnil.</div><div class='add'>+ * @post        `argv` is formatted, then written to `io`.</div><div class='add'>+ * @note        This function blocks.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * As rb_io_write(), above descriptions include fakes.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_printf(int argc, const VALUE *argv, VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Iterates  over the  passed array  to apply  rb_io_write() individually.   If</div><div class='add'>+ * there  is  `$,`,  this  function  inserts  the  string  in  middle  of  each</div><div class='add'>+ * iterations.  If there is `$\`, this  function appends the string at the end.</div><div class='add'>+ * If the array is empty, this function outputs `$_`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   argc                 Number of objects of `argv`.</div><div class='add'>+ * @param[in]   argv                 An array of strings to display.</div><div class='add'>+ * @param[out]  io                   An IO, opened for writing.</div><div class='add'>+ * @exception   rb_eIOError          `io` isn't opened for writing.</div><div class='add'>+ * @exception   rb_eFrozenError      `io` is frozen.</div><div class='add'>+ * @exception   rb_eTypeError        No conversion from `str` to String.</div><div class='add'>+ * @exception   rb_eSystemCallError  `write(2)` failed.</div><div class='add'>+ * @return      Always returns ::RUBY_Qnil.</div><div class='add'>+ * @post        `argv` is written to `io`.</div><div class='add'>+ * @note        This function blocks.</div><div class='add'>+ * @note        This function calls rb_io_write() multiple times.  Which means,</div><div class='add'>+ *              it is not  an atomic operation.  Outputs  from multiple threads</div><div class='add'>+ *              can interleave.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * As rb_io_write(), above descriptions include fakes.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_print(int argc, const VALUE *argv, VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Iterates over the passed array  to apply rb_io_write() individually.  Unlike</div><div class='add'>+ * rb_io_print(), this  function prints  a newline per  each element.   It also</div><div class='add'>+ * flattens   the   passed   array   (OTOH  rb_io_print()   just   resorts   to</div><div class='add'>+ * rb_ary_to_s()).</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   argc                 Number of objects of `argv`.</div><div class='add'>+ * @param[in]   argv                 An array of strings to display.</div><div class='add'>+ * @param[out]  io                   An IO, opened for writing.</div><div class='add'>+ * @exception   rb_eIOError          `io` isn't opened for writing.</div><div class='add'>+ * @exception   rb_eFrozenError      `io` is frozen.</div><div class='add'>+ * @exception   rb_eTypeError        No conversion from `str` to String.</div><div class='add'>+ * @exception   rb_eSystemCallError  `write(2)` failed.</div><div class='add'>+ * @return      Always returns ::RUBY_Qnil.</div><div class='add'>+ * @post        `argv` is written to `io`.</div><div class='add'>+ * @note        This function blocks.</div><div class='add'>+ * @note        This function calls rb_io_write() multiple times.  Which means,</div><div class='add'>+ *              it is not  an atomic operation.  Outputs  from multiple threads</div><div class='add'>+ *              can interleave.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * As rb_io_write(), above descriptions include fakes.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_puts(int argc, const VALUE *argv, VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates  an IO  instance  whose backend  is the  given  file descriptor.   C</div><div class='add'>+ * extension libraries sometimes have file descriptors created elsewhere (maybe</div><div class='add'>+ * deep inside  of another shared  library), which  they want ruby  programs to</div><div class='add'>+ * handle.  This function is handy for such situations.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fd     Target file descriptor.</div><div class='add'>+ * @param[in]  flags  Flags, e.g. `O_CREAT|O_EXCL`</div><div class='add'>+ * @param[in]  path   The path of the file that backs `fd`, for diagnostics.</div><div class='add'>+ * @return     An allocated instance of ::rb_cIO.</div><div class='add'>+ * @note       Leave `path` NULL if you don't know.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_fdopen(int fd, int flags, const char *path);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Opens a file located at the given path.</div><div class='add'>+ *</div><div class='add'>+ * `fmode` is a C string that represents the open mode.  It can be one of:</div><div class='add'>+ *</div><div class='add'>+ *   - `r` (means `O_RDONLY`),</div><div class='add'>+ *   - `w` (means `O_WRONLY | O_TRUNC | O_CREAT`),</div><div class='add'>+ *   - `a` (means `O_WRONLY | O_APPEND | O_CREAT`),</div><div class='add'>+ *</div><div class='add'>+ *  Followed by zero or more combinations of:</div><div class='add'>+ *</div><div class='add'>+ *   - `b` (means `_O_BINARY`),</div><div class='add'>+ *   - `t` (means `_O_TEXT`),</div><div class='add'>+ *   - `+` (means `O_RDWR`),</div><div class='add'>+ *   - `x` (means `O_TRUNC`), or</div><div class='add'>+ *   - `:[BOM|]enc[:enc]` (see below).</div><div class='add'>+ *</div><div class='add'>+ * This  last  one   specifies  external  (and  internal   if  any)  encodings,</div><div class='add'>+ * respectively.  If  optional `BOM|` is  specified and the  specified external</div><div class='add'>+ * encoding is capable of expressing  BOMs, opening file's contents' byte order</div><div class='add'>+ * is auto-detected using the mechanism.</div><div class='add'>+ *</div><div class='add'>+ * So for instance, fmode of `"rt|BOM:utf-16le:utf-8"` specifies that...</div><div class='add'>+ *</div><div class='add'>+ *   - the physical representation of the contents of the file is in UTF-16;</div><div class='add'>+ *   - honours its BOM but assumes little endian if absent;</div><div class='add'>+ *   - opens the file for reading;</div><div class='add'>+ *   - what is read is converted into UTF-8;</div><div class='add'>+ *   - with newlines cannibalised to `\n`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fname                Path to open.</div><div class='add'>+ * @param[in]  fmode                Mode specifier much like `fopen(3)`.</div><div class='add'>+ * @exception  rb_eArgError         `fmode` contradicted (e.g. `"bt"`).</div><div class='add'>+ * @exception  rb_eSystemCallError  `open(2)` failed for some reason.</div><div class='add'>+ * @return     An instance of ::rb_cIO.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_file_open(const char *fname, const char *fmode);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_file_open(), except it takes the pathname as a Ruby's string</div><div class='add'>+ * instead of C's.  In case the passed  Ruby object is a non-String it tries to</div><div class='add'>+ * call `#to_path`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fname                Path to open.</div><div class='add'>+ * @param[in]  fmode                Mode specifier much like `fopen(3)`.</div><div class='add'>+ * @exception  rb_eTypeError        `fname` is not a String.</div><div class='add'>+ * @exception  rb_eEncCompatError   `fname` is not ASCII-compatible.</div><div class='add'>+ * @exception  rb_eArgError         `fmode` contradicted (e.g. `"bt"`).</div><div class='add'>+ * @exception  rb_eSystemCallError  `open(2)` failed for some reason.</div><div class='add'>+ * @return     An instance of ::rb_cIO.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_file_open_str(VALUE fname, const char *fmode);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Much like rb_io_gets(), but it reads  from the mysterious ARGF object.  ARGF</div><div class='add'>+ * in this context can  be seen as a virtual IO  which concatenates contents of</div><div class='add'>+ * the files passed to the process via the  ARGV, or just STDIN if there are no</div><div class='add'>+ * such files.</div><div class='add'>+ *</div><div class='add'>+ * Unlike rb_io_gets() this function sets `$_`.</div><div class='add'>+ *</div><div class='add'>+ * @exception      rb_eFrozenError  ARGF resorts to STDIN but it is frozen.</div><div class='add'>+ * @retval         RUBY_Qnil        ARGF is at EOF.</div><div class='add'>+ * @retval         otherwise        An instance of ::rb_cString.</div><div class='add'>+ * @post           ARGF is read.</div><div class='add'>+ * @post           `$_` is set.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * In reality, this function can call `ARGF.gets`.  Its redefinition can affect</div><div class='add'>+ * the behaviour.</div><div class='add'>+ *</div><div class='add'>+ * Also, you can tamper ARGV on-the-fly in middle of ARGF usages:</div><div class='add'>+ *</div><div class='add'>+ * ```</div><div class='add'>+ * gets                        # Reads the first file.</div><div class='add'>+ * ARGV &lt;&lt; '/proc/self/limits' # Adds a file.</div><div class='add'>+ * gets                        # Can read from /proc/self/limits.</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+VALUE rb_gets(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Writes the given error message to  somewhere applicable.  On Windows it goes</div><div class='add'>+ * to the console.  On POSIX environments it goes to the standard error.</div><div class='add'>+ *</div><div class='add'>+ * @warning  IT IS  A BAD  IDEA to  use this function  form your  C extensions.</div><div class='add'>+ *           It  is often  annoying when  GUI applications  write to  consoles;</div><div class='add'>+ *           users  don't want  to look  at  there.  Programmers  also want  to</div><div class='add'>+ *           control  the cause  of the  message  itself, like  by rescuing  an</div><div class='add'>+ *           exception.  Just let ruby handle errors.  That must be better than</div><div class='add'>+ *           going your own way.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  Error message to display.</div><div class='add'>+ * @post       `str` is written to somewhere.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * AFAIK this function  is listed here without marked  deprecated because there</div><div class='add'>+ * are usages of this function in the wild.</div><div class='add'>+ */</div><div class='add'>+void rb_write_error(const char *str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_write_error(), except  it additionally takes  the message's</div><div class='add'>+ * length.  Necessary when you want to handle wide characters.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  Error message to display.</div><div class='add'>+ * @param[in]  len  Length of `str`, in bytes.</div><div class='add'>+ * @post       `str` is written to somewhere.</div><div class='add'>+ */</div><div class='add'>+void rb_write_error2(const char *str, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Closes everything.  In case of  POSIX environments, a child process inherits</div><div class='add'>+ * its parent's opened  file descriptors.  Which is nowadays  considered as one</div><div class='add'>+ * of the UNIX mistakes.  This function closes such inherited file descriptors.</div><div class='add'>+ * When your C  extension needs to have  a child process, don't  forget to call</div><div class='add'>+ * this from your child process right before exec.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lowfd        Lower bound of FDs (you want STDIN to remain, no?).</div><div class='add'>+ * @param[in]  maxhint      Hint of max FDs.</div><div class='add'>+ * @param[in]  noclose_fds  A hash, whose keys are an allowlist.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * As of writing, in  spite of the name, this function  does not actually close</div><div class='add'>+ * anything.  It just  sets `FD_CLOEXEC` for everything and  let `execve(2)` to</div><div class='add'>+ * atomically close them at once.  This is  because as far as we know there are</div><div class='add'>+ * no such platform that has `fork(2)` but lacks `FD_CLOEXEC`.</div><div class='add'>+ *</div><div class='add'>+ * Because this function is expected to run  on a forked process it is entirely</div><div class='add'>+ * async-signal-safe.</div><div class='add'>+ */</div><div class='add'>+void rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * This is an rb_cloexec_pipe() + rb_update_max_fd() combo.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  pipes  Return buffer.  Must at least hold 2 elements.</div><div class='add'>+ * @retval      0      Successful creation of a pipe.</div><div class='add'>+ * @retval      -1     Failure in underlying system call(s).</div><div class='add'>+ * @post        `pipes` is filled with file descriptors.</div><div class='add'>+ * @post        `errno` is set on failure.</div><div class='add'>+ */</div><div class='add'>+int rb_pipe(int *pipes);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the  given FD is reserved or not.   Occasionally Ruby interpreter</div><div class='add'>+ * opens files  for its own  purposes.  Use  this function to  prevent touching</div><div class='add'>+ * such behind-the-scene descriptors.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fd  Target file descriptor.</div><div class='add'>+ * @retval     1   `fd` is reserved.</div><div class='add'>+ * @retval     0   Otherwise.</div><div class='add'>+ */</div><div class='add'>+int rb_reserved_fd_p(int fd);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_reserved_fd_p} */</div><div class='add'>+#define RB_RESERVED_FD_P(fd) rb_reserved_fd_p(fd)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Opens a file  that closes on exec.   In case of POSIX  environments, a child</div><div class='add'>+ * process inherits  its parent's opened  file descriptors.  Which  is nowadays</div><div class='add'>+ * considered  as  one of  the  UNIX  mistakes.   This  function opens  a  file</div><div class='add'>+ * descriptor  as  `open(2)` does,  but  additionally  instructs the  operating</div><div class='add'>+ * system that we don't want it be seen from child processes.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  pathname   File path to open.</div><div class='add'>+ * @param[in]  flags      Open mode, as in `open(2)`.</div><div class='add'>+ * @param[in]  mode       File mode, in case of `O_CREAT`.</div><div class='add'>+ * @retval     -1         `open(2)` failed for some reason.</div><div class='add'>+ * @retval     otherwise  An allocated new file descriptor.</div><div class='add'>+ * @note       This function does not raise.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Whether this function can take NULL or not depends on the underlying open(2)</div><div class='add'>+ * system call implementation but @shyouhei doesn't think it's worth trying.</div><div class='add'>+ */</div><div class='add'>+int rb_cloexec_open(const char *pathname, int flags, mode_t mode);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_cloexec_fcntl_dupfd(), except it implies minfd is 3.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  oldfd     File descriptor to duplicate.</div><div class='add'>+ * @retval     -1        `dup2(2)` failed for some reason.</div><div class='add'>+ * @retval     otherwise  An allocated new file descriptor.</div><div class='add'>+ * @note       This function does not raise.</div><div class='add'>+ */</div><div class='add'>+int rb_cloexec_dup(int oldfd);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_cloexec_dup(),  except you can specify  the destination file</div><div class='add'>+ * descriptor.   If  the  destination  is  already  squatted  by  another  file</div><div class='add'>+ * descriptor that gets silently closed without  any warnings.  (This is a spec</div><div class='add'>+ * requested by POSIX.)</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  oldfd  File descriptor to duplicate.</div><div class='add'>+ * @param[in]  newfd  Return value destination.</div><div class='add'>+ * @retval     -1     `dup2(2)` failed for some reason.</div><div class='add'>+ * @retval     newfd  An allocated new file descriptor.</div><div class='add'>+ * @post       Whatever sat at `newfd` gets closed with no notifications.</div><div class='add'>+ * @post       In case return value is -1 `newfd` is untouched.</div><div class='add'>+ * @note       This function does not raise.</div><div class='add'>+ */</div><div class='add'>+int rb_cloexec_dup2(int oldfd, int newfd);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Opens a pipe with  closing on exec.  In case of  POSIX environments, a child</div><div class='add'>+ * process inherits  its parent's opened  file descriptors.  Which  is nowadays</div><div class='add'>+ * considered  as one  of the  UNIX mistakes.   This function  opens a  pipe as</div><div class='add'>+ * `pipe(2)`  does, but  additionally instructs  the operating  system that  we</div><div class='add'>+ * don't want the duplicated FDs be seen from child processes.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  fildes  Return buffer.  Must at least hold 2 elements.</div><div class='add'>+ * @retval      0       Successful creation of a pipe.</div><div class='add'>+ * @retval      -1      Failure in underlying system call(s).</div><div class='add'>+ * @post        `pipes` is filled with file descriptors.</div><div class='add'>+ * @post        `errno` is set on failure.</div><div class='add'>+ */</div><div class='add'>+int rb_cloexec_pipe(int fildes[2]);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Duplicates  a file  descriptor  with  closing on  exec.   In  case of  POSIX</div><div class='add'>+ * environments, a child process inherits its parent's opened file descriptors.</div><div class='add'>+ * Which is  nowadays considered as  one of  the UNIX mistakes.   This function</div><div class='add'>+ * duplicates a  file descriptor as  `dup(2)` does, but  additionally instructs</div><div class='add'>+ * the operating system that we don't want the duplicated FD be seen from child</div><div class='add'>+ * processes.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fd         File descriptor to duplicate.</div><div class='add'>+ * @param[in]  minfd      Minimum allowed FD to return.</div><div class='add'>+ * @retval     -1         `dup(2)` failed for some reason.</div><div class='add'>+ * @retval     otherwise  An allocated new file descriptor.</div><div class='add'>+ * @note       This function does not raise.</div><div class='add'>+ *</div><div class='add'>+ * `minfd` is handy  when for instance STDERR  is closed but you  don't want to</div><div class='add'>+ * use fd 2.</div><div class='add'>+ */</div><div class='add'>+int rb_cloexec_fcntl_dupfd(int fd, int minfd);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Informs the interpreter that the passed fd can be the max.  This information</div><div class='add'>+ * is used from rb_close_before_exec().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fd  An open FD, which can be large.</div><div class='add'>+ */</div><div class='add'>+void rb_update_max_fd(int fd);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Sets or clears  the close-on-exec flag of the passed  file descriptor to the</div><div class='add'>+ * desired state.  STDIN,  STDOUT, STDERR are the  exceptional file descriptors</div><div class='add'>+ * that shall  remain open.  All  others are  to be closed  on exec.  When  a C</div><div class='add'>+ * extension  library  opens  a  file  descriptor  using  anything  other  than</div><div class='add'>+ * rb_cloexec_open() etc., that file descriptor shall experience this function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fd  An open file descriptor.</div><div class='add'>+ */</div><div class='add'>+void rb_fd_fix_cloexec(int fd);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_IO_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/load.h b/include/ruby/internal/intern/load.h<br/>new file mode 100644<br/>index 0000000000..288a16c2ec<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/load.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/load.h</a></div><div class='hunk'>@@ -0,0 +1,218 @@</div><div class='add'>+#ifndef  RBIMPL_INTERN_LOAD_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define  RBIMPL_INTERN_LOAD_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_f_require().</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* load.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Loads and executes the Ruby program in the given file.</div><div class='add'>+ *</div><div class='add'>+ * If the path is  an absolute path (e.g. starts with `'/'`),  the file will be</div><div class='add'>+ * loaded  directly using  the  absolute  path.  If  the  path  is an  explicit</div><div class='add'>+ * relative path (e.g. starts with `'./'`  or `'../'`), the file will be loaded</div><div class='add'>+ * using the  relative path  from the current  directory.  Otherwise,  the file</div><div class='add'>+ * will be searched for in the  library directories listed in the `$LOAD_PATH`.</div><div class='add'>+ * If the file is found in a  directory, this function will attempt to load the</div><div class='add'>+ * file relative  to that directory.  If  the file is  not found in any  of the</div><div class='add'>+ * directories in the `$LOAD_PATH`, the file  will be loaded using the relative</div><div class='add'>+ * path from the current directory.</div><div class='add'>+ *</div><div class='add'>+ * If the file doesn't  exist when there is an attempt to  load it, a LoadError</div><div class='add'>+ * will be raised.</div><div class='add'>+ *</div><div class='add'>+ * If the `wrap` parameter is true, the loaded script will be executed under an</div><div class='add'>+ * anonymous module, protecting the calling  program's global namespace.  In no</div><div class='add'>+ * circumstance will  any local variables in  the loaded file be  propagated to</div><div class='add'>+ * the loading environment.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path                Pathname of a file to load.</div><div class='add'>+ * @param[in]  wrap                Either to load under an anonymous module.</div><div class='add'>+ * @exception  rb_eTypeError       `path` is not a string.</div><div class='add'>+ * @exception  rb_eArgError        `path` is broken as a pathname.</div><div class='add'>+ * @exception  rb_eEncCompatError  `path` is incompatible with pathnames.</div><div class='add'>+ * @exception  rb_eLoadError       `path` not found.</div><div class='add'>+ * @exception  rb_eException       Any exceptions while loading the contents.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It seems this function is under the rule of bootsnap's regime?</div><div class='add'>+ */</div><div class='add'>+void rb_load(VALUE path, int wrap);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_load(), except  it avoids  potential global  escapes.  Such</div><div class='add'>+ * global escapes include exceptions, `throw`, `break`, for example.</div><div class='add'>+ *</div><div class='add'>+ * It first  evaluates the given file  as rb_load() does.  If  no global escape</div><div class='add'>+ * occurred  during the  evaluation,  it `*state`  is set  to  zero on  return.</div><div class='add'>+ * Otherwise, it sets `*state`  to nonzero.  If state is `NULL`,  it is not set</div><div class='add'>+ * in both cases.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   path   Pathname of a file to load.</div><div class='add'>+ * @param[in]   wrap   Either to load under an anonymous module.</div><div class='add'>+ * @param[out]  state  State of execution.</div><div class='add'>+ * @post        `*state` is set to zero if succeeded.  Nonzero otherwise.</div><div class='add'>+ * @warning     You have to clear the error info with `rb_set_errinfo(Qnil)` if</div><div class='add'>+ *              you decide to ignore the caught exception.</div><div class='add'>+ * @see         rb_load</div><div class='add'>+ * @see         rb_protect</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Though   not  a   part  of   our  public   API,  `state`   is  in   fact  an</div><div class='add'>+ * enum ruby_tag_type.  You can  see the potential "nonzero"  values by looking</div><div class='add'>+ * at vm_core.h.</div><div class='add'>+ */</div><div class='add'>+void rb_load_protect(VALUE path, int wrap, int *state);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Queries if  the given  feature has  already been  loaded into  the execution</div><div class='add'>+ * context.  The "feature" head are things like `"json"` or `"socket"`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  feature  Name of a library you want to know about.</div><div class='add'>+ * @retval     1        Yes there is.</div><div class='add'>+ * @retval     0        Not yet.</div><div class='add'>+ */</div><div class='add'>+int rb_provided(const char *feature);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_provided(), except it additionally  returns the "canonical"</div><div class='add'>+ * name of the loaded feature.  This can be handy when for instance you want to</div><div class='add'>+ * know the actually loaded library is either `foo.rb` or `foo.so`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   feature  Name of a library you want to know about.</div><div class='add'>+ * @param[out]  loading  Return buffer.</div><div class='add'>+ * @retval      1        Yes there is.</div><div class='add'>+ * @retval      0        Not yet.</div><div class='add'>+ */</div><div class='add'>+int rb_feature_provided(const char *feature, const char **loading);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Declares that the  given feature is already provided by  someone else.  This</div><div class='add'>+ * API can  be handy  when you  have an extension  called `foo.so`  which, when</div><div class='add'>+ * required, also provides functionality of `bar.so`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  feature  Name of a library which had already been provided.</div><div class='add'>+ * @post       No further `require` would search `feature`.</div><div class='add'>+ */</div><div class='add'>+void rb_provide(const char *feature);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_require_string(),  except it ignores the  first argument for</div><div class='add'>+ * no reason.  There seems to be no reason for 3rd party extension libraries to</div><div class='add'>+ * use it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  self              Ignored.  Can be anything.</div><div class='add'>+ * @param[in]  feature           Name of a feature, e.g. `"json"`.</div><div class='add'>+ * @exception  rb_eLoadError     No such feature.</div><div class='add'>+ * @exception  rb_eRuntimeError  `$"` is frozen; unable to push.</div><div class='add'>+ * @retval     RUBY_Qtrue        The feature is loaded for the first time.</div><div class='add'>+ * @retval     RUBY_Qfalse       The feature has already been loaded.</div><div class='add'>+ * @post       `$"` is updated.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_f_require(VALUE self, VALUE feature);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Finds and loads the given feature, if absent.</div><div class='add'>+ *</div><div class='add'>+ * If the  feature is an  absolute path (e.g.  starts with `'/'`),  the feature</div><div class='add'>+ * will  be loaded  directly using  the absolute  path.  If  the feature  is an</div><div class='add'>+ * explicit relative  path (e.g.  starts with `'./'`  or `'../'`),  the feature</div><div class='add'>+ * will  be  loaded  using  the  relative  path  from  the  current  directory.</div><div class='add'>+ * Otherwise,  the feature  will be  searched  for in  the library  directories</div><div class='add'>+ * listed in the `$LOAD_PATH`.</div><div class='add'>+ *</div><div class='add'>+ * If the feature has the extension `".rb"`,  it is loaded as a source file; if</div><div class='add'>+ * the extension is `".so"`, `".o"`, or `".dll"`, or the default shared library</div><div class='add'>+ * extension on the  current platform, Ruby loads the shared  library as a Ruby</div><div class='add'>+ * extension.  Otherwise, Ruby tries adding `".rb"`,  `".so"`, and so on to the</div><div class='add'>+ * name until found.   If the file named  cannot be found, a  LoadError will be</div><div class='add'>+ * raised.</div><div class='add'>+ *</div><div class='add'>+ * For  extension  libraries the  given  feature  may  use any  shared  library</div><div class='add'>+ * extension.  For example, on Linux you can require `"socket.dll"` to actually</div><div class='add'>+ * load `socket.so`.</div><div class='add'>+ *</div><div class='add'>+ * The absolute path of the loaded file is added to `$LOADED_FEATURES`.  A file</div><div class='add'>+ * will not be loaded again if its path already appears in there.</div><div class='add'>+ *</div><div class='add'>+ * Any constants or globals within the  loaded source file will be available in</div><div class='add'>+ * the calling program's  global namespace.  However, local  variables will not</div><div class='add'>+ * be propagated to the loading environment.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  feature           Name of a feature, e.g. `"json"`.</div><div class='add'>+ * @exception  rb_eLoadError     No such feature.</div><div class='add'>+ * @exception  rb_eRuntimeError  `$"` is frozen; unable to push.</div><div class='add'>+ * @retval     RUBY_Qtrue        The feature is loaded for the first time.</div><div class='add'>+ * @retval     RUBY_Qfalse       The feature has already been loaded.</div><div class='add'>+ * @post       `$"` is updated.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_require_string(VALUE feature);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name extension configuration</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts that  the extension  library that  calls this  function is  aware of</div><div class='add'>+ * Ractor.  Multiple Ractors  run without protecting each  other.  This doesn't</div><div class='add'>+ * interface  well   with  C  programs,   unless  designed  with   an  in-depth</div><div class='add'>+ * understanding of  how Ractors work.   Extension libraries are shut  out from</div><div class='add'>+ * Ractors by default.  This API is  to bypass that restriction.  Once after it</div><div class='add'>+ * was called,  successive calls to rb_define_method()  etc. become definitions</div><div class='add'>+ * of methods  that are  aware of  Ractors.  The amendment  would be  in effect</div><div class='add'>+ * until the end of rb_require_string() etc.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  flag  Either the library is aware of Ractors or not.</div><div class='add'>+ * @post       Methods would be callable form Ractors, if `flag` is true.</div><div class='add'>+ */</div><div class='add'>+void rb_ext_ractor_safe(bool flag);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_ext_ractor_safe} */</div><div class='add'>+#define RB_EXT_RACTOR_SAFE(f) rb_ext_ractor_safe(f)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This macro  is to provide  backwards compatibility.  It  must be safe  to do</div><div class='add'>+ * something like:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * #ifdef HAVE_RB_EXT_RACTOR_SAFE</div><div class='add'>+ * rb_ext_ractor_safe(true);</div><div class='add'>+ * #endif</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+#define HAVE_RB_EXT_RACTOR_SAFE 1</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_LOAD_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/marshal.h b/include/ruby/internal/intern/marshal.h<br/>new file mode 100644<br/>index 0000000000..118d78a4a0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/marshal.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/marshal.h</a></div><div class='hunk'>@@ -0,0 +1,112 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_MARSHAL_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_MARSHAL_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to rb_mMarshal.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* marshal.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Serialises the  given object and  all its  referring objects, to  write them</div><div class='add'>+ * down to the passed port.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   obj               Target object to dump.</div><div class='add'>+ * @param[out]  port              IO-like destination buffer.</div><div class='add'>+ * @exception   rb_eTypeError     `obj` cannot be dumped for some reason.</div><div class='add'>+ * @exception   rb_eRuntimeError  `obj` was tampered during dumping.</div><div class='add'>+ * @exception   rb_eArgError      Traversal too deep.</div><div class='add'>+ * @return      The passed `port` as-is.</div><div class='add'>+ * @post        Serialised representation of `obj` is written to `port`.</div><div class='add'>+ * @note        `port` is basically an IO but StringIO is also possible.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_marshal_dump(VALUE obj, VALUE port);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Deserialises  a  previous output  of  rb_marshal_dump()  into a  network  of</div><div class='add'>+ * objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  port           Either IO or String.</div><div class='add'>+ * @exception      rb_eTypeError  `port` is in unexpected type.</div><div class='add'>+ * @exception      rb_eArgError   Contents of `port` is broken.</div><div class='add'>+ * @return         Object(s) rebuilt using the info from `port`.</div><div class='add'>+ *</div><div class='add'>+ * SECURITY  CONSIDERATIONS</div><div class='add'>+ * ========================</div><div class='add'>+ *</div><div class='add'>+ * @warning        By  design,  rb_marshal_load()  can deserialise  almost  any</div><div class='add'>+ *                 class loaded into the Ruby  process.  In many cases this can</div><div class='add'>+ *                 lead to remote code execution  if the Marshal data is loaded</div><div class='add'>+ *                 from an untrusted source.</div><div class='add'>+ * @warning        As a result, rb_marshal_load() is  not suitable as a general</div><div class='add'>+ *                 purpose serialisation format and  you should never unmarshal</div><div class='add'>+ *                 user supplied input or other untrusted data.</div><div class='add'>+ * @warning        If  you need  to  deserialise untrusted  data,  use JSON  or</div><div class='add'>+ *                 another  serialisation  format that  is  only  able to  load</div><div class='add'>+ *                 simple, 'primitive' types such  as String, Array, Hash, etc.</div><div class='add'>+ *                 Never  allow  user  input  to  specify  arbitrary  types  to</div><div class='add'>+ *                 deserialise into.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_marshal_load(VALUE port);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Marshal  format compatibility  layer.  Over  time, classes  evolve, so  that</div><div class='add'>+ * their internal data structure change  drastically.  For instance an instance</div><div class='add'>+ * of ::rb_cRange  was made  of ::RUBY_T_OBJECT  in 1.x.,  but in  3.x it  is a</div><div class='add'>+ * ::RUBY_T_STRUCT now.  In  order to keep binary compatibility,  we "fake" the</div><div class='add'>+ * marshalled representation to stick to old  types.  This is the API to enable</div><div class='add'>+ * that manoeuvre.  Here is how:</div><div class='add'>+ *</div><div class='add'>+ * First, because  you are going to  keep backwards compatibility, you  need to</div><div class='add'>+ * retain the old implementation of your  class.  Rename it, and keep the class</div><div class='add'>+ * somewhere  (for  instance  rb_register_global_address() could  help).   Next</div><div class='add'>+ * create your new class.  Do whatever you want.</div><div class='add'>+ *</div><div class='add'>+ * Then, this is the key point.  Create two new "bridge" functions that convert</div><div class='add'>+ * the structs back and forth:</div><div class='add'>+ *</div><div class='add'>+ *   - the  "dumper" function  that takes  an instance  of the  new class,  and</div><div class='add'>+ *     returns   an  instance   of  the   old   one.   This   is  called   from</div><div class='add'>+ *     rb_marshal_dump(), to keep it possible for old programs to read your new</div><div class='add'>+ *     data.</div><div class='add'>+ *</div><div class='add'>+ *   - the "loader" function that takes two  arguments, new one and old one, in</div><div class='add'>+ *     that  order.  rb_marshal_load()  calls  this function  when  it finds  a</div><div class='add'>+ *     representation of  the retained old class.   The old one passed  to this</div><div class='add'>+ *     function   is   the   reconstructed   instance   of   the   old   class.</div><div class='add'>+ *     Reverse-engineer  that to  modify the  new  one, to  have the  identical</div><div class='add'>+ *     contents.</div><div class='add'>+ *</div><div class='add'>+ * Finally, connect all of them using this function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  newclass       The class that needs conversion.</div><div class='add'>+ * @param[in]  oldclass       Old implementation of `newclass`.</div><div class='add'>+ * @param[in]  dumper         Function that converts `newclass` to `oldclass`.</div><div class='add'>+ * @param[in]  loader         Function that converts `oldclass` to `newclass`.</div><div class='add'>+ * @exception  rb_eTypeError  `newclass` has no allocator.</div><div class='add'>+ */</div><div class='add'>+void rb_marshal_define_compat(VALUE newclass, VALUE oldclass, VALUE (*dumper)(VALUE), VALUE (*loader)(VALUE, VALUE));</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_MARSHAL_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/numeric.h b/include/ruby/internal/intern/numeric.h<br/>new file mode 100644<br/>index 0000000000..30863fb0c8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/numeric.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/numeric.h</a></div><div class='hunk'>@@ -0,0 +1,208 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_NUMERIC_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_NUMERIC_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cNumeric.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/cold.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define RB_NUM_COERCE_FUNCS_NEED_OPID 1</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* numeric.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+RBIMPL_ATTR_COLD()</div><div class='add'>+/**</div><div class='add'>+ * Just always raises an exception.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eZeroDivError  Division by zero error.</div><div class='add'>+ */</div><div class='add'>+void rb_num_zerodiv(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Coercion operators.</div><div class='add'>+ *</div><div class='add'>+ * What  is a  coercion?   Well Ruby  is  basically  an OOPL  but  it also  has</div><div class='add'>+ * arithmetic operators.   They are  implemented in  OO manners.   For instance</div><div class='add'>+ * `a+b` is  a binary operation  `+`, whose receiver  is `a`, and  whose (sole)</div><div class='add'>+ * argument is `b`.</div><div class='add'>+ *</div><div class='add'>+ * The problem is, you  often want `a+b == b+a` to hold.  That  is easy if both</div><div class='add'>+ * `a` and `b` belongs to the same class...  Ensuring  `1 + 2 == 2 + 1` is kind</div><div class='add'>+ * of intuitive.  But  if you want `1.0 +  2 == 2 + 1.0`,  things start getting</div><div class='add'>+ * complicated.  `1.0+2` is `Float#+`, while  `2+1.0` is `Integer#+`.  In order</div><div class='add'>+ * to achieve the equality Float's and  Integer's methods must agree with their</div><div class='add'>+ * behaviours.</div><div class='add'>+ *</div><div class='add'>+ * Now.  Floats  versus Integers situation  is still controllable  because they</div><div class='add'>+ * are both  built-in.  But in  Ruby you can  define your own  numeric classes.</div><div class='add'>+ * BigDecimal, which is a rubygems  gem distributed along with the interpreter,</div><div class='add'>+ * is one  of such  examples.  Rational  was another  such example  before.  In</div><div class='add'>+ * short you cannot create list of all possible combination of the classes that</div><div class='add'>+ * could  be  the  operand  of  `+`  operator.  Then  how  do  we  achieve  the</div><div class='add'>+ * commutativity?</div><div class='add'>+ *</div><div class='add'>+ * Here  comes  the concept  of  coercion.   If  a  definition of  an  operator</div><div class='add'>+ * encounters an object  which is unknown to the author,  just assumes that the</div><div class='add'>+ * unknown object  knows how  to handle  the situation.   So for  instance when</div><div class='add'>+ * `1+x` has unknown `x`, it lets the `x` handle this.</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * class Foo</div><div class='add'>+ *   def +(x)</div><div class='add'>+ *     if we_know_what_is_x? then</div><div class='add'>+ *       ... # handle here</div><div class='add'>+ *     else</div><div class='add'>+ *       y, z = x.coerce self</div><div class='add'>+ *       return y + z</div><div class='add'>+ *     end</div><div class='add'>+ *   end</div><div class='add'>+ * end</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * The `x.coerce` method returns a  2-element array which are "casted" versions</div><div class='add'>+ * of `x` and `self`.</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Coerced binary operation.  This function first coerces the two objects, then</div><div class='add'>+ * applies the operation.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs            LHS operand.</div><div class='add'>+ * @param[in]  rhs            RHS operand.</div><div class='add'>+ * @param[in]  op             Operator method name.</div><div class='add'>+ * @exception  rb_eTypeError  Coercion failed for some reason.</div><div class='add'>+ * @return     `lhs op rhs`, in a coerced way.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_num_coerce_bin(VALUE lhs, VALUE rhs, ID op);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_num_coerce_bin(), except for return  values.  This function</div><div class='add'>+ * best suits for comparison operators e.g. `&lt;=&gt;`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs        LHS operand.</div><div class='add'>+ * @param[in]  rhs        RHS operand.</div><div class='add'>+ * @param[in]  op         Operator method name.</div><div class='add'>+ * @retval     RUBY_Qnil  Coercion failed for some reason.</div><div class='add'>+ * @retval     otherwise  `lhs op rhs`, in a coerced way.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_num_coerce_cmp(VALUE lhs, VALUE rhs, ID op);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_num_coerce_cmp(), except for return  values.  This function</div><div class='add'>+ * best suits for relationship operators e.g. `&lt;=`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs           LHS operand.</div><div class='add'>+ * @param[in]  rhs           RHS operand.</div><div class='add'>+ * @param[in]  op            Operator method name.</div><div class='add'>+ * @exception  rb_eArgError  Coercion failed for some reason.</div><div class='add'>+ * @return     `lhs op rhs`, in a coerced way.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_num_coerce_relop(VALUE lhs, VALUE rhs, ID op);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This one  is optimised for bitwise  operations, but the API  is identical to</div><div class='add'>+ * rb_num_coerce_bin().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs           LHS operand.</div><div class='add'>+ * @param[in]  rhs           RHS operand.</div><div class='add'>+ * @param[in]  op            Operator method name.</div><div class='add'>+ * @exception  rb_eArgError  Coercion failed for some reason.</div><div class='add'>+ * @return     `lhs op rhs`, in a coerced way.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_num_coerce_bit(VALUE lhs, VALUE rhs, ID op);</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts  a  numeric  value  into  a  Fixnum.   This  is  not  a  preserving</div><div class='add'>+ * conversion; for instance 1.5 would be converted into 1.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val             A numeric object.</div><div class='add'>+ * @exception  rb_eTypeError   No conversion from `val` to Integer.</div><div class='add'>+ * @exception  rb_eRangeError  `val` out of range.</div><div class='add'>+ * @return     A fixnum converted from `val`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This seems used from nowhere?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_num2fix(VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates  a place-value  representation  of the  given  Fixnum, with  given</div><div class='add'>+ * radix.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val           A fixnum to stringify.</div><div class='add'>+ * @param[in]  base          `2` to `36` inclusive for each radix.</div><div class='add'>+ * @exception  rb_eArgError  `base` is out of range.</div><div class='add'>+ * @return     An instance of ::rb_cString representing `val`.</div><div class='add'>+ * @pre        `val` must be a Fixnum (no checks performed).</div><div class='add'>+ */</div><div class='add'>+VALUE rb_fix2str(VALUE val, int base);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Compares two `double`s.  Handy when implementing a spaceship operator.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs             A value.</div><div class='add'>+ * @param[in]  rhs             Another value.</div><div class='add'>+ * @retval     RB_INT2FIX(-1)  `lhs` is "bigger than" `rhs`.</div><div class='add'>+ * @retval     RB_INT2FIX(1)   `rhs` is "bigger than" `lhs`.</div><div class='add'>+ * @retval     RB_INT2FIX(0)   They are equal.</div><div class='add'>+ * @retval     RUBY_Qnil       Not comparable, e.g. NaN.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_dbl_cmp(double lhs, double rhs);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Raises the passed `x` to the power of `y`.</div><div class='add'>+ *</div><div class='add'>+ * @note       The return value can be really big.</div><div class='add'>+ * @note       Also the  return value  can be  really small, in  case `x`  is a</div><div class='add'>+ *             negative number.</div><div class='add'>+ * @param[in]  x          A number.</div><div class='add'>+ * @param[in]  y          Another number.</div><div class='add'>+ * @retval     Inf        Cannot express the result.</div><div class='add'>+ * @retval     1          Either `y` is 0 or `x` is 1.</div><div class='add'>+ * @retval     otherwise  An instance of ::rb_cInteger whose value is `x ** y`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function  returns Infinity  when `y` is  big enough not  to fit  into a</div><div class='add'>+ * Fixnum.  Warning is issued then.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN VALUE rb_int_positive_pow(long x, unsigned long y);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_NUMERIC_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/object.h b/include/ruby/internal/intern/object.h<br/>new file mode 100644<br/>index 0000000000..b9ffa57c06<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/object.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/object.h</a></div><div class='hunk'>@@ -0,0 +1,501 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_OBJECT_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_OBJECT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cObject.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/deprecated.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This macro is (used but) mysterious.  Why on earth do we need this?</div><div class='add'>+ *</div><div class='add'>+ * - `obj != orig` check is done anyways inside of rb_obj_init_copy().</div><div class='add'>+ * - rb_obj_init_copy() returns something.  No need are there to add `, 1`.</div><div class='add'>+ */</div><div class='add'>+#define RB_OBJ_INIT_COPY(obj, orig) \</div><div class='add'>+    ((obj) != (orig) &amp;&amp; (rb_obj_init_copy((obj), (orig)), 1))</div><div class='add'>+/** @old{RB_OBJ_INIT_COPY} */</div><div class='add'>+#define OBJ_INIT_COPY(obj, orig) RB_OBJ_INIT_COPY(obj, orig)</div><div class='add'>+</div><div class='add'>+/* object.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_class_new_instance(), except it passes  the passed keywords</div><div class='add'>+ * if any to the `#initialize` method.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc           Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv           Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]  klass          An instance of ::rb_cClass.</div><div class='add'>+ * @exception  rb_eTypeError  `klass`'s allocator is undefined.</div><div class='add'>+ * @exception  rb_eException  Any exceptions can happen inside.</div><div class='add'>+ * @return     An allocated new instance of `klass`.</div><div class='add'>+ * @note       This is _the_ implementation of `Object.new`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_new_instance_pass_kw(int argc, const VALUE *argv, VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates, then initialises an instance of  the given class.  It first calls</div><div class='add'>+ * the passed  class' allocator to  obtain an uninitialised object,  then calls</div><div class='add'>+ * its initialiser with the remaining arguments.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc           Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv           Arguments passed to `#initialize`.</div><div class='add'>+ * @param[in]  klass          An instance of ::rb_cClass.</div><div class='add'>+ * @exception  rb_eTypeError  `klass`'s allocator is undefined.</div><div class='add'>+ * @exception  rb_eException  Any exceptions can happen inside.</div><div class='add'>+ * @return     An allocated new instance of `klass`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_new_instance(int argc, const VALUE *argv, VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_class_new_instance(),  except you can specify  how to handle</div><div class='add'>+ * the last element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc             Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv             Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]  klass            An instance of ::rb_cClass.</div><div class='add'>+ * @param[in]  kw_splat         Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception  rb_eTypeError    `klass`'s allocator is undefined.</div><div class='add'>+ * @exception  rb_eException    Any exceptions can happen inside.</div><div class='add'>+ * @return     An allocated new instance of `klass`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_new_instance_kw(int argc, const VALUE *argv, VALUE klass, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks for equality of the passed objects, in terms of `Object#eql?`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs          Comparison left hand side.</div><div class='add'>+ * @param[in]  rhs          Comparison right hand side.</div><div class='add'>+ * @retval     non-zero     They are equal.</div><div class='add'>+ * @retval     0            Otherwise.</div><div class='add'>+ * @note       This  function  actually  calls `lhs.eql?(rhs)`  so  you  cannot</div><div class='add'>+ *             implement your class' `#eql?` method using it.</div><div class='add'>+ */</div><div class='add'>+int rb_eql(VALUE lhs, VALUE rhs);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates a textual representation of the given object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Arbitrary ruby object.</div><div class='add'>+ * @return     An instance of ::rb_cString that represents `obj`.</div><div class='add'>+ * @note       This is  the default  implementation of `Object#to_s`  that each</div><div class='add'>+ *             subclasses want to override.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_any_to_s(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates a human-readable textual representation of the given object.  This</div><div class='add'>+ * is  largely similar  to Ruby  level `Object#inspect`  but not  the same;  it</div><div class='add'>+ * additionally escapes the inspection result  so that the string be compatible</div><div class='add'>+ * with that of default internal (or default external, if absent).</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Arbitrary ruby object.</div><div class='add'>+ * @return     An instance of ::rb_cString that represents `obj`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_inspect(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the given object is a direct instance of the given class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Arbitrary ruby object.</div><div class='add'>+ * @param[in]  klass          An instance of ::rb_cModule.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is neither module nor class.</div><div class='add'>+ * @retval     RUBY_Qtrue     `obj` is an instance of `klass`.</div><div class='add'>+ * @retval     RUBY_Qfalse    Otherwise.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_is_instance_of(VALUE obj, VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the given object is  an instance (of possibly descendants) of the</div><div class='add'>+ * given class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Arbitrary ruby object.</div><div class='add'>+ * @param[in]  klass          An instance of ::rb_cModule.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is neither module nor class.</div><div class='add'>+ * @retval     RUBY_Qtrue     `obj` is a `klass`.</div><div class='add'>+ * @retval     RUBY_Qfalse    Otherwise.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_is_kind_of(VALUE obj, VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates an instance of the given class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass          A class to instantiate.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is not a class.</div><div class='add'>+ * @return     An allocated, not yet initialised instance of `klass`.</div><div class='add'>+ * @note       It calls  the allocator defined by  rb_define_alloc_func().  You</div><div class='add'>+ *             cannot  use   this  function   to  define  an   allocator.   Use</div><div class='add'>+ *             rb_newobj_of(), #TypedData_Make_Struct or others, instead.</div><div class='add'>+ * @note       Usually  prefer  rb_class_new_instance() to  rb_obj_alloc()  and</div><div class='add'>+ *             rb_obj_call_init().</div><div class='add'>+ * @see        rb_class_new_instance()</div><div class='add'>+ * @see        rb_obj_call_init()</div><div class='add'>+ * @see        rb_define_alloc_func()</div><div class='add'>+ * @see        rb_newobj_of()</div><div class='add'>+ * @see        #TypedData_Make_Struct</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_alloc(VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Produces a shallow copy of the given object.  Its list of instance variables</div><div class='add'>+ * are copied, but  not the objects they reference.  It  also copies the frozen</div><div class='add'>+ * value state.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Arbitrary ruby object.</div><div class='add'>+ * @exception  rb_eException  `#initialize_copy` can raise anything.</div><div class='add'>+ * @return     A "clone" of `obj`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Unlike ruby-level `Object#clone`, there is no way to control the frozen-ness</div><div class='add'>+ * of the return value.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_clone(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Duplicates  the  given   object.   This  does  almost  the   same  thing  as</div><div class='add'>+ * rb_obj_clone() do.  However  it does not copy the singleton  class (if any).</div><div class='add'>+ * It also doesn't copy frozen-ness.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Arbitrary ruby object.</div><div class='add'>+ * @exception  rb_eException  `#initialize_copy` can raise anything.</div><div class='add'>+ * @return     A shallow copy of `obj`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_dup(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Default   implementation   of  `#initialize_copy`,   `#initialize_dup`   and</div><div class='add'>+ * `#initialize_clone`.  It  does almost  nothing.  Just raises  exceptions for</div><div class='add'>+ * checks.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  dst              The destination object.</div><div class='add'>+ * @param[in]  src              The source object.</div><div class='add'>+ * @exception  rb_eFrozenError  `dst` is frozen.</div><div class='add'>+ * @exception  rb_eTypeError    `dst` and `src` have different classes.</div><div class='add'>+ * @return     Always returns `dst`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_init_copy(VALUE src, VALUE dst);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Just  calls  rb_obj_freeze_inline() inside.   Does  this  make any  sens  to</div><div class='add'>+ * extension libraries?</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj  Object to freeze.</div><div class='add'>+ * @return      Verbatim `obj`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_freeze(VALUE obj);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Just calls  RB_OBJ_FROZEN() inside.   Does this make  any sens  to extension</div><div class='add'>+ * libraries?</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj          Object in question.</div><div class='add'>+ * @retval     RUBY_Qtrue   Yes it is.</div><div class='add'>+ * @retval     RUBY_Qfalse  No it isn't.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_frozen_p(VALUE obj);</div><div class='add'>+</div><div class='add'>+/* gc.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Finds or  creates an integer  primary key of the  given object.  In  the old</div><div class='add'>+ * days  this  function  was  a  purely  arithmetic  operation  that  maps  the</div><div class='add'>+ * underlying memory  address where the  object resides into a  Ruby's integer.</div><div class='add'>+ * Some time around  2.x this changed.  It no longer  relates its return values</div><div class='add'>+ * to C level pointers.  This function  assigns some random number to the given</div><div class='add'>+ * object  if absent.   The  same number  will be  returned  on all  subsequent</div><div class='add'>+ * requests.  No two active objects share a number.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Arbitrary ruby object.</div><div class='add'>+ * @return     An instance of ::rb_cInteger which is an "identifier" of `obj`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The "some  random number" is  in fact a  monotonic-increasing process-global</div><div class='add'>+ * unique integer, much like an  `INTEGER AUTO_INCREMENT PRIMARY KEY` column in</div><div class='add'>+ * a MySQL table.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_id(VALUE obj);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_obj_id(), except it hesitates from allocating a new instance</div><div class='add'>+ * of ::rb_cInteger.  rb_obj_id() could allocate ::RUBY_T_BIGNUM objects.  That</div><div class='add'>+ * allocation  might  perhaps  impact  negatively.  On  such  situations,  this</div><div class='add'>+ * function  instead returns  one-shot temporary  small integers  that need  no</div><div class='add'>+ * allocations at all.  The values are  guaranteed unique at the moment, but no</div><div class='add'>+ * future promise  is made; could  be reused.  Use of  this API should  be very</div><div class='add'>+ * instant.  It is a failure to store the returned integer to somewhere else.</div><div class='add'>+ *</div><div class='add'>+ * In short it is difficult to use.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Arbitrary ruby object.</div><div class='add'>+ * @return     An instance of ::rb_cInteger unique at the moment.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This is roughly the old behaviour of rb_obj_id().</div><div class='add'>+ */</div><div class='add'>+VALUE rb_memory_id(VALUE obj);</div><div class='add'>+</div><div class='add'>+/* object.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Finds a "real" class.  As the name  implies there are class objects that are</div><div class='add'>+ * surreal.   This function  takes a  class, traverses  its ancestry  tree, and</div><div class='add'>+ * returns  its nearest  ancestor which  is neither  a module  nor a  singleton</div><div class='add'>+ * class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass        An instance of ::rb_cClass.</div><div class='add'>+ * @retval     RUBY_Qfalse  No real class in `klass`' ancestry tree.</div><div class='add'>+ * @retval     klass        `klass` itself is a real class.</div><div class='add'>+ * @retval     otherwise    Nearest ancestor of `klass` who is real.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_real(VALUE klass);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Determines if the given two modules are relatives.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  scion          Possible subclass.</div><div class='add'>+ * @param[in]  ascendant      Possible superclass.</div><div class='add'>+ * @exception  rb_eTypeError  `ascendant` is not a module.</div><div class='add'>+ * @retval     RUBY_Qtrue     `scion` inherits, or is equal to `ascendant`.</div><div class='add'>+ * @retval     RUBY_Qfalse    `ascendant` inherits `scion`.</div><div class='add'>+ * @retval     RUBY_Qnil      They are not relatives.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_inherited_p(VALUE scion, VALUE ascendant);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries the parent of the given class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass          A child class.</div><div class='add'>+ * @exception  rb_eTypeError  `klass` is a `Class.allocate`.</div><div class='add'>+ * @retval     RUBY_Qfalse    `klass` has no superclass.</div><div class='add'>+ * @retval     otherwise      `klass`' superclass.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Is there any class except ::rb_cBasicObject, that has no superclass?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_superclass(VALUE klass);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Converts an object into another type.  Calls the specified conversion method</div><div class='add'>+ * if necessary.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val            An object to convert.</div><div class='add'>+ * @param[in]  type           A value of enum ::ruby_value_type.</div><div class='add'>+ * @param[in]  name           Name to display on error (e.g. "Array").</div><div class='add'>+ * @param[in]  mid            Conversion method (e.g. "to_ary").</div><div class='add'>+ * @exception  rb_eTypeError  Failed to convert.</div><div class='add'>+ * @return     An object of the specified type.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_convert_type(VALUE val, int type, const char *name, const char *mid);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_convert_type(),  except it  returns ::RUBY_Qnil  instead of</div><div class='add'>+ * raising  exceptions,  in  case  of  conversion  failure.   It  still  raises</div><div class='add'>+ * exceptions  for various  reasons,  like when  the  conversion method  itself</div><div class='add'>+ * raises, though.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val            An object to convert.</div><div class='add'>+ * @param[in]  type           A value of enum ::ruby_value_type.</div><div class='add'>+ * @param[in]  name           Name to display on error (e.g. "Array").</div><div class='add'>+ * @param[in]  mid            Conversion method (e.g. "to_ary").</div><div class='add'>+ * @exception  rb_eTypeError  The `mid` does not generate `type`.</div><div class='add'>+ * @retval     RUBY_Qnil      No conversion defined.</div><div class='add'>+ * @retval     otherwise      An object of the specified type.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_check_convert_type(VALUE val, int type, const char *name, const char *mid);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_check_convert_type(), except the  return value type is fixed</div><div class='add'>+ * to ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val            An object to convert.</div><div class='add'>+ * @param[in]  mid            Conversion method (e.g. "to_ary").</div><div class='add'>+ * @exception  rb_eTypeError  The `mid` does not generate an integer.</div><div class='add'>+ * @retval     RUBY_Qnil      No conversion defined.</div><div class='add'>+ * @retval     otherwise      An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_check_to_integer(VALUE val, const char *mid);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is complicated.</div><div class='add'>+ *</div><div class='add'>+ *   - When  the passed  object is  already  an instance  of ::rb_cFloat,  just</div><div class='add'>+ *     returns it as-is.</div><div class='add'>+ *</div><div class='add'>+ *   - When  the passed  object is  something  numeric, the  function tries  to</div><div class='add'>+ *     convert it using `#to_f` method.</div><div class='add'>+ *</div><div class='add'>+ *       - If that conversion fails (this happens for instance when the numeric</div><div class='add'>+ *         is a complex) it returns ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ *       - Otherwise returns the conversion result.</div><div class='add'>+ *</div><div class='add'>+ *   - Otherwise it also returns ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val        An object to convert.</div><div class='add'>+ * @retval     RUBY_Qnil  Conversion from `val` to float is undefined.</div><div class='add'>+ * @retval     otherwise  Converted result.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_check_to_float(VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_check_to_int(),  except  it raises  in  case of  conversion</div><div class='add'>+ * mismatch.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val            An object to convert.</div><div class='add'>+ * @exception  rb_eTypeError  `#to_int` does not generate an integer.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_to_int(VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_check_to_integer(), except it uses `#to_int` for conversion.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val            An object to convert.</div><div class='add'>+ * @exception  rb_eTypeError  `#to_int` does not return an integer.</div><div class='add'>+ * @retval     RUBY_Qnil      No conversion defined.</div><div class='add'>+ * @retval     otherwise      An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_check_to_int(VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This  is the  logic behind  `Kernel#Integer`.  Numeric  types are  converted</div><div class='add'>+ * directly,  with  floating  point   numbers  being  truncated.   Strings  are</div><div class='add'>+ * interpreted  strictly; only  leading/trailing whitespaces,  plus/minus sign,</div><div class='add'>+ * radix  indicators  such  as  `0x`,  digits,  and  underscores  are  allowed.</div><div class='add'>+ * Anything else are converted by first trying `#to_int`, then `#to_i`.</div><div class='add'>+ *</div><div class='add'>+ * This is slightly stricter than `String#to_i`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val            An object to convert.</div><div class='add'>+ * @exception  rb_eArgError   Malformed `val` passed.</div><div class='add'>+ * @exception  rb_eTypeError  No conversion defined.</div><div class='add'>+ * @return     An instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_Integer(VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_check_to_float(), except it raises on error.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val            An object to convert.</div><div class='add'>+ * @exception  rb_eTypeError  No conversion defined.</div><div class='add'>+ * @return     An instance of ::rb_cFloat.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_to_float(VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This  is  the logic  behind  `Kernel#Float`.   Numeric types  are  converted</div><div class='add'>+ * directly  to the  nearest value  that a  Float can  represent.  Strings  are</div><div class='add'>+ * interpreted strictly;  only leading/trailing whitespaces are  allowed except</div><div class='add'>+ * what `strtod` understands.  Anything else are converted using `#to_f`.</div><div class='add'>+ *</div><div class='add'>+ * This is slightly stricter than `String#to_f`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val            An object to convert.</div><div class='add'>+ * @exception  rb_eArgError   Malformed `val` passed.</div><div class='add'>+ * @exception  rb_eTypeError  No conversion defined.</div><div class='add'>+ * @return     An instance of ::rb_cFloat.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_Float(VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the logic behind  `Kernel#String`.  Arguments are converted by first</div><div class='add'>+ * trying `#to_str`, then `#to_s`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val            An object to convert.</div><div class='add'>+ * @exception  rb_eTypeError  No conversion defined.</div><div class='add'>+ * @return     An instance of ::rb_cString.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_String(VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the  logic behind `Kernel#Array`.  Arguments are  converted by first</div><div class='add'>+ * trying `#to_ary`,  then `#to_a`,  and if  both failed,  returns an  array of</div><div class='add'>+ * length 1 that contains the passed argument as the sole contents.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val  An object to convert.</div><div class='add'>+ * @return     An instance of ::rb_cArray.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_Array(VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is  the logic behind  `Kernel#Hash`.  Arguments are converted  by first</div><div class='add'>+ * trying `#to_hash`.  if it failed, and  the argument is either ::RUBY_Qnil or</div><div class='add'>+ * an empty array, returns an empty hash.  Otherwise an exception is raised.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val            An object to convert.</div><div class='add'>+ * @exception  rb_eTypeError  No conversion defined.</div><div class='add'>+ * @return     An instance of ::rb_cHash.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_Hash(VALUE val);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Converts a textual representation of a  real number into a numeric, which is</div><div class='add'>+ * the nearest value that the return type  can represent, of the value that the</div><div class='add'>+ * argument represents.  This is in fact  a 2-in-1 function whose behaviour can</div><div class='add'>+ * be controlled using  the second (mode) argument.  If the  mode is zero, this</div><div class='add'>+ * function is in "historical"  mode which only understands "floating-constant"</div><div class='add'>+ * defined at ISO/IEC 9899:1990 section 6.1.3.1.  If the mode is nonzero, it is</div><div class='add'>+ * in  "extended"  mode,  which  also  accepts  "hexadecimal-floating-constant"</div><div class='add'>+ * defined at ISO/IEC 9899:2018 section 6.4.4.2.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str           A textual representation of a real number.</div><div class='add'>+ * @param[in]  mode          Conversion mode, as described above.</div><div class='add'>+ * @exception  rb_eArgError  Malformed `str` passed.</div><div class='add'>+ * @see        https://bugs.ruby-lang.org/issues/2969</div><div class='add'>+ * @note       Null pointers are allowed, and it returns 0.0 then.</div><div class='add'>+ */</div><div class='add'>+double rb_cstr_to_dbl(const char *str, int mode);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_cstr_to_dbl(), except it  accepts a Ruby's string instead of</div><div class='add'>+ * C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str           A textual representation of a real number.</div><div class='add'>+ * @param[in]  mode          Conversion mode, as described in rb_cstr_to_dbl().</div><div class='add'>+ * @exception  rb_eArgError  Malformed `str` passed.</div><div class='add'>+ * @see        https://bugs.ruby-lang.org/issues/2969</div><div class='add'>+ */</div><div class='add'>+double rb_str_to_dbl(VALUE str, int mode);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_OBJECT_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/parse.h b/include/ruby/internal/intern/parse.h<br/>new file mode 100644<br/>index 0000000000..7c4e9925b9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/parse.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/parse.h</a></div><div class='hunk'>@@ -0,0 +1,194 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_PARSE_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_PARSE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cSymbol.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* symbol.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Calculates an ID of attribute writer.   For instance it returns `:foo=` when</div><div class='add'>+ * passed `:foo`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id             An id.</div><div class='add'>+ * @exception  rb_eNameError  `id` is not for attributes (e.g. operator).</div><div class='add'>+ * @return     Calculated name of attribute writer.</div><div class='add'>+ */</div><div class='add'>+ID rb_id_attrset(ID id);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Classifies the given ID, then sees if it is a constant.  In case an ID is in</div><div class='add'>+ * Unicode (likely), its  "constant"-ness is determined if  its first character</div><div class='add'>+ * is  either upper  case or  title case.   Otherwise it  is detected  if case-</div><div class='add'>+ * folding the first character changes its case or not.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id  An id to classify.</div><div class='add'>+ * @retval     1   It is a constant.</div><div class='add'>+ * @retval     0   It isn't.</div><div class='add'>+ */</div><div class='add'>+int rb_is_const_id(ID id);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Classifies the  given ID, then  sees if it is  a global variable.   A global</div><div class='add'>+ * variable must start with `$`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id  An id to classify.</div><div class='add'>+ * @retval     1   It is a global variable.</div><div class='add'>+ * @retval     0   It isn't.</div><div class='add'>+ */</div><div class='add'>+int rb_is_global_id(ID id);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Classifies  the given  ID, then  sees  if it  is an  instance variable.   An</div><div class='add'>+ * instance variable must start with `@`, but not `@@`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id  An id to classify.</div><div class='add'>+ * @retval     1   It is an instance variable.</div><div class='add'>+ * @retval     0   It isn't.</div><div class='add'>+ */</div><div class='add'>+int rb_is_instance_id(ID id);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Classifies  the given  ID,  then sees  if  it is  an  attribute writer.   An</div><div class='add'>+ * attribute writer is otherwise a local variable, except it ends with `=`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id  An id to classify.</div><div class='add'>+ * @retval     1   It is an attribute writer.</div><div class='add'>+ * @retval     0   It isn't.</div><div class='add'>+ */</div><div class='add'>+int rb_is_attrset_id(ID id);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Classifies the  given ID,  then sees  if it  is a  class variable.   A class</div><div class='add'>+ * variable is must start with `@@`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id  An id to classify.</div><div class='add'>+ * @retval     1   It is a class variable.</div><div class='add'>+ * @retval     0   It isn't.</div><div class='add'>+ */</div><div class='add'>+int rb_is_class_id(ID id);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Classifies the  given ID,  then sees  if it  is a  local variable.   A local</div><div class='add'>+ * variable starts  with a lowercase  character, followed by  some alphanumeric</div><div class='add'>+ * characters or `_`, then ends with anything other than `!`, `?`, or `=`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id  An id to classify.</div><div class='add'>+ * @retval     1   It is a local variable.</div><div class='add'>+ * @retval     0   It isn't.</div><div class='add'>+ */</div><div class='add'>+int rb_is_local_id(ID id);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Classifies the  given ID,  then sees  if it  is a  junk ID.   An ID  with no</div><div class='add'>+ * special syntactic structure is considered  junk.  This category includes for</div><div class='add'>+ * instance punctuation.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id  An id to classify.</div><div class='add'>+ * @retval     1   It is a junk.</div><div class='add'>+ * @retval     0   It isn't.</div><div class='add'>+ */</div><div class='add'>+int rb_is_junk_id(ID);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Sees if  the passed C string  constructs a valid syntactic  symbol.  Invalid</div><div class='add'>+ * ones for instance includes whitespaces.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A C string to check.</div><div class='add'>+ * @retval     1    It is a valid symbol name.</div><div class='add'>+ * @retval     0    It is invalid as a symbol name.</div><div class='add'>+ */</div><div class='add'>+int rb_symname_p(const char *str);</div><div class='add'>+</div><div class='add'>+/* vm.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the last match, or `Regexp.last_match`, or the `$~`.  You don't have</div><div class='add'>+ * to use it, because in reality you can get `$~` using rb_gv_get() as usual.</div><div class='add'>+ *</div><div class='add'>+ * @retval  RUBY_Qnil  The method has not ran a regular expression.</div><div class='add'>+ * @retval  otherwise  An instance of ::rb_cMatch.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_backref_get(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Updates `$~`.  You don't have to use it, because in reality you can set `$~`</div><div class='add'>+ * using rb_gv_set() as usual.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  md  Arbitrary Ruby object.</div><div class='add'>+ * @post       The passed object is assigned to `$~`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Yes, this  function bypasses  the Check_Type()  that would  normally prevent</div><div class='add'>+ * evil souls from assigning  evil objects to `$~`.  Use of  this function is a</div><div class='add'>+ * really bad smell.</div><div class='add'>+ */</div><div class='add'>+void rb_backref_set(VALUE md);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the last  line, or the `$_`.   You don't have to use  it, because in</div><div class='add'>+ * reality you can get `$_` using rb_gv_get() as usual.</div><div class='add'>+ *</div><div class='add'>+ * @retval  RUBY_Qnil  There has never been a "line" yet.</div><div class='add'>+ * @retval  otherwise  The last set `$_` value.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_lastline_get(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Updates `$_`.  You don't have to use it, because in reality you can set `$_`</div><div class='add'>+ * using rb_gv_set() as usual.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  Arbitrary Ruby object.</div><div class='add'>+ * @post       The passed object is assigned to `$_`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Unlike `$~`, you can assign non-strings to `$_`, even from ruby scripts.</div><div class='add'>+ */</div><div class='add'>+void rb_lastline_set(VALUE str);</div><div class='add'>+</div><div class='add'>+/* symbol.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Collects every single bits of symbols  that have ever interned in the entire</div><div class='add'>+ * history of the current process.</div><div class='add'>+ *</div><div class='add'>+ * @return  An array that contains all symbols that have ever existed.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_sym_all_symbols(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_PARSE_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/proc.h b/include/ruby/internal/intern/proc.h<br/>new file mode 100644<br/>index 0000000000..b8c3c5e146<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/proc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/proc.h</a></div><div class='hunk'>@@ -0,0 +1,353 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_PROC_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_PROC_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cProc.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/iterator.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* proc.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Constructs a  Proc object  from implicitly passed  components.  When  a ruby</div><div class='add'>+ * method is  called with a block,  that block is not  explicitly passed around</div><div class='add'>+ * using C level function parameters.   This function gathers all the necessary</div><div class='add'>+ * info to turn them into a Ruby level instance of ::rb_cProc.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eArgError  There is no passed block.</div><div class='add'>+ * @return     An instance of ::rb_cProc.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_block_proc(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_proc_new(), except it returns a lambda.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eArgError  There is no passed block.</div><div class='add'>+ * @return     An instance of ::rb_cProc.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_block_lambda(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is an rb_iterate() + rb_block_proc() combo.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * VALUE</div><div class='add'>+ * my_own_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(y, c))</div><div class='add'>+ * {</div><div class='add'>+ *     const auto plus = rb_intern("+");</div><div class='add'>+ *     return rb_funcall(c, plus, 1, y);</div><div class='add'>+ * }</div><div class='add'>+ *</div><div class='add'>+ * VALUE</div><div class='add'>+ * my_own_method(VALUE self)</div><div class='add'>+ * {</div><div class='add'>+ *     return rb_proc_new(my_own_iterator, self);</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  func          A backend function of a proc.</div><div class='add'>+ * @param[in]  callback_arg  Passed to `func`'s callback_arg.</div><div class='add'>+ * @return     A C-backended proc object.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+VALUE rb_proc_new(rb_block_call_func_t func, VALUE callback_arg);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the given object is a proc.</div><div class='add'>+ *</div><div class='add'>+ * @note       This is about the object's data structure, not its class etc.</div><div class='add'>+ * @param[in]  recv         Object in question.</div><div class='add'>+ * @retval     RUBY_Qtrue   It is a proc.</div><div class='add'>+ * @retval     RUBY_Qfalse  Otherwise.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_is_proc(VALUE recv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Evaluates the passed proc with the passed arguments.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv           The proc to call.</div><div class='add'>+ * @param[in]  args           An instance of ::RArray which is the arguments.</div><div class='add'>+ * @exception  rb_eException  Any exceptions happen inside.</div><div class='add'>+ * @return     What the proc evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_proc_call(VALUE recv, VALUE args);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_proc_call(),  except you can specify how to  handle the last</div><div class='add'>+ * element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv             The proc to call.</div><div class='add'>+ * @param[in]  args             An instance of ::RArray which is the arguments.</div><div class='add'>+ * @param[in]  kw_splat         Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `args`' last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `args`' last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception  rb_eException    Any exceptions happen inside.</div><div class='add'>+ * @return     What the proc evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_proc_call_kw(VALUE recv, VALUE args, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_proc_call(),  except you can additionally  pass another proc</div><div class='add'>+ * object, as a block.  Nowadays procs can take blocks:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * l = -&gt; (positional, optional=nil, *rest, kwarg:, **kwrest, &amp;block) {</div><div class='add'>+ *   #                   ... how can we pass this `&amp;block`?   ^^^^^^</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * And this function is to pass one to such procs.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv           The proc to call.</div><div class='add'>+ * @param[in]  argc           Number of arguments.</div><div class='add'>+ * @param[in]  argv           Arbitrary number of proc arguments.</div><div class='add'>+ * @param[in]  proc           Proc as a passed block.</div><div class='add'>+ * @exception  rb_eException  Any exceptions happen inside.</div><div class='add'>+ * @return     What the proc evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_proc_call_with_block(VALUE recv, int argc, const VALUE *argv, VALUE proc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_proc_call_with_block(), except you can specify how to handle</div><div class='add'>+ * the last  element of  the given  array.  It can  also be  seen as  a routine</div><div class='add'>+ * identical  to rb_proc_call_kw(),  except you  can additionally  pass another</div><div class='add'>+ * proc object as a block.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv             The proc to call.</div><div class='add'>+ * @param[in]  argc             Number of arguments.</div><div class='add'>+ * @param[in]  argv             Arbitrary number of proc arguments.</div><div class='add'>+ * @param[in]  proc             Proc as a passed block.</div><div class='add'>+ * @param[in]  kw_splat         Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `args`' last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `args`' last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception  rb_eException    Any exceptions happen inside.</div><div class='add'>+ * @return     What the proc evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_proc_call_with_block_kw(VALUE recv, int argc, const VALUE *argv, VALUE proc, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the number  of mandatory arguments of the given  Proc.  If its block</div><div class='add'>+ * is declared  to take no  arguments, returns `0`.  If  the block is  known to</div><div class='add'>+ * take  exactly  `n`  arguments,  returns  `n`.  If  the  block  has  optional</div><div class='add'>+ * arguments, returns `-n-1`,  where `n` is the number  of mandatory arguments,</div><div class='add'>+ * with the exception  for blocks that are  not lambdas and have  only a finite</div><div class='add'>+ * number of  optional arguments;  in this latter  case, returns  `n`.  Keyword</div><div class='add'>+ * arguments will be considered as  a single additional argument, that argument</div><div class='add'>+ * being mandatory if any keyword argument is mandatory.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv  Target Proc object.</div><div class='add'>+ * @retval     0     It takes no arguments.</div><div class='add'>+ * @retval     &gt;0    It takes exactly this number of arguments.</div><div class='add'>+ * @retval     &lt;0    It takes optional arguments.</div><div class='add'>+ */</div><div class='add'>+int rb_proc_arity(VALUE recv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the given object is a lambda.  Instances of ::rb_cProc are either</div><div class='add'>+ * lambda  or  proc.   They  differ  in  several  points.   This  function  can</div><div class='add'>+ * distinguish them without actually evaluating their contents.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv         Target proc object.</div><div class='add'>+ * @retval     RUBY_Qtrue   It is a lambda.</div><div class='add'>+ * @retval     RUBY_Qfalse  Otherwise.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_proc_lambda_p(VALUE recv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Snapshots the  current execution  context and  turn it  into an  instance of</div><div class='add'>+ * ::rb_cBinding.</div><div class='add'>+ *</div><div class='add'>+ * @return  An instance of ::rb_cBinding.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_binding_new(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a method object.  A method object is a proc-like object that you can</div><div class='add'>+ * "call".  Note  that a  method object  snapshots the method  at the  time the</div><div class='add'>+ * object is created:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * class Foo</div><div class='add'>+ *   def foo</div><div class='add'>+ *     return 1</div><div class='add'>+ *   end</div><div class='add'>+ * end</div><div class='add'>+ *</div><div class='add'>+ * obj = Foo.new.method(:foo)</div><div class='add'>+ *</div><div class='add'>+ * class Foo</div><div class='add'>+ *   def foo</div><div class='add'>+ *     return 2</div><div class='add'>+ *   end</div><div class='add'>+ * end</div><div class='add'>+ *</div><div class='add'>+ * obj.call # =&gt; 1, not 2.</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  recv               Receiver of the method.</div><div class='add'>+ * @param[in]  mid                Method name, in either String or Symbol.</div><div class='add'>+ * @exception  rb_eNoMethodError  No such method.</div><div class='add'>+ * @return     An instance of ::rb_cMethod.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_method(VALUE recv, VALUE mid);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the given object is a method.</div><div class='add'>+ *</div><div class='add'>+ * @note       This is about the object's data structure, not its class etc.</div><div class='add'>+ * @param[in]  recv         Object in question.</div><div class='add'>+ * @retval     RUBY_Qtrue   It is a method.</div><div class='add'>+ * @retval     RUBY_Qfalse  Otherwise.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_is_method(VALUE recv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Evaluates the passed method with the passed arguments.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc           Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv           Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]  recv           The method object to call.</div><div class='add'>+ * @exception  rb_eTypeError  `recv` is not a method.</div><div class='add'>+ * @exception  rb_eException  Any exceptions happen inside.</div><div class='add'>+ * @return     What the method returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_method_call(int argc, const VALUE *argv, VALUE recv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_method_call(), except you can specify how to handle the last</div><div class='add'>+ * element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc             Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv             Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]  recv             The method object to call.</div><div class='add'>+ * @param[in]  kw_splat         Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `args`' last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `args`' last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception  rb_eTypeError    `recv` is not a method.</div><div class='add'>+ * @exception  rb_eException    Any exceptions happen inside.</div><div class='add'>+ * @return     What the method returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_method_call_kw(int argc, const VALUE *argv, VALUE recv, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_proc_call(), except you can  additionally pass a proc  as a</div><div class='add'>+ * block.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc           Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv           Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]  recv           The method object to call.</div><div class='add'>+ * @param[in]  proc           Proc as a passed block.</div><div class='add'>+ * @exception  rb_eTypeError  `recv` is not a method.</div><div class='add'>+ * @exception  rb_eException  Any exceptions happen inside.</div><div class='add'>+ * @return     What the method returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_method_call_with_block(int argc, const VALUE *argv, VALUE recv, VALUE proc);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_method_call_with_block(),  except  you can  specify how  to</div><div class='add'>+ * handle  the last  element of  the given  array.  It  can also  be seen  as a</div><div class='add'>+ * routine identical  to rb_method_call_kw(), except you  can additionally pass</div><div class='add'>+ * another proc object as a block.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc             Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv             Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]  recv             The method object to call.</div><div class='add'>+ * @param[in]  proc             Proc as a passed block.</div><div class='add'>+ * @param[in]  kw_splat         Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `args`' last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `args`' last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @exception  rb_eTypeError    `recv` is not a method.</div><div class='add'>+ * @exception  rb_eException    Any exceptions happen inside.</div><div class='add'>+ * @return     What the method returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_method_call_with_block_kw(int argc, const VALUE *argv, VALUE recv, VALUE proc, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the number of mandatory arguments of the method defined in the given</div><div class='add'>+ * module.  If it is  declared to take no arguments, returns  `0`.  If it takes</div><div class='add'>+ * exactly `n` arguments,  returns `n`.  If it has  optional arguments, returns</div><div class='add'>+ * `-n-1`, where `n`  is the number of mandatory  arguments.  Keyword arguments</div><div class='add'>+ * will  be considered  as a  single additional  argument, that  argument being</div><div class='add'>+ * mandatory if any keyword argument is mandatory.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mod   Namespace to search a method for.</div><div class='add'>+ * @param[in]  mid   Method id.</div><div class='add'>+ * @retval     0     It takes no arguments.</div><div class='add'>+ * @retval     &gt;0    It takes exactly this number of arguments.</div><div class='add'>+ * @retval     &lt;0    It takes optional arguments.</div><div class='add'>+ */</div><div class='add'>+int rb_mod_method_arity(VALUE mod, ID mid);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_mod_method_arity(), except it searches for singleton methods</div><div class='add'>+ * rather than instance methods.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj   Object to search for a singleton method.</div><div class='add'>+ * @param[in]  mid   Method id.</div><div class='add'>+ * @retval     0     It takes no arguments.</div><div class='add'>+ * @retval     &gt;0    It takes exactly this number of arguments.</div><div class='add'>+ * @retval     &lt;0    It takes optional arguments.</div><div class='add'>+ */</div><div class='add'>+int rb_obj_method_arity(VALUE obj, ID mid);</div><div class='add'>+</div><div class='add'>+/* eval.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Protects a  function call from  potential global escapes from  the function.</div><div class='add'>+ * Such global escapes include exceptions, `throw`, `break`, for example.</div><div class='add'>+ *</div><div class='add'>+ * It first calls the function func with  `args` as the argument.  If no global</div><div class='add'>+ * escape occurred during  the function, it returns the result  and `*state` is</div><div class='add'>+ * zero.  Otherwise, it  returns ::RUBY_Qnil and sets `*state`  to nonzero.  If</div><div class='add'>+ * `state` is `NULL`, it is not set in both cases.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   func   A function that potentially escapes globally.</div><div class='add'>+ * @param[in]   args   Passed as-is to `func`.</div><div class='add'>+ * @param[out]  state  State of execution.</div><div class='add'>+ * @return      What  `func` returns,  or an  undefined value  when it  did not</div><div class='add'>+ *              return.</div><div class='add'>+ * @post        `*state` is set to zero if succeeded.  Nonzero otherwise.</div><div class='add'>+ * @warning     You have to clear the error info with `rb_set_errinfo(Qnil)` if</div><div class='add'>+ *              you decide to ignore the caught exception.</div><div class='add'>+ * @see         rb_eval_string_protect()</div><div class='add'>+ * @see         rb_load_protect()</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The "undefined value"  described above is in fact ::RUBY_Qnil  for now.  But</div><div class='add'>+ * @shyouhei doesn't think that we would never change that.</div><div class='add'>+ *</div><div class='add'>+ * Though   not  a   part  of   our  public   API,  `state`   is  in   fact  an</div><div class='add'>+ * enum ruby_tag_type.  You can  see the potential "nonzero"  values by looking</div><div class='add'>+ * at vm_core.h.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_protect(VALUE (*func)(VALUE args), VALUE args, int *state);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_PROC_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/process.h b/include/ruby/internal/intern/process.h<br/>new file mode 100644<br/>index 0000000000..7a7b24ed4b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/process.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/process.h</a></div><div class='hunk'>@@ -0,0 +1,273 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_PROCESS_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_PROCESS_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_mProcess.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/config.h"      /* rb_pid_t is defined here. */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* process.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Sets the "last status", or the `$?`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  status  The termination status, as defined in `waitpid(3posix)`.</div><div class='add'>+ * @param[in]  pid     The last child of the current process.</div><div class='add'>+ * @post       `$?` is updated.</div><div class='add'>+ */</div><div class='add'>+void rb_last_status_set(int status, rb_pid_t pid);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the "last status", or the `$?`.</div><div class='add'>+ *</div><div class='add'>+ * @retval  RUBY_Qnil  The current thread has no dead children.</div><div class='add'>+ * @retval  otherwise  An instance of Process::Status  describing the status of</div><div class='add'>+ *                     the child that was most recently `wait`-ed.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_last_status_get(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Executes a shell command.</div><div class='add'>+ *</div><div class='add'>+ * @warning    THIS FUNCTION RETURNS on error!</div><div class='add'>+ * @param[in]  cmd  Passed to the shell.</div><div class='add'>+ * @retval     -1   Something prevented the command execution.</div><div class='add'>+ * @post       Upon successful execution this function doesn't return.</div><div class='add'>+ * @post       In case it returns the `errno` is set properly.</div><div class='add'>+ */</div><div class='add'>+int rb_proc_exec(const char *cmd);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Replaces the current process by running the given external command.  This is</div><div class='add'>+ * the implementation of `Kernel#exec`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc                 Number of objects in `argv`.</div><div class='add'>+ * @param[in]  argv                 Command and its options to execute.</div><div class='add'>+ * @exception  rb_eTypeError        Invalid options e.g. non-String argv.</div><div class='add'>+ * @exception  rb_eArgError         Invalid options e.g. redirection cycle.</div><div class='add'>+ * @exception  rb_eNotImpError      Not implemented e.g. no `setuid(2)`.</div><div class='add'>+ * @exception  rb_eRuntimeError     `Process::UID.switch` in operation.</div><div class='add'>+ * @exception  rb_eSystemCallError  `execve(2)` failed.</div><div class='add'>+ * @warning    This function doesn't return.</div><div class='add'>+ * @warning    On failure it raises.  On success the process is replaced.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei have to say that the  rdoc for `Kernel#exec` is fairly incomplete.</div><div class='add'>+ * AFAIK this function ultimately takes the following signature:</div><div class='add'>+ *</div><div class='add'>+ * ```rbs</div><div class='add'>+ * type boolx  = bool | nil                # !=  `boolish`</div><div class='add'>+ *</div><div class='add'>+ * type rlim_t = Integer                   # rlim_cur</div><div class='add'>+ *             | [ Integer, Integer ]      # rlim_cur, rlim_max</div><div class='add'>+ *</div><div class='add'>+ * type uid_t  = String                    # e.g. "root"</div><div class='add'>+ *             | Integer                   # e.g. 0</div><div class='add'>+ *</div><div class='add'>+ * type gid_t  = String                    # e.g. "wheel"</div><div class='add'>+ *             | Integer                   # e.g. 0</div><div class='add'>+ *</div><div class='add'>+ * type fmode  = String                    # e.g. "rb"</div><div class='add'>+ *             | Integer                   # e.g. O_RDONLY | O_BINARY</div><div class='add'>+ *</div><div class='add'>+ * type mode_t = Integer                   # e.g. 0644</div><div class='add'>+ *</div><div class='add'>+ * type pgrp   = true                      # Creates a dedicated pgroup</div><div class='add'>+ *             | 0                         # ditto</div><div class='add'>+ *             | nil                       # Uses the current one</div><div class='add'>+ *             | Integer                   # Uses this specific pgroup</div><div class='add'>+ *</div><div class='add'>+ * type fd     = :in                       # STDIN</div><div class='add'>+ *             | :out                      # STDOUT</div><div class='add'>+ *             | :err                      # STDERR</div><div class='add'>+ *             | IO                        # This specific IO</div><div class='add'>+ *             | Integer                   # A file descriptor of this #</div><div class='add'>+ *</div><div class='add'>+ * type src    = fd | [ fd ]</div><div class='add'>+ * type dst    = :close                    # Intuitive</div><div class='add'>+ *             | fd                        # Intuitive</div><div class='add'>+ *             | String                    # Open a file at this path</div><div class='add'>+ *             | [ String ]                # ... using O_RDONLY</div><div class='add'>+ *             | [ String, fmode ]         # ... using this mode</div><div class='add'>+ *             | [ String, fmode, mode_t ] # ... with a permission</div><div class='add'>+ *             | [ :child, fd ]            # fd of child side</div><div class='add'>+ *</div><div class='add'>+ * type redir  = Hash[ src, dst ]</div><div class='add'>+ *</div><div class='add'>+ * # ----</div><div class='add'>+ *</div><div class='add'>+ * # Key-value pair of environment variables</div><div class='add'>+ * type envp  = Hash[ String, String ]</div><div class='add'>+ *</div><div class='add'>+ * # Actual name (and the name passed to the subprocess if any)</div><div class='add'>+ * type arg0  = String | [ String, String ]</div><div class='add'>+ *</div><div class='add'>+ * # Arbitrary string parameters</div><div class='add'>+ * type argv  = String</div><div class='add'>+ *</div><div class='add'>+ * # Exec options:</div><div class='add'>+ * type argh  = redir | {</div><div class='add'>+ *   chdir:             String, # Working directory</div><div class='add'>+ *   close_others:      boolx,  # O_CLOEXEC like behaviour</div><div class='add'>+ *   gid:               gid_t,  # setegid(2)</div><div class='add'>+ *   pgrooup:           pgrp,   # setpgrp(2)</div><div class='add'>+ *   rlimit_as:         rlim_t, # setrlimit(2)</div><div class='add'>+ *   rlimit_core:       rlim_t, # ditto</div><div class='add'>+ *   rlimit_cpu:        rlim_t, # ditto</div><div class='add'>+ *   rlimit_data:       rlim_t, # ditto</div><div class='add'>+ *   rlimit_fsize:      rlim_t, # ditto</div><div class='add'>+ *   rlimit_memlock:    rlim_t, # ditto</div><div class='add'>+ *   rlimit_msgqueue:   rlim_t, # ditto</div><div class='add'>+ *   rlimit_nice:       rlim_t, # ditto</div><div class='add'>+ *   rlimit_nofile:     rlim_t, # ditto</div><div class='add'>+ *   rlimit_nproc:      rlim_t, # ditto</div><div class='add'>+ *   rlimit_rss:        rlim_t, # ditto</div><div class='add'>+ *   rlimit_rtprio:     rlim_t, # ditto</div><div class='add'>+ *   rlimit_rttime:     rlim_t, # ditto</div><div class='add'>+ *   rlimit_sbsize:     rlim_t, # ditto</div><div class='add'>+ *   rlimit_sigpending: rlim_t, # ditto</div><div class='add'>+ *   rlimit_stack:      rlim_t, # ditto</div><div class='add'>+ *   uid:               uid_t,  # seteuid(2)</div><div class='add'>+ *   umask:             mode_t, # umask(2)</div><div class='add'>+ *   unsetenv_others:   boolx   # Unset everything except the passed envp</div><div class='add'>+ * }</div><div class='add'>+ *</div><div class='add'>+ * # ====</div><div class='add'>+ *</div><div class='add'>+ * class Kernel</div><div class='add'>+ *   def self?.exec</div><div class='add'>+ *     : (          arg0 cmd, *argv args           ) -&gt; void</div><div class='add'>+ *     | (          arg0 cmd, *argv args, argh opts) -&gt; void</div><div class='add'>+ *     | (envp env, arg0 cmd, *argv args           ) -&gt; void</div><div class='add'>+ *     | (envp env, arg0 cmd, *argv args, argh opts) -&gt; void</div><div class='add'>+ * end</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+VALUE rb_f_exec(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Waits for a process, with releasing GVL.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   pid        Process ID.</div><div class='add'>+ * @param[out]  status     The wait status is filled back.</div><div class='add'>+ * @param[in]   flags      Wait options.</div><div class='add'>+ * @retval      -1         System call failed, errno set.</div><div class='add'>+ * @retval      0          WNOHANG but no waitable children.</div><div class='add'>+ * @retval      otherwise  A process ID that was `wait()`-ed.</div><div class='add'>+ * @post        Upon successful return `status` is updated to have the process'</div><div class='add'>+ *              status.</div><div class='add'>+ * @note        `status` can be NULL.</div><div class='add'>+ * @note        The arguments are passed  through to underlying system call(s).</div><div class='add'>+ *              Can have special meanings.  For instance passing `(rb_pid_t)-1`</div><div class='add'>+ *              to   `pid`   means   it   waits  for   any   processes,   under</div><div class='add'>+ *              POSIX-compliant situations.</div><div class='add'>+ */</div><div class='add'>+rb_pid_t rb_waitpid(rb_pid_t pid, int *status, int flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is  a shorthand of  rb_waitpid without status  and flags.  It  has been</div><div class='add'>+ * like this  since the very beginning.   The initial revision already  did the</div><div class='add'>+ * same thing.  Not sure why, then, it has been named `syswait`.  AFAIK this is</div><div class='add'>+ * different from how `wait(3posix)` works.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  pid  Passed to rb_waitpid().</div><div class='add'>+ */</div><div class='add'>+void rb_syswait(rb_pid_t pid);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_f_exec(),  except  it  spawns a  child  process instead  of</div><div class='add'>+ * replacing the current one.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc              Number of objects in `argv`.</div><div class='add'>+ * @param[in]  argv              Command and its options to execute.</div><div class='add'>+ * @exception  rb_eTypeError     Invalid options e.g. non-String argv.</div><div class='add'>+ * @exception  rb_eArgError      Invalid options e.g. redirection cycle.</div><div class='add'>+ * @exception  rb_eNotImpError   Not implemented e.g. no `setuid(2)`.</div><div class='add'>+ * @exception  rb_eRuntimeError  `Process::UID.switch` in operation.</div><div class='add'>+ * @retval     -1                Child process died for some reason.</div><div class='add'>+ * @retval     otherwise         The ID of the born child.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  is _really_  identical  to rb_f_exec()  until  ultimately calling  the</div><div class='add'>+ * system  call.    Almost  everything   are  shared   among  these   two  (and</div><div class='add'>+ * rb_f_system()).</div><div class='add'>+ */</div><div class='add'>+rb_pid_t rb_spawn(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_spawn(),  except  you can  additionally  know the  detailed</div><div class='add'>+ * situation in case of abnormal parturitions.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   argc              Number of objects in `argv`.</div><div class='add'>+ * @param[in]   argv              Command and its options to execute.</div><div class='add'>+ * @param[out]  errbuf            Error description write-back buffer.</div><div class='add'>+ * @param[in]   buflen            Number of bytes of `errbuf`, including NUL.</div><div class='add'>+ * @exception   rb_eTypeError     Invalid options e.g. non-String argv.</div><div class='add'>+ * @exception   rb_eArgError      Invalid options e.g. redirection cycle.</div><div class='add'>+ * @exception   rb_eNotImpError   Not implemented e.g. no `setuid(2)`.</div><div class='add'>+ * @exception   rb_eRuntimeError  `Process::UID.switch` in operation.</div><div class='add'>+ * @retval      -1                Child process died for some reason.</div><div class='add'>+ * @retval      otherwise         The ID of the born child.</div><div class='add'>+ * @post        In case  of `-1`, at most  `buflen` bytes of the  reason why is</div><div class='add'>+ *              written back to `errbuf`.</div><div class='add'>+ */</div><div class='add'>+rb_pid_t rb_spawn_err(int argc, const VALUE *argv, char *errbuf, size_t buflen);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Gathers info about resources consumed by the current process.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  _  Not used.  Pass anything.</div><div class='add'>+ * @return     An instance of `Process::Tms`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function  might or might  not exist depending on  `./confiugre` result.</div><div class='add'>+ * It must be a portability hell.  Better not use.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_proc_times(VALUE _);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * "Detaches"  a subprocess.   In POSIX  systems every  child processes  that a</div><div class='add'>+ * process creates must be `wait(2)`-ed.  A child process that died yet has not</div><div class='add'>+ * been  waited so  far  is called  a  "zombie", which  more  or less  consumes</div><div class='add'>+ * resources.   This function  automates reclamation  of such  processes.  Once</div><div class='add'>+ * after this function successfully returns  you can basically forget about the</div><div class='add'>+ * child process.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  pid  Process to wait.</div><div class='add'>+ * @return     An instance of ::rb_cThread which is `waitpid(2)`-ing `pid`.</div><div class='add'>+ * @post       You can just forget about the return value.  GC reclaims it.</div><div class='add'>+ * @post       You  can  know the  exit  status  by  querying `#value`  of  the</div><div class='add'>+ *             return value (which is a blocking operation).</div><div class='add'>+ */</div><div class='add'>+VALUE rb_detach_process(rb_pid_t pid);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_PROCESS_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/random.h b/include/ruby/internal/intern/random.h<br/>new file mode 100644<br/>index 0000000000..5577f53cb4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/random.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/random.h</a></div><div class='hunk'>@@ -0,0 +1,116 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_RANDOM_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_RANDOM_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      MT19937 backended pseudo random number generator.</div><div class='add'>+ * @see        Matsumoto,  M.,   Nishimura,  T.,  "Mersenne  Twister:   A  623-</div><div class='add'>+ *             dimensionally   equidistributed   uniform  pseudorandom   number</div><div class='add'>+ *             generator", ACM  Trans. on  Modeling and Computer  Simulation, 8</div><div class='add'>+ *             (1): pp 3-30, 1998.  https://doi.org/10.1145/272991.272995</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* random.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates a 32 bit random number.</div><div class='add'>+ *</div><div class='add'>+ * @return  A random number.</div><div class='add'>+ * @note    Now  that  we  have  ractors,  the  RNG  behind  this  function  is</div><div class='add'>+ *          per-ractor.</div><div class='add'>+ */</div><div class='add'>+unsigned int rb_genrand_int32(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates a `double` random number.</div><div class='add'>+ *</div><div class='add'>+ * @return  A random number.</div><div class='add'>+ * @note    This function shares the RNG with rb_genrand_int32().</div><div class='add'>+ */</div><div class='add'>+double rb_genrand_real(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resets the RNG behind rb_genrand_int32()/rb_genrand_real().</div><div class='add'>+ *</div><div class='add'>+ * @post  The (now per-ractor) default RNG's internal state is cleared.</div><div class='add'>+ */</div><div class='add'>+void rb_reset_random_seed(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates a String of random bytes.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  rnd  An instance of ::rb_cRandom.</div><div class='add'>+ * @param[in]      n    Requested number of bytes.</div><div class='add'>+ * @return         An instance of ::rb_cString, of binary, of `n` bytes length,</div><div class='add'>+ *                 whose contents are random bits.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't know if this is an  Easter egg or an official feature, but</div><div class='add'>+ * this function can  take a wider range of objects,  such as `Socket::Ifaddr`.</div><div class='add'>+ * The arguments are just silently ignored and the default RNG is used instead,</div><div class='add'>+ * if they are non-RNG.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_random_bytes(VALUE rnd, long n);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_genrand_int32(), except it generates using the passed RNG.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  rnd  An instance of ::rb_cRandom.</div><div class='add'>+ * @return         A random number.</div><div class='add'>+ */</div><div class='add'>+unsigned int rb_random_int32(VALUE rnd);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_genrand_real(), except it generates using the passed RNG.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  rnd  An instance of ::rb_cRandom.</div><div class='add'>+ * @return         A random number.</div><div class='add'>+ */</div><div class='add'>+double rb_random_real(VALUE rnd);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_genrand_ulong_limited(),  except it  generates  using  the</div><div class='add'>+ * passed RNG.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  rnd    An instance of ::rb_cRandom.</div><div class='add'>+ * @param[in]      limit  Max possible return value.</div><div class='add'>+ * @return         A random number, distributed in `[0, limit]` interval.</div><div class='add'>+ * @note           Note it can return `limit`.</div><div class='add'>+ * @note           Whether  the  return  value  distributes  uniformly  in  the</div><div class='add'>+ *                 interval or not depends on  how the argument RNG behaves; at</div><div class='add'>+ *                 least in case of MT19937 it does.</div><div class='add'>+ */</div><div class='add'>+unsigned long rb_random_ulong_limited(VALUE rnd, unsigned long limit);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates a random number whose upper limit is `i`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  i  Max possible return value.</div><div class='add'>+ * @return     A random number, uniformly distributed in `[0, limit]` interval.</div><div class='add'>+ * @note       Note it can return `i`.</div><div class='add'>+ */</div><div class='add'>+unsigned long rb_genrand_ulong_limited(unsigned long i);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_RANDOM_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/range.h b/include/ruby/internal/intern/range.h<br/>new file mode 100644<br/>index 0000000000..1f7d7c313f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/range.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/range.h</a></div><div class='hunk'>@@ -0,0 +1,89 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_RANGE_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_RANGE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cRange.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* range.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a new Range.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  beg           "Left" or "lowest" endpoint of the range.</div><div class='add'>+ * @param[in]  end           "Right" or "highest" endpoint of the range.</div><div class='add'>+ * @param[in]  excl          Whether the range is open-ended.</div><div class='add'>+ * @exception  rb_eArgError  `beg` and `end` are not comparable.</div><div class='add'>+ * @note       These days both  endpoints can be ::RUBY_Qnil,  which means that</div><div class='add'>+ *             endpoint is unbound.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_range_new(VALUE beg, VALUE end, int excl);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Deconstructs  a numerical  range.  As  the  arguments are  `long` based,  it</div><div class='add'>+ * expects everything are in the `long` domain.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   range           A range of numerical endpoints.</div><div class='add'>+ * @param[out]  begp            Return value buffer.</div><div class='add'>+ * @param[out]  lenp            Return value buffer.</div><div class='add'>+ * @param[in]   len             Updated length.</div><div class='add'>+ * @param[in]   err             In case `len` is out of range...</div><div class='add'>+ *                                - `0`: returns ::RUBY_Qnil.</div><div class='add'>+ *                                - `1`: raises  ::rb_eRangeError.</div><div class='add'>+ *                                - `2`: `beg` and `len` expanded accordingly.</div><div class='add'>+ * @exception   rb_eTypeError   `range` is not a numerical range.</div><div class='add'>+ * @exception   rb_eRangeError  `range` cannot fit into `long`.</div><div class='add'>+ * @retval      RUBY_Qfalse     `range` is not an ::rb_cRange.</div><div class='add'>+ * @retval      RUBY_Qnil       `len` is out of `range` but `err` is zero.</div><div class='add'>+ * @retval      RUBY_Qtrue      Otherwise.</div><div class='add'>+ * @post        `beg` is the (possibly updated) left endpoint.</div><div class='add'>+ * @post        `len` is the (possibly updated) length of the range.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The complex  error handling  switch reflects the  fact that  `Array#[]=` and</div><div class='add'>+ * `String#[]=` behave differently when they take ranges.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_range_beg_len(VALUE range, long *begp, long *lenp, long len, int err);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Deconstructs a range into its components.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   range        Range or range-ish object.</div><div class='add'>+ * @param[out]  begp         Return value buffer.</div><div class='add'>+ * @param[out]  endp         Return value buffer.</div><div class='add'>+ * @param[out]  exclp        Return value buffer.</div><div class='add'>+ * @retval      RUBY_Qfalse  `range` is not an instance of ::rb_cRange.</div><div class='add'>+ * @retval      RUBY_Qtrue   Argument pointers are updated.</div><div class='add'>+ * @post        `*begp` is the left endpoint of the range.</div><div class='add'>+ * @post        `*endp` is the right endpoint of the range.</div><div class='add'>+ * @post        `*exclp` is whether the range is open-ended or not.</div><div class='add'>+ */</div><div class='add'>+int rb_range_values(VALUE range, VALUE *begp, VALUE *endp, int *exclp);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_RANGE_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/rational.h b/include/ruby/internal/intern/rational.h<br/>new file mode 100644<br/>index 0000000000..ff4beca297<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/rational.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/rational.h</a></div><div class='hunk'>@@ -0,0 +1,172 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_RATIONAL_H                     /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_RATIONAL_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cRational.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/arithmetic/long.h" /* INT2FIX is here. */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* rational.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_rational_new(), except it skips argument validations.  It is</div><div class='add'>+ * thus  dangerous  for extension  libraries.   For  instance `1/0r`  could  be</div><div class='add'>+ * constructed using this.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num            Numerator, an instance of ::rb_cInteger.</div><div class='add'>+ * @param[in]  den            Denominator, an instance of ::rb_cInteger.</div><div class='add'>+ * @exception  rb_eTypeError  Either argument is not an Integer.</div><div class='add'>+ * @return     An instance of ::rb_cRational whose value is `(num/den)r`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_rational_raw(VALUE num, VALUE den);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shorthand  of  `(x/1)r`.  As  `x`  is  already  an Integer,  it  practically</div><div class='add'>+ * converts it into a Rational of the identical value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  An instance of ::rb_cInteger.</div><div class='add'>+ * @return     An instance of ::rb_cRational, whose value is `(x/1)r`.</div><div class='add'>+ */</div><div class='add'>+#define rb_rational_raw1(x) rb_rational_raw((x), INT2FIX(1))</div><div class='add'>+</div><div class='add'>+/** @alias{rb_rational_raw} */</div><div class='add'>+#define rb_rational_raw2(x,y) rb_rational_raw((x), (y))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Constructs a Rational,  with reduction.  This returns  for instance `(2/3)r`</div><div class='add'>+ * for `rb_rational_new(INT2NUM(-384), INT2NUM(-576))`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num               Numerator, an instance of ::rb_cInteger.</div><div class='add'>+ * @param[in]  den               Denominator, an instance of ::rb_cInteger.</div><div class='add'>+ * @exception  rb_eZeroDivError  `den` is zero.</div><div class='add'>+ * @return     An instance of ::rb_cRational whose value is `(num/den)r`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_rational_new(VALUE num, VALUE den);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shorthand  of  `(x/1)r`.  As  `x`  is  already  an Integer,  it  practically</div><div class='add'>+ * converts it into a Rational of the identical value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  An instance of ::rb_cInteger.</div><div class='add'>+ * @return     An instance of ::rb_cRational, whose value is `(x/1)r`.</div><div class='add'>+ */</div><div class='add'>+#define rb_rational_new1(x) rb_rational_new((x), INT2FIX(1))</div><div class='add'>+</div><div class='add'>+/** @alias{rb_rational_new} */</div><div class='add'>+#define rb_rational_new2(x,y) rb_rational_new((x), (y))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts various values into a Rational.  This function accepts:</div><div class='add'>+ *</div><div class='add'>+ * - Instances of ::rb_cInteger (taken as-is),</div><div class='add'>+ * - Instances of ::rb_cRational (taken as-is),</div><div class='add'>+ * - Instances of ::rb_cFloat (applies `#to_r`),</div><div class='add'>+ * - Instances of ::rb_cComplex (applies `#to_r`),</div><div class='add'>+ * - Instances of ::rb_cString (applies `#to_r`),</div><div class='add'>+ * - Other objects that respond to `#to_r`.</div><div class='add'>+ *</div><div class='add'>+ * It (possibly  recursively) applies  `#to_r` until  both sides  become either</div><div class='add'>+ * Integer or Rational, then divides them.</div><div class='add'>+ *</div><div class='add'>+ * As a  special case, passing  ::RUBY_Qundef to `den`  is the same  as passing</div><div class='add'>+ * `RB_INT2NUM(1)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num                   Numerator (see above).</div><div class='add'>+ * @param[in]  den                   Denominator (see above).</div><div class='add'>+ * @exception  rb_eTypeError         Passed something not described above.</div><div class='add'>+ * @exception  rb_eFloatDomainError  `#to_r` produced Nan/Inf.</div><div class='add'>+ * @exception  rb_eZeroDivError      `#to_r` produced zero for `den`.</div><div class='add'>+ * @return     An instance of ::rb_cRational whose value is `(num/den)r`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This was the implementation of `Kernel#Rational` before, but they diverged.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_Rational(VALUE num, VALUE den);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shorthand of  `(x/1)r`.  It practically converts  it into a Rational  of the</div><div class='add'>+ * identical value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  ::rb_cInteger, ::rb_cRational, or  something that responds to</div><div class='add'>+ *                `#to_r`.</div><div class='add'>+ * @return     An instance of ::rb_cRational, whose value is `(x/1)r`.</div><div class='add'>+ */</div><div class='add'>+#define rb_Rational1(x) rb_Rational((x), INT2FIX(1))</div><div class='add'>+</div><div class='add'>+/** @alias{rb_Rational} */</div><div class='add'>+#define rb_Rational2(x,y) rb_Rational((x), (y))</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries the numerator of the passed Rational.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  rat  An instance of ::rb_cRational.</div><div class='add'>+ * @return     Its numerator part, which is an instance of ::rb_cInteger.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_rational_num(VALUE rat);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries the denominator of the passed Rational.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  rat  An instance of ::rb_cRational.</div><div class='add'>+ * @return     Its  denominator part,  which  is an  instance of  ::rb_cInteger</div><div class='add'>+ *             greater than or equal to one..</div><div class='add'>+ */</div><div class='add'>+VALUE rb_rational_den(VALUE rat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Simplified  approximation of  a float.   It returns  a rational  `rat` which</div><div class='add'>+ * satisfies:</div><div class='add'>+ *</div><div class='add'>+ * ```</div><div class='add'>+ * flt - |prec| &lt;= rat &lt;= flt + |prec|</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * 3.141592.rationalize(0.001) # =&gt; (201/64)r</div><div class='add'>+ * 3.141592.rationalize(0.01)' # =&gt; (22/7)r</div><div class='add'>+ * 3.141592.rationalize(0.1)'  # =&gt; (16/5)r</div><div class='add'>+ * 3.141592.rationalize(1)'    # =&gt; (3/1)r</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  flt   An instance of ::rb_cFloat to rationalise.</div><div class='add'>+ * @param[in]  prec  Another ::rb_cFloat, which is the "precision".</div><div class='add'>+ * @return     Approximation of `flt`, in ::rb_cRational.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_flt_rationalize_with_prec(VALUE flt, VALUE prec);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical   to   rb_flt_rationalize_with_prec(),  except   it   auto-detects</div><div class='add'>+ * appropriate precision depending on the passed value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  flt   An instance of ::rb_cFloat to rationalise.</div><div class='add'>+ * @return     Approximation of `flt`, in ::rb_cRational.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_flt_rationalize(VALUE flt);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_RATIONAL_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/re.h b/include/ruby/internal/intern/re.h<br/>new file mode 100644<br/>index 0000000000..31f5593275<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/re.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/re.h</a></div><div class='hunk'>@@ -0,0 +1,249 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_RE_H                           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_RE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cRegexp.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* re.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This was a  function that switched between memcmp  and rb_memcicmp depending</div><div class='add'>+ * on then-called `ruby_ignorecase`, or the `$=` global variable.  That feature</div><div class='add'>+ * was abandoned in sometime around version 1.9.0.</div><div class='add'>+ */</div><div class='add'>+#define rb_memcmp memcmp</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  st_locale_insensitive_strcasecmp(), except  it is  timing safe</div><div class='add'>+ * and returns something different.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  s1  Comparison LHS.</div><div class='add'>+ * @param[in]  s2  Comparison RHS.</div><div class='add'>+ * @param[in]  n   Comparison shall stop after first `n` bytes are scanned.</div><div class='add'>+ * @retval     &lt;0  `s1` is "less" than `s2`.</div><div class='add'>+ * @retval      0  Both sides converted into lowercase would be identical.</div><div class='add'>+ * @retval     &gt;0  `s1` is "greater" than `s2`.</div><div class='add'>+ * @note       The "case" here means that of the POSIX Locale.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Can accept NULLs as long as n is also 0, and returns 0.</div><div class='add'>+ */</div><div class='add'>+int rb_memcicmp(const void *s1,const void *s2, long n);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts  that  the given  MatchData  is  "occupied".  MatchData  shares  its</div><div class='add'>+ * backend storages  with its  Regexp object.   But programs  can destructively</div><div class='add'>+ * tamper its  contents.  Calling this  function beforehand shall  prevent such</div><div class='add'>+ * modifications to spill over into other objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  md  Target instance of ::rb_cMatch.</div><div class='add'>+ * @post        The object is "busy".</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * There is rb_match_unbusy internally, but extension libraries are left unable</div><div class='add'>+ * to do so.</div><div class='add'>+ */</div><div class='add'>+void rb_match_busy(VALUE md);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_reg_nth_match(), except it just returns Boolean.  This could</div><div class='add'>+ * skip allocating a  returning string, resulting in  reduced memory footprints</div><div class='add'>+ * if applicable.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n              Match index.</div><div class='add'>+ * @param[in]  md             An instance of ::rb_cMatch.</div><div class='add'>+ * @exception  rb_eTypeError  `md` is not initialised.</div><div class='add'>+ * @retval     RUBY_Qnil      There is no `n`-th capture.</div><div class='add'>+ * @retval     RUBY_Qfalse    There is a `n`-th capture and is empty.</div><div class='add'>+ * @retval     RUBY_Qtrue     There is a `n`-th capture that has something.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei   wonders:  why   there   are   both  rb_reg_match_defined()   and</div><div class='add'>+ * rb_match_nth_defined, which  are largely the  same things, but do  not share</div><div class='add'>+ * their implementations at all?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_nth_defined(int n, VALUE md);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the nth captured substring.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n              Match index.</div><div class='add'>+ * @param[in]  md             An instance of ::rb_cMatch.</div><div class='add'>+ * @exception  rb_eTypeError  `md` is not initialised.</div><div class='add'>+ * @retval     RUBY_Qnil      There is no `n`-th capture.</div><div class='add'>+ * @retval     otherwise      An allocated instance of  ::rb_cString containing</div><div class='add'>+ *                            the contents captured.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_nth_match(int n, VALUE md);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the index of the given named capture.  Captures could be named.  But</div><div class='add'>+ * that doesn't mean named ones are  not indexed.  A regular expression can mix</div><div class='add'>+ * named  and non-named  captures, and  they  are all  indexed.  This  function</div><div class='add'>+ * converts from a name to its index.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  match           An instance of ::rb_cMatch.</div><div class='add'>+ * @param[in]  backref         Capture name, in String, Symbol, or Numeric.</div><div class='add'>+ * @exception  rb_eIndexError  No such named capture.</div><div class='add'>+ * @return     The index of the given name.</div><div class='add'>+ */</div><div class='add'>+int rb_reg_backref_number(VALUE match, VALUE backref);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This just returns the argument, stringified.  What a poor name.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  md  An instance of ::rb_cMatch.</div><div class='add'>+ * @return     Its 0th capture (i.e. entire matched string).</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_last_match(VALUE md);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The portion of the original string before the given match.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  md  An instance of ::rb_cMatch.</div><div class='add'>+ * @return     Its "prematch".  This is perl's ``$```.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_match_pre(VALUE md);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The portion of the original string after the given match.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  md  An instance of ::rb_cMatch.</div><div class='add'>+ * @return     Its "postmatch".  This is perl's `$'`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_match_post(VALUE md);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The portion of the original string that captured at the very last.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  md  An instance of ::rb_cMatch.</div><div class='add'>+ * @return     Its "lastmatch".  This is perl's `$+`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_match_last(VALUE md);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define HAVE_RB_REG_NEW_STR 1</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_reg_new(),  except it takes the expression  in Ruby's string</div><div class='add'>+ * instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  src              Source code in String.</div><div class='add'>+ * @param[in]  opts             Options e.g. ONIG_OPTION_MULTILINE.</div><div class='add'>+ * @exception  rb_eRegexpError  `src` and `opts` do not interface.</div><div class='add'>+ * @return     Allocated new instance of ::rb_cRegexp.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_new_str(VALUE src, int opts);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Creates a new Regular expression.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  src              Source code.</div><div class='add'>+ * @param[in]  len              `strlen(src)`.</div><div class='add'>+ * @param[in]  opts             Options e.g. ONIG_OPTION_MULTILINE.</div><div class='add'>+ * @return     Allocated new instance of ::rb_cRegexp.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_new(const char *src, long len, int opts);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates an instance of ::rb_cRegexp.</div><div class='add'>+ *</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Nobody  should  call  this  function.   Regular  expressions  that  are  not</div><div class='add'>+ * initialised must not exist in the wild.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_alloc(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Initialises an instance of ::rb_cRegexp.</div><div class='add'>+ *</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This just raises  for ordinal regexp objects.  Extension  libraries must not</div><div class='add'>+ * use.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_init_str(VALUE re, VALUE s, int options);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the match operator.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  re               An instance of ::rb_cRegexp.</div><div class='add'>+ * @param[in]  str              An instance of ::rb_cString.</div><div class='add'>+ * @exception  rb_eTypeError    `str` is not a string.</div><div class='add'>+ * @exception  rb_eRegexpError  Error inside of Onigmo (unlikely).</div><div class='add'>+ * @retval     RUBY_Qnil        Match failed.</div><div class='add'>+ * @retval     otherwise        Matched  position  (character index  inside  of</div><div class='add'>+ *                              `str`).</div><div class='add'>+ * @post       `Regexp.last_match` is updated.</div><div class='add'>+ * @post       `$&amp;`, `$~`, etc., are updated.</div><div class='add'>+ * @note       If you  do this in  ruby, named  captures are assigned  to local</div><div class='add'>+ *             variable of the local scope.  But that doesn't happen here.  The</div><div class='add'>+ *             assignment is done by the interpreter.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_match(VALUE re, VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_reg_match(),  except it  matches against  rb_lastline_get()</div><div class='add'>+ * (or, the `$_`).</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  re               An instance of ::rb_cRegexp.</div><div class='add'>+ * @exception  rb_eRegexpError  Error inside of Onigmo (unlikely).</div><div class='add'>+ * @retval     RUBY_Qnil        Match failed or `$_` is absent.</div><div class='add'>+ * @retval     otherwise        Matched  position  (character index  inside  of</div><div class='add'>+ *                              `$_`).</div><div class='add'>+ * @post       `Regexp.last_match` is updated.</div><div class='add'>+ * @post       `$&amp;`, `$~`, etc., are updated.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_match2(VALUE re);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the options of the passed regular expression.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  re  An instance of ::rb_cRegexp.</div><div class='add'>+ * @return     Its options.</div><div class='add'>+ * @note       Possible return values are defined in Onigmo.h.</div><div class='add'>+ */</div><div class='add'>+int rb_reg_options(VALUE re);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_RE_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/ruby.h b/include/ruby/internal/intern/ruby.h<br/>new file mode 100644<br/>index 0000000000..efe61424ca<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/ruby.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/ruby.h</a></div><div class='hunk'>@@ -0,0 +1,77 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_RUBY_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_RUBY_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Process-global APIs.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* ruby.c */</div><div class='add'>+/** @alias{rb_get_argv} */</div><div class='add'>+#define rb_argv rb_get_argv()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The value of `$0` at process bootup.</div><div class='add'>+ *</div><div class='add'>+ * @note  This is just a snapshot of `$0`, not the backend storage of it.  `$0`</div><div class='add'>+ *        could  become something  different because  it is  a writable  global</div><div class='add'>+ *        variable.  Modifying  it for instance affects  `ps(1)` output.  Don't</div><div class='add'>+ *        assume they are synced.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN VALUE rb_argv0;</div><div class='add'>+</div><div class='add'>+/* io.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the arguments passed to the current process that you can access from</div><div class='add'>+ * Ruby as `ARGV`.</div><div class='add'>+ *</div><div class='add'>+ * @return  An array of strings containing arguments passed to the process.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_get_argv(void);</div><div class='add'>+</div><div class='add'>+/* ruby.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Loads the given  file.  This function opens the given  pathname for reading,</div><div class='add'>+ * parses the contents as a Ruby  script, and returns an opaque "node" pointer.</div><div class='add'>+ * You can then pass it to ruby_run_node() for evaluation.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  file  File name, or "-" to read from stdin.</div><div class='add'>+ * @return     Opaque "node" pointer.</div><div class='add'>+ */</div><div class='add'>+void *rb_load_file(const char *file);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_load_file(), except it takes the argument as a Ruby's string</div><div class='add'>+ * instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  file  File name, or "-" to read from stdin.</div><div class='add'>+ * @return     Opaque "node" pointer.</div><div class='add'>+ */</div><div class='add'>+void *rb_load_file_str(VALUE file);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_RUBY_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/select.h b/include/ruby/internal/intern/select.h<br/>new file mode 100644<br/>index 0000000000..fabc287cd1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/select.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/select.h</a></div><div class='hunk'>@@ -0,0 +1,86 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_SELECT_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_SELECT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs to provide ::rb_fd_select().</div><div class='add'>+ * @note       Functions  and  structs defined  in  this  header file  are  not</div><div class='add'>+ *             necessarily ruby-specific.  They don't need ::VALUE etc.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SYS_TYPES_H</div><div class='add'>+# include &lt;sys/types.h&gt;         /* for NFDBITS (BSD Net/2) */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+</div><div class='add'>+/* thread.c */</div><div class='add'>+#if defined(NFDBITS) &amp;&amp; defined(HAVE_RB_FD_INIT)</div><div class='add'>+# include "ruby/internal/intern/select/largesize.h"</div><div class='add'>+#elif defined(_WIN32)</div><div class='add'>+# include "ruby/internal/intern/select/win32.h"</div><div class='add'>+# /** Does nothing (defined for compatibility). */</div><div class='add'>+# define rb_fd_resize(n, f) ((void)(f))</div><div class='add'>+#else</div><div class='add'>+# include "ruby/internal/intern/select/posix.h"</div><div class='add'>+# /** Does nothing (defined for compatibility). */</div><div class='add'>+# define rb_fd_resize(n, f) ((void)(f))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+struct timeval;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Waits for multiple file descriptors at once.  This is basically a wrapper of</div><div class='add'>+ * system-provided select() with releasing GVL, to allow other Ruby threads run</div><div class='add'>+ * in parallel.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      nfds       Max FD in everything passed, plus one.</div><div class='add'>+ * @param[in,out]  rfds       Set of FDs to wait for reads.</div><div class='add'>+ * @param[in,out]  wfds       Set of FDs to wait for writes.</div><div class='add'>+ * @param[in,out]  efds       Set of FDs to wait for OOBs.</div><div class='add'>+ * @param[in,out]  timeout    Max blocking duration.</div><div class='add'>+ * @retval         -1         Failed, errno set.</div><div class='add'>+ * @retval          0         Timeout exceeded.</div><div class='add'>+ * @retval         otherwise  Total number of file descriptors returned.</div><div class='add'>+ * @post           `rfds` contains readable FDs.</div><div class='add'>+ * @post           `wfds` contains writable FDs.</div><div class='add'>+ * @post           `efds` contains exceptional FDs.</div><div class='add'>+ * @post           `timeout` is the time left.</div><div class='add'>+ * @note           All pointers are allowed to be null pointers.</div><div class='add'>+ *</div><div class='add'>+ * Although backend  threads can run in  parallel of this function,  touching a</div><div class='add'>+ * file descriptor  from multiple threads  could be problematic.   For instance</div><div class='add'>+ * what happens  when a  thread closes  a file descriptor  that is  selected by</div><div class='add'>+ * someone else, vastly varies among operating systems.  You would better avoid</div><div class='add'>+ * touching an fd from more than one threads.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Although  any file  descriptors are  possible here,  it makes  completely no</div><div class='add'>+ * sense to pass  a descriptor that is  not `O_NONBLOCK`.  If you  want to know</div><div class='add'>+ * the reason for  this limitatuon in detail, you might  find this thread super</div><div class='add'>+ * interesting: https://lkml.org/lkml/2004/10/6/117</div><div class='add'>+ */</div><div class='add'>+int rb_thread_fd_select(int nfds, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_SELECT_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/select/largesize.h b/include/ruby/internal/intern/select/largesize.h<br/>new file mode 100644<br/>index 0000000000..d65f088c06<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/select/largesize.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/select/largesize.h</a></div><div class='hunk'>@@ -0,0 +1,214 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_SELECT_LARGESIZE_H             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_SELECT_LARGESIZE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs to provide ::rb_fd_select().</div><div class='add'>+ *</div><div class='add'>+ * Several Unix  platforms support file  descriptors bigger than  FD_SETSIZE in</div><div class='add'>+ * `select(2)` system call.</div><div class='add'>+ *</div><div class='add'>+ * - Linux 2.2.12 (?)</div><div class='add'>+ *</div><div class='add'>+ * - NetBSD 1.2 (src/sys/kern/sys_generic.c:1.25)</div><div class='add'>+ *   `select(2)` documents how to allocate fd_set dynamically.</div><div class='add'>+ *   http://netbsd.gw.com/cgi-bin/man-cgi?select++NetBSD-4.0</div><div class='add'>+ *</div><div class='add'>+ * - FreeBSD 2.2 (src/sys/kern/sys_generic.c:1.19)</div><div class='add'>+ *</div><div class='add'>+ * - OpenBSD 2.0 (src/sys/kern/sys_generic.c:1.4)</div><div class='add'>+ *   `select(2)` documents how to allocate fd_set dynamically.</div><div class='add'>+ *   http://www.openbsd.org/cgi-bin/man.cgi?query=select&amp;manpath=OpenBSD+4.4</div><div class='add'>+ *</div><div class='add'>+ * - Solaris 8 has `select_large_fdset`</div><div class='add'>+ *</div><div class='add'>+ * - Mac OS X 10.7 (Lion)</div><div class='add'>+ *   `select(2)` returns `EINVAL`  if `nfds` is greater  than `FD_SET_SIZE` and</div><div class='add'>+ *   `_DARWIN_UNLIMITED_SELECT` (or `_DARWIN_C_SOURCE`) isn't defined.</div><div class='add'>+ *   http://developer.apple.com/library/mac/#releasenotes/Darwin/SymbolVariantsRelNotes/_index.html</div><div class='add'>+ *</div><div class='add'>+ * When `fd_set` is not  big enough to hold big file  descriptors, it should be</div><div class='add'>+ * allocated dynamically.   Note that  this assumes  `fd_set` is  structured as</div><div class='add'>+ * bitmap.</div><div class='add'>+ *</div><div class='add'>+ * `rb_fd_init` allocates the memory.</div><div class='add'>+ * `rb_fd_term` frees the memory.</div><div class='add'>+ * `rb_fd_set` may re-allocate bitmap.</div><div class='add'>+ *</div><div class='add'>+ * So `rb_fd_set` doesn't reject file descriptors bigger than `FD_SETSIZE`.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+</div><div class='add'>+/**@cond INTERNAL_MACRO */</div><div class='add'>+#define rb_fd_ptr rb_fd_ptr</div><div class='add'>+#define rb_fd_max rb_fd_max</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+struct timeval;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The data  structure which wraps the  fd_set bitmap used by  select(2).  This</div><div class='add'>+ * allows Ruby to use FD sets  larger than that allowed by historic limitations</div><div class='add'>+ * on modern platforms.</div><div class='add'>+ */</div><div class='add'>+typedef struct {</div><div class='add'>+    int maxfd;                  /**&lt; Maximum allowed number of FDs. */</div><div class='add'>+    fd_set *fdset;              /**&lt; File descriptors buffer */</div><div class='add'>+} rb_fdset_t;</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * (Re-)initialises a  fdset.  One must  be initialised before  other `rb_fd_*`</div><div class='add'>+ * operations.  Analogous to calling `malloc(3)` to allocate an `fd_set`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  f  An fdset to squash.</div><div class='add'>+ * @post        `f` holds no file descriptors.</div><div class='add'>+ */</div><div class='add'>+void rb_fd_init(rb_fdset_t *f);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Destroys the ::rb_fdset_t,  releasing any memory and resources  it used.  It</div><div class='add'>+ * must be  reinitialised using rb_fd_init()  before future use.   Analogous to</div><div class='add'>+ * calling `free(3)` to release memory for an `fd_set`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  f  An fdset to squash.</div><div class='add'>+ * @post        `f` holds no file descriptors.</div><div class='add'>+ */</div><div class='add'>+void rb_fd_term(rb_fdset_t *f);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Wipes out the current set of FDs.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  f  The fdset to clear.</div><div class='add'>+ * @post        `f` has no FDs.</div><div class='add'>+ */</div><div class='add'>+void rb_fd_zero(rb_fdset_t *f);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Sets an fd to a fdset.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   fd  A file descriptor.</div><div class='add'>+ * @param[out]  f   Target fdset.</div><div class='add'>+ * @post        `f` holds `fd`.</div><div class='add'>+ */</div><div class='add'>+void rb_fd_set(int fd, rb_fdset_t *f);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Releases a specific FD from the given fdset.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   fd  Target FD.</div><div class='add'>+ * @param[out]  f   The fdset that holds `fd`.</div><div class='add'>+ * @post        `f` doesn't hold n.</div><div class='add'>+ */</div><div class='add'>+void rb_fd_clr(int fd, rb_fdset_t *f);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the given FD is in the given set.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fd  Target FD.</div><div class='add'>+ * @param[in]  f   The fdset to scan.</div><div class='add'>+ * @retval     1   Yes there is.</div><div class='add'>+ * @retval     0   No there isn't.</div><div class='add'>+ * @see        http://www.freebsd.org/cgi/query-pr.cgi?pr=91421</div><div class='add'>+ */</div><div class='add'>+int rb_fd_isset(int fd, const rb_fdset_t *f);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively overwrites an fdset with another.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst   Target fdset.</div><div class='add'>+ * @param[in]   src   Source fdset.</div><div class='add'>+ * @param[in]   max   Maximum number of file descriptors to copy.</div><div class='add'>+ * @post        `dst` is a copy of `src`.</div><div class='add'>+ */</div><div class='add'>+void rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int max);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_fd_copy(),  except  it copies  unlimited  number  of  file</div><div class='add'>+ * descriptors.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst   Target fdset.</div><div class='add'>+ * @param[in]   src   Source fdset.</div><div class='add'>+ * @post        `dst` is a copy of `src`.</div><div class='add'>+ */</div><div class='add'>+void rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Waits for multiple file descriptors at once.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      nfds       Max FD in everything passed, plus one.</div><div class='add'>+ * @param[in,out]  rfds       Set of FDs to wait for reads.</div><div class='add'>+ * @param[in,out]  wfds       Set of FDs to wait for writes.</div><div class='add'>+ * @param[in,out]  efds       Set of FDs to wait for OOBs.</div><div class='add'>+ * @param[in,out]  timeout    Max blocking duration.</div><div class='add'>+ * @retval         -1         Failed, errno set.</div><div class='add'>+ * @retval          0         Timeout exceeded.</div><div class='add'>+ * @retval         otherwise  Total number of file descriptors returned.</div><div class='add'>+ * @post           `rfds` contains readable FDs.</div><div class='add'>+ * @post           `wfds` contains writable FDs.</div><div class='add'>+ * @post           `efds` contains exceptional FDs.</div><div class='add'>+ * @post           `timeout` is the time left.</div><div class='add'>+ * @note           All pointers are allowed to be null pointers.</div><div class='add'>+ */</div><div class='add'>+int rb_fd_select(int nfds, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Raw pointer to `fd_set`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  f         Target fdset.</div><div class='add'>+ * @retval     NULL      `f` is already terminated by rb_fd_term().</div><div class='add'>+ * @retval     otherwise  Underlying fd_set.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Extension library  must not touch  raw pointers.  It was  a bad idea  to let</div><div class='add'>+ * them use it.</div><div class='add'>+ */</div><div class='add'>+static inline fd_set *</div><div class='add'>+rb_fd_ptr(const rb_fdset_t *f)</div><div class='add'>+{</div><div class='add'>+    return f-&gt;fdset;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * It seems this function has no use.  Maybe just remove?</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  f  A set.</div><div class='add'>+ * @return     Number of file descriptors stored.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_fd_max(const rb_fdset_t *f)</div><div class='add'>+{</div><div class='add'>+    return f-&gt;maxfd;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_SELECT_LARGESIZE_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/select/posix.h b/include/ruby/internal/intern/select/posix.h<br/>new file mode 100644<br/>index 0000000000..0a9b0b2e51<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/select/posix.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/select/posix.h</a></div><div class='hunk'>@@ -0,0 +1,144 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_SELECT_POSIX_H                 /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_SELECT_POSIX_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs to provide ::rb_fd_select().</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SYS_SELECT_H</div><div class='add'>+# include &lt;sys/select.h&gt;        /* for select(2) (modern POSIX) */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_UNISTD_H</div><div class='add'>+# include &lt;unistd.h&gt;            /* for select(2) (archaic UNIX) */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/noalias.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The data structure which wraps the  fd_set bitmap used by `select(2)`.  This</div><div class='add'>+ * allows Ruby to use FD sets larger than what has been historically allowed on</div><div class='add'>+ * modern platforms.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * ... but because  this header file is  included only when the  system is with</div><div class='add'>+ * that "historic restrictions", this is nothing more than an alias of fd_set.</div><div class='add'>+ */</div><div class='add'>+typedef fd_set rb_fdset_t;</div><div class='add'>+</div><div class='add'>+/** Clears the given ::rb_fdset_t. */</div><div class='add'>+#define rb_fd_zero   FD_ZERO</div><div class='add'>+</div><div class='add'>+/** Sets the given fd to the ::rb_fdset_t. */</div><div class='add'>+#define rb_fd_set    FD_SET</div><div class='add'>+</div><div class='add'>+/** Unsets the given fd from the ::rb_fdset_t. */</div><div class='add'>+#define rb_fd_clr    FD_CLR</div><div class='add'>+</div><div class='add'>+/** Queries if the given fd is in the ::rb_fdset_t. */</div><div class='add'>+#define rb_fd_isset  FD_ISSET</div><div class='add'>+</div><div class='add'>+/** Initialises the :given :rb_fdset_t. */</div><div class='add'>+#define rb_fd_init   FD_ZERO</div><div class='add'>+</div><div class='add'>+/** Waits for multiple file descriptors at once. */</div><div class='add'>+#define rb_fd_select select</div><div class='add'>+</div><div class='add'>+/**@cond INTERNAL_MACRO */</div><div class='add'>+#define rb_fd_copy  rb_fd_copy</div><div class='add'>+#define rb_fd_dup   rb_fd_dup</div><div class='add'>+#define rb_fd_ptr   rb_fd_ptr</div><div class='add'>+#define rb_fd_max   rb_fd_max</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+/**</div><div class='add'>+ * Destructively overwrites an fdset with another.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst   Target fdset.</div><div class='add'>+ * @param[in]   src   Source fdset.</div><div class='add'>+ * @param[in]   n     Unused parameter.</div><div class='add'>+ * @post        `dst` is a copy of `src`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int n)</div><div class='add'>+{</div><div class='add'>+    *dst = *src;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+/**</div><div class='add'>+ * Destructively overwrites an fdset with another.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst   Target fdset.</div><div class='add'>+ * @param[in]   src   Source fdset.</div><div class='add'>+ * @post        `dst` is a copy of `src`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rb_fd_dup(rb_fdset_t *dst, const fd_set *src)</div><div class='add'>+{</div><div class='add'>+    *dst = *src;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/* :TODO: can this function be __attribute__((returns_nonnull)) or not? */</div><div class='add'>+/**</div><div class='add'>+ * Raw pointer to `fd_set`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  f  Target fdset.</div><div class='add'>+ * @return     Underlying fd_set.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Extension library  must not touch  raw pointers.  It was  a bad idea  to let</div><div class='add'>+ * them use it.</div><div class='add'>+ */</div><div class='add'>+static inline fd_set *</div><div class='add'>+rb_fd_ptr(rb_fdset_t *f)</div><div class='add'>+{</div><div class='add'>+    return f;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * It seems this function has no use.  Maybe just remove?</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  f  A set.</div><div class='add'>+ * @return     Number of file descriptors stored.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_fd_max(const rb_fdset_t *f)</div><div class='add'>+{</div><div class='add'>+    return FD_SETSIZE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+/* :FIXME: What are these?  They don't exist for sibling implementations. */</div><div class='add'>+#define rb_fd_init_copy(d, s) (*(d) = *(s))</div><div class='add'>+#define rb_fd_term(f)   ((void)(f))</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_SELECT_POSIX_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/select/win32.h b/include/ruby/internal/intern/select/win32.h<br/>new file mode 100644<br/>index 0000000000..edaf7a8523<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/select/win32.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/select/win32.h</a></div><div class='hunk'>@@ -0,0 +1,259 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_SELECT_WIN32_H                 /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_SELECT_WIN32_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs to provide ::rb_fd_select().</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dosish.h"      /* for rb_w32_select */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/attr/noalias.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+</div><div class='add'>+/**@cond INTERNAL_MACRO */</div><div class='add'>+#define rb_fd_zero  rb_fd_zero</div><div class='add'>+#define rb_fd_clr   rb_fd_clr</div><div class='add'>+#define rb_fd_isset rb_fd_isset</div><div class='add'>+#define rb_fd_copy  rb_fd_copy</div><div class='add'>+#define rb_fd_dup   rb_fd_dup</div><div class='add'>+#define rb_fd_ptr   rb_fd_ptr</div><div class='add'>+#define rb_fd_max   rb_fd_max</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+struct timeval;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The data  structure which wraps the  fd_set bitmap used by  select(2).  This</div><div class='add'>+ * allows Ruby to use FD sets  larger than that allowed by historic limitations</div><div class='add'>+ * on modern platforms.</div><div class='add'>+ */</div><div class='add'>+typedef struct {</div><div class='add'>+    int capa;                   /**&lt; Maximum allowed number of FDs. */</div><div class='add'>+    fd_set *fdset;              /**&lt; File descriptors buffer. */</div><div class='add'>+} rb_fdset_t;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * (Re-)initialises a  fdset.  One must  be initialised before  other `rb_fd_*`</div><div class='add'>+ * operations.  Analogous to calling `malloc(3)` to allocate an `fd_set`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  f  An fdset to squash.</div><div class='add'>+ * @post        `f` holds no file descriptors.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Can't this leak memory if the same `f` is passed twice...?</div><div class='add'>+ */</div><div class='add'>+void rb_fd_init(rb_fdset_t *f);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Destroys the ::rb_fdset_t,  releasing any memory and resources  it used.  It</div><div class='add'>+ * must be  reinitialised using rb_fd_init()  before future use.   Analogous to</div><div class='add'>+ * calling `free(3)` to release memory for an `fd_set`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  f  An fdset to squash.</div><div class='add'>+ * @post        `f` holds no file descriptors.</div><div class='add'>+ */</div><div class='add'>+void rb_fd_term(rb_fdset_t *f);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Sets an fd to a fdset.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   fd  A file descriptor.</div><div class='add'>+ * @param[out]  f   Target fdset.</div><div class='add'>+ * @post        `f` holds `fd`.</div><div class='add'>+ */</div><div class='add'>+void rb_fd_set(int fd, rb_fdset_t *f);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Destructively overwrites an fdset with another.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst   Target fdset.</div><div class='add'>+ * @param[in]   src   Source fdset.</div><div class='add'>+ * @param[in]   max   Maximum number of file descriptors to copy.</div><div class='add'>+ * @post        `dst` is a copy of `src`.</div><div class='add'>+ */</div><div class='add'>+void rb_w32_fd_copy(rb_fdset_t *dst, const fd_set *src, int max);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_w32_fd_copy(), except  it copies  unlimited number  of file</div><div class='add'>+ * descriptors.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst   Target fdset.</div><div class='add'>+ * @param[in]   src   Source fdset.</div><div class='add'>+ * @post        `dst` is a copy of `src`.</div><div class='add'>+ */</div><div class='add'>+void rb_w32_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+/**</div><div class='add'>+ * Wipes out the current set of FDs.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  f  The fdset to clear.</div><div class='add'>+ * @post        `f` has no FDs.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rb_fd_zero(rb_fdset_t *f)</div><div class='add'>+{</div><div class='add'>+    f-&gt;fdset-&gt;fd_count = 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Releases a specific FD from the given fdset.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   n  Target FD.</div><div class='add'>+ * @param[out]  f  The fdset that holds `n`.</div><div class='add'>+ * @post        `f` doesn't hold n.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rb_fd_clr(int n, rb_fdset_t *f)</div><div class='add'>+{</div><div class='add'>+    rb_w32_fdclr(n, f-&gt;fdset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Queries if the given FD is in the given set.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n  Target FD.</div><div class='add'>+ * @param[in]  f  The fdset to scan.</div><div class='add'>+ * @retval     1  Yes there is.</div><div class='add'>+ * @retval     0  No there isn't.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_fd_isset(int n, rb_fdset_t *f)</div><div class='add'>+{</div><div class='add'>+    return rb_w32_fdisset(n, f-&gt;fdset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Destructively overwrites an fdset with another.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst   Target fdset.</div><div class='add'>+ * @param[in]   src   Source fdset.</div><div class='add'>+ * @param[in]   n     Maximum number of file descriptors to copy.</div><div class='add'>+ * @post        `dst` is a copy of `src`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int n)</div><div class='add'>+{</div><div class='add'>+    rb_w32_fd_copy(dst, src, n);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_fd_copy(),  except  it copies  unlimited  number  of  file</div><div class='add'>+ * descriptors.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst   Target fdset.</div><div class='add'>+ * @param[in]   src   Source fdset.</div><div class='add'>+ * @post        `dst` is a copy of `src`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src)</div><div class='add'>+{</div><div class='add'>+    rb_w32_fd_dup(dst, src);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Waits for multiple file descriptors at once.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      n          Max FD in everything passed, plus one.</div><div class='add'>+ * @param[in,out]  rfds       Set of FDs to wait for reads.</div><div class='add'>+ * @param[in,out]  wfds       Set of FDs to wait for writes.</div><div class='add'>+ * @param[in,out]  efds       Set of FDs to wait for OOBs.</div><div class='add'>+ * @param[in,out]  timeout    Max blocking duration.</div><div class='add'>+ * @retval         -1         Failed, errno set.</div><div class='add'>+ * @retval          0         Timeout exceeded.</div><div class='add'>+ * @retval         otherwise  Total number of file descriptors returned.</div><div class='add'>+ * @post           `rfds` contains readable FDs.</div><div class='add'>+ * @post           `wfds` contains writable FDs.</div><div class='add'>+ * @post           `efds` contains exceptional FDs.</div><div class='add'>+ * @post           `timeout` is the time left.</div><div class='add'>+ * @note           All pointers are allowed to be null pointers.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This can wait for  `SOCKET` and `HANDLE` at once.  In  order to achieve that</div><div class='add'>+ * property  we heavily  touch  the  internals of  MSVCRT.   We `CreateFile`  a</div><div class='add'>+ * `"NUL"` alongside of  a socket and directly manipulate  its `struct ioinfo`.</div><div class='add'>+ * This is of  course a very dirty hack.   If we could design the  API today we</div><div class='add'>+ * could use `CancellIoEx`.  But we are older than that Win32 API.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_fd_select(int n, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout)</div><div class='add'>+{</div><div class='add'>+    return rb_w32_select(</div><div class='add'>+        n,</div><div class='add'>+        rfds ? rfds-&gt;fdset : NULL,</div><div class='add'>+        wfds ? wfds-&gt;fdset : NULL,</div><div class='add'>+        efds ? efds-&gt;fdset : NULL,</div><div class='add'>+        timeout);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Raw pointer to `fd_set`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  f         Target fdset.</div><div class='add'>+ * @retval     NULL      `f` is already terminated by rb_fd_term().</div><div class='add'>+ * @retval     otherwise  Underlying fd_set.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Extension library  must not touch  raw pointers.  It was  a bad idea  to let</div><div class='add'>+ * them use it.</div><div class='add'>+ */</div><div class='add'>+static inline fd_set *</div><div class='add'>+rb_fd_ptr(const rb_fdset_t *f)</div><div class='add'>+{</div><div class='add'>+    return f-&gt;fdset;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+/**</div><div class='add'>+ * It seems this function has no use.  Maybe just remove?</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  f  A set.</div><div class='add'>+ * @return     Number of file descriptors stored.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_fd_max(const rb_fdset_t *f)</div><div class='add'>+{</div><div class='add'>+    const fd_set *p = f-&gt;fdset;</div><div class='add'>+</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(p);</div><div class='add'>+    return p-&gt;fd_count;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_SELECT_WIN32_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/signal.h b/include/ruby/internal/intern/signal.h<br/>new file mode 100644<br/>index 0000000000..84f7558404<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/signal.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/signal.h</a></div><div class='hunk'>@@ -0,0 +1,152 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_SIGNAL_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_SIGNAL_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Signal handling APIs.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* signal.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Sends a signal ("kills") to processes.</div><div class='add'>+ *</div><div class='add'>+ * The first argument is the signal, either in:</div><div class='add'>+ *</div><div class='add'>+ *   - Numerical representation (e.g. `9`), or</div><div class='add'>+ *   - Textual  representation   of  canonical   (e.g.   `:SIGKILL`)   name  or</div><div class='add'>+ *     abbreviated (e.g. `:KILL`) name, either in ::rb_cSymbol or ::rb_cString.</div><div class='add'>+ *</div><div class='add'>+ * All the  remaining arguments are  numerical representations of  process IDs.</div><div class='add'>+ * This function iterates over them to send the specified signal.</div><div class='add'>+ *</div><div class='add'>+ * You can specify both negative PIDs and negative signo to this function:</div><div class='add'>+ *</div><div class='add'>+ *   ```</div><div class='add'>+ *    sig \ pid | &gt;= 1 | == 0 | == -1 | &lt;= -2</div><div class='add'>+ *   ===========+======+======+=======+=======</div><div class='add'>+ *        &gt; 0   |  #1  |  #2  |  #3   |  #4</div><div class='add'>+ *       == 0   |  #5  |  #6  |  #7   |  #8</div><div class='add'>+ *        &lt; 0   |  #9  |  #10 |      #11</div><div class='add'>+ *   ```</div><div class='add'>+ *</div><div class='add'>+ *   - Case #1: When  signo and PID are both positive,  this function sends the</div><div class='add'>+ *     specified signal to the specified process (intuitive).</div><div class='add'>+ *</div><div class='add'>+ *   - Case #2: When  signo is  positive and PID  is zero, this  function sends</div><div class='add'>+ *     that signal to the current process group.</div><div class='add'>+ *</div><div class='add'>+ *   - Case #3: When signo is positive and  PID is -1, this function sends that</div><div class='add'>+ *     signal to everything that the current process is allowed to kill.</div><div class='add'>+ *</div><div class='add'>+ *   - Case #4: When signo  is positive and PID is negative  (but not -1), this</div><div class='add'>+ *     function sends that signal to every  processes in a process group, whose</div><div class='add'>+ *     process group ID is the absolute value of the passed PID.</div><div class='add'>+ *</div><div class='add'>+ *   - Case #5: When  signo  is zero  and PID is  positive, this  function just</div><div class='add'>+ *     checks  for the  existence of  the  specified process  and doesn't  send</div><div class='add'>+ *     anything to  anyone.  In  case the process  is absent  `Errno::ESRCH` is</div><div class='add'>+ *     raised.</div><div class='add'>+ *</div><div class='add'>+ *   - Case #6: When signo and PID are  both zero, this function checks for the</div><div class='add'>+ *     existence of the current process group.   And it must do.  This function</div><div class='add'>+ *     is effectively a no-op then.</div><div class='add'>+ *</div><div class='add'>+ *   - Case #7: When signo is zero and PID is -1, this function checks if there</div><div class='add'>+ *     is any other  process that the current process can  kill.  At least init</div><div class='add'>+ *     (PID 1) must exist, so this must not fail.</div><div class='add'>+ *</div><div class='add'>+ *   - Case #8: When  signo is  zero and  PID is  negative (but  not -1),  this</div><div class='add'>+ *     function checks  if there is a  process group whose process  group ID is</div><div class='add'>+ *     the absolute  value of  the passed  PID.  In case  the process  group is</div><div class='add'>+ *     absent `Errno::ESRCH` is raised.</div><div class='add'>+ *</div><div class='add'>+ *   - Case #9: When signo is negative and PID is positive, this function sends</div><div class='add'>+ *     the absolute value of the passed signo to the process group specified as</div><div class='add'>+ *     the PID.</div><div class='add'>+ *</div><div class='add'>+ *   - Case #10: When signo is negative and  PID is zero, it is highly expected</div><div class='add'>+ *     that this function  sends the absolute value of the  passed signo to the</div><div class='add'>+ *     current  process   group.   Strictly  speaking,  IEEE   Std  1003.1-2017</div><div class='add'>+ *     specifies that  this (`killpg(3posix)` with  an argument of zero)  is an</div><div class='add'>+ *     undefined behaviour.  But no operating system  is known so far that does</div><div class='add'>+ *     things differently.</div><div class='add'>+ *</div><div class='add'>+ *   - Case #11: When  signo and PID  are both negative, the  behaviour of this</div><div class='add'>+ *     function  depends on  how `killpg(3)`  works.  On  Linux, it  seems such</div><div class='add'>+ *     attempt is  strictly prohibited and  `Errno::EINVAL` is raised.   But on</div><div class='add'>+ *     macOS, it seems it  tries to to send the signal  actually to the process</div><div class='add'>+ *     group.</div><div class='add'>+ *</div><div class='add'>+ * @note       Above description is in fact different from how `kill(2)` works.</div><div class='add'>+ *             We interpret the passed arguments before passing them through to</div><div class='add'>+ *             system calls.</div><div class='add'>+ * @param[in]  argc                 Number of objects in `argv`.</div><div class='add'>+ * @param[in]  argv                 Signal, followed by target PIDs.</div><div class='add'>+ * @exception  rb_eArgError         Unknown signal name.</div><div class='add'>+ * @exception  rb_eSystemCallError  Various errors sending signal to processes.</div><div class='add'>+ * @return     Something numeric.  The meaning of this return value is unclear.</div><div class='add'>+ *             It seems in case of #1 above, this could be the body count.  But</div><div class='add'>+ *             other cases remain mysterious.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_f_kill(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/* This must be private, @shyouhei guesses. */</div><div class='add'>+#ifdef POSIX_SIGNAL</div><div class='add'>+#define posix_signal ruby_posix_signal</div><div class='add'>+void (*posix_signal(int, void (*)(int)))(int);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries  the name  of  the signal.   It returns  for  instance `"KILL"`  for</div><div class='add'>+ * SIGKILL.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  signo      Signal number to query.</div><div class='add'>+ * @retval     0          No such signal.</div><div class='add'>+ * @retval     otherwise  A pointer  to a static C  string that is the  name of</div><div class='add'>+ *                        the signal.</div><div class='add'>+ * @warning    Don't free the return value.</div><div class='add'>+ */</div><div class='add'>+const char *ruby_signal_name(int signo);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Pretends as if  there was no custom signal handler.   This function sets the</div><div class='add'>+ * signal action to SIG_DFL, then kills itself.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  sig  The signal.</div><div class='add'>+ * @post       Previous signal handler is lost.</div><div class='add'>+ * @post       Passed signal is sent to the current process.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't understand  the needs of this function  being visible from</div><div class='add'>+ * extension libraries.</div><div class='add'>+ */</div><div class='add'>+void ruby_default_signal(int sig);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_SIGNAL_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/sprintf.h b/include/ruby/internal/intern/sprintf.h<br/>new file mode 100644<br/>index 0000000000..aedc0f9ab1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/sprintf.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/sprintf.h</a></div><div class='hunk'>@@ -0,0 +1,159 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_SPRINTF_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_SPRINTF_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Our own private `printf(3)`.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/format.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* sprintf.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_format(), except how the arguments are arranged.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc  Number of objects of `argv`.</div><div class='add'>+ * @param[in]  argv  A format string, followed by its arguments.</div><div class='add'>+ * @return     A rendered new instance of ::rb_cString.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * You can safely pass NULL to `argv`.  Doesn't make any sense though.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_f_sprintf(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)</div><div class='add'>+/**</div><div class='add'>+ * Ruby's extended `sprintf(3)`.   We ended up reinventing  the entire `printf`</div><div class='add'>+ * business because we  don't want to depend on  locales.  OS-provided `printf`</div><div class='add'>+ * routines  might or  might  not,  which caused  instabilities  of the  result</div><div class='add'>+ * strings.</div><div class='add'>+ *</div><div class='add'>+ * The format  sequence is a  mixture of  format specifiers and  other verbatim</div><div class='add'>+ * contents.  Each  format specifier starts with  a `%`, and has  the following</div><div class='add'>+ * structure:</div><div class='add'>+ *</div><div class='add'>+ * ```</div><div class='add'>+ * %[flags][width][.precision][length]conversion</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * This  function  supports  flags  of   ` `, `#`,  `+`,  `-`,  `0`,  width  of</div><div class='add'>+ * non-negative  decimal integer  and  `*`, precision  of non-negative  decimal</div><div class='add'>+ * integers and `*`, length of `L`,  `h`, `t`, `z`, `l`, `ll`, `q`, conversions</div><div class='add'>+ * of `A`,  `D`, `E`, `G`, `O`,  `U`, `X`, `a`,  `c`, `d`, `e`, `f`,  `g`, `i`,</div><div class='add'>+ * `n`, `o`, `p`, `s`, `u`, `x`, and `%`.  In case of `_WIN32` it also supports</div><div class='add'>+ * `I`.   And additionally,  it  supports magical  `PRIsVALUE`  macro that  can</div><div class='add'>+ * stringise arbitrary Ruby objects:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * rb_sprintf("|%"PRIsVALUE"|", RUBY_Qtrue); // =&gt; "|true|"</div><div class='add'>+ * rb_sprintf("%+"PRIsVALUE, rb_stdin);      // =&gt; "#&lt;IO:&lt;STDIN&gt;&gt;"</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fmt  A `printf`-like format specifier.</div><div class='add'>+ * @param[in]  ...  Variadic number of contents to format.</div><div class='add'>+ * @return     A rendered new instance of ::rb_cString.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * :FIXME:  We can improve this document.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_sprintf(const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 0)</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_sprintf(), except it takes a `va_list`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fmt  A `printf`-like format specifier.</div><div class='add'>+ * @param[in]  ap   Contents to format.</div><div class='add'>+ * @return     A rendered new instance of ::rb_cString.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_vsprintf(const char *fmt, va_list ap);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3)</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_sprintf(), except  it renders the  output to  the specified</div><div class='add'>+ * object rather than creating a new one.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst            String to modify.</div><div class='add'>+ * @param[in]   fmt            A `printf`-like format specifier.</div><div class='add'>+ * @param[in]   ...            Variadic number of contents to format.</div><div class='add'>+ * @exception   rb_eTypeError  `dst` is not a String.</div><div class='add'>+ * @return      Passed `dst`.</div><div class='add'>+ * @post        `dst` has the rendered output appended to its end.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_catf(VALUE dst, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0)</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_str_catf(), except it  takes a  `va_list`.  It can  also be</div><div class='add'>+ * seen as a  routine identical to rb_vsprintf(), except it  renders the output</div><div class='add'>+ * to the specified object rather than creating a new one.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst            String to modify.</div><div class='add'>+ * @param[in]   fmt            A `printf`-like format specifier.</div><div class='add'>+ * @param[in]   ap             Contents to format.</div><div class='add'>+ * @exception   rb_eTypeError  `dst` is not a String.</div><div class='add'>+ * @return      Passed `dst`.</div><div class='add'>+ * @post        `dst` has the rendered output appended to its end.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_vcatf(VALUE dst, const char *fmt, va_list ap);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Formats a string.</div><div class='add'>+ *</div><div class='add'>+ * Returns  the string  resulting from  applying `fmt`  to `argv`.   The format</div><div class='add'>+ * sequence  is a  mixture of  format specifiers  and other  verbatim contents.</div><div class='add'>+ * Each format specifier starts with a `%`, and has the following structure:</div><div class='add'>+ *</div><div class='add'>+ * ```</div><div class='add'>+ * %[flags][width][.precision]type</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * ...  which is  different from  that of  rb_sprintf().  Because  ruby has  no</div><div class='add'>+ * `short` or `long`, there is no way to specify a "length" of an argument.</div><div class='add'>+ *</div><div class='add'>+ * This function  supports flags  of ` `,  `#`, `+`, `-`,  `&lt;&gt;`, `{}`,  with of</div><div class='add'>+ * non-negative decimal integer and `$`, `*`, precision of non-negative decimal</div><div class='add'>+ * integer and `$`, `*`,  type of `A`, `B`, `E`, `G`, `X`,  `a`, `b`, `c`, `d`,</div><div class='add'>+ * `e`,  `f`, `g`,  `i`, `o`,  `p`,  `s`, `u`,  `x`,  `%`.  This  list is  also</div><div class='add'>+ * (largely the same but) not identical to that of rb_sprintf().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc           Number of objects in `argv`.</div><div class='add'>+ * @param[in]  argv           Format arguments.</div><div class='add'>+ * @param[in]  fmt            A printf-like format specifier.</div><div class='add'>+ * @exception  rb_eTypeError  `fmt` is not a string.</div><div class='add'>+ * @exception  rb_eArgError   Failed to parse `fmt`.</div><div class='add'>+ * @return     A rendered new instance of ::rb_cString.</div><div class='add'>+ * @note       Everything it takes must be Ruby objects.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_format(int argc, const VALUE *argv, VALUE fmt);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_SPRINTF_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/string.h b/include/ruby/internal/intern/string.h<br/>new file mode 100644<br/>index 0000000000..3083125e56<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/string.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/string.h</a></div><div class='hunk'>@@ -0,0 +1,1757 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_STRING_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_STRING_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cString.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STRING_H</div><div class='add'>+# include &lt;string.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STDINT_H</div><div class='add'>+# include &lt;stdint.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/deprecated.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/constant_p.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/variable.h" /* rb_gvar_setter_t */</div><div class='add'>+#include "ruby/st.h"         /* st_index_t */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* string.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates an instance of ::rb_cString.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len             Length  of `ptr`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate `len+1` bytes.</div><div class='add'>+ * @exception  rb_eArgError    `len` is negative.</div><div class='add'>+ * @return     An  instance   of  ::rb_cString,  of  `len`   bytes  length,  of</div><div class='add'>+ *             "binary" encoding, whose contents are verbatim copy of `ptr`.</div><div class='add'>+ * @pre        At  least  `len` bytes  of  continuous  memory region  shall  be</div><div class='add'>+ *             accessible via `ptr`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_new(const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_new(), except it assumes the passed pointer is a pointer</div><div class='add'>+ * to a C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @exception  rb_eArgError    `ptr` is a null pointer.</div><div class='add'>+ * @return     An  instance  of  ::rb_cString,   of  "binary"  encoding,  whose</div><div class='add'>+ *             contents are verbatim copy of `ptr`.</div><div class='add'>+ * @pre        `ptr` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_new_cstr(const char *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_new_cstr(),  except it takes a Ruby's  string instead of</div><div class='add'>+ * C's.  Implementation wise it creates a string that shares the backend memory</div><div class='add'>+ * region with the receiver.   So the name.  But there is  no way for extension</div><div class='add'>+ * libraries to know if a string is of such variant.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  An object of ::RString.</div><div class='add'>+ * @return     An  allocated   instance  of  ::rb_cString,  which   shares  the</div><div class='add'>+ *             encoding, length, and contents with the passed string.</div><div class='add'>+ * @pre        `str` must not be any arbitrary object except ::RString.</div><div class='add'>+ * @note       Use #StringValue to enforce the precondition.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_new_shared(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates  a frozen  copy of  the string,  if necessary.   This function  does</div><div class='add'>+ * nothing when the passed string is already frozen.  Otherwise, it allocates a</div><div class='add'>+ * copy of it, which is frozen.  The passed string is untouched either ways.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  An object of ::RString.</div><div class='add'>+ * @return     Something frozen.</div><div class='add'>+ * @pre        `str` must not be any arbitrary object except ::RString.</div><div class='add'>+ * @note       Use #StringValue to enforce the precondition.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_new_frozen(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_str_new(),  except it  takes  the class  of the  allocating</div><div class='add'>+ * object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj             A string-ish object.</div><div class='add'>+ * @param[in]  ptr             A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len             Length  of `ptr`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate `len+1` bytes.</div><div class='add'>+ * @exception  rb_eArgError    `len` is negative.</div><div class='add'>+ * @return     An instance  of the class  of `obj`,  of `len` bytes  length, of</div><div class='add'>+ *             "binary" encoding, whose contents are verbatim copy of `ptr`.</div><div class='add'>+ * @pre        At  least  `len` bytes  of  continuous  memory region  shall  be</div><div class='add'>+ *             accessible via `ptr`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Why it doesn't take an instance of ::rb_cClass?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_new_with_class(VALUE obj, const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_str_new(),  except  it  generates  a  string  of  "default</div><div class='add'>+ * external" encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len             Length  of `ptr`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate `len+1` bytes.</div><div class='add'>+ * @exception  rb_eArgError    `len` is negative.</div><div class='add'>+ * @return     An instance  of ::rb_cString.  In case  encoding conversion from</div><div class='add'>+ *             "default internal"  to "default external" is  fully defined over</div><div class='add'>+ *             the  given  contents, then  the  return  value  is a  string  of</div><div class='add'>+ *             "default external"  encoding, whose  contents are  the converted</div><div class='add'>+ *             ones.  Otherwise the string is a junk.</div><div class='add'>+ * @warning    It doesn't raise on a conversion failure and silently ends up in</div><div class='add'>+ *             a  corrupted  output.  You  can  know  the failure  by  querying</div><div class='add'>+ *             `valid_encoding?` of the result object.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_external_str_new(const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_external_str_new(), except it  assumes the passed pointer is</div><div class='add'>+ * a pointer  to a C  string.  It can  also be seen  as a routine  identical to</div><div class='add'>+ * rb_str_new_cstr(),  except  it  generates  a string  of  "default  external"</div><div class='add'>+ * encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An instance  of ::rb_cString.  In case  encoding conversion from</div><div class='add'>+ *             "default internal"  to "default external" is  fully defined over</div><div class='add'>+ *             the  given  contents, then  the  return  value  is a  string  of</div><div class='add'>+ *             "default external"  encoding, whose  contents are  the converted</div><div class='add'>+ *             ones.  Otherwise the string is a junk.</div><div class='add'>+ * @warning    It doesn't raise on a conversion failure and silently ends up in</div><div class='add'>+ *             a  corrupted  output.  You  can  know  the failure  by  querying</div><div class='add'>+ *             `valid_encoding?` of the result object.</div><div class='add'>+ * @pre        `ptr` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_external_str_new_cstr(const char *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_str_new(),  except  it  generates  a  string  of  "locale"</div><div class='add'>+ * encoding.    It   can   also   be   seen   as   a   routine   identical   to</div><div class='add'>+ * rb_external_str_new(),  except it  generates a  string of  "locale" encoding</div><div class='add'>+ * instead of "default external" encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len             Length  of `ptr`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate `len+1` bytes.</div><div class='add'>+ * @exception  rb_eArgError    `len` is negative.</div><div class='add'>+ * @return     An instance  of ::rb_cString.  In case  encoding conversion from</div><div class='add'>+ *             "default internal" to  "locale" is fully defined  over the given</div><div class='add'>+ *             contents,  then  the  return  value  is  a  string  of  "locale"</div><div class='add'>+ *             encoding, whose contents are  the converted ones.  Otherwise the</div><div class='add'>+ *             string is a junk.</div><div class='add'>+ * @warning    It doesn't raise on a conversion failure and silently ends up in</div><div class='add'>+ *             a  corrupted  output.  You  can  know  the failure  by  querying</div><div class='add'>+ *             `valid_encoding?` of the result object.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_locale_str_new(const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_locale_str_new(), except it  assumes the passed pointer is a</div><div class='add'>+ * pointer  to a  C string.   It can  also be  seen as  a routine  identical to</div><div class='add'>+ * rb_external_str_new_cstr(),  except  it  generates   a  string  of  "locale"</div><div class='add'>+ * encoding instead of "default external".</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An instance  of ::rb_cString.  In case  encoding conversion from</div><div class='add'>+ *             "default internal" to  "locale" is fully defined  over the given</div><div class='add'>+ *             contents,  then  the  return  value  is  a  string  of  "locale"</div><div class='add'>+ *             encoding, whose contents are  the converted ones.  Otherwise the</div><div class='add'>+ *             string is a junk.</div><div class='add'>+ * @warning    It doesn't raise on a conversion failure and silently ends up in</div><div class='add'>+ *             a  corrupted  output.  You  can  know  the failure  by  querying</div><div class='add'>+ *             `valid_encoding?` of the result object.</div><div class='add'>+ * @pre        `ptr` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_locale_str_new_cstr(const char *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_str_new(),  except it  generates a  string of  "filesystem"</div><div class='add'>+ * encoding.    It   can   also   be   seen   as   a   routine   identical   to</div><div class='add'>+ * rb_external_str_new(), except it generates a string of "filesystem" encoding</div><div class='add'>+ * instead of "default external" encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len             Length  of `ptr`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate `len+1` bytes.</div><div class='add'>+ * @exception  rb_eArgError    `len` is negative.</div><div class='add'>+ * @return     An instance  of ::rb_cString.  In case  encoding conversion from</div><div class='add'>+ *             "default  internal" to  "filesystem" is  fully defined  over the</div><div class='add'>+ *             given  contents,   then  the  return   value  is  a   string  of</div><div class='add'>+ *             "filesystem" encoding,  whose contents  are the  converted ones.</div><div class='add'>+ *             Otherwise the string is a junk.</div><div class='add'>+ * @warning    It doesn't raise on a conversion failure and silently ends up in</div><div class='add'>+ *             a  corrupted  output.  You  can  know  the failure  by  querying</div><div class='add'>+ *             `valid_encoding?` of the result object.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_filesystem_str_new(const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_filesystem_str_new(), except it assumes  the passed pointer</div><div class='add'>+ * is a pointer to  a C string.  It can also be seen  as a routine identical to</div><div class='add'>+ * rb_external_str_new_cstr(),  except it  generates a  string of  "filesystem"</div><div class='add'>+ * encoding instead of "default external".</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An instance  of ::rb_cString.  In case  encoding conversion from</div><div class='add'>+ *             "default  internal" to  "filesystem" is  fully defined  over the</div><div class='add'>+ *             given  contents,   then  the  return   value  is  a   string  of</div><div class='add'>+ *             "filesystem" encoding,  whose contents  are the  converted ones.</div><div class='add'>+ *             Otherwise the string is a junk.</div><div class='add'>+ * @warning    It doesn't raise on a conversion failure and silently ends up in</div><div class='add'>+ *             a  corrupted  output.  You  can  know  the failure  by  querying</div><div class='add'>+ *             `valid_encoding?` of the result object.</div><div class='add'>+ * @pre        `ptr` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_filesystem_str_new_cstr(const char *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates  a "string  buffer".   A  string buffer  here  is  an instance  of</div><div class='add'>+ * ::rb_cString, whose  capacity is bigger than  the length of it.   If you can</div><div class='add'>+ * say  that a  string grows  to  a specific  amount  of bytes,  this could  be</div><div class='add'>+ * effective than resizing a string over and over again and again.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  capa  Designed capacity of the generating string.</div><div class='add'>+ * @return     An empty string, of "binary" encoding, whose capacity is `capa`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_buf_new(long capa);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * This is a rb_str_buf_new() + rb_str_buf_cat() combo.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An  instance  of  ::rb_cString,   of  "binary"  encoding,  whose</div><div class='add'>+ *             contents are verbatim copy of `ptr`.</div><div class='add'>+ * @pre        `ptr` must not be a null pointer.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This must be identical to rb_str_new_cstr(), except done in inefficient way?</div><div class='add'>+ * @shyouhei doesn't understand why this is not a simple alias.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_buf_new_cstr(const char *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates a  "temporary" string.  This is  a hidden empty string.   Handy on</div><div class='add'>+ * occasions.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  len  Designed length of the string.</div><div class='add'>+ * @return     A hidden, empty string.</div><div class='add'>+ * @see        rb_obj_hide()</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_tmp_new(long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_str_new(),  except  it  generates a  string  of "US  ASCII"</div><div class='add'>+ * encoding.  This  is different from  rb_external_str_new(), not only  for the</div><div class='add'>+ * output encoding, but also it doesn't convert the contents.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len             Length  of `ptr`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate `len+1` bytes.</div><div class='add'>+ * @exception  rb_eArgError    `len` is negative.</div><div class='add'>+ * @return     An  instance   of  ::rb_cString,  of  `len`   bytes  length,  of</div><div class='add'>+ *             "US ASCII" encoding, whose contents are verbatim copy of `ptr`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_usascii_str_new(const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_new_cstr(),  except it generates a string  of "US ASCII"</div><div class='add'>+ * encoding.   It   can   also   be    seen   as   a   routine   Identical   to</div><div class='add'>+ * rb_usascii_str_new(), except it assumes the passed pointer is a pointer to a</div><div class='add'>+ * C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @exception  rb_eArgError    `ptr` is a null pointer.</div><div class='add'>+ * @return     An  instance  of ::rb_cString,  of  "US  ASCII" encoding,  whose</div><div class='add'>+ *             contents are verbatim copy of `ptr`.</div><div class='add'>+ * @pre        `ptr` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_usascii_str_new_cstr(const char *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_new(), except it generates a string of "UTF-8" encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len             Length  of `ptr`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate `len+1` bytes.</div><div class='add'>+ * @exception  rb_eArgError    `len` is negative.</div><div class='add'>+ * @return     An  instance   of  ::rb_cString,  of  `len`   bytes  length,  of</div><div class='add'>+ *             "UTF-8" encoding, whose contents are verbatim copy of `ptr`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_utf8_str_new(const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_str_new_cstr(),  except it  generates a  string of  "UTF-8"</div><div class='add'>+ * encoding.    It   can   also   be   seen   as   a   routine   Identical   to</div><div class='add'>+ * rb_usascii_str_new(), except it assumes the passed pointer is a pointer to a</div><div class='add'>+ * C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @exception  rb_eArgError    `ptr` is a null pointer.</div><div class='add'>+ * @return     An instance of ::rb_cString, of "UTF-8" encoding, whose contents</div><div class='add'>+ *             are verbatim copy of `ptr`.</div><div class='add'>+ * @pre        `ptr` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_utf8_str_new_cstr(const char *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Special strings that are backended by C string literals.</div><div class='add'>+ *</div><div class='add'>+ *  *_str_new_static functions are intended for C string literals.</div><div class='add'>+ *  They require memory in the range [ptr, ptr+len] to always be readable.</div><div class='add'>+ *  Note that this range covers a total of len + 1 bytes.</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_new(), except it takes a C string literal.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr           A C string literal.</div><div class='add'>+ * @param[in]  len           `strlen(ptr)`.</div><div class='add'>+ * @exception  rb_eArgError  `len` out of range of `size_t`.</div><div class='add'>+ * @pre        `ptr` must be a C string constant.</div><div class='add'>+ * @return     An instance of ::rb_cString, of "binary" encoding, whose backend</div><div class='add'>+ *             storage is the passed C string literal.</div><div class='add'>+ * @warning    It is  a very  bad idea to  write to a  C string  literal (often</div><div class='add'>+ *             immediate  SEGV shall  occur).  Consider  return values  of this</div><div class='add'>+ *             function be read-only.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Surprisingly it can take NULL, and generates an empty string.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_new_static(const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_new_static(), except it generates a string of "US ASCII"</div><div class='add'>+ * encoding instead of "binary".  It can also be seen as a routine identical to</div><div class='add'>+ * rb_usascii_str_new(), except it takes a C string literal.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr           A C string literal.</div><div class='add'>+ * @param[in]  len           `strlen(ptr)`.</div><div class='add'>+ * @exception  rb_eArgError  `len` out of range of `size_t`.</div><div class='add'>+ * @pre        `ptr` must be a C string constant.</div><div class='add'>+ * @return     An  instance  of ::rb_cString,  of  "US  ASCII" encoding,  whose</div><div class='add'>+ *             backend storage is the passed C string literal.</div><div class='add'>+ * @warning    It is  a very  bad idea to  write to a  C string  literal (often</div><div class='add'>+ *             immediate  SEGV shall  occur).  Consider  return values  of this</div><div class='add'>+ *             function be read-only.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_usascii_str_new_static(const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_str_new_static(), except it  generates a string  of "UTF-8"</div><div class='add'>+ * encoding instead of "binary".  It can also be seen as a routine identical to</div><div class='add'>+ * rb_utf8_str_new(), except it takes a C string literal.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr           A C string literal.</div><div class='add'>+ * @param[in]  len           `strlen(ptr)`.</div><div class='add'>+ * @exception  rb_eArgError  `len` out of range of `size_t`.</div><div class='add'>+ * @pre        `ptr` must be a C string constant.</div><div class='add'>+ * @return     An instance of ::rb_cString,  of "UTF-8" encoding, whose backend</div><div class='add'>+ *             storage is the passed C string literal.</div><div class='add'>+ * @warning    It is  a very  bad idea to  write to a  C string  literal (often</div><div class='add'>+ *             immediate  SEGV shall  occur).  Consider  return values  of this</div><div class='add'>+ *             function be read-only.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_utf8_str_new_static(const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_interned_str(),  except it takes a Ruby's  string instead of</div><div class='add'>+ * C's.  It can also be seen  as a routine identical to to rb_str_new_shared(),</div><div class='add'>+ * except it returns an infamous "f"string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  An object of ::RString.</div><div class='add'>+ * @return     An instance  of ::rb_cString, either cached  or allocated, which</div><div class='add'>+ *             has the identical encoding, length, and contents with the passed</div><div class='add'>+ *             string.</div><div class='add'>+ * @pre        `str` must not be any arbitrary object except ::RString.</div><div class='add'>+ * @note       Use #StringValue to enforce the precondition.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It  actually  finds  or  creates  a fstring  of  the  needed  property,  and</div><div class='add'>+ * destructively modifies  the receiver behind-the-scene  so that it  becomes a</div><div class='add'>+ * shared string whose parent is the returning fstring.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_to_interned_str(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_new(), except it returns an infamous "f"string.  What is</div><div class='add'>+ * a  fstring?  Well  it is  a special  subkind of  strings that  is immutable,</div><div class='add'>+ * deduped globally, and managed by our GC.   It is much like a Symbol (in fact</div><div class='add'>+ * Symbols  are dynamic  these days  and are  backended using  fstrings).  This</div><div class='add'>+ * concept has been  silently introduced at some point in  2.x era.  Since then</div><div class='add'>+ * it  gained  wider acceptance  in  the  core.   Starting from  3.x  extension</div><div class='add'>+ * libraries can also generate ones.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr           A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len           Length  of  `ptr`,  in bytes,  not  including  the</div><div class='add'>+ *                           terminating NUL character.</div><div class='add'>+ * @exception  rb_eArgError  `len` is negative.</div><div class='add'>+ * @return     A  found or  created instance  of ::rb_cString,  of `len`  bytes</div><div class='add'>+ *             length, of  "binary" encoding,  whose contents are  identical to</div><div class='add'>+ *             that of `ptr`.</div><div class='add'>+ * @pre        At  least  `len` bytes  of  continuous  memory region  shall  be</div><div class='add'>+ *             accessible via `ptr`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_interned_str(const char *ptr, long len);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_interned_str(), except it  assumes the passed pointer  is a</div><div class='add'>+ * pointer to a C's  string.  It can also be seen as a  routine identical to to</div><div class='add'>+ * rb_str_to_interned_str(), except  it takes a  C's string instead  of Ruby's.</div><div class='add'>+ * Or it can  also be seen as a routine  identical to rb_str_new_cstr(), except</div><div class='add'>+ * it returns an infamous "f"string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An  instance  of  ::rb_cString,   of  "binary"  encoding,  whose</div><div class='add'>+ *             contents are verbatim copy of `ptr`.</div><div class='add'>+ * @pre        `ptr` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_interned_str_cstr(const char *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destroys the given string for no reason.</div><div class='add'>+ *</div><div class='add'>+ * @warning  DO NOT USE IT.</div><div class='add'>+ * @warning  Leave this task to our GC.</div><div class='add'>+ * @warning  It was a bad idea at the first place to let you know about it.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str  The string to be executed.</div><div class='add'>+ * @post        The given string no longer exists.</div><div class='add'>+ * @note        Maybe `String#clear` could be what you want.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Should have moved this to `internal/string.h`.</div><div class='add'>+ */</div><div class='add'>+void rb_str_free(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Replaces the contents of the former with the latter.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst  Destination object.</div><div class='add'>+ * @param[in]   src  Source object.</div><div class='add'>+ * @pre         Both  objects   must  not  be  any   arbitrary  objects  except</div><div class='add'>+ *              ::RString.</div><div class='add'>+ * @post        `dst`'s  former  components  are  abandoned.  It  now  has  the</div><div class='add'>+ *              identical encoding, length, and contents to `src`.</div><div class='add'>+ * @see         rb_str_replace()</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei  doesn't understand  why this  is useful  to extension  libraries.</div><div class='add'>+ * Just use rb_str_replace().  What's wrong with that?</div><div class='add'>+ */</div><div class='add'>+void rb_str_shared_replace(VALUE dst, VALUE src);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_str_cat_cstr(), except  it takes  Ruby's string  instead of</div><div class='add'>+ * C's.  It can also be seen as a routine identical to rb_str_shared_replace(),</div><div class='add'>+ * except it appends instead of replaces.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst                 Destination object.</div><div class='add'>+ * @param[in]   src                 Source object.</div><div class='add'>+ * @exception   rb_eEncCompatError  Can't mix the encodings.</div><div class='add'>+ * @exception   rb_eArgError        Result string too big.</div><div class='add'>+ * @return      The passed `dst`.</div><div class='add'>+ * @pre         Both  objects   must  not  be  any   arbitrary  objects  except</div><div class='add'>+ *              ::RString.</div><div class='add'>+ * @post        `dst`  has  the  contents  of  `src`  appended,  with  encoding</div><div class='add'>+ *              converted into `dst`'s one, into the end of `dst`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_buf_append(VALUE dst, VALUE src);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_str_cat} */</div><div class='add'>+VALUE rb_str_buf_cat(VALUE, const char*, long);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_str_cat_cstr} */</div><div class='add'>+VALUE rb_str_buf_cat2(VALUE, const char*);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_str_cat_cstr(), except  it additionally assumes  the source</div><div class='add'>+ * string be a NUL terminated ASCII string.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst           Destination object.</div><div class='add'>+ * @param[in]   src           Source string.</div><div class='add'>+ * @exception   rb_eArgError  Result string too big.</div><div class='add'>+ * @return      The passed `dst`.</div><div class='add'>+ * @pre         `dst` must not be any arbitrary object except ::RString.</div><div class='add'>+ * @pre         `src` must be a NUL terminated ASCII string.</div><div class='add'>+ * @post        `dst`  has  the  contents  of  `src`  appended,  with  encoding</div><div class='add'>+ *              converted into `dst`'s one, into the end of `dst`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_buf_cat_ascii(VALUE dst, const char *src);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Try converting an  object to its stringised representation  using its `to_s`</div><div class='add'>+ * method, if  any.  If  there is  no such thing,  it resorts  to rb_any_to_s()</div><div class='add'>+ * output.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Arbitrary ruby object to stringise.</div><div class='add'>+ * @return     An instance of ::rb_cString.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_as_string(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Try converting an object to its stringised representation using its `to_str`</div><div class='add'>+ * method, if any.  If there is no such thing, returns ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            Arbitrary ruby object to stringise.</div><div class='add'>+ * @exception  rb_eTypeError  `obj.to_str` returned something non-String.</div><div class='add'>+ * @retval     RUBY_Qnil      No conversion from obj to String defined.</div><div class='add'>+ * @return     otherwise      Stringised representation of `obj`.</div><div class='add'>+ * @see        rb_io_check_io</div><div class='add'>+ * @see        rb_check_array_type</div><div class='add'>+ * @see        rb_check_hash_type</div><div class='add'>+ */</div><div class='add'>+VALUE rb_check_string_type(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts that  the given  string's encoding is  (Ruby's definition  of) ASCII</div><div class='add'>+ * compatible.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj                 An instance of ::rb_cString.</div><div class='add'>+ * @exception  rb_eEncCompatError  `obj` is ASCII incompatible.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't know if this is an  Easter egg or an official feature, but</div><div class='add'>+ * this function  can in fact take  non-strings such as Symbols,  Regexps, IOs,</div><div class='add'>+ * etc.  However if something unsupported is  passed, it causes SEGV.  It seems</div><div class='add'>+ * the feature is kind of untested.</div><div class='add'>+ */</div><div class='add'>+void rb_must_asciicompat(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Duplicates a string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  String in question to duplicate.</div><div class='add'>+ * @return     A duplicated new instance.</div><div class='add'>+ * @pre        `str` must be of ::RString.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_dup(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * I guess there  is no use case  of this function in  extension libraries, but</div><div class='add'>+ * this is  a routine identical  to rb_str_dup(),  except it always  creates an</div><div class='add'>+ * instance of ::rb_cString regardless of the given object's class.  This makes</div><div class='add'>+ * the most sense when the passed string is formerly hidden by rb_obj_hide().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A string, possibly hidden.</div><div class='add'>+ * @return     A duplicated new instance of ::rb_cString.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_resurrect(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Obtains a "temporary  lock" of the string.  This  advisory locking mechanism</div><div class='add'>+ * prevents other  cooperating threads from  tampering the receiver.   The same</div><div class='add'>+ * thing could be done via freeze mechanism,  but this one can also be unlocked</div><div class='add'>+ * using rb_str_unlocktmp().</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str               String to lock.</div><div class='add'>+ * @exception   rb_eRuntimeError  `str` already locked.</div><div class='add'>+ * @return      The given string.</div><div class='add'>+ * @post        The string is locked.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_locktmp(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Releases a lock formerly obtained by rb_str_locktmp().</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str               String to unlock.</div><div class='add'>+ * @exception   rb_eRuntimeError  `str` already unlocked.</div><div class='add'>+ * @return      The given string.</div><div class='add'>+ * @post        The string is locked.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_unlocktmp(VALUE str);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_str_new_frozen} */</div><div class='add'>+VALUE rb_str_dup_frozen(VALUE);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_str_new_frozen} */</div><div class='add'>+#define rb_str_dup_frozen rb_str_new_frozen</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates a new string, concatenating the former to the latter.  It can also</div><div class='add'>+ * be seen as a routine identical  to rb_str_append(), except it doesn't tamper</div><div class='add'>+ * the passed strings to create a new one instead.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs                 Source string #1.</div><div class='add'>+ * @param[in]  rhs                 Source string #2.</div><div class='add'>+ * @exception  rb_eEncCompatError  Can't mix the encodings.</div><div class='add'>+ * @exception  rb_eArgError        Result string too big.</div><div class='add'>+ * @return     A new string containing `rhs` concatenated to `lhs`.</div><div class='add'>+ * @pre        Both objects must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @note       This  operation  doesn't commute.   Don't  get  confused by  the</div><div class='add'>+ *             "plus"  terminology.   For  historical reasons  there  are  some</div><div class='add'>+ *             noncommutative `+`s in Ruby.  This is one of such things.  There</div><div class='add'>+ *             has been a long discussion around `+`s in programming languages.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_plus(VALUE lhs, VALUE rhs);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Repetition of a string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str           String to repeat.</div><div class='add'>+ * @param[in]  num           Count, something numeric.</div><div class='add'>+ * @exception  rb_eArgError  `num` is negative.</div><div class='add'>+ * @return     A new string repeating `num` times of `str`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_times(VALUE str, VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Byte  offset to  character offset  conversion.   This makes  sense when  the</div><div class='add'>+ * receiver is in  a multibyte encoding.  The string's i-th  character does not</div><div class='add'>+ * always sit at its  i-th byte.  This function scans the  contents to find the</div><div class='add'>+ * character index that matches the byte  index.  Generally speaking this is an</div><div class='add'>+ * `O(n)` operation.  Could be slow.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  The string to scan.</div><div class='add'>+ * @param[in]  pos  Offset, in bytes.</div><div class='add'>+ * @return     Offset, in characters.</div><div class='add'>+ */</div><div class='add'>+long rb_str_sublen(VALUE str, long pos);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the implementation of two-argumented `String#slice`.</div><div class='add'>+ *</div><div class='add'>+ * - Returns the substring of the given `len` found in `str` at offset `beg`:</div><div class='add'>+ *</div><div class='add'>+ *   ```ruby</div><div class='add'>+ *   'foo'[0, 2] # =&gt; "fo"</div><div class='add'>+ *   'foo'[0, 0] # =&gt; ""</div><div class='add'>+ *   ```</div><div class='add'>+ *</div><div class='add'>+ * - Counts backward from the end of `str` if `beg` is negative:</div><div class='add'>+ *</div><div class='add'>+ *   ```ruby</div><div class='add'>+ *   'foo'[-2, 2] # =&gt; "oo"</div><div class='add'>+ *   ```</div><div class='add'>+ *</div><div class='add'>+ * - Special case: returns a  new empty string if `beg` is  equal to the length</div><div class='add'>+ *   of `str`:</div><div class='add'>+ *</div><div class='add'>+ *   ```ruby</div><div class='add'>+ *   'foo'[3, 2] # =&gt; ""</div><div class='add'>+ *   ```</div><div class='add'>+ *</div><div class='add'>+ * - Returns a null pointer if `beg` is out of range:</div><div class='add'>+ *</div><div class='add'>+ *   ```ruby</div><div class='add'>+ *   'foo'[4, 2] # =&gt; nil</div><div class='add'>+ *   'foo'[-4, 2] # =&gt; nil</div><div class='add'>+ *   ```</div><div class='add'>+ *</div><div class='add'>+ * - Returns the trailing substring of `str` if `len` is large:</div><div class='add'>+ *</div><div class='add'>+ *   ```ruby</div><div class='add'>+ *   'foo'[1, 50] # =&gt; "oo"</div><div class='add'>+ *   ```</div><div class='add'>+ *</div><div class='add'>+ * - Returns a null pointer if `len` is negative:</div><div class='add'>+ *</div><div class='add'>+ *   ```ruby</div><div class='add'>+ *   'foo'[0, -1] # =&gt; nil</div><div class='add'>+ *   ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str        The string to slice.</div><div class='add'>+ * @param[in]  beg        Requested offset of the substring.</div><div class='add'>+ * @param[in]  len        Requested length of the substring.</div><div class='add'>+ * @retval     RUBY_Qnil  Parameters out of range.</div><div class='add'>+ * @retval     otherwise  A  new   string  whose  contents  is   the  specified</div><div class='add'>+ *                        substring of `str`.</div><div class='add'>+ * @pre        `str` must not be any arbitrary objects except ::RString.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_substr(VALUE str, long beg, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_str_substr(), except  the numbers  are interpreted  as byte</div><div class='add'>+ * offsets instead of character offsets.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  The string to slice.</div><div class='add'>+ * @param[in]  beg  Requested offset of the substring.</div><div class='add'>+ * @param[in]  len  Requested length of the substring.</div><div class='add'>+ * @return     A new string whose contents is the specified substring of `str`.</div><div class='add'>+ * @pre        `str` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @pre        `beg` and `len` must not point to OOB contents.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_subseq(VALUE str, long beg, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_str_substr(),  except it  returns a  C's string  instead of</div><div class='add'>+ * Ruby's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      str        The string to slice.</div><div class='add'>+ * @param[in]      beg        Requested offset of the substring.</div><div class='add'>+ * @param[in,out]  len        Requested length of the substring.</div><div class='add'>+ * @retval         NULL       Parameters out of range.</div><div class='add'>+ * @retval         otherwise  A pointer inside of `str`'s backend storage where</div><div class='add'>+ *                            the specified substring exist.</div><div class='add'>+ * @pre            `str` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @post           `len` is updated to have the length of the return value.</div><div class='add'>+ */</div><div class='add'>+char *rb_str_subpos(VALUE str, long beg, long *len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Declares that the string is about to be modified.  This for instance let the</div><div class='add'>+ * string have a dedicated backend storage.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str               String about to be modified.</div><div class='add'>+ * @exception   rb_eRuntimeError  `str` is `locktmp`-ed.</div><div class='add'>+ * @exception   rb_eFrozenError   `str` is frozen.</div><div class='add'>+ * @pre         `str` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @post        Upon  successful return  the passed  string is  eligible to  be</div><div class='add'>+ *              modified.</div><div class='add'>+ */</div><div class='add'>+void rb_str_modify(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_modify(), except it additionally expands the capacity of</div><div class='add'>+ * the receiver.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str               Target string to modify.</div><div class='add'>+ * @param[in]   capa              Additional capacity to add.</div><div class='add'>+ * @exception   rb_eArgError      `capa` is negative.</div><div class='add'>+ * @exception   rb_eRuntimeError  `str` is `locktmp`-ed.</div><div class='add'>+ * @exception   rb_eFrozenError   `str` is frozen.</div><div class='add'>+ * @pre         `str` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @post        Upon successful  return the passed  string is modified  so that</div><div class='add'>+ *              its capacity is increased for `capa` bytes.</div><div class='add'>+ */</div><div class='add'>+void rb_str_modify_expand(VALUE str, long capa);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the implementation of `String#freeze`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str  Target string to freeze.</div><div class='add'>+ * @return      The passed string.</div><div class='add'>+ * @post        Upon successful return the passed string is frozen.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_freeze(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Overwrites the  length of the  string.  Typically this  is used to  shrink a</div><div class='add'>+ * string that was formerly expanded.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * extern int fd;</div><div class='add'>+ * auto str = rb_eval_string("'...'");</div><div class='add'>+ * rb_str_modify_expand(str, BUFSIZ);</div><div class='add'>+ * if (auto len = recv(fd, RSTRING_PTR(str), BUFSIZ, 0); len &gt;= 0) {</div><div class='add'>+ *     rb_str_set_len(str, len);</div><div class='add'>+ * }</div><div class='add'>+ * else {</div><div class='add'>+ *     rb_sys_fail("recv(2)");</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str               String to shrink.</div><div class='add'>+ * @param[in]   len               New length of the string.</div><div class='add'>+ * @exception   rb_eRuntimeError  `str` is `locktmp`-ed.</div><div class='add'>+ * @exception   rb_eFrozenError   `str` is frozen.</div><div class='add'>+ * @pre         `str` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @post        Upon successful return `str`'s length is set to `len`.</div><div class='add'>+ */</div><div class='add'>+void rb_str_set_len(VALUE str, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Overwrites the length of the  string.  In contrast to rb_str_set_len(), this</div><div class='add'>+ * function can also expand a string.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str               String to shrink.</div><div class='add'>+ * @param[in]   len               New length of the string.</div><div class='add'>+ * @exception   rb_eArgError      `len` is negative.</div><div class='add'>+ * @exception   rb_eRuntimeError  `str` is `locktmp`-ed.</div><div class='add'>+ * @exception   rb_eFrozenError   `str` is frozen.</div><div class='add'>+ * @return      The passed `str`.</div><div class='add'>+ * @pre         `str` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @post        Upon successful return `str` is  either expanded or shrunken to</div><div class='add'>+ *              have its length be `len`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_resize(VALUE str, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively appends the passed contents to the string.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst           Destination object.</div><div class='add'>+ * @param[in]   src           Contents to append.</div><div class='add'>+ * @param[in]   srclen        Length of `src`.</div><div class='add'>+ * @exception   rb_eArgError  `srclen` is negative.</div><div class='add'>+ * @return      The passed `dst`.</div><div class='add'>+ * @pre         `dst` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @post        `dst` has the contents of `ptr` appended.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_cat(VALUE dst, const char *src, long srclen);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_cat(), except it assumes the passed pointer is a pointer</div><div class='add'>+ * to a C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst           Destination object.</div><div class='add'>+ * @param[in]   src           Contents to append.</div><div class='add'>+ * @exception   rb_eArgError  Result string too big.</div><div class='add'>+ * @exception   rb_eArgError  `src` is a null pointer.</div><div class='add'>+ * @return      The passed `dst`.</div><div class='add'>+ * @pre         `dst` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @pre         `src` must not be a null pointer.</div><div class='add'>+ * @post        `dst` has the contents of `src` appended.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_cat_cstr(VALUE dst, const char *src);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_str_cat_cstr} */</div><div class='add'>+VALUE rb_str_cat2(VALUE, const char*);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_str_buf_append(), except  it converts  the right  hand side</div><div class='add'>+ * before concatenating.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst                 Destination object.</div><div class='add'>+ * @param[in]   src                 Source object.</div><div class='add'>+ * @exception   rb_eEncCompatError  Can't mix the encodings.</div><div class='add'>+ * @exception   rb_eArgError        Result string too big.</div><div class='add'>+ * @return      The passed `dst`.</div><div class='add'>+ * @pre         `dst` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @post        `dst`  has  the  contents  of  `src`  appended,  with  encoding</div><div class='add'>+ *              converted into `dst`'s one, into the end of `dst`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_append(VALUE dst, VALUE src);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_str_append(), except  it  also  accepts  an integer  as  a</div><div class='add'>+ * codepoint.  This resembles `String#&lt;&lt;`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst                 Destination object.</div><div class='add'>+ * @param[in]   src                 Source object, String or Numeric.</div><div class='add'>+ * @exception   rb_eRangeError      Source numeric is out of range.</div><div class='add'>+ * @exception   rb_eEncCompatError  Source string too long.</div><div class='add'>+ * @exception   rb_eArgError        Result string too big.</div><div class='add'>+ * @return      The passed `dst`.</div><div class='add'>+ * @pre         `dst` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @post        `dst`  has  the  contents  of  `src`  appended,  with  encoding</div><div class='add'>+ *              converted into `dst`'s one, into the end of `dst`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_concat(VALUE dst, VALUE src);</div><div class='add'>+</div><div class='add'>+/* random.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a universal hash function.</div><div class='add'>+ *</div><div class='add'>+ * @warning    This function changes its value per process.</div><div class='add'>+ * @param[in]  ptr  Target message.</div><div class='add'>+ * @param[in]  len  Length of `ptr` in bytes.</div><div class='add'>+ * @return     A pseudorandom number suitable for Hash's hash value.</div><div class='add'>+ * @see        Aumasson,  JP., Bernstein,  D.J., "SipHash:  A Fast  Short-Input</div><div class='add'>+ *             PRF",  In  proceedings  of   13th  International  Conference  on</div><div class='add'>+ *             Cryptology in  India (INDOCRYPT 2012), LNCS  7668, pp.  489-508,</div><div class='add'>+ *             2012.  http://doi.org/10.1007/978-3-642-34931-7_28</div><div class='add'>+*/</div><div class='add'>+st_index_t rb_memhash(const void *ptr, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Starts a series of hashing.  Suppose you have a struct:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * struct foo_tag {</div><div class='add'>+ *     unsigned char bar;</div><div class='add'>+ *     uint32_t baz;</div><div class='add'>+ * };</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * It is not a  wise idea to call rb_memhash() over it,  because there could be</div><div class='add'>+ * padding bits.  Instead you should explicitly iterate over each fields:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * foo_tag foo = { 0, 0, };</div><div class='add'>+ * st_index_t hash = 0;</div><div class='add'>+ *</div><div class='add'>+ * hash = rb_hash_start(0);</div><div class='add'>+ * hash = rb_hash_uint(hash, foo.bar);</div><div class='add'>+ * hash = rb_hash_uint32(hash, foo.baz);</div><div class='add'>+ * hash = rb_hash_end(hash);</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  i  Initial value.</div><div class='add'>+ * @return     A hash value.</div><div class='add'>+ */</div><div class='add'>+st_index_t rb_hash_start(st_index_t i);</div><div class='add'>+</div><div class='add'>+/** @alias{st_hash_uint32} */</div><div class='add'>+#define rb_hash_uint32(h, i) st_hash_uint32((h), (i))</div><div class='add'>+</div><div class='add'>+/** @alias{st_hash_uint} */</div><div class='add'>+#define rb_hash_uint(h, i) st_hash_uint((h), (i))</div><div class='add'>+</div><div class='add'>+/** @alias{st_hash_end} */</div><div class='add'>+#define rb_hash_end(h) st_hash_end(h)</div><div class='add'>+</div><div class='add'>+/* string.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Calculates a hash value of a string.   This is one of the two functions that</div><div class='add'>+ * constructs struct ::st_hash_type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  An object of ::RString.</div><div class='add'>+ * @return     A hash value.</div><div class='add'>+ * @pre        `str` must not be any arbitrary object except ::RString.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Although safe to call, there must be no particular use case of this function</div><div class='add'>+ * for extension libraries.  Only ruby internals must know about it.</div><div class='add'>+ *</div><div class='add'>+ * This is not a simple alias  of rb_memhash(), because it considers the passed</div><div class='add'>+ * string's encoding as well as its contents.</div><div class='add'>+ */</div><div class='add'>+st_index_t rb_str_hash(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Compares two  strings.  This  is one  of the  two functions  that constructs</div><div class='add'>+ * struct ::st_hash_type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str1  A string.</div><div class='add'>+ * @param[in]  str2  Another string.</div><div class='add'>+ * @retval     1     They have identical contents, length, and encodings.</div><div class='add'>+ * @retval     0     Otherwise.</div><div class='add'>+ * @pre        Both   objects   must  not  be  any   arbitrary  objects  except</div><div class='add'>+ *             ::RString.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * In contrast to  rb_str_hash(), this could be handy for  comparison that only</div><div class='add'>+ * concerns equality.  rb_str_cmp() returns 1, 0, -1.</div><div class='add'>+ */</div><div class='add'>+int rb_str_hash_cmp(VALUE str1, VALUE str2);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks  if  two   strings  are  comparable  each  other   or  not.   Because</div><div class='add'>+ * rb_str_cmp()  must  return  "lesser  than" or  "greater  than"  information,</div><div class='add'>+ * comparing two strings needs a stricter restriction.  Both sides must be in a</div><div class='add'>+ * same set of strings which have total order.  This is to check that property.</div><div class='add'>+ * Intuitive it  sounds?  But they  can have different encodings.   A character</div><div class='add'>+ * and another might or might not appear in the same order in their codepoints.</div><div class='add'>+ * It is complicated than you think.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str1  A string.</div><div class='add'>+ * @param[in]  str2  Another string.</div><div class='add'>+ * @retval     1     They agree on a total order.</div><div class='add'>+ * @retval     0     Otherwise.</div><div class='add'>+ * @pre        Both   objects   must  not  be  any   arbitrary  objects  except</div><div class='add'>+ *             ::RString.</div><div class='add'>+ */</div><div class='add'>+int rb_str_comparable(VALUE str1, VALUE str2);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Compares two strings, as in `strcmp(3)`.  This does not consider the current</div><div class='add'>+ * locale, but considers the encodings of both sides instead.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs  A string.</div><div class='add'>+ * @param[in]  rhs  Another string.</div><div class='add'>+ * @retval     -1   `lhs` is "bigger than" `rhs`.</div><div class='add'>+ * @retval      1   `rhs` is "bigger than" `lhs`.</div><div class='add'>+ * @retval      0    Otherwise, e.g. not comparable.</div><div class='add'>+ * @pre        Both   objects   must  not  be  any   arbitrary  objects  except</div><div class='add'>+ *             ::RString.</div><div class='add'>+ */</div><div class='add'>+int rb_str_cmp(VALUE lhs, VALUE rhs);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Equality of two strings.</div><div class='add'>+ *</div><div class='add'>+ * If `str2` is not a String, it  resorts to `str2 == str1`.  Otherwise if they</div><div class='add'>+ * are not comparable, returns ::RUBY_Qfalse.   Otherwise if they have the same</div><div class='add'>+ * contents  and   the  length,   returns  ::RUBY_Qtrue.    Otherwise,  returns</div><div class='add'>+ * ::RUBY_Qfalse.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str1         A string.</div><div class='add'>+ * @param[in]  str2         Another string.</div><div class='add'>+ * @retval     RUBY_Qtrue   They are equal.</div><div class='add'>+ * @retval     RUBY_Qfalse  They are either different, or not comparable.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_equal(VALUE str1, VALUE str2);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shrinks the given string for the given number of bytes.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str               String to squash.</div><div class='add'>+ * @param[in]   len               Number of bytes to reduce.</div><div class='add'>+ * @exception   rb_eRuntimeError  `str` is `locktmp`-ed.</div><div class='add'>+ * @exception   rb_eFrozenError   `str` is frozen.</div><div class='add'>+ * @return      The passed `str`.</div><div class='add'>+ * @pre         `str` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @post        `str` is shrunken.</div><div class='add'>+ * @warning     Can break a multibyte character in middle.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * What if `len` is negative?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_drop_bytes(VALUE str, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Replaces some  (or all) of  the contents of the  given string.  This  is the</div><div class='add'>+ * implementation of three-argumented `String#[]=`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst               Target string to update.</div><div class='add'>+ * @param[in]   beg               Offset of the affected portion.</div><div class='add'>+ * @param[in]   len               Length of the affected portion.</div><div class='add'>+ * @param[in]   src               Object to be assigned.</div><div class='add'>+ * @exception   rb_eTypeError     `src` has no implicit conversion to String.</div><div class='add'>+ * @exception   rb_eIndexError    `len` is negative, or `beg` is OOB.</div><div class='add'>+ * @exception   rb_eRuntimeError  `dst` is `locktmp`-ed.</div><div class='add'>+ * @exception   rb_eFrozenError   `dst` is frozen.</div><div class='add'>+ * @note        Unlike rb_str_substr(), this function raises.</div><div class='add'>+ * @post        A  portion of  `dst`  from  `beg` to  `len`  is the  stringised</div><div class='add'>+ *              representation of `src`.  If that replacement string is not the</div><div class='add'>+ *              same  length as  the portion  it  is replacing,  `dst` will  be</div><div class='add'>+ *              resized accordingly.</div><div class='add'>+ */</div><div class='add'>+void rb_str_update(VALUE dst, long beg, long len, VALUE src);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Replaces the contents  of the former object with the  stringised contents of</div><div class='add'>+ * the latter.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst               Destination object.</div><div class='add'>+ * @param[in]   src               Source object.</div><div class='add'>+ * @exception   rb_eTypeError     `src` has no implicit conversion to String.</div><div class='add'>+ * @exception   rb_eRuntimeError  `dst` is `locktmp`-ed.</div><div class='add'>+ * @exception   rb_eFrozenError   `dst` is frozen.</div><div class='add'>+ * @return      The passed `dst`.</div><div class='add'>+ * @pre        `dst` must not be any arbitrary object except ::RString.</div><div class='add'>+ * @post        `dst`'s  former  components  are  abandoned.  It  now  has  the</div><div class='add'>+ *              identical encoding, length, and contents to `src`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_replace(VALUE dst, VALUE src);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates a "readable" version of the receiver.</div><div class='add'>+ *</div><div class='add'>+ * @warning    The output is _insecure_.  Never feed one to `eval`.</div><div class='add'>+ * @warning    The output is not always in the same encoding as the given one.</div><div class='add'>+ * @warning    A  character might  or might  not be  escaped, depending  on the</div><div class='add'>+ *             result encoding.</div><div class='add'>+ * @param[in]  str  String to inspect.</div><div class='add'>+ * @return     Its inspection, either  in default internal encoding  if any, or</div><div class='add'>+ *             in default external encoding otherwise.</div><div class='add'>+ * @see        rb_str_dump()</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This is a  (silent) fix of an actual vulnerability  feeding `inspect` output</div><div class='add'>+ * strings to `eval`:</div><div class='add'>+ * https://github.com/hiki/hiki/commit/8771a6e25198e264a2bf9dc1c102fea2cc8ff975</div><div class='add'>+ *</div><div class='add'>+ * ... and its advisory:</div><div class='add'>+ * http://hikiwiki.org/en/advisory20040712.html</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_inspect(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * "Inverse" of rb_eval_string().  Returns a quoted version of the string.  All</div><div class='add'>+ * non-printing characters are replaced by  `\uNNNN` or `\xHH` notation and all</div><div class='add'>+ * special characters are escaped.  The result string is guaranteed to render a</div><div class='add'>+ * string of the same contents when passed to `eval` and friends.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str               String to dump.</div><div class='add'>+ * @exception  rb_eRuntimeError  Too  many  escape   sequences  causes  integer</div><div class='add'>+ *                               overflow on the length of the string.</div><div class='add'>+ * @return     An  US-ASCII string  that  includes all  the  necessary info  to</div><div class='add'>+ *             reconstruct the original string.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_dump(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Divides  the  given string  based  on  the  given  delimiter.  This  is  the</div><div class='add'>+ * 1-argument 0-block version of `String#split`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str            Object in question to split.</div><div class='add'>+ * @param[in]  delim          Delimiter, in C string.</div><div class='add'>+ * @exception  rb_eTypeError  `str` has no implicit conversion to String.</div><div class='add'>+ * @exception  rb_eArgError   `delim` is a null pointer.</div><div class='add'>+ * @return     An array of  strings, which are substrings of  the passed `str`.</div><div class='add'>+ *             If `delim` is an empty C string (i.e. `""`), `str` is split into</div><div class='add'>+ *             each characters.  If `delim` is a C string whose sole content is</div><div class='add'>+ *             a whitespace (i.e.  `" "`), `str` is split  on whitespaces, with</div><div class='add'>+ *             leading  and   trailing  whitespace   and  runs   of  contiguous</div><div class='add'>+ *             whitespace  characters  ignored.    Otherwise,  `str`  is  split</div><div class='add'>+ *             according to `delim`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_split(VALUE str, const char *delim);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a ::rb_gvar_setter_t that refutes non-string assignments.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eTypeError  Passed something non-string.</div><div class='add'>+ */</div><div class='add'>+rb_gvar_setter_t rb_str_setter;</div><div class='add'>+</div><div class='add'>+/* symbol.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_to_symbol(),  except  it assumes  the  receiver  being  an</div><div class='add'>+ * instance of ::RString.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str               The name of the id.</div><div class='add'>+ * @exception  rb_eRuntimeError  Too many symbols.</div><div class='add'>+ * @return     A (possibly new) id whose value is the given `str`.</div><div class='add'>+ * @pre        `str` must not be any arbitrary object except ::RString.</div><div class='add'>+ * @note       These   days  Ruby   internally   has  two   kinds  of   symbols</div><div class='add'>+ *             (static/dynamic).   Symbols created  using  this function  would</div><div class='add'>+ *             become dynamic ones; i.e. would  be garbage collected.  It could</div><div class='add'>+ *             be safer for you to use it than alternatives, when applicable.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_intern(VALUE str);</div><div class='add'>+</div><div class='add'>+/* string.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is an rb_sym2str() + rb_str_dup() combo.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  sym  A symbol to query.</div><div class='add'>+ * @return     A string duplicating the symbol's backend storage.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function  causes SEGV  when the  passed value is  a static  symbol that</div><div class='add'>+ * doesn't exist.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_sym_to_s(VALUE sym);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Counts the  number of characters (not  bytes) that are stored  inside of the</div><div class='add'>+ * given string.  This  of course depends on its encoding.   Also this function</div><div class='add'>+ * generally runs  in O(n), because  for instance you  have to scan  the entire</div><div class='add'>+ * string to know how many characters are there in a UTF-8 string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  Target string to query.</div><div class='add'>+ * @return     Its number of characters.</div><div class='add'>+ */</div><div class='add'>+long rb_str_strlen(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_strlen(), except it returns the value in ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  Target string to query.</div><div class='add'>+ * @return     Its number of characters.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_length(VALUE);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * "Inverse" of rb_str_sublen().  This function  scans the contents to find the</div><div class='add'>+ * byte index that matches the character  index.  Generally speaking this is an</div><div class='add'>+ * `O(n)` operation.  Could be slow.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  The string to scan.</div><div class='add'>+ * @param[in]  pos  Offset, in characters.</div><div class='add'>+ * @return     Offset, in bytes.</div><div class='add'>+ */</div><div class='add'>+long rb_str_offset(VALUE str, long pos);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries the capacity of the given string.</div><div class='add'>+ *</div><div class='add'>+ * @see        ::RString::capa</div><div class='add'>+ * @param[in]  str  String in question.</div><div class='add'>+ * @return     Its capacity.</div><div class='add'>+ */</div><div class='add'>+size_t rb_str_capacity(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shortens `str` and adds three dots, an  ellipsis, if it is longer than `len`</div><div class='add'>+ * characters.  The length of the returned string in characters is less than or</div><div class='add'>+ * equal to `len`.  If the length of `str` is less than or equal `len`, returns</div><div class='add'>+ * `str` itself.   The encoding of returned  string is equal to  that of passed</div><div class='add'>+ * one.  The class of returned string is equal to that of passed one.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str             The string to shorten.</div><div class='add'>+ * @param[in]  len             The maximum string length.</div><div class='add'>+ * @exception  rb_eIndexError  `len` is negative.</div><div class='add'>+ * @retval     str             No need to add ellipsis.</div><div class='add'>+ * @retval     otherwise       A new, shortened string.</div><div class='add'>+ * @note       The length is counted in characters.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_ellipsize(VALUE str, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * "Cleanses" the string.   A string has its encoding and  its contents.  They,</div><div class='add'>+ * in practice,  do not  always fit.  There  are strings in  the wild  that are</div><div class='add'>+ * "broken"; include bit  patterns that are not allowed by  its encoding.  That</div><div class='add'>+ * can  happen  when  a  user  copy&amp;pasted something  bad,  network  input  got</div><div class='add'>+ * clobbered by a middleman, cosmic rays hit the physical memory, and many more</div><div class='add'>+ * occasions.  This function takes such strings, and fills the "broken" portion</div><div class='add'>+ * with the passed replacement bit pattern.</div><div class='add'>+ *</div><div class='add'>+ * This function also takes a ruby block.  That is a neat way to do things, but</div><div class='add'>+ * can be  annoying when the  caller function want to  use a block  for another</div><div class='add'>+ * purpose.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str                 Target string to scrub.</div><div class='add'>+ * @param[in]  repl                Replacement  string.  When  it is  a string,</div><div class='add'>+ *                                 this function  takes that as  a replacement.</div><div class='add'>+ *                                 When it is  ::RUBY_Qnil, this function tries</div><div class='add'>+ *                                 to  yield a  block  (if any)  and takes  its</div><div class='add'>+ *                                 evaluated value  as a replacement.   In case</div><div class='add'>+ *                                 of   ::RUBY_Qnil  without   a  block,   this</div><div class='add'>+ *                                 function takes  an encoding-specific default</div><div class='add'>+ *                                 character (`U+FFFD`, for instance) as a last</div><div class='add'>+ *                                 resort.</div><div class='add'>+ * @exception  rb_eTypeError       `repl` is neither string nor nil.</div><div class='add'>+ * @exception  rb_eArgError        `repl` itself is broken.</div><div class='add'>+ * @exception  rb_eEncCompatError  `repl` and `str` are incompatible.</div><div class='add'>+ * @retval     RUBY_Qnil           `str` is already clean.</div><div class='add'>+ * @retval     otherwise           A new, clean string.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_scrub(VALUE str, VALUE repl);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Searches for  the "successor"  of a string.   This function  is complicated!</div><div class='add'>+ * This is  the only function in  the entire ruby  API (either C or  Ruby) that</div><div class='add'>+ * generates a string out of thin air.  First, the successor to an empty string</div><div class='add'>+ * is a new empty string:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * ''.succ # =&gt; ""</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * Otherwise  the successor  is  calculated by  "incrementing" characters.  The</div><div class='add'>+ * first character to  be incremented is the rightmost alphanumeric:  or, if no</div><div class='add'>+ * alphanumerics, the rightmost character:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * 'THX1138'.succ # =&gt; "THX1139"</div><div class='add'>+ * '&lt;&lt;koala&gt;&gt;'.succ # =&gt; "&lt;&lt;koalb&gt;&gt;"</div><div class='add'>+ * '***'.succ # =&gt; '**+'</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * The  successor to  a digit  is another  digit, "carrying"  to the  next-left</div><div class='add'>+ * character for  a "rollover"  from 9  to 0, and  prepending another  digit if</div><div class='add'>+ * necessary:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * '00'.succ # =&gt; "01"</div><div class='add'>+ * '09'.succ # =&gt; "10"</div><div class='add'>+ * '99'.succ # =&gt; "100"</div><div class='add'>+ * '-9'.succ # =&gt; "-10"</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * The successor to  a letter is another  letter of the same  case, carrying to</div><div class='add'>+ * the next-left  character for  a rollover,  and prepending  another same-case</div><div class='add'>+ * letter if necessary:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * 'aa'.succ # =&gt; "ab"</div><div class='add'>+ * 'az'.succ # =&gt; "ba"</div><div class='add'>+ * 'zz'.succ # =&gt; "aaa"</div><div class='add'>+ * 'AA'.succ # =&gt; "AB"</div><div class='add'>+ * 'AZ'.succ # =&gt; "BA"</div><div class='add'>+ * 'ZZ'.succ # =&gt; "AAA"</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * The successor to  a non-alphanumeric character is the next  character in the</div><div class='add'>+ * underlying  character set's  collating sequence,  carrying to  the next-left</div><div class='add'>+ * character for a rollover, and prepending another character if necessary:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * s = "\u03A1"</div><div class='add'>+ * s.succ # =&gt; "\u03A3"  # There is no such thing like \u03A2.</div><div class='add'>+ * s = 255.chr * 3</div><div class='add'>+ * s # =&gt; "\xFF\xFF\xFF"</div><div class='add'>+ * s.succ # =&gt; "\x01\x00\x00\x00"</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * Carrying can occur between and among mixtures of alphanumeric characters:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * s = 'zz99zz99'</div><div class='add'>+ * s.succ # =&gt; "aaa00aa00"</div><div class='add'>+ * s = '99zz99zz'</div><div class='add'>+ * s.succ # =&gt; "100aa00aa"</div><div class='add'>+ * s = '1.9.9'</div><div class='add'>+ * s.succ # =&gt; "2.0.0"</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  orig  Predecessor string.</div><div class='add'>+ * @return     Successor string.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_str_succ(VALUE orig);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail.  Don't bother.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A C string.</div><div class='add'>+ * @return     `strlen`, casted to `long`.</div><div class='add'>+ */</div><div class='add'>+static inline long</div><div class='add'>+rbimpl_strlen(const char *str)</div><div class='add'>+{</div><div class='add'>+    return RBIMPL_CAST((long)strlen(str));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail.  Don't bother.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A C string literal.</div><div class='add'>+ * @return     Corresponding Ruby string.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rbimpl_str_new_cstr(const char *str)</div><div class='add'>+{</div><div class='add'>+    long len = rbimpl_strlen(str);</div><div class='add'>+    return rb_str_new_static(str, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail.  Don't bother.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A C string literal.</div><div class='add'>+ * @return     Corresponding Ruby string.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rbimpl_usascii_str_new_cstr(const char *str)</div><div class='add'>+{</div><div class='add'>+    long len = rbimpl_strlen(str);</div><div class='add'>+    return rb_usascii_str_new_static(str, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail.  Don't bother.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A C string literal.</div><div class='add'>+ * @return     Corresponding Ruby string.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rbimpl_utf8_str_new_cstr(const char *str)</div><div class='add'>+{</div><div class='add'>+    long len = rbimpl_strlen(str);</div><div class='add'>+    return rb_utf8_str_new_static(str, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail.  Don't bother.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A C string literal.</div><div class='add'>+ * @return     Corresponding Ruby string.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rbimpl_external_str_new_cstr(const char *str)</div><div class='add'>+{</div><div class='add'>+    long len = rbimpl_strlen(str);</div><div class='add'>+    return rb_external_str_new(str, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail.  Don't bother.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A C string literal.</div><div class='add'>+ * @return     Corresponding Ruby string.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rbimpl_locale_str_new_cstr(const char *str)</div><div class='add'>+{</div><div class='add'>+    long len = rbimpl_strlen(str);</div><div class='add'>+    return rb_locale_str_new(str, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail.  Don't bother.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A C string literal.</div><div class='add'>+ * @return     Corresponding Ruby string.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rbimpl_str_buf_new_cstr(const char *str)</div><div class='add'>+{</div><div class='add'>+    long len = rbimpl_strlen(str);</div><div class='add'>+    VALUE buf = rb_str_buf_new(len);</div><div class='add'>+    return rb_str_buf_cat(buf, str, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail.  Don't bother.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  buf  A string buffer.</div><div class='add'>+ * @param[in]   str  A C string literal.</div><div class='add'>+ * @return      `buf` itself.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rbimpl_str_cat_cstr(VALUE buf, const char *str)</div><div class='add'>+{</div><div class='add'>+    long len = rbimpl_strlen(str);</div><div class='add'>+    return rb_str_cat(buf, str, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail.  Don't bother.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  exc  An exception class.</div><div class='add'>+ * @param[in]  str  A C string literal.</div><div class='add'>+ * @return     An instance of `exc`.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rbimpl_exc_new_cstr(VALUE exc, const char *str)</div><div class='add'>+{</div><div class='add'>+    long len = rbimpl_strlen(str);</div><div class='add'>+    return rb_exc_new(exc, str, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates an instance of ::rb_cString.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str             A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len             Length  of `ptr`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate `len+1` bytes.</div><div class='add'>+ * @exception  rb_eArgError    `len` is negative.</div><div class='add'>+ * @return     An  instance   of  ::rb_cString,  of  `len`   bytes  length,  of</div><div class='add'>+ *             "binary" encoding, whose contents are verbatim copy of `str`.</div><div class='add'>+ * @pre        At  least  `len` bytes  of  continuous  memory region  shall  be</div><div class='add'>+ *             accessible via `str`.</div><div class='add'>+ */</div><div class='add'>+#define rb_str_new(str, len)                    \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str) &amp;&amp;                 \</div><div class='add'>+      RBIMPL_CONSTANT_P(len) ?                  \</div><div class='add'>+      rb_str_new_static      :                  \</div><div class='add'>+      rb_str_new) ((str), (len)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #rb_str_new, except it assumes  the passed pointer is a pointer</div><div class='add'>+ * to a C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An  instance  of  ::rb_cString,   of  "binary"  encoding,  whose</div><div class='add'>+ *             contents are verbatim copy of `str`.</div><div class='add'>+ * @pre        `str` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+#define rb_str_new_cstr(str)                    \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str) ?                  \</div><div class='add'>+      rbimpl_str_new_cstr    :                  \</div><div class='add'>+      rb_str_new_cstr) (str))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  #rb_str_new, except  it  generates  a  string of  "US  ASCII"</div><div class='add'>+ * encoding.  This  is different from  rb_external_str_new(), not only  for the</div><div class='add'>+ * output encoding, but also it doesn't convert the contents.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str             A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len             Length  of `str`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate `len+1` bytes.</div><div class='add'>+ * @exception  rb_eArgError    `len` is negative.</div><div class='add'>+ * @return     An  instance   of  ::rb_cString,  of  `len`   bytes  length,  of</div><div class='add'>+ *             "US ASCII" encoding, whose contents are verbatim copy of `str`.</div><div class='add'>+ */</div><div class='add'>+#define rb_usascii_str_new(str, len)            \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str)    &amp;&amp;              \</div><div class='add'>+      RBIMPL_CONSTANT_P(len)    ?               \</div><div class='add'>+      rb_usascii_str_new_static :               \</div><div class='add'>+      rb_usascii_str_new) ((str), (len)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #rb_str_new, except it generates a string of "UTF-8" encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str             A memory region of `len` bytes length.</div><div class='add'>+ * @param[in]  len             Length  of `str`,  in bytes,  not including  the</div><div class='add'>+ *                             terminating NUL character.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate `len+1` bytes.</div><div class='add'>+ * @exception  rb_eArgError    `len` is negative.</div><div class='add'>+ * @return     An  instance   of  ::rb_cString,  of  `len`   bytes  length,  of</div><div class='add'>+ *             "UTF-8" encoding, whose contents are verbatim copy of `str`.</div><div class='add'>+ */</div><div class='add'>+#define rb_utf8_str_new(str, len)               \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str) &amp;&amp;                 \</div><div class='add'>+      RBIMPL_CONSTANT_P(len) ?                  \</div><div class='add'>+      rb_utf8_str_new_static :                  \</div><div class='add'>+      rb_utf8_str_new) ((str), (len)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  #rb_str_new_cstr, except it  generates a string of  "US ASCII"</div><div class='add'>+ * encoding.    It   can   also   be   seen   as   a   routine   Identical   to</div><div class='add'>+ * #rb_usascii_str_new, except it assumes the passed  pointer is a pointer to a</div><div class='add'>+ * C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An  instance  of ::rb_cString,  of  "US  ASCII" encoding,  whose</div><div class='add'>+ *             contents are verbatim copy of `str`.</div><div class='add'>+ * @pre        `str` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+#define rb_usascii_str_new_cstr(str)            \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str)      ?             \</div><div class='add'>+      rbimpl_usascii_str_new_cstr :             \</div><div class='add'>+      rb_usascii_str_new_cstr) (str))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to #rb_str_new_cstr,  except  it generates  a  string of  "UTF-8"</div><div class='add'>+ * encoding.  It can  also be seen as a routine  Identical to #rb_utf8_str_new,</div><div class='add'>+ * except it assumes the passed pointer is a pointer to a C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An instance of ::rb_cString, of "UTF-8" encoding, whose contents</div><div class='add'>+ *             are verbatim copy of `str`.</div><div class='add'>+ * @pre        `str` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+#define rb_utf8_str_new_cstr(str)               \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str)   ?                \</div><div class='add'>+      rbimpl_utf8_str_new_cstr :                \</div><div class='add'>+      rb_utf8_str_new_cstr) (str))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to #rb_str_new_cstr,  except it  generates a  string of  "default</div><div class='add'>+ * external" encoding.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An instance  of ::rb_cString.  In case  encoding conversion from</div><div class='add'>+ *             "default internal"  to "default external" is  fully defined over</div><div class='add'>+ *             the  given  contents, then  the  return  value  is a  string  of</div><div class='add'>+ *             "default external"  encoding, whose  contents are  the converted</div><div class='add'>+ *             ones.  Otherwise the string is a junk.</div><div class='add'>+ * @warning    It doesn't raise on a conversion failure and silently ends up in</div><div class='add'>+ *             a  corrupted  output.  You  can  know  the failure  by  querying</div><div class='add'>+ *             `valid_encoding?` of the result object.</div><div class='add'>+ * @pre        `str` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+#define rb_external_str_new_cstr(str)           \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str)       ?            \</div><div class='add'>+      rbimpl_external_str_new_cstr :            \</div><div class='add'>+      rb_external_str_new_cstr) (str))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to #rb_external_str_new_cstr,  except  it generates  a string  of</div><div class='add'>+ * "locale" encoding instead of "default external".</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An instance  of ::rb_cString.  In case  encoding conversion from</div><div class='add'>+ *             "default internal" to  "locale" is fully defined  over the given</div><div class='add'>+ *             contents,  then  the  return  value  is  a  string  of  "locale"</div><div class='add'>+ *             encoding, whose contents are  the converted ones.  Otherwise the</div><div class='add'>+ *             string is a junk.</div><div class='add'>+ * @warning    It doesn't raise on a conversion failure and silently ends up in</div><div class='add'>+ *             a  corrupted  output.  You  can  know  the failure  by  querying</div><div class='add'>+ *             `valid_encoding?` of the result object.</div><div class='add'>+ * @pre        `str` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+#define rb_locale_str_new_cstr(str)             \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str)     ?              \</div><div class='add'>+      rbimpl_locale_str_new_cstr :              \</div><div class='add'>+      rb_locale_str_new_cstr) (str))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #rb_str_new_cstr, except done differently.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str             A C string.</div><div class='add'>+ * @exception  rb_eNoMemError  Failed to allocate memory.</div><div class='add'>+ * @return     An  instance  of  ::rb_cString,   of  "binary"  encoding,  whose</div><div class='add'>+ *             contents are verbatim copy of `str`.</div><div class='add'>+ * @pre        `str` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+#define rb_str_buf_new_cstr(str)                \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str)  ?                 \</div><div class='add'>+      rbimpl_str_buf_new_cstr :                 \</div><div class='add'>+      rb_str_buf_new_cstr) (str))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_cat(), except it assumes the passed pointer is a pointer</div><div class='add'>+ * to a C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  buf                 Destination object.</div><div class='add'>+ * @param[in]   str                 Contents to append.</div><div class='add'>+ * @exception   rb_eArgError        Result string too big.</div><div class='add'>+ * @return      The passed `buf`.</div><div class='add'>+ * @pre         `buf` must not be any arbitrary objects except ::RString.</div><div class='add'>+ * @pre         `str` must not be a null pointer.</div><div class='add'>+ * @post        `buf` has the contents of `str` appended.</div><div class='add'>+ */</div><div class='add'>+#define rb_str_cat_cstr(buf, str)               \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str) ?                  \</div><div class='add'>+      rbimpl_str_cat_cstr    :                  \</div><div class='add'>+      rb_str_cat_cstr) ((buf), (str)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_exc_new(), except it assumes the passed pointer is a pointer</div><div class='add'>+ * to a C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  exc  A subclass of ::rb_eException.</div><div class='add'>+ * @param[in]   str  Message to raise.</div><div class='add'>+ * @return      An instance of `exc` whose message is `str`.</div><div class='add'>+ * @pre         `str` must not be a null pointer.</div><div class='add'>+ */</div><div class='add'>+#define rb_exc_new_cstr(exc, str)               \</div><div class='add'>+    ((RBIMPL_CONSTANT_P(str) ?                  \</div><div class='add'>+      rbimpl_exc_new_cstr    :                  \</div><div class='add'>+      rb_exc_new_cstr) ((exc), (str)))</div><div class='add'>+</div><div class='add'>+#define rb_str_new2 rb_str_new_cstr                  /**&lt; @old{rb_str_new_cstr} */</div><div class='add'>+#define rb_str_new3 rb_str_new_shared                /**&lt; @old{rb_str_new_shared} */</div><div class='add'>+#define rb_str_new4 rb_str_new_frozen                /**&lt; @old{rb_str_new_frozen} */</div><div class='add'>+#define rb_str_new5 rb_str_new_with_class            /**&lt; @old{rb_str_new_with_class} */</div><div class='add'>+#define rb_str_buf_new2 rb_str_buf_new_cstr          /**&lt; @old{rb_str_buf_new_cstr} */</div><div class='add'>+#define rb_usascii_str_new2 rb_usascii_str_new_cstr  /**&lt; @old{rb_usascii_str_new_cstr} */</div><div class='add'>+#define rb_str_buf_cat rb_str_cat                    /**&lt; @alias{rb_str_cat} */</div><div class='add'>+#define rb_str_buf_cat2 rb_str_cat_cstr              /**&lt; @old{rb_usascii_str_new_cstr} */</div><div class='add'>+#define rb_str_cat2 rb_str_cat_cstr                  /**&lt; @old{rb_str_cat_cstr} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Length of a string literal.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A C String literal.</div><div class='add'>+ * @return     An integer  constant expression that represents  `str`'s length,</div><div class='add'>+ *             in bytes, not including the terminating NUL character.</div><div class='add'>+ */</div><div class='add'>+#define rb_strlen_lit(str) (sizeof(str "") - 1)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_str_new_static(), except it cannot take string variables.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  A C string literal.</div><div class='add'>+ * @pre        `str` must not be a variable.</div><div class='add'>+ * @return     An instance of ::rb_cString, of "binary" encoding, whose backend</div><div class='add'>+ *             storage is the passed C string literal.</div><div class='add'>+ * @warning    It is  a very  bad idea to  write to a  C string  literal (often</div><div class='add'>+ *             immediate  SEGV shall  occur).  Consider  return values  of this</div><div class='add'>+ *             function be read-only.</div><div class='add'>+ */</div><div class='add'>+#define rb_str_new_lit(str) rb_str_new_static((str), rb_strlen_lit(str))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_usascii_str_new_static(),  except it  cannot  take  string</div><div class='add'>+ * variables.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str           A C string literal.</div><div class='add'>+ * @pre        `str` must not be a variable.</div><div class='add'>+ * @return     An  instance  of ::rb_cString,  of  "US  ASCII" encoding,  whose</div><div class='add'>+ *             backend storage is the passed C string literal.</div><div class='add'>+ * @warning    It is  a very  bad idea to  write to a  C string  literal (often</div><div class='add'>+ *             immediate  SEGV shall  occur).  Consider  return values  of this</div><div class='add'>+ *             function be read-only.</div><div class='add'>+ */</div><div class='add'>+#define rb_usascii_str_new_lit(str) rb_usascii_str_new_static((str), rb_strlen_lit(str))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to   rb_utf8_str_new_static(),  except  it  cannot   take  string</div><div class='add'>+ * variables.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str           A C string literal.</div><div class='add'>+ * @pre        `str` must not be a variable.</div><div class='add'>+ * @return     An instance of ::rb_cString,  of "UTF-8" encoding, whose backend</div><div class='add'>+ *             storage is the passed C string literal.</div><div class='add'>+ * @warning    It is  a very  bad idea to  write to a  C string  literal (often</div><div class='add'>+ *             immediate  SEGV shall  occur).  Consider  return values  of this</div><div class='add'>+ *             function be read-only.</div><div class='add'>+ */</div><div class='add'>+#define rb_utf8_str_new_lit(str) rb_utf8_str_new_static((str), rb_strlen_lit(str))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to   rb_enc_str_new_static(),  except   it  cannot   take  string</div><div class='add'>+ * variables.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str           A C string literal.</div><div class='add'>+ * @param[in]  enc           A pointer to an encoding.</div><div class='add'>+ * @pre        `str` must not be a variable.</div><div class='add'>+ * @return     An  instance  of ::rb_cString,  of  the  passed encoding,  whose</div><div class='add'>+ *             backend storage is the passed C string literal.</div><div class='add'>+ * @warning    It is  a very  bad idea to  write to a  C string  literal (often</div><div class='add'>+ *             immediate  SEGV shall  occur).  Consider  return values  of this</div><div class='add'>+ *             function be read-only.</div><div class='add'>+ */</div><div class='add'>+#define rb_enc_str_new_lit(str, enc) rb_enc_str_new_static((str), rb_strlen_lit(str), (enc))</div><div class='add'>+</div><div class='add'>+#define rb_str_new_literal(str) rb_str_new_lit(str)                    /**&lt; @alias{rb_str_new_lit} */</div><div class='add'>+#define rb_usascii_str_new_literal(str) rb_usascii_str_new_lit(str)    /**&lt; @alias{rb_usascii_str_new_lit} */</div><div class='add'>+#define rb_utf8_str_new_literal(str) rb_utf8_str_new_lit(str)          /**&lt; @alias{rb_utf8_str_new_lit} */</div><div class='add'>+#define rb_enc_str_new_literal(str, enc) rb_enc_str_new_lit(str, enc)  /**&lt; @alias{rb_enc_str_new_lit} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_STRING_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/struct.h b/include/ruby/internal/intern/struct.h<br/>new file mode 100644<br/>index 0000000000..312cf444e2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/struct.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/struct.h</a></div><div class='hunk'>@@ -0,0 +1,203 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_STRUCT_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_STRUCT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cStruct.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/intern/vm.h" /* rb_alloc_func_t */</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* struct.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates an instance of the given struct.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass  The class of the instance to allocate.</div><div class='add'>+ * @param[in]  ...    The fields.</div><div class='add'>+ * @return     Allocated instance of `klass`.</div><div class='add'>+ * @pre        `klass` must be a subclass of ::rb_cStruct.</div><div class='add'>+ * @note       Number of variadic arguments must much that of the passed klass'</div><div class='add'>+ *             fields.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_new(VALUE klass, ...);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Defines a struct class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name           Name of the class.</div><div class='add'>+ * @param[in]  ...            Arbitrary number of  `const char*`, terminated by</div><div class='add'>+ *                            zero.  Each of which are the name of fields.</div><div class='add'>+ * @exception  rb_eNameError  `name` is not a constant name.</div><div class='add'>+ * @exception  rb_eTypeError  `name` is already taken.</div><div class='add'>+ * @exception  rb_eArgError    Duplicated field name.</div><div class='add'>+ * @return     The defined class.</div><div class='add'>+ * @post       Global toplevel constant `name` is defined.</div><div class='add'>+ * @note       `name` is allowed  to be a null pointer.   This function creates</div><div class='add'>+ *             an anonymous struct class then.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Not  seriously  checked but  it  seems  this  function  does not  share  its</div><div class='add'>+ * implementation with how `Struct.new` is implemented...?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_define(const char *name, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_struct_define(),  except  it defines  the  class under  the</div><div class='add'>+ * specified namespace instead of global toplevel.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  space          Namespace that the defining class shall reside.</div><div class='add'>+ * @param[in]   name           Name of the class.</div><div class='add'>+ * @param[in]   ...            Arbitrary number of `const char*`, terminated by</div><div class='add'>+ *                             zero.  Each of which are the name of fields.</div><div class='add'>+ * @exception   rb_eNameError  `name` is not a constant name.</div><div class='add'>+ * @exception   rb_eTypeError  `name` is already taken.</div><div class='add'>+ * @exception   rb_eArgError    Duplicated field name.</div><div class='add'>+ * @return      The defined class.</div><div class='add'>+ * @post        `name` is a constant under `space`.</div><div class='add'>+ * @note        In contrast to rb_struct_define(), it doesn't make any sense to</div><div class='add'>+ *              pass  a null pointer to this function.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_define_under(VALUE space, const char *name, ...);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_struct_new(), except it  takes the  field values as  a Ruby</div><div class='add'>+ * array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass   The class of the instance to allocate.</div><div class='add'>+ * @param[in]  values  Field values.</div><div class='add'>+ * @return     Allocated instance of `klass`.</div><div class='add'>+ * @pre        `klass` must be a subclass of ::rb_cStruct.</div><div class='add'>+ * @pre        `values` must be an instance of struct ::RArray.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_alloc(VALUE klass, VALUE values);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Mass-assigns a struct's fields.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  self    An instance of a struct class to squash.</div><div class='add'>+ * @param[in]   values  New values.</div><div class='add'>+ * @return      ::RUBY_Qnil.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_initialize(VALUE self, VALUE values);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_struct_aref(), except it takes ::ID instead of ::VALUE.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  self           An instance of a struct class.</div><div class='add'>+ * @param[in]  key            Key to query.</div><div class='add'>+ * @exception  rb_eTypeError  `self` is not a struct.</div><div class='add'>+ * @exception  rb_eNameError  No such field.</div><div class='add'>+ * @return     The value stored at `key` in `self`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_getmember(VALUE self, ID key);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the list of the names of the fields of the given struct class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass  A subclass of ::rb_cStruct.</div><div class='add'>+ * @return     The list of the names of the fields of `klass`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_s_members(VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the list of the names of the fields of the class of the given struct</div><div class='add'>+ * object.  This is  almost the same as calling  rb_struct_s_members() over the</div><div class='add'>+ * class of the receiver.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * "Almost"?  What exactly is the difference?</div><div class='add'>+ *</div><div class='add'>+ * @endinternal</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  self  An instance of a subclass of ::rb_cStruct.</div><div class='add'>+ * @return     The list of the names of the fields.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_members(VALUE self);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates an  instance of the  given class.   This consequential name  is of</div><div class='add'>+ * course because rb_struct_alloc() not only  allocates but also initialises an</div><div class='add'>+ * instance.  The API design is broken.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass  A subclass of ::rb_cStruct.</div><div class='add'>+ * @return     An allocated instance of `klass`, not initialised.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_alloc_noinit(VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_struct_define(), except it does not define accessor methods.</div><div class='add'>+ * You  have to  define them  yourself.   Forget about  the allocator  function</div><div class='add'>+ * parameter; it is  for internal use only.  Extension libraries  are unable to</div><div class='add'>+ * properly allocate a ruby struct, because `RStruct` is opaque.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Several flags must be set up properly for ::RUBY_T_STRUCT objects, which are</div><div class='add'>+ * also missing for extension libraries.</div><div class='add'>+ *</div><div class='add'>+ * @endinternal</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name           Name of the class.</div><div class='add'>+ * @param[in]  super          Superclass of the defining class.</div><div class='add'>+ * @param[in]  func           Must be 0 for extension libraries.</div><div class='add'>+ * @param[in]  ...            Arbitrary number of  `const char*`, terminated by</div><div class='add'>+ *                            zero.  Each of which are the name of fields.</div><div class='add'>+ * @exception  rb_eNameError  `name` is not a constant name.</div><div class='add'>+ * @exception  rb_eTypeError  `name` is already taken.</div><div class='add'>+ * @exception  rb_eArgError    Duplicated field name.</div><div class='add'>+ * @return     The defined class.</div><div class='add'>+ * @post       Global toplevel constant `name` is defined.</div><div class='add'>+ * @note       `name` is allowed  to be a null pointer.   This function creates</div><div class='add'>+ *             an anonymous struct class then.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_define_without_accessor(const char *name, VALUE super, rb_alloc_func_t func, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_struct_define_without_accessor(),  except it  defines  the</div><div class='add'>+ * class under the specified namespace instead of global toplevel.  It can also</div><div class='add'>+ * be seen as  a routine identical to rb_struct_define_under(),  except it does</div><div class='add'>+ * not define accessor methods.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  outer          Namespace that the defining class shall reside.</div><div class='add'>+ * @param[in]   class_name     Name of the class.</div><div class='add'>+ * @param[in]   super          Superclass of the defining class.</div><div class='add'>+ * @param[in]   alloc          Must be 0 for extension libraries.</div><div class='add'>+ * @param[in]   ...            Arbitrary number of `const char*`, terminated by</div><div class='add'>+ *                             zero.  Each of which are the name of fields.</div><div class='add'>+ * @exception   rb_eNameError  `class_name` is not a constant name.</div><div class='add'>+ * @exception   rb_eTypeError  `class_name` is already taken.</div><div class='add'>+ * @exception   rb_eArgError    Duplicated field name.</div><div class='add'>+ * @return      The defined class.</div><div class='add'>+ * @post        `class_name` is a constant under `outer`.</div><div class='add'>+ * @note        In contrast to  rb_struct_define_without_accessor(), it doesn't</div><div class='add'>+ *              make any sense to pass a null name.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_struct_define_without_accessor_under(VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_STRUCT_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/thread.h b/include/ruby/internal/intern/thread.h<br/>new file mode 100644<br/>index 0000000000..716375acd7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/thread.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/thread.h</a></div><div class='hunk'>@@ -0,0 +1,492 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_THREAD_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_THREAD_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cThread.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+struct timeval;</div><div class='add'>+</div><div class='add'>+/* thread.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Tries to switch  to another thread.  This function blocks  until the current</div><div class='add'>+ * thread re-acquires the GVL.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eInterrupt  Operation interrupted.</div><div class='add'>+ */</div><div class='add'>+void rb_thread_schedule(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Blocks the  current thread until  the given file  descriptor is ready  to be</div><div class='add'>+ * read.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fd                    A file descriptor.</div><div class='add'>+ * @exception  rb_eIOError           Closed stream.</div><div class='add'>+ * @exception  rb_eSystemCallError   Situations like EBADF.</div><div class='add'>+ */</div><div class='add'>+int rb_thread_wait_fd(int fd);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_thread_wait_fd(), except it  blocks the current thread until</div><div class='add'>+ * the given file descriptor is ready to be written.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fd                    A file descriptor.</div><div class='add'>+ * @exception  rb_eIOError           Closed stream.</div><div class='add'>+ * @exception  rb_eSystemCallError   Situations like EBADF.</div><div class='add'>+ */</div><div class='add'>+int rb_thread_fd_writable(int fd);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Notifies a closing of a file  descriptor to other threads.  Multiple threads</div><div class='add'>+ * can wait for the given file descriptor  at once.  If such file descriptor is</div><div class='add'>+ * closed, threads need to start propagating their exceptions.  This is the API</div><div class='add'>+ * to kick that process.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fd  A file descriptor.</div><div class='add'>+ * @note       This function blocks  until all the threads waiting  for such fd</div><div class='add'>+ *             have woken up.</div><div class='add'>+ */</div><div class='add'>+void rb_thread_fd_close(int fd);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks if  the thread this  function is running is  the only thread  that is</div><div class='add'>+ * currently alive.</div><div class='add'>+ *</div><div class='add'>+ * @retval  1  Yes it is.</div><div class='add'>+ * @retval  0  No it isn't.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  There are Ractors these days.</div><div class='add'>+ */</div><div class='add'>+int rb_thread_alone(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Blocks for the given period of time.</div><div class='add'>+ *</div><div class='add'>+ * @warning    This function can be interrupted by signals.</div><div class='add'>+ * @param[in]  sec            Duration in seconds.</div><div class='add'>+ * @exception  rb_eInterrupt  Interrupted.</div><div class='add'>+ */</div><div class='add'>+void rb_thread_sleep(int sec);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Blocks indefinitely.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eInterrupt  Interrupted.</div><div class='add'>+ */</div><div class='add'>+void rb_thread_sleep_forever(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_thread_sleep_forever(),  except the  thread  calling  this</div><div class='add'>+ * function is considered "dead" when our deadlock checker is triggered.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eInterrupt  Interrupted.</div><div class='add'>+ */</div><div class='add'>+void rb_thread_sleep_deadly(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Stops the current thread.  This is not the end of the thread's lifecycle.  A</div><div class='add'>+ * stopped thread can later be woken up.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eThreadError  Stopping this thread would deadlock.</div><div class='add'>+ * @retval     ::RUBY_Qnil      Always.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The return value makes no sense at all.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_thread_stop(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Marks a given thread as eligible for scheduling.</div><div class='add'>+ *</div><div class='add'>+ * @note  It may still remain blocked on I/O.</div><div class='add'>+ * @note  This does not invoke the scheduler itself.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  thread           Thread in question to wake up.</div><div class='add'>+ * @exception   rb_eThreadError  Stop flogging a dead horse.</div><div class='add'>+ * @return      The passed thread.</div><div class='add'>+ * @post        The passed thread is made runnable.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_thread_wakeup(VALUE thread);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_thread_wakeup(),  except  it doesn't  raise  on an  already</div><div class='add'>+ * killed thread.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  thread     A thread to wake up.</div><div class='add'>+ * @retval      RUBY_Qnil  `thread` is already killed.</div><div class='add'>+ * @retval      otherwise  `thread` is alive.</div><div class='add'>+ * @post        The passed thread is made runnable, unless killed.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_thread_wakeup_alive(VALUE thread);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a rb_thread_wakeup() + rb_thread_schedule() combo.</div><div class='add'>+ *</div><div class='add'>+ * @note        There is no  guarantee that this function yields  to the passed</div><div class='add'>+ *              thread.  It may still remain blocked on I/O.</div><div class='add'>+ * @param[out]  thread           Thread in question to wake up.</div><div class='add'>+ * @exception   rb_eThreadError  Stop flogging a dead horse.</div><div class='add'>+ * @return      The passed thread.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_thread_run(VALUE thread);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Terminates the given thread.  Unlike a stopped thread, a killed thread could</div><div class='add'>+ * never be revived.   This function does return, when passed  e.g.  an already</div><div class='add'>+ * killed thread.   But if  the passed  thread is  the only  one, or  a special</div><div class='add'>+ * thread called "main", then it also terminates the entire process.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  thread          The thread to terminate.</div><div class='add'>+ * @exception   rb_eFatal       The passed thread is the running thread.</div><div class='add'>+ * @exception   rb_eSystemExit  The passed thread is the last thread.</div><div class='add'>+ * @return      The passed thread.</div><div class='add'>+ * @post        Either the passed thread, or the process entirely, is killed.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It seems killing the main thread also kills the entire process even if there</div><div class='add'>+ * are multiple running ractors.  No idea why.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_thread_kill(VALUE thread);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Creates a Ruby thread that is backended by a C function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      f                    The function to run on a thread.</div><div class='add'>+ * @param[in,out]  g                    Passed through to `f`.</div><div class='add'>+ * @exception      rb_eThreadError      Could not create a ruby thread.</div><div class='add'>+ * @exception      rb_eSystemCallError  Situations like `EPERM`.</div><div class='add'>+ * @return         Allocated instance of ::rb_cThread.</div><div class='add'>+ * @note           This doesn't wait for anything.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_thread_create(VALUE (*f)(void *g), void *g);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_thread_sleep(), except it takes struct `timeval` instead.</div><div class='add'>+ *</div><div class='add'>+ * @warning    This function can be interrupted by signals.</div><div class='add'>+ * @param[in]  time           Duration.</div><div class='add'>+ * @exception  rb_eInterrupt  Interrupted.</div><div class='add'>+ */</div><div class='add'>+void rb_thread_wait_for(struct timeval time);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Obtains the "current" thread.</div><div class='add'>+ *</div><div class='add'>+ * @return  The current thread  of the current ractor of  the current execution</div><div class='add'>+ *          context.</div><div class='add'>+ * @pre     This function must be called from a thread controlled by ruby.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_thread_current(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Obtains the "main" thread.  There are threads called main.  Historically the</div><div class='add'>+ * (only) main thread was the one which  runs when the process boots.  Now that</div><div class='add'>+ * we have Ractor, there are more than one main threads.</div><div class='add'>+ *</div><div class='add'>+ * @return  The  main thread  of the  current ractor  of the  current execution</div><div class='add'>+ *          context.</div><div class='add'>+ * @pre     This function must be called from a thread controlled by ruby.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_thread_main(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This  badly named  function reads  from a  Fiber local  storage.  When  this</div><div class='add'>+ * function was  born there  was no  such thing  like a  Fiber.  The  world was</div><div class='add'>+ * innocent.  But now...  This is a Fiber local storage.  Sorry.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  thread     Thread that the target Fiber is running.</div><div class='add'>+ * @param[in]  key        The name of the Fiber local storage to read.</div><div class='add'>+ * @retval     RUBY_Qnil  No such storage.</div><div class='add'>+ * @retval     otherwise  The value stored at `key`.</div><div class='add'>+ * @note       There in fact are "true"  thread local storage, but Ruby doesn't</div><div class='add'>+ *             provide any interface of them to you, C programmers.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_thread_local_aref(VALUE thread, ID key);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This  badly named  function  writes to  a Fiber  local  storage.  When  this</div><div class='add'>+ * function was  born there  was no  such thing  like a  Fiber.  The  world was</div><div class='add'>+ * innocent.  But now...  This is a Fiber local storage.  Sorry.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  thread           Thread that the target Fiber is running.</div><div class='add'>+ * @param[in]  key              The name of the Fiber local storage to write.</div><div class='add'>+ * @param[in]  val              The new value of the storage.</div><div class='add'>+ * @exception  rb_eFrozenError  `thread` is frozen.</div><div class='add'>+ * @return     The passed `val` as-is.</div><div class='add'>+ * @post       Fiber local storage `key` has value of `val`.</div><div class='add'>+ * @note       There in fact are "true"  thread local storage, but Ruby doesn't</div><div class='add'>+ *             provide any interface of them to you, C programmers.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_thread_local_aset(VALUE thread, ID key, VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * A `pthread_atfork(3posix)`-like  API.  Ruby  expects its child  processes to</div><div class='add'>+ * call this function at the very beginning of their processes.  If you plan to</div><div class='add'>+ * fork a process don't forget to call it.</div><div class='add'>+ */</div><div class='add'>+void rb_thread_atfork(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * :FIXME: situation  of this function  is unclear.   It seems nobody  uses it.</div><div class='add'>+ * Maybe a good idea to KonMari.</div><div class='add'>+ */</div><div class='add'>+void rb_thread_atfork_before_exec(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * "Recursion" API entry  point.  This basically calls the  given function with</div><div class='add'>+ * the given arguments, but additionally with  recursion flag.  The flag is set</div><div class='add'>+ * to 1  if the  execution have  already experienced  the passed  `g` parameter</div><div class='add'>+ * before.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      f  The function that possibly recurs.</div><div class='add'>+ * @param[in,out]  g  Passed as-is to `f`.</div><div class='add'>+ * @param[in,out]  h  Passed as-is to `f`.</div><div class='add'>+ * @return         The return value of f.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_exec_recursive(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_exec_recursive(), except it  checks for the recursion on the</div><div class='add'>+ * ordered pair of `{ g, p }` instead of just `g`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      f  The function that possibly recurs.</div><div class='add'>+ * @param[in,out]  g  Passed as-is to `f`.</div><div class='add'>+ * @param[in]      p  Paired object for recursion detection.</div><div class='add'>+ * @param[in,out]  h  Passed as-is to `f`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_exec_recursive_paired(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE p, VALUE h);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_exec_recursive(),  except   it  calls  `f`  for  outermost</div><div class='add'>+ * recursion only.  Inner recursions yield calls to rb_throw_obj().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      f  The function that possibly recurs.</div><div class='add'>+ * @param[in,out]  g  Passed as-is to `f`.</div><div class='add'>+ * @param[in,out]  h  Passed as-is to `f`.</div><div class='add'>+ * @return         The return value of f.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It seems  nobody uses the "it  calls rb_throw_obj()" part of  this function.</div><div class='add'>+ * @shyouhei doesn't understand the needs.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_exec_recursive_outer(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_exec_recursive_outer(), except it checks  for the recursion</div><div class='add'>+ * on the ordered pair of `{ g, p }`  instead of just `g`.  It can also be seen</div><div class='add'>+ * as a  routine identical to  rb_exec_recursive_paired(), except it  calls `f`</div><div class='add'>+ * for   outermost   recursion  only.    Inner   recursions   yield  calls   to</div><div class='add'>+ * rb_throw_obj().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      f  The function that possibly recurs.</div><div class='add'>+ * @param[in,out]  g  Passed as-is to `f`.</div><div class='add'>+ * @param[in]      p  Paired object for recursion detection.</div><div class='add'>+ * @param[in,out]  h  Passed as-is to `f`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It seems  nobody uses the "it  calls rb_throw_obj()" part of  this function.</div><div class='add'>+ * @shyouhei doesn't understand the needs.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_exec_recursive_paired_outer(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE p, VALUE h);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is  the type of UBFs.   An UBF is  a function that unblocks  a blocking</div><div class='add'>+ * region.  For instance when a thread is blocking due to `pselect(3posix)`, it</div><div class='add'>+ * is highly expected that `pthread_kill(3posix)` can interrupt the system call</div><div class='add'>+ * and  the  thread  could  revive.   Or  when a  thread  is  blocking  due  to</div><div class='add'>+ * `waitpid(3posix)`, it  is highly  expected that  killing the  waited process</div><div class='add'>+ * should suffice.  An UBF is a function that does such things.  Designing your</div><div class='add'>+ * own UBF  needs deep understanding  of why  your blocking region  blocks, how</div><div class='add'>+ * threads work in ruby, and a matter of luck.  It often is the case you simply</div><div class='add'>+ * cannot cancel something that had already begun.</div><div class='add'>+ *</div><div class='add'>+ * @see rb_thread_call_without_gvl()</div><div class='add'>+ */</div><div class='add'>+typedef void rb_unblock_function_t(void *);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail.  Must be a mistake to be here.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Why is  this function type different  from what rb_thread_call_without_gvl()</div><div class='add'>+ * takes?</div><div class='add'>+ */</div><div class='add'>+typedef VALUE rb_blocking_function_t(void *);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks for  interrupts.  In ruby,  signals are  masked by default.   You can</div><div class='add'>+ * call this function at  will to check if there are  pending signals.  In case</div><div class='add'>+ * there are, they would be handled in this function.</div><div class='add'>+ *</div><div class='add'>+ * If your  extension library has a  function that takes a  long time, consider</div><div class='add'>+ * calling it periodically.</div><div class='add'>+ *</div><div class='add'>+ * @note  It might switch to another thread.</div><div class='add'>+ */</div><div class='add'>+void rb_thread_check_ints(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks if the  thread's execution was recently interrupted.   If called from</div><div class='add'>+ * that thread, this function can be used to detect spurious wake-ups.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  thval      Thread in question.</div><div class='add'>+ * @retval     0          The thread was not interrupted.</div><div class='add'>+ * @retval     otherwise  The thread was interrupted recently.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is not a lie.  But  actually the return value is an opaque</div><div class='add'>+ * trap vector.  If you know which bit means which, you can know what happened.</div><div class='add'>+ */</div><div class='add'>+int rb_thread_interrupted(VALUE thval);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * A special  UBF for blocking IO  operations.  You need deep  understanding of</div><div class='add'>+ * what this  actually do before using.   Basically you should not  use it from</div><div class='add'>+ * extension libraries.  It is too easy to mess up.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_UBF_IO RBIMPL_CAST((rb_unblock_function_t *)-1)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * A special UBF for blocking  process operations.  You need deep understanding</div><div class='add'>+ * of what this actually do before using.  Basically you should not use it from</div><div class='add'>+ * extension libraries.  It is too easy to mess up.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_UBF_PROCESS RBIMPL_CAST((rb_unblock_function_t *)-1)</div><div class='add'>+</div><div class='add'>+/* thread_sync.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a mutex.</div><div class='add'>+ *</div><div class='add'>+ * @return An allocated instance of rb_cMutex.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mutex_new(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if there are any threads that holds the lock.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mutex  The mutex in question.</div><div class='add'>+ * @retval     RUBY_Qtrue  The mutex is locked by someone.</div><div class='add'>+ * @retval     RUBY_Qfalse The mutex is not locked by anyone.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mutex_locked_p(VALUE mutex);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Attempts to lock the mutex, without  waiting for other threads to unlock it.</div><div class='add'>+ * Failure in locking the mutex can be detected by the return value.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  mutex        The mutex to lock.</div><div class='add'>+ * @retval      RUBY_Qtrue   Successfully locked by the current thread.</div><div class='add'>+ * @retval      RUBY_Qfalse  Otherwise.</div><div class='add'>+ * @note        This  function also  returns  ::RUBY_Qfalse when  the mutex  is</div><div class='add'>+ *              already owned by the calling thread itself.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mutex_trylock(VALUE mutex);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Attempts to lock the mutex.  It waits until the mutex gets available.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  mutex            The mutex to lock.</div><div class='add'>+ * @exception   rb_eThreadError  Recursive deadlock situation.</div><div class='add'>+ * @return      The passed mutex.</div><div class='add'>+ * @post        The mutex is owned by the current thread.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mutex_lock(VALUE mutex);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Releases the mutex.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  mutex            The mutex to unlock.</div><div class='add'>+ * @exception   rb_eThreadError  The mutex is not owned by the current thread.</div><div class='add'>+ * @return      The passed mutex.</div><div class='add'>+ * @post        Upon successful return  the passed mutex is no  longer owned by</div><div class='add'>+ *              the current thread.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mutex_unlock(VALUE mutex);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Releases  the lock  held in  the mutex  and waits  for the  period of  time;</div><div class='add'>+ * reacquires the lock on wakeup.</div><div class='add'>+ *</div><div class='add'>+ * @pre         The lock has to be owned by the current thread beforehand.</div><div class='add'>+ * @param[out]  self             The target mutex.</div><div class='add'>+ * @param[in]   timeout          Duration, in seconds, in ::rb_cNumeric.</div><div class='add'>+ * @exception   rb_eArgError     `timeout` is negative.</div><div class='add'>+ * @exception   rb_eRangeError   `timeout` is out of range of `time_t`.</div><div class='add'>+ * @exception   rb_eThreadError  The mutex is not owned by the current thread.</div><div class='add'>+ * @return      Number of seconds it actually slept.</div><div class='add'>+ * @warning     It is a  failure not to check the return  value.  This function</div><div class='add'>+ *              can return spuriously for various reasons.  Maybe other threads</div><div class='add'>+ *              can  rb_thread_wakeup().   Maybe  an  end user  can  press  the</div><div class='add'>+ *              Control and C  key from the interactive console.   On the other</div><div class='add'>+ *              hand it  can also  take longer than  the specified.   The mutex</div><div class='add'>+ *              could be locked by someone else.  It waits then.</div><div class='add'>+ * @post        Upon successful return the passed mutex is owned by the current</div><div class='add'>+ *              thread.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  function is  called from  `ConditionVariable#wait`.   So it  is not  a</div><div class='add'>+ * deprecated feature.   However @shyouhei  have never  seen any  similar mutex</div><div class='add'>+ * primitive available in any other languages than Ruby.</div><div class='add'>+ *</div><div class='add'>+ * EDIT: In 2021,  @shyouhei asked @ko1 in person about  this API.  He answered</div><div class='add'>+ * that it is his invention.  The  motivation behind its design is to eliminate</div><div class='add'>+ * needs of condition variables as  primitives.  Unlike other languages, Ruby's</div><div class='add'>+ * `ConditionVariable` class was written in pure-Ruby initially.  We don't have</div><div class='add'>+ * to implement  machine-native condition  variables in  assembly each  time we</div><div class='add'>+ * port Ruby to a new architecture.  This function made it possible.  "I felt I</div><div class='add'>+ * was a genius when this idea came to me", said @ko1.</div><div class='add'>+ *</div><div class='add'>+ * `rb_cConditionVariable` is now written in C for speed, though.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mutex_sleep(VALUE self, VALUE timeout);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Obtains the  lock, runs the passed  function, and releases the  lock when it</div><div class='add'>+ * completes.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]     mutex  The mutex to lock.</div><div class='add'>+ * @param[in]      func   What to do during the mutex is locked.</div><div class='add'>+ * @param[in,out]  arg    Passed as-is to `func`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_THREAD_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/time.h b/include/ruby/internal/intern/time.h<br/>new file mode 100644<br/>index 0000000000..df482862eb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/time.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/time.h</a></div><div class='hunk'>@@ -0,0 +1,161 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_TIME_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_TIME_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to ::rb_cTime.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_TIME_H</div><div class='add'>+# include &lt;time.h&gt;              /* for time_t */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+struct timespec;</div><div class='add'>+struct timeval;</div><div class='add'>+</div><div class='add'>+/* time.c */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Fills the current time into the given struct.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ts                   Return buffer.</div><div class='add'>+ * @exception   rb_eSystemCallError  Access denied for hardware clock.</div><div class='add'>+ * @post        Current time is stored in `*ts`.</div><div class='add'>+ */</div><div class='add'>+void rb_timespec_now(struct timespec *ts);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates  an  instance of  ::rb_cTime  with  the  given  time and  the  local</div><div class='add'>+ * timezone.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  sec             Seconds since the UNIX epoch.</div><div class='add'>+ * @param[in]  usec            Subsecond part, in microseconds resolution.</div><div class='add'>+ * @exception  rb_eRangeError  Cannot express the time.</div><div class='add'>+ * @return     An allocated instance of ::rb_cTime.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_time_new(time_t sec, long usec);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_time_new(), except  it  accepts  the time  in  nanoseconds</div><div class='add'>+ * resolution.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  sec             Seconds since the UNIX epoch.</div><div class='add'>+ * @param[in]  nsec            Subsecond part, in nanoseconds resolution.</div><div class='add'>+ * @exception  rb_eRangeError  Cannot express the time.</div><div class='add'>+ * @return     An allocated instance of ::rb_cTime.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_time_nano_new(time_t sec, long nsec);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Creates an instance of ::rb_cTime, with given time and offset.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ts            Time specifier.</div><div class='add'>+ * @param[in]  offset        Offset specifier, can take following values:</div><div class='add'>+ *                           - `INT_MAX`: `ts` is in local time.</div><div class='add'>+ *                           - `INT_MAX - 1`: `ts` is in UTC.</div><div class='add'>+ *                           - `-86400` to `86400`: fixed timezone.</div><div class='add'>+ * @exception  rb_eArgError  Malformed `offset`.</div><div class='add'>+ * @return     An allocated instance of ::rb_cTime.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_time_timespec_new(const struct timespec *ts, int offset);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_time_timespec_new(), except it  takes Ruby values instead of</div><div class='add'>+ * C structs.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  timev         Something numeric.  Currently Integers, Rationals,</div><div class='add'>+ *                           and Floats are accepted.</div><div class='add'>+ * @param[in]  off           Offset  specifier.  As  of  2.7  this argument  is</div><div class='add'>+ *                           heavily  extended  to   take  following  kinds  of</div><div class='add'>+ *                           objects:</div><div class='add'>+ *                             - ::RUBY_Qundef ... means UTC.</div><div class='add'>+ *                             - ::rb_cString ... "+12:34" etc.</div><div class='add'>+ *                             - A mysterious  "zone" object.  This  is largely</div><div class='add'>+ *                               undocumented.  However the  initial intent was</div><div class='add'>+ *                               that       we       want       to       accept</div><div class='add'>+ *                               `ActiveSupport::TimeZone`  here.   Other  gems</div><div class='add'>+ *                               could also be possible...   But how to make an</div><div class='add'>+ *                               acceptable class is beyond this document.</div><div class='add'>+ * @exception  rb_eArgError  Malformed `off`.</div><div class='add'>+ * @return     An allocated instance of ::rb_cTime.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_time_num_new(VALUE timev, VALUE off);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates  a  "time  interval".   This   basically  converts  an  instance  of</div><div class='add'>+ * ::rb_cNumeric  into  a struct  `timeval`,  but  for instance  negative  time</div><div class='add'>+ * interval must not exist.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             An instance of ::rb_cNumeric.</div><div class='add'>+ * @exception  rb_eArgError    `num` is negative.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `timeval::tv_sec`.</div><div class='add'>+ * @return     A struct that represents the identical time to `num`.</div><div class='add'>+ */</div><div class='add'>+struct timeval rb_time_interval(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an  instance of rb_cTime  to a  struct timeval that  represents the</div><div class='add'>+ * identical point of time.  It can also take something numeric; would consider</div><div class='add'>+ * it as a UNIX time then.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  time            Instance of either ::rb_cTime or ::rb_cNumeric.</div><div class='add'>+ * @exception  rb_eRangeError  `time` is out of range of `timeval::tv_sec`.</div><div class='add'>+ * @return     A struct that represents the identical time to `num`.</div><div class='add'>+ */</div><div class='add'>+struct timeval rb_time_timeval(VALUE time);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_time_timeval(), except for return type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  time            Instance of either ::rb_cTime or ::rb_cNumeric.</div><div class='add'>+ * @exception  rb_eRangeError  `time` is out of range of `timeval::tv_sec`.</div><div class='add'>+ * @return     A struct that represents the identical time to `num`.</div><div class='add'>+ */</div><div class='add'>+struct timespec rb_time_timespec(VALUE time);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_time_interval(), except for return type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  num             An instance of ::rb_cNumeric.</div><div class='add'>+ * @exception  rb_eArgError    `num` is negative.</div><div class='add'>+ * @exception  rb_eRangeError  `num` is out of range of `timespec::tv_sec`.</div><div class='add'>+ * @return     A struct that represents the identical time to `num`.</div><div class='add'>+ */</div><div class='add'>+struct timespec rb_time_timespec_interval(VALUE num);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the  offset, in seconds  between the time zone  of the time  and the</div><div class='add'>+ * UTC.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  time  An instance of ::rb_cTime.</div><div class='add'>+ * @return     Numeric offset.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_time_utc_offset(VALUE time);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_TIME_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/variable.h b/include/ruby/internal/intern/variable.h<br/>new file mode 100644<br/>index 0000000000..479c3950c1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/variable.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/variable.h</a></div><div class='hunk'>@@ -0,0 +1,628 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_VARIABLE_H                     /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_VARIABLE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to names inside of a Ruby program.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* variable.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the name of a module.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mod        An instance of ::rb_cModule.</div><div class='add'>+ * @retval     RUBY_Qnil  `mod` is anonymous.</div><div class='add'>+ * @retval     otherwise  `mod` is onymous.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_name(VALUE mod);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_mod_name(),  except   it  returns  `#&lt;Class:  ...&gt;`  style</div><div class='add'>+ * inspection for anonymous modules.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mod        An instance of ::rb_cModule.</div><div class='add'>+ * @return     An instance of ::rb_cString representing `mod`'s path.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_path(VALUE mod);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @alias{rb_mod_name}</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Am I missing something?  Why we have the same thing in different names?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_path_cached(VALUE mod);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Names a class.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  Target module to name.</div><div class='add'>+ * @param[out]  space  Namespace that `klass` shall reside.</div><div class='add'>+ * @param[in]   name   Name of `klass`.</div><div class='add'>+ * @post        `klass` has `space::klass` name.</div><div class='add'>+ */</div><div class='add'>+void rb_set_class_path(VALUE klass, VALUE space, const char *name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_set_class_path(),  except  it accepts  the  name as  Ruby's</div><div class='add'>+ * string instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  Target module to name.</div><div class='add'>+ * @param[out]  space  Namespace that `klass` shall reside.</div><div class='add'>+ * @param[in]   name   Name of `klass`.</div><div class='add'>+ * @post        `klass` has `space::klass` name.</div><div class='add'>+ */</div><div class='add'>+void rb_set_class_path_string(VALUE klass, VALUE space, VALUE name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_path2class(), except it  accepts the path as  Ruby's string</div><div class='add'>+ * instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path           Path to query.</div><div class='add'>+ * @exception  rb_eArgError   No such constant.</div><div class='add'>+ * @exception  rb_eTypeError  The path resolved to a non-module.</div><div class='add'>+ * @return     Resolved class.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_path_to_class(VALUE path);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Resolves a `Q::W::E::R`-style path string to the actual class it points.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  path           Path to query.</div><div class='add'>+ * @exception  rb_eArgError   No such constant.</div><div class='add'>+ * @exception  rb_eTypeError  The path resolved to a non-module.</div><div class='add'>+ * @return     Resolved class.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_path2class(const char *path);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the name of the given object's class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Arbitrary object.</div><div class='add'>+ * @return     An instance of ::rb_cString representing `obj`'s class' path.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_class_name(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Kicks the autoload procedure as if it was "touched".</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  space        Namespace where autoload is defined.</div><div class='add'>+ * @param[in]   name         Name of the autoloaded constant.</div><div class='add'>+ * @retval      RUBY_Qfalse  No such autoload.</div><div class='add'>+ * @retval      RUBY_Qtrue   Autoload successfully initiated.</div><div class='add'>+ * @note        As an  autoloaded library is expected  to define `space::name`,</div><div class='add'>+ *              it is  a nature  of this function  to have  process-global side</div><div class='add'>+ *              effects.</div><div class='add'>+ * @note        Multiple threads  can simultaneously call this  API.  It blocks</div><div class='add'>+ *              then.  That must not last indefinitely but can take longer than</div><div class='add'>+ *              you expect.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei has no idea why extension libraries should use this API.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_autoload_load(VALUE space, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if an autoload is defined at a point.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  space      Namespace where autoload is defined.</div><div class='add'>+ * @param[in]  name       Name of the autoloaded constant.</div><div class='add'>+ * @retval     RUBY_Qnil  No such autoload.</div><div class='add'>+ * @retval     otherwise  The feature (path) registered at `space::name`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_autoload_p(VALUE space, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Traces a global variable.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc        Either 1 or 2.</div><div class='add'>+ * @param[in]  argv        Variable name, optionally a Proc.</div><div class='add'>+ * @retval     RUBY_Qnil   No previous tracers.</div><div class='add'>+ * @retval     otherwise   Previous tracers.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei has no idea why extension libraries should use this API.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_f_trace_var(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Deletes the  passed tracer from the  passed global variable, or  if omitted,</div><div class='add'>+ * deletes everything.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc        Either 1 or 2.</div><div class='add'>+ * @param[in]  argv        Variable name, optionally a Proc.</div><div class='add'>+ * @retval     RUBY_Qnil   No previous tracers.</div><div class='add'>+ * @retval     otherwise   Deleted tracers.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei has no idea why extension libraries should use this API.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_f_untrace_var(int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the list of global variables.</div><div class='add'>+ *</div><div class='add'>+ * @return  The list of the name of the global variables.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_f_global_variables(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Aliases  a global  variable.   Did you  know  that you  can  alias a  global</div><div class='add'>+ * variable?  It is like aliasing methods:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * alias $dst $src</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * This C function does the same thing.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  dst  Destination name.</div><div class='add'>+ * @param[in]  src  Source name.</div><div class='add'>+ * @post       A global  variable named `dst`  is defined to  be an alias  of a</div><div class='add'>+ *             global variable named `src`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+void rb_alias_variable(ID dst, ID src);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Frees the list of instance variables.   3rd parties need not know, but there</div><div class='add'>+ * are several ways  to store an object's instance variables,  depending on its</div><div class='add'>+ * internal structure.   This function makes  sense when the passed  objects is</div><div class='add'>+ * using so-called "generic" backend storage.  People need not be aware of this</div><div class='add'>+ * working behind-the-scenes.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj  The object in question.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This just  destroys the given object.   @shyouhei has no idea  why extension</div><div class='add'>+ * libraries should use this API.</div><div class='add'>+ */</div><div class='add'>+void rb_free_generic_ivar(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_iv_get(), except it accepts the name as an ::ID instead of a</div><div class='add'>+ * C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj        Target object.</div><div class='add'>+ * @param[in]  name       Target instance variable to query.</div><div class='add'>+ * @retval     RUBY_nil   No such instance variable.</div><div class='add'>+ * @retval     otherwise  The value assigned to the instance variable.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ivar_get(VALUE obj, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_iv_set(), except it accepts the name as an ::ID instead of a</div><div class='add'>+ * C string.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj              Target object.</div><div class='add'>+ * @param[in]   name             Target instance variable.</div><div class='add'>+ * @param[in]   val              Value to assign.</div><div class='add'>+ * @exception   rb_eFrozenError  Can't modify `obj`.</div><div class='add'>+ * @exception   rb_eArgError     `obj` has too many instance variables.</div><div class='add'>+ * @return      Passed value.</div><div class='add'>+ * @post        An  instance variable  named  `name` is  defined  if absent  on</div><div class='add'>+ *              `obj`, whose value is set to `val`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ivar_set(VALUE obj, ID name, VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if  the instance variable  is defined  at the object.   This roughly</div><div class='add'>+ * resembles `defined?(@name)` in `obj`'s context.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj          Target object.</div><div class='add'>+ * @param[in]  name         Target instance variable to query.</div><div class='add'>+ * @retval     RUBY_Qtrue   There is an instance variable.</div><div class='add'>+ * @retval     RUBY_Qfalse  No such instance variable.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ivar_defined(VALUE obj, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Iterates over an object's instance variables.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj   Target object.</div><div class='add'>+ * @param[in]  func  Callback function.</div><div class='add'>+ * @param[in]  arg   Passed as-is to the last argument of `func`.</div><div class='add'>+ */</div><div class='add'>+void rb_ivar_foreach(VALUE obj, int (*func)(ID name, VALUE val, st_data_t arg), st_data_t arg);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Number of instance variables defined on an object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj   Target object.</div><div class='add'>+ * @return     Number of instance variables defined on `obj`.</div><div class='add'>+ */</div><div class='add'>+st_index_t rb_ivar_count(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_ivar_get()</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj        Target object.</div><div class='add'>+ * @param[in]  name       Target instance variable to query.</div><div class='add'>+ * @retval     RUBY_nil   No such instance variable.</div><div class='add'>+ * @retval     otherwise  The value assigned to the instance variable.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Am I missing something?  Why we have the same thing in different names?</div><div class='add'>+ */</div><div class='add'>+VALUE rb_attr_get(VALUE obj, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles `Object#instance_variables`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Target object to query.</div><div class='add'>+ * @return     An array of instance variable names for the receiver.</div><div class='add'>+ * @note       Simply defining  an accessor  does not create  the corresponding</div><div class='add'>+ *             instance variable.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_instance_variables(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles `Object#remove_instance_variable`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj   Target object.</div><div class='add'>+ * @param[in]   name  Variable name to remove, either in Symbol or String.</div><div class='add'>+ * @return      What was removed.</div><div class='add'>+ * @pre         Instance variable named `name` is deleted from `obj`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_remove_instance_variable(VALUE obj, VALUE name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This API is  mysterious.  It has been there since  the initial revision.  No</div><div class='add'>+ * single bits of  documents has ever been written.  The  function name doesn't</div><div class='add'>+ * describe anything.  What should be passed to the argument, or what should be</div><div class='add'>+ * the  return value,  are not  obvious.  Yet  it has  evolved over  time.  The</div><div class='add'>+ * source code is written in counter-intuitive way (as of 3.0).</div><div class='add'>+ *</div><div class='add'>+ * Simply put, don't try to understand this API.</div><div class='add'>+ */</div><div class='add'>+void *rb_mod_const_at(VALUE, void*);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a variant of rb_mod_const_at().  As a result, it is also mysterious.</div><div class='add'>+ * It _seems_ it iterates over the ancestry  tree of the module.  But what that</div><div class='add'>+ * means is beyond a human brain.</div><div class='add'>+ */</div><div class='add'>+void *rb_mod_const_of(VALUE, void*);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is  another mysterious  API that  comes with no  documents at  all.  It</div><div class='add'>+ * seems it expects  some specific data structure for the  passed pointer.  But</div><div class='add'>+ * the details has  never been made explicit.  It seems  nobody should use this</div><div class='add'>+ * API.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_const_list(void*);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles  `Module#constants`.   List  up   the  constants  defined  at  the</div><div class='add'>+ * receiver.  This  includes the  names of constants  in any  included modules,</div><div class='add'>+ * unless `argv[0]` is ::RUBY_Qfalse.</div><div class='add'>+ *</div><div class='add'>+ * The  implementation  makes  no  guarantees  about the  order  in  which  the</div><div class='add'>+ * constants are yielded.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc  Either 0 or 1.</div><div class='add'>+ * @param[in]  argv  Pointer to ::RUBY_Qfalse, if `argc == 1`.</div><div class='add'>+ * @param[in]  recv  Target namespace.</div><div class='add'>+ * @return     An array of symbols, which are constant names under `recv`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_constants(int argc, const VALUE *argv, VALUE recv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles `Module#remove_const`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  space  Target namespace.</div><div class='add'>+ * @param[in]   name   Variable name to remove, either in Symbol or String.</div><div class='add'>+ * @return      What was removed.</div><div class='add'>+ * @pre         Constant named `space::name` is deleted.</div><div class='add'>+ * @note        In case what was removed was in  fact a module or a class, this</div><div class='add'>+ *              operation does  not affect its  name.  Which means  when people</div><div class='add'>+ *              for instance  look at  it using `p`  etc., it  still introduces</div><div class='add'>+ *              itself using the deleted name.  Can confuse people.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_remove_const(VALUE space, VALUE name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the constant is defined at the namespace.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  space        Target namespace.</div><div class='add'>+ * @param[in]  name         Target name to query.</div><div class='add'>+ * @retval     RUBY_Qtrue   There is a constant.</div><div class='add'>+ * @retval     RUBY_Qfalse  No such constant.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The return values are not typo!  This function returns ruby values casted to</div><div class='add'>+ * `int`.  Completely brain-damaged design.</div><div class='add'>+ */</div><div class='add'>+int rb_const_defined(VALUE space, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_const_defined(), except it  doesn't look for parent classes.</div><div class='add'>+ * For  instance  `Array`  is  a  toplevel  constant,  which  is  visible  from</div><div class='add'>+ * everywhere.  But this  function does not take such things  into account.  It</div><div class='add'>+ * concerns only what is directly defined inside of the given namespace.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  space        Target namespace.</div><div class='add'>+ * @param[in]  name         Target name to query.</div><div class='add'>+ * @retval     RUBY_Qtrue   There is a constant.</div><div class='add'>+ * @retval     RUBY_Qfalse  No such constant.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The return values are not typo!  This function returns ruby values casted to</div><div class='add'>+ * `int`.  Completely brain-damaged design.</div><div class='add'>+ */</div><div class='add'>+int rb_const_defined_at(VALUE space, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_const_defined(),  except  it  returns  false  for  private</div><div class='add'>+ * constants.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  space        Target namespace.</div><div class='add'>+ * @param[in]  name         Target name to query.</div><div class='add'>+ * @retval     RUBY_Qtrue   There is a constant.</div><div class='add'>+ * @retval     RUBY_Qfalse  No such constant.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * What does "from" mean?  The name sounds quite cryptic.</div><div class='add'>+ *</div><div class='add'>+ * The return values are not typo!  This function returns ruby values casted to</div><div class='add'>+ * `int`.  Completely brain-damaged design.</div><div class='add'>+ */</div><div class='add'>+int rb_const_defined_from(VALUE space, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_const_defined(), except it returns the actual defined value.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  space          Target namespace.</div><div class='add'>+ * @param[in]  name           Target name to query.</div><div class='add'>+ * @exception  rb_eNameError  No such constant.</div><div class='add'>+ * @return     The defined constant.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_const_get(VALUE space, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_const_defined_at(),  except it  returns the  actual defined</div><div class='add'>+ * value.  It can also be seen as a routine identical to rb_const_get(), except</div><div class='add'>+ * it doesn't look for parent classes.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  space          Target namespace.</div><div class='add'>+ * @param[in]  name           Target name to query.</div><div class='add'>+ * @exception  rb_eNameError  No such constant.</div><div class='add'>+ * @return     The defined constant.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_const_get_at(VALUE space, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_const_defined_at(),  except it  returns the  actual defined</div><div class='add'>+ * value.  It can also be seen as a routine identical to rb_const_get(), except</div><div class='add'>+ * it doesn't return a private constant.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  space          Target namespace.</div><div class='add'>+ * @param[in]  name           Target name to query.</div><div class='add'>+ * @exception  rb_eNameError  No such constant.</div><div class='add'>+ * @return     The defined constant.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_const_get_from(VALUE space, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Names a constant.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  space          Target namespace.</div><div class='add'>+ * @param[in]   name           Target name to query.</div><div class='add'>+ * @param[in]   val            Value to define.</div><div class='add'>+ * @exception   rb_eTypeError  `space` is not a module.</div><div class='add'>+ * @post        `name` is a constant under `space`, whose value is `val`.</div><div class='add'>+ * @note        You can reassign.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+void rb_const_set(VALUE space, ID name, VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_mod_remove_const(), except it takes the name as ::ID instead</div><div class='add'>+ * of ::VALUE.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  space  Target namespace.</div><div class='add'>+ * @param[in]   name   Variable name to remove, either in Symbol or String.</div><div class='add'>+ * @return      What was removed.</div><div class='add'>+ * @pre         Constant named `space::name` is deleted.</div><div class='add'>+ * @note        In case what was removed was in  fact a module or a class, this</div><div class='add'>+ *              operation does  not affect its  name.  Which means  when people</div><div class='add'>+ *              for instance  look at  it using `p`  etc., it  still introduces</div><div class='add'>+ *              itself using the deleted name.  Can confuse people.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_const_remove(VALUE space, ID name);</div><div class='add'>+</div><div class='add'>+#if 0 /* EXPERIMENTAL: remove if no problem */</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * This is the default implementation of `Module#const_missing`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  space          Target namespace.</div><div class='add'>+ * @param[in]  name           Target name that is nonexistent.</div><div class='add'>+ * @exception  rb_eNameError  Always.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_const_missing(VALUE space, VALUE name);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the given class has the given class variable.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass        Target class.</div><div class='add'>+ * @param[in]  name         Name to query.</div><div class='add'>+ * @return     RUBY_Qtrue   Yes there is.</div><div class='add'>+ * @return     RUBY_Qfalse  No there isn't.</div><div class='add'>+ * @pre        `klass` must be an instance of rb_cModule.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_cvar_defined(VALUE klass, ID name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Assigns a value to a class variable.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  Target class.</div><div class='add'>+ * @param[in]   name   Variable name.</div><div class='add'>+ * @param[in]   val    Value to be assigned.</div><div class='add'>+ * @post        `klass` has a class variable named `name` whose value is `val`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+void rb_cvar_set(VALUE klass, ID name, VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Obtains a value from a class variable.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass             Target class.</div><div class='add'>+ * @param[in]  name              Variable name.</div><div class='add'>+ * @exception  rb_eNameError     Uninitialised class variable.</div><div class='add'>+ * @exception  rb_eRuntimeError  `[Bug#14541]` situation.</div><div class='add'>+ * @return     Class variable named `name` under `klass`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_cvar_get(VALUE klass, ID name);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_cvar_get(),  except  it takes  additional "front"  pointer.</div><div class='add'>+ * This  extra parameter  is a  buffer,  which will  have the  class where  the</div><div class='add'>+ * queried class variable actually resides.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   klass             Target class.</div><div class='add'>+ * @param[in]   name              Variable name.</div><div class='add'>+ * @param[out]  front             Return buffer.</div><div class='add'>+ * @exception   rb_eNameError     Uninitialised class variable.</div><div class='add'>+ * @exception   rb_eRuntimeError  `[Bug#14541]` situation.</div><div class='add'>+ * @return      Class variable named `name` under `klass`.</div><div class='add'>+ * @post        `front` has the class object,  which is an ancestor of `klass`,</div><div class='add'>+ *              where the queried class variable actually resides.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_cvar_find(VALUE klass, ID name, VALUE *front);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_cvar_set(), except it accepts C's string instead of ::ID.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  Target class.</div><div class='add'>+ * @param[in]   name   Variable name.</div><div class='add'>+ * @param[in]   val    Value to be assigned.</div><div class='add'>+ * @post        `klass` has a class variable named `name` whose value is `val`.</div><div class='add'>+ */</div><div class='add'>+void rb_cv_set(VALUE klass, const char *name, VALUE val);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_cvar_get(), except it accepts C's string instead of ::ID.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass             Target class.</div><div class='add'>+ * @param[in]  name              Variable name.</div><div class='add'>+ * @exception  rb_eNameError     Uninitialised class variable.</div><div class='add'>+ * @exception  rb_eRuntimeError  `[Bug#14541]` situation.</div><div class='add'>+ * @return     Class variable named `name` under `klass`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_cv_get(VALUE klass, const char *name);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @alias{rb_cv_set}</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Am I missing something?  Why we have the same thing in different names?</div><div class='add'>+ */</div><div class='add'>+void rb_define_class_variable(VALUE, const char*, VALUE);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles `Module#class_variables`.   List up  the variables defined  at the</div><div class='add'>+ * receiver.  This  includes the  names of constants  in any  included modules,</div><div class='add'>+ * unless `argv[0]` is ::RUBY_Qfalse.</div><div class='add'>+ *</div><div class='add'>+ * The  implementation  makes  no  guarantees  about the  order  in  which  the</div><div class='add'>+ * constants are yielded.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc  Either 0 or 1.</div><div class='add'>+ * @param[in]  argv  Pointer to ::RUBY_Qfalse, if `argc == 1`.</div><div class='add'>+ * @param[in]  recv  Target class.</div><div class='add'>+ * @return     An  array  of symbols,  which  are  class variable  names  under</div><div class='add'>+ *             `recv`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_class_variables(int argc, const VALUE *argv, VALUE recv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles `Module#remove_class_variable`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  mod   Target class.</div><div class='add'>+ * @param[in]   name  Variable name to remove, either in Symbol or String.</div><div class='add'>+ * @return      What was removed.</div><div class='add'>+ * @pre         Instance variable named `name` is deleted from `obj`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_remove_cvar(VALUE mod, VALUE name);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_VARIABLE_H */</div><div class='head'>diff --git a/include/ruby/internal/intern/vm.h b/include/ruby/internal/intern/vm.h<br/>new file mode 100644<br/>index 0000000000..76af796b54<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/intern/vm.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/intern/vm.h</a></div><div class='hunk'>@@ -0,0 +1,431 @@</div><div class='add'>+#ifndef RBIMPL_INTERN_VM_H                           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERN_VM_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Public APIs related to rb_cRubyVM.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* vm.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles `__LINE__`.</div><div class='add'>+ *</div><div class='add'>+ * @retval  0          Current execution context not in a ruby method.</div><div class='add'>+ * @retval  otherwise  The current  line number  of the  current thread  of the</div><div class='add'>+ *                     current ractor of the current execution context.</div><div class='add'>+ */</div><div class='add'>+int rb_sourceline(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles `__FILE__`.</div><div class='add'>+ *</div><div class='add'>+ * @retval  0          Current execution context not in a ruby method.</div><div class='add'>+ * @retval  otherwise  The current  source path  of the  current thread  of the</div><div class='add'>+ *                     current ractor of the current execution context.</div><div class='add'>+ * @note    This may or may not be an absolute path.</div><div class='add'>+ */</div><div class='add'>+const char *rb_sourcefile(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles `__method__`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  idp     Return buffer for method id.</div><div class='add'>+ * @param[out]  klassp  Return buffer for class.</div><div class='add'>+ * @retval      0       Current execution context not in a method.</div><div class='add'>+ * @retval      1       Successful return.</div><div class='add'>+ * @post        Upon successful return `*idp` and `*klassp` are updated to have</div><div class='add'>+ *              the current method name and its defined class respectively.</div><div class='add'>+ * @note        Both parameters can be `NULL`.</div><div class='add'>+ */</div><div class='add'>+int rb_frame_method_id_and_class(ID *idp, VALUE *klassp);</div><div class='add'>+</div><div class='add'>+/* vm_eval.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_funcallv(), except  it  returns  ::RUBY_Qundef instead  of</div><div class='add'>+ * raising ::rb_eNoMethodError.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  recv         Receiver of the method.</div><div class='add'>+ * @param[in]      mid          Name of the method to call.</div><div class='add'>+ * @param[in]      argc         Number of arguments.</div><div class='add'>+ * @param[in]      argv         Arbitrary number of method arguments.</div><div class='add'>+ * @retval         RUBY_Qundef  `recv` doesn't respond to `mid`.</div><div class='add'>+ * @retval         otherwise    What the method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_check_funcall(VALUE recv, ID mid, int argc, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_check_funcall(), except you  can specify how to  handle the</div><div class='add'>+ * last element of the given array.  It can also be seen as a routine identical</div><div class='add'>+ * to  rb_funcallv_kw(), except  it  returns ::RUBY_Qundef  instead of  raising</div><div class='add'>+ * ::rb_eNoMethodError.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  recv         Receiver of the method.</div><div class='add'>+ * @param[in]      mid          Name of the method to call.</div><div class='add'>+ * @param[in]      argc         Number of arguments.</div><div class='add'>+ * @param[in]      argv         Arbitrary number of method arguments.</div><div class='add'>+ * @param[in]      kw_splat     Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @retval         RUBY_Qundef  `recv` doesn't respond to `mid`.</div><div class='add'>+ * @retval         otherwise    What the method evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_check_funcall_kw(VALUE recv, ID mid, int argc, const VALUE *argv, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This API  is practically a  variant of rb_proc_call_kw()  now.  Historically</div><div class='add'>+ * when there  still was a  concept called `$SAFE`, this  was an API  for that.</div><div class='add'>+ * But we  no longer have  that.  This function  basically ended its  role.  It</div><div class='add'>+ * just remains here because of no harm.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  cmd       A string, or something callable.</div><div class='add'>+ * @param[in]  arg       Argument passed to the call.</div><div class='add'>+ * @param[in]  kw_splat  Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `arg`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `arg`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @return     What the command evaluates to.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_eval_cmd_kw(VALUE cmd, VALUE arg, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_funcallv(), except it takes Ruby's array instead of C's.</div><div class='add'>+ * @param[in,out]  recv               Receiver of the method.</div><div class='add'>+ * @param[in]      mid                Name of the method to call.</div><div class='add'>+ * @param[in]      args               An instance of ::RArray.</div><div class='add'>+ * @exception      rb_eNoMethodError  No such method.</div><div class='add'>+ * @exception      rb_eException      Any exceptions happen inside.</div><div class='add'>+ * @return         What the method evaluates to.</div><div class='add'>+ * @pre            `args` must  be an ::RArray.  Call  `to_ary` beforehand when</div><div class='add'>+ *                 necessary.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_apply(VALUE recv, ID mid, VALUE args);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Evaluates a string  containing Ruby source code, or the  given block, within</div><div class='add'>+ * the  context of  the receiver.  In order  to set  the context,  the variable</div><div class='add'>+ * `self` is set to `recv` while the  code is executing, giving the code access</div><div class='add'>+ * to `recv`'s instance variables and private methods.</div><div class='add'>+ *</div><div class='add'>+ * When given a block, `recv` is also passed in as the block's only argument.</div><div class='add'>+ *</div><div class='add'>+ * When  given a  string, the  optional second  and third  parameters supply  a</div><div class='add'>+ * filename and starting  line number that are used  when reporting compilation</div><div class='add'>+ * errors.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc  Number of objects in `argv`</div><div class='add'>+ * @param[in]  argv  C array of 0 up to 3 elements.</div><div class='add'>+ * @param[in]  recv  The object in question.</div><div class='add'>+ * @return     What was evaluated.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_instance_eval(int argc, const VALUE *argv, VALUE recv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Executes the  given block within the  context of the receiver.   In order to</div><div class='add'>+ * set the  context, the  variable `self` is  set to `recv`  while the  code is</div><div class='add'>+ * executing, giving the code access to `recv`'s instance variables.  Arguments</div><div class='add'>+ * are passed as block parameters.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc  Number of objects in `argv`</div><div class='add'>+ * @param[in]  argv  Arbitrary parameters to be passed to the block.</div><div class='add'>+ * @param[in]  recv  The object in question.</div><div class='add'>+ * @return     What was evaluated.</div><div class='add'>+ * @note       Don't  confuse   this  with  rb_obj_instance_eval().    The  key</div><div class='add'>+ *             difference is whether  you can pass arbitrary  parameters to the</div><div class='add'>+ *             block, like this:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * class Foo</div><div class='add'>+ *   def initialize</div><div class='add'>+ *     @foo = 5</div><div class='add'>+ *   end</div><div class='add'>+ * end</div><div class='add'>+ * Foo.new.instance_exec(7) {|i| @foo + i } # =&gt; 12</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_instance_exec(int argc, const VALUE *argv, VALUE recv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_obj_instance_eval(), except  it evaluates within the context</div><div class='add'>+ * of module.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc  Number of objects in `argv`</div><div class='add'>+ * @param[in]  argv  C array of 0 up to 3 elements.</div><div class='add'>+ * @param[in]  mod   The module in question.</div><div class='add'>+ * @pre        `mod` must be a Module.</div><div class='add'>+ * @return     What was evaluated.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_module_eval(int argc, const VALUE *argv, VALUE mod);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_obj_instance_exec(), except  it evaluates within the context</div><div class='add'>+ * of module.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc  Number of objects in `argv`</div><div class='add'>+ * @param[in]  argv  Arbitrary parameters to be passed to the block.</div><div class='add'>+ * @param[in]  mod   The module in question.</div><div class='add'>+ * @pre        `mod` must be a Module.</div><div class='add'>+ * @return     What was evaluated.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_mod_module_exec(int argc, const VALUE *argv, VALUE mod);</div><div class='add'>+</div><div class='add'>+/* vm_method.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define HAVE_RB_DEFINE_ALLOC_FUNC 1</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is  the type of  functions that ruby calls  when trying to  allocate an</div><div class='add'>+ * object.  It is  sometimes necessary to allocate extra memory  regions for an</div><div class='add'>+ * object.  When you define a class that uses ::RTypedData, it is typically the</div><div class='add'>+ * case.  On  such situations  define a function  of this type  and pass  it to</div><div class='add'>+ * rb_define_alloc_func().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass  The class that this function is registered.</div><div class='add'>+ * @return     A newly allocated instance of `klass`.</div><div class='add'>+ */</div><div class='add'>+typedef VALUE (*rb_alloc_func_t)(VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Sets the allocator function of a class.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  The class to modify.</div><div class='add'>+ * @param[in]   func   An allocator function for the class.</div><div class='add'>+ * @pre         `klass` must be an instance of Class.</div><div class='add'>+ */</div><div class='add'>+void rb_define_alloc_func(VALUE klass, rb_alloc_func_t func);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Deletes the  allocator function of  a class.   It is sometimes  desirable to</div><div class='add'>+ * restrict creation  of an instance of  a class.  For example  it rarely makes</div><div class='add'>+ * sense for  a DB adaptor class  to allow programmers creating  DB row objects</div><div class='add'>+ * without querying  the DB  itself.  You  can kill  sporadic creation  of such</div><div class='add'>+ * objects then,  by nullifying  the allocator function  using this  API.  Your</div><div class='add'>+ * object shall be allocated using #RB_NEWOBJ_OF() directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  The class to modify.</div><div class='add'>+ * @pre         `klass` must be an instance of Class.</div><div class='add'>+ */</div><div class='add'>+void rb_undef_alloc_func(VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the allocator function of a class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass      The class in question.</div><div class='add'>+ * @pre        `klass` must be an instance of Class.</div><div class='add'>+ * @retval     0          No allocator function is registered.</div><div class='add'>+ * @retval     otherwise  The allocator function.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Who cares?  @shyouhei finds no practical usage of the return value.  Maybe we</div><div class='add'>+ * need KonMari.</div><div class='add'>+ */</div><div class='add'>+rb_alloc_func_t rb_get_alloc_func(VALUE klass);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Clears the inline constant caches associated with a particular ID. Extension</div><div class='add'>+ * libraries should not bother with such things. Just forget about this API (or</div><div class='add'>+ * even, the presence of constant caches).</div><div class='add'>+ */</div><div class='add'>+void rb_clear_constant_cache_for_id(ID id);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Resembles `alias`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass            Where to define an alias.</div><div class='add'>+ * @param[in]   dst              New name.</div><div class='add'>+ * @param[in]   src              Existing name.</div><div class='add'>+ * @exception   rb_eTypeError    `klass` is not a class.</div><div class='add'>+ * @exception   rb_eFrozenError  `klass` is frozen.</div><div class='add'>+ * @exception   rb_eNameError    No such method named `src`.</div><div class='add'>+ * @post        `klass` has a method named `dst`, which is the identical to its</div><div class='add'>+ *              method named `src`.</div><div class='add'>+ */</div><div class='add'>+void rb_alias(VALUE klass, ID dst, ID src);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This function resembles now-deprecated `Module#attr`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass              Where to define an attribute.</div><div class='add'>+ * @param[in]   name               Name of an instance variable.</div><div class='add'>+ * @param[in]   need_reader        Whether attr_reader is needed.</div><div class='add'>+ * @param[in]   need_writer        Whether attr_writer is needed.</div><div class='add'>+ * @param[in]   honour_visibility  Whether to use the current visibility.</div><div class='add'>+ * @exception   rb_eTypeError      `klass` is not a class.</div><div class='add'>+ * @exception   rb_eFrozenError    `klass` is frozen.</div><div class='add'>+ * @post        If `need_reader` is set `klass` has a method named `name`.</div><div class='add'>+ * @post        If `need_writer` is set `klass` has a method named `name=`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The three `int` arguments should have been bool, but there was no such thing</div><div class='add'>+ * like a bool when K&amp;R was used in this project.</div><div class='add'>+ */</div><div class='add'>+void rb_attr(VALUE klass, ID name, int need_reader, int need_writer, int honour_visibility);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Removes a  method.  Don't confuse  this to rb_undef_method(),  which doesn't</div><div class='add'>+ * remove a method.  This one resembles `Module#remove_method`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass            The class to remove a method.</div><div class='add'>+ * @param[in]   name             Name of a method to be removed.</div><div class='add'>+ * @exception   rb_eTypeError    `klass` is a non-module.</div><div class='add'>+ * @exception   rb_eFrozenError  `klass` is frozen.</div><div class='add'>+ * @exception   rb_eNameError    No such method.</div><div class='add'>+ * @see         rb_undef_method</div><div class='add'>+ */</div><div class='add'>+void rb_remove_method(VALUE klass, const char *name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_remove_method(), except it accepts the method name as ::ID.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass            The class to remove a method.</div><div class='add'>+ * @param[in]   mid              Name of a method to be removed.</div><div class='add'>+ * @exception   rb_eTypeError    `klass` is a non-module.</div><div class='add'>+ * @exception   rb_eFrozenError  `klass` is frozen.</div><div class='add'>+ * @exception   rb_eNameError    No such method.</div><div class='add'>+ * @see         rb_undef</div><div class='add'>+ */</div><div class='add'>+void rb_remove_method_id(VALUE klass, ID mid);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the  klass has this method.   This function has only  one line of</div><div class='add'>+ * document in the implementation that states "// deprecated".  Don't know what</div><div class='add'>+ * that means though.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass  The class in question.</div><div class='add'>+ * @param[in]  id     The method name to query.</div><div class='add'>+ * @param[in]  ex     Undocumented magic value.</div><div class='add'>+ * @retval     false  Method not found.</div><div class='add'>+ * @retval     true   There is a method.</div><div class='add'>+ * @pre        `klass` must be a module.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei has no  motivation to describe what should be  passed to `ex`.  It</div><div class='add'>+ * seems this function should just be trashed.</div><div class='add'>+ */</div><div class='add'>+int rb_method_boundp(VALUE klass, ID id, int ex);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Well...  Let us hesitate from describing what a "basic definition" is.  This</div><div class='add'>+ * nuanced concept  should have been  kept private.  Just please.   Don't touch</div><div class='add'>+ * it.  This function is a badly distributed random number generator.  Right?</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass  The class in question.</div><div class='add'>+ * @param[in]  mid    The method name in question.</div><div class='add'>+ * @retval     1      It is.</div><div class='add'>+ * @retval     0      It isn't.</div><div class='add'>+ */</div><div class='add'>+int rb_method_basic_definition_p(VALUE klass, ID mid);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_respond_to(), except  it additionally takes  the visibility</div><div class='add'>+ * parameter.   This   does  not   make  difference   unless  the   object  has</div><div class='add'>+ * `respond_to?` undefined,  but has `respond_to_missing?` defined.   That case</div><div class='add'>+ * the passed argument becomes the second argument of `respond_to_missing?`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj        The object in question.</div><div class='add'>+ * @param[in]  mid        The method name in question.</div><div class='add'>+ * @param[in]  private_p  This    is   the    second   argument    of   `obj`'s</div><div class='add'>+ *                        `respond_to_missing?`.</div><div class='add'>+ * @retval     1          Yes it does.</div><div class='add'>+ * @retval     0          No it doesn't.</div><div class='add'>+ */</div><div class='add'>+int rb_obj_respond_to(VALUE obj, ID mid, int private_p);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if  the object responds  to the  method.  This involves  calling the</div><div class='add'>+ * object's `respond_to?` method.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj        The object in question.</div><div class='add'>+ * @param[in]  mid        The method name in question.</div><div class='add'>+ * @retval     1          Yes it does.</div><div class='add'>+ * @retval     0          No it doesn't.</div><div class='add'>+ */</div><div class='add'>+int rb_respond_to(VALUE obj, ID mid);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Raises  ::rb_eNotImpError.   This  function  is   used  as  an  argument  to</div><div class='add'>+ * rb_define_method() etc.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * rb_define_method(rb_cFoo, "foo", rb_f_notimplement, -1);</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param     argc             Unused parameter.</div><div class='add'>+ * @param     argv             Unused parameter.</div><div class='add'>+ * @param     obj              Unused parameter.</div><div class='add'>+ * @param     marker           Unused parameter.</div><div class='add'>+ * @exception rb_eNotImpError  Always.</div><div class='add'>+ * @return    Never returns.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * See also the Q&amp;A section of include/ruby/internal/anyargs.h.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_f_notimplement(int argc, const VALUE *argv, VALUE obj, VALUE marker);</div><div class='add'>+#if !defined(RUBY_EXPORT) &amp;&amp; defined(_WIN32)</div><div class='add'>+RUBY_EXTERN VALUE (*const rb_f_notimplement_)(int, const VALUE *, VALUE, VALUE marker);</div><div class='add'>+#define rb_f_notimplement (*rb_f_notimplement_)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* vm_backtrace.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Prints the backtrace  out to the standard error.  This  just confuses people</div><div class='add'>+ * for no reason.  Evil souls must only use it.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Actually it is very useful when called from an interactive GDB session.</div><div class='add'>+ */</div><div class='add'>+void rb_backtrace(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates the good old fashioned array-of-strings style backtrace info.</div><div class='add'>+ *</div><div class='add'>+ * @return  An   array  which   contains   strings,  which   are  the   textual</div><div class='add'>+ *          representations of the backtrace locations of the current thread of</div><div class='add'>+ *          the current ractor of the current execution context.</div><div class='add'>+ * @note    Ruby      scripts      can      access      more      sophisticated</div><div class='add'>+ *          `Thread::Backtrace::Location`.  But it seems there  is no way for C</div><div class='add'>+ *          extensions to use that API.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_make_backtrace(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERN_VM_H */</div><div class='head'>diff --git a/include/ruby/internal/interpreter.h b/include/ruby/internal/interpreter.h<br/>new file mode 100644<br/>index 0000000000..662d39c0ec<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/interpreter.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/interpreter.h</a></div><div class='hunk'>@@ -0,0 +1,304 @@</div><div class='add'>+#ifndef RBIMPL_INTERPRETER_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_INTERPRETER_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Interpreter embedding APIs.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @defgroup embed CRuby Embedding APIs</div><div class='add'>+ *</div><div class='add'>+ * CRuby interpreter APIs. These are APIs to embed MRI interpreter into your</div><div class='add'>+ * program.</div><div class='add'>+ * These functions are not a part of Ruby extension library API.</div><div class='add'>+ * Extension libraries of Ruby should not depend on these functions.</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @defgroup ruby1 ruby(1) implementation</div><div class='add'>+ *</div><div class='add'>+ * A part of the implementation of ruby(1) command.</div><div class='add'>+ * Other programs that embed Ruby interpreter do not always need to use these</div><div class='add'>+ * functions.</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Initializes the process for libruby.</div><div class='add'>+ *</div><div class='add'>+ * This function assumes this process is `ruby(1)` and it has just started.</div><div class='add'>+ * Usually programs that embed CRuby interpreter may not call this function,</div><div class='add'>+ * and may do their own initialization.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc  Pointer to process main's `argc`.</div><div class='add'>+ * @param[in]  argv  Pointer to process main's `argv`.</div><div class='add'>+ * @warning    `argc` and `argv` cannot be `NULL`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * AFAIK Ruby does write to argv, especially `argv[0][0]`, via setproctitle(3).</div><div class='add'>+ * It is intentional that the argument is not const-qualified.</div><div class='add'>+ */</div><div class='add'>+void ruby_sysinit(int *argc, char ***argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Calls ruby_setup() and check error.</div><div class='add'>+ *</div><div class='add'>+ * Prints errors and calls exit(3) if an error occurred.</div><div class='add'>+ */</div><div class='add'>+void ruby_init(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Processes command line arguments and compiles the Ruby source to execute.</div><div class='add'>+ *</div><div class='add'>+ * This function does:</div><div class='add'>+ *   - Processes the given command line flags and arguments for `ruby(1)`</div><div class='add'>+ *   - Compiles the source code from the given argument, `-e` or `stdin`, and</div><div class='add'>+ *   - Returns the compiled source as an opaque pointer to an internal data</div><div class='add'>+ *     structure</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc  Process main's `argc`.</div><div class='add'>+ * @param[in]  argv  Process main's `argv`.</div><div class='add'>+ * @return     An opaque pointer to the compiled source or an internal special</div><div class='add'>+ *             value.  Pass it to ruby_executable_node() to detect which.</div><div class='add'>+ * @see        ruby_executable_node</div><div class='add'>+ */</div><div class='add'>+void* ruby_options(int argc, char** argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks the return value of ruby_options().</div><div class='add'>+ *</div><div class='add'>+ * ruby_options() sometimes returns a special value to indicate this process</div><div class='add'>+ * should immediately exit. This function checks if the case. Also stores the</div><div class='add'>+ * exit status that the caller have to pass to exit(3) into `*status`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   n          A return value of ruby_options().</div><div class='add'>+ * @param[out]  status     Pointer to the exit status of this process.</div><div class='add'>+ * @retval      0          The given value is such a special value.</div><div class='add'>+ * @retval      otherwise  The given opaque pointer is actually a compiled</div><div class='add'>+ *                         source.</div><div class='add'>+ */</div><div class='add'>+int ruby_executable_node(void *n, int *status);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Runs the given compiled source and exits this process.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n             Opaque "node" pointer.</div><div class='add'>+ * @retval     EXIT_SUCCESS  Successfully run the source.</div><div class='add'>+ * @retval     EXIT_FAILURE  An error occurred.</div><div class='add'>+ */</div><div class='add'>+int ruby_run_node(void *n);</div><div class='add'>+</div><div class='add'>+/* version.c */</div><div class='add'>+/** Prints the version information of the CRuby interpreter to stdout. */</div><div class='add'>+void ruby_show_version(void);</div><div class='add'>+</div><div class='add'>+#ifndef ruby_show_copyright</div><div class='add'>+/** Prints the copyright notice of the CRuby interpreter to stdout. */</div><div class='add'>+void ruby_show_copyright(void);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * A convenience macro to call ruby_init_stack().</div><div class='add'>+ * Must be placed just after variable declarations.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_INIT_STACK \</div><div class='add'>+    VALUE variable_in_this_stack_frame; \</div><div class='add'>+    ruby_init_stack(&amp;variable_in_this_stack_frame);</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Set stack bottom of Ruby implementation.</div><div class='add'>+ *</div><div class='add'>+ * You  must   call  this   function  before  any   heap  allocation   by  Ruby</div><div class='add'>+ * implementation.  Or GC will break living objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  addr  A pointer somewhere on the stack, near its bottom.</div><div class='add'>+ */</div><div class='add'>+void ruby_init_stack(volatile VALUE *addr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Initializes the VM and builtin libraries.</div><div class='add'>+ *</div><div class='add'>+ * @retval  0          Initialization succeeded.</div><div class='add'>+ * @retval  otherwise  An error occurred.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Though not  a part of our  public API, the return  value is in fact  an enum</div><div class='add'>+ * ruby_tag_type.  You can  see the potential "otherwise" values  by looking at</div><div class='add'>+ * vm_core.h.</div><div class='add'>+ */</div><div class='add'>+int ruby_setup(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructs the VM.</div><div class='add'>+ *</div><div class='add'>+ * Runs the VM finalization processes as well as ruby_finalize(), and frees</div><div class='add'>+ * resources used by the VM.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ex  Default value to the return value.</div><div class='add'>+ * @retval     EXIT_FAILURE  An error occurred.</div><div class='add'>+ * @retval     ex            Successful cleanup.</div><div class='add'>+ * @note       This function does not raise any exception.</div><div class='add'>+ */</div><div class='add'>+int ruby_cleanup(int ex);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Runs the VM finalization processes.</div><div class='add'>+ *</div><div class='add'>+ * `END{}` and procs registered by `Kernel.#at_exit` are executed here. See the</div><div class='add'>+ * Ruby language spec for more details.</div><div class='add'>+ *</div><div class='add'>+ * @note This function is allowed to raise an exception if an error occurred.</div><div class='add'>+ */</div><div class='add'>+void ruby_finalize(void);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/** Calls ruby_cleanup() and exits the process. */</div><div class='add'>+void ruby_stop(int);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Checks for stack overflow.</div><div class='add'>+ *</div><div class='add'>+ * @retval  true   NG machine stack is about to overflow.</div><div class='add'>+ * @retval  false  OK there still is a room in the stack.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Does anybody use it?  So far @shyouhei have never seen any actual use-case.</div><div class='add'>+ */</div><div class='add'>+int ruby_stack_check(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries what Ruby thinks is the machine stack.  Ruby manages a region of</div><div class='add'>+ * memory.  It calls that area the "machine stack".  By calling this function,</div><div class='add'>+ * in spite of its name, you can obtain both one end of the stack and its</div><div class='add'>+ * length at once.  Which means you can know the entire region.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  topnotch  On return the pointer points to the upmost address of</div><div class='add'>+ *                        the macihne stack that Ruby knows.</div><div class='add'>+ * @return      Length of the machine stack that Ruby knows.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Does anybody use it?  @shyouhei is quite skeptical if this is useful outside</div><div class='add'>+ * of the VM.  Maybe it was a wrong idea to expose this API to 3rd parties.</div><div class='add'>+ */</div><div class='add'>+size_t ruby_stack_length(VALUE **topnotch);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to ruby_run_node(), except it returns an opaque execution status.</div><div class='add'>+ * You can pass it to rb_cleanup().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n          Opaque "node" pointer.</div><div class='add'>+ * @retval     0          Successful end-of-execution.</div><div class='add'>+ * @retval     otherwise  An error occurred.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Though not  a part of our  public API, the return  value is in fact  an enum</div><div class='add'>+ * ruby_tag_type.  You can  see the potential "otherwise" values  by looking at</div><div class='add'>+ * vm_core.h.</div><div class='add'>+ */</div><div class='add'>+int ruby_exec_node(void *n);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Sets the current script name to this value.</div><div class='add'>+ *</div><div class='add'>+ * This is similar to `$0 = name` in Ruby level but also affects</div><div class='add'>+ * `Method#location` and others.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name  File name to set.</div><div class='add'>+ */</div><div class='add'>+void ruby_script(const char* name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to ruby_script(), except it takes the name as a Ruby String</div><div class='add'>+ * instance.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name  File name to set.</div><div class='add'>+ */</div><div class='add'>+void ruby_set_script_name(VALUE name);</div><div class='add'>+</div><div class='add'>+/** Defines built-in variables */</div><div class='add'>+void ruby_prog_init(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Sets argv that ruby understands.  Your program might have its own command</div><div class='add'>+ * line parameters etc.  Handle them as you wish, and pass remaining parts of</div><div class='add'>+ * argv here.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc  Number of elements of `argv`.</div><div class='add'>+ * @param[in]  argv  Command line arguments.</div><div class='add'>+ */</div><div class='add'>+void ruby_set_argv(int argc, char **argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to ruby_options(), except it raises ruby-level exceptions on</div><div class='add'>+ * failure.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  argc  Process main's `argc`.</div><div class='add'>+ * @param[in]  argv  Process main's `argv`.</div><div class='add'>+ * @return     An opaque "node" pointer.</div><div class='add'>+ */</div><div class='add'>+void *ruby_process_options(int argc, char **argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Sets up `$LOAD_PATH`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei guesses this has to be called  at very later stage, at least after</div><div class='add'>+ * the birth of object system.  But is not exactly sure when.</div><div class='add'>+ */</div><div class='add'>+void ruby_init_loadpath(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Appends the given path to the end of the load path.</div><div class='add'>+ *</div><div class='add'>+ * @pre        ruby_init_loadpath() must be done beforehand.</div><div class='add'>+ * @param[in]  path  The path you want to push to the load path.</div><div class='add'>+ */</div><div class='add'>+void ruby_incpush(const char *path);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Clear signal handlers.</div><div class='add'>+ *</div><div class='add'>+ * Ruby installs its own signal handler (apart from those which user scripts</div><div class='add'>+ * set).  This is to clear that.  Must be called when the ruby part terminates,</div><div class='add'>+ * before switching to your program's own logic.</div><div class='add'>+ */</div><div class='add'>+void ruby_sig_finalize(void);</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_INTERPRETER_H */</div><div class='head'>diff --git a/include/ruby/internal/iterator.h b/include/ruby/internal/iterator.h<br/>new file mode 100644<br/>index 0000000000..5f706460f8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/iterator.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/iterator.h</a></div><div class='hunk'>@@ -0,0 +1,513 @@</div><div class='add'>+#ifndef RBIMPL_ITERATOR_H                            /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_ITERATOR_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Block related APIs.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/deprecated.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define RB_BLOCK_CALL_FUNC_STRICT 1</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_BLOCK_CALL_FUNC_TAKES_BLOCKARG 1</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shim for block function parameters.  Historically ::rb_block_call_func_t had</div><div class='add'>+ * only two parameters.  Over time it evolved  to have much more than that.  By</div><div class='add'>+ * using this macro you can absorb such API differences.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * // This works since 2.1.0</div><div class='add'>+ * VALUE my_own_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(y, c));</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+#define RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg) \</div><div class='add'>+    VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the  type of a function that the  interpreter expect for C-backended</div><div class='add'>+ * blocks.  Blocks are  often written in Ruby.  But C  extensions might want to</div><div class='add'>+ * have their own blocks.  In order to  do so authors have to create a separate</div><div class='add'>+ * C function of this type, and pass its pointer to rb_block_call().</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * VALUE</div><div class='add'>+ * my_own_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(y, c))</div><div class='add'>+ * {</div><div class='add'>+ *     const auto plus = rb_intern("+");</div><div class='add'>+ *     return rb_funcall(c, plus, 1, y);</div><div class='add'>+ * }</div><div class='add'>+ *</div><div class='add'>+ * VALUE</div><div class='add'>+ * my_own_method(VALUE self)</div><div class='add'>+ * {</div><div class='add'>+ *     const auto each = rb_intern("each");</div><div class='add'>+ *     return rb_block_call(self, each, 0, 0, my_own_iterator, self);</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+typedef VALUE rb_block_call_func(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg));</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shorthand type that represents an iterator-written-in-C function pointer.</div><div class='add'>+ */</div><div class='add'>+typedef rb_block_call_func *rb_block_call_func_t;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is a shorthand of calling `obj.each`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  The receiver.</div><div class='add'>+ * @return     What `obj.each` returns.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Does anyone still need it?  This API  was to use with rb_iterate(), which is</div><div class='add'>+ * marked deprecated (see below).  Old idiom to call an iterator was:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * VALUE recv;</div><div class='add'>+ * VALUE iter_func(ANYARGS);</div><div class='add'>+ * VALUE iter_data;</div><div class='add'>+ * rb_iterate(rb_each, recv, iter_func, iter_data);</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+VALUE rb_each(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Yields the block.  In Ruby there is  a concept called a block.  You can pass</div><div class='add'>+ * one to a  method.  In a method, when  called with a block, you  can yield it</div><div class='add'>+ * using this function.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * VALUE</div><div class='add'>+ * iterate(VALUE self)</div><div class='add'>+ * {</div><div class='add'>+ *     extern int get_n(VALUE);</div><div class='add'>+ *     extern VALUE get_v(VALUE, VALUE);</div><div class='add'>+ *     const auto n = get_n(self);</div><div class='add'>+ *</div><div class='add'>+ *     for (int i=0; i&lt;n; i++) {</div><div class='add'>+ *         auto v = get_v(self, i);</div><div class='add'>+ *</div><div class='add'>+ *         rb_yield(v);</div><div class='add'>+ *     }</div><div class='add'>+ *     return self;</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  val                 Passed to the block.</div><div class='add'>+ * @exception  rb_eLocalJumpError  There is no block given.</div><div class='add'>+ * @return     Evaluated value of the given block.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_yield(VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_yield(),  except it takes variadic number  of parameters and</div><div class='add'>+ * pass them to the block.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n                   Number of parameters.</div><div class='add'>+ * @param[in]  ...                 List of arguments passed to the block.</div><div class='add'>+ * @exception  rb_eLocalJumpError  There is no block given.</div><div class='add'>+ * @return     Evaluated value of the given block.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_yield_values(int n, ...);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_yield_values(),  except it takes the parameters as a C array</div><div class='add'>+ * instead of variadic arguments.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n                   Number of parameters.</div><div class='add'>+ * @param[in]  argv                List of arguments passed to the block.</div><div class='add'>+ * @exception  rb_eLocalJumpError  There is no block given.</div><div class='add'>+ * @return     Evaluated value of the given block.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_yield_values2(int n, const VALUE *argv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_yield_values2(), except you  can specify how to  handle the</div><div class='add'>+ * last element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  n                   Number of parameters.</div><div class='add'>+ * @param[in]  argv                List of arguments passed to the block.</div><div class='add'>+ * @param[in]  kw_splat            Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS              `ary`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS            `ary`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS     makes no sense here.</div><div class='add'>+ * @exception  rb_eLocalJumpError  There is no block given.</div><div class='add'>+ * @return     Evaluated value of the given block.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_yield_values_kw(int n, const VALUE *argv, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_yield_values(), except it  splats an array to  generate the</div><div class='add'>+ * list of parameters.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary                 Array to splat.</div><div class='add'>+ * @exception  rb_eLocalJumpError  There is no block given.</div><div class='add'>+ * @return     Evaluated value of the given block.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_yield_splat(VALUE ary);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_yield_splat(), except you can specify how to handle the last</div><div class='add'>+ * element of the given array.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ary                 Array to splat.</div><div class='add'>+ * @param[in]  kw_splat            Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS              `ary`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS            `ary`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS     makes no sense here.</div><div class='add'>+ * @exception  rb_eLocalJumpError  There is no block given.</div><div class='add'>+ * @return     Evaluated value of the given block.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_yield_splat_kw(VALUE ary, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Pass a passed block.</div><div class='add'>+ *</div><div class='add'>+ * Sometimes you  want to "pass" a  block form one method  to another.  Suppose</div><div class='add'>+ * you have this Ruby method `foo`:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * def foo(x, y)</div><div class='add'>+ *   x.open(y) do |*z|</div><div class='add'>+ *     yield(*z)</div><div class='add'>+ *   end</div><div class='add'>+ * end</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * And  suppose you  want  to  translate this  into  C.  Then  rb_yield_block()</div><div class='add'>+ * function is usable in this situation.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * VALUE</div><div class='add'>+ * foo_translated_into_C(VALUE self, VALUE x, VALUE y)</div><div class='add'>+ * {</div><div class='add'>+ *     const auto open = rb_intern("open");</div><div class='add'>+ *</div><div class='add'>+ *     return rb_block_call(x, open, 1, &amp;y, rb_yield_block, Qfalse);</div><div class='add'>+ *     //                                   ^^^^^^^^^^^^^^  Here.</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @see rb_funcall_passing_block</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei  honestly  doesn't understand  why  this  is needed,  given  there</div><div class='add'>+ * already was rb_funcall_passing_block()  at the time it  was implemented.  If</div><div class='add'>+ * somebody knows its raison d'etre, please improve the document :FIXME:</div><div class='add'>+ */</div><div class='add'>+VALUE rb_yield_block(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg)); /* rb_block_call_func */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Determines if the current method is given a keyword argument.</div><div class='add'>+ *</div><div class='add'>+ * @retval  false  No keyword argument is given.</div><div class='add'>+ * @retval  true   Keyword argument(s) are given.</div><div class='add'>+ * @ingroup defmethod</div><div class='add'>+ */</div><div class='add'>+int rb_keyword_given_p(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Determines if the current method is given a block.</div><div class='add'>+ *</div><div class='add'>+ * @retval  false  No block is given.</div><div class='add'>+ * @retval  true   A block is given.</div><div class='add'>+ * @ingroup defmethod</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function should have returned a bool.   But at the time it was designed</div><div class='add'>+ * the project was entirely written in K&amp;R C.</div><div class='add'>+ */</div><div class='add'>+int rb_block_given_p(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Declares that the current method needs a block.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eLocalJumpError  No block given.</div><div class='add'>+ * @ingroup    defmethod</div><div class='add'>+ */</div><div class='add'>+void rb_need_block(void);</div><div class='add'>+</div><div class='add'>+#ifndef __cplusplus</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("by: rb_block_call since 1.9"))</div><div class='add'>+#endif</div><div class='add'>+/**</div><div class='add'>+ * Old way to iterate a block.</div><div class='add'>+ *</div><div class='add'>+ * @deprecated     This is an old API.  Use rb_block_call() instead.</div><div class='add'>+ * @warning        The passed  function must at  least once call a  ruby method</div><div class='add'>+ *                 (to handle interrupts etc.)</div><div class='add'>+ * @param[in]      func1  A function that could yield a value.</div><div class='add'>+ * @param[in,out]  data1  Passed to `func1`</div><div class='add'>+ * @param[in]      proc   A function acts as a block.</div><div class='add'>+ * @param[in,out]  data2  Passed to `proc` as the data2 parameter.</div><div class='add'>+ * @return         What `func1` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_iterate(VALUE (*func1)(VALUE), VALUE data1, rb_block_call_func_t proc, VALUE data2);</div><div class='add'>+</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+namespace ruby {</div><div class='add'>+namespace backward {</div><div class='add'>+/**</div><div class='add'>+ * Old way to iterate a block.</div><div class='add'>+ *</div><div class='add'>+ * @deprecated     This is an old API.  Use rb_block_call() instead.</div><div class='add'>+ * @warning        The passed  function must at  least once call a  ruby method</div><div class='add'>+ *                 (to handle interrupts etc.)</div><div class='add'>+ * @param[in]      iter   A function that could yield a value.</div><div class='add'>+ * @param[in,out]  data1  Passed to `func1`</div><div class='add'>+ * @param[in]      bl     A function acts as a block.</div><div class='add'>+ * @param[in,out]  data2  Passed to `proc` as the data2 parameter.</div><div class='add'>+ * @return         What `func1` returns.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_iterate_deprecated(VALUE (*iter)(VALUE), VALUE data1, rb_block_call_func_t bl, VALUE data2)</div><div class='add'>+{</div><div class='add'>+    return ::rb_iterate(iter, data1, bl, data2);</div><div class='add'>+}}}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("by: rb_block_call since 1.9"))</div><div class='add'>+VALUE rb_iterate(VALUE (*func1)(VALUE), VALUE data1, rb_block_call_func_t proc, VALUE data2);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_funcallv(), except it  additionally passes a function  as a</div><div class='add'>+ * block.  When the  method yields, `proc` is called with  the yielded value as</div><div class='add'>+ * its first  argument, and  `data2` as  the second.   Yielded values  would be</div><div class='add'>+ * packed into an array if multiple values are yielded at once.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  obj    Receiver.</div><div class='add'>+ * @param[in]      mid    Method signature.</div><div class='add'>+ * @param[in]      argc   Number of arguments.</div><div class='add'>+ * @param[in]      argv   Arguments passed to `obj.mid`.</div><div class='add'>+ * @param[in]      proc   A function acts as a block.</div><div class='add'>+ * @param[in,out]  data2  Passed to `proc` as the data2 parameter.</div><div class='add'>+ * @return         What `obj.mid` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_block_call(VALUE obj, ID mid, int argc, const VALUE *argv, rb_block_call_func_t proc, VALUE data2);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_funcallv_kw(), except it additionally passes a function as a</div><div class='add'>+ * block.   It can  also be  seen as  a routine  identical to  rb_block_call(),</div><div class='add'>+ * except it handles keyword-ness of `argv[argc-1]`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  obj       Receiver.</div><div class='add'>+ * @param[in]      mid       Method signature.</div><div class='add'>+ * @param[in]      argc      Number of arguments including the keywords.</div><div class='add'>+ * @param[in]      argv      Arguments passed to `obj.mid`.</div><div class='add'>+ * @param[in]      proc      A function acts as a block.</div><div class='add'>+ * @param[in,out]  data2     Passed to `proc` as the data2 parameter.</div><div class='add'>+ * @param[in]      kw_splat  Handling of keyword parameters:</div><div class='add'>+ *   - RB_NO_KEYWORDS           `argv`'s last is not a keyword argument.</div><div class='add'>+ *   - RB_PASS_KEYWORDS         `argv`'s last is a keyword argument.</div><div class='add'>+ *   - RB_PASS_CALLED_KEYWORDS  it depends if there is a passed block.</div><div class='add'>+ * @return         What `obj.mid` returns.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_block_call_kw(VALUE obj, ID mid, int argc, const VALUE *argv, rb_block_call_func_t proc, VALUE data2, int kw_splat);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_rescue2(),  except it  does not  take a  list of  exception</div><div class='add'>+ * classes.  This is a shorthand of:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * rb_rescue2(b_proc, data1, r_proc, data2, rb_eStandardError, (VALUE)0);</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      b_proc  A function which potentially raises an exception.</div><div class='add'>+ * @param[in,out]  data1   Passed to `b_proc`.</div><div class='add'>+ * @param[in]      r_proc  A function which rescues an exception in `b_proc`.</div><div class='add'>+ * @param[in,out]  data2   The first argument of `r_proc`.</div><div class='add'>+ * @return         The return value of `b_proc`  if no exception occurs, or the</div><div class='add'>+ *                 return value of `r_proc` otherwise.</div><div class='add'>+ * @see            rb_rescue</div><div class='add'>+ * @see            rb_ensure</div><div class='add'>+ * @see            rb_protect</div><div class='add'>+ * @ingroup        exception</div><div class='add'>+ */</div><div class='add'>+VALUE rb_rescue(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * An equivalent of `rescue` clause.</div><div class='add'>+ *</div><div class='add'>+ * First  it calls  the function  `b_proc` with  `data1` as  the argument.   If</div><div class='add'>+ * nothing is thrown the function happily returns the return value of `b_proc`.</div><div class='add'>+ * When `b_proc` raises an exception, and the exception is a kind of one of the</div><div class='add'>+ * given  exception classes,  it  then  calls `r_proc`  with  `data2` and  that</div><div class='add'>+ * exception.  If the exception does not match any of them, it propagates.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      b_proc  A function which potentially raises an exception.</div><div class='add'>+ * @param[in,out]  data1   Passed to `b_proc`.</div><div class='add'>+ * @param[in]      r_proc  A function which rescues an exception in `b_proc`.</div><div class='add'>+ * @param[in,out]  data2   The first argument of `r_proc`.</div><div class='add'>+ * @param[in]      ...     1 or  more exception classes.  Must be terminated by</div><div class='add'>+ *                         `(VALUE)0`</div><div class='add'>+ * @return         The return value of `b_proc`  if no exception occurs, or the</div><div class='add'>+ *                 return value of `r_proc` otherwise.</div><div class='add'>+ * @see            rb_rescue</div><div class='add'>+ * @see            rb_ensure</div><div class='add'>+ * @see            rb_protect</div><div class='add'>+ * @ingroup        exception</div><div class='add'>+ */</div><div class='add'>+VALUE rb_rescue2(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2, ...);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_rescue2(), except  it takes  `va_list` instead  of variadic</div><div class='add'>+ * number  of  arguments.   This  is  exposed to  3rd  parties  because  inline</div><div class='add'>+ * functions use it.  Basically you don't have to bother.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      b_proc  A function which potentially raises an exception.</div><div class='add'>+ * @param[in,out]  data1   Passed to `b_proc`.</div><div class='add'>+ * @param[in]      r_proc  A function which rescues an exception in `b_proc`.</div><div class='add'>+ * @param[in,out]  data2   The first argument of `r_proc`.</div><div class='add'>+ * @param[in]      ap      1 or  more exception classes.  Must be terminated by</div><div class='add'>+ *                         `(VALUE)0`</div><div class='add'>+ * @return         The return value of `b_proc`  if no exception occurs, or the</div><div class='add'>+ *                 return value of `r_proc` otherwise.</div><div class='add'>+ * @see            rb_rescue</div><div class='add'>+ * @see            rb_ensure</div><div class='add'>+ * @see            rb_protect</div><div class='add'>+ * @ingroup        exception</div><div class='add'>+ */</div><div class='add'>+VALUE rb_vrescue2(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2, va_list ap);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * An equivalent to `ensure` clause.   Calls the function `b_proc` with `data1`</div><div class='add'>+ * as the argument, then calls `e_proc` with `data2` when execution terminated.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      b_proc     A function representing begin clause.</div><div class='add'>+ * @param[in,out]  data1      Passed to `b_proc`.</div><div class='add'>+ * @param[in]      e_proc     A function representing ensure clause.</div><div class='add'>+ * @param[in,out]  data2      Passed to `e_proc`.</div><div class='add'>+ * @retval         RUBY_Qnil  exception occurred inside of `b_proc`.</div><div class='add'>+ * @retval         otherwise  The return value of `b_proc`.</div><div class='add'>+ * @see            rb_rescue</div><div class='add'>+ * @see            rb_rescue2</div><div class='add'>+ * @see            rb_protect</div><div class='add'>+ * @ingroup        exception</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ensure(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*e_proc)(VALUE), VALUE data2);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Executes the passed block and catches values thrown from inside of it.</div><div class='add'>+ *</div><div class='add'>+ * In case  the block does  not contain any  throw`, this function  returns the</div><div class='add'>+ * value of the last expression evaluated.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * VALUE</div><div class='add'>+ * iter(RB_BLOCK_CALL_FUNC_ARGLIST(yielded, callback))</div><div class='add'>+ * {</div><div class='add'>+ *     return INT2FIX(123);</div><div class='add'>+ * }</div><div class='add'>+ *</div><div class='add'>+ * VALUE</div><div class='add'>+ * method(VALUE self)</div><div class='add'>+ * {</div><div class='add'>+ *     return rb_catch("tag", iter, Qnil); // returns 123</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * In case there do exist `throw`, Ruby searches up its execution context for a</div><div class='add'>+ * `catch` block.   When a matching catch  is found, the block  stops executing</div><div class='add'>+ * and returns that thrown value instead.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * VALUE</div><div class='add'>+ * iter(RB_BLOCK_CALL_FUNC_ARGLIST(yielded, callback))</div><div class='add'>+ * {</div><div class='add'>+ *     rb_throw("tag", 456);</div><div class='add'>+ *     return INT2FIX(123);</div><div class='add'>+ * }</div><div class='add'>+ *</div><div class='add'>+ * VALUE</div><div class='add'>+ * method(VALUE self)</div><div class='add'>+ * {</div><div class='add'>+ *     return rb_catch("tag", iter, Qnil); // returns 456</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      tag   Arbitrary tag string.</div><div class='add'>+ * @param[in]      func  Function pointer that acts as a block.</div><div class='add'>+ * @param[in,out]  data  Extra parameter passed to `func`.</div><div class='add'>+ * @return         Either caught value for `tag`, or the return value of `func`</div><div class='add'>+ *                 if nothing is thrown.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_catch(const char *tag, rb_block_call_func_t func, VALUE data);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_catch(), except it catches arbitrary Ruby objects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      tag   Arbitrary tag object.</div><div class='add'>+ * @param[in]      func  Function pointer that acts as a block.</div><div class='add'>+ * @param[in,out]  data  Extra parameter passed to `func`.</div><div class='add'>+ * @return         Either caught value for `tag`, or the return value of `func`</div><div class='add'>+ *                 if nothing is thrown.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_catch_obj(VALUE tag, rb_block_call_func_t func, VALUE data);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Transfers control to the end of  the active `catch` block waiting for `tag`.</div><div class='add'>+ * Raises  rb_eUncughtThrow if  there is  no `catch`  block for  the tag.   The</div><div class='add'>+ * second  parameter supplies  a  return  value for  the  `catch` block,  which</div><div class='add'>+ * otherwise defaults to ::RUBY_Qnil.  For examples, see rb_catch().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  tag               Tag string.</div><div class='add'>+ * @param[in]  val               Value to throw.</div><div class='add'>+ * @exception  rb_eUncughtThrow  There is no corresponding `catch` clause.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_throw(const char *tag, VALUE val);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_throw(), except it allows  arbitrary Ruby object to become a</div><div class='add'>+ * tag.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  tag               Arbitrary object.</div><div class='add'>+ * @param[in]  val               Value to throw.</div><div class='add'>+ * @exception  rb_eUncughtThrow  There is no corresponding `catch` clause.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_throw_obj(VALUE tag, VALUE val);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_ITERATOR_H */</div><div class='head'>diff --git a/include/ruby/internal/memory.h b/include/ruby/internal/memory.h<br/>new file mode 100644<br/>index 0000000000..6884db195d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/memory.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/memory.h</a></div><div class='hunk'>@@ -0,0 +1,666 @@</div><div class='add'>+#ifndef RBIMPL_MEMORY_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_MEMORY_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Memory management stuff.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STRING_H</div><div class='add'>+# include &lt;string.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STDINT_H</div><div class='add'>+# include &lt;stdint.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_ALLOCA_H</div><div class='add'>+# include &lt;alloca.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(_MSC_VER) &amp;&amp; defined(_WIN64)</div><div class='add'>+# include &lt;intrin.h&gt;</div><div class='add'>+# pragma intrinsic(_umul128)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/alloc_size.h"</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/constexpr.h"</div><div class='add'>+#include "ruby/internal/attr/noalias.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/attr/restrict.h"</div><div class='add'>+#include "ruby/internal/attr/returns_nonnull.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/has/builtin.h"</div><div class='add'>+#include "ruby/internal/stdalign.h"</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+#include "ruby/internal/xmalloc.h"</div><div class='add'>+#include "ruby/backward/2/limits.h"</div><div class='add'>+#include "ruby/backward/2/long_long.h"</div><div class='add'>+#include "ruby/backward/2/assume.h"</div><div class='add'>+#include "ruby/defines.h"</div><div class='add'>+</div><div class='add'>+/** @cond INTENAL_MACRO  */</div><div class='add'>+</div><div class='add'>+/* Make alloca work the best possible way.  */</div><div class='add'>+#if defined(alloca)</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif RBIMPL_HAS_BUILTIN(__builtin_alloca)</div><div class='add'>+# define alloca __builtin_alloca</div><div class='add'>+#elif defined(_AIX)</div><div class='add'>+# pragma alloca</div><div class='add'>+#elif defined(__cplusplus)</div><div class='add'>+extern "C" void *alloca(size_t);</div><div class='add'>+#else</div><div class='add'>+extern void *alloca();</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** @endcond  */</div><div class='add'>+</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Type that is as twice wider as  size_t.  This is an implementation detail of</div><div class='add'>+ * rb_mul_size_overflow().  People should not use it.   This is not a good name</div><div class='add'>+ * either.</div><div class='add'>+ */</div><div class='add'>+typedef uint128_t DSIZE_T;</div><div class='add'>+#elif defined(HAVE_INT128_T) &amp;&amp; SIZEOF_SIZE_T &lt;= 8</div><div class='add'>+# define DSIZE_T uint128_t</div><div class='add'>+#elif SIZEOF_SIZE_T * 2 &lt;= SIZEOF_LONG_LONG</div><div class='add'>+# define DSIZE_T unsigned LONG_LONG</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Maximum  possible  number  of  bytes  that  #RB_ALLOCV  can  allocate  using</div><div class='add'>+ * `alloca`.  Anything  beyond this  is allocated  using rb_alloc_tmp_buffer().</div><div class='add'>+ * This selection is transparent to users.  People don't have to bother.</div><div class='add'>+ */</div><div class='add'>+#ifdef C_ALLOCA</div><div class='add'>+# define RUBY_ALLOCV_LIMIT 0</div><div class='add'>+#else</div><div class='add'>+# define RUBY_ALLOCV_LIMIT 1024</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Prevents premature  destruction of local objects.   Ruby's garbage collector</div><div class='add'>+ * is conservative; it  scans the C level machine stack  as well.  Possible in-</div><div class='add'>+ * use Ruby  objects must  remain visible  on stack, to  be properly  marked as</div><div class='add'>+ * such.  However  contemporary C  compilers do not  interface well  with this.</div><div class='add'>+ * Consider the following example:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * auto s = rb_str_new_cstr(" world");</div><div class='add'>+ * auto sptr = RSTRING_PTR(s);</div><div class='add'>+ * auto t = rb_str_new_cstr("hello,"); // Possible GC invocation</div><div class='add'>+ * auto u = rb_str_cat_cstr(t, sptr);</div><div class='add'>+ *</div><div class='add'>+ * RB_GC_GUARD(s); // ensure `s` (and thus `sptr`) do not get GC-ed</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * Here, without the #RB_GC_GUARD, the last use of `s` is _before_ the last use</div><div class='add'>+ * of `sptr`.  Compilers  could thus think `s` and `t`  are allowed to overlap.</div><div class='add'>+ * That would eliminate `s`  from the stack, while `sptr` is  still in use.  If</div><div class='add'>+ * our GC  ran at  that very moment,  `s` gets swept  out, which  also destroys</div><div class='add'>+ * `sptr`.  Boom!  You got a SEGV.</div><div class='add'>+ *</div><div class='add'>+ * In order  to prevent this scenario  #RB_GC_GUARD must be placed  _after_ the</div><div class='add'>+ * last use of `sptr`.  Placing  #RB_GC_GUARD before dereferencing `sptr` would</div><div class='add'>+ * be of no use.</div><div class='add'>+ *</div><div class='add'>+ * #RB_GC_GUARD would  not be  necessary at  all in the  above example  if non-</div><div class='add'>+ * inlined  function  calls are  made  on  the  `s`  variable after  `sptr`  is</div><div class='add'>+ * dereferenced.  Thus, in  the above example, calling  any un-inlined function</div><div class='add'>+ * on `s`  such as `rb_str_modify(s);`  will ensure `s`  stays on the  stack or</div><div class='add'>+ * register to prevent a GC invocation from prematurely freeing it.</div><div class='add'>+ *</div><div class='add'>+ * Using the #RB_GC_GUARD  macro is preferable to using  the `volatile` keyword</div><div class='add'>+ * in C.  #RB_GC_GUARD has the following advantages:</div><div class='add'>+ *</div><div class='add'>+ *  - the intent of the macro use is clear.</div><div class='add'>+ *</div><div class='add'>+ *  - #RB_GC_GUARD only affects its call  site.  OTOH `volatile` generates some</div><div class='add'>+ *    extra code every time the variable is used, hurting optimisation.</div><div class='add'>+ *</div><div class='add'>+ *  - `volatile` implementations  may be  buggy/inconsistent in  some compilers</div><div class='add'>+ *    and   architectures.     #RB_GC_GUARD   is   customisable    for   broken</div><div class='add'>+ *    systems/compilers without negatively affecting other systems.</div><div class='add'>+ *</div><div class='add'>+ *  - C++  since C++20  deprecates  `volatile`.  If  you  write your  extension</div><div class='add'>+ *    library in that language there is no escape but to use this macro.</div><div class='add'>+ *</div><div class='add'>+ * @param  v  A variable of ::VALUE type.</div><div class='add'>+ * @post   `v` is still alive.</div><div class='add'>+ */</div><div class='add'>+#ifdef __GNUC__</div><div class='add'>+#define RB_GC_GUARD(v) \</div><div class='add'>+    (*__extension__ ({ \</div><div class='add'>+        volatile VALUE *rb_gc_guarded_ptr = &amp;(v); \</div><div class='add'>+        __asm__("" : : "m"(rb_gc_guarded_ptr)); \</div><div class='add'>+        rb_gc_guarded_ptr; \</div><div class='add'>+    }))</div><div class='add'>+#elif defined _MSC_VER</div><div class='add'>+#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr(&amp;(v)))</div><div class='add'>+#else</div><div class='add'>+#define HAVE_RB_GC_GUARDED_PTR_VAL 1</div><div class='add'>+#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr_val(&amp;(v),(v)))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* Casts needed because void* is NOT compatible with others in C++. */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient macro that allocates an array of n elements.</div><div class='add'>+ *</div><div class='add'>+ * @param      type            Type of array elements.</div><div class='add'>+ * @param      n               Length of the array.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left for allocation.</div><div class='add'>+ * @exception  rb_eArgError    Integer overflow trying  to calculate the length</div><div class='add'>+ *                             of continuous  memory region of `n`  elements of</div><div class='add'>+ *                             `type`.</div><div class='add'>+ * @return     Storage  instance  that  is  capable of  storing  at  least  `n`</div><div class='add'>+ *             elements of type `type`.</div><div class='add'>+ * @note       It doesn't return NULL, even when `n` is zero.</div><div class='add'>+ * @warning    The return  value shall  be invalidated  exactly once  by either</div><div class='add'>+ *             ruby_xfree(),  ruby_xrealloc(), or  ruby_xrealloc2().   It is  a</div><div class='add'>+ *             failure to pass it to system free(), because the system and Ruby</div><div class='add'>+ *             might or might not share the same malloc() implementation.</div><div class='add'>+ */</div><div class='add'>+#define RB_ALLOC_N(type,n)  RBIMPL_CAST((type *)ruby_xmalloc2((n), sizeof(type)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shorthand of #RB_ALLOC_N with `n=1`.</div><div class='add'>+ *</div><div class='add'>+ * @param      type            Type of allocation.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left for allocation.</div><div class='add'>+ * @return     Storage instance that can hold an `type` object.</div><div class='add'>+ * @note       It doesn't return NULL.</div><div class='add'>+ * @warning    The return  value shall  be invalidated  exactly once  by either</div><div class='add'>+ *             ruby_xfree(),  ruby_xrealloc(), or  ruby_xrealloc2().   It is  a</div><div class='add'>+ *             failure to pass it to system free(), because the system and Ruby</div><div class='add'>+ *             might or might not share the same malloc() implementation.</div><div class='add'>+ */</div><div class='add'>+#define RB_ALLOC(type)      RBIMPL_CAST((type *)ruby_xmalloc(sizeof(type)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  #RB_ALLOC_N() but also  nullifies the allocated  region before</div><div class='add'>+ * returning.</div><div class='add'>+ *</div><div class='add'>+ * @param      type            Type of array elements.</div><div class='add'>+ * @param      n               Length of the array.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left for allocation.</div><div class='add'>+ * @exception  rb_eArgError    Integer overflow trying  to calculate the length</div><div class='add'>+ *                             of continuous  memory region of `n`  elements of</div><div class='add'>+ *                             `type`.</div><div class='add'>+ * @return     Storage  instance  that  is  capable of  storing  at  least  `n`</div><div class='add'>+ *             elements of type `type`.</div><div class='add'>+ * @post       Returned array is filled with zeros.</div><div class='add'>+ * @note       It doesn't return NULL, even when `n` is zero.</div><div class='add'>+ * @warning    The return  value shall  be invalidated  exactly once  by either</div><div class='add'>+ *             ruby_xfree(),  ruby_xrealloc(), or  ruby_xrealloc2().   It is  a</div><div class='add'>+ *             failure to pass it to system free(), because the system and Ruby</div><div class='add'>+ *             might or might not share the same malloc() implementation.</div><div class='add'>+ */</div><div class='add'>+#define RB_ZALLOC_N(type,n) RBIMPL_CAST((type *)ruby_xcalloc((n), sizeof(type)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Shorthand of #RB_ZALLOC_N with `n=1`.</div><div class='add'>+ *</div><div class='add'>+ * @param      type            Type of allocation.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left for allocation.</div><div class='add'>+ * @return     Storage instance that can hold an `type` object.</div><div class='add'>+ * @post       Returned object is filled with zeros.</div><div class='add'>+ * @note       It doesn't return NULL.</div><div class='add'>+ * @warning    The return  value shall  be invalidated  exactly once  by either</div><div class='add'>+ *             ruby_xfree(),  ruby_xrealloc(), or  ruby_xrealloc2().   It is  a</div><div class='add'>+ *             failure to pass it to system free(), because the system and Ruby</div><div class='add'>+ *             might or might not share the same malloc() implementation.</div><div class='add'>+ */</div><div class='add'>+#define RB_ZALLOC(type)     (RB_ZALLOC_N(type, 1))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Convenient macro that reallocates an array with a new size.</div><div class='add'>+ *</div><div class='add'>+ * @param      var             A variable of `type`,  which points to a storage</div><div class='add'>+ *                             instance  that  was   previously  returned  from</div><div class='add'>+ *                             either</div><div class='add'>+ *                               - ruby_xmalloc(),</div><div class='add'>+ *                               - ruby_xmalloc2(),</div><div class='add'>+ *                               - ruby_xcalloc(),</div><div class='add'>+ *                               - ruby_xrealloc(), or</div><div class='add'>+ *                               - ruby_xrealloc2().</div><div class='add'>+ * @param      type            Type of allocation.</div><div class='add'>+ * @param      n               Requested new size of each element.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left for  allocation.</div><div class='add'>+ * @exception  rb_eArgError    Integer overflow trying  to calculate the length</div><div class='add'>+ *                             of continuous  memory region of `n`  elements of</div><div class='add'>+ *                             `type`.</div><div class='add'>+ * @return     Storage  instance  that  is  capable of  storing  at  least  `n`</div><div class='add'>+ *             elements of type `type`.</div><div class='add'>+ * @pre        The passed variable must point to a valid live storage instance.</div><div class='add'>+ *             It is a  failure to pass a variable that  holds an already-freed</div><div class='add'>+ *             pointer.</div><div class='add'>+ * @note       It doesn't return NULL, even when `n` is zero.</div><div class='add'>+ * @warning    Do not  assume anything  on the alignment  of the  return value.</div><div class='add'>+ *             There is  no guarantee  that it  inherits the  passed argument's</div><div class='add'>+ *             one.</div><div class='add'>+ * @warning    The return  value shall  be invalidated  exactly once  by either</div><div class='add'>+ *             ruby_xfree(),  ruby_xrealloc(), or  ruby_xrealloc2().   It is  a</div><div class='add'>+ *             failure to pass it to system free(), because the system and Ruby</div><div class='add'>+ *             might or might not share the same malloc() implementation.</div><div class='add'>+ */</div><div class='add'>+#define RB_REALLOC_N(var,type,n) \</div><div class='add'>+    ((var) = RBIMPL_CAST((type *)ruby_xrealloc2((void *)(var), (n), sizeof(type))))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This  macro is  dangerous (does  not bother  stack overflow  at</div><div class='add'>+ *              all).  #RB_ALLOCV is the modern way to do the same thing.</div><div class='add'>+ * @param       type  Type of array elements.</div><div class='add'>+ * @param       n     Length of the array.</div><div class='add'>+ * @return      A pointer on stack.</div><div class='add'>+ */</div><div class='add'>+#define ALLOCA_N(type,n) \</div><div class='add'>+    RBIMPL_CAST((type *)alloca(rbimpl_size_mul_or_raise(sizeof(type), (n))))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RB_ALLOCV_N(), except that it allocates a number of bytes and</div><div class='add'>+ * returns a void* .</div><div class='add'>+ *</div><div class='add'>+ * @param   v  A variable to hold the just-in-case opaque Ruby object.</div><div class='add'>+ * @param   n  Size of allocation, in bytes.</div><div class='add'>+ * @return  A void pointer to `n` bytes storage.</div><div class='add'>+ * @note    `n` may be evaluated twice.</div><div class='add'>+ */</div><div class='add'>+#define RB_ALLOCV(v, n)        \</div><div class='add'>+    ((n) &lt; RUBY_ALLOCV_LIMIT ? \</div><div class='add'>+     ((v) = 0, alloca(n)) :    \</div><div class='add'>+     rb_alloc_tmp_buffer(&amp;(v), (n)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates a  memory region, possibly  on stack.   If the given  size exceeds</div><div class='add'>+ * #RUBY_ALLOCV_LIMIT, it allocates a dedicated  opaque ruby object instead and</div><div class='add'>+ * let our GC sweep that region after use.  Either way you can fire-and-forget.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * #include &lt;sys/types.h&gt;</div><div class='add'>+ *</div><div class='add'>+ * VALUE</div><div class='add'>+ * foo(int n)</div><div class='add'>+ * {</div><div class='add'>+ *     VALUE v;</div><div class='add'>+ *     auto ptr = RB_ALLOCV(struct tms, v, n);</div><div class='add'>+ *     ...</div><div class='add'>+ *     // no need to free `ptr`.</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * If you want to  be super-duper polite you can also  explicitly state the end</div><div class='add'>+ * of use of such memory region by calling #RB_ALLOCV_END().</div><div class='add'>+ *</div><div class='add'>+ * @param   type  The type of array elements.</div><div class='add'>+ * @param   v     A variable to hold the just-in-case opaque Ruby object.</div><div class='add'>+ * @param   n     Number of elements requested to allocate.</div><div class='add'>+ * @return  An array of `n` elements of `type`.</div><div class='add'>+ * @note    `n` may be evaluated twice.</div><div class='add'>+ */</div><div class='add'>+#define RB_ALLOCV_N(type, v, n)                             \</div><div class='add'>+    RBIMPL_CAST((type *)                                     \</div><div class='add'>+        (((size_t)(n) &lt; RUBY_ALLOCV_LIMIT / sizeof(type)) ? \</div><div class='add'>+         ((v) = 0, alloca((n) * sizeof(type))) :            \</div><div class='add'>+         rb_alloc_tmp_buffer2(&amp;(v), (n), sizeof(type))))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Polite way to declare that the given  array is not used any longer.  Calling</div><div class='add'>+ * this not mandatory.  Our GC can baby-sit  you.  However it is not a very bad</div><div class='add'>+ * idea to use it when possible.  Doing so could reduce memory footprint.</div><div class='add'>+ *</div><div class='add'>+ * @param  v  A variable previously passed to either #RB_ALLOCV/#RB_ALLOCV_N.</div><div class='add'>+ */</div><div class='add'>+#define RB_ALLOCV_END(v) rb_free_tmp_buffer(&amp;(v))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Handy macro to erase a region of memory.</div><div class='add'>+ *</div><div class='add'>+ * @param   p     Target pointer.</div><div class='add'>+ * @param   type  Type of `p[0]`</div><div class='add'>+ * @param   n     Length of `p`.</div><div class='add'>+ * @return  `p`.</div><div class='add'>+ * @post    First `n` elements of `p` are squashed.</div><div class='add'>+ */</div><div class='add'>+#define MEMZERO(p,type,n) memset((p), 0, rbimpl_size_mul_or_raise(sizeof(type), (n)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Handy macro to call memcpy.</div><div class='add'>+ *</div><div class='add'>+ * @param   p1    Destination pointer.</div><div class='add'>+ * @param   p2    Source pointer.</div><div class='add'>+ * @param   type  Type of `p2[0]`</div><div class='add'>+ * @param   n     Length of `p2`.</div><div class='add'>+ * @return  `p1`.</div><div class='add'>+ * @post    First `n` elements of `p2` are copied into `p1`.</div><div class='add'>+ */</div><div class='add'>+#define MEMCPY(p1,p2,type,n) ruby_nonempty_memcpy((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Handy macro to call memmove.</div><div class='add'>+ *</div><div class='add'>+ * @param  p1    Destination pointer.</div><div class='add'>+ * @param  p2    Source pointer.</div><div class='add'>+ * @param  type  Type of `p2[0]`</div><div class='add'>+ * @param  n     Length of `p2`.</div><div class='add'>+ * @return `p1`.</div><div class='add'>+ * @post   First `n` elements of `p2` are copied into `p1`.</div><div class='add'>+ */</div><div class='add'>+#define MEMMOVE(p1,p2,type,n) memmove((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n)))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Handy macro to call memcmp</div><div class='add'>+ *</div><div class='add'>+ * @param   p1    Target LHS.</div><div class='add'>+ * @param   p2    Target RHS.</div><div class='add'>+ * @param   type  Type of `p1[0]`</div><div class='add'>+ * @param   n     Length of `p1`.</div><div class='add'>+ * @retval  &lt;0    `p1` is "less" than `p2`.</div><div class='add'>+ * @retval  0     `p1` is equal to `p2`.</div><div class='add'>+ * @retval  &gt;0    `p1` is "greater" than `p2`.</div><div class='add'>+ */</div><div class='add'>+#define MEMCMP(p1,p2,type,n) memcmp((p1), (p2), rbimpl_size_mul_or_raise(sizeof(type), (n)))</div><div class='add'>+</div><div class='add'>+#define ALLOC_N    RB_ALLOC_N    /**&lt; @old{RB_ALLOC_N} */</div><div class='add'>+#define ALLOC      RB_ALLOC      /**&lt; @old{RB_ALLOC} */</div><div class='add'>+#define ZALLOC_N   RB_ZALLOC_N   /**&lt; @old{RB_ZALLOC_N} */</div><div class='add'>+#define ZALLOC     RB_ZALLOC     /**&lt; @old{RB_ZALLOC} */</div><div class='add'>+#define REALLOC_N  RB_REALLOC_N  /**&lt; @old{RB_REALLOC_N} */</div><div class='add'>+#define ALLOCV     RB_ALLOCV     /**&lt; @old{RB_ALLOCV} */</div><div class='add'>+#define ALLOCV_N   RB_ALLOCV_N   /**&lt; @old{RB_ALLOCV_N} */</div><div class='add'>+#define ALLOCV_END RB_ALLOCV_END /**&lt; @old{RB_ALLOCV_END} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail of rbimpl_size_mul_overflow().</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Expecting  this struct  to be  eliminated  by function  inlinings.  This  is</div><div class='add'>+ * nothing more than std::variant&lt;std::size_t&gt; if  we could use recent C++, but</div><div class='add'>+ * reality is we cannot.</div><div class='add'>+ */</div><div class='add'>+struct rbimpl_size_mul_overflow_tag {</div><div class='add'>+    bool left;                  /**&lt; Whether overflow happened or not. */</div><div class='add'>+    size_t right;               /**&lt; Multiplication result. */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+RBIMPL_ATTR_RESTRICT()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((2))</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is  an implementation  detail of #RB_ALLOCV().   People don't  use this</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  store  Pointer to a variable.</div><div class='add'>+ * @param[in]   len    Requested number of bytes to allocate.</div><div class='add'>+ * @return      Allocated `len` bytes array.</div><div class='add'>+ * @post        `store` holds the corresponding tmp buffer object.</div><div class='add'>+ */</div><div class='add'>+void *rb_alloc_tmp_buffer(volatile VALUE *store, long len);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_RESTRICT()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((2,3))</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implementation detail of #RB_ALLOCV_N().  People  don't use this</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  store  Pointer to a variable.</div><div class='add'>+ * @param[in]   len    Requested number of bytes to allocate.</div><div class='add'>+ * @param[in]   count  Number of elements in an array.</div><div class='add'>+ * @return      Allocated `len` bytes array.</div><div class='add'>+ * @post        `store` holds the corresponding tmp buffer object.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Although  the  meaning  of  `count` variable  is  clear,  @shyouhei  doesn't</div><div class='add'>+ * understand its needs.</div><div class='add'>+ */</div><div class='add'>+void *rb_alloc_tmp_buffer_with_count(volatile VALUE *store, size_t len,size_t count);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail of #RB_ALLOCV_END().  People don't use this</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  store  Pointer to a variable.</div><div class='add'>+ * @pre         `store` is a NULL, or a pointer to a tmp buffer object.</div><div class='add'>+ * @post        `*store` is ::RUBY_Qfalse.</div><div class='add'>+ * @post        The object formerly stored in `store` is destroyed.</div><div class='add'>+ */</div><div class='add'>+void rb_free_tmp_buffer(volatile VALUE *store);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implementation detail of #RB_ALLOCV_N().  People  don't use this</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x             Arbitrary value.</div><div class='add'>+ * @param[in]  y             Arbitrary value.</div><div class='add'>+ * @exception  rb_eArgError  `x` * `y` would integer overflow.</div><div class='add'>+ */</div><div class='add'>+void ruby_malloc_size_overflow(size_t x, size_t y);</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_RB_GC_GUARDED_PTR_VAL</div><div class='add'>+volatile VALUE *rb_gc_guarded_ptr_val(volatile VALUE *ptr, VALUE val);</div><div class='add'>+#endif</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#ifdef _MSC_VER</div><div class='add'>+# pragma optimize("", off)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implementation detail of #RB_GC_GUARD().  People  don't use this</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr  A pointer to an on-stack C variable.</div><div class='add'>+ * @return     `ptr` as-is.</div><div class='add'>+ */</div><div class='add'>+static inline volatile VALUE *</div><div class='add'>+rb_gc_guarded_ptr(volatile VALUE *ptr)</div><div class='add'>+{</div><div class='add'>+    return ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# pragma optimize("", on)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This   function   was   an   implementation   detail   of   old</div><div class='add'>+ *              #RB_ALLOCV_N().  We no longer  use it.  @shyouhei suspects that</div><div class='add'>+ *              there are  no actual usage now.   However it was not  marked as</div><div class='add'>+ *              private before.  We cannot delete it any longer.</div><div class='add'>+ * @param[in]   a    Arbitrary value.</div><div class='add'>+ * @param[in]   b    Arbitrary value.</div><div class='add'>+ * @param[in]   max  Possible maximum value.</div><div class='add'>+ * @param[out]  c    A pointer to return the computation result.</div><div class='add'>+ * @retval      1    `c` is insane.</div><div class='add'>+ * @retval      0    `c` is sane.</div><div class='add'>+ * @post        `c` holds `a` * `b`, but could be overflowed.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+rb_mul_size_overflow(size_t a, size_t b, size_t max, size_t *c)</div><div class='add'>+{</div><div class='add'>+#ifdef DSIZE_T</div><div class='add'>+    RB_GNUC_EXTENSION DSIZE_T da, db, c2;</div><div class='add'>+    da = a;</div><div class='add'>+    db = b;</div><div class='add'>+    c2 = da * db;</div><div class='add'>+    if (c2 &gt; max) return 1;</div><div class='add'>+    *c = RBIMPL_CAST((size_t)c2);</div><div class='add'>+#else</div><div class='add'>+    if (b != 0 &amp;&amp; a &gt; max / b) return 1;</div><div class='add'>+    *c = a * b;</div><div class='add'>+#endif</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX14)</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(GCC, 7, 0, 0)</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX14) /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70507 */</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(Clang, 7, 0, 0)</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX14) /* https://bugs.llvm.org/show_bug.cgi?id=37633 */</div><div class='add'>+#endif</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implementation detail of #RB_ALLOCV_N().  People  don't use this</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x  Arbitrary value.</div><div class='add'>+ * @param[in]  y  Arbitrary value.</div><div class='add'>+ * @return     `{ left, right }`,  where `left` is whether there  is an integer</div><div class='add'>+ *             overflow or not,  and `right` is a  (possibly overflowed) result</div><div class='add'>+ *             of `x` * `y`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This is in fact also an implementation detail of ruby_xmalloc2() etc.</div><div class='add'>+ */</div><div class='add'>+static inline struct rbimpl_size_mul_overflow_tag</div><div class='add'>+rbimpl_size_mul_overflow(size_t x, size_t y)</div><div class='add'>+{</div><div class='add'>+    struct rbimpl_size_mul_overflow_tag ret = { false,  0, };</div><div class='add'>+</div><div class='add'>+#if RBIMPL_HAS_BUILTIN(__builtin_mul_overflow)</div><div class='add'>+    ret.left = __builtin_mul_overflow(x, y, &amp;ret.right);</div><div class='add'>+</div><div class='add'>+#elif defined(DSIZE_T)</div><div class='add'>+    RB_GNUC_EXTENSION DSIZE_T dx = x;</div><div class='add'>+    RB_GNUC_EXTENSION DSIZE_T dy = y;</div><div class='add'>+    RB_GNUC_EXTENSION DSIZE_T dz = dx * dy;</div><div class='add'>+    ret.left  = dz &gt; SIZE_MAX;</div><div class='add'>+    ret.right = RBIMPL_CAST((size_t)dz);</div><div class='add'>+</div><div class='add'>+#elif defined(_MSC_VER) &amp;&amp; defined(_WIN64)</div><div class='add'>+    unsigned __int64 dp = 0;</div><div class='add'>+    unsigned __int64 dz = _umul128(x, y, &amp;dp);</div><div class='add'>+    ret.left  = RBIMPL_CAST((bool)dp);</div><div class='add'>+    ret.right = RBIMPL_CAST((size_t)dz);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    /* https://wiki.sei.cmu.edu/confluence/display/c/INT30-C.+Ensure+that+unsigned+integer+operations+do+not+wrap */</div><div class='add'>+    ret.left  = (y != 0) &amp;&amp; (x &gt; SIZE_MAX / y);</div><div class='add'>+    ret.right = x * y;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an  implementation detail of #RB_ALLOCV_N().  People  don't use this</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  x             Arbitrary value.</div><div class='add'>+ * @param[in]  y             Arbitrary value.</div><div class='add'>+ * @exception  rb_eArgError  Multiplication could integer overflow.</div><div class='add'>+ * @return     `x` * `y`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This is in fact also an implementation detail of ruby_xmalloc2() etc.</div><div class='add'>+ */</div><div class='add'>+static inline size_t</div><div class='add'>+rbimpl_size_mul_or_raise(size_t x, size_t y)</div><div class='add'>+{</div><div class='add'>+    struct rbimpl_size_mul_overflow_tag size =</div><div class='add'>+        rbimpl_size_mul_overflow(x, y);</div><div class='add'>+</div><div class='add'>+    if (RB_LIKELY(! size.left)) {</div><div class='add'>+        return size.right;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        ruby_malloc_size_overflow(x, y);</div><div class='add'>+        RBIMPL_UNREACHABLE_RETURN(0);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is an  implementation detail of #RB_ALLOCV_N().  People  don't use this</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  store   Pointer to a variable.</div><div class='add'>+ * @param[in]   count   Number of elements in an array.</div><div class='add'>+ * @param[in]   elsize  Size of each elements.</div><div class='add'>+ * @return      Region of `count` * `elsize` bytes.</div><div class='add'>+ * @post        `store` holds the corresponding tmp buffer object.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * We might want to deprecate this function and make a `rbimpl_` counterpart.</div><div class='add'>+ */</div><div class='add'>+static inline void *</div><div class='add'>+rb_alloc_tmp_buffer2(volatile VALUE *store, long count, size_t elsize)</div><div class='add'>+{</div><div class='add'>+    const size_t total_size = rbimpl_size_mul_or_raise(count, elsize);</div><div class='add'>+    const size_t cnt = (total_size + sizeof(VALUE) - 1) / sizeof(VALUE);</div><div class='add'>+    return rb_alloc_tmp_buffer_with_count(store, total_size, cnt);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+/* At least since 2004, glibc's &lt;string.h&gt; annotates memcpy to be</div><div class='add'>+ * __attribute__((__nonnull__(1, 2))).  However it is safe to pass NULL to the</div><div class='add'>+ * source pointer, if n is 0.  Let's wrap memcpy. */</div><div class='add'>+static inline void *</div><div class='add'>+ruby_nonempty_memcpy(void *dest, const void *src, size_t n)</div><div class='add'>+{</div><div class='add'>+    if (n) {</div><div class='add'>+        return memcpy(dest, src, n);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return dest;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_MEMORY_H */</div><div class='head'>diff --git a/include/ruby/internal/method.h b/include/ruby/internal/method.h<br/>new file mode 100644<br/>index 0000000000..19feb0c10b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/method.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/method.h</a></div><div class='hunk'>@@ -0,0 +1,205 @@</div><div class='add'>+#ifndef RBIMPL_METHOD_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_METHOD_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Creation and modification of Ruby methods.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/backward/2/stdarg.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @defgroup  defmethod  Defining methods</div><div class='add'>+ *</div><div class='add'>+ * There are some APIs to define a method from C.</div><div class='add'>+ * These API takes a C function as a method body.</div><div class='add'>+ *</div><div class='add'>+ * ### Method body functions</div><div class='add'>+ *</div><div class='add'>+ * Method body functions must return a VALUE and</div><div class='add'>+ * can be one of the following form:</div><div class='add'>+ *</div><div class='add'>+ * #### Fixed number of parameters</div><div class='add'>+ *</div><div class='add'>+ * This form is a normal C function, excepting it takes</div><div class='add'>+ * a receiver object as the first argument.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * static VALUE my_method(VALUE self, VALUE x, VALUE y);</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * #### argc and argv style</div><div class='add'>+ *</div><div class='add'>+ * This form takes three parameters: argc, argv and self.</div><div class='add'>+ * self is the receiver. argc is the number of arguments.</div><div class='add'>+ * argv is a pointer to an array of the arguments.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * static VALUE my_method(int argc, VALUE *argv, VALUE self);</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * #### Ruby array style</div><div class='add'>+ *</div><div class='add'>+ * This form takes two parameters: self and args.</div><div class='add'>+ * self is the receiver. args is an Array object which</div><div class='add'>+ * contains the arguments.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * static VALUE my_method(VALUE self, VALUE args);</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * ### Number of parameters</div><div class='add'>+ *</div><div class='add'>+ * Method defining APIs takes the number of parameters which the</div><div class='add'>+ * method will takes. This number is called argc.</div><div class='add'>+ * argc can be:</div><div class='add'>+ *</div><div class='add'>+ *   - Zero or positive number.</div><div class='add'>+ *     This means the method body function takes a fixed number of parameters.</div><div class='add'>+ *</div><div class='add'>+ *   - `-1`.</div><div class='add'>+ *     This means the method body function is "argc and argv" style.</div><div class='add'>+ *</div><div class='add'>+ *   - `-2`.</div><div class='add'>+ *     This means the method body function is "self and args" style.</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Defines a method.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  A module or a class.</div><div class='add'>+ * @param[in]   mid    Name of the function.</div><div class='add'>+ * @param[in]   func   The method body.</div><div class='add'>+ * @param[in]   arity  The number of parameters.  See @ref defmethod.</div><div class='add'>+ * @note        There are in fact 18 different prototypes for func.</div><div class='add'>+ * @see         ::ruby::backward::cxxanyargs::define_method::rb_define_method</div><div class='add'>+ */</div><div class='add'>+void rb_define_method(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Defines a module function for a module.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass  A module or a class.</div><div class='add'>+ * @param[in]   mid    Name of the function.</div><div class='add'>+ * @param[in]   func   The method body.</div><div class='add'>+ * @param[in]   arity  The number of parameters.  See @ref defmethod.</div><div class='add'>+ * @note        There are in fact 18 different prototypes for func.</div><div class='add'>+ * @see         ::ruby::backward::cxxanyargs::define_method::rb_define_module_function</div><div class='add'>+ */</div><div class='add'>+void rb_define_module_function(VALUE klass, const char *mid, VALUE (*func)(ANYARGS), int arity);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Defines a global function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mid    Name of the function.</div><div class='add'>+ * @param[in]  func   The method body.</div><div class='add'>+ * @param[in]  arity  The number of parameters.  See @ref defmethod.</div><div class='add'>+ * @note       There are in fact 18 different prototypes for func.</div><div class='add'>+ * @see        ::ruby::backward::cxxanyargs::define_method::rb_define_global_function</div><div class='add'>+ */</div><div class='add'>+void rb_define_global_function(const char *mid, VALUE (*func)(ANYARGS), int arity);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Defines an undef of a method.  -- What?</div><div class='add'>+ *</div><div class='add'>+ * In ruby, there are two separate concepts called "undef" and "remove_method".</div><div class='add'>+ * The thing you imagine when you  "un-define" a method is remove_method.  This</div><div class='add'>+ * one on the  other hand is masking of a  previous method definition.  Suppose</div><div class='add'>+ * for instance:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * class Foo</div><div class='add'>+ *   def foo</div><div class='add'>+ *   end</div><div class='add'>+ * end</div><div class='add'>+ *</div><div class='add'>+ * class Bar &lt; Foo</div><div class='add'>+ *   def bar</div><div class='add'>+ *     foo</div><div class='add'>+ *   end</div><div class='add'>+ * end</div><div class='add'>+ *</div><div class='add'>+ * class Baz &lt; Foo</div><div class='add'>+ *   undef foo            # &lt;--- (*1)</div><div class='add'>+ * end</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * This `undef foo` at `(*1)` must not eliminate `Foo#foo`, because that method</div><div class='add'>+ * is also used from `Bar#bar`.  So  instead of physically executing the target</div><div class='add'>+ * method, `undef` inserts  a special filtering entry to the  class (`Baz` this</div><div class='add'>+ * case).  That entry,  when called, acts as  if there were no  methods at all.</div><div class='add'>+ * But the original can still be accessible, via ways like `Bar#bar` above.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass            The class to insert an undef.</div><div class='add'>+ * @param[in]   name             Name of the undef.</div><div class='add'>+ * @exception   rb_eTypeError    `klass` is a non-module.</div><div class='add'>+ * @exception   rb_eFrozenError  `klass` is frozen.</div><div class='add'>+ * @see         rb_remove_method</div><div class='add'>+ */</div><div class='add'>+void rb_undef_method(VALUE klass, const char *name);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Defines an alias of a method.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  klass            The class which the original method belongs</div><div class='add'>+ *                                  to; this is also  where the new method will</div><div class='add'>+ *                                  belong to.</div><div class='add'>+ * @param[in]      dst              A new name for the method.</div><div class='add'>+ * @param[in]      src              The original name of the method.</div><div class='add'>+ * @exception      rb_eTypeError    `klass` is a non-module.</div><div class='add'>+ * @exception      rb_eFrozenError  `klass` is frozen.</div><div class='add'>+ * @exception      rb_eNameError    There is  no such method named  as `src` in</div><div class='add'>+ *                                  `klass`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above  description  is   in  fact  a  bit  inaccurate   because  it  ignores</div><div class='add'>+ * Refinements.</div><div class='add'>+ */</div><div class='add'>+void rb_define_alias(VALUE klass, const char *dst, const char *src);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Defines public accessor method(s) for an attribute.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass            The class which the attribute will belong to.</div><div class='add'>+ * @param[in]   name             Name of the attribute.</div><div class='add'>+ * @param[in]   read             Whether to define a getter method.</div><div class='add'>+ * @param[in]   write            Whether to define a setter method.</div><div class='add'>+ * @exception   rb_eTypeError    `klass` is a non-module.</div><div class='add'>+ * @exception   rb_eFrozenError  `klass` is frozen.</div><div class='add'>+ * @exception   rb_eNameError    `name` invalid as an attr e.g. an operator.</div><div class='add'>+ */</div><div class='add'>+void rb_define_attr(VALUE klass, const char *name, int read, int write);</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_METHOD_H */</div><div class='head'>diff --git a/include/ruby/internal/module.h b/include/ruby/internal/module.h<br/>new file mode 100644<br/>index 0000000000..d678dd2102<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/module.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/module.h</a></div><div class='hunk'>@@ -0,0 +1,177 @@</div><div class='add'>+#ifndef RBIMPL_MODULE_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_MODULE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Creation and modification of Ruby modules.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @defgroup  class  Classes and their hierarchy.</div><div class='add'>+ *</div><div class='add'>+ * @par Terminology</div><div class='add'>+ *   - class: same as in Ruby.</div><div class='add'>+ *   - singleton class: class for a particular object.</div><div class='add'>+ *   - eigenclass: = singleton class</div><div class='add'>+ *   - metaclass: class of a class.  Metaclass is a kind of singleton class.</div><div class='add'>+ *   - metametaclass: class of a metaclass.</div><div class='add'>+ *   - meta^(n)-class: class of a meta^(n-1)-class.</div><div class='add'>+ *   - attached object: A singleton class knows its unique instance.</div><div class='add'>+ *     The instance is called the attached object for the singleton class.</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Defines a top-level class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name           Name of the class.</div><div class='add'>+ * @param[in]  super          A class from which the new class will derive.</div><div class='add'>+ * @exception  rb_eTypeError  The constant name `name` is already taken but the</div><div class='add'>+ *                            constant is not a class.</div><div class='add'>+ * @exception  rb_eTypeError  The class  is already  defined but the  class can</div><div class='add'>+ *                            not  be reopened  because its  superclass is  not</div><div class='add'>+ *                            `super`.</div><div class='add'>+ * @exception  rb_eArgError   `super` is NULL.</div><div class='add'>+ * @return     The created class.</div><div class='add'>+ * @post       Top-level constant named `name` refers the returned class.</div><div class='add'>+ * @note       If a class named `name` is already defined and its superclass is</div><div class='add'>+ *             `super`, the function just returns the defined class.</div><div class='add'>+ * @note       The  compaction  GC  does  not move  classes  returned  by  this</div><div class='add'>+ *             function.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * There are classes without names, but you  can't pass NULL here.  You have to</div><div class='add'>+ * use other ways to create one.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_define_class(const char *name, VALUE super);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Defines a top-level module.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name           Name of the module.</div><div class='add'>+ * @exception  rb_eTypeError  The constant name `name` is already taken but the</div><div class='add'>+ *                            constant is not a module.</div><div class='add'>+ * @return     The created module.</div><div class='add'>+ * @post       Top-level constant named `name` refers the returned module.</div><div class='add'>+ * @note       The  compaction  GC  does  not move  classes  returned  by  this</div><div class='add'>+ *             function.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * There are modules without names, but you  can't pass NULL here.  You have to</div><div class='add'>+ * use other ways to create one.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_define_module(const char *name);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Defines a class under the namespace of `outer`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  outer          A class which contains the new class.</div><div class='add'>+ * @param[in]   name           Name of the new class</div><div class='add'>+ * @param[in]   super          A class from which the new class will derive.</div><div class='add'>+ *                             0 means ::rb_cObject.</div><div class='add'>+ * @exception   rb_eTypeError  The constant  name `name`  is already  taken but</div><div class='add'>+ *                             the constant is not a class.</div><div class='add'>+ * @exception   rb_eTypeError  The class  is already defined but  the class can</div><div class='add'>+ *                             not be  reopened because  its superclass  is not</div><div class='add'>+ *                             `super`.</div><div class='add'>+ * @exception   rb_eArgError   `super` is NULL.</div><div class='add'>+ * @return      The created class.</div><div class='add'>+ * @post        `outer::name` refers the returned class.</div><div class='add'>+ * @note        If a class  named `name` is already defined  and its superclass</div><div class='add'>+ *              is `super`, the function just returns the defined class.</div><div class='add'>+ * @note        The  compaction  GC does  not  move  classes returned  by  this</div><div class='add'>+ *              function.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Defines a module under the namespace of `outer`.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  outer          A class which contains the new module.</div><div class='add'>+ * @param[in]   name           Name of the new module</div><div class='add'>+ * @exception   rb_eTypeError  The constant  name `name`  is already  taken but</div><div class='add'>+ *                             the constant is not a class.</div><div class='add'>+ * @return      The created module.</div><div class='add'>+ * @post        `outer::name` refers the returned module.</div><div class='add'>+ * @note        The  compaction  GC does  not  move  classes returned  by  this</div><div class='add'>+ *              function.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_define_module_under(VALUE outer, const char *name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Includes a module to a class.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass         Inclusion destination.</div><div class='add'>+ * @param[in]   module        Inclusion source.</div><div class='add'>+ * @exception   rb_eArgError  Cyclic inclusion.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * :FIXME: @shyouhei suspects this function  lacks assertion that the arguments</div><div class='add'>+ * being modules...  Could silently SEGV if non-module was passed?</div><div class='add'>+ */</div><div class='add'>+void rb_include_module(VALUE klass, VALUE module);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Extend the object with the module.</div><div class='add'>+ *</div><div class='add'>+ * @warning     This    is   the    same    as   `Module#extend_object`,    not</div><div class='add'>+ *              `Object#extend`!  These  two methods are very  similar, but not</div><div class='add'>+ *              identical.  The difference is the hook.  `Module#extend_object`</div><div class='add'>+ *              does not invoke `Module#extended`, while `Object#extend` does.</div><div class='add'>+ * @param[out]  obj  Object to extend.</div><div class='add'>+ * @param[in]   mod  Module of extension.</div><div class='add'>+ */</div><div class='add'>+void rb_extend_object(VALUE obj, VALUE mod);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_include_module(), except it  "prepends" the passed module to</div><div class='add'>+ * the klass,  instead of  includes.  This affects  how `super`  resolves.  For</div><div class='add'>+ * instance:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * class  Q;                def foo;      "&lt;q/&gt;"       end end</div><div class='add'>+ * module W;                def foo; "&lt;w&gt;#{super}&lt;/w&gt;" end end</div><div class='add'>+ * class  E &lt; Q; include W; def foo; "&lt;e&gt;#{super}&lt;/e&gt;" end end</div><div class='add'>+ * class  R &lt; Q; prepend W; def foo; "&lt;r&gt;#{super}&lt;/r&gt;" end end</div><div class='add'>+ *</div><div class='add'>+ * E.new.foo # =&gt; "&lt;e&gt;&lt;w&gt;&lt;q/&gt;&lt;/w&gt;&lt;/e&gt;"</div><div class='add'>+ * r.new.foo # =&gt; "&lt;W&gt;&lt;r&gt;&lt;q/&gt;&lt;/r&gt;&lt;/w&gt;"</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass         Target class to modify.</div><div class='add'>+ * @param[in]   module        Module to prepend.</div><div class='add'>+ * @exception   rb_eArgError  Cyclic inclusion.</div><div class='add'>+ */</div><div class='add'>+void rb_prepend_module(VALUE klass, VALUE module);</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_MODULE_H */</div><div class='head'>diff --git a/include/ruby/internal/newobj.h b/include/ruby/internal/newobj.h<br/>new file mode 100644<br/>index 0000000000..a8a5557a25<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/newobj.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/newobj.h</a></div><div class='hunk'>@@ -0,0 +1,195 @@</div><div class='add'>+#ifndef RBIMPL_NEWOBJ_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_NEWOBJ_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #NEWOBJ.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/deprecated.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/fl_type.h"</div><div class='add'>+#include "ruby/internal/special_consts.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Declares, allocates, then assigns a new object to the given variable.</div><div class='add'>+ *</div><div class='add'>+ * @param      obj             Variable name.</div><div class='add'>+ * @param      type            Variable type.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left.</div><div class='add'>+ * @return     An allocated object, not initialised.</div><div class='add'>+ * @note       Modern programs tend to use #NEWOBJ_OF instead.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * :FIXME: Should we deprecate it?</div><div class='add'>+ */</div><div class='add'>+#define RB_NEWOBJ(obj,type) type *(obj) = RBIMPL_CAST((type *)rb_newobj())</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to #RB_NEWOBJ,  except it  also accepts  the allocating  object's</div><div class='add'>+ * class and flags.</div><div class='add'>+ *</div><div class='add'>+ * @param      obj             Variable name.</div><div class='add'>+ * @param      type            Variable type.</div><div class='add'>+ * @param      klass           Object's class.</div><div class='add'>+ * @param      flags           Object's flags.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left.</div><div class='add'>+ * @return     An allocated object, filled with the arguments.</div><div class='add'>+ */</div><div class='add'>+#define RB_NEWOBJ_OF(obj,type,klass,flags) type *(obj) = RBIMPL_CAST((type *)rb_newobj_of(klass, flags))</div><div class='add'>+</div><div class='add'>+#define NEWOBJ     RB_NEWOBJ      /**&lt; @old{RB_NEWOBJ} */</div><div class='add'>+#define NEWOBJ_OF  RB_NEWOBJ_OF   /**&lt; @old{RB_NEWOBJ_OF} */</div><div class='add'>+#define OBJSETUP   rb_obj_setup   /**&lt; @old{rb_obj_setup} */</div><div class='add'>+#define CLONESETUP rb_clone_setup /**&lt; @old{rb_clone_setup} */</div><div class='add'>+#define DUPSETUP   rb_dup_setup   /**&lt; @old{rb_dup_setup} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/**</div><div class='add'>+ * This is the implementation detail of #RB_NEWOBJ.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eNoMemError  No space left.</div><div class='add'>+ * @return     An allocated object, not initialised.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_newobj(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the implementation detail of #RB_NEWOBJ_OF.</div><div class='add'>+ *</div><div class='add'>+ * @param      klass           Object's class.</div><div class='add'>+ * @param      flags           Object's flags.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left.</div><div class='add'>+ * @return     An allocated object, filled with the arguments.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_newobj_of(VALUE klass, VALUE flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Fills common fields in the object.</div><div class='add'>+ *</div><div class='add'>+ * @note           Prefer rb_newobj_of() to this function.</div><div class='add'>+ * @param[in,out]  obj    A Ruby object to be set up.</div><div class='add'>+ * @param[in]      klass  `obj` will belong to this class.</div><div class='add'>+ * @param[in]      type   One of ::ruby_value_type.</div><div class='add'>+ * @return         The passed object.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Historically, authors of  Ruby has described the `type` argument  as "one of</div><div class='add'>+ * ::ruby_value_type".   In   reality  it  accepts   either  ::ruby_value_type,</div><div class='add'>+ * ::ruby_fl_type,   or   any   combinations   of  the   two.    For   instance</div><div class='add'>+ * `RUBY_T_STRING | RUBY_FL_FREEZE` is a valid  value that this function takes,</div><div class='add'>+ * and means this is a frozen string.</div><div class='add'>+ *</div><div class='add'>+ * 3rd  party extension  libraries rarely  need to  allocate Strings  this way.</div><div class='add'>+ * They normally only concern ::RUBY_T_DATA.   This argument is mainly used for</div><div class='add'>+ * specifying flags, @shyouhei suspects.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_setup(VALUE obj, VALUE klass, VALUE type);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the  class  of  an  object.    This  is  not  always  identical  to</div><div class='add'>+ * `RBASIC_CLASS(obj)`.   It   searches  for  the  nearest   ancestor  skipping</div><div class='add'>+ * singleton classes or included modules.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Object in question.</div><div class='add'>+ * @return     The object's class, in a normal sense.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_obj_class(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Clones a singleton class.  An object  can have its own singleton class.  OK.</div><div class='add'>+ * Then what  happens when a program  clones such object?  The  singleton class</div><div class='add'>+ * that is  attached to  the source  object must also  be cloned.   Otherwise a</div><div class='add'>+ * singleton object gets shared with two objects, which breaks "singleton"-ness</div><div class='add'>+ * of such class.</div><div class='add'>+ *</div><div class='add'>+ * This  is basically  an  implementation detail  of rb_clone_setup().   People</div><div class='add'>+ * need not be aware of this working behind-the-scene.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  The object that has its own singleton class.</div><div class='add'>+ * @return     Cloned singleton class.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_singleton_class_clone(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Attaches a singleton class to its corresponding object.</div><div class='add'>+ *</div><div class='add'>+ * This  is basically  an  implementation detail  of rb_clone_setup().   People</div><div class='add'>+ * need not be aware of this working behind-the-scene.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   klass  The singleton class.</div><div class='add'>+ * @param[out]  obj    The object to attach a class.</div><div class='add'>+ * @pre         The passed two objects must  agree with each other that `klass`</div><div class='add'>+ *              becomes a singleton class of `obj`.</div><div class='add'>+ * @post        `klass` becomes the singleton class of `obj`.</div><div class='add'>+ */</div><div class='add'>+void rb_singleton_class_attached(VALUE klass, VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Copies the list of instance variables.  3rd parties need not know, but there</div><div class='add'>+ * are several ways  to store an object's instance variables,  depending on its</div><div class='add'>+ * internal structure.   This function  makes sense when  either of  the passed</div><div class='add'>+ * objects are using so-called "generic"  backend storage.  This distinction is</div><div class='add'>+ * purely an  implementation detail  of rb_clone_setup().   People need  not be</div><div class='add'>+ * aware of this working behind-the-scenes.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  clone  The destination object.</div><div class='add'>+ * @param[in]   obj    The source object.</div><div class='add'>+ */</div><div class='add'>+void rb_copy_generic_ivar(VALUE clone, VALUE obj);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("This is no longer how Object#clone works."))</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  Not sure exactly  when but at some time,  the implementation of</div><div class='add'>+ *              `Object#clone`  stopped  using   this  function.   It  remained</div><div class='add'>+ *              untouched for  a while, and  then @shyouhei realised  that they</div><div class='add'>+ *              are no longer doing the  same thing.  It seems nobody seriously</div><div class='add'>+ *              uses this function any longer.  Let's just abandon it.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  clone  The destination object.</div><div class='add'>+ * @param[in]   obj    The source object.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rb_clone_setup(VALUE clone, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_DEPRECATED(("This is no longer how Object#dup works."))</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  Not sure exactly  when but at some time,  the implementation of</div><div class='add'>+ *              `Object#dup`   stopped  using   this  function.    It  remained</div><div class='add'>+ *              untouched for  a while, and  then @shyouhei realised  that they</div><div class='add'>+ *              are no longer  the same thing.  It seems  nobody seriously uses</div><div class='add'>+ *              this function any longer.  Let's just abandon it.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dup  The destination object.</div><div class='add'>+ * @param[in]   obj  The source object.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rb_dup_setup(VALUE dup, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_NEWOBJ_H */</div><div class='head'>diff --git a/include/ruby/internal/rgengc.h b/include/ruby/internal/rgengc.h<br/>new file mode 100644<br/>index 0000000000..7ea04442f6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/rgengc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/rgengc.h</a></div><div class='hunk'>@@ -0,0 +1,443 @@</div><div class='add'>+#ifndef RBIMPL_RGENGC_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_RGENGC_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      RGENGC write-barrier APIs.</div><div class='add'>+ * @see        Sasada,  K.,  "Gradual  write-barrier   insertion  into  a  Ruby</div><div class='add'>+ *             interpreter",   in  proceedings   of   the   2019  ACM   SIGPLAN</div><div class='add'>+ *             International  Symposium on  Memory Management  (ISMM 2019),  pp</div><div class='add'>+ *             115-121, 2019.  https://doi.org/10.1145/3315573.3329986</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/maybe_unused.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/special_consts.h"</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#undef USE_RGENGC</div><div class='add'>+#define USE_RGENGC 1</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is  a compile-time flag  to enable/disable incremental GC  feature.  It</div><div class='add'>+ * has to  be set at  the time  ruby itself compiles.   Makes no sense  for 3rd</div><div class='add'>+ * parties.  It is safe  for them to set this though;  that just doesn't change</div><div class='add'>+ * anything.</div><div class='add'>+ */</div><div class='add'>+#ifndef USE_RINCGC</div><div class='add'>+# define USE_RINCGC 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This macro seems  broken.  Setting this to  anything other than</div><div class='add'>+ *              zero just doesn't compile.  We need to KonMari.</div><div class='add'>+ */</div><div class='add'>+#ifndef USE_RGENGC_LOGGING_WB_UNPROTECT</div><div class='add'>+# define USE_RGENGC_LOGGING_WB_UNPROTECT 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is   a  compile-time   flag  to   enable/disable  write   barrier  for</div><div class='add'>+ * struct ::RArray.  It has to be set  at the time ruby itself compiles.  Makes</div><div class='add'>+ * no sense for 3rd parties.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_ARRAY</div><div class='add'>+# define RGENGC_WB_PROTECTED_ARRAY 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is   a  compile-time   flag  to   enable/disable  write   barrier  for</div><div class='add'>+ * struct ::RHash.  It has  to be set at the time  ruby itself compiles.  Makes</div><div class='add'>+ * no sense for 3rd parties.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_HASH</div><div class='add'>+# define RGENGC_WB_PROTECTED_HASH 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is   a  compile-time   flag  to   enable/disable  write   barrier  for</div><div class='add'>+ * struct ::RStruct.  It has to be set at the time ruby itself compiles.  Makes</div><div class='add'>+ * no sense for 3rd parties.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_STRUCT</div><div class='add'>+# define RGENGC_WB_PROTECTED_STRUCT 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is   a  compile-time   flag  to   enable/disable  write   barrier  for</div><div class='add'>+ * struct ::RString.  It has to be set at the time ruby itself compiles.  Makes</div><div class='add'>+ * no sense for 3rd parties.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_STRING</div><div class='add'>+# define RGENGC_WB_PROTECTED_STRING 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is   a  compile-time   flag  to   enable/disable  write   barrier  for</div><div class='add'>+ * struct ::RObject.  It has to be set at the time ruby itself compiles.  Makes</div><div class='add'>+ * no sense for 3rd parties.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_OBJECT</div><div class='add'>+# define RGENGC_WB_PROTECTED_OBJECT 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is   a  compile-time   flag  to   enable/disable  write   barrier  for</div><div class='add'>+ * struct ::RRegexp.  It has to be set at the time ruby itself compiles.  Makes</div><div class='add'>+ * no sense for 3rd parties.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_REGEXP</div><div class='add'>+# define RGENGC_WB_PROTECTED_REGEXP 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is   a  compile-time   flag  to   enable/disable  write   barrier  for</div><div class='add'>+ * struct ::RClass.  It has to be set  at the time ruby itself compiles.  Makes</div><div class='add'>+ * no sense for 3rd parties.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_CLASS</div><div class='add'>+# define RGENGC_WB_PROTECTED_CLASS 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is   a  compile-time   flag  to   enable/disable  write   barrier  for</div><div class='add'>+ * struct ::RFloat.  It has to be set  at the time ruby itself compiles.  Makes</div><div class='add'>+ * no sense for 3rd parties.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_FLOAT</div><div class='add'>+# define RGENGC_WB_PROTECTED_FLOAT 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is   a  compile-time   flag  to   enable/disable  write   barrier  for</div><div class='add'>+ * struct ::RComplex.   It has  to be  set at  the time  ruby itself  compiles.</div><div class='add'>+ * Makes no sense for 3rd parties.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_COMPLEX</div><div class='add'>+# define RGENGC_WB_PROTECTED_COMPLEX 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is   a  compile-time   flag  to   enable/disable  write   barrier  for</div><div class='add'>+ * struct ::RRational.  It  has to  be set  at the  time ruby  itself compiles.</div><div class='add'>+ * Makes no sense for 3rd parties.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_RATIONAL</div><div class='add'>+# define RGENGC_WB_PROTECTED_RATIONAL 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is   a  compile-time   flag  to   enable/disable  write   barrier  for</div><div class='add'>+ * struct ::RBignum.  It has to be set at the time ruby itself compiles.  Makes</div><div class='add'>+ * no sense for 3rd parties.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_BIGNUM</div><div class='add'>+# define RGENGC_WB_PROTECTED_BIGNUM 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't think anybody uses this right now.</div><div class='add'>+ */</div><div class='add'>+#ifndef RGENGC_WB_PROTECTED_NODE_CREF</div><div class='add'>+# define RGENGC_WB_PROTECTED_NODE_CREF 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @defgroup rgengc Write barrier (WB) interfaces:</div><div class='add'>+ *</div><div class='add'>+ * @note The following  core interfaces can  be changed in the  future.  Please</div><div class='add'>+ *       catch up if you want to insert WB into C-extensions correctly.</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Declaration of a "back" pointer.  This  is a write barrier for new reference</div><div class='add'>+ * from  "old"  generation  to  "young" generation.   It  writes  `young`  into</div><div class='add'>+ * `*slot`, which is a pointer inside of `old`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   old    An old object.</div><div class='add'>+ * @param[in]   slot   A pointer inside of `old`.</div><div class='add'>+ * @param[out]  young  A young object.</div><div class='add'>+ */</div><div class='add'>+#define RB_OBJ_WRITE(old, slot, young) \</div><div class='add'>+    RBIMPL_CAST(rb_obj_write((VALUE)(old), (VALUE *)(slot), (VALUE)(young), __FILE__, __LINE__))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to #RB_OBJ_WRITE(), except it doesn't write any values, but only a</div><div class='add'>+ * WB declaration.   `oldv` is  replaced value  with `b`  (not used  in current</div><div class='add'>+ * Ruby).</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   old    An old object.</div><div class='add'>+ * @param[in]   oldv   An object previously stored inside of `old`.</div><div class='add'>+ * @param[out]  young  A young object.</div><div class='add'>+ */</div><div class='add'>+#define RB_OBJ_WRITTEN(old, oldv, young) \</div><div class='add'>+    RBIMPL_CAST(rb_obj_written((VALUE)(old), (VALUE)(oldv), (VALUE)(young), __FILE__, __LINE__))</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+#define OBJ_PROMOTED_RAW RB_OBJ_PROMOTED_RAW /**&lt; @old{RB_OBJ_PROMOTED_RAW} */</div><div class='add'>+#define OBJ_PROMOTED     RB_OBJ_PROMOTED     /**&lt; @old{RB_OBJ_PROMOTED} */</div><div class='add'>+#define OBJ_WB_UNPROTECT RB_OBJ_WB_UNPROTECT /**&lt; @old{RB_OBJ_WB_UNPROTECT} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts that the passed object is  not fenced by write barriers.  Objects of</div><div class='add'>+ * such  property do  not contribute  to  generational GCs.   They are  scanned</div><div class='add'>+ * always.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  x  An object that would not be protected by the barrier.</div><div class='add'>+ */</div><div class='add'>+#define RB_OBJ_WB_UNPROTECT(x) rb_obj_wb_unprotect(x, __FILE__, __LINE__)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to #RB_OBJ_WB_UNPROTECT(),  except it  can also  assert that  the</div><div class='add'>+ * given object is of given type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   type  One of `ARRAY`, `STRING`, etc.</div><div class='add'>+ * @param[out]  obj   An object of `type` that would not be protected.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't understand why this has to be visible from extensions.</div><div class='add'>+ */</div><div class='add'>+#define RB_OBJ_WB_UNPROTECT_FOR(type, obj) \</div><div class='add'>+    (RGENGC_WB_PROTECTED_##type ? OBJ_WB_UNPROTECT(obj) : obj)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail of rb_obj_wb_unprotect().  People don't use</div><div class='add'>+ * it directly.</div><div class='add'>+ */</div><div class='add'>+#define RGENGC_LOGGING_WB_UNPROTECT rb_gc_unprotect_logging</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RB_OBJ_PROMOTED_RAW RB_OBJ_PROMOTED_RAW</div><div class='add'>+#define RB_OBJ_PROMOTED     RB_OBJ_PROMOTED</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+/**</div><div class='add'>+ * This  is  the  implementation  of  #RB_OBJ_WRITE().   People  don't  use  it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   old    An object that points to `young`.</div><div class='add'>+ * @param[out]  young  An object that is referenced from `old`.</div><div class='add'>+ */</div><div class='add'>+void rb_gc_writebarrier(VALUE old, VALUE young);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the  implementation of #RB_OBJ_WB_UNPROTECT().  People  don't use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[out] obj  An object that does not participate in WB.</div><div class='add'>+ */</div><div class='add'>+void rb_gc_writebarrier_unprotect(VALUE obj);</div><div class='add'>+</div><div class='add'>+#if USE_RGENGC_LOGGING_WB_UNPROTECT</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is  the   implementation  of  #RGENGC_LOGGING_WB_UNPROTECT().   People</div><div class='add'>+ * don't use it directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  objptr    Don't  know why  this  is  a pointer  to  void but  in</div><div class='add'>+ *                       reality this is  a pointer to an object  that is about</div><div class='add'>+ *                       to be un-protected.</div><div class='add'>+ * @param[in]  filename  Pass C's `__FILE__` here.</div><div class='add'>+ * @param[in]  line      Pass C's `__LINE__` here.</div><div class='add'>+ */</div><div class='add'>+void rb_gc_unprotect_logging(void *objptr, const char *filename, int line);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * This  is the  implementation  of #RB_OBJ_PROMOTED().   People  don't use  it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An object to query.</div><div class='add'>+ * @retval     true   The object is "promoted".</div><div class='add'>+ * @retval     false  The object is young.  Have not experienced GC at all.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_OBJ_PROMOTED_RAW(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RB_FL_ABLE(obj));</div><div class='add'>+    return RB_FL_ANY_RAW(obj,  RUBY_FL_PROMOTED);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Tests if the object is "promoted" -- that is, whether the object experienced</div><div class='add'>+ * one or more GC marks.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An object to query.</div><div class='add'>+ * @retval     true   The object is "promoted".</div><div class='add'>+ * @retval     false  The object is young.  Have not experienced GC at all.</div><div class='add'>+ * @note       Hello, is anyone actively calling this function?  @shyouhei have</div><div class='add'>+ *             never seen  any actual usages  outside of the  GC implementation</div><div class='add'>+ *             itself.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_OBJ_PROMOTED(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (! RB_FL_ABLE(obj)) {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RB_OBJ_PROMOTED_RAW(obj);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the  implementation of #RB_OBJ_WB_UNPROTECT().  People  don't use it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  x         An object that does not participate in WB.</div><div class='add'>+ * @param[in]   filename  C's `__FILE__` of the caller function.</div><div class='add'>+ * @param[in]   line      C's `__LINE__` of the caller function.</div><div class='add'>+ * @return      x</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_obj_wb_unprotect(</div><div class='add'>+    VALUE x,</div><div class='add'>+    RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+    const char *filename,</div><div class='add'>+    RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+    int line)</div><div class='add'>+{</div><div class='add'>+#if USE_RGENGC_LOGGING_WB_UNPROTECT</div><div class='add'>+    RGENGC_LOGGING_WB_UNPROTECT(RBIMPL_CAST((void *)x), filename, line);</div><div class='add'>+#endif</div><div class='add'>+    rb_gc_writebarrier_unprotect(x);</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is  the implementation  of  #RB_OBJ_WRITTEN().   People don't  use  it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   a         An old object.</div><div class='add'>+ * @param[in]   oldv      An object previously stored inside of `old`.</div><div class='add'>+ * @param[out]  b         A young object.</div><div class='add'>+ * @param[in]   filename  C's `__FILE__` of the caller function.</div><div class='add'>+ * @param[in]   line      C's `__LINE__` of the caller function.</div><div class='add'>+ * @return      a</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_obj_written(</div><div class='add'>+    VALUE a,</div><div class='add'>+    RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+    VALUE oldv,</div><div class='add'>+    VALUE b,</div><div class='add'>+    RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+    const char *filename,</div><div class='add'>+    RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+    int line)</div><div class='add'>+{</div><div class='add'>+#if USE_RGENGC_LOGGING_WB_UNPROTECT</div><div class='add'>+    RGENGC_LOGGING_OBJ_WRITTEN(a, oldv, b, filename, line);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (!RB_SPECIAL_CONST_P(b)) {</div><div class='add'>+        rb_gc_writebarrier(a, b);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return a;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is  the  implementation  of  #RB_OBJ_WRITE().   People  don't  use  it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   a         An old object.</div><div class='add'>+ * @param[in]   slot      A pointer inside of `old`.</div><div class='add'>+ * @param[out]  b         A young object.</div><div class='add'>+ * @param[in]   filename  C's `__FILE__` of the caller function.</div><div class='add'>+ * @param[in]   line      C's `__LINE__` of the caller function.</div><div class='add'>+ * @return      a</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_obj_write(</div><div class='add'>+    VALUE a, VALUE *slot, VALUE b,</div><div class='add'>+    RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+    const char *filename,</div><div class='add'>+    RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+    int line)</div><div class='add'>+{</div><div class='add'>+#ifdef RGENGC_LOGGING_WRITE</div><div class='add'>+    RGENGC_LOGGING_WRITE(a, slot, b, filename, line);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    *slot = b;</div><div class='add'>+</div><div class='add'>+    rb_obj_written(a, RUBY_Qundef /* ignore `oldv' now */, b, filename, line);</div><div class='add'>+    return a;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_RGENGC_H */</div><div class='head'>diff --git a/include/ruby/internal/scan_args.h b/include/ruby/internal/scan_args.h<br/>new file mode 100644<br/>index 0000000000..1ed2bf6368<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/scan_args.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/scan_args.h</a></div><div class='hunk'>@@ -0,0 +1,534 @@</div><div class='add'>+#ifndef RBIMPL_SCAN_ARGS_H                           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_SCAN_ARGS_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Compile-time static implementation of ::rb_scan_args().</div><div class='add'>+ *</div><div class='add'>+ * This  is a  beast.  It  statically analyses  the argument  spec string,  and</div><div class='add'>+ * expands the assignment of variables into dedicated codes.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+#include "ruby/internal/attr/diagnose_if.h"</div><div class='add'>+#include "ruby/internal/attr/error.h"</div><div class='add'>+#include "ruby/internal/attr/forceinline.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/internal/intern/array.h" /* rb_ary_new_from_values */</div><div class='add'>+#include "ruby/internal/intern/error.h" /* rb_error_arity */</div><div class='add'>+#include "ruby/internal/intern/hash.h"  /* rb_hash_dup */</div><div class='add'>+#include "ruby/internal/intern/proc.h"  /* rb_block_proc */</div><div class='add'>+#include "ruby/internal/iterator.h"     /* rb_block_given_p / rb_keyword_given_p */</div><div class='add'>+#include "ruby/internal/static_assert.h"</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Possible values that you should pass to rb_scan_args_kw().</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/** Same behaviour as rb_scan_args(). */</div><div class='add'>+#define RB_SCAN_ARGS_PASS_CALLED_KEYWORDS 0</div><div class='add'>+</div><div class='add'>+/** The final argument should be a hash treated as keywords.*/</div><div class='add'>+#define RB_SCAN_ARGS_KEYWORDS 1</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Treat a  final argument as  keywords if  it is a  hash, and not  as keywords</div><div class='add'>+ * otherwise.</div><div class='add'>+ */</div><div class='add'>+#define RB_SCAN_ARGS_LAST_HASH_KEYWORDS 3</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name Possible values that you should pass to rb_funcallv_kw().</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/** Do not pass keywords. */</div><div class='add'>+#define RB_NO_KEYWORDS 0</div><div class='add'>+</div><div class='add'>+/** Pass keywords, final argument should be a hash of keywords. */</div><div class='add'>+#define RB_PASS_KEYWORDS 1</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Pass keywords if current method is called with keywords, useful for argument</div><div class='add'>+ * delegation</div><div class='add'>+ */</div><div class='add'>+#define RB_PASS_CALLED_KEYWORDS rb_keyword_given_p()</div><div class='add'>+</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define HAVE_RB_SCAN_ARGS_OPTIONAL_HASH 1</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+RBIMPL_ATTR_NONNULL((2, 3))</div><div class='add'>+/**</div><div class='add'>+ * Retrieves argument from argc and  argv to given ::VALUE references according</div><div class='add'>+ * to the format string.  The format can be described in ABNF as follows:</div><div class='add'>+ *</div><div class='add'>+ * ```</div><div class='add'>+ * scan-arg-spec  := param-arg-spec [keyword-arg-spec] [block-arg-spec]</div><div class='add'>+ *</div><div class='add'>+ * param-arg-spec        := pre-arg-spec [post-arg-spec] / post-arg-spec /</div><div class='add'>+ *                          pre-opt-post-arg-spec</div><div class='add'>+ * pre-arg-spec          := num-of-leading-mandatory-args</div><div class='add'>+ *                          [num-of-optional-args]</div><div class='add'>+ * post-arg-spec         := sym-for-variable-length-args</div><div class='add'>+ *                          [num-of-trailing-mandatory-args]</div><div class='add'>+ * pre-opt-post-arg-spec := num-of-leading-mandatory-args num-of-optional-args</div><div class='add'>+ *                          num-of-trailing-mandatory-args</div><div class='add'>+ * keyword-arg-spec      := sym-for-keyword-arg</div><div class='add'>+ * block-arg-spec        := sym-for-block-arg</div><div class='add'>+ *</div><div class='add'>+ * num-of-leading-mandatory-args  := DIGIT ; The number of leading mandatory</div><div class='add'>+ *                                         ; arguments</div><div class='add'>+ * num-of-optional-args           := DIGIT ; The number of optional arguments</div><div class='add'>+ * sym-for-variable-length-args   := "*"   ; Indicates that variable length</div><div class='add'>+ *                                         ;  arguments are captured as a ruby</div><div class='add'>+ *                                         ; array</div><div class='add'>+ * num-of-trailing-mandatory-args := DIGIT ; The number of trailing mandatory</div><div class='add'>+ *                                         ; arguments</div><div class='add'>+ * sym-for-keyword-arg            := ":"   ; Indicates that keyword argument</div><div class='add'>+ *                                         ; captured as a hash.</div><div class='add'>+ *                                         ; If keyword arguments are not</div><div class='add'>+ *                                         ; provided, returns nil.</div><div class='add'>+ * sym-for-block-arg              := "&amp;"   ; Indicates that an iterator block</div><div class='add'>+ *                                         ; should be captured if given</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * For example, "12" means that the  method requires at least one argument, and</div><div class='add'>+ * at  most receives  three (1+2)  arguments.  So,  the format  string must  be</div><div class='add'>+ * followed by three variable references, which  are to be assigned to captured</div><div class='add'>+ * arguments.  For omitted arguments, variables are set to ::RUBY_Qnil.  `NULL`</div><div class='add'>+ * can be put  in place of a variable reference,  which means the corresponding</div><div class='add'>+ * captured argument(s) should be just dropped.</div><div class='add'>+ *</div><div class='add'>+ * The number of  given arguments, excluding an option hash  or iterator block,</div><div class='add'>+ * is returned.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   argc          Length of `argv`.</div><div class='add'>+ * @param[in]   argv          Pointer to the arguments to parse.</div><div class='add'>+ * @param[in]   fmt           Format, in the language described above.</div><div class='add'>+ * @param[out]  ...           Variables to fill in.</div><div class='add'>+ * @exception   rb_eFatal     Malformed `fmt`.</div><div class='add'>+ * @exception   rb_eArgError  Arity mismatch.</div><div class='add'>+ * @return      Actually parsed number of given arguments.</div><div class='add'>+ * @post        Each  values  passed to  `argv`  is  filled into  the  variadic</div><div class='add'>+ *              arguments, according to the format.</div><div class='add'>+ */</div><div class='add'>+int rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((3, 4))</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_scan_args(), except it also accepts `kw_splat`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   kw_splat      How to understand the keyword arguments.</div><div class='add'>+ *   - RB_SCAN_ARGS_PASS_CALLED_KEYWORDS: Same behaviour as rb_scan_args().</div><div class='add'>+ *   - RB_SCAN_ARGS_KEYWORDS:             The final argument is a kwarg.</div><div class='add'>+ *   - RB_SCAN_ARGS_LAST_HASH_KEYWORDS:   The final argument is a kwarg, iff it</div><div class='add'>+ *                                        is a hash.</div><div class='add'>+ * @param[in]   argc          Length of `argv`.</div><div class='add'>+ * @param[in]   argv          Pointer to the arguments to parse.</div><div class='add'>+ * @param[in]   fmt           Format, in the language described above.</div><div class='add'>+ * @param[out]  ...           Variables to fill in.</div><div class='add'>+ * @exception   rb_eFatal     Malformed `fmt`.</div><div class='add'>+ * @exception   rb_eArgError  Arity mismatch.</div><div class='add'>+ * @return      Actually parsed number of given arguments.</div><div class='add'>+ * @post        Each  values  passed to  `argv`  is  filled into  the  variadic</div><div class='add'>+ *              arguments, according to the format.</div><div class='add'>+ */</div><div class='add'>+int rb_scan_args_kw(int kw_splat, int argc, const VALUE *argv, const char *fmt, ...);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ERROR(("bad scan arg format"))</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is  an implementation  detail of rb_scan_args().   People don't  use it</div><div class='add'>+ * directly.</div><div class='add'>+ */</div><div class='add'>+void rb_scan_args_bad_format(const char*);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ERROR(("variable argument length doesn't match"))</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is  an implementation  detail of rb_scan_args().   People don't  use it</div><div class='add'>+ * directly.</div><div class='add'>+ */</div><div class='add'>+void rb_scan_args_length_mismatch(const char*,int);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+</div><div class='add'>+/* If we could use constexpr the following macros could be inline functions</div><div class='add'>+ * ... but sadly we cannot. */</div><div class='add'>+</div><div class='add'>+#define rb_scan_args_isdigit(c) (RBIMPL_CAST((unsigned char)((c)-'0'))&lt;10)</div><div class='add'>+</div><div class='add'>+#define rb_scan_args_count_end(fmt, ofs, vari) \</div><div class='add'>+    ((fmt)[ofs] ? -1 : (vari))</div><div class='add'>+</div><div class='add'>+#define rb_scan_args_count_block(fmt, ofs, vari) \</div><div class='add'>+    ((fmt)[ofs]!='&amp;' ? \</div><div class='add'>+     rb_scan_args_count_end(fmt, ofs, vari) : \</div><div class='add'>+     rb_scan_args_count_end(fmt, (ofs)+1, (vari)+1))</div><div class='add'>+</div><div class='add'>+#define rb_scan_args_count_hash(fmt, ofs, vari) \</div><div class='add'>+    ((fmt)[ofs]!=':' ? \</div><div class='add'>+     rb_scan_args_count_block(fmt, ofs, vari) : \</div><div class='add'>+     rb_scan_args_count_block(fmt, (ofs)+1, (vari)+1))</div><div class='add'>+</div><div class='add'>+#define rb_scan_args_count_trail(fmt, ofs, vari) \</div><div class='add'>+    (!rb_scan_args_isdigit((fmt)[ofs]) ? \</div><div class='add'>+     rb_scan_args_count_hash(fmt, ofs, vari) : \</div><div class='add'>+     rb_scan_args_count_hash(fmt, (ofs)+1, (vari)+((fmt)[ofs]-'0')))</div><div class='add'>+</div><div class='add'>+#define rb_scan_args_count_var(fmt, ofs, vari) \</div><div class='add'>+    ((fmt)[ofs]!='*' ? \</div><div class='add'>+     rb_scan_args_count_trail(fmt, ofs, vari) : \</div><div class='add'>+     rb_scan_args_count_trail(fmt, (ofs)+1, (vari)+1))</div><div class='add'>+</div><div class='add'>+#define rb_scan_args_count_opt(fmt, ofs, vari) \</div><div class='add'>+    (!rb_scan_args_isdigit((fmt)[ofs]) ? \</div><div class='add'>+     rb_scan_args_count_var(fmt, ofs, vari) : \</div><div class='add'>+     rb_scan_args_count_var(fmt, (ofs)+1, (vari)+(fmt)[ofs]-'0'))</div><div class='add'>+</div><div class='add'>+#define rb_scan_args_count_lead(fmt, ofs, vari) \</div><div class='add'>+    (!rb_scan_args_isdigit((fmt)[ofs]) ? \</div><div class='add'>+     rb_scan_args_count_var(fmt, ofs, vari) : \</div><div class='add'>+     rb_scan_args_count_opt(fmt, (ofs)+1, (vari)+(fmt)[ofs]-'0'))</div><div class='add'>+</div><div class='add'>+#define rb_scan_args_count(fmt) rb_scan_args_count_lead(fmt, 0, 0)</div><div class='add'>+</div><div class='add'>+#if RBIMPL_HAS_ATTRIBUTE(diagnose_if)</div><div class='add'>+# /* Assertions done in the attribute. */</div><div class='add'>+# define rb_scan_args_verify(fmt, varc) RBIMPL_ASSERT_NOTHING</div><div class='add'>+#else</div><div class='add'>+# /* At  one sight  it _seems_  the expressions  below could  be written  using</div><div class='add'>+#  * static  assertions.  The  reality is  no, they  don't.  Because  fmt is  a</div><div class='add'>+#  * string literal,  any operations  against fmt  cannot produce  the "integer</div><div class='add'>+#  * constant  expression"s,  as  defined  in  ISO/IEC  9899:2018  section  6.6</div><div class='add'>+#  * paragraph #6.  Static assertions need such integer constant expressions as</div><div class='add'>+#  * defined in ISO/IEC 9899:2018 section 6.7.10 paragraph #3.</div><div class='add'>+#  *</div><div class='add'>+#  * GCC nonetheless constant-folds this into a no-op, though. */</div><div class='add'>+# define rb_scan_args_verify(fmt, varc) \</div><div class='add'>+    (sizeof(char[1-2*(rb_scan_args_count(fmt)&lt;0)])!=1 ? \</div><div class='add'>+     rb_scan_args_bad_format(fmt) : \</div><div class='add'>+     sizeof(char[1-2*(rb_scan_args_count(fmt)!=(varc))])!=1 ? \</div><div class='add'>+     rb_scan_args_length_mismatch(fmt, varc) : \</div><div class='add'>+     RBIMPL_ASSERT_NOTHING)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+rb_scan_args_keyword_p(int kw_flag, VALUE last)</div><div class='add'>+{</div><div class='add'>+    switch (kw_flag) {</div><div class='add'>+      case RB_SCAN_ARGS_PASS_CALLED_KEYWORDS:</div><div class='add'>+        return !! rb_keyword_given_p();</div><div class='add'>+      case RB_SCAN_ARGS_KEYWORDS:</div><div class='add'>+        return true;</div><div class='add'>+      case RB_SCAN_ARGS_LAST_HASH_KEYWORDS:</div><div class='add'>+        return RB_TYPE_P(last, T_HASH);</div><div class='add'>+      default:</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static bool</div><div class='add'>+rb_scan_args_lead_p(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    return rb_scan_args_isdigit(fmt[0]);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static int</div><div class='add'>+rb_scan_args_n_lead(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    return (rb_scan_args_lead_p(fmt) ? fmt[0]-'0' : 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static bool</div><div class='add'>+rb_scan_args_opt_p(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    return (rb_scan_args_lead_p(fmt) &amp;&amp; rb_scan_args_isdigit(fmt[1]));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static int</div><div class='add'>+rb_scan_args_n_opt(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    return (rb_scan_args_opt_p(fmt) ? fmt[1]-'0' : 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static int</div><div class='add'>+rb_scan_args_var_idx(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    return (!rb_scan_args_lead_p(fmt) ? 0 : !rb_scan_args_isdigit(fmt[1]) ? 1 : 2);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static bool</div><div class='add'>+rb_scan_args_f_var(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    return (fmt[rb_scan_args_var_idx(fmt)]=='*');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static int</div><div class='add'>+rb_scan_args_trail_idx(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    const int idx = rb_scan_args_var_idx(fmt);</div><div class='add'>+    return idx+(fmt[idx]=='*');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static int</div><div class='add'>+rb_scan_args_n_trail(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    const int idx = rb_scan_args_trail_idx(fmt);</div><div class='add'>+    return (rb_scan_args_isdigit(fmt[idx]) ? fmt[idx]-'0' : 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static int</div><div class='add'>+rb_scan_args_hash_idx(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    const int idx = rb_scan_args_trail_idx(fmt);</div><div class='add'>+    return idx+rb_scan_args_isdigit(fmt[idx]);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static bool</div><div class='add'>+rb_scan_args_f_hash(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    return (fmt[rb_scan_args_hash_idx(fmt)]==':');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static int</div><div class='add'>+rb_scan_args_block_idx(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    const int idx = rb_scan_args_hash_idx(fmt);</div><div class='add'>+    return idx+(fmt[idx]==':');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static bool</div><div class='add'>+rb_scan_args_f_block(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    return (fmt[rb_scan_args_block_idx(fmt)]=='&amp;');</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# if 0</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static int</div><div class='add'>+rb_scan_args_end_idx(const char *fmt)</div><div class='add'>+{</div><div class='add'>+    const int idx = rb_scan_args_block_idx(fmt);</div><div class='add'>+    return idx+(fmt[idx]=='&amp;');</div><div class='add'>+}</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+/* NOTE: Use `char *fmt` instead of `const char *fmt` because of clang's bug*/</div><div class='add'>+/* https://bugs.llvm.org/show_bug.cgi?id=38095 */</div><div class='add'>+# define rb_scan_args0(argc, argv, fmt, varc, vars) \</div><div class='add'>+    rb_scan_args_set(RB_SCAN_ARGS_PASS_CALLED_KEYWORDS, argc, argv, \</div><div class='add'>+                     rb_scan_args_n_lead(fmt), \</div><div class='add'>+                     rb_scan_args_n_opt(fmt), \</div><div class='add'>+                     rb_scan_args_n_trail(fmt), \</div><div class='add'>+                     rb_scan_args_f_var(fmt), \</div><div class='add'>+                     rb_scan_args_f_hash(fmt), \</div><div class='add'>+                     rb_scan_args_f_block(fmt), \</div><div class='add'>+                     (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc)</div><div class='add'>+# define rb_scan_args_kw0(kw_flag, argc, argv, fmt, varc, vars) \</div><div class='add'>+    rb_scan_args_set(kw_flag, argc, argv, \</div><div class='add'>+                     rb_scan_args_n_lead(fmt), \</div><div class='add'>+                     rb_scan_args_n_opt(fmt), \</div><div class='add'>+                     rb_scan_args_n_trail(fmt), \</div><div class='add'>+                     rb_scan_args_f_var(fmt), \</div><div class='add'>+                     rb_scan_args_f_hash(fmt), \</div><div class='add'>+                     rb_scan_args_f_block(fmt), \</div><div class='add'>+                     (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc)</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static int</div><div class='add'>+rb_scan_args_set(int kw_flag, int argc, const VALUE *argv,</div><div class='add'>+                 int n_lead, int n_opt, int n_trail,</div><div class='add'>+                 bool f_var, bool f_hash, bool f_block,</div><div class='add'>+                 VALUE *vars[], RB_UNUSED_VAR(const char *fmt), RB_UNUSED_VAR(int varc))</div><div class='add'>+    RBIMPL_ATTR_DIAGNOSE_IF(rb_scan_args_count(fmt) &lt;  0,    "bad scan arg format",                    "error")</div><div class='add'>+    RBIMPL_ATTR_DIAGNOSE_IF(rb_scan_args_count(fmt) != varc, "variable argument length doesn't match", "error")</div><div class='add'>+{</div><div class='add'>+    int i, argi = 0, vari = 0;</div><div class='add'>+    VALUE *var, hash = Qnil;</div><div class='add'>+#define rb_scan_args_next_param() vars[vari++]</div><div class='add'>+    const int n_mand = n_lead + n_trail;</div><div class='add'>+</div><div class='add'>+    /* capture an option hash - phase 1: pop from the argv */</div><div class='add'>+    if (f_hash &amp;&amp; argc &gt; 0) {</div><div class='add'>+        VALUE last = argv[argc - 1];</div><div class='add'>+        if (rb_scan_args_keyword_p(kw_flag, last)) {</div><div class='add'>+            hash = rb_hash_dup(last);</div><div class='add'>+            argc--;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (argc &lt; n_mand) {</div><div class='add'>+        goto argc_error;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* capture leading mandatory arguments */</div><div class='add'>+    for (i = 0; i &lt; n_lead; i++) {</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (var) *var = argv[argi];</div><div class='add'>+        argi++;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* capture optional arguments */</div><div class='add'>+    for (i = 0; i &lt; n_opt; i++) {</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (argi &lt; argc - n_trail) {</div><div class='add'>+            if (var) *var = argv[argi];</div><div class='add'>+            argi++;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (var) *var = Qnil;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* capture variable length arguments */</div><div class='add'>+    if (f_var) {</div><div class='add'>+        int n_var = argc - argi - n_trail;</div><div class='add'>+</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (0 &lt; n_var) {</div><div class='add'>+            if (var) *var = rb_ary_new_from_values(n_var, &amp;argv[argi]);</div><div class='add'>+            argi += n_var;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (var) *var = rb_ary_new();</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* capture trailing mandatory arguments */</div><div class='add'>+    for (i = 0; i &lt; n_trail; i++) {</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (var) *var = argv[argi];</div><div class='add'>+        argi++;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* capture an option hash - phase 2: assignment */</div><div class='add'>+    if (f_hash) {</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (var) *var = hash;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* capture iterator block */</div><div class='add'>+    if (f_block) {</div><div class='add'>+        var = rb_scan_args_next_param();</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            *var = rb_block_proc();</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            *var = Qnil;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (argi == argc) {</div><div class='add'>+        return argc;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+  argc_error:</div><div class='add'>+    rb_error_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt);</div><div class='add'>+    UNREACHABLE_RETURN(-1);</div><div class='add'>+#undef rb_scan_args_next_param</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+# /* don't bother */</div><div class='add'>+</div><div class='add'>+#elif ! defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)</div><div class='add'>+# /* skip */</div><div class='add'>+</div><div class='add'>+#elif ! defined(HAVE_VA_ARGS_MACRO)</div><div class='add'>+# /* skip */</div><div class='add'>+</div><div class='add'>+#elif ! defined(__OPTIMIZE__)</div><div class='add'>+# /* skip */</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE___VA_OPT__)</div><div class='add'>+# define rb_scan_args(argc, argvp, fmt, ...)                  \</div><div class='add'>+    __builtin_choose_expr(                                    \</div><div class='add'>+        __builtin_constant_p(fmt),                            \</div><div class='add'>+        rb_scan_args0(                                        \</div><div class='add'>+            argc, argvp, fmt,                                 \</div><div class='add'>+            (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \</div><div class='add'>+            ((VALUE*[]){__VA_ARGS__})),                       \</div><div class='add'>+        (rb_scan_args)(argc, argvp, fmt __VA_OPT__(, __VA_ARGS__)))</div><div class='add'>+# define rb_scan_args_kw(kw_flag, argc, argvp, fmt, ...)      \</div><div class='add'>+    __builtin_choose_expr(                                    \</div><div class='add'>+        __builtin_constant_p(fmt),                            \</div><div class='add'>+        rb_scan_args_kw0(                                     \</div><div class='add'>+            kw_flag, argc, argvp, fmt,                        \</div><div class='add'>+            (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \</div><div class='add'>+            ((VALUE*[]){__VA_ARGS__})),                       \</div><div class='add'>+        (rb_scan_args_kw)(kw_flag, argc, argvp, fmt __VA_OPT__(, __VA_ARGS__)))</div><div class='add'>+</div><div class='add'>+#elif defined(__STRICT_ANSI__)</div><div class='add'>+# /* skip */</div><div class='add'>+</div><div class='add'>+#elif defined(__GNUC__)</div><div class='add'>+# define rb_scan_args(argc, argvp, fmt, ...)                  \</div><div class='add'>+    __builtin_choose_expr(                                    \</div><div class='add'>+        __builtin_constant_p(fmt),                            \</div><div class='add'>+        rb_scan_args0(                                        \</div><div class='add'>+            argc, argvp, fmt,                                 \</div><div class='add'>+            (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \</div><div class='add'>+            ((VALUE*[]){__VA_ARGS__})),                       \</div><div class='add'>+        (rb_scan_args)(argc, argvp, fmt, __VA_ARGS__))</div><div class='add'>+# define rb_scan_args_kw(kw_flag, argc, argvp, fmt, ...)      \</div><div class='add'>+    __builtin_choose_expr(                                    \</div><div class='add'>+        __builtin_constant_p(fmt),                            \</div><div class='add'>+        rb_scan_args_kw0(                                     \</div><div class='add'>+            kw_flag, argc, argvp, fmt,                        \</div><div class='add'>+            (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \</div><div class='add'>+            ((VALUE*[]){__VA_ARGS__})),                       \</div><div class='add'>+        (rb_scan_args_kw)(kw_flag, argc, argvp, fmt, __VA_ARGS__ /**/))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_SCAN_ARGS_H */</div><div class='head'>diff --git a/include/ruby/internal/special_consts.h b/include/ruby/internal/special_consts.h<br/>new file mode 100644<br/>index 0000000000..dc0a6b41d6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/special_consts.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/special_consts.h</a></div><div class='hunk'>@@ -0,0 +1,362 @@</div><div class='add'>+#ifndef RBIMPL_SPECIAL_CONSTS_H                      /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_SPECIAL_CONSTS_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines enum ::ruby_special_consts.</div><div class='add'>+ * @see        Sasada,  K.,  "A  Lightweight Representation  of  Floating-Point</div><div class='add'>+ *             Numbers  on  Ruby Interpreter",  in  proceedings  of 10th  JSSST</div><div class='add'>+ *             SIGPPL  Workshop   on  Programming  and   Programming  Languages</div><div class='add'>+ *             (PPL2008), pp. 9-16, 2008.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/constexpr.h"</div><div class='add'>+#include "ruby/internal/attr/enum_extensibility.h"</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ * @warning  Do not touch this macro.</div><div class='add'>+ * @warning  It is an implementation detail.</div><div class='add'>+ * @warning  The  value of  this  macro  must match  for  ruby  itself and  all</div><div class='add'>+ *           extension  libraries, otherwise  serious  memory corruption  shall</div><div class='add'>+ *           occur.</div><div class='add'>+ */</div><div class='add'>+#if defined(USE_FLONUM)</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif SIZEOF_VALUE &gt;= SIZEOF_DOUBLE</div><div class='add'>+# define USE_FLONUM 1</div><div class='add'>+#else</div><div class='add'>+# define USE_FLONUM 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** This is an old name of #RB_TEST.  Not sure which name is preferred. */</div><div class='add'>+#define RTEST           RB_TEST</div><div class='add'>+</div><div class='add'>+#define FIXNUM_P        RB_FIXNUM_P            /**&lt; @old{RB_FIXNUM_P} */</div><div class='add'>+#define IMMEDIATE_P     RB_IMMEDIATE_P         /**&lt; @old{RB_IMMEDIATE_P} */</div><div class='add'>+#define NIL_P           RB_NIL_P               /**&lt; @old{RB_NIL_P} */</div><div class='add'>+#define SPECIAL_CONST_P RB_SPECIAL_CONST_P     /**&lt; @old{RB_SPECIAL_CONST_P} */</div><div class='add'>+#define STATIC_SYM_P    RB_STATIC_SYM_P        /**&lt; @old{RB_STATIC_SYM_P} */</div><div class='add'>+</div><div class='add'>+#define Qfalse          RUBY_Qfalse            /**&lt; @old{RUBY_Qfalse} */</div><div class='add'>+#define Qnil            RUBY_Qnil              /**&lt; @old{RUBY_Qnil} */</div><div class='add'>+#define Qtrue           RUBY_Qtrue             /**&lt; @old{RUBY_Qtrue} */</div><div class='add'>+#define Qundef          RUBY_Qundef            /**&lt; @old{RUBY_Qundef} */</div><div class='add'>+</div><div class='add'>+#define FIXNUM_FLAG        RUBY_FIXNUM_FLAG    /**&lt; @old{RUBY_FIXNUM_FLAG} */</div><div class='add'>+#define FLONUM_FLAG        RUBY_FLONUM_FLAG    /**&lt; @old{RUBY_FLONUM_FLAG} */</div><div class='add'>+#define FLONUM_MASK        RUBY_FLONUM_MASK    /**&lt; @old{RUBY_FLONUM_MASK} */</div><div class='add'>+#define FLONUM_P           RB_FLONUM_P         /**&lt; @old{RB_FLONUM_P} */</div><div class='add'>+#define IMMEDIATE_MASK     RUBY_IMMEDIATE_MASK /**&lt; @old{RUBY_IMMEDIATE_MASK} */</div><div class='add'>+#define SYMBOL_FLAG        RUBY_SYMBOL_FLAG    /**&lt; @old{RUBY_SYMBOL_FLAG} */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RB_FIXNUM_P        RB_FIXNUM_P</div><div class='add'>+#define RB_FLONUM_P        RB_FLONUM_P</div><div class='add'>+#define RB_IMMEDIATE_P     RB_IMMEDIATE_P</div><div class='add'>+#define RB_NIL_P           RB_NIL_P</div><div class='add'>+#define RB_SPECIAL_CONST_P RB_SPECIAL_CONST_P</div><div class='add'>+#define RB_STATIC_SYM_P    RB_STATIC_SYM_P</div><div class='add'>+#define RB_TEST            RB_TEST</div><div class='add'>+#define RB_UNDEF_P         RB_UNDEF_P</div><div class='add'>+#define RB_NIL_OR_UNDEF_P  RB_NIL_OR_UNDEF_P</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/** special constants - i.e. non-zero and non-fixnum constants */</div><div class='add'>+enum</div><div class='add'>+RBIMPL_ATTR_ENUM_EXTENSIBILITY(closed)</div><div class='add'>+ruby_special_consts {</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+    RUBY_Qfalse,                /**&lt; @see ::rb_cFalseClass */</div><div class='add'>+    RUBY_Qtrue,                 /**&lt; @see ::rb_cTrueClass */</div><div class='add'>+    RUBY_Qnil,                  /**&lt; @see ::rb_cNilClass */</div><div class='add'>+    RUBY_Qundef,                /**&lt; Represents so-called undef. */</div><div class='add'>+    RUBY_IMMEDIATE_MASK,        /**&lt; Bit mask detecting special consts. */</div><div class='add'>+    RUBY_FIXNUM_FLAG,           /**&lt; Flag to denote a fixnum. */</div><div class='add'>+    RUBY_FLONUM_MASK,           /**&lt; Bit mask detecting a flonum. */</div><div class='add'>+    RUBY_FLONUM_FLAG,           /**&lt; Flag to denote a flonum. */</div><div class='add'>+    RUBY_SYMBOL_FLAG,           /**&lt; Flag to denote a static symbol. */</div><div class='add'>+#elif USE_FLONUM</div><div class='add'>+    RUBY_Qfalse         = 0x00, /* ...0000 0000 */</div><div class='add'>+    RUBY_Qnil           = 0x04, /* ...0000 0100 */</div><div class='add'>+    RUBY_Qtrue          = 0x14, /* ...0001 0100 */</div><div class='add'>+    RUBY_Qundef         = 0x24, /* ...0010 0100 */</div><div class='add'>+    RUBY_IMMEDIATE_MASK = 0x07, /* ...0000 0111 */</div><div class='add'>+    RUBY_FIXNUM_FLAG    = 0x01, /* ...xxxx xxx1 */</div><div class='add'>+    RUBY_FLONUM_MASK    = 0x03, /* ...0000 0011 */</div><div class='add'>+    RUBY_FLONUM_FLAG    = 0x02, /* ...xxxx xx10 */</div><div class='add'>+    RUBY_SYMBOL_FLAG    = 0x0c, /* ...xxxx 1100 */</div><div class='add'>+#else</div><div class='add'>+    RUBY_Qfalse         = 0x00, /* ...0000 0000 */</div><div class='add'>+    RUBY_Qnil           = 0x02, /* ...0000 0010 */</div><div class='add'>+    RUBY_Qtrue          = 0x06, /* ...0000 0110 */</div><div class='add'>+    RUBY_Qundef         = 0x0a, /* ...0000 1010 */</div><div class='add'>+    RUBY_IMMEDIATE_MASK = 0x03, /* ...0000 0011 */</div><div class='add'>+    RUBY_FIXNUM_FLAG    = 0x01, /* ...xxxx xxx1 */</div><div class='add'>+    RUBY_FLONUM_MASK    = 0x00, /* any values ANDed with FLONUM_MASK cannot be FLONUM_FLAG */</div><div class='add'>+    RUBY_FLONUM_FLAG    = 0x02, /* ...0000 0010 */</div><div class='add'>+    RUBY_SYMBOL_FLAG    = 0x0e, /* ...xxxx 1110 */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    RUBY_SPECIAL_SHIFT  = 8 /**&lt; Least significant 8 bits are reserved. */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Emulates Ruby's "if" statement.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An arbitrary ruby object.</div><div class='add'>+ * @retval     false  `obj` is either ::RUBY_Qfalse or ::RUBY_Qnil.</div><div class='add'>+ * @retval     true   Anything else.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It HAS to be `__attribute__((const))` in  order for clang to properly deduce</div><div class='add'>+ * `__builtin_assume()`.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_TEST(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    /*</div><div class='add'>+     * if USE_FLONUM</div><div class='add'>+     *  Qfalse:  ....0000 0000</div><div class='add'>+     *  Qnil:    ....0000 0100</div><div class='add'>+     * ~Qnil:    ....1111 1011</div><div class='add'>+     *  v        ....xxxx xxxx</div><div class='add'>+     * ----------------------------</div><div class='add'>+     *  RTEST(v) ....xxxx x0xx</div><div class='add'>+     *</div><div class='add'>+     * if ! USE_FLONUM</div><div class='add'>+     *  Qfalse:  ....0000 0000</div><div class='add'>+     *  Qnil:    ....0000 0010</div><div class='add'>+     * ~Qnil:    ....1111 1101</div><div class='add'>+     *  v        ....xxxx xxxx</div><div class='add'>+     * ----------------------------</div><div class='add'>+     *  RTEST(v) ....xxxx xx0x</div><div class='add'>+     *</div><div class='add'>+     *  RTEST(v) can be 0 if and only if (v == Qfalse || v == Qnil).</div><div class='add'>+     */</div><div class='add'>+    return obj &amp; ~RUBY_Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Checks if the given object is nil.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An arbitrary ruby object.</div><div class='add'>+ * @retval     true   `obj` is ::RUBY_Qnil.</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_NIL_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return obj == RUBY_Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Checks if the given object is undef.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An arbitrary ruby object.</div><div class='add'>+ * @retval     true   `obj` is ::RUBY_Qundef.</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_UNDEF_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return obj == RUBY_Qundef;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX14)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Checks if the given object is nil or undef.  Can be used to see if</div><div class='add'>+ * a keyword argument is not given or given `nil`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An arbitrary ruby object.</div><div class='add'>+ * @retval     true   `obj` is ::RUBY_Qnil or ::RUBY_Qundef.</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_NIL_OR_UNDEF_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    /*</div><div class='add'>+     * if USE_FLONUM</div><div class='add'>+     *  Qundef:       ....0010 0100</div><div class='add'>+     *  Qnil:         ....0000 0100</div><div class='add'>+     *  mask:         ....1101 1111</div><div class='add'>+     *  common_bits:  ....0000 0100</div><div class='add'>+     * ---------------------------------</div><div class='add'>+     *  Qnil &amp; mask   ....0000 0100</div><div class='add'>+     *  Qundef &amp; mask ....0000 0100</div><div class='add'>+     *</div><div class='add'>+     * if ! USE_FLONUM</div><div class='add'>+     *  Qundef:       ....0000 1010</div><div class='add'>+     *  Qnil:         ....0000 0010</div><div class='add'>+     *  mask:         ....1111 0111</div><div class='add'>+     *  common_bits:  ....0000 0010</div><div class='add'>+     * ----------------------------</div><div class='add'>+     *  Qnil &amp; mask   ....0000 0010</div><div class='add'>+     *  Qundef &amp; mask ....0000 0010</div><div class='add'>+     *</div><div class='add'>+     *  NIL_OR_UNDEF_P(v) can be true only when v is Qundef or Qnil.</div><div class='add'>+     */</div><div class='add'>+    const VALUE mask = ~(RUBY_Qundef ^ RUBY_Qnil);</div><div class='add'>+    const VALUE common_bits = RUBY_Qundef &amp; RUBY_Qnil;</div><div class='add'>+    return (obj &amp; mask) == common_bits;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Checks if the given object is a so-called Fixnum.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An arbitrary ruby object.</div><div class='add'>+ * @retval     true   `obj` is a Fixnum.</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @note       Fixnum was  a thing  in the  20th century, but  it is  rather an</div><div class='add'>+ *             implementation detail today.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_FIXNUM_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return obj &amp; RUBY_FIXNUM_FLAG;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX14)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Checks if the given object is a static symbol.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An arbitrary ruby object.</div><div class='add'>+ * @retval     true   `obj` is a static symbol</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @see        RB_DYNAMIC_SYM_P()</div><div class='add'>+ * @see        RB_SYMBOL_P()</div><div class='add'>+ * @note       These days  there are static  and dynamic symbols, just  like we</div><div class='add'>+ *             once had Fixnum/Bignum back in the old days.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_STATIC_SYM_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ATTR_CONSTEXPR(CXX14)</div><div class='add'>+    const VALUE mask = ~(RBIMPL_VALUE_FULL &lt;&lt; RUBY_SPECIAL_SHIFT);</div><div class='add'>+    return (obj &amp; mask) == RUBY_SYMBOL_FLAG;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Checks if the given object is a so-called Flonum.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An arbitrary ruby object.</div><div class='add'>+ * @retval     true   `obj` is a Flonum.</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @see        RB_FLOAT_TYPE_P()</div><div class='add'>+ * @note       These days there are Flonums and non-Flonum floats, just like we</div><div class='add'>+ *             once had Fixnum/Bignum back in the old days.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_FLONUM_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+#if USE_FLONUM</div><div class='add'>+    return (obj &amp; RUBY_FLONUM_MASK) == RUBY_FLONUM_FLAG;</div><div class='add'>+#else</div><div class='add'>+    return false;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Checks if  the given  object is  an immediate  i.e. an  object which  has no</div><div class='add'>+ * corresponding storage inside of the object space.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An arbitrary ruby object.</div><div class='add'>+ * @retval     true   `obj` is a Flonum.</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ * @see        RB_FLOAT_TYPE_P()</div><div class='add'>+ * @note       The concept of "immediate" is purely C specific.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_IMMEDIATE_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return obj &amp; RUBY_IMMEDIATE_MASK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Checks if the given object is of enum ::ruby_special_consts.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An arbitrary ruby object.</div><div class='add'>+ * @retval     true   `obj` is a special constant.</div><div class='add'>+ * @retval     false  Anything else.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_SPECIAL_CONST_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return RB_IMMEDIATE_P(obj) || obj == RUBY_Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+RBIMPL_ATTR_CONSTEXPR(CXX11)</div><div class='add'>+/**</div><div class='add'>+ * Identical to RB_SPECIAL_CONST_P, except it returns a ::VALUE.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj          An arbitrary ruby object.</div><div class='add'>+ * @retval     RUBY_Qtrue   `obj` is a special constant.</div><div class='add'>+ * @retval     RUBY_Qfalse  Anything else.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  function is  to mimic  old  rb_special_const_p macro  but have  anyone</div><div class='add'>+ * actually used its return value?  Wasn't it just something no one needed?</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_special_const_p(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return RB_SPECIAL_CONST_P(obj) * RUBY_Qtrue;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @cond INTERNAL_MACRO</div><div class='add'>+ * See [ruby-dev:27513] for the following macros.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_Qfalse RBIMPL_CAST((VALUE)RUBY_Qfalse)</div><div class='add'>+#define RUBY_Qtrue  RBIMPL_CAST((VALUE)RUBY_Qtrue)</div><div class='add'>+#define RUBY_Qnil   RBIMPL_CAST((VALUE)RUBY_Qnil)</div><div class='add'>+#define RUBY_Qundef RBIMPL_CAST((VALUE)RUBY_Qundef)</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_SPECIAL_CONSTS_H */</div><div class='head'>diff --git a/include/ruby/internal/static_assert.h b/include/ruby/internal/static_assert.h<br/>new file mode 100644<br/>index 0000000000..594c2b2917<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/static_assert.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/static_assert.h</a></div><div class='hunk'>@@ -0,0 +1,77 @@</div><div class='add'>+#ifndef RBIMPL_STATIC_ASSERT_H                       /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_STATIC_ASSERT_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_STATIC_ASSERT.</div><div class='add'>+ */</div><div class='add'>+#include &lt;assert.h&gt;</div><div class='add'>+#include "ruby/internal/has/extension.h"</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#if defined(__cplusplus) &amp;&amp; defined(__cpp_static_assert)</div><div class='add'>+# /* https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations */</div><div class='add'>+# define RBIMPL_STATIC_ASSERT0 static_assert</div><div class='add'>+</div><div class='add'>+#elif defined(__cplusplus) &amp;&amp; RBIMPL_COMPILER_SINCE(MSVC, 16, 0, 0)</div><div class='add'>+# define RBIMPL_STATIC_ASSERT0 static_assert</div><div class='add'>+</div><div class='add'>+#elif defined(__INTEL_CXX11_MODE__)</div><div class='add'>+# define RBIMPL_STATIC_ASSERT0 static_assert</div><div class='add'>+</div><div class='add'>+#elif defined(__cplusplus) &amp;&amp; __cplusplus &gt;= 201103L</div><div class='add'>+# define RBIMPL_STATIC_ASSERT0 static_assert</div><div class='add'>+</div><div class='add'>+#elif defined(__cplusplus) &amp;&amp; RBIMPL_HAS_EXTENSION(cxx_static_assert)</div><div class='add'>+# define RBIMPL_STATIC_ASSERT0 __extension__ static_assert</div><div class='add'>+</div><div class='add'>+#elif defined(__GXX_EXPERIMENTAL_CXX0X__) &amp;&amp; __GXX_EXPERIMENTAL_CXX0X__</div><div class='add'>+# define RBIMPL_STATIC_ASSERT0 __extension__ static_assert</div><div class='add'>+</div><div class='add'>+#elif defined(__STDC_VERSION__) &amp;&amp; RBIMPL_HAS_EXTENSION(c_static_assert)</div><div class='add'>+# define RBIMPL_STATIC_ASSERT0 __extension__ _Static_assert</div><div class='add'>+</div><div class='add'>+#elif defined(__STDC_VERSION__) &amp;&amp; RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0)</div><div class='add'>+# define RBIMPL_STATIC_ASSERT0 __extension__ _Static_assert</div><div class='add'>+</div><div class='add'>+#elif defined(static_assert)</div><div class='add'>+# /* Take &lt;assert.h&gt; definition */</div><div class='add'>+# define RBIMPL_STATIC_ASSERT0 static_assert</div><div class='add'>+#endif</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @brief  Wraps (or simulates) `static_assert`</div><div class='add'>+ * @param  name  Valid C/C++ identifier, describing the assertion.</div><div class='add'>+ * @param  expr  Expression to assert.</div><div class='add'>+ * @note   `name` shall not be a string literal.</div><div class='add'>+ */</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+# define RBIMPL_STATIC_ASSERT static_assert</div><div class='add'>+</div><div class='add'>+#elif defined(RBIMPL_STATIC_ASSERT0)</div><div class='add'>+# define RBIMPL_STATIC_ASSERT(name, expr) \</div><div class='add'>+    RBIMPL_STATIC_ASSERT0(expr, # name ": " # expr)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_STATIC_ASSERT(name, expr) \</div><div class='add'>+    typedef int static_assert_ ## name ## _check[1 - 2 * !(expr)]</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_STATIC_ASSERT_H */</div><div class='head'>diff --git a/include/ruby/internal/stdalign.h b/include/ruby/internal/stdalign.h<br/>new file mode 100644<br/>index 0000000000..ec68f6a882<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/stdalign.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/stdalign.h</a></div><div class='hunk'>@@ -0,0 +1,135 @@</div><div class='add'>+#ifndef RBIMPL_STDALIGN_H                            /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_STDALIGN_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_ALIGNAS / #RBIMPL_ALIGNOF</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/compiler_is.h"</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/internal/has/declspec_attribute.h"</div><div class='add'>+#include "ruby/internal/has/feature.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Wraps (or simulates) `alignas`. This is C++11's `alignas` and is _different_</div><div class='add'>+ * from C11 `_Alignas`.  For instance,</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * typedef struct alignas(128) foo { int foo } foo;</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * is a valid C++ while</div><div class='add'>+ *</div><div class='add'>+ * ```C</div><div class='add'>+ * typedef struct _Alignas(128) foo { int foo } foo;</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * is an invalid C because:</div><div class='add'>+ *</div><div class='add'>+ * - You cannot `struct _Alignas`.</div><div class='add'>+ * - A `typedef` cannot have alignments.</div><div class='add'>+ */</div><div class='add'>+#if defined(__cplusplus) &amp;&amp; RBIMPL_HAS_FEATURE(cxx_alignas)</div><div class='add'>+# define RBIMPL_ALIGNAS alignas</div><div class='add'>+</div><div class='add'>+#elif defined(__cplusplus) &amp;&amp; (__cplusplus &gt;= 201103L)</div><div class='add'>+# define RBIMPL_ALIGNAS alignas</div><div class='add'>+</div><div class='add'>+#elif defined(__INTEL_CXX11_MODE__)</div><div class='add'>+# define RBIMPL_ALIGNAS alignas</div><div class='add'>+</div><div class='add'>+#elif defined(__GXX_EXPERIMENTAL_CXX0X__)</div><div class='add'>+# define RBIMPL_ALIGNAS alignas</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(align)</div><div class='add'>+# define RBIMPL_ALIGNAS(_) __declspec(align(_))</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_HAS_ATTRIBUTE(aligned)</div><div class='add'>+# define RBIMPL_ALIGNAS(_) __attribute__((__aligned__(_)))</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ALIGNAS(_) /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Wraps (or simulates) `alignof`.</div><div class='add'>+ *</div><div class='add'>+ * We want C11's `_Alignof`.  However in spite of its clear language, compilers</div><div class='add'>+ * (including GCC  and clang) tend to  have buggy implementations.  We  have to</div><div class='add'>+ * avoid such things to resort to our own version.</div><div class='add'>+ *</div><div class='add'>+ * @see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023</div><div class='add'>+ * @see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69560</div><div class='add'>+ * @see https://bugs.llvm.org/show_bug.cgi?id=26547</div><div class='add'>+ */</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+# define RBIMPL_ALIGNOF alignof</div><div class='add'>+#elif defined(__cplusplus)</div><div class='add'>+# /* C++11 `alignof()` can be buggy. */</div><div class='add'>+# /* see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69560 */</div><div class='add'>+# /* But don't worry, we can use templates. */</div><div class='add'>+# define RBIMPL_ALIGNOF(T) (static_cast&lt;size_t&gt;(ruby::rbimpl_alignof&lt;T&gt;::value))</div><div class='add'>+</div><div class='add'>+namespace ruby {</div><div class='add'>+template&lt;typename T&gt;</div><div class='add'>+struct rbimpl_alignof {</div><div class='add'>+    typedef struct {</div><div class='add'>+        char _;</div><div class='add'>+        T t;</div><div class='add'>+    } type;</div><div class='add'>+</div><div class='add'>+    enum {</div><div class='add'>+        value = offsetof(type, t)</div><div class='add'>+    };</div><div class='add'>+};</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(MSVC)</div><div class='add'>+# /* Windows have no alignment glitch.*/</div><div class='add'>+# define RBIMPL_ALIGNOF __alignof</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE__ALIGNOF)</div><div class='add'>+# /* Autoconf detected availability of a sane `_Alignof()`. */</div><div class='add'>+# define RBIMPL_ALIGNOF(T) RB_GNUC_EXTENSION(_Alignof(T))</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# /* :BEWARE:  This is  the last  resort.   If your  compiler somehow  supports</div><div class='add'>+#  * querying the alignment of a type,  you definitely should use that instead.</div><div class='add'>+#  * There are 2 known pitfalls for this fallback implementation:</div><div class='add'>+#  *</div><div class='add'>+#  * First, it is either an undefined  behaviour (C) or an explicit error (C++)</div><div class='add'>+#  * to define a  struct inside of `offsetof`.  C compilers  tend to accept such</div><div class='add'>+#  * things, but AFAIK C++ has no room to allow.</div><div class='add'>+#  *</div><div class='add'>+#  * Second, there exist T  such that `struct { char _; T t;  }` is invalid.  A</div><div class='add'>+#  * known example is  when T is a  struct with a flexible  array member.  Such</div><div class='add'>+#  * struct cannot be enclosed into another one.</div><div class='add'>+#  */</div><div class='add'>+# /* see: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2083.htm */</div><div class='add'>+# /* see: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm */</div><div class='add'>+# define RBIMPL_ALIGNOF(T) offsetof(struct { char _; T t; }, t)</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_STDALIGN_H */</div><div class='head'>diff --git a/include/ruby/internal/stdbool.h b/include/ruby/internal/stdbool.h<br/>new file mode 100644<br/>index 0000000000..1ca61136ba<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/stdbool.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/stdbool.h</a></div><div class='hunk'>@@ -0,0 +1,51 @@</div><div class='add'>+#ifndef RBIMPL_STDBOOL_H                             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_STDBOOL_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      C99 shim for &lt;stdbool.h&gt;</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#if defined(__bool_true_false_are_defined)</div><div class='add'>+# /* Take that. */</div><div class='add'>+</div><div class='add'>+#elif defined(__cplusplus)</div><div class='add'>+# /* bool is a keyword in C++. */</div><div class='add'>+# if defined(HAVE_STDBOOL_H) &amp;&amp; (__cplusplus &gt;= 201103L)</div><div class='add'>+#  include &lt;cstdbool&gt;</div><div class='add'>+# endif</div><div class='add'>+#</div><div class='add'>+# ifndef __bool_true_false_are_defined</div><div class='add'>+#  define __bool_true_false_are_defined</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+#elif defined(HAVE_STDBOOL_H)</div><div class='add'>+# /* Take stdbool.h definition. */</div><div class='add'>+# include &lt;stdbool.h&gt;</div><div class='add'>+</div><div class='add'>+#elif !defined(HAVE__BOOL)</div><div class='add'>+typedef unsigned char _Bool;</div><div class='add'>+# /* See also http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2229.htm */</div><div class='add'>+# define bool  _Bool</div><div class='add'>+# define true  ((_Bool)+1)</div><div class='add'>+# define false ((_Bool)+0)</div><div class='add'>+# define __bool_true_false_are_defined</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_STDBOOL_H */</div><div class='head'>diff --git a/include/ruby/internal/symbol.h b/include/ruby/internal/symbol.h<br/>new file mode 100644<br/>index 0000000000..869a31115c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/symbol.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/symbol.h</a></div><div class='hunk'>@@ -0,0 +1,332 @@</div><div class='add'>+#ifndef RBIMPL_SYMBOL_H                              /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_SYMBOL_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #rb_intern</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STRING_H</div><div class='add'>+# include &lt;string.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/noalias.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/constant_p.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/has/builtin.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+</div><div class='add'>+#define RB_ID2SYM      rb_id2sym           /**&lt; @alias{rb_id2sym} */</div><div class='add'>+#define RB_SYM2ID      rb_sym2id           /**&lt; @alias{rb_sym2id} */</div><div class='add'>+#define ID2SYM         RB_ID2SYM           /**&lt; @old{RB_ID2SYM} */</div><div class='add'>+#define SYM2ID         RB_SYM2ID           /**&lt; @old{RB_SYM2ID} */</div><div class='add'>+#define CONST_ID_CACHE RUBY_CONST_ID_CACHE /**&lt; @old{RUBY_CONST_ID_CACHE} */</div><div class='add'>+#define CONST_ID       RUBY_CONST_ID       /**&lt; @old{RUBY_CONST_ID} */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define rb_intern_const rb_intern_const</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Converts an instance of ::rb_cSymbol into an ::ID.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            An instance of ::rb_cSymbol.</div><div class='add'>+ * @exception  rb_eTypeError  `obj` is not an instance of ::rb_cSymbol.</div><div class='add'>+ * @return     An ::ID of the identical symbol.</div><div class='add'>+ */</div><div class='add'>+ID rb_sym2id(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Allocates an instance of ::rb_cSymbol that has the given id.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id           An id.</div><div class='add'>+ * @retval     RUBY_Qfalse  No such id ever existed in the history.</div><div class='add'>+ * @retval     Otherwise    An allocated ::rb_cSymbol instance.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_id2sym(ID id);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Finds or creates a symbol of the given name.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name              The name of the id.</div><div class='add'>+ * @exception  rb_eRuntimeError  Too many symbols.</div><div class='add'>+ * @return     A (possibly new) id whose value is the given name.</div><div class='add'>+ * @note       These days  Ruby internally has  two kinds of symbols  (static /</div><div class='add'>+ *             dynamic).  Symbols  created using  this function would  become a</div><div class='add'>+ *             static one; i.e. would never be  garbage collected.  It is up to</div><div class='add'>+ *             you to avoid memory leaks.  Think twice before using it.</div><div class='add'>+ */</div><div class='add'>+ID rb_intern(const char *name);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_intern(), except  it additionally takes  the length  of the</div><div class='add'>+ * string.  This way you can have a symbol that contains NUL characters.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name              The name of the id.</div><div class='add'>+ * @param[in]  len               Length of `name`.</div><div class='add'>+ * @exception  rb_eRuntimeError  Too many symbols.</div><div class='add'>+ * @return     A (possibly new) id whose value is the given name.</div><div class='add'>+ * @note       These   days  Ruby   internally   has  two   kinds  of   symbols</div><div class='add'>+ *             (static/dynamic).   Symbols created  using  this function  would</div><div class='add'>+ *             become static ones;  i.e. would never be  garbage collected.  It</div><div class='add'>+ *             is up  to you to avoid  memory leaks.  Think twice  before using</div><div class='add'>+ *             it.</div><div class='add'>+ */</div><div class='add'>+ID rb_intern2(const char *name, long len);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_intern(), except  it takes an instance of ::rb_cString.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str               The name of the id.</div><div class='add'>+ * @pre        `str` must either be an instance of ::rb_cSymbol, or an instance</div><div class='add'>+ *             of ::rb_cString, or responds to `#to_str` method.</div><div class='add'>+ * @exception  rb_eTypeError     Can't convert `str` into ::rb_cString.</div><div class='add'>+ * @exception  rb_eRuntimeError  Too many symbols.</div><div class='add'>+ * @return     A (possibly new) id whose value is the given str.</div><div class='add'>+ * @note       These   days  Ruby   internally   has  two   kinds  of   symbols</div><div class='add'>+ *             (static/dynamic).   Symbols created  using  this function  would</div><div class='add'>+ *             become static ones;  i.e. would never be  garbage collected.  It</div><div class='add'>+ *             is up  to you to avoid  memory leaks.  Think twice  before using</div><div class='add'>+ *             it.</div><div class='add'>+ */</div><div class='add'>+ID rb_intern_str(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Retrieves the name mapped to the given id.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id         An id to query.</div><div class='add'>+ * @retval     NULL       No such id ever existed in the history.</div><div class='add'>+ * @retval     otherwise  A name that the id represents.</div><div class='add'>+ * @note       The return value  is managed by the interpreter.   Don't pass it</div><div class='add'>+ *             to free().</div><div class='add'>+ */</div><div class='add'>+const char *rb_id2name(ID id);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Detects if  the given name  is already interned or  not.  It first  tries to</div><div class='add'>+ * convert the  argument to  an instance  of ::rb_cString if  it is  neither an</div><div class='add'>+ * instance of ::rb_cString nor ::rb_cSymbol.  The conversion result is written</div><div class='add'>+ * back  to the  variable.   Then queries  if that  name  was already  interned</div><div class='add'>+ * before.  If found it returns such id, otherwise zero.</div><div class='add'>+ *</div><div class='add'>+ * We  eventually introduced  this API  to avoid  inadvertent symbol  pin-down.</div><div class='add'>+ * Before,  there was  no way  to know  if an  ID was  already interned  or not</div><div class='add'>+ * without actually  creating one (== leaking  memory).  By using this  API you</div><div class='add'>+ * can avoid such situations:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * bool does_interning_this_leak_memory(VALUE obj)</div><div class='add'>+ * {</div><div class='add'>+ *     auto tmp = obj;</div><div class='add'>+ *     if (auto id = rb_check_id(&amp;tmp); id) {</div><div class='add'>+ *         return false;</div><div class='add'>+ *     }</div><div class='add'>+ *     else {</div><div class='add'>+ *         return true; // Let GC sweep tmp if necessary.</div><div class='add'>+ *     }</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  namep              A pointer to a name to query.</div><div class='add'>+ * @pre            The object referred  by `*namep` must either  be an instance</div><div class='add'>+ *                 of ::rb_cSymbol, or an instance of ::rb_cString, or responds</div><div class='add'>+ *                 to `#to_str` method.</div><div class='add'>+ * @exception      rb_eTypeError      Can't convert `*namep` into ::rb_cString.</div><div class='add'>+ * @exception      rb_eEncodingError  Given string is non-ASCII.</div><div class='add'>+ * @retval         0                  No such id ever existed in the history.</div><div class='add'>+ * @retval         otherwise          The id that represents the given name.</div><div class='add'>+ * @post           The object  that `*namep`  points to  is a  converted result</div><div class='add'>+ *                 object, which  is always an instance  of either ::rb_cSymbol</div><div class='add'>+ *                 or ::rb_cString.</div><div class='add'>+ * @see            https://bugs.ruby-lang.org/issues/5072</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't know why this has to raise rb_eEncodingError.</div><div class='add'>+ */</div><div class='add'>+ID rb_check_id(volatile VALUE *namep);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @copydoc rb_intern_str()</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * :FIXME:  Can anyone  tell us  what is  the difference  between this  one and</div><div class='add'>+ * rb_intern_str()?  As far as @shyouhei reads the implementation it seems what</div><div class='add'>+ * rb_to_id() does is  is just waste some CPU time,  then call rb_intern_str().</div><div class='add'>+ * He hopes he is wrong.</div><div class='add'>+ */</div><div class='add'>+ID rb_to_id(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_id2name(), except it returns a Ruby's String instead of C's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id           An id to query.</div><div class='add'>+ * @retval     RUBY_Qfalse  No such id ever existed in the history.</div><div class='add'>+ * @retval     otherwise    An instance of ::rb_cString with the name of id.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * In reality "rb_id2str() is identical  to rb_id2name() except it returns Ruby</div><div class='add'>+ * string" is just describing things upside down; truth is `rb_id2name(foo)` is</div><div class='add'>+ * a shorthand of `RSTRING_PTR(rb_id2str(foo))`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_id2str(ID id);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_id2str(), except it takes an instance of ::rb_cSymbol rather</div><div class='add'>+ * than an ::ID.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  id           An id to query.</div><div class='add'>+ * @retval     RUBY_Qfalse  No such id ever existed in the history.</div><div class='add'>+ * @retval     otherwise    An instance of ::rb_cString with the name of id.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_sym2str(VALUE id);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_intern_str(), except  it  generates  a dynamic  symbol  if</div><div class='add'>+ * necessary.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name              The name of the id.</div><div class='add'>+ * @pre        `name`  must  either  be  an instance  of  ::rb_cSymbol,  or  an</div><div class='add'>+ *             instance of ::rb_cString, or responds to `#to_str` method.</div><div class='add'>+ * @exception  rb_eTypeError     Can't convert `name` into ::rb_cString.</div><div class='add'>+ * @exception  rb_eRuntimeError  Too many symbols.</div><div class='add'>+ * @return     A (possibly new) id whose value is the given name.</div><div class='add'>+ * @note       These   days  Ruby   internally   has  two   kinds  of   symbols</div><div class='add'>+ *             (static/dynamic).   Symbols created  using  this function  would</div><div class='add'>+ *             become dynamic ones; i.e. would  be garbage collected.  It could</div><div class='add'>+ *             be safer for you to use it than alternatives, when applicable.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_to_symbol(VALUE name);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_check_id(), except it  returns an instance  of ::rb_cSymbol</div><div class='add'>+ * instead.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  namep              A pointer to a name to query.</div><div class='add'>+ * @pre            The object referred  by `*namep` must either  be an instance</div><div class='add'>+ *                 of ::rb_cSymbol, or an instance of ::rb_cString, or responds</div><div class='add'>+ *                 to `#to_str` method.</div><div class='add'>+ * @exception      rb_eTypeError      Can't convert `*namep` into ::rb_cString.</div><div class='add'>+ * @exception      rb_eEncodingError  Given string is non-ASCII.</div><div class='add'>+ * @retval         RUBY_Qnil          No such id ever existed in the history.</div><div class='add'>+ * @retval         otherwise          The id that represents the given name.</div><div class='add'>+ * @post           The object  that `*namep`  points to  is a  converted result</div><div class='add'>+ *                 object, which  is always an instance  of either ::rb_cSymbol</div><div class='add'>+ *                 or ::rb_cString.</div><div class='add'>+ * @see            https://bugs.ruby-lang.org/issues/5072</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't know why this has to raise rb_eEncodingError.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_check_symbol(volatile VALUE *namep);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * This  is a  "tiny  optimisation" over  rb_intern().  If  you  pass a  string</div><div class='add'>+ * _literal_, and if your C compiler can special-case strlen of such literal to</div><div class='add'>+ * strength-reduce  into  an  integer  constant expression,  then  this  inline</div><div class='add'>+ * function can precalc a part of conversion.</div><div class='add'>+ *</div><div class='add'>+ * @note       This function also works  happily for non-constant strings.  Why</div><div class='add'>+ *             bother then?  Just apply liberally to everything.</div><div class='add'>+ * @note       But  #rb_intern() could  be faster  on compilers  with statement</div><div class='add'>+ *             expressions, because they can cache the created ::ID.</div><div class='add'>+ * @param[in]  str               The name of the id.</div><div class='add'>+ * @exception  rb_eRuntimeError  Too many symbols.</div><div class='add'>+ * @return     A (possibly new) id whose value is the given str.</div><div class='add'>+ * @note       These days  Ruby internally has  two kinds of symbols  (static /</div><div class='add'>+ *             dynamic).  Symbols  created using  this function would  become a</div><div class='add'>+ *             static one; i.e. would never be  garbage collected.  It is up to</div><div class='add'>+ *             you to avoid memory leaks.  Think twice before using it.</div><div class='add'>+ */</div><div class='add'>+static inline ID</div><div class='add'>+rb_intern_const(const char *str)</div><div class='add'>+{</div><div class='add'>+    size_t len = strlen(str);</div><div class='add'>+    return rb_intern2(str, RBIMPL_CAST((long)len));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail of #rb_intern().  Just don't use it.</div><div class='add'>+ */</div><div class='add'>+static inline ID</div><div class='add'>+rbimpl_intern_const(ID *ptr, const char *str)</div><div class='add'>+{</div><div class='add'>+    while (! *ptr) {</div><div class='add'>+        *ptr = rb_intern_const(str);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return *ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Old implementation detail of rb_intern().</div><div class='add'>+ * @deprecated Does anyone use it?  Preserved for backward compat.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_CONST_ID_CACHE(result, str)                \</div><div class='add'>+    {                                                   \</div><div class='add'>+        static ID rb_intern_id_cache;                   \</div><div class='add'>+        rbimpl_intern_const(&amp;rb_intern_id_cache, (str)); \</div><div class='add'>+        result rb_intern_id_cache;                      \</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Old implementation detail of rb_intern().</div><div class='add'>+ * @deprecated Does anyone use it?  Preserved for backward compat.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_CONST_ID(var, str) \</div><div class='add'>+    do { \</div><div class='add'>+        static ID rbimpl_id; \</div><div class='add'>+        (var) = rbimpl_intern_const(&amp;rbimpl_id, (str)); \</div><div class='add'>+    } while (0)</div><div class='add'>+</div><div class='add'>+#if defined(HAVE_STMT_AND_DECL_IN_EXPR)</div><div class='add'>+/* __builtin_constant_p and statement expression is available</div><div class='add'>+ * since gcc-2.7.2.3 at least. */</div><div class='add'>+#define rb_intern(str) \</div><div class='add'>+    (RBIMPL_CONSTANT_P(str) ? \</div><div class='add'>+     __extension__ ({ \</div><div class='add'>+         static ID rbimpl_id; \</div><div class='add'>+         rbimpl_intern_const(&amp;rbimpl_id, (str)); \</div><div class='add'>+     }) : \</div><div class='add'>+     (rb_intern)(str))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_SYMBOL_H */</div><div class='head'>diff --git a/include/ruby/internal/value.h b/include/ruby/internal/value.h<br/>new file mode 100644<br/>index 0000000000..805cd83513<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/value.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/value.h</a></div><div class='hunk'>@@ -0,0 +1,133 @@</div><div class='add'>+#ifndef RBIMPL_VALUE_H                               /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_VALUE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines ::VALUE and ::ID.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/static_assert.h"</div><div class='add'>+#include "ruby/backward/2/long_long.h"</div><div class='add'>+#include "ruby/backward/2/limits.h"</div><div class='add'>+</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Type that represents a Ruby object.  It is an unsigned integer of some kind,</div><div class='add'>+ * depending on platforms.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * VALUE value = rb_eval_string("ARGF.readlines.map.with_index");</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @warning  ::VALUE is not a pointer.</div><div class='add'>+ * @warning  ::VALUE can be wider than `long`.</div><div class='add'>+ */</div><div class='add'>+typedef uintptr_t VALUE;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Type that represents a Ruby identifier such as a variable name.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * ID method = rb_intern("method");</div><div class='add'>+ * VALUE result = rb_funcall(obj, method, 0);</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @note  ::rb_cSymbol is a Ruby-level data type for the same thing.</div><div class='add'>+ */</div><div class='add'>+typedef uintptr_t ID;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * A signed integer type that has the same width with ::VALUE.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei wonders: is it guaranteed  that `uintptr_t` and `intptr_t` are the</div><div class='add'>+ * same width?  As far as I read ISO/IEC 9899:2018 section 7.20.1.4 paragraph 1</div><div class='add'>+ * no such description is given... or defined elsewhere?</div><div class='add'>+ */</div><div class='add'>+typedef intptr_t SIGNED_VALUE;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to  `sizeof(VALUE)`, except it  is a macro  that can also  be used</div><div class='add'>+ * inside of preprocessor directives such as `#if`.  Handy on occasions.</div><div class='add'>+ */</div><div class='add'>+#define SIZEOF_VALUE SIZEOF_UINTPTR_T</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * A compile-time constant of type ::VALUE whose value is 0.</div><div class='add'>+ */</div><div class='add'>+#define RBIMPL_VALUE_NULL UINTPTR_C(0)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * A compile-time constant of type ::VALUE whose value is 1.</div><div class='add'>+ */</div><div class='add'>+#define RBIMPL_VALUE_ONE  UINTPTR_C(1)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Maximum possible value that a ::VALUE can take.</div><div class='add'>+ */</div><div class='add'>+#define RBIMPL_VALUE_FULL UINTPTR_MAX</div><div class='add'>+</div><div class='add'>+#elif defined HAVE_UINTPTR_T &amp;&amp; 0</div><div class='add'>+typedef uintptr_t VALUE;</div><div class='add'>+typedef uintptr_t ID;</div><div class='add'>+# define SIGNED_VALUE intptr_t</div><div class='add'>+# define SIZEOF_VALUE SIZEOF_UINTPTR_T</div><div class='add'>+# undef PRI_VALUE_PREFIX</div><div class='add'>+# define RBIMPL_VALUE_NULL UINTPTR_C(0)</div><div class='add'>+# define RBIMPL_VALUE_ONE  UINTPTR_C(1)</div><div class='add'>+# define RBIMPL_VALUE_FULL UINTPTR_MAX</div><div class='add'>+</div><div class='add'>+#elif SIZEOF_LONG == SIZEOF_VOIDP</div><div class='add'>+typedef unsigned long VALUE;</div><div class='add'>+typedef unsigned long ID;</div><div class='add'>+# define SIGNED_VALUE long</div><div class='add'>+# define SIZEOF_VALUE SIZEOF_LONG</div><div class='add'>+# define PRI_VALUE_PREFIX "l"</div><div class='add'>+# define RBIMPL_VALUE_NULL 0UL</div><div class='add'>+# define RBIMPL_VALUE_ONE  1UL</div><div class='add'>+# define RBIMPL_VALUE_FULL ULONG_MAX</div><div class='add'>+</div><div class='add'>+#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP</div><div class='add'>+typedef unsigned LONG_LONG VALUE;</div><div class='add'>+typedef unsigned LONG_LONG ID;</div><div class='add'>+# define SIGNED_VALUE LONG_LONG</div><div class='add'>+# define LONG_LONG_VALUE 1</div><div class='add'>+# define SIZEOF_VALUE SIZEOF_LONG_LONG</div><div class='add'>+# define PRI_VALUE_PREFIX PRI_LL_PREFIX</div><div class='add'>+# define RBIMPL_VALUE_NULL 0ULL</div><div class='add'>+# define RBIMPL_VALUE_ONE  1ULL</div><div class='add'>+# define RBIMPL_VALUE_FULL ULLONG_MAX</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# error ----&gt;&gt; ruby requires sizeof(void*) == sizeof(long) or sizeof(LONG_LONG) to be compiled. &lt;&lt;----</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+RBIMPL_STATIC_ASSERT(sizeof_int, SIZEOF_INT == sizeof(int));</div><div class='add'>+RBIMPL_STATIC_ASSERT(sizeof_long, SIZEOF_LONG == sizeof(long));</div><div class='add'>+RBIMPL_STATIC_ASSERT(sizeof_long_long, SIZEOF_LONG_LONG == sizeof(LONG_LONG));</div><div class='add'>+RBIMPL_STATIC_ASSERT(sizeof_voidp, SIZEOF_VOIDP == sizeof(void *));</div><div class='add'>+/** @endcond */</div><div class='add'>+#endif /* RBIMPL_VALUE_H */</div><div class='head'>diff --git a/include/ruby/internal/value_type.h b/include/ruby/internal/value_type.h<br/>new file mode 100644<br/>index 0000000000..977f60a009<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/value_type.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/value_type.h</a></div><div class='hunk'>@@ -0,0 +1,449 @@</div><div class='add'>+#ifndef RBIMPL_VALUE_TYPE_H                          /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_VALUE_TYPE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines enum ::ruby_value_type.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/assume.h"</div><div class='add'>+#include "ruby/internal/attr/artificial.h"</div><div class='add'>+#include "ruby/internal/attr/cold.h"</div><div class='add'>+#include "ruby/internal/attr/enum_extensibility.h"</div><div class='add'>+#include "ruby/internal/attr/forceinline.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/cast.h"</div><div class='add'>+#include "ruby/internal/constant_p.h"</div><div class='add'>+#include "ruby/internal/core/rbasic.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/error.h"</div><div class='add'>+#include "ruby/internal/has/builtin.h"</div><div class='add'>+#include "ruby/internal/special_consts.h"</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+</div><div class='add'>+#if defined(T_DATA)</div><div class='add'>+/*</div><div class='add'>+ * :!BEWARE!: (Recent?)   Solaris' &lt;nfs/nfs.h&gt;  have conflicting  definition of</div><div class='add'>+ * T_DATA.  Let us stop here.  Please have a workaround like this:</div><div class='add'>+ *</div><div class='add'>+ * ```C</div><div class='add'>+ * #include &lt;ruby/ruby.h&gt; // &lt;- Include this one first.</div><div class='add'>+ * #undef T_DATA          // &lt;- ... and stick to RUBY_T_DATA forever.</div><div class='add'>+ * #include &lt;nfs/nfs.h&gt;   // &lt;- OS-provided T_DATA introduced.</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * See also [ruby-core:4261]</div><div class='add'>+ */</div><div class='add'>+# error Bail out due to conflicting definition of T_DATA.</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define T_ARRAY    RUBY_T_ARRAY    /**&lt; @old{RUBY_T_ARRAY} */</div><div class='add'>+#define T_BIGNUM   RUBY_T_BIGNUM   /**&lt; @old{RUBY_T_BIGNUM} */</div><div class='add'>+#define T_CLASS    RUBY_T_CLASS    /**&lt; @old{RUBY_T_CLASS} */</div><div class='add'>+#define T_COMPLEX  RUBY_T_COMPLEX  /**&lt; @old{RUBY_T_COMPLEX} */</div><div class='add'>+#define T_DATA     RUBY_T_DATA     /**&lt; @old{RUBY_T_DATA} */</div><div class='add'>+#define T_FALSE    RUBY_T_FALSE    /**&lt; @old{RUBY_T_FALSE} */</div><div class='add'>+#define T_FILE     RUBY_T_FILE     /**&lt; @old{RUBY_T_FILE} */</div><div class='add'>+#define T_FIXNUM   RUBY_T_FIXNUM   /**&lt; @old{RUBY_T_FIXNUM} */</div><div class='add'>+#define T_FLOAT    RUBY_T_FLOAT    /**&lt; @old{RUBY_T_FLOAT} */</div><div class='add'>+#define T_HASH     RUBY_T_HASH     /**&lt; @old{RUBY_T_HASH} */</div><div class='add'>+#define T_ICLASS   RUBY_T_ICLASS   /**&lt; @old{RUBY_T_ICLASS} */</div><div class='add'>+#define T_IMEMO    RUBY_T_IMEMO    /**&lt; @old{RUBY_T_IMEMO} */</div><div class='add'>+#define T_MASK     RUBY_T_MASK     /**&lt; @old{RUBY_T_MASK} */</div><div class='add'>+#define T_MATCH    RUBY_T_MATCH    /**&lt; @old{RUBY_T_MATCH} */</div><div class='add'>+#define T_MODULE   RUBY_T_MODULE   /**&lt; @old{RUBY_T_MODULE} */</div><div class='add'>+#define T_MOVED    RUBY_T_MOVED    /**&lt; @old{RUBY_T_MOVED} */</div><div class='add'>+#define T_NIL      RUBY_T_NIL      /**&lt; @old{RUBY_T_NIL} */</div><div class='add'>+#define T_NODE     RUBY_T_NODE     /**&lt; @old{RUBY_T_NODE} */</div><div class='add'>+#define T_NONE     RUBY_T_NONE     /**&lt; @old{RUBY_T_NONE} */</div><div class='add'>+#define T_OBJECT   RUBY_T_OBJECT   /**&lt; @old{RUBY_T_OBJECT} */</div><div class='add'>+#define T_RATIONAL RUBY_T_RATIONAL /**&lt; @old{RUBY_T_RATIONAL} */</div><div class='add'>+#define T_REGEXP   RUBY_T_REGEXP   /**&lt; @old{RUBY_T_REGEXP} */</div><div class='add'>+#define T_STRING   RUBY_T_STRING   /**&lt; @old{RUBY_T_STRING} */</div><div class='add'>+#define T_STRUCT   RUBY_T_STRUCT   /**&lt; @old{RUBY_T_STRUCT} */</div><div class='add'>+#define T_SYMBOL   RUBY_T_SYMBOL   /**&lt; @old{RUBY_T_SYMBOL} */</div><div class='add'>+#define T_TRUE     RUBY_T_TRUE     /**&lt; @old{RUBY_T_TRUE} */</div><div class='add'>+#define T_UNDEF    RUBY_T_UNDEF    /**&lt; @old{RUBY_T_UNDEF} */</div><div class='add'>+#define T_ZOMBIE   RUBY_T_ZOMBIE   /**&lt; @old{RUBY_T_ZOMBIE} */</div><div class='add'>+</div><div class='add'>+#define BUILTIN_TYPE      RB_BUILTIN_TYPE   /**&lt; @old{RB_BUILTIN_TYPE} */</div><div class='add'>+#define DYNAMIC_SYM_P     RB_DYNAMIC_SYM_P  /**&lt; @old{RB_DYNAMIC_SYM_P} */</div><div class='add'>+#define RB_INTEGER_TYPE_P rb_integer_type_p /**&lt; @old{rb_integer_type_p} */</div><div class='add'>+#define SYMBOL_P          RB_SYMBOL_P       /**&lt; @old{RB_SYMBOL_P} */</div><div class='add'>+#define rb_type_p         RB_TYPE_P         /**&lt; @alias{RB_TYPE_P} */</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#define RB_BUILTIN_TYPE   RB_BUILTIN_TYPE</div><div class='add'>+#define RB_DYNAMIC_SYM_P  RB_DYNAMIC_SYM_P</div><div class='add'>+#define RB_FLOAT_TYPE_P   RB_FLOAT_TYPE_P</div><div class='add'>+#define RB_SYMBOL_P       RB_SYMBOL_P</div><div class='add'>+#define RB_TYPE_P         RB_TYPE_P</div><div class='add'>+#define Check_Type        Check_Type</div><div class='add'>+</div><div class='add'>+#if !RUBY_DEBUG</div><div class='add'>+# define RBIMPL_ASSERT_TYPE(v, t) RBIMPL_ASSERT_OR_ASSUME(RB_TYPE_P((v), (t)))</div><div class='add'>+#else</div><div class='add'>+# define RBIMPL_ASSERT_TYPE Check_Type</div><div class='add'>+#endif</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/** @old{rb_type} */</div><div class='add'>+#define TYPE(_)           RBIMPL_CAST((int)rb_type(_))</div><div class='add'>+</div><div class='add'>+/** C-level type of an object. */</div><div class='add'>+enum</div><div class='add'>+RBIMPL_ATTR_ENUM_EXTENSIBILITY(closed)</div><div class='add'>+ruby_value_type {</div><div class='add'>+    RUBY_T_NONE     = 0x00, /**&lt; Non-object (swept etc.) */</div><div class='add'>+</div><div class='add'>+    RUBY_T_OBJECT   = 0x01, /**&lt; @see struct ::RObject */</div><div class='add'>+    RUBY_T_CLASS    = 0x02, /**&lt; @see struct ::RClass and ::rb_cClass */</div><div class='add'>+    RUBY_T_MODULE   = 0x03, /**&lt; @see struct ::RClass and ::rb_cModule */</div><div class='add'>+    RUBY_T_FLOAT    = 0x04, /**&lt; @see struct ::RFloat */</div><div class='add'>+    RUBY_T_STRING   = 0x05, /**&lt; @see struct ::RString */</div><div class='add'>+    RUBY_T_REGEXP   = 0x06, /**&lt; @see struct ::RRegexp */</div><div class='add'>+    RUBY_T_ARRAY    = 0x07, /**&lt; @see struct ::RArray */</div><div class='add'>+    RUBY_T_HASH     = 0x08, /**&lt; @see struct ::RHash */</div><div class='add'>+    RUBY_T_STRUCT   = 0x09, /**&lt; @see struct ::RStruct */</div><div class='add'>+    RUBY_T_BIGNUM   = 0x0a, /**&lt; @see struct ::RBignum */</div><div class='add'>+    RUBY_T_FILE     = 0x0b, /**&lt; @see struct ::RFile */</div><div class='add'>+    RUBY_T_DATA     = 0x0c, /**&lt; @see struct ::RTypedData */</div><div class='add'>+    RUBY_T_MATCH    = 0x0d, /**&lt; @see struct ::RMatch */</div><div class='add'>+    RUBY_T_COMPLEX  = 0x0e, /**&lt; @see struct ::RComplex */</div><div class='add'>+    RUBY_T_RATIONAL = 0x0f, /**&lt; @see struct ::RRational */</div><div class='add'>+</div><div class='add'>+    RUBY_T_NIL      = 0x11, /**&lt; @see ::RUBY_Qnil */</div><div class='add'>+    RUBY_T_TRUE     = 0x12, /**&lt; @see ::RUBY_Qfalse */</div><div class='add'>+    RUBY_T_FALSE    = 0x13, /**&lt; @see ::RUBY_Qtrue */</div><div class='add'>+    RUBY_T_SYMBOL   = 0x14, /**&lt; @see struct ::RSymbol */</div><div class='add'>+    RUBY_T_FIXNUM   = 0x15, /**&lt; Integers formerly known as Fixnums. */</div><div class='add'>+    RUBY_T_UNDEF    = 0x16, /**&lt; @see ::RUBY_Qundef */</div><div class='add'>+</div><div class='add'>+    RUBY_T_IMEMO    = 0x1a, /**&lt; @see struct ::RIMemo */</div><div class='add'>+    RUBY_T_NODE     = 0x1b, /**&lt; @see struct ::RNode */</div><div class='add'>+    RUBY_T_ICLASS   = 0x1c, /**&lt; Hidden classes known as IClasses. */</div><div class='add'>+    RUBY_T_ZOMBIE   = 0x1d, /**&lt; @see struct ::RZombie */</div><div class='add'>+    RUBY_T_MOVED    = 0x1e, /**&lt; @see struct ::RMoved */</div><div class='add'>+</div><div class='add'>+    RUBY_T_MASK     = 0x1f  /**&lt; Bitmask of ::ruby_value_type. */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+RBIMPL_ATTR_COLD()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This was  the old implementation  of Check_Type(), but they  diverged.  This</div><div class='add'>+ * one remains  for theoretical backwards compatibility.   People normally need</div><div class='add'>+ * not use it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj            An object.</div><div class='add'>+ * @param[in]  t              A type.</div><div class='add'>+ * @exception  rb_eTypeError  `obj` is not of type `t`.</div><div class='add'>+ * @exception  rb_eFatal      `obj` is corrupt.</div><div class='add'>+ * @post       Upon successful return `obj` is guaranteed to have type `t`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The second argument shall have been enum ::ruby_value_type.  But at the time</div><div class='add'>+ * matz designed this  function he still used  K&amp;R C.  There was  no such thing</div><div class='add'>+ * like a function prototype.  We can no longer change this API.</div><div class='add'>+ */</div><div class='add'>+void rb_check_type(VALUE obj, int t);</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries the type of the object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Object in question.</div><div class='add'>+ * @pre        `obj` must not be a special constant.</div><div class='add'>+ * @return     The type of `obj`.</div><div class='add'>+ */</div><div class='add'>+static inline enum ruby_value_type</div><div class='add'>+RB_BUILTIN_TYPE(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(! RB_SPECIAL_CONST_P(obj));</div><div class='add'>+</div><div class='add'>+#if 0 &amp;&amp; defined __GNUC__ &amp;&amp; !defined __clang__</div><div class='add'>+    /* Don't move the access to `flags` before the preceding</div><div class='add'>+     * RB_SPECIAL_CONST_P check. */</div><div class='add'>+    __asm volatile("": : :"memory");</div><div class='add'>+#endif</div><div class='add'>+    VALUE ret = RBASIC(obj)-&gt;flags &amp; RUBY_T_MASK;</div><div class='add'>+    return RBIMPL_CAST((enum ruby_value_type)ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the object is an instance of ::rb_cInteger.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question.</div><div class='add'>+ * @retval     true   It is.</div><div class='add'>+ * @retval     false  It isn't.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_integer_type_p(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (RB_FIXNUM_P(obj)) {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_SPECIAL_CONST_P(obj)) {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RB_BUILTIN_TYPE(obj) == RUBY_T_BIGNUM;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+/**</div><div class='add'>+ * Identical to RB_BUILTIN_TYPE(), except it can also accept special constants.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Object in question.</div><div class='add'>+ * @return     The type of `obj`.</div><div class='add'>+ */</div><div class='add'>+static inline enum ruby_value_type</div><div class='add'>+rb_type(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (! RB_SPECIAL_CONST_P(obj)) {</div><div class='add'>+        return RB_BUILTIN_TYPE(obj);</div><div class='add'>+    }</div><div class='add'>+    else if (obj == RUBY_Qfalse) {</div><div class='add'>+        return RUBY_T_FALSE;</div><div class='add'>+    }</div><div class='add'>+    else if (obj == RUBY_Qnil) {</div><div class='add'>+        return RUBY_T_NIL;</div><div class='add'>+    }</div><div class='add'>+    else if (obj == RUBY_Qtrue) {</div><div class='add'>+        return RUBY_T_TRUE;</div><div class='add'>+    }</div><div class='add'>+    else if (obj == RUBY_Qundef) {</div><div class='add'>+        return RUBY_T_UNDEF;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_FIXNUM_P(obj)) {</div><div class='add'>+        return RUBY_T_FIXNUM;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_STATIC_SYM_P(obj)) {</div><div class='add'>+        return RUBY_T_SYMBOL;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        RBIMPL_ASSUME(RB_FLONUM_P(obj));</div><div class='add'>+        return RUBY_T_FLOAT;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the object is an instance of ::rb_cFloat.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question.</div><div class='add'>+ * @retval     true   It is.</div><div class='add'>+ * @retval     false  It isn't.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_FLOAT_TYPE_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (RB_FLONUM_P(obj)) {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_SPECIAL_CONST_P(obj)) {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RB_BUILTIN_TYPE(obj) == RUBY_T_FLOAT;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the object is a dynamic symbol.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question.</div><div class='add'>+ * @retval     true   It is.</div><div class='add'>+ * @retval     false  It isn't.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_DYNAMIC_SYM_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (RB_SPECIAL_CONST_P(obj)) {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RB_BUILTIN_TYPE(obj) == RUBY_T_SYMBOL;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the object is an instance of ::rb_cSymbol.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    Object in question.</div><div class='add'>+ * @retval     true   It is.</div><div class='add'>+ * @retval     false  It isn't.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_SYMBOL_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return RB_STATIC_SYM_P(obj) || RB_DYNAMIC_SYM_P(obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This is an implementation detail of RB_TYPE_P().  Just don't use it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An object.</div><div class='add'>+ * @param[in]  t      A type.</div><div class='add'>+ * @retval     true   `obj` is of type `t`.</div><div class='add'>+ * @retval     false  Otherwise.</div><div class='add'>+ */</div><div class='add'>+static bool</div><div class='add'>+rbimpl_RB_TYPE_P_fastpath(VALUE obj, enum ruby_value_type t)</div><div class='add'>+{</div><div class='add'>+    if (t == RUBY_T_TRUE) {</div><div class='add'>+        return obj == RUBY_Qtrue;</div><div class='add'>+    }</div><div class='add'>+    else if (t == RUBY_T_FALSE) {</div><div class='add'>+        return obj == RUBY_Qfalse;</div><div class='add'>+    }</div><div class='add'>+    else if (t == RUBY_T_NIL) {</div><div class='add'>+        return obj == RUBY_Qnil;</div><div class='add'>+    }</div><div class='add'>+    else if (t == RUBY_T_UNDEF) {</div><div class='add'>+        return obj == RUBY_Qundef;</div><div class='add'>+    }</div><div class='add'>+    else if (t == RUBY_T_FIXNUM) {</div><div class='add'>+        return RB_FIXNUM_P(obj);</div><div class='add'>+    }</div><div class='add'>+    else if (t == RUBY_T_SYMBOL) {</div><div class='add'>+        return RB_SYMBOL_P(obj);</div><div class='add'>+    }</div><div class='add'>+    else if (t == RUBY_T_FLOAT) {</div><div class='add'>+        return RB_FLOAT_TYPE_P(obj);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_SPECIAL_CONST_P(obj)) {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+    else if (t == RB_BUILTIN_TYPE(obj)) {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the given object is of given type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj    An object.</div><div class='add'>+ * @param[in]  t      A type.</div><div class='add'>+ * @retval     true   `obj` is of type `t`.</div><div class='add'>+ * @retval     false  Otherwise.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  function is  a super-duper  hot  path.  Optimised  targeting modern  C</div><div class='add'>+ * compilers and x86_64 architecture.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+RB_TYPE_P(VALUE obj, enum ruby_value_type t)</div><div class='add'>+{</div><div class='add'>+    if (RBIMPL_CONSTANT_P(t)) {</div><div class='add'>+        return rbimpl_RB_TYPE_P_fastpath(obj, t);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return t == rb_type(obj);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+/* Clang, unlike GCC, cannot propagate __builtin_constant_p beyond function</div><div class='add'>+ * boundary. */</div><div class='add'>+#if defined(__clang__)</div><div class='add'>+# undef RB_TYPE_P</div><div class='add'>+# define RB_TYPE_P(obj, t)                  \</div><div class='add'>+    (RBIMPL_CONSTANT_P(t)                  ? \</div><div class='add'>+     rbimpl_RB_TYPE_P_fastpath((obj), (t)) : \</div><div class='add'>+     (RB_TYPE_P)((obj), (t)))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* clang 3.x (4.2 compatible) can't eliminate CSE of RB_BUILTIN_TYPE</div><div class='add'>+ * in inline function and caller function</div><div class='add'>+ * See also 8998c06461ea0bef11b3aeb30b6d2ab71c8762ba</div><div class='add'>+ */</div><div class='add'>+#if RBIMPL_COMPILER_BEFORE(Clang, 4, 0, 0)</div><div class='add'>+# undef rb_integer_type_p</div><div class='add'>+# define rb_integer_type_p(obj)                                 \</div><div class='add'>+    __extension__ ({                                            \</div><div class='add'>+        const VALUE integer_type_obj = (obj);                   \</div><div class='add'>+        (RB_FIXNUM_P(integer_type_obj) ||                       \</div><div class='add'>+         (!RB_SPECIAL_CONST_P(integer_type_obj) &amp;&amp;              \</div><div class='add'>+          RB_BUILTIN_TYPE(integer_type_obj) == RUBY_T_BIGNUM)); \</div><div class='add'>+    })</div><div class='add'>+#endif</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ * Defined in ruby/internal/core/rtypeddata.h</div><div class='add'>+ */</div><div class='add'>+static inline bool rbimpl_rtypeddata_p(VALUE obj);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  RB_TYPE_P(),  except  it  raises  exceptions  on  predication</div><div class='add'>+ * failure.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  v              An object.</div><div class='add'>+ * @param[in]  t              A type.</div><div class='add'>+ * @exception  rb_eTypeError  `obj` is not of type `t`.</div><div class='add'>+ * @exception  rb_eFatal      `obj` is corrupt.</div><div class='add'>+ * @post       Upon successful return `obj` is guaranteed to have type `t`.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+Check_Type(VALUE v, enum ruby_value_type t)</div><div class='add'>+{</div><div class='add'>+    if (RB_UNLIKELY(! RB_TYPE_P(v, t))) {</div><div class='add'>+        goto unexpected_type;</div><div class='add'>+    }</div><div class='add'>+    else if (t == RUBY_T_DATA &amp;&amp; rbimpl_rtypeddata_p(v)) {</div><div class='add'>+        /* Typed data is not simple `T_DATA`, see `rb_check_type` */</div><div class='add'>+        goto unexpected_type;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+  unexpected_type:</div><div class='add'>+    rb_unexpected_type(v, t);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_VALUE_TYPE_H */</div><div class='head'>diff --git a/include/ruby/internal/variable.h b/include/ruby/internal/variable.h<br/>new file mode 100644<br/>index 0000000000..c017ffe3f7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/variable.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/variable.h</a></div><div class='hunk'>@@ -0,0 +1,337 @@</div><div class='add'>+#ifndef RBIMPL_VARIABLE_H                            /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_VARIABLE_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Declares rb_define_variable().</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Type that represents a global variable getter function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      id    The variable name.</div><div class='add'>+ * @param[in,out]  data  Where the value is stored.</div><div class='add'>+ * @return         The value that shall be visible from Ruby.</div><div class='add'>+ */</div><div class='add'>+typedef VALUE rb_gvar_getter_t(ID id, VALUE *data);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Type that represents a global variable setter function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      val   The value to set.</div><div class='add'>+ * @param[in]      id    The variable name.</div><div class='add'>+ * @param[in,out]  data  Where the value is to be stored.</div><div class='add'>+ */</div><div class='add'>+typedef void  rb_gvar_setter_t(VALUE val, ID id, VALUE *data);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Type that represents a global variable marker function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  var  Where the value is to be stored.</div><div class='add'>+ */</div><div class='add'>+typedef void  rb_gvar_marker_t(VALUE *var);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated</div><div class='add'>+ *</div><div class='add'>+ * This function has no actual usage (than in ruby itself).  Please ignore.  It</div><div class='add'>+ * was a bad idea to expose this function  to 3rd parties, but we can no longer</div><div class='add'>+ * delete it.</div><div class='add'>+ */</div><div class='add'>+rb_gvar_getter_t rb_gvar_undef_getter;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated</div><div class='add'>+ *</div><div class='add'>+ * This function has no actual usage (than in ruby itself).  Please ignore.  It</div><div class='add'>+ * was a bad idea to expose this function  to 3rd parties, but we can no longer</div><div class='add'>+ * delete it.</div><div class='add'>+ */</div><div class='add'>+rb_gvar_setter_t rb_gvar_undef_setter;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated</div><div class='add'>+ *</div><div class='add'>+ * This function has no actual usage (than in ruby itself).  Please ignore.  It</div><div class='add'>+ * was a bad idea to expose this function  to 3rd parties, but we can no longer</div><div class='add'>+ * delete it.</div><div class='add'>+ */</div><div class='add'>+rb_gvar_marker_t rb_gvar_undef_marker;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the getter function that  backs global variables defined from a ruby</div><div class='add'>+ * script.  Extension  libraries can use this  if its global variable  needs no</div><div class='add'>+ * custom logic.</div><div class='add'>+ */</div><div class='add'>+rb_gvar_getter_t rb_gvar_val_getter;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the setter function that  backs global variables defined from a ruby</div><div class='add'>+ * script.  Extension  libraries can use this  if its global variable  needs no</div><div class='add'>+ * custom logic.</div><div class='add'>+ */</div><div class='add'>+rb_gvar_setter_t rb_gvar_val_setter;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is the setter function that  backs global variables defined from a ruby</div><div class='add'>+ * script.  Extension  libraries can use this  if its global variable  needs no</div><div class='add'>+ * custom logic.</div><div class='add'>+ */</div><div class='add'>+rb_gvar_marker_t rb_gvar_val_marker;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated</div><div class='add'>+ *</div><div class='add'>+ * This function has no actual usage (than in ruby itself).  Please ignore.  It</div><div class='add'>+ * was a bad idea to expose this function  to 3rd parties, but we can no longer</div><div class='add'>+ * delete it.</div><div class='add'>+ */</div><div class='add'>+rb_gvar_getter_t rb_gvar_var_getter;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated</div><div class='add'>+ *</div><div class='add'>+ * This function has no actual usage (than in ruby itself).  Please ignore.  It</div><div class='add'>+ * was a bad idea to expose this function  to 3rd parties, but we can no longer</div><div class='add'>+ * delete it.</div><div class='add'>+ */</div><div class='add'>+rb_gvar_setter_t rb_gvar_var_setter;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated</div><div class='add'>+ *</div><div class='add'>+ * This function has no actual usage (than in ruby itself).  Please ignore.  It</div><div class='add'>+ * was a bad idea to expose this function  to 3rd parties, but we can no longer</div><div class='add'>+ * delete it.</div><div class='add'>+ */</div><div class='add'>+rb_gvar_marker_t rb_gvar_var_marker;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * This function just raises ::rb_eNameError.   Handy when you want to prohibit</div><div class='add'>+ * a global variable from being squashed by someone.</div><div class='add'>+ */</div><div class='add'>+rb_gvar_setter_t rb_gvar_readonly_setter;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * "Shares" a global variable between Ruby and C.  Normally a Ruby-level global</div><div class='add'>+ * variable  is stored  somewhere deep  inside of  the interpreter's  execution</div><div class='add'>+ * context, but this way you can explicitly specify its storage.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * static VALUE foo;</div><div class='add'>+ *</div><div class='add'>+ * extern "C" void</div><div class='add'>+ * init_Foo(void)</div><div class='add'>+ * {</div><div class='add'>+ *     foo = rb_eval_string("...");</div><div class='add'>+ *     rb_define_variable("$foo", &amp;foo);</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * In the above  example a Ruby global  variable named `$foo` is stored  in a C</div><div class='add'>+ * global variable named `foo`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name  Variable (Ruby side).</div><div class='add'>+ * @param[in]  var   Variable (C side).</div><div class='add'>+ * @post       Ruby level  global variable named  `name` is defined  if absent,</div><div class='add'>+ *             and its storage is set to `var`.</div><div class='add'>+ */</div><div class='add'>+void rb_define_variable(const char *name, VALUE *var);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Defines a global variable that  is purely function-backended.  By using this</div><div class='add'>+ * API a programmer can define a  global variable that dynamically changes from</div><div class='add'>+ * time to time.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name   Variable name, in C's string.</div><div class='add'>+ * @param[in]  getter A getter function.</div><div class='add'>+ * @param[in]  setter A setter function.</div><div class='add'>+ * @post       Ruby level global variable named `name` is defined if absent.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't know if this is an  Easter egg or an official feature, but</div><div class='add'>+ * you can pass  0 to the third argument (setter).   That effectively nullifies</div><div class='add'>+ * any efforts to write to the defining global variable.</div><div class='add'>+ */</div><div class='add'>+void rb_define_virtual_variable(const char *name, rb_gvar_getter_t *getter, rb_gvar_setter_t *setter);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Identical to  rb_define_virtual_variable(), but can also  specify a storage.</div><div class='add'>+ * A programmer can use the storage for e.g.  memoisation, storing intermediate</div><div class='add'>+ * computation result, etc.</div><div class='add'>+ *</div><div class='add'>+ * Also you can pass 0 to this function, unlike other variants:</div><div class='add'>+ *</div><div class='add'>+ *   - When getter is 0 ::rb_gvar_var_getter is used instead.</div><div class='add'>+ *   - When setter is 0 ::rb_gvar_var_setter is used instead.</div><div class='add'>+ *   - When data is 0, you must  specify a non-zero setter function.  Otherwise</div><div class='add'>+ *     ::rb_gvar_var_setter tries to write to `*NULL`, and just causes SEGV.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name   Variable name, in C's string.</div><div class='add'>+ * @param[in]  var    Variable storage.</div><div class='add'>+ * @param[in]  getter A getter function.</div><div class='add'>+ * @param[in]  setter A setter function.</div><div class='add'>+ * @post       Ruby level global variable named `name` is defined if absent.</div><div class='add'>+ */</div><div class='add'>+void rb_define_hooked_variable(const char *name, VALUE *var, rb_gvar_getter_t *getter, rb_gvar_setter_t *setter);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_define_variable(), except it does not allow Ruby programs to</div><div class='add'>+ * assign values  to such  global variable.   C codes can  still set  values at</div><div class='add'>+ * will.   This  could be  handy  for  you  when implementing  an  `errno`-like</div><div class='add'>+ * experience, where  a method updates a  read-only global variable as  a side-</div><div class='add'>+ * effect.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name  Variable (Ruby side).</div><div class='add'>+ * @param[in]  var   Variable (C side).</div><div class='add'>+ * @post       Ruby level  global variable named  `name` is defined  if absent,</div><div class='add'>+ *             and its storage is set to `var`.</div><div class='add'>+ */</div><div class='add'>+void rb_define_readonly_variable(const char *name, const VALUE *var);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Defines a Ruby level constant under a namespace.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  klass            Namespace for the constant to reside.</div><div class='add'>+ * @param[in]   name             Name of the constant.</div><div class='add'>+ * @param[in]   val              Value of the constant.</div><div class='add'>+ * @exception   rb_eTypeError    `klass` is not a kind of ::rb_cModule.</div><div class='add'>+ * @exception   rb_eFrozenError  `klass` is frozen.</div><div class='add'>+ * @post        Ruby level constant `klass::name` is defined to be `val`.</div><div class='add'>+ * @note        This API  does not stop  you from  defining a constant  that is</div><div class='add'>+ *              unable  to   reach  from   ruby  (like  for   instance  passing</div><div class='add'>+ *              non-capital letter to `name`).</div><div class='add'>+ * @note        This API  does not  stop you from  overwriting a  constant that</div><div class='add'>+ *              already exist.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+void rb_define_const(VALUE klass, const char *name, VALUE val);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_define_const(),  except   it  defines  that  of  "global",</div><div class='add'>+ * i.e. toplevel constant.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   name             Name of the constant.</div><div class='add'>+ * @param[in]   val              Value of the constant.</div><div class='add'>+ * @exception   rb_eFrozenError  ::rb_cObject is frozen.</div><div class='add'>+ * @post        Ruby level constant \::name is defined to be `val`.</div><div class='add'>+ * @note        This API  does not stop  you from  defining a constant  that is</div><div class='add'>+ *              unable  to   reach  from   ruby  (like  for   instance  passing</div><div class='add'>+ *              non-capital letter to `name`).</div><div class='add'>+ * @note        This API  does not  stop you from  overwriting a  constant that</div><div class='add'>+ *              already exist.</div><div class='add'>+ */</div><div class='add'>+void rb_define_global_const(const char *name, VALUE val);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Asserts  that the  given  constant  is deprecated.   Attempt  to refer  such</div><div class='add'>+ * constant will produce a warning.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  mod              Namespace of the target constant.</div><div class='add'>+ * @param[in]  name             Name of the constant.</div><div class='add'>+ * @exception  rb_eNameError    No such constant.</div><div class='add'>+ * @exception  rb_eFrozenError  `mod` is frozen.</div><div class='add'>+ * @post       `name` under `mod` is deprecated.</div><div class='add'>+ */</div><div class='add'>+void rb_deprecate_constant(VALUE mod, const char *name);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Assigns to a global variable.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name  Target global variable.</div><div class='add'>+ * @param[in]  val   Value to assign.</div><div class='add'>+ * @return     Passed value.</div><div class='add'>+ * @post       Ruby level  global variable named  `name` is defined  if absent,</div><div class='add'>+ *             whose value is set to `val`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above  description  is  in  fact   inaccurate.   This  API  interfaces  with</div><div class='add'>+ * `set_trace_func`.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_gv_set(const char *name, VALUE val);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Obtains a global variable.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  name       Global variable to query.</div><div class='add'>+ * @retval     RUBY_Qnil  The global variable does not exist.</div><div class='add'>+ * @retval     otherwise  The value assigned to the global variable.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Unlike rb_gv_set(), there is no way to trace this function.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_gv_get(const char *name);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Obtains an instance variable.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj                Target object.</div><div class='add'>+ * @param[in]  name               Target instance variable to query.</div><div class='add'>+ * @exception  rb_eEncodingError  `name` is corrupt (contains Hanzi etc.).</div><div class='add'>+ * @retval     RUBY_nil           No such instance variable.</div><div class='add'>+ * @retval     otherwise          The value assigned to the instance variable.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_iv_get(VALUE obj, const char *name);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Assigns to an instance variable.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj                Target object.</div><div class='add'>+ * @param[in]   name               Target instance variable.</div><div class='add'>+ * @param[in]   val                Value to assign.</div><div class='add'>+ * @exception   rb_eFrozenError    Can't modify `obj`.</div><div class='add'>+ * @exception   rb_eArgError       `obj` has too many instance variables.</div><div class='add'>+ * @return      Passed value.</div><div class='add'>+ * @post        An  instance variable  named  `name` is  defined  if absent  on</div><div class='add'>+ *              `obj`, whose value is set to `val`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function does not stop you form creating an ASCII-incompatible instance</div><div class='add'>+ * variable, but there is no way to get one because rb_iv_get raises exceptions</div><div class='add'>+ * for such things.  This design seems broken...  But no idea why.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_iv_set(VALUE obj, const char *name, VALUE val);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_VARIABLE_H */</div><div class='head'>diff --git a/include/ruby/internal/warning_push.h b/include/ruby/internal/warning_push.h<br/>new file mode 100644<br/>index 0000000000..f5981633f8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/warning_push.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/warning_push.h</a></div><div class='hunk'>@@ -0,0 +1,124 @@</div><div class='add'>+#ifndef RBIMPL_WARNING_PUSH_H                        /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_WARNING_PUSH_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Defines #RBIMPL_WARNING_PUSH.</div><div class='add'>+ *</div><div class='add'>+ * ### Q&amp;A ###</div><div class='add'>+ *</div><div class='add'>+ * Q: Why all the macros defined in this file are function-like macros?</div><div class='add'>+ *</div><div class='add'>+ * A: Sigh.   This  is  because of  Doxygen.  Its  `SKIP_FUNCTION_MACROS = YES`</div><div class='add'>+ *    configuration setting  requests us  that if  we want  it to  ignore these</div><div class='add'>+ *    macros,  then we  have to  do  two things:  (1)  let them  be defined  as</div><div class='add'>+ *    function-like macros,  and (2) place  them separately in their  own line,</div><div class='add'>+ *    like below:</div><div class='add'>+ *</div><div class='add'>+ *    ```CXX</div><div class='add'>+ *    // NG -- foo's type  considered something like `unsigned int`.</div><div class='add'>+ *    RBIMPL_WARNING_PUSH</div><div class='add'>+ *    int foo(void);</div><div class='add'>+ *    RBIMPL_WARNING_POP</div><div class='add'>+ *</div><div class='add'>+ *    // OK -- the macros are ignored by Doxygen.</div><div class='add'>+ *    RBIMPL_WARNING_PUSH()</div><div class='add'>+ *    int foo(void);</div><div class='add'>+ *    RBIMPL_WARNING_POP()</div><div class='add'>+ *    ```</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_is.h"</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+</div><div class='add'>+#if defined(__DOXYGEN__)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Pushes compiler warning state.</div><div class='add'>+ */</div><div class='add'>+#define RBIMPL_WARNING_PUSH()        __pragma(warning(push))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Pops compiler warning state.</div><div class='add'>+ */</div><div class='add'>+#define RBIMPL_WARNING_POP()         __pragma(warning(pop))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Turns a warning into a fatal error.</div><div class='add'>+ *</div><div class='add'>+ * @param  flag  A flag that represents the kind of warnings.</div><div class='add'>+ */</div><div class='add'>+#define RBIMPL_WARNING_ERROR(flag)   __pragma(warning(error: flag))</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * Suppresses a warning.</div><div class='add'>+ *</div><div class='add'>+ * @param  flag  A flag that represents the kind of warnings.</div><div class='add'>+ */</div><div class='add'>+#define RBIMPL_WARNING_IGNORED(flag) __pragma(warning(disable: flag))</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(MSVC, 12, 0, 0)</div><div class='add'>+# /* Not sure exactly when but it seems VC++ 6.0 is a version with it.*/</div><div class='add'>+# define RBIMPL_WARNING_PUSH()        __pragma(warning(push))</div><div class='add'>+# define RBIMPL_WARNING_POP()         __pragma(warning(pop))</div><div class='add'>+# define RBIMPL_WARNING_ERROR(flag)   __pragma(warning(error: flag))</div><div class='add'>+# define RBIMPL_WARNING_IGNORED(flag) __pragma(warning(disable: flag))</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0)</div><div class='add'>+# define RBIMPL_WARNING_PUSH()        __pragma(warning(push))</div><div class='add'>+# define RBIMPL_WARNING_POP()         __pragma(warning(pop))</div><div class='add'>+# define RBIMPL_WARNING_ERROR(flag)   __pragma(warning(error: flag))</div><div class='add'>+# define RBIMPL_WARNING_IGNORED(flag) __pragma(warning(disable: flag))</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_IS(Clang) || RBIMPL_COMPILER_IS(Apple)</div><div class='add'>+# /* Not sure exactly when but it seems LLVM 2.6.0 is a version with it. */</div><div class='add'>+# define RBIMPL_WARNING_PRAGMA0(x)    _Pragma(# x)</div><div class='add'>+# define RBIMPL_WARNING_PRAGMA1(x)    RBIMPL_WARNING_PRAGMA0(clang diagnostic x)</div><div class='add'>+# define RBIMPL_WARNING_PRAGMA2(x, y) RBIMPL_WARNING_PRAGMA1(x # y)</div><div class='add'>+# define RBIMPL_WARNING_PUSH()        RBIMPL_WARNING_PRAGMA1(push)</div><div class='add'>+# define RBIMPL_WARNING_POP()         RBIMPL_WARNING_PRAGMA1(pop)</div><div class='add'>+# define RBIMPL_WARNING_ERROR(flag)   RBIMPL_WARNING_PRAGMA2(error, flag)</div><div class='add'>+# define RBIMPL_WARNING_IGNORED(flag) RBIMPL_WARNING_PRAGMA2(ignored, flag)</div><div class='add'>+</div><div class='add'>+#elif RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0)</div><div class='add'>+# /* https://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Diagnostic-Pragmas.html */</div><div class='add'>+# define RBIMPL_WARNING_PRAGMA0(x)    _Pragma(# x)</div><div class='add'>+# define RBIMPL_WARNING_PRAGMA1(x)    RBIMPL_WARNING_PRAGMA0(GCC diagnostic x)</div><div class='add'>+# define RBIMPL_WARNING_PRAGMA2(x, y) RBIMPL_WARNING_PRAGMA1(x # y)</div><div class='add'>+# define RBIMPL_WARNING_PUSH()        RBIMPL_WARNING_PRAGMA1(push)</div><div class='add'>+# define RBIMPL_WARNING_POP()         RBIMPL_WARNING_PRAGMA1(pop)</div><div class='add'>+# define RBIMPL_WARNING_ERROR(flag)   RBIMPL_WARNING_PRAGMA2(error, flag)</div><div class='add'>+# define RBIMPL_WARNING_IGNORED(flag) RBIMPL_WARNING_PRAGMA2(ignored, flag)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+# /* :FIXME: improve here */</div><div class='add'>+# define RBIMPL_WARNING_PUSH()        /* void */</div><div class='add'>+# define RBIMPL_WARNING_POP()         /* void */</div><div class='add'>+# define RBIMPL_WARNING_ERROR(flag)   /* void */</div><div class='add'>+# define RBIMPL_WARNING_IGNORED(flag) /* void */</div><div class='add'>+#endif /* _MSC_VER */</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_WARNING_PUSH_H */</div><div class='head'>diff --git a/include/ruby/internal/xmalloc.h b/include/ruby/internal/xmalloc.h<br/>new file mode 100644<br/>index 0000000000..57552e4e7d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/internal/xmalloc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/internal/xmalloc.h</a></div><div class='hunk'>@@ -0,0 +1,392 @@</div><div class='add'>+#ifndef RBIMPL_XMALLOC_H                             /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RBIMPL_XMALLOC_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are</div><div class='add'>+ *             implementation details.   Don't take  them as canon.  They could</div><div class='add'>+ *             rapidly appear then vanish.  The name (path) of this header file</div><div class='add'>+ *             is also an  implementation detail.  Do not expect  it to persist</div><div class='add'>+ *             at the place it is now.  Developers are free to move it anywhere</div><div class='add'>+ *             anytime at will.</div><div class='add'>+ * @note       To  ruby-core:  remember  that   this  header  can  be  possibly</div><div class='add'>+ *             recursively included  from extension  libraries written  in C++.</div><div class='add'>+ *             Do not  expect for  instance `__VA_ARGS__` is  always available.</div><div class='add'>+ *             We assume C99  for ruby itself but we don't  assume languages of</div><div class='add'>+ *             extension libraries.  They could be written in C++98.</div><div class='add'>+ * @brief      Declares ::ruby_xmalloc().</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STDLIB_H</div><div class='add'>+# include &lt;stdlib.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/alloc_size.h"</div><div class='add'>+#include "ruby/internal/attr/nodiscard.h"</div><div class='add'>+#include "ruby/internal/attr/noexcept.h"</div><div class='add'>+#include "ruby/internal/attr/restrict.h"</div><div class='add'>+#include "ruby/internal/attr/returns_nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ * @warning  Do not touch this macro.</div><div class='add'>+ * @warning  It is an implementation detail.</div><div class='add'>+ * @warning  It was a failure at the first place to let you know about it.</div><div class='add'>+ * @warning  The  value of  this  macro  must match  for  ruby  itself and  all</div><div class='add'>+ *           extension  libraries, otherwise  serious  memory corruption  shall</div><div class='add'>+ *           occur.</div><div class='add'>+ */</div><div class='add'>+#ifndef USE_GC_MALLOC_OBJ_INFO_DETAILS</div><div class='add'>+# define USE_GC_MALLOC_OBJ_INFO_DETAILS 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define xmalloc   ruby_xmalloc   /**&lt; @old{ruby_xmalloc} */</div><div class='add'>+#define xmalloc2  ruby_xmalloc2  /**&lt; @old{ruby_xmalloc2} */</div><div class='add'>+#define xcalloc   ruby_xcalloc   /**&lt; @old{ruby_xcalloc} */</div><div class='add'>+#define xrealloc  ruby_xrealloc  /**&lt; @old{ruby_xrealloc} */</div><div class='add'>+#define xrealloc2 ruby_xrealloc2 /**&lt; @old{ruby_xrealloc2} */</div><div class='add'>+#define xfree     ruby_xfree     /**&lt; @old{ruby_xfree} */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RESTRICT()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((1))</div><div class='add'>+/**</div><div class='add'>+ * Allocates a  storage instance.  It is  largely the same as  system malloc(),</div><div class='add'>+ * except:</div><div class='add'>+ *</div><div class='add'>+ *   - It raises Ruby exceptions instead of returning NULL, and</div><div class='add'>+ *   - In case of `ENOMEM` it tries to GC to make some room.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  size            Requested amount of memory.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left for `size` bytes allocation.</div><div class='add'>+ * @return     A valid pointer  to an allocated storage instance;  which has at</div><div class='add'>+ *             least `size` bytes width, with appropriate alignment detected by</div><div class='add'>+ *             the underlying malloc() routine.</div><div class='add'>+ * @note       It doesn't return NULL.</div><div class='add'>+ * @note       Unlike some malloc() implementations, it allocates something and</div><div class='add'>+ *             returns a meaningful value even when `size` is equal to zero.</div><div class='add'>+ * @warning    The return  value shall  be invalidated  exactly once  by either</div><div class='add'>+ *             ruby_xfree(),  ruby_xrealloc(), or  ruby_xrealloc2().   It is  a</div><div class='add'>+ *             failure to pass it to system free(), because the system and Ruby</div><div class='add'>+ *             might or might not share the same malloc() implementation.</div><div class='add'>+ */</div><div class='add'>+void *ruby_xmalloc(size_t size)</div><div class='add'>+RBIMPL_ATTR_NOEXCEPT(malloc(size))</div><div class='add'>+;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RESTRICT()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((1,2))</div><div class='add'>+/**</div><div class='add'>+ * Identical to ruby_xmalloc(), except it allocates `nelems` * `elemsiz` bytes.</div><div class='add'>+ * This is needed  because the multiplication could integer  overflow.  On such</div><div class='add'>+ * situations  Ruby does  not try  to  allocate at  all but  raises Ruby  level</div><div class='add'>+ * exceptions  instead.  If  there  is  no integer  overflow  the behaviour  is</div><div class='add'>+ * exactly the same as `ruby_xmalloc(nelems*elemsiz)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  nelems          Number of elements.</div><div class='add'>+ * @param[in]  elemsiz         Size of an element.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left for allocation.</div><div class='add'>+ * @exception  rb_eArgError    `nelems` * `elemsiz` would overflow.</div><div class='add'>+ * @return     A valid pointer  to an allocated storage instance;  which has at</div><div class='add'>+ *             least  `nelems`  *  `elemsiz`   bytes  width,  with  appropriate</div><div class='add'>+ *             alignment detected by the underlying malloc() routine.</div><div class='add'>+ * @note       It doesn't return NULL.</div><div class='add'>+ * @note       Unlike some malloc() implementations, it allocates something and</div><div class='add'>+ *             returns a  meaningful value even  when `nelems` or  `elemsiz` or</div><div class='add'>+ *             both are zero.</div><div class='add'>+ * @warning    The return  value shall  be invalidated  exactly once  by either</div><div class='add'>+ *             ruby_xfree(),  ruby_xrealloc(), or  ruby_xrealloc2().   It is  a</div><div class='add'>+ *             failure to pass it to system free(), because the system and Ruby</div><div class='add'>+ *             might or might not share the same malloc() implementation.</div><div class='add'>+ */</div><div class='add'>+void *ruby_xmalloc2(size_t nelems, size_t elemsiz)</div><div class='add'>+RBIMPL_ATTR_NOEXCEPT(malloc(nelems * elemsiz))</div><div class='add'>+;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RESTRICT()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((1,2))</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  ruby_xmalloc2(),  except  it returns  a  zero-filled  storage</div><div class='add'>+ * instance.  It  can also be  seen as  a routine identical  to ruby_xmalloc(),</div><div class='add'>+ * except it calls calloc() instead of malloc().</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  nelems          Number of elements.</div><div class='add'>+ * @param[in]  elemsiz         Size of an element.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left for allocation.</div><div class='add'>+ * @exception  rb_eArgError    `nelems` * `elemsiz` would overflow.</div><div class='add'>+ * @return     A valid pointer  to an allocated storage instance;  which has at</div><div class='add'>+ *             least  `nelems`  *  `elemsiz`   bytes  width,  with  appropriate</div><div class='add'>+ *             alignment detected by the underlying calloc() routine.</div><div class='add'>+ * @post       The returned storage instance is filled with zeros.</div><div class='add'>+ * @note       It doesn't return NULL.</div><div class='add'>+ * @note       Unlike some calloc() implementations, it allocates something and</div><div class='add'>+ *             returns a  meaningful value even  when `nelems` or  `elemsiz` or</div><div class='add'>+ *             both are zero.</div><div class='add'>+ * @warning    The return  value shall  be invalidated  exactly once  by either</div><div class='add'>+ *             ruby_xfree(),  ruby_xrealloc(), or  ruby_xrealloc2().   It is  a</div><div class='add'>+ *             failure to pass it to system free(), because the system and Ruby</div><div class='add'>+ *             might or might not share the same malloc() implementation.</div><div class='add'>+ */</div><div class='add'>+void *ruby_xcalloc(size_t nelems, size_t elemsiz)</div><div class='add'>+RBIMPL_ATTR_NOEXCEPT(calloc(nelems, elemsiz))</div><div class='add'>+;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((2))</div><div class='add'>+/**</div><div class='add'>+ * Resize the storage instance.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A valid  pointer to a storage  instance that was</div><div class='add'>+ *                             previously returned from either:</div><div class='add'>+ *                               - ruby_xmalloc(),</div><div class='add'>+ *                               - ruby_xmalloc2(),</div><div class='add'>+ *                               - ruby_xcalloc(),</div><div class='add'>+ *                               - ruby_xrealloc(), or</div><div class='add'>+ *                               - ruby_xrealloc2().</div><div class='add'>+ * @param[in]  newsiz          Requested new amount of memory.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left for `newsiz` bytes allocation.</div><div class='add'>+ * @return     A  valid  pointer  to   a  (possibly  newly  allocated)  storage</div><div class='add'>+ *             instance;  which  has  at   least  `newsiz`  bytes  width,  with</div><div class='add'>+ *             appropriate  alignment  detected  by  the  underlying  realloc()</div><div class='add'>+ *             routine.</div><div class='add'>+ * @pre        The passed pointer must point  to a valid live storage instance.</div><div class='add'>+ *             It is a failure to pass an already freed pointer.</div><div class='add'>+ * @post       In  case the  function  returns the  passed  pointer as-is,  the</div><div class='add'>+ *             storage  instance that  the  pointer holds  is  either grown  or</div><div class='add'>+ *             shrunken  to have  at least  `newsiz` bytes.  Otherwise a  valid</div><div class='add'>+ *             pointer to a  newly allocated storage instance  is returned.  In</div><div class='add'>+ *             this  case  `ptr`  is  invalidated   as  if  it  was  passed  to</div><div class='add'>+ *             ruby_xfree().</div><div class='add'>+ * @note       It doesn't return NULL.</div><div class='add'>+ * @warning    Unlike some realloc() implementations,  passing zero to `newsiz`</div><div class='add'>+ *             is not the  same as calling ruby_xfree(),  because this function</div><div class='add'>+ *             never returns NULL.  Something meaningful still returns then.</div><div class='add'>+ * @warning    It is  a failure not to  check the return value.   Do not assume</div><div class='add'>+ *             anything on  it.  It could  be either identical to,  or distinct</div><div class='add'>+ *             form the passed argument.</div><div class='add'>+ * @warning    Do not  assume anything  on the alignment  of the  return value.</div><div class='add'>+ *             There is  no guarantee  that it  inherits the  passed argument's</div><div class='add'>+ *             one.</div><div class='add'>+ * @warning    The return  value shall  be invalidated  exactly once  by either</div><div class='add'>+ *             ruby_xfree(),  ruby_xrealloc(), or  ruby_xrealloc2().   It is  a</div><div class='add'>+ *             failure to pass it to system free(), because the system and Ruby</div><div class='add'>+ *             might or might not share the same malloc() implementation.</div><div class='add'>+ */</div><div class='add'>+void *ruby_xrealloc(void *ptr, size_t newsiz)</div><div class='add'>+RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newsiz))</div><div class='add'>+;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((2,3))</div><div class='add'>+/**</div><div class='add'>+ * Identical to ruby_xrealloc(),  except it resizes the  given storage instance</div><div class='add'>+ * to `newelems` *  `newsiz` bytes.  This is needed  because the multiplication</div><div class='add'>+ * could integer overflow.   On such situations Ruby does not  try to touch the</div><div class='add'>+ * contents  of  argument pointer  at  all  but  raises Ruby  level  exceptions</div><div class='add'>+ * instead.  If there is no integer  overflow the behaviour is exactly the same</div><div class='add'>+ * as `ruby_xrealloc(ptr,nelems*elemsiz)`.</div><div class='add'>+ *</div><div class='add'>+ * This  is   roughly  the  same   as  reallocarray()  function   that  OpenBSD</div><div class='add'>+ * etc. provides, but also interacts with our GC.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  ptr             A valid  pointer to a storage  instance that was</div><div class='add'>+ *                             previously returned from either:</div><div class='add'>+ *                               - ruby_xmalloc(),</div><div class='add'>+ *                               - ruby_xmalloc2(),</div><div class='add'>+ *                               - ruby_xcalloc(),</div><div class='add'>+ *                               - ruby_xrealloc(), or</div><div class='add'>+ *                               - ruby_xrealloc2().</div><div class='add'>+ * @param[in]  newelems        Requested new number of elements.</div><div class='add'>+ * @param[in]  newsiz          Requested new size of each element.</div><div class='add'>+ * @exception  rb_eNoMemError  No space left for  allocation.</div><div class='add'>+ * @exception  rb_eArgError    `newelems` * `newsiz` would overflow.</div><div class='add'>+ * @return     A  valid  pointer  to   a  (possibly  newly  allocated)  storage</div><div class='add'>+ *             instance; which has at least  `newelems` * `newsiz` bytes width,</div><div class='add'>+ *             with appropriate alignment detected  by the underlying realloc()</div><div class='add'>+ *             routine.</div><div class='add'>+ * @pre        The passed pointer must point  to a valid live storage instance.</div><div class='add'>+ *             It is a failure to pass an already freed pointer.</div><div class='add'>+ * @post       In  case the  function  returns the  passed  pointer as-is,  the</div><div class='add'>+ *             storage  instance that  the  pointer holds  is  either grown  or</div><div class='add'>+ *             shrunken  to   have  at  least  `newelems`   *  `newsiz`  bytes.</div><div class='add'>+ *             Otherwise a valid pointer to  a newly allocated storage instance</div><div class='add'>+ *             is returned.   In this case  `ptr` is  invalidated as if  it was</div><div class='add'>+ *             passed to ruby_xfree().</div><div class='add'>+ * @note       It doesn't return NULL.</div><div class='add'>+ * @warning    Unlike some  realloc() implementations,  passing zero  to either</div><div class='add'>+ *             `newelems`   or  `elemsiz`   are   not  the   same  as   calling</div><div class='add'>+ *             ruby_xfree(),   because  this   function  never   returns  NULL.</div><div class='add'>+ *             Something meaningful still returns then.</div><div class='add'>+ * @warning    It is  a failure not to  check the return value.   Do not assume</div><div class='add'>+ *             anything on  it.  It could  be either identical to,  or distinct</div><div class='add'>+ *             form the passed argument.</div><div class='add'>+ * @warning    Do not  assume anything  on the alignment  of the  return value.</div><div class='add'>+ *             There is  no guarantee  that it  inherits the  passed argument's</div><div class='add'>+ *             one.</div><div class='add'>+ * @warning    The return  value shall  be invalidated  exactly once  by either</div><div class='add'>+ *             ruby_xfree(),  ruby_xrealloc(), or  ruby_xrealloc2().   It is  a</div><div class='add'>+ *             failure to pass it to system free(), because the system and Ruby</div><div class='add'>+ *             might or might not share the same malloc() implementation.</div><div class='add'>+ */</div><div class='add'>+void *ruby_xrealloc2(void *ptr, size_t newelems, size_t newsiz)</div><div class='add'>+RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newelems * newsiz))</div><div class='add'>+;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Deallocates a storage instance.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ptr  Either</div><div class='add'>+ *                     - NULL, or</div><div class='add'>+ *                     - a valid pointer previously returned from one of:</div><div class='add'>+ *                       - ruby_xmalloc(),</div><div class='add'>+ *                       - ruby_xmalloc2(),</div><div class='add'>+ *                       - ruby_xcalloc(),</div><div class='add'>+ *                       - ruby_xrealloc(), or</div><div class='add'>+ *                       - ruby_xrealloc2().</div><div class='add'>+ * @pre         The passed pointer must point to a valid live storage instance.</div><div class='add'>+ *              It is a failure to pass an already freed pointer.</div><div class='add'>+ * @post        The  storage  instance  pointed  by  the  passed  pointer  gets</div><div class='add'>+ *              invalidated; it is no longer addressable.</div><div class='add'>+ * @warning     Every single storage instance  that was previously allocated by</div><div class='add'>+ *              either    ruby_xmalloc(),   ruby_xmalloc2(),    ruby_xcalloc(),</div><div class='add'>+ *              ruby_xrealloc(),  or  ruby_xrealloc2()   shall  be  invalidated</div><div class='add'>+ *              exactly once by  either passing it to  ruby_xfree(), or passing</div><div class='add'>+ *              it to  either ruby_xrealloc(), ruby_xrealloc2() then  check the</div><div class='add'>+ *              return value for invalidation.</div><div class='add'>+ * @warning     Do not pass anything other  than pointers described above.  For</div><div class='add'>+ *              instance pointers returned from malloc() or mmap() shall not be</div><div class='add'>+ *              passed  to   this  function,  because  the   underlying  memory</div><div class='add'>+ *              management mechanism could differ.</div><div class='add'>+ * @warning     Do  not pass  any invalid  pointers  to this  function e.g.  by</div><div class='add'>+ *              calling it twice with a same argument.</div><div class='add'>+ */</div><div class='add'>+void ruby_xfree(void *ptr)</div><div class='add'>+RBIMPL_ATTR_NOEXCEPT(free(ptr))</div><div class='add'>+;</div><div class='add'>+</div><div class='add'>+#if USE_GC_MALLOC_OBJ_INFO_DETAILS</div><div class='add'>+# define ruby_xmalloc(s1)            ruby_xmalloc_with_location(s1, __FILE__, __LINE__)</div><div class='add'>+# define ruby_xmalloc2(s1, s2)       ruby_xmalloc2_with_location(s1, s2, __FILE__, __LINE__)</div><div class='add'>+# define ruby_xcalloc(s1, s2)        ruby_xcalloc_with_location(s1, s2, __FILE__, __LINE__)</div><div class='add'>+# define ruby_xrealloc(ptr, s1)      ruby_xrealloc_with_location(ptr, s1, __FILE__, __LINE__)</div><div class='add'>+# define ruby_xrealloc2(ptr, s1, s2) ruby_xrealloc2_with_location(ptr, s1, s2, __FILE__, __LINE__)</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RESTRICT()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((1))</div><div class='add'>+void *ruby_xmalloc_body(size_t size)</div><div class='add'>+RBIMPL_ATTR_NOEXCEPT(malloc(size))</div><div class='add'>+;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RESTRICT()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((1,2))</div><div class='add'>+void *ruby_xmalloc2_body(size_t nelems, size_t elemsiz)</div><div class='add'>+RBIMPL_ATTR_NOEXCEPT(malloc(nelems * elemsiz))</div><div class='add'>+;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RESTRICT()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((1,2))</div><div class='add'>+void *ruby_xcalloc_body(size_t nelems, size_t elemsiz)</div><div class='add'>+RBIMPL_ATTR_NOEXCEPT(calloc(nelems, elemsiz))</div><div class='add'>+;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((2))</div><div class='add'>+void *ruby_xrealloc_body(void *ptr, size_t newsiz)</div><div class='add'>+RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newsiz))</div><div class='add'>+;</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_ALLOC_SIZE((2,3))</div><div class='add'>+void *ruby_xrealloc2_body(void *ptr, size_t newelems, size_t newsiz)</div><div class='add'>+RBIMPL_ATTR_NOEXCEPT(realloc(ptr, newelems * newsiz))</div><div class='add'>+;</div><div class='add'>+</div><div class='add'>+RUBY_EXTERN const char *ruby_malloc_info_file;</div><div class='add'>+RUBY_EXTERN int ruby_malloc_info_line;</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+ruby_xmalloc_with_location(size_t s, const char *file, int line)</div><div class='add'>+{</div><div class='add'>+    void *ptr;</div><div class='add'>+    ruby_malloc_info_file = file;</div><div class='add'>+    ruby_malloc_info_line = line;</div><div class='add'>+    ptr = ruby_xmalloc_body(s);</div><div class='add'>+    ruby_malloc_info_file = NULL;</div><div class='add'>+    return ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+ruby_xmalloc2_with_location(size_t s1, size_t s2, const char *file, int line)</div><div class='add'>+{</div><div class='add'>+    void *ptr;</div><div class='add'>+    ruby_malloc_info_file = file;</div><div class='add'>+    ruby_malloc_info_line = line;</div><div class='add'>+    ptr = ruby_xmalloc2_body(s1, s2);</div><div class='add'>+    ruby_malloc_info_file = NULL;</div><div class='add'>+    return ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+ruby_xcalloc_with_location(size_t s1, size_t s2, const char *file, int line)</div><div class='add'>+{</div><div class='add'>+    void *ptr;</div><div class='add'>+    ruby_malloc_info_file = file;</div><div class='add'>+    ruby_malloc_info_line = line;</div><div class='add'>+    ptr = ruby_xcalloc_body(s1, s2);</div><div class='add'>+    ruby_malloc_info_file = NULL;</div><div class='add'>+    return ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+ruby_xrealloc_with_location(void *ptr, size_t s, const char *file, int line)</div><div class='add'>+{</div><div class='add'>+    void *rptr;</div><div class='add'>+    ruby_malloc_info_file = file;</div><div class='add'>+    ruby_malloc_info_line = line;</div><div class='add'>+    rptr = ruby_xrealloc_body(ptr, s);</div><div class='add'>+    ruby_malloc_info_file = NULL;</div><div class='add'>+    return rptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+ruby_xrealloc2_with_location(void *ptr, size_t s1, size_t s2, const char *file, int line)</div><div class='add'>+{</div><div class='add'>+    void *rptr;</div><div class='add'>+    ruby_malloc_info_file = file;</div><div class='add'>+    ruby_malloc_info_line = line;</div><div class='add'>+    rptr = ruby_xrealloc2_body(ptr, s1, s2);</div><div class='add'>+    ruby_malloc_info_file = NULL;</div><div class='add'>+    return rptr;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif /* RBIMPL_XMALLOC_H */</div><div class='head'>diff --git a/include/ruby/io.h b/include/ruby/io.h<br/>index 7caca17e3b..88029b1bb9 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/io.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/io.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/io.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/io.h</a></div><div class='hunk'>@@ -1,27 +1,16 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  rubyio.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Fri Nov 12 16:47:09 JST 1993</div><div class='del'>-</div><div class='del'>-  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_IO_H</div><div class='add'>+#ifndef RUBY_IO_H                                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_IO_H 1</div><div class='del'>-</div><div class='del'>-#ifdef RUBY_INTERNAL_H</div><div class='del'>-#error "Include this file before internal.h"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @date       Fri Nov 12 16:47:09 JST 1993</div><div class='add'>+ * @copyright  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> </div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='ctx'> #include "ruby/encoding.h"</div><div class='hunk'>@@ -30,8 +19,9 @@ extern "C" {</div><div class='ctx'> #include &lt;stdio_ext.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#include "ruby/config.h"</div><div class='ctx'> #include &lt;errno.h&gt;</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='ctx'> #if defined(HAVE_POLL)</div><div class='ctx'> #  ifdef _AIX</div><div class='ctx'> #    define reqevents events</div><div class='hunk'>@@ -45,138 +35,988 @@ extern "C" {</div><div class='ctx'> #    undef revents</div><div class='ctx'> #  endif</div><div class='ctx'> #  define RB_WAITFD_IN  POLLIN</div><div class='del'>-#  define RB_WAITFD_PRI POLLPRI</div><div class='add'>+#  if defined(POLLPRI)</div><div class='add'>+#    define RB_WAITFD_PRI POLLPRI</div><div class='add'>+#  else</div><div class='add'>+#    define RB_WAITFD_PRI 0</div><div class='add'>+#  endif</div><div class='ctx'> #  define RB_WAITFD_OUT POLLOUT</div><div class='ctx'> #else</div><div class='ctx'> #  define RB_WAITFD_IN  0x001</div><div class='ctx'> #  define RB_WAITFD_PRI 0x002</div><div class='ctx'> #  define RB_WAITFD_OUT 0x004</div><div class='ctx'> #endif</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/const.h"</div><div class='add'>+#include "ruby/internal/attr/pure.h"</div><div class='add'>+#include "ruby/internal/attr/noreturn.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/backward/2/attributes.h" /* PACKED_STRUCT_UNALIGNED */</div><div class='add'>+</div><div class='add'>+// IO#wait, IO#wait_readable, IO#wait_writable, IO#wait_priority are defined by this implementation.</div><div class='add'>+#define RUBY_IO_WAIT_METHODS</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+// Used as the default timeout argument to `rb_io_wait` to use the `IO#timeout` value.</div><div class='add'>+#define RUBY_IO_TIMEOUT_DEFAULT Qnil</div><div class='ctx'> </div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+struct stat;</div><div class='add'>+struct timeval;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Indicates that a timeout has occurred while performing an IO operation.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN VALUE rb_eIOTimeoutError;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Type of events that an IO can wait.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This is visible from extension libraries because `io/wait` wants it.</div><div class='add'>+ */</div><div class='add'>+typedef enum {</div><div class='add'>+    RUBY_IO_READABLE = RB_WAITFD_IN,  /**&lt; `IO::READABLE` */</div><div class='add'>+    RUBY_IO_WRITABLE = RB_WAITFD_OUT, /**&lt; `IO::WRITABLE` */</div><div class='add'>+    RUBY_IO_PRIORITY = RB_WAITFD_PRI, /**&lt; `IO::PRIORITY` */</div><div class='add'>+} rb_io_event_t;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * IO  buffers.   This  is  an implementation  detail  of  ::rb_io_t::wbuf  and</div><div class='add'>+ * ::rb_io_t::rbuf.  People don't manipulate it directly.</div><div class='add'>+ */</div><div class='ctx'> PACKED_STRUCT_UNALIGNED(struct rb_io_buffer_t {</div><div class='add'>+</div><div class='add'>+    /** Pointer to the underlying memory region, of at least `capa` bytes. */</div><div class='ctx'>     char *ptr;                  /* off + len &lt;= capa */</div><div class='add'>+</div><div class='add'>+    /** Offset inside of `ptr`. */</div><div class='ctx'>     int off;</div><div class='add'>+</div><div class='add'>+    /** Length of the buffer. */</div><div class='ctx'>     int len;</div><div class='add'>+</div><div class='add'>+    /** Designed capacity of the buffer. */</div><div class='ctx'>     int capa;</div><div class='ctx'> });</div><div class='add'>+</div><div class='add'>+/** @alias{rb_io_buffer_t} */</div><div class='ctx'> typedef struct rb_io_buffer_t rb_io_buffer_t;</div><div class='ctx'> </div><div class='add'>+/** Decomposed encoding flags (e.g. `"enc:enc2""`). */</div><div class='add'>+/*</div><div class='add'>+ * enc  enc2 read action                      write action</div><div class='add'>+ * NULL NULL force_encoding(default_external) write the byte sequence of str</div><div class='add'>+ * e1   NULL force_encoding(e1)               convert str.encoding to e1</div><div class='add'>+ * e1   e2   convert from e2 to e1            convert str.encoding to e2</div><div class='add'>+ */</div><div class='add'>+struct rb_io_enc_t {</div><div class='add'>+    /** Internal encoding. */</div><div class='add'>+    rb_encoding *enc;</div><div class='add'>+    /** External encoding. */</div><div class='add'>+    rb_encoding *enc2;</div><div class='add'>+    /**</div><div class='add'>+     * Flags.</div><div class='add'>+     *</div><div class='add'>+     * @see enum ::ruby_econv_flag_type</div><div class='add'>+     */</div><div class='add'>+    int ecflags;</div><div class='add'>+    /**</div><div class='add'>+     * Flags as Ruby hash.</div><div class='add'>+     *</div><div class='add'>+     * @internal</div><div class='add'>+     *</div><div class='add'>+     * This is set.  But used from nowhere maybe?</div><div class='add'>+     */</div><div class='add'>+    VALUE ecopts;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/** Ruby's IO, metadata and buffers. */</div><div class='ctx'> typedef struct rb_io_t {</div><div class='del'>-    FILE *stdio_file;		/* stdio ptr for read/write if available */</div><div class='del'>-    int fd;                     /* file descriptor */</div><div class='del'>-    int mode;			/* mode flags: FMODE_XXXs */</div><div class='del'>-    rb_pid_t pid;		/* child's pid (for pipes) */</div><div class='del'>-    int lineno;			/* number of lines read */</div><div class='del'>-    VALUE pathv;		/* pathname for file */</div><div class='del'>-    void (*finalize)(struct rb_io_t*,int); /* finalize proc */</div><div class='ctx'> </div><div class='del'>-    rb_io_buffer_t wbuf, rbuf;</div><div class='add'>+    /** The IO's Ruby level counterpart. */</div><div class='add'>+    VALUE self;</div><div class='ctx'> </div><div class='del'>-    VALUE tied_io_for_writing;</div><div class='add'>+    /** stdio ptr for read/write, if available. */</div><div class='add'>+    FILE *stdio_file;</div><div class='add'>+</div><div class='add'>+    /** file descriptor. */</div><div class='add'>+    int fd;</div><div class='add'>+</div><div class='add'>+    /** mode flags: FMODE_XXXs */</div><div class='add'>+    int mode;</div><div class='add'>+</div><div class='add'>+    /** child's pid (for pipes) */</div><div class='add'>+    rb_pid_t pid;</div><div class='add'>+</div><div class='add'>+    /** number of lines read */</div><div class='add'>+    int lineno;</div><div class='add'>+</div><div class='add'>+    /** pathname for file */</div><div class='add'>+    VALUE pathv;</div><div class='add'>+</div><div class='add'>+    /** finalize proc */</div><div class='add'>+    void (*finalize)(struct rb_io_t*,int);</div><div class='add'>+</div><div class='add'>+    /** Write buffer. */</div><div class='add'>+    rb_io_buffer_t wbuf;</div><div class='ctx'> </div><div class='del'>-    /*</div><div class='del'>-     * enc  enc2 read action                      write action</div><div class='del'>-     * NULL NULL force_encoding(default_external) write the byte sequence of str</div><div class='del'>-     * e1   NULL force_encoding(e1)               convert str.encoding to e1</div><div class='del'>-     * e1   e2   convert from e2 to e1            convert str.encoding to e2</div><div class='add'>+    /**</div><div class='add'>+     * (Byte)  read   buffer.   Note  also   that  there  is  a   field  called</div><div class='add'>+     * ::rb_io_t::cbuf, which also concerns read IO.</div><div class='ctx'>      */</div><div class='del'>-    struct rb_io_enc_t {</div><div class='del'>-        rb_encoding *enc;</div><div class='del'>-        rb_encoding *enc2;</div><div class='del'>-        int ecflags;</div><div class='del'>-        VALUE ecopts;</div><div class='del'>-    } encs;</div><div class='add'>+    rb_io_buffer_t rbuf;</div><div class='ctx'> </div><div class='add'>+    /**</div><div class='add'>+     * Duplex IO object, if set.</div><div class='add'>+     *</div><div class='add'>+     * @see rb_io_set_write_io()</div><div class='add'>+     */</div><div class='add'>+    VALUE tied_io_for_writing;</div><div class='add'>+</div><div class='add'>+    struct rb_io_enc_t encs; /**&lt; Decomposed encoding flags. */</div><div class='add'>+</div><div class='add'>+    /** Encoding converter used when reading from this IO. */</div><div class='ctx'>     rb_econv_t *readconv;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * rb_io_ungetc()  destination.   This  buffer   is  read  before  checking</div><div class='add'>+     * ::rb_io_t::rbuf</div><div class='add'>+     */</div><div class='ctx'>     rb_io_buffer_t cbuf;</div><div class='ctx'> </div><div class='add'>+    /** Encoding converter used when writing to this IO. */</div><div class='ctx'>     rb_econv_t *writeconv;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * This is, when set, an instance  of ::rb_cString which holds the "common"</div><div class='add'>+     * encoding.   Write  conversion  can  convert strings  twice...   In  case</div><div class='add'>+     * conversion from encoding  X to encoding Y does not  exist, Ruby finds an</div><div class='add'>+     * encoding Z that bridges the two, so that X to Z to Y conversion happens.</div><div class='add'>+     */</div><div class='ctx'>     VALUE writeconv_asciicompat;</div><div class='add'>+</div><div class='add'>+    /** Whether ::rb_io_t::writeconv is already set up. */</div><div class='ctx'>     int writeconv_initialized;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Value   of    ::rb_io_t::rb_io_enc_t::ecflags   stored    right   before</div><div class='add'>+     * initialising ::rb_io_t::writeconv.</div><div class='add'>+     */</div><div class='ctx'>     int writeconv_pre_ecflags;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Value of ::rb_io_t::rb_io_enc_t::ecopts stored right before initialising</div><div class='add'>+     * ::rb_io_t::writeconv.</div><div class='add'>+     */</div><div class='ctx'>     VALUE writeconv_pre_ecopts;</div><div class='ctx'> </div><div class='add'>+    /**</div><div class='add'>+     * This is a Ruby  level mutex.  It avoids multiple threads  to write to an</div><div class='add'>+     * IO at  once; helps  for instance rb_io_puts()  to ensure  newlines right</div><div class='add'>+     * next to its arguments.</div><div class='add'>+     *</div><div class='add'>+     * This of course doesn't help inter-process IO interleaves, though.</div><div class='add'>+     */</div><div class='ctx'>     VALUE write_lock;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The timeout associated with this IO when performing blocking operations.</div><div class='add'>+     */</div><div class='add'>+    VALUE timeout;</div><div class='ctx'> } rb_io_t;</div><div class='ctx'> </div><div class='add'>+/** @alias{rb_io_enc_t} */</div><div class='add'>+typedef struct rb_io_enc_t rb_io_enc_t;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='ctx'> #define HAVE_RB_IO_T 1</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * @name Possible flags for ::rb_io_t::mode</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/** The IO is opened for reading. */</div><div class='ctx'> #define FMODE_READABLE              0x00000001</div><div class='add'>+</div><div class='add'>+/** The IO is opened for writing. */</div><div class='ctx'> #define FMODE_WRITABLE              0x00000002</div><div class='add'>+</div><div class='add'>+/** The IO is opened for both read/write. */</div><div class='ctx'> #define FMODE_READWRITE             (FMODE_READABLE|FMODE_WRITABLE)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The IO  is in "binary  mode".  This  is not what  everything rb_io_binmode()</div><div class='add'>+ * concerns.  This low-level flag is to stop CR &lt;-&gt; CRLF conversions that would</div><div class='add'>+ * happen in the underlying operating system.</div><div class='add'>+ *</div><div class='add'>+ * Setting this  one and #FMODE_TEXTMODE at  the same time is  a contradiction.</div><div class='add'>+ * Setting this one and #ECONV_NEWLINE_DECORATOR_MASK  at the same time is also</div><div class='add'>+ * a contradiction.</div><div class='add'>+ */</div><div class='ctx'> #define FMODE_BINMODE               0x00000004</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The  IO  is in  "sync  mode".   All output  is  immediately  flushed to  the</div><div class='add'>+ * underlying operating system then.  Can  be set via rb_io_synchronized(), but</div><div class='add'>+ * there is no way except calling `IO#sync=` to reset.</div><div class='add'>+ */</div><div class='ctx'> #define FMODE_SYNC                  0x00000008</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The IO  is a TTY.  What  is a TTY and  what isn't depends on  the underlying</div><div class='add'>+ * operating system's `isatty(3)` output.  You cannot change this.</div><div class='add'>+ */</div><div class='ctx'> #define FMODE_TTY                   0x00000010</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Ruby eventually  detects that the IO  is bidirectional.  For instance  a TTY</div><div class='add'>+ * has such  property.  There are  several other  things known to  be duplexed.</div><div class='add'>+ * Additionally you  (extension library  authors) can  also implement  your own</div><div class='add'>+ * bidirectional IO subclasses.  One of such example is `Socket`.</div><div class='add'>+ */</div><div class='ctx'> #define FMODE_DUPLEX                0x00000020</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The IO is opened  for appending.  This mode always writes at  the end of the</div><div class='add'>+ * IO.  Ruby manages  this flag for record but basically  the logic behind this</div><div class='add'>+ * mode is at the underlying operating system.  We almost do nothing.</div><div class='add'>+ */</div><div class='ctx'> #define FMODE_APPEND                0x00000040</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The IO is  opened for creating.  This makes sense  only when the destination</div><div class='add'>+ * file does  not exist at  the time  the IO object  was created.  This  is the</div><div class='add'>+ * default mode  for writing,  but you  can pass `"r+"`  to `IO.open`  etc., to</div><div class='add'>+ * reroute this creation.</div><div class='add'>+ */</div><div class='ctx'> #define FMODE_CREATE                0x00000080</div><div class='ctx'> /* #define FMODE_NOREVLOOKUP        0x00000100 */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This flag amends the effect of #FMODE_CREATE,  so that if there already is a</div><div class='add'>+ * file at the given path the operation fails.  Using this you can be sure that</div><div class='add'>+ * the file you get is a fresh new one.</div><div class='add'>+ */</div><div class='ctx'> #define FMODE_EXCL                  0x00000400</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This flag amends the effect of #FMODE_CREATE,  so that if there already is a</div><div class='add'>+ * file at the given path it gets truncated.</div><div class='add'>+ */</div><div class='ctx'> #define FMODE_TRUNC                 0x00000800</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The IO is in "text mode".  On  systems where such mode make sense, this flag</div><div class='add'>+ * changes  the way  the  IO handles  the  contents.  On  POSIX  systems it  is</div><div class='add'>+ * basically  a no-op,  but with  this  flag set  you can  optionally let  Ruby</div><div class='add'>+ * manually convert newlines, unlike when in binary mode:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * IO.open("/p/a/t/h", "wt", crlf_newline: true) # "wb" is NG.</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * Setting this one and #FMODE_BINMODE at the same time is a contradiction.</div><div class='add'>+ */</div><div class='ctx'> #define FMODE_TEXTMODE              0x00001000</div><div class='ctx'> /* #define FMODE_PREP               0x00010000 */</div><div class='add'>+/* #define FMODE_SIGNAL_ON_EPIPE    0x00020000 */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This flag amends the  encoding of the IO so that the BOM  of the contents of</div><div class='add'>+ * the IO takes effect.</div><div class='add'>+ */</div><div class='ctx'> #define FMODE_SETENC_BY_BOM         0x00100000</div><div class='ctx'> /* #define FMODE_UNIX                  0x00200000 */</div><div class='ctx'> /* #define FMODE_INET                  0x00400000 */</div><div class='ctx'> /* #define FMODE_INET6                 0x00800000 */</div><div class='ctx'> </div><div class='del'>-#define GetOpenFile(obj,fp) rb_io_check_closed((fp) = RFILE(rb_io_taint_check(obj))-&gt;fptr)</div><div class='del'>-</div><div class='del'>-#define MakeOpenFile(obj, fp) do {\</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the underlying IO pointer.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   obj              An IO object.</div><div class='add'>+ * @param[out]  fp               A variable of type ::rb_io_t.</div><div class='add'>+ * @exception   rb_eFrozenError  `obj` is frozen.</div><div class='add'>+ * @exception   rb_eIOError      `obj` is closed.</div><div class='add'>+ * @post        `fp` holds `obj`'s underlying IO.</div><div class='add'>+ */</div><div class='add'>+#define RB_IO_POINTER(obj,fp) rb_io_check_closed((fp) = RFILE(rb_io_taint_check(obj))-&gt;fptr)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is  an old name  of #RB_IO_POINTER.  Not sure  if we want  to deprecate</div><div class='add'>+ * this macro.  There still are tons of usages out there in the wild.</div><div class='add'>+ */</div><div class='add'>+#define GetOpenFile RB_IO_POINTER</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Fills an IO object.  This makes the best sense when called from inside of an</div><div class='add'>+ * `#initialize`  method  of  a  3rd  party  extension  library  that  inherits</div><div class='add'>+ * ::rb_cIO.</div><div class='add'>+ *</div><div class='add'>+ * If the passed  IO is already opened  for something it first  closes that and</div><div class='add'>+ * opens a new one instead.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj              An IO object to fill in.</div><div class='add'>+ * @param[out]  fp               A variable of type ::rb_io_t.</div><div class='add'>+ * @exception   rb_eTypeError    `obj` is not ::RUBY_T_FILE.</div><div class='add'>+ * @post        `fp` holds `obj`'s underlying IO.</div><div class='add'>+ */</div><div class='add'>+#define RB_IO_OPEN(obj, fp) do {\</div><div class='ctx'>     (fp) = rb_io_make_open_file(obj);\</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * This is an old  name of #RB_IO_OPEN.  Not sure if we  want to deprecate this</div><div class='add'>+ * macro.  There still are usages out there in the wild.</div><div class='add'>+ */</div><div class='add'>+#define MakeOpenFile RB_IO_OPEN</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is an  implementation  detail  of #RB_IO_OPEN.   People  don't use  it</div><div class='add'>+ * directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj              An IO object to fill in.</div><div class='add'>+ * @exception   rb_eTypeError    `obj` is not ::RUBY_T_FILE.</div><div class='add'>+ * @return      `obj`'s backend IO.</div><div class='add'>+ * @post        `obj` is initialised.</div><div class='add'>+ */</div><div class='ctx'> rb_io_t *rb_io_make_open_file(VALUE obj);</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * Finds or creates  a stdio's file structure  from a Ruby's one.   This can be</div><div class='add'>+ * handy if you want to call an external API that accepts `FILE *`.</div><div class='add'>+ *</div><div class='add'>+ * @note  Note however, that `FILE`s can  have their own buffer.  Mixing Ruby's</div><div class='add'>+ *        and stdio's file are basically dangerous.  Use with care.</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  fptr  Target IO.</div><div class='add'>+ * @return         A stdio's file, created if absent.</div><div class='add'>+ * @post           `fptr` has its corresponding stdio's file.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * We had rich support  for `FILE` before!  In the days  of 1.8.x ::rb_io_t was</div><div class='add'>+ * like this:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * typedef struct rb_io_t {</div><div class='add'>+ *     FILE *f;                    // stdio ptr for read/write</div><div class='add'>+ *     FILE *f2;                   // additional ptr for rw pipes</div><div class='add'>+ *     int mode;                   // mode flags</div><div class='add'>+ *     int pid;                    // child's pid (for pipes)</div><div class='add'>+ *     int lineno;                 // number of lines read</div><div class='add'>+ *     char *path;                 // pathname for file</div><div class='add'>+ *     void (*finalize) _((struct rb_io_t*,int)); // finalize proc</div><div class='add'>+ * } rb_io_t;</div><div class='add'>+ *```</div><div class='add'>+ *</div><div class='add'>+ * But we  eventually abandoned this layout.   It was too difficult.   We could</div><div class='add'>+ * not have fine-grained control over the `f` field.</div><div class='add'>+ *</div><div class='add'>+ * - `FILE` tends  to be  an opaque  struct.  It does  not interface  well with</div><div class='add'>+ *   `select(2)` etc.   This makes  IO multiplexing  quite hard.   Using stdio,</div><div class='add'>+ *   there is arguably no portable way to know if `fwrite(3)` blocks.</div><div class='add'>+ *</div><div class='add'>+ * - Nonblocking  mode,  which   is  another  core  concept   that  enables  IO</div><div class='add'>+ *   multiplexing, does not interface with stdio routines at all.</div><div class='add'>+ *</div><div class='add'>+ * - Detection of duplexed IO is also hard for the same reason.</div><div class='add'>+ *</div><div class='add'>+ * - `feof(3)` is not portable.</div><div class='add'>+ *   https://mail.python.org/pipermail/python-dev/2001-January/011390.html</div><div class='add'>+ *</div><div class='add'>+ * - Solaris was a thing  back then.  They could not have  more than 256 `FILE`</div><div class='add'>+ *   structures  at  a  time.   Their   file  descriptors  ware  stored  in  an</div><div class='add'>+ *   `unsigned char`.</div><div class='add'>+ *</div><div class='add'>+ * - It is next to impossible to avoid  SEGV, especially when a thread tries to</div><div class='add'>+ *   `ungetc(3)`-ing from a `FILE` which is `fread(3)`-ed by another one.</div><div class='add'>+ *</div><div class='add'>+ * In short, it is a bad idea to let someone else manage IO buffers, especially</div><div class='add'>+ * someone  you cannot  control.   This still  applies  to extension  libraries</div><div class='add'>+ * methinks.  Ruby doesn't prevent you from  shooting yourself in the foot, but</div><div class='add'>+ * consider yourself warned here.</div><div class='add'>+ */</div><div class='ctx'> FILE *rb_io_stdio_file(rb_io_t *fptr);</div><div class='ctx'> </div><div class='del'>-FILE *rb_fdopen(int, const char*);</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_io_stdio_file(), except it takes file descriptors instead of</div><div class='add'>+ * Ruby's  IO.   It  can  also  be  seen  as  a  compatibility  layer  to  wrap</div><div class='add'>+ * `fdopen(3)`.   Nowadays  all  supporting systems,  including  Windows,  have</div><div class='add'>+ * `fdopen`.  Why not use them.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fd                   A file descriptor.</div><div class='add'>+ * @param[in]  modestr              C string, something like `"r+"`.</div><div class='add'>+ * @exception  rb_eSystemCallError  `fdopen` failed for some reason.</div><div class='add'>+ * @return     A stdio's file associated with `fd`.</div><div class='add'>+ * @note       Interpretation of `modestr` depends  on the underlying operating</div><div class='add'>+ *             system.  On  glibc you might  be able  to pass e.g.  `"rm"`, but</div><div class='add'>+ *             that's an extension to POSIX.</div><div class='add'>+ */</div><div class='add'>+FILE *rb_fdopen(int fd, const char *modestr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Maps  a file  mode  string (that  rb_file_open() takes)  into  a mixture  of</div><div class='add'>+ * `FMODE_`        flags.         This       for        instance        returns</div><div class='add'>+ * `FMODE_WRITABLE | FMODE_TRUNC | FMODE_CREATE | FMODE_EXCL` for `"wx"`.</div><div class='add'>+ *</div><div class='add'>+ * @note  You cannot pass this return value to OS provided `open(2)` etc.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  modestr       File mode, in C's string.</div><div class='add'>+ * @exception  rb_eArgError  `modestr` is broken.</div><div class='add'>+ * @return     A set of flags.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * rb_io_modestr_fmode() is not a pure function because it raises.</div><div class='add'>+ */</div><div class='ctx'> int rb_io_modestr_fmode(const char *modestr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_io_modestr_fmode(),  except it  returns a  mixture of  `O_`</div><div class='add'>+ * flags.  This for instance returns `O_WRONLY | O_TRUNC | O_CREAT | O_EXCL` for</div><div class='add'>+ * `"wx"`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  modestr       File mode, in C's string.</div><div class='add'>+ * @exception  rb_eArgError  `modestr` is broken.</div><div class='add'>+ * @return     A set of flags.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * rb_io_modestr_oflags() is not a pure function because it raises.</div><div class='add'>+ */</div><div class='ctx'> int rb_io_modestr_oflags(const char *modestr);</div><div class='del'>-CONSTFUNC(int rb_io_oflags_fmode(int oflags));</div><div class='del'>-void rb_io_check_writable(rb_io_t*);</div><div class='del'>-void rb_io_check_readable(rb_io_t*);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_CONST()</div><div class='add'>+/**</div><div class='add'>+ * Converts an  oflags (that rb_io_modestr_oflags()  returns) to a  fmode (that</div><div class='add'>+ * rb_io_mode_flags() returns).  This is a purely functional operation.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  oflags  A set of `O_` flags.</div><div class='add'>+ * @return     Corresponding set of `FMODE_` flags.</div><div class='add'>+ */</div><div class='add'>+int rb_io_oflags_fmode(int oflags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts that an IO is opened for writing.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fptr         An IO you want to write to.</div><div class='add'>+ * @exception  rb_eIOError  `fptr` is not for writing.</div><div class='add'>+ * @post       Upon successful return `fptr` is ready for writing.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The parameter must have been `const rb_io_t *`.</div><div class='add'>+ */</div><div class='add'>+void rb_io_check_writable(rb_io_t *fptr);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_io_check_byte_readable} */</div><div class='add'>+void rb_io_check_readable(rb_io_t *fptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts that an  IO is opened for character-based reading.   A character can</div><div class='add'>+ * be  wider than  a  byte.  Because  of  this  we have  to  buffer reads  from</div><div class='add'>+ * descriptors.  This fiction checks if that is possible.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fptr         An IO you want to read characters from.</div><div class='add'>+ * @exception  rb_eIOError  `fptr` is not for reading.</div><div class='add'>+ * @post       Upon successful return `fptr` is ready for reading characters.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Unlike  rb_io_check_writable() the  parameter cannot  be `const  rb_io_t *`.</div><div class='add'>+ * Behind the scene this operation flushes  its write buffers.  This is because</div><div class='add'>+ * of OpenSSL.  They mandate this way.</div><div class='add'>+ *</div><div class='add'>+ * @see  "Can I use OpenSSL's SSL library with non-blocking I/O?"</div><div class='add'>+ *        https://www.openssl.org/docs/faq.html</div><div class='add'>+ */</div><div class='ctx'> void rb_io_check_char_readable(rb_io_t *fptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts  that  an IO  is  opened  for  byte-based reading.   Byte-based  and</div><div class='add'>+ * character-based reading operations cannot be mixed at a time.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fptr         An IO you want to read characters from.</div><div class='add'>+ * @exception  rb_eIOError  `fptr` is not for reading.</div><div class='add'>+ * @post       Upon successful return `fptr` is ready for reading bytes.</div><div class='add'>+ */</div><div class='ctx'> void rb_io_check_byte_readable(rb_io_t *fptr);</div><div class='del'>-int rb_io_fptr_finalize(rb_io_t*);</div><div class='del'>-void rb_io_synchronized(rb_io_t*);</div><div class='del'>-void rb_io_check_initialized(rb_io_t*);</div><div class='del'>-void rb_io_check_closed(rb_io_t*);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destroys the given IO.  Any pending operations are flushed.</div><div class='add'>+ *</div><div class='add'>+ * @note  It makes no sense to call this function from anywhere outside of your</div><div class='add'>+ *        class' ::rb_data_type_struct::dfree.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  fptr  IO to close.</div><div class='add'>+ * @post        `fptr` is no longer a valid pointer.</div><div class='add'>+ */</div><div class='add'>+int rb_io_fptr_finalize(rb_io_t *fptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Sets #FMODE_SYNC.</div><div class='add'>+ *</div><div class='add'>+ * @note  There is no way for C extensions to undo this operation.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  fptr         IO to set the flag.</div><div class='add'>+ * @exception   rb_eIOError  `fptr` is not opened.</div><div class='add'>+ * @post        `fptr` is in sync mode.</div><div class='add'>+ */</div><div class='add'>+void rb_io_synchronized(rb_io_t *fptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Asserts that the passed IO is initialised.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fptr         IO that you expect be initialised.</div><div class='add'>+ * @exception  rb_eIOError  `fptr` is not initialised.</div><div class='add'>+ * @post       `fptr` is initialised.</div><div class='add'>+ */</div><div class='add'>+void rb_io_check_initialized(rb_io_t *fptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This badly named function asserts that the passed IO is _open_.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fptr         An IO</div><div class='add'>+ * @exception  rb_eIOError  `fptr` is closed.</div><div class='add'>+ * @post       `fptr` is open.</div><div class='add'>+ */</div><div class='add'>+void rb_io_check_closed(rb_io_t *fptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_io_check_io(),  except it  raises exceptions  on conversion</div><div class='add'>+ * failures.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  io             Target object.</div><div class='add'>+ * @exception  rb_eTypeError  No implicit conversion to IO.</div><div class='add'>+ * @return     Return value of `obj.to_io`.</div><div class='add'>+ * @see        rb_str_to_str</div><div class='add'>+ * @see        rb_ary_to_ary</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_io_get_io(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Try converting an object to its  IO representation using its `to_io` method,</div><div class='add'>+ * if any.  If there is no such thing, returns ::RUBY_Qnil.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  io             Arbitrary ruby object to convert.</div><div class='add'>+ * @exception  rb_eTypeError  `obj.to_io` returned something non-IO.</div><div class='add'>+ * @retval     RUBY_Qnil      No conversion from `obj` to IO defined.</div><div class='add'>+ * @retval     otherwise      Converted IO representation of `obj`.</div><div class='add'>+ * @see        rb_check_array_type</div><div class='add'>+ * @see        rb_check_string_type</div><div class='add'>+ * @see        rb_check_hash_type</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_io_check_io(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the tied IO  for writing.  An IO can be  duplexed.  Fine.  The thing</div><div class='add'>+ * is,  that characteristics  could  sometimes be  achieved  by the  underlying</div><div class='add'>+ * operating  system (for  instance  a  socket's duplexity  is  by nature)  but</div><div class='add'>+ * sometimes  by us.   Notable example  is a  bidirectional pipe.   Suppose you</div><div class='add'>+ * have:</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * fp = IO.popen("-", "r+")</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * This pipe  is duplexed (the  `"r+"`).  You can  both read from/write  to it.</div><div class='add'>+ * However your operating system may  or may not implement bidirectional pipes.</div><div class='add'>+ * FreeBSD is one  of such operating systems  known to have one;  OTOH Linux is</div><div class='add'>+ * known  to lack  such  things.   So to  achieve  maximum portability,  Ruby's</div><div class='add'>+ * bidirectional pipes are done  purely in user land.  A pipe  in ruby can have</div><div class='add'>+ * multiple file descriptors; one for reading  and the other for writing.  This</div><div class='add'>+ * API  is to  obtain the  IO port  which corresponds  to the  passed one,  for</div><div class='add'>+ * writing.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  io  An IO.</div><div class='add'>+ * @return     Its tied IO for writing, if any, or `io` itself otherwise.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_io_get_write_io(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Assigns the tied IO for writing.   See rb_io_get_write_io() for what a "tied</div><div class='add'>+ * IO for writing" is.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  io         An IO.</div><div class='add'>+ * @param[in]   w          Another IO.</div><div class='add'>+ * @retval      RUBY_Qnil  There was no tied IO for writing for `io`.</div><div class='add'>+ * @retval      otherwise  The IO formerly tied to `io`.</div><div class='add'>+ * @post        `io` ties `w` for writing.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't  think there is any  needs of this function  for 3rd party</div><div class='add'>+ * extension libraries.</div><div class='add'>+ */</div><div class='ctx'> VALUE rb_io_set_write_io(VALUE io, VALUE w);</div><div class='del'>-int rb_io_wait_readable(int);</div><div class='del'>-int rb_io_wait_writable(int);</div><div class='del'>-int rb_wait_for_single_fd(int fd, int events, struct timeval *tv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Instructs the OS to put its internal file structure into "nonblocking mode".</div><div class='add'>+ * This is  an in-Kernel concept.   Reading from/writing  to that file  using C</div><div class='add'>+ * function calls would return  -1 with errno set.  However when  it comes to a</div><div class='add'>+ * ruby program,  we hide that error  behind our `IO#read` method.   Ruby level</div><div class='add'>+ * `IO#read` blocks  regardless of this flag.   If you want to  avoid blocking,</div><div class='add'>+ * you should consider using methods like `IO#readpartial`.</div><div class='add'>+ *</div><div class='add'>+ * ```ruby</div><div class='add'>+ * require 'io/nonblock'</div><div class='add'>+ * STDIN.nonblock = true</div><div class='add'>+ * STDIN.gets # blocks.</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * As of  writing there is  a room  of this API  in Fiber schedulers.   A Fiber</div><div class='add'>+ * scheduler could be written in a  way its behaviour depends on this property.</div><div class='add'>+ * You  need an  in-depth  understanding  of how  schedulers  work to  properly</div><div class='add'>+ * leverage this, though.</div><div class='add'>+ *</div><div class='add'>+ * @note  Note   however  that   nonblocking-ness  propagates   across  process</div><div class='add'>+ *        boundaries.  You must  really carefully watch your  step when turning</div><div class='add'>+ *        for  instance `stderr`  into nonblock  mode  (it tends  to be  shared</div><div class='add'>+ *        across many  processes).  Also  it is  a complete  disaster to  mix a</div><div class='add'>+ *        nonblocking file and stdio, and `stderr` tends to be under control of</div><div class='add'>+ *        stdio in other processes.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  fptr  An IO that is to ne nonblocking.</div><div class='add'>+ * @post        Descriptor that `fptr` describes is under nonblocking mode.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * There  is  `O_NONBLOCK` but  not  `FMODE_NONBLOCK`.   You cannot  atomically</div><div class='add'>+ * create a nonblocking file descriptor using our API.</div><div class='add'>+ */</div><div class='ctx'> void rb_io_set_nonblock(rb_io_t *fptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Returns an integer representing the numeric file descriptor for</div><div class='add'>+ * &lt;em&gt;io&lt;/em&gt;.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   io         An IO.</div><div class='add'>+ * @retval      int        A file descriptor.</div><div class='add'>+ */</div><div class='add'>+int rb_io_descriptor(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This function  breaks down the  option hash that `IO#initialize`  takes into</div><div class='add'>+ * components.   This is  an implementation  detail of  rb_io_extract_modeenc()</div><div class='add'>+ * today.  People prefer that API instead.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   opt            The hash to decompose.</div><div class='add'>+ * @param[out]  enc_p          Return value buffer.</div><div class='add'>+ * @param[out]  enc2_p         Return value buffer.</div><div class='add'>+ * @param[out]  fmode_p        Return value buffer.</div><div class='add'>+ * @exception   rb_eTypeError  `opt` is broken.</div><div class='add'>+ * @exception   rb_eArgError   Specified encoding does not exist.</div><div class='add'>+ * @retval      1              Components got extracted.</div><div class='add'>+ * @retval      0              Otherwise.</div><div class='add'>+ * @post        `enc_p` is the specified internal encoding.</div><div class='add'>+ * @post        `enc2_p` is the specified external encoding.</div><div class='add'>+ * @post        `fmode_p` is the specified set of `FMODE_` modes.</div><div class='add'>+ */</div><div class='ctx'> int rb_io_extract_encoding_option(VALUE opt, rb_encoding **enc_p, rb_encoding **enc2_p, int *fmode_p);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This    function    can   be    seen    as    an   extended    version    of</div><div class='add'>+ * rb_io_extract_encoding_option() that  not only concerns the  option hash but</div><div class='add'>+ * also mode string and so on.  This should be mixed with rb_scan_args() like:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * // This method mimics File.new</div><div class='add'>+ * static VALUE</div><div class='add'>+ * your_method(int argc, const VALUE *argv, VALUE self)</div><div class='add'>+ * {</div><div class='add'>+ *     VALUE       f; // file name</div><div class='add'>+ *     VALUE       m; // open mode</div><div class='add'>+ *     VALUE       p; // permission (O_CREAT)</div><div class='add'>+ *     VALUE       k; // keywords</div><div class='add'>+ *     rb_io_enc_t c; // converter</div><div class='add'>+ *     int         oflags;</div><div class='add'>+ *     int         fmode;</div><div class='add'>+ *</div><div class='add'>+ *     int n = rb_scan_args(argc, argv, "12:", &amp;f, &amp;m, &amp;p, &amp;k);</div><div class='add'>+ *     rb_io_extract_modeenc(&amp;m, &amp;p, k, &amp;oflags, &amp;fmode, &amp;c);</div><div class='add'>+ *</div><div class='add'>+ *     // Every local variables declared so far has been properly filled here.</div><div class='add'>+ *    ...</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in,out]  vmode_p        Pointer to a mode object.</div><div class='add'>+ * @param[in,out]  vperm_p        Pointer to a permission object.</div><div class='add'>+ * @param[in]      opthash        Keyword arguments</div><div class='add'>+ * @param[out]     oflags_p       `O_` flags return buffer.</div><div class='add'>+ * @param[out]     fmode_p        `FMODE_` flags return buffer.</div><div class='add'>+ * @param[out]     convconfig_p   Encoding config return buffer.</div><div class='add'>+ * @exception      rb_eTypeError  Unexpected object (e.g. Time) passed.</div><div class='add'>+ * @exception      rb_eArgError   Contradiction inside of params.</div><div class='add'>+ * @post           `*vmode_p` is a mode object (filled if any).</div><div class='add'>+ * @post           `*vperm_p` is a permission object (filled if any).</div><div class='add'>+ * @post           `*oflags_p` is filled with `O_` flags.</div><div class='add'>+ * @post           `*fmode_p` is filled with `FMODE_` flags.</div><div class='add'>+ * @post           `*convconfig_p` is filled with conversion instructions.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * ```rbs</div><div class='add'>+ * class File</div><div class='add'>+ *   def initialize: (</div><div class='add'>+ *     (String | int)      path,</div><div class='add'>+ *     ?(String | int)      fmode,</div><div class='add'>+ *     ?(String | int)      perm,</div><div class='add'>+ *     ?mode:              (String | int),</div><div class='add'>+ *     ?flags:             int,</div><div class='add'>+ *     ?external_encoding: (Encoding | String),</div><div class='add'>+ *     ?internal_encoding: (Encoding | String),</div><div class='add'>+ *     ?encoding:          String,</div><div class='add'>+ *     ?textmode:          bool,</div><div class='add'>+ *     ?binmode:           bool,</div><div class='add'>+ *     ?autoclose:         bool,</div><div class='add'>+ *     ?invalid:           :replace,</div><div class='add'>+ *     ?undef:             :replace,</div><div class='add'>+ *     ?replace:           String,</div><div class='add'>+ *     ?fallback:          (Hash | Proc | Method),</div><div class='add'>+ *     ?xml:               (:text | :attr),</div><div class='add'>+ *     ?crlf_newline:      bool,</div><div class='add'>+ *     ?cr_newline:        bool,</div><div class='add'>+ *     ?universal_newline: bool</div><div class='add'>+ *   ) -&gt; void</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+void rb_io_extract_modeenc(VALUE *vmode_p, VALUE *vperm_p, VALUE opthash, int *oflags_p, int *fmode_p, rb_io_enc_t *convconfig_p);</div><div class='add'>+</div><div class='add'>+/* :TODO: can this function be __attribute__((warn_unused_result)) or not? */</div><div class='add'>+/**</div><div class='add'>+ * Buffered write to the passed IO.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  io                   Destination IO.</div><div class='add'>+ * @param[in]   buf                  Contents to go to `io`.</div><div class='add'>+ * @param[in]   size                 Number of bytes of `buf`.</div><div class='add'>+ * @exception   rb_eFrozenError      `io` is frozen.</div><div class='add'>+ * @exception   rb_eIOError          `io` is not open for writing.</div><div class='add'>+ * @exception   rb_eSystemCallError  `writev(2)` failed for some reason.</div><div class='add'>+ * @retval      -1                   Write failed.</div><div class='add'>+ * @retval      otherwise            Number of bytes actually written.</div><div class='add'>+ * @post        `buf` is written to `io`.</div><div class='add'>+ * @note        Partial write  is a thing.   It is a  failure not to  check the</div><div class='add'>+ *              return value.</div><div class='add'>+ */</div><div class='ctx'> ssize_t rb_io_bufwrite(VALUE io, const void *buf, size_t size);</div><div class='ctx'> </div><div class='add'>+//RBIMPL_ATTR_DEPRECATED(("use rb_io_maybe_wait_readable"))</div><div class='add'>+/**</div><div class='add'>+ * Blocks until the passed file descriptor gets readable.</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  We now prefer rb_io_maybe_wait_readable() over this one.</div><div class='add'>+ * @param[in]   fd           The file descriptor to wait.</div><div class='add'>+ * @exception   rb_eIOError  Bad file descriptor.</div><div class='add'>+ * @return      0 or 1 (meaning unclear).</div><div class='add'>+ * @post        `fd` is ready for reading.</div><div class='add'>+ */</div><div class='add'>+int rb_io_wait_readable(int fd);</div><div class='add'>+</div><div class='add'>+//RBIMPL_ATTR_DEPRECATED(("use rb_io_maybe_wait_writable"))</div><div class='add'>+/**</div><div class='add'>+ * Blocks until the passed file descriptor gets writable.</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  We now prefer rb_io_maybe_wait_writable() over this one.</div><div class='add'>+ * @param[in]   fd           The file descriptor to wait.</div><div class='add'>+ * @exception   rb_eIOError  Bad file descriptor.</div><div class='add'>+ * @return      0 or 1 (meaning unclear).</div><div class='add'>+ */</div><div class='add'>+int rb_io_wait_writable(int fd);</div><div class='add'>+</div><div class='add'>+//RBIMPL_ATTR_DEPRECATED(("use rb_io_wait"))</div><div class='add'>+/**</div><div class='add'>+ * Blocks until the passed file descriptor is ready for the passed events.</div><div class='add'>+ *</div><div class='add'>+ * @deprecated     We now prefer rb_io_maybe_wait() over this one.</div><div class='add'>+ * @param[in]      fd           The file descriptor to wait.</div><div class='add'>+ * @param[in]      events       A set of enum ::rb_io_event_t.</div><div class='add'>+ * @param[in,out]  tv           Timeout.</div><div class='add'>+ * @retval         0            Operation timed out.</div><div class='add'>+ * @retval         -1           `select(2)` failed for some reason.</div><div class='add'>+ * @retval         otherwise    A set of enum ::rb_io_event_t.</div><div class='add'>+ * @note           Depending on your  operating system `tv` might  or might not</div><div class='add'>+ *                 be  updated (POSIX  permits both).   Portable programs  must</div><div class='add'>+ *                 have no assumptions.</div><div class='add'>+ */</div><div class='add'>+int rb_wait_for_single_fd(int fd, int events, struct timeval *tv);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Get the timeout associated with the specified io object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  io                   An IO object.</div><div class='add'>+ * @retval     RUBY_Qnil            There is no associated timeout.</div><div class='add'>+ * @retval     Otherwise            The timeout value.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_timeout(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Set the timeout associated with the specified io object. This timeout is</div><div class='add'>+ * used as a best effort timeout to prevent operations from blocking forever.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  io                   An IO object.</div><div class='add'>+ * @param[in]  timeout              A timeout value. Must respond to #to_f.</div><div class='add'>+ * @</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_set_timeout(VALUE io, VALUE timeout);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Blocks until  the passed IO  is ready for  the passed events.   The "events"</div><div class='add'>+ * here is  a Ruby level  integer, which is  an OR-ed value  of `IO::READABLE`,</div><div class='add'>+ * `IO::WRITable`, and `IO::PRIORITY`.</div><div class='add'>+ *</div><div class='add'>+ * If timeout is `Qnil`, it will use the default timeout as given by</div><div class='add'>+ * `rb_io_timeout(io)`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  io                   An IO object to wait.</div><div class='add'>+ * @param[in]  events               See above.</div><div class='add'>+ * @param[in]  timeout              Time, or numeric seconds since UNIX epoch.</div><div class='add'>+ *                                  If Qnil, use the default timeout. If Qfalse</div><div class='add'>+ *                                  or Qundef, wait forever.</div><div class='add'>+ * @exception  rb_eIOError          `io` is not open.</div><div class='add'>+ * @exception  rb_eRangeError       `timeout` is out of range.</div><div class='add'>+ * @exception  rb_eSystemCallError  `select(2)` failed for some reason.</div><div class='add'>+ * @retval     RUBY_Qfalse          Operation timed out.</div><div class='add'>+ * @retval     Otherwise            Actual events reached.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_wait(VALUE io, VALUE events, VALUE timeout);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_io_wait()  except it additionally takes  previous errno.  If</div><div class='add'>+ * the  passed errno  indicates  for instance  `EINTR`,  this function  returns</div><div class='add'>+ * immediately.  This is expected to be called in a loop.</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * while (true) {</div><div class='add'>+ *</div><div class='add'>+ *     ... // Your interesting operation here</div><div class='add'>+ *         // `errno` could be updated</div><div class='add'>+ *</div><div class='add'>+ *     rb_io_maybe_wait(errno, io, ev, Qnil);</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  error                System errno.</div><div class='add'>+ * @param[in]  io                   An IO object to wait.</div><div class='add'>+ * @param[in]  events               An integer set of interests.</div><div class='add'>+ * @param[in]  timeout              Time, or numeric seconds since UNIX epoch.</div><div class='add'>+ * @exception  rb_eIOError          `io` is not open.</div><div class='add'>+ * @exception  rb_eRangeError       `timeout` is out of range.</div><div class='add'>+ * @exception  rb_eSystemCallError  `select(2)` failed for some reason.</div><div class='add'>+ * @retval     RUBY_Qfalse          Operation timed out.</div><div class='add'>+ * @retval     Otherwise            Actual events reached.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This function  to return ::RUBY_Qfalse  on timeout could be  unintended.  It</div><div class='add'>+ * seems timeout feature has some rough edge.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_maybe_wait(int error, VALUE io, VALUE events, VALUE timeout);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Blocks until the passed IO is ready for reading, if that makes sense for the</div><div class='add'>+ * passed  errno.  This  is  a  special case  of  rb_io_maybe_wait() that  only</div><div class='add'>+ * concerns for reading.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  error                System errno.</div><div class='add'>+ * @param[in]  io                   An IO object to wait.</div><div class='add'>+ * @param[in]  timeout              Time, or numeric seconds since UNIX epoch.</div><div class='add'>+ * @exception  rb_eIOError          `io` is not open.</div><div class='add'>+ * @exception  rb_eRangeError       `timeout` is out of range.</div><div class='add'>+ * @exception  rb_eSystemCallError  `select(2)` failed for some reason.</div><div class='add'>+ * @retval     0                    Operation timed out.</div><div class='add'>+ * @retval     Otherwise            Always returns ::RUBY_IO_READABLE.</div><div class='add'>+ */</div><div class='add'>+int rb_io_maybe_wait_readable(int error, VALUE io, VALUE timeout);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Blocks until the passed IO is ready for writing, if that makes sense for the</div><div class='add'>+ * passed  errno.  This  is  a  special case  of  rb_io_maybe_wait() that  only</div><div class='add'>+ * concernsfor writing.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  error                System errno.</div><div class='add'>+ * @param[in]  io                   An IO object to wait.</div><div class='add'>+ * @param[in]  timeout              Time, or numeric seconds since UNIX epoch.</div><div class='add'>+ * @exception  rb_eIOError          `io` is not open.</div><div class='add'>+ * @exception  rb_eRangeError       `timeout` is out of range.</div><div class='add'>+ * @exception  rb_eSystemCallError  `select(2)` failed for some reason.</div><div class='add'>+ * @retval     0                    Operation timed out.</div><div class='add'>+ * @retval     Otherwise            Always returns ::RUBY_IO_WRITABLE.</div><div class='add'>+ */</div><div class='add'>+int rb_io_maybe_wait_writable(int error, VALUE io, VALUE timeout);</div><div class='add'>+</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='ctx'> /* compatibility for ruby 1.8 and older */</div><div class='ctx'> #define rb_io_mode_flags(modestr) [&lt;"rb_io_mode_flags() is obsolete; use rb_io_modestr_fmode()"&gt;]</div><div class='ctx'> #define rb_io_modenum_flags(oflags) [&lt;"rb_io_modenum_flags() is obsolete; use rb_io_oflags_fmode()"&gt;]</div><div class='del'>-</div><div class='del'>-VALUE rb_io_taint_check(VALUE);</div><div class='del'>-NORETURN(void rb_eof_error(void));</div><div class='del'>-</div><div class='del'>-void rb_io_read_check(rb_io_t*);</div><div class='del'>-int rb_io_read_pending(rb_io_t*);</div><div class='del'>-</div><div class='del'>-struct stat;</div><div class='del'>-VALUE rb_stat_new(const struct stat *);</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This function  once was a thing  in the old days,  but makes no</div><div class='add'>+ *              sense   any   longer   today.   Exists   here   for   backwards</div><div class='add'>+ *              compatibility only.  You can safely forget about it.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   obj              Object in question.</div><div class='add'>+ * @exception   rb_eFrozenError  obj is frozen.</div><div class='add'>+ * @return      The passed `obj`</div><div class='add'>+ */</div><div class='add'>+VALUE rb_io_taint_check(VALUE obj);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NORETURN()</div><div class='add'>+/**</div><div class='add'>+ * Utility function to raise ::rb_eEOFError.</div><div class='add'>+ *</div><div class='add'>+ * @exception  rb_eEOFError  End of file situation.</div><div class='add'>+ * @note       It never returns.</div><div class='add'>+ */</div><div class='add'>+void rb_eof_error(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Blocks until there is a pending read  in the passed IO.  If there already is</div><div class='add'>+ * it just returns.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  fptr  An IO to wait for reading.</div><div class='add'>+ * @post        The are bytes to be read.</div><div class='add'>+ */</div><div class='add'>+void rb_io_read_check(rb_io_t *fptr);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Queries if the  passed IO has any pending  reads.  Unlike rb_io_read_check()</div><div class='add'>+ * this doesn't block; has no side effects.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  fptr  An IO which can have pending reads.</div><div class='add'>+ * @retval     0     The IO is empty.</div><div class='add'>+ * @retval     1     There is something buffered.</div><div class='add'>+ */</div><div class='add'>+int rb_io_read_pending(rb_io_t *fptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Constructs an instance of ::rb_cStat from the passed information.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  st  A stat.</div><div class='add'>+ * @return     Allocated new instance of ::rb_cStat.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_stat_new(const struct stat *st);</div><div class='ctx'> </div><div class='ctx'> /* gc.c */</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='ctx'> </div><div class='ctx'> #endif /* RUBY_IO_H */</div><div class='head'>diff --git a/include/ruby/io/buffer.h b/include/ruby/io/buffer.h<br/>new file mode 100644<br/>index 0000000000..e4b855d8e7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/io/buffer.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/io/buffer.h</a></div><div class='hunk'>@@ -0,0 +1,92 @@</div><div class='add'>+#ifndef RUBY_IO_BUFFER_H</div><div class='add'>+#define RUBY_IO_BUFFER_H</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Samuel Williams</div><div class='add'>+ * @date       Fri  2 Jul 2021 16:29:01 NZST</div><div class='add'>+ * @copyright  Copyright (C) 2021 Samuel Williams</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#pragma once</div><div class='add'>+</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+// WARNING: This entire interface is experimental and may change in the future!</div><div class='add'>+#define RB_IO_BUFFER_EXPERIMENTAL 1</div><div class='add'>+</div><div class='add'>+#define RUBY_IO_BUFFER_VERSION 2</div><div class='add'>+</div><div class='add'>+RUBY_EXTERN VALUE rb_cIOBuffer;</div><div class='add'>+RUBY_EXTERN size_t RUBY_IO_BUFFER_PAGE_SIZE;</div><div class='add'>+RUBY_EXTERN size_t RUBY_IO_BUFFER_DEFAULT_SIZE;</div><div class='add'>+</div><div class='add'>+enum rb_io_buffer_flags {</div><div class='add'>+    // The memory in the buffer is owned by someone else.</div><div class='add'>+    // More specifically, it means that someone else owns the buffer and we shouldn't try to resize it.</div><div class='add'>+    RB_IO_BUFFER_EXTERNAL = 1,</div><div class='add'>+    // The memory in the buffer is allocated internally.</div><div class='add'>+    RB_IO_BUFFER_INTERNAL = 2,</div><div class='add'>+    // The memory in the buffer is mapped.</div><div class='add'>+    // A non-private mapping is marked as external.</div><div class='add'>+    RB_IO_BUFFER_MAPPED = 4,</div><div class='add'>+</div><div class='add'>+    // A mapped buffer that is also shared.</div><div class='add'>+    RB_IO_BUFFER_SHARED = 8,</div><div class='add'>+</div><div class='add'>+    // The buffer is locked and cannot be resized.</div><div class='add'>+    // More specifically, it means we can't change the base address or size.</div><div class='add'>+    // A buffer is typically locked before a system call that uses the data.</div><div class='add'>+    RB_IO_BUFFER_LOCKED = 32,</div><div class='add'>+</div><div class='add'>+    // The buffer mapping is private and will not impact other processes or the underlying file.</div><div class='add'>+    RB_IO_BUFFER_PRIVATE = 64,</div><div class='add'>+</div><div class='add'>+    // The buffer is read-only and cannot be modified.</div><div class='add'>+    RB_IO_BUFFER_READONLY = 128</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+enum rb_io_buffer_endian {</div><div class='add'>+    RB_IO_BUFFER_LITTLE_ENDIAN = 4,</div><div class='add'>+    RB_IO_BUFFER_BIG_ENDIAN = 8,</div><div class='add'>+</div><div class='add'>+#if defined(WORDS_BIGENDIAN)</div><div class='add'>+    RB_IO_BUFFER_HOST_ENDIAN = RB_IO_BUFFER_BIG_ENDIAN,</div><div class='add'>+#else</div><div class='add'>+    RB_IO_BUFFER_HOST_ENDIAN = RB_IO_BUFFER_LITTLE_ENDIAN,</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    RB_IO_BUFFER_NETWORK_ENDIAN = RB_IO_BUFFER_BIG_ENDIAN</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+VALUE rb_io_buffer_new(void *base, size_t size, enum rb_io_buffer_flags flags);</div><div class='add'>+VALUE rb_io_buffer_map(VALUE io, size_t size, rb_off_t offset, enum rb_io_buffer_flags flags);</div><div class='add'>+</div><div class='add'>+VALUE rb_io_buffer_lock(VALUE self);</div><div class='add'>+VALUE rb_io_buffer_unlock(VALUE self);</div><div class='add'>+int rb_io_buffer_try_unlock(VALUE self);</div><div class='add'>+VALUE rb_io_buffer_free(VALUE self);</div><div class='add'>+</div><div class='add'>+int rb_io_buffer_get_bytes(VALUE self, void **base, size_t *size);</div><div class='add'>+void rb_io_buffer_get_bytes_for_reading(VALUE self, const void **base, size_t *size);</div><div class='add'>+void rb_io_buffer_get_bytes_for_writing(VALUE self, void **base, size_t *size);</div><div class='add'>+</div><div class='add'>+VALUE rb_io_buffer_transfer(VALUE self);</div><div class='add'>+void rb_io_buffer_resize(VALUE self, size_t size);</div><div class='add'>+void rb_io_buffer_clear(VALUE self, uint8_t value, size_t offset, size_t length);</div><div class='add'>+</div><div class='add'>+// The length is the minimum required length.</div><div class='add'>+VALUE rb_io_buffer_read(VALUE self, VALUE io, size_t length, size_t offset);</div><div class='add'>+VALUE rb_io_buffer_pread(VALUE self, VALUE io, rb_off_t from, size_t length, size_t offset);</div><div class='add'>+VALUE rb_io_buffer_write(VALUE self, VALUE io, size_t length, size_t offset);</div><div class='add'>+VALUE rb_io_buffer_pwrite(VALUE self, VALUE io, rb_off_t from, size_t length, size_t offset);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+#endif  /* RUBY_IO_BUFFER_H */</div><div class='head'>diff --git a/include/ruby/memory_view.h b/include/ruby/memory_view.h<br/>new file mode 100644<br/>index 0000000000..1ddca2d46f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/memory_view.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/memory_view.h</a></div><div class='hunk'>@@ -0,0 +1,325 @@</div><div class='add'>+#ifndef RUBY_MEMORY_VIEW_H                           /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_MEMORY_VIEW_H 1</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Memory View.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;                       /* size_t */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SYS_TYPES_H</div><div class='add'>+# include &lt;sys/types.h&gt;                    /* ssize_t */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/attr/pure.h"       /* RBIMPL_ATTR_PURE */</div><div class='add'>+#include "ruby/internal/core/rtypeddata.h" /* rb_data_type_t */</div><div class='add'>+#include "ruby/internal/dllexport.h"       /* RUBY_EXTERN */</div><div class='add'>+#include "ruby/internal/stdbool.h"         /* bool */</div><div class='add'>+#include "ruby/internal/value.h"           /* VALUE */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Flags passed to rb_memory_view_get(), then to ::rb_memory_view_get_func_t.</div><div class='add'>+ */</div><div class='add'>+enum ruby_memory_view_flags {</div><div class='add'>+    RUBY_MEMORY_VIEW_SIMPLE            = 0,</div><div class='add'>+    RUBY_MEMORY_VIEW_WRITABLE          = (1&lt;&lt;0),</div><div class='add'>+    RUBY_MEMORY_VIEW_FORMAT            = (1&lt;&lt;1),</div><div class='add'>+    RUBY_MEMORY_VIEW_MULTI_DIMENSIONAL = (1&lt;&lt;2),</div><div class='add'>+    RUBY_MEMORY_VIEW_STRIDES           = (1&lt;&lt;3) | RUBY_MEMORY_VIEW_MULTI_DIMENSIONAL,</div><div class='add'>+    RUBY_MEMORY_VIEW_ROW_MAJOR         = (1&lt;&lt;4) | RUBY_MEMORY_VIEW_STRIDES,</div><div class='add'>+    RUBY_MEMORY_VIEW_COLUMN_MAJOR      = (1&lt;&lt;5) | RUBY_MEMORY_VIEW_STRIDES,</div><div class='add'>+    RUBY_MEMORY_VIEW_ANY_CONTIGUOUS    = RUBY_MEMORY_VIEW_ROW_MAJOR | RUBY_MEMORY_VIEW_COLUMN_MAJOR,</div><div class='add'>+    RUBY_MEMORY_VIEW_INDIRECT          = (1&lt;&lt;6) | RUBY_MEMORY_VIEW_STRIDES,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/** Memory view component metadata. */</div><div class='add'>+typedef struct {</div><div class='add'>+    /** @see ::rb_memory_view_t::format */</div><div class='add'>+    char format;</div><div class='add'>+</div><div class='add'>+    /** :FIXME: what is a "native" size is unclear. */</div><div class='add'>+    unsigned native_size_p: 1;</div><div class='add'>+</div><div class='add'>+    /** Endian of the component */</div><div class='add'>+    unsigned little_endian_p: 1;</div><div class='add'>+</div><div class='add'>+    /** The component's offset. */</div><div class='add'>+    size_t offset;</div><div class='add'>+</div><div class='add'>+    /** The component's size. */</div><div class='add'>+    size_t size;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * How many numbers of components are there. For instance "CCC"'s repeat is</div><div class='add'>+     * 3.</div><div class='add'>+     */</div><div class='add'>+    size_t repeat;</div><div class='add'>+} rb_memory_view_item_component_t;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * A MemoryView  structure, `rb_memory_view_t`, is used  for exporting objects'</div><div class='add'>+ * MemoryView.</div><div class='add'>+ *</div><div class='add'>+ * This structure contains  the reference of the object, which  is the owner of</div><div class='add'>+ * the MemoryView, the pointer to the head of exported memory, and the metadata</div><div class='add'>+ * that  describes the  structure of  the  memory.  The  metadata can  describe</div><div class='add'>+ * multidimensional arrays with strides.</div><div class='add'>+ */</div><div class='add'>+typedef struct {</div><div class='add'>+    /**</div><div class='add'>+     * The original object that has the memory exported via this memory view.</div><div class='add'>+     */</div><div class='add'>+    VALUE obj;</div><div class='add'>+</div><div class='add'>+    /** The pointer to the exported memory. */</div><div class='add'>+    void *data;</div><div class='add'>+</div><div class='add'>+    /** The number of bytes in data. */</div><div class='add'>+    ssize_t byte_size;</div><div class='add'>+</div><div class='add'>+    /** true for readonly memory, false for writable memory. */</div><div class='add'>+    bool readonly;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * A string to describe the format of an element, or NULL for unsigned bytes.</div><div class='add'>+     * The format string is a sequence of the following pack-template specifiers:</div><div class='add'>+     *</div><div class='add'>+     *   c, C, s, s!, S, S!, n, v, i, i!, I, I!, l, l!, L, L!,</div><div class='add'>+     *   N, V, f, e, g, q, q!, Q, Q!, d, E, G, j, J, x</div><div class='add'>+     *</div><div class='add'>+     * For example, "dd" for an element that consists of two double values,</div><div class='add'>+     * and "CCC" for an element that consists of three bytes, such as</div><div class='add'>+     * an RGB color triplet.</div><div class='add'>+     *</div><div class='add'>+     * Also, the value endianness can be explicitly specified by '&lt;' or '&gt;'</div><div class='add'>+     * following a value type specifier.</div><div class='add'>+     *</div><div class='add'>+     * The items are packed contiguously.  When you emulate the alignment of</div><div class='add'>+     * structure members, put '|' at the beginning of the format string,</div><div class='add'>+     * like "|iqc".  On x86_64 Linux ABI, the size of the item by this format</div><div class='add'>+     * is 24 bytes instead of 13 bytes.</div><div class='add'>+     */</div><div class='add'>+    const char *format;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The number of bytes in each element.</div><div class='add'>+     * item_size should equal to rb_memory_view_item_size_from_format(format). */</div><div class='add'>+    ssize_t item_size;</div><div class='add'>+</div><div class='add'>+    /** Description of each components. */</div><div class='add'>+    struct {</div><div class='add'>+        /**</div><div class='add'>+         * The array of rb_memory_view_item_component_t that describes the</div><div class='add'>+         * item structure.  rb_memory_view_prepare_item_desc and</div><div class='add'>+         * rb_memory_view_get_item allocate this memory if needed,</div><div class='add'>+         * and rb_memory_view_release frees it. */</div><div class='add'>+        const rb_memory_view_item_component_t *components;</div><div class='add'>+</div><div class='add'>+        /** The number of components in an item. */</div><div class='add'>+        size_t length;</div><div class='add'>+    } item_desc;</div><div class='add'>+</div><div class='add'>+    /** The number of dimension. */</div><div class='add'>+    ssize_t ndim;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * ndim size array indicating the number of elements in each dimension.</div><div class='add'>+     * This can be NULL when ndim == 1. */</div><div class='add'>+    const ssize_t *shape;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * ndim size array indicating the number of bytes to skip to go to the</div><div class='add'>+     * next element in each dimension. */</div><div class='add'>+    const ssize_t *strides;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * The offset in each dimension when this memory view exposes a nested array.</div><div class='add'>+     * Or, NULL when this memory view exposes a flat array. */</div><div class='add'>+    const ssize_t *sub_offsets;</div><div class='add'>+</div><div class='add'>+    /** The private data for managing this exported memory */</div><div class='add'>+    void *private_data;</div><div class='add'>+</div><div class='add'>+    /** DO NOT TOUCH THIS: The memory view entry for the internal use */</div><div class='add'>+    const struct rb_memory_view_entry *_memory_view_entry;</div><div class='add'>+} rb_memory_view_t;</div><div class='add'>+</div><div class='add'>+/** Type of function of ::rb_memory_view_entry_t::get_func. */</div><div class='add'>+typedef bool (* rb_memory_view_get_func_t)(VALUE obj, rb_memory_view_t *view, int flags);</div><div class='add'>+</div><div class='add'>+/** Type of function of ::rb_memory_view_entry_t::release_func. */</div><div class='add'>+typedef bool (* rb_memory_view_release_func_t)(VALUE obj, rb_memory_view_t *view);</div><div class='add'>+</div><div class='add'>+/** Type of function of ::rb_memory_view_entry_t::available_p_func. */</div><div class='add'>+typedef bool (* rb_memory_view_available_p_func_t)(VALUE obj);</div><div class='add'>+</div><div class='add'>+/** Operations applied to a specific kind of a memory view. */</div><div class='add'>+typedef struct rb_memory_view_entry {</div><div class='add'>+    /**</div><div class='add'>+     * Exports a memory view from a Ruby object.</div><div class='add'>+     */</div><div class='add'>+    rb_memory_view_get_func_t get_func;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Releases   a   memory  view   that   was   previously  generated   using</div><div class='add'>+     * ::rb_memory_view_entry_t::get_func.</div><div class='add'>+     */</div><div class='add'>+    rb_memory_view_release_func_t release_func;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Queries if an object understands memory view protocol.</div><div class='add'>+     */</div><div class='add'>+    rb_memory_view_available_p_func_t available_p_func;</div><div class='add'>+} rb_memory_view_entry_t;</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/* memory_view.c */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Associates the passed class with the  passed memory view entry.  This has to</div><div class='add'>+ * be called before actually creating a memory view from an instance.</div><div class='add'>+ */</div><div class='add'>+bool rb_memory_view_register(VALUE klass, const rb_memory_view_entry_t *entry);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Return `true` if the data in the MemoryView `view` is row-major contiguous.</div><div class='add'>+ *</div><div class='add'>+ * Return `false` otherwise.</div><div class='add'>+ */</div><div class='add'>+bool rb_memory_view_is_row_major_contiguous(const rb_memory_view_t *view);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Return  `true`  if  the  data  in  the  MemoryView  `view`  is  column-major</div><div class='add'>+ * contiguous.</div><div class='add'>+ *</div><div class='add'>+ * Return `false` otherwise.</div><div class='add'>+ */</div><div class='add'>+bool rb_memory_view_is_column_major_contiguous(const rb_memory_view_t *view);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+/**</div><div class='add'>+ * Fill the  `strides` array  with byte-Strides  of a  contiguous array  of the</div><div class='add'>+ * given shape with the given element size.</div><div class='add'>+ */</div><div class='add'>+void rb_memory_view_fill_contiguous_strides(const ssize_t ndim, const ssize_t item_size, const ssize_t *const shape, const bool row_major_p, ssize_t *const strides);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+/**</div><div class='add'>+ * Fill the members of `view` as an 1-dimensional byte array.</div><div class='add'>+ */</div><div class='add'>+bool rb_memory_view_init_as_byte_array(rb_memory_view_t *view, VALUE obj, void *data, const ssize_t len, const bool readonly);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Deconstructs    the     passed    format    string,    as     describe    in</div><div class='add'>+ * ::rb_memory_view_t::format.</div><div class='add'>+ */</div><div class='add'>+ssize_t rb_memory_view_parse_item_format(const char *format,</div><div class='add'>+                                         rb_memory_view_item_component_t **members,</div><div class='add'>+                                         size_t *n_members, const char **err);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Calculate the number of bytes occupied by an element.</div><div class='add'>+ *</div><div class='add'>+ * When the calculation  fails, the failed location in `format`  is stored into</div><div class='add'>+ * `err`, and returns `-1`.</div><div class='add'>+ */</div><div class='add'>+ssize_t rb_memory_view_item_size_from_format(const char *format, const char **err);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Calculate the location of the item indicated by the given `indices`.</div><div class='add'>+ *</div><div class='add'>+ * The length of `indices` must equal to `view-&gt;ndim`.</div><div class='add'>+ *</div><div class='add'>+ * This function initializes `view-&gt;item_desc` if needed.</div><div class='add'>+ */</div><div class='add'>+void *rb_memory_view_get_item_pointer(rb_memory_view_t *view, const ssize_t *indices);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Return a value that consists of item members.</div><div class='add'>+ *</div><div class='add'>+ * When an item is a single member, the return value is a single value.</div><div class='add'>+ *</div><div class='add'>+ * When an item consists of multiple members, an array will be returned.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_memory_view_extract_item_members(const void *ptr, const rb_memory_view_item_component_t *members, const size_t n_members);</div><div class='add'>+</div><div class='add'>+/** Fill the `item_desc` member of `view`. */</div><div class='add'>+void rb_memory_view_prepare_item_desc(rb_memory_view_t *view);</div><div class='add'>+</div><div class='add'>+/** * Return a value that consists of item members in the given memory view. */</div><div class='add'>+VALUE rb_memory_view_get_item(rb_memory_view_t *view, const ssize_t *indices);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Return  `true` if  `obj` supports  to export  a MemoryView.   Return `false`</div><div class='add'>+ * otherwise.</div><div class='add'>+ *</div><div class='add'>+ * If   this  function   returns   `true`,  it   doesn't   mean  the   function</div><div class='add'>+ * `rb_memory_view_get` will succeed.</div><div class='add'>+ */</div><div class='add'>+bool rb_memory_view_available_p(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * If the given  `obj` supports to export a MemoryView  that conforms the given</div><div class='add'>+ * `flags`, this function fills `view` by the information of the MemoryView and</div><div class='add'>+ * returns `true`.  In this case, the reference count of `obj` is increased.</div><div class='add'>+ *</div><div class='add'>+ * If the  given combination of `obj`  and `flags` cannot export  a MemoryView,</div><div class='add'>+ * this function returns `false`. The content  of `view` is not touched in this</div><div class='add'>+ * case.</div><div class='add'>+ *</div><div class='add'>+ * The exported  MemoryView must  be released by  `rb_memory_view_release` when</div><div class='add'>+ * the MemoryView is no longer needed.</div><div class='add'>+ */</div><div class='add'>+bool rb_memory_view_get(VALUE obj, rb_memory_view_t* memory_view, int flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Release the  given MemoryView  `view` and decrement  the reference  count of</div><div class='add'>+ * `memory_view-&gt;obj`.</div><div class='add'>+ *</div><div class='add'>+ * Consumers must call  this function when the MemoryView is  no longer needed.</div><div class='add'>+ * Missing to call this function leads memory leak.</div><div class='add'>+ */</div><div class='add'>+bool rb_memory_view_release(rb_memory_view_t* memory_view);</div><div class='add'>+</div><div class='add'>+/* for testing */</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+RUBY_EXTERN VALUE rb_memory_view_exported_object_registry;</div><div class='add'>+RUBY_EXTERN const rb_data_type_t rb_memory_view_exported_object_registry_data_type;</div><div class='add'>+/** @endcond */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE()</div><div class='add'>+/**</div><div class='add'>+ * Return  `true`  if  the  data  in the  MemoryView  `view`  is  row-major  or</div><div class='add'>+ * column-major contiguous.</div><div class='add'>+ *</div><div class='add'>+ * Return `false` otherwise.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_memory_view_is_contiguous(const rb_memory_view_t *view)</div><div class='add'>+{</div><div class='add'>+    if (rb_memory_view_is_row_major_contiguous(view)) {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    else if (rb_memory_view_is_column_major_contiguous(view)) {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return false;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_BUFFER_H */</div><div class='head'>diff --git a/include/ruby/missing.h b/include/ruby/missing.h<br/>index 03657042ce..aea6c9088d 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/missing.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/missing.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/missing.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/missing.h</a></div><div class='hunk'>@@ -1,42 +1,57 @@</div><div class='del'>-/************************************************</div><div class='del'>-</div><div class='del'>-  missing.h - prototype for *.c in ./missing, and</div><div class='del'>-  	      for missing timeval struct</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Sat May 11 23:46:03 JST 2002</div><div class='del'>-</div><div class='del'>-************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_MISSING_H</div><div class='add'>+#ifndef RUBY_MISSING_H                               /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_MISSING_H 1</div><div class='add'>+/**</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @date       Sat May 11 23:46:03 JST 2002</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Prototype for *.c in ./missing, and for missing timeval struct.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> </div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='add'>+#if defined(__cplusplus)</div><div class='add'>+# include &lt;cmath&gt;</div><div class='add'>+#else</div><div class='add'>+# include &lt;math.h&gt; /* for INFINITY and NAN */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#include "ruby/config.h"</div><div class='del'>-#include &lt;stddef.h&gt;</div><div class='del'>-#include &lt;math.h&gt; /* for INFINITY and NAN */</div><div class='ctx'> #ifdef RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='ctx'> # include RUBY_ALTERNATIVE_MALLOC_HEADER</div><div class='ctx'> #endif</div><div class='del'>-#ifdef RUBY_EXTCONF_H</div><div class='del'>-#include RUBY_EXTCONF_H</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-#if !defined(HAVE_STRUCT_TIMEVAL) || !defined(HAVE_STRUCT_TIMESPEC)</div><div class='ctx'> #if defined(HAVE_TIME_H)</div><div class='ctx'> # include &lt;time.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> #if defined(HAVE_SYS_TIME_H)</div><div class='ctx'> # include &lt;sys/time.h&gt;</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SYS_STAT_H</div><div class='add'>+# include &lt;sys/stat.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_UNISTD_H</div><div class='add'>+# include &lt;unistd.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_STDIO_H</div><div class='add'>+# include &lt;stdio.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_IEEEFP_H</div><div class='add'>+# include &lt;ieeefp.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/attr/format.h"</div><div class='add'>+</div><div class='ctx'> #ifndef M_PI</div><div class='ctx'> # define M_PI 3.14159265358979323846</div><div class='ctx'> #endif</div><div class='hunk'>@@ -44,11 +59,6 @@ extern "C" {</div><div class='ctx'> # define M_PI_2 (M_PI/2)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-# define RUBY_SYMBOL_EXPORT_BEGIN /* begin */</div><div class='del'>-# define RUBY_SYMBOL_EXPORT_END   /* end */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #if !defined(HAVE_STRUCT_TIMEVAL)</div><div class='ctx'> struct timeval {</div><div class='ctx'>     time_t tv_sec;	/* seconds */</div><div class='hunk'>@@ -57,6 +67,10 @@ struct timeval {</div><div class='ctx'> #endif /* HAVE_STRUCT_TIMEVAL */</div><div class='ctx'> </div><div class='ctx'> #if !defined(HAVE_STRUCT_TIMESPEC)</div><div class='add'>+/* :BEWARE: @shyouhei warns that  IT IS A WRONG IDEA to  define our own version</div><div class='add'>+ * of struct timespec here.  `clock_gettime` is  a system call, and your kernel</div><div class='add'>+ * could expect  something other  than just `long`  (results stack  smashing if</div><div class='add'>+ * that happens).  See also https://ewontfix.com/19/ */</div><div class='ctx'> struct timespec {</div><div class='ctx'>     time_t tv_sec;	/* seconds */</div><div class='ctx'>     long tv_nsec;	/* nanoseconds */</div><div class='hunk'>@@ -70,14 +84,7 @@ struct timezone {</div><div class='ctx'> };</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef RUBY_EXPORT</div><div class='del'>-#undef RUBY_EXTERN</div><div class='del'>-#endif</div><div class='del'>-#ifndef RUBY_EXTERN</div><div class='del'>-#define RUBY_EXTERN extern</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='ctx'> </div><div class='ctx'> #ifndef HAVE_ACOSH</div><div class='ctx'> RUBY_EXTERN double acosh(double);</div><div class='hunk'>@@ -89,10 +96,6 @@ RUBY_EXTERN double atanh(double);</div><div class='ctx'> RUBY_EXTERN char *crypt(const char *, const char *);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef HAVE_DUP2</div><div class='del'>-RUBY_EXTERN int dup2(int, int);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #ifndef HAVE_EACCESS</div><div class='ctx'> RUBY_EXTERN int eaccess(const char*, int);</div><div class='ctx'> #endif</div><div class='hunk'>@@ -101,10 +104,6 @@ RUBY_EXTERN int eaccess(const char*, int);</div><div class='ctx'> RUBY_EXTERN double round(double);	/* numeric.c */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef HAVE_FINITE</div><div class='del'>-RUBY_EXTERN int finite(double);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #ifndef HAVE_FLOCK</div><div class='ctx'> RUBY_EXTERN int flock(int, int);</div><div class='ctx'> #endif</div><div class='hunk'>@@ -161,36 +160,9 @@ RUBY_EXTERN const union bytesequence4_or_float rb_nan;</div><div class='ctx'> # define HUGE_VAL ((double)INFINITY)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef isinf</div><div class='del'>-# ifndef HAVE_ISINF</div><div class='del'>-#  if defined(HAVE_FINITE) &amp;&amp; defined(HAVE_ISNAN)</div><div class='del'>-#    ifdef HAVE_IEEEFP_H</div><div class='del'>-#    include &lt;ieeefp.h&gt;</div><div class='del'>-#    endif</div><div class='del'>-#  define isinf(x) (!finite(x) &amp;&amp; !isnan(x))</div><div class='del'>-#  elif defined(__cplusplus) &amp;&amp; __cplusplus &gt;= 201103L</div><div class='del'>-#    include &lt;cmath&gt; // it must include constexpr bool isinf(double);</div><div class='del'>-#  else</div><div class='del'>-RUBY_EXTERN int isinf(double);</div><div class='del'>-#  endif</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef isnan</div><div class='del'>-# ifndef HAVE_ISNAN</div><div class='del'>-#  if defined(__cplusplus) &amp;&amp; __cplusplus &gt;= 201103L</div><div class='del'>-#    include &lt;cmath&gt; // it must include constexpr bool isnan(double);</div><div class='del'>-#  else</div><div class='del'>-RUBY_EXTERN int isnan(double);</div><div class='del'>-#  endif</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef isfinite</div><div class='del'>-# ifndef HAVE_ISFINITE</div><div class='del'>-#   define HAVE_ISFINITE 1</div><div class='del'>-#   define isfinite(x) finite(x)</div><div class='del'>-# endif</div><div class='add'>+#ifndef HAVE_FINITE</div><div class='add'>+# define HAVE_FINITE 1</div><div class='add'>+# define finite(x) isfinite(x)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifndef HAVE_NAN</div><div class='hunk'>@@ -238,17 +210,13 @@ RUBY_EXTERN size_t strlcpy(char *, const char*, size_t);</div><div class='ctx'> RUBY_EXTERN size_t strlcat(char *, const char*, size_t);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef HAVE_SIGNBIT</div><div class='del'>-RUBY_EXTERN int signbit(double x);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #ifndef HAVE_FFS</div><div class='ctx'> RUBY_EXTERN int ffs(int);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef BROKEN_CLOSE</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;sys/socket.h&gt;</div><div class='add'>+# include &lt;sys/types.h&gt;</div><div class='add'>+# include &lt;sys/socket.h&gt;</div><div class='ctx'> RUBY_EXTERN int ruby_getpeername(int, struct sockaddr *, socklen_t *);</div><div class='ctx'> RUBY_EXTERN int ruby_getsockname(int, struct sockaddr *, socklen_t *);</div><div class='ctx'> RUBY_EXTERN int ruby_shutdown(int, int);</div><div class='hunk'>@@ -256,23 +224,119 @@ RUBY_EXTERN int ruby_close(int);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifndef HAVE_SETPROCTITLE</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2)</div><div class='ctx'> RUBY_EXTERN void setproctitle(const char *fmt, ...);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef HAVE_EXPLICIT_BZERO</div><div class='add'>+#ifdef HAVE_EXPLICIT_BZERO</div><div class='add'>+# /* Take that. */</div><div class='add'>+#elif defined(SecureZeroMemory)</div><div class='add'>+# define explicit_bzero(b, len) SecureZeroMemory(b, len)</div><div class='add'>+#else</div><div class='ctx'> RUBY_EXTERN void explicit_bzero(void *b, size_t len);</div><div class='del'>-# if defined SecureZeroMemory</div><div class='del'>-#   define explicit_bzero(b, len) SecureZeroMemory(b, len)</div><div class='del'>-# endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='add'>+#ifndef HAVE_TZSET</div><div class='add'>+RUBY_EXTERN void tzset(void);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='add'>+#ifndef HAVE_POSIX_MADVISE</div><div class='add'>+RUBY_EXTERN int posix_madvise(void *, size_t, int);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_GETEUID</div><div class='add'>+RUBY_EXTERN rb_uid_t geteuid(void);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_GETUID</div><div class='add'>+RUBY_EXTERN rb_uid_t getuid(void);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_GETEGID</div><div class='add'>+RUBY_EXTERN rb_gid_t getegid(void);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_GETGID</div><div class='add'>+RUBY_EXTERN rb_gid_t getgid(void);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_GETLOGIN</div><div class='add'>+RUBY_EXTERN char *getlogin(void);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_GETPPID</div><div class='add'>+RUBY_EXTERN rb_pid_t getppid(void);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_UMASK</div><div class='add'>+RUBY_EXTERN rb_mode_t umask(rb_mode_t);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_CHMOD</div><div class='add'>+RUBY_EXTERN int chmod(const char *, rb_mode_t);</div><div class='ctx'> #endif</div><div class='del'>-}  /* extern "C" { */</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_CHOWN</div><div class='add'>+RUBY_EXTERN int chown(const char *, rb_uid_t, rb_gid_t);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_PCLOSE</div><div class='add'>+RUBY_EXTERN int pclose(FILE *);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifndef HAVE_POPEN</div><div class='add'>+RUBY_EXTERN FILE *popen(const char *, const char *);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_PIPE</div><div class='add'>+RUBY_EXTERN int pipe(int [2]);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_DUP</div><div class='add'>+RUBY_EXTERN int dup(int);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_DUP2</div><div class='add'>+RUBY_EXTERN int dup2(int, int);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_KILL</div><div class='add'>+RUBY_EXTERN int kill(rb_pid_t, int);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_EXECL</div><div class='add'>+RUBY_EXTERN int execl(const char *, const char *, ...);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_EXECLE</div><div class='add'>+RUBY_EXTERN int execle(const char *, const char *, ...);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_EXECV</div><div class='add'>+RUBY_EXTERN int execv(const char *, char *const []);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_EXECVE</div><div class='add'>+RUBY_EXTERN int execve(const char *, char *const [], char *const []);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_SHUTDOWN</div><div class='add'>+RUBY_EXTERN int shutdown(int, int);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_SYSTEM</div><div class='add'>+RUBY_EXTERN int system(const char *);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef WNOHANG</div><div class='add'>+# define WNOHANG 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_WAITPID</div><div class='add'>+# define HAVE_WAITPID 1</div><div class='add'>+RUBY_EXTERN rb_pid_t waitpid(rb_pid_t, int *, int);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='ctx'> #endif /* RUBY_MISSING_H */</div><div class='head'>diff --git a/include/ruby/onigmo.h b/include/ruby/onigmo.h<br/>index 385f2d6a8b..8d7c601703 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/onigmo.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/onigmo.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/onigmo.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/onigmo.h</a></div><div class='hunk'>@@ -356,9 +356,9 @@ int onigenc_ascii_only_case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, c</div><div class='ctx'> #define ONIGENC_PRECISE_MBC_ENC_LEN(enc,p,e)   (enc)-&gt;precise_mbc_enc_len(p,e,enc)</div><div class='ctx'> </div><div class='ctx'> ONIG_EXTERN</div><div class='del'>-int onigenc_mbclen_approximate(const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc);</div><div class='add'>+int onigenc_mbclen(const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc);</div><div class='ctx'> </div><div class='del'>-#define ONIGENC_MBC_ENC_LEN(enc,p,e)           onigenc_mbclen_approximate(p,e,enc)</div><div class='add'>+#define ONIGENC_MBC_ENC_LEN(enc,p,e)           onigenc_mbclen(p,e,enc)</div><div class='ctx'> #define ONIGENC_MBC_MAXLEN(enc)               ((enc)-&gt;max_enc_len)</div><div class='ctx'> #define ONIGENC_MBC_MAXLEN_DIST(enc)           ONIGENC_MBC_MAXLEN(enc)</div><div class='ctx'> #define ONIGENC_MBC_MINLEN(enc)               ((enc)-&gt;min_enc_len)</div><div class='hunk'>@@ -434,7 +434,7 @@ int onigenc_str_bytelen_null(OnigEncoding enc, const OnigUChar* p);</div><div class='ctx'> /* PART: regular expression */</div><div class='ctx'> </div><div class='ctx'> /* config parameters */</div><div class='del'>-#define ONIG_NREGION                          10</div><div class='add'>+#define ONIG_NREGION                          4</div><div class='ctx'> #define ONIG_MAX_CAPTURE_GROUP_NUM         32767</div><div class='ctx'> #define ONIG_MAX_BACKREF_NUM                1000</div><div class='ctx'> #define ONIG_MAX_REPEAT_NUM               100000</div><div class='hunk'>@@ -701,6 +701,7 @@ ONIG_EXTERN const OnigSyntaxType*   OnigDefaultSyntax;</div><div class='ctx'> #define ONIG_IS_CAPTURE_HISTORY_GROUP(r, i) \</div><div class='ctx'>   ((i) &lt;= ONIG_MAX_CAPTURE_HISTORY_GROUP &amp;&amp; (r)-&gt;list &amp;&amp; (r)-&gt;list[i])</div><div class='ctx'> </div><div class='add'>+#ifdef USE_CAPTURE_HISTORY</div><div class='ctx'> typedef struct OnigCaptureTreeNodeStruct {</div><div class='ctx'>   int group;   /* group number */</div><div class='ctx'>   OnigPosition beg;</div><div class='hunk'>@@ -709,6 +710,7 @@ typedef struct OnigCaptureTreeNodeStruct {</div><div class='ctx'>   int num_childs;</div><div class='ctx'>   struct OnigCaptureTreeNodeStruct** childs;</div><div class='ctx'> } OnigCaptureTreeNode;</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> /* match result region type */</div><div class='ctx'> struct re_registers {</div><div class='hunk'>@@ -716,8 +718,10 @@ struct re_registers {</div><div class='ctx'>   int  num_regs;</div><div class='ctx'>   OnigPosition* beg;</div><div class='ctx'>   OnigPosition* end;</div><div class='add'>+#ifdef USE_CAPTURE_HISTORY</div><div class='ctx'>   /* extended */</div><div class='ctx'>   OnigCaptureTreeNode* history_root;  /* capture history tree root */</div><div class='add'>+#endif</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> /* capture tree traverse */</div><div class='hunk'>@@ -740,6 +744,8 @@ typedef struct {</div><div class='ctx'> typedef struct {</div><div class='ctx'>   int lower;</div><div class='ctx'>   int upper;</div><div class='add'>+  long base_num;</div><div class='add'>+  long inner_num;</div><div class='ctx'> } OnigRepeatRange;</div><div class='ctx'> </div><div class='ctx'> typedef void (*OnigWarnFunc)(const char* s);</div><div class='hunk'>@@ -789,6 +795,13 @@ typedef struct re_pattern_buffer {</div><div class='ctx'>   OnigDistance   dmin;                      /* min-distance of exact or map */</div><div class='ctx'>   OnigDistance   dmax;                      /* max-distance of exact or map */</div><div class='ctx'> </div><div class='add'>+  /* rb_hrtime_t from hrtime.h */</div><div class='add'>+#ifdef MY_RUBY_BUILD_MAY_TIME_TRAVEL</div><div class='add'>+  int128_t timelimit;</div><div class='add'>+#else</div><div class='add'>+  uint64_t timelimit;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>   /* regex_t link chain */</div><div class='ctx'>   struct re_pattern_buffer* chain;  /* escape compile-conflict */</div><div class='ctx'> } OnigRegexType;</div><div class='hunk'>@@ -841,6 +854,8 @@ OnigPosition onig_search_gpos(OnigRegex, const OnigUChar* str, const OnigUChar*</div><div class='ctx'> ONIG_EXTERN</div><div class='ctx'> OnigPosition onig_match(OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option);</div><div class='ctx'> ONIG_EXTERN</div><div class='add'>+int onig_check_linear_time(OnigRegex reg);</div><div class='add'>+ONIG_EXTERN</div><div class='ctx'> OnigRegion* onig_region_new(void);</div><div class='ctx'> ONIG_EXTERN</div><div class='ctx'> void onig_region_init(OnigRegion* region);</div><div class='hunk'>@@ -866,8 +881,10 @@ ONIG_EXTERN</div><div class='ctx'> int onig_number_of_captures(const OnigRegexType *reg);</div><div class='ctx'> ONIG_EXTERN</div><div class='ctx'> int onig_number_of_capture_histories(const OnigRegexType *reg);</div><div class='add'>+#ifdef USE_CAPTURE_HISTORY</div><div class='ctx'> ONIG_EXTERN</div><div class='ctx'> OnigCaptureTreeNode* onig_get_capture_tree(OnigRegion* region);</div><div class='add'>+#endif</div><div class='ctx'> ONIG_EXTERN</div><div class='ctx'> int onig_capture_tree_traverse(OnigRegion* region, int at, int(*callback_func)(int,OnigPosition,OnigPosition,int,int,void*), void* arg);</div><div class='ctx'> ONIG_EXTERN</div><div class='head'>diff --git a/include/ruby/ractor.h b/include/ruby/ractor.h<br/>new file mode 100644<br/>index 0000000000..7811616f6d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/ractor.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/ractor.h</a></div><div class='hunk'>@@ -0,0 +1,264 @@</div><div class='add'>+#ifndef RUBY_RACTOR_H                                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_RACTOR_H 1</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author Koichi Sasada</div><div class='add'>+ * @date Tue Nov 17 16:39:15 2020</div><div class='add'>+ * @copyright Copyright (C) 2020 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='add'>+#include "internal/dllexport.h"      /* RUBY_EXTERN is here */</div><div class='add'>+#include "internal/fl_type.h"        /* FL_TEST_RAW is here */</div><div class='add'>+#include "internal/special_consts.h" /* RB_SPECIAL_CONSTS_P is here */</div><div class='add'>+#include "internal/stdbool.h"        /* bool is here */</div><div class='add'>+#include "internal/value.h"          /* VALUE is here */</div><div class='add'>+</div><div class='add'>+/** Type that defines a ractor-local storage. */</div><div class='add'>+struct rb_ractor_local_storage_type {</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * A function to mark a ractor-local storage.</div><div class='add'>+     *</div><div class='add'>+     * @param[out]  ptr  A ractor-local storage.</div><div class='add'>+     * @post        Ruby objects inside of `ptr` are marked.</div><div class='add'>+     */</div><div class='add'>+    void (*mark)(void *ptr);</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * A function to destruct a ractor-local storage.</div><div class='add'>+     *</div><div class='add'>+     * @param[out]  ptr  A ractor-local storage.</div><div class='add'>+     * @post        `ptr` is not a valid pointer.</div><div class='add'>+     */</div><div class='add'>+    void (*free)(void *ptr);</div><div class='add'>+    // TODO: update</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/** (Opaque) struct that holds a ractor-local storage key. */</div><div class='add'>+typedef struct rb_ractor_local_key_struct *rb_ractor_local_key_t;</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * `Ractor` class.</div><div class='add'>+ *</div><div class='add'>+ * @ingroup object</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN VALUE rb_cRactor;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the standard  input  of the  current Ractor  that  is calling  this</div><div class='add'>+ * function.</div><div class='add'>+ *</div><div class='add'>+ * @return  An IO.</div><div class='add'>+ * @note    This can be different from the process-global one.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ractor_stdin(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the standard  output of  the current  Ractor that  is calling  this</div><div class='add'>+ * function.</div><div class='add'>+ *</div><div class='add'>+ * @return  An IO.</div><div class='add'>+ * @note    This can be different from the process-global one.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ractor_stdout(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries  the standard  error  of the  current Ractor  that  is calling  this</div><div class='add'>+ * function.</div><div class='add'>+ *</div><div class='add'>+ * @return  An IO.</div><div class='add'>+ * @note    This can be different from the process-global one.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ractor_stderr(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Assigns an  IO to  the standard  input of  the Ractor  that is  calling this</div><div class='add'>+ * function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  io  An IO.</div><div class='add'>+ * @post       `io` is the standard input of the current ractor.</div><div class='add'>+ * @post       In case the  calling Ractor is the main Ractor,  it also updates</div><div class='add'>+ *             the process global ::rb_stdin.</div><div class='add'>+ */</div><div class='add'>+void rb_ractor_stdin_set(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Assigns an  IO to  the standard output  of the Ractor  that is  calling this</div><div class='add'>+ * function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  io  An IO.</div><div class='add'>+ * @post       `io` is the standard input of the current ractor.</div><div class='add'>+ * @post       In case the  calling Ractor is the main Ractor,  it also updates</div><div class='add'>+ *             the process global ::rb_stdout.</div><div class='add'>+ */</div><div class='add'>+void rb_ractor_stdout_set(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Assigns an  IO to  the standard  error of  the Ractor  that is  calling this</div><div class='add'>+ * function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  io  An IO.</div><div class='add'>+ * @post       `io` is the standard input of the current ractor.</div><div class='add'>+ * @post       In case the  calling Ractor is the main Ractor,  it also updates</div><div class='add'>+ *             the process global ::rb_stderr.</div><div class='add'>+ */</div><div class='add'>+void rb_ractor_stderr_set(VALUE io);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Issues a new key.</div><div class='add'>+ *</div><div class='add'>+ * @return  A newly  issued ractor-local storage  key.  Keys issued  using this</div><div class='add'>+ *          key can be associated to a Ruby object per Ractor.</div><div class='add'>+ */</div><div class='add'>+rb_ractor_local_key_t rb_ractor_local_storage_value_newkey(void);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the key.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  key        A ractor-local storage key to lookup.</div><div class='add'>+ * @retval     RUBY_Qnil  No such key.</div><div class='add'>+ * @retval     otherwise  A value corresponds to `key` in the current Ractor.</div><div class='add'>+ * @note       This  cannot distinguish  between a  nonexistent key  and a  key</div><div class='add'>+ *             exists and corresponds to ::RUBY_Qnil.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ractor_local_storage_value(rb_ractor_local_key_t key);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries the key.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   key    A ractor-local storage key to lookup.</div><div class='add'>+ * @param[out]  val    Return value buffer.</div><div class='add'>+ * @retval      false  `key` not found.</div><div class='add'>+ * @retval      true   `key` found.</div><div class='add'>+ * @post        `val` is updated so that it  has the value corresponds to `key`</div><div class='add'>+ *              in the current Ractor.</div><div class='add'>+ */</div><div class='add'>+bool rb_ractor_local_storage_value_lookup(rb_ractor_local_key_t key, VALUE *val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Associates the passed value to the passed key.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  key  A ractor-local storage key.</div><div class='add'>+ * @param[in]  val  Arbitrary ruby object.</div><div class='add'>+ * @post       `val` corresponds to `key` in the current Ractor.</div><div class='add'>+ */</div><div class='add'>+void  rb_ractor_local_storage_value_set(rb_ractor_local_key_t key, VALUE val);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * A type of ractor-local storage that destructs itself using ::ruby_xfree.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Why  it is  visible from  3rd party  extension libraries  is not  obvious to</div><div class='add'>+ * @shyouhei.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN const struct rb_ractor_local_storage_type rb_ractor_local_storage_type_free;</div><div class='add'>+</div><div class='add'>+/** @alias{rb_ractor_local_storage_type_free} */</div><div class='add'>+#define RB_RACTOR_LOCAL_STORAGE_TYPE_FREE (&amp;rb_ractor_local_storage_type_free)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Extended version of rb_ractor_local_storage_value_newkey().  It additionally</div><div class='add'>+ * takes the type of the issuing key.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  type  How  the  value associated  with  the  issuing key  should</div><div class='add'>+ *                   behave.</div><div class='add'>+ * @return     A newly issued ractor-local storage key, of type `type`.</div><div class='add'>+ */</div><div class='add'>+rb_ractor_local_key_t rb_ractor_local_storage_ptr_newkey(const struct rb_ractor_local_storage_type *type);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_ractor_local_storage_value() except the return type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  key        A ractor-local storage key to lookup.</div><div class='add'>+ * @retval     NULL       No such key.</div><div class='add'>+ * @retval     otherwise  A value corresponds to `key` in the current Ractor.</div><div class='add'>+ */</div><div class='add'>+void *rb_ractor_local_storage_ptr(rb_ractor_local_key_t key);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_ractor_local_storage_value_set() except the parameter type.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  key  A ractor-local storage key.</div><div class='add'>+ * @param[in]  ptr  A pointer that conforms `key`'s type.</div><div class='add'>+ * @post       `ptr` corresponds to `key` in the current Ractor.</div><div class='add'>+ */</div><div class='add'>+void  rb_ractor_local_storage_ptr_set(rb_ractor_local_key_t key, void *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destructively  transforms the  passed object  so that  multiple Ractors  can</div><div class='add'>+ * share it.  What is a shareable object  and what is not is a nuanced concept,</div><div class='add'>+ * and @ko1  says the definition  can still change.  However  extension library</div><div class='add'>+ * authors might interest to learn how to use #RUBY_TYPED_FROZEN_SHAREABLE.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  obj              Arbitrary ruby object to modify.</div><div class='add'>+ * @exception   rb_eRactorError  Ractors cannot share `obj` by nature.</div><div class='add'>+ * @return      Passed `obj`.</div><div class='add'>+ * @post        Multiple Ractors can share `obj`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * In case an exception is raised, `obj` remains in an intermediate state where</div><div class='add'>+ * some of its part is frozen and others  are not.  @shyouhei is not sure if it</div><div class='add'>+ * is  either  an intended  behaviour,  current  implementation limitation,  or</div><div class='add'>+ * simply a bug.  Note also that there is no way to "melt" a frozen object.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ractor_make_shareable(VALUE obj);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_ractor_make_shareable(), except it  returns a (deep) copy of</div><div class='add'>+ * the passed one instead of modifying it in-place.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   obj              Arbitrary ruby object to duplicate.</div><div class='add'>+ * @exception   rb_eRactorError  Ractors cannot share `obj` by nature.</div><div class='add'>+ * @return      A deep copy of `obj` which is sharable among Ractors.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_ractor_make_shareable_copy(VALUE obj);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if the passed object has  previously classified as shareable or not.</div><div class='add'>+ * This  doesn't mean  anything in  practice...  Objects  can be  shared later.</div><div class='add'>+ * Always use rb_ractor_shareable_p() instead.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj                Object in question.</div><div class='add'>+ * @retval     RUBY_FL_SHAREABLE  It once was shareable before.</div><div class='add'>+ * @retval     0                  Otherwise.</div><div class='add'>+ */</div><div class='add'>+#define RB_OBJ_SHAREABLE_P(obj) FL_TEST_RAW((obj), RUBY_FL_SHAREABLE)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Queries if multiple Ractors can share the passed object or not.  Ractors run</div><div class='add'>+ * without protecting  each other.  Sharing  an object among them  is basically</div><div class='add'>+ * dangerous,  disabled  by  default.   However  there  are  objects  that  are</div><div class='add'>+ * extremely  carefully implemented  to be  Ractor-safe; for  instance integers</div><div class='add'>+ * have such property.  This function can classify that.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   obj    Arbitrary ruby object.</div><div class='add'>+ * @retval      true   `obj` is capable of shared across ractors.</div><div class='add'>+ * @retval      false  `obj` cannot travel across ractor boundaries.</div><div class='add'>+ */</div><div class='add'>+static inline bool</div><div class='add'>+rb_ractor_shareable_p(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    bool rb_ractor_shareable_p_continue(VALUE obj);</div><div class='add'>+</div><div class='add'>+    if (RB_SPECIAL_CONST_P(obj)) {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    else if (RB_OBJ_SHAREABLE_P(obj)) {</div><div class='add'>+        return true;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return rb_ractor_shareable_p_continue(obj);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_RACTOR_H */</div><div class='head'>diff --git a/include/ruby/random.h b/include/ruby/random.h<br/>new file mode 100644<br/>index 0000000000..39bdb6f3e3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/include/ruby/random.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/random.h</a></div><div class='hunk'>@@ -0,0 +1,359 @@</div><div class='add'>+#ifndef RUBY_RANDOM_H                                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_RANDOM_H 1</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @date       Sat May  7 11:51:14 JST 2016</div><div class='add'>+ * @copyright  2007-2020 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ *</div><div class='add'>+ * This  is a  set of  APIs  to roll  your  own subclass  of ::rb_cRandom.   An</div><div class='add'>+ * illustrative    example     of    such     PRNG    can    be     found    at</div><div class='add'>+ * `ext/-test-/ramdom/loop.c`.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * version</div><div class='add'>+ * 0: before versioning; deprecated</div><div class='add'>+ * 1: added version, flags and init_32bit function</div><div class='add'>+ */</div><div class='add'>+#define RUBY_RANDOM_INTERFACE_VERSION_MAJOR 1</div><div class='add'>+#define RUBY_RANDOM_INTERFACE_VERSION_MINOR 0</div><div class='add'>+</div><div class='add'>+#define RUBY_RANDOM_PASTE_VERSION_SUFFIX(x, y, z) x##_##y##_##z</div><div class='add'>+#define RUBY_RANDOM_WITH_VERSION_SUFFIX(name, major, minor) \</div><div class='add'>+    RUBY_RANDOM_PASTE_VERSION_SUFFIX(name, major, minor)</div><div class='add'>+#define rb_random_data_type \</div><div class='add'>+    RUBY_RANDOM_WITH_VERSION_SUFFIX(rb_random_data_type, \</div><div class='add'>+                                    RUBY_RANDOM_INTERFACE_VERSION_MAJOR, \</div><div class='add'>+                                    RUBY_RANDOM_INTERFACE_VERSION_MINOR)</div><div class='add'>+#define RUBY_RANDOM_INTERFACE_VERSION_INITIALIZER \</div><div class='add'>+    {RUBY_RANDOM_INTERFACE_VERSION_MAJOR, RUBY_RANDOM_INTERFACE_VERSION_MINOR}</div><div class='add'>+#define RUBY_RANDOM_INTERFACE_VERSION_MAJOR_MAX 0xff</div><div class='add'>+#define RUBY_RANDOM_INTERFACE_VERSION_MINOR_MAX 0xff</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Base components of the random interface.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Ideally this  could be an  empty class if  we could assume  C++, but in  C a</div><div class='add'>+ * struct must have at least one field.</div><div class='add'>+ */</div><div class='add'>+struct rb_random_struct {</div><div class='add'>+    /** Seed, passed through e.g. `Random.new` */</div><div class='add'>+    VALUE seed;</div><div class='add'>+};</div><div class='add'>+typedef struct rb_random_struct rb_random_t; /**&lt; @see ::rb_random_struct */</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * This is the type of functions called when your random object is initialised.</div><div class='add'>+ * Passed buffer  is the seed  object basically.  But in  Ruby a number  can be</div><div class='add'>+ * really big.  This type of functions accept  such big integers as a series of</div><div class='add'>+ * machine words.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  rng  Your random struct to fill in.</div><div class='add'>+ * @param[in]   buf  Seed, maybe converted from a bignum.</div><div class='add'>+ * @param[in]   len  Number of words of `buf`.</div><div class='add'>+ * @post        `rng` is initialised using the passed seeds.</div><div class='add'>+ */</div><div class='add'>+typedef void rb_random_init_func(rb_random_t *rng, const uint32_t *buf, size_t len);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * This is the type of functions called when your random object is initialised.</div><div class='add'>+ * Passed data is the seed integer.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  rng  Your random struct to fill in.</div><div class='add'>+ * @param[in]   data Seed, single word.</div><div class='add'>+ * @post        `rng` is initialised using the passed seeds.</div><div class='add'>+ */</div><div class='add'>+typedef void rb_random_init_int32_func(rb_random_t *rng, uint32_t data);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * This is the type of functions  called from your object's `#rand` method.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  rng  Your random struct to extract an integer from.</div><div class='add'>+ * @return      A random number.</div><div class='add'>+ * @post        `rng` is consumed somehow.</div><div class='add'>+ */</div><div class='add'>+typedef unsigned int rb_random_get_int32_func(rb_random_t *rng);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * This is the type of functions called from your object's `#bytes` method.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  rng  Your random struct to extract an integer from.</div><div class='add'>+ * @param[out]  buf  Return buffer of at least `len` bytes length.</div><div class='add'>+ * @param[in]   len  Number of bytes of `buf`.</div><div class='add'>+ * @post        `rng` is consumed somehow.</div><div class='add'>+ * @post        `buf` is filled with random bytes.</div><div class='add'>+ */</div><div class='add'>+typedef void rb_random_get_bytes_func(rb_random_t *rng, void *buf, size_t len);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * This is the type of functions called from your object's `#rand` method.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  rng   Your random struct to extract an integer from.</div><div class='add'>+ * @param[in]   excl  Pass nonzero value here to indicate you don't want 1.0.</div><div class='add'>+ * @return      A random number of range 0.0 to 1.0.</div><div class='add'>+ * @post        `rng` is consumed somehow.</div><div class='add'>+ */</div><div class='add'>+typedef double rb_random_get_real_func(rb_random_t *rng, int excl);</div><div class='add'>+</div><div class='add'>+/** PRNG algorithmic interface, analogous to Ruby level classes. */</div><div class='add'>+typedef struct {</div><div class='add'>+    /** Number of bits of seed numbers. */</div><div class='add'>+    size_t default_seed_bits;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Major/minor versions of this interface</div><div class='add'>+     */</div><div class='add'>+    struct {</div><div class='add'>+        uint8_t major, minor;</div><div class='add'>+    } version;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Reserved flags</div><div class='add'>+     */</div><div class='add'>+    uint16_t flags;</div><div class='add'>+</div><div class='add'>+    /** Function to initialize from uint32_t array. */</div><div class='add'>+    rb_random_init_func *init;</div><div class='add'>+</div><div class='add'>+    /** Function to initialize from single uint32_t. */</div><div class='add'>+    rb_random_init_int32_func *init_int32;</div><div class='add'>+</div><div class='add'>+    /** Function to obtain a random integer. */</div><div class='add'>+    rb_random_get_int32_func *get_int32;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Function to obtain a series of random bytes.  If your PRNG have a native</div><div class='add'>+     * method to  yield arbitrary number of  bytes use that to  implement this.</div><div class='add'>+     * But  in   case  you  lack   such  things,  you   can  do  so   by  using</div><div class='add'>+     * rb_rand_bytes_int32()</div><div class='add'>+     *</div><div class='add'>+     * ```CXX</div><div class='add'>+     * extern rb_random_get_int32_func your_get_int32_func;</div><div class='add'>+     *</div><div class='add'>+     * void</div><div class='add'>+     * your_get_byes_func(rb_random_t *rng, void *buf, size_t len)</div><div class='add'>+     * {</div><div class='add'>+     *     rb_rand_bytes_int32(your_get_int32_func, rng, buf, len);</div><div class='add'>+     * }</div><div class='add'>+     * ```</div><div class='add'>+     */</div><div class='add'>+    rb_random_get_bytes_func *get_bytes;</div><div class='add'>+</div><div class='add'>+    /**</div><div class='add'>+     * Function to obtain  a random double.  If your PRNG  have a native method</div><div class='add'>+     * to yield a floating point random number use that to implement this.  But</div><div class='add'>+     * in   case   you  lack   such   things,   you   can   do  so   by   using</div><div class='add'>+     * rb_int_pair_to_real().</div><div class='add'>+     *</div><div class='add'>+     * ```CXX</div><div class='add'>+     * extern rb_random_get_int32_func your_get_int32_func;</div><div class='add'>+     *</div><div class='add'>+     * void</div><div class='add'>+     * your_get_real_func(rb_random_t *rng, int excl)</div><div class='add'>+     * {</div><div class='add'>+     *     auto a = your_get_int32_func(rng);</div><div class='add'>+     *     auto b = your_get_int32_func(rng);</div><div class='add'>+     *     return rb_int_pair_to_real(a, b, excl);</div><div class='add'>+     * }</div><div class='add'>+     * ```</div><div class='add'>+     */</div><div class='add'>+    rb_random_get_real_func *get_real;</div><div class='add'>+} rb_random_interface_t;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This utility macro defines 4 functions named prefix_init, prefix_init_int32,</div><div class='add'>+ * prefix_get_int32, prefix_get_bytes.</div><div class='add'>+ */</div><div class='add'>+#define RB_RANDOM_INTERFACE_DECLARE(prefix) \</div><div class='add'>+    static void prefix##_init(rb_random_t *, const uint32_t *, size_t); \</div><div class='add'>+    static void prefix##_init_int32(rb_random_t *, uint32_t); \</div><div class='add'>+    static unsigned int prefix##_get_int32(rb_random_t *); \</div><div class='add'>+    static void prefix##_get_bytes(rb_random_t *, void *, size_t)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical   to   #RB_RANDOM_INTERFACE_DECLARE   except  it   also   declares</div><div class='add'>+ * prefix_get_real.</div><div class='add'>+ */</div><div class='add'>+#define RB_RANDOM_INTERFACE_DECLARE_WITH_REAL(prefix) \</div><div class='add'>+    RB_RANDOM_INTERFACE_DECLARE(prefix); \</div><div class='add'>+    static double prefix##_get_real(rb_random_t *, int)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This    utility    macro   expands    to    the    names   declared    using</div><div class='add'>+ * #RB_RANDOM_INTERFACE_DECLARE.    Expected   to   be   used   inside   of   a</div><div class='add'>+ * ::rb_random_interface_t initialiser:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * RB_RANDOM_INTERFACE_DECLARE(foo);</div><div class='add'>+ *</div><div class='add'>+ * static inline constexpr rb_random_interface_t foo_interface = {</div><div class='add'>+ *     32768, // bits</div><div class='add'>+ *     RB_RANDOM_INTERFACE_DEFINE(foo),</div><div class='add'>+ * };</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+#define RB_RANDOM_INTERFACE_DEFINE(prefix) \</div><div class='add'>+    RUBY_RANDOM_INTERFACE_VERSION_INITIALIZER, 0, \</div><div class='add'>+    prefix##_init, \</div><div class='add'>+    prefix##_init_int32, \</div><div class='add'>+    prefix##_get_int32, \</div><div class='add'>+    prefix##_get_bytes</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical   to   #RB_RANDOM_INTERFACE_DEFINE    except   it   also   defines</div><div class='add'>+ * prefix_get_real.</div><div class='add'>+ */</div><div class='add'>+#define RB_RANDOM_INTERFACE_DEFINE_WITH_REAL(prefix) \</div><div class='add'>+    RB_RANDOM_INTERFACE_DEFINE(prefix), \</div><div class='add'>+    prefix##_get_real</div><div class='add'>+</div><div class='add'>+#define RB_RANDOM_DEFINE_INIT_INT32_FUNC(prefix) \</div><div class='add'>+    static void prefix##_init_int32(rb_random_t *rnd, uint32_t data) \</div><div class='add'>+    { \</div><div class='add'>+        prefix##_init(rnd, &amp;data, 1); \</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#if defined _WIN32 &amp;&amp; !defined __CYGWIN__</div><div class='add'>+typedef rb_data_type_t rb_random_data_type_t;</div><div class='add'>+# define RB_RANDOM_PARENT 0</div><div class='add'>+#else</div><div class='add'>+</div><div class='add'>+/** This is the type of ::rb_random_data_type. */</div><div class='add'>+typedef const rb_data_type_t rb_random_data_type_t;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This utility macro can be used when you define your own PRNG type:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * static inline constexpr rb_random_interface_t your_if = {</div><div class='add'>+ *     0, RB_RANDOM_INTERFACE_DEFINE(your),</div><div class='add'>+ * };</div><div class='add'>+ *</div><div class='add'>+ * static inline constexpr rb_random_data_type_t your_prng_type = {</div><div class='add'>+ *     "your PRNG",</div><div class='add'>+ *     { rb_random_mark, },</div><div class='add'>+ *     RB_RANDOM_PARENT,                 // &lt;&lt;-- HERE</div><div class='add'>+ *     &amp;your_if,</div><div class='add'>+ *     0,</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ */</div><div class='add'>+# define RB_RANDOM_PARENT &amp;rb_random_data_type</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This macro  is expected  to be  called exactly  once at  the beginning  of a</div><div class='add'>+ * program, possibly from  inside of your `Init_Foo()`  function.  Depending on</div><div class='add'>+ * platforms #RB_RANDOM_PARENT  can require  a fixup.   This routine  does that</div><div class='add'>+ * when necessary.</div><div class='add'>+ */</div><div class='add'>+#define RB_RANDOM_DATA_INIT_PARENT(random_data) \</div><div class='add'>+    rbimpl_random_data_init_parent(&amp;random_data)</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This   is    the   implementation   of    ::rb_data_type_struct::dmark   for</div><div class='add'>+ * ::rb_random_data_type.  In case  your PRNG does not involve  Ruby objects at</div><div class='add'>+ * all (which is quite likely), you can simply reuse it.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  ptr  Target to mark, which is a ::rb_random_t this case.</div><div class='add'>+ */</div><div class='add'>+void rb_random_mark(void *ptr);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Initialises  an allocated  ::rb_random_t instance.   Call it  from your  own</div><div class='add'>+ * initialiser appropriately.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  rnd  Your PRNG's base part.</div><div class='add'>+ * @post        `rnd` is filled with an initial state.</div><div class='add'>+ */</div><div class='add'>+void rb_random_base_init(rb_random_t *rnd);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Generates a 64 bit floating point number by concatenating two 32bit unsigned</div><div class='add'>+ * integers.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  a     Most significant 32 bits of the result.</div><div class='add'>+ * @param[in]  b     Least significant 32 bits of the result.</div><div class='add'>+ * @param[in]  excl  Whether the result should exclude 1.0 or not.</div><div class='add'>+ * @return     A double, whose range is either `[0, 1)` or `[0, 1]`.</div><div class='add'>+ * @see        ::rb_random_interface_t::get_real()</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This in fact has nothing to do with PRNGs.</div><div class='add'>+ */</div><div class='add'>+double rb_int_pair_to_real(uint32_t a, uint32_t b, int excl);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Repeatedly calls  the passed function over  and over again until  the passed</div><div class='add'>+ * buffer is filled with random bytes.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   func  Generator function.</div><div class='add'>+ * @param[out]  prng  Passed as-is to `func`.</div><div class='add'>+ * @param[out]  buff  Return buffer.</div><div class='add'>+ * @param[in]   size  Number of words of `buff`.</div><div class='add'>+ * @post        `buff` is filled with random bytes.</div><div class='add'>+ * @post        `prng` is updated by `func`.</div><div class='add'>+ * @see        ::rb_random_interface_t::get_bytes()</div><div class='add'>+ */</div><div class='add'>+void rb_rand_bytes_int32(rb_random_get_int32_func *func, rb_random_t *prng, void *buff, size_t size);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * The data that  holds the backend type of ::rb_cRandom.   Used as your PRNG's</div><div class='add'>+ * ::rb_data_type_struct::parent.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN const rb_data_type_t rb_random_data_type;</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+/* :TODO: can this function be __attribute__((returns_nonnull)) or not? */</div><div class='add'>+/**</div><div class='add'>+ * Queries the interface of the passed random object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  An instance (of a subclass) of ::rb_cRandom.</div><div class='add'>+ * @return     Its corresponding ::rb_random_interface_t interface.</div><div class='add'>+ */</div><div class='add'>+static inline const rb_random_interface_t *</div><div class='add'>+rb_rand_if(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_OR_ASSUME(RTYPEDDATA_P(obj));</div><div class='add'>+    const struct rb_data_type_struct *t = RTYPEDDATA_TYPE(obj);</div><div class='add'>+    const void *ret = t-&gt;data;</div><div class='add'>+    return RBIMPL_CAST((const rb_random_interface_t *)ret);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This  is an  implementation detail  of #RB_RANDOM_DATA_INIT_PARENT.   People</div><div class='add'>+ * don't use it directly.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  random_data  Region to fill.</div><div class='add'>+ * @post        ::rb_random_data_type is filled appropriately.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rbimpl_random_data_init_parent(rb_random_data_type_t *random_data)</div><div class='add'>+{</div><div class='add'>+#if defined _WIN32 &amp;&amp; !defined __CYGWIN__</div><div class='add'>+    random_data-&gt;parent = &amp;rb_random_data_type;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_RANDOM_H */</div><div class='head'>diff --git a/include/ruby/re.h b/include/ruby/re.h<br/>index 166f254aa5..3892d6e7f2 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/re.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/re.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/re.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/re.h</a></div><div class='hunk'>@@ -1,72 +1,147 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  re.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Thu Sep 30 14:18:32 JST 1993</div><div class='del'>-</div><div class='del'>-  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_RE_H</div><div class='add'>+#ifndef RUBY_RE_H                                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_RE_H 1</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @date       Thu Sep 30 14:18:32 JST 1993</div><div class='add'>+ * @copyright  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SYS_TYPES_H</div><div class='add'>+# include &lt;sys/types.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='ctx'> </div><div class='ctx'> #include "ruby/regex.h"</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-</div><div class='del'>-typedef struct re_pattern_buffer Regexp;</div><div class='del'>-</div><div class='del'>-struct rmatch_offset {</div><div class='del'>-    long beg;</div><div class='del'>-    long end;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct rmatch {</div><div class='del'>-    struct re_registers regs;</div><div class='del'>-</div><div class='del'>-    int char_offset_updated;</div><div class='del'>-    int char_offset_num_allocated;</div><div class='del'>-    struct rmatch_offset *char_offset;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct RMatch {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    VALUE str;</div><div class='del'>-    struct rmatch *rmatch;</div><div class='del'>-    VALUE regexp;  /* RRegexp */</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define RMATCH(obj)  (R_CAST(RMatch)(obj))</div><div class='del'>-#define RMATCH_REGS(obj)  (&amp;(R_CAST(RMatch)(obj))-&gt;rmatch-&gt;regs)</div><div class='del'>-</div><div class='del'>-VALUE rb_reg_regcomp(VALUE);</div><div class='del'>-long rb_reg_search(VALUE, VALUE, long, int);</div><div class='del'>-VALUE rb_reg_regsub(VALUE, VALUE, struct re_registers *, VALUE);</div><div class='del'>-long rb_reg_adjust_startpos(VALUE, VALUE, long, int);</div><div class='del'>-void rb_match_busy(VALUE);</div><div class='del'>-VALUE rb_reg_quote(VALUE);</div><div class='add'>+#include "ruby/internal/core/rmatch.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+</div><div class='add'>+struct re_registers;            /* Defined in onigmo.h */</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Creates a  new instance of  ::rb_cRegexp.  It can  be seen as  a specialised</div><div class='add'>+ * version of rb_reg_new_str() where it does not take options.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  Source code in String.</div><div class='add'>+ * @return     Allocated new instance of ::rb_cRegexp.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_regcomp(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Runs  the  passed  regular  expression   over  the  passed  string.   Unlike</div><div class='add'>+ * rb_reg_search()  this function  also  takes position  and  direction of  the</div><div class='add'>+ * search, which make  it possible for this  function to run from  in middle of</div><div class='add'>+ * the string.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  re               Regular expression to execute.</div><div class='add'>+ * @param[in]  str              Target string to search.</div><div class='add'>+ * @param[in]  pos              Offset in `str` to start searching, in bytes.</div><div class='add'>+ * @param[in]  dir              `pos`' direction; 0  means left-to-right, 1 for</div><div class='add'>+ *                              the opposite.</div><div class='add'>+ * @exception  rb_eArgError     `re` is broken.</div><div class='add'>+ * @exception  rb_eRegexpError  `re` is malformed.</div><div class='add'>+ * @retval     -1               Match failed.</div><div class='add'>+ * @retval     otherwise        Offset of first such byte where match happened.</div><div class='add'>+ * @post       `Regexp.last_match` is updated.</div><div class='add'>+ * @post       `$&amp;`, `$~`, etc., are updated.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Distinction  between raising  ::rb_eArgError  and  ::rb_eRegexpError is  not</div><div class='add'>+ * obvious, at least to @shyouhei.</div><div class='add'>+ */</div><div class='add'>+long rb_reg_search(VALUE re, VALUE str, long pos, int dir);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Substitution.  This  is basically the implementation  of `String#sub`.  Also</div><div class='add'>+ * `String#gsub` repeatedly calls this function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  repl  Replacement string, e.g. `"\\1\\2"`</div><div class='add'>+ * @param[in]  src   Source string, to be replaced.</div><div class='add'>+ * @param[in]  regs  Matched data generated by applying `rexp` to `src`.</div><div class='add'>+ * @param[in]  rexp  Regular expression.</div><div class='add'>+ * @return     A substituted string.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This  function does  not  check for  encoding compatibility.   `String#sub!`</div><div class='add'>+ * etc. employ their own checker.</div><div class='add'>+ *</div><div class='add'>+ * `regs` should  have been `const  struct re_registers  *` because it  is read</div><div class='add'>+ * only.  Kept as-is for compatibility.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_regsub(VALUE repl, VALUE src, struct re_registers *regs, VALUE rexp);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Tell us if this is a wrong idea,  but it seems this function has no usage at</div><div class='add'>+ * all.  Just remains here for theoretical backwards compatibility.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  re               Regular expression to execute.</div><div class='add'>+ * @param[in]  str              Target string to search.</div><div class='add'>+ * @param[in]  pos              Offset in `str` to start searching, in bytes.</div><div class='add'>+ * @param[in]  dir              `pos`' direction; 0  means left-to-right, 1 for</div><div class='add'>+ *                              the opposite.</div><div class='add'>+ * @return     Adjusted nearest  offset to  `pos` inside of  `str`, where  is a</div><div class='add'>+ *             character boundary.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+long rb_reg_adjust_startpos(VALUE re, VALUE str, long pos, int dir);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Escapes  any  characters  that  would  have special  meaning  in  a  regular</div><div class='add'>+ * expression.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  Target string to escape.</div><div class='add'>+ * @return     A copy of `str` whose contents are escaped.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_reg_quote(VALUE str);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Exercises  various  checks  and  preprocesses  so  that  the  given  regular</div><div class='add'>+ * expression can be applied to the given string.  The preprocess here includes</div><div class='add'>+ * (but not limited to) for instance encoding conversion.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  re                  Target regular expression.</div><div class='add'>+ * @param[in]  str                 What `re` is about to run on.</div><div class='add'>+ * @exception  rb_eArgError        `re` does not fit for `str`.</div><div class='add'>+ * @exception  rb_eEncCompatError  `re` and `str` are incompatible.</div><div class='add'>+ * @exception  rb_eRegexpError     `re` is malformed.</div><div class='add'>+ * @return     A preprocessesed pattern buffer ready to be applied to `str`.</div><div class='add'>+ * @note       The return value is manages by our GC.  Don't free.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * The  return  type,  `regex_t  *`, is  defined  in  `&lt;ruby/onigmo.h&gt;`,  _and_</div><div class='add'>+ * _conflicts_ with POSIX's  `&lt;regex.h&gt;`.  We can no longer  save the situation</div><div class='add'>+ * at this point.  Just don't mix the two.</div><div class='add'>+ */</div><div class='ctx'> regex_t *rb_reg_prepare_re(VALUE re, VALUE str);</div><div class='del'>-int rb_reg_region_copy(struct re_registers *, const struct re_registers *);</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='ctx'> </div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='add'>+/**</div><div class='add'>+ * Duplicates a match data.  This  is roughly the same as `onig_region_copy()`,</div><div class='add'>+ * except it tries to GC when there is not enough memory.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  dst             Target registers to fill.</div><div class='add'>+ * @param[in]   src             Source registers to duplicate.</div><div class='add'>+ * @exception   rb_eNoMemError  Not enough memory.</div><div class='add'>+ * @retval      0               Successful</div><div class='add'>+ * @retval      ONIGERR_MEMORY  Not enough memory, even after GC (unlikely).</div><div class='add'>+ * @post        `dst` has identical contents to `src`.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It seems this function is here for `ext/strscan` and nothing else.</div><div class='add'>+ */</div><div class='add'>+int rb_reg_region_copy(struct re_registers *dst, const struct re_registers *src);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='ctx'> </div><div class='ctx'> #endif /* RUBY_RE_H */</div><div class='head'>diff --git a/include/ruby/regex.h b/include/ruby/regex.h<br/>index 024bed4a4e..53278173f8 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/regex.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/regex.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/regex.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/regex.h</a></div><div class='hunk'>@@ -1,16 +1,13 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  regex.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-</div><div class='del'>-  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef ONIGURUMA_REGEX_H</div><div class='add'>+#ifndef ONIGURUMA_REGEX_H                            /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define ONIGURUMA_REGEX_H 1</div><div class='del'>-</div><div class='add'>+/**</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @copyright  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='ctx'> #if defined(__cplusplus)</div><div class='ctx'> extern "C" {</div><div class='ctx'> #if 0</div><div class='head'>diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h<br/>index d983114e0a..444940ca3a 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/ruby.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/ruby.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/ruby.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/ruby.h</a></div><div class='hunk'>@@ -1,2690 +1,312 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  ruby/ruby.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Thu Jun 10 14:26:32 JST 1993</div><div class='del'>-</div><div class='del'>-  Copyright (C) 1993-2008 Yukihiro Matsumoto</div><div class='del'>-  Copyright (C) 2000  Network Applied Communication Laboratory, Inc.</div><div class='del'>-  Copyright (C) 2000  Information-technology Promotion Agency, Japan</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_RUBY_H</div><div class='add'>+#ifndef RUBY_RUBY_H                                  /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_RUBY_H 1</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @date       Thu Jun 10 14:26:32 JST 1993</div><div class='add'>+ * @copyright  Copyright (C) 1993-2008 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  Copyright (C) 2000  Network Applied Communication Laboratory, Inc.</div><div class='add'>+ * @copyright  Copyright (C) 2000  Information-technology Promotion Agency, Japan</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> </div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include "ruby/config.h"</div><div class='del'>-#ifdef RUBY_EXTCONF_H</div><div class='del'>-#include RUBY_EXTCONF_H</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#include "defines.h"</div><div class='del'>-</div><div class='del'>-/* For MinGW, we need __declspec(dllimport) for RUBY_EXTERN on MJIT.</div><div class='del'>-   mswin's RUBY_EXTERN already has that. See also: win32/Makefile.sub */</div><div class='del'>-#if defined(MJIT_HEADER) &amp;&amp; defined(_WIN32) &amp;&amp; defined(__GNUC__)</div><div class='del'>-# undef RUBY_EXTERN</div><div class='del'>-# define RUBY_EXTERN extern __declspec(dllimport)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-/* __builtin_choose_expr and __builtin_types_compatible aren't available</div><div class='del'>- * on C++.  See https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html */</div><div class='del'>-# undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P</div><div class='del'>-# undef HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P</div><div class='del'>-#elif GCC_VERSION_BEFORE(4,8,6) /* Bug #14221 */</div><div class='del'>-# undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef ASSUME</div><div class='del'>-# ifdef UNREACHABLE</div><div class='del'>-#   define ASSUME(x) (RB_LIKELY(!!(x)) ? (void)0 : UNREACHABLE)</div><div class='del'>-# else</div><div class='del'>-#   define ASSUME(x) ((void)(x))</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-#ifndef UNREACHABLE_RETURN</div><div class='del'>-# ifdef UNREACHABLE</div><div class='del'>-#  define UNREACHABLE_RETURN(val) UNREACHABLE</div><div class='del'>-# else</div><div class='del'>-#  define UNREACHABLE_RETURN(val) return (val)</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-#ifndef UNREACHABLE</div><div class='del'>-# define UNREACHABLE ((void)0)	/* unreachable */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define RUBY_MACRO_SELECT(base, n) TOKEN_PASTE(base, n)</div><div class='del'>-</div><div class='add'>+/* @shyouhei  doesn't  understand  why  we need  &lt;intrinsics.h&gt;  at  this  very</div><div class='add'>+ * beginning of the entire &lt;ruby.h&gt; circus. */</div><div class='ctx'> #ifdef HAVE_INTRINSICS_H</div><div class='ctx'> # include &lt;intrinsics.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #include &lt;stdarg.h&gt;</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-</div><div class='del'>-/* Make alloca work the best possible way.  */</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-# ifndef alloca</div><div class='del'>-#  define alloca __builtin_alloca</div><div class='del'>-# endif</div><div class='del'>-#else</div><div class='del'>-# ifdef HAVE_ALLOCA_H</div><div class='del'>-#  include &lt;alloca.h&gt;</div><div class='del'>-# else</div><div class='del'>-#  ifdef _AIX</div><div class='del'>-#pragma alloca</div><div class='del'>-#  else</div><div class='del'>-#   ifndef alloca		/* predefined by HP cc +Olibcalls */</div><div class='del'>-void *alloca();</div><div class='del'>-#   endif</div><div class='del'>-#  endif /* AIX */</div><div class='del'>-# endif	/* HAVE_ALLOCA_H */</div><div class='del'>-#endif /* __GNUC__ */</div><div class='del'>-</div><div class='del'>-#if defined HAVE_UINTPTR_T &amp;&amp; 0</div><div class='del'>-typedef uintptr_t VALUE;</div><div class='del'>-typedef uintptr_t ID;</div><div class='del'>-# define SIGNED_VALUE intptr_t</div><div class='del'>-# define SIZEOF_VALUE SIZEOF_UINTPTR_T</div><div class='del'>-# undef PRI_VALUE_PREFIX</div><div class='del'>-#elif SIZEOF_LONG == SIZEOF_VOIDP</div><div class='del'>-typedef unsigned long VALUE;</div><div class='del'>-typedef unsigned long ID;</div><div class='del'>-# define SIGNED_VALUE long</div><div class='del'>-# define SIZEOF_VALUE SIZEOF_LONG</div><div class='del'>-# define PRI_VALUE_PREFIX "l"</div><div class='del'>-#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP</div><div class='del'>-typedef unsigned LONG_LONG VALUE;</div><div class='del'>-typedef unsigned LONG_LONG ID;</div><div class='del'>-# define SIGNED_VALUE LONG_LONG</div><div class='del'>-# define LONG_LONG_VALUE 1</div><div class='del'>-# define SIZEOF_VALUE SIZEOF_LONG_LONG</div><div class='del'>-# define PRI_VALUE_PREFIX PRI_LL_PREFIX</div><div class='del'>-#else</div><div class='del'>-# error ----&gt;&gt; ruby requires sizeof(void*) == sizeof(long) or sizeof(LONG_LONG) to be compiled. &lt;&lt;----</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-typedef char ruby_check_sizeof_int[SIZEOF_INT == sizeof(int) ? 1 : -1];</div><div class='del'>-typedef char ruby_check_sizeof_long[SIZEOF_LONG == sizeof(long) ? 1 : -1];</div><div class='del'>-#ifdef HAVE_LONG_LONG</div><div class='del'>-typedef char ruby_check_sizeof_long_long[SIZEOF_LONG_LONG == sizeof(LONG_LONG) ? 1 : -1];</div><div class='del'>-#endif</div><div class='del'>-typedef char ruby_check_sizeof_voidp[SIZEOF_VOIDP == sizeof(void*) ? 1 : -1];</div><div class='del'>-</div><div class='del'>-#ifndef PRI_INT_PREFIX</div><div class='del'>-#define PRI_INT_PREFIX ""</div><div class='del'>-#endif</div><div class='del'>-#ifndef PRI_LONG_PREFIX</div><div class='del'>-#define PRI_LONG_PREFIX "l"</div><div class='del'>-#endif</div><div class='del'>-#ifndef PRI_SHORT_PREFIX</div><div class='del'>-#define PRI_SHORT_PREFIX "h"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef PRI_64_PREFIX</div><div class='del'>-#if SIZEOF_LONG == 8</div><div class='del'>-#define PRI_64_PREFIX PRI_LONG_PREFIX</div><div class='del'>-#elif SIZEOF_LONG_LONG == 8</div><div class='del'>-#define PRI_64_PREFIX PRI_LL_PREFIX</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef PRIdPTR</div><div class='del'>-#define PRIdPTR PRI_PTR_PREFIX"d"</div><div class='del'>-#define PRIiPTR PRI_PTR_PREFIX"i"</div><div class='del'>-#define PRIoPTR PRI_PTR_PREFIX"o"</div><div class='del'>-#define PRIuPTR PRI_PTR_PREFIX"u"</div><div class='del'>-#define PRIxPTR PRI_PTR_PREFIX"x"</div><div class='del'>-#define PRIXPTR PRI_PTR_PREFIX"X"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define RUBY_PRI_VALUE_MARK "\v"</div><div class='del'>-#if defined PRIdPTR &amp;&amp; !defined PRI_VALUE_PREFIX</div><div class='del'>-#define PRIdVALUE PRIdPTR</div><div class='del'>-#define PRIoVALUE PRIoPTR</div><div class='del'>-#define PRIuVALUE PRIuPTR</div><div class='del'>-#define PRIxVALUE PRIxPTR</div><div class='del'>-#define PRIXVALUE PRIXPTR</div><div class='del'>-#define PRIsVALUE PRIiPTR"" RUBY_PRI_VALUE_MARK</div><div class='del'>-#else</div><div class='del'>-#define PRIdVALUE PRI_VALUE_PREFIX"d"</div><div class='del'>-#define PRIoVALUE PRI_VALUE_PREFIX"o"</div><div class='del'>-#define PRIuVALUE PRI_VALUE_PREFIX"u"</div><div class='del'>-#define PRIxVALUE PRI_VALUE_PREFIX"x"</div><div class='del'>-#define PRIXVALUE PRI_VALUE_PREFIX"X"</div><div class='del'>-#define PRIsVALUE PRI_VALUE_PREFIX"i" RUBY_PRI_VALUE_MARK</div><div class='del'>-#endif</div><div class='del'>-#ifndef PRI_VALUE_PREFIX</div><div class='del'>-# define PRI_VALUE_PREFIX ""</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef PRI_TIMET_PREFIX</div><div class='del'>-# if SIZEOF_TIME_T == SIZEOF_INT</div><div class='del'>-#  define PRI_TIMET_PREFIX</div><div class='del'>-# elif SIZEOF_TIME_T == SIZEOF_LONG</div><div class='del'>-#  define PRI_TIMET_PREFIX "l"</div><div class='del'>-# elif SIZEOF_TIME_T == SIZEOF_LONG_LONG</div><div class='del'>-#  define PRI_TIMET_PREFIX PRI_LL_PREFIX</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined PRI_PTRDIFF_PREFIX</div><div class='del'>-#elif SIZEOF_PTRDIFF_T == SIZEOF_INT</div><div class='del'>-# define PRI_PTRDIFF_PREFIX ""</div><div class='del'>-#elif SIZEOF_PTRDIFF_T == SIZEOF_LONG</div><div class='del'>-# define PRI_PTRDIFF_PREFIX "l"</div><div class='del'>-#elif SIZEOF_PTRDIFF_T == SIZEOF_LONG_LONG</div><div class='del'>-# define PRI_PTRDIFF_PREFIX PRI_LL_PREFIX</div><div class='del'>-#endif</div><div class='del'>-#define PRIdPTRDIFF PRI_PTRDIFF_PREFIX"d"</div><div class='del'>-#define PRIiPTRDIFF PRI_PTRDIFF_PREFIX"i"</div><div class='del'>-#define PRIoPTRDIFF PRI_PTRDIFF_PREFIX"o"</div><div class='del'>-#define PRIuPTRDIFF PRI_PTRDIFF_PREFIX"u"</div><div class='del'>-#define PRIxPTRDIFF PRI_PTRDIFF_PREFIX"x"</div><div class='del'>-#define PRIXPTRDIFF PRI_PTRDIFF_PREFIX"X"</div><div class='del'>-</div><div class='del'>-#if defined PRI_SIZE_PREFIX</div><div class='del'>-#elif SIZEOF_SIZE_T == SIZEOF_INT</div><div class='del'>-# define PRI_SIZE_PREFIX ""</div><div class='del'>-#elif SIZEOF_SIZE_T == SIZEOF_LONG</div><div class='del'>-# define PRI_SIZE_PREFIX "l"</div><div class='del'>-#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG</div><div class='del'>-# define PRI_SIZE_PREFIX PRI_LL_PREFIX</div><div class='del'>-#endif</div><div class='del'>-#define PRIdSIZE PRI_SIZE_PREFIX"d"</div><div class='del'>-#define PRIiSIZE PRI_SIZE_PREFIX"i"</div><div class='del'>-#define PRIoSIZE PRI_SIZE_PREFIX"o"</div><div class='del'>-#define PRIuSIZE PRI_SIZE_PREFIX"u"</div><div class='del'>-#define PRIxSIZE PRI_SIZE_PREFIX"x"</div><div class='del'>-#define PRIXSIZE PRI_SIZE_PREFIX"X"</div><div class='del'>-</div><div class='del'>-#ifdef __STDC__</div><div class='del'>-# include &lt;limits.h&gt;</div><div class='del'>-#else</div><div class='del'>-# ifndef LONG_MAX</div><div class='del'>-#  ifdef HAVE_LIMITS_H</div><div class='del'>-#   include &lt;limits.h&gt;</div><div class='del'>-#  else</div><div class='del'>-    /* assuming 32bit(2's complement) long */</div><div class='del'>-#   define LONG_MAX 2147483647</div><div class='del'>-#  endif</div><div class='del'>-# endif</div><div class='del'>-# ifndef LONG_MIN</div><div class='del'>-#  define LONG_MIN (-LONG_MAX-1)</div><div class='del'>-# endif</div><div class='del'>-# ifndef CHAR_BIT</div><div class='del'>-#  define CHAR_BIT 8</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_LONG_LONG</div><div class='del'>-# ifndef LLONG_MAX</div><div class='del'>-#  ifdef LONG_LONG_MAX</div><div class='del'>-#   define LLONG_MAX  LONG_LONG_MAX</div><div class='del'>-#  else</div><div class='del'>-#   ifdef _I64_MAX</div><div class='del'>-#    define LLONG_MAX _I64_MAX</div><div class='del'>-#   else</div><div class='del'>-    /* assuming 64bit(2's complement) long long */</div><div class='del'>-#    define LLONG_MAX 9223372036854775807LL</div><div class='del'>-#   endif</div><div class='del'>-#  endif</div><div class='del'>-# endif</div><div class='del'>-# ifndef LLONG_MIN</div><div class='del'>-#  ifdef LONG_LONG_MIN</div><div class='del'>-#   define LLONG_MIN  LONG_LONG_MIN</div><div class='del'>-#  else</div><div class='del'>-#   ifdef _I64_MIN</div><div class='del'>-#    define LLONG_MIN _I64_MIN</div><div class='del'>-#   else</div><div class='del'>-#    define LLONG_MIN (-LLONG_MAX-1)</div><div class='del'>-#   endif</div><div class='del'>-#  endif</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define RUBY_FIXNUM_MAX (LONG_MAX&gt;&gt;1)</div><div class='del'>-#define RUBY_FIXNUM_MIN RSHIFT((long)LONG_MIN,1)</div><div class='del'>-#define FIXNUM_MAX RUBY_FIXNUM_MAX</div><div class='del'>-#define FIXNUM_MIN RUBY_FIXNUM_MIN</div><div class='del'>-</div><div class='del'>-#define RB_INT2FIX(i) (((VALUE)(i))&lt;&lt;1 | RUBY_FIXNUM_FLAG)</div><div class='del'>-#define INT2FIX(i) RB_INT2FIX(i)</div><div class='del'>-#define RB_LONG2FIX(i) RB_INT2FIX(i)</div><div class='del'>-#define LONG2FIX(i) RB_INT2FIX(i)</div><div class='del'>-#define rb_fix_new(v) RB_INT2FIX(v)</div><div class='del'>-VALUE rb_int2inum(intptr_t);</div><div class='del'>-</div><div class='del'>-#define rb_int_new(v) rb_int2inum(v)</div><div class='del'>-VALUE rb_uint2inum(uintptr_t);</div><div class='del'>-</div><div class='del'>-#define rb_uint_new(v) rb_uint2inum(v)</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_LONG_LONG</div><div class='del'>-VALUE rb_ll2inum(LONG_LONG);</div><div class='del'>-#define LL2NUM(v) rb_ll2inum(v)</div><div class='del'>-VALUE rb_ull2inum(unsigned LONG_LONG);</div><div class='del'>-#define ULL2NUM(v) rb_ull2inum(v)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef OFFT2NUM</div><div class='del'>-#if SIZEOF_OFF_T &gt; SIZEOF_LONG &amp;&amp; defined(HAVE_LONG_LONG)</div><div class='del'>-# define OFFT2NUM(v) LL2NUM(v)</div><div class='del'>-#elif SIZEOF_OFF_T == SIZEOF_LONG</div><div class='del'>-# define OFFT2NUM(v) LONG2NUM(v)</div><div class='del'>-#else</div><div class='del'>-# define OFFT2NUM(v) INT2NUM(v)</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if SIZEOF_SIZE_T &gt; SIZEOF_LONG &amp;&amp; defined(HAVE_LONG_LONG)</div><div class='del'>-# define SIZET2NUM(v) ULL2NUM(v)</div><div class='del'>-# define SSIZET2NUM(v) LL2NUM(v)</div><div class='del'>-#elif SIZEOF_SIZE_T == SIZEOF_LONG</div><div class='del'>-# define SIZET2NUM(v) ULONG2NUM(v)</div><div class='del'>-# define SSIZET2NUM(v) LONG2NUM(v)</div><div class='del'>-#else</div><div class='del'>-# define SIZET2NUM(v) UINT2NUM(v)</div><div class='del'>-# define SSIZET2NUM(v) INT2NUM(v)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef SIZE_MAX</div><div class='del'>-# if SIZEOF_SIZE_T &gt; SIZEOF_LONG &amp;&amp; defined(HAVE_LONG_LONG)</div><div class='del'>-#   define SIZE_MAX ULLONG_MAX</div><div class='del'>-#   define SIZE_MIN ULLONG_MIN</div><div class='del'>-# elif SIZEOF_SIZE_T == SIZEOF_LONG</div><div class='del'>-#   define SIZE_MAX ULONG_MAX</div><div class='del'>-#   define SIZE_MIN ULONG_MIN</div><div class='del'>-# elif SIZEOF_SIZE_T == SIZEOF_INT</div><div class='del'>-#   define SIZE_MAX UINT_MAX</div><div class='del'>-#   define SIZE_MIN UINT_MIN</div><div class='del'>-# else</div><div class='del'>-#   define SIZE_MAX USHRT_MAX</div><div class='del'>-#   define SIZE_MIN USHRT_MIN</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef SSIZE_MAX</div><div class='del'>-# if SIZEOF_SIZE_T &gt; SIZEOF_LONG &amp;&amp; defined(HAVE_LONG_LONG)</div><div class='del'>-#   define SSIZE_MAX LLONG_MAX</div><div class='del'>-#   define SSIZE_MIN LLONG_MIN</div><div class='del'>-# elif SIZEOF_SIZE_T == SIZEOF_LONG</div><div class='del'>-#   define SSIZE_MAX LONG_MAX</div><div class='del'>-#   define SSIZE_MIN LONG_MIN</div><div class='del'>-# elif SIZEOF_SIZE_T == SIZEOF_INT</div><div class='del'>-#   define SSIZE_MAX INT_MAX</div><div class='del'>-#   define SSIZE_MIN INT_MIN</div><div class='del'>-# else</div><div class='del'>-#   define SSIZE_MAX SHRT_MAX</div><div class='del'>-#   define SSIZE_MIN SHRT_MIN</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if SIZEOF_INT &lt; SIZEOF_VALUE</div><div class='del'>-NORETURN(void rb_out_of_int(SIGNED_VALUE num));</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if SIZEOF_INT &lt; SIZEOF_LONG</div><div class='del'>-static inline int</div><div class='del'>-rb_long2int_inline(long n)</div><div class='del'>-{</div><div class='del'>-    int i = (int)n;</div><div class='del'>-    if ((long)i != n)</div><div class='del'>-	rb_out_of_int(n);</div><div class='del'>-</div><div class='del'>-    return i;</div><div class='del'>-}</div><div class='del'>-#define rb_long2int(n) rb_long2int_inline(n)</div><div class='del'>-#else</div><div class='del'>-#define rb_long2int(n) ((int)(n))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef PIDT2NUM</div><div class='del'>-#define PIDT2NUM(v) LONG2NUM(v)</div><div class='del'>-#endif</div><div class='del'>-#ifndef NUM2PIDT</div><div class='del'>-#define NUM2PIDT(v) NUM2LONG(v)</div><div class='del'>-#endif</div><div class='del'>-#ifndef UIDT2NUM</div><div class='del'>-#define UIDT2NUM(v) LONG2NUM(v)</div><div class='del'>-#endif</div><div class='del'>-#ifndef NUM2UIDT</div><div class='del'>-#define NUM2UIDT(v) NUM2LONG(v)</div><div class='del'>-#endif</div><div class='del'>-#ifndef GIDT2NUM</div><div class='del'>-#define GIDT2NUM(v) LONG2NUM(v)</div><div class='del'>-#endif</div><div class='del'>-#ifndef NUM2GIDT</div><div class='del'>-#define NUM2GIDT(v) NUM2LONG(v)</div><div class='del'>-#endif</div><div class='del'>-#ifndef NUM2MODET</div><div class='del'>-#define NUM2MODET(v) NUM2INT(v)</div><div class='del'>-#endif</div><div class='del'>-#ifndef MODET2NUM</div><div class='del'>-#define MODET2NUM(v) INT2NUM(v)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define RB_FIX2LONG(x) ((long)RSHIFT((SIGNED_VALUE)(x),1))</div><div class='del'>-static inline long</div><div class='del'>-rb_fix2long(VALUE x)</div><div class='del'>-{</div><div class='del'>-    return RB_FIX2LONG(x);</div><div class='del'>-}</div><div class='del'>-#define RB_FIX2ULONG(x) ((unsigned long)RB_FIX2LONG(x))</div><div class='del'>-static inline unsigned long</div><div class='del'>-rb_fix2ulong(VALUE x)</div><div class='del'>-{</div><div class='del'>-    return RB_FIX2ULONG(x);</div><div class='del'>-}</div><div class='del'>-#define RB_FIXNUM_P(f) (((int)(SIGNED_VALUE)(f))&amp;RUBY_FIXNUM_FLAG)</div><div class='del'>-#define RB_POSFIXABLE(f) ((f) &lt; RUBY_FIXNUM_MAX+1)</div><div class='del'>-#define RB_NEGFIXABLE(f) ((f) &gt;= RUBY_FIXNUM_MIN)</div><div class='del'>-#define RB_FIXABLE(f) (RB_POSFIXABLE(f) &amp;&amp; RB_NEGFIXABLE(f))</div><div class='del'>-#define FIX2LONG(x) RB_FIX2LONG(x)</div><div class='del'>-#define FIX2ULONG(x) RB_FIX2ULONG(x)</div><div class='del'>-#define FIXNUM_P(f) RB_FIXNUM_P(f)</div><div class='del'>-#define POSFIXABLE(f) RB_POSFIXABLE(f)</div><div class='del'>-#define NEGFIXABLE(f) RB_NEGFIXABLE(f)</div><div class='del'>-#define FIXABLE(f) RB_FIXABLE(f)</div><div class='del'>-</div><div class='del'>-#define RB_IMMEDIATE_P(x) ((VALUE)(x) &amp; RUBY_IMMEDIATE_MASK)</div><div class='del'>-#define IMMEDIATE_P(x) RB_IMMEDIATE_P(x)</div><div class='del'>-</div><div class='del'>-ID rb_sym2id(VALUE);</div><div class='del'>-VALUE rb_id2sym(ID);</div><div class='del'>-#define RB_STATIC_SYM_P(x) (((VALUE)(x)&amp;~((~(VALUE)0)&lt;&lt;RUBY_SPECIAL_SHIFT)) == RUBY_SYMBOL_FLAG)</div><div class='del'>-#define RB_DYNAMIC_SYM_P(x) (!RB_SPECIAL_CONST_P(x) &amp;&amp; RB_BUILTIN_TYPE(x) == (RUBY_T_SYMBOL))</div><div class='del'>-#define RB_SYMBOL_P(x) (RB_STATIC_SYM_P(x)||RB_DYNAMIC_SYM_P(x))</div><div class='del'>-#define RB_ID2SYM(x) (rb_id2sym(x))</div><div class='del'>-#define RB_SYM2ID(x) (rb_sym2id(x))</div><div class='del'>-#define STATIC_SYM_P(x) RB_STATIC_SYM_P(x)</div><div class='del'>-#define DYNAMIC_SYM_P(x) RB_DYNAMIC_SYM_P(x)</div><div class='del'>-#define SYMBOL_P(x) RB_SYMBOL_P(x)</div><div class='del'>-#define ID2SYM(x) RB_ID2SYM(x)</div><div class='del'>-#define SYM2ID(x) RB_SYM2ID(x)</div><div class='del'>-</div><div class='del'>-#ifndef USE_FLONUM</div><div class='del'>-#if SIZEOF_VALUE &gt;= SIZEOF_DOUBLE</div><div class='del'>-#define USE_FLONUM 1</div><div class='del'>-#else</div><div class='del'>-#define USE_FLONUM 0</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if USE_FLONUM</div><div class='del'>-#define RB_FLONUM_P(x) ((((int)(SIGNED_VALUE)(x))&amp;RUBY_FLONUM_MASK) == RUBY_FLONUM_FLAG)</div><div class='del'>-#else</div><div class='del'>-#define RB_FLONUM_P(x) 0</div><div class='del'>-#endif</div><div class='del'>-#define FLONUM_P(x) RB_FLONUM_P(x)</div><div class='add'>+#include "defines.h"</div><div class='add'>+#include "ruby/internal/abi.h"</div><div class='add'>+#include "ruby/internal/anyargs.h"</div><div class='add'>+#include "ruby/internal/arithmetic.h"</div><div class='add'>+#include "ruby/internal/core.h"</div><div class='add'>+#include "ruby/internal/ctype.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/internal/error.h"</div><div class='add'>+#include "ruby/internal/eval.h"</div><div class='add'>+#include "ruby/internal/event.h"</div><div class='add'>+#include "ruby/internal/fl_type.h"</div><div class='add'>+#include "ruby/internal/gc.h"</div><div class='add'>+#include "ruby/internal/glob.h"</div><div class='add'>+#include "ruby/internal/globals.h"</div><div class='add'>+#include "ruby/internal/has/warning.h"</div><div class='add'>+#include "ruby/internal/interpreter.h"</div><div class='add'>+#include "ruby/internal/iterator.h"</div><div class='add'>+#include "ruby/internal/memory.h"</div><div class='add'>+#include "ruby/internal/method.h"</div><div class='add'>+#include "ruby/internal/module.h"</div><div class='add'>+#include "ruby/internal/newobj.h"</div><div class='add'>+#include "ruby/internal/rgengc.h"</div><div class='add'>+#include "ruby/internal/scan_args.h"</div><div class='add'>+#include "ruby/internal/special_consts.h"</div><div class='add'>+#include "ruby/internal/symbol.h"</div><div class='add'>+#include "ruby/internal/value.h"</div><div class='add'>+#include "ruby/internal/value_type.h"</div><div class='add'>+#include "ruby/internal/variable.h"</div><div class='add'>+#include "ruby/assert.h"</div><div class='add'>+#include "ruby/backward/2/assume.h"</div><div class='add'>+#include "ruby/backward/2/inttypes.h"</div><div class='add'>+#include "ruby/backward/2/limits.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='ctx'> </div><div class='ctx'> /* Module#methods, #singleton_methods and so on return Symbols */</div><div class='del'>-#define USE_SYMBOL_AS_METHOD_NAME 1</div><div class='del'>-</div><div class='del'>-/* special constants - i.e. non-zero and non-fixnum constants */</div><div class='del'>-enum ruby_special_consts {</div><div class='del'>-#if USE_FLONUM</div><div class='del'>-    RUBY_Qfalse = 0x00,		/* ...0000 0000 */</div><div class='del'>-    RUBY_Qtrue  = 0x14,		/* ...0001 0100 */</div><div class='del'>-    RUBY_Qnil   = 0x08,		/* ...0000 1000 */</div><div class='del'>-    RUBY_Qundef = 0x34,		/* ...0011 0100 */</div><div class='del'>-</div><div class='del'>-    RUBY_IMMEDIATE_MASK = 0x07,</div><div class='del'>-    RUBY_FIXNUM_FLAG    = 0x01,	/* ...xxxx xxx1 */</div><div class='del'>-    RUBY_FLONUM_MASK    = 0x03,</div><div class='del'>-    RUBY_FLONUM_FLAG    = 0x02,	/* ...xxxx xx10 */</div><div class='del'>-    RUBY_SYMBOL_FLAG    = 0x0c,	/* ...0000 1100 */</div><div class='del'>-#else</div><div class='del'>-    RUBY_Qfalse = 0,		/* ...0000 0000 */</div><div class='del'>-    RUBY_Qtrue  = 2,		/* ...0000 0010 */</div><div class='del'>-    RUBY_Qnil   = 4,		/* ...0000 0100 */</div><div class='del'>-    RUBY_Qundef = 6,		/* ...0000 0110 */</div><div class='del'>-</div><div class='del'>-    RUBY_IMMEDIATE_MASK = 0x03,</div><div class='del'>-    RUBY_FIXNUM_FLAG    = 0x01,	/* ...xxxx xxx1 */</div><div class='del'>-    RUBY_FLONUM_MASK    = 0x00,	/* any values ANDed with FLONUM_MASK cannot be FLONUM_FLAG */</div><div class='del'>-    RUBY_FLONUM_FLAG    = 0x02,</div><div class='del'>-    RUBY_SYMBOL_FLAG    = 0x0e,	/* ...0000 1110 */</div><div class='del'>-#endif</div><div class='del'>-    RUBY_SPECIAL_SHIFT  = 8</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define RUBY_Qfalse ((VALUE)RUBY_Qfalse)</div><div class='del'>-#define RUBY_Qtrue  ((VALUE)RUBY_Qtrue)</div><div class='del'>-#define RUBY_Qnil   ((VALUE)RUBY_Qnil)</div><div class='del'>-#define RUBY_Qundef ((VALUE)RUBY_Qundef)	/* undefined value for placeholder */</div><div class='del'>-#define Qfalse RUBY_Qfalse</div><div class='del'>-#define Qtrue  RUBY_Qtrue</div><div class='del'>-#define Qnil   RUBY_Qnil</div><div class='del'>-#define Qundef RUBY_Qundef</div><div class='del'>-#define IMMEDIATE_MASK RUBY_IMMEDIATE_MASK</div><div class='del'>-#define FIXNUM_FLAG RUBY_FIXNUM_FLAG</div><div class='del'>-#if USE_FLONUM</div><div class='del'>-#define FLONUM_MASK RUBY_FLONUM_MASK</div><div class='del'>-#define FLONUM_FLAG RUBY_FLONUM_FLAG</div><div class='del'>-#endif</div><div class='del'>-#define SYMBOL_FLAG RUBY_SYMBOL_FLAG</div><div class='del'>-</div><div class='del'>-#define RB_TEST(v) !(((VALUE)(v) &amp; (VALUE)~RUBY_Qnil) == 0)</div><div class='del'>-#define RB_NIL_P(v) !((VALUE)(v) != RUBY_Qnil)</div><div class='del'>-#define RTEST(v) RB_TEST(v)</div><div class='del'>-#define NIL_P(v) RB_NIL_P(v)</div><div class='del'>-</div><div class='del'>-#define CLASS_OF(v) rb_class_of((VALUE)(v))</div><div class='del'>-</div><div class='del'>-enum ruby_value_type {</div><div class='del'>-    RUBY_T_NONE   = 0x00,</div><div class='del'>-</div><div class='del'>-    RUBY_T_OBJECT = 0x01,</div><div class='del'>-    RUBY_T_CLASS  = 0x02,</div><div class='del'>-    RUBY_T_MODULE = 0x03,</div><div class='del'>-    RUBY_T_FLOAT  = 0x04,</div><div class='del'>-    RUBY_T_STRING = 0x05,</div><div class='del'>-    RUBY_T_REGEXP = 0x06,</div><div class='del'>-    RUBY_T_ARRAY  = 0x07,</div><div class='del'>-    RUBY_T_HASH   = 0x08,</div><div class='del'>-    RUBY_T_STRUCT = 0x09,</div><div class='del'>-    RUBY_T_BIGNUM = 0x0a,</div><div class='del'>-    RUBY_T_FILE   = 0x0b,</div><div class='del'>-    RUBY_T_DATA   = 0x0c,</div><div class='del'>-    RUBY_T_MATCH  = 0x0d,</div><div class='del'>-    RUBY_T_COMPLEX  = 0x0e,</div><div class='del'>-    RUBY_T_RATIONAL = 0x0f,</div><div class='del'>-</div><div class='del'>-    RUBY_T_NIL    = 0x11,</div><div class='del'>-    RUBY_T_TRUE   = 0x12,</div><div class='del'>-    RUBY_T_FALSE  = 0x13,</div><div class='del'>-    RUBY_T_SYMBOL = 0x14,</div><div class='del'>-    RUBY_T_FIXNUM = 0x15,</div><div class='del'>-    RUBY_T_UNDEF  = 0x16,</div><div class='del'>-</div><div class='del'>-    RUBY_T_IMEMO  = 0x1a, /*!&lt; @see imemo_type */</div><div class='del'>-    RUBY_T_NODE   = 0x1b,</div><div class='del'>-    RUBY_T_ICLASS = 0x1c,</div><div class='del'>-    RUBY_T_ZOMBIE = 0x1d,</div><div class='del'>-</div><div class='del'>-    RUBY_T_MASK   = 0x1f</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define T_NONE   RUBY_T_NONE</div><div class='del'>-#define T_NIL    RUBY_T_NIL</div><div class='del'>-#define T_OBJECT RUBY_T_OBJECT</div><div class='del'>-#define T_CLASS  RUBY_T_CLASS</div><div class='del'>-#define T_ICLASS RUBY_T_ICLASS</div><div class='del'>-#define T_MODULE RUBY_T_MODULE</div><div class='del'>-#define T_FLOAT  RUBY_T_FLOAT</div><div class='del'>-#define T_STRING RUBY_T_STRING</div><div class='del'>-#define T_REGEXP RUBY_T_REGEXP</div><div class='del'>-#define T_ARRAY  RUBY_T_ARRAY</div><div class='del'>-#define T_HASH   RUBY_T_HASH</div><div class='del'>-#define T_STRUCT RUBY_T_STRUCT</div><div class='del'>-#define T_BIGNUM RUBY_T_BIGNUM</div><div class='del'>-#define T_FILE   RUBY_T_FILE</div><div class='del'>-#define T_FIXNUM RUBY_T_FIXNUM</div><div class='del'>-#define T_TRUE   RUBY_T_TRUE</div><div class='del'>-#define T_FALSE  RUBY_T_FALSE</div><div class='del'>-#define T_DATA   RUBY_T_DATA</div><div class='del'>-#define T_MATCH  RUBY_T_MATCH</div><div class='del'>-#define T_SYMBOL RUBY_T_SYMBOL</div><div class='del'>-#define T_RATIONAL RUBY_T_RATIONAL</div><div class='del'>-#define T_COMPLEX RUBY_T_COMPLEX</div><div class='del'>-#define T_IMEMO  RUBY_T_IMEMO</div><div class='del'>-#define T_UNDEF  RUBY_T_UNDEF</div><div class='del'>-#define T_NODE   RUBY_T_NODE</div><div class='del'>-#define T_ZOMBIE RUBY_T_ZOMBIE</div><div class='del'>-#define T_MASK   RUBY_T_MASK</div><div class='del'>-</div><div class='del'>-#define RB_BUILTIN_TYPE(x) (int)(((struct RBasic*)(x))-&gt;flags &amp; RUBY_T_MASK)</div><div class='del'>-#define BUILTIN_TYPE(x) RB_BUILTIN_TYPE(x)</div><div class='del'>-</div><div class='del'>-static inline int rb_type(VALUE obj);</div><div class='del'>-#define TYPE(x) rb_type((VALUE)(x))</div><div class='del'>-</div><div class='del'>-#define RB_FLOAT_TYPE_P(obj) (\</div><div class='del'>-	RB_FLONUM_P(obj) || \</div><div class='del'>-	(!RB_SPECIAL_CONST_P(obj) &amp;&amp; RB_BUILTIN_TYPE(obj) == RUBY_T_FLOAT))</div><div class='del'>-</div><div class='del'>-#define RB_TYPE_P(obj, type) ( \</div><div class='del'>-	((type) == RUBY_T_FIXNUM) ? RB_FIXNUM_P(obj) : \</div><div class='del'>-	((type) == RUBY_T_TRUE) ? ((obj) == RUBY_Qtrue) : \</div><div class='del'>-	((type) == RUBY_T_FALSE) ? ((obj) == RUBY_Qfalse) : \</div><div class='del'>-	((type) == RUBY_T_NIL) ? ((obj) == RUBY_Qnil) : \</div><div class='del'>-	((type) == RUBY_T_UNDEF) ? ((obj) == RUBY_Qundef) : \</div><div class='del'>-	((type) == RUBY_T_SYMBOL) ? RB_SYMBOL_P(obj) : \</div><div class='del'>-	((type) == RUBY_T_FLOAT) ? RB_FLOAT_TYPE_P(obj) : \</div><div class='del'>-	(!RB_SPECIAL_CONST_P(obj) &amp;&amp; RB_BUILTIN_TYPE(obj) == (type)))</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#define RB_GC_GUARD(v) \</div><div class='del'>-    (*__extension__ ({ \</div><div class='del'>-	volatile VALUE *rb_gc_guarded_ptr = &amp;(v); \</div><div class='del'>-	__asm__("" : : "m"(rb_gc_guarded_ptr)); \</div><div class='del'>-	rb_gc_guarded_ptr; \</div><div class='del'>-    }))</div><div class='del'>-#elif defined _MSC_VER</div><div class='del'>-#pragma optimize("", off)</div><div class='del'>-static inline volatile VALUE *rb_gc_guarded_ptr(volatile VALUE *ptr) {return ptr;}</div><div class='del'>-#pragma optimize("", on)</div><div class='del'>-#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr(&amp;(v)))</div><div class='del'>-#else</div><div class='del'>-volatile VALUE *rb_gc_guarded_ptr_val(volatile VALUE *ptr, VALUE val);</div><div class='del'>-#define HAVE_RB_GC_GUARDED_PTR_VAL 1</div><div class='del'>-#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr_val(&amp;(v),(v)))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#define RB_UNUSED_VAR(x) x __attribute__ ((unused))</div><div class='del'>-#else</div><div class='del'>-#define RB_UNUSED_VAR(x) x</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-void rb_check_type(VALUE,int);</div><div class='del'>-#define Check_Type(v,t) rb_check_type((VALUE)(v),(t))</div><div class='del'>-</div><div class='del'>-VALUE rb_str_to_str(VALUE);</div><div class='del'>-VALUE rb_string_value(volatile VALUE*);</div><div class='del'>-char *rb_string_value_ptr(volatile VALUE*);</div><div class='del'>-char *rb_string_value_cstr(volatile VALUE*);</div><div class='del'>-</div><div class='del'>-#define StringValue(v) rb_string_value(&amp;(v))</div><div class='del'>-#define StringValuePtr(v) rb_string_value_ptr(&amp;(v))</div><div class='del'>-#define StringValueCStr(v) rb_string_value_cstr(&amp;(v))</div><div class='del'>-</div><div class='del'>-void rb_check_safe_obj(VALUE);</div><div class='del'>-#define SafeStringValue(v) do {\</div><div class='del'>-    StringValue(v);\</div><div class='del'>-    rb_check_safe_obj(v);\</div><div class='del'>-} while (0)</div><div class='del'>-#if GCC_VERSION_SINCE(4,4,0)</div><div class='del'>-void rb_check_safe_str(VALUE) __attribute__((error("rb_check_safe_str() and Check_SafeStr() are obsolete; use SafeStringValue() instead")));</div><div class='del'>-# define Check_SafeStr(v) rb_check_safe_str((VALUE)(v))</div><div class='del'>-#else</div><div class='del'>-# define rb_check_safe_str(x) [&lt;"rb_check_safe_str() is obsolete; use SafeStringValue() instead"&gt;]</div><div class='del'>-# define Check_SafeStr(v) [&lt;"Check_SafeStr() is obsolete; use SafeStringValue() instead"&gt;]</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-VALUE rb_str_export(VALUE);</div><div class='del'>-#define ExportStringValue(v) do {\</div><div class='del'>-    SafeStringValue(v);\</div><div class='del'>-   (v) = rb_str_export(v);\</div><div class='del'>-} while (0)</div><div class='del'>-VALUE rb_str_export_locale(VALUE);</div><div class='del'>-</div><div class='del'>-VALUE rb_get_path(VALUE);</div><div class='del'>-#define FilePathValue(v) (RB_GC_GUARD(v) = rb_get_path(v))</div><div class='del'>-</div><div class='del'>-VALUE rb_get_path_no_checksafe(VALUE);</div><div class='del'>-#define FilePathStringValue(v) ((v) = rb_get_path_no_checksafe(v))</div><div class='del'>-</div><div class='del'>-#define RUBY_SAFE_LEVEL_MAX 1</div><div class='del'>-void rb_secure(int);</div><div class='del'>-int rb_safe_level(void);</div><div class='del'>-void rb_set_safe_level(int);</div><div class='del'>-#if GCC_VERSION_SINCE(4,4,0)</div><div class='del'>-int ruby_safe_level_2_error(void) __attribute__((error("$SAFE=2 to 4 are obsolete")));</div><div class='del'>-int ruby_safe_level_2_warning(void) __attribute__((const,warning("$SAFE=2 to 4 are obsolete")));</div><div class='del'>-# ifdef RUBY_EXPORT</div><div class='del'>-#   define ruby_safe_level_2_warning() ruby_safe_level_2_error()</div><div class='del'>-# endif</div><div class='del'>-# if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)</div><div class='del'>-#  define RUBY_SAFE_LEVEL_INVALID_P(level) \</div><div class='del'>-    __extension__(\</div><div class='del'>-	__builtin_choose_expr(\</div><div class='del'>-	    __builtin_constant_p(level), \</div><div class='del'>-	    ((level) &lt; 0 || RUBY_SAFE_LEVEL_MAX &lt; (level)), 0))</div><div class='del'>-#  define RUBY_SAFE_LEVEL_CHECK(level, type) \</div><div class='del'>-    __extension__(__builtin_choose_expr(RUBY_SAFE_LEVEL_INVALID_P(level), ruby_safe_level_2_##type(), (level)))</div><div class='del'>-# else</div><div class='del'>-/* in gcc 4.8 or earlier, __builtin_choose_expr() does not consider</div><div class='del'>- * __builtin_constant_p(variable) a constant expression.</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='ctx'>  */</div><div class='del'>-#  define RUBY_SAFE_LEVEL_INVALID_P(level) \</div><div class='del'>-    __extension__(__builtin_constant_p(level) &amp;&amp; \</div><div class='del'>-		  ((level) &lt; 0 || RUBY_SAFE_LEVEL_MAX &lt; (level)))</div><div class='del'>-#  define RUBY_SAFE_LEVEL_CHECK(level, type) \</div><div class='del'>-    (RUBY_SAFE_LEVEL_INVALID_P(level) ? ruby_safe_level_2_##type() : (level))</div><div class='del'>-# endif</div><div class='del'>-# define rb_secure(level) rb_secure(RUBY_SAFE_LEVEL_CHECK(level, warning))</div><div class='del'>-# define rb_set_safe_level(level) rb_set_safe_level(RUBY_SAFE_LEVEL_CHECK(level, error))</div><div class='del'>-#endif</div><div class='del'>-void rb_set_safe_level_force(int);</div><div class='del'>-void rb_secure_update(VALUE);</div><div class='del'>-NORETURN(void rb_insecure_operation(void));</div><div class='del'>-</div><div class='del'>-VALUE rb_errinfo(void);</div><div class='del'>-void rb_set_errinfo(VALUE);</div><div class='del'>-</div><div class='del'>-long rb_num2long(VALUE);</div><div class='del'>-unsigned long rb_num2ulong(VALUE);</div><div class='del'>-static inline long</div><div class='del'>-rb_num2long_inline(VALUE x)</div><div class='del'>-{</div><div class='del'>-    if (RB_FIXNUM_P(x))</div><div class='del'>-	return RB_FIX2LONG(x);</div><div class='del'>-    else</div><div class='del'>-	return rb_num2long(x);</div><div class='del'>-}</div><div class='del'>-#define RB_NUM2LONG(x) rb_num2long_inline(x)</div><div class='del'>-#define NUM2LONG(x) RB_NUM2LONG(x)</div><div class='del'>-static inline unsigned long</div><div class='del'>-rb_num2ulong_inline(VALUE x)</div><div class='del'>-{</div><div class='del'>-    if (RB_FIXNUM_P(x))</div><div class='del'>-	return RB_FIX2ULONG(x);</div><div class='del'>-    else</div><div class='del'>-	return rb_num2ulong(x);</div><div class='del'>-}</div><div class='del'>-#define RB_NUM2ULONG(x) rb_num2ulong_inline(x)</div><div class='del'>-#define NUM2ULONG(x) RB_NUM2ULONG(x)</div><div class='del'>-#if SIZEOF_INT &lt; SIZEOF_LONG</div><div class='del'>-long rb_num2int(VALUE);</div><div class='del'>-long rb_fix2int(VALUE);</div><div class='del'>-#define RB_FIX2INT(x) ((int)rb_fix2int((VALUE)(x)))</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-rb_num2int_inline(VALUE x)</div><div class='del'>-{</div><div class='del'>-    if (RB_FIXNUM_P(x))</div><div class='del'>-	return (int)rb_fix2int(x);</div><div class='del'>-    else</div><div class='del'>-	return (int)rb_num2int(x);</div><div class='del'>-}</div><div class='del'>-#define RB_NUM2INT(x) rb_num2int_inline(x)</div><div class='del'>-</div><div class='del'>-unsigned long rb_num2uint(VALUE);</div><div class='del'>-#define RB_NUM2UINT(x) ((unsigned int)rb_num2uint(x))</div><div class='del'>-unsigned long rb_fix2uint(VALUE);</div><div class='del'>-#define RB_FIX2UINT(x) ((unsigned int)rb_fix2uint(x))</div><div class='del'>-#else /* SIZEOF_INT &lt; SIZEOF_LONG */</div><div class='del'>-#define RB_NUM2INT(x) ((int)RB_NUM2LONG(x))</div><div class='del'>-#define RB_NUM2UINT(x) ((unsigned int)RB_NUM2ULONG(x))</div><div class='del'>-#define RB_FIX2INT(x) ((int)RB_FIX2LONG(x))</div><div class='del'>-#define RB_FIX2UINT(x) ((unsigned int)RB_FIX2ULONG(x))</div><div class='del'>-#endif /* SIZEOF_INT &lt; SIZEOF_LONG */</div><div class='del'>-#define NUM2INT(x)  RB_NUM2INT(x)</div><div class='del'>-#define NUM2UINT(x) RB_NUM2UINT(x)</div><div class='del'>-#define FIX2INT(x)  RB_FIX2INT(x)</div><div class='del'>-#define FIX2UINT(x) RB_FIX2UINT(x)</div><div class='del'>-</div><div class='del'>-short rb_num2short(VALUE);</div><div class='del'>-unsigned short rb_num2ushort(VALUE);</div><div class='del'>-short rb_fix2short(VALUE);</div><div class='del'>-unsigned short rb_fix2ushort(VALUE);</div><div class='del'>-#define RB_FIX2SHORT(x) (rb_fix2short((VALUE)(x)))</div><div class='del'>-#define FIX2SHORT(x) RB_FIX2SHORT(x)</div><div class='del'>-static inline short</div><div class='del'>-rb_num2short_inline(VALUE x)</div><div class='del'>-{</div><div class='del'>-    if (RB_FIXNUM_P(x))</div><div class='del'>-	return rb_fix2short(x);</div><div class='del'>-    else</div><div class='del'>-	return rb_num2short(x);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define RB_NUM2SHORT(x) rb_num2short_inline(x)</div><div class='del'>-#define RB_NUM2USHORT(x) rb_num2ushort(x)</div><div class='del'>-#define NUM2SHORT(x) RB_NUM2SHORT(x)</div><div class='del'>-#define NUM2USHORT(x) RB_NUM2USHORT(x)</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_LONG_LONG</div><div class='del'>-LONG_LONG rb_num2ll(VALUE);</div><div class='del'>-unsigned LONG_LONG rb_num2ull(VALUE);</div><div class='del'>-static inline LONG_LONG</div><div class='del'>-rb_num2ll_inline(VALUE x)</div><div class='del'>-{</div><div class='del'>-    if (RB_FIXNUM_P(x))</div><div class='del'>-	return RB_FIX2LONG(x);</div><div class='del'>-    else</div><div class='del'>-	return rb_num2ll(x);</div><div class='del'>-}</div><div class='del'>-# define RB_NUM2LL(x) rb_num2ll_inline(x)</div><div class='del'>-# define RB_NUM2ULL(x) rb_num2ull(x)</div><div class='del'>-# define NUM2LL(x) RB_NUM2LL(x)</div><div class='del'>-# define NUM2ULL(x) RB_NUM2ULL(x)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if !defined(NUM2OFFT)</div><div class='del'>-# if defined(HAVE_LONG_LONG) &amp;&amp; SIZEOF_OFF_T &gt; SIZEOF_LONG</div><div class='del'>-#  define NUM2OFFT(x) ((off_t)NUM2LL(x))</div><div class='del'>-# else</div><div class='del'>-#  define NUM2OFFT(x) NUM2LONG(x)</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(HAVE_LONG_LONG) &amp;&amp; SIZEOF_SIZE_T &gt; SIZEOF_LONG</div><div class='del'>-# define NUM2SIZET(x) ((size_t)NUM2ULL(x))</div><div class='del'>-# define NUM2SSIZET(x) ((ssize_t)NUM2LL(x))</div><div class='del'>-#else</div><div class='del'>-# define NUM2SIZET(x) NUM2ULONG(x)</div><div class='del'>-# define NUM2SSIZET(x) NUM2LONG(x)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-double rb_num2dbl(VALUE);</div><div class='del'>-#define NUM2DBL(x) rb_num2dbl((VALUE)(x))</div><div class='del'>-</div><div class='del'>-VALUE rb_uint2big(uintptr_t);</div><div class='del'>-VALUE rb_int2big(intptr_t);</div><div class='del'>-</div><div class='del'>-VALUE rb_newobj(void);</div><div class='del'>-VALUE rb_newobj_of(VALUE, VALUE);</div><div class='del'>-VALUE rb_obj_setup(VALUE obj, VALUE klass, VALUE type);</div><div class='del'>-#define RB_NEWOBJ(obj,type) type *(obj) = (type*)rb_newobj()</div><div class='del'>-#define RB_NEWOBJ_OF(obj,type,klass,flags) type *(obj) = (type*)rb_newobj_of(klass, flags)</div><div class='del'>-#define NEWOBJ(obj,type) RB_NEWOBJ(obj,type)</div><div class='del'>-#define NEWOBJ_OF(obj,type,klass,flags) RB_NEWOBJ_OF(obj,type,klass,flags) /* core has special NEWOBJ_OF() in internal.h */</div><div class='del'>-#define OBJSETUP(obj,c,t) rb_obj_setup(obj, c, t) /* use NEWOBJ_OF instead of NEWOBJ()+OBJSETUP() */</div><div class='del'>-#define CLONESETUP(clone,obj) rb_clone_setup(clone,obj)</div><div class='del'>-#define DUPSETUP(dup,obj) rb_dup_setup(dup,obj)</div><div class='del'>-</div><div class='del'>-#ifndef USE_RGENGC</div><div class='del'>-#define USE_RGENGC 1</div><div class='del'>-#ifndef USE_RINCGC</div><div class='del'>-#define USE_RINCGC 1</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if USE_RGENGC == 0</div><div class='del'>-#define USE_RINCGC 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_ARRAY</div><div class='del'>-#define RGENGC_WB_PROTECTED_ARRAY 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_HASH</div><div class='del'>-#define RGENGC_WB_PROTECTED_HASH 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_STRUCT</div><div class='del'>-#define RGENGC_WB_PROTECTED_STRUCT 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_STRING</div><div class='del'>-#define RGENGC_WB_PROTECTED_STRING 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_OBJECT</div><div class='del'>-#define RGENGC_WB_PROTECTED_OBJECT 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_REGEXP</div><div class='del'>-#define RGENGC_WB_PROTECTED_REGEXP 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_CLASS</div><div class='del'>-#define RGENGC_WB_PROTECTED_CLASS 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_FLOAT</div><div class='del'>-#define RGENGC_WB_PROTECTED_FLOAT 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_COMPLEX</div><div class='del'>-#define RGENGC_WB_PROTECTED_COMPLEX 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_RATIONAL</div><div class='del'>-#define RGENGC_WB_PROTECTED_RATIONAL 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_BIGNUM</div><div class='del'>-#define RGENGC_WB_PROTECTED_BIGNUM 1</div><div class='del'>-#endif</div><div class='del'>-#ifndef RGENGC_WB_PROTECTED_NODE_CREF</div><div class='del'>-#define RGENGC_WB_PROTECTED_NODE_CREF 1</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-__extension__</div><div class='del'>-#endif</div><div class='del'>-enum ruby_fl_type {</div><div class='del'>-    RUBY_FL_WB_PROTECTED = (1&lt;&lt;5),</div><div class='del'>-    RUBY_FL_PROMOTED0 = (1&lt;&lt;5),</div><div class='del'>-    RUBY_FL_PROMOTED1 = (1&lt;&lt;6),</div><div class='del'>-    RUBY_FL_PROMOTED  = RUBY_FL_PROMOTED0|RUBY_FL_PROMOTED1,</div><div class='del'>-    RUBY_FL_FINALIZE  = (1&lt;&lt;7),</div><div class='del'>-    RUBY_FL_TAINT     = (1&lt;&lt;8),</div><div class='del'>-    RUBY_FL_UNTRUSTED = RUBY_FL_TAINT,</div><div class='del'>-    RUBY_FL_EXIVAR    = (1&lt;&lt;10),</div><div class='del'>-    RUBY_FL_FREEZE    = (1&lt;&lt;11),</div><div class='del'>-</div><div class='del'>-    RUBY_FL_USHIFT    = 12,</div><div class='del'>-</div><div class='del'>-#define RUBY_FL_USER_N(n) RUBY_FL_USER##n = (1&lt;&lt;(RUBY_FL_USHIFT+n))</div><div class='del'>-    RUBY_FL_USER_N(0),</div><div class='del'>-    RUBY_FL_USER_N(1),</div><div class='del'>-    RUBY_FL_USER_N(2),</div><div class='del'>-    RUBY_FL_USER_N(3),</div><div class='del'>-    RUBY_FL_USER_N(4),</div><div class='del'>-    RUBY_FL_USER_N(5),</div><div class='del'>-    RUBY_FL_USER_N(6),</div><div class='del'>-    RUBY_FL_USER_N(7),</div><div class='del'>-    RUBY_FL_USER_N(8),</div><div class='del'>-    RUBY_FL_USER_N(9),</div><div class='del'>-    RUBY_FL_USER_N(10),</div><div class='del'>-    RUBY_FL_USER_N(11),</div><div class='del'>-    RUBY_FL_USER_N(12),</div><div class='del'>-    RUBY_FL_USER_N(13),</div><div class='del'>-    RUBY_FL_USER_N(14),</div><div class='del'>-    RUBY_FL_USER_N(15),</div><div class='del'>-    RUBY_FL_USER_N(16),</div><div class='del'>-    RUBY_FL_USER_N(17),</div><div class='del'>-    RUBY_FL_USER_N(18),</div><div class='del'>-#if defined ENUM_OVER_INT || SIZEOF_INT*CHAR_BIT&gt;12+19+1</div><div class='del'>-    RUBY_FL_USER_N(19),</div><div class='del'>-#else</div><div class='del'>-#define RUBY_FL_USER19 (((VALUE)1)&lt;&lt;(RUBY_FL_USHIFT+19))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    RUBY_ELTS_SHARED = RUBY_FL_USER2,</div><div class='del'>-    RUBY_FL_DUPPED = (RUBY_T_MASK|RUBY_FL_EXIVAR|RUBY_FL_TAINT),</div><div class='del'>-    RUBY_FL_SINGLETON = RUBY_FL_USER0</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct RUBY_ALIGNAS(SIZEOF_VALUE) RBasic {</div><div class='del'>-    VALUE flags;</div><div class='del'>-    const VALUE klass;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-VALUE rb_obj_hide(VALUE obj);</div><div class='del'>-VALUE rb_obj_reveal(VALUE obj, VALUE klass); /* do not use this API to change klass information */</div><div class='del'>-</div><div class='del'>-#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)</div><div class='del'>-# define RB_OBJ_WB_UNPROTECT_FOR(type, obj) \</div><div class='del'>-    __extension__( \</div><div class='del'>-	__builtin_choose_expr( \</div><div class='del'>-	    RGENGC_WB_PROTECTED_##type, \</div><div class='del'>-	    OBJ_WB_UNPROTECT((VALUE)(obj)), ((VALUE)(obj))))</div><div class='del'>-#else</div><div class='del'>-# define RB_OBJ_WB_UNPROTECT_FOR(type, obj) \</div><div class='del'>-    (RGENGC_WB_PROTECTED_##type ? \</div><div class='del'>-     OBJ_WB_UNPROTECT((VALUE)(obj)) : ((VALUE)(obj)))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define RBASIC_CLASS(obj) (RBASIC(obj)-&gt;klass)</div><div class='del'>-</div><div class='del'>-#define ROBJECT_EMBED_LEN_MAX ROBJECT_EMBED_LEN_MAX</div><div class='del'>-#define ROBJECT_EMBED ROBJECT_EMBED</div><div class='del'>-enum ruby_robject_flags {</div><div class='del'>-    ROBJECT_EMBED_LEN_MAX = 3,</div><div class='del'>-    ROBJECT_EMBED = RUBY_FL_USER1,</div><div class='del'>-</div><div class='del'>-    ROBJECT_ENUM_END</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct RObject {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    union {</div><div class='del'>-	struct {</div><div class='del'>-	    uint32_t numiv;</div><div class='del'>-	    VALUE *ivptr;</div><div class='del'>-            void *iv_index_tbl; /* shortcut for RCLASS_IV_INDEX_TBL(rb_obj_class(obj)) */</div><div class='del'>-	} heap;</div><div class='del'>-	VALUE ary[ROBJECT_EMBED_LEN_MAX];</div><div class='del'>-    } as;</div><div class='del'>-};</div><div class='del'>-#define ROBJECT_NUMIV(o) \</div><div class='del'>-    ((RBASIC(o)-&gt;flags &amp; ROBJECT_EMBED) ? \</div><div class='del'>-     ROBJECT_EMBED_LEN_MAX : \</div><div class='del'>-     ROBJECT(o)-&gt;as.heap.numiv)</div><div class='del'>-#define ROBJECT_IVPTR(o) \</div><div class='del'>-    ((RBASIC(o)-&gt;flags &amp; ROBJECT_EMBED) ? \</div><div class='del'>-     ROBJECT(o)-&gt;as.ary : \</div><div class='del'>-     ROBJECT(o)-&gt;as.heap.ivptr)</div><div class='del'>-#define ROBJECT_IV_INDEX_TBL(o) \</div><div class='del'>-    ((RBASIC(o)-&gt;flags &amp; ROBJECT_EMBED) ? \</div><div class='del'>-     RCLASS_IV_INDEX_TBL(rb_obj_class(o)) : \</div><div class='del'>-     ROBJECT(o)-&gt;as.heap.iv_index_tbl)</div><div class='del'>-</div><div class='del'>-#define RCLASS_SUPER(c) rb_class_get_superclass(c)</div><div class='del'>-#define RMODULE_IV_TBL(m) RCLASS_IV_TBL(m)</div><div class='del'>-#define RMODULE_CONST_TBL(m) RCLASS_CONST_TBL(m)</div><div class='del'>-#define RMODULE_M_TBL(m) RCLASS_M_TBL(m)</div><div class='del'>-#define RMODULE_SUPER(m) RCLASS_SUPER(m)</div><div class='del'>-#define RMODULE_IS_OVERLAID RMODULE_IS_OVERLAID</div><div class='del'>-#define RMODULE_IS_REFINEMENT RMODULE_IS_REFINEMENT</div><div class='del'>-#define RMODULE_INCLUDED_INTO_REFINEMENT RMODULE_INCLUDED_INTO_REFINEMENT</div><div class='del'>-enum ruby_rmodule_flags {</div><div class='del'>-    RMODULE_IS_OVERLAID = RUBY_FL_USER2,</div><div class='del'>-    RMODULE_IS_REFINEMENT = RUBY_FL_USER3,</div><div class='del'>-    RMODULE_INCLUDED_INTO_REFINEMENT = RUBY_FL_USER4,</div><div class='del'>-</div><div class='del'>-    RMODULE_ENUM_END</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-PUREFUNC(double rb_float_value(VALUE));</div><div class='del'>-VALUE rb_float_new(double);</div><div class='del'>-VALUE rb_float_new_in_heap(double);</div><div class='del'>-</div><div class='del'>-#define RFLOAT_VALUE(v) rb_float_value(v)</div><div class='del'>-#define DBL2NUM(dbl)  rb_float_new(dbl)</div><div class='del'>-</div><div class='del'>-#define RUBY_ELTS_SHARED RUBY_ELTS_SHARED</div><div class='del'>-#define ELTS_SHARED RUBY_ELTS_SHARED</div><div class='del'>-</div><div class='del'>-#define RSTRING_NOEMBED RSTRING_NOEMBED</div><div class='del'>-#define RSTRING_EMBED_LEN_MASK RSTRING_EMBED_LEN_MASK</div><div class='del'>-#define RSTRING_EMBED_LEN_SHIFT RSTRING_EMBED_LEN_SHIFT</div><div class='del'>-#define RSTRING_EMBED_LEN_MAX RSTRING_EMBED_LEN_MAX</div><div class='del'>-#define RSTRING_FSTR RSTRING_FSTR</div><div class='del'>-enum ruby_rstring_flags {</div><div class='del'>-    RSTRING_NOEMBED = RUBY_FL_USER1,</div><div class='del'>-    RSTRING_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|</div><div class='del'>-			      RUBY_FL_USER5|RUBY_FL_USER6),</div><div class='del'>-    RSTRING_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+2),</div><div class='del'>-    RSTRING_EMBED_LEN_MAX = (int)((sizeof(VALUE)*3)/sizeof(char)-1),</div><div class='del'>-    RSTRING_FSTR = RUBY_FL_USER17,</div><div class='del'>-</div><div class='del'>-    RSTRING_ENUM_END</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct RString {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    union {</div><div class='del'>-	struct {</div><div class='del'>-	    long len;</div><div class='del'>-	    char *ptr;</div><div class='del'>-	    union {</div><div class='del'>-		long capa;</div><div class='del'>-		VALUE shared;</div><div class='del'>-	    } aux;</div><div class='del'>-	} heap;</div><div class='del'>-	char ary[RSTRING_EMBED_LEN_MAX + 1];</div><div class='del'>-    } as;</div><div class='del'>-};</div><div class='del'>-#define RSTRING_EMBED_LEN(str) \</div><div class='del'>-     (long)((RBASIC(str)-&gt;flags &gt;&gt; RSTRING_EMBED_LEN_SHIFT) &amp; \</div><div class='del'>-            (RSTRING_EMBED_LEN_MASK &gt;&gt; RSTRING_EMBED_LEN_SHIFT))</div><div class='del'>-#define RSTRING_LEN(str) \</div><div class='del'>-    (!(RBASIC(str)-&gt;flags &amp; RSTRING_NOEMBED) ? \</div><div class='del'>-     RSTRING_EMBED_LEN(str) : \</div><div class='del'>-     RSTRING(str)-&gt;as.heap.len)</div><div class='del'>-#define RSTRING_PTR(str) \</div><div class='del'>-    (!(RBASIC(str)-&gt;flags &amp; RSTRING_NOEMBED) ? \</div><div class='del'>-     RSTRING(str)-&gt;as.ary : \</div><div class='del'>-     RSTRING(str)-&gt;as.heap.ptr)</div><div class='del'>-#define RSTRING_END(str) \</div><div class='del'>-    (!(RBASIC(str)-&gt;flags &amp; RSTRING_NOEMBED) ? \</div><div class='del'>-     (RSTRING(str)-&gt;as.ary + RSTRING_EMBED_LEN(str)) : \</div><div class='del'>-     (RSTRING(str)-&gt;as.heap.ptr + RSTRING(str)-&gt;as.heap.len))</div><div class='del'>-#define RSTRING_LENINT(str) rb_long2int(RSTRING_LEN(str))</div><div class='del'>-#define RSTRING_GETMEM(str, ptrvar, lenvar) \</div><div class='del'>-    (!(RBASIC(str)-&gt;flags &amp; RSTRING_NOEMBED) ? \</div><div class='del'>-     ((ptrvar) = RSTRING(str)-&gt;as.ary, (lenvar) = RSTRING_EMBED_LEN(str)) : \</div><div class='del'>-     ((ptrvar) = RSTRING(str)-&gt;as.heap.ptr, (lenvar) = RSTRING(str)-&gt;as.heap.len))</div><div class='del'>-</div><div class='del'>-#ifndef USE_TRANSIENT_HEAP</div><div class='del'>-#define USE_TRANSIENT_HEAP 1</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-enum ruby_rarray_flags {</div><div class='del'>-    RARRAY_EMBED_LEN_MAX = 3,</div><div class='del'>-    RARRAY_EMBED_FLAG = RUBY_FL_USER1,</div><div class='del'>-    /* RUBY_FL_USER2 is for ELTS_SHARED */</div><div class='del'>-    RARRAY_EMBED_LEN_MASK = (RUBY_FL_USER4|RUBY_FL_USER3),</div><div class='del'>-    RARRAY_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+3),</div><div class='del'>-</div><div class='del'>-#if USE_TRANSIENT_HEAP</div><div class='del'>-    RARRAY_TRANSIENT_FLAG = RUBY_FL_USER13,</div><div class='del'>-#define RARRAY_TRANSIENT_FLAG RARRAY_TRANSIENT_FLAG</div><div class='del'>-#else</div><div class='del'>-#define RARRAY_TRANSIENT_FLAG 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    RARRAY_ENUM_END</div><div class='del'>-};</div><div class='del'>-#define RARRAY_EMBED_FLAG (VALUE)RARRAY_EMBED_FLAG</div><div class='del'>-#define RARRAY_EMBED_LEN_MASK (VALUE)RARRAY_EMBED_LEN_MASK</div><div class='del'>-#define RARRAY_EMBED_LEN_MAX RARRAY_EMBED_LEN_MAX</div><div class='del'>-#define RARRAY_EMBED_LEN_SHIFT RARRAY_EMBED_LEN_SHIFT</div><div class='del'>-</div><div class='del'>-struct RArray {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    union {</div><div class='del'>-	struct {</div><div class='del'>-	    long len;</div><div class='del'>-	    union {</div><div class='del'>-		long capa;</div><div class='del'>-		VALUE shared;</div><div class='del'>-	    } aux;</div><div class='del'>-	    const VALUE *ptr;</div><div class='del'>-	} heap;</div><div class='del'>-	const VALUE ary[RARRAY_EMBED_LEN_MAX];</div><div class='del'>-    } as;</div><div class='del'>-};</div><div class='del'>-#define RARRAY_EMBED_LEN(a) \</div><div class='del'>-    (long)((RBASIC(a)-&gt;flags &gt;&gt; RARRAY_EMBED_LEN_SHIFT) &amp; \</div><div class='del'>-	   (RARRAY_EMBED_LEN_MASK &gt;&gt; RARRAY_EMBED_LEN_SHIFT))</div><div class='del'>-#define RARRAY_LEN(a) rb_array_len(a)</div><div class='del'>-#define RARRAY_LENINT(ary) rb_long2int(RARRAY_LEN(ary))</div><div class='del'>-#define RARRAY_CONST_PTR(a) rb_array_const_ptr(a)</div><div class='del'>-#define RARRAY_CONST_PTR_TRANSIENT(a) rb_array_const_ptr_transient(a)</div><div class='del'>-</div><div class='del'>-#if USE_TRANSIENT_HEAP</div><div class='del'>-#define RARRAY_TRANSIENT_P(ary) FL_TEST_RAW((ary), RARRAY_TRANSIENT_FLAG)</div><div class='del'>-#else</div><div class='del'>-#define RARRAY_TRANSIENT_P(ary) 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define RARRAY_PTR_USE_START_TRANSIENT(a) rb_array_ptr_use_start(a, 1)</div><div class='del'>-#define RARRAY_PTR_USE_END_TRANSIENT(a) rb_array_ptr_use_end(a, 1)</div><div class='del'>-</div><div class='del'>-#define RARRAY_PTR_USE_TRANSIENT(ary, ptr_name, expr) do { \</div><div class='del'>-    const VALUE _ary = (ary); \</div><div class='del'>-    VALUE *ptr_name = (VALUE *)RARRAY_PTR_USE_START_TRANSIENT(_ary); \</div><div class='del'>-    expr; \</div><div class='del'>-    RARRAY_PTR_USE_END_TRANSIENT(_ary); \</div><div class='del'>-} while (0)</div><div class='del'>-</div><div class='del'>-#define RARRAY_PTR_USE_START(a) rb_array_ptr_use_start(a, 0)</div><div class='del'>-#define RARRAY_PTR_USE_END(a) rb_array_ptr_use_end(a, 0)</div><div class='del'>-</div><div class='del'>-#define RARRAY_PTR_USE(ary, ptr_name, expr) do { \</div><div class='del'>-    const VALUE _ary = (ary); \</div><div class='del'>-    VALUE *ptr_name = (VALUE *)RARRAY_PTR_USE_START(_ary); \</div><div class='del'>-    expr; \</div><div class='del'>-    RARRAY_PTR_USE_END(_ary); \</div><div class='del'>-} while (0)</div><div class='del'>-</div><div class='del'>-#define RARRAY_AREF(a, i) (RARRAY_CONST_PTR_TRANSIENT(a)[i])</div><div class='del'>-#define RARRAY_ASET(a, i, v) do { \</div><div class='del'>-    const VALUE _ary = (a); \</div><div class='del'>-    const VALUE _v = (v); \</div><div class='del'>-    VALUE *ptr = (VALUE *)RARRAY_PTR_USE_START_TRANSIENT(_ary); \</div><div class='del'>-    RB_OBJ_WRITE(_ary, &amp;ptr[i], _v); \</div><div class='del'>-    RARRAY_PTR_USE_END_TRANSIENT(_ary); \</div><div class='del'>-} while (0)</div><div class='del'>-</div><div class='del'>-#define RARRAY_PTR(a) ((VALUE *)RARRAY_CONST_PTR(RB_OBJ_WB_UNPROTECT_FOR(ARRAY, a)))</div><div class='del'>-</div><div class='del'>-struct RRegexp {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    struct re_pattern_buffer *ptr;</div><div class='del'>-    const VALUE src;</div><div class='del'>-    unsigned long usecnt;</div><div class='del'>-};</div><div class='del'>-#define RREGEXP_PTR(r) (RREGEXP(r)-&gt;ptr)</div><div class='del'>-#define RREGEXP_SRC(r) (RREGEXP(r)-&gt;src)</div><div class='del'>-#define RREGEXP_SRC_PTR(r) RSTRING_PTR(RREGEXP(r)-&gt;src)</div><div class='del'>-#define RREGEXP_SRC_LEN(r) RSTRING_LEN(RREGEXP(r)-&gt;src)</div><div class='del'>-#define RREGEXP_SRC_END(r) RSTRING_END(RREGEXP(r)-&gt;src)</div><div class='del'>-</div><div class='del'>-/* RHash is defined at internal.h */</div><div class='del'>-size_t rb_hash_size_num(VALUE hash);</div><div class='del'>-</div><div class='del'>-#define RHASH_TBL(h) rb_hash_tbl(h, __FILE__, __LINE__)</div><div class='del'>-#define RHASH_ITER_LEV(h) rb_hash_iter_lev(h)</div><div class='del'>-#define RHASH_IFNONE(h) rb_hash_ifnone(h)</div><div class='del'>-#define RHASH_SIZE(h) rb_hash_size_num(h)</div><div class='del'>-#define RHASH_EMPTY_P(h) (RHASH_SIZE(h) == 0)</div><div class='del'>-#define RHASH_SET_IFNONE(h, ifnone) rb_hash_set_ifnone((VALUE)h, ifnone)</div><div class='del'>-</div><div class='del'>-struct RFile {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    struct rb_io_t *fptr;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct RData {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    void (*dmark)(void*);</div><div class='del'>-    void (*dfree)(void*);</div><div class='del'>-    void *data;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-typedef struct rb_data_type_struct rb_data_type_t;</div><div class='del'>-</div><div class='del'>-struct rb_data_type_struct {</div><div class='del'>-    const char *wrap_struct_name;</div><div class='del'>-    struct {</div><div class='del'>-	void (*dmark)(void*);</div><div class='del'>-	void (*dfree)(void*);</div><div class='del'>-	size_t (*dsize)(const void *);</div><div class='del'>-	void *reserved[2]; /* For future extension.</div><div class='del'>-			      This array *must* be filled with ZERO. */</div><div class='del'>-    } function;</div><div class='del'>-    const rb_data_type_t *parent;</div><div class='del'>-    void *data;        /* This area can be used for any purpose</div><div class='del'>-                          by a programmer who define the type. */</div><div class='del'>-    VALUE flags;       /* RUBY_FL_WB_PROTECTED */</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define HAVE_TYPE_RB_DATA_TYPE_T 1</div><div class='del'>-#define HAVE_RB_DATA_TYPE_T_FUNCTION 1</div><div class='del'>-#define HAVE_RB_DATA_TYPE_T_PARENT 1</div><div class='del'>-</div><div class='del'>-struct RTypedData {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    const rb_data_type_t *type;</div><div class='del'>-    VALUE typed_flag; /* 1 or not */</div><div class='del'>-    void *data;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define DATA_PTR(dta) (RDATA(dta)-&gt;data)</div><div class='del'>-</div><div class='del'>-#define RTYPEDDATA_P(v)    (RTYPEDDATA(v)-&gt;typed_flag == 1)</div><div class='del'>-#define RTYPEDDATA_TYPE(v) (RTYPEDDATA(v)-&gt;type)</div><div class='del'>-#define RTYPEDDATA_DATA(v) (RTYPEDDATA(v)-&gt;data)</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>-#define RUBY_DATA_FUNC(func) ((void (*)(void*))(func))</div><div class='del'>-*/</div><div class='del'>-typedef void (*RUBY_DATA_FUNC)(void*);</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_UNTYPED_DATA_WARNING</div><div class='del'>-# if defined RUBY_EXPORT</div><div class='del'>-#   define RUBY_UNTYPED_DATA_WARNING 1</div><div class='del'>-# else</div><div class='del'>-#   define RUBY_UNTYPED_DATA_WARNING 0</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-VALUE rb_data_object_wrap(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC);</div><div class='del'>-VALUE rb_data_object_zalloc(VALUE,size_t,RUBY_DATA_FUNC,RUBY_DATA_FUNC);</div><div class='del'>-VALUE rb_data_typed_object_wrap(VALUE klass, void *datap, const rb_data_type_t *);</div><div class='del'>-VALUE rb_data_typed_object_zalloc(VALUE klass, size_t size, const rb_data_type_t *type);</div><div class='del'>-int rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent);</div><div class='del'>-int rb_typeddata_is_kind_of(VALUE, const rb_data_type_t *);</div><div class='del'>-void *rb_check_typeddata(VALUE, const rb_data_type_t *);</div><div class='del'>-#define Check_TypedStruct(v,t) rb_check_typeddata((VALUE)(v),(t))</div><div class='del'>-#define RUBY_DEFAULT_FREE ((RUBY_DATA_FUNC)-1)</div><div class='del'>-#define RUBY_NEVER_FREE   ((RUBY_DATA_FUNC)0)</div><div class='del'>-#define RUBY_TYPED_DEFAULT_FREE RUBY_DEFAULT_FREE</div><div class='del'>-#define RUBY_TYPED_NEVER_FREE   RUBY_NEVER_FREE</div><div class='del'>-</div><div class='del'>-/* bits for rb_data_type_struct::flags */</div><div class='del'>-#define RUBY_TYPED_FREE_IMMEDIATELY  1 /* TYPE field */</div><div class='del'>-#define RUBY_TYPED_WB_PROTECTED      RUBY_FL_WB_PROTECTED /* THIS FLAG DEPENDS ON Ruby version */</div><div class='del'>-#define RUBY_TYPED_PROMOTED1         RUBY_FL_PROMOTED1    /* THIS FLAG DEPENDS ON Ruby version */</div><div class='del'>-</div><div class='del'>-#define Data_Wrap_Struct(klass,mark,free,sval)\</div><div class='del'>-    rb_data_object_wrap((klass),(sval),(RUBY_DATA_FUNC)(mark),(RUBY_DATA_FUNC)(free))</div><div class='del'>-</div><div class='del'>-#define Data_Make_Struct0(result, klass, type, size, mark, free, sval) \</div><div class='del'>-    VALUE result = rb_data_object_zalloc((klass), (size), \</div><div class='del'>-					 (RUBY_DATA_FUNC)(mark), \</div><div class='del'>-					 (RUBY_DATA_FUNC)(free)); \</div><div class='del'>-    (void)((sval) = (type *)DATA_PTR(result));</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#define Data_Make_Struct(klass,type,mark,free,sval) RB_GNUC_EXTENSION_BLOCK(\</div><div class='del'>-    Data_Make_Struct0(data_struct_obj, klass, type, sizeof(type), mark, free, sval); \</div><div class='del'>-    data_struct_obj \</div><div class='del'>-)</div><div class='del'>-#else</div><div class='del'>-#define Data_Make_Struct(klass,type,mark,free,sval) (\</div><div class='del'>-    rb_data_object_make((klass),(RUBY_DATA_FUNC)(mark),(RUBY_DATA_FUNC)(free),(void **)&amp;(sval),sizeof(type)) \</div><div class='del'>-)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define TypedData_Wrap_Struct(klass,data_type,sval)\</div><div class='del'>-  rb_data_typed_object_wrap((klass),(sval),(data_type))</div><div class='del'>-</div><div class='del'>-#define TypedData_Make_Struct0(result, klass, type, size, data_type, sval) \</div><div class='del'>-    VALUE result = rb_data_typed_object_zalloc(klass, size, data_type); \</div><div class='del'>-    (void)((sval) = (type *)DATA_PTR(result));</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#define TypedData_Make_Struct(klass, type, data_type, sval) RB_GNUC_EXTENSION_BLOCK(\</div><div class='del'>-    TypedData_Make_Struct0(data_struct_obj, klass, type, sizeof(type), data_type, sval); \</div><div class='del'>-    data_struct_obj \</div><div class='del'>-)</div><div class='del'>-#else</div><div class='del'>-#define TypedData_Make_Struct(klass, type, data_type, sval) (\</div><div class='del'>-    rb_data_typed_object_make((klass),(data_type),(void **)&amp;(sval),sizeof(type)) \</div><div class='del'>-)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define Data_Get_Struct(obj,type,sval) \</div><div class='del'>-    ((sval) = (type*)rb_data_object_get(obj))</div><div class='del'>-</div><div class='del'>-#define TypedData_Get_Struct(obj,type,data_type,sval) \</div><div class='del'>-    ((sval) = (type*)rb_check_typeddata((obj), (data_type)))</div><div class='del'>-</div><div class='del'>-#define RSTRUCT_LEN(st)         NUM2LONG(rb_struct_size(st))</div><div class='del'>-#define RSTRUCT_PTR(st)         rb_struct_ptr(st)</div><div class='del'>-#define RSTRUCT_SET(st, idx, v) rb_struct_aset(st, INT2NUM(idx), (v))</div><div class='del'>-#define RSTRUCT_GET(st, idx)    rb_struct_aref(st, INT2NUM(idx))</div><div class='del'>-</div><div class='del'>-int rb_big_sign(VALUE);</div><div class='del'>-#define RBIGNUM_SIGN(b) (rb_big_sign(b))</div><div class='del'>-#define RBIGNUM_POSITIVE_P(b) (RBIGNUM_SIGN(b)!=0)</div><div class='del'>-#define RBIGNUM_NEGATIVE_P(b) (RBIGNUM_SIGN(b)==0)</div><div class='del'>-</div><div class='del'>-#define R_CAST(st)   (struct st*)</div><div class='del'>-#define RBASIC(obj)  (R_CAST(RBasic)(obj))</div><div class='del'>-#define ROBJECT(obj) (R_CAST(RObject)(obj))</div><div class='del'>-#define RCLASS(obj)  (R_CAST(RClass)(obj))</div><div class='del'>-#define RMODULE(obj) RCLASS(obj)</div><div class='del'>-#define RSTRING(obj) (R_CAST(RString)(obj))</div><div class='del'>-#define RREGEXP(obj) (R_CAST(RRegexp)(obj))</div><div class='del'>-#define RARRAY(obj)  (R_CAST(RArray)(obj))</div><div class='del'>-#define RDATA(obj)   (R_CAST(RData)(obj))</div><div class='del'>-#define RTYPEDDATA(obj)   (R_CAST(RTypedData)(obj))</div><div class='del'>-#define RFILE(obj)   (R_CAST(RFile)(obj))</div><div class='del'>-</div><div class='del'>-#define FL_SINGLETON    ((VALUE)RUBY_FL_SINGLETON)</div><div class='del'>-#define FL_WB_PROTECTED ((VALUE)RUBY_FL_WB_PROTECTED)</div><div class='del'>-#define FL_PROMOTED0    ((VALUE)RUBY_FL_PROMOTED0)</div><div class='del'>-#define FL_PROMOTED1    ((VALUE)RUBY_FL_PROMOTED1)</div><div class='del'>-#define FL_FINALIZE     ((VALUE)RUBY_FL_FINALIZE)</div><div class='del'>-#define FL_TAINT        ((VALUE)RUBY_FL_TAINT)</div><div class='del'>-#define FL_UNTRUSTED    ((VALUE)RUBY_FL_UNTRUSTED)</div><div class='del'>-#define FL_EXIVAR       ((VALUE)RUBY_FL_EXIVAR)</div><div class='del'>-#define FL_FREEZE       ((VALUE)RUBY_FL_FREEZE)</div><div class='del'>-</div><div class='del'>-#define FL_USHIFT       ((VALUE)RUBY_FL_USHIFT)</div><div class='del'>-</div><div class='del'>-#define FL_USER0  	((VALUE)RUBY_FL_USER0)</div><div class='del'>-#define FL_USER1  	((VALUE)RUBY_FL_USER1)</div><div class='del'>-#define FL_USER2  	((VALUE)RUBY_FL_USER2)</div><div class='del'>-#define FL_USER3  	((VALUE)RUBY_FL_USER3)</div><div class='del'>-#define FL_USER4  	((VALUE)RUBY_FL_USER4)</div><div class='del'>-#define FL_USER5  	((VALUE)RUBY_FL_USER5)</div><div class='del'>-#define FL_USER6  	((VALUE)RUBY_FL_USER6)</div><div class='del'>-#define FL_USER7  	((VALUE)RUBY_FL_USER7)</div><div class='del'>-#define FL_USER8  	((VALUE)RUBY_FL_USER8)</div><div class='del'>-#define FL_USER9  	((VALUE)RUBY_FL_USER9)</div><div class='del'>-#define FL_USER10 	((VALUE)RUBY_FL_USER10)</div><div class='del'>-#define FL_USER11 	((VALUE)RUBY_FL_USER11)</div><div class='del'>-#define FL_USER12 	((VALUE)RUBY_FL_USER12)</div><div class='del'>-#define FL_USER13 	((VALUE)RUBY_FL_USER13)</div><div class='del'>-#define FL_USER14 	((VALUE)RUBY_FL_USER14)</div><div class='del'>-#define FL_USER15 	((VALUE)RUBY_FL_USER15)</div><div class='del'>-#define FL_USER16 	((VALUE)RUBY_FL_USER16)</div><div class='del'>-#define FL_USER17 	((VALUE)RUBY_FL_USER17)</div><div class='del'>-#define FL_USER18 	((VALUE)RUBY_FL_USER18)</div><div class='del'>-#define FL_USER19 	((VALUE)RUBY_FL_USER19)</div><div class='del'>-</div><div class='del'>-#define RB_SPECIAL_CONST_P(x) (RB_IMMEDIATE_P(x) || !RB_TEST(x))</div><div class='del'>-#define SPECIAL_CONST_P(x) RB_SPECIAL_CONST_P(x)</div><div class='del'>-</div><div class='del'>-#define RB_FL_ABLE(x) (!RB_SPECIAL_CONST_P(x) &amp;&amp; RB_BUILTIN_TYPE(x) != RUBY_T_NODE)</div><div class='del'>-#define RB_FL_TEST_RAW(x,f) (RBASIC(x)-&gt;flags&amp;(f))</div><div class='del'>-#define RB_FL_TEST(x,f) (RB_FL_ABLE(x)?RB_FL_TEST_RAW((x),(f)):0)</div><div class='del'>-#define RB_FL_ANY_RAW(x,f) RB_FL_TEST_RAW((x),(f))</div><div class='del'>-#define RB_FL_ANY(x,f) RB_FL_TEST((x),(f))</div><div class='del'>-#define RB_FL_ALL_RAW(x,f) (RB_FL_TEST_RAW((x),(f)) == (f))</div><div class='del'>-#define RB_FL_ALL(x,f) (RB_FL_TEST((x),(f)) == (f))</div><div class='del'>-#define RB_FL_SET_RAW(x,f) (void)(RBASIC(x)-&gt;flags |= (f))</div><div class='del'>-#define RB_FL_SET(x,f) (RB_FL_ABLE(x) ? RB_FL_SET_RAW(x, f) : (void)0)</div><div class='del'>-#define RB_FL_UNSET_RAW(x,f) (void)(RBASIC(x)-&gt;flags &amp;= ~(VALUE)(f))</div><div class='del'>-#define RB_FL_UNSET(x,f) (RB_FL_ABLE(x) ? RB_FL_UNSET_RAW(x, f) : (void)0)</div><div class='del'>-#define RB_FL_REVERSE_RAW(x,f) (void)(RBASIC(x)-&gt;flags ^= (f))</div><div class='del'>-#define RB_FL_REVERSE(x,f) (RB_FL_ABLE(x) ? RB_FL_REVERSE_RAW(x, f) : (void)0)</div><div class='del'>-</div><div class='del'>-#define RB_OBJ_TAINTABLE(x) (RB_FL_ABLE(x) &amp;&amp; RB_BUILTIN_TYPE(x) != RUBY_T_BIGNUM &amp;&amp; RB_BUILTIN_TYPE(x) != RUBY_T_FLOAT)</div><div class='del'>-#define RB_OBJ_TAINTED_RAW(x) RB_FL_TEST_RAW(x, RUBY_FL_TAINT)</div><div class='del'>-#define RB_OBJ_TAINTED(x) (!!RB_FL_TEST((x), RUBY_FL_TAINT))</div><div class='del'>-#define RB_OBJ_TAINT_RAW(x) RB_FL_SET_RAW(x, RUBY_FL_TAINT)</div><div class='del'>-#define RB_OBJ_TAINT(x) (RB_OBJ_TAINTABLE(x) ? RB_OBJ_TAINT_RAW(x) : (void)0)</div><div class='del'>-#define RB_OBJ_UNTRUSTED(x) RB_OBJ_TAINTED(x)</div><div class='del'>-#define RB_OBJ_UNTRUST(x) RB_OBJ_TAINT(x)</div><div class='del'>-#define RB_OBJ_INFECT_RAW(x,s) RB_FL_SET_RAW(x, RB_OBJ_TAINTED_RAW(s))</div><div class='del'>-#define RB_OBJ_INFECT(x,s) ( \</div><div class='del'>-    (RB_OBJ_TAINTABLE(x) &amp;&amp; RB_FL_ABLE(s)) ? \</div><div class='del'>-    RB_OBJ_INFECT_RAW(x, s) : (void)0)</div><div class='del'>-</div><div class='del'>-#define RB_OBJ_FROZEN_RAW(x) (RBASIC(x)-&gt;flags&amp;RUBY_FL_FREEZE)</div><div class='del'>-#define RB_OBJ_FROZEN(x) (!RB_FL_ABLE(x) || RB_OBJ_FROZEN_RAW(x))</div><div class='del'>-#define RB_OBJ_FREEZE_RAW(x) (void)(RBASIC(x)-&gt;flags |= RUBY_FL_FREEZE)</div><div class='del'>-#define RB_OBJ_FREEZE(x) rb_obj_freeze_inline((VALUE)x)</div><div class='add'>+#define USE_SYMBOL_AS_METHOD_NAME 1</div><div class='ctx'> </div><div class='del'>-/*!</div><div class='del'>- * \defgroup deprecated_macros deprecated macro APIs</div><div class='del'>- * \{</div><div class='del'>- * \par These macros are deprecated. Prefer their `RB_`-prefixed versions.</div><div class='add'>+/**</div><div class='add'>+ * Converts an object to a path.  It first tries `#to_path` method if any, then</div><div class='add'>+ * falls back to `#to_str` method.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj                 Arbitrary ruby object.</div><div class='add'>+ * @exception  rb_eArgError        `obj` contains a NUL byte.</div><div class='add'>+ * @exception  rb_eTypeError       `obj` is not path-ish.</div><div class='add'>+ * @exception  rb_eEncCompatError  No encoding conversion from `obj` to path.</div><div class='add'>+ * @return     Converted path object.</div><div class='ctx'>  */</div><div class='del'>-#define FL_ABLE(x) RB_FL_ABLE(x)</div><div class='del'>-#define FL_TEST_RAW(x,f) RB_FL_TEST_RAW(x,f)</div><div class='del'>-#define FL_TEST(x,f) RB_FL_TEST(x,f)</div><div class='del'>-#define FL_ANY_RAW(x,f) RB_FL_ANY_RAW(x,f)</div><div class='del'>-#define FL_ANY(x,f) RB_FL_ANY(x,f)</div><div class='del'>-#define FL_ALL_RAW(x,f) RB_FL_ALL_RAW(x,f)</div><div class='del'>-#define FL_ALL(x,f) RB_FL_ALL(x,f)</div><div class='del'>-#define FL_SET_RAW(x,f) RB_FL_SET_RAW(x,f)</div><div class='del'>-#define FL_SET(x,f) RB_FL_SET(x,f)</div><div class='del'>-#define FL_UNSET_RAW(x,f) RB_FL_UNSET_RAW(x,f)</div><div class='del'>-#define FL_UNSET(x,f) RB_FL_UNSET(x,f)</div><div class='del'>-#define FL_REVERSE_RAW(x,f) RB_FL_REVERSE_RAW(x,f)</div><div class='del'>-#define FL_REVERSE(x,f) RB_FL_REVERSE(x,f)</div><div class='del'>-</div><div class='del'>-#define OBJ_TAINTABLE(x) RB_OBJ_TAINTABLE(x)</div><div class='del'>-#define OBJ_TAINTED_RAW(x) RB_OBJ_TAINTED_RAW(x)</div><div class='del'>-#define OBJ_TAINTED(x) RB_OBJ_TAINTED(x)</div><div class='del'>-#define OBJ_TAINT_RAW(x) RB_OBJ_TAINT_RAW(x)</div><div class='del'>-#define OBJ_TAINT(x) RB_OBJ_TAINT(x)</div><div class='del'>-#define OBJ_UNTRUSTED(x) RB_OBJ_UNTRUSTED(x)</div><div class='del'>-#define OBJ_UNTRUST(x) RB_OBJ_UNTRUST(x)</div><div class='del'>-#define OBJ_INFECT_RAW(x,s) RB_OBJ_INFECT_RAW(x,s)</div><div class='del'>-#define OBJ_INFECT(x,s) RB_OBJ_INFECT(x,s)</div><div class='del'>-#define OBJ_FROZEN_RAW(x) RB_OBJ_FROZEN_RAW(x)</div><div class='del'>-#define OBJ_FROZEN(x) RB_OBJ_FROZEN(x)</div><div class='del'>-#define OBJ_FREEZE_RAW(x) RB_OBJ_FREEZE_RAW(x)</div><div class='del'>-#define OBJ_FREEZE(x) RB_OBJ_FREEZE(x)</div><div class='del'>-</div><div class='del'>-/* \} */</div><div class='del'>-</div><div class='del'>-void rb_freeze_singleton_class(VALUE klass);</div><div class='del'>-</div><div class='del'>-static inline void</div><div class='del'>-rb_obj_freeze_inline(VALUE x)</div><div class='del'>-{</div><div class='del'>-    if (RB_FL_ABLE(x)) {</div><div class='del'>-	RB_OBJ_FREEZE_RAW(x);</div><div class='del'>-	if (RBASIC_CLASS(x) &amp;&amp; !(RBASIC(x)-&gt;flags &amp; RUBY_FL_SINGLETON)) {</div><div class='del'>-	    rb_freeze_singleton_class(x);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if GCC_VERSION_SINCE(4,4,0)</div><div class='del'>-# define RUBY_UNTYPED_DATA_FUNC(func) func __attribute__((warning("untyped Data is unsafe; use TypedData instead")))</div><div class='del'>-#else</div><div class='del'>-# define RUBY_UNTYPED_DATA_FUNC(func) DEPRECATED(func)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(__GNUC__) &amp;&amp; !defined(__NO_INLINE__)</div><div class='del'>-#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)</div><div class='del'>-RUBY_UNTYPED_DATA_FUNC(static inline VALUE rb_data_object_wrap_warning(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC));</div><div class='del'>-#endif</div><div class='del'>-RUBY_UNTYPED_DATA_FUNC(static inline void *rb_data_object_get_warning(VALUE));</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_data_object_wrap_warning(VALUE klass, void *ptr, RUBY_DATA_FUNC mark, RUBY_DATA_FUNC free)</div><div class='del'>-{</div><div class='del'>-    return rb_data_object_wrap(klass, ptr, mark, free);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)</div><div class='del'>-#define rb_data_object_wrap_warning(klass, ptr, mark, free) \</div><div class='del'>-    __extension__( \</div><div class='del'>-	__builtin_choose_expr( \</div><div class='del'>-	    __builtin_constant_p(klass) &amp;&amp; !(klass), \</div><div class='del'>-	    rb_data_object_wrap(klass, ptr, mark, free), \</div><div class='del'>-	    rb_data_object_wrap_warning(klass, ptr, mark, free)))</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static inline void *</div><div class='del'>-rb_data_object_get(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    Check_Type(obj, RUBY_T_DATA);</div><div class='del'>-    return ((struct RData *)obj)-&gt;data;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if defined(__GNUC__) &amp;&amp; !defined(__NO_INLINE__)</div><div class='del'>-static inline void *</div><div class='del'>-rb_data_object_get_warning(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    return rb_data_object_get(obj);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_data_object_make(VALUE klass, RUBY_DATA_FUNC mark_func, RUBY_DATA_FUNC free_func, void **datap, size_t size)</div><div class='del'>-{</div><div class='del'>-    Data_Make_Struct0(result, klass, void, size, mark_func, free_func, *datap);</div><div class='del'>-    return result;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_data_typed_object_make(VALUE klass, const rb_data_type_t *type, void **datap, size_t size)</div><div class='del'>-{</div><div class='del'>-    TypedData_Make_Struct0(result, klass, void, size, type, *datap);</div><div class='del'>-    return result;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#ifndef rb_data_object_alloc</div><div class='del'>-DEPRECATED_BY(rb_data_object_wrap, static inline VALUE rb_data_object_alloc(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC));</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_data_object_alloc(VALUE klass, void *data, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree)</div><div class='del'>-{</div><div class='del'>-    return rb_data_object_wrap(klass, data, dmark, dfree);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef rb_data_typed_object_alloc</div><div class='del'>-DEPRECATED_BY(rb_data_typed_object_wrap, static inline VALUE rb_data_typed_object_alloc(VALUE,void*,const rb_data_type_t*));</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *type)</div><div class='del'>-{</div><div class='del'>-    return rb_data_typed_object_wrap(klass, datap, type);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(__GNUC__) &amp;&amp; !defined(__NO_INLINE__)</div><div class='del'>-#define rb_data_object_wrap_0 rb_data_object_wrap</div><div class='del'>-#define rb_data_object_wrap_1 rb_data_object_wrap_warning</div><div class='del'>-#define rb_data_object_wrap  RUBY_MACRO_SELECT(rb_data_object_wrap_, RUBY_UNTYPED_DATA_WARNING)</div><div class='del'>-#define rb_data_object_get_0 rb_data_object_get</div><div class='del'>-#define rb_data_object_get_1 rb_data_object_get_warning</div><div class='del'>-#define rb_data_object_get  RUBY_MACRO_SELECT(rb_data_object_get_, RUBY_UNTYPED_DATA_WARNING)</div><div class='del'>-#define rb_data_object_make_0 rb_data_object_make</div><div class='del'>-#define rb_data_object_make_1 rb_data_object_make_warning</div><div class='del'>-#define rb_data_object_make   RUBY_MACRO_SELECT(rb_data_object_make_, RUBY_UNTYPED_DATA_WARNING)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-#define RB_OBJ_PROMOTED_RAW(x)      RB_FL_ALL_RAW(x, RUBY_FL_PROMOTED)</div><div class='del'>-#define RB_OBJ_PROMOTED(x)          (RB_SPECIAL_CONST_P(x) ? 0 : RB_OBJ_PROMOTED_RAW(x))</div><div class='del'>-#define RB_OBJ_WB_UNPROTECT(x)      rb_obj_wb_unprotect(x, __FILE__, __LINE__)</div><div class='add'>+VALUE rb_get_path(VALUE obj);</div><div class='ctx'> </div><div class='del'>-void rb_gc_writebarrier(VALUE a, VALUE b);</div><div class='del'>-void rb_gc_writebarrier_unprotect(VALUE obj);</div><div class='del'>-</div><div class='del'>-#else /* USE_RGENGC */</div><div class='del'>-#define RB_OBJ_PROMOTED(x)          0</div><div class='del'>-#define RB_OBJ_WB_UNPROTECT(x)      rb_obj_wb_unprotect(x, __FILE__, __LINE__)</div><div class='del'>-#endif</div><div class='del'>-#define OBJ_PROMOTED_RAW(x)         RB_OBJ_PROMOTED_RAW(x)</div><div class='del'>-#define OBJ_PROMOTED(x)             RB_OBJ_PROMOTED(x)</div><div class='del'>-#define OBJ_WB_UNPROTECT(x)         RB_OBJ_WB_UNPROTECT(x)</div><div class='del'>-</div><div class='del'>-/* Write barrier (WB) interfaces:</div><div class='del'>- * - RB_OBJ_WRITE(a, slot, b): WB for new reference from `a' to `b'.</div><div class='del'>- *     Write `b' into `*slot'. `slot' is a pointer in `a'.</div><div class='del'>- * - RB_OBJ_WRITTEN(a, oldv, b): WB for new reference from `a' to `b'.</div><div class='del'>- *     This doesn't write any values, but only a WB declaration.</div><div class='del'>- *     `oldv' is replaced value with `b' (not used in current Ruby).</div><div class='add'>+/**</div><div class='add'>+ * Ensures that the parameter object is a path.</div><div class='ctx'>  *</div><div class='del'>- * NOTE: The following core interfaces can be changed in the future.</div><div class='del'>- *       Please catch up if you want to insert WB into C-extensions</div><div class='del'>- *       correctly.</div><div class='add'>+ * @param[in,out]  v                   Arbitrary ruby object.</div><div class='add'>+ * @exception      rb_eArgError        `v` contains a NUL byte.</div><div class='add'>+ * @exception      rb_eTypeError       `v` is not path-ish.</div><div class='add'>+ * @exception      rb_eEncCompatError  `v` is not path-compatible.</div><div class='add'>+ * @post           `v` is a path.</div><div class='ctx'>  */</div><div class='del'>-#define RB_OBJ_WRITE(a, slot, b)       rb_obj_write((VALUE)(a), (VALUE *)(slot), (VALUE)(b), __FILE__, __LINE__)</div><div class='del'>-#define RB_OBJ_WRITTEN(a, oldv, b)     rb_obj_written((VALUE)(a), (VALUE)(oldv), (VALUE)(b), __FILE__, __LINE__)</div><div class='del'>-</div><div class='del'>-#ifndef USE_RGENGC_LOGGING_WB_UNPROTECT</div><div class='del'>-#define USE_RGENGC_LOGGING_WB_UNPROTECT 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if USE_RGENGC_LOGGING_WB_UNPROTECT</div><div class='del'>-void rb_gc_unprotect_logging(void *objptr, const char *filename, int line);</div><div class='del'>-#define RGENGC_LOGGING_WB_UNPROTECT rb_gc_unprotect_logging</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_obj_wb_unprotect(VALUE x, RB_UNUSED_VAR(const char *filename), RB_UNUSED_VAR(int line))</div><div class='del'>-{</div><div class='del'>-#ifdef RGENGC_LOGGING_WB_UNPROTECT</div><div class='del'>-    RGENGC_LOGGING_WB_UNPROTECT((void *)x, filename, line);</div><div class='del'>-#endif</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-    rb_gc_writebarrier_unprotect(x);</div><div class='del'>-#endif</div><div class='del'>-    return x;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_obj_written(VALUE a, RB_UNUSED_VAR(VALUE oldv), VALUE b, RB_UNUSED_VAR(const char *filename), RB_UNUSED_VAR(int line))</div><div class='del'>-{</div><div class='del'>-#ifdef RGENGC_LOGGING_OBJ_WRITTEN</div><div class='del'>-    RGENGC_LOGGING_OBJ_WRITTEN(a, oldv, b, filename, line);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-    if (!RB_SPECIAL_CONST_P(b)) {</div><div class='del'>-	rb_gc_writebarrier(a, b);</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    return a;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_obj_write(VALUE a, VALUE *slot, VALUE b, RB_UNUSED_VAR(const char *filename), RB_UNUSED_VAR(int line))</div><div class='del'>-{</div><div class='del'>-#ifdef RGENGC_LOGGING_WRITE</div><div class='del'>-    RGENGC_LOGGING_WRITE(a, slot, b, filename, line);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    *slot = b;</div><div class='del'>-</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-    rb_obj_written(a, RUBY_Qundef /* ignore `oldv' now */, b, filename, line);</div><div class='del'>-#endif</div><div class='del'>-    return a;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define RUBY_INTEGER_UNIFICATION 1</div><div class='del'>-#define RB_INTEGER_TYPE_P(obj) rb_integer_type_p(obj)</div><div class='del'>-#if defined __GNUC__ &amp;&amp; !GCC_VERSION_SINCE(4, 3, 0)</div><div class='del'>-/* clang 3.x (4.2 compatible) can't eliminate CSE of RB_BUILTIN_TYPE</div><div class='del'>- * in inline function and caller function */</div><div class='del'>-#define rb_integer_type_p(obj) \</div><div class='del'>-    __extension__ ({ \</div><div class='del'>-	const VALUE integer_type_obj = (obj); \</div><div class='del'>-	(RB_FIXNUM_P(integer_type_obj) || \</div><div class='del'>-	 (!RB_SPECIAL_CONST_P(integer_type_obj) &amp;&amp; \</div><div class='del'>-	  RB_BUILTIN_TYPE(integer_type_obj) == RUBY_T_BIGNUM)); \</div><div class='del'>-    })</div><div class='del'>-#else</div><div class='del'>-static inline int</div><div class='del'>-rb_integer_type_p(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    return (RB_FIXNUM_P(obj) ||</div><div class='del'>-	    (!RB_SPECIAL_CONST_P(obj) &amp;&amp;</div><div class='del'>-	     RB_BUILTIN_TYPE(obj) == RUBY_T_BIGNUM));</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if SIZEOF_INT &lt; SIZEOF_LONG</div><div class='del'>-# define RB_INT2NUM(v) RB_INT2FIX((int)(v))</div><div class='del'>-# define RB_UINT2NUM(v) RB_LONG2FIX((unsigned int)(v))</div><div class='del'>-#else</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_int2num_inline(int v)</div><div class='del'>-{</div><div class='del'>-    if (RB_FIXABLE(v))</div><div class='del'>-	return RB_INT2FIX(v);</div><div class='del'>-    else</div><div class='del'>-	return rb_int2big(v);</div><div class='del'>-}</div><div class='del'>-#define RB_INT2NUM(x) rb_int2num_inline(x)</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_uint2num_inline(unsigned int v)</div><div class='del'>-{</div><div class='del'>-    if (RB_POSFIXABLE(v))</div><div class='del'>-	return RB_LONG2FIX(v);</div><div class='del'>-    else</div><div class='del'>-	return rb_uint2big(v);</div><div class='del'>-}</div><div class='del'>-#define RB_UINT2NUM(x) rb_uint2num_inline(x)</div><div class='del'>-#endif</div><div class='del'>-#define INT2NUM(x) RB_INT2NUM(x)</div><div class='del'>-#define UINT2NUM(x) RB_UINT2NUM(x)</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_long2num_inline(long v)</div><div class='del'>-{</div><div class='del'>-    if (RB_FIXABLE(v))</div><div class='del'>-	return RB_LONG2FIX(v);</div><div class='del'>-    else</div><div class='del'>-	return rb_int2big(v);</div><div class='del'>-}</div><div class='del'>-#define RB_LONG2NUM(x) rb_long2num_inline(x)</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_ulong2num_inline(unsigned long v)</div><div class='del'>-{</div><div class='del'>-    if (RB_POSFIXABLE(v))</div><div class='del'>-	return RB_LONG2FIX(v);</div><div class='del'>-    else</div><div class='del'>-	return rb_uint2big(v);</div><div class='del'>-}</div><div class='del'>-#define RB_ULONG2NUM(x) rb_ulong2num_inline(x)</div><div class='del'>-</div><div class='del'>-static inline char</div><div class='del'>-rb_num2char_inline(VALUE x)</div><div class='del'>-{</div><div class='del'>-    if (RB_TYPE_P(x, RUBY_T_STRING) &amp;&amp; (RSTRING_LEN(x)&gt;=1))</div><div class='del'>-	return RSTRING_PTR(x)[0];</div><div class='del'>-    else</div><div class='del'>-	return (char)(NUM2INT(x) &amp; 0xff);</div><div class='del'>-}</div><div class='del'>-#define RB_NUM2CHR(x) rb_num2char_inline(x)</div><div class='del'>-</div><div class='del'>-#define RB_CHR2FIX(x) RB_INT2FIX((long)((x)&amp;0xff))</div><div class='del'>-</div><div class='del'>-#define LONG2NUM(x) RB_LONG2NUM(x)</div><div class='del'>-#define ULONG2NUM(x) RB_ULONG2NUM(x)</div><div class='del'>-#define USHORT2NUM(x) RB_INT2FIX(x)</div><div class='del'>-#define NUM2CHR(x) RB_NUM2CHR(x)</div><div class='del'>-#define CHR2FIX(x) RB_CHR2FIX(x)</div><div class='del'>-</div><div class='del'>-#if SIZEOF_LONG &lt; SIZEOF_VALUE</div><div class='del'>-#define RB_ST2FIX(h) RB_LONG2FIX((long)((h) &gt; 0 ? (h) &amp; (unsigned long)-1 &gt;&gt; 2 : (h) | ~((unsigned long)-1 &gt;&gt; 2)))</div><div class='del'>-#else</div><div class='del'>-#define RB_ST2FIX(h) RB_LONG2FIX((long)(h))</div><div class='del'>-#endif</div><div class='del'>-#define ST2FIX(h) RB_ST2FIX(h)</div><div class='del'>-</div><div class='del'>-#define RB_ALLOC_N(type,n) ((type*)ruby_xmalloc2((size_t)(n),sizeof(type)))</div><div class='del'>-#define RB_ALLOC(type) ((type*)ruby_xmalloc(sizeof(type)))</div><div class='del'>-#define RB_ZALLOC_N(type,n) ((type*)ruby_xcalloc((size_t)(n),sizeof(type)))</div><div class='del'>-#define RB_ZALLOC(type) (RB_ZALLOC_N(type,1))</div><div class='del'>-#define RB_REALLOC_N(var,type,n) ((var)=(type*)ruby_xrealloc2((char*)(var),(size_t)(n),sizeof(type)))</div><div class='del'>-</div><div class='del'>-#define ALLOC_N(type,n) RB_ALLOC_N(type,n)</div><div class='del'>-#define ALLOC(type) RB_ALLOC(type)</div><div class='del'>-#define ZALLOC_N(type,n) RB_ZALLOC_N(type,n)</div><div class='del'>-#define ZALLOC(type) RB_ZALLOC(type)</div><div class='del'>-#define REALLOC_N(var,type,n) RB_REALLOC_N(var,type,n)</div><div class='del'>-</div><div class='del'>-#if GCC_VERSION_BEFORE(4,9,5)</div><div class='del'>-/* GCC 4.9.2 reportedly has this feature and is broken.</div><div class='del'>- * The function is not officially documented below.</div><div class='del'>- * Seems we should not use it.</div><div class='del'>- * https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Other-Builtins.html#Other-Builtins */</div><div class='del'>-# undef HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN) &amp;&amp; defined(RUBY_ALIGNOF)</div><div class='del'>-/* I don't know why but __builtin_alloca_with_align's second argument</div><div class='del'>-   takes bits rather than bytes. */</div><div class='del'>-#define ALLOCA_N(type, n) \</div><div class='del'>-    (type*)__builtin_alloca_with_align((sizeof(type)*(n)), \</div><div class='del'>-        RUBY_ALIGNOF(type) * CHAR_BIT)</div><div class='del'>-#else</div><div class='del'>-#define ALLOCA_N(type,n) ((type*)alloca(sizeof(type)*(n)))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-void *rb_alloc_tmp_buffer(volatile VALUE *store, long len) RUBY_ATTR_ALLOC_SIZE((2));</div><div class='del'>-void *rb_alloc_tmp_buffer_with_count(volatile VALUE *store, size_t len,size_t count) RUBY_ATTR_ALLOC_SIZE((2,3));</div><div class='del'>-void rb_free_tmp_buffer(volatile VALUE *store);</div><div class='del'>-NORETURN(void ruby_malloc_size_overflow(size_t, size_t));</div><div class='del'>-#if HAVE_LONG_LONG &amp;&amp; SIZEOF_SIZE_T * 2 &lt;= SIZEOF_LONG_LONG</div><div class='del'>-# define DSIZE_T unsigned LONG_LONG</div><div class='del'>-#elif defined(HAVE_INT128_T)</div><div class='del'>-# define DSIZE_T uint128_t</div><div class='del'>-#endif</div><div class='del'>-static inline int</div><div class='del'>-rb_mul_size_overflow(size_t a, size_t b, size_t max, size_t *c)</div><div class='del'>-{</div><div class='del'>-#ifdef DSIZE_T</div><div class='del'>-# ifdef __GNUC__</div><div class='del'>-    __extension__</div><div class='del'>-# endif</div><div class='del'>-    DSIZE_T c2 = (DSIZE_T)a * (DSIZE_T)b;</div><div class='del'>-    if (c2 &gt; max) return 1;</div><div class='del'>-    *c = (size_t)c2;</div><div class='del'>-#else</div><div class='del'>-    if (b != 0 &amp;&amp; a &gt; max / b) return 1;</div><div class='del'>-    *c = a * b;</div><div class='del'>-#endif</div><div class='del'>-    return 0;</div><div class='del'>-}</div><div class='del'>-static inline void *</div><div class='del'>-rb_alloc_tmp_buffer2(volatile VALUE *store, long count, size_t elsize)</div><div class='del'>-{</div><div class='del'>-    size_t cnt = (size_t)count;</div><div class='del'>-    if (elsize == sizeof(VALUE)) {</div><div class='del'>-	if (RB_UNLIKELY(cnt &gt; LONG_MAX / sizeof(VALUE))) {</div><div class='del'>-	    ruby_malloc_size_overflow(cnt, elsize);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	size_t size, max = LONG_MAX - sizeof(VALUE) + 1;</div><div class='del'>-	if (RB_UNLIKELY(rb_mul_size_overflow(cnt, elsize, max, &amp;size))) {</div><div class='del'>-	    ruby_malloc_size_overflow(cnt, elsize);</div><div class='del'>-	}</div><div class='del'>-	cnt = (size + sizeof(VALUE) - 1) / sizeof(VALUE);</div><div class='del'>-    }</div><div class='del'>-    return rb_alloc_tmp_buffer_with_count(store, cnt * sizeof(VALUE), cnt);</div><div class='del'>-}</div><div class='del'>-/* allocates _n_ bytes temporary buffer and stores VALUE including it</div><div class='del'>- * in _v_.  _n_ may be evaluated twice. */</div><div class='del'>-#ifdef C_ALLOCA</div><div class='del'>-# define RB_ALLOCV(v, n) rb_alloc_tmp_buffer(&amp;(v), (n))</div><div class='del'>-# define RB_ALLOCV_N(type, v, n) \</div><div class='del'>-     rb_alloc_tmp_buffer2(&amp;(v), (n), sizeof(type))</div><div class='del'>-#else</div><div class='del'>-# define RUBY_ALLOCV_LIMIT 1024</div><div class='del'>-# define RB_ALLOCV(v, n) ((n) &lt; RUBY_ALLOCV_LIMIT ? \</div><div class='del'>-                       ((v) = 0, alloca(n)) : \</div><div class='del'>-		       rb_alloc_tmp_buffer(&amp;(v), (n)))</div><div class='del'>-# define RB_ALLOCV_N(type, v, n) \</div><div class='del'>-    ((type*)(((size_t)(n) &lt; RUBY_ALLOCV_LIMIT / sizeof(type)) ? \</div><div class='del'>-             ((v) = 0, alloca((size_t)(n) * sizeof(type))) : \</div><div class='del'>-	     rb_alloc_tmp_buffer2(&amp;(v), (long)(n), sizeof(type))))</div><div class='del'>-#endif</div><div class='del'>-#define RB_ALLOCV_END(v) rb_free_tmp_buffer(&amp;(v))</div><div class='del'>-</div><div class='del'>-#define ALLOCV(v, n) RB_ALLOCV(v, n)</div><div class='del'>-#define ALLOCV_N(type, v, n) RB_ALLOCV_N(type, v, n)</div><div class='del'>-#define ALLOCV_END(v) RB_ALLOCV_END(v)</div><div class='del'>-</div><div class='del'>-#define MEMZERO(p,type,n) memset((p), 0, sizeof(type)*(size_t)(n))</div><div class='del'>-#define MEMCPY(p1,p2,type,n) memcpy((p1), (p2), sizeof(type)*(size_t)(n))</div><div class='del'>-#define MEMMOVE(p1,p2,type,n) memmove((p1), (p2), sizeof(type)*(size_t)(n))</div><div class='del'>-#define MEMCMP(p1,p2,type,n) memcmp((p1), (p2), sizeof(type)*(size_t)(n))</div><div class='del'>-</div><div class='del'>-void rb_obj_infect(VALUE victim, VALUE carrier);</div><div class='del'>-</div><div class='del'>-typedef int ruby_glob_func(const char*,VALUE, void*);</div><div class='del'>-void rb_glob(const char*,void(*)(const char*,VALUE,void*),VALUE);</div><div class='del'>-int ruby_glob(const char*,int,ruby_glob_func*,VALUE);</div><div class='del'>-int ruby_brace_glob(const char*,int,ruby_glob_func*,VALUE);</div><div class='del'>-</div><div class='del'>-VALUE rb_define_class(const char*,VALUE);</div><div class='del'>-VALUE rb_define_module(const char*);</div><div class='del'>-VALUE rb_define_class_under(VALUE, const char*, VALUE);</div><div class='del'>-VALUE rb_define_module_under(VALUE, const char*);</div><div class='del'>-</div><div class='del'>-void rb_include_module(VALUE,VALUE);</div><div class='del'>-void rb_extend_object(VALUE,VALUE);</div><div class='del'>-void rb_prepend_module(VALUE,VALUE);</div><div class='del'>-</div><div class='del'>-struct rb_global_variable;</div><div class='del'>-</div><div class='del'>-typedef VALUE rb_gvar_getter_t(ID id, void *data, struct rb_global_variable *gvar);</div><div class='del'>-typedef void  rb_gvar_setter_t(VALUE val, ID id, void *data, struct rb_global_variable *gvar);</div><div class='del'>-typedef void  rb_gvar_marker_t(VALUE *var);</div><div class='del'>-</div><div class='del'>-VALUE rb_gvar_undef_getter(ID id, void *data, struct rb_global_variable *gvar);</div><div class='del'>-void  rb_gvar_undef_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);</div><div class='del'>-void  rb_gvar_undef_marker(VALUE *var);</div><div class='del'>-</div><div class='del'>-VALUE rb_gvar_val_getter(ID id, void *data, struct rb_global_variable *gvar);</div><div class='del'>-void  rb_gvar_val_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);</div><div class='del'>-void  rb_gvar_val_marker(VALUE *var);</div><div class='del'>-</div><div class='del'>-VALUE rb_gvar_var_getter(ID id, void *data, struct rb_global_variable *gvar);</div><div class='del'>-void  rb_gvar_var_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);</div><div class='del'>-void  rb_gvar_var_marker(VALUE *var);</div><div class='del'>-</div><div class='del'>-NORETURN(void  rb_gvar_readonly_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar));</div><div class='del'>-</div><div class='del'>-void rb_define_variable(const char*,VALUE*);</div><div class='del'>-void rb_define_virtual_variable(const char*,VALUE(*)(ANYARGS),void(*)(ANYARGS));</div><div class='del'>-void rb_define_hooked_variable(const char*,VALUE*,VALUE(*)(ANYARGS),void(*)(ANYARGS));</div><div class='del'>-void rb_define_readonly_variable(const char*,const VALUE*);</div><div class='del'>-void rb_define_const(VALUE,const char*,VALUE);</div><div class='del'>-void rb_define_global_const(const char*,VALUE);</div><div class='del'>-</div><div class='del'>-#define RUBY_METHOD_FUNC(func) ((VALUE (*)(ANYARGS))(func))</div><div class='del'>-void rb_define_method(VALUE,const char*,VALUE(*)(ANYARGS),int);</div><div class='del'>-void rb_define_module_function(VALUE,const char*,VALUE(*)(ANYARGS),int);</div><div class='del'>-void rb_define_global_function(const char*,VALUE(*)(ANYARGS),int);</div><div class='del'>-</div><div class='del'>-void rb_undef_method(VALUE,const char*);</div><div class='del'>-void rb_define_alias(VALUE,const char*,const char*);</div><div class='del'>-void rb_define_attr(VALUE,const char*,int,int);</div><div class='add'>+#define FilePathValue(v) (RB_GC_GUARD(v) = rb_get_path(v))</div><div class='ctx'> </div><div class='del'>-void rb_global_variable(VALUE*);</div><div class='del'>-void rb_gc_register_mark_object(VALUE);</div><div class='del'>-void rb_gc_register_address(VALUE*);</div><div class='del'>-void rb_gc_unregister_address(VALUE*);</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This function is an alias  of rb_get_path() now.  The part that</div><div class='add'>+ *              did "no_checksafe" was deleted.  It  remains here because of no</div><div class='add'>+ *              harm.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_get_path_no_checksafe(VALUE);</div><div class='ctx'> </div><div class='del'>-ID rb_intern(const char*);</div><div class='del'>-ID rb_intern2(const char*, long);</div><div class='del'>-ID rb_intern_str(VALUE str);</div><div class='del'>-const char *rb_id2name(ID);</div><div class='del'>-ID rb_check_id(volatile VALUE *);</div><div class='del'>-ID rb_to_id(VALUE);</div><div class='del'>-VALUE rb_id2str(ID);</div><div class='del'>-VALUE rb_sym2str(VALUE);</div><div class='del'>-VALUE rb_to_symbol(VALUE name);</div><div class='del'>-VALUE rb_check_symbol(volatile VALUE *namep);</div><div class='add'>+/**</div><div class='add'>+ * @deprecated  This macro is an alias of #FilePathValue now.  The part that did</div><div class='add'>+ *              "String" was deleted.  It remains here because of no harm.</div><div class='add'>+ */</div><div class='add'>+#define FilePathStringValue(v) ((v) = rb_get_path(v))</div><div class='ctx'> </div><div class='del'>-#define RUBY_CONST_ID_CACHE(result, str)		\</div><div class='del'>-    {							\</div><div class='del'>-	static ID rb_intern_id_cache;			\</div><div class='del'>-	if (!rb_intern_id_cache)			\</div><div class='del'>-	    rb_intern_id_cache = rb_intern2((str), (long)strlen(str)); \</div><div class='del'>-	result rb_intern_id_cache;			\</div><div class='del'>-    }</div><div class='del'>-#define RUBY_CONST_ID(var, str) \</div><div class='del'>-    do RUBY_CONST_ID_CACHE((var) =, (str)) while (0)</div><div class='del'>-#define CONST_ID_CACHE(result, str) RUBY_CONST_ID_CACHE(result, str)</div><div class='del'>-#define CONST_ID(var, str) RUBY_CONST_ID(var, str)</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='ctx'> #if defined(HAVE_BUILTIN___BUILTIN_CONSTANT_P) &amp;&amp; defined(HAVE_STMT_AND_DECL_IN_EXPR)</div><div class='del'>-/* __builtin_constant_p and statement expression is available</div><div class='del'>- * since gcc-2.7.2.3 at least. */</div><div class='del'>-#define rb_intern(str) \</div><div class='del'>-    (__builtin_constant_p(str) ? \</div><div class='del'>-        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \</div><div class='del'>-        rb_intern(str))</div><div class='del'>-#define rb_intern_const(str) \</div><div class='del'>-    (__builtin_constant_p(str) ? \</div><div class='del'>-     __extension__ (rb_intern2((str), (long)strlen(str))) : \</div><div class='del'>-     (rb_intern)(str))</div><div class='del'>-</div><div class='ctx'> # define rb_varargs_argc_check_runtime(argc, vargc) \</div><div class='ctx'>     (((argc) &lt;= (vargc)) ? (argc) : \</div><div class='ctx'>      (rb_fatal("argc(%d) exceeds actual arguments(%d)", \</div><div class='del'>-	       argc, vargc), 0))</div><div class='add'>+               argc, vargc), 0))</div><div class='ctx'> # define rb_varargs_argc_valid_p(argc, vargc) \</div><div class='ctx'>     ((argc) == 0 ? (vargc) &lt;= 1 : /* [ruby-core:85266] [Bug #14425] */ \</div><div class='ctx'>      (argc) == (vargc))</div><div class='ctx'> # if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)</div><div class='del'>-#   if HAVE_ATTRIBUTE_ERRORFUNC</div><div class='add'>+#   ifdef HAVE_ATTRIBUTE_ERRORFUNC</div><div class='ctx'> ERRORFUNC((" argument length doesn't match"), int rb_varargs_bad_length(int,int));</div><div class='ctx'> #   else</div><div class='ctx'> #     define rb_varargs_bad_length(argc, vargc) \</div><div class='del'>-	((argc)/rb_varargs_argc_valid_p(argc, vargc))</div><div class='add'>+        ((argc)/rb_varargs_argc_valid_p(argc, vargc))</div><div class='ctx'> #   endif</div><div class='ctx'> #   define rb_varargs_argc_check(argc, vargc) \</div><div class='ctx'>     __builtin_choose_expr(__builtin_constant_p(argc), \</div><div class='del'>-	(rb_varargs_argc_valid_p(argc, vargc) ? (argc) : \</div><div class='del'>-	 rb_varargs_bad_length(argc, vargc)), \</div><div class='del'>-	rb_varargs_argc_check_runtime(argc, vargc))</div><div class='add'>+        (rb_varargs_argc_valid_p(argc, vargc) ? (argc) : \</div><div class='add'>+         rb_varargs_bad_length(argc, vargc)), \</div><div class='add'>+        rb_varargs_argc_check_runtime(argc, vargc))</div><div class='ctx'> # else</div><div class='ctx'> #   define rb_varargs_argc_check(argc, vargc) \</div><div class='del'>-	rb_varargs_argc_check_runtime(argc, vargc)</div><div class='add'>+        rb_varargs_argc_check_runtime(argc, vargc)</div><div class='ctx'> # endif</div><div class='del'>-</div><div class='del'>-#else</div><div class='del'>-#define rb_intern_const(str) rb_intern2((str), (long)strlen(str))</div><div class='ctx'> #endif</div><div class='add'>+/** @endcond */</div><div class='ctx'> </div><div class='del'>-const char *rb_class2name(VALUE);</div><div class='del'>-const char *rb_obj_classname(VALUE);</div><div class='del'>-</div><div class='del'>-void rb_p(VALUE);</div><div class='del'>-</div><div class='del'>-VALUE rb_eval_string(const char*);</div><div class='del'>-VALUE rb_eval_string_protect(const char*, int*);</div><div class='del'>-VALUE rb_eval_string_wrap(const char*, int*);</div><div class='del'>-VALUE rb_funcall(VALUE, ID, int, ...);</div><div class='del'>-VALUE rb_funcallv(VALUE, ID, int, const VALUE*);</div><div class='del'>-VALUE rb_funcallv_public(VALUE, ID, int, const VALUE*);</div><div class='del'>-#define rb_funcall2 rb_funcallv</div><div class='del'>-#define rb_funcall3 rb_funcallv_public</div><div class='del'>-VALUE rb_funcall_passing_block(VALUE, ID, int, const VALUE*);</div><div class='del'>-VALUE rb_funcall_with_block(VALUE, ID, int, const VALUE*, VALUE);</div><div class='del'>-int rb_scan_args(int, const VALUE*, const char*, ...);</div><div class='del'>-VALUE rb_call_super(int, const VALUE*);</div><div class='del'>-VALUE rb_current_receiver(void);</div><div class='del'>-int rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *);</div><div class='del'>-VALUE rb_extract_keywords(VALUE *orighash);</div><div class='del'>-</div><div class='del'>-/* rb_scan_args() format allows ':' for optional hash */</div><div class='del'>-#define HAVE_RB_SCAN_ARGS_OPTIONAL_HASH 1</div><div class='del'>-</div><div class='del'>-VALUE rb_gv_set(const char*, VALUE);</div><div class='del'>-VALUE rb_gv_get(const char*);</div><div class='del'>-VALUE rb_iv_get(VALUE, const char*);</div><div class='del'>-VALUE rb_iv_set(VALUE, const char*, VALUE);</div><div class='del'>-</div><div class='del'>-VALUE rb_equal(VALUE,VALUE);</div><div class='del'>-</div><div class='del'>-VALUE *rb_ruby_verbose_ptr(void);</div><div class='del'>-VALUE *rb_ruby_debug_ptr(void);</div><div class='del'>-#define ruby_verbose (*rb_ruby_verbose_ptr())</div><div class='del'>-#define ruby_debug   (*rb_ruby_debug_ptr())</div><div class='del'>-</div><div class='del'>-/* for rb_readwrite_sys_fail first argument */</div><div class='del'>-enum rb_io_wait_readwrite {RB_IO_WAIT_READABLE, RB_IO_WAIT_WRITABLE};</div><div class='del'>-#define RB_IO_WAIT_READABLE RB_IO_WAIT_READABLE</div><div class='del'>-#define RB_IO_WAIT_WRITABLE RB_IO_WAIT_WRITABLE</div><div class='del'>-</div><div class='del'>-PRINTF_ARGS(NORETURN(void rb_raise(VALUE, const char*, ...)), 2, 3);</div><div class='del'>-PRINTF_ARGS(NORETURN(void rb_fatal(const char*, ...)), 1, 2);</div><div class='del'>-COLDFUNC PRINTF_ARGS(NORETURN(void rb_bug(const char*, ...)), 1, 2);</div><div class='del'>-NORETURN(void rb_bug_errno(const char*, int));</div><div class='del'>-NORETURN(void rb_sys_fail(const char*));</div><div class='del'>-NORETURN(void rb_sys_fail_str(VALUE));</div><div class='del'>-NORETURN(void rb_mod_sys_fail(VALUE, const char*));</div><div class='del'>-NORETURN(void rb_mod_sys_fail_str(VALUE, VALUE));</div><div class='del'>-NORETURN(void rb_readwrite_sys_fail(enum rb_io_wait_readwrite, const char*));</div><div class='del'>-NORETURN(void rb_iter_break(void));</div><div class='del'>-NORETURN(void rb_iter_break_value(VALUE));</div><div class='del'>-NORETURN(void rb_exit(int));</div><div class='del'>-NORETURN(void rb_notimplement(void));</div><div class='del'>-VALUE rb_syserr_new(int, const char *);</div><div class='del'>-VALUE rb_syserr_new_str(int n, VALUE arg);</div><div class='del'>-NORETURN(void rb_syserr_fail(int, const char*));</div><div class='del'>-NORETURN(void rb_syserr_fail_str(int, VALUE));</div><div class='del'>-NORETURN(void rb_mod_syserr_fail(VALUE, int, const char*));</div><div class='del'>-NORETURN(void rb_mod_syserr_fail_str(VALUE, int, VALUE));</div><div class='del'>-NORETURN(void rb_readwrite_syserr_fail(enum rb_io_wait_readwrite, int, const char*));</div><div class='del'>-</div><div class='del'>-/* reports if `-W' specified */</div><div class='del'>-PRINTF_ARGS(void rb_warning(const char*, ...), 1, 2);</div><div class='del'>-PRINTF_ARGS(void rb_compile_warning(const char *, int, const char*, ...), 3, 4);</div><div class='del'>-PRINTF_ARGS(void rb_sys_warning(const char*, ...), 1, 2);</div><div class='del'>-/* reports always */</div><div class='del'>-COLDFUNC PRINTF_ARGS(void rb_warn(const char*, ...), 1, 2);</div><div class='del'>-PRINTF_ARGS(void rb_compile_warn(const char *, int, const char*, ...), 3, 4);</div><div class='del'>-</div><div class='del'>-#define RUBY_BLOCK_CALL_FUNC_TAKES_BLOCKARG 1</div><div class='del'>-#define RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg) \</div><div class='del'>-    VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg</div><div class='del'>-typedef VALUE rb_block_call_func(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg));</div><div class='del'>-</div><div class='del'>-#if defined RB_BLOCK_CALL_FUNC_STRICT &amp;&amp; RB_BLOCK_CALL_FUNC_STRICT</div><div class='del'>-typedef rb_block_call_func *rb_block_call_func_t;</div><div class='del'>-#else</div><div class='del'>-typedef VALUE (*rb_block_call_func_t)(ANYARGS);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-VALUE rb_each(VALUE);</div><div class='del'>-VALUE rb_yield(VALUE);</div><div class='del'>-VALUE rb_yield_values(int n, ...);</div><div class='del'>-VALUE rb_yield_values2(int n, const VALUE *argv);</div><div class='del'>-VALUE rb_yield_splat(VALUE);</div><div class='del'>-VALUE rb_yield_block(VALUE, VALUE, int, const VALUE *, VALUE); /* rb_block_call_func */</div><div class='del'>-int rb_block_given_p(void);</div><div class='del'>-void rb_need_block(void);</div><div class='del'>-VALUE rb_iterate(VALUE(*)(VALUE),VALUE,VALUE(*)(ANYARGS),VALUE);</div><div class='del'>-VALUE rb_block_call(VALUE,ID,int,const VALUE*,rb_block_call_func_t,VALUE);</div><div class='del'>-VALUE rb_rescue(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE);</div><div class='del'>-VALUE rb_rescue2(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE,...);</div><div class='del'>-VALUE rb_ensure(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE);</div><div class='del'>-VALUE rb_catch(const char*,VALUE(*)(ANYARGS),VALUE);</div><div class='del'>-VALUE rb_catch_obj(VALUE,VALUE(*)(ANYARGS),VALUE);</div><div class='del'>-NORETURN(void rb_throw(const char*,VALUE));</div><div class='del'>-NORETURN(void rb_throw_obj(VALUE,VALUE));</div><div class='del'>-</div><div class='del'>-VALUE rb_require(const char*);</div><div class='del'>-</div><div class='del'>-RUBY_EXTERN VALUE rb_mKernel;</div><div class='del'>-RUBY_EXTERN VALUE rb_mComparable;</div><div class='del'>-RUBY_EXTERN VALUE rb_mEnumerable;</div><div class='del'>-RUBY_EXTERN VALUE rb_mErrno;</div><div class='del'>-RUBY_EXTERN VALUE rb_mFileTest;</div><div class='del'>-RUBY_EXTERN VALUE rb_mGC;</div><div class='del'>-RUBY_EXTERN VALUE rb_mMath;</div><div class='del'>-RUBY_EXTERN VALUE rb_mProcess;</div><div class='del'>-RUBY_EXTERN VALUE rb_mWaitReadable;</div><div class='del'>-RUBY_EXTERN VALUE rb_mWaitWritable;</div><div class='del'>-</div><div class='del'>-RUBY_EXTERN VALUE rb_cBasicObject;</div><div class='del'>-RUBY_EXTERN VALUE rb_cObject;</div><div class='del'>-RUBY_EXTERN VALUE rb_cArray;</div><div class='del'>-#ifndef RUBY_INTEGER_UNIFICATION</div><div class='del'>-RUBY_EXTERN VALUE rb_cBignum;</div><div class='del'>-#endif</div><div class='del'>-RUBY_EXTERN VALUE rb_cBinding;</div><div class='del'>-RUBY_EXTERN VALUE rb_cClass;</div><div class='del'>-RUBY_EXTERN VALUE rb_cCont;</div><div class='del'>-RUBY_EXTERN VALUE rb_cData;</div><div class='del'>-RUBY_EXTERN VALUE rb_cDir;</div><div class='del'>-RUBY_EXTERN VALUE rb_cEncoding;</div><div class='del'>-RUBY_EXTERN VALUE rb_cEnumerator;</div><div class='del'>-RUBY_EXTERN VALUE rb_cFalseClass;</div><div class='del'>-RUBY_EXTERN VALUE rb_cFile;</div><div class='del'>-#ifndef RUBY_INTEGER_UNIFICATION</div><div class='del'>-RUBY_EXTERN VALUE rb_cFixnum;</div><div class='del'>-#endif</div><div class='del'>-RUBY_EXTERN VALUE rb_cComplex;</div><div class='del'>-RUBY_EXTERN VALUE rb_cFloat;</div><div class='del'>-RUBY_EXTERN VALUE rb_cHash;</div><div class='del'>-RUBY_EXTERN VALUE rb_cIO;</div><div class='del'>-RUBY_EXTERN VALUE rb_cInteger;</div><div class='del'>-RUBY_EXTERN VALUE rb_cMatch;</div><div class='del'>-RUBY_EXTERN VALUE rb_cMethod;</div><div class='del'>-RUBY_EXTERN VALUE rb_cModule;</div><div class='del'>-RUBY_EXTERN VALUE rb_cNameErrorMesg;</div><div class='del'>-RUBY_EXTERN VALUE rb_cNilClass;</div><div class='del'>-RUBY_EXTERN VALUE rb_cNumeric;</div><div class='del'>-RUBY_EXTERN VALUE rb_cProc;</div><div class='del'>-RUBY_EXTERN VALUE rb_cRandom;</div><div class='del'>-RUBY_EXTERN VALUE rb_cRange;</div><div class='del'>-RUBY_EXTERN VALUE rb_cRational;</div><div class='del'>-RUBY_EXTERN VALUE rb_cRegexp;</div><div class='del'>-RUBY_EXTERN VALUE rb_cStat;</div><div class='del'>-RUBY_EXTERN VALUE rb_cString;</div><div class='del'>-RUBY_EXTERN VALUE rb_cStruct;</div><div class='del'>-RUBY_EXTERN VALUE rb_cSymbol;</div><div class='del'>-RUBY_EXTERN VALUE rb_cThread;</div><div class='del'>-RUBY_EXTERN VALUE rb_cTime;</div><div class='del'>-RUBY_EXTERN VALUE rb_cTrueClass;</div><div class='del'>-RUBY_EXTERN VALUE rb_cUnboundMethod;</div><div class='del'>-</div><div class='del'>-RUBY_EXTERN VALUE rb_eException;</div><div class='del'>-RUBY_EXTERN VALUE rb_eStandardError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eSystemExit;</div><div class='del'>-RUBY_EXTERN VALUE rb_eInterrupt;</div><div class='del'>-RUBY_EXTERN VALUE rb_eSignal;</div><div class='del'>-RUBY_EXTERN VALUE rb_eFatal;</div><div class='del'>-RUBY_EXTERN VALUE rb_eArgError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eEOFError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eIndexError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eStopIteration;</div><div class='del'>-RUBY_EXTERN VALUE rb_eKeyError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eRangeError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eIOError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eRuntimeError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eFrozenError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eSecurityError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eSystemCallError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eThreadError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eTypeError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eZeroDivError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eNotImpError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eNoMemError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eNoMethodError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eFloatDomainError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eLocalJumpError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eSysStackError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eRegexpError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eEncodingError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eEncCompatError;</div><div class='del'>-</div><div class='del'>-RUBY_EXTERN VALUE rb_eScriptError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eNameError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eSyntaxError;</div><div class='del'>-RUBY_EXTERN VALUE rb_eLoadError;</div><div class='del'>-</div><div class='del'>-RUBY_EXTERN VALUE rb_eMathDomainError;</div><div class='del'>-</div><div class='del'>-RUBY_EXTERN VALUE rb_stdin, rb_stdout, rb_stderr;</div><div class='add'>+/**</div><div class='add'>+ * Queries the name of the passed class.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  klass  An instance of a class.</div><div class='add'>+ * @return     The name of `klass`.</div><div class='add'>+ * @note       Return value is managed by our GC.  Don't free.</div><div class='add'>+ */</div><div class='add'>+const char *rb_class2name(VALUE klass);</div><div class='ctx'> </div><div class='del'>-static inline VALUE</div><div class='del'>-rb_class_of(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    if (RB_IMMEDIATE_P(obj)) {</div><div class='del'>-	if (RB_FIXNUM_P(obj)) return rb_cInteger;</div><div class='del'>-	if (RB_FLONUM_P(obj)) return rb_cFloat;</div><div class='del'>-	if (obj == RUBY_Qtrue)  return rb_cTrueClass;</div><div class='del'>-	if (RB_STATIC_SYM_P(obj)) return rb_cSymbol;</div><div class='del'>-    }</div><div class='del'>-    else if (!RB_TEST(obj)) {</div><div class='del'>-	if (obj == RUBY_Qnil)   return rb_cNilClass;</div><div class='del'>-	if (obj == RUBY_Qfalse) return rb_cFalseClass;</div><div class='del'>-    }</div><div class='del'>-    return RBASIC(obj)-&gt;klass;</div><div class='del'>-}</div><div class='add'>+/**</div><div class='add'>+ * Queries the name of the class of the passed object.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  obj  Arbitrary ruby object.</div><div class='add'>+ * @return     The name of the class of `obj`.</div><div class='add'>+ * @note       Return value is managed by our GC.  Don't free.</div><div class='add'>+ */</div><div class='add'>+const char *rb_obj_classname(VALUE obj);</div><div class='ctx'> </div><div class='del'>-static inline int</div><div class='del'>-rb_type(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    if (RB_IMMEDIATE_P(obj)) {</div><div class='del'>-	if (RB_FIXNUM_P(obj)) return RUBY_T_FIXNUM;</div><div class='del'>-        if (RB_FLONUM_P(obj)) return RUBY_T_FLOAT;</div><div class='del'>-        if (obj == RUBY_Qtrue)  return RUBY_T_TRUE;</div><div class='del'>-	if (RB_STATIC_SYM_P(obj)) return RUBY_T_SYMBOL;</div><div class='del'>-	if (obj == RUBY_Qundef) return RUBY_T_UNDEF;</div><div class='del'>-    }</div><div class='del'>-    else if (!RB_TEST(obj)) {</div><div class='del'>-	if (obj == RUBY_Qnil)   return RUBY_T_NIL;</div><div class='del'>-	if (obj == RUBY_Qfalse) return RUBY_T_FALSE;</div><div class='del'>-    }</div><div class='del'>-    return RB_BUILTIN_TYPE(obj);</div><div class='del'>-}</div><div class='add'>+/**</div><div class='add'>+ * Inspects an object.   It first calls the argument's  `#inspect` method, then</div><div class='add'>+ * feeds its result string into ::rb_stdout.</div><div class='add'>+ *</div><div class='add'>+ * This is identical to Ruby level `Kernel#p`, except it takes only one object.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * Above description is in fact inaccurate.  This API interfaces with Ractors.</div><div class='add'>+ */</div><div class='add'>+void rb_p(VALUE obj);</div><div class='ctx'> </div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#define rb_type_p(obj, type) \</div><div class='del'>-    __extension__ (__builtin_constant_p(type) ? RB_TYPE_P((obj), (type)) : \</div><div class='del'>-		   rb_type(obj) == (type))</div><div class='del'>-#else</div><div class='del'>-#define rb_type_p(obj, type) (rb_type(obj) == (type))</div><div class='del'>-#endif</div><div class='add'>+/**</div><div class='add'>+ * This function is an optimised version  of calling `#==`.  It checks equality</div><div class='add'>+ * between two  objects by first  doing a fast  identity check using  using C's</div><div class='add'>+ * `==` (same  as `BasicObject#equal?`).  If  that check fails, it  calls `#==`</div><div class='add'>+ * dynamically.   This optimisation  actually affects  semantics, because  when</div><div class='add'>+ * `#==`  returns false  for the  same object  obj, `rb_equal(obj,  obj)` would</div><div class='add'>+ * still  return true.   This happens  for `Float::NAN`,  where `Float::NAN  ==</div><div class='add'>+ * Float::NAN` is `false`, but `rb_equal(Float::NAN, Float::NAN)` is `true`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  lhs          Comparison LHS.</div><div class='add'>+ * @param[in]  rhs          Comparison RHS.</div><div class='add'>+ * @retval     RUBY_Qtrue   They are the same.</div><div class='add'>+ * @retval     RUBY_Qfalse  They are different.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_equal(VALUE lhs, VALUE rhs);</div><div class='ctx'> </div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#define rb_special_const_p(obj) \</div><div class='del'>-    __extension__ ({ \</div><div class='del'>-	VALUE special_const_obj = (obj); \</div><div class='del'>-	(int)(RB_SPECIAL_CONST_P(special_const_obj) ? RUBY_Qtrue : RUBY_Qfalse); \</div><div class='del'>-    })</div><div class='del'>-#else</div><div class='del'>-static inline int</div><div class='del'>-rb_special_const_p(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    if (RB_SPECIAL_CONST_P(obj)) return (int)RUBY_Qtrue;</div><div class='del'>-    return (int)RUBY_Qfalse;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='add'>+/**</div><div class='add'>+ * Identical  to rb_require_string(),  except it  takes C's  string instead  of</div><div class='add'>+ * Ruby's.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  feature           Name of a feature, e.g. `"json"`.</div><div class='add'>+ * @exception  rb_eLoadError     No such feature.</div><div class='add'>+ * @exception  rb_eRuntimeError  `$"` is frozen; unable to push.</div><div class='add'>+ * @retval     RUBY_Qtrue        The feature is loaded for the first time.</div><div class='add'>+ * @retval     RUBY_Qfalse       The feature has already been loaded.</div><div class='add'>+ * @post       `$"` is updated.</div><div class='add'>+ */</div><div class='add'>+VALUE rb_require(const char *feature);</div><div class='ctx'> </div><div class='ctx'> #include "ruby/intern.h"</div><div class='ctx'> </div><div class='del'>-static inline void</div><div class='del'>-rb_clone_setup(VALUE clone, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    rb_obj_setup(clone, rb_singleton_class_clone(obj),</div><div class='del'>-                 RBASIC(obj)-&gt;flags &amp; ~(FL_PROMOTED0|FL_PROMOTED1|FL_FINALIZE));</div><div class='del'>-    rb_singleton_class_attached(RBASIC_CLASS(clone), clone);</div><div class='del'>-    if (RB_FL_TEST(obj, RUBY_FL_EXIVAR)) rb_copy_generic_ivar(clone, obj);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline void</div><div class='del'>-rb_dup_setup(VALUE dup, VALUE obj)</div><div class='del'>-{</div><div class='del'>-    rb_obj_setup(dup, rb_obj_class(obj), RB_FL_TEST_RAW(obj, RUBY_FL_DUPPED));</div><div class='del'>-    if (RB_FL_TEST(obj, RUBY_FL_EXIVAR)) rb_copy_generic_ivar(dup, obj);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline long</div><div class='del'>-rb_array_len(VALUE a)</div><div class='del'>-{</div><div class='del'>-    return (RBASIC(a)-&gt;flags &amp; RARRAY_EMBED_FLAG) ?</div><div class='del'>-	RARRAY_EMBED_LEN(a) : RARRAY(a)-&gt;as.heap.len;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if defined(__fcc__) || defined(__fcc_version) || \</div><div class='del'>-    defined(__FCC__) || defined(__FCC_VERSION)</div><div class='del'>-/* workaround for old version of Fujitsu C Compiler (fcc) */</div><div class='del'>-# define FIX_CONST_VALUE_PTR(x) ((const VALUE *)(x))</div><div class='del'>-#else</div><div class='del'>-# define FIX_CONST_VALUE_PTR(x) (x)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* internal function. do not use this function */</div><div class='del'>-static inline const VALUE *</div><div class='del'>-rb_array_const_ptr_transient(VALUE a)</div><div class='del'>-{</div><div class='del'>-    return FIX_CONST_VALUE_PTR((RBASIC(a)-&gt;flags &amp; RARRAY_EMBED_FLAG) ?</div><div class='del'>-	RARRAY(a)-&gt;as.ary : RARRAY(a)-&gt;as.heap.ptr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* internal function. do not use this function */</div><div class='del'>-static inline const VALUE *</div><div class='del'>-rb_array_const_ptr(VALUE a)</div><div class='del'>-{</div><div class='del'>-#if USE_TRANSIENT_HEAP</div><div class='del'>-    void rb_ary_detransient(VALUE a);</div><div class='del'>-</div><div class='del'>-    if (RARRAY_TRANSIENT_P(a)) {</div><div class='del'>-        rb_ary_detransient(a);</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-    return rb_array_const_ptr_transient(a);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* internal function. do not use this function */</div><div class='del'>-static inline VALUE *</div><div class='del'>-rb_array_ptr_use_start(VALUE a, int allow_transient)</div><div class='del'>-{</div><div class='del'>-    VALUE *rb_ary_ptr_use_start(VALUE ary);</div><div class='del'>-</div><div class='del'>-#if USE_TRANSIENT_HEAP</div><div class='del'>-    if (!allow_transient) {</div><div class='del'>-        if (RARRAY_TRANSIENT_P(a)) {</div><div class='del'>-            void rb_ary_detransient(VALUE a);</div><div class='del'>-            rb_ary_detransient(a);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-    return rb_ary_ptr_use_start(a);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* internal function. do not use this function */</div><div class='del'>-static inline void</div><div class='del'>-rb_array_ptr_use_end(VALUE a, int allow_transient)</div><div class='del'>-{</div><div class='del'>-    void rb_ary_ptr_use_end(VALUE a);</div><div class='del'>-    rb_ary_ptr_use_end(a);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if defined(EXTLIB) &amp;&amp; defined(USE_DLN_A_OUT)</div><div class='del'>-/* hook for external modules */</div><div class='del'>-static char *dln_libs_to_be_linked[] = { EXTLIB, 0 };</div><div class='del'>-#endif</div><div class='del'>-</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='ctx'> #define RUBY_VM 1 /* YARV */</div><div class='del'>-#define HAVE_NATIVETHREAD</div><div class='del'>-int ruby_native_thread_p(void);</div><div class='del'>-</div><div class='del'>-/* traditional set_trace_func events */</div><div class='del'>-#define RUBY_EVENT_NONE      0x0000</div><div class='del'>-#define RUBY_EVENT_LINE      0x0001</div><div class='del'>-#define RUBY_EVENT_CLASS     0x0002</div><div class='del'>-#define RUBY_EVENT_END       0x0004</div><div class='del'>-#define RUBY_EVENT_CALL      0x0008</div><div class='del'>-#define RUBY_EVENT_RETURN    0x0010</div><div class='del'>-#define RUBY_EVENT_C_CALL    0x0020</div><div class='del'>-#define RUBY_EVENT_C_RETURN  0x0040</div><div class='del'>-#define RUBY_EVENT_RAISE     0x0080</div><div class='del'>-#define RUBY_EVENT_ALL       0x00ff</div><div class='del'>-</div><div class='del'>-/* for TracePoint extended events */</div><div class='del'>-#define RUBY_EVENT_B_CALL            0x0100</div><div class='del'>-#define RUBY_EVENT_B_RETURN          0x0200</div><div class='del'>-#define RUBY_EVENT_THREAD_BEGIN      0x0400</div><div class='del'>-#define RUBY_EVENT_THREAD_END        0x0800</div><div class='del'>-#define RUBY_EVENT_FIBER_SWITCH      0x1000</div><div class='del'>-#define RUBY_EVENT_SCRIPT_COMPILED   0x2000</div><div class='del'>-#define RUBY_EVENT_TRACEPOINT_ALL    0xffff</div><div class='del'>-</div><div class='del'>-/* special events */</div><div class='del'>-#define RUBY_EVENT_RESERVED_FOR_INTERNAL_USE 0x030000</div><div class='del'>-</div><div class='del'>-/* internal events */</div><div class='del'>-#define RUBY_INTERNAL_EVENT_SWITCH          0x040000</div><div class='del'>-#define RUBY_EVENT_SWITCH                   0x040000 /* obsolete name. this macro is for compatibility */</div><div class='del'>-                                         /* 0x080000 */</div><div class='del'>-#define RUBY_INTERNAL_EVENT_NEWOBJ          0x100000</div><div class='del'>-#define RUBY_INTERNAL_EVENT_FREEOBJ         0x200000</div><div class='del'>-#define RUBY_INTERNAL_EVENT_GC_START        0x400000</div><div class='del'>-#define RUBY_INTERNAL_EVENT_GC_END_MARK     0x800000</div><div class='del'>-#define RUBY_INTERNAL_EVENT_GC_END_SWEEP   0x1000000</div><div class='del'>-#define RUBY_INTERNAL_EVENT_GC_ENTER       0x2000000</div><div class='del'>-#define RUBY_INTERNAL_EVENT_GC_EXIT        0x4000000</div><div class='del'>-#define RUBY_INTERNAL_EVENT_OBJSPACE_MASK  0x7f00000</div><div class='del'>-#define RUBY_INTERNAL_EVENT_MASK          0xffff0000</div><div class='ctx'> </div><div class='del'>-typedef uint32_t rb_event_flag_t;</div><div class='del'>-typedef void (*rb_event_hook_func_t)(rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass);</div><div class='del'>-</div><div class='del'>-#define RB_EVENT_HOOKS_HAVE_CALLBACK_DATA 1</div><div class='del'>-void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data);</div><div class='del'>-int rb_remove_event_hook(rb_event_hook_func_t func);</div><div class='del'>-</div><div class='del'>-/* locale insensitive functions */</div><div class='del'>-</div><div class='del'>-static inline int rb_isascii(int c){ return '\0' &lt;= c &amp;&amp; c &lt;= '\x7f'; }</div><div class='del'>-static inline int rb_isupper(int c){ return 'A' &lt;= c &amp;&amp; c &lt;= 'Z'; }</div><div class='del'>-static inline int rb_islower(int c){ return 'a' &lt;= c &amp;&amp; c &lt;= 'z'; }</div><div class='del'>-static inline int rb_isalpha(int c){ return rb_isupper(c) || rb_islower(c); }</div><div class='del'>-static inline int rb_isdigit(int c){ return '0' &lt;= c &amp;&amp; c &lt;= '9'; }</div><div class='del'>-static inline int rb_isalnum(int c){ return rb_isalpha(c) || rb_isdigit(c); }</div><div class='del'>-static inline int rb_isxdigit(int c){ return rb_isdigit(c) || ('A' &lt;= c &amp;&amp; c &lt;= 'F') || ('a' &lt;= c &amp;&amp; c &lt;= 'f'); }</div><div class='del'>-static inline int rb_isblank(int c){ return c == ' ' || c == '\t'; }</div><div class='del'>-static inline int rb_isspace(int c){ return c == ' ' || ('\t' &lt;= c &amp;&amp; c &lt;= '\r'); }</div><div class='del'>-static inline int rb_iscntrl(int c){ return ('\0' &lt;= c &amp;&amp; c &lt; ' ') || c == '\x7f'; }</div><div class='del'>-static inline int rb_isprint(int c){ return ' ' &lt;= c &amp;&amp; c &lt;= '\x7e'; }</div><div class='del'>-static inline int rb_ispunct(int c){ return !rb_isalnum(c); }</div><div class='del'>-static inline int rb_isgraph(int c){ return '!' &lt;= c &amp;&amp; c &lt;= '\x7e'; }</div><div class='del'>-static inline int rb_tolower(int c) { return rb_isupper(c) ? (c|0x20) : c; }</div><div class='del'>-static inline int rb_toupper(int c) { return rb_islower(c) ? (c&amp;0x5f) : c; }</div><div class='del'>-</div><div class='del'>-#ifndef ISPRINT</div><div class='del'>-#define ISASCII(c) rb_isascii(c)</div><div class='del'>-#define ISPRINT(c) rb_isprint(c)</div><div class='del'>-#define ISGRAPH(c) rb_isgraph(c)</div><div class='del'>-#define ISSPACE(c) rb_isspace(c)</div><div class='del'>-#define ISUPPER(c) rb_isupper(c)</div><div class='del'>-#define ISLOWER(c) rb_islower(c)</div><div class='del'>-#define ISALNUM(c) rb_isalnum(c)</div><div class='del'>-#define ISALPHA(c) rb_isalpha(c)</div><div class='del'>-#define ISDIGIT(c) rb_isdigit(c)</div><div class='del'>-#define ISXDIGIT(c) rb_isxdigit(c)</div><div class='del'>-#endif</div><div class='del'>-#define TOUPPER(c) rb_toupper(c)</div><div class='del'>-#define TOLOWER(c) rb_tolower(c)</div><div class='del'>-</div><div class='del'>-int st_locale_insensitive_strcasecmp(const char *s1, const char *s2);</div><div class='del'>-int st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n);</div><div class='del'>-#define STRCASECMP(s1, s2) (st_locale_insensitive_strcasecmp((s1), (s2)))</div><div class='del'>-#define STRNCASECMP(s1, s2, n) (st_locale_insensitive_strncasecmp((s1), (s2), (n)))</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='add'>+#define HAVE_NATIVETHREAD</div><div class='ctx'> </div><div class='del'>-unsigned long ruby_strtoul(const char *str, char **endptr, int base);</div><div class='del'>-#define STRTOUL(str, endptr, base) (ruby_strtoul((str), (endptr), (base)))</div><div class='add'>+/**</div><div class='add'>+ * Queries  if  the thread  which  calls  this  function  is a  ruby's  thread.</div><div class='add'>+ * "Ruby's" in  this context  is a thread  created using one  of our  APIs like</div><div class='add'>+ * rb_thread_create().   There  are  distinctions   between  ruby's  and  other</div><div class='add'>+ * threads.  For instance calling ruby methods  are allowed only from inside of</div><div class='add'>+ * a ruby's thread.</div><div class='add'>+ *</div><div class='add'>+ * @retval  1  The current thread is a Ruby's thread.</div><div class='add'>+ * @retval  0  The current thread is a random thread from outside of Ruby.</div><div class='add'>+ */</div><div class='add'>+int ruby_native_thread_p(void);</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * This macro is for internal use.  Must be a mistake to place here.</div><div class='add'>+ */</div><div class='ctx'> #define InitVM(ext) {void InitVM_##ext(void);InitVM_##ext();}</div><div class='ctx'> </div><div class='del'>-PRINTF_ARGS(int ruby_snprintf(char *str, size_t n, char const *fmt, ...), 3, 4);</div><div class='del'>-int ruby_vsnprintf(char *str, size_t n, char const *fmt, va_list ap);</div><div class='del'>-</div><div class='del'>-#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) &amp;&amp; defined(HAVE_VA_ARGS_MACRO) &amp;&amp; defined(__OPTIMIZE__)</div><div class='del'>-# define rb_scan_args(argc,argvp,fmt,...) \</div><div class='del'>-    __builtin_choose_expr(__builtin_constant_p(fmt), \</div><div class='del'>-        rb_scan_args0(argc,argvp,fmt,\</div><div class='del'>-		      (sizeof((VALUE*[]){__VA_ARGS__})/sizeof(VALUE*)), \</div><div class='del'>-		      ((VALUE*[]){__VA_ARGS__})), \</div><div class='del'>-        rb_scan_args(argc,argvp,fmt,__VA_ARGS__))</div><div class='del'>-# if HAVE_ATTRIBUTE_ERRORFUNC</div><div class='del'>-ERRORFUNC(("bad scan arg format"), int rb_scan_args_bad_format(const char*));</div><div class='del'>-ERRORFUNC(("variable argument length doesn't match"), int rb_scan_args_length_mismatch(const char*,int));</div><div class='del'>-# else</div><div class='del'>-#   define rb_scan_args_bad_format(fmt) 0</div><div class='del'>-#   define rb_scan_args_length_mismatch(fmt, varc) 0</div><div class='del'>-# endif</div><div class='del'>-</div><div class='del'>-# define rb_scan_args_isdigit(c) ((unsigned char)((c)-'0')&lt;10)</div><div class='del'>-</div><div class='del'>-#if !defined(__has_attribute)</div><div class='del'>-#define __has_attribute(x) 0</div><div class='del'>-#endif</div><div class='del'>-# if __has_attribute(diagnose_if)</div><div class='del'>-#  define rb_scan_args_count_end(fmt, ofs, varc, vari) \</div><div class='del'>-     (fmt[ofs] ? rb_scan_args_bad_format(fmt) : (vari))</div><div class='del'>-# else</div><div class='del'>-#  define rb_scan_args_count_end(fmt, ofs, varc, vari) \</div><div class='del'>-     ((vari)/(!fmt[ofs] || rb_scan_args_bad_format(fmt)))</div><div class='del'>-# endif</div><div class='del'>-</div><div class='del'>-# define rb_scan_args_count_block(fmt, ofs, varc, vari) \</div><div class='del'>-    (fmt[ofs]!='&amp;' ? \</div><div class='del'>-     rb_scan_args_count_end(fmt, ofs, varc, vari) : \</div><div class='del'>-     rb_scan_args_count_end(fmt, ofs+1, varc, vari+1))</div><div class='del'>-</div><div class='del'>-# define rb_scan_args_count_hash(fmt, ofs, varc, vari) \</div><div class='del'>-    (fmt[ofs]!=':' ? \</div><div class='del'>-     rb_scan_args_count_block(fmt, ofs, varc, vari) : \</div><div class='del'>-     rb_scan_args_count_block(fmt, ofs+1, varc, vari+1))</div><div class='del'>-</div><div class='del'>-# define rb_scan_args_count_trail(fmt, ofs, varc, vari) \</div><div class='del'>-    (!rb_scan_args_isdigit(fmt[ofs]) ? \</div><div class='del'>-     rb_scan_args_count_hash(fmt, ofs, varc, vari) : \</div><div class='del'>-     rb_scan_args_count_hash(fmt, ofs+1, varc, vari+(fmt[ofs]-'0')))</div><div class='del'>-</div><div class='del'>-# define rb_scan_args_count_var(fmt, ofs, varc, vari) \</div><div class='del'>-    (fmt[ofs]!='*' ? \</div><div class='del'>-     rb_scan_args_count_trail(fmt, ofs, varc, vari) : \</div><div class='del'>-     rb_scan_args_count_trail(fmt, ofs+1, varc, vari+1))</div><div class='del'>-</div><div class='del'>-# define rb_scan_args_count_opt(fmt, ofs, varc, vari) \</div><div class='del'>-    (!rb_scan_args_isdigit(fmt[1]) ? \</div><div class='del'>-     rb_scan_args_count_var(fmt, ofs, varc, vari) : \</div><div class='del'>-     rb_scan_args_count_var(fmt, ofs+1, varc, vari+fmt[ofs]-'0'))</div><div class='del'>-</div><div class='del'>-# define rb_scan_args_count(fmt, varc) \</div><div class='del'>-    (!rb_scan_args_isdigit(fmt[0]) ? \</div><div class='del'>-      rb_scan_args_count_var(fmt, 0, varc, 0) : \</div><div class='del'>-      rb_scan_args_count_opt(fmt, 1, varc, fmt[0]-'0'))</div><div class='del'>-</div><div class='del'>-# define rb_scan_args_verify_count(fmt, varc) \</div><div class='del'>-    ((varc)/(rb_scan_args_count(fmt, varc) == (varc) || \</div><div class='del'>-     rb_scan_args_length_mismatch(fmt, varc)))</div><div class='del'>-</div><div class='del'>-# if defined(__has_attribute) &amp;&amp; __has_attribute(diagnose_if)</div><div class='del'>-#  define rb_scan_args_verify(fmt, varc) (void)0</div><div class='del'>-# elif defined(__GNUC__)</div><div class='del'>-# define rb_scan_args_verify(fmt, varc) \</div><div class='del'>-    (void)__extension__ ({ \</div><div class='del'>-	int verify; \</div><div class='del'>-	_Pragma("GCC diagnostic push"); \</div><div class='del'>-	_Pragma("GCC diagnostic ignored \"-Warray-bounds\""); \</div><div class='del'>-	verify = rb_scan_args_verify_count(fmt, varc); \</div><div class='del'>-	_Pragma("GCC diagnostic pop"); \</div><div class='del'>-	verify; \</div><div class='del'>-    })</div><div class='del'>-# else</div><div class='del'>-# define rb_scan_args_verify(fmt, varc) \</div><div class='del'>-    (void)rb_scan_args_verify_count(fmt, varc)</div><div class='del'>-# endif</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_lead_p(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_lead_p(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    return rb_scan_args_isdigit(fmt[0]);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_n_lead(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_n_lead(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    return (rb_scan_args_lead_p(fmt) ? fmt[0]-'0' : 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_opt_p(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_opt_p(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    return (rb_scan_args_lead_p(fmt) &amp;&amp; rb_scan_args_isdigit(fmt[1]));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_n_opt(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_n_opt(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    return (rb_scan_args_opt_p(fmt) ? fmt[1]-'0' : 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_var_idx(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_var_idx(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    return (!rb_scan_args_lead_p(fmt) ? 0 : !rb_scan_args_isdigit(fmt[1]) ? 1 : 2);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_f_var(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_f_var(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    return (fmt[rb_scan_args_var_idx(fmt)]=='*');</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_trail_idx(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_trail_idx(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    const int idx = rb_scan_args_var_idx(fmt);</div><div class='del'>-    return idx+(fmt[idx]=='*');</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_n_trail(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_n_trail(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    const int idx = rb_scan_args_trail_idx(fmt);</div><div class='del'>-    return (rb_scan_args_isdigit(fmt[idx]) ? fmt[idx]-'0' : 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_hash_idx(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_hash_idx(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    const int idx = rb_scan_args_trail_idx(fmt);</div><div class='del'>-    return idx+rb_scan_args_isdigit(fmt[idx]);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_f_hash(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_f_hash(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    return (fmt[rb_scan_args_hash_idx(fmt)]==':');</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_block_idx(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_block_idx(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    const int idx = rb_scan_args_hash_idx(fmt);</div><div class='del'>-    return idx+(fmt[idx]==':');</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_f_block(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_f_block(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    return (fmt[rb_scan_args_block_idx(fmt)]=='&amp;');</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-# if 0</div><div class='del'>-ALWAYS_INLINE(static int rb_scan_args_end_idx(const char *fmt));</div><div class='del'>-static inline int</div><div class='del'>-rb_scan_args_end_idx(const char *fmt)</div><div class='del'>-{</div><div class='del'>-    const int idx = rb_scan_args_block_idx(fmt);</div><div class='del'>-    return idx+(fmt[idx]=='&amp;');</div><div class='del'>-}</div><div class='del'>-# endif</div><div class='del'>-</div><div class='del'>-/* NOTE: Use `char *fmt` instead of `const char *fmt` because of clang's bug*/</div><div class='del'>-/* https://bugs.llvm.org/show_bug.cgi?id=38095 */</div><div class='del'>-# define rb_scan_args0(argc, argv, fmt, varc, vars) \</div><div class='del'>-    rb_scan_args_set(argc, argv, \</div><div class='del'>-		     rb_scan_args_n_lead(fmt), \</div><div class='del'>-		     rb_scan_args_n_opt(fmt), \</div><div class='del'>-		     rb_scan_args_n_trail(fmt), \</div><div class='del'>-		     rb_scan_args_f_var(fmt), \</div><div class='del'>-		     rb_scan_args_f_hash(fmt), \</div><div class='del'>-		     rb_scan_args_f_block(fmt), \</div><div class='del'>-		     (rb_scan_args_verify(fmt, varc), vars), (char *)fmt, varc)</div><div class='del'>-ALWAYS_INLINE(static int</div><div class='del'>-rb_scan_args_set(int argc, const VALUE *argv,</div><div class='del'>-		 int n_lead, int n_opt, int n_trail,</div><div class='del'>-		 int f_var, int f_hash, int f_block,</div><div class='del'>-		 VALUE *vars[], char *fmt, int varc));</div><div class='del'>-</div><div class='del'>-inline int</div><div class='del'>-rb_scan_args_set(int argc, const VALUE *argv,</div><div class='del'>-		 int n_lead, int n_opt, int n_trail,</div><div class='del'>-		 int f_var, int f_hash, int f_block,</div><div class='del'>-		 VALUE *vars[], RB_UNUSED_VAR(char *fmt), RB_UNUSED_VAR(int varc))</div><div class='del'>-# if defined(__has_attribute) &amp;&amp; __has_attribute(diagnose_if)</div><div class='del'>-    __attribute__((diagnose_if(rb_scan_args_count(fmt,varc)==0,"bad scan arg format","error")))</div><div class='del'>-    __attribute__((diagnose_if(rb_scan_args_count(fmt,varc)!=varc,"variable argument length doesn't match","error")))</div><div class='del'>-# endif</div><div class='del'>-{</div><div class='del'>-    int i, argi = 0, vari = 0, last_idx = -1;</div><div class='del'>-    VALUE *var, hash = Qnil, last_hash = 0;</div><div class='del'>-    const int n_mand = n_lead + n_trail;</div><div class='del'>-</div><div class='del'>-    /* capture an option hash - phase 1: pop */</div><div class='del'>-    if (f_hash &amp;&amp; n_mand &lt; argc) {</div><div class='del'>-	VALUE last = argv[argc - 1];</div><div class='del'>-</div><div class='del'>-	if (RB_NIL_P(last)) {</div><div class='del'>-	    /* nil is taken as an empty option hash only if it is not</div><div class='del'>-	       ambiguous; i.e. '*' is not specified and arguments are</div><div class='del'>-	       given more than sufficient */</div><div class='del'>-	    if (!f_var &amp;&amp; n_mand + n_opt &lt; argc)</div><div class='del'>-		argc--;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    hash = rb_check_hash_type(last);</div><div class='del'>-	    if (!RB_NIL_P(hash)) {</div><div class='del'>-		VALUE opts = rb_extract_keywords(&amp;hash);</div><div class='del'>-		if (!(last_hash = hash)) argc--;</div><div class='del'>-		else last_idx = argc - 1;</div><div class='del'>-		hash = opts ? opts : Qnil;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    rb_check_arity(argc, n_mand, f_var ? UNLIMITED_ARGUMENTS : n_mand + n_opt);</div><div class='del'>-</div><div class='del'>-    /* capture leading mandatory arguments */</div><div class='del'>-    for (i = n_lead; i-- &gt; 0; ) {</div><div class='del'>-	var = vars[vari++];</div><div class='del'>-	if (var) *var = (argi == last_idx) ? last_hash : argv[argi];</div><div class='del'>-	argi++;</div><div class='del'>-    }</div><div class='del'>-    /* capture optional arguments */</div><div class='del'>-    for (i = n_opt; i-- &gt; 0; ) {</div><div class='del'>-	var = vars[vari++];</div><div class='del'>-	if (argi &lt; argc - n_trail) {</div><div class='del'>-	    if (var) *var = (argi == last_idx) ? last_hash : argv[argi];</div><div class='del'>-	    argi++;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (var) *var = Qnil;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    /* capture variable length arguments */</div><div class='del'>-    if (f_var) {</div><div class='del'>-	int n_var = argc - argi - n_trail;</div><div class='del'>-</div><div class='del'>-	var = vars[vari++];</div><div class='del'>-	if (0 &lt; n_var) {</div><div class='del'>-	    if (var) {</div><div class='del'>-		int f_last = (last_idx + 1 == argc - n_trail);</div><div class='del'>-		*var = rb_ary_new4(n_var-f_last, &amp;argv[argi]);</div><div class='del'>-		if (f_last) rb_ary_push(*var, last_hash);</div><div class='del'>-	    }</div><div class='del'>-	    argi += n_var;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (var) *var = rb_ary_new();</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    /* capture trailing mandatory arguments */</div><div class='del'>-    for (i = n_trail; i-- &gt; 0; ) {</div><div class='del'>-	var = vars[vari++];</div><div class='del'>-	if (var) *var = (argi == last_idx) ? last_hash : argv[argi];</div><div class='del'>-	argi++;</div><div class='del'>-    }</div><div class='del'>-    /* capture an option hash - phase 2: assignment */</div><div class='del'>-    if (f_hash) {</div><div class='del'>-	var = vars[vari++];</div><div class='del'>-	if (var) *var = hash;</div><div class='del'>-    }</div><div class='del'>-    /* capture iterator block */</div><div class='del'>-    if (f_block) {</div><div class='del'>-	var = vars[vari++];</div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    *var = rb_block_proc();</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    *var = Qnil;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='add'>+RBIMPL_ATTR_NONNULL((3))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 4)</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive version of `snprintf(3)`.  It can also be seen as</div><div class='add'>+ * a routine  identical to rb_sprintf(),  except it  writes back to  the passed</div><div class='add'>+ * buffer instead of allocating a new Ruby object.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str  Return buffer</div><div class='add'>+ * @param[in]   n    Number of bytes of `str`.</div><div class='add'>+ * @param[in]   fmt  A `printf`-like format specifier.</div><div class='add'>+ * @param[in]   ...  Variadic number of contents to format.</div><div class='add'>+ * @return      Number of bytes  that would have been written to  `str`, if `n`</div><div class='add'>+ *              was large enough.  Comparing this  to `n` can give you insights</div><div class='add'>+ *              that the buffer is too small  or too big.  Especially passing 0</div><div class='add'>+ *              to `n`  gives you the exact  number of bytes necessary  to hold</div><div class='add'>+ *              the result string without writing anything to anywhere.</div><div class='add'>+ * @post        `str` holds  up to `n-1`  bytes of formatted contents  (and the</div><div class='add'>+ *              terminating NUL character.)</div><div class='add'>+ */</div><div class='add'>+int ruby_snprintf(char *str, size_t n, char const *fmt, ...);</div><div class='ctx'> </div><div class='del'>-    return argc;</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='add'>+RBIMPL_ATTR_NONNULL((3))</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 0)</div><div class='add'>+/**</div><div class='add'>+ * Identical to ruby_snprintf(),  except it takes a `va_list`.  It  can also be</div><div class='add'>+ * seen as a  routine identical to rb_vsprintf(), except it  writes back to the</div><div class='add'>+ * passed buffer instead of allocating a new Ruby object.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  str  Return buffer</div><div class='add'>+ * @param[in]   n    Number of bytes of `str`.</div><div class='add'>+ * @param[in]   fmt  A `printf`-like format specifier.</div><div class='add'>+ * @param[in]   ap   Contents  to format.</div><div class='add'>+ * @return      Number of bytes  that would have been written to  `str`, if `n`</div><div class='add'>+ *              was large enough.  Comparing this  to `n` can give you insights</div><div class='add'>+ *              that the buffer is too small  or too big.  Especially passing 0</div><div class='add'>+ *              to `n`  gives you the exact  number of bytes necessary  to hold</div><div class='add'>+ *              the result string without writing anything to anywhere.</div><div class='add'>+ * @post        `str` holds  up to `n-1`  bytes of formatted contents  (and the</div><div class='add'>+ *              terminating NUL character.)</div><div class='add'>+ */</div><div class='add'>+int ruby_vsnprintf(char *str, size_t n, char const *fmt, va_list ap);</div><div class='ctx'> </div><div class='del'>-#if defined(__GNUC__) &amp;&amp; defined(HAVE_VA_ARGS_MACRO) &amp;&amp; defined(__OPTIMIZE__)</div><div class='add'>+/** @cond INTERNAL_MACRO */</div><div class='add'>+#if RBIMPL_HAS_WARNING("-Wgnu-zero-variadic-macro-arguments")</div><div class='add'>+# /* Skip it; clang -pedantic doesn't like the following */</div><div class='add'>+#elif defined(__GNUC__) &amp;&amp; defined(HAVE_VA_ARGS_MACRO) &amp;&amp; defined(__OPTIMIZE__)</div><div class='ctx'> # define rb_yield_values(argc, ...) \</div><div class='ctx'> __extension__({ \</div><div class='del'>-	const int rb_yield_values_argc = (argc); \</div><div class='del'>-	const VALUE rb_yield_values_args[] = {__VA_ARGS__}; \</div><div class='del'>-	const int rb_yield_values_nargs = \</div><div class='del'>-	    (int)(sizeof(rb_yield_values_args) / sizeof(VALUE)); \</div><div class='del'>-	rb_yield_values2( \</div><div class='del'>-	    rb_varargs_argc_check(rb_yield_values_argc, rb_yield_values_nargs), \</div><div class='del'>-	    rb_yield_values_nargs ? rb_yield_values_args : NULL); \</div><div class='add'>+        const int rb_yield_values_argc = (argc); \</div><div class='add'>+        const VALUE rb_yield_values_args[] = {__VA_ARGS__}; \</div><div class='add'>+        const int rb_yield_values_nargs = \</div><div class='add'>+            (int)(sizeof(rb_yield_values_args) / sizeof(VALUE)); \</div><div class='add'>+        rb_yield_values2( \</div><div class='add'>+            rb_varargs_argc_check(rb_yield_values_argc, rb_yield_values_nargs), \</div><div class='add'>+            rb_yield_values_nargs ? rb_yield_values_args : NULL); \</div><div class='ctx'>     })</div><div class='ctx'> </div><div class='ctx'> # define rb_funcall(recv, mid, argc, ...) \</div><div class='ctx'> __extension__({ \</div><div class='del'>-	const int rb_funcall_argc = (argc); \</div><div class='del'>-	const VALUE rb_funcall_args[] = {__VA_ARGS__}; \</div><div class='del'>-	const int rb_funcall_nargs = \</div><div class='del'>-	    (int)(sizeof(rb_funcall_args) / sizeof(VALUE)); \</div><div class='del'>-	rb_funcallv(recv, mid, \</div><div class='del'>-	    rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \</div><div class='del'>-	    rb_funcall_nargs ? rb_funcall_args : NULL); \</div><div class='add'>+        const int rb_funcall_argc = (argc); \</div><div class='add'>+        const VALUE rb_funcall_args[] = {__VA_ARGS__}; \</div><div class='add'>+        const int rb_funcall_nargs = \</div><div class='add'>+            (int)(sizeof(rb_funcall_args) / sizeof(VALUE)); \</div><div class='add'>+        rb_funcallv(recv, mid, \</div><div class='add'>+            rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \</div><div class='add'>+            rb_funcall_nargs ? rb_funcall_args : NULL); \</div><div class='ctx'>     })</div><div class='ctx'> #endif</div><div class='add'>+/** @endcond */</div><div class='ctx'> </div><div class='ctx'> #ifndef RUBY_DONT_SUBST</div><div class='ctx'> #include "ruby/subst.h"</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-/**</div><div class='del'>- * @defgroup embed CRuby Embedding APIs</div><div class='del'>- * CRuby interpreter APIs. These are APIs to embed MRI interpreter into your</div><div class='del'>- * program.</div><div class='del'>- * These functions are not a part of Ruby extension library API.</div><div class='del'>- * Extension libraries of Ruby should not depend on these functions.</div><div class='del'>- * @{</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-/** @defgroup ruby1 ruby(1) implementation</div><div class='del'>- * A part of the implementation of ruby(1) command.</div><div class='del'>- * Other programs that embed Ruby interpreter do not always need to use these</div><div class='del'>- * functions.</div><div class='del'>- * @{</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-void ruby_sysinit(int *argc, char ***argv);</div><div class='del'>-void ruby_init(void);</div><div class='del'>-void* ruby_options(int argc, char** argv);</div><div class='del'>-int ruby_executable_node(void *n, int *status);</div><div class='del'>-int ruby_run_node(void *n);</div><div class='del'>-</div><div class='del'>-/* version.c */</div><div class='del'>-void ruby_show_version(void);</div><div class='del'>-void ruby_show_copyright(void);</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*! A convenience macro to call ruby_init_stack(). Must be placed just after</div><div class='del'>- *  variable declarations */</div><div class='del'>-#define RUBY_INIT_STACK \</div><div class='del'>-    VALUE variable_in_this_stack_frame; \</div><div class='del'>-    ruby_init_stack(&amp;variable_in_this_stack_frame);</div><div class='del'>-/*! @} */</div><div class='del'>-</div><div class='del'>-#ifdef __ia64</div><div class='del'>-void ruby_init_stack(volatile VALUE*, void*);</div><div class='del'>-#define ruby_init_stack(addr) ruby_init_stack((addr), rb_ia64_bsp())</div><div class='del'>-#else</div><div class='del'>-void ruby_init_stack(volatile VALUE*);</div><div class='del'>-#endif</div><div class='del'>-#define Init_stack(addr) ruby_init_stack(addr)</div><div class='del'>-</div><div class='del'>-int ruby_setup(void);</div><div class='del'>-int ruby_cleanup(volatile int);</div><div class='del'>-</div><div class='del'>-void ruby_finalize(void);</div><div class='del'>-NORETURN(void ruby_stop(int));</div><div class='del'>-</div><div class='del'>-void ruby_set_stack_size(size_t);</div><div class='del'>-int ruby_stack_check(void);</div><div class='del'>-size_t ruby_stack_length(VALUE**);</div><div class='del'>-</div><div class='del'>-int ruby_exec_node(void *n);</div><div class='del'>-</div><div class='del'>-void ruby_script(const char* name);</div><div class='del'>-void ruby_set_script_name(VALUE name);</div><div class='del'>-</div><div class='del'>-void ruby_prog_init(void);</div><div class='del'>-void ruby_set_argv(int, char**);</div><div class='del'>-void *ruby_process_options(int, char**);</div><div class='del'>-void ruby_init_loadpath(void);</div><div class='del'>-void ruby_incpush(const char*);</div><div class='del'>-void ruby_sig_finalize(void);</div><div class='del'>-</div><div class='del'>-/*! @} */</div><div class='del'>-</div><div class='ctx'> #if !defined RUBY_EXPORT &amp;&amp; !defined RUBY_NO_OLD_COMPATIBILITY</div><div class='ctx'> # include "ruby/backward.h"</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='ctx'> </div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='ctx'> #endif /* RUBY_RUBY_H */</div><div class='head'>diff --git a/include/ruby/st.h b/include/ruby/st.h<br/>index 149e0ebaef..f35ab43603 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/st.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/st.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/st.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/st.h</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> /* This is a public domain general purpose hash table package</div><div class='ctx'>    originally written by Peter Moore @ UCB.</div><div class='ctx'> </div><div class='del'>-   The hash table data strutures were redesigned and the package was</div><div class='add'>+   The hash table data structures were redesigned and the package was</div><div class='ctx'>    rewritten by Vladimir Makarov &lt;vmakarov@redhat.com&gt;.  */</div><div class='ctx'> </div><div class='ctx'> #ifndef RUBY_ST_H</div><div class='hunk'>@@ -59,8 +59,8 @@ typedef char st_check_for_sizeof_st_index_t[SIZEOF_VOIDP == (int)sizeof(st_index</div><div class='ctx'> #define SIZEOF_ST_INDEX_T SIZEOF_VOIDP</div><div class='ctx'> </div><div class='ctx'> struct st_hash_type {</div><div class='del'>-    int (*compare)(ANYARGS /*st_data_t, st_data_t*/); /* st_compare_func* */</div><div class='del'>-    st_index_t (*hash)(ANYARGS /*st_data_t*/);        /* st_hash_func* */</div><div class='add'>+    int (*compare)(st_data_t, st_data_t); /* st_compare_func* */</div><div class='add'>+    st_index_t (*hash)(st_data_t);        /* st_hash_func* */</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> #define ST_INDEX_BITS (SIZEOF_ST_INDEX_T * CHAR_BIT)</div><div class='hunk'>@@ -96,51 +96,93 @@ struct st_table {</div><div class='ctx'> </div><div class='ctx'> #define st_is_member(table,key) st_lookup((table),(key),(st_data_t *)0)</div><div class='ctx'> </div><div class='del'>-enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};</div><div class='del'>-</div><div class='del'>-st_table *st_init_table(const struct st_hash_type *);</div><div class='del'>-st_table *st_init_table_with_size(const struct st_hash_type *, st_index_t);</div><div class='del'>-st_table *st_init_numtable(void);</div><div class='del'>-st_table *st_init_numtable_with_size(st_index_t);</div><div class='del'>-st_table *st_init_strtable(void);</div><div class='del'>-st_table *st_init_strtable_with_size(st_index_t);</div><div class='del'>-st_table *st_init_strcasetable(void);</div><div class='del'>-st_table *st_init_strcasetable_with_size(st_index_t);</div><div class='del'>-int st_delete(st_table *, st_data_t *, st_data_t *); /* returns 0:notfound 1:deleted */</div><div class='del'>-int st_delete_safe(st_table *, st_data_t *, st_data_t *, st_data_t);</div><div class='del'>-int st_shift(st_table *, st_data_t *, st_data_t *); /* returns 0:notfound 1:deleted */</div><div class='del'>-int st_insert(st_table *, st_data_t, st_data_t);</div><div class='del'>-int st_insert2(st_table *, st_data_t, st_data_t, st_data_t (*)(st_data_t));</div><div class='del'>-int st_lookup(st_table *, st_data_t, st_data_t *);</div><div class='del'>-int st_get_key(st_table *, st_data_t, st_data_t *);</div><div class='add'>+enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK, ST_REPLACE};</div><div class='add'>+</div><div class='add'>+size_t rb_st_table_size(const struct st_table *tbl);</div><div class='add'>+#define st_table_size rb_st_table_size</div><div class='add'>+st_table *rb_st_init_table(const struct st_hash_type *);</div><div class='add'>+#define st_init_table rb_st_init_table</div><div class='add'>+st_table *rb_st_init_table_with_size(const struct st_hash_type *, st_index_t);</div><div class='add'>+#define st_init_table_with_size rb_st_init_table_with_size</div><div class='add'>+st_table *rb_st_init_numtable(void);</div><div class='add'>+#define st_init_numtable rb_st_init_numtable</div><div class='add'>+st_table *rb_st_init_numtable_with_size(st_index_t);</div><div class='add'>+#define st_init_numtable_with_size rb_st_init_numtable_with_size</div><div class='add'>+st_table *rb_st_init_strtable(void);</div><div class='add'>+#define st_init_strtable rb_st_init_strtable</div><div class='add'>+st_table *rb_st_init_strtable_with_size(st_index_t);</div><div class='add'>+#define st_init_strtable_with_size rb_st_init_strtable_with_size</div><div class='add'>+st_table *rb_st_init_strcasetable(void);</div><div class='add'>+#define st_init_strcasetable rb_st_init_strcasetable</div><div class='add'>+st_table *rb_st_init_strcasetable_with_size(st_index_t);</div><div class='add'>+#define st_init_strcasetable_with_size rb_st_init_strcasetable_with_size</div><div class='add'>+int rb_st_delete(st_table *, st_data_t *, st_data_t *); /* returns 0:notfound 1:deleted */</div><div class='add'>+#define st_delete rb_st_delete</div><div class='add'>+int rb_st_delete_safe(st_table *, st_data_t *, st_data_t *, st_data_t);</div><div class='add'>+#define st_delete_safe rb_st_delete_safe</div><div class='add'>+int rb_st_shift(st_table *, st_data_t *, st_data_t *); /* returns 0:notfound 1:deleted */</div><div class='add'>+#define st_shift rb_st_shift</div><div class='add'>+int rb_st_insert(st_table *, st_data_t, st_data_t);</div><div class='add'>+#define st_insert rb_st_insert</div><div class='add'>+int rb_st_insert2(st_table *, st_data_t, st_data_t, st_data_t (*)(st_data_t));</div><div class='add'>+#define st_insert2 rb_st_insert2</div><div class='add'>+int rb_st_lookup(st_table *, st_data_t, st_data_t *);</div><div class='add'>+#define st_lookup rb_st_lookup</div><div class='add'>+int rb_st_get_key(st_table *, st_data_t, st_data_t *);</div><div class='add'>+#define st_get_key rb_st_get_key</div><div class='ctx'> typedef int st_update_callback_func(st_data_t *key, st_data_t *value, st_data_t arg, int existing);</div><div class='ctx'> /* *key may be altered, but must equal to the old key, i.e., the</div><div class='ctx'>  * results of hash() are same and compare() returns 0, otherwise the</div><div class='ctx'>  * behavior is undefined */</div><div class='del'>-int st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data_t arg);</div><div class='del'>-int st_foreach(st_table *, int (*)(ANYARGS), st_data_t);</div><div class='del'>-int st_foreach_check(st_table *, int (*)(ANYARGS), st_data_t, st_data_t);</div><div class='del'>-st_index_t st_keys(st_table *table, st_data_t *keys, st_index_t size);</div><div class='del'>-st_index_t st_keys_check(st_table *table, st_data_t *keys, st_index_t size, st_data_t never);</div><div class='del'>-st_index_t st_values(st_table *table, st_data_t *values, st_index_t size);</div><div class='del'>-st_index_t st_values_check(st_table *table, st_data_t *values, st_index_t size, st_data_t never);</div><div class='del'>-void st_add_direct(st_table *, st_data_t, st_data_t);</div><div class='del'>-void st_free_table(st_table *);</div><div class='del'>-void st_cleanup_safe(st_table *, st_data_t);</div><div class='del'>-void st_clear(st_table *);</div><div class='del'>-st_table *st_copy(st_table *);</div><div class='del'>-CONSTFUNC(int st_numcmp(st_data_t, st_data_t));</div><div class='del'>-CONSTFUNC(st_index_t st_numhash(st_data_t));</div><div class='del'>-PUREFUNC(int st_locale_insensitive_strcasecmp(const char *s1, const char *s2));</div><div class='del'>-PUREFUNC(int st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n));</div><div class='del'>-#define st_strcasecmp st_locale_insensitive_strcasecmp</div><div class='del'>-#define st_strncasecmp st_locale_insensitive_strncasecmp</div><div class='del'>-PUREFUNC(size_t st_memsize(const st_table *));</div><div class='del'>-PUREFUNC(st_index_t st_hash(const void *ptr, size_t len, st_index_t h));</div><div class='del'>-CONSTFUNC(st_index_t st_hash_uint32(st_index_t h, uint32_t i));</div><div class='del'>-CONSTFUNC(st_index_t st_hash_uint(st_index_t h, st_index_t i));</div><div class='del'>-CONSTFUNC(st_index_t st_hash_end(st_index_t h));</div><div class='del'>-CONSTFUNC(st_index_t st_hash_start(st_index_t h));</div><div class='add'>+int rb_st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data_t arg);</div><div class='add'>+#define st_update rb_st_update</div><div class='add'>+typedef int st_foreach_callback_func(st_data_t, st_data_t, st_data_t);</div><div class='add'>+typedef int st_foreach_check_callback_func(st_data_t, st_data_t, st_data_t, int);</div><div class='add'>+int rb_st_foreach_with_replace(st_table *tab, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg);</div><div class='add'>+#define st_foreach_with_replace rb_st_foreach_with_replace</div><div class='add'>+int rb_st_foreach(st_table *, st_foreach_callback_func *, st_data_t);</div><div class='add'>+#define st_foreach rb_st_foreach</div><div class='add'>+int rb_st_foreach_check(st_table *, st_foreach_check_callback_func *, st_data_t, st_data_t);</div><div class='add'>+#define st_foreach_check rb_st_foreach_check</div><div class='add'>+st_index_t rb_st_keys(st_table *table, st_data_t *keys, st_index_t size);</div><div class='add'>+#define st_keys rb_st_keys</div><div class='add'>+st_index_t rb_st_keys_check(st_table *table, st_data_t *keys, st_index_t size, st_data_t never);</div><div class='add'>+#define st_keys_check rb_st_keys_check</div><div class='add'>+st_index_t rb_st_values(st_table *table, st_data_t *values, st_index_t size);</div><div class='add'>+#define st_values rb_st_values</div><div class='add'>+st_index_t rb_st_values_check(st_table *table, st_data_t *values, st_index_t size, st_data_t never);</div><div class='add'>+#define st_values_check rb_st_values_check</div><div class='add'>+void rb_st_add_direct(st_table *, st_data_t, st_data_t);</div><div class='add'>+#define st_add_direct rb_st_add_direct</div><div class='add'>+void rb_st_free_table(st_table *);</div><div class='add'>+#define st_free_table rb_st_free_table</div><div class='add'>+void rb_st_cleanup_safe(st_table *, st_data_t);</div><div class='add'>+#define st_cleanup_safe rb_st_cleanup_safe</div><div class='add'>+void rb_st_clear(st_table *);</div><div class='add'>+#define st_clear rb_st_clear</div><div class='add'>+st_table *rb_st_copy(st_table *);</div><div class='add'>+#define st_copy rb_st_copy</div><div class='add'>+CONSTFUNC(int rb_st_numcmp(st_data_t, st_data_t));</div><div class='add'>+#define st_numcmp rb_st_numcmp</div><div class='add'>+CONSTFUNC(st_index_t rb_st_numhash(st_data_t));</div><div class='add'>+#define st_numhash rb_st_numhash</div><div class='add'>+PUREFUNC(int rb_st_locale_insensitive_strcasecmp(const char *s1, const char *s2));</div><div class='add'>+#define st_locale_insensitive_strcasecmp rb_st_locale_insensitive_strcasecmp</div><div class='add'>+PUREFUNC(int rb_st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n));</div><div class='add'>+#define st_locale_insensitive_strncasecmp rb_st_locale_insensitive_strncasecmp</div><div class='add'>+#define st_strcasecmp rb_st_locale_insensitive_strcasecmp</div><div class='add'>+#define st_strncasecmp rb_st_locale_insensitive_strncasecmp</div><div class='add'>+PUREFUNC(size_t rb_st_memsize(const st_table *));</div><div class='add'>+#define st_memsize rb_st_memsize</div><div class='add'>+PUREFUNC(st_index_t rb_st_hash(const void *ptr, size_t len, st_index_t h));</div><div class='add'>+#define st_hash rb_st_hash</div><div class='add'>+CONSTFUNC(st_index_t rb_st_hash_uint32(st_index_t h, uint32_t i));</div><div class='add'>+#define st_hash_uint32 rb_st_hash_uint32</div><div class='add'>+CONSTFUNC(st_index_t rb_st_hash_uint(st_index_t h, st_index_t i));</div><div class='add'>+#define st_hash_uint rb_st_hash_uint</div><div class='add'>+CONSTFUNC(st_index_t rb_st_hash_end(st_index_t h));</div><div class='add'>+#define st_hash_end rb_st_hash_end</div><div class='add'>+CONSTFUNC(st_index_t rb_st_hash_start(st_index_t h));</div><div class='ctx'> #define st_hash_start(h) ((st_index_t)(h))</div><div class='ctx'> </div><div class='ctx'> void rb_hash_bulk_insert_into_st_table(long, const VALUE *, VALUE);</div><div class='head'>diff --git a/include/ruby/subst.h b/include/ruby/subst.h<br/>index 1f0e6db5a4..d7b9a63050 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/subst.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/subst.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/subst.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/subst.h</a></div><div class='hunk'>@@ -1,5 +1,12 @@</div><div class='del'>-#ifndef RUBY_SUBST_H</div><div class='add'>+#ifndef RUBY_SUBST_H                                 /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_SUBST_H 1</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='ctx'> </div><div class='ctx'> #undef snprintf</div><div class='ctx'> #undef vsnprintf</div><div class='head'>diff --git a/include/ruby/thread.h b/include/ruby/thread.h<br/>index 550f678e54..0b5b1ca0f3 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/thread.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/thread.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/thread.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/thread.h</a></div><div class='hunk'>@@ -1,45 +1,235 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  thread.h -</div><div class='del'>-</div><div class='del'>-  $Author: matz $</div><div class='del'>-  created at: Tue Jul 10 17:35:43 JST 2012</div><div class='add'>+#ifndef RUBY_THREAD_H                                /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_THREAD_H 1</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author: matz $</div><div class='add'>+ * @date       Tue Jul 10 17:35:43 JST 2012</div><div class='add'>+ * @copyright  Copyright (C) 2007 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/intern/thread.h" /* rb_unblock_function_t */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='ctx'> </div><div class='del'>-  Copyright (C) 2007 Yukihiro Matsumoto</div><div class='add'>+/**</div><div class='add'>+ * @name Flags for rb_nogvl()</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-**********************************************************************/</div><div class='add'>+/**</div><div class='add'>+ * Passing  this  flag to  rb_nogvl()  prevents  it from  checking  interrupts.</div><div class='add'>+ * Interrupts  can  impact  your  program negatively.   For  instance  consider</div><div class='add'>+ * following callback function:</div><div class='add'>+ *</div><div class='add'>+ * ```CXX</div><div class='add'>+ * static inline int fd; // set elsewhere.</div><div class='add'>+ * static inline auto callback(auto buf) {</div><div class='add'>+ *   auto tmp = ruby_xmalloc(BUFSIZ);</div><div class='add'>+ *   auto ret = ruby_xmalloc(sizeof(ssize_t));  // (a)</div><div class='add'>+ *   auto n = read(fd, tmp, BUFSIZ);            // (b)</div><div class='add'>+ *   memcpy(buf, tmp, n);                       // (c)</div><div class='add'>+ *   memcpy(ret, n, sizeof(n));</div><div class='add'>+ *   ruby_xfree(tmp);</div><div class='add'>+ *   return ret;</div><div class='add'>+ * }</div><div class='add'>+ * ```</div><div class='add'>+ *</div><div class='add'>+ * Here, if it gets interrupted at (a)  or (b), `read(2)` is cancelled and this</div><div class='add'>+ * function leaks memory (which is not a good thing of course, but...).  But if</div><div class='add'>+ * it gets interrupted at (c), where `read(2)` is already done, interruption is</div><div class='add'>+ * way more catastrophic because what was read gets lost.  To reroute this kind</div><div class='add'>+ * of problem you should set this flag.  And check interrupts elsewhere at your</div><div class='add'>+ * own risk.</div><div class='add'>+ */</div><div class='add'>+#define RB_NOGVL_INTR_FAIL       (0x1)</div><div class='ctx'> </div><div class='del'>-#ifndef RUBY_THREAD_H</div><div class='del'>-#define RUBY_THREAD_H 1</div><div class='add'>+/**</div><div class='add'>+ * Passing  this  flag   to  rb_nogvl()  indicates  that  the   passed  UBF  is</div><div class='add'>+ * async-signal-safe.   An UBF  could  be  async safe,  and  that makes  things</div><div class='add'>+ * simpler.   However async  unsafe UBFs  are just  okay.  If  unsure, you  can</div><div class='add'>+ * safely leave it unspecified.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * This makes sense only in case of POSIX threads.</div><div class='add'>+ */</div><div class='add'>+#define RB_NOGVL_UBF_ASYNC_SAFE  (0x2)</div><div class='ctx'> </div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='add'>+/** @} */</div><div class='ctx'> </div><div class='del'>-#include "ruby/intern.h"</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='ctx'> </div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * (Re-)acquires the GVL.   This manoeuvre makes it possible  for an out-of-GVL</div><div class='add'>+ * routine to one-shot call a ruby method.</div><div class='add'>+ *</div><div class='add'>+ * What this function does:</div><div class='add'>+ *</div><div class='add'>+ *  1. Blocks until it acquires the GVL.</div><div class='add'>+ *  2. Calls the passed function.</div><div class='add'>+ *  3. Releases the GVL.</div><div class='add'>+ *  4. Returns what was returned form the passed function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      func   What to call with GVL.</div><div class='add'>+ * @param[in,out]  data1  Passed as-is to `func`.</div><div class='add'>+ * @return         What was returned from `func`.</div><div class='add'>+ * @warning        `func` must not return a Ruby object.  If it did such return</div><div class='add'>+ *                 value would escape from GC's scope; would not be marked.</div><div class='add'>+ * @warning        Global escapes from this  function just yield whatever fatal</div><div class='add'>+ *                 undefined behaviours.   You must make sure  that `func` does</div><div class='add'>+ *                 not   raise,   by   properly   rescuing   everything   using</div><div class='add'>+ *                 e.g. rb_protect().</div><div class='add'>+ * @warning        You  cannot convert  a non-Ruby  thread into  a Ruby  thread</div><div class='add'>+ *                 using this API.  This function  makes sense only from inside</div><div class='add'>+ *                 of a rb_thread_call_without_gvl()'s callback.</div><div class='add'>+ */</div><div class='ctx'> void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);</div><div class='ctx'> </div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Allows the passed function to run in parallel with other Ruby threads.</div><div class='add'>+ *</div><div class='add'>+ * What this function does:</div><div class='add'>+ *</div><div class='add'>+ *  1. Checks (and handles) pending interrupts.</div><div class='add'>+ *  2. Releases the GVL. (Others can run here in parallel...)</div><div class='add'>+ *  3. Calls the passed function.</div><div class='add'>+ *  4. Blocks until it re-acquires the GVL.</div><div class='add'>+ *  5. Checks interrupts that happened between 2 to 4.</div><div class='add'>+ *</div><div class='add'>+ * In case  other threads  interfaced with  this thread  using rb_thread_kill()</div><div class='add'>+ * etc., the  passed UBF  is additionally called.   See ::rb_unblock_function_t</div><div class='add'>+ * for details.</div><div class='add'>+ *</div><div class='add'>+ * Unlike rb_thread_call_without_gvl2()  this function  also reacts  to signals</div><div class='add'>+ * etc.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      func   A function to call without GVL.</div><div class='add'>+ * @param[in,out]  data1  Passed as-is to `func`.</div><div class='add'>+ * @param[in]      ubf    An UBF to cancel `func`.</div><div class='add'>+ * @param[in,out]  data2  Passed as-is to `ubf`.</div><div class='add'>+ * @return         What `func` returned, or 0 in case `ubf` cancelled `func`.</div><div class='add'>+ * @warning        You cannot use  most of Ruby C APIs like  calling methods or</div><div class='add'>+ *                 raising exceptions from  any of the functions  passed to it.</div><div class='add'>+ *                 If that  is dead necessary use  rb_thread_call_with_gvl() to</div><div class='add'>+ *                 re-acquire the GVL.</div><div class='add'>+ * @warning        In short, this API is difficult.  @ko1 recommends you to use</div><div class='add'>+ *                 other ways if any.  We lack experiences to use this API.  If</div><div class='add'>+ *                 you  find any  corner cases  etc., please  report it  to the</div><div class='add'>+ *                 devs.</div><div class='add'>+ * @warning        Releasing and re-acquiring the GVL are expensive operations.</div><div class='add'>+ *                 For a short-running `func`, it  might be faster to just call</div><div class='add'>+ *                 `func` with blocking everything  else.  Be sure to benchmark</div><div class='add'>+ *                 your code to see if it is actually worth releasing the GVL.</div><div class='add'>+ */</div><div class='ctx'> void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,</div><div class='del'>-				 rb_unblock_function_t *ubf, void *data2);</div><div class='add'>+                                 rb_unblock_function_t *ubf, void *data2);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_thread_call_without_gvl(), except it does not interface with</div><div class='add'>+ * signals etc.  As described in  #RB_NOGVL_INTR_FAIL, interrupts can hurt you.</div><div class='add'>+ * In case this function detects an interrupt, it returns immediately.  You can</div><div class='add'>+ * record progress  of your  callback and  check it  after returning  from this</div><div class='add'>+ * function.</div><div class='add'>+ *</div><div class='add'>+ * What this function does:</div><div class='add'>+ *</div><div class='add'>+ *  1. Checks for pending interrupts and if any, just returns.</div><div class='add'>+ *  2. Releases the GVL. (Others can run here in parallel...)</div><div class='add'>+ *  3. Calls the passed function.</div><div class='add'>+ *  4. Blocks until it re-acquires the GVL.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      func   A function to call without GVL.</div><div class='add'>+ * @param[in,out]  data1  Passed as-is to `func`.</div><div class='add'>+ * @param[in]      ubf    An UBF to cancel `func`.</div><div class='add'>+ * @param[in,out]  data2  Passed as-is to `ubf`.</div><div class='add'>+ * @return         What `func` returned, or 0 in case `func` did not return.</div><div class='add'>+ */</div><div class='ctx'> void *rb_thread_call_without_gvl2(void *(*func)(void *), void *data1,</div><div class='del'>-				  rb_unblock_function_t *ubf, void *data2);</div><div class='add'>+                                  rb_unblock_function_t *ubf, void *data2);</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * XXX: unstable/unapproved - out-of-tree code should NOT not depend</div><div class='add'>+ * on this until it hits Ruby 2.6.1</div><div class='add'>+ */</div><div class='ctx'> </div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_thread_call_without_gvl(),  except it  additionally  takes</div><div class='add'>+ * "flags" that change the behaviour.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      func   A function to call without GVL.</div><div class='add'>+ * @param[in,out]  data1  Passed as-is to `func`.</div><div class='add'>+ * @param[in]      ubf    An UBF to cancel `func`.</div><div class='add'>+ * @param[in,out]  data2  Passed as-is to `ubf`.</div><div class='add'>+ * @param[in]      flags  Flags.</div><div class='add'>+ * @return         What `func` returned, or 0 in case `func` did not return.</div><div class='add'>+ */</div><div class='add'>+void *rb_nogvl(void *(*func)(void *), void *data1,</div><div class='add'>+               rb_unblock_function_t *ubf, void *data2,</div><div class='add'>+               int flags);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ *</div><div class='add'>+ * @deprecated  This macro once was a thing in the old days, but makes no sense</div><div class='add'>+ *              any  longer today.   Exists  here  for backwards  compatibility</div><div class='add'>+ *              only.  You can safely forget about it.</div><div class='add'>+ */</div><div class='ctx'> #define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_AFTER 0x01</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @private</div><div class='add'>+ * @deprecated  It seems even in the old days it made no sense...?</div><div class='add'>+ */</div><div class='ctx'> #define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='add'>+#define RUBY_INTERNAL_THREAD_EVENT_STARTED    1 &lt;&lt; 0 /** thread started */</div><div class='add'>+#define RUBY_INTERNAL_THREAD_EVENT_READY      1 &lt;&lt; 1 /** acquiring GVL */</div><div class='add'>+#define RUBY_INTERNAL_THREAD_EVENT_RESUMED    1 &lt;&lt; 2 /** acquired GVL */</div><div class='add'>+#define RUBY_INTERNAL_THREAD_EVENT_SUSPENDED  1 &lt;&lt; 3 /** released GVL */</div><div class='add'>+#define RUBY_INTERNAL_THREAD_EVENT_EXITED     1 &lt;&lt; 4 /** thread terminated */</div><div class='add'>+#define RUBY_INTERNAL_THREAD_EVENT_MASK       0xff /** All Thread events */</div><div class='add'>+</div><div class='add'>+typedef void rb_internal_thread_event_data_t; // for future extension.</div><div class='add'>+</div><div class='add'>+typedef void (*rb_internal_thread_event_callback)(rb_event_flag_t event,</div><div class='add'>+              const rb_internal_thread_event_data_t *event_data,</div><div class='add'>+              void *user_data);</div><div class='add'>+typedef struct rb_internal_thread_event_hook rb_internal_thread_event_hook_t;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Registers a thread event hook function.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  func    A callback.</div><div class='add'>+ * @param[in]  events  A set of events that `func` should run.</div><div class='add'>+ * @param[in]  data    Passed as-is to `func`.</div><div class='add'>+ * @return     An opaque pointer to the hook, to unregister it later.</div><div class='add'>+ * @note       This functionality is a noop on Windows.</div><div class='add'>+ * @warning    This function MUST not be called from a thread event callback.</div><div class='add'>+ */</div><div class='add'>+rb_internal_thread_event_hook_t *rb_internal_thread_add_event_hook(</div><div class='add'>+        rb_internal_thread_event_callback func, rb_event_flag_t events,</div><div class='add'>+        void *data);</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Unregister the passed hook.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  hook.  The hook to unregister.</div><div class='add'>+ * @return     Wether the hook was found and unregistered.</div><div class='add'>+ * @note       This functionality is a noop on Windows.</div><div class='add'>+ * @warning    This function MUST not be called from a thread event callback.</div><div class='add'>+*/</div><div class='add'>+bool rb_internal_thread_remove_event_hook(</div><div class='add'>+        rb_internal_thread_event_hook_t * hook);</div><div class='ctx'> </div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='ctx'> </div><div class='ctx'> #endif /* RUBY_THREAD_H */</div><div class='head'>diff --git a/include/ruby/thread_native.h b/include/ruby/thread_native.h<br/>index 8e500c5a13..c23b15e133 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/thread_native.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/thread_native.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/thread_native.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/thread_native.h</a></div><div class='hunk'>@@ -1,28 +1,24 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  thread_native.h -</div><div class='del'>-</div><div class='del'>-  $Author: ko1 $</div><div class='del'>-  created at: Wed May 14 19:37:31 2014</div><div class='del'>-</div><div class='del'>-  Copyright (C) 2014 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_THREAD_NATIVE_H</div><div class='add'>+#ifndef RUBY_THREAD_NATIVE_H                         /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_THREAD_NATIVE_H 1</div><div class='del'>-</div><div class='del'>-/*</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author: ko1 $</div><div class='add'>+ * @date       Wed May 14 19:37:31 2014</div><div class='add'>+ * @copyright  Copyright (C) 2014 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ *</div><div class='ctx'>  * This file contains wrapper APIs for native thread primitives</div><div class='ctx'>  * which Ruby interpreter uses.</div><div class='ctx'>  *</div><div class='del'>- * Now, we only suppors pthread and Windows threads.</div><div class='add'>+ * Now, we only support pthread and Windows threads.</div><div class='ctx'>  *</div><div class='ctx'>  * If you want to use Ruby's Mutex and so on to synchronize Ruby Threads,</div><div class='ctx'>  * please use Mutex directly.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-</div><div class='ctx'> #if defined(_WIN32)</div><div class='ctx'> #include &lt;windows.h&gt;</div><div class='ctx'> typedef HANDLE rb_nativethread_id_t;</div><div class='hunk'>@@ -32,25 +28,178 @@ typedef union rb_thread_lock_union {</div><div class='ctx'>     CRITICAL_SECTION crit;</div><div class='ctx'> } rb_nativethread_lock_t;</div><div class='ctx'> </div><div class='add'>+typedef struct rb_thread_cond_struct rb_nativethread_cond_t;</div><div class='add'>+</div><div class='ctx'> #elif defined(HAVE_PTHREAD_H)</div><div class='add'>+</div><div class='ctx'> #include &lt;pthread.h&gt;</div><div class='ctx'> typedef pthread_t rb_nativethread_id_t;</div><div class='ctx'> typedef pthread_mutex_t rb_nativethread_lock_t;</div><div class='add'>+typedef pthread_cond_t rb_nativethread_cond_t;</div><div class='add'>+</div><div class='add'>+#elif defined(__wasi__) // no-thread platforms</div><div class='add'>+</div><div class='add'>+typedef struct rb_nativethread_id_t *rb_nativethread_id_t;</div><div class='add'>+typedef struct rb_nativethread_lock_t *rb_nativethread_lock_t;</div><div class='add'>+typedef struct rb_nativethread_cond_t *rb_nativethread_cond_t;</div><div class='add'>+</div><div class='add'>+#elif defined(__DOXYGEN__)</div><div class='add'>+</div><div class='add'>+/** Opaque type that holds an ID of a native thread. */</div><div class='add'>+struct rb_nativethread_id_t;</div><div class='add'>+</div><div class='add'>+/** Opaque type that holds a lock. */</div><div class='add'>+struct rb_nativethread_lock_t;</div><div class='add'>+</div><div class='add'>+/** Opaque type that holds a condition variable. */</div><div class='add'>+struct rb_nativethread_cond_t;</div><div class='ctx'> </div><div class='ctx'> #else</div><div class='ctx'> #error "unsupported thread type"</div><div class='ctx'> </div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='ctx'> </div><div class='del'>-rb_nativethread_id_t rb_nativethread_self();</div><div class='add'>+/**</div><div class='add'>+ * Queries the ID of the native thread that is calling this function.</div><div class='add'>+ *</div><div class='add'>+ * @return The caller thread's native ID.</div><div class='add'>+ */</div><div class='add'>+rb_nativethread_id_t rb_nativethread_self(void);</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * Fills the passed lock with an initial value.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  lock  A mutex to initialise.</div><div class='add'>+ * @post        `lock` is updated to its initial state.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * There is no data structure that  analogous to pthread_once_t in ruby.  It is</div><div class='add'>+ * pretty  much tricky  (if  not  impossible) to  properly  initialise a  mutex</div><div class='add'>+ * exactly once.</div><div class='add'>+ */</div><div class='ctx'> void rb_nativethread_lock_initialize(rb_nativethread_lock_t *lock);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destroys the passed mutex.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  lock  A mutex to kill.</div><div class='add'>+ * @post        `lock` is no longer eligible for other functions.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * It  is  an  undefined  behaviour  (see  `pthread_mutex_destroy(3posix)`)  to</div><div class='add'>+ * destroy a locked  mutex.  So it has  to be unlocked.  But  an unlocked mutex</div><div class='add'>+ * can of course  be locked by another thread.  That's  the ultimate reason why</div><div class='add'>+ * we do mutex.   There is an inevitable race condition  here.  2017 edition of</div><div class='add'>+ * IEEE 1003.1 issue 7 says in its  rationale that "care must be taken".  Care?</div><div class='add'>+ * How?</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei thinks that POSIX is broken by design.</div><div class='add'>+ */</div><div class='ctx'> void rb_nativethread_lock_destroy(rb_nativethread_lock_t *lock);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Blocks until the current thread obtains a lock.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  lock  A mutex to lock.</div><div class='add'>+ * @post        `lock` is owned by the current native thread.</div><div class='add'>+ */</div><div class='ctx'> void rb_nativethread_lock_lock(rb_nativethread_lock_t *lock);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Releases a lock.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  lock  A mutex to unlock.</div><div class='add'>+ * @pre         `lock` is owned by the current native thread.</div><div class='add'>+ * @post        `lock` is not owned by the current native thread.</div><div class='add'>+ */</div><div class='ctx'> void rb_nativethread_lock_unlock(rb_nativethread_lock_t *lock);</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='add'>+/** @alias{rb_nativethread_lock_lock} */</div><div class='add'>+void rb_native_mutex_lock(rb_nativethread_lock_t *lock);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical  to  rb_native_mutex_lock(),  except  it  doesn't  block  in  case</div><div class='add'>+ * rb_native_mutex_lock() would.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  lock   A mutex to lock.</div><div class='add'>+ * @retval      0      `lock` is successfully owned by the current thread.</div><div class='add'>+ * @retval      EBUSY  `lock` is owned by someone else.</div><div class='add'>+ */</div><div class='add'>+int  rb_native_mutex_trylock(rb_nativethread_lock_t *lock);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_nativethread_lock_unlock} */</div><div class='add'>+void rb_native_mutex_unlock(rb_nativethread_lock_t *lock);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_nativethread_lock_initialize} */</div><div class='add'>+void rb_native_mutex_initialize(rb_nativethread_lock_t *lock);</div><div class='add'>+</div><div class='add'>+/** @alias{rb_nativethread_lock_destroy} */</div><div class='add'>+void rb_native_mutex_destroy(rb_nativethread_lock_t *lock);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Signals a condition variable.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  cond  A condition variable to ping.</div><div class='add'>+ * @post        More than one threads waiting for `cond` gets signalled.</div><div class='add'>+ * @note        This  function   can  spuriously  wake  multiple   threads  up.</div><div class='add'>+ *              `pthread_cond_signal(3posix)` says  it can even  be "impossible</div><div class='add'>+ *              to avoid  the unblocking of more  than one thread blocked  on a</div><div class='add'>+ *              condition variable".  Just brace spurious wakeups.</div><div class='add'>+ */</div><div class='add'>+void rb_native_cond_signal(rb_nativethread_cond_t *cond);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Signals a condition variable.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  cond  A condition variable to ping.</div><div class='add'>+ * @post        All threads waiting for `cond` gets signalled.</div><div class='add'>+ */</div><div class='add'>+void rb_native_cond_broadcast(rb_nativethread_cond_t *cond);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Waits for the passed condition variable to be signalled.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  cond   A condition variable to wait.</div><div class='add'>+ * @param[out]  mutex  A mutex.</div><div class='add'>+ * @pre         `mutex` is owned by the current thread.</div><div class='add'>+ * @post        `mutex` is owned by the current thread.</div><div class='add'>+ * @note        This can wake up spuriously.</div><div class='add'>+ */</div><div class='add'>+void rb_native_cond_wait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Identical to rb_native_cond_wait(), except  it additionally takes timeout in</div><div class='add'>+ * msec resolution.  Timeouts can be detected by catching exceptions.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  cond                 A condition variable to wait.</div><div class='add'>+ * @param[out]  mutex                A mutex.</div><div class='add'>+ * @param[in]   msec                 Timeout.</div><div class='add'>+ * @exception   rb_eSystemCallError  `Errno::ETIMEDOUT` for timeout.</div><div class='add'>+ * @pre         `mutex` is owned by the current thread.</div><div class='add'>+ * @post        `mutex` is owned by the current thread.</div><div class='add'>+ * @note        This can wake up spuriously.</div><div class='add'>+ */</div><div class='add'>+void rb_native_cond_timedwait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex, unsigned long msec);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Fills the passed condition variable with an initial value.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  cond  A condition variable to initialise.</div><div class='add'>+ * @post        `cond` is updated to its initial state.</div><div class='add'>+ */</div><div class='add'>+void rb_native_cond_initialize(rb_nativethread_cond_t *cond);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Destroys the passed condition variable.</div><div class='add'>+ *</div><div class='add'>+ * @param[out]  cond  A condition variable to kill.</div><div class='add'>+ * @post        `cond` is no longer eligible for other functions.</div><div class='add'>+ */</div><div class='add'>+void rb_native_cond_destroy(rb_nativethread_cond_t *cond);</div><div class='ctx'> </div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='ctx'> #endif</div><div class='head'>diff --git a/include/ruby/util.h b/include/ruby/util.h<br/>index 3fecba8ebc..e8727a3200 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/util.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/util.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/util.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/util.h</a></div><div class='hunk'>@@ -1,89 +1,228 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  util.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Thu Mar  9 11:55:53 JST 1995</div><div class='del'>-</div><div class='del'>-  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_UTIL_H</div><div class='add'>+#ifndef RUBY_UTIL_H                                  /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_UTIL_H 1</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @date       Thu Mar  9 11:55:53 JST 1995</div><div class='add'>+ * @copyright  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @warning    DO NOT ADD RANDOM GARBAGES IN  THIS FILE!  Contents of this file</div><div class='add'>+ *             reside here for historical reasons.  Find a right place for your</div><div class='add'>+ *             API!</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#ifdef STDC_HEADERS</div><div class='add'>+# include &lt;stddef.h&gt;                       /* size_t */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#include "ruby/defines.h"</div><div class='del'>-#ifdef RUBY_EXTCONF_H</div><div class='del'>-#include RUBY_EXTCONF_H</div><div class='add'>+#ifdef HAVE_SYS_TYPES_H</div><div class='add'>+# include &lt;sys/types.h&gt;                    /* ssize_t */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef _</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-# ifndef  HAVE_PROTOTYPES</div><div class='del'>-#  define HAVE_PROTOTYPES 1</div><div class='del'>-# endif</div><div class='del'>-# ifndef  HAVE_STDARG_PROTOTYPES</div><div class='del'>-#  define HAVE_STDARG_PROTOTYPES 1</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-#ifdef HAVE_PROTOTYPES</div><div class='del'>-# define _(args) args</div><div class='del'>-#else</div><div class='del'>-# define _(args) ()</div><div class='del'>-#endif</div><div class='del'>-#ifdef HAVE_STDARG_PROTOTYPES</div><div class='del'>-# define __(args) args</div><div class='del'>-#else</div><div class='del'>-# define __(args) ()</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='add'>+#include "ruby/internal/attr/noalias.h"</div><div class='add'>+#include "ruby/internal/attr/nodiscard.h"</div><div class='add'>+#include "ruby/internal/attr/nonnull.h"</div><div class='add'>+#include "ruby/internal/attr/restrict.h"</div><div class='add'>+#include "ruby/internal/attr/returns_nonnull.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+#include "ruby/defines.h"</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='ctx'> </div><div class='add'>+/** an approximation of ceil(n * log10(2)), up to 65536 at least */</div><div class='ctx'> #define DECIMAL_SIZE_OF_BITS(n) (((n) * 3010 + 9998) / 9999)</div><div class='del'>-/* an approximation of ceil(n * log10(2)), up to 65536 at least */</div><div class='ctx'> </div><div class='add'>+/**</div><div class='add'>+ * Character to  number mapping  like `'a'`  -&gt; `10`, `'b'`  -&gt; `11`  etc.  For</div><div class='add'>+ * punctuation etc.,  the value is  -1.  "36"  terminology comes from  the fact</div><div class='add'>+ * that this is the table behind `str.to_i(36)`.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN const signed char ruby_digit36_to_number_table[];</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Characters that Ruby accepts as hexadecimal digits.  This is `/\h/` expanded</div><div class='add'>+ * into an array.</div><div class='add'>+ */</div><div class='add'>+RUBY_EXTERN const char ruby_hexdigits[];</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Scans the passed string, assuming the  string is a textual representation of</div><div class='add'>+ * an  integer.  Stops  when encountering  something non-digit  for the  passed</div><div class='add'>+ * base.</div><div class='add'>+ *</div><div class='add'>+ * @note        This does not understand minus sign.</div><div class='add'>+ * @note        This does not understand e.g. `0x` prefix.</div><div class='add'>+ * @note        It is a failure to pass `0` to `base`, unlike ruby_strtoul().</div><div class='add'>+ * @param[in]   str       Target string of digits to interpret.</div><div class='add'>+ * @param[in]   len       Number of bytes of `str`, or -1 to detect `NUL`.</div><div class='add'>+ * @param[in]   base      Base, `2` to `36` inclusive.</div><div class='add'>+ * @param[out]  retlen    Return value buffer.</div><div class='add'>+ * @param[out]  overflow  Return value buffer.</div><div class='add'>+ * @return      Interpreted numeric representation of `str`.</div><div class='add'>+ * @post        `retlen` is the number of bytes scanned so far.</div><div class='add'>+ * @post       `overflow` is  set to  true if  the string  represents something</div><div class='add'>+ *              bigger than  `ULONG_MAX`.  Something meaningful  still returns;</div><div class='add'>+ *              which is the designed belabour of C's unsigned arithmetic.</div><div class='add'>+ */</div><div class='add'>+unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow);</div><div class='add'>+</div><div class='add'>+/** @old{ruby_scan_oct} */</div><div class='ctx'> #define scan_oct(s,l,e) ((int)ruby_scan_oct((s),(l),(e)))</div><div class='del'>-unsigned long ruby_scan_oct(const char *, size_t, size_t *);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NOALIAS()</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Interprets  the passed  string as  an  octal unsigned  integer.  Stops  when</div><div class='add'>+ * encounters something not understood.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   str       C string to scan.</div><div class='add'>+ * @param[in]   len       Length of `str`.</div><div class='add'>+ * @param[out]  consumed  Return value buffer.</div><div class='add'>+ * @return      Parsed integer.</div><div class='add'>+ * @post        `ret` is the number of characters read.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * No consideration  is made  for integer  overflows.  As  the return  value is</div><div class='add'>+ * unsigned this function  has fully defined behaviour, but you  cannot know if</div><div class='add'>+ * there was an integer wrap-around or not.</div><div class='add'>+ */</div><div class='add'>+unsigned long ruby_scan_oct(const char *str, size_t len, size_t *consumed);</div><div class='add'>+</div><div class='add'>+/** @old{ruby_scan_hex} */</div><div class='ctx'> #define scan_hex(s,l,e) ((int)ruby_scan_hex((s),(l),(e)))</div><div class='del'>-unsigned long ruby_scan_hex(const char *, size_t, size_t *);</div><div class='ctx'> </div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Interprets the  passed string  a hexadecimal  unsigned integer.   Stops when</div><div class='add'>+ * encounters something not understood.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   str  C string to scan.</div><div class='add'>+ * @param[in]   len  Length of `str`.</div><div class='add'>+ * @param[out]  ret  Return value buffer.</div><div class='add'>+ * @return      Parsed integer.</div><div class='add'>+ * @post        `ret` is the number of characters read.</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * No consideration  is made  for integer  overflows.  As  the return  value is</div><div class='add'>+ * unsigned this function  has fully defined behaviour, but you  cannot know if</div><div class='add'>+ * there was an integer wrap-around or not.</div><div class='add'>+ */</div><div class='add'>+unsigned long ruby_scan_hex(const char *str, size_t len, size_t *ret);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Reentrant implementation of  quick sort.  If your  system provides something</div><div class='add'>+ * (like  C11 qsort_s),  this is  a thin  wrapper of  that routine.   Otherwise</div><div class='add'>+ * resorts to our own version.</div><div class='add'>+ */</div><div class='ctx'> #ifdef HAVE_GNU_QSORT_R</div><div class='ctx'> # define ruby_qsort qsort_r</div><div class='ctx'> #else</div><div class='ctx'> void ruby_qsort(void *, const size_t, const size_t,</div><div class='del'>-		int (*)(const void *, const void *, void *), void *);</div><div class='add'>+                int (*)(const void *, const void *, void *), void *);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-void ruby_setenv(const char *, const char *);</div><div class='del'>-void ruby_unsetenv(const char *);</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Sets  an environment  variable.   In case  of  POSIX this  is  a wrapper  of</div><div class='add'>+ * `setenv(3)`.  But there are systems which lack one.  We try hard emulating.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  key                  An environment variable.</div><div class='add'>+ * @param[in]  val                  A value to be associated with `key`, or 0.</div><div class='add'>+ * @exception  rb_eSystemCallError  `setenv(3)` failed for some reason.</div><div class='add'>+ * @post       Environment variable  `key` is created if  necessary.  Its value</div><div class='add'>+ *             is updated to be `val`.</div><div class='add'>+ */</div><div class='add'>+void ruby_setenv(const char *key, const char *val);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * Deletes the passed environment variable, if any.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  key                  An environment variable.</div><div class='add'>+ * @exception  rb_eSystemCallError  `unsetenv(3)` failed for some reason.</div><div class='add'>+ * @post       Environment variable `key` does not exist.</div><div class='add'>+ */</div><div class='add'>+void ruby_unsetenv(const char *key);</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RESTRICT()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+RBIMPL_ATTR_NONNULL(())</div><div class='add'>+/**</div><div class='add'>+ * This is our  own version of `strdup(3)` that uses  ruby_xmalloc() instead of</div><div class='add'>+ * system malloc (benefits our GC).</div><div class='add'>+ *</div><div class='add'>+ * @param[in]  str  Target C string to duplicate.</div><div class='add'>+ * @return     An allocated C string holding the identical contents.</div><div class='add'>+ * @note       Return value must be discarded using ruby_xfree().</div><div class='add'>+ */</div><div class='add'>+char *ruby_strdup(const char *str);</div><div class='ctx'> </div><div class='del'>-char *ruby_strdup(const char *);</div><div class='ctx'> #undef strdup</div><div class='add'>+/**</div><div class='add'>+ * @alias{ruby_strdup}</div><div class='add'>+ *</div><div class='add'>+ * @internal</div><div class='add'>+ *</div><div class='add'>+ * @shyouhei doesn't  think it  is a wise  idea.  ruby_strdup()'s  return value</div><div class='add'>+ * must be passed to ruby_xfree(), but this macro makes it almost impossible.</div><div class='add'>+ */</div><div class='ctx'> #define strdup(s) ruby_strdup(s)</div><div class='ctx'> </div><div class='add'>+RBIMPL_ATTR_NODISCARD()</div><div class='add'>+RBIMPL_ATTR_RESTRICT()</div><div class='add'>+RBIMPL_ATTR_RETURNS_NONNULL()</div><div class='add'>+/**</div><div class='add'>+ * This is our  own version of `getcwd(3)` that uses  ruby_xmalloc() instead of</div><div class='add'>+ * system malloc (benefits our GC).</div><div class='add'>+ *</div><div class='add'>+ * @return     An allocated C string holding the process working directory.</div><div class='add'>+ * @note       Return value must be discarded using ruby_xfree().</div><div class='add'>+ */</div><div class='ctx'> char *ruby_getcwd(void);</div><div class='ctx'> </div><div class='del'>-double ruby_strtod(const char *, char **);</div><div class='add'>+RBIMPL_ATTR_NONNULL((1))</div><div class='add'>+/**</div><div class='add'>+ * Our own locale-insensitive  version of `strtod(3)`.  The  conversion is done</div><div class='add'>+ * as if the current locale is set  to the "C" locale, no matter actual runtime</div><div class='add'>+ * locale settings.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]   str     Decimal  or hexadecimal  representation  of a  floating</div><div class='add'>+ *                      point number.</div><div class='add'>+ * @param[out]  endptr  NULL, or an arbitrary pointer (overwritten on return).</div><div class='add'>+ * @return      Converted number.</div><div class='add'>+ * @post        If `endptr` is not NULL, it  is updated to point the first such</div><div class='add'>+ *              byte where conversion failed.</div><div class='add'>+ * @note        This function sets `errno` on failure.</div><div class='add'>+ *                - `ERANGE`: Converted integer is out of range of `double`.</div><div class='add'>+ * @see         William  D.   Clinger,  "How  to Read  Floating  Point  Numbers</div><div class='add'>+ *              Accurately" in Proc.  ACM SIGPLAN '90, pp.  92-101.</div><div class='add'>+ *              https://doi.org/10.1145/93542.93557</div><div class='add'>+ */</div><div class='add'>+double ruby_strtod(const char *str, char **endptr);</div><div class='add'>+</div><div class='ctx'> #undef strtod</div><div class='add'>+/** @alias{ruby_strtod} */</div><div class='ctx'> #define strtod(s,e) ruby_strtod((s),(e))</div><div class='ctx'> </div><div class='del'>-void ruby_each_words(const char *, void (*)(const char*, int, void*), void *);</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='add'>+RBIMPL_ATTR_NONNULL((2))</div><div class='add'>+/**</div><div class='add'>+ * Scans the  passed string, with calling  the callback function every  time it</div><div class='add'>+ * encounters a  "word".  A word  here is a  series of characters  separated by</div><div class='add'>+ * either a space (of IEEE 1003.1 section 7.3.1.1), or a `','`.</div><div class='add'>+ *</div><div class='add'>+ * @param[in]      str   Target string to split into each words.</div><div class='add'>+ * @param[in]      func  Callback function.</div><div class='add'>+ * @param[in,out]  argv  Passed as-is to `func`.</div><div class='add'>+ */</div><div class='add'>+void ruby_each_words(const char *str, void (*func)(const char *word, int len, void *argv), void *argv);</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='ctx'> </div><div class='ctx'> #endif /* RUBY_UTIL_H */</div><div class='head'>diff --git a/include/ruby/version.h b/include/ruby/version.h<br/>index a4d319f646..18b3abc8d7 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/version.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/version.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/version.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/version.h</a></div><div class='hunk'>@@ -1,17 +1,17 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  ruby/version.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Wed May 13 12:56:56 JST 2009</div><div class='del'>-</div><div class='del'>-  Copyright (C) 1993-2009 Yukihiro Matsumoto</div><div class='del'>-  Copyright (C) 2000  Network Applied Communication Laboratory, Inc.</div><div class='del'>-  Copyright (C) 2000  Information-technology Promotion Agency, Japan</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-/*</div><div class='add'>+#ifndef RUBY_VERSION_H                               /*-*-C++-*-vi:se ft=cpp:*/</div><div class='add'>+#define RUBY_VERSION_H 1</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @date       Wed May 13 12:56:56 JST 2009</div><div class='add'>+ * @copyright  Copyright (C) 1993-2009 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  Copyright (C) 2000  Network Applied Communication Laboratory, Inc.</div><div class='add'>+ * @copyright  Copyright (C) 2000  Information-technology Promotion Agency, Japan</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ *</div><div class='ctx'>  * This file contains only</div><div class='ctx'>  * - never-changeable information, and</div><div class='ctx'>  * - interfaces accessible from extension libraries.</div><div class='hunk'>@@ -20,55 +20,140 @@</div><div class='ctx'>  * check the features with mkmf.rb instead.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='del'>-#ifndef RUBY_VERSION_H</div><div class='del'>-#define RUBY_VERSION_H 1</div><div class='add'>+/**</div><div class='add'>+ * @name The origin.</div><div class='add'>+ *</div><div class='add'>+ * These information never change.  Just written here to remember.</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-/* The origin. */</div><div class='add'>+/** Author of this project. */</div><div class='ctx'> #define RUBY_AUTHOR "Yukihiro Matsumoto"</div><div class='add'>+</div><div class='add'>+/** Ruby's birth year. */</div><div class='ctx'> #define RUBY_BIRTH_YEAR 1993</div><div class='add'>+</div><div class='add'>+/** Ruby's birth month. */</div><div class='ctx'> #define RUBY_BIRTH_MONTH 2</div><div class='add'>+</div><div class='add'>+/** Ruby's birth day. */</div><div class='ctx'> #define RUBY_BIRTH_DAY 24</div><div class='ctx'> </div><div class='del'>-/* API version */</div><div class='del'>-#define RUBY_API_VERSION_MAJOR 2</div><div class='del'>-#define RUBY_API_VERSION_MINOR 6</div><div class='add'>+/** @} */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * @name The API version.</div><div class='add'>+ *</div><div class='add'>+ * API version  is different from  binary version.   These numbers are  for API</div><div class='add'>+ * stability.  When you  have distinct API versions x and  y, you cannot expect</div><div class='add'>+ * codes targeted to x also works for y.</div><div class='add'>+ *</div><div class='add'>+ * However   let   us  repeat   here   that   it's   a   BAD  idea   to   check</div><div class='add'>+ * #RUBY_API_VERSION_CODE form extension libraries.  Different API versions are</div><div class='add'>+ * just different.  There is no such thing like upper compatibility.</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Major version.  This  digit changes sometimes for various  reasons, but that</div><div class='add'>+ * doesn't mean a total rewrite.  Practically  when it comes to API versioning,</div><div class='add'>+ * major and minor version changes are equally catastrophic.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_API_VERSION_MAJOR 3</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Minor  version.   As of  writing  this  version changes  annually.   Greater</div><div class='add'>+ * version doesn't mean "better"; they just mean years passed.</div><div class='add'>+ */</div><div class='add'>+#define RUBY_API_VERSION_MINOR 2</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Teeny version.  This digit  is kind of reserved these days.   Kept 0 for the</div><div class='add'>+ * entire 2.x era.  Waiting for future uses.</div><div class='add'>+ */</div><div class='ctx'> #define RUBY_API_VERSION_TEENY 0</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This macro is API versions encoded into a C integer.</div><div class='add'>+ *</div><div class='add'>+ * @note  Use mkmf.</div><div class='add'>+ * @note  Don't rely on it.</div><div class='add'>+ */</div><div class='ctx'> #define RUBY_API_VERSION_CODE (RUBY_API_VERSION_MAJOR*10000+RUBY_API_VERSION_MINOR*100+RUBY_API_VERSION_TEENY)</div><div class='ctx'> </div><div class='del'>-#ifdef RUBY_EXTERN</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='add'>+/** @} */</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+#ifdef RUBY_EXTERN</div><div class='add'>+/* Internal note: this file could be included from verconf.mk _before_</div><div class='add'>+ * generating config.h, on Windows.  The #ifdef above is to trick such</div><div class='add'>+ * situation. */</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- * Interfaces from extension libraries.</div><div class='add'>+/**</div><div class='add'>+ * @name Interfaces from extension libraries.</div><div class='ctx'>  *</div><div class='ctx'>  * Before using these infos, think thrice whether they are really</div><div class='ctx'>  * necessary or not, and if the answer was yes, think twice a week</div><div class='ctx'>  * later again.</div><div class='add'>+ *</div><div class='add'>+ * @{</div><div class='ctx'>  */</div><div class='add'>+</div><div class='add'>+/** API versions, in { major, minor, teeny } order.  */</div><div class='ctx'> RUBY_EXTERN const int ruby_api_version[3];</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Stringised version.</div><div class='add'>+ *</div><div class='add'>+ * @note  This is  the runtime version, not  the API version.  For  instance it</div><div class='add'>+ *        was `"2.5.9"` when ::ruby_api_version was `{ 2, 5, 0 }`.</div><div class='add'>+ */</div><div class='ctx'> RUBY_EXTERN const char ruby_version[];</div><div class='add'>+</div><div class='add'>+/** Date of release, in a C string. */</div><div class='ctx'> RUBY_EXTERN const char ruby_release_date[];</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Target platform identifier, in a C string.</div><div class='add'>+ *</div><div class='add'>+ * @note  Seasoned  UNIX   programmers  should   beware  that   this  "platform</div><div class='add'>+ *        identifier"  is  our invention;  not  always  identical to  so-called</div><div class='add'>+ *        target triplets  that GNU systems  use.  For instance  on @shyouhei's</div><div class='add'>+ *        machine, ::ruby_platform is `"x64_64-linux"` while its target triplet</div><div class='add'>+ *        is `x86_64-pc-linux-gnu`.</div><div class='add'>+ * @note  Note also that we support Windows.</div><div class='add'>+ */</div><div class='ctx'> RUBY_EXTERN const char ruby_platform[];</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This  is a  monotonic  increasing integer  that  describes specific  "patch"</div><div class='add'>+ * level.  You can know the exact changeset your binary is running by this info</div><div class='add'>+ * (and ::ruby_version), unless  this is -1.  -1 means there  is no release yet</div><div class='add'>+ * for the version; ruby is actively developed. 0 means the initial GA version.</div><div class='add'>+ */</div><div class='ctx'> RUBY_EXTERN const int  ruby_patchlevel;</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This is what `ruby -v` prints to the standard error.  Something like:</div><div class='add'>+ * `"ruby 2.5.9p229 (2021-04-05 revision 67829) [x86_64-linux]"`. This doesn't</div><div class='add'>+ * include runtime options like a JIT being enabled.</div><div class='add'>+ */</div><div class='ctx'> RUBY_EXTERN const char ruby_description[];</div><div class='add'>+</div><div class='add'>+/** Copyright notice. */</div><div class='ctx'> RUBY_EXTERN const char ruby_copyright[];</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * This  is just  `"ruby"`  for  us.  But  different  implementations can  have</div><div class='add'>+ * different strings here.</div><div class='add'>+ */</div><div class='ctx'> RUBY_EXTERN const char ruby_engine[];</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='add'>+/** @} */</div><div class='ctx'> </div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #endif</div><div class='head'>diff --git a/include/ruby/vm.h b/include/ruby/vm.h<br/>index 1bb170d2ce..3458c28be7 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/vm.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/vm.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/vm.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/vm.h</a></div><div class='hunk'>@@ -1,37 +1,34 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  ruby/vm.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Sat May 31 15:17:36 2008</div><div class='del'>-</div><div class='del'>-  Copyright (C) 2008 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_VM_H</div><div class='add'>+#ifndef RUBY_VM_H                                    /*-*-C++-*-vi:se ft=cpp:*/</div><div class='ctx'> #define RUBY_VM_H 1</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-</div><div class='del'>-/* Place holder.</div><div class='add'>+/**</div><div class='add'>+ * @file</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @date       Sat May 31 15:17:36 2008</div><div class='add'>+ * @copyright  Copyright (C) 2008 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='ctx'>  *</div><div class='del'>- * We will prepare VM creation/control APIs on 1.9.2 or later.</div><div class='del'>- * If you have an interest about it, please see mvm branch.</div><div class='del'>- * https://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/mvm/</div><div class='add'>+ * We  planned to  have multiple  VMs  run side-by-side.   The API  here was  a</div><div class='add'>+ * preparation of that feature.  The topic branch was eventually abandoned, and</div><div class='add'>+ * we now have Ractor.  This file is kind of obsolescent.</div><div class='ctx'>  */</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_BEGIN()</div><div class='ctx'> </div><div class='del'>-/* VM type declaration */</div><div class='add'>+/**</div><div class='add'>+ * The opaque struct to hold VM internals.  Its fields are intentionally hidden</div><div class='add'>+ * from extension libraries because it changes drastically time to time.</div><div class='add'>+ */</div><div class='ctx'> typedef struct rb_vm_struct ruby_vm_t;</div><div class='ctx'> </div><div class='del'>-/* core API */</div><div class='add'>+/**</div><div class='add'>+ * Destructs the  passed VM.   You don't  have to call  this API  directly now,</div><div class='add'>+ * because there is  no way to create one.   There is only one VM  at one time.</div><div class='add'>+ * ruby_stop() should just suffice.</div><div class='add'>+ */</div><div class='ctx'> int ruby_vm_destruct(ruby_vm_t *vm);</div><div class='ctx'> </div><div class='ctx'> /**</div><div class='hunk'>@@ -52,13 +49,6 @@ int ruby_vm_destruct(ruby_vm_t *vm);</div><div class='ctx'>  */</div><div class='ctx'> void ruby_vm_at_exit(void(*func)(ruby_vm_t *));</div><div class='ctx'> </div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='del'>-#endif</div><div class='add'>+RBIMPL_SYMBOL_EXPORT_END()</div><div class='ctx'> </div><div class='ctx'> #endif /* RUBY_VM_H */</div><div class='head'>diff --git a/include/ruby/win32.h b/include/ruby/win32.h<br/>index fe1978fdde..18de3a17d8 100644<br/>--- a/<a href='/ruby.git/tree/include/ruby/win32.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>include/ruby/win32.h</a><br/>+++ b/<a href='/ruby.git/tree/include/ruby/win32.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>include/ruby/win32.h</a></div><div class='hunk'>@@ -19,11 +19,6 @@ RUBY_SYMBOL_EXPORT_BEGIN</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * Definitions for NT port of Perl</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  * Ok now we can include the normal include files.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -130,46 +125,57 @@ typedef unsigned int uintptr_t;</div><div class='ctx'> #define O_SHARE_DELETE 0x20000000 /* for rb_w32_open(), rb_w32_wopen() */</div><div class='ctx'> </div><div class='ctx'> typedef int clockid_t;</div><div class='add'>+#if defined(__MINGW32__)</div><div class='add'>+#undef CLOCK_PROCESS_CPUTIME_ID</div><div class='add'>+#undef CLOCK_THREAD_CPUTIME_ID</div><div class='add'>+#undef CLOCK_REALTIME_COARSE</div><div class='add'>+#endif</div><div class='add'>+#if defined(HAVE_CLOCK_GETTIME) &amp;&amp; !defined(CLOCK_REALTIME)</div><div class='ctx'> #define CLOCK_REALTIME  0</div><div class='ctx'> #define CLOCK_MONOTONIC 1</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #undef utime</div><div class='ctx'> #undef lseek</div><div class='ctx'> #undef stat</div><div class='ctx'> #undef fstat</div><div class='ctx'> #ifdef RUBY_EXPORT</div><div class='del'>-#define utime(_p, _t)		rb_w32_utime(_p, _t)</div><div class='add'>+#define utime(_p, _t)		rb_w32_uutime(_p, _t)</div><div class='ctx'> #undef HAVE_UTIMES</div><div class='ctx'> #define HAVE_UTIMES 1</div><div class='del'>-#define utimes(_p, _t)		rb_w32_utimes(_p, _t)</div><div class='add'>+#define utimes(_p, _t)		rb_w32_uutimes(_p, _t)</div><div class='ctx'> #undef HAVE_UTIMENSAT</div><div class='ctx'> #define HAVE_UTIMENSAT 1</div><div class='ctx'> #define AT_FDCWD		-100</div><div class='del'>-#define utimensat(_d, _p, _t, _f)	rb_w32_utimensat(_d, _p, _t, _f)</div><div class='del'>-#define lseek(_f, _o, _w)	_lseeki64(_f, _o, _w)</div><div class='add'>+#define utimensat(_d, _p, _t, _f)	rb_w32_uutimensat(_d, _p, _t, _f)</div><div class='add'>+#define lseek(_f, _o, _w)	rb_w32_lseek(_f, _o, _w)</div><div class='ctx'> </div><div class='ctx'> #define pipe(p)			rb_w32_pipe(p)</div><div class='del'>-#define open			rb_w32_open</div><div class='add'>+#define open			rb_w32_uopen</div><div class='ctx'> #define close(h)		rb_w32_close(h)</div><div class='ctx'> #define fclose(f)		rb_w32_fclose(f)</div><div class='ctx'> #define read(f, b, s)		rb_w32_read(f, b, s)</div><div class='ctx'> #define write(f, b, s)		rb_w32_write(f, b, s)</div><div class='ctx'> #define getpid()		rb_w32_getpid()</div><div class='add'>+#undef HAVE_GETPPID</div><div class='add'>+#define HAVE_GETPPID 1</div><div class='ctx'> #define getppid()		rb_w32_getppid()</div><div class='ctx'> #define sleep(x)		rb_w32_Sleep((x)*1000)</div><div class='ctx'> #define Sleep(msec)		(void)rb_w32_Sleep(msec)</div><div class='ctx'> </div><div class='add'>+#undef HAVE_EXECV</div><div class='add'>+#define HAVE_EXECV 1</div><div class='ctx'> #undef execv</div><div class='del'>-#define execv(path,argv)	rb_w32_aspawn(P_OVERLAY,path,argv)</div><div class='add'>+#define execv(path,argv)	rb_w32_uaspawn(P_OVERLAY,path,argv)</div><div class='ctx'> #undef isatty</div><div class='ctx'> #define isatty(h)		rb_w32_isatty(h)</div><div class='ctx'> </div><div class='ctx'> #undef mkdir</div><div class='del'>-#define mkdir(p, m)		rb_w32_mkdir(p, m)</div><div class='add'>+#define mkdir(p, m)		rb_w32_umkdir(p, m)</div><div class='ctx'> #undef rmdir</div><div class='del'>-#define rmdir(p)		rb_w32_rmdir(p)</div><div class='add'>+#define rmdir(p)		rb_w32_urmdir(p)</div><div class='ctx'> #undef unlink</div><div class='del'>-#define unlink(p)		rb_w32_unlink(p)</div><div class='add'>+#define unlink(p)		rb_w32_uunlink(p)</div><div class='ctx'> #endif /* RUBY_EXPORT */</div><div class='ctx'> </div><div class='ctx'> /* same with stati64 except the size of st_ino and nanosecond timestamps */</div><div class='hunk'>@@ -191,8 +197,6 @@ struct stati128 {</div><div class='ctx'>   long st_ctimensec;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-#if SIZEOF_OFF_T == 8</div><div class='del'>-#define off_t __int64</div><div class='ctx'> #define stat stati128</div><div class='ctx'> #undef SIZEOF_STRUCT_STAT_ST_INO</div><div class='ctx'> #define SIZEOF_STRUCT_STAT_ST_INO sizeof(unsigned __int64)</div><div class='hunk'>@@ -201,15 +205,9 @@ struct stati128 {</div><div class='ctx'> #define HAVE_STRUCT_STAT_ST_MTIMENSEC</div><div class='ctx'> #define HAVE_STRUCT_STAT_ST_CTIMENSEC</div><div class='ctx'> #define fstat(fd,st)		rb_w32_fstati128(fd,st)</div><div class='del'>-#define stati128(path, st)	rb_w32_stati128(path,st)</div><div class='del'>-#else</div><div class='del'>-#define stat(path,st)		rb_w32_stat(path,st)</div><div class='del'>-#define fstat(fd,st)		rb_w32_fstat(fd,st)</div><div class='del'>-extern int rb_w32_stat(const char *, struct stat *);</div><div class='del'>-extern int rb_w32_fstat(int, struct stat *);</div><div class='del'>-#endif</div><div class='del'>-#define lstat(path,st)		rb_w32_lstati128(path,st)</div><div class='del'>-#define access(path,mode)	rb_w32_access(path,mode)</div><div class='add'>+#define stati128(path, st)	rb_w32_ustati128(path,st)</div><div class='add'>+#define lstat(path,st)		rb_w32_ulstati128(path,st)</div><div class='add'>+#define access(path,mode)	rb_w32_uaccess(path,mode)</div><div class='ctx'> </div><div class='ctx'> #define strcasecmp		_stricmp</div><div class='ctx'> #define strncasecmp		_strnicmp</div><div class='hunk'>@@ -258,7 +256,6 @@ struct ifaddrs {</div><div class='ctx'> </div><div class='ctx'> extern void   rb_w32_sysinit(int *, char ***);</div><div class='ctx'> extern DWORD  rb_w32_osid(void);</div><div class='del'>-extern rb_pid_t  rb_w32_pipe_exec(const char *, const char *, int, int *, int *);</div><div class='ctx'> extern int    flock(int fd, int oper);</div><div class='ctx'> extern int    rb_w32_io_cancelable_p(int);</div><div class='ctx'> extern int    rb_w32_is_socket(int);</div><div class='hunk'>@@ -294,10 +291,8 @@ extern struct servent  *WSAAPI rb_w32_getservbyport(int, const char *);</div><div class='ctx'> extern int    socketpair(int, int, int, int *);</div><div class='ctx'> extern int    getifaddrs(struct ifaddrs **);</div><div class='ctx'> extern void   freeifaddrs(struct ifaddrs *);</div><div class='del'>-extern char * rb_w32_getcwd(char *, int);</div><div class='add'>+extern char * rb_w32_ugetcwd(char *, int);</div><div class='ctx'> extern char * rb_w32_ugetenv(const char *);</div><div class='del'>-extern char * rb_w32_getenv(const char *);</div><div class='del'>-extern int    rb_w32_rename(const char *, const char *);</div><div class='ctx'> extern int    rb_w32_urename(const char *, const char *);</div><div class='ctx'> extern char **rb_w32_get_environ(void);</div><div class='ctx'> extern void   rb_w32_free_environ(char **);</div><div class='hunk'>@@ -306,44 +301,33 @@ extern const char *WSAAPI rb_w32_inet_ntop(int,const void *,char *,size_t);</div><div class='ctx'> extern int WSAAPI rb_w32_inet_pton(int,const char *,void *);</div><div class='ctx'> extern DWORD  rb_w32_osver(void);</div><div class='ctx'> </div><div class='del'>-extern int chown(const char *, int, int);</div><div class='ctx'> extern int rb_w32_uchown(const char *, int, int);</div><div class='del'>-extern int link(const char *, const char *);</div><div class='ctx'> extern int rb_w32_ulink(const char *, const char *);</div><div class='del'>-extern ssize_t readlink(const char *, char *, size_t);</div><div class='ctx'> extern ssize_t rb_w32_ureadlink(const char *, char *, size_t);</div><div class='del'>-extern ssize_t rb_w32_wreadlink(const WCHAR *, WCHAR *, size_t);</div><div class='del'>-extern int symlink(const char *src, const char *link);</div><div class='ctx'> extern int rb_w32_usymlink(const char *src, const char *link);</div><div class='ctx'> extern int gettimeofday(struct timeval *, struct timezone *);</div><div class='ctx'> extern int clock_gettime(clockid_t, struct timespec *);</div><div class='ctx'> extern int clock_getres(clockid_t, struct timespec *);</div><div class='del'>-extern rb_pid_t waitpid (rb_pid_t, int *, int);</div><div class='del'>-extern rb_pid_t rb_w32_spawn(int, const char *, const char*);</div><div class='del'>-extern rb_pid_t rb_w32_aspawn(int, const char *, char *const *);</div><div class='del'>-extern rb_pid_t rb_w32_aspawn_flags(int, const char *, char *const *, DWORD);</div><div class='add'>+extern rb_pid_t waitpid(rb_pid_t, int *, int);</div><div class='add'>+extern rb_pid_t wait(int *);</div><div class='ctx'> extern rb_pid_t rb_w32_uspawn(int, const char *, const char*);</div><div class='ctx'> extern rb_pid_t rb_w32_uaspawn(int, const char *, char *const *);</div><div class='ctx'> extern rb_pid_t rb_w32_uaspawn_flags(int, const char *, char *const *, DWORD);</div><div class='del'>-extern int kill(int, int);</div><div class='add'>+#undef HAVE_KILL</div><div class='add'>+#define HAVE_KILL 1</div><div class='add'>+extern int kill(rb_pid_t, int);</div><div class='ctx'> extern int fcntl(int, int, ...);</div><div class='ctx'> extern int rb_w32_set_nonblock(int);</div><div class='ctx'> extern rb_pid_t rb_w32_getpid(void);</div><div class='ctx'> extern rb_pid_t rb_w32_getppid(void);</div><div class='ctx'> extern int rb_w32_isatty(int);</div><div class='ctx'> extern int rb_w32_uchdir(const char *);</div><div class='del'>-extern int rb_w32_mkdir(const char *, int);</div><div class='ctx'> extern int rb_w32_umkdir(const char *, int);</div><div class='del'>-extern int rb_w32_rmdir(const char *);</div><div class='ctx'> extern int rb_w32_urmdir(const char *);</div><div class='del'>-extern int rb_w32_unlink(const char *);</div><div class='ctx'> extern int rb_w32_uunlink(const char *);</div><div class='ctx'> extern int rb_w32_uchmod(const char *, int);</div><div class='del'>-extern int rb_w32_stati128(const char *, struct stati128 *);</div><div class='ctx'> extern int rb_w32_ustati128(const char *, struct stati128 *);</div><div class='del'>-extern int rb_w32_lstati128(const char *, struct stati128 *);</div><div class='ctx'> extern int rb_w32_ulstati128(const char *, struct stati128 *);</div><div class='del'>-extern int rb_w32_access(const char *, int);</div><div class='ctx'> extern int rb_w32_uaccess(const char *, int);</div><div class='ctx'> extern char rb_w32_fd_is_text(int);</div><div class='ctx'> extern int rb_w32_fstati128(int, struct stati128 *);</div><div class='hunk'>@@ -365,14 +349,6 @@ rb_infinity_float(void)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if !defined __MINGW32__ || defined __NO_ISOCEXT</div><div class='del'>-#ifndef isnan</div><div class='del'>-#define isnan(x) _isnan(x)</div><div class='del'>-#endif</div><div class='del'>-static inline int</div><div class='del'>-finite(double x)</div><div class='del'>-{</div><div class='del'>-    return _finite(x);</div><div class='del'>-}</div><div class='ctx'> #ifndef copysign</div><div class='ctx'> #define copysign(a, b) _copysign(a, b)</div><div class='ctx'> #endif</div><div class='hunk'>@@ -381,8 +357,6 @@ scalb(double a, long b)</div><div class='ctx'> {</div><div class='ctx'>     return _scalb(a, b);</div><div class='ctx'> }</div><div class='del'>-#else</div><div class='del'>-__declspec(dllimport) extern int finite(double);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #if !defined S_IFIFO &amp;&amp; defined _S_IFIFO</div><div class='hunk'>@@ -420,6 +394,7 @@ __declspec(dllimport) extern int finite(double);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #define S_IFLNK 0xa000</div><div class='add'>+#define S_IFSOCK 0xc000</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * define this so we can do inplace editing</div><div class='hunk'>@@ -427,9 +402,9 @@ __declspec(dllimport) extern int finite(double);</div><div class='ctx'> </div><div class='ctx'> #define SUFFIX</div><div class='ctx'> </div><div class='del'>-extern int rb_w32_ftruncate(int fd, off_t length);</div><div class='del'>-extern int rb_w32_truncate(const char *path, off_t length);</div><div class='del'>-extern int rb_w32_utruncate(const char *path, off_t length);</div><div class='add'>+extern int rb_w32_ftruncate(int fd, rb_off_t length);</div><div class='add'>+extern int rb_w32_truncate(const char *path, rb_off_t length);</div><div class='add'>+extern int rb_w32_utruncate(const char *path, rb_off_t length);</div><div class='ctx'> </div><div class='ctx'> #undef HAVE_FTRUNCATE</div><div class='ctx'> #define HAVE_FTRUNCATE 1</div><div class='hunk'>@@ -441,11 +416,7 @@ extern int rb_w32_utruncate(const char *path, off_t length);</div><div class='ctx'> </div><div class='ctx'> #undef HAVE_TRUNCATE</div><div class='ctx'> #define HAVE_TRUNCATE 1</div><div class='del'>-#if defined HAVE_TRUNCATE64</div><div class='del'>-#define truncate truncate64</div><div class='del'>-#else</div><div class='del'>-#define truncate rb_w32_truncate</div><div class='del'>-#endif</div><div class='add'>+#define truncate rb_w32_utruncate</div><div class='ctx'> </div><div class='ctx'> #if defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1400 &amp;&amp; _MSC_VER &lt; 1800</div><div class='ctx'> #define strtoll  _strtoi64</div><div class='hunk'>@@ -683,6 +654,8 @@ extern char *rb_w32_strerror(int);</div><div class='ctx'> #undef setsockopt</div><div class='ctx'> #define setsockopt(s, v, n, o, l) rb_w32_setsockopt(s, v, n, o, l)</div><div class='ctx'> </div><div class='add'>+#undef HAVE_SHUTDOWN</div><div class='add'>+#define HAVE_SHUTDOWN 1</div><div class='ctx'> #undef shutdown</div><div class='ctx'> #define shutdown(s, h)		rb_w32_shutdown(s, h)</div><div class='ctx'> </div><div class='hunk'>@@ -714,13 +687,13 @@ extern char *rb_w32_strerror(int);</div><div class='ctx'> #define get_osfhandle(h)	rb_w32_get_osfhandle(h)</div><div class='ctx'> </div><div class='ctx'> #undef getcwd</div><div class='del'>-#define getcwd(b, s)		rb_w32_getcwd(b, s)</div><div class='add'>+#define getcwd(b, s)		rb_w32_ugetcwd(b, s)</div><div class='ctx'> </div><div class='ctx'> #undef getenv</div><div class='del'>-#define getenv(n)		rb_w32_getenv(n)</div><div class='add'>+#define getenv(n)		rb_w32_ugetenv(n)</div><div class='ctx'> </div><div class='ctx'> #undef rename</div><div class='del'>-#define rename(o, n)		rb_w32_rename(o, n)</div><div class='add'>+#define rename(o, n)		rb_w32_urename(o, n)</div><div class='ctx'> </div><div class='ctx'> #undef times</div><div class='ctx'> #define times(t)		rb_w32_times(t)</div><div class='hunk'>@@ -730,10 +703,10 @@ extern char *rb_w32_strerror(int);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> struct tms {</div><div class='del'>-	long	tms_utime;</div><div class='del'>-	long	tms_stime;</div><div class='del'>-	long	tms_cutime;</div><div class='del'>-	long	tms_cstime;</div><div class='add'>+        long	tms_utime;</div><div class='add'>+        long	tms_stime;</div><div class='add'>+        long	tms_cutime;</div><div class='add'>+        long	tms_cstime;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> int rb_w32_times(struct tms *);</div><div class='hunk'>@@ -743,7 +716,6 @@ struct tm *localtime_r(const time_t *, struct tm *);</div><div class='ctx'> </div><div class='ctx'> /* thread stuff */</div><div class='ctx'> int  rb_w32_sleep(unsigned long msec);</div><div class='del'>-int  rb_w32_open(const char *, int, ...);</div><div class='ctx'> int  rb_w32_uopen(const char *, int, ...);</div><div class='ctx'> int  rb_w32_wopen(const WCHAR *, int, ...);</div><div class='ctx'> int  rb_w32_close(int);</div><div class='hunk'>@@ -751,11 +723,9 @@ int  rb_w32_fclose(FILE*);</div><div class='ctx'> int  rb_w32_pipe(int[2]);</div><div class='ctx'> ssize_t rb_w32_read(int, void *, size_t);</div><div class='ctx'> ssize_t rb_w32_write(int, const void *, size_t);</div><div class='del'>-int  rb_w32_utime(const char *, const struct utimbuf *);</div><div class='add'>+rb_off_t  rb_w32_lseek(int, rb_off_t, int);</div><div class='ctx'> int  rb_w32_uutime(const char *, const struct utimbuf *);</div><div class='del'>-int  rb_w32_utimes(const char *, const struct timeval *);</div><div class='ctx'> int  rb_w32_uutimes(const char *, const struct timeval *);</div><div class='del'>-int  rb_w32_utimensat(int /* must be AT_FDCWD */, const char *, const struct timespec *, int /* must be 0 */);</div><div class='ctx'> int  rb_w32_uutimensat(int /* must be AT_FDCWD */, const char *, const struct timespec *, int /* must be 0 */);</div><div class='ctx'> long rb_w32_write_console(uintptr_t, int);	/* use uintptr_t instead of VALUE because it's not defined yet here */</div><div class='ctx'> int  WINAPI rb_w32_Sleep(unsigned long msec);</div><div class='hunk'>@@ -766,6 +736,27 @@ int  rb_w32_unwrap_io_handle(int);</div><div class='ctx'> WCHAR *rb_w32_mbstr_to_wstr(UINT, const char *, int, long *);</div><div class='ctx'> char *rb_w32_wstr_to_mbstr(UINT, const WCHAR *, int, long *);</div><div class='ctx'> </div><div class='add'>+DEPRECATED_BY(rb_w32_ugetcwd, char *rb_w32_getcwd(char *, int));</div><div class='add'>+DEPRECATED_BY(rb_w32_ugetenv, char *rb_w32_getenv(const char *));</div><div class='add'>+DEPRECATED_BY(rb_w32_urename, int rb_w32_rename(const char *, const char *));</div><div class='add'>+DEPRECATED_BY(rb_w32_uopen, int rb_w32_open(const char *, int, ...));</div><div class='add'>+DEPRECATED_BY(rb_w32_uchown, int chown(const char *, int, int));</div><div class='add'>+DEPRECATED_BY(rb_w32_ulink, int link(const char *, const char *));</div><div class='add'>+DEPRECATED_BY(rb_w32_ureadlink, ssize_t readlink(const char *, char *, size_t));</div><div class='add'>+DEPRECATED_BY(rb_w32_usymlink, int symlink(const char *src, const char *link));</div><div class='add'>+DEPRECATED_BY(rb_w32_umkdir, int rb_w32_mkdir(const char *, int));</div><div class='add'>+DEPRECATED_BY(rb_w32_urmdir, int rb_w32_rmdir(const char *));</div><div class='add'>+DEPRECATED_BY(rb_w32_uunlink, int rb_w32_unlink(const char *));</div><div class='add'>+DEPRECATED_BY(rb_w32_uutime, int rb_w32_utime(const char *, const struct utimbuf *));</div><div class='add'>+DEPRECATED_BY(rb_w32_uutimes, int rb_w32_utimes(const char *, const struct timeval *));</div><div class='add'>+DEPRECATED_BY(rb_w32_uutimensat, int rb_w32_utimensat(int, const char *, const struct timespec *, int));</div><div class='add'>+DEPRECATED_BY(rb_w32_ustati128, int rb_w32_stati128(const char *, struct stati128 *));</div><div class='add'>+DEPRECATED_BY(rb_w32_ulstati128, int rb_w32_lstati128(const char *, struct stati128 *));</div><div class='add'>+DEPRECATED_BY(rb_w32_uaccess, int rb_w32_access(const char *, int));</div><div class='add'>+DEPRECATED_BY(rb_w32_uspawn, rb_pid_t rb_w32_spawn(int, const char *, const char*));</div><div class='add'>+DEPRECATED_BY(rb_w32_uaspawn, rb_pid_t rb_w32_aspawn(int, const char *, char *const *));</div><div class='add'>+DEPRECATED_BY(rb_w32_uaspawn_flags, rb_pid_t rb_w32_aspawn_flags(int, const char *, char *const *, DWORD));</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'> == ***CAUTION***</div><div class='ctx'> Since this function is very dangerous, ((*NEVER*))</div><div class='hunk'>@@ -814,6 +805,25 @@ double rb_w32_pow(double x, double y);</div><div class='ctx'> #define pow rb_w32_pow</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+// mmap tiny emulation</div><div class='add'>+#define MAP_FAILED	((void *)-1)</div><div class='add'>+</div><div class='add'>+#define PROT_READ	0x01</div><div class='add'>+#define PROT_WRITE	0x02</div><div class='add'>+#define PROT_EXEC	0x04</div><div class='add'>+</div><div class='add'>+#define MAP_PRIVATE	0x0002</div><div class='add'>+#define MAP_ANON	0x1000</div><div class='add'>+#define MAP_ANONYMOUS	MAP_ANON</div><div class='add'>+</div><div class='add'>+extern void *rb_w32_mmap(void *, size_t, int, int, int, rb_off_t);</div><div class='add'>+extern int rb_w32_munmap(void *, size_t);</div><div class='add'>+extern int rb_w32_mprotect(void *, size_t, int);</div><div class='add'>+</div><div class='add'>+#define mmap(a, l, p, f, d, o) rb_w32_mmap(a, l, p, f, d, o)</div><div class='add'>+#define munmap(a, l) rb_w32_munmap(a, l)</div><div class='add'>+#define mprotect(a, l, prot) rb_w32_mprotect(a, l, prot)</div><div class='add'>+</div><div class='ctx'> #if defined(__cplusplus)</div><div class='ctx'> #if 0</div><div class='ctx'> { /* satisfy cc-mode */</div><div class='head'>diff --git a/inits.c b/inits.c<br/>index f730903b5e..e809b56cc9 100644<br/>--- a/<a href='/ruby.git/tree/inits.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>inits.c</a><br/>+++ b/<a href='/ruby.git/tree/inits.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>inits.c</a></div><div class='hunk'>@@ -9,19 +9,26 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "internal.h"</div><div class='add'>+#include "internal/inits.h"</div><div class='add'>+#include "ruby.h"</div><div class='add'>+#include "builtin.h"</div><div class='add'>+static void Init_builtin_prelude(void);</div><div class='add'>+#include "prelude.rbinc"</div><div class='ctx'> </div><div class='ctx'> #define CALL(n) {void Init_##n(void); Init_##n();}</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_call_inits(void)</div><div class='ctx'> {</div><div class='add'>+    CALL(default_shapes);</div><div class='add'>+    CALL(Thread_Mutex);</div><div class='ctx'> #if USE_TRANSIENT_HEAP</div><div class='ctx'>     CALL(TransientHeap);</div><div class='ctx'> #endif</div><div class='ctx'>     CALL(vm_postponed_job);</div><div class='ctx'>     CALL(Method);</div><div class='ctx'>     CALL(RandomSeedCore);</div><div class='add'>+    CALL(encodings);</div><div class='ctx'>     CALL(sym);</div><div class='ctx'>     CALL(var_tables);</div><div class='ctx'>     CALL(Object);</div><div class='hunk'>@@ -32,7 +39,6 @@ rb_call_inits(void)</div><div class='ctx'>     CALL(String);</div><div class='ctx'>     CALL(Exception);</div><div class='ctx'>     CALL(eval);</div><div class='del'>-    CALL(safe);</div><div class='ctx'>     CALL(jump);</div><div class='ctx'>     CALL(Numeric);</div><div class='ctx'>     CALL(Bignum);</div><div class='hunk'>@@ -46,6 +52,7 @@ rb_call_inits(void)</div><div class='ctx'>     CALL(marshal);</div><div class='ctx'>     CALL(Range);</div><div class='ctx'>     CALL(IO);</div><div class='add'>+    CALL(IO_Buffer)</div><div class='ctx'>     CALL(Dir);</div><div class='ctx'>     CALL(Time);</div><div class='ctx'>     CALL(Random);</div><div class='hunk'>@@ -56,16 +63,52 @@ rb_call_inits(void)</div><div class='ctx'>     CALL(Math);</div><div class='ctx'>     CALL(GC);</div><div class='ctx'>     CALL(Enumerator);</div><div class='add'>+    CALL(Ractor);</div><div class='ctx'>     CALL(VM);</div><div class='ctx'>     CALL(ISeq);</div><div class='ctx'>     CALL(Thread);</div><div class='add'>+    CALL(Fiber_Scheduler);</div><div class='ctx'>     CALL(process);</div><div class='ctx'>     CALL(Cont);</div><div class='ctx'>     CALL(Rational);</div><div class='ctx'>     CALL(Complex);</div><div class='add'>+    CALL(MemoryView);</div><div class='ctx'>     CALL(version);</div><div class='ctx'>     CALL(vm_trace);</div><div class='ctx'>     CALL(vm_stack_canary);</div><div class='ctx'>     CALL(ast);</div><div class='add'>+    CALL(gc_stress);</div><div class='add'>+    CALL(shape);</div><div class='add'>+</div><div class='add'>+    // enable builtin loading</div><div class='add'>+    CALL(builtin);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_call_builtin_inits(void)</div><div class='add'>+{</div><div class='add'>+#define BUILTIN(n) CALL(builtin_##n)</div><div class='add'>+    BUILTIN(gc);</div><div class='add'>+    BUILTIN(ractor);</div><div class='add'>+    BUILTIN(numeric);</div><div class='add'>+    BUILTIN(io);</div><div class='add'>+    BUILTIN(dir);</div><div class='add'>+    BUILTIN(ast);</div><div class='add'>+    BUILTIN(trace_point);</div><div class='add'>+    BUILTIN(pack);</div><div class='add'>+    BUILTIN(warning);</div><div class='add'>+    BUILTIN(array);</div><div class='add'>+    BUILTIN(kernel);</div><div class='add'>+    BUILTIN(symbol);</div><div class='add'>+    BUILTIN(timev);</div><div class='add'>+    BUILTIN(thread_sync);</div><div class='add'>+    BUILTIN(yjit);</div><div class='add'>+    BUILTIN(nilclass);</div><div class='add'>+    BUILTIN(marshal);</div><div class='add'>+#if USE_MJIT</div><div class='add'>+    BUILTIN(mjit);</div><div class='add'>+    BUILTIN(mjit_c);</div><div class='add'>+#endif</div><div class='add'>+    Init_builtin_prelude();</div><div class='ctx'> }</div><div class='ctx'> #undef CALL</div><div class='head'>diff --git a/insns.def b/insns.def<br/>index 983a20fa3f..9f5ee7095a 100644<br/>--- a/<a href='/ruby.git/tree/insns.def?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>insns.def</a><br/>+++ b/<a href='/ruby.git/tree/insns.def?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>insns.def</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-/* -*- mode:c; style:ruby; coding: utf-8 -*-</div><div class='add'>+/* -*- C -*-</div><div class='ctx'>   insns.def - YARV instruction definitions</div><div class='ctx'> </div><div class='ctx'>   $Author: $</div><div class='hunk'>@@ -109,14 +109,14 @@ getblockparam</div><div class='ctx'>     VM_ASSERT(VM_ENV_LOCAL_P(ep));</div><div class='ctx'> </div><div class='ctx'>     if (!VM_ENV_FLAGS(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM)) {</div><div class='del'>-	val = rb_vm_bh_to_procval(ec, VM_ENV_BLOCK_HANDLER(ep));</div><div class='del'>-	vm_env_write(ep, -(int)idx, val);</div><div class='del'>-	VM_ENV_FLAGS_SET(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM);</div><div class='add'>+        val = rb_vm_bh_to_procval(ec, VM_ENV_BLOCK_HANDLER(ep));</div><div class='add'>+        vm_env_write(ep, -(int)idx, val);</div><div class='add'>+        VM_ENV_FLAGS_SET(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	val = *(ep - idx);</div><div class='del'>-	RB_DEBUG_COUNTER_INC(lvar_get);</div><div class='del'>-	(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level &gt; 0);</div><div class='add'>+        val = *(ep - idx);</div><div class='add'>+        RB_DEBUG_COUNTER_INC(lvar_get);</div><div class='add'>+        (void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level &gt; 0);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -150,35 +150,35 @@ getblockparamproxy</div><div class='ctx'>     VM_ASSERT(VM_ENV_LOCAL_P(ep));</div><div class='ctx'> </div><div class='ctx'>     if (!VM_ENV_FLAGS(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM)) {</div><div class='del'>-	VALUE block_handler = VM_ENV_BLOCK_HANDLER(ep);</div><div class='del'>-</div><div class='del'>-	if (block_handler) {</div><div class='del'>-	    switch (vm_block_handler_type(block_handler)) {</div><div class='del'>-	      case block_handler_type_iseq:</div><div class='del'>-	      case block_handler_type_ifunc:</div><div class='del'>-		val = rb_block_param_proxy;</div><div class='del'>-		break;</div><div class='del'>-	      case block_handler_type_symbol:</div><div class='del'>-		val = rb_sym_to_proc(VM_BH_TO_SYMBOL(block_handler));</div><div class='del'>-		goto INSN_LABEL(set);</div><div class='del'>-	      case block_handler_type_proc:</div><div class='del'>-		val = VM_BH_TO_PROC(block_handler);</div><div class='del'>-		goto INSN_LABEL(set);</div><div class='del'>-	      default:</div><div class='del'>-		VM_UNREACHABLE(getblockparamproxy);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    val = Qnil;</div><div class='del'>-	  INSN_LABEL(set):</div><div class='del'>-	    vm_env_write(ep, -(int)idx, val);</div><div class='del'>-	    VM_ENV_FLAGS_SET(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM);</div><div class='del'>-	}</div><div class='add'>+        VALUE block_handler = VM_ENV_BLOCK_HANDLER(ep);</div><div class='add'>+</div><div class='add'>+        if (block_handler) {</div><div class='add'>+            switch (vm_block_handler_type(block_handler)) {</div><div class='add'>+              case block_handler_type_iseq:</div><div class='add'>+              case block_handler_type_ifunc:</div><div class='add'>+                val = rb_block_param_proxy;</div><div class='add'>+                break;</div><div class='add'>+              case block_handler_type_symbol:</div><div class='add'>+                val = rb_sym_to_proc(VM_BH_TO_SYMBOL(block_handler));</div><div class='add'>+                goto INSN_LABEL(set);</div><div class='add'>+              case block_handler_type_proc:</div><div class='add'>+                val = VM_BH_TO_PROC(block_handler);</div><div class='add'>+                goto INSN_LABEL(set);</div><div class='add'>+              default:</div><div class='add'>+                VM_UNREACHABLE(getblockparamproxy);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            val = Qnil;</div><div class='add'>+          INSN_LABEL(set):</div><div class='add'>+            vm_env_write(ep, -(int)idx, val);</div><div class='add'>+            VM_ENV_FLAGS_SET(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	val = *(ep - idx);</div><div class='del'>-	RB_DEBUG_COUNTER_INC(lvar_get);</div><div class='del'>-	(void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level &gt; 0);</div><div class='add'>+        val = *(ep - idx);</div><div class='add'>+        RB_DEBUG_COUNTER_INC(lvar_get);</div><div class='add'>+        (void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level &gt; 0);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -188,6 +188,8 @@ getspecial</div><div class='ctx'> (rb_num_t key, rb_num_t type)</div><div class='ctx'> ()</div><div class='ctx'> (VALUE val)</div><div class='add'>+/* `$~ = MatchData.allocate; $&amp;` can raise. */</div><div class='add'>+// attr bool leaf = (type == 0) ? true : false;</div><div class='ctx'> {</div><div class='ctx'>     val = vm_getspecial(ec, GET_LEP(), key, type);</div><div class='ctx'> }</div><div class='hunk'>@@ -205,63 +207,88 @@ setspecial</div><div class='ctx'> /* Get value of instance variable id of self. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> getinstancevariable</div><div class='del'>-(ID id, IC ic)</div><div class='add'>+(ID id, IVC ic)</div><div class='ctx'> ()</div><div class='ctx'> (VALUE val)</div><div class='del'>-/* "instance variable not initialized" warning can be hooked. */</div><div class='del'>-// attr bool leaf = false; /* has rb_warning() */</div><div class='add'>+/* Ractor crashes when it accesses class/module-level instances variables. */</div><div class='add'>+// attr bool leaf = false; /* has IVAR_ACCESSOR_SHOULD_BE_MAIN_RACTOR() */</div><div class='ctx'> {</div><div class='del'>-    val = vm_getinstancevariable(GET_SELF(), id, ic);</div><div class='add'>+    val = vm_getinstancevariable(GET_ISEQ(), GET_SELF(), id, ic);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Set value of instance variable id of self to val. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> setinstancevariable</div><div class='del'>-(ID id, IC ic)</div><div class='add'>+(ID id, IVC ic)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> ()</div><div class='add'>+// attr bool leaf = false; /* has rb_check_frozen_internal() */</div><div class='ctx'> {</div><div class='del'>-    vm_setinstancevariable(GET_SELF(), id, val, ic);</div><div class='add'>+    vm_setinstancevariable(GET_ISEQ(), GET_SELF(), id, val, ic);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Get value of class variable id of klass as val. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> getclassvariable</div><div class='del'>-(ID id)</div><div class='add'>+(ID id, ICVARC ic)</div><div class='ctx'> ()</div><div class='ctx'> (VALUE val)</div><div class='ctx'> /* "class variable access from toplevel" warning can be hooked. */</div><div class='ctx'> // attr bool leaf = false; /* has rb_warning() */</div><div class='ctx'> {</div><div class='del'>-    val = rb_cvar_get(vm_get_cvar_base(rb_vm_get_cref(GET_EP()), GET_CFP()), id);</div><div class='add'>+    rb_control_frame_t *cfp = GET_CFP();</div><div class='add'>+    val = vm_getclassvariable(GET_ISEQ(), cfp, id, ic);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Set value of class variable id of klass as val. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> setclassvariable</div><div class='del'>-(ID id)</div><div class='add'>+(ID id, ICVARC ic)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> ()</div><div class='ctx'> /* "class variable access from toplevel" warning can be hooked. */</div><div class='ctx'> // attr bool leaf = false; /* has rb_warning() */</div><div class='ctx'> {</div><div class='ctx'>     vm_ensure_not_refinement_module(GET_SELF());</div><div class='del'>-    rb_cvar_set(vm_get_cvar_base(rb_vm_get_cref(GET_EP()), GET_CFP()), id, val);</div><div class='add'>+    vm_setclassvariable(GET_ISEQ(), GET_CFP(), id,  val, ic);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+DEFINE_INSN</div><div class='add'>+opt_getconstant_path</div><div class='add'>+(IC ic)</div><div class='add'>+()</div><div class='add'>+(VALUE val)</div><div class='add'>+// attr bool leaf = false; /* may autoload or raise */</div><div class='add'>+{</div><div class='add'>+    const ID *segments = ic-&gt;segments;</div><div class='add'>+    struct iseq_inline_constant_cache_entry *ice = ic-&gt;entry;</div><div class='add'>+    if (ice &amp;&amp; vm_ic_hit_p(ice, GET_EP())) {</div><div class='add'>+        val = ice-&gt;value;</div><div class='add'>+</div><div class='add'>+        VM_ASSERT(val == vm_get_ev_const_chain(ec, segments));</div><div class='add'>+    } else {</div><div class='add'>+        ruby_vm_constant_cache_misses++;</div><div class='add'>+        val = vm_get_ev_const_chain(ec, segments);</div><div class='add'>+        vm_ic_track_const_chain(GET_CFP(), ic, segments);</div><div class='add'>+        // Because leaf=false, we need to undo the PC increment to get the address to this instruction</div><div class='add'>+        // INSN_ATTR(width) == 2</div><div class='add'>+        vm_ic_update(GET_ISEQ(), ic, val, GET_EP(), GET_PC() - 2);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* Get constant variable id. If klass is Qnil, constants</div><div class='add'>+/* Get constant variable id. If klass is Qnil and allow_nil is Qtrue, constants</div><div class='ctx'>    are searched in the current scope. Otherwise, get constant under klass</div><div class='ctx'>    class or module.</div><div class='ctx'>  */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> getconstant</div><div class='ctx'> (ID id)</div><div class='del'>-(VALUE klass)</div><div class='add'>+(VALUE klass, VALUE allow_nil)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> /* getconstant can kick autoload */</div><div class='ctx'> // attr bool leaf = false; /* has rb_autoload_load() */</div><div class='ctx'> {</div><div class='del'>-    val = vm_get_ev_const(ec, klass, id, 0);</div><div class='add'>+    val = vm_get_ev_const(ec, klass, id, allow_nil == Qtrue, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Set constant variable id under cbase class or module.</div><div class='hunk'>@@ -285,23 +312,23 @@ setconstant</div><div class='ctx'> /* get global variable id. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> getglobal</div><div class='del'>-(GENTRY entry)</div><div class='add'>+(ID gid)</div><div class='ctx'> ()</div><div class='ctx'> (VALUE val)</div><div class='del'>-// attr bool leaf = leafness_of_getglobal(entry);</div><div class='add'>+// attr bool leaf = false;</div><div class='ctx'> {</div><div class='del'>-    val = GET_GLOBAL((VALUE)entry);</div><div class='add'>+    val = rb_gvar_get(gid);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* set global variable id as val. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> setglobal</div><div class='del'>-(GENTRY entry)</div><div class='add'>+(ID gid)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> ()</div><div class='del'>-// attr bool leaf = leafness_of_setglobal(entry);</div><div class='add'>+// attr bool leaf = false;</div><div class='ctx'> {</div><div class='del'>-    SET_GLOBAL((VALUE)entry, val);</div><div class='add'>+    rb_gvar_set(gid, val);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**********************************************************/</div><div class='hunk'>@@ -346,6 +373,7 @@ putspecialobject</div><div class='ctx'> (rb_num_t value_type)</div><div class='ctx'> ()</div><div class='ctx'> (VALUE val)</div><div class='add'>+// attr bool leaf = (value_type == VM_SPECIAL_OBJECT_VMCORE); /* others may raise when allocating singleton */</div><div class='ctx'> {</div><div class='ctx'>     enum vm_special_object_type type;</div><div class='ctx'> </div><div class='hunk'>@@ -353,17 +381,6 @@ putspecialobject</div><div class='ctx'>     val = vm_get_special_object(GET_EP(), type);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* put iseq value. */</div><div class='del'>-DEFINE_INSN</div><div class='del'>-putiseq</div><div class='del'>-(ISEQ iseq)</div><div class='del'>-()</div><div class='del'>-(VALUE ret)</div><div class='del'>-// attr bool handles_sp = false; /* of course it doesn't */</div><div class='del'>-{</div><div class='del'>-    ret = (VALUE)iseq;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /* put string val. string will be copied. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> putstring</div><div class='hunk'>@@ -371,7 +388,7 @@ putstring</div><div class='ctx'> ()</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='del'>-    val = rb_str_resurrect(str);</div><div class='add'>+    val = rb_ec_str_resurrect(ec, str);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* put concatenate strings */</div><div class='hunk'>@@ -380,14 +397,18 @@ concatstrings</div><div class='ctx'> (rb_num_t num)</div><div class='ctx'> (...)</div><div class='ctx'> (VALUE val)</div><div class='add'>+/* This instruction can concat UTF-8 and binary strings, resulting in</div><div class='add'>+ * Encoding::CompatibilityError. */</div><div class='add'>+// attr bool leaf = false; /* has rb_enc_cr_str_buf_cat() */</div><div class='ctx'> // attr rb_snum_t sp_inc = 1 - (rb_snum_t)num;</div><div class='ctx'> {</div><div class='ctx'>     val = rb_str_concat_literals(num, STACK_ADDR_FROM_TOP(num));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* push the result of to_s. */</div><div class='add'>+/* Convert the result to string if not already a string.</div><div class='add'>+   This is used as a backup if to_s does not return a string. */</div><div class='ctx'> DEFINE_INSN</div><div class='del'>-tostring</div><div class='add'>+anytostring</div><div class='ctx'> ()</div><div class='ctx'> (VALUE val, VALUE str)</div><div class='ctx'> (VALUE val)</div><div class='hunk'>@@ -395,16 +416,6 @@ tostring</div><div class='ctx'>     val = rb_obj_as_string_result(str, val);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* Freeze (dynamically) created strings. if debug_info is given, set it. */</div><div class='del'>-DEFINE_INSN</div><div class='del'>-freezestring</div><div class='del'>-(VALUE debug_info)</div><div class='del'>-(VALUE str)</div><div class='del'>-(VALUE str)</div><div class='del'>-{</div><div class='del'>-    vm_freezestring(str, debug_info);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /* compile str to Regexp and push it.</div><div class='ctx'>      opt is the option for the Regexp.</div><div class='ctx'>  */</div><div class='hunk'>@@ -413,9 +424,9 @@ toregexp</div><div class='ctx'> (rb_num_t opt, rb_num_t cnt)</div><div class='ctx'> (...)</div><div class='ctx'> (VALUE val)</div><div class='del'>-/* This instruction has StringValue(), which is a method call.  But it</div><div class='del'>- * seems that path is never covered. */</div><div class='del'>-// attr bool leaf = true; /* yes it is */</div><div class='add'>+/* This instruction can raise RegexpError, thus can call</div><div class='add'>+ * RegexpError#initialize */</div><div class='add'>+// attr bool leaf = false;</div><div class='ctx'> // attr rb_snum_t sp_inc = 1 - (rb_snum_t)cnt;</div><div class='ctx'> {</div><div class='ctx'>     const VALUE ary = rb_ary_tmp_new_from_values(0, cnt, STACK_ADDR_FROM_TOP(cnt));</div><div class='hunk'>@@ -441,7 +452,27 @@ newarray</div><div class='ctx'> (VALUE val)</div><div class='ctx'> // attr rb_snum_t sp_inc = 1 - (rb_snum_t)num;</div><div class='ctx'> {</div><div class='del'>-    val = rb_ary_new4(num, STACK_ADDR_FROM_TOP(num));</div><div class='add'>+    val = rb_ec_ary_new_from_values(ec, num, STACK_ADDR_FROM_TOP(num));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* put new array initialized with num values on the stack. There</div><div class='add'>+   should be at least one element on the stack, and the top element</div><div class='add'>+   should be a hash.  If the top element is empty, it is not</div><div class='add'>+   included in the array.</div><div class='add'>+ */</div><div class='add'>+DEFINE_INSN</div><div class='add'>+newarraykwsplat</div><div class='add'>+(rb_num_t num)</div><div class='add'>+(...)</div><div class='add'>+(VALUE val)</div><div class='add'>+// attr rb_snum_t sp_inc = 1 - (rb_snum_t)num;</div><div class='add'>+{</div><div class='add'>+    if (RHASH_EMPTY_P(*STACK_ADDR_FROM_TOP(1))) {</div><div class='add'>+        val = rb_ary_new4(num-1, STACK_ADDR_FROM_TOP(num));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        val = rb_ary_new4(num, STACK_ADDR_FROM_TOP(num));</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* dup array */</div><div class='hunk'>@@ -451,6 +482,7 @@ duparray</div><div class='ctx'> ()</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='add'>+    RUBY_DTRACE_CREATE_HOOK(ARRAY, RARRAY_LEN(ary));</div><div class='ctx'>     val = rb_ary_resurrect(ary);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -461,6 +493,7 @@ duphash</div><div class='ctx'> ()</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='add'>+    RUBY_DTRACE_CREATE_HOOK(HASH, RHASH_SIZE(hash) &lt;&lt; 1);</div><div class='ctx'>     val = rb_hash_resurrect(hash);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -517,11 +550,13 @@ newhash</div><div class='ctx'> {</div><div class='ctx'>     RUBY_DTRACE_CREATE_HOOK(HASH, num);</div><div class='ctx'> </div><div class='del'>-    val = rb_hash_new_with_size(num / 2);</div><div class='del'>-</div><div class='ctx'>     if (num) {</div><div class='add'>+        val = rb_hash_new_with_size(num / 2);</div><div class='ctx'>         rb_hash_bulk_insert(num, STACK_ADDR_FROM_TOP(num), val);</div><div class='ctx'>     }</div><div class='add'>+    else {</div><div class='add'>+        val = rb_hash_new();</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* put new Range object.(Range.new(low, high, flag)) */</div><div class='hunk'>@@ -587,7 +622,7 @@ swap</div><div class='ctx'> </div><div class='ctx'> /* reverse stack top N order. */</div><div class='ctx'> DEFINE_INSN</div><div class='del'>-reverse</div><div class='add'>+opt_reverse</div><div class='ctx'> (rb_num_t n)</div><div class='ctx'> (...)</div><div class='ctx'> (...)</div><div class='hunk'>@@ -605,7 +640,7 @@ reverse</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* for stack caching. */</div><div class='del'>-DEFINE_INSN</div><div class='add'>+DEFINE_INSN_IF(STACK_CACHING)</div><div class='ctx'> reput</div><div class='ctx'> ()</div><div class='ctx'> (..., VALUE val)</div><div class='hunk'>@@ -655,19 +690,22 @@ adjuststack</div><div class='ctx'> /* defined? */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> defined</div><div class='del'>-(rb_num_t op_type, VALUE obj, VALUE needstr)</div><div class='add'>+(rb_num_t op_type, VALUE obj, VALUE pushval)</div><div class='ctx'> (VALUE v)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> // attr bool leaf = leafness_of_defined(op_type);</div><div class='ctx'> {</div><div class='del'>-    val = vm_defined(ec, GET_CFP(), op_type, obj, needstr, v);</div><div class='add'>+    val = Qnil;</div><div class='add'>+    if (vm_defined(ec, GET_CFP(), op_type, obj, v)) {</div><div class='add'>+        val = pushval;</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* check `target' matches `pattern'.</div><div class='ctx'>      `flag &amp; VM_CHECKMATCH_TYPE_MASK' describe how to check pattern.</div><div class='ctx'>       VM_CHECKMATCH_TYPE_WHEN: ignore target and check pattern is truthy.</div><div class='ctx'>       VM_CHECKMATCH_TYPE_CASE: check `patten === target'.</div><div class='del'>-      VM_CHECKMATCH_TYPE_RESCUE: check `pattern.kind_op?(Module) &amp;&amp; pattern === target'.</div><div class='add'>+      VM_CHECKMATCH_TYPE_RESCUE: check `pattern.kind_of?(Module) &amp;&amp; pattern === target'.</div><div class='ctx'>      if `flag &amp; VM_CHECKMATCH_ARRAY' is not 0, then `patten' is array of patterns.</div><div class='ctx'>  */</div><div class='ctx'> DEFINE_INSN</div><div class='hunk'>@@ -697,7 +735,7 @@ checktype</div><div class='ctx'> (VALUE val)</div><div class='ctx'> (VALUE ret)</div><div class='ctx'> {</div><div class='del'>-    ret = (TYPE(val) == (int)type) ? Qtrue : Qfalse;</div><div class='add'>+    ret = RBOOL(TYPE(val) == (int)type);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /**********************************************************/</div><div class='hunk'>@@ -705,7 +743,7 @@ checktype</div><div class='ctx'> /**********************************************************/</div><div class='ctx'> </div><div class='ctx'> /* enter class definition scope. if super is Qfalse, and class</div><div class='del'>-   "klass" is defined, it's redefine. otherwise, define "klass" class.</div><div class='add'>+   "klass" is defined, it's redefined. Otherwise, define "klass" class.</div><div class='ctx'>  */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> defineclass</div><div class='hunk'>@@ -719,15 +757,33 @@ defineclass</div><div class='ctx'> </div><div class='ctx'>     /* enter scope */</div><div class='ctx'>     vm_push_frame(ec, class_iseq, VM_FRAME_MAGIC_CLASS | VM_ENV_FLAG_LOCAL, klass,</div><div class='del'>-		  GET_BLOCK_HANDLER(),</div><div class='del'>-		  (VALUE)vm_cref_push(ec, klass, NULL, FALSE),</div><div class='del'>-		  class_iseq-&gt;body-&gt;iseq_encoded, GET_SP(),</div><div class='del'>-		  class_iseq-&gt;body-&gt;local_table_size,</div><div class='del'>-		  class_iseq-&gt;body-&gt;stack_max);</div><div class='add'>+                  GET_BLOCK_HANDLER(),</div><div class='add'>+                  (VALUE)vm_cref_push(ec, klass, NULL, FALSE, FALSE),</div><div class='add'>+                  ISEQ_BODY(class_iseq)-&gt;iseq_encoded, GET_SP(),</div><div class='add'>+                  ISEQ_BODY(class_iseq)-&gt;local_table_size,</div><div class='add'>+                  ISEQ_BODY(class_iseq)-&gt;stack_max);</div><div class='ctx'>     RESTORE_REGS();</div><div class='ctx'>     NEXT_INSN();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+DEFINE_INSN</div><div class='add'>+definemethod</div><div class='add'>+(ID id, ISEQ iseq)</div><div class='add'>+()</div><div class='add'>+()</div><div class='add'>+{</div><div class='add'>+    vm_define_method(ec, Qnil, id, (VALUE)iseq, FALSE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+DEFINE_INSN</div><div class='add'>+definesmethod</div><div class='add'>+(ID id, ISEQ iseq)</div><div class='add'>+(VALUE obj)</div><div class='add'>+()</div><div class='add'>+{</div><div class='add'>+    vm_define_method(ec, obj, id, (VALUE)iseq, TRUE);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /**********************************************************/</div><div class='ctx'> /* deal with control flow 2: method/iterator              */</div><div class='ctx'> /**********************************************************/</div><div class='hunk'>@@ -735,37 +791,58 @@ defineclass</div><div class='ctx'> /* invoke method. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> send</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc, ISEQ blockiseq)</div><div class='add'>+(CALL_DATA cd, ISEQ blockiseq)</div><div class='ctx'> (...)</div><div class='ctx'> (VALUE val)</div><div class='del'>-// attr rb_snum_t sp_inc = - (int)(ci-&gt;orig_argc + ((ci-&gt;flag &amp; VM_CALL_ARGS_BLOCKARG) ? 1 : 0));</div><div class='add'>+// attr rb_snum_t sp_inc = sp_inc_of_sendish(cd-&gt;ci);</div><div class='add'>+// attr rb_snum_t comptime_sp_inc = sp_inc_of_sendish(ci);</div><div class='ctx'> {</div><div class='del'>-    struct rb_calling_info calling;</div><div class='add'>+    VALUE bh = vm_caller_setup_arg_block(ec, GET_CFP(), cd-&gt;ci, blockiseq, false);</div><div class='add'>+    val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_method);</div><div class='ctx'> </div><div class='del'>-    calling.block_handler = vm_caller_setup_arg_block(ec, reg_cfp, ci, blockiseq, FALSE);</div><div class='del'>-    calling.recv = TOPN(calling.argc = ci-&gt;orig_argc);</div><div class='del'>-    vm_search_method(ci, cc, calling.recv);</div><div class='del'>-    CALL_METHOD(&amp;calling, ci, cc);</div><div class='add'>+    if (val == Qundef) {</div><div class='add'>+        RESTORE_REGS();</div><div class='add'>+        NEXT_INSN();</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* Invoke method without block */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_send_without_block</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (...)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> // attr bool handles_sp = true;</div><div class='del'>-// attr rb_snum_t sp_inc = -ci-&gt;orig_argc;</div><div class='add'>+// attr rb_snum_t sp_inc = sp_inc_of_sendish(cd-&gt;ci);</div><div class='add'>+// attr rb_snum_t comptime_sp_inc = sp_inc_of_sendish(ci);</div><div class='ctx'> {</div><div class='del'>-    struct rb_calling_info calling;</div><div class='del'>-    calling.block_handler = VM_BLOCK_HANDLER_NONE;</div><div class='del'>-    vm_search_method(ci, cc, calling.recv = TOPN(calling.argc = ci-&gt;orig_argc));</div><div class='del'>-    CALL_METHOD(&amp;calling, ci, cc);</div><div class='add'>+    VALUE bh = VM_BLOCK_HANDLER_NONE;</div><div class='add'>+    val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_method);</div><div class='add'>+</div><div class='add'>+    if (val == Qundef) {</div><div class='add'>+        RESTORE_REGS();</div><div class='add'>+        NEXT_INSN();</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* Convert object to string using to_s or equivalent. */</div><div class='add'>+DEFINE_INSN</div><div class='add'>+objtostring</div><div class='add'>+(CALL_DATA cd)</div><div class='add'>+(VALUE recv)</div><div class='add'>+(VALUE val)</div><div class='add'>+// attr bool leaf = false;</div><div class='add'>+{</div><div class='add'>+    val = vm_objtostring(GET_ISEQ(), recv, cd);</div><div class='add'>+</div><div class='add'>+    if (val == Qundef) {</div><div class='add'>+        CALL_SIMPLE_METHOD();</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_str_freeze</div><div class='del'>-(VALUE str, CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(VALUE str, CALL_DATA cd)</div><div class='ctx'> ()</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -777,9 +854,23 @@ opt_str_freeze</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* optimized nil? */</div><div class='add'>+DEFINE_INSN</div><div class='add'>+opt_nil_p</div><div class='add'>+(CALL_DATA cd)</div><div class='add'>+(VALUE recv)</div><div class='add'>+(VALUE val)</div><div class='add'>+{</div><div class='add'>+    val = vm_opt_nil_p(GET_ISEQ(), cd, recv);</div><div class='add'>+</div><div class='add'>+    if (val == Qundef) {</div><div class='add'>+        CALL_SIMPLE_METHOD();</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_str_uminus</div><div class='del'>-(VALUE str, CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(VALUE str, CALL_DATA cd)</div><div class='ctx'> ()</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -803,7 +894,7 @@ opt_newarray_max</div><div class='ctx'> // attr bool leaf = false; /* has rb_funcall() */</div><div class='ctx'> // attr rb_snum_t sp_inc = 1 - (rb_snum_t)num;</div><div class='ctx'> {</div><div class='del'>-    val = vm_opt_newarray_max(num, STACK_ADDR_FROM_TOP(num));</div><div class='add'>+    val = vm_opt_newarray_max(ec, num, STACK_ADDR_FROM_TOP(num));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> DEFINE_INSN</div><div class='hunk'>@@ -815,49 +906,43 @@ opt_newarray_min</div><div class='ctx'> // attr bool leaf = false; /* has rb_funcall() */</div><div class='ctx'> // attr rb_snum_t sp_inc = 1 - (rb_snum_t)num;</div><div class='ctx'> {</div><div class='del'>-    val = vm_opt_newarray_min(num, STACK_ADDR_FROM_TOP(num));</div><div class='add'>+    val = vm_opt_newarray_min(ec, num, STACK_ADDR_FROM_TOP(num));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* super(args) # args.size =&gt; num */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> invokesuper</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc, ISEQ blockiseq)</div><div class='add'>+(CALL_DATA cd, ISEQ blockiseq)</div><div class='ctx'> (...)</div><div class='ctx'> (VALUE val)</div><div class='del'>-// attr rb_snum_t sp_inc = - (int)(ci-&gt;orig_argc + ((ci-&gt;flag &amp; VM_CALL_ARGS_BLOCKARG) ? 1 : 0));</div><div class='add'>+// attr rb_snum_t sp_inc = sp_inc_of_sendish(cd-&gt;ci);</div><div class='add'>+// attr rb_snum_t comptime_sp_inc = sp_inc_of_sendish(ci);</div><div class='ctx'> {</div><div class='del'>-    struct rb_calling_info calling;</div><div class='add'>+    VALUE bh = vm_caller_setup_arg_block(ec, GET_CFP(), cd-&gt;ci, blockiseq, true);</div><div class='add'>+    val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_super);</div><div class='ctx'> </div><div class='del'>-    calling.block_handler = vm_caller_setup_arg_block(ec, reg_cfp, ci, blockiseq, TRUE);</div><div class='del'>-    calling.recv = TOPN(calling.argc = ci-&gt;orig_argc);</div><div class='del'>-    vm_search_super_method(ec, GET_CFP(), &amp;calling, ci, cc);</div><div class='del'>-    CALL_METHOD(&amp;calling, ci, cc);</div><div class='add'>+    if (val == Qundef) {</div><div class='add'>+        RESTORE_REGS();</div><div class='add'>+        NEXT_INSN();</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* yield(args) */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> invokeblock</div><div class='del'>-(CALL_INFO ci)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (...)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> // attr bool handles_sp = true;</div><div class='del'>-// attr rb_snum_t sp_inc = 1 - ci-&gt;orig_argc;</div><div class='add'>+// attr rb_snum_t sp_inc = sp_inc_of_invokeblock(cd-&gt;ci);</div><div class='add'>+// attr rb_snum_t comptime_sp_inc = sp_inc_of_invokeblock(ci);</div><div class='ctx'> {</div><div class='del'>-    struct rb_calling_info calling;</div><div class='del'>-    VALUE block_handler;</div><div class='del'>-</div><div class='del'>-    calling.argc = ci-&gt;orig_argc;</div><div class='del'>-    calling.block_handler = VM_BLOCK_HANDLER_NONE;</div><div class='del'>-    calling.recv = Qundef; /* should not be used */</div><div class='del'>-</div><div class='del'>-    block_handler = VM_CF_BLOCK_HANDLER(GET_CFP());</div><div class='del'>-    if (block_handler == VM_BLOCK_HANDLER_NONE) {</div><div class='del'>-	rb_vm_localjump_error("no block given (yield)", Qnil, 0);</div><div class='del'>-    }</div><div class='add'>+    VALUE bh = VM_BLOCK_HANDLER_NONE;</div><div class='add'>+    val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_invokeblock);</div><div class='ctx'> </div><div class='del'>-    val = vm_invoke_block(ec, GET_CFP(), &amp;calling, ci, block_handler);</div><div class='ctx'>     if (val == Qundef) {</div><div class='del'>-        EXEC_EC_CFP(val);</div><div class='add'>+        RESTORE_REGS();</div><div class='add'>+        NEXT_INSN();</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -874,24 +959,22 @@ leave</div><div class='ctx'> // attr bool handles_sp = true;</div><div class='ctx'> {</div><div class='ctx'>     if (OPT_CHECKED_RUN) {</div><div class='del'>-	const VALUE *const bp = vm_base_ptr(reg_cfp);</div><div class='del'>-	if (reg_cfp-&gt;sp != bp) {</div><div class='del'>-	    vm_stack_consistency_error(ec, reg_cfp, bp);</div><div class='del'>-	}</div><div class='add'>+        const VALUE *const bp = vm_base_ptr(GET_CFP());</div><div class='add'>+        if (GET_SP() != bp) {</div><div class='add'>+            vm_stack_consistency_error(ec, GET_CFP(), bp);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    RUBY_VM_CHECK_INTS(ec);</div><div class='del'>-</div><div class='ctx'>     if (vm_pop_frame(ec, GET_CFP(), GET_EP())) {</div><div class='ctx'> #if OPT_CALL_THREADED_CODE</div><div class='del'>-	rb_ec_thread_ptr(ec)-&gt;retval = val;</div><div class='del'>-	return 0;</div><div class='add'>+        rb_ec_thread_ptr(ec)-&gt;retval = val;</div><div class='add'>+        return 0;</div><div class='ctx'> #else</div><div class='del'>-	return val;</div><div class='add'>+        return val;</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	RESTORE_REGS();</div><div class='add'>+        RESTORE_REGS();</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -908,7 +991,6 @@ throw</div><div class='ctx'> /* Same discussion as leave. */</div><div class='ctx'> // attr bool leaf = false; /* has rb_threadptr_execute_interrupts() */</div><div class='ctx'> {</div><div class='del'>-    RUBY_VM_CHECK_INTS(ec);</div><div class='ctx'>     val = vm_throw(ec, GET_CFP(), throw_state, throwobj);</div><div class='ctx'>     THROW_EXCEPTION(val);</div><div class='ctx'>     /* unreachable */</div><div class='hunk'>@@ -925,7 +1007,7 @@ jump</div><div class='ctx'> ()</div><div class='ctx'> ()</div><div class='ctx'> /* Same discussion as leave. */</div><div class='del'>-// attr bool leaf = false; /* has rb_threadptr_execute_interrupts() */</div><div class='add'>+// attr bool leaf = leafness_of_check_ints; /* has rb_threadptr_execute_interrupts() */</div><div class='ctx'> {</div><div class='ctx'>     RUBY_VM_CHECK_INTS(ec);</div><div class='ctx'>     JUMP(dst);</div><div class='hunk'>@@ -938,11 +1020,11 @@ branchif</div><div class='ctx'> (VALUE val)</div><div class='ctx'> ()</div><div class='ctx'> /* Same discussion as jump. */</div><div class='del'>-// attr bool leaf = false; /* has rb_threadptr_execute_interrupts() */</div><div class='add'>+// attr bool leaf = leafness_of_check_ints; /* has rb_threadptr_execute_interrupts() */</div><div class='ctx'> {</div><div class='ctx'>     if (RTEST(val)) {</div><div class='del'>-	RUBY_VM_CHECK_INTS(ec);</div><div class='del'>-	JUMP(dst);</div><div class='add'>+        RUBY_VM_CHECK_INTS(ec);</div><div class='add'>+        JUMP(dst);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -953,11 +1035,11 @@ branchunless</div><div class='ctx'> (VALUE val)</div><div class='ctx'> ()</div><div class='ctx'> /* Same discussion as jump. */</div><div class='del'>-// attr bool leaf = false; /* has rb_threadptr_execute_interrupts() */</div><div class='add'>+// attr bool leaf = leafness_of_check_ints; /* has rb_threadptr_execute_interrupts() */</div><div class='ctx'> {</div><div class='ctx'>     if (!RTEST(val)) {</div><div class='del'>-	RUBY_VM_CHECK_INTS(ec);</div><div class='del'>-	JUMP(dst);</div><div class='add'>+        RUBY_VM_CHECK_INTS(ec);</div><div class='add'>+        JUMP(dst);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -968,11 +1050,11 @@ branchnil</div><div class='ctx'> (VALUE val)</div><div class='ctx'> ()</div><div class='ctx'> /* Same discussion as jump. */</div><div class='del'>-// attr bool leaf = false; /* has rb_threadptr_execute_interrupts() */</div><div class='add'>+// attr bool leaf = leafness_of_check_ints; /* has rb_threadptr_execute_interrupts() */</div><div class='ctx'> {</div><div class='ctx'>     if (NIL_P(val)) {</div><div class='del'>-	RUBY_VM_CHECK_INTS(ec);</div><div class='del'>-	JUMP(dst);</div><div class='add'>+        RUBY_VM_CHECK_INTS(ec);</div><div class='add'>+        JUMP(dst);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -980,32 +1062,6 @@ branchnil</div><div class='ctx'> /* for optimize                                           */</div><div class='ctx'> /**********************************************************/</div><div class='ctx'> </div><div class='del'>-/* push inline-cached value and go to dst if it is valid */</div><div class='del'>-DEFINE_INSN</div><div class='del'>-opt_getinlinecache</div><div class='del'>-(OFFSET dst, IC ic)</div><div class='del'>-()</div><div class='del'>-(VALUE val)</div><div class='del'>-{</div><div class='del'>-    if (vm_ic_hit_p(ic, GET_EP())) {</div><div class='del'>-	val = ic-&gt;ic_value.value;</div><div class='del'>-	JUMP(dst);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	val = Qnil;</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* set inline cache */</div><div class='del'>-DEFINE_INSN</div><div class='del'>-opt_setinlinecache</div><div class='del'>-(IC ic)</div><div class='del'>-(VALUE val)</div><div class='del'>-(VALUE val)</div><div class='del'>-{</div><div class='del'>-    vm_ic_update(ic, val, GET_EP());</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /* run iseq only once */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> once</div><div class='hunk'>@@ -1027,7 +1083,7 @@ opt_case_dispatch</div><div class='ctx'>     OFFSET dst = vm_case_dispatch(hash, else_offset, key);</div><div class='ctx'> </div><div class='ctx'>     if (dst) {</div><div class='del'>-	JUMP(dst);</div><div class='add'>+        JUMP(dst);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1036,12 +1092,9 @@ opt_case_dispatch</div><div class='ctx'> /* optimized X+Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_plus</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='del'>-/* Array + anything can be handled inside of opt_plus, and that</div><div class='del'>- * anything is converted into array using #to_ary. */</div><div class='del'>-// attr bool leaf = false; /* has rb_to_array_type() */</div><div class='ctx'> {</div><div class='ctx'>     val = vm_opt_plus(recv, obj);</div><div class='ctx'> </div><div class='hunk'>@@ -1053,7 +1106,7 @@ opt_plus</div><div class='ctx'> /* optimized X-Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_minus</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1067,7 +1120,7 @@ opt_minus</div><div class='ctx'> /* optimized X*Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_mult</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1081,9 +1134,12 @@ opt_mult</div><div class='ctx'> /* optimized X/Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_div</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='add'>+/* In case of division by zero, it raises. Thus</div><div class='add'>+ * ZeroDivisionError#initialize is called.  */</div><div class='add'>+// attr bool leaf = false;</div><div class='ctx'> {</div><div class='ctx'>     val = vm_opt_div(recv, obj);</div><div class='ctx'> </div><div class='hunk'>@@ -1095,9 +1151,11 @@ opt_div</div><div class='ctx'> /* optimized X%Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_mod</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='add'>+/* Same discussion as opt_div. */</div><div class='add'>+// attr bool leaf = false;</div><div class='ctx'> {</div><div class='ctx'>     val = vm_opt_mod(recv, obj);</div><div class='ctx'> </div><div class='hunk'>@@ -1109,15 +1167,11 @@ opt_mod</div><div class='ctx'> /* optimized X==Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_eq</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='del'>-/* This instruction can compare a string with non-string.  This</div><div class='del'>- * (somewhat) coerces the non-string into a string, via a method</div><div class='del'>- * call. */</div><div class='del'>-// attr bool leaf = false; /* has rb_str_equal() */</div><div class='ctx'> {</div><div class='del'>-    val = opt_eq_func(recv, obj, ci, cc);</div><div class='add'>+    val = opt_equality(GET_ISEQ(), recv, obj, cd);</div><div class='ctx'> </div><div class='ctx'>     if (val == Qundef) {</div><div class='ctx'>         CALL_SIMPLE_METHOD();</div><div class='hunk'>@@ -1127,13 +1181,11 @@ opt_eq</div><div class='ctx'> /* optimized X!=Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_neq</div><div class='del'>-(CALL_INFO ci_eq, CALL_CACHE cc_eq, CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd_eq, CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='del'>-/* Same discussion as opt_eq. */</div><div class='del'>-// attr bool leaf = false; /* has rb_str_equal() */</div><div class='ctx'> {</div><div class='del'>-    val = vm_opt_neq(ci, cc, ci_eq, cc_eq, recv, obj);</div><div class='add'>+    val = vm_opt_neq(GET_ISEQ(), cd, cd_eq, recv, obj);</div><div class='ctx'> </div><div class='ctx'>     if (val == Qundef) {</div><div class='ctx'>         CALL_SIMPLE_METHOD();</div><div class='hunk'>@@ -1143,7 +1195,7 @@ opt_neq</div><div class='ctx'> /* optimized X&lt;Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_lt</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1157,7 +1209,7 @@ opt_lt</div><div class='ctx'> /* optimized X&lt;=Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_le</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1171,7 +1223,7 @@ opt_le</div><div class='ctx'> /* optimized X&gt;Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_gt</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1185,7 +1237,7 @@ opt_gt</div><div class='ctx'> /* optimized X&gt;=Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_ge</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1199,9 +1251,13 @@ opt_ge</div><div class='ctx'> /* &lt;&lt; */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_ltlt</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='add'>+/* This instruction can append an integer, as a codepoint, into a</div><div class='add'>+ * string.  Then what happens if that codepoint does not exist in the</div><div class='add'>+ * string's encoding?  Of course an exception.  That's not a leaf. */</div><div class='add'>+// attr bool leaf = false; /* has "invalid codepoint" exception */</div><div class='ctx'> {</div><div class='ctx'>     val = vm_opt_ltlt(recv, obj);</div><div class='ctx'> </div><div class='hunk'>@@ -1213,7 +1269,7 @@ opt_ltlt</div><div class='ctx'> /* optimized X&amp;Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_and</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1227,7 +1283,7 @@ opt_and</div><div class='ctx'> /* optimized X|Y. */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_or</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1241,7 +1297,7 @@ opt_or</div><div class='ctx'> /* [] */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_aref</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> /* This is complicated.  In case of hash, vm_opt_aref() resorts to</div><div class='hunk'>@@ -1260,7 +1316,7 @@ opt_aref</div><div class='ctx'> /* recv[obj] = set */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_aset</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE obj, VALUE set)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> /* This is another story than opt_aref.  When vm_opt_aset() resorts</div><div class='hunk'>@@ -1277,7 +1333,7 @@ opt_aset</div><div class='ctx'> /* recv[str] = set */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_aset_with</div><div class='del'>-(VALUE key, CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(VALUE key, CALL_DATA cd)</div><div class='ctx'> (VALUE recv, VALUE val)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> /* Same discussion as opt_aset. */</div><div class='hunk'>@@ -1286,12 +1342,12 @@ opt_aset_with</div><div class='ctx'>     VALUE tmp = vm_opt_aset_with(recv, key, val);</div><div class='ctx'> </div><div class='ctx'>     if (tmp != Qundef) {</div><div class='del'>-	val = tmp;</div><div class='add'>+        val = tmp;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> #ifndef MJIT_HEADER</div><div class='del'>-	TOPN(0) = rb_str_resurrect(key);</div><div class='del'>-	PUSH(val);</div><div class='add'>+        TOPN(0) = rb_str_resurrect(key);</div><div class='add'>+        PUSH(val);</div><div class='ctx'> #endif</div><div class='ctx'>         CALL_SIMPLE_METHOD();</div><div class='ctx'>     }</div><div class='hunk'>@@ -1300,7 +1356,7 @@ opt_aset_with</div><div class='ctx'> /* recv[str] */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_aref_with</div><div class='del'>-(VALUE key, CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(VALUE key, CALL_DATA cd)</div><div class='ctx'> (VALUE recv)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> /* Same discussion as opt_aref. */</div><div class='hunk'>@@ -1310,7 +1366,7 @@ opt_aref_with</div><div class='ctx'> </div><div class='ctx'>     if (val == Qundef) {</div><div class='ctx'> #ifndef MJIT_HEADER</div><div class='del'>-	PUSH(rb_str_resurrect(key));</div><div class='add'>+        PUSH(rb_str_resurrect(key));</div><div class='ctx'> #endif</div><div class='ctx'>         CALL_SIMPLE_METHOD();</div><div class='ctx'>     }</div><div class='hunk'>@@ -1319,7 +1375,7 @@ opt_aref_with</div><div class='ctx'> /* optimized length */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_length</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1333,7 +1389,7 @@ opt_length</div><div class='ctx'> /* optimized size */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_size</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1347,7 +1403,7 @@ opt_size</div><div class='ctx'> /* optimized empty? */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_empty_p</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1361,7 +1417,7 @@ opt_empty_p</div><div class='ctx'> /* optimized succ */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_succ</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='hunk'>@@ -1375,34 +1431,24 @@ opt_succ</div><div class='ctx'> /* optimized not */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_not</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE recv)</div><div class='ctx'> (VALUE val)</div><div class='ctx'> {</div><div class='del'>-    val = vm_opt_not(ci, cc, recv);</div><div class='add'>+    val = vm_opt_not(GET_ISEQ(), cd, recv);</div><div class='ctx'> </div><div class='ctx'>     if (val == Qundef) {</div><div class='ctx'>         CALL_SIMPLE_METHOD();</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* optimized regexp match */</div><div class='del'>-DEFINE_INSN</div><div class='del'>-opt_regexpmatch1</div><div class='del'>-(VALUE recv)</div><div class='del'>-(VALUE obj)</div><div class='del'>-(VALUE val)</div><div class='del'>-// attr bool leaf = BASIC_OP_UNREDEFINED_P(BOP_MATCH, REGEXP_REDEFINED_OP_FLAG);</div><div class='del'>-{</div><div class='del'>-    val = vm_opt_regexpmatch1(recv, obj);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> /* optimized regexp match 2 */</div><div class='ctx'> DEFINE_INSN</div><div class='ctx'> opt_regexpmatch2</div><div class='del'>-(CALL_INFO ci, CALL_CACHE cc)</div><div class='add'>+(CALL_DATA cd)</div><div class='ctx'> (VALUE obj2, VALUE obj1)</div><div class='ctx'> (VALUE val)</div><div class='add'>+// attr bool leaf = false; /* match_at() has rb_thread_check_ints() */</div><div class='ctx'> {</div><div class='ctx'>     val = vm_opt_regexpmatch2(obj2, obj1);</div><div class='ctx'> </div><div class='hunk'>@@ -1412,7 +1458,7 @@ opt_regexpmatch2</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* call native compiled method */</div><div class='del'>-DEFINE_INSN</div><div class='add'>+DEFINE_INSN_IF(SUPPORT_CALL_C_FUNCTION)</div><div class='ctx'> opt_call_c_function</div><div class='ctx'> (rb_insn_func_t funcptr)</div><div class='ctx'> ()</div><div class='hunk'>@@ -1423,17 +1469,65 @@ opt_call_c_function</div><div class='ctx'>     reg_cfp = (funcptr)(ec, reg_cfp);</div><div class='ctx'> </div><div class='ctx'>     if (reg_cfp == 0) {</div><div class='del'>-	VALUE err = ec-&gt;errinfo;</div><div class='del'>-	ec-&gt;errinfo = Qnil;</div><div class='del'>-	THROW_EXCEPTION(err);</div><div class='add'>+        VALUE err = ec-&gt;errinfo;</div><div class='add'>+        ec-&gt;errinfo = Qnil;</div><div class='add'>+        THROW_EXCEPTION(err);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     RESTORE_REGS();</div><div class='ctx'>     NEXT_INSN();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* BLT */</div><div class='add'>+/* call specific function with args */</div><div class='add'>+DEFINE_INSN</div><div class='add'>+invokebuiltin</div><div class='add'>+(RB_BUILTIN bf)</div><div class='add'>+(...)</div><div class='add'>+(VALUE val)</div><div class='add'>+// attr bool leaf = false; /* anything can happen inside */</div><div class='add'>+// attr rb_snum_t sp_inc = 1 - bf-&gt;argc;</div><div class='add'>+{</div><div class='add'>+    val = vm_invoke_builtin(ec, reg_cfp, bf, STACK_ADDR_FROM_TOP(bf-&gt;argc));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* call specific function with args (same parameters) */</div><div class='add'>+DEFINE_INSN</div><div class='add'>+opt_invokebuiltin_delegate</div><div class='add'>+(RB_BUILTIN bf, rb_num_t index)</div><div class='add'>+()</div><div class='add'>+(VALUE val)</div><div class='add'>+// attr bool leaf = false; /* anything can happen inside */</div><div class='add'>+{</div><div class='add'>+    val = vm_invoke_builtin_delegate(ec, reg_cfp, bf, (unsigned int)index);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* call specific function with args (same parameters) and leave */</div><div class='ctx'> DEFINE_INSN</div><div class='add'>+opt_invokebuiltin_delegate_leave</div><div class='add'>+(RB_BUILTIN bf, rb_num_t index)</div><div class='add'>+()</div><div class='add'>+(VALUE val)</div><div class='add'>+// attr bool leaf = false; /* anything can happen inside */</div><div class='add'>+{</div><div class='add'>+    val = vm_invoke_builtin_delegate(ec, reg_cfp, bf, (unsigned int)index);</div><div class='add'>+</div><div class='add'>+    /* leave fastpath */</div><div class='add'>+    /* TracePoint/return fallbacks this insn to opt_invokebuiltin_delegate */</div><div class='add'>+    if (vm_pop_frame(ec, GET_CFP(), GET_EP())) {</div><div class='add'>+#if OPT_CALL_THREADED_CODE</div><div class='add'>+        rb_ec_thread_ptr(ec)-&gt;retval = val;</div><div class='add'>+        return 0;</div><div class='add'>+#else</div><div class='add'>+        return val;</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        RESTORE_REGS();</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* BLT */</div><div class='add'>+DEFINE_INSN_IF(SUPPORT_JOKE)</div><div class='ctx'> bitblt</div><div class='ctx'> ()</div><div class='ctx'> ()</div><div class='hunk'>@@ -1443,7 +1537,7 @@ bitblt</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* The Answer to Life, the Universe, and Everything */</div><div class='del'>-DEFINE_INSN</div><div class='add'>+DEFINE_INSN_IF(SUPPORT_JOKE)</div><div class='ctx'> answer</div><div class='ctx'> ()</div><div class='ctx'> ()</div><div class='head'>diff --git a/internal.h b/internal.h<br/>index 433ab6635d..b63af50616 100644<br/>--- a/<a href='/ruby.git/tree/internal.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>internal.h</a><br/>+++ b/<a href='/ruby.git/tree/internal.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal.h</a></div><div class='hunk'>@@ -1,2465 +1,113 @@</div><div class='del'>-/**********************************************************************</div><div class='del'>-</div><div class='del'>-  internal.h -</div><div class='del'>-</div><div class='del'>-  $Author$</div><div class='del'>-  created at: Tue May 17 11:42:20 JST 2011</div><div class='del'>-</div><div class='del'>-  Copyright (C) 2011 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-**********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_INTERNAL_H</div><div class='add'>+#ifndef RUBY_INTERNAL_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='ctx'> #define RUBY_INTERNAL_H 1</div><div class='add'>+/**</div><div class='add'>+ * @author     $Author$</div><div class='add'>+ * @date       Tue May 17 11:42:20 JST 2011</div><div class='add'>+ * @copyright  Copyright (C) 2011 Yukihiro Matsumoto</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> </div><div class='del'>-#include "ruby.h"</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-extern "C" {</div><div class='del'>-#if 0</div><div class='del'>-} /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_STDBOOL_H</div><div class='del'>-# include &lt;stdbool.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef __bool_true_false_are_defined</div><div class='del'>-# ifndef __cplusplus</div><div class='del'>-#  undef bool</div><div class='del'>-#  undef false</div><div class='del'>-#  undef true</div><div class='del'>-#  define bool signed char</div><div class='del'>-#  define false 0</div><div class='del'>-#  define true 1</div><div class='del'>-#  define __bool_true_false_are_defined 1</div><div class='del'>-# endif</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+# error not for C++</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-/* The most significant bit of the lower part of half-long integer.</div><div class='del'>- * If sizeof(long) == 4, this is 0x8000.</div><div class='del'>- * If sizeof(long) == 8, this is 0x80000000.</div><div class='del'>- */</div><div class='del'>-#define HALF_LONG_MSB ((SIGNED_VALUE)1&lt;&lt;((SIZEOF_LONG*CHAR_BIT-1)/2))</div><div class='del'>-</div><div class='ctx'> #define LIKELY(x) RB_LIKELY(x)</div><div class='ctx'> #define UNLIKELY(x) RB_UNLIKELY(x)</div><div class='ctx'> </div><div class='del'>-#ifndef MAYBE_UNUSED</div><div class='del'>-# define MAYBE_UNUSED(x) x</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef WARN_UNUSED_RESULT</div><div class='del'>-# define WARN_UNUSED_RESULT(x) x</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if 0</div><div class='del'>-#elif defined(NO_SANITIZE)</div><div class='del'>-# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \</div><div class='del'>-    NO_SANITIZE("address", NOINLINE(x))</div><div class='del'>-#elif defined(NO_SANITIZE_ADDRESS)</div><div class='del'>-# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \</div><div class='del'>-    NO_SANITIZE_ADDRESS(NOINLINE(x))</div><div class='del'>-#elif defined(NO_ADDRESS_SAFETY_ANALYSIS)</div><div class='del'>-# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \</div><div class='del'>-    NO_ADDRESS_SAFETY_ANALYSIS(NOINLINE(x))</div><div class='del'>-#else</div><div class='del'>-# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) x</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(NO_SANITIZE) &amp;&amp; defined(__GNUC__) &amp;&amp;! defined(__clang__)</div><div class='del'>-/* GCC warns about unknown sanitizer, which is annoying. */</div><div class='del'>-#undef NO_SANITIZE</div><div class='del'>-#define NO_SANITIZE(x, y) \</div><div class='del'>-    COMPILER_WARNING_PUSH; \</div><div class='del'>-    COMPILER_WARNING_IGNORED(-Wattributes); \</div><div class='del'>-    __attribute__((__no_sanitize__(x))) y; \</div><div class='del'>-    COMPILER_WARNING_POP</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef NO_SANITIZE</div><div class='del'>-# define NO_SANITIZE(x, y) y</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_VALGRIND_MEMCHECK_H</div><div class='del'>-# include &lt;valgrind/memcheck.h&gt;</div><div class='del'>-# ifndef VALGRIND_MAKE_MEM_DEFINED</div><div class='del'>-#  define VALGRIND_MAKE_MEM_DEFINED(p, n) VALGRIND_MAKE_READABLE((p), (n))</div><div class='del'>-# endif</div><div class='del'>-# ifndef VALGRIND_MAKE_MEM_UNDEFINED</div><div class='del'>-#  define VALGRIND_MAKE_MEM_UNDEFINED(p, n) VALGRIND_MAKE_WRITABLE((p), (n))</div><div class='del'>-# endif</div><div class='del'>-#else</div><div class='del'>-# define VALGRIND_MAKE_MEM_DEFINED(p, n) 0</div><div class='del'>-# define VALGRIND_MAKE_MEM_UNDEFINED(p, n) 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #define numberof(array) ((int)(sizeof(array) / sizeof((array)[0])))</div><div class='del'>-</div><div class='del'>-#ifndef __has_feature</div><div class='del'>-# define __has_feature(x) 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef __has_extension</div><div class='del'>-# define __has_extension __has_feature</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef MJIT_HEADER</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_SANITIZER_ASAN_INTERFACE_H</div><div class='del'>-# include &lt;sanitizer/asan_interface.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if !__has_feature(address_sanitizer)</div><div class='del'>-# define __asan_poison_memory_region(x, y)</div><div class='del'>-# define __asan_unpoison_memory_region(x, y)</div><div class='del'>-# define __asan_region_is_poisoned(x, y) 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_SANITIZER_MSAN_INTERFACE_H</div><div class='del'>-# include &lt;sanitizer/msan_interface.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if !__has_feature(memory_sanitizer)</div><div class='del'>-# define __msan_allocated_memory(x, y)</div><div class='del'>-# define __msan_poison(x, y)</div><div class='del'>-# define __msan_unpoison(x, y)</div><div class='del'>-# define __msan_unpoison_string(x)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static inline void</div><div class='del'>-poison_memory_region(const volatile void *ptr, size_t size)</div><div class='del'>-{</div><div class='del'>-    __msan_poison(ptr, size);</div><div class='del'>-    __asan_poison_memory_region(ptr, size);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline void</div><div class='del'>-poison_object(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    struct RVALUE *ptr = (void *)obj;</div><div class='del'>-    poison_memory_region(ptr, SIZEOF_VALUE);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline void</div><div class='del'>-unpoison_memory_region(const volatile void *ptr, size_t size, bool malloc_p)</div><div class='del'>-{</div><div class='del'>-    __asan_unpoison_memory_region(ptr, size);</div><div class='del'>-    if (malloc_p) {</div><div class='del'>-        __msan_allocated_memory(ptr, size);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        __msan_unpoison(ptr, size);</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline void</div><div class='del'>-unpoison_object(VALUE obj, bool newobj_p)</div><div class='del'>-{</div><div class='del'>-    struct RVALUE *ptr = (void *)obj;</div><div class='del'>-    unpoison_memory_region(ptr, SIZEOF_VALUE, newobj_p);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#endif</div><div class='add'>+#define roomof(x, y) (((x) + (y) - 1) / (y))</div><div class='add'>+#define type_roomof(x, y) roomof(sizeof(x), sizeof(y))</div><div class='ctx'> </div><div class='ctx'> /* Prevent compiler from reordering access */</div><div class='ctx'> #define ACCESS_ONCE(type,x) (*((volatile type *)&amp;(x)))</div><div class='ctx'> </div><div class='del'>-#if defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 201112L)</div><div class='del'>-# define STATIC_ASSERT(name, expr) _Static_assert(expr, #name ": " #expr)</div><div class='del'>-#elif GCC_VERSION_SINCE(4, 6, 0) || __has_extension(c_static_assert)</div><div class='del'>-# define STATIC_ASSERT(name, expr) RB_GNUC_EXTENSION _Static_assert(expr, #name ": " #expr)</div><div class='del'>-#else</div><div class='del'>-# define STATIC_ASSERT(name, expr) typedef int static_assert_##name##_check[1 - 2*!(expr)]</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define SIGNED_INTEGER_TYPE_P(int_type) (0 &gt; ((int_type)0)-1)</div><div class='del'>-#define SIGNED_INTEGER_MAX(sint_type) \</div><div class='del'>-  (sint_type) \</div><div class='del'>-  ((((sint_type)1) &lt;&lt; (sizeof(sint_type) * CHAR_BIT - 2)) | \</div><div class='del'>-  ((((sint_type)1) &lt;&lt; (sizeof(sint_type) * CHAR_BIT - 2)) - 1))</div><div class='del'>-#define SIGNED_INTEGER_MIN(sint_type) (-SIGNED_INTEGER_MAX(sint_type)-1)</div><div class='del'>-#define UNSIGNED_INTEGER_MAX(uint_type) (~(uint_type)0)</div><div class='del'>-</div><div class='del'>-#if SIGNEDNESS_OF_TIME_T &lt; 0	/* signed */</div><div class='del'>-# define TIMET_MAX SIGNED_INTEGER_MAX(time_t)</div><div class='del'>-# define TIMET_MIN SIGNED_INTEGER_MIN(time_t)</div><div class='del'>-#elif SIGNEDNESS_OF_TIME_T &gt; 0	/* unsigned */</div><div class='del'>-# define TIMET_MAX UNSIGNED_INTEGER_MAX(time_t)</div><div class='del'>-# define TIMET_MIN ((time_t)0)</div><div class='del'>-#endif</div><div class='del'>-#define TIMET_MAX_PLUS_ONE (2*(double)(TIMET_MAX/2+1))</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW_P</div><div class='del'>-#define MUL_OVERFLOW_P(a, b) \</div><div class='del'>-    __builtin_mul_overflow_p((a), (b), (__typeof__(a * b))0)</div><div class='del'>-#elif defined HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW</div><div class='del'>-#define MUL_OVERFLOW_P(a, b) \</div><div class='del'>-    RB_GNUC_EXTENSION_BLOCK(__typeof__(a) c; __builtin_mul_overflow((a), (b), &amp;c))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, min, max) ( \</div><div class='del'>-    (a) == 0 ? 0 : \</div><div class='del'>-    (a) == -1 ? (b) &lt; -(max) : \</div><div class='del'>-    (a) &gt; 0 ? \</div><div class='del'>-      ((b) &gt; 0 ? (max) / (a) &lt; (b) : (min) / (a) &gt; (b)) : \</div><div class='del'>-      ((b) &gt; 0 ? (min) / (a) &lt; (b) : (max) / (a) &gt; (b)))</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW_P</div><div class='del'>-/* __builtin_mul_overflow_p can take bitfield */</div><div class='del'>-/* and GCC permits bitfields for integers other than int */</div><div class='del'>-#define MUL_OVERFLOW_FIXNUM_P(a, b) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    struct { long fixnum : SIZEOF_LONG * CHAR_BIT - 1; } c; \</div><div class='del'>-    __builtin_mul_overflow_p((a), (b), c.fixnum); \</div><div class='del'>-)</div><div class='del'>-#else</div><div class='del'>-#define MUL_OVERFLOW_FIXNUM_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, FIXNUM_MIN, FIXNUM_MAX)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef MUL_OVERFLOW_P</div><div class='del'>-#define MUL_OVERFLOW_LONG_LONG_P(a, b) MUL_OVERFLOW_P(a, b)</div><div class='del'>-#define MUL_OVERFLOW_LONG_P(a, b)      MUL_OVERFLOW_P(a, b)</div><div class='del'>-#define MUL_OVERFLOW_INT_P(a, b)       MUL_OVERFLOW_P(a, b)</div><div class='del'>-#else</div><div class='del'>-#define MUL_OVERFLOW_LONG_LONG_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, LLONG_MIN, LLONG_MAX)</div><div class='del'>-#define MUL_OVERFLOW_LONG_P(a, b)      MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, LONG_MIN, LONG_MAX)</div><div class='del'>-#define MUL_OVERFLOW_INT_P(a, b)       MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, INT_MIN, INT_MAX)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef swap16</div><div class='del'>-# ifdef HAVE_BUILTIN___BUILTIN_BSWAP16</div><div class='del'>-#  define swap16(x) __builtin_bswap16(x)</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef swap16</div><div class='del'>-# define swap16(x)      ((uint16_t)((((x)&amp;0xFF)&lt;&lt;8) | (((x)&gt;&gt;8)&amp;0xFF)))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef swap32</div><div class='del'>-# ifdef HAVE_BUILTIN___BUILTIN_BSWAP32</div><div class='del'>-#  define swap32(x) __builtin_bswap32(x)</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef swap32</div><div class='del'>-# define swap32(x)      ((uint32_t)((((x)&amp;0xFF)&lt;&lt;24)    \</div><div class='del'>-                        |(((x)&gt;&gt;24)&amp;0xFF)       \</div><div class='del'>-                        |(((x)&amp;0x0000FF00)&lt;&lt;8)  \</div><div class='del'>-                        |(((x)&amp;0x00FF0000)&gt;&gt;8)  ))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef swap64</div><div class='del'>-# ifdef HAVE_BUILTIN___BUILTIN_BSWAP64</div><div class='del'>-#  define swap64(x) __builtin_bswap64(x)</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef swap64</div><div class='del'>-# ifdef HAVE_INT64_T</div><div class='del'>-#  define byte_in_64bit(n) ((uint64_t)0xff &lt;&lt; (n))</div><div class='del'>-#  define swap64(x)       ((uint64_t)((((x)&amp;byte_in_64bit(0))&lt;&lt;56)      \</div><div class='del'>-                           |(((x)&gt;&gt;56)&amp;0xFF)                    \</div><div class='del'>-                           |(((x)&amp;byte_in_64bit(8))&lt;&lt;40)        \</div><div class='del'>-                           |(((x)&amp;byte_in_64bit(48))&gt;&gt;40)       \</div><div class='del'>-                           |(((x)&amp;byte_in_64bit(16))&lt;&lt;24)       \</div><div class='del'>-                           |(((x)&amp;byte_in_64bit(40))&gt;&gt;24)       \</div><div class='del'>-                           |(((x)&amp;byte_in_64bit(24))&lt;&lt;8)        \</div><div class='del'>-                           |(((x)&amp;byte_in_64bit(32))&gt;&gt;8)))</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static inline unsigned int</div><div class='del'>-nlz_int(unsigned int x)</div><div class='del'>-{</div><div class='del'>-#if defined(HAVE_BUILTIN___BUILTIN_CLZ)</div><div class='del'>-    if (x == 0) return SIZEOF_INT * CHAR_BIT;</div><div class='del'>-    return (unsigned int)__builtin_clz(x);</div><div class='del'>-#else</div><div class='del'>-    unsigned int y;</div><div class='del'>-# if 64 &lt; SIZEOF_INT * CHAR_BIT</div><div class='del'>-    unsigned int n = 128;</div><div class='del'>-# elif 32 &lt; SIZEOF_INT * CHAR_BIT</div><div class='del'>-    unsigned int n = 64;</div><div class='del'>-# else</div><div class='del'>-    unsigned int n = 32;</div><div class='del'>-# endif</div><div class='del'>-# if 64 &lt; SIZEOF_INT * CHAR_BIT</div><div class='del'>-    y = x &gt;&gt; 64; if (y) {n -= 64; x = y;}</div><div class='del'>-# endif</div><div class='del'>-# if 32 &lt; SIZEOF_INT * CHAR_BIT</div><div class='del'>-    y = x &gt;&gt; 32; if (y) {n -= 32; x = y;}</div><div class='del'>-# endif</div><div class='del'>-    y = x &gt;&gt; 16; if (y) {n -= 16; x = y;}</div><div class='del'>-    y = x &gt;&gt;  8; if (y) {n -=  8; x = y;}</div><div class='del'>-    y = x &gt;&gt;  4; if (y) {n -=  4; x = y;}</div><div class='del'>-    y = x &gt;&gt;  2; if (y) {n -=  2; x = y;}</div><div class='del'>-    y = x &gt;&gt;  1; if (y) {return n - 2;}</div><div class='del'>-    return (unsigned int)(n - x);</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline unsigned int</div><div class='del'>-nlz_long(unsigned long x)</div><div class='del'>-{</div><div class='del'>-#if defined(HAVE_BUILTIN___BUILTIN_CLZL)</div><div class='del'>-    if (x == 0) return SIZEOF_LONG * CHAR_BIT;</div><div class='del'>-    return (unsigned int)__builtin_clzl(x);</div><div class='del'>-#else</div><div class='del'>-    unsigned long y;</div><div class='del'>-# if 64 &lt; SIZEOF_LONG * CHAR_BIT</div><div class='del'>-    unsigned int n = 128;</div><div class='del'>-# elif 32 &lt; SIZEOF_LONG * CHAR_BIT</div><div class='del'>-    unsigned int n = 64;</div><div class='del'>-# else</div><div class='del'>-    unsigned int n = 32;</div><div class='del'>-# endif</div><div class='del'>-# if 64 &lt; SIZEOF_LONG * CHAR_BIT</div><div class='del'>-    y = x &gt;&gt; 64; if (y) {n -= 64; x = y;}</div><div class='del'>-# endif</div><div class='del'>-# if 32 &lt; SIZEOF_LONG * CHAR_BIT</div><div class='del'>-    y = x &gt;&gt; 32; if (y) {n -= 32; x = y;}</div><div class='del'>-# endif</div><div class='del'>-    y = x &gt;&gt; 16; if (y) {n -= 16; x = y;}</div><div class='del'>-    y = x &gt;&gt;  8; if (y) {n -=  8; x = y;}</div><div class='del'>-    y = x &gt;&gt;  4; if (y) {n -=  4; x = y;}</div><div class='del'>-    y = x &gt;&gt;  2; if (y) {n -=  2; x = y;}</div><div class='del'>-    y = x &gt;&gt;  1; if (y) {return n - 2;}</div><div class='del'>-    return (unsigned int)(n - x);</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_LONG_LONG</div><div class='del'>-static inline unsigned int</div><div class='del'>-nlz_long_long(unsigned LONG_LONG x)</div><div class='del'>-{</div><div class='del'>-#if defined(HAVE_BUILTIN___BUILTIN_CLZLL)</div><div class='del'>-    if (x == 0) return SIZEOF_LONG_LONG * CHAR_BIT;</div><div class='del'>-    return (unsigned int)__builtin_clzll(x);</div><div class='del'>-#else</div><div class='del'>-    unsigned LONG_LONG y;</div><div class='del'>-# if 64 &lt; SIZEOF_LONG_LONG * CHAR_BIT</div><div class='del'>-    unsigned int n = 128;</div><div class='del'>-# elif 32 &lt; SIZEOF_LONG_LONG * CHAR_BIT</div><div class='del'>-    unsigned int n = 64;</div><div class='del'>-# else</div><div class='del'>-    unsigned int n = 32;</div><div class='del'>-# endif</div><div class='del'>-# if 64 &lt; SIZEOF_LONG_LONG * CHAR_BIT</div><div class='del'>-    y = x &gt;&gt; 64; if (y) {n -= 64; x = y;}</div><div class='del'>-# endif</div><div class='del'>-# if 32 &lt; SIZEOF_LONG_LONG * CHAR_BIT</div><div class='del'>-    y = x &gt;&gt; 32; if (y) {n -= 32; x = y;}</div><div class='del'>-# endif</div><div class='del'>-    y = x &gt;&gt; 16; if (y) {n -= 16; x = y;}</div><div class='del'>-    y = x &gt;&gt;  8; if (y) {n -=  8; x = y;}</div><div class='del'>-    y = x &gt;&gt;  4; if (y) {n -=  4; x = y;}</div><div class='del'>-    y = x &gt;&gt;  2; if (y) {n -=  2; x = y;}</div><div class='del'>-    y = x &gt;&gt;  1; if (y) {return n - 2;}</div><div class='del'>-    return (unsigned int)(n - x);</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef HAVE_UINT128_T</div><div class='del'>-static inline unsigned int</div><div class='del'>-nlz_int128(uint128_t x)</div><div class='del'>-{</div><div class='del'>-    uint128_t y;</div><div class='del'>-    unsigned int n = 128;</div><div class='del'>-    y = x &gt;&gt; 64; if (y) {n -= 64; x = y;}</div><div class='del'>-    y = x &gt;&gt; 32; if (y) {n -= 32; x = y;}</div><div class='del'>-    y = x &gt;&gt; 16; if (y) {n -= 16; x = y;}</div><div class='del'>-    y = x &gt;&gt;  8; if (y) {n -=  8; x = y;}</div><div class='del'>-    y = x &gt;&gt;  4; if (y) {n -=  4; x = y;}</div><div class='del'>-    y = x &gt;&gt;  2; if (y) {n -=  2; x = y;}</div><div class='del'>-    y = x &gt;&gt;  1; if (y) {return n - 2;}</div><div class='del'>-    return (unsigned int)(n - x);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static inline unsigned int</div><div class='del'>-nlz_intptr(uintptr_t x)</div><div class='del'>-{</div><div class='del'>-#if SIZEOF_UINTPTR_T == SIZEOF_INT</div><div class='del'>-    return nlz_int(x);</div><div class='del'>-#elif SIZEOF_UINTPTR_T == SIZEOF_LONG</div><div class='del'>-    return nlz_long(x);</div><div class='del'>-#elif SIZEOF_UINTPTR_T == SIZEOF_LONG_LONG</div><div class='del'>-    return nlz_long_long(x);</div><div class='del'>-#else</div><div class='del'>-    #error no known integer type corresponds uintptr_t</div><div class='del'>-    return /* sane compiler */ ~0;</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline unsigned int</div><div class='del'>-rb_popcount32(uint32_t x)</div><div class='del'>-{</div><div class='del'>-#ifdef HAVE_BUILTIN___BUILTIN_POPCOUNT</div><div class='del'>-    return (unsigned int)__builtin_popcount(x);</div><div class='del'>-#else</div><div class='del'>-    x = (x &amp; 0x55555555) + (x &gt;&gt; 1 &amp; 0x55555555);</div><div class='del'>-    x = (x &amp; 0x33333333) + (x &gt;&gt; 2 &amp; 0x33333333);</div><div class='del'>-    x = (x &amp; 0x0f0f0f0f) + (x &gt;&gt; 4 &amp; 0x0f0f0f0f);</div><div class='del'>-    x = (x &amp; 0x001f001f) + (x &gt;&gt; 8 &amp; 0x001f001f);</div><div class='del'>-    return (x &amp; 0x0000003f) + (x &gt;&gt;16 &amp; 0x0000003f);</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-rb_popcount64(uint64_t x)</div><div class='del'>-{</div><div class='del'>-#ifdef HAVE_BUILTIN___BUILTIN_POPCOUNT</div><div class='del'>-    return __builtin_popcountll(x);</div><div class='del'>-#else</div><div class='del'>-    x = (x &amp; 0x5555555555555555) + (x &gt;&gt; 1 &amp; 0x5555555555555555);</div><div class='del'>-    x = (x &amp; 0x3333333333333333) + (x &gt;&gt; 2 &amp; 0x3333333333333333);</div><div class='del'>-    x = (x &amp; 0x0707070707070707) + (x &gt;&gt; 4 &amp; 0x0707070707070707);</div><div class='del'>-    x = (x &amp; 0x001f001f001f001f) + (x &gt;&gt; 8 &amp; 0x001f001f001f001f);</div><div class='del'>-    x = (x &amp; 0x0000003f0000003f) + (x &gt;&gt;16 &amp; 0x0000003f0000003f);</div><div class='del'>-    return (x &amp; 0x7f) + (x &gt;&gt;32 &amp; 0x7f);</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-rb_popcount_intptr(uintptr_t x)</div><div class='del'>-{</div><div class='del'>-#if SIZEOF_VOIDP == 8</div><div class='del'>-    return rb_popcount64(x);</div><div class='del'>-#elif SIZEOF_VOIDP == 4</div><div class='del'>-    return rb_popcount32(x);</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-ntz_int32(uint32_t x)</div><div class='del'>-{</div><div class='del'>-#ifdef HAVE_BUILTIN___BUILTIN_CTZ</div><div class='del'>-    return __builtin_ctz(x);</div><div class='del'>-#else</div><div class='del'>-    return rb_popcount32((~x) &amp; (x-1));</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-ntz_int64(uint64_t x)</div><div class='del'>-{</div><div class='del'>-#ifdef HAVE_BUILTIN___BUILTIN_CTZLL</div><div class='del'>-    return __builtin_ctzll(x);</div><div class='del'>-#else</div><div class='del'>-    return rb_popcount64((~x) &amp; (x-1));</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-ntz_intptr(uintptr_t x)</div><div class='del'>-{</div><div class='del'>-#if SIZEOF_VOIDP == 8</div><div class='del'>-    return ntz_int64(x);</div><div class='del'>-#elif SIZEOF_VOIDP == 4</div><div class='del'>-    return ntz_int32(x);</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if HAVE_LONG_LONG &amp;&amp; SIZEOF_LONG * 2 &lt;= SIZEOF_LONG_LONG</div><div class='del'>-# define DLONG LONG_LONG</div><div class='del'>-# define DL2NUM(x) LL2NUM(x)</div><div class='del'>-#elif defined(HAVE_INT128_T)</div><div class='del'>-# define DLONG int128_t</div><div class='del'>-# define DL2NUM(x) (RB_FIXABLE(x) ? LONG2FIX(x) : rb_int128t2big(x))</div><div class='del'>-VALUE rb_int128t2big(int128_t n);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static inline long</div><div class='del'>-rb_overflowed_fix_to_int(long x)</div><div class='del'>-{</div><div class='del'>-    return (long)((unsigned long)(x &gt;&gt; 1) ^ (1LU &lt;&lt; (SIZEOF_LONG * CHAR_BIT - 1)));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_fix_plus_fix(VALUE x, VALUE y)</div><div class='del'>-{</div><div class='del'>-#ifdef HAVE_BUILTIN___BUILTIN_ADD_OVERFLOW</div><div class='del'>-    long lz;</div><div class='del'>-    /* NOTE</div><div class='del'>-     * (1) `LONG2FIX(FIX2LONG(x)+FIX2LONG(y))`</div><div class='del'>-     +     = `((lx*2+1)/2 + (ly*2+1)/2)*2+1`</div><div class='del'>-     +     = `lx*2 + ly*2 + 1`</div><div class='del'>-     +     = `(lx*2+1) + (ly*2+1) - 1`</div><div class='del'>-     +     = `x + y - 1`</div><div class='del'>-     * (2) Fixnum's LSB is always 1.</div><div class='del'>-     *     It means you can always run `x - 1` without overflow.</div><div class='del'>-     * (3) Of course `z = x + (y-1)` may overflow.</div><div class='del'>-     *     At that time true value is</div><div class='del'>-     *     * positive: 0b0 1xxx...1, and z = 0b1xxx...1</div><div class='del'>-     *     * nevative: 0b1 0xxx...1, and z = 0b0xxx...1</div><div class='del'>-     *     To convert this true value to long,</div><div class='del'>-     *     (a) Use arithmetic shift</div><div class='del'>-     *         * positive: 0b11xxx...</div><div class='del'>-     *         * negative: 0b00xxx...</div><div class='del'>-     *     (b) invert MSB</div><div class='del'>-     *         * positive: 0b01xxx...</div><div class='del'>-     *         * negative: 0b10xxx...</div><div class='del'>-     */</div><div class='del'>-    if (__builtin_add_overflow((long)x, (long)y-1, &amp;lz)) {</div><div class='del'>-	return rb_int2big(rb_overflowed_fix_to_int(lz));</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	return (VALUE)lz;</div><div class='del'>-    }</div><div class='del'>-#else</div><div class='del'>-    long lz = FIX2LONG(x) + FIX2LONG(y);</div><div class='del'>-    return LONG2NUM(lz);</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_fix_minus_fix(VALUE x, VALUE y)</div><div class='del'>-{</div><div class='del'>-#ifdef HAVE_BUILTIN___BUILTIN_SUB_OVERFLOW</div><div class='del'>-    long lz;</div><div class='del'>-    if (__builtin_sub_overflow((long)x, (long)y-1, &amp;lz)) {</div><div class='del'>-	return rb_int2big(rb_overflowed_fix_to_int(lz));</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	return (VALUE)lz;</div><div class='del'>-    }</div><div class='del'>-#else</div><div class='del'>-    long lz = FIX2LONG(x) - FIX2LONG(y);</div><div class='del'>-    return LONG2NUM(lz);</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* arguments must be Fixnum */</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_fix_mul_fix(VALUE x, VALUE y)</div><div class='del'>-{</div><div class='del'>-    long lx = FIX2LONG(x);</div><div class='del'>-    long ly = FIX2LONG(y);</div><div class='del'>-#ifdef DLONG</div><div class='del'>-    return DL2NUM((DLONG)lx * (DLONG)ly);</div><div class='del'>-#else</div><div class='del'>-    if (MUL_OVERFLOW_FIXNUM_P(lx, ly)) {</div><div class='del'>-	return rb_big_mul(rb_int2big(lx), rb_int2big(ly));</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	return LONG2FIX(lx * ly);</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * This behaves different from C99 for negative arguments.</div><div class='del'>- * Note that div may overflow fixnum.</div><div class='del'>- */</div><div class='del'>-static inline void</div><div class='del'>-rb_fix_divmod_fix(VALUE a, VALUE b, VALUE *divp, VALUE *modp)</div><div class='del'>-{</div><div class='del'>-    /* assume / and % comply C99.</div><div class='del'>-     * ldiv(3) won't be inlined by GCC and clang.</div><div class='del'>-     * I expect / and % are compiled as single idiv.</div><div class='del'>-     */</div><div class='del'>-    long x = FIX2LONG(a);</div><div class='del'>-    long y = FIX2LONG(b);</div><div class='del'>-    long div, mod;</div><div class='del'>-    if (x == FIXNUM_MIN &amp;&amp; y == -1) {</div><div class='del'>-	if (divp) *divp = LONG2NUM(-FIXNUM_MIN);</div><div class='del'>-	if (modp) *modp = LONG2FIX(0);</div><div class='del'>-	return;</div><div class='del'>-    }</div><div class='del'>-    div = x / y;</div><div class='del'>-    mod = x % y;</div><div class='del'>-    if (y &gt; 0 ? mod &lt; 0 : mod &gt; 0) {</div><div class='del'>-	mod += y;</div><div class='del'>-	div -= 1;</div><div class='del'>-    }</div><div class='del'>-    if (divp) *divp = LONG2FIX(div);</div><div class='del'>-    if (modp) *modp = LONG2FIX(mod);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* div() for Ruby</div><div class='del'>- * This behaves different from C99 for negative arguments.</div><div class='del'>- */</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_fix_div_fix(VALUE x, VALUE y)</div><div class='del'>-{</div><div class='del'>-    VALUE div;</div><div class='del'>-    rb_fix_divmod_fix(x, y, &amp;div, NULL);</div><div class='del'>-    return div;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* mod() for Ruby</div><div class='del'>- * This behaves different from C99 for negative arguments.</div><div class='del'>- */</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_fix_mod_fix(VALUE x, VALUE y)</div><div class='del'>-{</div><div class='del'>-    VALUE mod;</div><div class='del'>-    rb_fix_divmod_fix(x, y, NULL, &amp;mod);</div><div class='del'>-    return mod;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if defined(HAVE_UINT128_T) &amp;&amp; defined(HAVE_LONG_LONG)</div><div class='del'>-#   define bit_length(x) \</div><div class='del'>-    (unsigned int) \</div><div class='del'>-    (sizeof(x) &lt;= SIZEOF_INT ? SIZEOF_INT * CHAR_BIT - nlz_int((unsigned int)(x)) : \</div><div class='del'>-     sizeof(x) &lt;= SIZEOF_LONG ? SIZEOF_LONG * CHAR_BIT - nlz_long((unsigned long)(x)) : \</div><div class='del'>-     sizeof(x) &lt;= SIZEOF_LONG_LONG ? SIZEOF_LONG_LONG * CHAR_BIT - nlz_long_long((unsigned LONG_LONG)(x)) : \</div><div class='del'>-     SIZEOF_INT128_T * CHAR_BIT - nlz_int128((uint128_t)(x)))</div><div class='del'>-#elif defined(HAVE_UINT128_T)</div><div class='del'>-#   define bit_length(x) \</div><div class='del'>-    (unsigned int) \</div><div class='del'>-    (sizeof(x) &lt;= SIZEOF_INT ? SIZEOF_INT * CHAR_BIT - nlz_int((unsigned int)(x)) : \</div><div class='del'>-     sizeof(x) &lt;= SIZEOF_LONG ? SIZEOF_LONG * CHAR_BIT - nlz_long((unsigned long)(x)) : \</div><div class='del'>-     SIZEOF_INT128_T * CHAR_BIT - nlz_int128((uint128_t)(x)))</div><div class='del'>-#elif defined(HAVE_LONG_LONG)</div><div class='del'>-#   define bit_length(x) \</div><div class='del'>-    (unsigned int) \</div><div class='del'>-    (sizeof(x) &lt;= SIZEOF_INT ? SIZEOF_INT * CHAR_BIT - nlz_int((unsigned int)(x)) : \</div><div class='del'>-     sizeof(x) &lt;= SIZEOF_LONG ? SIZEOF_LONG * CHAR_BIT - nlz_long((unsigned long)(x)) : \</div><div class='del'>-     SIZEOF_LONG_LONG * CHAR_BIT - nlz_long_long((unsigned LONG_LONG)(x)))</div><div class='del'>-#else</div><div class='del'>-#   define bit_length(x) \</div><div class='del'>-    (unsigned int) \</div><div class='del'>-    (sizeof(x) &lt;= SIZEOF_INT ? SIZEOF_INT * CHAR_BIT - nlz_int((unsigned int)(x)) : \</div><div class='del'>-     SIZEOF_LONG * CHAR_BIT - nlz_long((unsigned long)(x)))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef BDIGIT</div><div class='del'>-# if SIZEOF_INT*2 &lt;= SIZEOF_LONG_LONG</div><div class='del'>-#  define BDIGIT unsigned int</div><div class='del'>-#  define SIZEOF_BDIGIT SIZEOF_INT</div><div class='del'>-#  define BDIGIT_DBL unsigned LONG_LONG</div><div class='del'>-#  define BDIGIT_DBL_SIGNED LONG_LONG</div><div class='del'>-#  define PRI_BDIGIT_PREFIX ""</div><div class='del'>-#  define PRI_BDIGIT_DBL_PREFIX PRI_LL_PREFIX</div><div class='del'>-# elif SIZEOF_INT*2 &lt;= SIZEOF_LONG</div><div class='del'>-#  define BDIGIT unsigned int</div><div class='del'>-#  define SIZEOF_BDIGIT SIZEOF_INT</div><div class='del'>-#  define BDIGIT_DBL unsigned long</div><div class='del'>-#  define BDIGIT_DBL_SIGNED long</div><div class='del'>-#  define PRI_BDIGIT_PREFIX ""</div><div class='del'>-#  define PRI_BDIGIT_DBL_PREFIX "l"</div><div class='del'>-# elif SIZEOF_SHORT*2 &lt;= SIZEOF_LONG</div><div class='del'>-#  define BDIGIT unsigned short</div><div class='del'>-#  define SIZEOF_BDIGIT SIZEOF_SHORT</div><div class='del'>-#  define BDIGIT_DBL unsigned long</div><div class='del'>-#  define BDIGIT_DBL_SIGNED long</div><div class='del'>-#  define PRI_BDIGIT_PREFIX "h"</div><div class='del'>-#  define PRI_BDIGIT_DBL_PREFIX "l"</div><div class='del'>-# else</div><div class='del'>-#  define BDIGIT unsigned short</div><div class='del'>-#  define SIZEOF_BDIGIT (SIZEOF_LONG/2)</div><div class='del'>-#  define SIZEOF_ACTUAL_BDIGIT SIZEOF_LONG</div><div class='del'>-#  define BDIGIT_DBL unsigned long</div><div class='del'>-#  define BDIGIT_DBL_SIGNED long</div><div class='del'>-#  define PRI_BDIGIT_PREFIX "h"</div><div class='del'>-#  define PRI_BDIGIT_DBL_PREFIX "l"</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-#ifndef SIZEOF_ACTUAL_BDIGIT</div><div class='del'>-# define SIZEOF_ACTUAL_BDIGIT SIZEOF_BDIGIT</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef PRI_BDIGIT_PREFIX</div><div class='del'>-# define PRIdBDIGIT PRI_BDIGIT_PREFIX"d"</div><div class='del'>-# define PRIiBDIGIT PRI_BDIGIT_PREFIX"i"</div><div class='del'>-# define PRIoBDIGIT PRI_BDIGIT_PREFIX"o"</div><div class='del'>-# define PRIuBDIGIT PRI_BDIGIT_PREFIX"u"</div><div class='del'>-# define PRIxBDIGIT PRI_BDIGIT_PREFIX"x"</div><div class='del'>-# define PRIXBDIGIT PRI_BDIGIT_PREFIX"X"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef PRI_BDIGIT_DBL_PREFIX</div><div class='del'>-# define PRIdBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"d"</div><div class='del'>-# define PRIiBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"i"</div><div class='del'>-# define PRIoBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"o"</div><div class='del'>-# define PRIuBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"u"</div><div class='del'>-# define PRIxBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"x"</div><div class='del'>-# define PRIXBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"X"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define BIGNUM_EMBED_LEN_NUMBITS 3</div><div class='del'>-#ifndef BIGNUM_EMBED_LEN_MAX</div><div class='del'>-# if (SIZEOF_VALUE*3/SIZEOF_ACTUAL_BDIGIT) &lt; (1 &lt;&lt; BIGNUM_EMBED_LEN_NUMBITS)-1</div><div class='del'>-#   define BIGNUM_EMBED_LEN_MAX (SIZEOF_VALUE*3/SIZEOF_ACTUAL_BDIGIT)</div><div class='del'>-# else</div><div class='del'>-#   define BIGNUM_EMBED_LEN_MAX ((1 &lt;&lt; BIGNUM_EMBED_LEN_NUMBITS)-1)</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-struct RBignum {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    union {</div><div class='del'>-        struct {</div><div class='del'>-            size_t len;</div><div class='del'>-            BDIGIT *digits;</div><div class='del'>-        } heap;</div><div class='del'>-        BDIGIT ary[BIGNUM_EMBED_LEN_MAX];</div><div class='del'>-    } as;</div><div class='del'>-};</div><div class='del'>-#define BIGNUM_SIGN_BIT ((VALUE)FL_USER1)</div><div class='del'>-/* sign: positive:1, negative:0 */</div><div class='del'>-#define BIGNUM_SIGN(b) ((RBASIC(b)-&gt;flags &amp; BIGNUM_SIGN_BIT) != 0)</div><div class='del'>-#define BIGNUM_SET_SIGN(b,sign) \</div><div class='del'>-  ((sign) ? (RBASIC(b)-&gt;flags |= BIGNUM_SIGN_BIT) \</div><div class='del'>-          : (RBASIC(b)-&gt;flags &amp;= ~BIGNUM_SIGN_BIT))</div><div class='del'>-#define BIGNUM_POSITIVE_P(b) BIGNUM_SIGN(b)</div><div class='del'>-#define BIGNUM_NEGATIVE_P(b) (!BIGNUM_SIGN(b))</div><div class='del'>-#define BIGNUM_NEGATE(b) (RBASIC(b)-&gt;flags ^= BIGNUM_SIGN_BIT)</div><div class='del'>-</div><div class='del'>-#define BIGNUM_EMBED_FLAG ((VALUE)FL_USER2)</div><div class='del'>-#define BIGNUM_EMBED_LEN_MASK \</div><div class='del'>-    (~(~(VALUE)0U &lt;&lt; BIGNUM_EMBED_LEN_NUMBITS) &lt;&lt; BIGNUM_EMBED_LEN_SHIFT)</div><div class='del'>-#define BIGNUM_EMBED_LEN_SHIFT \</div><div class='del'>-    (FL_USHIFT+3) /* bit offset of BIGNUM_EMBED_LEN_MASK */</div><div class='del'>-#define BIGNUM_LEN(b) \</div><div class='del'>-    ((RBASIC(b)-&gt;flags &amp; BIGNUM_EMBED_FLAG) ? \</div><div class='del'>-     (size_t)((RBASIC(b)-&gt;flags &gt;&gt; BIGNUM_EMBED_LEN_SHIFT) &amp; \</div><div class='del'>-	      (BIGNUM_EMBED_LEN_MASK &gt;&gt; BIGNUM_EMBED_LEN_SHIFT)) : \</div><div class='del'>-     RBIGNUM(b)-&gt;as.heap.len)</div><div class='del'>-/* LSB:BIGNUM_DIGITS(b)[0], MSB:BIGNUM_DIGITS(b)[BIGNUM_LEN(b)-1] */</div><div class='del'>-#define BIGNUM_DIGITS(b) \</div><div class='del'>-    ((RBASIC(b)-&gt;flags &amp; BIGNUM_EMBED_FLAG) ? \</div><div class='del'>-     RBIGNUM(b)-&gt;as.ary : \</div><div class='del'>-     RBIGNUM(b)-&gt;as.heap.digits)</div><div class='del'>-#define BIGNUM_LENINT(b) rb_long2int(BIGNUM_LEN(b))</div><div class='del'>-</div><div class='del'>-#define RBIGNUM(obj) (R_CAST(RBignum)(obj))</div><div class='add'>+#define UNDEF_P         RB_UNDEF_P</div><div class='add'>+#define NIL_OR_UNDEF_P  RB_NIL_OR_UNDEF_P</div><div class='ctx'> </div><div class='del'>-struct RRational {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    const VALUE num;</div><div class='del'>-    const VALUE den;</div><div class='del'>-};</div><div class='add'>+#include "ruby/ruby.h"</div><div class='ctx'> </div><div class='del'>-#define RRATIONAL(obj) (R_CAST(RRational)(obj))</div><div class='del'>-#define RRATIONAL_SET_NUM(rat, n) RB_OBJ_WRITE((rat), &amp;((struct RRational *)(rat))-&gt;num,(n))</div><div class='del'>-#define RRATIONAL_SET_DEN(rat, d) RB_OBJ_WRITE((rat), &amp;((struct RRational *)(rat))-&gt;den,(d))</div><div class='add'>+/* Following macros were formerly defined in this header but moved to somewhere</div><div class='add'>+ * else.  In order to detect them we undef here. */</div><div class='ctx'> </div><div class='del'>-struct RFloat {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    double float_value;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define RFLOAT(obj)  (R_CAST(RFloat)(obj))</div><div class='del'>-</div><div class='del'>-struct RComplex {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    const VALUE real;</div><div class='del'>-    const VALUE imag;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define RCOMPLEX(obj) (R_CAST(RComplex)(obj))</div><div class='del'>-</div><div class='del'>-/* shortcut macro for internal only */</div><div class='del'>-#define RCOMPLEX_SET_REAL(cmp, r) RB_OBJ_WRITE((cmp), &amp;((struct RComplex *)(cmp))-&gt;real,(r))</div><div class='del'>-#define RCOMPLEX_SET_IMAG(cmp, i) RB_OBJ_WRITE((cmp), &amp;((struct RComplex *)(cmp))-&gt;imag,(i))</div><div class='del'>-</div><div class='del'>-enum ruby_rhash_flags {</div><div class='del'>-    RHASH_ST_TABLE_FLAG = FL_USER3,</div><div class='del'>-    RHASH_AR_TABLE_MAX_SIZE = 8,</div><div class='del'>-    RHASH_AR_TABLE_SIZE_MASK = (FL_USER4|FL_USER5|FL_USER6|FL_USER7),</div><div class='del'>-    RHASH_AR_TABLE_SIZE_SHIFT = (FL_USHIFT+4),</div><div class='del'>-    RHASH_AR_TABLE_BOUND_MASK = (FL_USER8|FL_USER9|FL_USER10|FL_USER11),</div><div class='del'>-    RHASH_AR_TABLE_BOUND_SHIFT = (FL_USHIFT+8),</div><div class='del'>-</div><div class='del'>-    RHASH_ENUM_END</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define HASH_PROC_DEFAULT FL_USER2</div><div class='del'>-</div><div class='del'>-#define RHASH_AR_TABLE_SIZE_RAW(h) \</div><div class='del'>-  ((unsigned int)((RBASIC(h)-&gt;flags &amp; RHASH_AR_TABLE_SIZE_MASK) &gt;&gt; RHASH_AR_TABLE_SIZE_SHIFT))</div><div class='del'>-</div><div class='del'>-int rb_hash_ar_table_p(VALUE hash);</div><div class='del'>-struct ar_table_struct *rb_hash_ar_table(VALUE hash);</div><div class='del'>-st_table *rb_hash_st_table(VALUE hash);</div><div class='del'>-void rb_hash_st_table_set(VALUE hash, st_table *st);</div><div class='del'>-</div><div class='del'>-#if 0 /* for debug */</div><div class='del'>-#define RHASH_AR_TABLE_P(hash)       rb_hash_ar_table_p(hash)</div><div class='del'>-#define RHASH_AR_TABLE(h)            rb_hash_ar_table(h)</div><div class='del'>-#define RHASH_ST_TABLE(h)            rb_hash_st_table(h)</div><div class='del'>-#else</div><div class='del'>-#define RHASH_AR_TABLE_P(hash)       (!FL_TEST_RAW((hash), RHASH_ST_TABLE_FLAG))</div><div class='del'>-#define RHASH_AR_TABLE(hash)         (RHASH(hash)-&gt;as.ar)</div><div class='del'>-#define RHASH_ST_TABLE(hash)         (RHASH(hash)-&gt;as.st)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define RHASH(obj)                   (R_CAST(RHash)(obj))</div><div class='del'>-#define RHASH_ST_SIZE(h)             (RHASH_ST_TABLE(h)-&gt;num_entries)</div><div class='del'>-#define RHASH_ST_TABLE_P(h)          (!RHASH_AR_TABLE_P(h))</div><div class='del'>-#define RHASH_ST_CLEAR(h)            (FL_UNSET_RAW(h, RHASH_ST_TABLE_FLAG), RHASH(h)-&gt;as.ar = NULL)</div><div class='del'>-</div><div class='del'>-#define RHASH_AR_TABLE_SIZE_MASK     (VALUE)RHASH_AR_TABLE_SIZE_MASK</div><div class='del'>-#define RHASH_AR_TABLE_SIZE_SHIFT    RHASH_AR_TABLE_SIZE_SHIFT</div><div class='del'>-#define RHASH_AR_TABLE_BOUND_MASK    (VALUE)RHASH_AR_TABLE_BOUND_MASK</div><div class='del'>-#define RHASH_AR_TABLE_BOUND_SHIFT   RHASH_AR_TABLE_BOUND_SHIFT</div><div class='del'>-</div><div class='del'>-#if USE_TRANSIENT_HEAP</div><div class='del'>-#define RHASH_TRANSIENT_FLAG      FL_USER14</div><div class='del'>-#define RHASH_TRANSIENT_P(hash)   FL_TEST_RAW((hash), RHASH_TRANSIENT_FLAG)</div><div class='del'>-#define RHASH_SET_TRANSIENT_FLAG(h)   FL_SET_RAW(h, RHASH_TRANSIENT_FLAG)</div><div class='del'>-#define RHASH_UNSET_TRANSIENT_FLAG(h) FL_UNSET_RAW(h, RHASH_TRANSIENT_FLAG)</div><div class='del'>-#else</div><div class='del'>-#define RHASH_TRANSIENT_P(hash)   0</div><div class='del'>-#define RHASH_SET_TRANSIENT_FLAG(h)   ((void)0)</div><div class='del'>-#define RHASH_UNSET_TRANSIENT_FLAG(h) ((void)0)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define RHASH_AR_TABLE_MAX_SIZE      8</div><div class='del'>-#define RHASH_AR_TABLE_MAX_BOUND     RHASH_AR_TABLE_MAX_SIZE</div><div class='del'>-</div><div class='del'>-typedef struct ar_table_entry {</div><div class='del'>-    VALUE hash;</div><div class='del'>-    VALUE key;</div><div class='del'>-    VALUE record;</div><div class='del'>-} ar_table_entry;</div><div class='del'>-</div><div class='del'>-typedef struct ar_table_struct {</div><div class='del'>-    ar_table_entry entries[RHASH_AR_TABLE_MAX_SIZE];</div><div class='del'>-} ar_table;</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * RHASH_AR_TABLE_P(h):</div><div class='del'>- * * as.ar == NULL or</div><div class='del'>- *   as.ar points ar_table.</div><div class='del'>- * * as.ar is allocated by transient heap or xmalloc.</div><div class='del'>- *</div><div class='del'>- * !RHASH_AR_TABLE_P(h):</div><div class='del'>- * * as.st points st_table.</div><div class='del'>- */</div><div class='del'>-struct RHash {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    union {</div><div class='del'>-        st_table *st;</div><div class='del'>-        ar_table *ar; /* possibly 0 */</div><div class='del'>-    } as;</div><div class='del'>-    int iter_lev;</div><div class='del'>-    const VALUE ifnone;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#ifdef RHASH_ITER_LEV</div><div class='del'>-#  undef RHASH_ITER_LEV</div><div class='del'>-#  undef RHASH_IFNONE</div><div class='del'>-#  undef RHASH_SIZE</div><div class='del'>-</div><div class='del'>-#  define RHASH_ITER_LEV(h)  (RHASH(h)-&gt;iter_lev)</div><div class='del'>-#  define RHASH_IFNONE(h)    (RHASH(h)-&gt;ifnone)</div><div class='del'>-#  define RHASH_SIZE(h)      (RHASH_AR_TABLE_P(h) ? RHASH_AR_TABLE_SIZE_RAW(h) : RHASH_ST_SIZE(h))</div><div class='del'>-#endif /* #ifdef RHASH_ITER_LEV */</div><div class='del'>-</div><div class='del'>-/* missing/setproctitle.c */</div><div class='del'>-#ifndef HAVE_SETPROCTITLE</div><div class='del'>-extern void ruby_init_setproctitle(int argc, char *argv[]);</div><div class='del'>-#endif</div><div class='add'>+/* internal/array.h */</div><div class='add'>+#undef RARRAY_AREF</div><div class='ctx'> </div><div class='del'>-#define RSTRUCT_EMBED_LEN_MAX RSTRUCT_EMBED_LEN_MAX</div><div class='del'>-#define RSTRUCT_EMBED_LEN_MASK RSTRUCT_EMBED_LEN_MASK</div><div class='del'>-#define RSTRUCT_EMBED_LEN_SHIFT RSTRUCT_EMBED_LEN_SHIFT</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-    RSTRUCT_EMBED_LEN_MAX = 3,</div><div class='del'>-    RSTRUCT_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER1),</div><div class='del'>-    RSTRUCT_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+1),</div><div class='del'>-    RSTRUCT_TRANSIENT_FLAG = FL_USER3,</div><div class='del'>-</div><div class='del'>-    RSTRUCT_ENUM_END</div><div class='del'>-};</div><div class='add'>+/* internal/class.h */</div><div class='add'>+#undef RClass</div><div class='add'>+#undef RCLASS_SUPER</div><div class='ctx'> </div><div class='del'>-#if USE_TRANSIENT_HEAP</div><div class='del'>-#define RSTRUCT_TRANSIENT_P(st) FL_TEST_RAW((obj), RSTRUCT_TRANSIENT_FLAG)</div><div class='del'>-#define RSTRUCT_TRANSIENT_SET(st) FL_SET_RAW((st), RSTRUCT_TRANSIENT_FLAG)</div><div class='del'>-#define RSTRUCT_TRANSIENT_UNSET(st) FL_UNSET_RAW((st), RSTRUCT_TRANSIENT_FLAG)</div><div class='del'>-#else</div><div class='del'>-#define RSTRUCT_TRANSIENT_P(st) 0</div><div class='del'>-#define RSTRUCT_TRANSIENT_SET(st) ((void)0)</div><div class='del'>-#define RSTRUCT_TRANSIENT_UNSET(st) ((void)0)</div><div class='del'>-#endif</div><div class='add'>+/* internal/gc.h */</div><div class='add'>+#undef NEWOBJ_OF</div><div class='add'>+#undef RB_NEWOBJ_OF</div><div class='add'>+#undef RB_OBJ_WRITE</div><div class='ctx'> </div><div class='del'>-struct RStruct {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    union {</div><div class='del'>-	struct {</div><div class='del'>-	    long len;</div><div class='del'>-	    const VALUE *ptr;</div><div class='del'>-	} heap;</div><div class='del'>-	const VALUE ary[RSTRUCT_EMBED_LEN_MAX];</div><div class='del'>-    } as;</div><div class='del'>-};</div><div class='add'>+/* internal/hash.h */</div><div class='add'>+#undef RHASH_IFNONE</div><div class='add'>+#undef RHASH_SIZE</div><div class='add'>+#undef RHASH_TBL</div><div class='add'>+#undef RHASH_EMPTY_P</div><div class='ctx'> </div><div class='add'>+/* internal/struct.h */</div><div class='ctx'> #undef RSTRUCT_LEN</div><div class='ctx'> #undef RSTRUCT_PTR</div><div class='ctx'> #undef RSTRUCT_SET</div><div class='ctx'> #undef RSTRUCT_GET</div><div class='del'>-#define RSTRUCT_EMBED_LEN(st)                               \</div><div class='del'>-    (long)((RBASIC(st)-&gt;flags &gt;&gt; RSTRUCT_EMBED_LEN_SHIFT) &amp; \</div><div class='del'>-	   (RSTRUCT_EMBED_LEN_MASK &gt;&gt; RSTRUCT_EMBED_LEN_SHIFT))</div><div class='del'>-#define RSTRUCT_LEN(st) rb_struct_len(st)</div><div class='del'>-#define RSTRUCT_LENINT(st) rb_long2int(RSTRUCT_LEN(st))</div><div class='del'>-#define RSTRUCT_CONST_PTR(st) rb_struct_const_ptr(st)</div><div class='del'>-#define RSTRUCT_PTR(st) ((VALUE *)RSTRUCT_CONST_PTR(RB_OBJ_WB_UNPROTECT_FOR(STRUCT, st)))</div><div class='del'>-#define RSTRUCT_SET(st, idx, v) RB_OBJ_WRITE(st, &amp;RSTRUCT_CONST_PTR(st)[idx], (v))</div><div class='del'>-#define RSTRUCT_GET(st, idx)    (RSTRUCT_CONST_PTR(st)[idx])</div><div class='del'>-#define RSTRUCT(obj) (R_CAST(RStruct)(obj))</div><div class='del'>-</div><div class='del'>-static inline long</div><div class='del'>-rb_struct_len(VALUE st)</div><div class='del'>-{</div><div class='del'>-    return (RBASIC(st)-&gt;flags &amp; RSTRUCT_EMBED_LEN_MASK) ?</div><div class='del'>-	RSTRUCT_EMBED_LEN(st) : RSTRUCT(st)-&gt;as.heap.len;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline const VALUE *</div><div class='del'>-rb_struct_const_ptr(VALUE st)</div><div class='del'>-{</div><div class='del'>-    return FIX_CONST_VALUE_PTR((RBASIC(st)-&gt;flags &amp; RSTRUCT_EMBED_LEN_MASK) ?</div><div class='del'>-	RSTRUCT(st)-&gt;as.ary : RSTRUCT(st)-&gt;as.heap.ptr);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline const VALUE *</div><div class='del'>-rb_struct_const_heap_ptr(VALUE st)</div><div class='del'>-{</div><div class='del'>-    /* TODO: check embed on debug mode */</div><div class='del'>-    return RSTRUCT(st)-&gt;as.heap.ptr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* class.c */</div><div class='del'>-</div><div class='del'>-struct rb_deprecated_classext_struct {</div><div class='del'>-    char conflict[sizeof(VALUE) * 3];</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct rb_subclass_entry;</div><div class='del'>-typedef struct rb_subclass_entry rb_subclass_entry_t;</div><div class='del'>-</div><div class='del'>-struct rb_subclass_entry {</div><div class='del'>-    VALUE klass;</div><div class='del'>-    rb_subclass_entry_t *next;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#if defined(HAVE_LONG_LONG)</div><div class='del'>-typedef unsigned LONG_LONG rb_serial_t;</div><div class='del'>-#define SERIALT2NUM ULL2NUM</div><div class='del'>-#define PRI_SERIALT_PREFIX PRI_LL_PREFIX</div><div class='del'>-#elif defined(HAVE_UINT64_T)</div><div class='del'>-typedef uint64_t rb_serial_t;</div><div class='del'>-#define SERIALT2NUM SIZET2NUM</div><div class='del'>-#define PRI_SERIALT_PREFIX PRI_64_PREFIX</div><div class='del'>-#else</div><div class='del'>-typedef unsigned long rb_serial_t;</div><div class='del'>-#define SERIALT2NUM ULONG2NUM</div><div class='del'>-#define PRI_SERIALT_PREFIX PRI_LONG_PREFIX</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-struct rb_classext_struct {</div><div class='del'>-    struct st_table *iv_index_tbl;</div><div class='del'>-    struct st_table *iv_tbl;</div><div class='del'>-    struct rb_id_table *const_tbl;</div><div class='del'>-    struct rb_id_table *callable_m_tbl;</div><div class='del'>-    rb_subclass_entry_t *subclasses;</div><div class='del'>-    rb_subclass_entry_t **parent_subclasses;</div><div class='del'>-    /**</div><div class='del'>-     * In the case that this is an `ICLASS`, `module_subclasses` points to the link</div><div class='del'>-     * in the module's `subclasses` list that indicates that the klass has been</div><div class='del'>-     * included. Hopefully that makes sense.</div><div class='del'>-     */</div><div class='del'>-    rb_subclass_entry_t **module_subclasses;</div><div class='del'>-    rb_serial_t class_serial;</div><div class='del'>-    const VALUE origin_;</div><div class='del'>-    VALUE refined_class;</div><div class='del'>-    rb_alloc_func_t allocator;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-typedef struct rb_classext_struct rb_classext_t;</div><div class='del'>-</div><div class='del'>-#undef RClass</div><div class='del'>-struct RClass {</div><div class='del'>-    struct RBasic basic;</div><div class='del'>-    VALUE super;</div><div class='del'>-    rb_classext_t *ptr;</div><div class='del'>-    struct rb_id_table *m_tbl;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-void rb_class_subclass_add(VALUE super, VALUE klass);</div><div class='del'>-void rb_class_remove_from_super_subclasses(VALUE);</div><div class='del'>-int rb_singleton_class_internal_p(VALUE sklass);</div><div class='del'>-</div><div class='del'>-#define RCLASS_EXT(c) (RCLASS(c)-&gt;ptr)</div><div class='del'>-#define RCLASS_IV_TBL(c) (RCLASS_EXT(c)-&gt;iv_tbl)</div><div class='del'>-#define RCLASS_CONST_TBL(c) (RCLASS_EXT(c)-&gt;const_tbl)</div><div class='del'>-#define RCLASS_M_TBL(c) (RCLASS(c)-&gt;m_tbl)</div><div class='del'>-#define RCLASS_CALLABLE_M_TBL(c) (RCLASS_EXT(c)-&gt;callable_m_tbl)</div><div class='del'>-#define RCLASS_IV_INDEX_TBL(c) (RCLASS_EXT(c)-&gt;iv_index_tbl)</div><div class='del'>-#define RCLASS_ORIGIN(c) (RCLASS_EXT(c)-&gt;origin_)</div><div class='del'>-#define RCLASS_REFINED_CLASS(c) (RCLASS_EXT(c)-&gt;refined_class)</div><div class='del'>-#define RCLASS_SERIAL(c) (RCLASS_EXT(c)-&gt;class_serial)</div><div class='del'>-</div><div class='del'>-#define RICLASS_IS_ORIGIN FL_USER5</div><div class='del'>-</div><div class='del'>-static inline void</div><div class='del'>-RCLASS_SET_ORIGIN(VALUE klass, VALUE origin)</div><div class='del'>-{</div><div class='del'>-    RB_OBJ_WRITE(klass, &amp;RCLASS_ORIGIN(klass), origin);</div><div class='del'>-    if (klass != origin) FL_SET(origin, RICLASS_IS_ORIGIN);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#undef RCLASS_SUPER</div><div class='del'>-static inline VALUE</div><div class='del'>-RCLASS_SUPER(VALUE klass)</div><div class='del'>-{</div><div class='del'>-    return RCLASS(klass)-&gt;super;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-RCLASS_SET_SUPER(VALUE klass, VALUE super)</div><div class='del'>-{</div><div class='del'>-    if (super) {</div><div class='del'>-	rb_class_remove_from_super_subclasses(klass);</div><div class='del'>-	rb_class_subclass_add(super, klass);</div><div class='del'>-    }</div><div class='del'>-    RB_OBJ_WRITE(klass, &amp;RCLASS(klass)-&gt;super, super);</div><div class='del'>-    return super;</div><div class='del'>-}</div><div class='del'>-/* IMEMO: Internal memo object */</div><div class='del'>-</div><div class='del'>-#ifndef IMEMO_DEBUG</div><div class='del'>-#define IMEMO_DEBUG 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-struct RIMemo {</div><div class='del'>-    VALUE flags;</div><div class='del'>-    VALUE v0;</div><div class='del'>-    VALUE v1;</div><div class='del'>-    VALUE v2;</div><div class='del'>-    VALUE v3;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-enum imemo_type {</div><div class='del'>-    imemo_env            =  0,</div><div class='del'>-    imemo_cref           =  1, /*!&lt; class reference */</div><div class='del'>-    imemo_svar           =  2, /*!&lt; special variable */</div><div class='del'>-    imemo_throw_data     =  3,</div><div class='del'>-    imemo_ifunc          =  4, /*!&lt; iterator function */</div><div class='del'>-    imemo_memo           =  5,</div><div class='del'>-    imemo_ment           =  6,</div><div class='del'>-    imemo_iseq           =  7,</div><div class='del'>-    imemo_tmpbuf         =  8,</div><div class='del'>-    imemo_ast            =  9,</div><div class='del'>-    imemo_parser_strterm = 10</div><div class='del'>-};</div><div class='del'>-#define IMEMO_MASK   0x0f</div><div class='del'>-</div><div class='del'>-static inline enum imemo_type</div><div class='del'>-imemo_type(VALUE imemo)</div><div class='del'>-{</div><div class='del'>-    return (RBASIC(imemo)-&gt;flags &gt;&gt; FL_USHIFT) &amp; IMEMO_MASK;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-imemo_type_p(VALUE imemo, enum imemo_type imemo_type)</div><div class='del'>-{</div><div class='del'>-    if (LIKELY(!RB_SPECIAL_CONST_P(imemo))) {</div><div class='del'>-	/* fixed at compile time if imemo_type is given. */</div><div class='del'>-	const VALUE mask = (IMEMO_MASK &lt;&lt; FL_USHIFT) | RUBY_T_MASK;</div><div class='del'>-	const VALUE expected_type = (imemo_type &lt;&lt; FL_USHIFT) | T_IMEMO;</div><div class='del'>-	/* fixed at runtime. */</div><div class='del'>-	return expected_type == (RBASIC(imemo)-&gt;flags &amp; mask);</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	return 0;</div><div class='del'>-    }</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* FL_USER0 to FL_USER3 is for type */</div><div class='del'>-#define IMEMO_FL_USHIFT (FL_USHIFT + 4)</div><div class='del'>-#define IMEMO_FL_USER0 FL_USER4</div><div class='del'>-#define IMEMO_FL_USER1 FL_USER5</div><div class='del'>-#define IMEMO_FL_USER2 FL_USER6</div><div class='del'>-#define IMEMO_FL_USER3 FL_USER7</div><div class='del'>-#define IMEMO_FL_USER4 FL_USER8</div><div class='del'>-</div><div class='del'>-/* CREF (Class REFerence) is defined in method.h */</div><div class='del'>-</div><div class='del'>-/*! SVAR (Special VARiable) */</div><div class='del'>-struct vm_svar {</div><div class='del'>-    VALUE flags;</div><div class='del'>-    const VALUE cref_or_me; /*!&lt; class reference or rb_method_entry_t */</div><div class='del'>-    const VALUE lastline;</div><div class='del'>-    const VALUE backref;</div><div class='del'>-    const VALUE others;</div><div class='del'>-};</div><div class='del'>-</div><div class='ctx'> </div><div class='del'>-#define THROW_DATA_CONSUMED IMEMO_FL_USER0</div><div class='add'>+/* Also,  we  keep  the  following  macros  here.   They  are  expected  to  be</div><div class='add'>+ * overridden in each headers. */</div><div class='ctx'> </div><div class='del'>-/*! THROW_DATA */</div><div class='del'>-struct vm_throw_data {</div><div class='del'>-    VALUE flags;</div><div class='del'>-    VALUE reserved;</div><div class='del'>-    const VALUE throw_obj;</div><div class='del'>-    const struct rb_control_frame_struct *catch_frame;</div><div class='del'>-    VALUE throw_state;</div><div class='del'>-};</div><div class='add'>+/* internal/array.h */</div><div class='add'>+#define rb_ary_new_from_args(...) rb_nonexistent_symbol(__VA_ARGS__)</div><div class='ctx'> </div><div class='del'>-#define THROW_DATA_P(err) RB_TYPE_P((VALUE)(err), T_IMEMO)</div><div class='add'>+/* internal/io.h */</div><div class='add'>+#define rb_io_fptr_finalize(...) rb_nonexistent_symbol(__VA_ARGS__)</div><div class='ctx'> </div><div class='del'>-/* IFUNC (Internal FUNCtion) */</div><div class='add'>+/* internal/string.h */</div><div class='add'>+#define rb_fstring_cstr(...) rb_nonexistent_symbol(__VA_ARGS__)</div><div class='ctx'> </div><div class='del'>-struct vm_ifunc_argc {</div><div class='del'>-#if SIZEOF_INT * 2 &gt; SIZEOF_VALUE</div><div class='del'>-    signed int min: (SIZEOF_VALUE * CHAR_BIT) / 2;</div><div class='del'>-    signed int max: (SIZEOF_VALUE * CHAR_BIT) / 2;</div><div class='del'>-#else</div><div class='del'>-    int min, max;</div><div class='del'>-#endif</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/*! IFUNC (Internal FUNCtion) */</div><div class='del'>-struct vm_ifunc {</div><div class='del'>-    VALUE flags;</div><div class='del'>-    VALUE reserved;</div><div class='del'>-    VALUE (*func)(ANYARGS);</div><div class='del'>-    const void *data;</div><div class='del'>-    struct vm_ifunc_argc argc;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define IFUNC_NEW(a, b, c) ((struct vm_ifunc *)rb_imemo_new(imemo_ifunc, (VALUE)(a), (VALUE)(b), (VALUE)(c), 0))</div><div class='del'>-struct vm_ifunc *rb_vm_ifunc_new(VALUE (*func)(ANYARGS), const void *data, int min_argc, int max_argc);</div><div class='del'>-static inline struct vm_ifunc *</div><div class='del'>-rb_vm_ifunc_proc_new(VALUE (*func)(ANYARGS), const void *data)</div><div class='del'>-{</div><div class='del'>-    return rb_vm_ifunc_new(func, data, 0, UNLIMITED_ARGUMENTS);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef struct rb_imemo_tmpbuf_struct {</div><div class='del'>-    VALUE flags;</div><div class='del'>-    VALUE reserved;</div><div class='del'>-    VALUE *ptr; /* malloc'ed buffer */</div><div class='del'>-    struct rb_imemo_tmpbuf_struct *next; /* next imemo */</div><div class='del'>-    size_t cnt; /* buffer size in VALUE */</div><div class='del'>-} rb_imemo_tmpbuf_t;</div><div class='del'>-</div><div class='del'>-VALUE rb_imemo_tmpbuf_auto_free_pointer(void *buf);</div><div class='del'>-VALUE rb_imemo_tmpbuf_auto_free_maybe_mark_buffer(void *buf, size_t cnt);</div><div class='del'>-rb_imemo_tmpbuf_t *rb_imemo_tmpbuf_parser_heap(void *buf, rb_imemo_tmpbuf_t *old_heap, size_t cnt);</div><div class='del'>-</div><div class='del'>-#define RB_IMEMO_TMPBUF_PTR(v) \</div><div class='del'>-    ((void *)(((const struct rb_imemo_tmpbuf_struct *)(v))-&gt;ptr))</div><div class='add'>+/* internal/symbol.h */</div><div class='add'>+#define rb_sym_intern_ascii_cstr(...) rb_nonexistent_symbol(__VA_ARGS__)</div><div class='ctx'> </div><div class='del'>-static inline VALUE</div><div class='del'>-rb_imemo_tmpbuf_auto_free_pointer_new_from_an_RString(VALUE str)</div><div class='del'>-{</div><div class='del'>-    const void *src;</div><div class='del'>-    void *dst;</div><div class='del'>-    size_t len;</div><div class='add'>+/* internal/vm.h */</div><div class='add'>+#define rb_funcallv(...) rb_nonexistent_symbol(__VA_ARGS__)</div><div class='add'>+#define rb_method_basic_definition_p(...) rb_nonexistent_symbol(__VA_ARGS__)</div><div class='ctx'> </div><div class='del'>-    SafeStringValue(str);</div><div class='del'>-    len = RSTRING_LEN(str);</div><div class='del'>-    src = RSTRING_PTR(str);</div><div class='del'>-    dst = ruby_xmalloc(len);</div><div class='del'>-    memcpy(dst, src, len);</div><div class='del'>-    return rb_imemo_tmpbuf_auto_free_pointer(dst);</div><div class='del'>-}</div><div class='ctx'> </div><div class='del'>-void rb_strterm_mark(VALUE obj);</div><div class='del'>-</div><div class='del'>-/*! MEMO</div><div class='del'>- *</div><div class='del'>- * @see imemo_type</div><div class='del'>- * */</div><div class='del'>-struct MEMO {</div><div class='del'>-    VALUE flags;</div><div class='del'>-    VALUE reserved;</div><div class='del'>-    const VALUE v1;</div><div class='del'>-    const VALUE v2;</div><div class='del'>-    union {</div><div class='del'>-	long cnt;</div><div class='del'>-	long state;</div><div class='del'>-	const VALUE value;</div><div class='del'>-	VALUE (*func)(ANYARGS);</div><div class='del'>-    } u3;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define MEMO_V1_SET(m, v) RB_OBJ_WRITE((m), &amp;(m)-&gt;v1, (v))</div><div class='del'>-#define MEMO_V2_SET(m, v) RB_OBJ_WRITE((m), &amp;(m)-&gt;v2, (v))</div><div class='del'>-</div><div class='del'>-#define MEMO_CAST(m) ((struct MEMO *)m)</div><div class='del'>-</div><div class='del'>-#define MEMO_NEW(a, b, c) ((struct MEMO *)rb_imemo_new(imemo_memo, (VALUE)(a), (VALUE)(b), (VALUE)(c), 0))</div><div class='del'>-</div><div class='del'>-#define roomof(x, y) (((x) + (y) - 1) / (y))</div><div class='del'>-#define type_roomof(x, y) roomof(sizeof(x), sizeof(y))</div><div class='del'>-#define MEMO_FOR(type, value) ((type *)RARRAY_PTR(value))</div><div class='del'>-#define NEW_MEMO_FOR(type, value) \</div><div class='del'>-  ((value) = rb_ary_tmp_new_fill(type_roomof(type, VALUE)), MEMO_FOR(type, value))</div><div class='del'>-#define NEW_PARTIAL_MEMO_FOR(type, value, member) \</div><div class='del'>-  ((value) = rb_ary_tmp_new_fill(type_roomof(type, VALUE)), \</div><div class='del'>-   rb_ary_set_len((value), offsetof(type, member) / sizeof(VALUE)), \</div><div class='del'>-   MEMO_FOR(type, value))</div><div class='del'>-</div><div class='del'>-#define STRING_P(s) (RB_TYPE_P((s), T_STRING) &amp;&amp; CLASS_OF(s) == rb_cString)</div><div class='del'>-</div><div class='del'>-#ifdef RUBY_INTEGER_UNIFICATION</div><div class='del'>-# define rb_cFixnum rb_cInteger</div><div class='del'>-# define rb_cBignum rb_cInteger</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-enum {</div><div class='del'>-    cmp_opt_Fixnum,</div><div class='del'>-    cmp_opt_String,</div><div class='del'>-    cmp_opt_Float,</div><div class='del'>-    cmp_optimizable_count</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct cmp_opt_data {</div><div class='del'>-    unsigned int opt_methods;</div><div class='del'>-    unsigned int opt_inited;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define NEW_CMP_OPT_MEMO(type, value) \</div><div class='del'>-    NEW_PARTIAL_MEMO_FOR(type, value, cmp_opt)</div><div class='del'>-#define CMP_OPTIMIZABLE_BIT(type) (1U &lt;&lt; TOKEN_PASTE(cmp_opt_,type))</div><div class='del'>-#define CMP_OPTIMIZABLE(data, type) \</div><div class='del'>-    (((data).opt_inited &amp; CMP_OPTIMIZABLE_BIT(type)) ? \</div><div class='del'>-     ((data).opt_methods &amp; CMP_OPTIMIZABLE_BIT(type)) : \</div><div class='del'>-     (((data).opt_inited |= CMP_OPTIMIZABLE_BIT(type)), \</div><div class='del'>-      rb_method_basic_definition_p(TOKEN_PASTE(rb_c,type), id_cmp) &amp;&amp; \</div><div class='del'>-      ((data).opt_methods |= CMP_OPTIMIZABLE_BIT(type))))</div><div class='del'>-</div><div class='del'>-#define OPTIMIZED_CMP(a, b, data) \</div><div class='del'>-    ((FIXNUM_P(a) &amp;&amp; FIXNUM_P(b) &amp;&amp; CMP_OPTIMIZABLE(data, Fixnum)) ? \</div><div class='del'>-     (((long)a &gt; (long)b) ? 1 : ((long)a &lt; (long)b) ? -1 : 0) : \</div><div class='del'>-     (STRING_P(a) &amp;&amp; STRING_P(b) &amp;&amp; CMP_OPTIMIZABLE(data, String)) ? \</div><div class='del'>-     rb_str_cmp(a, b) : \</div><div class='del'>-     (RB_FLOAT_TYPE_P(a) &amp;&amp; RB_FLOAT_TYPE_P(b) &amp;&amp; CMP_OPTIMIZABLE(data, Float)) ? \</div><div class='del'>-     rb_float_cmp(a, b) : \</div><div class='del'>-     rb_cmpint(rb_funcallv(a, id_cmp, 1, &amp;b), a, b))</div><div class='del'>-</div><div class='del'>-/* ment is in method.h */</div><div class='del'>-</div><div class='del'>-/* global variable */</div><div class='del'>-</div><div class='del'>-struct rb_global_entry {</div><div class='del'>-    struct rb_global_variable *var;</div><div class='del'>-    ID id;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-struct rb_global_entry *rb_global_entry(ID);</div><div class='del'>-VALUE rb_gvar_get(struct rb_global_entry *);</div><div class='del'>-VALUE rb_gvar_set(struct rb_global_entry *, VALUE);</div><div class='del'>-VALUE rb_gvar_defined(struct rb_global_entry *);</div><div class='del'>-</div><div class='del'>-/* array.c */</div><div class='del'>-</div><div class='del'>-#ifndef ARRAY_DEBUG</div><div class='del'>-#define ARRAY_DEBUG 0</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef ARRAY_DEBUG</div><div class='del'>-#define RARRAY_PTR_IN_USE_FLAG FL_USER14</div><div class='del'>-#define ARY_PTR_USING_P(ary) FL_TEST_RAW((ary), RARRAY_PTR_IN_USE_FLAG)</div><div class='del'>-#else</div><div class='del'>-</div><div class='del'>-/* disable debug function */</div><div class='del'>-#undef  RARRAY_PTR_USE_START_TRANSIENT</div><div class='del'>-#undef  RARRAY_PTR_USE_END_TRANSIENT</div><div class='del'>-#define RARRAY_PTR_USE_START_TRANSIENT(a) ((VALUE *)RARRAY_CONST_PTR_TRANSIENT(a))</div><div class='del'>-#define RARRAY_PTR_USE_END_TRANSIENT(a)</div><div class='del'>-#define ARY_PTR_USING_P(ary) 0</div><div class='del'>-</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if USE_TRANSIENT_HEAP</div><div class='del'>-#define RARY_TRANSIENT_SET(ary) FL_SET_RAW((ary), RARRAY_TRANSIENT_FLAG);</div><div class='del'>-#define RARY_TRANSIENT_UNSET(ary) FL_UNSET_RAW((ary), RARRAY_TRANSIENT_FLAG);</div><div class='del'>-#else</div><div class='del'>-#undef RARRAY_TRANSIENT_P</div><div class='del'>-#define RARRAY_TRANSIENT_P(a) 0</div><div class='del'>-#define RARY_TRANSIENT_SET(ary) ((void)0)</div><div class='del'>-#define RARY_TRANSIENT_UNSET(ary) ((void)0)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-VALUE rb_ary_last(int, const VALUE *, VALUE);</div><div class='del'>-void rb_ary_set_len(VALUE, long);</div><div class='del'>-void rb_ary_delete_same(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_tmp_new_fill(long capa);</div><div class='del'>-VALUE rb_ary_at(VALUE, VALUE);</div><div class='del'>-VALUE rb_ary_aref1(VALUE ary, VALUE i);</div><div class='del'>-VALUE rb_ary_aref2(VALUE ary, VALUE b, VALUE e);</div><div class='del'>-size_t rb_ary_memsize(VALUE);</div><div class='del'>-VALUE rb_to_array_type(VALUE obj);</div><div class='del'>-VALUE rb_check_to_array(VALUE ary);</div><div class='del'>-VALUE rb_ary_tmp_new_from_values(VALUE, long, const VALUE *);</div><div class='del'>-VALUE rb_ary_behead(VALUE, long);</div><div class='del'>-#if defined(__GNUC__) &amp;&amp; defined(HAVE_VA_ARGS_MACRO)</div><div class='del'>-#define rb_ary_new_from_args(n, ...) \</div><div class='del'>-    __extension__ ({ \</div><div class='del'>-	const VALUE args_to_new_ary[] = {__VA_ARGS__}; \</div><div class='del'>-	if (__builtin_constant_p(n)) { \</div><div class='del'>-	    STATIC_ASSERT(rb_ary_new_from_args, numberof(args_to_new_ary) == (n)); \</div><div class='del'>-	} \</div><div class='del'>-	rb_ary_new_from_values(numberof(args_to_new_ary), args_to_new_ary); \</div><div class='del'>-    })</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_ary_entry_internal(VALUE ary, long offset)</div><div class='del'>-{</div><div class='del'>-    long len = RARRAY_LEN(ary);</div><div class='del'>-    const VALUE *ptr = RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='del'>-    if (len == 0) return Qnil;</div><div class='del'>-    if (offset &lt; 0) {</div><div class='del'>-        offset += len;</div><div class='del'>-        if (offset &lt; 0) return Qnil;</div><div class='del'>-    }</div><div class='del'>-    else if (len &lt;= offset) {</div><div class='del'>-        return Qnil;</div><div class='del'>-    }</div><div class='del'>-    return ptr[offset];</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/* bignum.c */</div><div class='del'>-extern const char ruby_digitmap[];</div><div class='del'>-double rb_big_fdiv_double(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big_uminus(VALUE x);</div><div class='del'>-VALUE rb_big_hash(VALUE);</div><div class='del'>-VALUE rb_big_odd_p(VALUE);</div><div class='del'>-VALUE rb_big_even_p(VALUE);</div><div class='del'>-size_t rb_big_size(VALUE);</div><div class='del'>-VALUE rb_integer_float_cmp(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_integer_float_eq(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_cstr_parse_inum(const char *str, ssize_t len, char **endp, int base);</div><div class='del'>-VALUE rb_str_convert_to_inum(VALUE str, int base, int badcheck, int raise_exception);</div><div class='del'>-VALUE rb_big_comp(VALUE x);</div><div class='del'>-VALUE rb_big_aref(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big_abs(VALUE x);</div><div class='del'>-VALUE rb_big_size_m(VALUE big);</div><div class='del'>-VALUE rb_big_bit_length(VALUE big);</div><div class='del'>-VALUE rb_big_remainder(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big_gt(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big_ge(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big_lt(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big_le(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_powm(int const argc, VALUE * const argv, VALUE const num);</div><div class='del'>-</div><div class='del'>-/* class.c */</div><div class='del'>-VALUE rb_class_boot(VALUE);</div><div class='del'>-VALUE rb_class_inherited(VALUE, VALUE);</div><div class='del'>-VALUE rb_make_metaclass(VALUE, VALUE);</div><div class='del'>-VALUE rb_include_class_new(VALUE, VALUE);</div><div class='del'>-void rb_class_foreach_subclass(VALUE klass, void (*f)(VALUE, VALUE), VALUE);</div><div class='del'>-void rb_class_detach_subclasses(VALUE);</div><div class='del'>-void rb_class_detach_module_subclasses(VALUE);</div><div class='del'>-void rb_class_remove_from_module_subclasses(VALUE);</div><div class='del'>-VALUE rb_obj_methods(int argc, const VALUE *argv, VALUE obj);</div><div class='del'>-VALUE rb_obj_protected_methods(int argc, const VALUE *argv, VALUE obj);</div><div class='del'>-VALUE rb_obj_private_methods(int argc, const VALUE *argv, VALUE obj);</div><div class='del'>-VALUE rb_obj_public_methods(int argc, const VALUE *argv, VALUE obj);</div><div class='del'>-VALUE rb_special_singleton_class(VALUE);</div><div class='del'>-VALUE rb_singleton_class_clone_and_attach(VALUE obj, VALUE attach);</div><div class='del'>-VALUE rb_singleton_class_get(VALUE obj);</div><div class='del'>-void Init_class_hierarchy(void);</div><div class='del'>-</div><div class='del'>-int rb_class_has_methods(VALUE c);</div><div class='del'>-void rb_undef_methods_from(VALUE klass, VALUE super);</div><div class='del'>-</div><div class='del'>-/* compar.c */</div><div class='del'>-VALUE rb_invcmp(VALUE, VALUE);</div><div class='del'>-</div><div class='del'>-/* compile.c */</div><div class='del'>-struct rb_block;</div><div class='del'>-int rb_dvar_defined(ID, const struct rb_block *);</div><div class='del'>-int rb_local_defined(ID, const struct rb_block *);</div><div class='del'>-const char * rb_insns_name(int i);</div><div class='del'>-VALUE rb_insns_name_array(void);</div><div class='del'>-int rb_vm_insn_addr2insn(const void *);</div><div class='del'>-</div><div class='del'>-/* complex.c */</div><div class='del'>-VALUE rb_dbl_complex_new_polar_pi(double abs, double ang);</div><div class='del'>-</div><div class='del'>-struct rb_thread_struct;</div><div class='del'>-/* cont.c */</div><div class='del'>-VALUE rb_obj_is_fiber(VALUE);</div><div class='del'>-void rb_fiber_reset_root_local_storage(struct rb_thread_struct *);</div><div class='del'>-void ruby_register_rollback_func_for_ensure(VALUE (*ensure_func)(ANYARGS), VALUE (*rollback_func)(ANYARGS));</div><div class='del'>-</div><div class='del'>-/* debug.c */</div><div class='del'>-PRINTF_ARGS(void ruby_debug_printf(const char*, ...), 1, 2);</div><div class='del'>-</div><div class='del'>-/* dir.c */</div><div class='del'>-VALUE rb_dir_getwd_ospath(void);</div><div class='del'>-</div><div class='del'>-/* dmyext.c */</div><div class='del'>-void Init_enc(void);</div><div class='del'>-void Init_ext(void);</div><div class='del'>-</div><div class='del'>-/* encoding.c */</div><div class='del'>-ID rb_id_encoding(void);</div><div class='del'>-#ifdef RUBY_ENCODING_H</div><div class='del'>-rb_encoding *rb_enc_get_from_index(int index);</div><div class='del'>-rb_encoding *rb_enc_check_str(VALUE str1, VALUE str2);</div><div class='del'>-#endif</div><div class='del'>-int rb_encdb_replicate(const char *alias, const char *orig);</div><div class='del'>-int rb_encdb_alias(const char *alias, const char *orig);</div><div class='del'>-int rb_encdb_dummy(const char *name);</div><div class='del'>-void rb_encdb_declare(const char *name);</div><div class='del'>-void rb_enc_set_base(const char *name, const char *orig);</div><div class='del'>-int rb_enc_set_dummy(int index);</div><div class='del'>-void rb_encdb_set_unicode(int index);</div><div class='del'>-PUREFUNC(int rb_data_is_encoding(VALUE obj));</div><div class='del'>-</div><div class='del'>-/* enum.c */</div><div class='del'>-extern VALUE rb_cArithSeq;</div><div class='del'>-VALUE rb_f_send(int argc, VALUE *argv, VALUE recv);</div><div class='del'>-VALUE rb_nmin_run(VALUE obj, VALUE num, int by, int rev, int ary);</div><div class='del'>-</div><div class='del'>-/* error.c */</div><div class='del'>-extern VALUE rb_eEAGAIN;</div><div class='del'>-extern VALUE rb_eEWOULDBLOCK;</div><div class='del'>-extern VALUE rb_eEINPROGRESS;</div><div class='del'>-void rb_report_bug_valist(VALUE file, int line, const char *fmt, va_list args);</div><div class='del'>-VALUE rb_check_backtrace(VALUE);</div><div class='del'>-NORETURN(void rb_async_bug_errno(const char *,int));</div><div class='del'>-const char *rb_builtin_type_name(int t);</div><div class='del'>-const char *rb_builtin_class_name(VALUE x);</div><div class='del'>-PRINTF_ARGS(void rb_sys_warn(const char *fmt, ...), 1, 2);</div><div class='del'>-PRINTF_ARGS(void rb_syserr_warn(int err, const char *fmt, ...), 2, 3);</div><div class='del'>-PRINTF_ARGS(void rb_sys_warning(const char *fmt, ...), 1, 2);</div><div class='del'>-PRINTF_ARGS(void rb_syserr_warning(int err, const char *fmt, ...), 2, 3);</div><div class='del'>-#ifdef RUBY_ENCODING_H</div><div class='del'>-VALUE rb_syntax_error_append(VALUE, VALUE, int, int, rb_encoding*, const char*, va_list);</div><div class='del'>-PRINTF_ARGS(void rb_enc_warn(rb_encoding *enc, const char *fmt, ...), 2, 3);</div><div class='del'>-PRINTF_ARGS(void rb_sys_enc_warn(rb_encoding *enc, const char *fmt, ...), 2, 3);</div><div class='del'>-PRINTF_ARGS(void rb_syserr_enc_warn(int err, rb_encoding *enc, const char *fmt, ...), 3, 4);</div><div class='del'>-PRINTF_ARGS(void rb_enc_warning(rb_encoding *enc, const char *fmt, ...), 2, 3);</div><div class='del'>-PRINTF_ARGS(void rb_sys_enc_warning(rb_encoding *enc, const char *fmt, ...), 2, 3);</div><div class='del'>-PRINTF_ARGS(void rb_syserr_enc_warning(int err, rb_encoding *enc, const char *fmt, ...), 3, 4);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define rb_raise_cstr(etype, mesg) \</div><div class='del'>-    rb_exc_raise(rb_exc_new_str(etype, rb_str_new_cstr(mesg)))</div><div class='del'>-#define rb_raise_static(etype, mesg) \</div><div class='del'>-    rb_exc_raise(rb_exc_new_str(etype, rb_str_new_static(mesg, rb_strlen_lit(mesg))))</div><div class='del'>-</div><div class='del'>-VALUE rb_name_err_new(VALUE mesg, VALUE recv, VALUE method);</div><div class='del'>-#define rb_name_err_raise_str(mesg, recv, name) \</div><div class='del'>-    rb_exc_raise(rb_name_err_new(mesg, recv, name))</div><div class='del'>-#define rb_name_err_raise(mesg, recv, name) \</div><div class='del'>-    rb_name_err_raise_str(rb_fstring_cstr(mesg), (recv), (name))</div><div class='del'>-VALUE rb_nomethod_err_new(VALUE mesg, VALUE recv, VALUE method, VALUE args, int priv);</div><div class='del'>-VALUE rb_key_err_new(VALUE mesg, VALUE recv, VALUE name);</div><div class='del'>-#define rb_key_err_raise(mesg, recv, name) \</div><div class='del'>-    rb_exc_raise(rb_key_err_new(mesg, recv, name))</div><div class='del'>-NORETURN(void ruby_deprecated_internal_feature(const char *));</div><div class='del'>-#define DEPRECATED_INTERNAL_FEATURE(func) \</div><div class='del'>-    (ruby_deprecated_internal_feature(func), UNREACHABLE)</div><div class='del'>-VALUE rb_warning_warn(VALUE mod, VALUE str);</div><div class='del'>-PRINTF_ARGS(VALUE rb_warning_string(const char *fmt, ...), 1, 2);</div><div class='del'>-</div><div class='del'>-/* eval.c */</div><div class='del'>-VALUE rb_refinement_module_get_refined_class(VALUE module);</div><div class='del'>-extern ID ruby_static_id_signo, ruby_static_id_status;</div><div class='del'>-void rb_class_modify_check(VALUE);</div><div class='del'>-#define id_signo ruby_static_id_signo</div><div class='del'>-#define id_status ruby_static_id_status</div><div class='del'>-</div><div class='del'>-/* eval_error.c */</div><div class='del'>-VALUE rb_get_backtrace(VALUE info);</div><div class='del'>-</div><div class='del'>-/* eval_jump.c */</div><div class='del'>-void rb_call_end_proc(VALUE data);</div><div class='del'>-void rb_mark_end_proc(void);</div><div class='del'>-</div><div class='del'>-/* file.c */</div><div class='del'>-extern const char ruby_null_device[];</div><div class='del'>-VALUE rb_home_dir_of(VALUE user, VALUE result);</div><div class='del'>-VALUE rb_default_home_dir(VALUE result);</div><div class='del'>-VALUE rb_realpath_internal(VALUE basedir, VALUE path, int strict);</div><div class='del'>-VALUE rb_check_realpath(VALUE basedir, VALUE path);</div><div class='del'>-void rb_file_const(const char*, VALUE);</div><div class='del'>-int rb_file_load_ok(const char *);</div><div class='del'>-VALUE rb_file_expand_path_fast(VALUE, VALUE);</div><div class='del'>-VALUE rb_file_expand_path_internal(VALUE, VALUE, int, int, VALUE);</div><div class='del'>-VALUE rb_get_path_check_to_string(VALUE, int);</div><div class='del'>-VALUE rb_get_path_check_convert(VALUE, VALUE, int);</div><div class='del'>-VALUE rb_get_path_check(VALUE, int);</div><div class='del'>-void Init_File(void);</div><div class='del'>-int ruby_is_fd_loadable(int fd);</div><div class='del'>-</div><div class='del'>-#ifdef RUBY_FUNCTION_NAME_STRING</div><div class='del'>-# if defined __GNUC__ &amp;&amp; __GNUC__ &gt;= 4</div><div class='del'>-#   pragma GCC visibility push(default)</div><div class='del'>-# endif</div><div class='del'>-NORETURN(void rb_sys_fail_path_in(const char *func_name, VALUE path));</div><div class='del'>-NORETURN(void rb_syserr_fail_path_in(const char *func_name, int err, VALUE path));</div><div class='del'>-# if defined __GNUC__ &amp;&amp; __GNUC__ &gt;= 4</div><div class='del'>-#   pragma GCC visibility pop</div><div class='del'>-# endif</div><div class='del'>-# define rb_sys_fail_path(path) rb_sys_fail_path_in(RUBY_FUNCTION_NAME_STRING, path)</div><div class='del'>-# define rb_syserr_fail_path(err, path) rb_syserr_fail_path_in(RUBY_FUNCTION_NAME_STRING, (err), (path))</div><div class='del'>-#else</div><div class='del'>-# define rb_sys_fail_path(path) rb_sys_fail_str(path)</div><div class='del'>-# define rb_syserr_fail_path(err, path) rb_syserr_fail_str((err), (path))</div><div class='del'>-#endif</div><div class='add'>+/* MRI debug support */</div><div class='ctx'> </div><div class='ctx'> /* gc.c */</div><div class='del'>-extern VALUE *ruby_initial_gc_stress_ptr;</div><div class='del'>-extern int ruby_disable_gc;</div><div class='del'>-void Init_heap(void);</div><div class='del'>-void *ruby_mimmalloc(size_t size);</div><div class='del'>-void ruby_mimfree(void *ptr);</div><div class='del'>-void rb_objspace_set_event_hook(const rb_event_flag_t event);</div><div class='del'>-#if USE_RGENGC</div><div class='del'>-void rb_gc_writebarrier_remember(VALUE obj);</div><div class='del'>-#else</div><div class='del'>-#define rb_gc_writebarrier_remember(obj) 0</div><div class='del'>-#endif</div><div class='del'>-void ruby_gc_set_params(int safe_level);</div><div class='del'>-void rb_copy_wb_protected_attribute(VALUE dest, VALUE obj);</div><div class='del'>-</div><div class='del'>-#if defined(HAVE_MALLOC_USABLE_SIZE) || defined(HAVE_MALLOC_SIZE) || defined(_WIN32)</div><div class='del'>-#define ruby_sized_xrealloc(ptr, new_size, old_size) ruby_xrealloc(ptr, new_size)</div><div class='del'>-#define ruby_sized_xrealloc2(ptr, new_count, element_size, old_count) ruby_xrealloc(ptr, new_count, element_size)</div><div class='del'>-#define ruby_sized_xfree(ptr, size) ruby_xfree(ptr)</div><div class='del'>-#define SIZED_REALLOC_N(var,type,n,old_n) REALLOC_N(var, type, n)</div><div class='del'>-#else</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-void *ruby_sized_xrealloc(void *ptr, size_t new_size, size_t old_size) RUBY_ATTR_ALLOC_SIZE((2));</div><div class='del'>-void *ruby_sized_xrealloc2(void *ptr, size_t new_count, size_t element_size, size_t old_count) RUBY_ATTR_ALLOC_SIZE((2, 3));</div><div class='del'>-void ruby_sized_xfree(void *x, size_t size);</div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='del'>-#define SIZED_REALLOC_N(var,type,n,old_n) ((var)=(type*)ruby_sized_xrealloc((char*)(var), (n) * sizeof(type), (old_n) * sizeof(type)))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* optimized version of NEWOBJ() */</div><div class='del'>-#undef NEWOBJF_OF</div><div class='del'>-#undef RB_NEWOBJ_OF</div><div class='del'>-#define RB_NEWOBJ_OF(obj,type,klass,flags) \</div><div class='del'>-  type *(obj) = (type*)(((flags) &amp; FL_WB_PROTECTED) ? \</div><div class='del'>-			rb_wb_protected_newobj_of(klass, (flags) &amp; ~FL_WB_PROTECTED) : \</div><div class='del'>-			rb_wb_unprotected_newobj_of(klass, flags))</div><div class='del'>-#define NEWOBJ_OF(obj,type,klass,flags) RB_NEWOBJ_OF(obj,type,klass,flags)</div><div class='del'>-</div><div class='del'>-void *rb_aligned_malloc(size_t, size_t);</div><div class='del'>-void rb_aligned_free(void *);</div><div class='del'>-</div><div class='del'>-/* hash.c */</div><div class='del'>-#if RHASH_CONVERT_TABLE_DEBUG</div><div class='del'>-struct st_table *rb_hash_tbl_raw(VALUE hash, const char *file, int line);</div><div class='del'>-#define RHASH_TBL_RAW(h) rb_hash_tbl_raw(h, __FILE__, __LINE__)</div><div class='del'>-#else</div><div class='del'>-struct st_table *rb_hash_tbl_raw(VALUE hash);</div><div class='del'>-#define RHASH_TBL_RAW(h) rb_hash_tbl_raw(h)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-VALUE rb_hash_new_with_size(st_index_t size);</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-VALUE rb_hash_new_compare_by_id(void);</div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='del'>-VALUE rb_hash_has_key(VALUE hash, VALUE key);</div><div class='del'>-VALUE rb_hash_default_value(VALUE hash, VALUE key);</div><div class='del'>-VALUE rb_hash_set_default_proc(VALUE hash, VALUE proc);</div><div class='del'>-long rb_objid_hash(st_index_t index);</div><div class='del'>-long rb_dbl_long_hash(double d);</div><div class='del'>-st_table *rb_init_identtable(void);</div><div class='del'>-st_table *rb_init_identtable_with_size(st_index_t size);</div><div class='del'>-VALUE rb_hash_compare_by_id_p(VALUE hash);</div><div class='del'>-VALUE rb_to_hash_type(VALUE obj);</div><div class='del'>-VALUE rb_hash_key_str(VALUE);</div><div class='del'>-VALUE rb_hash_keys(VALUE hash);</div><div class='del'>-VALUE rb_hash_values(VALUE hash);</div><div class='del'>-VALUE rb_hash_rehash(VALUE hash);</div><div class='del'>-VALUE rb_hash_resurrect(VALUE hash);</div><div class='del'>-int rb_hash_add_new_element(VALUE hash, VALUE key, VALUE val);</div><div class='del'>-VALUE rb_hash_set_pair(VALUE hash, VALUE pair);</div><div class='del'>-void rb_hash_bulk_insert(long, const VALUE *, VALUE);</div><div class='del'>-</div><div class='del'>-int rb_hash_stlike_lookup(VALUE hash, st_data_t key, st_data_t *pval);</div><div class='del'>-int rb_hash_stlike_delete(VALUE hash, st_data_t *pkey, st_data_t *pval);</div><div class='del'>-int rb_hash_stlike_foreach(VALUE hash, int (*func)(ANYARGS), st_data_t arg);</div><div class='del'>-int rb_hash_stlike_update(VALUE hash, st_data_t key, st_update_callback_func func, st_data_t arg);</div><div class='del'>-</div><div class='del'>-/* inits.c */</div><div class='del'>-void rb_call_inits(void);</div><div class='del'>-</div><div class='del'>-/* io.c */</div><div class='del'>-const char *ruby_get_inplace_mode(void);</div><div class='del'>-void ruby_set_inplace_mode(const char *);</div><div class='del'>-ssize_t rb_io_bufread(VALUE io, void *buf, size_t size);</div><div class='del'>-void rb_stdio_set_default_encoding(void);</div><div class='del'>-VALUE rb_io_flush_raw(VALUE, int);</div><div class='del'>-#ifdef RUBY_IO_H</div><div class='del'>-size_t rb_io_memsize(const rb_io_t *);</div><div class='del'>-#endif</div><div class='del'>-int rb_stderr_tty_p(void);</div><div class='del'>-void rb_io_fptr_finalize_internal(void *ptr);</div><div class='del'>-#define rb_io_fptr_finalize rb_io_fptr_finalize_internal</div><div class='del'>-</div><div class='del'>-/* load.c */</div><div class='del'>-VALUE rb_get_load_path(void);</div><div class='del'>-VALUE rb_get_expanded_load_path(void);</div><div class='del'>-int rb_require_internal(VALUE fname, int safe);</div><div class='del'>-NORETURN(void rb_load_fail(VALUE, const char*));</div><div class='del'>-</div><div class='del'>-/* loadpath.c */</div><div class='del'>-extern const char ruby_exec_prefix[];</div><div class='del'>-extern const char ruby_initial_load_paths[];</div><div class='del'>-</div><div class='del'>-/* localeinit.c */</div><div class='del'>-int Init_enc_set_filesystem_encoding(void);</div><div class='del'>-</div><div class='del'>-/* math.c */</div><div class='del'>-VALUE rb_math_atan2(VALUE, VALUE);</div><div class='del'>-VALUE rb_math_cos(VALUE);</div><div class='del'>-VALUE rb_math_cosh(VALUE);</div><div class='del'>-VALUE rb_math_exp(VALUE);</div><div class='del'>-VALUE rb_math_hypot(VALUE, VALUE);</div><div class='del'>-VALUE rb_math_log(int argc, const VALUE *argv);</div><div class='del'>-VALUE rb_math_sin(VALUE);</div><div class='del'>-VALUE rb_math_sinh(VALUE);</div><div class='del'>-VALUE rb_math_sqrt(VALUE);</div><div class='del'>-</div><div class='del'>-/* mjit.c */</div><div class='del'>-</div><div class='del'>-#if USE_MJIT</div><div class='del'>-extern int mjit_enabled;</div><div class='del'>-VALUE mjit_pause(int wait_p);</div><div class='del'>-VALUE mjit_resume(void);</div><div class='del'>-void mjit_finish(int close_handle_p);</div><div class='del'>-#else</div><div class='del'>-#define mjit_enabled 0</div><div class='del'>-static inline VALUE mjit_pause(int wait_p){ return Qnil; } /* unreachable */</div><div class='del'>-static inline VALUE mjit_resume(void){ return Qnil; } /* unreachable */</div><div class='del'>-static inline void mjit_finish(int close_handle_p){}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* newline.c */</div><div class='del'>-void Init_newline(void);</div><div class='del'>-</div><div class='del'>-/* numeric.c */</div><div class='del'>-</div><div class='del'>-#define FIXNUM_POSITIVE_P(num) ((SIGNED_VALUE)(num) &gt; (SIGNED_VALUE)INT2FIX(0))</div><div class='del'>-#define FIXNUM_NEGATIVE_P(num) ((SIGNED_VALUE)(num) &lt; 0)</div><div class='del'>-#define FIXNUM_ZERO_P(num) ((num) == INT2FIX(0))</div><div class='del'>-</div><div class='del'>-#define INT_NEGATIVE_P(x) (FIXNUM_P(x) ? FIXNUM_NEGATIVE_P(x) : BIGNUM_NEGATIVE_P(x))</div><div class='del'>-</div><div class='del'>-#ifndef ROUND_DEFAULT</div><div class='del'>-# define ROUND_DEFAULT RUBY_NUM_ROUND_HALF_UP</div><div class='del'>-#endif</div><div class='del'>-enum ruby_num_rounding_mode {</div><div class='del'>-    RUBY_NUM_ROUND_HALF_UP,</div><div class='del'>-    RUBY_NUM_ROUND_HALF_EVEN,</div><div class='del'>-    RUBY_NUM_ROUND_HALF_DOWN,</div><div class='del'>-    RUBY_NUM_ROUND_DEFAULT = ROUND_DEFAULT</div><div class='del'>-};</div><div class='del'>-#define ROUND_TO(mode, even, up, down) \</div><div class='del'>-    ((mode) == RUBY_NUM_ROUND_HALF_EVEN ? even : \</div><div class='del'>-     (mode) == RUBY_NUM_ROUND_HALF_UP ? up : down)</div><div class='del'>-#define ROUND_FUNC(mode, name) \</div><div class='del'>-    ROUND_TO(mode, name##_half_even, name##_half_up, name##_half_down)</div><div class='del'>-#define ROUND_CALL(mode, name, args) \</div><div class='del'>-    ROUND_TO(mode, name##_half_even args, \</div><div class='del'>-	     name##_half_up args, name##_half_down args)</div><div class='del'>-</div><div class='del'>-int rb_num_to_uint(VALUE val, unsigned int *ret);</div><div class='del'>-VALUE ruby_num_interval_step_size(VALUE from, VALUE to, VALUE step, int excl);</div><div class='del'>-int ruby_float_step(VALUE from, VALUE to, VALUE step, int excl, int allow_endless);</div><div class='del'>-double ruby_float_mod(double x, double y);</div><div class='del'>-int rb_num_negative_p(VALUE);</div><div class='del'>-VALUE rb_int_succ(VALUE num);</div><div class='del'>-VALUE rb_int_pred(VALUE num);</div><div class='del'>-VALUE rb_int_uminus(VALUE num);</div><div class='del'>-VALUE rb_float_uminus(VALUE num);</div><div class='del'>-VALUE rb_int_plus(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_minus(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_mul(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_idiv(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_modulo(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_round(VALUE num, int ndigits, enum ruby_num_rounding_mode mode);</div><div class='del'>-VALUE rb_int2str(VALUE num, int base);</div><div class='del'>-VALUE rb_dbl_hash(double d);</div><div class='del'>-VALUE rb_fix_plus(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_gt(VALUE x, VALUE y);</div><div class='del'>-int rb_float_cmp(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_float_gt(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_ge(VALUE x, VALUE y);</div><div class='del'>-enum ruby_num_rounding_mode rb_num_get_rounding_option(VALUE opts);</div><div class='del'>-double rb_int_fdiv_double(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_pow(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_float_pow(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_cmp(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_equal(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_divmod(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_and(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_lshift(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_div(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_int_abs(VALUE num);</div><div class='del'>-VALUE rb_int_odd_p(VALUE num);</div><div class='del'>-int rb_int_positive_p(VALUE num);</div><div class='del'>-int rb_int_negative_p(VALUE num);</div><div class='del'>-VALUE rb_num_pow(VALUE x, VALUE y);</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_num_compare_with_zero(VALUE num, ID mid)</div><div class='del'>-{</div><div class='del'>-    VALUE zero = INT2FIX(0);</div><div class='del'>-    VALUE r = rb_check_funcall(num, mid, 1, &amp;zero);</div><div class='del'>-    if (r == Qundef) {</div><div class='del'>-	rb_cmperr(num, zero);</div><div class='del'>-    }</div><div class='del'>-    return r;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-rb_num_positive_int_p(VALUE num)</div><div class='del'>-{</div><div class='del'>-    const ID mid = '&gt;';</div><div class='del'>-</div><div class='del'>-    if (FIXNUM_P(num)) {</div><div class='del'>-	if (rb_method_basic_definition_p(rb_cInteger, mid))</div><div class='del'>-	    return FIXNUM_POSITIVE_P(num);</div><div class='del'>-    }</div><div class='del'>-    else if (RB_TYPE_P(num, T_BIGNUM)) {</div><div class='del'>-	if (rb_method_basic_definition_p(rb_cInteger, mid))</div><div class='del'>-	    return BIGNUM_POSITIVE_P(num);</div><div class='del'>-    }</div><div class='del'>-    return RTEST(rb_num_compare_with_zero(num, mid));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-rb_num_negative_int_p(VALUE num)</div><div class='del'>-{</div><div class='del'>-    const ID mid = '&lt;';</div><div class='del'>-</div><div class='del'>-    if (FIXNUM_P(num)) {</div><div class='del'>-	if (rb_method_basic_definition_p(rb_cInteger, mid))</div><div class='del'>-	    return FIXNUM_NEGATIVE_P(num);</div><div class='del'>-    }</div><div class='del'>-    else if (RB_TYPE_P(num, T_BIGNUM)) {</div><div class='del'>-	if (rb_method_basic_definition_p(rb_cInteger, mid))</div><div class='del'>-	    return BIGNUM_NEGATIVE_P(num);</div><div class='del'>-    }</div><div class='del'>-    return RTEST(rb_num_compare_with_zero(num, mid));</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-VALUE rb_float_abs(VALUE flt);</div><div class='del'>-VALUE rb_float_equal(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_float_eql(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_flo_div_flo(VALUE x, VALUE y);</div><div class='del'>-</div><div class='del'>-#if USE_FLONUM</div><div class='del'>-#define RUBY_BIT_ROTL(v, n) (((v) &lt;&lt; (n)) | ((v) &gt;&gt; ((sizeof(v) * 8) - n)))</div><div class='del'>-#define RUBY_BIT_ROTR(v, n) (((v) &gt;&gt; (n)) | ((v) &lt;&lt; ((sizeof(v) * 8) - n)))</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static inline double</div><div class='del'>-rb_float_flonum_value(VALUE v)</div><div class='del'>-{</div><div class='del'>-#if USE_FLONUM</div><div class='del'>-    if (v != (VALUE)0x8000000000000002) { /* LIKELY */</div><div class='del'>-	union {</div><div class='del'>-	    double d;</div><div class='del'>-	    VALUE v;</div><div class='del'>-	} t;</div><div class='del'>-</div><div class='del'>-	VALUE b63 = (v &gt;&gt; 63);</div><div class='del'>-	/* e: xx1... -&gt; 011... */</div><div class='del'>-	/*    xx0... -&gt; 100... */</div><div class='del'>-	/*      ^b63           */</div><div class='del'>-	t.v = RUBY_BIT_ROTR((2 - b63) | (v &amp; ~(VALUE)0x03), 3);</div><div class='del'>-	return t.d;</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-    return 0.0;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline double</div><div class='del'>-rb_float_noflonum_value(VALUE v)</div><div class='del'>-{</div><div class='del'>-    return ((struct RFloat *)v)-&gt;float_value;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline double</div><div class='del'>-rb_float_value_inline(VALUE v)</div><div class='del'>-{</div><div class='del'>-    if (FLONUM_P(v)) {</div><div class='del'>-	return rb_float_flonum_value(v);</div><div class='del'>-    }</div><div class='del'>-    return rb_float_noflonum_value(v);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static inline VALUE</div><div class='del'>-rb_float_new_inline(double d)</div><div class='del'>-{</div><div class='del'>-#if USE_FLONUM</div><div class='del'>-    union {</div><div class='del'>-	double d;</div><div class='del'>-	VALUE v;</div><div class='del'>-    } t;</div><div class='del'>-    int bits;</div><div class='add'>+void rb_obj_info_dump(VALUE obj);</div><div class='add'>+void rb_obj_info_dump_loc(VALUE obj, const char *file, int line, const char *func);</div><div class='ctx'> </div><div class='del'>-    t.d = d;</div><div class='del'>-    bits = (int)((VALUE)(t.v &gt;&gt; 60) &amp; 0x7);</div><div class='del'>-    /* bits contains 3 bits of b62..b60. */</div><div class='del'>-    /* bits - 3 = */</div><div class='del'>-    /*   b011 -&gt; b000 */</div><div class='del'>-    /*   b100 -&gt; b001 */</div><div class='del'>-</div><div class='del'>-    if (t.v != 0x3000000000000000 /* 1.72723e-77 */ &amp;&amp;</div><div class='del'>-	!((bits-3) &amp; ~0x01)) {</div><div class='del'>-	return (RUBY_BIT_ROTL(t.v, 3) &amp; ~(VALUE)0x01) | 0x02;</div><div class='del'>-    }</div><div class='del'>-    else if (t.v == (VALUE)0) {</div><div class='del'>-	/* +0.0 */</div><div class='del'>-	return 0x8000000000000002;</div><div class='del'>-    }</div><div class='del'>-    /* out of range */</div><div class='del'>-#endif</div><div class='del'>-    return rb_float_new_in_heap(d);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#define rb_float_value(v) rb_float_value_inline(v)</div><div class='del'>-#define rb_float_new(d)   rb_float_new_inline(d)</div><div class='del'>-</div><div class='del'>-/* object.c */</div><div class='del'>-void rb_obj_copy_ivar(VALUE dest, VALUE obj);</div><div class='del'>-CONSTFUNC(VALUE rb_obj_equal(VALUE obj1, VALUE obj2));</div><div class='del'>-CONSTFUNC(VALUE rb_obj_not(VALUE obj));</div><div class='del'>-VALUE rb_class_search_ancestor(VALUE klass, VALUE super);</div><div class='del'>-NORETURN(void rb_undefined_alloc(VALUE klass));</div><div class='del'>-double rb_num_to_dbl(VALUE val);</div><div class='del'>-VALUE rb_obj_dig(int argc, VALUE *argv, VALUE self, VALUE notfound);</div><div class='del'>-VALUE rb_immutable_obj_clone(int, VALUE *, VALUE);</div><div class='del'>-VALUE rb_obj_not_equal(VALUE obj1, VALUE obj2);</div><div class='del'>-VALUE rb_convert_type_with_id(VALUE,int,const char*,ID);</div><div class='del'>-VALUE rb_check_convert_type_with_id(VALUE,int,const char*,ID);</div><div class='del'>-</div><div class='del'>-struct RBasicRaw {</div><div class='del'>-    VALUE flags;</div><div class='del'>-    VALUE klass;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-#define RBASIC_CLEAR_CLASS(obj)        memset(&amp;(((struct RBasicRaw *)((VALUE)(obj)))-&gt;klass), 0, sizeof(VALUE))</div><div class='del'>-#define RBASIC_SET_CLASS_RAW(obj, cls) memcpy(&amp;((struct RBasicRaw *)((VALUE)(obj)))-&gt;klass, &amp;(cls), sizeof(VALUE))</div><div class='del'>-#define RBASIC_SET_CLASS(obj, cls)     do { \</div><div class='del'>-    VALUE _obj_ = (obj); \</div><div class='del'>-    RB_OBJ_WRITE(_obj_, &amp;((struct RBasicRaw *)(_obj_))-&gt;klass, cls); \</div><div class='del'>-} while (0)</div><div class='add'>+/* debug.c */</div><div class='ctx'> </div><div class='del'>-/* parse.y */</div><div class='del'>-#ifndef USE_SYMBOL_GC</div><div class='del'>-#define USE_SYMBOL_GC 1</div><div class='del'>-#endif</div><div class='del'>-VALUE rb_parser_get_yydebug(VALUE);</div><div class='del'>-VALUE rb_parser_set_yydebug(VALUE, VALUE);</div><div class='ctx'> RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-VALUE rb_parser_set_context(VALUE, const struct rb_block *, int);</div><div class='add'>+void ruby_debug_breakpoint(void);</div><div class='add'>+PRINTF_ARGS(void ruby_debug_printf(const char*, ...), 1, 2);</div><div class='ctx'> RUBY_SYMBOL_EXPORT_END</div><div class='del'>-void *rb_parser_load_file(VALUE parser, VALUE name);</div><div class='del'>-int rb_is_const_name(VALUE name);</div><div class='del'>-int rb_is_class_name(VALUE name);</div><div class='del'>-int rb_is_global_name(VALUE name);</div><div class='del'>-int rb_is_instance_name(VALUE name);</div><div class='del'>-int rb_is_attrset_name(VALUE name);</div><div class='del'>-int rb_is_local_name(VALUE name);</div><div class='del'>-int rb_is_method_name(VALUE name);</div><div class='del'>-int rb_is_junk_name(VALUE name);</div><div class='del'>-PUREFUNC(int rb_is_const_sym(VALUE sym));</div><div class='del'>-PUREFUNC(int rb_is_class_sym(VALUE sym));</div><div class='del'>-PUREFUNC(int rb_is_global_sym(VALUE sym));</div><div class='del'>-PUREFUNC(int rb_is_instance_sym(VALUE sym));</div><div class='del'>-PUREFUNC(int rb_is_attrset_sym(VALUE sym));</div><div class='del'>-PUREFUNC(int rb_is_local_sym(VALUE sym));</div><div class='del'>-PUREFUNC(int rb_is_method_sym(VALUE sym));</div><div class='del'>-PUREFUNC(int rb_is_junk_sym(VALUE sym));</div><div class='del'>-ID rb_make_internal_id(void);</div><div class='del'>-void rb_gc_free_dsymbol(VALUE);</div><div class='del'>-ID rb_id_attrget(ID id);</div><div class='del'>-</div><div class='del'>-/* proc.c */</div><div class='del'>-VALUE rb_proc_location(VALUE self);</div><div class='del'>-st_index_t rb_hash_proc(st_index_t hash, VALUE proc);</div><div class='del'>-int rb_block_arity(void);</div><div class='del'>-int rb_block_min_max_arity(int *max);</div><div class='del'>-VALUE rb_func_proc_new(rb_block_call_func_t func, VALUE val);</div><div class='del'>-VALUE rb_func_lambda_new(rb_block_call_func_t func, VALUE val, int min_argc, int max_argc);</div><div class='del'>-VALUE rb_block_to_s(VALUE self, const struct rb_block *block, const char *additional_info);</div><div class='del'>-</div><div class='del'>-/* process.c */</div><div class='del'>-#define RB_MAX_GROUPS (65536)</div><div class='del'>-</div><div class='del'>-struct waitpid_state;</div><div class='del'>-struct rb_execarg {</div><div class='del'>-    union {</div><div class='del'>-        struct {</div><div class='del'>-            VALUE shell_script;</div><div class='del'>-        } sh;</div><div class='del'>-        struct {</div><div class='del'>-            VALUE command_name;</div><div class='del'>-            VALUE command_abspath; /* full path string or nil */</div><div class='del'>-            VALUE argv_str;</div><div class='del'>-            VALUE argv_buf;</div><div class='del'>-        } cmd;</div><div class='del'>-    } invoke;</div><div class='del'>-    VALUE redirect_fds;</div><div class='del'>-    VALUE envp_str;</div><div class='del'>-    VALUE envp_buf;</div><div class='del'>-    VALUE dup2_tmpbuf;</div><div class='del'>-    unsigned use_shell : 1;</div><div class='del'>-    unsigned pgroup_given : 1;</div><div class='del'>-    unsigned umask_given : 1;</div><div class='del'>-    unsigned unsetenv_others_given : 1;</div><div class='del'>-    unsigned unsetenv_others_do : 1;</div><div class='del'>-    unsigned close_others_given : 1;</div><div class='del'>-    unsigned close_others_do : 1;</div><div class='del'>-    unsigned chdir_given : 1;</div><div class='del'>-    unsigned new_pgroup_given : 1;</div><div class='del'>-    unsigned new_pgroup_flag : 1;</div><div class='del'>-    unsigned uid_given : 1;</div><div class='del'>-    unsigned gid_given : 1;</div><div class='del'>-    unsigned exception : 1;</div><div class='del'>-    struct waitpid_state *waitpid_state; /* for async process management */</div><div class='del'>-    rb_pid_t pgroup_pgid; /* asis(-1), new pgroup(0), specified pgroup (0&lt;V). */</div><div class='del'>-    VALUE rlimit_limits; /* Qfalse or [[rtype, softlim, hardlim], ...] */</div><div class='del'>-    mode_t umask_mask;</div><div class='del'>-    rb_uid_t uid;</div><div class='del'>-    rb_gid_t gid;</div><div class='del'>-    int close_others_maxhint;</div><div class='del'>-    VALUE fd_dup2;</div><div class='del'>-    VALUE fd_close;</div><div class='del'>-    VALUE fd_open;</div><div class='del'>-    VALUE fd_dup2_child;</div><div class='del'>-    VALUE env_modification; /* Qfalse or [[k1,v1], ...] */</div><div class='del'>-    VALUE path_env;</div><div class='del'>-    VALUE chdir_dir;</div><div class='del'>-};</div><div class='del'>-</div><div class='del'>-/* argv_str contains extra two elements.</div><div class='del'>- * The beginning one is for /bin/sh used by exec_with_sh.</div><div class='del'>- * The last one for terminating NULL used by execve.</div><div class='del'>- * See rb_exec_fillarg() in process.c. */</div><div class='del'>-#define ARGVSTR2ARGV(argv_str) ((char **)RB_IMEMO_TMPBUF_PTR(argv_str) + 1)</div><div class='del'>-</div><div class='del'>-static inline size_t</div><div class='del'>-ARGVSTR2ARGC(VALUE argv_str)</div><div class='del'>-{</div><div class='del'>-    size_t i = 0;</div><div class='del'>-    char *const *p = ARGVSTR2ARGV(argv_str);</div><div class='del'>-    while (p[i++])</div><div class='del'>-        ;</div><div class='del'>-    return i - 1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-rb_pid_t rb_fork_ruby(int *status);</div><div class='del'>-void rb_last_status_clear(void);</div><div class='del'>-</div><div class='del'>-/* range.c */</div><div class='del'>-#define RANGE_BEG(r) (RSTRUCT(r)-&gt;as.ary[0])</div><div class='del'>-#define RANGE_END(r) (RSTRUCT(r)-&gt;as.ary[1])</div><div class='del'>-#define RANGE_EXCL(r) (RSTRUCT(r)-&gt;as.ary[2])</div><div class='del'>-</div><div class='del'>-/* rational.c */</div><div class='del'>-VALUE rb_rational_canonicalize(VALUE x);</div><div class='del'>-VALUE rb_rational_uminus(VALUE self);</div><div class='del'>-VALUE rb_rational_plus(VALUE self, VALUE other);</div><div class='del'>-VALUE rb_lcm(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_rational_reciprocal(VALUE x);</div><div class='del'>-VALUE rb_cstr_to_rat(const char *, int);</div><div class='del'>-VALUE rb_rational_abs(VALUE self);</div><div class='del'>-VALUE rb_rational_cmp(VALUE self, VALUE other);</div><div class='del'>-VALUE rb_rational_pow(VALUE self, VALUE other);</div><div class='del'>-VALUE rb_numeric_quo(VALUE x, VALUE y);</div><div class='del'>-</div><div class='del'>-/* re.c */</div><div class='del'>-VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline);</div><div class='del'>-VALUE rb_reg_check_preprocess(VALUE);</div><div class='del'>-long rb_reg_search0(VALUE, VALUE, long, int, int);</div><div class='del'>-VALUE rb_reg_match_p(VALUE re, VALUE str, long pos);</div><div class='del'>-bool rb_reg_start_with_p(VALUE re, VALUE str);</div><div class='del'>-void rb_backref_set_string(VALUE string, long pos, long len);</div><div class='del'>-int rb_match_count(VALUE match);</div><div class='del'>-int rb_match_nth_defined(int nth, VALUE match);</div><div class='del'>-VALUE rb_reg_new_ary(VALUE ary, int options);</div><div class='del'>-</div><div class='del'>-/* signal.c */</div><div class='del'>-extern int ruby_enable_coredump;</div><div class='del'>-int rb_get_next_signal(void);</div><div class='del'>-</div><div class='del'>-/* string.c */</div><div class='del'>-VALUE rb_fstring(VALUE);</div><div class='del'>-VALUE rb_fstring_new(const char *ptr, long len);</div><div class='del'>-#define rb_fstring_lit(str) rb_fstring_new((str), rb_strlen_lit(str))</div><div class='del'>-#define rb_fstring_literal(str) rb_fstring_lit(str)</div><div class='del'>-VALUE rb_fstring_cstr(const char *str);</div><div class='del'>-#ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P</div><div class='del'>-# define rb_fstring_cstr(str) RB_GNUC_EXTENSION_BLOCK(	\</div><div class='del'>-    (__builtin_constant_p(str)) ?		\</div><div class='del'>-	rb_fstring_new((str), (long)strlen(str)) : \</div><div class='del'>-	rb_fstring_cstr(str) \</div><div class='del'>-)</div><div class='del'>-#endif</div><div class='del'>-#ifdef RUBY_ENCODING_H</div><div class='del'>-VALUE rb_fstring_enc_new(const char *ptr, long len, rb_encoding *enc);</div><div class='del'>-#define rb_fstring_enc_lit(str, enc) rb_fstring_enc_new((str), rb_strlen_lit(str), (enc))</div><div class='del'>-#define rb_fstring_enc_literal(str, enc) rb_fstring_enc_lit(str, enc)</div><div class='del'>-VALUE rb_fstring_enc_cstr(const char *ptr, rb_encoding *enc);</div><div class='del'>-# ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P</div><div class='del'>-#  define rb_fstring_enc_cstr(str, enc) RB_GNUC_EXTENSION_BLOCK( \</div><div class='del'>-    (__builtin_constant_p(str)) ?		\</div><div class='del'>-	rb_fstring_enc_new((str), (long)strlen(str), (enc)) : \</div><div class='del'>-	rb_fstring_enc_cstr(str, enc) \</div><div class='del'>-)</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-int rb_str_buf_cat_escaped_char(VALUE result, unsigned int c, int unicode_p);</div><div class='del'>-int rb_str_symname_p(VALUE);</div><div class='del'>-VALUE rb_str_quote_unprintable(VALUE);</div><div class='del'>-VALUE rb_id_quote_unprintable(ID);</div><div class='del'>-#define QUOTE(str) rb_str_quote_unprintable(str)</div><div class='del'>-#define QUOTE_ID(id) rb_id_quote_unprintable(id)</div><div class='del'>-char *rb_str_fill_terminator(VALUE str, const int termlen);</div><div class='del'>-void rb_str_change_terminator_length(VALUE str, const int oldtermlen, const int termlen);</div><div class='del'>-VALUE rb_str_locktmp_ensure(VALUE str, VALUE (*func)(VALUE), VALUE arg);</div><div class='del'>-VALUE rb_str_tmp_frozen_acquire(VALUE str);</div><div class='del'>-void rb_str_tmp_frozen_release(VALUE str, VALUE tmp);</div><div class='del'>-VALUE rb_str_chomp_string(VALUE str, VALUE chomp);</div><div class='del'>-#ifdef RUBY_ENCODING_H</div><div class='del'>-VALUE rb_external_str_with_enc(VALUE str, rb_encoding *eenc);</div><div class='del'>-VALUE rb_str_cat_conv_enc_opts(VALUE newstr, long ofs, const char *ptr, long len,</div><div class='del'>-			       rb_encoding *from, int ecflags, VALUE ecopts);</div><div class='del'>-VALUE rb_enc_str_scrub(rb_encoding *enc, VALUE str, VALUE repl);</div><div class='del'>-VALUE rb_str_initialize(VALUE str, const char *ptr, long len, rb_encoding *enc);</div><div class='del'>-#endif</div><div class='del'>-#define STR_NOEMBED      FL_USER1</div><div class='del'>-#define STR_SHARED       FL_USER2 /* = ELTS_SHARED */</div><div class='del'>-#define STR_EMBED_P(str) (!FL_TEST_RAW((str), STR_NOEMBED))</div><div class='del'>-#define STR_SHARED_P(s)  FL_ALL_RAW((s), STR_NOEMBED|ELTS_SHARED)</div><div class='del'>-#define is_ascii_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT)</div><div class='del'>-#define is_broken_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_BROKEN)</div><div class='del'>-size_t rb_str_memsize(VALUE);</div><div class='del'>-VALUE rb_sym_proc_call(ID mid, int argc, const VALUE *argv, VALUE passed_proc);</div><div class='del'>-VALUE rb_sym_to_proc(VALUE sym);</div><div class='del'>-char *rb_str_to_cstr(VALUE str);</div><div class='del'>-VALUE rb_str_eql(VALUE str1, VALUE str2);</div><div class='del'>-VALUE rb_obj_as_string_result(VALUE str, VALUE obj);</div><div class='del'>-</div><div class='del'>-/* symbol.c */</div><div class='del'>-#ifdef RUBY_ENCODING_H</div><div class='del'>-VALUE rb_sym_intern(const char *ptr, long len, rb_encoding *enc);</div><div class='del'>-VALUE rb_sym_intern_cstr(const char *ptr, rb_encoding *enc);</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#define rb_sym_intern_cstr(ptr, enc) __extension__ ( \</div><div class='del'>-{						\</div><div class='del'>-    (__builtin_constant_p(ptr)) ?		\</div><div class='del'>-	rb_sym_intern((ptr), (long)strlen(ptr), (enc)) : \</div><div class='del'>-	rb_sym_intern_cstr((ptr), (enc)); \</div><div class='del'>-})</div><div class='del'>-#endif</div><div class='del'>-#endif</div><div class='del'>-VALUE rb_sym_intern_ascii(const char *ptr, long len);</div><div class='del'>-VALUE rb_sym_intern_ascii_cstr(const char *ptr);</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#define rb_sym_intern_ascii_cstr(ptr) __extension__ ( \</div><div class='del'>-{						\</div><div class='del'>-    (__builtin_constant_p(ptr)) ?		\</div><div class='del'>-	rb_sym_intern_ascii((ptr), (long)strlen(ptr)) : \</div><div class='del'>-	rb_sym_intern_ascii_cstr(ptr); \</div><div class='del'>-})</div><div class='del'>-#endif</div><div class='del'>-VALUE rb_to_symbol_type(VALUE obj);</div><div class='del'>-</div><div class='del'>-/* struct.c */</div><div class='del'>-VALUE rb_struct_init_copy(VALUE copy, VALUE s);</div><div class='del'>-VALUE rb_struct_lookup(VALUE s, VALUE idx);</div><div class='del'>-VALUE rb_struct_s_keyword_init(VALUE klass);</div><div class='del'>-</div><div class='del'>-/* time.c */</div><div class='del'>-struct timeval rb_time_timeval(VALUE);</div><div class='del'>-</div><div class='del'>-/* thread.c */</div><div class='del'>-#define COVERAGE_INDEX_LINES    0</div><div class='del'>-#define COVERAGE_INDEX_BRANCHES 1</div><div class='del'>-#define COVERAGE_TARGET_LINES    1</div><div class='del'>-#define COVERAGE_TARGET_BRANCHES 2</div><div class='del'>-#define COVERAGE_TARGET_METHODS  4</div><div class='del'>-#define COVERAGE_TARGET_ONESHOT_LINES 8</div><div class='del'>-</div><div class='del'>-VALUE rb_obj_is_mutex(VALUE obj);</div><div class='del'>-VALUE rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg);</div><div class='del'>-void rb_thread_execute_interrupts(VALUE th);</div><div class='del'>-void rb_clear_trace_func(void);</div><div class='del'>-VALUE rb_get_coverages(void);</div><div class='del'>-int rb_get_coverage_mode(void);</div><div class='del'>-VALUE rb_default_coverage(int);</div><div class='del'>-VALUE rb_thread_shield_new(void);</div><div class='del'>-VALUE rb_thread_shield_wait(VALUE self);</div><div class='del'>-VALUE rb_thread_shield_release(VALUE self);</div><div class='del'>-VALUE rb_thread_shield_destroy(VALUE self);</div><div class='del'>-int rb_thread_to_be_killed(VALUE thread);</div><div class='del'>-void rb_mutex_allow_trap(VALUE self, int val);</div><div class='del'>-VALUE rb_uninterruptible(VALUE (*b_proc)(ANYARGS), VALUE data);</div><div class='del'>-VALUE rb_mutex_owned_p(VALUE self);</div><div class='del'>-</div><div class='del'>-/* transcode.c */</div><div class='del'>-extern VALUE rb_cEncodingConverter;</div><div class='del'>-#ifdef RUBY_ENCODING_H</div><div class='del'>-size_t rb_econv_memsize(rb_econv_t *);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* us_ascii.c */</div><div class='del'>-#ifdef RUBY_ENCODING_H</div><div class='del'>-extern rb_encoding OnigEncodingUS_ASCII;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* util.c */</div><div class='del'>-char *ruby_dtoa(double d_, int mode, int ndigits, int *decpt, int *sign, char **rve);</div><div class='del'>-char *ruby_hdtoa(double d, const char *xdigs, int ndigits, int *decpt, int *sign, char **rve);</div><div class='del'>-</div><div class='del'>-/* utf_8.c */</div><div class='del'>-#ifdef RUBY_ENCODING_H</div><div class='del'>-extern rb_encoding OnigEncodingUTF_8;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* variable.c */</div><div class='del'>-#if USE_TRANSIENT_HEAP</div><div class='del'>-#define ROBJECT_TRANSIENT_FLAG    FL_USER13</div><div class='del'>-#define ROBJ_TRANSIENT_P(obj)     FL_TEST_RAW((obj), ROBJECT_TRANSIENT_FLAG)</div><div class='del'>-#define ROBJ_TRANSIENT_SET(obj)   FL_SET_RAW((obj), ROBJECT_TRANSIENT_FLAG)</div><div class='del'>-#define ROBJ_TRANSIENT_UNSET(obj) FL_UNSET_RAW((obj), ROBJECT_TRANSIENT_FLAG)</div><div class='del'>-#else</div><div class='del'>-#define ROBJ_TRANSIENT_P(obj)     0</div><div class='del'>-#define ROBJ_TRANSIENT_SET(obj)   ((void)0)</div><div class='del'>-#define ROBJ_TRANSIENT_UNSET(obj) ((void)0)</div><div class='del'>-#endif</div><div class='del'>-void rb_gc_mark_global_tbl(void);</div><div class='del'>-size_t rb_generic_ivar_memsize(VALUE);</div><div class='del'>-VALUE rb_search_class_path(VALUE);</div><div class='del'>-VALUE rb_attr_delete(VALUE, ID);</div><div class='del'>-VALUE rb_ivar_lookup(VALUE obj, ID id, VALUE undef);</div><div class='del'>-void rb_autoload_str(VALUE mod, ID id, VALUE file);</div><div class='del'>-void rb_deprecate_constant(VALUE mod, const char *name);</div><div class='del'>-NORETURN(VALUE rb_mod_const_missing(VALUE,VALUE));</div><div class='del'>-rb_gvar_getter_t *rb_gvar_getter_function_of(const struct rb_global_entry *);</div><div class='del'>-rb_gvar_setter_t *rb_gvar_setter_function_of(const struct rb_global_entry *);</div><div class='del'>-bool rb_gvar_is_traced(const struct rb_global_entry *);</div><div class='del'>-</div><div class='del'>-/* vm_insnhelper.h */</div><div class='del'>-rb_serial_t rb_next_class_serial(void);</div><div class='del'>-</div><div class='del'>-/* vm.c */</div><div class='del'>-VALUE rb_obj_is_thread(VALUE obj);</div><div class='del'>-void rb_vm_mark(void *ptr);</div><div class='del'>-void Init_BareVM(void);</div><div class='del'>-void Init_vm_objects(void);</div><div class='del'>-PUREFUNC(VALUE rb_vm_top_self(void));</div><div class='del'>-void rb_thread_recycle_stack_release(VALUE *);</div><div class='del'>-VALUE *rb_thread_recycle_stack(size_t);</div><div class='del'>-void rb_vm_change_state(void);</div><div class='del'>-void rb_vm_inc_const_missing_count(void);</div><div class='del'>-const void **rb_vm_get_insns_address_table(void);</div><div class='del'>-VALUE rb_source_location(int *pline);</div><div class='del'>-const char *rb_source_location_cstr(int *pline);</div><div class='del'>-MJIT_STATIC void rb_vm_pop_cfunc_frame(void);</div><div class='del'>-int rb_vm_add_root_module(ID id, VALUE module);</div><div class='del'>-void rb_vm_check_redefinition_by_prepend(VALUE klass);</div><div class='del'>-VALUE rb_yield_refine_block(VALUE refinement, VALUE refinements);</div><div class='del'>-MJIT_STATIC VALUE ruby_vm_special_exception_copy(VALUE);</div><div class='del'>-PUREFUNC(st_table *rb_vm_fstring_table(void));</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/* vm_dump.c */</div><div class='del'>-void rb_print_backtrace(void);</div><div class='del'>-</div><div class='del'>-/* vm_eval.c */</div><div class='del'>-void Init_vm_eval(void);</div><div class='del'>-VALUE rb_current_realfilepath(void);</div><div class='del'>-VALUE rb_check_block_call(VALUE, ID, int, const VALUE *, rb_block_call_func_t, VALUE);</div><div class='del'>-typedef void rb_check_funcall_hook(int, VALUE, ID, int, const VALUE *, VALUE);</div><div class='del'>-VALUE rb_check_funcall_with_hook(VALUE recv, ID mid, int argc, const VALUE *argv,</div><div class='del'>-				 rb_check_funcall_hook *hook, VALUE arg);</div><div class='del'>-const char *rb_type_str(enum ruby_value_type type);</div><div class='del'>-VALUE rb_check_funcall_default(VALUE, ID, int, const VALUE *, VALUE);</div><div class='del'>-VALUE rb_yield_1(VALUE val);</div><div class='del'>-VALUE rb_yield_force_blockarg(VALUE values);</div><div class='del'>-VALUE rb_lambda_call(VALUE obj, ID mid, int argc, const VALUE *argv,</div><div class='del'>-		     rb_block_call_func_t bl_proc, int min_argc, int max_argc,</div><div class='del'>-		     VALUE data2);</div><div class='del'>-</div><div class='del'>-/* vm_insnhelper.c */</div><div class='del'>-VALUE rb_equal_opt(VALUE obj1, VALUE obj2);</div><div class='del'>-VALUE rb_eql_opt(VALUE obj1, VALUE obj2);</div><div class='del'>-void Init_vm_stack_canary(void);</div><div class='del'>-</div><div class='del'>-/* vm_method.c */</div><div class='del'>-void Init_eval_method(void);</div><div class='del'>-int rb_method_defined_by(VALUE obj, ID mid, VALUE (*cfunc)(ANYARGS));</div><div class='ctx'> </div><div class='del'>-/* miniprelude.c, prelude.c */</div><div class='del'>-void Init_prelude(void);</div><div class='add'>+// show obj data structure without any side-effect</div><div class='add'>+#define rp(obj) rb_obj_info_dump_loc((VALUE)(obj), __FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING)</div><div class='ctx'> </div><div class='del'>-/* vm_backtrace.c */</div><div class='del'>-void Init_vm_backtrace(void);</div><div class='del'>-VALUE rb_vm_thread_backtrace(int argc, const VALUE *argv, VALUE thval);</div><div class='del'>-VALUE rb_vm_thread_backtrace_locations(int argc, const VALUE *argv, VALUE thval);</div><div class='del'>-</div><div class='del'>-VALUE rb_make_backtrace(void);</div><div class='del'>-void rb_backtrace_print_as_bugreport(void);</div><div class='del'>-int rb_backtrace_p(VALUE obj);</div><div class='del'>-VALUE rb_backtrace_to_str_ary(VALUE obj);</div><div class='del'>-VALUE rb_backtrace_to_location_ary(VALUE obj);</div><div class='del'>-void rb_backtrace_each(VALUE (*iter)(VALUE recv, VALUE str), VALUE output);</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_BEGIN</div><div class='del'>-const char *rb_objspace_data_type_name(VALUE obj);</div><div class='del'>-</div><div class='del'>-/* Temporary.  This API will be removed (renamed). */</div><div class='del'>-VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd);</div><div class='del'>-</div><div class='del'>-/* array.c (export) */</div><div class='del'>-void rb_ary_detransient(VALUE a);</div><div class='del'>-VALUE *rb_ary_ptr_use_start(VALUE ary);</div><div class='del'>-void rb_ary_ptr_use_end(VALUE ary);</div><div class='del'>-</div><div class='del'>-/* bignum.c (export) */</div><div class='del'>-VALUE rb_big_mul_normal(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big_mul_balance(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big_mul_karatsuba(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big_mul_toom3(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big_sq_fast(VALUE x);</div><div class='del'>-VALUE rb_big_divrem_normal(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big2str_poweroftwo(VALUE x, int base);</div><div class='del'>-VALUE rb_big2str_generic(VALUE x, int base);</div><div class='del'>-VALUE rb_str2big_poweroftwo(VALUE arg, int base, int badcheck);</div><div class='del'>-VALUE rb_str2big_normal(VALUE arg, int base, int badcheck);</div><div class='del'>-VALUE rb_str2big_karatsuba(VALUE arg, int base, int badcheck);</div><div class='del'>-#if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='del'>-VALUE rb_big_mul_gmp(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big_divrem_gmp(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_big2str_gmp(VALUE x, int base);</div><div class='del'>-VALUE rb_str2big_gmp(VALUE arg, int base, int badcheck);</div><div class='del'>-#endif</div><div class='del'>-enum rb_int_parse_flags {</div><div class='del'>-    RB_INT_PARSE_SIGN       = 0x01,</div><div class='del'>-    RB_INT_PARSE_UNDERSCORE = 0x02,</div><div class='del'>-    RB_INT_PARSE_PREFIX     = 0x04,</div><div class='del'>-    RB_INT_PARSE_ALL        = 0x07,</div><div class='del'>-    RB_INT_PARSE_DEFAULT    = 0x07</div><div class='del'>-};</div><div class='del'>-VALUE rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits, int base, int flags);</div><div class='del'>-</div><div class='del'>-/* enumerator.c (export) */</div><div class='del'>-VALUE rb_arith_seq_new(VALUE obj, VALUE meth, int argc, VALUE const *argv,</div><div class='del'>-                       rb_enumerator_size_func *size_fn,</div><div class='del'>-                       VALUE beg, VALUE end, VALUE step, int excl);</div><div class='del'>-</div><div class='del'>-/* error.c (export) */</div><div class='del'>-int rb_bug_reporter_add(void (*func)(FILE *, void *), void *data);</div><div class='del'>-NORETURN(void rb_unexpected_type(VALUE,int));</div><div class='del'>-#undef Check_Type</div><div class='del'>-#define Check_Type(v, t) \</div><div class='del'>-    (!RB_TYPE_P((VALUE)(v), (t)) || \</div><div class='del'>-     ((t) == RUBY_T_DATA &amp;&amp; RTYPEDDATA_P(v)) ? \</div><div class='del'>-     rb_unexpected_type((VALUE)(v), (t)) : (void)0)</div><div class='del'>-</div><div class='del'>-static inline int</div><div class='del'>-rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type)</div><div class='del'>-{</div><div class='del'>-    return RB_TYPE_P(obj, T_DATA) &amp;&amp; RTYPEDDATA_P(obj) &amp;&amp; (RTYPEDDATA_TYPE(obj) == data_type);</div><div class='del'>-}</div><div class='del'>-#define rb_typeddata_is_instance_of rb_typeddata_is_instance_of_inline</div><div class='del'>-</div><div class='del'>-/* file.c (export) */</div><div class='del'>-#if defined HAVE_READLINK &amp;&amp; defined RUBY_ENCODING_H</div><div class='del'>-VALUE rb_readlink(VALUE path, rb_encoding *enc);</div><div class='del'>-#endif</div><div class='del'>-#ifdef __APPLE__</div><div class='del'>-VALUE rb_str_normalize_ospath(const char *ptr, long len);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* hash.c (export) */</div><div class='del'>-VALUE rb_hash_delete_entry(VALUE hash, VALUE key);</div><div class='del'>-VALUE rb_ident_hash_new(void);</div><div class='del'>-</div><div class='del'>-/* io.c (export) */</div><div class='del'>-void rb_maygvl_fd_fix_cloexec(int fd);</div><div class='del'>-int rb_gc_for_fd(int err);</div><div class='del'>-void rb_write_error_str(VALUE mesg);</div><div class='del'>-</div><div class='del'>-/* numeric.c (export) */</div><div class='del'>-VALUE rb_int_positive_pow(long x, unsigned long y);</div><div class='del'>-</div><div class='del'>-/* process.c (export) */</div><div class='del'>-int rb_exec_async_signal_safe(const struct rb_execarg *e, char *errmsg, size_t errmsg_buflen);</div><div class='del'>-rb_pid_t rb_fork_async_signal_safe(int *status, int (*chfunc)(void*, char *, size_t), void *charg, VALUE fds, char *errmsg, size_t errmsg_buflen);</div><div class='del'>-VALUE rb_execarg_new(int argc, const VALUE *argv, int accept_shell, int allow_exc_opt);</div><div class='del'>-struct rb_execarg *rb_execarg_get(VALUE execarg_obj); /* dangerous.  needs GC guard. */</div><div class='del'>-int rb_execarg_addopt(VALUE execarg_obj, VALUE key, VALUE val);</div><div class='del'>-void rb_execarg_parent_start(VALUE execarg_obj);</div><div class='del'>-void rb_execarg_parent_end(VALUE execarg_obj);</div><div class='del'>-int rb_execarg_run_options(const struct rb_execarg *e, struct rb_execarg *s, char* errmsg, size_t errmsg_buflen);</div><div class='del'>-VALUE rb_execarg_extract_options(VALUE execarg_obj, VALUE opthash);</div><div class='del'>-void rb_execarg_setenv(VALUE execarg_obj, VALUE env);</div><div class='del'>-</div><div class='del'>-/* rational.c (export) */</div><div class='del'>-VALUE rb_gcd(VALUE x, VALUE y);</div><div class='del'>-VALUE rb_gcd_normal(VALUE self, VALUE other);</div><div class='del'>-#if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='del'>-VALUE rb_gcd_gmp(VALUE x, VALUE y);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* signal.c (export) */</div><div class='del'>-int rb_grantpt(int fd);</div><div class='del'>-</div><div class='del'>-/* string.c (export) */</div><div class='del'>-#ifdef RUBY_ENCODING_H</div><div class='del'>-/* internal use */</div><div class='del'>-VALUE rb_setup_fake_str(struct RString *fake_str, const char *name, long len, rb_encoding *enc);</div><div class='del'>-#endif</div><div class='del'>-VALUE rb_str_upto_each(VALUE, VALUE, int, int (*each)(VALUE, VALUE), VALUE);</div><div class='del'>-VALUE rb_str_upto_endless_each(VALUE, int (*each)(VALUE, VALUE), VALUE);</div><div class='del'>-</div><div class='del'>-/* thread.c (export) */</div><div class='del'>-int ruby_thread_has_gvl_p(void); /* for ext/fiddle/closure.c */</div><div class='del'>-</div><div class='del'>-/* time.c (export) */</div><div class='del'>-void ruby_reset_leap_second_info(void);</div><div class='del'>-</div><div class='del'>-/* util.c (export) */</div><div class='del'>-extern const signed char ruby_digit36_to_number_table[];</div><div class='del'>-extern const char ruby_hexdigits[];</div><div class='del'>-extern unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow);</div><div class='del'>-</div><div class='del'>-/* variable.c (export) */</div><div class='del'>-void rb_mark_generic_ivar(VALUE);</div><div class='del'>-VALUE rb_const_missing(VALUE klass, VALUE name);</div><div class='del'>-int rb_class_ivar_set(VALUE klass, ID vid, VALUE value);</div><div class='del'>-st_table *rb_st_copy(VALUE obj, struct st_table *orig_tbl);</div><div class='del'>-</div><div class='del'>-/* gc.c (export) */</div><div class='del'>-VALUE rb_wb_protected_newobj_of(VALUE, VALUE);</div><div class='del'>-VALUE rb_wb_unprotected_newobj_of(VALUE, VALUE);</div><div class='del'>-</div><div class='del'>-size_t rb_obj_memsize_of(VALUE);</div><div class='del'>-void rb_gc_verify_internal_consistency(void);</div><div class='del'>-</div><div class='del'>-#define RB_OBJ_GC_FLAGS_MAX 5</div><div class='del'>-size_t rb_obj_gc_flags(VALUE, ID[], size_t);</div><div class='del'>-void rb_gc_mark_values(long n, const VALUE *values);</div><div class='del'>-</div><div class='del'>-#if IMEMO_DEBUG</div><div class='del'>-VALUE rb_imemo_new_debug(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0, const char *file, int line);</div><div class='del'>-#define rb_imemo_new(type, v1, v2, v3, v0) rb_imemo_new_debug(type, v1, v2, v3, v0, __FILE__, __LINE__)</div><div class='del'>-#else</div><div class='del'>-VALUE rb_imemo_new(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0);</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* random.c */</div><div class='del'>-int ruby_fill_random_bytes(void *, size_t, int);</div><div class='del'>-</div><div class='del'>-RUBY_SYMBOL_EXPORT_END</div><div class='del'>-</div><div class='del'>-#define RUBY_DTRACE_CREATE_HOOK(name, arg) \</div><div class='del'>-    RUBY_DTRACE_HOOK(name##_CREATE, arg)</div><div class='del'>-#define RUBY_DTRACE_HOOK(name, arg) \</div><div class='del'>-do { \</div><div class='del'>-    if (UNLIKELY(RUBY_DTRACE_##name##_ENABLED())) { \</div><div class='del'>-	int dtrace_line; \</div><div class='del'>-	const char *dtrace_file = rb_source_location_cstr(&amp;dtrace_line); \</div><div class='del'>-	if (!dtrace_file) dtrace_file = ""; \</div><div class='del'>-	RUBY_DTRACE_##name(arg, dtrace_file, dtrace_line); \</div><div class='del'>-    } \</div><div class='add'>+// same as rp, but add message header</div><div class='add'>+#define rp_m(msg, obj) do { \</div><div class='add'>+    fputs((msg), stderr); \</div><div class='add'>+    rb_obj_info_dump((VALUE)(obj)); \</div><div class='ctx'> } while (0)</div><div class='ctx'> </div><div class='del'>-#define RB_OBJ_BUILTIN_TYPE(obj) rb_obj_builtin_type(obj)</div><div class='del'>-#define OBJ_BUILTIN_TYPE(obj) RB_OBJ_BUILTIN_TYPE(obj)</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-#define rb_obj_builtin_type(obj) \</div><div class='del'>-__extension__({ \</div><div class='del'>-    VALUE arg_obj = (obj); \</div><div class='del'>-    RB_SPECIAL_CONST_P(arg_obj) ? -1 : \</div><div class='del'>-	RB_BUILTIN_TYPE(arg_obj); \</div><div class='del'>-    })</div><div class='del'>-#else</div><div class='del'>-static inline int</div><div class='del'>-rb_obj_builtin_type(VALUE obj)</div><div class='del'>-{</div><div class='del'>-    return RB_SPECIAL_CONST_P(obj) ? -1 :</div><div class='del'>-	RB_BUILTIN_TYPE(obj);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/* A macro for defining a flexible array, like: VALUE ary[FLEX_ARY_LEN]; */</div><div class='del'>-#if defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)</div><div class='del'>-# define FLEX_ARY_LEN   /* VALUE ary[]; */</div><div class='del'>-#elif defined(__GNUC__) &amp;&amp; !defined(__STRICT_ANSI__)</div><div class='del'>-# define FLEX_ARY_LEN 0 /* VALUE ary[0]; */</div><div class='del'>-#else</div><div class='del'>-# define FLEX_ARY_LEN 1 /* VALUE ary[1]; */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- * For declaring bitfields out of non-unsigned int types:</div><div class='del'>- *   struct date {</div><div class='del'>- *      BITFIELD(enum months, month, 4);</div><div class='del'>- *      ...</div><div class='del'>- *   };</div><div class='del'>- */</div><div class='del'>-#if defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)</div><div class='del'>-# define BITFIELD(type, name, size) type name : size</div><div class='del'>-#else</div><div class='del'>-# define BITFIELD(type, name, size) unsigned int name : size</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(_MSC_VER)</div><div class='del'>-# define COMPILER_WARNING_PUSH          __pragma(warning(push))</div><div class='del'>-# define COMPILER_WARNING_POP           __pragma(warning(pop))</div><div class='del'>-# define COMPILER_WARNING_ERROR(flag)   __pragma(warning(error: flag)))</div><div class='del'>-# define COMPILER_WARNING_IGNORED(flag) __pragma(warning(suppress: flag)))</div><div class='add'>+// `ruby_debug_breakpoint()` does nothing,</div><div class='add'>+// but breakpoint is set in run.gdb, so `make gdb` can stop here.</div><div class='add'>+#define bp() ruby_debug_breakpoint()</div><div class='ctx'> </div><div class='del'>-#elif defined(__clang__) /* clang 2.6 already had this feature */</div><div class='del'>-# define COMPILER_WARNING_PUSH          _Pragma("clang diagnostic push")</div><div class='del'>-# define COMPILER_WARNING_POP           _Pragma("clang diagnostic pop")</div><div class='del'>-# define COMPILER_WARNING_SPECIFIER(kind, msg) \</div><div class='del'>-    clang diagnostic kind # msg</div><div class='del'>-# define COMPILER_WARNING_ERROR(flag) \</div><div class='del'>-    COMPILER_WARNING_PRAGMA(COMPILER_WARNING_SPECIFIER(error, flag))</div><div class='del'>-# define COMPILER_WARNING_IGNORED(flag) \</div><div class='del'>-    COMPILER_WARNING_PRAGMA(COMPILER_WARNING_SPECIFIER(ignored, flag))</div><div class='add'>+#define RBOOL(v) ((v) ? Qtrue : Qfalse)</div><div class='add'>+#define RB_BIGNUM_TYPE_P(x) RB_TYPE_P((x), T_BIGNUM)</div><div class='ctx'> </div><div class='del'>-#elif GCC_VERSION_SINCE(4, 2, 0)</div><div class='del'>-/* https://gcc.gnu.org/onlinedocs/gcc-4.2.0/gcc/Diagnostic-Pragmas.html */</div><div class='del'>-# define COMPILER_WARNING_PUSH          _Pragma("GCC diagnostic push")</div><div class='del'>-# define COMPILER_WARNING_POP           _Pragma("GCC diagnostic pop")</div><div class='del'>-# define COMPILER_WARNING_SPECIFIER(kind, msg) \</div><div class='del'>-    GCC diagnostic kind # msg</div><div class='del'>-# define COMPILER_WARNING_ERROR(flag) \</div><div class='del'>-    COMPILER_WARNING_PRAGMA(COMPILER_WARNING_SPECIFIER(error, flag))</div><div class='del'>-# define COMPILER_WARNING_IGNORED(flag) \</div><div class='del'>-    COMPILER_WARNING_PRAGMA(COMPILER_WARNING_SPECIFIER(ignored, flag))</div><div class='del'>-</div><div class='del'>-#else /* other compilers to follow? */</div><div class='del'>-# define COMPILER_WARNING_PUSH          /* nop */</div><div class='del'>-# define COMPILER_WARNING_POP           /* nop */</div><div class='del'>-# define COMPILER_WARNING_ERROR(flag)   /* nop */</div><div class='del'>-# define COMPILER_WARNING_IGNORED(flag) /* nop */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#define COMPILER_WARNING_PRAGMA(str) COMPILER_WARNING_PRAGMA_(str)</div><div class='del'>-#define COMPILER_WARNING_PRAGMA_(str) _Pragma(#str)</div><div class='del'>-</div><div class='del'>-#if defined(__cplusplus)</div><div class='del'>-#if 0</div><div class='del'>-{ /* satisfy cc-mode */</div><div class='del'>-#endif</div><div class='del'>-}  /* extern "C" { */</div><div class='add'>+#ifndef __MINGW32__</div><div class='add'>+#undef memcpy</div><div class='add'>+#define memcpy ruby_nonempty_memcpy</div><div class='ctx'> #endif</div><div class='del'>-</div><div class='ctx'> #endif /* RUBY_INTERNAL_H */</div><div class='head'>diff --git a/internal/array.h b/internal/array.h<br/>new file mode 100644<br/>index 0000000000..a0d16dec3f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/array.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/array.h</a></div><div class='hunk'>@@ -0,0 +1,163 @@</div><div class='add'>+#ifndef INTERNAL_ARRAY_H                                 /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_ARRAY_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Array.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stddef.h&gt;                 /* for size_t */</div><div class='add'>+#include "internal/static_assert.h" /* for STATIC_ASSERT */</div><div class='add'>+#include "ruby/internal/stdbool.h"         /* for bool */</div><div class='add'>+#include "ruby/ruby.h"              /* for RARRAY_LEN */</div><div class='add'>+</div><div class='add'>+#ifndef ARRAY_DEBUG</div><div class='add'>+# define ARRAY_DEBUG (0+RUBY_DEBUG)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define RARRAY_SHARED_FLAG      ELTS_SHARED</div><div class='add'>+#define RARRAY_SHARED_ROOT_FLAG FL_USER12</div><div class='add'>+#define RARRAY_PTR_IN_USE_FLAG  FL_USER14</div><div class='add'>+</div><div class='add'>+/* array.c */</div><div class='add'>+VALUE rb_ary_last(int, const VALUE *, VALUE);</div><div class='add'>+void rb_ary_set_len(VALUE, long);</div><div class='add'>+void rb_ary_delete_same(VALUE, VALUE);</div><div class='add'>+VALUE rb_ary_hidden_new_fill(long capa);</div><div class='add'>+VALUE rb_ary_at(VALUE, VALUE);</div><div class='add'>+size_t rb_ary_memsize(VALUE);</div><div class='add'>+VALUE rb_to_array_type(VALUE obj);</div><div class='add'>+VALUE rb_to_array(VALUE obj);</div><div class='add'>+void rb_ary_cancel_sharing(VALUE ary);</div><div class='add'>+size_t rb_ary_size_as_embedded(VALUE ary);</div><div class='add'>+void rb_ary_make_embedded(VALUE ary);</div><div class='add'>+bool rb_ary_embeddable_p(VALUE ary);</div><div class='add'>+VALUE rb_ary_diff(VALUE ary1, VALUE ary2);</div><div class='add'>+</div><div class='add'>+static inline VALUE rb_ary_entry_internal(VALUE ary, long offset);</div><div class='add'>+static inline bool ARY_PTR_USING_P(VALUE ary);</div><div class='add'>+static inline void RARY_TRANSIENT_SET(VALUE ary);</div><div class='add'>+static inline void RARY_TRANSIENT_UNSET(VALUE ary);</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+VALUE rb_ary_tmp_new_from_values(VALUE, long, const VALUE *);</div><div class='add'>+VALUE rb_check_to_array(VALUE ary);</div><div class='add'>+VALUE rb_ary_behead(VALUE, long);</div><div class='add'>+VALUE rb_ary_aref1(VALUE ary, VALUE i);</div><div class='add'>+</div><div class='add'>+struct rb_execution_context_struct;</div><div class='add'>+VALUE rb_ec_ary_new_from_values(struct rb_execution_context_struct *ec, long n, const VALUE *elts);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+// YJIT needs this function to never allocate and never raise</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_ary_entry_internal(VALUE ary, long offset)</div><div class='add'>+{</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    const VALUE *ptr = RARRAY_CONST_PTR_TRANSIENT(ary);</div><div class='add'>+    if (len == 0) return Qnil;</div><div class='add'>+    if (offset &lt; 0) {</div><div class='add'>+        offset += len;</div><div class='add'>+        if (offset &lt; 0) return Qnil;</div><div class='add'>+    }</div><div class='add'>+    else if (len &lt;= offset) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+    return ptr[offset];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+ARY_PTR_USING_P(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return FL_TEST_RAW(ary, RARRAY_PTR_IN_USE_FLAG);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+RBIMPL_ATTR_MAYBE_UNUSED()</div><div class='add'>+static inline int</div><div class='add'>+ary_should_not_be_shared_and_embedded(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return !FL_ALL_RAW(ary, RARRAY_SHARED_FLAG|RARRAY_EMBED_FLAG);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+ARY_SHARED_P(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    assert(RB_TYPE_P(ary, T_ARRAY));</div><div class='add'>+    assert(ary_should_not_be_shared_and_embedded(ary));</div><div class='add'>+    return FL_TEST_RAW(ary, RARRAY_SHARED_FLAG);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+ARY_EMBED_P(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    assert(RB_TYPE_P(ary, T_ARRAY));</div><div class='add'>+    assert(ary_should_not_be_shared_and_embedded(ary));</div><div class='add'>+    return FL_TEST_RAW(ary, RARRAY_EMBED_FLAG);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+ARY_SHARED_ROOT(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    assert(ARY_SHARED_P(ary));</div><div class='add'>+    return RARRAY(ary)-&gt;as.heap.aux.shared_root;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+ARY_SHARED_ROOT_P(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    assert(RB_TYPE_P(ary, T_ARRAY));</div><div class='add'>+    return FL_TEST_RAW(ary, RARRAY_SHARED_ROOT_FLAG);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline long</div><div class='add'>+ARY_SHARED_ROOT_REFCNT(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    assert(ARY_SHARED_ROOT_P(ary));</div><div class='add'>+    return RARRAY(ary)-&gt;as.heap.aux.capa;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RARY_TRANSIENT_SET(VALUE ary)</div><div class='add'>+{</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    FL_SET_RAW(ary, RARRAY_TRANSIENT_FLAG);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RARY_TRANSIENT_UNSET(VALUE ary)</div><div class='add'>+{</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    FL_UNSET_RAW(ary, RARRAY_TRANSIENT_FLAG);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#undef rb_ary_new_from_args</div><div class='add'>+#if RBIMPL_HAS_WARNING("-Wgnu-zero-variadic-macro-arguments")</div><div class='add'>+# /* Skip it; clang -pedantic doesn't like the following */</div><div class='add'>+#elif defined(__GNUC__) &amp;&amp; defined(HAVE_VA_ARGS_MACRO)</div><div class='add'>+#define rb_ary_new_from_args(n, ...) \</div><div class='add'>+    __extension__ ({ \</div><div class='add'>+        const VALUE args_to_new_ary[] = {__VA_ARGS__}; \</div><div class='add'>+        if (__builtin_constant_p(n)) { \</div><div class='add'>+            STATIC_ASSERT(rb_ary_new_from_args, numberof(args_to_new_ary) == (n)); \</div><div class='add'>+        } \</div><div class='add'>+        rb_ary_new_from_values(numberof(args_to_new_ary), args_to_new_ary); \</div><div class='add'>+    })</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef RARRAY_AREF</div><div class='add'>+RBIMPL_ATTR_PURE_UNLESS_DEBUG()</div><div class='add'>+RBIMPL_ATTR_ARTIFICIAL()</div><div class='add'>+static inline VALUE</div><div class='add'>+RARRAY_AREF(VALUE ary, long i)</div><div class='add'>+{</div><div class='add'>+    RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY);</div><div class='add'>+</div><div class='add'>+    return RARRAY_CONST_PTR_TRANSIENT(ary)[i];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_ARRAY_H */</div><div class='head'>diff --git a/internal/basic_operators.h b/internal/basic_operators.h<br/>new file mode 100644<br/>index 0000000000..2cd9f50073<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/basic_operators.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/basic_operators.h</a></div><div class='hunk'>@@ -0,0 +1,64 @@</div><div class='add'>+#ifndef INTERNAL_BOP_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_BOP_H</div><div class='add'>+</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "ruby/internal/dllexport.h"</div><div class='add'>+</div><div class='add'>+enum ruby_basic_operators {</div><div class='add'>+    BOP_PLUS,</div><div class='add'>+    BOP_MINUS,</div><div class='add'>+    BOP_MULT,</div><div class='add'>+    BOP_DIV,</div><div class='add'>+    BOP_MOD,</div><div class='add'>+    BOP_EQ,</div><div class='add'>+    BOP_EQQ,</div><div class='add'>+    BOP_LT,</div><div class='add'>+    BOP_LE,</div><div class='add'>+    BOP_LTLT,</div><div class='add'>+    BOP_AREF,</div><div class='add'>+    BOP_ASET,</div><div class='add'>+    BOP_LENGTH,</div><div class='add'>+    BOP_SIZE,</div><div class='add'>+    BOP_EMPTY_P,</div><div class='add'>+    BOP_NIL_P,</div><div class='add'>+    BOP_SUCC,</div><div class='add'>+    BOP_GT,</div><div class='add'>+    BOP_GE,</div><div class='add'>+    BOP_NOT,</div><div class='add'>+    BOP_NEQ,</div><div class='add'>+    BOP_MATCH,</div><div class='add'>+    BOP_FREEZE,</div><div class='add'>+    BOP_UMINUS,</div><div class='add'>+    BOP_MAX,</div><div class='add'>+    BOP_MIN,</div><div class='add'>+    BOP_CALL,</div><div class='add'>+    BOP_AND,</div><div class='add'>+    BOP_OR,</div><div class='add'>+    BOP_CMP,</div><div class='add'>+    BOP_DEFAULT,</div><div class='add'>+</div><div class='add'>+    BOP_LAST_</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+RUBY_EXTERN short ruby_vm_redefined_flag[BOP_LAST_];</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+/* optimize insn */</div><div class='add'>+#define INTEGER_REDEFINED_OP_FLAG (1 &lt;&lt; 0)</div><div class='add'>+#define FLOAT_REDEFINED_OP_FLAG  (1 &lt;&lt; 1)</div><div class='add'>+#define STRING_REDEFINED_OP_FLAG (1 &lt;&lt; 2)</div><div class='add'>+#define ARRAY_REDEFINED_OP_FLAG  (1 &lt;&lt; 3)</div><div class='add'>+#define HASH_REDEFINED_OP_FLAG   (1 &lt;&lt; 4)</div><div class='add'>+/* #define BIGNUM_REDEFINED_OP_FLAG (1 &lt;&lt; 5) */</div><div class='add'>+#define SYMBOL_REDEFINED_OP_FLAG (1 &lt;&lt; 6)</div><div class='add'>+#define TIME_REDEFINED_OP_FLAG   (1 &lt;&lt; 7)</div><div class='add'>+#define REGEXP_REDEFINED_OP_FLAG (1 &lt;&lt; 8)</div><div class='add'>+#define NIL_REDEFINED_OP_FLAG    (1 &lt;&lt; 9)</div><div class='add'>+#define TRUE_REDEFINED_OP_FLAG   (1 &lt;&lt; 10)</div><div class='add'>+#define FALSE_REDEFINED_OP_FLAG  (1 &lt;&lt; 11)</div><div class='add'>+#define PROC_REDEFINED_OP_FLAG   (1 &lt;&lt; 12)</div><div class='add'>+</div><div class='add'>+#define BASIC_OP_UNREDEFINED_P(op, klass) (LIKELY((ruby_vm_redefined_flag[(op)]&amp;(klass)) == 0))</div><div class='add'>+</div><div class='add'>+#endif</div><div class='head'>diff --git a/internal/bignum.h b/internal/bignum.h<br/>new file mode 100644<br/>index 0000000000..5cd35ede8a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/bignum.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/bignum.h</a></div><div class='hunk'>@@ -0,0 +1,246 @@</div><div class='add'>+#ifndef INTERNAL_BIGNUM_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_BIGNUM_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Bignums.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"      /* for HAVE_LIBGMP */</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SYS_TYPES_H</div><div class='add'>+# include &lt;sys/types.h&gt;         /* for ssize_t (note: on Windows ssize_t is */</div><div class='add'>+#endif                          /* `#define`d in ruby/config.h) */</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/stdbool.h"     /* for bool */</div><div class='add'>+#include "ruby/ruby.h"          /* for struct RBasic */</div><div class='add'>+</div><div class='add'>+#ifndef BDIGIT</div><div class='add'>+# if SIZEOF_INT*2 &lt;= SIZEOF_LONG_LONG</div><div class='add'>+#  define BDIGIT unsigned int</div><div class='add'>+#  define SIZEOF_BDIGIT SIZEOF_INT</div><div class='add'>+#  define BDIGIT_DBL unsigned LONG_LONG</div><div class='add'>+#  define BDIGIT_DBL_SIGNED LONG_LONG</div><div class='add'>+#  define PRI_BDIGIT_PREFIX ""</div><div class='add'>+#  define PRI_BDIGIT_DBL_PREFIX PRI_LL_PREFIX</div><div class='add'>+# elif SIZEOF_INT*2 &lt;= SIZEOF_LONG</div><div class='add'>+#  define BDIGIT unsigned int</div><div class='add'>+#  define SIZEOF_BDIGIT SIZEOF_INT</div><div class='add'>+#  define BDIGIT_DBL unsigned long</div><div class='add'>+#  define BDIGIT_DBL_SIGNED long</div><div class='add'>+#  define PRI_BDIGIT_PREFIX ""</div><div class='add'>+#  define PRI_BDIGIT_DBL_PREFIX "l"</div><div class='add'>+# elif SIZEOF_SHORT*2 &lt;= SIZEOF_LONG</div><div class='add'>+#  define BDIGIT unsigned short</div><div class='add'>+#  define SIZEOF_BDIGIT SIZEOF_SHORT</div><div class='add'>+#  define BDIGIT_DBL unsigned long</div><div class='add'>+#  define BDIGIT_DBL_SIGNED long</div><div class='add'>+#  define PRI_BDIGIT_PREFIX "h"</div><div class='add'>+#  define PRI_BDIGIT_DBL_PREFIX "l"</div><div class='add'>+# else</div><div class='add'>+#  define BDIGIT unsigned short</div><div class='add'>+#  define SIZEOF_BDIGIT (SIZEOF_LONG/2)</div><div class='add'>+#  define SIZEOF_ACTUAL_BDIGIT SIZEOF_LONG</div><div class='add'>+#  define BDIGIT_DBL unsigned long</div><div class='add'>+#  define BDIGIT_DBL_SIGNED long</div><div class='add'>+#  define PRI_BDIGIT_PREFIX "h"</div><div class='add'>+#  define PRI_BDIGIT_DBL_PREFIX "l"</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef SIZEOF_ACTUAL_BDIGIT</div><div class='add'>+# define SIZEOF_ACTUAL_BDIGIT SIZEOF_BDIGIT</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef PRI_BDIGIT_PREFIX</div><div class='add'>+# define PRIdBDIGIT PRI_BDIGIT_PREFIX"d"</div><div class='add'>+# define PRIiBDIGIT PRI_BDIGIT_PREFIX"i"</div><div class='add'>+# define PRIoBDIGIT PRI_BDIGIT_PREFIX"o"</div><div class='add'>+# define PRIuBDIGIT PRI_BDIGIT_PREFIX"u"</div><div class='add'>+# define PRIxBDIGIT PRI_BDIGIT_PREFIX"x"</div><div class='add'>+# define PRIXBDIGIT PRI_BDIGIT_PREFIX"X"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef PRI_BDIGIT_DBL_PREFIX</div><div class='add'>+# define PRIdBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"d"</div><div class='add'>+# define PRIiBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"i"</div><div class='add'>+# define PRIoBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"o"</div><div class='add'>+# define PRIuBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"u"</div><div class='add'>+# define PRIxBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"x"</div><div class='add'>+# define PRIXBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"X"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define RBIGNUM(obj) ((struct RBignum *)(obj))</div><div class='add'>+#define BIGNUM_SIGN_BIT FL_USER1</div><div class='add'>+#define BIGNUM_EMBED_FLAG ((VALUE)FL_USER2)</div><div class='add'>+#define BIGNUM_EMBED_LEN_NUMBITS 3</div><div class='add'>+#define BIGNUM_EMBED_LEN_MASK \</div><div class='add'>+    (~(~(VALUE)0U &lt;&lt; BIGNUM_EMBED_LEN_NUMBITS) &lt;&lt; BIGNUM_EMBED_LEN_SHIFT)</div><div class='add'>+#define BIGNUM_EMBED_LEN_SHIFT \</div><div class='add'>+    (FL_USHIFT+3) /* bit offset of BIGNUM_EMBED_LEN_MASK */</div><div class='add'>+#ifndef BIGNUM_EMBED_LEN_MAX</div><div class='add'>+# if (SIZEOF_VALUE*RBIMPL_RVALUE_EMBED_LEN_MAX/SIZEOF_ACTUAL_BDIGIT) &lt; (1 &lt;&lt; BIGNUM_EMBED_LEN_NUMBITS)-1</div><div class='add'>+#  define BIGNUM_EMBED_LEN_MAX (SIZEOF_VALUE*RBIMPL_RVALUE_EMBED_LEN_MAX/SIZEOF_ACTUAL_BDIGIT)</div><div class='add'>+# else</div><div class='add'>+#  define BIGNUM_EMBED_LEN_MAX ((1 &lt;&lt; BIGNUM_EMBED_LEN_NUMBITS)-1)</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+enum rb_int_parse_flags {</div><div class='add'>+    RB_INT_PARSE_SIGN       = 0x01,</div><div class='add'>+    RB_INT_PARSE_UNDERSCORE = 0x02,</div><div class='add'>+    RB_INT_PARSE_PREFIX     = 0x04,</div><div class='add'>+    RB_INT_PARSE_ALL        = 0x07,</div><div class='add'>+    RB_INT_PARSE_DEFAULT    = 0x07,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct RBignum {</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+    union {</div><div class='add'>+        struct {</div><div class='add'>+            size_t len;</div><div class='add'>+            BDIGIT *digits;</div><div class='add'>+        } heap;</div><div class='add'>+        BDIGIT ary[BIGNUM_EMBED_LEN_MAX];</div><div class='add'>+    } as;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* bignum.c */</div><div class='add'>+extern const char ruby_digitmap[];</div><div class='add'>+double rb_big_fdiv_double(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big_uminus(VALUE x);</div><div class='add'>+VALUE rb_big_hash(VALUE);</div><div class='add'>+VALUE rb_big_odd_p(VALUE);</div><div class='add'>+VALUE rb_big_even_p(VALUE);</div><div class='add'>+size_t rb_big_size(VALUE);</div><div class='add'>+VALUE rb_integer_float_cmp(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_integer_float_eq(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_str_convert_to_inum(VALUE str, int base, int badcheck, int raise_exception);</div><div class='add'>+VALUE rb_big_comp(VALUE x);</div><div class='add'>+VALUE rb_big_aref(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big_abs(VALUE x);</div><div class='add'>+VALUE rb_big_size_m(VALUE big);</div><div class='add'>+VALUE rb_big_bit_length(VALUE big);</div><div class='add'>+VALUE rb_big_remainder(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big_gt(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big_ge(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big_lt(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big_le(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_powm(int const argc, VALUE * const argv, VALUE const num);</div><div class='add'>+VALUE rb_big_isqrt(VALUE n);</div><div class='add'>+static inline bool BIGNUM_SIGN(VALUE b);</div><div class='add'>+static inline bool BIGNUM_POSITIVE_P(VALUE b);</div><div class='add'>+static inline bool BIGNUM_NEGATIVE_P(VALUE b);</div><div class='add'>+static inline void BIGNUM_SET_SIGN(VALUE b, bool sign);</div><div class='add'>+static inline void BIGNUM_NEGATE(VALUE b);</div><div class='add'>+static inline size_t BIGNUM_LEN(VALUE b);</div><div class='add'>+static inline BDIGIT *BIGNUM_DIGITS(VALUE b);</div><div class='add'>+static inline int BIGNUM_LENINT(VALUE b);</div><div class='add'>+static inline bool BIGNUM_EMBED_P(VALUE b);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* bignum.c (export) */</div><div class='add'>+VALUE rb_big_mul_normal(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big_mul_balance(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big_mul_karatsuba(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big_mul_toom3(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big_sq_fast(VALUE x);</div><div class='add'>+VALUE rb_big_divrem_normal(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big2str_poweroftwo(VALUE x, int base);</div><div class='add'>+VALUE rb_big2str_generic(VALUE x, int base);</div><div class='add'>+VALUE rb_str2big_poweroftwo(VALUE arg, int base, int badcheck);</div><div class='add'>+VALUE rb_str2big_normal(VALUE arg, int base, int badcheck);</div><div class='add'>+VALUE rb_str2big_karatsuba(VALUE arg, int base, int badcheck);</div><div class='add'>+#if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='add'>+VALUE rb_big_mul_gmp(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big_divrem_gmp(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_big2str_gmp(VALUE x, int base);</div><div class='add'>+VALUE rb_str2big_gmp(VALUE arg, int base, int badcheck);</div><div class='add'>+#endif</div><div class='add'>+VALUE rb_int_parse_cstr(const char *str, ssize_t len, char **endp, size_t *ndigits, int base, int flags);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+#if defined(HAVE_INT128_T)</div><div class='add'>+VALUE rb_int128t2big(int128_t n);</div><div class='add'>+#endif</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+/* sign: positive:1, negative:0 */</div><div class='add'>+static inline bool</div><div class='add'>+BIGNUM_SIGN(VALUE b)</div><div class='add'>+{</div><div class='add'>+    return FL_TEST_RAW(b, BIGNUM_SIGN_BIT);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+BIGNUM_POSITIVE_P(VALUE b)</div><div class='add'>+{</div><div class='add'>+    return BIGNUM_SIGN(b);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+BIGNUM_NEGATIVE_P(VALUE b)</div><div class='add'>+{</div><div class='add'>+    return ! BIGNUM_POSITIVE_P(b);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+BIGNUM_SET_SIGN(VALUE b, bool sign)</div><div class='add'>+{</div><div class='add'>+    if (sign) {</div><div class='add'>+        FL_SET_RAW(b, BIGNUM_SIGN_BIT);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        FL_UNSET_RAW(b, BIGNUM_SIGN_BIT);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+BIGNUM_NEGATE(VALUE b)</div><div class='add'>+{</div><div class='add'>+    FL_REVERSE_RAW(b, BIGNUM_SIGN_BIT);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+BIGNUM_LEN(VALUE b)</div><div class='add'>+{</div><div class='add'>+    if (! BIGNUM_EMBED_P(b)) {</div><div class='add'>+        return RBIGNUM(b)-&gt;as.heap.len;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        size_t ret = RBASIC(b)-&gt;flags;</div><div class='add'>+        ret &amp;= BIGNUM_EMBED_LEN_MASK;</div><div class='add'>+        ret &gt;&gt;= BIGNUM_EMBED_LEN_SHIFT;</div><div class='add'>+        return ret;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+BIGNUM_LENINT(VALUE b)</div><div class='add'>+{</div><div class='add'>+    return rb_long2int(BIGNUM_LEN(b));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* LSB:BIGNUM_DIGITS(b)[0], MSB:BIGNUM_DIGITS(b)[BIGNUM_LEN(b)-1] */</div><div class='add'>+static inline BDIGIT *</div><div class='add'>+BIGNUM_DIGITS(VALUE b)</div><div class='add'>+{</div><div class='add'>+    if (BIGNUM_EMBED_P(b)) {</div><div class='add'>+        return RBIGNUM(b)-&gt;as.ary;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RBIGNUM(b)-&gt;as.heap.digits;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+BIGNUM_EMBED_P(VALUE b)</div><div class='add'>+{</div><div class='add'>+    return FL_TEST_RAW(b, BIGNUM_EMBED_FLAG);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_BIGNUM_H */</div><div class='head'>diff --git a/internal/bits.h b/internal/bits.h<br/>new file mode 100644<br/>index 0000000000..2602ff7a31<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/bits.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/bits.h</a></div><div class='hunk'>@@ -0,0 +1,565 @@</div><div class='add'>+#ifndef INTERNAL_BITS_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_BITS_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for bitwise integer algorithms.</div><div class='add'>+ * @see        Henry S. Warren Jr., "Hacker's Delight" (2nd ed.), 2013.</div><div class='add'>+ * @see        SEI CERT C Coding Standard  INT32-C.  "Ensure that operations on</div><div class='add'>+ *             signed integers do not result in overflow"</div><div class='add'>+ * @see        https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html</div><div class='add'>+ * @see        https://clang.llvm.org/docs/LanguageExtensions.html#builtin-rotateleft</div><div class='add'>+ * @see        https://clang.llvm.org/docs/LanguageExtensions.html#builtin-rotateright</div><div class='add'>+ * @see        https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/byteswap-uint64-byteswap-ulong-byteswap-ushort</div><div class='add'>+ * @see        https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/rotl-rotl64-rotr-rotr64</div><div class='add'>+ * @see        https://docs.microsoft.com/en-us/cpp/intrinsics/bitscanforward-bitscanforward64</div><div class='add'>+ * @see        https://docs.microsoft.com/en-us/cpp/intrinsics/bitscanreverse-bitscanreverse64</div><div class='add'>+ * @see        https://docs.microsoft.com/en-us/cpp/intrinsics/lzcnt16-lzcnt-lzcnt64</div><div class='add'>+ * @see        https://docs.microsoft.com/en-us/cpp/intrinsics/popcnt16-popcnt-popcnt64</div><div class='add'>+ * @see        https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_lzcnt_u32</div><div class='add'>+ * @see        https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_tzcnt_u32</div><div class='add'>+ * @see        https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_rotl64</div><div class='add'>+ * @see        https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_rotr64</div><div class='add'>+ * @see        https://stackoverflow.com/a/776523</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;limits.h&gt;             /* for CHAR_BITS */</div><div class='add'>+#include &lt;stdint.h&gt;             /* for uintptr_t */</div><div class='add'>+#include "internal/compilers.h" /* for MSC_VERSION_SINCE */</div><div class='add'>+</div><div class='add'>+#if MSC_VERSION_SINCE(1310)</div><div class='add'>+# include &lt;stdlib.h&gt;            /* for _byteswap_uint64 */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(HAVE_X86INTRIN_H) &amp;&amp; ! defined(MJIT_HEADER)</div><div class='add'>+# /* Rule out MJIT_HEADER, which does not interface well with &lt;immintrin.h&gt; */</div><div class='add'>+# include &lt;x86intrin.h&gt;         /* for _lzcnt_u64 */</div><div class='add'>+#elif MSC_VERSION_SINCE(1310)</div><div class='add'>+# include &lt;intrin.h&gt;            /* for the following intrinsics */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(_MSC_VER) &amp;&amp; defined(__AVX__)</div><div class='add'>+# pragma intrinsic(__popcnt)</div><div class='add'>+# pragma intrinsic(__popcnt64)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(_MSC_VER) &amp;&amp; defined(__AVX2__)</div><div class='add'>+# pragma intrinsic(__lzcnt)</div><div class='add'>+# pragma intrinsic(__lzcnt64)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if MSC_VERSION_SINCE(1310)</div><div class='add'>+# pragma intrinsic(_rotl)</div><div class='add'>+# pragma intrinsic(_rotr)</div><div class='add'>+# ifdef _WIN64</div><div class='add'>+#  pragma intrinsic(_rotl64)</div><div class='add'>+#  pragma intrinsic(_rotr64)</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if MSC_VERSION_SINCE(1400)</div><div class='add'>+# pragma intrinsic(_BitScanForward)</div><div class='add'>+# pragma intrinsic(_BitScanReverse)</div><div class='add'>+# ifdef _WIN64</div><div class='add'>+#  pragma intrinsic(_BitScanForward64)</div><div class='add'>+#  pragma intrinsic(_BitScanReverse64)</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/ruby.h"              /* for VALUE */</div><div class='add'>+#include "internal/static_assert.h" /* for STATIC_ASSERT */</div><div class='add'>+</div><div class='add'>+/* The most significant bit of the lower part of half-long integer.</div><div class='add'>+ * If sizeof(long) == 4, this is 0x8000.</div><div class='add'>+ * If sizeof(long) == 8, this is 0x80000000.</div><div class='add'>+ */</div><div class='add'>+#define HALF_LONG_MSB ((SIGNED_VALUE)1&lt;&lt;((SIZEOF_LONG*CHAR_BIT-1)/2))</div><div class='add'>+</div><div class='add'>+#define SIGNED_INTEGER_TYPE_P(T) (0 &gt; ((T)0)-1)</div><div class='add'>+</div><div class='add'>+#define SIGNED_INTEGER_MIN(T)                           \</div><div class='add'>+    ((sizeof(T) == sizeof(int8_t))  ? ((T)INT8_MIN)  :  \</div><div class='add'>+    ((sizeof(T) == sizeof(int16_t)) ? ((T)INT16_MIN) :  \</div><div class='add'>+    ((sizeof(T) == sizeof(int32_t)) ? ((T)INT32_MIN) :  \</div><div class='add'>+    ((sizeof(T) == sizeof(int64_t)) ? ((T)INT64_MIN) :  \</div><div class='add'>+     0))))</div><div class='add'>+</div><div class='add'>+#define SIGNED_INTEGER_MAX(T) ((T)(SIGNED_INTEGER_MIN(T) ^ ((T)~(T)0)))</div><div class='add'>+</div><div class='add'>+#define UNSIGNED_INTEGER_MAX(T) ((T)~(T)0)</div><div class='add'>+</div><div class='add'>+#if __has_builtin(__builtin_mul_overflow_p)</div><div class='add'>+# define MUL_OVERFLOW_P(a, b) \</div><div class='add'>+    __builtin_mul_overflow_p((a), (b), (__typeof__(a * b))0)</div><div class='add'>+#elif __has_builtin(__builtin_mul_overflow)</div><div class='add'>+# define MUL_OVERFLOW_P(a, b) \</div><div class='add'>+    __extension__ ({ __typeof__(a) c; __builtin_mul_overflow((a), (b), &amp;c); })</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, min, max) ( \</div><div class='add'>+    (a) == 0 ? 0 : \</div><div class='add'>+    (a) == -1 ? (b) &lt; -(max) : \</div><div class='add'>+    (a) &gt; 0 ? \</div><div class='add'>+      ((b) &gt; 0 ? (max) / (a) &lt; (b) : (min) / (a) &gt; (b)) : \</div><div class='add'>+      ((b) &gt; 0 ? (min) / (a) &lt; (b) : (max) / (a) &gt; (b)))</div><div class='add'>+</div><div class='add'>+#if __has_builtin(__builtin_mul_overflow_p)</div><div class='add'>+/* __builtin_mul_overflow_p can take bitfield */</div><div class='add'>+/* and GCC permits bitfields for integers other than int */</div><div class='add'>+# define MUL_OVERFLOW_FIXNUM_P(a, b) \</div><div class='add'>+    __extension__ ({ \</div><div class='add'>+        struct { long fixnum : sizeof(long) * CHAR_BIT - 1; } c = { 0 }; \</div><div class='add'>+        __builtin_mul_overflow_p((a), (b), c.fixnum); \</div><div class='add'>+    })</div><div class='add'>+#else</div><div class='add'>+# define MUL_OVERFLOW_FIXNUM_P(a, b) \</div><div class='add'>+    MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, FIXNUM_MIN, FIXNUM_MAX)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef MUL_OVERFLOW_P</div><div class='add'>+# define MUL_OVERFLOW_LONG_LONG_P(a, b) MUL_OVERFLOW_P(a, b)</div><div class='add'>+# define MUL_OVERFLOW_LONG_P(a, b)      MUL_OVERFLOW_P(a, b)</div><div class='add'>+# define MUL_OVERFLOW_INT_P(a, b)       MUL_OVERFLOW_P(a, b)</div><div class='add'>+#else</div><div class='add'>+# define MUL_OVERFLOW_LONG_LONG_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, LLONG_MIN, LLONG_MAX)</div><div class='add'>+# define MUL_OVERFLOW_LONG_P(a, b)      MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, LONG_MIN, LONG_MAX)</div><div class='add'>+# define MUL_OVERFLOW_INT_P(a, b)       MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, INT_MIN, INT_MAX)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_UINT128_T</div><div class='add'>+# define bit_length(x) \</div><div class='add'>+    (unsigned int) \</div><div class='add'>+    (sizeof(x) &lt;= sizeof(int32_t) ? 32 - nlz_int32((uint32_t)(x)) : \</div><div class='add'>+     sizeof(x) &lt;= sizeof(int64_t) ? 64 - nlz_int64((uint64_t)(x)) : \</div><div class='add'>+                                   128 - nlz_int128((uint128_t)(x)))</div><div class='add'>+#else</div><div class='add'>+# define bit_length(x) \</div><div class='add'>+    (unsigned int) \</div><div class='add'>+    (sizeof(x) &lt;= sizeof(int32_t) ? 32 - nlz_int32((uint32_t)(x)) : \</div><div class='add'>+                                    64 - nlz_int64((uint64_t)(x)))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef swap16</div><div class='add'>+# define swap16 ruby_swap16</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef swap32</div><div class='add'>+# define swap32 ruby_swap32</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef swap64</div><div class='add'>+# define swap64 ruby_swap64</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static inline uint16_t ruby_swap16(uint16_t);</div><div class='add'>+static inline uint32_t ruby_swap32(uint32_t);</div><div class='add'>+static inline uint64_t ruby_swap64(uint64_t);</div><div class='add'>+static inline unsigned nlz_int(unsigned x);</div><div class='add'>+static inline unsigned nlz_long(unsigned long x);</div><div class='add'>+static inline unsigned nlz_long_long(unsigned long long x);</div><div class='add'>+static inline unsigned nlz_intptr(uintptr_t x);</div><div class='add'>+static inline unsigned nlz_int32(uint32_t x);</div><div class='add'>+static inline unsigned nlz_int64(uint64_t x);</div><div class='add'>+#ifdef HAVE_UINT128_T</div><div class='add'>+static inline unsigned nlz_int128(uint128_t x);</div><div class='add'>+#endif</div><div class='add'>+static inline unsigned rb_popcount32(uint32_t x);</div><div class='add'>+static inline unsigned rb_popcount64(uint64_t x);</div><div class='add'>+static inline unsigned rb_popcount_intptr(uintptr_t x);</div><div class='add'>+static inline int ntz_int32(uint32_t x);</div><div class='add'>+static inline int ntz_int64(uint64_t x);</div><div class='add'>+static inline int ntz_intptr(uintptr_t x);</div><div class='add'>+static inline VALUE RUBY_BIT_ROTL(VALUE, int);</div><div class='add'>+static inline VALUE RUBY_BIT_ROTR(VALUE, int);</div><div class='add'>+</div><div class='add'>+static inline uint16_t</div><div class='add'>+ruby_swap16(uint16_t x)</div><div class='add'>+{</div><div class='add'>+#if __has_builtin(__builtin_bswap16)</div><div class='add'>+    return __builtin_bswap16(x);</div><div class='add'>+</div><div class='add'>+#elif MSC_VERSION_SINCE(1310)</div><div class='add'>+    return _byteswap_ushort(x);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    return (x &lt;&lt; 8) | (x &gt;&gt; 8);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline uint32_t</div><div class='add'>+ruby_swap32(uint32_t x)</div><div class='add'>+{</div><div class='add'>+#if __has_builtin(__builtin_bswap32)</div><div class='add'>+    return __builtin_bswap32(x);</div><div class='add'>+</div><div class='add'>+#elif MSC_VERSION_SINCE(1310)</div><div class='add'>+    return _byteswap_ulong(x);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    x = ((x &amp; 0x0000FFFF) &lt;&lt; 16) | ((x &amp; 0xFFFF0000) &gt;&gt; 16);</div><div class='add'>+    x = ((x &amp; 0x00FF00FF) &lt;&lt;  8) | ((x &amp; 0xFF00FF00) &gt;&gt;  8);</div><div class='add'>+    return x;</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline uint64_t</div><div class='add'>+ruby_swap64(uint64_t x)</div><div class='add'>+{</div><div class='add'>+#if __has_builtin(__builtin_bswap64)</div><div class='add'>+    return __builtin_bswap64(x);</div><div class='add'>+</div><div class='add'>+#elif MSC_VERSION_SINCE(1310)</div><div class='add'>+    return _byteswap_uint64(x);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    x = ((x &amp; 0x00000000FFFFFFFFULL) &lt;&lt; 32) | ((x &amp; 0xFFFFFFFF00000000ULL) &gt;&gt; 32);</div><div class='add'>+    x = ((x &amp; 0x0000FFFF0000FFFFULL) &lt;&lt; 16) | ((x &amp; 0xFFFF0000FFFF0000ULL) &gt;&gt; 16);</div><div class='add'>+    x = ((x &amp; 0x00FF00FF00FF00FFULL) &lt;&lt;  8) | ((x &amp; 0xFF00FF00FF00FF00ULL) &gt;&gt;  8);</div><div class='add'>+    return x;</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline unsigned int</div><div class='add'>+nlz_int32(uint32_t x)</div><div class='add'>+{</div><div class='add'>+#if defined(_MSC_VER) &amp;&amp; defined(__AVX2__)</div><div class='add'>+    /* Note: It seems there is no such thing like __LZCNT__ predefined in MSVC.</div><div class='add'>+     * AMD  CPUs have  had this  instruction for  decades (since  K10) but  for</div><div class='add'>+     * Intel, Haswell is  the oldest one.  We need to  use __AVX2__ for maximum</div><div class='add'>+     * safety. */</div><div class='add'>+    return (unsigned int)__lzcnt(x);</div><div class='add'>+</div><div class='add'>+#elif defined(__x86_64__) &amp;&amp; defined(__LZCNT__) &amp;&amp; ! defined(MJIT_HEADER)</div><div class='add'>+    return (unsigned int)_lzcnt_u32(x);</div><div class='add'>+</div><div class='add'>+#elif MSC_VERSION_SINCE(1400) /* &amp;&amp;! defined(__AVX2__) */</div><div class='add'>+    unsigned long r;</div><div class='add'>+    return _BitScanReverse(&amp;r, x) ? (31 - (int)r) : 32;</div><div class='add'>+</div><div class='add'>+#elif __has_builtin(__builtin_clz)</div><div class='add'>+    STATIC_ASSERT(sizeof_int, sizeof(int) * CHAR_BIT == 32);</div><div class='add'>+    return x ? (unsigned int)__builtin_clz(x) : 32;</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    uint32_t y;</div><div class='add'>+    unsigned n = 32;</div><div class='add'>+    y = x &gt;&gt; 16; if (y) {n -= 16; x = y;}</div><div class='add'>+    y = x &gt;&gt;  8; if (y) {n -=  8; x = y;}</div><div class='add'>+    y = x &gt;&gt;  4; if (y) {n -=  4; x = y;}</div><div class='add'>+    y = x &gt;&gt;  2; if (y) {n -=  2; x = y;}</div><div class='add'>+    y = x &gt;&gt;  1; if (y) {return n - 2;}</div><div class='add'>+    return (unsigned int)(n - x);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline unsigned int</div><div class='add'>+nlz_int64(uint64_t x)</div><div class='add'>+{</div><div class='add'>+#if defined(_MSC_VER) &amp;&amp; defined(__AVX2__)</div><div class='add'>+    return (unsigned int)__lzcnt64(x);</div><div class='add'>+</div><div class='add'>+#elif defined(__x86_64__) &amp;&amp; defined(__LZCNT__) &amp;&amp; ! defined(MJIT_HEADER)</div><div class='add'>+    return (unsigned int)_lzcnt_u64(x);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN64) &amp;&amp; MSC_VERSION_SINCE(1400) /* &amp;&amp;! defined(__AVX2__) */</div><div class='add'>+    unsigned long r;</div><div class='add'>+    return _BitScanReverse64(&amp;r, x) ? (63u - (unsigned int)r) : 64;</div><div class='add'>+</div><div class='add'>+#elif __has_builtin(__builtin_clzl)</div><div class='add'>+    if (x == 0) {</div><div class='add'>+        return 64;</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(long) * CHAR_BIT == 64) {</div><div class='add'>+        return (unsigned int)__builtin_clzl((unsigned long)x);</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(long long) * CHAR_BIT == 64) {</div><div class='add'>+        return (unsigned int)__builtin_clzll((unsigned long long)x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        /* :FIXME: Is there a way to make this branch a compile-time error? */</div><div class='add'>+        UNREACHABLE_RETURN(~0);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    uint64_t y;</div><div class='add'>+    unsigned int n = 64;</div><div class='add'>+    y = x &gt;&gt; 32; if (y) {n -= 32; x = y;}</div><div class='add'>+    y = x &gt;&gt; 16; if (y) {n -= 16; x = y;}</div><div class='add'>+    y = x &gt;&gt;  8; if (y) {n -=  8; x = y;}</div><div class='add'>+    y = x &gt;&gt;  4; if (y) {n -=  4; x = y;}</div><div class='add'>+    y = x &gt;&gt;  2; if (y) {n -=  2; x = y;}</div><div class='add'>+    y = x &gt;&gt;  1; if (y) {return n - 2;}</div><div class='add'>+    return (unsigned int)(n - x);</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_UINT128_T</div><div class='add'>+static inline unsigned int</div><div class='add'>+nlz_int128(uint128_t x)</div><div class='add'>+{</div><div class='add'>+    uint64_t y = (uint64_t)(x &gt;&gt; 64);</div><div class='add'>+</div><div class='add'>+    if (x == 0) {</div><div class='add'>+        return 128;</div><div class='add'>+    }</div><div class='add'>+    else if (y == 0) {</div><div class='add'>+        return (unsigned int)nlz_int64(x) + 64;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return (unsigned int)nlz_int64(y);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static inline unsigned int</div><div class='add'>+nlz_int(unsigned int x)</div><div class='add'>+{</div><div class='add'>+    if (sizeof(unsigned int) * CHAR_BIT == 32) {</div><div class='add'>+        return nlz_int32((uint32_t)x);</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(unsigned int) * CHAR_BIT == 64) {</div><div class='add'>+        return nlz_int64((uint64_t)x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        UNREACHABLE_RETURN(~0);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline unsigned int</div><div class='add'>+nlz_long(unsigned long x)</div><div class='add'>+{</div><div class='add'>+    if (sizeof(unsigned long) * CHAR_BIT == 32) {</div><div class='add'>+        return nlz_int32((uint32_t)x);</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(unsigned long) * CHAR_BIT == 64) {</div><div class='add'>+        return nlz_int64((uint64_t)x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        UNREACHABLE_RETURN(~0);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline unsigned int</div><div class='add'>+nlz_long_long(unsigned long long x)</div><div class='add'>+{</div><div class='add'>+    if (sizeof(unsigned long long) * CHAR_BIT == 64) {</div><div class='add'>+        return nlz_int64((uint64_t)x);</div><div class='add'>+    }</div><div class='add'>+#ifdef HAVE_UINT128_T</div><div class='add'>+    else if (sizeof(unsigned long long) * CHAR_BIT == 128) {</div><div class='add'>+        return nlz_int128((uint128_t)x);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    else {</div><div class='add'>+        UNREACHABLE_RETURN(~0);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline unsigned int</div><div class='add'>+nlz_intptr(uintptr_t x)</div><div class='add'>+{</div><div class='add'>+    if (sizeof(uintptr_t) == sizeof(unsigned int)) {</div><div class='add'>+        return nlz_int((unsigned int)x);</div><div class='add'>+    }</div><div class='add'>+    if (sizeof(uintptr_t) == sizeof(unsigned long)) {</div><div class='add'>+        return nlz_long((unsigned long)x);</div><div class='add'>+    }</div><div class='add'>+    if (sizeof(uintptr_t) == sizeof(unsigned long long)) {</div><div class='add'>+        return nlz_long_long((unsigned long long)x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        UNREACHABLE_RETURN(~0);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline unsigned int</div><div class='add'>+rb_popcount32(uint32_t x)</div><div class='add'>+{</div><div class='add'>+#if defined(_MSC_VER) &amp;&amp; defined(__AVX__)</div><div class='add'>+    /* Note: CPUs since Nehalem and Barcelona  have had this instruction so SSE</div><div class='add'>+     * 4.2 should suffice, but it seems there is no such thing like __SSE_4_2__</div><div class='add'>+     * predefined macro in MSVC.  They do have __AVX__ so use it instead. */</div><div class='add'>+    return (unsigned int)__popcnt(x);</div><div class='add'>+</div><div class='add'>+#elif __has_builtin(__builtin_popcount)</div><div class='add'>+    STATIC_ASSERT(sizeof_int, sizeof(int) * CHAR_BIT &gt;= 32);</div><div class='add'>+    return (unsigned int)__builtin_popcount(x);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    x = (x &amp; 0x55555555) + (x &gt;&gt; 1 &amp; 0x55555555);</div><div class='add'>+    x = (x &amp; 0x33333333) + (x &gt;&gt; 2 &amp; 0x33333333);</div><div class='add'>+    x = (x &amp; 0x0f0f0f0f) + (x &gt;&gt; 4 &amp; 0x0f0f0f0f);</div><div class='add'>+    x = (x &amp; 0x001f001f) + (x &gt;&gt; 8 &amp; 0x001f001f);</div><div class='add'>+    x = (x &amp; 0x0000003f) + (x &gt;&gt;16 &amp; 0x0000003f);</div><div class='add'>+    return (unsigned int)x;</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline unsigned int</div><div class='add'>+rb_popcount64(uint64_t x)</div><div class='add'>+{</div><div class='add'>+#if defined(_MSC_VER) &amp;&amp; defined(__AVX__)</div><div class='add'>+    return (unsigned int)__popcnt64(x);</div><div class='add'>+</div><div class='add'>+#elif __has_builtin(__builtin_popcount)</div><div class='add'>+    if (sizeof(long) * CHAR_BIT == 64) {</div><div class='add'>+        return (unsigned int)__builtin_popcountl((unsigned long)x);</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(long long) * CHAR_BIT == 64) {</div><div class='add'>+        return (unsigned int)__builtin_popcountll((unsigned long long)x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        /* :FIXME: Is there a way to make this branch a compile-time error? */</div><div class='add'>+        UNREACHABLE_RETURN(~0);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    x = (x &amp; 0x5555555555555555) + (x &gt;&gt; 1 &amp; 0x5555555555555555);</div><div class='add'>+    x = (x &amp; 0x3333333333333333) + (x &gt;&gt; 2 &amp; 0x3333333333333333);</div><div class='add'>+    x = (x &amp; 0x0707070707070707) + (x &gt;&gt; 4 &amp; 0x0707070707070707);</div><div class='add'>+    x = (x &amp; 0x001f001f001f001f) + (x &gt;&gt; 8 &amp; 0x001f001f001f001f);</div><div class='add'>+    x = (x &amp; 0x0000003f0000003f) + (x &gt;&gt;16 &amp; 0x0000003f0000003f);</div><div class='add'>+    x = (x &amp; 0x000000000000007f) + (x &gt;&gt;32 &amp; 0x000000000000007f);</div><div class='add'>+    return (unsigned int)x;</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline unsigned int</div><div class='add'>+rb_popcount_intptr(uintptr_t x)</div><div class='add'>+{</div><div class='add'>+    if (sizeof(uintptr_t) * CHAR_BIT == 64) {</div><div class='add'>+        return rb_popcount64((uint64_t)x);</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(uintptr_t) * CHAR_BIT == 32) {</div><div class='add'>+        return rb_popcount32((uint32_t)x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        UNREACHABLE_RETURN(~0);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+ntz_int32(uint32_t x)</div><div class='add'>+{</div><div class='add'>+#if defined(__x86_64__) &amp;&amp; defined(__BMI__) &amp;&amp; ! defined(MJIT_HEADER)</div><div class='add'>+    return (unsigned)_tzcnt_u32(x);</div><div class='add'>+</div><div class='add'>+#elif MSC_VERSION_SINCE(1400)</div><div class='add'>+    /* :FIXME: Is there any way to issue TZCNT instead of BSF, apart from using</div><div class='add'>+     *         assembly?  Because issuing LZCNT seems possible (see nlz.h). */</div><div class='add'>+    unsigned long r;</div><div class='add'>+    return _BitScanForward(&amp;r, x) ? (int)r : 32;</div><div class='add'>+</div><div class='add'>+#elif __has_builtin(__builtin_ctz)</div><div class='add'>+    STATIC_ASSERT(sizeof_int, sizeof(int) * CHAR_BIT == 32);</div><div class='add'>+    return x ? (unsigned)__builtin_ctz(x) : 32;</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    return rb_popcount32((~x) &amp; (x-1));</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+ntz_int64(uint64_t x)</div><div class='add'>+{</div><div class='add'>+#if defined(__x86_64__) &amp;&amp; defined(__BMI__) &amp;&amp; ! defined(MJIT_HEADER)</div><div class='add'>+    return (unsigned)_tzcnt_u64(x);</div><div class='add'>+</div><div class='add'>+#elif defined(_WIN64) &amp;&amp; MSC_VERSION_SINCE(1400)</div><div class='add'>+    unsigned long r;</div><div class='add'>+    return _BitScanForward64(&amp;r, x) ? (int)r : 64;</div><div class='add'>+</div><div class='add'>+#elif __has_builtin(__builtin_ctzl)</div><div class='add'>+    if (x == 0) {</div><div class='add'>+        return 64;</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(long) * CHAR_BIT == 64) {</div><div class='add'>+        return (unsigned)__builtin_ctzl((unsigned long)x);</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(long long) * CHAR_BIT == 64) {</div><div class='add'>+        return (unsigned)__builtin_ctzll((unsigned long long)x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        /* :FIXME: Is there a way to make this branch a compile-time error? */</div><div class='add'>+        UNREACHABLE_RETURN(~0);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    return rb_popcount64((~x) &amp; (x-1));</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+ntz_intptr(uintptr_t x)</div><div class='add'>+{</div><div class='add'>+    if (sizeof(uintptr_t) * CHAR_BIT == 64) {</div><div class='add'>+        return ntz_int64((uint64_t)x);</div><div class='add'>+    }</div><div class='add'>+    else if (sizeof(uintptr_t) * CHAR_BIT == 32) {</div><div class='add'>+        return ntz_int32((uint32_t)x);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        UNREACHABLE_RETURN(~0);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+RUBY_BIT_ROTL(VALUE v, int n)</div><div class='add'>+{</div><div class='add'>+#if __has_builtin(__builtin_rotateleft32) &amp;&amp; (SIZEOF_VALUE * CHAR_BIT == 32)</div><div class='add'>+    return __builtin_rotateleft32(v, n);</div><div class='add'>+</div><div class='add'>+#elif __has_builtin(__builtin_rotateleft64) &amp;&amp; (SIZEOF_VALUE * CHAR_BIT == 64)</div><div class='add'>+    return __builtin_rotateleft64(v, n);</div><div class='add'>+</div><div class='add'>+#elif MSC_VERSION_SINCE(1310) &amp;&amp; (SIZEOF_VALUE * CHAR_BIT == 32)</div><div class='add'>+    return _rotl(v, n);</div><div class='add'>+</div><div class='add'>+#elif MSC_VERSION_SINCE(1310) &amp;&amp; (SIZEOF_VALUE * CHAR_BIT == 64)</div><div class='add'>+    return _rotl64(v, n);</div><div class='add'>+</div><div class='add'>+#elif defined(_lrotl) &amp;&amp; (SIZEOF_VALUE == SIZEOF_LONG)</div><div class='add'>+    return _lrotl(v, n);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    const int m = (sizeof(VALUE) * CHAR_BIT) - 1;</div><div class='add'>+    return (v &lt;&lt; (n &amp; m)) | (v &gt;&gt; (-n &amp; m));</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+RUBY_BIT_ROTR(VALUE v, int n)</div><div class='add'>+{</div><div class='add'>+#if __has_builtin(__builtin_rotateright32) &amp;&amp; (SIZEOF_VALUE * CHAR_BIT == 32)</div><div class='add'>+    return __builtin_rotateright32(v, n);</div><div class='add'>+</div><div class='add'>+#elif __has_builtin(__builtin_rotateright64) &amp;&amp; (SIZEOF_VALUE * CHAR_BIT == 64)</div><div class='add'>+    return __builtin_rotateright64(v, n);</div><div class='add'>+</div><div class='add'>+#elif MSC_VERSION_SINCE(1310) &amp;&amp; (SIZEOF_VALUE * CHAR_BIT == 32)</div><div class='add'>+    return _rotr(v, n);</div><div class='add'>+</div><div class='add'>+#elif MSC_VERSION_SINCE(1310) &amp;&amp; (SIZEOF_VALUE * CHAR_BIT == 64)</div><div class='add'>+    return _rotr64(v, n);</div><div class='add'>+</div><div class='add'>+#elif defined(_lrotr) &amp;&amp; (SIZEOF_VALUE == SIZEOF_LONG)</div><div class='add'>+    return _lrotr(v, n);</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+    const int m = (sizeof(VALUE) * CHAR_BIT) - 1;</div><div class='add'>+    return (v &lt;&lt; (-n &amp; m)) | (v &gt;&gt; (n &amp; m));</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_BITS_H */</div><div class='head'>diff --git a/internal/class.h b/internal/class.h<br/>new file mode 100644<br/>index 0000000000..63917e867f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/class.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/class.h</a></div><div class='hunk'>@@ -0,0 +1,187 @@</div><div class='add'>+#ifndef INTERNAL_CLASS_H                                 /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_CLASS_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Class.</div><div class='add'>+ */</div><div class='add'>+#include "id_table.h"           /* for struct rb_id_table */</div><div class='add'>+#include "internal/gc.h"        /* for RB_OBJ_WRITE */</div><div class='add'>+#include "internal/serial.h"    /* for rb_serial_t */</div><div class='add'>+#include "ruby/internal/stdbool.h"     /* for bool */</div><div class='add'>+#include "ruby/intern.h"        /* for rb_alloc_func_t */</div><div class='add'>+#include "ruby/ruby.h"          /* for struct RBasic */</div><div class='add'>+#include "shape.h"</div><div class='add'>+#include "ruby_assert.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "method.h"             /* for rb_cref_t */</div><div class='add'>+</div><div class='add'>+#ifdef RCLASS_SUPER</div><div class='add'>+# undef RCLASS_SUPER</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct rb_subclass_entry {</div><div class='add'>+    VALUE klass;</div><div class='add'>+    struct rb_subclass_entry *next;</div><div class='add'>+    struct rb_subclass_entry *prev;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct rb_cvar_class_tbl_entry {</div><div class='add'>+    uint32_t index;</div><div class='add'>+    rb_serial_t global_cvar_state;</div><div class='add'>+    const rb_cref_t * cref;</div><div class='add'>+    VALUE class_value;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct rb_classext_struct {</div><div class='add'>+    VALUE *iv_ptr;</div><div class='add'>+    struct rb_id_table *const_tbl;</div><div class='add'>+    struct rb_id_table *callable_m_tbl;</div><div class='add'>+    struct rb_id_table *cc_tbl; /* ID -&gt; [[ci, cc1], cc2, ...] */</div><div class='add'>+    struct rb_id_table *cvc_tbl;</div><div class='add'>+    size_t superclass_depth;</div><div class='add'>+    VALUE *superclasses;</div><div class='add'>+    struct rb_subclass_entry *subclasses;</div><div class='add'>+    struct rb_subclass_entry *subclass_entry;</div><div class='add'>+    /**</div><div class='add'>+     * In the case that this is an `ICLASS`, `module_subclasses` points to the link</div><div class='add'>+     * in the module's `subclasses` list that indicates that the klass has been</div><div class='add'>+     * included. Hopefully that makes sense.</div><div class='add'>+     */</div><div class='add'>+    struct rb_subclass_entry *module_subclass_entry;</div><div class='add'>+    const VALUE origin_;</div><div class='add'>+    const VALUE refined_class;</div><div class='add'>+    rb_alloc_func_t allocator;</div><div class='add'>+    const VALUE includer;</div><div class='add'>+    uint32_t max_iv_count;</div><div class='add'>+    uint32_t variation_count;</div><div class='add'>+#if !SHAPE_IN_BASIC_FLAGS</div><div class='add'>+    shape_id_t shape_id;</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct RClass {</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+    VALUE super;</div><div class='add'>+    struct rb_id_table *m_tbl;</div><div class='add'>+#if SIZE_POOL_COUNT == 1</div><div class='add'>+    struct rb_classext_struct *ptr;</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef struct rb_subclass_entry rb_subclass_entry_t;</div><div class='add'>+typedef struct rb_classext_struct rb_classext_t;</div><div class='add'>+</div><div class='add'>+#if RCLASS_EXT_EMBEDDED</div><div class='add'>+#  define RCLASS_EXT(c) ((rb_classext_t *)((char *)(c) + sizeof(struct RClass)))</div><div class='add'>+#else</div><div class='add'>+#  define RCLASS_EXT(c) (RCLASS(c)-&gt;ptr)</div><div class='add'>+#endif</div><div class='add'>+#define RCLASS_CONST_TBL(c) (RCLASS_EXT(c)-&gt;const_tbl)</div><div class='add'>+#define RCLASS_M_TBL(c) (RCLASS(c)-&gt;m_tbl)</div><div class='add'>+#define RCLASS_IVPTR(c) (RCLASS_EXT(c)-&gt;iv_ptr)</div><div class='add'>+#define RCLASS_CALLABLE_M_TBL(c) (RCLASS_EXT(c)-&gt;callable_m_tbl)</div><div class='add'>+#define RCLASS_CC_TBL(c) (RCLASS_EXT(c)-&gt;cc_tbl)</div><div class='add'>+#define RCLASS_CVC_TBL(c) (RCLASS_EXT(c)-&gt;cvc_tbl)</div><div class='add'>+#define RCLASS_ORIGIN(c) (RCLASS_EXT(c)-&gt;origin_)</div><div class='add'>+#define RCLASS_REFINED_CLASS(c) (RCLASS_EXT(c)-&gt;refined_class)</div><div class='add'>+#define RCLASS_INCLUDER(c) (RCLASS_EXT(c)-&gt;includer)</div><div class='add'>+#define RCLASS_SUBCLASS_ENTRY(c) (RCLASS_EXT(c)-&gt;subclass_entry)</div><div class='add'>+#define RCLASS_MODULE_SUBCLASS_ENTRY(c) (RCLASS_EXT(c)-&gt;module_subclass_entry)</div><div class='add'>+#define RCLASS_ALLOCATOR(c) (RCLASS_EXT(c)-&gt;allocator)</div><div class='add'>+#define RCLASS_SUBCLASSES(c) (RCLASS_EXT(c)-&gt;subclasses)</div><div class='add'>+#define RCLASS_SUPERCLASS_DEPTH(c) (RCLASS_EXT(c)-&gt;superclass_depth)</div><div class='add'>+#define RCLASS_SUPERCLASSES(c) (RCLASS_EXT(c)-&gt;superclasses)</div><div class='add'>+</div><div class='add'>+#define RICLASS_IS_ORIGIN FL_USER0</div><div class='add'>+#define RCLASS_CLONED     FL_USER1</div><div class='add'>+#define RCLASS_SUPERCLASSES_INCLUDE_SELF FL_USER2</div><div class='add'>+#define RICLASS_ORIGIN_SHARED_MTBL FL_USER3</div><div class='add'>+</div><div class='add'>+/* class.c */</div><div class='add'>+void rb_class_subclass_add(VALUE super, VALUE klass);</div><div class='add'>+void rb_class_remove_from_super_subclasses(VALUE);</div><div class='add'>+void rb_class_update_superclasses(VALUE);</div><div class='add'>+size_t rb_class_superclasses_memsize(VALUE);</div><div class='add'>+void rb_class_remove_subclass_head(VALUE);</div><div class='add'>+int rb_singleton_class_internal_p(VALUE sklass);</div><div class='add'>+VALUE rb_class_boot(VALUE);</div><div class='add'>+VALUE rb_class_s_alloc(VALUE klass);</div><div class='add'>+VALUE rb_module_s_alloc(VALUE klass);</div><div class='add'>+void rb_module_set_initialized(VALUE module);</div><div class='add'>+void rb_module_check_initializable(VALUE module);</div><div class='add'>+VALUE rb_make_metaclass(VALUE, VALUE);</div><div class='add'>+VALUE rb_include_class_new(VALUE, VALUE);</div><div class='add'>+void rb_class_foreach_subclass(VALUE klass, void (*f)(VALUE, VALUE), VALUE);</div><div class='add'>+void rb_class_detach_subclasses(VALUE);</div><div class='add'>+void rb_class_detach_module_subclasses(VALUE);</div><div class='add'>+void rb_class_remove_from_module_subclasses(VALUE);</div><div class='add'>+VALUE rb_define_class_id_under_no_pin(VALUE outer, ID id, VALUE super);</div><div class='add'>+VALUE rb_obj_methods(int argc, const VALUE *argv, VALUE obj);</div><div class='add'>+VALUE rb_obj_protected_methods(int argc, const VALUE *argv, VALUE obj);</div><div class='add'>+VALUE rb_obj_private_methods(int argc, const VALUE *argv, VALUE obj);</div><div class='add'>+VALUE rb_obj_public_methods(int argc, const VALUE *argv, VALUE obj);</div><div class='add'>+VALUE rb_class_undefined_instance_methods(VALUE mod);</div><div class='add'>+VALUE rb_special_singleton_class(VALUE);</div><div class='add'>+VALUE rb_singleton_class_clone_and_attach(VALUE obj, VALUE attach);</div><div class='add'>+VALUE rb_singleton_class_get(VALUE obj);</div><div class='add'>+void rb_undef_methods_from(VALUE klass, VALUE super);</div><div class='add'>+</div><div class='add'>+static inline void RCLASS_SET_ORIGIN(VALUE klass, VALUE origin);</div><div class='add'>+static inline void RICLASS_SET_ORIGIN_SHARED_MTBL(VALUE iclass);</div><div class='add'>+static inline VALUE RCLASS_SUPER(VALUE klass);</div><div class='add'>+static inline VALUE RCLASS_SET_SUPER(VALUE klass, VALUE super);</div><div class='add'>+static inline void RCLASS_SET_INCLUDER(VALUE iclass, VALUE klass);</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+VALUE rb_class_inherited(VALUE, VALUE);</div><div class='add'>+VALUE rb_keyword_error_new(const char *, VALUE);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RCLASS_SET_ORIGIN(VALUE klass, VALUE origin)</div><div class='add'>+{</div><div class='add'>+    RB_OBJ_WRITE(klass, &amp;RCLASS_ORIGIN(klass), origin);</div><div class='add'>+    if (klass != origin) FL_SET(origin, RICLASS_IS_ORIGIN);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RICLASS_SET_ORIGIN_SHARED_MTBL(VALUE iclass)</div><div class='add'>+{</div><div class='add'>+    FL_SET(iclass, RICLASS_ORIGIN_SHARED_MTBL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+RICLASS_OWNS_M_TBL_P(VALUE iclass)</div><div class='add'>+{</div><div class='add'>+    return FL_TEST_RAW(iclass, RICLASS_IS_ORIGIN | RICLASS_ORIGIN_SHARED_MTBL) == RICLASS_IS_ORIGIN;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RCLASS_SET_INCLUDER(VALUE iclass, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    RB_OBJ_WRITE(iclass, &amp;RCLASS_INCLUDER(iclass), klass);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+RCLASS_SUPER(VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return RCLASS(klass)-&gt;super;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+RCLASS_SET_SUPER(VALUE klass, VALUE super)</div><div class='add'>+{</div><div class='add'>+    if (super) {</div><div class='add'>+        rb_class_remove_from_super_subclasses(klass);</div><div class='add'>+        rb_class_subclass_add(super, klass);</div><div class='add'>+    }</div><div class='add'>+    RB_OBJ_WRITE(klass, &amp;RCLASS(klass)-&gt;super, super);</div><div class='add'>+    rb_class_update_superclasses(klass);</div><div class='add'>+    return super;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_CLASS_H */</div><div class='head'>diff --git a/internal/cmdlineopt.h b/internal/cmdlineopt.h<br/>new file mode 100644<br/>index 0000000000..bf52f1214b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/cmdlineopt.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/cmdlineopt.h</a></div><div class='hunk'>@@ -0,0 +1,61 @@</div><div class='add'>+#ifndef INTERNAL_CMDLINEOPT_H                               /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_CMDLINEOPT_H</div><div class='add'>+</div><div class='add'>+#include "mjit.h"</div><div class='add'>+#include "yjit.h"</div><div class='add'>+</div><div class='add'>+typedef struct {</div><div class='add'>+    unsigned int mask;</div><div class='add'>+    unsigned int set;</div><div class='add'>+} ruby_features_t;</div><div class='add'>+</div><div class='add'>+typedef struct ruby_cmdline_options {</div><div class='add'>+    const char *script;</div><div class='add'>+    VALUE script_name;</div><div class='add'>+    VALUE e_script;</div><div class='add'>+    struct {</div><div class='add'>+        struct {</div><div class='add'>+            VALUE name;</div><div class='add'>+            int index;</div><div class='add'>+        } enc;</div><div class='add'>+    } src, ext, intern;</div><div class='add'>+    VALUE req_list;</div><div class='add'>+    ruby_features_t features;</div><div class='add'>+    ruby_features_t warn;</div><div class='add'>+    unsigned int dump;</div><div class='add'>+#if USE_MJIT</div><div class='add'>+    struct mjit_options mjit;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    int sflag, xflag;</div><div class='add'>+    unsigned int warning: 1;</div><div class='add'>+    unsigned int verbose: 1;</div><div class='add'>+    unsigned int do_loop: 1;</div><div class='add'>+    unsigned int do_print: 1;</div><div class='add'>+    unsigned int do_line: 1;</div><div class='add'>+    unsigned int do_split: 1;</div><div class='add'>+    unsigned int do_search: 1;</div><div class='add'>+    unsigned int setids: 2;</div><div class='add'>+#if USE_YJIT</div><div class='add'>+    unsigned int yjit: 1;</div><div class='add'>+#endif</div><div class='add'>+} ruby_cmdline_options_t;</div><div class='add'>+</div><div class='add'>+struct ruby_opt_message {</div><div class='add'>+    const char *str;</div><div class='add'>+    unsigned short namelen, secondlen;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define RUBY_OPT_MESSAGE(shortopt, longopt, desc) { \</div><div class='add'>+    shortopt " " longopt " " desc, \</div><div class='add'>+    (unsigned short)sizeof(shortopt), \</div><div class='add'>+    (unsigned short)sizeof(longopt), \</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define opt_match(s, l, name) \</div><div class='add'>+    ((((l) &gt; rb_strlen_lit(name)) ? (s)[rb_strlen_lit(name)] == '=' : \</div><div class='add'>+      (l) == rb_strlen_lit(name)) &amp;&amp; \</div><div class='add'>+     memcmp((s), name, rb_strlen_lit(name)) == 0 &amp;&amp; \</div><div class='add'>+     (((s) += rb_strlen_lit(name)), 1))</div><div class='add'>+</div><div class='add'>+#endif</div><div class='head'>diff --git a/internal/compar.h b/internal/compar.h<br/>new file mode 100644<br/>index 0000000000..9115e4bd63<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/compar.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/compar.h</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+#ifndef INTERNAL_COMPAR_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_COMPAR_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Comparable.</div><div class='add'>+ */</div><div class='add'>+#include "internal/basic_operators.h"</div><div class='add'>+</div><div class='add'>+#define STRING_P(s) (RB_TYPE_P((s), T_STRING) &amp;&amp; CLASS_OF(s) == rb_cString)</div><div class='add'>+</div><div class='add'>+#define CMP_OPTIMIZABLE(type) BASIC_OP_UNREDEFINED_P(BOP_CMP, type##_REDEFINED_OP_FLAG)</div><div class='add'>+</div><div class='add'>+#define OPTIMIZED_CMP(a, b) \</div><div class='add'>+    ((FIXNUM_P(a) &amp;&amp; FIXNUM_P(b) &amp;&amp; CMP_OPTIMIZABLE(INTEGER)) ? \</div><div class='add'>+     (((long)a &gt; (long)b) ? 1 : ((long)a &lt; (long)b) ? -1 : 0) : \</div><div class='add'>+     (STRING_P(a) &amp;&amp; STRING_P(b) &amp;&amp; CMP_OPTIMIZABLE(STRING)) ? \</div><div class='add'>+     rb_str_cmp(a, b) : \</div><div class='add'>+     (RB_FLOAT_TYPE_P(a) &amp;&amp; RB_FLOAT_TYPE_P(b) &amp;&amp; CMP_OPTIMIZABLE(FLOAT)) ? \</div><div class='add'>+     rb_float_cmp(a, b) : \</div><div class='add'>+     rb_cmpint(rb_funcallv(a, id_cmp, 1, &amp;b), a, b))</div><div class='add'>+</div><div class='add'>+/* compar.c */</div><div class='add'>+VALUE rb_invcmp(VALUE, VALUE);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_COMPAR_H */</div><div class='head'>diff --git a/internal/compile.h b/internal/compile.h<br/>new file mode 100644<br/>index 0000000000..d32c2233c9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/compile.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/compile.h</a></div><div class='hunk'>@@ -0,0 +1,35 @@</div><div class='add'>+#ifndef INTERNAL_COMPILE_H                               /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_COMPILE_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for the compiler.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+#include "ruby/ruby.h"          /* for rb_event_flag_t */</div><div class='add'>+</div><div class='add'>+struct rb_iseq_struct;          /* in vm_core.h */</div><div class='add'>+</div><div class='add'>+/* compile.c */</div><div class='add'>+int rb_dvar_defined(ID, const struct rb_iseq_struct *);</div><div class='add'>+int rb_local_defined(ID, const struct rb_iseq_struct *);</div><div class='add'>+const char *rb_insns_name(int i);</div><div class='add'>+VALUE rb_insns_name_array(void);</div><div class='add'>+int rb_iseq_cdhash_cmp(VALUE val, VALUE lit);</div><div class='add'>+st_index_t rb_iseq_cdhash_hash(VALUE a);</div><div class='add'>+</div><div class='add'>+/* iseq.c */</div><div class='add'>+int rb_vm_insn_addr2insn(const void *);</div><div class='add'>+int rb_vm_insn_decode(const VALUE encoded);</div><div class='add'>+extern bool ruby_vm_keep_script_lines;</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* iseq.c (export) */</div><div class='add'>+rb_event_flag_t rb_iseq_event_flags(const struct rb_iseq_struct *iseq, size_t pos);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_COMPILE_H */</div><div class='head'>diff --git a/internal/compilers.h b/internal/compilers.h<br/>new file mode 100644<br/>index 0000000000..26c2f05cc0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/compilers.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/compilers.h</a></div><div class='hunk'>@@ -0,0 +1,107 @@</div><div class='add'>+#ifndef INTERNAL_COMPILERS_H                             /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_COMPILERS_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header absorbing C compiler differences.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/compiler_since.h"</div><div class='add'>+#include "ruby/internal/has/attribute.h"</div><div class='add'>+#include "ruby/internal/has/builtin.h"</div><div class='add'>+#include "ruby/internal/has/c_attribute.h"</div><div class='add'>+#include "ruby/internal/has/declspec_attribute.h"</div><div class='add'>+#include "ruby/internal/has/extension.h"</div><div class='add'>+#include "ruby/internal/has/feature.h"</div><div class='add'>+#include "ruby/internal/has/warning.h"</div><div class='add'>+#include "ruby/backward/2/gcc_version_since.h"</div><div class='add'>+</div><div class='add'>+#define MSC_VERSION_SINCE(_)   RBIMPL_COMPILER_SINCE(MSVC, (_) / 100, (_) % 100, 0)</div><div class='add'>+#define MSC_VERSION_BEFORE(_)  RBIMPL_COMPILER_BEFORE(MSVC, (_) / 100, (_) % 100, 0)</div><div class='add'>+</div><div class='add'>+#ifndef __has_attribute</div><div class='add'>+# define __has_attribute(...) RBIMPL_HAS_ATTRIBUTE(__VA_ARGS__)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef __has_c_attribute</div><div class='add'>+# /* As  of writing  everything  that lacks  __has_c_attribute also  completely</div><div class='add'>+#  * lacks C2x attributes as well.  Might change in future? */</div><div class='add'>+# define __has_c_attribute(...) 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef __has_declspec_attribute</div><div class='add'>+# define __has_declspec_attribute(...) RBIMPL_HAS_DECLSPEC_ATTRIBUTE(__VA_ARGS__)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef __has_builtin</div><div class='add'>+# define __has_builtin(...) RBIMPL_HAS_BUILTIN(__VA_ARGS__)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef __has_feature</div><div class='add'>+# define __has_feature(...) RBIMPL_HAS_FEATURE(__VA_ARGS__)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef __has_extension</div><div class='add'>+# define __has_extension(...) RBIMPL_HAS_EXTENSION(__VA_ARGS__)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef __has_warning</div><div class='add'>+# define __has_warning(...) RBIMPL_HAS_WARNING(__VA_ARGS__)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef __GNUC__</div><div class='add'>+# define __extension__ /* void */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef MAYBE_UNUSED</div><div class='add'>+# define MAYBE_UNUSED(x) x</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef WARN_UNUSED_RESULT</div><div class='add'>+# define WARN_UNUSED_RESULT(x) x</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define RB_OBJ_BUILTIN_TYPE(obj) rb_obj_builtin_type(obj)</div><div class='add'>+#define OBJ_BUILTIN_TYPE(obj) RB_OBJ_BUILTIN_TYPE(obj)</div><div class='add'>+#ifdef __GNUC__</div><div class='add'>+#define rb_obj_builtin_type(obj) \</div><div class='add'>+__extension__({ \</div><div class='add'>+    VALUE arg_obj = (obj); \</div><div class='add'>+    RB_SPECIAL_CONST_P(arg_obj) ? -1 : \</div><div class='add'>+        (int)RB_BUILTIN_TYPE(arg_obj);    \</div><div class='add'>+    })</div><div class='add'>+#else</div><div class='add'>+# include "ruby/ruby.h"</div><div class='add'>+static inline int</div><div class='add'>+rb_obj_builtin_type(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return RB_SPECIAL_CONST_P(obj) ? -1 :</div><div class='add'>+        (int)RB_BUILTIN_TYPE(obj);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* A macro for defining a flexible array, like: VALUE ary[FLEX_ARY_LEN]; */</div><div class='add'>+#if defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)</div><div class='add'>+# define FLEX_ARY_LEN   /* VALUE ary[]; */</div><div class='add'>+#elif defined(__GNUC__) &amp;&amp; !defined(__STRICT_ANSI__)</div><div class='add'>+# define FLEX_ARY_LEN 0 /* VALUE ary[0]; */</div><div class='add'>+#else</div><div class='add'>+# define FLEX_ARY_LEN 1 /* VALUE ary[1]; */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * For declaring bitfields out of non-unsigned int types:</div><div class='add'>+ *   struct date {</div><div class='add'>+ *      BITFIELD(enum months, month, 4);</div><div class='add'>+ *      ...</div><div class='add'>+ *   };</div><div class='add'>+ */</div><div class='add'>+#if defined(__STDC_VERSION__) &amp;&amp; (__STDC_VERSION__ &gt;= 199901L)</div><div class='add'>+# define BITFIELD(type, name, size) type name : size</div><div class='add'>+#else</div><div class='add'>+# define BITFIELD(type, name, size) unsigned int name : size</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_COMPILERS_H */</div><div class='head'>diff --git a/internal/complex.h b/internal/complex.h<br/>new file mode 100644<br/>index 0000000000..42151652b7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/complex.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/complex.h</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+#ifndef INTERNAL_COMPLEX_H                               /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_COMPLEX_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Complex.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/value.h"          /* for struct RBasic */</div><div class='add'>+</div><div class='add'>+struct RComplex {</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+    VALUE real;</div><div class='add'>+    VALUE imag;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define RCOMPLEX(obj) ((struct RComplex *)(obj))</div><div class='add'>+</div><div class='add'>+/* shortcut macro for internal only */</div><div class='add'>+#define RCOMPLEX_SET_REAL(cmp, r) RB_OBJ_WRITE((cmp), &amp;RCOMPLEX(cmp)-&gt;real, (r))</div><div class='add'>+#define RCOMPLEX_SET_IMAG(cmp, i) RB_OBJ_WRITE((cmp), &amp;RCOMPLEX(cmp)-&gt;imag, (i))</div><div class='add'>+</div><div class='add'>+/* complex.c */</div><div class='add'>+VALUE rb_dbl_complex_new_polar_pi(double abs, double ang);</div><div class='add'>+st_index_t rb_complex_hash(VALUE comp);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_COMPLEX_H */</div><div class='head'>diff --git a/internal/cont.h b/internal/cont.h<br/>new file mode 100644<br/>index 0000000000..c3b091668a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/cont.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/cont.h</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+#ifndef INTERNAL_CONT_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_CONT_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Fiber.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+#include "iseq.h"</div><div class='add'>+</div><div class='add'>+struct rb_thread_struct;        /* in vm_core.h */</div><div class='add'>+struct rb_fiber_struct;         /* in cont.c */</div><div class='add'>+struct rb_execution_context_struct; /* in vm_core.c */</div><div class='add'>+</div><div class='add'>+/* cont.c */</div><div class='add'>+void rb_fiber_reset_root_local_storage(struct rb_thread_struct *);</div><div class='add'>+void ruby_register_rollback_func_for_ensure(VALUE (*ensure_func)(VALUE), VALUE (*rollback_func)(VALUE));</div><div class='add'>+void rb_jit_cont_init(void);</div><div class='add'>+void rb_jit_cont_each_iseq(rb_iseq_callback callback, void *data);</div><div class='add'>+void rb_jit_cont_finish(void);</div><div class='add'>+</div><div class='add'>+// Copy locals from the current execution to the specified fiber.</div><div class='add'>+VALUE rb_fiber_inherit_storage(struct rb_execution_context_struct *ec, struct rb_fiber_struct *fiber);</div><div class='add'>+</div><div class='add'>+VALUE rb_fiberptr_self(struct rb_fiber_struct *fiber);</div><div class='add'>+unsigned int rb_fiberptr_blocking(struct rb_fiber_struct *fiber);</div><div class='add'>+struct rb_execution_context_struct * rb_fiberptr_get_ec(struct rb_fiber_struct *fiber);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_CONT_H */</div><div class='head'>diff --git a/internal/dir.h b/internal/dir.h<br/>new file mode 100644<br/>index 0000000000..0a4dc90ece<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/dir.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/dir.h</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+#ifndef INTERNAL_DIR_H                                   /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_DIR_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Dir.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+</div><div class='add'>+/* dir.c */</div><div class='add'>+VALUE rb_dir_getwd_ospath(void);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_DIR_H */</div><div class='head'>diff --git a/internal/enc.h b/internal/enc.h<br/>new file mode 100644<br/>index 0000000000..a005dc810d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/enc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/enc.h</a></div><div class='hunk'>@@ -0,0 +1,19 @@</div><div class='add'>+#ifndef INTERNAL_ENC_H                                   /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_ENC_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Encoding.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/encoding.h"      /* for rb_encoding */</div><div class='add'>+</div><div class='add'>+/* us_ascii.c */</div><div class='add'>+extern rb_encoding OnigEncodingUS_ASCII;</div><div class='add'>+</div><div class='add'>+/* utf_8.c */</div><div class='add'>+extern rb_encoding OnigEncodingUTF_8;</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_ENC_H */</div><div class='head'>diff --git a/internal/encoding.h b/internal/encoding.h<br/>new file mode 100644<br/>index 0000000000..a3b81bd388<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/encoding.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/encoding.h</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+#ifndef INTERNAL_ENCODING_H                              /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_ENCODING_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Encoding.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for ID */</div><div class='add'>+#include "ruby/encoding.h"      /* for rb_encoding */</div><div class='add'>+</div><div class='add'>+#define rb_enc_autoload_p(enc) (!rb_enc_mbmaxlen(enc))</div><div class='add'>+#define rb_is_usascii_enc(enc) ((enc) == rb_usascii_encoding())</div><div class='add'>+#define rb_is_ascii8bit_enc(enc) ((enc) == rb_ascii8bit_encoding())</div><div class='add'>+#define rb_is_locale_enc(enc) ((enc) == rb_locale_encoding())</div><div class='add'>+</div><div class='add'>+/* encoding.c */</div><div class='add'>+ID rb_id_encoding(void);</div><div class='add'>+rb_encoding *rb_enc_get_from_index(int index);</div><div class='add'>+rb_encoding *rb_enc_check_str(VALUE str1, VALUE str2);</div><div class='add'>+int rb_encdb_replicate(const char *alias, const char *orig);</div><div class='add'>+int rb_encdb_alias(const char *alias, const char *orig);</div><div class='add'>+int rb_enc_autoload(rb_encoding *enc);</div><div class='add'>+int rb_encdb_dummy(const char *name);</div><div class='add'>+void rb_encdb_declare(const char *name);</div><div class='add'>+void rb_enc_set_base(const char *name, const char *orig);</div><div class='add'>+int rb_enc_set_dummy(int index);</div><div class='add'>+PUREFUNC(int rb_data_is_encoding(VALUE obj));</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_ENCODING_H */</div><div class='head'>diff --git a/internal/enum.h b/internal/enum.h<br/>new file mode 100644<br/>index 0000000000..282464436f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/enum.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/enum.h</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+#ifndef INTERNAL_ENUM_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_ENUM_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Enumerable.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+</div><div class='add'>+/* enum.c */</div><div class='add'>+extern VALUE rb_cArithSeq;</div><div class='add'>+VALUE rb_f_send(int argc, VALUE *argv, VALUE recv);</div><div class='add'>+VALUE rb_nmin_run(VALUE obj, VALUE num, int by, int rev, int ary);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_ENUM_H */</div><div class='head'>diff --git a/internal/enumerator.h b/internal/enumerator.h<br/>new file mode 100644<br/>index 0000000000..e11a684c5b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/enumerator.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/enumerator.h</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+#ifndef INTERNAL_ENUMERATOR_H                            /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_ENUMERATOR_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Enumerator.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+#include "ruby/intern.h"        /* for rb_enumerator_size_func */</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* enumerator.c (export) */</div><div class='add'>+VALUE rb_arith_seq_new(VALUE obj, VALUE meth, int argc, VALUE const *argv,</div><div class='add'>+                       rb_enumerator_size_func *size_fn,</div><div class='add'>+                       VALUE beg, VALUE end, VALUE step, int excl);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_ENUMERATOR_H */</div><div class='head'>diff --git a/internal/error.h b/internal/error.h<br/>new file mode 100644<br/>index 0000000000..11601858f4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/error.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/error.h</a></div><div class='hunk'>@@ -0,0 +1,191 @@</div><div class='add'>+#ifndef INTERNAL_ERROR_H                                 /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_ERROR_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Exception.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stdarg.h&gt;             /* for va_list */</div><div class='add'>+#include "internal/string.h"    /* for rb_fstring_cstr */</div><div class='add'>+#include "ruby/internal/stdbool.h"     /* for bool */</div><div class='add'>+#include "ruby/encoding.h"      /* for rb_encoding */</div><div class='add'>+#include "ruby/intern.h"        /* for rb_exc_raise */</div><div class='add'>+#include "ruby/ruby.h"          /* for enum ruby_value_type */</div><div class='add'>+</div><div class='add'>+#ifdef Check_Type</div><div class='add'>+# undef Check_Type               /* in ruby/ruby.h */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef rb_raise_static</div><div class='add'>+# undef rb_raise_static</div><div class='add'>+# undef rb_sys_fail_path</div><div class='add'>+# undef rb_syserr_fail_path</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define rb_raise_static(e, m) \</div><div class='add'>+    rb_raise_cstr_i((e), rb_str_new_static((m), rb_strlen_lit(m)))</div><div class='add'>+#ifdef RUBY_FUNCTION_NAME_STRING</div><div class='add'>+# define rb_sys_fail_path(path) rb_sys_fail_path_in(RUBY_FUNCTION_NAME_STRING, path)</div><div class='add'>+# define rb_syserr_fail_path(err, path) rb_syserr_fail_path_in(RUBY_FUNCTION_NAME_STRING, (err), (path))</div><div class='add'>+# define rb_syserr_new_path(err, path) rb_syserr_new_path_in(RUBY_FUNCTION_NAME_STRING, (err), (path))</div><div class='add'>+#else</div><div class='add'>+# define rb_sys_fail_path(path) rb_sys_fail_str(path)</div><div class='add'>+# define rb_syserr_fail_path(err, path) rb_syserr_fail_str((err), (path))</div><div class='add'>+# define rb_syserr_new_path(err, path) rb_syserr_new_str((err), (path))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* error.c */</div><div class='add'>+extern long rb_backtrace_length_limit;</div><div class='add'>+extern VALUE rb_eEAGAIN;</div><div class='add'>+extern VALUE rb_eEWOULDBLOCK;</div><div class='add'>+extern VALUE rb_eEINPROGRESS;</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 3, 0)</div><div class='add'>+void rb_report_bug_valist(VALUE file, int line, const char *fmt, va_list args);</div><div class='add'>+NORETURN(void rb_async_bug_errno(const char *,int));</div><div class='add'>+const char *rb_builtin_type_name(int t);</div><div class='add'>+const char *rb_builtin_class_name(VALUE x);</div><div class='add'>+PRINTF_ARGS(void rb_warn_deprecated(const char *fmt, const char *suggest, ...), 1, 3);</div><div class='add'>+PRINTF_ARGS(void rb_warn_deprecated_to_remove(const char *removal, const char *fmt, const char *suggest, ...), 2, 4);</div><div class='add'>+#if RUBY_DEBUG</div><div class='add'>+# include "ruby/version.h"</div><div class='add'>+# define RUBY_VERSION_SINCE(major, minor) (RUBY_API_VERSION_CODE &gt;= (major * 10000) + (minor) * 100)</div><div class='add'>+# define RUBY_VERSION_BEFORE(major, minor) (RUBY_API_VERSION_CODE &lt; (major * 10000) + (minor) * 100)</div><div class='add'>+# if defined(RBIMPL_WARNING_PRAGMA0)</div><div class='add'>+#   define RBIMPL_TODO0(x) RBIMPL_WARNING_PRAGMA0(message(x))</div><div class='add'>+# elif RBIMPL_COMPILER_SINCE(MSVC, 12, 0, 0)</div><div class='add'>+#   define RBIMPL_TODO0(x) __pragma(message(x))</div><div class='add'>+# endif</div><div class='add'>+</div><div class='add'>+# if RBIMPL_HAS_ATTRIBUTE(diagnose_if) || defined(__OPTIMIZE__)</div><div class='add'>+</div><div class='add'>+#define RUBY_VERSION_isdigit(c) ('0'&lt;=(c)&amp;&amp;(c)&lt;='9')</div><div class='add'>+// upto 99</div><div class='add'>+#define RUBY_VERSION__number_len(v, ofs) \</div><div class='add'>+    (!RUBY_VERSION_isdigit((v)[ofs]) ? \</div><div class='add'>+     0 : !RUBY_VERSION_isdigit((v)[(ofs) + 1]) ? 1 : 2)</div><div class='add'>+#define RUBY_VERSION__to_number(v, ofs) \</div><div class='add'>+    (!RUBY_VERSION_isdigit((v)[ofs]) ? \</div><div class='add'>+     0 : !RUBY_VERSION_isdigit((v)[(ofs) + 1]) ? \</div><div class='add'>+     ((v)[ofs]-'0') : \</div><div class='add'>+     (((v)[ofs]-'0')*10+(v)[(ofs)+1]-'0'))</div><div class='add'>+</div><div class='add'>+#define RUBY_VERSION_CODE_FROM_MAJOR_MINOR_STRING(v) \</div><div class='add'>+    (RUBY_VERSION__to_number(v, 0) * 10000 + \</div><div class='add'>+     ((v)[RUBY_VERSION__number_len(v, 0)] == '.' ? \</div><div class='add'>+      RUBY_VERSION__to_number(v, RUBY_VERSION__number_len(v, 0)+1) * 100 : 0))</div><div class='add'>+#define RUBY_VERSION_STRING_SINCE(v) (RUBY_API_VERSION_CODE &gt;= RUBY_VERSION_CODE_FROM_MAJOR_MINOR_STRING(v))</div><div class='add'>+#define RUBY_VERSION_STRING_BEFORE(v) (RUBY_API_VERSION_CODE &lt; RUBY_VERSION_CODE_FROM_MAJOR_MINOR_STRING(v))</div><div class='add'>+</div><div class='add'>+# if RBIMPL_HAS_ATTRIBUTE(diagnose_if)</div><div class='add'>+RBIMPL_ATTR_FORCEINLINE()</div><div class='add'>+static void</div><div class='add'>+rb_deprecated_method_to_be_removed(const char *removal)</div><div class='add'>+    RBIMPL_ATTR_DIAGNOSE_IF(!RUBY_VERSION_isdigit(removal[0]), "malformed version number", "error")</div><div class='add'>+    RBIMPL_ATTR_DIAGNOSE_IF(RUBY_VERSION_STRING_SINCE(removal), "deprecated method to be removed", "error")</div><div class='add'>+{</div><div class='add'>+}</div><div class='add'>+# else</div><div class='add'>+RBIMPL_ATTR_ERROR(("deprecated"))</div><div class='add'>+void rb_deprecated_method_to_be_removed(const char *);</div><div class='add'>+#   define rb_deprecated_method_to_be_removed(removal) \</div><div class='add'>+    (sizeof(char[1-2*(!RUBY_VERSION_isdigit(removal[0]) || RUBY_VERSION_STRING_SINCE(removal))])!=1 ? \</div><div class='add'>+     rb_deprecated_method_to_be_removed(removal) : \</div><div class='add'>+     RBIMPL_ASSERT_NOTHING)</div><div class='add'>+# endif</div><div class='add'>+# define rb_warn_deprecated_to_remove_at(removal, ...) \</div><div class='add'>+    (rb_deprecated_method_to_be_removed(#removal), \</div><div class='add'>+     rb_warn_deprecated_to_remove(#removal, __VA_ARGS__))</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+#ifndef rb_warn_deprecated_to_remove_at</div><div class='add'>+# define rb_warn_deprecated_to_remove_at(removal, ...) \</div><div class='add'>+        rb_warn_deprecated_to_remove(#removal, __VA_ARGS__)</div><div class='add'>+#endif</div><div class='add'>+#ifndef RUBY_VERSION_SINCE</div><div class='add'>+# define RUBY_VERSION_SINCE(major, minor) 0</div><div class='add'>+#endif</div><div class='add'>+#ifndef RUBY_VERSION_BEFORE</div><div class='add'>+# define RUBY_VERSION_BEFORE(major, minor) 0</div><div class='add'>+#endif</div><div class='add'>+#ifndef RBIMPL_TODO0</div><div class='add'>+# define RBIMPL_TODO0(x)</div><div class='add'>+#endif</div><div class='add'>+#define RBIMPL_TODO(message) RBIMPL_TODO0("TODO: " message)</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 6, 0)</div><div class='add'>+VALUE rb_syntax_error_append(VALUE, VALUE, int, int, rb_encoding*, const char*, va_list);</div><div class='add'>+PRINTF_ARGS(void rb_enc_warn(rb_encoding *enc, const char *fmt, ...), 2, 3);</div><div class='add'>+PRINTF_ARGS(void rb_sys_enc_warning(rb_encoding *enc, const char *fmt, ...), 2, 3);</div><div class='add'>+PRINTF_ARGS(void rb_syserr_enc_warning(int err, rb_encoding *enc, const char *fmt, ...), 3, 4);</div><div class='add'>+rb_warning_category_t rb_warning_category_from_name(VALUE category);</div><div class='add'>+bool rb_warning_category_enabled_p(rb_warning_category_t category);</div><div class='add'>+VALUE rb_name_err_new(VALUE mesg, VALUE recv, VALUE method);</div><div class='add'>+VALUE rb_nomethod_err_new(VALUE mesg, VALUE recv, VALUE method, VALUE args, int priv);</div><div class='add'>+VALUE rb_key_err_new(VALUE mesg, VALUE recv, VALUE name);</div><div class='add'>+PRINTF_ARGS(VALUE rb_warning_string(const char *fmt, ...), 1, 2);</div><div class='add'>+RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0)</div><div class='add'>+NORETURN(void rb_vraise(VALUE, const char *, va_list));</div><div class='add'>+NORETURN(static inline void rb_raise_cstr(VALUE etype, const char *mesg));</div><div class='add'>+NORETURN(static inline void rb_raise_cstr_i(VALUE etype, VALUE mesg));</div><div class='add'>+NORETURN(static inline void rb_name_err_raise_str(VALUE mesg, VALUE recv, VALUE name));</div><div class='add'>+NORETURN(static inline void rb_name_err_raise(const char *mesg, VALUE recv, VALUE name));</div><div class='add'>+NORETURN(static inline void rb_key_err_raise(VALUE mesg, VALUE recv, VALUE name));</div><div class='add'>+static inline void Check_Type(VALUE v, enum ruby_value_type t);</div><div class='add'>+static inline bool rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type);</div><div class='add'>+#define rb_typeddata_is_instance_of rb_typeddata_is_instance_of_inline</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* error.c (export) */</div><div class='add'>+int rb_bug_reporter_add(void (*func)(FILE *, void *), void *data);</div><div class='add'>+#ifdef RUBY_FUNCTION_NAME_STRING</div><div class='add'>+NORETURN(void rb_sys_fail_path_in(const char *func_name, VALUE path));</div><div class='add'>+NORETURN(void rb_syserr_fail_path_in(const char *func_name, int err, VALUE path));</div><div class='add'>+VALUE rb_syserr_new_path_in(const char *func_name, int n, VALUE path);</div><div class='add'>+#endif</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+rb_raise_cstr_i(VALUE etype, VALUE mesg)</div><div class='add'>+{</div><div class='add'>+    VALUE exc = rb_exc_new_str(etype, mesg);</div><div class='add'>+    rb_exc_raise(exc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+rb_raise_cstr(VALUE etype, const char *mesg)</div><div class='add'>+{</div><div class='add'>+    VALUE str = rb_str_new_cstr(mesg);</div><div class='add'>+    rb_raise_cstr_i(etype, str);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+rb_name_err_raise_str(VALUE mesg, VALUE recv, VALUE name)</div><div class='add'>+{</div><div class='add'>+    VALUE exc = rb_name_err_new(mesg, recv, name);</div><div class='add'>+    rb_exc_raise(exc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+rb_name_err_raise(const char *mesg, VALUE recv, VALUE name)</div><div class='add'>+{</div><div class='add'>+    VALUE str = rb_fstring_cstr(mesg);</div><div class='add'>+    rb_name_err_raise_str(str, recv, name);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+rb_key_err_raise(VALUE mesg, VALUE recv, VALUE name)</div><div class='add'>+{</div><div class='add'>+    VALUE exc = rb_key_err_new(mesg, recv, name);</div><div class='add'>+    rb_exc_raise(exc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type)</div><div class='add'>+{</div><div class='add'>+    return RB_TYPE_P(obj, T_DATA) &amp;&amp; RTYPEDDATA_P(obj) &amp;&amp; (RTYPEDDATA_TYPE(obj) == data_type);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_ERROR_H */</div><div class='head'>diff --git a/internal/eval.h b/internal/eval.h<br/>new file mode 100644<br/>index 0000000000..e594d8516d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/eval.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/eval.h</a></div><div class='hunk'>@@ -0,0 +1,33 @@</div><div class='add'>+#ifndef INTERNAL_EVAL_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_EVAL_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for the evaluator.</div><div class='add'>+ * @note       There  also  is  eval_intern.h, which  is  evaluator's  internal</div><div class='add'>+ *             header (related to this file, but not the same role).</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for ID */</div><div class='add'>+</div><div class='add'>+#define id_signo ruby_static_id_signo</div><div class='add'>+#define id_status ruby_static_id_status</div><div class='add'>+</div><div class='add'>+/* eval.c */</div><div class='add'>+extern ID ruby_static_id_signo;</div><div class='add'>+extern ID ruby_static_id_status;</div><div class='add'>+VALUE rb_refinement_module_get_refined_class(VALUE module);</div><div class='add'>+void rb_class_modify_check(VALUE);</div><div class='add'>+NORETURN(VALUE rb_f_raise(int argc, VALUE *argv));</div><div class='add'>+VALUE rb_top_main_class(const char *method);</div><div class='add'>+</div><div class='add'>+/* eval_error.c */</div><div class='add'>+VALUE rb_get_backtrace(VALUE info);</div><div class='add'>+</div><div class='add'>+/* eval_jump.c */</div><div class='add'>+void rb_call_end_proc(VALUE data);</div><div class='add'>+void rb_mark_end_proc(void);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_EVAL_H */</div><div class='head'>diff --git a/internal/file.h b/internal/file.h<br/>new file mode 100644<br/>index 0000000000..9c192ff4d1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/file.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/file.h</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+#ifndef INTERNAL_FILE_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_FILE_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for File.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+#include "ruby/encoding.h"      /* for rb_encodinng */</div><div class='add'>+</div><div class='add'>+/* file.c */</div><div class='add'>+extern const char ruby_null_device[];</div><div class='add'>+VALUE rb_home_dir_of(VALUE user, VALUE result);</div><div class='add'>+VALUE rb_default_home_dir(VALUE result);</div><div class='add'>+VALUE rb_realpath_internal(VALUE basedir, VALUE path, int strict);</div><div class='add'>+VALUE rb_check_realpath(VALUE basedir, VALUE path, rb_encoding *origenc);</div><div class='add'>+void rb_file_const(const char*, VALUE);</div><div class='add'>+int rb_file_load_ok(const char *);</div><div class='add'>+VALUE rb_file_expand_path_fast(VALUE, VALUE);</div><div class='add'>+VALUE rb_file_expand_path_internal(VALUE, VALUE, int, int, VALUE);</div><div class='add'>+VALUE rb_get_path_check_to_string(VALUE);</div><div class='add'>+VALUE rb_get_path_check_convert(VALUE);</div><div class='add'>+int ruby_is_fd_loadable(int fd);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* file.c (export) */</div><div class='add'>+#ifdef HAVE_READLINK</div><div class='add'>+VALUE rb_readlink(VALUE path, rb_encoding *enc);</div><div class='add'>+#endif</div><div class='add'>+#ifdef __APPLE__</div><div class='add'>+VALUE rb_str_normalize_ospath(const char *ptr, long len);</div><div class='add'>+#endif</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_FILE_H */</div><div class='head'>diff --git a/internal/fixnum.h b/internal/fixnum.h<br/>new file mode 100644<br/>index 0000000000..8c251adef1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/fixnum.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/fixnum.h</a></div><div class='hunk'>@@ -0,0 +1,184 @@</div><div class='add'>+#ifndef INTERNAL_FIXNUM_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_FIXNUM_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Fixnums.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"      /* for HAVE_LONG_LONG */</div><div class='add'>+#include &lt;limits.h&gt;             /* for CHAR_BIT */</div><div class='add'>+#include "internal/compilers.h" /* for __has_builtin */</div><div class='add'>+#include "ruby/internal/stdbool.h"     /* for bool */</div><div class='add'>+#include "ruby/intern.h"        /* for rb_big_mul */</div><div class='add'>+#include "ruby/ruby.h"          /* for RB_FIXABLE */</div><div class='add'>+</div><div class='add'>+#if HAVE_LONG_LONG &amp;&amp; SIZEOF_LONG * 2 &lt;= SIZEOF_LONG_LONG</div><div class='add'>+# define DLONG LONG_LONG</div><div class='add'>+# define DL2NUM(x) LL2NUM(x)</div><div class='add'>+#elif defined(HAVE_INT128_T) &amp;&amp; !(defined(__OpenBSD__) &amp;&amp; defined(__mips64__))</div><div class='add'>+# define DLONG int128_t</div><div class='add'>+# define DL2NUM(x) (RB_FIXABLE(x) ? LONG2FIX(x) : rb_int128t2big(x))</div><div class='add'>+VALUE rb_int128t2big(int128_t n); /* in bignum.c */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static inline long rb_overflowed_fix_to_int(long x);</div><div class='add'>+static inline VALUE rb_fix_plus_fix(VALUE x, VALUE y);</div><div class='add'>+static inline VALUE rb_fix_minus_fix(VALUE x, VALUE y);</div><div class='add'>+static inline VALUE rb_fix_mul_fix(VALUE x, VALUE y);</div><div class='add'>+static inline void rb_fix_divmod_fix(VALUE x, VALUE y, VALUE *divp, VALUE *modp);</div><div class='add'>+static inline VALUE rb_fix_div_fix(VALUE x, VALUE y);</div><div class='add'>+static inline VALUE rb_fix_mod_fix(VALUE x, VALUE y);</div><div class='add'>+static inline bool FIXNUM_POSITIVE_P(VALUE num);</div><div class='add'>+static inline bool FIXNUM_NEGATIVE_P(VALUE num);</div><div class='add'>+static inline bool FIXNUM_ZERO_P(VALUE num);</div><div class='add'>+</div><div class='add'>+static inline long</div><div class='add'>+rb_overflowed_fix_to_int(long x)</div><div class='add'>+{</div><div class='add'>+    return (long)((unsigned long)(x &gt;&gt; 1) ^ (1LU &lt;&lt; (SIZEOF_LONG * CHAR_BIT - 1)));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_fix_plus_fix(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+#if !__has_builtin(__builtin_add_overflow)</div><div class='add'>+    long lz = FIX2LONG(x) + FIX2LONG(y);</div><div class='add'>+    return LONG2NUM(lz);</div><div class='add'>+#else</div><div class='add'>+    long lz;</div><div class='add'>+    /* NOTE</div><div class='add'>+     * (1) `LONG2FIX(FIX2LONG(x)+FIX2LONG(y))`</div><div class='add'>+     +     = `((lx*2+1)/2 + (ly*2+1)/2)*2+1`</div><div class='add'>+     +     = `lx*2 + ly*2 + 1`</div><div class='add'>+     +     = `(lx*2+1) + (ly*2+1) - 1`</div><div class='add'>+     +     = `x + y - 1`</div><div class='add'>+     * (2) Fixnum's LSB is always 1.</div><div class='add'>+     *     It means you can always run `x - 1` without overflow.</div><div class='add'>+     * (3) Of course `z = x + (y-1)` may overflow.</div><div class='add'>+     *     At that time true value is</div><div class='add'>+     *     * positive: 0b0 1xxx...1, and z = 0b1xxx...1</div><div class='add'>+     *     * negative: 0b1 0xxx...1, and z = 0b0xxx...1</div><div class='add'>+     *     To convert this true value to long,</div><div class='add'>+     *     (a) Use arithmetic shift</div><div class='add'>+     *         * positive: 0b11xxx...</div><div class='add'>+     *         * negative: 0b00xxx...</div><div class='add'>+     *     (b) invert MSB</div><div class='add'>+     *         * positive: 0b01xxx...</div><div class='add'>+     *         * negative: 0b10xxx...</div><div class='add'>+     */</div><div class='add'>+    if (__builtin_add_overflow((long)x, (long)y-1, &amp;lz)) {</div><div class='add'>+        return rb_int2big(rb_overflowed_fix_to_int(lz));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return (VALUE)lz;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_fix_minus_fix(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+#if !__has_builtin(__builtin_sub_overflow)</div><div class='add'>+    long lz = FIX2LONG(x) - FIX2LONG(y);</div><div class='add'>+    return LONG2NUM(lz);</div><div class='add'>+#else</div><div class='add'>+    long lz;</div><div class='add'>+    if (__builtin_sub_overflow((long)x, (long)y-1, &amp;lz)) {</div><div class='add'>+        return rb_int2big(rb_overflowed_fix_to_int(lz));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return (VALUE)lz;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* arguments must be Fixnum */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_fix_mul_fix(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    long lx = FIX2LONG(x);</div><div class='add'>+    long ly = FIX2LONG(y);</div><div class='add'>+#ifdef DLONG</div><div class='add'>+    return DL2NUM((DLONG)lx * (DLONG)ly);</div><div class='add'>+#else</div><div class='add'>+    if (MUL_OVERFLOW_FIXNUM_P(lx, ly)) {</div><div class='add'>+        return rb_big_mul(rb_int2big(lx), rb_int2big(ly));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return LONG2FIX(lx * ly);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * This behaves different from C99 for negative arguments.</div><div class='add'>+ * Note that div may overflow fixnum.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+rb_fix_divmod_fix(VALUE a, VALUE b, VALUE *divp, VALUE *modp)</div><div class='add'>+{</div><div class='add'>+    /* assume / and % comply C99.</div><div class='add'>+     * ldiv(3) won't be inlined by GCC and clang.</div><div class='add'>+     * I expect / and % are compiled as single idiv.</div><div class='add'>+     */</div><div class='add'>+    long x = FIX2LONG(a);</div><div class='add'>+    long y = FIX2LONG(b);</div><div class='add'>+    long div, mod;</div><div class='add'>+    if (x == FIXNUM_MIN &amp;&amp; y == -1) {</div><div class='add'>+        if (divp) *divp = LONG2NUM(-FIXNUM_MIN);</div><div class='add'>+        if (modp) *modp = LONG2FIX(0);</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+    div = x / y;</div><div class='add'>+    mod = x % y;</div><div class='add'>+    if (y &gt; 0 ? mod &lt; 0 : mod &gt; 0) {</div><div class='add'>+        mod += y;</div><div class='add'>+        div -= 1;</div><div class='add'>+    }</div><div class='add'>+    if (divp) *divp = LONG2FIX(div);</div><div class='add'>+    if (modp) *modp = LONG2FIX(mod);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* div() for Ruby</div><div class='add'>+ * This behaves different from C99 for negative arguments.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_fix_div_fix(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    VALUE div;</div><div class='add'>+    rb_fix_divmod_fix(x, y, &amp;div, NULL);</div><div class='add'>+    return div;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* mod() for Ruby</div><div class='add'>+ * This behaves different from C99 for negative arguments.</div><div class='add'>+ */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_fix_mod_fix(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    VALUE mod;</div><div class='add'>+    rb_fix_divmod_fix(x, y, NULL, &amp;mod);</div><div class='add'>+    return mod;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+FIXNUM_POSITIVE_P(VALUE num)</div><div class='add'>+{</div><div class='add'>+    return (SIGNED_VALUE)num &gt; (SIGNED_VALUE)INT2FIX(0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+FIXNUM_NEGATIVE_P(VALUE num)</div><div class='add'>+{</div><div class='add'>+    return (SIGNED_VALUE)num &lt; 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+FIXNUM_ZERO_P(VALUE num)</div><div class='add'>+{</div><div class='add'>+    return num == INT2FIX(0);</div><div class='add'>+}</div><div class='add'>+#endif /* INTERNAL_FIXNUM_H */</div><div class='head'>diff --git a/internal/gc.h b/internal/gc.h<br/>new file mode 100644<br/>index 0000000000..e54a5dce9d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/gc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/gc.h</a></div><div class='hunk'>@@ -0,0 +1,192 @@</div><div class='add'>+#ifndef INTERNAL_GC_H                                    /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_GC_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for GC.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+</div><div class='add'>+#include "internal/compilers.h" /* for __has_attribute */</div><div class='add'>+#include "ruby/ruby.h"          /* for rb_event_flag_t */</div><div class='add'>+</div><div class='add'>+struct rb_execution_context_struct; /* in vm_core.h */</div><div class='add'>+struct rb_objspace; /* in vm_core.h */</div><div class='add'>+</div><div class='add'>+#ifdef NEWOBJ_OF</div><div class='add'>+# undef NEWOBJ_OF</div><div class='add'>+# undef RB_NEWOBJ_OF</div><div class='add'>+# undef RB_OBJ_WRITE</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define RVALUE_SIZE (sizeof(struct RBasic) + sizeof(VALUE[RBIMPL_RVALUE_EMBED_LEN_MAX]))</div><div class='add'>+</div><div class='add'>+#define RB_RVARGC_NEWOBJ_OF(var, T, c, f, s) \</div><div class='add'>+  T *(var) = (T *)(((f) &amp; FL_WB_PROTECTED) ? \</div><div class='add'>+                   rb_wb_protected_newobj_of((c), (f) &amp; ~FL_WB_PROTECTED, s) : \</div><div class='add'>+                   rb_wb_unprotected_newobj_of((c), (f), s))</div><div class='add'>+</div><div class='add'>+#define RB_RVARGC_EC_NEWOBJ_OF(ec, var, T, c, f, s) \</div><div class='add'>+  T *(var) = (T *)(((f) &amp; FL_WB_PROTECTED) ? \</div><div class='add'>+                   rb_ec_wb_protected_newobj_of((ec), (c), (f) &amp; ~FL_WB_PROTECTED, s) : \</div><div class='add'>+                   rb_wb_unprotected_newobj_of((c), (f), s))</div><div class='add'>+</div><div class='add'>+/* optimized version of NEWOBJ() */</div><div class='add'>+#define RB_NEWOBJ_OF(var, T, c, f) RB_RVARGC_NEWOBJ_OF(var, T, c, f, RVALUE_SIZE)</div><div class='add'>+</div><div class='add'>+#define RB_EC_NEWOBJ_OF(ec, var, T, c, f) RB_RVARGC_EC_NEWOBJ_OF(ec, var, T, c, f, RVALUE_SIZE)</div><div class='add'>+</div><div class='add'>+#define NEWOBJ_OF(var, T, c, f) RB_NEWOBJ_OF((var), T, (c), (f))</div><div class='add'>+#define RVARGC_NEWOBJ_OF(var, T, c, f, s) RB_RVARGC_NEWOBJ_OF((var), T, (c), (f), (s))</div><div class='add'>+#define RB_OBJ_GC_FLAGS_MAX 6   /* used in ext/objspace */</div><div class='add'>+</div><div class='add'>+#ifndef USE_UNALIGNED_MEMBER_ACCESS</div><div class='add'>+# define UNALIGNED_MEMBER_ACCESS(expr) (expr)</div><div class='add'>+#elif ! USE_UNALIGNED_MEMBER_ACCESS</div><div class='add'>+# define UNALIGNED_MEMBER_ACCESS(expr) (expr)</div><div class='add'>+#elif ! (__has_warning("-Waddress-of-packed-member") || GCC_VERSION_SINCE(9, 0, 0))</div><div class='add'>+# define UNALIGNED_MEMBER_ACCESS(expr) (expr)</div><div class='add'>+#else</div><div class='add'>+# include "internal/warnings.h"</div><div class='add'>+# define UNALIGNED_MEMBER_ACCESS(expr) __extension__({ \</div><div class='add'>+    COMPILER_WARNING_PUSH; \</div><div class='add'>+    COMPILER_WARNING_IGNORED(-Waddress-of-packed-member); \</div><div class='add'>+    __typeof__(expr) unaligned_member_access_result = (expr); \</div><div class='add'>+    COMPILER_WARNING_POP; \</div><div class='add'>+    unaligned_member_access_result; \</div><div class='add'>+})</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&amp;(ptr)-&gt;mem)</div><div class='add'>+#define RB_OBJ_WRITE(a, slot, b) \</div><div class='add'>+    rb_obj_write((VALUE)(a), UNALIGNED_MEMBER_ACCESS((VALUE *)(slot)), \</div><div class='add'>+                 (VALUE)(b), __FILE__, __LINE__)</div><div class='add'>+</div><div class='add'>+// We use SIZE_POOL_COUNT number of shape IDs for transitions out of different size pools</div><div class='add'>+// The next available shapd ID will be the SPECIAL_CONST_SHAPE_ID</div><div class='add'>+#if USE_RVARGC &amp;&amp; (SIZEOF_UINT64_T == SIZEOF_VALUE)</div><div class='add'>+# define SIZE_POOL_COUNT 5</div><div class='add'>+#else</div><div class='add'>+# define SIZE_POOL_COUNT 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define RCLASS_EXT_EMBEDDED (SIZE_POOL_COUNT &gt; 1)</div><div class='add'>+</div><div class='add'>+typedef struct ractor_newobj_size_pool_cache {</div><div class='add'>+    struct RVALUE *freelist;</div><div class='add'>+    struct heap_page *using_page;</div><div class='add'>+} rb_ractor_newobj_size_pool_cache_t;</div><div class='add'>+</div><div class='add'>+typedef struct ractor_newobj_cache {</div><div class='add'>+    size_t incremental_mark_step_allocated_slots;</div><div class='add'>+    rb_ractor_newobj_size_pool_cache_t size_pool_caches[SIZE_POOL_COUNT];</div><div class='add'>+} rb_ractor_newobj_cache_t;</div><div class='add'>+</div><div class='add'>+/* gc.c */</div><div class='add'>+extern VALUE *ruby_initial_gc_stress_ptr;</div><div class='add'>+extern int ruby_disable_gc;</div><div class='add'>+RUBY_ATTR_MALLOC void *ruby_mimmalloc(size_t size);</div><div class='add'>+void ruby_mimfree(void *ptr);</div><div class='add'>+void rb_objspace_set_event_hook(const rb_event_flag_t event);</div><div class='add'>+VALUE rb_objspace_gc_enable(struct rb_objspace *);</div><div class='add'>+VALUE rb_objspace_gc_disable(struct rb_objspace *);</div><div class='add'>+void ruby_gc_set_params(void);</div><div class='add'>+void rb_copy_wb_protected_attribute(VALUE dest, VALUE obj);</div><div class='add'>+#if __has_attribute(alloc_align)</div><div class='add'>+__attribute__((__alloc_align__(1)))</div><div class='add'>+#endif</div><div class='add'>+RUBY_ATTR_MALLOC void *rb_aligned_malloc(size_t, size_t) RUBY_ATTR_ALLOC_SIZE((2));</div><div class='add'>+size_t rb_size_mul_or_raise(size_t, size_t, VALUE); /* used in compile.c */</div><div class='add'>+size_t rb_size_mul_add_or_raise(size_t, size_t, size_t, VALUE); /* used in iseq.h */</div><div class='add'>+RUBY_ATTR_MALLOC void *rb_xmalloc_mul_add(size_t, size_t, size_t);</div><div class='add'>+RUBY_ATTR_MALLOC void *rb_xcalloc_mul_add(size_t, size_t, size_t);</div><div class='add'>+void *rb_xrealloc_mul_add(const void *, size_t, size_t, size_t);</div><div class='add'>+RUBY_ATTR_MALLOC void *rb_xmalloc_mul_add_mul(size_t, size_t, size_t, size_t);</div><div class='add'>+RUBY_ATTR_MALLOC void *rb_xcalloc_mul_add_mul(size_t, size_t, size_t, size_t);</div><div class='add'>+static inline void *ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size_t old_size) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2));</div><div class='add'>+static inline void *ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2, 3));</div><div class='add'>+static inline void ruby_sized_xfree_inlined(void *ptr, size_t size);</div><div class='add'>+VALUE rb_class_allocate_instance(VALUE klass);</div><div class='add'>+void rb_gc_ractor_newobj_cache_clear(rb_ractor_newobj_cache_t *newobj_cache);</div><div class='add'>+size_t rb_gc_obj_slot_size(VALUE obj);</div><div class='add'>+bool rb_gc_size_allocatable_p(size_t size);</div><div class='add'>+int rb_objspace_garbage_object_p(VALUE obj);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* gc.c (export) */</div><div class='add'>+const char *rb_objspace_data_type_name(VALUE obj);</div><div class='add'>+VALUE rb_wb_protected_newobj_of(VALUE, VALUE, size_t);</div><div class='add'>+VALUE rb_wb_unprotected_newobj_of(VALUE, VALUE, size_t);</div><div class='add'>+VALUE rb_ec_wb_protected_newobj_of(struct rb_execution_context_struct *ec, VALUE klass, VALUE flags, size_t);</div><div class='add'>+size_t rb_obj_memsize_of(VALUE);</div><div class='add'>+void rb_gc_verify_internal_consistency(void);</div><div class='add'>+size_t rb_obj_gc_flags(VALUE, ID[], size_t);</div><div class='add'>+void rb_gc_mark_values(long n, const VALUE *values);</div><div class='add'>+void rb_gc_mark_vm_stack_values(long n, const VALUE *values);</div><div class='add'>+void *ruby_sized_xrealloc(void *ptr, size_t new_size, size_t old_size) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2));</div><div class='add'>+void *ruby_sized_xrealloc2(void *ptr, size_t new_count, size_t element_size, size_t old_count) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2, 3));</div><div class='add'>+void ruby_sized_xfree(void *x, size_t size);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+int rb_ec_stack_check(struct rb_execution_context_struct *ec);</div><div class='add'>+void rb_gc_writebarrier_remember(VALUE obj);</div><div class='add'>+const char *rb_obj_info(VALUE obj);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#if defined(HAVE_MALLOC_USABLE_SIZE) || defined(HAVE_MALLOC_SIZE) || defined(_WIN32)</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size_t old_size)</div><div class='add'>+{</div><div class='add'>+    return ruby_xrealloc(ptr, new_size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count)</div><div class='add'>+{</div><div class='add'>+    return ruby_xrealloc2(ptr, new_count, elemsiz);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+ruby_sized_xfree_inlined(void *ptr, size_t size)</div><div class='add'>+{</div><div class='add'>+    ruby_xfree(ptr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# define SIZED_REALLOC_N(x, y, z, w) REALLOC_N(x, y, z)</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size_t old_size)</div><div class='add'>+{</div><div class='add'>+    return ruby_sized_xrealloc(ptr, new_size, old_size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count)</div><div class='add'>+{</div><div class='add'>+    return ruby_sized_xrealloc2(ptr, new_count, elemsiz, old_count);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+ruby_sized_xfree_inlined(void *ptr, size_t size)</div><div class='add'>+{</div><div class='add'>+    ruby_sized_xfree(ptr, size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+# define SIZED_REALLOC_N(v, T, m, n) \</div><div class='add'>+    ((v) = (T *)ruby_sized_xrealloc2((void *)(v), (m), sizeof(T), (n)))</div><div class='add'>+</div><div class='add'>+#endif /* HAVE_MALLOC_USABLE_SIZE */</div><div class='add'>+</div><div class='add'>+#define ruby_sized_xrealloc ruby_sized_xrealloc_inlined</div><div class='add'>+#define ruby_sized_xrealloc2 ruby_sized_xrealloc2_inlined</div><div class='add'>+#define ruby_sized_xfree ruby_sized_xfree_inlined</div><div class='add'>+#endif /* INTERNAL_GC_H */</div><div class='head'>diff --git a/internal/hash.h b/internal/hash.h<br/>new file mode 100644<br/>index 0000000000..64832c9610<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/hash.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/hash.h</a></div><div class='hunk'>@@ -0,0 +1,244 @@</div><div class='add'>+#ifndef INTERNAL_HASH_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_HASH_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Hash.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+#include "ruby/internal/stdbool.h"     /* for bool */</div><div class='add'>+#include "ruby/ruby.h"          /* for struct RBasic */</div><div class='add'>+#include "ruby/st.h"            /* for struct st_table */</div><div class='add'>+</div><div class='add'>+#define RHASH_AR_TABLE_MAX_SIZE SIZEOF_VALUE</div><div class='add'>+</div><div class='add'>+struct ar_table_struct;</div><div class='add'>+typedef unsigned char ar_hint_t;</div><div class='add'>+</div><div class='add'>+enum ruby_rhash_flags {</div><div class='add'>+    RHASH_PASS_AS_KEYWORDS = FL_USER1,                                   /* FL 1 */</div><div class='add'>+    RHASH_PROC_DEFAULT = FL_USER2,                                       /* FL 2 */</div><div class='add'>+    RHASH_ST_TABLE_FLAG = FL_USER3,                                      /* FL 3 */</div><div class='add'>+    RHASH_AR_TABLE_SIZE_MASK = (FL_USER4|FL_USER5|FL_USER6|FL_USER7),    /* FL 4..7 */</div><div class='add'>+    RHASH_AR_TABLE_SIZE_SHIFT = (FL_USHIFT+4),</div><div class='add'>+    RHASH_AR_TABLE_BOUND_MASK = (FL_USER8|FL_USER9|FL_USER10|FL_USER11), /* FL 8..11 */</div><div class='add'>+    RHASH_AR_TABLE_BOUND_SHIFT = (FL_USHIFT+8),</div><div class='add'>+</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    RHASH_TRANSIENT_FLAG = FL_USER12,                                    /* FL 12 */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    // we can not put it in "enum" because it can exceed "int" range.</div><div class='add'>+#define RHASH_LEV_MASK (FL_USER13 | FL_USER14 | FL_USER15 |                /* FL 13..19 */ \</div><div class='add'>+                        FL_USER16 | FL_USER17 | FL_USER18 | FL_USER19)</div><div class='add'>+</div><div class='add'>+    RHASH_LEV_SHIFT = (FL_USHIFT + 13),</div><div class='add'>+    RHASH_LEV_MAX = 127, /* 7 bits */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct RHash {</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+    union {</div><div class='add'>+        st_table *st;</div><div class='add'>+        struct ar_table_struct *ar; /* possibly 0 */</div><div class='add'>+    } as;</div><div class='add'>+    const VALUE ifnone;</div><div class='add'>+    union {</div><div class='add'>+        ar_hint_t ary[RHASH_AR_TABLE_MAX_SIZE];</div><div class='add'>+        VALUE word;</div><div class='add'>+    } ar_hint;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define RHASH(obj) ((struct RHash *)(obj))</div><div class='add'>+</div><div class='add'>+#ifdef RHASH_IFNONE</div><div class='add'>+# undef RHASH_IFNONE</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef RHASH_SIZE</div><div class='add'>+# undef RHASH_SIZE</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef RHASH_EMPTY_P</div><div class='add'>+# undef RHASH_EMPTY_P</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* hash.c */</div><div class='add'>+void rb_hash_st_table_set(VALUE hash, st_table *st);</div><div class='add'>+VALUE rb_hash_default_value(VALUE hash, VALUE key);</div><div class='add'>+VALUE rb_hash_set_default_proc(VALUE hash, VALUE proc);</div><div class='add'>+long rb_dbl_long_hash(double d);</div><div class='add'>+st_table *rb_init_identtable(void);</div><div class='add'>+st_index_t rb_any_hash(VALUE a);</div><div class='add'>+VALUE rb_to_hash_type(VALUE obj);</div><div class='add'>+VALUE rb_hash_key_str(VALUE);</div><div class='add'>+VALUE rb_hash_values(VALUE hash);</div><div class='add'>+VALUE rb_hash_rehash(VALUE hash);</div><div class='add'>+int rb_hash_add_new_element(VALUE hash, VALUE key, VALUE val);</div><div class='add'>+VALUE rb_hash_set_pair(VALUE hash, VALUE pair);</div><div class='add'>+int rb_hash_stlike_delete(VALUE hash, st_data_t *pkey, st_data_t *pval);</div><div class='add'>+int rb_hash_stlike_foreach_with_replace(VALUE hash, st_foreach_check_callback_func *func, st_update_callback_func *replace, st_data_t arg);</div><div class='add'>+int rb_hash_stlike_update(VALUE hash, st_data_t key, st_update_callback_func *func, st_data_t arg);</div><div class='add'>+extern st_table *rb_hash_st_table(VALUE hash);</div><div class='add'>+VALUE rb_ident_hash_new_with_size(st_index_t size);</div><div class='add'>+</div><div class='add'>+static inline unsigned RHASH_AR_TABLE_SIZE_RAW(VALUE h);</div><div class='add'>+static inline VALUE RHASH_IFNONE(VALUE h);</div><div class='add'>+static inline size_t RHASH_SIZE(VALUE h);</div><div class='add'>+static inline bool RHASH_EMPTY_P(VALUE h);</div><div class='add'>+static inline bool RHASH_AR_TABLE_P(VALUE h);</div><div class='add'>+static inline bool RHASH_ST_TABLE_P(VALUE h);</div><div class='add'>+static inline struct ar_table_struct *RHASH_AR_TABLE(VALUE h);</div><div class='add'>+static inline st_table *RHASH_ST_TABLE(VALUE h);</div><div class='add'>+static inline size_t RHASH_ST_SIZE(VALUE h);</div><div class='add'>+static inline void RHASH_ST_CLEAR(VALUE h);</div><div class='add'>+static inline bool RHASH_TRANSIENT_P(VALUE h);</div><div class='add'>+static inline void RHASH_SET_TRANSIENT_FLAG(VALUE h);</div><div class='add'>+static inline void RHASH_UNSET_TRANSIENT_FLAG(VALUE h);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* hash.c (export) */</div><div class='add'>+VALUE rb_hash_delete_entry(VALUE hash, VALUE key);</div><div class='add'>+VALUE rb_ident_hash_new(void);</div><div class='add'>+int rb_hash_stlike_foreach(VALUE hash, st_foreach_callback_func *func, st_data_t arg);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+VALUE rb_hash_new_with_size(st_index_t size);</div><div class='add'>+VALUE rb_hash_resurrect(VALUE hash);</div><div class='add'>+int rb_hash_stlike_lookup(VALUE hash, st_data_t key, st_data_t *pval);</div><div class='add'>+VALUE rb_hash_keys(VALUE hash);</div><div class='add'>+VALUE rb_hash_has_key(VALUE hash, VALUE key);</div><div class='add'>+VALUE rb_hash_compare_by_id_p(VALUE hash);</div><div class='add'>+</div><div class='add'>+st_table *rb_hash_tbl_raw(VALUE hash, const char *file, int line);</div><div class='add'>+#define RHASH_TBL_RAW(h) rb_hash_tbl_raw(h, __FILE__, __LINE__)</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+VALUE rb_hash_compare_by_id(VALUE hash);</div><div class='add'>+</div><div class='add'>+#if 0 /* for debug */</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+RHASH_AR_TABLE_P(VALUE h)</div><div class='add'>+{</div><div class='add'>+    extern int rb_hash_ar_table_p(VALUE hash);</div><div class='add'>+    return rb_hash_ar_table_p(h)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline struct ar_table_struct *</div><div class='add'>+RHASH_AR_TABLE(VALUE h)</div><div class='add'>+{</div><div class='add'>+    extern struct ar_table_struct *rb_hash_ar_table(VALUE hash);</div><div class='add'>+    return rb_hash_ar_table(h)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline st_table *</div><div class='add'>+RHASH_ST_TABLE(VALUE h)</div><div class='add'>+{</div><div class='add'>+    return rb_hash_st_table(h)</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+RHASH_AR_TABLE_P(VALUE h)</div><div class='add'>+{</div><div class='add'>+    return ! FL_TEST_RAW(h, RHASH_ST_TABLE_FLAG);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline struct ar_table_struct *</div><div class='add'>+RHASH_AR_TABLE(VALUE h)</div><div class='add'>+{</div><div class='add'>+    return RHASH(h)-&gt;as.ar;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline st_table *</div><div class='add'>+RHASH_ST_TABLE(VALUE h)</div><div class='add'>+{</div><div class='add'>+    return RHASH(h)-&gt;as.st;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+RHASH_IFNONE(VALUE h)</div><div class='add'>+{</div><div class='add'>+    return RHASH(h)-&gt;ifnone;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+RHASH_SIZE(VALUE h)</div><div class='add'>+{</div><div class='add'>+    if (RHASH_AR_TABLE_P(h)) {</div><div class='add'>+        return RHASH_AR_TABLE_SIZE_RAW(h);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RHASH_ST_SIZE(h);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+RHASH_EMPTY_P(VALUE h)</div><div class='add'>+{</div><div class='add'>+    return RHASH_SIZE(h) == 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+RHASH_ST_TABLE_P(VALUE h)</div><div class='add'>+{</div><div class='add'>+    return ! RHASH_AR_TABLE_P(h);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+RHASH_ST_SIZE(VALUE h)</div><div class='add'>+{</div><div class='add'>+    return RHASH_ST_TABLE(h)-&gt;num_entries;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RHASH_ST_CLEAR(VALUE h)</div><div class='add'>+{</div><div class='add'>+    FL_UNSET_RAW(h, RHASH_ST_TABLE_FLAG);</div><div class='add'>+    RHASH(h)-&gt;as.ar = NULL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline unsigned</div><div class='add'>+RHASH_AR_TABLE_SIZE_RAW(VALUE h)</div><div class='add'>+{</div><div class='add'>+    VALUE ret = FL_TEST_RAW(h, RHASH_AR_TABLE_SIZE_MASK);</div><div class='add'>+    ret &gt;&gt;= RHASH_AR_TABLE_SIZE_SHIFT;</div><div class='add'>+    return (unsigned)ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+RHASH_TRANSIENT_P(VALUE h)</div><div class='add'>+{</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    return FL_TEST_RAW(h, RHASH_TRANSIENT_FLAG);</div><div class='add'>+#else</div><div class='add'>+    return false;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RHASH_SET_TRANSIENT_FLAG(VALUE h)</div><div class='add'>+{</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    FL_SET_RAW(h, RHASH_TRANSIENT_FLAG);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RHASH_UNSET_TRANSIENT_FLAG(VALUE h)</div><div class='add'>+{</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    FL_UNSET_RAW(h, RHASH_TRANSIENT_FLAG);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_HASH_H */</div><div class='head'>diff --git a/internal/imemo.h b/internal/imemo.h<br/>new file mode 100644<br/>index 0000000000..91b524e0a6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/imemo.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/imemo.h</a></div><div class='hunk'>@@ -0,0 +1,242 @@</div><div class='add'>+#ifndef INTERNAL_IMEMO_H                                 /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_IMEMO_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      IMEMO: Internal memo object.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+#include "internal/array.h"     /* for rb_ary_hidden_new_fill */</div><div class='add'>+#include "internal/gc.h"        /* for RB_OBJ_WRITE */</div><div class='add'>+#include "ruby/internal/stdbool.h"     /* for bool */</div><div class='add'>+#include "ruby/ruby.h"          /* for rb_block_call_func_t */</div><div class='add'>+</div><div class='add'>+#ifndef IMEMO_DEBUG</div><div class='add'>+# define IMEMO_DEBUG 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define IMEMO_MASK   0x0f</div><div class='add'>+</div><div class='add'>+/* FL_USER0 to FL_USER3 is for type */</div><div class='add'>+#define IMEMO_FL_USHIFT (FL_USHIFT + 4)</div><div class='add'>+#define IMEMO_FL_USER0 FL_USER4</div><div class='add'>+#define IMEMO_FL_USER1 FL_USER5</div><div class='add'>+#define IMEMO_FL_USER2 FL_USER6</div><div class='add'>+#define IMEMO_FL_USER3 FL_USER7</div><div class='add'>+#define IMEMO_FL_USER4 FL_USER8</div><div class='add'>+#define IMEMO_FL_USER5 FL_USER9</div><div class='add'>+</div><div class='add'>+enum imemo_type {</div><div class='add'>+    imemo_env            =  0,</div><div class='add'>+    imemo_cref           =  1, /*!&lt; class reference */</div><div class='add'>+    imemo_svar           =  2, /*!&lt; special variable */</div><div class='add'>+    imemo_throw_data     =  3,</div><div class='add'>+    imemo_ifunc          =  4, /*!&lt; iterator function */</div><div class='add'>+    imemo_memo           =  5,</div><div class='add'>+    imemo_ment           =  6,</div><div class='add'>+    imemo_iseq           =  7,</div><div class='add'>+    imemo_tmpbuf         =  8,</div><div class='add'>+    imemo_ast            =  9,</div><div class='add'>+    imemo_parser_strterm = 10,</div><div class='add'>+    imemo_callinfo       = 11,</div><div class='add'>+    imemo_callcache      = 12,</div><div class='add'>+    imemo_constcache     = 13,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* CREF (Class REFerence) is defined in method.h */</div><div class='add'>+</div><div class='add'>+/*! SVAR (Special VARiable) */</div><div class='add'>+struct vm_svar {</div><div class='add'>+    VALUE flags;</div><div class='add'>+    const VALUE cref_or_me; /*!&lt; class reference or rb_method_entry_t */</div><div class='add'>+    const VALUE lastline;</div><div class='add'>+    const VALUE backref;</div><div class='add'>+    const VALUE others;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/*! THROW_DATA */</div><div class='add'>+struct vm_throw_data {</div><div class='add'>+    VALUE flags;</div><div class='add'>+    VALUE reserved;</div><div class='add'>+    const VALUE throw_obj;</div><div class='add'>+    const struct rb_control_frame_struct *catch_frame;</div><div class='add'>+    int throw_state;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define THROW_DATA_CONSUMED IMEMO_FL_USER0</div><div class='add'>+</div><div class='add'>+/* IFUNC (Internal FUNCtion) */</div><div class='add'>+</div><div class='add'>+struct vm_ifunc_argc {</div><div class='add'>+#if SIZEOF_INT * 2 &gt; SIZEOF_VALUE</div><div class='add'>+    signed int min: (SIZEOF_VALUE * CHAR_BIT) / 2;</div><div class='add'>+    signed int max: (SIZEOF_VALUE * CHAR_BIT) / 2;</div><div class='add'>+#else</div><div class='add'>+    int min, max;</div><div class='add'>+#endif</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/*! IFUNC (Internal FUNCtion) */</div><div class='add'>+struct vm_ifunc {</div><div class='add'>+    VALUE flags;</div><div class='add'>+    VALUE reserved;</div><div class='add'>+    rb_block_call_func_t func;</div><div class='add'>+    const void *data;</div><div class='add'>+    struct vm_ifunc_argc argc;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct rb_imemo_tmpbuf_struct {</div><div class='add'>+    VALUE flags;</div><div class='add'>+    VALUE reserved;</div><div class='add'>+    VALUE *ptr; /* malloc'ed buffer */</div><div class='add'>+    struct rb_imemo_tmpbuf_struct *next; /* next imemo */</div><div class='add'>+    size_t cnt; /* buffer size in VALUE */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/*! MEMO</div><div class='add'>+ *</div><div class='add'>+ * @see imemo_type</div><div class='add'>+ * */</div><div class='add'>+struct MEMO {</div><div class='add'>+    VALUE flags;</div><div class='add'>+    VALUE reserved;</div><div class='add'>+    const VALUE v1;</div><div class='add'>+    const VALUE v2;</div><div class='add'>+    union {</div><div class='add'>+        long cnt;</div><div class='add'>+        long state;</div><div class='add'>+        const VALUE value;</div><div class='add'>+        void (*func)(void);</div><div class='add'>+    } u3;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* ment is in method.h */</div><div class='add'>+</div><div class='add'>+#define THROW_DATA_P(err) imemo_throw_data_p((VALUE)err)</div><div class='add'>+#define MEMO_CAST(m) ((struct MEMO *)(m))</div><div class='add'>+#define MEMO_NEW(a, b, c) ((struct MEMO *)rb_imemo_new(imemo_memo, (VALUE)(a), (VALUE)(b), (VALUE)(c), 0))</div><div class='add'>+#define MEMO_FOR(type, value) ((type *)RARRAY_PTR(value))</div><div class='add'>+#define NEW_MEMO_FOR(type, value) \</div><div class='add'>+  ((value) = rb_ary_hidden_new_fill(type_roomof(type, VALUE)), MEMO_FOR(type, value))</div><div class='add'>+#define NEW_PARTIAL_MEMO_FOR(type, value, member) \</div><div class='add'>+  ((value) = rb_ary_hidden_new_fill(type_roomof(type, VALUE)), \</div><div class='add'>+   rb_ary_set_len((value), offsetof(type, member) / sizeof(VALUE)), \</div><div class='add'>+   MEMO_FOR(type, value))</div><div class='add'>+</div><div class='add'>+typedef struct rb_imemo_tmpbuf_struct rb_imemo_tmpbuf_t;</div><div class='add'>+rb_imemo_tmpbuf_t *rb_imemo_tmpbuf_parser_heap(void *buf, rb_imemo_tmpbuf_t *old_heap, size_t cnt);</div><div class='add'>+struct vm_ifunc *rb_vm_ifunc_new(rb_block_call_func_t func, const void *data, int min_argc, int max_argc);</div><div class='add'>+void rb_strterm_mark(VALUE obj);</div><div class='add'>+static inline enum imemo_type imemo_type(VALUE imemo);</div><div class='add'>+static inline int imemo_type_p(VALUE imemo, enum imemo_type imemo_type);</div><div class='add'>+static inline bool imemo_throw_data_p(VALUE imemo);</div><div class='add'>+static inline struct vm_ifunc *rb_vm_ifunc_proc_new(rb_block_call_func_t func, const void *data);</div><div class='add'>+static inline VALUE rb_imemo_tmpbuf_auto_free_pointer(void);</div><div class='add'>+static inline void *RB_IMEMO_TMPBUF_PTR(VALUE v);</div><div class='add'>+static inline void *rb_imemo_tmpbuf_set_ptr(VALUE v, void *ptr);</div><div class='add'>+static inline VALUE rb_imemo_tmpbuf_auto_free_pointer_new_from_an_RString(VALUE str);</div><div class='add'>+static inline void MEMO_V1_SET(struct MEMO *m, VALUE v);</div><div class='add'>+static inline void MEMO_V2_SET(struct MEMO *m, VALUE v);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+#if IMEMO_DEBUG</div><div class='add'>+VALUE rb_imemo_new_debug(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0, const char *file, int line);</div><div class='add'>+#define rb_imemo_new(type, v1, v2, v3, v0) rb_imemo_new_debug(type, v1, v2, v3, v0, __FILE__, __LINE__)</div><div class='add'>+#else</div><div class='add'>+VALUE rb_imemo_new(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0);</div><div class='add'>+#endif</div><div class='add'>+const char *rb_imemo_name(enum imemo_type type);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+static inline enum imemo_type</div><div class='add'>+imemo_type(VALUE imemo)</div><div class='add'>+{</div><div class='add'>+    return (RBASIC(imemo)-&gt;flags &gt;&gt; FL_USHIFT) &amp; IMEMO_MASK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+imemo_type_p(VALUE imemo, enum imemo_type imemo_type)</div><div class='add'>+{</div><div class='add'>+    if (LIKELY(!RB_SPECIAL_CONST_P(imemo))) {</div><div class='add'>+        /* fixed at compile time if imemo_type is given. */</div><div class='add'>+        const VALUE mask = (IMEMO_MASK &lt;&lt; FL_USHIFT) | RUBY_T_MASK;</div><div class='add'>+        const VALUE expected_type = (imemo_type &lt;&lt; FL_USHIFT) | T_IMEMO;</div><div class='add'>+        /* fixed at runtime. */</div><div class='add'>+        return expected_type == (RBASIC(imemo)-&gt;flags &amp; mask);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define IMEMO_TYPE_P(v, t) imemo_type_p((VALUE)v, t)</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+imemo_throw_data_p(VALUE imemo)</div><div class='add'>+{</div><div class='add'>+    return RB_TYPE_P(imemo, T_IMEMO);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline struct vm_ifunc *</div><div class='add'>+rb_vm_ifunc_proc_new(rb_block_call_func_t func, const void *data)</div><div class='add'>+{</div><div class='add'>+    return rb_vm_ifunc_new(func, data, 0, UNLIMITED_ARGUMENTS);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_imemo_tmpbuf_auto_free_pointer(void)</div><div class='add'>+{</div><div class='add'>+    return rb_imemo_new(imemo_tmpbuf, 0, 0, 0, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+RB_IMEMO_TMPBUF_PTR(VALUE v)</div><div class='add'>+{</div><div class='add'>+    const struct rb_imemo_tmpbuf_struct *p = (const void *)v;</div><div class='add'>+    return p-&gt;ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+rb_imemo_tmpbuf_set_ptr(VALUE v, void *ptr)</div><div class='add'>+{</div><div class='add'>+    return ((rb_imemo_tmpbuf_t *)v)-&gt;ptr = ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_imemo_tmpbuf_auto_free_pointer_new_from_an_RString(VALUE str)</div><div class='add'>+{</div><div class='add'>+    const void *src;</div><div class='add'>+    VALUE imemo;</div><div class='add'>+    rb_imemo_tmpbuf_t *tmpbuf;</div><div class='add'>+    void *dst;</div><div class='add'>+    size_t len;</div><div class='add'>+</div><div class='add'>+    SafeStringValue(str);</div><div class='add'>+    /* create tmpbuf to keep the pointer before xmalloc */</div><div class='add'>+    imemo = rb_imemo_tmpbuf_auto_free_pointer();</div><div class='add'>+    tmpbuf = (rb_imemo_tmpbuf_t *)imemo;</div><div class='add'>+    len = RSTRING_LEN(str);</div><div class='add'>+    src = RSTRING_PTR(str);</div><div class='add'>+    dst = ruby_xmalloc(len);</div><div class='add'>+    memcpy(dst, src, len);</div><div class='add'>+    tmpbuf-&gt;ptr = dst;</div><div class='add'>+    return imemo;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+MEMO_V1_SET(struct MEMO *m, VALUE v)</div><div class='add'>+{</div><div class='add'>+    RB_OBJ_WRITE(m, &amp;m-&gt;v1, v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+MEMO_V2_SET(struct MEMO *m, VALUE v)</div><div class='add'>+{</div><div class='add'>+    RB_OBJ_WRITE(m, &amp;m-&gt;v2, v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_IMEMO_H */</div><div class='head'>diff --git a/internal/inits.h b/internal/inits.h<br/>new file mode 100644<br/>index 0000000000..03e180f77b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/inits.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/inits.h</a></div><div class='hunk'>@@ -0,0 +1,50 @@</div><div class='add'>+#ifndef INTERNAL_INITS_H                                 /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_INITS_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header aggregating init functions.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/* class.c */</div><div class='add'>+void Init_class_hierarchy(void);</div><div class='add'>+</div><div class='add'>+/* dmyext.c */</div><div class='add'>+void Init_enc(void);</div><div class='add'>+void Init_ext(void);</div><div class='add'>+</div><div class='add'>+/* file.c */</div><div class='add'>+void Init_File(void);</div><div class='add'>+</div><div class='add'>+/* gc.c */</div><div class='add'>+void Init_heap(void);</div><div class='add'>+</div><div class='add'>+/* localeinit.c */</div><div class='add'>+int Init_enc_set_filesystem_encoding(void);</div><div class='add'>+</div><div class='add'>+/* newline.c */</div><div class='add'>+void Init_newline(void);</div><div class='add'>+</div><div class='add'>+/* vm.c */</div><div class='add'>+void Init_BareVM(void);</div><div class='add'>+void Init_vm_objects(void);</div><div class='add'>+</div><div class='add'>+/* vm_backtrace.c */</div><div class='add'>+void Init_vm_backtrace(void);</div><div class='add'>+</div><div class='add'>+/* vm_eval.c */</div><div class='add'>+void Init_vm_eval(void);</div><div class='add'>+</div><div class='add'>+/* vm_insnhelper.c */</div><div class='add'>+void Init_vm_stack_canary(void);</div><div class='add'>+</div><div class='add'>+/* vm_method.c */</div><div class='add'>+void Init_eval_method(void);</div><div class='add'>+</div><div class='add'>+/* inits.c */</div><div class='add'>+void rb_call_inits(void);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_INITS_H */</div><div class='head'>diff --git a/internal/io.h b/internal/io.h<br/>new file mode 100644<br/>index 0000000000..b5f15499d7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/io.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/io.h</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+#ifndef INTERNAL_IO_H                                    /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_IO_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for IO.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+#include "ruby/io.h"            /* for rb_io_t */</div><div class='add'>+</div><div class='add'>+/* io.c */</div><div class='add'>+void ruby_set_inplace_mode(const char *);</div><div class='add'>+void rb_stdio_set_default_encoding(void);</div><div class='add'>+VALUE rb_io_flush_raw(VALUE, int);</div><div class='add'>+size_t rb_io_memsize(const rb_io_t *);</div><div class='add'>+int rb_stderr_tty_p(void);</div><div class='add'>+void rb_io_fptr_finalize_internal(void *ptr);</div><div class='add'>+#ifdef rb_io_fptr_finalize</div><div class='add'>+# undef rb_io_fptr_finalize</div><div class='add'>+#endif</div><div class='add'>+#define rb_io_fptr_finalize rb_io_fptr_finalize_internal</div><div class='add'>+VALUE rb_io_popen(VALUE pname, VALUE pmode, VALUE env, VALUE opt);</div><div class='add'>+</div><div class='add'>+VALUE rb_io_prep_stdin(void);</div><div class='add'>+VALUE rb_io_prep_stdout(void);</div><div class='add'>+VALUE rb_io_prep_stderr(void);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* io.c (export) */</div><div class='add'>+void rb_maygvl_fd_fix_cloexec(int fd);</div><div class='add'>+int rb_gc_for_fd(int err);</div><div class='add'>+void rb_write_error_str(VALUE mesg);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_IO_H */</div><div class='head'>diff --git a/internal/load.h b/internal/load.h<br/>new file mode 100644<br/>index 0000000000..d4c0bb91ba<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/load.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/load.h</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+#ifndef INTERNAL_LOAD_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_LOAD_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for require.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+</div><div class='add'>+/* load.c */</div><div class='add'>+VALUE rb_get_expanded_load_path(void);</div><div class='add'>+int rb_require_internal(VALUE fname);</div><div class='add'>+NORETURN(void rb_load_fail(VALUE, const char*));</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_LOAD_H */</div><div class='head'>diff --git a/internal/loadpath.h b/internal/loadpath.h<br/>new file mode 100644<br/>index 0000000000..b3a85e7b41<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/loadpath.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/loadpath.h</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+#ifndef INTERNAL_LOADPATH_H                              /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_LOADPATH_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for $LOAD_PATH.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/* loadpath.c */</div><div class='add'>+extern const char ruby_exec_prefix[];</div><div class='add'>+extern const char ruby_initial_load_paths[];</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_LOADPATH_H */</div><div class='head'>diff --git a/internal/math.h b/internal/math.h<br/>new file mode 100644<br/>index 0000000000..08f852ffc1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/math.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/math.h</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+#ifndef INTERNAL_MATH_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_MATH_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Math.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+</div><div class='add'>+/* math.c */</div><div class='add'>+VALUE rb_math_atan2(VALUE, VALUE);</div><div class='add'>+VALUE rb_math_cos(VALUE);</div><div class='add'>+VALUE rb_math_cosh(VALUE);</div><div class='add'>+VALUE rb_math_exp(VALUE);</div><div class='add'>+VALUE rb_math_hypot(VALUE, VALUE);</div><div class='add'>+VALUE rb_math_log(int argc, const VALUE *argv);</div><div class='add'>+VALUE rb_math_sin(VALUE);</div><div class='add'>+VALUE rb_math_sinh(VALUE);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_MATH_H */</div><div class='head'>diff --git a/internal/missing.h b/internal/missing.h<br/>new file mode 100644<br/>index 0000000000..c0992a151a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/missing.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/missing.h</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+#ifndef INTERNAL_MISSING_H                               /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_MISSING_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header corresponding missing.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"      /* for HAVE_SETPROCTITLE */</div><div class='add'>+</div><div class='add'>+/* missing/setproctitle.c */</div><div class='add'>+#ifndef HAVE_SETPROCTITLE</div><div class='add'>+extern void ruby_init_setproctitle(int argc, char *argv[]);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_MISSING_H */</div><div class='head'>diff --git a/internal/numeric.h b/internal/numeric.h<br/>new file mode 100644<br/>index 0000000000..89bc54b307<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/numeric.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/numeric.h</a></div><div class='hunk'>@@ -0,0 +1,275 @@</div><div class='add'>+#ifndef INTERNAL_NUMERIC_H                               /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_NUMERIC_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Numeric.</div><div class='add'>+ */</div><div class='add'>+#include "internal/bignum.h"    /* for BIGNUM_POSITIVE_P */</div><div class='add'>+#include "internal/bits.h"      /* for RUBY_BIT_ROTL */</div><div class='add'>+#include "internal/fixnum.h"    /* for FIXNUM_POSITIVE_P */</div><div class='add'>+#include "internal/vm.h"        /* for rb_method_basic_definition_p */</div><div class='add'>+#include "ruby/intern.h"        /* for rb_cmperr */</div><div class='add'>+#include "ruby/ruby.h"          /* for USE_FLONUM */</div><div class='add'>+</div><div class='add'>+#define ROUND_TO(mode, even, up, down) \</div><div class='add'>+    ((mode) == RUBY_NUM_ROUND_HALF_EVEN ? even : \</div><div class='add'>+     (mode) == RUBY_NUM_ROUND_HALF_UP ? up : down)</div><div class='add'>+#define ROUND_FUNC(mode, name) \</div><div class='add'>+    ROUND_TO(mode, name##_half_even, name##_half_up, name##_half_down)</div><div class='add'>+#define ROUND_CALL(mode, name, args) \</div><div class='add'>+    ROUND_TO(mode, name##_half_even args, \</div><div class='add'>+             name##_half_up args, name##_half_down args)</div><div class='add'>+</div><div class='add'>+#ifndef ROUND_DEFAULT</div><div class='add'>+# define ROUND_DEFAULT RUBY_NUM_ROUND_HALF_UP</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+enum ruby_num_rounding_mode {</div><div class='add'>+    RUBY_NUM_ROUND_HALF_UP,</div><div class='add'>+    RUBY_NUM_ROUND_HALF_EVEN,</div><div class='add'>+    RUBY_NUM_ROUND_HALF_DOWN,</div><div class='add'>+    RUBY_NUM_ROUND_DEFAULT = ROUND_DEFAULT,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* same as internal.h */</div><div class='add'>+#define numberof(array) ((int)(sizeof(array) / sizeof((array)[0])))</div><div class='add'>+#define roomof(x, y) (((x) + (y) - 1) / (y))</div><div class='add'>+#define type_roomof(x, y) roomof(sizeof(x), sizeof(y))</div><div class='add'>+</div><div class='add'>+#if SIZEOF_DOUBLE &lt;= SIZEOF_VALUE</div><div class='add'>+typedef double rb_float_value_type;</div><div class='add'>+#else</div><div class='add'>+typedef struct {</div><div class='add'>+    VALUE values[roomof(SIZEOF_DOUBLE, SIZEOF_VALUE)];</div><div class='add'>+} rb_float_value_type;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct RFloat {</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+    rb_float_value_type float_value;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define RFLOAT(obj)  ((struct RFloat *)(obj))</div><div class='add'>+</div><div class='add'>+/* numeric.c */</div><div class='add'>+int rb_num_to_uint(VALUE val, unsigned int *ret);</div><div class='add'>+VALUE ruby_num_interval_step_size(VALUE from, VALUE to, VALUE step, int excl);</div><div class='add'>+double ruby_float_step_size(double beg, double end, double unit, int excl);</div><div class='add'>+int ruby_float_step(VALUE from, VALUE to, VALUE step, int excl, int allow_endless);</div><div class='add'>+int rb_num_negative_p(VALUE);</div><div class='add'>+VALUE rb_int_succ(VALUE num);</div><div class='add'>+VALUE rb_float_uminus(VALUE num);</div><div class='add'>+VALUE rb_int_plus(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_float_plus(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_minus(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_float_minus(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_mul(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_float_mul(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_float_div(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_idiv(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_modulo(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int2str(VALUE num, int base);</div><div class='add'>+VALUE rb_fix_plus(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_gt(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_float_gt(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_ge(VALUE x, VALUE y);</div><div class='add'>+enum ruby_num_rounding_mode rb_num_get_rounding_option(VALUE opts);</div><div class='add'>+double rb_int_fdiv_double(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_pow(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_float_pow(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_cmp(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_equal(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_divmod(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_and(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_lshift(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_int_div(VALUE x, VALUE y);</div><div class='add'>+int rb_int_positive_p(VALUE num);</div><div class='add'>+int rb_int_negative_p(VALUE num);</div><div class='add'>+VALUE rb_check_integer_type(VALUE);</div><div class='add'>+VALUE rb_num_pow(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_float_ceil(VALUE num, int ndigits);</div><div class='add'>+VALUE rb_float_floor(VALUE x, int ndigits);</div><div class='add'>+VALUE rb_float_abs(VALUE flt);</div><div class='add'>+static inline VALUE rb_num_compare_with_zero(VALUE num, ID mid);</div><div class='add'>+static inline int rb_num_positive_int_p(VALUE num);</div><div class='add'>+static inline int rb_num_negative_int_p(VALUE num);</div><div class='add'>+static inline double rb_float_flonum_value(VALUE v);</div><div class='add'>+static inline double rb_float_noflonum_value(VALUE v);</div><div class='add'>+static inline double rb_float_value_inline(VALUE v);</div><div class='add'>+static inline VALUE rb_float_new_inline(double d);</div><div class='add'>+static inline bool INT_POSITIVE_P(VALUE num);</div><div class='add'>+static inline bool INT_NEGATIVE_P(VALUE num);</div><div class='add'>+static inline bool FLOAT_ZERO_P(VALUE num);</div><div class='add'>+#define rb_float_value rb_float_value_inline</div><div class='add'>+#define rb_float_new   rb_float_new_inline</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* numeric.c (export) */</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+VALUE rb_flo_div_flo(VALUE x, VALUE y);</div><div class='add'>+double ruby_float_mod(double x, double y);</div><div class='add'>+VALUE rb_float_equal(VALUE x, VALUE y);</div><div class='add'>+int rb_float_cmp(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_float_eql(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_fix_aref(VALUE fix, VALUE idx);</div><div class='add'>+VALUE rb_int_zero_p(VALUE num);</div><div class='add'>+VALUE rb_int_even_p(VALUE num);</div><div class='add'>+VALUE rb_int_odd_p(VALUE num);</div><div class='add'>+VALUE rb_int_abs(VALUE num);</div><div class='add'>+VALUE rb_int_bit_length(VALUE num);</div><div class='add'>+VALUE rb_int_uminus(VALUE num);</div><div class='add'>+VALUE rb_int_comp(VALUE num);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+INT_POSITIVE_P(VALUE num)</div><div class='add'>+{</div><div class='add'>+    if (FIXNUM_P(num)) {</div><div class='add'>+        return FIXNUM_POSITIVE_P(num);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return BIGNUM_POSITIVE_P(num);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+INT_NEGATIVE_P(VALUE num)</div><div class='add'>+{</div><div class='add'>+    if (FIXNUM_P(num)) {</div><div class='add'>+        return FIXNUM_NEGATIVE_P(num);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return BIGNUM_NEGATIVE_P(num);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+FLOAT_ZERO_P(VALUE num)</div><div class='add'>+{</div><div class='add'>+    return RFLOAT_VALUE(num) == 0.0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_num_compare_with_zero(VALUE num, ID mid)</div><div class='add'>+{</div><div class='add'>+    VALUE zero = INT2FIX(0);</div><div class='add'>+    VALUE r = rb_check_funcall(num, mid, 1, &amp;zero);</div><div class='add'>+    if (r == Qundef) {</div><div class='add'>+        rb_cmperr(num, zero);</div><div class='add'>+    }</div><div class='add'>+    return r;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+rb_num_positive_int_p(VALUE num)</div><div class='add'>+{</div><div class='add'>+    const ID mid = '&gt;';</div><div class='add'>+</div><div class='add'>+    if (FIXNUM_P(num)) {</div><div class='add'>+        if (rb_method_basic_definition_p(rb_cInteger, mid))</div><div class='add'>+            return FIXNUM_POSITIVE_P(num);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(num, T_BIGNUM)) {</div><div class='add'>+        if (rb_method_basic_definition_p(rb_cInteger, mid))</div><div class='add'>+            return BIGNUM_POSITIVE_P(num);</div><div class='add'>+    }</div><div class='add'>+    return RTEST(rb_num_compare_with_zero(num, mid));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+rb_num_negative_int_p(VALUE num)</div><div class='add'>+{</div><div class='add'>+    const ID mid = '&lt;';</div><div class='add'>+</div><div class='add'>+    if (FIXNUM_P(num)) {</div><div class='add'>+        if (rb_method_basic_definition_p(rb_cInteger, mid))</div><div class='add'>+            return FIXNUM_NEGATIVE_P(num);</div><div class='add'>+    }</div><div class='add'>+    else if (RB_TYPE_P(num, T_BIGNUM)) {</div><div class='add'>+        if (rb_method_basic_definition_p(rb_cInteger, mid))</div><div class='add'>+            return BIGNUM_NEGATIVE_P(num);</div><div class='add'>+    }</div><div class='add'>+    return RTEST(rb_num_compare_with_zero(num, mid));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline double</div><div class='add'>+rb_float_flonum_value(VALUE v)</div><div class='add'>+{</div><div class='add'>+#if USE_FLONUM</div><div class='add'>+    if (v != (VALUE)0x8000000000000002) { /* LIKELY */</div><div class='add'>+        union {</div><div class='add'>+            double d;</div><div class='add'>+            VALUE v;</div><div class='add'>+        } t;</div><div class='add'>+</div><div class='add'>+        VALUE b63 = (v &gt;&gt; 63);</div><div class='add'>+        /* e: xx1... -&gt; 011... */</div><div class='add'>+        /*    xx0... -&gt; 100... */</div><div class='add'>+        /*      ^b63           */</div><div class='add'>+        t.v = RUBY_BIT_ROTR((2 - b63) | (v &amp; ~(VALUE)0x03), 3);</div><div class='add'>+        return t.d;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    return 0.0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline double</div><div class='add'>+rb_float_noflonum_value(VALUE v)</div><div class='add'>+{</div><div class='add'>+#if SIZEOF_DOUBLE &lt;= SIZEOF_VALUE</div><div class='add'>+    return RFLOAT(v)-&gt;float_value;</div><div class='add'>+#else</div><div class='add'>+    union {</div><div class='add'>+        rb_float_value_type v;</div><div class='add'>+        double d;</div><div class='add'>+    } u = {RFLOAT(v)-&gt;float_value};</div><div class='add'>+    return u.d;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline double</div><div class='add'>+rb_float_value_inline(VALUE v)</div><div class='add'>+{</div><div class='add'>+    if (FLONUM_P(v)) {</div><div class='add'>+        return rb_float_flonum_value(v);</div><div class='add'>+    }</div><div class='add'>+    return rb_float_noflonum_value(v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_float_new_inline(double d)</div><div class='add'>+{</div><div class='add'>+#if USE_FLONUM</div><div class='add'>+    union {</div><div class='add'>+        double d;</div><div class='add'>+        VALUE v;</div><div class='add'>+    } t;</div><div class='add'>+    int bits;</div><div class='add'>+</div><div class='add'>+    t.d = d;</div><div class='add'>+    bits = (int)((VALUE)(t.v &gt;&gt; 60) &amp; 0x7);</div><div class='add'>+    /* bits contains 3 bits of b62..b60. */</div><div class='add'>+    /* bits - 3 = */</div><div class='add'>+    /*   b011 -&gt; b000 */</div><div class='add'>+    /*   b100 -&gt; b001 */</div><div class='add'>+</div><div class='add'>+    if (t.v != 0x3000000000000000 /* 1.72723e-77 */ &amp;&amp;</div><div class='add'>+        !((bits-3) &amp; ~0x01)) {</div><div class='add'>+        return (RUBY_BIT_ROTL(t.v, 3) &amp; ~(VALUE)0x01) | 0x02;</div><div class='add'>+    }</div><div class='add'>+    else if (t.v == (VALUE)0) {</div><div class='add'>+        /* +0.0 */</div><div class='add'>+        return 0x8000000000000002;</div><div class='add'>+    }</div><div class='add'>+    /* out of range */</div><div class='add'>+#endif</div><div class='add'>+    return rb_float_new_in_heap(d);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_NUMERIC_H */</div><div class='head'>diff --git a/internal/object.h b/internal/object.h<br/>new file mode 100644<br/>index 0000000000..7b54e13dd2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/object.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/object.h</a></div><div class='hunk'>@@ -0,0 +1,61 @@</div><div class='add'>+#ifndef INTERNAL_OBJECT_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_OBJECT_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Object.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+</div><div class='add'>+/* object.c */</div><div class='add'>+VALUE rb_class_search_ancestor(VALUE klass, VALUE super);</div><div class='add'>+NORETURN(void rb_undefined_alloc(VALUE klass));</div><div class='add'>+double rb_num_to_dbl(VALUE val);</div><div class='add'>+VALUE rb_obj_dig(int argc, VALUE *argv, VALUE self, VALUE notfound);</div><div class='add'>+VALUE rb_immutable_obj_clone(int, VALUE *, VALUE);</div><div class='add'>+VALUE rb_check_convert_type_with_id(VALUE,int,const char*,ID);</div><div class='add'>+int rb_bool_expected(VALUE, const char *, int raise);</div><div class='add'>+static inline void RBASIC_CLEAR_CLASS(VALUE obj);</div><div class='add'>+static inline void RBASIC_SET_CLASS_RAW(VALUE obj, VALUE klass);</div><div class='add'>+static inline void RBASIC_SET_CLASS(VALUE obj, VALUE klass);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* object.c (export) */</div><div class='add'>+int rb_opts_exception_p(VALUE opts, int default_value);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+CONSTFUNC(VALUE rb_obj_equal(VALUE obj1, VALUE obj2));</div><div class='add'>+CONSTFUNC(VALUE rb_obj_not(VALUE obj));</div><div class='add'>+VALUE rb_obj_not_equal(VALUE obj1, VALUE obj2);</div><div class='add'>+void rb_obj_copy_ivar(VALUE dest, VALUE obj);</div><div class='add'>+VALUE rb_false(VALUE obj);</div><div class='add'>+VALUE rb_convert_type_with_id(VALUE v, int t, const char* nam, ID mid);</div><div class='add'>+VALUE rb_obj_size(VALUE self, VALUE args, VALUE obj);</div><div class='add'>+VALUE rb_get_freeze_opt(int argc, VALUE *argv);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RBASIC_SET_CLASS_RAW(VALUE obj, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    const VALUE *ptr = &amp;RBASIC(obj)-&gt;klass;</div><div class='add'>+    *(VALUE *)ptr = klass;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RBASIC_CLEAR_CLASS(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    RBASIC_SET_CLASS_RAW(obj, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RBASIC_SET_CLASS(VALUE obj, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    VALUE oldv = RBASIC_CLASS(obj);</div><div class='add'>+    RBASIC_SET_CLASS_RAW(obj, klass);</div><div class='add'>+    RB_OBJ_WRITTEN(obj, oldv, klass);</div><div class='add'>+}</div><div class='add'>+#endif /* INTERNAL_OBJECT_H */</div><div class='head'>diff --git a/internal/parse.h b/internal/parse.h<br/>new file mode 100644<br/>index 0000000000..f242c384ad<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/parse.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/parse.h</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+#ifndef INTERNAL_PARSE_H                                 /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_PARSE_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for the parser.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+struct rb_iseq_struct;          /* in vm_core.h */</div><div class='add'>+</div><div class='add'>+/* parse.y */</div><div class='add'>+VALUE rb_parser_set_yydebug(VALUE, VALUE);</div><div class='add'>+void *rb_parser_load_file(VALUE parser, VALUE name);</div><div class='add'>+void rb_parser_keep_script_lines(VALUE vparser);</div><div class='add'>+void rb_parser_error_tolerant(VALUE vparser);</div><div class='add'>+void rb_parser_keep_tokens(VALUE vparser);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+VALUE rb_parser_set_context(VALUE, const struct rb_iseq_struct *, int);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_PARSE_H */</div><div class='head'>diff --git a/internal/proc.h b/internal/proc.h<br/>new file mode 100644<br/>index 0000000000..2416c31e14<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/proc.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/proc.h</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+#ifndef INTERNAL_PROC_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_PROC_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Proc.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for rb_block_call_func_t */</div><div class='add'>+#include "ruby/st.h"            /* for st_index_t */</div><div class='add'>+struct rb_block;                /* in vm_core.h */</div><div class='add'>+struct rb_iseq_struct;          /* in vm_core.h */</div><div class='add'>+</div><div class='add'>+/* proc.c */</div><div class='add'>+VALUE rb_proc_location(VALUE self);</div><div class='add'>+st_index_t rb_hash_proc(st_index_t hash, VALUE proc);</div><div class='add'>+int rb_block_pair_yield_optimizable(void);</div><div class='add'>+int rb_block_arity(void);</div><div class='add'>+int rb_block_min_max_arity(int *max);</div><div class='add'>+VALUE rb_block_to_s(VALUE self, const struct rb_block *block, const char *additional_info);</div><div class='add'>+VALUE rb_callable_receiver(VALUE);</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+VALUE rb_func_proc_new(rb_block_call_func_t func, VALUE val);</div><div class='add'>+VALUE rb_func_lambda_new(rb_block_call_func_t func, VALUE val, int min_argc, int max_argc);</div><div class='add'>+VALUE rb_iseq_location(const struct rb_iseq_struct *iseq);</div><div class='add'>+VALUE rb_sym_to_proc(VALUE sym);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_PROC_H */</div><div class='head'>diff --git a/internal/process.h b/internal/process.h<br/>new file mode 100644<br/>index 0000000000..ceadfdcbbb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/process.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/process.h</a></div><div class='hunk'>@@ -0,0 +1,137 @@</div><div class='add'>+#ifndef INTERNAL_PROCESS_H                               /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_PROCESS_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Process.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"      /* for rb_pid_t */</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SYS_TYPES_H</div><div class='add'>+# include &lt;sys/types.h&gt;         /* for mode_t */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+# include "ruby/win32.h"        /* for mode_t */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+#include "internal/imemo.h"     /* for RB_IMEMO_TMPBUF_PTR */</div><div class='add'>+#include "internal/warnings.h"  /* for COMPILER_WARNING_PUSH */</div><div class='add'>+</div><div class='add'>+#define RB_MAX_GROUPS (65536)</div><div class='add'>+</div><div class='add'>+struct waitpid_state;</div><div class='add'>+struct rb_process_status;</div><div class='add'>+struct rb_execarg {</div><div class='add'>+    union {</div><div class='add'>+        struct {</div><div class='add'>+            VALUE shell_script;</div><div class='add'>+        } sh;</div><div class='add'>+        struct {</div><div class='add'>+            VALUE command_name;</div><div class='add'>+            VALUE command_abspath; /* full path string or nil */</div><div class='add'>+            VALUE argv_str;</div><div class='add'>+            VALUE argv_buf;</div><div class='add'>+        } cmd;</div><div class='add'>+    } invoke;</div><div class='add'>+    VALUE redirect_fds;</div><div class='add'>+    VALUE envp_str;</div><div class='add'>+    VALUE envp_buf;</div><div class='add'>+    VALUE dup2_tmpbuf;</div><div class='add'>+    unsigned use_shell : 1;</div><div class='add'>+    unsigned pgroup_given : 1;</div><div class='add'>+    unsigned umask_given : 1;</div><div class='add'>+    unsigned unsetenv_others_given : 1;</div><div class='add'>+    unsigned unsetenv_others_do : 1;</div><div class='add'>+    unsigned close_others_given : 1;</div><div class='add'>+    unsigned close_others_do : 1;</div><div class='add'>+    unsigned chdir_given : 1;</div><div class='add'>+    unsigned new_pgroup_given : 1;</div><div class='add'>+    unsigned new_pgroup_flag : 1;</div><div class='add'>+    unsigned uid_given : 1;</div><div class='add'>+    unsigned gid_given : 1;</div><div class='add'>+    unsigned exception : 1;</div><div class='add'>+    unsigned exception_given : 1;</div><div class='add'>+    struct rb_process_status *status;</div><div class='add'>+    struct waitpid_state *waitpid_state; /* for async process management */</div><div class='add'>+    rb_pid_t pgroup_pgid; /* asis(-1), new pgroup(0), specified pgroup (0&lt;V). */</div><div class='add'>+    VALUE rlimit_limits; /* Qfalse or [[rtype, softlim, hardlim], ...] */</div><div class='add'>+    mode_t umask_mask;</div><div class='add'>+    rb_uid_t uid;</div><div class='add'>+    rb_gid_t gid;</div><div class='add'>+    int close_others_maxhint;</div><div class='add'>+    VALUE fd_dup2;</div><div class='add'>+    VALUE fd_close;</div><div class='add'>+    VALUE fd_open;</div><div class='add'>+    VALUE fd_dup2_child;</div><div class='add'>+    VALUE env_modification; /* Qfalse or [[k1,v1], ...] */</div><div class='add'>+    VALUE path_env;</div><div class='add'>+    VALUE chdir_dir;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* process.c */</div><div class='add'>+rb_pid_t rb_call_proc__fork(void);</div><div class='add'>+void rb_last_status_clear(void);</div><div class='add'>+static inline char **ARGVSTR2ARGV(VALUE argv_str);</div><div class='add'>+static inline size_t ARGVSTR2ARGC(VALUE argv_str);</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_PWD_H</div><div class='add'>+VALUE rb_getlogin(void);</div><div class='add'>+VALUE rb_getpwdirnam_for_login(VALUE login);  /* read as: "get pwd db home dir by username for login" */</div><div class='add'>+VALUE rb_getpwdiruid(void);                   /* read as: "get pwd db home dir for getuid()" */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* process.c (export) */</div><div class='add'>+int rb_exec_async_signal_safe(const struct rb_execarg *e, char *errmsg, size_t errmsg_buflen);</div><div class='add'>+rb_pid_t rb_fork_async_signal_safe(int *status, int (*chfunc)(void*, char *, size_t), void *charg, VALUE fds, char *errmsg, size_t errmsg_buflen);</div><div class='add'>+VALUE rb_execarg_new(int argc, const VALUE *argv, int accept_shell, int allow_exc_opt);</div><div class='add'>+struct rb_execarg *rb_execarg_get(VALUE execarg_obj); /* dangerous.  needs GC guard. */</div><div class='add'>+int rb_execarg_addopt(VALUE execarg_obj, VALUE key, VALUE val);</div><div class='add'>+void rb_execarg_parent_start(VALUE execarg_obj);</div><div class='add'>+void rb_execarg_parent_end(VALUE execarg_obj);</div><div class='add'>+int rb_execarg_run_options(const struct rb_execarg *e, struct rb_execarg *s, char* errmsg, size_t errmsg_buflen);</div><div class='add'>+VALUE rb_execarg_extract_options(VALUE execarg_obj, VALUE opthash);</div><div class='add'>+void rb_execarg_setenv(VALUE execarg_obj, VALUE env);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+/* argv_str contains extra two elements.</div><div class='add'>+ * The beginning one is for /bin/sh used by exec_with_sh.</div><div class='add'>+ * The last one for terminating NULL used by execve.</div><div class='add'>+ * See rb_exec_fillarg() in process.c. */</div><div class='add'>+static inline char **</div><div class='add'>+ARGVSTR2ARGV(VALUE argv_str)</div><div class='add'>+{</div><div class='add'>+    char **buf = RB_IMEMO_TMPBUF_PTR(argv_str);</div><div class='add'>+    return &amp;buf[1];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+ARGVSTR2ARGC(VALUE argv_str)</div><div class='add'>+{</div><div class='add'>+    size_t i = 0;</div><div class='add'>+    char *const *p = ARGVSTR2ARGV(argv_str);</div><div class='add'>+    while (p[i++])</div><div class='add'>+        ;</div><div class='add'>+    return i - 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_WORKING_FORK</div><div class='add'>+COMPILER_WARNING_PUSH</div><div class='add'>+#if __has_warning("-Wdeprecated-declarations") || RBIMPL_COMPILER_IS(GCC)</div><div class='add'>+COMPILER_WARNING_IGNORED(-Wdeprecated-declarations)</div><div class='add'>+#endif</div><div class='add'>+static inline rb_pid_t</div><div class='add'>+rb_fork(void)</div><div class='add'>+{</div><div class='add'>+    return fork();</div><div class='add'>+}</div><div class='add'>+COMPILER_WARNING_POP</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_PROCESS_H */</div><div class='head'>diff --git a/internal/ractor.h b/internal/ractor.h<br/>new file mode 100644<br/>index 0000000000..eef5ffdb89<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/ractor.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/ractor.h</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+#ifndef INTERNAL_RACTOR_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_RACTOR_H</div><div class='add'>+</div><div class='add'>+void rb_ractor_ensure_main_ractor(const char *msg);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_RACTOR_H */</div><div class='head'>diff --git a/internal/random.h b/internal/random.h<br/>new file mode 100644<br/>index 0000000000..231e2d5d7e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/random.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/random.h</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+#ifndef INTERNAL_RANDOM_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_RANDOM_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Random.</div><div class='add'>+ */</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+</div><div class='add'>+/* random.c */</div><div class='add'>+int ruby_fill_random_bytes(void *, size_t, int);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_RANDOM_H */</div><div class='head'>diff --git a/internal/range.h b/internal/range.h<br/>new file mode 100644<br/>index 0000000000..8daba0ecab<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/range.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/range.h</a></div><div class='hunk'>@@ -0,0 +1,40 @@</div><div class='add'>+#ifndef INTERNAL_RANGE_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_RANGE_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Range.</div><div class='add'>+ */</div><div class='add'>+#include "internal/struct.h"    /* for RSTRUCT */</div><div class='add'>+</div><div class='add'>+/* range.c */</div><div class='add'>+static inline VALUE RANGE_BEG(VALUE r);</div><div class='add'>+static inline VALUE RANGE_END(VALUE r);</div><div class='add'>+static inline VALUE RANGE_EXCL(VALUE r);</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+RANGE_BEG(VALUE r)</div><div class='add'>+{</div><div class='add'>+    return RSTRUCT(r)-&gt;as.ary[0];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+RANGE_END(VALUE r)</div><div class='add'>+{</div><div class='add'>+    return RSTRUCT(r)-&gt;as.ary[1];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+RANGE_EXCL(VALUE r)</div><div class='add'>+{</div><div class='add'>+    return RSTRUCT(r)-&gt;as.ary[2];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_range_component_beg_len(VALUE b, VALUE e, int excl,</div><div class='add'>+                           long *begp, long *lenp, long len, int err);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_RANGE_H */</div><div class='head'>diff --git a/internal/rational.h b/internal/rational.h<br/>new file mode 100644<br/>index 0000000000..61ddbf089a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/rational.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/rational.h</a></div><div class='hunk'>@@ -0,0 +1,72 @@</div><div class='add'>+#ifndef INTERNAL_RATIONAL_H                              /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_RATIONAL_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Rational.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"      /* for HAVE_LIBGMP */</div><div class='add'>+#include "ruby/ruby.h"          /* for struct RBasic */</div><div class='add'>+#include "internal/gc.h"        /* for RB_OBJ_WRITE */</div><div class='add'>+#include "internal/numeric.h"   /* for INT_POSITIVE_P */</div><div class='add'>+#include "ruby_assert.h"        /* for assert */</div><div class='add'>+</div><div class='add'>+struct RRational {</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+    VALUE num;</div><div class='add'>+    VALUE den;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define RRATIONAL(obj) ((struct RRational *)(obj))</div><div class='add'>+</div><div class='add'>+/* rational.c */</div><div class='add'>+VALUE rb_rational_canonicalize(VALUE x);</div><div class='add'>+VALUE rb_rational_uminus(VALUE self);</div><div class='add'>+VALUE rb_rational_plus(VALUE self, VALUE other);</div><div class='add'>+VALUE rb_rational_minus(VALUE self, VALUE other);</div><div class='add'>+VALUE rb_rational_mul(VALUE self, VALUE other);</div><div class='add'>+VALUE rb_rational_div(VALUE self, VALUE other);</div><div class='add'>+VALUE rb_lcm(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_rational_reciprocal(VALUE x);</div><div class='add'>+VALUE rb_cstr_to_rat(const char *, int);</div><div class='add'>+VALUE rb_rational_hash(VALUE self);</div><div class='add'>+VALUE rb_rational_abs(VALUE self);</div><div class='add'>+VALUE rb_rational_cmp(VALUE self, VALUE other);</div><div class='add'>+VALUE rb_rational_pow(VALUE self, VALUE other);</div><div class='add'>+VALUE rb_rational_floor(VALUE self, int ndigits);</div><div class='add'>+VALUE rb_numeric_quo(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_flo_round_by_rational(int argc, VALUE *argv, VALUE num);</div><div class='add'>+VALUE rb_float_numerator(VALUE x);</div><div class='add'>+VALUE rb_float_denominator(VALUE x);</div><div class='add'>+</div><div class='add'>+static inline void RATIONAL_SET_NUM(VALUE r, VALUE n);</div><div class='add'>+static inline void RATIONAL_SET_DEN(VALUE r, VALUE d);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* rational.c (export) */</div><div class='add'>+VALUE rb_gcd(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_gcd_normal(VALUE self, VALUE other);</div><div class='add'>+#if defined(HAVE_LIBGMP) &amp;&amp; defined(HAVE_GMP_H)</div><div class='add'>+VALUE rb_gcd_gmp(VALUE x, VALUE y);</div><div class='add'>+#endif</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RATIONAL_SET_NUM(VALUE r, VALUE n)</div><div class='add'>+{</div><div class='add'>+    assert(RB_INTEGER_TYPE_P(n));</div><div class='add'>+    RB_OBJ_WRITE(r, &amp;RRATIONAL(r)-&gt;num, n);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RATIONAL_SET_DEN(VALUE r, VALUE d)</div><div class='add'>+{</div><div class='add'>+    assert(RB_INTEGER_TYPE_P(d));</div><div class='add'>+    assert(INT_POSITIVE_P(d));</div><div class='add'>+    RB_OBJ_WRITE(r, &amp;RRATIONAL(r)-&gt;den, d);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_RATIONAL_H */</div><div class='head'>diff --git a/internal/re.h b/internal/re.h<br/>new file mode 100644<br/>index 0000000000..8b31b3d8a5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/re.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/re.h</a></div><div class='hunk'>@@ -0,0 +1,30 @@</div><div class='add'>+#ifndef INTERNAL_RE_H                                    /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_RE_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Regexp.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/stdbool.h"     /* for bool */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+</div><div class='add'>+/* re.c */</div><div class='add'>+VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline);</div><div class='add'>+VALUE rb_reg_check_preprocess(VALUE);</div><div class='add'>+long rb_reg_search0(VALUE, VALUE, long, int, int);</div><div class='add'>+VALUE rb_reg_match_p(VALUE re, VALUE str, long pos);</div><div class='add'>+bool rb_reg_start_with_p(VALUE re, VALUE str);</div><div class='add'>+VALUE rb_reg_hash(VALUE re);</div><div class='add'>+VALUE rb_reg_equal(VALUE re1, VALUE re2);</div><div class='add'>+void rb_backref_set_string(VALUE string, long pos, long len);</div><div class='add'>+void rb_match_unbusy(VALUE);</div><div class='add'>+int rb_match_count(VALUE match);</div><div class='add'>+int rb_match_nth_defined(int nth, VALUE match);</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+VALUE rb_reg_new_ary(VALUE ary, int options);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_RE_H */</div><div class='head'>diff --git a/internal/sanitizers.h b/internal/sanitizers.h<br/>new file mode 100644<br/>index 0000000000..6e2d81137f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/sanitizers.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/sanitizers.h</a></div><div class='hunk'>@@ -0,0 +1,190 @@</div><div class='add'>+#ifndef INTERNAL_SANITIZERS_H                            /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_SANITIZERS_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for ASAN / MSAN / etc.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include "internal/compilers.h" /* for __has_feature */</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_VALGRIND_MEMCHECK_H</div><div class='add'>+# include &lt;valgrind/memcheck.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SANITIZER_ASAN_INTERFACE_H</div><div class='add'>+# include &lt;sanitizer/asan_interface.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SANITIZER_MSAN_INTERFACE_H</div><div class='add'>+# if __has_feature(memory_sanitizer)</div><div class='add'>+#  include &lt;sanitizer/msan_interface.h&gt;</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/stdbool.h"     /* for bool */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+#elif __has_feature(memory_sanitizer) &amp;&amp; __has_feature(address_sanitizer)</div><div class='add'>+# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \</div><div class='add'>+    __attribute__((__no_sanitize__("memory, address"), __noinline__)) x</div><div class='add'>+#elif __has_feature(address_sanitizer)</div><div class='add'>+# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \</div><div class='add'>+    __attribute__((__no_sanitize__("address"), __noinline__)) x</div><div class='add'>+#elif defined(NO_SANITIZE_ADDRESS)</div><div class='add'>+# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \</div><div class='add'>+    NO_SANITIZE_ADDRESS(NOINLINE(x))</div><div class='add'>+#elif defined(NO_ADDRESS_SAFETY_ANALYSIS)</div><div class='add'>+# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) \</div><div class='add'>+    NO_ADDRESS_SAFETY_ANALYSIS(NOINLINE(x))</div><div class='add'>+#else</div><div class='add'>+# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) x</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined(NO_SANITIZE) &amp;&amp; RBIMPL_COMPILER_IS(GCC)</div><div class='add'>+/* GCC warns about unknown sanitizer, which is annoying. */</div><div class='add'>+# include "internal/warnings.h"</div><div class='add'>+# undef NO_SANITIZE</div><div class='add'>+# define NO_SANITIZE(x, y) \</div><div class='add'>+    COMPILER_WARNING_PUSH; \</div><div class='add'>+    COMPILER_WARNING_IGNORED(-Wattributes); \</div><div class='add'>+    __attribute__((__no_sanitize__(x))) y; \</div><div class='add'>+    COMPILER_WARNING_POP</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef NO_SANITIZE</div><div class='add'>+# define NO_SANITIZE(x, y) y</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !__has_feature(address_sanitizer)</div><div class='add'>+# define __asan_poison_memory_region(x, y)</div><div class='add'>+# define __asan_unpoison_memory_region(x, y)</div><div class='add'>+# define __asan_region_is_poisoned(x, y) 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if !__has_feature(memory_sanitizer)</div><div class='add'>+# define __msan_allocated_memory(x, y) ((void)(x), (void)(y))</div><div class='add'>+# define __msan_poison(x, y) ((void)(x), (void)(y))</div><div class='add'>+# define __msan_unpoison(x, y) ((void)(x), (void)(y))</div><div class='add'>+# define __msan_unpoison_string(x) ((void)(x))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef VALGRIND_MAKE_READABLE</div><div class='add'>+# define VALGRIND_MAKE_MEM_DEFINED(p, n) VALGRIND_MAKE_READABLE((p), (n))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef VALGRIND_MAKE_WRITABLE</div><div class='add'>+# define VALGRIND_MAKE_MEM_UNDEFINED(p, n) VALGRIND_MAKE_WRITABLE((p), (n))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef VALGRIND_MAKE_MEM_DEFINED</div><div class='add'>+# define VALGRIND_MAKE_MEM_DEFINED(p, n) 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef VALGRIND_MAKE_MEM_UNDEFINED</div><div class='add'>+# define VALGRIND_MAKE_MEM_UNDEFINED(p, n) 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef MJIT_HEADER</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * This function asserts that a (continuous) memory region from ptr to size</div><div class='add'>+ * being "poisoned".  Both read / write access to such memory region are</div><div class='add'>+ * prohibited until properly unpoisoned.  The region must be previously</div><div class='add'>+ * allocated (do not pass a freed pointer here), but not necessarily be an</div><div class='add'>+ * entire object that the malloc returns.  You can punch hole a part of a</div><div class='add'>+ * gigantic heap arena.  This is handy when you do not free an allocated memory</div><div class='add'>+ * region to reuse later: poison when you keep it unused, and unpoison when you</div><div class='add'>+ * reuse.</div><div class='add'>+ *</div><div class='add'>+ * \param[in]  ptr   pointer to the beginning of the memory region to poison.</div><div class='add'>+ * \param[in]  size  the length of the memory region to poison.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+asan_poison_memory_region(const volatile void *ptr, size_t size)</div><div class='add'>+{</div><div class='add'>+    __msan_poison(ptr, size);</div><div class='add'>+    __asan_poison_memory_region(ptr, size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * This is a variant of asan_poison_memory_region that takes a VALUE.</div><div class='add'>+ *</div><div class='add'>+ * \param[in]  obj   target object.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+asan_poison_object(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;</div><div class='add'>+    asan_poison_memory_region(ptr, SIZEOF_VALUE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if !__has_feature(address_sanitizer)</div><div class='add'>+#define asan_poison_object_if(ptr, obj) ((void)(ptr), (void)(obj))</div><div class='add'>+#else</div><div class='add'>+#define asan_poison_object_if(ptr, obj) do { \</div><div class='add'>+        if (ptr) asan_poison_object(obj); \</div><div class='add'>+    } while (0)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * This function predicates if the given object is fully addressable or not.</div><div class='add'>+ *</div><div class='add'>+ * \param[in]  obj        target object.</div><div class='add'>+ * \retval     0          the given object is fully addressable.</div><div class='add'>+ * \retval     otherwise  pointer to first such byte who is poisoned.</div><div class='add'>+ */</div><div class='add'>+static inline void *</div><div class='add'>+asan_poisoned_object_p(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;</div><div class='add'>+    return __asan_region_is_poisoned(ptr, SIZEOF_VALUE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * This function asserts that a (formally poisoned) memory region from ptr to</div><div class='add'>+ * size is now addressable.  Write access to such memory region gets allowed.</div><div class='add'>+ * However read access might or might not be possible depending on situations,</div><div class='add'>+ * because the region can have contents of previous usages.  That information</div><div class='add'>+ * should be passed by the malloc_p flag.  If that is true, the contents of the</div><div class='add'>+ * region is _not_ fully defined (like the return value of malloc behaves).</div><div class='add'>+ * Reading from there is NG; write something first.  If malloc_p is false on</div><div class='add'>+ * the other hand, that memory region is fully defined and can be read</div><div class='add'>+ * immediately.</div><div class='add'>+ *</div><div class='add'>+ * \param[in]  ptr       pointer to the beginning of the memory region to unpoison.</div><div class='add'>+ * \param[in]  size      the length of the memory region.</div><div class='add'>+ * \param[in]  malloc_p  if the memory region is like a malloc's return value or not.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+asan_unpoison_memory_region(const volatile void *ptr, size_t size, bool malloc_p)</div><div class='add'>+{</div><div class='add'>+    __asan_unpoison_memory_region(ptr, size);</div><div class='add'>+    if (malloc_p) {</div><div class='add'>+        __msan_allocated_memory(ptr, size);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        __msan_unpoison(ptr, size);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*!</div><div class='add'>+ * This is a variant of asan_unpoison_memory_region that takes a VALUE.</div><div class='add'>+ *</div><div class='add'>+ * \param[in]  obj       target object.</div><div class='add'>+ * \param[in]  malloc_p  if the memory region is like a malloc's return value or not.</div><div class='add'>+ */</div><div class='add'>+static inline void</div><div class='add'>+asan_unpoison_object(VALUE obj, bool newobj_p)</div><div class='add'>+{</div><div class='add'>+    MAYBE_UNUSED(struct RVALUE *) ptr = (void *)obj;</div><div class='add'>+    asan_unpoison_memory_region(ptr, SIZEOF_VALUE, newobj_p);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* MJIT_HEADER */</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_SANITIZERS_H */</div><div class='head'>diff --git a/internal/serial.h b/internal/serial.h<br/>new file mode 100644<br/>index 0000000000..df9e9a44f0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/serial.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/serial.h</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+#ifndef INTERNAL_SERIAL_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_SERIAL_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for rb_serial_t.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"      /* for HAVE_LONG_LONG */</div><div class='add'>+#include "ruby/defines.h"       /* for LONG_LONG */</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_LONG_LONG</div><div class='add'>+# error need C99+</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+typedef unsigned LONG_LONG rb_serial_t;</div><div class='add'>+#define SERIALT2NUM ULL2NUM</div><div class='add'>+#define PRI_SERIALT_PREFIX PRI_LL_PREFIX</div><div class='add'>+#define SIZEOF_SERIAL_T SIZEOF_LONG_LONG</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_SERIAL_H */</div><div class='head'>diff --git a/internal/signal.h b/internal/signal.h<br/>new file mode 100644<br/>index 0000000000..86fb54e949<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/signal.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/signal.h</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+#ifndef INTERNAL_SIGNAL_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_SIGNAL_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for SignalException.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/* signal.c */</div><div class='add'>+extern int ruby_enable_coredump;</div><div class='add'>+int rb_get_next_signal(void);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* signal.c (export) */</div><div class='add'>+int rb_grantpt(int fd);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_SIGNAL_H */</div><div class='head'>diff --git a/internal/static_assert.h b/internal/static_assert.h<br/>new file mode 100644<br/>index 0000000000..70dd0b7a1e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/static_assert.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/static_assert.h</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+#ifndef INTERNAL_STATIC_ASSERT_H                         /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_STATIC_ASSERT_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      C11 shim for _Static_assert.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/static_assert.h"</div><div class='add'>+#ifndef STATIC_ASSERT</div><div class='add'>+# define STATIC_ASSERT RBIMPL_STATIC_ASSERT</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_STATIC_ASSERT_H */</div><div class='head'>diff --git a/internal/string.h b/internal/string.h<br/>new file mode 100644<br/>index 0000000000..12edbff2b1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/string.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/string.h</a></div><div class='hunk'>@@ -0,0 +1,147 @@</div><div class='add'>+#ifndef INTERNAL_STRING_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_STRING_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for String.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+#include "internal/compilers.h" /* for __has_builtin */</div><div class='add'>+#include "ruby/internal/stdbool.h"     /* for bool */</div><div class='add'>+#include "ruby/encoding.h"      /* for rb_encoding */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+</div><div class='add'>+#define STR_NOEMBED      FL_USER1</div><div class='add'>+#define STR_SHARED       FL_USER2 /* = ELTS_SHARED */</div><div class='add'>+</div><div class='add'>+#ifdef rb_fstring_cstr</div><div class='add'>+# undef rb_fstring_cstr</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* string.c */</div><div class='add'>+VALUE rb_fstring(VALUE);</div><div class='add'>+VALUE rb_fstring_cstr(const char *str);</div><div class='add'>+VALUE rb_fstring_enc_new(const char *ptr, long len, rb_encoding *enc);</div><div class='add'>+int rb_str_buf_cat_escaped_char(VALUE result, unsigned int c, int unicode_p);</div><div class='add'>+int rb_str_symname_p(VALUE);</div><div class='add'>+VALUE rb_str_quote_unprintable(VALUE);</div><div class='add'>+char *rb_str_fill_terminator(VALUE str, const int termlen);</div><div class='add'>+void rb_str_change_terminator_length(VALUE str, const int oldtermlen, const int termlen);</div><div class='add'>+VALUE rb_str_locktmp_ensure(VALUE str, VALUE (*func)(VALUE), VALUE arg);</div><div class='add'>+VALUE rb_str_chomp_string(VALUE str, VALUE chomp);</div><div class='add'>+VALUE rb_external_str_with_enc(VALUE str, rb_encoding *eenc);</div><div class='add'>+VALUE rb_str_cat_conv_enc_opts(VALUE newstr, long ofs, const char *ptr, long len,</div><div class='add'>+                               rb_encoding *from, int ecflags, VALUE ecopts);</div><div class='add'>+VALUE rb_enc_str_scrub(rb_encoding *enc, VALUE str, VALUE repl);</div><div class='add'>+VALUE rb_str_escape(VALUE str);</div><div class='add'>+size_t rb_str_memsize(VALUE);</div><div class='add'>+char *rb_str_to_cstr(VALUE str);</div><div class='add'>+const char *ruby_escaped_char(int c);</div><div class='add'>+void rb_str_make_independent(VALUE str);</div><div class='add'>+int rb_enc_str_coderange_scan(VALUE str, rb_encoding *enc);</div><div class='add'>+int rb_ascii8bit_appendable_encoding_index(rb_encoding *enc, unsigned int code);</div><div class='add'>+VALUE rb_str_include(VALUE str, VALUE arg);</div><div class='add'>+</div><div class='add'>+static inline bool STR_EMBED_P(VALUE str);</div><div class='add'>+static inline bool STR_SHARED_P(VALUE str);</div><div class='add'>+static inline VALUE QUOTE(VALUE v);</div><div class='add'>+static inline VALUE QUOTE_ID(ID v);</div><div class='add'>+static inline bool is_ascii_string(VALUE str);</div><div class='add'>+static inline bool is_broken_string(VALUE str);</div><div class='add'>+static inline VALUE rb_str_eql_internal(const VALUE str1, const VALUE str2);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* string.c (export) */</div><div class='add'>+VALUE rb_str_tmp_frozen_acquire(VALUE str);</div><div class='add'>+void rb_str_tmp_frozen_release(VALUE str, VALUE tmp);</div><div class='add'>+VALUE rb_setup_fake_str(struct RString *fake_str, const char *name, long len, rb_encoding *enc);</div><div class='add'>+VALUE rb_str_upto_each(VALUE, VALUE, int, int (*each)(VALUE, VALUE), VALUE);</div><div class='add'>+VALUE rb_str_upto_endless_each(VALUE, int (*each)(VALUE, VALUE), VALUE);</div><div class='add'>+void rb_str_make_embedded(VALUE);</div><div class='add'>+size_t rb_str_size_as_embedded(VALUE);</div><div class='add'>+bool rb_str_reembeddable_p(VALUE);</div><div class='add'>+void rb_str_update_shared_ary(VALUE str, VALUE old_root, VALUE new_root);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+VALUE rb_fstring_new(const char *ptr, long len);</div><div class='add'>+VALUE rb_obj_as_string_result(VALUE str, VALUE obj);</div><div class='add'>+VALUE rb_str_opt_plus(VALUE x, VALUE y);</div><div class='add'>+VALUE rb_str_concat_literals(size_t num, const VALUE *strary);</div><div class='add'>+VALUE rb_str_eql(VALUE str1, VALUE str2);</div><div class='add'>+VALUE rb_id_quote_unprintable(ID);</div><div class='add'>+VALUE rb_sym_proc_call(ID mid, int argc, const VALUE *argv, int kw_splat, VALUE passed_proc);</div><div class='add'>+</div><div class='add'>+struct rb_execution_context_struct;</div><div class='add'>+VALUE rb_ec_str_resurrect(struct rb_execution_context_struct *ec, VALUE str);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#define rb_fstring_lit(str) rb_fstring_new((str), rb_strlen_lit(str))</div><div class='add'>+#define rb_fstring_literal(str) rb_fstring_lit(str)</div><div class='add'>+#define rb_fstring_enc_lit(str, enc) rb_fstring_enc_new((str), rb_strlen_lit(str), (enc))</div><div class='add'>+#define rb_fstring_enc_literal(str, enc) rb_fstring_enc_lit(str, enc)</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+QUOTE(VALUE v)</div><div class='add'>+{</div><div class='add'>+    return rb_str_quote_unprintable(v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+QUOTE_ID(ID i)</div><div class='add'>+{</div><div class='add'>+    return rb_id_quote_unprintable(i);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+STR_EMBED_P(VALUE str)</div><div class='add'>+{</div><div class='add'>+    return ! FL_TEST_RAW(str, STR_NOEMBED);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+STR_SHARED_P(VALUE str)</div><div class='add'>+{</div><div class='add'>+    return FL_ALL_RAW(str, STR_NOEMBED | STR_SHARED);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+is_ascii_string(VALUE str)</div><div class='add'>+{</div><div class='add'>+    return rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+is_broken_string(VALUE str)</div><div class='add'>+{</div><div class='add'>+    return rb_enc_str_coderange(str) == ENC_CODERANGE_BROKEN;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* expect tail call optimization */</div><div class='add'>+// YJIT needs this function to never allocate and never raise</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_str_eql_internal(const VALUE str1, const VALUE str2)</div><div class='add'>+{</div><div class='add'>+    const long len = RSTRING_LEN(str1);</div><div class='add'>+    const char *ptr1, *ptr2;</div><div class='add'>+</div><div class='add'>+    if (len != RSTRING_LEN(str2)) return Qfalse;</div><div class='add'>+    if (!rb_str_comparable(str1, str2)) return Qfalse;</div><div class='add'>+    if ((ptr1 = RSTRING_PTR(str1)) == (ptr2 = RSTRING_PTR(str2)))</div><div class='add'>+        return Qtrue;</div><div class='add'>+    if (memcmp(ptr1, ptr2, len) == 0)</div><div class='add'>+        return Qtrue;</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if __has_builtin(__builtin_constant_p)</div><div class='add'>+# define rb_fstring_cstr(str) \</div><div class='add'>+    (__builtin_constant_p(str) ? \</div><div class='add'>+        rb_fstring_new((str), (long)strlen(str)) : \</div><div class='add'>+        (rb_fstring_cstr)(str))</div><div class='add'>+#endif</div><div class='add'>+#endif /* INTERNAL_STRING_H */</div><div class='head'>diff --git a/internal/struct.h b/internal/struct.h<br/>new file mode 100644<br/>index 0000000000..8acc00ec3c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/struct.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/struct.h</a></div><div class='hunk'>@@ -0,0 +1,153 @@</div><div class='add'>+#ifndef INTERNAL_STRUCT_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_STRUCT_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Struct.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/stdbool.h"     /* for bool */</div><div class='add'>+#include "internal/gc.h"        /* for RB_OBJ_WRITE */</div><div class='add'>+#include "ruby/ruby.h"          /* for struct RBasic */</div><div class='add'>+</div><div class='add'>+enum {</div><div class='add'>+    RSTRUCT_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX,</div><div class='add'>+    RSTRUCT_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER1),</div><div class='add'>+    RSTRUCT_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+1),</div><div class='add'>+    RSTRUCT_TRANSIENT_FLAG = FL_USER3,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+struct RStruct {</div><div class='add'>+    struct RBasic basic;</div><div class='add'>+    union {</div><div class='add'>+        struct {</div><div class='add'>+            long len;</div><div class='add'>+            const VALUE *ptr;</div><div class='add'>+        } heap;</div><div class='add'>+        const VALUE ary[RSTRUCT_EMBED_LEN_MAX];</div><div class='add'>+    } as;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define RSTRUCT(obj) ((struct RStruct *)(obj))</div><div class='add'>+</div><div class='add'>+#ifdef RSTRUCT_LEN</div><div class='add'>+# undef RSTRUCT_LEN</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef RSTRUCT_PTR</div><div class='add'>+# undef RSTRUCT_PTR</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef RSTRUCT_SET</div><div class='add'>+# undef RSTRUCT_SET</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef RSTRUCT_GET</div><div class='add'>+# undef RSTRUCT_GET</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define RSTRUCT_LEN internal_RSTRUCT_LEN</div><div class='add'>+#define RSTRUCT_SET internal_RSTRUCT_SET</div><div class='add'>+#define RSTRUCT_GET internal_RSTRUCT_GET</div><div class='add'>+</div><div class='add'>+/* struct.c */</div><div class='add'>+VALUE rb_struct_init_copy(VALUE copy, VALUE s);</div><div class='add'>+VALUE rb_struct_lookup(VALUE s, VALUE idx);</div><div class='add'>+VALUE rb_struct_s_keyword_init(VALUE klass);</div><div class='add'>+static inline const VALUE *rb_struct_const_heap_ptr(VALUE st);</div><div class='add'>+static inline bool RSTRUCT_TRANSIENT_P(VALUE st);</div><div class='add'>+static inline void RSTRUCT_TRANSIENT_SET(VALUE st);</div><div class='add'>+static inline void RSTRUCT_TRANSIENT_UNSET(VALUE st);</div><div class='add'>+static inline long RSTRUCT_EMBED_LEN(VALUE st);</div><div class='add'>+static inline long RSTRUCT_LEN(VALUE st);</div><div class='add'>+static inline int RSTRUCT_LENINT(VALUE st);</div><div class='add'>+static inline const VALUE *RSTRUCT_CONST_PTR(VALUE st);</div><div class='add'>+static inline void RSTRUCT_SET(VALUE st, long k, VALUE v);</div><div class='add'>+static inline VALUE RSTRUCT_GET(VALUE st, long k);</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+RSTRUCT_TRANSIENT_P(VALUE st)</div><div class='add'>+{</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    return FL_TEST_RAW(st, RSTRUCT_TRANSIENT_FLAG);</div><div class='add'>+#else</div><div class='add'>+    return false;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RSTRUCT_TRANSIENT_SET(VALUE st)</div><div class='add'>+{</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    FL_SET_RAW(st, RSTRUCT_TRANSIENT_FLAG);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RSTRUCT_TRANSIENT_UNSET(VALUE st)</div><div class='add'>+{</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    FL_UNSET_RAW(st, RSTRUCT_TRANSIENT_FLAG);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline long</div><div class='add'>+RSTRUCT_EMBED_LEN(VALUE st)</div><div class='add'>+{</div><div class='add'>+    long ret = FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK);</div><div class='add'>+    ret &gt;&gt;= RSTRUCT_EMBED_LEN_SHIFT;</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline long</div><div class='add'>+RSTRUCT_LEN(VALUE st)</div><div class='add'>+{</div><div class='add'>+    if (FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK)) {</div><div class='add'>+        return RSTRUCT_EMBED_LEN(st);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RSTRUCT(st)-&gt;as.heap.len;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+RSTRUCT_LENINT(VALUE st)</div><div class='add'>+{</div><div class='add'>+    return rb_long2int(RSTRUCT_LEN(st));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline const VALUE *</div><div class='add'>+RSTRUCT_CONST_PTR(VALUE st)</div><div class='add'>+{</div><div class='add'>+    const struct RStruct *p = RSTRUCT(st);</div><div class='add'>+</div><div class='add'>+    if (FL_TEST_RAW(st, RSTRUCT_EMBED_LEN_MASK)) {</div><div class='add'>+        return p-&gt;as.ary;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return p-&gt;as.heap.ptr;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+RSTRUCT_SET(VALUE st, long k,  VALUE v)</div><div class='add'>+{</div><div class='add'>+    RB_OBJ_WRITE(st, &amp;RSTRUCT_CONST_PTR(st)[k], v);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+RSTRUCT_GET(VALUE st, long k)</div><div class='add'>+{</div><div class='add'>+    return RSTRUCT_CONST_PTR(st)[k];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline const VALUE *</div><div class='add'>+rb_struct_const_heap_ptr(VALUE st)</div><div class='add'>+{</div><div class='add'>+    /* TODO: check embed on debug mode */</div><div class='add'>+    return RSTRUCT(st)-&gt;as.heap.ptr;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_STRUCT_H */</div><div class='head'>diff --git a/internal/symbol.h b/internal/symbol.h<br/>new file mode 100644<br/>index 0000000000..30c81ea004<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/symbol.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/symbol.h</a></div><div class='hunk'>@@ -0,0 +1,42 @@</div><div class='add'>+#ifndef INTERNAL_SYMBOL_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_SYMBOL_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Symbol.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+#include "ruby/encoding.h"      /* for rb_encoding */</div><div class='add'>+#include "internal/compilers.h" /* for __has_builtin */</div><div class='add'>+</div><div class='add'>+#ifdef rb_sym_intern_ascii_cstr</div><div class='add'>+# undef rb_sym_intern_ascii_cstr</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/* symbol.c */</div><div class='add'>+VALUE rb_to_symbol_type(VALUE obj);</div><div class='add'>+VALUE rb_sym_intern(const char *ptr, long len, rb_encoding *enc);</div><div class='add'>+VALUE rb_sym_intern_ascii(const char *ptr, long len);</div><div class='add'>+VALUE rb_sym_intern_ascii_cstr(const char *ptr);</div><div class='add'>+int rb_is_const_name(VALUE name);</div><div class='add'>+int rb_is_class_name(VALUE name);</div><div class='add'>+int rb_is_instance_name(VALUE name);</div><div class='add'>+int rb_is_local_name(VALUE name);</div><div class='add'>+PUREFUNC(int rb_is_const_sym(VALUE sym));</div><div class='add'>+PUREFUNC(int rb_is_attrset_sym(VALUE sym));</div><div class='add'>+ID rb_make_internal_id(void);</div><div class='add'>+ID rb_make_temporary_id(size_t n);</div><div class='add'>+void rb_gc_free_dsymbol(VALUE);</div><div class='add'>+int rb_static_id_valid_p(ID id);</div><div class='add'>+</div><div class='add'>+#if __has_builtin(__builtin_constant_p)</div><div class='add'>+#define rb_sym_intern_ascii_cstr(ptr) \</div><div class='add'>+    (__builtin_constant_p(ptr) ? \</div><div class='add'>+        rb_sym_intern_ascii((ptr), (long)strlen(ptr)) : \</div><div class='add'>+        rb_sym_intern_ascii_cstr(ptr))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_SYMBOL_H */</div><div class='head'>diff --git a/internal/thread.h b/internal/thread.h<br/>new file mode 100644<br/>index 0000000000..c3e54de683<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/thread.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/thread.h</a></div><div class='hunk'>@@ -0,0 +1,56 @@</div><div class='add'>+#ifndef INTERNAL_THREAD_H                                /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_THREAD_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Thread.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+#include "ruby/intern.h"        /* for rb_blocking_function_t */</div><div class='add'>+</div><div class='add'>+struct rb_thread_struct;        /* in vm_core.h */</div><div class='add'>+</div><div class='add'>+/* thread.c */</div><div class='add'>+#define COVERAGE_INDEX_LINES    0</div><div class='add'>+#define COVERAGE_INDEX_BRANCHES 1</div><div class='add'>+#define COVERAGE_TARGET_LINES    1</div><div class='add'>+#define COVERAGE_TARGET_BRANCHES 2</div><div class='add'>+#define COVERAGE_TARGET_METHODS  4</div><div class='add'>+#define COVERAGE_TARGET_ONESHOT_LINES 8</div><div class='add'>+#define COVERAGE_TARGET_EVAL 16</div><div class='add'>+</div><div class='add'>+VALUE rb_obj_is_mutex(VALUE obj);</div><div class='add'>+VALUE rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg);</div><div class='add'>+void rb_thread_execute_interrupts(VALUE th);</div><div class='add'>+VALUE rb_get_coverages(void);</div><div class='add'>+int rb_get_coverage_mode(void);</div><div class='add'>+VALUE rb_default_coverage(int);</div><div class='add'>+VALUE rb_thread_shield_new(void);</div><div class='add'>+bool rb_thread_shield_owned(VALUE self);</div><div class='add'>+VALUE rb_thread_shield_wait(VALUE self);</div><div class='add'>+VALUE rb_thread_shield_release(VALUE self);</div><div class='add'>+VALUE rb_thread_shield_destroy(VALUE self);</div><div class='add'>+int rb_thread_to_be_killed(VALUE thread);</div><div class='add'>+void rb_mutex_allow_trap(VALUE self, int val);</div><div class='add'>+VALUE rb_uninterruptible(VALUE (*b_proc)(VALUE), VALUE data);</div><div class='add'>+VALUE rb_mutex_owned_p(VALUE self);</div><div class='add'>+VALUE rb_exec_recursive_outer_mid(VALUE (*f)(VALUE g, VALUE h, int r), VALUE g, VALUE h, ID mid);</div><div class='add'>+</div><div class='add'>+int rb_thread_wait_for_single_fd(int fd, int events, struct timeval * timeout);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* Temporary.  This API will be removed (renamed). */</div><div class='add'>+VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd);</div><div class='add'>+</div><div class='add'>+/* thread.c (export) */</div><div class='add'>+int ruby_thread_has_gvl_p(void); /* for ext/fiddle/closure.c */</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+int rb_threadptr_execute_interrupts(struct rb_thread_struct *th, int blocking_timing);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_THREAD_H */</div><div class='head'>diff --git a/internal/time.h b/internal/time.h<br/>new file mode 100644<br/>index 0000000000..e21b3574f6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/time.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/time.h</a></div><div class='hunk'>@@ -0,0 +1,37 @@</div><div class='add'>+#ifndef INTERNAL_TIME_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_TIME_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Time.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"      /* for SIGNEDNESS_OF_TIME_T */</div><div class='add'>+#include "internal/bits.h"      /* for SIGNED_INTEGER_MAX */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+</div><div class='add'>+#if SIGNEDNESS_OF_TIME_T &lt; 0    /* signed */</div><div class='add'>+# define TIMET_MAX SIGNED_INTEGER_MAX(time_t)</div><div class='add'>+# define TIMET_MIN SIGNED_INTEGER_MIN(time_t)</div><div class='add'>+#elif SIGNEDNESS_OF_TIME_T &gt; 0  /* unsigned */</div><div class='add'>+# define TIMET_MAX UNSIGNED_INTEGER_MAX(time_t)</div><div class='add'>+# define TIMET_MIN ((time_t)0)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct timeval; /* &lt;- in &lt;sys/time.h&gt; or &lt;winsock2.h&gt; */</div><div class='add'>+</div><div class='add'>+/* time.c */</div><div class='add'>+struct timeval rb_time_timeval(VALUE);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* time.c (export) */</div><div class='add'>+void ruby_reset_leap_second_info(void);</div><div class='add'>+#ifdef RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY</div><div class='add'>+RBIMPL_ATTR_DEPRECATED_INTERNAL_ONLY()</div><div class='add'>+#endif</div><div class='add'>+void ruby_reset_timezone(const char *);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_TIME_H */</div><div class='head'>diff --git a/internal/transcode.h b/internal/transcode.h<br/>new file mode 100644<br/>index 0000000000..9922332ea9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/transcode.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/transcode.h</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+#ifndef INTERNAL_TRANSCODE_H                             /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_TRANSCODE_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for Encoding::Converter.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+#include "ruby/encoding.h"      /* for rb_econv_t */</div><div class='add'>+</div><div class='add'>+/* transcode.c */</div><div class='add'>+extern VALUE rb_cEncodingConverter;</div><div class='add'>+size_t rb_econv_memsize(rb_econv_t *);</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_TRANSCODE_H */</div><div class='head'>diff --git a/internal/util.h b/internal/util.h<br/>new file mode 100644<br/>index 0000000000..6eadbb9f94<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/util.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/util.h</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+#ifndef INTERNAL_UTIL_H                                  /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_UTIL_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header corresponding util.c.</div><div class='add'>+ * @warning    DO NOT ADD RANDOM GARBAGE HERE THIS FILE IS FOR util.c</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_SYS_TYPES_H</div><div class='add'>+# include &lt;sys/types.h&gt;         /* for ssize_t (note: on Windows ssize_t is */</div><div class='add'>+#endif                          /* `#define`d in ruby/config.h) */</div><div class='add'>+</div><div class='add'>+/* util.c */</div><div class='add'>+char *ruby_dtoa(double d_, int mode, int ndigits, int *decpt, int *sign, char **rve);</div><div class='add'>+char *ruby_hdtoa(double d, const char *xdigs, int ndigits, int *decpt, int *sign, char **rve);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* util.c (export) */</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_UTIL_H */</div><div class='head'>diff --git a/internal/variable.h b/internal/variable.h<br/>new file mode 100644<br/>index 0000000000..6dec6a6759<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/variable.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/variable.h</a></div><div class='hunk'>@@ -0,0 +1,90 @@</div><div class='add'>+#ifndef INTERNAL_VARIABLE_H                              /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_VARIABLE_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for variables.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+#include &lt;stddef.h&gt;             /* for size_t */</div><div class='add'>+#include "constant.h"           /* for rb_const_entry_t */</div><div class='add'>+#include "ruby/internal/stdbool.h"     /* for bool */</div><div class='add'>+#include "ruby/ruby.h"          /* for VALUE */</div><div class='add'>+#include "shape.h"              /* for rb_shape_t */</div><div class='add'>+</div><div class='add'>+/* global variable */</div><div class='add'>+</div><div class='add'>+#define ROBJECT_TRANSIENT_FLAG    FL_USER2</div><div class='add'>+</div><div class='add'>+/* variable.c */</div><div class='add'>+void rb_gc_mark_global_tbl(void);</div><div class='add'>+void rb_gc_update_global_tbl(void);</div><div class='add'>+size_t rb_generic_ivar_memsize(VALUE);</div><div class='add'>+VALUE rb_search_class_path(VALUE);</div><div class='add'>+VALUE rb_attr_delete(VALUE, ID);</div><div class='add'>+void rb_autoload_str(VALUE mod, ID id, VALUE file);</div><div class='add'>+VALUE rb_autoload_at_p(VALUE, ID, int);</div><div class='add'>+NORETURN(VALUE rb_mod_const_missing(VALUE,VALUE));</div><div class='add'>+rb_gvar_getter_t *rb_gvar_getter_function_of(ID);</div><div class='add'>+rb_gvar_setter_t *rb_gvar_setter_function_of(ID);</div><div class='add'>+void rb_gvar_readonly_setter(VALUE v, ID id, VALUE *_);</div><div class='add'>+void rb_gvar_ractor_local(const char *name);</div><div class='add'>+static inline bool ROBJ_TRANSIENT_P(VALUE obj);</div><div class='add'>+static inline void ROBJ_TRANSIENT_SET(VALUE obj);</div><div class='add'>+static inline void ROBJ_TRANSIENT_UNSET(VALUE obj);</div><div class='add'>+</div><div class='add'>+struct gen_ivtbl;</div><div class='add'>+int rb_gen_ivtbl_get(VALUE obj, ID id, struct gen_ivtbl **ivtbl);</div><div class='add'>+int rb_obj_evacuate_ivs_to_hash_table(ID key, VALUE val, st_data_t arg);</div><div class='add'>+</div><div class='add'>+RUBY_SYMBOL_EXPORT_BEGIN</div><div class='add'>+/* variable.c (export) */</div><div class='add'>+void rb_mark_generic_ivar(VALUE);</div><div class='add'>+void rb_mv_generic_ivar(VALUE src, VALUE dst);</div><div class='add'>+VALUE rb_const_missing(VALUE klass, VALUE name);</div><div class='add'>+int rb_class_ivar_set(VALUE klass, ID vid, VALUE value);</div><div class='add'>+void rb_iv_tbl_copy(VALUE dst, VALUE src);</div><div class='add'>+RUBY_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+VALUE rb_ivar_lookup(VALUE obj, ID id, VALUE undef);</div><div class='add'>+VALUE rb_gvar_get(ID);</div><div class='add'>+VALUE rb_gvar_set(ID, VALUE);</div><div class='add'>+VALUE rb_gvar_defined(ID);</div><div class='add'>+void rb_const_warn_if_deprecated(const rb_const_entry_t *, VALUE, ID);</div><div class='add'>+rb_shape_t * rb_grow_iv_list(VALUE obj);</div><div class='add'>+void rb_ensure_iv_list_size(VALUE obj, uint32_t len, uint32_t newsize);</div><div class='add'>+struct gen_ivtbl *rb_ensure_generic_iv_list_size(VALUE obj, rb_shape_t *shape, uint32_t newsize);</div><div class='add'>+attr_index_t rb_obj_ivar_set(VALUE obj, ID id, VALUE val);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+static inline bool</div><div class='add'>+ROBJ_TRANSIENT_P(VALUE obj)</div><div class='add'>+{</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    return FL_TEST_RAW(obj, ROBJECT_TRANSIENT_FLAG);</div><div class='add'>+#else</div><div class='add'>+    return false;</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+ROBJ_TRANSIENT_SET(VALUE obj)</div><div class='add'>+{</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    FL_SET_RAW(obj, ROBJECT_TRANSIENT_FLAG);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+ROBJ_TRANSIENT_UNSET(VALUE obj)</div><div class='add'>+{</div><div class='add'>+#if USE_TRANSIENT_HEAP</div><div class='add'>+    FL_UNSET_RAW(obj, ROBJECT_TRANSIENT_FLAG);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif /* INTERNAL_VARIABLE_H */</div><div class='head'>diff --git a/internal/vm.h b/internal/vm.h<br/>new file mode 100644<br/>index 0000000000..cf245c6579<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/vm.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/vm.h</a></div><div class='hunk'>@@ -0,0 +1,134 @@</div><div class='add'>+#ifndef INTERNAL_VM_H                                    /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_VM_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header for RubyVM.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/stdbool.h"         /* for bool */</div><div class='add'>+#include "internal/serial.h"        /* for rb_serial_t */</div><div class='add'>+#include "internal/static_assert.h" /* for STATIC_ASSERT */</div><div class='add'>+#include "ruby/ruby.h"              /* for ID */</div><div class='add'>+#include "ruby/st.h"                /* for st_table */</div><div class='add'>+</div><div class='add'>+#ifdef rb_funcallv</div><div class='add'>+# undef rb_funcallv</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef rb_method_basic_definition_p</div><div class='add'>+# undef rb_method_basic_definition_p</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct rb_callable_method_entry_struct; /* in method.h */</div><div class='add'>+struct rb_method_definition_struct;     /* in method.h */</div><div class='add'>+struct rb_execution_context_struct;     /* in vm_core.h */</div><div class='add'>+struct rb_control_frame_struct;         /* in vm_core.h */</div><div class='add'>+struct rb_callinfo;                     /* in vm_core.h */</div><div class='add'>+</div><div class='add'>+enum method_missing_reason {</div><div class='add'>+    MISSING_NOENTRY   = 0x00,</div><div class='add'>+    MISSING_PRIVATE   = 0x01,</div><div class='add'>+    MISSING_PROTECTED = 0x02,</div><div class='add'>+    MISSING_FCALL     = 0x04,</div><div class='add'>+    MISSING_VCALL     = 0x08,</div><div class='add'>+    MISSING_SUPER     = 0x10,</div><div class='add'>+    MISSING_MISSING   = 0x20,</div><div class='add'>+    MISSING_NONE      = 0x40</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/* vm_insnhelper.h */</div><div class='add'>+VALUE rb_vm_push_frame_fname(struct rb_execution_context_struct *ec, VALUE fname);</div><div class='add'>+</div><div class='add'>+/* vm.c */</div><div class='add'>+VALUE rb_obj_is_thread(VALUE obj);</div><div class='add'>+void rb_vm_mark(void *ptr);</div><div class='add'>+void rb_vm_each_stack_value(void *ptr, void (*cb)(VALUE, void*), void *ctx);</div><div class='add'>+PUREFUNC(VALUE rb_vm_top_self(void));</div><div class='add'>+const void **rb_vm_get_insns_address_table(void);</div><div class='add'>+VALUE rb_source_location(int *pline);</div><div class='add'>+const char *rb_source_location_cstr(int *pline);</div><div class='add'>+MJIT_STATIC void rb_vm_pop_cfunc_frame(void);</div><div class='add'>+int rb_vm_add_root_module(VALUE module);</div><div class='add'>+void rb_vm_check_redefinition_by_prepend(VALUE klass);</div><div class='add'>+int rb_vm_check_optimizable_mid(VALUE mid);</div><div class='add'>+VALUE rb_yield_refine_block(VALUE refinement, VALUE refinements);</div><div class='add'>+MJIT_STATIC VALUE ruby_vm_special_exception_copy(VALUE);</div><div class='add'>+PUREFUNC(st_table *rb_vm_fstring_table(void));</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+VALUE vm_exec(struct rb_execution_context_struct *, bool); /* used in JIT-ed code */</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+/* vm_eval.c */</div><div class='add'>+VALUE rb_current_realfilepath(void);</div><div class='add'>+VALUE rb_check_block_call(VALUE, ID, int, const VALUE *, rb_block_call_func_t, VALUE);</div><div class='add'>+typedef void rb_check_funcall_hook(int, VALUE, ID, int, const VALUE *, VALUE);</div><div class='add'>+VALUE rb_check_funcall_with_hook(VALUE recv, ID mid, int argc, const VALUE *argv,</div><div class='add'>+                                 rb_check_funcall_hook *hook, VALUE arg);</div><div class='add'>+VALUE rb_check_funcall_with_hook_kw(VALUE recv, ID mid, int argc, const VALUE *argv,</div><div class='add'>+                                 rb_check_funcall_hook *hook, VALUE arg, int kw_splat);</div><div class='add'>+const char *rb_type_str(enum ruby_value_type type);</div><div class='add'>+VALUE rb_check_funcall_default(VALUE, ID, int, const VALUE *, VALUE);</div><div class='add'>+VALUE rb_check_funcall_basic_kw(VALUE, ID, VALUE, int, const VALUE*, int);</div><div class='add'>+VALUE rb_yield_1(VALUE val);</div><div class='add'>+VALUE rb_yield_force_blockarg(VALUE values);</div><div class='add'>+VALUE rb_lambda_call(VALUE obj, ID mid, int argc, const VALUE *argv,</div><div class='add'>+                     rb_block_call_func_t bl_proc, int min_argc, int max_argc,</div><div class='add'>+                     VALUE data2);</div><div class='add'>+void rb_check_stack_overflow(void);</div><div class='add'>+</div><div class='add'>+/* vm_insnhelper.c */</div><div class='add'>+VALUE rb_equal_opt(VALUE obj1, VALUE obj2);</div><div class='add'>+VALUE rb_eql_opt(VALUE obj1, VALUE obj2);</div><div class='add'>+</div><div class='add'>+struct rb_iseq_struct;</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+const struct rb_callcache *rb_vm_search_method_slowpath(const struct rb_callinfo *ci, VALUE klass);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+/* vm_method.c */</div><div class='add'>+struct rb_execution_context_struct;</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+int rb_ec_obj_respond_to(struct rb_execution_context_struct *ec, VALUE obj, ID id, int priv);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+void rb_clear_constant_cache(void);</div><div class='add'>+</div><div class='add'>+/* vm_dump.c */</div><div class='add'>+void rb_print_backtrace(void);</div><div class='add'>+</div><div class='add'>+/* vm_backtrace.c */</div><div class='add'>+VALUE rb_vm_thread_backtrace(int argc, const VALUE *argv, VALUE thval);</div><div class='add'>+VALUE rb_vm_thread_backtrace_locations(int argc, const VALUE *argv, VALUE thval);</div><div class='add'>+VALUE rb_vm_backtrace(int argc, const VALUE * argv, struct rb_execution_context_struct * ec);</div><div class='add'>+VALUE rb_vm_backtrace_locations(int argc, const VALUE * argv, struct rb_execution_context_struct * ec);</div><div class='add'>+VALUE rb_make_backtrace(void);</div><div class='add'>+void rb_backtrace_print_as_bugreport(void);</div><div class='add'>+int rb_backtrace_p(VALUE obj);</div><div class='add'>+VALUE rb_backtrace_to_str_ary(VALUE obj);</div><div class='add'>+VALUE rb_backtrace_to_location_ary(VALUE obj);</div><div class='add'>+void rb_backtrace_each(VALUE (*iter)(VALUE recv, VALUE str), VALUE output);</div><div class='add'>+int rb_frame_info_p(VALUE obj);</div><div class='add'>+int rb_get_node_id_from_frame_info(VALUE obj);</div><div class='add'>+const struct rb_iseq_struct *rb_get_iseq_from_frame_info(VALUE obj);</div><div class='add'>+</div><div class='add'>+MJIT_SYMBOL_EXPORT_BEGIN</div><div class='add'>+VALUE rb_ec_backtrace_object(const struct rb_execution_context_struct *ec);</div><div class='add'>+void rb_backtrace_use_iseq_first_lineno_for_last_location(VALUE self);</div><div class='add'>+MJIT_SYMBOL_EXPORT_END</div><div class='add'>+</div><div class='add'>+#define RUBY_DTRACE_CREATE_HOOK(name, arg) \</div><div class='add'>+    RUBY_DTRACE_HOOK(name##_CREATE, arg)</div><div class='add'>+#define RUBY_DTRACE_HOOK(name, arg) \</div><div class='add'>+do { \</div><div class='add'>+    if (UNLIKELY(RUBY_DTRACE_##name##_ENABLED())) { \</div><div class='add'>+        int dtrace_line; \</div><div class='add'>+        const char *dtrace_file = rb_source_location_cstr(&amp;dtrace_line); \</div><div class='add'>+        if (!dtrace_file) dtrace_file = ""; \</div><div class='add'>+        RUBY_DTRACE_##name(arg, dtrace_file, dtrace_line); \</div><div class='add'>+    } \</div><div class='add'>+} while (0)</div><div class='add'>+#endif /* INTERNAL_VM_H */</div><div class='head'>diff --git a/internal/warnings.h b/internal/warnings.h<br/>new file mode 100644<br/>index 0000000000..020212ebd8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/internal/warnings.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>internal/warnings.h</a></div><div class='hunk'>@@ -0,0 +1,16 @@</div><div class='add'>+#ifndef INTERNAL_WARNINGS_H                              /*-*-C-*-vi:se ft=c:*/</div><div class='add'>+#define INTERNAL_WARNINGS_H</div><div class='add'>+/**</div><div class='add'>+ * @author     Ruby developers &lt;ruby-core@ruby-lang.org&gt;</div><div class='add'>+ * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.</div><div class='add'>+ *             Permission  is hereby  granted,  to  either redistribute  and/or</div><div class='add'>+ *             modify this file, provided that  the conditions mentioned in the</div><div class='add'>+ *             file COPYING are met.  Consult the file for details.</div><div class='add'>+ * @brief      Internal header to suppress / mandate warnings.</div><div class='add'>+ */</div><div class='add'>+#include "ruby/internal/warning_push.h"</div><div class='add'>+#define COMPILER_WARNING_PUSH          RBIMPL_WARNING_PUSH()</div><div class='add'>+#define COMPILER_WARNING_POP           RBIMPL_WARNING_POP()</div><div class='add'>+#define COMPILER_WARNING_ERROR(flag)   RBIMPL_WARNING_ERROR(flag)</div><div class='add'>+#define COMPILER_WARNING_IGNORED(flag) RBIMPL_WARNING_IGNORED(flag)</div><div class='add'>+#endif /* INTERNAL_WARNINGS_H */</div><div class='head'>diff --git a/io.c b/io.c<br/>index 24dacc5dd8..99ec59da29 100644<br/>--- a/<a href='/ruby.git/tree/io.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>io.c</a><br/>+++ b/<a href='/ruby.git/tree/io.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>io.c</a></div><div class='hunk'>@@ -11,17 +11,33 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby/encoding.h"</div><div class='del'>-#include "ruby/io.h"</div><div class='del'>-#include "ruby/thread.h"</div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "dln.h"</div><div class='del'>-#include "encindex.h"</div><div class='del'>-#include "id.h"</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='add'>+</div><div class='add'>+#include "ruby/fiber/scheduler.h"</div><div class='add'>+#include "ruby/io/buffer.h"</div><div class='add'>+</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+# include "ruby/ruby.h"</div><div class='add'>+# include "ruby/io.h"</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #include &lt;ctype.h&gt;</div><div class='ctx'> #include &lt;errno.h&gt;</div><div class='del'>-#include "ruby_atomic.h"</div><div class='del'>-#include "ccan/list/list.h"</div><div class='add'>+#include &lt;stddef.h&gt;</div><div class='add'>+</div><div class='add'>+/* non-Linux poll may not work on all FDs */</div><div class='add'>+#if defined(HAVE_POLL)</div><div class='add'>+# if defined(__linux__)</div><div class='add'>+#   define USE_POLL 1</div><div class='add'>+# endif</div><div class='add'>+# if defined(__FreeBSD_version) &amp;&amp; __FreeBSD_version &gt;= 1100000</div><div class='add'>+#  define USE_POLL 1</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifndef USE_POLL</div><div class='add'>+# define USE_POLL 0</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #undef free</div><div class='ctx'> #define free(x) xfree(x)</div><div class='hunk'>@@ -46,7 +62,7 @@</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef __QNXNTO__</div><div class='del'>-#include "unix.h"</div><div class='add'>+#include &lt;unix.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #include &lt;sys/types.h&gt;</div><div class='hunk'>@@ -59,10 +75,6 @@</div><div class='ctx'> #include &lt;sys/fcntl.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if !HAVE_OFF_T &amp;&amp; !defined(off_t)</div><div class='del'>-# define off_t  long</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #ifdef HAVE_SYS_TIME_H</div><div class='ctx'> # include &lt;sys/time.h&gt;</div><div class='ctx'> #endif</div><div class='hunk'>@@ -95,14 +107,42 @@</div><div class='ctx'> # include &lt;sys/wait.h&gt;		/* for WNOHANG on BSD */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_COPYFILE_H</div><div class='add'>+# include &lt;copyfile.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/stdbool.h"</div><div class='add'>+#include "ccan/list/list.h"</div><div class='add'>+#include "dln.h"</div><div class='add'>+#include "encindex.h"</div><div class='add'>+#include "id.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/encoding.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/inits.h"</div><div class='add'>+#include "internal/io.h"</div><div class='add'>+#include "internal/numeric.h"</div><div class='add'>+#include "internal/object.h"</div><div class='add'>+#include "internal/process.h"</div><div class='add'>+#include "internal/thread.h"</div><div class='add'>+#include "internal/transcode.h"</div><div class='add'>+#include "internal/variable.h"</div><div class='add'>+#include "ruby/io.h"</div><div class='add'>+#include "ruby/io/buffer.h"</div><div class='add'>+#include "ruby/missing.h"</div><div class='add'>+#include "ruby/thread.h"</div><div class='ctx'> #include "ruby/util.h"</div><div class='add'>+#include "ruby_atomic.h"</div><div class='add'>+#include "ruby/ractor.h"</div><div class='ctx'> </div><div class='del'>-#ifndef O_ACCMODE</div><div class='del'>-#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)</div><div class='add'>+#if !USE_POLL</div><div class='add'>+#  include "vm_core.h"</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if SIZEOF_OFF_T &gt; SIZEOF_LONG &amp;&amp; !defined(HAVE_LONG_LONG)</div><div class='del'>-# error off_t is bigger than long, but you have no long long...</div><div class='add'>+#include "builtin.h"</div><div class='add'>+</div><div class='add'>+#ifndef O_ACCMODE</div><div class='add'>+#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifndef PIPE_BUF</div><div class='hunk'>@@ -127,6 +167,8 @@ off_t __syscall(quad_t number, ...);</div><div class='ctx'> #define IO_RBUF_CAPA_FOR(fptr) (NEED_READCONV(fptr) ? IO_CBUF_CAPA_MIN : IO_RBUF_CAPA_MIN)</div><div class='ctx'> #define IO_WBUF_CAPA_MIN  8192</div><div class='ctx'> </div><div class='add'>+#define IO_MAX_BUFFER_GROWTH 8 * 1024 * 1024 // 8MB</div><div class='add'>+</div><div class='ctx'> /* define system APIs */</div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'> #undef open</div><div class='hunk'>@@ -135,18 +177,10 @@ off_t __syscall(quad_t number, ...);</div><div class='ctx'> #define rename(f, t)	rb_w32_urename((f), (t))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(_WIN32)</div><div class='del'>-#  define RUBY_PIPE_NONBLOCK_DEFAULT    (0)</div><div class='del'>-#elif defined(O_NONBLOCK)</div><div class='del'>-  /* disabled for [Bug #15356] (Rack::Deflater + rails) failure: */</div><div class='del'>-#  define RUBY_PIPE_NONBLOCK_DEFAULT    (0)</div><div class='del'>-#else /* any platforms where O_NONBLOCK does not exist? */</div><div class='del'>-#  define RUBY_PIPE_NONBLOCK_DEFAULT    (0)</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> VALUE rb_cIO;</div><div class='ctx'> VALUE rb_eEOFError;</div><div class='ctx'> VALUE rb_eIOError;</div><div class='add'>+VALUE rb_eIOTimeoutError;</div><div class='ctx'> VALUE rb_mWaitReadable;</div><div class='ctx'> VALUE rb_mWaitWritable;</div><div class='ctx'> </div><div class='hunk'>@@ -167,8 +201,7 @@ VALUE rb_default_rs;</div><div class='ctx'> </div><div class='ctx'> static VALUE argf;</div><div class='ctx'> </div><div class='del'>-#define id_exception idException</div><div class='del'>-static ID id_write, id_read, id_getc, id_flush, id_readpartial, id_set_encoding;</div><div class='add'>+static ID id_write, id_read, id_getc, id_flush, id_readpartial, id_set_encoding, id_fileno;</div><div class='ctx'> static VALUE sym_mode, sym_perm, sym_flags, sym_extenc, sym_intenc, sym_encoding, sym_open_args;</div><div class='ctx'> static VALUE sym_textmode, sym_binmode, sym_autoclose;</div><div class='ctx'> static VALUE sym_SET, sym_CUR, sym_END;</div><div class='hunk'>@@ -180,6 +213,8 @@ static VALUE sym_DATA;</div><div class='ctx'> static VALUE sym_HOLE;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+static VALUE prep_io(int fd, int fmode, VALUE klass, const char *path);</div><div class='add'>+</div><div class='ctx'> struct argf {</div><div class='ctx'>     VALUE filename, current_file;</div><div class='ctx'>     long last_lineno;		/* $. */</div><div class='hunk'>@@ -198,7 +233,7 @@ rb_update_max_fd(int fd)</div><div class='ctx'>     rb_atomic_t max_fd = max_file_descriptor;</div><div class='ctx'>     int err;</div><div class='ctx'> </div><div class='del'>-    if (afd &lt;= max_fd)</div><div class='add'>+    if (fd &lt; 0 || afd &lt;= max_fd)</div><div class='ctx'>         return;</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_FCNTL) &amp;&amp; defined(F_GETFL)</div><div class='hunk'>@@ -214,7 +249,7 @@ rb_update_max_fd(int fd)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (max_fd &lt; afd) {</div><div class='del'>-	max_fd = ATOMIC_CAS(max_file_descriptor, max_fd, afd);</div><div class='add'>+        max_fd = ATOMIC_CAS(max_file_descriptor, max_fd, afd);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -259,34 +294,53 @@ rb_fix_detect_o_cloexec(int fd)</div><div class='ctx'>         rb_bug("rb_fix_detect_o_cloexec: fcntl(%d, F_GETFD) failed: %s", fd, strerror(errno));</div><div class='ctx'> </div><div class='ctx'>     if (flags &amp; FD_CLOEXEC)</div><div class='del'>-	return 1;</div><div class='add'>+        return 1;</div><div class='ctx'> #endif /* fall through if O_CLOEXEC does not work: */</div><div class='ctx'>     rb_maygvl_fd_fix_cloexec(fd);</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static inline bool</div><div class='add'>+io_again_p(int e)</div><div class='add'>+{</div><div class='add'>+    return (e == EWOULDBLOCK) || (e == EAGAIN);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> int</div><div class='ctx'> rb_cloexec_open(const char *pathname, int flags, mode_t mode)</div><div class='ctx'> {</div><div class='ctx'>     int ret;</div><div class='ctx'>     static int o_cloexec_state = -1; /* &lt;0: unknown, 0: ignored, &gt;0: working */</div><div class='ctx'> </div><div class='add'>+    static const int retry_interval = 0;</div><div class='add'>+    static const int retry_max_count = 10000;</div><div class='add'>+</div><div class='add'>+    int retry_count = 0;</div><div class='add'>+</div><div class='ctx'> #ifdef O_CLOEXEC</div><div class='ctx'>     /* O_CLOEXEC is available since Linux 2.6.23.  Linux 2.6.18 silently ignore it. */</div><div class='ctx'>     flags |= O_CLOEXEC;</div><div class='ctx'> #elif defined O_NOINHERIT</div><div class='ctx'>     flags |= O_NOINHERIT;</div><div class='ctx'> #endif</div><div class='del'>-    ret = open(pathname, flags, mode);</div><div class='add'>+</div><div class='add'>+    while ((ret = open(pathname, flags, mode)) == -1) {</div><div class='add'>+        int e = errno;</div><div class='add'>+        if (!io_again_p(e)) break;</div><div class='add'>+        if (retry_count++ &gt;= retry_max_count) break;</div><div class='add'>+</div><div class='add'>+        sleep(retry_interval);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     if (ret &lt; 0) return ret;</div><div class='ctx'>     if (ret &lt;= 2 || o_cloexec_state == 0) {</div><div class='del'>-	rb_maygvl_fd_fix_cloexec(ret);</div><div class='add'>+        rb_maygvl_fd_fix_cloexec(ret);</div><div class='ctx'>     }</div><div class='ctx'>     else if (o_cloexec_state &gt; 0) {</div><div class='del'>-	return ret;</div><div class='add'>+        return ret;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	o_cloexec_state = rb_fix_detect_o_cloexec(ret);</div><div class='add'>+        o_cloexec_state = rb_fix_detect_o_cloexec(ret);</div><div class='ctx'>     }</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='hunk'>@@ -352,44 +406,37 @@ rb_fd_set_nonblock(int fd)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='del'>-rb_cloexec_pipe(int fildes[2])</div><div class='add'>+rb_cloexec_pipe(int descriptors[2])</div><div class='ctx'> {</div><div class='del'>-    int ret;</div><div class='del'>-</div><div class='del'>-#if defined(HAVE_PIPE2)</div><div class='del'>-    static int try_pipe2 = 1;</div><div class='del'>-    if (try_pipe2) {</div><div class='del'>-        ret = pipe2(fildes, O_CLOEXEC | RUBY_PIPE_NONBLOCK_DEFAULT);</div><div class='del'>-        if (ret != -1)</div><div class='del'>-            return ret;</div><div class='del'>-        /* pipe2 is available since Linux 2.6.27, glibc 2.9. */</div><div class='del'>-        if (errno == ENOSYS) {</div><div class='del'>-            try_pipe2 = 0;</div><div class='del'>-            ret = pipe(fildes);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-        ret = pipe(fildes);</div><div class='del'>-    }</div><div class='add'>+#ifdef HAVE_PIPE2</div><div class='add'>+    int result = pipe2(descriptors, O_CLOEXEC | O_NONBLOCK);</div><div class='ctx'> #else</div><div class='del'>-    ret = pipe(fildes);</div><div class='add'>+    int result = pipe(descriptors);</div><div class='ctx'> #endif</div><div class='del'>-    if (ret &lt; 0) return ret;</div><div class='add'>+</div><div class='add'>+    if (result &lt; 0)</div><div class='add'>+        return result;</div><div class='add'>+</div><div class='ctx'> #ifdef __CYGWIN__</div><div class='del'>-    if (ret == 0 &amp;&amp; fildes[1] == -1) {</div><div class='del'>-	close(fildes[0]);</div><div class='del'>-	fildes[0] = -1;</div><div class='del'>-	errno = ENFILE;</div><div class='del'>-	return -1;</div><div class='add'>+    if (result == 0 &amp;&amp; descriptors[1] == -1) {</div><div class='add'>+        close(descriptors[0]);</div><div class='add'>+        descriptors[0] = -1;</div><div class='add'>+        errno = ENFILE;</div><div class='add'>+        return -1;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='del'>-    rb_maygvl_fd_fix_cloexec(fildes[0]);</div><div class='del'>-    rb_maygvl_fd_fix_cloexec(fildes[1]);</div><div class='del'>-    if (RUBY_PIPE_NONBLOCK_DEFAULT) {</div><div class='del'>-        rb_fd_set_nonblock(fildes[0]);</div><div class='del'>-        rb_fd_set_nonblock(fildes[1]);</div><div class='del'>-    }</div><div class='del'>-    return ret;</div><div class='add'>+</div><div class='add'>+#ifndef HAVE_PIPE2</div><div class='add'>+    rb_maygvl_fd_fix_cloexec(descriptors[0]);</div><div class='add'>+    rb_maygvl_fd_fix_cloexec(descriptors[1]);</div><div class='add'>+</div><div class='add'>+#ifndef _WIN32</div><div class='add'>+    rb_fd_set_nonblock(descriptors[0]);</div><div class='add'>+    rb_fd_set_nonblock(descriptors[1]);</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='hunk'>@@ -419,7 +466,7 @@ rb_cloexec_fcntl_dupfd(int fd, int minfd)</div><div class='ctx'>     }</div><div class='ctx'> #elif defined(HAVE_FCNTL) &amp;&amp; defined(F_DUPFD)</div><div class='ctx'>     ret = fcntl(fd, F_DUPFD, minfd);</div><div class='del'>-#elif defined(HAVE_DUP)</div><div class='add'>+#else</div><div class='ctx'>     ret = dup(fd);</div><div class='ctx'>     if (ret &gt;= 0 &amp;&amp; ret &lt; minfd) {</div><div class='ctx'>         const int prev_fd = ret;</div><div class='hunk'>@@ -427,8 +474,6 @@ rb_cloexec_fcntl_dupfd(int fd, int minfd)</div><div class='ctx'>         close(prev_fd);</div><div class='ctx'>     }</div><div class='ctx'>     return ret;</div><div class='del'>-#else</div><div class='del'>-# error "dup() or fcntl(F_DUPFD) must be supported."</div><div class='ctx'> #endif</div><div class='ctx'>     if (ret &lt; 0) return ret;</div><div class='ctx'>     rb_maygvl_fd_fix_cloexec(ret);</div><div class='hunk'>@@ -451,15 +496,15 @@ rb_cloexec_fcntl_dupfd(int fd, int minfd)</div><div class='ctx'> </div><div class='ctx'> #if defined(_WIN32)</div><div class='ctx'> #define WAIT_FD_IN_WIN32(fptr) \</div><div class='del'>-    (rb_w32_io_cancelable_p((fptr)-&gt;fd) ? 0 : rb_thread_wait_fd((fptr)-&gt;fd))</div><div class='add'>+    (rb_w32_io_cancelable_p((fptr)-&gt;fd) ? Qnil : rb_io_wait(fptr-&gt;self, RB_INT2NUM(RUBY_IO_READABLE), RUBY_IO_TIMEOUT_DEFAULT))</div><div class='ctx'> #else</div><div class='ctx'> #define WAIT_FD_IN_WIN32(fptr)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #define READ_CHECK(fptr) do {\</div><div class='ctx'>     if (!READ_DATA_PENDING(fptr)) {\</div><div class='del'>-	WAIT_FD_IN_WIN32(fptr);\</div><div class='del'>-	rb_io_check_closed(fptr);\</div><div class='add'>+        WAIT_FD_IN_WIN32(fptr);\</div><div class='add'>+        rb_io_check_closed(fptr);\</div><div class='ctx'>     }\</div><div class='ctx'> } while(0)</div><div class='ctx'> </div><div class='hunk'>@@ -480,9 +525,51 @@ rb_cloexec_fcntl_dupfd(int fd, int minfd)</div><div class='ctx'> static int io_fflush(rb_io_t *);</div><div class='ctx'> static rb_io_t *flush_before_seek(rb_io_t *fptr);</div><div class='ctx'> </div><div class='add'>+#define FMODE_PREP (1&lt;&lt;16)</div><div class='add'>+#define FMODE_SIGNAL_ON_EPIPE (1&lt;&lt;17)</div><div class='add'>+</div><div class='add'>+#define fptr_signal_on_epipe(fptr) \</div><div class='add'>+    (((fptr)-&gt;mode &amp; FMODE_SIGNAL_ON_EPIPE) != 0)</div><div class='add'>+</div><div class='add'>+#define fptr_set_signal_on_epipe(fptr, flag) \</div><div class='add'>+    ((flag) ? \</div><div class='add'>+     (fptr)-&gt;mode |= FMODE_SIGNAL_ON_EPIPE : \</div><div class='add'>+     (fptr)-&gt;mode &amp;= ~FMODE_SIGNAL_ON_EPIPE)</div><div class='add'>+</div><div class='add'>+extern ID ruby_static_id_signo;</div><div class='add'>+</div><div class='add'>+NORETURN(static void raise_on_write(rb_io_t *fptr, int e, VALUE errinfo));</div><div class='add'>+static void</div><div class='add'>+raise_on_write(rb_io_t *fptr, int e, VALUE errinfo)</div><div class='add'>+{</div><div class='add'>+#if defined EPIPE</div><div class='add'>+    if (fptr_signal_on_epipe(fptr) &amp;&amp; (e == EPIPE)) {</div><div class='add'>+        const VALUE sig =</div><div class='add'>+# if defined SIGPIPE</div><div class='add'>+            INT2FIX(SIGPIPE) - INT2FIX(0) +</div><div class='add'>+# endif</div><div class='add'>+            INT2FIX(0);</div><div class='add'>+        rb_ivar_set(errinfo, ruby_static_id_signo, sig);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    rb_exc_raise(errinfo);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define rb_sys_fail_on_write(fptr) \</div><div class='add'>+    do { \</div><div class='add'>+        int e = errno; \</div><div class='add'>+        raise_on_write(fptr, e, rb_syserr_new_path(e, (fptr)-&gt;pathv)); \</div><div class='add'>+    } while (0)</div><div class='add'>+</div><div class='ctx'> #define NEED_NEWLINE_DECORATOR_ON_READ(fptr) ((fptr)-&gt;mode &amp; FMODE_TEXTMODE)</div><div class='ctx'> #define NEED_NEWLINE_DECORATOR_ON_WRITE(fptr) ((fptr)-&gt;mode &amp; FMODE_TEXTMODE)</div><div class='ctx'> #if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32)</div><div class='add'>+# define RUBY_CRLF_ENVIRONMENT 1</div><div class='add'>+#else</div><div class='add'>+# define RUBY_CRLF_ENVIRONMENT 0</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if RUBY_CRLF_ENVIRONMENT</div><div class='ctx'> /* Windows */</div><div class='ctx'> # define DEFAULT_TEXTMODE FMODE_TEXTMODE</div><div class='ctx'> # define TEXTMODE_NEWLINE_DECORATOR_ON_WRITE ECONV_CRLF_NEWLINE_DECORATOR</div><div class='hunk'>@@ -494,24 +581,31 @@ static rb_io_t *flush_before_seek(rb_io_t *fptr);</div><div class='ctx'>  * conversion IO process and universal newline decorator by default.</div><div class='ctx'>  */</div><div class='ctx'> #define NEED_READCONV(fptr) ((fptr)-&gt;encs.enc2 != NULL || (fptr)-&gt;encs.ecflags &amp; ~ECONV_CRLF_NEWLINE_DECORATOR)</div><div class='del'>-#define NEED_WRITECONV(fptr) (((fptr)-&gt;encs.enc != NULL &amp;&amp; (fptr)-&gt;encs.enc != rb_ascii8bit_encoding()) || ((fptr)-&gt;encs.ecflags &amp; ((ECONV_DECORATOR_MASK &amp; ~ECONV_CRLF_NEWLINE_DECORATOR)|ECONV_STATEFUL_DECORATOR_MASK)))</div><div class='add'>+#define WRITECONV_MASK ( \</div><div class='add'>+    (ECONV_DECORATOR_MASK &amp; ~ECONV_CRLF_NEWLINE_DECORATOR)|\</div><div class='add'>+    ECONV_STATEFUL_DECORATOR_MASK|\</div><div class='add'>+    0)</div><div class='add'>+#define NEED_WRITECONV(fptr) ( \</div><div class='add'>+  ((fptr)-&gt;encs.enc != NULL &amp;&amp; (fptr)-&gt;encs.enc != rb_ascii8bit_encoding()) || \</div><div class='add'>+  ((fptr)-&gt;encs.ecflags &amp; WRITECONV_MASK) || \</div><div class='add'>+  0)</div><div class='ctx'> #define SET_BINARY_MODE(fptr) setmode((fptr)-&gt;fd, O_BINARY)</div><div class='ctx'> </div><div class='ctx'> #define NEED_NEWLINE_DECORATOR_ON_READ_CHECK(fptr) do {\</div><div class='ctx'>     if (NEED_NEWLINE_DECORATOR_ON_READ(fptr)) {\</div><div class='del'>-	if (((fptr)-&gt;mode &amp; FMODE_READABLE) &amp;&amp;\</div><div class='del'>-	    !((fptr)-&gt;encs.ecflags &amp; ECONV_NEWLINE_DECORATOR_MASK)) {\</div><div class='del'>-	    setmode((fptr)-&gt;fd, O_BINARY);\</div><div class='del'>-	}\</div><div class='del'>-	else {\</div><div class='del'>-	    setmode((fptr)-&gt;fd, O_TEXT);\</div><div class='del'>-	}\</div><div class='add'>+        if (((fptr)-&gt;mode &amp; FMODE_READABLE) &amp;&amp;\</div><div class='add'>+            !((fptr)-&gt;encs.ecflags &amp; ECONV_NEWLINE_DECORATOR_MASK)) {\</div><div class='add'>+            setmode((fptr)-&gt;fd, O_BINARY);\</div><div class='add'>+        }\</div><div class='add'>+        else {\</div><div class='add'>+            setmode((fptr)-&gt;fd, O_TEXT);\</div><div class='add'>+        }\</div><div class='ctx'>     }\</div><div class='ctx'> } while(0)</div><div class='ctx'> </div><div class='ctx'> #define SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags) do {\</div><div class='ctx'>     if ((enc2) &amp;&amp; ((ecflags) &amp; ECONV_DEFAULT_NEWLINE_DECORATOR)) {\</div><div class='del'>-	(ecflags) |= ECONV_UNIVERSAL_NEWLINE_DECORATOR;\</div><div class='add'>+        (ecflags) |= ECONV_UNIVERSAL_NEWLINE_DECORATOR;\</div><div class='ctx'>     }\</div><div class='ctx'> } while(0)</div><div class='ctx'> </div><div class='hunk'>@@ -521,7 +615,7 @@ static rb_io_t *flush_before_seek(rb_io_t *fptr);</div><div class='ctx'> static void</div><div class='ctx'> io_unread(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='del'>-    off_t r, pos;</div><div class='add'>+    rb_off_t r, pos;</div><div class='ctx'>     ssize_t read_size;</div><div class='ctx'>     long i;</div><div class='ctx'>     long newlines = 0;</div><div class='hunk'>@@ -531,28 +625,28 @@ io_unread(rb_io_t *fptr)</div><div class='ctx'> </div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='ctx'>     if (fptr-&gt;rbuf.len == 0 || fptr-&gt;mode &amp; FMODE_DUPLEX) {</div><div class='del'>-	return;</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     errno = 0;</div><div class='ctx'>     if (!rb_w32_fd_is_text(fptr-&gt;fd)) {</div><div class='del'>-	r = lseek(fptr-&gt;fd, -fptr-&gt;rbuf.len, SEEK_CUR);</div><div class='del'>-	if (r &lt; 0 &amp;&amp; errno) {</div><div class='del'>-	    if (errno == ESPIPE)</div><div class='del'>-		fptr-&gt;mode |= FMODE_DUPLEX;</div><div class='del'>-	    return;</div><div class='del'>-	}</div><div class='add'>+        r = lseek(fptr-&gt;fd, -fptr-&gt;rbuf.len, SEEK_CUR);</div><div class='add'>+        if (r &lt; 0 &amp;&amp; errno) {</div><div class='add'>+            if (errno == ESPIPE)</div><div class='add'>+                fptr-&gt;mode |= FMODE_DUPLEX;</div><div class='add'>+            return;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	fptr-&gt;rbuf.off = 0;</div><div class='del'>-	fptr-&gt;rbuf.len = 0;</div><div class='del'>-	return;</div><div class='add'>+        fptr-&gt;rbuf.off = 0;</div><div class='add'>+        fptr-&gt;rbuf.len = 0;</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     pos = lseek(fptr-&gt;fd, 0, SEEK_CUR);</div><div class='ctx'>     if (pos &lt; 0 &amp;&amp; errno) {</div><div class='del'>-	if (errno == ESPIPE)</div><div class='del'>-	    fptr-&gt;mode |= FMODE_DUPLEX;</div><div class='del'>-	return;</div><div class='add'>+        if (errno == ESPIPE)</div><div class='add'>+            fptr-&gt;mode |= FMODE_DUPLEX;</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* add extra offset for removed '\r' in rbuf */</div><div class='hunk'>@@ -561,36 +655,36 @@ io_unread(rb_io_t *fptr)</div><div class='ctx'> </div><div class='ctx'>     /* if the end of rbuf is '\r', rbuf doesn't have '\r' within rbuf.len */</div><div class='ctx'>     if (*(fptr-&gt;rbuf.ptr + fptr-&gt;rbuf.capa - 1) == '\r') {</div><div class='del'>-	newlines++;</div><div class='add'>+        newlines++;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; fptr-&gt;rbuf.len; i++) {</div><div class='del'>-	if (*p == '\n') newlines++;</div><div class='del'>-	if (extra_max == newlines) break;</div><div class='del'>-	p++;</div><div class='add'>+        if (*p == '\n') newlines++;</div><div class='add'>+        if (extra_max == newlines) break;</div><div class='add'>+        p++;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     buf = ALLOC_N(char, fptr-&gt;rbuf.len + newlines);</div><div class='ctx'>     while (newlines &gt;= 0) {</div><div class='del'>-	r = lseek(fptr-&gt;fd, pos - fptr-&gt;rbuf.len - newlines, SEEK_SET);</div><div class='del'>-	if (newlines == 0) break;</div><div class='del'>-	if (r &lt; 0) {</div><div class='del'>-	    newlines--;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	read_size = _read(fptr-&gt;fd, buf, fptr-&gt;rbuf.len + newlines);</div><div class='del'>-	if (read_size &lt; 0) {</div><div class='del'>-	    int e = errno;</div><div class='del'>-	    free(buf);</div><div class='del'>-	    rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='del'>-	}</div><div class='del'>-	if (read_size == fptr-&gt;rbuf.len) {</div><div class='del'>-	    lseek(fptr-&gt;fd, r, SEEK_SET);</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    newlines--;</div><div class='del'>-	}</div><div class='add'>+        r = lseek(fptr-&gt;fd, pos - fptr-&gt;rbuf.len - newlines, SEEK_SET);</div><div class='add'>+        if (newlines == 0) break;</div><div class='add'>+        if (r &lt; 0) {</div><div class='add'>+            newlines--;</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        read_size = _read(fptr-&gt;fd, buf, fptr-&gt;rbuf.len + newlines);</div><div class='add'>+        if (read_size &lt; 0) {</div><div class='add'>+            int e = errno;</div><div class='add'>+            free(buf);</div><div class='add'>+            rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='add'>+        }</div><div class='add'>+        if (read_size == fptr-&gt;rbuf.len) {</div><div class='add'>+            lseek(fptr-&gt;fd, r, SEEK_SET);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            newlines--;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     free(buf);</div><div class='ctx'>     fptr-&gt;rbuf.off = 0;</div><div class='hunk'>@@ -611,7 +705,7 @@ set_binary_mode_with_seek_cur(rb_io_t *fptr)</div><div class='ctx'>     if (!rb_w32_fd_is_text(fptr-&gt;fd)) return O_BINARY;</div><div class='ctx'> </div><div class='ctx'>     if (fptr-&gt;rbuf.len == 0 || fptr-&gt;mode &amp; FMODE_DUPLEX) {</div><div class='del'>-	return setmode(fptr-&gt;fd, O_BINARY);</div><div class='add'>+        return setmode(fptr-&gt;fd, O_BINARY);</div><div class='ctx'>     }</div><div class='ctx'>     flush_before_seek(fptr);</div><div class='ctx'>     return setmode(fptr-&gt;fd, O_BINARY);</div><div class='hunk'>@@ -622,7 +716,11 @@ set_binary_mode_with_seek_cur(rb_io_t *fptr)</div><div class='ctx'> /* Unix */</div><div class='ctx'> # define DEFAULT_TEXTMODE 0</div><div class='ctx'> #define NEED_READCONV(fptr) ((fptr)-&gt;encs.enc2 != NULL || NEED_NEWLINE_DECORATOR_ON_READ(fptr))</div><div class='del'>-#define NEED_WRITECONV(fptr) (((fptr)-&gt;encs.enc != NULL &amp;&amp; (fptr)-&gt;encs.enc != rb_ascii8bit_encoding()) || NEED_NEWLINE_DECORATOR_ON_WRITE(fptr) || ((fptr)-&gt;encs.ecflags &amp; (ECONV_DECORATOR_MASK|ECONV_STATEFUL_DECORATOR_MASK)))</div><div class='add'>+#define NEED_WRITECONV(fptr) ( \</div><div class='add'>+  ((fptr)-&gt;encs.enc != NULL &amp;&amp; (fptr)-&gt;encs.enc != rb_ascii8bit_encoding()) || \</div><div class='add'>+  NEED_NEWLINE_DECORATOR_ON_WRITE(fptr) ||                        \</div><div class='add'>+  ((fptr)-&gt;encs.ecflags &amp; (ECONV_DECORATOR_MASK|ECONV_STATEFUL_DECORATOR_MASK)) || \</div><div class='add'>+  0)</div><div class='ctx'> #define SET_BINARY_MODE(fptr) (void)(fptr)</div><div class='ctx'> #define NEED_NEWLINE_DECORATOR_ON_READ_CHECK(fptr) (void)(fptr)</div><div class='ctx'> #define SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags) ((void)(enc2), (void)(ecflags))</div><div class='hunk'>@@ -676,7 +774,7 @@ void</div><div class='ctx'> rb_io_check_initialized(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     if (!fptr) {</div><div class='del'>-	rb_raise(rb_eIOError, "uninitialized stream");</div><div class='add'>+        rb_raise(rb_eIOError, "uninitialized stream");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -724,10 +822,10 @@ rb_io_set_write_io(VALUE io, VALUE w)</div><div class='ctx'>     VALUE write_io;</div><div class='ctx'>     rb_io_t *fptr = rb_io_get_fptr(io);</div><div class='ctx'>     if (!RTEST(w)) {</div><div class='del'>-	w = 0;</div><div class='add'>+        w = 0;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	GetWriteIO(w);</div><div class='add'>+        GetWriteIO(w);</div><div class='ctx'>     }</div><div class='ctx'>     write_io = fptr-&gt;tied_io_for_writing;</div><div class='ctx'>     fptr-&gt;tied_io_for_writing = w;</div><div class='hunk'>@@ -736,19 +834,62 @@ rb_io_set_write_io(VALUE io, VALUE w)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.try_convert(obj)  -&gt; io or nil</div><div class='add'>+ *    timeout -&gt; duration or nil</div><div class='add'>+ *</div><div class='add'>+ *  Get the internal timeout duration or nil if it was not set.</div><div class='ctx'>  *</div><div class='del'>- *  Try to convert &lt;i&gt;obj&lt;/i&gt; into an IO, using to_io method.</div><div class='del'>- *  Returns converted IO or +nil+ if &lt;i&gt;obj&lt;/i&gt; cannot be converted</div><div class='del'>- *  for any reason.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_io_timeout(VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr = rb_io_get_fptr(self);</div><div class='add'>+</div><div class='add'>+    return fptr-&gt;timeout;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    timeout = duration -&gt; duration</div><div class='add'>+ *    timeout = nil -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Set the internal timeout to the specified duration or nil. The timeout</div><div class='add'>+ *  applies to all blocking operations where possible.</div><div class='add'>+ *</div><div class='add'>+ *  This affects the following methods (but is not limited to): #gets, #puts,</div><div class='add'>+ *  #read, #write, #wait_readable and #wait_writable. This also affects</div><div class='add'>+ *  blocking socket operations like Socket#accept and Socket#connect.</div><div class='add'>+ *</div><div class='add'>+ *  Some operations like File#open and IO#close are not affected by the</div><div class='add'>+ *  timeout. A timeout during a write operation may leave the IO in an</div><div class='add'>+ *  inconsistent state, e.g. data was partially written. Generally speaking, a</div><div class='add'>+ *  timeout is a last ditch effort to prevent an application from hanging on</div><div class='add'>+ *  slow I/O operations, such as those that occur during a slowloris attack.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_io_set_timeout(VALUE self, VALUE timeout)</div><div class='add'>+{</div><div class='add'>+    // Validate it:</div><div class='add'>+    if (RTEST(timeout)) {</div><div class='add'>+        rb_time_interval(timeout);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_io_t *fptr = rb_io_get_fptr(self);</div><div class='add'>+</div><div class='add'>+    fptr-&gt;timeout = timeout;</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    IO.try_convert(object) -&gt; new_io or nil</div><div class='ctx'>  *</div><div class='del'>- *     IO.try_convert(STDOUT)     #=&gt; STDOUT</div><div class='del'>- *     IO.try_convert("STDOUT")   #=&gt; nil</div><div class='add'>+ *  Attempts to convert +object+ into an \IO object via method +to_io+;</div><div class='add'>+ *  returns the new \IO object if successful, or +nil+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- *     require 'zlib'</div><div class='del'>- *     f = open("/tmp/zz.gz")       #=&gt; #&lt;File:/tmp/zz.gz&gt;</div><div class='del'>- *     z = Zlib::GzipReader.open(f) #=&gt; #&lt;Zlib::GzipReader:0x81d8744&gt;</div><div class='del'>- *     IO.try_convert(z)            #=&gt; #&lt;File:/tmp/zz.gz&gt;</div><div class='add'>+ *    IO.try_convert(STDOUT)   # =&gt; #&lt;IO:&lt;STDOUT&gt;&gt;</div><div class='add'>+ *    IO.try_convert(ARGF)     # =&gt; #&lt;IO:&lt;STDIN&gt;&gt;</div><div class='add'>+ *    IO.try_convert('STDOUT') # =&gt; nil</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -757,11 +898,11 @@ rb_io_s_try_convert(VALUE dummy, VALUE io)</div><div class='ctx'>     return rb_io_check_io(io);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if !(defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32))</div><div class='add'>+#if !RUBY_CRLF_ENVIRONMENT</div><div class='ctx'> static void</div><div class='ctx'> io_unread(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='del'>-    off_t r;</div><div class='add'>+    rb_off_t r;</div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='ctx'>     if (fptr-&gt;rbuf.len == 0 || fptr-&gt;mode &amp; FMODE_DUPLEX)</div><div class='ctx'>         return;</div><div class='hunk'>@@ -791,17 +932,17 @@ io_ungetbyte(VALUE str, rb_io_t *fptr)</div><div class='ctx'>         fptr-&gt;rbuf.off = 0;</div><div class='ctx'>         fptr-&gt;rbuf.len = 0;</div><div class='ctx'> #if SIZEOF_LONG &gt; SIZEOF_INT</div><div class='del'>-	if (len &gt; INT_MAX)</div><div class='del'>-	    rb_raise(rb_eIOError, "ungetbyte failed");</div><div class='add'>+        if (len &gt; INT_MAX)</div><div class='add'>+            rb_raise(rb_eIOError, "ungetbyte failed");</div><div class='ctx'> #endif</div><div class='del'>-	if (len &gt; min_capa)</div><div class='del'>-	    fptr-&gt;rbuf.capa = (int)len;</div><div class='del'>-	else</div><div class='del'>-	    fptr-&gt;rbuf.capa = min_capa;</div><div class='add'>+        if (len &gt; min_capa)</div><div class='add'>+            fptr-&gt;rbuf.capa = (int)len;</div><div class='add'>+        else</div><div class='add'>+            fptr-&gt;rbuf.capa = min_capa;</div><div class='ctx'>         fptr-&gt;rbuf.ptr = ALLOC_N(char, fptr-&gt;rbuf.capa);</div><div class='ctx'>     }</div><div class='ctx'>     if (fptr-&gt;rbuf.capa &lt; len + fptr-&gt;rbuf.len) {</div><div class='del'>-	rb_raise(rb_eIOError, "ungetbyte failed");</div><div class='add'>+        rb_raise(rb_eIOError, "ungetbyte failed");</div><div class='ctx'>     }</div><div class='ctx'>     if (fptr-&gt;rbuf.off &lt; len) {</div><div class='ctx'>         MEMMOVE(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.capa-fptr-&gt;rbuf.len,</div><div class='hunk'>@@ -818,7 +959,7 @@ static rb_io_t *</div><div class='ctx'> flush_before_seek(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     if (io_fflush(fptr) &lt; 0)</div><div class='del'>-        rb_sys_fail(0);</div><div class='add'>+        rb_sys_fail_on_write(fptr);</div><div class='ctx'>     io_unread(fptr);</div><div class='ctx'>     errno = 0;</div><div class='ctx'>     return fptr;</div><div class='hunk'>@@ -838,17 +979,17 @@ rb_io_check_char_readable(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='ctx'>     if (!(fptr-&gt;mode &amp; FMODE_READABLE)) {</div><div class='del'>-	rb_raise(rb_eIOError, "not opened for reading");</div><div class='add'>+        rb_raise(rb_eIOError, "not opened for reading");</div><div class='ctx'>     }</div><div class='ctx'>     if (fptr-&gt;wbuf.len) {</div><div class='ctx'>         if (io_fflush(fptr) &lt; 0)</div><div class='del'>-            rb_sys_fail(0);</div><div class='add'>+            rb_sys_fail_on_write(fptr);</div><div class='ctx'>     }</div><div class='ctx'>     if (fptr-&gt;tied_io_for_writing) {</div><div class='del'>-	rb_io_t *wfptr;</div><div class='del'>-	GetOpenFile(fptr-&gt;tied_io_for_writing, wfptr);</div><div class='add'>+        rb_io_t *wfptr;</div><div class='add'>+        GetOpenFile(fptr-&gt;tied_io_for_writing, wfptr);</div><div class='ctx'>         if (io_fflush(wfptr) &lt; 0)</div><div class='del'>-            rb_sys_fail(0);</div><div class='add'>+            rb_sys_fail_on_write(wfptr);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -857,7 +998,7 @@ rb_io_check_byte_readable(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_check_char_readable(fptr);</div><div class='ctx'>     if (READ_CHAR_PENDING(fptr)) {</div><div class='del'>-	rb_raise(rb_eIOError, "byte oriented read for character buffered IO");</div><div class='add'>+        rb_raise(rb_eIOError, "byte oriented read for character buffered IO");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -871,7 +1012,7 @@ static rb_encoding*</div><div class='ctx'> io_read_encoding(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     if (fptr-&gt;encs.enc) {</div><div class='del'>-	return fptr-&gt;encs.enc;</div><div class='add'>+        return fptr-&gt;encs.enc;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_default_external_encoding();</div><div class='ctx'> }</div><div class='hunk'>@@ -880,7 +1021,7 @@ static rb_encoding*</div><div class='ctx'> io_input_encoding(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     if (fptr-&gt;encs.enc2) {</div><div class='del'>-	return fptr-&gt;encs.enc2;</div><div class='add'>+        return fptr-&gt;encs.enc2;</div><div class='ctx'>     }</div><div class='ctx'>     return io_read_encoding(fptr);</div><div class='ctx'> }</div><div class='hunk'>@@ -890,7 +1031,7 @@ rb_io_check_writable(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='ctx'>     if (!(fptr-&gt;mode &amp; FMODE_WRITABLE)) {</div><div class='del'>-	rb_raise(rb_eIOError, "not opened for writing");</div><div class='add'>+        rb_raise(rb_eIOError, "not opened for writing");</div><div class='ctx'>     }</div><div class='ctx'>     if (fptr-&gt;rbuf.len) {</div><div class='ctx'>         io_unread(fptr);</div><div class='hunk'>@@ -910,7 +1051,7 @@ void</div><div class='ctx'> rb_io_read_check(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     if (!READ_DATA_PENDING(fptr)) {</div><div class='del'>-	rb_thread_wait_fd(fptr-&gt;fd);</div><div class='add'>+        rb_io_wait(fptr-&gt;self, RB_INT2NUM(RUBY_IO_READABLE), RUBY_IO_TIMEOUT_DEFAULT);</div><div class='ctx'>     }</div><div class='ctx'>     return;</div><div class='ctx'> }</div><div class='hunk'>@@ -919,8 +1060,8 @@ int</div><div class='ctx'> rb_gc_for_fd(int err)</div><div class='ctx'> {</div><div class='ctx'>     if (err == EMFILE || err == ENFILE || err == ENOMEM) {</div><div class='del'>-	rb_gc();</div><div class='del'>-	return 1;</div><div class='add'>+        rb_gc();</div><div class='add'>+        return 1;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -932,13 +1073,13 @@ ruby_dup(int orig)</div><div class='ctx'> </div><div class='ctx'>     fd = rb_cloexec_dup(orig);</div><div class='ctx'>     if (fd &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	if (rb_gc_for_fd(e)) {</div><div class='del'>-	    fd = rb_cloexec_dup(orig);</div><div class='del'>-	}</div><div class='del'>-	if (fd &lt; 0) {</div><div class='del'>-	    rb_syserr_fail(e, 0);</div><div class='del'>-	}</div><div class='add'>+        int e = errno;</div><div class='add'>+        if (rb_gc_for_fd(e)) {</div><div class='add'>+            fd = rb_cloexec_dup(orig);</div><div class='add'>+        }</div><div class='add'>+        if (fd &lt; 0) {</div><div class='add'>+            rb_syserr_fail(e, 0);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     rb_update_max_fd(fd);</div><div class='ctx'>     return fd;</div><div class='hunk'>@@ -959,64 +1100,127 @@ io_alloc(VALUE klass)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> struct io_internal_read_struct {</div><div class='del'>-    int fd;</div><div class='add'>+    VALUE th;</div><div class='add'>+    rb_io_t *fptr;</div><div class='ctx'>     int nonblock;</div><div class='add'>+    int fd;</div><div class='add'>+</div><div class='ctx'>     void *buf;</div><div class='ctx'>     size_t capa;</div><div class='add'>+    struct timeval *timeout;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> struct io_internal_write_struct {</div><div class='add'>+    VALUE th;</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    int nonblock;</div><div class='ctx'>     int fd;</div><div class='add'>+</div><div class='ctx'>     const void *buf;</div><div class='ctx'>     size_t capa;</div><div class='add'>+    struct timeval *timeout;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_WRITEV</div><div class='ctx'> struct io_internal_writev_struct {</div><div class='add'>+    VALUE th;</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    int nonblock;</div><div class='ctx'>     int fd;</div><div class='add'>+</div><div class='ctx'>     int iovcnt;</div><div class='ctx'>     const struct iovec *iov;</div><div class='add'>+    struct timeval *timeout;</div><div class='ctx'> };</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-static int nogvl_wait_for_single_fd(int fd, short events);</div><div class='add'>+static int nogvl_wait_for(VALUE th, rb_io_t *fptr, short events, struct timeval *timeout);</div><div class='add'>+</div><div class='add'>+/**</div><div class='add'>+ * Wait for the given events on the given file descriptor.</div><div class='add'>+ * Returns -1 if an error or timeout occurred. +errno+ will be set.</div><div class='add'>+ * Returns the event mask if an event occurred.</div><div class='add'>+ */</div><div class='add'>+static inline int</div><div class='add'>+io_internal_wait(VALUE thread, rb_io_t *fptr, int error, int events, struct timeval *timeout)</div><div class='add'>+{</div><div class='add'>+    int ready = nogvl_wait_for(thread, fptr, events, timeout);</div><div class='add'>+</div><div class='add'>+    if (ready &gt; 0) {</div><div class='add'>+        return ready;</div><div class='add'>+    }</div><div class='add'>+    else if (ready == 0) {</div><div class='add'>+        errno = ETIMEDOUT;</div><div class='add'>+        return -1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    errno = error;</div><div class='add'>+    return -1;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> internal_read_func(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct io_internal_read_struct *iis = ptr;</div><div class='del'>-    ssize_t r;</div><div class='del'>-retry:</div><div class='del'>-    r = read(iis-&gt;fd, iis-&gt;buf, iis-&gt;capa);</div><div class='del'>-    if (r &lt; 0 &amp;&amp; !iis-&gt;nonblock) {</div><div class='del'>-        int e = errno;</div><div class='del'>-        if (e == EAGAIN || e == EWOULDBLOCK) {</div><div class='del'>-            if (nogvl_wait_for_single_fd(iis-&gt;fd, RB_WAITFD_IN) != -1) {</div><div class='add'>+    ssize_t result;</div><div class='add'>+</div><div class='add'>+    if (iis-&gt;timeout &amp;&amp; !iis-&gt;nonblock) {</div><div class='add'>+        if (io_internal_wait(iis-&gt;th, iis-&gt;fptr, 0, RB_WAITFD_IN, iis-&gt;timeout) == -1) {</div><div class='add'>+            return -1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+  retry:</div><div class='add'>+    result = read(iis-&gt;fd, iis-&gt;buf, iis-&gt;capa);</div><div class='add'>+</div><div class='add'>+    if (result &lt; 0 &amp;&amp; !iis-&gt;nonblock) {</div><div class='add'>+        if (io_again_p(errno)) {</div><div class='add'>+            if (io_internal_wait(iis-&gt;th, iis-&gt;fptr, errno, RB_WAITFD_IN, iis-&gt;timeout) == -1) {</div><div class='add'>+                return -1;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='ctx'>                 goto retry;</div><div class='ctx'>             }</div><div class='del'>-            errno = e;</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='del'>-    return r;</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if defined __APPLE__</div><div class='del'>-# define do_write_retry(code) do {ret = code;} while (ret == -1 &amp;&amp; errno == EPROTOTYPE)</div><div class='add'>+# define do_write_retry(code) do {result = code;} while (result == -1 &amp;&amp; errno == EPROTOTYPE)</div><div class='ctx'> #else</div><div class='del'>-# define do_write_retry(code) ret = code</div><div class='add'>+# define do_write_retry(code) result = code</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> internal_write_func(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct io_internal_write_struct *iis = ptr;</div><div class='del'>-    ssize_t ret;</div><div class='add'>+    ssize_t result;</div><div class='add'>+</div><div class='add'>+    if (iis-&gt;timeout &amp;&amp; !iis-&gt;nonblock) {</div><div class='add'>+        if (io_internal_wait(iis-&gt;th, iis-&gt;fptr, 0, RB_WAITFD_OUT, iis-&gt;timeout) == -1) {</div><div class='add'>+            return -1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+  retry:</div><div class='ctx'>     do_write_retry(write(iis-&gt;fd, iis-&gt;buf, iis-&gt;capa));</div><div class='del'>-    return (VALUE)ret;</div><div class='del'>-}</div><div class='ctx'> </div><div class='del'>-static void*</div><div class='del'>-internal_write_func2(void *ptr)</div><div class='del'>-{</div><div class='del'>-    return (void*)internal_write_func(ptr);</div><div class='add'>+    if (result &lt; 0 &amp;&amp; !iis-&gt;nonblock) {</div><div class='add'>+        int e = errno;</div><div class='add'>+        if (io_again_p(e)) {</div><div class='add'>+            if (io_internal_wait(iis-&gt;th, iis-&gt;fptr, errno, RB_WAITFD_OUT, iis-&gt;timeout) == -1) {</div><div class='add'>+                return -1;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                goto retry;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_WRITEV</div><div class='hunk'>@@ -1024,58 +1228,133 @@ static VALUE</div><div class='ctx'> internal_writev_func(void *ptr)</div><div class='ctx'> {</div><div class='ctx'>     struct io_internal_writev_struct *iis = ptr;</div><div class='del'>-    ssize_t ret;</div><div class='add'>+    ssize_t result;</div><div class='add'>+</div><div class='add'>+    if (iis-&gt;timeout &amp;&amp; !iis-&gt;nonblock) {</div><div class='add'>+        if (io_internal_wait(iis-&gt;th, iis-&gt;fptr, 0, RB_WAITFD_OUT, iis-&gt;timeout) == -1) {</div><div class='add'>+            return -1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+  retry:</div><div class='ctx'>     do_write_retry(writev(iis-&gt;fd, iis-&gt;iov, iis-&gt;iovcnt));</div><div class='del'>-    return (VALUE)ret;</div><div class='add'>+</div><div class='add'>+    if (result &lt; 0 &amp;&amp; !iis-&gt;nonblock) {</div><div class='add'>+        if (io_again_p(errno)) {</div><div class='add'>+            if (io_internal_wait(iis-&gt;th, iis-&gt;fptr, errno, RB_WAITFD_OUT, iis-&gt;timeout) == -1) {</div><div class='add'>+                return -1;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                goto retry;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static ssize_t</div><div class='del'>-rb_read_internal(int fd, void *buf, size_t count)</div><div class='add'>+rb_io_read_memory(rb_io_t *fptr, void *buf, size_t count)</div><div class='ctx'> {</div><div class='del'>-    struct io_internal_read_struct iis;</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        VALUE result = rb_fiber_scheduler_io_read_memory(scheduler, fptr-&gt;self, buf, count, 0);</div><div class='ctx'> </div><div class='del'>-    iis.fd = fd;</div><div class='del'>-    iis.nonblock = 0;</div><div class='del'>-    iis.buf = buf;</div><div class='del'>-    iis.capa = count;</div><div class='add'>+        if (!UNDEF_P(result)) {</div><div class='add'>+            return rb_fiber_scheduler_io_result_apply(result);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    return (ssize_t)rb_thread_io_blocking_region(internal_read_func, &amp;iis, fd);</div><div class='del'>-}</div><div class='add'>+    struct io_internal_read_struct iis = {</div><div class='add'>+        .th = rb_thread_current(),</div><div class='add'>+        .fptr = fptr,</div><div class='add'>+        .nonblock = 0,</div><div class='add'>+        .fd = fptr-&gt;fd,</div><div class='ctx'> </div><div class='del'>-static ssize_t</div><div class='del'>-rb_write_internal(int fd, const void *buf, size_t count)</div><div class='del'>-{</div><div class='del'>-    struct io_internal_write_struct iis;</div><div class='del'>-    iis.fd = fd;</div><div class='del'>-    iis.buf = buf;</div><div class='del'>-    iis.capa = count;</div><div class='add'>+        .buf = buf,</div><div class='add'>+        .capa = count,</div><div class='add'>+        .timeout = NULL,</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    struct timeval timeout_storage;</div><div class='add'>+</div><div class='add'>+    if (fptr-&gt;timeout != Qnil) {</div><div class='add'>+        timeout_storage = rb_time_interval(fptr-&gt;timeout);</div><div class='add'>+        iis.timeout = &amp;timeout_storage;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    return (ssize_t)rb_thread_io_blocking_region(internal_write_func, &amp;iis, fd);</div><div class='add'>+    return (ssize_t)rb_thread_io_blocking_region(internal_read_func, &amp;iis, fptr-&gt;fd);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static ssize_t</div><div class='del'>-rb_write_internal2(int fd, const void *buf, size_t count)</div><div class='add'>+rb_io_write_memory(rb_io_t *fptr, const void *buf, size_t count)</div><div class='ctx'> {</div><div class='del'>-    struct io_internal_write_struct iis;</div><div class='del'>-    iis.fd = fd;</div><div class='del'>-    iis.buf = buf;</div><div class='del'>-    iis.capa = count;</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        VALUE result = rb_fiber_scheduler_io_write_memory(scheduler, fptr-&gt;self, buf, count, 0);</div><div class='add'>+</div><div class='add'>+        if (!UNDEF_P(result)) {</div><div class='add'>+            return rb_fiber_scheduler_io_result_apply(result);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    return (ssize_t)rb_thread_call_without_gvl2(internal_write_func2, &amp;iis,</div><div class='del'>-						RUBY_UBF_IO, NULL);</div><div class='add'>+    struct io_internal_write_struct iis = {</div><div class='add'>+        .th = rb_thread_current(),</div><div class='add'>+        .fptr = fptr,</div><div class='add'>+        .nonblock = 0,</div><div class='add'>+        .fd = fptr-&gt;fd,</div><div class='add'>+</div><div class='add'>+        .buf = buf,</div><div class='add'>+        .capa = count,</div><div class='add'>+        .timeout = NULL</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    struct timeval timeout_storage;</div><div class='add'>+</div><div class='add'>+    if (fptr-&gt;timeout != Qnil) {</div><div class='add'>+        timeout_storage = rb_time_interval(fptr-&gt;timeout);</div><div class='add'>+        iis.timeout = &amp;timeout_storage;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return (ssize_t)rb_thread_io_blocking_region(internal_write_func, &amp;iis, fptr-&gt;fd);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_WRITEV</div><div class='ctx'> static ssize_t</div><div class='del'>-rb_writev_internal(int fd, const struct iovec *iov, int iovcnt)</div><div class='add'>+rb_writev_internal(rb_io_t *fptr, const struct iovec *iov, int iovcnt)</div><div class='ctx'> {</div><div class='del'>-    struct io_internal_writev_struct iis;</div><div class='del'>-    iis.fd = fd;</div><div class='del'>-    iis.iov = iov;</div><div class='del'>-    iis.iovcnt = iovcnt;</div><div class='add'>+    if (!iovcnt) return 0;</div><div class='add'>+</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        // This path assumes at least one `iov`:</div><div class='add'>+        VALUE result = rb_fiber_scheduler_io_write_memory(scheduler, fptr-&gt;self, iov[0].iov_base, iov[0].iov_len, 0);</div><div class='add'>+</div><div class='add'>+        if (!UNDEF_P(result)) {</div><div class='add'>+            return rb_fiber_scheduler_io_result_apply(result);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    struct io_internal_writev_struct iis = {</div><div class='add'>+        .th = rb_thread_current(),</div><div class='add'>+        .fptr = fptr,</div><div class='add'>+        .nonblock = 0,</div><div class='add'>+        .fd = fptr-&gt;fd,</div><div class='add'>+</div><div class='add'>+        .iov = iov,</div><div class='add'>+        .iovcnt = iovcnt,</div><div class='add'>+        .timeout = NULL</div><div class='add'>+    };</div><div class='ctx'> </div><div class='del'>-    return (ssize_t)rb_thread_io_blocking_region(internal_writev_func, &amp;iis, fd);</div><div class='add'>+    struct timeval timeout_storage;</div><div class='add'>+</div><div class='add'>+    if (fptr-&gt;timeout != Qnil) {</div><div class='add'>+        timeout_storage = rb_time_interval(fptr-&gt;timeout);</div><div class='add'>+        iis.timeout = &amp;timeout_storage;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return (ssize_t)rb_thread_io_blocking_region(internal_writev_func, &amp;iis, fptr-&gt;fd);</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -1087,28 +1366,18 @@ io_flush_buffer_sync(void *arg)</div><div class='ctx'>     ssize_t r = write(fptr-&gt;fd, fptr-&gt;wbuf.ptr+fptr-&gt;wbuf.off, (size_t)l);</div><div class='ctx'> </div><div class='ctx'>     if (fptr-&gt;wbuf.len &lt;= r) {</div><div class='del'>-	fptr-&gt;wbuf.off = 0;</div><div class='del'>-	fptr-&gt;wbuf.len = 0;</div><div class='del'>-	return 0;</div><div class='add'>+        fptr-&gt;wbuf.off = 0;</div><div class='add'>+        fptr-&gt;wbuf.len = 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     if (0 &lt;= r) {</div><div class='del'>-	fptr-&gt;wbuf.off += (int)r;</div><div class='del'>-	fptr-&gt;wbuf.len -= (int)r;</div><div class='del'>-	errno = EAGAIN;</div><div class='add'>+        fptr-&gt;wbuf.off += (int)r;</div><div class='add'>+        fptr-&gt;wbuf.len -= (int)r;</div><div class='add'>+        errno = EAGAIN;</div><div class='ctx'>     }</div><div class='del'>-    return (VALUE)-1;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-static void*</div><div class='del'>-io_flush_buffer_sync2(void *arg)</div><div class='del'>-{</div><div class='del'>-    VALUE result = io_flush_buffer_sync(arg);</div><div class='ctx'> </div><div class='del'>-    /*</div><div class='del'>-     * rb_thread_call_without_gvl2 uses 0 as interrupted.</div><div class='del'>-     * So, we need to avoid to use 0.</div><div class='del'>-     */</div><div class='del'>-    return !result ? (void*)1 : (void*)result;</div><div class='add'>+    return (VALUE)-1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1118,37 +1387,14 @@ io_flush_buffer_async(VALUE arg)</div><div class='ctx'>     return rb_thread_io_blocking_region(io_flush_buffer_sync, fptr, fptr-&gt;fd);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-io_flush_buffer_async2(VALUE arg)</div><div class='del'>-{</div><div class='del'>-    rb_io_t *fptr = (rb_io_t *)arg;</div><div class='del'>-    VALUE ret;</div><div class='del'>-</div><div class='del'>-    ret = (VALUE)rb_thread_call_without_gvl2(io_flush_buffer_sync2, fptr,</div><div class='del'>-					     RUBY_UBF_IO, NULL);</div><div class='del'>-</div><div class='del'>-    if (!ret) {</div><div class='del'>-	/* pending async interrupt is there. */</div><div class='del'>-	errno = EAGAIN;</div><div class='del'>-	return -1;</div><div class='del'>-    }</div><div class='del'>-    else if (ret == 1) {</div><div class='del'>-	return 0;</div><div class='del'>-    }</div><div class='del'>-    return ret;</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static inline int</div><div class='ctx'> io_flush_buffer(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='del'>-    if (fptr-&gt;write_lock) {</div><div class='del'>-	if (rb_mutex_owned_p(fptr-&gt;write_lock))</div><div class='del'>-	    return (int)io_flush_buffer_async2((VALUE)fptr);</div><div class='del'>-	else</div><div class='del'>-	    return (int)rb_mutex_synchronize(fptr-&gt;write_lock, io_flush_buffer_async2, (VALUE)fptr);</div><div class='add'>+    if (!NIL_P(fptr-&gt;write_lock) &amp;&amp; rb_mutex_owned_p(fptr-&gt;write_lock)) {</div><div class='add'>+        return (int)io_flush_buffer_async((VALUE)fptr);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return (int)io_flush_buffer_async((VALUE)fptr);</div><div class='add'>+        return (int)rb_mutex_synchronize(fptr-&gt;write_lock, io_flush_buffer_async, (VALUE)fptr);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1156,37 +1402,112 @@ static int</div><div class='ctx'> io_fflush(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='add'>+</div><div class='ctx'>     if (fptr-&gt;wbuf.len == 0)</div><div class='ctx'>         return 0;</div><div class='add'>+</div><div class='ctx'>     while (fptr-&gt;wbuf.len &gt; 0 &amp;&amp; io_flush_buffer(fptr) != 0) {</div><div class='del'>-	if (!rb_io_wait_writable(fptr-&gt;fd))</div><div class='del'>-	    return -1;</div><div class='add'>+        if (!rb_io_maybe_wait_writable(errno, fptr-&gt;self, RUBY_IO_TIMEOUT_DEFAULT))</div><div class='add'>+            return -1;</div><div class='add'>+</div><div class='ctx'>         rb_io_check_closed(fptr);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_io_wait(VALUE io, VALUE events, VALUE timeout)</div><div class='add'>+{</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        return rb_fiber_scheduler_io_wait(scheduler, io, events, timeout);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_io_t * fptr = NULL;</div><div class='add'>+    RB_IO_POINTER(io, fptr);</div><div class='add'>+</div><div class='add'>+    struct timeval tv_storage;</div><div class='add'>+    struct timeval *tv = NULL;</div><div class='add'>+</div><div class='add'>+    if (NIL_OR_UNDEF_P(timeout)) {</div><div class='add'>+        timeout = fptr-&gt;timeout;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (timeout != Qnil) {</div><div class='add'>+        tv_storage = rb_time_interval(timeout);</div><div class='add'>+        tv = &amp;tv_storage;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    int ready = rb_thread_wait_for_single_fd(fptr-&gt;fd, RB_NUM2INT(events), tv);</div><div class='add'>+</div><div class='add'>+    if (ready &lt; 0) {</div><div class='add'>+        rb_sys_fail(0);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // Not sure if this is necessary:</div><div class='add'>+    rb_io_check_closed(fptr);</div><div class='add'>+</div><div class='add'>+    if (ready) {</div><div class='add'>+        return RB_INT2NUM(ready);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return Qfalse;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_from_fd(int fd)</div><div class='add'>+{</div><div class='add'>+    return prep_io(fd, FMODE_PREP, rb_cIO, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+io_wait_for_single_fd(int fd, int events, struct timeval *timeout)</div><div class='add'>+{</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        return RTEST(</div><div class='add'>+            rb_fiber_scheduler_io_wait(scheduler, io_from_fd(fd), RB_INT2NUM(events), rb_fiber_scheduler_make_timeout(timeout))</div><div class='add'>+        );</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return rb_thread_wait_for_single_fd(fd, events, timeout);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> int</div><div class='ctx'> rb_io_wait_readable(int f)</div><div class='ctx'> {</div><div class='ctx'>     io_fd_check_closed(f);</div><div class='add'>+</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+</div><div class='ctx'>     switch (errno) {</div><div class='ctx'>       case EINTR:</div><div class='ctx'> #if defined(ERESTART)</div><div class='ctx'>       case ERESTART:</div><div class='ctx'> #endif</div><div class='del'>-	rb_thread_check_ints();</div><div class='del'>-	return TRUE;</div><div class='add'>+        rb_thread_check_ints();</div><div class='add'>+        return TRUE;</div><div class='ctx'> </div><div class='ctx'>       case EAGAIN:</div><div class='del'>-#if defined(EWOULDBLOCK) &amp;&amp; EWOULDBLOCK != EAGAIN</div><div class='add'>+#if EWOULDBLOCK != EAGAIN</div><div class='ctx'>       case EWOULDBLOCK:</div><div class='ctx'> #endif</div><div class='del'>-	rb_thread_wait_fd(f);</div><div class='del'>-	return TRUE;</div><div class='add'>+        if (scheduler != Qnil) {</div><div class='add'>+            return RTEST(</div><div class='add'>+                rb_fiber_scheduler_io_wait_readable(scheduler, io_from_fd(f))</div><div class='add'>+            );</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            io_wait_for_single_fd(f, RUBY_IO_READABLE, NULL);</div><div class='add'>+        }</div><div class='add'>+        return TRUE;</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1194,32 +1515,127 @@ int</div><div class='ctx'> rb_io_wait_writable(int f)</div><div class='ctx'> {</div><div class='ctx'>     io_fd_check_closed(f);</div><div class='add'>+</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+</div><div class='ctx'>     switch (errno) {</div><div class='ctx'>       case EINTR:</div><div class='ctx'> #if defined(ERESTART)</div><div class='ctx'>       case ERESTART:</div><div class='ctx'> #endif</div><div class='del'>-	/*</div><div class='del'>-	 * In old Linux, several special files under /proc and /sys don't handle</div><div class='del'>-	 * select properly. Thus we need avoid to call if don't use O_NONBLOCK.</div><div class='del'>-	 * Otherwise, we face nasty hang up. Sigh.</div><div class='del'>-	 * e.g. http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=31b07093c44a7a442394d44423e21d783f5523b8</div><div class='del'>-	 * http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=31b07093c44a7a442394d44423e21d783f5523b8</div><div class='del'>-	 * In EINTR case, we only need to call RUBY_VM_CHECK_INTS_BLOCKING().</div><div class='del'>-	 * Then rb_thread_check_ints() is enough.</div><div class='del'>-	 */</div><div class='del'>-	rb_thread_check_ints();</div><div class='del'>-	return TRUE;</div><div class='add'>+        /*</div><div class='add'>+         * In old Linux, several special files under /proc and /sys don't handle</div><div class='add'>+         * select properly. Thus we need avoid to call if don't use O_NONBLOCK.</div><div class='add'>+         * Otherwise, we face nasty hang up. Sigh.</div><div class='add'>+         * e.g. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=31b07093c44a7a442394d44423e21d783f5523b8</div><div class='add'>+         * https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=31b07093c44a7a442394d44423e21d783f5523b8</div><div class='add'>+         * In EINTR case, we only need to call RUBY_VM_CHECK_INTS_BLOCKING().</div><div class='add'>+         * Then rb_thread_check_ints() is enough.</div><div class='add'>+         */</div><div class='add'>+        rb_thread_check_ints();</div><div class='add'>+        return TRUE;</div><div class='ctx'> </div><div class='ctx'>       case EAGAIN:</div><div class='del'>-#if defined(EWOULDBLOCK) &amp;&amp; EWOULDBLOCK != EAGAIN</div><div class='add'>+#if EWOULDBLOCK != EAGAIN</div><div class='ctx'>       case EWOULDBLOCK:</div><div class='ctx'> #endif</div><div class='del'>-	rb_thread_fd_writable(f);</div><div class='del'>-	return TRUE;</div><div class='add'>+        if (scheduler != Qnil) {</div><div class='add'>+            return RTEST(</div><div class='add'>+                rb_fiber_scheduler_io_wait_writable(scheduler, io_from_fd(f))</div><div class='add'>+            );</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            io_wait_for_single_fd(f, RUBY_IO_WRITABLE, NULL);</div><div class='add'>+        }</div><div class='add'>+        return TRUE;</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	return FALSE;</div><div class='add'>+        return FALSE;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_wait_for_single_fd(int fd, int events, struct timeval *timeout)</div><div class='add'>+{</div><div class='add'>+    return io_wait_for_single_fd(fd, events, timeout);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_thread_wait_fd(int fd)</div><div class='add'>+{</div><div class='add'>+    return rb_wait_for_single_fd(fd, RUBY_IO_READABLE, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_thread_fd_writable(int fd)</div><div class='add'>+{</div><div class='add'>+    return rb_wait_for_single_fd(fd, RUBY_IO_WRITABLE, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_maybe_wait(int error, VALUE io, VALUE events, VALUE timeout)</div><div class='add'>+{</div><div class='add'>+    // fptr-&gt;fd can be set to -1 at any time by another thread when the GVL is</div><div class='add'>+    // released. Many code, e.g. `io_bufread` didn't check this correctly and</div><div class='add'>+    // instead relies on `read(-1) -&gt; -1` which causes this code path. We then</div><div class='add'>+    // check here whether the IO was in fact closed. Probably it's better to</div><div class='add'>+    // check that `fptr-&gt;fd != -1` before using it in syscall.</div><div class='add'>+    rb_io_check_closed(RFILE(io)-&gt;fptr);</div><div class='add'>+</div><div class='add'>+    switch (error) {</div><div class='add'>+      // In old Linux, several special files under /proc and /sys don't handle</div><div class='add'>+      // select properly. Thus we need avoid to call if don't use O_NONBLOCK.</div><div class='add'>+      // Otherwise, we face nasty hang up. Sigh.</div><div class='add'>+      // e.g. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=31b07093c44a7a442394d44423e21d783f5523b8</div><div class='add'>+      // https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=31b07093c44a7a442394d44423e21d783f5523b8</div><div class='add'>+      // In EINTR case, we only need to call RUBY_VM_CHECK_INTS_BLOCKING().</div><div class='add'>+      // Then rb_thread_check_ints() is enough.</div><div class='add'>+      case EINTR:</div><div class='add'>+#if defined(ERESTART)</div><div class='add'>+      case ERESTART:</div><div class='add'>+#endif</div><div class='add'>+        // We might have pending interrupts since the previous syscall was interrupted:</div><div class='add'>+        rb_thread_check_ints();</div><div class='add'>+</div><div class='add'>+        // The operation was interrupted, so retry it immediately:</div><div class='add'>+        return events;</div><div class='add'>+</div><div class='add'>+      case EAGAIN:</div><div class='add'>+#if EWOULDBLOCK != EAGAIN</div><div class='add'>+      case EWOULDBLOCK:</div><div class='add'>+#endif</div><div class='add'>+        // The operation would block, so wait for the specified events:</div><div class='add'>+        return rb_io_wait(io, events, timeout);</div><div class='add'>+</div><div class='add'>+      default:</div><div class='add'>+        // Non-specific error, no event is ready:</div><div class='add'>+        return Qfalse;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_io_maybe_wait_readable(int error, VALUE io, VALUE timeout)</div><div class='add'>+{</div><div class='add'>+    VALUE result = rb_io_maybe_wait(error, io, RB_INT2NUM(RUBY_IO_READABLE), timeout);</div><div class='add'>+</div><div class='add'>+    if (RTEST(result)) {</div><div class='add'>+        return RB_NUM2INT(result);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_io_maybe_wait_writable(int error, VALUE io, VALUE timeout)</div><div class='add'>+{</div><div class='add'>+    VALUE result = rb_io_maybe_wait(error, io, RB_INT2NUM(RUBY_IO_WRITABLE), timeout);</div><div class='add'>+</div><div class='add'>+    if (RTEST(result)) {</div><div class='add'>+        return RB_NUM2INT(result);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1237,7 +1653,7 @@ make_writeconv(rb_io_t *fptr)</div><div class='ctx'>         ecflags = fptr-&gt;encs.ecflags &amp; ~ECONV_NEWLINE_DECORATOR_READ_MASK;</div><div class='ctx'>         ecopts = fptr-&gt;encs.ecopts;</div><div class='ctx'> </div><div class='del'>-        if (!fptr-&gt;encs.enc || (fptr-&gt;encs.enc == rb_ascii8bit_encoding() &amp;&amp; !fptr-&gt;encs.enc2)) {</div><div class='add'>+        if (!fptr-&gt;encs.enc || (rb_is_ascii8bit_enc(fptr-&gt;encs.enc) &amp;&amp; !fptr-&gt;encs.enc2)) {</div><div class='ctx'>             /* no encoding conversion */</div><div class='ctx'>             fptr-&gt;writeconv_pre_ecflags = 0;</div><div class='ctx'>             fptr-&gt;writeconv_pre_ecopts = Qnil;</div><div class='hunk'>@@ -1293,133 +1709,180 @@ struct write_arg {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_WRITEV</div><div class='del'>-static VALUE</div><div class='del'>-io_binwrite_string(VALUE arg)</div><div class='add'>+static ssize_t</div><div class='add'>+io_binwrite_string_internal(rb_io_t *fptr, const char *ptr, long length)</div><div class='ctx'> {</div><div class='del'>-    struct binwrite_arg *p = (struct binwrite_arg *)arg;</div><div class='del'>-    rb_io_t *fptr = p-&gt;fptr;</div><div class='del'>-    long r;</div><div class='del'>-</div><div class='ctx'>     if (fptr-&gt;wbuf.len) {</div><div class='del'>-	struct iovec iov[2];</div><div class='add'>+        struct iovec iov[2];</div><div class='ctx'> </div><div class='del'>-	iov[0].iov_base = fptr-&gt;wbuf.ptr+fptr-&gt;wbuf.off;</div><div class='del'>-	iov[0].iov_len = fptr-&gt;wbuf.len;</div><div class='del'>-	iov[1].iov_base = (char *)p-&gt;ptr;</div><div class='del'>-	iov[1].iov_len = p-&gt;length;</div><div class='add'>+        iov[0].iov_base = fptr-&gt;wbuf.ptr+fptr-&gt;wbuf.off;</div><div class='add'>+        iov[0].iov_len = fptr-&gt;wbuf.len;</div><div class='add'>+        iov[1].iov_base = (void*)ptr;</div><div class='add'>+        iov[1].iov_len = length;</div><div class='ctx'> </div><div class='del'>-	r = rb_writev_internal(fptr-&gt;fd, iov, 2);</div><div class='add'>+        ssize_t result = rb_writev_internal(fptr, iov, 2);</div><div class='add'>+</div><div class='add'>+        if (result &lt; 0)</div><div class='add'>+            return result;</div><div class='add'>+</div><div class='add'>+        if (result &gt;= fptr-&gt;wbuf.len) {</div><div class='add'>+            // We wrote more than the internal buffer:</div><div class='add'>+            result -= fptr-&gt;wbuf.len;</div><div class='add'>+            fptr-&gt;wbuf.off = 0;</div><div class='add'>+            fptr-&gt;wbuf.len = 0;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            // We only wrote less data than the internal buffer:</div><div class='add'>+            fptr-&gt;wbuf.off += (int)result;</div><div class='add'>+            fptr-&gt;wbuf.len -= (int)result;</div><div class='ctx'> </div><div class='del'>-        if (r &lt; 0)</div><div class='del'>-            return r;</div><div class='add'>+            result = 0;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	if (fptr-&gt;wbuf.len &lt;= r) {</div><div class='del'>-	    r -= fptr-&gt;wbuf.len;</div><div class='del'>-	    fptr-&gt;wbuf.off = 0;</div><div class='del'>-	    fptr-&gt;wbuf.len = 0;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    fptr-&gt;wbuf.off += (int)r;</div><div class='del'>-	    fptr-&gt;wbuf.len -= (int)r;</div><div class='del'>-	    r = 0L;</div><div class='del'>-	}</div><div class='add'>+        return result;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	r = rb_write_internal(fptr-&gt;fd, p-&gt;ptr, p-&gt;length);</div><div class='add'>+        return rb_io_write_memory(fptr, ptr, length);</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    return r;</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='add'>+static ssize_t</div><div class='add'>+io_binwrite_string_internal(rb_io_t *fptr, const char *ptr, long length)</div><div class='add'>+{</div><div class='add'>+    long remaining = length;</div><div class='add'>+</div><div class='add'>+    if (fptr-&gt;wbuf.len) {</div><div class='add'>+        if (fptr-&gt;wbuf.len+length &lt;= fptr-&gt;wbuf.capa) {</div><div class='add'>+            if (fptr-&gt;wbuf.capa &lt; fptr-&gt;wbuf.off+fptr-&gt;wbuf.len+length) {</div><div class='add'>+                MEMMOVE(fptr-&gt;wbuf.ptr, fptr-&gt;wbuf.ptr+fptr-&gt;wbuf.off, char, fptr-&gt;wbuf.len);</div><div class='add'>+                fptr-&gt;wbuf.off = 0;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            MEMMOVE(fptr-&gt;wbuf.ptr+fptr-&gt;wbuf.off+fptr-&gt;wbuf.len, ptr, char, length);</div><div class='add'>+            fptr-&gt;wbuf.len += (int)length;</div><div class='add'>+</div><div class='add'>+            // We copied the entire incoming data to the internal buffer:</div><div class='add'>+            remaining = 0;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // Flush the internal buffer:</div><div class='add'>+        if (io_fflush(fptr) &lt; 0) {</div><div class='add'>+            return -1;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // If all the data was buffered, we are done:</div><div class='add'>+        if (remaining == 0) {</div><div class='add'>+            return length;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // Otherwise, we should write the data directly:</div><div class='add'>+    return rb_io_write_memory(fptr, ptr, length);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> io_binwrite_string(VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     struct binwrite_arg *p = (struct binwrite_arg *)arg;</div><div class='del'>-    rb_io_t *fptr = p-&gt;fptr;</div><div class='del'>-    long l, len;</div><div class='ctx'> </div><div class='del'>-    l = len = p-&gt;length;</div><div class='add'>+    const char *ptr = p-&gt;ptr;</div><div class='add'>+    size_t remaining = p-&gt;length;</div><div class='ctx'> </div><div class='del'>-    if (fptr-&gt;wbuf.len) {</div><div class='del'>-	if (fptr-&gt;wbuf.len+len &lt;= fptr-&gt;wbuf.capa) {</div><div class='del'>-	    if (fptr-&gt;wbuf.capa &lt; fptr-&gt;wbuf.off+fptr-&gt;wbuf.len+len) {</div><div class='del'>-		MEMMOVE(fptr-&gt;wbuf.ptr, fptr-&gt;wbuf.ptr+fptr-&gt;wbuf.off, char, fptr-&gt;wbuf.len);</div><div class='del'>-		fptr-&gt;wbuf.off = 0;</div><div class='del'>-	    }</div><div class='del'>-	    MEMMOVE(fptr-&gt;wbuf.ptr+fptr-&gt;wbuf.off+fptr-&gt;wbuf.len, p-&gt;ptr, char, len);</div><div class='del'>-	    fptr-&gt;wbuf.len += (int)len;</div><div class='del'>-	    l = 0;</div><div class='del'>-	}</div><div class='del'>-	if (io_fflush(fptr) &lt; 0)</div><div class='del'>-	    return -2L; /* fail in fflush */</div><div class='del'>-	if (l == 0)</div><div class='del'>-	    return len;</div><div class='add'>+    while (remaining) {</div><div class='add'>+        // Write as much as possible:</div><div class='add'>+        ssize_t result = io_binwrite_string_internal(p-&gt;fptr, ptr, remaining);</div><div class='add'>+</div><div class='add'>+        if (result == 0) {</div><div class='add'>+            // If only the internal buffer is written, result will be zero [bytes of given data written]. This means we</div><div class='add'>+            // should try again immediately.</div><div class='add'>+        }</div><div class='add'>+        else if (result &gt; 0) {</div><div class='add'>+            if ((size_t)result == remaining) break;</div><div class='add'>+            ptr += result;</div><div class='add'>+            remaining -= result;</div><div class='add'>+        }</div><div class='add'>+        // Wait for it to become writable:</div><div class='add'>+        else if (rb_io_maybe_wait_writable(errno, p-&gt;fptr-&gt;self, RUBY_IO_TIMEOUT_DEFAULT)) {</div><div class='add'>+            rb_io_check_closed(p-&gt;fptr);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            // The error was unrelated to waiting for it to become writable, so we fail:</div><div class='add'>+            return -1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return p-&gt;length;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static void</div><div class='add'>+io_allocate_write_buffer(rb_io_t *fptr, int sync)</div><div class='add'>+{</div><div class='add'>+    if (fptr-&gt;wbuf.ptr == NULL &amp;&amp; !(sync &amp;&amp; (fptr-&gt;mode &amp; FMODE_SYNC))) {</div><div class='add'>+        fptr-&gt;wbuf.off = 0;</div><div class='add'>+        fptr-&gt;wbuf.len = 0;</div><div class='add'>+        fptr-&gt;wbuf.capa = IO_WBUF_CAPA_MIN;</div><div class='add'>+        fptr-&gt;wbuf.ptr = ALLOC_N(char, fptr-&gt;wbuf.capa);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (fptr-&gt;stdio_file != stderr &amp;&amp; !rb_thread_fd_writable(fptr-&gt;fd))</div><div class='del'>-	rb_io_check_closed(fptr);</div><div class='add'>+    if (NIL_P(fptr-&gt;write_lock)) {</div><div class='add'>+        fptr-&gt;write_lock = rb_mutex_new();</div><div class='add'>+        rb_mutex_allow_trap(fptr-&gt;write_lock, 1);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+io_binwrite_requires_flush_write(rb_io_t *fptr, long len, int nosync)</div><div class='add'>+{</div><div class='add'>+    // If the requested operation was synchronous and the output mode is synchronus or a TTY:</div><div class='add'>+    if (!nosync &amp;&amp; (fptr-&gt;mode &amp; (FMODE_SYNC|FMODE_TTY)))</div><div class='add'>+        return 1;</div><div class='ctx'> </div><div class='del'>-    return rb_write_internal(p-&gt;fptr-&gt;fd, p-&gt;ptr, p-&gt;length);</div><div class='add'>+    // If the amount of data we want to write exceeds the internal buffer:</div><div class='add'>+    if (fptr-&gt;wbuf.ptr &amp;&amp; fptr-&gt;wbuf.capa &lt;= fptr-&gt;wbuf.len + len)</div><div class='add'>+        return 1;</div><div class='add'>+</div><div class='add'>+    // Otherwise, we can append to the internal buffer:</div><div class='add'>+    return 0;</div><div class='ctx'> }</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='ctx'> static long</div><div class='ctx'> io_binwrite(VALUE str, const char *ptr, long len, rb_io_t *fptr, int nosync)</div><div class='ctx'> {</div><div class='del'>-    long n, r, offset = 0;</div><div class='add'>+    if (len &lt;= 0) return len;</div><div class='ctx'> </div><div class='del'>-    /* don't write anything if current thread has a pending interrupt. */</div><div class='add'>+    // Don't write anything if current thread has a pending interrupt:</div><div class='ctx'>     rb_thread_check_ints();</div><div class='ctx'> </div><div class='del'>-    if ((n = len) &lt;= 0) return n;</div><div class='del'>-    if (fptr-&gt;wbuf.ptr == NULL &amp;&amp; !(!nosync &amp;&amp; (fptr-&gt;mode &amp; FMODE_SYNC))) {</div><div class='del'>-        fptr-&gt;wbuf.off = 0;</div><div class='del'>-        fptr-&gt;wbuf.len = 0;</div><div class='del'>-        fptr-&gt;wbuf.capa = IO_WBUF_CAPA_MIN;</div><div class='del'>-        fptr-&gt;wbuf.ptr = ALLOC_N(char, fptr-&gt;wbuf.capa);</div><div class='del'>-	fptr-&gt;write_lock = rb_mutex_new();</div><div class='del'>-	rb_mutex_allow_trap(fptr-&gt;write_lock, 1);</div><div class='del'>-    }</div><div class='del'>-    if ((!nosync &amp;&amp; (fptr-&gt;mode &amp; (FMODE_SYNC|FMODE_TTY))) ||</div><div class='del'>-        (fptr-&gt;wbuf.ptr &amp;&amp; fptr-&gt;wbuf.capa &lt;= fptr-&gt;wbuf.len + len)) {</div><div class='del'>-	struct binwrite_arg arg;</div><div class='add'>+    io_allocate_write_buffer(fptr, !nosync);</div><div class='ctx'> </div><div class='del'>-	arg.fptr = fptr;</div><div class='del'>-	arg.str = str;</div><div class='del'>-      retry:</div><div class='del'>-	arg.ptr = ptr + offset;</div><div class='del'>-	arg.length = n;</div><div class='del'>-	if (fptr-&gt;write_lock) {</div><div class='del'>-	    r = rb_mutex_synchronize(fptr-&gt;write_lock, io_binwrite_string, (VALUE)&amp;arg);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    r = io_binwrite_string((VALUE)&amp;arg);</div><div class='del'>-	}</div><div class='del'>-	/* xxx: other threads may modify given string. */</div><div class='del'>-        if (r == n) return len;</div><div class='del'>-        if (0 &lt;= r) {</div><div class='del'>-            offset += r;</div><div class='del'>-            n -= r;</div><div class='del'>-            errno = EAGAIN;</div><div class='del'>-	}</div><div class='del'>-	if (r == -2L)</div><div class='del'>-	    return -1L;</div><div class='del'>-        if (rb_io_wait_writable(fptr-&gt;fd)) {</div><div class='del'>-            rb_io_check_closed(fptr);</div><div class='del'>-	    if (offset &lt; len)</div><div class='del'>-		goto retry;</div><div class='add'>+    if (io_binwrite_requires_flush_write(fptr, len, nosync)) {</div><div class='add'>+        struct binwrite_arg arg;</div><div class='add'>+</div><div class='add'>+        arg.fptr = fptr;</div><div class='add'>+        arg.str = str;</div><div class='add'>+        arg.ptr = ptr;</div><div class='add'>+        arg.length = len;</div><div class='add'>+</div><div class='add'>+        if (!NIL_P(fptr-&gt;write_lock)) {</div><div class='add'>+            return rb_mutex_synchronize(fptr-&gt;write_lock, io_binwrite_string, (VALUE)&amp;arg);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return io_binwrite_string((VALUE)&amp;arg);</div><div class='ctx'>         }</div><div class='del'>-        return -1L;</div><div class='ctx'>     }</div><div class='add'>+    else {</div><div class='add'>+        if (fptr-&gt;wbuf.off) {</div><div class='add'>+            if (fptr-&gt;wbuf.len)</div><div class='add'>+                MEMMOVE(fptr-&gt;wbuf.ptr, fptr-&gt;wbuf.ptr+fptr-&gt;wbuf.off, char, fptr-&gt;wbuf.len);</div><div class='add'>+            fptr-&gt;wbuf.off = 0;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-    if (fptr-&gt;wbuf.off) {</div><div class='del'>-        if (fptr-&gt;wbuf.len)</div><div class='del'>-            MEMMOVE(fptr-&gt;wbuf.ptr, fptr-&gt;wbuf.ptr+fptr-&gt;wbuf.off, char, fptr-&gt;wbuf.len);</div><div class='del'>-        fptr-&gt;wbuf.off = 0;</div><div class='add'>+        MEMMOVE(fptr-&gt;wbuf.ptr+fptr-&gt;wbuf.off+fptr-&gt;wbuf.len, ptr, char, len);</div><div class='add'>+        fptr-&gt;wbuf.len += (int)len;</div><div class='add'>+</div><div class='add'>+        return len;</div><div class='ctx'>     }</div><div class='del'>-    MEMMOVE(fptr-&gt;wbuf.ptr+fptr-&gt;wbuf.off+fptr-&gt;wbuf.len, ptr+offset, char, len);</div><div class='del'>-    fptr-&gt;wbuf.len += (int)len;</div><div class='del'>-    return len;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> # define MODE_BTMODE(a,b,c) ((fmode &amp; FMODE_BINMODE) ? (b) : \</div><div class='hunk'>@@ -1434,7 +1897,7 @@ do_writeconv(VALUE str, rb_io_t *fptr, int *converted)</div><div class='ctx'> {</div><div class='ctx'>     if (NEED_WRITECONV(fptr)) {</div><div class='ctx'>         VALUE common_encoding = Qnil;</div><div class='del'>-	SET_BINARY_MODE(fptr);</div><div class='add'>+        SET_BINARY_MODE(fptr);</div><div class='ctx'> </div><div class='ctx'>         make_writeconv(fptr);</div><div class='ctx'> </div><div class='hunk'>@@ -1458,27 +1921,27 @@ do_writeconv(VALUE str, rb_io_t *fptr, int *converted)</div><div class='ctx'>         if (!NIL_P(common_encoding)) {</div><div class='ctx'>             str = rb_str_encode(str, common_encoding,</div><div class='ctx'>                 fptr-&gt;writeconv_pre_ecflags, fptr-&gt;writeconv_pre_ecopts);</div><div class='del'>-	    *converted = 1;</div><div class='add'>+            *converted = 1;</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='ctx'>         if (fptr-&gt;writeconv) {</div><div class='ctx'>             str = rb_econv_str_convert(fptr-&gt;writeconv, str, ECONV_PARTIAL_INPUT);</div><div class='del'>-	    *converted = 1;</div><div class='add'>+            *converted = 1;</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='del'>-#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32)</div><div class='add'>+#if RUBY_CRLF_ENVIRONMENT</div><div class='ctx'> #define fmode (fptr-&gt;mode)</div><div class='ctx'>     else if (MODE_BTMODE(DEFAULT_TEXTMODE,0,1)) {</div><div class='del'>-	if ((fptr-&gt;mode &amp; FMODE_READABLE) &amp;&amp;</div><div class='del'>-	    !(fptr-&gt;encs.ecflags &amp; ECONV_NEWLINE_DECORATOR_MASK)) {</div><div class='del'>-	    setmode(fptr-&gt;fd, O_BINARY);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    setmode(fptr-&gt;fd, O_TEXT);</div><div class='del'>-	}</div><div class='del'>-	if (!rb_enc_asciicompat(rb_enc_get(str))) {</div><div class='del'>-	    rb_raise(rb_eArgError, "ASCII incompatible string written for text mode IO without encoding conversion: %s",</div><div class='del'>-	    rb_enc_name(rb_enc_get(str)));</div><div class='add'>+        if ((fptr-&gt;mode &amp; FMODE_READABLE) &amp;&amp;</div><div class='add'>+            !(fptr-&gt;encs.ecflags &amp; ECONV_NEWLINE_DECORATOR_MASK)) {</div><div class='add'>+            setmode(fptr-&gt;fd, O_BINARY);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            setmode(fptr-&gt;fd, O_TEXT);</div><div class='add'>+        }</div><div class='add'>+        if (!rb_enc_asciicompat(rb_enc_get(str))) {</div><div class='add'>+            rb_raise(rb_eArgError, "ASCII incompatible string written for text mode IO without encoding conversion: %s",</div><div class='add'>+            rb_enc_name(rb_enc_get(str)));</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> #undef fmode</div><div class='hunk'>@@ -1493,15 +1956,17 @@ io_fwrite(VALUE str, rb_io_t *fptr, int nosync)</div><div class='ctx'>     VALUE tmp;</div><div class='ctx'>     long n, len;</div><div class='ctx'>     const char *ptr;</div><div class='add'>+</div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'>     if (fptr-&gt;mode &amp; FMODE_TTY) {</div><div class='del'>-	long len = rb_w32_write_console(str, fptr-&gt;fd);</div><div class='del'>-	if (len &gt; 0) return len;</div><div class='add'>+        long len = rb_w32_write_console(str, fptr-&gt;fd);</div><div class='add'>+        if (len &gt; 0) return len;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='ctx'>     str = do_writeconv(str, fptr, &amp;converted);</div><div class='ctx'>     if (converted)</div><div class='del'>-	OBJ_FREEZE(str);</div><div class='add'>+        OBJ_FREEZE(str);</div><div class='ctx'> </div><div class='ctx'>     tmp = rb_str_tmp_frozen_acquire(str);</div><div class='ctx'>     RSTRING_GETMEM(tmp, ptr, len);</div><div class='hunk'>@@ -1531,10 +1996,12 @@ io_write(VALUE io, VALUE str, int nosync)</div><div class='ctx'>     io = GetWriteIO(io);</div><div class='ctx'>     str = rb_obj_as_string(str);</div><div class='ctx'>     tmp = rb_io_check_io(io);</div><div class='add'>+</div><div class='ctx'>     if (NIL_P(tmp)) {</div><div class='del'>-	/* port is not IO, call write method for it. */</div><div class='del'>-	return rb_funcall(io, id_write, 1, str);</div><div class='add'>+        /* port is not IO, call write method for it. */</div><div class='add'>+        return rb_funcall(io, id_write, 1, str);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     io = tmp;</div><div class='ctx'>     if (RSTRING_LEN(str) == 0) return INT2FIX(0);</div><div class='ctx'> </div><div class='hunk'>@@ -1542,7 +2009,7 @@ io_write(VALUE io, VALUE str, int nosync)</div><div class='ctx'>     rb_io_check_writable(fptr);</div><div class='ctx'> </div><div class='ctx'>     n = io_fwrite(str, fptr, nosync);</div><div class='del'>-    if (n &lt; 0L) rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+    if (n &lt; 0L) rb_sys_fail_on_write(fptr);</div><div class='ctx'> </div><div class='ctx'>     return LONG2FIX(n);</div><div class='ctx'> }</div><div class='hunk'>@@ -1550,108 +2017,128 @@ io_write(VALUE io, VALUE str, int nosync)</div><div class='ctx'> #ifdef HAVE_WRITEV</div><div class='ctx'> struct binwritev_arg {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='del'>-    const struct iovec *iov;</div><div class='add'>+    struct iovec *iov;</div><div class='ctx'>     int iovcnt;</div><div class='add'>+    size_t total;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-call_writev_internal(VALUE arg)</div><div class='add'>+io_binwritev_internal(VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     struct binwritev_arg *p = (struct binwritev_arg *)arg;</div><div class='del'>-    return rb_writev_internal(p-&gt;fptr-&gt;fd, p-&gt;iov, p-&gt;iovcnt);</div><div class='add'>+</div><div class='add'>+    size_t remaining = p-&gt;total;</div><div class='add'>+    size_t offset = 0;</div><div class='add'>+</div><div class='add'>+    rb_io_t *fptr = p-&gt;fptr;</div><div class='add'>+    struct iovec *iov = p-&gt;iov;</div><div class='add'>+    int iovcnt = p-&gt;iovcnt;</div><div class='add'>+</div><div class='add'>+    while (remaining) {</div><div class='add'>+        long result = rb_writev_internal(fptr, iov, iovcnt);</div><div class='add'>+</div><div class='add'>+        if (result &gt;= 0) {</div><div class='add'>+            offset += result;</div><div class='add'>+            if (fptr-&gt;wbuf.ptr &amp;&amp; fptr-&gt;wbuf.len) {</div><div class='add'>+                if (offset &lt; (size_t)fptr-&gt;wbuf.len) {</div><div class='add'>+                    fptr-&gt;wbuf.off += result;</div><div class='add'>+                    fptr-&gt;wbuf.len -= result;</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    offset -= (size_t)fptr-&gt;wbuf.len;</div><div class='add'>+                    fptr-&gt;wbuf.off = 0;</div><div class='add'>+                    fptr-&gt;wbuf.len = 0;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (offset == p-&gt;total) {</div><div class='add'>+                return p-&gt;total;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            while (result &gt;= (ssize_t)iov-&gt;iov_len) {</div><div class='add'>+                /* iovcnt &gt; 0 */</div><div class='add'>+                result -= iov-&gt;iov_len;</div><div class='add'>+                iov-&gt;iov_len = 0;</div><div class='add'>+                iov++;</div><div class='add'>+</div><div class='add'>+                if (!--iovcnt) {</div><div class='add'>+                    // I don't believe this code path can ever occur.</div><div class='add'>+                    return offset;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            iov-&gt;iov_base = (char *)iov-&gt;iov_base + result;</div><div class='add'>+            iov-&gt;iov_len -= result;</div><div class='add'>+        }</div><div class='add'>+        else if (rb_io_maybe_wait_writable(errno, fptr-&gt;self, RUBY_IO_TIMEOUT_DEFAULT)) {</div><div class='add'>+            rb_io_check_closed(fptr);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            return -1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return offset;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static long</div><div class='ctx'> io_binwritev(struct iovec *iov, int iovcnt, rb_io_t *fptr)</div><div class='ctx'> {</div><div class='del'>-    int i;</div><div class='del'>-    long r, total = 0, written_len = 0;</div><div class='del'>-</div><div class='del'>-    /* don't write anything if current thread has a pending interrupt. */</div><div class='add'>+    // Don't write anything if current thread has a pending interrupt:</div><div class='ctx'>     rb_thread_check_ints();</div><div class='ctx'> </div><div class='ctx'>     if (iovcnt == 0) return 0;</div><div class='del'>-    for (i = 1; i &lt; iovcnt; i++) total += iov[i].iov_len;</div><div class='ctx'> </div><div class='del'>-    if (fptr-&gt;wbuf.ptr == NULL &amp;&amp; !(fptr-&gt;mode &amp; FMODE_SYNC)) {</div><div class='del'>-	fptr-&gt;wbuf.off = 0;</div><div class='del'>-	fptr-&gt;wbuf.len = 0;</div><div class='del'>-	fptr-&gt;wbuf.capa = IO_WBUF_CAPA_MIN;</div><div class='del'>-	fptr-&gt;wbuf.ptr = ALLOC_N(char, fptr-&gt;wbuf.capa);</div><div class='del'>-	fptr-&gt;write_lock = rb_mutex_new();</div><div class='del'>-	rb_mutex_allow_trap(fptr-&gt;write_lock, 1);</div><div class='del'>-    }</div><div class='add'>+    size_t total = 0;</div><div class='add'>+    for (int i = 1; i &lt; iovcnt; i++) total += iov[i].iov_len;</div><div class='add'>+</div><div class='add'>+    io_allocate_write_buffer(fptr, 1);</div><div class='ctx'> </div><div class='ctx'>     if (fptr-&gt;wbuf.ptr &amp;&amp; fptr-&gt;wbuf.len) {</div><div class='del'>-	long offset = fptr-&gt;wbuf.off + fptr-&gt;wbuf.len;</div><div class='del'>-	if (offset + total &lt;= fptr-&gt;wbuf.capa) {</div><div class='del'>-	    for (i = 1; i &lt; iovcnt; i++) {</div><div class='del'>-		memcpy(fptr-&gt;wbuf.ptr+offset, iov[i].iov_base, iov[i].iov_len);</div><div class='del'>-		offset += iov[i].iov_len;</div><div class='del'>-	    }</div><div class='del'>-	    fptr-&gt;wbuf.len += total;</div><div class='del'>-	    return total;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    iov[0].iov_base = fptr-&gt;wbuf.ptr + fptr-&gt;wbuf.off;</div><div class='del'>-	    iov[0].iov_len  = fptr-&gt;wbuf.len;</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	iov++;</div><div class='del'>-	if (!--iovcnt) return 0;</div><div class='del'>-    }</div><div class='add'>+        // The end of the buffered data:</div><div class='add'>+        size_t offset = fptr-&gt;wbuf.off + fptr-&gt;wbuf.len;</div><div class='ctx'> </div><div class='del'>-  retry:</div><div class='del'>-    if (fptr-&gt;write_lock) {</div><div class='del'>-	struct binwritev_arg arg;</div><div class='del'>-	arg.fptr = fptr;</div><div class='del'>-	arg.iov  = iov;</div><div class='del'>-	arg.iovcnt = iovcnt;</div><div class='del'>-	r = rb_mutex_synchronize(fptr-&gt;write_lock, call_writev_internal, (VALUE)&amp;arg);</div><div class='add'>+        if (offset + total &lt;= (size_t)fptr-&gt;wbuf.capa) {</div><div class='add'>+            for (int i = 1; i &lt; iovcnt; i++) {</div><div class='add'>+                memcpy(fptr-&gt;wbuf.ptr+offset, iov[i].iov_base, iov[i].iov_len);</div><div class='add'>+                offset += iov[i].iov_len;</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            fptr-&gt;wbuf.len += total;</div><div class='add'>+</div><div class='add'>+            return total;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            iov[0].iov_base = fptr-&gt;wbuf.ptr + fptr-&gt;wbuf.off;</div><div class='add'>+            iov[0].iov_len = fptr-&gt;wbuf.len;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	r = rb_writev_internal(fptr-&gt;fd, iov, iovcnt);</div><div class='del'>-    }</div><div class='add'>+        // The first iov is reserved for the internal buffer, and it's empty.</div><div class='add'>+        iov++;</div><div class='ctx'> </div><div class='del'>-    if (r &gt;= 0) {</div><div class='del'>-	written_len += r;</div><div class='del'>-	if (fptr-&gt;wbuf.ptr &amp;&amp; fptr-&gt;wbuf.len) {</div><div class='del'>-	    if (written_len &lt; fptr-&gt;wbuf.len) {</div><div class='del'>-		fptr-&gt;wbuf.off += r;</div><div class='del'>-		fptr-&gt;wbuf.len -= r;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		written_len -= fptr-&gt;wbuf.len;</div><div class='del'>-		fptr-&gt;wbuf.off = 0;</div><div class='del'>-		fptr-&gt;wbuf.len = 0;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (written_len == total) return total;</div><div class='add'>+        if (!--iovcnt) {</div><div class='add'>+            // If there are no other io vectors we are done.</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-	while (r &gt;= (ssize_t)iov-&gt;iov_len) {</div><div class='del'>-	    /* iovcnt &gt; 0 */</div><div class='del'>-	    r -= iov-&gt;iov_len;</div><div class='del'>-	    iov-&gt;iov_len = 0;</div><div class='del'>-	    iov++;</div><div class='del'>-	    if (!--iovcnt) return total;</div><div class='del'>-	    /* defensive check: written_len should == total */</div><div class='del'>-	}</div><div class='del'>-	iov-&gt;iov_base = (char *)iov-&gt;iov_base + r;</div><div class='del'>-	iov-&gt;iov_len -= r;</div><div class='add'>+    struct binwritev_arg arg;</div><div class='add'>+    arg.fptr = fptr;</div><div class='add'>+    arg.iov = iov;</div><div class='add'>+    arg.iovcnt = iovcnt;</div><div class='add'>+    arg.total = total;</div><div class='ctx'> </div><div class='del'>-	errno = EAGAIN;</div><div class='add'>+    if (!NIL_P(fptr-&gt;write_lock)) {</div><div class='add'>+        return rb_mutex_synchronize(fptr-&gt;write_lock, io_binwritev_internal, (VALUE)&amp;arg);</div><div class='ctx'>     }</div><div class='del'>-    if (rb_io_wait_writable(fptr-&gt;fd)) {</div><div class='del'>-	rb_io_check_closed(fptr);</div><div class='del'>-	goto retry;</div><div class='add'>+    else {</div><div class='add'>+        return io_binwritev_internal((VALUE)&amp;arg);</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    return -1L;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static long</div><div class='del'>-io_fwritev(int argc, VALUE *argv, rb_io_t *fptr)</div><div class='add'>+io_fwritev(int argc, const VALUE *argv, rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     int i, converted, iovcnt = argc + 1;</div><div class='ctx'>     long n;</div><div class='hunk'>@@ -1662,24 +2149,26 @@ io_fwritev(int argc, VALUE *argv, rb_io_t *fptr)</div><div class='ctx'>     tmp_array = ALLOCV_N(VALUE, v2, argc);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; argc; i++) {</div><div class='del'>-	str = rb_obj_as_string(argv[i]);</div><div class='del'>-	converted = 0;</div><div class='del'>-	str = do_writeconv(str, fptr, &amp;converted);</div><div class='del'>-	if (converted)</div><div class='del'>-	    OBJ_FREEZE(str);</div><div class='add'>+        str = rb_obj_as_string(argv[i]);</div><div class='add'>+        converted = 0;</div><div class='add'>+        str = do_writeconv(str, fptr, &amp;converted);</div><div class='add'>+</div><div class='add'>+        if (converted)</div><div class='add'>+            OBJ_FREEZE(str);</div><div class='ctx'> </div><div class='del'>-	tmp = rb_str_tmp_frozen_acquire(str);</div><div class='del'>-	tmp_array[i] = tmp;</div><div class='del'>-	/* iov[0] is reserved for buffer of fptr */</div><div class='del'>-	iov[i+1].iov_base = RSTRING_PTR(tmp);</div><div class='del'>-	iov[i+1].iov_len = RSTRING_LEN(tmp);</div><div class='add'>+        tmp = rb_str_tmp_frozen_acquire(str);</div><div class='add'>+        tmp_array[i] = tmp;</div><div class='add'>+</div><div class='add'>+        /* iov[0] is reserved for buffer of fptr */</div><div class='add'>+        iov[i+1].iov_base = RSTRING_PTR(tmp);</div><div class='add'>+        iov[i+1].iov_len = RSTRING_LEN(tmp);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     n = io_binwritev(iov, iovcnt, fptr);</div><div class='ctx'>     if (v1) ALLOCV_END(v1);</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; argc; i++) {</div><div class='del'>-	rb_str_tmp_frozen_release(argv[i], tmp_array[i]);</div><div class='add'>+        rb_str_tmp_frozen_release(argv[i], tmp_array[i]);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (v2) ALLOCV_END(v2);</div><div class='hunk'>@@ -1699,7 +2188,7 @@ iovcnt_ok(int iovcnt)</div><div class='ctx'> #endif /* HAVE_WRITEV */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-io_writev(int argc, VALUE *argv, VALUE io)</div><div class='add'>+io_writev(int argc, const VALUE *argv, VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     long n;</div><div class='hunk'>@@ -1708,10 +2197,12 @@ io_writev(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'>     io = GetWriteIO(io);</div><div class='ctx'>     tmp = rb_io_check_io(io);</div><div class='add'>+</div><div class='ctx'>     if (NIL_P(tmp)) {</div><div class='del'>-	/* port is not IO, call write method for it. */</div><div class='del'>-	return rb_funcallv(io, id_write, argc, argv);</div><div class='add'>+        /* port is not IO, call write method for it. */</div><div class='add'>+        return rb_funcallv(io, id_write, argc, argv);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     io = tmp;</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='hunk'>@@ -1719,18 +2210,21 @@ io_writev(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; argc; i += cnt) {</div><div class='ctx'> #ifdef HAVE_WRITEV</div><div class='del'>-	if ((fptr-&gt;mode &amp; (FMODE_SYNC|FMODE_TTY)) &amp;&amp; iovcnt_ok(cnt = argc - i)) {</div><div class='del'>-	    n = io_fwritev(cnt, &amp;argv[i], fptr);</div><div class='del'>-	}</div><div class='del'>-	else</div><div class='add'>+        if ((fptr-&gt;mode &amp; (FMODE_SYNC|FMODE_TTY)) &amp;&amp; iovcnt_ok(cnt = argc - i)) {</div><div class='add'>+            n = io_fwritev(cnt, &amp;argv[i], fptr);</div><div class='add'>+        }</div><div class='add'>+        else</div><div class='ctx'> #endif</div><div class='del'>-	{</div><div class='del'>-	    cnt = 1;</div><div class='del'>-	    /* sync at last item */</div><div class='del'>-	    n = io_fwrite(rb_obj_as_string(argv[i]), fptr, (i &lt; argc-1));</div><div class='del'>-	}</div><div class='del'>-        if (n &lt; 0L) rb_sys_fail_path(fptr-&gt;pathv);</div><div class='del'>-	total = rb_fix_plus(LONG2FIX(n), total);</div><div class='add'>+        {</div><div class='add'>+            cnt = 1;</div><div class='add'>+            /* sync at last item */</div><div class='add'>+            n = io_fwrite(rb_obj_as_string(argv[i]), fptr, (i &lt; argc-1));</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (n &lt; 0L)</div><div class='add'>+            rb_sys_fail_on_write(fptr);</div><div class='add'>+</div><div class='add'>+        total = rb_fix_plus(LONG2FIX(n), total);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return total;</div><div class='hunk'>@@ -1738,31 +2232,34 @@ io_writev(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.write(string, ...)    -&gt; integer</div><div class='add'>+ *    write(*objects) -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  Writes the given strings to &lt;em&gt;ios&lt;/em&gt;. The stream must be opened</div><div class='del'>- *  for writing. Arguments that are not a string will be converted</div><div class='del'>- *  to a string using &lt;code&gt;to_s&lt;/code&gt;. Returns the number of bytes</div><div class='del'>- *  written in total.</div><div class='add'>+ *  Writes each of the given +objects+ to +self+,</div><div class='add'>+ *  which must be opened for writing</div><div class='add'>+ *  (see {Access Modes}[rdoc-ref:File@Access+Modes]);</div><div class='add'>+ *  returns the total number bytes written;</div><div class='add'>+ *  each of +objects+ that is not a string is converted via method +to_s+:</div><div class='ctx'>  *</div><div class='del'>- *     count = $stdout.write("This is", " a test\n")</div><div class='del'>- *     puts "That was #{count} bytes of data"</div><div class='add'>+ *    $stdout.write('Hello', ', ', 'World!', "\n") # =&gt; 14</div><div class='add'>+ *    $stdout.write('foo', :bar, 2, "\n")          # =&gt; 8</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *     This is a test</div><div class='del'>- *     That was 15 bytes of data</div><div class='add'>+ *    Hello, World!</div><div class='add'>+ *    foobar2</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#read.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> io_write_m(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     if (argc != 1) {</div><div class='del'>-	return io_writev(argc, argv, io);</div><div class='add'>+        return io_writev(argc, argv, io);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE str = argv[0];</div><div class='del'>-	return io_write(io, str, 0);</div><div class='add'>+        VALUE str = argv[0];</div><div class='add'>+        return io_write(io, str, 0);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1773,35 +2270,44 @@ rb_io_write(VALUE io, VALUE str)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_io_writev(VALUE io, int argc, VALUE *argv)</div><div class='add'>+rb_io_writev(VALUE io, int argc, const VALUE *argv)</div><div class='ctx'> {</div><div class='ctx'>     if (argc &gt; 1 &amp;&amp; rb_obj_method_arity(io, id_write) == 1) {</div><div class='del'>-	if (io != rb_stderr &amp;&amp; RTEST(ruby_verbose)) {</div><div class='del'>-	    VALUE klass = CLASS_OF(io);</div><div class='del'>-	    char sep = FL_TEST(klass, FL_SINGLETON) ? (klass = io, '.') : '#';</div><div class='del'>-	    rb_warning("%+"PRIsVALUE"%c""write is outdated interface"</div><div class='del'>-		       " which accepts just one argument",</div><div class='del'>-		       klass, sep);</div><div class='del'>-	}</div><div class='del'>-	do rb_io_write(io, *argv++); while (--argc);</div><div class='del'>-	return argv[0];		/* unused right now */</div><div class='add'>+        if (io != rb_ractor_stderr() &amp;&amp; RTEST(ruby_verbose)) {</div><div class='add'>+            VALUE klass = CLASS_OF(io);</div><div class='add'>+            char sep = FL_TEST(klass, FL_SINGLETON) ? (klass = io, '.') : '#';</div><div class='add'>+            rb_category_warning(</div><div class='add'>+                RB_WARN_CATEGORY_DEPRECATED, "%+"PRIsVALUE"%c""write is outdated interface"</div><div class='add'>+                " which accepts just one argument",</div><div class='add'>+                klass, sep</div><div class='add'>+            );</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        do rb_io_write(io, *argv++); while (--argc);</div><div class='add'>+</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     return rb_funcallv(io, id_write, argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios &lt;&lt; obj     -&gt; ios</div><div class='add'>+ *    self &lt;&lt; object -&gt; self</div><div class='ctx'>  *</div><div class='del'>- *  String Output---Writes &lt;i&gt;obj&lt;/i&gt; to &lt;em&gt;ios&lt;/em&gt;.</div><div class='del'>- *  &lt;i&gt;obj&lt;/i&gt; will be converted to a string using</div><div class='del'>- *  &lt;code&gt;to_s&lt;/code&gt;.</div><div class='add'>+ *  Writes the given +object+ to +self+,</div><div class='add'>+ *  which must be opened for writing (see {Access Modes}[rdoc-ref:File@Access+Modes]);</div><div class='add'>+ *  returns +self+;</div><div class='add'>+ *  if +object+ is not a string, it is converted via method +to_s+:</div><div class='ctx'>  *</div><div class='del'>- *     $stdout &lt;&lt; "Hello " &lt;&lt; "world!\n"</div><div class='add'>+ *    $stdout &lt;&lt; 'Hello' &lt;&lt; ', ' &lt;&lt; 'World!' &lt;&lt; "\n"</div><div class='add'>+ *    $stdout &lt;&lt; 'foo' &lt;&lt; :bar &lt;&lt; 2 &lt;&lt; "\n"</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    Hello, World!</div><div class='add'>+ *    foobar2</div><div class='ctx'>  *</div><div class='del'>- *     Hello world!</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -1820,7 +2326,7 @@ nogvl_fsync(void *ptr)</div><div class='ctx'> </div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'>     if (GetFileType((HANDLE)rb_w32_get_osfhandle(fptr-&gt;fd)) != FILE_TYPE_DISK)</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'> #endif</div><div class='ctx'>     return (VALUE)fsync(fptr-&gt;fd);</div><div class='ctx'> }</div><div class='hunk'>@@ -1840,7 +2346,7 @@ rb_io_flush_raw(VALUE io, int sync)</div><div class='ctx'> </div><div class='ctx'>     if (fptr-&gt;mode &amp; FMODE_WRITABLE) {</div><div class='ctx'>         if (io_fflush(fptr) &lt; 0)</div><div class='del'>-            rb_sys_fail(0);</div><div class='add'>+            rb_sys_fail_on_write(fptr);</div><div class='ctx'>     }</div><div class='ctx'>     if (fptr-&gt;mode &amp; FMODE_READABLE) {</div><div class='ctx'>         io_unread(fptr);</div><div class='hunk'>@@ -1851,18 +2357,14 @@ rb_io_flush_raw(VALUE io, int sync)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.flush    -&gt; ios</div><div class='del'>- *</div><div class='del'>- *  Flushes any buffered data within &lt;em&gt;ios&lt;/em&gt; to the underlying</div><div class='del'>- *  operating system (note that this is Ruby internal buffering only;</div><div class='del'>- *  the OS may buffer the data as well).</div><div class='add'>+ *    flush -&gt; self</div><div class='ctx'>  *</div><div class='del'>- *     $stdout.print "no newline"</div><div class='del'>- *     $stdout.flush</div><div class='add'>+ *  Flushes data buffered in +self+ to the operating system</div><div class='add'>+ *  (but does not necessarily flush data buffered in the operating system):</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *    $stdout.print 'no newline' # Not necessarily flushed.</div><div class='add'>+ *    $stdout.flush              # Flushed.</div><div class='ctx'>  *</div><div class='del'>- *     no newline</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -1873,22 +2375,28 @@ rb_io_flush(VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.pos     -&gt; integer</div><div class='del'>- *     ios.tell    -&gt; integer</div><div class='add'>+ *    tell -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns the current position (in bytes) in +self+</div><div class='add'>+ *  (see {Position}[rdoc-ref:IO@Position]):</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.tell # =&gt; 0</div><div class='add'>+ *    f.gets # =&gt; "First line\n"</div><div class='add'>+ *    f.tell # =&gt; 12</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- *  Returns the current offset (in bytes) of &lt;em&gt;ios&lt;/em&gt;.</div><div class='add'>+ *  Related: IO#pos=, IO#seek.</div><div class='add'>+ *</div><div class='add'>+ *  IO#pos is an alias for IO#tell.</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.pos    #=&gt; 0</div><div class='del'>- *     f.gets   #=&gt; "This is line one\n"</div><div class='del'>- *     f.pos    #=&gt; 17</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_tell(VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='del'>-    off_t pos;</div><div class='add'>+    rb_off_t pos;</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     pos = io_tell(fptr);</div><div class='hunk'>@@ -1901,7 +2409,7 @@ static VALUE</div><div class='ctx'> rb_io_seek(VALUE io, VALUE offset, int whence)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='del'>-    off_t pos;</div><div class='add'>+    rb_off_t pos;</div><div class='ctx'> </div><div class='ctx'>     pos = NUM2OFFT(offset);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='hunk'>@@ -1933,23 +2441,49 @@ interpret_seek_whence(VALUE vwhence)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.seek(amount, whence=IO::SEEK_SET)  -&gt; 0</div><div class='add'>+ *    seek(offset, whence = IO::SEEK_SET) -&gt; 0</div><div class='ctx'>  *</div><div class='del'>- *  Seeks to a given offset &lt;i&gt;anInteger&lt;/i&gt; in the stream according to</div><div class='del'>- *  the value of &lt;i&gt;whence&lt;/i&gt;:</div><div class='add'>+ *  Seeks to the position given by integer +offset+</div><div class='add'>+ *  (see {Position}[rdoc-ref:IO@Position])</div><div class='add'>+ *  and constant +whence+, which is one of:</div><div class='ctx'>  *</div><div class='del'>- *    :CUR or IO::SEEK_CUR  | Seeks to _amount_ plus current position</div><div class='del'>- *    ----------------------+--------------------------------------------------</div><div class='del'>- *    :END or IO::SEEK_END  | Seeks to _amount_ plus end of stream (you</div><div class='del'>- *                          | probably want a negative value for _amount_)</div><div class='del'>- *    ----------------------+--------------------------------------------------</div><div class='del'>- *    :SET or IO::SEEK_SET  | Seeks to the absolute location given by _amount_</div><div class='add'>+ *  - +:CUR+ or &lt;tt&gt;IO::SEEK_CUR&lt;/tt&gt;:</div><div class='add'>+ *    Repositions the stream to its current position plus the given +offset+:</div><div class='ctx'>  *</div><div class='del'>- *  Example:</div><div class='add'>+ *      f = File.open('t.txt')</div><div class='add'>+ *      f.tell            # =&gt; 0</div><div class='add'>+ *      f.seek(20, :CUR)  # =&gt; 0</div><div class='add'>+ *      f.tell            # =&gt; 20</div><div class='add'>+ *      f.seek(-10, :CUR) # =&gt; 0</div><div class='add'>+ *      f.tell            # =&gt; 10</div><div class='add'>+ *      f.close</div><div class='add'>+ *</div><div class='add'>+ *  - +:END+ or &lt;tt&gt;IO::SEEK_END&lt;/tt&gt;:</div><div class='add'>+ *    Repositions the stream to its end plus the given +offset+:</div><div class='add'>+ *</div><div class='add'>+ *      f = File.open('t.txt')</div><div class='add'>+ *      f.tell            # =&gt; 0</div><div class='add'>+ *      f.seek(0, :END)   # =&gt; 0  # Repositions to stream end.</div><div class='add'>+ *      f.tell            # =&gt; 52</div><div class='add'>+ *      f.seek(-20, :END) # =&gt; 0</div><div class='add'>+ *      f.tell            # =&gt; 32</div><div class='add'>+ *      f.seek(-40, :END) # =&gt; 0</div><div class='add'>+ *      f.tell            # =&gt; 12</div><div class='add'>+ *      f.close</div><div class='add'>+ *</div><div class='add'>+ *  - +:SET+ or &lt;tt&gt;IO:SEEK_SET&lt;/tt&gt;:</div><div class='add'>+ *    Repositions the stream to the given +offset+:</div><div class='add'>+ *</div><div class='add'>+ *      f = File.open('t.txt')</div><div class='add'>+ *      f.tell            # =&gt; 0</div><div class='add'>+ *      f.seek(20, :SET) # =&gt; 0</div><div class='add'>+ *      f.tell           # =&gt; 20</div><div class='add'>+ *      f.seek(40, :SET) # =&gt; 0</div><div class='add'>+ *      f.tell           # =&gt; 40</div><div class='add'>+ *      f.close</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#pos=, IO#tell.</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.seek(-13, IO::SEEK_END)   #=&gt; 0</div><div class='del'>- *     f.readline                  #=&gt; "And so on...\n"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -1959,7 +2493,7 @@ rb_io_seek_m(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     int whence = SEEK_SET;</div><div class='ctx'> </div><div class='ctx'>     if (rb_scan_args(argc, argv, "11", &amp;offset, &amp;ptrname) == 2) {</div><div class='del'>-	whence = interpret_seek_whence(ptrname);</div><div class='add'>+        whence = interpret_seek_whence(ptrname);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return rb_io_seek(io, offset, whence);</div><div class='hunk'>@@ -1967,22 +2501,26 @@ rb_io_seek_m(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.pos = integer    -&gt; integer</div><div class='add'>+ *    pos = new_position -&gt; new_position</div><div class='add'>+ *</div><div class='add'>+ *  Seeks to the given +new_position+ (in bytes);</div><div class='add'>+ *  see {Position}[rdoc-ref:IO@Position]:</div><div class='ctx'>  *</div><div class='del'>- *  Seeks to the given position (in bytes) in &lt;em&gt;ios&lt;/em&gt;.</div><div class='del'>- *  It is not guaranteed that seeking to the right position when &lt;em&gt;ios&lt;/em&gt;</div><div class='del'>- *  is textmode.</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.tell     # =&gt; 0</div><div class='add'>+ *    f.pos = 20 # =&gt; 20</div><div class='add'>+ *    f.tell     # =&gt; 20</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#seek, IO#tell.</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.pos = 17</div><div class='del'>- *     f.gets   #=&gt; "This is line two\n"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_set_pos(VALUE io, VALUE offset)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='del'>-    off_t pos;</div><div class='add'>+    rb_off_t pos;</div><div class='ctx'> </div><div class='ctx'>     pos = NUM2OFFT(offset);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='hunk'>@@ -1996,18 +2534,26 @@ static void clear_readconv(rb_io_t *fptr);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.rewind    -&gt; 0</div><div class='add'>+ *    rewind -&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *  Repositions the stream to its beginning,</div><div class='add'>+ *  setting both the position and the line number to zero;</div><div class='add'>+ *  see {Position}[rdoc-ref:IO@Position]</div><div class='add'>+ *  and {Line Number}[rdoc-ref:IO@Line+Number]:</div><div class='ctx'>  *</div><div class='del'>- *  Positions &lt;em&gt;ios&lt;/em&gt; to the beginning of input, resetting</div><div class='del'>- *  &lt;code&gt;lineno&lt;/code&gt; to zero.</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.tell     # =&gt; 0</div><div class='add'>+ *    f.lineno   # =&gt; 0</div><div class='add'>+ *    f.gets     # =&gt; "First line\n"</div><div class='add'>+ *    f.tell     # =&gt; 12</div><div class='add'>+ *    f.lineno   # =&gt; 1</div><div class='add'>+ *    f.rewind   # =&gt; 0</div><div class='add'>+ *    f.tell     # =&gt; 0</div><div class='add'>+ *    f.lineno   # =&gt; 0</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.readline   #=&gt; "This is line one\n"</div><div class='del'>- *     f.rewind     #=&gt; 0</div><div class='del'>- *     f.lineno     #=&gt; 0</div><div class='del'>- *     f.readline   #=&gt; "This is line one\n"</div><div class='add'>+ *  Note that this method cannot be used with streams such as pipes, ttys, and sockets.</div><div class='ctx'>  *</div><div class='del'>- *  Note that it cannot be used with streams such as pipes, ttys, and sockets.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2018,11 +2564,11 @@ rb_io_rewind(VALUE io)</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     if (io_seek(fptr, 0L, 0) &lt; 0 &amp;&amp; errno) rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     if (io == ARGF.current_file) {</div><div class='del'>-	ARGF.lineno -= fptr-&gt;lineno;</div><div class='add'>+        ARGF.lineno -= fptr-&gt;lineno;</div><div class='ctx'>     }</div><div class='ctx'>     fptr-&gt;lineno = 0;</div><div class='ctx'>     if (fptr-&gt;readconv) {</div><div class='del'>-	clear_readconv(fptr);</div><div class='add'>+        clear_readconv(fptr);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='hunk'>@@ -2031,11 +2577,12 @@ rb_io_rewind(VALUE io)</div><div class='ctx'> static int</div><div class='ctx'> fptr_wait_readable(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='del'>-    int ret = rb_io_wait_readable(fptr-&gt;fd);</div><div class='add'>+    int result = rb_io_maybe_wait_readable(errno, fptr-&gt;self, RUBY_IO_TIMEOUT_DEFAULT);</div><div class='ctx'> </div><div class='del'>-    if (ret)</div><div class='add'>+    if (result)</div><div class='ctx'>         rb_io_check_closed(fptr);</div><div class='del'>-    return ret;</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='hunk'>@@ -2049,27 +2596,26 @@ io_fillbuf(rb_io_t *fptr)</div><div class='ctx'>         fptr-&gt;rbuf.capa = IO_RBUF_CAPA_FOR(fptr);</div><div class='ctx'>         fptr-&gt;rbuf.ptr = ALLOC_N(char, fptr-&gt;rbuf.capa);</div><div class='ctx'> #ifdef _WIN32</div><div class='del'>-	fptr-&gt;rbuf.capa--;</div><div class='add'>+        fptr-&gt;rbuf.capa--;</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     if (fptr-&gt;rbuf.len == 0) {</div><div class='ctx'>       retry:</div><div class='del'>-	{</div><div class='del'>-	    r = rb_read_internal(fptr-&gt;fd, fptr-&gt;rbuf.ptr, fptr-&gt;rbuf.capa);</div><div class='del'>-	}</div><div class='add'>+        r = rb_io_read_memory(fptr, fptr-&gt;rbuf.ptr, fptr-&gt;rbuf.capa);</div><div class='add'>+</div><div class='ctx'>         if (r &lt; 0) {</div><div class='ctx'>             if (fptr_wait_readable(fptr))</div><div class='ctx'>                 goto retry;</div><div class='del'>-	    {</div><div class='del'>-		int e = errno;</div><div class='del'>-		VALUE path = rb_sprintf("fd:%d ", fptr-&gt;fd);</div><div class='del'>-		if (!NIL_P(fptr-&gt;pathv)) {</div><div class='del'>-		    rb_str_append(path, fptr-&gt;pathv);</div><div class='del'>-		}</div><div class='del'>-		rb_syserr_fail_path(e, path);</div><div class='del'>-	    }</div><div class='del'>-        }</div><div class='del'>-	if (r &gt; 0) rb_io_check_closed(fptr);</div><div class='add'>+</div><div class='add'>+            int e = errno;</div><div class='add'>+            VALUE path = rb_sprintf("fd:%d ", fptr-&gt;fd);</div><div class='add'>+            if (!NIL_P(fptr-&gt;pathv)) {</div><div class='add'>+                rb_str_append(path, fptr-&gt;pathv);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            rb_syserr_fail_path(e, path);</div><div class='add'>+        }</div><div class='add'>+        if (r &gt; 0) rb_io_check_closed(fptr);</div><div class='ctx'>         fptr-&gt;rbuf.off = 0;</div><div class='ctx'>         fptr-&gt;rbuf.len = (int)r; /* r should be &lt;= rbuf_capa */</div><div class='ctx'>         if (r == 0)</div><div class='hunk'>@@ -2080,36 +2626,40 @@ io_fillbuf(rb_io_t *fptr)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.eof     -&gt; true or false</div><div class='del'>- *     ios.eof?    -&gt; true or false</div><div class='add'>+ *    eof -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if the stream is positioned at its end, +false+ otherwise;</div><div class='add'>+ *  see {Position}[rdoc-ref:IO@Position]:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.eof           # =&gt; false</div><div class='add'>+ *    f.seek(0, :END) # =&gt; 0</div><div class='add'>+ *    f.eof           # =&gt; true</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Raises an exception unless the stream is opened for reading;</div><div class='add'>+ *  see {Mode}[rdoc-ref:File@Access+Modes].</div><div class='ctx'>  *</div><div class='del'>- *  Returns true if &lt;em&gt;ios&lt;/em&gt; is at end of file that means</div><div class='del'>- *  there are no more data to read.</div><div class='del'>- *  The stream must be opened for reading or an &lt;code&gt;IOError&lt;/code&gt; will be</div><div class='del'>- *  raised.</div><div class='add'>+ *  If +self+ is a stream such as pipe or socket, this method</div><div class='add'>+ *  blocks until the other end sends some data or closes it:</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     dummy = f.readlines</div><div class='del'>- *     f.eof   #=&gt; true</div><div class='add'>+ *    r, w = IO.pipe</div><div class='add'>+ *    Thread.new { sleep 1; w.close }</div><div class='add'>+ *    r.eof? # =&gt; true # After 1-second wait.</div><div class='ctx'>  *</div><div class='del'>- *  If &lt;em&gt;ios&lt;/em&gt; is a stream such as pipe or socket, &lt;code&gt;IO#eof?&lt;/code&gt;</div><div class='del'>- *  blocks until the other end sends some data or closes it.</div><div class='add'>+ *    r, w = IO.pipe</div><div class='add'>+ *    Thread.new { sleep 1; w.puts "a" }</div><div class='add'>+ *    r.eof?  # =&gt; false # After 1-second wait.</div><div class='ctx'>  *</div><div class='del'>- *     r, w = IO.pipe</div><div class='del'>- *     Thread.new { sleep 1; w.close }</div><div class='del'>- *     r.eof?  #=&gt; true after 1 second blocking</div><div class='add'>+ *    r, w = IO.pipe</div><div class='add'>+ *    r.eof?  # blocks forever</div><div class='ctx'>  *</div><div class='del'>- *     r, w = IO.pipe</div><div class='del'>- *     Thread.new { sleep 1; w.puts "a" }</div><div class='del'>- *     r.eof?  #=&gt; false after 1 second blocking</div><div class='add'>+ *  Note that this method reads data to the input byte buffer.  So</div><div class='add'>+ *  IO#sysread may not behave as you intend with IO#eof?, unless you</div><div class='add'>+ *  call IO#rewind first (which is not available for some streams).</div><div class='ctx'>  *</div><div class='del'>- *     r, w = IO.pipe</div><div class='del'>- *     r.eof?  # blocks forever</div><div class='add'>+ *  IO#eof? is an alias for IO#eof.</div><div class='ctx'>  *</div><div class='del'>- *  Note that &lt;code&gt;IO#eof?&lt;/code&gt; reads data to the input byte buffer.</div><div class='del'>- *  So &lt;code&gt;IO#sysread&lt;/code&gt; may not behave as you intend with</div><div class='del'>- *  &lt;code&gt;IO#eof?&lt;/code&gt;, unless you call &lt;code&gt;IO#rewind&lt;/code&gt;</div><div class='del'>- *  first (which is not available for some streams).</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -2123,28 +2673,28 @@ rb_io_eof(VALUE io)</div><div class='ctx'>     if (READ_CHAR_PENDING(fptr)) return Qfalse;</div><div class='ctx'>     if (READ_DATA_PENDING(fptr)) return Qfalse;</div><div class='ctx'>     READ_CHECK(fptr);</div><div class='del'>-#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32)</div><div class='add'>+#if RUBY_CRLF_ENVIRONMENT</div><div class='ctx'>     if (!NEED_READCONV(fptr) &amp;&amp; NEED_NEWLINE_DECORATOR_ON_READ(fptr)) {</div><div class='del'>-	return eof(fptr-&gt;fd) ? Qtrue : Qfalse;</div><div class='add'>+        return RBOOL(eof(fptr-&gt;fd));;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='del'>-    if (io_fillbuf(fptr) &lt; 0) {</div><div class='del'>-	return Qtrue;</div><div class='del'>-    }</div><div class='del'>-    return Qfalse;</div><div class='add'>+    return RBOOL(io_fillbuf(fptr) &lt; 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.sync    -&gt; true or false</div><div class='add'>+ *    sync -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Returns the current ``sync mode'' of &lt;em&gt;ios&lt;/em&gt;. When sync mode is</div><div class='del'>- *  true, all output is immediately flushed to the underlying operating</div><div class='del'>- *  system and is not buffered by Ruby internally. See also</div><div class='del'>- *  &lt;code&gt;IO#fsync&lt;/code&gt;.</div><div class='add'>+ *  Returns the current sync mode of the stream.</div><div class='add'>+ *  When sync mode is true, all output is immediately flushed to the underlying</div><div class='add'>+ *  operating system and is not buffered by Ruby internally. See also #fsync.</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.tmp', 'w')</div><div class='add'>+ *    f.sync # =&gt; false</div><div class='add'>+ *    f.sync = true</div><div class='add'>+ *    f.sync # =&gt; true</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.sync   #=&gt; false</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2154,22 +2704,34 @@ rb_io_sync(VALUE io)</div><div class='ctx'> </div><div class='ctx'>     io = GetWriteIO(io);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='del'>-    return (fptr-&gt;mode &amp; FMODE_SYNC) ? Qtrue : Qfalse;</div><div class='add'>+    return RBOOL(fptr-&gt;mode &amp; FMODE_SYNC);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_FSYNC</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.sync = boolean   -&gt; boolean</div><div class='add'>+ *    sync = boolean -&gt; boolean</div><div class='add'>+ *</div><div class='add'>+ *  Sets the _sync_ _mode_ for the stream to the given value;</div><div class='add'>+ *  returns the given value.</div><div class='add'>+ *</div><div class='add'>+ *  Values for the sync mode:</div><div class='add'>+ *</div><div class='add'>+ *  - +true+: All output is immediately flushed to the</div><div class='add'>+ *    underlying operating system and is not buffered internally.</div><div class='add'>+ *  - +false+: Output may be buffered internally.</div><div class='ctx'>  *</div><div class='del'>- *  Sets the ``sync mode'' to &lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt;.</div><div class='del'>- *  When sync mode is true, all output is immediately flushed to the</div><div class='del'>- *  underlying operating system and is not buffered internally. Returns</div><div class='del'>- *  the new state. See also &lt;code&gt;IO#fsync&lt;/code&gt;.</div><div class='add'>+ *  Example;</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.tmp', 'w')</div><div class='add'>+ *    f.sync # =&gt; false</div><div class='add'>+ *    f.sync = true</div><div class='add'>+ *    f.sync # =&gt; true</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#fsync.</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.sync = true</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2180,26 +2742,30 @@ rb_io_set_sync(VALUE io, VALUE sync)</div><div class='ctx'>     io = GetWriteIO(io);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     if (RTEST(sync)) {</div><div class='del'>-	fptr-&gt;mode |= FMODE_SYNC;</div><div class='add'>+        fptr-&gt;mode |= FMODE_SYNC;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	fptr-&gt;mode &amp;= ~FMODE_SYNC;</div><div class='add'>+        fptr-&gt;mode &amp;= ~FMODE_SYNC;</div><div class='ctx'>     }</div><div class='ctx'>     return sync;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.fsync   -&gt; 0 or nil</div><div class='add'>+ *    fsync -&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *  Immediately writes to disk all data buffered in the stream,</div><div class='add'>+ *  via the operating system's &lt;tt&gt;fsync(2)&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+ *  Note this difference:</div><div class='add'>+ *</div><div class='add'>+ *  - IO#sync=: Ensures that data is flushed from the stream's internal buffers,</div><div class='add'>+ *    but does not guarantee that the operating system actually writes the data to disk.</div><div class='add'>+ *  - IO#fsync: Ensures both that data is flushed from internal buffers,</div><div class='add'>+ *    and that data is written to disk.</div><div class='ctx'>  *</div><div class='del'>- *  Immediately writes all buffered data in &lt;em&gt;ios&lt;/em&gt; to disk.</div><div class='del'>- *  Note that &lt;code&gt;fsync&lt;/code&gt; differs from</div><div class='del'>- *  using &lt;code&gt;IO#sync=&lt;/code&gt;. The latter ensures that data is flushed</div><div class='del'>- *  from Ruby's buffers, but does not guarantee that the underlying</div><div class='del'>- *  operating system actually writes it to disk.</div><div class='add'>+ *  Raises an exception if the operating system does not support &lt;tt&gt;fsync(2)&lt;/tt&gt;.</div><div class='ctx'>  *</div><div class='del'>- *  &lt;code&gt;NotImplementedError&lt;/code&gt; is raised</div><div class='del'>- *  if the underlying operating system does not support &lt;em&gt;fsync(2)&lt;/em&gt;.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2211,9 +2777,9 @@ rb_io_fsync(VALUE io)</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'> </div><div class='ctx'>     if (io_fflush(fptr) &lt; 0)</div><div class='del'>-        rb_sys_fail(0);</div><div class='add'>+        rb_sys_fail_on_write(fptr);</div><div class='ctx'>     if ((int)rb_thread_io_blocking_region(nogvl_fsync, fptr, fptr-&gt;fd) &lt; 0)</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='ctx'> #else</div><div class='hunk'>@@ -2235,20 +2801,20 @@ nogvl_fdatasync(void *ptr)</div><div class='ctx'> </div><div class='ctx'> #ifdef _WIN32</div><div class='ctx'>     if (GetFileType((HANDLE)rb_w32_get_osfhandle(fptr-&gt;fd)) != FILE_TYPE_DISK)</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'> #endif</div><div class='ctx'>     return (VALUE)fdatasync(fptr-&gt;fd);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.fdatasync   -&gt; 0 or nil</div><div class='add'>+ *    fdatasync -&gt; 0</div><div class='ctx'>  *</div><div class='del'>- *  Immediately writes all buffered data in &lt;em&gt;ios&lt;/em&gt; to disk.</div><div class='add'>+ *  Immediately writes to disk all data buffered in the stream,</div><div class='add'>+ *  via the operating system's: &lt;tt&gt;fdatasync(2)&lt;/tt&gt;, if supported,</div><div class='add'>+ *  otherwise via &lt;tt&gt;fsync(2)&lt;/tt&gt;, if supported;</div><div class='add'>+ *  otherwise raises an exception.</div><div class='ctx'>  *</div><div class='del'>- *  If the underlying operating system does not support &lt;em&gt;fdatasync(2)&lt;/em&gt;,</div><div class='del'>- *  &lt;code&gt;IO#fsync&lt;/code&gt; is called instead (which might raise a</div><div class='del'>- *  &lt;code&gt;NotImplementedError&lt;/code&gt;).</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2260,10 +2826,10 @@ rb_io_fdatasync(VALUE io)</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'> </div><div class='ctx'>     if (io_fflush(fptr) &lt; 0)</div><div class='del'>-        rb_sys_fail(0);</div><div class='add'>+        rb_sys_fail_on_write(fptr);</div><div class='ctx'> </div><div class='ctx'>     if ((int)rb_thread_io_blocking_region(nogvl_fdatasync, fptr, fptr-&gt;fd) == 0)</div><div class='del'>-	return INT2FIX(0);</div><div class='add'>+        return INT2FIX(0);</div><div class='ctx'> </div><div class='ctx'>     /* fall back */</div><div class='ctx'>     return rb_io_fsync(io);</div><div class='hunk'>@@ -2274,14 +2840,18 @@ rb_io_fdatasync(VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.fileno    -&gt; integer</div><div class='del'>- *     ios.to_i      -&gt; integer</div><div class='add'>+ *    fileno -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  Returns an integer representing the numeric file descriptor for</div><div class='del'>- *  &lt;em&gt;ios&lt;/em&gt;.</div><div class='add'>+ *  Returns the integer file descriptor for the stream:</div><div class='add'>+ *</div><div class='add'>+ *    $stdin.fileno             # =&gt; 0</div><div class='add'>+ *    $stdout.fileno            # =&gt; 1</div><div class='add'>+ *    $stderr.fileno            # =&gt; 2</div><div class='add'>+ *    File.open('t.txt').fileno # =&gt; 10</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  IO#to_i is an alias for IO#fileno.</div><div class='ctx'>  *</div><div class='del'>- *     $stdin.fileno    #=&gt; 0</div><div class='del'>- *     $stdout.fileno   #=&gt; 1</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2295,25 +2865,39 @@ rb_io_fileno(VALUE io)</div><div class='ctx'>     return INT2FIX(fd);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+int</div><div class='add'>+rb_io_descriptor(VALUE io)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(io, T_FILE)) {</div><div class='add'>+        rb_io_t *fptr = RFILE(io)-&gt;fptr;</div><div class='add'>+        rb_io_check_closed(fptr);</div><div class='add'>+        return fptr-&gt;fd;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return RB_NUM2INT(rb_funcall(io, id_fileno, 0));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.pid    -&gt; integer</div><div class='add'>+ *    pid -&gt; integer or nil</div><div class='ctx'>  *</div><div class='del'>- *  Returns the process ID of a child process associated with</div><div class='del'>- *  &lt;em&gt;ios&lt;/em&gt;. This will be set by &lt;code&gt;IO.popen&lt;/code&gt;.</div><div class='add'>+ *  Returns the process ID of a child process associated with the stream,</div><div class='add'>+ *  which will have been set by IO#popen, or +nil+ if the stream was not</div><div class='add'>+ *  created by IO#popen:</div><div class='ctx'>  *</div><div class='del'>- *     pipe = IO.popen("-")</div><div class='del'>- *     if pipe</div><div class='del'>- *       $stderr.puts "In parent, child pid is #{pipe.pid}"</div><div class='del'>- *     else</div><div class='del'>- *       $stderr.puts "In child, pid is #{$$}"</div><div class='del'>- *     end</div><div class='add'>+ *    pipe = IO.popen("-")</div><div class='add'>+ *    if pipe</div><div class='add'>+ *      $stderr.puts "In parent, child pid is #{pipe.pid}"</div><div class='add'>+ *    else</div><div class='add'>+ *      $stderr.puts "In child, pid is #{$$}"</div><div class='add'>+ *    end</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    In child, pid is 26209</div><div class='add'>+ *    In parent, child pid is 26209</div><div class='ctx'>  *</div><div class='del'>- *     In child, pid is 26209</div><div class='del'>- *     In parent, child pid is 26209</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2323,16 +2907,44 @@ rb_io_pid(VALUE io)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     if (!fptr-&gt;pid)</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     return PIDT2NUM(fptr-&gt;pid);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    path -&gt; string or nil</div><div class='add'>+ *</div><div class='add'>+ *  Returns the path associated with the IO, or +nil+ if there is no path</div><div class='add'>+ *  associated with the IO. It is not guaranteed that the path exists on</div><div class='add'>+ *  the filesystem.</div><div class='add'>+ *</div><div class='add'>+ *    $stdin.path # =&gt; "&lt;STDIN&gt;"</div><div class='add'>+ *</div><div class='add'>+ *    File.open("testfile") {|f| f.path} # =&gt; "testfile"</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_path(VALUE io)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr = RFILE(io)-&gt;fptr;</div><div class='add'>+</div><div class='add'>+    if (!fptr)</div><div class='add'>+        return Qnil;</div><div class='add'>+</div><div class='add'>+    return rb_obj_dup(fptr-&gt;pathv);</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- * call-seq:</div><div class='del'>- *   ios.inspect   -&gt; string</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    inspect -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Returns a string representation of +self+:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.inspect # =&gt; "#&lt;File:t.txt&gt;"</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- * Return a string describing this IO object.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2349,16 +2961,16 @@ rb_io_inspect(VALUE obj)</div><div class='ctx'>     rb_str_cat2(result, ":");</div><div class='ctx'>     if (NIL_P(fptr-&gt;pathv)) {</div><div class='ctx'>         if (fptr-&gt;fd &lt; 0) {</div><div class='del'>-	    rb_str_cat(result, closed+1, strlen(closed)-1);</div><div class='add'>+            rb_str_cat(result, closed+1, strlen(closed)-1);</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-	    rb_str_catf(result, "fd %d", fptr-&gt;fd);</div><div class='add'>+            rb_str_catf(result, "fd %d", fptr-&gt;fd);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_str_append(result, fptr-&gt;pathv);</div><div class='add'>+        rb_str_append(result, fptr-&gt;pathv);</div><div class='ctx'>         if (fptr-&gt;fd &lt; 0) {</div><div class='del'>-	    rb_str_cat(result, closed, strlen(closed));</div><div class='add'>+            rb_str_cat(result, closed, strlen(closed));</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     return rb_str_cat2(result, "&gt;");</div><div class='hunk'>@@ -2366,9 +2978,10 @@ rb_io_inspect(VALUE obj)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.to_io  -&gt; ios</div><div class='add'>+ *    to_io -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Returns +self+.</div><div class='ctx'>  *</div><div class='del'>- *  Returns &lt;em&gt;ios&lt;/em&gt;.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -2400,31 +3013,32 @@ io_bufread(char *ptr, long len, rb_io_t *fptr)</div><div class='ctx'>     long c;</div><div class='ctx'> </div><div class='ctx'>     if (READ_DATA_PENDING(fptr) == 0) {</div><div class='del'>-	while (n &gt; 0) {</div><div class='add'>+        while (n &gt; 0) {</div><div class='ctx'>           again:</div><div class='del'>-	    c = rb_read_internal(fptr-&gt;fd, ptr+offset, n);</div><div class='del'>-	    if (c == 0) break;</div><div class='del'>-	    if (c &lt; 0) {</div><div class='add'>+            rb_io_check_closed(fptr);</div><div class='add'>+            c = rb_io_read_memory(fptr, ptr+offset, n);</div><div class='add'>+            if (c == 0) break;</div><div class='add'>+            if (c &lt; 0) {</div><div class='ctx'>                 if (fptr_wait_readable(fptr))</div><div class='ctx'>                     goto again;</div><div class='del'>-		return -1;</div><div class='del'>-	    }</div><div class='del'>-	    offset += c;</div><div class='del'>-	    if ((n -= c) &lt;= 0) break;</div><div class='del'>-	}</div><div class='del'>-	return len - n;</div><div class='add'>+                return -1;</div><div class='add'>+            }</div><div class='add'>+            offset += c;</div><div class='add'>+            if ((n -= c) &lt;= 0) break;</div><div class='add'>+        }</div><div class='add'>+        return len - n;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (n &gt; 0) {</div><div class='del'>-	c = read_buffered_data(ptr+offset, n, fptr);</div><div class='del'>-	if (c &gt; 0) {</div><div class='del'>-	    offset += c;</div><div class='del'>-	    if ((n -= c) &lt;= 0) break;</div><div class='del'>-	}</div><div class='del'>-	rb_io_check_closed(fptr);</div><div class='del'>-	if (io_fillbuf(fptr) &lt; 0) {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        c = read_buffered_data(ptr+offset, n, fptr);</div><div class='add'>+        if (c &gt; 0) {</div><div class='add'>+            offset += c;</div><div class='add'>+            if ((n -= c) &lt;= 0) break;</div><div class='add'>+        }</div><div class='add'>+        rb_io_check_closed(fptr);</div><div class='add'>+        if (io_fillbuf(fptr) &lt; 0) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return len - n;</div><div class='ctx'> }</div><div class='hunk'>@@ -2461,41 +3075,31 @@ io_fread(VALUE str, long offset, long size, rb_io_t *fptr)</div><div class='ctx'>     return len;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-ssize_t</div><div class='del'>-rb_io_bufread(VALUE io, void *buf, size_t size)</div><div class='del'>-{</div><div class='del'>-    rb_io_t *fptr;</div><div class='del'>-</div><div class='del'>-    GetOpenFile(io, fptr);</div><div class='del'>-    rb_io_check_readable(fptr);</div><div class='del'>-    return (ssize_t)io_bufread(buf, (long)size, fptr);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static long</div><div class='ctx'> remain_size(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     struct stat st;</div><div class='del'>-    off_t siz = READ_DATA_PENDING_COUNT(fptr);</div><div class='del'>-    off_t pos;</div><div class='add'>+    rb_off_t siz = READ_DATA_PENDING_COUNT(fptr);</div><div class='add'>+    rb_off_t pos;</div><div class='ctx'> </div><div class='ctx'>     if (fstat(fptr-&gt;fd, &amp;st) == 0  &amp;&amp; S_ISREG(st.st_mode)</div><div class='ctx'> #if defined(__HAIKU__)</div><div class='del'>-	&amp;&amp; (st.st_dev &gt; 3)</div><div class='add'>+        &amp;&amp; (st.st_dev &gt; 3)</div><div class='ctx'> #endif</div><div class='del'>-	)</div><div class='add'>+        )</div><div class='ctx'>     {</div><div class='ctx'>         if (io_fflush(fptr) &lt; 0)</div><div class='del'>-            rb_sys_fail(0);</div><div class='del'>-	pos = lseek(fptr-&gt;fd, 0, SEEK_CUR);</div><div class='del'>-	if (st.st_size &gt;= pos &amp;&amp; pos &gt;= 0) {</div><div class='del'>-	    siz += st.st_size - pos;</div><div class='del'>-	    if (siz &gt; LONG_MAX) {</div><div class='del'>-		rb_raise(rb_eIOError, "file too big for single read");</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+            rb_sys_fail_on_write(fptr);</div><div class='add'>+        pos = lseek(fptr-&gt;fd, 0, SEEK_CUR);</div><div class='add'>+        if (st.st_size &gt;= pos &amp;&amp; pos &gt;= 0) {</div><div class='add'>+            siz += st.st_size - pos;</div><div class='add'>+            if (siz &gt; LONG_MAX) {</div><div class='add'>+                rb_raise(rb_eIOError, "file too big for single read");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	siz += BUFSIZ;</div><div class='add'>+        siz += BUFSIZ;</div><div class='ctx'>     }</div><div class='ctx'>     return (long)siz;</div><div class='ctx'> }</div><div class='hunk'>@@ -2503,11 +3107,12 @@ remain_size(rb_io_t *fptr)</div><div class='ctx'> static VALUE</div><div class='ctx'> io_enc_str(VALUE str, rb_io_t *fptr)</div><div class='ctx'> {</div><div class='del'>-    OBJ_TAINT(str);</div><div class='ctx'>     rb_enc_associate(str, io_read_encoding(fptr));</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static rb_encoding *io_read_encoding(rb_io_t *fptr);</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> make_readconv(rb_io_t *fptr, int size)</div><div class='ctx'> {</div><div class='hunk'>@@ -2519,7 +3124,7 @@ make_readconv(rb_io_t *fptr, int size)</div><div class='ctx'>         ecopts = fptr-&gt;encs.ecopts;</div><div class='ctx'>         if (fptr-&gt;encs.enc2) {</div><div class='ctx'>             sname = rb_enc_name(fptr-&gt;encs.enc2);</div><div class='del'>-            dname = rb_enc_name(fptr-&gt;encs.enc);</div><div class='add'>+            dname = rb_enc_name(io_read_encoding(fptr));</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='ctx'>             sname = dname = "";</div><div class='hunk'>@@ -2529,7 +3134,7 @@ make_readconv(rb_io_t *fptr, int size)</div><div class='ctx'>             rb_exc_raise(rb_econv_open_exc(sname, dname, ecflags));</div><div class='ctx'>         fptr-&gt;cbuf.off = 0;</div><div class='ctx'>         fptr-&gt;cbuf.len = 0;</div><div class='del'>-	if (size &lt; IO_CBUF_CAPA_MIN) size = IO_CBUF_CAPA_MIN;</div><div class='add'>+        if (size &lt; IO_CBUF_CAPA_MIN) size = IO_CBUF_CAPA_MIN;</div><div class='ctx'>         fptr-&gt;cbuf.capa = size;</div><div class='ctx'>         fptr-&gt;cbuf.ptr = ALLOC_N(char, fptr-&gt;cbuf.capa);</div><div class='ctx'>     }</div><div class='hunk'>@@ -2586,27 +3191,27 @@ fill_cbuf(rb_io_t *fptr, int ec_flags)</div><div class='ctx'> </div><div class='ctx'>         if (res == econv_finished) {</div><div class='ctx'>             return MORE_CHAR_FINISHED;</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'> </div><div class='ctx'>         if (res == econv_source_buffer_empty) {</div><div class='ctx'>             if (fptr-&gt;rbuf.len == 0) {</div><div class='del'>-		READ_CHECK(fptr);</div><div class='add'>+                READ_CHECK(fptr);</div><div class='ctx'>                 if (io_fillbuf(fptr) &lt; 0) {</div><div class='del'>-		    if (!fptr-&gt;readconv) {</div><div class='del'>-			return MORE_CHAR_FINISHED;</div><div class='del'>-		    }</div><div class='add'>+                    if (!fptr-&gt;readconv) {</div><div class='add'>+                        return MORE_CHAR_FINISHED;</div><div class='add'>+                    }</div><div class='ctx'>                     ds = dp = (unsigned char *)fptr-&gt;cbuf.ptr + fptr-&gt;cbuf.off + fptr-&gt;cbuf.len;</div><div class='ctx'>                     de = (unsigned char *)fptr-&gt;cbuf.ptr + fptr-&gt;cbuf.capa;</div><div class='ctx'>                     res = rb_econv_convert(fptr-&gt;readconv, NULL, NULL, &amp;dp, de, 0);</div><div class='ctx'>                     fptr-&gt;cbuf.len += (int)(dp - ds);</div><div class='ctx'>                     rb_econv_check_error(fptr-&gt;readconv);</div><div class='del'>-		    break;</div><div class='add'>+                    break;</div><div class='ctx'>                 }</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     if (cbuf_len0 != fptr-&gt;cbuf.len)</div><div class='del'>-	return MORE_CHAR_SUSPENDED;</div><div class='add'>+        return MORE_CHAR_SUSPENDED;</div><div class='ctx'> </div><div class='ctx'>     return MORE_CHAR_FINISHED;</div><div class='ctx'> }</div><div class='hunk'>@@ -2626,15 +3231,14 @@ io_shift_cbuf(rb_io_t *fptr, int len, VALUE *strp)</div><div class='ctx'> {</div><div class='ctx'>     VALUE str = Qnil;</div><div class='ctx'>     if (strp) {</div><div class='del'>-	str = *strp;</div><div class='del'>-	if (NIL_P(str)) {</div><div class='del'>-	    *strp = str = rb_str_new(fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off, len);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_str_cat(str, fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off, len);</div><div class='del'>-	}</div><div class='del'>-	OBJ_TAINT(str);</div><div class='del'>-	rb_enc_associate(str, fptr-&gt;encs.enc);</div><div class='add'>+        str = *strp;</div><div class='add'>+        if (NIL_P(str)) {</div><div class='add'>+            *strp = str = rb_str_new(fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off, len);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_str_cat(str, fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off, len);</div><div class='add'>+        }</div><div class='add'>+        rb_enc_associate(str, fptr-&gt;encs.enc);</div><div class='ctx'>     }</div><div class='ctx'>     fptr-&gt;cbuf.off += len;</div><div class='ctx'>     fptr-&gt;cbuf.len -= len;</div><div class='hunk'>@@ -2652,22 +3256,25 @@ static int</div><div class='ctx'> io_setstrbuf(VALUE *str, long len)</div><div class='ctx'> {</div><div class='ctx'> #ifdef _WIN32</div><div class='del'>-    len = (len + 1) &amp; ~1L;	/* round up for wide char */</div><div class='add'>+    if (len &gt; 0)</div><div class='add'>+        len = (len + 1) &amp; ~1L;	/* round up for wide char */</div><div class='ctx'> #endif</div><div class='ctx'>     if (NIL_P(*str)) {</div><div class='del'>-	*str = rb_str_new(0, len);</div><div class='del'>-	return TRUE;</div><div class='add'>+        *str = rb_str_new(0, len);</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE s = StringValue(*str);</div><div class='del'>-	long clen = RSTRING_LEN(s);</div><div class='del'>-	if (clen &gt;= len) {</div><div class='del'>-	    rb_str_modify(s);</div><div class='del'>-	    return FALSE;</div><div class='del'>-	}</div><div class='del'>-	len -= clen;</div><div class='del'>-    }</div><div class='del'>-    rb_str_modify_expand(*str, len);</div><div class='add'>+        VALUE s = StringValue(*str);</div><div class='add'>+        long clen = RSTRING_LEN(s);</div><div class='add'>+        if (clen &gt;= len) {</div><div class='add'>+            rb_str_modify(s);</div><div class='add'>+            return FALSE;</div><div class='add'>+        }</div><div class='add'>+        len -= clen;</div><div class='add'>+    }</div><div class='add'>+    if ((rb_str_capacity(*str) - (size_t)RSTRING_LEN(*str)) &lt; (size_t)len) {</div><div class='add'>+        rb_str_modify_expand(*str, len);</div><div class='add'>+    }</div><div class='ctx'>     return FALSE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2676,7 +3283,7 @@ static void</div><div class='ctx'> io_shrink_read_string(VALUE str, long n)</div><div class='ctx'> {</div><div class='ctx'>     if (rb_str_capacity(str) - n &gt; MAX_REALLOC_GAP) {</div><div class='del'>-	rb_str_resize(str, n);</div><div class='add'>+        rb_str_resize(str, n);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2684,9 +3291,9 @@ static void</div><div class='ctx'> io_set_read_length(VALUE str, long n, int shrinkable)</div><div class='ctx'> {</div><div class='ctx'>     if (RSTRING_LEN(str) != n) {</div><div class='del'>-	rb_str_modify(str);</div><div class='del'>-	rb_str_set_len(str, n);</div><div class='del'>-	if (shrinkable) io_shrink_read_string(str, n);</div><div class='add'>+        rb_str_modify(str);</div><div class='add'>+        rb_str_set_len(str, n);</div><div class='add'>+        if (shrinkable) io_shrink_read_string(str, n);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -2701,28 +3308,28 @@ read_all(rb_io_t *fptr, long siz, VALUE str)</div><div class='ctx'>     int shrinkable;</div><div class='ctx'> </div><div class='ctx'>     if (NEED_READCONV(fptr)) {</div><div class='del'>-	int first = !NIL_P(str);</div><div class='del'>-	SET_BINARY_MODE(fptr);</div><div class='del'>-	shrinkable = io_setstrbuf(&amp;str,0);</div><div class='add'>+        int first = !NIL_P(str);</div><div class='add'>+        SET_BINARY_MODE(fptr);</div><div class='add'>+        shrinkable = io_setstrbuf(&amp;str,0);</div><div class='ctx'>         make_readconv(fptr, 0);</div><div class='ctx'>         while (1) {</div><div class='ctx'>             VALUE v;</div><div class='ctx'>             if (fptr-&gt;cbuf.len) {</div><div class='del'>-		if (first) rb_str_set_len(str, first = 0);</div><div class='add'>+                if (first) rb_str_set_len(str, first = 0);</div><div class='ctx'>                 io_shift_cbuf(fptr, fptr-&gt;cbuf.len, &amp;str);</div><div class='ctx'>             }</div><div class='ctx'>             v = fill_cbuf(fptr, 0);</div><div class='ctx'>             if (v != MORE_CHAR_SUSPENDED &amp;&amp; v != MORE_CHAR_FINISHED) {</div><div class='ctx'>                 if (fptr-&gt;cbuf.len) {</div><div class='del'>-		    if (first) rb_str_set_len(str, first = 0);</div><div class='add'>+                    if (first) rb_str_set_len(str, first = 0);</div><div class='ctx'>                     io_shift_cbuf(fptr, fptr-&gt;cbuf.len, &amp;str);</div><div class='ctx'>                 }</div><div class='ctx'>                 rb_exc_raise(v);</div><div class='ctx'>             }</div><div class='ctx'>             if (v == MORE_CHAR_FINISHED) {</div><div class='ctx'>                 clear_readconv(fptr);</div><div class='del'>-		if (first) rb_str_set_len(str, first = 0);</div><div class='del'>-		if (shrinkable) io_shrink_read_string(str, RSTRING_LEN(str));</div><div class='add'>+                if (first) rb_str_set_len(str, first = 0);</div><div class='add'>+                if (shrinkable) io_shrink_read_string(str, RSTRING_LEN(str));</div><div class='ctx'>                 return io_enc_str(str, fptr);</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='hunk'>@@ -2738,19 +3345,29 @@ read_all(rb_io_t *fptr, long siz, VALUE str)</div><div class='ctx'>     if (siz == 0) siz = BUFSIZ;</div><div class='ctx'>     shrinkable = io_setstrbuf(&amp;str, siz);</div><div class='ctx'>     for (;;) {</div><div class='del'>-	READ_CHECK(fptr);</div><div class='del'>-	n = io_fread(str, bytes, siz - bytes, fptr);</div><div class='del'>-	if (n == 0 &amp;&amp; bytes == 0) {</div><div class='del'>-	    rb_str_set_len(str, 0);</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	bytes += n;</div><div class='del'>-	rb_str_set_len(str, bytes);</div><div class='del'>-	if (cr != ENC_CODERANGE_BROKEN)</div><div class='del'>-	    pos += rb_str_coderange_scan_restartable(RSTRING_PTR(str) + pos, RSTRING_PTR(str) + bytes, enc, &amp;cr);</div><div class='del'>-	if (bytes &lt; siz) break;</div><div class='del'>-	siz += BUFSIZ;</div><div class='del'>-	rb_str_modify_expand(str, BUFSIZ);</div><div class='add'>+        READ_CHECK(fptr);</div><div class='add'>+        n = io_fread(str, bytes, siz - bytes, fptr);</div><div class='add'>+        if (n == 0 &amp;&amp; bytes == 0) {</div><div class='add'>+            rb_str_set_len(str, 0);</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        bytes += n;</div><div class='add'>+        rb_str_set_len(str, bytes);</div><div class='add'>+        if (cr != ENC_CODERANGE_BROKEN)</div><div class='add'>+            pos += rb_str_coderange_scan_restartable(RSTRING_PTR(str) + pos, RSTRING_PTR(str) + bytes, enc, &amp;cr);</div><div class='add'>+        if (bytes &lt; siz) break;</div><div class='add'>+        siz += BUFSIZ;</div><div class='add'>+</div><div class='add'>+        size_t capa = rb_str_capacity(str);</div><div class='add'>+        if (capa &lt; (size_t)RSTRING_LEN(str) + BUFSIZ) {</div><div class='add'>+            if (capa &lt; BUFSIZ) {</div><div class='add'>+                capa = BUFSIZ;</div><div class='add'>+            }</div><div class='add'>+            else if (capa &gt; IO_MAX_BUFFER_GROWTH) {</div><div class='add'>+                capa = IO_MAX_BUFFER_GROWTH;</div><div class='add'>+            }</div><div class='add'>+            rb_str_modify_expand(str, capa);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (shrinkable) io_shrink_read_string(str, RSTRING_LEN(str));</div><div class='ctx'>     str = io_enc_str(str, fptr);</div><div class='hunk'>@@ -2762,36 +3379,38 @@ void</div><div class='ctx'> rb_io_set_nonblock(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     if (rb_fd_set_nonblock(fptr-&gt;fd) != 0) {</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-read_internal_call(VALUE arg)</div><div class='add'>+io_read_memory_call(VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     struct io_internal_read_struct *iis = (struct io_internal_read_struct *)arg;</div><div class='ctx'> </div><div class='del'>-    return rb_thread_io_blocking_region(internal_read_func, iis, iis-&gt;fd);</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        VALUE result = rb_fiber_scheduler_io_read_memory(scheduler, iis-&gt;fptr-&gt;self, iis-&gt;buf, iis-&gt;capa, 0);</div><div class='add'>+</div><div class='add'>+        if (!UNDEF_P(result)) {</div><div class='add'>+            // This is actually returned as a pseudo-VALUE and later cast to a long:</div><div class='add'>+            return (VALUE)rb_fiber_scheduler_io_result_apply(result);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return rb_thread_io_blocking_region(internal_read_func, iis, iis-&gt;fptr-&gt;fd);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static long</div><div class='del'>-read_internal_locktmp(VALUE str, struct io_internal_read_struct *iis)</div><div class='add'>+io_read_memory_locktmp(VALUE str, struct io_internal_read_struct *iis)</div><div class='ctx'> {</div><div class='del'>-    return (long)rb_str_locktmp_ensure(str, read_internal_call, (VALUE)iis);</div><div class='add'>+    return (long)rb_str_locktmp_ensure(str, io_read_memory_call, (VALUE)iis);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-no_exception_p(VALUE opts)</div><div class='del'>-{</div><div class='del'>-    VALUE except;</div><div class='del'>-    ID id = id_exception;</div><div class='del'>-</div><div class='del'>-    rb_get_kwargs(opts, &amp;id, 0, 1, &amp;except);</div><div class='del'>-    return except == Qfalse;</div><div class='del'>-}</div><div class='add'>+#define no_exception_p(opts) !rb_opts_exception_p((opts), TRUE)</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-io_getpartial(int argc, VALUE *argv, VALUE io, VALUE opts, int nonblock)</div><div class='add'>+io_getpartial(int argc, VALUE *argv, VALUE io, int no_exception, int nonblock)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     VALUE length, str;</div><div class='hunk'>@@ -2802,17 +3421,18 @@ io_getpartial(int argc, VALUE *argv, VALUE io, VALUE opts, int nonblock)</div><div class='ctx'>     rb_scan_args(argc, argv, "11", &amp;length, &amp;str);</div><div class='ctx'> </div><div class='ctx'>     if ((len = NUM2LONG(length)) &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "negative length %ld given", len);</div><div class='add'>+        rb_raise(rb_eArgError, "negative length %ld given", len);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     shrinkable = io_setstrbuf(&amp;str, len);</div><div class='del'>-    OBJ_TAINT(str);</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     rb_io_check_byte_readable(fptr);</div><div class='ctx'> </div><div class='del'>-    if (len == 0)</div><div class='del'>-	return str;</div><div class='add'>+    if (len == 0) {</div><div class='add'>+        io_set_read_length(str, 0, shrinkable);</div><div class='add'>+        return str;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (!nonblock)</div><div class='ctx'>         READ_CHECK(fptr);</div><div class='hunk'>@@ -2822,22 +3442,25 @@ io_getpartial(int argc, VALUE *argv, VALUE io, VALUE opts, int nonblock)</div><div class='ctx'>         if (nonblock) {</div><div class='ctx'>             rb_io_set_nonblock(fptr);</div><div class='ctx'>         }</div><div class='del'>-	io_setstrbuf(&amp;str, len);</div><div class='del'>-        iis.fd = fptr-&gt;fd;</div><div class='add'>+        io_setstrbuf(&amp;str, len);</div><div class='add'>+        iis.th = rb_thread_current();</div><div class='add'>+        iis.fptr = fptr;</div><div class='ctx'>         iis.nonblock = nonblock;</div><div class='add'>+        iis.fd = fptr-&gt;fd;</div><div class='ctx'>         iis.buf = RSTRING_PTR(str);</div><div class='ctx'>         iis.capa = len;</div><div class='del'>-        n = read_internal_locktmp(str, &amp;iis);</div><div class='add'>+        iis.timeout = NULL;</div><div class='add'>+        n = io_read_memory_locktmp(str, &amp;iis);</div><div class='ctx'>         if (n &lt; 0) {</div><div class='del'>-	    int e = errno;</div><div class='add'>+            int e = errno;</div><div class='ctx'>             if (!nonblock &amp;&amp; fptr_wait_readable(fptr))</div><div class='ctx'>                 goto again;</div><div class='del'>-	    if (nonblock &amp;&amp; (e == EWOULDBLOCK || e == EAGAIN)) {</div><div class='del'>-                if (no_exception_p(opts))</div><div class='add'>+            if (nonblock &amp;&amp; (io_again_p(e))) {</div><div class='add'>+                if (no_exception)</div><div class='ctx'>                     return sym_wait_readable;</div><div class='ctx'>                 else</div><div class='del'>-		    rb_readwrite_syserr_fail(RB_IO_WAIT_READABLE,</div><div class='del'>-					     e, "read would block");</div><div class='add'>+                    rb_readwrite_syserr_fail(RB_IO_WAIT_READABLE,</div><div class='add'>+                                             e, "read would block");</div><div class='ctx'>             }</div><div class='ctx'>             rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='ctx'>         }</div><div class='hunk'>@@ -2852,62 +3475,93 @@ io_getpartial(int argc, VALUE *argv, VALUE io, VALUE opts, int nonblock)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.readpartial(maxlen)              -&gt; string</div><div class='del'>- *     ios.readpartial(maxlen, outbuf)      -&gt; outbuf</div><div class='add'>+ *    readpartial(maxlen)             -&gt; string</div><div class='add'>+ *    readpartial(maxlen, out_string) -&gt; out_string</div><div class='ctx'>  *</div><div class='del'>- *  Reads at most &lt;i&gt;maxlen&lt;/i&gt; bytes from the I/O stream.</div><div class='del'>- *  It blocks only if &lt;em&gt;ios&lt;/em&gt; has no data immediately available.</div><div class='del'>- *  It doesn't block if some data available.</div><div class='add'>+ *  Reads up to +maxlen+ bytes from the stream;</div><div class='add'>+ *  returns a string (either a new string or the given +out_string+).</div><div class='add'>+ *  Its encoding is:</div><div class='ctx'>  *</div><div class='del'>- *  If the optional _outbuf_ argument is present,</div><div class='del'>- *  it must reference a String, which will receive the data.</div><div class='del'>- *  The _outbuf_ will contain only the received data after the method call</div><div class='del'>- *  even if it is not empty at the beginning.</div><div class='add'>+ *  - The unchanged encoding of +out_string+, if +out_string+ is given.</div><div class='add'>+ *  - ASCII-8BIT, otherwise.</div><div class='ctx'>  *</div><div class='del'>- *  It raises &lt;code&gt;EOFError&lt;/code&gt; on end of file.</div><div class='del'>- *</div><div class='del'>- *  readpartial is designed for streams such as pipe, socket, tty, etc.</div><div class='del'>- *  It blocks only when no data immediately available.</div><div class='del'>- *  This means that it blocks only when following all conditions hold.</div><div class='del'>- *  * the byte buffer in the IO object is empty.</div><div class='del'>- *  * the content of the stream is empty.</div><div class='del'>- *  * the stream is not reached to EOF.</div><div class='del'>- *</div><div class='del'>- *  When readpartial blocks, it waits data or EOF on the stream.</div><div class='del'>- *  If some data is reached, readpartial returns with the data.</div><div class='del'>- *  If EOF is reached, readpartial raises EOFError.</div><div class='del'>- *</div><div class='del'>- *  When readpartial doesn't blocks, it returns or raises immediately.</div><div class='del'>- *  If the byte buffer is not empty, it returns the data in the buffer.</div><div class='del'>- *  Otherwise if the stream has some content,</div><div class='del'>- *  it returns the data in the stream.</div><div class='del'>- *  Otherwise if the stream is reached to EOF, it raises EOFError.</div><div class='del'>- *</div><div class='del'>- *     r, w = IO.pipe           #               buffer          pipe content</div><div class='del'>- *     w &lt;&lt; "abc"               #               ""              "abc".</div><div class='del'>- *     r.readpartial(4096)      #=&gt; "abc"       ""              ""</div><div class='del'>- *     r.readpartial(4096)      # blocks because buffer and pipe is empty.</div><div class='del'>- *</div><div class='del'>- *     r, w = IO.pipe           #               buffer          pipe content</div><div class='del'>- *     w &lt;&lt; "abc"               #               ""              "abc"</div><div class='del'>- *     w.close                  #               ""              "abc" EOF</div><div class='del'>- *     r.readpartial(4096)      #=&gt; "abc"       ""              EOF</div><div class='del'>- *     r.readpartial(4096)      # raises EOFError</div><div class='add'>+ *  - Contains +maxlen+ bytes from the stream, if available.</div><div class='add'>+ *  - Otherwise contains all available bytes, if any available.</div><div class='add'>+ *  - Otherwise is an empty string.</div><div class='add'>+ *</div><div class='add'>+ *  With the single non-negative integer argument +maxlen+ given,</div><div class='add'>+ *  returns a new string:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.readpartial(20) # =&gt; "First line\nSecond l"</div><div class='add'>+ *    f.readpartial(20) # =&gt; "ine\n\nFourth line\n"</div><div class='add'>+ *    f.readpartial(20) # =&gt; "Fifth line\n"</div><div class='add'>+ *    f.readpartial(20) # Raises EOFError.</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  With both argument +maxlen+ and string argument +out_string+ given,</div><div class='add'>+ *  returns modified +out_string+:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    s = 'foo'</div><div class='add'>+ *    f.readpartial(20, s) # =&gt; "First line\nSecond l"</div><div class='add'>+ *    s = 'bar'</div><div class='add'>+ *    f.readpartial(0, s)  # =&gt; ""</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  This method is useful for a stream such as a pipe, a socket, or a tty.</div><div class='add'>+ *  It blocks only when no data is immediately available.</div><div class='add'>+ *  This means that it blocks only when _all_ of the following are true:</div><div class='add'>+ *</div><div class='add'>+ *  - The byte buffer in the stream is empty.</div><div class='add'>+ *  - The content of the stream is empty.</div><div class='add'>+ *  - The stream is not at EOF.</div><div class='add'>+ *</div><div class='add'>+ *  When blocked, the method waits for either more data or EOF on the stream:</div><div class='add'>+ *</div><div class='add'>+ *  - If more data is read, the method returns the data.</div><div class='add'>+ *  - If EOF is reached, the method raises EOFError.</div><div class='ctx'>  *</div><div class='del'>- *     r, w = IO.pipe           #               buffer          pipe content</div><div class='del'>- *     w &lt;&lt; "abc\ndef\n"        #               ""              "abc\ndef\n"</div><div class='del'>- *     r.gets                   #=&gt; "abc\n"     "def\n"         ""</div><div class='del'>- *     w &lt;&lt; "ghi\n"             #               "def\n"         "ghi\n"</div><div class='del'>- *     r.readpartial(4096)      #=&gt; "def\n"     ""              "ghi\n"</div><div class='del'>- *     r.readpartial(4096)      #=&gt; "ghi\n"     ""              ""</div><div class='add'>+ *  When not blocked, the method responds immediately:</div><div class='ctx'>  *</div><div class='del'>- *  Note that readpartial behaves similar to sysread.</div><div class='del'>- *  The differences are:</div><div class='del'>- *  * If the byte buffer is not empty, read from the byte buffer instead of "sysread for buffered IO (IOError)".</div><div class='del'>- *  * It doesn't cause Errno::EWOULDBLOCK and Errno::EINTR.  When readpartial meets EWOULDBLOCK and EINTR by read system call, readpartial retry the system call.</div><div class='add'>+ *  - Returns data from the buffer if there is any.</div><div class='add'>+ *  - Otherwise returns data from the stream if there is any.</div><div class='add'>+ *  - Otherwise raises EOFError if the stream has reached EOF.</div><div class='ctx'>  *</div><div class='del'>- *  The latter means that readpartial is nonblocking-flag insensitive.</div><div class='del'>- *  It blocks on the situation IO#sysread causes Errno::EWOULDBLOCK as if the fd is blocking mode.</div><div class='add'>+ *  Note that this method is similar to sysread. The differences are:</div><div class='add'>+ *</div><div class='add'>+ *  - If the byte buffer is not empty, read from the byte buffer</div><div class='add'>+ *    instead of "sysread for buffered IO (IOError)".</div><div class='add'>+ *  - It doesn't cause Errno::EWOULDBLOCK and Errno::EINTR.  When</div><div class='add'>+ *    readpartial meets EWOULDBLOCK and EINTR by read system call,</div><div class='add'>+ *    readpartial retries the system call.</div><div class='add'>+ *</div><div class='add'>+ *  The latter means that readpartial is non-blocking-flag insensitive.</div><div class='add'>+ *  It blocks on the situation IO#sysread causes Errno::EWOULDBLOCK as</div><div class='add'>+ *  if the fd is blocking mode.</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *     #                        # Returned      Buffer Content    Pipe Content</div><div class='add'>+ *     r, w = IO.pipe           #</div><div class='add'>+ *     w &lt;&lt; 'abc'               #               ""                "abc".</div><div class='add'>+ *     r.readpartial(4096)      # =&gt; "abc"      ""                ""</div><div class='add'>+ *     r.readpartial(4096)      # (Blocks because buffer and pipe are empty.)</div><div class='add'>+ *</div><div class='add'>+ *     #                        # Returned      Buffer Content    Pipe Content</div><div class='add'>+ *     r, w = IO.pipe           #</div><div class='add'>+ *     w &lt;&lt; 'abc'               #               ""                "abc"</div><div class='add'>+ *     w.close                  #               ""                "abc" EOF</div><div class='add'>+ *     r.readpartial(4096)      # =&gt; "abc"      ""                 EOF</div><div class='add'>+ *     r.readpartial(4096)      # raises EOFError</div><div class='add'>+ *</div><div class='add'>+ *     #                        # Returned      Buffer Content    Pipe Content</div><div class='add'>+ *     r, w = IO.pipe           #</div><div class='add'>+ *     w &lt;&lt; "abc\ndef\n"        #               ""                "abc\ndef\n"</div><div class='add'>+ *     r.gets                   # =&gt; "abc\n"    "def\n"           ""</div><div class='add'>+ *     w &lt;&lt; "ghi\n"             #               "def\n"           "ghi\n"</div><div class='add'>+ *     r.readpartial(4096)      # =&gt; "def\n"    ""                "ghi\n"</div><div class='add'>+ *     r.readpartial(4096)      # =&gt; "ghi\n"    ""                ""</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -2923,9 +3577,9 @@ io_readpartial(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-io_nonblock_eof(VALUE opts)</div><div class='add'>+io_nonblock_eof(int no_exception)</div><div class='ctx'> {</div><div class='del'>-    if (!no_exception_p(opts)) {</div><div class='add'>+    if (!no_exception) {</div><div class='ctx'>         rb_eof_error();</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -2933,7 +3587,7 @@ io_nonblock_eof(VALUE opts)</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='del'>-io_read_nonblock(VALUE io, VALUE length, VALUE str, VALUE ex)</div><div class='add'>+io_read_nonblock(rb_execution_context_t *ec, VALUE io, VALUE length, VALUE str, VALUE ex)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     long n, len;</div><div class='hunk'>@@ -2941,32 +3595,37 @@ io_read_nonblock(VALUE io, VALUE length, VALUE str, VALUE ex)</div><div class='ctx'>     int shrinkable;</div><div class='ctx'> </div><div class='ctx'>     if ((len = NUM2LONG(length)) &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "negative length %ld given", len);</div><div class='add'>+        rb_raise(rb_eArgError, "negative length %ld given", len);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     shrinkable = io_setstrbuf(&amp;str, len);</div><div class='del'>-    OBJ_TAINT(str);</div><div class='add'>+    rb_bool_expected(ex, "exception", TRUE);</div><div class='add'>+</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     rb_io_check_byte_readable(fptr);</div><div class='ctx'> </div><div class='del'>-    if (len == 0)</div><div class='del'>-	return str;</div><div class='add'>+    if (len == 0) {</div><div class='add'>+        io_set_read_length(str, 0, shrinkable);</div><div class='add'>+        return str;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     n = read_buffered_data(RSTRING_PTR(str), len, fptr);</div><div class='ctx'>     if (n &lt;= 0) {</div><div class='del'>-	rb_io_set_nonblock(fptr);</div><div class='del'>-	shrinkable |= io_setstrbuf(&amp;str, len);</div><div class='del'>-        iis.fd = fptr-&gt;fd;</div><div class='add'>+        rb_fd_set_nonblock(fptr-&gt;fd);</div><div class='add'>+        shrinkable |= io_setstrbuf(&amp;str, len);</div><div class='add'>+        iis.fptr = fptr;</div><div class='ctx'>         iis.nonblock = 1;</div><div class='add'>+        iis.fd = fptr-&gt;fd;</div><div class='ctx'>         iis.buf = RSTRING_PTR(str);</div><div class='ctx'>         iis.capa = len;</div><div class='del'>-        n = read_internal_locktmp(str, &amp;iis);</div><div class='add'>+        iis.timeout = NULL;</div><div class='add'>+        n = io_read_memory_locktmp(str, &amp;iis);</div><div class='ctx'>         if (n &lt; 0) {</div><div class='del'>-	    int e = errno;</div><div class='del'>-	    if ((e == EWOULDBLOCK || e == EAGAIN)) {</div><div class='del'>-                if (ex == Qfalse) return sym_wait_readable;</div><div class='del'>-		rb_readwrite_syserr_fail(RB_IO_WAIT_READABLE,</div><div class='del'>-					 e, "read would block");</div><div class='add'>+            int e = errno;</div><div class='add'>+            if (io_again_p(e)) {</div><div class='add'>+                if (!ex) return sym_wait_readable;</div><div class='add'>+                rb_readwrite_syserr_fail(RB_IO_WAIT_READABLE,</div><div class='add'>+                                         e, "read would block");</div><div class='ctx'>             }</div><div class='ctx'>             rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='ctx'>         }</div><div class='hunk'>@@ -2974,8 +3633,8 @@ io_read_nonblock(VALUE io, VALUE length, VALUE str, VALUE ex)</div><div class='ctx'>     io_set_read_length(str, n, shrinkable);</div><div class='ctx'> </div><div class='ctx'>     if (n == 0) {</div><div class='del'>-	if (ex == Qfalse) return Qnil;</div><div class='del'>-	rb_eof_error();</div><div class='add'>+        if (!ex) return Qnil;</div><div class='add'>+        rb_eof_error();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='hunk'>@@ -2983,36 +3642,37 @@ io_read_nonblock(VALUE io, VALUE length, VALUE str, VALUE ex)</div><div class='ctx'> </div><div class='ctx'> /* :nodoc: */</div><div class='ctx'> static VALUE</div><div class='del'>-io_write_nonblock(VALUE io, VALUE str, VALUE ex)</div><div class='add'>+io_write_nonblock(rb_execution_context_t *ec, VALUE io, VALUE str, VALUE ex)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     long n;</div><div class='ctx'> </div><div class='ctx'>     if (!RB_TYPE_P(str, T_STRING))</div><div class='del'>-	str = rb_obj_as_string(str);</div><div class='add'>+        str = rb_obj_as_string(str);</div><div class='add'>+    rb_bool_expected(ex, "exception", TRUE);</div><div class='ctx'> </div><div class='ctx'>     io = GetWriteIO(io);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     rb_io_check_writable(fptr);</div><div class='ctx'> </div><div class='ctx'>     if (io_fflush(fptr) &lt; 0)</div><div class='del'>-        rb_sys_fail(0);</div><div class='add'>+        rb_sys_fail_on_write(fptr);</div><div class='ctx'> </div><div class='del'>-    rb_io_set_nonblock(fptr);</div><div class='add'>+    rb_fd_set_nonblock(fptr-&gt;fd);</div><div class='ctx'>     n = write(fptr-&gt;fd, RSTRING_PTR(str), RSTRING_LEN(str));</div><div class='ctx'>     RB_GC_GUARD(str);</div><div class='ctx'> </div><div class='ctx'>     if (n &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	if (e == EWOULDBLOCK || e == EAGAIN) {</div><div class='del'>-	    if (ex == Qfalse) {</div><div class='del'>-		return sym_wait_writable;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rb_readwrite_syserr_fail(RB_IO_WAIT_WRITABLE, e, "write would block");</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='add'>+        int e = errno;</div><div class='add'>+        if (io_again_p(e)) {</div><div class='add'>+            if (!ex) {</div><div class='add'>+                return sym_wait_writable;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rb_readwrite_syserr_fail(RB_IO_WAIT_WRITABLE, e, "write would block");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return LONG2FIX(n);</div><div class='hunk'>@@ -3020,69 +3680,73 @@ io_write_nonblock(VALUE io, VALUE str, VALUE ex)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.read([length [, outbuf]])    -&gt; string, outbuf, or nil</div><div class='del'>- *</div><div class='del'>- *  Reads _length_ bytes from the I/O stream.</div><div class='del'>- *</div><div class='del'>- *  _length_ must be a non-negative integer or +nil+.</div><div class='del'>- *</div><div class='del'>- *  If _length_ is a positive integer, +read+ tries to read</div><div class='del'>- *  _length_ bytes without any conversion (binary mode).</div><div class='del'>- *  It returns +nil+ if an EOF is encountered before anything can be read.</div><div class='del'>- *  Fewer than _length_ bytes are returned if an EOF is encountered during</div><div class='del'>- *  the read.</div><div class='del'>- *  In the case of an integer _length_, the resulting string is always</div><div class='del'>- *  in ASCII-8BIT encoding.</div><div class='del'>- *</div><div class='del'>- *  If _length_ is omitted or is +nil+, it reads until EOF</div><div class='del'>- *  and the encoding conversion is applied, if applicable.</div><div class='del'>- *  A string is returned even if EOF is encountered before any data is read.</div><div class='del'>- *</div><div class='del'>- *  If _length_ is zero, it returns an empty string (&lt;code&gt;""&lt;/code&gt;).</div><div class='del'>- *</div><div class='del'>- *  If the optional _outbuf_ argument is present,</div><div class='del'>- *  it must reference a String, which will receive the data.</div><div class='del'>- *  The _outbuf_ will contain only the received data after the method call</div><div class='del'>- *  even if it is not empty at the beginning.</div><div class='del'>- *</div><div class='del'>- *  When this method is called at end of file, it returns +nil+</div><div class='del'>- *  or &lt;code&gt;""&lt;/code&gt;, depending on _length_:</div><div class='del'>- *  +read+, &lt;code&gt;read(nil)&lt;/code&gt;, and &lt;code&gt;read(0)&lt;/code&gt; return</div><div class='del'>- *  &lt;code&gt;""&lt;/code&gt;,</div><div class='del'>- *  &lt;code&gt;read(&lt;i&gt;positive_integer&lt;/i&gt;)&lt;/code&gt; returns +nil+.</div><div class='del'>- *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.read(16)   #=&gt; "This is line one"</div><div class='del'>- *</div><div class='del'>- *     # read whole file</div><div class='del'>- *     open("file") do |f|</div><div class='del'>- *       data = f.read   # This returns a string even if the file is empty.</div><div class='del'>- *       # ...</div><div class='del'>- *     end</div><div class='del'>- *</div><div class='del'>- *     # iterate over fixed length records</div><div class='del'>- *     open("fixed-record-file") do |f|</div><div class='del'>- *       while record = f.read(256)</div><div class='del'>- *         # ...</div><div class='del'>- *       end</div><div class='del'>- *     end</div><div class='del'>- *</div><div class='del'>- *     # iterate over variable length records,</div><div class='del'>- *     # each record is prefixed by its 32-bit length</div><div class='del'>- *     open("variable-record-file") do |f|</div><div class='del'>- *       while len = f.read(4)</div><div class='del'>- *         len = len.unpack("N")[0]   # 32-bit length</div><div class='del'>- *         record = f.read(len)       # This returns a string even if len is 0.</div><div class='del'>- *       end</div><div class='del'>- *     end</div><div class='add'>+ *    read(maxlen = nil, out_string = nil) -&gt; new_string, out_string, or nil</div><div class='add'>+ *</div><div class='add'>+ *  Reads bytes from the stream; the stream must be opened for reading</div><div class='add'>+ *  (see {Access Modes}[rdoc-ref:File@Access+Modes]):</div><div class='add'>+ *</div><div class='add'>+ *  - If +maxlen+ is +nil+, reads all bytes using the stream's data mode.</div><div class='add'>+ *  - Otherwise reads up to +maxlen+ bytes in binary mode.</div><div class='add'>+ *</div><div class='add'>+ *  Returns a string (either a new string or the given +out_string+)</div><div class='add'>+ *  containing the bytes read.</div><div class='add'>+ *  The encoding of the string depends on both +maxLen+ and +out_string+:</div><div class='add'>+ *</div><div class='add'>+ *  - +maxlen+ is +nil+: uses internal encoding of +self+</div><div class='add'>+ *    (regardless of whether +out_string+ was given).</div><div class='add'>+ *  - +maxlen+ not +nil+:</div><div class='add'>+ *</div><div class='add'>+ *    - +out_string+ given: encoding of +out_string+ not modified.</div><div class='add'>+ *    - +out_string+ not given: ASCII-8BIT is used.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Without Argument +out_string+&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  When argument +out_string+ is omitted,</div><div class='add'>+ *  the returned value is a new string:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.read</div><div class='add'>+ *    # =&gt; "First line\nSecond line\n\nFourth line\nFifth line\n"</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    f.read(30) # =&gt; "First line\r\nSecond line\r\n\r\nFou"</div><div class='add'>+ *    f.read(30) # =&gt; "rth line\r\nFifth line\r\n"</div><div class='add'>+ *    f.read(30) # =&gt; nil</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  If +maxlen+ is zero, returns an empty string.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt; With Argument +out_string+&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  When argument +out_string+ is given,</div><div class='add'>+ *  the returned value is +out_string+, whose content is replaced:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    s = 'foo'      # =&gt; "foo"</div><div class='add'>+ *    f.read(nil, s) # =&gt; "First line\nSecond line\n\nFourth line\nFifth line\n"</div><div class='add'>+ *    s              # =&gt; "First line\nSecond line\n\nFourth line\nFifth line\n"</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    s = 'bar'</div><div class='add'>+ *    f.read(30, s)  # =&gt; "First line\r\nSecond line\r\n\r\nFou"</div><div class='add'>+ *    s              # =&gt; "First line\r\nSecond line\r\n\r\nFou"</div><div class='add'>+ *    s = 'baz'</div><div class='add'>+ *    f.read(30, s)  # =&gt; "rth line\r\nFifth line\r\n"</div><div class='add'>+ *    s              # =&gt; "rth line\r\nFifth line\r\n"</div><div class='add'>+ *    s = 'bat'</div><div class='add'>+ *    f.read(30, s)  # =&gt; nil</div><div class='add'>+ *    s              # =&gt; ""</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='ctx'>  *  Note that this method behaves like the fread() function in C.</div><div class='ctx'>  *  This means it retries to invoke read(2) system calls to read data</div><div class='del'>- *  with the specified length (or until EOF).</div><div class='del'>- *  This behavior is preserved even if &lt;i&gt;ios&lt;/i&gt; is in non-blocking mode.</div><div class='del'>- *  (This method is non-blocking flag insensitive as other methods.)</div><div class='add'>+ *  with the specified maxlen (or until EOF).</div><div class='add'>+ *</div><div class='add'>+ *  This behavior is preserved even if the stream is in non-blocking mode.</div><div class='add'>+ *  (This method is non-blocking-flag insensitive as other methods.)</div><div class='add'>+ *</div><div class='ctx'>  *  If you need the behavior like a single read(2) system call,</div><div class='ctx'>  *  consider #readpartial, #read_nonblock, and #sysread.</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#write.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3092,20 +3756,20 @@ io_read(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     long n, len;</div><div class='ctx'>     VALUE length, str;</div><div class='ctx'>     int shrinkable;</div><div class='del'>-#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32)</div><div class='add'>+#if RUBY_CRLF_ENVIRONMENT</div><div class='ctx'>     int previous_mode;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "02", &amp;length, &amp;str);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(length)) {</div><div class='del'>-	GetOpenFile(io, fptr);</div><div class='del'>-	rb_io_check_char_readable(fptr);</div><div class='del'>-	return read_all(fptr, remain_size(fptr), str);</div><div class='add'>+        GetOpenFile(io, fptr);</div><div class='add'>+        rb_io_check_char_readable(fptr);</div><div class='add'>+        return read_all(fptr, remain_size(fptr), str);</div><div class='ctx'>     }</div><div class='ctx'>     len = NUM2LONG(length);</div><div class='ctx'>     if (len &lt; 0) {</div><div class='del'>-	rb_raise(rb_eArgError, "negative length %ld given", len);</div><div class='add'>+        rb_raise(rb_eArgError, "negative length %ld given", len);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     shrinkable = io_setstrbuf(&amp;str,len);</div><div class='hunk'>@@ -3113,23 +3777,22 @@ io_read(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     rb_io_check_byte_readable(fptr);</div><div class='ctx'>     if (len == 0) {</div><div class='del'>-	io_set_read_length(str, 0, shrinkable);</div><div class='del'>-	return str;</div><div class='add'>+        io_set_read_length(str, 0, shrinkable);</div><div class='add'>+        return str;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     READ_CHECK(fptr);</div><div class='del'>-#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32)</div><div class='add'>+#if RUBY_CRLF_ENVIRONMENT</div><div class='ctx'>     previous_mode = set_binary_mode_with_seek_cur(fptr);</div><div class='ctx'> #endif</div><div class='ctx'>     n = io_fread(str, 0, len, fptr);</div><div class='ctx'>     io_set_read_length(str, n, shrinkable);</div><div class='del'>-#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32)</div><div class='add'>+#if RUBY_CRLF_ENVIRONMENT</div><div class='ctx'>     if (previous_mode == O_TEXT) {</div><div class='del'>-	setmode(fptr-&gt;fd, O_TEXT);</div><div class='add'>+        setmode(fptr-&gt;fd, O_TEXT);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     if (n == 0) return Qnil;</div><div class='del'>-    OBJ_TAINT(str);</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='hunk'>@@ -3139,17 +3802,42 @@ rscheck(const char *rsptr, long rslen, VALUE rs)</div><div class='ctx'> {</div><div class='ctx'>     if (!rs) return;</div><div class='ctx'>     if (RSTRING_PTR(rs) != rsptr &amp;&amp; RSTRING_LEN(rs) != rslen)</div><div class='del'>-	rb_raise(rb_eRuntimeError, "rs modified");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "rs modified");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const char *</div><div class='add'>+search_delim(const char *p, long len, int delim, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    if (rb_enc_mbminlen(enc) == 1) {</div><div class='add'>+        p = memchr(p, delim, len);</div><div class='add'>+        if (p) return p + 1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        const char *end = p + len;</div><div class='add'>+        while (p &lt; end) {</div><div class='add'>+            int r = rb_enc_precise_mbclen(p, end, enc);</div><div class='add'>+            if (!MBCLEN_CHARFOUND_P(r)) {</div><div class='add'>+                p += rb_enc_mbminlen(enc);</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            int n = MBCLEN_CHARFOUND_LEN(r);</div><div class='add'>+            if (rb_enc_mbc_to_codepoint(p, end, enc) == (unsigned int)delim) {</div><div class='add'>+                return p + n;</div><div class='add'>+            }</div><div class='add'>+            p += n;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    return NULL;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-appendline(rb_io_t *fptr, int delim, VALUE *strp, long *lp)</div><div class='add'>+appendline(rb_io_t *fptr, int delim, VALUE *strp, long *lp, rb_encoding *enc)</div><div class='ctx'> {</div><div class='ctx'>     VALUE str = *strp;</div><div class='ctx'>     long limit = *lp;</div><div class='ctx'> </div><div class='ctx'>     if (NEED_READCONV(fptr)) {</div><div class='del'>-	SET_BINARY_MODE(fptr);</div><div class='add'>+        SET_BINARY_MODE(fptr);</div><div class='ctx'>         make_readconv(fptr, 0);</div><div class='ctx'>         do {</div><div class='ctx'>             const char *p, *e;</div><div class='hunk'>@@ -3158,9 +3846,9 @@ appendline(rb_io_t *fptr, int delim, VALUE *strp, long *lp)</div><div class='ctx'>                 p = READ_CHAR_PENDING_PTR(fptr);</div><div class='ctx'>                 if (0 &lt; limit &amp;&amp; limit &lt; searchlen)</div><div class='ctx'>                     searchlen = (int)limit;</div><div class='del'>-                e = memchr(p, delim, searchlen);</div><div class='add'>+                e = search_delim(p, searchlen, delim, enc);</div><div class='ctx'>                 if (e) {</div><div class='del'>-		    int len = (int)(e-p+1);</div><div class='add'>+                    int len = (int)(e-p);</div><div class='ctx'>                     if (NIL_P(str))</div><div class='ctx'>                         *strp = str = rb_str_new(p, len);</div><div class='ctx'>                     else</div><div class='hunk'>@@ -3193,32 +3881,32 @@ appendline(rb_io_t *fptr, int delim, VALUE *strp, long *lp)</div><div class='ctx'> </div><div class='ctx'>     NEED_NEWLINE_DECORATOR_ON_READ_CHECK(fptr);</div><div class='ctx'>     do {</div><div class='del'>-	long pending = READ_DATA_PENDING_COUNT(fptr);</div><div class='del'>-	if (pending &gt; 0) {</div><div class='del'>-	    const char *p = READ_DATA_PENDING_PTR(fptr);</div><div class='del'>-	    const char *e;</div><div class='del'>-	    long last;</div><div class='del'>-</div><div class='del'>-	    if (limit &gt; 0 &amp;&amp; pending &gt; limit) pending = limit;</div><div class='del'>-	    e = memchr(p, delim, pending);</div><div class='del'>-	    if (e) pending = e - p + 1;</div><div class='del'>-	    if (!NIL_P(str)) {</div><div class='del'>-		last = RSTRING_LEN(str);</div><div class='del'>-		rb_str_resize(str, last + pending);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='add'>+        long pending = READ_DATA_PENDING_COUNT(fptr);</div><div class='add'>+        if (pending &gt; 0) {</div><div class='add'>+            const char *p = READ_DATA_PENDING_PTR(fptr);</div><div class='add'>+            const char *e;</div><div class='add'>+            long last;</div><div class='add'>+</div><div class='add'>+            if (limit &gt; 0 &amp;&amp; pending &gt; limit) pending = limit;</div><div class='add'>+            e = search_delim(p, pending, delim, enc);</div><div class='add'>+            if (e) pending = e - p;</div><div class='add'>+            if (!NIL_P(str)) {</div><div class='add'>+                last = RSTRING_LEN(str);</div><div class='add'>+                rb_str_resize(str, last + pending);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='ctx'>                 last = 0;</div><div class='del'>-		*strp = str = rb_str_buf_new(pending);</div><div class='del'>-		rb_str_set_len(str, pending);</div><div class='del'>-	    }</div><div class='del'>-	    read_buffered_data(RSTRING_PTR(str) + last, pending, fptr); /* must not fail */</div><div class='del'>-	    limit -= pending;</div><div class='del'>-	    *lp = limit;</div><div class='del'>-	    if (e) return delim;</div><div class='del'>-	    if (limit == 0)</div><div class='del'>-		return (unsigned char)RSTRING_PTR(str)[RSTRING_LEN(str)-1];</div><div class='del'>-	}</div><div class='del'>-	READ_CHECK(fptr);</div><div class='add'>+                *strp = str = rb_str_buf_new(pending);</div><div class='add'>+                rb_str_set_len(str, pending);</div><div class='add'>+            }</div><div class='add'>+            read_buffered_data(RSTRING_PTR(str) + last, pending, fptr); /* must not fail */</div><div class='add'>+            limit -= pending;</div><div class='add'>+            *lp = limit;</div><div class='add'>+            if (e) return delim;</div><div class='add'>+            if (limit == 0)</div><div class='add'>+                return (unsigned char)RSTRING_PTR(str)[RSTRING_LEN(str)-1];</div><div class='add'>+        }</div><div class='add'>+        READ_CHECK(fptr);</div><div class='ctx'>     } while (io_fillbuf(fptr) &gt;= 0);</div><div class='ctx'>     *lp = limit;</div><div class='ctx'>     return EOF;</div><div class='hunk'>@@ -3228,47 +3916,47 @@ static inline int</div><div class='ctx'> swallow(rb_io_t *fptr, int term)</div><div class='ctx'> {</div><div class='ctx'>     if (NEED_READCONV(fptr)) {</div><div class='del'>-	rb_encoding *enc = io_read_encoding(fptr);</div><div class='del'>-	int needconv = rb_enc_mbminlen(enc) != 1;</div><div class='del'>-	SET_BINARY_MODE(fptr);</div><div class='del'>-	make_readconv(fptr, 0);</div><div class='del'>-	do {</div><div class='del'>-	    size_t cnt;</div><div class='del'>-	    while ((cnt = READ_CHAR_PENDING_COUNT(fptr)) &gt; 0) {</div><div class='del'>-		const char *p = READ_CHAR_PENDING_PTR(fptr);</div><div class='del'>-		int i;</div><div class='del'>-		if (!needconv) {</div><div class='del'>-		    if (*p != term) return TRUE;</div><div class='del'>-		    i = (int)cnt;</div><div class='del'>-		    while (--i &amp;&amp; *++p == term);</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    const char *e = p + cnt;</div><div class='del'>-		    if (rb_enc_ascget(p, e, &amp;i, enc) != term) return TRUE;</div><div class='del'>-		    while ((p += i) &lt; e &amp;&amp; rb_enc_ascget(p, e, &amp;i, enc) == term);</div><div class='del'>-		    i = (int)(e - p);</div><div class='del'>-		}</div><div class='del'>-		io_shift_cbuf(fptr, (int)cnt - i, NULL);</div><div class='del'>-	    }</div><div class='del'>-	} while (more_char(fptr) != MORE_CHAR_FINISHED);</div><div class='del'>-	return FALSE;</div><div class='add'>+        rb_encoding *enc = io_read_encoding(fptr);</div><div class='add'>+        int needconv = rb_enc_mbminlen(enc) != 1;</div><div class='add'>+        SET_BINARY_MODE(fptr);</div><div class='add'>+        make_readconv(fptr, 0);</div><div class='add'>+        do {</div><div class='add'>+            size_t cnt;</div><div class='add'>+            while ((cnt = READ_CHAR_PENDING_COUNT(fptr)) &gt; 0) {</div><div class='add'>+                const char *p = READ_CHAR_PENDING_PTR(fptr);</div><div class='add'>+                int i;</div><div class='add'>+                if (!needconv) {</div><div class='add'>+                    if (*p != term) return TRUE;</div><div class='add'>+                    i = (int)cnt;</div><div class='add'>+                    while (--i &amp;&amp; *++p == term);</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    const char *e = p + cnt;</div><div class='add'>+                    if (rb_enc_ascget(p, e, &amp;i, enc) != term) return TRUE;</div><div class='add'>+                    while ((p += i) &lt; e &amp;&amp; rb_enc_ascget(p, e, &amp;i, enc) == term);</div><div class='add'>+                    i = (int)(e - p);</div><div class='add'>+                }</div><div class='add'>+                io_shift_cbuf(fptr, (int)cnt - i, NULL);</div><div class='add'>+            }</div><div class='add'>+        } while (more_char(fptr) != MORE_CHAR_FINISHED);</div><div class='add'>+        return FALSE;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     NEED_NEWLINE_DECORATOR_ON_READ_CHECK(fptr);</div><div class='ctx'>     do {</div><div class='del'>-	size_t cnt;</div><div class='del'>-	while ((cnt = READ_DATA_PENDING_COUNT(fptr)) &gt; 0) {</div><div class='del'>-	    char buf[1024];</div><div class='del'>-	    const char *p = READ_DATA_PENDING_PTR(fptr);</div><div class='del'>-	    int i;</div><div class='del'>-	    if (cnt &gt; sizeof buf) cnt = sizeof buf;</div><div class='del'>-	    if (*p != term) return TRUE;</div><div class='del'>-	    i = (int)cnt;</div><div class='del'>-	    while (--i &amp;&amp; *++p == term);</div><div class='del'>-	    if (!read_buffered_data(buf, cnt - i, fptr)) /* must not fail */</div><div class='del'>-		rb_sys_fail_path(fptr-&gt;pathv);</div><div class='del'>-	}</div><div class='del'>-	READ_CHECK(fptr);</div><div class='add'>+        size_t cnt;</div><div class='add'>+        while ((cnt = READ_DATA_PENDING_COUNT(fptr)) &gt; 0) {</div><div class='add'>+            char buf[1024];</div><div class='add'>+            const char *p = READ_DATA_PENDING_PTR(fptr);</div><div class='add'>+            int i;</div><div class='add'>+            if (cnt &gt; sizeof buf) cnt = sizeof buf;</div><div class='add'>+            if (*p != term) return TRUE;</div><div class='add'>+            i = (int)cnt;</div><div class='add'>+            while (--i &amp;&amp; *++p == term);</div><div class='add'>+            if (!read_buffered_data(buf, cnt - i, fptr)) /* must not fail */</div><div class='add'>+                rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        }</div><div class='add'>+        READ_CHECK(fptr);</div><div class='ctx'>     } while (io_fillbuf(fptr) == 0);</div><div class='ctx'>     return FALSE;</div><div class='ctx'> }</div><div class='hunk'>@@ -3282,37 +3970,43 @@ rb_io_getline_fast(rb_io_t *fptr, rb_encoding *enc, int chomp)</div><div class='ctx'>     int cr = 0;</div><div class='ctx'> </div><div class='ctx'>     do {</div><div class='del'>-	int pending = READ_DATA_PENDING_COUNT(fptr);</div><div class='add'>+        int pending = READ_DATA_PENDING_COUNT(fptr);</div><div class='ctx'> </div><div class='del'>-	if (pending &gt; 0) {</div><div class='del'>-	    const char *p = READ_DATA_PENDING_PTR(fptr);</div><div class='del'>-	    const char *e;</div><div class='del'>-	    int chomplen = 0;</div><div class='add'>+        if (pending &gt; 0) {</div><div class='add'>+            const char *p = READ_DATA_PENDING_PTR(fptr);</div><div class='add'>+            const char *e;</div><div class='add'>+            int chomplen = 0;</div><div class='ctx'> </div><div class='del'>-	    e = memchr(p, '\n', pending);</div><div class='del'>-	    if (e) {</div><div class='add'>+            e = memchr(p, '\n', pending);</div><div class='add'>+            if (e) {</div><div class='ctx'>                 pending = (int)(e - p + 1);</div><div class='del'>-		if (chomp) {</div><div class='del'>-		    chomplen = (pending &gt; 1 &amp;&amp; *(e-1) == '\r') + 1;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    if (NIL_P(str)) {</div><div class='del'>-		str = rb_str_new(p, pending - chomplen);</div><div class='del'>-		fptr-&gt;rbuf.off += pending;</div><div class='del'>-		fptr-&gt;rbuf.len -= pending;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rb_str_resize(str, len + pending - chomplen);</div><div class='del'>-		read_buffered_data(RSTRING_PTR(str)+len, pending - chomplen, fptr);</div><div class='del'>-		fptr-&gt;rbuf.off += chomplen;</div><div class='del'>-		fptr-&gt;rbuf.len -= chomplen;</div><div class='del'>-	    }</div><div class='del'>-	    len += pending - chomplen;</div><div class='del'>-	    if (cr != ENC_CODERANGE_BROKEN)</div><div class='del'>-		pos += rb_str_coderange_scan_restartable(RSTRING_PTR(str) + pos, RSTRING_PTR(str) + len, enc, &amp;cr);</div><div class='del'>-	    if (e) break;</div><div class='del'>-	}</div><div class='del'>-	READ_CHECK(fptr);</div><div class='add'>+                if (chomp) {</div><div class='add'>+                    chomplen = (pending &gt; 1 &amp;&amp; *(e-1) == '\r') + 1;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            if (NIL_P(str)) {</div><div class='add'>+                str = rb_str_new(p, pending - chomplen);</div><div class='add'>+                fptr-&gt;rbuf.off += pending;</div><div class='add'>+                fptr-&gt;rbuf.len -= pending;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rb_str_resize(str, len + pending - chomplen);</div><div class='add'>+                read_buffered_data(RSTRING_PTR(str)+len, pending - chomplen, fptr);</div><div class='add'>+                fptr-&gt;rbuf.off += chomplen;</div><div class='add'>+                fptr-&gt;rbuf.len -= chomplen;</div><div class='add'>+                if (pending == 1 &amp;&amp; chomplen == 1 &amp;&amp; len &gt; 0) {</div><div class='add'>+                    if (RSTRING_PTR(str)[len-1] == '\r') {</div><div class='add'>+                        rb_str_resize(str, --len);</div><div class='add'>+                        break;</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            len += pending - chomplen;</div><div class='add'>+            if (cr != ENC_CODERANGE_BROKEN)</div><div class='add'>+                pos += rb_str_coderange_scan_restartable(RSTRING_PTR(str) + pos, RSTRING_PTR(str) + len, enc, &amp;cr);</div><div class='add'>+            if (e) break;</div><div class='add'>+        }</div><div class='add'>+        READ_CHECK(fptr);</div><div class='ctx'>     } while (io_fillbuf(fptr) &gt;= 0);</div><div class='ctx'>     if (NIL_P(str)) return Qnil;</div><div class='ctx'> </div><div class='hunk'>@@ -3335,13 +4029,13 @@ extract_getline_opts(VALUE opts, struct getline_arg *args)</div><div class='ctx'> {</div><div class='ctx'>     int chomp = FALSE;</div><div class='ctx'>     if (!NIL_P(opts)) {</div><div class='del'>-	static ID kwds[1];</div><div class='del'>-	VALUE vchomp;</div><div class='del'>-	if (!kwds[0]) {</div><div class='del'>-	    kwds[0] = rb_intern_const("chomp");</div><div class='del'>-	}</div><div class='del'>-	rb_get_kwargs(opts, kwds, 0, -2, &amp;vchomp);</div><div class='del'>-	chomp = (vchomp != Qundef) &amp;&amp; RTEST(vchomp);</div><div class='add'>+        static ID kwds[1];</div><div class='add'>+        VALUE vchomp;</div><div class='add'>+        if (!kwds[0]) {</div><div class='add'>+            kwds[0] = rb_intern_const("chomp");</div><div class='add'>+        }</div><div class='add'>+        rb_get_kwargs(opts, kwds, 0, -2, &amp;vchomp);</div><div class='add'>+        chomp = (!UNDEF_P(vchomp)) &amp;&amp; RTEST(vchomp);</div><div class='ctx'>     }</div><div class='ctx'>     args-&gt;chomp = chomp;</div><div class='ctx'> }</div><div class='hunk'>@@ -3362,7 +4056,7 @@ extract_getline_args(int argc, VALUE *argv, struct getline_arg *args)</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     else if (2 &lt;= argc) {</div><div class='del'>-	rs = argv[0], lim = argv[1];</div><div class='add'>+        rs = argv[0], lim = argv[1];</div><div class='ctx'>         if (!NIL_P(rs))</div><div class='ctx'>             StringValue(rs);</div><div class='ctx'>     }</div><div class='hunk'>@@ -3377,25 +4071,25 @@ check_getline_args(VALUE *rsp, long *limit, VALUE io)</div><div class='ctx'>     VALUE rs = *rsp;</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(rs)) {</div><div class='del'>-	rb_encoding *enc_rs, *enc_io;</div><div class='del'>-</div><div class='del'>-	GetOpenFile(io, fptr);</div><div class='del'>-	enc_rs = rb_enc_get(rs);</div><div class='del'>-	enc_io = io_read_encoding(fptr);</div><div class='del'>-	if (enc_io != enc_rs &amp;&amp;</div><div class='del'>-	    (rb_enc_str_coderange(rs) != ENC_CODERANGE_7BIT ||</div><div class='del'>-	     (RSTRING_LEN(rs) &gt; 0 &amp;&amp; !rb_enc_asciicompat(enc_io)))) {</div><div class='add'>+        rb_encoding *enc_rs, *enc_io;</div><div class='add'>+</div><div class='add'>+        GetOpenFile(io, fptr);</div><div class='add'>+        enc_rs = rb_enc_get(rs);</div><div class='add'>+        enc_io = io_read_encoding(fptr);</div><div class='add'>+        if (enc_io != enc_rs &amp;&amp;</div><div class='add'>+            (!is_ascii_string(rs) ||</div><div class='add'>+             (RSTRING_LEN(rs) &gt; 0 &amp;&amp; !rb_enc_asciicompat(enc_io)))) {</div><div class='ctx'>             if (rs == rb_default_rs) {</div><div class='ctx'>                 rs = rb_enc_str_new(0, 0, enc_io);</div><div class='ctx'>                 rb_str_buf_cat_ascii(rs, "\n");</div><div class='del'>-		*rsp = rs;</div><div class='add'>+                *rsp = rs;</div><div class='ctx'>             }</div><div class='ctx'>             else {</div><div class='ctx'>                 rb_raise(rb_eArgError, "encoding mismatch: %s IO with %s RS",</div><div class='ctx'>                          rb_enc_name(enc_io),</div><div class='ctx'>                          rb_enc_name(enc_rs));</div><div class='ctx'>             }</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -3418,77 +4112,86 @@ rb_io_getline_0(VALUE rs, long limit, int chomp, rb_io_t *fptr)</div><div class='ctx'> </div><div class='ctx'>     rb_io_check_char_readable(fptr);</div><div class='ctx'>     if (NIL_P(rs) &amp;&amp; limit &lt; 0) {</div><div class='del'>-	str = read_all(fptr, 0, Qnil);</div><div class='del'>-	if (RSTRING_LEN(str) == 0) return Qnil;</div><div class='del'>-	if (chomp) rb_str_chomp_string(str, rb_default_rs);</div><div class='add'>+        str = read_all(fptr, 0, Qnil);</div><div class='add'>+        if (RSTRING_LEN(str) == 0) return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     else if (limit == 0) {</div><div class='del'>-	return rb_enc_str_new(0, 0, io_read_encoding(fptr));</div><div class='add'>+        return rb_enc_str_new(0, 0, io_read_encoding(fptr));</div><div class='ctx'>     }</div><div class='ctx'>     else if (rs == rb_default_rs &amp;&amp; limit &lt; 0 &amp;&amp; !NEED_READCONV(fptr) &amp;&amp;</div><div class='ctx'>              rb_enc_asciicompat(enc = io_read_encoding(fptr))) {</div><div class='del'>-	NEED_NEWLINE_DECORATOR_ON_READ_CHECK(fptr);</div><div class='del'>-	return rb_io_getline_fast(fptr, enc, chomp);</div><div class='add'>+        NEED_NEWLINE_DECORATOR_ON_READ_CHECK(fptr);</div><div class='add'>+        return rb_io_getline_fast(fptr, enc, chomp);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	int c, newline = -1;</div><div class='del'>-	const char *rsptr = 0;</div><div class='del'>-	long rslen = 0;</div><div class='del'>-	int rspara = 0;</div><div class='add'>+        int c, newline = -1;</div><div class='add'>+        const char *rsptr = 0;</div><div class='add'>+        long rslen = 0;</div><div class='add'>+        int rspara = 0;</div><div class='ctx'>         int extra_limit = 16;</div><div class='del'>-	int chomp_cr = chomp;</div><div class='add'>+        int chomp_cr = chomp;</div><div class='ctx'> </div><div class='del'>-	SET_BINARY_MODE(fptr);</div><div class='add'>+        SET_BINARY_MODE(fptr);</div><div class='ctx'>         enc = io_read_encoding(fptr);</div><div class='ctx'> </div><div class='del'>-	if (!NIL_P(rs)) {</div><div class='del'>-	    rslen = RSTRING_LEN(rs);</div><div class='del'>-	    if (rslen == 0) {</div><div class='del'>-		rsptr = "\n\n";</div><div class='del'>-		rslen = 2;</div><div class='del'>-		rspara = 1;</div><div class='del'>-		swallow(fptr, '\n');</div><div class='del'>-		rs = 0;</div><div class='del'>-		if (!rb_enc_asciicompat(enc)) {</div><div class='del'>-		    rs = rb_usascii_str_new(rsptr, rslen);</div><div class='del'>-		    rs = rb_str_encode(rs, rb_enc_from_encoding(enc), 0, Qnil);</div><div class='del'>-		    OBJ_FREEZE(rs);</div><div class='del'>-		    rsptr = RSTRING_PTR(rs);</div><div class='del'>-		    rslen = RSTRING_LEN(rs);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rsptr = RSTRING_PTR(rs);</div><div class='del'>-	    }</div><div class='del'>-	    newline = (unsigned char)rsptr[rslen - 1];</div><div class='del'>-	    chomp_cr = chomp &amp;&amp; rslen == 1 &amp;&amp; newline == '\n';</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	/* MS - Optimization */</div><div class='del'>-	while ((c = appendline(fptr, newline, &amp;str, &amp;limit)) != EOF) {</div><div class='add'>+        if (!NIL_P(rs)) {</div><div class='add'>+            rslen = RSTRING_LEN(rs);</div><div class='add'>+            if (rslen == 0) {</div><div class='add'>+                rsptr = "\n\n";</div><div class='add'>+                rslen = 2;</div><div class='add'>+                rspara = 1;</div><div class='add'>+                swallow(fptr, '\n');</div><div class='add'>+                rs = 0;</div><div class='add'>+                if (!rb_enc_asciicompat(enc)) {</div><div class='add'>+                    rs = rb_usascii_str_new(rsptr, rslen);</div><div class='add'>+                    rs = rb_str_encode(rs, rb_enc_from_encoding(enc), 0, Qnil);</div><div class='add'>+                    OBJ_FREEZE(rs);</div><div class='add'>+                    rsptr = RSTRING_PTR(rs);</div><div class='add'>+                    rslen = RSTRING_LEN(rs);</div><div class='add'>+                }</div><div class='add'>+                newline = '\n';</div><div class='add'>+            }</div><div class='add'>+            else if (rb_enc_mbminlen(enc) == 1) {</div><div class='add'>+                 rsptr = RSTRING_PTR(rs);</div><div class='add'>+                 newline = (unsigned char)rsptr[rslen - 1];</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rs = rb_str_encode(rs, rb_enc_from_encoding(enc), 0, Qnil);</div><div class='add'>+                rsptr = RSTRING_PTR(rs);</div><div class='add'>+                const char *e = rsptr + rslen;</div><div class='add'>+                const char *last = rb_enc_prev_char(rsptr, e, e, enc);</div><div class='add'>+                int n;</div><div class='add'>+                newline = rb_enc_codepoint_len(last, e, &amp;n, enc);</div><div class='add'>+                if (last + n != e) rb_raise(rb_eArgError, "broken separator");</div><div class='add'>+            }</div><div class='add'>+            chomp_cr = chomp &amp;&amp; newline == '\n' &amp;&amp; rslen == rb_enc_mbminlen(enc);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* MS - Optimization */</div><div class='add'>+        while ((c = appendline(fptr, newline, &amp;str, &amp;limit, enc)) != EOF) {</div><div class='ctx'>             const char *s, *p, *pp, *e;</div><div class='ctx'> </div><div class='del'>-	    if (c == newline) {</div><div class='del'>-		if (RSTRING_LEN(str) &lt; rslen) continue;</div><div class='del'>-		s = RSTRING_PTR(str);</div><div class='add'>+            if (c == newline) {</div><div class='add'>+                if (RSTRING_LEN(str) &lt; rslen) continue;</div><div class='add'>+                s = RSTRING_PTR(str);</div><div class='ctx'>                 e = RSTRING_END(str);</div><div class='del'>-		p = e - rslen;</div><div class='del'>-		pp = rb_enc_left_char_head(s, p, e, enc);</div><div class='del'>-		if (pp != p) continue;</div><div class='del'>-		if (!rspara) rscheck(rsptr, rslen, rs);</div><div class='del'>-		if (memcmp(p, rsptr, rslen) == 0) {</div><div class='del'>-		    if (chomp) {</div><div class='del'>-			if (chomp_cr &amp;&amp; p &gt; s &amp;&amp; *(p-1) == '\r') --p;</div><div class='del'>-			rb_str_set_len(str, p - s);</div><div class='del'>-		    }</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    if (limit == 0) {</div><div class='del'>-		s = RSTRING_PTR(str);</div><div class='del'>-		p = RSTRING_END(str);</div><div class='del'>-		pp = rb_enc_left_char_head(s, p-1, p, enc);</div><div class='del'>-                if (extra_limit &amp;&amp;</div><div class='add'>+                p = e - rslen;</div><div class='add'>+                pp = rb_enc_left_char_head(s, p, e, enc);</div><div class='add'>+                if (pp != p) continue;</div><div class='add'>+                if (!rspara) rscheck(rsptr, rslen, rs);</div><div class='add'>+                if (memcmp(p, rsptr, rslen) == 0) {</div><div class='add'>+                    if (chomp) {</div><div class='add'>+                        if (chomp_cr &amp;&amp; p &gt; s &amp;&amp; *(p-1) == '\r') --p;</div><div class='add'>+                        rb_str_set_len(str, p - s);</div><div class='add'>+                    }</div><div class='add'>+                    break;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            if (limit == 0) {</div><div class='add'>+                s = RSTRING_PTR(str);</div><div class='add'>+                p = RSTRING_END(str);</div><div class='add'>+                pp = rb_enc_prev_char(s, p, p, enc);</div><div class='add'>+                if (extra_limit &amp;&amp; pp &amp;&amp;</div><div class='ctx'>                     MBCLEN_NEEDMORE_P(rb_enc_precise_mbclen(pp, p, enc))) {</div><div class='ctx'>                     /* relax the limit while incomplete character.</div><div class='ctx'>                      * extra_limit limits the relax length */</div><div class='hunk'>@@ -3499,17 +4202,17 @@ rb_io_getline_0(VALUE rs, long limit, int chomp, rb_io_t *fptr)</div><div class='ctx'>                     nolimit = 1;</div><div class='ctx'>                     break;</div><div class='ctx'>                 }</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	if (rspara &amp;&amp; c != EOF)</div><div class='del'>-	    swallow(fptr, '\n');</div><div class='del'>-	if (!NIL_P(str))</div><div class='add'>+        if (rspara &amp;&amp; c != EOF)</div><div class='add'>+            swallow(fptr, '\n');</div><div class='add'>+        if (!NIL_P(str))</div><div class='ctx'>             str = io_enc_str(str, fptr);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(str) &amp;&amp; !nolimit) {</div><div class='del'>-	fptr-&gt;lineno++;</div><div class='add'>+        fptr-&gt;lineno++;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='hunk'>@@ -3526,13 +4229,13 @@ rb_io_getline_1(VALUE rs, long limit, int chomp, VALUE io)</div><div class='ctx'>     old_lineno = fptr-&gt;lineno;</div><div class='ctx'>     str = rb_io_getline_0(rs, limit, chomp, fptr);</div><div class='ctx'>     if (!NIL_P(str) &amp;&amp; (new_lineno = fptr-&gt;lineno) != old_lineno) {</div><div class='del'>-	if (io == ARGF.current_file) {</div><div class='del'>-	    ARGF.lineno += new_lineno - old_lineno;</div><div class='del'>-	    ARGF.last_lineno = ARGF.lineno;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ARGF.last_lineno = new_lineno;</div><div class='del'>-	}</div><div class='add'>+        if (io == ARGF.current_file) {</div><div class='add'>+            ARGF.lineno += new_lineno - old_lineno;</div><div class='add'>+            ARGF.last_lineno = ARGF.lineno;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ARGF.last_lineno = new_lineno;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='hunk'>@@ -3563,35 +4266,77 @@ rb_io_gets_internal(VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.gets(sep=$/ [, getline_args])     -&gt; string or nil</div><div class='del'>- *     ios.gets(limit [, getline_args])      -&gt; string or nil</div><div class='del'>- *     ios.gets(sep, limit [, getline_args]) -&gt; string or nil</div><div class='del'>- *</div><div class='del'>- *  Reads the next ``line'' from the I/O stream; lines are separated by</div><div class='del'>- *  &lt;i&gt;sep&lt;/i&gt;. A separator of +nil+ reads the entire</div><div class='del'>- *  contents, and a zero-length separator reads the input a paragraph at</div><div class='del'>- *  a time (two successive newlines in the input separate paragraphs).</div><div class='del'>- *  The stream must be opened for reading or an &lt;code&gt;IOError&lt;/code&gt;</div><div class='del'>- *  will be raised. The line read in will be returned and also assigned</div><div class='del'>- *  to &lt;code&gt;$_&lt;/code&gt;. Returns +nil+ if called at end of</div><div class='del'>- *  file.  If the first argument is an integer, or optional second</div><div class='del'>- *  argument is given, the returning string would not be longer than the</div><div class='del'>- *  given value in bytes.</div><div class='del'>- *</div><div class='del'>- *     File.new("testfile").gets   #=&gt; "This is line one\n"</div><div class='del'>- *     $_                          #=&gt; "This is line one\n"</div><div class='add'>+ *    gets(sep = $/, chomp: false)   -&gt; string or nil</div><div class='add'>+ *    gets(limit, chomp: false)      -&gt; string or nil</div><div class='add'>+ *    gets(sep, limit, chomp: false) -&gt; string or nil</div><div class='add'>+ *</div><div class='add'>+ *  Reads and returns a line from the stream;</div><div class='add'>+ *  assigns the return value to &lt;tt&gt;$_&lt;/tt&gt;.</div><div class='add'>+ *  See {Line IO}[rdoc-ref:IO@Line+IO].</div><div class='add'>+ *</div><div class='add'>+ *  With no arguments given, returns the next line</div><div class='add'>+ *  as determined by line separator &lt;tt&gt;$/&lt;/tt&gt;, or +nil+ if none:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.gets # =&gt; "First line\n"</div><div class='add'>+ *    $_     # =&gt; "First line\n"</div><div class='add'>+ *    f.gets # =&gt; "\n"</div><div class='add'>+ *    f.gets # =&gt; "Fourth line\n"</div><div class='add'>+ *    f.gets # =&gt; "Fifth line\n"</div><div class='add'>+ *    f.gets # =&gt; nil</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  With only string argument +sep+ given,</div><div class='add'>+ *  returns the next line as determined by line separator +sep+,</div><div class='add'>+ *  or +nil+ if none;</div><div class='add'>+ *  see {Line Separator}[rdoc-ref:IO@Line+Separator]:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.gets('l')   # =&gt; "First l"</div><div class='add'>+ *    f.gets('li')  # =&gt; "ine\nSecond li"</div><div class='add'>+ *    f.gets('lin') # =&gt; "ne\n\nFourth lin"</div><div class='add'>+ *    f.gets        # =&gt; "e\n"</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  The two special values for +sep+ are honored:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    # Get all.</div><div class='add'>+ *    f.gets(nil) # =&gt; "First line\nSecond line\n\nFourth line\nFifth line\n"</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    # Get paragraph (up to two line separators).</div><div class='add'>+ *    f.gets('')  # =&gt; "First line\nSecond line\n\n"</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  With only integer argument +limit+ given,</div><div class='add'>+ *  limits the number of bytes in the line;</div><div class='add'>+ *  see {Line Limit}[rdoc-ref:IO@Line+Limit]:</div><div class='add'>+ *</div><div class='add'>+ *    # No more than one line.</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets(10) } # =&gt; "First line"</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets(11) } # =&gt; "First line\n"</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets(12) } # =&gt; "First line\n"</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +sep+ and +limit+ given,</div><div class='add'>+ *  combines the two behaviors:</div><div class='add'>+ *</div><div class='add'>+ *  - Returns the next line as determined by line separator +sep+,</div><div class='add'>+ *    or +nil+ if none.</div><div class='add'>+ *  - But returns no more bytes than are allowed by the limit.</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword argument +chomp+ specifies whether line separators</div><div class='add'>+ *  are to be omitted:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    # Chomp the lines.</div><div class='add'>+ *    f.gets(chomp: true) # =&gt; "First line"</div><div class='add'>+ *    f.gets(chomp: true) # =&gt; "Second line"</div><div class='add'>+ *    f.gets(chomp: true) # =&gt; ""</div><div class='add'>+ *    f.gets(chomp: true) # =&gt; "Fourth line"</div><div class='add'>+ *    f.gets(chomp: true) # =&gt; "Fifth line"</div><div class='add'>+ *    f.gets(chomp: true) # =&gt; nil</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- *     File.new("testfile").gets(4)#=&gt; "This"</div><div class='del'>- *</div><div class='del'>- *  If IO contains multibyte characters byte then &lt;code&gt;gets(1)&lt;/code&gt;</div><div class='del'>- *  returns character entirely:</div><div class='del'>- *</div><div class='del'>- *     # Russian characters take 2 bytes</div><div class='del'>- *     File.write("testfile", "\u{442 435 441 442}")</div><div class='del'>- *     File.open("testfile") {|f|f.gets(1)} #=&gt; "\u0442"</div><div class='del'>- *     File.open("testfile") {|f|f.gets(2)} #=&gt; "\u0442"</div><div class='del'>- *     File.open("testfile") {|f|f.gets(3)} #=&gt; "\u0442\u0435"</div><div class='del'>- *     File.open("testfile") {|f|f.gets(4)} #=&gt; "\u0442\u0435"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3607,24 +4352,11 @@ rb_io_gets_m(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.lineno    -&gt; integer</div><div class='del'>- *</div><div class='del'>- *  Returns the current line number in &lt;em&gt;ios&lt;/em&gt;.  The stream must be</div><div class='del'>- *  opened for reading. &lt;code&gt;lineno&lt;/code&gt; counts the number of times</div><div class='del'>- *  #gets is called rather than the number of newlines encountered.  The two</div><div class='del'>- *  values will differ if #gets is called with a separator other than newline.</div><div class='del'>- *</div><div class='del'>- *  Methods that use &lt;code&gt;$/&lt;/code&gt; like #each, #lines and #readline will</div><div class='del'>- *  also increment &lt;code&gt;lineno&lt;/code&gt;.</div><div class='add'>+ *    lineno -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  See also the &lt;code&gt;$.&lt;/code&gt; variable.</div><div class='add'>+ *  Returns the current line number for the stream;</div><div class='add'>+ *  see {Line Number}[rdoc-ref:IO@Line+Number].</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.lineno   #=&gt; 0</div><div class='del'>- *     f.gets     #=&gt; "This is line one\n"</div><div class='del'>- *     f.lineno   #=&gt; 1</div><div class='del'>- *     f.gets     #=&gt; "This is line two\n"</div><div class='del'>- *     f.lineno   #=&gt; 2</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3639,19 +4371,11 @@ rb_io_lineno(VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.lineno = integer    -&gt; integer</div><div class='add'>+ *    lineno = integer -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  Manually sets the current line number to the given value.</div><div class='del'>- *  &lt;code&gt;$.&lt;/code&gt; is updated only on the next read.</div><div class='add'>+ *  Sets and returns the line number for the stream;</div><div class='add'>+ *  see {Line Number}[rdoc-ref:IO@Line+Number].</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.gets                     #=&gt; "This is line one\n"</div><div class='del'>- *     $.                         #=&gt; 1</div><div class='del'>- *     f.lineno = 1000</div><div class='del'>- *     f.lineno                   #=&gt; 1000</div><div class='del'>- *     $.                         #=&gt; 1         # lineno of last read</div><div class='del'>- *     f.gets                     #=&gt; "This is line two\n"</div><div class='del'>- *     $.                         #=&gt; 1001      # lineno of last read</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3667,12 +4391,14 @@ rb_io_set_lineno(VALUE io, VALUE lineno)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.readline(sep=$/ [, getline_args])     -&gt; string</div><div class='del'>- *     ios.readline(limit [, getline_args])      -&gt; string</div><div class='del'>- *     ios.readline(sep, limit [, getline_args]) -&gt; string</div><div class='add'>+ *    readline(sep = $/, chomp: false)   -&gt; string</div><div class='add'>+ *    readline(limit, chomp: false)      -&gt; string</div><div class='add'>+ *    readline(sep, limit, chomp: false) -&gt; string</div><div class='ctx'>  *</div><div class='del'>- *  Reads a line as with &lt;code&gt;IO#gets&lt;/code&gt;, but raises an</div><div class='del'>- *  &lt;code&gt;EOFError&lt;/code&gt; on end of file.</div><div class='add'>+ *  Reads a line as with IO#gets, but raises EOFError if already at end-of-stream.</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword argument +chomp+ specifies whether line separators</div><div class='add'>+ *  are to be omitted.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3681,7 +4407,7 @@ rb_io_readline(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     VALUE line = rb_io_gets_m(argc, argv, io);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(line)) {</div><div class='del'>-	rb_eof_error();</div><div class='add'>+        rb_eof_error();</div><div class='ctx'>     }</div><div class='ctx'>     return line;</div><div class='ctx'> }</div><div class='hunk'>@@ -3690,26 +4416,68 @@ static VALUE io_readlines(const struct getline_arg *arg, VALUE io);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.readlines(sep=$/ [, getline_args])     -&gt; array</div><div class='del'>- *     ios.readlines(limit [, getline_args])      -&gt; array</div><div class='del'>- *     ios.readlines(sep, limit [, getline_args]) -&gt; array</div><div class='add'>+ *    readlines(sep = $/, chomp: false)   -&gt; array</div><div class='add'>+ *    readlines(limit, chomp: false)       -&gt; array</div><div class='add'>+ *    readlines(sep, limit, chomp: false) -&gt; array</div><div class='ctx'>  *</div><div class='del'>- *  Reads all of the lines in &lt;em&gt;ios&lt;/em&gt;, and returns them in</div><div class='del'>- *  an array. Lines are separated by the optional &lt;i&gt;sep&lt;/i&gt;. If</div><div class='del'>- *  &lt;i&gt;sep&lt;/i&gt; is +nil+, the rest of the stream is returned</div><div class='del'>- *  as a single record.</div><div class='del'>- *  If the first argument is an integer, or an</div><div class='del'>- *  optional second argument is given, the returning string would not be</div><div class='del'>- *  longer than the given value in bytes. The stream must be opened for</div><div class='del'>- *  reading or an &lt;code&gt;IOError&lt;/code&gt; will be raised.</div><div class='add'>+ *  Reads and returns all remaining line from the stream;</div><div class='add'>+ *  does not modify &lt;tt&gt;$_&lt;/tt&gt;.</div><div class='add'>+ *  See {Line IO}[rdoc-ref:IO@Line+IO].</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.readlines[0]   #=&gt; "This is line one\n"</div><div class='add'>+ *  With no arguments given, returns lines</div><div class='add'>+ *  as determined by line separator &lt;tt&gt;$/&lt;/tt&gt;, or +nil+ if none:</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile", chomp: true)</div><div class='del'>- *     f.readlines[0]   #=&gt; "This is line one"</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.readlines</div><div class='add'>+ *    # =&gt; ["First line\n", "Second line\n", "\n", "Fourth line\n", "Fifth line\n"]</div><div class='add'>+ *    f.readlines # =&gt; []</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  With only string argument +sep+ given,</div><div class='add'>+ *  returns lines as determined by line separator +sep+,</div><div class='add'>+ *  or +nil+ if none;</div><div class='add'>+ *  see {Line Separator}[rdoc-ref:IO@Line+Separator]:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.readlines('li')</div><div class='add'>+ *    # =&gt; ["First li", "ne\nSecond li", "ne\n\nFourth li", "ne\nFifth li", "ne\n"]</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  The two special values for +sep+ are honored:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    # Get all into one string.</div><div class='add'>+ *    f.readlines(nil)</div><div class='add'>+ *    # =&gt; ["First line\nSecond line\n\nFourth line\nFifth line\n"]</div><div class='add'>+ *    # Get paragraphs (up to two line separators).</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    f.readlines('')</div><div class='add'>+ *    # =&gt; ["First line\nSecond line\n\n", "Fourth line\nFifth line\n"]</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  With only integer argument +limit+ given,</div><div class='add'>+ *  limits the number of bytes in each line;</div><div class='add'>+ *  see {Line Limit}[rdoc-ref:IO@Line+Limit]:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.readlines(8)</div><div class='add'>+ *    # =&gt; ["First li", "ne\n", "Second l", "ine\n", "\n", "Fourth l", "ine\n", "Fifth li", "ne\n"]</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +sep+ and +limit+ given,</div><div class='add'>+ *  combines the two behaviors:</div><div class='add'>+ *</div><div class='add'>+ *  - Returns lines as determined by line separator +sep+.</div><div class='add'>+ *  - But returns no more bytes in a line than are allowed by the limit.</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword argument +chomp+ specifies whether line separators</div><div class='add'>+ *  are to be omitted:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.readlines(chomp: true)</div><div class='add'>+ *    # =&gt; ["First line", "Second line", "", "Fourth line", "Fifth line"]</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- *  See IO.readlines for details about getline_args.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3727,43 +4495,123 @@ io_readlines(const struct getline_arg *arg, VALUE io)</div><div class='ctx'>     VALUE line, ary;</div><div class='ctx'> </div><div class='ctx'>     if (arg-&gt;limit == 0)</div><div class='del'>-	rb_raise(rb_eArgError, "invalid limit: 0 for readlines");</div><div class='add'>+        rb_raise(rb_eArgError, "invalid limit: 0 for readlines");</div><div class='ctx'>     ary = rb_ary_new();</div><div class='ctx'>     while (!NIL_P(line = rb_io_getline_1(arg-&gt;rs, arg-&gt;limit, arg-&gt;chomp, io))) {</div><div class='del'>-	rb_ary_push(ary, line);</div><div class='add'>+        rb_ary_push(ary, line);</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.each(sep=$/ [, getline_args])          {|line| block } -&gt; ios</div><div class='del'>- *     ios.each(limit [, getline_args])           {|line| block } -&gt; ios</div><div class='del'>- *     ios.each(sep, limit [, getline_args])      {|line| block } -&gt; ios</div><div class='del'>- *     ios.each(...)                             -&gt; an_enumerator</div><div class='add'>+ *    each_line(sep = $/, chomp: false) {|line| ... }   -&gt; self</div><div class='add'>+ *    each_line(limit, chomp: false) {|line| ... }      -&gt; self</div><div class='add'>+ *    each_line(sep, limit, chomp: false) {|line| ... } -&gt; self</div><div class='add'>+ *    each_line                                   -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *     ios.each_line(sep=$/ [, getline_args])     {|line| block } -&gt; ios</div><div class='del'>- *     ios.each_line(limit [, getline_args])      {|line| block } -&gt; ios</div><div class='del'>- *     ios.each_line(sep, limit [, getline_args]) {|line| block } -&gt; ios</div><div class='del'>- *     ios.each_line(...)                        -&gt; an_enumerator</div><div class='add'>+ *  Calls the block with each remaining line read from the stream;</div><div class='add'>+ *  returns +self+.</div><div class='add'>+ *  Does nothing if already at end-of-stream;</div><div class='add'>+ *  See {Line IO}[rdoc-ref:IO@Line+IO].</div><div class='ctx'>  *</div><div class='del'>- *  Executes the block for every line in &lt;em&gt;ios&lt;/em&gt;, where lines are</div><div class='del'>- *  separated by &lt;i&gt;sep&lt;/i&gt;. &lt;em&gt;ios&lt;/em&gt; must be opened for</div><div class='del'>- *  reading or an &lt;code&gt;IOError&lt;/code&gt; will be raised.</div><div class='add'>+ *  With no arguments given, reads lines</div><div class='add'>+ *  as determined by line separator &lt;tt&gt;$/&lt;/tt&gt;:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.each_line {|line| p line }</div><div class='add'>+ *    f.each_line {|line| fail 'Cannot happen' }</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.each {|line| puts "#{f.lineno}: #{line}" }</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *    "First line\n"</div><div class='add'>+ *    "Second line\n"</div><div class='add'>+ *    "\n"</div><div class='add'>+ *    "Fourth line\n"</div><div class='add'>+ *    "Fifth line\n"</div><div class='ctx'>  *</div><div class='del'>- *     1: This is line one</div><div class='del'>- *     2: This is line two</div><div class='del'>- *     3: This is line three</div><div class='del'>- *     4: And so on...</div><div class='add'>+ *  With only string argument +sep+ given,</div><div class='add'>+ *  reads lines as determined by line separator +sep+;</div><div class='add'>+ *  see {Line Separator}[rdoc-ref:IO@Line+Separator]:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.each_line('li') {|line| p line }</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "First li"</div><div class='add'>+ *    "ne\nSecond li"</div><div class='add'>+ *    "ne\n\nFourth li"</div><div class='add'>+ *    "ne\nFifth li"</div><div class='add'>+ *    "ne\n"</div><div class='add'>+ *</div><div class='add'>+ *  The two special values for +sep+ are honored:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    # Get all into one string.</div><div class='add'>+ *    f.each_line(nil) {|line| p line }</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "First line\nSecond line\n\nFourth line\nFifth line\n"</div><div class='add'>+ *</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    # Get paragraphs (up to two line separators).</div><div class='add'>+ *    f.each_line('') {|line| p line }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "First line\nSecond line\n\n"</div><div class='add'>+ *    "Fourth line\nFifth line\n"</div><div class='add'>+ *</div><div class='add'>+ *  With only integer argument +limit+ given,</div><div class='add'>+ *  limits the number of bytes in each line;</div><div class='add'>+ *  see {Line Limit}[rdoc-ref:IO@Line+Limit]:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.each_line(8) {|line| p line }</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "First li"</div><div class='add'>+ *    "ne\n"</div><div class='add'>+ *    "Second l"</div><div class='add'>+ *    "ine\n"</div><div class='add'>+ *    "\n"</div><div class='add'>+ *    "Fourth l"</div><div class='add'>+ *    "ine\n"</div><div class='add'>+ *    "Fifth li"</div><div class='add'>+ *    "ne\n"</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +sep+ and +limit+ given,</div><div class='add'>+ *  combines the two behaviors:</div><div class='add'>+ *</div><div class='add'>+ *  - Calls with the next line as determined by line separator +sep+.</div><div class='add'>+ *  - But returns no more bytes than are allowed by the limit.</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword argument +chomp+ specifies whether line separators</div><div class='add'>+ *  are to be omitted:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.each_line(chomp: true) {|line| p line }</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "First line"</div><div class='add'>+ *    "Second line"</div><div class='add'>+ *    ""</div><div class='add'>+ *    "Fourth line"</div><div class='add'>+ *    "Fifth line"</div><div class='add'>+ *</div><div class='add'>+ *  Returns an Enumerator if no block is given.</div><div class='add'>+ *</div><div class='add'>+ *  IO#each is an alias for IO#each_line.</div><div class='ctx'>  *</div><div class='del'>- *  See IO.readlines for details about getline_args.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3775,41 +4623,31 @@ rb_io_each_line(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     RETURN_ENUMERATOR(io, argc, argv);</div><div class='ctx'>     prepare_getline_args(argc, argv, &amp;args, io);</div><div class='ctx'>     if (args.limit == 0)</div><div class='del'>-	rb_raise(rb_eArgError, "invalid limit: 0 for each_line");</div><div class='add'>+        rb_raise(rb_eArgError, "invalid limit: 0 for each_line");</div><div class='ctx'>     while (!NIL_P(str = rb_io_getline_1(args.rs, args.limit, args.chomp, io))) {</div><div class='del'>-	rb_yield(str);</div><div class='add'>+        rb_yield(str);</div><div class='ctx'>     }</div><div class='ctx'>     return io;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_line&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_io_lines(int argc, VALUE *argv, VALUE io)</div><div class='del'>-{</div><div class='del'>-    rb_warn("IO#lines is deprecated; use #each_line instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(io, ID2SYM(rb_intern("each_line")), argc, argv);</div><div class='del'>-    return rb_io_each_line(argc, argv, io);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.each_byte {|byte| block }  -&gt; ios</div><div class='del'>- *     ios.each_byte                  -&gt; an_enumerator</div><div class='add'>+ *    each_byte {|byte| ... } -&gt; self</div><div class='add'>+ *    each_byte               -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Calls the given block once for each byte (0..255) in &lt;em&gt;ios&lt;/em&gt;,</div><div class='del'>- *  passing the byte as an argument. The stream must be opened for</div><div class='del'>- *  reading or an &lt;code&gt;IOError&lt;/code&gt; will be raised.</div><div class='add'>+ *  Calls the given block with each byte (0..255) in the stream; returns +self+.</div><div class='add'>+ *  See {Byte IO}[rdoc-ref:IO@Byte+IO].</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *    f = File.new('t.rus')</div><div class='add'>+ *    a = []</div><div class='add'>+ *    f.each_byte {|b| a &lt;&lt; b }</div><div class='add'>+ *    a # =&gt; [209, 130, 208, 181, 209, 129, 209, 130]</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Returns an Enumerator if no block is given.</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#each_char, IO#each_codepoint.</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     checksum = 0</div><div class='del'>- *     f.each_byte {|x| checksum ^= x }   #=&gt; #&lt;File:testfile&gt;</div><div class='del'>- *     checksum                           #=&gt; 12</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3821,31 +4659,18 @@ rb_io_each_byte(VALUE io)</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'> </div><div class='ctx'>     do {</div><div class='del'>-	while (fptr-&gt;rbuf.len &gt; 0) {</div><div class='del'>-	    char *p = fptr-&gt;rbuf.ptr + fptr-&gt;rbuf.off++;</div><div class='del'>-	    fptr-&gt;rbuf.len--;</div><div class='del'>-	    rb_yield(INT2FIX(*p &amp; 0xff));</div><div class='del'>-	    errno = 0;</div><div class='del'>-	}</div><div class='del'>-	rb_io_check_byte_readable(fptr);</div><div class='del'>-	READ_CHECK(fptr);</div><div class='add'>+        while (fptr-&gt;rbuf.len &gt; 0) {</div><div class='add'>+            char *p = fptr-&gt;rbuf.ptr + fptr-&gt;rbuf.off++;</div><div class='add'>+            fptr-&gt;rbuf.len--;</div><div class='add'>+            rb_yield(INT2FIX(*p &amp; 0xff));</div><div class='add'>+            rb_io_check_byte_readable(fptr);</div><div class='add'>+            errno = 0;</div><div class='add'>+        }</div><div class='add'>+        READ_CHECK(fptr);</div><div class='ctx'>     } while (io_fillbuf(fptr) &gt;= 0);</div><div class='ctx'>     return io;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/*</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_byte&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_io_bytes(VALUE io)</div><div class='del'>-{</div><div class='del'>-    rb_warn("IO#bytes is deprecated; use #each_byte instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(io, ID2SYM(rb_intern("each_byte")), 0, 0);</div><div class='del'>-    return rb_io_each_byte(io);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> io_getc(rb_io_t *fptr, rb_encoding *enc)</div><div class='ctx'> {</div><div class='hunk'>@@ -3853,17 +4678,17 @@ io_getc(rb_io_t *fptr, rb_encoding *enc)</div><div class='ctx'>     VALUE str;</div><div class='ctx'> </div><div class='ctx'>     if (NEED_READCONV(fptr)) {</div><div class='del'>-	rb_encoding *read_enc = io_read_encoding(fptr);</div><div class='add'>+        rb_encoding *read_enc = io_read_encoding(fptr);</div><div class='ctx'> </div><div class='del'>-	str = Qnil;</div><div class='del'>-	SET_BINARY_MODE(fptr);</div><div class='add'>+        str = Qnil;</div><div class='add'>+        SET_BINARY_MODE(fptr);</div><div class='ctx'>         make_readconv(fptr, 0);</div><div class='ctx'> </div><div class='ctx'>         while (1) {</div><div class='ctx'>             if (fptr-&gt;cbuf.len) {</div><div class='del'>-		r = rb_enc_precise_mbclen(fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off,</div><div class='del'>-			fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off+fptr-&gt;cbuf.len,</div><div class='del'>-			read_enc);</div><div class='add'>+                r = rb_enc_precise_mbclen(fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off,</div><div class='add'>+                        fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off+fptr-&gt;cbuf.len,</div><div class='add'>+                        read_enc);</div><div class='ctx'>                 if (!MBCLEN_NEEDMORE_P(r))</div><div class='ctx'>                     break;</div><div class='ctx'>                 if (fptr-&gt;cbuf.len == fptr-&gt;cbuf.capa) {</div><div class='hunk'>@@ -3873,16 +4698,16 @@ io_getc(rb_io_t *fptr, rb_encoding *enc)</div><div class='ctx'> </div><div class='ctx'>             if (more_char(fptr) == MORE_CHAR_FINISHED) {</div><div class='ctx'>                 if (fptr-&gt;cbuf.len == 0) {</div><div class='del'>-		    clear_readconv(fptr);</div><div class='del'>-		    return Qnil;</div><div class='del'>-		}</div><div class='add'>+                    clear_readconv(fptr);</div><div class='add'>+                    return Qnil;</div><div class='add'>+                }</div><div class='ctx'>                 /* return an unit of an incomplete character just before EOF */</div><div class='del'>-		str = rb_enc_str_new(fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off, 1, read_enc);</div><div class='del'>-		fptr-&gt;cbuf.off += 1;</div><div class='del'>-		fptr-&gt;cbuf.len -= 1;</div><div class='add'>+                str = rb_enc_str_new(fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off, 1, read_enc);</div><div class='add'>+                fptr-&gt;cbuf.off += 1;</div><div class='add'>+                fptr-&gt;cbuf.len -= 1;</div><div class='ctx'>                 if (fptr-&gt;cbuf.len == 0) clear_readconv(fptr);</div><div class='del'>-		ENC_CODERANGE_SET(str, ENC_CODERANGE_BROKEN);</div><div class='del'>-		return str;</div><div class='add'>+                ENC_CODERANGE_SET(str, ENC_CODERANGE_BROKEN);</div><div class='add'>+                return str;</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='ctx'>         if (MBCLEN_INVALID_P(r)) {</div><div class='hunk'>@@ -3890,62 +4715,62 @@ io_getc(rb_io_t *fptr, rb_encoding *enc)</div><div class='ctx'>                               fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off+fptr-&gt;cbuf.len,</div><div class='ctx'>                               read_enc);</div><div class='ctx'>             io_shift_cbuf(fptr, r, &amp;str);</div><div class='del'>-	    cr = ENC_CODERANGE_BROKEN;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    io_shift_cbuf(fptr, MBCLEN_CHARFOUND_LEN(r), &amp;str);</div><div class='del'>-	    cr = ENC_CODERANGE_VALID;</div><div class='del'>-	    if (MBCLEN_CHARFOUND_LEN(r) == 1 &amp;&amp; rb_enc_asciicompat(read_enc) &amp;&amp;</div><div class='del'>-		ISASCII(RSTRING_PTR(str)[0])) {</div><div class='del'>-		cr = ENC_CODERANGE_7BIT;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	str = io_enc_str(str, fptr);</div><div class='del'>-	ENC_CODERANGE_SET(str, cr);</div><div class='del'>-	return str;</div><div class='add'>+            cr = ENC_CODERANGE_BROKEN;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            io_shift_cbuf(fptr, MBCLEN_CHARFOUND_LEN(r), &amp;str);</div><div class='add'>+            cr = ENC_CODERANGE_VALID;</div><div class='add'>+            if (MBCLEN_CHARFOUND_LEN(r) == 1 &amp;&amp; rb_enc_asciicompat(read_enc) &amp;&amp;</div><div class='add'>+                ISASCII(RSTRING_PTR(str)[0])) {</div><div class='add'>+                cr = ENC_CODERANGE_7BIT;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        str = io_enc_str(str, fptr);</div><div class='add'>+        ENC_CODERANGE_SET(str, cr);</div><div class='add'>+        return str;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     NEED_NEWLINE_DECORATOR_ON_READ_CHECK(fptr);</div><div class='ctx'>     if (io_fillbuf(fptr) &lt; 0) {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     if (rb_enc_asciicompat(enc) &amp;&amp; ISASCII(fptr-&gt;rbuf.ptr[fptr-&gt;rbuf.off])) {</div><div class='del'>-	str = rb_str_new(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, 1);</div><div class='del'>-	fptr-&gt;rbuf.off += 1;</div><div class='del'>-	fptr-&gt;rbuf.len -= 1;</div><div class='del'>-	cr = ENC_CODERANGE_7BIT;</div><div class='add'>+        str = rb_str_new(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, 1);</div><div class='add'>+        fptr-&gt;rbuf.off += 1;</div><div class='add'>+        fptr-&gt;rbuf.len -= 1;</div><div class='add'>+        cr = ENC_CODERANGE_7BIT;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	r = rb_enc_precise_mbclen(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off+fptr-&gt;rbuf.len, enc);</div><div class='del'>-	if (MBCLEN_CHARFOUND_P(r) &amp;&amp;</div><div class='del'>-	    (n = MBCLEN_CHARFOUND_LEN(r)) &lt;= fptr-&gt;rbuf.len) {</div><div class='del'>-	    str = rb_str_new(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, n);</div><div class='del'>-	    fptr-&gt;rbuf.off += n;</div><div class='del'>-	    fptr-&gt;rbuf.len -= n;</div><div class='del'>-	    cr = ENC_CODERANGE_VALID;</div><div class='del'>-	}</div><div class='del'>-	else if (MBCLEN_NEEDMORE_P(r)) {</div><div class='del'>-	    str = rb_str_new(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, fptr-&gt;rbuf.len);</div><div class='del'>-	    fptr-&gt;rbuf.len = 0;</div><div class='del'>-	  getc_needmore:</div><div class='del'>-	    if (io_fillbuf(fptr) != -1) {</div><div class='del'>-		rb_str_cat(str, fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, 1);</div><div class='del'>-		fptr-&gt;rbuf.off++;</div><div class='del'>-		fptr-&gt;rbuf.len--;</div><div class='del'>-		r = rb_enc_precise_mbclen(RSTRING_PTR(str), RSTRING_PTR(str)+RSTRING_LEN(str), enc);</div><div class='del'>-		if (MBCLEN_NEEDMORE_P(r)) {</div><div class='del'>-		    goto getc_needmore;</div><div class='del'>-		}</div><div class='del'>-		else if (MBCLEN_CHARFOUND_P(r)) {</div><div class='del'>-		    cr = ENC_CODERANGE_VALID;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    str = rb_str_new(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, 1);</div><div class='del'>-	    fptr-&gt;rbuf.off++;</div><div class='del'>-	    fptr-&gt;rbuf.len--;</div><div class='del'>-	}</div><div class='add'>+        r = rb_enc_precise_mbclen(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off+fptr-&gt;rbuf.len, enc);</div><div class='add'>+        if (MBCLEN_CHARFOUND_P(r) &amp;&amp;</div><div class='add'>+            (n = MBCLEN_CHARFOUND_LEN(r)) &lt;= fptr-&gt;rbuf.len) {</div><div class='add'>+            str = rb_str_new(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, n);</div><div class='add'>+            fptr-&gt;rbuf.off += n;</div><div class='add'>+            fptr-&gt;rbuf.len -= n;</div><div class='add'>+            cr = ENC_CODERANGE_VALID;</div><div class='add'>+        }</div><div class='add'>+        else if (MBCLEN_NEEDMORE_P(r)) {</div><div class='add'>+            str = rb_str_new(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, fptr-&gt;rbuf.len);</div><div class='add'>+            fptr-&gt;rbuf.len = 0;</div><div class='add'>+          getc_needmore:</div><div class='add'>+            if (io_fillbuf(fptr) != -1) {</div><div class='add'>+                rb_str_cat(str, fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, 1);</div><div class='add'>+                fptr-&gt;rbuf.off++;</div><div class='add'>+                fptr-&gt;rbuf.len--;</div><div class='add'>+                r = rb_enc_precise_mbclen(RSTRING_PTR(str), RSTRING_PTR(str)+RSTRING_LEN(str), enc);</div><div class='add'>+                if (MBCLEN_NEEDMORE_P(r)) {</div><div class='add'>+                    goto getc_needmore;</div><div class='add'>+                }</div><div class='add'>+                else if (MBCLEN_CHARFOUND_P(r)) {</div><div class='add'>+                    cr = ENC_CODERANGE_VALID;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            str = rb_str_new(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off, 1);</div><div class='add'>+            fptr-&gt;rbuf.off++;</div><div class='add'>+            fptr-&gt;rbuf.len--;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (!cr) cr = ENC_CODERANGE_BROKEN;</div><div class='ctx'>     str = io_enc_str(str, fptr);</div><div class='hunk'>@@ -3955,17 +4780,22 @@ io_getc(rb_io_t *fptr, rb_encoding *enc)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.each_char {|c| block }  -&gt; ios</div><div class='del'>- *     ios.each_char               -&gt; an_enumerator</div><div class='add'>+ *    each_char {|c| ... } -&gt; self</div><div class='add'>+ *    each_char            -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Calls the given block once for each character in &lt;em&gt;ios&lt;/em&gt;,</div><div class='del'>- *  passing the character as an argument. The stream must be opened for</div><div class='del'>- *  reading or an &lt;code&gt;IOError&lt;/code&gt; will be raised.</div><div class='add'>+ *  Calls the given block with each character in the stream; returns +self+.</div><div class='add'>+ *  See {Character IO}[rdoc-ref:IO@Character+IO].</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *    f = File.new('t.rus')</div><div class='add'>+ *    a = []</div><div class='add'>+ *    f.each_char {|c| a &lt;&lt; c.ord }</div><div class='add'>+ *    a # =&gt; [1090, 1077, 1089, 1090]</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Returns an Enumerator if no block is given.</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#each_byte, IO#each_codepoint.</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.each_char {|c| print c, ' ' }   #=&gt; #&lt;File:testfile&gt;</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -3988,31 +4818,21 @@ rb_io_each_char(VALUE io)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_char&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_io_chars(VALUE io)</div><div class='del'>-{</div><div class='del'>-    rb_warn("IO#chars is deprecated; use #each_char instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(io, ID2SYM(rb_intern("each_char")), 0, 0);</div><div class='del'>-    return rb_io_each_char(io);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.each_codepoint {|c| block }  -&gt; ios</div><div class='del'>- *     ios.codepoints     {|c| block }  -&gt; ios</div><div class='del'>- *     ios.each_codepoint               -&gt; an_enumerator</div><div class='del'>- *     ios.codepoints                   -&gt; an_enumerator</div><div class='add'>+ *    each_codepoint {|c| ... } -&gt; self</div><div class='add'>+ *    each_codepoint            -&gt; enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Passes the &lt;code&gt;Integer&lt;/code&gt; ordinal of each character in &lt;i&gt;ios&lt;/i&gt;,</div><div class='del'>- *  passing the codepoint as an argument. The stream must be opened for</div><div class='del'>- *  reading or an &lt;code&gt;IOError&lt;/code&gt; will be raised.</div><div class='add'>+ *  Calls the given block with each codepoint in the stream; returns +self+:</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *    f = File.new('t.rus')</div><div class='add'>+ *    a = []</div><div class='add'>+ *    f.each_codepoint {|c| a &lt;&lt; c }</div><div class='add'>+ *    a # =&gt; [1090, 1077, 1089, 1090]</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Returns an Enumerator if no block is given.</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#each_byte, IO#each_char.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -4030,115 +4850,113 @@ rb_io_each_codepoint(VALUE io)</div><div class='ctx'> </div><div class='ctx'>     READ_CHECK(fptr);</div><div class='ctx'>     if (NEED_READCONV(fptr)) {</div><div class='del'>-	SET_BINARY_MODE(fptr);</div><div class='del'>-	r = 1;		/* no invalid char yet */</div><div class='del'>-	for (;;) {</div><div class='del'>-	    make_readconv(fptr, 0);</div><div class='del'>-	    for (;;) {</div><div class='del'>-		if (fptr-&gt;cbuf.len) {</div><div class='del'>-		    if (fptr-&gt;encs.enc)</div><div class='del'>-			r = rb_enc_precise_mbclen(fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off,</div><div class='del'>-						  fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off+fptr-&gt;cbuf.len,</div><div class='del'>-						  fptr-&gt;encs.enc);</div><div class='del'>-		    else</div><div class='del'>-			r = ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1);</div><div class='del'>-		    if (!MBCLEN_NEEDMORE_P(r))</div><div class='del'>-			break;</div><div class='del'>-		    if (fptr-&gt;cbuf.len == fptr-&gt;cbuf.capa) {</div><div class='del'>-			rb_raise(rb_eIOError, "too long character");</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		if (more_char(fptr) == MORE_CHAR_FINISHED) {</div><div class='add'>+        SET_BINARY_MODE(fptr);</div><div class='add'>+        r = 1;		/* no invalid char yet */</div><div class='add'>+        for (;;) {</div><div class='add'>+            make_readconv(fptr, 0);</div><div class='add'>+            for (;;) {</div><div class='add'>+                if (fptr-&gt;cbuf.len) {</div><div class='add'>+                    if (fptr-&gt;encs.enc)</div><div class='add'>+                        r = rb_enc_precise_mbclen(fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off,</div><div class='add'>+                                                  fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off+fptr-&gt;cbuf.len,</div><div class='add'>+                                                  fptr-&gt;encs.enc);</div><div class='add'>+                    else</div><div class='add'>+                        r = ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1);</div><div class='add'>+                    if (!MBCLEN_NEEDMORE_P(r))</div><div class='add'>+                        break;</div><div class='add'>+                    if (fptr-&gt;cbuf.len == fptr-&gt;cbuf.capa) {</div><div class='add'>+                        rb_raise(rb_eIOError, "too long character");</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                if (more_char(fptr) == MORE_CHAR_FINISHED) {</div><div class='ctx'>                     clear_readconv(fptr);</div><div class='del'>-		    if (!MBCLEN_CHARFOUND_P(r)) {</div><div class='del'>-			enc = fptr-&gt;encs.enc;</div><div class='del'>-			goto invalid;</div><div class='del'>-		    }</div><div class='del'>-		    return io;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    if (MBCLEN_INVALID_P(r)) {</div><div class='del'>-		enc = fptr-&gt;encs.enc;</div><div class='del'>-		goto invalid;</div><div class='del'>-	    }</div><div class='del'>-	    n = MBCLEN_CHARFOUND_LEN(r);</div><div class='del'>-	    if (fptr-&gt;encs.enc) {</div><div class='del'>-		c = rb_enc_codepoint(fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off,</div><div class='del'>-				     fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off+fptr-&gt;cbuf.len,</div><div class='del'>-				     fptr-&gt;encs.enc);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		c = (unsigned char)fptr-&gt;cbuf.ptr[fptr-&gt;cbuf.off];</div><div class='del'>-	    }</div><div class='del'>-	    fptr-&gt;cbuf.off += n;</div><div class='del'>-	    fptr-&gt;cbuf.len -= n;</div><div class='del'>-	    rb_yield(UINT2NUM(c));</div><div class='del'>-	}</div><div class='add'>+                    if (!MBCLEN_CHARFOUND_P(r)) {</div><div class='add'>+                        enc = fptr-&gt;encs.enc;</div><div class='add'>+                        goto invalid;</div><div class='add'>+                    }</div><div class='add'>+                    return io;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            if (MBCLEN_INVALID_P(r)) {</div><div class='add'>+                enc = fptr-&gt;encs.enc;</div><div class='add'>+                goto invalid;</div><div class='add'>+            }</div><div class='add'>+            n = MBCLEN_CHARFOUND_LEN(r);</div><div class='add'>+            if (fptr-&gt;encs.enc) {</div><div class='add'>+                c = rb_enc_codepoint(fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off,</div><div class='add'>+                                     fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off+fptr-&gt;cbuf.len,</div><div class='add'>+                                     fptr-&gt;encs.enc);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                c = (unsigned char)fptr-&gt;cbuf.ptr[fptr-&gt;cbuf.off];</div><div class='add'>+            }</div><div class='add'>+            fptr-&gt;cbuf.off += n;</div><div class='add'>+            fptr-&gt;cbuf.len -= n;</div><div class='add'>+            rb_yield(UINT2NUM(c));</div><div class='add'>+            rb_io_check_byte_readable(fptr);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     NEED_NEWLINE_DECORATOR_ON_READ_CHECK(fptr);</div><div class='ctx'>     enc = io_input_encoding(fptr);</div><div class='ctx'>     while (io_fillbuf(fptr) &gt;= 0) {</div><div class='del'>-	r = rb_enc_precise_mbclen(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off,</div><div class='del'>-				  fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off+fptr-&gt;rbuf.len, enc);</div><div class='del'>-	if (MBCLEN_CHARFOUND_P(r) &amp;&amp;</div><div class='del'>-	    (n = MBCLEN_CHARFOUND_LEN(r)) &lt;= fptr-&gt;rbuf.len) {</div><div class='del'>-	    c = rb_enc_codepoint(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off,</div><div class='del'>-				 fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off+fptr-&gt;rbuf.len, enc);</div><div class='del'>-	    fptr-&gt;rbuf.off += n;</div><div class='del'>-	    fptr-&gt;rbuf.len -= n;</div><div class='del'>-	    rb_yield(UINT2NUM(c));</div><div class='del'>-	}</div><div class='del'>-	else if (MBCLEN_INVALID_P(r)) {</div><div class='del'>-	  invalid:</div><div class='del'>-	    rb_raise(rb_eArgError, "invalid byte sequence in %s", rb_enc_name(enc));</div><div class='del'>-	}</div><div class='del'>-	else if (MBCLEN_NEEDMORE_P(r)) {</div><div class='del'>-	    char cbuf[8], *p = cbuf;</div><div class='del'>-	    int more = MBCLEN_NEEDMORE_LEN(r);</div><div class='del'>-	    if (more &gt; numberof(cbuf)) goto invalid;</div><div class='del'>-	    more += n = fptr-&gt;rbuf.len;</div><div class='del'>-	    if (more &gt; numberof(cbuf)) goto invalid;</div><div class='del'>-	    while ((n = (int)read_buffered_data(p, more, fptr)) &gt; 0 &amp;&amp;</div><div class='del'>-		   (p += n, (more -= n) &gt; 0)) {</div><div class='del'>-		if (io_fillbuf(fptr) &lt; 0) goto invalid;</div><div class='del'>-		if ((n = fptr-&gt;rbuf.len) &gt; more) n = more;</div><div class='del'>-	    }</div><div class='del'>-	    r = rb_enc_precise_mbclen(cbuf, p, enc);</div><div class='del'>-	    if (!MBCLEN_CHARFOUND_P(r)) goto invalid;</div><div class='del'>-	    c = rb_enc_codepoint(cbuf, p, enc);</div><div class='del'>-	    rb_yield(UINT2NUM(c));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='add'>+        r = rb_enc_precise_mbclen(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off,</div><div class='add'>+                                  fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off+fptr-&gt;rbuf.len, enc);</div><div class='add'>+        if (MBCLEN_CHARFOUND_P(r) &amp;&amp;</div><div class='add'>+            (n = MBCLEN_CHARFOUND_LEN(r)) &lt;= fptr-&gt;rbuf.len) {</div><div class='add'>+            c = rb_enc_codepoint(fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off,</div><div class='add'>+                                 fptr-&gt;rbuf.ptr+fptr-&gt;rbuf.off+fptr-&gt;rbuf.len, enc);</div><div class='add'>+            fptr-&gt;rbuf.off += n;</div><div class='add'>+            fptr-&gt;rbuf.len -= n;</div><div class='add'>+            rb_yield(UINT2NUM(c));</div><div class='add'>+        }</div><div class='add'>+        else if (MBCLEN_INVALID_P(r)) {</div><div class='add'>+            goto invalid;</div><div class='add'>+        }</div><div class='add'>+        else if (MBCLEN_NEEDMORE_P(r)) {</div><div class='add'>+            char cbuf[8], *p = cbuf;</div><div class='add'>+            int more = MBCLEN_NEEDMORE_LEN(r);</div><div class='add'>+            if (more &gt; numberof(cbuf)) goto invalid;</div><div class='add'>+            more += n = fptr-&gt;rbuf.len;</div><div class='add'>+            if (more &gt; numberof(cbuf)) goto invalid;</div><div class='add'>+            while ((n = (int)read_buffered_data(p, more, fptr)) &gt; 0 &amp;&amp;</div><div class='add'>+                   (p += n, (more -= n) &gt; 0)) {</div><div class='add'>+                if (io_fillbuf(fptr) &lt; 0) goto invalid;</div><div class='add'>+                if ((n = fptr-&gt;rbuf.len) &gt; more) n = more;</div><div class='add'>+            }</div><div class='add'>+            r = rb_enc_precise_mbclen(cbuf, p, enc);</div><div class='add'>+            if (!MBCLEN_CHARFOUND_P(r)) goto invalid;</div><div class='add'>+            c = rb_enc_codepoint(cbuf, p, enc);</div><div class='add'>+            rb_yield(UINT2NUM(c));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        rb_io_check_byte_readable(fptr);</div><div class='ctx'>     }</div><div class='ctx'>     return io;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_codepoint&lt;/code&gt;.</div><div class='del'>- */</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-rb_io_codepoints(VALUE io)</div><div class='del'>-{</div><div class='del'>-    rb_warn("IO#codepoints is deprecated; use #each_codepoint instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(io, ID2SYM(rb_intern("each_codepoint")), 0, 0);</div><div class='del'>-    return rb_io_each_codepoint(io);</div><div class='add'>+  invalid:</div><div class='add'>+    rb_raise(rb_eArgError, "invalid byte sequence in %s", rb_enc_name(enc));</div><div class='add'>+    UNREACHABLE_RETURN(Qundef);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.getc   -&gt; string or nil</div><div class='add'>+ *    getc -&gt; character or nil</div><div class='add'>+ *</div><div class='add'>+ *  Reads and returns the next 1-character string from the stream;</div><div class='add'>+ *  returns +nil+ if already at end-of-stream.</div><div class='add'>+ *  See {Character IO}[rdoc-ref:IO@Character+IO].</div><div class='ctx'>  *</div><div class='del'>- *  Reads a one-character string from &lt;em&gt;ios&lt;/em&gt;. Returns</div><div class='del'>- *  +nil+ if called at end of file.</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.getc     # =&gt; "F"</div><div class='add'>+ *    f.close</div><div class='add'>+ *    f = File.open('t.rus')</div><div class='add'>+ *    f.getc.ord # =&gt; 1090</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Related:  IO#readchar (may raise EOFError).</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.getc   #=&gt; "h"</div><div class='del'>- *     f.getc   #=&gt; "e"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4157,14 +4975,21 @@ rb_io_getc(VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.readchar   -&gt; string</div><div class='add'>+ *    readchar -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Reads and returns the next 1-character string from the stream;</div><div class='add'>+ *  raises EOFError if already at end-of-stream.</div><div class='add'>+ *  See {Character IO}[rdoc-ref:IO@Character+IO].</div><div class='ctx'>  *</div><div class='del'>- *  Reads a one-character string from &lt;em&gt;ios&lt;/em&gt;. Raises an</div><div class='del'>- *  &lt;code&gt;EOFError&lt;/code&gt; on end of file.</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.readchar     # =&gt; "F"</div><div class='add'>+ *    f.close</div><div class='add'>+ *    f = File.open('t.rus')</div><div class='add'>+ *    f.readchar.ord # =&gt; 1090</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Related:  IO#getc (will not raise EOFError).</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.readchar   #=&gt; "h"</div><div class='del'>- *     f.readchar   #=&gt; "e"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4173,21 +4998,27 @@ rb_io_readchar(VALUE io)</div><div class='ctx'>     VALUE c = rb_io_getc(io);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(c)) {</div><div class='del'>-	rb_eof_error();</div><div class='add'>+        rb_eof_error();</div><div class='ctx'>     }</div><div class='ctx'>     return c;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.getbyte   -&gt; integer or nil</div><div class='add'>+ *    getbyte -&gt; integer or nil</div><div class='ctx'>  *</div><div class='del'>- *  Gets the next 8-bit byte (0..255) from &lt;em&gt;ios&lt;/em&gt;. Returns</div><div class='del'>- *  +nil+ if called at end of file.</div><div class='add'>+ *  Reads and returns the next byte (in range 0..255) from the stream;</div><div class='add'>+ *  returns +nil+ if already at end-of-stream.</div><div class='add'>+ *  See {Byte IO}[rdoc-ref:IO@Byte+IO].</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.getbyte   #=&gt; 84</div><div class='del'>- *     f.getbyte   #=&gt; 104</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.getbyte # =&gt; 70</div><div class='add'>+ *    f.close</div><div class='add'>+ *    f = File.open('t.rus')</div><div class='add'>+ *    f.getbyte # =&gt; 209</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#readbyte (may raise EOFError).</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -4199,15 +5030,16 @@ rb_io_getbyte(VALUE io)</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     rb_io_check_byte_readable(fptr);</div><div class='ctx'>     READ_CHECK(fptr);</div><div class='del'>-    if (fptr-&gt;fd == 0 &amp;&amp; (fptr-&gt;mode &amp; FMODE_TTY) &amp;&amp; RB_TYPE_P(rb_stdout, T_FILE)) {</div><div class='add'>+    VALUE r_stdout = rb_ractor_stdout();</div><div class='add'>+    if (fptr-&gt;fd == 0 &amp;&amp; (fptr-&gt;mode &amp; FMODE_TTY) &amp;&amp; RB_TYPE_P(r_stdout, T_FILE)) {</div><div class='ctx'>         rb_io_t *ofp;</div><div class='del'>-        GetOpenFile(rb_stdout, ofp);</div><div class='add'>+        GetOpenFile(r_stdout, ofp);</div><div class='ctx'>         if (ofp-&gt;mode &amp; FMODE_TTY) {</div><div class='del'>-            rb_io_flush(rb_stdout);</div><div class='add'>+            rb_io_flush(r_stdout);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     if (io_fillbuf(fptr) &lt; 0) {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     fptr-&gt;rbuf.off++;</div><div class='ctx'>     fptr-&gt;rbuf.len--;</div><div class='hunk'>@@ -4217,10 +5049,21 @@ rb_io_getbyte(VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.readbyte   -&gt; integer</div><div class='add'>+ *    readbyte -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Reads and returns the next byte (in range 0..255) from the stream;</div><div class='add'>+ *  raises EOFError if already at end-of-stream.</div><div class='add'>+ *  See {Byte IO}[rdoc-ref:IO@Byte+IO].</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.readbyte # =&gt; 70</div><div class='add'>+ *    f.close</div><div class='add'>+ *    f = File.open('t.rus')</div><div class='add'>+ *    f.readbyte # =&gt; 209</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#getbyte (will not raise EOFError).</div><div class='ctx'>  *</div><div class='del'>- *  Reads a byte as with &lt;code&gt;IO#getbyte&lt;/code&gt;, but raises an</div><div class='del'>- *  &lt;code&gt;EOFError&lt;/code&gt; on end of file.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4229,26 +5072,47 @@ rb_io_readbyte(VALUE io)</div><div class='ctx'>     VALUE c = rb_io_getbyte(io);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(c)) {</div><div class='del'>-	rb_eof_error();</div><div class='add'>+        rb_eof_error();</div><div class='ctx'>     }</div><div class='ctx'>     return c;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.ungetbyte(string)   -&gt; nil</div><div class='del'>- *     ios.ungetbyte(integer)  -&gt; nil</div><div class='add'>+ *    ungetbyte(integer) -&gt; nil</div><div class='add'>+ *    ungetbyte(string)  -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Pushes back ("unshifts") the given data onto the stream's buffer,</div><div class='add'>+ *  placing the data so that it is next to be read; returns +nil+.</div><div class='add'>+ *  See {Byte IO}[rdoc-ref:IO@Byte+IO].</div><div class='add'>+ *</div><div class='add'>+ *  Note that:</div><div class='add'>+ *</div><div class='add'>+ *  - Calling the method has no effect with unbuffered reads (such as IO#sysread).</div><div class='add'>+ *  - Calling #rewind on the stream discards the pushed-back data.</div><div class='ctx'>  *</div><div class='del'>- *  Pushes back bytes (passed as a parameter) onto &lt;em&gt;ios&lt;/em&gt;,</div><div class='del'>- *  such that a subsequent buffered read will return it. Only one byte</div><div class='del'>- *  may be pushed back before a subsequent read operation (that is,</div><div class='del'>- *  you will be able to read only the last of several bytes that have been pushed</div><div class='del'>- *  back). Has no effect with unbuffered reads (such as &lt;code&gt;IO#sysread&lt;/code&gt;).</div><div class='add'>+ *  When argument +integer+ is given, uses only its low-order byte:</div><div class='add'>+ *</div><div class='add'>+ *    File.write('t.tmp', '012')</div><div class='add'>+ *    f = File.open('t.tmp')</div><div class='add'>+ *    f.ungetbyte(0x41)   # =&gt; nil</div><div class='add'>+ *    f.read              # =&gt; "A012"</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    f.ungetbyte(0x4243) # =&gt; nil</div><div class='add'>+ *    f.read              # =&gt; "C012"</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  When argument +string+ is given, uses all bytes:</div><div class='add'>+ *</div><div class='add'>+ *    File.write('t.tmp', '012')</div><div class='add'>+ *    f = File.open('t.tmp')</div><div class='add'>+ *    f.ungetbyte('A')    # =&gt; nil</div><div class='add'>+ *    f.read              # =&gt; "A012"</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    f.ungetbyte('BCDE') # =&gt; nil</div><div class='add'>+ *    f.read              # =&gt; "BCDE012"</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")   #=&gt; #&lt;File:testfile&gt;</div><div class='del'>- *     b = f.getbyte              #=&gt; 0x38</div><div class='del'>- *     f.ungetbyte(b)             #=&gt; nil</div><div class='del'>- *     f.getbyte                  #=&gt; 0x38</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -4258,23 +5122,17 @@ rb_io_ungetbyte(VALUE io, VALUE b)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     rb_io_check_byte_readable(fptr);</div><div class='del'>-    if (NIL_P(b)) return Qnil;</div><div class='del'>-    if (FIXNUM_P(b)) {</div><div class='del'>-        int i = FIX2INT(b);</div><div class='del'>-        if (0 &lt;= i &amp;&amp; i &lt;= UCHAR_MAX) {</div><div class='del'>-            unsigned char cc = i &amp; 0xFF;</div><div class='del'>-            b = rb_str_new((const char *)&amp;cc, 1);</div><div class='del'>-        }</div><div class='del'>-        else {</div><div class='del'>-            rb_raise(rb_eRangeError,</div><div class='del'>-                "integer %d too big to convert into `unsigned char'", i);</div><div class='del'>-        }</div><div class='del'>-    }</div><div class='del'>-    else if (RB_TYPE_P(b, T_BIGNUM)) {</div><div class='del'>-        rb_raise(rb_eRangeError, "bignum too big to convert into `unsigned char'");</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	SafeStringValue(b);</div><div class='add'>+    switch (TYPE(b)) {</div><div class='add'>+      case T_NIL:</div><div class='add'>+        return Qnil;</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+      case T_BIGNUM: ;</div><div class='add'>+        VALUE v = rb_int_modulo(b, INT2FIX(256));</div><div class='add'>+        unsigned char c = NUM2INT(v) &amp; 0xFF;</div><div class='add'>+        b = rb_str_new((const char *)&amp;c, 1);</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        SafeStringValue(b);</div><div class='ctx'>     }</div><div class='ctx'>     io_ungetbyte(b, fptr);</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -4282,18 +5140,43 @@ rb_io_ungetbyte(VALUE io, VALUE b)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.ungetc(string)   -&gt; nil</div><div class='add'>+ *    ungetc(integer) -&gt; nil</div><div class='add'>+ *    ungetc(string)  -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Pushes back one character (passed as a parameter) onto &lt;em&gt;ios&lt;/em&gt;,</div><div class='del'>- *  such that a subsequent buffered character read will return it. Only one character</div><div class='del'>- *  may be pushed back before a subsequent read operation (that is,</div><div class='del'>- *  you will be able to read only the last of several characters that have been pushed</div><div class='del'>- *  back). Has no effect with unbuffered reads (such as &lt;code&gt;IO#sysread&lt;/code&gt;).</div><div class='add'>+ *  Pushes back ("unshifts") the given data onto the stream's buffer,</div><div class='add'>+ *  placing the data so that it is next to be read; returns +nil+.</div><div class='add'>+ *  See {Character IO}[rdoc-ref:IO@Character+IO].</div><div class='add'>+ *</div><div class='add'>+ *  Note that:</div><div class='add'>+ *</div><div class='add'>+ *  - Calling the method has no effect with unbuffered reads (such as IO#sysread).</div><div class='add'>+ *  - Calling #rewind on the stream discards the pushed-back data.</div><div class='add'>+ *</div><div class='add'>+ *  When argument +integer+ is given, interprets the integer as a character:</div><div class='add'>+ *</div><div class='add'>+ *    File.write('t.tmp', '012')</div><div class='add'>+ *    f = File.open('t.tmp')</div><div class='add'>+ *    f.ungetc(0x41)     # =&gt; nil</div><div class='add'>+ *    f.read             # =&gt; "A012"</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    f.ungetc(0x0442)   # =&gt; nil</div><div class='add'>+ *    f.getc.ord         # =&gt; 1090</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  When argument +string+ is given, uses all characters:</div><div class='add'>+ *</div><div class='add'>+ *    File.write('t.tmp', '012')</div><div class='add'>+ *    f = File.open('t.tmp')</div><div class='add'>+ *    f.ungetc('A')      # =&gt; nil</div><div class='add'>+ *    f.read      # =&gt; "A012"</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    f.ungetc("\u0442\u0435\u0441\u0442") # =&gt; nil</div><div class='add'>+ *    f.getc.ord      # =&gt; 1090</div><div class='add'>+ *    f.getc.ord      # =&gt; 1077</div><div class='add'>+ *    f.getc.ord      # =&gt; 1089</div><div class='add'>+ *    f.getc.ord      # =&gt; 1090</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")   #=&gt; #&lt;File:testfile&gt;</div><div class='del'>- *     c = f.getc                 #=&gt; "8"</div><div class='del'>- *     f.ungetc(c)                #=&gt; nil</div><div class='del'>- *     f.getc                     #=&gt; "8"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -4304,22 +5187,21 @@ rb_io_ungetc(VALUE io, VALUE c)</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     rb_io_check_char_readable(fptr);</div><div class='del'>-    if (NIL_P(c)) return Qnil;</div><div class='ctx'>     if (FIXNUM_P(c)) {</div><div class='del'>-	c = rb_enc_uint_chr(FIX2UINT(c), io_read_encoding(fptr));</div><div class='add'>+        c = rb_enc_uint_chr(FIX2UINT(c), io_read_encoding(fptr));</div><div class='ctx'>     }</div><div class='del'>-    else if (RB_TYPE_P(c, T_BIGNUM)) {</div><div class='del'>-	c = rb_enc_uint_chr(NUM2UINT(c), io_read_encoding(fptr));</div><div class='add'>+    else if (RB_BIGNUM_TYPE_P(c)) {</div><div class='add'>+        c = rb_enc_uint_chr(NUM2UINT(c), io_read_encoding(fptr));</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	SafeStringValue(c);</div><div class='add'>+        SafeStringValue(c);</div><div class='ctx'>     }</div><div class='ctx'>     if (NEED_READCONV(fptr)) {</div><div class='del'>-	SET_BINARY_MODE(fptr);</div><div class='add'>+        SET_BINARY_MODE(fptr);</div><div class='ctx'>         len = RSTRING_LEN(c);</div><div class='ctx'> #if SIZEOF_LONG &gt; SIZEOF_INT</div><div class='del'>-	if (len &gt; INT_MAX)</div><div class='del'>-	    rb_raise(rb_eIOError, "ungetc failed");</div><div class='add'>+        if (len &gt; INT_MAX)</div><div class='add'>+            rb_raise(rb_eIOError, "ungetc failed");</div><div class='ctx'> #endif</div><div class='ctx'>         make_readconv(fptr, (int)len);</div><div class='ctx'>         if (fptr-&gt;cbuf.capa - fptr-&gt;cbuf.len &lt; len)</div><div class='hunk'>@@ -4335,7 +5217,7 @@ rb_io_ungetc(VALUE io, VALUE c)</div><div class='ctx'>         MEMMOVE(fptr-&gt;cbuf.ptr+fptr-&gt;cbuf.off, RSTRING_PTR(c), char, len);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	NEED_NEWLINE_DECORATOR_ON_READ_CHECK(fptr);</div><div class='add'>+        NEED_NEWLINE_DECORATOR_ON_READ_CHECK(fptr);</div><div class='ctx'>         io_ungetbyte(c, fptr);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -4343,14 +5225,18 @@ rb_io_ungetc(VALUE io, VALUE c)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.isatty   -&gt; true or false</div><div class='del'>- *     ios.tty?     -&gt; true or false</div><div class='add'>+ *    isatty -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if the stream is associated with a terminal device (tty),</div><div class='add'>+ *  +false+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;em&gt;ios&lt;/em&gt; is associated with a</div><div class='del'>- *  terminal device (tty), &lt;code&gt;false&lt;/code&gt; otherwise.</div><div class='add'>+ *    f = File.new('t.txt').isatty    #=&gt; false</div><div class='add'>+ *    f.close</div><div class='add'>+ *    f = File.new('/dev/tty').isatty #=&gt; true</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  IO#tty? is an alias for IO#isatty.</div><div class='ctx'>  *</div><div class='del'>- *     File.new("testfile").isatty   #=&gt; false</div><div class='del'>- *     File.new("/dev/tty").isatty   #=&gt; true</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4359,24 +5245,22 @@ rb_io_isatty(VALUE io)</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='del'>-    if (isatty(fptr-&gt;fd) == 0)</div><div class='del'>-	return Qfalse;</div><div class='del'>-    return Qtrue;</div><div class='add'>+    return RBOOL(isatty(fptr-&gt;fd) != 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #if defined(HAVE_FCNTL) &amp;&amp; defined(F_GETFD) &amp;&amp; defined(F_SETFD) &amp;&amp; defined(FD_CLOEXEC)</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.close_on_exec?   -&gt; true or false</div><div class='add'>+ *    close_on_exec? -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;em&gt;ios&lt;/em&gt; will be closed on exec.</div><div class='add'>+ *  Returns +true+ if the stream will be closed on exec, +false+ otherwise:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.close_on_exec? # =&gt; true</div><div class='add'>+ *    f.close_on_exec = false</div><div class='add'>+ *    f.close_on_exec? # =&gt; false</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- *     f = open("/dev/null")</div><div class='del'>- *     f.close_on_exec?                 #=&gt; false</div><div class='del'>- *     f.close_on_exec = true</div><div class='del'>- *     f.close_on_exec?                 #=&gt; true</div><div class='del'>- *     f.close_on_exec = false</div><div class='del'>- *     f.close_on_exec?                 #=&gt; false</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4409,7 +5293,7 @@ rb_io_close_on_exec_p(VALUE io)</div><div class='ctx'> #if defined(HAVE_FCNTL) &amp;&amp; defined(F_GETFD) &amp;&amp; defined(F_SETFD) &amp;&amp; defined(FD_CLOEXEC)</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.close_on_exec = bool    -&gt; true or false</div><div class='add'>+ *    self.close_on_exec = bool -&gt; true or false</div><div class='ctx'>  *</div><div class='ctx'>  *  Sets a close-on-exec flag.</div><div class='ctx'>  *</div><div class='hunk'>@@ -4464,7 +5348,6 @@ rb_io_set_close_on_exec(VALUE io, VALUE arg)</div><div class='ctx'> #define rb_io_set_close_on_exec rb_f_notimplement</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define FMODE_PREP (1&lt;&lt;16)</div><div class='ctx'> #define IS_PREP_STDIO(f) ((f)-&gt;mode &amp; FMODE_PREP)</div><div class='ctx'> #define PREP_STDIO_NAME(f) (RSTRING_PTR((f)-&gt;pathv))</div><div class='ctx'> </div><div class='hunk'>@@ -4476,7 +5359,6 @@ finish_writeconv(rb_io_t *fptr, int noalloc)</div><div class='ctx'> </div><div class='ctx'>     if (!fptr-&gt;wbuf.ptr) {</div><div class='ctx'>         unsigned char buf[1024];</div><div class='del'>-        long r;</div><div class='ctx'> </div><div class='ctx'>         res = econv_destination_buffer_full;</div><div class='ctx'>         while (res == econv_destination_buffer_full) {</div><div class='hunk'>@@ -4484,22 +5366,20 @@ finish_writeconv(rb_io_t *fptr, int noalloc)</div><div class='ctx'>             de = buf + sizeof(buf);</div><div class='ctx'>             res = rb_econv_convert(fptr-&gt;writeconv, NULL, NULL, &amp;dp, de, 0);</div><div class='ctx'>             while (dp-ds) {</div><div class='del'>-              retry:</div><div class='del'>-		if (fptr-&gt;write_lock &amp;&amp; rb_mutex_owned_p(fptr-&gt;write_lock))</div><div class='del'>-		    r = rb_write_internal2(fptr-&gt;fd, ds, dp-ds);</div><div class='del'>-		else</div><div class='del'>-		    r = rb_write_internal(fptr-&gt;fd, ds, dp-ds);</div><div class='del'>-                if (r == dp-ds)</div><div class='del'>-                    break;</div><div class='del'>-                if (0 &lt;= r) {</div><div class='del'>-                    ds += r;</div><div class='add'>+                size_t remaining = dp-ds;</div><div class='add'>+                long result = rb_io_write_memory(fptr, ds, remaining);</div><div class='add'>+</div><div class='add'>+                if (result &gt; 0) {</div><div class='add'>+                    ds += result;</div><div class='add'>+                    if ((size_t)result == remaining) break;</div><div class='ctx'>                 }</div><div class='del'>-                if (rb_io_wait_writable(fptr-&gt;fd)) {</div><div class='add'>+                else if (rb_io_maybe_wait_writable(errno, fptr-&gt;self, RUBY_IO_TIMEOUT_DEFAULT)) {</div><div class='ctx'>                     if (fptr-&gt;fd &lt; 0)</div><div class='ctx'>                         return noalloc ? Qtrue : rb_exc_new3(rb_eIOError, rb_str_new_cstr(closed_stream));</div><div class='del'>-                    goto retry;</div><div class='ctx'>                 }</div><div class='del'>-                return noalloc ? Qtrue : INT2NUM(errno);</div><div class='add'>+                else {</div><div class='add'>+                    return noalloc ? Qtrue : INT2NUM(errno);</div><div class='add'>+                }</div><div class='ctx'>             }</div><div class='ctx'>             if (res == econv_invalid_byte_sequence ||</div><div class='ctx'>                 res == econv_incomplete_input ||</div><div class='hunk'>@@ -4514,8 +5394,9 @@ finish_writeconv(rb_io_t *fptr, int noalloc)</div><div class='ctx'>     res = econv_destination_buffer_full;</div><div class='ctx'>     while (res == econv_destination_buffer_full) {</div><div class='ctx'>         if (fptr-&gt;wbuf.len == fptr-&gt;wbuf.capa) {</div><div class='del'>-            if (io_fflush(fptr) &lt; 0)</div><div class='add'>+            if (io_fflush(fptr) &lt; 0) {</div><div class='ctx'>                 return noalloc ? Qtrue : INT2NUM(errno);</div><div class='add'>+            }</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='ctx'>         ds = dp = (unsigned char *)fptr-&gt;wbuf.ptr + fptr-&gt;wbuf.off + fptr-&gt;wbuf.len;</div><div class='hunk'>@@ -4555,7 +5436,7 @@ static int</div><div class='ctx'> maygvl_close(int fd, int keepgvl)</div><div class='ctx'> {</div><div class='ctx'>     if (keepgvl)</div><div class='del'>-	return close(fd);</div><div class='add'>+        return close(fd);</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * close() may block for certain file types (NFS, SO_LINGER sockets,</div><div class='hunk'>@@ -4576,7 +5457,7 @@ static int</div><div class='ctx'> maygvl_fclose(FILE *file, int keepgvl)</div><div class='ctx'> {</div><div class='ctx'>     if (keepgvl)</div><div class='del'>-	return fclose(file);</div><div class='add'>+        return fclose(file);</div><div class='ctx'> </div><div class='ctx'>     return (int)(intptr_t)rb_thread_call_without_gvl(nogvl_fclose, file, RUBY_UBF_IO, 0);</div><div class='ctx'> }</div><div class='hunk'>@@ -4586,72 +5467,92 @@ static void clear_codeconv(rb_io_t *fptr);</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> fptr_finalize_flush(rb_io_t *fptr, int noraise, int keepgvl,</div><div class='del'>-                    struct list_head *busy)</div><div class='add'>+                    struct ccan_list_head *busy)</div><div class='ctx'> {</div><div class='del'>-    VALUE err = Qnil;</div><div class='add'>+    VALUE error = Qnil;</div><div class='ctx'>     int fd = fptr-&gt;fd;</div><div class='ctx'>     FILE *stdio_file = fptr-&gt;stdio_file;</div><div class='ctx'>     int mode = fptr-&gt;mode;</div><div class='ctx'> </div><div class='ctx'>     if (fptr-&gt;writeconv) {</div><div class='del'>-	if (fptr-&gt;write_lock &amp;&amp; !noraise) {</div><div class='add'>+        if (!NIL_P(fptr-&gt;write_lock) &amp;&amp; !noraise) {</div><div class='ctx'>             struct finish_writeconv_arg arg;</div><div class='ctx'>             arg.fptr = fptr;</div><div class='ctx'>             arg.noalloc = noraise;</div><div class='del'>-            err = rb_mutex_synchronize(fptr-&gt;write_lock, finish_writeconv_sync, (VALUE)&amp;arg);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    err = finish_writeconv(fptr, noraise);</div><div class='del'>-	}</div><div class='add'>+            error = rb_mutex_synchronize(fptr-&gt;write_lock, finish_writeconv_sync, (VALUE)&amp;arg);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            error = finish_writeconv(fptr, noraise);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (fptr-&gt;wbuf.len) {</div><div class='del'>-	if (noraise) {</div><div class='del'>-	    io_flush_buffer_sync(fptr);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    if (io_fflush(fptr) &lt; 0 &amp;&amp; NIL_P(err))</div><div class='del'>-		err = INT2NUM(errno);</div><div class='del'>-	}</div><div class='add'>+        if (noraise) {</div><div class='add'>+            io_flush_buffer_sync(fptr);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (io_fflush(fptr) &lt; 0 &amp;&amp; NIL_P(error)) {</div><div class='add'>+                error = INT2NUM(errno);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    int done = 0;</div><div class='add'>+</div><div class='add'>+    if (IS_PREP_STDIO(fptr) || fd &lt;= 2) {</div><div class='add'>+        // Need to keep FILE objects of stdin, stdout and stderr, so we are done:</div><div class='add'>+        done = 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     fptr-&gt;fd = -1;</div><div class='ctx'>     fptr-&gt;stdio_file = 0;</div><div class='ctx'>     fptr-&gt;mode &amp;= ~(FMODE_READABLE|FMODE_WRITABLE);</div><div class='ctx'> </div><div class='del'>-    /*</div><div class='del'>-     * ensure waiting_fd users do not hit EBADF, wait for them</div><div class='del'>-     * to exit before we call close().</div><div class='del'>-     */</div><div class='add'>+    // Ensure waiting_fd users do not hit EBADF.</div><div class='ctx'>     if (busy) {</div><div class='del'>-        do rb_thread_schedule(); while (!list_empty(busy));</div><div class='del'>-    }</div><div class='add'>+        // Wait for them to exit before we call close().</div><div class='add'>+        do rb_thread_schedule(); while (!ccan_list_empty(busy));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // Disable for now.</div><div class='add'>+    // if (!done &amp;&amp; fd &gt;= 0) {</div><div class='add'>+    //     VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+    //     if (scheduler != Qnil) {</div><div class='add'>+    //         VALUE result = rb_fiber_scheduler_io_close(scheduler, fptr-&gt;self);</div><div class='add'>+    //         if (!UNDEF_P(result)) done = 1;</div><div class='add'>+    //     }</div><div class='add'>+    // }</div><div class='add'>+</div><div class='add'>+    if (!done &amp;&amp; stdio_file) {</div><div class='add'>+        // stdio_file is deallocated anyway even if fclose failed.</div><div class='add'>+        if ((maygvl_fclose(stdio_file, noraise) &lt; 0) &amp;&amp; NIL_P(error)) {</div><div class='add'>+            if (!noraise) {</div><div class='add'>+                error = INT2NUM(errno);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-    if (IS_PREP_STDIO(fptr) || fd &lt;= 2) {</div><div class='del'>-	/* need to keep FILE objects of stdin, stdout and stderr */</div><div class='del'>-    }</div><div class='del'>-    else if (stdio_file) {</div><div class='del'>-	/* stdio_file is deallocated anyway</div><div class='del'>-         * even if fclose failed.  */</div><div class='del'>-	if ((maygvl_fclose(stdio_file, noraise) &lt; 0) &amp;&amp; NIL_P(err))</div><div class='del'>-	    if (!noraise) err = INT2NUM(errno);</div><div class='add'>+        done = 1;</div><div class='ctx'>     }</div><div class='del'>-    else if (0 &lt;= fd) {</div><div class='del'>-	/* fptr-&gt;fd may be closed even if close fails.</div><div class='del'>-         * POSIX doesn't specify it.</div><div class='del'>-         * We assumes it is closed.  */</div><div class='ctx'> </div><div class='del'>-	/**/</div><div class='del'>-	keepgvl |= !(mode &amp; FMODE_WRITABLE);</div><div class='del'>-	keepgvl |= noraise;</div><div class='del'>-	if ((maygvl_close(fd, keepgvl) &lt; 0) &amp;&amp; NIL_P(err))</div><div class='del'>-	    if (!noraise) err = INT2NUM(errno);</div><div class='add'>+    if (!done &amp;&amp; fd &gt;= 0) {</div><div class='add'>+        // fptr-&gt;fd may be closed even if close fails. POSIX doesn't specify it.</div><div class='add'>+        // We assumes it is closed.</div><div class='add'>+</div><div class='add'>+        keepgvl |= !(mode &amp; FMODE_WRITABLE);</div><div class='add'>+        keepgvl |= noraise;</div><div class='add'>+        if ((maygvl_close(fd, keepgvl) &lt; 0) &amp;&amp; NIL_P(error)) {</div><div class='add'>+            if (!noraise) {</div><div class='add'>+                error = INT2NUM(errno);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        done = 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (!NIL_P(err) &amp;&amp; !noraise) {</div><div class='del'>-	if (RB_INTEGER_TYPE_P(err))</div><div class='del'>-	    rb_syserr_fail_path(NUM2INT(err), fptr-&gt;pathv);</div><div class='del'>-	else</div><div class='del'>-	    rb_exc_raise(err);</div><div class='add'>+    if (!NIL_P(error) &amp;&amp; !noraise) {</div><div class='add'>+        if (RB_INTEGER_TYPE_P(error))</div><div class='add'>+            rb_syserr_fail_path(NUM2INT(error), fptr-&gt;pathv);</div><div class='add'>+        else</div><div class='add'>+            rb_exc_raise(error);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4668,10 +5569,10 @@ static void</div><div class='ctx'> rb_io_fptr_cleanup(rb_io_t *fptr, int noraise)</div><div class='ctx'> {</div><div class='ctx'>     if (fptr-&gt;finalize) {</div><div class='del'>-	(*fptr-&gt;finalize)(fptr, noraise);</div><div class='add'>+        (*fptr-&gt;finalize)(fptr, noraise);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	fptr_finalize(fptr, noraise);</div><div class='add'>+        fptr_finalize(fptr, noraise);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4720,7 +5621,7 @@ rb_io_fptr_finalize_internal(void *ptr)</div><div class='ctx'>     fptr-&gt;pathv = Qnil;</div><div class='ctx'>     if (0 &lt;= fptr-&gt;fd)</div><div class='ctx'>         rb_io_fptr_cleanup(fptr, TRUE);</div><div class='del'>-    fptr-&gt;write_lock = 0;</div><div class='add'>+    fptr-&gt;write_lock = Qnil;</div><div class='ctx'>     free_io_buffer(&amp;fptr-&gt;rbuf);</div><div class='ctx'>     free_io_buffer(&amp;fptr-&gt;wbuf);</div><div class='ctx'>     clear_codeconv(fptr);</div><div class='hunk'>@@ -4760,16 +5661,16 @@ rb_io_memsize(const rb_io_t *fptr)</div><div class='ctx'> # define KEEPGVL FALSE</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-int rb_notify_fd_close(int fd, struct list_head *);</div><div class='add'>+int rb_notify_fd_close(int fd, struct ccan_list_head *);</div><div class='ctx'> static rb_io_t *</div><div class='ctx'> io_close_fptr(VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     VALUE write_io;</div><div class='ctx'>     rb_io_t *write_fptr;</div><div class='del'>-    struct list_head busy;</div><div class='add'>+    struct ccan_list_head busy;</div><div class='ctx'> </div><div class='del'>-    list_head_init(&amp;busy);</div><div class='add'>+    ccan_list_head_init(&amp;busy);</div><div class='ctx'>     write_io = GetWriteIO(io);</div><div class='ctx'>     if (io != write_io) {</div><div class='ctx'>         write_fptr = RFILE(write_io)-&gt;fptr;</div><div class='hunk'>@@ -4795,9 +5696,9 @@ fptr_waitpid(rb_io_t *fptr, int nohang)</div><div class='ctx'> {</div><div class='ctx'>     int status;</div><div class='ctx'>     if (fptr-&gt;pid) {</div><div class='del'>-	rb_last_status_clear();</div><div class='del'>-	rb_waitpid(fptr-&gt;pid, &amp;status, nohang ? WNOHANG : 0);</div><div class='del'>-	fptr-&gt;pid = 0;</div><div class='add'>+        rb_last_status_clear();</div><div class='add'>+        rb_waitpid(fptr-&gt;pid, &amp;status, nohang ? WNOHANG : 0);</div><div class='add'>+        fptr-&gt;pid = 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -4811,18 +5712,34 @@ rb_io_close(VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.close   -&gt; nil</div><div class='add'>+ *    close -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Closes the stream for both reading and writing</div><div class='add'>+ *  if open for either or both; returns +nil+.</div><div class='add'>+ *  See {Open and Closed Streams}[rdoc-ref:IO@Open+and+Closed+Streams].</div><div class='add'>+ *</div><div class='add'>+ *  If the stream is open for writing, flushes any buffered writes</div><div class='add'>+ *  to the operating system before closing.</div><div class='add'>+ *</div><div class='add'>+ *  If the stream was opened by IO.popen, sets global variable &lt;tt&gt;$?&lt;/tt&gt;</div><div class='add'>+ *  (child exit status).</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    IO.popen('ruby', 'r+') do |pipe|</div><div class='add'>+ *      puts pipe.closed?</div><div class='add'>+ *      pipe.close</div><div class='add'>+ *      puts $?</div><div class='add'>+ *      puts pipe.closed?</div><div class='add'>+ *    end</div><div class='ctx'>  *</div><div class='del'>- *  Closes &lt;em&gt;ios&lt;/em&gt; and flushes any pending writes to the operating</div><div class='del'>- *  system. The stream is unavailable for any further data operations;</div><div class='del'>- *  an &lt;code&gt;IOError&lt;/code&gt; is raised if such an attempt is made. I/O</div><div class='del'>- *  streams are automatically closed when they are claimed by the</div><div class='del'>- *  garbage collector.</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *  If &lt;em&gt;ios&lt;/em&gt; is opened by &lt;code&gt;IO.popen&lt;/code&gt;,</div><div class='del'>- *  &lt;code&gt;close&lt;/code&gt; sets &lt;code&gt;$?&lt;/code&gt;.</div><div class='add'>+ *    false</div><div class='add'>+ *    pid 13760 exit 0</div><div class='add'>+ *    true</div><div class='ctx'>  *</div><div class='del'>- *  Calling this method on closed IO object is just ignored since Ruby 2.3.</div><div class='add'>+ *  Related: IO#close_read, IO#close_write, IO#closed?.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4849,9 +5766,9 @@ ignore_closed_stream(VALUE io, VALUE exc)</div><div class='ctx'>     enum {mesg_len = sizeof(closed_stream)-1};</div><div class='ctx'>     VALUE mesg = rb_attr_get(exc, idMesg);</div><div class='ctx'>     if (!RB_TYPE_P(mesg, T_STRING) ||</div><div class='del'>-	RSTRING_LEN(mesg) != mesg_len ||</div><div class='del'>-	memcmp(RSTRING_PTR(mesg), closed_stream, mesg_len)) {</div><div class='del'>-	rb_exc_raise(exc);</div><div class='add'>+        RSTRING_LEN(mesg) != mesg_len ||</div><div class='add'>+        memcmp(RSTRING_PTR(mesg), closed_stream, mesg_len)) {</div><div class='add'>+        rb_exc_raise(exc);</div><div class='ctx'>     }</div><div class='ctx'>     return io;</div><div class='ctx'> }</div><div class='hunk'>@@ -4860,28 +5777,35 @@ static VALUE</div><div class='ctx'> io_close(VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     VALUE closed = rb_check_funcall(io, rb_intern("closed?"), 0, 0);</div><div class='del'>-    if (closed != Qundef &amp;&amp; RTEST(closed)) return io;</div><div class='add'>+    if (!UNDEF_P(closed) &amp;&amp; RTEST(closed)) return io;</div><div class='ctx'>     rb_rescue2(io_call_close, io, ignore_closed_stream, io,</div><div class='del'>-	       rb_eIOError, (VALUE)0);</div><div class='add'>+               rb_eIOError, (VALUE)0);</div><div class='ctx'>     return io;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.closed?    -&gt; true or false</div><div class='add'>+ *    closed? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if the stream is closed for both reading and writing,</div><div class='add'>+ *  +false+ otherwise.</div><div class='add'>+ *  See {Open and Closed Streams}[rdoc-ref:IO@Open+and+Closed+Streams].</div><div class='add'>+ *</div><div class='add'>+ *    IO.popen('ruby', 'r+') do |pipe|</div><div class='add'>+ *      puts pipe.closed?</div><div class='add'>+ *      pipe.close_read</div><div class='add'>+ *      puts pipe.closed?</div><div class='add'>+ *      pipe.close_write</div><div class='add'>+ *      puts pipe.closed?</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;em&gt;ios&lt;/em&gt; is completely closed (for</div><div class='del'>- *  duplex streams, both reader and writer), &lt;code&gt;false&lt;/code&gt;</div><div class='del'>- *  otherwise.</div><div class='add'>+ *    false</div><div class='add'>+ *    false</div><div class='add'>+ *    true</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.close         #=&gt; nil</div><div class='del'>- *     f.closed?       #=&gt; true</div><div class='del'>- *     f = IO.popen("/bin/sh","r+")</div><div class='del'>- *     f.close_write   #=&gt; nil</div><div class='del'>- *     f.closed?       #=&gt; false</div><div class='del'>- *     f.close_read    #=&gt; nil</div><div class='del'>- *     f.closed?       #=&gt; true</div><div class='add'>+ *  Related: IO#close_read, IO#close_write, IO#close.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -4901,27 +5825,39 @@ rb_io_closed(VALUE io)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     fptr = rb_io_get_fptr(io);</div><div class='del'>-    return 0 &lt;= fptr-&gt;fd ? Qfalse : Qtrue;</div><div class='add'>+    return RBOOL(0 &gt; fptr-&gt;fd);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.close_read    -&gt; nil</div><div class='add'>+ *    close_read -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Closes the read end of a duplex I/O stream (i.e., one that contains</div><div class='del'>- *  both a read and a write stream, such as a pipe). Will raise an</div><div class='del'>- *  &lt;code&gt;IOError&lt;/code&gt; if the stream is not duplexed.</div><div class='add'>+ *  Closes the stream for reading if open for reading;</div><div class='add'>+ *  returns +nil+.</div><div class='add'>+ *  See {Open and Closed Streams}[rdoc-ref:IO@Open+and+Closed+Streams].</div><div class='ctx'>  *</div><div class='del'>- *     f = IO.popen("/bin/sh","r+")</div><div class='del'>- *     f.close_read</div><div class='del'>- *     f.readlines</div><div class='add'>+ *  If the stream was opened by IO.popen and is also closed for writing,</div><div class='add'>+ *  sets global variable &lt;tt&gt;$?&lt;/tt&gt; (child exit status).</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  Example:</div><div class='ctx'>  *</div><div class='del'>- *     prog.rb:3:in `readlines': not opened for reading (IOError)</div><div class='del'>- *     	from prog.rb:3</div><div class='add'>+ *    IO.popen('ruby', 'r+') do |pipe|</div><div class='add'>+ *      puts pipe.closed?</div><div class='add'>+ *      pipe.close_write</div><div class='add'>+ *      puts pipe.closed?</div><div class='add'>+ *      pipe.close_read</div><div class='add'>+ *      puts $?</div><div class='add'>+ *      puts pipe.closed?</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *  Calling this method on closed IO object is just ignored since Ruby 2.3.</div><div class='add'>+ *    false</div><div class='add'>+ *    false</div><div class='add'>+ *    pid 14748 exit 0</div><div class='add'>+ *    true</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#close, IO#close_write, IO#closed?.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -4946,44 +5882,55 @@ rb_io_close_read(VALUE io)</div><div class='ctx'> </div><div class='ctx'>     write_io = GetWriteIO(io);</div><div class='ctx'>     if (io != write_io) {</div><div class='del'>-	rb_io_t *wfptr;</div><div class='del'>-	wfptr = rb_io_get_fptr(rb_io_taint_check(write_io));</div><div class='del'>-	wfptr-&gt;pid = fptr-&gt;pid;</div><div class='del'>-	fptr-&gt;pid = 0;</div><div class='add'>+        rb_io_t *wfptr;</div><div class='add'>+        wfptr = rb_io_get_fptr(rb_io_taint_check(write_io));</div><div class='add'>+        wfptr-&gt;pid = fptr-&gt;pid;</div><div class='add'>+        fptr-&gt;pid = 0;</div><div class='ctx'>         RFILE(io)-&gt;fptr = wfptr;</div><div class='del'>-	/* bind to write_io temporarily to get rid of memory/fd leak */</div><div class='del'>-	fptr-&gt;tied_io_for_writing = 0;</div><div class='del'>-	RFILE(write_io)-&gt;fptr = fptr;</div><div class='del'>-	rb_io_fptr_cleanup(fptr, FALSE);</div><div class='del'>-	/* should not finalize fptr because another thread may be reading it */</div><div class='add'>+        /* bind to write_io temporarily to get rid of memory/fd leak */</div><div class='add'>+        fptr-&gt;tied_io_for_writing = 0;</div><div class='add'>+        RFILE(write_io)-&gt;fptr = fptr;</div><div class='add'>+        rb_io_fptr_cleanup(fptr, FALSE);</div><div class='add'>+        /* should not finalize fptr because another thread may be reading it */</div><div class='ctx'>         return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if ((fptr-&gt;mode &amp; (FMODE_DUPLEX|FMODE_WRITABLE)) == FMODE_WRITABLE) {</div><div class='del'>-	rb_raise(rb_eIOError, "closing non-duplex IO for reading");</div><div class='add'>+        rb_raise(rb_eIOError, "closing non-duplex IO for reading");</div><div class='ctx'>     }</div><div class='ctx'>     return rb_io_close(io);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.close_write   -&gt; nil</div><div class='add'>+ *    close_write -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Closes the write end of a duplex I/O stream (i.e., one that contains</div><div class='del'>- *  both a read and a write stream, such as a pipe). Will raise an</div><div class='del'>- *  &lt;code&gt;IOError&lt;/code&gt; if the stream is not duplexed.</div><div class='add'>+ *  Closes the stream for writing if open for writing;</div><div class='add'>+ *  returns +nil+.</div><div class='add'>+ *  See {Open and Closed Streams}[rdoc-ref:IO@Open+and+Closed+Streams].</div><div class='ctx'>  *</div><div class='del'>- *     f = IO.popen("/bin/sh","r+")</div><div class='del'>- *     f.close_write</div><div class='del'>- *     f.print "nowhere"</div><div class='add'>+ *  Flushes any buffered writes to the operating system before closing.</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  If the stream was opened by IO.popen and is also closed for reading,</div><div class='add'>+ *  sets global variable &lt;tt&gt;$?&lt;/tt&gt; (child exit status).</div><div class='ctx'>  *</div><div class='del'>- *     prog.rb:3:in `write': not opened for writing (IOError)</div><div class='del'>- *     	from prog.rb:3:in `print'</div><div class='del'>- *     	from prog.rb:3</div><div class='add'>+ *    IO.popen('ruby', 'r+') do |pipe|</div><div class='add'>+ *      puts pipe.closed?</div><div class='add'>+ *      pipe.close_read</div><div class='add'>+ *      puts pipe.closed?</div><div class='add'>+ *      pipe.close_write</div><div class='add'>+ *      puts $?</div><div class='add'>+ *      puts pipe.closed?</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *  Calling this method on closed IO object is just ignored since Ruby 2.3.</div><div class='add'>+ *    false</div><div class='add'>+ *    false</div><div class='add'>+ *    pid 15044 exit 0</div><div class='add'>+ *    true</div><div class='add'>+ *</div><div class='add'>+ *  Related: IO#close, IO#close_read, IO#closed?.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -5003,17 +5950,17 @@ rb_io_close_write(VALUE io)</div><div class='ctx'>             rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>         fptr-&gt;mode &amp;= ~FMODE_WRITABLE;</div><div class='ctx'>         if (!(fptr-&gt;mode &amp; FMODE_READABLE))</div><div class='del'>-	    return rb_io_close(write_io);</div><div class='add'>+            return rb_io_close(write_io);</div><div class='ctx'>         return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if ((fptr-&gt;mode &amp; (FMODE_DUPLEX|FMODE_READABLE)) == FMODE_READABLE) {</div><div class='del'>-	rb_raise(rb_eIOError, "closing non-duplex IO for writing");</div><div class='add'>+        rb_raise(rb_eIOError, "closing non-duplex IO for writing");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (io != write_io) {</div><div class='del'>-	fptr = rb_io_get_fptr(rb_io_taint_check(io));</div><div class='del'>-	fptr-&gt;tied_io_for_writing = 0;</div><div class='add'>+        fptr = rb_io_get_fptr(rb_io_taint_check(io));</div><div class='add'>+        fptr-&gt;tied_io_for_writing = 0;</div><div class='ctx'>     }</div><div class='ctx'>     rb_io_close(write_io);</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -5021,15 +5968,13 @@ rb_io_close_write(VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.sysseek(offset, whence=IO::SEEK_SET)   -&gt; integer</div><div class='add'>+ *    sysseek(offset, whence = IO::SEEK_SET) -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Behaves like IO#seek, except that it:</div><div class='ctx'>  *</div><div class='del'>- *  Seeks to a given &lt;i&gt;offset&lt;/i&gt; in the stream according to the value</div><div class='del'>- *  of &lt;i&gt;whence&lt;/i&gt; (see &lt;code&gt;IO#seek&lt;/code&gt; for values of</div><div class='del'>- *  &lt;i&gt;whence&lt;/i&gt;). Returns the new offset into the file.</div><div class='add'>+ *  - Uses low-level system functions.</div><div class='add'>+ *  - Returns the new position.</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.sysseek(-13, IO::SEEK_END)   #=&gt; 53</div><div class='del'>- *     f.sysread(10)                  #=&gt; "And so on."</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -5038,19 +5983,19 @@ rb_io_sysseek(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     VALUE offset, ptrname;</div><div class='ctx'>     int whence = SEEK_SET;</div><div class='ctx'>     rb_io_t *fptr;</div><div class='del'>-    off_t pos;</div><div class='add'>+    rb_off_t pos;</div><div class='ctx'> </div><div class='ctx'>     if (rb_scan_args(argc, argv, "11", &amp;offset, &amp;ptrname) == 2) {</div><div class='del'>-	whence = interpret_seek_whence(ptrname);</div><div class='add'>+        whence = interpret_seek_whence(ptrname);</div><div class='ctx'>     }</div><div class='ctx'>     pos = NUM2OFFT(offset);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     if ((fptr-&gt;mode &amp; FMODE_READABLE) &amp;&amp;</div><div class='ctx'>         (READ_DATA_BUFFERED(fptr) || READ_CHAR_PENDING(fptr))) {</div><div class='del'>-	rb_raise(rb_eIOError, "sysseek for buffered IO");</div><div class='add'>+        rb_raise(rb_eIOError, "sysseek for buffered IO");</div><div class='ctx'>     }</div><div class='ctx'>     if ((fptr-&gt;mode &amp; FMODE_WRITABLE) &amp;&amp; fptr-&gt;wbuf.len) {</div><div class='del'>-	rb_warn("sysseek for buffered IO");</div><div class='add'>+        rb_warn("sysseek for buffered IO");</div><div class='ctx'>     }</div><div class='ctx'>     errno = 0;</div><div class='ctx'>     pos = lseek(fptr-&gt;fd, pos, whence);</div><div class='hunk'>@@ -5061,15 +6006,20 @@ rb_io_sysseek(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.syswrite(string)   -&gt; integer</div><div class='add'>+ *    syswrite(object) -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  Writes the given string to &lt;em&gt;ios&lt;/em&gt; using a low-level write.</div><div class='del'>- *  Returns the number of bytes written. Do not mix with other methods</div><div class='del'>- *  that write to &lt;em&gt;ios&lt;/em&gt; or you may get unpredictable results.</div><div class='del'>- *  Raises &lt;code&gt;SystemCallError&lt;/code&gt; on error.</div><div class='add'>+ *  Writes the given +object+ to self, which must be opened for writing (see Modes);</div><div class='add'>+ *  returns the number bytes written.</div><div class='add'>+ *  If +object+ is not a string is converted via method to_s:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.tmp', 'w')</div><div class='add'>+ *    f.syswrite('foo') # =&gt; 3</div><div class='add'>+ *    f.syswrite(30)    # =&gt; 2</div><div class='add'>+ *    f.syswrite(:foo)  # =&gt; 3</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  This methods should not be used with other stream-writer methods.</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("out", "w")</div><div class='del'>- *     f.syswrite("ABCDEF")   #=&gt; 6</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -5081,19 +6031,19 @@ rb_io_syswrite(VALUE io, VALUE str)</div><div class='ctx'>     const char *ptr;</div><div class='ctx'> </div><div class='ctx'>     if (!RB_TYPE_P(str, T_STRING))</div><div class='del'>-	str = rb_obj_as_string(str);</div><div class='add'>+        str = rb_obj_as_string(str);</div><div class='ctx'> </div><div class='ctx'>     io = GetWriteIO(io);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     rb_io_check_writable(fptr);</div><div class='ctx'> </div><div class='ctx'>     if (fptr-&gt;wbuf.len) {</div><div class='del'>-	rb_warn("syswrite for buffered IO");</div><div class='add'>+        rb_warn("syswrite for buffered IO");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     tmp = rb_str_tmp_frozen_acquire(str);</div><div class='ctx'>     RSTRING_GETMEM(tmp, ptr, len);</div><div class='del'>-    n = rb_write_internal(fptr-&gt;fd, ptr, len);</div><div class='add'>+    n = rb_io_write_memory(fptr, ptr, len);</div><div class='ctx'>     if (n &lt; 0) rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     rb_str_tmp_frozen_release(str, tmp);</div><div class='ctx'> </div><div class='hunk'>@@ -5102,22 +6052,13 @@ rb_io_syswrite(VALUE io, VALUE str)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.sysread(maxlen[, outbuf])    -&gt; string</div><div class='add'>+ *    sysread(maxlen)             -&gt; string</div><div class='add'>+ *    sysread(maxlen, out_string) -&gt; string</div><div class='ctx'>  *</div><div class='del'>- *  Reads &lt;i&gt;maxlen&lt;/i&gt; bytes from &lt;em&gt;ios&lt;/em&gt; using a low-level</div><div class='del'>- *  read and returns them as a string.  Do not mix with other methods</div><div class='del'>- *  that read from &lt;em&gt;ios&lt;/em&gt; or you may get unpredictable results.</div><div class='del'>- *</div><div class='del'>- *  If the optional _outbuf_ argument is present,</div><div class='del'>- *  it must reference a String, which will receive the data.</div><div class='del'>- *  The _outbuf_ will contain only the received data after the method call</div><div class='del'>- *  even if it is not empty at the beginning.</div><div class='add'>+ *  Behaves like IO#readpartial, except that it uses low-level system functions.</div><div class='ctx'>  *</div><div class='del'>- *  Raises &lt;code&gt;SystemCallError&lt;/code&gt; on error and</div><div class='del'>- *  &lt;code&gt;EOFError&lt;/code&gt; at end of file.</div><div class='add'>+ *  This method should not be used with other stream-reader methods.</div><div class='ctx'>  *</div><div class='del'>- *     f = File.new("testfile")</div><div class='del'>- *     f.sysread(16)   #=&gt; "This is line one"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -5139,35 +6080,30 @@ rb_io_sysread(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     rb_io_check_byte_readable(fptr);</div><div class='ctx'> </div><div class='ctx'>     if (READ_DATA_BUFFERED(fptr)) {</div><div class='del'>-	rb_raise(rb_eIOError, "sysread for buffered IO");</div><div class='add'>+        rb_raise(rb_eIOError, "sysread for buffered IO");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    /*</div><div class='del'>-     * FIXME: removing rb_thread_wait_fd() here changes sysread semantics</div><div class='del'>-     * on non-blocking IOs.  However, it's still currently possible</div><div class='del'>-     * for sysread to raise Errno::EAGAIN if another thread read()s</div><div class='del'>-     * the IO after we return from rb_thread_wait_fd() but before</div><div class='del'>-     * we call read()</div><div class='del'>-     */</div><div class='del'>-    rb_thread_wait_fd(fptr-&gt;fd);</div><div class='del'>-</div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='ctx'> </div><div class='ctx'>     io_setstrbuf(&amp;str, ilen);</div><div class='add'>+    iis.th = rb_thread_current();</div><div class='add'>+    iis.fptr = fptr;</div><div class='add'>+    iis.nonblock = 0;</div><div class='ctx'>     iis.fd = fptr-&gt;fd;</div><div class='del'>-    iis.nonblock = 1; /* for historical reasons, maybe (see above) */</div><div class='ctx'>     iis.buf = RSTRING_PTR(str);</div><div class='ctx'>     iis.capa = ilen;</div><div class='del'>-    n = read_internal_locktmp(str, &amp;iis);</div><div class='add'>+    iis.timeout = NULL;</div><div class='add'>+    n = io_read_memory_locktmp(str, &amp;iis);</div><div class='ctx'> </div><div class='ctx'>     if (n &lt; 0) {</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     io_set_read_length(str, n, shrinkable);</div><div class='add'>+</div><div class='ctx'>     if (n == 0 &amp;&amp; ilen &gt; 0) {</div><div class='del'>-	rb_eof_error();</div><div class='add'>+        rb_eof_error();</div><div class='ctx'>     }</div><div class='del'>-    OBJ_TAINT(str);</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='hunk'>@@ -5177,7 +6113,7 @@ struct prdwr_internal_arg {</div><div class='ctx'>     int fd;</div><div class='ctx'>     void *buf;</div><div class='ctx'>     size_t count;</div><div class='del'>-    off_t offset;</div><div class='add'>+    rb_off_t offset;</div><div class='ctx'> };</div><div class='ctx'> #endif /* HAVE_PREAD || HAVE_PWRITE */</div><div class='ctx'> </div><div class='hunk'>@@ -5198,26 +6134,31 @@ pread_internal_call(VALUE arg)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.pread(maxlen, offset[, outbuf])    -&gt; string</div><div class='add'>+ *    pread(maxlen, offset)             -&gt; string</div><div class='add'>+ *    pread(maxlen, offset, out_string) -&gt; string</div><div class='ctx'>  *</div><div class='del'>- *  Reads &lt;i&gt;maxlen&lt;/i&gt; bytes from &lt;em&gt;ios&lt;/em&gt; using the pread system call</div><div class='del'>- *  and returns them as a string without modifying the underlying</div><div class='del'>- *  descriptor offset.  This is advantageous compared to combining IO#seek</div><div class='del'>- *  and IO#read in that it is atomic, allowing multiple threads/process to</div><div class='del'>- *  share the same IO object for reading the file at various locations.</div><div class='del'>- *  This bypasses any userspace buffering of the IO layer.</div><div class='del'>- *  If the optional &lt;i&gt;outbuf&lt;/i&gt; argument is present, it must</div><div class='del'>- *  reference a String, which will receive the data.</div><div class='del'>- *  Raises &lt;code&gt;SystemCallError&lt;/code&gt; on error, &lt;code&gt;EOFError&lt;/code&gt;</div><div class='del'>- *  at end of file and &lt;code&gt;NotImplementedError&lt;/code&gt; if platform does not</div><div class='del'>- *  implement the system call.</div><div class='add'>+ *  Behaves like IO#readpartial, except that it:</div><div class='add'>+ *</div><div class='add'>+ *  - Reads at the given +offset+ (in bytes).</div><div class='add'>+ *  - Disregards, and does not modify, the stream's position</div><div class='add'>+ *    (see {Position}[rdoc-ref:IO@Position]).</div><div class='add'>+ *  - Bypasses any user space buffering in the stream.</div><div class='add'>+ *</div><div class='add'>+ *  Because this method does not disturb the stream's state</div><div class='add'>+ *  (its position, in particular), +pread+ allows multiple threads and processes</div><div class='add'>+ *  to use the same \IO object for reading at various offsets.</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    f.read # =&gt; "First line\nSecond line\n\nFourth line\nFifth line\n"</div><div class='add'>+ *    f.pos  # =&gt; 52</div><div class='add'>+ *    # Read 12 bytes at offset 0.</div><div class='add'>+ *    f.pread(12, 0) # =&gt; "First line\n"</div><div class='add'>+ *    # Read 9 bytes at offset 8.</div><div class='add'>+ *    f.pread(9, 8)  # =&gt; "ne\nSecon"</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Not available on some platforms.</div><div class='ctx'>  *</div><div class='del'>- *     File.write("testfile", "This is line one\nThis is line two\n")</div><div class='del'>- *     File.open("testfile") do |f|</div><div class='del'>- *       p f.read           # =&gt; "This is line one\nThis is line two\n"</div><div class='del'>- *       p f.pread(12, 0)   # =&gt; "This is line"</div><div class='del'>- *       p f.pread(9, 8)    # =&gt; "line one\n"</div><div class='del'>- *     end</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_pread(int argc, VALUE *argv, VALUE io)</div><div class='hunk'>@@ -5246,13 +6187,12 @@ rb_io_pread(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     n = (ssize_t)rb_ensure(pread_internal_call, (VALUE)&amp;arg, rb_str_unlocktmp, str);</div><div class='ctx'> </div><div class='ctx'>     if (n &lt; 0) {</div><div class='del'>-	rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+        rb_sys_fail_path(fptr-&gt;pathv);</div><div class='ctx'>     }</div><div class='ctx'>     io_set_read_length(str, n, shrinkable);</div><div class='ctx'>     if (n == 0 &amp;&amp; arg.count &gt; 0) {</div><div class='del'>-	rb_eof_error();</div><div class='add'>+        rb_eof_error();</div><div class='ctx'>     }</div><div class='del'>-    OBJ_TAINT(str);</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='hunk'>@@ -5271,22 +6211,28 @@ internal_pwrite_func(void *ptr)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.pwrite(string, offset)    -&gt; integer</div><div class='add'>+ *    pwrite(object, offset) -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  Writes the given string to &lt;em&gt;ios&lt;/em&gt; at &lt;i&gt;offset&lt;/i&gt; using pwrite()</div><div class='del'>- *  system call.  This is advantageous to combining IO#seek and IO#write</div><div class='del'>- *  in that it is atomic, allowing multiple threads/process to share the</div><div class='del'>- *  same IO object for reading the file at various locations.</div><div class='del'>- *  This bypasses any userspace buffering of the IO layer.</div><div class='del'>- *  Returns the number of bytes written.</div><div class='del'>- *  Raises &lt;code&gt;SystemCallError&lt;/code&gt; on error and &lt;code&gt;NotImplementedError&lt;/code&gt;</div><div class='del'>- *  if platform does not implement the system call.</div><div class='add'>+ *  Behaves like IO#write, except that it:</div><div class='ctx'>  *</div><div class='del'>- *     File.open("out", "w") do |f|</div><div class='del'>- *       f.pwrite("ABCDEF", 3)   #=&gt; 6</div><div class='del'>- *     end</div><div class='add'>+ *  - Writes at the given +offset+ (in bytes).</div><div class='add'>+ *  - Disregards, and does not modify, the stream's position</div><div class='add'>+ *    (see {Position}[rdoc-ref:IO@Position]).</div><div class='add'>+ *  - Bypasses any user space buffering in the stream.</div><div class='add'>+ *</div><div class='add'>+ *  Because this method does not disturb the stream's state</div><div class='add'>+ *  (its position, in particular), +pwrite+ allows multiple threads and processes</div><div class='add'>+ *  to use the same \IO object for writing at various offsets.</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.tmp', 'w+')</div><div class='add'>+ *    # Write 6 bytes at offset 3.</div><div class='add'>+ *    f.pwrite('ABCDEF', 3) # =&gt; 6</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    f.read # =&gt; "\u0000\u0000\u0000ABCDEF"</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Not available on some platforms.</div><div class='ctx'>  *</div><div class='del'>- *     File.read("out")          #=&gt; "\u0000\u0000\u0000ABCDEF"</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_pwrite(VALUE io, VALUE str, VALUE offset)</div><div class='hunk'>@@ -5297,7 +6243,7 @@ rb_io_pwrite(VALUE io, VALUE str, VALUE offset)</div><div class='ctx'>     VALUE tmp;</div><div class='ctx'> </div><div class='ctx'>     if (!RB_TYPE_P(str, T_STRING))</div><div class='del'>-	str = rb_obj_as_string(str);</div><div class='add'>+        str = rb_obj_as_string(str);</div><div class='ctx'> </div><div class='ctx'>     arg.offset = NUM2OFFT(offset);</div><div class='ctx'> </div><div class='hunk'>@@ -5335,10 +6281,10 @@ rb_io_binmode(VALUE io)</div><div class='ctx'>     fptr-&gt;writeconv_pre_ecflags &amp;= ~ECONV_NEWLINE_DECORATOR_MASK;</div><div class='ctx'> #ifdef O_BINARY</div><div class='ctx'>     if (!fptr-&gt;readconv) {</div><div class='del'>-	SET_BINARY_MODE_WITH_SEEK_CUR(fptr);</div><div class='add'>+        SET_BINARY_MODE_WITH_SEEK_CUR(fptr);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	setmode(fptr-&gt;fd, O_BINARY);</div><div class='add'>+        setmode(fptr-&gt;fd, O_BINARY);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     return io;</div><div class='hunk'>@@ -5379,14 +6325,13 @@ rb_io_ascii8bit_binmode(VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.binmode    -&gt; ios</div><div class='add'>+ *    binmode -&gt; self</div><div class='ctx'>  *</div><div class='del'>- *  Puts &lt;em&gt;ios&lt;/em&gt; into binary mode.</div><div class='del'>- *  Once a stream is in binary mode, it cannot be reset to nonbinary mode.</div><div class='add'>+ *  Sets the stream's data mode as binary</div><div class='add'>+ *  (see {Data Mode}[rdoc-ref:File@Data+Mode]).</div><div class='add'>+ *</div><div class='add'>+ *  A stream's data mode may not be changed from binary to text.</div><div class='ctx'>  *</div><div class='del'>- *  - newline conversion disabled</div><div class='del'>- *  - encoding conversion disabled</div><div class='del'>- *  - content is treated as ASCII-8BIT</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -5404,39 +6349,41 @@ rb_io_binmode_m(VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.binmode?    -&gt; true or false</div><div class='add'>+ *    binmode? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns +true+ if the stream is on binary mode, +false+ otherwise.</div><div class='add'>+ *  See {Data Mode}[rdoc-ref:File@Data+Mode].</div><div class='ctx'>  *</div><div class='del'>- *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;em&gt;ios&lt;/em&gt; is binmode.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_binmode_p(VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='del'>-    return fptr-&gt;mode &amp; FMODE_BINMODE ? Qtrue : Qfalse;</div><div class='add'>+    return RBOOL(fptr-&gt;mode &amp; FMODE_BINMODE);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const char*</div><div class='ctx'> rb_io_fmode_modestr(int fmode)</div><div class='ctx'> {</div><div class='ctx'>     if (fmode &amp; FMODE_APPEND) {</div><div class='del'>-	if ((fmode &amp; FMODE_READWRITE) == FMODE_READWRITE) {</div><div class='del'>-	    return MODE_BTMODE("a+", "ab+", "at+");</div><div class='del'>-	}</div><div class='del'>-	return MODE_BTMODE("a", "ab", "at");</div><div class='add'>+        if ((fmode &amp; FMODE_READWRITE) == FMODE_READWRITE) {</div><div class='add'>+            return MODE_BTMODE("a+", "ab+", "at+");</div><div class='add'>+        }</div><div class='add'>+        return MODE_BTMODE("a", "ab", "at");</div><div class='ctx'>     }</div><div class='ctx'>     switch (fmode &amp; FMODE_READWRITE) {</div><div class='ctx'>       default:</div><div class='del'>-	rb_raise(rb_eArgError, "invalid access fmode 0x%x", fmode);</div><div class='add'>+        rb_raise(rb_eArgError, "invalid access fmode 0x%x", fmode);</div><div class='ctx'>       case FMODE_READABLE:</div><div class='del'>-	return MODE_BTMODE("r", "rb", "rt");</div><div class='add'>+        return MODE_BTMODE("r", "rb", "rt");</div><div class='ctx'>       case FMODE_WRITABLE:</div><div class='del'>-	return MODE_BTXMODE("w", "wb", "wt", "wx", "wbx", "wtx");</div><div class='add'>+        return MODE_BTXMODE("w", "wb", "wt", "wx", "wbx", "wtx");</div><div class='ctx'>       case FMODE_READWRITE:</div><div class='del'>-	if (fmode &amp; FMODE_CREATE) {</div><div class='add'>+        if (fmode &amp; FMODE_CREATE) {</div><div class='ctx'>             return MODE_BTXMODE("w+", "wb+", "wt+", "w+x", "wb+x", "wt+x");</div><div class='del'>-	}</div><div class='del'>-	return MODE_BTMODE("r+", "rb+", "rt+");</div><div class='add'>+        }</div><div class='add'>+        return MODE_BTMODE("r+", "rb+", "rt+");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5459,28 +6406,27 @@ rb_io_modestr_fmode(const char *modestr)</div><div class='ctx'> </div><div class='ctx'>     switch (*m++) {</div><div class='ctx'>       case 'r':</div><div class='del'>-	fmode |= FMODE_READABLE;</div><div class='del'>-	break;</div><div class='add'>+        fmode |= FMODE_READABLE;</div><div class='add'>+        break;</div><div class='ctx'>       case 'w':</div><div class='del'>-	fmode |= FMODE_WRITABLE | FMODE_TRUNC | FMODE_CREATE;</div><div class='del'>-	break;</div><div class='add'>+        fmode |= FMODE_WRITABLE | FMODE_TRUNC | FMODE_CREATE;</div><div class='add'>+        break;</div><div class='ctx'>       case 'a':</div><div class='del'>-	fmode |= FMODE_WRITABLE | FMODE_APPEND | FMODE_CREATE;</div><div class='del'>-	break;</div><div class='add'>+        fmode |= FMODE_WRITABLE | FMODE_APPEND | FMODE_CREATE;</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-      error:</div><div class='del'>-	rb_raise(rb_eArgError, "invalid access mode %s", modestr);</div><div class='add'>+        goto error;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (*m) {</div><div class='ctx'>         switch (*m++) {</div><div class='del'>-	  case 'b':</div><div class='add'>+          case 'b':</div><div class='ctx'>             fmode |= FMODE_BINMODE;</div><div class='ctx'>             break;</div><div class='del'>-	  case 't':</div><div class='add'>+          case 't':</div><div class='ctx'>             fmode |= FMODE_TEXTMODE;</div><div class='ctx'>             break;</div><div class='del'>-	  case '+':</div><div class='add'>+          case '+':</div><div class='ctx'>             fmode |= FMODE_READWRITE;</div><div class='ctx'>             break;</div><div class='ctx'>           case 'x':</div><div class='hunk'>@@ -5488,12 +6434,12 @@ rb_io_modestr_fmode(const char *modestr)</div><div class='ctx'>                 goto error;</div><div class='ctx'>             fmode |= FMODE_EXCL;</div><div class='ctx'>             break;</div><div class='del'>-	  default:</div><div class='add'>+          default:</div><div class='ctx'>             goto error;</div><div class='del'>-	  case ':':</div><div class='del'>-	    p = strchr(m, ':');</div><div class='del'>-	    if (io_encname_bom_p(m, p ? (long)(p - m) : (long)strlen(m)))</div><div class='del'>-		fmode |= FMODE_SETENC_BY_BOM;</div><div class='add'>+          case ':':</div><div class='add'>+            p = strchr(m, ':');</div><div class='add'>+            if (io_encname_bom_p(m, p ? (long)(p - m) : (long)strlen(m)))</div><div class='add'>+                fmode |= FMODE_SETENC_BY_BOM;</div><div class='ctx'>             goto finished;</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='hunk'>@@ -5503,6 +6449,10 @@ rb_io_modestr_fmode(const char *modestr)</div><div class='ctx'>         goto error;</div><div class='ctx'> </div><div class='ctx'>     return fmode;</div><div class='add'>+</div><div class='add'>+  error:</div><div class='add'>+    rb_raise(rb_eArgError, "invalid access mode %s", modestr);</div><div class='add'>+    UNREACHABLE_RETURN(Qundef);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='hunk'>@@ -5512,31 +6462,31 @@ rb_io_oflags_fmode(int oflags)</div><div class='ctx'> </div><div class='ctx'>     switch (oflags &amp; O_ACCMODE) {</div><div class='ctx'>       case O_RDONLY:</div><div class='del'>-	fmode = FMODE_READABLE;</div><div class='del'>-	break;</div><div class='add'>+        fmode = FMODE_READABLE;</div><div class='add'>+        break;</div><div class='ctx'>       case O_WRONLY:</div><div class='del'>-	fmode = FMODE_WRITABLE;</div><div class='del'>-	break;</div><div class='add'>+        fmode = FMODE_WRITABLE;</div><div class='add'>+        break;</div><div class='ctx'>       case O_RDWR:</div><div class='del'>-	fmode = FMODE_READWRITE;</div><div class='del'>-	break;</div><div class='add'>+        fmode = FMODE_READWRITE;</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (oflags &amp; O_APPEND) {</div><div class='del'>-	fmode |= FMODE_APPEND;</div><div class='add'>+        fmode |= FMODE_APPEND;</div><div class='ctx'>     }</div><div class='ctx'>     if (oflags &amp; O_TRUNC) {</div><div class='del'>-	fmode |= FMODE_TRUNC;</div><div class='add'>+        fmode |= FMODE_TRUNC;</div><div class='ctx'>     }</div><div class='ctx'>     if (oflags &amp; O_CREAT) {</div><div class='del'>-	fmode |= FMODE_CREATE;</div><div class='add'>+        fmode |= FMODE_CREATE;</div><div class='ctx'>     }</div><div class='ctx'>     if (oflags &amp; O_EXCL) {</div><div class='ctx'>         fmode |= FMODE_EXCL;</div><div class='ctx'>     }</div><div class='ctx'> #ifdef O_BINARY</div><div class='ctx'>     if (oflags &amp; O_BINARY) {</div><div class='del'>-	fmode |= FMODE_BINMODE;</div><div class='add'>+        fmode |= FMODE_BINMODE;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -5601,25 +6551,25 @@ rb_io_oflags_modestr(int oflags)</div><div class='ctx'>     }</div><div class='ctx'>     accmode = oflags &amp; (O_RDONLY|O_WRONLY|O_RDWR);</div><div class='ctx'>     if (oflags &amp; O_APPEND) {</div><div class='del'>-	if (accmode == O_WRONLY) {</div><div class='del'>-	    return MODE_BINARY("a", "ab");</div><div class='del'>-	}</div><div class='del'>-	if (accmode == O_RDWR) {</div><div class='del'>-	    return MODE_BINARY("a+", "ab+");</div><div class='del'>-	}</div><div class='add'>+        if (accmode == O_WRONLY) {</div><div class='add'>+            return MODE_BINARY("a", "ab");</div><div class='add'>+        }</div><div class='add'>+        if (accmode == O_RDWR) {</div><div class='add'>+            return MODE_BINARY("a+", "ab+");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     switch (accmode) {</div><div class='ctx'>       default:</div><div class='del'>-	rb_raise(rb_eArgError, "invalid access oflags 0x%x", oflags);</div><div class='add'>+        rb_raise(rb_eArgError, "invalid access oflags 0x%x", oflags);</div><div class='ctx'>       case O_RDONLY:</div><div class='del'>-	return MODE_BINARY("r", "rb");</div><div class='add'>+        return MODE_BINARY("r", "rb");</div><div class='ctx'>       case O_WRONLY:</div><div class='del'>-	return MODE_BINARY("w", "wb");</div><div class='add'>+        return MODE_BINARY("w", "wb");</div><div class='ctx'>       case O_RDWR:</div><div class='del'>-	if (oflags &amp; O_TRUNC) {</div><div class='del'>-	    return MODE_BINARY("w+", "wb+");</div><div class='del'>-	}</div><div class='del'>-	return MODE_BINARY("r+", "rb+");</div><div class='add'>+        if (oflags &amp; O_TRUNC) {</div><div class='add'>+            return MODE_BINARY("w+", "wb+");</div><div class='add'>+        }</div><div class='add'>+        return MODE_BINARY("r+", "rb+");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5634,25 +6584,25 @@ rb_io_ext_int_to_encs(rb_encoding *ext, rb_encoding *intern, rb_encoding **enc,</div><div class='ctx'>     int default_ext = 0;</div><div class='ctx'> </div><div class='ctx'>     if (ext == NULL) {</div><div class='del'>-	ext = rb_default_external_encoding();</div><div class='del'>-	default_ext = 1;</div><div class='add'>+        ext = rb_default_external_encoding();</div><div class='add'>+        default_ext = 1;</div><div class='ctx'>     }</div><div class='del'>-    if (ext == rb_ascii8bit_encoding()) {</div><div class='del'>-	/* If external is ASCII-8BIT, no transcoding */</div><div class='del'>-	intern = NULL;</div><div class='add'>+    if (rb_is_ascii8bit_enc(ext)) {</div><div class='add'>+        /* If external is ASCII-8BIT, no transcoding */</div><div class='add'>+        intern = NULL;</div><div class='ctx'>     }</div><div class='ctx'>     else if (intern == NULL) {</div><div class='del'>-	intern = rb_default_internal_encoding();</div><div class='add'>+        intern = rb_default_internal_encoding();</div><div class='ctx'>     }</div><div class='ctx'>     if (intern == NULL || intern == (rb_encoding *)Qnil ||</div><div class='del'>-	(!(fmode &amp; FMODE_SETENC_BY_BOM) &amp;&amp; (intern == ext))) {</div><div class='del'>-	/* No internal encoding =&gt; use external + no transcoding */</div><div class='del'>-	*enc = (default_ext &amp;&amp; intern != ext) ? NULL : ext;</div><div class='del'>-	*enc2 = NULL;</div><div class='add'>+        (!(fmode &amp; FMODE_SETENC_BY_BOM) &amp;&amp; (intern == ext))) {</div><div class='add'>+        /* No internal encoding =&gt; use external + no transcoding */</div><div class='add'>+        *enc = (default_ext &amp;&amp; intern != ext) ? NULL : ext;</div><div class='add'>+        *enc2 = NULL;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	*enc = intern;</div><div class='del'>-	*enc2 = ext;</div><div class='add'>+        *enc = intern;</div><div class='add'>+        *enc2 = ext;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -5664,7 +6614,7 @@ unsupported_encoding(const char *name, rb_encoding *enc)</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> parse_mode_enc(const char *estr, rb_encoding *estr_enc,</div><div class='del'>-	       rb_encoding **enc_p, rb_encoding **enc2_p, int *fmode_p)</div><div class='add'>+               rb_encoding **enc_p, rb_encoding **enc2_p, int *fmode_p)</div><div class='ctx'> {</div><div class='ctx'>     const char *p;</div><div class='ctx'>     char encname[ENCODING_MAXNAMELEN+1];</div><div class='hunk'>@@ -5678,53 +6628,53 @@ parse_mode_enc(const char *estr, rb_encoding *estr_enc,</div><div class='ctx'>     p = strrchr(estr, ':');</div><div class='ctx'>     len = p ? (p++ - estr) : (long)strlen(estr);</div><div class='ctx'>     if ((fmode &amp; FMODE_SETENC_BY_BOM) || io_encname_bom_p(estr, len)) {</div><div class='del'>-	estr += bom_prefix_len;</div><div class='del'>-	len -= bom_prefix_len;</div><div class='del'>-	if (!STRNCASECMP(estr, utf_prefix, utf_prefix_len)) {</div><div class='del'>-	    fmode |= FMODE_SETENC_BY_BOM;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_enc_warn(estr_enc, "BOM with non-UTF encoding %s is nonsense", estr);</div><div class='del'>-	    fmode &amp;= ~FMODE_SETENC_BY_BOM;</div><div class='del'>-	}</div><div class='add'>+        estr += bom_prefix_len;</div><div class='add'>+        len -= bom_prefix_len;</div><div class='add'>+        if (!STRNCASECMP(estr, utf_prefix, utf_prefix_len)) {</div><div class='add'>+            fmode |= FMODE_SETENC_BY_BOM;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_enc_warn(estr_enc, "BOM with non-UTF encoding %s is nonsense", estr);</div><div class='add'>+            fmode &amp;= ~FMODE_SETENC_BY_BOM;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (len == 0 || len &gt; ENCODING_MAXNAMELEN) {</div><div class='del'>-	idx = -1;</div><div class='add'>+        idx = -1;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (p) {</div><div class='del'>-	    memcpy(encname, estr, len);</div><div class='del'>-	    encname[len] = '\0';</div><div class='del'>-	    estr = encname;</div><div class='del'>-	}</div><div class='del'>-	idx = rb_enc_find_index(estr);</div><div class='add'>+        if (p) {</div><div class='add'>+            memcpy(encname, estr, len);</div><div class='add'>+            encname[len] = '\0';</div><div class='add'>+            estr = encname;</div><div class='add'>+        }</div><div class='add'>+        idx = rb_enc_find_index(estr);</div><div class='ctx'>     }</div><div class='ctx'>     if (fmode_p) *fmode_p = fmode;</div><div class='ctx'> </div><div class='ctx'>     if (idx &gt;= 0)</div><div class='del'>-	ext_enc = rb_enc_from_index(idx);</div><div class='add'>+        ext_enc = rb_enc_from_index(idx);</div><div class='ctx'>     else {</div><div class='del'>-	if (idx != -2)</div><div class='del'>-	    unsupported_encoding(estr, estr_enc);</div><div class='del'>-	ext_enc = NULL;</div><div class='add'>+        if (idx != -2)</div><div class='add'>+            unsupported_encoding(estr, estr_enc);</div><div class='add'>+        ext_enc = NULL;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     int_enc = NULL;</div><div class='ctx'>     if (p) {</div><div class='del'>-	if (*p == '-' &amp;&amp; *(p+1) == '\0') {</div><div class='del'>-	    /* Special case - "-" =&gt; no transcoding */</div><div class='del'>-	    int_enc = (rb_encoding *)Qnil;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    idx2 = rb_enc_find_index(p);</div><div class='del'>-	    if (idx2 &lt; 0)</div><div class='del'>-		unsupported_encoding(p, estr_enc);</div><div class='del'>-	    else if (!(fmode &amp; FMODE_SETENC_BY_BOM) &amp;&amp; (idx2 == idx)) {</div><div class='del'>-		int_enc = (rb_encoding *)Qnil;</div><div class='del'>-	    }</div><div class='del'>-	    else</div><div class='del'>-		int_enc = rb_enc_from_index(idx2);</div><div class='del'>-	}</div><div class='add'>+        if (*p == '-' &amp;&amp; *(p+1) == '\0') {</div><div class='add'>+            /* Special case - "-" =&gt; no transcoding */</div><div class='add'>+            int_enc = (rb_encoding *)Qnil;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            idx2 = rb_enc_find_index(p);</div><div class='add'>+            if (idx2 &lt; 0)</div><div class='add'>+                unsupported_encoding(p, estr_enc);</div><div class='add'>+            else if (!(fmode &amp; FMODE_SETENC_BY_BOM) &amp;&amp; (idx2 == idx)) {</div><div class='add'>+                int_enc = (rb_encoding *)Qnil;</div><div class='add'>+            }</div><div class='add'>+            else</div><div class='add'>+                int_enc = rb_enc_from_index(idx2);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_io_ext_int_to_encs(ext_enc, int_enc, enc_p, enc2_p, fmode);</div><div class='hunk'>@@ -5739,62 +6689,62 @@ rb_io_extract_encoding_option(VALUE opt, rb_encoding **enc_p, rb_encoding **enc2</div><div class='ctx'>     rb_encoding *intencoding = NULL;</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(opt)) {</div><div class='del'>-	VALUE v;</div><div class='del'>-	v = rb_hash_lookup2(opt, sym_encoding, Qnil);</div><div class='del'>-	if (v != Qnil) encoding = v;</div><div class='del'>-	v = rb_hash_lookup2(opt, sym_extenc, Qundef);</div><div class='del'>-	if (v != Qnil) extenc = v;</div><div class='del'>-	v = rb_hash_lookup2(opt, sym_intenc, Qundef);</div><div class='del'>-	if (v != Qundef) intenc = v;</div><div class='del'>-    }</div><div class='del'>-    if ((extenc != Qundef || intenc != Qundef) &amp;&amp; !NIL_P(encoding)) {</div><div class='del'>-	if (!NIL_P(ruby_verbose)) {</div><div class='del'>-	    int idx = rb_to_encoding_index(encoding);</div><div class='del'>-	    if (idx &gt;= 0) encoding = rb_enc_from_encoding(rb_enc_from_index(idx));</div><div class='del'>-	    rb_warn("Ignoring encoding parameter '%"PRIsVALUE"': %s_encoding is used",</div><div class='del'>-		    encoding, extenc == Qundef ? "internal" : "external");</div><div class='del'>-	}</div><div class='del'>-	encoding = Qnil;</div><div class='del'>-    }</div><div class='del'>-    if (extenc != Qundef &amp;&amp; !NIL_P(extenc)) {</div><div class='del'>-	extencoding = rb_to_encoding(extenc);</div><div class='del'>-    }</div><div class='del'>-    if (intenc != Qundef) {</div><div class='del'>-	if (NIL_P(intenc)) {</div><div class='del'>-	    /* internal_encoding: nil =&gt; no transcoding */</div><div class='del'>-	    intencoding = (rb_encoding *)Qnil;</div><div class='del'>-	}</div><div class='del'>-	else if (!NIL_P(tmp = rb_check_string_type(intenc))) {</div><div class='del'>-	    char *p = StringValueCStr(tmp);</div><div class='del'>-</div><div class='del'>-	    if (*p == '-' &amp;&amp; *(p+1) == '\0') {</div><div class='del'>-		/* Special case - "-" =&gt; no transcoding */</div><div class='del'>-		intencoding = (rb_encoding *)Qnil;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		intencoding = rb_to_encoding(intenc);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    intencoding = rb_to_encoding(intenc);</div><div class='del'>-	}</div><div class='del'>-	if (extencoding == intencoding) {</div><div class='del'>-	    intencoding = (rb_encoding *)Qnil;</div><div class='del'>-	}</div><div class='add'>+        VALUE v;</div><div class='add'>+        v = rb_hash_lookup2(opt, sym_encoding, Qnil);</div><div class='add'>+        if (v != Qnil) encoding = v;</div><div class='add'>+        v = rb_hash_lookup2(opt, sym_extenc, Qundef);</div><div class='add'>+        if (v != Qnil) extenc = v;</div><div class='add'>+        v = rb_hash_lookup2(opt, sym_intenc, Qundef);</div><div class='add'>+        if (!UNDEF_P(v)) intenc = v;</div><div class='add'>+    }</div><div class='add'>+    if ((!UNDEF_P(extenc) || !UNDEF_P(intenc)) &amp;&amp; !NIL_P(encoding)) {</div><div class='add'>+        if (!NIL_P(ruby_verbose)) {</div><div class='add'>+            int idx = rb_to_encoding_index(encoding);</div><div class='add'>+            if (idx &gt;= 0) encoding = rb_enc_from_encoding(rb_enc_from_index(idx));</div><div class='add'>+            rb_warn("Ignoring encoding parameter '%"PRIsVALUE"': %s_encoding is used",</div><div class='add'>+                    encoding, UNDEF_P(extenc) ? "internal" : "external");</div><div class='add'>+        }</div><div class='add'>+        encoding = Qnil;</div><div class='add'>+    }</div><div class='add'>+    if (!UNDEF_P(extenc) &amp;&amp; !NIL_P(extenc)) {</div><div class='add'>+        extencoding = rb_to_encoding(extenc);</div><div class='add'>+    }</div><div class='add'>+    if (!UNDEF_P(intenc)) {</div><div class='add'>+        if (NIL_P(intenc)) {</div><div class='add'>+            /* internal_encoding: nil =&gt; no transcoding */</div><div class='add'>+            intencoding = (rb_encoding *)Qnil;</div><div class='add'>+        }</div><div class='add'>+        else if (!NIL_P(tmp = rb_check_string_type(intenc))) {</div><div class='add'>+            char *p = StringValueCStr(tmp);</div><div class='add'>+</div><div class='add'>+            if (*p == '-' &amp;&amp; *(p+1) == '\0') {</div><div class='add'>+                /* Special case - "-" =&gt; no transcoding */</div><div class='add'>+                intencoding = (rb_encoding *)Qnil;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                intencoding = rb_to_encoding(intenc);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            intencoding = rb_to_encoding(intenc);</div><div class='add'>+        }</div><div class='add'>+        if (extencoding == intencoding) {</div><div class='add'>+            intencoding = (rb_encoding *)Qnil;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(encoding)) {</div><div class='del'>-	extracted = 1;</div><div class='del'>-	if (!NIL_P(tmp = rb_check_string_type(encoding))) {</div><div class='del'>-	    parse_mode_enc(StringValueCStr(tmp), rb_enc_get(tmp),</div><div class='del'>-			   enc_p, enc2_p, fmode_p);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_io_ext_int_to_encs(rb_to_encoding(encoding), NULL, enc_p, enc2_p, 0);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else if (extenc != Qundef || intenc != Qundef) {</div><div class='ctx'>         extracted = 1;</div><div class='del'>-	rb_io_ext_int_to_encs(extencoding, intencoding, enc_p, enc2_p, 0);</div><div class='add'>+        if (!NIL_P(tmp = rb_check_string_type(encoding))) {</div><div class='add'>+            parse_mode_enc(StringValueCStr(tmp), rb_enc_get(tmp),</div><div class='add'>+                           enc_p, enc2_p, fmode_p);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_io_ext_int_to_encs(rb_to_encoding(encoding), NULL, enc_p, enc2_p, 0);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else if (!UNDEF_P(extenc) || !UNDEF_P(intenc)) {</div><div class='add'>+        extracted = 1;</div><div class='add'>+        rb_io_ext_int_to_encs(extencoding, intencoding, enc_p, enc2_p, 0);</div><div class='ctx'>     }</div><div class='ctx'>     return extracted;</div><div class='ctx'> }</div><div class='hunk'>@@ -5813,17 +6763,17 @@ validate_enc_binmode(int *fmode_p, int ecflags, rb_encoding *enc, rb_encoding *e</div><div class='ctx'>         rb_raise(rb_eArgError, "ASCII incompatible encoding needs binmode");</div><div class='ctx'> </div><div class='ctx'>     if ((fmode &amp; FMODE_BINMODE) &amp;&amp; (ecflags &amp; ECONV_NEWLINE_DECORATOR_MASK)) {</div><div class='del'>-	rb_raise(rb_eArgError, "newline decorator with binary mode");</div><div class='add'>+        rb_raise(rb_eArgError, "newline decorator with binary mode");</div><div class='ctx'>     }</div><div class='ctx'>     if (!(fmode &amp; FMODE_BINMODE) &amp;&amp;</div><div class='del'>-	(DEFAULT_TEXTMODE || (ecflags &amp; ECONV_NEWLINE_DECORATOR_MASK))) {</div><div class='del'>-	fmode |= FMODE_TEXTMODE;</div><div class='del'>-	*fmode_p = fmode;</div><div class='add'>+        (DEFAULT_TEXTMODE || (ecflags &amp; ECONV_NEWLINE_DECORATOR_MASK))) {</div><div class='add'>+        fmode |= FMODE_TEXTMODE;</div><div class='add'>+        *fmode_p = fmode;</div><div class='ctx'>     }</div><div class='ctx'> #if !DEFAULT_TEXTMODE</div><div class='ctx'>     else if (!(ecflags &amp; ECONV_NEWLINE_DECORATOR_MASK)) {</div><div class='del'>-	fmode &amp;= ~FMODE_TEXTMODE;</div><div class='del'>-	*fmode_p = fmode;</div><div class='add'>+        fmode &amp;= ~FMODE_TEXTMODE;</div><div class='add'>+        *fmode_p = fmode;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='hunk'>@@ -5832,32 +6782,32 @@ static void</div><div class='ctx'> extract_binmode(VALUE opthash, int *fmode)</div><div class='ctx'> {</div><div class='ctx'>     if (!NIL_P(opthash)) {</div><div class='del'>-	VALUE v;</div><div class='del'>-	v = rb_hash_aref(opthash, sym_textmode);</div><div class='del'>-	if (!NIL_P(v)) {</div><div class='del'>-	    if (*fmode &amp; FMODE_TEXTMODE)</div><div class='del'>-		rb_raise(rb_eArgError, "textmode specified twice");</div><div class='del'>-	    if (*fmode &amp; FMODE_BINMODE)</div><div class='del'>-		rb_raise(rb_eArgError, "both textmode and binmode specified");</div><div class='del'>-	    if (RTEST(v))</div><div class='del'>-		*fmode |= FMODE_TEXTMODE;</div><div class='del'>-	}</div><div class='del'>-	v = rb_hash_aref(opthash, sym_binmode);</div><div class='del'>-	if (!NIL_P(v)) {</div><div class='del'>-	    if (*fmode &amp; FMODE_BINMODE)</div><div class='del'>-		rb_raise(rb_eArgError, "binmode specified twice");</div><div class='del'>-	    if (*fmode &amp; FMODE_TEXTMODE)</div><div class='del'>-		rb_raise(rb_eArgError, "both textmode and binmode specified");</div><div class='del'>-	    if (RTEST(v))</div><div class='del'>-		*fmode |= FMODE_BINMODE;</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if ((*fmode &amp; FMODE_BINMODE) &amp;&amp; (*fmode &amp; FMODE_TEXTMODE))</div><div class='del'>-	    rb_raise(rb_eArgError, "both textmode and binmode specified");</div><div class='add'>+        VALUE v;</div><div class='add'>+        v = rb_hash_aref(opthash, sym_textmode);</div><div class='add'>+        if (!NIL_P(v)) {</div><div class='add'>+            if (*fmode &amp; FMODE_TEXTMODE)</div><div class='add'>+                rb_raise(rb_eArgError, "textmode specified twice");</div><div class='add'>+            if (*fmode &amp; FMODE_BINMODE)</div><div class='add'>+                rb_raise(rb_eArgError, "both textmode and binmode specified");</div><div class='add'>+            if (RTEST(v))</div><div class='add'>+                *fmode |= FMODE_TEXTMODE;</div><div class='add'>+        }</div><div class='add'>+        v = rb_hash_aref(opthash, sym_binmode);</div><div class='add'>+        if (!NIL_P(v)) {</div><div class='add'>+            if (*fmode &amp; FMODE_BINMODE)</div><div class='add'>+                rb_raise(rb_eArgError, "binmode specified twice");</div><div class='add'>+            if (*fmode &amp; FMODE_TEXTMODE)</div><div class='add'>+                rb_raise(rb_eArgError, "both textmode and binmode specified");</div><div class='add'>+            if (RTEST(v))</div><div class='add'>+                *fmode |= FMODE_BINMODE;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if ((*fmode &amp; FMODE_BINMODE) &amp;&amp; (*fmode &amp; FMODE_TEXTMODE))</div><div class='add'>+            rb_raise(rb_eArgError, "both textmode and binmode specified");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='add'>+void</div><div class='ctx'> rb_io_extract_modeenc(VALUE *vmode_p, VALUE *vperm_p, VALUE opthash,</div><div class='ctx'>         int *oflags_p, int *fmode_p, convconfig_t *convconfig_p)</div><div class='ctx'> {</div><div class='hunk'>@@ -5896,78 +6846,90 @@ rb_io_extract_modeenc(VALUE *vmode_p, VALUE *vperm_p, VALUE opthash,</div><div class='ctx'>             has_enc = 1;</div><div class='ctx'>             parse_mode_enc(p+1, rb_enc_get(vmode), &amp;enc, &amp;enc2, &amp;fmode);</div><div class='ctx'>         }</div><div class='del'>-	else {</div><div class='del'>-	    rb_encoding *e;</div><div class='add'>+        else {</div><div class='add'>+            rb_encoding *e;</div><div class='ctx'> </div><div class='del'>-	    e = (fmode &amp; FMODE_BINMODE) ? rb_ascii8bit_encoding() : NULL;</div><div class='del'>-	    rb_io_ext_int_to_encs(e, NULL, &amp;enc, &amp;enc2, fmode);</div><div class='del'>-	}</div><div class='add'>+            e = (fmode &amp; FMODE_BINMODE) ? rb_ascii8bit_encoding() : NULL;</div><div class='add'>+            rb_io_ext_int_to_encs(e, NULL, &amp;enc, &amp;enc2, fmode);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(opthash)) {</div><div class='del'>-	ecflags = (fmode &amp; FMODE_READABLE) ?</div><div class='del'>-	    MODE_BTMODE(ECONV_DEFAULT_NEWLINE_DECORATOR,</div><div class='del'>-			0, ECONV_UNIVERSAL_NEWLINE_DECORATOR) : 0;</div><div class='add'>+        ecflags = (fmode &amp; FMODE_READABLE) ?</div><div class='add'>+            MODE_BTMODE(ECONV_DEFAULT_NEWLINE_DECORATOR,</div><div class='add'>+                        0, ECONV_UNIVERSAL_NEWLINE_DECORATOR) : 0;</div><div class='ctx'> #ifdef TEXTMODE_NEWLINE_DECORATOR_ON_WRITE</div><div class='del'>-	ecflags |= (fmode &amp; FMODE_WRITABLE) ?</div><div class='del'>-	    MODE_BTMODE(TEXTMODE_NEWLINE_DECORATOR_ON_WRITE,</div><div class='del'>-			0, TEXTMODE_NEWLINE_DECORATOR_ON_WRITE) : 0;</div><div class='add'>+        ecflags |= (fmode &amp; FMODE_WRITABLE) ?</div><div class='add'>+            MODE_BTMODE(TEXTMODE_NEWLINE_DECORATOR_ON_WRITE,</div><div class='add'>+                        0, TEXTMODE_NEWLINE_DECORATOR_ON_WRITE) : 0;</div><div class='ctx'> #endif</div><div class='del'>-	SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='add'>+        SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='ctx'>         ecopts = Qnil;</div><div class='add'>+        if (fmode &amp; FMODE_BINMODE) {</div><div class='add'>+#ifdef O_BINARY</div><div class='add'>+            oflags |= O_BINARY;</div><div class='add'>+#endif</div><div class='add'>+            if (!has_enc)</div><div class='add'>+                rb_io_ext_int_to_encs(rb_ascii8bit_encoding(), NULL, &amp;enc, &amp;enc2, fmode);</div><div class='add'>+        }</div><div class='add'>+#if DEFAULT_TEXTMODE</div><div class='add'>+        else if (NIL_P(vmode)) {</div><div class='add'>+            fmode |= DEFAULT_TEXTMODE;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE v;</div><div class='del'>-	if (!has_vmode) {</div><div class='del'>-	    v = rb_hash_aref(opthash, sym_mode);</div><div class='del'>-	    if (!NIL_P(v)) {</div><div class='del'>-		if (!NIL_P(vmode)) {</div><div class='del'>-		    rb_raise(rb_eArgError, "mode specified twice");</div><div class='del'>-		}</div><div class='del'>-		has_vmode = 1;</div><div class='del'>-		vmode = v;</div><div class='del'>-		goto vmode_handle;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	v = rb_hash_aref(opthash, sym_flags);</div><div class='del'>-	if (!NIL_P(v)) {</div><div class='del'>-	    v = rb_to_int(v);</div><div class='del'>-	    oflags |= NUM2INT(v);</div><div class='del'>-	    vmode = INT2NUM(oflags);</div><div class='del'>-	    fmode = rb_io_oflags_fmode(oflags);</div><div class='del'>-	}</div><div class='del'>-	extract_binmode(opthash, &amp;fmode);</div><div class='del'>-	if (fmode &amp; FMODE_BINMODE) {</div><div class='add'>+        VALUE v;</div><div class='add'>+        if (!has_vmode) {</div><div class='add'>+            v = rb_hash_aref(opthash, sym_mode);</div><div class='add'>+            if (!NIL_P(v)) {</div><div class='add'>+                if (!NIL_P(vmode)) {</div><div class='add'>+                    rb_raise(rb_eArgError, "mode specified twice");</div><div class='add'>+                }</div><div class='add'>+                has_vmode = 1;</div><div class='add'>+                vmode = v;</div><div class='add'>+                goto vmode_handle;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        v = rb_hash_aref(opthash, sym_flags);</div><div class='add'>+        if (!NIL_P(v)) {</div><div class='add'>+            v = rb_to_int(v);</div><div class='add'>+            oflags |= NUM2INT(v);</div><div class='add'>+            vmode = INT2NUM(oflags);</div><div class='add'>+            fmode = rb_io_oflags_fmode(oflags);</div><div class='add'>+        }</div><div class='add'>+        extract_binmode(opthash, &amp;fmode);</div><div class='add'>+        if (fmode &amp; FMODE_BINMODE) {</div><div class='ctx'> #ifdef O_BINARY</div><div class='ctx'>             oflags |= O_BINARY;</div><div class='ctx'> #endif</div><div class='del'>-	    if (!has_enc)</div><div class='del'>-		rb_io_ext_int_to_encs(rb_ascii8bit_encoding(), NULL, &amp;enc, &amp;enc2, fmode);</div><div class='del'>-	}</div><div class='add'>+            if (!has_enc)</div><div class='add'>+                rb_io_ext_int_to_encs(rb_ascii8bit_encoding(), NULL, &amp;enc, &amp;enc2, fmode);</div><div class='add'>+        }</div><div class='ctx'> #if DEFAULT_TEXTMODE</div><div class='del'>-	else if (NIL_P(vmode)) {</div><div class='del'>-	    fmode |= DEFAULT_TEXTMODE;</div><div class='del'>-	}</div><div class='del'>-#endif</div><div class='del'>-	v = rb_hash_aref(opthash, sym_perm);</div><div class='del'>-	if (!NIL_P(v)) {</div><div class='del'>-	    if (vperm_p) {</div><div class='del'>-		if (!NIL_P(*vperm_p)) {</div><div class='del'>-		    rb_raise(rb_eArgError, "perm specified twice");</div><div class='del'>-		}</div><div class='del'>-		*vperm_p = v;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		/* perm no use, just ignore */</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	ecflags = (fmode &amp; FMODE_READABLE) ?</div><div class='del'>-	    MODE_BTMODE(ECONV_DEFAULT_NEWLINE_DECORATOR,</div><div class='del'>-			0, ECONV_UNIVERSAL_NEWLINE_DECORATOR) : 0;</div><div class='add'>+        else if (NIL_P(vmode)) {</div><div class='add'>+            fmode |= DEFAULT_TEXTMODE;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        v = rb_hash_aref(opthash, sym_perm);</div><div class='add'>+        if (!NIL_P(v)) {</div><div class='add'>+            if (vperm_p) {</div><div class='add'>+                if (!NIL_P(*vperm_p)) {</div><div class='add'>+                    rb_raise(rb_eArgError, "perm specified twice");</div><div class='add'>+                }</div><div class='add'>+                *vperm_p = v;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                /* perm no use, just ignore */</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        ecflags = (fmode &amp; FMODE_READABLE) ?</div><div class='add'>+            MODE_BTMODE(ECONV_DEFAULT_NEWLINE_DECORATOR,</div><div class='add'>+                        0, ECONV_UNIVERSAL_NEWLINE_DECORATOR) : 0;</div><div class='ctx'> #ifdef TEXTMODE_NEWLINE_DECORATOR_ON_WRITE</div><div class='del'>-	ecflags |= (fmode &amp; FMODE_WRITABLE) ?</div><div class='del'>-	    MODE_BTMODE(TEXTMODE_NEWLINE_DECORATOR_ON_WRITE,</div><div class='del'>-			0, TEXTMODE_NEWLINE_DECORATOR_ON_WRITE) : 0;</div><div class='add'>+        ecflags |= (fmode &amp; FMODE_WRITABLE) ?</div><div class='add'>+            MODE_BTMODE(TEXTMODE_NEWLINE_DECORATOR_ON_WRITE,</div><div class='add'>+                        0, TEXTMODE_NEWLINE_DECORATOR_ON_WRITE) : 0;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>         if (rb_io_extract_encoding_option(opthash, &amp;enc, &amp;enc2, &amp;fmode)) {</div><div class='hunk'>@@ -5975,8 +6937,8 @@ rb_io_extract_modeenc(VALUE *vmode_p, VALUE *vperm_p, VALUE opthash,</div><div class='ctx'>                 rb_raise(rb_eArgError, "encoding specified twice");</div><div class='ctx'>             }</div><div class='ctx'>         }</div><div class='del'>-	SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='del'>-	ecflags = rb_econv_prepare_options(opthash, &amp;ecopts, ecflags);</div><div class='add'>+        SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='add'>+        ecflags = rb_econv_prepare_options(opthash, &amp;ecopts, ecflags);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     validate_enc_binmode(&amp;fmode, ecflags, enc, enc2);</div><div class='hunk'>@@ -6028,13 +6990,13 @@ rb_sysopen(VALUE fname, int oflags, mode_t perm)</div><div class='ctx'> </div><div class='ctx'>     fd = rb_sysopen_internal(&amp;data);</div><div class='ctx'>     if (fd &lt; 0) {</div><div class='del'>-	int e = errno;</div><div class='del'>-	if (rb_gc_for_fd(e)) {</div><div class='del'>-	    fd = rb_sysopen_internal(&amp;data);</div><div class='del'>-	}</div><div class='del'>-	if (fd &lt; 0) {</div><div class='del'>-	    rb_syserr_fail_path(e, fname);</div><div class='del'>-	}</div><div class='add'>+        int e = errno;</div><div class='add'>+        if (rb_gc_for_fd(e)) {</div><div class='add'>+            fd = rb_sysopen_internal(&amp;data);</div><div class='add'>+        }</div><div class='add'>+        if (fd &lt; 0) {</div><div class='add'>+            rb_syserr_fail_path(e, fname);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return fd;</div><div class='ctx'> }</div><div class='hunk'>@@ -6049,32 +7011,32 @@ rb_fdopen(int fd, const char *modestr)</div><div class='ctx'> #endif</div><div class='ctx'>     file = fdopen(fd, modestr);</div><div class='ctx'>     if (!file) {</div><div class='del'>-	int e = errno;</div><div class='add'>+        int e = errno;</div><div class='ctx'> #if defined(__sun)</div><div class='del'>-	if (e == 0) {</div><div class='del'>-	    rb_gc();</div><div class='del'>-	    errno = 0;</div><div class='del'>-	    file = fdopen(fd, modestr);</div><div class='del'>-	}</div><div class='del'>-	else</div><div class='del'>-#endif</div><div class='del'>-	if (rb_gc_for_fd(e)) {</div><div class='del'>-	    file = fdopen(fd, modestr);</div><div class='del'>-	}</div><div class='del'>-	if (!file) {</div><div class='add'>+        if (e == 0) {</div><div class='add'>+            rb_gc();</div><div class='add'>+            errno = 0;</div><div class='add'>+            file = fdopen(fd, modestr);</div><div class='add'>+        }</div><div class='add'>+        else</div><div class='add'>+#endif</div><div class='add'>+        if (rb_gc_for_fd(e)) {</div><div class='add'>+            file = fdopen(fd, modestr);</div><div class='add'>+        }</div><div class='add'>+        if (!file) {</div><div class='ctx'> #ifdef _WIN32</div><div class='del'>-	    if (e == 0) e = EINVAL;</div><div class='add'>+            if (e == 0) e = EINVAL;</div><div class='ctx'> #elif defined(__sun)</div><div class='del'>-	    if (e == 0) e = EMFILE;</div><div class='add'>+            if (e == 0) e = EMFILE;</div><div class='ctx'> #endif</div><div class='del'>-	    rb_syserr_fail(e, 0);</div><div class='del'>-	}</div><div class='add'>+            rb_syserr_fail(e, 0);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* xxx: should be _IONBF?  A buffer in FILE may have trouble. */</div><div class='ctx'> #ifdef USE_SETVBUF</div><div class='ctx'>     if (setvbuf(file, NULL, _IOFBF, 0) != 0)</div><div class='del'>-	rb_warn("setvbuf() can't be honoured (fd=%d)", fd);</div><div class='add'>+        rb_warn("setvbuf() can't be honoured (fd=%d)", fd);</div><div class='ctx'> #endif</div><div class='ctx'>     return file;</div><div class='ctx'> }</div><div class='hunk'>@@ -6102,93 +7064,93 @@ io_strip_bom(VALUE io)</div><div class='ctx'>     if (NIL_P(b1 = rb_io_getbyte(io))) return 0;</div><div class='ctx'>     switch (b1) {</div><div class='ctx'>       case INT2FIX(0xEF):</div><div class='del'>-	if (NIL_P(b2 = rb_io_getbyte(io))) break;</div><div class='del'>-	if (b2 == INT2FIX(0xBB) &amp;&amp; !NIL_P(b3 = rb_io_getbyte(io))) {</div><div class='del'>-	    if (b3 == INT2FIX(0xBF)) {</div><div class='del'>-		return rb_utf8_encindex();</div><div class='del'>-	    }</div><div class='del'>-	    rb_io_ungetbyte(io, b3);</div><div class='del'>-	}</div><div class='del'>-	rb_io_ungetbyte(io, b2);</div><div class='del'>-	break;</div><div class='add'>+        if (NIL_P(b2 = rb_io_getbyte(io))) break;</div><div class='add'>+        if (b2 == INT2FIX(0xBB) &amp;&amp; !NIL_P(b3 = rb_io_getbyte(io))) {</div><div class='add'>+            if (b3 == INT2FIX(0xBF)) {</div><div class='add'>+                return rb_utf8_encindex();</div><div class='add'>+            }</div><div class='add'>+            rb_io_ungetbyte(io, b3);</div><div class='add'>+        }</div><div class='add'>+        rb_io_ungetbyte(io, b2);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case INT2FIX(0xFE):</div><div class='del'>-	if (NIL_P(b2 = rb_io_getbyte(io))) break;</div><div class='del'>-	if (b2 == INT2FIX(0xFF)) {</div><div class='del'>-	    return ENCINDEX_UTF_16BE;</div><div class='del'>-	}</div><div class='del'>-	rb_io_ungetbyte(io, b2);</div><div class='del'>-	break;</div><div class='add'>+        if (NIL_P(b2 = rb_io_getbyte(io))) break;</div><div class='add'>+        if (b2 == INT2FIX(0xFF)) {</div><div class='add'>+            return ENCINDEX_UTF_16BE;</div><div class='add'>+        }</div><div class='add'>+        rb_io_ungetbyte(io, b2);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case INT2FIX(0xFF):</div><div class='del'>-	if (NIL_P(b2 = rb_io_getbyte(io))) break;</div><div class='del'>-	if (b2 == INT2FIX(0xFE)) {</div><div class='del'>-	    b3 = rb_io_getbyte(io);</div><div class='del'>-	    if (b3 == INT2FIX(0) &amp;&amp; !NIL_P(b4 = rb_io_getbyte(io))) {</div><div class='del'>-		if (b4 == INT2FIX(0)) {</div><div class='del'>-		    return ENCINDEX_UTF_32LE;</div><div class='del'>-		}</div><div class='del'>-		rb_io_ungetbyte(io, b4);</div><div class='del'>-		rb_io_ungetbyte(io, b3);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rb_io_ungetbyte(io, b3);</div><div class='del'>-		return ENCINDEX_UTF_16LE;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	rb_io_ungetbyte(io, b2);</div><div class='del'>-	break;</div><div class='add'>+        if (NIL_P(b2 = rb_io_getbyte(io))) break;</div><div class='add'>+        if (b2 == INT2FIX(0xFE)) {</div><div class='add'>+            b3 = rb_io_getbyte(io);</div><div class='add'>+            if (b3 == INT2FIX(0) &amp;&amp; !NIL_P(b4 = rb_io_getbyte(io))) {</div><div class='add'>+                if (b4 == INT2FIX(0)) {</div><div class='add'>+                    return ENCINDEX_UTF_32LE;</div><div class='add'>+                }</div><div class='add'>+                rb_io_ungetbyte(io, b4);</div><div class='add'>+            }</div><div class='add'>+            rb_io_ungetbyte(io, b3);</div><div class='add'>+            return ENCINDEX_UTF_16LE;</div><div class='add'>+        }</div><div class='add'>+        rb_io_ungetbyte(io, b2);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case INT2FIX(0):</div><div class='del'>-	if (NIL_P(b2 = rb_io_getbyte(io))) break;</div><div class='del'>-	if (b2 == INT2FIX(0) &amp;&amp; !NIL_P(b3 = rb_io_getbyte(io))) {</div><div class='del'>-	    if (b3 == INT2FIX(0xFE) &amp;&amp; !NIL_P(b4 = rb_io_getbyte(io))) {</div><div class='del'>-		if (b4 == INT2FIX(0xFF)) {</div><div class='del'>-		    return ENCINDEX_UTF_32BE;</div><div class='del'>-		}</div><div class='del'>-		rb_io_ungetbyte(io, b4);</div><div class='del'>-	    }</div><div class='del'>-	    rb_io_ungetbyte(io, b3);</div><div class='del'>-	}</div><div class='del'>-	rb_io_ungetbyte(io, b2);</div><div class='del'>-	break;</div><div class='add'>+        if (NIL_P(b2 = rb_io_getbyte(io))) break;</div><div class='add'>+        if (b2 == INT2FIX(0) &amp;&amp; !NIL_P(b3 = rb_io_getbyte(io))) {</div><div class='add'>+            if (b3 == INT2FIX(0xFE) &amp;&amp; !NIL_P(b4 = rb_io_getbyte(io))) {</div><div class='add'>+                if (b4 == INT2FIX(0xFF)) {</div><div class='add'>+                    return ENCINDEX_UTF_32BE;</div><div class='add'>+                }</div><div class='add'>+                rb_io_ungetbyte(io, b4);</div><div class='add'>+            }</div><div class='add'>+            rb_io_ungetbyte(io, b3);</div><div class='add'>+        }</div><div class='add'>+        rb_io_ungetbyte(io, b2);</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'>     rb_io_ungetbyte(io, b1);</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='add'>+static rb_encoding *</div><div class='ctx'> io_set_encoding_by_bom(VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     int idx = io_strip_bom(io);</div><div class='ctx'>     rb_io_t *fptr;</div><div class='add'>+    rb_encoding *extenc = NULL;</div><div class='ctx'> </div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     if (idx) {</div><div class='del'>-	io_encoding_set(fptr, rb_enc_from_encoding(rb_enc_from_index(idx)),</div><div class='del'>-		rb_io_internal_encoding(io), Qnil);</div><div class='add'>+        extenc = rb_enc_from_index(idx);</div><div class='add'>+        io_encoding_set(fptr, rb_enc_from_encoding(extenc),</div><div class='add'>+                        rb_io_internal_encoding(io), Qnil);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	fptr-&gt;encs.enc2 = NULL;</div><div class='add'>+        fptr-&gt;encs.enc2 = NULL;</div><div class='ctx'>     }</div><div class='add'>+    return extenc;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_file_open_generic(VALUE io, VALUE filename, int oflags, int fmode,</div><div class='del'>-		     const convconfig_t *convconfig, mode_t perm)</div><div class='add'>+                     const convconfig_t *convconfig, mode_t perm)</div><div class='ctx'> {</div><div class='ctx'>     VALUE pathv;</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     convconfig_t cc;</div><div class='ctx'>     if (!convconfig) {</div><div class='del'>-	/* Set to default encodings */</div><div class='del'>-	rb_io_ext_int_to_encs(NULL, NULL, &amp;cc.enc, &amp;cc.enc2, fmode);</div><div class='add'>+        /* Set to default encodings */</div><div class='add'>+        rb_io_ext_int_to_encs(NULL, NULL, &amp;cc.enc, &amp;cc.enc2, fmode);</div><div class='ctx'>         cc.ecflags = 0;</div><div class='ctx'>         cc.ecopts = Qnil;</div><div class='ctx'>         convconfig = &amp;cc;</div><div class='ctx'>     }</div><div class='ctx'>     validate_enc_binmode(&amp;fmode, convconfig-&gt;ecflags,</div><div class='del'>-			 convconfig-&gt;enc, convconfig-&gt;enc2);</div><div class='add'>+                         convconfig-&gt;enc, convconfig-&gt;enc2);</div><div class='ctx'> </div><div class='ctx'>     MakeOpenFile(io, fptr);</div><div class='ctx'>     fptr-&gt;mode = fmode;</div><div class='hunk'>@@ -6217,14 +7179,16 @@ rb_file_open_internal(VALUE io, VALUE filename, const char *modestr)</div><div class='ctx'> </div><div class='ctx'>     if (p) {</div><div class='ctx'>         parse_mode_enc(p+1, rb_usascii_encoding(),</div><div class='del'>-		       &amp;convconfig.enc, &amp;convconfig.enc2, &amp;fmode);</div><div class='add'>+                       &amp;convconfig.enc, &amp;convconfig.enc2, &amp;fmode);</div><div class='add'>+        convconfig.ecflags = 0;</div><div class='add'>+        convconfig.ecopts = Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_encoding *e;</div><div class='del'>-	/* Set to default encodings */</div><div class='add'>+        rb_encoding *e;</div><div class='add'>+        /* Set to default encodings */</div><div class='ctx'> </div><div class='del'>-	e = (fmode &amp; FMODE_BINMODE) ? rb_ascii8bit_encoding() : NULL;</div><div class='del'>-	rb_io_ext_int_to_encs(e, NULL, &amp;convconfig.enc, &amp;convconfig.enc2, fmode);</div><div class='add'>+        e = (fmode &amp; FMODE_BINMODE) ? rb_ascii8bit_encoding() : NULL;</div><div class='add'>+        rb_io_ext_int_to_encs(e, NULL, &amp;convconfig.enc, &amp;convconfig.enc2, fmode);</div><div class='ctx'>         convconfig.ecflags = 0;</div><div class='ctx'>         convconfig.ecopts = Qnil;</div><div class='ctx'>     }</div><div class='hunk'>@@ -6273,12 +7237,12 @@ pipe_del_fptr(rb_io_t *fptr)</div><div class='ctx'>     struct pipe_list *tmp;</div><div class='ctx'> </div><div class='ctx'>     while ((tmp = *prev) != 0) {</div><div class='del'>-	if (tmp-&gt;fptr == fptr) {</div><div class='del'>-	    *prev = tmp-&gt;next;</div><div class='del'>-	    free(tmp);</div><div class='del'>-	    return;</div><div class='del'>-	}</div><div class='del'>-	prev = &amp;tmp-&gt;next;</div><div class='add'>+        if (tmp-&gt;fptr == fptr) {</div><div class='add'>+            *prev = tmp-&gt;next;</div><div class='add'>+            free(tmp);</div><div class='add'>+            return;</div><div class='add'>+        }</div><div class='add'>+        prev = &amp;tmp-&gt;next;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -6290,9 +7254,9 @@ pipe_atexit(void)</div><div class='ctx'>     struct pipe_list *tmp;</div><div class='ctx'> </div><div class='ctx'>     while (list) {</div><div class='del'>-	tmp = list-&gt;next;</div><div class='del'>-	rb_io_fptr_finalize(list-&gt;fptr);</div><div class='del'>-	list = tmp;</div><div class='add'>+        tmp = list-&gt;next;</div><div class='add'>+        rb_io_fptr_finalize(list-&gt;fptr);</div><div class='add'>+        list = tmp;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -6303,7 +7267,7 @@ pipe_finalize(rb_io_t *fptr, int noraise)</div><div class='ctx'> #if !defined(HAVE_WORKING_FORK) &amp;&amp; !defined(_WIN32)</div><div class='ctx'>     int status = 0;</div><div class='ctx'>     if (fptr-&gt;stdio_file) {</div><div class='del'>-	status = pclose(fptr-&gt;stdio_file);</div><div class='add'>+        status = pclose(fptr-&gt;stdio_file);</div><div class='ctx'>     }</div><div class='ctx'>     fptr-&gt;fd = -1;</div><div class='ctx'>     fptr-&gt;stdio_file = 0;</div><div class='hunk'>@@ -6328,14 +7292,14 @@ fptr_copy_finalizer(rb_io_t *fptr, const rb_io_t *orig)</div><div class='ctx'> </div><div class='ctx'> #if defined(__CYGWIN__) || !defined(HAVE_WORKING_FORK)</div><div class='ctx'>     if (old_finalize != pipe_finalize) {</div><div class='del'>-	struct pipe_list *list;</div><div class='del'>-	for (list = pipe_list; list; list = list-&gt;next) {</div><div class='del'>-	    if (list-&gt;fptr == fptr) break;</div><div class='del'>-	}</div><div class='del'>-	if (!list) pipe_add_fptr(fptr);</div><div class='add'>+        struct pipe_list *list;</div><div class='add'>+        for (list = pipe_list; list; list = list-&gt;next) {</div><div class='add'>+            if (list-&gt;fptr == fptr) break;</div><div class='add'>+        }</div><div class='add'>+        if (!list) pipe_add_fptr(fptr);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	pipe_del_fptr(fptr);</div><div class='add'>+        pipe_del_fptr(fptr);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='hunk'>@@ -6387,6 +7351,7 @@ struct popen_arg {</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_WORKING_FORK</div><div class='add'>+# ifndef __EMSCRIPTEN__</div><div class='ctx'> static void</div><div class='ctx'> popen_redirect(struct popen_arg *p)</div><div class='ctx'> {</div><div class='hunk'>@@ -6417,6 +7382,7 @@ popen_redirect(struct popen_arg *p)</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='add'>+# endif</div><div class='ctx'> </div><div class='ctx'> #if defined(__linux__)</div><div class='ctx'> /* Linux /proc/self/status contains a line: "FDSize:\t&lt;nnn&gt;\n"</div><div class='hunk'>@@ -6484,19 +7450,20 @@ rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds)</div><div class='ctx'>         if (!NIL_P(noclose_fds) &amp;&amp;</div><div class='ctx'>             RTEST(rb_hash_lookup(noclose_fds, INT2FIX(fd)))) /* async-signal-safe */</div><div class='ctx'>             continue;</div><div class='del'>-	ret = fcntl(fd, F_GETFD); /* async-signal-safe */</div><div class='del'>-	if (ret != -1 &amp;&amp; !(ret &amp; FD_CLOEXEC)) {</div><div class='add'>+        ret = fcntl(fd, F_GETFD); /* async-signal-safe */</div><div class='add'>+        if (ret != -1 &amp;&amp; !(ret &amp; FD_CLOEXEC)) {</div><div class='ctx'>             fcntl(fd, F_SETFD, ret|FD_CLOEXEC); /* async-signal-safe */</div><div class='ctx'>         }</div><div class='ctx'> # define CONTIGUOUS_CLOSED_FDS 20</div><div class='ctx'>         if (ret != -1) {</div><div class='del'>-	    if (max &lt; fd + CONTIGUOUS_CLOSED_FDS)</div><div class='del'>-		max = fd + CONTIGUOUS_CLOSED_FDS;</div><div class='del'>-	}</div><div class='add'>+            if (max &lt; fd + CONTIGUOUS_CLOSED_FDS)</div><div class='add'>+                max = fd + CONTIGUOUS_CLOSED_FDS;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+# ifndef __EMSCRIPTEN__</div><div class='ctx'> static int</div><div class='ctx'> popen_exec(void *pp, char *errmsg, size_t errmsg_len)</div><div class='ctx'> {</div><div class='hunk'>@@ -6504,9 +7471,10 @@ popen_exec(void *pp, char *errmsg, size_t errmsg_len)</div><div class='ctx'> </div><div class='ctx'>     return rb_exec_async_signal_safe(p-&gt;eargp, errmsg, errmsg_len);</div><div class='ctx'> }</div><div class='add'>+# endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_WORKING_FORK) || defined(HAVE_SPAWNV)</div><div class='add'>+#if (defined(HAVE_WORKING_FORK) || defined(HAVE_SPAWNV)) &amp;&amp; !defined __EMSCRIPTEN__</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_execarg_fixup_v(VALUE execarg_obj)</div><div class='ctx'> {</div><div class='hunk'>@@ -6517,9 +7485,10 @@ rb_execarg_fixup_v(VALUE execarg_obj)</div><div class='ctx'> char *rb_execarg_commandline(const struct rb_execarg *eargp, VALUE *prog);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifndef __EMSCRIPTEN__</div><div class='ctx'> static VALUE</div><div class='ctx'> pipe_open(VALUE execarg_obj, const char *modestr, int fmode,</div><div class='del'>-	  const convconfig_t *convconfig)</div><div class='add'>+          const convconfig_t *convconfig)</div><div class='ctx'> {</div><div class='ctx'>     struct rb_execarg *eargp = NIL_P(execarg_obj) ? NULL : rb_execarg_get(execarg_obj);</div><div class='ctx'>     VALUE prog = eargp ? (eargp-&gt;use_shell ? eargp-&gt;invoke.sh.shell_script : eargp-&gt;invoke.cmd.command_name) : Qfalse ;</div><div class='hunk'>@@ -6540,12 +7509,12 @@ pipe_open(VALUE execarg_obj, const char *modestr, int fmode,</div><div class='ctx'> #if defined(HAVE_SPAWNV)</div><div class='ctx'> # if defined(HAVE_SPAWNVE)</div><div class='ctx'> #   define DO_SPAWN(cmd, args, envp) ((args) ? \</div><div class='del'>-				      spawnve(P_NOWAIT, (cmd), (args), (envp)) : \</div><div class='del'>-				      spawne(P_NOWAIT, (cmd), (envp)))</div><div class='add'>+                                      spawnve(P_NOWAIT, (cmd), (args), (envp)) : \</div><div class='add'>+                                      spawne(P_NOWAIT, (cmd), (envp)))</div><div class='ctx'> # else</div><div class='ctx'> #   define DO_SPAWN(cmd, args, envp) ((args) ? \</div><div class='del'>-				      spawnv(P_NOWAIT, (cmd), (args)) : \</div><div class='del'>-				      spawn(P_NOWAIT, (cmd)))</div><div class='add'>+                                      spawnv(P_NOWAIT, (cmd), (args)) : \</div><div class='add'>+                                      spawn(P_NOWAIT, (cmd)))</div><div class='ctx'> # endif</div><div class='ctx'> # if !defined(HAVE_WORKING_FORK)</div><div class='ctx'>     char **args = NULL;</div><div class='hunk'>@@ -6592,19 +7561,19 @@ pipe_open(VALUE execarg_obj, const char *modestr, int fmode,</div><div class='ctx'>             rb_execarg_addopt(execarg_obj, INT2FIX(0), INT2FIX(arg.write_pair[0]));</div><div class='ctx'>             rb_execarg_addopt(execarg_obj, INT2FIX(1), INT2FIX(arg.pair[1]));</div><div class='ctx'>         }</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>       case FMODE_READABLE:</div><div class='ctx'>         if (rb_pipe(arg.pair) &lt; 0)</div><div class='ctx'>             rb_sys_fail_str(prog);</div><div class='ctx'>         if (eargp)</div><div class='ctx'>             rb_execarg_addopt(execarg_obj, INT2FIX(1), INT2FIX(arg.pair[1]));</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>       case FMODE_WRITABLE:</div><div class='ctx'>         if (rb_pipe(arg.pair) &lt; 0)</div><div class='ctx'>             rb_sys_fail_str(prog);</div><div class='ctx'>         if (eargp)</div><div class='ctx'>             rb_execarg_addopt(execarg_obj, INT2FIX(0), INT2FIX(arg.pair[0]));</div><div class='del'>-	break;</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='ctx'>         rb_sys_fail_str(prog);</div><div class='ctx'>     }</div><div class='hunk'>@@ -6620,60 +7589,59 @@ pipe_open(VALUE execarg_obj, const char *modestr, int fmode,</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='ctx'> # if defined(HAVE_WORKING_FORK)</div><div class='del'>-	pid = rb_fork_async_signal_safe(&amp;status, popen_exec, &amp;arg, arg.eargp-&gt;redirect_fds, errmsg, sizeof(errmsg));</div><div class='add'>+        pid = rb_fork_async_signal_safe(&amp;status, popen_exec, &amp;arg, arg.eargp-&gt;redirect_fds, errmsg, sizeof(errmsg));</div><div class='ctx'> # else</div><div class='del'>-	rb_execarg_run_options(eargp, sargp, NULL, 0);</div><div class='add'>+        rb_execarg_run_options(eargp, sargp, NULL, 0);</div><div class='ctx'> #   if defined(HAVE_SPAWNVE)</div><div class='del'>-	if (eargp-&gt;envp_str) envp = (char **)RSTRING_PTR(eargp-&gt;envp_str);</div><div class='add'>+        if (eargp-&gt;envp_str) envp = (char **)RSTRING_PTR(eargp-&gt;envp_str);</div><div class='ctx'> #   endif</div><div class='ctx'>         while ((pid = DO_SPAWN(cmd, args, envp)) &lt; 0) {</div><div class='del'>-	    /* exec failed */</div><div class='del'>-	    switch (e = errno) {</div><div class='del'>-	      case EAGAIN:</div><div class='del'>-#   if defined(EWOULDBLOCK) &amp;&amp; EWOULDBLOCK != EAGAIN</div><div class='del'>-	      case EWOULDBLOCK:</div><div class='add'>+            /* exec failed */</div><div class='add'>+            switch (e = errno) {</div><div class='add'>+              case EAGAIN:</div><div class='add'>+#   if EWOULDBLOCK != EAGAIN</div><div class='add'>+              case EWOULDBLOCK:</div><div class='ctx'> #   endif</div><div class='del'>-		rb_thread_sleep(1);</div><div class='del'>-		continue;</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-	if (eargp)</div><div class='del'>-	    rb_execarg_run_options(sargp, NULL, NULL, 0);</div><div class='add'>+                rb_thread_sleep(1);</div><div class='add'>+                continue;</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='add'>+        if (eargp)</div><div class='add'>+            rb_execarg_run_options(sargp, NULL, NULL, 0);</div><div class='ctx'> # endif</div><div class='ctx'>         rb_execarg_parent_end(execarg_obj);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> # if defined(HAVE_WORKING_FORK)</div><div class='del'>-	pid = rb_fork_ruby(&amp;status);</div><div class='del'>-	if (pid == 0) {		/* child */</div><div class='del'>-	    rb_thread_atfork();</div><div class='del'>-	    popen_redirect(&amp;arg);</div><div class='del'>-	    rb_io_synchronized(RFILE(orig_stdout)-&gt;fptr);</div><div class='del'>-	    rb_io_synchronized(RFILE(orig_stderr)-&gt;fptr);</div><div class='del'>-	    return Qnil;</div><div class='del'>-	}</div><div class='add'>+        pid = rb_call_proc__fork();</div><div class='add'>+        if (pid == 0) {		/* child */</div><div class='add'>+            popen_redirect(&amp;arg);</div><div class='add'>+            rb_io_synchronized(RFILE(orig_stdout)-&gt;fptr);</div><div class='add'>+            rb_io_synchronized(RFILE(orig_stderr)-&gt;fptr);</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='ctx'> # else</div><div class='del'>-	rb_notimplement();</div><div class='add'>+        rb_notimplement();</div><div class='ctx'> # endif</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* parent */</div><div class='ctx'>     if (pid &lt; 0) {</div><div class='ctx'> # if defined(HAVE_WORKING_FORK)</div><div class='del'>-	e = errno;</div><div class='add'>+        e = errno;</div><div class='ctx'> # endif</div><div class='del'>-	close(arg.pair[0]);</div><div class='del'>-	close(arg.pair[1]);</div><div class='add'>+        close(arg.pair[0]);</div><div class='add'>+        close(arg.pair[1]);</div><div class='ctx'>         if ((fmode &amp; (FMODE_READABLE|FMODE_WRITABLE)) == (FMODE_READABLE|FMODE_WRITABLE)) {</div><div class='ctx'>             close(arg.write_pair[0]);</div><div class='ctx'>             close(arg.write_pair[1]);</div><div class='ctx'>         }</div><div class='ctx'> # if defined(HAVE_WORKING_FORK)</div><div class='ctx'>         if (errmsg[0])</div><div class='del'>-	    rb_syserr_fail(e, errmsg);</div><div class='add'>+            rb_syserr_fail(e, errmsg);</div><div class='ctx'> # endif</div><div class='del'>-	rb_syserr_fail_str(e, prog);</div><div class='add'>+        rb_syserr_fail_str(e, prog);</div><div class='ctx'>     }</div><div class='ctx'>     if ((fmode &amp; FMODE_READABLE) &amp;&amp; (fmode &amp; FMODE_WRITABLE)) {</div><div class='ctx'>         close(arg.pair[1]);</div><div class='hunk'>@@ -6692,14 +7660,14 @@ pipe_open(VALUE execarg_obj, const char *modestr, int fmode,</div><div class='ctx'> #else</div><div class='ctx'>     cmd = rb_execarg_commandline(eargp, &amp;prog);</div><div class='ctx'>     if (!NIL_P(execarg_obj)) {</div><div class='del'>-	rb_execarg_parent_start(execarg_obj);</div><div class='del'>-	rb_execarg_run_options(eargp, sargp, NULL, 0);</div><div class='add'>+        rb_execarg_parent_start(execarg_obj);</div><div class='add'>+        rb_execarg_run_options(eargp, sargp, NULL, 0);</div><div class='ctx'>     }</div><div class='ctx'>     fp = popen(cmd, modestr);</div><div class='ctx'>     e = errno;</div><div class='ctx'>     if (eargp) {</div><div class='ctx'>         rb_execarg_parent_end(execarg_obj);</div><div class='del'>-	rb_execarg_run_options(sargp, NULL, NULL, 0);</div><div class='add'>+        rb_execarg_run_options(sargp, NULL, NULL, 0);</div><div class='ctx'>     }</div><div class='ctx'>     if (!fp) rb_syserr_fail_path(e, prog);</div><div class='ctx'>     fd = fileno(fp);</div><div class='hunk'>@@ -6712,20 +7680,20 @@ pipe_open(VALUE execarg_obj, const char *modestr, int fmode,</div><div class='ctx'>     fptr-&gt;mode = fmode | FMODE_SYNC|FMODE_DUPLEX;</div><div class='ctx'>     if (convconfig) {</div><div class='ctx'>         fptr-&gt;encs = *convconfig;</div><div class='del'>-#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32)</div><div class='del'>-	if (fptr-&gt;encs.ecflags &amp; ECONV_DEFAULT_NEWLINE_DECORATOR) {</div><div class='del'>-	    fptr-&gt;encs.ecflags |= ECONV_UNIVERSAL_NEWLINE_DECORATOR;</div><div class='del'>-	}</div><div class='add'>+#if RUBY_CRLF_ENVIRONMENT</div><div class='add'>+        if (fptr-&gt;encs.ecflags &amp; ECONV_DEFAULT_NEWLINE_DECORATOR) {</div><div class='add'>+            fptr-&gt;encs.ecflags |= ECONV_UNIVERSAL_NEWLINE_DECORATOR;</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (NEED_NEWLINE_DECORATOR_ON_READ(fptr)) {</div><div class='del'>-	    fptr-&gt;encs.ecflags |= ECONV_UNIVERSAL_NEWLINE_DECORATOR;</div><div class='del'>-	}</div><div class='add'>+        if (NEED_NEWLINE_DECORATOR_ON_READ(fptr)) {</div><div class='add'>+            fptr-&gt;encs.ecflags |= ECONV_UNIVERSAL_NEWLINE_DECORATOR;</div><div class='add'>+        }</div><div class='ctx'> #ifdef TEXTMODE_NEWLINE_DECORATOR_ON_WRITE</div><div class='del'>-	if (NEED_NEWLINE_DECORATOR_ON_WRITE(fptr)) {</div><div class='del'>-	    fptr-&gt;encs.ecflags |= TEXTMODE_NEWLINE_DECORATOR_ON_WRITE;</div><div class='del'>-	}</div><div class='add'>+        if (NEED_NEWLINE_DECORATOR_ON_WRITE(fptr)) {</div><div class='add'>+            fptr-&gt;encs.ecflags |= TEXTMODE_NEWLINE_DECORATOR_ON_WRITE;</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     fptr-&gt;pid = pid;</div><div class='hunk'>@@ -6746,16 +7714,24 @@ pipe_open(VALUE execarg_obj, const char *modestr, int fmode,</div><div class='ctx'> #endif</div><div class='ctx'>     return port;</div><div class='ctx'> }</div><div class='add'>+#else</div><div class='add'>+static VALUE</div><div class='add'>+pipe_open(VALUE execarg_obj, const char *modestr, int fmode,</div><div class='add'>+          const convconfig_t *convconfig)</div><div class='add'>+{</div><div class='add'>+    rb_raise(rb_eNotImpError, "popen() is not available");</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> is_popen_fork(VALUE prog)</div><div class='ctx'> {</div><div class='ctx'>     if (RSTRING_LEN(prog) == 1 &amp;&amp; RSTRING_PTR(prog)[0] == '-') {</div><div class='ctx'> #if !defined(HAVE_WORKING_FORK)</div><div class='del'>-	rb_raise(rb_eNotImpError,</div><div class='del'>-		 "fork() function is unimplemented on this machine");</div><div class='add'>+        rb_raise(rb_eNotImpError,</div><div class='add'>+                 "fork() function is unimplemented on this machine");</div><div class='ctx'> #else</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     return FALSE;</div><div class='hunk'>@@ -6763,7 +7739,7 @@ is_popen_fork(VALUE prog)</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> pipe_open_s(VALUE prog, const char *modestr, int fmode,</div><div class='del'>-	    const convconfig_t *convconfig)</div><div class='add'>+            const convconfig_t *convconfig)</div><div class='ctx'> {</div><div class='ctx'>     int argc = 1;</div><div class='ctx'>     VALUE *argv = &amp;prog;</div><div class='hunk'>@@ -6779,76 +7755,145 @@ pipe_close(VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr = io_close_fptr(io);</div><div class='ctx'>     if (fptr) {</div><div class='del'>-	fptr_waitpid(fptr, rb_thread_to_be_killed(rb_thread_current()));</div><div class='add'>+        fptr_waitpid(fptr, rb_thread_to_be_killed(rb_thread_current()));</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE popen_finish(VALUE port, VALUE klass);</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.popen([env,] cmd, mode="r" [, opt])               -&gt; io</div><div class='del'>- *     IO.popen([env,] cmd, mode="r" [, opt]) {|io| block } -&gt; obj</div><div class='add'>+ *    IO.popen(env = {}, cmd, mode = 'r', **opts) -&gt; io</div><div class='add'>+ *    IO.popen(env = {}, cmd, mode = 'r', **opts) {|io| ... } -&gt; object</div><div class='ctx'>  *</div><div class='del'>- *  Runs the specified command as a subprocess; the subprocess's</div><div class='del'>- *  standard input and output will be connected to the returned</div><div class='del'>- *  &lt;code&gt;IO&lt;/code&gt; object.</div><div class='add'>+ *  Executes the given command +cmd+ as a subprocess</div><div class='add'>+ *  whose $stdin and $stdout are connected to a new stream +io+.</div><div class='ctx'>  *</div><div class='del'>- *  The PID of the started process can be obtained by IO#pid method.</div><div class='add'>+ *  This method has potential security vulnerabilities if called with untrusted input;</div><div class='add'>+ *  see {Command Injection}[rdoc-ref:command_injection.rdoc].</div><div class='ctx'>  *</div><div class='del'>- *  _cmd_ is a string or an array as follows.</div><div class='add'>+ *  If no block is given, returns the new stream,</div><div class='add'>+ *  which depending on given +mode+ may be open for reading, writing, or both.</div><div class='add'>+ *  The stream should be explicitly closed (eventually) to avoid resource leaks.</div><div class='ctx'>  *</div><div class='del'>- *    cmd:</div><div class='del'>- *      "-"                                      : fork</div><div class='del'>- *      commandline                              : command line string which is passed to a shell</div><div class='del'>- *      [env, cmdname, arg1, ..., opts]          : command name and zero or more arguments (no shell)</div><div class='del'>- *      [env, [cmdname, argv0], arg1, ..., opts] : command name, argv[0] and zero or more arguments (no shell)</div><div class='del'>- *    (env and opts are optional.)</div><div class='add'>+ *  If a block is given, the stream is passed to the block</div><div class='add'>+ *  (again, open for reading, writing, or both);</div><div class='add'>+ *  when the block exits, the stream is closed,</div><div class='add'>+ *  and the block's value is assigned to global variable &lt;tt&gt;$?&lt;/tt&gt; and returned.</div><div class='ctx'>  *</div><div class='del'>- *  If _cmd_ is a +String+ ``&lt;code&gt;-&lt;/code&gt;'',</div><div class='del'>- *  then a new instance of Ruby is started as the subprocess.</div><div class='add'>+ *  Optional argument +mode+ may be any valid \IO mode.</div><div class='add'>+ *  See {Access Modes}[rdoc-ref:File@Access+Modes].</div><div class='ctx'>  *</div><div class='del'>- *  If &lt;i&gt;cmd&lt;/i&gt; is an +Array+ of +String+,</div><div class='del'>- *  then it will be used as the subprocess's +argv+ bypassing a shell.</div><div class='del'>- *  The array can contain a hash at first for environments and</div><div class='del'>- *  a hash at last for options similar to &lt;code&gt;spawn&lt;/code&gt;.</div><div class='add'>+ *  Required argument +cmd+ determines which of the following occurs:</div><div class='ctx'>  *</div><div class='del'>- *  The default mode for the new file object is ``r'',</div><div class='del'>- *  but &lt;i&gt;mode&lt;/i&gt; may be set to any of the modes listed in the description for class IO.</div><div class='del'>- *  The last argument &lt;i&gt;opt&lt;/i&gt; qualifies &lt;i&gt;mode&lt;/i&gt;.</div><div class='add'>+ *  - The process forks.</div><div class='add'>+ *  - A specified program runs in a shell.</div><div class='add'>+ *  - A specified program runs with specified arguments.</div><div class='add'>+ *  - A specified program runs with specified arguments and a specified +argv0+.</div><div class='ctx'>  *</div><div class='del'>- *    # set IO encoding</div><div class='del'>- *    IO.popen("nkf -e filename", :external_encoding=&gt;"EUC-JP") {|nkf_io|</div><div class='del'>- *      euc_jp_string = nkf_io.read</div><div class='del'>- *    }</div><div class='add'>+ *  Each of these is detailed below.</div><div class='ctx'>  *</div><div class='del'>- *    # merge standard output and standard error using</div><div class='del'>- *    # spawn option.  See the document of Kernel.spawn.</div><div class='del'>- *    IO.popen(["ls", "/", :err=&gt;[:child, :out]]) {|ls_io|</div><div class='del'>- *      ls_result_with_error = ls_io.read</div><div class='del'>- *    }</div><div class='add'>+ *  The optional hash argument +env+ specifies name/value pairs that are to be added</div><div class='add'>+ *  to the environment variables for the subprocess:</div><div class='ctx'>  *</div><div class='del'>- *    # spawn options can be mixed with IO options</div><div class='del'>- *    IO.popen(["ls", "/"], :err=&gt;[:child, :out]) {|ls_io|</div><div class='del'>- *      ls_result_with_error = ls_io.read</div><div class='del'>- *    }</div><div class='add'>+ *    IO.popen({'FOO' =&gt; 'bar'}, 'ruby', 'r+') do |pipe|</div><div class='add'>+ *      pipe.puts 'puts ENV["FOO"]'</div><div class='add'>+ *      pipe.close_write</div><div class='add'>+ *      pipe.gets</div><div class='add'>+ *    end =&gt; "bar\n"</div><div class='ctx'>  *</div><div class='del'>- *  Raises exceptions which &lt;code&gt;IO.pipe&lt;/code&gt; and</div><div class='del'>- *  &lt;code&gt;Kernel.spawn&lt;/code&gt; raise.</div><div class='add'>+ *  Optional keyword arguments +opts+ specify:</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given, Ruby will run the command as a child connected</div><div class='del'>- *  to Ruby with a pipe. Ruby's end of the pipe will be passed as a</div><div class='del'>- *  parameter to the block.</div><div class='del'>- *  At the end of block, Ruby closes the pipe and sets &lt;code&gt;$?&lt;/code&gt;.</div><div class='del'>- *  In this case &lt;code&gt;IO.popen&lt;/code&gt; returns</div><div class='del'>- *  the value of the block.</div><div class='add'>+ *  - {Open options}[rdoc-ref:IO@Open+Options].</div><div class='add'>+ *  - {Encoding options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='add'>+ *  - Options for Kernel#spawn.</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given with a _cmd_ of ``&lt;code&gt;-&lt;/code&gt;'',</div><div class='del'>- *  the block will be run in two separate processes: once in the parent,</div><div class='del'>- *  and once in a child. The parent process will be passed the pipe</div><div class='del'>- *  object as a parameter to the block, the child version of the block</div><div class='del'>- *  will be passed +nil+, and the child's standard in and</div><div class='del'>- *  standard out will be connected to the parent through the pipe. Not</div><div class='del'>- *  available on all platforms.</div><div class='add'>+ *  &lt;b&gt;Forked \Process&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  When argument +cmd+ is the 1-character string &lt;tt&gt;'-'&lt;/tt&gt;, causes the process to fork:</div><div class='add'>+ *    IO.popen('-') do |pipe|</div><div class='add'>+ *      if pipe</div><div class='add'>+ *        $stderr.puts "In parent, child pid is #{pipe.pid}\n"</div><div class='add'>+ *      else</div><div class='add'>+ *        $stderr.puts "In child, pid is #{$$}\n"</div><div class='add'>+ *      end</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    In parent, child pid is 26253</div><div class='add'>+ *    In child, pid is 26253</div><div class='add'>+ *</div><div class='add'>+ *  Note that this is not supported on all platforms.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Shell Subprocess&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  When argument +cmd+ is a single string (but not &lt;tt&gt;'-'&lt;/tt&gt;),</div><div class='add'>+ *  the program named +cmd+ is run as a shell command:</div><div class='add'>+ *</div><div class='add'>+ *    IO.popen('uname') do |pipe|</div><div class='add'>+ *      pipe.readlines</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    ["Linux\n"]</div><div class='add'>+ *</div><div class='add'>+ *  Another example:</div><div class='add'>+ *</div><div class='add'>+ *    IO.popen('/bin/sh', 'r+') do |pipe|</div><div class='add'>+ *      pipe.puts('ls')</div><div class='add'>+ *      pipe.close_write</div><div class='add'>+ *      $stderr.puts pipe.readlines.size</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    213</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Program Subprocess&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  When argument +cmd+ is an array of strings,</div><div class='add'>+ *  the program named &lt;tt&gt;cmd[0]&lt;/tt&gt; is run with all elements of +cmd+ as its arguments:</div><div class='add'>+ *</div><div class='add'>+ *    IO.popen(['du', '..', '.']) do |pipe|</div><div class='add'>+ *      $stderr.puts pipe.readlines.size</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    1111</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Program Subprocess with &lt;tt&gt;argv0&lt;/tt&gt;&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  When argument +cmd+ is an array whose first element is a 2-element string array</div><div class='add'>+ *  and whose remaining elements (if any) are strings:</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;cmd[0][0]&lt;/tt&gt; (the first string in the nested array) is the name of a program that is run.</div><div class='add'>+ *  - &lt;tt&gt;cmd[0][1]&lt;/tt&gt; (the second string in the nested array) is set as the program's &lt;tt&gt;argv[0]&lt;/tt&gt;.</div><div class='add'>+ *  - &lt;tt&gt;cmd[1..-1]&lt;/tt&gt; (the strings in the outer array) are the program's arguments.</div><div class='add'>+ *</div><div class='add'>+ *  Example (sets &lt;tt&gt;$0&lt;/tt&gt; to 'foo'):</div><div class='add'>+ *</div><div class='add'>+ *    IO.popen([['/bin/sh', 'foo'], '-c', 'echo $0']).read # =&gt; "foo\n"</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Some Special Examples&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *    # Set IO encoding.</div><div class='add'>+ *    IO.popen("nkf -e filename", :external_encoding=&gt;"EUC-JP") {|nkf_io|</div><div class='add'>+ *      euc_jp_string = nkf_io.read</div><div class='add'>+ *    }</div><div class='add'>+ *</div><div class='add'>+ *    # Merge standard output and standard error using Kernel#spawn option. See Kernel#spawn.</div><div class='add'>+ *    IO.popen(["ls", "/", :err=&gt;[:child, :out]]) do |io|</div><div class='add'>+ *      ls_result_with_error = io.read</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *    # Use mixture of spawn options and IO options.</div><div class='add'>+ *    IO.popen(["ls", "/"], :err=&gt;[:child, :out]) do |io|</div><div class='add'>+ *      ls_result_with_error = io.read</div><div class='add'>+ *    end</div><div class='ctx'>  *</div><div class='ctx'>  *     f = IO.popen("uname")</div><div class='ctx'>  *     p f.readlines</div><div class='hunk'>@@ -6861,7 +7906,7 @@ pipe_close(VALUE io)</div><div class='ctx'>  *       f.puts "bar"; f.close_write; puts f.gets</div><div class='ctx'>  *     }</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  Output (from last section):</div><div class='ctx'>  *</div><div class='ctx'>  *     ["Linux\n"]</div><div class='ctx'>  *     Parent is 21346</div><div class='hunk'>@@ -6870,71 +7915,86 @@ pipe_close(VALUE io)</div><div class='ctx'>  *     21352 is here, f is nil</div><div class='ctx'>  *     #&lt;Process::Status: pid 21352 exit 0&gt;</div><div class='ctx'>  *     &lt;foo&gt;bar;zot;</div><div class='add'>+ *</div><div class='add'>+ *  Raises exceptions that IO.pipe and Kernel.spawn raise.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_s_popen(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    const char *modestr;</div><div class='del'>-    VALUE pname, pmode = Qnil, port, tmp, opt = Qnil, env = Qnil, execarg_obj = Qnil;</div><div class='del'>-    int oflags, fmode;</div><div class='del'>-    convconfig_t convconfig;</div><div class='add'>+    VALUE pname, pmode = Qnil, opt = Qnil, env = Qnil;</div><div class='ctx'> </div><div class='ctx'>     if (argc &gt; 1 &amp;&amp; !NIL_P(opt = rb_check_hash_type(argv[argc-1]))) --argc;</div><div class='ctx'>     if (argc &gt; 1 &amp;&amp; !NIL_P(env = rb_check_hash_type(argv[0]))) --argc, ++argv;</div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 2:</div><div class='del'>-	pmode = argv[1];</div><div class='add'>+        pmode = argv[1];</div><div class='ctx'>       case 1:</div><div class='del'>-	pname = argv[0];</div><div class='del'>-	break;</div><div class='add'>+        pname = argv[0];</div><div class='add'>+        break;</div><div class='ctx'>       default:</div><div class='del'>-	{</div><div class='del'>-	    int ex = !NIL_P(opt);</div><div class='del'>-	    rb_error_arity(argc + ex, 1 + ex, 2 + ex);</div><div class='del'>-	}</div><div class='add'>+        {</div><div class='add'>+            int ex = !NIL_P(opt);</div><div class='add'>+            rb_error_arity(argc + ex, 1 + ex, 2 + ex);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+    return popen_finish(rb_io_popen(pname, pmode, env, opt), klass);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_popen(VALUE pname, VALUE pmode, VALUE env, VALUE opt)</div><div class='add'>+{</div><div class='add'>+    const char *modestr;</div><div class='add'>+    VALUE tmp, execarg_obj = Qnil;</div><div class='add'>+    int oflags, fmode;</div><div class='add'>+    convconfig_t convconfig;</div><div class='ctx'> </div><div class='ctx'>     tmp = rb_check_array_type(pname);</div><div class='ctx'>     if (!NIL_P(tmp)) {</div><div class='del'>-	long len = RARRAY_LEN(tmp);</div><div class='add'>+        long len = RARRAY_LEN(tmp);</div><div class='ctx'> #if SIZEOF_LONG &gt; SIZEOF_INT</div><div class='del'>-	if (len &gt; INT_MAX) {</div><div class='del'>-	    rb_raise(rb_eArgError, "too many arguments");</div><div class='del'>-	}</div><div class='add'>+        if (len &gt; INT_MAX) {</div><div class='add'>+            rb_raise(rb_eArgError, "too many arguments");</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='ctx'>         execarg_obj = rb_execarg_new((int)len, RARRAY_CONST_PTR(tmp), FALSE, FALSE);</div><div class='del'>-	RB_GC_GUARD(tmp);</div><div class='add'>+        RB_GC_GUARD(tmp);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	SafeStringValue(pname);</div><div class='del'>-	execarg_obj = Qnil;</div><div class='del'>-	if (!is_popen_fork(pname))</div><div class='add'>+        SafeStringValue(pname);</div><div class='add'>+        execarg_obj = Qnil;</div><div class='add'>+        if (!is_popen_fork(pname))</div><div class='ctx'>             execarg_obj = rb_execarg_new(1, &amp;pname, TRUE, FALSE);</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(execarg_obj)) {</div><div class='del'>-	if (!NIL_P(opt))</div><div class='del'>-	    opt = rb_execarg_extract_options(execarg_obj, opt);</div><div class='del'>-	if (!NIL_P(env))</div><div class='del'>-	    rb_execarg_setenv(execarg_obj, env);</div><div class='add'>+        if (!NIL_P(opt))</div><div class='add'>+            opt = rb_execarg_extract_options(execarg_obj, opt);</div><div class='add'>+        if (!NIL_P(env))</div><div class='add'>+            rb_execarg_setenv(execarg_obj, env);</div><div class='ctx'>     }</div><div class='ctx'>     rb_io_extract_modeenc(&amp;pmode, 0, opt, &amp;oflags, &amp;fmode, &amp;convconfig);</div><div class='ctx'>     modestr = rb_io_oflags_modestr(oflags);</div><div class='ctx'> </div><div class='del'>-    port = pipe_open(execarg_obj, modestr, fmode, &amp;convconfig);</div><div class='add'>+    return pipe_open(execarg_obj, modestr, fmode, &amp;convconfig);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+popen_finish(VALUE port, VALUE klass)</div><div class='add'>+{</div><div class='ctx'>     if (NIL_P(port)) {</div><div class='del'>-	/* child */</div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    rb_yield(Qnil);</div><div class='del'>-            rb_io_flush(rb_stdout);</div><div class='del'>-            rb_io_flush(rb_stderr);</div><div class='del'>-	    _exit(0);</div><div class='del'>-	}</div><div class='del'>-	return Qnil;</div><div class='add'>+        /* child */</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            rb_protect(rb_yield, Qnil, NULL);</div><div class='add'>+            rb_io_flush(rb_ractor_stdout());</div><div class='add'>+            rb_io_flush(rb_ractor_stderr());</div><div class='add'>+            _exit(0);</div><div class='add'>+        }</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     RBASIC_SET_CLASS(port, klass);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	return rb_ensure(rb_yield, port, pipe_close, port);</div><div class='add'>+        return rb_ensure(rb_yield, port, pipe_close, port);</div><div class='ctx'>     }</div><div class='ctx'>     return port;</div><div class='ctx'> }</div><div class='hunk'>@@ -6975,50 +8035,45 @@ rb_open_file(int argc, const VALUE *argv, VALUE io)</div><div class='ctx'>     return io;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-</div><div class='ctx'> /*</div><div class='ctx'>  *  Document-method: File::open</div><div class='ctx'>  *</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     File.open(filename, mode="r" [, opt])                 -&gt; file</div><div class='del'>- *     File.open(filename [, mode [, perm]] [, opt])         -&gt; file</div><div class='del'>- *     File.open(filename, mode="r" [, opt]) {|file| block } -&gt; obj</div><div class='del'>- *     File.open(filename [, mode [, perm]] [, opt]) {|file| block } -&gt; obj</div><div class='add'>+ *    File.open(path, mode = 'r', perm = 0666, **opts) -&gt; file</div><div class='add'>+ *    File.open(path, mode = 'r', perm = 0666, **opts) {|f| ... } -&gt; object</div><div class='add'>+ *</div><div class='add'>+ *  Creates a new \File object, via File.new with the given arguments.</div><div class='ctx'>  *</div><div class='del'>- *  With no associated block, &lt;code&gt;File.open&lt;/code&gt; is a synonym for</div><div class='del'>- *  File.new. If the optional code block is given, it will</div><div class='del'>- *  be passed the opened +file+ as an argument and the File object will</div><div class='del'>- *  automatically be closed when the block terminates.  The value of the block</div><div class='del'>- *  will be returned from &lt;code&gt;File.open&lt;/code&gt;.</div><div class='add'>+ *  With no block given, returns the \File object.</div><div class='ctx'>  *</div><div class='del'>- *  If a file is being created, its initial permissions may be set using the</div><div class='del'>- *  +perm+ parameter.  See File.new for further discussion.</div><div class='add'>+ *  With a block given, calls the block with the \File object</div><div class='add'>+ *  and returns the block's value.</div><div class='ctx'>  *</div><div class='del'>- *  See IO.new for a description of the +mode+ and +opt+ parameters.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  Document-method: IO::open</div><div class='ctx'>  *</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.open(fd, mode="r" [, opt])                -&gt; io</div><div class='del'>- *     IO.open(fd, mode="r" [, opt]) {|io| block }  -&gt; obj</div><div class='add'>+ *    IO.open(fd, mode = 'r', **opts)             -&gt; io</div><div class='add'>+ *    IO.open(fd, mode = 'r', **opts) {|io| ... } -&gt; object</div><div class='add'>+ *</div><div class='add'>+ *  Creates a new \IO object, via IO.new with the given arguments.</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns the \IO object.</div><div class='ctx'>  *</div><div class='del'>- *  With no associated block, &lt;code&gt;IO.open&lt;/code&gt; is a synonym for IO.new.  If</div><div class='del'>- *  the optional code block is given, it will be passed +io+ as an argument,</div><div class='del'>- *  and the IO object will automatically be closed when the block terminates.</div><div class='del'>- *  In this instance, IO.open returns the value of the block.</div><div class='add'>+ *  With a block given, calls the block with the \IO object</div><div class='add'>+ *  and returns the block's value.</div><div class='ctx'>  *</div><div class='del'>- *  See IO.new for a description of the +fd+, +mode+ and +opt+ parameters.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE io = rb_class_new_instance(argc, argv, klass);</div><div class='add'>+    VALUE io = rb_class_new_instance_kw(argc, argv, klass, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> </div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	return rb_ensure(rb_yield, io, io_close, io);</div><div class='add'>+        return rb_ensure(rb_yield, io, io_close, io);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return io;</div><div class='hunk'>@@ -7026,16 +8081,24 @@ rb_io_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.sysopen(path, [mode, [perm]])  -&gt; integer</div><div class='add'>+ *    IO.sysopen(path, mode = 'r', perm = 0666) -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Opens the file at the given path with the given mode and permissions;</div><div class='add'>+ *  returns the integer file descriptor.</div><div class='add'>+ *</div><div class='add'>+ *  If the file is to be readable, it must exist;</div><div class='add'>+ *  if the file is to be writable and does not exist,</div><div class='add'>+ *  it is created with the given permissions:</div><div class='add'>+ *</div><div class='add'>+ *    File.write('t.tmp', '')  # =&gt; 0</div><div class='add'>+ *    IO.sysopen('t.tmp')      # =&gt; 8</div><div class='add'>+ *    IO.sysopen('t.tmp', 'w') # =&gt; 9</div><div class='ctx'>  *</div><div class='del'>- *  Opens the given path, returning the underlying file descriptor as a</div><div class='del'>- *  &lt;code&gt;Integer&lt;/code&gt;.</div><div class='ctx'>  *</div><div class='del'>- *     IO.sysopen("testfile")   #=&gt; 3</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_io_s_sysopen(int argc, VALUE *argv)</div><div class='add'>+rb_io_s_sysopen(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE fname, vmode, vperm;</div><div class='ctx'>     VALUE intmode;</div><div class='hunk'>@@ -7050,8 +8113,8 @@ rb_io_s_sysopen(int argc, VALUE *argv)</div><div class='ctx'>     else if (!NIL_P(intmode = rb_check_to_integer(vmode, "to_int")))</div><div class='ctx'>         oflags = NUM2INT(intmode);</div><div class='ctx'>     else {</div><div class='del'>-	SafeStringValue(vmode);</div><div class='del'>-	oflags = rb_io_modestr_oflags(StringValueCStr(vmode));</div><div class='add'>+        SafeStringValue(vmode);</div><div class='add'>+        oflags = rb_io_modestr_oflags(StringValueCStr(vmode));</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(vperm)) perm = 0666;</div><div class='ctx'>     else              perm = NUM2MODET(vperm);</div><div class='hunk'>@@ -7071,7 +8134,6 @@ check_pipe_command(VALUE filename_or_command)</div><div class='ctx'> </div><div class='ctx'>     if (rb_enc_ascget(s, e, &amp;chlen, rb_enc_get(filename_or_command)) == '|') {</div><div class='ctx'>         VALUE cmd = rb_str_new(s+chlen, l-chlen);</div><div class='del'>-        OBJ_INFECT(cmd, filename_or_command);</div><div class='ctx'>         return cmd;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -7079,135 +8141,135 @@ check_pipe_command(VALUE filename_or_command)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     open(path [, mode [, perm]] [, opt])                -&gt; io or nil</div><div class='del'>- *     open(path [, mode [, perm]] [, opt]) {|io| block }  -&gt; obj</div><div class='add'>+ *    open(path, mode = 'r', perm = 0666, **opts)             -&gt; io or nil</div><div class='add'>+ *    open(path, mode = 'r', perm = 0666, **opts) {|io| ... } -&gt; obj</div><div class='ctx'>  *</div><div class='ctx'>  *  Creates an IO object connected to the given stream, file, or subprocess.</div><div class='ctx'>  *</div><div class='del'>- *  If +path+ does not start with a pipe character (&lt;code&gt;|&lt;/code&gt;), treat it</div><div class='del'>- *  as the name of a file to open using the specified mode (defaulting to</div><div class='del'>- *  "r").</div><div class='add'>+ *  Required string argument +path+ determines which of the following occurs:</div><div class='ctx'>  *</div><div class='del'>- *  The +mode+ is either a string or an integer.  If it is an integer, it</div><div class='del'>- *  must be bitwise-or of open(2) flags, such as File::RDWR or File::EXCL.  If</div><div class='del'>- *  it is a string, it is either "fmode", "fmode:ext_enc", or</div><div class='del'>- *  "fmode:ext_enc:int_enc".</div><div class='add'>+ *  - The file at the specified +path+ is opened.</div><div class='add'>+ *  - The process forks.</div><div class='add'>+ *  - A subprocess is created.</div><div class='ctx'>  *</div><div class='del'>- *  See the documentation of IO.new for full documentation of the +mode+ string</div><div class='del'>- *  directives.</div><div class='add'>+ *  Each of these is detailed below.</div><div class='ctx'>  *</div><div class='del'>- *  If a file is being created, its initial permissions may be set using the</div><div class='del'>- *  +perm+ parameter.  See File.new and the open(2) and chmod(2) man pages for</div><div class='del'>- *  a description of permissions.</div><div class='add'>+ *  &lt;b&gt;File Opened&lt;/b&gt;</div><div class='add'>+</div><div class='add'>+ *  If +path+ does _not_ start with a pipe character (&lt;tt&gt;'|'&lt;/tt&gt;),</div><div class='add'>+ *  a file stream is opened with &lt;tt&gt;File.open(path, mode, perm, **opts)&lt;/tt&gt;.</div><div class='ctx'>  *</div><div class='del'>- *  If a block is specified, it will be invoked with the IO object as a</div><div class='del'>- *  parameter, and the IO will be automatically closed when the block</div><div class='del'>- *  terminates.  The call returns the value of the block.</div><div class='add'>+ *  With no block given, file stream is returned:</div><div class='ctx'>  *</div><div class='del'>- *  If +path+ starts with a pipe character (&lt;code&gt;"|"&lt;/code&gt;), a subprocess is</div><div class='del'>- *  created, connected to the caller by a pair of pipes.  The returned IO</div><div class='del'>- *  object may be used to write to the standard input and read from the</div><div class='del'>- *  standard output of this subprocess.</div><div class='add'>+ *    open('t.txt') # =&gt; #&lt;File:t.txt&gt;</div><div class='ctx'>  *</div><div class='del'>- *  If the command following the pipe is a single minus sign</div><div class='del'>- *  (&lt;code&gt;"|-"&lt;/code&gt;), Ruby forks, and this subprocess is connected to the</div><div class='del'>- *  parent.  If the command is not &lt;code&gt;"-"&lt;/code&gt;, the subprocess runs the</div><div class='del'>- *  command.</div><div class='add'>+ *  With a block given, calls the block with the open file stream,</div><div class='add'>+ *  then closes the stream:</div><div class='ctx'>  *</div><div class='del'>- *  When the subprocess is Ruby (opened via &lt;code&gt;"|-"&lt;/code&gt;), the +open+</div><div class='del'>- *  call returns +nil+.  If a block is associated with the open call, that</div><div class='del'>- *  block will run twice --- once in the parent and once in the child.</div><div class='add'>+ *    open('t.txt') {|f| p f } # =&gt; #&lt;File:t.txt (closed)&gt;</div><div class='ctx'>  *</div><div class='del'>- *  The block parameter will be an IO object in the parent and +nil+ in the</div><div class='del'>- *  child. The parent's +IO+ object will be connected to the child's $stdin</div><div class='del'>- *  and $stdout.  The subprocess will be terminated at the end of the block.</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *  === Examples</div><div class='add'>+ *    #&lt;File:t.txt&gt;</div><div class='ctx'>  *</div><div class='del'>- *  Reading from "testfile":</div><div class='add'>+ *  See File.open for details.</div><div class='ctx'>  *</div><div class='del'>- *     open("testfile") do |f|</div><div class='del'>- *       print f.gets</div><div class='del'>- *     end</div><div class='add'>+ *  &lt;b&gt;Process Forked&lt;/b&gt;</div><div class='ctx'>  *</div><div class='del'>- *  Produces:</div><div class='add'>+ *  If +path+ is the 2-character string &lt;tt&gt;'|-'&lt;/tt&gt;, the process forks</div><div class='add'>+ *  and the child process is connected to the parent.</div><div class='ctx'>  *</div><div class='del'>- *     This is line one</div><div class='add'>+ *  With no block given:</div><div class='ctx'>  *</div><div class='del'>- *  Open a subprocess and read its output:</div><div class='add'>+ *    io = open('|-')</div><div class='add'>+ *    if io</div><div class='add'>+ *      $stderr.puts "In parent, child pid is #{io.pid}."</div><div class='add'>+ *    else</div><div class='add'>+ *      $stderr.puts "In child, pid is #{$$}."</div><div class='add'>+ *    end</div><div class='ctx'>  *</div><div class='del'>- *     cmd = open("|date")</div><div class='del'>- *     print cmd.gets</div><div class='del'>- *     cmd.close</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *  Produces:</div><div class='add'>+ *    In parent, child pid is 27903.</div><div class='add'>+ *    In child, pid is 27903.</div><div class='ctx'>  *</div><div class='del'>- *     Wed Apr  9 08:56:31 CDT 2003</div><div class='add'>+ *  With a block given:</div><div class='ctx'>  *</div><div class='del'>- *  Open a subprocess running the same Ruby program:</div><div class='add'>+ *    open('|-') do |io|</div><div class='add'>+ *      if io</div><div class='add'>+ *        $stderr.puts "In parent, child pid is #{io.pid}."</div><div class='add'>+ *      else</div><div class='add'>+ *        $stderr.puts "In child, pid is #{$$}."</div><div class='add'>+ *      end</div><div class='add'>+ *    end</div><div class='ctx'>  *</div><div class='del'>- *     f = open("|-", "w+")</div><div class='del'>- *     if f.nil?</div><div class='del'>- *       puts "in Child"</div><div class='del'>- *       exit</div><div class='del'>- *     else</div><div class='del'>- *       puts "Got: #{f.gets}"</div><div class='del'>- *     end</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *  Produces:</div><div class='add'>+ *    In parent, child pid is 28427.</div><div class='add'>+ *    In child, pid is 28427.</div><div class='ctx'>  *</div><div class='del'>- *     Got: in Child</div><div class='add'>+ *  &lt;b&gt;Subprocess Created&lt;/b&gt;</div><div class='ctx'>  *</div><div class='del'>- *  Open a subprocess using a block to receive the IO object:</div><div class='add'>+ *  If +path+ is &lt;tt&gt;'|command'&lt;/tt&gt; (&lt;tt&gt;'command' != '-'&lt;/tt&gt;),</div><div class='add'>+ *  a new subprocess runs the command; its open stream is returned.</div><div class='add'>+ *  Note that the command may be processed by shell if it contains</div><div class='add'>+ *  shell metacharacters.</div><div class='ctx'>  *</div><div class='del'>- *     open "|-" do |f|</div><div class='del'>- *       if f then</div><div class='del'>- *         # parent process</div><div class='del'>- *         puts "Got: #{f.gets}"</div><div class='del'>- *       else</div><div class='del'>- *         # child process</div><div class='del'>- *         puts "in Child"</div><div class='del'>- *       end</div><div class='del'>- *     end</div><div class='add'>+ *  With no block given:</div><div class='add'>+ *</div><div class='add'>+ *    io = open('|echo "Hi!"') # =&gt; #&lt;IO:fd 12&gt;</div><div class='add'>+ *    print io.gets</div><div class='add'>+ *    io.close</div><div class='ctx'>  *</div><div class='del'>- *  Produces:</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "Hi!"</div><div class='add'>+ *</div><div class='add'>+ *  With a block given, calls the block with the stream, then closes the stream:</div><div class='add'>+ *</div><div class='add'>+ *    open('|echo "Hi!"') do |io|</div><div class='add'>+ *      print io.gets</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "Hi!"</div><div class='ctx'>  *</div><div class='del'>- *     Got: in Child</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_f_open(int argc, VALUE *argv)</div><div class='add'>+rb_f_open(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     ID to_open = 0;</div><div class='ctx'>     int redirect = FALSE;</div><div class='ctx'> </div><div class='ctx'>     if (argc &gt;= 1) {</div><div class='del'>-	CONST_ID(to_open, "to_open");</div><div class='del'>-	if (rb_respond_to(argv[0], to_open)) {</div><div class='del'>-	    redirect = TRUE;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    VALUE tmp = argv[0];</div><div class='del'>-	    FilePathValue(tmp);</div><div class='del'>-	    if (NIL_P(tmp)) {</div><div class='del'>-		redirect = TRUE;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='add'>+        CONST_ID(to_open, "to_open");</div><div class='add'>+        if (rb_respond_to(argv[0], to_open)) {</div><div class='add'>+            redirect = TRUE;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            VALUE tmp = argv[0];</div><div class='add'>+            FilePathValue(tmp);</div><div class='add'>+            if (NIL_P(tmp)) {</div><div class='add'>+                redirect = TRUE;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='ctx'>                 VALUE cmd = check_pipe_command(tmp);</div><div class='ctx'>                 if (!NIL_P(cmd)) {</div><div class='del'>-		    argv[0] = cmd;</div><div class='del'>-		    return rb_io_s_popen(argc, argv, rb_cIO);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+                    argv[0] = cmd;</div><div class='add'>+                    return rb_io_s_popen(argc, argv, rb_cIO);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (redirect) {</div><div class='del'>-	VALUE io = rb_funcallv(argv[0], to_open, argc-1, argv+1);</div><div class='add'>+        VALUE io = rb_funcallv_kw(argv[0], to_open, argc-1, argv+1, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> </div><div class='del'>-	if (rb_block_given_p()) {</div><div class='del'>-	    return rb_ensure(rb_yield, io, io_close, io);</div><div class='del'>-	}</div><div class='del'>-	return io;</div><div class='add'>+        if (rb_block_given_p()) {</div><div class='add'>+            return rb_ensure(rb_yield, io, io_close, io);</div><div class='add'>+        }</div><div class='add'>+        return io;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_io_s_open(argc, argv, rb_cFile);</div><div class='ctx'> }</div><div class='hunk'>@@ -7228,15 +8290,15 @@ rb_io_open(VALUE io, VALUE filename, VALUE vmode, VALUE vperm, VALUE opt)</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_open_generic(VALUE klass, VALUE filename, int oflags, int fmode,</div><div class='del'>-		   const convconfig_t *convconfig, mode_t perm)</div><div class='add'>+                   const convconfig_t *convconfig, mode_t perm)</div><div class='ctx'> {</div><div class='ctx'>     VALUE cmd;</div><div class='ctx'>     if (klass == rb_cIO &amp;&amp; !NIL_P(cmd = check_pipe_command(filename))) {</div><div class='del'>-	return pipe_open_s(cmd, rb_io_oflags_modestr(oflags), fmode, convconfig);</div><div class='add'>+        return pipe_open_s(cmd, rb_io_oflags_modestr(oflags), fmode, convconfig);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_file_open_generic(io_alloc(klass), filename,</div><div class='del'>-				    oflags, fmode, convconfig, perm);</div><div class='add'>+        return rb_file_open_generic(io_alloc(klass), filename,</div><div class='add'>+                                    oflags, fmode, convconfig, perm);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -7245,7 +8307,7 @@ io_reopen(VALUE io, VALUE nfile)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr, *orig;</div><div class='ctx'>     int fd, fd2;</div><div class='del'>-    off_t pos = 0;</div><div class='add'>+    rb_off_t pos = 0;</div><div class='ctx'> </div><div class='ctx'>     nfile = rb_io_get_io(nfile);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='hunk'>@@ -7256,25 +8318,25 @@ io_reopen(VALUE io, VALUE nfile)</div><div class='ctx'>         if ((fptr-&gt;stdio_file == stdin &amp;&amp; !(orig-&gt;mode &amp; FMODE_READABLE)) ||</div><div class='ctx'>             (fptr-&gt;stdio_file == stdout &amp;&amp; !(orig-&gt;mode &amp; FMODE_WRITABLE)) ||</div><div class='ctx'>             (fptr-&gt;stdio_file == stderr &amp;&amp; !(orig-&gt;mode &amp; FMODE_WRITABLE))) {</div><div class='del'>-	    rb_raise(rb_eArgError,</div><div class='del'>-		     "%s can't change access mode from \"%s\" to \"%s\"",</div><div class='del'>-		     PREP_STDIO_NAME(fptr), rb_io_fmode_modestr(fptr-&gt;mode),</div><div class='del'>-		     rb_io_fmode_modestr(orig-&gt;mode));</div><div class='del'>-	}</div><div class='add'>+            rb_raise(rb_eArgError,</div><div class='add'>+                     "%s can't change access mode from \"%s\" to \"%s\"",</div><div class='add'>+                     PREP_STDIO_NAME(fptr), rb_io_fmode_modestr(fptr-&gt;mode),</div><div class='add'>+                     rb_io_fmode_modestr(orig-&gt;mode));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (fptr-&gt;mode &amp; FMODE_WRITABLE) {</div><div class='ctx'>         if (io_fflush(fptr) &lt; 0)</div><div class='del'>-            rb_sys_fail(0);</div><div class='add'>+            rb_sys_fail_on_write(fptr);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	io_tell(fptr);</div><div class='add'>+        flush_before_seek(fptr);</div><div class='ctx'>     }</div><div class='ctx'>     if (orig-&gt;mode &amp; FMODE_READABLE) {</div><div class='del'>-	pos = io_tell(orig);</div><div class='add'>+        pos = io_tell(orig);</div><div class='ctx'>     }</div><div class='ctx'>     if (orig-&gt;mode &amp; FMODE_WRITABLE) {</div><div class='ctx'>         if (io_fflush(orig) &lt; 0)</div><div class='del'>-            rb_sys_fail(0);</div><div class='add'>+            rb_sys_fail_on_write(fptr);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* copy rb_io_t structure */</div><div class='hunk'>@@ -7288,13 +8350,13 @@ io_reopen(VALUE io, VALUE nfile)</div><div class='ctx'>     fd = fptr-&gt;fd;</div><div class='ctx'>     fd2 = orig-&gt;fd;</div><div class='ctx'>     if (fd != fd2) {</div><div class='del'>-	if (IS_PREP_STDIO(fptr) || fd &lt;= 2 || !fptr-&gt;stdio_file) {</div><div class='del'>-	    /* need to keep FILE objects of stdin, stdout and stderr */</div><div class='del'>-	    if (rb_cloexec_dup2(fd2, fd) &lt; 0)</div><div class='del'>-		rb_sys_fail_path(orig-&gt;pathv);</div><div class='add'>+        if (IS_PREP_STDIO(fptr) || fd &lt;= 2 || !fptr-&gt;stdio_file) {</div><div class='add'>+            /* need to keep FILE objects of stdin, stdout and stderr */</div><div class='add'>+            if (rb_cloexec_dup2(fd2, fd) &lt; 0)</div><div class='add'>+                rb_sys_fail_path(orig-&gt;pathv);</div><div class='ctx'>             rb_update_max_fd(fd);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='ctx'>             fclose(fptr-&gt;stdio_file);</div><div class='ctx'>             fptr-&gt;stdio_file = 0;</div><div class='ctx'>             fptr-&gt;fd = -1;</div><div class='hunk'>@@ -7302,20 +8364,20 @@ io_reopen(VALUE io, VALUE nfile)</div><div class='ctx'>                 rb_sys_fail_path(orig-&gt;pathv);</div><div class='ctx'>             rb_update_max_fd(fd);</div><div class='ctx'>             fptr-&gt;fd = fd;</div><div class='del'>-	}</div><div class='del'>-	rb_thread_fd_close(fd);</div><div class='del'>-	if ((orig-&gt;mode &amp; FMODE_READABLE) &amp;&amp; pos &gt;= 0) {</div><div class='del'>-	    if (io_seek(fptr, pos, SEEK_SET) &lt; 0 &amp;&amp; errno) {</div><div class='del'>-		rb_sys_fail_path(fptr-&gt;pathv);</div><div class='del'>-	    }</div><div class='del'>-	    if (io_seek(orig, pos, SEEK_SET) &lt; 0 &amp;&amp; errno) {</div><div class='del'>-		rb_sys_fail_path(orig-&gt;pathv);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='add'>+        rb_thread_fd_close(fd);</div><div class='add'>+        if ((orig-&gt;mode &amp; FMODE_READABLE) &amp;&amp; pos &gt;= 0) {</div><div class='add'>+            if (io_seek(fptr, pos, SEEK_SET) &lt; 0 &amp;&amp; errno) {</div><div class='add'>+                rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+            }</div><div class='add'>+            if (io_seek(orig, pos, SEEK_SET) &lt; 0 &amp;&amp; errno) {</div><div class='add'>+                rb_sys_fail_path(orig-&gt;pathv);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (fptr-&gt;mode &amp; FMODE_BINMODE) {</div><div class='del'>-	rb_io_binmode(io);</div><div class='add'>+        rb_io_binmode(io);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     RBASIC_SET_CLASS(io, rb_obj_class(nfile));</div><div class='hunk'>@@ -7329,8 +8391,8 @@ static int</div><div class='ctx'> rb_freopen(VALUE fname, const char *mode, FILE *fp)</div><div class='ctx'> {</div><div class='ctx'>     if (!freopen(RSTRING_PTR(fname), mode, fp)) {</div><div class='del'>-	RB_GC_GUARD(fname);</div><div class='del'>-	return errno;</div><div class='add'>+        RB_GC_GUARD(fname);</div><div class='add'>+        return errno;</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -7338,19 +8400,36 @@ rb_freopen(VALUE fname, const char *mode, FILE *fp)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.reopen(other_IO)             -&gt; ios</div><div class='del'>- *     ios.reopen(path, mode [, opt])   -&gt; ios</div><div class='add'>+ *    reopen(other_io)                 -&gt; self</div><div class='add'>+ *    reopen(path, mode = 'r', **opts) -&gt; self</div><div class='ctx'>  *</div><div class='del'>- *  Reassociates &lt;em&gt;ios&lt;/em&gt; with the I/O stream given in</div><div class='del'>- *  &lt;i&gt;other_IO&lt;/i&gt; or to a new stream opened on &lt;i&gt;path&lt;/i&gt;. This may</div><div class='del'>- *  dynamically change the actual class of this stream.</div><div class='del'>- *  The +mode+ and +opt+ parameters accept the same values as IO.open.</div><div class='add'>+ *  Reassociates the stream with another stream,</div><div class='add'>+ *  which may be of a different class.</div><div class='add'>+ *  This method may be used to redirect an existing stream</div><div class='add'>+ *  to a new destination.</div><div class='add'>+ *</div><div class='add'>+ *  With argument +other_io+ given, reassociates with that stream:</div><div class='add'>+ *</div><div class='add'>+ *    # Redirect $stdin from a file.</div><div class='add'>+ *    f = File.open('t.txt')</div><div class='add'>+ *    $stdin.reopen(f)</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *    # Redirect $stdout to a file.</div><div class='add'>+ *    f = File.open('t.tmp', 'w')</div><div class='add'>+ *    $stdout.reopen(f)</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  With argument +path+ given, reassociates with a new stream to that file path:</div><div class='add'>+ *</div><div class='add'>+ *    $stdin.reopen('t.txt')</div><div class='add'>+ *    $stdout.reopen('t.tmp', 'w')</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword arguments +opts+ specify:</div><div class='add'>+ *</div><div class='add'>+ *  - {Open Options}[rdoc-ref:IO@Open+Options].</div><div class='add'>+ *  - {Encoding options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='ctx'>  *</div><div class='del'>- *     f1 = File.new("testfile")</div><div class='del'>- *     f2 = File.new("testfile")</div><div class='del'>- *     f2.readlines[0]   #=&gt; "This is line one\n"</div><div class='del'>- *     f2.reopen(f1)     #=&gt; #&lt;File:testfile&gt;</div><div class='del'>- *     f2.readlines[0]   #=&gt; "This is line one\n"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -7361,57 +8440,57 @@ rb_io_reopen(int argc, VALUE *argv, VALUE file)</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'> </div><div class='ctx'>     if (rb_scan_args(argc, argv, "11:", &amp;fname, &amp;nmode, &amp;opt) == 1) {</div><div class='del'>-	VALUE tmp = rb_io_check_io(fname);</div><div class='del'>-	if (!NIL_P(tmp)) {</div><div class='del'>-	    return io_reopen(file, tmp);</div><div class='del'>-	}</div><div class='add'>+        VALUE tmp = rb_io_check_io(fname);</div><div class='add'>+        if (!NIL_P(tmp)) {</div><div class='add'>+            return io_reopen(file, tmp);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     FilePathValue(fname);</div><div class='ctx'>     rb_io_taint_check(file);</div><div class='ctx'>     fptr = RFILE(file)-&gt;fptr;</div><div class='ctx'>     if (!fptr) {</div><div class='del'>-	fptr = RFILE(file)-&gt;fptr = ZALLOC(rb_io_t);</div><div class='add'>+        fptr = RFILE(file)-&gt;fptr = ZALLOC(rb_io_t);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(nmode) || !NIL_P(opt)) {</div><div class='del'>-	int fmode;</div><div class='del'>-	convconfig_t convconfig;</div><div class='add'>+        int fmode;</div><div class='add'>+        convconfig_t convconfig;</div><div class='ctx'> </div><div class='del'>-	rb_io_extract_modeenc(&amp;nmode, 0, opt, &amp;oflags, &amp;fmode, &amp;convconfig);</div><div class='del'>-	if (IS_PREP_STDIO(fptr) &amp;&amp;</div><div class='add'>+        rb_io_extract_modeenc(&amp;nmode, 0, opt, &amp;oflags, &amp;fmode, &amp;convconfig);</div><div class='add'>+        if (IS_PREP_STDIO(fptr) &amp;&amp;</div><div class='ctx'>             ((fptr-&gt;mode &amp; FMODE_READWRITE) &amp; (fmode &amp; FMODE_READWRITE)) !=</div><div class='ctx'>             (fptr-&gt;mode &amp; FMODE_READWRITE)) {</div><div class='del'>-	    rb_raise(rb_eArgError,</div><div class='del'>-		     "%s can't change access mode from \"%s\" to \"%s\"",</div><div class='del'>-		     PREP_STDIO_NAME(fptr), rb_io_fmode_modestr(fptr-&gt;mode),</div><div class='del'>-		     rb_io_fmode_modestr(fmode));</div><div class='del'>-	}</div><div class='del'>-	fptr-&gt;mode = fmode;</div><div class='del'>-	fptr-&gt;encs = convconfig;</div><div class='add'>+            rb_raise(rb_eArgError,</div><div class='add'>+                     "%s can't change access mode from \"%s\" to \"%s\"",</div><div class='add'>+                     PREP_STDIO_NAME(fptr), rb_io_fmode_modestr(fptr-&gt;mode),</div><div class='add'>+                     rb_io_fmode_modestr(fmode));</div><div class='add'>+        }</div><div class='add'>+        fptr-&gt;mode = fmode;</div><div class='add'>+        fptr-&gt;encs = convconfig;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	oflags = rb_io_fmode_oflags(fptr-&gt;mode);</div><div class='add'>+        oflags = rb_io_fmode_oflags(fptr-&gt;mode);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     fptr-&gt;pathv = fname;</div><div class='ctx'>     if (fptr-&gt;fd &lt; 0) {</div><div class='ctx'>         fptr-&gt;fd = rb_sysopen(fptr-&gt;pathv, oflags, 0666);</div><div class='del'>-	fptr-&gt;stdio_file = 0;</div><div class='del'>-	return file;</div><div class='add'>+        fptr-&gt;stdio_file = 0;</div><div class='add'>+        return file;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (fptr-&gt;mode &amp; FMODE_WRITABLE) {</div><div class='ctx'>         if (io_fflush(fptr) &lt; 0)</div><div class='del'>-            rb_sys_fail(0);</div><div class='add'>+            rb_sys_fail_on_write(fptr);</div><div class='ctx'>     }</div><div class='ctx'>     fptr-&gt;rbuf.off = fptr-&gt;rbuf.len = 0;</div><div class='ctx'> </div><div class='ctx'>     if (fptr-&gt;stdio_file) {</div><div class='del'>-	int e = rb_freopen(rb_str_encode_ospath(fptr-&gt;pathv),</div><div class='del'>-			   rb_io_oflags_modestr(oflags),</div><div class='del'>-			   fptr-&gt;stdio_file);</div><div class='del'>-	if (e) rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='add'>+        int e = rb_freopen(rb_str_encode_ospath(fptr-&gt;pathv),</div><div class='add'>+                           rb_io_oflags_modestr(oflags),</div><div class='add'>+                           fptr-&gt;stdio_file);</div><div class='add'>+        if (e) rb_syserr_fail_path(e, fptr-&gt;pathv);</div><div class='ctx'>         fptr-&gt;fd = fileno(fptr-&gt;stdio_file);</div><div class='ctx'>         rb_fd_fix_cloexec(fptr-&gt;fd);</div><div class='ctx'> #ifdef USE_SETVBUF</div><div class='hunk'>@@ -7428,14 +8507,14 @@ rb_io_reopen(int argc, VALUE *argv, VALUE file)</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	int tmpfd = rb_sysopen(fptr-&gt;pathv, oflags, 0666);</div><div class='del'>-	int err = 0;</div><div class='del'>-	if (rb_cloexec_dup2(tmpfd, fptr-&gt;fd) &lt; 0)</div><div class='del'>-	    err = errno;</div><div class='del'>-	(void)close(tmpfd);</div><div class='del'>-	if (err) {</div><div class='del'>-	    rb_syserr_fail_path(err, fptr-&gt;pathv);</div><div class='del'>-	}</div><div class='add'>+        int tmpfd = rb_sysopen(fptr-&gt;pathv, oflags, 0666);</div><div class='add'>+        int err = 0;</div><div class='add'>+        if (rb_cloexec_dup2(tmpfd, fptr-&gt;fd) &lt; 0)</div><div class='add'>+            err = errno;</div><div class='add'>+        (void)close(tmpfd);</div><div class='add'>+        if (err) {</div><div class='add'>+            rb_syserr_fail_path(err, fptr-&gt;pathv);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return file;</div><div class='hunk'>@@ -7448,7 +8527,7 @@ rb_io_init_copy(VALUE dest, VALUE io)</div><div class='ctx'>     rb_io_t *fptr, *orig;</div><div class='ctx'>     int fd;</div><div class='ctx'>     VALUE write_io;</div><div class='del'>-    off_t pos;</div><div class='add'>+    rb_off_t pos;</div><div class='ctx'> </div><div class='ctx'>     io = rb_io_get_io(io);</div><div class='ctx'>     if (!OBJ_INIT_COPY(dest, io)) return dest;</div><div class='hunk'>@@ -7462,6 +8541,7 @@ rb_io_init_copy(VALUE dest, VALUE io)</div><div class='ctx'>     fptr-&gt;encs = orig-&gt;encs;</div><div class='ctx'>     fptr-&gt;pid = orig-&gt;pid;</div><div class='ctx'>     fptr-&gt;lineno = orig-&gt;lineno;</div><div class='add'>+    fptr-&gt;timeout = orig-&gt;timeout;</div><div class='ctx'>     if (!NIL_P(orig-&gt;pathv)) fptr-&gt;pathv = orig-&gt;pathv;</div><div class='ctx'>     fptr_copy_finalizer(fptr, orig);</div><div class='ctx'> </div><div class='hunk'>@@ -7471,7 +8551,7 @@ rb_io_init_copy(VALUE dest, VALUE io)</div><div class='ctx'>     if (0 &lt;= pos)</div><div class='ctx'>         io_seek(fptr, pos, SEEK_SET);</div><div class='ctx'>     if (fptr-&gt;mode &amp; FMODE_BINMODE) {</div><div class='del'>-	rb_io_binmode(dest);</div><div class='add'>+        rb_io_binmode(dest);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     write_io = GetWriteIO(io);</div><div class='hunk'>@@ -7486,11 +8566,13 @@ rb_io_init_copy(VALUE dest, VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.printf(format_string [, obj, ...])   -&gt; nil</div><div class='add'>+ *    printf(format_string, *objects) -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Formats and writes +objects+ to the stream.</div><div class='add'>+ *</div><div class='add'>+ *  For details on +format_string+, see</div><div class='add'>+ *  {Format Specifications}[rdoc-ref:format_specifications.rdoc].</div><div class='ctx'>  *</div><div class='del'>- *  Formats and writes to &lt;em&gt;ios&lt;/em&gt;, converting parameters under</div><div class='del'>- *  control of the format string. See &lt;code&gt;Kernel#sprintf&lt;/code&gt;</div><div class='del'>- *  for details.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -7502,56 +8584,121 @@ rb_io_printf(int argc, const VALUE *argv, VALUE out)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     printf(io, string [, obj ... ])    -&gt; nil</div><div class='del'>- *     printf(string [, obj ... ])        -&gt; nil</div><div class='add'>+ *    printf(format_string, *objects)               -&gt; nil</div><div class='add'>+ *    printf(io, format_string, *objects) -&gt; nil</div><div class='ctx'>  *</div><div class='ctx'>  *  Equivalent to:</div><div class='del'>- *     io.write(sprintf(string, obj, ...))</div><div class='del'>- *  or</div><div class='del'>- *     $stdout.write(sprintf(string, obj, ...))</div><div class='add'>+ *</div><div class='add'>+ *    io.write(sprintf(format_string, *objects))</div><div class='add'>+ *</div><div class='add'>+ *  For details on +format_string+, see</div><div class='add'>+ *  {Format Specifications}[rdoc-ref:format_specifications.rdoc].</div><div class='add'>+ *</div><div class='add'>+ *  With the single argument +format_string+, formats +objects+ into the string,</div><div class='add'>+ *  then writes the formatted string to $stdout:</div><div class='add'>+ *</div><div class='add'>+ *    printf('%4.4d %10s %2.2f', 24, 24, 24.0)</div><div class='add'>+ *</div><div class='add'>+ *  Output (on $stdout):</div><div class='add'>+ *</div><div class='add'>+ *    0024         24 24.00#</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +io+ and +format_string+, formats +objects+ into the string,</div><div class='add'>+ *  then writes the formatted string to +io+:</div><div class='add'>+ *</div><div class='add'>+ *    printf($stderr, '%4.4d %10s %2.2f', 24, 24, 24.0)</div><div class='add'>+ *</div><div class='add'>+ *  Output (on $stderr):</div><div class='add'>+ *</div><div class='add'>+ *    0024         24 24.00# =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  With no arguments, does nothing.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_f_printf(int argc, VALUE *argv)</div><div class='add'>+rb_f_printf(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE out;</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0) return Qnil;</div><div class='ctx'>     if (RB_TYPE_P(argv[0], T_STRING)) {</div><div class='del'>-	out = rb_stdout;</div><div class='add'>+        out = rb_ractor_stdout();</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	out = argv[0];</div><div class='del'>-	argv++;</div><div class='del'>-	argc--;</div><div class='add'>+        out = argv[0];</div><div class='add'>+        argv++;</div><div class='add'>+        argc--;</div><div class='ctx'>     }</div><div class='ctx'>     rb_io_write(out, rb_f_sprintf(argc, argv));</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+deprecated_str_setter(VALUE val, ID id, VALUE *var)</div><div class='add'>+{</div><div class='add'>+    rb_str_setter(val, id, &amp;val);</div><div class='add'>+    if (!NIL_P(val)) {</div><div class='add'>+        rb_warn_deprecated("`%s'", NULL, rb_id2name(id));</div><div class='add'>+    }</div><div class='add'>+    *var = val;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.print               -&gt; nil</div><div class='del'>- *     ios.print(obj, ...)     -&gt; nil</div><div class='add'>+ *    print(*objects) -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Writes the given object(s) to &lt;em&gt;ios&lt;/em&gt;. Returns +nil+.</div><div class='add'>+ *  Writes the given objects to the stream; returns +nil+.</div><div class='add'>+ *  Appends the output record separator &lt;tt&gt;$OUTPUT_RECORD_SEPARATOR&lt;/tt&gt;</div><div class='add'>+ *  (&lt;tt&gt;$\\&lt;/tt&gt;), if it is not +nil+.</div><div class='add'>+ *  See {Line IO}[rdoc-ref:IO@Line+IO].</div><div class='ctx'>  *</div><div class='del'>- *  The stream must be opened for writing.</div><div class='del'>- *  Each given object that isn't a string will be converted by calling</div><div class='del'>- *  its &lt;code&gt;to_s&lt;/code&gt; method.</div><div class='del'>- *  When called without arguments, prints the contents of &lt;code&gt;$_&lt;/code&gt;.</div><div class='add'>+ *  With argument +objects+ given, for each object:</div><div class='ctx'>  *</div><div class='del'>- *  If the output field separator (&lt;code&gt;$,&lt;/code&gt;) is not +nil+,</div><div class='del'>- *  it is inserted between objects.</div><div class='del'>- *  If the output record separator (&lt;code&gt;$\\&lt;/code&gt;) is not +nil+,</div><div class='del'>- *  it is appended to the output.</div><div class='add'>+ *  - Converts via its method +to_s+ if not a string.</div><div class='add'>+ *  - Writes to the stream.</div><div class='add'>+ *  - If not the last object, writes the output field separator</div><div class='add'>+ *    &lt;tt&gt;$OUTPUT_FIELD_SEPARATOR&lt;/tt&gt; (&lt;tt&gt;$,&lt;/tt&gt;) if it is not +nil+.</div><div class='ctx'>  *</div><div class='del'>- *     $stdout.print("This is ", 100, " percent.\n")</div><div class='add'>+ *  With default separators:</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *    f = File.open('t.tmp', 'w+')</div><div class='add'>+ *    objects = [0, 0.0, Rational(0, 1), Complex(0, 0), :zero, 'zero']</div><div class='add'>+ *    p $OUTPUT_RECORD_SEPARATOR</div><div class='add'>+ *    p $OUTPUT_FIELD_SEPARATOR</div><div class='add'>+ *    f.print(*objects)</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    p f.read</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    nil</div><div class='add'>+ *    nil</div><div class='add'>+ *    "00.00/10+0izerozero"</div><div class='add'>+ *</div><div class='add'>+ *  With specified separators:</div><div class='add'>+ *</div><div class='add'>+ *    $\ = "\n"</div><div class='add'>+ *    $, = ','</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    f.print(*objects)</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    p f.read</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "0,0.0,0/1,0+0i,zero,zero\n"</div><div class='add'>+ *</div><div class='add'>+ *  With no argument given, writes the content of &lt;tt&gt;$_&lt;/tt&gt;</div><div class='add'>+ *  (which is usually the most recent user input):</div><div class='add'>+ *</div><div class='add'>+ *    f = File.open('t.tmp', 'w+')</div><div class='add'>+ *    gets # Sets $_ to the most recent user input.</div><div class='add'>+ *    f.print</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- *     This is 100 percent.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -7562,18 +8709,21 @@ rb_io_print(int argc, const VALUE *argv, VALUE out)</div><div class='ctx'> </div><div class='ctx'>     /* if no argument given, print `$_' */</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	argc = 1;</div><div class='del'>-	line = rb_lastline_get();</div><div class='del'>-	argv = &amp;line;</div><div class='add'>+        argc = 1;</div><div class='add'>+        line = rb_lastline_get();</div><div class='add'>+        argv = &amp;line;</div><div class='add'>+    }</div><div class='add'>+    if (argc &gt; 1 &amp;&amp; !NIL_P(rb_output_fs)) {</div><div class='add'>+        rb_category_warn(RB_WARN_CATEGORY_DEPRECATED, "$, is set to non-nil value");</div><div class='ctx'>     }</div><div class='ctx'>     for (i=0; i&lt;argc; i++) {</div><div class='del'>-	if (!NIL_P(rb_output_fs) &amp;&amp; i&gt;0) {</div><div class='del'>-	    rb_io_write(out, rb_output_fs);</div><div class='del'>-	}</div><div class='del'>-	rb_io_write(out, argv[i]);</div><div class='add'>+        if (!NIL_P(rb_output_fs) &amp;&amp; i&gt;0) {</div><div class='add'>+            rb_io_write(out, rb_output_fs);</div><div class='add'>+        }</div><div class='add'>+        rb_io_write(out, argv[i]);</div><div class='ctx'>     }</div><div class='ctx'>     if (argc &gt; 0 &amp;&amp; !NIL_P(rb_output_rs)) {</div><div class='del'>-	rb_io_write(out, rb_output_rs);</div><div class='add'>+        rb_io_write(out, rb_output_rs);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -7581,50 +8731,79 @@ rb_io_print(int argc, const VALUE *argv, VALUE out)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     print(obj, ...)    -&gt; nil</div><div class='add'>+ *    print(*objects) -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Prints each object in turn to &lt;code&gt;$stdout&lt;/code&gt;. If the output</div><div class='del'>- *  field separator (&lt;code&gt;$,&lt;/code&gt;) is not +nil+, its</div><div class='del'>- *  contents will appear between each field. If the output record</div><div class='del'>- *  separator (&lt;code&gt;$\\&lt;/code&gt;) is not +nil+, it will be</div><div class='del'>- *  appended to the output. If no arguments are given, prints</div><div class='del'>- *  &lt;code&gt;$_&lt;/code&gt;. Objects that aren't strings will be converted by</div><div class='del'>- *  calling their &lt;code&gt;to_s&lt;/code&gt; method.</div><div class='add'>+ *  Equivalent to &lt;tt&gt;$stdout.print(*objects)&lt;/tt&gt;,</div><div class='add'>+ *  this method is the straightforward way to write to &lt;tt&gt;$stdout&lt;/tt&gt;.</div><div class='ctx'>  *</div><div class='del'>- *     print "cat", [1,2,3], 99, "\n"</div><div class='del'>- *     $, = ", "</div><div class='del'>- *     $\ = "\n"</div><div class='del'>- *     print "cat", [1,2,3], 99</div><div class='add'>+ *  Writes the given objects to &lt;tt&gt;$stdout&lt;/tt&gt;; returns +nil+.</div><div class='add'>+ *  Appends the output record separator &lt;tt&gt;$OUTPUT_RECORD_SEPARATOR&lt;/tt&gt;</div><div class='add'>+ *  &lt;tt&gt;$\\&lt;/tt&gt;), if it is not +nil+.</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  With argument +objects+ given, for each object:</div><div class='add'>+ *</div><div class='add'>+ *  - Converts via its method +to_s+ if not a string.</div><div class='add'>+ *  - Writes to &lt;tt&gt;stdout&lt;/tt&gt;.</div><div class='add'>+ *  - If not the last object, writes the output field separator</div><div class='add'>+ *    &lt;tt&gt;$OUTPUT_FIELD_SEPARATOR&lt;/tt&gt; (&lt;tt&gt;$,&lt;/tt&gt; if it is not +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  With default separators:</div><div class='add'>+ *</div><div class='add'>+ *    objects = [0, 0.0, Rational(0, 1), Complex(0, 0), :zero, 'zero']</div><div class='add'>+ *    $OUTPUT_RECORD_SEPARATOR</div><div class='add'>+ *    $OUTPUT_FIELD_SEPARATOR</div><div class='add'>+ *    print(*objects)</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    nil</div><div class='add'>+ *    nil</div><div class='add'>+ *    00.00/10+0izerozero</div><div class='add'>+ *</div><div class='add'>+ *  With specified separators:</div><div class='add'>+ *</div><div class='add'>+ *    $OUTPUT_RECORD_SEPARATOR = "\n"</div><div class='add'>+ *    $OUTPUT_FIELD_SEPARATOR = ','</div><div class='add'>+ *    print(*objects)</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    0,0.0,0/1,0+0i,zero,zero</div><div class='add'>+ *</div><div class='add'>+ *  With no argument given, writes the content of &lt;tt&gt;$_&lt;/tt&gt;</div><div class='add'>+ *  (which is usually the most recent user input):</div><div class='add'>+ *</div><div class='add'>+ *    gets  # Sets $_ to the most recent user input.</div><div class='add'>+ *    print # Prints $_.</div><div class='ctx'>  *</div><div class='del'>- *     cat12399</div><div class='del'>- *     cat, 1, 2, 3, 99</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_f_print(int argc, const VALUE *argv)</div><div class='add'>+rb_f_print(int argc, const VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='del'>-    rb_io_print(argc, argv, rb_stdout);</div><div class='add'>+    rb_io_print(argc, argv, rb_ractor_stdout());</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.putc(obj)    -&gt; obj</div><div class='add'>+ *    putc(object) -&gt; object</div><div class='ctx'>  *</div><div class='del'>- *  If &lt;i&gt;obj&lt;/i&gt; is &lt;code&gt;Numeric&lt;/code&gt;, write the character whose code is</div><div class='del'>- *  the least-significant byte of &lt;i&gt;obj&lt;/i&gt;.</div><div class='del'>- *  If &lt;i&gt;obj&lt;/i&gt; is &lt;code&gt;String&lt;/code&gt;, write the first character</div><div class='del'>- *  of &lt;i&gt;obj&lt;/i&gt; to &lt;em&gt;ios&lt;/em&gt;.</div><div class='del'>- *  Otherwise, raise &lt;code&gt;TypeError&lt;/code&gt;.</div><div class='add'>+ *  Writes a character to the stream.</div><div class='add'>+ *  See {Character IO}[rdoc-ref:IO@Character+IO].</div><div class='ctx'>  *</div><div class='del'>- *     $stdout.putc "A"</div><div class='del'>- *     $stdout.putc 65</div><div class='add'>+ *  If +object+ is numeric, converts to integer if necessary,</div><div class='add'>+ *  then writes the character whose code is the</div><div class='add'>+ *  least significant byte;</div><div class='add'>+ *  if +object+ is a string, writes the first character:</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *    $stdout.putc "A"</div><div class='add'>+ *    $stdout.putc 65</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='ctx'>  *     AA</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -7632,35 +8811,43 @@ rb_io_putc(VALUE io, VALUE ch)</div><div class='ctx'> {</div><div class='ctx'>     VALUE str;</div><div class='ctx'>     if (RB_TYPE_P(ch, T_STRING)) {</div><div class='del'>-	str = rb_str_substr(ch, 0, 1);</div><div class='add'>+        str = rb_str_substr(ch, 0, 1);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	char c = NUM2CHR(ch);</div><div class='del'>-	str = rb_str_new(&amp;c, 1);</div><div class='add'>+        char c = NUM2CHR(ch);</div><div class='add'>+        str = rb_str_new(&amp;c, 1);</div><div class='ctx'>     }</div><div class='ctx'>     rb_io_write(io, str);</div><div class='ctx'>     return ch;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#define forward(obj, id, argc, argv) \</div><div class='add'>+    rb_funcallv_kw(obj, id, argc, argv, RB_PASS_CALLED_KEYWORDS)</div><div class='add'>+#define forward_public(obj, id, argc, argv) \</div><div class='add'>+    rb_funcallv_public_kw(obj, id, argc, argv, RB_PASS_CALLED_KEYWORDS)</div><div class='add'>+#define forward_current(id, argc, argv) \</div><div class='add'>+    forward_public(ARGF.current_file, id, argc, argv)</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     putc(int)   -&gt; int</div><div class='add'>+ *    putc(int) -&gt; int</div><div class='ctx'>  *</div><div class='ctx'>  *  Equivalent to:</div><div class='ctx'>  *</div><div class='ctx'>  *    $stdout.putc(int)</div><div class='ctx'>  *</div><div class='del'>- *  Refer to the documentation for IO#putc for important information regarding</div><div class='del'>- *  multi-byte characters.</div><div class='add'>+ *  See IO#putc for important information regarding multi-byte characters.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_f_putc(VALUE recv, VALUE ch)</div><div class='ctx'> {</div><div class='del'>-    if (recv == rb_stdout) {</div><div class='del'>-	return rb_io_putc(recv, ch);</div><div class='add'>+    VALUE r_stdout = rb_ractor_stdout();</div><div class='add'>+    if (recv == r_stdout) {</div><div class='add'>+        return rb_io_putc(recv, ch);</div><div class='ctx'>     }</div><div class='del'>-    return rb_funcallv(rb_stdout, rb_intern("putc"), 1, &amp;ch);</div><div class='add'>+    return forward(r_stdout, rb_intern("putc"), 1, &amp;ch);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -7674,7 +8861,7 @@ rb_str_end_with_asciichar(VALUE str, int c)</div><div class='ctx'> </div><div class='ctx'>     if (len == 0) return 0;</div><div class='ctx'>     if ((n = rb_enc_mbminlen(enc)) == 1) {</div><div class='del'>-	return ptr[len - 1] == c;</div><div class='add'>+        return ptr[len - 1] == c;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_enc_ascget(ptr + ((len - 1) / n) * n, ptr + len, &amp;n, enc) == c;</div><div class='ctx'> }</div><div class='hunk'>@@ -7686,74 +8873,101 @@ io_puts_ary(VALUE ary, VALUE out, int recur)</div><div class='ctx'>     long i;</div><div class='ctx'> </div><div class='ctx'>     if (recur) {</div><div class='del'>-	tmp = rb_str_new2("[...]");</div><div class='del'>-	rb_io_puts(1, &amp;tmp, out);</div><div class='del'>-	return Qtrue;</div><div class='add'>+        tmp = rb_str_new2("[...]");</div><div class='add'>+        rb_io_puts(1, &amp;tmp, out);</div><div class='add'>+        return Qtrue;</div><div class='ctx'>     }</div><div class='ctx'>     ary = rb_check_array_type(ary);</div><div class='ctx'>     if (NIL_P(ary)) return Qfalse;</div><div class='ctx'>     for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='del'>-	tmp = RARRAY_AREF(ary, i);</div><div class='del'>-	rb_io_puts(1, &amp;tmp, out);</div><div class='add'>+        tmp = RARRAY_AREF(ary, i);</div><div class='add'>+        rb_io_puts(1, &amp;tmp, out);</div><div class='ctx'>     }</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.puts(obj, ...)    -&gt; nil</div><div class='add'>+ *    puts(*objects) -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Writes the given object(s) to &lt;em&gt;ios&lt;/em&gt;.</div><div class='del'>- *  Writes a newline after any that do not already end</div><div class='del'>- *  with a newline sequence. Returns +nil+.</div><div class='add'>+ *  Writes the given +objects+ to the stream, which must be open for writing;</div><div class='add'>+ *  returns +nil+.\</div><div class='add'>+ *  Writes a newline after each that does not already end with a newline sequence.</div><div class='add'>+ *  If called without arguments, writes a newline.</div><div class='add'>+ *  See {Line IO}[rdoc-ref:IO@Line+IO].</div><div class='ctx'>  *</div><div class='del'>- *  The stream must be opened for writing.</div><div class='del'>- *  If called with an array argument, writes each element on a new line.</div><div class='del'>- *  Each given object that isn't a string or array will be converted</div><div class='del'>- *  by calling its +to_s+ method.</div><div class='del'>- *  If called without arguments, outputs a single newline.</div><div class='add'>+ *  Note that each added newline is the character &lt;tt&gt;"\n"&lt;//tt&gt;,</div><div class='add'>+ *  not the output record separator (&lt;tt&gt;$\\&lt;/tt&gt;).</div><div class='ctx'>  *</div><div class='del'>- *     $stdout.puts("this", "is", ["a", "test"])</div><div class='add'>+ *  Treatment for each object:</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  - \String: writes the string.</div><div class='add'>+ *  - Neither string nor array: writes &lt;tt&gt;object.to_s&lt;/tt&gt;.</div><div class='add'>+ *  - \Array: writes each element of the array; arrays may be nested.</div><div class='ctx'>  *</div><div class='del'>- *     this</div><div class='del'>- *     is</div><div class='del'>- *     a</div><div class='del'>- *     test</div><div class='add'>+ *  To keep these examples brief, we define this helper method:</div><div class='add'>+ *</div><div class='add'>+ *    def show(*objects)</div><div class='add'>+ *      # Puts objects to file.</div><div class='add'>+ *      f = File.new('t.tmp', 'w+')</div><div class='add'>+ *      f.puts(objects)</div><div class='add'>+ *      # Return file content.</div><div class='add'>+ *      f.rewind</div><div class='add'>+ *      p f.read</div><div class='add'>+ *      f.close</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *    # Strings without newlines.</div><div class='add'>+ *    show('foo', 'bar', 'baz')     # =&gt; "foo\nbar\nbaz\n"</div><div class='add'>+ *    # Strings, some with newlines.</div><div class='add'>+ *    show("foo\n", 'bar', "baz\n") # =&gt; "foo\nbar\nbaz\n"</div><div class='add'>+ *</div><div class='add'>+ *    # Neither strings nor arrays:</div><div class='add'>+ *    show(0, 0.0, Rational(0, 1), Complex(9, 0), :zero)</div><div class='add'>+ *    # =&gt; "0\n0.0\n0/1\n9+0i\nzero\n"</div><div class='add'>+ *</div><div class='add'>+ *    # Array of strings.</div><div class='add'>+ *    show(['foo', "bar\n", 'baz']) # =&gt; "foo\nbar\nbaz\n"</div><div class='add'>+ *    # Nested arrays.</div><div class='add'>+ *    show([[[0, 1], 2, 3], 4, 5])  # =&gt; "0\n1\n2\n3\n4\n5\n"</div><div class='ctx'>  *</div><div class='del'>- *  Note that +puts+ always uses newlines and is not affected</div><div class='del'>- *  by the output record separator (&lt;code&gt;$\\&lt;/code&gt;).</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_io_puts(int argc, const VALUE *argv, VALUE out)</div><div class='ctx'> {</div><div class='del'>-    int i, n;</div><div class='ctx'>     VALUE line, args[2];</div><div class='ctx'> </div><div class='ctx'>     /* if no argument given, print newline. */</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	rb_io_write(out, rb_default_rs);</div><div class='del'>-	return Qnil;</div><div class='add'>+        rb_io_write(out, rb_default_rs);</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='del'>-    for (i=0; i&lt;argc; i++) {</div><div class='del'>-	if (RB_TYPE_P(argv[i], T_STRING)) {</div><div class='del'>-	    line = argv[i];</div><div class='del'>-	    goto string;</div><div class='del'>-	}</div><div class='del'>-	if (rb_exec_recursive(io_puts_ary, argv[i], out)) {</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	line = rb_obj_as_string(argv[i]);</div><div class='del'>-      string:</div><div class='del'>-	n = 0;</div><div class='del'>-	args[n++] = line;</div><div class='del'>-	if (RSTRING_LEN(line) == 0 ||</div><div class='del'>-            !rb_str_end_with_asciichar(line, '\n')) {</div><div class='del'>-	    args[n++] = rb_default_rs;</div><div class='del'>-	}</div><div class='del'>-	rb_io_writev(out, n, args);</div><div class='add'>+    for (int i = 0; i &lt; argc; i++) {</div><div class='add'>+        // Convert the argument to a string:</div><div class='add'>+        if (RB_TYPE_P(argv[i], T_STRING)) {</div><div class='add'>+            line = argv[i];</div><div class='add'>+        }</div><div class='add'>+        else if (rb_exec_recursive(io_puts_ary, argv[i], out)) {</div><div class='add'>+            continue;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            line = rb_obj_as_string(argv[i]);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // Write the line:</div><div class='add'>+        int n = 0;</div><div class='add'>+        if (RSTRING_LEN(line) == 0) {</div><div class='add'>+            args[n++] = rb_default_rs;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            args[n++] = line;</div><div class='add'>+            if (!rb_str_end_with_asciichar(line, '\n')) {</div><div class='add'>+                args[n++] = rb_default_rs;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        rb_io_writev(out, n, args);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -7761,116 +8975,118 @@ rb_io_puts(int argc, const VALUE *argv, VALUE out)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     puts(obj, ...)    -&gt; nil</div><div class='add'>+ *    puts(*objects)    -&gt; nil</div><div class='ctx'>  *</div><div class='ctx'>  *  Equivalent to</div><div class='ctx'>  *</div><div class='del'>- *      $stdout.puts(obj, ...)</div><div class='add'>+ *     $stdout.puts(objects)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_f_puts(int argc, VALUE *argv, VALUE recv)</div><div class='ctx'> {</div><div class='del'>-    if (recv == rb_stdout) {</div><div class='del'>-	return rb_io_puts(argc, argv, recv);</div><div class='add'>+    VALUE r_stdout = rb_ractor_stdout();</div><div class='add'>+    if (recv == r_stdout) {</div><div class='add'>+        return rb_io_puts(argc, argv, recv);</div><div class='ctx'>     }</div><div class='del'>-    return rb_funcallv(rb_stdout, rb_intern("puts"), argc, argv);</div><div class='add'>+    return forward(r_stdout, rb_intern("puts"), argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-rb_p(VALUE obj) /* for debug print within C code */</div><div class='add'>+static VALUE</div><div class='add'>+rb_p_write(VALUE str)</div><div class='ctx'> {</div><div class='ctx'>     VALUE args[2];</div><div class='del'>-    args[0] = rb_obj_as_string(rb_inspect(obj));</div><div class='add'>+    args[0] = str;</div><div class='ctx'>     args[1] = rb_default_rs;</div><div class='del'>-    if (RB_TYPE_P(rb_stdout, T_FILE) &amp;&amp;</div><div class='del'>-        rb_method_basic_definition_p(CLASS_OF(rb_stdout), id_write)) {</div><div class='del'>-	io_writev(2, args, rb_stdout);</div><div class='add'>+    VALUE r_stdout = rb_ractor_stdout();</div><div class='add'>+    if (RB_TYPE_P(r_stdout, T_FILE) &amp;&amp;</div><div class='add'>+        rb_method_basic_definition_p(CLASS_OF(r_stdout), id_write)) {</div><div class='add'>+        io_writev(2, args, r_stdout);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_io_writev(rb_stdout, 2, args);</div><div class='add'>+        rb_io_writev(r_stdout, 2, args);</div><div class='ctx'>     }</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-struct rb_f_p_arg {</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-};</div><div class='add'>+void</div><div class='add'>+rb_p(VALUE obj) /* for debug print within C code */</div><div class='add'>+{</div><div class='add'>+    rb_p_write(rb_obj_as_string(rb_inspect(obj)));</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_f_p_internal(VALUE arg)</div><div class='add'>+rb_p_result(int argc, const VALUE *argv)</div><div class='ctx'> {</div><div class='del'>-    struct rb_f_p_arg *arg1 = (struct rb_f_p_arg*)arg;</div><div class='del'>-    int argc = arg1-&gt;argc;</div><div class='del'>-    VALUE *argv = arg1-&gt;argv;</div><div class='del'>-    int i;</div><div class='ctx'>     VALUE ret = Qnil;</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;argc; i++) {</div><div class='del'>-	rb_p(argv[i]);</div><div class='del'>-    }</div><div class='ctx'>     if (argc == 1) {</div><div class='del'>-	ret = argv[0];</div><div class='add'>+        ret = argv[0];</div><div class='ctx'>     }</div><div class='ctx'>     else if (argc &gt; 1) {</div><div class='del'>-	ret = rb_ary_new4(argc, argv);</div><div class='add'>+        ret = rb_ary_new4(argc, argv);</div><div class='ctx'>     }</div><div class='del'>-    if (RB_TYPE_P(rb_stdout, T_FILE)) {</div><div class='del'>-	rb_io_flush(rb_stdout);</div><div class='add'>+    VALUE r_stdout = rb_ractor_stdout();</div><div class='add'>+    if (RB_TYPE_P(r_stdout, T_FILE)) {</div><div class='add'>+        rb_uninterruptible(rb_io_flush, r_stdout);</div><div class='ctx'>     }</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     p(obj)              -&gt; obj</div><div class='del'>- *     p(obj1, obj2, ...)  -&gt; [obj, ...]</div><div class='del'>- *     p()                 -&gt; nil</div><div class='add'>+ *    p(object)   -&gt; obj</div><div class='add'>+ *    p(*objects) -&gt; array of objects</div><div class='add'>+ *    p           -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  For each object, directly writes _obj_.+inspect+ followed by a</div><div class='del'>- *  newline to the program's standard output.</div><div class='add'>+ *  For each object +obj+, executes:</div><div class='ctx'>  *</div><div class='del'>- *     S = Struct.new(:name, :state)</div><div class='del'>- *     s = S['dave', 'TX']</div><div class='del'>- *     p s</div><div class='add'>+ *    $stdout.write(obj.inspect, "\n")</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  With one object given, returns the object;</div><div class='add'>+ *  with multiple objects given, returns an array containing the objects;</div><div class='add'>+ *  with no object given, returns +nil+.</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *    r = Range.new(0, 4)</div><div class='add'>+ *    p r                 # =&gt; 0..4</div><div class='add'>+ *    p [r, r, r]         # =&gt; [0..4, 0..4, 0..4]</div><div class='add'>+ *    p                   # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *     0..4</div><div class='add'>+ *     [0..4, 0..4, 0..4]</div><div class='ctx'>  *</div><div class='del'>- *     #&lt;S name="dave", state="TX"&gt;</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_f_p(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    struct rb_f_p_arg arg;</div><div class='del'>-    arg.argc = argc;</div><div class='del'>-    arg.argv = argv;</div><div class='del'>-</div><div class='del'>-    return rb_uninterruptible(rb_f_p_internal, (VALUE)&amp;arg);</div><div class='add'>+    int i;</div><div class='add'>+    for (i=0; i&lt;argc; i++) {</div><div class='add'>+        VALUE inspected = rb_obj_as_string(rb_inspect(argv[i]));</div><div class='add'>+        rb_uninterruptible(rb_p_write, inspected);</div><div class='add'>+    }</div><div class='add'>+    return rb_p_result(argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     obj.display(port=$&gt;)    -&gt; nil</div><div class='add'>+ *    display(port = $&gt;) -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Prints &lt;i&gt;obj&lt;/i&gt; on the given port (default &lt;code&gt;$&gt;&lt;/code&gt;).</div><div class='del'>- *  Equivalent to:</div><div class='del'>- *</div><div class='del'>- *     def display(port=$&gt;)</div><div class='del'>- *       port.write self</div><div class='del'>- *       nil</div><div class='del'>- *     end</div><div class='del'>- *</div><div class='del'>- *  For example:</div><div class='add'>+ *  Writes +self+ on the given port:</div><div class='ctx'>  *</div><div class='ctx'>  *     1.display</div><div class='ctx'>  *     "cat".display</div><div class='ctx'>  *     [ 4, 5, 6 ].display</div><div class='ctx'>  *     puts</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='ctx'>  *     1cat[4, 5, 6]</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -7878,34 +9094,35 @@ rb_obj_display(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     VALUE out;</div><div class='ctx'> </div><div class='del'>-    out = (!rb_check_arity(argc, 0, 1) ? rb_stdout : argv[0]);</div><div class='add'>+    out = (!rb_check_arity(argc, 0, 1) ? rb_ractor_stdout() : argv[0]);</div><div class='ctx'>     rb_io_write(out, self);</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-rb_stderr_to_original_p(void)</div><div class='add'>+rb_stderr_to_original_p(VALUE err)</div><div class='ctx'> {</div><div class='del'>-    return (rb_stderr == orig_stderr || RFILE(orig_stderr)-&gt;fptr-&gt;fd &lt; 0);</div><div class='add'>+    return (err == orig_stderr || RFILE(orig_stderr)-&gt;fptr-&gt;fd &lt; 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_write_error2(const char *mesg, long len)</div><div class='ctx'> {</div><div class='del'>-    if (rb_stderr_to_original_p()) {</div><div class='add'>+    VALUE out = rb_ractor_stderr();</div><div class='add'>+    if (rb_stderr_to_original_p(out)) {</div><div class='ctx'> #ifdef _WIN32</div><div class='del'>-	if (isatty(fileno(stderr))) {</div><div class='del'>-	    if (rb_w32_write_console(rb_str_new(mesg, len), fileno(stderr)) &gt; 0) return;</div><div class='del'>-	}</div><div class='add'>+        if (isatty(fileno(stderr))) {</div><div class='add'>+            if (rb_w32_write_console(rb_str_new(mesg, len), fileno(stderr)) &gt; 0) return;</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='del'>-	if (fwrite(mesg, sizeof(char), (size_t)len, stderr) &lt; (size_t)len) {</div><div class='del'>-	    /* failed to write to stderr, what can we do? */</div><div class='del'>-	    return;</div><div class='del'>-	}</div><div class='add'>+        if (fwrite(mesg, sizeof(char), (size_t)len, stderr) &lt; (size_t)len) {</div><div class='add'>+            /* failed to write to stderr, what can we do? */</div><div class='add'>+            return;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_io_write(rb_stderr, rb_str_new(mesg, len));</div><div class='add'>+        rb_io_write(out, rb_str_new(mesg, len));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -7918,30 +9135,31 @@ rb_write_error(const char *mesg)</div><div class='ctx'> void</div><div class='ctx'> rb_write_error_str(VALUE mesg)</div><div class='ctx'> {</div><div class='add'>+    VALUE out = rb_ractor_stderr();</div><div class='ctx'>     /* a stopgap measure for the time being */</div><div class='del'>-    if (rb_stderr_to_original_p()) {</div><div class='del'>-	size_t len = (size_t)RSTRING_LEN(mesg);</div><div class='add'>+    if (rb_stderr_to_original_p(out)) {</div><div class='add'>+        size_t len = (size_t)RSTRING_LEN(mesg);</div><div class='ctx'> #ifdef _WIN32</div><div class='del'>-	if (isatty(fileno(stderr))) {</div><div class='del'>-	    if (rb_w32_write_console(mesg, fileno(stderr)) &gt; 0) return;</div><div class='del'>-	}</div><div class='add'>+        if (isatty(fileno(stderr))) {</div><div class='add'>+            if (rb_w32_write_console(mesg, fileno(stderr)) &gt; 0) return;</div><div class='add'>+        }</div><div class='ctx'> #endif</div><div class='del'>-	if (fwrite(RSTRING_PTR(mesg), sizeof(char), len, stderr) &lt; len) {</div><div class='del'>-	    RB_GC_GUARD(mesg);</div><div class='del'>-	    return;</div><div class='del'>-	}</div><div class='add'>+        if (fwrite(RSTRING_PTR(mesg), sizeof(char), len, stderr) &lt; len) {</div><div class='add'>+            RB_GC_GUARD(mesg);</div><div class='add'>+            return;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	/* may unlock GVL, and  */</div><div class='del'>-	rb_io_write(rb_stderr, mesg);</div><div class='add'>+        /* may unlock GVL, and  */</div><div class='add'>+        rb_io_write(out, mesg);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='ctx'> rb_stderr_tty_p(void)</div><div class='ctx'> {</div><div class='del'>-    if (rb_stderr_to_original_p())</div><div class='del'>-	return isatty(fileno(stderr));</div><div class='add'>+    if (rb_stderr_to_original_p(rb_ractor_stderr()))</div><div class='add'>+        return isatty(fileno(stderr));</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -7949,17 +9167,48 @@ static void</div><div class='ctx'> must_respond_to(ID mid, VALUE val, ID id)</div><div class='ctx'> {</div><div class='ctx'>     if (!rb_respond_to(val, mid)) {</div><div class='del'>-	rb_raise(rb_eTypeError, "%"PRIsVALUE" must have %"PRIsVALUE" method, %"PRIsVALUE" given",</div><div class='del'>-		 rb_id2str(id), rb_id2str(mid),</div><div class='del'>-		 rb_obj_class(val));</div><div class='add'>+        rb_raise(rb_eTypeError, "%"PRIsVALUE" must have %"PRIsVALUE" method, %"PRIsVALUE" given",</div><div class='add'>+                 rb_id2str(id), rb_id2str(mid),</div><div class='add'>+                 rb_obj_class(val));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-stdout_setter(VALUE val, ID id, VALUE *variable)</div><div class='add'>+stdin_setter(VALUE val, ID id, VALUE *ptr)</div><div class='add'>+{</div><div class='add'>+    rb_ractor_stdin_set(val);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+stdin_getter(ID id, VALUE *ptr)</div><div class='add'>+{</div><div class='add'>+    return rb_ractor_stdin();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+stdout_setter(VALUE val, ID id, VALUE *ptr)</div><div class='add'>+{</div><div class='add'>+    must_respond_to(id_write, val, id);</div><div class='add'>+    rb_ractor_stdout_set(val);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+stdout_getter(ID id, VALUE *ptr)</div><div class='add'>+{</div><div class='add'>+    return rb_ractor_stdout();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+stderr_setter(VALUE val, ID id, VALUE *ptr)</div><div class='ctx'> {</div><div class='ctx'>     must_respond_to(id_write, val, id);</div><div class='del'>-    *variable = val;</div><div class='add'>+    rb_ractor_stderr_set(val);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+stderr_getter(ID id, VALUE *ptr)</div><div class='add'>+{</div><div class='add'>+    return rb_ractor_stderr();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -7969,12 +9218,14 @@ prep_io(int fd, int fmode, VALUE klass, const char *path)</div><div class='ctx'>     VALUE io = io_alloc(klass);</div><div class='ctx'> </div><div class='ctx'>     MakeOpenFile(io, fp);</div><div class='add'>+    fp-&gt;self = io;</div><div class='ctx'>     fp-&gt;fd = fd;</div><div class='ctx'>     fp-&gt;mode = fmode;</div><div class='add'>+    fp-&gt;timeout = Qnil;</div><div class='ctx'>     if (!io_check_tty(fp)) {</div><div class='ctx'> #ifdef __CYGWIN__</div><div class='del'>-	fp-&gt;mode |= FMODE_BINMODE;</div><div class='del'>-	setmode(fd, O_BINARY);</div><div class='add'>+        fp-&gt;mode |= FMODE_BINMODE;</div><div class='add'>+        setmode(fd, O_BINARY);</div><div class='ctx'> #endif</div><div class='ctx'>     }</div><div class='ctx'>     if (path) fp-&gt;pathv = rb_obj_freeze(rb_str_new_cstr(path));</div><div class='hunk'>@@ -8003,7 +9254,7 @@ prep_stdio(FILE *f, int fmode, VALUE klass, const char *path)</div><div class='ctx'> #ifdef TEXTMODE_NEWLINE_DECORATOR_ON_WRITE</div><div class='ctx'>     fptr-&gt;encs.ecflags |= TEXTMODE_NEWLINE_DECORATOR_ON_WRITE;</div><div class='ctx'>     if (fmode &amp; FMODE_READABLE) {</div><div class='del'>-	fptr-&gt;encs.ecflags |= ECONV_UNIVERSAL_NEWLINE_DECORATOR;</div><div class='add'>+        fptr-&gt;encs.ecflags |= ECONV_UNIVERSAL_NEWLINE_DECORATOR;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     fptr-&gt;stdio_file = f;</div><div class='hunk'>@@ -8011,11 +9262,29 @@ prep_stdio(FILE *f, int fmode, VALUE klass, const char *path)</div><div class='ctx'>     return io;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+VALUE</div><div class='add'>+rb_io_prep_stdin(void)</div><div class='add'>+{</div><div class='add'>+    return prep_stdio(stdin,  FMODE_READABLE, rb_cIO, "&lt;STDIN&gt;");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_prep_stdout(void)</div><div class='add'>+{</div><div class='add'>+    return prep_stdio(stdout, FMODE_WRITABLE|FMODE_SIGNAL_ON_EPIPE, rb_cIO, "&lt;STDOUT&gt;");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_prep_stderr(void)</div><div class='add'>+{</div><div class='add'>+    return prep_stdio(stderr, FMODE_WRITABLE|FMODE_SYNC, rb_cIO, "&lt;STDERR&gt;");</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> FILE *</div><div class='ctx'> rb_io_stdio_file(rb_io_t *fptr)</div><div class='ctx'> {</div><div class='ctx'>     if (!fptr-&gt;stdio_file) {</div><div class='del'>-        int oflags = rb_io_fmode_oflags(fptr-&gt;mode);</div><div class='add'>+        int oflags = rb_io_fmode_oflags(fptr-&gt;mode) &amp; ~O_EXCL;</div><div class='ctx'>         fptr-&gt;stdio_file = rb_fdopen(fptr-&gt;fd, rb_io_oflags_modestr(oflags));</div><div class='ctx'>     }</div><div class='ctx'>     return fptr-&gt;stdio_file;</div><div class='hunk'>@@ -8034,6 +9303,7 @@ static inline rb_io_t *</div><div class='ctx'> rb_io_fptr_new(void)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fp = ALLOC(rb_io_t);</div><div class='add'>+    fp-&gt;self = Qnil;</div><div class='ctx'>     fp-&gt;fd = -1;</div><div class='ctx'>     fp-&gt;stdio_file = NULL;</div><div class='ctx'>     fp-&gt;mode = 0;</div><div class='hunk'>@@ -8055,7 +9325,8 @@ rb_io_fptr_new(void)</div><div class='ctx'>     fp-&gt;encs.enc2 = NULL;</div><div class='ctx'>     fp-&gt;encs.ecflags = 0;</div><div class='ctx'>     fp-&gt;encs.ecopts = Qnil;</div><div class='del'>-    fp-&gt;write_lock = 0;</div><div class='add'>+    fp-&gt;write_lock = Qnil;</div><div class='add'>+    fp-&gt;timeout = Qnil;</div><div class='ctx'>     return fp;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -8066,166 +9337,55 @@ rb_io_make_open_file(VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     Check_Type(obj, T_FILE);</div><div class='ctx'>     if (RFILE(obj)-&gt;fptr) {</div><div class='del'>-	rb_io_close(obj);</div><div class='del'>-	rb_io_fptr_finalize(RFILE(obj)-&gt;fptr);</div><div class='del'>-	RFILE(obj)-&gt;fptr = 0;</div><div class='add'>+        rb_io_close(obj);</div><div class='add'>+        rb_io_fptr_finalize(RFILE(obj)-&gt;fptr);</div><div class='add'>+        RFILE(obj)-&gt;fptr = 0;</div><div class='ctx'>     }</div><div class='ctx'>     fp = rb_io_fptr_new();</div><div class='add'>+    fp-&gt;self = obj;</div><div class='ctx'>     RFILE(obj)-&gt;fptr = fp;</div><div class='ctx'>     return fp;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.new(fd [, mode] [, opt])   -&gt; io</div><div class='del'>- *</div><div class='del'>- *  Returns a new IO object (a stream) for the given integer file descriptor</div><div class='del'>- *  +fd+ and +mode+ string.  +opt+ may be used to specify parts of +mode+ in a</div><div class='del'>- *  more readable fashion.  See also IO.sysopen and IO.for_fd.</div><div class='del'>- *</div><div class='del'>- *  IO.new is called by various File and IO opening methods such as IO::open,</div><div class='del'>- *  Kernel#open, and File::open.</div><div class='del'>- *</div><div class='del'>- *  === Open Mode</div><div class='del'>- *</div><div class='del'>- *  When +mode+ is an integer it must be combination of the modes defined in</div><div class='del'>- *  File::Constants (+File::RDONLY+, &lt;code&gt;File::WRONLY|File::CREAT&lt;/code&gt;).</div><div class='del'>- *  See the open(2) man page for more information.</div><div class='del'>- *</div><div class='del'>- *  When +mode+ is a string it must be in one of the following forms:</div><div class='del'>- *</div><div class='del'>- *    fmode</div><div class='del'>- *    fmode ":" ext_enc</div><div class='del'>- *    fmode ":" ext_enc ":" int_enc</div><div class='del'>- *    fmode ":" "BOM|UTF-*"</div><div class='del'>- *</div><div class='del'>- *  +fmode+ is an IO open mode string, +ext_enc+ is the external encoding for</div><div class='del'>- *  the IO and +int_enc+ is the internal encoding.</div><div class='del'>- *</div><div class='del'>- *  ==== IO Open Mode</div><div class='del'>- *</div><div class='del'>- *  Ruby allows the following open modes:</div><div class='del'>- *</div><div class='del'>- *  	"r"  Read-only, starts at beginning of file  (default mode).</div><div class='del'>- *</div><div class='del'>- *  	"r+" Read-write, starts at beginning of file.</div><div class='del'>- *</div><div class='del'>- *  	"w"  Write-only, truncates existing file</div><div class='del'>- *  	     to zero length or creates a new file for writing.</div><div class='del'>- *</div><div class='del'>- *  	"w+" Read-write, truncates existing file to zero length</div><div class='del'>- *  	     or creates a new file for reading and writing.</div><div class='del'>- *</div><div class='del'>- *  	"a"  Write-only, each write call appends data at end of file.</div><div class='del'>- *  	     Creates a new file for writing if file does not exist.</div><div class='del'>- *</div><div class='del'>- *  	"a+" Read-write, each write call appends data at end of file.</div><div class='del'>- *	     Creates a new file for reading and writing if file does</div><div class='del'>- *	     not exist.</div><div class='del'>- *</div><div class='del'>- *  The following modes must be used separately, and along with one or more of</div><div class='del'>- *  the modes seen above.</div><div class='del'>- *</div><div class='del'>- *  	"b"  Binary file mode</div><div class='del'>- *  	     Suppresses EOL &lt;-&gt; CRLF conversion on Windows. And</div><div class='del'>- *  	     sets external encoding to ASCII-8BIT unless explicitly</div><div class='del'>- *  	     specified.</div><div class='del'>- *</div><div class='del'>- *  	"t"  Text file mode</div><div class='del'>- *</div><div class='del'>- *  The exclusive access mode ("x") can be used together with "w" to ensure</div><div class='del'>- *  the file is created. &lt;code&gt;Errno::EEXIST&lt;/code&gt; is raised when it already</div><div class='del'>- *  exists. It may not be supported with all kinds of streams (e.g. pipes).</div><div class='del'>- *</div><div class='del'>- *  When the open mode of original IO is read only, the mode cannot be</div><div class='del'>- *  changed to be writable.  Similarly, the open mode cannot be changed from</div><div class='del'>- *  write only to readable.</div><div class='add'>+ *    IO.new(fd, mode = 'r', **opts) -&gt; io</div><div class='ctx'>  *</div><div class='del'>- *  When such a change is attempted the error is raised in different locations</div><div class='del'>- *  according to the platform.</div><div class='add'>+ *  Creates and returns a new \IO object (file stream) from a file descriptor.</div><div class='ctx'>  *</div><div class='del'>- *  === IO Encoding</div><div class='add'>+ *  \IO.new may be useful for interaction with low-level libraries.</div><div class='add'>+ *  For higher-level interactions, it may be simpler to create</div><div class='add'>+ *  the file stream using File.open.</div><div class='ctx'>  *</div><div class='del'>- *  When +ext_enc+ is specified, strings read will be tagged by the encoding</div><div class='del'>- *  when reading, and strings output will be converted to the specified</div><div class='del'>- *  encoding when writing.</div><div class='add'>+ *  Argument +fd+ must be a valid file descriptor (integer):</div><div class='ctx'>  *</div><div class='del'>- *  When +ext_enc+ and +int_enc+ are specified read strings will be converted</div><div class='del'>- *  from +ext_enc+ to +int_enc+ upon input, and written strings will be</div><div class='del'>- *  converted from +int_enc+ to +ext_enc+ upon output.  See Encoding for</div><div class='del'>- *  further details of transcoding on input and output.</div><div class='add'>+ *    path = 't.tmp'</div><div class='add'>+ *    fd = IO.sysopen(path) # =&gt; 3</div><div class='add'>+ *    IO.new(fd)            # =&gt; #&lt;IO:fd 3&gt;</div><div class='ctx'>  *</div><div class='del'>- *  If "BOM|UTF-8", "BOM|UTF-16LE" or "BOM|UTF16-BE" are used, Ruby checks for</div><div class='del'>- *  a Unicode BOM in the input document to help determine the encoding.  For</div><div class='del'>- *  UTF-16 encodings the file open mode must be binary.  When present, the BOM</div><div class='del'>- *  is stripped and the external encoding from the BOM is used.  When the BOM</div><div class='del'>- *  is missing the given Unicode encoding is used as +ext_enc+.  (The BOM-set</div><div class='del'>- *  encoding option is case insensitive, so "bom|utf-8" is also valid.)</div><div class='add'>+ *  The new \IO object does not inherit encoding</div><div class='add'>+ *  (because the integer file descriptor does not have an encoding):</div><div class='ctx'>  *</div><div class='del'>- *  === Options</div><div class='add'>+ *    fd = IO.sysopen('t.rus', 'rb')</div><div class='add'>+ *    io = IO.new(fd)</div><div class='add'>+ *    io.external_encoding # =&gt; #&lt;Encoding:UTF-8&gt; # Not ASCII-8BIT.</div><div class='ctx'>  *</div><div class='del'>- *  +opt+ can be used instead of +mode+ for improved readability.  The</div><div class='del'>- *  following keys are supported:</div><div class='add'>+ *  Optional argument +mode+ (defaults to 'r') must specify a valid mode;</div><div class='add'>+ *  see {Access Modes}[rdoc-ref:File@Access+Modes]:</div><div class='ctx'>  *</div><div class='del'>- *  :mode ::</div><div class='del'>- *    Same as +mode+ parameter</div><div class='add'>+ *    IO.new(fd, 'w')         # =&gt; #&lt;IO:fd 3&gt;</div><div class='add'>+ *    IO.new(fd, File::WRONLY) # =&gt; #&lt;IO:fd 3&gt;</div><div class='ctx'>  *</div><div class='del'>- *  :flags ::</div><div class='del'>- *    Specifies file open flags as integer.</div><div class='del'>- *    If +mode+ parameter is given, this parameter will be bitwise-ORed.</div><div class='add'>+ *  Optional keyword arguments +opts+ specify:</div><div class='ctx'>  *</div><div class='del'>- *  :\external_encoding ::</div><div class='del'>- *    External encoding for the IO.</div><div class='add'>+ *  - {Open Options}[rdoc-ref:IO@Open+Options].</div><div class='add'>+ *  - {Encoding options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='ctx'>  *</div><div class='del'>- *  :\internal_encoding ::</div><div class='del'>- *    Internal encoding for the IO.  "-" is a synonym for the default internal</div><div class='del'>- *    encoding.</div><div class='del'>- *</div><div class='del'>- *    If the value is +nil+ no conversion occurs.</div><div class='del'>- *</div><div class='del'>- *  :encoding ::</div><div class='del'>- *    Specifies external and internal encodings as "extern:intern".</div><div class='del'>- *</div><div class='del'>- *  :textmode ::</div><div class='del'>- *    If the value is truth value, same as "t" in argument +mode+.</div><div class='del'>- *</div><div class='del'>- *  :binmode ::</div><div class='del'>- *    If the value is truth value, same as "b" in argument +mode+.</div><div class='del'>- *</div><div class='del'>- *  :autoclose ::</div><div class='del'>- *    If the value is +false+, the +fd+ will be kept open after this IO</div><div class='del'>- *    instance gets finalized.</div><div class='del'>- *</div><div class='del'>- *  Also, +opt+ can have same keys in String#encode for controlling conversion</div><div class='del'>- *  between the external encoding and the internal encoding.</div><div class='del'>- *</div><div class='del'>- *  === Example 1</div><div class='del'>- *</div><div class='del'>- *    fd = IO.sysopen("/dev/tty", "w")</div><div class='del'>- *    a = IO.new(fd,"w")</div><div class='del'>- *    $stderr.puts "Hello"</div><div class='del'>- *    a.puts "World"</div><div class='del'>- *</div><div class='del'>- *  Produces:</div><div class='del'>- *</div><div class='del'>- *    Hello</div><div class='del'>- *    World</div><div class='del'>- *</div><div class='del'>- *  === Example 2</div><div class='del'>- *</div><div class='del'>- *    require 'fcntl'</div><div class='del'>- *</div><div class='del'>- *    fd = STDERR.fcntl(Fcntl::F_DUPFD)</div><div class='del'>- *    io = IO.new(fd, mode: 'w:UTF-16LE', cr_newline: true)</div><div class='del'>- *    io.puts "Hello, World!"</div><div class='add'>+ *  Examples:</div><div class='ctx'>  *</div><div class='del'>- *    fd = STDERR.fcntl(Fcntl::F_DUPFD)</div><div class='del'>- *    io = IO.new(fd, mode: 'w', cr_newline: true,</div><div class='del'>- *                external_encoding: Encoding::UTF_16LE)</div><div class='del'>- *    io.puts "Hello, World!"</div><div class='add'>+ *    IO.new(fd, internal_encoding: nil) # =&gt; #&lt;IO:fd 3&gt;</div><div class='add'>+ *    IO.new(fd, autoclose: true)        # =&gt; #&lt;IO:fd 3&gt;</div><div class='ctx'>  *</div><div class='del'>- *  Both of above print "Hello, World!" in UTF-16LE to standard error output</div><div class='del'>- *  with converting EOL generated by &lt;code&gt;puts&lt;/code&gt; to CR.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -8248,7 +9408,7 @@ rb_io_initialize(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'>     fd = NUM2INT(fnum);</div><div class='ctx'>     if (rb_reserved_fd_p(fd)) {</div><div class='del'>-	rb_raise(rb_eArgError, "The given fd is not accessible because RubyVM reserves it");</div><div class='add'>+        rb_raise(rb_eArgError, "The given fd is not accessible because RubyVM reserves it");</div><div class='ctx'>     }</div><div class='ctx'> #if defined(HAVE_FCNTL) &amp;&amp; defined(F_GETFL)</div><div class='ctx'>     oflags = fcntl(fd, F_GETFL);</div><div class='hunk'>@@ -8260,28 +9420,42 @@ rb_io_initialize(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> #if defined(HAVE_FCNTL) &amp;&amp; defined(F_GETFL)</div><div class='ctx'>     ofmode = rb_io_oflags_fmode(oflags);</div><div class='ctx'>     if (NIL_P(vmode)) {</div><div class='del'>-	fmode = ofmode;</div><div class='add'>+        fmode = ofmode;</div><div class='ctx'>     }</div><div class='ctx'>     else if ((~ofmode &amp; fmode) &amp; FMODE_READWRITE) {</div><div class='del'>-	VALUE error = INT2FIX(EINVAL);</div><div class='del'>-	rb_exc_raise(rb_class_new_instance(1, &amp;error, rb_eSystemCallError));</div><div class='add'>+        VALUE error = INT2FIX(EINVAL);</div><div class='add'>+        rb_exc_raise(rb_class_new_instance(1, &amp;error, rb_eSystemCallError));</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='del'>-    if (!NIL_P(opt) &amp;&amp; rb_hash_aref(opt, sym_autoclose) == Qfalse) {</div><div class='del'>-	fmode |= FMODE_PREP;</div><div class='add'>+    VALUE path = Qnil;</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(opt)) {</div><div class='add'>+        if (rb_hash_aref(opt, sym_autoclose) == Qfalse) {</div><div class='add'>+            fmode |= FMODE_PREP;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        path = rb_hash_aref(opt, RB_ID2SYM(idPath));</div><div class='add'>+        if (!NIL_P(path)) {</div><div class='add'>+            StringValue(path);</div><div class='add'>+            path = rb_str_new_frozen(path);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     MakeOpenFile(io, fp);</div><div class='add'>+    fp-&gt;self = io;</div><div class='ctx'>     fp-&gt;fd = fd;</div><div class='ctx'>     fp-&gt;mode = fmode;</div><div class='ctx'>     fp-&gt;encs = convconfig;</div><div class='add'>+    fp-&gt;pathv = path;</div><div class='add'>+    fp-&gt;timeout = Qnil;</div><div class='ctx'>     clear_codeconv(fp);</div><div class='ctx'>     io_check_tty(fp);</div><div class='ctx'>     if (fileno(stdin) == fd)</div><div class='del'>-	fp-&gt;stdio_file = stdin;</div><div class='add'>+        fp-&gt;stdio_file = stdin;</div><div class='ctx'>     else if (fileno(stdout) == fd)</div><div class='del'>-	fp-&gt;stdio_file = stdout;</div><div class='add'>+        fp-&gt;stdio_file = stdout;</div><div class='ctx'>     else if (fileno(stderr) == fd)</div><div class='del'>-	fp-&gt;stdio_file = stderr;</div><div class='add'>+        fp-&gt;stdio_file = stderr;</div><div class='ctx'> </div><div class='ctx'>     if (fmode &amp; FMODE_SETENC_BY_BOM) io_set_encoding_by_bom(io);</div><div class='ctx'>     return io;</div><div class='hunk'>@@ -8289,43 +9463,102 @@ rb_io_initialize(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     File.new(filename, mode="r" [, opt])            -&gt; file</div><div class='del'>- *     File.new(filename [, mode [, perm]] [, opt])    -&gt; file</div><div class='add'>+ *    set_encoding_by_bom -&gt; encoding or nil</div><div class='ctx'>  *</div><div class='del'>- *  Opens the file named by +filename+ according to the given +mode+ and</div><div class='del'>- *  returns a new File object.</div><div class='add'>+ *  If the stream begins with a BOM</div><div class='add'>+ *  ({byte order marker}[https://en.wikipedia.org/wiki/Byte_order_mark]),</div><div class='add'>+ *  consumes the BOM and sets the external encoding accordingly;</div><div class='add'>+ *  returns the result encoding if found, or +nil+ otherwise:</div><div class='ctx'>  *</div><div class='del'>- *  See IO.new for a description of +mode+ and +opt+.</div><div class='add'>+ *   File.write('t.tmp', "\u{FEFF}abc")</div><div class='add'>+ *   io = File.open('t.tmp', 'rb')</div><div class='add'>+ *   io.set_encoding_by_bom # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='add'>+ *   io.close</div><div class='ctx'>  *</div><div class='del'>- *  If a file is being created, permission bits may be given in +perm+.  These</div><div class='del'>- *  mode and permission bits are platform dependent; on Unix systems, see</div><div class='del'>- *  open(2) and chmod(2) man pages for details.</div><div class='add'>+ *   File.write('t.tmp', 'abc')</div><div class='add'>+ *   io = File.open('t.tmp', 'rb')</div><div class='add'>+ *   io.set_encoding_by_bom # =&gt; nil</div><div class='add'>+ *   io.close</div><div class='ctx'>  *</div><div class='del'>- *  The new File object is buffered mode (or non-sync mode), unless</div><div class='add'>+ *  Raises an exception if the stream is not binmode</div><div class='add'>+ *  or its encoding has already been set.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_set_encoding_by_bom(VALUE io)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+</div><div class='add'>+    GetOpenFile(io, fptr);</div><div class='add'>+    if (!(fptr-&gt;mode &amp; FMODE_BINMODE)) {</div><div class='add'>+        rb_raise(rb_eArgError, "ASCII incompatible encoding needs binmode");</div><div class='add'>+    }</div><div class='add'>+    if (fptr-&gt;encs.enc2) {</div><div class='add'>+        rb_raise(rb_eArgError, "encoding conversion is set");</div><div class='add'>+    }</div><div class='add'>+    else if (fptr-&gt;encs.enc &amp;&amp; fptr-&gt;encs.enc != rb_ascii8bit_encoding()) {</div><div class='add'>+        rb_raise(rb_eArgError, "encoding is set to %s already",</div><div class='add'>+                 rb_enc_name(fptr-&gt;encs.enc));</div><div class='add'>+    }</div><div class='add'>+    if (!io_set_encoding_by_bom(io)) return Qnil;</div><div class='add'>+    return rb_enc_from_encoding(fptr-&gt;encs.enc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    File.new(path, mode = 'r', perm = 0666, **opts) -&gt; file</div><div class='add'>+ *</div><div class='add'>+ *  Opens the file at the given +path+ according to the given +mode+;</div><div class='add'>+ *  creates and returns a new \File object for that file.</div><div class='add'>+ *</div><div class='add'>+ *  The new \File object is buffered mode (or non-sync mode), unless</div><div class='ctx'>  *  +filename+ is a tty.</div><div class='del'>- *  See IO#flush, IO#fsync, IO#fdatasync, and &lt;code&gt;IO#sync=&lt;/code&gt;</div><div class='del'>- *  about sync mode.</div><div class='add'>+ *  See IO#flush, IO#fsync, IO#fdatasync, and IO#sync=.</div><div class='add'>+ *</div><div class='add'>+ *  Argument +path+ must be a valid file path:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('/etc/fstab')</div><div class='add'>+ *    f.close</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.close</div><div class='ctx'>  *</div><div class='del'>- *  === Examples</div><div class='add'>+ *  Optional argument +mode+ (defaults to 'r') must specify a valid mode;</div><div class='add'>+ *  see {Access Modes}[rdoc-ref:File@Access+Modes]:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.tmp', 'w')</div><div class='add'>+ *    f.close</div><div class='add'>+ *    f = File.new('t.tmp', File::RDONLY)</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Optional argument +perm+ (defaults to 0666) must specify valid permissions</div><div class='add'>+ *  see {File Permissions}[rdoc-ref:File@File+Permissions]:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.tmp', File::CREAT, 0644)</div><div class='add'>+ *    f.close</div><div class='add'>+ *    f = File.new('t.tmp', File::CREAT, 0444)</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword arguments +opts+ specify:</div><div class='add'>+ *</div><div class='add'>+ *  - {Open Options}[rdoc-ref:IO@Open+Options].</div><div class='add'>+ *  - {Encoding options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='ctx'>  *</div><div class='del'>- *    f = File.new("testfile", "r")</div><div class='del'>- *    f = File.new("newfile",  "w+")</div><div class='del'>- *    f = File.new("newfile", File::CREAT|File::TRUNC|File::RDWR, 0644)</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_file_initialize(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     if (RFILE(io)-&gt;fptr) {</div><div class='del'>-	rb_raise(rb_eRuntimeError, "reinitializing File");</div><div class='add'>+        rb_raise(rb_eRuntimeError, "reinitializing File");</div><div class='ctx'>     }</div><div class='ctx'>     if (0 &lt; argc &amp;&amp; argc &lt; 3) {</div><div class='del'>-	VALUE fd = rb_check_to_int(argv[0]);</div><div class='add'>+        VALUE fd = rb_check_to_int(argv[0]);</div><div class='ctx'> </div><div class='del'>-	if (!NIL_P(fd)) {</div><div class='del'>-	    argv[0] = fd;</div><div class='del'>-	    return rb_io_initialize(argc, argv, io);</div><div class='del'>-	}</div><div class='add'>+        if (!NIL_P(fd)) {</div><div class='add'>+            argv[0] = fd;</div><div class='add'>+            return rb_io_initialize(argc, argv, io);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     rb_open_file(argc, argv, io);</div><div class='ctx'> </div><div class='hunk'>@@ -8337,20 +9570,20 @@ static VALUE</div><div class='ctx'> rb_io_s_new(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	VALUE cname = rb_obj_as_string(klass);</div><div class='add'>+        VALUE cname = rb_obj_as_string(klass);</div><div class='ctx'> </div><div class='del'>-	rb_warn("%"PRIsVALUE"::new() does not take block; use %"PRIsVALUE"::open() instead",</div><div class='del'>-		cname, cname);</div><div class='add'>+        rb_warn("%"PRIsVALUE"::new() does not take block; use %"PRIsVALUE"::open() instead",</div><div class='add'>+                cname, cname);</div><div class='ctx'>     }</div><div class='del'>-    return rb_class_new_instance(argc, argv, klass);</div><div class='add'>+    return rb_class_new_instance_kw(argc, argv, klass, RB_PASS_CALLED_KEYWORDS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.for_fd(fd, mode [, opt])    -&gt; io</div><div class='add'>+ *    IO.for_fd(fd, mode = 'r', **opts) -&gt; io</div><div class='ctx'>  *</div><div class='del'>- *  Synonym for &lt;code&gt;IO.new&lt;/code&gt;.</div><div class='add'>+ *  Synonym for IO.new.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -8375,7 +9608,7 @@ rb_io_autoclose_p(VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     rb_io_t *fptr = RFILE(io)-&gt;fptr;</div><div class='ctx'>     rb_io_check_closed(fptr);</div><div class='del'>-    return (fptr-&gt;mode &amp; FMODE_PREP) ? Qfalse : Qtrue;</div><div class='add'>+    return RBOOL(!(fptr-&gt;mode &amp; FMODE_PREP));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -8387,12 +9620,12 @@ rb_io_autoclose_p(VALUE io)</div><div class='ctx'>  *     f = open("/dev/null")</div><div class='ctx'>  *     IO.for_fd(f.fileno)</div><div class='ctx'>  *     # ...</div><div class='del'>- *     f.gets # may cause IOError</div><div class='add'>+ *     f.gets # may cause Errno::EBADF</div><div class='ctx'>  *</div><div class='ctx'>  *     f = open("/dev/null")</div><div class='del'>- *     IO.for_fd(f.fileno).autoclose = true</div><div class='add'>+ *     IO.for_fd(f.fileno).autoclose = false</div><div class='ctx'>  *     # ...</div><div class='del'>- *     f.gets # won't cause IOError</div><div class='add'>+ *     f.gets # won't cause Errno::EBADF</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -8401,10 +9634,221 @@ rb_io_set_autoclose(VALUE io, VALUE autoclose)</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     if (!RTEST(autoclose))</div><div class='del'>-	fptr-&gt;mode |= FMODE_PREP;</div><div class='add'>+        fptr-&gt;mode |= FMODE_PREP;</div><div class='ctx'>     else</div><div class='del'>-	fptr-&gt;mode &amp;= ~FMODE_PREP;</div><div class='del'>-    return io;</div><div class='add'>+        fptr-&gt;mode &amp;= ~FMODE_PREP;</div><div class='add'>+    return autoclose;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_wait_event(VALUE io, int event, VALUE timeout, int return_io)</div><div class='add'>+{</div><div class='add'>+    VALUE result = rb_io_wait(io, RB_INT2NUM(event), timeout);</div><div class='add'>+</div><div class='add'>+    if (!RB_TEST(result)) {</div><div class='add'>+        return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    int mask = RB_NUM2INT(result);</div><div class='add'>+</div><div class='add'>+    if (mask &amp; event) {</div><div class='add'>+        if (return_io)</div><div class='add'>+            return io;</div><div class='add'>+        else</div><div class='add'>+            return result;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return Qfalse;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   io.wait_readable          -&gt; truthy or falsy</div><div class='add'>+ *   io.wait_readable(timeout) -&gt; truthy or falsy</div><div class='add'>+ *</div><div class='add'>+ * Waits until IO is readable and returns a truthy value, or a falsy</div><div class='add'>+ * value when times out.  Returns a truthy value immediately when</div><div class='add'>+ * buffered data is available.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_wait_readable(int argc, VALUE *argv, VALUE io)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+</div><div class='add'>+    RB_IO_POINTER(io, fptr);</div><div class='add'>+    rb_io_check_readable(fptr);</div><div class='add'>+</div><div class='add'>+    if (rb_io_read_pending(fptr)) return Qtrue;</div><div class='add'>+</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='add'>+    VALUE timeout = (argc == 1 ? argv[0] : Qnil);</div><div class='add'>+</div><div class='add'>+    return io_wait_event(io, RUBY_IO_READABLE, timeout, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   io.wait_writable          -&gt; truthy or falsy</div><div class='add'>+ *   io.wait_writable(timeout) -&gt; truthy or falsy</div><div class='add'>+ *</div><div class='add'>+ * Waits until IO is writable and returns a truthy value or a falsy</div><div class='add'>+ * value when times out.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_wait_writable(int argc, VALUE *argv, VALUE io)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+</div><div class='add'>+    RB_IO_POINTER(io, fptr);</div><div class='add'>+    rb_io_check_writable(fptr);</div><div class='add'>+</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='add'>+    VALUE timeout = (argc == 1 ? argv[0] : Qnil);</div><div class='add'>+</div><div class='add'>+    return io_wait_event(io, RUBY_IO_WRITABLE, timeout, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   io.wait_priority          -&gt; truthy or falsy</div><div class='add'>+ *   io.wait_priority(timeout) -&gt; truthy or falsy</div><div class='add'>+ *</div><div class='add'>+ * Waits until IO is priority and returns a truthy value or a falsy</div><div class='add'>+ * value when times out. Priority data is sent and received using</div><div class='add'>+ * the Socket::MSG_OOB flag and is typically limited to streams.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_wait_priority(int argc, VALUE *argv, VALUE io)</div><div class='add'>+{</div><div class='add'>+    rb_io_t *fptr = NULL;</div><div class='add'>+</div><div class='add'>+    RB_IO_POINTER(io, fptr);</div><div class='add'>+    rb_io_check_readable(fptr);</div><div class='add'>+</div><div class='add'>+    if (rb_io_read_pending(fptr)) return Qtrue;</div><div class='add'>+</div><div class='add'>+    rb_check_arity(argc, 0, 1);</div><div class='add'>+    VALUE timeout = argc == 1 ? argv[0] : Qnil;</div><div class='add'>+</div><div class='add'>+    return io_wait_event(io, RUBY_IO_PRIORITY, timeout, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+wait_mode_sym(VALUE mode)</div><div class='add'>+{</div><div class='add'>+    if (mode == ID2SYM(rb_intern("r"))) {</div><div class='add'>+        return RB_WAITFD_IN;</div><div class='add'>+    }</div><div class='add'>+    if (mode == ID2SYM(rb_intern("read"))) {</div><div class='add'>+        return RB_WAITFD_IN;</div><div class='add'>+    }</div><div class='add'>+    if (mode == ID2SYM(rb_intern("readable"))) {</div><div class='add'>+        return RB_WAITFD_IN;</div><div class='add'>+    }</div><div class='add'>+    if (mode == ID2SYM(rb_intern("w"))) {</div><div class='add'>+        return RB_WAITFD_OUT;</div><div class='add'>+    }</div><div class='add'>+    if (mode == ID2SYM(rb_intern("write"))) {</div><div class='add'>+        return RB_WAITFD_OUT;</div><div class='add'>+    }</div><div class='add'>+    if (mode == ID2SYM(rb_intern("writable"))) {</div><div class='add'>+        return RB_WAITFD_OUT;</div><div class='add'>+    }</div><div class='add'>+    if (mode == ID2SYM(rb_intern("rw"))) {</div><div class='add'>+        return RB_WAITFD_IN|RB_WAITFD_OUT;</div><div class='add'>+    }</div><div class='add'>+    if (mode == ID2SYM(rb_intern("read_write"))) {</div><div class='add'>+        return RB_WAITFD_IN|RB_WAITFD_OUT;</div><div class='add'>+    }</div><div class='add'>+    if (mode == ID2SYM(rb_intern("readable_writable"))) {</div><div class='add'>+        return RB_WAITFD_IN|RB_WAITFD_OUT;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_raise(rb_eArgError, "unsupported mode: %"PRIsVALUE, mode);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline rb_io_event_t</div><div class='add'>+io_event_from_value(VALUE value)</div><div class='add'>+{</div><div class='add'>+    int events = RB_NUM2INT(value);</div><div class='add'>+</div><div class='add'>+    if (events &lt;= 0) rb_raise(rb_eArgError, "Events must be positive integer!");</div><div class='add'>+</div><div class='add'>+    return events;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   io.wait(events, timeout) -&gt; event mask, false or nil</div><div class='add'>+ *   io.wait(timeout = nil, mode = :read) -&gt; self, true, or false</div><div class='add'>+ *</div><div class='add'>+ * Waits until the IO becomes ready for the specified events and returns the</div><div class='add'>+ * subset of events that become ready, or a falsy value when times out.</div><div class='add'>+ *</div><div class='add'>+ * The events can be a bit mask of +IO::READABLE+, +IO::WRITABLE+ or</div><div class='add'>+ * +IO::PRIORITY+.</div><div class='add'>+ *</div><div class='add'>+ * Returns an event mask (truthy value) immediately when buffered data is available.</div><div class='add'>+ *</div><div class='add'>+ * Optional parameter +mode+ is one of +:read+, +:write+, or</div><div class='add'>+ * +:read_write+.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_wait(int argc, VALUE *argv, VALUE io)</div><div class='add'>+{</div><div class='add'>+    VALUE timeout = Qundef;</div><div class='add'>+    rb_io_event_t events = 0;</div><div class='add'>+    int return_io = 0;</div><div class='add'>+</div><div class='add'>+    // The documented signature for this method is actually incorrect.</div><div class='add'>+    // A single timeout is allowed in any position, and multiple symbols can be given.</div><div class='add'>+    // Whether this is intentional or not, I don't know, and as such I consider this to</div><div class='add'>+    // be a legacy/slow path.</div><div class='add'>+    if (argc != 2 || (RB_SYMBOL_P(argv[0]) || RB_SYMBOL_P(argv[1]))) {</div><div class='add'>+        // We'd prefer to return the actual mask, but this form would return the io itself:</div><div class='add'>+        return_io = 1;</div><div class='add'>+</div><div class='add'>+        // Slow/messy path:</div><div class='add'>+        for (int i = 0; i &lt; argc; i += 1) {</div><div class='add'>+            if (RB_SYMBOL_P(argv[i])) {</div><div class='add'>+                events |= wait_mode_sym(argv[i]);</div><div class='add'>+            }</div><div class='add'>+            else if (UNDEF_P(timeout)) {</div><div class='add'>+                rb_time_interval(timeout = argv[i]);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rb_raise(rb_eArgError, "timeout given more than once");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (UNDEF_P(timeout)) timeout = Qnil;</div><div class='add'>+</div><div class='add'>+        if (events == 0) {</div><div class='add'>+            events = RUBY_IO_READABLE;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else /* argc == 2 and neither are symbols */ {</div><div class='add'>+        // This is the fast path:</div><div class='add'>+        events = io_event_from_value(argv[0]);</div><div class='add'>+        timeout = argv[1];</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (events &amp; RUBY_IO_READABLE) {</div><div class='add'>+        rb_io_t *fptr = NULL;</div><div class='add'>+        RB_IO_POINTER(io, fptr);</div><div class='add'>+</div><div class='add'>+        if (rb_io_read_pending(fptr)) {</div><div class='add'>+            // This was the original behaviour:</div><div class='add'>+            if (return_io) return Qtrue;</div><div class='add'>+            // New behaviour always returns an event mask:</div><div class='add'>+            else return RB_INT2NUM(RUBY_IO_READABLE);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return io_wait_event(io, events, timeout, return_io);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='hunk'>@@ -8477,11 +9921,11 @@ argf_initialize_copy(VALUE argf, VALUE orig)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.lineno = integer  -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  Sets the line number of +ARGF+ as a whole to the given +Integer+.</div><div class='add'>+ *  Sets the line number of ARGF as a whole to the given Integer.</div><div class='ctx'>  *</div><div class='del'>- *  +ARGF+ sets the line number automatically as you read data, so normally</div><div class='add'>+ *  ARGF sets the line number automatically as you read data, so normally</div><div class='ctx'>  *  you will not need to set it explicitly. To access the current line number</div><div class='del'>- *  use +ARGF.lineno+.</div><div class='add'>+ *  use ARGF.lineno.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -8496,7 +9940,7 @@ argf_set_lineno(VALUE argf, VALUE val)</div><div class='ctx'> {</div><div class='ctx'>     ARGF.lineno = NUM2INT(val);</div><div class='ctx'>     ARGF.last_lineno = ARGF.lineno;</div><div class='del'>-    return Qnil;</div><div class='add'>+    return val;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -8504,7 +9948,7 @@ argf_set_lineno(VALUE argf, VALUE val)</div><div class='ctx'>  *     ARGF.lineno  -&gt; integer</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns the current line number of ARGF as a whole. This value</div><div class='del'>- *  can be set manually with +ARGF.lineno=+.</div><div class='add'>+ *  can be set manually with ARGF.lineno=.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -8521,7 +9965,7 @@ argf_lineno(VALUE argf)</div><div class='ctx'> static VALUE</div><div class='ctx'> argf_forward(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'> {</div><div class='del'>-    return rb_funcall3(ARGF.current_file, rb_frame_this_func(), argc, argv);</div><div class='add'>+    return forward_current(rb_frame_this_func(), argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define next_argv() argf_next_argv(argf)</div><div class='hunk'>@@ -8529,7 +9973,7 @@ argf_forward(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'>     (ARGF.current_file == rb_stdin &amp;&amp; !RB_TYPE_P(ARGF.current_file, T_FILE))</div><div class='ctx'> #define ARGF_FORWARD(argc, argv) do {\</div><div class='ctx'>     if (ARGF_GENERIC_INPUT_P())\</div><div class='del'>-	return argf_forward((argc), (argv), argf);\</div><div class='add'>+        return argf_forward((argc), (argv), argf);\</div><div class='ctx'> } while (0)</div><div class='ctx'> #define NEXT_ARGF_FORWARD(argc, argv) do {\</div><div class='ctx'>     if (!next_argv()) return Qnil;\</div><div class='hunk'>@@ -8542,7 +9986,7 @@ argf_close(VALUE argf)</div><div class='ctx'>     VALUE file = ARGF.current_file;</div><div class='ctx'>     if (file == rb_stdin) return;</div><div class='ctx'>     if (RB_TYPE_P(file, T_FILE)) {</div><div class='del'>-	rb_io_set_write_io(file, Qnil);</div><div class='add'>+        rb_io_set_write_io(file, Qnil);</div><div class='ctx'>     }</div><div class='ctx'>     io_close(file);</div><div class='ctx'>     ARGF.init_p = -1;</div><div class='hunk'>@@ -8556,170 +10000,172 @@ argf_next_argv(VALUE argf)</div><div class='ctx'>     int stdout_binmode = 0;</div><div class='ctx'>     int fmode;</div><div class='ctx'> </div><div class='del'>-    if (RB_TYPE_P(rb_stdout, T_FILE)) {</div><div class='del'>-        GetOpenFile(rb_stdout, fptr);</div><div class='add'>+    VALUE r_stdout = rb_ractor_stdout();</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(r_stdout, T_FILE)) {</div><div class='add'>+        GetOpenFile(r_stdout, fptr);</div><div class='ctx'>         if (fptr-&gt;mode &amp; FMODE_BINMODE)</div><div class='ctx'>             stdout_binmode = 1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (ARGF.init_p == 0) {</div><div class='del'>-	if (!NIL_P(ARGF.argv) &amp;&amp; RARRAY_LEN(ARGF.argv) &gt; 0) {</div><div class='del'>-	    ARGF.next_p = 1;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ARGF.next_p = -1;</div><div class='del'>-	}</div><div class='del'>-	ARGF.init_p = 1;</div><div class='add'>+        if (!NIL_P(ARGF.argv) &amp;&amp; RARRAY_LEN(ARGF.argv) &gt; 0) {</div><div class='add'>+            ARGF.next_p = 1;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ARGF.next_p = -1;</div><div class='add'>+        }</div><div class='add'>+        ARGF.init_p = 1;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (NIL_P(ARGF.argv)) {</div><div class='del'>-	    ARGF.next_p = -1;</div><div class='del'>-	}</div><div class='del'>-	else if (ARGF.next_p == -1 &amp;&amp; RARRAY_LEN(ARGF.argv) &gt; 0) {</div><div class='del'>-	    ARGF.next_p = 1;</div><div class='del'>-	}</div><div class='add'>+        if (NIL_P(ARGF.argv)) {</div><div class='add'>+            ARGF.next_p = -1;</div><div class='add'>+        }</div><div class='add'>+        else if (ARGF.next_p == -1 &amp;&amp; RARRAY_LEN(ARGF.argv) &gt; 0) {</div><div class='add'>+            ARGF.next_p = 1;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (ARGF.next_p == 1) {</div><div class='del'>-	if (ARGF.init_p == 1) argf_close(argf);</div><div class='add'>+        if (ARGF.init_p == 1) argf_close(argf);</div><div class='ctx'>       retry:</div><div class='del'>-	if (RARRAY_LEN(ARGF.argv) &gt; 0) {</div><div class='del'>-	    VALUE filename = rb_ary_shift(ARGF.argv);</div><div class='del'>-	    FilePathValue(filename);</div><div class='del'>-	    ARGF.filename = filename;</div><div class='del'>-	    filename = rb_str_encode_ospath(filename);</div><div class='del'>-	    fn = StringValueCStr(filename);</div><div class='del'>-	    if (RSTRING_LEN(filename) == 1 &amp;&amp; fn[0] == '-') {</div><div class='del'>-		ARGF.current_file = rb_stdin;</div><div class='del'>-		if (ARGF.inplace) {</div><div class='del'>-		    rb_warn("Can't do inplace edit for stdio; skipping");</div><div class='del'>-		    goto retry;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		VALUE write_io = Qnil;</div><div class='del'>-		int fr = rb_sysopen(filename, O_RDONLY, 0);</div><div class='del'>-</div><div class='del'>-		if (ARGF.inplace) {</div><div class='del'>-		    struct stat st;</div><div class='add'>+        if (RARRAY_LEN(ARGF.argv) &gt; 0) {</div><div class='add'>+            VALUE filename = rb_ary_shift(ARGF.argv);</div><div class='add'>+            FilePathValue(filename);</div><div class='add'>+            ARGF.filename = filename;</div><div class='add'>+            filename = rb_str_encode_ospath(filename);</div><div class='add'>+            fn = StringValueCStr(filename);</div><div class='add'>+            if (RSTRING_LEN(filename) == 1 &amp;&amp; fn[0] == '-') {</div><div class='add'>+                ARGF.current_file = rb_stdin;</div><div class='add'>+                if (ARGF.inplace) {</div><div class='add'>+                    rb_warn("Can't do inplace edit for stdio; skipping");</div><div class='add'>+                    goto retry;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                VALUE write_io = Qnil;</div><div class='add'>+                int fr = rb_sysopen(filename, O_RDONLY, 0);</div><div class='add'>+</div><div class='add'>+                if (ARGF.inplace) {</div><div class='add'>+                    struct stat st;</div><div class='ctx'> #ifndef NO_SAFE_RENAME</div><div class='del'>-		    struct stat st2;</div><div class='del'>-#endif</div><div class='del'>-		    VALUE str;</div><div class='del'>-		    int fw;</div><div class='del'>-</div><div class='del'>-		    if (RB_TYPE_P(rb_stdout, T_FILE) &amp;&amp; rb_stdout != orig_stdout) {</div><div class='del'>-			rb_io_close(rb_stdout);</div><div class='del'>-		    }</div><div class='del'>-		    fstat(fr, &amp;st);</div><div class='del'>-		    str = filename;</div><div class='del'>-		    if (!NIL_P(ARGF.inplace)) {</div><div class='del'>-			VALUE suffix = ARGF.inplace;</div><div class='del'>-			str = rb_str_dup(str);</div><div class='del'>-			if (NIL_P(rb_str_cat_conv_enc_opts(str, RSTRING_LEN(str),</div><div class='del'>-							   RSTRING_PTR(suffix), RSTRING_LEN(suffix),</div><div class='del'>-							   rb_enc_get(suffix), 0, Qnil))) {</div><div class='del'>-			    rb_str_append(str, suffix);</div><div class='del'>-			}</div><div class='add'>+                    struct stat st2;</div><div class='add'>+#endif</div><div class='add'>+                    VALUE str;</div><div class='add'>+                    int fw;</div><div class='add'>+</div><div class='add'>+                    if (RB_TYPE_P(r_stdout, T_FILE) &amp;&amp; r_stdout != orig_stdout) {</div><div class='add'>+                        rb_io_close(r_stdout);</div><div class='add'>+                    }</div><div class='add'>+                    fstat(fr, &amp;st);</div><div class='add'>+                    str = filename;</div><div class='add'>+                    if (!NIL_P(ARGF.inplace)) {</div><div class='add'>+                        VALUE suffix = ARGF.inplace;</div><div class='add'>+                        str = rb_str_dup(str);</div><div class='add'>+                        if (NIL_P(rb_str_cat_conv_enc_opts(str, RSTRING_LEN(str),</div><div class='add'>+                                                           RSTRING_PTR(suffix), RSTRING_LEN(suffix),</div><div class='add'>+                                                           rb_enc_get(suffix), 0, Qnil))) {</div><div class='add'>+                            rb_str_append(str, suffix);</div><div class='add'>+                        }</div><div class='ctx'> #ifdef NO_SAFE_RENAME</div><div class='del'>-			(void)close(fr);</div><div class='del'>-			(void)unlink(RSTRING_PTR(str));</div><div class='del'>-			if (rename(fn, RSTRING_PTR(str)) &lt; 0) {</div><div class='del'>-			    rb_warn("Can't rename %"PRIsVALUE" to %"PRIsVALUE": %s, skipping file",</div><div class='del'>-				    filename, str, strerror(errno));</div><div class='del'>-			    goto retry;</div><div class='del'>-			}</div><div class='del'>-			fr = rb_sysopen(str, O_RDONLY, 0);</div><div class='add'>+                        (void)close(fr);</div><div class='add'>+                        (void)unlink(RSTRING_PTR(str));</div><div class='add'>+                        if (rename(fn, RSTRING_PTR(str)) &lt; 0) {</div><div class='add'>+                            rb_warn("Can't rename %"PRIsVALUE" to %"PRIsVALUE": %s, skipping file",</div><div class='add'>+                                    filename, str, strerror(errno));</div><div class='add'>+                            goto retry;</div><div class='add'>+                        }</div><div class='add'>+                        fr = rb_sysopen(str, O_RDONLY, 0);</div><div class='ctx'> #else</div><div class='del'>-			if (rename(fn, RSTRING_PTR(str)) &lt; 0) {</div><div class='del'>-			    rb_warn("Can't rename %"PRIsVALUE" to %"PRIsVALUE": %s, skipping file",</div><div class='del'>-				    filename, str, strerror(errno));</div><div class='del'>-			    close(fr);</div><div class='del'>-			    goto retry;</div><div class='del'>-			}</div><div class='del'>-#endif</div><div class='del'>-		    }</div><div class='del'>-		    else {</div><div class='add'>+                        if (rename(fn, RSTRING_PTR(str)) &lt; 0) {</div><div class='add'>+                            rb_warn("Can't rename %"PRIsVALUE" to %"PRIsVALUE": %s, skipping file",</div><div class='add'>+                                    filename, str, strerror(errno));</div><div class='add'>+                            close(fr);</div><div class='add'>+                            goto retry;</div><div class='add'>+                        }</div><div class='add'>+#endif</div><div class='add'>+                    }</div><div class='add'>+                    else {</div><div class='ctx'> #ifdef NO_SAFE_RENAME</div><div class='del'>-			rb_fatal("Can't do inplace edit without backup");</div><div class='add'>+                        rb_fatal("Can't do inplace edit without backup");</div><div class='ctx'> #else</div><div class='del'>-			if (unlink(fn) &lt; 0) {</div><div class='del'>-			    rb_warn("Can't remove %"PRIsVALUE": %s, skipping file",</div><div class='del'>-				    filename, strerror(errno));</div><div class='del'>-			    close(fr);</div><div class='del'>-			    goto retry;</div><div class='del'>-			}</div><div class='del'>-#endif</div><div class='del'>-		    }</div><div class='del'>-		    fw = rb_sysopen(filename, O_WRONLY|O_CREAT|O_TRUNC, 0666);</div><div class='add'>+                        if (unlink(fn) &lt; 0) {</div><div class='add'>+                            rb_warn("Can't remove %"PRIsVALUE": %s, skipping file",</div><div class='add'>+                                    filename, strerror(errno));</div><div class='add'>+                            close(fr);</div><div class='add'>+                            goto retry;</div><div class='add'>+                        }</div><div class='add'>+#endif</div><div class='add'>+                    }</div><div class='add'>+                    fw = rb_sysopen(filename, O_WRONLY|O_CREAT|O_TRUNC, 0666);</div><div class='ctx'> #ifndef NO_SAFE_RENAME</div><div class='del'>-		    fstat(fw, &amp;st2);</div><div class='add'>+                    fstat(fw, &amp;st2);</div><div class='ctx'> #ifdef HAVE_FCHMOD</div><div class='del'>-		    fchmod(fw, st.st_mode);</div><div class='add'>+                    fchmod(fw, st.st_mode);</div><div class='ctx'> #else</div><div class='del'>-		    chmod(fn, st.st_mode);</div><div class='add'>+                    chmod(fn, st.st_mode);</div><div class='ctx'> #endif</div><div class='del'>-		    if (st.st_uid!=st2.st_uid || st.st_gid!=st2.st_gid) {</div><div class='del'>-			int err;</div><div class='add'>+                    if (st.st_uid!=st2.st_uid || st.st_gid!=st2.st_gid) {</div><div class='add'>+                        int err;</div><div class='ctx'> #ifdef HAVE_FCHOWN</div><div class='del'>-			err = fchown(fw, st.st_uid, st.st_gid);</div><div class='add'>+                        err = fchown(fw, st.st_uid, st.st_gid);</div><div class='ctx'> #else</div><div class='del'>-			err = chown(fn, st.st_uid, st.st_gid);</div><div class='del'>-#endif</div><div class='del'>-			if (err &amp;&amp; getuid() == 0 &amp;&amp; st2.st_uid == 0) {</div><div class='del'>-			    const char *wkfn = RSTRING_PTR(filename);</div><div class='del'>-			    rb_warn("Can't set owner/group of %"PRIsVALUE" to same as %"PRIsVALUE": %s, skipping file",</div><div class='del'>-				    filename, str, strerror(errno));</div><div class='del'>-			    (void)close(fr);</div><div class='del'>-			    (void)close(fw);</div><div class='del'>-			    (void)unlink(wkfn);</div><div class='del'>-			    goto retry;</div><div class='del'>-			}</div><div class='del'>-		    }</div><div class='del'>-#endif</div><div class='del'>-		    write_io = prep_io(fw, FMODE_WRITABLE, rb_cFile, fn);</div><div class='del'>-		    rb_stdout = write_io;</div><div class='del'>-		    if (stdout_binmode) rb_io_binmode(rb_stdout);</div><div class='del'>-		}</div><div class='del'>-		fmode = FMODE_READABLE;</div><div class='del'>-		if (!ARGF.binmode) {</div><div class='del'>-		    fmode |= DEFAULT_TEXTMODE;</div><div class='del'>-		}</div><div class='del'>-		ARGF.current_file = prep_io(fr, fmode, rb_cFile, fn);</div><div class='del'>-		if (!NIL_P(write_io)) {</div><div class='del'>-		    rb_io_set_write_io(ARGF.current_file, write_io);</div><div class='del'>-		}</div><div class='del'>-		RB_GC_GUARD(filename);</div><div class='del'>-	    }</div><div class='del'>-	    if (ARGF.binmode) rb_io_ascii8bit_binmode(ARGF.current_file);</div><div class='del'>-	    GetOpenFile(ARGF.current_file, fptr);</div><div class='del'>-	    if (ARGF.encs.enc) {</div><div class='del'>-		fptr-&gt;encs = ARGF.encs;</div><div class='add'>+                        err = chown(fn, st.st_uid, st.st_gid);</div><div class='add'>+#endif</div><div class='add'>+                        if (err &amp;&amp; getuid() == 0 &amp;&amp; st2.st_uid == 0) {</div><div class='add'>+                            const char *wkfn = RSTRING_PTR(filename);</div><div class='add'>+                            rb_warn("Can't set owner/group of %"PRIsVALUE" to same as %"PRIsVALUE": %s, skipping file",</div><div class='add'>+                                    filename, str, strerror(errno));</div><div class='add'>+                            (void)close(fr);</div><div class='add'>+                            (void)close(fw);</div><div class='add'>+                            (void)unlink(wkfn);</div><div class='add'>+                            goto retry;</div><div class='add'>+                        }</div><div class='add'>+                    }</div><div class='add'>+#endif</div><div class='add'>+                    write_io = prep_io(fw, FMODE_WRITABLE, rb_cFile, fn);</div><div class='add'>+                    rb_ractor_stdout_set(write_io);</div><div class='add'>+                    if (stdout_binmode) rb_io_binmode(rb_stdout);</div><div class='add'>+                }</div><div class='add'>+                fmode = FMODE_READABLE;</div><div class='add'>+                if (!ARGF.binmode) {</div><div class='add'>+                    fmode |= DEFAULT_TEXTMODE;</div><div class='add'>+                }</div><div class='add'>+                ARGF.current_file = prep_io(fr, fmode, rb_cFile, fn);</div><div class='add'>+                if (!NIL_P(write_io)) {</div><div class='add'>+                    rb_io_set_write_io(ARGF.current_file, write_io);</div><div class='add'>+                }</div><div class='add'>+                RB_GC_GUARD(filename);</div><div class='add'>+            }</div><div class='add'>+            if (ARGF.binmode) rb_io_ascii8bit_binmode(ARGF.current_file);</div><div class='add'>+            GetOpenFile(ARGF.current_file, fptr);</div><div class='add'>+            if (ARGF.encs.enc) {</div><div class='add'>+                fptr-&gt;encs = ARGF.encs;</div><div class='ctx'>                 clear_codeconv(fptr);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		fptr-&gt;encs.ecflags &amp;= ~ECONV_NEWLINE_DECORATOR_MASK;</div><div class='del'>-		if (!ARGF.binmode) {</div><div class='del'>-		    fptr-&gt;encs.ecflags |= ECONV_DEFAULT_NEWLINE_DECORATOR;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                fptr-&gt;encs.ecflags &amp;= ~ECONV_NEWLINE_DECORATOR_MASK;</div><div class='add'>+                if (!ARGF.binmode) {</div><div class='add'>+                    fptr-&gt;encs.ecflags |= ECONV_DEFAULT_NEWLINE_DECORATOR;</div><div class='ctx'> #ifdef TEXTMODE_NEWLINE_DECORATOR_ON_WRITE</div><div class='del'>-		    fptr-&gt;encs.ecflags |= TEXTMODE_NEWLINE_DECORATOR_ON_WRITE;</div><div class='add'>+                    fptr-&gt;encs.ecflags |= TEXTMODE_NEWLINE_DECORATOR_ON_WRITE;</div><div class='ctx'> #endif</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    ARGF.next_p = 0;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ARGF.next_p = 1;</div><div class='del'>-	    return FALSE;</div><div class='del'>-	}</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            ARGF.next_p = 0;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ARGF.next_p = 1;</div><div class='add'>+            return FALSE;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (ARGF.next_p == -1) {</div><div class='del'>-	ARGF.current_file = rb_stdin;</div><div class='del'>-	ARGF.filename = rb_str_new2("-");</div><div class='del'>-	if (ARGF.inplace) {</div><div class='del'>-	    rb_warn("Can't do inplace edit for stdio");</div><div class='del'>-	    rb_stdout = orig_stdout;</div><div class='del'>-	}</div><div class='add'>+        ARGF.current_file = rb_stdin;</div><div class='add'>+        ARGF.filename = rb_str_new2("-");</div><div class='add'>+        if (ARGF.inplace) {</div><div class='add'>+            rb_warn("Can't do inplace edit for stdio");</div><div class='add'>+            rb_ractor_stdout_set(orig_stdout);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (ARGF.init_p == -1) ARGF.init_p = 1;</div><div class='ctx'>     return TRUE;</div><div class='hunk'>@@ -8734,24 +10180,24 @@ argf_getline(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'>   retry:</div><div class='ctx'>     if (!next_argv()) return Qnil;</div><div class='ctx'>     if (ARGF_GENERIC_INPUT_P()) {</div><div class='del'>-	line = rb_funcall3(ARGF.current_file, idGets, argc, argv);</div><div class='add'>+        line = forward_current(idGets, argc, argv);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (argc == 0 &amp;&amp; rb_rs == rb_default_rs) {</div><div class='del'>-	    line = rb_io_gets(ARGF.current_file);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    line = rb_io_getline(argc, argv, ARGF.current_file);</div><div class='del'>-	}</div><div class='del'>-	if (NIL_P(line) &amp;&amp; ARGF.next_p != -1) {</div><div class='del'>-	    argf_close(argf);</div><div class='del'>-	    ARGF.next_p = 1;</div><div class='del'>-	    goto retry;</div><div class='del'>-	}</div><div class='add'>+        if (argc == 0 &amp;&amp; rb_rs == rb_default_rs) {</div><div class='add'>+            line = rb_io_gets(ARGF.current_file);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            line = rb_io_getline(argc, argv, ARGF.current_file);</div><div class='add'>+        }</div><div class='add'>+        if (NIL_P(line) &amp;&amp; ARGF.next_p != -1) {</div><div class='add'>+            argf_close(argf);</div><div class='add'>+            ARGF.next_p = 1;</div><div class='add'>+            goto retry;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(line)) {</div><div class='del'>-	ARGF.lineno = ++lineno;</div><div class='del'>-	ARGF.last_lineno = ARGF.lineno;</div><div class='add'>+        ARGF.lineno = ++lineno;</div><div class='add'>+        ARGF.last_lineno = ARGF.lineno;</div><div class='ctx'>     }</div><div class='ctx'>     return line;</div><div class='ctx'> }</div><div class='hunk'>@@ -8771,6 +10217,12 @@ argf_lineno_setter(VALUE val, ID id, VALUE *var)</div><div class='ctx'>     ARGF.last_lineno = ARGF.lineno = n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+rb_reset_argf_lineno(long n)</div><div class='add'>+{</div><div class='add'>+    ARGF.last_lineno = ARGF.lineno = n;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE argf_gets(int, VALUE *, VALUE);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -8810,9 +10262,9 @@ static VALUE</div><div class='ctx'> rb_f_gets(int argc, VALUE *argv, VALUE recv)</div><div class='ctx'> {</div><div class='ctx'>     if (recv == argf) {</div><div class='del'>-	return argf_gets(argc, argv, argf);</div><div class='add'>+        return argf_gets(argc, argv, argf);</div><div class='ctx'>     }</div><div class='del'>-    return rb_funcallv(argf, idGets, argc, argv);</div><div class='add'>+    return forward(argf, idGets, argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -8821,10 +10273,10 @@ rb_f_gets(int argc, VALUE *argv, VALUE recv)</div><div class='ctx'>  *     ARGF.gets(limit [, getline_args])      -&gt; string or nil</div><div class='ctx'>  *     ARGF.gets(sep, limit [, getline_args]) -&gt; string or nil</div><div class='ctx'>  *</div><div class='del'>- *  Returns the next line from the current file in +ARGF+.</div><div class='add'>+ *  Returns the next line from the current file in ARGF.</div><div class='ctx'>  *</div><div class='ctx'>  *  By default lines are assumed to be separated by &lt;code&gt;$/&lt;/code&gt;;</div><div class='del'>- *  to use a different character as a separator, supply it as a +String+</div><div class='add'>+ *  to use a different character as a separator, supply it as a String</div><div class='ctx'>  *  for the _sep_ argument.</div><div class='ctx'>  *</div><div class='ctx'>  *  The optional _limit_ argument specifies how many characters of each line</div><div class='hunk'>@@ -8850,21 +10302,21 @@ rb_gets(void)</div><div class='ctx'>     VALUE line;</div><div class='ctx'> </div><div class='ctx'>     if (rb_rs != rb_default_rs) {</div><div class='del'>-	return rb_f_gets(0, 0, argf);</div><div class='add'>+        return rb_f_gets(0, 0, argf);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>   retry:</div><div class='ctx'>     if (!next_argv()) return Qnil;</div><div class='ctx'>     line = rb_io_gets(ARGF.current_file);</div><div class='ctx'>     if (NIL_P(line) &amp;&amp; ARGF.next_p != -1) {</div><div class='del'>-	rb_io_close(ARGF.current_file);</div><div class='del'>-	ARGF.next_p = 1;</div><div class='del'>-	goto retry;</div><div class='add'>+        rb_io_close(ARGF.current_file);</div><div class='add'>+        ARGF.next_p = 1;</div><div class='add'>+        goto retry;</div><div class='ctx'>     }</div><div class='ctx'>     rb_lastline_set(line);</div><div class='ctx'>     if (!NIL_P(line)) {</div><div class='del'>-	ARGF.lineno++;</div><div class='del'>-	ARGF.last_lineno = ARGF.lineno;</div><div class='add'>+        ARGF.lineno++;</div><div class='add'>+        ARGF.last_lineno = ARGF.lineno;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return line;</div><div class='hunk'>@@ -8874,21 +10326,28 @@ static VALUE argf_readline(int, VALUE *, VALUE);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     readline(sep=$/)     -&gt; string</div><div class='del'>- *     readline(limit)      -&gt; string</div><div class='del'>- *     readline(sep, limit) -&gt; string</div><div class='add'>+ *    readline(sep = $/, chomp: false)   -&gt; string</div><div class='add'>+ *    readline(limit, chomp: false)      -&gt; string</div><div class='add'>+ *    readline(sep, limit, chomp: false) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Equivalent to method Kernel#gets, except that it raises an exception</div><div class='add'>+ *  if called at end-of-stream:</div><div class='ctx'>  *</div><div class='del'>- *  Equivalent to &lt;code&gt;Kernel::gets&lt;/code&gt;, except</div><div class='del'>- *  +readline+ raises +EOFError+ at end of file.</div><div class='add'>+ *    $ cat t.txt | ruby -e "p readlines; readline"</div><div class='add'>+ *    ["First line\n", "Second line\n", "\n", "Fourth line\n", "Fifth line\n"]</div><div class='add'>+ *    in `readline': end of file reached (EOFError)</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword argument +chomp+ specifies whether line separators</div><div class='add'>+ *  are to be omitted.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_f_readline(int argc, VALUE *argv, VALUE recv)</div><div class='ctx'> {</div><div class='ctx'>     if (recv == argf) {</div><div class='del'>-	return argf_readline(argc, argv, argf);</div><div class='add'>+        return argf_readline(argc, argv, argf);</div><div class='ctx'>     }</div><div class='del'>-    return rb_funcallv(argf, rb_intern("readline"), argc, argv);</div><div class='add'>+    return forward(argf, rb_intern("readline"), argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -8898,16 +10357,16 @@ rb_f_readline(int argc, VALUE *argv, VALUE recv)</div><div class='ctx'>  *     ARGF.readline(limit)      -&gt; string</div><div class='ctx'>  *     ARGF.readline(sep, limit) -&gt; string</div><div class='ctx'>  *</div><div class='del'>- *  Returns the next line from the current file in +ARGF+.</div><div class='add'>+ *  Returns the next line from the current file in ARGF.</div><div class='ctx'>  *</div><div class='ctx'>  *  By default lines are assumed to be separated by &lt;code&gt;$/&lt;/code&gt;;</div><div class='del'>- *  to use a different character as a separator, supply it as a +String+</div><div class='add'>+ *  to use a different character as a separator, supply it as a String</div><div class='ctx'>  *  for the _sep_ argument.</div><div class='ctx'>  *</div><div class='ctx'>  *  The optional _limit_ argument specifies how many characters of each line</div><div class='ctx'>  *  to return. By default all characters are returned.</div><div class='ctx'>  *</div><div class='del'>- *  An +EOFError+ is raised at the end of the file.</div><div class='add'>+ *  An EOFError is raised at the end of the file.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> argf_readline(int argc, VALUE *argv, VALUE argf)</div><div class='hunk'>@@ -8918,7 +10377,7 @@ argf_readline(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'>     ARGF_FORWARD(argc, argv);</div><div class='ctx'>     line = argf_gets(argc, argv, argf);</div><div class='ctx'>     if (NIL_P(line)) {</div><div class='del'>-	rb_eof_error();</div><div class='add'>+        rb_eof_error();</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return line;</div><div class='hunk'>@@ -8928,35 +10387,83 @@ static VALUE argf_readlines(int, VALUE *, VALUE);</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     readlines(sep=$/)     -&gt; array</div><div class='del'>- *     readlines(limit)      -&gt; array</div><div class='del'>- *     readlines(sep, limit) -&gt; array</div><div class='add'>+ *    readlines(sep = $/, chomp: false, **enc_opts)   -&gt; array</div><div class='add'>+ *    readlines(limit, chomp: false, **enc_opts)       -&gt; array</div><div class='add'>+ *    readlines(sep, limit, chomp: false, **enc_opts) -&gt; array</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns an array containing the lines returned by calling</div><div class='del'>- *  &lt;code&gt;Kernel.gets(&lt;i&gt;sep&lt;/i&gt;)&lt;/code&gt; until the end of file.</div><div class='add'>+ *  Kernel#gets until the end-of-stream is reached;</div><div class='add'>+ *  (see {Line IO}[rdoc-ref:IO@Line+IO]).</div><div class='add'>+ *</div><div class='add'>+ *  With only string argument +sep+ given,</div><div class='add'>+ *  returns the remaining lines as determined by line separator +sep+,</div><div class='add'>+ *  or +nil+ if none;</div><div class='add'>+ *  see {Line Separator}[rdoc-ref:IO@Line+Separator]:</div><div class='add'>+ *</div><div class='add'>+ *    # Default separator.</div><div class='add'>+ *    $ cat t.txt | ruby -e "p readlines"</div><div class='add'>+ *    ["First line\n", "Second line\n", "\n", "Fourth line\n", "Fifth line\n"]</div><div class='add'>+ *</div><div class='add'>+ *    # Specified separator.</div><div class='add'>+ *    $ cat t.txt | ruby -e "p readlines 'li'"</div><div class='add'>+ *    ["First li", "ne\nSecond li", "ne\n\nFourth li", "ne\nFifth li", "ne\n"]</div><div class='add'>+ *</div><div class='add'>+ *    # Get-all separator.</div><div class='add'>+ *    $ cat t.txt | ruby -e "p readlines nil"</div><div class='add'>+ *    ["First line\nSecond line\n\nFourth line\nFifth line\n"]</div><div class='add'>+ *</div><div class='add'>+ *    # Get-paragraph separator.</div><div class='add'>+ *    $ cat t.txt | ruby -e "p readlines ''"</div><div class='add'>+ *    ["First line\nSecond line\n\n", "Fourth line\nFifth line\n"]</div><div class='add'>+ *</div><div class='add'>+ *  With only integer argument +limit+ given,</div><div class='add'>+ *  limits the number of bytes in the line;</div><div class='add'>+ *  see {Line Limit}[rdoc-ref:IO@Line+Limit]:</div><div class='add'>+ *</div><div class='add'>+ *    $cat t.txt | ruby -e "p readlines 10"</div><div class='add'>+ *    ["First line", "\n", "Second lin", "e\n", "\n", "Fourth lin", "e\n", "Fifth line", "\n"]</div><div class='add'>+ *</div><div class='add'>+ *    $cat t.txt | ruby -e "p readlines 11"</div><div class='add'>+ *    ["First line\n", "Second line", "\n", "\n", "Fourth line", "\n", "Fifth line\n"]</div><div class='add'>+ *</div><div class='add'>+ *    $cat t.txt | ruby -e "p readlines 12"</div><div class='add'>+ *    ["First line\n", "Second line\n", "\n", "Fourth line\n", "Fifth line\n"]</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +sep+ and +limit+ given, combines the two behaviors;</div><div class='add'>+ *  see {Line Separator and Line Limit}[rdoc-ref:IO@Line+Separator+and+Line+Limit].</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword argument +chomp+ specifies whether line separators</div><div class='add'>+ *  are to be omitted:</div><div class='add'>+ *</div><div class='add'>+ *    $ cat t.txt | ruby -e "p readlines(chomp: true)"</div><div class='add'>+ *    ["First line", "Second line", "", "Fourth line", "Fifth line"]</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword arguments +enc_opts+ specify encoding options;</div><div class='add'>+ *  see {Encoding options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_f_readlines(int argc, VALUE *argv, VALUE recv)</div><div class='ctx'> {</div><div class='ctx'>     if (recv == argf) {</div><div class='del'>-	return argf_readlines(argc, argv, argf);</div><div class='add'>+        return argf_readlines(argc, argv, argf);</div><div class='ctx'>     }</div><div class='del'>-    return rb_funcallv(argf, rb_intern("readlines"), argc, argv);</div><div class='add'>+    return forward(argf, rb_intern("readlines"), argc, argv);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ARGF.readlines(sep=$/)     -&gt; array</div><div class='add'>+ *     ARGF.readlines(sep = $/)     -&gt; array</div><div class='ctx'>  *     ARGF.readlines(limit)      -&gt; array</div><div class='ctx'>  *     ARGF.readlines(sep, limit) -&gt; array</div><div class='ctx'>  *</div><div class='del'>- *     ARGF.to_a(sep=$/)     -&gt; array</div><div class='add'>+ *     ARGF.to_a(sep = $/)     -&gt; array</div><div class='ctx'>  *     ARGF.to_a(limit)      -&gt; array</div><div class='ctx'>  *     ARGF.to_a(sep, limit) -&gt; array</div><div class='ctx'>  *</div><div class='del'>- *  Reads +ARGF+'s current file in its entirety, returning an +Array+ of its</div><div class='del'>- *  lines, one line per element. Lines are assumed to be separated by _sep_.</div><div class='add'>+ *  Reads each file in ARGF in its entirety, returning an Array containing</div><div class='add'>+ *  lines from the files. Lines are assumed to be separated by _sep_.</div><div class='ctx'>  *</div><div class='ctx'>  *     lines = ARGF.readlines</div><div class='ctx'>  *     lines[0]                #=&gt; "This is line one\n"</div><div class='hunk'>@@ -8969,17 +10476,17 @@ argf_readlines(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'> </div><div class='ctx'>     ary = rb_ary_new();</div><div class='ctx'>     while (next_argv()) {</div><div class='del'>-	if (ARGF_GENERIC_INPUT_P()) {</div><div class='del'>-	    lines = rb_funcall3(ARGF.current_file, rb_intern("readlines"), argc, argv);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    lines = rb_io_readlines(argc, argv, ARGF.current_file);</div><div class='del'>-	    argf_close(argf);</div><div class='del'>-	}</div><div class='del'>-	ARGF.next_p = 1;</div><div class='del'>-	rb_ary_concat(ary, lines);</div><div class='del'>-	ARGF.lineno = lineno + RARRAY_LEN(ary);</div><div class='del'>-	ARGF.last_lineno = ARGF.lineno;</div><div class='add'>+        if (ARGF_GENERIC_INPUT_P()) {</div><div class='add'>+            lines = forward_current(rb_intern("readlines"), argc, argv);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            lines = rb_io_readlines(argc, argv, ARGF.current_file);</div><div class='add'>+            argf_close(argf);</div><div class='add'>+        }</div><div class='add'>+        ARGF.next_p = 1;</div><div class='add'>+        rb_ary_concat(ary, lines);</div><div class='add'>+        ARGF.lineno = lineno + RARRAY_LEN(ary);</div><div class='add'>+        ARGF.last_lineno = ARGF.lineno;</div><div class='ctx'>     }</div><div class='ctx'>     ARGF.init_p = 0;</div><div class='ctx'>     return ary;</div><div class='hunk'>@@ -8987,16 +10494,23 @@ argf_readlines(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     `cmd`    -&gt; string</div><div class='add'>+ *    `command` -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Returns the &lt;tt&gt;$stdout&lt;/tt&gt; output from running +command+ in a subshell;</div><div class='add'>+ *  sets global variable &lt;tt&gt;$?&lt;/tt&gt; to the process status.</div><div class='ctx'>  *</div><div class='del'>- *  Returns the standard output of running _cmd_ in a subshell.</div><div class='del'>- *  The built-in syntax &lt;code&gt;%x{...}&lt;/code&gt; uses</div><div class='del'>- *  this method. Sets &lt;code&gt;$?&lt;/code&gt; to the process status.</div><div class='add'>+ *  This method has potential security vulnerabilities if called with untrusted input;</div><div class='add'>+ *  see {Command Injection}[rdoc-ref:command_injection.rdoc].</div><div class='add'>+ *</div><div class='add'>+ *  Examples:</div><div class='add'>+ *</div><div class='add'>+ *    $ `date`                 # =&gt; "Wed Apr  9 08:56:30 CDT 2003\n"</div><div class='add'>+ *    $ `echo oops &amp;&amp; exit 99` # =&gt; "oops\n"</div><div class='add'>+ *    $ $?                     # =&gt; #&lt;Process::Status: pid 17088 exit 99&gt;</div><div class='add'>+ *    $ $?.status              # =&gt; 99&gt;</div><div class='add'>+ *</div><div class='add'>+ *  The built-in syntax &lt;tt&gt;%x{...}&lt;/tt&gt; uses this method.</div><div class='ctx'>  *</div><div class='del'>- *     `date`                   #=&gt; "Wed Apr  9 08:56:30 CDT 2003\n"</div><div class='del'>- *     `ls testdir`.split[1]    #=&gt; "main.rb"</div><div class='del'>- *     `echo oops &amp;&amp; exit 99`   #=&gt; "oops\n"</div><div class='del'>- *     $?.exitstatus            #=&gt; 99</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -9014,8 +10528,9 @@ rb_f_backquote(VALUE obj, VALUE str)</div><div class='ctx'>     GetOpenFile(port, fptr);</div><div class='ctx'>     result = read_all(fptr, remain_size(fptr), Qnil);</div><div class='ctx'>     rb_io_close(port);</div><div class='add'>+    RFILE(port)-&gt;fptr = NULL;</div><div class='ctx'>     rb_io_fptr_finalize(fptr);</div><div class='del'>-    rb_gc_force_recycle(port); /* also guards from premature GC */</div><div class='add'>+    RB_GC_GUARD(port);</div><div class='ctx'> </div><div class='ctx'>     return result;</div><div class='ctx'> }</div><div class='hunk'>@@ -9036,63 +10551,63 @@ select_internal(VALUE read, VALUE write, VALUE except, struct timeval *tp, rb_fd</div><div class='ctx'>     struct timeval timerec;</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(read)) {</div><div class='del'>-	Check_Type(read, T_ARRAY);</div><div class='del'>-	for (i=0; i&lt;RARRAY_LEN(read); i++) {</div><div class='del'>-	    GetOpenFile(rb_io_get_io(RARRAY_AREF(read, i)), fptr);</div><div class='del'>-	    rb_fd_set(fptr-&gt;fd, &amp;fds[0]);</div><div class='del'>-	    if (READ_DATA_PENDING(fptr) || READ_CHAR_PENDING(fptr)) { /* check for buffered data */</div><div class='del'>-		pending++;</div><div class='del'>-		rb_fd_set(fptr-&gt;fd, &amp;fds[3]);</div><div class='del'>-	    }</div><div class='del'>-	    if (max &lt; fptr-&gt;fd) max = fptr-&gt;fd;</div><div class='del'>-	}</div><div class='del'>-	if (pending) {		/* no blocking if there's buffered data */</div><div class='del'>-	    timerec.tv_sec = timerec.tv_usec = 0;</div><div class='del'>-	    tp = &amp;timerec;</div><div class='del'>-	}</div><div class='del'>-	rp = &amp;fds[0];</div><div class='add'>+        Check_Type(read, T_ARRAY);</div><div class='add'>+        for (i=0; i&lt;RARRAY_LEN(read); i++) {</div><div class='add'>+            GetOpenFile(rb_io_get_io(RARRAY_AREF(read, i)), fptr);</div><div class='add'>+            rb_fd_set(fptr-&gt;fd, &amp;fds[0]);</div><div class='add'>+            if (READ_DATA_PENDING(fptr) || READ_CHAR_PENDING(fptr)) { /* check for buffered data */</div><div class='add'>+                pending++;</div><div class='add'>+                rb_fd_set(fptr-&gt;fd, &amp;fds[3]);</div><div class='add'>+            }</div><div class='add'>+            if (max &lt; fptr-&gt;fd) max = fptr-&gt;fd;</div><div class='add'>+        }</div><div class='add'>+        if (pending) {		/* no blocking if there's buffered data */</div><div class='add'>+            timerec.tv_sec = timerec.tv_usec = 0;</div><div class='add'>+            tp = &amp;timerec;</div><div class='add'>+        }</div><div class='add'>+        rp = &amp;fds[0];</div><div class='ctx'>     }</div><div class='ctx'>     else</div><div class='del'>-	rp = 0;</div><div class='add'>+        rp = 0;</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(write)) {</div><div class='del'>-	Check_Type(write, T_ARRAY);</div><div class='del'>-	for (i=0; i&lt;RARRAY_LEN(write); i++) {</div><div class='add'>+        Check_Type(write, T_ARRAY);</div><div class='add'>+        for (i=0; i&lt;RARRAY_LEN(write); i++) {</div><div class='ctx'>             VALUE write_io = GetWriteIO(rb_io_get_io(RARRAY_AREF(write, i)));</div><div class='del'>-	    GetOpenFile(write_io, fptr);</div><div class='del'>-	    rb_fd_set(fptr-&gt;fd, &amp;fds[1]);</div><div class='del'>-	    if (max &lt; fptr-&gt;fd) max = fptr-&gt;fd;</div><div class='del'>-	}</div><div class='del'>-	wp = &amp;fds[1];</div><div class='add'>+            GetOpenFile(write_io, fptr);</div><div class='add'>+            rb_fd_set(fptr-&gt;fd, &amp;fds[1]);</div><div class='add'>+            if (max &lt; fptr-&gt;fd) max = fptr-&gt;fd;</div><div class='add'>+        }</div><div class='add'>+        wp = &amp;fds[1];</div><div class='ctx'>     }</div><div class='ctx'>     else</div><div class='del'>-	wp = 0;</div><div class='add'>+        wp = 0;</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(except)) {</div><div class='del'>-	Check_Type(except, T_ARRAY);</div><div class='del'>-	for (i=0; i&lt;RARRAY_LEN(except); i++) {</div><div class='add'>+        Check_Type(except, T_ARRAY);</div><div class='add'>+        for (i=0; i&lt;RARRAY_LEN(except); i++) {</div><div class='ctx'>             VALUE io = rb_io_get_io(RARRAY_AREF(except, i));</div><div class='ctx'>             VALUE write_io = GetWriteIO(io);</div><div class='del'>-	    GetOpenFile(io, fptr);</div><div class='del'>-	    rb_fd_set(fptr-&gt;fd, &amp;fds[2]);</div><div class='del'>-	    if (max &lt; fptr-&gt;fd) max = fptr-&gt;fd;</div><div class='add'>+            GetOpenFile(io, fptr);</div><div class='add'>+            rb_fd_set(fptr-&gt;fd, &amp;fds[2]);</div><div class='add'>+            if (max &lt; fptr-&gt;fd) max = fptr-&gt;fd;</div><div class='ctx'>             if (io != write_io) {</div><div class='ctx'>                 GetOpenFile(write_io, fptr);</div><div class='ctx'>                 rb_fd_set(fptr-&gt;fd, &amp;fds[2]);</div><div class='ctx'>                 if (max &lt; fptr-&gt;fd) max = fptr-&gt;fd;</div><div class='ctx'>             }</div><div class='del'>-	}</div><div class='del'>-	ep = &amp;fds[2];</div><div class='add'>+        }</div><div class='add'>+        ep = &amp;fds[2];</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ep = 0;</div><div class='add'>+        ep = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     max++;</div><div class='ctx'> </div><div class='ctx'>     n = rb_thread_fd_select(max, rp, wp, ep, tp);</div><div class='ctx'>     if (n &lt; 0) {</div><div class='del'>-	rb_sys_fail(0);</div><div class='add'>+        rb_sys_fail(0);</div><div class='ctx'>     }</div><div class='ctx'>     if (!pending &amp;&amp; n == 0) return Qnil; /* returns nil on timeout */</div><div class='ctx'> </div><div class='hunk'>@@ -9102,48 +10617,48 @@ select_internal(VALUE read, VALUE write, VALUE except, struct timeval *tp, rb_fd</div><div class='ctx'>     rb_ary_push(res, ep?rb_ary_new():rb_ary_new2(0));</div><div class='ctx'> </div><div class='ctx'>     if (rp) {</div><div class='del'>-	list = RARRAY_AREF(res, 0);</div><div class='del'>-	for (i=0; i&lt; RARRAY_LEN(read); i++) {</div><div class='del'>-	    VALUE obj = rb_ary_entry(read, i);</div><div class='del'>-	    VALUE io = rb_io_get_io(obj);</div><div class='del'>-	    GetOpenFile(io, fptr);</div><div class='del'>-	    if (rb_fd_isset(fptr-&gt;fd, &amp;fds[0]) ||</div><div class='del'>-		rb_fd_isset(fptr-&gt;fd, &amp;fds[3])) {</div><div class='del'>-		rb_ary_push(list, obj);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        list = RARRAY_AREF(res, 0);</div><div class='add'>+        for (i=0; i&lt; RARRAY_LEN(read); i++) {</div><div class='add'>+            VALUE obj = rb_ary_entry(read, i);</div><div class='add'>+            VALUE io = rb_io_get_io(obj);</div><div class='add'>+            GetOpenFile(io, fptr);</div><div class='add'>+            if (rb_fd_isset(fptr-&gt;fd, &amp;fds[0]) ||</div><div class='add'>+                rb_fd_isset(fptr-&gt;fd, &amp;fds[3])) {</div><div class='add'>+                rb_ary_push(list, obj);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (wp) {</div><div class='del'>-	list = RARRAY_AREF(res, 1);</div><div class='del'>-	for (i=0; i&lt; RARRAY_LEN(write); i++) {</div><div class='del'>-	    VALUE obj = rb_ary_entry(write, i);</div><div class='del'>-	    VALUE io = rb_io_get_io(obj);</div><div class='del'>-	    VALUE write_io = GetWriteIO(io);</div><div class='del'>-	    GetOpenFile(write_io, fptr);</div><div class='del'>-	    if (rb_fd_isset(fptr-&gt;fd, &amp;fds[1])) {</div><div class='del'>-		rb_ary_push(list, obj);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        list = RARRAY_AREF(res, 1);</div><div class='add'>+        for (i=0; i&lt; RARRAY_LEN(write); i++) {</div><div class='add'>+            VALUE obj = rb_ary_entry(write, i);</div><div class='add'>+            VALUE io = rb_io_get_io(obj);</div><div class='add'>+            VALUE write_io = GetWriteIO(io);</div><div class='add'>+            GetOpenFile(write_io, fptr);</div><div class='add'>+            if (rb_fd_isset(fptr-&gt;fd, &amp;fds[1])) {</div><div class='add'>+                rb_ary_push(list, obj);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (ep) {</div><div class='del'>-	list = RARRAY_AREF(res, 2);</div><div class='del'>-	for (i=0; i&lt; RARRAY_LEN(except); i++) {</div><div class='del'>-	    VALUE obj = rb_ary_entry(except, i);</div><div class='del'>-	    VALUE io = rb_io_get_io(obj);</div><div class='del'>-	    VALUE write_io = GetWriteIO(io);</div><div class='del'>-	    GetOpenFile(io, fptr);</div><div class='del'>-	    if (rb_fd_isset(fptr-&gt;fd, &amp;fds[2])) {</div><div class='del'>-		rb_ary_push(list, obj);</div><div class='del'>-	    }</div><div class='del'>-	    else if (io != write_io) {</div><div class='del'>-		GetOpenFile(write_io, fptr);</div><div class='del'>-		if (rb_fd_isset(fptr-&gt;fd, &amp;fds[2])) {</div><div class='del'>-		    rb_ary_push(list, obj);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        list = RARRAY_AREF(res, 2);</div><div class='add'>+        for (i=0; i&lt; RARRAY_LEN(except); i++) {</div><div class='add'>+            VALUE obj = rb_ary_entry(except, i);</div><div class='add'>+            VALUE io = rb_io_get_io(obj);</div><div class='add'>+            VALUE write_io = GetWriteIO(io);</div><div class='add'>+            GetOpenFile(io, fptr);</div><div class='add'>+            if (rb_fd_isset(fptr-&gt;fd, &amp;fds[2])) {</div><div class='add'>+                rb_ary_push(list, obj);</div><div class='add'>+            }</div><div class='add'>+            else if (io != write_io) {</div><div class='add'>+                GetOpenFile(write_io, fptr);</div><div class='add'>+                if (rb_fd_isset(fptr-&gt;fd, &amp;fds[2])) {</div><div class='add'>+                    rb_ary_push(list, obj);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return res;			/* returns an empty array on interrupt */</div><div class='hunk'>@@ -9170,7 +10685,7 @@ select_end(VALUE arg)</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; numberof(p-&gt;fdsets); ++i)</div><div class='del'>-	rb_fd_term(&amp;p-&gt;fdsets[i]);</div><div class='add'>+        rb_fd_term(&amp;p-&gt;fdsets[i]);</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -9181,8 +10696,8 @@ static VALUE sym_normal,   sym_sequential, sym_random,</div><div class='ctx'> struct io_advise_struct {</div><div class='ctx'>     int fd;</div><div class='ctx'>     int advice;</div><div class='del'>-    off_t offset;</div><div class='del'>-    off_t len;</div><div class='add'>+    rb_off_t offset;</div><div class='add'>+    rb_off_t len;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -9197,39 +10712,39 @@ io_advise_sym_to_const(VALUE sym)</div><div class='ctx'> {</div><div class='ctx'> #ifdef POSIX_FADV_NORMAL</div><div class='ctx'>     if (sym == sym_normal)</div><div class='del'>-	return INT2NUM(POSIX_FADV_NORMAL);</div><div class='add'>+        return INT2NUM(POSIX_FADV_NORMAL);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef POSIX_FADV_RANDOM</div><div class='ctx'>     if (sym == sym_random)</div><div class='del'>-	return INT2NUM(POSIX_FADV_RANDOM);</div><div class='add'>+        return INT2NUM(POSIX_FADV_RANDOM);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef POSIX_FADV_SEQUENTIAL</div><div class='ctx'>     if (sym == sym_sequential)</div><div class='del'>-	return INT2NUM(POSIX_FADV_SEQUENTIAL);</div><div class='add'>+        return INT2NUM(POSIX_FADV_SEQUENTIAL);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef POSIX_FADV_WILLNEED</div><div class='ctx'>     if (sym == sym_willneed)</div><div class='del'>-	return INT2NUM(POSIX_FADV_WILLNEED);</div><div class='add'>+        return INT2NUM(POSIX_FADV_WILLNEED);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef POSIX_FADV_DONTNEED</div><div class='ctx'>     if (sym == sym_dontneed)</div><div class='del'>-	return INT2NUM(POSIX_FADV_DONTNEED);</div><div class='add'>+        return INT2NUM(POSIX_FADV_DONTNEED);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef POSIX_FADV_NOREUSE</div><div class='ctx'>     if (sym == sym_noreuse)</div><div class='del'>-	return INT2NUM(POSIX_FADV_NOREUSE);</div><div class='add'>+        return INT2NUM(POSIX_FADV_NOREUSE);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-do_io_advise(rb_io_t *fptr, VALUE advice, off_t offset, off_t len)</div><div class='add'>+do_io_advise(rb_io_t *fptr, VALUE advice, rb_off_t offset, rb_off_t len)</div><div class='ctx'> {</div><div class='ctx'>     int rv;</div><div class='ctx'>     struct io_advise_struct ias;</div><div class='hunk'>@@ -9242,7 +10757,7 @@ do_io_advise(rb_io_t *fptr, VALUE advice, off_t offset, off_t len)</div><div class='ctx'>      * silently ignore it. Because IO::advise is only hint.</div><div class='ctx'>      */</div><div class='ctx'>     if (NIL_P(num_adv))</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'> </div><div class='ctx'>     ias.fd     = fptr-&gt;fd;</div><div class='ctx'>     ias.advice = NUM2INT(num_adv);</div><div class='hunk'>@@ -9251,14 +10766,14 @@ do_io_advise(rb_io_t *fptr, VALUE advice, off_t offset, off_t len)</div><div class='ctx'> </div><div class='ctx'>     rv = (int)rb_thread_io_blocking_region(io_advise_internal, &amp;ias, fptr-&gt;fd);</div><div class='ctx'>     if (rv &amp;&amp; rv != ENOSYS) {</div><div class='del'>-	/* posix_fadvise(2) doesn't set errno. On success it returns 0; otherwise</div><div class='del'>-	   it returns the error code. */</div><div class='del'>-	VALUE message = rb_sprintf("%"PRIsVALUE" "</div><div class='del'>-				   "(%"PRI_OFFT_PREFIX"d, "</div><div class='del'>-				   "%"PRI_OFFT_PREFIX"d, "</div><div class='del'>-				   "%"PRIsVALUE")",</div><div class='del'>-				   fptr-&gt;pathv, offset, len, advice);</div><div class='del'>-	rb_syserr_fail_str(rv, message);</div><div class='add'>+        /* posix_fadvise(2) doesn't set errno. On success it returns 0; otherwise</div><div class='add'>+           it returns the error code. */</div><div class='add'>+        VALUE message = rb_sprintf("%"PRIsVALUE" "</div><div class='add'>+                                   "(%"PRI_OFFT_PREFIX"d, "</div><div class='add'>+                                   "%"PRI_OFFT_PREFIX"d, "</div><div class='add'>+                                   "%"PRIsVALUE")",</div><div class='add'>+                                   fptr-&gt;pathv, offset, len, advice);</div><div class='add'>+        rb_syserr_fail_str(rv, message);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -9270,65 +10785,56 @@ static void</div><div class='ctx'> advice_arg_check(VALUE advice)</div><div class='ctx'> {</div><div class='ctx'>     if (!SYMBOL_P(advice))</div><div class='del'>-	rb_raise(rb_eTypeError, "advice must be a Symbol");</div><div class='add'>+        rb_raise(rb_eTypeError, "advice must be a Symbol");</div><div class='ctx'> </div><div class='ctx'>     if (advice != sym_normal &amp;&amp;</div><div class='del'>-	advice != sym_sequential &amp;&amp;</div><div class='del'>-	advice != sym_random &amp;&amp;</div><div class='del'>-	advice != sym_willneed &amp;&amp;</div><div class='del'>-	advice != sym_dontneed &amp;&amp;</div><div class='del'>-	advice != sym_noreuse) {</div><div class='del'>-	rb_raise(rb_eNotImpError, "Unsupported advice: %+"PRIsVALUE, advice);</div><div class='add'>+        advice != sym_sequential &amp;&amp;</div><div class='add'>+        advice != sym_random &amp;&amp;</div><div class='add'>+        advice != sym_willneed &amp;&amp;</div><div class='add'>+        advice != sym_dontneed &amp;&amp;</div><div class='add'>+        advice != sym_noreuse) {</div><div class='add'>+        rb_raise(rb_eNotImpError, "Unsupported advice: %+"PRIsVALUE, advice);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.advise(advice, offset=0, len=0) -&gt; nil</div><div class='add'>+ *    advise(advice, offset = 0, len = 0) -&gt; nil</div><div class='ctx'>  *</div><div class='del'>- *  Announce an intention to access data from the current file in a</div><div class='del'>- *  specific pattern. On platforms that do not support the</div><div class='del'>- *  &lt;em&gt;posix_fadvise(2)&lt;/em&gt; system call, this method is a no-op.</div><div class='add'>+ *  Invokes Posix system call</div><div class='add'>+ *  {posix_fadvise(2)}[https://linux.die.net/man/2/posix_fadvise],</div><div class='add'>+ *  which announces an intention to access data from the current file</div><div class='add'>+ *  in a particular manner.</div><div class='ctx'>  *</div><div class='del'>- *  _advice_ is one of the following symbols:</div><div class='add'>+ *  The arguments and results are platform-dependent.</div><div class='ctx'>  *</div><div class='del'>- *  :normal::     No advice to give; the default assumption for an open file.</div><div class='del'>- *  :sequential:: The data will be accessed sequentially</div><div class='del'>- *                with lower offsets read before higher ones.</div><div class='del'>- *  :random::     The data will be accessed in random order.</div><div class='del'>- *  :willneed::   The data will be accessed in the near future.</div><div class='del'>- *  :dontneed::   The data will not be accessed in the near future.</div><div class='del'>- *  :noreuse::    The data will only be accessed once.</div><div class='add'>+ *  The relevant data is specified by:</div><div class='ctx'>  *</div><div class='del'>- *  The semantics of a piece of advice are platform-dependent. See</div><div class='del'>- *  &lt;em&gt;man 2 posix_fadvise&lt;/em&gt; for details.</div><div class='add'>+ *  - +offset+: The offset of the first byte of data.</div><div class='add'>+ *  - +len+: The number of bytes to be accessed;</div><div class='add'>+ *    if +len+ is zero, or is larger than the number of bytes remaining,</div><div class='add'>+ *    all remaining bytes will be accessed.</div><div class='ctx'>  *</div><div class='del'>- *  "data" means the region of the current file that begins at</div><div class='del'>- *  _offset_ and extends for _len_ bytes. If _len_ is 0, the region</div><div class='del'>- *  ends at the last byte of the file. By default, both _offset_ and</div><div class='del'>- *  _len_ are 0, meaning that the advice applies to the entire file.</div><div class='add'>+ *  Argument +advice+ is one of the following symbols:</div><div class='ctx'>  *</div><div class='del'>- *  If an error occurs, one of the following exceptions will be raised:</div><div class='add'>+ *  - +:normal+: The application has no advice to give</div><div class='add'>+ *    about its access pattern for the specified data.</div><div class='add'>+ *    If no advice is given for an open file, this is the default assumption.</div><div class='add'>+ *  - +:sequential+: The application expects to access the specified data sequentially</div><div class='add'>+ *    (with lower offsets read before higher ones).</div><div class='add'>+ *  - +:random+: The specified data will be accessed in random order.</div><div class='add'>+ *  - +:noreuse+: The specified data will be accessed only once.</div><div class='add'>+ *  - +:willneed+: The specified data will be accessed in the near future.</div><div class='add'>+ *  - +:dontneed+: The specified data will not be accessed in the near future.</div><div class='ctx'>  *</div><div class='del'>- *  &lt;code&gt;IOError&lt;/code&gt;:: The &lt;code&gt;IO&lt;/code&gt; stream is closed.</div><div class='del'>- *  &lt;code&gt;Errno::EBADF&lt;/code&gt;::</div><div class='del'>- *    The file descriptor of the current file is invalid.</div><div class='del'>- *  &lt;code&gt;Errno::EINVAL&lt;/code&gt;:: An invalid value for _advice_ was given.</div><div class='del'>- *  &lt;code&gt;Errno::ESPIPE&lt;/code&gt;::</div><div class='del'>- *    The file descriptor of the current file refers to a FIFO or</div><div class='del'>- *    pipe. (Linux raises &lt;code&gt;Errno::EINVAL&lt;/code&gt; in this case).</div><div class='del'>- *  &lt;code&gt;TypeError&lt;/code&gt;::</div><div class='del'>- *    Either _advice_ was not a Symbol, or one of the</div><div class='del'>- *    other arguments was not an &lt;code&gt;Integer&lt;/code&gt;.</div><div class='del'>- *  &lt;code&gt;RangeError&lt;/code&gt;:: One of the arguments given was too big/small.</div><div class='add'>+ *  Not implemented on all platforms.</div><div class='ctx'>  *</div><div class='del'>- *  This list is not exhaustive; other Errno:: exceptions are also possible.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_advise(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> {</div><div class='ctx'>     VALUE advice, offset, len;</div><div class='del'>-    off_t off, l;</div><div class='add'>+    rb_off_t off, l;</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "12", &amp;advice, &amp;offset, &amp;len);</div><div class='hunk'>@@ -9350,32 +10856,45 @@ rb_io_advise(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.select(read_array [, write_array [, error_array [, timeout]]]) -&gt; array or nil</div><div class='add'>+ *    IO.select(read_ios, write_ios = [], error_ios = [], timeout = nil) -&gt; array or nil</div><div class='add'>+ *</div><div class='add'>+ *  Invokes system call {select(2)}[https://linux.die.net/man/2/select],</div><div class='add'>+ *  which monitors multiple file descriptors,</div><div class='add'>+ *  waiting until one or more of the file descriptors</div><div class='add'>+ *  becomes ready for some class of I/O operation.</div><div class='add'>+ *</div><div class='add'>+ *  Not implemented on all platforms.</div><div class='ctx'>  *</div><div class='del'>- *  Calls select(2) system call.</div><div class='del'>- *  It monitors given arrays of &lt;code&gt;IO&lt;/code&gt; objects, waits until one or more</div><div class='del'>- *  of &lt;code&gt;IO&lt;/code&gt; objects are ready for reading, are ready for writing,</div><div class='del'>- *  and have pending exceptions respectively, and returns an array that</div><div class='del'>- *  contains arrays of those IO objects.  It will return +nil+</div><div class='del'>- *  if optional &lt;i&gt;timeout&lt;/i&gt; value is given and no &lt;code&gt;IO&lt;/code&gt; object</div><div class='del'>- *  is ready in &lt;i&gt;timeout&lt;/i&gt; seconds.</div><div class='add'>+ *  Each of the arguments +read_ios+, +write_ios+, and +error_ios+</div><div class='add'>+ *  is an array of IO objects.</div><div class='ctx'>  *</div><div class='del'>- *  &lt;code&gt;IO.select&lt;/code&gt; peeks the buffer of &lt;code&gt;IO&lt;/code&gt; objects for testing readability.</div><div class='del'>- *  If the &lt;code&gt;IO&lt;/code&gt; buffer is not empty,</div><div class='del'>- *  &lt;code&gt;IO.select&lt;/code&gt; immediately notifies readability.</div><div class='del'>- *  This "peek" only happens for &lt;code&gt;IO&lt;/code&gt; objects.</div><div class='del'>- *  It does not happen for IO-like objects such as OpenSSL::SSL::SSLSocket.</div><div class='add'>+ *  Argument +timeout+ is an integer timeout interval in seconds.</div><div class='ctx'>  *</div><div class='del'>- *  The best way to use &lt;code&gt;IO.select&lt;/code&gt; is invoking it</div><div class='del'>- *  after nonblocking methods such as &lt;code&gt;read_nonblock&lt;/code&gt;, &lt;code&gt;write_nonblock&lt;/code&gt;, etc.</div><div class='del'>- *  The methods raise an exception which is extended by</div><div class='del'>- *  &lt;code&gt;IO::WaitReadable&lt;/code&gt; or &lt;code&gt;IO::WaitWritable&lt;/code&gt;.</div><div class='del'>- *  The modules notify how the caller should wait with &lt;code&gt;IO.select&lt;/code&gt;.</div><div class='del'>- *  If &lt;code&gt;IO::WaitReadable&lt;/code&gt; is raised, the caller should wait for reading.</div><div class='del'>- *  If &lt;code&gt;IO::WaitWritable&lt;/code&gt; is raised, the caller should wait for writing.</div><div class='add'>+ *  The method monitors the \IO objects given in all three arrays,</div><div class='add'>+ *  waiting for some to be ready;</div><div class='add'>+ *  returns a 3-element array whose elements are:</div><div class='ctx'>  *</div><div class='del'>- *  So, blocking read (&lt;code&gt;readpartial&lt;/code&gt;) can be emulated using</div><div class='del'>- *  &lt;code&gt;read_nonblock&lt;/code&gt; and &lt;code&gt;IO.select&lt;/code&gt; as follows:</div><div class='add'>+ *  - An array of the objects in +read_ios+ that are ready for reading.</div><div class='add'>+ *  - An array of the objects in +write_ios+ that are ready for writing.</div><div class='add'>+ *  - An array of the objects in +error_ios+ have pending exceptions.</div><div class='add'>+ *</div><div class='add'>+ *  If no object becomes ready within the given +timeout+, +nil+ is returned.</div><div class='add'>+ *</div><div class='add'>+ *  \IO.select peeks the buffer of \IO objects for testing readability.</div><div class='add'>+ *  If the \IO buffer is not empty, \IO.select immediately notifies</div><div class='add'>+ *  readability.  This "peek" only happens for \IO objects.  It does not</div><div class='add'>+ *  happen for IO-like objects such as OpenSSL::SSL::SSLSocket.</div><div class='add'>+ *</div><div class='add'>+ *  The best way to use \IO.select is invoking it after non-blocking</div><div class='add'>+ *  methods such as #read_nonblock, #write_nonblock, etc.  The methods</div><div class='add'>+ *  raise an exception which is extended by IO::WaitReadable or</div><div class='add'>+ *  IO::WaitWritable.  The modules notify how the caller should wait</div><div class='add'>+ *  with \IO.select.  If IO::WaitReadable is raised, the caller should</div><div class='add'>+ *  wait for reading.  If IO::WaitWritable is raised, the caller should</div><div class='add'>+ *  wait for writing.</div><div class='add'>+ *</div><div class='add'>+ *  So, blocking read (#readpartial) can be emulated using</div><div class='add'>+ *  #read_nonblock and \IO.select as follows:</div><div class='ctx'>  *</div><div class='ctx'>  *    begin</div><div class='ctx'>  *      result = io_like.read_nonblock(maxlen)</div><div class='hunk'>@@ -9387,57 +10906,57 @@ rb_io_advise(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>  *      retry</div><div class='ctx'>  *    end</div><div class='ctx'>  *</div><div class='del'>- *  Especially, the combination of nonblocking methods and</div><div class='del'>- *  &lt;code&gt;IO.select&lt;/code&gt; is preferred for &lt;code&gt;IO&lt;/code&gt; like</div><div class='del'>- *  objects such as &lt;code&gt;OpenSSL::SSL::SSLSocket&lt;/code&gt;.</div><div class='del'>- *  It has &lt;code&gt;to_io&lt;/code&gt; method to return underlying &lt;code&gt;IO&lt;/code&gt; object.</div><div class='del'>- *  &lt;code&gt;IO.select&lt;/code&gt; calls &lt;code&gt;to_io&lt;/code&gt; to obtain the file descriptor to wait.</div><div class='add'>+ *  Especially, the combination of non-blocking methods and \IO.select is</div><div class='add'>+ *  preferred for IO like objects such as OpenSSL::SSL::SSLSocket.  It</div><div class='add'>+ *  has #to_io method to return underlying IO object.  IO.select calls</div><div class='add'>+ *  #to_io to obtain the file descriptor to wait.</div><div class='ctx'>  *</div><div class='del'>- *  This means that readability notified by &lt;code&gt;IO.select&lt;/code&gt; doesn't mean</div><div class='del'>- *  readability from &lt;code&gt;OpenSSL::SSL::SSLSocket&lt;/code&gt; object.</div><div class='add'>+ *  This means that readability notified by \IO.select doesn't mean</div><div class='add'>+ *  readability from OpenSSL::SSL::SSLSocket object.</div><div class='ctx'>  *</div><div class='del'>- *  The most likely situation is that &lt;code&gt;OpenSSL::SSL::SSLSocket&lt;/code&gt; buffers some data.</div><div class='del'>- *  &lt;code&gt;IO.select&lt;/code&gt; doesn't see the buffer.</div><div class='del'>- *  So &lt;code&gt;IO.select&lt;/code&gt; can block when &lt;code&gt;OpenSSL::SSL::SSLSocket#readpartial&lt;/code&gt; doesn't block.</div><div class='add'>+ *  The most likely situation is that OpenSSL::SSL::SSLSocket buffers</div><div class='add'>+ *  some data.  \IO.select doesn't see the buffer.  So \IO.select can</div><div class='add'>+ *  block when OpenSSL::SSL::SSLSocket#readpartial doesn't block.</div><div class='ctx'>  *</div><div class='ctx'>  *  However, several more complicated situations exist.</div><div class='ctx'>  *</div><div class='ctx'>  *  SSL is a protocol which is sequence of records.</div><div class='ctx'>  *  The record consists of multiple bytes.</div><div class='del'>- *  So, the remote side of SSL sends a partial record,</div><div class='del'>- *  &lt;code&gt;IO.select&lt;/code&gt; notifies readability but</div><div class='del'>- *  &lt;code&gt;OpenSSL::SSL::SSLSocket&lt;/code&gt; cannot decrypt a byte and</div><div class='del'>- *  &lt;code&gt;OpenSSL::SSL::SSLSocket#readpartial&lt;/code&gt; will block.</div><div class='add'>+ *  So, the remote side of SSL sends a partial record, IO.select</div><div class='add'>+ *  notifies readability but OpenSSL::SSL::SSLSocket cannot decrypt a</div><div class='add'>+ *  byte and OpenSSL::SSL::SSLSocket#readpartial will block.</div><div class='ctx'>  *</div><div class='ctx'>  *  Also, the remote side can request SSL renegotiation which forces</div><div class='ctx'>  *  the local SSL engine to write some data.</div><div class='del'>- *  This means &lt;code&gt;OpenSSL::SSL::SSLSocket#readpartial&lt;/code&gt; may</div><div class='del'>- *  invoke &lt;code&gt;write&lt;/code&gt; system call and it can block.</div><div class='del'>- *  In such a situation, &lt;code&gt;OpenSSL::SSL::SSLSocket#read_nonblock&lt;/code&gt;</div><div class='del'>- *  raises IO::WaitWritable instead of blocking.</div><div class='del'>- *  So, the caller should wait for ready for writability as above example.</div><div class='add'>+ *  This means OpenSSL::SSL::SSLSocket#readpartial may invoke #write</div><div class='add'>+ *  system call and it can block.</div><div class='add'>+ *  In such a situation, OpenSSL::SSL::SSLSocket#read_nonblock raises</div><div class='add'>+ *  IO::WaitWritable instead of blocking.</div><div class='add'>+ *  So, the caller should wait for ready for writability as above</div><div class='add'>+ *  example.</div><div class='ctx'>  *</div><div class='del'>- *  The combination of nonblocking methods and &lt;code&gt;IO.select&lt;/code&gt; is</div><div class='del'>- *  also useful for streams such as tty, pipe socket socket when</div><div class='del'>- *  multiple processes read from a stream.</div><div class='add'>+ *  The combination of non-blocking methods and \IO.select is also useful</div><div class='add'>+ *  for streams such as tty, pipe socket socket when multiple processes</div><div class='add'>+ *  read from a stream.</div><div class='ctx'>  *</div><div class='ctx'>  *  Finally, Linux kernel developers don't guarantee that</div><div class='ctx'>  *  readability of select(2) means readability of following read(2) even</div><div class='del'>- *  for a single process.</div><div class='del'>- *  See select(2) manual on GNU/Linux system.</div><div class='add'>+ *  for a single process;</div><div class='add'>+ *  see {select(2)}[https://linux.die.net/man/2/select]</div><div class='ctx'>  *</div><div class='del'>- *  Invoking &lt;code&gt;IO.select&lt;/code&gt; before &lt;code&gt;IO#readpartial&lt;/code&gt; works well as usual.</div><div class='del'>- *  However it is not the best way to use &lt;code&gt;IO.select&lt;/code&gt;.</div><div class='add'>+ *  Invoking \IO.select before IO#readpartial works well as usual.</div><div class='add'>+ *  However it is not the best way to use \IO.select.</div><div class='ctx'>  *</div><div class='ctx'>  *  The writability notified by select(2) doesn't show</div><div class='ctx'>  *  how many bytes are writable.</div><div class='del'>- *  &lt;code&gt;IO#write&lt;/code&gt; method blocks until given whole string is written.</div><div class='del'>- *  So, &lt;code&gt;IO#write(two or more bytes)&lt;/code&gt; can block after writability is notified by &lt;code&gt;IO.select&lt;/code&gt;.</div><div class='del'>- *  &lt;code&gt;IO#write_nonblock&lt;/code&gt; is required to avoid the blocking.</div><div class='add'>+ *  IO#write method blocks until given whole string is written.</div><div class='add'>+ *  So, &lt;tt&gt;IO#write(two or more bytes)&lt;/tt&gt; can block after</div><div class='add'>+ *  writability is notified by \IO.select.  IO#write_nonblock is required</div><div class='add'>+ *  to avoid the blocking.</div><div class='ctx'>  *</div><div class='del'>- *  Blocking write (&lt;code&gt;write&lt;/code&gt;) can be emulated using</div><div class='del'>- *  &lt;code&gt;write_nonblock&lt;/code&gt; and &lt;code&gt;IO.select&lt;/code&gt; as follows:</div><div class='del'>- *  IO::WaitReadable should also be rescued for SSL renegotiation in &lt;code&gt;OpenSSL::SSL::SSLSocket&lt;/code&gt;.</div><div class='add'>+ *  Blocking write (#write) can be emulated using #write_nonblock and</div><div class='add'>+ *  IO.select as follows: IO::WaitReadable should also be rescued for</div><div class='add'>+ *  SSL renegotiation in OpenSSL::SSL::SSLSocket.</div><div class='ctx'>  *</div><div class='ctx'>  *    while 0 &lt; string.bytesize</div><div class='ctx'>  *      begin</div><div class='hunk'>@@ -9452,13 +10971,7 @@ rb_io_advise(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>  *      string = string.byteslice(written..-1)</div><div class='ctx'>  *    end</div><div class='ctx'>  *</div><div class='del'>- *  === Parameters</div><div class='del'>- *  read_array:: an array of &lt;code&gt;IO&lt;/code&gt; objects that wait until ready for read</div><div class='del'>- *  write_array:: an array of &lt;code&gt;IO&lt;/code&gt; objects that wait until ready for write</div><div class='del'>- *  error_array:: an array of &lt;code&gt;IO&lt;/code&gt; objects that wait for exceptions</div><div class='del'>- *  timeout:: a numeric value in second</div><div class='del'>- *</div><div class='del'>- *  === Example</div><div class='add'>+ *  Example:</div><div class='ctx'>  *</div><div class='ctx'>  *      rp, wp = IO.pipe</div><div class='ctx'>  *      mesg = "ping "</div><div class='hunk'>@@ -9480,18 +10993,26 @@ rb_io_advise(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>  *        end</div><div class='ctx'>  *      }</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='ctx'>  *      ping pong</div><div class='ctx'>  *      ping pong</div><div class='ctx'>  *      ping pong</div><div class='ctx'>  *      (snipped)</div><div class='ctx'>  *      ping</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_f_select(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        // It's optionally supported.</div><div class='add'>+        VALUE result = rb_fiber_scheduler_io_selectv(scheduler, argc, argv);</div><div class='add'>+        if (!UNDEF_P(result)) return result;</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     VALUE timeout;</div><div class='ctx'>     struct select_args args;</div><div class='ctx'>     struct timeval timerec;</div><div class='hunk'>@@ -9499,25 +11020,24 @@ rb_f_select(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "13", &amp;args.read, &amp;args.write, &amp;args.except, &amp;timeout);</div><div class='ctx'>     if (NIL_P(timeout)) {</div><div class='del'>-	args.timeout = 0;</div><div class='add'>+        args.timeout = 0;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	timerec = rb_time_interval(timeout);</div><div class='del'>-	args.timeout = &amp;timerec;</div><div class='add'>+        timerec = rb_time_interval(timeout);</div><div class='add'>+        args.timeout = &amp;timerec;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; numberof(args.fdsets); ++i)</div><div class='del'>-	rb_fd_init(&amp;args.fdsets[i]);</div><div class='add'>+        rb_fd_init(&amp;args.fdsets[i]);</div><div class='ctx'> </div><div class='ctx'>     return rb_ensure(select_call, (VALUE)&amp;args, select_end, (VALUE)&amp;args);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)</div><div class='del'>- typedef unsigned long ioctl_req_t;</div><div class='del'>-# define NUM2IOCTLREQ(num) NUM2ULONG(num)</div><div class='add'>+#ifdef IOCTL_REQ_TYPE</div><div class='add'>+ typedef IOCTL_REQ_TYPE ioctl_req_t;</div><div class='ctx'> #else</div><div class='ctx'>  typedef int ioctl_req_t;</div><div class='del'>-# define NUM2IOCTLREQ(num) NUM2INT(num)</div><div class='add'>+# define NUM2IOCTLREQ(num) ((int)NUM2LONG(num))</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_IOCTL</div><div class='hunk'>@@ -9551,7 +11071,7 @@ do_ioctl(int fd, ioctl_req_t cmd, long narg)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define DEFULT_IOCTL_NARG_LEN (256)</div><div class='add'>+#define DEFAULT_IOCTL_NARG_LEN (256)</div><div class='ctx'> </div><div class='ctx'> #if defined(__linux__) &amp;&amp; defined(_IOC_SIZE)</div><div class='ctx'> static long</div><div class='hunk'>@@ -9560,20 +11080,21 @@ linux_iocparm_len(ioctl_req_t cmd)</div><div class='ctx'>     long len;</div><div class='ctx'> </div><div class='ctx'>     if ((cmd &amp; 0xFFFF0000) == 0) {</div><div class='del'>-	/* legacy and unstructured ioctl number. */</div><div class='del'>-	return DEFULT_IOCTL_NARG_LEN;</div><div class='add'>+        /* legacy and unstructured ioctl number. */</div><div class='add'>+        return DEFAULT_IOCTL_NARG_LEN;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     len = _IOC_SIZE(cmd);</div><div class='ctx'> </div><div class='ctx'>     /* paranoia check for silly drivers which don't keep ioctl convention */</div><div class='del'>-    if (len &lt; DEFULT_IOCTL_NARG_LEN)</div><div class='del'>-	len = DEFULT_IOCTL_NARG_LEN;</div><div class='add'>+    if (len &lt; DEFAULT_IOCTL_NARG_LEN)</div><div class='add'>+        len = DEFAULT_IOCTL_NARG_LEN;</div><div class='ctx'> </div><div class='ctx'>     return len;</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_IOCTL</div><div class='ctx'> static long</div><div class='ctx'> ioctl_narg_len(ioctl_req_t cmd)</div><div class='ctx'> {</div><div class='hunk'>@@ -9590,11 +11111,12 @@ ioctl_narg_len(ioctl_req_t cmd)</div><div class='ctx'>     len = linux_iocparm_len(cmd);</div><div class='ctx'> #else</div><div class='ctx'>     /* otherwise guess at what's safe */</div><div class='del'>-    len = DEFULT_IOCTL_NARG_LEN;</div><div class='add'>+    len = DEFAULT_IOCTL_NARG_LEN;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     return len;</div><div class='ctx'> }</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_FCNTL</div><div class='ctx'> #ifdef __linux__</div><div class='hunk'>@@ -9605,181 +11127,196 @@ typedef int fcntl_arg_t;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static long</div><div class='del'>-fcntl_narg_len(int cmd)</div><div class='add'>+fcntl_narg_len(ioctl_req_t cmd)</div><div class='ctx'> {</div><div class='ctx'>     long len;</div><div class='ctx'> </div><div class='ctx'>     switch (cmd) {</div><div class='ctx'> #ifdef F_DUPFD</div><div class='ctx'>       case F_DUPFD:</div><div class='del'>-	len = sizeof(fcntl_arg_t);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(fcntl_arg_t);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_DUP2FD /* bsd specific */</div><div class='ctx'>       case F_DUP2FD:</div><div class='del'>-	len = sizeof(int);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(int);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_DUPFD_CLOEXEC /* linux specific */</div><div class='ctx'>       case F_DUPFD_CLOEXEC:</div><div class='del'>-	len = sizeof(fcntl_arg_t);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(fcntl_arg_t);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_GETFD</div><div class='ctx'>       case F_GETFD:</div><div class='del'>-	len = 1;</div><div class='del'>-	break;</div><div class='add'>+        len = 1;</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_SETFD</div><div class='ctx'>       case F_SETFD:</div><div class='del'>-	len = sizeof(fcntl_arg_t);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(fcntl_arg_t);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_GETFL</div><div class='ctx'>       case F_GETFL:</div><div class='del'>-	len = 1;</div><div class='del'>-	break;</div><div class='add'>+        len = 1;</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_SETFL</div><div class='ctx'>       case F_SETFL:</div><div class='del'>-	len = sizeof(fcntl_arg_t);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(fcntl_arg_t);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_GETOWN</div><div class='ctx'>       case F_GETOWN:</div><div class='del'>-	len = 1;</div><div class='del'>-	break;</div><div class='add'>+        len = 1;</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_SETOWN</div><div class='ctx'>       case F_SETOWN:</div><div class='del'>-	len = sizeof(fcntl_arg_t);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(fcntl_arg_t);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_GETOWN_EX /* linux specific */</div><div class='ctx'>       case F_GETOWN_EX:</div><div class='del'>-	len = sizeof(struct f_owner_ex);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(struct f_owner_ex);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_SETOWN_EX /* linux specific */</div><div class='ctx'>       case F_SETOWN_EX:</div><div class='del'>-	len = sizeof(struct f_owner_ex);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(struct f_owner_ex);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_GETLK</div><div class='ctx'>       case F_GETLK:</div><div class='del'>-	len = sizeof(struct flock);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(struct flock);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_SETLK</div><div class='ctx'>       case F_SETLK:</div><div class='del'>-	len = sizeof(struct flock);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(struct flock);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_SETLKW</div><div class='ctx'>       case F_SETLKW:</div><div class='del'>-	len = sizeof(struct flock);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(struct flock);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_READAHEAD /* bsd specific */</div><div class='ctx'>       case F_READAHEAD:</div><div class='del'>-	len = sizeof(int);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(int);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_RDAHEAD /* Darwin specific */</div><div class='ctx'>       case F_RDAHEAD:</div><div class='del'>-	len = sizeof(int);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(int);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_GETSIG /* linux specific */</div><div class='ctx'>       case F_GETSIG:</div><div class='del'>-	len = 1;</div><div class='del'>-	break;</div><div class='add'>+        len = 1;</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_SETSIG /* linux specific */</div><div class='ctx'>       case F_SETSIG:</div><div class='del'>-	len = sizeof(fcntl_arg_t);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(fcntl_arg_t);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_GETLEASE /* linux specific */</div><div class='ctx'>       case F_GETLEASE:</div><div class='del'>-	len = 1;</div><div class='del'>-	break;</div><div class='add'>+        len = 1;</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_SETLEASE /* linux specific */</div><div class='ctx'>       case F_SETLEASE:</div><div class='del'>-	len = sizeof(fcntl_arg_t);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(fcntl_arg_t);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef F_NOTIFY /* linux specific */</div><div class='ctx'>       case F_NOTIFY:</div><div class='del'>-	len = sizeof(fcntl_arg_t);</div><div class='del'>-	break;</div><div class='add'>+        len = sizeof(fcntl_arg_t);</div><div class='add'>+        break;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	len = 256;</div><div class='del'>-	break;</div><div class='add'>+        len = 256;</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return len;</div><div class='ctx'> }</div><div class='ctx'> #else /* HAVE_FCNTL */</div><div class='ctx'> static long</div><div class='del'>-fcntl_narg_len(int cmd)</div><div class='add'>+fcntl_narg_len(ioctl_req_t cmd)</div><div class='ctx'> {</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> #endif /* HAVE_FCNTL */</div><div class='ctx'> </div><div class='add'>+#define NARG_SENTINEL 17</div><div class='add'>+</div><div class='ctx'> static long</div><div class='del'>-setup_narg(ioctl_req_t cmd, VALUE *argp, int io_p)</div><div class='add'>+setup_narg(ioctl_req_t cmd, VALUE *argp, long (*narg_len)(ioctl_req_t))</div><div class='ctx'> {</div><div class='ctx'>     long narg = 0;</div><div class='ctx'>     VALUE arg = *argp;</div><div class='ctx'> </div><div class='del'>-    if (NIL_P(arg) || arg == Qfalse) {</div><div class='del'>-	narg = 0;</div><div class='add'>+    if (!RTEST(arg)) {</div><div class='add'>+        narg = 0;</div><div class='ctx'>     }</div><div class='ctx'>     else if (FIXNUM_P(arg)) {</div><div class='del'>-	narg = FIX2LONG(arg);</div><div class='add'>+        narg = FIX2LONG(arg);</div><div class='ctx'>     }</div><div class='ctx'>     else if (arg == Qtrue) {</div><div class='del'>-	narg = 1;</div><div class='add'>+        narg = 1;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE tmp = rb_check_string_type(arg);</div><div class='del'>-</div><div class='del'>-	if (NIL_P(tmp)) {</div><div class='del'>-	    narg = NUM2LONG(arg);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    char *ptr;</div><div class='del'>-	    long len, slen;</div><div class='del'>-</div><div class='del'>-	    *argp = arg = tmp;</div><div class='del'>-	    if (io_p)</div><div class='del'>-		len = ioctl_narg_len(cmd);</div><div class='del'>-	    else</div><div class='del'>-		len = fcntl_narg_len((int)cmd);</div><div class='del'>-	    rb_str_modify(arg);</div><div class='del'>-</div><div class='del'>-	    slen = RSTRING_LEN(arg);</div><div class='del'>-	    /* expand for data + sentinel. */</div><div class='del'>-	    if (slen &lt; len+1) {</div><div class='del'>-		rb_str_resize(arg, len+1);</div><div class='del'>-		MEMZERO(RSTRING_PTR(arg)+slen, char, len-slen);</div><div class='del'>-		slen = len+1;</div><div class='del'>-	    }</div><div class='del'>-	    /* a little sanity check here */</div><div class='del'>-	    ptr = RSTRING_PTR(arg);</div><div class='del'>-	    ptr[slen - 1] = 17;</div><div class='del'>-	    narg = (long)(SIGNED_VALUE)ptr;</div><div class='del'>-	}</div><div class='add'>+        VALUE tmp = rb_check_string_type(arg);</div><div class='add'>+</div><div class='add'>+        if (NIL_P(tmp)) {</div><div class='add'>+            narg = NUM2LONG(arg);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            char *ptr;</div><div class='add'>+            long len, slen;</div><div class='add'>+</div><div class='add'>+            *argp = arg = tmp;</div><div class='add'>+            len = narg_len(cmd);</div><div class='add'>+            rb_str_modify(arg);</div><div class='add'>+</div><div class='add'>+            slen = RSTRING_LEN(arg);</div><div class='add'>+            /* expand for data + sentinel. */</div><div class='add'>+            if (slen &lt; len+1) {</div><div class='add'>+                rb_str_resize(arg, len+1);</div><div class='add'>+                MEMZERO(RSTRING_PTR(arg)+slen, char, len-slen);</div><div class='add'>+                slen = len+1;</div><div class='add'>+            }</div><div class='add'>+            /* a little sanity check here */</div><div class='add'>+            ptr = RSTRING_PTR(arg);</div><div class='add'>+            ptr[slen - 1] = NARG_SENTINEL;</div><div class='add'>+            narg = (long)(SIGNED_VALUE)ptr;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return narg;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+finish_narg(int retval, VALUE arg, const rb_io_t *fptr)</div><div class='add'>+{</div><div class='add'>+    if (retval &lt; 0) rb_sys_fail_path(fptr-&gt;pathv);</div><div class='add'>+    if (RB_TYPE_P(arg, T_STRING)) {</div><div class='add'>+        char *ptr;</div><div class='add'>+        long slen;</div><div class='add'>+        RSTRING_GETMEM(arg, ptr, slen);</div><div class='add'>+        if (ptr[slen-1] != NARG_SENTINEL)</div><div class='add'>+            rb_raise(rb_eArgError, "return value overflowed string");</div><div class='add'>+        ptr[slen-1] = '\0';</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return INT2NUM(retval);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_IOCTL</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_ioctl(VALUE io, VALUE req, VALUE arg)</div><div class='hunk'>@@ -9789,32 +11326,28 @@ rb_ioctl(VALUE io, VALUE req, VALUE arg)</div><div class='ctx'>     long narg;</div><div class='ctx'>     int retval;</div><div class='ctx'> </div><div class='del'>-    narg = setup_narg(cmd, &amp;arg, 1);</div><div class='add'>+    narg = setup_narg(cmd, &amp;arg, ioctl_narg_len);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     retval = do_ioctl(fptr-&gt;fd, cmd, narg);</div><div class='del'>-    if (retval &lt; 0) rb_sys_fail_path(fptr-&gt;pathv);</div><div class='del'>-    if (RB_TYPE_P(arg, T_STRING)) {</div><div class='del'>-	char *ptr;</div><div class='del'>-	long slen;</div><div class='del'>-	RSTRING_GETMEM(arg, ptr, slen);</div><div class='del'>-	if (ptr[slen-1] != 17)</div><div class='del'>-	    rb_raise(rb_eArgError, "return value overflowed string");</div><div class='del'>-	ptr[slen-1] = '\0';</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return INT2NUM(retval);</div><div class='add'>+    return finish_narg(retval, arg, fptr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.ioctl(integer_cmd, arg)    -&gt; integer</div><div class='add'>+ *    ioctl(integer_cmd, argument) -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Invokes Posix system call {ioctl(2)}[https://linux.die.net/man/2/ioctl],</div><div class='add'>+ *  which issues a low-level command to an I/O device.</div><div class='add'>+ *</div><div class='add'>+ *  Issues a low-level command to an I/O device.</div><div class='add'>+ *  The arguments and returned value are platform-dependent.</div><div class='add'>+ *  The effect of the call is platform-dependent.</div><div class='add'>+ *</div><div class='add'>+ *  If argument +argument+ is an integer, it is passed directly;</div><div class='add'>+ *  if it is a string, it is interpreted as a binary sequence of bytes.</div><div class='add'>+ *</div><div class='add'>+ *  Not implemented on all platforms.</div><div class='ctx'>  *</div><div class='del'>- *  Provides a mechanism for issuing low-level commands to control or</div><div class='del'>- *  query I/O devices. Arguments and results are platform dependent. If</div><div class='del'>- *  &lt;i&gt;arg&lt;/i&gt; is a number, its value is passed directly. If it is a</div><div class='del'>- *  string, it is interpreted as a binary sequence of bytes. On Unix</div><div class='del'>- *  platforms, see &lt;code&gt;ioctl(2)&lt;/code&gt; for details. Not implemented on</div><div class='del'>- *  all platforms.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -9843,7 +11376,7 @@ nogvl_fcntl(void *ptr)</div><div class='ctx'> </div><div class='ctx'> #if defined(F_DUPFD)</div><div class='ctx'>     if (arg-&gt;cmd == F_DUPFD)</div><div class='del'>-	return (VALUE)rb_cloexec_fcntl_dupfd(arg-&gt;fd, (int)arg-&gt;narg);</div><div class='add'>+        return (VALUE)rb_cloexec_fcntl_dupfd(arg-&gt;fd, (int)arg-&gt;narg);</div><div class='ctx'> #endif</div><div class='ctx'>     return (VALUE)fcntl(arg-&gt;fd, arg-&gt;cmd, arg-&gt;narg);</div><div class='ctx'> }</div><div class='hunk'>@@ -9860,15 +11393,15 @@ do_fcntl(int fd, int cmd, long narg)</div><div class='ctx'> </div><div class='ctx'>     retval = (int)rb_thread_io_blocking_region(nogvl_fcntl, &amp;arg, fd);</div><div class='ctx'>     if (retval != -1) {</div><div class='del'>-	switch (cmd) {</div><div class='add'>+        switch (cmd) {</div><div class='ctx'> #if defined(F_DUPFD)</div><div class='del'>-	  case F_DUPFD:</div><div class='add'>+          case F_DUPFD:</div><div class='ctx'> #endif</div><div class='ctx'> #if defined(F_DUPFD_CLOEXEC)</div><div class='del'>-	  case F_DUPFD_CLOEXEC:</div><div class='add'>+          case F_DUPFD_CLOEXEC:</div><div class='ctx'> #endif</div><div class='del'>-	    rb_update_max_fd(retval);</div><div class='del'>-	}</div><div class='add'>+            rb_update_max_fd(retval);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return retval;</div><div class='hunk'>@@ -9882,33 +11415,27 @@ rb_fcntl(VALUE io, VALUE req, VALUE arg)</div><div class='ctx'>     long narg;</div><div class='ctx'>     int retval;</div><div class='ctx'> </div><div class='del'>-    narg = setup_narg(cmd, &amp;arg, 0);</div><div class='add'>+    narg = setup_narg(cmd, &amp;arg, fcntl_narg_len);</div><div class='ctx'>     GetOpenFile(io, fptr);</div><div class='ctx'>     retval = do_fcntl(fptr-&gt;fd, cmd, narg);</div><div class='del'>-    if (retval &lt; 0) rb_sys_fail_path(fptr-&gt;pathv);</div><div class='del'>-    if (RB_TYPE_P(arg, T_STRING)) {</div><div class='del'>-	char *ptr;</div><div class='del'>-	long slen;</div><div class='del'>-	RSTRING_GETMEM(arg, ptr, slen);</div><div class='del'>-	if (ptr[slen-1] != 17)</div><div class='del'>-	    rb_raise(rb_eArgError, "return value overflowed string");</div><div class='del'>-	ptr[slen-1] = '\0';</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return INT2NUM(retval);</div><div class='add'>+    return finish_narg(retval, arg, fptr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ios.fcntl(integer_cmd, arg)    -&gt; integer</div><div class='add'>+ *    fcntl(integer_cmd, argument) -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Invokes Posix system call {fcntl(2)}[https://linux.die.net/man/2/fcntl],</div><div class='add'>+ *  which provides a mechanism for issuing low-level commands to control or query</div><div class='add'>+ *  a file-oriented I/O stream. Arguments and results are platform</div><div class='add'>+ *  dependent.</div><div class='add'>+ *</div><div class='add'>+ *  If +argument is a number, its value is passed directly;</div><div class='add'>+ *  if it is a string, it is interpreted as a binary sequence of bytes.</div><div class='add'>+ *  (Array#pack might be a useful way to build this string.)</div><div class='ctx'>  *</div><div class='del'>- *  Provides a mechanism for issuing low-level commands to control or</div><div class='del'>- *  query file-oriented I/O streams. Arguments and results are platform</div><div class='del'>- *  dependent. If &lt;i&gt;arg&lt;/i&gt; is a number, its value is passed</div><div class='del'>- *  directly. If it is a string, it is interpreted as a binary sequence</div><div class='del'>- *  of bytes (&lt;code&gt;Array#pack&lt;/code&gt; might be a useful way to build this</div><div class='del'>- *  string). On Unix platforms, see &lt;code&gt;fcntl(2)&lt;/code&gt; for details.</div><div class='ctx'>  *  Not implemented on all platforms.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -9926,40 +11453,33 @@ rb_io_fcntl(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> #if defined(HAVE_SYSCALL) || defined(HAVE___SYSCALL)</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     syscall(num [, args...])   -&gt; integer</div><div class='del'>- *</div><div class='del'>- *  Calls the operating system function identified by _num_ and</div><div class='del'>- *  returns the result of the function or raises SystemCallError if</div><div class='del'>- *  it failed.</div><div class='del'>- *</div><div class='del'>- *  Arguments for the function can follow _num_. They must be either</div><div class='del'>- *  +String+ objects or +Integer+ objects. A +String+ object is passed</div><div class='del'>- *  as a pointer to the byte sequence. An +Integer+ object is passed</div><div class='del'>- *  as an integer whose bit size is same as a pointer.</div><div class='del'>- *  Up to nine parameters may be passed.</div><div class='add'>+ *    syscall(integer_callno, *arguments)   -&gt; integer</div><div class='ctx'>  *</div><div class='del'>- *  The function identified by _num_ is system</div><div class='del'>- *  dependent. On some Unix systems, the numbers may be obtained from a</div><div class='del'>- *  header file called &lt;code&gt;syscall.h&lt;/code&gt;.</div><div class='add'>+ *  Invokes Posix system call {syscall(2)}[https://linux.die.net/man/2/syscall],</div><div class='add'>+ *  which calls a specified function.</div><div class='ctx'>  *</div><div class='del'>- *     syscall 4, 1, "hello\n", 6   # '4' is write(2) on our box</div><div class='del'>- *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  Calls the operating system function identified by +integer_callno+;</div><div class='add'>+ *  returns the result of the function or raises SystemCallError if it failed.</div><div class='add'>+ *  The effect of the call is platform-dependent.</div><div class='add'>+ *  The arguments and returned value are platform-dependent.</div><div class='ctx'>  *</div><div class='del'>- *     hello</div><div class='add'>+ *  For each of +arguments+: if it is an integer, it is passed directly;</div><div class='add'>+ *  if it is a string, it is interpreted as a binary sequence of bytes.</div><div class='add'>+ *  There may be as many as nine such arguments.</div><div class='ctx'>  *</div><div class='del'>- *  Calling +syscall+ on a platform which does not have any way to</div><div class='del'>- *  an arbitrary system function just fails with NotImplementedError.</div><div class='add'>+ *  Arguments +integer_callno+ and +argument+, as well as the returned value,</div><div class='add'>+ *  are platform-dependent.</div><div class='ctx'>  *</div><div class='del'>- *  *Note:*</div><div class='del'>- *  +syscall+ is essentially unsafe and unportable.</div><div class='del'>- *  Feel free to shoot your foot.</div><div class='add'>+ *  Note: Method +syscall+ is essentially unsafe and unportable.</div><div class='ctx'>  *  The DL (Fiddle) library is preferred for safer and a bit</div><div class='ctx'>  *  more portable programming.</div><div class='add'>+ *</div><div class='add'>+ *  Not implemented on all platforms.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-rb_f_syscall(int argc, VALUE *argv)</div><div class='add'>+rb_f_syscall(int argc, VALUE *argv, VALUE _)</div><div class='ctx'> {</div><div class='ctx'>     VALUE arg[8];</div><div class='ctx'> #if SIZEOF_VOIDP == 8 &amp;&amp; defined(HAVE___SYSCALL) &amp;&amp; SIZEOF_INT != 8 /* mainly *BSD */</div><div class='hunk'>@@ -9994,56 +11514,57 @@ rb_f_syscall(int argc, VALUE *argv)</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(ruby_verbose)) {</div><div class='del'>-	rb_warning("We plan to remove a syscall function at future release. DL(Fiddle) provides safer alternative.");</div><div class='add'>+        rb_category_warning(RB_WARN_CATEGORY_DEPRECATED,</div><div class='add'>+            "We plan to remove a syscall function at future release. DL(Fiddle) provides safer alternative.");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (argc == 0)</div><div class='del'>-	rb_raise(rb_eArgError, "too few arguments for syscall");</div><div class='add'>+        rb_raise(rb_eArgError, "too few arguments for syscall");</div><div class='ctx'>     if (argc &gt; numberof(arg))</div><div class='del'>-	rb_raise(rb_eArgError, "too many arguments for syscall");</div><div class='add'>+        rb_raise(rb_eArgError, "too many arguments for syscall");</div><div class='ctx'>     num = NUM2SYSCALLID(argv[0]); ++argv;</div><div class='ctx'>     for (i = argc - 1; i--; ) {</div><div class='del'>-	VALUE v = rb_check_string_type(argv[i]);</div><div class='add'>+        VALUE v = rb_check_string_type(argv[i]);</div><div class='ctx'> </div><div class='del'>-	if (!NIL_P(v)) {</div><div class='del'>-	    SafeStringValue(v);</div><div class='del'>-	    rb_str_modify(v);</div><div class='del'>-	    arg[i] = (VALUE)StringValueCStr(v);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    arg[i] = (VALUE)NUM2LONG(argv[i]);</div><div class='del'>-	}</div><div class='add'>+        if (!NIL_P(v)) {</div><div class='add'>+            SafeStringValue(v);</div><div class='add'>+            rb_str_modify(v);</div><div class='add'>+            arg[i] = (VALUE)StringValueCStr(v);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            arg[i] = (VALUE)NUM2LONG(argv[i]);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     switch (argc) {</div><div class='ctx'>       case 1:</div><div class='del'>-	retval = SYSCALL(num);</div><div class='del'>-	break;</div><div class='add'>+        retval = SYSCALL(num);</div><div class='add'>+        break;</div><div class='ctx'>       case 2:</div><div class='del'>-	retval = SYSCALL(num, arg[0]);</div><div class='del'>-	break;</div><div class='add'>+        retval = SYSCALL(num, arg[0]);</div><div class='add'>+        break;</div><div class='ctx'>       case 3:</div><div class='del'>-	retval = SYSCALL(num, arg[0],arg[1]);</div><div class='del'>-	break;</div><div class='add'>+        retval = SYSCALL(num, arg[0],arg[1]);</div><div class='add'>+        break;</div><div class='ctx'>       case 4:</div><div class='del'>-	retval = SYSCALL(num, arg[0],arg[1],arg[2]);</div><div class='del'>-	break;</div><div class='add'>+        retval = SYSCALL(num, arg[0],arg[1],arg[2]);</div><div class='add'>+        break;</div><div class='ctx'>       case 5:</div><div class='del'>-	retval = SYSCALL(num, arg[0],arg[1],arg[2],arg[3]);</div><div class='del'>-	break;</div><div class='add'>+        retval = SYSCALL(num, arg[0],arg[1],arg[2],arg[3]);</div><div class='add'>+        break;</div><div class='ctx'>       case 6:</div><div class='del'>-	retval = SYSCALL(num, arg[0],arg[1],arg[2],arg[3],arg[4]);</div><div class='del'>-	break;</div><div class='add'>+        retval = SYSCALL(num, arg[0],arg[1],arg[2],arg[3],arg[4]);</div><div class='add'>+        break;</div><div class='ctx'>       case 7:</div><div class='del'>-	retval = SYSCALL(num, arg[0],arg[1],arg[2],arg[3],arg[4],arg[5]);</div><div class='del'>-	break;</div><div class='add'>+        retval = SYSCALL(num, arg[0],arg[1],arg[2],arg[3],arg[4],arg[5]);</div><div class='add'>+        break;</div><div class='ctx'>       case 8:</div><div class='del'>-	retval = SYSCALL(num, arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]);</div><div class='del'>-	break;</div><div class='add'>+        retval = SYSCALL(num, arg[0],arg[1],arg[2],arg[3],arg[4],arg[5],arg[6]);</div><div class='add'>+        break;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (retval == -1)</div><div class='del'>-	rb_sys_fail(0);</div><div class='add'>+        rb_sys_fail(0);</div><div class='ctx'>     return RETVAL2NUM(retval);</div><div class='ctx'> #undef SYSCALL</div><div class='ctx'> #undef NUM2SYSCALLID</div><div class='hunk'>@@ -10075,51 +11596,51 @@ io_encoding_set(rb_io_t *fptr, VALUE v1, VALUE v2, VALUE opt)</div><div class='ctx'>     VALUE ecopts, tmp;</div><div class='ctx'> </div><div class='ctx'>     if (!NIL_P(v2)) {</div><div class='del'>-	enc2 = find_encoding(v1);</div><div class='del'>-	tmp = rb_check_string_type(v2);</div><div class='del'>-	if (!NIL_P(tmp)) {</div><div class='del'>-	    if (RSTRING_LEN(tmp) == 1 &amp;&amp; RSTRING_PTR(tmp)[0] == '-') {</div><div class='del'>-		/* Special case - "-" =&gt; no transcoding */</div><div class='del'>-		enc = enc2;</div><div class='del'>-		enc2 = NULL;</div><div class='del'>-	    }</div><div class='del'>-	    else</div><div class='del'>-		enc = find_encoding(v2);</div><div class='del'>-	    if (enc == enc2) {</div><div class='del'>-		/* Special case - "-" =&gt; no transcoding */</div><div class='del'>-		enc2 = NULL;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    enc = find_encoding(v2);</div><div class='del'>-	    if (enc == enc2) {</div><div class='del'>-		/* Special case - "-" =&gt; no transcoding */</div><div class='del'>-		enc2 = NULL;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='del'>-	ecflags = rb_econv_prepare_options(opt, &amp;ecopts, ecflags);</div><div class='add'>+        enc2 = find_encoding(v1);</div><div class='add'>+        tmp = rb_check_string_type(v2);</div><div class='add'>+        if (!NIL_P(tmp)) {</div><div class='add'>+            if (RSTRING_LEN(tmp) == 1 &amp;&amp; RSTRING_PTR(tmp)[0] == '-') {</div><div class='add'>+                /* Special case - "-" =&gt; no transcoding */</div><div class='add'>+                enc = enc2;</div><div class='add'>+                enc2 = NULL;</div><div class='add'>+            }</div><div class='add'>+            else</div><div class='add'>+                enc = find_encoding(v2);</div><div class='add'>+            if (enc == enc2) {</div><div class='add'>+                /* Special case - "-" =&gt; no transcoding */</div><div class='add'>+                enc2 = NULL;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            enc = find_encoding(v2);</div><div class='add'>+            if (enc == enc2) {</div><div class='add'>+                /* Special case - "-" =&gt; no transcoding */</div><div class='add'>+                enc2 = NULL;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='add'>+        ecflags = rb_econv_prepare_options(opt, &amp;ecopts, ecflags);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (NIL_P(v1)) {</div><div class='del'>-	    /* Set to default encodings */</div><div class='del'>-	    rb_io_ext_int_to_encs(NULL, NULL, &amp;enc, &amp;enc2, 0);</div><div class='del'>-	    SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='add'>+        if (NIL_P(v1)) {</div><div class='add'>+            /* Set to default encodings */</div><div class='add'>+            rb_io_ext_int_to_encs(NULL, NULL, &amp;enc, &amp;enc2, 0);</div><div class='add'>+            SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='ctx'>             ecopts = Qnil;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    tmp = rb_check_string_type(v1);</div><div class='del'>-	    if (!NIL_P(tmp) &amp;&amp; rb_enc_asciicompat(enc = rb_enc_get(tmp))) {</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            tmp = rb_check_string_type(v1);</div><div class='add'>+            if (!NIL_P(tmp) &amp;&amp; rb_enc_asciicompat(enc = rb_enc_get(tmp))) {</div><div class='ctx'>                 parse_mode_enc(RSTRING_PTR(tmp), enc, &amp;enc, &amp;enc2, NULL);</div><div class='del'>-		SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='add'>+                SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='ctx'>                 ecflags = rb_econv_prepare_options(opt, &amp;ecopts, ecflags);</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		rb_io_ext_int_to_encs(find_encoding(v1), NULL, &amp;enc, &amp;enc2, 0);</div><div class='del'>-		SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rb_io_ext_int_to_encs(find_encoding(v1), NULL, &amp;enc, &amp;enc2, 0);</div><div class='add'>+                SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2(enc2, ecflags);</div><div class='ctx'>                 ecopts = Qnil;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     validate_enc_binmode(&amp;fptr-&gt;mode, ecflags, enc, enc2);</div><div class='ctx'>     fptr-&gt;encs.enc = enc;</div><div class='hunk'>@@ -10154,62 +11675,81 @@ pipe_pair_close(VALUE rw)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.pipe                             -&gt;  [read_io, write_io]</div><div class='del'>- *     IO.pipe(ext_enc)                    -&gt;  [read_io, write_io]</div><div class='del'>- *     IO.pipe("ext_enc:int_enc" [, opt])  -&gt;  [read_io, write_io]</div><div class='del'>- *     IO.pipe(ext_enc, int_enc [, opt])   -&gt;  [read_io, write_io]</div><div class='add'>+ *    IO.pipe(**opts) -&gt; [read_io, write_io]</div><div class='add'>+ *    IO.pipe(enc, **opts) -&gt; [read_io, write_io]</div><div class='add'>+ *    IO.pipe(ext_enc, int_enc, **opts) -&gt; [read_io, write_io]</div><div class='add'>+ *    IO.pipe(**opts) {|read_io, write_io] ...} -&gt; object</div><div class='add'>+ *    IO.pipe(enc, **opts) {|read_io, write_io] ...} -&gt; object</div><div class='add'>+ *    IO.pipe(ext_enc, int_enc, **opts) {|read_io, write_io] ...} -&gt; object</div><div class='ctx'>  *</div><div class='del'>- *     IO.pipe(...) {|read_io, write_io| ... }</div><div class='add'>+ *  Creates a pair of pipe endpoints, +read_io+ and +write_io+,</div><div class='add'>+ *  connected to each other.</div><div class='ctx'>  *</div><div class='del'>- *  Creates a pair of pipe endpoints (connected to each other) and</div><div class='del'>- *  returns them as a two-element array of &lt;code&gt;IO&lt;/code&gt; objects:</div><div class='del'>- *  &lt;code&gt;[&lt;/code&gt; &lt;i&gt;read_io&lt;/i&gt;, &lt;i&gt;write_io&lt;/i&gt; &lt;code&gt;]&lt;/code&gt;.</div><div class='add'>+ *  If argument +enc_string+ is given, it must be a string containing one of:</div><div class='ctx'>  *</div><div class='del'>- *  If a block is given, the block is called and</div><div class='del'>- *  returns the value of the block.</div><div class='del'>- *  &lt;i&gt;read_io&lt;/i&gt; and &lt;i&gt;write_io&lt;/i&gt; are sent to the block as arguments.</div><div class='del'>- *  If read_io and write_io are not closed when the block exits, they are closed.</div><div class='del'>- *  i.e. closing read_io and/or write_io doesn't cause an error.</div><div class='add'>+ *  - The name of the encoding to be used as the external encoding.</div><div class='add'>+ *  - The colon-separated names of two encodings to be used as the external</div><div class='add'>+ *    and internal encodings.</div><div class='ctx'>  *</div><div class='del'>- *  Not available on all platforms.</div><div class='add'>+ *  If argument +int_enc+ is given, it must be an Encoding object</div><div class='add'>+ *  or encoding name string that specifies the internal encoding to be used;</div><div class='add'>+ *  if argument +ext_enc+ is also given, it must be an Encoding object</div><div class='add'>+ *  or encoding name string that specifies the external encoding to be used.</div><div class='add'>+ *</div><div class='add'>+ *  The string read from +read_io+ is tagged with the external encoding;</div><div class='add'>+ *  if an internal encoding is also specified, the string is converted</div><div class='add'>+ *  to, and tagged with, that encoding.</div><div class='add'>+ *</div><div class='add'>+ *  If any encoding is specified,</div><div class='add'>+ *  optional hash arguments specify the conversion option.</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword arguments +opts+ specify:</div><div class='add'>+ *</div><div class='add'>+ *  - {Open Options}[rdoc-ref:IO@Open+Options].</div><div class='add'>+ *  - {Encoding Options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='add'>+ *</div><div class='add'>+ *  With no block given, returns the two endpoints in an array:</div><div class='add'>+ *</div><div class='add'>+ *    IO.pipe # =&gt; [#&lt;IO:fd 4&gt;, #&lt;IO:fd 5&gt;]</div><div class='add'>+ *</div><div class='add'>+ *  With a block given, calls the block with the two endpoints;</div><div class='add'>+ *  closes both endpoints and returns the value of the block:</div><div class='add'>+ *</div><div class='add'>+ *    IO.pipe {|read_io, write_io| p read_io; p write_io }</div><div class='ctx'>  *</div><div class='del'>- *  If an encoding (encoding name or encoding object) is specified as an optional argument,</div><div class='del'>- *  read string from pipe is tagged with the encoding specified.</div><div class='del'>- *  If the argument is a colon separated two encoding names "A:B",</div><div class='del'>- *  the read string is converted from encoding A (external encoding)</div><div class='del'>- *  to encoding B (internal encoding), then tagged with B.</div><div class='del'>- *  If two optional arguments are specified, those must be</div><div class='del'>- *  encoding objects or encoding names,</div><div class='del'>- *  and the first one is the external encoding,</div><div class='del'>- *  and the second one is the internal encoding.</div><div class='del'>- *  If the external encoding and the internal encoding is specified,</div><div class='del'>- *  optional hash argument specify the conversion option.</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    #&lt;IO:fd 6&gt;</div><div class='add'>+ *    #&lt;IO:fd 7&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Not available on all platforms.</div><div class='ctx'>  *</div><div class='ctx'>  *  In the example below, the two processes close the ends of the pipe</div><div class='ctx'>  *  that they are not using. This is not just a cosmetic nicety. The</div><div class='ctx'>  *  read end of a pipe will not generate an end of file condition if</div><div class='ctx'>  *  there are any writers with the pipe still open. In the case of the</div><div class='del'>- *  parent process, the &lt;code&gt;rd.read&lt;/code&gt; will never return if it</div><div class='del'>- *  does not first issue a &lt;code&gt;wr.close&lt;/code&gt;.</div><div class='del'>- *</div><div class='del'>- *     rd, wr = IO.pipe</div><div class='del'>- *</div><div class='del'>- *     if fork</div><div class='del'>- *       wr.close</div><div class='del'>- *       puts "Parent got: &lt;#{rd.read}&gt;"</div><div class='del'>- *       rd.close</div><div class='del'>- *       Process.wait</div><div class='del'>- *     else</div><div class='del'>- *       rd.close</div><div class='del'>- *       puts "Sending message to parent"</div><div class='del'>- *       wr.write "Hi Dad"</div><div class='del'>- *       wr.close</div><div class='del'>- *     end</div><div class='add'>+ *  parent process, the &lt;tt&gt;rd.read&lt;/tt&gt; will never return if it</div><div class='add'>+ *  does not first issue a &lt;tt&gt;wr.close&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    rd, wr = IO.pipe</div><div class='add'>+ *</div><div class='add'>+ *    if fork</div><div class='add'>+ *      wr.close</div><div class='add'>+ *      puts "Parent got: &lt;#{rd.read}&gt;"</div><div class='add'>+ *      rd.close</div><div class='add'>+ *      Process.wait</div><div class='add'>+ *    else</div><div class='add'>+ *      rd.close</div><div class='add'>+ *      puts 'Sending message to parent'</div><div class='add'>+ *      wr.write "Hi Dad"</div><div class='add'>+ *      wr.close</div><div class='add'>+ *    end</div><div class='ctx'>  *</div><div class='ctx'>  *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='ctx'>  *</div><div class='ctx'>  *     Sending message to parent</div><div class='ctx'>  *     Parent got: &lt;Hi Dad&gt;</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -10232,9 +11772,9 @@ rb_io_s_pipe(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     args[2] = INT2FIX(O_RDONLY);</div><div class='ctx'>     r = rb_protect(io_new_instance, (VALUE)args, &amp;state);</div><div class='ctx'>     if (state) {</div><div class='del'>-	close(pipes[0]);</div><div class='del'>-	close(pipes[1]);</div><div class='del'>-	rb_jump_tag(state);</div><div class='add'>+        close(pipes[0]);</div><div class='add'>+        close(pipes[1]);</div><div class='add'>+        rb_jump_tag(state);</div><div class='ctx'>     }</div><div class='ctx'>     GetOpenFile(r, fptr);</div><div class='ctx'> </div><div class='hunk'>@@ -10244,49 +11784,55 @@ rb_io_s_pipe(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'>     ies_args.opt = opt;</div><div class='ctx'>     rb_protect(io_encoding_set_v, (VALUE)&amp;ies_args, &amp;state);</div><div class='ctx'>     if (state) {</div><div class='del'>-	close(pipes[1]);</div><div class='add'>+        close(pipes[1]);</div><div class='ctx'>         io_close(r);</div><div class='del'>-	rb_jump_tag(state);</div><div class='add'>+        rb_jump_tag(state);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     args[1] = INT2NUM(pipes[1]);</div><div class='ctx'>     args[2] = INT2FIX(O_WRONLY);</div><div class='ctx'>     w = rb_protect(io_new_instance, (VALUE)args, &amp;state);</div><div class='ctx'>     if (state) {</div><div class='del'>-	close(pipes[1]);</div><div class='del'>-	if (!NIL_P(r)) rb_io_close(r);</div><div class='del'>-	rb_jump_tag(state);</div><div class='add'>+        close(pipes[1]);</div><div class='add'>+        if (!NIL_P(r)) rb_io_close(r);</div><div class='add'>+        rb_jump_tag(state);</div><div class='ctx'>     }</div><div class='ctx'>     GetOpenFile(w, fptr2);</div><div class='ctx'>     rb_io_synchronized(fptr2);</div><div class='ctx'> </div><div class='ctx'>     extract_binmode(opt, &amp;fmode);</div><div class='add'>+</div><div class='add'>+    if ((fmode &amp; FMODE_BINMODE) &amp;&amp; NIL_P(v1)) {</div><div class='add'>+        rb_io_ascii8bit_binmode(r);</div><div class='add'>+        rb_io_ascii8bit_binmode(w);</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'> #if DEFAULT_TEXTMODE</div><div class='ctx'>     if ((fptr-&gt;mode &amp; FMODE_TEXTMODE) &amp;&amp; (fmode &amp; FMODE_BINMODE)) {</div><div class='del'>-	fptr-&gt;mode &amp;= ~FMODE_TEXTMODE;</div><div class='del'>-	setmode(fptr-&gt;fd, O_BINARY);</div><div class='add'>+        fptr-&gt;mode &amp;= ~FMODE_TEXTMODE;</div><div class='add'>+        setmode(fptr-&gt;fd, O_BINARY);</div><div class='ctx'>     }</div><div class='del'>-#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32)</div><div class='add'>+#if RUBY_CRLF_ENVIRONMENT</div><div class='ctx'>     if (fptr-&gt;encs.ecflags &amp; ECONV_DEFAULT_NEWLINE_DECORATOR) {</div><div class='del'>-	fptr-&gt;encs.ecflags |= ECONV_UNIVERSAL_NEWLINE_DECORATOR;</div><div class='add'>+        fptr-&gt;encs.ecflags |= ECONV_UNIVERSAL_NEWLINE_DECORATOR;</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'> #endif</div><div class='ctx'>     fptr-&gt;mode |= fmode;</div><div class='ctx'> #if DEFAULT_TEXTMODE</div><div class='ctx'>     if ((fptr2-&gt;mode &amp; FMODE_TEXTMODE) &amp;&amp; (fmode &amp; FMODE_BINMODE)) {</div><div class='del'>-	fptr2-&gt;mode &amp;= ~FMODE_TEXTMODE;</div><div class='del'>-	setmode(fptr2-&gt;fd, O_BINARY);</div><div class='add'>+        fptr2-&gt;mode &amp;= ~FMODE_TEXTMODE;</div><div class='add'>+        setmode(fptr2-&gt;fd, O_BINARY);</div><div class='ctx'>     }</div><div class='ctx'> #endif</div><div class='ctx'>     fptr2-&gt;mode |= fmode;</div><div class='ctx'> </div><div class='ctx'>     ret = rb_assoc_new(r, w);</div><div class='ctx'>     if (rb_block_given_p()) {</div><div class='del'>-	VALUE rw[2];</div><div class='del'>-	rw[0] = r;</div><div class='del'>-	rw[1] = w;</div><div class='del'>-	return rb_ensure(rb_yield, ret, pipe_pair_close, (VALUE)rw);</div><div class='add'>+        VALUE rw[2];</div><div class='add'>+        rw[0] = r;</div><div class='add'>+        rw[1] = w;</div><div class='add'>+        return rb_ensure(rb_yield, ret, pipe_pair_close, (VALUE)rw);</div><div class='ctx'>     }</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='hunk'>@@ -10310,28 +11856,31 @@ open_key_args(VALUE klass, int argc, VALUE *argv, VALUE opt, struct foreach_arg</div><div class='ctx'>     arg-&gt;argc = argc;</div><div class='ctx'>     arg-&gt;argv = argv;</div><div class='ctx'>     if (NIL_P(opt)) {</div><div class='del'>-	vmode = INT2NUM(O_RDONLY);</div><div class='del'>-	vperm = INT2FIX(0666);</div><div class='add'>+        vmode = INT2NUM(O_RDONLY);</div><div class='add'>+        vperm = INT2FIX(0666);</div><div class='ctx'>     }</div><div class='ctx'>     else if (!NIL_P(v = rb_hash_aref(opt, sym_open_args))) {</div><div class='del'>-	int n;</div><div class='add'>+        int n;</div><div class='ctx'> </div><div class='del'>-	v = rb_to_array_type(v);</div><div class='del'>-	n = RARRAY_LENINT(v);</div><div class='del'>-	rb_check_arity(n, 0, 3); /* rb_io_open */</div><div class='del'>-	rb_scan_args(n, RARRAY_CONST_PTR(v), "02:", &amp;vmode, &amp;vperm, &amp;opt);</div><div class='add'>+        v = rb_to_array_type(v);</div><div class='add'>+        n = RARRAY_LENINT(v);</div><div class='add'>+        rb_check_arity(n, 0, 3); /* rb_io_open */</div><div class='add'>+        rb_scan_args_kw(RB_SCAN_ARGS_LAST_HASH_KEYWORDS, n, RARRAY_CONST_PTR(v), "02:", &amp;vmode, &amp;vperm, &amp;opt);</div><div class='ctx'>     }</div><div class='ctx'>     arg-&gt;io = rb_io_open(klass, path, vmode, vperm, opt);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-io_s_foreach(struct getline_arg *arg)</div><div class='add'>+io_s_foreach(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct getline_arg *arg = (void *)v;</div><div class='ctx'>     VALUE str;</div><div class='ctx'> </div><div class='add'>+    if (arg-&gt;limit == 0)</div><div class='add'>+        rb_raise(rb_eArgError, "invalid limit: 0 for foreach");</div><div class='ctx'>     while (!NIL_P(str = rb_io_getline_1(arg-&gt;rs, arg-&gt;limit, arg-&gt;chomp, arg-&gt;io))) {</div><div class='del'>-	rb_lastline_set(str);</div><div class='del'>-	rb_yield(str);</div><div class='add'>+        rb_lastline_set(str);</div><div class='add'>+        rb_yield(str);</div><div class='ctx'>     }</div><div class='ctx'>     rb_lastline_set(Qnil);</div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -10339,28 +11888,93 @@ io_s_foreach(struct getline_arg *arg)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.foreach(name, sep=$/ [, getline_args, open_args]) {|line| block }     -&gt; nil</div><div class='del'>- *     IO.foreach(name, limit [, getline_args, open_args]) {|line| block }      -&gt; nil</div><div class='del'>- *     IO.foreach(name, sep, limit [, getline_args, open_args]) {|line| block } -&gt; nil</div><div class='del'>- *     IO.foreach(...)                                            -&gt; an_enumerator</div><div class='add'>+ *    IO.foreach(path, sep = $/, **opts) {|line| block }       -&gt; nil</div><div class='add'>+ *    IO.foreach(path, limit, **opts) {|line| block }          -&gt; nil</div><div class='add'>+ *    IO.foreach(path, sep, limit, **opts) {|line| block }     -&gt; nil</div><div class='add'>+ *    IO.foreach(command, sep = $/, **opts) {|line| block }    -&gt; nil</div><div class='add'>+ *    IO.foreach(command, limit, **opts) {|line| block }       -&gt; nil</div><div class='add'>+ *    IO.foreach(command, sep, limit, **opts) {|line| block }  -&gt; nil</div><div class='add'>+ *    IO.foreach(...)                                          -&gt; an_enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Executes the block for every line in the named I/O port, where lines</div><div class='del'>- *  are separated by &lt;em&gt;sep&lt;/em&gt;.</div><div class='add'>+ *  Calls the block with each successive line read from the stream.</div><div class='ctx'>  *</div><div class='del'>- *  If no block is given, an enumerator is returned instead.</div><div class='add'>+ *  When called from class \IO (but not subclasses of \IO),</div><div class='add'>+ *  this method has potential security vulnerabilities if called with untrusted input;</div><div class='add'>+ *  see {Command Injection}[rdoc-ref:command_injection.rdoc].</div><div class='ctx'>  *</div><div class='del'>- *     IO.foreach("testfile") {|x| print "GOT ", x }</div><div class='add'>+ *  The first argument must be a string that is one of the following:</div><div class='ctx'>  *</div><div class='del'>- *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *  - Path: if +self+ is a subclass of \IO (\File, for example),</div><div class='add'>+ *    or if the string _does_ _not_ start with the pipe character (&lt;tt&gt;'|'&lt;/tt&gt;),</div><div class='add'>+ *    the string is the path to a file.</div><div class='add'>+ *  - Command: if +self+ is the class \IO,</div><div class='add'>+ *    and if the string starts with the pipe character,</div><div class='add'>+ *    the rest of the string is a command to be executed as a subprocess.</div><div class='add'>+ *    This usage has potential security vulnerabilities if called with untrusted input;</div><div class='add'>+ *    see {Command Injection}[rdoc-ref:command_injection.rdoc].</div><div class='ctx'>  *</div><div class='del'>- *     GOT This is line one</div><div class='del'>- *     GOT This is line two</div><div class='del'>- *     GOT This is line three</div><div class='del'>- *     GOT And so on...</div><div class='add'>+ *  With only argument +path+ given, parses lines from the file at the given +path+,</div><div class='add'>+ *  as determined by the default line separator,</div><div class='add'>+ *  and calls the block with each successive line:</div><div class='ctx'>  *</div><div class='del'>- *  If the last argument is a hash, it's the keyword argument to open.</div><div class='del'>- *  See IO.readlines for details about getline_args.</div><div class='del'>- *  And see also IO.read for details about open_args.</div><div class='add'>+ *    File.foreach('t.txt') {|line| p line }</div><div class='add'>+ *</div><div class='add'>+ *  Output: the same as above.</div><div class='add'>+ *</div><div class='add'>+ *  For both forms, command and path, the remaining arguments are the same.</div><div class='add'>+ *</div><div class='add'>+ *  With argument +sep+ given, parses lines as determined by that line separator</div><div class='add'>+ *  (see {Line Separator}[rdoc-ref:IO@Line+Separator]):</div><div class='add'>+ *</div><div class='add'>+ *    File.foreach('t.txt', 'li') {|line| p line }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "First li"</div><div class='add'>+ *    "ne\nSecond li"</div><div class='add'>+ *    "ne\n\nThird li"</div><div class='add'>+ *    "ne\nFourth li"</div><div class='add'>+ *    "ne\n"</div><div class='add'>+ *</div><div class='add'>+ *  Each paragraph:</div><div class='add'>+ *</div><div class='add'>+ *    File.foreach('t.txt', '') {|paragraph| p paragraph }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *   "First line\nSecond line\n\n"</div><div class='add'>+ *   "Third line\nFourth line\n"</div><div class='add'>+ *</div><div class='add'>+ *  With argument +limit+ given, parses lines as determined by the default</div><div class='add'>+ *  line separator and the given line-length limit</div><div class='add'>+ *  (see {Line Limit}[rdoc-ref:IO@Line+Limit]):</div><div class='add'>+ *</div><div class='add'>+ *    File.foreach('t.txt', 7) {|line| p line }</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "First l"</div><div class='add'>+ *    "ine\n"</div><div class='add'>+ *    "Second "</div><div class='add'>+ *    "line\n"</div><div class='add'>+ *    "\n"</div><div class='add'>+ *    "Third l"</div><div class='add'>+ *    "ine\n"</div><div class='add'>+ *    "Fourth l"</div><div class='add'>+ *    "line\n"</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +sep+ and  +limit+ given,</div><div class='add'>+ *  parses lines as determined by the given</div><div class='add'>+ *  line separator and the given line-length limit</div><div class='add'>+ *  (see {Line Separator and Line Limit}[rdoc-ref:IO@Line+Separator+and+Line+Limit]):</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword arguments +opts+ specify:</div><div class='add'>+ *</div><div class='add'>+ *  - {Open Options}[rdoc-ref:IO@Open+Options].</div><div class='add'>+ *  - {Encoding options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='add'>+ *  - {Line Options}[rdoc-ref:IO@Line+Options].</div><div class='add'>+ *</div><div class='add'>+ *  Returns an Enumerator if no block is given.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -10372,7 +11986,7 @@ rb_io_s_foreach(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     struct foreach_arg arg;</div><div class='ctx'>     struct getline_arg garg;</div><div class='ctx'> </div><div class='del'>-    argc = rb_scan_args(argc, argv, "13:", NULL, NULL, NULL, NULL, &amp;opt);</div><div class='add'>+    argc = rb_scan_args(argc, argv, "12:", NULL, NULL, NULL, &amp;opt);</div><div class='ctx'>     RETURN_ENUMERATOR(self, orig_argc, argv);</div><div class='ctx'>     extract_getline_args(argc-1, argv+1, &amp;garg);</div><div class='ctx'>     open_key_args(self, argc, argv, opt, &amp;arg);</div><div class='hunk'>@@ -10383,39 +11997,81 @@ rb_io_s_foreach(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-io_s_readlines(struct getline_arg *arg)</div><div class='add'>+io_s_readlines(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct getline_arg *arg = (void *)v;</div><div class='ctx'>     return io_readlines(arg, arg-&gt;io);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.readlines(name, sep=$/ [, getline_args, open_args])     -&gt; array</div><div class='del'>- *     IO.readlines(name, limit [, getline_args, open_args])      -&gt; array</div><div class='del'>- *     IO.readlines(name, sep, limit [, getline_args, open_args]) -&gt; array</div><div class='add'>+ *     IO.readlines(command, sep = $/, **opts)     -&gt; array</div><div class='add'>+ *     IO.readlines(command, limit, **opts)      -&gt; array</div><div class='add'>+ *     IO.readlines(command, sep, limit, **opts) -&gt; array</div><div class='add'>+ *     IO.readlines(path, sep = $/, **opts)     -&gt; array</div><div class='add'>+ *     IO.readlines(path, limit, **opts)      -&gt; array</div><div class='add'>+ *     IO.readlines(path, sep, limit, **opts) -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array of all lines read from the stream.</div><div class='add'>+ *</div><div class='add'>+ *  When called from class \IO (but not subclasses of \IO),</div><div class='add'>+ *  this method has potential security vulnerabilities if called with untrusted input;</div><div class='add'>+ *  see {Command Injection}[rdoc-ref:command_injection.rdoc].</div><div class='add'>+ *</div><div class='add'>+ *  The first argument must be a string;</div><div class='add'>+ *  its meaning depends on whether it starts with the pipe character (&lt;tt&gt;'|'&lt;/tt&gt;):</div><div class='add'>+ *</div><div class='add'>+ *  - If so (and if +self+ is \IO),</div><div class='add'>+ *    the rest of the string is a command to be executed as a subprocess.</div><div class='add'>+ *  - Otherwise, the string is the path to a file.</div><div class='add'>+ *</div><div class='add'>+ *  With only argument +command+ given, executes the command in a shell,</div><div class='add'>+ *  parses its $stdout into lines, as determined by the default line separator,</div><div class='add'>+ *  and returns those lines in an array:</div><div class='add'>+ *</div><div class='add'>+ *    IO.readlines('| cat t.txt')</div><div class='add'>+ *    # =&gt; ["First line\n", "Second line\n", "\n", "Third line\n", "Fourth line\n"]</div><div class='add'>+ *</div><div class='add'>+ *  With only argument +path+ given, parses lines from the file at the given +path+,</div><div class='add'>+ *  as determined by the default line separator,</div><div class='add'>+ *  and returns those lines in an array:</div><div class='add'>+ *</div><div class='add'>+ *    IO.readlines('t.txt')</div><div class='add'>+ *    # =&gt; ["First line\n", "Second line\n", "\n", "Third line\n", "Fourth line\n"]</div><div class='add'>+ *</div><div class='add'>+ *  For both forms, command and path, the remaining arguments are the same.</div><div class='ctx'>  *</div><div class='del'>- *  Reads the entire file specified by &lt;i&gt;name&lt;/i&gt; as individual</div><div class='del'>- *  lines, and returns those lines in an array. Lines are separated by</div><div class='del'>- *  &lt;i&gt;sep&lt;/i&gt;.</div><div class='add'>+ *  With argument +sep+ given, parses lines as determined by that line separator</div><div class='add'>+ *  (see {Line Separator}[rdoc-ref:IO@Line+Separator]):</div><div class='ctx'>  *</div><div class='del'>- *     a = IO.readlines("testfile")</div><div class='del'>- *     a[0]   #=&gt; "This is line one\n"</div><div class='add'>+ *    # Ordinary separator.</div><div class='add'>+ *    IO.readlines('t.txt', 'li')</div><div class='add'>+ *    # =&gt;["First li", "ne\nSecond li", "ne\n\nThird li", "ne\nFourth li", "ne\n"]</div><div class='add'>+ *    # Get-paragraphs separator.</div><div class='add'>+ *    IO.readlines('t.txt', '')</div><div class='add'>+ *    # =&gt; ["First line\nSecond line\n\n", "Third line\nFourth line\n"]</div><div class='add'>+ *    # Get-all separator.</div><div class='add'>+ *    IO.readlines('t.txt', nil)</div><div class='add'>+ *    # =&gt; ["First line\nSecond line\n\nThird line\nFourth line\n"]</div><div class='ctx'>  *</div><div class='del'>- *     b = IO.readlines("testfile", chomp: true)</div><div class='del'>- *     b[0]   #=&gt; "This is line one"</div><div class='add'>+ *  With argument +limit+ given, parses lines as determined by the default</div><div class='add'>+ *  line separator and the given line-length limit</div><div class='add'>+ *  (see {Line Limit}[rdoc-ref:IO@Line+Limit]):</div><div class='ctx'>  *</div><div class='del'>- *  If the last argument is a hash, it's the keyword argument to open.</div><div class='add'>+ *    IO.readlines('t.txt', 7)</div><div class='add'>+ *    # =&gt; ["First l", "ine\n", "Second ", "line\n", "\n", "Third l", "ine\n", "Fourth ", "line\n"]</div><div class='ctx'>  *</div><div class='del'>- *  === Options for getline</div><div class='add'>+ *  With arguments +sep+ and  +limit+ given,</div><div class='add'>+ *  parses lines as determined by the given</div><div class='add'>+ *  line separator and the given line-length limit</div><div class='add'>+ *  (see {Line Separator and Line Limit}[rdoc-ref:IO@Line+Separator+and+Line+Limit]):</div><div class='ctx'>  *</div><div class='del'>- *  The options hash accepts the following keys:</div><div class='add'>+ *  Optional keyword arguments +opts+ specify:</div><div class='ctx'>  *</div><div class='del'>- *  :chomp::</div><div class='del'>- *    When the optional +chomp+ keyword argument has a true value,</div><div class='del'>- *    &lt;code&gt;\n&lt;/code&gt;, &lt;code&gt;\r&lt;/code&gt;, and &lt;code&gt;\r\n&lt;/code&gt;</div><div class='del'>- *    will be removed from the end of each line.</div><div class='add'>+ *  - {Open Options}[rdoc-ref:IO@Open+Options].</div><div class='add'>+ *  - {Encoding options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='add'>+ *  - {Line Options}[rdoc-ref:IO@Line+Options].</div><div class='ctx'>  *</div><div class='del'>- *  See also IO.read for details about open_args.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -10425,7 +12081,7 @@ rb_io_s_readlines(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     struct foreach_arg arg;</div><div class='ctx'>     struct getline_arg garg;</div><div class='ctx'> </div><div class='del'>-    argc = rb_scan_args(argc, argv, "13:", NULL, NULL, NULL, NULL, &amp;opt);</div><div class='add'>+    argc = rb_scan_args(argc, argv, "12:", NULL, NULL, NULL, &amp;opt);</div><div class='ctx'>     extract_getline_args(argc-1, argv+1, &amp;garg);</div><div class='ctx'>     open_key_args(io, argc, argv, opt, &amp;arg);</div><div class='ctx'>     if (NIL_P(arg.io)) return Qnil;</div><div class='hunk'>@@ -10435,8 +12091,9 @@ rb_io_s_readlines(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-io_s_read(struct foreach_arg *arg)</div><div class='add'>+io_s_read(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct foreach_arg *arg = (void *)v;</div><div class='ctx'>     return io_read(arg-&gt;argc, arg-&gt;argv, arg-&gt;io);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -10456,44 +12113,58 @@ seek_before_access(VALUE argp)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.read(name, [length [, offset]] [, opt] )   -&gt; string</div><div class='add'>+ *     IO.read(command, length = nil, offset = 0, **opts) -&gt; string or nil</div><div class='add'>+ *     IO.read(path, length = nil, offset = 0, **opts)    -&gt; string or nil</div><div class='ctx'>  *</div><div class='del'>- *  Opens the file, optionally seeks to the given +offset+, then returns</div><div class='del'>- *  +length+ bytes (defaulting to the rest of the file).  &lt;code&gt;read&lt;/code&gt;</div><div class='del'>- *  ensures the file is closed before returning.</div><div class='add'>+ *  Opens the stream, reads and returns some or all of its content,</div><div class='add'>+ *  and closes the stream; returns +nil+ if no bytes were read.</div><div class='ctx'>  *</div><div class='del'>- *  If +name+ starts with a pipe character (&lt;code&gt;"|"&lt;/code&gt;), a subprocess is</div><div class='del'>- *  created in the same way as Kernel#open, and its output is returned.</div><div class='add'>+ *  When called from class \IO (but not subclasses of \IO),</div><div class='add'>+ *  this method has potential security vulnerabilities if called with untrusted input;</div><div class='add'>+ *  see {Command Injection}[rdoc-ref:command_injection.rdoc].</div><div class='ctx'>  *</div><div class='del'>- *  === Options</div><div class='add'>+ *  The first argument must be a string;</div><div class='add'>+ *  its meaning depends on whether it starts with the pipe character (&lt;tt&gt;'|'&lt;/tt&gt;):</div><div class='ctx'>  *</div><div class='del'>- *  The options hash accepts the following keys:</div><div class='add'>+ *  - If so (and if +self+ is \IO),</div><div class='add'>+ *    the rest of the string is a command to be executed as a subprocess.</div><div class='add'>+ *  - Otherwise, the string is the path to a file.</div><div class='ctx'>  *</div><div class='del'>- *  :encoding::</div><div class='del'>- *    string or encoding</div><div class='add'>+ *  With only argument +command+ given, executes the command in a shell,</div><div class='add'>+ *  returns its entire $stdout:</div><div class='ctx'>  *</div><div class='del'>- *    Specifies the encoding of the read string.  +:encoding+ will be ignored</div><div class='del'>- *    if +length+ is specified.  See Encoding.aliases for possible encodings.</div><div class='add'>+ *    IO.read('| cat t.txt')</div><div class='add'>+ *    # =&gt; "First line\nSecond line\n\nThird line\nFourth line\n"</div><div class='ctx'>  *</div><div class='del'>- *  :mode::</div><div class='del'>- *    string or integer</div><div class='add'>+ *  With only argument +path+ given, reads in text mode and returns the entire content</div><div class='add'>+ *  of the file at the given path:</div><div class='ctx'>  *</div><div class='del'>- *    Specifies the &lt;i&gt;mode&lt;/i&gt; argument for open().  It must start</div><div class='del'>- *    with an "r", otherwise it will cause an error.</div><div class='del'>- *    See IO.new for the list of possible modes.</div><div class='add'>+ *    IO.read('t.txt')</div><div class='add'>+ *    # =&gt; "First line\nSecond line\n\nThird line\nFourth line\n"</div><div class='ctx'>  *</div><div class='del'>- *  :open_args::</div><div class='del'>- *    array</div><div class='add'>+ *  On Windows, text mode can terminate reading and leave bytes in the file</div><div class='add'>+ *  unread when encountering certain special bytes. Consider using</div><div class='add'>+ *  IO.binread if all bytes in the file should be read.</div><div class='ctx'>  *</div><div class='del'>- *    Specifies arguments for open() as an array.  This key can not be used</div><div class='del'>- *    in combination with either +:encoding+ or +:mode+.</div><div class='add'>+ *  For both forms, command and path, the remaining arguments are the same.</div><div class='ctx'>  *</div><div class='del'>- *  Examples:</div><div class='add'>+ *  With argument +length+, returns +length+ bytes if available:</div><div class='add'>+ *</div><div class='add'>+ *    IO.read('t.txt', 7) # =&gt; "First l"</div><div class='add'>+ *    IO.read('t.txt', 700)</div><div class='add'>+ *    # =&gt; "First line\r\nSecond line\r\n\r\nFourth line\r\nFifth line\r\n"</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +length+ and +offset+, returns +length+ bytes</div><div class='add'>+ *  if available, beginning at the given +offset+:</div><div class='add'>+ *</div><div class='add'>+ *    IO.read('t.txt', 10, 2)   # =&gt; "rst line\nS"</div><div class='add'>+ *    IO.read('t.txt', 10, 200) # =&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword arguments +opts+ specify:</div><div class='add'>+ *</div><div class='add'>+ *  - {Open Options}[rdoc-ref:IO@Open+Options].</div><div class='add'>+ *  - {Encoding options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='ctx'>  *</div><div class='del'>- *    IO.read("testfile")              #=&gt; "This is line one\nThis is line two\nThis is line three\nAnd so on...\n"</div><div class='del'>- *    IO.read("testfile", 20)          #=&gt; "This is line one\nThi"</div><div class='del'>- *    IO.read("testfile", 20, 10)      #=&gt; "ne one\nThis is line "</div><div class='del'>- *    IO.read("binfile", mode: "rb")   #=&gt; "\xF7\x00\x00\x0E\x12"</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -10506,33 +12177,33 @@ rb_io_s_read(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     open_key_args(io, argc, argv, opt, &amp;arg);</div><div class='ctx'>     if (NIL_P(arg.io)) return Qnil;</div><div class='ctx'>     if (!NIL_P(offset)) {</div><div class='del'>-	struct seek_arg sarg;</div><div class='del'>-	int state = 0;</div><div class='del'>-	sarg.io = arg.io;</div><div class='del'>-	sarg.offset = offset;</div><div class='del'>-	sarg.mode = SEEK_SET;</div><div class='del'>-	rb_protect(seek_before_access, (VALUE)&amp;sarg, &amp;state);</div><div class='del'>-	if (state) {</div><div class='del'>-	    rb_io_close(arg.io);</div><div class='del'>-	    rb_jump_tag(state);</div><div class='del'>-	}</div><div class='del'>-	if (arg.argc == 2) arg.argc = 1;</div><div class='add'>+        struct seek_arg sarg;</div><div class='add'>+        int state = 0;</div><div class='add'>+        sarg.io = arg.io;</div><div class='add'>+        sarg.offset = offset;</div><div class='add'>+        sarg.mode = SEEK_SET;</div><div class='add'>+        rb_protect(seek_before_access, (VALUE)&amp;sarg, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            rb_io_close(arg.io);</div><div class='add'>+            rb_jump_tag(state);</div><div class='add'>+        }</div><div class='add'>+        if (arg.argc == 2) arg.argc = 1;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_ensure(io_s_read, (VALUE)&amp;arg, rb_io_close, arg.io);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.binread(name, [length [, offset]] )   -&gt; string</div><div class='add'>+ *     IO.binread(command, length = nil, offset = 0) -&gt; string or nil</div><div class='add'>+ *     IO.binread(path, length = nil, offset = 0)    -&gt; string or nil</div><div class='ctx'>  *</div><div class='del'>- *  Opens the file, optionally seeks to the given &lt;i&gt;offset&lt;/i&gt;, then returns</div><div class='del'>- *  &lt;i&gt;length&lt;/i&gt; bytes (defaulting to the rest of the file).</div><div class='del'>- *  &lt;code&gt;binread&lt;/code&gt; ensures the file is closed before returning.</div><div class='del'>- *  The open mode would be "rb:ASCII-8BIT".</div><div class='add'>+ *  Behaves like IO.read, except that the stream is opened in binary mode</div><div class='add'>+ *  with ASCII-8BIT encoding.</div><div class='add'>+ *</div><div class='add'>+ *  When called from class \IO (but not subclasses of \IO),</div><div class='add'>+ *  this method has potential security vulnerabilities if called with untrusted input;</div><div class='add'>+ *  see {Command Injection}[rdoc-ref:command_injection.rdoc].</div><div class='ctx'>  *</div><div class='del'>- *     IO.binread("testfile")           #=&gt; "This is line one\nThis is line two\nThis is line three\nAnd so on...\n"</div><div class='del'>- *     IO.binread("testfile", 20)       #=&gt; "This is line one\nThi"</div><div class='del'>- *     IO.binread("testfile", 20, 10)   #=&gt; "ne one\nThis is line "</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -10541,10 +12212,10 @@ rb_io_s_binread(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     VALUE offset;</div><div class='ctx'>     struct foreach_arg arg;</div><div class='ctx'>     enum {</div><div class='del'>-	fmode = FMODE_READABLE|FMODE_BINMODE,</div><div class='del'>-	oflags = O_RDONLY</div><div class='add'>+        fmode = FMODE_READABLE|FMODE_BINMODE,</div><div class='add'>+        oflags = O_RDONLY</div><div class='ctx'> #ifdef O_BINARY</div><div class='del'>-		|O_BINARY</div><div class='add'>+                |O_BINARY</div><div class='ctx'> #endif</div><div class='ctx'>     };</div><div class='ctx'>     convconfig_t convconfig = {NULL, NULL, 0, Qnil};</div><div class='hunk'>@@ -10557,23 +12228,24 @@ rb_io_s_binread(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     arg.argv = argv+1;</div><div class='ctx'>     arg.argc = (argc &gt; 1) ? 1 : 0;</div><div class='ctx'>     if (!NIL_P(offset)) {</div><div class='del'>-	struct seek_arg sarg;</div><div class='del'>-	int state = 0;</div><div class='del'>-	sarg.io = arg.io;</div><div class='del'>-	sarg.offset = offset;</div><div class='del'>-	sarg.mode = SEEK_SET;</div><div class='del'>-	rb_protect(seek_before_access, (VALUE)&amp;sarg, &amp;state);</div><div class='del'>-	if (state) {</div><div class='del'>-	    rb_io_close(arg.io);</div><div class='del'>-	    rb_jump_tag(state);</div><div class='del'>-	}</div><div class='add'>+        struct seek_arg sarg;</div><div class='add'>+        int state = 0;</div><div class='add'>+        sarg.io = arg.io;</div><div class='add'>+        sarg.offset = offset;</div><div class='add'>+        sarg.mode = SEEK_SET;</div><div class='add'>+        rb_protect(seek_before_access, (VALUE)&amp;sarg, &amp;state);</div><div class='add'>+        if (state) {</div><div class='add'>+            rb_io_close(arg.io);</div><div class='add'>+            rb_jump_tag(state);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return rb_ensure(io_s_read, (VALUE)&amp;arg, rb_io_close, arg.io);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-io_s_write0(struct write_arg *arg)</div><div class='add'>+io_s_write0(VALUE v)</div><div class='ctx'> {</div><div class='add'>+    struct write_arg *arg = (void *)v;</div><div class='ctx'>     return io_write(arg-&gt;io,arg-&gt;str,arg-&gt;nosync);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -10627,46 +12299,63 @@ io_s_write(int argc, VALUE *argv, VALUE klass, int binary)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.write(name, string [, offset])           -&gt; integer</div><div class='del'>- *     IO.write(name, string [, offset] [, opt])   -&gt; integer</div><div class='add'>+ *    IO.write(command, data, **opts)             -&gt; integer</div><div class='add'>+ *    IO.write(path, data, offset = 0, **opts)    -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Opens the stream, writes the given +data+ to it,</div><div class='add'>+ *  and closes the stream; returns the number of bytes written.</div><div class='add'>+ *</div><div class='add'>+ *  When called from class \IO (but not subclasses of \IO),</div><div class='add'>+ *  this method has potential security vulnerabilities if called with untrusted input;</div><div class='add'>+ *  see {Command Injection}[rdoc-ref:command_injection.rdoc].</div><div class='add'>+ *</div><div class='add'>+ *  The first argument must be a string;</div><div class='add'>+ *  its meaning depends on whether it starts with the pipe character (&lt;tt&gt;'|'&lt;/tt&gt;):</div><div class='add'>+ *</div><div class='add'>+ *  - If so (and if +self+ is \IO),</div><div class='add'>+ *    the rest of the string is a command to be executed as a subprocess.</div><div class='add'>+ *  - Otherwise, the string is the path to a file.</div><div class='ctx'>  *</div><div class='del'>- *  Opens the file, optionally seeks to the given &lt;i&gt;offset&lt;/i&gt;, writes</div><div class='del'>- *  &lt;i&gt;string&lt;/i&gt;, then returns the length written.</div><div class='del'>- *  &lt;code&gt;write&lt;/code&gt; ensures the file is closed before returning.</div><div class='del'>- *  If &lt;i&gt;offset&lt;/i&gt; is not given in write mode, the file is truncated.</div><div class='del'>- *  Otherwise, it is not truncated.</div><div class='add'>+ *  With argument +command+ given, executes the command in a shell,</div><div class='add'>+ *  passes +data+ through standard input, writes its output to $stdout,</div><div class='add'>+ *  and returns the length of the given +data+:</div><div class='ctx'>  *</div><div class='del'>- *    IO.write("testfile", "0123456789", 20)  #=&gt; 10</div><div class='del'>- *    # File could contain:  "This is line one\nThi0123456789two\nThis is line three\nAnd so on...\n"</div><div class='del'>- *    IO.write("testfile", "0123456789")      #=&gt; 10</div><div class='del'>- *    # File would now read: "0123456789"</div><div class='add'>+ *    IO.write('| cat', 'Hello World!') # =&gt; 12</div><div class='ctx'>  *</div><div class='del'>- *  If the last argument is a hash, it specifies options for the internal</div><div class='del'>- *  open().  It accepts the following keys:</div><div class='add'>+ *  Output:</div><div class='ctx'>  *</div><div class='del'>- *  :encoding::</div><div class='del'>- *    string or encoding</div><div class='add'>+ *    Hello World!</div><div class='ctx'>  *</div><div class='del'>- *    Specifies the encoding of the read string.</div><div class='del'>- *    See Encoding.aliases for possible encodings.</div><div class='add'>+ *  With argument +path+ given, writes the given +data+ to the file</div><div class='add'>+ *  at that path:</div><div class='ctx'>  *</div><div class='del'>- *  :mode::</div><div class='del'>- *    string or integer</div><div class='add'>+ *    IO.write('t.tmp', 'abc')    # =&gt; 3</div><div class='add'>+ *    File.read('t.tmp')          # =&gt; "abc"</div><div class='ctx'>  *</div><div class='del'>- *    Specifies the &lt;i&gt;mode&lt;/i&gt; argument for open().  It must start</div><div class='del'>- *    with "w", "a", or "r+", otherwise it will cause an error.</div><div class='del'>- *    See IO.new for the list of possible modes.</div><div class='add'>+ *  If +offset+ is zero (the default), the file is overwritten:</div><div class='ctx'>  *</div><div class='del'>- *  :perm::</div><div class='del'>- *    integer</div><div class='add'>+ *    IO.write('t.tmp', 'A')      # =&gt; 1</div><div class='add'>+ *    File.read('t.tmp')          # =&gt; "A"</div><div class='ctx'>  *</div><div class='del'>- *    Specifies the &lt;i&gt;perm&lt;/i&gt; argument for open().</div><div class='add'>+ *  If +offset+ in within the file content, the file is partly overwritten:</div><div class='ctx'>  *</div><div class='del'>- *  :open_args::</div><div class='del'>- *    array</div><div class='add'>+ *    IO.write('t.tmp', 'abcdef') # =&gt; 3</div><div class='add'>+ *    File.read('t.tmp')          # =&gt; "abcdef"</div><div class='add'>+ *    # Offset within content.</div><div class='add'>+ *    IO.write('t.tmp', '012', 2) # =&gt; 3</div><div class='add'>+ *    File.read('t.tmp')          # =&gt; "ab012f"</div><div class='add'>+ *</div><div class='add'>+ *  If +offset+ is outside the file content,</div><div class='add'>+ *  the file is padded with null characters &lt;tt&gt;"\u0000"&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *    IO.write('t.tmp', 'xyz', 10) # =&gt; 3</div><div class='add'>+ *    File.read('t.tmp')           # =&gt; "ab012f\u0000\u0000\u0000\u0000xyz"</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword arguments +opts+ specify:</div><div class='add'>+ *</div><div class='add'>+ *  - {Open Options}[rdoc-ref:IO@Open+Options].</div><div class='add'>+ *  - {Encoding options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='ctx'>  *</div><div class='del'>- *    Specifies arguments for open() as an array.</div><div class='del'>- *    This key can not be used in combination with other keys.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -10677,11 +12366,16 @@ rb_io_s_write(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.binwrite(name, string, [offset] )             -&gt; integer</div><div class='del'>- *     IO.binwrite(name, string, [offset], open_args )  -&gt; integer</div><div class='add'>+ *    IO.binwrite(command, string, offset = 0) -&gt; integer</div><div class='add'>+ *    IO.binwrite(path, string, offset = 0)    -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Behaves like IO.write, except that the stream is opened in binary mode</div><div class='add'>+ *  with ASCII-8BIT encoding.</div><div class='add'>+ *</div><div class='add'>+ *  When called from class \IO (but not subclasses of \IO),</div><div class='add'>+ *  this method has potential security vulnerabilities if called with untrusted input;</div><div class='add'>+ *  see {Command Injection}[rdoc-ref:command_injection.rdoc].</div><div class='ctx'>  *</div><div class='del'>- *  Same as &lt;code&gt;IO.write&lt;/code&gt; except opening the file in binary mode</div><div class='del'>- *  and ASCII-8BIT encoding ("wb:ASCII-8BIT").</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -10693,18 +12387,23 @@ rb_io_s_binwrite(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> struct copy_stream_struct {</div><div class='ctx'>     VALUE src;</div><div class='ctx'>     VALUE dst;</div><div class='del'>-    off_t copy_length; /* (off_t)-1 if not specified */</div><div class='del'>-    off_t src_offset; /* (off_t)-1 if not specified */</div><div class='add'>+    rb_off_t copy_length; /* (rb_off_t)-1 if not specified */</div><div class='add'>+    rb_off_t src_offset; /* (rb_off_t)-1 if not specified */</div><div class='ctx'> </div><div class='del'>-    int src_fd;</div><div class='del'>-    int dst_fd;</div><div class='add'>+    rb_io_t *src_fptr;</div><div class='add'>+    rb_io_t *dst_fptr;</div><div class='ctx'>     unsigned close_src : 1;</div><div class='ctx'>     unsigned close_dst : 1;</div><div class='ctx'>     int error_no;</div><div class='del'>-    off_t total;</div><div class='add'>+    rb_off_t total;</div><div class='ctx'>     const char *syserr;</div><div class='ctx'>     const char *notimp;</div><div class='ctx'>     VALUE th;</div><div class='add'>+    struct stat src_stat;</div><div class='add'>+    struct stat dst_stat;</div><div class='add'>+#ifdef HAVE_FCOPYFILE</div><div class='add'>+    copyfile_state_t copyfile_state;</div><div class='add'>+#endif</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> static void *</div><div class='hunk'>@@ -10728,51 +12427,85 @@ maygvl_copy_stream_continue_p(int has_gvl, struct copy_stream_struct *stp)</div><div class='ctx'> #if defined(ERESTART)</div><div class='ctx'>       case ERESTART:</div><div class='ctx'> #endif</div><div class='del'>-	if (rb_thread_interrupted(stp-&gt;th)) {</div><div class='add'>+        if (rb_thread_interrupted(stp-&gt;th)) {</div><div class='ctx'>             if (has_gvl)</div><div class='ctx'>                 rb_thread_execute_interrupts(stp-&gt;th);</div><div class='ctx'>             else</div><div class='ctx'>                 rb_thread_call_with_gvl(exec_interrupts, (void *)stp-&gt;th);</div><div class='ctx'>         }</div><div class='del'>-	return TRUE;</div><div class='add'>+        return TRUE;</div><div class='ctx'>     }</div><div class='ctx'>     return FALSE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* non-Linux poll may not work on all FDs */</div><div class='del'>-#if defined(HAVE_POLL)</div><div class='del'>-#  if defined(__linux__)</div><div class='del'>-#    define USE_POLL 1</div><div class='del'>-#  endif</div><div class='del'>-#  if defined(__FreeBSD_version) &amp;&amp; __FreeBSD_version &gt;= 1100000</div><div class='del'>-#    define USE_POLL 1</div><div class='del'>-#  endif</div><div class='del'>-#endif</div><div class='add'>+struct fiber_scheduler_wait_for_arguments {</div><div class='add'>+    VALUE scheduler;</div><div class='ctx'> </div><div class='del'>-#ifndef USE_POLL</div><div class='del'>-#  define USE_POLL 0</div><div class='del'>-#endif</div><div class='add'>+    rb_io_t *fptr;</div><div class='add'>+    short events;</div><div class='add'>+</div><div class='add'>+    VALUE result;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void *</div><div class='add'>+fiber_scheduler_wait_for(void * _arguments)</div><div class='add'>+{</div><div class='add'>+    struct fiber_scheduler_wait_for_arguments *arguments = (struct fiber_scheduler_wait_for_arguments *)_arguments;</div><div class='add'>+</div><div class='add'>+    arguments-&gt;result = rb_fiber_scheduler_io_wait(arguments-&gt;scheduler, arguments-&gt;fptr-&gt;self, INT2NUM(arguments-&gt;events), RUBY_IO_TIMEOUT_DEFAULT);</div><div class='add'>+</div><div class='add'>+    return NULL;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> #if USE_POLL</div><div class='ctx'> #  define IOWAIT_SYSCALL "poll"</div><div class='ctx'> STATIC_ASSERT(pollin_expected, POLLIN == RB_WAITFD_IN);</div><div class='ctx'> STATIC_ASSERT(pollout_expected, POLLOUT == RB_WAITFD_OUT);</div><div class='ctx'> static int</div><div class='del'>-nogvl_wait_for_single_fd(int fd, short events)</div><div class='add'>+nogvl_wait_for(VALUE th, rb_io_t *fptr, short events, struct timeval *timeout)</div><div class='ctx'> {</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current_for_thread(th);</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        struct fiber_scheduler_wait_for_arguments args = {.scheduler = scheduler, .fptr = fptr, .events = events};</div><div class='add'>+        rb_thread_call_with_gvl(fiber_scheduler_wait_for, &amp;args);</div><div class='add'>+        return RTEST(args.result);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    int fd = fptr-&gt;fd;</div><div class='add'>+    if (fd == -1) return 0;</div><div class='add'>+</div><div class='ctx'>     struct pollfd fds;</div><div class='ctx'> </div><div class='ctx'>     fds.fd = fd;</div><div class='ctx'>     fds.events = events;</div><div class='ctx'> </div><div class='del'>-    return poll(&amp;fds, 1, -1);</div><div class='add'>+    int timeout_milliseconds = -1;</div><div class='add'>+</div><div class='add'>+    if (timeout) {</div><div class='add'>+        timeout_milliseconds = (int)(timeout-&gt;tv_sec * 1000) + (int)(timeout-&gt;tv_usec / 1000);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return poll(&amp;fds, 1, timeout_milliseconds);</div><div class='ctx'> }</div><div class='ctx'> #else /* !USE_POLL */</div><div class='del'>-#  include "vm_core.h"</div><div class='ctx'> #  define IOWAIT_SYSCALL "select"</div><div class='ctx'> static int</div><div class='del'>-nogvl_wait_for_single_fd(int fd, short events)</div><div class='add'>+nogvl_wait_for(VALUE th, rb_io_t *fptr, short events, struct timeval *timeout)</div><div class='ctx'> {</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current_for_thread(th);</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        struct fiber_scheduler_wait_for_arguments args = {.scheduler = scheduler, .fptr = fptr, .events = events};</div><div class='add'>+        rb_thread_call_with_gvl(fiber_scheduler_wait_for, &amp;args);</div><div class='add'>+        return RTEST(args.result);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    int fd = fptr-&gt;fd;</div><div class='add'>+</div><div class='add'>+    if (fd == -1) {</div><div class='add'>+        errno = EBADF;</div><div class='add'>+        return -1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     rb_fdset_t fds;</div><div class='ctx'>     int ret;</div><div class='ctx'> </div><div class='hunk'>@@ -10781,16 +12514,18 @@ nogvl_wait_for_single_fd(int fd, short events)</div><div class='ctx'> </div><div class='ctx'>     switch (events) {</div><div class='ctx'>       case RB_WAITFD_IN:</div><div class='del'>-        ret = rb_fd_select(fd + 1, &amp;fds, 0, 0, 0);</div><div class='add'>+        ret = rb_fd_select(fd + 1, &amp;fds, 0, 0, timeout);</div><div class='ctx'>         break;</div><div class='ctx'>       case RB_WAITFD_OUT:</div><div class='del'>-        ret = rb_fd_select(fd + 1, 0, &amp;fds, 0, 0);</div><div class='add'>+        ret = rb_fd_select(fd + 1, 0, &amp;fds, 0, timeout);</div><div class='ctx'>         break;</div><div class='ctx'>       default:</div><div class='del'>-        VM_UNREACHABLE(nogvl_wait_for_single_fd);</div><div class='add'>+        VM_UNREACHABLE(nogvl_wait_for);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     rb_fd_term(&amp;fds);</div><div class='add'>+</div><div class='add'>+    // On timeout, this returns 0.</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> #endif /* !USE_POLL */</div><div class='hunk'>@@ -10801,12 +12536,12 @@ maygvl_copy_stream_wait_read(int has_gvl, struct copy_stream_struct *stp)</div><div class='ctx'>     int ret;</div><div class='ctx'> </div><div class='ctx'>     do {</div><div class='del'>-	if (has_gvl) {</div><div class='del'>-	    ret = rb_wait_for_single_fd(stp-&gt;src_fd, RB_WAITFD_IN, NULL);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ret = nogvl_wait_for_single_fd(stp-&gt;src_fd, RB_WAITFD_IN);</div><div class='del'>-	}</div><div class='add'>+        if (has_gvl) {</div><div class='add'>+            ret = RB_NUM2INT(rb_io_wait(stp-&gt;src, RB_INT2NUM(RUBY_IO_READABLE), Qnil));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ret = nogvl_wait_for(stp-&gt;th, stp-&gt;src_fptr, RB_WAITFD_IN, NULL);</div><div class='add'>+        }</div><div class='ctx'>     } while (ret &lt; 0 &amp;&amp; maygvl_copy_stream_continue_p(has_gvl, stp));</div><div class='ctx'> </div><div class='ctx'>     if (ret &lt; 0) {</div><div class='hunk'>@@ -10823,7 +12558,7 @@ nogvl_copy_stream_wait_write(struct copy_stream_struct *stp)</div><div class='ctx'>     int ret;</div><div class='ctx'> </div><div class='ctx'>     do {</div><div class='del'>-	ret = nogvl_wait_for_single_fd(stp-&gt;dst_fd, RB_WAITFD_OUT);</div><div class='add'>+        ret = nogvl_wait_for(stp-&gt;th, stp-&gt;dst_fptr, RB_WAITFD_OUT, NULL);</div><div class='ctx'>     } while (ret &lt; 0 &amp;&amp; maygvl_copy_stream_continue_p(0, stp));</div><div class='ctx'> </div><div class='ctx'>     if (ret &lt; 0) {</div><div class='hunk'>@@ -10834,78 +12569,63 @@ nogvl_copy_stream_wait_write(struct copy_stream_struct *stp)</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if defined __linux__ &amp;&amp; defined __NR_copy_file_range</div><div class='del'>-#  define USE_COPY_FILE_RANGE</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #ifdef USE_COPY_FILE_RANGE</div><div class='ctx'> </div><div class='ctx'> static ssize_t</div><div class='del'>-simple_copy_file_range(int in_fd, off_t *in_offset, int out_fd, off_t *out_offset, size_t count, unsigned int flags)</div><div class='add'>+simple_copy_file_range(int in_fd, rb_off_t *in_offset, int out_fd, rb_off_t *out_offset, size_t count, unsigned int flags)</div><div class='ctx'> {</div><div class='add'>+#ifdef HAVE_COPY_FILE_RANGE</div><div class='add'>+    return copy_file_range(in_fd, in_offset, out_fd, out_offset, count, flags);</div><div class='add'>+#else</div><div class='ctx'>     return syscall(__NR_copy_file_range, in_fd, in_offset, out_fd, out_offset, count, flags);</div><div class='add'>+#endif</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='ctx'> nogvl_copy_file_range(struct copy_stream_struct *stp)</div><div class='ctx'> {</div><div class='del'>-    struct stat sb;</div><div class='ctx'>     ssize_t ss;</div><div class='del'>-    off_t src_size;</div><div class='del'>-    int ret;</div><div class='del'>-    off_t copy_length, src_offset, *src_offset_ptr;</div><div class='add'>+    rb_off_t src_size;</div><div class='add'>+    rb_off_t copy_length, src_offset, *src_offset_ptr;</div><div class='ctx'> </div><div class='del'>-    ret = fstat(stp-&gt;src_fd, &amp;sb);</div><div class='del'>-    if (ret &lt; 0) {</div><div class='del'>-        stp-&gt;syserr = "fstat";</div><div class='del'>-        stp-&gt;error_no = errno;</div><div class='del'>-        return ret;</div><div class='del'>-    }</div><div class='del'>-    if (!S_ISREG(sb.st_mode))</div><div class='add'>+    if (!S_ISREG(stp-&gt;src_stat.st_mode))</div><div class='ctx'>         return 0;</div><div class='ctx'> </div><div class='del'>-    src_size = sb.st_size;</div><div class='del'>-    ret = fstat(stp-&gt;dst_fd, &amp;sb);</div><div class='del'>-    if (ret &lt; 0) {</div><div class='del'>-        stp-&gt;syserr = "fstat";</div><div class='del'>-        stp-&gt;error_no = errno;</div><div class='del'>-        return ret;</div><div class='del'>-    }</div><div class='del'>-</div><div class='add'>+    src_size = stp-&gt;src_stat.st_size;</div><div class='ctx'>     src_offset = stp-&gt;src_offset;</div><div class='del'>-    if (src_offset &gt;= (off_t)0) {</div><div class='del'>-	src_offset_ptr = &amp;src_offset;</div><div class='add'>+    if (src_offset &gt;= (rb_off_t)0) {</div><div class='add'>+        src_offset_ptr = &amp;src_offset;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	src_offset_ptr = NULL; /* if src_offset_ptr is NULL, then bytes are read from in_fd starting from the file offset */</div><div class='add'>+        src_offset_ptr = NULL; /* if src_offset_ptr is NULL, then bytes are read from in_fd starting from the file offset */</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     copy_length = stp-&gt;copy_length;</div><div class='del'>-    if (copy_length &lt; (off_t)0) {</div><div class='del'>-        if (src_offset &lt; (off_t)0) {</div><div class='del'>-	    off_t current_offset;</div><div class='add'>+    if (copy_length &lt; (rb_off_t)0) {</div><div class='add'>+        if (src_offset &lt; (rb_off_t)0) {</div><div class='add'>+            rb_off_t current_offset;</div><div class='ctx'>             errno = 0;</div><div class='del'>-            current_offset = lseek(stp-&gt;src_fd, 0, SEEK_CUR);</div><div class='del'>-            if (current_offset &lt; (off_t)0 &amp;&amp; errno) {</div><div class='add'>+            current_offset = lseek(stp-&gt;src_fptr-&gt;fd, 0, SEEK_CUR);</div><div class='add'>+            if (current_offset &lt; (rb_off_t)0 &amp;&amp; errno) {</div><div class='ctx'>                 stp-&gt;syserr = "lseek";</div><div class='ctx'>                 stp-&gt;error_no = errno;</div><div class='ctx'>                 return (int)current_offset;</div><div class='ctx'>             }</div><div class='ctx'>             copy_length = src_size - current_offset;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='ctx'>             copy_length = src_size - src_offset;</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>   retry_copy_file_range:</div><div class='ctx'> # if SIZEOF_OFF_T &gt; SIZEOF_SIZE_T</div><div class='ctx'>     /* we are limited by the 32-bit ssize_t return value on 32-bit */</div><div class='del'>-    ss = (copy_length &gt; (off_t)SSIZE_MAX) ? SSIZE_MAX : (ssize_t)copy_length;</div><div class='add'>+    ss = (copy_length &gt; (rb_off_t)SSIZE_MAX) ? SSIZE_MAX : (ssize_t)copy_length;</div><div class='ctx'> # else</div><div class='ctx'>     ss = (ssize_t)copy_length;</div><div class='ctx'> # endif</div><div class='del'>-    ss = simple_copy_file_range(stp-&gt;src_fd, src_offset_ptr, stp-&gt;dst_fd, NULL, ss, 0);</div><div class='add'>+    ss = simple_copy_file_range(stp-&gt;src_fptr-&gt;fd, src_offset_ptr, stp-&gt;dst_fptr-&gt;fd, NULL, ss, 0);</div><div class='ctx'>     if (0 &lt; ss) {</div><div class='ctx'>         stp-&gt;total += ss;</div><div class='ctx'>         copy_length -= ss;</div><div class='hunk'>@@ -10914,39 +12634,39 @@ nogvl_copy_file_range(struct copy_stream_struct *stp)</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     if (ss &lt; 0) {</div><div class='del'>-	if (maygvl_copy_stream_continue_p(0, stp)) {</div><div class='add'>+        if (maygvl_copy_stream_continue_p(0, stp)) {</div><div class='ctx'>             goto retry_copy_file_range;</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>         switch (errno) {</div><div class='del'>-	  case EINVAL:</div><div class='del'>-	  case EPERM: /* copy_file_range(2) doesn't exist (may happen in</div><div class='del'>-			 docker container) */</div><div class='add'>+          case EINVAL:</div><div class='add'>+          case EPERM: /* copy_file_range(2) doesn't exist (may happen in</div><div class='add'>+                         docker container) */</div><div class='ctx'> #ifdef ENOSYS</div><div class='del'>-	  case ENOSYS:</div><div class='add'>+          case ENOSYS:</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef EXDEV</div><div class='del'>-	  case EXDEV: /* in_fd and out_fd are not on the same filesystem */</div><div class='add'>+          case EXDEV: /* in_fd and out_fd are not on the same filesystem */</div><div class='ctx'> #endif</div><div class='ctx'>             return 0;</div><div class='del'>-	  case EAGAIN:</div><div class='del'>-#if defined(EWOULDBLOCK) &amp;&amp; EWOULDBLOCK != EAGAIN</div><div class='del'>-	  case EWOULDBLOCK:</div><div class='add'>+          case EAGAIN:</div><div class='add'>+#if EWOULDBLOCK != EAGAIN</div><div class='add'>+          case EWOULDBLOCK:</div><div class='ctx'> #endif</div><div class='ctx'>             {</div><div class='ctx'>                 int ret = nogvl_copy_stream_wait_write(stp);</div><div class='ctx'>                 if (ret &lt; 0) return ret;</div><div class='ctx'>             }</div><div class='ctx'>             goto retry_copy_file_range;</div><div class='del'>-	  case EBADF:</div><div class='del'>-	    {</div><div class='del'>-		int e = errno;</div><div class='del'>-		int flags = fcntl(stp-&gt;dst_fd, F_GETFL);</div><div class='add'>+          case EBADF:</div><div class='add'>+            {</div><div class='add'>+                int e = errno;</div><div class='add'>+                int flags = fcntl(stp-&gt;dst_fptr-&gt;fd, F_GETFL);</div><div class='ctx'> </div><div class='del'>-		if (flags != -1 &amp;&amp; flags &amp; O_APPEND) {</div><div class='del'>-		    return 0;</div><div class='del'>-		}</div><div class='del'>-		errno = e;</div><div class='del'>-	    }</div><div class='add'>+                if (flags != -1 &amp;&amp; flags &amp; O_APPEND) {</div><div class='add'>+                    return 0;</div><div class='add'>+                }</div><div class='add'>+                errno = e;</div><div class='add'>+            }</div><div class='ctx'>         }</div><div class='ctx'>         stp-&gt;syserr = "copy_file_range";</div><div class='ctx'>         stp-&gt;error_no = errno;</div><div class='hunk'>@@ -10956,6 +12676,85 @@ nogvl_copy_file_range(struct copy_stream_struct *stp)</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifdef HAVE_FCOPYFILE</div><div class='add'>+static int</div><div class='add'>+nogvl_fcopyfile(struct copy_stream_struct *stp)</div><div class='add'>+{</div><div class='add'>+    rb_off_t cur, ss = 0;</div><div class='add'>+    const rb_off_t src_offset = stp-&gt;src_offset;</div><div class='add'>+    int ret;</div><div class='add'>+</div><div class='add'>+    if (stp-&gt;copy_length &gt;= (rb_off_t)0) {</div><div class='add'>+        /* copy_length can't be specified in fcopyfile(3) */</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!S_ISREG(stp-&gt;src_stat.st_mode))</div><div class='add'>+        return 0;</div><div class='add'>+</div><div class='add'>+    if (!S_ISREG(stp-&gt;dst_stat.st_mode))</div><div class='add'>+        return 0;</div><div class='add'>+    if (lseek(stp-&gt;dst_fptr-&gt;fd, 0, SEEK_CUR) &gt; (rb_off_t)0) /* if dst IO was already written */</div><div class='add'>+        return 0;</div><div class='add'>+    if (fcntl(stp-&gt;dst_fptr-&gt;fd, F_GETFL) &amp; O_APPEND) {</div><div class='add'>+        /* fcopyfile(3) appends src IO to dst IO and then truncates</div><div class='add'>+         * dst IO to src IO's original size. */</div><div class='add'>+        rb_off_t end = lseek(stp-&gt;dst_fptr-&gt;fd, 0, SEEK_END);</div><div class='add'>+        lseek(stp-&gt;dst_fptr-&gt;fd, 0, SEEK_SET);</div><div class='add'>+        if (end &gt; (rb_off_t)0) return 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (src_offset &gt; (rb_off_t)0) {</div><div class='add'>+        rb_off_t r;</div><div class='add'>+</div><div class='add'>+        /* get current offset */</div><div class='add'>+        errno = 0;</div><div class='add'>+        cur = lseek(stp-&gt;src_fptr-&gt;fd, 0, SEEK_CUR);</div><div class='add'>+        if (cur &lt; (rb_off_t)0 &amp;&amp; errno) {</div><div class='add'>+            stp-&gt;error_no = errno;</div><div class='add'>+            return 1;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        errno = 0;</div><div class='add'>+        r = lseek(stp-&gt;src_fptr-&gt;fd, src_offset, SEEK_SET);</div><div class='add'>+        if (r &lt; (rb_off_t)0 &amp;&amp; errno) {</div><div class='add'>+            stp-&gt;error_no = errno;</div><div class='add'>+            return 1;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    stp-&gt;copyfile_state = copyfile_state_alloc(); /* this will be freed by copy_stream_finalize() */</div><div class='add'>+    ret = fcopyfile(stp-&gt;src_fptr-&gt;fd, stp-&gt;dst_fptr-&gt;fd, stp-&gt;copyfile_state, COPYFILE_DATA);</div><div class='add'>+    copyfile_state_get(stp-&gt;copyfile_state, COPYFILE_STATE_COPIED, &amp;ss); /* get copied bytes */</div><div class='add'>+</div><div class='add'>+    if (ret == 0) { /* success */</div><div class='add'>+        stp-&gt;total = ss;</div><div class='add'>+        if (src_offset &gt; (rb_off_t)0) {</div><div class='add'>+            rb_off_t r;</div><div class='add'>+            errno = 0;</div><div class='add'>+            /* reset offset */</div><div class='add'>+            r = lseek(stp-&gt;src_fptr-&gt;fd, cur, SEEK_SET);</div><div class='add'>+            if (r &lt; (rb_off_t)0 &amp;&amp; errno) {</div><div class='add'>+                stp-&gt;error_no = errno;</div><div class='add'>+                return 1;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        switch (errno) {</div><div class='add'>+          case ENOTSUP:</div><div class='add'>+          case EPERM:</div><div class='add'>+          case EINVAL:</div><div class='add'>+            return 0;</div><div class='add'>+        }</div><div class='add'>+        stp-&gt;syserr = "fcopyfile";</div><div class='add'>+        stp-&gt;error_no = errno;</div><div class='add'>+        return (int)ret;</div><div class='add'>+    }</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #ifdef HAVE_SENDFILE</div><div class='ctx'> </div><div class='ctx'> # ifdef __linux__</div><div class='hunk'>@@ -10966,7 +12765,7 @@ nogvl_copy_file_range(struct copy_stream_struct *stp)</div><div class='ctx'> #  endif</div><div class='ctx'> </div><div class='ctx'> static ssize_t</div><div class='del'>-simple_sendfile(int out_fd, int in_fd, off_t *offset, off_t count)</div><div class='add'>+simple_sendfile(int out_fd, int in_fd, rb_off_t *offset, rb_off_t count)</div><div class='ctx'> {</div><div class='ctx'>     return sendfile(out_fd, in_fd, offset, (size_t)count);</div><div class='ctx'> }</div><div class='hunk'>@@ -10978,11 +12777,11 @@ simple_sendfile(int out_fd, int in_fd, off_t *offset, off_t count)</div><div class='ctx'> #  define USE_SENDFILE</div><div class='ctx'> </div><div class='ctx'> static ssize_t</div><div class='del'>-simple_sendfile(int out_fd, int in_fd, off_t *offset, off_t count)</div><div class='add'>+simple_sendfile(int out_fd, int in_fd, rb_off_t *offset, rb_off_t count)</div><div class='ctx'> {</div><div class='ctx'>     int r;</div><div class='del'>-    off_t pos = offset ? *offset : lseek(in_fd, 0, SEEK_CUR);</div><div class='del'>-    off_t sbytes;</div><div class='add'>+    rb_off_t pos = offset ? *offset : lseek(in_fd, 0, SEEK_CUR);</div><div class='add'>+    rb_off_t sbytes;</div><div class='ctx'> #  ifdef __APPLE__</div><div class='ctx'>     r = sendfile(in_fd, out_fd, pos, &amp;count, NULL, 0);</div><div class='ctx'>     sbytes = count;</div><div class='hunk'>@@ -10991,10 +12790,10 @@ simple_sendfile(int out_fd, int in_fd, off_t *offset, off_t count)</div><div class='ctx'> #  endif</div><div class='ctx'>     if (r != 0 &amp;&amp; sbytes == 0) return r;</div><div class='ctx'>     if (offset) {</div><div class='del'>-	*offset += sbytes;</div><div class='add'>+        *offset += sbytes;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	lseek(in_fd, sbytes, SEEK_CUR);</div><div class='add'>+        lseek(in_fd, sbytes, SEEK_CUR);</div><div class='ctx'>     }</div><div class='ctx'>     return (ssize_t)sbytes;</div><div class='ctx'> }</div><div class='hunk'>@@ -11007,47 +12806,33 @@ simple_sendfile(int out_fd, int in_fd, off_t *offset, off_t count)</div><div class='ctx'> static int</div><div class='ctx'> nogvl_copy_stream_sendfile(struct copy_stream_struct *stp)</div><div class='ctx'> {</div><div class='del'>-    struct stat sb;</div><div class='ctx'>     ssize_t ss;</div><div class='del'>-    int ret;</div><div class='del'>-    off_t src_size;</div><div class='del'>-    off_t copy_length;</div><div class='del'>-    off_t src_offset;</div><div class='add'>+    rb_off_t src_size;</div><div class='add'>+    rb_off_t copy_length;</div><div class='add'>+    rb_off_t src_offset;</div><div class='ctx'>     int use_pread;</div><div class='ctx'> </div><div class='del'>-    ret = fstat(stp-&gt;src_fd, &amp;sb);</div><div class='del'>-    if (ret &lt; 0) {</div><div class='del'>-        stp-&gt;syserr = "fstat";</div><div class='del'>-        stp-&gt;error_no = errno;</div><div class='del'>-        return ret;</div><div class='del'>-    }</div><div class='del'>-    if (!S_ISREG(sb.st_mode))</div><div class='add'>+    if (!S_ISREG(stp-&gt;src_stat.st_mode))</div><div class='ctx'>         return 0;</div><div class='ctx'> </div><div class='del'>-    src_size = sb.st_size;</div><div class='del'>-    ret = fstat(stp-&gt;dst_fd, &amp;sb);</div><div class='del'>-    if (ret &lt; 0) {</div><div class='del'>-        stp-&gt;syserr = "fstat";</div><div class='del'>-        stp-&gt;error_no = errno;</div><div class='del'>-        return ret;</div><div class='del'>-    }</div><div class='add'>+    src_size = stp-&gt;src_stat.st_size;</div><div class='ctx'> #ifndef __linux__</div><div class='del'>-    if ((sb.st_mode &amp; S_IFMT) != S_IFSOCK)</div><div class='del'>-	return 0;</div><div class='add'>+    if ((stp-&gt;dst_stat.st_mode &amp; S_IFMT) != S_IFSOCK)</div><div class='add'>+        return 0;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     src_offset = stp-&gt;src_offset;</div><div class='del'>-    use_pread = src_offset &gt;= (off_t)0;</div><div class='add'>+    use_pread = src_offset &gt;= (rb_off_t)0;</div><div class='ctx'> </div><div class='ctx'>     copy_length = stp-&gt;copy_length;</div><div class='del'>-    if (copy_length &lt; (off_t)0) {</div><div class='add'>+    if (copy_length &lt; (rb_off_t)0) {</div><div class='ctx'>         if (use_pread)</div><div class='ctx'>             copy_length = src_size - src_offset;</div><div class='ctx'>         else {</div><div class='del'>-            off_t cur;</div><div class='add'>+            rb_off_t cur;</div><div class='ctx'>             errno = 0;</div><div class='del'>-            cur = lseek(stp-&gt;src_fd, 0, SEEK_CUR);</div><div class='del'>-            if (cur &lt; (off_t)0 &amp;&amp; errno) {</div><div class='add'>+            cur = lseek(stp-&gt;src_fptr-&gt;fd, 0, SEEK_CUR);</div><div class='add'>+            if (cur &lt; (rb_off_t)0 &amp;&amp; errno) {</div><div class='ctx'>                 stp-&gt;syserr = "lseek";</div><div class='ctx'>                 stp-&gt;error_no = errno;</div><div class='ctx'>                 return (int)cur;</div><div class='hunk'>@@ -11059,15 +12844,15 @@ nogvl_copy_stream_sendfile(struct copy_stream_struct *stp)</div><div class='ctx'>   retry_sendfile:</div><div class='ctx'> # if SIZEOF_OFF_T &gt; SIZEOF_SIZE_T</div><div class='ctx'>     /* we are limited by the 32-bit ssize_t return value on 32-bit */</div><div class='del'>-    ss = (copy_length &gt; (off_t)SSIZE_MAX) ? SSIZE_MAX : (ssize_t)copy_length;</div><div class='add'>+    ss = (copy_length &gt; (rb_off_t)SSIZE_MAX) ? SSIZE_MAX : (ssize_t)copy_length;</div><div class='ctx'> # else</div><div class='ctx'>     ss = (ssize_t)copy_length;</div><div class='ctx'> # endif</div><div class='ctx'>     if (use_pread) {</div><div class='del'>-        ss = simple_sendfile(stp-&gt;dst_fd, stp-&gt;src_fd, &amp;src_offset, ss);</div><div class='add'>+        ss = simple_sendfile(stp-&gt;dst_fptr-&gt;fd, stp-&gt;src_fptr-&gt;fd, &amp;src_offset, ss);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        ss = simple_sendfile(stp-&gt;dst_fd, stp-&gt;src_fd, NULL, ss);</div><div class='add'>+        ss = simple_sendfile(stp-&gt;dst_fptr-&gt;fd, stp-&gt;src_fptr-&gt;fd, NULL, ss);</div><div class='ctx'>     }</div><div class='ctx'>     if (0 &lt; ss) {</div><div class='ctx'>         stp-&gt;total += ss;</div><div class='hunk'>@@ -11077,23 +12862,28 @@ nogvl_copy_stream_sendfile(struct copy_stream_struct *stp)</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     if (ss &lt; 0) {</div><div class='del'>-	if (maygvl_copy_stream_continue_p(0, stp))</div><div class='del'>-	    goto retry_sendfile;</div><div class='add'>+        if (maygvl_copy_stream_continue_p(0, stp))</div><div class='add'>+            goto retry_sendfile;</div><div class='ctx'>         switch (errno) {</div><div class='del'>-	  case EINVAL:</div><div class='add'>+          case EINVAL:</div><div class='ctx'> #ifdef ENOSYS</div><div class='del'>-	  case ENOSYS:</div><div class='add'>+          case ENOSYS:</div><div class='add'>+#endif</div><div class='add'>+#ifdef EOPNOTSUP</div><div class='add'>+          /* some RedHat kernels may return EOPNOTSUP on an NFS mount.</div><div class='add'>+             see also: [Feature #16965] */</div><div class='add'>+          case EOPNOTSUP:</div><div class='ctx'> #endif</div><div class='ctx'>             return 0;</div><div class='del'>-	  case EAGAIN:</div><div class='del'>-#if defined(EWOULDBLOCK) &amp;&amp; EWOULDBLOCK != EAGAIN</div><div class='del'>-	  case EWOULDBLOCK:</div><div class='add'>+          case EAGAIN:</div><div class='add'>+#if EWOULDBLOCK != EAGAIN</div><div class='add'>+          case EWOULDBLOCK:</div><div class='ctx'> #endif</div><div class='ctx'>             {</div><div class='ctx'>                 int ret;</div><div class='ctx'> #ifndef __linux__</div><div class='ctx'>                /*</div><div class='del'>-                * Linux requires stp-&gt;src_fd to be a mmap-able (regular) file,</div><div class='add'>+                * Linux requires stp-&gt;src_fptr-&gt;fd to be a mmap-able (regular) file,</div><div class='ctx'>                 * select() reports regular files to always be "ready", so</div><div class='ctx'>                 * there is no need to select() on it.</div><div class='ctx'>                 * Other OSes may have the same limitation for sendfile() which</div><div class='hunk'>@@ -11116,25 +12906,25 @@ nogvl_copy_stream_sendfile(struct copy_stream_struct *stp)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> static ssize_t</div><div class='del'>-maygvl_read(int has_gvl, int fd, void *buf, size_t count)</div><div class='add'>+maygvl_read(int has_gvl, rb_io_t *fptr, void *buf, size_t count)</div><div class='ctx'> {</div><div class='ctx'>     if (has_gvl)</div><div class='del'>-        return rb_read_internal(fd, buf, count);</div><div class='add'>+        return rb_io_read_memory(fptr, buf, count);</div><div class='ctx'>     else</div><div class='del'>-        return read(fd, buf, count);</div><div class='add'>+        return read(fptr-&gt;fd, buf, count);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static ssize_t</div><div class='del'>-maygvl_copy_stream_read(int has_gvl, struct copy_stream_struct *stp, char *buf, size_t len, off_t offset)</div><div class='add'>+maygvl_copy_stream_read(int has_gvl, struct copy_stream_struct *stp, char *buf, size_t len, rb_off_t offset)</div><div class='ctx'> {</div><div class='ctx'>     ssize_t ss;</div><div class='ctx'>   retry_read:</div><div class='del'>-    if (offset &lt; (off_t)0) {</div><div class='del'>-        ss = maygvl_read(has_gvl, stp-&gt;src_fd, buf, len);</div><div class='add'>+    if (offset &lt; (rb_off_t)0) {</div><div class='add'>+        ss = maygvl_read(has_gvl, stp-&gt;src_fptr, buf, len);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> #ifdef HAVE_PREAD</div><div class='del'>-        ss = pread(stp-&gt;src_fd, buf, len, offset);</div><div class='add'>+        ss = pread(stp-&gt;src_fptr-&gt;fd, buf, len, offset);</div><div class='ctx'> #else</div><div class='ctx'>         stp-&gt;notimp = "pread";</div><div class='ctx'>         return -1;</div><div class='hunk'>@@ -11144,12 +12934,12 @@ maygvl_copy_stream_read(int has_gvl, struct copy_stream_struct *stp, char *buf,</div><div class='ctx'>         return 0;</div><div class='ctx'>     }</div><div class='ctx'>     if (ss &lt; 0) {</div><div class='del'>-	if (maygvl_copy_stream_continue_p(has_gvl, stp))</div><div class='del'>-	    goto retry_read;</div><div class='add'>+        if (maygvl_copy_stream_continue_p(has_gvl, stp))</div><div class='add'>+            goto retry_read;</div><div class='ctx'>         switch (errno) {</div><div class='del'>-	  case EAGAIN:</div><div class='del'>-#if defined(EWOULDBLOCK) &amp;&amp; EWOULDBLOCK != EAGAIN</div><div class='del'>-	  case EWOULDBLOCK:</div><div class='add'>+          case EAGAIN:</div><div class='add'>+#if EWOULDBLOCK != EAGAIN</div><div class='add'>+          case EWOULDBLOCK:</div><div class='ctx'> #endif</div><div class='ctx'>             {</div><div class='ctx'>                 int ret = maygvl_copy_stream_wait_read(has_gvl, stp);</div><div class='hunk'>@@ -11157,12 +12947,12 @@ maygvl_copy_stream_read(int has_gvl, struct copy_stream_struct *stp, char *buf,</div><div class='ctx'>             }</div><div class='ctx'>             goto retry_read;</div><div class='ctx'> #ifdef ENOSYS</div><div class='del'>-	  case ENOSYS:</div><div class='add'>+          case ENOSYS:</div><div class='ctx'>             stp-&gt;notimp = "pread";</div><div class='ctx'>             return ss;</div><div class='ctx'> #endif</div><div class='ctx'>         }</div><div class='del'>-        stp-&gt;syserr = offset &lt; (off_t)0 ?  "read" : "pread";</div><div class='add'>+        stp-&gt;syserr = offset &lt; (rb_off_t)0 ?  "read" : "pread";</div><div class='ctx'>         stp-&gt;error_no = errno;</div><div class='ctx'>     }</div><div class='ctx'>     return ss;</div><div class='hunk'>@@ -11174,11 +12964,11 @@ nogvl_copy_stream_write(struct copy_stream_struct *stp, char *buf, size_t len)</div><div class='ctx'>     ssize_t ss;</div><div class='ctx'>     int off = 0;</div><div class='ctx'>     while (len) {</div><div class='del'>-        ss = write(stp-&gt;dst_fd, buf+off, len);</div><div class='add'>+        ss = write(stp-&gt;dst_fptr-&gt;fd, buf+off, len);</div><div class='ctx'>         if (ss &lt; 0) {</div><div class='ctx'>             if (maygvl_copy_stream_continue_p(0, stp))</div><div class='ctx'>                 continue;</div><div class='del'>-            if (errno == EAGAIN || errno == EWOULDBLOCK) {</div><div class='add'>+            if (io_again_p(errno)) {</div><div class='ctx'>                 int ret = nogvl_copy_stream_wait_write(stp);</div><div class='ctx'>                 if (ret &lt; 0) return ret;</div><div class='ctx'>                 continue;</div><div class='hunk'>@@ -11201,31 +12991,31 @@ nogvl_copy_stream_read_write(struct copy_stream_struct *stp)</div><div class='ctx'>     size_t len;</div><div class='ctx'>     ssize_t ss;</div><div class='ctx'>     int ret;</div><div class='del'>-    off_t copy_length;</div><div class='add'>+    rb_off_t copy_length;</div><div class='add'>+    rb_off_t src_offset;</div><div class='ctx'>     int use_eof;</div><div class='del'>-    off_t src_offset;</div><div class='ctx'>     int use_pread;</div><div class='ctx'> </div><div class='ctx'>     copy_length = stp-&gt;copy_length;</div><div class='del'>-    use_eof = copy_length &lt; (off_t)0;</div><div class='add'>+    use_eof = copy_length &lt; (rb_off_t)0;</div><div class='ctx'>     src_offset = stp-&gt;src_offset;</div><div class='del'>-    use_pread = src_offset &gt;= (off_t)0;</div><div class='add'>+    use_pread = src_offset &gt;= (rb_off_t)0;</div><div class='ctx'> </div><div class='ctx'>     if (use_pread &amp;&amp; stp-&gt;close_src) {</div><div class='del'>-        off_t r;</div><div class='del'>-	errno = 0;</div><div class='del'>-        r = lseek(stp-&gt;src_fd, src_offset, SEEK_SET);</div><div class='del'>-        if (r &lt; (off_t)0 &amp;&amp; errno) {</div><div class='add'>+        rb_off_t r;</div><div class='add'>+        errno = 0;</div><div class='add'>+        r = lseek(stp-&gt;src_fptr-&gt;fd, src_offset, SEEK_SET);</div><div class='add'>+        if (r &lt; (rb_off_t)0 &amp;&amp; errno) {</div><div class='ctx'>             stp-&gt;syserr = "lseek";</div><div class='ctx'>             stp-&gt;error_no = errno;</div><div class='ctx'>             return;</div><div class='ctx'>         }</div><div class='del'>-        src_offset = (off_t)-1;</div><div class='add'>+        src_offset = (rb_off_t)-1;</div><div class='ctx'>         use_pread = 0;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (use_eof || 0 &lt; copy_length) {</div><div class='del'>-        if (!use_eof &amp;&amp; copy_length &lt; (off_t)sizeof(buf)) {</div><div class='add'>+        if (!use_eof &amp;&amp; copy_length &lt; (rb_off_t)sizeof(buf)) {</div><div class='ctx'>             len = (size_t)copy_length;</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='hunk'>@@ -11237,7 +13027,7 @@ nogvl_copy_stream_read_write(struct copy_stream_struct *stp)</div><div class='ctx'>                 src_offset += ss;</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-            ss = maygvl_copy_stream_read(0, stp, buf, len, (off_t)-1);</div><div class='add'>+            ss = maygvl_copy_stream_read(0, stp, buf, len, (rb_off_t)-1);</div><div class='ctx'>         }</div><div class='ctx'>         if (ss &lt;= 0) /* EOF or error */</div><div class='ctx'>             return;</div><div class='hunk'>@@ -11255,14 +13045,20 @@ static void *</div><div class='ctx'> nogvl_copy_stream_func(void *arg)</div><div class='ctx'> {</div><div class='ctx'>     struct copy_stream_struct *stp = (struct copy_stream_struct *)arg;</div><div class='del'>-#if defined(USE_SENDFILE) || defined(USE_COPY_FILE_RANGE)</div><div class='add'>+#if defined(USE_SENDFILE) || defined(USE_COPY_FILE_RANGE) || defined(HAVE_FCOPYFILE)</div><div class='ctx'>     int ret;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef USE_COPY_FILE_RANGE</div><div class='ctx'>     ret = nogvl_copy_file_range(stp);</div><div class='ctx'>     if (ret != 0)</div><div class='del'>-	goto finish; /* error or success */</div><div class='add'>+        goto finish; /* error or success */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_FCOPYFILE</div><div class='add'>+    ret = nogvl_fcopyfile(stp);</div><div class='add'>+    if (ret != 0)</div><div class='add'>+        goto finish; /* error or success */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #ifdef USE_SENDFILE</div><div class='hunk'>@@ -11273,7 +13069,7 @@ nogvl_copy_stream_func(void *arg)</div><div class='ctx'> </div><div class='ctx'>     nogvl_copy_stream_read_write(stp);</div><div class='ctx'> </div><div class='del'>-#if defined(USE_SENDFILE) || defined(USE_COPY_FILE_RANGE)</div><div class='add'>+#if defined(USE_SENDFILE) || defined(USE_COPY_FILE_RANGE) || defined(HAVE_FCOPYFILE)</div><div class='ctx'>   finish:</div><div class='ctx'> #endif</div><div class='ctx'>     return 0;</div><div class='hunk'>@@ -11286,30 +13082,31 @@ copy_stream_fallback_body(VALUE arg)</div><div class='ctx'>     const int buflen = 16*1024;</div><div class='ctx'>     VALUE n;</div><div class='ctx'>     VALUE buf = rb_str_buf_new(buflen);</div><div class='del'>-    off_t rest = stp-&gt;copy_length;</div><div class='del'>-    off_t off = stp-&gt;src_offset;</div><div class='add'>+    rb_off_t rest = stp-&gt;copy_length;</div><div class='add'>+    rb_off_t off = stp-&gt;src_offset;</div><div class='ctx'>     ID read_method = id_readpartial;</div><div class='ctx'> </div><div class='del'>-    if (stp-&gt;src_fd &lt; 0) {</div><div class='del'>-	if (!rb_respond_to(stp-&gt;src, read_method)) {</div><div class='del'>-	    read_method = id_read;</div><div class='del'>-	}</div><div class='add'>+    if (!stp-&gt;src_fptr) {</div><div class='add'>+        if (!rb_respond_to(stp-&gt;src, read_method)) {</div><div class='add'>+            read_method = id_read;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     while (1) {</div><div class='ctx'>         long numwrote;</div><div class='ctx'>         long l;</div><div class='del'>-        if (stp-&gt;copy_length &lt; (off_t)0) {</div><div class='add'>+        rb_str_make_independent(buf);</div><div class='add'>+        if (stp-&gt;copy_length &lt; (rb_off_t)0) {</div><div class='ctx'>             l = buflen;</div><div class='ctx'>         }</div><div class='ctx'>         else {</div><div class='del'>-	    if (rest == 0) {</div><div class='del'>-		rb_str_resize(buf, 0);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='add'>+            if (rest == 0) {</div><div class='add'>+                rb_str_resize(buf, 0);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='ctx'>             l = buflen &lt; rest ? buflen : (long)rest;</div><div class='ctx'>         }</div><div class='del'>-        if (stp-&gt;src_fd &lt; 0) {</div><div class='add'>+        if (!stp-&gt;src_fptr) {</div><div class='ctx'>             VALUE rc = rb_funcall(stp-&gt;src, read_method, 2, INT2FIX(l), buf);</div><div class='ctx'> </div><div class='ctx'>             if (read_method == id_read &amp;&amp; NIL_P(rc))</div><div class='hunk'>@@ -11324,16 +13121,16 @@ copy_stream_fallback_body(VALUE arg)</div><div class='ctx'>                 return Qnil;</div><div class='ctx'>             if (ss == 0)</div><div class='ctx'>                 rb_eof_error();</div><div class='del'>-            if (off &gt;= (off_t)0)</div><div class='add'>+            if (off &gt;= (rb_off_t)0)</div><div class='ctx'>                 off += ss;</div><div class='ctx'>         }</div><div class='ctx'>         n = rb_io_write(stp-&gt;dst, buf);</div><div class='ctx'>         numwrote = NUM2LONG(n);</div><div class='ctx'>         stp-&gt;total += numwrote;</div><div class='ctx'>         rest -= numwrote;</div><div class='del'>-	if (read_method == id_read &amp;&amp; RSTRING_LEN(buf) == 0) {</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='add'>+        if (read_method == id_read &amp;&amp; RSTRING_LEN(buf) == 0) {</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return Qnil;</div><div class='hunk'>@@ -11342,11 +13139,11 @@ copy_stream_fallback_body(VALUE arg)</div><div class='ctx'> static VALUE</div><div class='ctx'> copy_stream_fallback(struct copy_stream_struct *stp)</div><div class='ctx'> {</div><div class='del'>-    if (stp-&gt;src_fd &lt; 0 &amp;&amp; stp-&gt;src_offset &gt;= (off_t)0) {</div><div class='del'>-	rb_raise(rb_eArgError, "cannot specify src_offset for non-IO");</div><div class='add'>+    if (!stp-&gt;src_fptr &amp;&amp; stp-&gt;src_offset &gt;= (rb_off_t)0) {</div><div class='add'>+        rb_raise(rb_eArgError, "cannot specify src_offset for non-IO");</div><div class='ctx'>     }</div><div class='ctx'>     rb_rescue2(copy_stream_fallback_body, (VALUE)stp,</div><div class='del'>-               (VALUE (*) (ANYARGS))0, (VALUE)0,</div><div class='add'>+               (VALUE (*) (VALUE, VALUE))0, (VALUE)0,</div><div class='ctx'>                rb_eEOFError, (VALUE)0);</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='hunk'>@@ -11356,111 +13153,121 @@ copy_stream_body(VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     struct copy_stream_struct *stp = (struct copy_stream_struct *)arg;</div><div class='ctx'>     VALUE src_io = stp-&gt;src, dst_io = stp-&gt;dst;</div><div class='del'>-    rb_io_t *src_fptr = 0, *dst_fptr = 0;</div><div class='del'>-    int src_fd, dst_fd;</div><div class='ctx'>     const int common_oflags = 0</div><div class='ctx'> #ifdef O_NOCTTY</div><div class='del'>-	| O_NOCTTY</div><div class='add'>+        | O_NOCTTY</div><div class='ctx'> #endif</div><div class='del'>-	;</div><div class='add'>+        ;</div><div class='ctx'> </div><div class='ctx'>     stp-&gt;th = rb_thread_current();</div><div class='ctx'> </div><div class='ctx'>     stp-&gt;total = 0;</div><div class='ctx'> </div><div class='ctx'>     if (src_io == argf ||</div><div class='del'>-	!(RB_TYPE_P(src_io, T_FILE) ||</div><div class='del'>-	  RB_TYPE_P(src_io, T_STRING) ||</div><div class='del'>-	  rb_respond_to(src_io, rb_intern("to_path")))) {</div><div class='del'>-	src_fd = -1;</div><div class='add'>+        !(RB_TYPE_P(src_io, T_FILE) ||</div><div class='add'>+          RB_TYPE_P(src_io, T_STRING) ||</div><div class='add'>+          rb_respond_to(src_io, rb_intern("to_path")))) {</div><div class='add'>+        stp-&gt;src_fptr = NULL;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE tmp_io = rb_io_check_io(src_io);</div><div class='del'>-	if (!NIL_P(tmp_io)) {</div><div class='del'>-	    src_io = tmp_io;</div><div class='del'>-	}</div><div class='del'>-	else if (!RB_TYPE_P(src_io, T_FILE)) {</div><div class='del'>-	    VALUE args[2];</div><div class='del'>-	    FilePathValue(src_io);</div><div class='del'>-	    args[0] = src_io;</div><div class='del'>-	    args[1] = INT2NUM(O_RDONLY|common_oflags);</div><div class='del'>-	    src_io = rb_class_new_instance(2, args, rb_cFile);</div><div class='del'>-	    stp-&gt;src = src_io;</div><div class='del'>-	    stp-&gt;close_src = 1;</div><div class='del'>-	}</div><div class='del'>-	GetOpenFile(src_io, src_fptr);</div><div class='del'>-	rb_io_check_byte_readable(src_fptr);</div><div class='del'>-	src_fd = src_fptr-&gt;fd;</div><div class='del'>-    }</div><div class='del'>-    stp-&gt;src_fd = src_fd;</div><div class='add'>+        int stat_ret;</div><div class='add'>+        VALUE tmp_io = rb_io_check_io(src_io);</div><div class='add'>+        if (!NIL_P(tmp_io)) {</div><div class='add'>+            src_io = tmp_io;</div><div class='add'>+        }</div><div class='add'>+        else if (!RB_TYPE_P(src_io, T_FILE)) {</div><div class='add'>+            VALUE args[2];</div><div class='add'>+            FilePathValue(src_io);</div><div class='add'>+            args[0] = src_io;</div><div class='add'>+            args[1] = INT2NUM(O_RDONLY|common_oflags);</div><div class='add'>+            src_io = rb_class_new_instance(2, args, rb_cFile);</div><div class='add'>+            stp-&gt;src = src_io;</div><div class='add'>+            stp-&gt;close_src = 1;</div><div class='add'>+        }</div><div class='add'>+        RB_IO_POINTER(src_io, stp-&gt;src_fptr);</div><div class='add'>+        rb_io_check_byte_readable(stp-&gt;src_fptr);</div><div class='add'>+</div><div class='add'>+        stat_ret = fstat(stp-&gt;src_fptr-&gt;fd, &amp;stp-&gt;src_stat);</div><div class='add'>+        if (stat_ret &lt; 0) {</div><div class='add'>+            stp-&gt;syserr = "fstat";</div><div class='add'>+            stp-&gt;error_no = errno;</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     if (dst_io == argf ||</div><div class='del'>-	!(RB_TYPE_P(dst_io, T_FILE) ||</div><div class='del'>-	  RB_TYPE_P(dst_io, T_STRING) ||</div><div class='del'>-	  rb_respond_to(dst_io, rb_intern("to_path")))) {</div><div class='del'>-	dst_fd = -1;</div><div class='add'>+        !(RB_TYPE_P(dst_io, T_FILE) ||</div><div class='add'>+          RB_TYPE_P(dst_io, T_STRING) ||</div><div class='add'>+          rb_respond_to(dst_io, rb_intern("to_path")))) {</div><div class='add'>+        stp-&gt;dst_fptr = NULL;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	VALUE tmp_io = rb_io_check_io(dst_io);</div><div class='del'>-	if (!NIL_P(tmp_io)) {</div><div class='del'>-	    dst_io = GetWriteIO(tmp_io);</div><div class='del'>-	}</div><div class='del'>-	else if (!RB_TYPE_P(dst_io, T_FILE)) {</div><div class='del'>-	    VALUE args[3];</div><div class='del'>-	    FilePathValue(dst_io);</div><div class='del'>-	    args[0] = dst_io;</div><div class='del'>-	    args[1] = INT2NUM(O_WRONLY|O_CREAT|O_TRUNC|common_oflags);</div><div class='del'>-	    args[2] = INT2FIX(0666);</div><div class='del'>-	    dst_io = rb_class_new_instance(3, args, rb_cFile);</div><div class='del'>-	    stp-&gt;dst = dst_io;</div><div class='del'>-	    stp-&gt;close_dst = 1;</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    dst_io = GetWriteIO(dst_io);</div><div class='del'>-	    stp-&gt;dst = dst_io;</div><div class='del'>-	}</div><div class='del'>-	GetOpenFile(dst_io, dst_fptr);</div><div class='del'>-	rb_io_check_writable(dst_fptr);</div><div class='del'>-	dst_fd = dst_fptr-&gt;fd;</div><div class='del'>-    }</div><div class='del'>-    stp-&gt;dst_fd = dst_fd;</div><div class='add'>+        int stat_ret;</div><div class='add'>+        VALUE tmp_io = rb_io_check_io(dst_io);</div><div class='add'>+        if (!NIL_P(tmp_io)) {</div><div class='add'>+            dst_io = GetWriteIO(tmp_io);</div><div class='add'>+        }</div><div class='add'>+        else if (!RB_TYPE_P(dst_io, T_FILE)) {</div><div class='add'>+            VALUE args[3];</div><div class='add'>+            FilePathValue(dst_io);</div><div class='add'>+            args[0] = dst_io;</div><div class='add'>+            args[1] = INT2NUM(O_WRONLY|O_CREAT|O_TRUNC|common_oflags);</div><div class='add'>+            args[2] = INT2FIX(0666);</div><div class='add'>+            dst_io = rb_class_new_instance(3, args, rb_cFile);</div><div class='add'>+            stp-&gt;dst = dst_io;</div><div class='add'>+            stp-&gt;close_dst = 1;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            dst_io = GetWriteIO(dst_io);</div><div class='add'>+            stp-&gt;dst = dst_io;</div><div class='add'>+        }</div><div class='add'>+        RB_IO_POINTER(dst_io, stp-&gt;dst_fptr);</div><div class='add'>+        rb_io_check_writable(stp-&gt;dst_fptr);</div><div class='add'>+</div><div class='add'>+        stat_ret = fstat(stp-&gt;dst_fptr-&gt;fd, &amp;stp-&gt;dst_stat);</div><div class='add'>+        if (stat_ret &lt; 0) {</div><div class='add'>+            stp-&gt;syserr = "fstat";</div><div class='add'>+            stp-&gt;error_no = errno;</div><div class='add'>+            return Qnil;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'> #ifdef O_BINARY</div><div class='del'>-    if (src_fptr)</div><div class='del'>-	SET_BINARY_MODE_WITH_SEEK_CUR(src_fptr);</div><div class='add'>+    if (stp-&gt;src_fptr)</div><div class='add'>+        SET_BINARY_MODE_WITH_SEEK_CUR(stp-&gt;src_fptr);</div><div class='ctx'> #endif</div><div class='del'>-    if (dst_fptr)</div><div class='del'>-	io_ascii8bit_binmode(dst_fptr);</div><div class='add'>+    if (stp-&gt;dst_fptr)</div><div class='add'>+        io_ascii8bit_binmode(stp-&gt;dst_fptr);</div><div class='ctx'> </div><div class='del'>-    if (stp-&gt;src_offset &lt; (off_t)0 &amp;&amp; src_fptr &amp;&amp; src_fptr-&gt;rbuf.len) {</div><div class='del'>-        size_t len = src_fptr-&gt;rbuf.len;</div><div class='add'>+    if (stp-&gt;src_offset &lt; (rb_off_t)0 &amp;&amp; stp-&gt;src_fptr &amp;&amp; stp-&gt;src_fptr-&gt;rbuf.len) {</div><div class='add'>+        size_t len = stp-&gt;src_fptr-&gt;rbuf.len;</div><div class='ctx'>         VALUE str;</div><div class='del'>-        if (stp-&gt;copy_length &gt;= (off_t)0 &amp;&amp; stp-&gt;copy_length &lt; (off_t)len) {</div><div class='add'>+        if (stp-&gt;copy_length &gt;= (rb_off_t)0 &amp;&amp; stp-&gt;copy_length &lt; (rb_off_t)len) {</div><div class='ctx'>             len = (size_t)stp-&gt;copy_length;</div><div class='ctx'>         }</div><div class='ctx'>         str = rb_str_buf_new(len);</div><div class='ctx'>         rb_str_resize(str,len);</div><div class='del'>-        read_buffered_data(RSTRING_PTR(str), len, src_fptr);</div><div class='del'>-        if (dst_fptr) { /* IO or filename */</div><div class='del'>-            if (io_binwrite(str, RSTRING_PTR(str), RSTRING_LEN(str), dst_fptr, 0) &lt; 0)</div><div class='del'>-                rb_sys_fail(0);</div><div class='add'>+        read_buffered_data(RSTRING_PTR(str), len, stp-&gt;src_fptr);</div><div class='add'>+        if (stp-&gt;dst_fptr) { /* IO or filename */</div><div class='add'>+            if (io_binwrite(str, RSTRING_PTR(str), RSTRING_LEN(str), stp-&gt;dst_fptr, 0) &lt; 0)</div><div class='add'>+                rb_sys_fail_on_write(stp-&gt;dst_fptr);</div><div class='ctx'>         }</div><div class='ctx'>         else /* others such as StringIO */</div><div class='del'>-	    rb_io_write(dst_io, str);</div><div class='add'>+            rb_io_write(dst_io, str);</div><div class='ctx'>         rb_str_resize(str, 0);</div><div class='ctx'>         stp-&gt;total += len;</div><div class='del'>-        if (stp-&gt;copy_length &gt;= (off_t)0)</div><div class='add'>+        if (stp-&gt;copy_length &gt;= (rb_off_t)0)</div><div class='ctx'>             stp-&gt;copy_length -= len;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (dst_fptr &amp;&amp; io_fflush(dst_fptr) &lt; 0) {</div><div class='del'>-	rb_raise(rb_eIOError, "flush failed");</div><div class='add'>+    if (stp-&gt;dst_fptr &amp;&amp; io_fflush(stp-&gt;dst_fptr) &lt; 0) {</div><div class='add'>+        rb_raise(rb_eIOError, "flush failed");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (stp-&gt;copy_length == 0)</div><div class='ctx'>         return Qnil;</div><div class='ctx'> </div><div class='del'>-    if (src_fd &lt; 0 || dst_fd &lt; 0) {</div><div class='add'>+    if (stp-&gt;src_fptr == NULL || stp-&gt;dst_fptr == NULL) {</div><div class='ctx'>         return copy_stream_fallback(stp);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -11472,6 +13279,13 @@ static VALUE</div><div class='ctx'> copy_stream_finalize(VALUE arg)</div><div class='ctx'> {</div><div class='ctx'>     struct copy_stream_struct *stp = (struct copy_stream_struct *)arg;</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_FCOPYFILE</div><div class='add'>+    if (stp-&gt;copyfile_state) {</div><div class='add'>+        copyfile_state_free(stp-&gt;copyfile_state);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'>     if (stp-&gt;close_src) {</div><div class='ctx'>         rb_io_close_m(stp-&gt;src);</div><div class='ctx'>     }</div><div class='hunk'>@@ -11482,42 +13296,60 @@ copy_stream_finalize(VALUE arg)</div><div class='ctx'>         rb_syserr_fail(stp-&gt;error_no, stp-&gt;syserr);</div><div class='ctx'>     }</div><div class='ctx'>     if (stp-&gt;notimp) {</div><div class='del'>-	rb_raise(rb_eNotImpError, "%s() not implemented", stp-&gt;notimp);</div><div class='add'>+        rb_raise(rb_eNotImpError, "%s() not implemented", stp-&gt;notimp);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     IO.copy_stream(src, dst)</div><div class='del'>- *     IO.copy_stream(src, dst, copy_length)</div><div class='del'>- *     IO.copy_stream(src, dst, copy_length, src_offset)</div><div class='add'>+ *    IO.copy_stream(src, dst, src_length = nil, src_offset = 0) -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Copies from the given +src+ to the given +dst+,</div><div class='add'>+ *  returning the number of bytes copied.</div><div class='add'>+ *</div><div class='add'>+ *  - The given +src+ must be one of the following:</div><div class='add'>+ *</div><div class='add'>+ *    - The path to a readable file, from which source data is to be read.</div><div class='add'>+ *    - An \IO-like object, opened for reading and capable of responding</div><div class='add'>+ *      to method +:readpartial+ or method +:read+.</div><div class='add'>+ *</div><div class='add'>+ *  - The given +dst+ must be one of the following:</div><div class='add'>+ *</div><div class='add'>+ *    - The path to a writable file, to which data is to be written.</div><div class='add'>+ *    - An \IO-like object, opened for writing and capable of responding</div><div class='add'>+ *      to method +:write+.</div><div class='add'>+ *</div><div class='add'>+ *  The examples here use file &lt;tt&gt;t.txt&lt;/tt&gt; as source:</div><div class='add'>+ *</div><div class='add'>+ *    File.read('t.txt')</div><div class='add'>+ *    # =&gt; "First line\nSecond line\n\nThird line\nFourth line\n"</div><div class='add'>+ *    File.read('t.txt').size # =&gt; 47</div><div class='ctx'>  *</div><div class='del'>- *  IO.copy_stream copies &lt;i&gt;src&lt;/i&gt; to &lt;i&gt;dst&lt;/i&gt;.</div><div class='del'>- *  &lt;i&gt;src&lt;/i&gt; and &lt;i&gt;dst&lt;/i&gt; is either a filename or an IO-like object.</div><div class='del'>- *  IO-like object for &lt;i&gt;src&lt;/i&gt; should have &lt;code&gt;readpartial&lt;/code&gt; or</div><div class='del'>- *  &lt;code&gt;read&lt;/code&gt; method.</div><div class='del'>- *  IO-like object for &lt;i&gt;dst&lt;/i&gt; should have &lt;code&gt;write&lt;/code&gt; method.</div><div class='del'>- *  (Specialized mechanisms, such as sendfile system call, may be used</div><div class='del'>- *  on appropriate situation.)</div><div class='add'>+ *  If only arguments +src+ and +dst+ are given,</div><div class='add'>+ *  the entire source stream is copied:</div><div class='ctx'>  *</div><div class='del'>- *  This method returns the number of bytes copied.</div><div class='add'>+ *    # Paths.</div><div class='add'>+ *    IO.copy_stream('t.txt', 't.tmp')  # =&gt; 47</div><div class='ctx'>  *</div><div class='del'>- *  If optional arguments are not given,</div><div class='del'>- *  the start position of the copy is</div><div class='del'>- *  the beginning of the filename or</div><div class='del'>- *  the current file offset of the IO.</div><div class='del'>- *  The end position of the copy is the end of file.</div><div class='add'>+ *    # IOs (recall that a File is also an IO).</div><div class='add'>+ *    src_io = File.open('t.txt', 'r') # =&gt; #&lt;File:t.txt&gt;</div><div class='add'>+ *    dst_io = File.open('t.tmp', 'w') # =&gt; #&lt;File:t.tmp&gt;</div><div class='add'>+ *    IO.copy_stream(src_io, dst_io)   # =&gt; 47</div><div class='add'>+ *    src_io.close</div><div class='add'>+ *    dst_io.close</div><div class='ctx'>  *</div><div class='del'>- *  If &lt;i&gt;copy_length&lt;/i&gt; is given,</div><div class='del'>- *  No more than &lt;i&gt;copy_length&lt;/i&gt; bytes are copied.</div><div class='add'>+ *  With argument +src_length+ a non-negative integer,</div><div class='add'>+ *  no more than that many bytes are copied:</div><div class='ctx'>  *</div><div class='del'>- *  If &lt;i&gt;src_offset&lt;/i&gt; is given,</div><div class='del'>- *  it specifies the start position of the copy.</div><div class='add'>+ *    IO.copy_stream('t.txt', 't.tmp', 10) # =&gt; 10</div><div class='add'>+ *    File.read('t.tmp')                   # =&gt; "First line"</div><div class='ctx'>  *</div><div class='del'>- *  When &lt;i&gt;src_offset&lt;/i&gt; is specified and</div><div class='del'>- *  &lt;i&gt;src&lt;/i&gt; is an IO,</div><div class='del'>- *  IO.copy_stream doesn't move the current file offset.</div><div class='add'>+ *  With argument +src_offset+ also given,</div><div class='add'>+ *  the source stream is read beginning at that offset:</div><div class='add'>+ *</div><div class='add'>+ *    IO.copy_stream('t.txt', 't.tmp', 11, 11) # =&gt; 11</div><div class='add'>+ *    IO.read('t.tmp')                         # =&gt; "Second line"</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -11533,13 +13365,16 @@ rb_io_s_copy_stream(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     st.src = src;</div><div class='ctx'>     st.dst = dst;</div><div class='ctx'> </div><div class='add'>+    st.src_fptr = NULL;</div><div class='add'>+    st.dst_fptr = NULL;</div><div class='add'>+</div><div class='ctx'>     if (NIL_P(length))</div><div class='del'>-        st.copy_length = (off_t)-1;</div><div class='add'>+        st.copy_length = (rb_off_t)-1;</div><div class='ctx'>     else</div><div class='ctx'>         st.copy_length = NUM2OFFT(length);</div><div class='ctx'> </div><div class='ctx'>     if (NIL_P(src_offset))</div><div class='del'>-        st.src_offset = (off_t)-1;</div><div class='add'>+        st.src_offset = (rb_off_t)-1;</div><div class='ctx'>     else</div><div class='ctx'>         st.src_offset = NUM2OFFT(src_offset);</div><div class='ctx'> </div><div class='hunk'>@@ -11550,64 +13385,74 @@ rb_io_s_copy_stream(int argc, VALUE *argv, VALUE io)</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     io.external_encoding   -&gt; encoding</div><div class='add'>+ *    external_encoding -&gt; encoding or nil</div><div class='add'>+ *</div><div class='add'>+ *  Returns the Encoding object that represents the encoding of the stream,</div><div class='add'>+ *  or +nil+ if the stream is in write mode and no encoding is specified.</div><div class='add'>+ *</div><div class='add'>+ *  See {Encodings}[rdoc-ref:File@Encodings].</div><div class='ctx'>  *</div><div class='del'>- *  Returns the Encoding object that represents the encoding of the file.</div><div class='del'>- *  If _io_ is in write mode and no encoding is specified, returns +nil+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_external_encoding(VALUE io)</div><div class='ctx'> {</div><div class='del'>-    rb_io_t *fptr;</div><div class='add'>+    rb_io_t *fptr = RFILE(rb_io_taint_check(io))-&gt;fptr;</div><div class='ctx'> </div><div class='del'>-    GetOpenFile(io, fptr);</div><div class='ctx'>     if (fptr-&gt;encs.enc2) {</div><div class='del'>-	return rb_enc_from_encoding(fptr-&gt;encs.enc2);</div><div class='add'>+        return rb_enc_from_encoding(fptr-&gt;encs.enc2);</div><div class='ctx'>     }</div><div class='ctx'>     if (fptr-&gt;mode &amp; FMODE_WRITABLE) {</div><div class='del'>-	if (fptr-&gt;encs.enc)</div><div class='del'>-	    return rb_enc_from_encoding(fptr-&gt;encs.enc);</div><div class='del'>-	return Qnil;</div><div class='add'>+        if (fptr-&gt;encs.enc)</div><div class='add'>+            return rb_enc_from_encoding(fptr-&gt;encs.enc);</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     return rb_enc_from_encoding(io_read_encoding(fptr));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     io.internal_encoding   -&gt; encoding</div><div class='add'>+ *    internal_encoding -&gt; encoding or nil</div><div class='add'>+ *</div><div class='add'>+ *  Returns the Encoding object that represents the encoding of the internal string,</div><div class='add'>+ *  if conversion is specified,</div><div class='add'>+ *  or +nil+ otherwise.</div><div class='add'>+ *</div><div class='add'>+ *  See {Encodings}[rdoc-ref:File@Encodings].</div><div class='ctx'>  *</div><div class='del'>- *  Returns the Encoding of the internal string if conversion is</div><div class='del'>- *  specified.  Otherwise returns +nil+.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> rb_io_internal_encoding(VALUE io)</div><div class='ctx'> {</div><div class='del'>-    rb_io_t *fptr;</div><div class='add'>+    rb_io_t *fptr = RFILE(rb_io_taint_check(io))-&gt;fptr;</div><div class='ctx'> </div><div class='del'>-    GetOpenFile(io, fptr);</div><div class='ctx'>     if (!fptr-&gt;encs.enc2) return Qnil;</div><div class='ctx'>     return rb_enc_from_encoding(io_read_encoding(fptr));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     io.set_encoding(ext_enc)                -&gt; io</div><div class='del'>- *     io.set_encoding("ext_enc:int_enc")      -&gt; io</div><div class='del'>- *     io.set_encoding(ext_enc, int_enc)       -&gt; io</div><div class='del'>- *     io.set_encoding("ext_enc:int_enc", opt) -&gt; io</div><div class='del'>- *     io.set_encoding(ext_enc, int_enc, opt)  -&gt; io</div><div class='add'>+ *    set_encoding(ext_enc)                   -&gt; self</div><div class='add'>+ *    set_encoding(ext_enc, int_enc, **enc_opts)  -&gt; self</div><div class='add'>+ *    set_encoding('ext_enc:int_enc', **enc_opts) -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  See {Encodings}[rdoc-ref:File@Encodings].</div><div class='add'>+ *</div><div class='add'>+ *  Argument +ext_enc+, if given, must be an Encoding object;</div><div class='add'>+ *  it is assigned as the encoding for the stream.</div><div class='add'>+ *</div><div class='add'>+ *  Argument +int_enc+, if given, must be an Encoding object;</div><div class='add'>+ *  it is assigned as the encoding for the internal string.</div><div class='add'>+ *</div><div class='add'>+ *  Argument &lt;tt&gt;'ext_enc:int_enc'&lt;/tt&gt;, if given, is a string</div><div class='add'>+ *  containing two colon-separated encoding names;</div><div class='add'>+ *  corresponding Encoding objects are assigned as the external</div><div class='add'>+ *  and internal encodings for the stream.</div><div class='add'>+ *</div><div class='add'>+ *  Optional keyword arguments +enc_opts+ specify</div><div class='add'>+ *  {Encoding options}[rdoc-ref:encodings.rdoc@Encoding+Options].</div><div class='ctx'>  *</div><div class='del'>- *  If single argument is specified, read string from io is tagged</div><div class='del'>- *  with the encoding specified.  If encoding is a colon separated two</div><div class='del'>- *  encoding names "A:B", the read string is converted from encoding A</div><div class='del'>- *  (external encoding) to encoding B (internal encoding), then tagged</div><div class='del'>- *  with B.  If two arguments are specified, those must be encoding</div><div class='del'>- *  objects or encoding names, and the first one is the external encoding, and the</div><div class='del'>- *  second one is the internal encoding.</div><div class='del'>- *  If the external encoding and the internal encoding is specified,</div><div class='del'>- *  optional hash argument specify the conversion option.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -11617,7 +13462,7 @@ rb_io_set_encoding(int argc, VALUE *argv, VALUE io)</div><div class='ctx'>     VALUE v1, v2, opt;</div><div class='ctx'> </div><div class='ctx'>     if (!RB_TYPE_P(io, T_FILE)) {</div><div class='del'>-        return rb_funcallv(io, id_set_encoding, argc, argv);</div><div class='add'>+        return forward(io, id_set_encoding, argc, argv);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     argc = rb_scan_args(argc, argv, "11:", &amp;v1, &amp;v2, &amp;opt);</div><div class='hunk'>@@ -11631,6 +13476,18 @@ rb_stdio_set_default_encoding(void)</div><div class='ctx'> {</div><div class='ctx'>     VALUE val = Qnil;</div><div class='ctx'> </div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    if (isatty(fileno(stdin))) {</div><div class='add'>+        rb_encoding *external = rb_locale_encoding();</div><div class='add'>+        rb_encoding *internal = rb_default_internal_encoding();</div><div class='add'>+        if (!internal) internal = rb_default_external_encoding();</div><div class='add'>+        io_encoding_set(RFILE(rb_stdin)-&gt;fptr,</div><div class='add'>+                        rb_enc_from_encoding(external),</div><div class='add'>+                        rb_enc_from_encoding(internal),</div><div class='add'>+                        Qnil);</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+#endif</div><div class='ctx'>     rb_io_set_encoding(1, &amp;val, rb_stdin);</div><div class='ctx'>     rb_io_set_encoding(1, &amp;val, rb_stdout);</div><div class='ctx'>     rb_io_set_encoding(1, &amp;val, rb_stderr);</div><div class='hunk'>@@ -11642,16 +13499,27 @@ global_argf_p(VALUE arg)</div><div class='ctx'>     return arg == argf;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+typedef VALUE (*argf_encoding_func)(VALUE io);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+argf_encoding(VALUE argf, argf_encoding_func func)</div><div class='add'>+{</div><div class='add'>+    if (!RTEST(ARGF.current_file)) {</div><div class='add'>+        return rb_enc_default_external();</div><div class='add'>+    }</div><div class='add'>+    return func(rb_io_check_io(ARGF.current_file));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.external_encoding   -&gt; encoding</div><div class='ctx'>  *</div><div class='del'>- *  Returns the external encoding for files read from +ARGF+ as an +Encoding+</div><div class='add'>+ *  Returns the external encoding for files read from ARGF as an Encoding</div><div class='ctx'>  *  object. The external encoding is the encoding of the text as stored in a</div><div class='del'>- *  file. Contrast with +ARGF.internal_encoding+, which is the encoding used</div><div class='del'>- *  to represent this text within Ruby.</div><div class='add'>+ *  file. Contrast with ARGF.internal_encoding, which is the encoding used to</div><div class='add'>+ *  represent this text within Ruby.</div><div class='ctx'>  *</div><div class='del'>- *  To set the external encoding use +ARGF.set_encoding+.</div><div class='add'>+ *  To set the external encoding use ARGF.set_encoding.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -11661,20 +13529,17 @@ global_argf_p(VALUE arg)</div><div class='ctx'> static VALUE</div><div class='ctx'> argf_external_encoding(VALUE argf)</div><div class='ctx'> {</div><div class='del'>-    if (!RTEST(ARGF.current_file)) {</div><div class='del'>-	return rb_enc_from_encoding(rb_default_external_encoding());</div><div class='del'>-    }</div><div class='del'>-    return rb_io_external_encoding(rb_io_check_io(ARGF.current_file));</div><div class='add'>+    return argf_encoding(argf, rb_io_external_encoding);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.internal_encoding   -&gt; encoding</div><div class='ctx'>  *</div><div class='del'>- *  Returns the internal encoding for strings read from +ARGF+ as an</div><div class='del'>- *  +Encoding+ object.</div><div class='add'>+ *  Returns the internal encoding for strings read from ARGF as an</div><div class='add'>+ *  Encoding object.</div><div class='ctx'>  *</div><div class='del'>- *  If +ARGF.set_encoding+ has been called with two encoding names, the second</div><div class='add'>+ *  If ARGF.set_encoding has been called with two encoding names, the second</div><div class='ctx'>  *  is returned. Otherwise, if +Encoding.default_external+ has been set, that</div><div class='ctx'>  *  value is returned. Failing that, if a default external encoding was</div><div class='ctx'>  *  specified on the command-line, that value is used. If the encoding is</div><div class='hunk'>@@ -11683,10 +13548,7 @@ argf_external_encoding(VALUE argf)</div><div class='ctx'> static VALUE</div><div class='ctx'> argf_internal_encoding(VALUE argf)</div><div class='ctx'> {</div><div class='del'>-    if (!RTEST(ARGF.current_file)) {</div><div class='del'>-	return rb_enc_from_encoding(rb_default_external_encoding());</div><div class='del'>-    }</div><div class='del'>-    return rb_io_internal_encoding(rb_io_check_io(ARGF.current_file));</div><div class='add'>+    return argf_encoding(argf, rb_io_internal_encoding);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -11710,7 +13572,7 @@ argf_internal_encoding(VALUE argf)</div><div class='ctx'>  *  specifies the internal encoding.</div><div class='ctx'>  *</div><div class='ctx'>  *  If the external encoding and the internal encoding are specified, the</div><div class='del'>- *  optional +Hash+ argument can be used to adjust the conversion process. The</div><div class='add'>+ *  optional Hash argument can be used to adjust the conversion process. The</div><div class='ctx'>  *  structure of this hash is explained in the String#encode documentation.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='hunk'>@@ -11726,7 +13588,7 @@ argf_set_encoding(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'>     rb_io_t *fptr;</div><div class='ctx'> </div><div class='ctx'>     if (!next_argv()) {</div><div class='del'>-	rb_raise(rb_eArgError, "no stream to set encoding");</div><div class='add'>+        rb_raise(rb_eArgError, "no stream to set encoding");</div><div class='ctx'>     }</div><div class='ctx'>     rb_io_set_encoding(argc, argv, ARGF.current_file);</div><div class='ctx'>     GetOpenFile(ARGF.current_file, fptr);</div><div class='hunk'>@@ -11739,7 +13601,7 @@ argf_set_encoding(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'>  *     ARGF.tell  -&gt; Integer</div><div class='ctx'>  *     ARGF.pos   -&gt; Integer</div><div class='ctx'>  *</div><div class='del'>- *  Returns the current offset (in bytes) of the current file in +ARGF+.</div><div class='add'>+ *  Returns the current offset (in bytes) of the current file in ARGF.</div><div class='ctx'>  *</div><div class='ctx'>  *     ARGF.pos    #=&gt; 0</div><div class='ctx'>  *     ARGF.gets   #=&gt; "This is line one\n"</div><div class='hunk'>@@ -11750,7 +13612,7 @@ static VALUE</div><div class='ctx'> argf_tell(VALUE argf)</div><div class='ctx'> {</div><div class='ctx'>     if (!next_argv()) {</div><div class='del'>-	rb_raise(rb_eArgError, "no stream to tell");</div><div class='add'>+        rb_raise(rb_eArgError, "no stream to tell");</div><div class='ctx'>     }</div><div class='ctx'>     ARGF_FORWARD(0, 0);</div><div class='ctx'>     return rb_io_tell(ARGF.current_file);</div><div class='hunk'>@@ -11760,14 +13622,14 @@ argf_tell(VALUE argf)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.seek(amount, whence=IO::SEEK_SET)  -&gt; 0</div><div class='ctx'>  *</div><div class='del'>- *  Seeks to offset _amount_ (an +Integer+) in the +ARGF+ stream according to</div><div class='add'>+ *  Seeks to offset _amount_ (an Integer) in the ARGF stream according to</div><div class='ctx'>  *  the value of _whence_. See IO#seek for further details.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> argf_seek_m(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'> {</div><div class='ctx'>     if (!next_argv()) {</div><div class='del'>-	rb_raise(rb_eArgError, "no stream to seek");</div><div class='add'>+        rb_raise(rb_eArgError, "no stream to seek");</div><div class='ctx'>     }</div><div class='ctx'>     ARGF_FORWARD(argc, argv);</div><div class='ctx'>     return rb_io_seek_m(argc, argv, ARGF.current_file);</div><div class='hunk'>@@ -11777,7 +13639,7 @@ argf_seek_m(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.pos = position  -&gt; Integer</div><div class='ctx'>  *</div><div class='del'>- *  Seeks to the position given by _position_ (in bytes) in +ARGF+.</div><div class='add'>+ *  Seeks to the position given by _position_ (in bytes) in ARGF.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -11788,7 +13650,7 @@ static VALUE</div><div class='ctx'> argf_set_pos(VALUE argf, VALUE offset)</div><div class='ctx'> {</div><div class='ctx'>     if (!next_argv()) {</div><div class='del'>-	rb_raise(rb_eArgError, "no stream to set position");</div><div class='add'>+        rb_raise(rb_eArgError, "no stream to set position");</div><div class='ctx'>     }</div><div class='ctx'>     ARGF_FORWARD(1, &amp;offset);</div><div class='ctx'>     return rb_io_set_pos(ARGF.current_file, offset);</div><div class='hunk'>@@ -11799,7 +13661,7 @@ argf_set_pos(VALUE argf, VALUE offset)</div><div class='ctx'>  *     ARGF.rewind   -&gt; 0</div><div class='ctx'>  *</div><div class='ctx'>  *  Positions the current file to the beginning of input, resetting</div><div class='del'>- *  +ARGF.lineno+ to zero.</div><div class='add'>+ *  ARGF.lineno to zero.</div><div class='ctx'>  *</div><div class='ctx'>  *     ARGF.readline   #=&gt; "This is line one\n"</div><div class='ctx'>  *     ARGF.rewind     #=&gt; 0</div><div class='hunk'>@@ -11813,13 +13675,13 @@ argf_rewind(VALUE argf)</div><div class='ctx'>     int old_lineno;</div><div class='ctx'> </div><div class='ctx'>     if (!next_argv()) {</div><div class='del'>-	rb_raise(rb_eArgError, "no stream to rewind");</div><div class='add'>+        rb_raise(rb_eArgError, "no stream to rewind");</div><div class='ctx'>     }</div><div class='ctx'>     ARGF_FORWARD(0, 0);</div><div class='ctx'>     old_lineno = RFILE(ARGF.current_file)-&gt;fptr-&gt;lineno;</div><div class='ctx'>     ret = rb_io_rewind(ARGF.current_file);</div><div class='ctx'>     if (!global_argf_p(argf)) {</div><div class='del'>-	ARGF.last_lineno = ARGF.lineno -= old_lineno;</div><div class='add'>+        ARGF.last_lineno = ARGF.lineno -= old_lineno;</div><div class='ctx'>     }</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='hunk'>@@ -11830,7 +13692,7 @@ argf_rewind(VALUE argf)</div><div class='ctx'>  *     ARGF.to_i      -&gt; integer</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns an integer representing the numeric file descriptor for</div><div class='del'>- *  the current file. Raises an +ArgumentError+ if there isn't a current file.</div><div class='add'>+ *  the current file. Raises an ArgumentError if there isn't a current file.</div><div class='ctx'>  *</div><div class='ctx'>  *     ARGF.fileno    #=&gt; 3</div><div class='ctx'>  */</div><div class='hunk'>@@ -11838,7 +13700,7 @@ static VALUE</div><div class='ctx'> argf_fileno(VALUE argf)</div><div class='ctx'> {</div><div class='ctx'>     if (!next_argv()) {</div><div class='del'>-	rb_raise(rb_eArgError, "no stream");</div><div class='add'>+        rb_raise(rb_eArgError, "no stream");</div><div class='ctx'>     }</div><div class='ctx'>     ARGF_FORWARD(0, 0);</div><div class='ctx'>     return rb_io_fileno(ARGF.current_file);</div><div class='hunk'>@@ -11848,8 +13710,8 @@ argf_fileno(VALUE argf)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.to_io     -&gt; IO</div><div class='ctx'>  *</div><div class='del'>- *  Returns an +IO+ object representing the current file. This will be a</div><div class='del'>- *  +File+ object unless the current file is a stream such as STDIN.</div><div class='add'>+ *  Returns an IO object representing the current file. This will be a</div><div class='add'>+ *  File object unless the current file is a stream such as STDIN.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -11869,8 +13731,8 @@ argf_to_io(VALUE argf)</div><div class='ctx'>  *     ARGF.eof?  -&gt; true or false</div><div class='ctx'>  *     ARGF.eof   -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Returns true if the current file in +ARGF+ is at end of file, i.e. it has</div><div class='del'>- *  no data to read. The stream must be opened for reading or an +IOError+</div><div class='add'>+ *  Returns true if the current file in ARGF is at end of file, i.e. it has</div><div class='add'>+ *  no data to read. The stream must be opened for reading or an IOError</div><div class='ctx'>  *  will be raised.</div><div class='ctx'>  *</div><div class='ctx'>  *     $ echo "eof" | ruby argf.rb</div><div class='hunk'>@@ -11887,12 +13749,12 @@ argf_eof(VALUE argf)</div><div class='ctx'> {</div><div class='ctx'>     next_argv();</div><div class='ctx'>     if (RTEST(ARGF.current_file)) {</div><div class='del'>-	if (ARGF.init_p == 0) return Qtrue;</div><div class='del'>-	next_argv();</div><div class='del'>-	ARGF_FORWARD(0, 0);</div><div class='del'>-	if (rb_io_eof(ARGF.current_file)) {</div><div class='del'>-	    return Qtrue;</div><div class='del'>-	}</div><div class='add'>+        if (ARGF.init_p == 0) return Qtrue;</div><div class='add'>+        next_argv();</div><div class='add'>+        ARGF_FORWARD(0, 0);</div><div class='add'>+        if (rb_io_eof(ARGF.current_file)) {</div><div class='add'>+            return Qtrue;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return Qfalse;</div><div class='ctx'> }</div><div class='hunk'>@@ -11953,40 +13815,39 @@ argf_read(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "02", &amp;length, &amp;str);</div><div class='ctx'>     if (!NIL_P(length)) {</div><div class='del'>-	len = NUM2LONG(argv[0]);</div><div class='add'>+        len = NUM2LONG(argv[0]);</div><div class='ctx'>     }</div><div class='ctx'>     if (!NIL_P(str)) {</div><div class='del'>-	StringValue(str);</div><div class='del'>-	rb_str_resize(str,0);</div><div class='del'>-	argv[1] = Qnil;</div><div class='add'>+        StringValue(str);</div><div class='add'>+        rb_str_resize(str,0);</div><div class='add'>+        argv[1] = Qnil;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>   retry:</div><div class='ctx'>     if (!next_argv()) {</div><div class='del'>-	return str;</div><div class='add'>+        return str;</div><div class='ctx'>     }</div><div class='ctx'>     if (ARGF_GENERIC_INPUT_P()) {</div><div class='del'>-	tmp = argf_forward(argc, argv, argf);</div><div class='add'>+        tmp = argf_forward(argc, argv, argf);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	tmp = io_read(argc, argv, ARGF.current_file);</div><div class='add'>+        tmp = io_read(argc, argv, ARGF.current_file);</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(str)) str = tmp;</div><div class='ctx'>     else if (!NIL_P(tmp)) rb_str_append(str, tmp);</div><div class='ctx'>     if (NIL_P(tmp) || NIL_P(length)) {</div><div class='del'>-	if (ARGF.next_p != -1) {</div><div class='del'>-	    argf_close(argf);</div><div class='del'>-	    ARGF.next_p = 1;</div><div class='del'>-	    goto retry;</div><div class='del'>-	}</div><div class='add'>+        if (ARGF.next_p != -1) {</div><div class='add'>+            argf_close(argf);</div><div class='add'>+            ARGF.next_p = 1;</div><div class='add'>+            goto retry;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else if (argc &gt;= 1) {</div><div class='del'>-	long slen = RSTRING_LEN(str);</div><div class='del'>-	if (slen &lt; len) {</div><div class='del'>-	    len -= slen;</div><div class='del'>-	    argv[0] = INT2NUM(len);</div><div class='del'>-	    goto retry;</div><div class='del'>-	}</div><div class='add'>+        long slen = RSTRING_LEN(str);</div><div class='add'>+        if (slen &lt; len) {</div><div class='add'>+            argv[0] = LONG2NUM(len - slen);</div><div class='add'>+            goto retry;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='hunk'>@@ -12020,11 +13881,11 @@ static VALUE argf_getpartial(int argc, VALUE *argv, VALUE argf, VALUE opts,</div><div class='ctx'>  *  The _outbuf_ will contain only the received data after the method call</div><div class='ctx'>  *  even if it is not empty at the beginning.</div><div class='ctx'>  *</div><div class='del'>- *  It raises &lt;code&gt;EOFError&lt;/code&gt; on end of ARGF stream.</div><div class='add'>+ *  It raises EOFError on end of ARGF stream.</div><div class='ctx'>  *  Since ARGF stream is a concatenation of multiple files,</div><div class='ctx'>  *  internally EOF is occur for each file.</div><div class='ctx'>  *  ARGF.readpartial returns empty strings for EOFs except the last one and</div><div class='del'>- *  raises &lt;code&gt;EOFError&lt;/code&gt; for the last one.</div><div class='add'>+ *  raises EOFError for the last one.</div><div class='ctx'>  *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='hunk'>@@ -12059,39 +13920,42 @@ static VALUE</div><div class='ctx'> argf_getpartial(int argc, VALUE *argv, VALUE argf, VALUE opts, int nonblock)</div><div class='ctx'> {</div><div class='ctx'>     VALUE tmp, str, length;</div><div class='add'>+    int no_exception;</div><div class='ctx'> </div><div class='ctx'>     rb_scan_args(argc, argv, "11", &amp;length, &amp;str);</div><div class='ctx'>     if (!NIL_P(str)) {</div><div class='ctx'>         StringValue(str);</div><div class='ctx'>         argv[1] = str;</div><div class='ctx'>     }</div><div class='add'>+    no_exception = no_exception_p(opts);</div><div class='ctx'> </div><div class='ctx'>     if (!next_argv()) {</div><div class='del'>-	if (!NIL_P(str)) {</div><div class='del'>-	    rb_str_resize(str, 0);</div><div class='del'>-	}</div><div class='add'>+        if (!NIL_P(str)) {</div><div class='add'>+            rb_str_resize(str, 0);</div><div class='add'>+        }</div><div class='ctx'>         rb_eof_error();</div><div class='ctx'>     }</div><div class='ctx'>     if (ARGF_GENERIC_INPUT_P()) {</div><div class='del'>-	struct argf_call_arg arg;</div><div class='del'>-	arg.argc = argc;</div><div class='del'>-	arg.argv = argv;</div><div class='del'>-	arg.argf = argf;</div><div class='del'>-	tmp = rb_rescue2(argf_forward_call, (VALUE)&amp;arg,</div><div class='del'>-			 RUBY_METHOD_FUNC(0), Qnil, rb_eEOFError, (VALUE)0);</div><div class='add'>+        VALUE (*const rescue_does_nothing)(VALUE, VALUE) = 0;</div><div class='add'>+        struct argf_call_arg arg;</div><div class='add'>+        arg.argc = argc;</div><div class='add'>+        arg.argv = argv;</div><div class='add'>+        arg.argf = argf;</div><div class='add'>+        tmp = rb_rescue2(argf_forward_call, (VALUE)&amp;arg,</div><div class='add'>+                         rescue_does_nothing, Qnil, rb_eEOFError, (VALUE)0);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-        tmp = io_getpartial(argc, argv, ARGF.current_file, opts, nonblock);</div><div class='add'>+        tmp = io_getpartial(argc, argv, ARGF.current_file, no_exception, nonblock);</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(tmp)) {</div><div class='ctx'>         if (ARGF.next_p == -1) {</div><div class='del'>-	    return io_nonblock_eof(opts);</div><div class='add'>+            return io_nonblock_eof(no_exception);</div><div class='ctx'>         }</div><div class='ctx'>         argf_close(argf);</div><div class='ctx'>         ARGF.next_p = 1;</div><div class='ctx'>         if (RARRAY_LEN(ARGF.argv) == 0) {</div><div class='del'>-	    return io_nonblock_eof(opts);</div><div class='del'>-	}</div><div class='add'>+            return io_nonblock_eof(no_exception);</div><div class='add'>+        }</div><div class='ctx'>         if (NIL_P(str))</div><div class='ctx'>             str = rb_str_new(NULL, 0);</div><div class='ctx'>         return str;</div><div class='hunk'>@@ -12103,10 +13967,10 @@ argf_getpartial(int argc, VALUE *argv, VALUE argf, VALUE opts, int nonblock)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.getc  -&gt; String or nil</div><div class='ctx'>  *</div><div class='del'>- *  Reads the next character from +ARGF+ and returns it as a +String+. Returns</div><div class='add'>+ *  Reads the next character from ARGF and returns it as a String. Returns</div><div class='ctx'>  *  +nil+ at the end of the stream.</div><div class='ctx'>  *</div><div class='del'>- *  +ARGF+ treats the files named on the command line as a single file created</div><div class='add'>+ *  ARGF treats the files named on the command line as a single file created</div><div class='ctx'>  *  by concatenating their contents. After returning the last character of the</div><div class='ctx'>  *  first file, it returns the first character of the second file, and so on.</div><div class='ctx'>  *</div><div class='hunk'>@@ -12130,15 +13994,15 @@ argf_getc(VALUE argf)</div><div class='ctx'>   retry:</div><div class='ctx'>     if (!next_argv()) return Qnil;</div><div class='ctx'>     if (ARGF_GENERIC_INPUT_P()) {</div><div class='del'>-	ch = rb_funcall3(ARGF.current_file, rb_intern("getc"), 0, 0);</div><div class='add'>+        ch = forward_current(rb_intern("getc"), 0, 0);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ch = rb_io_getc(ARGF.current_file);</div><div class='add'>+        ch = rb_io_getc(ARGF.current_file);</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(ch) &amp;&amp; ARGF.next_p != -1) {</div><div class='del'>-	argf_close(argf);</div><div class='del'>-	ARGF.next_p = 1;</div><div class='del'>-	goto retry;</div><div class='add'>+        argf_close(argf);</div><div class='add'>+        ARGF.next_p = 1;</div><div class='add'>+        goto retry;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return ch;</div><div class='hunk'>@@ -12148,7 +14012,7 @@ argf_getc(VALUE argf)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.getbyte  -&gt; Integer or nil</div><div class='ctx'>  *</div><div class='del'>- *  Gets the next 8-bit byte (0..255) from +ARGF+. Returns +nil+ if called at</div><div class='add'>+ *  Gets the next 8-bit byte (0..255) from ARGF. Returns +nil+ if called at</div><div class='ctx'>  *  the end of the stream.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='hunk'>@@ -12170,15 +14034,15 @@ argf_getbyte(VALUE argf)</div><div class='ctx'>   retry:</div><div class='ctx'>     if (!next_argv()) return Qnil;</div><div class='ctx'>     if (!RB_TYPE_P(ARGF.current_file, T_FILE)) {</div><div class='del'>-	ch = rb_funcall3(ARGF.current_file, rb_intern("getbyte"), 0, 0);</div><div class='add'>+        ch = forward_current(rb_intern("getbyte"), 0, 0);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ch = rb_io_getbyte(ARGF.current_file);</div><div class='add'>+        ch = rb_io_getbyte(ARGF.current_file);</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(ch) &amp;&amp; ARGF.next_p != -1) {</div><div class='del'>-	argf_close(argf);</div><div class='del'>-	ARGF.next_p = 1;</div><div class='del'>-	goto retry;</div><div class='add'>+        argf_close(argf);</div><div class='add'>+        ARGF.next_p = 1;</div><div class='add'>+        goto retry;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return ch;</div><div class='hunk'>@@ -12188,8 +14052,8 @@ argf_getbyte(VALUE argf)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.readchar  -&gt; String or nil</div><div class='ctx'>  *</div><div class='del'>- *  Reads the next character from +ARGF+ and returns it as a +String+. Raises</div><div class='del'>- *  an +EOFError+ after the last character of the last file has been read.</div><div class='add'>+ *  Reads the next character from ARGF and returns it as a String. Raises</div><div class='add'>+ *  an EOFError after the last character of the last file has been read.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -12210,15 +14074,15 @@ argf_readchar(VALUE argf)</div><div class='ctx'>   retry:</div><div class='ctx'>     if (!next_argv()) rb_eof_error();</div><div class='ctx'>     if (!RB_TYPE_P(ARGF.current_file, T_FILE)) {</div><div class='del'>-	ch = rb_funcall3(ARGF.current_file, rb_intern("getc"), 0, 0);</div><div class='add'>+        ch = forward_current(rb_intern("getc"), 0, 0);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ch = rb_io_getc(ARGF.current_file);</div><div class='add'>+        ch = rb_io_getc(ARGF.current_file);</div><div class='ctx'>     }</div><div class='ctx'>     if (NIL_P(ch) &amp;&amp; ARGF.next_p != -1) {</div><div class='del'>-	argf_close(argf);</div><div class='del'>-	ARGF.next_p = 1;</div><div class='del'>-	goto retry;</div><div class='add'>+        argf_close(argf);</div><div class='add'>+        ARGF.next_p = 1;</div><div class='add'>+        goto retry;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return ch;</div><div class='hunk'>@@ -12228,8 +14092,8 @@ argf_readchar(VALUE argf)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.readbyte  -&gt; Integer</div><div class='ctx'>  *</div><div class='del'>- *  Reads the next 8-bit byte from ARGF and returns it as an +Integer+. Raises</div><div class='del'>- *  an +EOFError+ after the last byte of the last file has been read.</div><div class='add'>+ *  Reads the next 8-bit byte from ARGF and returns it as an Integer. Raises</div><div class='add'>+ *  an EOFError after the last byte of the last file has been read.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -12250,7 +14114,7 @@ argf_readbyte(VALUE argf)</div><div class='ctx'>     NEXT_ARGF_FORWARD(0, 0);</div><div class='ctx'>     c = argf_getbyte(argf);</div><div class='ctx'>     if (NIL_P(c)) {</div><div class='del'>-	rb_eof_error();</div><div class='add'>+        rb_eof_error();</div><div class='ctx'>     }</div><div class='ctx'>     return c;</div><div class='ctx'> }</div><div class='hunk'>@@ -12263,23 +14127,27 @@ argf_block_call_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, argf))</div><div class='ctx'>     const VALUE current = ARGF.current_file;</div><div class='ctx'>     rb_yield_values2(argc, argv);</div><div class='ctx'>     if (ARGF.init_p == -1 || current != ARGF.current_file) {</div><div class='del'>-	rb_iter_break_value(Qundef);</div><div class='add'>+        rb_iter_break_value(Qundef);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#define ARGF_block_call(mid, argc, argv, func, argf) \</div><div class='add'>+    rb_block_call_kw(ARGF.current_file, mid, argc, argv, \</div><div class='add'>+                     func, argf, rb_keyword_given_p())</div><div class='add'>+</div><div class='ctx'> static void</div><div class='ctx'> argf_block_call(ID mid, int argc, VALUE *argv, VALUE argf)</div><div class='ctx'> {</div><div class='del'>-    VALUE ret = rb_block_call(ARGF.current_file, mid, argc, argv, argf_block_call_i, argf);</div><div class='del'>-    if (ret != Qundef) ARGF.next_p = 1;</div><div class='add'>+    VALUE ret = ARGF_block_call(mid, argc, argv, argf_block_call_i, argf);</div><div class='add'>+    if (!UNDEF_P(ret)) ARGF.next_p = 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> argf_block_call_line_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, argf))</div><div class='ctx'> {</div><div class='ctx'>     if (!global_argf_p(argf)) {</div><div class='del'>-	ARGF.last_lineno = ++ARGF.lineno;</div><div class='add'>+        ARGF.last_lineno = ++ARGF.lineno;</div><div class='ctx'>     }</div><div class='ctx'>     return argf_block_call_i(i, argf, argc, argv, blockarg);</div><div class='ctx'> }</div><div class='hunk'>@@ -12287,8 +14155,8 @@ argf_block_call_line_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, argf))</div><div class='ctx'> static void</div><div class='ctx'> argf_block_call_line(ID mid, int argc, VALUE *argv, VALUE argf)</div><div class='ctx'> {</div><div class='del'>-    VALUE ret = rb_block_call(ARGF.current_file, mid, argc, argv, argf_block_call_line_i, argf);</div><div class='del'>-    if (ret != Qundef) ARGF.next_p = 1;</div><div class='add'>+    VALUE ret = ARGF_block_call(mid, argc, argv, argf_block_call_line_i, argf);</div><div class='add'>+    if (!UNDEF_P(ret)) ARGF.next_p = 1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -12305,20 +14173,28 @@ argf_block_call_line(ID mid, int argc, VALUE *argv, VALUE argf)</div><div class='ctx'>  *  which defaults to your platform's newline character) of each file in</div><div class='ctx'>  *  +ARGV+. If a block is supplied, each line in turn will be yielded to the</div><div class='ctx'>  *  block, otherwise an enumerator is returned.</div><div class='del'>- *  The optional _limit_ argument is an +Integer+ specifying the maximum</div><div class='add'>+ *  The optional _limit_ argument is an Integer specifying the maximum</div><div class='ctx'>  *  length of each line; longer lines will be split according to this limit.</div><div class='ctx'>  *</div><div class='ctx'>  *  This method allows you to treat the files supplied on the command line as</div><div class='ctx'>  *  a single file consisting of the concatenation of each named file. After</div><div class='ctx'>  *  the last line of the first file has been returned, the first line of the</div><div class='del'>- *  second file is returned. The +ARGF.filename+ and +ARGF.lineno+ methods can</div><div class='del'>- *  be used to determine the filename and line number, respectively, of the</div><div class='del'>- *  current line.</div><div class='add'>+ *  second file is returned. The ARGF.filename and ARGF.lineno methods can be</div><div class='add'>+ *  used to determine the filename of the current line and line number of the</div><div class='add'>+ *  whole input, respectively.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example, the following code prints out each line of each named file</div><div class='ctx'>  *  prefixed with its line number, displaying the filename once per file:</div><div class='ctx'>  *</div><div class='ctx'>  *     ARGF.each_line do |line|</div><div class='add'>+ *       puts ARGF.filename if ARGF.file.lineno == 1</div><div class='add'>+ *       puts "#{ARGF.file.lineno}: #{line}"</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *  While the following code prints only the first file's name at first, and</div><div class='add'>+ *  the contents with line number counted through all named files.</div><div class='add'>+ *</div><div class='add'>+ *     ARGF.each_line do |line|</div><div class='ctx'>  *       puts ARGF.filename if ARGF.lineno == 1</div><div class='ctx'>  *       puts "#{ARGF.lineno}: #{line}"</div><div class='ctx'>  *     end</div><div class='hunk'>@@ -12328,39 +14204,23 @@ argf_each_line(int argc, VALUE *argv, VALUE argf)</div><div class='ctx'> {</div><div class='ctx'>     RETURN_ENUMERATOR(argf, argc, argv);</div><div class='ctx'>     FOREACH_ARGF() {</div><div class='del'>-	argf_block_call_line(rb_intern("each_line"), argc, argv, argf);</div><div class='add'>+        argf_block_call_line(rb_intern("each_line"), argc, argv, argf);</div><div class='ctx'>     }</div><div class='ctx'>     return argf;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_line&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-argf_lines(int argc, VALUE *argv, VALUE argf)</div><div class='del'>-{</div><div class='del'>-    rb_warn("ARGF#lines is deprecated; use #each_line instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(argf, ID2SYM(rb_intern("each_line")), argc, argv);</div><div class='del'>-    return argf_each_line(argc, argv, argf);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  *  call-seq:</div><div class='del'>- *     ARGF.bytes     {|byte| block }  -&gt; ARGF</div><div class='del'>- *     ARGF.bytes                      -&gt; an_enumerator</div><div class='del'>- *</div><div class='ctx'>  *     ARGF.each_byte {|byte| block }  -&gt; ARGF</div><div class='ctx'>  *     ARGF.each_byte                  -&gt; an_enumerator</div><div class='ctx'>  *</div><div class='ctx'>  *  Iterates over each byte of each file in +ARGV+.</div><div class='del'>- *  A byte is returned as an +Integer+ in the range 0..255.</div><div class='add'>+ *  A byte is returned as an Integer in the range 0..255.</div><div class='ctx'>  *</div><div class='ctx'>  *  This method allows you to treat the files supplied on the command line as</div><div class='ctx'>  *  a single file consisting of the concatenation of each named file. After</div><div class='ctx'>  *  the last byte of the first file has been returned, the first byte of the</div><div class='del'>- *  second file is returned. The +ARGF.filename+ method can be used to</div><div class='add'>+ *  second file is returned. The ARGF.filename method can be used to</div><div class='ctx'>  *  determine the filename of the current byte.</div><div class='ctx'>  *</div><div class='ctx'>  *  If no block is given, an enumerator is returned instead.</div><div class='hunk'>@@ -12375,35 +14235,22 @@ argf_each_byte(VALUE argf)</div><div class='ctx'> {</div><div class='ctx'>     RETURN_ENUMERATOR(argf, 0, 0);</div><div class='ctx'>     FOREACH_ARGF() {</div><div class='del'>-	argf_block_call(rb_intern("each_byte"), 0, 0, argf);</div><div class='add'>+        argf_block_call(rb_intern("each_byte"), 0, 0, argf);</div><div class='ctx'>     }</div><div class='ctx'>     return argf;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_byte&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-argf_bytes(VALUE argf)</div><div class='del'>-{</div><div class='del'>-    rb_warn("ARGF#bytes is deprecated; use #each_byte instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(argf, ID2SYM(rb_intern("each_byte")), 0, 0);</div><div class='del'>-    return argf_each_byte(argf);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.each_char {|char| block }  -&gt; ARGF</div><div class='ctx'>  *     ARGF.each_char                  -&gt; an_enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Iterates over each character of each file in +ARGF+.</div><div class='add'>+ *  Iterates over each character of each file in ARGF.</div><div class='ctx'>  *</div><div class='ctx'>  *  This method allows you to treat the files supplied on the command line as</div><div class='ctx'>  *  a single file consisting of the concatenation of each named file. After</div><div class='ctx'>  *  the last character of the first file has been returned, the first</div><div class='del'>- *  character of the second file is returned. The +ARGF.filename+ method can</div><div class='add'>+ *  character of the second file is returned. The ARGF.filename method can</div><div class='ctx'>  *  be used to determine the name of the file in which the current character</div><div class='ctx'>  *  appears.</div><div class='ctx'>  *</div><div class='hunk'>@@ -12414,35 +14261,22 @@ argf_each_char(VALUE argf)</div><div class='ctx'> {</div><div class='ctx'>     RETURN_ENUMERATOR(argf, 0, 0);</div><div class='ctx'>     FOREACH_ARGF() {</div><div class='del'>-	argf_block_call(rb_intern("each_char"), 0, 0, argf);</div><div class='add'>+        argf_block_call(rb_intern("each_char"), 0, 0, argf);</div><div class='ctx'>     }</div><div class='ctx'>     return argf;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_char&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-argf_chars(VALUE argf)</div><div class='del'>-{</div><div class='del'>-    rb_warn("ARGF#chars is deprecated; use #each_char instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(argf, ID2SYM(rb_intern("each_char")), 0, 0);</div><div class='del'>-    return argf_each_char(argf);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.each_codepoint {|codepoint| block }  -&gt; ARGF</div><div class='ctx'>  *     ARGF.each_codepoint                       -&gt; an_enumerator</div><div class='ctx'>  *</div><div class='del'>- *  Iterates over each codepoint of each file in +ARGF+.</div><div class='add'>+ *  Iterates over each codepoint of each file in ARGF.</div><div class='ctx'>  *</div><div class='ctx'>  *  This method allows you to treat the files supplied on the command line as</div><div class='ctx'>  *  a single file consisting of the concatenation of each named file. After</div><div class='ctx'>  *  the last codepoint of the first file has been returned, the first</div><div class='del'>- *  codepoint of the second file is returned. The +ARGF.filename+ method can</div><div class='add'>+ *  codepoint of the second file is returned. The ARGF.filename method can</div><div class='ctx'>  *  be used to determine the name of the file in which the current codepoint</div><div class='ctx'>  *  appears.</div><div class='ctx'>  *</div><div class='hunk'>@@ -12453,25 +14287,12 @@ argf_each_codepoint(VALUE argf)</div><div class='ctx'> {</div><div class='ctx'>     RETURN_ENUMERATOR(argf, 0, 0);</div><div class='ctx'>     FOREACH_ARGF() {</div><div class='del'>-	argf_block_call(rb_intern("each_codepoint"), 0, 0, argf);</div><div class='add'>+        argf_block_call(rb_intern("each_codepoint"), 0, 0, argf);</div><div class='ctx'>     }</div><div class='ctx'>     return argf;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  This is a deprecated alias for &lt;code&gt;each_codepoint&lt;/code&gt;.</div><div class='del'>- */</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-argf_codepoints(VALUE argf)</div><div class='del'>-{</div><div class='del'>-    rb_warn("ARGF#codepoints is deprecated; use #each_codepoint instead");</div><div class='del'>-    if (!rb_block_given_p())</div><div class='del'>-	return rb_enumeratorize(argf, ID2SYM(rb_intern("each_codepoint")), 0, 0);</div><div class='del'>-    return argf_each_codepoint(argf);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-/*</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.filename  -&gt; String</div><div class='ctx'>  *     ARGF.path      -&gt; String</div><div class='hunk'>@@ -12510,7 +14331,7 @@ argf_filename_getter(ID id, VALUE *var)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.file  -&gt; IO or File object</div><div class='ctx'>  *</div><div class='del'>- *  Returns the current file as an +IO+ or +File+ object.</div><div class='add'>+ *  Returns the current file as an IO or File object.</div><div class='ctx'>  *  &lt;code&gt;$stdin&lt;/code&gt; is returned when the current file is STDIN.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='hunk'>@@ -12535,7 +14356,7 @@ argf_file(VALUE argf)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.binmode  -&gt; ARGF</div><div class='ctx'>  *</div><div class='del'>- *  Puts +ARGF+ into binary mode. Once a stream is in binary mode, it cannot</div><div class='add'>+ *  Puts ARGF into binary mode. Once a stream is in binary mode, it cannot</div><div class='ctx'>  *  be reset to non-binary mode. This option has the following effects:</div><div class='ctx'>  *</div><div class='ctx'>  *  *  Newline conversion is disabled.</div><div class='hunk'>@@ -12556,8 +14377,8 @@ argf_binmode_m(VALUE argf)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.binmode?  -&gt; true or false</div><div class='ctx'>  *</div><div class='del'>- *  Returns true if +ARGF+ is being read in binary mode; false otherwise.</div><div class='del'>- *  To enable binary mode use +ARGF.binmode+.</div><div class='add'>+ *  Returns true if ARGF is being read in binary mode; false otherwise.</div><div class='add'>+ *  To enable binary mode use ARGF.binmode.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -12568,7 +14389,7 @@ argf_binmode_m(VALUE argf)</div><div class='ctx'> static VALUE</div><div class='ctx'> argf_binmode_p(VALUE argf)</div><div class='ctx'> {</div><div class='del'>-    return ARGF.binmode ? Qtrue : Qfalse;</div><div class='add'>+    return RBOOL(ARGF.binmode);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -12589,8 +14410,8 @@ static VALUE</div><div class='ctx'> argf_skip(VALUE argf)</div><div class='ctx'> {</div><div class='ctx'>     if (ARGF.init_p &amp;&amp; ARGF.next_p == 0) {</div><div class='del'>-	argf_close(argf);</div><div class='del'>-	ARGF.next_p = 1;</div><div class='add'>+        argf_close(argf);</div><div class='add'>+        ARGF.next_p = 1;</div><div class='ctx'>     }</div><div class='ctx'>     return argf;</div><div class='ctx'> }</div><div class='hunk'>@@ -12600,7 +14421,7 @@ argf_skip(VALUE argf)</div><div class='ctx'>  *     ARGF.close  -&gt; ARGF</div><div class='ctx'>  *</div><div class='ctx'>  *  Closes the current file and skips to the next file in ARGV. If there are</div><div class='del'>- *  no more files to open, just closes the current file. +STDIN+ will not be</div><div class='add'>+ *  no more files to open, just closes the current file. STDIN will not be</div><div class='ctx'>  *  closed.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='hunk'>@@ -12618,7 +14439,7 @@ argf_close_m(VALUE argf)</div><div class='ctx'>     next_argv();</div><div class='ctx'>     argf_close(argf);</div><div class='ctx'>     if (ARGF.next_p != -1) {</div><div class='del'>-	ARGF.next_p = 1;</div><div class='add'>+        ARGF.next_p = 1;</div><div class='ctx'>     }</div><div class='ctx'>     ARGF.lineno = 0;</div><div class='ctx'>     return argf;</div><div class='hunk'>@@ -12629,7 +14450,7 @@ argf_close_m(VALUE argf)</div><div class='ctx'>  *     ARGF.closed?  -&gt; true or false</div><div class='ctx'>  *</div><div class='ctx'>  *  Returns _true_ if the current file has been closed; _false_ otherwise. Use</div><div class='del'>- *  +ARGF.close+ to actually close the current file.</div><div class='add'>+ *  ARGF.close to actually close the current file.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> argf_closed(VALUE argf)</div><div class='hunk'>@@ -12655,9 +14476,9 @@ argf_to_s(VALUE argf)</div><div class='ctx'>  *  call-seq:</div><div class='ctx'>  *     ARGF.inplace_mode  -&gt; String</div><div class='ctx'>  *</div><div class='del'>- *  Returns the file extension appended to the names of modified files under</div><div class='del'>- *  in-place edit mode. This value can be set using +ARGF.inplace_mode=+ or</div><div class='del'>- *  passing the +-i+ switch to the Ruby binary.</div><div class='add'>+ *  Returns the file extension appended to the names of backup copies of</div><div class='add'>+ *  modified files under in-place edit mode. This value can be set using</div><div class='add'>+ *  ARGF.inplace_mode= or passing the +-i+ switch to the Ruby binary.</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> argf_inplace_mode_get(VALUE argf)</div><div class='hunk'>@@ -12678,8 +14499,8 @@ opt_i_get(ID id, VALUE *var)</div><div class='ctx'>  *     ARGF.inplace_mode = ext  -&gt; ARGF</div><div class='ctx'>  *</div><div class='ctx'>  *  Sets the filename extension for in-place editing mode to the given String.</div><div class='del'>- *  Each file being edited has this value appended to its filename. The</div><div class='del'>- *  modified file is saved under this new name.</div><div class='add'>+ *  The backup copy of each file being edited has this value appended to its</div><div class='add'>+ *  filename.</div><div class='ctx'>  *</div><div class='ctx'>  *  For example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -12690,23 +14511,21 @@ opt_i_get(ID id, VALUE *var)</div><div class='ctx'>  *        print line.sub("foo","bar")</div><div class='ctx'>  *      end</div><div class='ctx'>  *</div><div class='del'>- *  Each line of _file.txt_ has the first occurrence of "foo" replaced with</div><div class='del'>- *  "bar", then the new line is written out to _file.txt.bak_.</div><div class='add'>+ *  First, _file.txt.bak_ is created as a backup copy of _file.txt_.</div><div class='add'>+ *  Then, each line of _file.txt_ has the first occurrence of "foo" replaced with</div><div class='add'>+ *  "bar".</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> argf_inplace_mode_set(VALUE argf, VALUE val)</div><div class='ctx'> {</div><div class='del'>-    if (rb_safe_level() &gt;= 1 &amp;&amp; OBJ_TAINTED(val))</div><div class='del'>-	rb_insecure_operation();</div><div class='del'>-</div><div class='ctx'>     if (!RTEST(val)) {</div><div class='del'>-	ARGF.inplace = Qfalse;</div><div class='add'>+        ARGF.inplace = Qfalse;</div><div class='ctx'>     }</div><div class='ctx'>     else if (StringValueCStr(val), !RSTRING_LEN(val)) {</div><div class='del'>-	ARGF.inplace = Qnil;</div><div class='add'>+        ARGF.inplace = Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ARGF.inplace = rb_str_new_frozen(val);</div><div class='add'>+        ARGF.inplace = rb_str_new_frozen(val);</div><div class='ctx'>     }</div><div class='ctx'>     return argf;</div><div class='ctx'> }</div><div class='hunk'>@@ -12717,16 +14536,10 @@ opt_i_set(VALUE val, ID id, VALUE *var)</div><div class='ctx'>     argf_inplace_mode_set(*var, val);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-const char *</div><div class='del'>-ruby_get_inplace_mode(void)</div><div class='del'>-{</div><div class='del'>-    return RSTRING_PTR(ARGF.inplace);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> void</div><div class='ctx'> ruby_set_inplace_mode(const char *suffix)</div><div class='ctx'> {</div><div class='del'>-    ARGF.inplace = !suffix ? Qfalse : !*suffix ? Qnil : rb_fstring_cstr(suffix);</div><div class='add'>+    ARGF.inplace = !suffix ? Qfalse : !*suffix ? Qnil : rb_str_new(suffix, strlen(suffix));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -12772,7 +14585,7 @@ static VALUE</div><div class='ctx'> argf_write_io(VALUE argf)</div><div class='ctx'> {</div><div class='ctx'>     if (!RTEST(ARGF.current_file)) {</div><div class='del'>-	rb_raise(rb_eIOError, "not opened for writing");</div><div class='add'>+        rb_raise(rb_eIOError, "not opened for writing");</div><div class='ctx'>     }</div><div class='ctx'>     return GetWriteIO(ARGF.current_file);</div><div class='ctx'> }</div><div class='hunk'>@@ -12790,53 +14603,67 @@ argf_write(VALUE argf, VALUE str)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_readwrite_sys_fail(enum rb_io_wait_readwrite writable, const char *mesg)</div><div class='add'>+rb_readwrite_sys_fail(enum rb_io_wait_readwrite waiting, const char *mesg)</div><div class='ctx'> {</div><div class='del'>-    rb_readwrite_syserr_fail(writable, errno, mesg);</div><div class='add'>+    rb_readwrite_syserr_fail(waiting, errno, mesg);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='del'>-rb_readwrite_syserr_fail(enum rb_io_wait_readwrite writable, int n, const char *mesg)</div><div class='add'>+rb_readwrite_syserr_fail(enum rb_io_wait_readwrite waiting, int n, const char *mesg)</div><div class='ctx'> {</div><div class='del'>-    VALUE arg;</div><div class='add'>+    VALUE arg, c = Qnil;</div><div class='ctx'>     arg = mesg ? rb_str_new2(mesg) : Qnil;</div><div class='del'>-    if (writable == RB_IO_WAIT_WRITABLE) {</div><div class='del'>-	switch (n) {</div><div class='del'>-	  case EAGAIN:</div><div class='del'>-	    rb_exc_raise(rb_class_new_instance(1, &amp;arg, rb_eEAGAINWaitWritable));</div><div class='del'>-	    break;</div><div class='add'>+    switch (waiting) {</div><div class='add'>+      case RB_IO_WAIT_WRITABLE:</div><div class='add'>+        switch (n) {</div><div class='add'>+          case EAGAIN:</div><div class='add'>+            c = rb_eEAGAINWaitWritable;</div><div class='add'>+            break;</div><div class='ctx'> #if EAGAIN != EWOULDBLOCK</div><div class='del'>-	  case EWOULDBLOCK:</div><div class='del'>-	    rb_exc_raise(rb_class_new_instance(1, &amp;arg, rb_eEWOULDBLOCKWaitWritable));</div><div class='del'>-	    break;</div><div class='del'>-#endif</div><div class='del'>-	  case EINPROGRESS:</div><div class='del'>-	    rb_exc_raise(rb_class_new_instance(1, &amp;arg, rb_eEINPROGRESSWaitWritable));</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    rb_mod_sys_fail_str(rb_mWaitWritable, arg);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else if (writable == RB_IO_WAIT_READABLE) {</div><div class='del'>-	switch (n) {</div><div class='del'>-	  case EAGAIN:</div><div class='del'>-	    rb_exc_raise(rb_class_new_instance(1, &amp;arg, rb_eEAGAINWaitReadable));</div><div class='del'>-	    break;</div><div class='add'>+          case EWOULDBLOCK:</div><div class='add'>+            c = rb_eEWOULDBLOCKWaitWritable;</div><div class='add'>+            break;</div><div class='add'>+#endif</div><div class='add'>+          case EINPROGRESS:</div><div class='add'>+            c = rb_eEINPROGRESSWaitWritable;</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            rb_mod_syserr_fail_str(rb_mWaitWritable, n, arg);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      case RB_IO_WAIT_READABLE:</div><div class='add'>+        switch (n) {</div><div class='add'>+          case EAGAIN:</div><div class='add'>+            c = rb_eEAGAINWaitReadable;</div><div class='add'>+            break;</div><div class='ctx'> #if EAGAIN != EWOULDBLOCK</div><div class='del'>-	  case EWOULDBLOCK:</div><div class='del'>-	    rb_exc_raise(rb_class_new_instance(1, &amp;arg, rb_eEWOULDBLOCKWaitReadable));</div><div class='del'>-	    break;</div><div class='add'>+          case EWOULDBLOCK:</div><div class='add'>+            c = rb_eEWOULDBLOCKWaitReadable;</div><div class='add'>+            break;</div><div class='ctx'> #endif</div><div class='del'>-	  case EINPROGRESS:</div><div class='del'>-	    rb_exc_raise(rb_class_new_instance(1, &amp;arg, rb_eEINPROGRESSWaitReadable));</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    rb_mod_sys_fail_str(rb_mWaitReadable, arg);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else {</div><div class='del'>-	rb_bug("invalid read/write type passed to rb_readwrite_sys_fail: %d", writable);</div><div class='add'>+          case EINPROGRESS:</div><div class='add'>+            c = rb_eEINPROGRESSWaitReadable;</div><div class='add'>+            break;</div><div class='add'>+          default:</div><div class='add'>+            rb_mod_syserr_fail_str(rb_mWaitReadable, n, arg);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      default:</div><div class='add'>+        rb_bug("invalid read/write type passed to rb_readwrite_sys_fail: %d", waiting);</div><div class='ctx'>     }</div><div class='add'>+    rb_exc_raise(rb_class_new_instance(1, &amp;arg, c));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+get_LAST_READ_LINE(ID _x, VALUE *_y)</div><div class='add'>+{</div><div class='add'>+    return rb_lastline_get();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+set_LAST_READ_LINE(VALUE val, ID _x, VALUE *_y)</div><div class='add'>+{</div><div class='add'>+    rb_lastline_set(val);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -12864,24 +14691,25 @@ rb_readwrite_syserr_fail(enum rb_io_wait_readwrite writable, int n, const char *</div><div class='ctx'>  * methods exist in two forms,</div><div class='ctx'>  *</div><div class='ctx'>  * one that returns +nil+ when the end of file is reached, the other</div><div class='del'>- * raises +EOFError+.</div><div class='add'>+ * raises EOFError.</div><div class='ctx'>  *</div><div class='del'>- * +EOFError+ is a subclass of +IOError+.</div><div class='add'>+ * EOFError is a subclass of IOError.</div><div class='ctx'>  *</div><div class='ctx'>  *    file = File.open("/etc/hosts")</div><div class='ctx'>  *    file.read</div><div class='ctx'>  *    file.gets     #=&gt; nil</div><div class='ctx'>  *    file.readline #=&gt; EOFError: end of file reached</div><div class='add'>+ *    file.close</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Document-class:  ARGF</div><div class='ctx'>  *</div><div class='del'>- * +ARGF+ is a stream designed for use in scripts that process files given as</div><div class='add'>+ * ARGF is a stream designed for use in scripts that process files given as</div><div class='ctx'>  * command-line arguments or passed in via STDIN.</div><div class='ctx'>  *</div><div class='ctx'>  * The arguments passed to your script are stored in the +ARGV+ Array, one</div><div class='del'>- * argument per element. +ARGF+ assumes that any arguments that aren't</div><div class='add'>+ * argument per element. ARGF assumes that any arguments that aren't</div><div class='ctx'>  * filenames have been removed from +ARGV+. For example:</div><div class='ctx'>  *</div><div class='ctx'>  *     $ ruby argf.rb --verbose file1 file2</div><div class='hunk'>@@ -12890,15 +14718,15 @@ rb_readwrite_syserr_fail(enum rb_io_wait_readwrite writable, int n, const char *</div><div class='ctx'>  *     option = ARGV.shift #=&gt; "--verbose"</div><div class='ctx'>  *     ARGV  #=&gt; ["file1", "file2"]</div><div class='ctx'>  *</div><div class='del'>- * You can now use +ARGF+ to work with a concatenation of each of these named</div><div class='del'>- * files. For instance, +ARGF.read+ will return the contents of _file1_</div><div class='add'>+ * You can now use ARGF to work with a concatenation of each of these named</div><div class='add'>+ * files. For instance, ARGF.read will return the contents of _file1_</div><div class='ctx'>  * followed by the contents of _file2_.</div><div class='ctx'>  *</div><div class='del'>- * After a file in +ARGV+ has been read +ARGF+ removes it from the Array.</div><div class='add'>+ * After a file in +ARGV+ has been read ARGF removes it from the Array.</div><div class='ctx'>  * Thus, after all files have been read +ARGV+ will be empty.</div><div class='ctx'>  *</div><div class='del'>- * You can manipulate +ARGV+ yourself to control what +ARGF+ operates on. If</div><div class='del'>- * you remove a file from +ARGV+, it is ignored by +ARGF+; if you add files to</div><div class='add'>+ * You can manipulate +ARGV+ yourself to control what ARGF operates on. If</div><div class='add'>+ * you remove a file from +ARGV+, it is ignored by ARGF; if you add files to</div><div class='ctx'>  * +ARGV+, they are treated as if they were named on the command line. For</div><div class='ctx'>  * example:</div><div class='ctx'>  *</div><div class='hunk'>@@ -12908,7 +14736,7 @@ rb_readwrite_syserr_fail(enum rb_io_wait_readwrite writable, int n, const char *</div><div class='ctx'>  *     ARGV.replace ["file2", "file3"]</div><div class='ctx'>  *     ARGF.read      # Returns the contents of file2 and file3</div><div class='ctx'>  *</div><div class='del'>- * If +ARGV+ is empty, +ARGF+ acts as if it contained STDIN, i.e. the data</div><div class='add'>+ * If +ARGV+ is empty, ARGF acts as if it contained STDIN, i.e. the data</div><div class='ctx'>  * piped to your script. For example:</div><div class='ctx'>  *</div><div class='ctx'>  *     $ echo "glark" | ruby -e 'p ARGF.read'</div><div class='hunk'>@@ -12916,100 +14744,577 @@ rb_readwrite_syserr_fail(enum rb_io_wait_readwrite writable, int n, const char *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='del'>- *  The IO class is the basis for all input and output in Ruby.</div><div class='del'>- *  An I/O stream may be &lt;em&gt;duplexed&lt;/em&gt; (that is, bidirectional), and</div><div class='del'>- *  so may use more than one native operating system stream.</div><div class='add'>+ *  An instance of class \IO (commonly called a _stream_)</div><div class='add'>+ *  represents an input/output stream in the underlying operating system.</div><div class='add'>+ *  \Class \IO is the basis for input and output in Ruby.</div><div class='ctx'>  *</div><div class='del'>- *  Many of the examples in this section use the File class, the only standard</div><div class='del'>- *  subclass of IO. The two classes are closely associated.  Like the File</div><div class='del'>- *  class, the Socket library subclasses from IO (such as TCPSocket or</div><div class='del'>- *  UDPSocket).</div><div class='add'>+ *  \Class File is the only class in the Ruby core that is a subclass of \IO.</div><div class='add'>+ *  Some classes in the Ruby standard library are also subclasses of \IO;</div><div class='add'>+ *  these include TCPSocket and UDPSocket.</div><div class='ctx'>  *</div><div class='del'>- *  The Kernel#open method can create an IO (or File) object for these types</div><div class='del'>- *  of arguments:</div><div class='add'>+ *  The global constant ARGF (also accessible as &lt;tt&gt;$&lt;&lt;/tt&gt;)</div><div class='add'>+ *  provides an IO-like stream that allows access to all file paths</div><div class='add'>+ *  found in ARGV (or found in STDIN if ARGV is empty).</div><div class='add'>+ *  ARGF is not itself a subclass of \IO.</div><div class='ctx'>  *</div><div class='del'>- *  * A plain string represents a filename suitable for the underlying</div><div class='del'>- *    operating system.</div><div class='add'>+ *  \Class StringIO provides an IO-like stream that handles a String.</div><div class='add'>+ *  \StringIO is not itself a subclass of \IO.</div><div class='add'>+ *</div><div class='add'>+ *  Important objects based on \IO include:</div><div class='add'>+ *</div><div class='add'>+ *  - $stdin.</div><div class='add'>+ *  - $stdout.</div><div class='add'>+ *  - $stderr.</div><div class='add'>+ *  - Instances of class File.</div><div class='add'>+ *</div><div class='add'>+ *  An instance of \IO may be created using:</div><div class='add'>+ *</div><div class='add'>+ *  - IO.new: returns a new \IO object for the given integer file descriptor.</div><div class='add'>+ *  - IO.open: passes a new \IO object to the given block.</div><div class='add'>+ *  - IO.popen: returns a new \IO object that is connected to the $stdin and $stdout</div><div class='add'>+ *    of a newly-launched subprocess.</div><div class='add'>+ *  - Kernel#open: Returns a new \IO object connected to a given source:</div><div class='add'>+ *    stream, file, or subprocess.</div><div class='add'>+ *</div><div class='add'>+ *  Like a \File stream, an \IO stream has:</div><div class='add'>+ *</div><div class='add'>+ *  - A read/write mode, which may be read-only, write-only, or read/write;</div><div class='add'>+ *    see {Read/Write Mode}[rdoc-ref:File@Read-2FWrite+Mode].</div><div class='add'>+ *  - A data mode, which may be text-only or binary;</div><div class='add'>+ *    see {Data Mode}[rdoc-ref:File@Data+Mode].</div><div class='add'>+ *  - Internal and external encodings;</div><div class='add'>+ *    see {Encodings}[rdoc-ref:File@Encodings].</div><div class='add'>+ *</div><div class='add'>+ *  And like other \IO streams, it has:</div><div class='add'>+ *</div><div class='add'>+ *  - A position, which determines where in the stream the next</div><div class='add'>+ *    read or write is to occur;</div><div class='add'>+ *    see {Position}[rdoc-ref:IO@Position].</div><div class='add'>+ *  - A line number, which is a special, line-oriented, "position"</div><div class='add'>+ *    (different from the position mentioned above);</div><div class='add'>+ *    see {Line Number}[rdoc-ref:IO@Line+Number].</div><div class='add'>+ *</div><div class='add'>+ *  == Extension &lt;tt&gt;io/console&lt;/tt&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Extension &lt;tt&gt;io/console&lt;/tt&gt; provides numerous methods</div><div class='add'>+ *  for interacting with the console;</div><div class='add'>+ *  requiring it adds numerous methods to class \IO.</div><div class='add'>+ *</div><div class='add'>+ *  == Example Files</div><div class='add'>+ *</div><div class='add'>+ *  Many examples here use these variables:</div><div class='add'>+ *</div><div class='add'>+ *    :include: doc/examples/files.rdoc</div><div class='add'>+ *</div><div class='add'>+ *  == Open Options</div><div class='add'>+ *</div><div class='add'>+ *  A number of \IO methods accept optional keyword arguments</div><div class='add'>+ *  that determine how a new stream is to be opened:</div><div class='add'>+ *</div><div class='add'>+ *  - +:mode+: Stream mode.</div><div class='add'>+ *  - +:flags+: \Integer file open flags;</div><div class='add'>+ *    If +mode+ is also given, the two are bitwise-ORed.</div><div class='add'>+ *  - +:external_encoding+: External encoding for the stream.</div><div class='add'>+ *  - +:internal_encoding+: Internal encoding for the stream.</div><div class='add'>+ *    &lt;tt&gt;'-'&lt;/tt&gt; is a synonym for the default internal encoding.</div><div class='add'>+ *    If the value is +nil+ no conversion occurs.</div><div class='add'>+ *  - +:encoding+: Specifies external and internal encodings as &lt;tt&gt;'extern:intern'&lt;/tt&gt;.</div><div class='add'>+ *  - +:textmode+: If a truthy value, specifies the mode as text-only, binary otherwise.</div><div class='add'>+ *  - +:binmode+: If a truthy value, specifies the mode as binary, text-only otherwise.</div><div class='add'>+ *  - +:autoclose+: If a truthy value, specifies that the +fd+ will close</div><div class='add'>+ *    when the stream closes; otherwise it remains open.</div><div class='add'>+ *  - +:path:+ If a string value is provided, it is used in #inspect and is available as</div><div class='add'>+ *    #path method.</div><div class='add'>+ *</div><div class='add'>+ *  Also available are the options offered in String#encode,</div><div class='add'>+ *  which may control conversion between external internal encoding.</div><div class='add'>+ *</div><div class='add'>+ *  == Basic \IO</div><div class='add'>+ *</div><div class='add'>+ *  You can perform basic stream \IO with these methods,</div><div class='add'>+ *  which typically operate on multi-byte strings:</div><div class='add'>+ *</div><div class='add'>+ *  - IO#read: Reads and returns some or all of the remaining bytes from the stream.</div><div class='add'>+ *  - IO#write: Writes zero or more strings to the stream;</div><div class='add'>+ *    each given object that is not already a string is converted via +to_s+.</div><div class='add'>+ *</div><div class='add'>+ *  === Position</div><div class='add'>+ *</div><div class='add'>+ *  An \IO stream has a nonnegative integer _position_,</div><div class='add'>+ *  which is the byte offset at which the next read or write is to occur.</div><div class='add'>+ *  A new stream has position zero (and line number zero);</div><div class='add'>+ *  method +rewind+ resets the position (and line number) to zero.</div><div class='add'>+ *</div><div class='add'>+ *  The relevant methods:</div><div class='add'>+ *</div><div class='add'>+ *  - IO#tell (aliased as +#pos+): Returns the current position (in bytes) in the stream.</div><div class='add'>+ *  - IO#pos=: Sets the position of the stream to a given integer +new_position+ (in bytes).</div><div class='add'>+ *  - IO#seek: Sets the position of the stream to a given integer +offset+ (in bytes),</div><div class='add'>+ *    relative to a given position +whence+</div><div class='add'>+ *    (indicating the beginning, end, or current position).</div><div class='add'>+ *  - IO#rewind: Positions the stream at the beginning (also resetting the line number).</div><div class='add'>+ *</div><div class='add'>+ *  === Open and Closed Streams</div><div class='add'>+ *</div><div class='add'>+ *  A new \IO stream may be open for reading, open for writing, or both.</div><div class='add'>+ *</div><div class='add'>+ *  A stream is automatically closed when claimed by the garbage collector.</div><div class='add'>+ *</div><div class='add'>+ *  Attempted reading or writing on a closed stream raises an exception.</div><div class='add'>+ *</div><div class='add'>+ *  The relevant methods:</div><div class='add'>+ *</div><div class='add'>+ *  - IO#close: Closes the stream for both reading and writing.</div><div class='add'>+ *  - IO#close_read: Closes the stream for reading.</div><div class='add'>+ *  - IO#close_write: Closes the stream for writing.</div><div class='add'>+ *  - IO#closed?: Returns whether the stream is closed.</div><div class='add'>+ *</div><div class='add'>+ *  === End-of-Stream</div><div class='add'>+ *</div><div class='add'>+ *  You can query whether a stream is positioned at its end:</div><div class='add'>+ *</div><div class='add'>+ *  - IO#eof? (also aliased as +#eof+): Returns whether the stream is at end-of-stream.</div><div class='add'>+ *</div><div class='add'>+ *  You can reposition to end-of-stream by using method IO#seek:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.eof? # =&gt; false</div><div class='add'>+ *    f.seek(0, :END)</div><div class='add'>+ *    f.eof? # =&gt; true</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Or by reading all stream content (which is slower than using IO#seek):</div><div class='add'>+ *</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    f.eof? # =&gt; false</div><div class='add'>+ *    f.read # =&gt; "First line\nSecond line\n\nFourth line\nFifth line\n"</div><div class='add'>+ *    f.eof? # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ *  == Line \IO</div><div class='add'>+ *</div><div class='add'>+ *  You can read an \IO stream line-by-line using these methods:</div><div class='ctx'>  *</div><div class='del'>- *  * A string starting with &lt;code&gt;"|"&lt;/code&gt; indicates a subprocess.</div><div class='del'>- *    The remainder of the string following the &lt;code&gt;"|"&lt;/code&gt; is</div><div class='del'>- *    invoked as a process with appropriate input/output channels</div><div class='del'>- *    connected to it.</div><div class='del'>- *</div><div class='del'>- *  * A string equal to &lt;code&gt;"|-"&lt;/code&gt; will create another Ruby</div><div class='del'>- *    instance as a subprocess.</div><div class='del'>- *</div><div class='del'>- *  The IO may be opened with different file modes (read-only, write-only) and</div><div class='del'>- *  encodings for proper conversion.  See IO.new for these options.  See</div><div class='del'>- *  Kernel#open for details of the various command formats described above.</div><div class='del'>- *</div><div class='del'>- *  IO.popen, the Open3 library, or  Process#spawn may also be used to</div><div class='del'>- *  communicate with subprocesses through an IO.</div><div class='del'>- *</div><div class='del'>- *  Ruby will convert pathnames between different operating system</div><div class='del'>- *  conventions if possible.  For instance, on a Windows system the</div><div class='del'>- *  filename &lt;code&gt;"/gumby/ruby/test.rb"&lt;/code&gt; will be opened as</div><div class='del'>- *  &lt;code&gt;"\gumby\ruby\test.rb"&lt;/code&gt;.  When specifying a Windows-style</div><div class='del'>- *  filename in a Ruby string, remember to escape the backslashes:</div><div class='del'>- *</div><div class='del'>- *    "C:\\gumby\\ruby\\test.rb"</div><div class='del'>- *</div><div class='del'>- *  Our examples here will use the Unix-style forward slashes;</div><div class='del'>- *  File::ALT_SEPARATOR can be used to get the platform-specific separator</div><div class='del'>- *  character.</div><div class='del'>- *</div><div class='del'>- *  The global constant ARGF (also accessible as &lt;code&gt;$&lt;&lt;/code&gt;) provides an</div><div class='del'>- *  IO-like stream which allows access to all files mentioned on the</div><div class='del'>- *  command line (or STDIN if no files are mentioned). ARGF#path and its alias</div><div class='del'>- *  ARGF#filename are provided to access the name of the file currently being</div><div class='del'>- *  read.</div><div class='del'>- *</div><div class='del'>- *  == io/console</div><div class='del'>- *</div><div class='del'>- *  The io/console extension provides methods for interacting with the</div><div class='del'>- *  console.  The console can be accessed from IO.console or the standard</div><div class='del'>- *  input/output/error IO objects.</div><div class='del'>- *</div><div class='del'>- *  Requiring io/console adds the following methods:</div><div class='del'>- *</div><div class='del'>- *  * IO::console</div><div class='del'>- *  * IO#raw</div><div class='del'>- *  * IO#raw!</div><div class='del'>- *  * IO#cooked</div><div class='del'>- *  * IO#cooked!</div><div class='del'>- *  * IO#getch</div><div class='del'>- *  * IO#echo=</div><div class='del'>- *  * IO#echo?</div><div class='del'>- *  * IO#noecho</div><div class='del'>- *  * IO#winsize</div><div class='del'>- *  * IO#winsize=</div><div class='del'>- *  * IO#iflush</div><div class='del'>- *  * IO#ioflush</div><div class='del'>- *  * IO#oflush</div><div class='add'>+ *  - IO#each_line: Reads each remaining line, passing it to the given block.</div><div class='add'>+ *  - IO#gets: Returns the next line.</div><div class='add'>+ *  - IO#readline: Like #gets, but raises an exception at end-of-stream.</div><div class='add'>+ *  - IO#readlines: Returns all remaining lines in an array.</div><div class='add'>+ *</div><div class='add'>+ *  Each of these reader methods accepts:</div><div class='add'>+ *</div><div class='add'>+ *  - An optional line separator, +sep+;</div><div class='add'>+ *    see {Line Separator}[rdoc-ref:IO@Line+Separator].</div><div class='add'>+ *  - An optional line-size limit, +limit+;</div><div class='add'>+ *    see {Line Limit}[rdoc-ref:IO@Line+Limit].</div><div class='add'>+ *</div><div class='add'>+ *  For each of these reader methods, reading may begin mid-line,</div><div class='add'>+ *  depending on the stream's position;</div><div class='add'>+ *  see {Position}[rdoc-ref:IO@Position]:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.pos = 27</div><div class='add'>+ *    f.each_line {|line| p line }</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "rth line\n"</div><div class='add'>+ *    "Fifth line\n"</div><div class='add'>+ *</div><div class='add'>+ *  You can write to an \IO stream line-by-line using this method:</div><div class='add'>+ *</div><div class='add'>+ *  - IO#puts: Writes objects to the stream.</div><div class='add'>+ *</div><div class='add'>+ *  === Line Separator</div><div class='add'>+ *</div><div class='add'>+ *  Each of these methods uses a &lt;i&gt;line separator&lt;/i&gt;,</div><div class='add'>+ *  which is the string that delimits lines:</div><div class='add'>+ *</div><div class='add'>+ *  - IO.foreach.</div><div class='add'>+ *  - IO.readlines.</div><div class='add'>+ *  - IO#each_line.</div><div class='add'>+ *  - IO#gets.</div><div class='add'>+ *  - IO#readline.</div><div class='add'>+ *  - IO#readlines.</div><div class='add'>+ *</div><div class='add'>+ *  The default line separator is the given by the global variable &lt;tt&gt;$/&lt;/tt&gt;,</div><div class='add'>+ *  whose value is by default &lt;tt&gt;"\n"&lt;/tt&gt;.</div><div class='add'>+ *  The line to be read next is all data from the current position</div><div class='add'>+ *  to the next line separator:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.gets # =&gt; "First line\n"</div><div class='add'>+ *    f.gets # =&gt; "Second line\n"</div><div class='add'>+ *    f.gets # =&gt; "\n"</div><div class='add'>+ *    f.gets # =&gt; "Fourth line\n"</div><div class='add'>+ *    f.gets # =&gt; "Fifth line\n"</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  You can specify a different line separator:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.gets('l')   # =&gt; "First l"</div><div class='add'>+ *    f.gets('li')  # =&gt; "ine\nSecond li"</div><div class='add'>+ *    f.gets('lin') # =&gt; "ne\n\nFourth lin"</div><div class='add'>+ *    f.gets        # =&gt; "e\n"</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  There are two special line separators:</div><div class='add'>+ *</div><div class='add'>+ *  - +nil+: The entire stream is read into a single string:</div><div class='add'>+ *</div><div class='add'>+ *      f = File.new('t.txt')</div><div class='add'>+ *      f.gets(nil) # =&gt; "First line\nSecond line\n\nFourth line\nFifth line\n"</div><div class='add'>+ *      f.close</div><div class='add'>+ *</div><div class='add'>+ *  - &lt;tt&gt;''&lt;/tt&gt; (the empty string): The next "paragraph" is read</div><div class='add'>+ *    (paragraphs being separated by two consecutive line separators):</div><div class='add'>+ *</div><div class='add'>+ *      f = File.new('t.txt')</div><div class='add'>+ *      f.gets('') # =&gt; "First line\nSecond line\n\n"</div><div class='add'>+ *      f.gets('') # =&gt; "Fourth line\nFifth line\n"</div><div class='add'>+ *      f.close</div><div class='add'>+ *</div><div class='add'>+ *  === Line Limit</div><div class='add'>+ *</div><div class='add'>+ *  Each of these methods uses a &lt;i&gt;line limit&lt;/i&gt;,</div><div class='add'>+ *  which specifies that the number of bytes returned may not be (much) longer</div><div class='add'>+ *  than the given +limit+;</div><div class='add'>+ *</div><div class='add'>+ *  - IO.foreach.</div><div class='add'>+ *  - IO.readlines.</div><div class='add'>+ *  - IO#each_line.</div><div class='add'>+ *  - IO#gets.</div><div class='add'>+ *  - IO#readline.</div><div class='add'>+ *  - IO#readlines.</div><div class='add'>+ *</div><div class='add'>+ *  A multi-byte character will not be split, and so a line may be slightly longer</div><div class='add'>+ *  than the given limit.</div><div class='add'>+ *</div><div class='add'>+ *  If +limit+ is not given, the line is determined only by +sep+.</div><div class='add'>+ *</div><div class='add'>+ *    # Text with 1-byte characters.</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets(1) }  # =&gt; "F"</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets(2) }  # =&gt; "Fi"</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets(3) }  # =&gt; "Fir"</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets(4) }  # =&gt; "Firs"</div><div class='add'>+ *    # No more than one line.</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets(10) } # =&gt; "First line"</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets(11) } # =&gt; "First line\n"</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets(12) } # =&gt; "First line\n"</div><div class='add'>+ *</div><div class='add'>+ *    # Text with 2-byte characters, which will not be split.</div><div class='add'>+ *    File.open('t.rus') {|f| f.gets(1).size } # =&gt; 1</div><div class='add'>+ *    File.open('t.rus') {|f| f.gets(2).size } # =&gt; 1</div><div class='add'>+ *    File.open('t.rus') {|f| f.gets(3).size } # =&gt; 2</div><div class='add'>+ *    File.open('t.rus') {|f| f.gets(4).size } # =&gt; 2</div><div class='add'>+ *</div><div class='add'>+ *  === Line Separator and Line Limit</div><div class='add'>+ *</div><div class='add'>+ *  With arguments +sep+ and +limit+ given,</div><div class='add'>+ *  combines the two behaviors:</div><div class='add'>+ *</div><div class='add'>+ *  - Returns the next line as determined by line separator +sep+.</div><div class='add'>+ *  - But returns no more bytes than are allowed by the limit.</div><div class='ctx'>  *</div><div class='ctx'>  *  Example:</div><div class='ctx'>  *</div><div class='del'>- *    require 'io/console'</div><div class='del'>- *    rows, columns = $stdout.winsize</div><div class='del'>- *    puts "Your screen is #{columns} wide and #{rows} tall"</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets('li', 20) } # =&gt; "First li"</div><div class='add'>+ *    File.open('t.txt') {|f| f.gets('li', 2) }  # =&gt; "Fi"</div><div class='add'>+ *</div><div class='add'>+ *  === Line Number</div><div class='add'>+ *</div><div class='add'>+ *  A readable \IO stream has a non-negative integer &lt;i&gt;line number&lt;/i&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  The relevant methods:</div><div class='add'>+ *</div><div class='add'>+ *  - IO#lineno: Returns the line number.</div><div class='add'>+ *  - IO#lineno=: Resets and returns the line number.</div><div class='add'>+ *</div><div class='add'>+ *  Unless modified by a call to method IO#lineno=,</div><div class='add'>+ *  the line number is the number of lines read</div><div class='add'>+ *  by certain line-oriented methods,</div><div class='add'>+ *  according to the given line separator +sep+:</div><div class='add'>+ *</div><div class='add'>+ *  - IO.foreach: Increments the line number on each call to the block.</div><div class='add'>+ *  - IO#each_line: Increments the line number on each call to the block.</div><div class='add'>+ *  - IO#gets: Increments the line number.</div><div class='add'>+ *  - IO#readline: Increments the line number.</div><div class='add'>+ *  - IO#readlines: Increments the line number for each line read.</div><div class='add'>+ *</div><div class='add'>+ *  A new stream is initially has line number zero (and position zero);</div><div class='add'>+ *  method +rewind+ resets the line number (and position) to zero:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.lineno # =&gt; 0</div><div class='add'>+ *    f.gets   # =&gt; "First line\n"</div><div class='add'>+ *    f.lineno # =&gt; 1</div><div class='add'>+ *    f.rewind</div><div class='add'>+ *    f.lineno # =&gt; 0</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Reading lines from a stream usually changes its line number:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt', 'r')</div><div class='add'>+ *    f.lineno   # =&gt; 0</div><div class='add'>+ *    f.readline # =&gt; "This is line one.\n"</div><div class='add'>+ *    f.lineno   # =&gt; 1</div><div class='add'>+ *    f.readline # =&gt; "This is the second line.\n"</div><div class='add'>+ *    f.lineno   # =&gt; 2</div><div class='add'>+ *    f.readline # =&gt; "Here's the third line.\n"</div><div class='add'>+ *    f.lineno   # =&gt; 3</div><div class='add'>+ *    f.eof?     # =&gt; true</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Iterating over lines in a stream usually changes its line number:</div><div class='add'>+ *</div><div class='add'>+ *    File.open('t.txt') do |f|</div><div class='add'>+ *      f.each_line do |line|</div><div class='add'>+ *        p "position=#{f.pos} eof?=#{f.eof?} lineno=#{f.lineno}"</div><div class='add'>+ *      end</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *  Output:</div><div class='add'>+ *</div><div class='add'>+ *    "position=11 eof?=false lineno=1"</div><div class='add'>+ *    "position=23 eof?=false lineno=2"</div><div class='add'>+ *    "position=24 eof?=false lineno=3"</div><div class='add'>+ *    "position=36 eof?=false lineno=4"</div><div class='add'>+ *    "position=47 eof?=true lineno=5"</div><div class='add'>+ *</div><div class='add'>+ *  Unlike the stream's {position}[rdoc-ref:IO@Position],</div><div class='add'>+ *  the line number does not affect where the next read or write will occur:</div><div class='add'>+ *</div><div class='add'>+ *    f = File.new('t.txt')</div><div class='add'>+ *    f.lineno = 1000</div><div class='add'>+ *    f.lineno # =&gt; 1000</div><div class='add'>+ *    f.gets   # =&gt; "First line\n"</div><div class='add'>+ *    f.lineno # =&gt; 1001</div><div class='add'>+ *    f.close</div><div class='add'>+ *</div><div class='add'>+ *  Associated with the line number is the global variable &lt;tt&gt;$.&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *  - When a stream is opened, &lt;tt&gt;$.&lt;/tt&gt; is not set;</div><div class='add'>+ *    its value is left over from previous activity in the process:</div><div class='add'>+ *</div><div class='add'>+ *      $. = 41</div><div class='add'>+ *      f = File.new('t.txt')</div><div class='add'>+ *      $. = 41</div><div class='add'>+ *      # =&gt; 41</div><div class='add'>+ *      f.close</div><div class='add'>+ *</div><div class='add'>+ *  - When a stream is read, &lt;tt&gt;#.&lt;/tt&gt; is set to the line number for that stream:</div><div class='add'>+ *</div><div class='add'>+ *      f0 = File.new('t.txt')</div><div class='add'>+ *      f1 = File.new('t.dat')</div><div class='add'>+ *      f0.readlines # =&gt; ["First line\n", "Second line\n", "\n", "Fourth line\n", "Fifth line\n"]</div><div class='add'>+ *      $.           # =&gt; 5</div><div class='add'>+ *      f1.readlines # =&gt; ["\xFE\xFF\x99\x90\x99\x91\x99\x92\x99\x93\x99\x94"]</div><div class='add'>+ *      $.           # =&gt; 1</div><div class='add'>+ *      f0.close</div><div class='add'>+ *      f1.close</div><div class='add'>+ *</div><div class='add'>+ *  - Methods IO#rewind and IO#seek do not affect &lt;tt&gt;$.&lt;/tt&gt;:</div><div class='add'>+ *</div><div class='add'>+ *      f = File.new('t.txt')</div><div class='add'>+ *      f.readlines # =&gt; ["First line\n", "Second line\n", "\n", "Fourth line\n", "Fifth line\n"]</div><div class='add'>+ *      $.          # =&gt; 5</div><div class='add'>+ *      f.rewind</div><div class='add'>+ *      f.seek(0, :SET)</div><div class='add'>+ *      $.          # =&gt; 5</div><div class='add'>+ *      f.close</div><div class='add'>+ *</div><div class='add'>+ *  == Character \IO</div><div class='add'>+ *</div><div class='add'>+ *  You can process an \IO stream character-by-character using these methods:</div><div class='add'>+ *</div><div class='add'>+ *  - IO#getc: Reads and returns the next character from the stream.</div><div class='add'>+ *  - IO#readchar: Like #getc, but raises an exception at end-of-stream.</div><div class='add'>+ *  - IO#ungetc: Pushes back ("unshifts") a character or integer onto the stream.</div><div class='add'>+ *  - IO#putc: Writes a character to the stream.</div><div class='add'>+ *  - IO#each_char: Reads each remaining character in the stream,</div><div class='add'>+ *    passing the character to the given block.</div><div class='add'>+ *  == Byte \IO</div><div class='add'>+ *</div><div class='add'>+ *  You can process an \IO stream byte-by-byte using these methods:</div><div class='add'>+ *</div><div class='add'>+ *  - IO#getbyte: Returns the next 8-bit byte as an integer in range 0..255.</div><div class='add'>+ *  - IO#readbyte: Like #getbyte, but raises an exception if at end-of-stream.</div><div class='add'>+ *  - IO#ungetbyte: Pushes back ("unshifts") a byte back onto the stream.</div><div class='add'>+ *  - IO#each_byte: Reads each remaining byte in the stream,</div><div class='add'>+ *    passing the byte to the given block.</div><div class='add'>+ *</div><div class='add'>+ *  == Codepoint \IO</div><div class='add'>+ *</div><div class='add'>+ *  You can process an \IO stream codepoint-by-codepoint:</div><div class='add'>+ *</div><div class='add'>+ *  - IO#each_codepoint: Reads each remaining codepoint, passing it to the given block.</div><div class='add'>+ *</div><div class='add'>+ *  == What's Here</div><div class='add'>+ *</div><div class='add'>+ *  First, what's elsewhere. \Class \IO:</div><div class='add'>+ *</div><div class='add'>+ *  - Inherits from {class Object}[rdoc-ref:Object@What-27s+Here].</div><div class='add'>+ *  - Includes {module Enumerable}[rdoc-ref:Enumerable@What-27s+Here],</div><div class='add'>+ *    which provides dozens of additional methods.</div><div class='add'>+ *</div><div class='add'>+ *  Here, class \IO provides methods that are useful for:</div><div class='add'>+ *</div><div class='add'>+ *  - {Creating}[rdoc-ref:IO@Creating]</div><div class='add'>+ *  - {Reading}[rdoc-ref:IO@Reading]</div><div class='add'>+ *  - {Writing}[rdoc-ref:IO@Writing]</div><div class='add'>+ *  - {Positioning}[rdoc-ref:IO@Positioning]</div><div class='add'>+ *  - {Iterating}[rdoc-ref:IO@Iterating]</div><div class='add'>+ *  - {Settings}[rdoc-ref:IO@Settings]</div><div class='add'>+ *  - {Querying}[rdoc-ref:IO@Querying]</div><div class='add'>+ *  - {Buffering}[rdoc-ref:IO@Buffering]</div><div class='add'>+ *  - {Low-Level Access}[rdoc-ref:IO@Low-Level+Access]</div><div class='add'>+ *  - {Other}[rdoc-ref:IO@Other]</div><div class='add'>+ *</div><div class='add'>+ *  === Creating</div><div class='add'>+ *</div><div class='add'>+ *  - ::new (aliased as ::for_fd): Creates and returns a new \IO object for the given</div><div class='add'>+ *    integer file descriptor.</div><div class='add'>+ *  - ::open: Creates a new \IO object.</div><div class='add'>+ *  - ::pipe: Creates a connected pair of reader and writer \IO objects.</div><div class='add'>+ *  - ::popen: Creates an \IO object to interact with a subprocess.</div><div class='add'>+ *  - ::select: Selects which given \IO instances are ready for reading,</div><div class='add'>+ *    writing, or have pending exceptions.</div><div class='add'>+ *</div><div class='add'>+ *  === Reading</div><div class='add'>+ *</div><div class='add'>+ *  - ::binread: Returns a binary string with all or a subset of bytes</div><div class='add'>+ *    from the given file.</div><div class='add'>+ *  - ::read: Returns a string with all or a subset of bytes from the given file.</div><div class='add'>+ *  - ::readlines: Returns an array of strings, which are the lines from the given file.</div><div class='add'>+ *  - #getbyte: Returns the next 8-bit byte read from +self+ as an integer.</div><div class='add'>+ *  - #getc: Returns the next character read from +self+ as a string.</div><div class='add'>+ *  - #gets: Returns the line read from +self+.</div><div class='add'>+ *  - #pread: Returns all or the next _n_ bytes read from +self+,</div><div class='add'>+ *    not updating the receiver's offset.</div><div class='add'>+ *  - #read: Returns all remaining or the next _n_ bytes read from +self+</div><div class='add'>+ *    for a given _n_.</div><div class='add'>+ *  - #read_nonblock: the next _n_ bytes read from +self+ for a given _n_,</div><div class='add'>+ *    in non-block mode.</div><div class='add'>+ *  - #readbyte: Returns the next byte read from +self+;</div><div class='add'>+ *    same as #getbyte, but raises an exception on end-of-stream.</div><div class='add'>+ *  - #readchar: Returns the next character read from +self+;</div><div class='add'>+ *    same as #getc, but raises an exception on end-of-stream.</div><div class='add'>+ *  - #readline: Returns the next line read from +self+;</div><div class='add'>+ *    same as #getline, but raises an exception of end-of-stream.</div><div class='add'>+ *  - #readlines: Returns an array of all lines read read from +self+.</div><div class='add'>+ *  - #readpartial: Returns up to the given number of bytes from +self+.</div><div class='add'>+ *</div><div class='add'>+ *  === Writing</div><div class='add'>+ *</div><div class='add'>+ *  - ::binwrite: Writes the given string to the file at the given filepath,</div><div class='add'>+ *    in binary mode.</div><div class='add'>+ *  - ::write: Writes the given string to +self+.</div><div class='add'>+ *  - #&lt;&lt;: Appends the given string to +self+.</div><div class='add'>+ *  - #print: Prints last read line or given objects to +self+.</div><div class='add'>+ *  - #printf: Writes to +self+ based on the given format string and objects.</div><div class='add'>+ *  - #putc: Writes a character to +self+.</div><div class='add'>+ *  - #puts: Writes lines to +self+, making sure line ends with a newline.</div><div class='add'>+ *  - #pwrite: Writes the given string at the given offset,</div><div class='add'>+ *    not updating the receiver's offset.</div><div class='add'>+ *  - #write: Writes one or more given strings to +self+.</div><div class='add'>+ *  - #write_nonblock: Writes one or more given strings to +self+ in non-blocking mode.</div><div class='add'>+ *</div><div class='add'>+ *  === Positioning</div><div class='add'>+ *</div><div class='add'>+ *  - #lineno: Returns the current line number in +self+.</div><div class='add'>+ *  - #lineno=: Sets the line number is +self+.</div><div class='add'>+ *  - #pos (aliased as #tell): Returns the current byte offset in +self+.</div><div class='add'>+ *  - #pos=: Sets the byte offset in +self+.</div><div class='add'>+ *  - #reopen: Reassociates +self+ with a new or existing \IO stream.</div><div class='add'>+ *  - #rewind: Positions +self+ to the beginning of input.</div><div class='add'>+ *  - #seek: Sets the offset for +self+ relative to given position.</div><div class='add'>+ *</div><div class='add'>+ *  === Iterating</div><div class='add'>+ *</div><div class='add'>+ *  - ::foreach: Yields each line of given file to the block.</div><div class='add'>+ *  - #each (aliased as #each_line): Calls the given block</div><div class='add'>+ *    with each successive line in +self+.</div><div class='add'>+ *  - #each_byte: Calls the given block with each successive byte in +self+</div><div class='add'>+ *    as an integer.</div><div class='add'>+ *  - #each_char: Calls the given block with each successive character in +self+</div><div class='add'>+ *    as a string.</div><div class='add'>+ *  - #each_codepoint: Calls the given block with each successive codepoint in +self+</div><div class='add'>+ *    as an integer.</div><div class='add'>+ *</div><div class='add'>+ *  === Settings</div><div class='add'>+ *</div><div class='add'>+ *  - #autoclose=: Sets whether +self+ auto-closes.</div><div class='add'>+ *  - #binmode: Sets +self+ to binary mode.</div><div class='add'>+ *  - #close: Closes +self+.</div><div class='add'>+ *  - #close_on_exec=: Sets the close-on-exec flag.</div><div class='add'>+ *  - #close_read: Closes +self+ for reading.</div><div class='add'>+ *  - #close_write: Closes +self+ for writing.</div><div class='add'>+ *  - #set_encoding: Sets the encoding for +self+.</div><div class='add'>+ *  - #set_encoding_by_bom: Sets the encoding for +self+, based on its</div><div class='add'>+ *    Unicode byte-order-mark.</div><div class='add'>+ *  - #sync=: Sets the sync-mode to the given value.</div><div class='add'>+ *</div><div class='add'>+ *  === Querying</div><div class='add'>+ *</div><div class='add'>+ *  - #autoclose?: Returns whether +self+ auto-closes.</div><div class='add'>+ *  - #binmode?: Returns whether +self+ is in binary mode.</div><div class='add'>+ *  - #close_on_exec?: Returns the close-on-exec flag for +self+.</div><div class='add'>+ *  - #closed?: Returns whether +self+ is closed.</div><div class='add'>+ *  - #eof? (aliased as #eof): Returns whether +self+ is at end-of-stream.</div><div class='add'>+ *  - #external_encoding: Returns the external encoding object for +self+.</div><div class='add'>+ *  - #fileno (aliased as #to_i): Returns the integer file descriptor for +self+</div><div class='add'>+ *  - #internal_encoding: Returns the internal encoding object for +self+.</div><div class='add'>+ *  - #pid: Returns the process ID of a child process associated with +self+,</div><div class='add'>+ *    if +self+ was created by ::popen.</div><div class='add'>+ *  - #stat: Returns the File::Stat object containing status information for +self+.</div><div class='add'>+ *  - #sync: Returns whether +self+ is in sync-mode.</div><div class='add'>+ *  - #tty? (aliased as #isatty): Returns whether +self+ is a terminal.</div><div class='add'>+ *</div><div class='add'>+ *  === Buffering</div><div class='add'>+ *</div><div class='add'>+ *  - #fdatasync: Immediately writes all buffered data in +self+ to disk.</div><div class='add'>+ *  - #flush: Flushes any buffered data within +self+ to the underlying</div><div class='add'>+ *    operating system.</div><div class='add'>+ *  - #fsync: Immediately writes all buffered data and attributes in +self+ to disk.</div><div class='add'>+ *  - #ungetbyte: Prepends buffer for +self+ with given integer byte or string.</div><div class='add'>+ *  - #ungetc: Prepends buffer for +self+ with given string.</div><div class='add'>+ *</div><div class='add'>+ *  === Low-Level Access</div><div class='add'>+ *</div><div class='add'>+ *  - ::sysopen: Opens the file given by its path,</div><div class='add'>+ *    returning the integer file descriptor.</div><div class='add'>+ *  - #advise: Announces the intention to access data from +self+ in a specific way.</div><div class='add'>+ *  - #fcntl: Passes a low-level command to the file specified</div><div class='add'>+ *    by the given file descriptor.</div><div class='add'>+ *  - #ioctl: Passes a low-level command to the device specified</div><div class='add'>+ *    by the given file descriptor.</div><div class='add'>+ *  - #sysread: Returns up to the next _n_ bytes read from self using a low-level read.</div><div class='add'>+ *  - #sysseek: Sets the offset for +self+.</div><div class='add'>+ *  - #syswrite: Writes the given string to +self+ using a low-level write.</div><div class='add'>+ *</div><div class='add'>+ *  === Other</div><div class='add'>+ *</div><div class='add'>+ *  - ::copy_stream: Copies data from a source to a destination,</div><div class='add'>+ *    each of which is a filepath or an \IO-like object.</div><div class='add'>+ *  - ::try_convert: Returns a new \IO object resulting from converting</div><div class='add'>+ *    the given object.</div><div class='add'>+ *  - #inspect: Returns the string representation of +self+.</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> Init_IO(void)</div><div class='ctx'> {</div><div class='del'>-#undef rb_intern</div><div class='del'>-#define rb_intern(str) rb_intern_const(str)</div><div class='del'>-</div><div class='ctx'>     VALUE rb_cARGF;</div><div class='ctx'> #ifdef __CYGWIN__</div><div class='ctx'> #include &lt;sys/cygwin.h&gt;</div><div class='ctx'>     static struct __cygwin_perfile pf[] =</div><div class='ctx'>     {</div><div class='del'>-	{"", O_RDONLY | O_BINARY},</div><div class='del'>-	{"", O_WRONLY | O_BINARY},</div><div class='del'>-	{"", O_RDWR | O_BINARY},</div><div class='del'>-	{"", O_APPEND | O_BINARY},</div><div class='del'>-	{NULL, 0}</div><div class='add'>+        {"", O_RDONLY | O_BINARY},</div><div class='add'>+        {"", O_WRONLY | O_BINARY},</div><div class='add'>+        {"", O_RDWR | O_BINARY},</div><div class='add'>+        {"", O_APPEND | O_BINARY},</div><div class='add'>+        {NULL, 0}</div><div class='ctx'>     };</div><div class='ctx'>     cygwin_internal(CW_PERFILE, pf);</div><div class='ctx'> #endif</div><div class='hunk'>@@ -13017,12 +15322,13 @@ Init_IO(void)</div><div class='ctx'>     rb_eIOError = rb_define_class("IOError", rb_eStandardError);</div><div class='ctx'>     rb_eEOFError = rb_define_class("EOFError", rb_eIOError);</div><div class='ctx'> </div><div class='del'>-    id_write = rb_intern("write");</div><div class='del'>-    id_read = rb_intern("read");</div><div class='del'>-    id_getc = rb_intern("getc");</div><div class='del'>-    id_flush = rb_intern("flush");</div><div class='del'>-    id_readpartial = rb_intern("readpartial");</div><div class='del'>-    id_set_encoding = rb_intern("set_encoding");</div><div class='add'>+    id_write = rb_intern_const("write");</div><div class='add'>+    id_read = rb_intern_const("read");</div><div class='add'>+    id_getc = rb_intern_const("getc");</div><div class='add'>+    id_flush = rb_intern_const("flush");</div><div class='add'>+    id_readpartial = rb_intern_const("readpartial");</div><div class='add'>+    id_set_encoding = rb_intern_const("set_encoding");</div><div class='add'>+    id_fileno = rb_intern_const("fileno");</div><div class='ctx'> </div><div class='ctx'>     rb_define_global_function("syscall", rb_f_syscall, -1);</div><div class='ctx'> </div><div class='hunk'>@@ -13045,6 +15351,12 @@ Init_IO(void)</div><div class='ctx'>     rb_cIO = rb_define_class("IO", rb_cObject);</div><div class='ctx'>     rb_include_module(rb_cIO, rb_mEnumerable);</div><div class='ctx'> </div><div class='add'>+    rb_eIOTimeoutError = rb_define_class_under(rb_cIO, "TimeoutError", rb_eIOError);</div><div class='add'>+</div><div class='add'>+    rb_define_const(rb_cIO, "READABLE", INT2NUM(RUBY_IO_READABLE));</div><div class='add'>+    rb_define_const(rb_cIO, "WRITABLE", INT2NUM(RUBY_IO_WRITABLE));</div><div class='add'>+    rb_define_const(rb_cIO, "PRIORITY", INT2NUM(RUBY_IO_PRIORITY));</div><div class='add'>+</div><div class='ctx'>     /* exception to wait for reading. see IO.select. */</div><div class='ctx'>     rb_mWaitReadable = rb_define_module_under(rb_cIO, "WaitReadable");</div><div class='ctx'>     /* exception to wait for writing. see IO.select. */</div><div class='hunk'>@@ -13102,17 +15414,18 @@ Init_IO(void)</div><div class='ctx'>     rb_define_method(rb_cIO, "initialize", rb_io_initialize, -1);</div><div class='ctx'> </div><div class='ctx'>     rb_output_fs = Qnil;</div><div class='del'>-    rb_define_hooked_variable("$,", &amp;rb_output_fs, 0, rb_str_setter);</div><div class='add'>+    rb_define_hooked_variable("$,", &amp;rb_output_fs, 0, deprecated_str_setter);</div><div class='ctx'> </div><div class='ctx'>     rb_default_rs = rb_fstring_lit("\n"); /* avoid modifying RS_default */</div><div class='ctx'>     rb_gc_register_mark_object(rb_default_rs);</div><div class='ctx'>     rb_rs = rb_default_rs;</div><div class='ctx'>     rb_output_rs = Qnil;</div><div class='del'>-    rb_define_hooked_variable("$/", &amp;rb_rs, 0, rb_str_setter);</div><div class='del'>-    rb_define_hooked_variable("$-0", &amp;rb_rs, 0, rb_str_setter);</div><div class='del'>-    rb_define_hooked_variable("$\\", &amp;rb_output_rs, 0, rb_str_setter);</div><div class='add'>+    rb_define_hooked_variable("$/", &amp;rb_rs, 0, deprecated_str_setter);</div><div class='add'>+    rb_define_hooked_variable("$-0", &amp;rb_rs, 0, deprecated_str_setter);</div><div class='add'>+    rb_define_hooked_variable("$\\", &amp;rb_output_rs, 0, deprecated_str_setter);</div><div class='ctx'> </div><div class='del'>-    rb_define_virtual_variable("$_", rb_lastline_get, rb_lastline_set);</div><div class='add'>+    rb_define_virtual_variable("$_", get_LAST_READ_LINE, set_LAST_READ_LINE);</div><div class='add'>+    rb_gvar_ractor_local("$_");</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cIO, "initialize_copy", rb_io_init_copy, 1);</div><div class='ctx'>     rb_define_method(rb_cIO, "reopen", rb_io_reopen, -1);</div><div class='hunk'>@@ -13127,10 +15440,6 @@ Init_IO(void)</div><div class='ctx'>     rb_define_method(rb_cIO, "each_byte",  rb_io_each_byte, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "each_char",  rb_io_each_char, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "each_codepoint",  rb_io_each_codepoint, 0);</div><div class='del'>-    rb_define_method(rb_cIO, "lines",  rb_io_lines, -1);</div><div class='del'>-    rb_define_method(rb_cIO, "bytes",  rb_io_bytes, 0);</div><div class='del'>-    rb_define_method(rb_cIO, "chars",  rb_io_chars, 0);</div><div class='del'>-    rb_define_method(rb_cIO, "codepoints",  rb_io_codepoints, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cIO, "syswrite", rb_io_syswrite, 1);</div><div class='ctx'>     rb_define_method(rb_cIO, "sysread",  rb_io_sysread, -1);</div><div class='hunk'>@@ -13142,27 +15451,26 @@ Init_IO(void)</div><div class='ctx'>     rb_define_alias(rb_cIO, "to_i", "fileno");</div><div class='ctx'>     rb_define_method(rb_cIO, "to_io", rb_io_to_io, 0);</div><div class='ctx'> </div><div class='del'>-    rb_define_method(rb_cIO, "fsync",   rb_io_fsync, 0);</div><div class='del'>-    rb_define_method(rb_cIO, "fdatasync",   rb_io_fdatasync, 0);</div><div class='del'>-    rb_define_method(rb_cIO, "sync",   rb_io_sync, 0);</div><div class='del'>-    rb_define_method(rb_cIO, "sync=",  rb_io_set_sync, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "timeout", rb_io_timeout, 0);</div><div class='add'>+    rb_define_method(rb_cIO, "timeout=", rb_io_set_timeout, 1);</div><div class='ctx'> </div><div class='del'>-    rb_define_method(rb_cIO, "lineno",   rb_io_lineno, 0);</div><div class='del'>-    rb_define_method(rb_cIO, "lineno=",  rb_io_set_lineno, 1);</div><div class='add'>+    rb_define_method(rb_cIO, "fsync", rb_io_fsync, 0);</div><div class='add'>+    rb_define_method(rb_cIO, "fdatasync", rb_io_fdatasync, 0);</div><div class='add'>+    rb_define_method(rb_cIO, "sync", rb_io_sync, 0);</div><div class='add'>+    rb_define_method(rb_cIO, "sync=", rb_io_set_sync, 1);</div><div class='ctx'> </div><div class='del'>-    rb_define_method(rb_cIO, "readlines",  rb_io_readlines, -1);</div><div class='add'>+    rb_define_method(rb_cIO, "lineno", rb_io_lineno, 0);</div><div class='add'>+    rb_define_method(rb_cIO, "lineno=", rb_io_set_lineno, 1);</div><div class='ctx'> </div><div class='del'>-    /* for prelude.rb use only: */</div><div class='del'>-    rb_define_private_method(rb_cIO, "__read_nonblock", io_read_nonblock, 3);</div><div class='del'>-    rb_define_private_method(rb_cIO, "__write_nonblock", io_write_nonblock, 2);</div><div class='add'>+    rb_define_method(rb_cIO, "readlines", rb_io_readlines, -1);</div><div class='ctx'> </div><div class='del'>-    rb_define_method(rb_cIO, "readpartial",  io_readpartial, -1);</div><div class='del'>-    rb_define_method(rb_cIO, "read",  io_read, -1);</div><div class='add'>+    rb_define_method(rb_cIO, "readpartial", io_readpartial, -1);</div><div class='add'>+    rb_define_method(rb_cIO, "read", io_read, -1);</div><div class='ctx'>     rb_define_method(rb_cIO, "write", io_write_m, -1);</div><div class='del'>-    rb_define_method(rb_cIO, "gets",  rb_io_gets_m, -1);</div><div class='del'>-    rb_define_method(rb_cIO, "readline",  rb_io_readline, -1);</div><div class='del'>-    rb_define_method(rb_cIO, "getc",  rb_io_getc, 0);</div><div class='del'>-    rb_define_method(rb_cIO, "getbyte",  rb_io_getbyte, 0);</div><div class='add'>+    rb_define_method(rb_cIO, "gets", rb_io_gets_m, -1);</div><div class='add'>+    rb_define_method(rb_cIO, "readline", rb_io_readline, -1);</div><div class='add'>+    rb_define_method(rb_cIO, "getc", rb_io_getc, 0);</div><div class='add'>+    rb_define_method(rb_cIO, "getbyte", rb_io_getbyte, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "readchar",  rb_io_readchar, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "readbyte",  rb_io_readbyte, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "ungetbyte",rb_io_ungetbyte, 1);</div><div class='hunk'>@@ -13209,22 +15517,43 @@ Init_IO(void)</div><div class='ctx'>     rb_define_method(rb_cIO, "ioctl", rb_io_ioctl, -1);</div><div class='ctx'>     rb_define_method(rb_cIO, "fcntl", rb_io_fcntl, -1);</div><div class='ctx'>     rb_define_method(rb_cIO, "pid", rb_io_pid, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cIO, "path", rb_io_path, 0);</div><div class='add'>+    rb_define_method(rb_cIO, "to_path", rb_io_path, 0);</div><div class='add'>+</div><div class='ctx'>     rb_define_method(rb_cIO, "inspect",  rb_io_inspect, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cIO, "external_encoding", rb_io_external_encoding, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "internal_encoding", rb_io_internal_encoding, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "set_encoding", rb_io_set_encoding, -1);</div><div class='add'>+    rb_define_method(rb_cIO, "set_encoding_by_bom", rb_io_set_encoding_by_bom, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cIO, "autoclose?", rb_io_autoclose_p, 0);</div><div class='ctx'>     rb_define_method(rb_cIO, "autoclose=", rb_io_set_autoclose, 1);</div><div class='ctx'> </div><div class='del'>-    rb_define_variable("$stdin", &amp;rb_stdin);</div><div class='del'>-    rb_stdin = prep_stdio(stdin, FMODE_READABLE, rb_cIO, "&lt;STDIN&gt;");</div><div class='del'>-    rb_define_hooked_variable("$stdout", &amp;rb_stdout, 0, stdout_setter);</div><div class='del'>-    rb_stdout = prep_stdio(stdout, FMODE_WRITABLE, rb_cIO, "&lt;STDOUT&gt;");</div><div class='del'>-    rb_define_hooked_variable("$stderr", &amp;rb_stderr, 0, stdout_setter);</div><div class='del'>-    rb_stderr = prep_stdio(stderr, FMODE_WRITABLE|FMODE_SYNC, rb_cIO, "&lt;STDERR&gt;");</div><div class='del'>-    rb_define_hooked_variable("$&gt;", &amp;rb_stdout, 0, stdout_setter);</div><div class='add'>+    rb_define_method(rb_cIO, "wait", io_wait, -1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cIO, "wait_readable", io_wait_readable, -1);</div><div class='add'>+    rb_define_method(rb_cIO, "wait_writable", io_wait_writable, -1);</div><div class='add'>+    rb_define_method(rb_cIO, "wait_priority", io_wait_priority, -1);</div><div class='add'>+</div><div class='add'>+    rb_define_virtual_variable("$stdin",  stdin_getter,  stdin_setter);</div><div class='add'>+    rb_define_virtual_variable("$stdout", stdout_getter, stdout_setter);</div><div class='add'>+    rb_define_virtual_variable("$&gt;",      stdout_getter, stdout_setter);</div><div class='add'>+    rb_define_virtual_variable("$stderr", stderr_getter, stderr_setter);</div><div class='add'>+</div><div class='add'>+    rb_gvar_ractor_local("$stdin");</div><div class='add'>+    rb_gvar_ractor_local("$stdout");</div><div class='add'>+    rb_gvar_ractor_local("$&gt;");</div><div class='add'>+    rb_gvar_ractor_local("$stderr");</div><div class='add'>+</div><div class='add'>+    rb_global_variable(&amp;rb_stdin);</div><div class='add'>+    rb_stdin  = rb_io_prep_stdin();</div><div class='add'>+    rb_global_variable(&amp;rb_stdout);</div><div class='add'>+    rb_stdout = rb_io_prep_stdout();</div><div class='add'>+    rb_global_variable(&amp;rb_stderr);</div><div class='add'>+    rb_stderr = rb_io_prep_stderr();</div><div class='add'>+</div><div class='ctx'>     orig_stdout = rb_stdout;</div><div class='ctx'>     orig_stderr = rb_stderr;</div><div class='ctx'> </div><div class='hunk'>@@ -13261,10 +15590,6 @@ Init_IO(void)</div><div class='ctx'>     rb_define_method(rb_cARGF, "each_byte",  argf_each_byte, 0);</div><div class='ctx'>     rb_define_method(rb_cARGF, "each_char",  argf_each_char, 0);</div><div class='ctx'>     rb_define_method(rb_cARGF, "each_codepoint",  argf_each_codepoint, 0);</div><div class='del'>-    rb_define_method(rb_cARGF, "lines", argf_lines, -1);</div><div class='del'>-    rb_define_method(rb_cARGF, "bytes", argf_bytes, 0);</div><div class='del'>-    rb_define_method(rb_cARGF, "chars", argf_chars, 0);</div><div class='del'>-    rb_define_method(rb_cARGF, "codepoints", argf_codepoints, 0);</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cARGF, "read",  argf_read, -1);</div><div class='ctx'>     rb_define_method(rb_cARGF, "readpartial",  argf_readpartial, -1);</div><div class='hunk'>@@ -13326,6 +15651,8 @@ Init_IO(void)</div><div class='ctx'>     ARGF.filename = rb_str_new2("-");</div><div class='ctx'> </div><div class='ctx'>     rb_define_hooked_variable("$-i", &amp;argf, opt_i_get, opt_i_set);</div><div class='add'>+    rb_gvar_ractor_local("$-i");</div><div class='add'>+</div><div class='ctx'>     rb_define_hooked_variable("$*", &amp;argf, argf_argv_getter, rb_gvar_readonly_setter);</div><div class='ctx'> </div><div class='ctx'> #if defined (_WIN32) || defined(__CYGWIN__)</div><div class='hunk'>@@ -13336,31 +15663,33 @@ Init_IO(void)</div><div class='ctx'> </div><div class='ctx'>     rb_define_method(rb_cFile, "initialize",  rb_file_initialize, -1);</div><div class='ctx'> </div><div class='del'>-    sym_mode = ID2SYM(rb_intern("mode"));</div><div class='del'>-    sym_perm = ID2SYM(rb_intern("perm"));</div><div class='del'>-    sym_flags = ID2SYM(rb_intern("flags"));</div><div class='del'>-    sym_extenc = ID2SYM(rb_intern("external_encoding"));</div><div class='del'>-    sym_intenc = ID2SYM(rb_intern("internal_encoding"));</div><div class='add'>+    sym_mode = ID2SYM(rb_intern_const("mode"));</div><div class='add'>+    sym_perm = ID2SYM(rb_intern_const("perm"));</div><div class='add'>+    sym_flags = ID2SYM(rb_intern_const("flags"));</div><div class='add'>+    sym_extenc = ID2SYM(rb_intern_const("external_encoding"));</div><div class='add'>+    sym_intenc = ID2SYM(rb_intern_const("internal_encoding"));</div><div class='ctx'>     sym_encoding = ID2SYM(rb_id_encoding());</div><div class='del'>-    sym_open_args = ID2SYM(rb_intern("open_args"));</div><div class='del'>-    sym_textmode = ID2SYM(rb_intern("textmode"));</div><div class='del'>-    sym_binmode = ID2SYM(rb_intern("binmode"));</div><div class='del'>-    sym_autoclose = ID2SYM(rb_intern("autoclose"));</div><div class='del'>-    sym_normal = ID2SYM(rb_intern("normal"));</div><div class='del'>-    sym_sequential = ID2SYM(rb_intern("sequential"));</div><div class='del'>-    sym_random = ID2SYM(rb_intern("random"));</div><div class='del'>-    sym_willneed = ID2SYM(rb_intern("willneed"));</div><div class='del'>-    sym_dontneed = ID2SYM(rb_intern("dontneed"));</div><div class='del'>-    sym_noreuse = ID2SYM(rb_intern("noreuse"));</div><div class='del'>-    sym_SET = ID2SYM(rb_intern("SET"));</div><div class='del'>-    sym_CUR = ID2SYM(rb_intern("CUR"));</div><div class='del'>-    sym_END = ID2SYM(rb_intern("END"));</div><div class='add'>+    sym_open_args = ID2SYM(rb_intern_const("open_args"));</div><div class='add'>+    sym_textmode = ID2SYM(rb_intern_const("textmode"));</div><div class='add'>+    sym_binmode = ID2SYM(rb_intern_const("binmode"));</div><div class='add'>+    sym_autoclose = ID2SYM(rb_intern_const("autoclose"));</div><div class='add'>+    sym_normal = ID2SYM(rb_intern_const("normal"));</div><div class='add'>+    sym_sequential = ID2SYM(rb_intern_const("sequential"));</div><div class='add'>+    sym_random = ID2SYM(rb_intern_const("random"));</div><div class='add'>+    sym_willneed = ID2SYM(rb_intern_const("willneed"));</div><div class='add'>+    sym_dontneed = ID2SYM(rb_intern_const("dontneed"));</div><div class='add'>+    sym_noreuse = ID2SYM(rb_intern_const("noreuse"));</div><div class='add'>+    sym_SET = ID2SYM(rb_intern_const("SET"));</div><div class='add'>+    sym_CUR = ID2SYM(rb_intern_const("CUR"));</div><div class='add'>+    sym_END = ID2SYM(rb_intern_const("END"));</div><div class='ctx'> #ifdef SEEK_DATA</div><div class='del'>-    sym_DATA = ID2SYM(rb_intern("DATA"));</div><div class='add'>+    sym_DATA = ID2SYM(rb_intern_const("DATA"));</div><div class='ctx'> #endif</div><div class='ctx'> #ifdef SEEK_HOLE</div><div class='del'>-    sym_HOLE = ID2SYM(rb_intern("HOLE"));</div><div class='add'>+    sym_HOLE = ID2SYM(rb_intern_const("HOLE"));</div><div class='ctx'> #endif</div><div class='del'>-    sym_wait_readable = ID2SYM(rb_intern("wait_readable"));</div><div class='del'>-    sym_wait_writable = ID2SYM(rb_intern("wait_writable"));</div><div class='add'>+    sym_wait_readable = ID2SYM(rb_intern_const("wait_readable"));</div><div class='add'>+    sym_wait_writable = ID2SYM(rb_intern_const("wait_writable"));</div><div class='ctx'> }</div><div class='add'>+</div><div class='add'>+#include "io.rbinc"</div><div class='head'>diff --git a/io.rb b/io.rb<br/>new file mode 100644<br/>index 0000000000..40873ea4fd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/io.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>io.rb</a></div><div class='hunk'>@@ -0,0 +1,123 @@</div><div class='add'>+class IO</div><div class='add'>+  # other IO methods are defined in io.c</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    ios.read_nonblock(maxlen [, options])              -&gt; string</div><div class='add'>+  #    ios.read_nonblock(maxlen, outbuf [, options])      -&gt; outbuf</div><div class='add'>+  #</div><div class='add'>+  # Reads at most &lt;i&gt;maxlen&lt;/i&gt; bytes from &lt;em&gt;ios&lt;/em&gt; using</div><div class='add'>+  # the read(2) system call after O_NONBLOCK is set for</div><div class='add'>+  # the underlying file descriptor.</div><div class='add'>+  #</div><div class='add'>+  # If the optional &lt;i&gt;outbuf&lt;/i&gt; argument is present,</div><div class='add'>+  # it must reference a String, which will receive the data.</div><div class='add'>+  # The &lt;i&gt;outbuf&lt;/i&gt; will contain only the received data after the method call</div><div class='add'>+  # even if it is not empty at the beginning.</div><div class='add'>+  #</div><div class='add'>+  # read_nonblock just calls the read(2) system call.</div><div class='add'>+  # It causes all errors the read(2) system call causes: Errno::EWOULDBLOCK, Errno::EINTR, etc.</div><div class='add'>+  # The caller should care such errors.</div><div class='add'>+  #</div><div class='add'>+  # If the exception is Errno::EWOULDBLOCK or Errno::EAGAIN,</div><div class='add'>+  # it is extended by IO::WaitReadable.</div><div class='add'>+  # So IO::WaitReadable can be used to rescue the exceptions for retrying</div><div class='add'>+  # read_nonblock.</div><div class='add'>+  #</div><div class='add'>+  # read_nonblock causes EOFError on EOF.</div><div class='add'>+  #</div><div class='add'>+  # On some platforms, such as Windows, non-blocking mode is not supported</div><div class='add'>+  # on IO objects other than sockets. In such cases, Errno::EBADF will</div><div class='add'>+  # be raised.</div><div class='add'>+  #</div><div class='add'>+  # If the read byte buffer is not empty,</div><div class='add'>+  # read_nonblock reads from the buffer like readpartial.</div><div class='add'>+  # In this case, the read(2) system call is not called.</div><div class='add'>+  #</div><div class='add'>+  # When read_nonblock raises an exception kind of IO::WaitReadable,</div><div class='add'>+  # read_nonblock should not be called</div><div class='add'>+  # until io is readable for avoiding busy loop.</div><div class='add'>+  # This can be done as follows.</div><div class='add'>+  #</div><div class='add'>+  #   # emulates blocking read (readpartial).</div><div class='add'>+  #   begin</div><div class='add'>+  #     result = io.read_nonblock(maxlen)</div><div class='add'>+  #   rescue IO::WaitReadable</div><div class='add'>+  #     IO.select([io])</div><div class='add'>+  #     retry</div><div class='add'>+  #   end</div><div class='add'>+  #</div><div class='add'>+  # Although IO#read_nonblock doesn't raise IO::WaitWritable.</div><div class='add'>+  # OpenSSL::Buffering#read_nonblock can raise IO::WaitWritable.</div><div class='add'>+  # If IO and SSL should be used polymorphically,</div><div class='add'>+  # IO::WaitWritable should be rescued too.</div><div class='add'>+  # See the document of OpenSSL::Buffering#read_nonblock for sample code.</div><div class='add'>+  #</div><div class='add'>+  # Note that this method is identical to readpartial</div><div class='add'>+  # except the non-blocking flag is set.</div><div class='add'>+  #</div><div class='add'>+  # By specifying a keyword argument _exception_ to +false+, you can indicate</div><div class='add'>+  # that read_nonblock should not raise an IO::WaitReadable exception, but</div><div class='add'>+  # return the symbol +:wait_readable+ instead. At EOF, it will return nil</div><div class='add'>+  # instead of raising EOFError.</div><div class='add'>+  def read_nonblock(len, buf = nil, exception: true)</div><div class='add'>+    Primitive.io_read_nonblock(len, buf, exception)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # call-seq:</div><div class='add'>+  #    ios.write_nonblock(string)   -&gt; integer</div><div class='add'>+  #    ios.write_nonblock(string [, options])   -&gt; integer</div><div class='add'>+  #</div><div class='add'>+  # Writes the given string to &lt;em&gt;ios&lt;/em&gt; using</div><div class='add'>+  # the write(2) system call after O_NONBLOCK is set for</div><div class='add'>+  # the underlying file descriptor.</div><div class='add'>+  #</div><div class='add'>+  # It returns the number of bytes written.</div><div class='add'>+  #</div><div class='add'>+  # write_nonblock just calls the write(2) system call.</div><div class='add'>+  # It causes all errors the write(2) system call causes: Errno::EWOULDBLOCK, Errno::EINTR, etc.</div><div class='add'>+  # The result may also be smaller than string.length (partial write).</div><div class='add'>+  # The caller should care such errors and partial write.</div><div class='add'>+  #</div><div class='add'>+  # If the exception is Errno::EWOULDBLOCK or Errno::EAGAIN,</div><div class='add'>+  # it is extended by IO::WaitWritable.</div><div class='add'>+  # So IO::WaitWritable can be used to rescue the exceptions for retrying write_nonblock.</div><div class='add'>+  #</div><div class='add'>+  #   # Creates a pipe.</div><div class='add'>+  #   r, w = IO.pipe</div><div class='add'>+  #</div><div class='add'>+  #   # write_nonblock writes only 65536 bytes and return 65536.</div><div class='add'>+  #   # (The pipe size is 65536 bytes on this environment.)</div><div class='add'>+  #   s = "a" * 100000</div><div class='add'>+  #   p w.write_nonblock(s)     #=&gt; 65536</div><div class='add'>+  #</div><div class='add'>+  #   # write_nonblock cannot write a byte and raise EWOULDBLOCK (EAGAIN).</div><div class='add'>+  #   p w.write_nonblock("b")   # Resource temporarily unavailable (Errno::EAGAIN)</div><div class='add'>+  #</div><div class='add'>+  # If the write buffer is not empty, it is flushed at first.</div><div class='add'>+  #</div><div class='add'>+  # When write_nonblock raises an exception kind of IO::WaitWritable,</div><div class='add'>+  # write_nonblock should not be called</div><div class='add'>+  # until io is writable for avoiding busy loop.</div><div class='add'>+  # This can be done as follows.</div><div class='add'>+  #</div><div class='add'>+  #   begin</div><div class='add'>+  #     result = io.write_nonblock(string)</div><div class='add'>+  #   rescue IO::WaitWritable, Errno::EINTR</div><div class='add'>+  #     IO.select(nil, [io])</div><div class='add'>+  #     retry</div><div class='add'>+  #   end</div><div class='add'>+  #</div><div class='add'>+  # Note that this doesn't guarantee to write all data in string.</div><div class='add'>+  # The length written is reported as result and it should be checked later.</div><div class='add'>+  #</div><div class='add'>+  # On some platforms such as Windows, write_nonblock is not supported</div><div class='add'>+  # according to the kind of the IO object.</div><div class='add'>+  # In such cases, write_nonblock raises &lt;code&gt;Errno::EBADF&lt;/code&gt;.</div><div class='add'>+  #</div><div class='add'>+  # By specifying a keyword argument _exception_ to +false+, you can indicate</div><div class='add'>+  # that write_nonblock should not raise an IO::WaitWritable exception, but</div><div class='add'>+  # return the symbol +:wait_writable+ instead.</div><div class='add'>+  def write_nonblock(buf, exception: true)</div><div class='add'>+    Primitive.io_write_nonblock(buf, exception)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/io_buffer.c b/io_buffer.c<br/>new file mode 100644<br/>index 0000000000..87b51c0b8c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/io_buffer.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>io_buffer.c</a></div><div class='hunk'>@@ -0,0 +1,3515 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  io_buffer.c</div><div class='add'>+</div><div class='add'>+  Copyright (C) 2021 Samuel Grant Dawson Williams</div><div class='add'>+</div><div class='add'>+**********************************************************************/</div><div class='add'>+</div><div class='add'>+#include "ruby/io.h"</div><div class='add'>+#include "ruby/io/buffer.h"</div><div class='add'>+#include "ruby/fiber/scheduler.h"</div><div class='add'>+</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/array.h"</div><div class='add'>+#include "internal/bits.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/numeric.h"</div><div class='add'>+#include "internal/string.h"</div><div class='add'>+#include "internal/thread.h"</div><div class='add'>+</div><div class='add'>+VALUE rb_cIOBuffer;</div><div class='add'>+VALUE rb_eIOBufferLockedError;</div><div class='add'>+VALUE rb_eIOBufferAllocationError;</div><div class='add'>+VALUE rb_eIOBufferAccessError;</div><div class='add'>+VALUE rb_eIOBufferInvalidatedError;</div><div class='add'>+VALUE rb_eIOBufferMaskError;</div><div class='add'>+</div><div class='add'>+size_t RUBY_IO_BUFFER_PAGE_SIZE;</div><div class='add'>+size_t RUBY_IO_BUFFER_DEFAULT_SIZE;</div><div class='add'>+</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+#else</div><div class='add'>+#include &lt;unistd.h&gt;</div><div class='add'>+#include &lt;sys/mman.h&gt;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct rb_io_buffer {</div><div class='add'>+    void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    enum rb_io_buffer_flags flags;</div><div class='add'>+</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+    HANDLE mapping;</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    VALUE source;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static inline void *</div><div class='add'>+io_buffer_map_memory(size_t size, int flags)</div><div class='add'>+{</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+    void * base = VirtualAlloc(0, size, MEM_COMMIT, PAGE_READWRITE);</div><div class='add'>+</div><div class='add'>+    if (!base) {</div><div class='add'>+        rb_sys_fail("io_buffer_map_memory:VirtualAlloc");</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    int mmap_flags = MAP_ANONYMOUS;</div><div class='add'>+    if (flags &amp; RB_IO_BUFFER_SHARED) {</div><div class='add'>+        mmap_flags |= MAP_SHARED;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        mmap_flags |= MAP_PRIVATE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    void * base = mmap(NULL, size, PROT_READ | PROT_WRITE, mmap_flags, -1, 0);</div><div class='add'>+</div><div class='add'>+    if (base == MAP_FAILED) {</div><div class='add'>+        rb_sys_fail("io_buffer_map_memory:mmap");</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return base;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_buffer_map_file(struct rb_io_buffer *buffer, int descriptor, size_t size, rb_off_t offset, enum rb_io_buffer_flags flags)</div><div class='add'>+{</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+    HANDLE file = (HANDLE)_get_osfhandle(descriptor);</div><div class='add'>+    if (!file) rb_sys_fail("io_buffer_map_descriptor:_get_osfhandle");</div><div class='add'>+</div><div class='add'>+    DWORD protect = PAGE_READONLY, access = FILE_MAP_READ;</div><div class='add'>+</div><div class='add'>+    if (flags &amp; RB_IO_BUFFER_READONLY) {</div><div class='add'>+        buffer-&gt;flags |= RB_IO_BUFFER_READONLY;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        protect = PAGE_READWRITE;</div><div class='add'>+        access = FILE_MAP_WRITE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    HANDLE mapping = CreateFileMapping(file, NULL, protect, 0, 0, NULL);</div><div class='add'>+    if (!mapping) rb_sys_fail("io_buffer_map_descriptor:CreateFileMapping");</div><div class='add'>+</div><div class='add'>+    if (flags &amp; RB_IO_BUFFER_PRIVATE) {</div><div class='add'>+        access |= FILE_MAP_COPY;</div><div class='add'>+        buffer-&gt;flags |= RB_IO_BUFFER_PRIVATE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        // This buffer refers to external buffer.</div><div class='add'>+        buffer-&gt;flags |= RB_IO_BUFFER_EXTERNAL;</div><div class='add'>+        buffer-&gt;flags |= RB_IO_BUFFER_SHARED;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    void *base = MapViewOfFile(mapping, access, (DWORD)(offset &gt;&gt; 32), (DWORD)(offset &amp; 0xFFFFFFFF), size);</div><div class='add'>+</div><div class='add'>+    if (!base) {</div><div class='add'>+        CloseHandle(mapping);</div><div class='add'>+        rb_sys_fail("io_buffer_map_file:MapViewOfFile");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    buffer-&gt;mapping = mapping;</div><div class='add'>+#else</div><div class='add'>+    int protect = PROT_READ, access = 0;</div><div class='add'>+</div><div class='add'>+    if (flags &amp; RB_IO_BUFFER_READONLY) {</div><div class='add'>+        buffer-&gt;flags |= RB_IO_BUFFER_READONLY;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        protect |= PROT_WRITE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (flags &amp; RB_IO_BUFFER_PRIVATE) {</div><div class='add'>+        buffer-&gt;flags |= RB_IO_BUFFER_PRIVATE;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        // This buffer refers to external buffer.</div><div class='add'>+        buffer-&gt;flags |= RB_IO_BUFFER_EXTERNAL;</div><div class='add'>+        buffer-&gt;flags |= RB_IO_BUFFER_SHARED;</div><div class='add'>+        access |= MAP_SHARED;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    void *base = mmap(NULL, size, protect, access, descriptor, offset);</div><div class='add'>+</div><div class='add'>+    if (base == MAP_FAILED) {</div><div class='add'>+        rb_sys_fail("io_buffer_map_file:mmap");</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    buffer-&gt;base = base;</div><div class='add'>+    buffer-&gt;size = size;</div><div class='add'>+</div><div class='add'>+    buffer-&gt;flags |= RB_IO_BUFFER_MAPPED;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+io_buffer_unmap(void* base, size_t size)</div><div class='add'>+{</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    VirtualFree(base, 0, MEM_RELEASE);</div><div class='add'>+#else</div><div class='add'>+    munmap(base, size);</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_buffer_experimental(void)</div><div class='add'>+{</div><div class='add'>+    static int warned = 0;</div><div class='add'>+</div><div class='add'>+    if (warned) return;</div><div class='add'>+</div><div class='add'>+    warned = 1;</div><div class='add'>+</div><div class='add'>+    if (rb_warning_category_enabled_p(RB_WARN_CATEGORY_EXPERIMENTAL)) {</div><div class='add'>+        rb_category_warn(RB_WARN_CATEGORY_EXPERIMENTAL,</div><div class='add'>+          "IO::Buffer is experimental and both the Ruby and C interface may change in the future!"</div><div class='add'>+        );</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_buffer_zero(struct rb_io_buffer *buffer)</div><div class='add'>+{</div><div class='add'>+    buffer-&gt;base = NULL;</div><div class='add'>+    buffer-&gt;size = 0;</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+    buffer-&gt;mapping = NULL;</div><div class='add'>+#endif</div><div class='add'>+    buffer-&gt;source = Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_buffer_initialize(struct rb_io_buffer *buffer, void *base, size_t size, enum rb_io_buffer_flags flags, VALUE source)</div><div class='add'>+{</div><div class='add'>+    if (base) {</div><div class='add'>+        // If we are provided a pointer, we use it.</div><div class='add'>+    }</div><div class='add'>+    else if (size) {</div><div class='add'>+        // If we are provided a non-zero size, we allocate it:</div><div class='add'>+        if (flags &amp; RB_IO_BUFFER_INTERNAL) {</div><div class='add'>+            base = calloc(size, 1);</div><div class='add'>+        }</div><div class='add'>+        else if (flags &amp; RB_IO_BUFFER_MAPPED) {</div><div class='add'>+            base = io_buffer_map_memory(size, flags);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (!base) {</div><div class='add'>+            rb_raise(rb_eIOBufferAllocationError, "Could not allocate buffer!");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        // Otherwise we don't do anything.</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    buffer-&gt;base = base;</div><div class='add'>+    buffer-&gt;size = size;</div><div class='add'>+    buffer-&gt;flags = flags;</div><div class='add'>+    buffer-&gt;source = source;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+io_buffer_free(struct rb_io_buffer *buffer)</div><div class='add'>+{</div><div class='add'>+    if (buffer-&gt;base) {</div><div class='add'>+        if (buffer-&gt;flags &amp; RB_IO_BUFFER_INTERNAL) {</div><div class='add'>+            free(buffer-&gt;base);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (buffer-&gt;flags &amp; RB_IO_BUFFER_MAPPED) {</div><div class='add'>+            io_buffer_unmap(buffer-&gt;base, buffer-&gt;size);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // Previously we had this, but we found out due to the way GC works, we</div><div class='add'>+        // can't refer to any other Ruby objects here.</div><div class='add'>+        // if (RB_TYPE_P(buffer-&gt;source, T_STRING)) {</div><div class='add'>+        //     rb_str_unlocktmp(buffer-&gt;source);</div><div class='add'>+        // }</div><div class='add'>+</div><div class='add'>+        buffer-&gt;base = NULL;</div><div class='add'>+</div><div class='add'>+#if defined(_WIN32)</div><div class='add'>+        if (buffer-&gt;mapping) {</div><div class='add'>+            CloseHandle(buffer-&gt;mapping);</div><div class='add'>+            buffer-&gt;mapping = NULL;</div><div class='add'>+        }</div><div class='add'>+#endif</div><div class='add'>+        buffer-&gt;size = 0;</div><div class='add'>+        buffer-&gt;flags = 0;</div><div class='add'>+        buffer-&gt;source = Qnil;</div><div class='add'>+</div><div class='add'>+        return 1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_io_buffer_type_mark(void *_buffer)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = _buffer;</div><div class='add'>+    rb_gc_mark(buffer-&gt;source);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_io_buffer_type_free(void *_buffer)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = _buffer;</div><div class='add'>+</div><div class='add'>+    io_buffer_free(buffer);</div><div class='add'>+</div><div class='add'>+    free(buffer);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+size_t</div><div class='add'>+rb_io_buffer_type_size(const void *_buffer)</div><div class='add'>+{</div><div class='add'>+    const struct rb_io_buffer *buffer = _buffer;</div><div class='add'>+    size_t total = sizeof(struct rb_io_buffer);</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags) {</div><div class='add'>+        total += buffer-&gt;size;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return total;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const rb_data_type_t rb_io_buffer_type = {</div><div class='add'>+    .wrap_struct_name = "IO::Buffer",</div><div class='add'>+    .function = {</div><div class='add'>+        .dmark = rb_io_buffer_type_mark,</div><div class='add'>+        .dfree = rb_io_buffer_type_free,</div><div class='add'>+        .dsize = rb_io_buffer_type_size,</div><div class='add'>+    },</div><div class='add'>+    .data = NULL,</div><div class='add'>+    .flags = RUBY_TYPED_FREE_IMMEDIATELY,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+// Extract an offset argument, which must be a positive integer.</div><div class='add'>+static inline size_t</div><div class='add'>+io_buffer_extract_offset(VALUE argument)</div><div class='add'>+{</div><div class='add'>+    if (rb_int_negative_p(argument)) {</div><div class='add'>+        rb_raise(rb_eArgError, "Offset can't be negative!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return NUM2SIZET(argument);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Extract a length argument, which must be a positive integer.</div><div class='add'>+// Length is generally considered a mutable property of an object and</div><div class='add'>+// semantically should be considered a subset of "size" as a concept.</div><div class='add'>+static inline size_t</div><div class='add'>+io_buffer_extract_length(VALUE argument)</div><div class='add'>+{</div><div class='add'>+    if (rb_int_negative_p(argument)) {</div><div class='add'>+        rb_raise(rb_eArgError, "Length can't be negative!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return NUM2SIZET(argument);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Extract a size argument, which must be a positive integer.</div><div class='add'>+// Size is generally considered an immutable property of an object.</div><div class='add'>+static inline size_t</div><div class='add'>+io_buffer_extract_size(VALUE argument)</div><div class='add'>+{</div><div class='add'>+    if (rb_int_negative_p(argument)) {</div><div class='add'>+        rb_raise(rb_eArgError, "Size can't be negative!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return NUM2SIZET(argument);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Compute the default length for a buffer, given an offset into that buffer.</div><div class='add'>+// The default length is the size of the buffer minus the offset. The offset</div><div class='add'>+// must be less than the size of the buffer otherwise the length will be</div><div class='add'>+// invalid; in that case, an ArgumentError exception will be raised.</div><div class='add'>+static inline size_t</div><div class='add'>+io_buffer_default_length(const struct rb_io_buffer *buffer, size_t offset)</div><div class='add'>+{</div><div class='add'>+    if (offset &gt; buffer-&gt;size) {</div><div class='add'>+        rb_raise(rb_eArgError, "The given offset is bigger than the buffer size!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // Note that the "length" is computed by the size the offset.</div><div class='add'>+    return buffer-&gt;size - offset;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Extract the optional length and offset arguments, returning the buffer.</div><div class='add'>+// The length and offset are optional, but if they are provided, they must be</div><div class='add'>+// positive integers. If the length is not provided, the default length is</div><div class='add'>+// computed from the buffer size and offset. If the offset is not provided, it</div><div class='add'>+// defaults to zero.</div><div class='add'>+static inline struct rb_io_buffer *</div><div class='add'>+io_buffer_extract_length_offset(VALUE self, int argc, VALUE argv[], size_t *length, size_t *offset)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    if (argc &gt;= 2) {</div><div class='add'>+        *offset = io_buffer_extract_offset(argv[1]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        *offset = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (argc &gt;= 1 &amp;&amp; !NIL_P(argv[0])) {</div><div class='add'>+        *length = io_buffer_extract_length(argv[0]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        *length = io_buffer_default_length(buffer, *offset);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return buffer;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Extract the optional offset and length arguments, returning the buffer.</div><div class='add'>+// Similar to `io_buffer_extract_length_offset` but with the order of</div><div class='add'>+// arguments reversed.</div><div class='add'>+static inline struct rb_io_buffer *</div><div class='add'>+io_buffer_extract_offset_length(VALUE self, int argc, VALUE argv[], size_t *offset, size_t *length)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    if (argc &gt;= 1) {</div><div class='add'>+        *offset = io_buffer_extract_offset(argv[0]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        *offset = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (argc &gt;= 2) {</div><div class='add'>+        *length = io_buffer_extract_length(argv[1]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        *length = io_buffer_default_length(buffer, *offset);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return buffer;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_type_allocate(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    VALUE instance = TypedData_Make_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_zero(buffer);</div><div class='add'>+</div><div class='add'>+    return instance;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE io_buffer_for_make_instance(VALUE klass, VALUE string, enum rb_io_buffer_flags flags)</div><div class='add'>+{</div><div class='add'>+    VALUE instance = rb_io_buffer_type_allocate(klass);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(instance, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    flags |= RB_IO_BUFFER_EXTERNAL;</div><div class='add'>+</div><div class='add'>+    if (RB_OBJ_FROZEN(string))</div><div class='add'>+        flags |= RB_IO_BUFFER_READONLY;</div><div class='add'>+</div><div class='add'>+    if (!(flags &amp; RB_IO_BUFFER_READONLY))</div><div class='add'>+        rb_str_modify(string);</div><div class='add'>+</div><div class='add'>+    io_buffer_initialize(buffer, RSTRING_PTR(string), RSTRING_LEN(string), flags, string);</div><div class='add'>+</div><div class='add'>+    return instance;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct io_buffer_for_yield_instance_arguments {</div><div class='add'>+    VALUE klass;</div><div class='add'>+    VALUE string;</div><div class='add'>+    VALUE instance;</div><div class='add'>+    enum rb_io_buffer_flags flags;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_for_yield_instance(VALUE _arguments)</div><div class='add'>+{</div><div class='add'>+    struct io_buffer_for_yield_instance_arguments *arguments = (struct io_buffer_for_yield_instance_arguments *)_arguments;</div><div class='add'>+</div><div class='add'>+    arguments-&gt;instance = io_buffer_for_make_instance(arguments-&gt;klass, arguments-&gt;string, arguments-&gt;flags);</div><div class='add'>+</div><div class='add'>+    rb_str_locktmp(arguments-&gt;string);</div><div class='add'>+</div><div class='add'>+    return rb_yield(arguments-&gt;instance);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_for_yield_instance_ensure(VALUE _arguments)</div><div class='add'>+{</div><div class='add'>+    struct io_buffer_for_yield_instance_arguments *arguments = (struct io_buffer_for_yield_instance_arguments *)_arguments;</div><div class='add'>+</div><div class='add'>+    if (arguments-&gt;instance != Qnil) {</div><div class='add'>+        rb_io_buffer_free(arguments-&gt;instance);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_str_unlocktmp(arguments-&gt;string);</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    IO::Buffer.for(string) -&gt; readonly io_buffer</div><div class='add'>+ *    IO::Buffer.for(string) {|io_buffer| ... read/write io_buffer ...}</div><div class='add'>+ *</div><div class='add'>+ *  Creates a IO::Buffer from the given string's memory. Without a block a</div><div class='add'>+ *  frozen internal copy of the string is created efficiently and used as the</div><div class='add'>+ *  buffer source. When a block is provided, the buffer is associated directly</div><div class='add'>+ *  with the string's internal buffer and updating the buffer will update the</div><div class='add'>+ *  string.</div><div class='add'>+ *</div><div class='add'>+ *  Until #free is invoked on the buffer, either explicitly or via the garbage</div><div class='add'>+ *  collector, the source string will be locked and cannot be modified.</div><div class='add'>+ *</div><div class='add'>+ *  If the string is frozen, it will create a read-only buffer which cannot be</div><div class='add'>+ *  modified. If the string is shared, it may trigger a copy-on-write when</div><div class='add'>+ *  using the block form.</div><div class='add'>+ *</div><div class='add'>+ *    string = 'test'</div><div class='add'>+ *    buffer = IO::Buffer.for(string)</div><div class='add'>+ *    buffer.external? #=&gt; true</div><div class='add'>+ *</div><div class='add'>+ *    buffer.get_string(0, 1)</div><div class='add'>+ *    # =&gt; "t"</div><div class='add'>+ *    string</div><div class='add'>+ *    # =&gt; "best"</div><div class='add'>+ *</div><div class='add'>+ *    buffer.resize(100)</div><div class='add'>+ *    # in `resize': Cannot resize external buffer! (IO::Buffer::AccessError)</div><div class='add'>+ *</div><div class='add'>+ *    IO::Buffer.for(string) do |buffer|</div><div class='add'>+ *      buffer.set_string("T")</div><div class='add'>+ *      string</div><div class='add'>+ *      # =&gt; "Test"</div><div class='add'>+ *    end</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_type_for(VALUE klass, VALUE string)</div><div class='add'>+{</div><div class='add'>+    StringValue(string);</div><div class='add'>+</div><div class='add'>+    // If the string is frozen, both code paths are okay.</div><div class='add'>+    // If the string is not frozen, if a block is not given, it must be frozen.</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+        struct io_buffer_for_yield_instance_arguments arguments = {</div><div class='add'>+            .klass = klass,</div><div class='add'>+            .string = string,</div><div class='add'>+            .instance = Qnil,</div><div class='add'>+            .flags = 0,</div><div class='add'>+        };</div><div class='add'>+</div><div class='add'>+        return rb_ensure(io_buffer_for_yield_instance, (VALUE)&amp;arguments, io_buffer_for_yield_instance_ensure, (VALUE)&amp;arguments);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        // This internally returns the source string if it's already frozen.</div><div class='add'>+        string = rb_str_tmp_frozen_acquire(string);</div><div class='add'>+        return io_buffer_for_make_instance(klass, string, RB_IO_BUFFER_READONLY);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_new(void *base, size_t size, enum rb_io_buffer_flags flags)</div><div class='add'>+{</div><div class='add'>+    VALUE instance = rb_io_buffer_type_allocate(rb_cIOBuffer);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(instance, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_initialize(buffer, base, size, flags, Qnil);</div><div class='add'>+</div><div class='add'>+    return instance;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_map(VALUE io, size_t size, rb_off_t offset, enum rb_io_buffer_flags flags)</div><div class='add'>+{</div><div class='add'>+    io_buffer_experimental();</div><div class='add'>+</div><div class='add'>+    VALUE instance = rb_io_buffer_type_allocate(rb_cIOBuffer);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(instance, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    int descriptor = rb_io_descriptor(io);</div><div class='add'>+</div><div class='add'>+    io_buffer_map_file(buffer, descriptor, size, offset, flags);</div><div class='add'>+</div><div class='add'>+    return instance;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: IO::Buffer.map(file, [size, [offset, [flags]]]) -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Create an IO::Buffer for reading from +file+ by memory-mapping the file.</div><div class='add'>+ *  +file_io+ should be a +File+ instance, opened for reading.</div><div class='add'>+ *</div><div class='add'>+ *  Optional +size+ and +offset+ of mapping can be specified.</div><div class='add'>+ *</div><div class='add'>+ *  By default, the buffer would be immutable (read only); to create a writable</div><div class='add'>+ *  mapping, you need to open a file in read-write mode, and explicitly pass</div><div class='add'>+ *  +flags+ argument without IO::Buffer::IMMUTABLE.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    File.write('test.txt', 'test')</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.map(File.open('test.txt'), nil, 0, IO::Buffer::READONLY)</div><div class='add'>+ *    # =&gt; #&lt;IO::Buffer 0x00000001014a0000+4 MAPPED READONLY&gt;</div><div class='add'>+ *</div><div class='add'>+ *    buffer.readonly?   # =&gt; true</div><div class='add'>+ *</div><div class='add'>+ *    buffer.get_string</div><div class='add'>+ *    # =&gt; "test"</div><div class='add'>+ *</div><div class='add'>+ *    buffer.set_string('b', 0)</div><div class='add'>+ *    # `set_string': Buffer is not writable! (IO::Buffer::AccessError)</div><div class='add'>+ *</div><div class='add'>+ *    # create read/write mapping: length 4 bytes, offset 0, flags 0</div><div class='add'>+ *    buffer = IO::Buffer.map(File.open('test.txt', 'r+'), 4, 0)</div><div class='add'>+ *    buffer.set_string('b', 0)</div><div class='add'>+ *    # =&gt; 1</div><div class='add'>+ *</div><div class='add'>+ *    # Check it</div><div class='add'>+ *    File.read('test.txt')</div><div class='add'>+ *    # =&gt; "best"</div><div class='add'>+ *</div><div class='add'>+ *  Note that some operating systems may not have cache coherency between mapped</div><div class='add'>+ *  buffers and file reads.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_map(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 1, 4);</div><div class='add'>+</div><div class='add'>+    // We might like to handle a string path?</div><div class='add'>+    VALUE io = argv[0];</div><div class='add'>+</div><div class='add'>+    size_t size;</div><div class='add'>+    if (argc &gt;= 2 &amp;&amp; !RB_NIL_P(argv[1])) {</div><div class='add'>+        size = io_buffer_extract_size(argv[1]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_off_t file_size = rb_file_size(io);</div><div class='add'>+</div><div class='add'>+        // Compiler can confirm that we handled file_size &lt; 0 case:</div><div class='add'>+        if (file_size &lt; 0) {</div><div class='add'>+            rb_raise(rb_eArgError, "Invalid negative file size!");</div><div class='add'>+        }</div><div class='add'>+        // Here, we assume that file_size is positive:</div><div class='add'>+        else if ((uintmax_t)file_size &gt; SIZE_MAX) {</div><div class='add'>+            rb_raise(rb_eArgError, "File larger than address space!");</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            // This conversion should be safe:</div><div class='add'>+            size = (size_t)file_size;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // This is the file offset, not the buffer offset:</div><div class='add'>+    rb_off_t offset = 0;</div><div class='add'>+    if (argc &gt;= 3) {</div><div class='add'>+        offset = NUM2OFFT(argv[2]);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    enum rb_io_buffer_flags flags = 0;</div><div class='add'>+    if (argc &gt;= 4) {</div><div class='add'>+        flags = RB_NUM2UINT(argv[3]);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return rb_io_buffer_map(io, size, offset, flags);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Compute the optimal allocation flags for a buffer of the given size.</div><div class='add'>+static inline enum rb_io_buffer_flags</div><div class='add'>+io_flags_for_size(size_t size)</div><div class='add'>+{</div><div class='add'>+    if (size &gt;= RUBY_IO_BUFFER_PAGE_SIZE) {</div><div class='add'>+        return RB_IO_BUFFER_MAPPED;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return RB_IO_BUFFER_INTERNAL;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: IO::Buffer.new([size = DEFAULT_SIZE, [flags = 0]]) -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Create a new zero-filled IO::Buffer of +size+ bytes.</div><div class='add'>+ *  By default, the buffer will be _internal_: directly allocated chunk</div><div class='add'>+ *  of the memory. But if the requested +size+ is more than OS-specific</div><div class='add'>+ *  IO::Buffer::PAGE_SIZE, the buffer would be allocated using the</div><div class='add'>+ *  virtual memory mechanism (anonymous +mmap+ on Unix, +VirtualAlloc+</div><div class='add'>+ *  on Windows). The behavior can be forced by passing IO::Buffer::MAPPED</div><div class='add'>+ *  as a second parameter.</div><div class='add'>+ *</div><div class='add'>+ *  Examples</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.new(4)</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000055b34497ea10+4 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  00 00 00 00                                     ....</div><div class='add'>+ *</div><div class='add'>+ *    buffer.get_string(0, 1) # =&gt; "\x00"</div><div class='add'>+ *</div><div class='add'>+ *    buffer.set_string("test")</div><div class='add'>+ *    buffer</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000055b34497ea10+4 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  74 65 73 74                                     test</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_initialize(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    io_buffer_experimental();</div><div class='add'>+</div><div class='add'>+    rb_check_arity(argc, 0, 2);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    size_t size;</div><div class='add'>+    if (argc &gt; 0) {</div><div class='add'>+        size = io_buffer_extract_size(argv[0]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        size = RUBY_IO_BUFFER_DEFAULT_SIZE;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    enum rb_io_buffer_flags flags = 0;</div><div class='add'>+    if (argc &gt;= 2) {</div><div class='add'>+        flags = RB_NUM2UINT(argv[1]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        flags |= io_flags_for_size(size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    io_buffer_initialize(buffer, NULL, size, flags, Qnil);</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+io_buffer_validate_slice(VALUE source, void *base, size_t size)</div><div class='add'>+{</div><div class='add'>+    void *source_base = NULL;</div><div class='add'>+    size_t source_size = 0;</div><div class='add'>+</div><div class='add'>+    if (RB_TYPE_P(source, T_STRING)) {</div><div class='add'>+        RSTRING_GETMEM(source, source_base, source_size);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        rb_io_buffer_get_bytes(source, &amp;source_base, &amp;source_size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // Source is invalid:</div><div class='add'>+    if (source_base == NULL) return 0;</div><div class='add'>+</div><div class='add'>+    // Base is out of range:</div><div class='add'>+    if (base &lt; source_base) return 0;</div><div class='add'>+</div><div class='add'>+    const void *source_end = (char*)source_base + source_size;</div><div class='add'>+    const void *end = (char*)base + size;</div><div class='add'>+</div><div class='add'>+    // End is out of range:</div><div class='add'>+    if (end &gt; source_end) return 0;</div><div class='add'>+</div><div class='add'>+    // It seems okay:</div><div class='add'>+    return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+io_buffer_validate(struct rb_io_buffer *buffer)</div><div class='add'>+{</div><div class='add'>+    if (buffer-&gt;source != Qnil) {</div><div class='add'>+        // Only slices incur this overhead, unfortunately... better safe than sorry!</div><div class='add'>+        return io_buffer_validate_slice(buffer-&gt;source, buffer-&gt;base, buffer-&gt;size);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return 1;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: to_s -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Short representation of the buffer. It includes the address, size and</div><div class='add'>+ *  symbolic flags. This format is subject to change.</div><div class='add'>+ *</div><div class='add'>+ *    puts IO::Buffer.new(4) # uses to_s internally</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000055769f41b1a0+4 INTERNAL&gt;</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_to_s(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    VALUE result = rb_str_new_cstr("#&lt;");</div><div class='add'>+</div><div class='add'>+    rb_str_append(result, rb_class_name(CLASS_OF(self)));</div><div class='add'>+    rb_str_catf(result, " %p+%"PRIdSIZE, buffer-&gt;base, buffer-&gt;size);</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;base == NULL) {</div><div class='add'>+        rb_str_cat2(result, " NULL");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_EXTERNAL) {</div><div class='add'>+        rb_str_cat2(result, " EXTERNAL");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_INTERNAL) {</div><div class='add'>+        rb_str_cat2(result, " INTERNAL");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_MAPPED) {</div><div class='add'>+        rb_str_cat2(result, " MAPPED");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_SHARED) {</div><div class='add'>+        rb_str_cat2(result, " SHARED");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_LOCKED) {</div><div class='add'>+        rb_str_cat2(result, " LOCKED");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_READONLY) {</div><div class='add'>+        rb_str_cat2(result, " READONLY");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;source != Qnil) {</div><div class='add'>+        rb_str_cat2(result, " SLICE");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!io_buffer_validate(buffer)) {</div><div class='add'>+        rb_str_cat2(result, " INVALID");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return rb_str_cat2(result, "&gt;");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_hexdump(VALUE string, size_t width, char *base, size_t size, int first)</div><div class='add'>+{</div><div class='add'>+    char *text = alloca(width+1);</div><div class='add'>+    text[width] = '\0';</div><div class='add'>+</div><div class='add'>+    for (size_t offset = 0; offset &lt; size; offset += width) {</div><div class='add'>+        memset(text, '\0', width);</div><div class='add'>+        if (first) {</div><div class='add'>+            rb_str_catf(string, "0x%08" PRIxSIZE " ", offset);</div><div class='add'>+            first = 0;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_str_catf(string, "\n0x%08" PRIxSIZE " ", offset);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        for (size_t i = 0; i &lt; width; i += 1) {</div><div class='add'>+            if (offset+i &lt; size) {</div><div class='add'>+                unsigned char value = ((unsigned char*)base)[offset+i];</div><div class='add'>+</div><div class='add'>+                if (value &lt; 127 &amp;&amp; isprint(value)) {</div><div class='add'>+                    text[i] = (char)value;</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    text[i] = '.';</div><div class='add'>+                }</div><div class='add'>+</div><div class='add'>+                rb_str_catf(string, " %02x", value);</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                rb_str_cat2(string, "   ");</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        rb_str_catf(string, " %s", text);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return string;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_hexdump(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    VALUE result = Qnil;</div><div class='add'>+</div><div class='add'>+    if (io_buffer_validate(buffer) &amp;&amp; buffer-&gt;base) {</div><div class='add'>+        result = rb_str_buf_new(buffer-&gt;size*3 + (buffer-&gt;size/16)*12 + 1);</div><div class='add'>+</div><div class='add'>+        io_buffer_hexdump(result, 16, buffer-&gt;base, buffer-&gt;size, 1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_inspect(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    VALUE result = rb_io_buffer_to_s(self);</div><div class='add'>+</div><div class='add'>+    if (io_buffer_validate(buffer)) {</div><div class='add'>+        // Limit the maximum size generated by inspect.</div><div class='add'>+        if (buffer-&gt;size &lt;= 256) {</div><div class='add'>+            io_buffer_hexdump(result, 16, buffer-&gt;base, buffer-&gt;size, 0);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: size -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns the size of the buffer that was explicitly set (on creation with ::new</div><div class='add'>+ *  or on #resize), or deduced on buffer's creation from string or file.</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_size(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    return SIZET2NUM(buffer-&gt;size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: valid? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns whether the buffer buffer is accessible.</div><div class='add'>+ *</div><div class='add'>+ *  A buffer becomes invalid if it is a slice of another buffer which has been</div><div class='add'>+ *  freed.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_valid_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    return RBOOL(io_buffer_validate(buffer));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: null? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  If the buffer was freed with #free or was never allocated in the first</div><div class='add'>+ *  place.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_null_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    return RBOOL(buffer-&gt;base == NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: empty? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  If the buffer has 0 size: it is created by ::new with size 0, or with ::for</div><div class='add'>+ *  from an empty string. (Note that empty files can't be mapped, so the buffer</div><div class='add'>+ *  created with ::map will never be empty.)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_empty_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    return RBOOL(buffer-&gt;size == 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: external? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  The buffer is _external_ if it references the memory which is not</div><div class='add'>+ *  allocated or mapped by the buffer itself.</div><div class='add'>+ *</div><div class='add'>+ *  A buffer created using ::for has an external reference to the string's</div><div class='add'>+ *  memory.</div><div class='add'>+ *</div><div class='add'>+ *  External buffer can't be resized.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_external_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    return RBOOL(buffer-&gt;flags &amp; RB_IO_BUFFER_EXTERNAL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: internal? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  If the buffer is _internal_, meaning it references memory allocated by the</div><div class='add'>+ *  buffer itself.</div><div class='add'>+ *</div><div class='add'>+ *  An internal buffer is not associated with any external memory (e.g. string)</div><div class='add'>+ *  or file mapping.</div><div class='add'>+ *</div><div class='add'>+ *  Internal buffers are created using ::new and is the default when the</div><div class='add'>+ *  requested size is less than the IO::Buffer::PAGE_SIZE and it was not</div><div class='add'>+ *  requested to be mapped on creation.</div><div class='add'>+ *</div><div class='add'>+ *  Internal buffers can be resized, and such an operation will typically</div><div class='add'>+ *  invalidate all slices, but not always.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_internal_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    return RBOOL(buffer-&gt;flags &amp; RB_IO_BUFFER_INTERNAL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: mapped? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  If the buffer is _mapped_, meaning it references memory mapped by the</div><div class='add'>+ *  buffer.</div><div class='add'>+ *</div><div class='add'>+ *  Mapped buffers are either anonymous, if created by ::new with the</div><div class='add'>+ *  IO::Buffer::MAPPED flag or if the size was at least IO::Buffer::PAGE_SIZE,</div><div class='add'>+ *  or backed by a file if created with ::map.</div><div class='add'>+ *</div><div class='add'>+ *  Mapped buffers can usually be resized, and such an operation will typically</div><div class='add'>+ *  invalidate all slices, but not always.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_mapped_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    return RBOOL(buffer-&gt;flags &amp; RB_IO_BUFFER_MAPPED);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: shared? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  If the buffer is _shared_, meaning it references memory that can be shared</div><div class='add'>+ *  with other processes (and thus might change without being modified</div><div class='add'>+ *  locally).</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_shared_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    return RBOOL(buffer-&gt;flags &amp; RB_IO_BUFFER_SHARED);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: locked? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  If the buffer is _locked_, meaning it is inside #locked block execution.</div><div class='add'>+ *  Locked buffer can't be resized or freed, and another lock can't be acquired</div><div class='add'>+ *  on it.</div><div class='add'>+ *</div><div class='add'>+ *  Locking is not thread safe, but is a semantic used to ensure buffers don't</div><div class='add'>+ *  move while being used by a system call.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    buffer.locked do</div><div class='add'>+ *      buffer.write(io) # theoretical system call interface</div><div class='add'>+ *    end</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_locked_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    return RBOOL(buffer-&gt;flags &amp; RB_IO_BUFFER_LOCKED);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_io_buffer_readonly_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    return buffer-&gt;flags &amp; RB_IO_BUFFER_READONLY;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: readonly? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  If the buffer is &lt;i&gt;read only&lt;/i&gt;, meaning the buffer cannot be modified using</div><div class='add'>+ *  #set_value, #set_string or #copy and similar.</div><div class='add'>+ *</div><div class='add'>+ *  Frozen strings and read-only files create read-only buffers.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_readonly_p(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return RBOOL(rb_io_buffer_readonly_p(self));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_buffer_lock(struct rb_io_buffer *buffer)</div><div class='add'>+{</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_LOCKED) {</div><div class='add'>+        rb_raise(rb_eIOBufferLockedError, "Buffer already locked!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    buffer-&gt;flags |= RB_IO_BUFFER_LOCKED;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_lock(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_lock(buffer);</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_buffer_unlock(struct rb_io_buffer *buffer)</div><div class='add'>+{</div><div class='add'>+    if (!(buffer-&gt;flags &amp; RB_IO_BUFFER_LOCKED)) {</div><div class='add'>+        rb_raise(rb_eIOBufferLockedError, "Buffer not locked!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    buffer-&gt;flags &amp;= ~RB_IO_BUFFER_LOCKED;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_unlock(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_unlock(buffer);</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_io_buffer_try_unlock(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_LOCKED) {</div><div class='add'>+        buffer-&gt;flags &amp;= ~RB_IO_BUFFER_LOCKED;</div><div class='add'>+        return 1;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: locked { ... }</div><div class='add'>+ *</div><div class='add'>+ *  Allows to process a buffer in exclusive way, for concurrency-safety. While</div><div class='add'>+ *  the block is performed, the buffer is considered locked, and no other code</div><div class='add'>+ *  can enter the lock. Also, locked buffer can't be changed with #resize or</div><div class='add'>+ *  #free.</div><div class='add'>+ *</div><div class='add'>+ *  The following operations acquire a lock: #resize, #free.</div><div class='add'>+ *</div><div class='add'>+ *  Locking is not thread safe. It is designed as a safety net around</div><div class='add'>+ *  non-blocking system calls. You can only share a buffer between threads with</div><div class='add'>+ *  appropriate synchronisation techniques.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.new(4)</div><div class='add'>+ *    buffer.locked? #=&gt; false</div><div class='add'>+ *</div><div class='add'>+ *    Fiber.schedule do</div><div class='add'>+ *      buffer.locked do</div><div class='add'>+ *        buffer.write(io) # theoretical system call interface</div><div class='add'>+ *      end</div><div class='add'>+ *    end</div><div class='add'>+ *</div><div class='add'>+ *    Fiber.schedule do</div><div class='add'>+ *      # in `locked': Buffer already locked! (IO::Buffer::LockedError)</div><div class='add'>+ *      buffer.locked do</div><div class='add'>+ *        buffer.set_string("test", 0)</div><div class='add'>+ *      end</div><div class='add'>+ *    end</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_locked(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_LOCKED) {</div><div class='add'>+        rb_raise(rb_eIOBufferLockedError, "Buffer already locked!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    buffer-&gt;flags |= RB_IO_BUFFER_LOCKED;</div><div class='add'>+</div><div class='add'>+    VALUE result = rb_yield(self);</div><div class='add'>+</div><div class='add'>+    buffer-&gt;flags &amp;= ~RB_IO_BUFFER_LOCKED;</div><div class='add'>+</div><div class='add'>+    return result;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: free -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  If the buffer references memory, release it back to the operating system.</div><div class='add'>+ *  * for a _mapped_ buffer (e.g. from file): unmap.</div><div class='add'>+ *  * for a buffer created from scratch: free memory.</div><div class='add'>+ *  * for a buffer created from string: undo the association.</div><div class='add'>+ *</div><div class='add'>+ *  After the buffer is freed, no further operations can't be performed on it.</div><div class='add'>+ *</div><div class='add'>+ *  You can resize a freed buffer to re-allocate it.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.for('test')</div><div class='add'>+ *    buffer.free</div><div class='add'>+ *    # =&gt; #&lt;IO::Buffer 0x0000000000000000+0 NULL&gt;</div><div class='add'>+ *</div><div class='add'>+ *    buffer.get_value(:U8, 0)</div><div class='add'>+ *    # in `get_value': The buffer is not allocated! (IO::Buffer::AllocationError)</div><div class='add'>+ *</div><div class='add'>+ *    buffer.get_string</div><div class='add'>+ *    # in `get_string': The buffer is not allocated! (IO::Buffer::AllocationError)</div><div class='add'>+ *</div><div class='add'>+ *    buffer.null?</div><div class='add'>+ *    # =&gt; true</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_free(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_LOCKED) {</div><div class='add'>+        rb_raise(rb_eIOBufferLockedError, "Buffer is locked!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    io_buffer_free(buffer);</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Validate that access to the buffer is within bounds, assuming you want to</div><div class='add'>+// access length bytes from the specified offset.</div><div class='add'>+static inline void</div><div class='add'>+io_buffer_validate_range(struct rb_io_buffer *buffer, size_t offset, size_t length)</div><div class='add'>+{</div><div class='add'>+    // We assume here that offset + length won't overflow:</div><div class='add'>+    if (offset + length &gt; buffer-&gt;size) {</div><div class='add'>+        rb_raise(rb_eArgError, "Specified offset+length is bigger than the buffer size!");</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_slice(struct rb_io_buffer *buffer, VALUE self, size_t offset, size_t length)</div><div class='add'>+{</div><div class='add'>+    io_buffer_validate_range(buffer, offset, length);</div><div class='add'>+</div><div class='add'>+    VALUE instance = rb_io_buffer_type_allocate(rb_class_of(self));</div><div class='add'>+    struct rb_io_buffer *slice = NULL;</div><div class='add'>+    TypedData_Get_Struct(instance, struct rb_io_buffer, &amp;rb_io_buffer_type, slice);</div><div class='add'>+</div><div class='add'>+    slice-&gt;flags |= (buffer-&gt;flags &amp; RB_IO_BUFFER_READONLY);</div><div class='add'>+    slice-&gt;base = (char*)buffer-&gt;base + offset;</div><div class='add'>+    slice-&gt;size = length;</div><div class='add'>+</div><div class='add'>+    // The source should be the root buffer:</div><div class='add'>+    if (buffer-&gt;source != Qnil)</div><div class='add'>+        slice-&gt;source = buffer-&gt;source;</div><div class='add'>+    else</div><div class='add'>+        slice-&gt;source = self;</div><div class='add'>+</div><div class='add'>+    return instance;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: slice([offset, [length]]) -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Produce another IO::Buffer which is a slice (or view into) the current one</div><div class='add'>+ *  starting at +offset+ bytes and going for +length+ bytes.</div><div class='add'>+ *</div><div class='add'>+ *  The slicing happens without copying of memory, and the slice keeps being</div><div class='add'>+ *  associated with the original buffer's source (string, or file), if any.</div><div class='add'>+ *</div><div class='add'>+ *  If the offset is not given, it will be zero. If the offset is negative, it</div><div class='add'>+ *  will raise an ArgumentError.</div><div class='add'>+ *</div><div class='add'>+ *  If the length is not given, the slice will be as long as the original</div><div class='add'>+ *  buffer minus the specified offset. If the length is negative, it will raise</div><div class='add'>+ *  an ArgumentError.</div><div class='add'>+ *</div><div class='add'>+ *  Raises RuntimeError if the &lt;tt&gt;offset+length&lt;/tt&gt; is out of the current</div><div class='add'>+ *  buffer's bounds.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    string = 'test'</div><div class='add'>+ *    buffer = IO::Buffer.for(string)</div><div class='add'>+ *</div><div class='add'>+ *    slice = buffer.slice</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000000108338e68+4 SLICE&gt;</div><div class='add'>+ *    # 0x00000000  74 65 73 74                                     test</div><div class='add'>+ *</div><div class='add'>+ *    buffer.slice(2)</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000000108338e6a+2 SLICE&gt;</div><div class='add'>+ *    # 0x00000000  73 74                                           st</div><div class='add'>+ *</div><div class='add'>+ *    slice = buffer.slice(1, 2)</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x00007fc3d34ebc49+2 SLICE&gt;</div><div class='add'>+ *    # 0x00000000  65 73                                           es</div><div class='add'>+ *</div><div class='add'>+ *    # Put "o" into 0s position of the slice</div><div class='add'>+ *    slice.set_string('o', 0)</div><div class='add'>+ *    slice</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x00007fc3d34ebc49+2 SLICE&gt;</div><div class='add'>+ *    # 0x00000000  6f 73                                           os</div><div class='add'>+ *</div><div class='add'>+ *    # it is also visible at position 1 of the original buffer</div><div class='add'>+ *    buffer</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x00007fc3d31e2d80+4 SLICE&gt;</div><div class='add'>+ *    # 0x00000000  74 6f 73 74                                     tost</div><div class='add'>+ *</div><div class='add'>+ *    # ...and original string</div><div class='add'>+ *    string</div><div class='add'>+ *    # =&gt; tost</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_slice(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 0, 2);</div><div class='add'>+</div><div class='add'>+    size_t offset, length;</div><div class='add'>+    struct rb_io_buffer *buffer = io_buffer_extract_offset_length(self, argc, argv, &amp;offset, &amp;length);</div><div class='add'>+</div><div class='add'>+    return rb_io_buffer_slice(buffer, self, offset, length);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_io_buffer_get_bytes(VALUE self, void **base, size_t *size)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    if (io_buffer_validate(buffer)) {</div><div class='add'>+        if (buffer-&gt;base) {</div><div class='add'>+            *base = buffer-&gt;base;</div><div class='add'>+            *size = buffer-&gt;size;</div><div class='add'>+</div><div class='add'>+            return buffer-&gt;flags;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    *base = NULL;</div><div class='add'>+    *size = 0;</div><div class='add'>+</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+io_buffer_get_bytes_for_writing(struct rb_io_buffer *buffer, void **base, size_t *size)</div><div class='add'>+{</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_READONLY ||</div><div class='add'>+        (!NIL_P(buffer-&gt;source) &amp;&amp; OBJ_FROZEN(buffer-&gt;source))) {</div><div class='add'>+        rb_raise(rb_eIOBufferAccessError, "Buffer is not writable!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!io_buffer_validate(buffer)) {</div><div class='add'>+        rb_raise(rb_eIOBufferInvalidatedError, "Buffer is invalid!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;base) {</div><div class='add'>+        *base = buffer-&gt;base;</div><div class='add'>+        *size = buffer-&gt;size;</div><div class='add'>+</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_raise(rb_eIOBufferAllocationError, "The buffer is not allocated!");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_io_buffer_get_bytes_for_writing(VALUE self, void **base, size_t *size)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_get_bytes_for_writing(buffer, base, size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_buffer_get_bytes_for_reading(struct rb_io_buffer *buffer, const void **base, size_t *size)</div><div class='add'>+{</div><div class='add'>+    if (!io_buffer_validate(buffer)) {</div><div class='add'>+        rb_raise(rb_eIOBufferInvalidatedError, "Buffer has been invalidated!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;base) {</div><div class='add'>+        *base = buffer-&gt;base;</div><div class='add'>+        *size = buffer-&gt;size;</div><div class='add'>+</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_raise(rb_eIOBufferAllocationError, "The buffer is not allocated!");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_io_buffer_get_bytes_for_reading(VALUE self, const void **base, size_t *size)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_get_bytes_for_reading(buffer, base, size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: transfer -&gt; new_io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Transfers ownership to a new buffer, deallocating the current one.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.new('test')</div><div class='add'>+ *    other = buffer.transfer</div><div class='add'>+ *    other</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x00007f136a15f7b0+4 SLICE&gt;</div><div class='add'>+ *    # 0x00000000  74 65 73 74                                     test</div><div class='add'>+ *    buffer</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000000000000000+0 NULL&gt;</div><div class='add'>+ *    buffer.null?</div><div class='add'>+ *    # =&gt; true</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_transfer(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_LOCKED) {</div><div class='add'>+        rb_raise(rb_eIOBufferLockedError, "Cannot transfer ownership of locked buffer!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE instance = rb_io_buffer_type_allocate(rb_class_of(self));</div><div class='add'>+    struct rb_io_buffer *transferred;</div><div class='add'>+    TypedData_Get_Struct(instance, struct rb_io_buffer, &amp;rb_io_buffer_type, transferred);</div><div class='add'>+</div><div class='add'>+    *transferred = *buffer;</div><div class='add'>+    io_buffer_zero(buffer);</div><div class='add'>+</div><div class='add'>+    return instance;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_buffer_resize_clear(struct rb_io_buffer *buffer, void* base, size_t size)</div><div class='add'>+{</div><div class='add'>+    if (size &gt; buffer-&gt;size) {</div><div class='add'>+        memset((unsigned char*)base+buffer-&gt;size, 0, size - buffer-&gt;size);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_buffer_resize_copy(struct rb_io_buffer *buffer, size_t size)</div><div class='add'>+{</div><div class='add'>+    // Slow path:</div><div class='add'>+    struct rb_io_buffer resized;</div><div class='add'>+    io_buffer_initialize(&amp;resized, NULL, size, io_flags_for_size(size), Qnil);</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;base) {</div><div class='add'>+        size_t preserve = buffer-&gt;size;</div><div class='add'>+        if (preserve &gt; size) preserve = size;</div><div class='add'>+        memcpy(resized.base, buffer-&gt;base, preserve);</div><div class='add'>+</div><div class='add'>+        io_buffer_resize_clear(buffer, resized.base, size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    io_buffer_free(buffer);</div><div class='add'>+    *buffer = resized;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_io_buffer_resize(VALUE self, size_t size)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_LOCKED) {</div><div class='add'>+        rb_raise(rb_eIOBufferLockedError, "Cannot resize locked buffer!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;base == NULL) {</div><div class='add'>+        io_buffer_initialize(buffer, NULL, size, io_flags_for_size(size), Qnil);</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_EXTERNAL) {</div><div class='add'>+        rb_raise(rb_eIOBufferAccessError, "Cannot resize external buffer!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#if defined(HAVE_MREMAP) &amp;&amp; defined(MREMAP_MAYMOVE)</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_MAPPED) {</div><div class='add'>+        void *base = mremap(buffer-&gt;base, buffer-&gt;size, size, MREMAP_MAYMOVE);</div><div class='add'>+</div><div class='add'>+        if (base == MAP_FAILED) {</div><div class='add'>+            rb_sys_fail("rb_io_buffer_resize:mremap");</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        io_buffer_resize_clear(buffer, base, size);</div><div class='add'>+</div><div class='add'>+        buffer-&gt;base = base;</div><div class='add'>+        buffer-&gt;size = size;</div><div class='add'>+</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_INTERNAL) {</div><div class='add'>+        if (size == 0) {</div><div class='add'>+            io_buffer_free(buffer);</div><div class='add'>+            return;</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        void *base = realloc(buffer-&gt;base, size);</div><div class='add'>+</div><div class='add'>+        if (!base) {</div><div class='add'>+            rb_sys_fail("rb_io_buffer_resize:realloc");</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        io_buffer_resize_clear(buffer, base, size);</div><div class='add'>+</div><div class='add'>+        buffer-&gt;base = base;</div><div class='add'>+        buffer-&gt;size = size;</div><div class='add'>+</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    io_buffer_resize_copy(buffer, size);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: resize(new_size) -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Resizes a buffer to a +new_size+ bytes, preserving its content.</div><div class='add'>+ *  Depending on the old and new size, the memory area associated with</div><div class='add'>+ *  the buffer might be either extended, or rellocated at different</div><div class='add'>+ *  address with content being copied.</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.new(4)</div><div class='add'>+ *    buffer.set_string("test", 0)</div><div class='add'>+ *    buffer.resize(8) # resize to 8 bytes</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000555f5d1a1630+8 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  74 65 73 74 00 00 00 00                         test....</div><div class='add'>+ *</div><div class='add'>+ *  External buffer (created with ::for), and locked buffer</div><div class='add'>+ *  can not be resized.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_resize(VALUE self, VALUE size)</div><div class='add'>+{</div><div class='add'>+    rb_io_buffer_resize(self, io_buffer_extract_size(size));</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq: &lt;=&gt;(other) -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ * Buffers are compared by size and exact contents of the memory they are</div><div class='add'>+ * referencing using +memcmp+.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_compare(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    const void *ptr1, *ptr2;</div><div class='add'>+    size_t size1, size2;</div><div class='add'>+</div><div class='add'>+    rb_io_buffer_get_bytes_for_reading(self, &amp;ptr1, &amp;size1);</div><div class='add'>+    rb_io_buffer_get_bytes_for_reading(other, &amp;ptr2, &amp;size2);</div><div class='add'>+</div><div class='add'>+    if (size1 &lt; size2) {</div><div class='add'>+        return RB_INT2NUM(-1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (size1 &gt; size2) {</div><div class='add'>+        return RB_INT2NUM(1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return RB_INT2NUM(memcmp(ptr1, ptr2, size1));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_buffer_validate_type(size_t size, size_t offset)</div><div class='add'>+{</div><div class='add'>+    if (offset &gt; size) {</div><div class='add'>+        rb_raise(rb_eArgError, "Type extends beyond end of buffer! (offset=%"PRIdSIZE" &gt; size=%"PRIdSIZE")", offset, size);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Lower case: little endian.</div><div class='add'>+// Upper case: big endian (network endian).</div><div class='add'>+//</div><div class='add'>+// :U8        | unsigned 8-bit integer.</div><div class='add'>+// :S8        | signed 8-bit integer.</div><div class='add'>+//</div><div class='add'>+// :u16, :U16 | unsigned 16-bit integer.</div><div class='add'>+// :s16, :S16 | signed 16-bit integer.</div><div class='add'>+//</div><div class='add'>+// :u32, :U32 | unsigned 32-bit integer.</div><div class='add'>+// :s32, :S32 | signed 32-bit integer.</div><div class='add'>+//</div><div class='add'>+// :u64, :U64 | unsigned 64-bit integer.</div><div class='add'>+// :s64, :S64 | signed 64-bit integer.</div><div class='add'>+//</div><div class='add'>+// :f32, :F32 | 32-bit floating point number.</div><div class='add'>+// :f64, :F64 | 64-bit floating point number.</div><div class='add'>+</div><div class='add'>+#define ruby_swap8(value) value</div><div class='add'>+</div><div class='add'>+union swapf32 {</div><div class='add'>+    uint32_t integral;</div><div class='add'>+    float value;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static float</div><div class='add'>+ruby_swapf32(float value)</div><div class='add'>+{</div><div class='add'>+    union swapf32 swap = {.value = value};</div><div class='add'>+    swap.integral = ruby_swap32(swap.integral);</div><div class='add'>+    return swap.value;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+union swapf64 {</div><div class='add'>+    uint64_t integral;</div><div class='add'>+    double value;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static double</div><div class='add'>+ruby_swapf64(double value)</div><div class='add'>+{</div><div class='add'>+    union swapf64 swap = {.value = value};</div><div class='add'>+    swap.integral = ruby_swap64(swap.integral);</div><div class='add'>+    return swap.value;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define IO_BUFFER_DECLARE_TYPE(name, type, endian, wrap, unwrap, swap) \</div><div class='add'>+static ID RB_IO_BUFFER_DATA_TYPE_##name; \</div><div class='add'>+\</div><div class='add'>+static VALUE \</div><div class='add'>+io_buffer_read_##name(const void* base, size_t size, size_t *offset) \</div><div class='add'>+{ \</div><div class='add'>+    io_buffer_validate_type(size, *offset + sizeof(type)); \</div><div class='add'>+    type value; \</div><div class='add'>+    memcpy(&amp;value, (char*)base + *offset, sizeof(type)); \</div><div class='add'>+    if (endian != RB_IO_BUFFER_HOST_ENDIAN) value = swap(value); \</div><div class='add'>+    *offset += sizeof(type); \</div><div class='add'>+    return wrap(value); \</div><div class='add'>+} \</div><div class='add'>+\</div><div class='add'>+static void \</div><div class='add'>+io_buffer_write_##name(const void* base, size_t size, size_t *offset, VALUE _value) \</div><div class='add'>+{ \</div><div class='add'>+    io_buffer_validate_type(size, *offset + sizeof(type)); \</div><div class='add'>+    type value = unwrap(_value); \</div><div class='add'>+    if (endian != RB_IO_BUFFER_HOST_ENDIAN) value = swap(value); \</div><div class='add'>+    memcpy((char*)base + *offset, &amp;value, sizeof(type)); \</div><div class='add'>+    *offset += sizeof(type); \</div><div class='add'>+} \</div><div class='add'>+\</div><div class='add'>+enum { \</div><div class='add'>+    RB_IO_BUFFER_DATA_TYPE_##name##_SIZE = sizeof(type) \</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(U8, uint8_t, RB_IO_BUFFER_BIG_ENDIAN, RB_UINT2NUM, RB_NUM2UINT, ruby_swap8)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(S8, int8_t, RB_IO_BUFFER_BIG_ENDIAN, RB_INT2NUM, RB_NUM2INT, ruby_swap8)</div><div class='add'>+</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(u16, uint16_t, RB_IO_BUFFER_LITTLE_ENDIAN, RB_UINT2NUM, RB_NUM2UINT, ruby_swap16)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(U16, uint16_t, RB_IO_BUFFER_BIG_ENDIAN, RB_UINT2NUM, RB_NUM2UINT, ruby_swap16)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(s16, int16_t, RB_IO_BUFFER_LITTLE_ENDIAN, RB_INT2NUM, RB_NUM2INT, ruby_swap16)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(S16, int16_t, RB_IO_BUFFER_BIG_ENDIAN, RB_INT2NUM, RB_NUM2INT, ruby_swap16)</div><div class='add'>+</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(u32, uint32_t, RB_IO_BUFFER_LITTLE_ENDIAN, RB_UINT2NUM, RB_NUM2UINT, ruby_swap32)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(U32, uint32_t, RB_IO_BUFFER_BIG_ENDIAN, RB_UINT2NUM, RB_NUM2UINT, ruby_swap32)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(s32, int32_t, RB_IO_BUFFER_LITTLE_ENDIAN, RB_INT2NUM, RB_NUM2INT, ruby_swap32)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(S32, int32_t, RB_IO_BUFFER_BIG_ENDIAN, RB_INT2NUM, RB_NUM2INT, ruby_swap32)</div><div class='add'>+</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(u64, uint64_t, RB_IO_BUFFER_LITTLE_ENDIAN, RB_ULL2NUM, RB_NUM2ULL, ruby_swap64)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(U64, uint64_t, RB_IO_BUFFER_BIG_ENDIAN, RB_ULL2NUM, RB_NUM2ULL, ruby_swap64)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(s64, int64_t, RB_IO_BUFFER_LITTLE_ENDIAN, RB_LL2NUM, RB_NUM2LL, ruby_swap64)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(S64, int64_t, RB_IO_BUFFER_BIG_ENDIAN, RB_LL2NUM, RB_NUM2LL, ruby_swap64)</div><div class='add'>+</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(f32, float, RB_IO_BUFFER_LITTLE_ENDIAN, DBL2NUM, NUM2DBL, ruby_swapf32)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(F32, float, RB_IO_BUFFER_BIG_ENDIAN, DBL2NUM, NUM2DBL, ruby_swapf32)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(f64, double, RB_IO_BUFFER_LITTLE_ENDIAN, DBL2NUM, NUM2DBL, ruby_swapf64)</div><div class='add'>+IO_BUFFER_DECLARE_TYPE(F64, double, RB_IO_BUFFER_BIG_ENDIAN, DBL2NUM, NUM2DBL, ruby_swapf64)</div><div class='add'>+#undef IO_BUFFER_DECLARE_TYPE</div><div class='add'>+</div><div class='add'>+static inline size_t</div><div class='add'>+io_buffer_buffer_type_size(ID buffer_type)</div><div class='add'>+{</div><div class='add'>+#define IO_BUFFER_DATA_TYPE_SIZE(name) if (buffer_type == RB_IO_BUFFER_DATA_TYPE_##name) return RB_IO_BUFFER_DATA_TYPE_##name##_SIZE;</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(U8)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(S8)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(u16)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(U16)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(s16)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(S16)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(u32)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(U32)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(s32)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(S32)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(u64)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(U64)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(s64)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(S64)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(f32)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(F32)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(f64)</div><div class='add'>+    IO_BUFFER_DATA_TYPE_SIZE(F64)</div><div class='add'>+#undef IO_BUFFER_DATA_TYPE_SIZE</div><div class='add'>+</div><div class='add'>+    rb_raise(rb_eArgError, "Invalid type name!");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    size_of(buffer_type) -&gt; byte size</div><div class='add'>+ *    size_of(array of buffer_type) -&gt; byte size</div><div class='add'>+ *</div><div class='add'>+ *  Returns the size of the given buffer type(s) in bytes.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    IO::Buffer.size_of(:u32) # =&gt; 4</div><div class='add'>+ *    IO::Buffer.size_of([:u32, :u32]) # =&gt; 8</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_size_of(VALUE klass, VALUE buffer_type)</div><div class='add'>+{</div><div class='add'>+    if (RB_TYPE_P(buffer_type, T_ARRAY)) {</div><div class='add'>+        size_t total = 0;</div><div class='add'>+        for (long i = 0; i &lt; RARRAY_LEN(buffer_type); i++) {</div><div class='add'>+            total += io_buffer_buffer_type_size(RB_SYM2ID(RARRAY_AREF(buffer_type, i)));</div><div class='add'>+        }</div><div class='add'>+        return SIZET2NUM(total);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return SIZET2NUM(io_buffer_buffer_type_size(RB_SYM2ID(buffer_type)));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_io_buffer_get_value(const void* base, size_t size, ID buffer_type, size_t *offset)</div><div class='add'>+{</div><div class='add'>+#define IO_BUFFER_GET_VALUE(name) if (buffer_type == RB_IO_BUFFER_DATA_TYPE_##name) return io_buffer_read_##name(base, size, offset);</div><div class='add'>+    IO_BUFFER_GET_VALUE(U8)</div><div class='add'>+    IO_BUFFER_GET_VALUE(S8)</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_GET_VALUE(u16)</div><div class='add'>+    IO_BUFFER_GET_VALUE(U16)</div><div class='add'>+    IO_BUFFER_GET_VALUE(s16)</div><div class='add'>+    IO_BUFFER_GET_VALUE(S16)</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_GET_VALUE(u32)</div><div class='add'>+    IO_BUFFER_GET_VALUE(U32)</div><div class='add'>+    IO_BUFFER_GET_VALUE(s32)</div><div class='add'>+    IO_BUFFER_GET_VALUE(S32)</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_GET_VALUE(u64)</div><div class='add'>+    IO_BUFFER_GET_VALUE(U64)</div><div class='add'>+    IO_BUFFER_GET_VALUE(s64)</div><div class='add'>+    IO_BUFFER_GET_VALUE(S64)</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_GET_VALUE(f32)</div><div class='add'>+    IO_BUFFER_GET_VALUE(F32)</div><div class='add'>+    IO_BUFFER_GET_VALUE(f64)</div><div class='add'>+    IO_BUFFER_GET_VALUE(F64)</div><div class='add'>+#undef IO_BUFFER_GET_VALUE</div><div class='add'>+</div><div class='add'>+    rb_raise(rb_eArgError, "Invalid type name!");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: get_value(buffer_type, offset) -&gt; numeric</div><div class='add'>+ *</div><div class='add'>+ *  Read from buffer a value of +type+ at +offset+. +buffer_type+ should be one</div><div class='add'>+ *  of symbols:</div><div class='add'>+ *</div><div class='add'>+ *  * +:U8+: unsigned integer, 1 byte</div><div class='add'>+ *  * +:S8+: signed integer, 1 byte</div><div class='add'>+ *  * +:u16+: unsigned integer, 2 bytes, little-endian</div><div class='add'>+ *  * +:U16+: unsigned integer, 2 bytes, big-endian</div><div class='add'>+ *  * +:s16+: signed integer, 2 bytes, little-endian</div><div class='add'>+ *  * +:S16+: signed integer, 2 bytes, big-endian</div><div class='add'>+ *  * +:u32+: unsigned integer, 4 bytes, little-endian</div><div class='add'>+ *  * +:U32+: unsigned integer, 4 bytes, big-endian</div><div class='add'>+ *  * +:s32+: signed integer, 4 bytes, little-endian</div><div class='add'>+ *  * +:S32+: signed integer, 4 bytes, big-endian</div><div class='add'>+ *  * +:u64+: unsigned integer, 8 bytes, little-endian</div><div class='add'>+ *  * +:U64+: unsigned integer, 8 bytes, big-endian</div><div class='add'>+ *  * +:s64+: signed integer, 8 bytes, little-endian</div><div class='add'>+ *  * +:S64+: signed integer, 8 bytes, big-endian</div><div class='add'>+ *  * +:f32+: float, 4 bytes, little-endian</div><div class='add'>+ *  * +:F32+: float, 4 bytes, big-endian</div><div class='add'>+ *  * +:f64+: double, 8 bytes, little-endian</div><div class='add'>+ *  * +:F64+: double, 8 bytes, big-endian</div><div class='add'>+ *</div><div class='add'>+ *  A buffer type refers specifically to the type of binary buffer that is stored</div><div class='add'>+ *  in the buffer. For example, a +:u32+ buffer type is a 32-bit unsigned</div><div class='add'>+ *  integer in little-endian format.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    string = [1.5].pack('f')</div><div class='add'>+ *    # =&gt; "\x00\x00\xC0?"</div><div class='add'>+ *    IO::Buffer.for(string).get_value(:f32, 0)</div><div class='add'>+ *    # =&gt; 1.5</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_get_value(VALUE self, VALUE type, VALUE _offset)</div><div class='add'>+{</div><div class='add'>+    const void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    size_t offset = io_buffer_extract_offset(_offset);</div><div class='add'>+</div><div class='add'>+    rb_io_buffer_get_bytes_for_reading(self, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    return rb_io_buffer_get_value(base, size, RB_SYM2ID(type), &amp;offset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: get_values(buffer_types, offset) -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Similar to #get_value, except that it can handle multiple buffer types and</div><div class='add'>+ *  returns an array of values.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    string = [1.5, 2.5].pack('ff')</div><div class='add'>+ *    IO::Buffer.for(string).get_values([:f32, :f32], 0)</div><div class='add'>+ *    # =&gt; [1.5, 2.5]</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_get_values(VALUE self, VALUE buffer_types, VALUE _offset)</div><div class='add'>+{</div><div class='add'>+    size_t offset = io_buffer_extract_offset(_offset);</div><div class='add'>+</div><div class='add'>+    const void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    rb_io_buffer_get_bytes_for_reading(self, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    if (!RB_TYPE_P(buffer_types, T_ARRAY)) {</div><div class='add'>+        rb_raise(rb_eArgError, "Argument buffer_types should be an array!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    VALUE array = rb_ary_new_capa(RARRAY_LEN(buffer_types));</div><div class='add'>+</div><div class='add'>+    for (long i = 0; i &lt; RARRAY_LEN(buffer_types); i++) {</div><div class='add'>+        VALUE type = rb_ary_entry(buffer_types, i);</div><div class='add'>+        VALUE value = rb_io_buffer_get_value(base, size, RB_SYM2ID(type), &amp;offset);</div><div class='add'>+        rb_ary_push(array, value);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return array;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Extract a count argument, which must be a positive integer.</div><div class='add'>+// Count is generally considered relative to the number of things.</div><div class='add'>+static inline size_t</div><div class='add'>+io_buffer_extract_count(VALUE argument)</div><div class='add'>+{</div><div class='add'>+    if (rb_int_negative_p(argument)) {</div><div class='add'>+        rb_raise(rb_eArgError, "Count can't be negative!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return NUM2SIZET(argument);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+io_buffer_extract_offset_count(ID buffer_type, size_t size, int argc, VALUE *argv, size_t *offset, size_t *count)</div><div class='add'>+{</div><div class='add'>+    if (argc &gt;= 1) {</div><div class='add'>+        *offset = io_buffer_extract_offset(argv[0]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        *offset = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (argc &gt;= 2) {</div><div class='add'>+        *count = io_buffer_extract_count(argv[1]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        if (*offset &gt; size) {</div><div class='add'>+            rb_raise(rb_eArgError, "The given offset is bigger than the buffer size!");</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        *count = (size - *offset) / io_buffer_buffer_type_size(buffer_type);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    each(buffer_type, [offset, [count]]) {|offset, value| ...} -&gt; self</div><div class='add'>+ *    each(buffer_type, [offset, [count]]) -&gt; enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Iterates over the buffer, yielding each +value+ of +buffer_type+ starting</div><div class='add'>+ *  from +offset+.</div><div class='add'>+ *</div><div class='add'>+ *  If +count+ is given, only +count+ values will be yielded.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    IO::Buffer.for("Hello World").each(:U8, 2, 2) do |offset, value|</div><div class='add'>+ *      puts "#{offset}: #{value}"</div><div class='add'>+ *    end</div><div class='add'>+ *    # 2: 108</div><div class='add'>+ *    # 3: 108</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_each(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    RETURN_ENUMERATOR_KW(self, argc, argv, RB_NO_KEYWORDS);</div><div class='add'>+</div><div class='add'>+    const void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+</div><div class='add'>+    rb_io_buffer_get_bytes_for_reading(self, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    ID buffer_type;</div><div class='add'>+    if (argc &gt;= 1) {</div><div class='add'>+        buffer_type = RB_SYM2ID(argv[0]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        buffer_type = RB_IO_BUFFER_DATA_TYPE_U8;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    size_t offset, count;</div><div class='add'>+    io_buffer_extract_offset_count(buffer_type, size, argc-1, argv+1, &amp;offset, &amp;count);</div><div class='add'>+</div><div class='add'>+    for (size_t i = 0; i &lt; count; i++) {</div><div class='add'>+        size_t current_offset = offset;</div><div class='add'>+        VALUE value = rb_io_buffer_get_value(base, size, buffer_type, &amp;offset);</div><div class='add'>+        rb_yield_values(2, SIZET2NUM(current_offset), value);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: values(buffer_type, [offset, [count]]) -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array of values of +buffer_type+ starting from +offset+.</div><div class='add'>+ *</div><div class='add'>+ *  If +count+ is given, only +count+ values will be returned.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    IO::Buffer.for("Hello World").values(:U8, 2, 2)</div><div class='add'>+ *    # =&gt; [108, 108]</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_values(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    const void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+</div><div class='add'>+    rb_io_buffer_get_bytes_for_reading(self, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    ID buffer_type;</div><div class='add'>+    if (argc &gt;= 1) {</div><div class='add'>+        buffer_type = RB_SYM2ID(argv[0]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        buffer_type = RB_IO_BUFFER_DATA_TYPE_U8;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    size_t offset, count;</div><div class='add'>+    io_buffer_extract_offset_count(buffer_type, size, argc-1, argv+1, &amp;offset, &amp;count);</div><div class='add'>+</div><div class='add'>+    VALUE array = rb_ary_new_capa(count);</div><div class='add'>+</div><div class='add'>+    for (size_t i = 0; i &lt; count; i++) {</div><div class='add'>+        VALUE value = rb_io_buffer_get_value(base, size, buffer_type, &amp;offset);</div><div class='add'>+        rb_ary_push(array, value);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return array;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    each_byte([offset, [count]]) {|offset, byte| ...} -&gt; self</div><div class='add'>+ *    each_byte([offset, [count]]) -&gt; enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Iterates over the buffer, yielding each byte starting from +offset+.</div><div class='add'>+ *</div><div class='add'>+ *  If +count+ is given, only +count+ bytes will be yielded.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    IO::Buffer.for("Hello World").each_byte(2, 2) do |offset, byte|</div><div class='add'>+ *      puts "#{offset}: #{byte}"</div><div class='add'>+ *    end</div><div class='add'>+ *    # 2: 108</div><div class='add'>+ *    # 3: 108</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_each_byte(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    RETURN_ENUMERATOR_KW(self, argc, argv, RB_NO_KEYWORDS);</div><div class='add'>+</div><div class='add'>+    const void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+</div><div class='add'>+    rb_io_buffer_get_bytes_for_reading(self, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    size_t offset, count;</div><div class='add'>+    io_buffer_extract_offset_count(RB_IO_BUFFER_DATA_TYPE_U8, size, argc-1, argv+1, &amp;offset, &amp;count);</div><div class='add'>+</div><div class='add'>+    for (size_t i = 0; i &lt; count; i++) {</div><div class='add'>+        unsigned char *value = (unsigned char *)base + i + offset;</div><div class='add'>+        rb_yield(RB_INT2FIX(*value));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+rb_io_buffer_set_value(const void* base, size_t size, ID buffer_type, size_t *offset, VALUE value)</div><div class='add'>+{</div><div class='add'>+#define IO_BUFFER_SET_VALUE(name) if (buffer_type == RB_IO_BUFFER_DATA_TYPE_##name) {io_buffer_write_##name(base, size, offset, value); return;}</div><div class='add'>+    IO_BUFFER_SET_VALUE(U8);</div><div class='add'>+    IO_BUFFER_SET_VALUE(S8);</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_SET_VALUE(u16);</div><div class='add'>+    IO_BUFFER_SET_VALUE(U16);</div><div class='add'>+    IO_BUFFER_SET_VALUE(s16);</div><div class='add'>+    IO_BUFFER_SET_VALUE(S16);</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_SET_VALUE(u32);</div><div class='add'>+    IO_BUFFER_SET_VALUE(U32);</div><div class='add'>+    IO_BUFFER_SET_VALUE(s32);</div><div class='add'>+    IO_BUFFER_SET_VALUE(S32);</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_SET_VALUE(u64);</div><div class='add'>+    IO_BUFFER_SET_VALUE(U64);</div><div class='add'>+    IO_BUFFER_SET_VALUE(s64);</div><div class='add'>+    IO_BUFFER_SET_VALUE(S64);</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_SET_VALUE(f32);</div><div class='add'>+    IO_BUFFER_SET_VALUE(F32);</div><div class='add'>+    IO_BUFFER_SET_VALUE(f64);</div><div class='add'>+    IO_BUFFER_SET_VALUE(F64);</div><div class='add'>+#undef IO_BUFFER_SET_VALUE</div><div class='add'>+</div><div class='add'>+    rb_raise(rb_eArgError, "Invalid type name!");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: set_value(type, offset, value) -&gt; offset</div><div class='add'>+ *</div><div class='add'>+ *  Write to a buffer a +value+ of +type+ at +offset+. +type+ should be one of</div><div class='add'>+ *  symbols described in #get_value.</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.new(8)</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000555f5c9a2d50+8 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  00 00 00 00 00 00 00 00</div><div class='add'>+ *</div><div class='add'>+ *    buffer.set_value(:U8, 1, 111)</div><div class='add'>+ *    # =&gt; 1</div><div class='add'>+ *</div><div class='add'>+ *    buffer</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000555f5c9a2d50+8 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  00 6f 00 00 00 00 00 00                         .o......</div><div class='add'>+ *</div><div class='add'>+ *  Note that if the +type+ is integer and +value+ is Float, the implicit truncation is performed:</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.new(8)</div><div class='add'>+ *    buffer.set_value(:U32, 0, 2.5)</div><div class='add'>+ *</div><div class='add'>+ *    buffer</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000555f5c9a2d50+8 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  00 00 00 02 00 00 00 00</div><div class='add'>+ *    #                      ^^ the same as if we'd pass just integer 2</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_set_value(VALUE self, VALUE type, VALUE _offset, VALUE value)</div><div class='add'>+{</div><div class='add'>+    void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    size_t offset = io_buffer_extract_offset(_offset);</div><div class='add'>+</div><div class='add'>+    rb_io_buffer_get_bytes_for_writing(self, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    rb_io_buffer_set_value(base, size, RB_SYM2ID(type), &amp;offset, value);</div><div class='add'>+</div><div class='add'>+    return SIZET2NUM(offset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: set_values(buffer_types, offset, values) -&gt; offset</div><div class='add'>+ *</div><div class='add'>+ *  Write +values+ of +buffer_types+ at +offset+ to the buffer. +buffer_types+</div><div class='add'>+ *  should be an array of symbols as described in #get_value. +values+ should</div><div class='add'>+ *  be an array of values to write.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.new(8)</div><div class='add'>+ *    buffer.set_values([:U8, :U16], 0, [1, 2])</div><div class='add'>+ *    buffer</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x696f717561746978+8 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  01 00 02 00 00 00 00 00                         ........</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_set_values(VALUE self, VALUE buffer_types, VALUE _offset, VALUE values)</div><div class='add'>+{</div><div class='add'>+    if (!RB_TYPE_P(buffer_types, T_ARRAY)) {</div><div class='add'>+        rb_raise(rb_eArgError, "Argument buffer_types should be an array!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!RB_TYPE_P(values, T_ARRAY)) {</div><div class='add'>+        rb_raise(rb_eArgError, "Argument values should be an array!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (RARRAY_LEN(buffer_types) != RARRAY_LEN(values)) {</div><div class='add'>+        rb_raise(rb_eArgError, "Argument buffer_types and values should have the same length!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    size_t offset = io_buffer_extract_offset(_offset);</div><div class='add'>+</div><div class='add'>+    void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    rb_io_buffer_get_bytes_for_writing(self, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    for (long i = 0; i &lt; RARRAY_LEN(buffer_types); i++) {</div><div class='add'>+        VALUE type = rb_ary_entry(buffer_types, i);</div><div class='add'>+        VALUE value = rb_ary_entry(values, i);</div><div class='add'>+        rb_io_buffer_set_value(base, size, RB_SYM2ID(type), &amp;offset, value);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return SIZET2NUM(offset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+io_buffer_memcpy(struct rb_io_buffer *buffer, size_t offset, const void *source_base, size_t source_offset, size_t source_size, size_t length)</div><div class='add'>+{</div><div class='add'>+    void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    io_buffer_get_bytes_for_writing(buffer, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    io_buffer_validate_range(buffer, offset, length);</div><div class='add'>+</div><div class='add'>+    if (source_offset + length &gt; source_size) {</div><div class='add'>+        rb_raise(rb_eArgError, "The computed source range exceeds the size of the source buffer!");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    memcpy((unsigned char*)base+offset, (unsigned char*)source_base+source_offset, length);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// (offset, length, source_offset) -&gt; length</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_copy_from(struct rb_io_buffer *buffer, const void *source_base, size_t source_size, int argc, VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    size_t offset = 0;</div><div class='add'>+    size_t length;</div><div class='add'>+    size_t source_offset;</div><div class='add'>+</div><div class='add'>+    // The offset we copy into the buffer:</div><div class='add'>+    if (argc &gt;= 1) {</div><div class='add'>+        offset = io_buffer_extract_offset(argv[0]);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // The offset we start from within the string:</div><div class='add'>+    if (argc &gt;= 3) {</div><div class='add'>+        source_offset = io_buffer_extract_offset(argv[2]);</div><div class='add'>+</div><div class='add'>+        if (source_offset &gt; source_size) {</div><div class='add'>+            rb_raise(rb_eArgError, "The given source offset is bigger than the source itself!");</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        source_offset = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    // The length we are going to copy:</div><div class='add'>+    if (argc &gt;= 2 &amp;&amp; !RB_NIL_P(argv[1])) {</div><div class='add'>+        length = io_buffer_extract_length(argv[1]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        // Default to the source offset -&gt; source size:</div><div class='add'>+        length = source_size - source_offset;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    io_buffer_memcpy(buffer, offset, source_base, source_offset, source_size, length);</div><div class='add'>+</div><div class='add'>+    return SIZET2NUM(length);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    dup -&gt; io_buffer</div><div class='add'>+ *    clone -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Make an internal copy of the source buffer. Updates to the copy will not</div><div class='add'>+ *  affect the source buffer.</div><div class='add'>+ *</div><div class='add'>+ *    source = IO::Buffer.for("Hello World")</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x00007fd598466830+11 EXTERNAL READONLY SLICE&gt;</div><div class='add'>+ *    # 0x00000000  48 65 6c 6c 6f 20 57 6f 72 6c 64                Hello World</div><div class='add'>+ *    buffer = source.dup</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000558cbec03320+11 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  48 65 6c 6c 6f 20 57 6f 72 6c 64                Hello World</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+rb_io_buffer_initialize_copy(VALUE self, VALUE source)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    const void *source_base;</div><div class='add'>+    size_t source_size;</div><div class='add'>+</div><div class='add'>+    rb_io_buffer_get_bytes_for_reading(source, &amp;source_base, &amp;source_size);</div><div class='add'>+</div><div class='add'>+    io_buffer_initialize(buffer, NULL, source_size, io_flags_for_size(source_size), Qnil);</div><div class='add'>+</div><div class='add'>+    return io_buffer_copy_from(buffer, source_base, source_size, 0, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    copy(source, [offset, [length, [source_offset]]]) -&gt; size</div><div class='add'>+ *</div><div class='add'>+ *  Efficiently copy buffer from a source IO::Buffer into the buffer,</div><div class='add'>+ *  at +offset+ using +memcpy+. For copying String instances, see #set_string.</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.new(32)</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000555f5ca22520+32 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................</div><div class='add'>+ *    # 0x00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................  *</div><div class='add'>+ *</div><div class='add'>+ *    buffer.copy(IO::Buffer.for("test"), 8)</div><div class='add'>+ *    # =&gt; 4 -- size of buffer copied</div><div class='add'>+ *    buffer</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000555f5cf8fe40+32 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  00 00 00 00 00 00 00 00 74 65 73 74 00 00 00 00 ........test....</div><div class='add'>+ *    # 0x00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ *</div><div class='add'>+ *</div><div class='add'>+ *  #copy can be used to put buffer into strings associated with buffer:</div><div class='add'>+ *</div><div class='add'>+ *    string= "buffer:    "</div><div class='add'>+ *    # =&gt; "buffer:    "</div><div class='add'>+ *    buffer = IO::Buffer.for(string)</div><div class='add'>+ *    buffer.copy(IO::Buffer.for("test"), 5)</div><div class='add'>+ *    # =&gt; 4</div><div class='add'>+ *    string</div><div class='add'>+ *    # =&gt; "buffer:test"</div><div class='add'>+ *</div><div class='add'>+ *  Attempt to copy into a read-only buffer will fail:</div><div class='add'>+ *</div><div class='add'>+ *    File.write('test.txt', 'test')</div><div class='add'>+ *    buffer = IO::Buffer.map(File.open('test.txt'), nil, 0, IO::Buffer::READONLY)</div><div class='add'>+ *    buffer.copy(IO::Buffer.for("test"), 8)</div><div class='add'>+ *    # in `copy': Buffer is not writable! (IO::Buffer::AccessError)</div><div class='add'>+ *</div><div class='add'>+ *  See ::map for details of creation of mutable file mappings, this will</div><div class='add'>+ *  work:</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.map(File.open('test.txt', 'r+'))</div><div class='add'>+ *    buffer.copy(IO::Buffer.for("boom"), 0)</div><div class='add'>+ *    # =&gt; 4</div><div class='add'>+ *    File.read('test.txt')</div><div class='add'>+ *    # =&gt; "boom"</div><div class='add'>+ *</div><div class='add'>+ *  Attempt to copy the buffer which will need place outside of buffer's</div><div class='add'>+ *  bounds will fail:</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.new(2)</div><div class='add'>+ *    buffer.copy(IO::Buffer.for('test'), 0)</div><div class='add'>+ *    # in `copy': Specified offset+length is bigger than the buffer size! (ArgumentError)</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_copy(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 1, 4);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    VALUE source = argv[0];</div><div class='add'>+    const void *source_base;</div><div class='add'>+    size_t source_size;</div><div class='add'>+</div><div class='add'>+    rb_io_buffer_get_bytes_for_reading(source, &amp;source_base, &amp;source_size);</div><div class='add'>+</div><div class='add'>+    return io_buffer_copy_from(buffer, source_base, source_size, argc-1, argv+1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: get_string([offset, [length, [encoding]]]) -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Read a chunk or all of the buffer into a string, in the specified</div><div class='add'>+ *  +encoding+. If no encoding is provided +Encoding::BINARY+ is used.</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.for('test')</div><div class='add'>+ *    buffer.get_string</div><div class='add'>+ *    # =&gt; "test"</div><div class='add'>+ *    buffer.get_string(2)</div><div class='add'>+ *    # =&gt; "st"</div><div class='add'>+ *    buffer.get_string(2, 1)</div><div class='add'>+ *    # =&gt; "s"</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_get_string(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 0, 3);</div><div class='add'>+</div><div class='add'>+    size_t offset, length;</div><div class='add'>+    struct rb_io_buffer *buffer = io_buffer_extract_offset_length(self, argc, argv, &amp;offset, &amp;length);</div><div class='add'>+</div><div class='add'>+    const void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    io_buffer_get_bytes_for_reading(buffer, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    rb_encoding *encoding;</div><div class='add'>+    if (argc &gt;= 3) {</div><div class='add'>+        encoding = rb_find_encoding(argv[2]);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        encoding = rb_ascii8bit_encoding();</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    io_buffer_validate_range(buffer, offset, length);</div><div class='add'>+</div><div class='add'>+    return rb_enc_str_new((const char*)base + offset, length, encoding);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: set_string(string, [offset, [length, [source_offset]]]) -&gt; size</div><div class='add'>+ *</div><div class='add'>+ *  Efficiently copy buffer from a source String into the buffer,</div><div class='add'>+ *  at +offset+ using +memcpy+.</div><div class='add'>+ *</div><div class='add'>+ *    buf = IO::Buffer.new(8)</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000557412714a20+8 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  00 00 00 00 00 00 00 00                         ........</div><div class='add'>+ *</div><div class='add'>+ *    # set buffer starting from offset 1, take 2 bytes starting from string's</div><div class='add'>+ *    # second</div><div class='add'>+ *    buf.set_string('test', 1, 2, 1)</div><div class='add'>+ *    # =&gt; 2</div><div class='add'>+ *    buf</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000557412714a20+8 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  00 65 73 00 00 00 00 00                         .es.....</div><div class='add'>+ *</div><div class='add'>+ *  See also #copy for examples of how buffer writing might be used for changing</div><div class='add'>+ *  associated strings and files.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_set_string(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 1, 4);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    VALUE string = rb_str_to_str(argv[0]);</div><div class='add'>+</div><div class='add'>+    const void *source_base = RSTRING_PTR(string);</div><div class='add'>+    size_t source_size = RSTRING_LEN(string);</div><div class='add'>+</div><div class='add'>+    return io_buffer_copy_from(buffer, source_base, source_size, argc-1, argv+1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_io_buffer_clear(VALUE self, uint8_t value, size_t offset, size_t length)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    io_buffer_get_bytes_for_writing(buffer, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    io_buffer_validate_range(buffer, offset, length);</div><div class='add'>+</div><div class='add'>+    memset((char*)base + offset, value, length);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: clear(value = 0, [offset, [length]]) -&gt; self</div><div class='add'>+ *</div><div class='add'>+ *  Fill buffer with +value+, starting with +offset+ and going for +length+</div><div class='add'>+ *  bytes.</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.for('test')</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    #   &lt;IO::Buffer 0x00007fca40087c38+4 SLICE&gt;</div><div class='add'>+ *    #   0x00000000  74 65 73 74         test</div><div class='add'>+ *</div><div class='add'>+ *    buffer.clear</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    #   &lt;IO::Buffer 0x00007fca40087c38+4 SLICE&gt;</div><div class='add'>+ *    #   0x00000000  00 00 00 00         ....</div><div class='add'>+ *</div><div class='add'>+ *    buf.clear(1) # fill with 1</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    #   &lt;IO::Buffer 0x00007fca40087c38+4 SLICE&gt;</div><div class='add'>+ *    #   0x00000000  01 01 01 01         ....</div><div class='add'>+ *</div><div class='add'>+ *    buffer.clear(2, 1, 2) # fill with 2, starting from offset 1, for 2 bytes</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    #   &lt;IO::Buffer 0x00007fca40087c38+4 SLICE&gt;</div><div class='add'>+ *    #   0x00000000  01 02 02 01         ....</div><div class='add'>+ *</div><div class='add'>+ *    buffer.clear(2, 1) # fill with 2, starting from offset 1</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    #   &lt;IO::Buffer 0x00007fca40087c38+4 SLICE&gt;</div><div class='add'>+ *    #   0x00000000  01 02 02 02         ....</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_clear(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 0, 3);</div><div class='add'>+</div><div class='add'>+    uint8_t value = 0;</div><div class='add'>+    if (argc &gt;= 1) {</div><div class='add'>+        value = NUM2UINT(argv[0]);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    size_t offset, length;</div><div class='add'>+    io_buffer_extract_offset_length(self, argc-1, argv+1, &amp;offset, &amp;length);</div><div class='add'>+</div><div class='add'>+    rb_io_buffer_clear(self, value, offset, length);</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static size_t</div><div class='add'>+io_buffer_default_size(size_t page_size)</div><div class='add'>+{</div><div class='add'>+    // Platform agnostic default size, based on empirical performance observation:</div><div class='add'>+    const size_t platform_agnostic_default_size = 64*1024;</div><div class='add'>+</div><div class='add'>+    // Allow user to specify custom default buffer size:</div><div class='add'>+    const char *default_size = getenv("RUBY_IO_BUFFER_DEFAULT_SIZE");</div><div class='add'>+    if (default_size) {</div><div class='add'>+        // For the purpose of setting a default size, 2^31 is an acceptable maximum:</div><div class='add'>+        int value = atoi(default_size);</div><div class='add'>+</div><div class='add'>+        // assuming sizeof(int) &lt;= sizeof(size_t)</div><div class='add'>+        if (value &gt; 0) {</div><div class='add'>+            return value;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (platform_agnostic_default_size &lt; page_size) {</div><div class='add'>+        return page_size;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return platform_agnostic_default_size;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct io_buffer_blocking_region_argument {</div><div class='add'>+    struct rb_io_buffer *buffer;</div><div class='add'>+    rb_blocking_function_t *function;</div><div class='add'>+    void *data;</div><div class='add'>+    int descriptor;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_blocking_region_begin(VALUE _argument)</div><div class='add'>+{</div><div class='add'>+    struct io_buffer_blocking_region_argument *argument = (void*)_argument;</div><div class='add'>+</div><div class='add'>+    return rb_thread_io_blocking_region(argument-&gt;function, argument-&gt;data, argument-&gt;descriptor);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_blocking_region_ensure(VALUE _argument)</div><div class='add'>+{</div><div class='add'>+    struct io_buffer_blocking_region_argument *argument = (void*)_argument;</div><div class='add'>+</div><div class='add'>+    io_buffer_unlock(argument-&gt;buffer);</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_blocking_region(struct rb_io_buffer *buffer, rb_blocking_function_t *function, void *data, int descriptor)</div><div class='add'>+{</div><div class='add'>+    struct io_buffer_blocking_region_argument argument = {</div><div class='add'>+        .buffer = buffer,</div><div class='add'>+        .function = function,</div><div class='add'>+        .data = data,</div><div class='add'>+        .descriptor = descriptor,</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    // If the buffer is already locked, we can skip the ensure (unlock):</div><div class='add'>+    if (buffer-&gt;flags &amp; RB_IO_BUFFER_LOCKED) {</div><div class='add'>+        return io_buffer_blocking_region_begin((VALUE)&amp;argument);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        // The buffer should be locked for the duration of the blocking region:</div><div class='add'>+        io_buffer_lock(buffer);</div><div class='add'>+</div><div class='add'>+        return rb_ensure(io_buffer_blocking_region_begin, (VALUE)&amp;argument, io_buffer_blocking_region_ensure, (VALUE)&amp;argument);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct io_buffer_read_internal_argument {</div><div class='add'>+    int descriptor;</div><div class='add'>+</div><div class='add'>+    // The base pointer to read from:</div><div class='add'>+    char *base;</div><div class='add'>+    // The size of the buffer:</div><div class='add'>+    size_t size;</div><div class='add'>+</div><div class='add'>+    // The minimum number of bytes to read:</div><div class='add'>+    size_t length;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_read_internal(void *_argument)</div><div class='add'>+{</div><div class='add'>+    size_t total = 0;</div><div class='add'>+    struct io_buffer_read_internal_argument *argument = _argument;</div><div class='add'>+</div><div class='add'>+    while (true) {</div><div class='add'>+        ssize_t result = read(argument-&gt;descriptor, argument-&gt;base, argument-&gt;size);</div><div class='add'>+</div><div class='add'>+        if (result &lt; 0) {</div><div class='add'>+            return rb_fiber_scheduler_io_result(result, errno);</div><div class='add'>+        }</div><div class='add'>+        else if (result == 0) {</div><div class='add'>+            return rb_fiber_scheduler_io_result(total, 0);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            total += result;</div><div class='add'>+</div><div class='add'>+            if (total &gt;= argument-&gt;length) {</div><div class='add'>+                return rb_fiber_scheduler_io_result(total, 0);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            argument-&gt;base = argument-&gt;base + result;</div><div class='add'>+            argument-&gt;size = argument-&gt;size - result;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_read(VALUE self, VALUE io, size_t length, size_t offset)</div><div class='add'>+{</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        VALUE result = rb_fiber_scheduler_io_read(scheduler, io, self, length, offset);</div><div class='add'>+</div><div class='add'>+        if (!UNDEF_P(result)) {</div><div class='add'>+            return result;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_validate_range(buffer, offset, length);</div><div class='add'>+</div><div class='add'>+    int descriptor = rb_io_descriptor(io);</div><div class='add'>+</div><div class='add'>+    void * base;</div><div class='add'>+    size_t size;</div><div class='add'>+    io_buffer_get_bytes_for_writing(buffer, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    base = (unsigned char*)base + offset;</div><div class='add'>+    size = size - offset;</div><div class='add'>+</div><div class='add'>+    struct io_buffer_read_internal_argument argument = {</div><div class='add'>+        .descriptor = descriptor,</div><div class='add'>+        .base = base,</div><div class='add'>+        .size = size,</div><div class='add'>+        .length = length,</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    return io_buffer_blocking_region(buffer, io_buffer_read_internal, &amp;argument, descriptor);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: read(io, [length, [offset]]) -&gt; read length or -errno</div><div class='add'>+ *</div><div class='add'>+ *  Read at least +length+ bytes from the +io+, into the buffer starting at</div><div class='add'>+ *  +offset+. If an error occurs, return &lt;tt&gt;-errno&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  If +length+ is not given or +nil+, it defaults to the size of the buffer</div><div class='add'>+ *  minus the offset, i.e. the entire buffer.</div><div class='add'>+ *</div><div class='add'>+ *  If +length+ is zero, exactly one &lt;tt&gt;read&lt;/tt&gt; operation will occur.</div><div class='add'>+ *</div><div class='add'>+ *  If +offset+ is not given, it defaults to zero, i.e. the beginning of the</div><div class='add'>+ *  buffer.</div><div class='add'>+ *</div><div class='add'>+ *    IO::Buffer.for('test') do |buffer|</div><div class='add'>+ *      p buffer</div><div class='add'>+ *      # =&gt;</div><div class='add'>+ *      # &lt;IO::Buffer 0x00007fca40087c38+4 SLICE&gt;</div><div class='add'>+ *      # 0x00000000  74 65 73 74         test</div><div class='add'>+ *      buffer.read(File.open('/dev/urandom', 'rb'), 2)</div><div class='add'>+ *      p buffer</div><div class='add'>+ *      # =&gt;</div><div class='add'>+ *      # &lt;IO::Buffer 0x00007f3bc65f2a58+4 EXTERNAL SLICE&gt;</div><div class='add'>+ *      # 0x00000000  05 35 73 74         .5st</div><div class='add'>+ *    end</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_read(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 1, 3);</div><div class='add'>+</div><div class='add'>+    VALUE io = argv[0];</div><div class='add'>+</div><div class='add'>+    size_t length, offset;</div><div class='add'>+    io_buffer_extract_length_offset(self, argc-1, argv+1, &amp;length, &amp;offset);</div><div class='add'>+</div><div class='add'>+    return rb_io_buffer_read(self, io, length, offset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct io_buffer_pread_internal_argument {</div><div class='add'>+    int descriptor;</div><div class='add'>+    void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    off_t offset;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_pread_internal(void *_argument)</div><div class='add'>+{</div><div class='add'>+    struct io_buffer_pread_internal_argument *argument = _argument;</div><div class='add'>+</div><div class='add'>+#if defined(HAVE_PREAD)</div><div class='add'>+    ssize_t result = pread(argument-&gt;descriptor, argument-&gt;base, argument-&gt;size, argument-&gt;offset);</div><div class='add'>+#else</div><div class='add'>+    // This emulation is not thread safe.</div><div class='add'>+    rb_off_t offset = lseek(argument-&gt;descriptor, 0, SEEK_CUR);</div><div class='add'>+    if (offset == (rb_off_t)-1)</div><div class='add'>+        return rb_fiber_scheduler_io_result(-1, errno);</div><div class='add'>+</div><div class='add'>+    if (lseek(argument-&gt;descriptor, argument-&gt;offset, SEEK_SET) == (rb_off_t)-1)</div><div class='add'>+        return rb_fiber_scheduler_io_result(-1, errno);</div><div class='add'>+</div><div class='add'>+    ssize_t result = read(argument-&gt;descriptor, argument-&gt;base, argument-&gt;size);</div><div class='add'>+</div><div class='add'>+    if (lseek(argument-&gt;descriptor, offset, SEEK_SET) == (rb_off_t)-1)</div><div class='add'>+        return rb_fiber_scheduler_io_result(-1, errno);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return rb_fiber_scheduler_io_result(result, errno);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_pread(VALUE self, VALUE io, rb_off_t from, size_t length, size_t offset)</div><div class='add'>+{</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        VALUE result = rb_fiber_scheduler_io_pread(scheduler, io, from, self, length, offset);</div><div class='add'>+</div><div class='add'>+        if (!UNDEF_P(result)) {</div><div class='add'>+            return result;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_validate_range(buffer, offset, length);</div><div class='add'>+</div><div class='add'>+    int descriptor = rb_io_descriptor(io);</div><div class='add'>+</div><div class='add'>+    void * base;</div><div class='add'>+    size_t size;</div><div class='add'>+    io_buffer_get_bytes_for_writing(buffer, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    struct io_buffer_pread_internal_argument argument = {</div><div class='add'>+        .descriptor = descriptor,</div><div class='add'>+</div><div class='add'>+        // Move the base pointer to the offset:</div><div class='add'>+        .base = (unsigned char*)base + offset,</div><div class='add'>+</div><div class='add'>+        // And the size to the length of buffer we want to read:</div><div class='add'>+        .size = length,</div><div class='add'>+</div><div class='add'>+        // From the offset in the file we want to read from:</div><div class='add'>+        .offset = from,</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    return io_buffer_blocking_region(buffer, io_buffer_pread_internal, &amp;argument, descriptor);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: pread(io, from, length, [offset]) -&gt; read length or -errno</div><div class='add'>+ *</div><div class='add'>+ *  Read at most +length+ bytes from +io+ into the buffer, starting at</div><div class='add'>+ *  +from+, and put it in buffer starting from specified +offset+.</div><div class='add'>+ *  If an error occurs, return &lt;tt&gt;-errno&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  If +offset+ is not given, put it at the beginning of the buffer.</div><div class='add'>+ *</div><div class='add'>+ *  Example:</div><div class='add'>+ *</div><div class='add'>+ *    IO::Buffer.for('test') do |buffer|</div><div class='add'>+ *      p buffer</div><div class='add'>+ *      # =&gt;</div><div class='add'>+ *      # &lt;IO::Buffer 0x00007fca40087c38+4 SLICE&gt;</div><div class='add'>+ *      # 0x00000000  74 65 73 74         test</div><div class='add'>+ *</div><div class='add'>+ *      # take 2 bytes from the beginning of urandom,</div><div class='add'>+ *      # put them in buffer starting from position 2</div><div class='add'>+ *      buffer.pread(File.open('/dev/urandom', 'rb'), 0, 2, 2)</div><div class='add'>+ *      p buffer</div><div class='add'>+ *      # =&gt;</div><div class='add'>+ *      # &lt;IO::Buffer 0x00007f3bc65f2a58+4 EXTERNAL SLICE&gt;</div><div class='add'>+ *      # 0x00000000  05 35 73 74         te.5</div><div class='add'>+ *    end</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_pread(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 2, 4);</div><div class='add'>+</div><div class='add'>+    VALUE io = argv[0];</div><div class='add'>+    rb_off_t from = NUM2OFFT(argv[1]);</div><div class='add'>+</div><div class='add'>+    size_t length, offset;</div><div class='add'>+    io_buffer_extract_length_offset(self, argc-2, argv+2, &amp;length, &amp;offset);</div><div class='add'>+</div><div class='add'>+    return rb_io_buffer_pread(self, io, from, length, offset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct io_buffer_write_internal_argument {</div><div class='add'>+    int descriptor;</div><div class='add'>+</div><div class='add'>+    // The base pointer to write from:</div><div class='add'>+    const char *base;</div><div class='add'>+    // The size of the buffer:</div><div class='add'>+    size_t size;</div><div class='add'>+</div><div class='add'>+    // The minimum length to write:</div><div class='add'>+    size_t length;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_write_internal(void *_argument)</div><div class='add'>+{</div><div class='add'>+    size_t total = 0;</div><div class='add'>+    struct io_buffer_write_internal_argument *argument = _argument;</div><div class='add'>+</div><div class='add'>+    while (true) {</div><div class='add'>+        ssize_t result = write(argument-&gt;descriptor, argument-&gt;base, argument-&gt;size);</div><div class='add'>+</div><div class='add'>+        if (result &lt; 0) {</div><div class='add'>+            return rb_fiber_scheduler_io_result(result, errno);</div><div class='add'>+        }</div><div class='add'>+        else if (result == 0) {</div><div class='add'>+            return rb_fiber_scheduler_io_result(total, 0);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            total += result;</div><div class='add'>+</div><div class='add'>+            if (total &gt;= argument-&gt;length) {</div><div class='add'>+                return rb_fiber_scheduler_io_result(total, 0);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            argument-&gt;base = argument-&gt;base + result;</div><div class='add'>+            argument-&gt;size = argument-&gt;size - result;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_write(VALUE self, VALUE io, size_t length, size_t offset)</div><div class='add'>+{</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        VALUE result = rb_fiber_scheduler_io_write(scheduler, io, self, length, offset);</div><div class='add'>+</div><div class='add'>+        if (!UNDEF_P(result)) {</div><div class='add'>+            return result;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_validate_range(buffer, offset, length);</div><div class='add'>+</div><div class='add'>+    int descriptor = rb_io_descriptor(io);</div><div class='add'>+</div><div class='add'>+    const void * base;</div><div class='add'>+    size_t size;</div><div class='add'>+    io_buffer_get_bytes_for_reading(buffer, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    base = (unsigned char*)base + offset;</div><div class='add'>+    size = size - offset;</div><div class='add'>+</div><div class='add'>+    struct io_buffer_write_internal_argument argument = {</div><div class='add'>+        .descriptor = descriptor,</div><div class='add'>+        .base = base,</div><div class='add'>+        .size = size,</div><div class='add'>+        .length = length,</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    return io_buffer_blocking_region(buffer, io_buffer_write_internal, &amp;argument, descriptor);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: write(io, [length, [offset]]) -&gt; written length or -errno</div><div class='add'>+ *</div><div class='add'>+ *  Write at least +length+ bytes from the buffer starting at +offset+, into the +io+.</div><div class='add'>+ *  If an error occurs, return &lt;tt&gt;-errno&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  If +length+ is not given or +nil+, it defaults to the size of the buffer</div><div class='add'>+ *  minus the offset, i.e. the entire buffer.</div><div class='add'>+ *</div><div class='add'>+ *  If +length+ is zero, exactly one &lt;tt&gt;write&lt;/tt&gt; operation will occur.</div><div class='add'>+ *</div><div class='add'>+ *  If +offset+ is not given, it defaults to zero, i.e. the beginning of the</div><div class='add'>+ *  buffer.</div><div class='add'>+ *</div><div class='add'>+ *    out = File.open('output.txt', 'wb')</div><div class='add'>+ *    IO::Buffer.for('1234567').write(out, 3)</div><div class='add'>+ *</div><div class='add'>+ *  This leads to +123+ being written into &lt;tt&gt;output.txt&lt;/tt&gt;</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_write(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 1, 3);</div><div class='add'>+</div><div class='add'>+    VALUE io = argv[0];</div><div class='add'>+</div><div class='add'>+    size_t length, offset;</div><div class='add'>+    io_buffer_extract_length_offset(self, argc-1, argv+1, &amp;length, &amp;offset);</div><div class='add'>+</div><div class='add'>+    return rb_io_buffer_write(self, io, length, offset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct io_buffer_pwrite_internal_argument {</div><div class='add'>+    int descriptor;</div><div class='add'>+    const void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    off_t offset;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_pwrite_internal(void *_argument)</div><div class='add'>+{</div><div class='add'>+    struct io_buffer_pwrite_internal_argument *argument = _argument;</div><div class='add'>+</div><div class='add'>+#if defined(HAVE_PWRITE)</div><div class='add'>+    ssize_t result = pwrite(argument-&gt;descriptor, argument-&gt;base, argument-&gt;size, argument-&gt;offset);</div><div class='add'>+#else</div><div class='add'>+    // This emulation is not thread safe.</div><div class='add'>+    rb_off_t offset = lseek(argument-&gt;descriptor, 0, SEEK_CUR);</div><div class='add'>+    if (offset == (rb_off_t)-1)</div><div class='add'>+        return rb_fiber_scheduler_io_result(-1, errno);</div><div class='add'>+</div><div class='add'>+    if (lseek(argument-&gt;descriptor, argument-&gt;offset, SEEK_SET) == (rb_off_t)-1)</div><div class='add'>+        return rb_fiber_scheduler_io_result(-1, errno);</div><div class='add'>+</div><div class='add'>+    ssize_t result = write(argument-&gt;descriptor, argument-&gt;base, argument-&gt;size);</div><div class='add'>+</div><div class='add'>+    if (lseek(argument-&gt;descriptor, offset, SEEK_SET) == (rb_off_t)-1)</div><div class='add'>+        return rb_fiber_scheduler_io_result(-1, errno);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    return rb_fiber_scheduler_io_result(result, errno);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_io_buffer_pwrite(VALUE self, VALUE io, rb_off_t from, size_t length, size_t offset)</div><div class='add'>+{</div><div class='add'>+    VALUE scheduler = rb_fiber_scheduler_current();</div><div class='add'>+    if (scheduler != Qnil) {</div><div class='add'>+        VALUE result = rb_fiber_scheduler_io_pwrite(scheduler, io, from, self, length, offset);</div><div class='add'>+</div><div class='add'>+        if (!UNDEF_P(result)) {</div><div class='add'>+            return result;</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_validate_range(buffer, offset, length);</div><div class='add'>+</div><div class='add'>+    int descriptor = rb_io_descriptor(io);</div><div class='add'>+</div><div class='add'>+    const void * base;</div><div class='add'>+    size_t size;</div><div class='add'>+    io_buffer_get_bytes_for_reading(buffer, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    struct io_buffer_pwrite_internal_argument argument = {</div><div class='add'>+        .descriptor = descriptor,</div><div class='add'>+</div><div class='add'>+        // Move the base pointer to the offset:</div><div class='add'>+        .base = (unsigned char *)base + offset,</div><div class='add'>+</div><div class='add'>+        // And the size to the length of buffer we want to read:</div><div class='add'>+        .size = length,</div><div class='add'>+</div><div class='add'>+        // And the offset in the file we want to write from:</div><div class='add'>+        .offset = from,</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    return io_buffer_blocking_region(buffer, io_buffer_pwrite_internal, &amp;argument, descriptor);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq: pwrite(io, from, length, [offset]) -&gt; written length or -errno</div><div class='add'>+ *</div><div class='add'>+ *  Writes +length+ bytes from buffer into +io+, starting at</div><div class='add'>+ *  +offset+ in the buffer. If an error occurs, return &lt;tt&gt;-errno&lt;/tt&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  If +offset+ is not given, the bytes are taken from the beginning of the</div><div class='add'>+ *  buffer. If the +offset+ is given and is beyond the end of the file, the</div><div class='add'>+ *  gap will be filled with null (0 value) bytes.</div><div class='add'>+ *</div><div class='add'>+ *    out = File.open('output.txt', File::RDWR) # open for read/write, no truncation</div><div class='add'>+ *    IO::Buffer.for('1234567').pwrite(out, 2, 3, 1)</div><div class='add'>+ *</div><div class='add'>+ *  This leads to +234+ (3 bytes, starting from position 1) being written into</div><div class='add'>+ *  &lt;tt&gt;output.txt&lt;/tt&gt;, starting from file position 2.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_pwrite(int argc, VALUE *argv, VALUE self)</div><div class='add'>+{</div><div class='add'>+    rb_check_arity(argc, 2, 4);</div><div class='add'>+</div><div class='add'>+    VALUE io = argv[0];</div><div class='add'>+    rb_off_t from = NUM2OFFT(argv[1]);</div><div class='add'>+</div><div class='add'>+    size_t length, offset;</div><div class='add'>+    io_buffer_extract_length_offset(self, argc-2, argv+2, &amp;length, &amp;offset);</div><div class='add'>+</div><div class='add'>+    return rb_io_buffer_pwrite(self, io, from, length, offset);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+io_buffer_check_mask(const struct rb_io_buffer *buffer)</div><div class='add'>+{</div><div class='add'>+    if (buffer-&gt;size == 0)</div><div class='add'>+        rb_raise(rb_eIOBufferMaskError, "Zero-length mask given!");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+memory_and(unsigned char * restrict output, unsigned char * restrict base, size_t size, unsigned char * restrict mask, size_t mask_size)</div><div class='add'>+{</div><div class='add'>+    for (size_t offset = 0; offset &lt; size; offset += 1) {</div><div class='add'>+        output[offset] = base[offset] &amp; mask[offset % mask_size];</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    source &amp; mask -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Generate a new buffer the same size as the source by applying the binary AND</div><div class='add'>+ *  operation to the source, using the mask, repeating as necessary.</div><div class='add'>+ *</div><div class='add'>+ *    IO::Buffer.for("1234567890") &amp; IO::Buffer.for("\xFF\x00\x00\xFF")</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x00005589b2758480+4 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  31 00 00 34 35 00 00 38 39 00                   1..45..89.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_and(VALUE self, VALUE mask)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *mask_buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(mask, struct rb_io_buffer, &amp;rb_io_buffer_type, mask_buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_check_mask(mask_buffer);</div><div class='add'>+</div><div class='add'>+    VALUE output = rb_io_buffer_new(NULL, buffer-&gt;size, io_flags_for_size(buffer-&gt;size));</div><div class='add'>+    struct rb_io_buffer *output_buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(output, struct rb_io_buffer, &amp;rb_io_buffer_type, output_buffer);</div><div class='add'>+</div><div class='add'>+    memory_and(output_buffer-&gt;base, buffer-&gt;base, buffer-&gt;size, mask_buffer-&gt;base, mask_buffer-&gt;size);</div><div class='add'>+</div><div class='add'>+    return output;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+memory_or(unsigned char * restrict output, unsigned char * restrict base, size_t size, unsigned char * restrict mask, size_t mask_size)</div><div class='add'>+{</div><div class='add'>+    for (size_t offset = 0; offset &lt; size; offset += 1) {</div><div class='add'>+        output[offset] = base[offset] | mask[offset % mask_size];</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    source | mask -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Generate a new buffer the same size as the source by applying the binary OR</div><div class='add'>+ *  operation to the source, using the mask, repeating as necessary.</div><div class='add'>+ *</div><div class='add'>+ *    IO::Buffer.for("1234567890") | IO::Buffer.for("\xFF\x00\x00\xFF")</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000561785ae3480+10 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  ff 32 33 ff ff 36 37 ff ff 30                   .23..67..0</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_or(VALUE self, VALUE mask)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *mask_buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(mask, struct rb_io_buffer, &amp;rb_io_buffer_type, mask_buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_check_mask(mask_buffer);</div><div class='add'>+</div><div class='add'>+    VALUE output = rb_io_buffer_new(NULL, buffer-&gt;size, io_flags_for_size(buffer-&gt;size));</div><div class='add'>+    struct rb_io_buffer *output_buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(output, struct rb_io_buffer, &amp;rb_io_buffer_type, output_buffer);</div><div class='add'>+</div><div class='add'>+    memory_or(output_buffer-&gt;base, buffer-&gt;base, buffer-&gt;size, mask_buffer-&gt;base, mask_buffer-&gt;size);</div><div class='add'>+</div><div class='add'>+    return output;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+memory_xor(unsigned char * restrict output, unsigned char * restrict base, size_t size, unsigned char * restrict mask, size_t mask_size)</div><div class='add'>+{</div><div class='add'>+    for (size_t offset = 0; offset &lt; size; offset += 1) {</div><div class='add'>+        output[offset] = base[offset] ^ mask[offset % mask_size];</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    source ^ mask -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Generate a new buffer the same size as the source by applying the binary XOR</div><div class='add'>+ *  operation to the source, using the mask, repeating as necessary.</div><div class='add'>+ *</div><div class='add'>+ *    IO::Buffer.for("1234567890") ^ IO::Buffer.for("\xFF\x00\x00\xFF")</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000055a2d5d10480+10 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  ce 32 33 cb ca 36 37 c7 c6 30                   .23..67..0</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_xor(VALUE self, VALUE mask)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *mask_buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(mask, struct rb_io_buffer, &amp;rb_io_buffer_type, mask_buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_check_mask(mask_buffer);</div><div class='add'>+</div><div class='add'>+    VALUE output = rb_io_buffer_new(NULL, buffer-&gt;size, io_flags_for_size(buffer-&gt;size));</div><div class='add'>+    struct rb_io_buffer *output_buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(output, struct rb_io_buffer, &amp;rb_io_buffer_type, output_buffer);</div><div class='add'>+</div><div class='add'>+    memory_xor(output_buffer-&gt;base, buffer-&gt;base, buffer-&gt;size, mask_buffer-&gt;base, mask_buffer-&gt;size);</div><div class='add'>+</div><div class='add'>+    return output;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+memory_not(unsigned char * restrict output, unsigned char * restrict base, size_t size)</div><div class='add'>+{</div><div class='add'>+    for (size_t offset = 0; offset &lt; size; offset += 1) {</div><div class='add'>+        output[offset] = ~base[offset];</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    ~source -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Generate a new buffer the same size as the source by applying the binary NOT</div><div class='add'>+ *  operation to the source.</div><div class='add'>+ *</div><div class='add'>+ *    ~IO::Buffer.for("1234567890")</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000055a5ac42f120+10 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  ce cd cc cb ca c9 c8 c7 c6 cf                   ..........</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_not(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    VALUE output = rb_io_buffer_new(NULL, buffer-&gt;size, io_flags_for_size(buffer-&gt;size));</div><div class='add'>+    struct rb_io_buffer *output_buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(output, struct rb_io_buffer, &amp;rb_io_buffer_type, output_buffer);</div><div class='add'>+</div><div class='add'>+    memory_not(output_buffer-&gt;base, buffer-&gt;base, buffer-&gt;size);</div><div class='add'>+</div><div class='add'>+    return output;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+io_buffer_overlaps(const struct rb_io_buffer *a, const struct rb_io_buffer *b)</div><div class='add'>+{</div><div class='add'>+    if (a-&gt;base &gt; b-&gt;base) {</div><div class='add'>+        return io_buffer_overlaps(b, a);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return (b-&gt;base &gt;= a-&gt;base) &amp;&amp; (b-&gt;base &lt;= (void*)((unsigned char *)a-&gt;base + a-&gt;size));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+io_buffer_check_overlaps(struct rb_io_buffer *a, struct rb_io_buffer *b)</div><div class='add'>+{</div><div class='add'>+    if (io_buffer_overlaps(a, b))</div><div class='add'>+        rb_raise(rb_eIOBufferMaskError, "Mask overlaps source buffer!");</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+memory_and_inplace(unsigned char * restrict base, size_t size, unsigned char * restrict mask, size_t mask_size)</div><div class='add'>+{</div><div class='add'>+    for (size_t offset = 0; offset &lt; size; offset += 1) {</div><div class='add'>+        base[offset] &amp;= mask[offset % mask_size];</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    source.and!(mask) -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Modify the source buffer in place by applying the binary AND</div><div class='add'>+ *  operation to the source, using the mask, repeating as necessary.</div><div class='add'>+ *</div><div class='add'>+ *    source = IO::Buffer.for("1234567890").dup # Make a read/write copy.</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000056307a0d0c20+10 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  31 32 33 34 35 36 37 38 39 30                   1234567890</div><div class='add'>+ *</div><div class='add'>+ *    source.and!(IO::Buffer.for("\xFF\x00\x00\xFF"))</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000056307a0d0c20+10 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  31 00 00 34 35 00 00 38 39 00                   1..45..89.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_and_inplace(VALUE self, VALUE mask)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *mask_buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(mask, struct rb_io_buffer, &amp;rb_io_buffer_type, mask_buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_check_mask(mask_buffer);</div><div class='add'>+    io_buffer_check_overlaps(buffer, mask_buffer);</div><div class='add'>+</div><div class='add'>+    void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    io_buffer_get_bytes_for_writing(buffer, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    memory_and_inplace(base, size, mask_buffer-&gt;base, mask_buffer-&gt;size);</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+memory_or_inplace(unsigned char * restrict base, size_t size, unsigned char * restrict mask, size_t mask_size)</div><div class='add'>+{</div><div class='add'>+    for (size_t offset = 0; offset &lt; size; offset += 1) {</div><div class='add'>+        base[offset] |= mask[offset % mask_size];</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    source.or!(mask) -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Modify the source buffer in place by applying the binary OR</div><div class='add'>+ *  operation to the source, using the mask, repeating as necessary.</div><div class='add'>+ *</div><div class='add'>+ *    source = IO::Buffer.for("1234567890").dup # Make a read/write copy.</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000056307a272350+10 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  31 32 33 34 35 36 37 38 39 30                   1234567890</div><div class='add'>+ *</div><div class='add'>+ *    source.or!(IO::Buffer.for("\xFF\x00\x00\xFF"))</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000056307a272350+10 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  ff 32 33 ff ff 36 37 ff ff 30                   .23..67..0</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_or_inplace(VALUE self, VALUE mask)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *mask_buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(mask, struct rb_io_buffer, &amp;rb_io_buffer_type, mask_buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_check_mask(mask_buffer);</div><div class='add'>+    io_buffer_check_overlaps(buffer, mask_buffer);</div><div class='add'>+</div><div class='add'>+    void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    io_buffer_get_bytes_for_writing(buffer, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    memory_or_inplace(base, size, mask_buffer-&gt;base, mask_buffer-&gt;size);</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+memory_xor_inplace(unsigned char * restrict base, size_t size, unsigned char * restrict mask, size_t mask_size)</div><div class='add'>+{</div><div class='add'>+    for (size_t offset = 0; offset &lt; size; offset += 1) {</div><div class='add'>+        base[offset] ^= mask[offset % mask_size];</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    source.xor!(mask) -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Modify the source buffer in place by applying the binary XOR</div><div class='add'>+ *  operation to the source, using the mask, repeating as necessary.</div><div class='add'>+ *</div><div class='add'>+ *    source = IO::Buffer.for("1234567890").dup # Make a read/write copy.</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000056307a25b3e0+10 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  31 32 33 34 35 36 37 38 39 30                   1234567890</div><div class='add'>+ *</div><div class='add'>+ *    source.xor!(IO::Buffer.for("\xFF\x00\x00\xFF"))</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000056307a25b3e0+10 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  ce 32 33 cb ca 36 37 c7 c6 30                   .23..67..0</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_xor_inplace(VALUE self, VALUE mask)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    struct rb_io_buffer *mask_buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(mask, struct rb_io_buffer, &amp;rb_io_buffer_type, mask_buffer);</div><div class='add'>+</div><div class='add'>+    io_buffer_check_mask(mask_buffer);</div><div class='add'>+    io_buffer_check_overlaps(buffer, mask_buffer);</div><div class='add'>+</div><div class='add'>+    void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    io_buffer_get_bytes_for_writing(buffer, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    memory_xor_inplace(base, size, mask_buffer-&gt;base, mask_buffer-&gt;size);</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+memory_not_inplace(unsigned char * restrict base, size_t size)</div><div class='add'>+{</div><div class='add'>+    for (size_t offset = 0; offset &lt; size; offset += 1) {</div><div class='add'>+        base[offset] = ~base[offset];</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *    source.not! -&gt; io_buffer</div><div class='add'>+ *</div><div class='add'>+ *  Modify the source buffer in place by applying the binary NOT</div><div class='add'>+ *  operation to the source.</div><div class='add'>+ *</div><div class='add'>+ *    source = IO::Buffer.for("1234567890").dup # Make a read/write copy.</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000056307a33a450+10 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  31 32 33 34 35 36 37 38 39 30                   1234567890</div><div class='add'>+ *</div><div class='add'>+ *    source.not!</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x000056307a33a450+10 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  ce cd cc cb ca c9 c8 c7 c6 cf                   ..........</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+io_buffer_not_inplace(VALUE self)</div><div class='add'>+{</div><div class='add'>+    struct rb_io_buffer *buffer = NULL;</div><div class='add'>+    TypedData_Get_Struct(self, struct rb_io_buffer, &amp;rb_io_buffer_type, buffer);</div><div class='add'>+</div><div class='add'>+    void *base;</div><div class='add'>+    size_t size;</div><div class='add'>+    io_buffer_get_bytes_for_writing(buffer, &amp;base, &amp;size);</div><div class='add'>+</div><div class='add'>+    memory_not_inplace(base, size);</div><div class='add'>+</div><div class='add'>+    return self;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  Document-class: IO::Buffer</div><div class='add'>+ *</div><div class='add'>+ *  IO::Buffer is a low-level efficient buffer for input/output. There are three</div><div class='add'>+ *  ways of using buffer:</div><div class='add'>+ *</div><div class='add'>+ *  * Create an empty buffer with ::new, fill it with buffer using #copy or</div><div class='add'>+ *    #set_value, #set_string, get buffer with #get_string;</div><div class='add'>+ *  * Create a buffer mapped to some string with ::for, then it could be used</div><div class='add'>+ *    both for reading with #get_string or #get_value, and writing (writing will</div><div class='add'>+ *    change the source string, too);</div><div class='add'>+ *  * Create a buffer mapped to some file with ::map, then it could be used for</div><div class='add'>+ *    reading and writing the underlying file.</div><div class='add'>+ *</div><div class='add'>+ *  Interaction with string and file memory is performed by efficient low-level</div><div class='add'>+ *  C mechanisms like `memcpy`.</div><div class='add'>+ *</div><div class='add'>+ *  The class is meant to be an utility for implementing more high-level mechanisms</div><div class='add'>+ *  like Fiber::SchedulerInterface#io_read and Fiber::SchedulerInterface#io_write.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;Examples of usage:&lt;/b&gt;</div><div class='add'>+ *</div><div class='add'>+ *  Empty buffer:</div><div class='add'>+ *</div><div class='add'>+ *    buffer = IO::Buffer.new(8)  # create empty 8-byte buffer</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x0000555f5d1a5c50+8 INTERNAL&gt;</div><div class='add'>+ *    # ...</div><div class='add'>+ *    buffer</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # &lt;IO::Buffer 0x0000555f5d156ab0+8 INTERNAL&gt;</div><div class='add'>+ *    # 0x00000000  00 00 00 00 00 00 00 00</div><div class='add'>+ *    buffer.set_string('test', 2) # put there bytes of the "test" string, starting from offset 2</div><div class='add'>+ *    # =&gt; 4</div><div class='add'>+ *    buffer.get_string  # get the result</div><div class='add'>+ *    # =&gt; "\x00\x00test\x00\x00"</div><div class='add'>+ *</div><div class='add'>+ *  \Buffer from string:</div><div class='add'>+ *</div><div class='add'>+ *    string = 'buffer'</div><div class='add'>+ *    buffer = IO::Buffer.for(string)</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x00007f3f02be9b18+4 SLICE&gt;</div><div class='add'>+ *    # ...</div><div class='add'>+ *    buffer</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x00007f3f02be9b18+4 SLICE&gt;</div><div class='add'>+ *    # 0x00000000  64 61 74 61                                     buffer</div><div class='add'>+ *</div><div class='add'>+ *    buffer.get_string(2)  # read content starting from offset 2</div><div class='add'>+ *    # =&gt; "ta"</div><div class='add'>+ *    buffer.set_string('---', 1) # write content, starting from offset 1</div><div class='add'>+ *    # =&gt; 3</div><div class='add'>+ *    buffer</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x00007f3f02be9b18+4 SLICE&gt;</div><div class='add'>+ *    # 0x00000000  64 2d 2d 2d                                     d---</div><div class='add'>+ *    string  # original string changed, too</div><div class='add'>+ *    # =&gt; "d---"</div><div class='add'>+ *</div><div class='add'>+ *  \Buffer from file:</div><div class='add'>+ *</div><div class='add'>+ *    File.write('test.txt', 'test buffer')</div><div class='add'>+ *    # =&gt; 9</div><div class='add'>+ *    buffer = IO::Buffer.map(File.open('test.txt'))</div><div class='add'>+ *    # =&gt;</div><div class='add'>+ *    # #&lt;IO::Buffer 0x00007f3f0768c000+9 MAPPED IMMUTABLE&gt;</div><div class='add'>+ *    # ...</div><div class='add'>+ *    buffer.get_string(5, 2) # read 2 bytes, starting from offset 5</div><div class='add'>+ *    # =&gt; "da"</div><div class='add'>+ *    buffer.set_string('---', 1) # attempt to write</div><div class='add'>+ *    # in `set_string': Buffer is not writable! (IO::Buffer::AccessError)</div><div class='add'>+ *</div><div class='add'>+ *    # To create writable file-mapped buffer</div><div class='add'>+ *    # Open file for read-write, pass size, offset, and flags=0</div><div class='add'>+ *    buffer = IO::Buffer.map(File.open('test.txt', 'r+'), 9, 0, 0)</div><div class='add'>+ *    buffer.set_string('---', 1)</div><div class='add'>+ *    # =&gt; 3 -- bytes written</div><div class='add'>+ *    File.read('test.txt')</div><div class='add'>+ *    # =&gt; "t--- buffer"</div><div class='add'>+ *</div><div class='add'>+ *  &lt;b&gt;The class is experimental and the interface is subject to change.&lt;/b&gt;</div><div class='add'>+ */</div><div class='add'>+void</div><div class='add'>+Init_IO_Buffer(void)</div><div class='add'>+{</div><div class='add'>+    rb_cIOBuffer = rb_define_class_under(rb_cIO, "Buffer", rb_cObject);</div><div class='add'>+    rb_eIOBufferLockedError = rb_define_class_under(rb_cIOBuffer, "LockedError", rb_eRuntimeError);</div><div class='add'>+    rb_eIOBufferAllocationError = rb_define_class_under(rb_cIOBuffer, "AllocationError", rb_eRuntimeError);</div><div class='add'>+    rb_eIOBufferAccessError = rb_define_class_under(rb_cIOBuffer, "AccessError", rb_eRuntimeError);</div><div class='add'>+    rb_eIOBufferInvalidatedError = rb_define_class_under(rb_cIOBuffer, "InvalidatedError", rb_eRuntimeError);</div><div class='add'>+    rb_eIOBufferMaskError = rb_define_class_under(rb_cIOBuffer, "MaskError", rb_eArgError);</div><div class='add'>+</div><div class='add'>+    rb_define_alloc_func(rb_cIOBuffer, rb_io_buffer_type_allocate);</div><div class='add'>+    rb_define_singleton_method(rb_cIOBuffer, "for", rb_io_buffer_type_for, 1);</div><div class='add'>+</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    SYSTEM_INFO info;</div><div class='add'>+    GetSystemInfo(&amp;info);</div><div class='add'>+    RUBY_IO_BUFFER_PAGE_SIZE = info.dwPageSize;</div><div class='add'>+#else /* not WIN32 */</div><div class='add'>+    RUBY_IO_BUFFER_PAGE_SIZE = sysconf(_SC_PAGESIZE);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    RUBY_IO_BUFFER_DEFAULT_SIZE = io_buffer_default_size(RUBY_IO_BUFFER_PAGE_SIZE);</div><div class='add'>+</div><div class='add'>+    // Efficient sizing of mapped buffers:</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "PAGE_SIZE", SIZET2NUM(RUBY_IO_BUFFER_PAGE_SIZE));</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "DEFAULT_SIZE", SIZET2NUM(RUBY_IO_BUFFER_DEFAULT_SIZE));</div><div class='add'>+</div><div class='add'>+    rb_define_singleton_method(rb_cIOBuffer, "map", io_buffer_map, -1);</div><div class='add'>+</div><div class='add'>+    // General use:</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "initialize", rb_io_buffer_initialize, -1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "initialize_copy", rb_io_buffer_initialize_copy, 1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "inspect", rb_io_buffer_inspect, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "hexdump", rb_io_buffer_hexdump, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "to_s", rb_io_buffer_to_s, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "size", rb_io_buffer_size, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "valid?", rb_io_buffer_valid_p, 0);</div><div class='add'>+</div><div class='add'>+    // Ownership:</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "transfer", rb_io_buffer_transfer, 0);</div><div class='add'>+</div><div class='add'>+    // Flags:</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "EXTERNAL", RB_INT2NUM(RB_IO_BUFFER_EXTERNAL));</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "INTERNAL", RB_INT2NUM(RB_IO_BUFFER_INTERNAL));</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "MAPPED", RB_INT2NUM(RB_IO_BUFFER_MAPPED));</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "SHARED", RB_INT2NUM(RB_IO_BUFFER_SHARED));</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "LOCKED", RB_INT2NUM(RB_IO_BUFFER_LOCKED));</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "PRIVATE", RB_INT2NUM(RB_IO_BUFFER_PRIVATE));</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "READONLY", RB_INT2NUM(RB_IO_BUFFER_READONLY));</div><div class='add'>+</div><div class='add'>+    // Endian:</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "LITTLE_ENDIAN", RB_INT2NUM(RB_IO_BUFFER_LITTLE_ENDIAN));</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "BIG_ENDIAN", RB_INT2NUM(RB_IO_BUFFER_BIG_ENDIAN));</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "HOST_ENDIAN", RB_INT2NUM(RB_IO_BUFFER_HOST_ENDIAN));</div><div class='add'>+    rb_define_const(rb_cIOBuffer, "NETWORK_ENDIAN", RB_INT2NUM(RB_IO_BUFFER_NETWORK_ENDIAN));</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "null?", rb_io_buffer_null_p, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "empty?", rb_io_buffer_empty_p, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "external?", rb_io_buffer_external_p, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "internal?", rb_io_buffer_internal_p, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "mapped?", rb_io_buffer_mapped_p, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "shared?", rb_io_buffer_shared_p, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "locked?", rb_io_buffer_locked_p, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "readonly?", io_buffer_readonly_p, 0);</div><div class='add'>+</div><div class='add'>+    // Locking to prevent changes while using pointer:</div><div class='add'>+    // rb_define_method(rb_cIOBuffer, "lock", rb_io_buffer_lock, 0);</div><div class='add'>+    // rb_define_method(rb_cIOBuffer, "unlock", rb_io_buffer_unlock, 0);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "locked", rb_io_buffer_locked, 0);</div><div class='add'>+</div><div class='add'>+    // Manipulation:</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "slice", io_buffer_slice, -1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "&lt;=&gt;", rb_io_buffer_compare, 1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "resize", io_buffer_resize, 1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "clear", io_buffer_clear, -1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "free", rb_io_buffer_free, 0);</div><div class='add'>+</div><div class='add'>+    rb_include_module(rb_cIOBuffer, rb_mComparable);</div><div class='add'>+</div><div class='add'>+#define IO_BUFFER_DEFINE_DATA_TYPE(name) RB_IO_BUFFER_DATA_TYPE_##name = rb_intern_const(#name)</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(U8);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(S8);</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(u16);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(U16);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(s16);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(S16);</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(u32);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(U32);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(s32);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(S32);</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(u64);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(U64);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(s64);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(S64);</div><div class='add'>+</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(f32);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(F32);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(f64);</div><div class='add'>+    IO_BUFFER_DEFINE_DATA_TYPE(F64);</div><div class='add'>+#undef IO_BUFFER_DEFINE_DATA_TYPE</div><div class='add'>+</div><div class='add'>+    rb_define_singleton_method(rb_cIOBuffer, "size_of", io_buffer_size_of, 1);</div><div class='add'>+</div><div class='add'>+    // Data access:</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "get_value", io_buffer_get_value, 2);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "get_values", io_buffer_get_values, 2);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "each", io_buffer_each, -1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "values", io_buffer_values, -1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "each_byte", io_buffer_each_byte, -1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "set_value", io_buffer_set_value, 3);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "set_values", io_buffer_set_values, 3);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "copy", io_buffer_copy, -1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "get_string", io_buffer_get_string, -1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "set_string", io_buffer_set_string, -1);</div><div class='add'>+</div><div class='add'>+    // Binary buffer manipulations:</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "&amp;", io_buffer_and, 1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "|", io_buffer_or, 1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "^", io_buffer_xor, 1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "~", io_buffer_not, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "and!", io_buffer_and_inplace, 1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "or!", io_buffer_or_inplace, 1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "xor!", io_buffer_xor_inplace, 1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "not!", io_buffer_not_inplace, 0);</div><div class='add'>+</div><div class='add'>+    // IO operations:</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "read", io_buffer_read, -1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "pread", io_buffer_pread, -1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "write", io_buffer_write, -1);</div><div class='add'>+    rb_define_method(rb_cIOBuffer, "pwrite", io_buffer_pwrite, -1);</div><div class='add'>+}</div><div class='head'>diff --git a/iseq.c b/iseq.c<br/>index 1f2578a108..d17ce486c5 100644<br/>--- a/<a href='/ruby.git/tree/iseq.c?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>iseq.c</a><br/>+++ b/<a href='/ruby.git/tree/iseq.c?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>iseq.c</a></div><div class='hunk'>@@ -9,24 +9,40 @@</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "internal.h"</div><div class='del'>-#include "ruby/util.h"</div><div class='del'>-#include "eval_intern.h"</div><div class='add'>+#define RUBY_VM_INSNS_INFO 1</div><div class='add'>+/* #define RUBY_MARK_FREE_DEBUG 1 */</div><div class='add'>+</div><div class='add'>+#include "ruby/internal/config.h"</div><div class='ctx'> </div><div class='ctx'> #ifdef HAVE_DLADDR</div><div class='ctx'> # include &lt;dlfcn.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#define RUBY_VM_INSNS_INFO 1</div><div class='del'>-/* #define RUBY_MARK_FREE_DEBUG 1 */</div><div class='add'>+#include "eval_intern.h"</div><div class='ctx'> #include "gc.h"</div><div class='del'>-#include "vm_core.h"</div><div class='del'>-#include "iseq.h"</div><div class='ctx'> #include "id_table.h"</div><div class='del'>-</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include "internal/bits.h"</div><div class='add'>+#include "internal/class.h"</div><div class='add'>+#include "internal/compile.h"</div><div class='add'>+#include "internal/error.h"</div><div class='add'>+#include "internal/file.h"</div><div class='add'>+#include "internal/hash.h"</div><div class='add'>+#include "internal/parse.h"</div><div class='add'>+#include "internal/sanitizers.h"</div><div class='add'>+#include "internal/symbol.h"</div><div class='add'>+#include "internal/thread.h"</div><div class='add'>+#include "internal/variable.h"</div><div class='add'>+#include "iseq.h"</div><div class='add'>+#include "mjit.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "vm_callinfo.h"</div><div class='add'>+#include "yjit.h"</div><div class='add'>+#include "ruby/ractor.h"</div><div class='add'>+#include "builtin.h"</div><div class='ctx'> #include "insns.inc"</div><div class='ctx'> #include "insns_info.inc"</div><div class='del'>-#include "mjit.h"</div><div class='ctx'> </div><div class='ctx'> VALUE rb_cISeq;</div><div class='ctx'> static VALUE iseqw_new(const rb_iseq_t *iseq);</div><div class='hunk'>@@ -44,36 +60,101 @@ static inline VALUE</div><div class='ctx'> obj_resurrect(VALUE obj)</div><div class='ctx'> {</div><div class='ctx'>     if (hidden_obj_p(obj)) {</div><div class='del'>-	switch (BUILTIN_TYPE(obj)) {</div><div class='del'>-	  case T_STRING:</div><div class='del'>-	    obj = rb_str_resurrect(obj);</div><div class='del'>-	    break;</div><div class='del'>-	  case T_ARRAY:</div><div class='del'>-	    obj = rb_ary_resurrect(obj);</div><div class='del'>-	    break;</div><div class='add'>+        switch (BUILTIN_TYPE(obj)) {</div><div class='add'>+          case T_STRING:</div><div class='add'>+            obj = rb_str_resurrect(obj);</div><div class='add'>+            break;</div><div class='add'>+          case T_ARRAY:</div><div class='add'>+            obj = rb_ary_resurrect(obj);</div><div class='add'>+            break;</div><div class='ctx'>           case T_HASH:</div><div class='ctx'>             obj = rb_hash_resurrect(obj);</div><div class='ctx'>             break;</div><div class='del'>-	}</div><div class='add'>+          default:</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='add'>+free_arena(struct iseq_compile_data_storage *cur)</div><div class='add'>+{</div><div class='add'>+    struct iseq_compile_data_storage *next;</div><div class='add'>+</div><div class='add'>+    while (cur) {</div><div class='add'>+        next = cur-&gt;next;</div><div class='add'>+        ruby_xfree(cur);</div><div class='add'>+        cur = next;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='ctx'> compile_data_free(struct iseq_compile_data *compile_data)</div><div class='ctx'> {</div><div class='ctx'>     if (compile_data) {</div><div class='del'>-	struct iseq_compile_data_storage *cur, *next;</div><div class='del'>-	cur = compile_data-&gt;storage_head;</div><div class='del'>-	while (cur) {</div><div class='del'>-	    next = cur-&gt;next;</div><div class='del'>-	    ruby_xfree(cur);</div><div class='del'>-	    cur = next;</div><div class='del'>-	}</div><div class='del'>-	if (compile_data-&gt;ivar_cache_table) {</div><div class='del'>-	    rb_id_table_free(compile_data-&gt;ivar_cache_table);</div><div class='del'>-	}</div><div class='del'>-	ruby_xfree(compile_data);</div><div class='add'>+        free_arena(compile_data-&gt;node.storage_head);</div><div class='add'>+        free_arena(compile_data-&gt;insn.storage_head);</div><div class='add'>+        if (compile_data-&gt;ivar_cache_table) {</div><div class='add'>+            rb_id_table_free(compile_data-&gt;ivar_cache_table);</div><div class='add'>+        }</div><div class='add'>+        ruby_xfree(compile_data);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+remove_from_constant_cache(ID id, IC ic)</div><div class='add'>+{</div><div class='add'>+    rb_vm_t *vm = GET_VM();</div><div class='add'>+    VALUE lookup_result;</div><div class='add'>+    st_data_t ic_data = (st_data_t)ic;</div><div class='add'>+</div><div class='add'>+    if (rb_id_table_lookup(vm-&gt;constant_cache, id, &amp;lookup_result)) {</div><div class='add'>+        st_table *ics = (st_table *)lookup_result;</div><div class='add'>+        st_delete(ics, &amp;ic_data, NULL);</div><div class='add'>+</div><div class='add'>+        if (ics-&gt;num_entries == 0 &amp;&amp;</div><div class='add'>+                // See comment in vm_track_constant_cache on why we need this check</div><div class='add'>+                id != vm-&gt;inserting_constant_cache_id) {</div><div class='add'>+            rb_id_table_delete(vm-&gt;constant_cache, id);</div><div class='add'>+            st_free_table(ics);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// When an ISEQ is being freed, all of its associated ICs are going to go away</div><div class='add'>+// as well. Because of this, we need to iterate over the ICs, and clear them</div><div class='add'>+// from the VM's constant cache.</div><div class='add'>+static void</div><div class='add'>+iseq_clear_ic_references(const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    // In some cases (when there is a compilation error), we end up with</div><div class='add'>+    // ic_size greater than 0, but no allocated is_entries buffer.</div><div class='add'>+    // If there's no is_entries buffer to loop through, return early.</div><div class='add'>+    // [Bug #19173]</div><div class='add'>+    if (!ISEQ_BODY(iseq)-&gt;is_entries) {</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    for (unsigned int ic_idx = 0; ic_idx &lt; ISEQ_BODY(iseq)-&gt;ic_size; ic_idx++) {</div><div class='add'>+        IC ic = &amp;ISEQ_IS_IC_ENTRY(ISEQ_BODY(iseq), ic_idx);</div><div class='add'>+</div><div class='add'>+        // Iterate over the IC's constant path's segments and clean any references to</div><div class='add'>+        // the ICs out of the VM's constant cache table.</div><div class='add'>+        const ID *segments = ic-&gt;segments;</div><div class='add'>+</div><div class='add'>+        // It's possible that segments is NULL if we overallocated an IC but</div><div class='add'>+        // optimizations removed the instruction using it</div><div class='add'>+        if (segments == NULL)</div><div class='add'>+            continue;</div><div class='add'>+</div><div class='add'>+        for (int i = 0; segments[i]; i++) {</div><div class='add'>+            ID id = segments[i];</div><div class='add'>+            if (id == idNULL) continue;</div><div class='add'>+            remove_from_constant_cache(id, ic);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ruby_xfree((void *)segments);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -82,131 +163,220 @@ rb_iseq_free(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     RUBY_FREE_ENTER("iseq");</div><div class='ctx'> </div><div class='del'>-    if (iseq &amp;&amp; iseq-&gt;body) {</div><div class='del'>-	struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='del'>-	mjit_free_iseq(iseq); /* Notify MJIT */</div><div class='del'>-	ruby_xfree((void *)body-&gt;iseq_encoded);</div><div class='del'>-	ruby_xfree((void *)body-&gt;insns_info.body);</div><div class='del'>-	if (body-&gt;insns_info.positions) ruby_xfree((void *)body-&gt;insns_info.positions);</div><div class='add'>+    if (iseq &amp;&amp; ISEQ_BODY(iseq)) {</div><div class='add'>+        iseq_clear_ic_references(iseq);</div><div class='add'>+        struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='add'>+        mjit_free_iseq(iseq); /* Notify MJIT */</div><div class='add'>+#if USE_YJIT</div><div class='add'>+        rb_yjit_iseq_free(body-&gt;yjit_payload);</div><div class='add'>+#endif</div><div class='add'>+        ruby_xfree((void *)body-&gt;iseq_encoded);</div><div class='add'>+        ruby_xfree((void *)body-&gt;insns_info.body);</div><div class='add'>+        if (body-&gt;insns_info.positions) ruby_xfree((void *)body-&gt;insns_info.positions);</div><div class='ctx'> #if VM_INSN_INFO_TABLE_IMPL == 2</div><div class='del'>-	if (body-&gt;insns_info.succ_index_table) ruby_xfree(body-&gt;insns_info.succ_index_table);</div><div class='add'>+        if (body-&gt;insns_info.succ_index_table) ruby_xfree(body-&gt;insns_info.succ_index_table);</div><div class='ctx'> #endif</div><div class='del'>-	ruby_xfree((void *)body-&gt;local_table);</div><div class='del'>-	ruby_xfree((void *)body-&gt;is_entries);</div><div class='del'>-</div><div class='del'>-	if (body-&gt;ci_entries) {</div><div class='del'>-	    unsigned int i;</div><div class='del'>-	    struct rb_call_info_with_kwarg *ci_kw_entries = (struct rb_call_info_with_kwarg *)&amp;body-&gt;ci_entries[body-&gt;ci_size];</div><div class='del'>-	    for (i=0; i&lt;body-&gt;ci_kw_size; i++) {</div><div class='del'>-		const struct rb_call_info_kw_arg *kw_arg = ci_kw_entries[i].kw_arg;</div><div class='del'>-		ruby_xfree((void *)kw_arg);</div><div class='del'>-	    }</div><div class='del'>-	    ruby_xfree(body-&gt;ci_entries);</div><div class='del'>-	    ruby_xfree(body-&gt;cc_entries);</div><div class='del'>-	}</div><div class='del'>-	ruby_xfree((void *)body-&gt;catch_table);</div><div class='del'>-	ruby_xfree((void *)body-&gt;param.opt_table);</div><div class='del'>-</div><div class='del'>-	if (body-&gt;param.keyword != NULL) {</div><div class='del'>-	    ruby_xfree((void *)body-&gt;param.keyword-&gt;default_values);</div><div class='del'>-	    ruby_xfree((void *)body-&gt;param.keyword);</div><div class='del'>-	}</div><div class='del'>-	compile_data_free(ISEQ_COMPILE_DATA(iseq));</div><div class='del'>-	ruby_xfree(body);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (ISEQ_EXECUTABLE_P(iseq) &amp;&amp; iseq-&gt;aux.exec.local_hooks) {</div><div class='add'>+        if (LIKELY(body-&gt;local_table != rb_iseq_shared_exc_local_tbl))</div><div class='add'>+            ruby_xfree((void *)body-&gt;local_table);</div><div class='add'>+        ruby_xfree((void *)body-&gt;is_entries);</div><div class='add'>+</div><div class='add'>+        if (body-&gt;call_data) {</div><div class='add'>+            ruby_xfree(body-&gt;call_data);</div><div class='add'>+        }</div><div class='add'>+        ruby_xfree((void *)body-&gt;catch_table);</div><div class='add'>+        ruby_xfree((void *)body-&gt;param.opt_table);</div><div class='add'>+        if (ISEQ_MBITS_BUFLEN(body-&gt;iseq_size) &gt; 1 &amp;&amp; body-&gt;mark_bits.list) {</div><div class='add'>+            ruby_xfree((void *)body-&gt;mark_bits.list);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        ruby_xfree(body-&gt;variable.original_iseq);</div><div class='add'>+</div><div class='add'>+        if (body-&gt;param.keyword != NULL) {</div><div class='add'>+            if (body-&gt;param.keyword-&gt;table != &amp;body-&gt;local_table[body-&gt;param.keyword-&gt;bits_start - body-&gt;param.keyword-&gt;num])</div><div class='add'>+                ruby_xfree((void *)body-&gt;param.keyword-&gt;table);</div><div class='add'>+            ruby_xfree((void *)body-&gt;param.keyword-&gt;default_values);</div><div class='add'>+            ruby_xfree((void *)body-&gt;param.keyword);</div><div class='add'>+        }</div><div class='add'>+        compile_data_free(ISEQ_COMPILE_DATA(iseq));</div><div class='add'>+        if (body-&gt;outer_variables) rb_id_table_free(body-&gt;outer_variables);</div><div class='add'>+        ruby_xfree(body);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (iseq &amp;&amp; ISEQ_EXECUTABLE_P(iseq) &amp;&amp; iseq-&gt;aux.exec.local_hooks) {</div><div class='ctx'>         rb_hook_list_free(iseq-&gt;aux.exec.local_hooks);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     RUBY_FREE_LEAVE("iseq");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE</div><div class='del'>-static VALUE</div><div class='del'>-rb_vm_insn_addr2insn2(const void *addr)</div><div class='del'>-{</div><div class='del'>-    return (VALUE)rb_vm_insn_addr2insn(addr);</div><div class='del'>-}</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-static VALUE</div><div class='del'>-rb_vm_insn_null_translator(const void *addr)</div><div class='del'>-{</div><div class='del'>-    return (VALUE)addr;</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-typedef void iseq_value_itr_t(void *ctx, VALUE obj);</div><div class='del'>-typedef VALUE rb_vm_insns_translator_t(const void *addr);</div><div class='add'>+typedef VALUE iseq_value_itr_t(void *ctx, VALUE obj);</div><div class='ctx'> </div><div class='del'>-static int</div><div class='del'>-iseq_extract_values(const VALUE *code, size_t pos, iseq_value_itr_t * func, void *data, rb_vm_insns_translator_t * translator)</div><div class='add'>+static inline void</div><div class='add'>+iseq_scan_bits(unsigned int page, iseq_bits_t bits, VALUE *code, iseq_value_itr_t *func, void *data)</div><div class='ctx'> {</div><div class='del'>-    VALUE insn = translator((void *)code[pos]);</div><div class='del'>-    int len = insn_len(insn);</div><div class='del'>-    int op_no;</div><div class='del'>-    const char *types = insn_op_types(insn);</div><div class='add'>+    unsigned int offset;</div><div class='add'>+    unsigned int page_offset = (page * ISEQ_MBITS_BITLENGTH);</div><div class='ctx'> </div><div class='del'>-    for (op_no = 0; types[op_no]; op_no++) {</div><div class='del'>-	char type = types[op_no];</div><div class='del'>-	switch (type) {</div><div class='del'>-	    case TS_CDHASH:</div><div class='del'>-	    case TS_ISEQ:</div><div class='del'>-	    case TS_VALUE:</div><div class='del'>-		{</div><div class='del'>-		    VALUE op = code[pos + op_no + 1];</div><div class='del'>-		    if (!SPECIAL_CONST_P(op)) {</div><div class='del'>-			func(data, op);</div><div class='del'>-		    }</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    case TS_ISE:</div><div class='del'>-		{</div><div class='del'>-		    union iseq_inline_storage_entry *const is = (union iseq_inline_storage_entry *)code[pos + op_no + 1];</div><div class='del'>-		    if (is-&gt;once.value) {</div><div class='del'>-			func(data, is-&gt;once.value);</div><div class='del'>-		    }</div><div class='del'>-		    break;</div><div class='del'>-		}</div><div class='del'>-	    default:</div><div class='del'>-		break;</div><div class='del'>-	}</div><div class='add'>+    while (bits) {</div><div class='add'>+        offset = ntz_intptr(bits);</div><div class='add'>+        VALUE op = code[page_offset + offset];</div><div class='add'>+        VALUE newop = func(data, op);</div><div class='add'>+        if (newop != op) {</div><div class='add'>+            code[page_offset + offset] = newop;</div><div class='add'>+            if (data) {</div><div class='add'>+                VALUE *original_iseq = (VALUE *)data;</div><div class='add'>+                original_iseq[page_offset + offset] = newop;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        bits &amp;= bits - 1; // Reset Lowest Set Bit (BLSR)</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    return len;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='ctx'> rb_iseq_each_value(const rb_iseq_t *iseq, iseq_value_itr_t * func, void *data)</div><div class='ctx'> {</div><div class='ctx'>     unsigned int size;</div><div class='del'>-    const VALUE *code;</div><div class='del'>-    size_t n;</div><div class='del'>-    rb_vm_insns_translator_t * translator;</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    VALUE *code;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'> </div><div class='ctx'>     size = body-&gt;iseq_size;</div><div class='ctx'>     code = body-&gt;iseq_encoded;</div><div class='ctx'> </div><div class='del'>-#if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE</div><div class='del'>-    if (FL_TEST(iseq, ISEQ_TRANSLATED)) {</div><div class='del'>-	translator = rb_vm_insn_addr2insn2;</div><div class='del'>-    } else {</div><div class='del'>-	translator = rb_vm_insn_null_translator;</div><div class='add'>+    union iseq_inline_storage_entry *is_entries = body-&gt;is_entries;</div><div class='add'>+</div><div class='add'>+    if (body-&gt;is_entries) {</div><div class='add'>+        // Skip iterating over ivc caches</div><div class='add'>+        is_entries += body-&gt;ivc_size;</div><div class='add'>+</div><div class='add'>+        // ICVARC entries</div><div class='add'>+        for (unsigned int i = 0; i &lt; body-&gt;icvarc_size; i++, is_entries++) {</div><div class='add'>+            ICVARC icvarc = (ICVARC)is_entries;</div><div class='add'>+            if (icvarc-&gt;entry) {</div><div class='add'>+                RUBY_ASSERT(!RB_TYPE_P(icvarc-&gt;entry-&gt;class_value, T_NONE));</div><div class='add'>+</div><div class='add'>+                VALUE nv = func(data, icvarc-&gt;entry-&gt;class_value);</div><div class='add'>+                if (icvarc-&gt;entry-&gt;class_value != nv) {</div><div class='add'>+                    icvarc-&gt;entry-&gt;class_value = nv;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // ISE entries</div><div class='add'>+        for (unsigned int i = 0; i &lt; body-&gt;ise_size; i++, is_entries++) {</div><div class='add'>+            union iseq_inline_storage_entry *const is = (union iseq_inline_storage_entry *)is_entries;</div><div class='add'>+            if (is-&gt;once.value) {</div><div class='add'>+                VALUE nv = func(data, is-&gt;once.value);</div><div class='add'>+                if (is-&gt;once.value != nv) {</div><div class='add'>+                    is-&gt;once.value = nv;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        // IC Entries</div><div class='add'>+        for (unsigned int i = 0; i &lt; body-&gt;ic_size; i++, is_entries++) {</div><div class='add'>+            IC ic = (IC)is_entries;</div><div class='add'>+            if (ic-&gt;entry) {</div><div class='add'>+                VALUE nv = func(data, (VALUE)ic-&gt;entry);</div><div class='add'>+                if ((VALUE)ic-&gt;entry != nv) {</div><div class='add'>+                    ic-&gt;entry = (void *)nv;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='del'>-#else</div><div class='del'>-    translator = rb_vm_insn_null_translator;</div><div class='del'>-#endif</div><div class='ctx'> </div><div class='del'>-    for (n = 0; n &lt; size;) {</div><div class='del'>-	n += iseq_extract_values(code, n, func, data, translator);</div><div class='add'>+    // Embedded VALUEs</div><div class='add'>+    if (body-&gt;mark_bits.list) {</div><div class='add'>+        if (ISEQ_MBITS_BUFLEN(size) == 1) {</div><div class='add'>+            iseq_scan_bits(0, body-&gt;mark_bits.single, code, func, data);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            if (body-&gt;mark_bits.list) {</div><div class='add'>+                for (unsigned int i = 0; i &lt; ISEQ_MBITS_BUFLEN(size); i++) {</div><div class='add'>+                    iseq_bits_t bits = body-&gt;mark_bits.list[i];</div><div class='add'>+                    iseq_scan_bits(i, bits, code, func, data);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static void</div><div class='add'>+static VALUE</div><div class='add'>+update_each_insn_value(void *ctx, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    return rb_gc_location(obj);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_iseq_update_references(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    if (ISEQ_BODY(iseq)) {</div><div class='add'>+        struct rb_iseq_constant_body *body = ISEQ_BODY(iseq);</div><div class='add'>+</div><div class='add'>+        body-&gt;variable.coverage = rb_gc_location(body-&gt;variable.coverage);</div><div class='add'>+        body-&gt;variable.pc2branchindex = rb_gc_location(body-&gt;variable.pc2branchindex);</div><div class='add'>+        body-&gt;variable.script_lines = rb_gc_location(body-&gt;variable.script_lines);</div><div class='add'>+        body-&gt;location.label = rb_gc_location(body-&gt;location.label);</div><div class='add'>+        body-&gt;location.base_label = rb_gc_location(body-&gt;location.base_label);</div><div class='add'>+        body-&gt;location.pathobj = rb_gc_location(body-&gt;location.pathobj);</div><div class='add'>+        if (body-&gt;local_iseq) {</div><div class='add'>+            body-&gt;local_iseq = (struct rb_iseq_struct *)rb_gc_location((VALUE)body-&gt;local_iseq);</div><div class='add'>+        }</div><div class='add'>+        if (body-&gt;parent_iseq) {</div><div class='add'>+            body-&gt;parent_iseq = (struct rb_iseq_struct *)rb_gc_location((VALUE)body-&gt;parent_iseq);</div><div class='add'>+        }</div><div class='add'>+        if (body-&gt;mandatory_only_iseq) {</div><div class='add'>+            body-&gt;mandatory_only_iseq = (struct rb_iseq_struct *)rb_gc_location((VALUE)body-&gt;mandatory_only_iseq);</div><div class='add'>+        }</div><div class='add'>+        if (body-&gt;call_data) {</div><div class='add'>+            for (unsigned int i=0; i&lt;body-&gt;ci_size; i++) {</div><div class='add'>+                struct rb_call_data *cds = body-&gt;call_data;</div><div class='add'>+                if (!SPECIAL_CONST_P((VALUE)cds[i].ci)) {</div><div class='add'>+                    cds[i].ci = (struct rb_callinfo *)rb_gc_location((VALUE)cds[i].ci);</div><div class='add'>+                }</div><div class='add'>+                cds[i].cc = (struct rb_callcache *)rb_gc_location((VALUE)cds[i].cc);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        VALUE *original_iseq = ISEQ_ORIGINAL_ISEQ(iseq);</div><div class='add'>+        rb_iseq_each_value(iseq, update_each_insn_value, (void *)original_iseq);</div><div class='add'>+</div><div class='add'>+        if (body-&gt;param.flags.has_kw &amp;&amp; ISEQ_COMPILE_DATA(iseq) == NULL) {</div><div class='add'>+            int i, j;</div><div class='add'>+</div><div class='add'>+            i = body-&gt;param.keyword-&gt;required_num;</div><div class='add'>+</div><div class='add'>+            for (j = 0; i &lt; body-&gt;param.keyword-&gt;num; i++, j++) {</div><div class='add'>+                VALUE obj = body-&gt;param.keyword-&gt;default_values[j];</div><div class='add'>+                if (!UNDEF_P(obj)) {</div><div class='add'>+                    body-&gt;param.keyword-&gt;default_values[j] = rb_gc_location(obj);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (body-&gt;catch_table) {</div><div class='add'>+            struct iseq_catch_table *table = body-&gt;catch_table;</div><div class='add'>+            unsigned int i;</div><div class='add'>+            for (i = 0; i &lt; table-&gt;size; i++) {</div><div class='add'>+                struct iseq_catch_table_entry *entry;</div><div class='add'>+                entry = UNALIGNED_MEMBER_PTR(table, entries[i]);</div><div class='add'>+                if (entry-&gt;iseq) {</div><div class='add'>+                    entry-&gt;iseq = (rb_iseq_t *)rb_gc_location((VALUE)entry-&gt;iseq);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+#if USE_MJIT</div><div class='add'>+        mjit_update_references(iseq);</div><div class='add'>+#endif</div><div class='add'>+#if USE_YJIT</div><div class='add'>+        rb_yjit_iseq_update_references(body-&gt;yjit_payload);</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='ctx'> each_insn_value(void *ctx, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    rb_gc_mark(obj);</div><div class='add'>+    rb_gc_mark_movable(obj);</div><div class='add'>+    return obj;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -216,57 +386,92 @@ rb_iseq_mark(const rb_iseq_t *iseq)</div><div class='ctx'> </div><div class='ctx'>     RUBY_MARK_UNLESS_NULL(iseq-&gt;wrapper);</div><div class='ctx'> </div><div class='del'>-    if (iseq-&gt;body) {</div><div class='del'>-	const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='del'>-</div><div class='del'>-	if (FL_TEST(iseq, ISEQ_MARKABLE_ISEQ)) {</div><div class='del'>-	    rb_iseq_each_value(iseq, each_insn_value, NULL);</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	rb_gc_mark(body-&gt;variable.coverage);</div><div class='del'>-        rb_gc_mark(body-&gt;variable.pc2branchindex);</div><div class='del'>-	rb_gc_mark(body-&gt;location.label);</div><div class='del'>-	rb_gc_mark(body-&gt;location.base_label);</div><div class='del'>-	rb_gc_mark(body-&gt;location.pathobj);</div><div class='del'>-	RUBY_MARK_UNLESS_NULL((VALUE)body-&gt;parent_iseq);</div><div class='del'>-</div><div class='del'>-	if (body-&gt;param.flags.has_kw &amp;&amp; ISEQ_COMPILE_DATA(iseq) == NULL) {</div><div class='del'>-	    const struct rb_iseq_param_keyword *const keyword = body-&gt;param.keyword;</div><div class='del'>-	    int i, j;</div><div class='del'>-</div><div class='del'>-	    i = keyword-&gt;required_num;</div><div class='del'>-</div><div class='del'>-	    for (j = 0; i &lt; keyword-&gt;num; i++, j++) {</div><div class='del'>-		VALUE obj = keyword-&gt;default_values[j];</div><div class='del'>-		if (!SPECIAL_CONST_P(obj)) {</div><div class='del'>-		    rb_gc_mark(obj);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-</div><div class='del'>-	if (body-&gt;catch_table) {</div><div class='del'>-	    const struct iseq_catch_table *table = body-&gt;catch_table;</div><div class='del'>-	    unsigned int i;</div><div class='del'>-	    for(i = 0; i &lt; table-&gt;size; i++) {</div><div class='del'>-		const struct iseq_catch_table_entry *entry;</div><div class='del'>-		entry = &amp;table-&gt;entries[i];</div><div class='del'>-		if (entry-&gt;iseq) {</div><div class='del'>-		    rb_gc_mark((VALUE)entry-&gt;iseq);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    if (FL_TEST_RAW(iseq, ISEQ_NOT_LOADED_YET)) {</div><div class='del'>-	rb_gc_mark(iseq-&gt;aux.loader.obj);</div><div class='del'>-    }</div><div class='del'>-    else if (FL_TEST_RAW(iseq, ISEQ_USE_COMPILE_DATA)) {</div><div class='del'>-	const struct iseq_compile_data *const compile_data = ISEQ_COMPILE_DATA(iseq);</div><div class='del'>-        VM_ASSERT(compile_data != NULL);</div><div class='add'>+    if (ISEQ_BODY(iseq)) {</div><div class='add'>+        const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='add'>+</div><div class='add'>+        rb_iseq_each_value(iseq, each_insn_value, NULL);</div><div class='add'>+</div><div class='add'>+        rb_gc_mark_movable(body-&gt;variable.coverage);</div><div class='add'>+        rb_gc_mark_movable(body-&gt;variable.pc2branchindex);</div><div class='add'>+        rb_gc_mark_movable(body-&gt;variable.script_lines);</div><div class='add'>+        rb_gc_mark_movable(body-&gt;location.label);</div><div class='add'>+        rb_gc_mark_movable(body-&gt;location.base_label);</div><div class='add'>+        rb_gc_mark_movable(body-&gt;location.pathobj);</div><div class='add'>+        RUBY_MARK_MOVABLE_UNLESS_NULL((VALUE)body-&gt;mandatory_only_iseq);</div><div class='add'>+        RUBY_MARK_MOVABLE_UNLESS_NULL((VALUE)body-&gt;parent_iseq);</div><div class='add'>+</div><div class='add'>+        if (body-&gt;call_data) {</div><div class='add'>+            struct rb_call_data *cds = (struct rb_call_data *)body-&gt;call_data;</div><div class='add'>+            for (unsigned int i=0; i&lt;body-&gt;ci_size; i++) {</div><div class='add'>+                const struct rb_callinfo *ci = cds[i].ci;</div><div class='add'>+                const struct rb_callcache *cc = cds[i].cc;</div><div class='add'>+</div><div class='add'>+                if (vm_ci_markable(ci)) {</div><div class='add'>+                    rb_gc_mark_movable((VALUE)ci);</div><div class='add'>+                }</div><div class='add'>+</div><div class='add'>+                if (cc) {</div><div class='add'>+                    VM_ASSERT((cc-&gt;flags &amp; VM_CALLCACHE_ON_STACK) == 0);</div><div class='add'>+</div><div class='add'>+                    if (vm_cc_markable(cc)) {</div><div class='add'>+                        if (!vm_cc_invalidated_p(cc)) {</div><div class='add'>+                            rb_gc_mark_movable((VALUE)cc);</div><div class='add'>+                        }</div><div class='add'>+                        else {</div><div class='add'>+                            cds[i].cc = rb_vm_empty_cc();</div><div class='add'>+                        }</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (body-&gt;param.flags.has_kw &amp;&amp; ISEQ_COMPILE_DATA(iseq) == NULL) {</div><div class='add'>+            const struct rb_iseq_param_keyword *const keyword = body-&gt;param.keyword;</div><div class='add'>+            int i, j;</div><div class='add'>+</div><div class='add'>+            i = keyword-&gt;required_num;</div><div class='add'>+</div><div class='add'>+            for (j = 0; i &lt; keyword-&gt;num; i++, j++) {</div><div class='add'>+                VALUE obj = keyword-&gt;default_values[j];</div><div class='add'>+                if (!SPECIAL_CONST_P(obj)) {</div><div class='add'>+                    rb_gc_mark_movable(obj);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        if (body-&gt;catch_table) {</div><div class='add'>+            const struct iseq_catch_table *table = body-&gt;catch_table;</div><div class='add'>+            unsigned int i;</div><div class='add'>+            for (i = 0; i &lt; table-&gt;size; i++) {</div><div class='add'>+                const struct iseq_catch_table_entry *entry;</div><div class='add'>+                entry = UNALIGNED_MEMBER_PTR(table, entries[i]);</div><div class='add'>+                if (entry-&gt;iseq) {</div><div class='add'>+                    rb_gc_mark_movable((VALUE)entry-&gt;iseq);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+#if USE_MJIT</div><div class='add'>+        mjit_mark_cc_entries(body);</div><div class='add'>+#endif</div><div class='add'>+#if USE_YJIT</div><div class='add'>+        rb_yjit_iseq_mark(body-&gt;yjit_payload);</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (FL_TEST_RAW((VALUE)iseq, ISEQ_NOT_LOADED_YET)) {</div><div class='add'>+        rb_gc_mark(iseq-&gt;aux.loader.obj);</div><div class='add'>+    }</div><div class='add'>+    else if (FL_TEST_RAW((VALUE)iseq, ISEQ_USE_COMPILE_DATA)) {</div><div class='add'>+        const struct iseq_compile_data *const compile_data = ISEQ_COMPILE_DATA(iseq);</div><div class='add'>+</div><div class='add'>+        rb_iseq_mark_insn_storage(compile_data-&gt;insn.storage_head);</div><div class='ctx'> </div><div class='del'>-        RUBY_MARK_UNLESS_NULL(compile_data-&gt;mark_ary);</div><div class='ctx'>         RUBY_MARK_UNLESS_NULL(compile_data-&gt;err_info);</div><div class='del'>-        RUBY_MARK_UNLESS_NULL(compile_data-&gt;catch_table_ary);</div><div class='add'>+        if (RTEST(compile_data-&gt;catch_table_ary)) {</div><div class='add'>+            rb_gc_mark(compile_data-&gt;catch_table_ary);</div><div class='add'>+        }</div><div class='add'>+        VM_ASSERT(compile_data != NULL);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         /* executable */</div><div class='hunk'>@@ -292,73 +497,77 @@ param_keyword_size(const struct rb_iseq_param_keyword *pkw)</div><div class='ctx'>     return size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static size_t</div><div class='del'>-iseq_memsize(const rb_iseq_t *iseq)</div><div class='add'>+size_t</div><div class='add'>+rb_iseq_memsize(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     size_t size = 0; /* struct already counted as RVALUE size */</div><div class='del'>-    const struct rb_iseq_constant_body *body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *body = ISEQ_BODY(iseq);</div><div class='ctx'>     const struct iseq_compile_data *compile_data;</div><div class='ctx'> </div><div class='ctx'>     /* TODO: should we count original_iseq? */</div><div class='ctx'> </div><div class='del'>-    if (body) {</div><div class='del'>-	struct rb_call_info_with_kwarg *ci_kw_entries = (struct rb_call_info_with_kwarg *)&amp;body-&gt;ci_entries[body-&gt;ci_size];</div><div class='del'>-</div><div class='del'>-	size += sizeof(struct rb_iseq_constant_body);</div><div class='del'>-	size += body-&gt;iseq_size * sizeof(VALUE);</div><div class='del'>-	size += body-&gt;insns_info.size * (sizeof(struct iseq_insn_info_entry) + sizeof(unsigned int));</div><div class='del'>-	size += body-&gt;local_table_size * sizeof(ID);</div><div class='del'>-	if (body-&gt;catch_table) {</div><div class='del'>-	    size += iseq_catch_table_bytes(body-&gt;catch_table-&gt;size);</div><div class='del'>-	}</div><div class='del'>-	size += (body-&gt;param.opt_num + 1) * sizeof(VALUE);</div><div class='del'>-	size += param_keyword_size(body-&gt;param.keyword);</div><div class='del'>-</div><div class='del'>-	/* body-&gt;is_entries */</div><div class='del'>-	size += body-&gt;is_size * sizeof(union iseq_inline_storage_entry);</div><div class='del'>-</div><div class='del'>-	/* body-&gt;ci_entries */</div><div class='del'>-	size += body-&gt;ci_size * sizeof(struct rb_call_info);</div><div class='del'>-	size += body-&gt;ci_kw_size * sizeof(struct rb_call_info_with_kwarg);</div><div class='del'>-</div><div class='del'>-	/* body-&gt;cc_entries */</div><div class='del'>-	size += body-&gt;ci_size * sizeof(struct rb_call_cache);</div><div class='del'>-	size += body-&gt;ci_kw_size * sizeof(struct rb_call_cache);</div><div class='del'>-</div><div class='del'>-	if (ci_kw_entries) {</div><div class='del'>-	    unsigned int i;</div><div class='del'>-</div><div class='del'>-	    for (i = 0; i &lt; body-&gt;ci_kw_size; i++) {</div><div class='del'>-		const struct rb_call_info_kw_arg *kw_arg = ci_kw_entries[i].kw_arg;</div><div class='add'>+    if (ISEQ_EXECUTABLE_P(iseq) &amp;&amp; body) {</div><div class='add'>+        size += sizeof(struct rb_iseq_constant_body);</div><div class='add'>+        size += body-&gt;iseq_size * sizeof(VALUE);</div><div class='add'>+        size += body-&gt;insns_info.size * (sizeof(struct iseq_insn_info_entry) + sizeof(unsigned int));</div><div class='add'>+        size += body-&gt;local_table_size * sizeof(ID);</div><div class='add'>+        size += ISEQ_MBITS_BUFLEN(body-&gt;iseq_size) * ISEQ_MBITS_SIZE;</div><div class='add'>+        if (body-&gt;catch_table) {</div><div class='add'>+            size += iseq_catch_table_bytes(body-&gt;catch_table-&gt;size);</div><div class='add'>+        }</div><div class='add'>+        size += (body-&gt;param.opt_num + 1) * sizeof(VALUE);</div><div class='add'>+        size += param_keyword_size(body-&gt;param.keyword);</div><div class='add'>+</div><div class='add'>+        /* body-&gt;is_entries */</div><div class='add'>+        size += ISEQ_IS_SIZE(body) * sizeof(union iseq_inline_storage_entry);</div><div class='add'>+</div><div class='add'>+        if (ISEQ_BODY(iseq)-&gt;is_entries) {</div><div class='add'>+            /* IC entries constant segments */</div><div class='add'>+            for (unsigned int ic_idx = 0; ic_idx &lt; body-&gt;ic_size; ic_idx++) {</div><div class='add'>+                IC ic = &amp;ISEQ_IS_IC_ENTRY(body, ic_idx);</div><div class='add'>+                const ID *ids = ic-&gt;segments;</div><div class='add'>+                if (!ids) continue;</div><div class='add'>+                while (*ids++) {</div><div class='add'>+                    size += sizeof(ID);</div><div class='add'>+                }</div><div class='add'>+                size += sizeof(ID); // null terminator</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-		if (kw_arg) {</div><div class='del'>-		    size += rb_call_info_kw_arg_bytes(kw_arg-&gt;keyword_len);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        /* body-&gt;call_data */</div><div class='add'>+        size += body-&gt;ci_size * sizeof(struct rb_call_data);</div><div class='add'>+        // TODO: should we count imemo_callinfo?</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     compile_data = ISEQ_COMPILE_DATA(iseq);</div><div class='ctx'>     if (compile_data) {</div><div class='del'>-	struct iseq_compile_data_storage *cur;</div><div class='add'>+        struct iseq_compile_data_storage *cur;</div><div class='ctx'> </div><div class='del'>-	size += sizeof(struct iseq_compile_data);</div><div class='add'>+        size += sizeof(struct iseq_compile_data);</div><div class='ctx'> </div><div class='del'>-	cur = compile_data-&gt;storage_head;</div><div class='del'>-	while (cur) {</div><div class='del'>-	    size += cur-&gt;size + offsetof(struct iseq_compile_data_storage, buff);</div><div class='del'>-	    cur = cur-&gt;next;</div><div class='del'>-	}</div><div class='add'>+        cur = compile_data-&gt;node.storage_head;</div><div class='add'>+        while (cur) {</div><div class='add'>+            size += cur-&gt;size + offsetof(struct iseq_compile_data_storage, buff);</div><div class='add'>+            cur = cur-&gt;next;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+struct rb_iseq_constant_body *</div><div class='add'>+rb_iseq_constant_body_alloc(void)</div><div class='add'>+{</div><div class='add'>+    struct rb_iseq_constant_body *iseq_body;</div><div class='add'>+    iseq_body = ZALLOC(struct rb_iseq_constant_body);</div><div class='add'>+    return iseq_body;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static rb_iseq_t *</div><div class='ctx'> iseq_alloc(void)</div><div class='ctx'> {</div><div class='ctx'>     rb_iseq_t *iseq = iseq_imemo_alloc();</div><div class='del'>-    iseq-&gt;body = ZALLOC(struct rb_iseq_constant_body);</div><div class='add'>+    ISEQ_BODY(iseq) = rb_iseq_constant_body_alloc();</div><div class='ctx'>     return iseq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -367,16 +576,16 @@ rb_iseq_pathobj_new(VALUE path, VALUE realpath)</div><div class='ctx'> {</div><div class='ctx'>     VALUE pathobj;</div><div class='ctx'>     VM_ASSERT(RB_TYPE_P(path, T_STRING));</div><div class='del'>-    VM_ASSERT(realpath == Qnil || RB_TYPE_P(realpath, T_STRING));</div><div class='add'>+    VM_ASSERT(NIL_P(realpath) || RB_TYPE_P(realpath, T_STRING));</div><div class='ctx'> </div><div class='ctx'>     if (path == realpath ||</div><div class='del'>-	(!NIL_P(realpath) &amp;&amp; rb_str_cmp(path, realpath) == 0)) {</div><div class='del'>-	pathobj = rb_fstring(path);</div><div class='add'>+        (!NIL_P(realpath) &amp;&amp; rb_str_cmp(path, realpath) == 0)) {</div><div class='add'>+        pathobj = rb_fstring(path);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (!NIL_P(realpath)) realpath = rb_fstring(realpath);</div><div class='del'>-	pathobj = rb_ary_new_from_args(2, rb_fstring(path), realpath);</div><div class='del'>-	rb_obj_freeze(pathobj);</div><div class='add'>+        if (!NIL_P(realpath)) realpath = rb_fstring(realpath);</div><div class='add'>+        pathobj = rb_ary_new_from_args(2, rb_fstring(path), realpath);</div><div class='add'>+        rb_obj_freeze(pathobj);</div><div class='ctx'>     }</div><div class='ctx'>     return pathobj;</div><div class='ctx'> }</div><div class='hunk'>@@ -384,14 +593,27 @@ rb_iseq_pathobj_new(VALUE path, VALUE realpath)</div><div class='ctx'> void</div><div class='ctx'> rb_iseq_pathobj_set(const rb_iseq_t *iseq, VALUE path, VALUE realpath)</div><div class='ctx'> {</div><div class='del'>-    RB_OBJ_WRITE(iseq, &amp;iseq-&gt;body-&gt;location.pathobj,</div><div class='del'>-		 rb_iseq_pathobj_new(path, realpath));</div><div class='add'>+    RB_OBJ_WRITE(iseq, &amp;ISEQ_BODY(iseq)-&gt;location.pathobj,</div><div class='add'>+                 rb_iseq_pathobj_new(path, realpath));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Make a dummy iseq for a dummy frame that exposes a path for profilers to inspect</div><div class='add'>+rb_iseq_t *</div><div class='add'>+rb_iseq_alloc_with_dummy_path(VALUE fname)</div><div class='add'>+{</div><div class='add'>+    rb_iseq_t *dummy_iseq = iseq_alloc();</div><div class='add'>+</div><div class='add'>+    ISEQ_BODY(dummy_iseq)-&gt;type = ISEQ_TYPE_TOP;</div><div class='add'>+    RB_OBJ_WRITE(dummy_iseq, &amp;ISEQ_BODY(dummy_iseq)-&gt;location.pathobj, fname);</div><div class='add'>+    RB_OBJ_WRITE(dummy_iseq, &amp;ISEQ_BODY(dummy_iseq)-&gt;location.label, fname);</div><div class='add'>+</div><div class='add'>+    return dummy_iseq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static rb_iseq_location_t *</div><div class='del'>-iseq_location_setup(rb_iseq_t *iseq, VALUE name, VALUE path, VALUE realpath, VALUE first_lineno, const rb_code_location_t *code_location, const int node_id)</div><div class='add'>+iseq_location_setup(rb_iseq_t *iseq, VALUE name, VALUE path, VALUE realpath, int first_lineno, const rb_code_location_t *code_location, const int node_id)</div><div class='ctx'> {</div><div class='del'>-    rb_iseq_location_t *loc = &amp;iseq-&gt;body-&gt;location;</div><div class='add'>+    rb_iseq_location_t *loc = &amp;ISEQ_BODY(iseq)-&gt;location;</div><div class='ctx'> </div><div class='ctx'>     rb_iseq_pathobj_set(iseq, path, realpath);</div><div class='ctx'>     RB_OBJ_WRITE(iseq, &amp;loc-&gt;label, name);</div><div class='hunk'>@@ -399,13 +621,13 @@ iseq_location_setup(rb_iseq_t *iseq, VALUE name, VALUE path, VALUE realpath, VAL</div><div class='ctx'>     loc-&gt;first_lineno = first_lineno;</div><div class='ctx'>     if (code_location) {</div><div class='ctx'>         loc-&gt;node_id = node_id;</div><div class='del'>-	loc-&gt;code_location = *code_location;</div><div class='add'>+        loc-&gt;code_location = *code_location;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	loc-&gt;code_location.beg_pos.lineno = 0;</div><div class='del'>-	loc-&gt;code_location.beg_pos.column = 0;</div><div class='del'>-	loc-&gt;code_location.end_pos.lineno = -1;</div><div class='del'>-	loc-&gt;code_location.end_pos.column = -1;</div><div class='add'>+        loc-&gt;code_location.beg_pos.lineno = 0;</div><div class='add'>+        loc-&gt;code_location.beg_pos.column = 0;</div><div class='add'>+        loc-&gt;code_location.end_pos.lineno = -1;</div><div class='add'>+        loc-&gt;code_location.end_pos.column = -1;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return loc;</div><div class='hunk'>@@ -414,41 +636,56 @@ iseq_location_setup(rb_iseq_t *iseq, VALUE name, VALUE path, VALUE realpath, VAL</div><div class='ctx'> static void</div><div class='ctx'> set_relation(rb_iseq_t *iseq, const rb_iseq_t *piseq)</div><div class='ctx'> {</div><div class='del'>-    struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     const VALUE type = body-&gt;type;</div><div class='ctx'> </div><div class='ctx'>     /* set class nest stack */</div><div class='ctx'>     if (type == ISEQ_TYPE_TOP) {</div><div class='del'>-	body-&gt;local_iseq = iseq;</div><div class='add'>+        body-&gt;local_iseq = iseq;</div><div class='ctx'>     }</div><div class='ctx'>     else if (type == ISEQ_TYPE_METHOD || type == ISEQ_TYPE_CLASS) {</div><div class='del'>-	body-&gt;local_iseq = iseq;</div><div class='add'>+        body-&gt;local_iseq = iseq;</div><div class='ctx'>     }</div><div class='ctx'>     else if (piseq) {</div><div class='del'>-	body-&gt;local_iseq = piseq-&gt;body-&gt;local_iseq;</div><div class='add'>+        body-&gt;local_iseq = ISEQ_BODY(piseq)-&gt;local_iseq;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (piseq) {</div><div class='del'>-	body-&gt;parent_iseq = piseq;</div><div class='add'>+        body-&gt;parent_iseq = piseq;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (type == ISEQ_TYPE_MAIN) {</div><div class='del'>-	body-&gt;local_iseq = iseq;</div><div class='add'>+        body-&gt;local_iseq = iseq;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static struct iseq_compile_data_storage *</div><div class='add'>+new_arena(void)</div><div class='add'>+{</div><div class='add'>+    struct iseq_compile_data_storage * new_arena =</div><div class='add'>+        (struct iseq_compile_data_storage *)</div><div class='add'>+        ALLOC_N(char, INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE +</div><div class='add'>+                offsetof(struct iseq_compile_data_storage, buff));</div><div class='add'>+</div><div class='add'>+    new_arena-&gt;pos = 0;</div><div class='add'>+    new_arena-&gt;next = 0;</div><div class='add'>+    new_arena-&gt;size = INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE;</div><div class='add'>+</div><div class='add'>+    return new_arena;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> prepare_iseq_build(rb_iseq_t *iseq,</div><div class='del'>-                   VALUE name, VALUE path, VALUE realpath, VALUE first_lineno, const rb_code_location_t *code_location, const int node_id,</div><div class='del'>-		   const rb_iseq_t *parent, enum iseq_type type,</div><div class='del'>-		   const rb_compile_option_t *option)</div><div class='add'>+                   VALUE name, VALUE path, VALUE realpath, int first_lineno, const rb_code_location_t *code_location, const int node_id,</div><div class='add'>+                   const rb_iseq_t *parent, int isolated_depth, enum rb_iseq_type type,</div><div class='add'>+                   VALUE script_lines, const rb_compile_option_t *option)</div><div class='ctx'> {</div><div class='ctx'>     VALUE coverage = Qfalse;</div><div class='ctx'>     VALUE err_info = Qnil;</div><div class='del'>-    struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'> </div><div class='ctx'>     if (parent &amp;&amp; (type == ISEQ_TYPE_MAIN || type == ISEQ_TYPE_TOP))</div><div class='del'>-	err_info = Qfalse;</div><div class='add'>+        err_info = Qfalse;</div><div class='ctx'> </div><div class='ctx'>     body-&gt;type = type;</div><div class='ctx'>     set_relation(iseq, parent);</div><div class='hunk'>@@ -456,40 +693,40 @@ prepare_iseq_build(rb_iseq_t *iseq,</div><div class='ctx'>     name = rb_fstring(name);</div><div class='ctx'>     iseq_location_setup(iseq, name, path, realpath, first_lineno, code_location, node_id);</div><div class='ctx'>     if (iseq != body-&gt;local_iseq) {</div><div class='del'>-	RB_OBJ_WRITE(iseq, &amp;body-&gt;location.base_label, body-&gt;local_iseq-&gt;body-&gt;location.label);</div><div class='add'>+        RB_OBJ_WRITE(iseq, &amp;body-&gt;location.base_label, ISEQ_BODY(body-&gt;local_iseq)-&gt;location.label);</div><div class='ctx'>     }</div><div class='ctx'>     ISEQ_COVERAGE_SET(iseq, Qnil);</div><div class='ctx'>     ISEQ_ORIGINAL_ISEQ_CLEAR(iseq);</div><div class='ctx'>     body-&gt;variable.flip_count = 0;</div><div class='ctx'> </div><div class='add'>+    if (NIL_P(script_lines)) {</div><div class='add'>+        RB_OBJ_WRITE(iseq, &amp;body-&gt;variable.script_lines, Qnil);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        RB_OBJ_WRITE(iseq, &amp;body-&gt;variable.script_lines, rb_ractor_make_shareable(script_lines));</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     ISEQ_COMPILE_DATA_ALLOC(iseq);</div><div class='ctx'>     RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;err_info, err_info);</div><div class='del'>-    RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;mark_ary, rb_ary_tmp_new(3));</div><div class='del'>-</div><div class='del'>-    ISEQ_COMPILE_DATA(iseq)-&gt;storage_head = ISEQ_COMPILE_DATA(iseq)-&gt;storage_current =</div><div class='del'>-      (struct iseq_compile_data_storage *)</div><div class='del'>-	ALLOC_N(char, INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE +</div><div class='del'>-		offsetof(struct iseq_compile_data_storage, buff));</div><div class='del'>-</div><div class='del'>-    RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary, rb_ary_tmp_new(3));</div><div class='del'>-    ISEQ_COMPILE_DATA(iseq)-&gt;storage_head-&gt;pos = 0;</div><div class='del'>-    ISEQ_COMPILE_DATA(iseq)-&gt;storage_head-&gt;next = 0;</div><div class='del'>-    ISEQ_COMPILE_DATA(iseq)-&gt;storage_head-&gt;size =</div><div class='del'>-      INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE;</div><div class='del'>-    ISEQ_COMPILE_DATA(iseq)-&gt;option = option;</div><div class='add'>+    RB_OBJ_WRITE(iseq, &amp;ISEQ_COMPILE_DATA(iseq)-&gt;catch_table_ary, Qnil);</div><div class='ctx'> </div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;node.storage_head = ISEQ_COMPILE_DATA(iseq)-&gt;node.storage_current = new_arena();</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;insn.storage_head = ISEQ_COMPILE_DATA(iseq)-&gt;insn.storage_current = new_arena();</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;isolated_depth = isolated_depth;</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;option = option;</div><div class='ctx'>     ISEQ_COMPILE_DATA(iseq)-&gt;ivar_cache_table = NULL;</div><div class='add'>+    ISEQ_COMPILE_DATA(iseq)-&gt;builtin_function_table = GET_VM()-&gt;builtin_function_table;</div><div class='ctx'> </div><div class='ctx'>     if (option-&gt;coverage_enabled) {</div><div class='del'>-	VALUE coverages = rb_get_coverages();</div><div class='del'>-	if (RTEST(coverages)) {</div><div class='del'>-	    coverage = rb_hash_lookup(coverages, rb_iseq_path(iseq));</div><div class='del'>-	    if (NIL_P(coverage)) coverage = Qfalse;</div><div class='del'>-	}</div><div class='add'>+        VALUE coverages = rb_get_coverages();</div><div class='add'>+        if (RTEST(coverages)) {</div><div class='add'>+            coverage = rb_hash_lookup(coverages, rb_iseq_path(iseq));</div><div class='add'>+            if (NIL_P(coverage)) coverage = Qfalse;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     ISEQ_COVERAGE_SET(iseq, coverage);</div><div class='ctx'>     if (coverage &amp;&amp; ISEQ_BRANCH_COVERAGE(iseq))</div><div class='del'>-        ISEQ_PC2BRANCHINDEX_SET(iseq, rb_ary_tmp_new(0));</div><div class='add'>+        ISEQ_PC2BRANCHINDEX_SET(iseq, rb_ary_hidden_new(0));</div><div class='ctx'> </div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='hunk'>@@ -502,7 +739,8 @@ void</div><div class='ctx'> rb_iseq_insns_info_encode_positions(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'> #if VM_INSN_INFO_TABLE_IMPL == 2</div><div class='del'>-    struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    /* create succ_index_table */</div><div class='add'>+    struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     int size = body-&gt;insns_info.size;</div><div class='ctx'>     int max_pos = body-&gt;iseq_size;</div><div class='ctx'>     int *data = (int *)body-&gt;insns_info.positions;</div><div class='hunk'>@@ -539,29 +777,25 @@ static VALUE</div><div class='ctx'> finish_iseq_build(rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     struct iseq_compile_data *data = ISEQ_COMPILE_DATA(iseq);</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     VALUE err = data-&gt;err_info;</div><div class='ctx'>     ISEQ_COMPILE_DATA_CLEAR(iseq);</div><div class='ctx'>     compile_data_free(data);</div><div class='ctx'> </div><div class='del'>-#if VM_INSN_INFO_TABLE_IMPL == 2 /* succinct bitvector */</div><div class='del'>-    /* create succ_index_table */</div><div class='del'>-    if (body-&gt;insns_info.succ_index_table == NULL) {</div><div class='del'>-	rb_iseq_insns_info_encode_positions(iseq);</div><div class='del'>-    }</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> #if VM_CHECK_MODE &gt; 0 &amp;&amp; VM_INSN_INFO_TABLE_IMPL &gt; 0</div><div class='ctx'>     validate_get_insn_info(iseq);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     if (RTEST(err)) {</div><div class='del'>-	VALUE path = pathobj_path(body-&gt;location.pathobj);</div><div class='del'>-	if (err == Qtrue) err = rb_exc_new_cstr(rb_eSyntaxError, "compile error");</div><div class='del'>-	rb_funcallv(err, rb_intern("set_backtrace"), 1, &amp;path);</div><div class='del'>-	rb_exc_raise(err);</div><div class='add'>+        VALUE path = pathobj_path(body-&gt;location.pathobj);</div><div class='add'>+        if (err == Qtrue) err = rb_exc_new_cstr(rb_eSyntaxError, "compile error");</div><div class='add'>+        rb_funcallv(err, rb_intern("set_backtrace"), 1, &amp;path);</div><div class='add'>+        rb_exc_raise(err);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    RB_DEBUG_COUNTER_INC(iseq_num);</div><div class='add'>+    RB_DEBUG_COUNTER_ADD(iseq_cd_num, ISEQ_BODY(iseq)-&gt;ci_size);</div><div class='add'>+</div><div class='ctx'>     rb_iseq_init_trace(iseq);</div><div class='ctx'>     return Qtrue;</div><div class='ctx'> }</div><div class='hunk'>@@ -608,7 +842,7 @@ set_compile_option_from_hash(rb_compile_option_t *option, VALUE opt)</div><div class='ctx'> #undef SET_COMPILE_OPTION_NUM</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-void</div><div class='add'>+static void</div><div class='ctx'> rb_iseq_make_compile_option(rb_compile_option_t *option, VALUE opt)</div><div class='ctx'> {</div><div class='ctx'>     Check_Type(opt, T_HASH);</div><div class='hunk'>@@ -618,46 +852,46 @@ rb_iseq_make_compile_option(rb_compile_option_t *option, VALUE opt)</div><div class='ctx'> static void</div><div class='ctx'> make_compile_option(rb_compile_option_t *option, VALUE opt)</div><div class='ctx'> {</div><div class='del'>-    if (opt == Qnil) {</div><div class='del'>-	*option = COMPILE_OPTION_DEFAULT;</div><div class='add'>+    if (NIL_P(opt)) {</div><div class='add'>+        *option = COMPILE_OPTION_DEFAULT;</div><div class='ctx'>     }</div><div class='ctx'>     else if (opt == Qfalse) {</div><div class='del'>-	*option = COMPILE_OPTION_FALSE;</div><div class='add'>+        *option = COMPILE_OPTION_FALSE;</div><div class='ctx'>     }</div><div class='ctx'>     else if (opt == Qtrue) {</div><div class='del'>-	int i;</div><div class='del'>-	for (i = 0; i &lt; (int)(sizeof(rb_compile_option_t) / sizeof(int)); ++i)</div><div class='del'>-	    ((int *)option)[i] = 1;</div><div class='add'>+        int i;</div><div class='add'>+        for (i = 0; i &lt; (int)(sizeof(rb_compile_option_t) / sizeof(int)); ++i)</div><div class='add'>+            ((int *)option)[i] = 1;</div><div class='ctx'>     }</div><div class='ctx'>     else if (RB_TYPE_P(opt, T_HASH)) {</div><div class='del'>-	*option = COMPILE_OPTION_DEFAULT;</div><div class='del'>-	set_compile_option_from_hash(option, opt);</div><div class='add'>+        *option = COMPILE_OPTION_DEFAULT;</div><div class='add'>+        set_compile_option_from_hash(option, opt);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_raise(rb_eTypeError, "Compile option must be Hash/true/false/nil");</div><div class='add'>+        rb_raise(rb_eTypeError, "Compile option must be Hash/true/false/nil");</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> make_compile_option_value(rb_compile_option_t *option)</div><div class='ctx'> {</div><div class='del'>-    VALUE opt = rb_hash_new();</div><div class='add'>+    VALUE opt = rb_hash_new_with_size(11);</div><div class='ctx'> #define SET_COMPILE_OPTION(o, h, mem) \</div><div class='del'>-  rb_hash_aset((h), ID2SYM(rb_intern(#mem)), (o)-&gt;mem ? Qtrue : Qfalse)</div><div class='add'>+  rb_hash_aset((h), ID2SYM(rb_intern(#mem)), RBOOL((o)-&gt;mem))</div><div class='ctx'> #define SET_COMPILE_OPTION_NUM(o, h, mem) \</div><div class='ctx'>   rb_hash_aset((h), ID2SYM(rb_intern(#mem)), INT2NUM((o)-&gt;mem))</div><div class='ctx'>     {</div><div class='del'>-	SET_COMPILE_OPTION(option, opt, inline_const_cache);</div><div class='del'>-	SET_COMPILE_OPTION(option, opt, peephole_optimization);</div><div class='del'>-	SET_COMPILE_OPTION(option, opt, tailcall_optimization);</div><div class='del'>-	SET_COMPILE_OPTION(option, opt, specialized_instruction);</div><div class='del'>-	SET_COMPILE_OPTION(option, opt, operands_unification);</div><div class='del'>-	SET_COMPILE_OPTION(option, opt, instructions_unification);</div><div class='del'>-	SET_COMPILE_OPTION(option, opt, stack_caching);</div><div class='del'>-	SET_COMPILE_OPTION(option, opt, frozen_string_literal);</div><div class='del'>-	SET_COMPILE_OPTION(option, opt, debug_frozen_string_literal);</div><div class='del'>-	SET_COMPILE_OPTION(option, opt, coverage_enabled);</div><div class='del'>-	SET_COMPILE_OPTION_NUM(option, opt, debug_level);</div><div class='add'>+        SET_COMPILE_OPTION(option, opt, inline_const_cache);</div><div class='add'>+        SET_COMPILE_OPTION(option, opt, peephole_optimization);</div><div class='add'>+        SET_COMPILE_OPTION(option, opt, tailcall_optimization);</div><div class='add'>+        SET_COMPILE_OPTION(option, opt, specialized_instruction);</div><div class='add'>+        SET_COMPILE_OPTION(option, opt, operands_unification);</div><div class='add'>+        SET_COMPILE_OPTION(option, opt, instructions_unification);</div><div class='add'>+        SET_COMPILE_OPTION(option, opt, stack_caching);</div><div class='add'>+        SET_COMPILE_OPTION(option, opt, frozen_string_literal);</div><div class='add'>+        SET_COMPILE_OPTION(option, opt, debug_frozen_string_literal);</div><div class='add'>+        SET_COMPILE_OPTION(option, opt, coverage_enabled);</div><div class='add'>+        SET_COMPILE_OPTION_NUM(option, opt, debug_level);</div><div class='ctx'>     }</div><div class='ctx'> #undef SET_COMPILE_OPTION</div><div class='ctx'> #undef SET_COMPILE_OPTION_NUM</div><div class='hunk'>@@ -666,45 +900,94 @@ make_compile_option_value(rb_compile_option_t *option)</div><div class='ctx'> </div><div class='ctx'> rb_iseq_t *</div><div class='ctx'> rb_iseq_new(const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath,</div><div class='del'>-	    const rb_iseq_t *parent, enum iseq_type type)</div><div class='add'>+            const rb_iseq_t *parent, enum rb_iseq_type type)</div><div class='ctx'> {</div><div class='del'>-    return rb_iseq_new_with_opt(ast, name, path, realpath, INT2FIX(0), parent, type,</div><div class='del'>-				&amp;COMPILE_OPTION_DEFAULT);</div><div class='add'>+    return rb_iseq_new_with_opt(ast, name, path, realpath, 0, parent,</div><div class='add'>+                                0, type, &amp;COMPILE_OPTION_DEFAULT);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-rb_iseq_t *</div><div class='del'>-rb_iseq_new_top(const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath, const rb_iseq_t *parent)</div><div class='add'>+static int</div><div class='add'>+ast_line_count(const rb_ast_body_t *ast)</div><div class='add'>+{</div><div class='add'>+    if (ast-&gt;script_lines == Qfalse) {</div><div class='add'>+        // this occurs when failed to parse the source code with a syntax error</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+    if (RB_TYPE_P(ast-&gt;script_lines, T_ARRAY)){</div><div class='add'>+        return (int)RARRAY_LEN(ast-&gt;script_lines);</div><div class='add'>+    }</div><div class='add'>+    return FIX2INT(ast-&gt;script_lines);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+iseq_setup_coverage(VALUE coverages, VALUE path, const rb_ast_body_t *ast, int line_offset)</div><div class='add'>+{</div><div class='add'>+    int line_count = line_offset + ast_line_count(ast);</div><div class='add'>+</div><div class='add'>+    if (line_count &gt;= 0) {</div><div class='add'>+        int len = (rb_get_coverage_mode() &amp; COVERAGE_TARGET_ONESHOT_LINES) ? 0 : line_count;</div><div class='add'>+</div><div class='add'>+        VALUE coverage = rb_default_coverage(len);</div><div class='add'>+        rb_hash_aset(coverages, path, coverage);</div><div class='add'>+</div><div class='add'>+        return coverage;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline void</div><div class='add'>+iseq_new_setup_coverage(VALUE path, const rb_ast_body_t *ast, int line_offset)</div><div class='ctx'> {</div><div class='ctx'>     VALUE coverages = rb_get_coverages();</div><div class='add'>+</div><div class='ctx'>     if (RTEST(coverages)) {</div><div class='del'>-        if (ast-&gt;line_count &gt;= 0) {</div><div class='del'>-            int len = (rb_get_coverage_mode() &amp; COVERAGE_TARGET_ONESHOT_LINES) ? 0 : ast-&gt;line_count;</div><div class='del'>-            VALUE coverage = rb_default_coverage(len);</div><div class='del'>-            rb_hash_aset(coverages, path, coverage);</div><div class='del'>-        }</div><div class='add'>+        iseq_setup_coverage(coverages, path, ast, 0);</div><div class='ctx'>     }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+rb_iseq_t *</div><div class='add'>+rb_iseq_new_top(const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath, const rb_iseq_t *parent)</div><div class='add'>+{</div><div class='add'>+    iseq_new_setup_coverage(path, ast, 0);</div><div class='ctx'> </div><div class='del'>-    return rb_iseq_new_with_opt(ast, name, path, realpath, INT2FIX(0), parent, ISEQ_TYPE_TOP,</div><div class='del'>-				&amp;COMPILE_OPTION_DEFAULT);</div><div class='add'>+    return rb_iseq_new_with_opt(ast, name, path, realpath, 0, parent, 0,</div><div class='add'>+                                ISEQ_TYPE_TOP, &amp;COMPILE_OPTION_DEFAULT);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> rb_iseq_t *</div><div class='del'>-rb_iseq_new_main(const rb_ast_body_t *ast, VALUE path, VALUE realpath, const rb_iseq_t *parent)</div><div class='add'>+rb_iseq_new_main(const rb_ast_body_t *ast, VALUE path, VALUE realpath, const rb_iseq_t *parent, int opt)</div><div class='ctx'> {</div><div class='add'>+    iseq_new_setup_coverage(path, ast, 0);</div><div class='add'>+</div><div class='ctx'>     return rb_iseq_new_with_opt(ast, rb_fstring_lit("&lt;main&gt;"),</div><div class='del'>-				path, realpath, INT2FIX(0),</div><div class='del'>-				parent, ISEQ_TYPE_MAIN, &amp;COMPILE_OPTION_DEFAULT);</div><div class='add'>+                                path, realpath, 0,</div><div class='add'>+                                parent, 0, ISEQ_TYPE_MAIN, opt ? &amp;COMPILE_OPTION_DEFAULT : &amp;COMPILE_OPTION_FALSE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+rb_iseq_t *</div><div class='add'>+rb_iseq_new_eval(const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath, int first_lineno, const rb_iseq_t *parent, int isolated_depth)</div><div class='add'>+{</div><div class='add'>+    if (rb_get_coverage_mode() &amp; COVERAGE_TARGET_EVAL) {</div><div class='add'>+        VALUE coverages = rb_get_coverages();</div><div class='add'>+        if (RTEST(coverages) &amp;&amp; RTEST(path) &amp;&amp; !RTEST(rb_hash_has_key(coverages, path))) {</div><div class='add'>+            iseq_setup_coverage(coverages, path, ast, first_lineno - 1);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return rb_iseq_new_with_opt(ast, name, path, realpath, first_lineno,</div><div class='add'>+                                parent, isolated_depth, ISEQ_TYPE_EVAL, &amp;COMPILE_OPTION_DEFAULT);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline rb_iseq_t *</div><div class='ctx'> iseq_translate(rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     if (rb_respond_to(rb_cISeq, rb_intern("translate"))) {</div><div class='del'>-	VALUE v1 = iseqw_new(iseq);</div><div class='del'>-	VALUE v2 = rb_funcall(rb_cISeq, rb_intern("translate"), 1, v1);</div><div class='del'>-	if (v1 != v2 &amp;&amp; CLASS_OF(v2) == rb_cISeq) {</div><div class='del'>-	    iseq = (rb_iseq_t *)iseqw_check(v2);</div><div class='del'>-	}</div><div class='add'>+        VALUE v1 = iseqw_new(iseq);</div><div class='add'>+        VALUE v2 = rb_funcall(rb_cISeq, rb_intern("translate"), 1, v1);</div><div class='add'>+        if (v1 != v2 &amp;&amp; CLASS_OF(v2) == rb_cISeq) {</div><div class='add'>+            iseq = (rb_iseq_t *)iseqw_check(v2);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return iseq;</div><div class='hunk'>@@ -712,18 +995,33 @@ iseq_translate(rb_iseq_t *iseq)</div><div class='ctx'> </div><div class='ctx'> rb_iseq_t *</div><div class='ctx'> rb_iseq_new_with_opt(const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE realpath,</div><div class='del'>-		     VALUE first_lineno, const rb_iseq_t *parent,</div><div class='del'>-		     enum iseq_type type, const rb_compile_option_t *option)</div><div class='add'>+                     int first_lineno, const rb_iseq_t *parent, int isolated_depth,</div><div class='add'>+                     enum rb_iseq_type type, const rb_compile_option_t *option)</div><div class='ctx'> {</div><div class='ctx'>     const NODE *node = ast ? ast-&gt;root : 0;</div><div class='ctx'>     /* TODO: argument check */</div><div class='ctx'>     rb_iseq_t *iseq = iseq_alloc();</div><div class='ctx'>     rb_compile_option_t new_opt;</div><div class='ctx'> </div><div class='del'>-    new_opt = option ? *option : COMPILE_OPTION_DEFAULT;</div><div class='add'>+    if (option) {</div><div class='add'>+        new_opt = *option;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        new_opt = COMPILE_OPTION_DEFAULT;</div><div class='add'>+    }</div><div class='ctx'>     if (ast &amp;&amp; ast-&gt;compile_option) rb_iseq_make_compile_option(&amp;new_opt, ast-&gt;compile_option);</div><div class='ctx'> </div><div class='del'>-    prepare_iseq_build(iseq, name, path, realpath, first_lineno, node ? &amp;node-&gt;nd_loc : NULL, node ? nd_node_id(node) : -1, parent, type, &amp;new_opt);</div><div class='add'>+    VALUE script_lines = Qnil;</div><div class='add'>+</div><div class='add'>+    if (ast &amp;&amp; !FIXNUM_P(ast-&gt;script_lines) &amp;&amp; ast-&gt;script_lines) {</div><div class='add'>+        script_lines = ast-&gt;script_lines;</div><div class='add'>+    }</div><div class='add'>+    else if (parent) {</div><div class='add'>+        script_lines = ISEQ_BODY(parent)-&gt;variable.script_lines;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    prepare_iseq_build(iseq, name, path, realpath, first_lineno, node ? &amp;node-&gt;nd_loc : NULL, node ? nd_node_id(node) : -1,</div><div class='add'>+                       parent, isolated_depth, type, script_lines, &amp;new_opt);</div><div class='ctx'> </div><div class='ctx'>     rb_iseq_compile_node(iseq, node);</div><div class='ctx'>     finish_iseq_build(iseq);</div><div class='hunk'>@@ -732,20 +1030,22 @@ rb_iseq_new_with_opt(const rb_ast_body_t *ast, VALUE name, VALUE path, VALUE rea</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> rb_iseq_t *</div><div class='del'>-rb_iseq_new_ifunc(const struct vm_ifunc *ifunc, VALUE name, VALUE path, VALUE realpath,</div><div class='del'>-		       VALUE first_lineno, const rb_iseq_t *parent,</div><div class='del'>-		       enum iseq_type type, const rb_compile_option_t *option)</div><div class='add'>+rb_iseq_new_with_callback(</div><div class='add'>+    const struct rb_iseq_new_with_callback_callback_func * ifunc,</div><div class='add'>+    VALUE name, VALUE path, VALUE realpath,</div><div class='add'>+    int first_lineno, const rb_iseq_t *parent,</div><div class='add'>+    enum rb_iseq_type type, const rb_compile_option_t *option)</div><div class='ctx'> {</div><div class='ctx'>     /* TODO: argument check */</div><div class='ctx'>     rb_iseq_t *iseq = iseq_alloc();</div><div class='ctx'> </div><div class='ctx'>     if (!option) option = &amp;COMPILE_OPTION_DEFAULT;</div><div class='del'>-    prepare_iseq_build(iseq, name, path, realpath, first_lineno, NULL, -1, parent, type, option);</div><div class='add'>+    prepare_iseq_build(iseq, name, path, realpath, first_lineno, NULL, -1, parent, 0, type, Qnil, option);</div><div class='ctx'> </div><div class='del'>-    rb_iseq_compile_ifunc(iseq, ifunc);</div><div class='add'>+    rb_iseq_compile_callback(iseq, ifunc);</div><div class='ctx'>     finish_iseq_build(iseq);</div><div class='ctx'> </div><div class='del'>-    return iseq_translate(iseq);</div><div class='add'>+    return iseq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> const rb_iseq_t *</div><div class='hunk'>@@ -754,7 +1054,7 @@ rb_iseq_load_iseq(VALUE fname)</div><div class='ctx'>     VALUE iseqv = rb_check_funcall(rb_cISeq, rb_intern("load_iseq"), 1, &amp;fname);</div><div class='ctx'> </div><div class='ctx'>     if (!SPECIAL_CONST_P(iseqv) &amp;&amp; RBASIC_CLASS(iseqv) == rb_cISeq) {</div><div class='del'>-	return  iseqw_check(iseqv);</div><div class='add'>+        return  iseqw_check(iseqv);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return NULL;</div><div class='hunk'>@@ -766,7 +1066,7 @@ rb_iseq_load_iseq(VALUE fname)</div><div class='ctx'> #define CHECK_SYMBOL(v)  rb_to_symbol_type(v)</div><div class='ctx'> static inline VALUE CHECK_INTEGER(VALUE v) {(void)NUM2LONG(v); return v;}</div><div class='ctx'> </div><div class='del'>-static enum iseq_type</div><div class='add'>+static enum rb_iseq_type</div><div class='ctx'> iseq_type_from_sym(VALUE type)</div><div class='ctx'> {</div><div class='ctx'>     const ID id_top = rb_intern("top");</div><div class='hunk'>@@ -790,7 +1090,7 @@ iseq_type_from_sym(VALUE type)</div><div class='ctx'>     if (typeid == id_eval) return ISEQ_TYPE_EVAL;</div><div class='ctx'>     if (typeid == id_main) return ISEQ_TYPE_MAIN;</div><div class='ctx'>     if (typeid == id_plain) return ISEQ_TYPE_PLAIN;</div><div class='del'>-    return (enum iseq_type)-1;</div><div class='add'>+    return (enum rb_iseq_type)-1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='hunk'>@@ -799,7 +1099,7 @@ iseq_load(VALUE data, const rb_iseq_t *parent, VALUE opt)</div><div class='ctx'>     rb_iseq_t *iseq = iseq_alloc();</div><div class='ctx'> </div><div class='ctx'>     VALUE magic, version1, version2, format_type, misc;</div><div class='del'>-    VALUE name, path, realpath, first_lineno, code_location, node_id;</div><div class='add'>+    VALUE name, path, realpath, code_location, node_id;</div><div class='ctx'>     VALUE type, body, locals, params, exception;</div><div class='ctx'> </div><div class='ctx'>     st_data_t iseq_type;</div><div class='hunk'>@@ -825,7 +1125,7 @@ iseq_load(VALUE data, const rb_iseq_t *parent, VALUE opt)</div><div class='ctx'>     path        = CHECK_STRING(rb_ary_entry(data, i++));</div><div class='ctx'>     realpath    = rb_ary_entry(data, i++);</div><div class='ctx'>     realpath    = NIL_P(realpath) ? Qnil : CHECK_STRING(realpath);</div><div class='del'>-    first_lineno = CHECK_INTEGER(rb_ary_entry(data, i++));</div><div class='add'>+    int first_lineno = RB_NUM2INT(rb_ary_entry(data, i++));</div><div class='ctx'> </div><div class='ctx'>     type        = CHECK_SYMBOL(rb_ary_entry(data, i++));</div><div class='ctx'>     locals      = CHECK_ARRAY(rb_ary_entry(data, i++));</div><div class='hunk'>@@ -833,27 +1133,27 @@ iseq_load(VALUE data, const rb_iseq_t *parent, VALUE opt)</div><div class='ctx'>     exception   = CHECK_ARRAY(rb_ary_entry(data, i++));</div><div class='ctx'>     body        = CHECK_ARRAY(rb_ary_entry(data, i++));</div><div class='ctx'> </div><div class='del'>-    iseq-&gt;body-&gt;local_iseq = iseq;</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;local_iseq = iseq;</div><div class='ctx'> </div><div class='ctx'>     iseq_type = iseq_type_from_sym(type);</div><div class='del'>-    if (iseq_type == (enum iseq_type)-1) {</div><div class='del'>-	rb_raise(rb_eTypeError, "unsupport type: :%"PRIsVALUE, rb_sym2str(type));</div><div class='add'>+    if (iseq_type == (enum rb_iseq_type)-1) {</div><div class='add'>+        rb_raise(rb_eTypeError, "unsupported type: :%"PRIsVALUE, rb_sym2str(type));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     node_id = rb_hash_aref(misc, ID2SYM(rb_intern("node_id")));</div><div class='ctx'> </div><div class='ctx'>     code_location = rb_hash_aref(misc, ID2SYM(rb_intern("code_location")));</div><div class='ctx'>     if (RB_TYPE_P(code_location, T_ARRAY) &amp;&amp; RARRAY_LEN(code_location) == 4) {</div><div class='del'>-	tmp_loc.beg_pos.lineno = NUM2INT(rb_ary_entry(code_location, 0));</div><div class='del'>-	tmp_loc.beg_pos.column = NUM2INT(rb_ary_entry(code_location, 1));</div><div class='del'>-	tmp_loc.end_pos.lineno = NUM2INT(rb_ary_entry(code_location, 2));</div><div class='del'>-	tmp_loc.end_pos.column = NUM2INT(rb_ary_entry(code_location, 3));</div><div class='add'>+        tmp_loc.beg_pos.lineno = NUM2INT(rb_ary_entry(code_location, 0));</div><div class='add'>+        tmp_loc.beg_pos.column = NUM2INT(rb_ary_entry(code_location, 1));</div><div class='add'>+        tmp_loc.end_pos.lineno = NUM2INT(rb_ary_entry(code_location, 2));</div><div class='add'>+        tmp_loc.end_pos.column = NUM2INT(rb_ary_entry(code_location, 3));</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     make_compile_option(&amp;option, opt);</div><div class='ctx'>     option.peephole_optimization = FALSE; /* because peephole optimization can modify original iseq */</div><div class='ctx'>     prepare_iseq_build(iseq, name, path, realpath, first_lineno, &amp;tmp_loc, NUM2INT(node_id),</div><div class='del'>-		       parent, (enum iseq_type)iseq_type, &amp;option);</div><div class='add'>+                       parent, 0, (enum rb_iseq_type)iseq_type, Qnil, &amp;option);</div><div class='ctx'> </div><div class='ctx'>     rb_iseq_build_from_ary(iseq, misc, locals, params, exception, body);</div><div class='ctx'> </div><div class='hunk'>@@ -879,13 +1179,11 @@ rb_iseq_load(VALUE data, VALUE parent, VALUE opt)</div><div class='ctx'>     return iseq_load(data, RTEST(parent) ? (rb_iseq_t *)parent : NULL, opt);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-rb_iseq_t *</div><div class='del'>-rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE realpath, VALUE line, const struct rb_block *base_block, VALUE opt)</div><div class='add'>+static rb_iseq_t *</div><div class='add'>+rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE realpath, VALUE line, VALUE opt)</div><div class='ctx'> {</div><div class='ctx'>     rb_iseq_t *iseq = NULL;</div><div class='del'>-    const rb_iseq_t *const parent = base_block ? vm_block_iseq(base_block) : NULL;</div><div class='ctx'>     rb_compile_option_t option;</div><div class='del'>-    const enum iseq_type type = parent ? ISEQ_TYPE_EVAL : ISEQ_TYPE_TOP;</div><div class='ctx'> #if !defined(__GNUC__) || (__GNUC__ == 4 &amp;&amp; __GNUC_MINOR__ == 8)</div><div class='ctx'> # define INITIALIZED volatile /* suppress warnings by gcc 4.8 */</div><div class='ctx'> #else</div><div class='hunk'>@@ -894,62 +1192,51 @@ rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE realpath, VALUE line, c</div><div class='ctx'>     rb_ast_t *(*parse)(VALUE vparser, VALUE fname, VALUE file, int start);</div><div class='ctx'>     int ln;</div><div class='ctx'>     rb_ast_t *INITIALIZED ast;</div><div class='add'>+    VALUE name = rb_fstring_lit("&lt;compiled&gt;");</div><div class='ctx'> </div><div class='ctx'>     /* safe results first */</div><div class='ctx'>     make_compile_option(&amp;option, opt);</div><div class='ctx'>     ln = NUM2INT(line);</div><div class='ctx'>     StringValueCStr(file);</div><div class='ctx'>     if (RB_TYPE_P(src, T_FILE)) {</div><div class='del'>-	parse = rb_parser_compile_file_path;</div><div class='add'>+        parse = rb_parser_compile_file_path;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	parse = rb_parser_compile_string_path;</div><div class='del'>-	StringValue(src);</div><div class='add'>+        parse = rb_parser_compile_string_path;</div><div class='add'>+        StringValue(src);</div><div class='ctx'>     }</div><div class='ctx'>     {</div><div class='del'>-	const VALUE parser = rb_parser_new();</div><div class='del'>-	rb_parser_set_context(parser, base_block, FALSE);</div><div class='del'>-	ast = (*parse)(parser, file, src, ln);</div><div class='add'>+        const VALUE parser = rb_parser_new();</div><div class='add'>+        const rb_iseq_t *outer_scope = rb_iseq_new(NULL, name, name, Qnil, 0, ISEQ_TYPE_TOP);</div><div class='add'>+        VALUE outer_scope_v = (VALUE)outer_scope;</div><div class='add'>+        rb_parser_set_context(parser, outer_scope, FALSE);</div><div class='add'>+        RB_GC_GUARD(outer_scope_v);</div><div class='add'>+        ast = (*parse)(parser, file, src, ln);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!ast-&gt;body.root) {</div><div class='del'>-	rb_ast_dispose(ast);</div><div class='del'>-	rb_exc_raise(GET_EC()-&gt;errinfo);</div><div class='add'>+        rb_ast_dispose(ast);</div><div class='add'>+        rb_exc_raise(GET_EC()-&gt;errinfo);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	INITIALIZED VALUE label = parent ?</div><div class='del'>-	    parent-&gt;body-&gt;location.label :</div><div class='del'>-	    rb_fstring_lit("&lt;compiled&gt;");</div><div class='del'>-	iseq = rb_iseq_new_with_opt(&amp;ast-&gt;body, label, file, realpath, line,</div><div class='del'>-				    parent, type, &amp;option);</div><div class='del'>-	rb_ast_dispose(ast);</div><div class='add'>+        iseq = rb_iseq_new_with_opt(&amp;ast-&gt;body, name, file, realpath, ln,</div><div class='add'>+                                    NULL, 0, ISEQ_TYPE_TOP, &amp;option);</div><div class='add'>+        rb_ast_dispose(ast);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     return iseq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-rb_iseq_t *</div><div class='del'>-rb_iseq_compile(VALUE src, VALUE file, VALUE line)</div><div class='del'>-{</div><div class='del'>-    return rb_iseq_compile_with_option(src, file, Qnil, line, 0, Qnil);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-rb_iseq_t *</div><div class='del'>-rb_iseq_compile_on_base(VALUE src, VALUE file, VALUE line, const struct rb_block *base_block)</div><div class='del'>-{</div><div class='del'>-    return rb_iseq_compile_with_option(src, file, Qnil, line, base_block, Qnil);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> VALUE</div><div class='ctx'> rb_iseq_path(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    return pathobj_path(iseq-&gt;body-&gt;location.pathobj);</div><div class='add'>+    return pathobj_path(ISEQ_BODY(iseq)-&gt;location.pathobj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_iseq_realpath(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    return pathobj_realpath(iseq-&gt;body-&gt;location.pathobj);</div><div class='add'>+    return pathobj_realpath(ISEQ_BODY(iseq)-&gt;location.pathobj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='hunk'>@@ -958,47 +1245,61 @@ rb_iseq_absolute_path(const rb_iseq_t *iseq)</div><div class='ctx'>     return rb_iseq_realpath(iseq);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+int</div><div class='add'>+rb_iseq_from_eval_p(const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    return NIL_P(rb_iseq_realpath(iseq));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='ctx'> rb_iseq_label(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    return iseq-&gt;body-&gt;location.label;</div><div class='add'>+    return ISEQ_BODY(iseq)-&gt;location.label;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_iseq_base_label(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    return iseq-&gt;body-&gt;location.base_label;</div><div class='add'>+    return ISEQ_BODY(iseq)-&gt;location.base_label;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_iseq_first_lineno(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    return iseq-&gt;body-&gt;location.first_lineno;</div><div class='add'>+    return RB_INT2NUM(ISEQ_BODY(iseq)-&gt;location.first_lineno);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_iseq_method_name(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    struct rb_iseq_constant_body *const body = iseq-&gt;body-&gt;local_iseq-&gt;body;</div><div class='add'>+    struct rb_iseq_constant_body *const body = ISEQ_BODY(ISEQ_BODY(iseq)-&gt;local_iseq);</div><div class='ctx'> </div><div class='ctx'>     if (body-&gt;type == ISEQ_TYPE_METHOD) {</div><div class='del'>-	return body-&gt;location.base_label;</div><div class='add'>+        return body-&gt;location.base_label;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return Qnil;</div><div class='add'>+        return Qnil;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> void</div><div class='ctx'> rb_iseq_code_location(const rb_iseq_t *iseq, int *beg_pos_lineno, int *beg_pos_column, int *end_pos_lineno, int *end_pos_column)</div><div class='ctx'> {</div><div class='del'>-    const rb_code_location_t *loc = &amp;iseq-&gt;body-&gt;location.code_location;</div><div class='add'>+    const rb_code_location_t *loc = &amp;ISEQ_BODY(iseq)-&gt;location.code_location;</div><div class='ctx'>     if (beg_pos_lineno) *beg_pos_lineno = loc-&gt;beg_pos.lineno;</div><div class='ctx'>     if (beg_pos_column) *beg_pos_column = loc-&gt;beg_pos.column;</div><div class='ctx'>     if (end_pos_lineno) *end_pos_lineno = loc-&gt;end_pos.lineno;</div><div class='ctx'>     if (end_pos_column) *end_pos_column = loc-&gt;end_pos.column;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static ID iseq_type_id(enum rb_iseq_type type);</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_iseq_type(const rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    return ID2SYM(iseq_type_id(ISEQ_BODY(iseq)-&gt;type));</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='ctx'> rb_iseq_coverage(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='hunk'>@@ -1010,10 +1311,15 @@ remove_coverage_i(void *vstart, void *vend, size_t stride, void *data)</div><div class='ctx'> {</div><div class='ctx'>     VALUE v = (VALUE)vstart;</div><div class='ctx'>     for (; v != (VALUE)vend; v += stride) {</div><div class='del'>-	if (rb_obj_is_iseq(v)) {</div><div class='add'>+        void *ptr = asan_poisoned_object_p(v);</div><div class='add'>+        asan_unpoison_object(v, false);</div><div class='add'>+</div><div class='add'>+        if (rb_obj_is_iseq(v)) {</div><div class='ctx'>             rb_iseq_t *iseq = (rb_iseq_t *)v;</div><div class='ctx'>             ISEQ_COVERAGE_SET(iseq, Qnil);</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        asan_poison_object_if(ptr, v);</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -1035,7 +1341,7 @@ iseqw_mark(void *ptr)</div><div class='ctx'> static size_t</div><div class='ctx'> iseqw_memsize(const void *ptr)</div><div class='ctx'> {</div><div class='del'>-    return iseq_memsize((const rb_iseq_t *)ptr);</div><div class='add'>+    return rb_iseq_memsize((const rb_iseq_t *)ptr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static const rb_data_type_t iseqw_data_type = {</div><div class='hunk'>@@ -1079,10 +1385,14 @@ rb_iseqw_new(const rb_iseq_t *iseq)</div><div class='ctx'>  *  Takes +source+, a String of Ruby code and compiles it to an</div><div class='ctx'>  *  InstructionSequence.</div><div class='ctx'>  *</div><div class='del'>- *  Optionally takes +file+, +path+, and +line+ which describe the filename,</div><div class='del'>- *  absolute path and first line number of the ruby code in +source+ which are</div><div class='add'>+ *  Optionally takes +file+, +path+, and +line+ which describe the file path,</div><div class='add'>+ *  real path and first line number of the ruby code in +source+ which are</div><div class='ctx'>  *  metadata attached to the returned +iseq+.</div><div class='ctx'>  *</div><div class='add'>+ *  +file+ is used for `__FILE__` and exception backtrace. +path+ is used for</div><div class='add'>+ *  +require_relative+ base. It is recommended these should be the same full</div><div class='add'>+ *  path.</div><div class='add'>+ *</div><div class='ctx'>  *  +options+, which can be +true+, +false+ or a +Hash+, is used to</div><div class='ctx'>  *  modify the default behavior of the Ruby iseq compiler.</div><div class='ctx'>  *</div><div class='hunk'>@@ -1091,6 +1401,14 @@ rb_iseqw_new(const rb_iseq_t *iseq)</div><div class='ctx'>  *     RubyVM::InstructionSequence.compile("a = 1 + 2")</div><div class='ctx'>  *     #=&gt; &lt;RubyVM::InstructionSequence:&lt;compiled&gt;@&lt;compiled&gt;&gt;</div><div class='ctx'>  *</div><div class='add'>+ *     path = "test.rb"</div><div class='add'>+ *     RubyVM::InstructionSequence.compile(File.read(path), path, File.expand_path(path))</div><div class='add'>+ *     #=&gt; &lt;RubyVM::InstructionSequence:&lt;compiled&gt;@test.rb:1&gt;</div><div class='add'>+ *</div><div class='add'>+ *     path = File.expand_path("test.rb")</div><div class='add'>+ *     RubyVM::InstructionSequence.compile(File.read(path), path, path)</div><div class='add'>+ *     #=&gt; &lt;RubyVM::InstructionSequence:&lt;compiled&gt;@/absolute/path/to/test.rb:1&gt;</div><div class='add'>+ *</div><div class='ctx'>  */</div><div class='ctx'> static VALUE</div><div class='ctx'> iseqw_s_compile(int argc, VALUE *argv, VALUE self)</div><div class='hunk'>@@ -1098,8 +1416,6 @@ iseqw_s_compile(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     VALUE src, file = Qnil, path = Qnil, line = INT2FIX(1), opt = Qnil;</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='del'>-    rb_secure(1);</div><div class='del'>-</div><div class='ctx'>     i = rb_scan_args(argc, argv, "1*:", &amp;src, NULL, &amp;opt);</div><div class='ctx'>     if (i &gt; 4+NIL_P(opt)) rb_error_arity(argc, 1, 5);</div><div class='ctx'>     switch (i) {</div><div class='hunk'>@@ -1116,7 +1432,7 @@ iseqw_s_compile(int argc, VALUE *argv, VALUE self)</div><div class='ctx'>     Check_Type(path, T_STRING);</div><div class='ctx'>     Check_Type(file, T_STRING);</div><div class='ctx'> </div><div class='del'>-    return iseqw_new(rb_iseq_compile_with_option(src, file, path, line, 0, opt));</div><div class='add'>+    return iseqw_new(rb_iseq_compile_with_option(src, file, path, line, opt));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1142,13 +1458,12 @@ iseqw_s_compile(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> static VALUE</div><div class='ctx'> iseqw_s_compile_file(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> {</div><div class='del'>-    VALUE file, line = INT2FIX(1), opt = Qnil;</div><div class='add'>+    VALUE file, opt = Qnil;</div><div class='ctx'>     VALUE parser, f, exc = Qnil, ret;</div><div class='ctx'>     rb_ast_t *ast;</div><div class='ctx'>     rb_compile_option_t option;</div><div class='ctx'>     int i;</div><div class='ctx'> </div><div class='del'>-    rb_secure(1);</div><div class='ctx'>     i = rb_scan_args(argc, argv, "1*:", &amp;file, NULL, &amp;opt);</div><div class='ctx'>     if (i &gt; 1+NIL_P(opt)) rb_error_arity(argc, 1, 2);</div><div class='ctx'>     switch (i) {</div><div class='hunk'>@@ -1159,24 +1474,30 @@ iseqw_s_compile_file(int argc, VALUE *argv, VALUE self)</div><div class='ctx'> </div><div class='ctx'>     f = rb_file_open_str(file, "r");</div><div class='ctx'> </div><div class='add'>+    rb_execution_context_t *ec = GET_EC();</div><div class='add'>+    VALUE v = rb_vm_push_frame_fname(ec, file);</div><div class='add'>+</div><div class='ctx'>     parser = rb_parser_new();</div><div class='ctx'>     rb_parser_set_context(parser, NULL, FALSE);</div><div class='del'>-    ast = rb_parser_compile_file_path(parser, file, f, NUM2INT(line));</div><div class='add'>+    ast = (rb_ast_t *)rb_parser_load_file(parser, file);</div><div class='ctx'>     if (!ast-&gt;body.root) exc = GET_EC()-&gt;errinfo;</div><div class='ctx'> </div><div class='ctx'>     rb_io_close(f);</div><div class='ctx'>     if (!ast-&gt;body.root) {</div><div class='del'>-	rb_ast_dispose(ast);</div><div class='del'>-	rb_exc_raise(exc);</div><div class='add'>+        rb_ast_dispose(ast);</div><div class='add'>+        rb_exc_raise(exc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     make_compile_option(&amp;option, opt);</div><div class='ctx'> </div><div class='ctx'>     ret = iseqw_new(rb_iseq_new_with_opt(&amp;ast-&gt;body, rb_fstring_lit("&lt;main&gt;"),</div><div class='del'>-					 file,</div><div class='del'>-					 rb_realpath_internal(Qnil, file, 1),</div><div class='del'>-					 line, NULL, ISEQ_TYPE_TOP, &amp;option));</div><div class='add'>+                                         file,</div><div class='add'>+                                         rb_realpath_internal(Qnil, file, 1),</div><div class='add'>+                                         1, NULL, 0, ISEQ_TYPE_TOP, &amp;option));</div><div class='ctx'>     rb_ast_dispose(ast);</div><div class='add'>+</div><div class='add'>+    rb_vm_pop_frame(ec);</div><div class='add'>+    RB_GC_GUARD(v);</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1215,7 +1536,6 @@ static VALUE</div><div class='ctx'> iseqw_s_compile_option_set(VALUE self, VALUE opt)</div><div class='ctx'> {</div><div class='ctx'>     rb_compile_option_t option;</div><div class='del'>-    rb_secure(1);</div><div class='ctx'>     make_compile_option(&amp;option, opt);</div><div class='ctx'>     COMPILE_OPTION_DEFAULT = option;</div><div class='ctx'>     return opt;</div><div class='hunk'>@@ -1240,12 +1560,12 @@ iseqw_check(VALUE iseqw)</div><div class='ctx'> {</div><div class='ctx'>     rb_iseq_t *iseq = DATA_PTR(iseqw);</div><div class='ctx'> </div><div class='del'>-    if (!iseq-&gt;body) {</div><div class='del'>-	rb_ibf_load_iseq_complete(iseq);</div><div class='add'>+    if (!ISEQ_BODY(iseq)) {</div><div class='add'>+        rb_ibf_load_iseq_complete(iseq);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (!iseq-&gt;body-&gt;location.label) {</div><div class='del'>-	rb_raise(rb_eTypeError, "uninitialized InstructionSequence");</div><div class='add'>+    if (!ISEQ_BODY(iseq)-&gt;location.label) {</div><div class='add'>+        rb_raise(rb_eTypeError, "uninitialized InstructionSequence");</div><div class='ctx'>     }</div><div class='ctx'>     return iseq;</div><div class='ctx'> }</div><div class='hunk'>@@ -1267,8 +1587,11 @@ rb_iseqw_to_iseq(VALUE iseqw)</div><div class='ctx'> static VALUE</div><div class='ctx'> iseqw_eval(VALUE self)</div><div class='ctx'> {</div><div class='del'>-    rb_secure(1);</div><div class='del'>-    return rb_iseq_eval(iseqw_check(self));</div><div class='add'>+    const rb_iseq_t *iseq = iseqw_check(self);</div><div class='add'>+    if (0 == ISEQ_BODY(iseq)-&gt;iseq_size) {</div><div class='add'>+        rb_raise(rb_eTypeError, "attempt to evaluate dummy InstructionSequence");</div><div class='add'>+    }</div><div class='add'>+    return rb_iseq_eval(iseq);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -1279,17 +1602,17 @@ static VALUE</div><div class='ctx'> iseqw_inspect(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     const rb_iseq_t *iseq = iseqw_check(self);</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     VALUE klass = rb_class_name(rb_obj_class(self));</div><div class='ctx'> </div><div class='ctx'>     if (!body-&gt;location.label) {</div><div class='del'>-	return rb_sprintf("#&lt;%"PRIsVALUE": uninitialized&gt;", klass);</div><div class='add'>+        return rb_sprintf("#&lt;%"PRIsVALUE": uninitialized&gt;", klass);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return rb_sprintf("&lt;%"PRIsVALUE":%"PRIsVALUE"@%"PRIsVALUE":%d&gt;",</div><div class='del'>-			  klass,</div><div class='del'>-			  body-&gt;location.label, rb_iseq_path(iseq),</div><div class='del'>-			  FIX2INT(rb_iseq_first_lineno(iseq)));</div><div class='add'>+        return rb_sprintf("&lt;%"PRIsVALUE":%"PRIsVALUE"@%"PRIsVALUE":%d&gt;",</div><div class='add'>+                          klass,</div><div class='add'>+                          body-&gt;location.label, rb_iseq_path(iseq),</div><div class='add'>+                          FIX2INT(rb_iseq_first_lineno(iseq)));</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1502,7 +1825,6 @@ static VALUE</div><div class='ctx'> iseqw_to_a(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     const rb_iseq_t *iseq = iseqw_check(self);</div><div class='del'>-    rb_secure(1);</div><div class='ctx'>     return iseq_data_to_ary(iseq);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1510,45 +1832,45 @@ iseqw_to_a(VALUE self)</div><div class='ctx'> static const struct iseq_insn_info_entry *</div><div class='ctx'> get_insn_info_binary_search(const rb_iseq_t *iseq, size_t pos)</div><div class='ctx'> {</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     size_t size = body-&gt;insns_info.size;</div><div class='ctx'>     const struct iseq_insn_info_entry *insns_info = body-&gt;insns_info.body;</div><div class='ctx'>     const unsigned int *positions = body-&gt;insns_info.positions;</div><div class='ctx'>     const int debug = 0;</div><div class='ctx'> </div><div class='ctx'>     if (debug) {</div><div class='del'>-	printf("size: %"PRIuSIZE"\n", size);</div><div class='del'>-	printf("insns_info[%"PRIuSIZE"]: position: %d, line: %d, pos: %"PRIuSIZE"\n",</div><div class='del'>-	       (size_t)0, positions[0], insns_info[0].line_no, pos);</div><div class='add'>+        printf("size: %"PRIuSIZE"\n", size);</div><div class='add'>+        printf("insns_info[%"PRIuSIZE"]: position: %d, line: %d, pos: %"PRIuSIZE"\n",</div><div class='add'>+               (size_t)0, positions[0], insns_info[0].line_no, pos);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (size == 0) {</div><div class='del'>-	return NULL;</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'>     else if (size == 1) {</div><div class='del'>-	return &amp;insns_info[0];</div><div class='add'>+        return &amp;insns_info[0];</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	size_t l = 1, r = size - 1;</div><div class='del'>-	while (l &lt;= r) {</div><div class='del'>-	    size_t m = l + (r - l) / 2;</div><div class='del'>-	    if (positions[m] == pos) {</div><div class='del'>-		return &amp;insns_info[m];</div><div class='del'>-	    }</div><div class='del'>-	    if (positions[m] &lt; pos) {</div><div class='del'>-		l = m + 1;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		r = m - 1;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	if (l &gt;= size) {</div><div class='del'>-	    return &amp;insns_info[size-1];</div><div class='del'>-	}</div><div class='del'>-	if (positions[l] &gt; pos) {</div><div class='del'>-	    return &amp;insns_info[l-1];</div><div class='del'>-	}</div><div class='del'>-	return &amp;insns_info[l];</div><div class='add'>+        size_t l = 1, r = size - 1;</div><div class='add'>+        while (l &lt;= r) {</div><div class='add'>+            size_t m = l + (r - l) / 2;</div><div class='add'>+            if (positions[m] == pos) {</div><div class='add'>+                return &amp;insns_info[m];</div><div class='add'>+            }</div><div class='add'>+            if (positions[m] &lt; pos) {</div><div class='add'>+                l = m + 1;</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                r = m - 1;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        if (l &gt;= size) {</div><div class='add'>+            return &amp;insns_info[size-1];</div><div class='add'>+        }</div><div class='add'>+        if (positions[l] &gt; pos) {</div><div class='add'>+            return &amp;insns_info[l-1];</div><div class='add'>+        }</div><div class='add'>+        return &amp;insns_info[l];</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1563,7 +1885,7 @@ get_insn_info(const rb_iseq_t *iseq, size_t pos)</div><div class='ctx'> static const struct iseq_insn_info_entry *</div><div class='ctx'> get_insn_info_succinct_bitvector(const rb_iseq_t *iseq, size_t pos)</div><div class='ctx'> {</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     size_t size = body-&gt;insns_info.size;</div><div class='ctx'>     const struct iseq_insn_info_entry *insns_info = body-&gt;insns_info.body;</div><div class='ctx'>     const int debug = 0;</div><div class='hunk'>@@ -1582,16 +1904,16 @@ get_insn_info_succinct_bitvector(const rb_iseq_t *iseq, size_t pos)</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (size == 0) {</div><div class='del'>-	return NULL;</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'>     else if (size == 1) {</div><div class='del'>-	return &amp;insns_info[0];</div><div class='add'>+        return &amp;insns_info[0];</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	int index;</div><div class='del'>-	VM_ASSERT(body-&gt;insns_info.succ_index_table != NULL);</div><div class='del'>-	index = succ_index_lookup(body-&gt;insns_info.succ_index_table, (int)pos);</div><div class='del'>-	return &amp;insns_info[index-1];</div><div class='add'>+        int index;</div><div class='add'>+        VM_ASSERT(body-&gt;insns_info.succ_index_table != NULL);</div><div class='add'>+        index = succ_index_lookup(body-&gt;insns_info.succ_index_table, (int)pos);</div><div class='add'>+        return &amp;insns_info[index-1];</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1606,36 +1928,36 @@ get_insn_info(const rb_iseq_t *iseq, size_t pos)</div><div class='ctx'> static const struct iseq_insn_info_entry *</div><div class='ctx'> get_insn_info_linear_search(const rb_iseq_t *iseq, size_t pos)</div><div class='ctx'> {</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     size_t i = 0, size = body-&gt;insns_info.size;</div><div class='ctx'>     const struct iseq_insn_info_entry *insns_info = body-&gt;insns_info.body;</div><div class='ctx'>     const unsigned int *positions = body-&gt;insns_info.positions;</div><div class='ctx'>     const int debug = 0;</div><div class='ctx'> </div><div class='ctx'>     if (debug) {</div><div class='del'>-	printf("size: %"PRIuSIZE"\n", size);</div><div class='del'>-	printf("insns_info[%"PRIuSIZE"]: position: %d, line: %d, pos: %"PRIuSIZE"\n",</div><div class='del'>-	       i, positions[i], insns_info[i].line_no, pos);</div><div class='add'>+        printf("size: %"PRIuSIZE"\n", size);</div><div class='add'>+        printf("insns_info[%"PRIuSIZE"]: position: %d, line: %d, pos: %"PRIuSIZE"\n",</div><div class='add'>+               i, positions[i], insns_info[i].line_no, pos);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (size == 0) {</div><div class='del'>-	return NULL;</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'>     else if (size == 1) {</div><div class='del'>-	return &amp;insns_info[0];</div><div class='add'>+        return &amp;insns_info[0];</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	for (i=1; i&lt;size; i++) {</div><div class='del'>-	    if (debug) printf("insns_info[%"PRIuSIZE"]: position: %d, line: %d, pos: %"PRIuSIZE"\n",</div><div class='del'>-			      i, positions[i], insns_info[i].line_no, pos);</div><div class='del'>-</div><div class='del'>-	    if (positions[i] == pos) {</div><div class='del'>-		return &amp;insns_info[i];</div><div class='del'>-	    }</div><div class='del'>-	    if (positions[i] &gt; pos) {</div><div class='del'>-		return &amp;insns_info[i-1];</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        for (i=1; i&lt;size; i++) {</div><div class='add'>+            if (debug) printf("insns_info[%"PRIuSIZE"]: position: %d, line: %d, pos: %"PRIuSIZE"\n",</div><div class='add'>+                              i, positions[i], insns_info[i].line_no, pos);</div><div class='add'>+</div><div class='add'>+            if (positions[i] == pos) {</div><div class='add'>+                return &amp;insns_info[i];</div><div class='add'>+            }</div><div class='add'>+            if (positions[i] &gt; pos) {</div><div class='add'>+                return &amp;insns_info[i-1];</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return &amp;insns_info[i-1];</div><div class='ctx'> }</div><div class='hunk'>@@ -1653,12 +1975,12 @@ get_insn_info(const rb_iseq_t *iseq, size_t pos)</div><div class='ctx'> static void</div><div class='ctx'> validate_get_insn_info(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     size_t i;</div><div class='ctx'>     for (i = 0; i &lt; body-&gt;iseq_size; i++) {</div><div class='del'>-	if (get_insn_info_linear_search(iseq, i) != get_insn_info(iseq, i)) {</div><div class='del'>-	    rb_bug("validate_get_insn_info: get_insn_info_linear_search(iseq, %"PRIuSIZE") != get_insn_info(iseq, %"PRIuSIZE")", i, i);</div><div class='del'>-	}</div><div class='add'>+        if (get_insn_info_linear_search(iseq, i) != get_insn_info(iseq, i)) {</div><div class='add'>+            rb_bug("validate_get_insn_info: get_insn_info_linear_search(iseq, %"PRIuSIZE") != get_insn_info(iseq, %"PRIuSIZE")", i, i);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='hunk'>@@ -1669,22 +1991,37 @@ rb_iseq_line_no(const rb_iseq_t *iseq, size_t pos)</div><div class='ctx'>     const struct iseq_insn_info_entry *entry = get_insn_info(iseq, pos);</div><div class='ctx'> </div><div class='ctx'>     if (entry) {</div><div class='del'>-	return entry-&gt;line_no;</div><div class='add'>+        return entry-&gt;line_no;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#ifdef USE_ISEQ_NODE_ID</div><div class='add'>+int</div><div class='add'>+rb_iseq_node_id(const rb_iseq_t *iseq, size_t pos)</div><div class='add'>+{</div><div class='add'>+    const struct iseq_insn_info_entry *entry = get_insn_info(iseq, pos);</div><div class='add'>+</div><div class='add'>+    if (entry) {</div><div class='add'>+        return entry-&gt;node_id;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        return 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> MJIT_FUNC_EXPORTED rb_event_flag_t</div><div class='ctx'> rb_iseq_event_flags(const rb_iseq_t *iseq, size_t pos)</div><div class='ctx'> {</div><div class='ctx'>     const struct iseq_insn_info_entry *entry = get_insn_info(iseq, pos);</div><div class='ctx'>     if (entry) {</div><div class='del'>-	return entry-&gt;events;</div><div class='add'>+        return entry-&gt;events;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return 0;</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -1710,30 +2047,31 @@ local_var_name(const rb_iseq_t *diseq, VALUE level, VALUE op)</div><div class='ctx'>     int idx;</div><div class='ctx'> </div><div class='ctx'>     for (i = 0; i &lt; level; i++) {</div><div class='del'>-	diseq = diseq-&gt;body-&gt;parent_iseq;</div><div class='add'>+        diseq = ISEQ_BODY(diseq)-&gt;parent_iseq;</div><div class='ctx'>     }</div><div class='del'>-    idx = diseq-&gt;body-&gt;local_table_size - (int)op - 1;</div><div class='del'>-    lid = diseq-&gt;body-&gt;local_table[idx];</div><div class='add'>+    idx = ISEQ_BODY(diseq)-&gt;local_table_size - (int)op - 1;</div><div class='add'>+    lid = ISEQ_BODY(diseq)-&gt;local_table[idx];</div><div class='ctx'>     name = rb_id2str(lid);</div><div class='ctx'>     if (!name) {</div><div class='del'>-	name = rb_str_new_cstr("?");</div><div class='add'>+        name = rb_str_new_cstr("?");</div><div class='ctx'>     }</div><div class='ctx'>     else if (!rb_str_symname_p(name)) {</div><div class='del'>-	name = rb_str_inspect(name);</div><div class='add'>+        name = rb_str_inspect(name);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	name = rb_str_dup(name);</div><div class='add'>+        name = rb_str_dup(name);</div><div class='ctx'>     }</div><div class='ctx'>     rb_str_catf(name, "@%d", idx);</div><div class='ctx'>     return name;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int rb_insn_unified_local_var_level(VALUE);</div><div class='add'>+VALUE rb_dump_literal(VALUE lit);</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='ctx'> rb_insn_operand_intern(const rb_iseq_t *iseq,</div><div class='del'>-		       VALUE insn, int op_no, VALUE op,</div><div class='del'>-		       int len, size_t pos, const VALUE *pnop, VALUE child)</div><div class='add'>+                       VALUE insn, int op_no, VALUE op,</div><div class='add'>+                       int len, size_t pos, const VALUE *pnop, VALUE child)</div><div class='ctx'> {</div><div class='ctx'>     const char *types = insn_op_types(insn);</div><div class='ctx'>     char type = types[op_no];</div><div class='hunk'>@@ -1741,157 +2079,178 @@ rb_insn_operand_intern(const rb_iseq_t *iseq,</div><div class='ctx'> </div><div class='ctx'>     switch (type) {</div><div class='ctx'>       case TS_OFFSET:		/* LONG */</div><div class='del'>-	ret = rb_sprintf("%"PRIdVALUE, (VALUE)(pos + len + op));</div><div class='del'>-	break;</div><div class='add'>+        ret = rb_sprintf("%"PRIdVALUE, (VALUE)(pos + len + op));</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case TS_NUM:		/* ULONG */</div><div class='del'>-	if (insn == BIN(defined) &amp;&amp; op_no == 0) {</div><div class='del'>-	    enum defined_type deftype = (enum defined_type)op;</div><div class='del'>-	    if (deftype == DEFINED_FUNC) {</div><div class='del'>-		ret = rb_fstring_lit("func"); break;</div><div class='del'>-	    }</div><div class='del'>-	    if (deftype == DEFINED_REF) {</div><div class='del'>-		ret = rb_fstring_lit("ref"); break;</div><div class='del'>-	    }</div><div class='del'>-	    ret = rb_iseq_defined_string(deftype);</div><div class='del'>-	    if (ret) break;</div><div class='del'>-	}</div><div class='del'>-	else if (insn == BIN(checktype) &amp;&amp; op_no == 0) {</div><div class='del'>-	    const char *type_str = rb_type_str((enum ruby_value_type)op);</div><div class='del'>-	    if (type_str) {</div><div class='del'>-		ret = rb_str_new_cstr(type_str); break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	ret = rb_sprintf("%"PRIuVALUE, op);</div><div class='del'>-	break;</div><div class='add'>+        if (insn == BIN(defined) &amp;&amp; op_no == 0) {</div><div class='add'>+            enum defined_type deftype = (enum defined_type)op;</div><div class='add'>+            switch (deftype) {</div><div class='add'>+              case DEFINED_FUNC:</div><div class='add'>+                ret = rb_fstring_lit("func");</div><div class='add'>+                break;</div><div class='add'>+              case DEFINED_REF:</div><div class='add'>+                ret = rb_fstring_lit("ref");</div><div class='add'>+                break;</div><div class='add'>+              case DEFINED_CONST_FROM:</div><div class='add'>+                ret = rb_fstring_lit("constant-from");</div><div class='add'>+                break;</div><div class='add'>+              default:</div><div class='add'>+                ret = rb_iseq_defined_string(deftype);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+            if (ret) break;</div><div class='add'>+        }</div><div class='add'>+        else if (insn == BIN(checktype) &amp;&amp; op_no == 0) {</div><div class='add'>+            const char *type_str = rb_type_str((enum ruby_value_type)op);</div><div class='add'>+            if (type_str) {</div><div class='add'>+                ret = rb_str_new_cstr(type_str); break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        ret = rb_sprintf("%"PRIuVALUE, op);</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case TS_LINDEX:{</div><div class='del'>-	int level;</div><div class='del'>-	if (types[op_no+1] == TS_NUM &amp;&amp; pnop) {</div><div class='del'>-	    ret = local_var_name(iseq, *pnop, op - VM_ENV_DATA_SIZE);</div><div class='del'>-	}</div><div class='del'>-	else if ((level = rb_insn_unified_local_var_level(insn)) &gt;= 0) {</div><div class='del'>-	    ret = local_var_name(iseq, (VALUE)level, op - VM_ENV_DATA_SIZE);</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    ret = rb_inspect(INT2FIX(op));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        int level;</div><div class='add'>+        if (types[op_no+1] == TS_NUM &amp;&amp; pnop) {</div><div class='add'>+            ret = local_var_name(iseq, *pnop, op - VM_ENV_DATA_SIZE);</div><div class='add'>+        }</div><div class='add'>+        else if ((level = rb_insn_unified_local_var_level(insn)) &gt;= 0) {</div><div class='add'>+            ret = local_var_name(iseq, (VALUE)level, op - VM_ENV_DATA_SIZE);</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            ret = rb_inspect(INT2FIX(op));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'>       }</div><div class='ctx'>       case TS_ID:		/* ID (symbol) */</div><div class='del'>-	ret = rb_inspect(ID2SYM(op));</div><div class='del'>-	break;</div><div class='add'>+        ret = rb_inspect(ID2SYM(op));</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case TS_VALUE:		/* VALUE */</div><div class='del'>-	op = obj_resurrect(op);</div><div class='del'>-	if (insn == BIN(defined) &amp;&amp; op_no == 1 &amp;&amp; FIXNUM_P(op)) {</div><div class='del'>-	    /* should be DEFINED_REF */</div><div class='del'>-	    int type = NUM2INT(op);</div><div class='del'>-	    if (type) {</div><div class='del'>-		if (type &amp; 1) {</div><div class='del'>-		    ret = rb_sprintf(":$%c", (type &gt;&gt; 1));</div><div class='del'>-		}</div><div class='del'>-		else {</div><div class='del'>-		    ret = rb_sprintf(":$%d", (type &gt;&gt; 1));</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	ret = rb_inspect(op);</div><div class='del'>-	if (CLASS_OF(op) == rb_cISeq) {</div><div class='del'>-	    if (child) {</div><div class='del'>-		rb_ary_push(child, op);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        op = obj_resurrect(op);</div><div class='add'>+        if (insn == BIN(defined) &amp;&amp; op_no == 1 &amp;&amp; FIXNUM_P(op)) {</div><div class='add'>+            /* should be DEFINED_REF */</div><div class='add'>+            int type = NUM2INT(op);</div><div class='add'>+            if (type) {</div><div class='add'>+                if (type &amp; 1) {</div><div class='add'>+                    ret = rb_sprintf(":$%c", (type &gt;&gt; 1));</div><div class='add'>+                }</div><div class='add'>+                else {</div><div class='add'>+                    ret = rb_sprintf(":$%d", (type &gt;&gt; 1));</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        ret = rb_dump_literal(op);</div><div class='add'>+        if (CLASS_OF(op) == rb_cISeq) {</div><div class='add'>+            if (child) {</div><div class='add'>+                rb_ary_push(child, op);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case TS_ISEQ:		/* iseq */</div><div class='del'>-	{</div><div class='del'>-	    if (op) {</div><div class='del'>-		const rb_iseq_t *iseq = rb_iseq_check((rb_iseq_t *)op);</div><div class='del'>-		ret = iseq-&gt;body-&gt;location.label;</div><div class='del'>-		if (child) {</div><div class='del'>-		    rb_ary_push(child, (VALUE)iseq);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		ret = rb_str_new2("nil");</div><div class='del'>-	    }</div><div class='del'>-	    break;</div><div class='del'>-	}</div><div class='del'>-      case TS_GENTRY:</div><div class='del'>-	{</div><div class='del'>-	    struct rb_global_entry *entry = (struct rb_global_entry *)op;</div><div class='del'>-	    ret = rb_str_dup(rb_id2str(entry-&gt;id));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+        {</div><div class='add'>+            if (op) {</div><div class='add'>+                const rb_iseq_t *iseq = rb_iseq_check((rb_iseq_t *)op);</div><div class='add'>+                ret = ISEQ_BODY(iseq)-&gt;location.label;</div><div class='add'>+                if (child) {</div><div class='add'>+                    rb_ary_push(child, (VALUE)iseq);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            else {</div><div class='add'>+                ret = rb_str_new2("nil");</div><div class='add'>+            }</div><div class='add'>+            break;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='ctx'>       case TS_IC:</div><div class='add'>+        {</div><div class='add'>+            ret = rb_sprintf("&lt;ic:%"PRIdPTRDIFF" ", (union iseq_inline_storage_entry *)op - ISEQ_BODY(iseq)-&gt;is_entries);</div><div class='add'>+            const ID *segments = ((IC)op)-&gt;segments;</div><div class='add'>+            rb_str_cat2(ret, rb_id2name(*segments++));</div><div class='add'>+            while (*segments) {</div><div class='add'>+                rb_str_catf(ret, "::%s", rb_id2name(*segments++));</div><div class='add'>+            }</div><div class='add'>+            rb_str_cat2(ret, "&gt;");</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+      case TS_IVC:</div><div class='add'>+      case TS_ICVARC:</div><div class='ctx'>       case TS_ISE:</div><div class='del'>-	ret = rb_sprintf("&lt;is:%"PRIdPTRDIFF"&gt;", (union iseq_inline_storage_entry *)op - iseq-&gt;body-&gt;is_entries);</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      case TS_CALLINFO:</div><div class='del'>-	{</div><div class='del'>-	    struct rb_call_info *ci = (struct rb_call_info *)op;</div><div class='del'>-	    VALUE ary = rb_ary_new();</div><div class='del'>-</div><div class='del'>-	    if (ci-&gt;mid) {</div><div class='del'>-		rb_ary_push(ary, rb_sprintf("mid:%"PRIsVALUE, rb_id2str(ci-&gt;mid)));</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    rb_ary_push(ary, rb_sprintf("argc:%d", ci-&gt;orig_argc));</div><div class='del'>-</div><div class='del'>-	    if (ci-&gt;flag &amp; VM_CALL_KWARG) {</div><div class='del'>-		struct rb_call_info_kw_arg *kw_args = ((struct rb_call_info_with_kwarg *)ci)-&gt;kw_arg;</div><div class='del'>-		VALUE kw_ary = rb_ary_new_from_values(kw_args-&gt;keyword_len, kw_args-&gt;keywords);</div><div class='del'>-		rb_ary_push(ary, rb_sprintf("kw:[%"PRIsVALUE"]", rb_ary_join(kw_ary, rb_str_new2(","))));</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    if (ci-&gt;flag) {</div><div class='del'>-		VALUE flags = rb_ary_new();</div><div class='del'>-# define CALL_FLAG(n) if (ci-&gt;flag &amp; VM_CALL_##n) rb_ary_push(flags, rb_str_new2(#n))</div><div class='del'>-		CALL_FLAG(ARGS_SPLAT);</div><div class='del'>-		CALL_FLAG(ARGS_BLOCKARG);</div><div class='del'>-		CALL_FLAG(FCALL);</div><div class='del'>-		CALL_FLAG(VCALL);</div><div class='del'>-		CALL_FLAG(ARGS_SIMPLE);</div><div class='del'>-		CALL_FLAG(BLOCKISEQ);</div><div class='del'>-		CALL_FLAG(TAILCALL);</div><div class='del'>-		CALL_FLAG(SUPER);</div><div class='del'>-		CALL_FLAG(ZSUPER);</div><div class='del'>-		CALL_FLAG(KWARG);</div><div class='del'>-		CALL_FLAG(KW_SPLAT);</div><div class='del'>-		CALL_FLAG(OPT_SEND); /* maybe not reachable */</div><div class='del'>-		rb_ary_push(ary, rb_ary_join(flags, rb_str_new2("|")));</div><div class='del'>-	    }</div><div class='del'>-	    ret = rb_sprintf("&lt;callinfo!%"PRIsVALUE"&gt;", rb_ary_join(ary, rb_str_new2(", ")));</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='del'>-</div><div class='del'>-      case TS_CALLCACHE:</div><div class='del'>-	ret = rb_str_new2("&lt;callcache&gt;");</div><div class='del'>-	break;</div><div class='add'>+        ret = rb_sprintf("&lt;is:%"PRIdPTRDIFF"&gt;", (union iseq_inline_storage_entry *)op - ISEQ_BODY(iseq)-&gt;is_entries);</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case TS_CALLDATA:</div><div class='add'>+        {</div><div class='add'>+            struct rb_call_data *cd = (struct rb_call_data *)op;</div><div class='add'>+            const struct rb_callinfo *ci = cd-&gt;ci;</div><div class='add'>+            VALUE ary = rb_ary_new();</div><div class='add'>+            ID mid = vm_ci_mid(ci);</div><div class='add'>+</div><div class='add'>+            if (mid) {</div><div class='add'>+                rb_ary_push(ary, rb_sprintf("mid:%"PRIsVALUE, rb_id2str(mid)));</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            rb_ary_push(ary, rb_sprintf("argc:%d", vm_ci_argc(ci)));</div><div class='add'>+</div><div class='add'>+            if (vm_ci_flag(ci) &amp; VM_CALL_KWARG) {</div><div class='add'>+                const struct rb_callinfo_kwarg *kw_args = vm_ci_kwarg(ci);</div><div class='add'>+                VALUE kw_ary = rb_ary_new_from_values(kw_args-&gt;keyword_len, kw_args-&gt;keywords);</div><div class='add'>+                rb_ary_push(ary, rb_sprintf("kw:[%"PRIsVALUE"]", rb_ary_join(kw_ary, rb_str_new2(","))));</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            if (vm_ci_flag(ci)) {</div><div class='add'>+                VALUE flags = rb_ary_new();</div><div class='add'>+# define CALL_FLAG(n) if (vm_ci_flag(ci) &amp; VM_CALL_##n) rb_ary_push(flags, rb_str_new2(#n))</div><div class='add'>+                CALL_FLAG(ARGS_SPLAT);</div><div class='add'>+                CALL_FLAG(ARGS_BLOCKARG);</div><div class='add'>+                CALL_FLAG(FCALL);</div><div class='add'>+                CALL_FLAG(VCALL);</div><div class='add'>+                CALL_FLAG(ARGS_SIMPLE);</div><div class='add'>+                CALL_FLAG(BLOCKISEQ);</div><div class='add'>+                CALL_FLAG(TAILCALL);</div><div class='add'>+                CALL_FLAG(SUPER);</div><div class='add'>+                CALL_FLAG(ZSUPER);</div><div class='add'>+                CALL_FLAG(KWARG);</div><div class='add'>+                CALL_FLAG(KW_SPLAT);</div><div class='add'>+                CALL_FLAG(KW_SPLAT_MUT);</div><div class='add'>+                CALL_FLAG(OPT_SEND); /* maybe not reachable */</div><div class='add'>+                rb_ary_push(ary, rb_ary_join(flags, rb_str_new2("|")));</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            ret = rb_sprintf("&lt;calldata!%"PRIsVALUE"&gt;", rb_ary_join(ary, rb_str_new2(", ")));</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case TS_CDHASH:</div><div class='del'>-	ret = rb_str_new2("&lt;cdhash&gt;");</div><div class='del'>-	break;</div><div class='add'>+        ret = rb_str_new2("&lt;cdhash&gt;");</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       case TS_FUNCPTR:</div><div class='del'>-	{</div><div class='add'>+        {</div><div class='ctx'> #ifdef HAVE_DLADDR</div><div class='del'>-	    Dl_info info;</div><div class='del'>-	    if (dladdr((void *)op, &amp;info) &amp;&amp; info.dli_sname) {</div><div class='del'>-		ret = rb_str_new_cstr(info.dli_sname);</div><div class='del'>-		break;</div><div class='del'>-	    }</div><div class='add'>+            Dl_info info;</div><div class='add'>+            if (dladdr((void *)op, &amp;info) &amp;&amp; info.dli_sname) {</div><div class='add'>+                ret = rb_str_new_cstr(info.dli_sname);</div><div class='add'>+                break;</div><div class='add'>+            }</div><div class='ctx'> #endif</div><div class='del'>-	    ret = rb_str_new2("&lt;funcptr&gt;");</div><div class='del'>-	}</div><div class='del'>-	break;</div><div class='add'>+            ret = rb_str_new2("&lt;funcptr&gt;");</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='add'>+</div><div class='add'>+      case TS_BUILTIN:</div><div class='add'>+        {</div><div class='add'>+            const struct rb_builtin_function *bf = (const struct rb_builtin_function *)op;</div><div class='add'>+            ret = rb_sprintf("&lt;builtin!%s/%d&gt;",</div><div class='add'>+                             bf-&gt;name, bf-&gt;argc);</div><div class='add'>+        }</div><div class='add'>+        break;</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	rb_bug("unknown operand type: %c", type);</div><div class='add'>+        rb_bug("unknown operand type: %c", type);</div><div class='ctx'>     }</div><div class='ctx'>     return ret;</div><div class='ctx'> }</div><div class='hunk'>@@ -1911,7 +2270,7 @@ right_strip(VALUE str)</div><div class='ctx'>  */</div><div class='ctx'> int</div><div class='ctx'> rb_iseq_disasm_insn(VALUE ret, const VALUE *code, size_t pos,</div><div class='del'>-		    const rb_iseq_t *iseq, VALUE child)</div><div class='add'>+                    const rb_iseq_t *iseq, VALUE child)</div><div class='ctx'> {</div><div class='ctx'>     VALUE insn = code[pos];</div><div class='ctx'>     int len = insn_len(insn);</div><div class='hunk'>@@ -1922,60 +2281,60 @@ rb_iseq_disasm_insn(VALUE ret, const VALUE *code, size_t pos,</div><div class='ctx'> </div><div class='ctx'>     insn_name_buff = insn_name(insn);</div><div class='ctx'>     if (1) {</div><div class='del'>-	extern const int rb_vm_max_insn_name_size;</div><div class='del'>-	rb_str_catf(str, "%04"PRIuSIZE" %-*s ", pos, rb_vm_max_insn_name_size, insn_name_buff);</div><div class='add'>+        extern const int rb_vm_max_insn_name_size;</div><div class='add'>+        rb_str_catf(str, "%04"PRIuSIZE" %-*s ", pos, rb_vm_max_insn_name_size, insn_name_buff);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	rb_str_catf(str, "%04"PRIuSIZE" %-28.*s ", pos,</div><div class='del'>-		    (int)strcspn(insn_name_buff, "_"), insn_name_buff);</div><div class='add'>+        rb_str_catf(str, "%04"PRIuSIZE" %-28.*s ", pos,</div><div class='add'>+                    (int)strcspn(insn_name_buff, "_"), insn_name_buff);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     for (j = 0; types[j]; j++) {</div><div class='del'>-	VALUE opstr = rb_insn_operand_intern(iseq, insn, j, code[pos + j + 1],</div><div class='del'>-					     len, pos, &amp;code[pos + j + 2],</div><div class='del'>-					     child);</div><div class='del'>-	rb_str_concat(str, opstr);</div><div class='add'>+        VALUE opstr = rb_insn_operand_intern(iseq, insn, j, code[pos + j + 1],</div><div class='add'>+                                             len, pos, &amp;code[pos + j + 2],</div><div class='add'>+                                             child);</div><div class='add'>+        rb_str_concat(str, opstr);</div><div class='ctx'> </div><div class='del'>-	if (types[j + 1]) {</div><div class='del'>-	    rb_str_cat2(str, ", ");</div><div class='del'>-	}</div><div class='add'>+        if (types[j + 1]) {</div><div class='add'>+            rb_str_cat2(str, ", ");</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	unsigned int line_no = rb_iseq_line_no(iseq, pos);</div><div class='del'>-	unsigned int prev = pos == 0 ? 0 : rb_iseq_line_no(iseq, pos - 1);</div><div class='del'>-	if (line_no &amp;&amp; line_no != prev) {</div><div class='del'>-	    long slen = RSTRING_LEN(str);</div><div class='del'>-	    slen = (slen &gt; 70) ? 0 : (70 - slen);</div><div class='del'>-	    str = rb_str_catf(str, "%*s(%4d)", (int)slen, "", line_no);</div><div class='del'>-	}</div><div class='add'>+        unsigned int line_no = rb_iseq_line_no(iseq, pos);</div><div class='add'>+        unsigned int prev = pos == 0 ? 0 : rb_iseq_line_no(iseq, pos - 1);</div><div class='add'>+        if (line_no &amp;&amp; line_no != prev) {</div><div class='add'>+            long slen = RSTRING_LEN(str);</div><div class='add'>+            slen = (slen &gt; 70) ? 0 : (70 - slen);</div><div class='add'>+            str = rb_str_catf(str, "%*s(%4d)", (int)slen, "", line_no);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     {</div><div class='del'>-	rb_event_flag_t events = rb_iseq_event_flags(iseq, pos);</div><div class='del'>-	if (events) {</div><div class='add'>+        rb_event_flag_t events = rb_iseq_event_flags(iseq, pos);</div><div class='add'>+        if (events) {</div><div class='ctx'>             str = rb_str_catf(str, "[%s%s%s%s%s%s%s%s%s%s%s]",</div><div class='del'>-			      events &amp; RUBY_EVENT_LINE     ? "Li" : "",</div><div class='del'>-			      events &amp; RUBY_EVENT_CLASS    ? "Cl" : "",</div><div class='del'>-			      events &amp; RUBY_EVENT_END      ? "En" : "",</div><div class='del'>-			      events &amp; RUBY_EVENT_CALL     ? "Ca" : "",</div><div class='del'>-			      events &amp; RUBY_EVENT_RETURN   ? "Re" : "",</div><div class='del'>-			      events &amp; RUBY_EVENT_C_CALL   ? "Cc" : "",</div><div class='del'>-			      events &amp; RUBY_EVENT_C_RETURN ? "Cr" : "",</div><div class='del'>-			      events &amp; RUBY_EVENT_B_CALL   ? "Bc" : "",</div><div class='add'>+                              events &amp; RUBY_EVENT_LINE     ? "Li" : "",</div><div class='add'>+                              events &amp; RUBY_EVENT_CLASS    ? "Cl" : "",</div><div class='add'>+                              events &amp; RUBY_EVENT_END      ? "En" : "",</div><div class='add'>+                              events &amp; RUBY_EVENT_CALL     ? "Ca" : "",</div><div class='add'>+                              events &amp; RUBY_EVENT_RETURN   ? "Re" : "",</div><div class='add'>+                              events &amp; RUBY_EVENT_C_CALL   ? "Cc" : "",</div><div class='add'>+                              events &amp; RUBY_EVENT_C_RETURN ? "Cr" : "",</div><div class='add'>+                              events &amp; RUBY_EVENT_B_CALL   ? "Bc" : "",</div><div class='ctx'>                               events &amp; RUBY_EVENT_B_RETURN ? "Br" : "",</div><div class='ctx'>                               events &amp; RUBY_EVENT_COVERAGE_LINE   ? "Cli" : "",</div><div class='ctx'>                               events &amp; RUBY_EVENT_COVERAGE_BRANCH ? "Cbr" : "");</div><div class='del'>-	}</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     right_strip(str);</div><div class='ctx'>     if (ret) {</div><div class='del'>-	rb_str_cat2(str, "\n");</div><div class='del'>-	rb_str_concat(ret, str);</div><div class='add'>+        rb_str_cat2(str, "\n");</div><div class='add'>+        rb_str_concat(ret, str);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	printf("%.*s\n", (int)RSTRING_LEN(str), RSTRING_PTR(str));</div><div class='add'>+        printf("%.*s\n", (int)RSTRING_LEN(str), RSTRING_PTR(str));</div><div class='ctx'>     }</div><div class='ctx'>     return len;</div><div class='ctx'> }</div><div class='hunk'>@@ -1985,60 +2344,65 @@ catch_type(int type)</div><div class='ctx'> {</div><div class='ctx'>     switch (type) {</div><div class='ctx'>       case CATCH_TYPE_RESCUE:</div><div class='del'>-	return "rescue";</div><div class='add'>+        return "rescue";</div><div class='ctx'>       case CATCH_TYPE_ENSURE:</div><div class='del'>-	return "ensure";</div><div class='add'>+        return "ensure";</div><div class='ctx'>       case CATCH_TYPE_RETRY:</div><div class='del'>-	return "retry";</div><div class='add'>+        return "retry";</div><div class='ctx'>       case CATCH_TYPE_BREAK:</div><div class='del'>-	return "break";</div><div class='add'>+        return "break";</div><div class='ctx'>       case CATCH_TYPE_REDO:</div><div class='del'>-	return "redo";</div><div class='add'>+        return "redo";</div><div class='ctx'>       case CATCH_TYPE_NEXT:</div><div class='del'>-	return "next";</div><div class='add'>+        return "next";</div><div class='ctx'>       default:</div><div class='del'>-	rb_bug("unknown catch type: %d", type);</div><div class='del'>-	return 0;</div><div class='add'>+        rb_bug("unknown catch type: %d", type);</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='ctx'> iseq_inspect(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     if (!body-&gt;location.label) {</div><div class='del'>-	return rb_sprintf("#&lt;ISeq: uninitialized&gt;");</div><div class='add'>+        return rb_sprintf("#&lt;ISeq: uninitialized&gt;");</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	const rb_code_location_t *loc = &amp;body-&gt;location.code_location;</div><div class='del'>-	return rb_sprintf("#&lt;ISeq:%"PRIsVALUE"@%"PRIsVALUE":%d (%d,%d)-(%d,%d)&gt;",</div><div class='del'>-			  body-&gt;location.label, rb_iseq_path(iseq),</div><div class='del'>-			  loc-&gt;beg_pos.lineno,</div><div class='del'>-			  loc-&gt;beg_pos.lineno,</div><div class='del'>-			  loc-&gt;beg_pos.column,</div><div class='del'>-			  loc-&gt;end_pos.lineno,</div><div class='del'>-			  loc-&gt;end_pos.column);</div><div class='add'>+        const rb_code_location_t *loc = &amp;body-&gt;location.code_location;</div><div class='add'>+        return rb_sprintf("#&lt;ISeq:%"PRIsVALUE"@%"PRIsVALUE":%d (%d,%d)-(%d,%d)&gt;",</div><div class='add'>+                          body-&gt;location.label, rb_iseq_path(iseq),</div><div class='add'>+                          loc-&gt;beg_pos.lineno,</div><div class='add'>+                          loc-&gt;beg_pos.lineno,</div><div class='add'>+                          loc-&gt;beg_pos.column,</div><div class='add'>+                          loc-&gt;end_pos.lineno,</div><div class='add'>+                          loc-&gt;end_pos.column);</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const rb_data_type_t tmp_set = {</div><div class='add'>+    "tmpset",</div><div class='add'>+    {(void (*)(void *))rb_mark_set, (void (*)(void *))st_free_table, 0, 0,},</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> rb_iseq_disasm_recursive(const rb_iseq_t *iseq, VALUE indent)</div><div class='ctx'> {</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     VALUE *code;</div><div class='ctx'>     VALUE str = rb_str_new(0, 0);</div><div class='del'>-    VALUE child = rb_ary_tmp_new(3);</div><div class='add'>+    VALUE child = rb_ary_hidden_new(3);</div><div class='ctx'>     unsigned int size;</div><div class='ctx'>     unsigned int i;</div><div class='ctx'>     long l;</div><div class='ctx'>     size_t n;</div><div class='ctx'>     enum {header_minlen = 72};</div><div class='ctx'>     st_table *done_iseq = 0;</div><div class='add'>+    VALUE done_iseq_wrapper = Qnil;</div><div class='ctx'>     const char *indent_str;</div><div class='ctx'>     long indent_len;</div><div class='ctx'> </div><div class='del'>-    rb_secure(1);</div><div class='del'>-</div><div class='ctx'>     size = body-&gt;iseq_size;</div><div class='ctx'> </div><div class='ctx'>     indent_len = RSTRING_LEN(indent);</div><div class='hunk'>@@ -2048,110 +2412,115 @@ rb_iseq_disasm_recursive(const rb_iseq_t *iseq, VALUE indent)</div><div class='ctx'>     rb_str_cat2(str, "== disasm: ");</div><div class='ctx'> </div><div class='ctx'>     rb_str_append(str, iseq_inspect(iseq));</div><div class='del'>-    rb_str_catf(str, " (catch: %s)", body-&gt;catch_except_p ? "TRUE" : "FALSE");</div><div class='add'>+    rb_str_catf(str, " (catch: %s)", body-&gt;catch_except_p ? "true" : "false");</div><div class='ctx'>     if ((l = RSTRING_LEN(str) - indent_len) &lt; header_minlen) {</div><div class='del'>-	rb_str_modify_expand(str, header_minlen - l);</div><div class='del'>-	memset(RSTRING_END(str), '=', header_minlen - l);</div><div class='add'>+        rb_str_modify_expand(str, header_minlen - l);</div><div class='add'>+        memset(RSTRING_END(str), '=', header_minlen - l);</div><div class='ctx'>     }</div><div class='ctx'>     rb_str_cat2(str, "\n");</div><div class='ctx'> </div><div class='ctx'>     /* show catch table information */</div><div class='ctx'>     if (body-&gt;catch_table) {</div><div class='del'>-	rb_str_cat(str, indent_str, indent_len);</div><div class='del'>-	rb_str_cat2(str, "== catch table\n");</div><div class='add'>+        rb_str_cat(str, indent_str, indent_len);</div><div class='add'>+        rb_str_cat2(str, "== catch table\n");</div><div class='ctx'>     }</div><div class='ctx'>     if (body-&gt;catch_table) {</div><div class='del'>-	rb_str_cat_cstr(indent, "| ");</div><div class='del'>-	indent_str = RSTRING_PTR(indent);</div><div class='del'>-	for (i = 0; i &lt; body-&gt;catch_table-&gt;size; i++) {</div><div class='del'>-	    const struct iseq_catch_table_entry *entry = &amp;body-&gt;catch_table-&gt;entries[i];</div><div class='del'>-	    rb_str_cat(str, indent_str, indent_len);</div><div class='del'>-	    rb_str_catf(str,</div><div class='del'>-			"| catch type: %-6s st: %04d ed: %04d sp: %04d cont: %04d\n",</div><div class='del'>-			catch_type((int)entry-&gt;type), (int)entry-&gt;start,</div><div class='del'>-			(int)entry-&gt;end, (int)entry-&gt;sp, (int)entry-&gt;cont);</div><div class='del'>-	    if (entry-&gt;iseq &amp;&amp; !(done_iseq &amp;&amp; st_is_member(done_iseq, (st_data_t)entry-&gt;iseq))) {</div><div class='del'>-		rb_str_concat(str, rb_iseq_disasm_recursive(rb_iseq_check(entry-&gt;iseq), indent));</div><div class='del'>-		if (!done_iseq) done_iseq = st_init_numtable();</div><div class='del'>-		st_insert(done_iseq, (st_data_t)entry-&gt;iseq, (st_data_t)0);</div><div class='del'>-		indent_str = RSTRING_PTR(indent);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	rb_str_resize(indent, indent_len);</div><div class='del'>-	indent_str = RSTRING_PTR(indent);</div><div class='add'>+        rb_str_cat_cstr(indent, "| ");</div><div class='add'>+        indent_str = RSTRING_PTR(indent);</div><div class='add'>+        for (i = 0; i &lt; body-&gt;catch_table-&gt;size; i++) {</div><div class='add'>+            const struct iseq_catch_table_entry *entry =</div><div class='add'>+                UNALIGNED_MEMBER_PTR(body-&gt;catch_table, entries[i]);</div><div class='add'>+            rb_str_cat(str, indent_str, indent_len);</div><div class='add'>+            rb_str_catf(str,</div><div class='add'>+                        "| catch type: %-6s st: %04d ed: %04d sp: %04d cont: %04d\n",</div><div class='add'>+                        catch_type((int)entry-&gt;type), (int)entry-&gt;start,</div><div class='add'>+                        (int)entry-&gt;end, (int)entry-&gt;sp, (int)entry-&gt;cont);</div><div class='add'>+            if (entry-&gt;iseq &amp;&amp; !(done_iseq &amp;&amp; st_is_member(done_iseq, (st_data_t)entry-&gt;iseq))) {</div><div class='add'>+                rb_str_concat(str, rb_iseq_disasm_recursive(rb_iseq_check(entry-&gt;iseq), indent));</div><div class='add'>+                if (!done_iseq) {</div><div class='add'>+                    done_iseq = st_init_numtable();</div><div class='add'>+                    done_iseq_wrapper = TypedData_Wrap_Struct(0, &amp;tmp_set, done_iseq);</div><div class='add'>+                }</div><div class='add'>+                st_insert(done_iseq, (st_data_t)entry-&gt;iseq, (st_data_t)0);</div><div class='add'>+                indent_str = RSTRING_PTR(indent);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        rb_str_resize(indent, indent_len);</div><div class='add'>+        indent_str = RSTRING_PTR(indent);</div><div class='ctx'>     }</div><div class='ctx'>     if (body-&gt;catch_table) {</div><div class='del'>-	rb_str_cat(str, indent_str, indent_len);</div><div class='del'>-	rb_str_cat2(str, "|-------------------------------------"</div><div class='del'>-		    "-----------------------------------\n");</div><div class='add'>+        rb_str_cat(str, indent_str, indent_len);</div><div class='add'>+        rb_str_cat2(str, "|-------------------------------------"</div><div class='add'>+                    "-----------------------------------\n");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* show local table information */</div><div class='ctx'>     if (body-&gt;local_table) {</div><div class='del'>-	const struct rb_iseq_param_keyword *const keyword = body-&gt;param.keyword;</div><div class='del'>-	rb_str_cat(str, indent_str, indent_len);</div><div class='del'>-	rb_str_catf(str,</div><div class='del'>-		    "local table (size: %d, argc: %d "</div><div class='del'>-		    "[opts: %d, rest: %d, post: %d, block: %d, kw: %d@%d, kwrest: %d])\n",</div><div class='del'>-		    body-&gt;local_table_size,</div><div class='del'>-		    body-&gt;param.lead_num,</div><div class='del'>-		    body-&gt;param.opt_num,</div><div class='del'>-		    body-&gt;param.flags.has_rest ? body-&gt;param.rest_start : -1,</div><div class='del'>-		    body-&gt;param.post_num,</div><div class='del'>-		    body-&gt;param.flags.has_block ? body-&gt;param.block_start : -1,</div><div class='del'>-		    body-&gt;param.flags.has_kw ? keyword-&gt;num : -1,</div><div class='del'>-		    body-&gt;param.flags.has_kw ? keyword-&gt;required_num : -1,</div><div class='del'>-		    body-&gt;param.flags.has_kwrest ? keyword-&gt;rest_start : -1);</div><div class='del'>-</div><div class='del'>-	for (i = body-&gt;local_table_size; i &gt; 0;) {</div><div class='del'>-	    int li = body-&gt;local_table_size - --i - 1;</div><div class='del'>-	    long width;</div><div class='del'>-	    VALUE name = local_var_name(iseq, 0, i);</div><div class='del'>-	    char argi[0x100] = "";</div><div class='del'>-	    char opti[0x100] = "";</div><div class='del'>-</div><div class='del'>-	    if (body-&gt;param.flags.has_opt) {</div><div class='del'>-		int argc = body-&gt;param.lead_num;</div><div class='del'>-		int opts = body-&gt;param.opt_num;</div><div class='del'>-		if (li &gt;= argc &amp;&amp; li &lt; argc + opts) {</div><div class='del'>-		    snprintf(opti, sizeof(opti), "Opt=%"PRIdVALUE,</div><div class='del'>-			     body-&gt;param.opt_table[li - argc]);</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    snprintf(argi, sizeof(argi), "%s%s%s%s%s%s",	/* arg, opts, rest, post, kwrest, block */</div><div class='del'>-		     body-&gt;param.lead_num &gt; li ? "Arg" : "",</div><div class='del'>-		     opti,</div><div class='del'>-		     (body-&gt;param.flags.has_rest &amp;&amp; body-&gt;param.rest_start == li) ? "Rest" : "",</div><div class='del'>-		     (body-&gt;param.flags.has_post &amp;&amp; body-&gt;param.post_start &lt;= li &amp;&amp; li &lt; body-&gt;param.post_start + body-&gt;param.post_num) ? "Post" : "",</div><div class='del'>-		     (body-&gt;param.flags.has_kwrest &amp;&amp; keyword-&gt;rest_start == li) ? "Kwrest" : "",</div><div class='del'>-		     (body-&gt;param.flags.has_block &amp;&amp; body-&gt;param.block_start == li) ? "Block" : "");</div><div class='del'>-</div><div class='del'>-	    rb_str_cat(str, indent_str, indent_len);</div><div class='del'>-	    rb_str_catf(str, "[%2d] ", i + 1);</div><div class='del'>-	    width = RSTRING_LEN(str) + 11;</div><div class='del'>-	    rb_str_append(str, name);</div><div class='del'>-	    if (*argi) rb_str_catf(str, "&lt;%s&gt;", argi);</div><div class='del'>-	    if ((width -= RSTRING_LEN(str)) &gt; 0) rb_str_catf(str, "%*s", (int)width, "");</div><div class='del'>-	}</div><div class='del'>-	rb_str_cat_cstr(right_strip(str), "\n");</div><div class='add'>+        const struct rb_iseq_param_keyword *const keyword = body-&gt;param.keyword;</div><div class='add'>+        rb_str_cat(str, indent_str, indent_len);</div><div class='add'>+        rb_str_catf(str,</div><div class='add'>+                    "local table (size: %d, argc: %d "</div><div class='add'>+                    "[opts: %d, rest: %d, post: %d, block: %d, kw: %d@%d, kwrest: %d])\n",</div><div class='add'>+                    body-&gt;local_table_size,</div><div class='add'>+                    body-&gt;param.lead_num,</div><div class='add'>+                    body-&gt;param.opt_num,</div><div class='add'>+                    body-&gt;param.flags.has_rest ? body-&gt;param.rest_start : -1,</div><div class='add'>+                    body-&gt;param.post_num,</div><div class='add'>+                    body-&gt;param.flags.has_block ? body-&gt;param.block_start : -1,</div><div class='add'>+                    body-&gt;param.flags.has_kw ? keyword-&gt;num : -1,</div><div class='add'>+                    body-&gt;param.flags.has_kw ? keyword-&gt;required_num : -1,</div><div class='add'>+                    body-&gt;param.flags.has_kwrest ? keyword-&gt;rest_start : -1);</div><div class='add'>+</div><div class='add'>+        for (i = body-&gt;local_table_size; i &gt; 0;) {</div><div class='add'>+            int li = body-&gt;local_table_size - --i - 1;</div><div class='add'>+            long width;</div><div class='add'>+            VALUE name = local_var_name(iseq, 0, i);</div><div class='add'>+            char argi[0x100];</div><div class='add'>+            char opti[0x100];</div><div class='add'>+</div><div class='add'>+            opti[0] = '\0';</div><div class='add'>+            if (body-&gt;param.flags.has_opt) {</div><div class='add'>+                int argc = body-&gt;param.lead_num;</div><div class='add'>+                int opts = body-&gt;param.opt_num;</div><div class='add'>+                if (li &gt;= argc &amp;&amp; li &lt; argc + opts) {</div><div class='add'>+                    snprintf(opti, sizeof(opti), "Opt=%"PRIdVALUE,</div><div class='add'>+                             body-&gt;param.opt_table[li - argc]);</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            snprintf(argi, sizeof(argi), "%s%s%s%s%s%s",	/* arg, opts, rest, post, kwrest, block */</div><div class='add'>+                     body-&gt;param.lead_num &gt; li ? "Arg" : "",</div><div class='add'>+                     opti,</div><div class='add'>+                     (body-&gt;param.flags.has_rest &amp;&amp; body-&gt;param.rest_start == li) ? "Rest" : "",</div><div class='add'>+                     (body-&gt;param.flags.has_post &amp;&amp; body-&gt;param.post_start &lt;= li &amp;&amp; li &lt; body-&gt;param.post_start + body-&gt;param.post_num) ? "Post" : "",</div><div class='add'>+                     (body-&gt;param.flags.has_kwrest &amp;&amp; keyword-&gt;rest_start == li) ? "Kwrest" : "",</div><div class='add'>+                     (body-&gt;param.flags.has_block &amp;&amp; body-&gt;param.block_start == li) ? "Block" : "");</div><div class='add'>+</div><div class='add'>+            rb_str_cat(str, indent_str, indent_len);</div><div class='add'>+            rb_str_catf(str, "[%2d] ", i + 1);</div><div class='add'>+            width = RSTRING_LEN(str) + 11;</div><div class='add'>+            rb_str_append(str, name);</div><div class='add'>+            if (*argi) rb_str_catf(str, "&lt;%s&gt;", argi);</div><div class='add'>+            if ((width -= RSTRING_LEN(str)) &gt; 0) rb_str_catf(str, "%*s", (int)width, "");</div><div class='add'>+        }</div><div class='add'>+        rb_str_cat_cstr(right_strip(str), "\n");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* show each line */</div><div class='ctx'>     code = rb_iseq_original_iseq(iseq);</div><div class='ctx'>     for (n = 0; n &lt; size;) {</div><div class='del'>-	rb_str_cat(str, indent_str, indent_len);</div><div class='del'>-	n += rb_iseq_disasm_insn(str, code, n, iseq, child);</div><div class='add'>+        rb_str_cat(str, indent_str, indent_len);</div><div class='add'>+        n += rb_iseq_disasm_insn(str, code, n, iseq, child);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     for (l = 0; l &lt; RARRAY_LEN(child); l++) {</div><div class='del'>-	VALUE isv = rb_ary_entry(child, l);</div><div class='del'>-	if (done_iseq &amp;&amp; st_is_member(done_iseq, (st_data_t)isv)) continue;</div><div class='del'>-	rb_str_cat_cstr(str, "\n");</div><div class='del'>-	rb_str_concat(str, rb_iseq_disasm_recursive(rb_iseq_check((rb_iseq_t *)isv), indent));</div><div class='del'>-	indent_str = RSTRING_PTR(indent);</div><div class='add'>+        VALUE isv = rb_ary_entry(child, l);</div><div class='add'>+        if (done_iseq &amp;&amp; st_is_member(done_iseq, (st_data_t)isv)) continue;</div><div class='add'>+        rb_str_cat_cstr(str, "\n");</div><div class='add'>+        rb_str_concat(str, rb_iseq_disasm_recursive(rb_iseq_check((rb_iseq_t *)isv), indent));</div><div class='add'>+        indent_str = RSTRING_PTR(indent);</div><div class='ctx'>     }</div><div class='del'>-    if (done_iseq) st_free_table(done_iseq);</div><div class='add'>+    RB_GC_GUARD(done_iseq_wrapper);</div><div class='ctx'> </div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='hunk'>@@ -2159,7 +2528,37 @@ rb_iseq_disasm_recursive(const rb_iseq_t *iseq, VALUE indent)</div><div class='ctx'> VALUE</div><div class='ctx'> rb_iseq_disasm(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    return rb_iseq_disasm_recursive(iseq, rb_str_new(0, 0));</div><div class='add'>+    VALUE str = rb_iseq_disasm_recursive(iseq, rb_str_new(0, 0));</div><div class='add'>+    rb_str_resize(str, RSTRING_LEN(str));</div><div class='add'>+    return str;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Estimates the number of instance variables that will be set on</div><div class='add'>+ * a given `class` with the initialize method defined in</div><div class='add'>+ * `initialize_iseq`</div><div class='add'>+ */</div><div class='add'>+attr_index_t</div><div class='add'>+rb_estimate_iv_count(VALUE klass, const rb_iseq_t * initialize_iseq)</div><div class='add'>+{</div><div class='add'>+    struct rb_id_table * iv_names = rb_id_table_create(0);</div><div class='add'>+</div><div class='add'>+    for (unsigned int i = 0; i &lt; ISEQ_BODY(initialize_iseq)-&gt;ivc_size; i++) {</div><div class='add'>+        IVC cache = (IVC)&amp;ISEQ_BODY(initialize_iseq)-&gt;is_entries[i];</div><div class='add'>+</div><div class='add'>+        if (cache-&gt;iv_set_name) {</div><div class='add'>+            rb_id_table_insert(iv_names, cache-&gt;iv_set_name, Qtrue);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    attr_index_t count = (attr_index_t)rb_id_table_size(iv_names);</div><div class='add'>+</div><div class='add'>+    VALUE superclass = rb_class_superclass(klass);</div><div class='add'>+    count += RCLASS_EXT(superclass)-&gt;max_iv_count;</div><div class='add'>+</div><div class='add'>+    rb_id_table_free(iv_names);</div><div class='add'>+</div><div class='add'>+    return count;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='hunk'>@@ -2191,16 +2590,17 @@ iseq_iterate_children(const rb_iseq_t *iseq, void (*iter_func)(const rb_iseq_t *</div><div class='ctx'> {</div><div class='ctx'>     unsigned int i;</div><div class='ctx'>     VALUE *code = rb_iseq_original_iseq(iseq);</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     const rb_iseq_t *child;</div><div class='ctx'>     VALUE all_children = rb_obj_hide(rb_ident_hash_new());</div><div class='ctx'> </div><div class='ctx'>     if (body-&gt;catch_table) {</div><div class='ctx'>         for (i = 0; i &lt; body-&gt;catch_table-&gt;size; i++) {</div><div class='del'>-            const struct iseq_catch_table_entry *entry = &amp;body-&gt;catch_table-&gt;entries[i];</div><div class='add'>+            const struct iseq_catch_table_entry *entry =</div><div class='add'>+                UNALIGNED_MEMBER_PTR(body-&gt;catch_table, entries[i]);</div><div class='ctx'>             child = entry-&gt;iseq;</div><div class='ctx'>             if (child) {</div><div class='del'>-                if (rb_hash_aref(all_children, (VALUE)child) == Qnil) {</div><div class='add'>+                if (NIL_P(rb_hash_aref(all_children, (VALUE)child))) {</div><div class='ctx'>                     rb_hash_aset(all_children, (VALUE)child, Qtrue);</div><div class='ctx'>                     (*iter_func)(child, data);</div><div class='ctx'>                 }</div><div class='hunk'>@@ -2219,7 +2619,7 @@ iseq_iterate_children(const rb_iseq_t *iseq, void (*iter_func)(const rb_iseq_t *</div><div class='ctx'>               case TS_ISEQ:</div><div class='ctx'>                 child = (const rb_iseq_t *)code[i+j+1];</div><div class='ctx'>                 if (child) {</div><div class='del'>-                    if (rb_hash_aref(all_children, (VALUE)child) == Qnil) {</div><div class='add'>+                    if (NIL_P(rb_hash_aref(all_children, (VALUE)child))) {</div><div class='ctx'>                         rb_hash_aset(all_children, (VALUE)child, Qtrue);</div><div class='ctx'>                         (*iter_func)(child, data);</div><div class='ctx'>                     }</div><div class='hunk'>@@ -2282,15 +2682,15 @@ static VALUE</div><div class='ctx'> iseqw_trace_points(VALUE self)</div><div class='ctx'> {</div><div class='ctx'>     const rb_iseq_t *iseq = iseqw_check(self);</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     unsigned int i;</div><div class='ctx'>     VALUE ary = rb_ary_new();</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;body-&gt;insns_info.size; i++) {</div><div class='del'>-	const struct iseq_insn_info_entry *entry = &amp;body-&gt;insns_info.body[i];</div><div class='del'>-	if (entry-&gt;events) {</div><div class='del'>-	    push_event_info(iseq, entry-&gt;events, entry-&gt;line_no, ary);</div><div class='del'>-	}</div><div class='add'>+        const struct iseq_insn_info_entry *entry = &amp;body-&gt;insns_info.body[i];</div><div class='add'>+        if (entry-&gt;events) {</div><div class='add'>+            push_event_info(iseq, entry-&gt;events, entry-&gt;line_no, ary);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='hunk'>@@ -2335,8 +2735,6 @@ iseqw_s_of(VALUE klass, VALUE body)</div><div class='ctx'> {</div><div class='ctx'>     const rb_iseq_t *iseq = NULL;</div><div class='ctx'> </div><div class='del'>-    rb_secure(1);</div><div class='del'>-</div><div class='ctx'>     if (rb_obj_is_proc(body)) {</div><div class='ctx'>         iseq = vm_proc_iseq(body);</div><div class='ctx'> </div><div class='hunk'>@@ -2419,17 +2817,11 @@ ruby_node_name(int node)</div><div class='ctx'>     switch (node) {</div><div class='ctx'> #include "node_name.inc"</div><div class='ctx'>       default:</div><div class='del'>-	rb_bug("unknown node: %d", node);</div><div class='del'>-	return 0;</div><div class='add'>+        rb_bug("unknown node: %d", node);</div><div class='add'>+        return 0;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define DECL_SYMBOL(name) \</div><div class='del'>-  static VALUE sym_##name</div><div class='del'>-</div><div class='del'>-#define INIT_SYMBOL(name) \</div><div class='del'>-  sym_##name = ID2SYM(rb_intern(#name))</div><div class='del'>-</div><div class='ctx'> static VALUE</div><div class='ctx'> register_label(struct st_table *table, unsigned long idx)</div><div class='ctx'> {</div><div class='hunk'>@@ -2450,7 +2842,7 @@ exception_type2symbol(VALUE type)</div><div class='ctx'>       case CATCH_TYPE_REDO:   CONST_ID(id, "redo");   break;</div><div class='ctx'>       case CATCH_TYPE_NEXT:   CONST_ID(id, "next");   break;</div><div class='ctx'>       default:</div><div class='del'>-	rb_bug("unknown exception type: %d", (int)type);</div><div class='add'>+        rb_bug("unknown exception type: %d", (int)type);</div><div class='ctx'>     }</div><div class='ctx'>     return ID2SYM(id);</div><div class='ctx'> }</div><div class='hunk'>@@ -2463,19 +2855,71 @@ cdhash_each(VALUE key, VALUE value, VALUE ary)</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static const rb_data_type_t label_wrapper = {</div><div class='add'>+    "label_wrapper",</div><div class='add'>+    {(void (*)(void *))rb_mark_tbl, (void (*)(void *))st_free_table, 0, 0,},</div><div class='add'>+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define DECL_ID(name) \</div><div class='add'>+  static ID id_##name</div><div class='add'>+</div><div class='add'>+#define INIT_ID(name) \</div><div class='add'>+  id_##name = rb_intern(#name)</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+iseq_type_id(enum rb_iseq_type type)</div><div class='add'>+{</div><div class='add'>+    DECL_ID(top);</div><div class='add'>+    DECL_ID(method);</div><div class='add'>+    DECL_ID(block);</div><div class='add'>+    DECL_ID(class);</div><div class='add'>+    DECL_ID(rescue);</div><div class='add'>+    DECL_ID(ensure);</div><div class='add'>+    DECL_ID(eval);</div><div class='add'>+    DECL_ID(main);</div><div class='add'>+    DECL_ID(plain);</div><div class='add'>+</div><div class='add'>+    if (id_top == 0) {</div><div class='add'>+        INIT_ID(top);</div><div class='add'>+        INIT_ID(method);</div><div class='add'>+        INIT_ID(block);</div><div class='add'>+        INIT_ID(class);</div><div class='add'>+        INIT_ID(rescue);</div><div class='add'>+        INIT_ID(ensure);</div><div class='add'>+        INIT_ID(eval);</div><div class='add'>+        INIT_ID(main);</div><div class='add'>+        INIT_ID(plain);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    switch (type) {</div><div class='add'>+      case ISEQ_TYPE_TOP:    return id_top;</div><div class='add'>+      case ISEQ_TYPE_METHOD: return id_method;</div><div class='add'>+      case ISEQ_TYPE_BLOCK:  return id_block;</div><div class='add'>+      case ISEQ_TYPE_CLASS:  return id_class;</div><div class='add'>+      case ISEQ_TYPE_RESCUE: return id_rescue;</div><div class='add'>+      case ISEQ_TYPE_ENSURE: return id_ensure;</div><div class='add'>+      case ISEQ_TYPE_EVAL:   return id_eval;</div><div class='add'>+      case ISEQ_TYPE_MAIN:   return id_main;</div><div class='add'>+      case ISEQ_TYPE_PLAIN:  return id_plain;</div><div class='add'>+    };</div><div class='add'>+</div><div class='add'>+    rb_bug("unsupported iseq type: %d", (int)type);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='ctx'> iseq_data_to_ary(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     unsigned int i;</div><div class='ctx'>     long l;</div><div class='del'>-    const struct rb_iseq_constant_body *const iseq_body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const iseq_body = ISEQ_BODY(iseq);</div><div class='ctx'>     const struct iseq_insn_info_entry *prev_insn_info;</div><div class='ctx'>     unsigned int pos;</div><div class='ctx'>     int last_line = 0;</div><div class='ctx'>     VALUE *seq, *iseq_original;</div><div class='ctx'> </div><div class='ctx'>     VALUE val = rb_ary_new();</div><div class='del'>-    VALUE type; /* Symbol */</div><div class='add'>+    ID type; /* Symbol */</div><div class='ctx'>     VALUE locals = rb_ary_new();</div><div class='ctx'>     VALUE params = rb_hash_new();</div><div class='ctx'>     VALUE body = rb_ary_new(); /* [[:insn1, ...], ...] */</div><div class='hunk'>@@ -2483,297 +2927,298 @@ iseq_data_to_ary(const rb_iseq_t *iseq)</div><div class='ctx'>     VALUE exception = rb_ary_new(); /* [[....]] */</div><div class='ctx'>     VALUE misc = rb_hash_new();</div><div class='ctx'> </div><div class='del'>-    static VALUE insn_syms[VM_INSTRUCTION_SIZE/2]; /* w/o-trace only */</div><div class='add'>+    static ID insn_syms[VM_INSTRUCTION_SIZE/2]; /* w/o-trace only */</div><div class='ctx'>     struct st_table *labels_table = st_init_numtable();</div><div class='add'>+    VALUE labels_wrapper = TypedData_Wrap_Struct(0, &amp;label_wrapper, labels_table);</div><div class='ctx'> </div><div class='del'>-    DECL_SYMBOL(top);</div><div class='del'>-    DECL_SYMBOL(method);</div><div class='del'>-    DECL_SYMBOL(block);</div><div class='del'>-    DECL_SYMBOL(class);</div><div class='del'>-    DECL_SYMBOL(rescue);</div><div class='del'>-    DECL_SYMBOL(ensure);</div><div class='del'>-    DECL_SYMBOL(eval);</div><div class='del'>-    DECL_SYMBOL(main);</div><div class='del'>-    DECL_SYMBOL(plain);</div><div class='del'>-</div><div class='del'>-    if (sym_top == 0) {</div><div class='del'>-	int i;</div><div class='del'>-	for (i=0; i&lt;numberof(insn_syms); i++) {</div><div class='del'>-	    insn_syms[i] = ID2SYM(rb_intern(insn_name(i)));</div><div class='del'>-	}</div><div class='del'>-	INIT_SYMBOL(top);</div><div class='del'>-	INIT_SYMBOL(method);</div><div class='del'>-	INIT_SYMBOL(block);</div><div class='del'>-	INIT_SYMBOL(class);</div><div class='del'>-	INIT_SYMBOL(rescue);</div><div class='del'>-	INIT_SYMBOL(ensure);</div><div class='del'>-	INIT_SYMBOL(eval);</div><div class='del'>-	INIT_SYMBOL(main);</div><div class='del'>-	INIT_SYMBOL(plain);</div><div class='add'>+    if (insn_syms[0] == 0) {</div><div class='add'>+        int i;</div><div class='add'>+        for (i=0; i&lt;numberof(insn_syms); i++) {</div><div class='add'>+            insn_syms[i] = rb_intern(insn_name(i));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* type */</div><div class='del'>-    switch (iseq_body-&gt;type) {</div><div class='del'>-      case ISEQ_TYPE_TOP:    type = sym_top;    break;</div><div class='del'>-      case ISEQ_TYPE_METHOD: type = sym_method; break;</div><div class='del'>-      case ISEQ_TYPE_BLOCK:  type = sym_block;  break;</div><div class='del'>-      case ISEQ_TYPE_CLASS:  type = sym_class;  break;</div><div class='del'>-      case ISEQ_TYPE_RESCUE: type = sym_rescue; break;</div><div class='del'>-      case ISEQ_TYPE_ENSURE: type = sym_ensure; break;</div><div class='del'>-      case ISEQ_TYPE_EVAL:   type = sym_eval;   break;</div><div class='del'>-      case ISEQ_TYPE_MAIN:   type = sym_main;   break;</div><div class='del'>-      case ISEQ_TYPE_PLAIN:  type = sym_plain;  break;</div><div class='del'>-      default: rb_bug("unsupported iseq type: %d", (int)iseq_body-&gt;type);</div><div class='del'>-    };</div><div class='add'>+    type = iseq_type_id(iseq_body-&gt;type);</div><div class='ctx'> </div><div class='ctx'>     /* locals */</div><div class='ctx'>     for (i=0; i&lt;iseq_body-&gt;local_table_size; i++) {</div><div class='del'>-	ID lid = iseq_body-&gt;local_table[i];</div><div class='del'>-	if (lid) {</div><div class='del'>-	    if (rb_id2str(lid)) {</div><div class='del'>-		rb_ary_push(locals, ID2SYM(lid));</div><div class='del'>-	    }</div><div class='del'>-	    else { /* hidden variable from id_internal() */</div><div class='del'>-		rb_ary_push(locals, ULONG2NUM(iseq_body-&gt;local_table_size-i+1));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_ary_push(locals, ID2SYM(rb_intern("#arg_rest")));</div><div class='del'>-	}</div><div class='add'>+        ID lid = iseq_body-&gt;local_table[i];</div><div class='add'>+        if (lid) {</div><div class='add'>+            if (rb_id2str(lid)) {</div><div class='add'>+                rb_ary_push(locals, ID2SYM(lid));</div><div class='add'>+            }</div><div class='add'>+            else { /* hidden variable from id_internal() */</div><div class='add'>+                rb_ary_push(locals, ULONG2NUM(iseq_body-&gt;local_table_size-i+1));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_ary_push(locals, ID2SYM(rb_intern("#arg_rest")));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* params */</div><div class='ctx'>     {</div><div class='del'>-	const struct rb_iseq_param_keyword *const keyword = iseq_body-&gt;param.keyword;</div><div class='del'>-	int j;</div><div class='del'>-</div><div class='del'>-	if (iseq_body-&gt;param.flags.has_opt) {</div><div class='del'>-	    int len = iseq_body-&gt;param.opt_num + 1;</div><div class='del'>-	    VALUE arg_opt_labels = rb_ary_new2(len);</div><div class='del'>-</div><div class='del'>-	    for (j = 0; j &lt; len; j++) {</div><div class='del'>-		VALUE l = register_label(labels_table, iseq_body-&gt;param.opt_table[j]);</div><div class='del'>-		rb_ary_push(arg_opt_labels, l);</div><div class='del'>-	    }</div><div class='del'>-	    rb_hash_aset(params, ID2SYM(rb_intern("opt")), arg_opt_labels);</div><div class='del'>-        }</div><div class='del'>-</div><div class='del'>-	/* commit */</div><div class='del'>-	if (iseq_body-&gt;param.flags.has_lead) rb_hash_aset(params, ID2SYM(rb_intern("lead_num")), INT2FIX(iseq_body-&gt;param.lead_num));</div><div class='del'>-	if (iseq_body-&gt;param.flags.has_post) rb_hash_aset(params, ID2SYM(rb_intern("post_num")), INT2FIX(iseq_body-&gt;param.post_num));</div><div class='del'>-	if (iseq_body-&gt;param.flags.has_post) rb_hash_aset(params, ID2SYM(rb_intern("post_start")), INT2FIX(iseq_body-&gt;param.post_start));</div><div class='del'>-	if (iseq_body-&gt;param.flags.has_rest) rb_hash_aset(params, ID2SYM(rb_intern("rest_start")), INT2FIX(iseq_body-&gt;param.rest_start));</div><div class='del'>-	if (iseq_body-&gt;param.flags.has_block) rb_hash_aset(params, ID2SYM(rb_intern("block_start")), INT2FIX(iseq_body-&gt;param.block_start));</div><div class='del'>-	if (iseq_body-&gt;param.flags.has_kw) {</div><div class='del'>-	    VALUE keywords = rb_ary_new();</div><div class='del'>-	    int i, j;</div><div class='del'>-	    for (i=0; i&lt;keyword-&gt;required_num; i++) {</div><div class='del'>-		rb_ary_push(keywords, ID2SYM(keyword-&gt;table[i]));</div><div class='del'>-	    }</div><div class='del'>-	    for (j=0; i&lt;keyword-&gt;num; i++, j++) {</div><div class='del'>-		VALUE key = rb_ary_new_from_args(1, ID2SYM(keyword-&gt;table[i]));</div><div class='del'>-		if (keyword-&gt;default_values[j] != Qundef) {</div><div class='del'>-		    rb_ary_push(key, keyword-&gt;default_values[j]);</div><div class='del'>-		}</div><div class='del'>-		rb_ary_push(keywords, key);</div><div class='del'>-	    }</div><div class='del'>-</div><div class='del'>-	    rb_hash_aset(params, ID2SYM(rb_intern("kwbits")),</div><div class='del'>-	                 INT2FIX(keyword-&gt;bits_start));</div><div class='del'>-	    rb_hash_aset(params, ID2SYM(rb_intern("keyword")), keywords);</div><div class='del'>-	}</div><div class='del'>-	if (iseq_body-&gt;param.flags.has_kwrest) rb_hash_aset(params, ID2SYM(rb_intern("kwrest")), INT2FIX(keyword-&gt;rest_start));</div><div class='del'>-	if (iseq_body-&gt;param.flags.ambiguous_param0) rb_hash_aset(params, ID2SYM(rb_intern("ambiguous_param0")), Qtrue);</div><div class='add'>+        const struct rb_iseq_param_keyword *const keyword = iseq_body-&gt;param.keyword;</div><div class='add'>+        int j;</div><div class='add'>+</div><div class='add'>+        if (iseq_body-&gt;param.flags.has_opt) {</div><div class='add'>+            int len = iseq_body-&gt;param.opt_num + 1;</div><div class='add'>+            VALUE arg_opt_labels = rb_ary_new2(len);</div><div class='add'>+</div><div class='add'>+            for (j = 0; j &lt; len; j++) {</div><div class='add'>+                VALUE l = register_label(labels_table, iseq_body-&gt;param.opt_table[j]);</div><div class='add'>+                rb_ary_push(arg_opt_labels, l);</div><div class='add'>+            }</div><div class='add'>+            rb_hash_aset(params, ID2SYM(rb_intern("opt")), arg_opt_labels);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        /* commit */</div><div class='add'>+        if (iseq_body-&gt;param.flags.has_lead) rb_hash_aset(params, ID2SYM(rb_intern("lead_num")), INT2FIX(iseq_body-&gt;param.lead_num));</div><div class='add'>+        if (iseq_body-&gt;param.flags.has_post) rb_hash_aset(params, ID2SYM(rb_intern("post_num")), INT2FIX(iseq_body-&gt;param.post_num));</div><div class='add'>+        if (iseq_body-&gt;param.flags.has_post) rb_hash_aset(params, ID2SYM(rb_intern("post_start")), INT2FIX(iseq_body-&gt;param.post_start));</div><div class='add'>+        if (iseq_body-&gt;param.flags.has_rest) rb_hash_aset(params, ID2SYM(rb_intern("rest_start")), INT2FIX(iseq_body-&gt;param.rest_start));</div><div class='add'>+        if (iseq_body-&gt;param.flags.has_block) rb_hash_aset(params, ID2SYM(rb_intern("block_start")), INT2FIX(iseq_body-&gt;param.block_start));</div><div class='add'>+        if (iseq_body-&gt;param.flags.has_kw) {</div><div class='add'>+            VALUE keywords = rb_ary_new();</div><div class='add'>+            int i, j;</div><div class='add'>+            for (i=0; i&lt;keyword-&gt;required_num; i++) {</div><div class='add'>+                rb_ary_push(keywords, ID2SYM(keyword-&gt;table[i]));</div><div class='add'>+            }</div><div class='add'>+            for (j=0; i&lt;keyword-&gt;num; i++, j++) {</div><div class='add'>+                VALUE key = rb_ary_new_from_args(1, ID2SYM(keyword-&gt;table[i]));</div><div class='add'>+                if (!UNDEF_P(keyword-&gt;default_values[j])) {</div><div class='add'>+                    rb_ary_push(key, keyword-&gt;default_values[j]);</div><div class='add'>+                }</div><div class='add'>+                rb_ary_push(keywords, key);</div><div class='add'>+            }</div><div class='add'>+</div><div class='add'>+            rb_hash_aset(params, ID2SYM(rb_intern("kwbits")),</div><div class='add'>+                         INT2FIX(keyword-&gt;bits_start));</div><div class='add'>+            rb_hash_aset(params, ID2SYM(rb_intern("keyword")), keywords);</div><div class='add'>+        }</div><div class='add'>+        if (iseq_body-&gt;param.flags.has_kwrest) rb_hash_aset(params, ID2SYM(rb_intern("kwrest")), INT2FIX(keyword-&gt;rest_start));</div><div class='add'>+        if (iseq_body-&gt;param.flags.ambiguous_param0) rb_hash_aset(params, ID2SYM(rb_intern("ambiguous_param0")), Qtrue);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* body */</div><div class='ctx'>     iseq_original = rb_iseq_original_iseq((rb_iseq_t *)iseq);</div><div class='ctx'> </div><div class='ctx'>     for (seq = iseq_original; seq &lt; iseq_original + iseq_body-&gt;iseq_size; ) {</div><div class='del'>-	VALUE insn = *seq++;</div><div class='del'>-	int j, len = insn_len(insn);</div><div class='del'>-	VALUE *nseq = seq + len - 1;</div><div class='del'>-	VALUE ary = rb_ary_new2(len);</div><div class='del'>-</div><div class='del'>-	rb_ary_push(ary, insn_syms[insn%numberof(insn_syms)]);</div><div class='del'>-	for (j=0; j&lt;len-1; j++, seq++) {</div><div class='del'>-	    switch (insn_op_type(insn, j)) {</div><div class='del'>-	      case TS_OFFSET: {</div><div class='del'>-		unsigned long idx = nseq - iseq_original + *seq;</div><div class='del'>-		rb_ary_push(ary, register_label(labels_table, idx));</div><div class='del'>-		break;</div><div class='del'>-	      }</div><div class='del'>-	      case TS_LINDEX:</div><div class='del'>-	      case TS_NUM:</div><div class='del'>-		rb_ary_push(ary, INT2FIX(*seq));</div><div class='del'>-		break;</div><div class='del'>-	      case TS_VALUE:</div><div class='del'>-		rb_ary_push(ary, obj_resurrect(*seq));</div><div class='del'>-		break;</div><div class='del'>-	      case TS_ISEQ:</div><div class='del'>-		{</div><div class='del'>-		    const rb_iseq_t *iseq = (rb_iseq_t *)*seq;</div><div class='del'>-		    if (iseq) {</div><div class='del'>-			VALUE val = iseq_data_to_ary(rb_iseq_check(iseq));</div><div class='del'>-			rb_ary_push(ary, val);</div><div class='del'>-		    }</div><div class='del'>-		    else {</div><div class='del'>-			rb_ary_push(ary, Qnil);</div><div class='del'>-		    }</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      case TS_GENTRY:</div><div class='del'>-		{</div><div class='del'>-		    struct rb_global_entry *entry = (struct rb_global_entry *)*seq;</div><div class='del'>-		    rb_ary_push(ary, ID2SYM(entry-&gt;id));</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      case TS_IC:</div><div class='del'>-	      case TS_ISE:</div><div class='del'>-		{</div><div class='del'>-		    union iseq_inline_storage_entry *is = (union iseq_inline_storage_entry *)*seq;</div><div class='del'>-		    rb_ary_push(ary, INT2FIX(is - iseq_body-&gt;is_entries));</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      case TS_CALLINFO:</div><div class='del'>-		{</div><div class='del'>-		    struct rb_call_info *ci = (struct rb_call_info *)*seq;</div><div class='del'>-		    VALUE e = rb_hash_new();</div><div class='del'>-		    int orig_argc = ci-&gt;orig_argc;</div><div class='del'>-</div><div class='del'>-		    rb_hash_aset(e, ID2SYM(rb_intern("mid")), ci-&gt;mid ? ID2SYM(ci-&gt;mid) : Qnil);</div><div class='del'>-		    rb_hash_aset(e, ID2SYM(rb_intern("flag")), UINT2NUM(ci-&gt;flag));</div><div class='del'>-</div><div class='del'>-		    if (ci-&gt;flag &amp; VM_CALL_KWARG) {</div><div class='del'>-			struct rb_call_info_with_kwarg *ci_kw = (struct rb_call_info_with_kwarg *)ci;</div><div class='del'>-			int i;</div><div class='del'>-			VALUE kw = rb_ary_new2((long)ci_kw-&gt;kw_arg-&gt;keyword_len);</div><div class='del'>-</div><div class='del'>-			orig_argc -= ci_kw-&gt;kw_arg-&gt;keyword_len;</div><div class='del'>-			for (i = 0; i &lt; ci_kw-&gt;kw_arg-&gt;keyword_len; i++) {</div><div class='del'>-			    rb_ary_push(kw, ci_kw-&gt;kw_arg-&gt;keywords[i]);</div><div class='del'>-			}</div><div class='del'>-			rb_hash_aset(e, ID2SYM(rb_intern("kw_arg")), kw);</div><div class='del'>-		    }</div><div class='del'>-</div><div class='del'>-		    rb_hash_aset(e, ID2SYM(rb_intern("orig_argc")),</div><div class='del'>-				INT2FIX(orig_argc));</div><div class='del'>-		    rb_ary_push(ary, e);</div><div class='del'>-	        }</div><div class='del'>-		break;</div><div class='del'>-	      case TS_CALLCACHE:</div><div class='del'>-		rb_ary_push(ary, Qfalse);</div><div class='del'>-		break;</div><div class='del'>-	      case TS_ID:</div><div class='del'>-		rb_ary_push(ary, ID2SYM(*seq));</div><div class='del'>-		break;</div><div class='del'>-	      case TS_CDHASH:</div><div class='del'>-		{</div><div class='del'>-		    VALUE hash = *seq;</div><div class='del'>-		    VALUE val = rb_ary_new();</div><div class='del'>-		    int i;</div><div class='del'>-</div><div class='del'>-		    rb_hash_foreach(hash, cdhash_each, val);</div><div class='del'>-</div><div class='del'>-		    for (i=0; i&lt;RARRAY_LEN(val); i+=2) {</div><div class='del'>-			VALUE pos = FIX2INT(rb_ary_entry(val, i+1));</div><div class='del'>-			unsigned long idx = nseq - iseq_original + pos;</div><div class='del'>-</div><div class='del'>-			rb_ary_store(val, i+1,</div><div class='del'>-				     register_label(labels_table, idx));</div><div class='del'>-		    }</div><div class='del'>-		    rb_ary_push(ary, val);</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      case TS_FUNCPTR:</div><div class='del'>-		{</div><div class='add'>+        VALUE insn = *seq++;</div><div class='add'>+        int j, len = insn_len(insn);</div><div class='add'>+        VALUE *nseq = seq + len - 1;</div><div class='add'>+        VALUE ary = rb_ary_new2(len);</div><div class='add'>+</div><div class='add'>+        rb_ary_push(ary, ID2SYM(insn_syms[insn%numberof(insn_syms)]));</div><div class='add'>+        for (j=0; j&lt;len-1; j++, seq++) {</div><div class='add'>+            enum ruby_insn_type_chars op_type = insn_op_type(insn, j);</div><div class='add'>+</div><div class='add'>+            switch (op_type) {</div><div class='add'>+              case TS_OFFSET: {</div><div class='add'>+                unsigned long idx = nseq - iseq_original + *seq;</div><div class='add'>+                rb_ary_push(ary, register_label(labels_table, idx));</div><div class='add'>+                break;</div><div class='add'>+              }</div><div class='add'>+              case TS_LINDEX:</div><div class='add'>+              case TS_NUM:</div><div class='add'>+                rb_ary_push(ary, INT2FIX(*seq));</div><div class='add'>+                break;</div><div class='add'>+              case TS_VALUE:</div><div class='add'>+                rb_ary_push(ary, obj_resurrect(*seq));</div><div class='add'>+                break;</div><div class='add'>+              case TS_ISEQ:</div><div class='add'>+                {</div><div class='add'>+                    const rb_iseq_t *iseq = (rb_iseq_t *)*seq;</div><div class='add'>+                    if (iseq) {</div><div class='add'>+                        VALUE val = iseq_data_to_ary(rb_iseq_check(iseq));</div><div class='add'>+                        rb_ary_push(ary, val);</div><div class='add'>+                    }</div><div class='add'>+                    else {</div><div class='add'>+                        rb_ary_push(ary, Qnil);</div><div class='add'>+                    }</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_IC:</div><div class='add'>+                {</div><div class='add'>+                    VALUE list = rb_ary_new();</div><div class='add'>+                    const ID *ids = ((IC)*seq)-&gt;segments;</div><div class='add'>+                    while (*ids) {</div><div class='add'>+                        rb_ary_push(list, ID2SYM(*ids++));</div><div class='add'>+                    }</div><div class='add'>+                    rb_ary_push(ary, list);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_IVC:</div><div class='add'>+              case TS_ICVARC:</div><div class='add'>+              case TS_ISE:</div><div class='add'>+                {</div><div class='add'>+                    union iseq_inline_storage_entry *is = (union iseq_inline_storage_entry *)*seq;</div><div class='add'>+                    rb_ary_push(ary, INT2FIX(is - ISEQ_IS_ENTRY_START(ISEQ_BODY(iseq), op_type)));</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_CALLDATA:</div><div class='add'>+                {</div><div class='add'>+                    struct rb_call_data *cd = (struct rb_call_data *)*seq;</div><div class='add'>+                    const struct rb_callinfo *ci = cd-&gt;ci;</div><div class='add'>+                    VALUE e = rb_hash_new();</div><div class='add'>+                    int argc = vm_ci_argc(ci);</div><div class='add'>+</div><div class='add'>+                    ID mid = vm_ci_mid(ci);</div><div class='add'>+                    rb_hash_aset(e, ID2SYM(rb_intern("mid")), mid ? ID2SYM(mid) : Qnil);</div><div class='add'>+                    rb_hash_aset(e, ID2SYM(rb_intern("flag")), UINT2NUM(vm_ci_flag(ci)));</div><div class='add'>+</div><div class='add'>+                    if (vm_ci_flag(ci) &amp; VM_CALL_KWARG) {</div><div class='add'>+                        const struct rb_callinfo_kwarg *kwarg = vm_ci_kwarg(ci);</div><div class='add'>+                        int i;</div><div class='add'>+                        VALUE kw = rb_ary_new2((long)kwarg-&gt;keyword_len);</div><div class='add'>+</div><div class='add'>+                        argc -= kwarg-&gt;keyword_len;</div><div class='add'>+                        for (i = 0; i &lt; kwarg-&gt;keyword_len; i++) {</div><div class='add'>+                            rb_ary_push(kw, kwarg-&gt;keywords[i]);</div><div class='add'>+                        }</div><div class='add'>+                        rb_hash_aset(e, ID2SYM(rb_intern("kw_arg")), kw);</div><div class='add'>+                    }</div><div class='add'>+</div><div class='add'>+                    rb_hash_aset(e, ID2SYM(rb_intern("orig_argc")),</div><div class='add'>+                                INT2FIX(argc));</div><div class='add'>+                    rb_ary_push(ary, e);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_ID:</div><div class='add'>+                rb_ary_push(ary, ID2SYM(*seq));</div><div class='add'>+                break;</div><div class='add'>+              case TS_CDHASH:</div><div class='add'>+                {</div><div class='add'>+                    VALUE hash = *seq;</div><div class='add'>+                    VALUE val = rb_ary_new();</div><div class='add'>+                    int i;</div><div class='add'>+</div><div class='add'>+                    rb_hash_foreach(hash, cdhash_each, val);</div><div class='add'>+</div><div class='add'>+                    for (i=0; i&lt;RARRAY_LEN(val); i+=2) {</div><div class='add'>+                        VALUE pos = FIX2INT(rb_ary_entry(val, i+1));</div><div class='add'>+                        unsigned long idx = nseq - iseq_original + pos;</div><div class='add'>+</div><div class='add'>+                        rb_ary_store(val, i+1,</div><div class='add'>+                                     register_label(labels_table, idx));</div><div class='add'>+                    }</div><div class='add'>+                    rb_ary_push(ary, val);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_FUNCPTR:</div><div class='add'>+                {</div><div class='add'>+#if SIZEOF_VALUE &lt;= SIZEOF_LONG</div><div class='add'>+                    VALUE val = LONG2NUM((SIGNED_VALUE)*seq);</div><div class='add'>+#else</div><div class='add'>+                    VALUE val = LL2NUM((SIGNED_VALUE)*seq);</div><div class='add'>+#endif</div><div class='add'>+                    rb_ary_push(ary, val);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              case TS_BUILTIN:</div><div class='add'>+                {</div><div class='add'>+                    VALUE val = rb_hash_new();</div><div class='ctx'> #if SIZEOF_VALUE &lt;= SIZEOF_LONG</div><div class='del'>-		    VALUE val = LONG2NUM((SIGNED_VALUE)*seq);</div><div class='add'>+                    VALUE func_ptr = LONG2NUM((SIGNED_VALUE)((RB_BUILTIN)*seq)-&gt;func_ptr);</div><div class='ctx'> #else</div><div class='del'>-		    VALUE val = LL2NUM((SIGNED_VALUE)*seq);</div><div class='add'>+                    VALUE func_ptr = LL2NUM((SIGNED_VALUE)((RB_BUILTIN)*seq)-&gt;func_ptr);</div><div class='ctx'> #endif</div><div class='del'>-		    rb_ary_push(ary, val);</div><div class='del'>-		}</div><div class='del'>-		break;</div><div class='del'>-	      default:</div><div class='del'>-		rb_bug("unknown operand: %c", insn_op_type(insn, j));</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	rb_ary_push(body, ary);</div><div class='add'>+                    rb_hash_aset(val, ID2SYM(rb_intern("func_ptr")), func_ptr);</div><div class='add'>+                    rb_hash_aset(val, ID2SYM(rb_intern("argc")), INT2NUM(((RB_BUILTIN)*seq)-&gt;argc));</div><div class='add'>+                    rb_hash_aset(val, ID2SYM(rb_intern("index")), INT2NUM(((RB_BUILTIN)*seq)-&gt;index));</div><div class='add'>+                    rb_hash_aset(val, ID2SYM(rb_intern("name")), rb_str_new_cstr(((RB_BUILTIN)*seq)-&gt;name));</div><div class='add'>+                    rb_ary_push(ary, val);</div><div class='add'>+                }</div><div class='add'>+                break;</div><div class='add'>+              default:</div><div class='add'>+                rb_bug("unknown operand: %c", insn_op_type(insn, j));</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        rb_ary_push(body, ary);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     nbody = body;</div><div class='ctx'> </div><div class='ctx'>     /* exception */</div><div class='ctx'>     if (iseq_body-&gt;catch_table) for (i=0; i&lt;iseq_body-&gt;catch_table-&gt;size; i++) {</div><div class='del'>-	VALUE ary = rb_ary_new();</div><div class='del'>-	const struct iseq_catch_table_entry *entry = &amp;iseq_body-&gt;catch_table-&gt;entries[i];</div><div class='del'>-	rb_ary_push(ary, exception_type2symbol(entry-&gt;type));</div><div class='del'>-	if (entry-&gt;iseq) {</div><div class='del'>-	    rb_ary_push(ary, iseq_data_to_ary(rb_iseq_check(entry-&gt;iseq)));</div><div class='del'>-	}</div><div class='del'>-	else {</div><div class='del'>-	    rb_ary_push(ary, Qnil);</div><div class='del'>-	}</div><div class='del'>-	rb_ary_push(ary, register_label(labels_table, entry-&gt;start));</div><div class='del'>-	rb_ary_push(ary, register_label(labels_table, entry-&gt;end));</div><div class='del'>-	rb_ary_push(ary, register_label(labels_table, entry-&gt;cont));</div><div class='del'>-	rb_ary_push(ary, UINT2NUM(entry-&gt;sp));</div><div class='del'>-	rb_ary_push(exception, ary);</div><div class='add'>+        VALUE ary = rb_ary_new();</div><div class='add'>+        const struct iseq_catch_table_entry *entry =</div><div class='add'>+            UNALIGNED_MEMBER_PTR(iseq_body-&gt;catch_table, entries[i]);</div><div class='add'>+        rb_ary_push(ary, exception_type2symbol(entry-&gt;type));</div><div class='add'>+        if (entry-&gt;iseq) {</div><div class='add'>+            rb_ary_push(ary, iseq_data_to_ary(rb_iseq_check(entry-&gt;iseq)));</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            rb_ary_push(ary, Qnil);</div><div class='add'>+        }</div><div class='add'>+        rb_ary_push(ary, register_label(labels_table, entry-&gt;start));</div><div class='add'>+        rb_ary_push(ary, register_label(labels_table, entry-&gt;end));</div><div class='add'>+        rb_ary_push(ary, register_label(labels_table, entry-&gt;cont));</div><div class='add'>+        rb_ary_push(ary, UINT2NUM(entry-&gt;sp));</div><div class='add'>+        rb_ary_push(exception, ary);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* make body with labels and insert line number */</div><div class='ctx'>     body = rb_ary_new();</div><div class='ctx'>     prev_insn_info = NULL;</div><div class='add'>+#ifdef USE_ISEQ_NODE_ID</div><div class='add'>+    VALUE node_ids = rb_ary_new();</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     for (l=0, pos=0; l&lt;RARRAY_LEN(nbody); l++) {</div><div class='del'>-	const struct iseq_insn_info_entry *info;</div><div class='del'>-	VALUE ary = RARRAY_AREF(nbody, l);</div><div class='del'>-	st_data_t label;</div><div class='add'>+        const struct iseq_insn_info_entry *info;</div><div class='add'>+        VALUE ary = RARRAY_AREF(nbody, l);</div><div class='add'>+        st_data_t label;</div><div class='ctx'> </div><div class='del'>-	if (st_lookup(labels_table, pos, &amp;label)) {</div><div class='del'>-	    rb_ary_push(body, (VALUE)label);</div><div class='del'>-	}</div><div class='add'>+        if (st_lookup(labels_table, pos, &amp;label)) {</div><div class='add'>+            rb_ary_push(body, (VALUE)label);</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	info = get_insn_info(iseq, pos);</div><div class='add'>+        info = get_insn_info(iseq, pos);</div><div class='add'>+#ifdef USE_ISEQ_NODE_ID</div><div class='add'>+        rb_ary_push(node_ids, INT2FIX(info-&gt;node_id));</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='del'>-	if (prev_insn_info != info) {</div><div class='del'>-	    int line = info-&gt;line_no;</div><div class='del'>-	    rb_event_flag_t events = info-&gt;events;</div><div class='add'>+        if (prev_insn_info != info) {</div><div class='add'>+            int line = info-&gt;line_no;</div><div class='add'>+            rb_event_flag_t events = info-&gt;events;</div><div class='ctx'> </div><div class='del'>-	    if (line &gt; 0 &amp;&amp; last_line != line) {</div><div class='del'>-		rb_ary_push(body, INT2FIX(line));</div><div class='del'>-		last_line = line;</div><div class='del'>-	    }</div><div class='add'>+            if (line &gt; 0 &amp;&amp; last_line != line) {</div><div class='add'>+                rb_ary_push(body, INT2FIX(line));</div><div class='add'>+                last_line = line;</div><div class='add'>+            }</div><div class='ctx'> #define CHECK_EVENT(ev) if (events &amp; ev) rb_ary_push(body, ID2SYM(rb_intern(#ev)));</div><div class='del'>-	    CHECK_EVENT(RUBY_EVENT_LINE);</div><div class='del'>-	    CHECK_EVENT(RUBY_EVENT_CLASS);</div><div class='del'>-	    CHECK_EVENT(RUBY_EVENT_END);</div><div class='del'>-	    CHECK_EVENT(RUBY_EVENT_CALL);</div><div class='del'>-	    CHECK_EVENT(RUBY_EVENT_RETURN);</div><div class='del'>-	    CHECK_EVENT(RUBY_EVENT_B_CALL);</div><div class='del'>-	    CHECK_EVENT(RUBY_EVENT_B_RETURN);</div><div class='add'>+            CHECK_EVENT(RUBY_EVENT_LINE);</div><div class='add'>+            CHECK_EVENT(RUBY_EVENT_CLASS);</div><div class='add'>+            CHECK_EVENT(RUBY_EVENT_END);</div><div class='add'>+            CHECK_EVENT(RUBY_EVENT_CALL);</div><div class='add'>+            CHECK_EVENT(RUBY_EVENT_RETURN);</div><div class='add'>+            CHECK_EVENT(RUBY_EVENT_B_CALL);</div><div class='add'>+            CHECK_EVENT(RUBY_EVENT_B_RETURN);</div><div class='ctx'> #undef CHECK_EVENT</div><div class='del'>-	    prev_insn_info = info;</div><div class='del'>-	}</div><div class='add'>+            prev_insn_info = info;</div><div class='add'>+        }</div><div class='ctx'> </div><div class='del'>-	rb_ary_push(body, ary);</div><div class='del'>-	pos += RARRAY_LENINT(ary); /* reject too huge data */</div><div class='add'>+        rb_ary_push(body, ary);</div><div class='add'>+        pos += RARRAY_LENINT(ary); /* reject too huge data */</div><div class='ctx'>     }</div><div class='ctx'>     RB_GC_GUARD(nbody);</div><div class='del'>-</div><div class='del'>-    st_free_table(labels_table);</div><div class='add'>+    RB_GC_GUARD(labels_wrapper);</div><div class='ctx'> </div><div class='ctx'>     rb_hash_aset(misc, ID2SYM(rb_intern("arg_size")), INT2FIX(iseq_body-&gt;param.size));</div><div class='ctx'>     rb_hash_aset(misc, ID2SYM(rb_intern("local_size")), INT2FIX(iseq_body-&gt;local_table_size));</div><div class='ctx'>     rb_hash_aset(misc, ID2SYM(rb_intern("stack_max")), INT2FIX(iseq_body-&gt;stack_max));</div><div class='ctx'>     rb_hash_aset(misc, ID2SYM(rb_intern("node_id")), INT2FIX(iseq_body-&gt;location.node_id));</div><div class='ctx'>     rb_hash_aset(misc, ID2SYM(rb_intern("code_location")),</div><div class='del'>-	    rb_ary_new_from_args(4,</div><div class='del'>-		INT2FIX(iseq_body-&gt;location.code_location.beg_pos.lineno),</div><div class='del'>-		INT2FIX(iseq_body-&gt;location.code_location.beg_pos.column),</div><div class='del'>-		INT2FIX(iseq_body-&gt;location.code_location.end_pos.lineno),</div><div class='del'>-		INT2FIX(iseq_body-&gt;location.code_location.end_pos.column)));</div><div class='add'>+            rb_ary_new_from_args(4,</div><div class='add'>+                INT2FIX(iseq_body-&gt;location.code_location.beg_pos.lineno),</div><div class='add'>+                INT2FIX(iseq_body-&gt;location.code_location.beg_pos.column),</div><div class='add'>+                INT2FIX(iseq_body-&gt;location.code_location.end_pos.lineno),</div><div class='add'>+                INT2FIX(iseq_body-&gt;location.code_location.end_pos.column)));</div><div class='add'>+#ifdef USE_ISEQ_NODE_ID</div><div class='add'>+    rb_hash_aset(misc, ID2SYM(rb_intern("node_ids")), node_ids);</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'>     /*</div><div class='ctx'>      * [:magic, :major_version, :minor_version, :format_type, :misc,</div><div class='hunk'>@@ -2788,8 +3233,8 @@ iseq_data_to_ary(const rb_iseq_t *iseq)</div><div class='ctx'>     rb_ary_push(val, iseq_body-&gt;location.label);</div><div class='ctx'>     rb_ary_push(val, rb_iseq_path(iseq));</div><div class='ctx'>     rb_ary_push(val, rb_iseq_realpath(iseq));</div><div class='del'>-    rb_ary_push(val, iseq_body-&gt;location.first_lineno);</div><div class='del'>-    rb_ary_push(val, type);</div><div class='add'>+    rb_ary_push(val, RB_INT2NUM(iseq_body-&gt;location.first_lineno));</div><div class='add'>+    rb_ary_push(val, ID2SYM(type));</div><div class='ctx'>     rb_ary_push(val, locals);</div><div class='ctx'>     rb_ary_push(val, params);</div><div class='ctx'>     rb_ary_push(val, exception);</div><div class='hunk'>@@ -2801,86 +3246,101 @@ VALUE</div><div class='ctx'> rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc)</div><div class='ctx'> {</div><div class='ctx'>     int i, r;</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     const struct rb_iseq_param_keyword *const keyword = body-&gt;param.keyword;</div><div class='ctx'>     VALUE a, args = rb_ary_new2(body-&gt;param.size);</div><div class='ctx'>     ID req, opt, rest, block, key, keyrest;</div><div class='ctx'> #define PARAM_TYPE(type) rb_ary_push(a = rb_ary_new2(2), ID2SYM(type))</div><div class='ctx'> #define PARAM_ID(i) body-&gt;local_table[(i)]</div><div class='ctx'> #define PARAM(i, type) (		      \</div><div class='del'>-	PARAM_TYPE(type),		      \</div><div class='del'>-	rb_id2str(PARAM_ID(i)) ?	      \</div><div class='del'>-	rb_ary_push(a, ID2SYM(PARAM_ID(i))) : \</div><div class='del'>-	a)</div><div class='add'>+        PARAM_TYPE(type),		      \</div><div class='add'>+        rb_id2str(PARAM_ID(i)) ?	      \</div><div class='add'>+        rb_ary_push(a, ID2SYM(PARAM_ID(i))) : \</div><div class='add'>+        a)</div><div class='ctx'> </div><div class='ctx'>     CONST_ID(req, "req");</div><div class='ctx'>     CONST_ID(opt, "opt");</div><div class='ctx'>     if (is_proc) {</div><div class='del'>-	for (i = 0; i &lt; body-&gt;param.lead_num; i++) {</div><div class='del'>-	    PARAM_TYPE(opt);</div><div class='del'>-	    rb_ary_push(a, rb_id2str(PARAM_ID(i)) ? ID2SYM(PARAM_ID(i)) : Qnil);</div><div class='del'>-	    rb_ary_push(args, a);</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; body-&gt;param.lead_num; i++) {</div><div class='add'>+            PARAM_TYPE(opt);</div><div class='add'>+            rb_ary_push(a, rb_id2str(PARAM_ID(i)) ? ID2SYM(PARAM_ID(i)) : Qnil);</div><div class='add'>+            rb_ary_push(args, a);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	for (i = 0; i &lt; body-&gt;param.lead_num; i++) {</div><div class='del'>-	    rb_ary_push(args, PARAM(i, req));</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; body-&gt;param.lead_num; i++) {</div><div class='add'>+            rb_ary_push(args, PARAM(i, req));</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     r = body-&gt;param.lead_num + body-&gt;param.opt_num;</div><div class='ctx'>     for (; i &lt; r; i++) {</div><div class='del'>-	PARAM_TYPE(opt);</div><div class='del'>-	if (rb_id2str(PARAM_ID(i))) {</div><div class='del'>-	    rb_ary_push(a, ID2SYM(PARAM_ID(i)));</div><div class='del'>-	}</div><div class='del'>-	rb_ary_push(args, a);</div><div class='add'>+        PARAM_TYPE(opt);</div><div class='add'>+        if (rb_id2str(PARAM_ID(i))) {</div><div class='add'>+            rb_ary_push(a, ID2SYM(PARAM_ID(i)));</div><div class='add'>+        }</div><div class='add'>+        rb_ary_push(args, a);</div><div class='ctx'>     }</div><div class='ctx'>     if (body-&gt;param.flags.has_rest) {</div><div class='del'>-	CONST_ID(rest, "rest");</div><div class='del'>-	rb_ary_push(args, PARAM(body-&gt;param.rest_start, rest));</div><div class='add'>+        CONST_ID(rest, "rest");</div><div class='add'>+        rb_ary_push(args, PARAM(body-&gt;param.rest_start, rest));</div><div class='ctx'>     }</div><div class='ctx'>     r = body-&gt;param.post_start + body-&gt;param.post_num;</div><div class='ctx'>     if (is_proc) {</div><div class='del'>-	for (i = body-&gt;param.post_start; i &lt; r; i++) {</div><div class='del'>-	    PARAM_TYPE(opt);</div><div class='del'>-	    rb_ary_push(a, rb_id2str(PARAM_ID(i)) ? ID2SYM(PARAM_ID(i)) : Qnil);</div><div class='del'>-	    rb_ary_push(args, a);</div><div class='del'>-	}</div><div class='add'>+        for (i = body-&gt;param.post_start; i &lt; r; i++) {</div><div class='add'>+            PARAM_TYPE(opt);</div><div class='add'>+            rb_ary_push(a, rb_id2str(PARAM_ID(i)) ? ID2SYM(PARAM_ID(i)) : Qnil);</div><div class='add'>+            rb_ary_push(args, a);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	for (i = body-&gt;param.post_start; i &lt; r; i++) {</div><div class='del'>-	    rb_ary_push(args, PARAM(i, req));</div><div class='del'>-	}</div><div class='add'>+        for (i = body-&gt;param.post_start; i &lt; r; i++) {</div><div class='add'>+            rb_ary_push(args, PARAM(i, req));</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (body-&gt;param.flags.accepts_no_kwarg) {</div><div class='add'>+        ID nokey;</div><div class='add'>+        CONST_ID(nokey, "nokey");</div><div class='add'>+        PARAM_TYPE(nokey);</div><div class='add'>+        rb_ary_push(args, a);</div><div class='ctx'>     }</div><div class='ctx'>     if (body-&gt;param.flags.has_kw) {</div><div class='del'>-	i = 0;</div><div class='del'>-	if (keyword-&gt;required_num &gt; 0) {</div><div class='del'>-	    ID keyreq;</div><div class='del'>-	    CONST_ID(keyreq, "keyreq");</div><div class='del'>-	    for (; i &lt; keyword-&gt;required_num; i++) {</div><div class='del'>-		PARAM_TYPE(keyreq);</div><div class='del'>-		if (rb_id2str(keyword-&gt;table[i])) {</div><div class='del'>-		    rb_ary_push(a, ID2SYM(keyword-&gt;table[i]));</div><div class='del'>-		}</div><div class='del'>-		rb_ary_push(args, a);</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	CONST_ID(key, "key");</div><div class='del'>-	for (; i &lt; keyword-&gt;num; i++) {</div><div class='del'>-	    PARAM_TYPE(key);</div><div class='del'>-	    if (rb_id2str(keyword-&gt;table[i])) {</div><div class='del'>-		rb_ary_push(a, ID2SYM(keyword-&gt;table[i]));</div><div class='del'>-	    }</div><div class='del'>-	    rb_ary_push(args, a);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    if (body-&gt;param.flags.has_kwrest) {</div><div class='del'>-	CONST_ID(keyrest, "keyrest");</div><div class='del'>-	rb_ary_push(args, PARAM(keyword-&gt;rest_start, keyrest));</div><div class='add'>+        i = 0;</div><div class='add'>+        if (keyword-&gt;required_num &gt; 0) {</div><div class='add'>+            ID keyreq;</div><div class='add'>+            CONST_ID(keyreq, "keyreq");</div><div class='add'>+            for (; i &lt; keyword-&gt;required_num; i++) {</div><div class='add'>+                PARAM_TYPE(keyreq);</div><div class='add'>+                if (rb_id2str(keyword-&gt;table[i])) {</div><div class='add'>+                    rb_ary_push(a, ID2SYM(keyword-&gt;table[i]));</div><div class='add'>+                }</div><div class='add'>+                rb_ary_push(args, a);</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+        CONST_ID(key, "key");</div><div class='add'>+        for (; i &lt; keyword-&gt;num; i++) {</div><div class='add'>+            PARAM_TYPE(key);</div><div class='add'>+            if (rb_id2str(keyword-&gt;table[i])) {</div><div class='add'>+                rb_ary_push(a, ID2SYM(keyword-&gt;table[i]));</div><div class='add'>+            }</div><div class='add'>+            rb_ary_push(args, a);</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+    if (body-&gt;param.flags.has_kwrest || body-&gt;param.flags.ruby2_keywords) {</div><div class='add'>+        ID param;</div><div class='add'>+        CONST_ID(keyrest, "keyrest");</div><div class='add'>+        PARAM_TYPE(keyrest);</div><div class='add'>+        if (body-&gt;param.flags.has_kwrest &amp;&amp;</div><div class='add'>+            rb_id2str(param = PARAM_ID(keyword-&gt;rest_start))) {</div><div class='add'>+            rb_ary_push(a, ID2SYM(param));</div><div class='add'>+        }</div><div class='add'>+        else if (body-&gt;param.flags.ruby2_keywords) {</div><div class='add'>+            rb_ary_push(a, ID2SYM(idPow));</div><div class='add'>+        }</div><div class='add'>+        rb_ary_push(args, a);</div><div class='ctx'>     }</div><div class='ctx'>     if (body-&gt;param.flags.has_block) {</div><div class='del'>-	CONST_ID(block, "block");</div><div class='del'>-	rb_ary_push(args, PARAM(body-&gt;param.block_start, block));</div><div class='add'>+        CONST_ID(block, "block");</div><div class='add'>+        rb_ary_push(args, PARAM(body-&gt;param.block_start, block));</div><div class='ctx'>     }</div><div class='ctx'>     return args;</div><div class='ctx'> }</div><div class='hunk'>@@ -2889,40 +3349,26 @@ VALUE</div><div class='ctx'> rb_iseq_defined_string(enum defined_type type)</div><div class='ctx'> {</div><div class='ctx'>     static const char expr_names[][18] = {</div><div class='del'>-	"nil",</div><div class='del'>-	"instance-variable",</div><div class='del'>-	"local-variable",</div><div class='del'>-	"global-variable",</div><div class='del'>-	"class variable",</div><div class='del'>-	"constant",</div><div class='del'>-	"method",</div><div class='del'>-	"yield",</div><div class='del'>-	"super",</div><div class='del'>-	"self",</div><div class='del'>-	"true",</div><div class='del'>-	"false",</div><div class='del'>-	"assignment",</div><div class='del'>-	"expression",</div><div class='add'>+        "nil",</div><div class='add'>+        "instance-variable",</div><div class='add'>+        "local-variable",</div><div class='add'>+        "global-variable",</div><div class='add'>+        "class variable",</div><div class='add'>+        "constant",</div><div class='add'>+        "method",</div><div class='add'>+        "yield",</div><div class='add'>+        "super",</div><div class='add'>+        "self",</div><div class='add'>+        "true",</div><div class='add'>+        "false",</div><div class='add'>+        "assignment",</div><div class='add'>+        "expression",</div><div class='ctx'>     };</div><div class='ctx'>     const char *estr;</div><div class='del'>-    VALUE *defs, str;</div><div class='ctx'> </div><div class='del'>-    if ((unsigned)(type - 1) &gt;= (unsigned)numberof(expr_names)) return 0;</div><div class='add'>+    if ((unsigned)(type - 1) &gt;= (unsigned)numberof(expr_names)) rb_bug("unknown defined type %d", type);</div><div class='ctx'>     estr = expr_names[type - 1];</div><div class='del'>-    if (!estr[0]) return 0;</div><div class='del'>-    defs = GET_VM()-&gt;defined_strings;</div><div class='del'>-    if (!defs) {</div><div class='del'>-	defs = ruby_xcalloc(numberof(expr_names), sizeof(VALUE));</div><div class='del'>-	GET_VM()-&gt;defined_strings = defs;</div><div class='del'>-    }</div><div class='del'>-    str = defs[type-1];</div><div class='del'>-    if (!str) {</div><div class='del'>-	str = rb_str_new_cstr(estr);</div><div class='del'>-	OBJ_FREEZE(str);</div><div class='del'>-	defs[type-1] = str;</div><div class='del'>-	rb_gc_register_mark_object(str);</div><div class='del'>-    }</div><div class='del'>-    return str;</div><div class='add'>+    return rb_fstring_cstr(estr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> /* A map from encoded_insn to insn_data: decoded insn number, its len,</div><div class='hunk'>@@ -2944,7 +3390,7 @@ rb_vm_encoded_insn_data_table_init(void)</div><div class='ctx'>     const void * const *table = rb_vm_get_insns_address_table();</div><div class='ctx'> #define INSN_CODE(insn) ((VALUE)table[insn])</div><div class='ctx'> #else</div><div class='del'>-#define INSN_CODE(insn) (insn)</div><div class='add'>+#define INSN_CODE(insn) ((VALUE)(insn))</div><div class='ctx'> #endif</div><div class='ctx'>     st_data_t insn;</div><div class='ctx'>     encoded_insn_data = st_init_numtable_with_size(VM_INSTRUCTION_SIZE / 2);</div><div class='hunk'>@@ -2955,8 +3401,15 @@ rb_vm_encoded_insn_data_table_init(void)</div><div class='ctx'> </div><div class='ctx'>         insn_data[insn].insn = (int)insn;</div><div class='ctx'>         insn_data[insn].insn_len = insn_len(insn);</div><div class='del'>-        insn_data[insn].notrace_encoded_insn = (void *) key1;</div><div class='del'>-        insn_data[insn].trace_encoded_insn = (void *) key2;</div><div class='add'>+</div><div class='add'>+        if (insn != BIN(opt_invokebuiltin_delegate_leave)) {</div><div class='add'>+            insn_data[insn].notrace_encoded_insn = (void *) key1;</div><div class='add'>+            insn_data[insn].trace_encoded_insn = (void *) key2;</div><div class='add'>+        }</div><div class='add'>+        else {</div><div class='add'>+            insn_data[insn].notrace_encoded_insn = (void *) INSN_CODE(BIN(opt_invokebuiltin_delegate));</div><div class='add'>+            insn_data[insn].trace_encoded_insn = (void *) INSN_CODE(BIN(opt_invokebuiltin_delegate) + VM_INSTRUCTION_SIZE/2);</div><div class='add'>+        }</div><div class='ctx'> </div><div class='ctx'>         st_add_direct(encoded_insn_data, key1, (st_data_t)&amp;insn_data[insn]);</div><div class='ctx'>         st_add_direct(encoded_insn_data, key2, (st_data_t)&amp;insn_data[insn]);</div><div class='hunk'>@@ -2977,14 +3430,48 @@ rb_vm_insn_addr2insn(const void *addr)</div><div class='ctx'>     rb_bug("rb_vm_insn_addr2insn: invalid insn address: %p", addr);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+// Unlike rb_vm_insn_addr2insn, this function can return trace opcode variants.</div><div class='add'>+int</div><div class='add'>+rb_vm_insn_addr2opcode(const void *addr)</div><div class='add'>+{</div><div class='add'>+    st_data_t key = (st_data_t)addr;</div><div class='add'>+    st_data_t val;</div><div class='add'>+</div><div class='add'>+    if (st_lookup(encoded_insn_data, key, &amp;val)) {</div><div class='add'>+        insn_data_t *e = (insn_data_t *)val;</div><div class='add'>+        int opcode = e-&gt;insn;</div><div class='add'>+        if (addr == e-&gt;trace_encoded_insn) {</div><div class='add'>+            opcode += VM_INSTRUCTION_SIZE/2;</div><div class='add'>+        }</div><div class='add'>+        return opcode;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_bug("rb_vm_insn_addr2opcode: invalid insn address: %p", addr);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// Decode `ISEQ_BODY(iseq)-&gt;iseq_encoded[i]` to an insn.</div><div class='add'>+int</div><div class='add'>+rb_vm_insn_decode(const VALUE encoded)</div><div class='add'>+{</div><div class='add'>+#if OPT_DIRECT_THREADED_CODE || OPT_CALL_THREADED_CODE</div><div class='add'>+    int insn = rb_vm_insn_addr2insn((void *)encoded);</div><div class='add'>+#else</div><div class='add'>+    int insn = (int)encoded;</div><div class='add'>+#endif</div><div class='add'>+    return insn;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static inline int</div><div class='del'>-encoded_iseq_trace_instrument(VALUE *iseq_encoded_insn, rb_event_flag_t turnon)</div><div class='add'>+encoded_iseq_trace_instrument(VALUE *iseq_encoded_insn, rb_event_flag_t turnon, bool remain_current_trace)</div><div class='ctx'> {</div><div class='ctx'>     st_data_t key = (st_data_t)*iseq_encoded_insn;</div><div class='ctx'>     st_data_t val;</div><div class='ctx'> </div><div class='ctx'>     if (st_lookup(encoded_insn_data, key, &amp;val)) {</div><div class='ctx'>         insn_data_t *e = (insn_data_t *)val;</div><div class='add'>+        if (remain_current_trace &amp;&amp; key == (st_data_t)e-&gt;trace_encoded_insn) {</div><div class='add'>+            turnon = 1;</div><div class='add'>+        }</div><div class='ctx'>         *iseq_encoded_insn = (VALUE) (turnon ? e-&gt;trace_encoded_insn : e-&gt;notrace_encoded_insn);</div><div class='ctx'>         return e-&gt;insn_len;</div><div class='ctx'>     }</div><div class='hunk'>@@ -2995,17 +3482,34 @@ encoded_iseq_trace_instrument(VALUE *iseq_encoded_insn, rb_event_flag_t turnon)</div><div class='ctx'> void</div><div class='ctx'> rb_iseq_trace_flag_cleared(const rb_iseq_t *iseq, size_t pos)</div><div class='ctx'> {</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     VALUE *iseq_encoded = (VALUE *)body-&gt;iseq_encoded;</div><div class='del'>-    encoded_iseq_trace_instrument(&amp;iseq_encoded[pos], 0);</div><div class='add'>+    encoded_iseq_trace_instrument(&amp;iseq_encoded[pos], 0, false);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+// We need to fire call events on instructions with b_call events if the block</div><div class='add'>+// is running as a method. So, if we are listening for call events, then</div><div class='add'>+// instructions that have b_call events need to become trace variants.</div><div class='add'>+// Use this function when making decisions about recompiling to trace variants.</div><div class='add'>+static inline rb_event_flag_t</div><div class='add'>+add_bmethod_events(rb_event_flag_t events)</div><div class='add'>+{</div><div class='add'>+    if (events &amp; RUBY_EVENT_CALL) {</div><div class='add'>+        events |= RUBY_EVENT_B_CALL;</div><div class='add'>+    }</div><div class='add'>+    if (events &amp; RUBY_EVENT_RETURN) {</div><div class='add'>+        events |= RUBY_EVENT_B_RETURN;</div><div class='add'>+    }</div><div class='add'>+    return events;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+// Note, to support call/return events for bmethods, turnon_event can have more events than tpval.</div><div class='ctx'> static int</div><div class='ctx'> iseq_add_local_tracepoint(const rb_iseq_t *iseq, rb_event_flag_t turnon_events, VALUE tpval, unsigned int target_line)</div><div class='ctx'> {</div><div class='ctx'>     unsigned int pc;</div><div class='ctx'>     int n = 0;</div><div class='del'>-    const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+    const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>     VALUE *iseq_encoded = (VALUE *)body-&gt;iseq_encoded;</div><div class='ctx'> </div><div class='ctx'>     VM_ASSERT(ISEQ_EXECUTABLE_P(iseq));</div><div class='hunk'>@@ -3026,12 +3530,13 @@ iseq_add_local_tracepoint(const rb_iseq_t *iseq, rb_event_flag_t turnon_events,</div><div class='ctx'>         if (pc_events &amp; target_events) {</div><div class='ctx'>             n++;</div><div class='ctx'>         }</div><div class='del'>-        pc += encoded_iseq_trace_instrument(&amp;iseq_encoded[pc], pc_events &amp; (target_events | iseq-&gt;aux.exec.global_trace_events));</div><div class='add'>+        pc += encoded_iseq_trace_instrument(&amp;iseq_encoded[pc], pc_events &amp; (target_events | iseq-&gt;aux.exec.global_trace_events), true);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (n &gt; 0) {</div><div class='ctx'>         if (iseq-&gt;aux.exec.local_hooks == NULL) {</div><div class='ctx'>             ((rb_iseq_t *)iseq)-&gt;aux.exec.local_hooks = RB_ZALLOC(rb_hook_list_t);</div><div class='add'>+            iseq-&gt;aux.exec.local_hooks-&gt;is_local = true;</div><div class='ctx'>         }</div><div class='ctx'>         rb_hook_list_connect_tracepoint((VALUE)iseq, iseq-&gt;aux.exec.local_hooks, tpval, target_line);</div><div class='ctx'>     }</div><div class='hunk'>@@ -3055,9 +3560,12 @@ iseq_add_local_tracepoint_i(const rb_iseq_t *iseq, void *p)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> int</div><div class='del'>-rb_iseq_add_local_tracepoint_recursively(const rb_iseq_t *iseq, rb_event_flag_t turnon_events, VALUE tpval, unsigned int target_line)</div><div class='add'>+rb_iseq_add_local_tracepoint_recursively(const rb_iseq_t *iseq, rb_event_flag_t turnon_events, VALUE tpval, unsigned int target_line, bool target_bmethod)</div><div class='ctx'> {</div><div class='ctx'>     struct trace_set_local_events_struct data;</div><div class='add'>+    if (target_bmethod) {</div><div class='add'>+        turnon_events = add_bmethod_events(turnon_events);</div><div class='add'>+    }</div><div class='ctx'>     data.turnon_events = turnon_events;</div><div class='ctx'>     data.tpval = tpval;</div><div class='ctx'>     data.target_line = target_line;</div><div class='hunk'>@@ -3075,7 +3583,7 @@ iseq_remove_local_tracepoint(const rb_iseq_t *iseq, VALUE tpval)</div><div class='ctx'> </div><div class='ctx'>     if (iseq-&gt;aux.exec.local_hooks) {</div><div class='ctx'>         unsigned int pc;</div><div class='del'>-        const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='add'>+        const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='ctx'>         VALUE *iseq_encoded = (VALUE *)body-&gt;iseq_encoded;</div><div class='ctx'>         rb_event_flag_t local_events = 0;</div><div class='ctx'> </div><div class='hunk'>@@ -3083,15 +3591,14 @@ iseq_remove_local_tracepoint(const rb_iseq_t *iseq, VALUE tpval)</div><div class='ctx'>         local_events = iseq-&gt;aux.exec.local_hooks-&gt;events;</div><div class='ctx'> </div><div class='ctx'>         if (local_events == 0) {</div><div class='del'>-            if (iseq-&gt;aux.exec.local_hooks-&gt;running == 0) {</div><div class='del'>-                rb_hook_list_free(iseq-&gt;aux.exec.local_hooks);</div><div class='del'>-            }</div><div class='add'>+            rb_hook_list_free(iseq-&gt;aux.exec.local_hooks);</div><div class='ctx'>             ((rb_iseq_t *)iseq)-&gt;aux.exec.local_hooks = NULL;</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='add'>+        local_events = add_bmethod_events(local_events);</div><div class='ctx'>         for (pc = 0; pc&lt;body-&gt;iseq_size;) {</div><div class='ctx'>             rb_event_flag_t pc_events = rb_iseq_event_flags(iseq, pc);</div><div class='del'>-            pc += encoded_iseq_trace_instrument(&amp;iseq_encoded[pc], pc_events &amp; (local_events | iseq-&gt;aux.exec.global_trace_events));</div><div class='add'>+            pc += encoded_iseq_trace_instrument(&amp;iseq_encoded[pc], pc_events &amp; (local_events | iseq-&gt;aux.exec.global_trace_events), false);</div><div class='ctx'>         }</div><div class='ctx'>     }</div><div class='ctx'>     return n;</div><div class='hunk'>@@ -3125,29 +3632,55 @@ void</div><div class='ctx'> rb_iseq_trace_set(const rb_iseq_t *iseq, rb_event_flag_t turnon_events)</div><div class='ctx'> {</div><div class='ctx'>     if (iseq-&gt;aux.exec.global_trace_events == turnon_events) {</div><div class='del'>-	return;</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     if (!ISEQ_EXECUTABLE_P(iseq)) {</div><div class='del'>-	/* this is building ISeq */</div><div class='del'>-	return;</div><div class='add'>+        /* this is building ISeq */</div><div class='add'>+        return;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'>         unsigned int pc;</div><div class='del'>-	const struct rb_iseq_constant_body *const body = iseq-&gt;body;</div><div class='del'>-	VALUE *iseq_encoded = (VALUE *)body-&gt;iseq_encoded;</div><div class='add'>+        const struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq);</div><div class='add'>+        VALUE *iseq_encoded = (VALUE *)body-&gt;iseq_encoded;</div><div class='ctx'>         rb_event_flag_t enabled_events;</div><div class='ctx'>         rb_event_flag_t local_events = iseq-&gt;aux.exec.local_hooks ? iseq-&gt;aux.exec.local_hooks-&gt;events : 0;</div><div class='ctx'>         ((rb_iseq_t *)iseq)-&gt;aux.exec.global_trace_events = turnon_events;</div><div class='del'>-        enabled_events = turnon_events | local_events;</div><div class='add'>+        enabled_events = add_bmethod_events(turnon_events | local_events);</div><div class='ctx'> </div><div class='ctx'>         for (pc=0; pc&lt;body-&gt;iseq_size;) {</div><div class='ctx'>             rb_event_flag_t pc_events = rb_iseq_event_flags(iseq, pc);</div><div class='del'>-            pc += encoded_iseq_trace_instrument(&amp;iseq_encoded[pc], pc_events &amp; enabled_events);</div><div class='del'>-	}</div><div class='add'>+            pc += encoded_iseq_trace_instrument(&amp;iseq_encoded[pc], pc_events &amp; enabled_events, true);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+bool rb_vm_call_ivar_attrset_p(const vm_call_handler ch);</div><div class='add'>+void rb_vm_cc_general(const struct rb_callcache *cc);</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+clear_attr_ccs_i(void *vstart, void *vend, size_t stride, void *data)</div><div class='add'>+{</div><div class='add'>+    VALUE v = (VALUE)vstart;</div><div class='add'>+    for (; v != (VALUE)vend; v += stride) {</div><div class='add'>+        void *ptr = asan_poisoned_object_p(v);</div><div class='add'>+        asan_unpoison_object(v, false);</div><div class='add'>+</div><div class='add'>+        if (imemo_type_p(v, imemo_callcache) &amp;&amp; rb_vm_call_ivar_attrset_p(((const struct rb_callcache *)v)-&gt;call_)) {</div><div class='add'>+            rb_vm_cc_general((struct rb_callcache *)v);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        asan_poison_object_if(ptr, v);</div><div class='add'>+    }</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_clear_attr_ccs(void)</div><div class='add'>+{</div><div class='add'>+    rb_objspace_each_objects(clear_attr_ccs_i, NULL);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static int</div><div class='ctx'> trace_set_i(void *vstart, void *vend, size_t stride, void *data)</div><div class='ctx'> {</div><div class='hunk'>@@ -3155,9 +3688,17 @@ trace_set_i(void *vstart, void *vend, size_t stride, void *data)</div><div class='ctx'> </div><div class='ctx'>     VALUE v = (VALUE)vstart;</div><div class='ctx'>     for (; v != (VALUE)vend; v += stride) {</div><div class='del'>-	if (rb_obj_is_iseq(v)) {</div><div class='del'>-	    rb_iseq_trace_set(rb_iseq_check((rb_iseq_t *)v), turnon_events);</div><div class='del'>-	}</div><div class='add'>+        void *ptr = asan_poisoned_object_p(v);</div><div class='add'>+        asan_unpoison_object(v, false);</div><div class='add'>+</div><div class='add'>+        if (rb_obj_is_iseq(v)) {</div><div class='add'>+            rb_iseq_trace_set(rb_iseq_check((rb_iseq_t *)v), turnon_events);</div><div class='add'>+        }</div><div class='add'>+        else if (imemo_type_p(v, imemo_callcache) &amp;&amp; rb_vm_call_ivar_attrset_p(((const struct rb_callcache *)v)-&gt;call_)) {</div><div class='add'>+            rb_vm_cc_general((struct rb_callcache *)v);</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        asan_poison_object_if(ptr, v);</div><div class='ctx'>     }</div><div class='ctx'>     return 0;</div><div class='ctx'> }</div><div class='hunk'>@@ -3168,14 +3709,6 @@ rb_iseq_trace_set_all(rb_event_flag_t turnon_events)</div><div class='ctx'>     rb_objspace_each_objects(trace_set_i, &amp;turnon_events);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* This is exported since Ruby 2.5 but not internally used for now. If you're going to use this, please</div><div class='del'>-   update `ruby_vm_event_enabled_global_flags` and set `mjit_call_p = FALSE` as well to cancel MJIT code. */</div><div class='del'>-void</div><div class='del'>-rb_iseq_trace_on_all(void)</div><div class='del'>-{</div><div class='del'>-    rb_iseq_trace_set_all(RUBY_EVENT_TRACEPOINT_ALL);</div><div class='del'>-}</div><div class='del'>-</div><div class='ctx'> VALUE</div><div class='ctx'> rb_iseqw_local_variables(VALUE iseqval)</div><div class='ctx'> {</div><div class='hunk'>@@ -3263,7 +3796,7 @@ iseqw_s_load_from_binary_extra_data(VALUE self, VALUE str)</div><div class='ctx'>  * To lookup the lineno of insn4, calculate rank("10100001", 8) = 3, so</div><div class='ctx'>  * the line (B) is the entry in question.</div><div class='ctx'>  *</div><div class='del'>- * A naive implementatoin of succinct bit-vector works really well</div><div class='add'>+ * A naive implementation of succinct bit-vector works really well</div><div class='ctx'>  * not only for large size but also for small size.  However, it has</div><div class='ctx'>  * tiny overhead for very small size.  So, this implementation consist</div><div class='ctx'>  * of two parts: one part is the "immediate" table that keeps rank result</div><div class='hunk'>@@ -3275,9 +3808,9 @@ iseqw_s_load_from_binary_extra_data(VALUE self, VALUE str)</div><div class='ctx'> struct succ_index_table {</div><div class='ctx'>     uint64_t imm_part[IMMEDIATE_TABLE_SIZE / 9];</div><div class='ctx'>     struct succ_dict_block {</div><div class='del'>-	unsigned int rank;</div><div class='del'>-	uint64_t small_block_ranks; /* 9 bits * 7 = 63 bits */</div><div class='del'>-	uint64_t bits[512/64];</div><div class='add'>+        unsigned int rank;</div><div class='add'>+        uint64_t small_block_ranks; /* 9 bits * 7 = 63 bits */</div><div class='add'>+        uint64_t bits[512/64];</div><div class='ctx'>     } succ_part[FLEX_ARY_LEN];</div><div class='ctx'> };</div><div class='ctx'> </div><div class='hunk'>@@ -3291,32 +3824,35 @@ succ_index_table_create(int max_pos, int *data, int size)</div><div class='ctx'> {</div><div class='ctx'>     const int imm_size = (max_pos &lt; IMMEDIATE_TABLE_SIZE ? max_pos + 8 : IMMEDIATE_TABLE_SIZE) / 9;</div><div class='ctx'>     const int succ_size = (max_pos &lt; IMMEDIATE_TABLE_SIZE ? 0 : (max_pos - IMMEDIATE_TABLE_SIZE + 511)) / 512;</div><div class='del'>-    struct succ_index_table *sd = ruby_xcalloc(imm_size * sizeof(uint64_t) + succ_size * sizeof(struct succ_dict_block), 1); /* zero cleared */</div><div class='add'>+    struct succ_index_table *sd =</div><div class='add'>+        rb_xcalloc_mul_add_mul(</div><div class='add'>+            imm_size, sizeof(uint64_t),</div><div class='add'>+            succ_size, sizeof(struct succ_dict_block));</div><div class='ctx'>     int i, j, k, r;</div><div class='ctx'> </div><div class='ctx'>     r = 0;</div><div class='ctx'>     for (j = 0; j &lt; imm_size; j++) {</div><div class='del'>-	for (i = 0; i &lt; 9; i++) {</div><div class='del'>-	    if (r &lt; size &amp;&amp; data[r] == j * 9 + i) r++;</div><div class='del'>-	    imm_block_rank_set(sd-&gt;imm_part[j], i, r);</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; 9; i++) {</div><div class='add'>+            if (r &lt; size &amp;&amp; data[r] == j * 9 + i) r++;</div><div class='add'>+            imm_block_rank_set(sd-&gt;imm_part[j], i, r);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     for (k = 0; k &lt; succ_size; k++) {</div><div class='del'>-	struct succ_dict_block *sd_block = &amp;sd-&gt;succ_part[k];</div><div class='del'>-	int small_rank = 0;</div><div class='del'>-	sd_block-&gt;rank = r;</div><div class='del'>-	for (j = 0; j &lt; 8; j++) {</div><div class='del'>-	    uint64_t bits = 0;</div><div class='del'>-	    if (j) small_block_rank_set(sd_block-&gt;small_block_ranks, j, small_rank);</div><div class='del'>-	    for (i = 0; i &lt; 64; i++) {</div><div class='del'>-		if (r &lt; size &amp;&amp; data[r] == k * 512 + j * 64 + i + IMMEDIATE_TABLE_SIZE) {</div><div class='del'>-		    bits |= ((uint64_t)1) &lt;&lt; i;</div><div class='del'>-		    r++;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	    sd_block-&gt;bits[j] = bits;</div><div class='del'>-	    small_rank += rb_popcount64(bits);</div><div class='del'>-	}</div><div class='add'>+        struct succ_dict_block *sd_block = &amp;sd-&gt;succ_part[k];</div><div class='add'>+        int small_rank = 0;</div><div class='add'>+        sd_block-&gt;rank = r;</div><div class='add'>+        for (j = 0; j &lt; 8; j++) {</div><div class='add'>+            uint64_t bits = 0;</div><div class='add'>+            if (j) small_block_rank_set(sd_block-&gt;small_block_ranks, j, small_rank);</div><div class='add'>+            for (i = 0; i &lt; 64; i++) {</div><div class='add'>+                if (r &lt; size &amp;&amp; data[r] == k * 512 + j * 64 + i + IMMEDIATE_TABLE_SIZE) {</div><div class='add'>+                    bits |= ((uint64_t)1) &lt;&lt; i;</div><div class='add'>+                    r++;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+            sd_block-&gt;bits[j] = bits;</div><div class='add'>+            small_rank += rb_popcount64(bits);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return sd;</div><div class='ctx'> }</div><div class='hunk'>@@ -3326,24 +3862,24 @@ succ_index_table_invert(int max_pos, struct succ_index_table *sd, int size)</div><div class='ctx'> {</div><div class='ctx'>     const int imm_size = (max_pos &lt; IMMEDIATE_TABLE_SIZE ? max_pos + 8 : IMMEDIATE_TABLE_SIZE) / 9;</div><div class='ctx'>     const int succ_size = (max_pos &lt; IMMEDIATE_TABLE_SIZE ? 0 : (max_pos - IMMEDIATE_TABLE_SIZE + 511)) / 512;</div><div class='del'>-    unsigned int *positions = ruby_xmalloc(sizeof(unsigned int) * size), *p;</div><div class='add'>+    unsigned int *positions = ALLOC_N(unsigned int, size), *p;</div><div class='ctx'>     int i, j, k, r = -1;</div><div class='ctx'>     p = positions;</div><div class='ctx'>     for (j = 0; j &lt; imm_size; j++) {</div><div class='del'>-	for (i = 0; i &lt; 9; i++) {</div><div class='del'>-	    int nr = imm_block_rank_get(sd-&gt;imm_part[j], i);</div><div class='del'>-	    if (r != nr) *p++ = j * 9 + i;</div><div class='del'>-	    r = nr;</div><div class='del'>-	}</div><div class='add'>+        for (i = 0; i &lt; 9; i++) {</div><div class='add'>+            int nr = imm_block_rank_get(sd-&gt;imm_part[j], i);</div><div class='add'>+            if (r != nr) *p++ = j * 9 + i;</div><div class='add'>+            r = nr;</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     for (k = 0; k &lt; succ_size; k++) {</div><div class='del'>-	for (j = 0; j &lt; 8; j++) {</div><div class='del'>-	    for (i = 0; i &lt; 64; i++) {</div><div class='del'>-		if (sd-&gt;succ_part[k].bits[j] &amp; (((uint64_t)1) &lt;&lt; i)) {</div><div class='del'>-		    *p++ = k * 512 + j * 64 + i + IMMEDIATE_TABLE_SIZE;</div><div class='del'>-		}</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+        for (j = 0; j &lt; 8; j++) {</div><div class='add'>+            for (i = 0; i &lt; 64; i++) {</div><div class='add'>+                if (sd-&gt;succ_part[k].bits[j] &amp; (((uint64_t)1) &lt;&lt; i)) {</div><div class='add'>+                    *p++ = k * 512 + j * 64 + i + IMMEDIATE_TABLE_SIZE;</div><div class='add'>+                }</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'>     return positions;</div><div class='ctx'> }</div><div class='hunk'>@@ -3352,33 +3888,55 @@ static int</div><div class='ctx'> succ_index_lookup(const struct succ_index_table *sd, int x)</div><div class='ctx'> {</div><div class='ctx'>     if (x &lt; IMMEDIATE_TABLE_SIZE) {</div><div class='del'>-	const int i = x / 9;</div><div class='del'>-	const int j = x % 9;</div><div class='del'>-	return imm_block_rank_get(sd-&gt;imm_part[i], j);</div><div class='add'>+        const int i = x / 9;</div><div class='add'>+        const int j = x % 9;</div><div class='add'>+        return imm_block_rank_get(sd-&gt;imm_part[i], j);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	const int block_index = (x - IMMEDIATE_TABLE_SIZE) / 512;</div><div class='del'>-	const struct succ_dict_block *block = &amp;sd-&gt;succ_part[block_index];</div><div class='del'>-	const int block_bit_index = (x - IMMEDIATE_TABLE_SIZE) % 512;</div><div class='del'>-	const int small_block_index = block_bit_index / 64;</div><div class='del'>-	const int small_block_popcount = small_block_rank_get(block-&gt;small_block_ranks, small_block_index);</div><div class='del'>-	const int popcnt = rb_popcount64(block-&gt;bits[small_block_index] &lt;&lt; (63 - block_bit_index % 64));</div><div class='add'>+        const int block_index = (x - IMMEDIATE_TABLE_SIZE) / 512;</div><div class='add'>+        const struct succ_dict_block *block = &amp;sd-&gt;succ_part[block_index];</div><div class='add'>+        const int block_bit_index = (x - IMMEDIATE_TABLE_SIZE) % 512;</div><div class='add'>+        const int small_block_index = block_bit_index / 64;</div><div class='add'>+        const int small_block_popcount = small_block_rank_get(block-&gt;small_block_ranks, small_block_index);</div><div class='add'>+        const int popcnt = rb_popcount64(block-&gt;bits[small_block_index] &lt;&lt; (63 - block_bit_index % 64));</div><div class='ctx'> </div><div class='del'>-	return block-&gt;rank + small_block_popcount + popcnt;</div><div class='add'>+        return block-&gt;rank + small_block_popcount + popcnt;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     iseq.script_lines -&gt; array or nil</div><div class='add'>+ *</div><div class='add'>+ *  It returns recorded script lines if it is availalble.</div><div class='add'>+ *  The script lines are not limited to the iseq range, but</div><div class='add'>+ *  are entire lines of the source file.</div><div class='add'>+ *</div><div class='add'>+ *  Note that this is an API for ruby internal use, debugging,</div><div class='add'>+ *  and research. Do not use this for any other purpose.</div><div class='add'>+ *  The compatibility is not guaranteed.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+iseqw_script_lines(VALUE self)</div><div class='add'>+{</div><div class='add'>+    const rb_iseq_t *iseq = iseqw_check(self);</div><div class='add'>+    return ISEQ_BODY(iseq)-&gt;variable.script_lines;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> /*</div><div class='ctx'>  *  Document-class: RubyVM::InstructionSequence</div><div class='ctx'>  *</div><div class='ctx'>  *  The InstructionSequence class represents a compiled sequence of</div><div class='del'>- *  instructions for the Ruby Virtual Machine.</div><div class='add'>+ *  instructions for the Virtual Machine used in MRI. Not all implementations of Ruby</div><div class='add'>+ *  may implement this class, and for the implementations that implement it,</div><div class='add'>+ *  the methods defined and behavior of the methods can change in any version.</div><div class='ctx'>  *</div><div class='ctx'>  *  With it, you can get a handle to the instructions that make up a method or</div><div class='ctx'>  *  a proc, compile strings of Ruby code down to VM instructions, and</div><div class='ctx'>  *  disassemble instruction sequences to strings for easy inspection. It is</div><div class='del'>- *  mostly useful if you want to learn how the Ruby VM works, but it also lets</div><div class='add'>+ *  mostly useful if you want to learn how YARV works, but it also lets</div><div class='ctx'>  *  you control various settings for the Ruby iseq compiler.</div><div class='ctx'>  *</div><div class='ctx'>  *  You can find the source for the VM instructions in +insns.def+ in the Ruby</div><div class='hunk'>@@ -3387,6 +3945,8 @@ succ_index_lookup(const struct succ_index_table *sd, int x)</div><div class='ctx'>  *  The instruction sequence results will almost certainly change as Ruby</div><div class='ctx'>  *  changes, so example output in this documentation may be different from what</div><div class='ctx'>  *  you see.</div><div class='add'>+ *</div><div class='add'>+ *  Of course, this class is MRI specific.</div><div class='ctx'>  */</div><div class='ctx'> </div><div class='ctx'> void</div><div class='hunk'>@@ -3405,7 +3965,6 @@ Init_ISeq(void)</div><div class='ctx'>     rb_define_singleton_method(rb_cISeq, "load_from_binary", iseqw_s_load_from_binary, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cISeq, "load_from_binary_extra_data", iseqw_s_load_from_binary_extra_data, 1);</div><div class='ctx'> </div><div class='del'>-</div><div class='ctx'>     /* location APIs */</div><div class='ctx'>     rb_define_method(rb_cISeq, "path", iseqw_path, 0);</div><div class='ctx'>     rb_define_method(rb_cISeq, "absolute_path", iseqw_absolute_path, 0);</div><div class='hunk'>@@ -3432,6 +3991,9 @@ Init_ISeq(void)</div><div class='ctx'>     rb_define_singleton_method(rb_cISeq, "disassemble", iseqw_s_disasm, 1);</div><div class='ctx'>     rb_define_singleton_method(rb_cISeq, "of", iseqw_s_of, 1);</div><div class='ctx'> </div><div class='add'>+    // script lines</div><div class='add'>+    rb_define_method(rb_cISeq, "script_lines", iseqw_script_lines, 0);</div><div class='add'>+</div><div class='ctx'>     rb_undef_method(CLASS_OF(rb_cISeq), "translate");</div><div class='ctx'>     rb_undef_method(CLASS_OF(rb_cISeq), "load_iseq");</div><div class='ctx'> }</div><div class='head'>diff --git a/iseq.h b/iseq.h<br/>index f3f269b572..2f83e7336d 100644<br/>--- a/<a href='/ruby.git/tree/iseq.h?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>iseq.h</a><br/>+++ b/<a href='/ruby.git/tree/iseq.h?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>iseq.h</a></div><div class='hunk'>@@ -1,3 +1,5 @@</div><div class='add'>+#ifndef RUBY_ISEQ_H</div><div class='add'>+#define RUBY_ISEQ_H 1</div><div class='ctx'> /**********************************************************************</div><div class='ctx'> </div><div class='ctx'>   iseq.h -</div><div class='hunk'>@@ -8,54 +10,60 @@</div><div class='ctx'>   Copyright (C) 2004-2008 Koichi Sasada</div><div class='ctx'> </div><div class='ctx'> **********************************************************************/</div><div class='del'>-</div><div class='del'>-#ifndef RUBY_ISEQ_H</div><div class='del'>-#define RUBY_ISEQ_H 1</div><div class='add'>+#include "internal/gc.h"</div><div class='add'>+#include "vm_core.h"</div><div class='ctx'> </div><div class='ctx'> RUBY_EXTERN const int ruby_api_version[];</div><div class='ctx'> #define ISEQ_MAJOR_VERSION ((unsigned int)ruby_api_version[0])</div><div class='ctx'> #define ISEQ_MINOR_VERSION ((unsigned int)ruby_api_version[1])</div><div class='ctx'> </div><div class='add'>+#define ISEQ_MBITS_SIZE sizeof(iseq_bits_t)</div><div class='add'>+#define ISEQ_MBITS_BITLENGTH (ISEQ_MBITS_SIZE * CHAR_BIT)</div><div class='add'>+#define ISEQ_MBITS_SET(buf, i) (buf[(i) / ISEQ_MBITS_BITLENGTH] |= ((iseq_bits_t)1 &lt;&lt; ((i) % ISEQ_MBITS_BITLENGTH)))</div><div class='add'>+#define ISEQ_MBITS_SET_P(buf, i) ((buf[(i) / ISEQ_MBITS_BITLENGTH] &gt;&gt; ((i) % ISEQ_MBITS_BITLENGTH)) &amp; 0x1)</div><div class='add'>+#define ISEQ_MBITS_BUFLEN(size) roomof(size, ISEQ_MBITS_BITLENGTH)</div><div class='add'>+</div><div class='add'>+#ifndef USE_ISEQ_NODE_ID</div><div class='add'>+#define USE_ISEQ_NODE_ID 1</div><div class='add'>+#endif</div><div class='add'>+</div><div class='ctx'> #ifndef rb_iseq_t</div><div class='ctx'> typedef struct rb_iseq_struct rb_iseq_t;</div><div class='ctx'> #define rb_iseq_t rb_iseq_t</div><div class='ctx'> #endif</div><div class='add'>+typedef void (*rb_iseq_callback)(const rb_iseq_t *, void *);</div><div class='ctx'> </div><div class='del'>-static inline size_t</div><div class='del'>-rb_call_info_kw_arg_bytes(int keyword_len)</div><div class='del'>-{</div><div class='del'>-    return sizeof(struct rb_call_info_kw_arg) + sizeof(VALUE) * (keyword_len - 1);</div><div class='del'>-}</div><div class='add'>+extern const ID rb_iseq_shared_exc_local_tbl[];</div><div class='ctx'> </div><div class='del'>-#define ISEQ_COVERAGE(iseq)           iseq-&gt;body-&gt;variable.coverage</div><div class='del'>-#define ISEQ_COVERAGE_SET(iseq, cov)  RB_OBJ_WRITE(iseq, &amp;iseq-&gt;body-&gt;variable.coverage, cov)</div><div class='add'>+#define ISEQ_COVERAGE(iseq)           ISEQ_BODY(iseq)-&gt;variable.coverage</div><div class='add'>+#define ISEQ_COVERAGE_SET(iseq, cov)  RB_OBJ_WRITE(iseq, &amp;ISEQ_BODY(iseq)-&gt;variable.coverage, cov)</div><div class='ctx'> #define ISEQ_LINE_COVERAGE(iseq)      RARRAY_AREF(ISEQ_COVERAGE(iseq), COVERAGE_INDEX_LINES)</div><div class='ctx'> #define ISEQ_BRANCH_COVERAGE(iseq)    RARRAY_AREF(ISEQ_COVERAGE(iseq), COVERAGE_INDEX_BRANCHES)</div><div class='ctx'> </div><div class='del'>-#define ISEQ_PC2BRANCHINDEX(iseq)         iseq-&gt;body-&gt;variable.pc2branchindex</div><div class='del'>-#define ISEQ_PC2BRANCHINDEX_SET(iseq, h)  RB_OBJ_WRITE(iseq, &amp;iseq-&gt;body-&gt;variable.pc2branchindex, h)</div><div class='add'>+#define ISEQ_PC2BRANCHINDEX(iseq)         ISEQ_BODY(iseq)-&gt;variable.pc2branchindex</div><div class='add'>+#define ISEQ_PC2BRANCHINDEX_SET(iseq, h)  RB_OBJ_WRITE(iseq, &amp;ISEQ_BODY(iseq)-&gt;variable.pc2branchindex, h)</div><div class='ctx'> </div><div class='del'>-#define ISEQ_FLIP_CNT(iseq) (iseq)-&gt;body-&gt;variable.flip_count</div><div class='add'>+#define ISEQ_FLIP_CNT(iseq) ISEQ_BODY(iseq)-&gt;variable.flip_count</div><div class='ctx'> </div><div class='ctx'> static inline rb_snum_t</div><div class='ctx'> ISEQ_FLIP_CNT_INCREMENT(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    rb_snum_t cnt = iseq-&gt;body-&gt;variable.flip_count;</div><div class='del'>-    iseq-&gt;body-&gt;variable.flip_count += 1;</div><div class='add'>+    rb_snum_t cnt = ISEQ_BODY(iseq)-&gt;variable.flip_count;</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;variable.flip_count += 1;</div><div class='ctx'>     return cnt;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline VALUE *</div><div class='ctx'> ISEQ_ORIGINAL_ISEQ(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    return iseq-&gt;body-&gt;variable.original_iseq;</div><div class='add'>+    return ISEQ_BODY(iseq)-&gt;variable.original_iseq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static inline void</div><div class='ctx'> ISEQ_ORIGINAL_ISEQ_CLEAR(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='del'>-    void *ptr = iseq-&gt;body-&gt;variable.original_iseq;</div><div class='del'>-    iseq-&gt;body-&gt;variable.original_iseq = NULL;</div><div class='add'>+    void *ptr = ISEQ_BODY(iseq)-&gt;variable.original_iseq;</div><div class='add'>+    ISEQ_BODY(iseq)-&gt;variable.original_iseq = NULL;</div><div class='ctx'>     if (ptr) {</div><div class='ctx'>         ruby_xfree(ptr);</div><div class='ctx'>     }</div><div class='hunk'>@@ -64,31 +72,31 @@ ISEQ_ORIGINAL_ISEQ_CLEAR(const rb_iseq_t *iseq)</div><div class='ctx'> static inline VALUE *</div><div class='ctx'> ISEQ_ORIGINAL_ISEQ_ALLOC(const rb_iseq_t *iseq, long size)</div><div class='ctx'> {</div><div class='del'>-    return iseq-&gt;body-&gt;variable.original_iseq =</div><div class='del'>-        ruby_xmalloc2(size, sizeof(VALUE));</div><div class='add'>+    return ISEQ_BODY(iseq)-&gt;variable.original_iseq =</div><div class='add'>+        ALLOC_N(VALUE, size);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define ISEQ_TRACE_EVENTS (RUBY_EVENT_LINE  | \</div><div class='del'>-			   RUBY_EVENT_CLASS | \</div><div class='del'>-			   RUBY_EVENT_END   | \</div><div class='del'>-			   RUBY_EVENT_CALL  | \</div><div class='del'>-			   RUBY_EVENT_RETURN| \</div><div class='del'>-			   RUBY_EVENT_B_CALL| \</div><div class='del'>-			   RUBY_EVENT_B_RETURN| \</div><div class='add'>+                           RUBY_EVENT_CLASS | \</div><div class='add'>+                           RUBY_EVENT_END   | \</div><div class='add'>+                           RUBY_EVENT_CALL  | \</div><div class='add'>+                           RUBY_EVENT_RETURN| \</div><div class='add'>+                           RUBY_EVENT_C_CALL| \</div><div class='add'>+                           RUBY_EVENT_C_RETURN| \</div><div class='add'>+                           RUBY_EVENT_B_CALL| \</div><div class='add'>+                           RUBY_EVENT_B_RETURN| \</div><div class='ctx'>                            RUBY_EVENT_COVERAGE_LINE| \</div><div class='ctx'>                            RUBY_EVENT_COVERAGE_BRANCH)</div><div class='ctx'> </div><div class='ctx'> #define ISEQ_NOT_LOADED_YET   IMEMO_FL_USER1</div><div class='ctx'> #define ISEQ_USE_COMPILE_DATA IMEMO_FL_USER2</div><div class='ctx'> #define ISEQ_TRANSLATED       IMEMO_FL_USER3</div><div class='del'>-#define ISEQ_MARKABLE_ISEQ    IMEMO_FL_USER4</div><div class='ctx'> </div><div class='del'>-#define ISEQ_EXECUTABLE_P(iseq) (FL_TEST_RAW((iseq), ISEQ_NOT_LOADED_YET | ISEQ_USE_COMPILE_DATA) == 0)</div><div class='add'>+#define ISEQ_EXECUTABLE_P(iseq) (FL_TEST_RAW(((VALUE)iseq), ISEQ_NOT_LOADED_YET | ISEQ_USE_COMPILE_DATA) == 0)</div><div class='ctx'> </div><div class='ctx'> struct iseq_compile_data {</div><div class='ctx'>     /* GC is needed */</div><div class='ctx'>     const VALUE err_info;</div><div class='del'>-    VALUE mark_ary;</div><div class='ctx'>     const VALUE catch_table_ary;	/* Array */</div><div class='ctx'> </div><div class='ctx'>     /* GC is not needed */</div><div class='hunk'>@@ -96,20 +104,29 @@ struct iseq_compile_data {</div><div class='ctx'>     struct iseq_label_data *end_label;</div><div class='ctx'>     struct iseq_label_data *redo_label;</div><div class='ctx'>     const rb_iseq_t *current_block;</div><div class='del'>-    VALUE ensure_node;</div><div class='del'>-    VALUE for_iseq;</div><div class='ctx'>     struct iseq_compile_data_ensure_node_stack *ensure_node_stack;</div><div class='del'>-    struct iseq_compile_data_storage *storage_head;</div><div class='del'>-    struct iseq_compile_data_storage *storage_current;</div><div class='add'>+    struct {</div><div class='add'>+      struct iseq_compile_data_storage *storage_head;</div><div class='add'>+      struct iseq_compile_data_storage *storage_current;</div><div class='add'>+    } node;</div><div class='add'>+    struct {</div><div class='add'>+      struct iseq_compile_data_storage *storage_head;</div><div class='add'>+      struct iseq_compile_data_storage *storage_current;</div><div class='add'>+    } insn;</div><div class='add'>+    bool in_rescue;</div><div class='add'>+    bool in_masgn;</div><div class='ctx'>     int loopval_popped;	/* used by NODE_BREAK */</div><div class='ctx'>     int last_line;</div><div class='ctx'>     int label_no;</div><div class='ctx'>     int node_level;</div><div class='add'>+    int isolated_depth;</div><div class='ctx'>     unsigned int ci_index;</div><div class='del'>-    unsigned int ci_kw_index;</div><div class='add'>+    unsigned int ic_index;</div><div class='ctx'>     const rb_compile_option_t *option;</div><div class='ctx'>     struct rb_id_table *ivar_cache_table;</div><div class='del'>-#if SUPPORT_JOKE</div><div class='add'>+    const struct rb_builtin_function *builtin_function_table;</div><div class='add'>+    const NODE *root_node;</div><div class='add'>+#if OPT_SUPPORT_JOKE</div><div class='ctx'>     st_table *labels_table;</div><div class='ctx'> #endif</div><div class='ctx'> };</div><div class='hunk'>@@ -118,10 +135,10 @@ static inline struct iseq_compile_data *</div><div class='ctx'> ISEQ_COMPILE_DATA(const rb_iseq_t *iseq)</div><div class='ctx'> {</div><div class='ctx'>     if (iseq-&gt;flags &amp; ISEQ_USE_COMPILE_DATA) {</div><div class='del'>-	return iseq-&gt;aux.compile_data;</div><div class='add'>+        return iseq-&gt;aux.compile_data;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	return NULL;</div><div class='add'>+        return NULL;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='hunk'>@@ -148,9 +165,10 @@ iseq_imemo_alloc(void)</div><div class='ctx'> VALUE rb_iseq_ibf_dump(const rb_iseq_t *iseq, VALUE opt);</div><div class='ctx'> void rb_ibf_load_iseq_complete(rb_iseq_t *iseq);</div><div class='ctx'> const rb_iseq_t *rb_iseq_ibf_load(VALUE str);</div><div class='add'>+const rb_iseq_t *rb_iseq_ibf_load_bytes(const char *cstr, size_t);</div><div class='ctx'> VALUE rb_iseq_ibf_load_extra_data(VALUE str);</div><div class='ctx'> void rb_iseq_init_trace(rb_iseq_t *iseq);</div><div class='del'>-int rb_iseq_add_local_tracepoint_recursively(const rb_iseq_t *iseq, rb_event_flag_t turnon_events, VALUE tpval, unsigned int target_line);</div><div class='add'>+int rb_iseq_add_local_tracepoint_recursively(const rb_iseq_t *iseq, rb_event_flag_t turnon_events, VALUE tpval, unsigned int target_line, bool target_bmethod);</div><div class='ctx'> int rb_iseq_remove_local_tracepoint_recursively(const rb_iseq_t *iseq, VALUE tpval);</div><div class='ctx'> const rb_iseq_t *rb_iseq_load_iseq(VALUE fname);</div><div class='ctx'> </div><div class='hunk'>@@ -158,31 +176,36 @@ const rb_iseq_t *rb_iseq_load_iseq(VALUE fname);</div><div class='ctx'> unsigned int *rb_iseq_insns_info_decode_positions(const struct rb_iseq_constant_body *body);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+int rb_vm_insn_addr2opcode(const void *addr);</div><div class='add'>+</div><div class='ctx'> RUBY_SYMBOL_EXPORT_BEGIN</div><div class='ctx'> </div><div class='ctx'> /* compile.c */</div><div class='ctx'> VALUE rb_iseq_compile_node(rb_iseq_t *iseq, const NODE *node);</div><div class='del'>-VALUE rb_iseq_compile_ifunc(rb_iseq_t *iseq, const struct vm_ifunc *ifunc);</div><div class='del'>-int rb_iseq_translate_threaded_code(rb_iseq_t *iseq);</div><div class='add'>+VALUE rb_iseq_compile_callback(rb_iseq_t *iseq, const struct rb_iseq_new_with_callback_callback_func * ifunc);</div><div class='ctx'> VALUE *rb_iseq_original_iseq(const rb_iseq_t *iseq);</div><div class='ctx'> void rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc,</div><div class='del'>-			    VALUE locals, VALUE args,</div><div class='del'>-			    VALUE exception, VALUE body);</div><div class='add'>+                            VALUE locals, VALUE args,</div><div class='add'>+                            VALUE exception, VALUE body);</div><div class='add'>+void rb_iseq_mark_insn_storage(struct iseq_compile_data_storage *arena);</div><div class='ctx'> </div><div class='del'>-/* iseq.c */</div><div class='ctx'> VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt);</div><div class='ctx'> VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc);</div><div class='del'>-struct st_table *ruby_insn_make_insn_table(void);</div><div class='ctx'> unsigned int rb_iseq_line_no(const rb_iseq_t *iseq, size_t pos);</div><div class='add'>+#ifdef USE_ISEQ_NODE_ID</div><div class='add'>+int rb_iseq_node_id(const rb_iseq_t *iseq, size_t pos);</div><div class='add'>+#endif</div><div class='ctx'> void rb_iseq_trace_set(const rb_iseq_t *iseq, rb_event_flag_t turnon_events);</div><div class='ctx'> void rb_iseq_trace_set_all(rb_event_flag_t turnon_events);</div><div class='del'>-void rb_iseq_trace_on_all(void);</div><div class='ctx'> void rb_iseq_insns_info_encode_positions(const rb_iseq_t *iseq);</div><div class='ctx'> </div><div class='add'>+struct rb_iseq_constant_body *rb_iseq_constant_body_alloc(void);</div><div class='ctx'> VALUE rb_iseqw_new(const rb_iseq_t *iseq);</div><div class='ctx'> const rb_iseq_t *rb_iseqw_to_iseq(VALUE iseqw);</div><div class='ctx'> </div><div class='ctx'> VALUE rb_iseq_absolute_path(const rb_iseq_t *iseq); /* obsolete */</div><div class='add'>+int rb_iseq_from_eval_p(const rb_iseq_t *iseq);</div><div class='add'>+VALUE rb_iseq_type(const rb_iseq_t *iseq);</div><div class='ctx'> VALUE rb_iseq_label(const rb_iseq_t *iseq);</div><div class='ctx'> VALUE rb_iseq_base_label(const rb_iseq_t *iseq);</div><div class='ctx'> VALUE rb_iseq_first_lineno(const rb_iseq_t *iseq);</div><div class='hunk'>@@ -211,32 +234,36 @@ struct rb_compile_option_struct {</div><div class='ctx'> </div><div class='ctx'> struct iseq_insn_info_entry {</div><div class='ctx'>     int line_no;</div><div class='add'>+#ifdef USE_ISEQ_NODE_ID</div><div class='add'>+    int node_id;</div><div class='add'>+#endif</div><div class='ctx'>     rb_event_flag_t events;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * iseq type:</div><div class='add'>+ *   CATCH_TYPE_RESCUE, CATCH_TYPE_ENSURE:</div><div class='add'>+ *     use iseq as continuation.</div><div class='add'>+ *</div><div class='add'>+ *   CATCH_TYPE_BREAK (iter):</div><div class='add'>+ *     use iseq as key.</div><div class='add'>+ *</div><div class='add'>+ *   CATCH_TYPE_BREAK (while), CATCH_TYPE_RETRY,</div><div class='add'>+ *   CATCH_TYPE_REDO, CATCH_TYPE_NEXT:</div><div class='add'>+ *     NULL.</div><div class='add'>+ */</div><div class='add'>+enum rb_catch_type {</div><div class='add'>+    CATCH_TYPE_RESCUE = INT2FIX(1),</div><div class='add'>+    CATCH_TYPE_ENSURE = INT2FIX(2),</div><div class='add'>+    CATCH_TYPE_RETRY  = INT2FIX(3),</div><div class='add'>+    CATCH_TYPE_BREAK  = INT2FIX(4),</div><div class='add'>+    CATCH_TYPE_REDO   = INT2FIX(5),</div><div class='add'>+    CATCH_TYPE_NEXT   = INT2FIX(6)</div><div class='add'>+};</div><div class='add'>+</div><div class='ctx'> struct iseq_catch_table_entry {</div><div class='del'>-    enum catch_type {</div><div class='del'>-	CATCH_TYPE_RESCUE = INT2FIX(1),</div><div class='del'>-	CATCH_TYPE_ENSURE = INT2FIX(2),</div><div class='del'>-	CATCH_TYPE_RETRY  = INT2FIX(3),</div><div class='del'>-	CATCH_TYPE_BREAK  = INT2FIX(4),</div><div class='del'>-	CATCH_TYPE_REDO   = INT2FIX(5),</div><div class='del'>-	CATCH_TYPE_NEXT   = INT2FIX(6)</div><div class='del'>-    } type;</div><div class='del'>-</div><div class='del'>-    /*</div><div class='del'>-     * iseq type:</div><div class='del'>-     *   CATCH_TYPE_RESCUE, CATCH_TYPE_ENSURE:</div><div class='del'>-     *     use iseq as continuation.</div><div class='del'>-     *</div><div class='del'>-     *   CATCH_TYPE_BREAK (iter):</div><div class='del'>-     *     use iseq as key.</div><div class='del'>-     *</div><div class='del'>-     *   CATCH_TYPE_BREAK (while), CATCH_TYPE_RETRY,</div><div class='del'>-     *   CATCH_TYPE_REDO, CATCH_TYPE_NEXT:</div><div class='del'>-     *     NULL.</div><div class='del'>-     */</div><div class='del'>-    const rb_iseq_t *iseq;</div><div class='add'>+    enum rb_catch_type type;</div><div class='add'>+    rb_iseq_t *iseq;</div><div class='ctx'> </div><div class='ctx'>     unsigned int start;</div><div class='ctx'>     unsigned int end;</div><div class='hunk'>@@ -253,12 +280,12 @@ static inline int</div><div class='ctx'> iseq_catch_table_bytes(int n)</div><div class='ctx'> {</div><div class='ctx'>     enum {</div><div class='del'>-	catch_table_entry_size = sizeof(struct iseq_catch_table_entry),</div><div class='del'>-	catch_table_entries_max = (INT_MAX - offsetof(struct iseq_catch_table, entries)) / catch_table_entry_size</div><div class='add'>+        catch_table_entry_size = sizeof(struct iseq_catch_table_entry),</div><div class='add'>+        catch_table_entries_max = (INT_MAX - offsetof(struct iseq_catch_table, entries)) / catch_table_entry_size</div><div class='ctx'>     };</div><div class='ctx'>     if (n &gt; catch_table_entries_max) rb_fatal("too large iseq_catch_table - %d", n);</div><div class='ctx'>     return (int)(offsetof(struct iseq_catch_table, entries) +</div><div class='del'>-		 n * catch_table_entry_size);</div><div class='add'>+                 n * catch_table_entry_size);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> #define INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE (512)</div><div class='hunk'>@@ -288,13 +315,12 @@ enum defined_type {</div><div class='ctx'>     DEFINED_FALSE,</div><div class='ctx'>     DEFINED_ASGN,</div><div class='ctx'>     DEFINED_EXPR,</div><div class='del'>-    DEFINED_IVAR2,</div><div class='ctx'>     DEFINED_REF,</div><div class='del'>-    DEFINED_FUNC</div><div class='add'>+    DEFINED_FUNC,</div><div class='add'>+    DEFINED_CONST_FROM</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> VALUE rb_iseq_defined_string(enum defined_type type);</div><div class='del'>-void rb_iseq_make_compile_option(struct rb_compile_option_struct *option, VALUE opt);</div><div class='ctx'> </div><div class='ctx'> /* vm.c */</div><div class='ctx'> VALUE rb_iseq_local_variables(const rb_iseq_t *iseq);</div><div class='head'>diff --git a/kernel.rb b/kernel.rb<br/>new file mode 100644<br/>index 0000000000..9cc58bc1d9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/kernel.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>kernel.rb</a></div><div class='hunk'>@@ -0,0 +1,178 @@</div><div class='add'>+module Kernel</div><div class='add'>+  #</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     obj.class    -&gt; class</div><div class='add'>+  #</div><div class='add'>+  #  Returns the class of &lt;i&gt;obj&lt;/i&gt;. This method must always be called</div><div class='add'>+  #  with an explicit receiver, as #class is also a reserved word in</div><div class='add'>+  #  Ruby.</div><div class='add'>+  #</div><div class='add'>+  #     1.class      #=&gt; Integer</div><div class='add'>+  #     self.class   #=&gt; Object</div><div class='add'>+  #--</div><div class='add'>+  # Equivalent to \c Object\#class in Ruby.</div><div class='add'>+  #</div><div class='add'>+  # Returns the class of \c obj, skipping singleton classes or module inclusions.</div><div class='add'>+  #++</div><div class='add'>+  #</div><div class='add'>+  def class</div><div class='add'>+    Primitive.attr! 'inline'</div><div class='add'>+    Primitive.cexpr! 'rb_obj_class(self)'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     obj.clone(freeze: nil) -&gt; an_object</div><div class='add'>+  #</div><div class='add'>+  #  Produces a shallow copy of &lt;i&gt;obj&lt;/i&gt;---the instance variables of</div><div class='add'>+  #  &lt;i&gt;obj&lt;/i&gt; are copied, but not the objects they reference.</div><div class='add'>+  #  #clone copies the frozen value state of &lt;i&gt;obj&lt;/i&gt;, unless the</div><div class='add'>+  #  +:freeze+ keyword argument is given with a false or true value.</div><div class='add'>+  #  See also the discussion under Object#dup.</div><div class='add'>+  #</div><div class='add'>+  #     class Klass</div><div class='add'>+  #        attr_accessor :str</div><div class='add'>+  #     end</div><div class='add'>+  #     s1 = Klass.new      #=&gt; #&lt;Klass:0x401b3a38&gt;</div><div class='add'>+  #     s1.str = "Hello"    #=&gt; "Hello"</div><div class='add'>+  #     s2 = s1.clone       #=&gt; #&lt;Klass:0x401b3998 @str="Hello"&gt;</div><div class='add'>+  #     s2.str[1,4] = "i"   #=&gt; "i"</div><div class='add'>+  #     s1.inspect          #=&gt; "#&lt;Klass:0x401b3a38 @str=\"Hi\"&gt;"</div><div class='add'>+  #     s2.inspect          #=&gt; "#&lt;Klass:0x401b3998 @str=\"Hi\"&gt;"</div><div class='add'>+  #</div><div class='add'>+  #  This method may have class-specific behavior.  If so, that</div><div class='add'>+  #  behavior will be documented under the #+initialize_copy+ method of</div><div class='add'>+  #  the class.</div><div class='add'>+  #</div><div class='add'>+  def clone(freeze: nil)</div><div class='add'>+    Primitive.rb_obj_clone2(freeze)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     obj.frozen?    -&gt; true or false</div><div class='add'>+  #</div><div class='add'>+  #  Returns the freeze status of &lt;i&gt;obj&lt;/i&gt;.</div><div class='add'>+  #</div><div class='add'>+  #     a = [ "a", "b", "c" ]</div><div class='add'>+  #     a.freeze    #=&gt; ["a", "b", "c"]</div><div class='add'>+  #     a.frozen?   #=&gt; true</div><div class='add'>+  #--</div><div class='add'>+  # Determines if the object is frozen. Equivalent to \c Object\#frozen? in Ruby.</div><div class='add'>+  # \param[in] obj  the object to be determines</div><div class='add'>+  # \retval Qtrue if frozen</div><div class='add'>+  # \retval Qfalse if not frozen</div><div class='add'>+  #++</div><div class='add'>+  #</div><div class='add'>+  def frozen?</div><div class='add'>+    Primitive.attr! 'inline'</div><div class='add'>+    Primitive.cexpr! 'rb_obj_frozen_p(self)'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     obj.tap {|x| block }    -&gt; obj</div><div class='add'>+  #</div><div class='add'>+  #  Yields self to the block, and then returns self.</div><div class='add'>+  #  The primary purpose of this method is to "tap into" a method chain,</div><div class='add'>+  #  in order to perform operations on intermediate results within the chain.</div><div class='add'>+  #</div><div class='add'>+  #     (1..10)                  .tap {|x| puts "original: #{x}" }</div><div class='add'>+  #       .to_a                  .tap {|x| puts "array:    #{x}" }</div><div class='add'>+  #       .select {|x| x.even? } .tap {|x| puts "evens:    #{x}" }</div><div class='add'>+  #       .map {|x| x*x }        .tap {|x| puts "squares:  #{x}" }</div><div class='add'>+  #</div><div class='add'>+  #--</div><div class='add'>+  # \private</div><div class='add'>+  #++</div><div class='add'>+  #</div><div class='add'>+  def tap</div><div class='add'>+    yield(self)</div><div class='add'>+    self</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     obj.then {|x| block }          -&gt; an_object</div><div class='add'>+  #</div><div class='add'>+  #  Yields self to the block and returns the result of the block.</div><div class='add'>+  #</div><div class='add'>+  #     3.next.then {|x| x**x }.to_s             #=&gt; "256"</div><div class='add'>+  #</div><div class='add'>+  #  Good usage for +then+ is value piping in method chains:</div><div class='add'>+  #</div><div class='add'>+  #     require 'open-uri'</div><div class='add'>+  #     require 'json'</div><div class='add'>+  #</div><div class='add'>+  #     construct_url(arguments).</div><div class='add'>+  #       then {|url| URI(url).read }.</div><div class='add'>+  #       then {|response| JSON.parse(response) }</div><div class='add'>+  #</div><div class='add'>+  #  When called without block, the method returns +Enumerator+,</div><div class='add'>+  #  which can be used, for example, for conditional</div><div class='add'>+  #  circuit-breaking:</div><div class='add'>+  #</div><div class='add'>+  #     # meets condition, no-op</div><div class='add'>+  #     1.then.detect(&amp;:odd?)            # =&gt; 1</div><div class='add'>+  #     # does not meet condition, drop value</div><div class='add'>+  #     2.then.detect(&amp;:odd?)            # =&gt; nil</div><div class='add'>+  #</div><div class='add'>+  def then</div><div class='add'>+    unless Primitive.block_given_p</div><div class='add'>+      return Primitive.cexpr! 'SIZED_ENUMERATOR(self, 0, 0, rb_obj_size)'</div><div class='add'>+    end</div><div class='add'>+    yield(self)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     obj.yield_self {|x| block }    -&gt; an_object</div><div class='add'>+  #</div><div class='add'>+  #  Yields self to the block and returns the result of the block.</div><div class='add'>+  #</div><div class='add'>+  #     "my string".yield_self {|s| s.upcase }   #=&gt; "MY STRING"</div><div class='add'>+  #</div><div class='add'>+  #  Good usage for +then+ is value piping in method chains:</div><div class='add'>+  #</div><div class='add'>+  #     require 'open-uri'</div><div class='add'>+  #     require 'json'</div><div class='add'>+  #</div><div class='add'>+  #     construct_url(arguments).</div><div class='add'>+  #       then {|url| URI(url).read }.</div><div class='add'>+  #       then {|response| JSON.parse(response) }</div><div class='add'>+  #</div><div class='add'>+  def yield_self</div><div class='add'>+    unless Primitive.block_given_p</div><div class='add'>+      return Primitive.cexpr! 'SIZED_ENUMERATOR(self, 0, 0, rb_obj_size)'</div><div class='add'>+    end</div><div class='add'>+    yield(self)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module_function</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  #  call-seq:</div><div class='add'>+  #     Float(arg, exception: true)    -&gt; float or nil</div><div class='add'>+  #</div><div class='add'>+  #  Returns &lt;i&gt;arg&lt;/i&gt; converted to a float. Numeric types are</div><div class='add'>+  #  converted directly, and with exception to String and</div><div class='add'>+  #  &lt;code&gt;nil&lt;/code&gt; the rest are converted using</div><div class='add'>+  #  &lt;i&gt;arg&lt;/i&gt;&lt;code&gt;.to_f&lt;/code&gt;.  Converting a String with invalid</div><div class='add'>+  #  characters will result in a ArgumentError.  Converting</div><div class='add'>+  #  &lt;code&gt;nil&lt;/code&gt; generates a TypeError.  Exceptions can be</div><div class='add'>+  #  suppressed by passing &lt;code&gt;exception: false&lt;/code&gt;.</div><div class='add'>+  #</div><div class='add'>+  #     Float(1)                 #=&gt; 1.0</div><div class='add'>+  #     Float("123.456")         #=&gt; 123.456</div><div class='add'>+  #     Float("123.0_badstring") #=&gt; ArgumentError: invalid value for Float(): "123.0_badstring"</div><div class='add'>+  #     Float(nil)               #=&gt; TypeError: can't convert nil into Float</div><div class='add'>+  #     Float("123.0_badstring", exception: false)  #=&gt; nil</div><div class='add'>+  #</div><div class='add'>+  def Float(arg, exception: true)</div><div class='add'>+    if Primitive.mandatory_only?</div><div class='add'>+      Primitive.rb_f_float1(arg)</div><div class='add'>+    else</div><div class='add'>+      Primitive.rb_f_float(arg, exception)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lex.c.blt b/lex.c.blt<br/>index 92a4793b00..85727ed00f 100644<br/>--- a/<a href='/ruby.git/tree/lex.c.blt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lex.c.blt</a><br/>+++ b/<a href='/ruby.git/tree/lex.c.blt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lex.c.blt</a></div><div class='hunk'>@@ -34,7 +34,7 @@</div><div class='ctx'> struct kwtable {short name, id[2], state;};</div><div class='ctx'> const struct kwtable *rb_reserved_word(const char *, unsigned int);</div><div class='ctx'> #ifndef RIPPER</div><div class='del'>-static const struct kwtable *reserved_word(/*const char *, unsigned int*/);</div><div class='add'>+static const struct kwtable *reserved_word(register const char *str, register size_t len);</div><div class='ctx'> #define rb_reserved_word(str, len) reserved_word(str, len)</div><div class='ctx'> #line 9 "defs/keywords"</div><div class='ctx'> struct kwtable;</div><div class='head'>diff --git a/lib/.document b/lib/.document<br/>deleted file mode 100644<br/>index 668152021d..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/.document?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/.document</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,25 +0,0 @@</div><div class='del'>-# Add files to this as they become documented</div><div class='del'>-</div><div class='del'>-*.rb</div><div class='del'>-</div><div class='del'>-bundler</div><div class='del'>-cgi</div><div class='del'>-csv</div><div class='del'>-drb</div><div class='del'>-forwardable</div><div class='del'>-irb</div><div class='del'>-matrix</div><div class='del'>-net</div><div class='del'>-optparse</div><div class='del'>-racc</div><div class='del'>-rdoc</div><div class='del'>-rexml</div><div class='del'>-rinda</div><div class='del'>-rss</div><div class='del'>-rubygems</div><div class='del'>-scanf.rb</div><div class='del'>-shell</div><div class='del'>-unicode_normalize</div><div class='del'>-uri</div><div class='del'>-webrick</div><div class='del'>-yaml</div><div class='head'>diff --git a/lib/English.gemspec b/lib/English.gemspec<br/>new file mode 100644<br/>index 0000000000..a08542bcda<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/English.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/English.gemspec</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "english"</div><div class='add'>+  spec.version       = "0.7.2"</div><div class='add'>+  spec.authors       = ["Yukihiro Matsumoto"]</div><div class='add'>+  spec.email         = ["matz@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Require 'English.rb' to reference global variables with less cryptic names.}</div><div class='add'>+  spec.description   = %q{Require 'English.rb' to reference global variables with less cryptic names.}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/English"</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 2.3.0")</div><div class='add'>+  spec.licenses       = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  # Specify which files should be added to the gem when it is released.</div><div class='add'>+  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z 2&gt;/dev/null`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/lib/English.rb b/lib/English.rb<br/>index a4f5bb6620..ec90ff10cd 100644<br/>--- a/<a href='/ruby.git/tree/lib/English.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/English.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/English.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/English.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> #  Include the English library file in a Ruby script, and you can</div><div class='del'>-#  reference the global variables such as \VAR{\$\_} using less</div><div class='del'>-#  cryptic names, listed in the following table.% \vref{tab:english}.</div><div class='add'>+#  reference the global variables such as &lt;tt&gt;$_&lt;/tt&gt; using less</div><div class='add'>+#  cryptic names, listed below.</div><div class='ctx'> #</div><div class='ctx'> #  Without 'English':</div><div class='ctx'> #</div><div class='hunk'>@@ -52,45 +52,43 @@ module English end if false</div><div class='ctx'> alias $ERROR_INFO              $!</div><div class='ctx'> </div><div class='ctx'> # The stack backtrace generated by the last</div><div class='del'>-# exception. &lt;tt&gt;See Kernel.caller&lt;/tt&gt; for details. Thread local.</div><div class='add'>+# exception. See Kernel#caller for details. Thread local.</div><div class='ctx'> alias $ERROR_POSITION          $@</div><div class='ctx'> </div><div class='del'>-# The default separator pattern used by &lt;tt&gt;String.split&lt;/tt&gt;.  May be</div><div class='del'>-# set from the command line using the &lt;tt&gt;-F&lt;/tt&gt; flag.</div><div class='add'>+# The default separator pattern used by String#split.  May be set from</div><div class='add'>+# the command line using the &lt;tt&gt;-F&lt;/tt&gt; flag.</div><div class='ctx'> alias $FS                      $;</div><div class='ctx'> </div><div class='del'>-# The default separator pattern used by &lt;tt&gt;String.split&lt;/tt&gt;.  May be</div><div class='del'>-# set from the command line using the &lt;tt&gt;-F&lt;/tt&gt; flag.</div><div class='add'>+# The default separator pattern used by String#split.  May be set from</div><div class='add'>+# the command line using the &lt;tt&gt;-F&lt;/tt&gt; flag.</div><div class='ctx'> alias $FIELD_SEPARATOR         $;</div><div class='ctx'> </div><div class='ctx'> # The separator string output between the parameters to methods such</div><div class='del'>-# as &lt;tt&gt;Kernel.print&lt;/tt&gt; and &lt;tt&gt;Array.join&lt;/tt&gt;. Defaults to +nil+,</div><div class='del'>-# which adds no text.</div><div class='add'>+# as Kernel#print and Array#join. Defaults to +nil+, which adds no</div><div class='add'>+# text.</div><div class='ctx'> alias $OFS                     $,</div><div class='ctx'> </div><div class='ctx'> # The separator string output between the parameters to methods such</div><div class='del'>-# as &lt;tt&gt;Kernel.print&lt;/tt&gt; and &lt;tt&gt;Array.join&lt;/tt&gt;. Defaults to +nil+,</div><div class='del'>-# which adds no text.</div><div class='add'>+# as Kernel#print and Array#join. Defaults to +nil+, which adds no</div><div class='add'>+# text.</div><div class='ctx'> alias $OUTPUT_FIELD_SEPARATOR  $,</div><div class='ctx'> </div><div class='ctx'> # The input record separator (newline by default). This is the value</div><div class='del'>-# that routines such as &lt;tt&gt;Kernel.gets&lt;/tt&gt; use to determine record</div><div class='add'>+# that routines such as Kernel#gets use to determine record</div><div class='ctx'> # boundaries. If set to +nil+, +gets+ will read the entire file.</div><div class='ctx'> alias $RS                      $/</div><div class='ctx'> </div><div class='ctx'> # The input record separator (newline by default). This is the value</div><div class='del'>-# that routines such as &lt;tt&gt;Kernel.gets&lt;/tt&gt; use to determine record</div><div class='add'>+# that routines such as Kernel#gets use to determine record</div><div class='ctx'> # boundaries. If set to +nil+, +gets+ will read the entire file.</div><div class='ctx'> alias $INPUT_RECORD_SEPARATOR  $/</div><div class='ctx'> </div><div class='ctx'> # The string appended to the output of every call to methods such as</div><div class='del'>-# &lt;tt&gt;Kernel.print&lt;/tt&gt; and &lt;tt&gt;IO.write&lt;/tt&gt;. The default value is</div><div class='del'>-# +nil+.</div><div class='add'>+# Kernel#print and IO#write. The default value is +nil+.</div><div class='ctx'> alias $ORS                     $\</div><div class='ctx'> </div><div class='ctx'> # The string appended to the output of every call to methods such as</div><div class='del'>-# &lt;tt&gt;Kernel.print&lt;/tt&gt; and &lt;tt&gt;IO.write&lt;/tt&gt;. The default value is</div><div class='del'>-# +nil+.</div><div class='add'>+# Kernel#print and IO#write. The default value is +nil+.</div><div class='ctx'> alias $OUTPUT_RECORD_SEPARATOR $\</div><div class='ctx'> </div><div class='ctx'> # The number of the last line read from the current input file.</div><div class='hunk'>@@ -99,14 +97,14 @@ alias $INPUT_LINE_NUMBER       $.</div><div class='ctx'> # The number of the last line read from the current input file.</div><div class='ctx'> alias $NR                      $.</div><div class='ctx'> </div><div class='del'>-# The last line read by &lt;tt&gt;Kernel.gets&lt;/tt&gt; or</div><div class='del'>-# &lt;tt&gt;Kernel.readline&lt;/tt&gt;. Many string-related functions in the</div><div class='del'>-# +Kernel+ module operate on &lt;tt&gt;$_&lt;/tt&gt; by default. The variable is</div><div class='add'>+# The last line read by Kernel#gets or</div><div class='add'>+# Kernel#readline. Many string-related functions in the</div><div class='add'>+# Kernel module operate on &lt;tt&gt;$_&lt;/tt&gt; by default. The variable is</div><div class='ctx'> # local to the current scope. Thread local.</div><div class='ctx'> alias $LAST_READ_LINE          $_</div><div class='ctx'> </div><div class='del'>-# The destination of output for &lt;tt&gt;Kernel.print&lt;/tt&gt;</div><div class='del'>-# and &lt;tt&gt;Kernel.printf&lt;/tt&gt;. The default value is</div><div class='add'>+# The destination of output for Kernel#print</div><div class='add'>+# and Kernel#printf. The default value is</div><div class='ctx'> # &lt;tt&gt;$stdout&lt;/tt&gt;.</div><div class='ctx'> alias $DEFAULT_OUTPUT          $&gt;</div><div class='ctx'> </div><div class='hunk'>@@ -115,7 +113,7 @@ alias $DEFAULT_OUTPUT          $&gt;</div><div class='ctx'> # given as command-line arguments, or &lt;tt&gt;$stdin&lt;/tt&gt;</div><div class='ctx'> # (in the case where there are no</div><div class='ctx'> # arguments). &lt;tt&gt;$&lt;&lt;/tt&gt; supports methods similar to a</div><div class='del'>-# +File+ object:</div><div class='add'>+# File object:</div><div class='ctx'> # +inmode+, +close+,</div><div class='ctx'> # &lt;tt&gt;closed?&lt;/tt&gt;, +each+,</div><div class='ctx'> # &lt;tt&gt;each_byte&lt;/tt&gt;, &lt;tt&gt;each_line&lt;/tt&gt;,</div><div class='hunk'>@@ -129,8 +127,8 @@ alias $DEFAULT_OUTPUT          $&gt;</div><div class='ctx'> # +rewind+, +seek+, +skip+,</div><div class='ctx'> # +tell+, &lt;tt&gt;to_a&lt;/tt&gt;, &lt;tt&gt;to_i&lt;/tt&gt;,</div><div class='ctx'> # &lt;tt&gt;to_io&lt;/tt&gt;, &lt;tt&gt;to_s&lt;/tt&gt;, along with the</div><div class='del'>-# methods in +Enumerable+. The method +file+</div><div class='del'>-# returns a +File+ object for the file currently</div><div class='add'>+# methods in Enumerable. The method +file+</div><div class='add'>+# returns a File object for the file currently</div><div class='ctx'> # being read. This may change as &lt;tt&gt;$&lt;&lt;/tt&gt; reads</div><div class='ctx'> # through the files on the command line. Read only.</div><div class='ctx'> alias $DEFAULT_INPUT           $&lt;</div><div class='head'>diff --git a/lib/abbrev.gemspec b/lib/abbrev.gemspec<br/>new file mode 100644<br/>index 0000000000..c28b960c8c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/abbrev.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/abbrev.gemspec</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "abbrev"</div><div class='add'>+  spec.version       = "0.1.1"</div><div class='add'>+  spec.authors       = ["Akinori MUSHA"]</div><div class='add'>+  spec.email         = ["knu@idaemons.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Calculates a set of unique abbreviations for a given set of strings}</div><div class='add'>+  spec.description   = %q{Calculates a set of unique abbreviations for a given set of strings}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/abbrev"</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 2.3.0")</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.bindir        = "exe"</div><div class='add'>+  spec.executables   = []</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/lib/base64.gemspec b/lib/base64.gemspec<br/>new file mode 100644<br/>index 0000000000..daa0b7fa14<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/base64.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/base64.gemspec</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "base64"</div><div class='add'>+  spec.version       = "0.1.1"</div><div class='add'>+  spec.authors       = ["Yusuke Endoh"]</div><div class='add'>+  spec.email         = ["mame@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Support for encoding and decoding binary data using a Base64 representation.}</div><div class='add'>+  spec.description   = %q{Support for encoding and decoding binary data using a Base64 representation.}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/base64"</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 2.3.0")</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  spec.files         = ["README.md", "LICENSE.txt", "lib/base64.rb"]</div><div class='add'>+  spec.bindir        = "exe"</div><div class='add'>+  spec.executables   = []</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/lib/base64.rb b/lib/base64.rb<br/>index 24f0b02966..693aa1f519 100644<br/>--- a/<a href='/ruby.git/tree/lib/base64.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/base64.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/base64.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/base64.rb</a></div><div class='hunk'>@@ -81,8 +81,9 @@ module Base64</div><div class='ctx'>   # Note that the result can still contain '='.</div><div class='ctx'>   # You can remove the padding by setting +padding+ as false.</div><div class='ctx'>   def urlsafe_encode64(bin, padding: true)</div><div class='del'>-    str = strict_encode64(bin).tr("+/", "-_")</div><div class='del'>-    str = str.delete("=") unless padding</div><div class='add'>+    str = strict_encode64(bin)</div><div class='add'>+    str.chomp!("==") or str.chomp!("=") unless padding</div><div class='add'>+    str.tr!("+/", "-_")</div><div class='ctx'>     str</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -98,9 +99,11 @@ module Base64</div><div class='ctx'>     # NOTE: RFC 4648 does say nothing about unpadded input, but says that</div><div class='ctx'>     # "the excess pad characters MAY also be ignored", so it is inferred that</div><div class='ctx'>     # unpadded input is also acceptable.</div><div class='del'>-    str = str.tr("-_", "+/")</div><div class='ctx'>     if !str.end_with?("=") &amp;&amp; str.length % 4 != 0</div><div class='ctx'>       str = str.ljust((str.length + 3) &amp; ~3, "=")</div><div class='add'>+      str.tr!("-_", "+/")</div><div class='add'>+    else</div><div class='add'>+      str = str.tr("-_", "+/")</div><div class='ctx'>     end</div><div class='ctx'>     strict_decode64(str)</div><div class='ctx'>   end</div><div class='head'>diff --git a/lib/benchmark.rb b/lib/benchmark.rb<br/>index 5ce9710586..79c782e262 100644<br/>--- a/<a href='/ruby.git/tree/lib/benchmark.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/benchmark.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/benchmark.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/benchmark.rb</a></div><div class='hunk'>@@ -128,6 +128,9 @@ module Benchmark</div><div class='ctx'>   # benchmark tests. Reserves +label_width+ leading spaces for</div><div class='ctx'>   # labels on each line. Prints +caption+ at the top of the</div><div class='ctx'>   # report, and uses +format+ to format each line.</div><div class='add'>+  # (Note: +caption+ must contain a terminating newline character,</div><div class='add'>+  # see the default Benchmark::Tms::CAPTION for an example.)</div><div class='add'>+  #</div><div class='ctx'>   # Returns an array of Benchmark::Tms objects.</div><div class='ctx'>   #</div><div class='ctx'>   # If the block returns an array of</div><div class='hunk'>@@ -163,8 +166,8 @@ module Benchmark</div><div class='ctx'>   #</div><div class='ctx'> </div><div class='ctx'>   def benchmark(caption = "", label_width = nil, format = nil, *labels) # :yield: report</div><div class='del'>-    sync = STDOUT.sync</div><div class='del'>-    STDOUT.sync = true</div><div class='add'>+    sync = $stdout.sync</div><div class='add'>+    $stdout.sync = true</div><div class='ctx'>     label_width ||= 0</div><div class='ctx'>     label_width += 1</div><div class='ctx'>     format ||= FORMAT</div><div class='hunk'>@@ -176,7 +179,7 @@ module Benchmark</div><div class='ctx'>     }</div><div class='ctx'>     report.list</div><div class='ctx'>   ensure</div><div class='del'>-    STDOUT.sync = sync unless sync.nil?</div><div class='add'>+    $stdout.sync = sync unless sync.nil?</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'> </div><div class='hunk'>@@ -247,8 +250,8 @@ module Benchmark</div><div class='ctx'>     job = Job.new(width)</div><div class='ctx'>     yield(job)</div><div class='ctx'>     width = job.width + 1</div><div class='del'>-    sync = STDOUT.sync</div><div class='del'>-    STDOUT.sync = true</div><div class='add'>+    sync = $stdout.sync</div><div class='add'>+    $stdout.sync = true</div><div class='ctx'> </div><div class='ctx'>     # rehearsal</div><div class='ctx'>     puts 'Rehearsal '.ljust(width+CAPTION.length,'-')</div><div class='hunk'>@@ -268,7 +271,7 @@ module Benchmark</div><div class='ctx'>       Benchmark.measure(label, &amp;item).tap { |res| print res }</div><div class='ctx'>     }</div><div class='ctx'>   ensure</div><div class='del'>-    STDOUT.sync = sync unless sync.nil?</div><div class='add'>+    $stdout.sync = sync unless sync.nil?</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='hunk'>@@ -527,6 +530,20 @@ module Benchmark</div><div class='ctx'>       [@label, @utime, @stime, @cutime, @cstime, @real]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    #</div><div class='add'>+    # Returns a hash containing the same data as `to_a`.</div><div class='add'>+    #</div><div class='add'>+    def to_h</div><div class='add'>+      {</div><div class='add'>+        label:  @label,</div><div class='add'>+        utime:  @utime,</div><div class='add'>+        stime:  @stime,</div><div class='add'>+        cutime: @cutime,</div><div class='add'>+        cstime: @cstime,</div><div class='add'>+        real:   @real</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     protected</div><div class='ctx'> </div><div class='ctx'>     #</div><div class='head'>diff --git a/lib/benchmark/benchmark.gemspec b/lib/benchmark/benchmark.gemspec<br/>new file mode 100644<br/>index 0000000000..58b47d95e1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/benchmark/benchmark.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/benchmark/benchmark.gemspec</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+begin</div><div class='add'>+  require_relative "lib/benchmark/version"</div><div class='add'>+rescue LoadError # Fallback to load version file in ruby core repository</div><div class='add'>+  require_relative "version"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "benchmark"</div><div class='add'>+  spec.version       = Benchmark::VERSION</div><div class='add'>+  spec.authors       = ["Yukihiro Matsumoto"]</div><div class='add'>+  spec.email         = ["matz@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{a performance benchmarking library}</div><div class='add'>+  spec.description   = spec.summary</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/benchmark"</div><div class='add'>+  spec.licenses       = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  # Specify which files should be added to the gem when it is released.</div><div class='add'>+  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z 2&gt;/dev/null`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.bindir        = "exe"</div><div class='add'>+  spec.executables   = []</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/lib/benchmark/version.rb b/lib/benchmark/version.rb<br/>new file mode 100644<br/>index 0000000000..645966fd80<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/benchmark/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/benchmark/version.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+module Benchmark</div><div class='add'>+  VERSION = "0.2.1"</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler.gemspec b/lib/bundler.gemspec<br/>deleted file mode 100644<br/>index 2b2bb412d5..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler.gemspec</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,64 +0,0 @@</div><div class='del'>-# coding: utf-8</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-begin</div><div class='del'>-  require File.expand_path("../lib/bundler/version", __FILE__)</div><div class='del'>-rescue LoadError</div><div class='del'>-  # for Ruby core repository</div><div class='del'>-  require File.expand_path("../bundler/version", __FILE__)</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-require "shellwords"</div><div class='del'>-</div><div class='del'>-Gem::Specification.new do |s|</div><div class='del'>-  s.name        = "bundler"</div><div class='del'>-  s.version     = Bundler::VERSION</div><div class='del'>-  s.license     = "MIT"</div><div class='del'>-  s.authors     = [</div><div class='del'>-    "AndrÃ© Arko", "Samuel Giddins", "Colby Swandale", "Hiroshi Shibata",</div><div class='del'>-    "David RodrÃ­guez", "Grey Baker", "Stephanie Morillo", "Chris Morris", "James Wen", "Tim Moore",</div><div class='del'>-    "AndrÃ© Medeiros", "Jessica Lynn Suttles", "Terence Lee", "Carl Lerche",</div><div class='del'>-    "Yehuda Katz"</div><div class='del'>-  ]</div><div class='del'>-  s.email       = ["team@bundler.io"]</div><div class='del'>-  s.homepage    = "http://bundler.io"</div><div class='del'>-  s.summary     = "The best way to manage your application's dependencies"</div><div class='del'>-  s.description = "Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably"</div><div class='del'>-</div><div class='del'>-  if s.respond_to?(:metadata=)</div><div class='del'>-    s.metadata = {</div><div class='del'>-      "bug_tracker_uri" =&gt; "http://github.com/bundler/bundler/issues",</div><div class='del'>-      "changelog_uri" =&gt; "https://github.com/bundler/bundler/blob/master/CHANGELOG.md",</div><div class='del'>-      "homepage_uri" =&gt; "https://bundler.io/",</div><div class='del'>-      "source_code_uri" =&gt; "http://github.com/bundler/bundler/",</div><div class='del'>-    }</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  if s.version &gt;= Gem::Version.new("2.a".dup)</div><div class='del'>-    s.required_ruby_version     = "&gt;= 2.3.0"</div><div class='del'>-    s.required_rubygems_version = "&gt;= 2.5.0"</div><div class='del'>-  else</div><div class='del'>-    s.required_ruby_version     = "&gt;= 1.8.7"</div><div class='del'>-    s.required_rubygems_version = "&gt;= 1.3.6"</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  s.add_development_dependency "automatiek", "~&gt; 0.1.0"</div><div class='del'>-  s.add_development_dependency "mustache",   "0.99.6"</div><div class='del'>-  s.add_development_dependency "rake",       "~&gt; 10.0"</div><div class='del'>-  s.add_development_dependency "rdiscount",  "~&gt; 2.2"</div><div class='del'>-  s.add_development_dependency "ronn",       "~&gt; 0.7.3"</div><div class='del'>-  s.add_development_dependency "rspec",      "~&gt; 3.6"</div><div class='del'>-</div><div class='del'>-  # s.files = `git ls-files -z`.split("\x0").select {|f| f.match(%r{^(lib|exe)/}) }</div><div class='del'>-  # we don't check in man pages, but we need to ship them because</div><div class='del'>-  # we use them to generate the long-form help for each command.</div><div class='del'>-  # s.files += Dir.glob("man/**/*")</div><div class='del'>-  # Include the CHANGELOG.md, LICENSE.md, README.md manually</div><div class='del'>-  # s.files += %w[CHANGELOG.md LICENSE.md README.md]</div><div class='del'>-  # include the gemspec itself because warbler breaks w/o it</div><div class='del'>-  s.files += %w[bundler.gemspec]</div><div class='del'>-</div><div class='del'>-  s.bindir        = "exe"</div><div class='del'>-  s.executables   = %w[bundle bundler]</div><div class='del'>-  s.require_paths = ["lib"]</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler.rb b/lib/bundler.rb<br/>index 1cb3b4fb21..f83268e9cd 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler.rb</a></div><div class='hunk'>@@ -1,77 +1,94 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/compatibility_guard"</div><div class='del'>-</div><div class='del'>-require "bundler/vendored_fileutils"</div><div class='add'>+require_relative "bundler/vendored_fileutils"</div><div class='ctx'> require "pathname"</div><div class='ctx'> require "rbconfig"</div><div class='del'>-require "thread"</div><div class='del'>-</div><div class='del'>-require "bundler/errors"</div><div class='del'>-require "bundler/environment_preserver"</div><div class='del'>-require "bundler/plugin"</div><div class='del'>-require "bundler/rubygems_ext"</div><div class='del'>-require "bundler/rubygems_integration"</div><div class='del'>-require "bundler/version"</div><div class='del'>-require "bundler/constants"</div><div class='del'>-require "bundler/current_ruby"</div><div class='del'>-require "bundler/build_metadata"</div><div class='ctx'> </div><div class='add'>+require_relative "bundler/errors"</div><div class='add'>+require_relative "bundler/environment_preserver"</div><div class='add'>+require_relative "bundler/plugin"</div><div class='add'>+require_relative "bundler/rubygems_ext"</div><div class='add'>+require_relative "bundler/rubygems_integration"</div><div class='add'>+require_relative "bundler/version"</div><div class='add'>+require_relative "bundler/constants"</div><div class='add'>+require_relative "bundler/current_ruby"</div><div class='add'>+require_relative "bundler/build_metadata"</div><div class='add'>+</div><div class='add'>+# Bundler provides a consistent environment for Ruby projects by</div><div class='add'>+# tracking and installing the exact gems and versions that are needed.</div><div class='add'>+#</div><div class='add'>+# Since Ruby 2.6, Bundler is a part of Ruby's standard library.</div><div class='add'>+#</div><div class='add'>+# Bundler is used by creating _gemfiles_ listing all the project dependencies</div><div class='add'>+# and (optionally) their versions and then using</div><div class='add'>+#</div><div class='add'>+#   require 'bundler/setup'</div><div class='add'>+#</div><div class='add'>+# or Bundler.setup to setup environment where only specified gems and their</div><div class='add'>+# specified versions could be used.</div><div class='add'>+#</div><div class='add'>+# See {Bundler website}[https://bundler.io/docs.html] for extensive documentation</div><div class='add'>+# on gemfiles creation and Bundler usage.</div><div class='add'>+#</div><div class='add'>+# As a standard library inside project, Bundler could be used for introspection</div><div class='add'>+# of loaded and required modules.</div><div class='add'>+#</div><div class='ctx'> module Bundler</div><div class='del'>-  environment_preserver = EnvironmentPreserver.new(ENV, EnvironmentPreserver::BUNDLER_KEYS)</div><div class='add'>+  environment_preserver = EnvironmentPreserver.from_env</div><div class='ctx'>   ORIGINAL_ENV = environment_preserver.restore</div><div class='del'>-  ENV.replace(environment_preserver.backup)</div><div class='del'>-  SUDO_MUTEX = Mutex.new</div><div class='del'>-</div><div class='del'>-  autoload :Definition,             "bundler/definition"</div><div class='del'>-  autoload :Dependency,             "bundler/dependency"</div><div class='del'>-  autoload :DepProxy,               "bundler/dep_proxy"</div><div class='del'>-  autoload :Deprecate,              "bundler/deprecate"</div><div class='del'>-  autoload :Dsl,                    "bundler/dsl"</div><div class='del'>-  autoload :EndpointSpecification,  "bundler/endpoint_specification"</div><div class='del'>-  autoload :Env,                    "bundler/env"</div><div class='del'>-  autoload :Fetcher,                "bundler/fetcher"</div><div class='del'>-  autoload :FeatureFlag,            "bundler/feature_flag"</div><div class='del'>-  autoload :GemHelper,              "bundler/gem_helper"</div><div class='del'>-  autoload :GemHelpers,             "bundler/gem_helpers"</div><div class='del'>-  autoload :GemRemoteFetcher,       "bundler/gem_remote_fetcher"</div><div class='del'>-  autoload :GemVersionPromoter,     "bundler/gem_version_promoter"</div><div class='del'>-  autoload :Graph,                  "bundler/graph"</div><div class='del'>-  autoload :Index,                  "bundler/index"</div><div class='del'>-  autoload :Injector,               "bundler/injector"</div><div class='del'>-  autoload :Installer,              "bundler/installer"</div><div class='del'>-  autoload :LazySpecification,      "bundler/lazy_specification"</div><div class='del'>-  autoload :LockfileParser,         "bundler/lockfile_parser"</div><div class='del'>-  autoload :MatchPlatform,          "bundler/match_platform"</div><div class='del'>-  autoload :ProcessLock,            "bundler/process_lock"</div><div class='del'>-  autoload :RemoteSpecification,    "bundler/remote_specification"</div><div class='del'>-  autoload :Resolver,               "bundler/resolver"</div><div class='del'>-  autoload :Retry,                  "bundler/retry"</div><div class='del'>-  autoload :RubyDsl,                "bundler/ruby_dsl"</div><div class='del'>-  autoload :RubyGemsGemInstaller,   "bundler/rubygems_gem_installer"</div><div class='del'>-  autoload :RubyVersion,            "bundler/ruby_version"</div><div class='del'>-  autoload :Runtime,                "bundler/runtime"</div><div class='del'>-  autoload :Settings,               "bundler/settings"</div><div class='del'>-  autoload :SharedHelpers,          "bundler/shared_helpers"</div><div class='del'>-  autoload :Source,                 "bundler/source"</div><div class='del'>-  autoload :SourceList,             "bundler/source_list"</div><div class='del'>-  autoload :SpecSet,                "bundler/spec_set"</div><div class='del'>-  autoload :StubSpecification,      "bundler/stub_specification"</div><div class='del'>-  autoload :UI,                     "bundler/ui"</div><div class='del'>-  autoload :URICredentialsFilter,   "bundler/uri_credentials_filter"</div><div class='del'>-  autoload :VersionRanges,          "bundler/version_ranges"</div><div class='add'>+  environment_preserver.replace_with_backup</div><div class='add'>+  SUDO_MUTEX = Thread::Mutex.new</div><div class='add'>+</div><div class='add'>+  autoload :Definition,             File.expand_path("bundler/definition", __dir__)</div><div class='add'>+  autoload :Dependency,             File.expand_path("bundler/dependency", __dir__)</div><div class='add'>+  autoload :Deprecate,              File.expand_path("bundler/deprecate", __dir__)</div><div class='add'>+  autoload :Digest,                 File.expand_path("bundler/digest", __dir__)</div><div class='add'>+  autoload :Dsl,                    File.expand_path("bundler/dsl", __dir__)</div><div class='add'>+  autoload :EndpointSpecification,  File.expand_path("bundler/endpoint_specification", __dir__)</div><div class='add'>+  autoload :Env,                    File.expand_path("bundler/env", __dir__)</div><div class='add'>+  autoload :Fetcher,                File.expand_path("bundler/fetcher", __dir__)</div><div class='add'>+  autoload :FeatureFlag,            File.expand_path("bundler/feature_flag", __dir__)</div><div class='add'>+  autoload :GemHelper,              File.expand_path("bundler/gem_helper", __dir__)</div><div class='add'>+  autoload :GemHelpers,             File.expand_path("bundler/gem_helpers", __dir__)</div><div class='add'>+  autoload :GemVersionPromoter,     File.expand_path("bundler/gem_version_promoter", __dir__)</div><div class='add'>+  autoload :Graph,                  File.expand_path("bundler/graph", __dir__)</div><div class='add'>+  autoload :Index,                  File.expand_path("bundler/index", __dir__)</div><div class='add'>+  autoload :Injector,               File.expand_path("bundler/injector", __dir__)</div><div class='add'>+  autoload :Installer,              File.expand_path("bundler/installer", __dir__)</div><div class='add'>+  autoload :LazySpecification,      File.expand_path("bundler/lazy_specification", __dir__)</div><div class='add'>+  autoload :LockfileParser,         File.expand_path("bundler/lockfile_parser", __dir__)</div><div class='add'>+  autoload :MatchRemoteMetadata,    File.expand_path("bundler/match_remote_metadata", __dir__)</div><div class='add'>+  autoload :ProcessLock,            File.expand_path("bundler/process_lock", __dir__)</div><div class='add'>+  autoload :RemoteSpecification,    File.expand_path("bundler/remote_specification", __dir__)</div><div class='add'>+  autoload :Resolver,               File.expand_path("bundler/resolver", __dir__)</div><div class='add'>+  autoload :Retry,                  File.expand_path("bundler/retry", __dir__)</div><div class='add'>+  autoload :RubyDsl,                File.expand_path("bundler/ruby_dsl", __dir__)</div><div class='add'>+  autoload :RubyVersion,            File.expand_path("bundler/ruby_version", __dir__)</div><div class='add'>+  autoload :Runtime,                File.expand_path("bundler/runtime", __dir__)</div><div class='add'>+  autoload :SelfManager,            File.expand_path("bundler/self_manager", __dir__)</div><div class='add'>+  autoload :Settings,               File.expand_path("bundler/settings", __dir__)</div><div class='add'>+  autoload :SharedHelpers,          File.expand_path("bundler/shared_helpers", __dir__)</div><div class='add'>+  autoload :Source,                 File.expand_path("bundler/source", __dir__)</div><div class='add'>+  autoload :SourceList,             File.expand_path("bundler/source_list", __dir__)</div><div class='add'>+  autoload :SourceMap,              File.expand_path("bundler/source_map", __dir__)</div><div class='add'>+  autoload :SpecSet,                File.expand_path("bundler/spec_set", __dir__)</div><div class='add'>+  autoload :StubSpecification,      File.expand_path("bundler/stub_specification", __dir__)</div><div class='add'>+  autoload :UI,                     File.expand_path("bundler/ui", __dir__)</div><div class='add'>+  autoload :URICredentialsFilter,   File.expand_path("bundler/uri_credentials_filter", __dir__)</div><div class='add'>+  autoload :URINormalizer,          File.expand_path("bundler/uri_normalizer", __dir__)</div><div class='add'>+  autoload :SafeMarshal,            File.expand_path("bundler/safe_marshal", __dir__)</div><div class='ctx'> </div><div class='ctx'>   class &lt;&lt; self</div><div class='ctx'>     def configure</div><div class='del'>-      @configured ||= configure_gem_home_and_path</div><div class='add'>+      @configure ||= configure_gem_home_and_path</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def ui</div><div class='del'>-      (defined?(@ui) &amp;&amp; @ui) || (self.ui = UI::Silent.new)</div><div class='add'>+      (defined?(@ui) &amp;&amp; @ui) || (self.ui = UI::Shell.new)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def ui=(ui)</div><div class='del'>-      Bundler.rubygems.ui = ui ? UI::RGProxy.new(ui) : nil</div><div class='add'>+      Bundler.rubygems.ui = UI::RGProxy.new(ui)</div><div class='ctx'>       @ui = ui</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -80,6 +97,17 @@ module Bundler</div><div class='ctx'>       @bundle_path ||= Pathname.new(configured_bundle_path.path).expand_path(root)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def create_bundle_path</div><div class='add'>+      SharedHelpers.filesystem_access(bundle_path.to_s) do |p|</div><div class='add'>+        mkdir_p(p)</div><div class='add'>+      end unless bundle_path.exist?</div><div class='add'>+</div><div class='add'>+      @bundle_path = bundle_path.realpath</div><div class='add'>+    rescue Errno::EEXIST</div><div class='add'>+      raise PathError, "Could not install to path `#{bundle_path}` " \</div><div class='add'>+        "because a file already exists at that path. Either remove or rename the file so the directory can be created."</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def configured_bundle_path</div><div class='ctx'>       @configured_bundle_path ||= settings.path.tap(&amp;:validate!)</div><div class='ctx'>     end</div><div class='hunk'>@@ -94,6 +122,33 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Turns on the Bundler runtime. After +Bundler.setup+ call, all +load+ or</div><div class='add'>+    # +require+ of the gems would be allowed only if they are part of</div><div class='add'>+    # the Gemfile or Ruby's standard library. If the versions specified</div><div class='add'>+    # in Gemfile, only those versions would be loaded.</div><div class='add'>+    #</div><div class='add'>+    # Assuming Gemfile</div><div class='add'>+    #</div><div class='add'>+    #    gem 'first_gem', '= 1.0'</div><div class='add'>+    #    group :test do</div><div class='add'>+    #      gem 'second_gem', '= 1.0'</div><div class='add'>+    #    end</div><div class='add'>+    #</div><div class='add'>+    # The code using Bundler.setup works as follows:</div><div class='add'>+    #</div><div class='add'>+    #    require 'third_gem' # allowed, required from global gems</div><div class='add'>+    #    require 'first_gem' # allowed, loads the last installed version</div><div class='add'>+    #    Bundler.setup</div><div class='add'>+    #    require 'fourth_gem' # fails with LoadError</div><div class='add'>+    #    require 'second_gem' # loads exactly version 1.0</div><div class='add'>+    #</div><div class='add'>+    # +Bundler.setup+ can be called only once, all subsequent calls are no-op.</div><div class='add'>+    #</div><div class='add'>+    # If _groups_ list is provided, only gems from specified groups would</div><div class='add'>+    # be allowed (gems specified outside groups belong to special +:default+ group).</div><div class='add'>+    #</div><div class='add'>+    # To require all gems from Gemfile (or only some groups), see Bundler.require.</div><div class='add'>+    #</div><div class='ctx'>     def setup(*groups)</div><div class='ctx'>       # Return if all groups are already loaded</div><div class='ctx'>       return @setup if defined?(@setup) &amp;&amp; @setup</div><div class='hunk'>@@ -110,6 +165,24 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Setups Bundler environment (see Bundler.setup) if it is not already set,</div><div class='add'>+    # and loads all gems from groups specified. Unlike ::setup, can be called</div><div class='add'>+    # multiple times with different groups (if they were allowed by setup).</div><div class='add'>+    #</div><div class='add'>+    # Assuming Gemfile</div><div class='add'>+    #</div><div class='add'>+    #    gem 'first_gem', '= 1.0'</div><div class='add'>+    #    group :test do</div><div class='add'>+    #      gem 'second_gem', '= 1.0'</div><div class='add'>+    #    end</div><div class='add'>+    #</div><div class='add'>+    # The code will work as follows:</div><div class='add'>+    #</div><div class='add'>+    #    Bundler.setup # allow all groups</div><div class='add'>+    #    Bundler.require(:default) # requires only first_gem</div><div class='add'>+    #    # ...later</div><div class='add'>+    #    Bundler.require(:test)   # requires second_gem</div><div class='add'>+    #</div><div class='ctx'>     def require(*groups)</div><div class='ctx'>       setup(*groups).require(*groups)</div><div class='ctx'>     end</div><div class='hunk'>@@ -119,7 +192,7 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def environment</div><div class='del'>-      SharedHelpers.major_deprecation 2, "Bundler.environment has been removed in favor of Bundler.load"</div><div class='add'>+      SharedHelpers.major_deprecation 2, "Bundler.environment has been removed in favor of Bundler.load", :print_caller_location =&gt; true</div><div class='ctx'>       load</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -137,9 +210,10 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def frozen_bundle?</div><div class='del'>-      frozen = settings[:deployment]</div><div class='del'>-      frozen ||= settings[:frozen] unless feature_flag.deployment_means_frozen?</div><div class='del'>-      frozen</div><div class='add'>+      frozen = settings[:frozen]</div><div class='add'>+      return frozen unless frozen.nil?</div><div class='add'>+</div><div class='add'>+      settings[:deployment]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def locked_gems</div><div class='hunk'>@@ -152,8 +226,14 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def most_specific_locked_platform?(platform)</div><div class='add'>+      return false unless defined?(@definition) &amp;&amp; @definition</div><div class='add'>+</div><div class='add'>+      definition.most_specific_locked_platform == platform</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def ruby_scope</div><div class='del'>-      "#{Bundler.rubygems.ruby_engine}/#{Bundler.rubygems.config_map[:ruby_version]}"</div><div class='add'>+      "#{Bundler.rubygems.ruby_engine}/#{RbConfig::CONFIG["ruby_version"]}"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def user_home</div><div class='hunk'>@@ -170,9 +250,9 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         if warning</div><div class='del'>-          Kernel.send(:require, "etc")</div><div class='del'>-          user_home = tmp_home_path(Etc.getlogin, warning)</div><div class='del'>-          Bundler.ui.warn "#{warning}\nBundler will use `#{user_home}' as your home directory temporarily.\n"</div><div class='add'>+          Bundler.ui.warn "#{warning}\n"</div><div class='add'>+          user_home = tmp_home_path</div><div class='add'>+          Bundler.ui.warn "Bundler will use `#{user_home}' as your home directory temporarily.\n"</div><div class='ctx'>           user_home</div><div class='ctx'>         else</div><div class='ctx'>           Pathname.new(home)</div><div class='hunk'>@@ -180,37 +260,22 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def tmp_home_path(login, warning)</div><div class='del'>-      login ||= "unknown"</div><div class='del'>-      Kernel.send(:require, "tmpdir")</div><div class='del'>-      path = Pathname.new(Dir.tmpdir).join("bundler", "home")</div><div class='del'>-      SharedHelpers.filesystem_access(path) do |tmp_home_path|</div><div class='del'>-        unless tmp_home_path.exist?</div><div class='del'>-          tmp_home_path.mkpath</div><div class='del'>-          tmp_home_path.chmod(0o777)</div><div class='del'>-        end</div><div class='del'>-        tmp_home_path.join(login).tap(&amp;:mkpath)</div><div class='del'>-      end</div><div class='del'>-    rescue RuntimeError =&gt; e</div><div class='del'>-      raise e.exception("#{warning}\nBundler also failed to create a temporary home directory at `#{path}':\n#{e}")</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def user_bundle_path(dir = "home")</div><div class='ctx'>       env_var, fallback = case dir</div><div class='ctx'>                           when "home"</div><div class='del'>-                            ["BUNDLE_USER_HOME", Pathname.new(user_home).join(".bundle")]</div><div class='add'>+                            ["BUNDLE_USER_HOME", proc { Pathname.new(user_home).join(".bundle") }]</div><div class='ctx'>                           when "cache"</div><div class='del'>-                            ["BUNDLE_USER_CACHE", user_bundle_path.join("cache")]</div><div class='add'>+                            ["BUNDLE_USER_CACHE", proc { user_bundle_path.join("cache") }]</div><div class='ctx'>                           when "config"</div><div class='del'>-                            ["BUNDLE_USER_CONFIG", user_bundle_path.join("config")]</div><div class='add'>+                            ["BUNDLE_USER_CONFIG", proc { user_bundle_path.join("config") }]</div><div class='ctx'>                           when "plugin"</div><div class='del'>-                            ["BUNDLE_USER_PLUGIN", user_bundle_path.join("plugin")]</div><div class='add'>+                            ["BUNDLE_USER_PLUGIN", proc { user_bundle_path.join("plugin") }]</div><div class='ctx'>                           else</div><div class='ctx'>                             raise BundlerError, "Unknown user path requested: #{dir}"</div><div class='ctx'>       end</div><div class='ctx'>       # `fallback` will already be a Pathname, but Pathname.new() is</div><div class='ctx'>       # idempotent so it's OK</div><div class='del'>-      Pathname.new(ENV.fetch(env_var, fallback))</div><div class='add'>+      Pathname.new(ENV.fetch(env_var, &amp;fallback))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def user_cache</div><div class='hunk'>@@ -241,7 +306,13 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def app_config_path</div><div class='ctx'>       if app_config = ENV["BUNDLE_APP_CONFIG"]</div><div class='del'>-        Pathname.new(app_config).expand_path(root)</div><div class='add'>+        app_config_pathname = Pathname.new(app_config)</div><div class='add'>+</div><div class='add'>+        if app_config_pathname.absolute?</div><div class='add'>+          app_config_pathname</div><div class='add'>+        else</div><div class='add'>+          app_config_pathname.expand_path(root)</div><div class='add'>+        end</div><div class='ctx'>       else</div><div class='ctx'>         root.join(".bundle")</div><div class='ctx'>       end</div><div class='hunk'>@@ -261,9 +332,9 @@ module Bundler</div><div class='ctx'>       FileUtils.remove_entry_secure(path) if path &amp;&amp; File.exist?(path)</div><div class='ctx'>     rescue ArgumentError</div><div class='ctx'>       message = &lt;&lt;EOF</div><div class='del'>-It is a security vulnerability to allow your home directory to be world-writable, and bundler can not continue.</div><div class='add'>+It is a security vulnerability to allow your home directory to be world-writable, and bundler cannot continue.</div><div class='ctx'> You should probably consider fixing this issue by running `chmod o-w ~` on *nix.</div><div class='del'>-Please refer to http://ruby-doc.org/stdlib-2.1.2/libdoc/fileutils/rdoc/FileUtils.html#method-c-remove_entry_secure for details.</div><div class='add'>+Please refer to https://ruby-doc.org/stdlib-3.1.2/libdoc/fileutils/rdoc/FileUtils.html#method-c-remove_entry_secure for details.</div><div class='ctx'> EOF</div><div class='ctx'>       File.world_writable?(path) ? Bundler.ui.warn(message) : raise</div><div class='ctx'>       raise PathError, "Please fix the world-writable issue with your #{path} directory"</div><div class='hunk'>@@ -280,10 +351,20 @@ EOF</div><div class='ctx'>       ORIGINAL_ENV.clone</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # @deprecated Use `original_env` instead</div><div class='del'>-    # @return [Hash] Environment with all bundler-related variables removed</div><div class='add'>+    # @deprecated Use `unbundled_env` instead</div><div class='ctx'>     def clean_env</div><div class='del'>-      Bundler::SharedHelpers.major_deprecation(2, "`Bundler.clean_env` has weird edge cases, use `.original_env` instead")</div><div class='add'>+      Bundler::SharedHelpers.major_deprecation(</div><div class='add'>+        2,</div><div class='add'>+        "`Bundler.clean_env` has been deprecated in favor of `Bundler.unbundled_env`. " \</div><div class='add'>+        "If you instead want the environment before bundler was originally loaded, use `Bundler.original_env`",</div><div class='add'>+        :print_caller_location =&gt; true</div><div class='add'>+      )</div><div class='add'>+</div><div class='add'>+      unbundled_env</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # @return [Hash] Environment with all bundler-related variables removed</div><div class='add'>+    def unbundled_env</div><div class='ctx'>       env = original_env</div><div class='ctx'> </div><div class='ctx'>       if env.key?("BUNDLER_ORIG_MANPATH")</div><div class='hunk'>@@ -293,32 +374,85 @@ EOF</div><div class='ctx'>       env.delete_if {|k, _| k[0, 7] == "BUNDLE_" }</div><div class='ctx'> </div><div class='ctx'>       if env.key?("RUBYOPT")</div><div class='del'>-        env["RUBYOPT"] = env["RUBYOPT"].sub "-rbundler/setup", ""</div><div class='add'>+        rubyopt = env["RUBYOPT"].split(" ")</div><div class='add'>+        rubyopt.delete("-r#{File.expand_path("bundler/setup", __dir__)}")</div><div class='add'>+        rubyopt.delete("-rbundler/setup")</div><div class='add'>+        env["RUBYOPT"] = rubyopt.join(" ")</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       if env.key?("RUBYLIB")</div><div class='ctx'>         rubylib = env["RUBYLIB"].split(File::PATH_SEPARATOR)</div><div class='del'>-        rubylib.delete(File.expand_path("..", __FILE__))</div><div class='add'>+        rubylib.delete(__dir__)</div><div class='ctx'>         env["RUBYLIB"] = rubylib.join(File::PATH_SEPARATOR)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       env</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Run block with environment present before Bundler was activated</div><div class='ctx'>     def with_original_env</div><div class='ctx'>       with_env(original_env) { yield }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # @deprecated Use `with_unbundled_env` instead</div><div class='ctx'>     def with_clean_env</div><div class='del'>-      with_env(clean_env) { yield }</div><div class='add'>+      Bundler::SharedHelpers.major_deprecation(</div><div class='add'>+        2,</div><div class='add'>+        "`Bundler.with_clean_env` has been deprecated in favor of `Bundler.with_unbundled_env`. " \</div><div class='add'>+        "If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env`",</div><div class='add'>+        :print_caller_location =&gt; true</div><div class='add'>+      )</div><div class='add'>+</div><div class='add'>+      with_env(unbundled_env) { yield }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Run block with all bundler-related variables removed</div><div class='add'>+    def with_unbundled_env</div><div class='add'>+      with_env(unbundled_env) { yield }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Run subcommand with the environment present before Bundler was activated</div><div class='add'>+    def original_system(*args)</div><div class='add'>+      with_original_env { Kernel.system(*args) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # @deprecated Use `unbundled_system` instead</div><div class='ctx'>     def clean_system(*args)</div><div class='del'>-      with_clean_env { Kernel.system(*args) }</div><div class='add'>+      Bundler::SharedHelpers.major_deprecation(</div><div class='add'>+        2,</div><div class='add'>+        "`Bundler.clean_system` has been deprecated in favor of `Bundler.unbundled_system`. " \</div><div class='add'>+        "If you instead want to run the command in the environment before bundler was originally loaded, use `Bundler.original_system`",</div><div class='add'>+        :print_caller_location =&gt; true</div><div class='add'>+      )</div><div class='add'>+</div><div class='add'>+      with_env(unbundled_env) { Kernel.system(*args) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Run subcommand in an environment with all bundler related variables removed</div><div class='add'>+    def unbundled_system(*args)</div><div class='add'>+      with_unbundled_env { Kernel.system(*args) }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Run a `Kernel.exec` to a subcommand with the environment present before Bundler was activated</div><div class='add'>+    def original_exec(*args)</div><div class='add'>+      with_original_env { Kernel.exec(*args) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # @deprecated Use `unbundled_exec` instead</div><div class='ctx'>     def clean_exec(*args)</div><div class='del'>-      with_clean_env { Kernel.exec(*args) }</div><div class='add'>+      Bundler::SharedHelpers.major_deprecation(</div><div class='add'>+        2,</div><div class='add'>+        "`Bundler.clean_exec` has been deprecated in favor of `Bundler.unbundled_exec`. " \</div><div class='add'>+        "If you instead want to exec to a command in the environment before bundler was originally loaded, use `Bundler.original_exec`",</div><div class='add'>+        :print_caller_location =&gt; true</div><div class='add'>+      )</div><div class='add'>+</div><div class='add'>+      with_env(unbundled_env) { Kernel.exec(*args) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Run a `Kernel.exec` to a subcommand in an environment with all bundler related variables removed</div><div class='add'>+    def unbundled_exec(*args)</div><div class='add'>+      with_env(unbundled_env) { Kernel.exec(*args) }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def local_platform</div><div class='hunk'>@@ -343,49 +477,21 @@ EOF</div><div class='ctx'>       # system binaries. If you put '-n foo' in your .gemrc, RubyGems will</div><div class='ctx'>       # install binstubs there instead. Unfortunately, RubyGems doesn't expose</div><div class='ctx'>       # that directory at all, so rather than parse .gemrc ourselves, we allow</div><div class='del'>-      # the directory to be set as well, via `bundle config bindir foo`.</div><div class='add'>+      # the directory to be set as well, via `bundle config set --local bindir foo`.</div><div class='ctx'>       Bundler.settings[:system_bindir] || Bundler.rubygems.gem_bindir</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def use_system_gems?</div><div class='del'>-      configured_bundle_path.use_system_gems?</div><div class='add'>+    def preferred_gemfile_name</div><div class='add'>+      Bundler.settings[:init_gems_rb] ? "gems.rb" : "Gemfile"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def requires_sudo?</div><div class='del'>-      return @requires_sudo if defined?(@requires_sudo_ran)</div><div class='del'>-</div><div class='del'>-      sudo_present = which "sudo" if settings.allow_sudo?</div><div class='del'>-</div><div class='del'>-      if sudo_present</div><div class='del'>-        # the bundle path and subdirectories need to be writable for RubyGems</div><div class='del'>-        # to be able to unpack and install gems without exploding</div><div class='del'>-        path = bundle_path</div><div class='del'>-        path = path.parent until path.exist?</div><div class='del'>-</div><div class='del'>-        # bins are written to a different location on OS X</div><div class='del'>-        bin_dir = Pathname.new(Bundler.system_bindir)</div><div class='del'>-        bin_dir = bin_dir.parent until bin_dir.exist?</div><div class='del'>-</div><div class='del'>-        # if any directory is not writable, we need sudo</div><div class='del'>-        files = [path, bin_dir] | Dir[bundle_path.join("build_info/*").to_s] | Dir[bundle_path.join("*").to_s]</div><div class='del'>-        unwritable_files = files.reject {|f| File.writable?(f) }</div><div class='del'>-        sudo_needed = !unwritable_files.empty?</div><div class='del'>-        if sudo_needed</div><div class='del'>-          Bundler.ui.warn "Following files may not be writable, so sudo is needed:\n  #{unwritable_files.map(&amp;:to_s).sort.join("\n  ")}"</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      @requires_sudo_ran = true</div><div class='del'>-      @requires_sudo = settings.allow_sudo? &amp;&amp; sudo_present &amp;&amp; sudo_needed</div><div class='add'>+    def use_system_gems?</div><div class='add'>+      configured_bundle_path.use_system_gems?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def mkdir_p(path, options = {})</div><div class='del'>-      if requires_sudo? &amp;&amp; !options[:no_sudo]</div><div class='del'>-        sudo "mkdir -p '#{path}'" unless File.exist?(path)</div><div class='del'>-      else</div><div class='del'>-        SharedHelpers.filesystem_access(path, :write) do |p|</div><div class='del'>-          FileUtils.mkdir_p(p)</div><div class='del'>-        end</div><div class='add'>+      SharedHelpers.filesystem_access(path, :write) do |p|</div><div class='add'>+        FileUtils.mkdir_p(p)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -393,7 +499,7 @@ EOF</div><div class='ctx'>       if File.file?(executable) &amp;&amp; File.executable?(executable)</div><div class='ctx'>         executable</div><div class='ctx'>       elsif paths = ENV["PATH"]</div><div class='del'>-        quote = '"'.freeze</div><div class='add'>+        quote = '"'</div><div class='ctx'>         paths.split(File::PATH_SEPARATOR).find do |path|</div><div class='ctx'>           path = path[1..-2] if path.start_with?(quote) &amp;&amp; path.end_with?(quote)</div><div class='ctx'>           executable_path = File.expand_path(executable, path)</div><div class='hunk'>@@ -402,40 +508,14 @@ EOF</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def sudo(str)</div><div class='del'>-      SUDO_MUTEX.synchronize do</div><div class='del'>-        prompt = "\n\n" + &lt;&lt;-PROMPT.gsub(/^ {6}/, "").strip + " "</div><div class='del'>-        Your user account isn't allowed to install to the system RubyGems.</div><div class='del'>-        You can cancel this installation and run:</div><div class='del'>-</div><div class='del'>-            bundle install --path vendor/bundle</div><div class='del'>-</div><div class='del'>-        to install the gems into ./vendor/bundle/, or you can enter your password</div><div class='del'>-        and install the bundled gems to RubyGems using sudo.</div><div class='del'>-</div><div class='del'>-        Password:</div><div class='del'>-        PROMPT</div><div class='del'>-</div><div class='del'>-        unless @prompted_for_sudo ||= system(%(sudo -k -p "#{prompt}" true))</div><div class='del'>-          raise SudoNotPermittedError,</div><div class='del'>-            "Bundler requires sudo access to install at the moment. " \</div><div class='del'>-            "Try installing again, granting Bundler sudo access when prompted, or installing into a different path."</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        `sudo -p "#{prompt}" #{str}`</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def read_file(file)</div><div class='ctx'>       SharedHelpers.filesystem_access(file, :read) do</div><div class='ctx'>         File.open(file, "r:UTF-8", &amp;:read)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def load_marshal(data)</div><div class='del'>-      Marshal.load(data)</div><div class='del'>-    rescue StandardError =&gt; e</div><div class='del'>-      raise MarshalError, "#{e.class}: #{e.message}"</div><div class='add'>+    def safe_load_marshal(data)</div><div class='add'>+      load_marshal(data, :marshal_proc =&gt; SafeMarshal.proc)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def load_gemspec(file, validate = false)</div><div class='hunk'>@@ -444,7 +524,7 @@ EOF</div><div class='ctx'>       @gemspec_cache[key] ||= load_gemspec_uncached(file, validate)</div><div class='ctx'>       # Protect against caching side-effected gemspecs by returning a</div><div class='ctx'>       # new instance each time.</div><div class='del'>-      @gemspec_cache[key].dup if @gemspec_cache[key]</div><div class='add'>+      @gemspec_cache[key]&amp;.dup</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def load_gemspec_uncached(file, validate = false)</div><div class='hunk'>@@ -471,7 +551,7 @@ EOF</div><div class='ctx'> </div><div class='ctx'>     def git_present?</div><div class='ctx'>       return @git_present if defined?(@git_present)</div><div class='del'>-      @git_present = Bundler.which("git") || Bundler.which("git.exe")</div><div class='add'>+      @git_present = Bundler.which("git#{RbConfig::CONFIG["EXEEXT"]}")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def feature_flag</div><div class='hunk'>@@ -484,11 +564,16 @@ EOF</div><div class='ctx'>       reset_rubygems!</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def reset_settings_and_root!</div><div class='add'>+      @settings = nil</div><div class='add'>+      @root = nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def reset_paths!</div><div class='ctx'>       @bin_path = nil</div><div class='ctx'>       @bundler_major_version = nil</div><div class='ctx'>       @bundle_path = nil</div><div class='del'>-      @configured = nil</div><div class='add'>+      @configure = nil</div><div class='ctx'>       @configured_bundle_path = nil</div><div class='ctx'>       @definition = nil</div><div class='ctx'>       @load = nil</div><div class='hunk'>@@ -506,15 +591,32 @@ EOF</div><div class='ctx'>       @rubygems = nil</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    def configure_gem_home_and_path(path = bundle_path)</div><div class='add'>+      configure_gem_path</div><div class='add'>+      configure_gem_home(path)</div><div class='add'>+      Bundler.rubygems.clear_paths</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self_manager</div><div class='add'>+      @self_manager ||= begin</div><div class='add'>+                          require_relative "bundler/self_manager"</div><div class='add'>+                          Bundler::SelfManager.new</div><div class='add'>+                        end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def load_marshal(data, marshal_proc: nil)</div><div class='add'>+      Marshal.load(data, marshal_proc)</div><div class='add'>+    rescue TypeError =&gt; e</div><div class='add'>+      raise MarshalError, "#{e.class}: #{e.message}"</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     def eval_yaml_gemspec(path, contents)</div><div class='del'>-      Kernel.send(:require, "bundler/psyched_yaml")</div><div class='add'>+      Kernel.require "psych"</div><div class='ctx'> </div><div class='del'>-      # If the YAML is invalid, Syck raises an ArgumentError, and Psych</div><div class='del'>-      # raises a Psych::SyntaxError. See psyched_yaml.rb for more info.</div><div class='ctx'>       Gem::Specification.from_yaml(contents)</div><div class='del'>-    rescue YamlLibrarySyntaxError, ArgumentError, Gem::EndOfYAMLException, Gem::Exception</div><div class='add'>+    rescue ::Psych::SyntaxError, ArgumentError, Gem::EndOfYAMLException, Gem::Exception</div><div class='ctx'>       eval_gemspec(path, contents)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -523,36 +625,29 @@ EOF</div><div class='ctx'>     rescue ScriptError, StandardError =&gt; e</div><div class='ctx'>       msg = "There was an error while loading `#{path.basename}`: #{e.message}"</div><div class='ctx'> </div><div class='del'>-      if e.is_a?(LoadError) &amp;&amp; RUBY_VERSION &gt;= "1.9"</div><div class='del'>-        msg += "\nDoes it try to require a relative path? That's been removed in Ruby 1.9"</div><div class='del'>-      end</div><div class='del'>-</div><div class='ctx'>       raise GemspecError, Dsl::DSLError.new(msg, path, e.backtrace, contents)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def configure_gem_home_and_path</div><div class='del'>-      configure_gem_path</div><div class='del'>-      configure_gem_home</div><div class='del'>-      bundle_path</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def configure_gem_path(env = ENV)</div><div class='del'>-      blank_home = env["GEM_HOME"].nil? || env["GEM_HOME"].empty?</div><div class='del'>-      if !use_system_gems?</div><div class='add'>+    def configure_gem_path</div><div class='add'>+      unless use_system_gems?</div><div class='ctx'>         # this needs to be empty string to cause</div><div class='ctx'>         # PathSupport.split_gem_path to only load up the</div><div class='ctx'>         # Bundler --path setting as the GEM_PATH.</div><div class='del'>-        env["GEM_PATH"] = ""</div><div class='del'>-      elsif blank_home</div><div class='del'>-        possibles = [Bundler.rubygems.gem_dir, Bundler.rubygems.gem_path]</div><div class='del'>-        paths = possibles.flatten.compact.uniq.reject(&amp;:empty?)</div><div class='del'>-        env["GEM_PATH"] = paths.join(File::PATH_SEPARATOR)</div><div class='add'>+        Bundler::SharedHelpers.set_env "GEM_PATH", ""</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def configure_gem_home</div><div class='del'>-      Bundler::SharedHelpers.set_env "GEM_HOME", File.expand_path(bundle_path, root)</div><div class='del'>-      Bundler.rubygems.clear_paths</div><div class='add'>+    def configure_gem_home(path)</div><div class='add'>+      Bundler::SharedHelpers.set_env "GEM_HOME", path.to_s</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def tmp_home_path</div><div class='add'>+      Kernel.send(:require, "tmpdir")</div><div class='add'>+      SharedHelpers.filesystem_access(Dir.tmpdir) do</div><div class='add'>+        path = Bundler.tmp</div><div class='add'>+        at_exit { Bundler.rm_rf(path) }</div><div class='add'>+        path</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # @param env [Hash]</div><div class='head'>diff --git a/lib/bundler/.document b/lib/bundler/.document<br/>new file mode 100644<br/>index 0000000000..238bbd8705<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/.document?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/.document</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+# not in RDoc</div><div class='head'>diff --git a/lib/bundler/build_metadata.rb b/lib/bundler/build_metadata.rb<br/>index 6146f16cb6..8bffb2fae7 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/build_metadata.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/build_metadata.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/build_metadata.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/build_metadata.rb</a></div><div class='hunk'>@@ -4,8 +4,6 @@ module Bundler</div><div class='ctx'>   # Represents metadata from when the Bundler gem was built.</div><div class='ctx'>   module BuildMetadata</div><div class='ctx'>     # begin ivars</div><div class='del'>-    @built_at = "2018-12-19".freeze</div><div class='del'>-    @git_commit_sha = "3fc4de72b".freeze</div><div class='ctx'>     @release = false</div><div class='ctx'>     # end ivars</div><div class='ctx'> </div><div class='hunk'>@@ -25,23 +23,15 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     # The SHA for the git commit the bundler gem was built from.</div><div class='ctx'>     def self.git_commit_sha</div><div class='del'>-      return @git_commit_sha if @git_commit_sha</div><div class='add'>+      return @git_commit_sha if instance_variable_defined? :@git_commit_sha</div><div class='ctx'> </div><div class='ctx'>       # If Bundler has been installed without its .git directory and without a</div><div class='ctx'>       # commit instance variable then we can't determine its commits SHA.</div><div class='del'>-      git_dir = File.join(File.expand_path("../../..", __FILE__), ".git")</div><div class='add'>+      git_dir = File.expand_path("../../../.git", __dir__)</div><div class='ctx'>       if File.directory?(git_dir)</div><div class='ctx'>         return @git_commit_sha = Dir.chdir(git_dir) { `git rev-parse --short HEAD`.strip.freeze }</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      # If Bundler is a submodule in RubyGems, get the submodule commit</div><div class='del'>-      git_sub_dir = File.join(File.expand_path("../../../..", __FILE__), ".git")</div><div class='del'>-      if File.directory?(git_sub_dir)</div><div class='del'>-        return @git_commit_sha = Dir.chdir(git_sub_dir) do</div><div class='del'>-          `git ls-tree --abbrev=8 HEAD bundler`.split(/\s/).fetch(2, "").strip.freeze</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='ctx'>       @git_commit_sha ||= "unknown"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/bundler.gemspec b/lib/bundler/bundler.gemspec<br/>new file mode 100644<br/>index 0000000000..da50b46225<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/bundler.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/bundler.gemspec</a></div><div class='hunk'>@@ -0,0 +1,43 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  require_relative "lib/bundler/version"</div><div class='add'>+rescue LoadError</div><div class='add'>+  # for Ruby core repository</div><div class='add'>+  require_relative "version"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |s|</div><div class='add'>+  s.name        = "bundler"</div><div class='add'>+  s.version     = Bundler::VERSION</div><div class='add'>+  s.license     = "MIT"</div><div class='add'>+  s.authors     = [</div><div class='add'>+    "AndrÃ© Arko", "Samuel Giddins", "Colby Swandale", "Hiroshi Shibata",</div><div class='add'>+    "David RodrÃ­guez", "Grey Baker", "Stephanie Morillo", "Chris Morris", "James Wen", "Tim Moore",</div><div class='add'>+    "AndrÃ© Medeiros", "Jessica Lynn Suttles", "Terence Lee", "Carl Lerche",</div><div class='add'>+    "Yehuda Katz"</div><div class='add'>+  ]</div><div class='add'>+  s.email       = ["team@bundler.io"]</div><div class='add'>+  s.homepage    = "https://bundler.io"</div><div class='add'>+  s.summary     = "The best way to manage your application's dependencies"</div><div class='add'>+  s.description = "Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably"</div><div class='add'>+</div><div class='add'>+  s.metadata = {</div><div class='add'>+    "bug_tracker_uri" =&gt; "https://github.com/rubygems/rubygems/issues?q=is%3Aopen+is%3Aissue+label%3ABundler",</div><div class='add'>+    "changelog_uri" =&gt; "https://github.com/rubygems/rubygems/blob/master/bundler/CHANGELOG.md",</div><div class='add'>+    "homepage_uri" =&gt; "https://bundler.io/",</div><div class='add'>+    "source_code_uri" =&gt; "https://github.com/rubygems/rubygems/tree/master/bundler",</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  s.required_ruby_version     = "&gt;= 2.6.0"</div><div class='add'>+  s.required_rubygems_version = "&gt;= 3.0.1"</div><div class='add'>+</div><div class='add'>+  s.files = Dir.glob("lib/bundler{.rb,/**/*}", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }</div><div class='add'>+</div><div class='add'>+  # include the gemspec itself because warbler breaks w/o it</div><div class='add'>+  s.files += %w[lib/bundler/bundler.gemspec]</div><div class='add'>+</div><div class='add'>+  s.bindir        = "libexec"</div><div class='add'>+  s.executables   = %w[bundle bundler]</div><div class='add'>+  s.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/capistrano.rb b/lib/bundler/capistrano.rb<br/>index 1b7145b72b..1f3712d48e 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/capistrano.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/capistrano.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/capistrano.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/capistrano.rb</a></div><div class='hunk'>@@ -1,18 +1,18 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/shared_helpers"</div><div class='add'>+require_relative "shared_helpers"</div><div class='ctx'> Bundler::SharedHelpers.major_deprecation 2,</div><div class='del'>-  "The Bundler task for Capistrano. Please use http://github.com/capistrano/bundler"</div><div class='add'>+  "The Bundler task for Capistrano. Please use https://github.com/capistrano/bundler"</div><div class='ctx'> </div><div class='ctx'> # Capistrano task for Bundler.</div><div class='ctx'> #</div><div class='ctx'> # Add "require 'bundler/capistrano'" in your Capistrano deploy.rb, and</div><div class='ctx'> # Bundler will be activated after each new deployment.</div><div class='del'>-require "bundler/deployment"</div><div class='add'>+require_relative "deployment"</div><div class='ctx'> require "capistrano/version"</div><div class='ctx'> </div><div class='ctx'> if defined?(Capistrano::Version) &amp;&amp; Gem::Version.new(Capistrano::Version).release &gt;= Gem::Version.new("3.0")</div><div class='del'>-  raise "For Capistrano 3.x integration, please use http://github.com/capistrano/bundler"</div><div class='add'>+  raise "For Capistrano 3.x integration, please use https://github.com/capistrano/bundler"</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> Capistrano::Configuration.instance(:must_exist).load do</div><div class='head'>diff --git a/lib/bundler/cli.rb b/lib/bundler/cli.rb<br/>index e658ffce72..a3eb494db2 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli.rb</a></div><div class='hunk'>@@ -1,24 +1,31 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler"</div><div class='del'>-require "bundler/vendored_thor"</div><div class='add'>+require_relative "vendored_thor"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class CLI &lt; Thor</div><div class='del'>-    require "bundler/cli/common"</div><div class='add'>+    require_relative "cli/common"</div><div class='ctx'> </div><div class='ctx'>     package_name "Bundler"</div><div class='ctx'> </div><div class='ctx'>     AUTO_INSTALL_CMDS = %w[show binstubs outdated exec open console licenses clean].freeze</div><div class='del'>-    PARSEABLE_COMMANDS = %w[</div><div class='del'>-      check config help exec platform show version</div><div class='del'>-    ].freeze</div><div class='add'>+    PARSEABLE_COMMANDS = %w[check config help exec platform show version].freeze</div><div class='add'>+    EXTENSIONS = ["c", "rust"].freeze</div><div class='add'>+</div><div class='add'>+    COMMAND_ALIASES = {</div><div class='add'>+      "check" =&gt; "c",</div><div class='add'>+      "install" =&gt; "i",</div><div class='add'>+      "plugin" =&gt; "",</div><div class='add'>+      "list" =&gt; "ls",</div><div class='add'>+      "exec" =&gt; ["e", "ex", "exe"],</div><div class='add'>+      "cache" =&gt; ["package", "pack"],</div><div class='add'>+      "version" =&gt; ["-v", "--version"],</div><div class='add'>+    }.freeze</div><div class='ctx'> </div><div class='ctx'>     def self.start(*)</div><div class='add'>+      check_deprecated_ext_option(ARGV) if ARGV.include?("--ext")</div><div class='add'>+</div><div class='ctx'>       super</div><div class='del'>-    rescue Exception =&gt; e</div><div class='del'>-      Bundler.ui = UI::Shell.new</div><div class='del'>-      raise e</div><div class='ctx'>     ensure</div><div class='ctx'>       Bundler::SharedHelpers.print_major_deprecations!</div><div class='ctx'>     end</div><div class='hunk'>@@ -30,15 +37,35 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def self.all_aliases</div><div class='add'>+      @all_aliases ||= begin</div><div class='add'>+                         command_aliases = {}</div><div class='add'>+</div><div class='add'>+                         COMMAND_ALIASES.each do |name, aliases|</div><div class='add'>+                           Array(aliases).each do |one_alias|</div><div class='add'>+                             command_aliases[one_alias] = name</div><div class='add'>+                           end</div><div class='add'>+                         end</div><div class='add'>+</div><div class='add'>+                         command_aliases</div><div class='add'>+                       end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.aliases_for(command_name)</div><div class='add'>+      COMMAND_ALIASES.select {|k, _| k == command_name }.invert</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def initialize(*args)</div><div class='ctx'>       super</div><div class='ctx'> </div><div class='ctx'>       custom_gemfile = options[:gemfile] || Bundler.settings[:gemfile]</div><div class='ctx'>       if custom_gemfile &amp;&amp; !custom_gemfile.empty?</div><div class='ctx'>         Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", File.expand_path(custom_gemfile)</div><div class='del'>-        Bundler.reset_paths!</div><div class='add'>+        Bundler.reset_settings_and_root!</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      Bundler.self_manager.restart_with_locked_bundler_if_needed</div><div class='add'>+</div><div class='ctx'>       Bundler.settings.set_command_option_if_given :retry, options[:retry]</div><div class='ctx'> </div><div class='ctx'>       current_cmd = args.last[:current_command].name</div><div class='hunk'>@@ -51,19 +78,6 @@ module Bundler</div><div class='ctx'>       Bundler.ui = UI::Shell.new(options)</div><div class='ctx'>       Bundler.ui.level = "debug" if options["verbose"]</div><div class='ctx'>       unprinted_warnings.each {|w| Bundler.ui.warn(w) }</div><div class='del'>-</div><div class='del'>-      if ENV["RUBYGEMS_GEMDEPS"] &amp;&amp; !ENV["RUBYGEMS_GEMDEPS"].empty?</div><div class='del'>-        Bundler.ui.warn(</div><div class='del'>-          "The RUBYGEMS_GEMDEPS environment variable is set. This enables RubyGems' " \</div><div class='del'>-          "experimental Gemfile mode, which may conflict with Bundler and cause unexpected errors. " \</div><div class='del'>-          "To remove this warning, unset RUBYGEMS_GEMDEPS.", :wrap =&gt; true</div><div class='del'>-        )</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def self.deprecated_option(*args, &amp;blk)</div><div class='del'>-      return if Bundler.feature_flag.forget_cli_options?</div><div class='del'>-      method_option(*args, &amp;blk)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     check_unknown_options!(:except =&gt; [:config, :exec])</div><div class='hunk'>@@ -74,9 +88,7 @@ module Bundler</div><div class='ctx'>       version</div><div class='ctx'>       Bundler.ui.info "\n"</div><div class='ctx'> </div><div class='del'>-      primary_commands = ["install", "update",</div><div class='del'>-                          Bundler.feature_flag.cache_command_is_package? ? "cache" : "package",</div><div class='del'>-                          "exec", "config", "help"]</div><div class='add'>+      primary_commands = ["install", "update", "cache", "exec", "config", "help"]</div><div class='ctx'> </div><div class='ctx'>       list = self.class.printable_commands(true)</div><div class='ctx'>       by_name = list.group_by {|name, _message| name.match(/^bundle (\w+)/)[1] }</div><div class='hunk'>@@ -108,16 +120,17 @@ module Bundler</div><div class='ctx'>       else command = "bundle-#{cli}"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      man_path  = File.expand_path("../../../man", __FILE__)</div><div class='del'>-      man_pages = Hash[Dir.glob(File.join(man_path, "*")).grep(/.*\.\d*\Z/).collect do |f|</div><div class='add'>+      man_path = File.expand_path("man", __dir__)</div><div class='add'>+      man_pages = Hash[Dir.glob(File.join(man_path, "**", "*")).grep(/.*\.\d*\Z/).collect do |f|</div><div class='ctx'>         [File.basename(f, ".*"), f]</div><div class='ctx'>       end]</div><div class='ctx'> </div><div class='ctx'>       if man_pages.include?(command)</div><div class='add'>+        man_page = man_pages[command]</div><div class='ctx'>         if Bundler.which("man") &amp;&amp; man_path !~ %r{^file:/.+!/META-INF/jruby.home/.+}</div><div class='del'>-          Kernel.exec "man #{man_pages[command]}"</div><div class='add'>+          Kernel.exec "man #{man_page}"</div><div class='ctx'>         else</div><div class='del'>-          puts File.read("#{man_path}/#{File.basename(man_pages[command])}.txt")</div><div class='add'>+          puts File.read("#{man_path}/#{File.basename(man_page)}.ronn")</div><div class='ctx'>         end</div><div class='ctx'>       elsif command_path = Bundler.which("bundler-#{cli}")</div><div class='ctx'>         Kernel.exec(command_path, "--help")</div><div class='hunk'>@@ -142,9 +155,10 @@ module Bundler</div><div class='ctx'>       Gemfile to a gem with a gemspec, the --gemspec option will automatically add each</div><div class='ctx'>       dependency listed in the gemspec file to the newly created Gemfile.</div><div class='ctx'>     D</div><div class='del'>-    deprecated_option "gemspec", :type =&gt; :string, :banner =&gt; "Use the specified .gemspec to create the Gemfile"</div><div class='add'>+    method_option "gemspec", :type =&gt; :string, :banner =&gt; "Use the specified .gemspec to create the Gemfile"</div><div class='add'>+    method_option "gemfile", :type =&gt; :string, :banner =&gt; "Use the specified name for the gemfile instead of 'Gemfile'"</div><div class='ctx'>     def init</div><div class='del'>-      require "bundler/cli/init"</div><div class='add'>+      require_relative "cli/init"</div><div class='ctx'>       Init.new(options.dup).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -160,12 +174,15 @@ module Bundler</div><div class='ctx'>       "Use the specified gemfile instead of Gemfile"</div><div class='ctx'>     method_option "path", :type =&gt; :string, :banner =&gt;</div><div class='ctx'>       "Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME).#{" Bundler will remember this value for future installs on this machine" unless Bundler.feature_flag.forget_cli_options?}"</div><div class='del'>-    map "c" =&gt; "check"</div><div class='ctx'>     def check</div><div class='del'>-      require "bundler/cli/check"</div><div class='add'>+      remembered_flag_deprecation("path")</div><div class='add'>+</div><div class='add'>+      require_relative "cli/check"</div><div class='ctx'>       Check.new(options).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    map aliases_for("check")</div><div class='add'>+</div><div class='ctx'>     desc "remove [GEM [GEM ...]]", "Removes gems from the Gemfile"</div><div class='ctx'>     long_desc &lt;&lt;-D</div><div class='ctx'>       Removes the given gems from the Gemfile while ensuring that the resulting Gemfile is still valid. If the gem is not found, Bundler prints a error message and if gem could not be removed due to any reason Bundler will display a warning.</div><div class='hunk'>@@ -173,7 +190,8 @@ module Bundler</div><div class='ctx'>     method_option "install", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Runs 'bundle install' after removing the gems from the Gemfile"</div><div class='ctx'>     def remove(*gems)</div><div class='del'>-      require "bundler/cli/remove"</div><div class='add'>+      SharedHelpers.major_deprecation(2, "The `--install` flag has been deprecated. `bundle install` is triggered by default.") if ARGV.include?("--install")</div><div class='add'>+      require_relative "cli/remove"</div><div class='ctx'>       Remove.new(gems, options).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -188,13 +206,13 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       If the bundle has already been installed, bundler will tell you so and then exit.</div><div class='ctx'>     D</div><div class='del'>-    deprecated_option "binstubs", :type =&gt; :string, :lazy_default =&gt; "bin", :banner =&gt;</div><div class='add'>+    method_option "binstubs", :type =&gt; :string, :lazy_default =&gt; "bin", :banner =&gt;</div><div class='ctx'>       "Generate bin stubs for bundled gems to ./bin"</div><div class='del'>-    deprecated_option "clean", :type =&gt; :boolean, :banner =&gt;</div><div class='add'>+    method_option "clean", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Run bundle clean automatically after install"</div><div class='del'>-    deprecated_option "deployment", :type =&gt; :boolean, :banner =&gt;</div><div class='add'>+    method_option "deployment", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Install using defaults tuned for deployment environments"</div><div class='del'>-    deprecated_option "frozen", :type =&gt; :boolean, :banner =&gt;</div><div class='add'>+    method_option "frozen", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Do not allow the Gemfile.lock to be updated after this install"</div><div class='ctx'>     method_option "full-index", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Fall back to using the single-file index of all gems"</div><div class='hunk'>@@ -204,38 +222,48 @@ module Bundler</div><div class='ctx'>       "Specify the number of jobs to run in parallel"</div><div class='ctx'>     method_option "local", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Do not attempt to fetch gems remotely and use the gem cache instead"</div><div class='del'>-    deprecated_option "no-cache", :type =&gt; :boolean, :banner =&gt;</div><div class='add'>+    method_option "prefer-local", :type =&gt; :boolean, :banner =&gt;</div><div class='add'>+      "Only attempt to fetch gems remotely if not present locally, even if newer versions are available remotely"</div><div class='add'>+    method_option "no-cache", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Don't update the existing gem cache."</div><div class='ctx'>     method_option "redownload", :type =&gt; :boolean, :aliases =&gt; "--force", :banner =&gt;</div><div class='ctx'>       "Force downloading every gem."</div><div class='del'>-    deprecated_option "no-prune", :type =&gt; :boolean, :banner =&gt;</div><div class='add'>+    method_option "no-prune", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Don't remove stale gems from the cache."</div><div class='del'>-    deprecated_option "path", :type =&gt; :string, :banner =&gt;</div><div class='del'>-      "Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME). Bundler will remember this value for future installs on this machine"</div><div class='add'>+    method_option "path", :type =&gt; :string, :banner =&gt;</div><div class='add'>+      "Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME).#{" Bundler will remember this value for future installs on this machine" unless Bundler.feature_flag.forget_cli_options?}"</div><div class='ctx'>     method_option "quiet", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Only output warnings and errors."</div><div class='del'>-    deprecated_option "shebang", :type =&gt; :string, :banner =&gt;</div><div class='add'>+    method_option "shebang", :type =&gt; :string, :banner =&gt;</div><div class='ctx'>       "Specify a different shebang executable name than the default (usually 'ruby')"</div><div class='ctx'>     method_option "standalone", :type =&gt; :array, :lazy_default =&gt; [], :banner =&gt;</div><div class='ctx'>       "Make a bundle that can work without the Bundler runtime"</div><div class='del'>-    deprecated_option "system", :type =&gt; :boolean, :banner =&gt;</div><div class='add'>+    method_option "system", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application"</div><div class='ctx'>     method_option "trust-policy", :alias =&gt; "P", :type =&gt; :string, :banner =&gt;</div><div class='ctx'>       "Gem trust policy (like gem install -P). Must be one of " +</div><div class='del'>-        Bundler.rubygems.security_policy_keys.join("|")</div><div class='del'>-    deprecated_option "without", :type =&gt; :array, :banner =&gt;</div><div class='add'>+      Bundler.rubygems.security_policy_keys.join("|")</div><div class='add'>+    method_option "without", :type =&gt; :array, :banner =&gt;</div><div class='ctx'>       "Exclude gems that are part of the specified named group."</div><div class='del'>-    deprecated_option "with", :type =&gt; :array, :banner =&gt;</div><div class='add'>+    method_option "with", :type =&gt; :array, :banner =&gt;</div><div class='ctx'>       "Include gems that are part of the specified named group."</div><div class='del'>-    map "i" =&gt; "install"</div><div class='ctx'>     def install</div><div class='ctx'>       SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")</div><div class='del'>-      require "bundler/cli/install"</div><div class='add'>+</div><div class='add'>+      %w[clean deployment frozen no-prune path shebang system without with].each do |option|</div><div class='add'>+        remembered_flag_deprecation(option)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      remembered_negative_flag_deprecation("no-deployment")</div><div class='add'>+</div><div class='add'>+      require_relative "cli/install"</div><div class='ctx'>       Bundler.settings.temporary(:no_install =&gt; false) do</div><div class='ctx'>         Install.new(options.dup).run</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    map aliases_for("install")</div><div class='add'>+</div><div class='ctx'>     desc "update [OPTIONS]", "Update the current environment"</div><div class='ctx'>     long_desc &lt;&lt;-D</div><div class='ctx'>       Update will install the newest versions of the gems listed in the Gemfile. Use</div><div class='hunk'>@@ -268,6 +296,8 @@ module Bundler</div><div class='ctx'>       "Prefer updating only to next minor version"</div><div class='ctx'>     method_option "major", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Prefer updating to next major version (default)"</div><div class='add'>+    method_option "pre", :type =&gt; :boolean, :banner =&gt;</div><div class='add'>+      "Always choose the highest allowed version when updating gems, regardless of prerelease status"</div><div class='ctx'>     method_option "strict", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Do not allow any gem to be updated past latest --patch | --minor | --major"</div><div class='ctx'>     method_option "conservative", :type =&gt; :boolean, :banner =&gt;</div><div class='hunk'>@@ -276,8 +306,10 @@ module Bundler</div><div class='ctx'>       "Update everything."</div><div class='ctx'>     def update(*gems)</div><div class='ctx'>       SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")</div><div class='del'>-      require "bundler/cli/update"</div><div class='del'>-      Update.new(options, gems).run</div><div class='add'>+      require_relative "cli/update"</div><div class='add'>+      Bundler.settings.temporary(:no_install =&gt; false) do</div><div class='add'>+        Update.new(options, gems).run</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     desc "show GEM [OPTIONS]", "Shows all gems that are part of the bundle, or the path to a given gem"</div><div class='hunk'>@@ -290,46 +322,28 @@ module Bundler</div><div class='ctx'>     method_option "outdated", :type =&gt; :boolean,</div><div class='ctx'>                               :banner =&gt; "Show verbose output including whether gems are outdated."</div><div class='ctx'>     def show(gem_name = nil)</div><div class='del'>-      if ARGV[0] == "show"</div><div class='del'>-        rest = ARGV[1..-1]</div><div class='del'>-</div><div class='del'>-        new_command = rest.find {|arg| !arg.start_with?("--") } ? "info" : "list"</div><div class='del'>-</div><div class='del'>-        new_arguments = rest.map do |arg|</div><div class='del'>-          next arg if arg != "--paths"</div><div class='del'>-          next "--path" if new_command == "info"</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        old_argv = ARGV.join(" ")</div><div class='del'>-        new_argv = [new_command, *new_arguments.compact].join(" ")</div><div class='del'>-</div><div class='del'>-        Bundler::SharedHelpers.major_deprecation(2, "use `bundle #{new_argv}` instead of `bundle #{old_argv}`")</div><div class='del'>-      end</div><div class='del'>-      require "bundler/cli/show"</div><div class='add'>+      SharedHelpers.major_deprecation(2, "the `--outdated` flag to `bundle show` was undocumented and will be removed without replacement") if ARGV.include?("--outdated")</div><div class='add'>+      require_relative "cli/show"</div><div class='ctx'>       Show.new(options, gem_name).run</div><div class='ctx'>     end</div><div class='del'>-    # TODO: 2.0 remove `bundle show`</div><div class='del'>-</div><div class='del'>-    if Bundler.feature_flag.list_command?</div><div class='del'>-      desc "list", "List all gems in the bundle"</div><div class='del'>-      method_option "name-only", :type =&gt; :boolean, :banner =&gt; "print only the gem names"</div><div class='del'>-      method_option "only-group", :type =&gt; :string, :banner =&gt; "print gems from a particular group"</div><div class='del'>-      method_option "without-group", :type =&gt; :string, :banner =&gt; "print all gems expect from a group"</div><div class='del'>-      method_option "paths", :type =&gt; :boolean, :banner =&gt; "print the path to each gem in the bundle"</div><div class='del'>-      def list</div><div class='del'>-        require "bundler/cli/list"</div><div class='del'>-        List.new(options).run</div><div class='del'>-      end</div><div class='ctx'> </div><div class='del'>-      map %w[ls] =&gt; "list"</div><div class='del'>-    else</div><div class='del'>-      map %w[list] =&gt; "show"</div><div class='add'>+    desc "list", "List all gems in the bundle"</div><div class='add'>+    method_option "name-only", :type =&gt; :boolean, :banner =&gt; "print only the gem names"</div><div class='add'>+    method_option "only-group", :type =&gt; :array, :default =&gt; [], :banner =&gt; "print gems from a given set of groups"</div><div class='add'>+    method_option "without-group", :type =&gt; :array, :default =&gt; [], :banner =&gt; "print all gems except from a given set of groups"</div><div class='add'>+    method_option "paths", :type =&gt; :boolean, :banner =&gt; "print the path to each gem in the bundle"</div><div class='add'>+    def list</div><div class='add'>+      require_relative "cli/list"</div><div class='add'>+      List.new(options).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    map aliases_for("list")</div><div class='add'>+</div><div class='ctx'>     desc "info GEM [OPTIONS]", "Show information for the given gem"</div><div class='ctx'>     method_option "path", :type =&gt; :boolean, :banner =&gt; "Print full path to gem"</div><div class='add'>+    method_option "version", :type =&gt; :boolean, :banner =&gt; "Print gem version"</div><div class='ctx'>     def info(gem_name)</div><div class='del'>-      require "bundler/cli/info"</div><div class='add'>+      require_relative "cli/info"</div><div class='ctx'>       Info.new(options, gem_name).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -349,8 +363,10 @@ module Bundler</div><div class='ctx'>       "Make binstubs that can work without the Bundler runtime"</div><div class='ctx'>     method_option "all", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Install binstubs for all gems"</div><div class='add'>+    method_option "all-platforms", :type =&gt; :boolean, :default =&gt; false, :banner =&gt;</div><div class='add'>+      "Install binstubs for all platforms"</div><div class='ctx'>     def binstubs(*gems)</div><div class='del'>-      require "bundler/cli/binstubs"</div><div class='add'>+      require_relative "cli/binstubs"</div><div class='ctx'>       Binstubs.new(options, gems).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -361,12 +377,18 @@ module Bundler</div><div class='ctx'>     method_option "version", :aliases =&gt; "-v", :type =&gt; :string</div><div class='ctx'>     method_option "group", :aliases =&gt; "-g", :type =&gt; :string</div><div class='ctx'>     method_option "source", :aliases =&gt; "-s", :type =&gt; :string</div><div class='add'>+    method_option "require", :aliases =&gt; "-r", :type =&gt; :string, :banner =&gt; "Adds require path to gem. Provide false, or a path as a string."</div><div class='add'>+    method_option "path", :type =&gt; :string</div><div class='add'>+    method_option "git", :type =&gt; :string</div><div class='add'>+    method_option "github", :type =&gt; :string</div><div class='add'>+    method_option "branch", :type =&gt; :string</div><div class='add'>+    method_option "ref", :type =&gt; :string</div><div class='ctx'>     method_option "skip-install", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Adds gem to the Gemfile but does not install it"</div><div class='ctx'>     method_option "optimistic", :type =&gt; :boolean, :banner =&gt; "Adds optimistic declaration of version to gem"</div><div class='ctx'>     method_option "strict", :type =&gt; :boolean, :banner =&gt; "Adds strict declaration of version to gem"</div><div class='ctx'>     def add(*gems)</div><div class='del'>-      require "bundler/cli/add"</div><div class='add'>+      require_relative "cli/add"</div><div class='ctx'>       Add.new(options.dup, gems).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -378,7 +400,7 @@ module Bundler</div><div class='ctx'>       are up to date, Bundler will exit with a status of 0. Otherwise, it will exit 1.</div><div class='ctx'> </div><div class='ctx'>       For more information on patch level options (--major, --minor, --patch,</div><div class='del'>-      --update-strict) see documentation on the same options on the update command.</div><div class='add'>+      --strict) see documentation on the same options on the update command.</div><div class='ctx'>     D</div><div class='ctx'>     method_option "group", :type =&gt; :string, :banner =&gt; "List gems from a specific group"</div><div class='ctx'>     method_option "groups", :type =&gt; :boolean, :banner =&gt; "List gems organized by groups"</div><div class='hunk'>@@ -386,7 +408,7 @@ module Bundler</div><div class='ctx'>       "Do not attempt to fetch gems remotely and use the gem cache instead"</div><div class='ctx'>     method_option "pre", :type =&gt; :boolean, :banner =&gt; "Check for newer pre-release gems"</div><div class='ctx'>     method_option "source", :type =&gt; :array, :banner =&gt; "Check against a specific source"</div><div class='del'>-    method_option "strict", :type =&gt; :boolean, :banner =&gt;</div><div class='add'>+    method_option "filter-strict", :type =&gt; :boolean, :aliases =&gt; "--strict", :banner =&gt;</div><div class='ctx'>       "Only list newer versions allowed by your Gemfile requirements"</div><div class='ctx'>     method_option "update-strict", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Strict conservative resolution, do not allow any gem to be updated past latest --patch | --minor | --major"</div><div class='hunk'>@@ -401,68 +423,77 @@ module Bundler</div><div class='ctx'>     method_option "only-explicit", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "Only list gems specified in your Gemfile, not their dependencies"</div><div class='ctx'>     def outdated(*gems)</div><div class='del'>-      require "bundler/cli/outdated"</div><div class='add'>+      require_relative "cli/outdated"</div><div class='ctx'>       Outdated.new(options, gems).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    if Bundler.feature_flag.cache_command_is_package?</div><div class='del'>-      map %w[cache] =&gt; :package</div><div class='del'>-    else</div><div class='del'>-      desc "cache [OPTIONS]", "Cache all the gems to vendor/cache", :hide =&gt; true</div><div class='del'>-      unless Bundler.feature_flag.cache_command_is_package?</div><div class='del'>-        method_option "all", :type =&gt; :boolean,</div><div class='del'>-                             :banner =&gt; "Include all sources (including path and git)."</div><div class='del'>-      end</div><div class='del'>-      method_option "all-platforms", :type =&gt; :boolean, :banner =&gt; "Include gems for all platforms present in the lockfile, not only the current one"</div><div class='del'>-      method_option "no-prune", :type =&gt; :boolean, :banner =&gt; "Don't remove stale gems from the cache."</div><div class='del'>-      def cache</div><div class='del'>-        require "bundler/cli/cache"</div><div class='del'>-        Cache.new(options).run</div><div class='del'>-      end</div><div class='add'>+    desc "fund [OPTIONS]", "Lists information about gems seeking funding assistance"</div><div class='add'>+    method_option "group", :aliases =&gt; "-g", :type =&gt; :array, :banner =&gt;</div><div class='add'>+      "Fetch funding information for a specific group"</div><div class='add'>+    def fund</div><div class='add'>+      require_relative "cli/fund"</div><div class='add'>+      Fund.new(options).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    desc "#{Bundler.feature_flag.cache_command_is_package? ? :cache : :package} [OPTIONS]", "Locks and then caches all of the gems into vendor/cache"</div><div class='del'>-    unless Bundler.feature_flag.cache_command_is_package?</div><div class='del'>-      method_option "all",  :type =&gt; :boolean,</div><div class='del'>-                            :banner =&gt; "Include all sources (including path and git)."</div><div class='del'>-    end</div><div class='add'>+    desc "cache [OPTIONS]", "Locks and then caches all of the gems into vendor/cache"</div><div class='add'>+    method_option "all",  :type =&gt; :boolean,</div><div class='add'>+                          :default =&gt; Bundler.feature_flag.cache_all?,</div><div class='add'>+                          :banner =&gt; "Include all sources (including path and git)."</div><div class='ctx'>     method_option "all-platforms", :type =&gt; :boolean, :banner =&gt; "Include gems for all platforms present in the lockfile, not only the current one"</div><div class='ctx'>     method_option "cache-path", :type =&gt; :string, :banner =&gt;</div><div class='ctx'>       "Specify a different cache path than the default (vendor/cache)."</div><div class='ctx'>     method_option "gemfile", :type =&gt; :string, :banner =&gt; "Use the specified gemfile instead of Gemfile"</div><div class='del'>-    method_option "no-install", :type =&gt; :boolean, :banner =&gt; "Don't install the gems, only the package."</div><div class='add'>+    method_option "no-install", :type =&gt; :boolean, :banner =&gt; "Don't install the gems, only update the cache."</div><div class='ctx'>     method_option "no-prune", :type =&gt; :boolean, :banner =&gt; "Don't remove stale gems from the cache."</div><div class='ctx'>     method_option "path", :type =&gt; :string, :banner =&gt;</div><div class='del'>-      "Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME). Bundler will remember this value for future installs on this machine"</div><div class='add'>+      "Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME).#{" Bundler will remember this value for future installs on this machine" unless Bundler.feature_flag.forget_cli_options?}"</div><div class='ctx'>     method_option "quiet", :type =&gt; :boolean, :banner =&gt; "Only output warnings and errors."</div><div class='ctx'>     method_option "frozen", :type =&gt; :boolean, :banner =&gt;</div><div class='del'>-      "Do not allow the Gemfile.lock to be updated after this package operation's install"</div><div class='add'>+      "Do not allow the Gemfile.lock to be updated after this bundle cache operation's install"</div><div class='ctx'>     long_desc &lt;&lt;-D</div><div class='del'>-      The package command will copy the .gem files for every gem in the bundle into the</div><div class='add'>+      The cache command will copy the .gem files for every gem in the bundle into the</div><div class='ctx'>       directory ./vendor/cache. If you then check that directory into your source</div><div class='ctx'>       control repository, others who check out your source will be able to install the</div><div class='ctx'>       bundle without having to download any additional gems.</div><div class='ctx'>     D</div><div class='del'>-    def package</div><div class='del'>-      require "bundler/cli/package"</div><div class='del'>-      Package.new(options).run</div><div class='add'>+    def cache</div><div class='add'>+      SharedHelpers.major_deprecation 2,</div><div class='add'>+        "The `--all` flag is deprecated because it relies on being " \</div><div class='add'>+        "remembered across bundler invocations, which bundler will no longer " \</div><div class='add'>+        "do in future versions. Instead please use `bundle config set cache_all true`, " \</div><div class='add'>+        "and stop using this flag" if ARGV.include?("--all")</div><div class='add'>+</div><div class='add'>+      SharedHelpers.major_deprecation 2,</div><div class='add'>+        "The `--path` flag is deprecated because its semantics are unclear. " \</div><div class='add'>+        "Use `bundle config cache_path` to configure the path of your cache of gems, " \</div><div class='add'>+        "and `bundle config path` to configure the path where your gems are installed, " \</div><div class='add'>+        "and stop using this flag" if ARGV.include?("--path")</div><div class='add'>+</div><div class='add'>+      require_relative "cli/cache"</div><div class='add'>+      Cache.new(options).run</div><div class='ctx'>     end</div><div class='del'>-    map %w[pack] =&gt; :package</div><div class='add'>+</div><div class='add'>+    map aliases_for("cache")</div><div class='ctx'> </div><div class='ctx'>     desc "exec [OPTIONS]", "Run the command in context of the bundle"</div><div class='del'>-    method_option :keep_file_descriptors, :type =&gt; :boolean, :default =&gt; false</div><div class='add'>+    method_option :keep_file_descriptors, :type =&gt; :boolean, :default =&gt; true</div><div class='ctx'>     method_option :gemfile, :type =&gt; :string, :required =&gt; false</div><div class='ctx'>     long_desc &lt;&lt;-D</div><div class='ctx'>       Exec runs a command, providing it access to the gems in the bundle. While using</div><div class='ctx'>       bundle exec you can require and call the bundled gems as if they were installed</div><div class='ctx'>       into the system wide RubyGems repository.</div><div class='ctx'>     D</div><div class='del'>-    map "e" =&gt; "exec"</div><div class='ctx'>     def exec(*args)</div><div class='del'>-      require "bundler/cli/exec"</div><div class='add'>+      if ARGV.include?("--no-keep-file-descriptors")</div><div class='add'>+        SharedHelpers.major_deprecation(2, "The `--no-keep-file-descriptors` has been deprecated. `bundle exec` no longer mess with your file descriptors. Close them in the exec'd script if you need to")</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      require_relative "cli/exec"</div><div class='ctx'>       Exec.new(options, args).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    map aliases_for("exec")</div><div class='add'>+</div><div class='ctx'>     desc "config NAME [VALUE]", "Retrieve or set a configuration value"</div><div class='ctx'>     long_desc &lt;&lt;-D</div><div class='ctx'>       Retrieves or sets a configuration value. If only one parameter is provided, retrieve the value. If two parameters are provided, replace the</div><div class='hunk'>@@ -471,31 +502,29 @@ module Bundler</div><div class='ctx'>       By default, setting a configuration value sets it for all projects</div><div class='ctx'>       on the machine.</div><div class='ctx'> </div><div class='del'>-      If a global setting is superceded by local configuration, this command</div><div class='del'>-      will show the current value, as well as any superceded values and</div><div class='add'>+      If a global setting is superseded by local configuration, this command</div><div class='add'>+      will show the current value, as well as any superseded values and</div><div class='ctx'>       where they were specified.</div><div class='ctx'>     D</div><div class='del'>-    method_option "parseable", :type =&gt; :boolean, :banner =&gt; "Use minimal formatting for more parseable output"</div><div class='del'>-    def config(*args)</div><div class='del'>-      require "bundler/cli/config"</div><div class='del'>-      Config.new(options, args, self).run</div><div class='del'>-    end</div><div class='add'>+    require_relative "cli/config"</div><div class='add'>+    subcommand "config", Config</div><div class='ctx'> </div><div class='ctx'>     desc "open GEM", "Opens the source directory of the given bundled gem"</div><div class='add'>+    method_option "path", :type =&gt; :string, :lazy_default =&gt; "", :banner =&gt; "Open relative path of the gem source."</div><div class='ctx'>     def open(name)</div><div class='del'>-      require "bundler/cli/open"</div><div class='add'>+      require_relative "cli/open"</div><div class='ctx'>       Open.new(options, name).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    if Bundler.feature_flag.console_command?</div><div class='add'>+    unless Bundler.feature_flag.bundler_3_mode?</div><div class='ctx'>       desc "console [GROUP]", "Opens an IRB session with the bundle pre-loaded"</div><div class='ctx'>       def console(group = nil)</div><div class='del'>-        require "bundler/cli/console"</div><div class='add'>+        require_relative "cli/console"</div><div class='ctx'>         Console.new(options, group).run</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    desc "version", "Prints the bundler's version information"</div><div class='add'>+    desc "version", "Prints Bundler version information"</div><div class='ctx'>     def version</div><div class='ctx'>       cli_help = current_command.name == "cli_help"</div><div class='ctx'>       if cli_help || ARGV.include?("version")</div><div class='hunk'>@@ -508,7 +537,8 @@ module Bundler</div><div class='ctx'>         Bundler.ui.info "Bundler version #{Bundler::VERSION}#{build_info}"</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='del'>-    map %w[-v --version] =&gt; :version</div><div class='add'>+</div><div class='add'>+    map aliases_for("version")</div><div class='ctx'> </div><div class='ctx'>     desc "licenses", "Prints the license of all gems in the bundle"</div><div class='ctx'>     def licenses</div><div class='hunk'>@@ -524,7 +554,7 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    if Bundler.feature_flag.viz_command?</div><div class='add'>+    unless Bundler.feature_flag.bundler_3_mode?</div><div class='ctx'>       desc "viz [OPTIONS]", "Generates a visual dependency graph", :hide =&gt; true</div><div class='ctx'>       long_desc &lt;&lt;-D</div><div class='ctx'>         Viz generates a PNG file of the current Gemfile as a dependency graph.</div><div class='hunk'>@@ -537,8 +567,8 @@ module Bundler</div><div class='ctx'>       method_option :version, :type =&gt; :boolean, :default =&gt; false, :aliases =&gt; "-v", :desc =&gt; "Set to show each gem version."</div><div class='ctx'>       method_option :without, :type =&gt; :array, :default =&gt; [], :aliases =&gt; "-W", :banner =&gt; "GROUP[ GROUP...]", :desc =&gt; "Exclude gems that are part of the specified named group."</div><div class='ctx'>       def viz</div><div class='del'>-        SharedHelpers.major_deprecation 2, "The `viz` command has been moved to the `bundle-viz` gem, see https://github.com/bundler/bundler-viz"</div><div class='del'>-        require "bundler/cli/viz"</div><div class='add'>+        SharedHelpers.major_deprecation 2, "The `viz` command has been renamed to `graph` and moved to a plugin. See https://github.com/rubygems/bundler-graph"</div><div class='add'>+        require_relative "cli/viz"</div><div class='ctx'>         Viz.new(options.dup).run</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -547,14 +577,23 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     desc "gem NAME [OPTIONS]", "Creates a skeleton for creating a rubygem"</div><div class='ctx'>     method_option :exe, :type =&gt; :boolean, :default =&gt; false, :aliases =&gt; ["--bin", "-b"], :desc =&gt; "Generate a binary executable for your library."</div><div class='del'>-    method_option :coc, :type =&gt; :boolean, :desc =&gt; "Generate a code of conduct file. Set a default with `bundle config gem.coc true`."</div><div class='add'>+    method_option :coc, :type =&gt; :boolean, :desc =&gt; "Generate a code of conduct file. Set a default with `bundle config set --global gem.coc true`."</div><div class='ctx'>     method_option :edit, :type =&gt; :string, :aliases =&gt; "-e", :required =&gt; false, :banner =&gt; "EDITOR",</div><div class='ctx'>                          :lazy_default =&gt; [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? &amp;&amp; !e.empty? },</div><div class='ctx'>                          :desc =&gt; "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)"</div><div class='del'>-    method_option :ext, :type =&gt; :boolean, :default =&gt; false, :desc =&gt; "Generate the boilerplate for C extension code"</div><div class='del'>-    method_option :mit, :type =&gt; :boolean, :desc =&gt; "Generate an MIT license file. Set a default with `bundle config gem.mit true`."</div><div class='del'>-    method_option :test, :type =&gt; :string, :lazy_default =&gt; "rspec", :aliases =&gt; "-t", :banner =&gt; "rspec",</div><div class='del'>-                         :desc =&gt; "Generate a test directory for your library, either rspec or minitest. Set a default with `bundle config gem.test rspec`."</div><div class='add'>+    method_option :ext, :type =&gt; :string, :desc =&gt; "Generate the boilerplate for C extension code.", :enum =&gt; EXTENSIONS</div><div class='add'>+    method_option :git, :type =&gt; :boolean, :default =&gt; true, :desc =&gt; "Initialize a git repo inside your library."</div><div class='add'>+    method_option :mit, :type =&gt; :boolean, :desc =&gt; "Generate an MIT license file. Set a default with `bundle config set --global gem.mit true`."</div><div class='add'>+    method_option :rubocop, :type =&gt; :boolean, :desc =&gt; "Add rubocop to the generated Rakefile and gemspec. Set a default with `bundle config set --global gem.rubocop true`."</div><div class='add'>+    method_option :changelog, :type =&gt; :boolean, :desc =&gt; "Generate changelog file. Set a default with `bundle config set --global gem.changelog true`."</div><div class='add'>+    method_option :test, :type =&gt; :string, :lazy_default =&gt; Bundler.settings["gem.test"] || "", :aliases =&gt; "-t", :banner =&gt; "Use the specified test framework for your library",</div><div class='add'>+                         :desc =&gt; "Generate a test directory for your library, either rspec, minitest or test-unit. Set a default with `bundle config set --global gem.test (rspec|minitest|test-unit)`."</div><div class='add'>+    method_option :ci, :type =&gt; :string, :lazy_default =&gt; Bundler.settings["gem.ci"] || "",</div><div class='add'>+                       :desc =&gt; "Generate CI configuration, either GitHub Actions, GitLab CI or CircleCI. Set a default with `bundle config set --global gem.ci (github|gitlab|circle)`"</div><div class='add'>+    method_option :linter, :type =&gt; :string, :lazy_default =&gt; Bundler.settings["gem.linter"] || "",</div><div class='add'>+                           :desc =&gt; "Add a linter and code formatter, either RuboCop or Standard. Set a default with `bundle config set --global gem.linter (rubocop|standard)`"</div><div class='add'>+    method_option :github_username, :type =&gt; :string, :default =&gt; Bundler.settings["gem.github_username"], :banner =&gt; "Set your username on GitHub", :desc =&gt; "Fill in GitHub username on README so that you don't have to do it manually. Set a default with `bundle config set --global gem.github_username &lt;your_username&gt;`."</div><div class='add'>+</div><div class='ctx'>     def gem(name)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -562,7 +601,7 @@ module Bundler</div><div class='ctx'>       def gem_command.run(instance, args = [])</div><div class='ctx'>         arity = 1 # name</div><div class='ctx'> </div><div class='del'>-        require "bundler/cli/gem"</div><div class='add'>+        require_relative "cli/gem"</div><div class='ctx'>         cmd_args = args + [instance]</div><div class='ctx'>         cmd_args.unshift(instance.options)</div><div class='ctx'> </div><div class='hunk'>@@ -581,16 +620,16 @@ module Bundler</div><div class='ctx'>     private :gem</div><div class='ctx'> </div><div class='ctx'>     def self.source_root</div><div class='del'>-      File.expand_path(File.join(File.dirname(__FILE__), "templates"))</div><div class='add'>+      File.expand_path("templates", __dir__)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     desc "clean [OPTIONS]", "Cleans up unused gems in your bundler directory", :hide =&gt; true</div><div class='ctx'>     method_option "dry-run", :type =&gt; :boolean, :default =&gt; false, :banner =&gt;</div><div class='ctx'>       "Only print out changes, do not clean gems"</div><div class='ctx'>     method_option "force", :type =&gt; :boolean, :default =&gt; false, :banner =&gt;</div><div class='del'>-      "Forces clean even if --path is not set"</div><div class='add'>+      "Forces cleaning up unused gems even if Bundler is configured to use globally installed gems. As a consequence, removes all system gems except for the ones in the current application."</div><div class='ctx'>     def clean</div><div class='del'>-      require "bundler/cli/clean"</div><div class='add'>+      require_relative "cli/clean"</div><div class='ctx'>       Clean.new(options.dup).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -598,7 +637,7 @@ module Bundler</div><div class='ctx'>     method_option "ruby", :type =&gt; :boolean, :default =&gt; false, :banner =&gt;</div><div class='ctx'>       "only display ruby related platform information"</div><div class='ctx'>     def platform</div><div class='del'>-      require "bundler/cli/platform"</div><div class='add'>+      require_relative "cli/platform"</div><div class='ctx'>       Platform.new(options).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -609,7 +648,7 @@ module Bundler</div><div class='ctx'>      "Install gem into a bundler group"</div><div class='ctx'>     def inject(name, version)</div><div class='ctx'>       SharedHelpers.major_deprecation 2, "The `inject` command has been replaced by the `add` command"</div><div class='del'>-      require "bundler/cli/inject"</div><div class='add'>+      require_relative "cli/inject"</div><div class='ctx'>       Inject.new(options.dup, name, version).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -620,6 +659,8 @@ module Bundler</div><div class='ctx'>       "do not attempt to fetch remote gemspecs and use the local gem cache only"</div><div class='ctx'>     method_option "print", :type =&gt; :boolean, :default =&gt; false, :banner =&gt;</div><div class='ctx'>       "print the lockfile to STDOUT instead of writing to the file system"</div><div class='add'>+    method_option "gemfile", :type =&gt; :string, :banner =&gt;</div><div class='add'>+      "Use the specified gemfile instead of Gemfile"</div><div class='ctx'>     method_option "lockfile", :type =&gt; :string, :default =&gt; nil, :banner =&gt;</div><div class='ctx'>       "the path the lockfile should be written to"</div><div class='ctx'>     method_option "full-index", :type =&gt; :boolean, :default =&gt; false, :banner =&gt;</div><div class='hunk'>@@ -634,12 +675,16 @@ module Bundler</div><div class='ctx'>       "If updating, prefer updating only to next minor version"</div><div class='ctx'>     method_option "major", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "If updating, prefer updating to next major version (default)"</div><div class='add'>+    method_option "pre", :type =&gt; :boolean, :banner =&gt;</div><div class='add'>+      "If updating, always choose the highest allowed version, regardless of prerelease status"</div><div class='ctx'>     method_option "strict", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "If updating, do not allow any gem to be updated past latest --patch | --minor | --major"</div><div class='ctx'>     method_option "conservative", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>       "If updating, use bundle install conservative update behavior and do not allow shared dependencies to be updated"</div><div class='add'>+    method_option "bundler", :type =&gt; :string, :lazy_default =&gt; "&gt; 0.a", :banner =&gt;</div><div class='add'>+      "Update the locked version of bundler"</div><div class='ctx'>     def lock</div><div class='del'>-      require "bundler/cli/lock"</div><div class='add'>+      require_relative "cli/lock"</div><div class='ctx'>       Lock.new(options).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -659,13 +704,13 @@ module Bundler</div><div class='ctx'>     method_option "quiet", :type =&gt; :boolean, :banner =&gt;</div><div class='ctx'>         "Only output warnings and errors."</div><div class='ctx'>     def doctor</div><div class='del'>-      require "bundler/cli/doctor"</div><div class='add'>+      require_relative "cli/doctor"</div><div class='ctx'>       Doctor.new(options).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     desc "issue", "Learn how to report an issue in Bundler"</div><div class='ctx'>     def issue</div><div class='del'>-      require "bundler/cli/issue"</div><div class='add'>+      require_relative "cli/issue"</div><div class='ctx'>       Issue.new.run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -676,12 +721,12 @@ module Bundler</div><div class='ctx'>       checkout --force`.</div><div class='ctx'>     D</div><div class='ctx'>     def pristine(*gems)</div><div class='del'>-      require "bundler/cli/pristine"</div><div class='add'>+      require_relative "cli/pristine"</div><div class='ctx'>       Pristine.new(gems).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     if Bundler.feature_flag.plugins?</div><div class='del'>-      require "bundler/cli/plugin"</div><div class='add'>+      require_relative "cli/plugin"</div><div class='ctx'>       desc "plugin", "Manage the bundler plugins"</div><div class='ctx'>       subcommand "plugin", Plugin</div><div class='ctx'>     end</div><div class='hunk'>@@ -689,12 +734,17 @@ module Bundler</div><div class='ctx'>     # Reformat the arguments passed to bundle that include a --help flag</div><div class='ctx'>     # into the corresponding `bundle help #{command}` call</div><div class='ctx'>     def self.reformatted_help_args(args)</div><div class='del'>-      bundler_commands = all_commands.keys</div><div class='add'>+      bundler_commands = (COMMAND_ALIASES.keys + COMMAND_ALIASES.values).flatten</div><div class='add'>+</div><div class='ctx'>       help_flags = %w[--help -h]</div><div class='del'>-      exec_commands = %w[e ex exe exec]</div><div class='add'>+      exec_commands = ["exec"] + COMMAND_ALIASES["exec"]</div><div class='add'>+</div><div class='ctx'>       help_used = args.index {|a| help_flags.include? a }</div><div class='ctx'>       exec_used = args.index {|a| exec_commands.include? a }</div><div class='add'>+</div><div class='ctx'>       command = args.find {|a| bundler_commands.include? a }</div><div class='add'>+      command = all_aliases[command] if all_aliases[command]</div><div class='add'>+</div><div class='ctx'>       if exec_used &amp;&amp; help_used</div><div class='ctx'>         if exec_used + help_used == 1</div><div class='ctx'>           %w[help exec]</div><div class='hunk'>@@ -710,11 +760,43 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    def self.check_deprecated_ext_option(arguments)</div><div class='add'>+      # when deprecated version of `--ext` is called</div><div class='add'>+      # print out deprecation warning and pretend `--ext=c` was provided</div><div class='add'>+      if deprecated_ext_value?(arguments)</div><div class='add'>+        SharedHelpers.major_deprecation 2, "Extensions can now be generated using C or Rust, so `--ext` with no arguments has been deprecated. Please select a language, e.g. `--ext=rust` to generate a Rust extension. This gem will now be generated as if `--ext=c` was used."</div><div class='add'>+        arguments[arguments.index("--ext")] = "--ext=c"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.deprecated_ext_value?(arguments)</div><div class='add'>+      index = arguments.index("--ext")</div><div class='add'>+      next_argument = arguments[index+1]</div><div class='add'>+</div><div class='add'>+      # it is ok when --ext is followed with valid extension value</div><div class='add'>+      # for example `bundle gem hello --ext c`</div><div class='add'>+      return false if EXTENSIONS.include?(next_argument)</div><div class='add'>+</div><div class='add'>+      # deprecated call when --ext is called with no value in last position</div><div class='add'>+      # for example `bundle gem hello_gem --ext`</div><div class='add'>+      return true if next_argument.nil?</div><div class='add'>+</div><div class='add'>+      # deprecated call when --ext is followed by other parameter</div><div class='add'>+      # for example `bundle gem --ext --no-ci hello_gem`</div><div class='add'>+      return true if next_argument.start_with?("-")</div><div class='add'>+</div><div class='add'>+      # deprecated call when --ext is followed by gem name</div><div class='add'>+      # for example `bundle gem --ext hello_gem`</div><div class='add'>+      return true if next_argument</div><div class='add'>+</div><div class='add'>+      false</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     # Automatically invoke `bundle install` and resume if</div><div class='ctx'>     # Bundler.settings[:auto_install] exists. This is set through config cmd</div><div class='del'>-    # `bundle config auto_install 1`.</div><div class='add'>+    # `bundle config set --global auto_install 1`.</div><div class='ctx'>     #</div><div class='ctx'>     # Note that this method `nil`s out the global Definition object, so it</div><div class='ctx'>     # should be called first, before you instantiate anything like an</div><div class='hunk'>@@ -762,7 +844,7 @@ module Bundler</div><div class='ctx'>       return unless SharedHelpers.md5_available?</div><div class='ctx'> </div><div class='ctx'>       latest = Fetcher::CompactIndex.</div><div class='del'>-               new(nil, Source::Rubygems::Remote.new(URI("https://rubygems.org")), nil).</div><div class='add'>+               new(nil, Source::Rubygems::Remote.new(Bundler::URI("https://rubygems.org")), nil).</div><div class='ctx'>                send(:compact_index_client).</div><div class='ctx'>                instance_variable_get(:@cache).</div><div class='ctx'>                dependencies("bundler").</div><div class='hunk'>@@ -772,19 +854,41 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       current = Gem::Version.new(VERSION)</div><div class='ctx'>       return if current &gt;= latest</div><div class='del'>-      latest_installed = Bundler.rubygems.find_name("bundler").map(&amp;:version).max</div><div class='ctx'> </div><div class='del'>-      installation = "To install the latest version, run `gem install bundler#{" --pre" if latest.prerelease?}`"</div><div class='del'>-      if latest_installed &amp;&amp; latest_installed &gt; current</div><div class='del'>-        suggestion = "To update to the most recent installed version (#{latest_installed}), run `bundle update --bundler`"</div><div class='del'>-        suggestion = "#{installation}\n#{suggestion}" if latest_installed &lt; latest</div><div class='del'>-      else</div><div class='del'>-        suggestion = installation</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      Bundler.ui.warn "The latest bundler is #{latest}, but you are currently running #{current}.\n#{suggestion}"</div><div class='add'>+      Bundler.ui.warn \</div><div class='add'>+        "The latest bundler is #{latest}, but you are currently running #{current}.\n" \</div><div class='add'>+        "To update to the most recent version, run `bundle update --bundler`"</div><div class='ctx'>     rescue RuntimeError</div><div class='ctx'>       nil</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def remembered_negative_flag_deprecation(name)</div><div class='add'>+      positive_name = name.gsub(/\Ano-/, "")</div><div class='add'>+      option = current_command.options[positive_name]</div><div class='add'>+      flag_name = "--no-" + option.switch_name.gsub(/\A--/, "")</div><div class='add'>+</div><div class='add'>+      flag_deprecation(positive_name, flag_name, option)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def remembered_flag_deprecation(name)</div><div class='add'>+      option = current_command.options[name]</div><div class='add'>+      flag_name = option.switch_name</div><div class='add'>+</div><div class='add'>+      flag_deprecation(name, flag_name, option)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def flag_deprecation(name, flag_name, option)</div><div class='add'>+      name_index = ARGV.find {|arg| flag_name == arg.split("=")[0] }</div><div class='add'>+      return unless name_index</div><div class='add'>+</div><div class='add'>+      value = options[name]</div><div class='add'>+      value = value.join(" ").to_s if option.type == :array</div><div class='add'>+</div><div class='add'>+      Bundler::SharedHelpers.major_deprecation 2,</div><div class='add'>+        "The `#{flag_name}` flag is deprecated because it relies on being " \</div><div class='add'>+        "remembered across bundler invocations, which bundler will no longer " \</div><div class='add'>+        "do in future versions. Instead please use `bundle config set --local #{name.tr("-", "_")} " \</div><div class='add'>+        "'#{value}'`, and stop using this flag"</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/add.rb b/lib/bundler/cli/add.rb<br/>index 9709e71be0..08fa6547fb 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/add.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/add.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/add.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/add.rb</a></div><div class='hunk'>@@ -2,34 +2,46 @@</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class CLI::Add</div><div class='add'>+    attr_reader :gems, :options, :version</div><div class='add'>+</div><div class='ctx'>     def initialize(options, gems)</div><div class='ctx'>       @gems = gems</div><div class='ctx'>       @options = options</div><div class='del'>-      @options[:group] = @options[:group].split(",").map(&amp;:strip) if !@options[:group].nil? &amp;&amp; !@options[:group].empty?</div><div class='add'>+      @options[:group] = options[:group].split(",").map(&amp;:strip) unless options[:group].nil?</div><div class='add'>+      @version = options[:version].split(",").map(&amp;:strip) unless options[:version].nil?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='del'>-      raise InvalidOption, "You can not specify `--strict` and `--optimistic` at the same time." if @options[:strict] &amp;&amp; @options[:optimistic]</div><div class='del'>-</div><div class='del'>-      # raise error when no gems are specified</div><div class='del'>-      raise InvalidOption, "Please specify gems to add." if @gems.empty?</div><div class='add'>+      validate_options!</div><div class='add'>+      inject_dependencies</div><div class='add'>+      perform_bundle_install unless options["skip-install"]</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      version = @options[:version].nil? ? nil : @options[:version].split(",").map(&amp;:strip)</div><div class='add'>+    private</div><div class='ctx'> </div><div class='del'>-      unless version.nil?</div><div class='del'>-        version.each do |v|</div><div class='del'>-          raise InvalidOption, "Invalid gem requirement pattern '#{v}'" unless Gem::Requirement::PATTERN =~ v.to_s</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='add'>+    def perform_bundle_install</div><div class='add'>+      Installer.install(Bundler.root, Bundler.definition)</div><div class='add'>+      Bundler.load.cache if Bundler.app_cache.exist?</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      dependencies = @gems.map {|g| Bundler::Dependency.new(g, version, @options) }</div><div class='add'>+    def inject_dependencies</div><div class='add'>+      dependencies = gems.map {|g| Bundler::Dependency.new(g, version, options) }</div><div class='ctx'> </div><div class='ctx'>       Injector.inject(dependencies,</div><div class='del'>-        :conservative_versioning =&gt; @options[:version].nil?, # Perform conservative versioning only when version is not specified</div><div class='del'>-        :optimistic =&gt; @options[:optimistic],</div><div class='del'>-        :strict =&gt; @options[:strict])</div><div class='add'>+        :conservative_versioning =&gt; options[:version].nil?, # Perform conservative versioning only when version is not specified</div><div class='add'>+        :optimistic =&gt; options[:optimistic],</div><div class='add'>+        :strict =&gt; options[:strict])</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def validate_options!</div><div class='add'>+      raise InvalidOption, "You can not specify `--strict` and `--optimistic` at the same time." if options[:strict] &amp;&amp; options[:optimistic]</div><div class='ctx'> </div><div class='del'>-      Installer.install(Bundler.root, Bundler.definition) unless @options["skip-install"]</div><div class='add'>+      # raise error when no gems are specified</div><div class='add'>+      raise InvalidOption, "Please specify gems to add." if gems.empty?</div><div class='add'>+</div><div class='add'>+      version.to_a.each do |v|</div><div class='add'>+        raise InvalidOption, "Invalid gem requirement pattern '#{v}'" unless Gem::Requirement::PATTERN.match?(v.to_s)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/binstubs.rb b/lib/bundler/cli/binstubs.rb<br/>index 266396eedc..fc2fad47a5 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/binstubs.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/binstubs.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/binstubs.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/binstubs.rb</a></div><div class='hunk'>@@ -11,12 +11,16 @@ module Bundler</div><div class='ctx'>     def run</div><div class='ctx'>       Bundler.definition.validate_runtime!</div><div class='ctx'>       path_option = options["path"]</div><div class='del'>-      path_option = nil if path_option &amp;&amp; path_option.empty?</div><div class='add'>+      path_option = nil if path_option&amp;.empty?</div><div class='ctx'>       Bundler.settings.set_command_option :bin, path_option if options["path"]</div><div class='ctx'>       Bundler.settings.set_command_option_if_given :shebang, options["shebang"]</div><div class='ctx'>       installer = Installer.new(Bundler.root, Bundler.definition)</div><div class='ctx'> </div><div class='del'>-      installer_opts = { :force =&gt; options[:force], :binstubs_cmd =&gt; true }</div><div class='add'>+      installer_opts = {</div><div class='add'>+        :force =&gt; options[:force],</div><div class='add'>+        :binstubs_cmd =&gt; true,</div><div class='add'>+        :all_platforms =&gt; options["all-platforms"],</div><div class='add'>+      }</div><div class='ctx'> </div><div class='ctx'>       if options[:all]</div><div class='ctx'>         raise InvalidOption, "Cannot specify --all with specific gems" unless gems.empty?</div><div class='hunk'>@@ -36,9 +40,13 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         if options[:standalone]</div><div class='del'>-          next Bundler.ui.warn("Sorry, Bundler can only be run via RubyGems.") if gem_name == "bundler"</div><div class='add'>+          if gem_name == "bundler"</div><div class='add'>+            Bundler.ui.warn("Sorry, Bundler can only be run via RubyGems.") unless options[:all]</div><div class='add'>+            next</div><div class='add'>+          end</div><div class='add'>+</div><div class='ctx'>           Bundler.settings.temporary(:path =&gt; (Bundler.settings[:path] || Bundler.root)) do</div><div class='del'>-            installer.generate_standalone_bundler_executable_stubs(spec)</div><div class='add'>+            installer.generate_standalone_bundler_executable_stubs(spec, installer_opts)</div><div class='ctx'>           end</div><div class='ctx'>         else</div><div class='ctx'>           installer.generate_bundler_executable_stubs(spec, installer_opts)</div><div class='head'>diff --git a/lib/bundler/cli/cache.rb b/lib/bundler/cli/cache.rb<br/>index 9d2ba87d34..c8698ed7e3 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/cache.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/cache.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/cache.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/cache.rb</a></div><div class='hunk'>@@ -3,34 +3,41 @@</div><div class='ctx'> module Bundler</div><div class='ctx'>   class CLI::Cache</div><div class='ctx'>     attr_reader :options</div><div class='add'>+</div><div class='ctx'>     def initialize(options)</div><div class='ctx'>       @options = options</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='del'>-      Bundler.definition.validate_runtime!</div><div class='del'>-      Bundler.definition.resolve_with_cache!</div><div class='add'>+      Bundler.ui.level = "warn" if options[:quiet]</div><div class='add'>+      Bundler.settings.set_command_option_if_given :path, options[:path]</div><div class='add'>+      Bundler.settings.set_command_option_if_given :cache_path, options["cache-path"]</div><div class='add'>+</div><div class='ctx'>       setup_cache_all</div><div class='del'>-      Bundler.settings.set_command_option_if_given :cache_all_platforms, options["all-platforms"]</div><div class='del'>-      Bundler.load.cache</div><div class='del'>-      Bundler.settings.set_command_option_if_given :no_prune, options["no-prune"]</div><div class='del'>-      Bundler.load.lock</div><div class='del'>-    rescue GemNotFound =&gt; e</div><div class='del'>-      Bundler.ui.error(e.message)</div><div class='del'>-      Bundler.ui.warn "Run `bundle install` to install missing gems."</div><div class='del'>-      exit 1</div><div class='add'>+      install</div><div class='add'>+</div><div class='add'>+      # TODO: move cache contents here now that all bundles are locked</div><div class='add'>+      custom_path = Bundler.settings[:path] if options[:path]</div><div class='add'>+</div><div class='add'>+      Bundler.settings.temporary(:cache_all_platforms =&gt; options["all-platforms"]) do</div><div class='add'>+        Bundler.load.cache(custom_path)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def install</div><div class='add'>+      require_relative "install"</div><div class='add'>+      options = self.options.dup</div><div class='add'>+      options["local"] = false if Bundler.settings[:cache_all_platforms]</div><div class='add'>+      options["no-cache"] = true</div><div class='add'>+      Bundler::CLI::Install.new(options).run</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     def setup_cache_all</div><div class='del'>-      Bundler.settings.set_command_option_if_given :cache_all, options[:all]</div><div class='add'>+      all = options.fetch(:all, Bundler.feature_flag.cache_all? || nil)</div><div class='ctx'> </div><div class='del'>-      if Bundler.definition.has_local_dependencies? &amp;&amp; !Bundler.feature_flag.cache_all?</div><div class='del'>-        Bundler.ui.warn "Your Gemfile contains path and git dependencies. If you want "    \</div><div class='del'>-          "to package them as well, please pass the --all flag. This will be the default " \</div><div class='del'>-          "on Bundler 2.0."</div><div class='del'>-      end</div><div class='add'>+      Bundler.settings.set_command_option_if_given :cache_all, all</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/check.rb b/lib/bundler/cli/check.rb<br/>index 19c0aaea06..cc1f37f0c3 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/check.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/check.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/check.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/check.rb</a></div><div class='hunk'>@@ -11,11 +11,13 @@ module Bundler</div><div class='ctx'>     def run</div><div class='ctx'>       Bundler.settings.set_command_option_if_given :path, options[:path]</div><div class='ctx'> </div><div class='add'>+      definition = Bundler.definition</div><div class='add'>+      definition.validate_runtime!</div><div class='add'>+</div><div class='ctx'>       begin</div><div class='del'>-        definition = Bundler.definition</div><div class='del'>-        definition.validate_runtime!</div><div class='add'>+        definition.resolve_only_locally!</div><div class='ctx'>         not_installed = definition.missing_specs</div><div class='del'>-      rescue GemNotFound, VersionConflict</div><div class='add'>+      rescue GemNotFound, SolveFailure</div><div class='ctx'>         Bundler.ui.error "Bundler can't satisfy your Gemfile's dependencies."</div><div class='ctx'>         Bundler.ui.warn "Install missing gems with `bundle install`."</div><div class='ctx'>         exit 1</div><div class='head'>diff --git a/lib/bundler/cli/clean.rb b/lib/bundler/cli/clean.rb<br/>index 4a407fbae7..c6b0968e3e 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/clean.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/clean.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/clean.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/clean.rb</a></div><div class='hunk'>@@ -13,7 +13,7 @@ module Bundler</div><div class='ctx'>       Bundler.load.clean(options[:"dry-run"])</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  protected</div><div class='add'>+    protected</div><div class='ctx'> </div><div class='ctx'>     def require_path_or_force</div><div class='ctx'>       return unless Bundler.use_system_gems? &amp;&amp; !options[:force]</div><div class='head'>diff --git a/lib/bundler/cli/common.rb b/lib/bundler/cli/common.rb<br/>index 9d40ee9dfd..d654406f65 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/common.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/common.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/common.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/common.rb</a></div><div class='hunk'>@@ -14,17 +14,38 @@ module Bundler</div><div class='ctx'>       Bundler.ui.info msg</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def self.output_without_groups_message</div><div class='add'>+    def self.output_fund_metadata_summary</div><div class='add'>+      return if Bundler.settings["ignore_funding_requests"]</div><div class='add'>+      definition = Bundler.definition</div><div class='add'>+      current_dependencies = definition.requested_dependencies</div><div class='add'>+      current_specs = definition.specs</div><div class='add'>+</div><div class='add'>+      count = current_dependencies.count {|dep| current_specs[dep.name].first.metadata.key?("funding_uri") }</div><div class='add'>+</div><div class='add'>+      return if count.zero?</div><div class='add'>+</div><div class='add'>+      intro = count &gt; 1 ? "#{count} installed gems you directly depend on are" : "#{count} installed gem you directly depend on is"</div><div class='add'>+      message = "#{intro} looking for funding.\n  Run `bundle fund` for details"</div><div class='add'>+      Bundler.ui.info message</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.output_without_groups_message(command)</div><div class='ctx'>       return if Bundler.settings[:without].empty?</div><div class='del'>-      Bundler.ui.confirm without_groups_message</div><div class='add'>+      Bundler.ui.confirm without_groups_message(command)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def self.without_groups_message</div><div class='add'>+    def self.without_groups_message(command)</div><div class='add'>+      command_in_past_tense = command == :install ? "installed" : "updated"</div><div class='ctx'>       groups = Bundler.settings[:without]</div><div class='add'>+      "Gems in the #{verbalize_groups(groups)} were not #{command_in_past_tense}."</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.verbalize_groups(groups)</div><div class='add'>+      groups.map! {|g| "'#{g}'" }</div><div class='ctx'>       group_list = [groups[0...-1].join(", "), groups[-1..-1]].</div><div class='ctx'>         reject {|s| s.to_s.empty? }.join(" and ")</div><div class='del'>-      group_str = (groups.size == 1) ? "group" : "groups"</div><div class='del'>-      "Gems in the #{group_str} #{group_list} were not installed."</div><div class='add'>+      group_str = groups.size == 1 ? "group" : "groups"</div><div class='add'>+      "#{group_str} #{group_list}"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def self.select_spec(name, regex_match = nil)</div><div class='hunk'>@@ -38,7 +59,13 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       case specs.count</div><div class='ctx'>       when 0</div><div class='del'>-        raise GemNotFound, gem_not_found_message(name, Bundler.definition.dependencies)</div><div class='add'>+        dep_in_other_group = Bundler.definition.current_dependencies.find {|dep|dep.name == name }</div><div class='add'>+</div><div class='add'>+        if dep_in_other_group</div><div class='add'>+          raise GemNotFound, "Could not find gem '#{name}', because it's in the #{verbalize_groups(dep_in_other_group.groups)}, configured to be ignored."</div><div class='add'>+        else</div><div class='add'>+          raise GemNotFound, gem_not_found_message(name, Bundler.definition.dependencies)</div><div class='add'>+        end</div><div class='ctx'>       when 1</div><div class='ctx'>         specs.first</div><div class='ctx'>       else</div><div class='hunk'>@@ -49,10 +76,6 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def self.ask_for_spec_from(specs)</div><div class='del'>-      if !$stdout.tty? &amp;&amp; ENV["BUNDLE_SPEC_RUN"].nil?</div><div class='del'>-        raise GemNotFound, gem_not_found_message(name, Bundler.definition.dependencies)</div><div class='del'>-      end</div><div class='del'>-</div><div class='ctx'>       specs.each_with_index do |spec, index|</div><div class='ctx'>         Bundler.ui.info "#{index.succ} : #{spec.name}", true</div><div class='ctx'>       end</div><div class='hunk'>@@ -63,7 +86,7 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def self.gem_not_found_message(missing_gem_name, alternatives)</div><div class='del'>-      require "bundler/similarity_detector"</div><div class='add'>+      require_relative "../similarity_detector"</div><div class='ctx'>       message = "Could not find gem '#{missing_gem_name}'."</div><div class='ctx'>       alternate_names = alternatives.map {|a| a.respond_to?(:name) ? a.name : a }</div><div class='ctx'>       suggestions = SimilarityDetector.new(alternate_names).similar_word_list(missing_gem_name)</div><div class='hunk'>@@ -72,7 +95,9 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def self.ensure_all_gems_in_lockfile!(names, locked_gems = Bundler.locked_gems)</div><div class='del'>-      locked_names = locked_gems.specs.map(&amp;:name)</div><div class='add'>+      return unless locked_gems</div><div class='add'>+</div><div class='add'>+      locked_names = locked_gems.specs.map(&amp;:name).uniq</div><div class='ctx'>       names.-(locked_names).each do |g|</div><div class='ctx'>         raise GemNotFound, gem_not_found_message(g, locked_names)</div><div class='ctx'>       end</div><div class='hunk'>@@ -80,10 +105,13 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def self.configure_gem_version_promoter(definition, options)</div><div class='ctx'>       patch_level = patch_level_options(options)</div><div class='add'>+      patch_level &lt;&lt; :patch if patch_level.empty? &amp;&amp; Bundler.settings[:prefer_patch]</div><div class='ctx'>       raise InvalidOption, "Provide only one of the following options: #{patch_level.join(", ")}" unless patch_level.length &lt;= 1</div><div class='add'>+</div><div class='ctx'>       definition.gem_version_promoter.tap do |gvp|</div><div class='ctx'>         gvp.level = patch_level.first || :major</div><div class='del'>-        gvp.strict = options[:strict] || options["update-strict"]</div><div class='add'>+        gvp.strict = options[:strict] || options["filter-strict"]</div><div class='add'>+        gvp.pre = options[:pre]</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/cli/config.rb b/lib/bundler/cli/config.rb<br/>index 12f71ea8fe..e1222c75dd 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/config.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/config.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/config.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/config.rb</a></div><div class='hunk'>@@ -1,119 +1,203 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='del'>-  class CLI::Config</div><div class='del'>-    attr_reader :name, :options, :scope, :thor</div><div class='del'>-    attr_accessor :args</div><div class='del'>-</div><div class='del'>-    def initialize(options, args, thor)</div><div class='del'>-      @options = options</div><div class='del'>-      @args = args</div><div class='del'>-      @thor = thor</div><div class='del'>-      @name = peek = args.shift</div><div class='del'>-      @scope = "global"</div><div class='del'>-      return unless peek &amp;&amp; peek.start_with?("--")</div><div class='del'>-      @name = args.shift</div><div class='del'>-      @scope = peek[2..-1]</div><div class='add'>+  class CLI::Config &lt; Thor</div><div class='add'>+    class_option :parseable, :type =&gt; :boolean, :banner =&gt; "Use minimal formatting for more parseable output"</div><div class='add'>+</div><div class='add'>+    def self.scope_options</div><div class='add'>+      method_option :global, :type =&gt; :boolean, :banner =&gt; "Only change the global config"</div><div class='add'>+      method_option :local, :type =&gt; :boolean, :banner =&gt; "Only change the local config"</div><div class='ctx'>     end</div><div class='add'>+    private_class_method :scope_options</div><div class='ctx'> </div><div class='del'>-    def run</div><div class='del'>-      unless name</div><div class='del'>-        confirm_all</div><div class='del'>-        return</div><div class='del'>-      end</div><div class='add'>+    desc "base NAME [VALUE]", "The Bundler 1 config interface", :hide =&gt; true</div><div class='add'>+    scope_options</div><div class='add'>+    method_option :delete, :type =&gt; :boolean, :banner =&gt; "delete"</div><div class='add'>+    def base(name = nil, *value)</div><div class='add'>+      new_args =</div><div class='add'>+        if ARGV.size == 1</div><div class='add'>+          ["config", "list"]</div><div class='add'>+        elsif ARGV.include?("--delete")</div><div class='add'>+          ARGV.map {|arg| arg == "--delete" ? "unset" : arg }</div><div class='add'>+        elsif ARGV.include?("--global") || ARGV.include?("--local") || ARGV.size == 3</div><div class='add'>+          ["config", "set", *ARGV[1..-1]]</div><div class='add'>+        else</div><div class='add'>+          ["config", "get", ARGV[1]]</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-      unless valid_scope?(scope)</div><div class='del'>-        Bundler.ui.error "Invalid scope --#{scope} given. Please use --local or --global."</div><div class='del'>-        exit 1</div><div class='del'>-      end</div><div class='add'>+      SharedHelpers.major_deprecation 3,</div><div class='add'>+        "Using the `config` command without a subcommand [list, get, set, unset] is deprecated and will be removed in the future. Use `bundle #{new_args.join(" ")}` instead."</div><div class='ctx'> </div><div class='del'>-      if scope == "delete"</div><div class='del'>-        Bundler.settings.set_local(name, nil)</div><div class='del'>-        Bundler.settings.set_global(name, nil)</div><div class='del'>-        return</div><div class='add'>+      Base.new(options, name, value, self).run</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    desc "list", "List out all configured settings"</div><div class='add'>+    def list</div><div class='add'>+      Base.new(options, nil, nil, self).run</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    desc "get NAME", "Returns the value for the given key"</div><div class='add'>+    def get(name)</div><div class='add'>+      Base.new(options, name, nil, self).run</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    desc "set NAME VALUE", "Sets the given value for the given key"</div><div class='add'>+    scope_options</div><div class='add'>+    def set(name, value, *value_)</div><div class='add'>+      Base.new(options, name, value_.unshift(value), self).run</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    desc "unset NAME", "Unsets the value for the given key"</div><div class='add'>+    scope_options</div><div class='add'>+    def unset(name)</div><div class='add'>+      options[:delete] = true</div><div class='add'>+      Base.new(options, name, nil, self).run</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    default_task :base</div><div class='add'>+</div><div class='add'>+    class Base</div><div class='add'>+      attr_reader :name, :value, :options, :scope, :thor</div><div class='add'>+</div><div class='add'>+      def initialize(options, name, value, thor)</div><div class='add'>+        @options = options</div><div class='add'>+        @name = name</div><div class='add'>+        value = Array(value)</div><div class='add'>+        @value = value.empty? ? nil : value.join(" ")</div><div class='add'>+        @thor = thor</div><div class='add'>+        validate_scope!</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      if args.empty?</div><div class='del'>-        if options[:parseable]</div><div class='del'>-          if value = Bundler.settings[name]</div><div class='del'>-            Bundler.ui.info("#{name}=#{value}")</div><div class='add'>+      def run</div><div class='add'>+        unless name</div><div class='add'>+          warn_unused_scope "Ignoring --#{scope}"</div><div class='add'>+          confirm_all</div><div class='add'>+          return</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        if options[:delete]</div><div class='add'>+          if !explicit_scope? || scope != "global"</div><div class='add'>+            Bundler.settings.set_local(name, nil)</div><div class='add'>+          end</div><div class='add'>+          if !explicit_scope? || scope != "local"</div><div class='add'>+            Bundler.settings.set_global(name, nil)</div><div class='ctx'>           end</div><div class='ctx'>           return</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        confirm(name)</div><div class='del'>-        return</div><div class='del'>-      end</div><div class='add'>+        if value.nil?</div><div class='add'>+          warn_unused_scope "Ignoring --#{scope} since no value to set was given"</div><div class='ctx'> </div><div class='del'>-      Bundler.ui.info(message) if message</div><div class='del'>-      Bundler.settings.send("set_#{scope}", name, new_value)</div><div class='del'>-    end</div><div class='add'>+          if options[:parseable]</div><div class='add'>+            if value = Bundler.settings[name]</div><div class='add'>+              Bundler.ui.info("#{name}=#{value}")</div><div class='add'>+            end</div><div class='add'>+            return</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          confirm(name)</div><div class='add'>+          return</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+        Bundler.ui.info(message) if message</div><div class='add'>+        Bundler.settings.send("set_#{scope}", name, new_value)</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-    def confirm_all</div><div class='del'>-      if @options[:parseable]</div><div class='del'>-        thor.with_padding do</div><div class='add'>+      def confirm_all</div><div class='add'>+        if @options[:parseable]</div><div class='add'>+          thor.with_padding do</div><div class='add'>+            Bundler.settings.all.each do |setting|</div><div class='add'>+              val = Bundler.settings[setting]</div><div class='add'>+              Bundler.ui.info "#{setting}=#{val}"</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          Bundler.ui.confirm "Settings are listed in order of priority. The top value will be used.\n"</div><div class='ctx'>           Bundler.settings.all.each do |setting|</div><div class='del'>-            val = Bundler.settings[setting]</div><div class='del'>-            Bundler.ui.info "#{setting}=#{val}"</div><div class='add'>+            Bundler.ui.confirm setting</div><div class='add'>+            show_pretty_values_for(setting)</div><div class='add'>+            Bundler.ui.confirm ""</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='del'>-      else</div><div class='del'>-        Bundler.ui.confirm "Settings are listed in order of priority. The top value will be used.\n"</div><div class='del'>-        Bundler.settings.all.each do |setting|</div><div class='del'>-          Bundler.ui.confirm "#{setting}"</div><div class='del'>-          show_pretty_values_for(setting)</div><div class='del'>-          Bundler.ui.confirm ""</div><div class='del'>-        end</div><div class='ctx'>       end</div><div class='del'>-    end</div><div class='ctx'> </div><div class='del'>-    def confirm(name)</div><div class='del'>-      Bundler.ui.confirm "Settings for `#{name}` in order of priority. The top value will be used"</div><div class='del'>-      show_pretty_values_for(name)</div><div class='del'>-    end</div><div class='add'>+      def confirm(name)</div><div class='add'>+        Bundler.ui.confirm "Settings for `#{name}` in order of priority. The top value will be used"</div><div class='add'>+        show_pretty_values_for(name)</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-    def new_value</div><div class='del'>-      pathname = Pathname.new(args.join(" "))</div><div class='del'>-      if name.start_with?("local.") &amp;&amp; pathname.directory?</div><div class='del'>-        pathname.expand_path.to_s</div><div class='del'>-      else</div><div class='del'>-        args.join(" ")</div><div class='add'>+      def new_value</div><div class='add'>+        pathname = Pathname.new(value)</div><div class='add'>+        if name.start_with?("local.") &amp;&amp; pathname.directory?</div><div class='add'>+          pathname.expand_path.to_s</div><div class='add'>+        else</div><div class='add'>+          value</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='del'>-    end</div><div class='ctx'> </div><div class='del'>-    def message</div><div class='del'>-      locations = Bundler.settings.locations(name)</div><div class='del'>-      if @options[:parseable]</div><div class='del'>-        "#{name}=#{new_value}" if new_value</div><div class='del'>-      elsif scope == "global"</div><div class='del'>-        if locations[:local]</div><div class='del'>-          "Your application has set #{name} to #{locations[:local].inspect}. " \</div><div class='del'>-            "This will override the global value you are currently setting"</div><div class='del'>-        elsif locations[:env]</div><div class='del'>-          "You have a bundler environment variable for #{name} set to " \</div><div class='del'>-            "#{locations[:env].inspect}. This will take precedence over the global value you are setting"</div><div class='del'>-        elsif locations[:global] &amp;&amp; locations[:global] != args.join(" ")</div><div class='del'>-          "You are replacing the current global value of #{name}, which is currently " \</div><div class='del'>-            "#{locations[:global].inspect}"</div><div class='add'>+      def message</div><div class='add'>+        locations = Bundler.settings.locations(name)</div><div class='add'>+        if @options[:parseable]</div><div class='add'>+          "#{name}=#{new_value}" if new_value</div><div class='add'>+        elsif scope == "global"</div><div class='add'>+          if !locations[:local].nil?</div><div class='add'>+            "Your application has set #{name} to #{locations[:local].inspect}. " \</div><div class='add'>+              "This will override the global value you are currently setting"</div><div class='add'>+          elsif locations[:env]</div><div class='add'>+            "You have a bundler environment variable for #{name} set to " \</div><div class='add'>+              "#{locations[:env].inspect}. This will take precedence over the global value you are setting"</div><div class='add'>+          elsif !locations[:global].nil? &amp;&amp; locations[:global] != value</div><div class='add'>+            "You are replacing the current global value of #{name}, which is currently " \</div><div class='add'>+              "#{locations[:global].inspect}"</div><div class='add'>+          end</div><div class='add'>+        elsif scope == "local" &amp;&amp; !locations[:local].nil? &amp;&amp; locations[:local] != value</div><div class='add'>+          "You are replacing the current local value of #{name}, which is currently " \</div><div class='add'>+            "#{locations[:local].inspect}"</div><div class='ctx'>         end</div><div class='del'>-      elsif scope == "local" &amp;&amp; locations[:local] != args.join(" ")</div><div class='del'>-        "You are replacing the current local value of #{name}, which is currently " \</div><div class='del'>-          "#{locations[:local].inspect}"</div><div class='ctx'>       end</div><div class='del'>-    end</div><div class='ctx'> </div><div class='del'>-    def show_pretty_values_for(setting)</div><div class='del'>-      thor.with_padding do</div><div class='del'>-        Bundler.settings.pretty_values_for(setting).each do |line|</div><div class='del'>-          Bundler.ui.info line</div><div class='add'>+      def show_pretty_values_for(setting)</div><div class='add'>+        thor.with_padding do</div><div class='add'>+          Bundler.settings.pretty_values_for(setting).each do |line|</div><div class='add'>+            Bundler.ui.info line</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='del'>-    end</div><div class='ctx'> </div><div class='del'>-    def valid_scope?(scope)</div><div class='del'>-      %w[delete local global].include?(scope)</div><div class='add'>+      def explicit_scope?</div><div class='add'>+        @explicit_scope</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def warn_unused_scope(msg)</div><div class='add'>+        return unless explicit_scope?</div><div class='add'>+        return if options[:parseable]</div><div class='add'>+</div><div class='add'>+        Bundler.ui.warn(msg)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def validate_scope!</div><div class='add'>+        @explicit_scope = true</div><div class='add'>+        scopes = %w[global local].select {|s| options[s] }</div><div class='add'>+        case scopes.size</div><div class='add'>+        when 0</div><div class='add'>+          @scope = inside_app? ? "local" : "global"</div><div class='add'>+          @explicit_scope = false</div><div class='add'>+        when 1</div><div class='add'>+          @scope = scopes.first</div><div class='add'>+        else</div><div class='add'>+          raise InvalidOption,</div><div class='add'>+            "The options #{scopes.join " and "} were specified. Please only use one of the switches at a time."</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def inside_app?</div><div class='add'>+        Bundler.root</div><div class='add'>+        true</div><div class='add'>+      rescue GemfileNotFound</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/console.rb b/lib/bundler/cli/console.rb<br/>index 853eca8358..1eb8ea8254 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/console.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/console.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/console.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/console.rb</a></div><div class='hunk'>@@ -12,7 +12,7 @@ module Bundler</div><div class='ctx'>       Bundler::SharedHelpers.major_deprecation 2, "bundle console will be replaced " \</div><div class='ctx'>                            "by `bin/console` generated by `bundle gem &lt;name&gt;`"</div><div class='ctx'> </div><div class='del'>-      group ? Bundler.require(:default, *(group.split.map!(&amp;:to_sym))) : Bundler.require</div><div class='add'>+      group ? Bundler.require(:default, *group.split(" ").map!(&amp;:to_sym)) : Bundler.require</div><div class='ctx'>       ARGV.clear</div><div class='ctx'> </div><div class='ctx'>       console = get_console(Bundler.settings[:console] || "irb")</div><div class='hunk'>@@ -30,9 +30,9 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def get_constant(name)</div><div class='ctx'>       const_name = {</div><div class='del'>-        "pry"  =&gt; :Pry,</div><div class='add'>+        "pry" =&gt; :Pry,</div><div class='ctx'>         "ripl" =&gt; :Ripl,</div><div class='del'>-        "irb"  =&gt; :IRB,</div><div class='add'>+        "irb" =&gt; :IRB,</div><div class='ctx'>       }[name]</div><div class='ctx'>       Object.const_get(const_name)</div><div class='ctx'>     rescue NameError</div><div class='head'>diff --git a/lib/bundler/cli/doctor.rb b/lib/bundler/cli/doctor.rb<br/>index 3e0898ff8a..e299a5a8c2 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/doctor.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/doctor.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/doctor.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/doctor.rb</a></div><div class='hunk'>@@ -1,11 +1,13 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='ctx'> require "rbconfig"</div><div class='add'>+require "shellwords"</div><div class='add'>+require "fiddle"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class CLI::Doctor</div><div class='del'>-    DARWIN_REGEX = /\s+(.+) \(compatibility /</div><div class='del'>-    LDD_REGEX = /\t\S+ =&gt; (\S+) \(\S+\)/</div><div class='add'>+    DARWIN_REGEX = /\s+(.+) \(compatibility /.freeze</div><div class='add'>+    LDD_REGEX = /\t\S+ =&gt; (\S+) \(\S+\)/.freeze</div><div class='ctx'> </div><div class='ctx'>     attr_reader :options</div><div class='ctx'> </div><div class='hunk'>@@ -22,14 +24,14 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def dylibs_darwin(path)</div><div class='del'>-      output = `/usr/bin/otool -L "#{path}"`.chomp</div><div class='add'>+      output = `/usr/bin/otool -L #{path.shellescape}`.chomp</div><div class='ctx'>       dylibs = output.split("\n")[1..-1].map {|l| l.match(DARWIN_REGEX).captures[0] }.uniq</div><div class='ctx'>       # ignore @rpath and friends</div><div class='ctx'>       dylibs.reject {|dylib| dylib.start_with? "@" }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def dylibs_ldd(path)</div><div class='del'>-      output = `/usr/bin/ldd "#{path}"`.chomp</div><div class='add'>+      output = `/usr/bin/ldd #{path.shellescape}`.chomp</div><div class='ctx'>       output.split("\n").map do |l|</div><div class='ctx'>         match = l.match(LDD_REGEX)</div><div class='ctx'>         next if match.nil?</div><div class='hunk'>@@ -56,12 +58,12 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def check!</div><div class='del'>-      require "bundler/cli/check"</div><div class='add'>+      require_relative "check"</div><div class='ctx'>       Bundler::CLI::Check.new({}).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='del'>-      Bundler.ui.level = "error" if options[:quiet]</div><div class='add'>+      Bundler.ui.level = "warn" if options[:quiet]</div><div class='ctx'>       Bundler.settings.validate!</div><div class='ctx'>       check!</div><div class='ctx'> </div><div class='hunk'>@@ -70,7 +72,12 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       definition.specs.each do |spec|</div><div class='ctx'>         bundles_for_gem(spec).each do |bundle|</div><div class='del'>-          bad_paths = dylibs(bundle).select {|f| !File.exist?(f) }</div><div class='add'>+          bad_paths = dylibs(bundle).select do |f|</div><div class='add'>+            Fiddle.dlopen(f)</div><div class='add'>+            false</div><div class='add'>+          rescue Fiddle::DLError</div><div class='add'>+            true</div><div class='add'>+          end</div><div class='ctx'>           if bad_paths.any?</div><div class='ctx'>             broken_links[spec] ||= []</div><div class='ctx'>             broken_links[spec].concat(bad_paths)</div><div class='hunk'>@@ -93,15 +100,18 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def check_home_permissions</div><div class='ctx'>       require "find"</div><div class='ctx'>       files_not_readable_or_writable = []</div><div class='ctx'>       files_not_rw_and_owned_by_different_user = []</div><div class='ctx'>       files_not_owned_by_current_user_but_still_rw = []</div><div class='del'>-      Find.find(Bundler.home.to_s).each do |f|</div><div class='del'>-        if !File.writable?(f) || !File.readable?(f)</div><div class='add'>+      broken_symlinks = []</div><div class='add'>+      Find.find(Bundler.bundle_path.to_s).each do |f|</div><div class='add'>+        if !File.exist?(f)</div><div class='add'>+          broken_symlinks &lt;&lt; f</div><div class='add'>+        elsif !File.writable?(f) || !File.readable?(f)</div><div class='ctx'>           if File.stat(f).uid != Process.uid</div><div class='ctx'>             files_not_rw_and_owned_by_different_user &lt;&lt; f</div><div class='ctx'>           else</div><div class='hunk'>@@ -113,6 +123,13 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       ok = true</div><div class='add'>+</div><div class='add'>+      if broken_symlinks.any?</div><div class='add'>+        Bundler.ui.warn "Broken links exist in the Bundler home. Please report them to the offending gem's upstream repo. These files are:\n - #{broken_symlinks.join("\n - ")}"</div><div class='add'>+</div><div class='add'>+        ok = false</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       if files_not_owned_by_current_user_but_still_rw.any?</div><div class='ctx'>         Bundler.ui.warn "Files exist in the Bundler home that are owned by another " \</div><div class='ctx'>           "user, but are still readable/writable. These files are:\n - #{files_not_owned_by_current_user_but_still_rw.join("\n - ")}"</div><div class='head'>diff --git a/lib/bundler/cli/exec.rb b/lib/bundler/cli/exec.rb<br/>index c29d632307..42b602a055 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/exec.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/exec.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/exec.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/exec.rb</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/current_ruby"</div><div class='add'>+require_relative "../current_ruby"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class CLI::Exec</div><div class='hunk'>@@ -12,12 +12,7 @@ module Bundler</div><div class='ctx'>       @options = options</div><div class='ctx'>       @cmd = args.shift</div><div class='ctx'>       @args = args</div><div class='del'>-</div><div class='del'>-      if Bundler.current_ruby.ruby_2? &amp;&amp; !Bundler.current_ruby.jruby?</div><div class='del'>-        @args &lt;&lt; { :close_others =&gt; !options.keep_file_descriptors? }</div><div class='del'>-      elsif options.keep_file_descriptors?</div><div class='del'>-        Bundler.ui.warn "Ruby version #{RUBY_VERSION} defaults to keeping non-standard file descriptors on Kernel#exec."</div><div class='del'>-      end</div><div class='add'>+      @args &lt;&lt; { :close_others =&gt; !options.keep_file_descriptors? } unless Bundler.current_ruby.jruby?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='hunk'>@@ -27,19 +22,14 @@ module Bundler</div><div class='ctx'>         if !Bundler.settings[:disable_exec_load] &amp;&amp; ruby_shebang?(bin_path)</div><div class='ctx'>           return kernel_load(bin_path, *args)</div><div class='ctx'>         end</div><div class='del'>-        # First, try to exec directly to something in PATH</div><div class='del'>-        if Bundler.current_ruby.jruby_18?</div><div class='del'>-          kernel_exec(bin_path, *args)</div><div class='del'>-        else</div><div class='del'>-          kernel_exec([bin_path, cmd], *args)</div><div class='del'>-        end</div><div class='add'>+        kernel_exec(bin_path, *args)</div><div class='ctx'>       else</div><div class='ctx'>         # exec using the given command</div><div class='ctx'>         kernel_exec(cmd, *args)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def validate_cmd!</div><div class='ctx'>       return unless cmd.nil?</div><div class='hunk'>@@ -48,15 +38,11 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def kernel_exec(*args)</div><div class='del'>-      ui = Bundler.ui</div><div class='del'>-      Bundler.ui = nil</div><div class='ctx'>       Kernel.exec(*args)</div><div class='ctx'>     rescue Errno::EACCES, Errno::ENOEXEC</div><div class='del'>-      Bundler.ui = ui</div><div class='ctx'>       Bundler.ui.error "bundler: not executable: #{cmd}"</div><div class='ctx'>       exit 126</div><div class='ctx'>     rescue Errno::ENOENT</div><div class='del'>-      Bundler.ui = ui</div><div class='ctx'>       Bundler.ui.error "bundler: command not found: #{cmd}"</div><div class='ctx'>       Bundler.ui.warn "Install missing gem executables with `bundle install`"</div><div class='ctx'>       exit 127</div><div class='hunk'>@@ -67,18 +53,15 @@ module Bundler</div><div class='ctx'>       ARGV.replace(args)</div><div class='ctx'>       $0 = file</div><div class='ctx'>       Process.setproctitle(process_title(file, args)) if Process.respond_to?(:setproctitle)</div><div class='del'>-      ui = Bundler.ui</div><div class='del'>-      Bundler.ui = nil</div><div class='del'>-      require "bundler/setup"</div><div class='add'>+      require_relative "../setup"</div><div class='ctx'>       TRAPPED_SIGNALS.each {|s| trap(s, "DEFAULT") }</div><div class='ctx'>       Kernel.load(file)</div><div class='ctx'>     rescue SystemExit, SignalException</div><div class='ctx'>       raise</div><div class='del'>-    rescue Exception =&gt; e # rubocop:disable Lint/RescueException</div><div class='del'>-      Bundler.ui = ui</div><div class='add'>+    rescue Exception # rubocop:disable Lint/RescueException</div><div class='ctx'>       Bundler.ui.error "bundler: failed to load command: #{cmd} (#{file})"</div><div class='del'>-      backtrace = e.backtrace ? e.backtrace.take_while {|bt| !bt.start_with?(__FILE__) } : []</div><div class='del'>-      abort "#{e.class}: #{e.message}\n  #{backtrace.join("\n  ")}"</div><div class='add'>+      Bundler::FriendlyErrors.disable!</div><div class='add'>+      raise</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def process_title(file, args)</div><div class='head'>diff --git a/lib/bundler/cli/fund.rb b/lib/bundler/cli/fund.rb<br/>new file mode 100644<br/>index 0000000000..52db5aef68<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/fund.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/fund.rb</a></div><div class='hunk'>@@ -0,0 +1,36 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  class CLI::Fund</div><div class='add'>+    attr_reader :options</div><div class='add'>+</div><div class='add'>+    def initialize(options)</div><div class='add'>+      @options = options</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def run</div><div class='add'>+      Bundler.definition.validate_runtime!</div><div class='add'>+</div><div class='add'>+      groups = Array(options[:group]).map(&amp;:to_sym)</div><div class='add'>+</div><div class='add'>+      deps = if groups.any?</div><div class='add'>+        Bundler.definition.dependencies_for(groups)</div><div class='add'>+      else</div><div class='add'>+        Bundler.definition.current_dependencies</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      fund_info = deps.each_with_object([]) do |dep, arr|</div><div class='add'>+        spec = Bundler.definition.specs[dep.name].first</div><div class='add'>+        if spec.metadata.key?("funding_uri")</div><div class='add'>+          arr &lt;&lt; "* #{spec.name} (#{spec.version})\n  Funding: #{spec.metadata["funding_uri"]}"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if fund_info.empty?</div><div class='add'>+        Bundler.ui.info "None of the installed gems you directly depend on are looking for funding."</div><div class='add'>+      else</div><div class='add'>+        Bundler.ui.info fund_info.join("\n")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/cli/gem.rb b/lib/bundler/cli/gem.rb<br/>index 58e2f8a3fd..7f1200f4a0 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/gem.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/gem.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/gem.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/gem.rb</a></div><div class='hunk'>@@ -11,10 +11,11 @@ module Bundler</div><div class='ctx'>   class CLI::Gem</div><div class='ctx'>     TEST_FRAMEWORK_VERSIONS = {</div><div class='ctx'>       "rspec" =&gt; "3.0",</div><div class='del'>-      "minitest" =&gt; "5.0"</div><div class='add'>+      "minitest" =&gt; "5.0",</div><div class='add'>+      "test-unit" =&gt; "3.0",</div><div class='ctx'>     }.freeze</div><div class='ctx'> </div><div class='del'>-    attr_reader :options, :gem_name, :thor, :name, :target</div><div class='add'>+    attr_reader :options, :gem_name, :thor, :name, :target, :extension</div><div class='ctx'> </div><div class='ctx'>     def initialize(options, gem_name, thor)</div><div class='ctx'>       @options = options</div><div class='hunk'>@@ -27,7 +28,11 @@ module Bundler</div><div class='ctx'>       @name = @gem_name</div><div class='ctx'>       @target = SharedHelpers.pwd.join(gem_name)</div><div class='ctx'> </div><div class='del'>-      validate_ext_name if options[:ext]</div><div class='add'>+      @extension = options[:ext]</div><div class='add'>+</div><div class='add'>+      validate_ext_name if @extension</div><div class='add'>+      validate_rust_builder_rubygems_version if @extension == "rust"</div><div class='add'>+      travis_removal_info</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='hunk'>@@ -37,39 +42,53 @@ module Bundler</div><div class='ctx'>       namespaced_path = name.tr("-", "/")</div><div class='ctx'>       constant_name = name.gsub(/-[_-]*(?![_-]|$)/) { "::" }.gsub(/([_-]+|(::)|^)(.|$)/) { $2.to_s + $3.upcase }</div><div class='ctx'>       constant_array = constant_name.split("::")</div><div class='add'>+      minitest_constant_name = constant_array.clone.tap {|a| a[-1] = "Test#{a[-1]}" }.join("::") # Foo::Bar =&gt; Foo::TestBar</div><div class='add'>+</div><div class='add'>+      use_git = Bundler.git_present? &amp;&amp; options[:git]</div><div class='ctx'> </div><div class='del'>-      git_installed = Bundler.git_present?</div><div class='add'>+      git_author_name = use_git ? `git config user.name`.chomp : ""</div><div class='add'>+      git_username = use_git ? `git config github.user`.chomp : ""</div><div class='add'>+      git_user_email = use_git ? `git config user.email`.chomp : ""</div><div class='ctx'> </div><div class='del'>-      git_author_name = git_installed ? `git config user.name`.chomp : ""</div><div class='del'>-      github_username = git_installed ? `git config github.user`.chomp : ""</div><div class='del'>-      git_user_email = git_installed ? `git config user.email`.chomp : ""</div><div class='add'>+      github_username = if options[:github_username].nil?</div><div class='add'>+        git_username</div><div class='add'>+      elsif options[:github_username] == false</div><div class='add'>+        ""</div><div class='add'>+      else</div><div class='add'>+        options[:github_username]</div><div class='add'>+      end</div><div class='ctx'> </div><div class='ctx'>       config = {</div><div class='del'>-        :name             =&gt; name,</div><div class='add'>+        :name =&gt; name,</div><div class='ctx'>         :underscored_name =&gt; underscored_name,</div><div class='del'>-        :namespaced_path  =&gt; namespaced_path,</div><div class='del'>-        :makefile_path    =&gt; "#{underscored_name}/#{underscored_name}",</div><div class='del'>-        :constant_name    =&gt; constant_name,</div><div class='del'>-        :constant_array   =&gt; constant_array,</div><div class='del'>-        :author           =&gt; git_author_name.empty? ? "TODO: Write your name" : git_author_name,</div><div class='del'>-        :email            =&gt; git_user_email.empty? ? "TODO: Write your email address" : git_user_email,</div><div class='del'>-        :test             =&gt; options[:test],</div><div class='del'>-        :ext              =&gt; options[:ext],</div><div class='del'>-        :exe              =&gt; options[:exe],</div><div class='del'>-        :bundler_version  =&gt; bundler_dependency_version,</div><div class='del'>-        :github_username  =&gt; github_username.empty? ? "[USERNAME]" : github_username</div><div class='add'>+        :namespaced_path =&gt; namespaced_path,</div><div class='add'>+        :makefile_path =&gt; "#{underscored_name}/#{underscored_name}",</div><div class='add'>+        :constant_name =&gt; constant_name,</div><div class='add'>+        :constant_array =&gt; constant_array,</div><div class='add'>+        :author =&gt; git_author_name.empty? ? "TODO: Write your name" : git_author_name,</div><div class='add'>+        :email =&gt; git_user_email.empty? ? "TODO: Write your email address" : git_user_email,</div><div class='add'>+        :test =&gt; options[:test],</div><div class='add'>+        :ext =&gt; extension,</div><div class='add'>+        :exe =&gt; options[:exe],</div><div class='add'>+        :bundler_version =&gt; bundler_dependency_version,</div><div class='add'>+        :git =&gt; use_git,</div><div class='add'>+        :github_username =&gt; github_username.empty? ? "[USERNAME]" : github_username,</div><div class='add'>+        :required_ruby_version =&gt; required_ruby_version,</div><div class='add'>+        :rust_builder_required_rubygems_version =&gt; rust_builder_required_rubygems_version,</div><div class='add'>+        :minitest_constant_name =&gt; minitest_constant_name,</div><div class='ctx'>       }</div><div class='ctx'>       ensure_safe_gem_name(name, constant_array)</div><div class='ctx'> </div><div class='ctx'>       templates = {</div><div class='del'>-        "Gemfile.tt" =&gt; "Gemfile",</div><div class='add'>+        "#{Bundler.preferred_gemfile_name}.tt" =&gt; Bundler.preferred_gemfile_name,</div><div class='ctx'>         "lib/newgem.rb.tt" =&gt; "lib/#{namespaced_path}.rb",</div><div class='ctx'>         "lib/newgem/version.rb.tt" =&gt; "lib/#{namespaced_path}/version.rb",</div><div class='add'>+        "sig/newgem.rbs.tt" =&gt; "sig/#{namespaced_path}.rbs",</div><div class='ctx'>         "newgem.gemspec.tt" =&gt; "#{name}.gemspec",</div><div class='ctx'>         "Rakefile.tt" =&gt; "Rakefile",</div><div class='ctx'>         "README.md.tt" =&gt; "README.md",</div><div class='ctx'>         "bin/console.tt" =&gt; "bin/console",</div><div class='del'>-        "bin/setup.tt" =&gt; "bin/setup"</div><div class='add'>+        "bin/setup.tt" =&gt; "bin/setup",</div><div class='ctx'>       }</div><div class='ctx'> </div><div class='ctx'>       executables = %w[</div><div class='hunk'>@@ -77,14 +96,12 @@ module Bundler</div><div class='ctx'>         bin/setup</div><div class='ctx'>       ]</div><div class='ctx'> </div><div class='del'>-      templates.merge!("gitignore.tt" =&gt; ".gitignore") if Bundler.git_present?</div><div class='add'>+      templates.merge!("gitignore.tt" =&gt; ".gitignore") if use_git</div><div class='ctx'> </div><div class='ctx'>       if test_framework = ask_and_set_test_framework</div><div class='ctx'>         config[:test] = test_framework</div><div class='ctx'>         config[:test_framework_version] = TEST_FRAMEWORK_VERSIONS[test_framework]</div><div class='ctx'> </div><div class='del'>-        templates.merge!("travis.yml.tt" =&gt; ".travis.yml")</div><div class='del'>-</div><div class='ctx'>         case test_framework</div><div class='ctx'>         when "rspec"</div><div class='ctx'>           templates.merge!(</div><div class='hunk'>@@ -92,15 +109,39 @@ module Bundler</div><div class='ctx'>             "spec/spec_helper.rb.tt" =&gt; "spec/spec_helper.rb",</div><div class='ctx'>             "spec/newgem_spec.rb.tt" =&gt; "spec/#{namespaced_path}_spec.rb"</div><div class='ctx'>           )</div><div class='add'>+          config[:test_task] = :spec</div><div class='ctx'>         when "minitest"</div><div class='add'>+          # Generate path for minitest target file (FileList["test/**/test_*.rb"])</div><div class='add'>+          #   foo     =&gt; test/test_foo.rb</div><div class='add'>+          #   foo-bar =&gt; test/foo/test_bar.rb</div><div class='add'>+          #   foo_bar =&gt; test/test_foo_bar.rb</div><div class='add'>+          paths = namespaced_path.rpartition("/")</div><div class='add'>+          paths[2] = "test_#{paths[2]}"</div><div class='add'>+          minitest_namespaced_path = paths.join("")</div><div class='add'>+</div><div class='ctx'>           templates.merge!(</div><div class='del'>-            "test/test_helper.rb.tt" =&gt; "test/test_helper.rb",</div><div class='del'>-            "test/newgem_test.rb.tt" =&gt; "test/#{namespaced_path}_test.rb"</div><div class='add'>+            "test/minitest/test_helper.rb.tt" =&gt; "test/test_helper.rb",</div><div class='add'>+            "test/minitest/test_newgem.rb.tt" =&gt; "test/#{minitest_namespaced_path}.rb"</div><div class='ctx'>           )</div><div class='add'>+          config[:test_task] = :test</div><div class='add'>+        when "test-unit"</div><div class='add'>+          templates.merge!(</div><div class='add'>+            "test/test-unit/test_helper.rb.tt" =&gt; "test/test_helper.rb",</div><div class='add'>+            "test/test-unit/newgem_test.rb.tt" =&gt; "test/#{namespaced_path}_test.rb"</div><div class='add'>+          )</div><div class='add'>+          config[:test_task] = :test</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      config[:test_task] = config[:test] == "minitest" ? "test" : "spec"</div><div class='add'>+      config[:ci] = ask_and_set_ci</div><div class='add'>+      case config[:ci]</div><div class='add'>+      when "github"</div><div class='add'>+        templates.merge!("github/workflows/main.yml.tt" =&gt; ".github/workflows/main.yml")</div><div class='add'>+      when "gitlab"</div><div class='add'>+        templates.merge!("gitlab-ci.yml.tt" =&gt; ".gitlab-ci.yml")</div><div class='add'>+      when "circle"</div><div class='add'>+        templates.merge!("circleci/config.yml.tt" =&gt; ".circleci/config.yml")</div><div class='add'>+      end</div><div class='ctx'> </div><div class='ctx'>       if ask_and_set(:mit, "Do you want to license your code permissively under the MIT license?",</div><div class='ctx'>         "This means that any other developer or company will be legally allowed to use your code " \</div><div class='hunk'>@@ -124,34 +165,75 @@ module Bundler</div><div class='ctx'>         templates.merge!("CODE_OF_CONDUCT.md.tt" =&gt; "CODE_OF_CONDUCT.md")</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      if ask_and_set(:changelog, "Do you want to include a changelog?",</div><div class='add'>+        "A changelog is a file which contains a curated, chronologically ordered list of notable " \</div><div class='add'>+        "changes for each version of a project. To make it easier for users and contributors to" \</div><div class='add'>+        " see precisely what notable changes have been made between each release (or version) of" \</div><div class='add'>+        " the project. Whether consumers or developers, the end users of software are" \</div><div class='add'>+        " human beings who care about what's in the software. When the software changes, people " \</div><div class='add'>+        "want to know why and how. see https://keepachangelog.com")</div><div class='add'>+        config[:changelog] = true</div><div class='add'>+        Bundler.ui.info "Changelog enabled in config"</div><div class='add'>+        templates.merge!("CHANGELOG.md.tt" =&gt; "CHANGELOG.md")</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      config[:linter] = ask_and_set_linter</div><div class='add'>+      case config[:linter]</div><div class='add'>+      when "rubocop"</div><div class='add'>+        config[:linter_version] = rubocop_version</div><div class='add'>+        Bundler.ui.info "RuboCop enabled in config"</div><div class='add'>+        templates.merge!("rubocop.yml.tt" =&gt; ".rubocop.yml")</div><div class='add'>+      when "standard"</div><div class='add'>+        config[:linter_version] = standard_version</div><div class='add'>+        Bundler.ui.info "Standard enabled in config"</div><div class='add'>+        templates.merge!("standard.yml.tt" =&gt; ".standard.yml")</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       templates.merge!("exe/newgem.tt" =&gt; "exe/#{name}") if config[:exe]</div><div class='ctx'> </div><div class='del'>-      if options[:ext]</div><div class='add'>+      if extension == "c"</div><div class='ctx'>         templates.merge!(</div><div class='del'>-          "ext/newgem/extconf.rb.tt" =&gt; "ext/#{name}/extconf.rb",</div><div class='add'>+          "ext/newgem/extconf-c.rb.tt" =&gt; "ext/#{name}/extconf.rb",</div><div class='ctx'>           "ext/newgem/newgem.h.tt" =&gt; "ext/#{name}/#{underscored_name}.h",</div><div class='ctx'>           "ext/newgem/newgem.c.tt" =&gt; "ext/#{name}/#{underscored_name}.c"</div><div class='ctx'>         )</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      if extension == "rust"</div><div class='add'>+        templates.merge!(</div><div class='add'>+          "Cargo.toml.tt" =&gt; "Cargo.toml",</div><div class='add'>+          "ext/newgem/Cargo.toml.tt" =&gt; "ext/#{name}/Cargo.toml",</div><div class='add'>+          "ext/newgem/extconf-rust.rb.tt" =&gt; "ext/#{name}/extconf.rb",</div><div class='add'>+          "ext/newgem/src/lib.rs.tt" =&gt; "ext/#{name}/src/lib.rs",</div><div class='add'>+        )</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if target.exist? &amp;&amp; !target.directory?</div><div class='add'>+        Bundler.ui.error "Couldn't create a new gem named `#{gem_name}` because there's an existing file named `#{gem_name}`."</div><div class='add'>+        exit Bundler::BundlerError.all_errors[Bundler::GenericSystemCallError]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if use_git</div><div class='add'>+        Bundler.ui.info "Initializing git repo in #{target}"</div><div class='add'>+        require "shellwords"</div><div class='add'>+        `git init #{target.to_s.shellescape}`</div><div class='add'>+</div><div class='add'>+        config[:git_default_branch] = File.read("#{target}/.git/HEAD").split("/").last.chomp</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       templates.each do |src, dst|</div><div class='ctx'>         destination = target.join(dst)</div><div class='del'>-        SharedHelpers.filesystem_access(destination) do</div><div class='del'>-          thor.template("newgem/#{src}", destination, config)</div><div class='del'>-        end</div><div class='add'>+        thor.template("newgem/#{src}", destination, config)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       executables.each do |file|</div><div class='del'>-        SharedHelpers.filesystem_access(target.join(file)) do |path|</div><div class='del'>-          executable = (path.stat.mode | 0o111)</div><div class='del'>-          path.chmod(executable)</div><div class='del'>-        end</div><div class='add'>+        path = target.join(file)</div><div class='add'>+        executable = (path.stat.mode | 0o111)</div><div class='add'>+        path.chmod(executable)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      if Bundler.git_present?</div><div class='del'>-        Bundler.ui.info "Initializing git repo in #{target}"</div><div class='add'>+      if use_git</div><div class='ctx'>         Dir.chdir(target) do</div><div class='del'>-          `git init`</div><div class='ctx'>           `git add .`</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='hunk'>@@ -161,11 +243,9 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       Bundler.ui.info "Gem '#{name}' was successfully created. " \</div><div class='ctx'>         "For more information on making a RubyGem visit https://bundler.io/guides/creating_gem.html"</div><div class='del'>-    rescue Errno::EEXIST =&gt; e</div><div class='del'>-      raise GenericSystemCallError.new(e, "There was a conflict while creating the new gem.")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def resolve_name(name)</div><div class='ctx'>       SharedHelpers.pwd.join(name).basename.to_s</div><div class='hunk'>@@ -190,18 +270,19 @@ module Bundler</div><div class='ctx'>       Bundler.ui.error "You have specified a gem name which does not conform to the \n" \</div><div class='ctx'>                        "naming guidelines for C extensions. For more information, \n" \</div><div class='ctx'>                        "see the 'Extension Naming' section at the following URL:\n" \</div><div class='del'>-                       "http://guides.rubygems.org/gems-with-extensions/\n"</div><div class='add'>+                       "https://guides.rubygems.org/gems-with-extensions/\n"</div><div class='ctx'>       exit 1</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def ask_and_set_test_framework</div><div class='ctx'>       test_framework = options[:test] || Bundler.settings["gem.test"]</div><div class='ctx'> </div><div class='del'>-      if test_framework.nil?</div><div class='add'>+      if test_framework.to_s.empty?</div><div class='ctx'>         Bundler.ui.confirm "Do you want to generate tests with your gem?"</div><div class='del'>-        result = Bundler.ui.ask "Type 'rspec' or 'minitest' to generate those test files now and " \</div><div class='del'>-          "in the future. rspec/minitest/(none):"</div><div class='del'>-        if result =~ /rspec|minitest/</div><div class='add'>+        Bundler.ui.info hint_text("test")</div><div class='add'>+</div><div class='add'>+        result = Bundler.ui.ask "Enter a test framework. rspec/minitest/test-unit/(none):"</div><div class='add'>+        if /rspec|minitest|test-unit/.match?(result)</div><div class='ctx'>           test_framework = result</div><div class='ctx'>         else</div><div class='ctx'>           test_framework = false</div><div class='hunk'>@@ -212,9 +293,105 @@ module Bundler</div><div class='ctx'>         Bundler.settings.set_global("gem.test", test_framework)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      if options[:test] == Bundler.settings["gem.test"]</div><div class='add'>+        Bundler.ui.info "#{options[:test]} is already configured, ignoring --test flag."</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       test_framework</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def hint_text(setting)</div><div class='add'>+      if Bundler.settings["gem.#{setting}"] == false</div><div class='add'>+        "Your choice will only be applied to this gem."</div><div class='add'>+      else</div><div class='add'>+        "Future `bundle gem` calls will use your choice. " \</div><div class='add'>+        "This setting can be changed anytime with `bundle config gem.#{setting}`."</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def ask_and_set_ci</div><div class='add'>+      ci_template = options[:ci] || Bundler.settings["gem.ci"]</div><div class='add'>+</div><div class='add'>+      if ci_template.to_s.empty?</div><div class='add'>+        Bundler.ui.confirm "Do you want to set up continuous integration for your gem? " \</div><div class='add'>+          "Supported services:\n" \</div><div class='add'>+          "* CircleCI:       https://circleci.com/\n" \</div><div class='add'>+          "* GitHub Actions: https://github.com/features/actions\n" \</div><div class='add'>+          "* GitLab CI:      https://docs.gitlab.com/ee/ci/\n" \</div><div class='add'>+          "\n"</div><div class='add'>+        Bundler.ui.info hint_text("ci")</div><div class='add'>+</div><div class='add'>+        result = Bundler.ui.ask "Enter a CI service. github/gitlab/circle/(none):"</div><div class='add'>+        if /github|gitlab|circle/.match?(result)</div><div class='add'>+          ci_template = result</div><div class='add'>+        else</div><div class='add'>+          ci_template = false</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if Bundler.settings["gem.ci"].nil?</div><div class='add'>+        Bundler.settings.set_global("gem.ci", ci_template)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if options[:ci] == Bundler.settings["gem.ci"]</div><div class='add'>+        Bundler.ui.info "#{options[:ci]} is already configured, ignoring --ci flag."</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      ci_template</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def ask_and_set_linter</div><div class='add'>+      linter_template = options[:linter] || Bundler.settings["gem.linter"]</div><div class='add'>+      linter_template = deprecated_rubocop_option if linter_template.nil?</div><div class='add'>+</div><div class='add'>+      if linter_template.to_s.empty?</div><div class='add'>+        Bundler.ui.confirm "Do you want to add a code linter and formatter to your gem? " \</div><div class='add'>+          "Supported Linters:\n" \</div><div class='add'>+          "* RuboCop:       https://rubocop.org\n" \</div><div class='add'>+          "* Standard:      https://github.com/testdouble/standard\n" \</div><div class='add'>+          "\n"</div><div class='add'>+        Bundler.ui.info hint_text("linter")</div><div class='add'>+</div><div class='add'>+        result = Bundler.ui.ask "Enter a linter. rubocop/standard/(none):"</div><div class='add'>+        if /rubocop|standard/.match?(result)</div><div class='add'>+          linter_template = result</div><div class='add'>+        else</div><div class='add'>+          linter_template = false</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if Bundler.settings["gem.linter"].nil?</div><div class='add'>+        Bundler.settings.set_global("gem.linter", linter_template)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Once gem.linter safely set, unset the deprecated gem.rubocop</div><div class='add'>+      unless Bundler.settings["gem.rubocop"].nil?</div><div class='add'>+        Bundler.settings.set_global("gem.rubocop", nil)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if options[:linter] == Bundler.settings["gem.linter"]</div><div class='add'>+        Bundler.ui.info "#{options[:linter]} is already configured, ignoring --linter flag."</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      linter_template</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def deprecated_rubocop_option</div><div class='add'>+      if !options[:rubocop].nil?</div><div class='add'>+        if options[:rubocop]</div><div class='add'>+          Bundler::SharedHelpers.major_deprecation 2, "--rubocop is deprecated, use --linter=rubocop"</div><div class='add'>+          "rubocop"</div><div class='add'>+        else</div><div class='add'>+          Bundler::SharedHelpers.major_deprecation 2, "--no-rubocop is deprecated, use --linter"</div><div class='add'>+          false</div><div class='add'>+        end</div><div class='add'>+      elsif !Bundler.settings["gem.rubocop"].nil?</div><div class='add'>+        Bundler::SharedHelpers.major_deprecation 2,</div><div class='add'>+          "config gem.rubocop is deprecated; we've updated your config to use gem.linter instead"</div><div class='add'>+        Bundler.settings["gem.rubocop"] ? "rubocop" : false</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def bundler_dependency_version</div><div class='ctx'>       v = Gem::Version.new(Bundler::VERSION)</div><div class='ctx'>       req = v.segments[0..1]</div><div class='hunk'>@@ -223,7 +400,7 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def ensure_safe_gem_name(name, constant_array)</div><div class='del'>-      if name =~ /^\d/</div><div class='add'>+      if /^\d/.match?(name)</div><div class='ctx'>         Bundler.ui.error "Invalid gem name #{name} Please give a name which does not start with numbers."</div><div class='ctx'>         exit 1</div><div class='ctx'>       end</div><div class='hunk'>@@ -248,5 +425,41 @@ module Bundler</div><div class='ctx'>     def open_editor(editor, file)</div><div class='ctx'>       thor.run(%(#{editor} "#{file}"))</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def rust_builder_required_rubygems_version</div><div class='add'>+      "3.3.11"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def required_ruby_version</div><div class='add'>+      "2.6.0"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def rubocop_version</div><div class='add'>+      "1.21"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def standard_version</div><div class='add'>+      "1.3"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # TODO: remove at next minor release</div><div class='add'>+    def travis_removal_info</div><div class='add'>+      if options[:ci] == "travis"</div><div class='add'>+        Bundler.ui.error "Support for Travis CI was removed from gem skeleton generator."</div><div class='add'>+        exit 1</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if Bundler.settings["gem.ci"] == "travis"</div><div class='add'>+        Bundler.ui.error "Support for Travis CI was removed from gem skeleton generator, but it is present in bundle config. Please configure another provider using `bundle config set gem.ci SERVICE` (where SERVICE is one of github/gitlab/circle) or unset configuration using `bundle config unset gem.ci`."</div><div class='add'>+        exit 1</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def validate_rust_builder_rubygems_version</div><div class='add'>+      if Gem::Version.new(rust_builder_required_rubygems_version) &gt; Gem.rubygems_version</div><div class='add'>+        Bundler.ui.error "Your RubyGems version (#{Gem.rubygems_version}) is too old to build Rust extension. Please update your RubyGems using `gem update --system` or any other way and try again."</div><div class='add'>+        exit 1</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/info.rb b/lib/bundler/cli/info.rb<br/>index 958b525067..36c7a58f12 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/info.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/info.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/info.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/info.rb</a></div><div class='hunk'>@@ -9,42 +9,86 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='add'>+      Bundler.ui.silence do</div><div class='add'>+        Bundler.definition.validate_runtime!</div><div class='add'>+        Bundler.load.lock</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       spec = spec_for_gem(gem_name)</div><div class='ctx'> </div><div class='del'>-      spec_not_found(gem_name) unless spec</div><div class='del'>-      return print_gem_path(spec) if @options[:path]</div><div class='del'>-      print_gem_info(spec)</div><div class='add'>+      if spec</div><div class='add'>+        return print_gem_path(spec) if @options[:path]</div><div class='add'>+        return print_gem_version(spec) if @options[:version]</div><div class='add'>+        print_gem_info(spec)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def spec_for_gem(gem_name)</div><div class='ctx'>       spec = Bundler.definition.specs.find {|s| s.name == gem_name }</div><div class='del'>-      spec || default_gem_spec(gem_name)</div><div class='add'>+      spec || default_gem_spec(gem_name) || Bundler::CLI::Common.select_spec(gem_name, :regex_match)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def default_gem_spec(gem_name)</div><div class='ctx'>       return unless Gem::Specification.respond_to?(:find_all_by_name)</div><div class='ctx'>       gem_spec = Gem::Specification.find_all_by_name(gem_name).last</div><div class='del'>-      return gem_spec if gem_spec &amp;&amp; gem_spec.respond_to?(:default_gem?) &amp;&amp; gem_spec.default_gem?</div><div class='add'>+      return gem_spec if gem_spec&amp;.default_gem?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def spec_not_found(gem_name)</div><div class='ctx'>       raise GemNotFound, Bundler::CLI::Common.gem_not_found_message(gem_name, Bundler.definition.dependencies)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def print_gem_version(spec)</div><div class='add'>+      Bundler.ui.info spec.version.to_s</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def print_gem_path(spec)</div><div class='del'>-      Bundler.ui.info spec.full_gem_path</div><div class='add'>+      name = spec.name</div><div class='add'>+      if name == "bundler"</div><div class='add'>+        path = File.expand_path("../../..", __dir__)</div><div class='add'>+      else</div><div class='add'>+        path = spec.full_gem_path</div><div class='add'>+        if spec.deleted_gem?</div><div class='add'>+          return Bundler.ui.warn "The gem #{name} has been deleted. It was installed at: #{path}"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      Bundler.ui.info path</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def print_gem_info(spec)</div><div class='add'>+      metadata = spec.metadata</div><div class='add'>+      name = spec.name</div><div class='ctx'>       gem_info = String.new</div><div class='del'>-      gem_info &lt;&lt; "  * #{spec.name} (#{spec.version}#{spec.git_version})\n"</div><div class='add'>+      gem_info &lt;&lt; "  * #{name} (#{spec.version}#{spec.git_version})\n"</div><div class='ctx'>       gem_info &lt;&lt; "\tSummary: #{spec.summary}\n" if spec.summary</div><div class='ctx'>       gem_info &lt;&lt; "\tHomepage: #{spec.homepage}\n" if spec.homepage</div><div class='add'>+      gem_info &lt;&lt; "\tDocumentation: #{metadata["documentation_uri"]}\n" if metadata.key?("documentation_uri")</div><div class='add'>+      gem_info &lt;&lt; "\tSource Code: #{metadata["source_code_uri"]}\n" if metadata.key?("source_code_uri")</div><div class='add'>+      gem_info &lt;&lt; "\tFunding: #{metadata["funding_uri"]}\n" if metadata.key?("funding_uri")</div><div class='add'>+      gem_info &lt;&lt; "\tWiki: #{metadata["wiki_uri"]}\n" if metadata.key?("wiki_uri")</div><div class='add'>+      gem_info &lt;&lt; "\tChangelog: #{metadata["changelog_uri"]}\n" if metadata.key?("changelog_uri")</div><div class='add'>+      gem_info &lt;&lt; "\tBug Tracker: #{metadata["bug_tracker_uri"]}\n" if metadata.key?("bug_tracker_uri")</div><div class='add'>+      gem_info &lt;&lt; "\tMailing List: #{metadata["mailing_list_uri"]}\n" if metadata.key?("mailing_list_uri")</div><div class='ctx'>       gem_info &lt;&lt; "\tPath: #{spec.full_gem_path}\n"</div><div class='del'>-      gem_info &lt;&lt; "\tDefault Gem: yes" if spec.respond_to?(:default_gem?) &amp;&amp; spec.default_gem?</div><div class='add'>+      gem_info &lt;&lt; "\tDefault Gem: yes\n" if spec.respond_to?(:default_gem?) &amp;&amp; spec.default_gem?</div><div class='add'>+      gem_info &lt;&lt; "\tReverse Dependencies: \n\t\t#{gem_dependencies.join("\n\t\t")}" if gem_dependencies.any?</div><div class='add'>+</div><div class='add'>+      if name != "bundler" &amp;&amp; spec.deleted_gem?</div><div class='add'>+        return Bundler.ui.warn "The gem #{name} has been deleted. Gemspec information is still available though:\n#{gem_info}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       Bundler.ui.info gem_info</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def gem_dependencies</div><div class='add'>+      @gem_dependencies ||= Bundler.definition.specs.map do |spec|</div><div class='add'>+        dependency = spec.dependencies.find {|dep| dep.name == gem_name }</div><div class='add'>+        next unless dependency</div><div class='add'>+        "#{spec.name} (#{spec.version}) depends on #{gem_name} (#{dependency.requirements_list.join(", ")})"</div><div class='add'>+      end.compact.sort</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/init.rb b/lib/bundler/cli/init.rb<br/>index 40df797269..246b9d6460 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/init.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/init.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/init.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/init.rb</a></div><div class='hunk'>@@ -32,16 +32,20 @@ module Bundler</div><div class='ctx'>           file &lt;&lt; spec.to_gemfile</div><div class='ctx'>         end</div><div class='ctx'>       else</div><div class='del'>-        FileUtils.cp(File.expand_path("../../templates/#{gemfile}", __FILE__), gemfile)</div><div class='add'>+        File.open(File.expand_path("../templates/Gemfile", __dir__), "r") do |template|</div><div class='add'>+          File.open(gemfile, "wb") do |destination|</div><div class='add'>+            IO.copy_stream(template, destination)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       puts "Writing new #{gemfile} to #{SharedHelpers.pwd}/#{gemfile}"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def gemfile</div><div class='del'>-      @gemfile ||= Bundler.feature_flag.init_gems_rb? ? "gems.rb" : "Gemfile"</div><div class='add'>+      @gemfile ||= options[:gemfile] || Bundler.preferred_gemfile_name</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/inject.rb b/lib/bundler/cli/inject.rb<br/>index b00675d348..8093a85283 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/inject.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/inject.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/inject.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/inject.rb</a></div><div class='hunk'>@@ -44,7 +44,7 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def last_version_number</div><div class='ctx'>       definition = Bundler.definition(true)</div><div class='head'>diff --git a/lib/bundler/cli/install.rb b/lib/bundler/cli/install.rb<br/>index b40e5f0e9e..c71bcf159f 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/install.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/install.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/install.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/install.rb</a></div><div class='hunk'>@@ -8,11 +8,11 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='del'>-      Bundler.ui.level = "error" if options[:quiet]</div><div class='add'>+      Bundler.ui.level = "warn" if options[:quiet]</div><div class='ctx'> </div><div class='ctx'>       warn_if_root</div><div class='ctx'> </div><div class='del'>-      normalize_groups</div><div class='add'>+      Bundler.self_manager.install_locked_bundler_and_restart_with_it_if_needed</div><div class='ctx'> </div><div class='ctx'>       Bundler::SharedHelpers.set_env "RB_USER_INSTALL", "1" if Bundler::FREEBSD</div><div class='ctx'> </div><div class='hunk'>@@ -35,11 +35,8 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>         options[:local] = true if Bundler.app_cache.exist?</div><div class='ctx'> </div><div class='del'>-        if Bundler.feature_flag.deployment_means_frozen?</div><div class='del'>-          Bundler.settings.set_command_option :deployment, true</div><div class='del'>-        else</div><div class='del'>-          Bundler.settings.set_command_option :frozen, true</div><div class='del'>-        end</div><div class='add'>+        Bundler.settings.set_command_option :deployment, true if options[:deployment]</div><div class='add'>+        Bundler.settings.set_command_option :frozen, true if options[:frozen]</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # When install is called with --no-deployment, disable deployment mode</div><div class='hunk'>@@ -54,7 +51,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       if options["binstubs"]</div><div class='ctx'>         Bundler::SharedHelpers.major_deprecation 2,</div><div class='del'>-          "The --binstubs option will be removed in favor of `bundle binstubs`"</div><div class='add'>+          "The --binstubs option will be removed in favor of `bundle binstubs --all`"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       Plugin.gemfile_install(Bundler.default_gemfile) if Bundler.feature_flag.plugins?</div><div class='hunk'>@@ -63,10 +60,13 @@ module Bundler</div><div class='ctx'>       definition.validate_runtime!</div><div class='ctx'> </div><div class='ctx'>       installer = Installer.install(Bundler.root, definition, options)</div><div class='del'>-      Bundler.load.cache if Bundler.app_cache.exist? &amp;&amp; !options["no-cache"] &amp;&amp; !Bundler.frozen_bundle?</div><div class='add'>+</div><div class='add'>+      Bundler.settings.temporary(:cache_all_platforms =&gt; options[:local] ? false : Bundler.settings[:cache_all_platforms]) do</div><div class='add'>+        Bundler.load.cache(nil, options[:local]) if Bundler.app_cache.exist? &amp;&amp; !options["no-cache"] &amp;&amp; !Bundler.frozen_bundle?</div><div class='add'>+      end</div><div class='ctx'> </div><div class='ctx'>       Bundler.ui.confirm "Bundle complete! #{dependencies_count_for(definition)}, #{gems_installed_for(definition)}."</div><div class='del'>-      Bundler::CLI::Common.output_without_groups_message</div><div class='add'>+      Bundler::CLI::Common.output_without_groups_message(:install)</div><div class='ctx'> </div><div class='ctx'>       if Bundler.use_system_gems?</div><div class='ctx'>         Bundler.ui.confirm "Use `bundle info [gemname]` to see where a bundled gem is installed."</div><div class='hunk'>@@ -80,34 +80,22 @@ module Bundler</div><div class='ctx'>       warn_ambiguous_gems</div><div class='ctx'> </div><div class='ctx'>       if CLI::Common.clean_after_install?</div><div class='del'>-        require "bundler/cli/clean"</div><div class='add'>+        require_relative "clean"</div><div class='ctx'>         Bundler::CLI::Clean.new(options).run</div><div class='ctx'>       end</div><div class='del'>-    rescue GemNotFound, VersionConflict =&gt; e</div><div class='del'>-      if options[:local] &amp;&amp; Bundler.app_cache.exist?</div><div class='del'>-        Bundler.ui.warn "Some gems seem to be missing from your #{Bundler.settings.app_cache_path} directory."</div><div class='del'>-      end</div><div class='ctx'> </div><div class='del'>-      unless Bundler.definition.has_rubygems_remotes?</div><div class='del'>-        Bundler.ui.warn &lt;&lt;-WARN, :wrap =&gt; true</div><div class='del'>-          Your Gemfile has no gem server sources. If you need gems that are \</div><div class='del'>-          not already on your machine, add a line like this to your Gemfile:</div><div class='del'>-          source 'https://rubygems.org'</div><div class='del'>-        WARN</div><div class='del'>-      end</div><div class='del'>-      raise e</div><div class='del'>-    rescue Gem::InvalidSpecificationException =&gt; e</div><div class='add'>+      Bundler::CLI::Common.output_fund_metadata_summary</div><div class='add'>+    rescue Gem::InvalidSpecificationException</div><div class='ctx'>       Bundler.ui.warn "You have one or more invalid gemspecs that need to be fixed."</div><div class='del'>-      raise e</div><div class='add'>+      raise</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def warn_if_root</div><div class='del'>-      return if Bundler.settings[:silence_root_warning] || Bundler::WINDOWS || !Process.uid.zero?</div><div class='del'>-      Bundler.ui.warn "Don't run Bundler as root. Bundler can ask for sudo " \</div><div class='del'>-        "if it is needed, and installing your bundle as root will break this " \</div><div class='del'>-        "application for all non-root users on this machine.", :wrap =&gt; true</div><div class='add'>+      return if Bundler.settings[:silence_root_warning] || Gem.win_platform? || !Process.uid.zero?</div><div class='add'>+      Bundler.ui.warn "Don't run Bundler as root. Installing your bundle as root " \</div><div class='add'>+                      "will break this application for all non-root users on this machine.", :wrap =&gt; true</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def dependencies_count_for(definition)</div><div class='hunk'>@@ -146,38 +134,27 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def normalize_groups</div><div class='del'>-      options[:with] &amp;&amp;= options[:with].join(":").tr(" ", ":").split(":")</div><div class='del'>-      options[:without] &amp;&amp;= options[:without].join(":").tr(" ", ":").split(":")</div><div class='del'>-</div><div class='ctx'>       check_for_group_conflicts_in_cli_options</div><div class='ctx'> </div><div class='del'>-      Bundler.settings.set_command_option :with, nil if options[:with] == []</div><div class='del'>-      Bundler.settings.set_command_option :without, nil if options[:without] == []</div><div class='del'>-</div><div class='del'>-      with = options.fetch(:with, [])</div><div class='del'>-      with |= Bundler.settings[:with].map(&amp;:to_s)</div><div class='del'>-      with -= options[:without] if options[:without]</div><div class='del'>-</div><div class='del'>-      without = options.fetch(:without, [])</div><div class='del'>-      without |= Bundler.settings[:without].map(&amp;:to_s)</div><div class='del'>-      without -= options[:with] if options[:with]</div><div class='del'>-</div><div class='del'>-      options[:with]    = with</div><div class='del'>-      options[:without] = without</div><div class='add'>+      # need to nil them out first to get around validation for backwards compatibility</div><div class='add'>+      Bundler.settings.set_command_option :without, nil</div><div class='add'>+      Bundler.settings.set_command_option :with,    nil</div><div class='add'>+      Bundler.settings.set_command_option :without, options[:without]</div><div class='add'>+      Bundler.settings.set_command_option :with,    options[:with]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def normalize_settings</div><div class='ctx'>       Bundler.settings.set_command_option :path, nil if options[:system]</div><div class='del'>-      Bundler.settings.temporary(:path_relative_to_cwd =&gt; false) do</div><div class='del'>-        Bundler.settings.set_command_option :path, "vendor/bundle" if options[:deployment]</div><div class='del'>-      end</div><div class='ctx'>       Bundler.settings.set_command_option_if_given :path, options[:path]</div><div class='del'>-      Bundler.settings.temporary(:path_relative_to_cwd =&gt; false) do</div><div class='del'>-        Bundler.settings.set_command_option :path, "bundle" if options["standalone"] &amp;&amp; Bundler.settings[:path].nil?</div><div class='add'>+</div><div class='add'>+      if options["standalone"] &amp;&amp; Bundler.settings[:path].nil? &amp;&amp; !options["local"]</div><div class='add'>+        Bundler.settings.temporary(:path_relative_to_cwd =&gt; false) do</div><div class='add'>+          Bundler.settings.set_command_option :path, "bundle"</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       bin_option = options["binstubs"]</div><div class='del'>-      bin_option = nil if bin_option &amp;&amp; bin_option.empty?</div><div class='add'>+      bin_option = nil if bin_option&amp;.empty?</div><div class='ctx'>       Bundler.settings.set_command_option :bin, bin_option if options["binstubs"]</div><div class='ctx'> </div><div class='ctx'>       Bundler.settings.set_command_option_if_given :shebang, options["shebang"]</div><div class='hunk'>@@ -190,27 +167,22 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       Bundler.settings.set_command_option_if_given :clean, options["clean"]</div><div class='ctx'> </div><div class='del'>-      unless Bundler.settings[:without] == options[:without] &amp;&amp; Bundler.settings[:with] == options[:with]</div><div class='del'>-        # need to nil them out first to get around validation for backwards compatibility</div><div class='del'>-        Bundler.settings.set_command_option :without, nil</div><div class='del'>-        Bundler.settings.set_command_option :with,    nil</div><div class='del'>-        Bundler.settings.set_command_option :without, options[:without] - options[:with]</div><div class='del'>-        Bundler.settings.set_command_option :with,    options[:with]</div><div class='del'>-      end</div><div class='add'>+      normalize_groups if options[:without] || options[:with]</div><div class='ctx'> </div><div class='ctx'>       options[:force] = options[:redownload]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def warn_ambiguous_gems</div><div class='add'>+      # TODO: remove this when we drop Bundler 1.x support</div><div class='ctx'>       Installer.ambiguous_gems.to_a.each do |name, installed_from_uri, *also_found_in_uris|</div><div class='del'>-        Bundler.ui.error "Warning: the gem '#{name}' was found in multiple sources."</div><div class='del'>-        Bundler.ui.error "Installed from: #{installed_from_uri}"</div><div class='del'>-        Bundler.ui.error "Also found in:"</div><div class='del'>-        also_found_in_uris.each {|uri| Bundler.ui.error "  * #{uri}" }</div><div class='del'>-        Bundler.ui.error "You should add a source requirement to restrict this gem to your preferred source."</div><div class='del'>-        Bundler.ui.error "For example:"</div><div class='del'>-        Bundler.ui.error "    gem '#{name}', :source =&gt; '#{installed_from_uri}'"</div><div class='del'>-        Bundler.ui.error "Then uninstall the gem '#{name}' (or delete all bundled gems) and then install again."</div><div class='add'>+        Bundler.ui.warn "Warning: the gem '#{name}' was found in multiple sources."</div><div class='add'>+        Bundler.ui.warn "Installed from: #{installed_from_uri}"</div><div class='add'>+        Bundler.ui.warn "Also found in:"</div><div class='add'>+        also_found_in_uris.each {|uri| Bundler.ui.warn "  * #{uri}" }</div><div class='add'>+        Bundler.ui.warn "You should add a source requirement to restrict this gem to your preferred source."</div><div class='add'>+        Bundler.ui.warn "For example:"</div><div class='add'>+        Bundler.ui.warn "    gem '#{name}', :source =&gt; '#{installed_from_uri}'"</div><div class='add'>+        Bundler.ui.warn "Then uninstall the gem '#{name}' (or delete all bundled gems) and then install again."</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='head'>diff --git a/lib/bundler/cli/issue.rb b/lib/bundler/cli/issue.rb<br/>index 91f827ea99..b891ecb1d2 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/issue.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/issue.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/issue.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/issue.rb</a></div><div class='hunk'>@@ -10,19 +10,20 @@ module Bundler</div><div class='ctx'>         be sure to check out these resources:</div><div class='ctx'> </div><div class='ctx'>         1. Check out our troubleshooting guide for quick fixes to common issues:</div><div class='del'>-        https://github.com/bundler/bundler/blob/master/doc/TROUBLESHOOTING.md</div><div class='add'>+        https://github.com/rubygems/rubygems/blob/master/bundler/doc/TROUBLESHOOTING.md</div><div class='ctx'> </div><div class='ctx'>         2. Instructions for common Bundler uses can be found on the documentation</div><div class='del'>-        site: http://bundler.io/</div><div class='add'>+        site: https://bundler.io/</div><div class='ctx'> </div><div class='ctx'>         3. Information about each Bundler command can be found in the Bundler</div><div class='del'>-        man pages: http://bundler.io/man/bundle.1.html</div><div class='add'>+        man pages: https://bundler.io/man/bundle.1.html</div><div class='ctx'> </div><div class='ctx'>         Hopefully the troubleshooting steps above resolved your problem!  If things</div><div class='ctx'>         still aren't working the way you expect them to, please let us know so</div><div class='del'>-        that we can diagnose and help fix the problem you're having. Please</div><div class='del'>-        view the Filing Issues guide for more information:</div><div class='del'>-        https://github.com/bundler/bundler/blob/master/doc/contributing/ISSUES.md</div><div class='add'>+        that we can diagnose and help fix the problem you're having, by filling</div><div class='add'>+        in the new issue form located at</div><div class='add'>+        https://github.com/rubygems/rubygems/issues/new?labels=Bundler&amp;template=bundler-related-issue.md,</div><div class='add'>+        and copy and pasting the information below.</div><div class='ctx'> </div><div class='ctx'>       EOS</div><div class='ctx'> </div><div class='hunk'>@@ -33,7 +34,7 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def doctor</div><div class='del'>-      require "bundler/cli/doctor"</div><div class='add'>+      require_relative "doctor"</div><div class='ctx'>       Bundler::CLI::Doctor.new({}).run</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='head'>diff --git a/lib/bundler/cli/list.rb b/lib/bundler/cli/list.rb<br/>index d1799196e7..f56bf5b86a 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/list.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/list.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/list.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/list.rb</a></div><div class='hunk'>@@ -4,17 +4,25 @@ module Bundler</div><div class='ctx'>   class CLI::List</div><div class='ctx'>     def initialize(options)</div><div class='ctx'>       @options = options</div><div class='add'>+      @without_group = options["without-group"].map(&amp;:to_sym)</div><div class='add'>+      @only_group = options["only-group"].map(&amp;:to_sym)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='del'>-      raise InvalidOption, "The `--only-group` and `--without-group` options cannot be used together" if @options["only-group"] &amp;&amp; @options["without-group"]</div><div class='add'>+      raise InvalidOption, "The `--only-group` and `--without-group` options cannot be used together" if @only_group.any? &amp;&amp; @without_group.any?</div><div class='ctx'> </div><div class='ctx'>       raise InvalidOption, "The `--name-only` and `--paths` options cannot be used together" if @options["name-only"] &amp;&amp; @options[:paths]</div><div class='ctx'> </div><div class='del'>-      specs = if @options["only-group"] || @options["without-group"]</div><div class='add'>+      specs = if @only_group.any? || @without_group.any?</div><div class='ctx'>         filtered_specs_by_groups</div><div class='ctx'>       else</div><div class='del'>-        Bundler.load.specs</div><div class='add'>+        begin</div><div class='add'>+          Bundler.load.specs</div><div class='add'>+        rescue GemNotFound =&gt; e</div><div class='add'>+          Bundler.ui.error e.message</div><div class='add'>+          Bundler.ui.warn "Install missing gems with `bundle install`."</div><div class='add'>+          exit 1</div><div class='add'>+        end</div><div class='ctx'>       end.reject {|s| s.name == "bundler" }.sort_by(&amp;:name)</div><div class='ctx'> </div><div class='ctx'>       return Bundler.ui.info "No gems in the Gemfile" if specs.empty?</div><div class='hunk'>@@ -29,12 +37,12 @@ module Bundler</div><div class='ctx'>       Bundler.ui.info "Use `bundle info` to print more detailed information about a gem"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def verify_group_exists(groups)</div><div class='del'>-      raise InvalidOption, "`#{@options["without-group"]}` group could not be found." if @options["without-group"] &amp;&amp; !groups.include?(@options["without-group"].to_sym)</div><div class='del'>-</div><div class='del'>-      raise InvalidOption, "`#{@options["only-group"]}` group could not be found." if @options["only-group"] &amp;&amp; !groups.include?(@options["only-group"].to_sym)</div><div class='add'>+      (@without_group + @only_group).each do |group|</div><div class='add'>+        raise InvalidOption, "`#{group}` group could not be found." unless groups.include?(group)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def filtered_specs_by_groups</div><div class='hunk'>@@ -44,10 +52,10 @@ module Bundler</div><div class='ctx'>       verify_group_exists(groups)</div><div class='ctx'> </div><div class='ctx'>       show_groups =</div><div class='del'>-        if @options["without-group"]</div><div class='del'>-          groups.reject {|g| g == @options["without-group"].to_sym }</div><div class='del'>-        elsif @options["only-group"]</div><div class='del'>-          groups.select {|g| g == @options["only-group"].to_sym }</div><div class='add'>+        if @without_group.any?</div><div class='add'>+          groups.reject {|g| @without_group.include?(g) }</div><div class='add'>+        elsif @only_group.any?</div><div class='add'>+          groups.select {|g| @only_group.include?(g) }</div><div class='ctx'>         else</div><div class='ctx'>           groups</div><div class='ctx'>         end.map(&amp;:to_sym)</div><div class='head'>diff --git a/lib/bundler/cli/lock.rb b/lib/bundler/cli/lock.rb<br/>index 7dd078b1ef..cb3ed27138 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/lock.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/lock.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/lock.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/lock.rb</a></div><div class='hunk'>@@ -15,15 +15,22 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       print = options[:print]</div><div class='del'>-      ui = Bundler.ui</div><div class='del'>-      Bundler.ui = UI::Silent.new if print</div><div class='add'>+      previous_ui_level = Bundler.ui.level</div><div class='add'>+      Bundler.ui.level = "silent" if print</div><div class='ctx'> </div><div class='ctx'>       Bundler::Fetcher.disable_endpoint = options["full-index"]</div><div class='ctx'> </div><div class='ctx'>       update = options[:update]</div><div class='add'>+      conservative = options[:conservative]</div><div class='add'>+      bundler = options[:bundler]</div><div class='add'>+</div><div class='ctx'>       if update.is_a?(Array) # unlocking specific gems</div><div class='ctx'>         Bundler::CLI::Common.ensure_all_gems_in_lockfile!(update)</div><div class='del'>-        update = { :gems =&gt; update, :lock_shared_dependencies =&gt; options[:conservative] }</div><div class='add'>+        update = { :gems =&gt; update, :conservative =&gt; conservative }</div><div class='add'>+      elsif update &amp;&amp; conservative</div><div class='add'>+        update = { :conservative =&gt; conservative }</div><div class='add'>+      elsif update &amp;&amp; bundler</div><div class='add'>+        update = { :bundler =&gt; bundler }</div><div class='ctx'>       end</div><div class='ctx'>       definition = Bundler.definition(update)</div><div class='ctx'> </div><div class='hunk'>@@ -57,7 +64,7 @@ module Bundler</div><div class='ctx'>         definition.lock(file)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      Bundler.ui = ui</div><div class='add'>+      Bundler.ui.level = previous_ui_level</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/open.rb b/lib/bundler/cli/open.rb<br/>index 552fe6f128..8522ec92d6 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/open.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/open.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/open.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/open.rb</a></div><div class='hunk'>@@ -1,25 +1,30 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "shellwords"</div><div class='del'>-</div><div class='ctx'> module Bundler</div><div class='ctx'>   class CLI::Open</div><div class='del'>-    attr_reader :options, :name</div><div class='add'>+    attr_reader :options, :name, :path</div><div class='ctx'>     def initialize(options, name)</div><div class='ctx'>       @options = options</div><div class='ctx'>       @name = name</div><div class='add'>+      @path = options[:path] unless options[:path].nil?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='add'>+      raise InvalidOption, "Cannot specify `--path` option without a value" if !@path.nil? &amp;&amp; @path.empty?</div><div class='ctx'>       editor = [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? &amp;&amp; !e.empty? }</div><div class='ctx'>       return Bundler.ui.info("To open a bundled gem, set $EDITOR or $BUNDLER_EDITOR") unless editor</div><div class='ctx'>       return unless spec = Bundler::CLI::Common.select_spec(name, :regex_match)</div><div class='del'>-      path = spec.full_gem_path</div><div class='del'>-      Dir.chdir(path) do</div><div class='del'>-        command = Shellwords.split(editor) + [path]</div><div class='del'>-        Bundler.with_original_env do</div><div class='del'>-          system(*command)</div><div class='del'>-        end || Bundler.ui.info("Could not run '#{command.join(" ")}'")</div><div class='add'>+      if spec.default_gem?</div><div class='add'>+        Bundler.ui.info "Unable to open #{name} because it's a default gem, so the directory it would normally be installed to does not exist."</div><div class='add'>+      else</div><div class='add'>+        root_path = spec.full_gem_path</div><div class='add'>+        Dir.chdir(root_path) do</div><div class='add'>+          require "shellwords"</div><div class='add'>+          command = Shellwords.split(editor) &lt;&lt; File.join([root_path, path].compact)</div><div class='add'>+          Bundler.with_original_env do</div><div class='add'>+            system(*command)</div><div class='add'>+          end || Bundler.ui.info("Could not run '#{command.join(" ")}'")</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='head'>diff --git a/lib/bundler/cli/outdated.rb b/lib/bundler/cli/outdated.rb<br/>index 2ca90293db..68c701aefb 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/outdated.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/outdated.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/outdated.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/outdated.rb</a></div><div class='hunk'>@@ -2,17 +2,29 @@</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class CLI::Outdated</div><div class='del'>-    attr_reader :options, :gems</div><div class='add'>+    attr_reader :options, :gems, :options_include_groups, :filter_options_patch, :sources, :strict</div><div class='add'>+    attr_accessor :outdated_gems</div><div class='ctx'> </div><div class='ctx'>     def initialize(options, gems)</div><div class='ctx'>       @options = options</div><div class='ctx'>       @gems = gems</div><div class='add'>+      @sources = Array(options[:source])</div><div class='add'>+</div><div class='add'>+      @filter_options_patch = options.keys &amp; %w[filter-major filter-minor filter-patch]</div><div class='add'>+</div><div class='add'>+      @outdated_gems = []</div><div class='add'>+</div><div class='add'>+      @options_include_groups = [:group, :groups].any? do |v|</div><div class='add'>+        options.keys.include?(v.to_s)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # the patch level options imply strict is also true. It wouldn't make</div><div class='add'>+      # sense otherwise.</div><div class='add'>+      @strict = options["filter-strict"] || Bundler::CLI::Common.patch_level_options(options).any?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='del'>-      check_for_deployment_mode</div><div class='del'>-</div><div class='del'>-      sources = Array(options[:source])</div><div class='add'>+      check_for_deployment_mode!</div><div class='ctx'> </div><div class='ctx'>       gems.each do |gem_name|</div><div class='ctx'>         Bundler::CLI::Common.select_spec(gem_name)</div><div class='hunk'>@@ -20,11 +32,9 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       Bundler.definition.validate_runtime!</div><div class='ctx'>       current_specs = Bundler.ui.silence { Bundler.definition.resolve }</div><div class='del'>-      current_dependencies = {}</div><div class='del'>-      Bundler.ui.silence do</div><div class='del'>-        Bundler.load.dependencies.each do |dep|</div><div class='del'>-          current_dependencies[dep.name] = dep</div><div class='del'>-        end</div><div class='add'>+</div><div class='add'>+      current_dependencies = Bundler.ui.silence do</div><div class='add'>+        Bundler.load.dependencies.map {|dep| [dep.name, dep] }.to_h</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       definition = if gems.empty? &amp;&amp; sources.empty?</div><div class='hunk'>@@ -36,17 +46,9 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       Bundler::CLI::Common.configure_gem_version_promoter(</div><div class='ctx'>         Bundler.definition,</div><div class='del'>-        options</div><div class='add'>+        options.merge(:strict =&gt; @strict)</div><div class='ctx'>       )</div><div class='ctx'> </div><div class='del'>-      # the patch level options imply strict is also true. It wouldn't make</div><div class='del'>-      # sense otherwise.</div><div class='del'>-      strict = options[:strict] ||</div><div class='del'>-        Bundler::CLI::Common.patch_level_options(options).any?</div><div class='del'>-</div><div class='del'>-      filter_options_patch = options.keys &amp;</div><div class='del'>-        %w[filter-major filter-minor filter-patch]</div><div class='del'>-</div><div class='ctx'>       definition_resolution = proc do</div><div class='ctx'>         options[:local] ? definition.resolve_with_cache! : definition.resolve_remotely!</div><div class='ctx'>       end</div><div class='hunk'>@@ -58,8 +60,6 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       Bundler.ui.info ""</div><div class='del'>-      outdated_gems_by_groups = {}</div><div class='del'>-      outdated_gems_list = []</div><div class='ctx'> </div><div class='ctx'>       # Loop through the current specs</div><div class='ctx'>       gemfile_specs, dependency_specs = current_specs.partition do |spec|</div><div class='hunk'>@@ -72,135 +72,129 @@ module Bundler</div><div class='ctx'>         gemfile_specs + dependency_specs</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      specs.sort_by(&amp;:name).each do |current_spec|</div><div class='del'>-        next if !gems.empty? &amp;&amp; !gems.include?(current_spec.name)</div><div class='add'>+      specs.sort_by(&amp;:name).uniq(&amp;:name).each do |current_spec|</div><div class='add'>+        next unless gems.empty? || gems.include?(current_spec.name)</div><div class='ctx'> </div><div class='del'>-        dependency = current_dependencies[current_spec.name]</div><div class='del'>-        active_spec = retrieve_active_spec(strict, definition, current_spec)</div><div class='add'>+        active_spec = retrieve_active_spec(definition, current_spec)</div><div class='add'>+        next unless active_spec</div><div class='ctx'> </div><div class='del'>-        next if active_spec.nil?</div><div class='del'>-        if filter_options_patch.any?</div><div class='del'>-          update_present = update_present_via_semver_portions(current_spec, active_spec, options)</div><div class='del'>-          next unless update_present</div><div class='del'>-        end</div><div class='add'>+        next unless filter_options_patch.empty? || update_present_via_semver_portions(current_spec, active_spec, options)</div><div class='ctx'> </div><div class='ctx'>         gem_outdated = Gem::Version.new(active_spec.version) &gt; Gem::Version.new(current_spec.version)</div><div class='ctx'>         next unless gem_outdated || (current_spec.git_version != active_spec.git_version)</div><div class='del'>-        groups = nil</div><div class='add'>+</div><div class='add'>+        dependency = current_dependencies[current_spec.name]</div><div class='add'>+        groups = ""</div><div class='ctx'>         if dependency &amp;&amp; !options[:parseable]</div><div class='ctx'>           groups = dependency.groups.join(", ")</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        outdated_gems_list &lt;&lt; { :active_spec =&gt; active_spec,</div><div class='del'>-                                :current_spec =&gt; current_spec,</div><div class='del'>-                                :dependency =&gt; dependency,</div><div class='del'>-                                :groups =&gt; groups }</div><div class='del'>-</div><div class='del'>-        outdated_gems_by_groups[groups] ||= []</div><div class='del'>-        outdated_gems_by_groups[groups] &lt;&lt; { :active_spec =&gt; active_spec,</div><div class='del'>-                                             :current_spec =&gt; current_spec,</div><div class='del'>-                                             :dependency =&gt; dependency,</div><div class='del'>-                                             :groups =&gt; groups }</div><div class='add'>+        outdated_gems &lt;&lt; {</div><div class='add'>+          :active_spec =&gt; active_spec,</div><div class='add'>+          :current_spec =&gt; current_spec,</div><div class='add'>+          :dependency =&gt; dependency,</div><div class='add'>+          :groups =&gt; groups,</div><div class='add'>+        }</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      if outdated_gems_list.empty?</div><div class='del'>-        display_nothing_outdated_message(filter_options_patch)</div><div class='del'>-      else</div><div class='add'>+      if outdated_gems.empty?</div><div class='ctx'>         unless options[:parseable]</div><div class='del'>-          if options[:pre]</div><div class='del'>-            Bundler.ui.info "Outdated gems included in the bundle (including " \</div><div class='del'>-              "pre-releases):"</div><div class='del'>-          else</div><div class='del'>-            Bundler.ui.info "Outdated gems included in the bundle:"</div><div class='del'>-          end</div><div class='add'>+          Bundler.ui.info(nothing_outdated_message)</div><div class='ctx'>         end</div><div class='add'>+      else</div><div class='add'>+        if options_include_groups</div><div class='add'>+          relevant_outdated_gems = outdated_gems.group_by {|g| g[:groups] }.sort.flat_map do |groups, gems|</div><div class='add'>+            contains_group = groups.split(", ").include?(options[:group])</div><div class='add'>+            next unless options[:groups] || contains_group</div><div class='ctx'> </div><div class='del'>-        options_include_groups = [:group, :groups].select do |v|</div><div class='del'>-          options.keys.include?(v.to_s)</div><div class='del'>-        end</div><div class='add'>+            gems</div><div class='add'>+          end.compact</div><div class='ctx'> </div><div class='del'>-        if options_include_groups.any?</div><div class='del'>-          ordered_groups = outdated_gems_by_groups.keys.compact.sort</div><div class='del'>-          [nil, ordered_groups].flatten.each do |groups|</div><div class='del'>-            gems = outdated_gems_by_groups[groups]</div><div class='del'>-            contains_group = if groups</div><div class='del'>-              groups.split(",").include?(options[:group])</div><div class='del'>-            else</div><div class='del'>-              options[:group] == "group"</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-            next if (!options[:groups] &amp;&amp; !contains_group) || gems.nil?</div><div class='del'>-</div><div class='del'>-            unless options[:parseable]</div><div class='del'>-              if groups</div><div class='del'>-                Bundler.ui.info "===== Group #{groups} ====="</div><div class='del'>-              else</div><div class='del'>-                Bundler.ui.info "===== Without group ====="</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-            gems.each do |gem|</div><div class='del'>-              print_gem(</div><div class='del'>-                gem[:current_spec],</div><div class='del'>-                gem[:active_spec],</div><div class='del'>-                gem[:dependency],</div><div class='del'>-                groups,</div><div class='del'>-                options_include_groups.any?</div><div class='del'>-              )</div><div class='del'>-            end</div><div class='add'>+          if options[:parseable]</div><div class='add'>+            print_gems(relevant_outdated_gems)</div><div class='add'>+          else</div><div class='add'>+            print_gems_table(relevant_outdated_gems)</div><div class='ctx'>           end</div><div class='add'>+        elsif options[:parseable]</div><div class='add'>+          print_gems(outdated_gems)</div><div class='ctx'>         else</div><div class='del'>-          outdated_gems_list.each do |gem|</div><div class='del'>-            print_gem(</div><div class='del'>-              gem[:current_spec],</div><div class='del'>-              gem[:active_spec],</div><div class='del'>-              gem[:dependency],</div><div class='del'>-              gem[:groups],</div><div class='del'>-              options_include_groups.any?</div><div class='del'>-            )</div><div class='del'>-          end</div><div class='add'>+          print_gems_table(outdated_gems)</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         exit 1</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def loaded_from_for(spec)</div><div class='add'>+      return unless spec.respond_to?(:loaded_from)</div><div class='add'>+</div><div class='add'>+      spec.loaded_from</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def groups_text(group_text, groups)</div><div class='add'>+      "#{group_text}#{groups.split(",").size &gt; 1 ? "s" : ""} \"#{groups}\""</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-    def retrieve_active_spec(strict, definition, current_spec)</div><div class='del'>-      if strict</div><div class='del'>-        active_spec = definition.find_resolved_spec(current_spec)</div><div class='add'>+    def nothing_outdated_message</div><div class='add'>+      if filter_options_patch.any?</div><div class='add'>+        display = filter_options_patch.map do |o|</div><div class='add'>+          o.sub("filter-", "")</div><div class='add'>+        end.join(" or ")</div><div class='add'>+</div><div class='add'>+        "No #{display} updates to display.\n"</div><div class='ctx'>       else</div><div class='del'>-        active_specs = definition.find_indexed_specs(current_spec)</div><div class='del'>-        if !current_spec.version.prerelease? &amp;&amp; !options[:pre] &amp;&amp; active_specs.size &gt; 1</div><div class='del'>-          active_specs.delete_if {|b| b.respond_to?(:version) &amp;&amp; b.version.prerelease? }</div><div class='del'>-        end</div><div class='del'>-        active_spec = active_specs.last</div><div class='add'>+        "Bundle up to date!\n"</div><div class='ctx'>       end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def retrieve_active_spec(definition, current_spec)</div><div class='add'>+      active_spec = definition.resolve.find_by_name_and_platform(current_spec.name, current_spec.platform)</div><div class='add'>+      return unless active_spec</div><div class='ctx'> </div><div class='del'>-      active_spec</div><div class='add'>+      return active_spec if strict</div><div class='add'>+</div><div class='add'>+      active_specs = active_spec.source.specs.search(current_spec.name).select {|spec| spec.match_platform(current_spec.platform) }.sort_by(&amp;:version)</div><div class='add'>+      if !current_spec.version.prerelease? &amp;&amp; !options[:pre] &amp;&amp; active_specs.size &gt; 1</div><div class='add'>+        active_specs.delete_if {|b| b.respond_to?(:version) &amp;&amp; b.version.prerelease? }</div><div class='add'>+      end</div><div class='add'>+      active_specs.last</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def display_nothing_outdated_message(filter_options_patch)</div><div class='del'>-      unless options[:parseable]</div><div class='del'>-        if filter_options_patch.any?</div><div class='del'>-          display = filter_options_patch.map do |o|</div><div class='del'>-            o.sub("filter-", "")</div><div class='del'>-          end.join(" or ")</div><div class='add'>+    def print_gems(gems_list)</div><div class='add'>+      gems_list.each do |gem|</div><div class='add'>+        print_gem(</div><div class='add'>+          gem[:current_spec],</div><div class='add'>+          gem[:active_spec],</div><div class='add'>+          gem[:dependency],</div><div class='add'>+          gem[:groups],</div><div class='add'>+        )</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-          Bundler.ui.info "No #{display} updates to display.\n"</div><div class='del'>-        else</div><div class='del'>-          Bundler.ui.info "Bundle up to date!\n"</div><div class='del'>-        end</div><div class='add'>+    def print_gems_table(gems_list)</div><div class='add'>+      data = gems_list.map do |gem|</div><div class='add'>+        gem_column_for(</div><div class='add'>+          gem[:current_spec],</div><div class='add'>+          gem[:active_spec],</div><div class='add'>+          gem[:dependency],</div><div class='add'>+          gem[:groups],</div><div class='add'>+        )</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      print_indented([table_header] + data)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def print_gem(current_spec, active_spec, dependency, groups, options_include_groups)</div><div class='add'>+    def print_gem(current_spec, active_spec, dependency, groups)</div><div class='ctx'>       spec_version = "#{active_spec.version}#{active_spec.git_version}"</div><div class='del'>-      spec_version += " (from #{active_spec.loaded_from})" if Bundler.ui.debug? &amp;&amp; active_spec.loaded_from</div><div class='add'>+      if Bundler.ui.debug?</div><div class='add'>+        loaded_from = loaded_from_for(active_spec)</div><div class='add'>+        spec_version += " (from #{loaded_from})" if loaded_from</div><div class='add'>+      end</div><div class='ctx'>       current_version = "#{current_spec.version}#{current_spec.git_version}"</div><div class='ctx'> </div><div class='del'>-      if dependency &amp;&amp; dependency.specific?</div><div class='add'>+      if dependency&amp;.specific?</div><div class='ctx'>         dependency_version = %(, requested #{dependency.requirement})</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -209,23 +203,31 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       output_message = if options[:parseable]</div><div class='ctx'>         spec_outdated_info.to_s</div><div class='del'>-      elsif options_include_groups || !groups</div><div class='add'>+      elsif options_include_groups || groups.empty?</div><div class='ctx'>         "  * #{spec_outdated_info}"</div><div class='ctx'>       else</div><div class='del'>-        "  * #{spec_outdated_info} in groups \"#{groups}\""</div><div class='add'>+        "  * #{spec_outdated_info} in #{groups_text("group", groups)}"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       Bundler.ui.info output_message.rstrip</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def check_for_deployment_mode</div><div class='add'>+    def gem_column_for(current_spec, active_spec, dependency, groups)</div><div class='add'>+      current_version = "#{current_spec.version}#{current_spec.git_version}"</div><div class='add'>+      spec_version = "#{active_spec.version}#{active_spec.git_version}"</div><div class='add'>+      dependency = dependency.requirement if dependency</div><div class='add'>+</div><div class='add'>+      ret_val = [active_spec.name, current_version, spec_version, dependency.to_s, groups.to_s]</div><div class='add'>+      ret_val &lt;&lt; loaded_from_for(active_spec).to_s if Bundler.ui.debug?</div><div class='add'>+      ret_val</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def check_for_deployment_mode!</div><div class='ctx'>       return unless Bundler.frozen_bundle?</div><div class='del'>-      suggested_command = if Bundler.settings.locations("frozen")[:global]</div><div class='del'>-        "bundle config --delete frozen"</div><div class='add'>+      suggested_command = if Bundler.settings.locations("frozen").keys.&amp;([:global, :local]).any?</div><div class='add'>+        "bundle config unset frozen"</div><div class='ctx'>       elsif Bundler.settings.locations("deployment").keys.&amp;([:global, :local]).any?</div><div class='del'>-        "bundle config --delete deployment"</div><div class='del'>-      else</div><div class='del'>-        "bundle install --no-deployment"</div><div class='add'>+        "bundle config unset deployment"</div><div class='ctx'>       end</div><div class='ctx'>       raise ProductionError, "You are trying to check outdated gems in " \</div><div class='ctx'>         "deployment mode. Run `bundle outdated` elsewhere.\n" \</div><div class='hunk'>@@ -260,7 +262,36 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def get_version_semver_portion_value(spec, version_portion_index)</div><div class='ctx'>       version_section = spec.version.segments[version_portion_index, 1]</div><div class='del'>-      version_section.nil? ? 0 : (version_section.first || 0)</div><div class='add'>+      version_section.to_a[0].to_i</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def print_indented(matrix)</div><div class='add'>+      header = matrix[0]</div><div class='add'>+      data = matrix[1..-1]</div><div class='add'>+</div><div class='add'>+      column_sizes = Array.new(header.size) do |index|</div><div class='add'>+        matrix.max_by {|row| row[index].length }[index].length</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      Bundler.ui.info justify(header, column_sizes)</div><div class='add'>+</div><div class='add'>+      data.sort_by! {|row| row[0] }</div><div class='add'>+</div><div class='add'>+      data.each do |row|</div><div class='add'>+        Bundler.ui.info justify(row, column_sizes)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def table_header</div><div class='add'>+      header = ["Gem", "Current", "Latest", "Requested", "Groups"]</div><div class='add'>+      header &lt;&lt; "Path" if Bundler.ui.debug?</div><div class='add'>+      header</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def justify(row, sizes)</div><div class='add'>+      row.each_with_index.map do |element, index|</div><div class='add'>+        element.ljust(sizes[index])</div><div class='add'>+      end.join("  ").strip + "\n"</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/package.rb b/lib/bundler/cli/package.rb<br/>deleted file mode 100644<br/>index 2dcd0e1e29..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/package.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/package.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,49 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler</div><div class='del'>-  class CLI::Package</div><div class='del'>-    attr_reader :options</div><div class='del'>-</div><div class='del'>-    def initialize(options)</div><div class='del'>-      @options = options</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def run</div><div class='del'>-      Bundler.ui.level = "error" if options[:quiet]</div><div class='del'>-      Bundler.settings.set_command_option_if_given :path, options[:path]</div><div class='del'>-      Bundler.settings.set_command_option_if_given :cache_all_platforms, options["all-platforms"]</div><div class='del'>-      Bundler.settings.set_command_option_if_given :cache_path, options["cache-path"]</div><div class='del'>-</div><div class='del'>-      setup_cache_all</div><div class='del'>-      install</div><div class='del'>-</div><div class='del'>-      # TODO: move cache contents here now that all bundles are locked</div><div class='del'>-      custom_path = Bundler.settings[:path] if options[:path]</div><div class='del'>-      Bundler.load.cache(custom_path)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-  private</div><div class='del'>-</div><div class='del'>-    def install</div><div class='del'>-      require "bundler/cli/install"</div><div class='del'>-      options = self.options.dup</div><div class='del'>-      if Bundler.settings[:cache_all_platforms]</div><div class='del'>-        options["local"] = false</div><div class='del'>-        options["update"] = true</div><div class='del'>-      end</div><div class='del'>-      Bundler::CLI::Install.new(options).run</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def setup_cache_all</div><div class='del'>-      all = options.fetch(:all, Bundler.feature_flag.cache_command_is_package? || nil)</div><div class='del'>-</div><div class='del'>-      Bundler.settings.set_command_option_if_given :cache_all, all</div><div class='del'>-</div><div class='del'>-      if Bundler.definition.has_local_dependencies? &amp;&amp; !Bundler.feature_flag.cache_all?</div><div class='del'>-        Bundler.ui.warn "Your Gemfile contains path and git dependencies. If you want "    \</div><div class='del'>-          "to package them as well, please pass the --all flag. This will be the default " \</div><div class='del'>-          "on Bundler 2.0."</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/cli/platform.rb b/lib/bundler/cli/platform.rb<br/>index e97cad49a4..32d68abbb1 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/platform.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/platform.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/platform.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/platform.rb</a></div><div class='hunk'>@@ -8,12 +8,12 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='del'>-      platforms, ruby_version = Bundler.ui.silence do</div><div class='del'>-        locked_ruby_version = Bundler.locked_gems &amp;&amp; Bundler.locked_gems.ruby_version</div><div class='del'>-        gemfile_ruby_version = Bundler.definition.ruby_version &amp;&amp; Bundler.definition.ruby_version.single_version_string</div><div class='del'>-        [Bundler.definition.platforms.map {|p| "* #{p}" },</div><div class='del'>-         locked_ruby_version || gemfile_ruby_version]</div><div class='add'>+      ruby_version = if Bundler.locked_gems</div><div class='add'>+        Bundler.locked_gems.ruby_version&amp;.gsub(/p\d+\Z/, "")</div><div class='add'>+      else</div><div class='add'>+        Bundler.definition.ruby_version&amp;.single_version_string</div><div class='ctx'>       end</div><div class='add'>+</div><div class='ctx'>       output = []</div><div class='ctx'> </div><div class='ctx'>       if options[:ruby]</div><div class='hunk'>@@ -23,7 +23,9 @@ module Bundler</div><div class='ctx'>           output &lt;&lt; "No ruby version specified"</div><div class='ctx'>         end</div><div class='ctx'>       else</div><div class='del'>-        output &lt;&lt; "Your platform is: #{RUBY_PLATFORM}"</div><div class='add'>+        platforms = Bundler.definition.platforms.map {|p| "* #{p}" }</div><div class='add'>+</div><div class='add'>+        output &lt;&lt; "Your platform is: #{Gem::Platform.local}"</div><div class='ctx'>         output &lt;&lt; "Your app has gems that work on these platforms:\n#{platforms.join("\n")}"</div><div class='ctx'> </div><div class='ctx'>         if ruby_version</div><div class='head'>diff --git a/lib/bundler/cli/plugin.rb b/lib/bundler/cli/plugin.rb<br/>index 5488a9f28d..fe3f4412fa 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/plugin.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/plugin.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/plugin.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/plugin.rb</a></div><div class='hunk'>@@ -1,11 +1,11 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/vendored_thor"</div><div class='add'>+require_relative "../vendored_thor"</div><div class='ctx'> module Bundler</div><div class='ctx'>   class CLI::Plugin &lt; Thor</div><div class='ctx'>     desc "install PLUGINS", "Install the plugin from the source"</div><div class='ctx'>     long_desc &lt;&lt;-D</div><div class='del'>-      Install plugins either from the rubygems source provided (with --source option) or from a git source provided with (--git option). If no sources are provided, it uses Gem.sources</div><div class='add'>+      Install plugins either from the rubygems source provided (with --source option) or from a git source provided with --git (for remote repos) or --local_git (for local repos). If no sources are provided, it uses Gem.sources</div><div class='ctx'>    D</div><div class='ctx'>     method_option "source", :type =&gt; :string, :default =&gt; nil, :banner =&gt;</div><div class='ctx'>       "URL of the RubyGems source to fetch the plugin from"</div><div class='hunk'>@@ -13,6 +13,8 @@ module Bundler</div><div class='ctx'>       "The version of the plugin to fetch"</div><div class='ctx'>     method_option "git", :type =&gt; :string, :default =&gt; nil, :banner =&gt;</div><div class='ctx'>       "URL of the git repo to fetch from"</div><div class='add'>+    method_option "local_git", :type =&gt; :string, :default =&gt; nil, :banner =&gt;</div><div class='add'>+      "Path of the local git repo to fetch from"</div><div class='ctx'>     method_option "branch", :type =&gt; :string, :default =&gt; nil, :banner =&gt;</div><div class='ctx'>       "The git branch to checkout"</div><div class='ctx'>     method_option "ref", :type =&gt; :string, :default =&gt; nil, :banner =&gt;</div><div class='hunk'>@@ -20,5 +22,20 @@ module Bundler</div><div class='ctx'>     def install(*plugins)</div><div class='ctx'>       Bundler::Plugin.install(plugins, options)</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    desc "uninstall PLUGINS", "Uninstall the plugins"</div><div class='add'>+    long_desc &lt;&lt;-D</div><div class='add'>+      Uninstall given list of plugins. To uninstall all the plugins, use -all option.</div><div class='add'>+    D</div><div class='add'>+    method_option "all", :type =&gt; :boolean, :default =&gt; nil, :banner =&gt;</div><div class='add'>+      "Uninstall all the installed plugins. If no plugin is installed, then it does nothing."</div><div class='add'>+    def uninstall(*plugins)</div><div class='add'>+      Bundler::Plugin.uninstall(plugins, options)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    desc "list", "List the installed plugins and available commands"</div><div class='add'>+    def list</div><div class='add'>+      Bundler::Plugin.list</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/pristine.rb b/lib/bundler/cli/pristine.rb<br/>index 4a411a83fc..d6654f8053 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/pristine.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/pristine.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/pristine.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/pristine.rb</a></div><div class='hunk'>@@ -29,11 +29,16 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>           FileUtils.rm_rf spec.full_gem_path</div><div class='ctx'>         when Source::Git</div><div class='add'>+          if source.local?</div><div class='add'>+            Bundler.ui.warn("Cannot pristine #{gem_name}. Gem is locally overridden.")</div><div class='add'>+            next</div><div class='add'>+          end</div><div class='add'>+</div><div class='ctx'>           source.remote!</div><div class='ctx'>           if extension_cache_path = source.extension_cache_path(spec)</div><div class='ctx'>             FileUtils.rm_rf extension_cache_path</div><div class='ctx'>           end</div><div class='del'>-          FileUtils.rm_rf spec.extension_dir if spec.respond_to?(:extension_dir)</div><div class='add'>+          FileUtils.rm_rf spec.extension_dir</div><div class='ctx'>           FileUtils.rm_rf spec.full_gem_path</div><div class='ctx'>         else</div><div class='ctx'>           Bundler.ui.warn("Cannot pristine #{gem_name}. Gem is sourced from local path.")</div><div class='head'>diff --git a/lib/bundler/cli/remove.rb b/lib/bundler/cli/remove.rb<br/>index cd6a2cec28..44a4d891dd 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/remove.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/remove.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/remove.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/remove.rb</a></div><div class='hunk'>@@ -11,8 +11,7 @@ module Bundler</div><div class='ctx'>       raise InvalidOption, "Please specify gems to remove." if @gems.empty?</div><div class='ctx'> </div><div class='ctx'>       Injector.remove(@gems, {})</div><div class='del'>-</div><div class='del'>-      Installer.install(Bundler.root, Bundler.definition) if @options["install"]</div><div class='add'>+      Installer.install(Bundler.root, Bundler.definition)</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/show.rb b/lib/bundler/cli/show.rb<br/>index 61756801b2..2df13db1fa 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/show.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/show.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/show.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/show.rb</a></div><div class='hunk'>@@ -18,13 +18,13 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       if gem_name</div><div class='ctx'>         if gem_name == "bundler"</div><div class='del'>-          path = File.expand_path("../../../..", __FILE__)</div><div class='add'>+          path = File.expand_path("../../..", __dir__)</div><div class='ctx'>         else</div><div class='ctx'>           spec = Bundler::CLI::Common.select_spec(gem_name, :regex_match)</div><div class='ctx'>           return unless spec</div><div class='ctx'>           path = spec.full_gem_path</div><div class='ctx'>           unless File.directory?(path)</div><div class='del'>-            Bundler.ui.warn "The gem #{gem_name} has been deleted. It was installed at:"</div><div class='add'>+            return Bundler.ui.warn "The gem #{gem_name} has been deleted. It was installed at: #{path}"</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'>         return Bundler.ui.info(path)</div><div class='hunk'>@@ -53,7 +53,7 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def fetch_latest_specs</div><div class='ctx'>       definition = Bundler.definition(true)</div><div class='head'>diff --git a/lib/bundler/cli/update.rb b/lib/bundler/cli/update.rb<br/>index b088853768..b49182655b 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/update.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/update.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/update.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/update.rb</a></div><div class='hunk'>@@ -9,27 +9,36 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run</div><div class='del'>-      Bundler.ui.level = "error" if options[:quiet]</div><div class='add'>+      Bundler.ui.level = "warn" if options[:quiet]</div><div class='add'>+</div><div class='add'>+      update_bundler = options[:bundler]</div><div class='add'>+</div><div class='add'>+      Bundler.self_manager.update_bundler_and_restart_with_it_if_needed(update_bundler) if update_bundler</div><div class='ctx'> </div><div class='ctx'>       Plugin.gemfile_install(Bundler.default_gemfile) if Bundler.feature_flag.plugins?</div><div class='ctx'> </div><div class='ctx'>       sources = Array(options[:source])</div><div class='ctx'>       groups  = Array(options[:group]).map(&amp;:to_sym)</div><div class='ctx'> </div><div class='del'>-      full_update = gems.empty? &amp;&amp; sources.empty? &amp;&amp; groups.empty? &amp;&amp; !options[:ruby] &amp;&amp; !options[:bundler]</div><div class='add'>+      full_update = gems.empty? &amp;&amp; sources.empty? &amp;&amp; groups.empty? &amp;&amp; !options[:ruby] &amp;&amp; !update_bundler</div><div class='ctx'> </div><div class='ctx'>       if full_update &amp;&amp; !options[:all]</div><div class='ctx'>         if Bundler.feature_flag.update_requires_all_flag?</div><div class='ctx'>           raise InvalidOption, "To update everything, pass the `--all` flag."</div><div class='ctx'>         end</div><div class='del'>-        SharedHelpers.major_deprecation 2, "Pass --all to `bundle update` to update everything"</div><div class='add'>+        SharedHelpers.major_deprecation 3, "Pass --all to `bundle update` to update everything"</div><div class='ctx'>       elsif !full_update &amp;&amp; options[:all]</div><div class='ctx'>         raise InvalidOption, "Cannot specify --all along with specific options."</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      conservative = options[:conservative]</div><div class='add'>+</div><div class='ctx'>       if full_update</div><div class='del'>-        # We're doing a full update</div><div class='del'>-        Bundler.definition(true)</div><div class='add'>+        if conservative</div><div class='add'>+          Bundler.definition(:conservative =&gt; conservative)</div><div class='add'>+        else</div><div class='add'>+          Bundler.definition(true)</div><div class='add'>+        end</div><div class='ctx'>       else</div><div class='ctx'>         unless Bundler.default_lockfile.exist?</div><div class='ctx'>           raise GemfileLockNotFound, "This Bundle hasn't been installed yet. " \</div><div class='hunk'>@@ -43,8 +52,8 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         Bundler.definition(:gems =&gt; gems, :sources =&gt; sources, :ruby =&gt; options[:ruby],</div><div class='del'>-                           :lock_shared_dependencies =&gt; options[:conservative],</div><div class='del'>-                           :bundler =&gt; options[:bundler])</div><div class='add'>+                           :conservative =&gt; conservative,</div><div class='add'>+                           :bundler =&gt; update_bundler)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       Bundler::CLI::Common.configure_gem_version_promoter(Bundler.definition, options)</div><div class='hunk'>@@ -58,24 +67,44 @@ module Bundler</div><div class='ctx'>       Bundler.settings.set_command_option_if_given :jobs, opts["jobs"]</div><div class='ctx'> </div><div class='ctx'>       Bundler.definition.validate_runtime!</div><div class='add'>+</div><div class='add'>+      if locked_gems = Bundler.definition.locked_gems</div><div class='add'>+        previous_locked_info = locked_gems.specs.reduce({}) do |h, s|</div><div class='add'>+          h[s.name] = { :spec =&gt; s, :version =&gt; s.version, :source =&gt; s.source.identifier }</div><div class='add'>+          h</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       installer = Installer.install Bundler.root, Bundler.definition, opts</div><div class='ctx'>       Bundler.load.cache if Bundler.app_cache.exist?</div><div class='ctx'> </div><div class='ctx'>       if CLI::Common.clean_after_install?</div><div class='del'>-        require "bundler/cli/clean"</div><div class='add'>+        require_relative "clean"</div><div class='ctx'>         Bundler::CLI::Clean.new(options).run</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      if locked_gems = Bundler.definition.locked_gems</div><div class='add'>+      if locked_gems</div><div class='ctx'>         gems.each do |name|</div><div class='del'>-          locked_version = locked_gems.specs.find {|s| s.name == name }</div><div class='del'>-          locked_version &amp;&amp;= locked_version.version</div><div class='del'>-          next unless locked_version</div><div class='del'>-          new_version = Bundler.definition.specs[name].first</div><div class='del'>-          new_version &amp;&amp;= new_version.version</div><div class='del'>-          if !new_version</div><div class='del'>-            Bundler.ui.warn "Bundler attempted to update #{name} but it was removed from the bundle"</div><div class='del'>-          elsif new_version &lt; locked_version</div><div class='add'>+          locked_info = previous_locked_info[name]</div><div class='add'>+          next unless locked_info</div><div class='add'>+</div><div class='add'>+          locked_spec = locked_info[:spec]</div><div class='add'>+          new_spec = Bundler.definition.specs[name].first</div><div class='add'>+          unless new_spec</div><div class='add'>+            unless locked_spec.match_platform(Bundler.local_platform)</div><div class='add'>+              Bundler.ui.warn "Bundler attempted to update #{name} but it was not considered because it is for a different platform from the current one"</div><div class='add'>+            end</div><div class='add'>+</div><div class='add'>+            next</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          locked_source = locked_info[:source]</div><div class='add'>+          new_source = new_spec.source.identifier</div><div class='add'>+          next if locked_source != new_source</div><div class='add'>+</div><div class='add'>+          new_version = new_spec.version</div><div class='add'>+          locked_version = locked_info[:version]</div><div class='add'>+          if new_version &lt; locked_version</div><div class='ctx'>             Bundler.ui.warn "Note: #{name} version regressed from #{locked_version} to #{new_version}"</div><div class='ctx'>           elsif new_version == locked_version</div><div class='ctx'>             Bundler.ui.warn "Bundler attempted to update #{name} but its version stayed the same"</div><div class='hunk'>@@ -84,8 +113,10 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       Bundler.ui.confirm "Bundle updated!"</div><div class='del'>-      Bundler::CLI::Common.output_without_groups_message</div><div class='add'>+      Bundler::CLI::Common.output_without_groups_message(:update)</div><div class='ctx'>       Bundler::CLI::Common.output_post_install_messages installer.post_install_messages</div><div class='add'>+</div><div class='add'>+      Bundler::CLI::Common.output_fund_metadata_summary</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/cli/viz.rb b/lib/bundler/cli/viz.rb<br/>index 644f9b25cf..5c09e00995 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/cli/viz.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/cli/viz.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/cli/viz.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/cli/viz.rb</a></div><div class='hunk'>@@ -23,7 +23,7 @@ module Bundler</div><div class='ctx'>       Bundler.ui.warn "Make sure you have the graphviz ruby gem. You can install it with:"</div><div class='ctx'>       Bundler.ui.warn "`gem install ruby-graphviz`"</div><div class='ctx'>     rescue StandardError =&gt; e</div><div class='del'>-      raise unless e.message =~ /GraphViz not installed or dot not in PATH/</div><div class='add'>+      raise unless e.message.to_s.include?("GraphViz not installed or dot not in PATH")</div><div class='ctx'>       Bundler.ui.error e.message</div><div class='ctx'>       Bundler.ui.warn "Please install GraphViz. On a Mac with Homebrew, you can run `brew install graphviz`."</div><div class='ctx'>     end</div><div class='head'>diff --git a/lib/bundler/compact_index_client.rb b/lib/bundler/compact_index_client.rb<br/>index 6c241ca07a..127a50e810 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/compact_index_client.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/compact_index_client.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/compact_index_client.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/compact_index_client.rb</a></div><div class='hunk'>@@ -5,7 +5,7 @@ require "set"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class CompactIndexClient</div><div class='del'>-    DEBUG_MUTEX = Mutex.new</div><div class='add'>+    DEBUG_MUTEX = Thread::Mutex.new</div><div class='ctx'>     def self.debug</div><div class='ctx'>       return unless ENV["DEBUG_COMPACT_INDEX"]</div><div class='ctx'>       DEBUG_MUTEX.synchronize { warn("[#{self}] #{yield}") }</div><div class='hunk'>@@ -13,16 +13,11 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     class Error &lt; StandardError; end</div><div class='ctx'> </div><div class='del'>-    require "bundler/compact_index_client/cache"</div><div class='del'>-    require "bundler/compact_index_client/updater"</div><div class='add'>+    require_relative "compact_index_client/cache"</div><div class='add'>+    require_relative "compact_index_client/updater"</div><div class='ctx'> </div><div class='ctx'>     attr_reader :directory</div><div class='ctx'> </div><div class='del'>-    # @return [Lambda] A lambda that takes an array of inputs and a block, and</div><div class='del'>-    #         maps the inputs with the block in parallel.</div><div class='del'>-    #</div><div class='del'>-    attr_accessor :in_parallel</div><div class='del'>-</div><div class='ctx'>     def initialize(directory, fetcher)</div><div class='ctx'>       @directory = Pathname.new(directory)</div><div class='ctx'>       @updater = Updater.new(fetcher)</div><div class='hunk'>@@ -30,8 +25,29 @@ module Bundler</div><div class='ctx'>       @endpoints = Set.new</div><div class='ctx'>       @info_checksums_by_name = {}</div><div class='ctx'>       @parsed_checksums = false</div><div class='del'>-      @mutex = Mutex.new</div><div class='del'>-      @in_parallel = lambda do |inputs, &amp;blk|</div><div class='add'>+      @mutex = Thread::Mutex.new</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def execution_mode=(block)</div><div class='add'>+      Bundler::CompactIndexClient.debug { "execution_mode=" }</div><div class='add'>+      @endpoints = Set.new</div><div class='add'>+</div><div class='add'>+      @execution_mode = block</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # @return [Lambda] A lambda that takes an array of inputs and a block, and</div><div class='add'>+    #         maps the inputs with the block in parallel.</div><div class='add'>+    #</div><div class='add'>+    def execution_mode</div><div class='add'>+      @execution_mode || sequentially</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def sequential_execution_mode!</div><div class='add'>+      self.execution_mode = sequentially</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def sequentially</div><div class='add'>+      @sequentially ||= lambda do |inputs, &amp;blk|</div><div class='ctx'>         inputs.map(&amp;blk)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -51,18 +67,12 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def dependencies(names)</div><div class='ctx'>       Bundler::CompactIndexClient.debug { "dependencies(#{names})" }</div><div class='del'>-      in_parallel.call(names) do |name|</div><div class='add'>+      execution_mode.call(names) do |name|</div><div class='ctx'>         update_info(name)</div><div class='ctx'>         @cache.dependencies(name).map {|d| d.unshift(name) }</div><div class='ctx'>       end.flatten(1)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def spec(name, version, platform = nil)</div><div class='del'>-      Bundler::CompactIndexClient.debug { "spec(name = #{name}, version = #{version}, platform = #{platform})" }</div><div class='del'>-      update_info(name)</div><div class='del'>-      @cache.specific_dependency(name, version, platform)</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def update_and_parse_checksums!</div><div class='ctx'>       Bundler::CompactIndexClient.debug { "update_and_parse_checksums!" }</div><div class='ctx'>       return @info_checksums_by_name if @parsed_checksums</div><div class='hunk'>@@ -71,7 +81,7 @@ module Bundler</div><div class='ctx'>       @parsed_checksums = true</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def update(local_path, remote_path)</div><div class='ctx'>       Bundler::CompactIndexClient.debug { "update(#{local_path}, #{remote_path})" }</div><div class='head'>diff --git a/lib/bundler/compact_index_client/cache.rb b/lib/bundler/compact_index_client/cache.rb<br/>index f6105d3bb3..0b43581c11 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/compact_index_client/cache.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/compact_index_client/cache.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/compact_index_client/cache.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/compact_index_client/cache.rb</a></div><div class='hunk'>@@ -1,5 +1,7 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='add'>+require_relative "gem_parser"</div><div class='add'>+</div><div class='ctx'> module Bundler</div><div class='ctx'>   class CompactIndexClient</div><div class='ctx'>     class Cache</div><div class='hunk'>@@ -66,7 +68,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       def info_path(name)</div><div class='ctx'>         name = name.to_s</div><div class='del'>-        if name =~ /[^a-z0-9_-]/</div><div class='add'>+        if /[^a-z0-9_-]/.match?(name)</div><div class='ctx'>           name += "-#{SharedHelpers.digest(:MD5).hexdigest(name).downcase}"</div><div class='ctx'>           info_roots.last.join(name)</div><div class='ctx'>         else</div><div class='hunk'>@@ -74,16 +76,7 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def specific_dependency(name, version, platform)</div><div class='del'>-        pattern = [version, platform].compact.join("-")</div><div class='del'>-        return nil if pattern.empty?</div><div class='del'>-</div><div class='del'>-        gem_lines = info_path(name).read</div><div class='del'>-        gem_line = gem_lines[/^#{Regexp.escape(pattern)}\b.*/, 0]</div><div class='del'>-        gem_line ? parse_gem(gem_line) : nil</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-    private</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       def lines(path)</div><div class='ctx'>         return [] unless path.file?</div><div class='hunk'>@@ -92,19 +85,9 @@ module Bundler</div><div class='ctx'>         header ? lines[header + 1..-1] : lines</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def parse_gem(string)</div><div class='del'>-        version_and_platform, rest = string.split(" ", 2)</div><div class='del'>-        version, platform = version_and_platform.split("-", 2)</div><div class='del'>-        dependencies, requirements = rest.split("|", 2).map {|s| s.split(",") } if rest</div><div class='del'>-        dependencies = dependencies ? dependencies.map {|d| parse_dependency(d) } : []</div><div class='del'>-        requirements = requirements ? requirements.map {|r| parse_dependency(r) } : []</div><div class='del'>-        [version, platform, dependencies, requirements]</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def parse_dependency(string)</div><div class='del'>-        dependency = string.split(":")</div><div class='del'>-        dependency[-1] = dependency[-1].split("&amp;") if dependency.size &gt; 1</div><div class='del'>-        dependency</div><div class='add'>+      def parse_gem(line)</div><div class='add'>+        @dependency_parser ||= GemParser.new</div><div class='add'>+        @dependency_parser.parse(line)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def info_roots</div><div class='head'>diff --git a/lib/bundler/compact_index_client/gem_parser.rb b/lib/bundler/compact_index_client/gem_parser.rb<br/>new file mode 100644<br/>index 0000000000..e7bf4c6001<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/compact_index_client/gem_parser.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/compact_index_client/gem_parser.rb</a></div><div class='hunk'>@@ -0,0 +1,28 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  class CompactIndexClient</div><div class='add'>+    if defined?(Gem::Resolver::APISet::GemParser)</div><div class='add'>+      GemParser = Gem::Resolver::APISet::GemParser</div><div class='add'>+    else</div><div class='add'>+      class GemParser</div><div class='add'>+        def parse(line)</div><div class='add'>+          version_and_platform, rest = line.split(" ", 2)</div><div class='add'>+          version, platform = version_and_platform.split("-", 2)</div><div class='add'>+          dependencies, requirements = rest.split("|", 2).map {|s| s.split(",") } if rest</div><div class='add'>+          dependencies = dependencies ? dependencies.map {|d| parse_dependency(d) } : []</div><div class='add'>+          requirements = requirements ? requirements.map {|d| parse_dependency(d) } : []</div><div class='add'>+          [version, platform, dependencies, requirements]</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        private</div><div class='add'>+</div><div class='add'>+        def parse_dependency(string)</div><div class='add'>+          dependency = string.split(":")</div><div class='add'>+          dependency[-1] = dependency[-1].split("&amp;") if dependency.size &gt; 1</div><div class='add'>+          dependency</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/compact_index_client/updater.rb b/lib/bundler/compact_index_client/updater.rb<br/>index 4d6eb80044..0f7bf9bb50 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/compact_index_client/updater.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/compact_index_client/updater.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/compact_index_client/updater.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/compact_index_client/updater.rb</a></div><div class='hunk'>@@ -1,8 +1,6 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/vendored_fileutils"</div><div class='del'>-require "stringio"</div><div class='del'>-require "zlib"</div><div class='add'>+require_relative "../vendored_fileutils"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class CompactIndexClient</div><div class='hunk'>@@ -22,71 +20,64 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       def initialize(fetcher)</div><div class='ctx'>         @fetcher = fetcher</div><div class='del'>-        require "tmpdir"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def update(local_path, remote_path, retrying = nil)</div><div class='ctx'>         headers = {}</div><div class='ctx'> </div><div class='del'>-        Dir.mktmpdir("bundler-compact-index-") do |local_temp_dir|</div><div class='del'>-          local_temp_path = Pathname.new(local_temp_dir).join(local_path.basename)</div><div class='add'>+        local_temp_path = local_path.sub(/$/, ".#{$$}")</div><div class='add'>+        local_temp_path = local_temp_path.sub(/$/, ".retrying") if retrying</div><div class='add'>+        local_temp_path = local_temp_path.sub(/$/, ".tmp")</div><div class='ctx'> </div><div class='del'>-          # first try to fetch any new bytes on the existing file</div><div class='del'>-          if retrying.nil? &amp;&amp; local_path.file?</div><div class='del'>-            SharedHelpers.filesystem_access(local_temp_path) do</div><div class='del'>-              FileUtils.cp local_path, local_temp_path</div><div class='add'>+        # first try to fetch any new bytes on the existing file</div><div class='add'>+        if retrying.nil? &amp;&amp; local_path.file?</div><div class='add'>+          copy_file local_path, local_temp_path</div><div class='add'>+</div><div class='add'>+          headers["If-None-Match"] = etag_for(local_temp_path)</div><div class='add'>+          headers["Range"] =</div><div class='add'>+            if local_temp_path.size.nonzero?</div><div class='add'>+              # Subtract a byte to ensure the range won't be empty.</div><div class='add'>+              # Avoids 416 (Range Not Satisfiable) responses.</div><div class='add'>+              "bytes=#{local_temp_path.size - 1}-"</div><div class='add'>+            else</div><div class='add'>+              "bytes=#{local_temp_path.size}-"</div><div class='ctx'>             end</div><div class='del'>-            headers["If-None-Match"] = etag_for(local_temp_path)</div><div class='del'>-            headers["Range"] =</div><div class='del'>-              if local_temp_path.size.nonzero?</div><div class='del'>-                # Subtract a byte to ensure the range won't be empty.</div><div class='del'>-                # Avoids 416 (Range Not Satisfiable) responses.</div><div class='del'>-                "bytes=#{local_temp_path.size - 1}-"</div><div class='del'>-              else</div><div class='del'>-                "bytes=#{local_temp_path.size}-"</div><div class='del'>-              end</div><div class='del'>-          else</div><div class='del'>-            # Fastly ignores Range when Accept-Encoding: gzip is set</div><div class='del'>-            headers["Accept-Encoding"] = "gzip"</div><div class='del'>-          end</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-          response = @fetcher.call(remote_path, headers)</div><div class='del'>-          return nil if response.is_a?(Net::HTTPNotModified)</div><div class='add'>+        response = @fetcher.call(remote_path, headers)</div><div class='add'>+        return nil if response.is_a?(Net::HTTPNotModified)</div><div class='ctx'> </div><div class='del'>-          content = response.body</div><div class='del'>-          if response["Content-Encoding"] == "gzip"</div><div class='del'>-            content = Zlib::GzipReader.new(StringIO.new(content)).read</div><div class='del'>-          end</div><div class='add'>+        content = response.body</div><div class='ctx'> </div><div class='del'>-          SharedHelpers.filesystem_access(local_temp_path) do</div><div class='del'>-            if response.is_a?(Net::HTTPPartialContent) &amp;&amp; local_temp_path.size.nonzero?</div><div class='del'>-              local_temp_path.open("a") {|f| f &lt;&lt; slice_body(content, 1..-1) }</div><div class='del'>-            else</div><div class='del'>-              local_temp_path.open("w") {|f| f &lt;&lt; content }</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='add'>+        etag = (response["ETag"] || "").gsub(%r{\AW/}, "")</div><div class='add'>+        correct_response = SharedHelpers.filesystem_access(local_temp_path) do</div><div class='add'>+          if response.is_a?(Net::HTTPPartialContent) &amp;&amp; local_temp_path.size.nonzero?</div><div class='add'>+            local_temp_path.open("a") {|f| f &lt;&lt; slice_body(content, 1..-1) }</div><div class='ctx'> </div><div class='del'>-          response_etag = (response["ETag"] || "").gsub(%r{\AW/}, "")</div><div class='del'>-          if etag_for(local_temp_path) == response_etag</div><div class='del'>-            SharedHelpers.filesystem_access(local_path) do</div><div class='del'>-              FileUtils.mv(local_temp_path, local_path)</div><div class='del'>-            end</div><div class='del'>-            return nil</div><div class='add'>+            etag_for(local_temp_path) == etag</div><div class='add'>+          else</div><div class='add'>+            local_temp_path.open("wb") {|f| f &lt;&lt; content }</div><div class='add'>+</div><div class='add'>+            etag.length.zero? || etag_for(local_temp_path) == etag</div><div class='ctx'>           end</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-          if retrying</div><div class='del'>-            raise MisMatchedChecksumError.new(remote_path, response_etag, etag_for(local_temp_path))</div><div class='add'>+        if correct_response</div><div class='add'>+          SharedHelpers.filesystem_access(local_path) do</div><div class='add'>+            FileUtils.mv(local_temp_path, local_path)</div><div class='ctx'>           end</div><div class='add'>+          return nil</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-          update(local_path, remote_path, :retrying)</div><div class='add'>+        if retrying</div><div class='add'>+          raise MisMatchedChecksumError.new(remote_path, etag, etag_for(local_temp_path))</div><div class='ctx'>         end</div><div class='del'>-      rescue Errno::EACCES</div><div class='del'>-        raise Bundler::PermissionError,</div><div class='del'>-          "Bundler does not have write access to create a temp directory " \</div><div class='del'>-          "within #{Dir.tmpdir}. Bundler must have write access to your " \</div><div class='del'>-          "systems temp directory to function properly. "</div><div class='add'>+</div><div class='add'>+        update(local_path, remote_path, :retrying)</div><div class='ctx'>       rescue Zlib::GzipFile::Error</div><div class='ctx'>         raise Bundler::HTTPError</div><div class='add'>+      ensure</div><div class='add'>+        FileUtils.remove_file(local_temp_path) if File.exist?(local_temp_path)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def etag_for(path)</div><div class='hunk'>@@ -95,20 +86,30 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def slice_body(body, range)</div><div class='del'>-        if body.respond_to?(:byteslice)</div><div class='del'>-          body.byteslice(range)</div><div class='del'>-        else # pre-1.9.3</div><div class='del'>-          body.unpack("@#{range.first}a#{range.end + 1}").first</div><div class='del'>-        end</div><div class='add'>+        body.byteslice(range)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def checksum_for_file(path)</div><div class='ctx'>         return nil unless path.file?</div><div class='del'>-        # This must use IO.read instead of Digest.file().hexdigest</div><div class='add'>+        # This must use File.read instead of Digest.file().hexdigest</div><div class='ctx'>         # because we need to preserve \n line endings on windows when calculating</div><div class='ctx'>         # the checksum</div><div class='ctx'>         SharedHelpers.filesystem_access(path, :read) do</div><div class='del'>-          SharedHelpers.digest(:MD5).hexdigest(IO.read(path))</div><div class='add'>+          SharedHelpers.digest(:MD5).hexdigest(File.read(path))</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def copy_file(source, dest)</div><div class='add'>+        SharedHelpers.filesystem_access(source, :read) do</div><div class='add'>+          File.open(source, "r") do |s|</div><div class='add'>+            SharedHelpers.filesystem_access(dest, :write) do</div><div class='add'>+              File.open(dest, "wb", s.stat.mode) do |f|</div><div class='add'>+                IO.copy_stream(s, f)</div><div class='add'>+              end</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='head'>diff --git a/lib/bundler/compatibility_guard.rb b/lib/bundler/compatibility_guard.rb<br/>deleted file mode 100644<br/>index 750a1db04f..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/compatibility_guard.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/compatibility_guard.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,14 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-</div><div class='del'>-require "rubygems"</div><div class='del'>-require "bundler/version"</div><div class='del'>-</div><div class='del'>-if Bundler::VERSION.split(".").first.to_i &gt;= 2</div><div class='del'>-  if Gem::Version.new(Object::RUBY_VERSION.dup) &lt; Gem::Version.new("2.3")</div><div class='del'>-    abort "Bundler 2 requires Ruby 2.3 or later. Either install bundler 1 or update to a supported Ruby version."</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  if Gem::Version.new(Gem::VERSION.dup) &lt; Gem::Version.new("2.5")</div><div class='del'>-    abort "Bundler 2 requires RubyGems 2.5 or later. Either install bundler 1 or update to a supported RubyGems version."</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/constants.rb b/lib/bundler/constants.rb<br/>index 2e4ebb37ee..8dd8a53815 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/constants.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/constants.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/constants.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/constants.rb</a></div><div class='hunk'>@@ -2,6 +2,6 @@</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   WINDOWS = RbConfig::CONFIG["host_os"] =~ /(msdos|mswin|djgpp|mingw)/</div><div class='del'>-  FREEBSD = RbConfig::CONFIG["host_os"] =~ /bsd/</div><div class='add'>+  FREEBSD = RbConfig::CONFIG["host_os"].to_s.include?("bsd")</div><div class='ctx'>   NULL    = WINDOWS ? "NUL" : "/dev/null"</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/current_ruby.rb b/lib/bundler/current_ruby.rb<br/>index d5efaad6c5..f009b07ad7 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/current_ruby.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/current_ruby.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/current_ruby.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/current_ruby.rb</a></div><div class='hunk'>@@ -19,6 +19,11 @@ module Bundler</div><div class='ctx'>       2.4</div><div class='ctx'>       2.5</div><div class='ctx'>       2.6</div><div class='add'>+      2.7</div><div class='add'>+      3.0</div><div class='add'>+      3.1</div><div class='add'>+      3.2</div><div class='add'>+      3.3</div><div class='ctx'>     ].freeze</div><div class='ctx'> </div><div class='ctx'>     KNOWN_MAJOR_VERSIONS = KNOWN_MINOR_VERSIONS.map {|v| v.split(".", 2).first }.uniq.freeze</div><div class='hunk'>@@ -33,48 +38,58 @@ module Bundler</div><div class='ctx'>       rbx</div><div class='ctx'>       ruby</div><div class='ctx'>       truffleruby</div><div class='add'>+      windows</div><div class='ctx'>       x64_mingw</div><div class='ctx'>     ].freeze</div><div class='ctx'> </div><div class='ctx'>     def ruby?</div><div class='del'>-      !mswin? &amp;&amp; (!defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby" ||</div><div class='del'>-          RUBY_ENGINE == "rbx" || RUBY_ENGINE == "maglev" || RUBY_ENGINE == "truffleruby")</div><div class='add'>+      return true if Bundler::GemHelpers.generic_local_platform == Gem::Platform::RUBY</div><div class='add'>+</div><div class='add'>+      !windows? &amp;&amp; (RUBY_ENGINE == "ruby" || RUBY_ENGINE == "rbx" || RUBY_ENGINE == "maglev" || RUBY_ENGINE == "truffleruby")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def mri?</div><div class='del'>-      !mswin? &amp;&amp; (!defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby")</div><div class='add'>+      !windows? &amp;&amp; RUBY_ENGINE == "ruby"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def rbx?</div><div class='del'>-      ruby? &amp;&amp; defined?(RUBY_ENGINE) &amp;&amp; RUBY_ENGINE == "rbx"</div><div class='add'>+      ruby? &amp;&amp; RUBY_ENGINE == "rbx"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def jruby?</div><div class='del'>-      defined?(RUBY_ENGINE) &amp;&amp; RUBY_ENGINE == "jruby"</div><div class='add'>+      RUBY_ENGINE == "jruby"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def maglev?</div><div class='del'>-      defined?(RUBY_ENGINE) &amp;&amp; RUBY_ENGINE == "maglev"</div><div class='add'>+      RUBY_ENGINE == "maglev"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def truffleruby?</div><div class='del'>-      defined?(RUBY_ENGINE) &amp;&amp; RUBY_ENGINE == "truffleruby"</div><div class='add'>+      RUBY_ENGINE == "truffleruby"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def windows?</div><div class='add'>+      Gem.win_platform?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def mswin?</div><div class='del'>-      Bundler::WINDOWS</div><div class='add'>+      # For backwards compatibility</div><div class='add'>+      windows?</div><div class='add'>+</div><div class='add'>+      # TODO: This should correctly be:</div><div class='add'>+      # windows? &amp;&amp; Bundler.local_platform != Gem::Platform::RUBY &amp;&amp; Bundler.local_platform.os == "mswin32" &amp;&amp; Bundler.local_platform.cpu == "x86"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def mswin64?</div><div class='del'>-      Bundler::WINDOWS &amp;&amp; Bundler.local_platform != Gem::Platform::RUBY &amp;&amp; Bundler.local_platform.os == "mswin64" &amp;&amp; Bundler.local_platform.cpu == "x64"</div><div class='add'>+      windows? &amp;&amp; Bundler.local_platform != Gem::Platform::RUBY &amp;&amp; Bundler.local_platform.os == "mswin64" &amp;&amp; Bundler.local_platform.cpu == "x64"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def mingw?</div><div class='del'>-      Bundler::WINDOWS &amp;&amp; Bundler.local_platform != Gem::Platform::RUBY &amp;&amp; Bundler.local_platform.os == "mingw32" &amp;&amp; Bundler.local_platform.cpu != "x64"</div><div class='add'>+      windows? &amp;&amp; Bundler.local_platform != Gem::Platform::RUBY &amp;&amp; Bundler.local_platform.os == "mingw32" &amp;&amp; Bundler.local_platform.cpu != "x64"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def x64_mingw?</div><div class='del'>-      Bundler::WINDOWS &amp;&amp; Bundler.local_platform != Gem::Platform::RUBY &amp;&amp; Bundler.local_platform.os == "mingw32" &amp;&amp; Bundler.local_platform.cpu == "x64"</div><div class='add'>+      Gem.win_platform? &amp;&amp; Bundler.local_platform != Gem::Platform::RUBY &amp;&amp; Bundler.local_platform.os.start_with?("mingw") &amp;&amp; Bundler.local_platform.cpu == "x64"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     (KNOWN_MINOR_VERSIONS + KNOWN_MAJOR_VERSIONS).each do |version|</div><div class='head'>diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb<br/>index 8e56d4a9bc..564530a98c 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/definition.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/definition.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/definition.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/definition.rb</a></div><div class='hunk'>@@ -1,18 +1,21 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/lockfile_parser"</div><div class='del'>-require "set"</div><div class='add'>+require_relative "lockfile_parser"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class Definition</div><div class='ctx'>     include GemHelpers</div><div class='ctx'> </div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      # Do not create or modify a lockfile (Makes #lock a noop)</div><div class='add'>+      attr_accessor :no_lock</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     attr_reader(</div><div class='ctx'>       :dependencies,</div><div class='ctx'>       :locked_deps,</div><div class='ctx'>       :locked_gems,</div><div class='ctx'>       :platforms,</div><div class='del'>-      :requires,</div><div class='ctx'>       :ruby_version,</div><div class='ctx'>       :lockfile,</div><div class='ctx'>       :gemfiles</div><div class='hunk'>@@ -57,10 +60,8 @@ module Bundler</div><div class='ctx'>         @unlocking_bundler = false</div><div class='ctx'>         @unlocking = unlock</div><div class='ctx'>       else</div><div class='del'>-        unlock = unlock.dup</div><div class='ctx'>         @unlocking_bundler = unlock.delete(:bundler)</div><div class='del'>-        unlock.delete_if {|_k, v| Array(v).empty? }</div><div class='del'>-        @unlocking = !unlock.empty?</div><div class='add'>+        @unlocking = unlock.any? {|_k, v| !Array(v).empty? }</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       @dependencies    = dependencies</div><div class='hunk'>@@ -68,15 +69,20 @@ module Bundler</div><div class='ctx'>       @unlock          = unlock</div><div class='ctx'>       @optional_groups = optional_groups</div><div class='ctx'>       @remote          = false</div><div class='add'>+      @prefer_local    = false</div><div class='ctx'>       @specs           = nil</div><div class='ctx'>       @ruby_version    = ruby_version</div><div class='ctx'>       @gemfiles        = gemfiles</div><div class='ctx'> </div><div class='ctx'>       @lockfile               = lockfile</div><div class='ctx'>       @lockfile_contents      = String.new</div><div class='add'>+</div><div class='ctx'>       @locked_bundler_version = nil</div><div class='del'>-      @locked_ruby_version    = nil</div><div class='del'>-      @locked_specs_incomplete_for_platform = false</div><div class='add'>+      @resolved_bundler_version = nil</div><div class='add'>+</div><div class='add'>+      @locked_ruby_version = nil</div><div class='add'>+      @new_platform = nil</div><div class='add'>+      @removed_platform = nil</div><div class='ctx'> </div><div class='ctx'>       if lockfile &amp;&amp; File.exist?(lockfile)</div><div class='ctx'>         @lockfile_contents = Bundler.read_file(lockfile)</div><div class='hunk'>@@ -85,10 +91,11 @@ module Bundler</div><div class='ctx'>         @platforms = @locked_platforms.dup</div><div class='ctx'>         @locked_bundler_version = @locked_gems.bundler_version</div><div class='ctx'>         @locked_ruby_version = @locked_gems.ruby_version</div><div class='add'>+        @originally_locked_specs = SpecSet.new(@locked_gems.specs)</div><div class='ctx'> </div><div class='ctx'>         if unlock != true</div><div class='ctx'>           @locked_deps    = @locked_gems.dependencies</div><div class='del'>-          @locked_specs   = SpecSet.new(@locked_gems.specs)</div><div class='add'>+          @locked_specs   = @originally_locked_specs</div><div class='ctx'>           @locked_sources = @locked_gems.sources</div><div class='ctx'>         else</div><div class='ctx'>           @unlock         = {}</div><div class='hunk'>@@ -102,11 +109,24 @@ module Bundler</div><div class='ctx'>         @locked_gems    = nil</div><div class='ctx'>         @locked_deps    = {}</div><div class='ctx'>         @locked_specs   = SpecSet.new([])</div><div class='add'>+        @originally_locked_specs = @locked_specs</div><div class='ctx'>         @locked_sources = []</div><div class='ctx'>         @locked_platforms = []</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      @unlock[:gems] ||= []</div><div class='add'>+      locked_gem_sources = @locked_sources.select {|s| s.is_a?(Source::Rubygems) }</div><div class='add'>+      @multisource_allowed = locked_gem_sources.size == 1 &amp;&amp; locked_gem_sources.first.multiple_remotes? &amp;&amp; Bundler.frozen_bundle?</div><div class='add'>+</div><div class='add'>+      if @multisource_allowed</div><div class='add'>+        unless sources.aggregate_global_source?</div><div class='add'>+          msg = "Your lockfile contains a single rubygems source section with multiple remotes, which is insecure. Make sure you run `bundle install` in non frozen mode and commit the result to make your lockfile secure."</div><div class='add'>+</div><div class='add'>+          Bundler::SharedHelpers.major_deprecation 2, msg</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        @sources.merged_gem_lockfile_sections!(locked_gem_sources.first)</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       @unlock[:sources] ||= []</div><div class='ctx'>       @unlock[:ruby] ||= if @ruby_version &amp;&amp; locked_ruby_version_object</div><div class='ctx'>         @ruby_version.diff(locked_ruby_version_object)</div><div class='hunk'>@@ -119,43 +139,55 @@ module Bundler</div><div class='ctx'>       @path_changes = converge_paths</div><div class='ctx'>       @source_changes = converge_sources</div><div class='ctx'> </div><div class='del'>-      unless @unlock[:lock_shared_dependencies]</div><div class='del'>-        eager_unlock = expand_dependencies(@unlock[:gems], true)</div><div class='del'>-        @unlock[:gems] = @locked_specs.for(eager_unlock, [], false, false, false).map(&amp;:name)</div><div class='add'>+      if @unlock[:conservative]</div><div class='add'>+        @unlock[:gems] ||= @dependencies.map(&amp;:name)</div><div class='add'>+      else</div><div class='add'>+        eager_unlock = (@unlock[:gems] || []).map {|name| Dependency.new(name, "&gt;= 0") }</div><div class='add'>+        @unlock[:gems] = @locked_specs.for(eager_unlock, false, platforms).map(&amp;:name).uniq</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       @dependency_changes = converge_dependencies</div><div class='ctx'>       @local_changes = converge_locals</div><div class='ctx'> </div><div class='del'>-      @requires = compute_requires</div><div class='add'>+      @missing_lockfile_dep = check_missing_lockfile_dep</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def gem_version_promoter</div><div class='del'>-      @gem_version_promoter ||= begin</div><div class='del'>-        locked_specs =</div><div class='del'>-          if unlocking? &amp;&amp; @locked_specs.empty? &amp;&amp; !@lockfile_contents.empty?</div><div class='del'>-            # Definition uses an empty set of locked_specs to indicate all gems</div><div class='del'>-            # are unlocked, but GemVersionPromoter needs the locked_specs</div><div class='del'>-            # for conservative comparison.</div><div class='del'>-            Bundler::SpecSet.new(@locked_gems.specs)</div><div class='del'>-          else</div><div class='del'>-            @locked_specs</div><div class='del'>-          end</div><div class='del'>-        GemVersionPromoter.new(locked_specs, @unlock[:gems])</div><div class='del'>-      end</div><div class='add'>+      @gem_version_promoter ||= GemVersionPromoter.new</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def resolve_only_locally!</div><div class='add'>+      @remote = false</div><div class='add'>+      sources.local_only!</div><div class='add'>+      resolve</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def resolve_with_cache!</div><div class='del'>-      raise "Specs already loaded" if @specs</div><div class='ctx'>       sources.cached!</div><div class='del'>-      specs</div><div class='add'>+      resolve</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def resolve_remotely!</div><div class='del'>-      raise "Specs already loaded" if @specs</div><div class='ctx'>       @remote = true</div><div class='ctx'>       sources.remote!</div><div class='del'>-      specs</div><div class='add'>+      resolve</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def resolution_mode=(options)</div><div class='add'>+      if options["local"]</div><div class='add'>+        @remote = false</div><div class='add'>+      else</div><div class='add'>+        @remote = true</div><div class='add'>+        @prefer_local = options["prefer-local"]</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def setup_sources_for_resolve</div><div class='add'>+      if @remote == false</div><div class='add'>+        sources.cached!</div><div class='add'>+      else</div><div class='add'>+        sources.remote!</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # For given dependency list returns a SpecSet with Gemspec of all the required</div><div class='hunk'>@@ -165,25 +197,7 @@ module Bundler</div><div class='ctx'>     #</div><div class='ctx'>     # @return [Bundler::SpecSet]</div><div class='ctx'>     def specs</div><div class='del'>-      @specs ||= begin</div><div class='del'>-        begin</div><div class='del'>-          specs = resolve.materialize(Bundler.settings[:cache_all_platforms] ? dependencies : requested_dependencies)</div><div class='del'>-        rescue GemNotFound =&gt; e # Handle yanked gem</div><div class='del'>-          gem_name, gem_version = extract_gem_info(e)</div><div class='del'>-          locked_gem = @locked_specs[gem_name].last</div><div class='del'>-          raise if locked_gem.nil? || locked_gem.version.to_s != gem_version || !@remote</div><div class='del'>-          raise GemNotFound, "Your bundle is locked to #{locked_gem}, but that version could not " \</div><div class='del'>-                             "be found in any of the sources listed in your Gemfile. If you haven't changed sources, " \</div><div class='del'>-                             "that means the author of #{locked_gem} has removed it. You'll need to update your bundle " \</div><div class='del'>-                             "to a version other than #{locked_gem} that hasn't been removed in order to install."</div><div class='del'>-        end</div><div class='del'>-        unless specs["bundler"].any?</div><div class='del'>-          bundler = sources.metadata_source.specs.search(Gem::Dependency.new("bundler", VERSION)).last</div><div class='del'>-          specs["bundler"] = bundler</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        specs</div><div class='del'>-      end</div><div class='add'>+      @specs ||= materialize(requested_dependencies)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def new_specs</div><div class='hunk'>@@ -194,14 +208,8 @@ module Bundler</div><div class='ctx'>       @locked_specs - specs</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def new_platform?</div><div class='del'>-      @new_platform</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def missing_specs</div><div class='del'>-      missing = []</div><div class='del'>-      resolve.materialize(requested_dependencies, missing)</div><div class='del'>-      missing</div><div class='add'>+      resolve.materialize(requested_dependencies).missing_specs</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def missing_specs?</div><div class='hunk'>@@ -210,8 +218,9 @@ module Bundler</div><div class='ctx'>       Bundler.ui.debug "The definition is missing #{missing.map(&amp;:full_name)}"</div><div class='ctx'>       true</div><div class='ctx'>     rescue BundlerError =&gt; e</div><div class='del'>-      @index = nil</div><div class='ctx'>       @resolve = nil</div><div class='add'>+      @resolver = nil</div><div class='add'>+      @resolution_packages = nil</div><div class='ctx'>       @specs = nil</div><div class='ctx'>       @gem_version_promoter = nil</div><div class='ctx'> </div><div class='hunk'>@@ -220,104 +229,81 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def requested_specs</div><div class='del'>-      @requested_specs ||= begin</div><div class='del'>-        groups = requested_groups</div><div class='del'>-        groups.map!(&amp;:to_sym)</div><div class='del'>-        specs_for(groups)</div><div class='del'>-      end</div><div class='add'>+      specs_for(requested_groups)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def current_dependencies</div><div class='del'>-      dependencies.select(&amp;:should_include?)</div><div class='add'>+    def requested_dependencies</div><div class='add'>+      dependencies_for(requested_groups)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def specs_for(groups)</div><div class='del'>-      deps = dependencies.select {|d| (d.groups &amp; groups).any? }</div><div class='del'>-      deps.delete_if {|d| !d.should_include? }</div><div class='del'>-      specs.for(expand_dependencies(deps))</div><div class='add'>+    def current_dependencies</div><div class='add'>+      filter_relevant(dependencies)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Resolve all the dependencies specified in Gemfile. It ensures that</div><div class='del'>-    # dependencies that have been already resolved via locked file and are fresh</div><div class='del'>-    # are reused when resolving dependencies</div><div class='del'>-    #</div><div class='del'>-    # @return [SpecSet] resolved dependencies</div><div class='del'>-    def resolve</div><div class='del'>-      @resolve ||= begin</div><div class='del'>-        last_resolve = converge_locked_specs</div><div class='del'>-        resolve =</div><div class='del'>-          if Bundler.frozen_bundle?</div><div class='del'>-            Bundler.ui.debug "Frozen, using resolution from the lockfile"</div><div class='del'>-            last_resolve</div><div class='del'>-          elsif !unlocking? &amp;&amp; nothing_changed?</div><div class='del'>-            Bundler.ui.debug("Found no changes, using resolution from the lockfile")</div><div class='del'>-            last_resolve</div><div class='del'>-          else</div><div class='del'>-            # Run a resolve against the locally available gems</div><div class='del'>-            Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}")</div><div class='del'>-            last_resolve.merge Resolver.resolve(expanded_dependencies, index, source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms)</div><div class='del'>-          end</div><div class='add'>+    def current_locked_dependencies</div><div class='add'>+      filter_relevant(locked_dependencies)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-        # filter out gems that _can_ be installed on multiple platforms, but don't need</div><div class='del'>-        # to be</div><div class='del'>-        resolve.for(expand_dependencies(dependencies, true), [], false, false, false)</div><div class='add'>+    def filter_relevant(dependencies)</div><div class='add'>+      dependencies.select do |d|</div><div class='add'>+        d.should_include? &amp;&amp; !d.gem_platforms([generic_local_platform]).empty?</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def index</div><div class='del'>-      @index ||= Index.build do |idx|</div><div class='del'>-        dependency_names = @dependencies.map(&amp;:name)</div><div class='del'>-</div><div class='del'>-        sources.all_sources.each do |source|</div><div class='del'>-          source.dependency_names = dependency_names - pinned_spec_names(source)</div><div class='del'>-          idx.add_source source.specs</div><div class='del'>-          dependency_names.concat(source.unmet_deps).uniq!</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        double_check_for_index(idx, dependency_names)</div><div class='del'>-      end</div><div class='add'>+    def locked_dependencies</div><div class='add'>+      @locked_deps.values</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Suppose the gem Foo depends on the gem Bar.  Foo exists in Source A.  Bar has some versions that exist in both</div><div class='del'>-    # sources A and B.  At this point, the API request will have found all the versions of Bar in source A,</div><div class='del'>-    # but will not have found any versions of Bar from source B, which is a problem if the requested version</div><div class='del'>-    # of Foo specifically depends on a version of Bar that is only found in source B. This ensures that for</div><div class='del'>-    # each spec we found, we add all possible versions from all sources to the index.</div><div class='del'>-    def double_check_for_index(idx, dependency_names)</div><div class='del'>-      pinned_names = pinned_spec_names</div><div class='del'>-      loop do</div><div class='del'>-        idxcount = idx.size</div><div class='del'>-</div><div class='del'>-        names = :names # do this so we only have to traverse to get dependency_names from the index once</div><div class='del'>-        unmet_dependency_names = lambda do</div><div class='del'>-          return names unless names == :names</div><div class='del'>-          new_names = sources.all_sources.map(&amp;:dependency_names_to_double_check)</div><div class='del'>-          return names = nil if new_names.compact!</div><div class='del'>-          names = new_names.flatten(1).concat(dependency_names)</div><div class='del'>-          names.uniq!</div><div class='del'>-          names -= pinned_names</div><div class='del'>-          names</div><div class='del'>-        end</div><div class='add'>+    def new_deps</div><div class='add'>+      @new_deps ||= @dependencies - locked_dependencies</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-        sources.all_sources.each do |source|</div><div class='del'>-          source.double_check_for(unmet_dependency_names)</div><div class='del'>-        end</div><div class='add'>+    def deleted_deps</div><div class='add'>+      @deleted_deps ||= locked_dependencies - @dependencies</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-        break if idxcount == idx.size</div><div class='del'>-      end</div><div class='add'>+    def specs_for(groups)</div><div class='add'>+      return specs if groups.empty?</div><div class='add'>+      deps = dependencies_for(groups)</div><div class='add'>+      materialize(deps)</div><div class='ctx'>     end</div><div class='del'>-    private :double_check_for_index</div><div class='ctx'> </div><div class='del'>-    def has_rubygems_remotes?</div><div class='del'>-      sources.rubygems_sources.any? {|s| s.remotes.any? }</div><div class='add'>+    def dependencies_for(groups)</div><div class='add'>+      groups.map!(&amp;:to_sym)</div><div class='add'>+      current_dependencies.reject do |d|</div><div class='add'>+        (d.groups &amp; groups).empty?</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def has_local_dependencies?</div><div class='del'>-      !sources.path_sources.empty? || !sources.git_sources.empty?</div><div class='add'>+    # Resolve all the dependencies specified in Gemfile. It ensures that</div><div class='add'>+    # dependencies that have been already resolved via locked file and are fresh</div><div class='add'>+    # are reused when resolving dependencies</div><div class='add'>+    #</div><div class='add'>+    # @return [SpecSet] resolved dependencies</div><div class='add'>+    def resolve</div><div class='add'>+      @resolve ||= if Bundler.frozen_bundle?</div><div class='add'>+        Bundler.ui.debug "Frozen, using resolution from the lockfile"</div><div class='add'>+        @locked_specs</div><div class='add'>+      elsif no_resolve_needed?</div><div class='add'>+        if deleted_deps.any?</div><div class='add'>+          Bundler.ui.debug "Some dependencies were deleted, using a subset of the resolution from the lockfile"</div><div class='add'>+          SpecSet.new(filter_specs(@locked_specs, @dependencies - deleted_deps))</div><div class='add'>+        else</div><div class='add'>+          Bundler.ui.debug "Found no changes, using resolution from the lockfile"</div><div class='add'>+          if @removed_platform || @locked_gems.may_include_redundant_platform_specific_gems?</div><div class='add'>+            SpecSet.new(filter_specs(@locked_specs, @dependencies))</div><div class='add'>+          else</div><div class='add'>+            @locked_specs</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        Bundler.ui.debug "Found changes from the lockfile, re-resolving dependencies because #{change_reason}"</div><div class='add'>+        start_resolution</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def spec_git_paths</div><div class='del'>-      sources.git_sources.map {|s| s.path.to_s }</div><div class='add'>+      sources.git_sources.map {|s| File.realpath(s.path) if File.exist?(s.path) }.compact</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def groups</div><div class='hunk'>@@ -325,20 +311,19 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def lock(file, preserve_unknown_sections = false)</div><div class='add'>+      return if Definition.no_lock</div><div class='add'>+</div><div class='ctx'>       contents = to_lock</div><div class='ctx'> </div><div class='ctx'>       # Convert to \r\n if the existing lock has them</div><div class='ctx'>       # i.e., Windows with `git config core.autocrlf=true`</div><div class='del'>-      contents.gsub!(/\n/, "\r\n") if @lockfile_contents.match("\r\n")</div><div class='add'>+      contents.gsub!(/\n/, "\r\n") if @lockfile_contents.match?("\r\n")</div><div class='ctx'> </div><div class='ctx'>       if @locked_bundler_version</div><div class='ctx'>         locked_major = @locked_bundler_version.segments.first</div><div class='del'>-        current_major = Gem::Version.create(Bundler::VERSION).segments.first</div><div class='add'>+        current_major = bundler_version_to_lock.segments.first</div><div class='ctx'> </div><div class='del'>-        if updating_major = locked_major &lt; current_major</div><div class='del'>-          Bundler.ui.warn "Warning: the lockfile is being updated to Bundler #{current_major}, " \</div><div class='del'>-                          "after which you will be unable to return to Bundler #{@locked_bundler_version.segments.first}."</div><div class='del'>-        end</div><div class='add'>+        updating_major = locked_major &lt; current_major</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       preserve_unknown_sections ||= !updating_major &amp;&amp; (Bundler.frozen_bundle? || !(unlocking? || @unlocking_bundler))</div><div class='hunk'>@@ -355,14 +340,6 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def locked_bundler_version</div><div class='del'>-      if @locked_bundler_version &amp;&amp; @locked_bundler_version &lt; Gem::Version.new(Bundler::VERSION)</div><div class='del'>-        new_version = Bundler::VERSION</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      new_version || @locked_bundler_version || Bundler::VERSION</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def locked_ruby_version</div><div class='ctx'>       return unless ruby_version</div><div class='ctx'>       if @unlock[:ruby] || !@locked_ruby_version</div><div class='hunk'>@@ -384,29 +361,16 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def bundler_version_to_lock</div><div class='add'>+      @resolved_bundler_version || Bundler.gem_version</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def to_lock</div><div class='del'>-      require "bundler/lockfile_generator"</div><div class='add'>+      require_relative "lockfile_generator"</div><div class='ctx'>       LockfileGenerator.generate(self)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def ensure_equivalent_gemfile_and_lockfile(explicit_flag = false)</div><div class='del'>-      msg = String.new</div><div class='del'>-      msg &lt;&lt; "You are trying to install in deployment mode after changing\n" \</div><div class='del'>-             "your Gemfile. Run `bundle install` elsewhere and add the\n" \</div><div class='del'>-             "updated #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)} to version control."</div><div class='del'>-</div><div class='del'>-      unless explicit_flag</div><div class='del'>-        suggested_command = if Bundler.settings.locations("frozen")[:global]</div><div class='del'>-          "bundle config --delete frozen"</div><div class='del'>-        elsif Bundler.settings.locations("deployment").keys.&amp;([:global, :local]).any?</div><div class='del'>-          "bundle config --delete deployment"</div><div class='del'>-        else</div><div class='del'>-          "bundle install --no-deployment"</div><div class='del'>-        end</div><div class='del'>-        msg &lt;&lt; "\n\nIf this is a development machine, remove the #{Bundler.default_gemfile} " \</div><div class='del'>-               "freeze \nby running `#{suggested_command}`."</div><div class='del'>-      end</div><div class='del'>-</div><div class='ctx'>       added =   []</div><div class='ctx'>       deleted = []</div><div class='ctx'>       changed = []</div><div class='hunk'>@@ -416,52 +380,40 @@ module Bundler</div><div class='ctx'>       added.concat new_platforms.map {|p| "* platform: #{p}" }</div><div class='ctx'>       deleted.concat deleted_platforms.map {|p| "* platform: #{p}" }</div><div class='ctx'> </div><div class='del'>-      gemfile_sources = sources.lock_sources</div><div class='del'>-</div><div class='del'>-      new_sources = gemfile_sources - @locked_sources</div><div class='del'>-      deleted_sources = @locked_sources - gemfile_sources</div><div class='del'>-</div><div class='del'>-      new_deps = @dependencies - @locked_deps.values</div><div class='del'>-      deleted_deps = @locked_deps.values - @dependencies</div><div class='del'>-</div><div class='del'>-      # Check if it is possible that the source is only changed thing</div><div class='del'>-      if (new_deps.empty? &amp;&amp; deleted_deps.empty?) &amp;&amp; (!new_sources.empty? &amp;&amp; !deleted_sources.empty?)</div><div class='del'>-        new_sources.reject! {|source| (source.path? &amp;&amp; source.path.exist?) || equivalent_rubygems_remotes?(source) }</div><div class='del'>-        deleted_sources.reject! {|source| (source.path? &amp;&amp; source.path.exist?) || equivalent_rubygems_remotes?(source) }</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      if @locked_sources != gemfile_sources</div><div class='del'>-        if new_sources.any?</div><div class='del'>-          added.concat new_sources.map {|source| "* source: #{source}" }</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        if deleted_sources.any?</div><div class='del'>-          deleted.concat deleted_sources.map {|source| "* source: #{source}" }</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='ctx'>       added.concat new_deps.map {|d| "* #{pretty_dep(d)}" } if new_deps.any?</div><div class='del'>-      if deleted_deps.any?</div><div class='del'>-        deleted.concat deleted_deps.map {|d| "* #{pretty_dep(d)}" }</div><div class='del'>-      end</div><div class='add'>+      deleted.concat deleted_deps.map {|d| "* #{pretty_dep(d)}" } if deleted_deps.any?</div><div class='ctx'> </div><div class='ctx'>       both_sources = Hash.new {|h, k| h[k] = [] }</div><div class='del'>-      @dependencies.each {|d| both_sources[d.name][0] = d }</div><div class='del'>-      @locked_deps.each  {|name, d| both_sources[name][1] = d.source }</div><div class='add'>+      current_dependencies.each {|d| both_sources[d.name][0] = d }</div><div class='add'>+      current_locked_dependencies.each {|d| both_sources[d.name][1] = d }</div><div class='add'>+</div><div class='add'>+      both_sources.each do |name, (dep, lock_dep)|</div><div class='add'>+        next if dep.nil? || lock_dep.nil?</div><div class='add'>+</div><div class='add'>+        gemfile_source = dep.source || default_source</div><div class='add'>+        lock_source = lock_dep.source || default_source</div><div class='add'>+        next if lock_source.include?(gemfile_source)</div><div class='ctx'> </div><div class='del'>-      both_sources.each do |name, (dep, lock_source)|</div><div class='del'>-        next unless (dep.nil? &amp;&amp; !lock_source.nil?) || (!dep.nil? &amp;&amp; !lock_source.nil? &amp;&amp; !lock_source.can_lock?(dep))</div><div class='del'>-        gemfile_source_name = (dep &amp;&amp; dep.source) || "no specified source"</div><div class='del'>-        lockfile_source_name = lock_source || "no specified source"</div><div class='del'>-        changed &lt;&lt; "* #{name} from `#{gemfile_source_name}` to `#{lockfile_source_name}`"</div><div class='add'>+        gemfile_source_name = dep.source ? gemfile_source.to_gemfile : "no specified source"</div><div class='add'>+        lockfile_source_name = lock_dep.source ? lock_source.to_gemfile : "no specified source"</div><div class='add'>+        changed &lt;&lt; "* #{name} from `#{lockfile_source_name}` to `#{gemfile_source_name}`"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       reason = change_reason</div><div class='del'>-      msg &lt;&lt; "\n\n#{reason.split(", ").map(&amp;:capitalize).join("\n")}" unless reason.strip.empty?</div><div class='add'>+      msg = String.new</div><div class='add'>+      msg &lt;&lt; "#{reason.capitalize.strip}, but the lockfile can't be updated because frozen mode is set"</div><div class='ctx'>       msg &lt;&lt; "\n\nYou have added to the Gemfile:\n" &lt;&lt; added.join("\n") if added.any?</div><div class='ctx'>       msg &lt;&lt; "\n\nYou have deleted from the Gemfile:\n" &lt;&lt; deleted.join("\n") if deleted.any?</div><div class='ctx'>       msg &lt;&lt; "\n\nYou have changed in the Gemfile:\n" &lt;&lt; changed.join("\n") if changed.any?</div><div class='del'>-      msg &lt;&lt; "\n"</div><div class='add'>+      msg &lt;&lt; "\n\nRun `bundle install` elsewhere and add the updated #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)} to version control.\n"</div><div class='add'>+</div><div class='add'>+      unless explicit_flag</div><div class='add'>+        suggested_command = unless Bundler.settings.locations("frozen").keys.include?(:env)</div><div class='add'>+          "bundle config set frozen false"</div><div class='add'>+        end</div><div class='add'>+        msg &lt;&lt; "If this is a development machine, remove the #{Bundler.default_gemfile.relative_path_from(SharedHelpers.pwd)} " \</div><div class='add'>+               "freeze by running `#{suggested_command}`." if suggested_command</div><div class='add'>+      end</div><div class='ctx'> </div><div class='ctx'>       raise ProductionError, msg if added.any? || deleted.any? || changed.any? || !nothing_changed?</div><div class='ctx'>     end</div><div class='hunk'>@@ -497,15 +449,11 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def validate_platforms!</div><div class='del'>-      return if @platforms.any? do |bundle_platform|</div><div class='del'>-        Bundler.rubygems.platforms.any? do |local_platform|</div><div class='del'>-          MatchPlatform.platforms_match?(bundle_platform, local_platform)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='add'>+      return if current_platform_locked?</div><div class='ctx'> </div><div class='ctx'>       raise ProductionError, "Your bundle only supports platforms #{@platforms.map(&amp;:to_s)} " \</div><div class='del'>-        "but your local platforms are #{Bundler.rubygems.platforms.map(&amp;:to_s)}, and " \</div><div class='del'>-        "there's no compatible match between those two lists."</div><div class='add'>+        "but your local platform is #{Bundler.local_platform}. " \</div><div class='add'>+        "Add the current platform to the lockfile with\n`bundle lock --add-platform #{Bundler.local_platform}` and try again."</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def add_platform(platform)</div><div class='hunk'>@@ -514,36 +462,153 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def remove_platform(platform)</div><div class='del'>-      return if @platforms.delete(Gem::Platform.new(platform))</div><div class='add'>+      removed_platform = @platforms.delete(Gem::Platform.new(platform))</div><div class='add'>+      @removed_platform ||= removed_platform</div><div class='add'>+      return if removed_platform</div><div class='ctx'>       raise InvalidOption, "Unable to remove the platform `#{platform}` since the only platforms are #{@platforms.join ", "}"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def add_current_platform</div><div class='del'>-      current_platform = Bundler.local_platform</div><div class='del'>-      add_platform(current_platform) if Bundler.feature_flag.specific_platform?</div><div class='del'>-      add_platform(generic(current_platform))</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def find_resolved_spec(current_spec)</div><div class='del'>-      specs.find_by_name_and_platform(current_spec.name, current_spec.platform)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def find_indexed_specs(current_spec)</div><div class='del'>-      index[current_spec.name].select {|spec| spec.match_platform(current_spec.platform) }.sort_by(&amp;:version)</div><div class='add'>+    def most_specific_locked_platform</div><div class='add'>+      @platforms.min_by do |bundle_platform|</div><div class='add'>+        platform_specificity_match(bundle_platform, local_platform)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     attr_reader :sources</div><div class='ctx'>     private :sources</div><div class='ctx'> </div><div class='ctx'>     def nothing_changed?</div><div class='del'>-      !@source_changes &amp;&amp; !@dependency_changes &amp;&amp; !@new_platform &amp;&amp; !@path_changes &amp;&amp; !@local_changes &amp;&amp; !@locked_specs_incomplete_for_platform</div><div class='add'>+      !@source_changes &amp;&amp; !@dependency_changes &amp;&amp; !@new_platform &amp;&amp; !@path_changes &amp;&amp; !@local_changes &amp;&amp; !@missing_lockfile_dep &amp;&amp; !@unlocking_bundler</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def no_resolve_needed?</div><div class='add'>+      !unlocking? &amp;&amp; nothing_changed?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def unlocking?</div><div class='ctx'>       @unlocking</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def resolver</div><div class='add'>+      @resolver ||= Resolver.new(resolution_packages, gem_version_promoter)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def expanded_dependencies</div><div class='add'>+      dependencies_with_bundler + metadata_dependencies</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def dependencies_with_bundler</div><div class='add'>+      return dependencies unless @unlocking_bundler</div><div class='add'>+      return dependencies if dependencies.map(&amp;:name).include?("bundler")</div><div class='add'>+</div><div class='add'>+      [Dependency.new("bundler", @unlocking_bundler)] + dependencies</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def resolution_packages</div><div class='add'>+      @resolution_packages ||= begin</div><div class='add'>+        last_resolve = converge_locked_specs</div><div class='add'>+        remove_ruby_from_platforms_if_necessary!(current_dependencies)</div><div class='add'>+        packages = Resolver::Base.new(source_requirements, expanded_dependencies, last_resolve, @platforms, :locked_specs =&gt; @originally_locked_specs, :unlock =&gt; @unlock[:gems], :prerelease =&gt; gem_version_promoter.pre?)</div><div class='add'>+        additional_base_requirements_for_resolve(packages, last_resolve)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def filter_specs(specs, deps)</div><div class='add'>+      SpecSet.new(specs).for(deps, false, platforms)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def materialize(dependencies)</div><div class='add'>+      specs = resolve.materialize(dependencies)</div><div class='add'>+      missing_specs = specs.missing_specs</div><div class='add'>+</div><div class='add'>+      if missing_specs.any?</div><div class='add'>+        missing_specs.each do |s|</div><div class='add'>+          locked_gem = @locked_specs[s.name].last</div><div class='add'>+          next if locked_gem.nil? || locked_gem.version != s.version || !@remote</div><div class='add'>+          raise GemNotFound, "Your bundle is locked to #{locked_gem} from #{locked_gem.source}, but that version can " \</div><div class='add'>+                             "no longer be found in that source. That means the author of #{locked_gem} has removed it. " \</div><div class='add'>+                             "You'll need to update your bundle to a version other than #{locked_gem} that hasn't been " \</div><div class='add'>+                             "removed in order to install."</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        missing_specs_list = missing_specs.group_by(&amp;:source).map do |source, missing_specs_for_source|</div><div class='add'>+          "#{missing_specs_for_source.map(&amp;:full_name).join(", ")} in #{source}"</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        raise GemNotFound, "Could not find #{missing_specs_list.join(" nor ")}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      incomplete_specs = specs.incomplete_specs</div><div class='add'>+      loop do</div><div class='add'>+        break if incomplete_specs.empty?</div><div class='add'>+</div><div class='add'>+        Bundler.ui.debug("The lockfile does not have all gems needed for the current platform though, Bundler will still re-resolve dependencies")</div><div class='add'>+        setup_sources_for_resolve</div><div class='add'>+        resolution_packages.delete(incomplete_specs)</div><div class='add'>+        @resolve = start_resolution</div><div class='add'>+        specs = resolve.materialize(dependencies)</div><div class='add'>+</div><div class='add'>+        still_incomplete_specs = specs.incomplete_specs</div><div class='add'>+</div><div class='add'>+        if still_incomplete_specs == incomplete_specs</div><div class='add'>+          package = resolution_packages.get_package(incomplete_specs.first.name)</div><div class='add'>+          resolver.raise_not_found! package</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        incomplete_specs = still_incomplete_specs</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      bundler = sources.metadata_source.specs.search(["bundler", Bundler.gem_version]).last</div><div class='add'>+      specs["bundler"] = bundler</div><div class='add'>+</div><div class='add'>+      specs</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def start_resolution</div><div class='add'>+      result = resolver.start</div><div class='add'>+</div><div class='add'>+      @resolved_bundler_version = result.find {|spec| spec.name == "bundler" }&amp;.version</div><div class='add'>+</div><div class='add'>+      SpecSet.new(SpecSet.new(result).for(dependencies, false, @platforms))</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def precompute_source_requirements_for_indirect_dependencies?</div><div class='add'>+      sources.non_global_rubygems_sources.all?(&amp;:dependency_api_available?) &amp;&amp; !sources.aggregate_global_source?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def pin_locally_available_names(source_requirements)</div><div class='add'>+      source_requirements.each_with_object({}) do |(name, original_source), new_source_requirements|</div><div class='add'>+        local_source = original_source.dup</div><div class='add'>+        local_source.local_only!</div><div class='add'>+</div><div class='add'>+        new_source_requirements[name] = if local_source.specs.search(name).any?</div><div class='add'>+          local_source</div><div class='add'>+        else</div><div class='add'>+          original_source</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def current_ruby_platform_locked?</div><div class='add'>+      return false unless generic_local_platform == Gem::Platform::RUBY</div><div class='add'>+      return false if Bundler.settings[:force_ruby_platform] &amp;&amp; !@platforms.include?(Gem::Platform::RUBY)</div><div class='add'>+</div><div class='add'>+      current_platform_locked?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def current_platform_locked?</div><div class='add'>+      @platforms.any? do |bundle_platform|</div><div class='add'>+        MatchPlatform.platforms_match?(bundle_platform, Bundler.local_platform)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def add_current_platform</div><div class='add'>+      return if current_ruby_platform_locked?</div><div class='add'>+</div><div class='add'>+      add_platform(local_platform)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     def change_reason</div><div class='ctx'>       if unlocking?</div><div class='hunk'>@@ -563,12 +628,13 @@ module Bundler</div><div class='ctx'>         [@new_platform, "you added a new platform to your gemfile"],</div><div class='ctx'>         [@path_changes, "the gemspecs for path gems changed"],</div><div class='ctx'>         [@local_changes, "the gemspecs for git local gems changed"],</div><div class='del'>-        [@locked_specs_incomplete_for_platform, "the lockfile does not have all gems needed for the current platform"],</div><div class='add'>+        [@missing_lockfile_dep, "your lock file is missing \"#{@missing_lockfile_dep}\""],</div><div class='add'>+        [@unlocking_bundler, "an update to the version of Bundler itself was requested"],</div><div class='ctx'>       ].select(&amp;:first).map(&amp;:last).join(", ")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def pretty_dep(dep, source = false)</div><div class='del'>-      SharedHelpers.pretty_dependency(dep, source)</div><div class='add'>+    def pretty_dep(dep)</div><div class='add'>+      SharedHelpers.pretty_dependency(dep)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Check if the specs of the given source changed</div><div class='hunk'>@@ -581,9 +647,9 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def dependencies_for_source_changed?(source, locked_source = source)</div><div class='ctx'>       deps_for_source = @dependencies.select {|s| s.source == source }</div><div class='del'>-      locked_deps_for_source = @locked_deps.values.select {|dep| dep.source == locked_source }</div><div class='add'>+      locked_deps_for_source = locked_dependencies.select {|dep| dep.source == locked_source }</div><div class='ctx'> </div><div class='del'>-      Set.new(deps_for_source) != Set.new(locked_deps_for_source)</div><div class='add'>+      deps_for_source.uniq.sort != locked_deps_for_source.sort</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def specs_for_source_changed?(source)</div><div class='hunk'>@@ -605,8 +671,8 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       Bundler.settings.local_overrides.map do |k, v|</div><div class='ctx'>         spec   = @dependencies.find {|s| s.name == k }</div><div class='del'>-        source = spec &amp;&amp; spec.source</div><div class='del'>-        if source &amp;&amp; source.respond_to?(:local_override!)</div><div class='add'>+        source = spec&amp;.source</div><div class='add'>+        if source&amp;.respond_to?(:local_override!)</div><div class='ctx'>           source.unlock! if @unlock[:gems].include?(spec.name)</div><div class='ctx'>           locals &lt;&lt; [source, source.local_override!(v)]</div><div class='ctx'>         end</div><div class='hunk'>@@ -618,6 +684,26 @@ module Bundler</div><div class='ctx'>       !sources_with_changes.each {|source| @unlock[:sources] &lt;&lt; source.name }.empty?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def check_missing_lockfile_dep</div><div class='add'>+      all_locked_specs = @locked_specs.map(&amp;:name) &lt;&lt; "bundler"</div><div class='add'>+</div><div class='add'>+      missing = @locked_specs.select do |s|</div><div class='add'>+        s.dependencies.any? {|dep| !all_locked_specs.include?(dep.name) }</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if missing.any?</div><div class='add'>+        @locked_specs.delete(missing)</div><div class='add'>+</div><div class='add'>+        return missing.first.name</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return if @dependency_changes</div><div class='add'>+</div><div class='add'>+      current_dependencies.find do |d|</div><div class='add'>+        @locked_specs[d.name].empty? &amp;&amp; d.name != "bundler"</div><div class='add'>+      end&amp;.name</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def converge_paths</div><div class='ctx'>       sources.path_sources.any? do |source|</div><div class='ctx'>         specs_changed?(source)</div><div class='hunk'>@@ -642,36 +728,11 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def converge_rubygems_sources</div><div class='del'>-      return false if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?</div><div class='del'>-</div><div class='del'>-      changes = false</div><div class='del'>-</div><div class='del'>-      # Get the RubyGems sources from the Gemfile.lock</div><div class='del'>-      locked_gem_sources = @locked_sources.select {|s| s.is_a?(Source::Rubygems) }</div><div class='del'>-      # Get the RubyGems remotes from the Gemfile</div><div class='del'>-      actual_remotes = sources.rubygems_remotes</div><div class='del'>-</div><div class='del'>-      # If there is a RubyGems source in both</div><div class='del'>-      if !locked_gem_sources.empty? &amp;&amp; !actual_remotes.empty?</div><div class='del'>-        locked_gem_sources.each do |locked_gem|</div><div class='del'>-          # Merge the remotes from the Gemfile into the Gemfile.lock</div><div class='del'>-          changes |= locked_gem.replace_remotes(actual_remotes, Bundler.settings[:allow_deployment_source_credential_changes])</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      changes</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def converge_sources</div><div class='del'>-      changes = false</div><div class='del'>-</div><div class='del'>-      changes |= converge_rubygems_sources</div><div class='del'>-</div><div class='ctx'>       # Replace the sources from the Gemfile with the sources from the Gemfile.lock,</div><div class='ctx'>       # if they exist in the Gemfile.lock and are `==`. If you can't find an equivalent</div><div class='ctx'>       # source in the Gemfile.lock, use the one from the Gemfile.</div><div class='del'>-      changes |= sources.replace_sources!(@locked_sources)</div><div class='add'>+      changes = sources.replace_sources!(@locked_sources)</div><div class='ctx'> </div><div class='ctx'>       sources.all_sources.each do |source|</div><div class='ctx'>         # If the source is unlockable and the current command allows an unlock of</div><div class='hunk'>@@ -689,28 +750,16 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def converge_dependencies</div><div class='del'>-      frozen = Bundler.frozen_bundle?</div><div class='del'>-      (@dependencies + @locked_deps.values).each do |dep|</div><div class='del'>-        locked_source = @locked_deps[dep.name]</div><div class='del'>-        # This is to make sure that if bundler is installing in deployment mode and</div><div class='del'>-        # after locked_source and sources don't match, we still use locked_source.</div><div class='del'>-        if frozen &amp;&amp; !locked_source.nil? &amp;&amp;</div><div class='del'>-            locked_source.respond_to?(:source) &amp;&amp; locked_source.source.instance_of?(Source::Path) &amp;&amp; locked_source.source.path.exist?</div><div class='del'>-          dep.source = locked_source.source</div><div class='del'>-        elsif dep.source</div><div class='add'>+      changes = false</div><div class='add'>+</div><div class='add'>+      @dependencies.each do |dep|</div><div class='add'>+        if dep.source</div><div class='ctx'>           dep.source = sources.get(dep.source)</div><div class='ctx'>         end</div><div class='del'>-        if dep.source.is_a?(Source::Gemspec)</div><div class='del'>-          dep.platforms.concat(@platforms.map {|p| Dependency::REVERSE_PLATFORM_MAP[p] }.flatten(1)).uniq!</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='ctx'> </div><div class='del'>-      changes = false</div><div class='del'>-      # We want to know if all match, but don't want to check all entries</div><div class='del'>-      # This means we need to return false if any dependency doesn't match</div><div class='del'>-      # the lock or doesn't exist in the lock.</div><div class='del'>-      @dependencies.each do |dependency|</div><div class='del'>-        unless locked_dep = @locked_deps[dependency.name]</div><div class='add'>+        next if unlocking?</div><div class='add'>+</div><div class='add'>+        unless locked_dep = @locked_deps[dep.name]</div><div class='ctx'>           changes = true</div><div class='ctx'>           next</div><div class='ctx'>         end</div><div class='hunk'>@@ -721,11 +770,11 @@ module Bundler</div><div class='ctx'>         # directive, the lockfile dependencies and resolved dependencies end up</div><div class='ctx'>         # with a mismatch on #type. Work around that by setting the type on the</div><div class='ctx'>         # dep from the lockfile.</div><div class='del'>-        locked_dep.instance_variable_set(:@type, dependency.type)</div><div class='add'>+        locked_dep.instance_variable_set(:@type, dep.type)</div><div class='ctx'> </div><div class='ctx'>         # We already know the name matches from the hash lookup</div><div class='ctx'>         # so we only need to check the requirement now</div><div class='del'>-        changes ||= dependency.requirement != locked_dep.requirement</div><div class='add'>+        changes ||= dep.requirement != locked_dep.requirement</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       changes</div><div class='hunk'>@@ -735,218 +784,146 @@ module Bundler</div><div class='ctx'>     # commonly happen if the Gemfile has changed since the lockfile was last</div><div class='ctx'>     # generated</div><div class='ctx'>     def converge_locked_specs</div><div class='del'>-      deps = []</div><div class='add'>+      converged = converge_specs(@locked_specs)</div><div class='ctx'> </div><div class='del'>-      # Build a list of dependencies that are the same in the Gemfile</div><div class='del'>-      # and Gemfile.lock. If the Gemfile modified a dependency, but</div><div class='del'>-      # the gem in the Gemfile.lock still satisfies it, this is fine</div><div class='del'>-      # too.</div><div class='del'>-      @dependencies.each do |dep|</div><div class='del'>-        locked_dep = @locked_deps[dep.name]</div><div class='add'>+      resolve = SpecSet.new(converged.reject {|s| @unlock[:gems].include?(s.name) })</div><div class='ctx'> </div><div class='del'>-        # If the locked_dep doesn't match the dependency we're looking for then we ignore the locked_dep</div><div class='del'>-        locked_dep = nil unless locked_dep == dep</div><div class='add'>+      diff = nil</div><div class='ctx'> </div><div class='del'>-        if in_locked_deps?(dep, locked_dep) || satisfies_locked_spec?(dep)</div><div class='del'>-          deps &lt;&lt; dep</div><div class='del'>-        elsif dep.source.is_a?(Source::Path) &amp;&amp; dep.current_platform? &amp;&amp; (!locked_dep || dep.source != locked_dep.source)</div><div class='del'>-          @locked_specs.each do |s|</div><div class='del'>-            @unlock[:gems] &lt;&lt; s.name if s.source == dep.source</div><div class='del'>-          end</div><div class='add'>+      # Now, we unlock any sources that do not have anymore gems pinned to it</div><div class='add'>+      sources.all_sources.each do |source|</div><div class='add'>+        next unless source.respond_to?(:unlock!)</div><div class='ctx'> </div><div class='del'>-          dep.source.unlock! if dep.source.respond_to?(:unlock!)</div><div class='del'>-          dep.source.specs.each {|s| @unlock[:gems] &lt;&lt; s.name }</div><div class='add'>+        unless resolve.any? {|s| s.source == source }</div><div class='add'>+          diff ||= @locked_specs.to_a - resolve.to_a</div><div class='add'>+          source.unlock! if diff.any? {|s| s.source == source }</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      unlock_source_unlocks_spec = Bundler.feature_flag.unlock_source_unlocks_spec?</div><div class='add'>+      resolve</div><div class='add'>+    end</div><div class='ctx'> </div><div class='add'>+    def converge_specs(specs)</div><div class='ctx'>       converged = []</div><div class='del'>-      @locked_specs.each do |s|</div><div class='del'>-        # Replace the locked dependency's source with the equivalent source from the Gemfile</div><div class='add'>+      deps = []</div><div class='add'>+</div><div class='add'>+      @specs_that_changed_sources = []</div><div class='add'>+</div><div class='add'>+      specs.each do |s|</div><div class='add'>+        name = s.name</div><div class='ctx'>         dep = @dependencies.find {|d| s.satisfies?(d) }</div><div class='del'>-        s.source = (dep &amp;&amp; dep.source) || sources.get(s.source)</div><div class='add'>+        lockfile_source = s.source</div><div class='ctx'> </div><div class='del'>-        # Don't add a spec to the list if its source is expired. For example,</div><div class='del'>-        # if you change a Git gem to RubyGems.</div><div class='del'>-        next if s.source.nil?</div><div class='del'>-        next if @unlock[:sources].include?(s.source.name)</div><div class='add'>+        if dep</div><div class='add'>+          gemfile_source = dep.source || default_source</div><div class='add'>+</div><div class='add'>+          @specs_that_changed_sources &lt;&lt; s if gemfile_source != lockfile_source</div><div class='add'>+          deps &lt;&lt; dep if !dep.source || lockfile_source.include?(dep.source)</div><div class='add'>+          @unlock[:gems] &lt;&lt; name if lockfile_source.include?(dep.source) &amp;&amp; lockfile_source != gemfile_source</div><div class='ctx'> </div><div class='del'>-        # XXX This is a backwards-compatibility fix to preserve the ability to</div><div class='del'>-        # unlock a single gem by passing its name via `--source`. See issue #3759</div><div class='del'>-        # TODO: delete in Bundler 2</div><div class='del'>-        next if unlock_source_unlocks_spec &amp;&amp; @unlock[:sources].include?(s.name)</div><div class='add'>+          # Replace the locked dependency's source with the equivalent source from the Gemfile</div><div class='add'>+          s.source = gemfile_source</div><div class='add'>+        else</div><div class='add'>+          # Replace the locked dependency's source with the default source, if the locked source is no longer in the Gemfile</div><div class='add'>+          s.source = default_source unless sources.get(lockfile_source)</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-        # If the spec is from a path source and it doesn't exist anymore</div><div class='del'>-        # then we unlock it.</div><div class='add'>+        next if @unlock[:sources].include?(s.source.name)</div><div class='ctx'> </div><div class='ctx'>         # Path sources have special logic</div><div class='ctx'>         if s.source.instance_of?(Source::Path) || s.source.instance_of?(Source::Gemspec)</div><div class='del'>-          other_sources_specs = begin</div><div class='add'>+          new_specs = begin</div><div class='ctx'>             s.source.specs</div><div class='del'>-          rescue PathError, GitError</div><div class='add'>+          rescue PathError</div><div class='ctx'>             # if we won't need the source (according to the lockfile),</div><div class='del'>-            # don't error if the path/git source isn't available</div><div class='del'>-            next if @locked_specs.</div><div class='del'>-                    for(requested_dependencies, [], false, true, false).</div><div class='add'>+            # don't error if the path source isn't available</div><div class='add'>+            next if specs.</div><div class='add'>+                    for(requested_dependencies, false).</div><div class='ctx'>                     none? {|locked_spec| locked_spec.source == s.source }</div><div class='ctx'> </div><div class='ctx'>             raise</div><div class='ctx'>           end</div><div class='ctx'> </div><div class='del'>-          other = other_sources_specs[s].first</div><div class='del'>-</div><div class='del'>-          # If the spec is no longer in the path source, unlock it. This</div><div class='del'>-          # commonly happens if the version changed in the gemspec</div><div class='del'>-          next unless other</div><div class='del'>-</div><div class='del'>-          deps2 = other.dependencies.select {|d| d.type != :development }</div><div class='del'>-          runtime_dependencies = s.dependencies.select {|d| d.type != :development }</div><div class='del'>-          # If the dependencies of the path source have changed, unlock it</div><div class='del'>-          next unless runtime_dependencies.sort == deps2.sort</div><div class='add'>+          new_spec = new_specs[s].first</div><div class='add'>+          if new_spec</div><div class='add'>+            s.dependencies.replace(new_spec.dependencies)</div><div class='add'>+          else</div><div class='add'>+            # If the spec is no longer in the path source, unlock it. This</div><div class='add'>+            # commonly happens if the version changed in the gemspec</div><div class='add'>+            @unlock[:gems] &lt;&lt; name</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        converged &lt;&lt; s</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      resolve = SpecSet.new(converged)</div><div class='del'>-      expanded_deps = expand_dependencies(deps, true)</div><div class='del'>-      @locked_specs_incomplete_for_platform = !resolve.for(expanded_deps, @unlock[:gems], true, true)</div><div class='del'>-      resolve = resolve.for(expanded_deps, @unlock[:gems], false, false, false)</div><div class='del'>-      diff    = nil</div><div class='del'>-</div><div class='del'>-      # Now, we unlock any sources that do not have anymore gems pinned to it</div><div class='del'>-      sources.all_sources.each do |source|</div><div class='del'>-        next unless source.respond_to?(:unlock!)</div><div class='del'>-</div><div class='del'>-        unless resolve.any? {|s| s.source == source }</div><div class='del'>-          diff ||= @locked_specs.to_a - resolve.to_a</div><div class='del'>-          source.unlock! if diff.any? {|s| s.source == source }</div><div class='add'>+        if dep.nil? &amp;&amp; requested_dependencies.find {|d| name == d.name }</div><div class='add'>+          @unlock[:gems] &lt;&lt; s.name</div><div class='add'>+        else</div><div class='add'>+          converged &lt;&lt; s</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      resolve</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def in_locked_deps?(dep, locked_dep)</div><div class='del'>-      # Because the lockfile can't link a dep to a specific remote, we need to</div><div class='del'>-      # treat sources as equivalent anytime the locked dep has all the remotes</div><div class='del'>-      # that the Gemfile dep does.</div><div class='del'>-      locked_dep &amp;&amp; locked_dep.source &amp;&amp; dep.source &amp;&amp; locked_dep.source.include?(dep.source)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def satisfies_locked_spec?(dep)</div><div class='del'>-      @locked_specs[dep].any? {|s| s.satisfies?(dep) &amp;&amp; (!dep.source || s.source.include?(dep.source)) }</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # This list of dependencies is only used in #resolve, so it's OK to add</div><div class='del'>-    # the metadata dependencies here</div><div class='del'>-    def expanded_dependencies</div><div class='del'>-      @expanded_dependencies ||= begin</div><div class='del'>-        expand_dependencies(dependencies + metadata_dependencies, @remote)</div><div class='del'>-      end</div><div class='add'>+      filter_specs(converged, deps)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def metadata_dependencies</div><div class='del'>-      @metadata_dependencies ||= begin</div><div class='del'>-        ruby_versions = concat_ruby_version_requirements(@ruby_version)</div><div class='del'>-        if ruby_versions.empty? || !@ruby_version.exact?</div><div class='del'>-          concat_ruby_version_requirements(RubyVersion.system)</div><div class='del'>-          concat_ruby_version_requirements(locked_ruby_version_object) unless @unlock[:ruby]</div><div class='del'>-        end</div><div class='del'>-        [</div><div class='del'>-          Dependency.new("ruby\0", ruby_versions),</div><div class='del'>-          Dependency.new("rubygems\0", Gem::VERSION),</div><div class='del'>-        ]</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def concat_ruby_version_requirements(ruby_version, ruby_versions = [])</div><div class='del'>-      return ruby_versions unless ruby_version</div><div class='del'>-      if ruby_version.patchlevel</div><div class='del'>-        ruby_versions &lt;&lt; ruby_version.to_gem_version_with_patchlevel</div><div class='del'>-      else</div><div class='del'>-        ruby_versions.concat(ruby_version.versions.map do |version|</div><div class='del'>-          requirement = Gem::Requirement.new(version)</div><div class='del'>-          if requirement.exact?</div><div class='del'>-            "~&gt; #{version}.0"</div><div class='del'>-          else</div><div class='del'>-            requirement</div><div class='del'>-          end</div><div class='del'>-        end)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def expand_dependencies(dependencies, remote = false)</div><div class='del'>-      sorted_platforms = Resolver.sort_platforms(@platforms)</div><div class='del'>-      deps = []</div><div class='del'>-      dependencies.each do |dep|</div><div class='del'>-        dep = Dependency.new(dep, "&gt;= 0") unless dep.respond_to?(:name)</div><div class='del'>-        next if !remote &amp;&amp; !dep.current_platform?</div><div class='del'>-        platforms = dep.gem_platforms(sorted_platforms)</div><div class='del'>-        if platforms.empty? &amp;&amp; !Bundler.settings[:disable_platform_warnings]</div><div class='del'>-          mapped_platforms = dep.platforms.map {|p| Dependency::PLATFORM_MAP[p] }</div><div class='del'>-          Bundler.ui.warn \</div><div class='del'>-            "The dependency #{dep} will be unused by any of the platforms Bundler is installing for. " \</div><div class='del'>-            "Bundler is installing for #{@platforms.join ", "} but the dependency " \</div><div class='del'>-            "is only for #{mapped_platforms.join ", "}. " \</div><div class='del'>-            "To add those platforms to the bundle, " \</div><div class='del'>-            "run `bundle lock --add-platform #{mapped_platforms.join " "}`."</div><div class='del'>-        end</div><div class='del'>-        platforms.each do |p|</div><div class='del'>-          deps &lt;&lt; DepProxy.new(dep, p) if remote || p == generic_local_platform</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      deps</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def requested_dependencies</div><div class='del'>-      groups = requested_groups</div><div class='del'>-      groups.map!(&amp;:to_sym)</div><div class='del'>-      dependencies.reject {|d| !d.should_include? || (d.groups &amp; groups).empty? }</div><div class='add'>+      @metadata_dependencies ||= [</div><div class='add'>+        Dependency.new("Ruby\0", Gem.ruby_version),</div><div class='add'>+        Dependency.new("RubyGems\0", Gem::VERSION),</div><div class='add'>+      ]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def source_requirements</div><div class='del'>-      # Load all specs from remote sources</div><div class='del'>-      index</div><div class='del'>-</div><div class='ctx'>       # Record the specs available in each gem's source, so that those</div><div class='ctx'>       # specs will be available later when the resolver knows where to</div><div class='ctx'>       # look for that gemspec (or its dependencies)</div><div class='del'>-      default = sources.default_source</div><div class='del'>-      source_requirements = { :default =&gt; default }</div><div class='del'>-      default = nil unless Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?</div><div class='del'>-      dependencies.each do |dep|</div><div class='del'>-        next unless source = dep.source || default</div><div class='del'>-        source_requirements[dep.name] = source</div><div class='add'>+      source_requirements = if precompute_source_requirements_for_indirect_dependencies?</div><div class='add'>+        all_requirements = source_map.all_requirements</div><div class='add'>+        all_requirements = pin_locally_available_names(all_requirements) if @prefer_local</div><div class='add'>+        { :default =&gt; default_source }.merge(all_requirements)</div><div class='add'>+      else</div><div class='add'>+        { :default =&gt; Source::RubygemsAggregate.new(sources, source_map) }.merge(source_map.direct_requirements)</div><div class='ctx'>       end</div><div class='add'>+      source_requirements.merge!(source_map.locked_requirements) unless @remote</div><div class='ctx'>       metadata_dependencies.each do |dep|</div><div class='ctx'>         source_requirements[dep.name] = sources.metadata_source</div><div class='ctx'>       end</div><div class='del'>-      source_requirements["bundler"] = sources.metadata_source # needs to come last to override</div><div class='add'>+</div><div class='add'>+      default_bundler_source = source_requirements["bundler"] || default_source</div><div class='add'>+</div><div class='add'>+      if @unlocking_bundler</div><div class='add'>+        default_bundler_source.add_dependency_names("bundler")</div><div class='add'>+      else</div><div class='add'>+        source_requirements[:default_bundler] = default_bundler_source</div><div class='add'>+        source_requirements["bundler"] = sources.metadata_source # needs to come last to override</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      verify_changed_sources!</div><div class='ctx'>       source_requirements</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def pinned_spec_names(skip = nil)</div><div class='del'>-      pinned_names = []</div><div class='del'>-      default = Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? &amp;&amp; sources.default_source</div><div class='del'>-      @dependencies.each do |dep|</div><div class='del'>-        next unless dep_source = dep.source || default</div><div class='del'>-        next if dep_source == skip</div><div class='del'>-        pinned_names &lt;&lt; dep.name</div><div class='add'>+    def default_source</div><div class='add'>+      sources.default_source</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def verify_changed_sources!</div><div class='add'>+      @specs_that_changed_sources.each do |s|</div><div class='add'>+        if s.source.specs.search(s.name).empty?</div><div class='add'>+          raise GemNotFound, "Could not find gem '#{s.name}' in #{s.source}"</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='del'>-      pinned_names</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def requested_groups</div><div class='del'>-      groups - Bundler.settings[:without] - @optional_groups + Bundler.settings[:with]</div><div class='add'>+      values = groups - Bundler.settings[:without] - @optional_groups + Bundler.settings[:with]</div><div class='add'>+      values &amp;= Bundler.settings[:only] unless Bundler.settings[:only].empty?</div><div class='add'>+      values</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def lockfiles_equal?(current, proposed, preserve_unknown_sections)</div><div class='ctx'>       if preserve_unknown_sections</div><div class='ctx'>         sections_to_ignore = LockfileParser.sections_to_ignore(@locked_bundler_version)</div><div class='ctx'>         sections_to_ignore += LockfileParser.unknown_sections_in_lockfile(current)</div><div class='del'>-        sections_to_ignore += LockfileParser::ENVIRONMENT_VERSION_SECTIONS</div><div class='add'>+        sections_to_ignore &lt;&lt; LockfileParser::RUBY</div><div class='add'>+        sections_to_ignore &lt;&lt; LockfileParser::BUNDLED unless @unlocking_bundler</div><div class='ctx'>         pattern = /#{Regexp.union(sections_to_ignore)}\n(\s{2,}.*\n)+/</div><div class='ctx'>         whitespace_cleanup = /\n{2,}/</div><div class='ctx'>         current = current.gsub(pattern, "\n").gsub(whitespace_cleanup, "\n\n").strip</div><div class='hunk'>@@ -955,39 +932,30 @@ module Bundler</div><div class='ctx'>       current == proposed</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def extract_gem_info(error)</div><div class='del'>-      # This method will extract the error message like "Could not find foo-1.2.3 in any of the sources"</div><div class='del'>-      # to an array. The first element will be the gem name (e.g. foo), the second will be the version number.</div><div class='del'>-      error.message.scan(/Could not find (\w+)-(\d+(?:\.\d+)+)/).flatten</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def compute_requires</div><div class='del'>-      dependencies.reduce({}) do |requires, dep|</div><div class='del'>-        next requires unless dep.should_include?</div><div class='del'>-        requires[dep.name] = Array(dep.autorequire || dep.name).map do |file|</div><div class='del'>-          # Allow `require: true` as an alias for `require: &lt;name&gt;`</div><div class='del'>-          file == true ? dep.name : file</div><div class='del'>-        end</div><div class='del'>-        requires</div><div class='add'>+    def additional_base_requirements_for_resolve(resolution_packages, last_resolve)</div><div class='add'>+      return resolution_packages unless @locked_gems &amp;&amp; !sources.expired_sources?(@locked_gems.sources)</div><div class='add'>+      converge_specs(@originally_locked_specs - last_resolve).each do |locked_spec|</div><div class='add'>+        next if locked_spec.source.is_a?(Source::Path)</div><div class='add'>+        resolution_packages.base_requirements[locked_spec.name] = Gem::Requirement.new("&gt;= #{locked_spec.version}")</div><div class='ctx'>       end</div><div class='add'>+      resolution_packages</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def additional_base_requirements_for_resolve</div><div class='del'>-      return [] unless @locked_gems &amp;&amp; Bundler.feature_flag.only_update_to_newer_versions?</div><div class='del'>-      dependencies_by_name = dependencies.inject({}) {|memo, dep| memo.update(dep.name =&gt; dep) }</div><div class='del'>-      @locked_gems.specs.reduce({}) do |requirements, locked_spec|</div><div class='del'>-        name = locked_spec.name</div><div class='del'>-        next requirements if @locked_gems.dependencies[name] != dependencies_by_name[name]</div><div class='del'>-        dep = Gem::Dependency.new(name, "&gt;= #{locked_spec.version}")</div><div class='del'>-        requirements[name] = DepProxy.new(dep, locked_spec.platform)</div><div class='del'>-        requirements</div><div class='del'>-      end.values</div><div class='del'>-    end</div><div class='add'>+    def remove_ruby_from_platforms_if_necessary!(dependencies)</div><div class='add'>+      return if Bundler.frozen_bundle? ||</div><div class='add'>+                Bundler.local_platform == Gem::Platform::RUBY ||</div><div class='add'>+                !platforms.include?(Gem::Platform::RUBY) ||</div><div class='add'>+                (@new_platform &amp;&amp; platforms.last == Gem::Platform::RUBY) ||</div><div class='add'>+                @path_changes ||</div><div class='add'>+                @dependency_changes ||</div><div class='add'>+                !@originally_locked_specs.incomplete_ruby_specs?(dependencies)</div><div class='ctx'> </div><div class='del'>-    def equivalent_rubygems_remotes?(source)</div><div class='del'>-      return false unless source.is_a?(Source::Rubygems)</div><div class='add'>+      remove_platform(Gem::Platform::RUBY)</div><div class='add'>+      add_current_platform</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      Bundler.settings[:allow_deployment_source_credential_changes] &amp;&amp; source.equivalent_remotes?(sources.rubygems_remotes)</div><div class='add'>+    def source_map</div><div class='add'>+      @source_map ||= SourceMap.new(sources, dependencies, @locked_specs)</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/dep_proxy.rb b/lib/bundler/dep_proxy.rb<br/>deleted file mode 100644<br/>index 6c32179ac1..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/dep_proxy.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/dep_proxy.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,48 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler</div><div class='del'>-  class DepProxy</div><div class='del'>-    attr_reader :__platform, :dep</div><div class='del'>-</div><div class='del'>-    def initialize(dep, platform)</div><div class='del'>-      @dep = dep</div><div class='del'>-      @__platform = platform</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def hash</div><div class='del'>-      @hash ||= [dep, __platform].hash</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def ==(other)</div><div class='del'>-      return false if other.class != self.class</div><div class='del'>-      dep == other.dep &amp;&amp; __platform == other.__platform</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    alias_method :eql?, :==</div><div class='del'>-</div><div class='del'>-    def type</div><div class='del'>-      @dep.type</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def name</div><div class='del'>-      @dep.name</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def requirement</div><div class='del'>-      @dep.requirement</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def to_s</div><div class='del'>-      s = name.dup</div><div class='del'>-      s &lt;&lt; " (#{requirement})" unless requirement == Gem::Requirement.default</div><div class='del'>-      s &lt;&lt; " #{__platform}" unless __platform == Gem::Platform::RUBY</div><div class='del'>-      s</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-  private</div><div class='del'>-</div><div class='del'>-    def method_missing(*args, &amp;blk)</div><div class='del'>-      @dep.send(*args, &amp;blk)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/dependency.rb b/lib/bundler/dependency.rb<br/>index 8840ad6a9c..5f17943629 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/dependency.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/dependency.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/dependency.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/dependency.rb</a></div><div class='hunk'>@@ -1,80 +1,29 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='ctx'> require "rubygems/dependency"</div><div class='del'>-require "bundler/shared_helpers"</div><div class='del'>-require "bundler/rubygems_ext"</div><div class='add'>+require_relative "shared_helpers"</div><div class='add'>+require_relative "rubygems_ext"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class Dependency &lt; Gem::Dependency</div><div class='ctx'>     attr_reader :autorequire</div><div class='del'>-    attr_reader :groups, :platforms, :gemfile</div><div class='add'>+    attr_reader :groups, :platforms, :gemfile, :path, :git, :github, :branch, :ref</div><div class='ctx'> </div><div class='add'>+    ALL_RUBY_VERSIONS = ((18..27).to_a + (30..33).to_a).freeze</div><div class='ctx'>     PLATFORM_MAP = {</div><div class='del'>-      :ruby     =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :ruby_18  =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :ruby_19  =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :ruby_20  =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :ruby_21  =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :ruby_22  =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :ruby_23  =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :ruby_24  =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :ruby_25  =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :mri      =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :mri_18   =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :mri_19   =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :mri_20   =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :mri_21   =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :mri_22   =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :mri_23   =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :mri_24   =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :mri_25   =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :rbx      =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :truffleruby =&gt; Gem::Platform::RUBY,</div><div class='del'>-      :jruby    =&gt; Gem::Platform::JAVA,</div><div class='del'>-      :jruby_18 =&gt; Gem::Platform::JAVA,</div><div class='del'>-      :jruby_19 =&gt; Gem::Platform::JAVA,</div><div class='del'>-      :mswin    =&gt; Gem::Platform::MSWIN,</div><div class='del'>-      :mswin_18 =&gt; Gem::Platform::MSWIN,</div><div class='del'>-      :mswin_19 =&gt; Gem::Platform::MSWIN,</div><div class='del'>-      :mswin_20 =&gt; Gem::Platform::MSWIN,</div><div class='del'>-      :mswin_21 =&gt; Gem::Platform::MSWIN,</div><div class='del'>-      :mswin_22 =&gt; Gem::Platform::MSWIN,</div><div class='del'>-      :mswin_23 =&gt; Gem::Platform::MSWIN,</div><div class='del'>-      :mswin_24 =&gt; Gem::Platform::MSWIN,</div><div class='del'>-      :mswin_25 =&gt; Gem::Platform::MSWIN,</div><div class='del'>-      :mswin64    =&gt; Gem::Platform::MSWIN64,</div><div class='del'>-      :mswin64_19 =&gt; Gem::Platform::MSWIN64,</div><div class='del'>-      :mswin64_20 =&gt; Gem::Platform::MSWIN64,</div><div class='del'>-      :mswin64_21 =&gt; Gem::Platform::MSWIN64,</div><div class='del'>-      :mswin64_22 =&gt; Gem::Platform::MSWIN64,</div><div class='del'>-      :mswin64_23 =&gt; Gem::Platform::MSWIN64,</div><div class='del'>-      :mswin64_24 =&gt; Gem::Platform::MSWIN64,</div><div class='del'>-      :mswin64_25 =&gt; Gem::Platform::MSWIN64,</div><div class='del'>-      :mingw    =&gt; Gem::Platform::MINGW,</div><div class='del'>-      :mingw_18 =&gt; Gem::Platform::MINGW,</div><div class='del'>-      :mingw_19 =&gt; Gem::Platform::MINGW,</div><div class='del'>-      :mingw_20 =&gt; Gem::Platform::MINGW,</div><div class='del'>-      :mingw_21 =&gt; Gem::Platform::MINGW,</div><div class='del'>-      :mingw_22 =&gt; Gem::Platform::MINGW,</div><div class='del'>-      :mingw_23 =&gt; Gem::Platform::MINGW,</div><div class='del'>-      :mingw_24 =&gt; Gem::Platform::MINGW,</div><div class='del'>-      :mingw_25 =&gt; Gem::Platform::MINGW,</div><div class='del'>-      :x64_mingw    =&gt; Gem::Platform::X64_MINGW,</div><div class='del'>-      :x64_mingw_20 =&gt; Gem::Platform::X64_MINGW,</div><div class='del'>-      :x64_mingw_21 =&gt; Gem::Platform::X64_MINGW,</div><div class='del'>-      :x64_mingw_22 =&gt; Gem::Platform::X64_MINGW,</div><div class='del'>-      :x64_mingw_23 =&gt; Gem::Platform::X64_MINGW,</div><div class='del'>-      :x64_mingw_24 =&gt; Gem::Platform::X64_MINGW,</div><div class='del'>-      :x64_mingw_25 =&gt; Gem::Platform::X64_MINGW,</div><div class='del'>-    }.freeze</div><div class='del'>-</div><div class='del'>-    REVERSE_PLATFORM_MAP = {}.tap do |reverse_platform_map|</div><div class='del'>-      PLATFORM_MAP.each do |key, value|</div><div class='del'>-        reverse_platform_map[value] ||= []</div><div class='del'>-        reverse_platform_map[value] &lt;&lt; key</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      reverse_platform_map.each {|_, platforms| platforms.freeze }</div><div class='add'>+      :ruby =&gt; [Gem::Platform::RUBY, ALL_RUBY_VERSIONS],</div><div class='add'>+      :mri =&gt; [Gem::Platform::RUBY, ALL_RUBY_VERSIONS],</div><div class='add'>+      :rbx =&gt; [Gem::Platform::RUBY],</div><div class='add'>+      :truffleruby =&gt; [Gem::Platform::RUBY],</div><div class='add'>+      :jruby =&gt; [Gem::Platform::JAVA, [18, 19]],</div><div class='add'>+      :windows =&gt; [Gem::Platform::WINDOWS, ALL_RUBY_VERSIONS],</div><div class='add'>+      :mswin =&gt; [Gem::Platform::MSWIN,     ALL_RUBY_VERSIONS],</div><div class='add'>+      :mswin64 =&gt; [Gem::Platform::MSWIN64, ALL_RUBY_VERSIONS - [18]],</div><div class='add'>+      :mingw =&gt; [Gem::Platform::MINGW, ALL_RUBY_VERSIONS],</div><div class='add'>+      :x64_mingw =&gt; [Gem::Platform::X64_MINGW, ALL_RUBY_VERSIONS - [18, 19]],</div><div class='add'>+    }.each_with_object({}) do |(platform, spec), hash|</div><div class='add'>+      hash[platform] = spec[0]</div><div class='add'>+      spec[1]&amp;.each {|version| hash[:"#{platform}_#{version}"] = spec[0] }</div><div class='ctx'>     end.freeze</div><div class='ctx'> </div><div class='ctx'>     def initialize(name, version, options = {}, &amp;blk)</div><div class='hunk'>@@ -84,10 +33,16 @@ module Bundler</div><div class='ctx'>       @autorequire    = nil</div><div class='ctx'>       @groups         = Array(options["group"] || :default).map(&amp;:to_sym)</div><div class='ctx'>       @source         = options["source"]</div><div class='add'>+      @path           = options["path"]</div><div class='add'>+      @git            = options["git"]</div><div class='add'>+      @github         = options["github"]</div><div class='add'>+      @branch         = options["branch"]</div><div class='add'>+      @ref            = options["ref"]</div><div class='ctx'>       @platforms      = Array(options["platforms"])</div><div class='ctx'>       @env            = options["env"]</div><div class='ctx'>       @should_include = options.fetch("should_include", true)</div><div class='ctx'>       @gemfile        = options["gemfile"]</div><div class='add'>+      @force_ruby_platform = options["force_ruby_platform"] if options.key?("force_ruby_platform")</div><div class='ctx'> </div><div class='ctx'>       @autorequire = Array(options["require"] || []) if options.key?("require")</div><div class='ctx'>     end</div><div class='hunk'>@@ -95,11 +50,14 @@ module Bundler</div><div class='ctx'>     # Returns the platforms this dependency is valid for, in the same order as</div><div class='ctx'>     # passed in the `valid_platforms` parameter</div><div class='ctx'>     def gem_platforms(valid_platforms)</div><div class='add'>+      return [Gem::Platform::RUBY] if force_ruby_platform</div><div class='ctx'>       return valid_platforms if @platforms.empty?</div><div class='ctx'> </div><div class='del'>-      @gem_platforms ||= @platforms.map {|pl| PLATFORM_MAP[pl] }.compact.uniq</div><div class='add'>+      valid_platforms.select {|p| expanded_platforms.include?(GemHelpers.generic(p)) }</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      valid_platforms &amp; @gem_platforms</div><div class='add'>+    def expanded_platforms</div><div class='add'>+      @expanded_platforms ||= @platforms.map {|pl| PLATFORM_MAP[pl] }.compact.flatten.uniq</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def should_include?</div><div class='hunk'>@@ -127,7 +85,7 @@ module Bundler</div><div class='ctx'>     def to_lock</div><div class='ctx'>       out = super</div><div class='ctx'>       out &lt;&lt; "!" if source</div><div class='del'>-      out &lt;&lt; "\n"</div><div class='add'>+      out</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def specific?</div><div class='head'>diff --git a/lib/bundler/deployment.rb b/lib/bundler/deployment.rb<br/>index 291e158ca0..b432ae6ae1 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/deployment.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/deployment.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/deployment.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/deployment.rb</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/shared_helpers"</div><div class='add'>+require_relative "shared_helpers"</div><div class='ctx'> Bundler::SharedHelpers.major_deprecation 2, "Bundler no longer integrates with " \</div><div class='ctx'>   "Capistrano, but Capistrano provides its own integration with " \</div><div class='ctx'>   "Bundler via the capistrano-bundler gem. Use it instead."</div><div class='head'>diff --git a/lib/bundler/digest.rb b/lib/bundler/digest.rb<br/>new file mode 100644<br/>index 0000000000..f11f5edd38<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/digest.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/digest.rb</a></div><div class='hunk'>@@ -0,0 +1,71 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+# This code was extracted from https://github.com/Solistra/ruby-digest which is under public domain</div><div class='add'>+module Bundler</div><div class='add'>+  module Digest</div><div class='add'>+    # The initial constant values for the 32-bit constant words A, B, C, D, and</div><div class='add'>+    # E, respectively.</div><div class='add'>+    SHA1_WORDS = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0].freeze</div><div class='add'>+</div><div class='add'>+    # The 8-bit field used for bitwise `AND` masking. Defaults to `0xFFFFFFFF`.</div><div class='add'>+    SHA1_MASK = 0xFFFFFFFF</div><div class='add'>+</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      def sha1(string)</div><div class='add'>+        unless string.is_a?(String)</div><div class='add'>+          raise TypeError, "can't convert #{string.class.inspect} into String"</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        buffer = string.b</div><div class='add'>+</div><div class='add'>+        words = SHA1_WORDS.dup</div><div class='add'>+        generate_split_buffer(buffer) do |chunk|</div><div class='add'>+          w = []</div><div class='add'>+          chunk.each_slice(4) do |a, b, c, d|</div><div class='add'>+            w &lt;&lt; (((a &lt;&lt; 8 | b) &lt;&lt; 8 | c) &lt;&lt; 8 | d)</div><div class='add'>+          end</div><div class='add'>+          a, b, c, d, e = *words</div><div class='add'>+          (16..79).each do |i|</div><div class='add'>+            w[i] = SHA1_MASK &amp; rotate((w[i-3] ^ w[i-8] ^ w[i-14] ^ w[i-16]), 1)</div><div class='add'>+          end</div><div class='add'>+          0.upto(79) do |i|</div><div class='add'>+            case i</div><div class='add'>+            when  0..19</div><div class='add'>+              f = ((b &amp; c) | (~b &amp; d))</div><div class='add'>+              k = 0x5A827999</div><div class='add'>+            when 20..39</div><div class='add'>+              f = (b ^ c ^ d)</div><div class='add'>+              k = 0x6ED9EBA1</div><div class='add'>+            when 40..59</div><div class='add'>+              f = ((b &amp; c) | (b &amp; d) | (c &amp; d))</div><div class='add'>+              k = 0x8F1BBCDC</div><div class='add'>+            when 60..79</div><div class='add'>+              f = (b ^ c ^ d)</div><div class='add'>+              k = 0xCA62C1D6</div><div class='add'>+            end</div><div class='add'>+            t = SHA1_MASK &amp; rotate(a, 5) + f + e + k + w[i]</div><div class='add'>+            a, b, c, d, e = t, a, SHA1_MASK &amp; rotate(b, 30), c, d # rubocop:disable Style/ParallelAssignment</div><div class='add'>+          end</div><div class='add'>+          mutated = [a, b, c, d, e]</div><div class='add'>+          words.map!.with_index {|word, index| SHA1_MASK &amp; (word + mutated[index]) }</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        words.pack("N*").unpack("H*").first</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def generate_split_buffer(string, &amp;block)</div><div class='add'>+        size   = string.bytesize * 8</div><div class='add'>+        buffer = string.bytes &lt;&lt; 128</div><div class='add'>+        buffer &lt;&lt; 0 while buffer.size % 64 != 56</div><div class='add'>+        buffer.concat([size].pack("Q&gt;").bytes)</div><div class='add'>+        buffer.each_slice(64, &amp;block)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def rotate(value, spaces)</div><div class='add'>+        value &lt;&lt; spaces | value &gt;&gt; (32 - spaces)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/dsl.rb b/lib/bundler/dsl.rb<br/>index 1a2114ed93..03c80a408c 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/dsl.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/dsl.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/dsl.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/dsl.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/dependency"</div><div class='del'>-require "bundler/ruby_dsl"</div><div class='add'>+require_relative "dependency"</div><div class='add'>+require_relative "ruby_dsl"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class Dsl</div><div class='hunk'>@@ -16,7 +16,9 @@ module Bundler</div><div class='ctx'>     VALID_PLATFORMS = Bundler::Dependency::PLATFORM_MAP.keys.freeze</div><div class='ctx'> </div><div class='ctx'>     VALID_KEYS = %w[group groups git path glob name branch ref tag require submodules</div><div class='del'>-                    platform platforms type source install_if gemfile].freeze</div><div class='add'>+                    platform platforms type source install_if gemfile force_ruby_platform].freeze</div><div class='add'>+</div><div class='add'>+    GITHUB_PULL_REQUEST_URL = %r{\Ahttps://github\.com/([A-Za-z0-9_\-\.]+/[A-Za-z0-9_\-\.]+)/pull/(\d+)\z}.freeze</div><div class='ctx'> </div><div class='ctx'>     attr_reader :gemspecs</div><div class='ctx'>     attr_accessor :dependencies</div><div class='hunk'>@@ -39,13 +41,13 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def eval_gemfile(gemfile, contents = nil)</div><div class='del'>-      expanded_gemfile_path = Pathname.new(gemfile).expand_path(@gemfile &amp;&amp; @gemfile.parent)</div><div class='add'>+      expanded_gemfile_path = Pathname.new(gemfile).expand_path(@gemfile&amp;.parent)</div><div class='ctx'>       original_gemfile = @gemfile</div><div class='ctx'>       @gemfile = expanded_gemfile_path</div><div class='ctx'>       @gemfiles &lt;&lt; expanded_gemfile_path</div><div class='ctx'>       contents ||= Bundler.read_file(@gemfile.to_s)</div><div class='del'>-      instance_eval(contents.dup.untaint, gemfile.to_s, 1)</div><div class='del'>-    rescue Exception =&gt; e</div><div class='add'>+      instance_eval(contents.dup.tap {|x| x.untaint if RUBY_VERSION &lt; "2.7" }, gemfile.to_s, 1)</div><div class='add'>+    rescue Exception =&gt; e # rubocop:disable Lint/RescueException</div><div class='ctx'>       message = "There was an error " \</div><div class='ctx'>         "#{e.is_a?(GemfileEvalError) ? "evaluating" : "parsing"} " \</div><div class='ctx'>         "`#{File.basename gemfile.to_s}`: #{e.message}"</div><div class='hunk'>@@ -63,9 +65,8 @@ module Bundler</div><div class='ctx'>       development_group = opts[:development_group] || :development</div><div class='ctx'>       expanded_path     = gemfile_root.join(path)</div><div class='ctx'> </div><div class='del'>-      gemspecs = Dir[File.join(expanded_path, "{,*}.gemspec")].map {|g| Bundler.load_gemspec(g) }.compact</div><div class='add'>+      gemspecs = Gem::Util.glob_files_in_dir("{,*}.gemspec", expanded_path).map {|g| Bundler.load_gemspec(g) }.compact</div><div class='ctx'>       gemspecs.reject! {|s| s.name != name } if name</div><div class='del'>-      Index.sort_specs(gemspecs)</div><div class='ctx'>       specs_by_name_and_version = gemspecs.group_by {|s| [s.name, s.version] }</div><div class='ctx'> </div><div class='ctx'>       case specs_by_name_and_version.size</div><div class='hunk'>@@ -75,8 +76,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>         @gemspecs &lt;&lt; spec</div><div class='ctx'> </div><div class='del'>-        gem_platforms = Bundler::Dependency::REVERSE_PLATFORM_MAP[Bundler::GemHelpers.generic_local_platform]</div><div class='del'>-        gem spec.name, :name =&gt; spec.name, :path =&gt; path, :glob =&gt; glob, :platforms =&gt; gem_platforms</div><div class='add'>+        gem spec.name, :name =&gt; spec.name, :path =&gt; path, :glob =&gt; glob</div><div class='ctx'> </div><div class='ctx'>         group(development_group) do</div><div class='ctx'>           spec.development_dependencies.each do |dep|</div><div class='hunk'>@@ -104,8 +104,8 @@ module Bundler</div><div class='ctx'>       if current = @dependencies.find {|d| d.name == dep.name }</div><div class='ctx'>         deleted_dep = @dependencies.delete(current) if current.type == :development</div><div class='ctx'> </div><div class='del'>-        if current.requirement != dep.requirement</div><div class='del'>-          unless deleted_dep</div><div class='add'>+        unless deleted_dep</div><div class='add'>+          if current.requirement != dep.requirement</div><div class='ctx'>             return if dep.type == :development</div><div class='ctx'> </div><div class='ctx'>             update_prompt = ""</div><div class='hunk'>@@ -123,21 +123,16 @@ module Bundler</div><div class='ctx'>             raise GemfileError, "You cannot specify the same gem twice with different version requirements.\n" \</div><div class='ctx'>                             "You specified: #{current.name} (#{current.requirement}) and #{dep.name} (#{dep.requirement})" \</div><div class='ctx'>                              "#{update_prompt}"</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-        else</div><div class='del'>-          Bundler.ui.warn "Your Gemfile lists the gem #{current.name} (#{current.requirement}) more than once.\n" \</div><div class='del'>-                          "You should probably keep only one of them.\n" \</div><div class='del'>-                          "Remove any duplicate entries and specify the gem only once (per group).\n" \</div><div class='del'>-                          "While it's not a problem now, it could cause errors if you change the version of one of them later."</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        if current.source != dep.source</div><div class='del'>-          unless deleted_dep</div><div class='add'>+          elsif current.source != dep.source</div><div class='ctx'>             return if dep.type == :development</div><div class='ctx'>             raise GemfileError, "You cannot specify the same gem twice coming from different sources.\n" \</div><div class='ctx'>                             "You specified that #{dep.name} (#{dep.requirement}) should come from " \</div><div class='ctx'>                             "#{current.source || "an unspecified source"} and #{dep.source}\n"</div><div class='add'>+          else</div><div class='add'>+            Bundler.ui.warn "Your Gemfile lists the gem #{current.name} (#{current.requirement}) more than once.\n" \</div><div class='add'>+                            "You should probably keep only one of them.\n" \</div><div class='add'>+                            "Remove any duplicate entries and specify the gem only once.\n" \</div><div class='add'>+                            "While it's not a problem now, it could cause errors if you change the version of one of them later."</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='hunk'>@@ -165,8 +160,7 @@ module Bundler</div><div class='ctx'>       elsif block_given?</div><div class='ctx'>         with_source(@sources.add_rubygems_source("remotes" =&gt; source), &amp;blk)</div><div class='ctx'>       else</div><div class='del'>-        check_primary_source_safety(@sources)</div><div class='del'>-        @sources.global_rubygems_source = source</div><div class='add'>+        @sources.add_global_rubygems_remote(source)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -184,24 +178,14 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def path(path, options = {}, &amp;blk)</div><div class='del'>-      unless block_given?</div><div class='del'>-        msg = "You can no longer specify a path source by itself. Instead, \n" \</div><div class='del'>-              "either use the :path option on a gem, or specify the gems that \n" \</div><div class='del'>-              "bundler should find in the path source by passing a block to \n" \</div><div class='del'>-              "the path method, like: \n\n" \</div><div class='del'>-              "    path 'dir/containing/rails' do\n" \</div><div class='del'>-              "      gem 'rails'\n" \</div><div class='del'>-              "    end\n\n"</div><div class='del'>-</div><div class='del'>-        raise DeprecatedError, msg if Bundler.feature_flag.disable_multisource?</div><div class='del'>-        SharedHelpers.major_deprecation(2, msg.strip)</div><div class='del'>-      end</div><div class='del'>-</div><div class='ctx'>       source_options = normalize_hash(options).merge(</div><div class='ctx'>         "path" =&gt; Pathname.new(path),</div><div class='ctx'>         "root_path" =&gt; gemfile_root,</div><div class='ctx'>         "gemspec" =&gt; gemspecs.find {|g| g.name == options["name"] }</div><div class='ctx'>       )</div><div class='add'>+</div><div class='add'>+      source_options["global"] = true unless block_given?</div><div class='add'>+</div><div class='ctx'>       source = @sources.add_path_source(source_options)</div><div class='ctx'>       with_source(source, &amp;blk)</div><div class='ctx'>     end</div><div class='hunk'>@@ -223,7 +207,6 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def github(repo, options = {})</div><div class='ctx'>       raise ArgumentError, "GitHub sources require a block" unless block_given?</div><div class='del'>-      raise DeprecatedError, "The #github method has been removed" if Bundler.feature_flag.skip_default_git_sources?</div><div class='ctx'>       github_uri  = @git_sources["github"].call(repo)</div><div class='ctx'>       git_options = normalize_hash(options).merge("uri" =&gt; github_uri)</div><div class='ctx'>       git_source  = @sources.add_git_source(git_options)</div><div class='hunk'>@@ -231,6 +214,7 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def to_definition(lockfile, unlock)</div><div class='add'>+      check_primary_source_safety</div><div class='ctx'>       Definition.new(lockfile, @dependencies, @sources, unlock, @ruby_version, @optional_groups, @gemfiles)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -281,53 +265,33 @@ module Bundler</div><div class='ctx'>       raise GemfileError, "Undefined local variable or method `#{name}' for Gemfile"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    def check_primary_source_safety</div><div class='add'>+      check_path_source_safety</div><div class='add'>+      check_rubygems_source_safety</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-    def add_git_sources</div><div class='del'>-      return if Bundler.feature_flag.skip_default_git_sources?</div><div class='add'>+    private</div><div class='ctx'> </div><div class='add'>+    def add_git_sources</div><div class='ctx'>       git_source(:github) do |repo_name|</div><div class='del'>-        warn_deprecated_git_source(:github, &lt;&lt;-'RUBY'.strip, 'Change any "reponame" :github sources to "username/reponame".')</div><div class='del'>-"https://github.com/#{repo_name}.git"</div><div class='del'>-        RUBY</div><div class='del'>-        # It would be better to use https instead of the git protocol, but this</div><div class='del'>-        # can break deployment of existing locked bundles when switching between</div><div class='del'>-        # different versions of Bundler. The change will be made in 2.0, which</div><div class='del'>-        # does not guarantee compatibility with the 1.x series.</div><div class='del'>-        #</div><div class='del'>-        # See https://github.com/bundler/bundler/pull/2569 for discussion</div><div class='del'>-        #</div><div class='del'>-        # This can be overridden by adding this code to your Gemfiles:</div><div class='del'>-        #</div><div class='del'>-        #   git_source(:github) do |repo_name|</div><div class='del'>-        #     repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")</div><div class='del'>-        #     "https://github.com/#{repo_name}.git"</div><div class='del'>-        #   end</div><div class='del'>-        repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")</div><div class='del'>-        # TODO: 2.0 upgrade this setting to the default</div><div class='del'>-        if Bundler.feature_flag.github_https?</div><div class='del'>-          Bundler::SharedHelpers.major_deprecation 2, "The `github.https` setting will be removed"</div><div class='del'>-          "https://github.com/#{repo_name}.git"</div><div class='add'>+        if repo_name =~ GITHUB_PULL_REQUEST_URL</div><div class='add'>+          {</div><div class='add'>+            "git" =&gt; "https://github.com/#{$1}.git",</div><div class='add'>+            "branch" =&gt; nil,</div><div class='add'>+            "ref" =&gt; "refs/pull/#{$2}/head",</div><div class='add'>+            "tag" =&gt; nil,</div><div class='add'>+          }</div><div class='ctx'>         else</div><div class='del'>-          "git://github.com/#{repo_name}.git"</div><div class='add'>+          repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")</div><div class='add'>+          "https://github.com/#{repo_name}.git"</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      # TODO: 2.0 remove this deprecated git source</div><div class='ctx'>       git_source(:gist) do |repo_name|</div><div class='del'>-        warn_deprecated_git_source(:gist, '"https://gist.github.com/#{repo_name}.git"')</div><div class='del'>-</div><div class='ctx'>         "https://gist.github.com/#{repo_name}.git"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      # TODO: 2.0 remove this deprecated git source</div><div class='ctx'>       git_source(:bitbucket) do |repo_name|</div><div class='del'>-        warn_deprecated_git_source(:bitbucket, &lt;&lt;-'RUBY'.strip)</div><div class='del'>-user_name, repo_name = repo_name.split("/")</div><div class='del'>-repo_name ||= user_name</div><div class='del'>-"https://#{user_name}@bitbucket.org/#{user_name}/#{repo_name}.git"</div><div class='del'>-        RUBY</div><div class='del'>-</div><div class='ctx'>         user_name, repo_name = repo_name.split("/")</div><div class='ctx'>         repo_name ||= user_name</div><div class='ctx'>         "https://#{user_name}@bitbucket.org/#{user_name}/#{repo_name}.git"</div><div class='hunk'>@@ -360,12 +324,10 @@ repo_name ||= user_name</div><div class='ctx'>       if name.is_a?(Symbol)</div><div class='ctx'>         raise GemfileError, %(You need to specify gem names as Strings. Use 'gem "#{name}"' instead)</div><div class='ctx'>       end</div><div class='del'>-      if name =~ /\s/</div><div class='add'>+      if /\s/.match?(name)</div><div class='ctx'>         raise GemfileError, %('#{name}' is not a valid gem name because it contains whitespace)</div><div class='ctx'>       end</div><div class='del'>-      if name.empty?</div><div class='del'>-        raise GemfileError, %(an empty gem name is not valid)</div><div class='del'>-      end</div><div class='add'>+      raise GemfileError, %(an empty gem name is not valid) if name.empty?</div><div class='ctx'> </div><div class='ctx'>       normalize_hash(opts)</div><div class='ctx'> </div><div class='hunk'>@@ -400,7 +362,11 @@ repo_name ||= user_name</div><div class='ctx'> </div><div class='ctx'>       git_name = (git_names &amp; opts.keys).last</div><div class='ctx'>       if @git_sources[git_name]</div><div class='del'>-        opts["git"] = @git_sources[git_name].call(opts[git_name])</div><div class='add'>+        git_opts = @git_sources[git_name].call(opts[git_name])</div><div class='add'>+        git_opts = { "git" =&gt; git_opts } if git_opts.is_a?(String)</div><div class='add'>+        opts.merge!(git_opts) do |key, _gemfile_value, _git_source_value|</div><div class='add'>+          raise GemfileError, %(The :#{key} option can't be used with `#{git_name}: #{opts[git_name].inspect}`)</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       %w[git path].each do |type|</div><div class='hunk'>@@ -443,10 +409,10 @@ repo_name ||= user_name</div><div class='ctx'>       message = String.new</div><div class='ctx'>       message &lt;&lt; "You passed #{invalid_keys.map {|k| ":" + k }.join(", ")} "</div><div class='ctx'>       message &lt;&lt; if invalid_keys.size &gt; 1</div><div class='del'>-                   "as options for #{command}, but they are invalid."</div><div class='del'>-                 else</div><div class='del'>-                   "as an option for #{command}, but it is invalid."</div><div class='del'>-                 end</div><div class='add'>+        "as options for #{command}, but they are invalid."</div><div class='add'>+      else</div><div class='add'>+        "as an option for #{command}, but it is invalid."</div><div class='add'>+      end</div><div class='ctx'> </div><div class='ctx'>       message &lt;&lt; " Valid options are: #{valid_keys.join(", ")}."</div><div class='ctx'>       message &lt;&lt; " You may be able to resolve this by upgrading Bundler to the newest version."</div><div class='hunk'>@@ -467,45 +433,49 @@ repo_name ||= user_name</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def check_primary_source_safety(source_list)</div><div class='del'>-      return if source_list.rubygems_primary_remotes.empty? &amp;&amp; source_list.global_rubygems_source.nil?</div><div class='add'>+    def check_path_source_safety</div><div class='add'>+      return if @sources.global_path_source.nil?</div><div class='add'>+</div><div class='add'>+      msg = "You can no longer specify a path source by itself. Instead, \n" \</div><div class='add'>+              "either use the :path option on a gem, or specify the gems that \n" \</div><div class='add'>+              "bundler should find in the path source by passing a block to \n" \</div><div class='add'>+              "the path method, like: \n\n" \</div><div class='add'>+              "    path 'dir/containing/rails' do\n" \</div><div class='add'>+              "      gem 'rails'\n" \</div><div class='add'>+              "    end\n\n"</div><div class='add'>+</div><div class='add'>+      SharedHelpers.major_deprecation(2, msg.strip)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      if Bundler.feature_flag.disable_multisource?</div><div class='del'>-        msg = "This Gemfile contains multiple primary sources. " \</div><div class='add'>+    def check_rubygems_source_safety</div><div class='add'>+      if @sources.implicit_global_source?</div><div class='add'>+        implicit_global_source_warning</div><div class='add'>+      elsif @sources.aggregate_global_source?</div><div class='add'>+        multiple_global_source_warning</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def implicit_global_source_warning</div><div class='add'>+      Bundler::SharedHelpers.major_deprecation 2, "This Gemfile does not include an explicit global source. " \</div><div class='add'>+        "Not using an explicit global source may result in a different lockfile being generated depending on " \</div><div class='add'>+        "the gems you have installed locally before bundler is run. " \</div><div class='add'>+        "Instead, define a global source in your Gemfile like this: source \"https://rubygems.org\"."</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def multiple_global_source_warning</div><div class='add'>+      if Bundler.feature_flag.bundler_3_mode?</div><div class='add'>+        msg = "This Gemfile contains multiple global sources. " \</div><div class='ctx'>           "Each source after the first must include a block to indicate which gems " \</div><div class='ctx'>           "should come from that source"</div><div class='del'>-        unless Bundler.feature_flag.bundler_2_mode?</div><div class='del'>-          msg += ". To downgrade this error to a warning, run " \</div><div class='del'>-            "`bundle config --delete disable_multisource`"</div><div class='del'>-        end</div><div class='ctx'>         raise GemfileEvalError, msg</div><div class='ctx'>       else</div><div class='del'>-        Bundler::SharedHelpers.major_deprecation 2, "Your Gemfile contains multiple primary sources. " \</div><div class='add'>+        Bundler::SharedHelpers.major_deprecation 2, "Your Gemfile contains multiple global sources. " \</div><div class='ctx'>           "Using `source` more than once without a block is a security risk, and " \</div><div class='ctx'>           "may result in installing unexpected gems. To resolve this warning, use " \</div><div class='del'>-          "a block to indicate which gems should come from the secondary source. " \</div><div class='del'>-          "To upgrade this warning to an error, run `bundle config " \</div><div class='del'>-          "disable_multisource true`."</div><div class='add'>+          "a block to indicate which gems should come from the secondary source."</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def warn_deprecated_git_source(name, replacement, additional_message = nil)</div><div class='del'>-      # TODO: 2.0 remove deprecation</div><div class='del'>-      additional_message &amp;&amp;= " #{additional_message}"</div><div class='del'>-      replacement = if replacement.count("\n").zero?</div><div class='del'>-        "{|repo_name| #{replacement} }"</div><div class='del'>-      else</div><div class='del'>-        "do |repo_name|\n#{replacement.to_s.gsub(/^/, "      ")}\n    end"</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      Bundler::SharedHelpers.major_deprecation 2, &lt;&lt;-EOS</div><div class='del'>-The :#{name} git source is deprecated, and will be removed in Bundler 2.0.#{additional_message} Add this code to the top of your Gemfile to ensure it continues to work:</div><div class='del'>-</div><div class='del'>-    git_source(:#{name}) #{replacement}</div><div class='del'>-</div><div class='del'>-      EOS</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     class DSLError &lt; GemfileError</div><div class='ctx'>       # @return [String] the description that should be presented to the user.</div><div class='ctx'>       #</div><div class='hunk'>@@ -540,9 +510,7 @@ The :#{name} git source is deprecated, and will be removed in Bundler 2.0.#{addi</div><div class='ctx'>       #         be raised.</div><div class='ctx'>       #</div><div class='ctx'>       def contents</div><div class='del'>-        @contents ||= begin</div><div class='del'>-          dsl_path &amp;&amp; File.exist?(dsl_path) &amp;&amp; File.read(dsl_path)</div><div class='del'>-        end</div><div class='add'>+        @contents ||= dsl_path &amp;&amp; File.exist?(dsl_path) &amp;&amp; File.read(dsl_path)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # The message of the exception reports the content of podspec for the</div><div class='hunk'>@@ -595,13 +563,13 @@ The :#{name} git source is deprecated, and will be removed in Bundler 2.0.#{addi</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       def parse_line_number_from_description</div><div class='ctx'>         description = self.description</div><div class='ctx'>         if dsl_path &amp;&amp; description =~ /((#{Regexp.quote File.expand_path(dsl_path)}|#{Regexp.quote dsl_path.to_s}):\d+)/</div><div class='ctx'>           trace_line = Regexp.last_match[1]</div><div class='del'>-          description = description.sub(/#{Regexp.quote trace_line}:\s*/, "").sub("\n", " - ")</div><div class='add'>+          description = description.sub(/\n.*\n(\.\.\.)? *\^~+$/, "").sub(/#{Regexp.quote trace_line}:\s*/, "").sub("\n", " - ")</div><div class='ctx'>         end</div><div class='ctx'>         [trace_line, description]</div><div class='ctx'>       end</div><div class='head'>diff --git a/lib/bundler/endpoint_specification.rb b/lib/bundler/endpoint_specification.rb<br/>index 9a00b64e0e..863544b1f9 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/endpoint_specification.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/endpoint_specification.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/endpoint_specification.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/endpoint_specification.rb</a></div><div class='hunk'>@@ -3,17 +3,17 @@</div><div class='ctx'> module Bundler</div><div class='ctx'>   # used for Creating Specifications from the Gemcutter Endpoint</div><div class='ctx'>   class EndpointSpecification &lt; Gem::Specification</div><div class='del'>-    ILLFORMED_MESSAGE = 'Ill-formed requirement ["#&lt;YAML::Syck::DefaultKey'.freeze</div><div class='del'>-    include MatchPlatform</div><div class='add'>+    include MatchRemoteMetadata</div><div class='ctx'> </div><div class='del'>-    attr_reader :name, :version, :platform, :required_rubygems_version, :required_ruby_version, :checksum</div><div class='add'>+    attr_reader :name, :version, :platform, :checksum</div><div class='ctx'>     attr_accessor :source, :remote, :dependencies</div><div class='ctx'> </div><div class='del'>-    def initialize(name, version, platform, dependencies, metadata = nil)</div><div class='add'>+    def initialize(name, version, platform, spec_fetcher, dependencies, metadata = nil)</div><div class='ctx'>       super()</div><div class='ctx'>       @name         = name</div><div class='ctx'>       @version      = Gem::Version.create version</div><div class='del'>-      @platform     = platform</div><div class='add'>+      @platform     = Gem::Platform.new(platform)</div><div class='add'>+      @spec_fetcher = spec_fetcher</div><div class='ctx'>       @dependencies = dependencies.map {|dep, reqs| build_dependency(dep, reqs) }</div><div class='ctx'> </div><div class='ctx'>       @loaded_from          = nil</div><div class='hunk'>@@ -104,14 +104,23 @@ module Bundler</div><div class='ctx'>       @remote_specification = spec</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def _remote_specification</div><div class='add'>+      @_remote_specification ||= @spec_fetcher.fetch_spec([@name, @version, @platform])</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     def local_specification_path</div><div class='ctx'>       "#{base_dir}/specifications/#{full_name}.gemspec"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def parse_metadata(data)</div><div class='del'>-      return unless data</div><div class='add'>+      unless data</div><div class='add'>+        @required_ruby_version = nil</div><div class='add'>+        @required_rubygems_version = nil</div><div class='add'>+        return</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       data.each do |k, v|</div><div class='ctx'>         next unless v</div><div class='ctx'>         case k.to_s</div><div class='hunk'>@@ -129,13 +138,6 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def build_dependency(name, requirements)</div><div class='ctx'>       Gem::Dependency.new(name, requirements)</div><div class='del'>-    rescue ArgumentError =&gt; e</div><div class='del'>-      raise unless e.message.include?(ILLFORMED_MESSAGE)</div><div class='del'>-      puts # we shouldn't print the error message on the "fetching info" status line</div><div class='del'>-      raise GemspecError,</div><div class='del'>-        "Unfortunately, the gem #{name} (#{version}) has an invalid " \</div><div class='del'>-        "gemspec.\nPlease ask the gem author to yank the bad version to fix " \</div><div class='del'>-        "this issue. For more information, see http://bit.ly/syck-defaultkey."</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/env.rb b/lib/bundler/env.rb<br/>index 51738139fa..7b1152930e 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/env.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/env.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/env.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/env.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/rubygems_integration"</div><div class='del'>-require "bundler/source/git/git_proxy"</div><div class='add'>+require_relative "rubygems_integration"</div><div class='add'>+require_relative "source/git/git_proxy"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class Env</div><div class='hunk'>@@ -69,19 +69,13 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def self.ruby_version</div><div class='del'>-      str = String.new("#{RUBY_VERSION}")</div><div class='del'>-      if RUBY_VERSION &lt; "1.9"</div><div class='del'>-        str &lt;&lt; " (#{RUBY_RELEASE_DATE}"</div><div class='del'>-        str &lt;&lt; " patchlevel #{RUBY_PATCHLEVEL}" if defined? RUBY_PATCHLEVEL</div><div class='del'>-        str &lt;&lt; ") [#{RUBY_PLATFORM}]"</div><div class='del'>-      else</div><div class='del'>-        str &lt;&lt; "p#{RUBY_PATCHLEVEL}" if defined? RUBY_PATCHLEVEL</div><div class='del'>-        str &lt;&lt; " (#{RUBY_RELEASE_DATE} revision #{RUBY_REVISION}) [#{RUBY_PLATFORM}]"</div><div class='del'>-      end</div><div class='add'>+      str = String.new(RUBY_VERSION)</div><div class='add'>+      str &lt;&lt; "p#{RUBY_PATCHLEVEL}" if defined? RUBY_PATCHLEVEL</div><div class='add'>+      str &lt;&lt; " (#{RUBY_RELEASE_DATE} revision #{RUBY_REVISION}) [#{Gem::Platform.local}]"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def self.git_version</div><div class='del'>-      Bundler::Source::Git::GitProxy.new(nil, nil, nil).full_version</div><div class='add'>+      Bundler::Source::Git::GitProxy.new(nil, nil).full_version</div><div class='ctx'>     rescue Bundler::Source::Git::GitNotInstalledError</div><div class='ctx'>       "not installed"</div><div class='ctx'>     end</div><div class='hunk'>@@ -106,11 +100,12 @@ module Bundler</div><div class='ctx'>       out &lt;&lt; ["  Full Path", Gem.ruby]</div><div class='ctx'>       out &lt;&lt; ["  Config Dir", Pathname.new(Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE).dirname]</div><div class='ctx'>       out &lt;&lt; ["RubyGems", Gem::VERSION]</div><div class='del'>-      out &lt;&lt; ["  Gem Home", ENV.fetch("GEM_HOME") { Gem.dir }]</div><div class='del'>-      out &lt;&lt; ["  Gem Path", ENV.fetch("GEM_PATH") { Gem.path.join(File::PATH_SEPARATOR) }]</div><div class='add'>+      out &lt;&lt; ["  Gem Home", Gem.dir]</div><div class='add'>+      out &lt;&lt; ["  Gem Path", Gem.path.join(File::PATH_SEPARATOR)]</div><div class='add'>+      out &lt;&lt; ["  User Home", Gem.user_home]</div><div class='ctx'>       out &lt;&lt; ["  User Path", Gem.user_dir]</div><div class='ctx'>       out &lt;&lt; ["  Bin Dir", Gem.bindir]</div><div class='del'>-      if defined?(OpenSSL)</div><div class='add'>+      if defined?(OpenSSL::SSL)</div><div class='ctx'>         out &lt;&lt; ["OpenSSL"]</div><div class='ctx'>         out &lt;&lt; ["  Compiled", OpenSSL::OPENSSL_VERSION] if defined?(OpenSSL::OPENSSL_VERSION)</div><div class='ctx'>         out &lt;&lt; ["  Loaded", OpenSSL::OPENSSL_LIBRARY_VERSION] if defined?(OpenSSL::OPENSSL_LIBRARY_VERSION)</div><div class='hunk'>@@ -127,7 +122,7 @@ module Bundler</div><div class='ctx'>         specs = Bundler.rubygems.find_name(name)</div><div class='ctx'>         out &lt;&lt; ["  #{name}", "(#{specs.map(&amp;:version).join(",")})"] unless specs.empty?</div><div class='ctx'>       end</div><div class='del'>-      if (exe = caller.last.split(":").first) &amp;&amp; exe =~ %r{(exe|bin)/bundler?\z}</div><div class='add'>+      if (exe = caller.last.split(":").first)&amp;.match? %r{(exe|bin)/bundler?\z}</div><div class='ctx'>         shebang = File.read(exe).lines.first</div><div class='ctx'>         shebang.sub!(/^#!\s*/, "")</div><div class='ctx'>         unless shebang.start_with?(Gem.ruby, "/usr/bin/env ruby")</div><div class='head'>diff --git a/lib/bundler/environment_preserver.rb b/lib/bundler/environment_preserver.rb<br/>index af7c1ef0a4..57013f5d50 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/environment_preserver.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/environment_preserver.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/environment_preserver.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/environment_preserver.rb</a></div><div class='hunk'>@@ -2,12 +2,12 @@</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class EnvironmentPreserver</div><div class='del'>-    INTENTIONALLY_NIL = "BUNDLER_ENVIRONMENT_PRESERVER_INTENTIONALLY_NIL".freeze</div><div class='add'>+    INTENTIONALLY_NIL = "BUNDLER_ENVIRONMENT_PRESERVER_INTENTIONALLY_NIL"</div><div class='ctx'>     BUNDLER_KEYS = %w[</div><div class='ctx'>       BUNDLE_BIN_PATH</div><div class='ctx'>       BUNDLE_GEMFILE</div><div class='del'>-      BUNDLER_ORIG_MANPATH</div><div class='ctx'>       BUNDLER_VERSION</div><div class='add'>+      BUNDLER_SETUP</div><div class='ctx'>       GEM_HOME</div><div class='ctx'>       GEM_PATH</div><div class='ctx'>       MANPATH</div><div class='hunk'>@@ -16,16 +16,43 @@ module Bundler</div><div class='ctx'>       RUBYLIB</div><div class='ctx'>       RUBYOPT</div><div class='ctx'>     ].map(&amp;:freeze).freeze</div><div class='del'>-    BUNDLER_PREFIX = "BUNDLER_ORIG_".freeze</div><div class='add'>+    BUNDLER_PREFIX = "BUNDLER_ORIG_"</div><div class='ctx'> </div><div class='del'>-    # @param env [ENV]</div><div class='add'>+    def self.from_env</div><div class='add'>+      new(env_to_hash(ENV), BUNDLER_KEYS)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.env_to_hash(env)</div><div class='add'>+      to_hash = env.to_hash</div><div class='add'>+      return to_hash unless Gem.win_platform?</div><div class='add'>+</div><div class='add'>+      to_hash.each_with_object({}) {|(k,v), a| a[k.upcase] = v }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # @param env [Hash]</div><div class='ctx'>     # @param keys [Array&lt;String&gt;]</div><div class='ctx'>     def initialize(env, keys)</div><div class='del'>-      @original = env.to_hash</div><div class='add'>+      @original = env</div><div class='ctx'>       @keys = keys</div><div class='ctx'>       @prefix = BUNDLER_PREFIX</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Replaces `ENV` with the bundler environment variables backed up</div><div class='add'>+    def replace_with_backup</div><div class='add'>+      unless Gem.win_platform?</div><div class='add'>+        ENV.replace(backup)</div><div class='add'>+        return</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Fallback logic for Windows below to workaround</div><div class='add'>+      # https://bugs.ruby-lang.org/issues/16798. Can be dropped once all</div><div class='add'>+      # supported rubies include the fix for that.</div><div class='add'>+</div><div class='add'>+      ENV.clear</div><div class='add'>+</div><div class='add'>+      backup.each {|k, v| ENV[k] = v }</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # @return [Hash]</div><div class='ctx'>     def backup</div><div class='ctx'>       env = @original.clone</div><div class='head'>diff --git a/lib/bundler/errors.rb b/lib/bundler/errors.rb<br/>index e471bce0b6..5839fc6a73 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/errors.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/errors.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/errors.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/errors.rb</a></div><div class='hunk'>@@ -21,16 +21,7 @@ module Bundler</div><div class='ctx'>   class InstallError &lt; BundlerError; status_code(5); end</div><div class='ctx'> </div><div class='ctx'>   # Internal error, should be rescued</div><div class='del'>-  class VersionConflict &lt; BundlerError</div><div class='del'>-    attr_reader :conflicts</div><div class='del'>-</div><div class='del'>-    def initialize(conflicts, msg = nil)</div><div class='del'>-      super(msg)</div><div class='del'>-      @conflicts = conflicts</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    status_code(6)</div><div class='del'>-  end</div><div class='add'>+  class SolveFailure &lt; BundlerError; status_code(6); end</div><div class='ctx'> </div><div class='ctx'>   class GemNotFound &lt; BundlerError; status_code(7); end</div><div class='ctx'>   class InstallHookError &lt; BundlerError; status_code(8); end</div><div class='hunk'>@@ -41,21 +32,23 @@ module Bundler</div><div class='ctx'>   class GemspecError &lt; BundlerError; status_code(14); end</div><div class='ctx'>   class InvalidOption &lt; BundlerError; status_code(15); end</div><div class='ctx'>   class ProductionError &lt; BundlerError; status_code(16); end</div><div class='add'>+</div><div class='ctx'>   class HTTPError &lt; BundlerError</div><div class='ctx'>     status_code(17)</div><div class='ctx'>     def filter_uri(uri)</div><div class='ctx'>       URICredentialsFilter.credential_filtered_uri(uri)</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='add'>+</div><div class='ctx'>   class RubyVersionMismatch &lt; BundlerError; status_code(18); end</div><div class='ctx'>   class SecurityError &lt; BundlerError; status_code(19); end</div><div class='ctx'>   class LockfileError &lt; BundlerError; status_code(20); end</div><div class='ctx'>   class CyclicDependencyError &lt; BundlerError; status_code(21); end</div><div class='ctx'>   class GemfileLockNotFound &lt; BundlerError; status_code(22); end</div><div class='ctx'>   class PluginError &lt; BundlerError; status_code(29); end</div><div class='del'>-  class SudoNotPermittedError &lt; BundlerError; status_code(30); end</div><div class='ctx'>   class ThreadCreationError &lt; BundlerError; status_code(33); end</div><div class='ctx'>   class APIResponseMismatchError &lt; BundlerError; status_code(34); end</div><div class='add'>+  class APIResponseInvalidDependenciesError &lt; BundlerError; status_code(35); end</div><div class='ctx'>   class GemfileEvalError &lt; GemfileError; end</div><div class='ctx'>   class MarshalError &lt; StandardError; end</div><div class='ctx'> </div><div class='hunk'>@@ -74,10 +67,22 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def permission_type</div><div class='add'>+      case @permission_type</div><div class='add'>+      when :create</div><div class='add'>+        "executable permissions for all parent directories and write permissions for `#{parent_folder}`"</div><div class='add'>+      else</div><div class='add'>+        "#{@permission_type} permissions for that path"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parent_folder</div><div class='add'>+      File.dirname(@path)</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def message</div><div class='ctx'>       "There was an error while trying to #{action} `#{@path}`. " \</div><div class='del'>-      "It is likely that you need to grant #{@permission_type} permissions " \</div><div class='del'>-      "for that path."</div><div class='add'>+      "It is likely that you need to grant #{permission_type}."</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     status_code(23)</div><div class='hunk'>@@ -121,7 +126,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>   class VirtualProtocolError &lt; BundlerError</div><div class='ctx'>     def message</div><div class='del'>-      "There was an error relating to virtualization and file access." \</div><div class='add'>+      "There was an error relating to virtualization and file access. " \</div><div class='ctx'>       "It is likely that you need to grant access to or mount some file system correctly."</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -155,4 +160,16 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     status_code(32)</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  class DirectoryRemovalError &lt; BundlerError</div><div class='add'>+    def initialize(orig_exception, msg)</div><div class='add'>+      full_message = "#{msg}.\n" \</div><div class='add'>+                     "The underlying error was #{orig_exception.class}: #{orig_exception.message}, with backtrace:\n" \</div><div class='add'>+                     "  #{orig_exception.backtrace.join("\n  ")}\n\n" \</div><div class='add'>+                     "Bundler Error Backtrace:"</div><div class='add'>+      super(full_message)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    status_code(36)</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/feature_flag.rb b/lib/bundler/feature_flag.rb<br/>index 249170c4b2..ab2189f7f0 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/feature_flag.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/feature_flag.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/feature_flag.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/feature_flag.rb</a></div><div class='hunk'>@@ -19,7 +19,7 @@ module Bundler</div><div class='ctx'>     def self.settings_method(name, key, &amp;default)</div><div class='ctx'>       define_method(name) do</div><div class='ctx'>         value = Bundler.settings[key]</div><div class='del'>-        value = instance_eval(&amp;default) if value.nil? &amp;&amp; !default.nil?</div><div class='add'>+        value = instance_eval(&amp;default) if value.nil?</div><div class='ctx'>         value</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -27,40 +27,19 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     (1..10).each {|v| define_method("bundler_#{v}_mode?") { major_version &gt;= v } }</div><div class='ctx'> </div><div class='del'>-    settings_flag(:allow_bundler_dependency_conflicts) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:allow_offline_install) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:auto_clean_without_path) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:auto_config_jobs) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:cache_all) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:cache_command_is_package) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:console_command) { !bundler_2_mode? }</div><div class='del'>-    settings_flag(:default_install_uses_path) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:deployment_means_frozen) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:disable_multisource) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:error_on_stderr) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:forget_cli_options) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:global_path_appends_ruby_scope) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:global_gem_cache) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:init_gems_rb) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:list_command) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:lockfile_uses_separate_rubygems_sources) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:only_update_to_newer_versions) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:path_relative_to_cwd) { bundler_2_mode? }</div><div class='add'>+    settings_flag(:allow_offline_install) { bundler_3_mode? }</div><div class='add'>+    settings_flag(:auto_clean_without_path) { bundler_3_mode? }</div><div class='add'>+    settings_flag(:cache_all) { bundler_3_mode? }</div><div class='add'>+    settings_flag(:default_install_uses_path) { bundler_3_mode? }</div><div class='add'>+    settings_flag(:forget_cli_options) { bundler_3_mode? }</div><div class='add'>+    settings_flag(:global_gem_cache) { bundler_3_mode? }</div><div class='add'>+    settings_flag(:path_relative_to_cwd) { bundler_3_mode? }</div><div class='ctx'>     settings_flag(:plugins) { @bundler_version &gt;= Gem::Version.new("1.14") }</div><div class='del'>-    settings_flag(:prefer_gems_rb) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:print_only_version_number) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:setup_makes_kernel_gem_public) { !bundler_2_mode? }</div><div class='del'>-    settings_flag(:skip_default_git_sources) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:specific_platform) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:suppress_install_using_messages) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:unlock_source_unlocks_spec) { !bundler_2_mode? }</div><div class='del'>-    settings_flag(:update_requires_all_flag) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:use_gem_version_promoter_for_major_updates) { bundler_2_mode? }</div><div class='del'>-    settings_flag(:viz_command) { !bundler_2_mode? }</div><div class='add'>+    settings_flag(:print_only_version_number) { bundler_3_mode? }</div><div class='add'>+    settings_flag(:setup_makes_kernel_gem_public) { !bundler_3_mode? }</div><div class='add'>+    settings_flag(:update_requires_all_flag) { bundler_4_mode? }</div><div class='ctx'> </div><div class='del'>-    settings_option(:default_cli_command) { bundler_2_mode? ? :cli_help : :install }</div><div class='del'>-</div><div class='del'>-    settings_method(:github_https?, "github.https") { bundler_2_mode? }</div><div class='add'>+    settings_option(:default_cli_command) { bundler_3_mode? ? :cli_help : :install }</div><div class='ctx'> </div><div class='ctx'>     def initialize(bundler_version)</div><div class='ctx'>       @bundler_version = Gem::Version.create(bundler_version)</div><div class='head'>diff --git a/lib/bundler/fetcher.rb b/lib/bundler/fetcher.rb<br/>index 4dd42e42ff..2119799f68 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/fetcher.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/fetcher.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/fetcher.rb</a></div><div class='hunk'>@@ -1,22 +1,26 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/vendored_persistent"</div><div class='add'>+require_relative "vendored_persistent"</div><div class='ctx'> require "cgi"</div><div class='ctx'> require "securerandom"</div><div class='ctx'> require "zlib"</div><div class='add'>+require "rubygems/request"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   # Handles all the fetching with the rubygems server</div><div class='ctx'>   class Fetcher</div><div class='del'>-    autoload :CompactIndex, "bundler/fetcher/compact_index"</div><div class='del'>-    autoload :Downloader, "bundler/fetcher/downloader"</div><div class='del'>-    autoload :Dependency, "bundler/fetcher/dependency"</div><div class='del'>-    autoload :Index, "bundler/fetcher/index"</div><div class='add'>+    autoload :CompactIndex, File.expand_path("fetcher/compact_index", __dir__)</div><div class='add'>+    autoload :Downloader, File.expand_path("fetcher/downloader", __dir__)</div><div class='add'>+    autoload :Dependency, File.expand_path("fetcher/dependency", __dir__)</div><div class='add'>+    autoload :Index, File.expand_path("fetcher/index", __dir__)</div><div class='ctx'> </div><div class='ctx'>     # This error is raised when it looks like the network is down</div><div class='ctx'>     class NetworkDownError &lt; HTTPError; end</div><div class='add'>+    # This error is raised if we should rate limit our requests to the API</div><div class='add'>+    class TooManyRequestsError &lt; HTTPError; end</div><div class='ctx'>     # This error is raised if the API returns a 413 (only printed in verbose)</div><div class='ctx'>     class FallbackError &lt; HTTPError; end</div><div class='add'>+</div><div class='ctx'>     # This is the error raised if OpenSSL fails the cert verification</div><div class='ctx'>     class CertificateFailureError &lt; HTTPError</div><div class='ctx'>       def initialize(remote_uri)</div><div class='hunk'>@@ -25,28 +29,29 @@ module Bundler</div><div class='ctx'>           " is a chance you are experiencing a man-in-the-middle attack, but" \</div><div class='ctx'>           " most likely your system doesn't have the CA certificates needed" \</div><div class='ctx'>           " for verification. For information about OpenSSL certificates, see" \</div><div class='del'>-          " http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile" \</div><div class='del'>-          " sources and change 'https' to 'http'."</div><div class='add'>+          " https://railsapps.github.io/openssl-certificate-verify-failed.html."</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='add'>+</div><div class='ctx'>     # This is the error raised when a source is HTTPS and OpenSSL didn't load</div><div class='ctx'>     class SSLError &lt; HTTPError</div><div class='ctx'>       def initialize(msg = nil)</div><div class='ctx'>         super msg || "Could not load OpenSSL.\n" \</div><div class='del'>-            "You must recompile Ruby with OpenSSL support or change the sources in your " \</div><div class='del'>-            "Gemfile from 'https' to 'http'. Instructions for compiling with OpenSSL " \</div><div class='del'>-            "using RVM are available at rvm.io/packages/openssl."</div><div class='add'>+            "You must recompile Ruby with OpenSSL support."</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='add'>+</div><div class='ctx'>     # This error is raised if HTTP authentication is required, but not provided.</div><div class='ctx'>     class AuthenticationRequiredError &lt; HTTPError</div><div class='ctx'>       def initialize(remote_uri)</div><div class='ctx'>         remote_uri = filter_uri(remote_uri)</div><div class='ctx'>         super "Authentication is required for #{remote_uri}.\n" \</div><div class='ctx'>           "Please supply credentials for this source. You can do this by running:\n" \</div><div class='del'>-          " bundle config #{remote_uri} username:password"</div><div class='add'>+          "`bundle config set --global #{remote_uri} username:password`\n" \</div><div class='add'>+          "or by storing the credentials in the `#{Settings.key_for(remote_uri)}` environment variable"</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='add'>+</div><div class='ctx'>     # This error is raised if HTTP authentication is provided, but incorrect.</div><div class='ctx'>     class BadAuthenticationError &lt; HTTPError</div><div class='ctx'>       def initialize(remote_uri)</div><div class='hunk'>@@ -56,6 +61,16 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # This error is raised if HTTP authentication is correct, but lacks</div><div class='add'>+    # necessary permissions.</div><div class='add'>+    class AuthenticationForbiddenError &lt; HTTPError</div><div class='add'>+      def initialize(remote_uri)</div><div class='add'>+        remote_uri = filter_uri(remote_uri)</div><div class='add'>+        super "Access token could not be authenticated for #{remote_uri}.\n" \</div><div class='add'>+          "Make sure it's valid and has the necessary scopes configured."</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # Exceptions classes that should bypass retry attempts. If your password didn't work the</div><div class='ctx'>     # first time, it's not going to the third time.</div><div class='ctx'>     NET_ERRORS = [:HTTPBadGateway, :HTTPBadRequest, :HTTPFailedDependency,</div><div class='hunk'>@@ -65,9 +80,9 @@ module Bundler</div><div class='ctx'>                   :HTTPRequestURITooLong, :HTTPUnauthorized, :HTTPUnprocessableEntity,</div><div class='ctx'>                   :HTTPUnsupportedMediaType, :HTTPVersionNotSupported].freeze</div><div class='ctx'>     FAIL_ERRORS = begin</div><div class='del'>-      fail_errors = [AuthenticationRequiredError, BadAuthenticationError, FallbackError]</div><div class='del'>-      fail_errors &lt;&lt; Gem::Requirement::BadRequirementError if defined?(Gem::Requirement::BadRequirementError)</div><div class='del'>-      fail_errors.concat(NET_ERRORS.map {|e| SharedHelpers.const_get_safely(e, Net) }.compact)</div><div class='add'>+      fail_errors = [AuthenticationRequiredError, BadAuthenticationError, AuthenticationForbiddenError, FallbackError]</div><div class='add'>+      fail_errors &lt;&lt; Gem::Requirement::BadRequirementError</div><div class='add'>+      fail_errors.concat(NET_ERRORS.map {|e| Net.const_get(e) })</div><div class='ctx'>     end.freeze</div><div class='ctx'> </div><div class='ctx'>     class &lt;&lt; self</div><div class='hunk'>@@ -94,13 +109,14 @@ module Bundler</div><div class='ctx'>       spec -= [nil, "ruby", ""]</div><div class='ctx'>       spec_file_name = "#{spec.join "-"}.gemspec"</div><div class='ctx'> </div><div class='del'>-      uri = URI.parse("#{remote_uri}#{Gem::MARSHAL_SPEC_DIR}#{spec_file_name}.rz")</div><div class='add'>+      uri = Bundler::URI.parse("#{remote_uri}#{Gem::MARSHAL_SPEC_DIR}#{spec_file_name}.rz")</div><div class='ctx'>       if uri.scheme == "file"</div><div class='del'>-        Bundler.load_marshal Bundler.rubygems.inflate(Gem.read_binary(uri.path))</div><div class='add'>+        path = Bundler.rubygems.correct_for_windows_path(uri.path)</div><div class='add'>+        Bundler.safe_load_marshal Bundler.rubygems.inflate(Gem.read_binary(path))</div><div class='ctx'>       elsif cached_spec_path = gemspec_cached_path(spec_file_name)</div><div class='ctx'>         Bundler.load_gemspec(cached_spec_path)</div><div class='ctx'>       else</div><div class='del'>-        Bundler.load_marshal Bundler.rubygems.inflate(downloader.fetch(uri).body)</div><div class='add'>+        Bundler.safe_load_marshal Bundler.rubygems.inflate(downloader.fetch(uri).body)</div><div class='ctx'>       end</div><div class='ctx'>     rescue MarshalError</div><div class='ctx'>       raise HTTPError, "Gemspec #{spec} contained invalid data.\n" \</div><div class='hunk'>@@ -116,7 +132,6 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     # return the specs in the bundler format as an index</div><div class='ctx'>     def specs(gem_names, source)</div><div class='del'>-      old = Bundler.rubygems.sources</div><div class='ctx'>       index = Bundler::Index.new</div><div class='ctx'> </div><div class='ctx'>       if Bundler::Fetcher.disable_endpoint</div><div class='hunk'>@@ -124,18 +139,15 @@ module Bundler</div><div class='ctx'>         specs = fetchers.last.specs(gem_names)</div><div class='ctx'>       else</div><div class='ctx'>         specs = []</div><div class='del'>-        fetchers.shift until fetchers.first.available? || fetchers.empty?</div><div class='del'>-        fetchers.dup.each do |f|</div><div class='del'>-          break unless f.api_fetcher? &amp;&amp; !gem_names || !specs = f.specs(gem_names)</div><div class='del'>-          fetchers.delete(f)</div><div class='add'>+        @fetchers = fetchers.drop_while do |f|</div><div class='add'>+          !f.available? || (f.api_fetcher? &amp;&amp; !gem_names) || !specs = f.specs(gem_names)</div><div class='ctx'>         end</div><div class='ctx'>         @use_api = false if fetchers.none?(&amp;:api_fetcher?)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       specs.each do |name, version, platform, dependencies, metadata|</div><div class='del'>-        next if name == "bundler"</div><div class='ctx'>         spec = if dependencies</div><div class='del'>-          EndpointSpecification.new(name, version, platform, dependencies, metadata)</div><div class='add'>+          EndpointSpecification.new(name, version, platform, self, dependencies, metadata)</div><div class='ctx'>         else</div><div class='ctx'>           RemoteSpecification.new(name, version, platform, self)</div><div class='ctx'>         end</div><div class='hunk'>@@ -148,8 +160,6 @@ module Bundler</div><div class='ctx'>     rescue CertificateFailureError</div><div class='ctx'>       Bundler.ui.info "" if gem_names &amp;&amp; use_api # newline after dots</div><div class='ctx'>       raise</div><div class='del'>-    ensure</div><div class='del'>-      Bundler.rubygems.sources = old</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def use_api</div><div class='hunk'>@@ -212,7 +222,7 @@ module Bundler</div><div class='ctx'>       "#&lt;#{self.class}:0x#{object_id} uri=#{uri}&gt;"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     FETCHERS = [CompactIndex, Dependency, Index].freeze</div><div class='ctx'> </div><div class='hunk'>@@ -225,8 +235,10 @@ module Bundler</div><div class='ctx'>         "BUILDBOX" =&gt; "buildbox",</div><div class='ctx'>         "GO_SERVER_URL" =&gt; "go",</div><div class='ctx'>         "SNAP_CI" =&gt; "snap",</div><div class='add'>+        "GITLAB_CI" =&gt; "gitlab",</div><div class='add'>+        "GITHUB_ACTIONS" =&gt; "github",</div><div class='ctx'>         "CI_NAME" =&gt; ENV["CI_NAME"],</div><div class='del'>-        "CI" =&gt; "ci"</div><div class='add'>+        "CI" =&gt; "ci",</div><div class='ctx'>       }</div><div class='ctx'>       env_cis.find_all {|env, _| ENV[env] }.map {|_, ci| ci }</div><div class='ctx'>     end</div><div class='hunk'>@@ -234,13 +246,13 @@ module Bundler</div><div class='ctx'>     def connection</div><div class='ctx'>       @connection ||= begin</div><div class='ctx'>         needs_ssl = remote_uri.scheme == "https" ||</div><div class='del'>-          Bundler.settings[:ssl_verify_mode] ||</div><div class='del'>-          Bundler.settings[:ssl_client_cert]</div><div class='add'>+                    Bundler.settings[:ssl_verify_mode] ||</div><div class='add'>+                    Bundler.settings[:ssl_client_cert]</div><div class='ctx'>         raise SSLError if needs_ssl &amp;&amp; !defined?(OpenSSL::SSL)</div><div class='ctx'> </div><div class='del'>-        con = PersistentHTTP.new "bundler", :ENV</div><div class='del'>-        if gem_proxy = Bundler.rubygems.configuration[:http_proxy]</div><div class='del'>-          con.proxy = URI.parse(gem_proxy) if gem_proxy != :no_proxy</div><div class='add'>+        con = PersistentHTTP.new :name =&gt; "bundler", :proxy =&gt; :ENV</div><div class='add'>+        if gem_proxy = Gem.configuration[:http_proxy]</div><div class='add'>+          con.proxy = Bundler::URI.parse(gem_proxy) if gem_proxy != :no_proxy</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         if remote_uri.scheme == "https"</div><div class='hunk'>@@ -250,8 +262,8 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         ssl_client_cert = Bundler.settings[:ssl_client_cert] ||</div><div class='del'>-          (Bundler.rubygems.configuration.ssl_client_cert if</div><div class='del'>-            Bundler.rubygems.configuration.respond_to?(:ssl_client_cert))</div><div class='add'>+                          (Gem.configuration.ssl_client_cert if</div><div class='add'>+                            Gem.configuration.respond_to?(:ssl_client_cert))</div><div class='ctx'>         if ssl_client_cert</div><div class='ctx'>           pem = File.read(ssl_client_cert)</div><div class='ctx'>           con.cert = OpenSSL::X509::Certificate.new(pem)</div><div class='hunk'>@@ -269,8 +281,7 @@ module Bundler</div><div class='ctx'>     # cached gem specification path, if one exists</div><div class='ctx'>     def gemspec_cached_path(spec_file_name)</div><div class='ctx'>       paths = Bundler.rubygems.spec_cache_dirs.map {|dir| File.join(dir, spec_file_name) }</div><div class='del'>-      paths = paths.select {|path| File.file? path }</div><div class='del'>-      paths.first</div><div class='add'>+      paths.find {|path| File.file? path }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     HTTP_ERRORS = [</div><div class='hunk'>@@ -283,8 +294,8 @@ module Bundler</div><div class='ctx'>     def bundler_cert_store</div><div class='ctx'>       store = OpenSSL::X509::Store.new</div><div class='ctx'>       ssl_ca_cert = Bundler.settings[:ssl_ca_cert] ||</div><div class='del'>-        (Bundler.rubygems.configuration.ssl_ca_cert if</div><div class='del'>-          Bundler.rubygems.configuration.respond_to?(:ssl_ca_cert))</div><div class='add'>+                    (Gem.configuration.ssl_ca_cert if</div><div class='add'>+                      Gem.configuration.respond_to?(:ssl_ca_cert))</div><div class='ctx'>       if ssl_ca_cert</div><div class='ctx'>         if File.directory? ssl_ca_cert</div><div class='ctx'>           store.add_path ssl_ca_cert</div><div class='hunk'>@@ -293,14 +304,11 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'>       else</div><div class='ctx'>         store.set_default_paths</div><div class='del'>-        certs = File.expand_path("../ssl_certs/*/*.pem", __FILE__)</div><div class='del'>-        Dir.glob(certs).each {|c| store.add_file c }</div><div class='add'>+        Gem::Request.get_cert_files.each {|c| store.add_file c }</div><div class='ctx'>       end</div><div class='ctx'>       store</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='del'>-</div><div class='ctx'>     def remote_uri</div><div class='ctx'>       @remote.uri</div><div class='ctx'>     end</div><div class='head'>diff --git a/lib/bundler/fetcher/base.rb b/lib/bundler/fetcher/base.rb<br/>index 27987f670a..62cc75add8 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/fetcher/base.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher/base.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/fetcher/base.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/fetcher/base.rb</a></div><div class='hunk'>@@ -19,14 +19,12 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def fetch_uri</div><div class='del'>-        @fetch_uri ||= begin</div><div class='del'>-          if remote_uri.host == "rubygems.org"</div><div class='del'>-            uri = remote_uri.dup</div><div class='del'>-            uri.host = "index.rubygems.org"</div><div class='del'>-            uri</div><div class='del'>-          else</div><div class='del'>-            remote_uri</div><div class='del'>-          end</div><div class='add'>+        @fetch_uri ||= if remote_uri.host == "rubygems.org"</div><div class='add'>+          uri = remote_uri.dup</div><div class='add'>+          uri.host = "index.rubygems.org"</div><div class='add'>+          uri</div><div class='add'>+        else</div><div class='add'>+          remote_uri</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -38,7 +36,7 @@ module Bundler</div><div class='ctx'>         false</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       def log_specs(debug_msg)</div><div class='ctx'>         if Bundler.ui.debug?</div><div class='head'>diff --git a/lib/bundler/fetcher/compact_index.rb b/lib/bundler/fetcher/compact_index.rb<br/>index cfc74d642c..8d30dec471 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/fetcher/compact_index.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher/compact_index.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/fetcher/compact_index.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/fetcher/compact_index.rb</a></div><div class='hunk'>@@ -1,10 +1,10 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/fetcher/base"</div><div class='del'>-require "bundler/worker"</div><div class='add'>+require_relative "base"</div><div class='add'>+require_relative "../worker"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='del'>-  autoload :CompactIndexClient, "bundler/compact_index_client"</div><div class='add'>+  autoload :CompactIndexClient, File.expand_path("../compact_index_client", __dir__)</div><div class='ctx'> </div><div class='ctx'>   class Fetcher</div><div class='ctx'>     class CompactIndex &lt; Base</div><div class='hunk'>@@ -12,17 +12,15 @@ module Bundler</div><div class='ctx'>         method = instance_method(method_name)</div><div class='ctx'>         undef_method(method_name)</div><div class='ctx'>         define_method(method_name) do |*args, &amp;blk|</div><div class='del'>-          begin</div><div class='del'>-            method.bind(self).call(*args, &amp;blk)</div><div class='del'>-          rescue NetworkDownError, CompactIndexClient::Updater::MisMatchedChecksumError =&gt; e</div><div class='del'>-            raise HTTPError, e.message</div><div class='del'>-          rescue AuthenticationRequiredError</div><div class='del'>-            # Fail since we got a 401 from the server.</div><div class='del'>-            raise</div><div class='del'>-          rescue HTTPError =&gt; e</div><div class='del'>-            Bundler.ui.trace(e)</div><div class='del'>-            nil</div><div class='del'>-          end</div><div class='add'>+          method.bind(self).call(*args, &amp;blk)</div><div class='add'>+        rescue NetworkDownError, CompactIndexClient::Updater::MisMatchedChecksumError =&gt; e</div><div class='add'>+          raise HTTPError, e.message</div><div class='add'>+        rescue AuthenticationRequiredError, BadAuthenticationError</div><div class='add'>+          # Fail since we got a 401 from the server.</div><div class='add'>+          raise</div><div class='add'>+        rescue HTTPError =&gt; e</div><div class='add'>+          Bundler.ui.trace(e)</div><div class='add'>+          nil</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -39,34 +37,35 @@ module Bundler</div><div class='ctx'>         until remaining_gems.empty?</div><div class='ctx'>           log_specs "Looking up gems #{remaining_gems.inspect}"</div><div class='ctx'> </div><div class='del'>-          deps = compact_index_client.dependencies(remaining_gems)</div><div class='add'>+          deps = begin</div><div class='add'>+                   parallel_compact_index_client.dependencies(remaining_gems)</div><div class='add'>+                 rescue TooManyRequestsError</div><div class='add'>+                   @bundle_worker&amp;.stop</div><div class='add'>+                   @bundle_worker = nil # reset it.  Not sure if necessary</div><div class='add'>+                   serial_compact_index_client.dependencies(remaining_gems)</div><div class='add'>+                 end</div><div class='ctx'>           next_gems = deps.map {|d| d[3].map(&amp;:first).flatten(1) }.flatten(1).uniq</div><div class='ctx'>           deps.each {|dep| gem_info &lt;&lt; dep }</div><div class='ctx'>           complete_gems.concat(deps.map(&amp;:first)).uniq!</div><div class='ctx'>           remaining_gems = next_gems - complete_gems</div><div class='ctx'>         end</div><div class='del'>-        @bundle_worker.stop if @bundle_worker</div><div class='add'>+        @bundle_worker&amp;.stop</div><div class='ctx'>         @bundle_worker = nil # reset it.  Not sure if necessary</div><div class='ctx'> </div><div class='ctx'>         gem_info</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def fetch_spec(spec)</div><div class='del'>-        spec -= [nil, "ruby", ""]</div><div class='del'>-        contents = compact_index_client.spec(*spec)</div><div class='del'>-        return nil if contents.nil?</div><div class='del'>-        contents.unshift(spec.first)</div><div class='del'>-        contents[3].map! {|d| Gem::Dependency.new(*d) }</div><div class='del'>-        EndpointSpecification.new(*contents)</div><div class='del'>-      end</div><div class='del'>-      compact_index_request :fetch_spec</div><div class='del'>-</div><div class='ctx'>       def available?</div><div class='del'>-        return nil unless SharedHelpers.md5_available?</div><div class='del'>-        user_home = Bundler.user_home</div><div class='del'>-        return nil unless user_home.directory? &amp;&amp; user_home.writable?</div><div class='add'>+        unless SharedHelpers.md5_available?</div><div class='add'>+          Bundler.ui.debug("FIPS mode is enabled, bundler can't use the CompactIndex API")</div><div class='add'>+          return nil</div><div class='add'>+        end</div><div class='add'>+        if fetch_uri.scheme == "file"</div><div class='add'>+          Bundler.ui.debug("Using a local server, bundler won't use the CompactIndex API")</div><div class='add'>+          return false</div><div class='add'>+        end</div><div class='ctx'>         # Read info file checksums out of /versions, so we can know if gems are up to date</div><div class='del'>-        fetch_uri.scheme != "file" &amp;&amp; compact_index_client.update_and_parse_checksums!</div><div class='add'>+        compact_index_client.update_and_parse_checksums!</div><div class='ctx'>       rescue CompactIndexClient::Updater::MisMatchedChecksumError =&gt; e</div><div class='ctx'>         Bundler.ui.debug(e.message)</div><div class='ctx'>         nil</div><div class='hunk'>@@ -77,27 +76,35 @@ module Bundler</div><div class='ctx'>         true</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       def compact_index_client</div><div class='del'>-        @compact_index_client ||= begin</div><div class='add'>+        @compact_index_client ||=</div><div class='ctx'>           SharedHelpers.filesystem_access(cache_path) do</div><div class='ctx'>             CompactIndexClient.new(cache_path, client_fetcher)</div><div class='del'>-          end.tap do |client|</div><div class='del'>-            client.in_parallel = lambda do |inputs, &amp;blk|</div><div class='del'>-              func = lambda {|object, _index| blk.call(object) }</div><div class='del'>-              worker = bundle_worker(func)</div><div class='del'>-              inputs.each {|input| worker.enq(input) }</div><div class='del'>-              inputs.map { worker.deq }</div><div class='del'>-            end</div><div class='ctx'>           end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def parallel_compact_index_client</div><div class='add'>+        compact_index_client.execution_mode = lambda do |inputs, &amp;blk|</div><div class='add'>+          func = lambda {|object, _index| blk.call(object) }</div><div class='add'>+          worker = bundle_worker(func)</div><div class='add'>+          inputs.each {|input| worker.enq(input) }</div><div class='add'>+          inputs.map { worker.deq }</div><div class='ctx'>         end</div><div class='add'>+</div><div class='add'>+        compact_index_client</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def serial_compact_index_client</div><div class='add'>+        compact_index_client.sequential_execution_mode!</div><div class='add'>+        compact_index_client</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def bundle_worker(func = nil)</div><div class='ctx'>         @bundle_worker ||= begin</div><div class='ctx'>           worker_name = "Compact Index (#{display_uri.host})"</div><div class='del'>-          Bundler::Worker.new(Bundler.current_ruby.rbx? ? 1 : 25, worker_name, func)</div><div class='add'>+          Bundler::Worker.new(Bundler.settings.processor_count, worker_name, func)</div><div class='ctx'>         end</div><div class='ctx'>         @bundle_worker.tap do |worker|</div><div class='ctx'>           worker.instance_variable_set(:@func, func) if func</div><div class='head'>diff --git a/lib/bundler/fetcher/dependency.rb b/lib/bundler/fetcher/dependency.rb<br/>index 1430d1ebeb..18b606abb6 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/fetcher/dependency.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher/dependency.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/fetcher/dependency.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/fetcher/dependency.rb</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/fetcher/base"</div><div class='add'>+require_relative "base"</div><div class='ctx'> require "cgi"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='hunk'>@@ -34,14 +34,10 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>         returned_gems = spec_list.map(&amp;:first).uniq</div><div class='ctx'>         specs(deps_list, full_dependency_list + returned_gems, spec_list + last_spec_list)</div><div class='del'>-      rescue MarshalError</div><div class='add'>+      rescue MarshalError, HTTPError, GemspecError</div><div class='ctx'>         Bundler.ui.info "" unless Bundler.ui.debug? # new line now that the dots are over</div><div class='ctx'>         Bundler.ui.debug "could not fetch from the dependency API, trying the full index"</div><div class='ctx'>         nil</div><div class='del'>-      rescue HTTPError, GemspecError</div><div class='del'>-        Bundler.ui.info "" unless Bundler.ui.debug? # new line now that the dots are over</div><div class='del'>-        Bundler.ui.debug "could not fetch from the dependency API\nit's suggested to retry using the full index via `bundle install --full-index`"</div><div class='del'>-        nil</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def dependency_specs(gem_names)</div><div class='hunk'>@@ -55,7 +51,7 @@ module Bundler</div><div class='ctx'>         gem_list = []</div><div class='ctx'>         gem_names.each_slice(Source::Rubygems::API_REQUEST_SIZE) do |names|</div><div class='ctx'>           marshalled_deps = downloader.fetch(dependency_api_uri(names)).body</div><div class='del'>-          gem_list.concat(Bundler.load_marshal(marshalled_deps))</div><div class='add'>+          gem_list.concat(Bundler.safe_load_marshal(marshalled_deps))</div><div class='ctx'>         end</div><div class='ctx'>         gem_list</div><div class='ctx'>       end</div><div class='head'>diff --git a/lib/bundler/fetcher/downloader.rb b/lib/bundler/fetcher/downloader.rb<br/>index e0e0cbf1c9..3062899e0e 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/fetcher/downloader.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher/downloader.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/fetcher/downloader.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/fetcher/downloader.rb</a></div><div class='hunk'>@@ -14,14 +14,16 @@ module Bundler</div><div class='ctx'>       def fetch(uri, headers = {}, counter = 0)</div><div class='ctx'>         raise HTTPError, "Too many redirects" if counter &gt;= redirect_limit</div><div class='ctx'> </div><div class='add'>+        filtered_uri = URICredentialsFilter.credential_filtered_uri(uri)</div><div class='add'>+</div><div class='ctx'>         response = request(uri, headers)</div><div class='del'>-        Bundler.ui.debug("HTTP #{response.code} #{response.message} #{uri}")</div><div class='add'>+        Bundler.ui.debug("HTTP #{response.code} #{response.message} #{filtered_uri}")</div><div class='ctx'> </div><div class='ctx'>         case response</div><div class='ctx'>         when Net::HTTPSuccess, Net::HTTPNotModified</div><div class='ctx'>           response</div><div class='ctx'>         when Net::HTTPRedirection</div><div class='del'>-          new_uri = URI.parse(response["location"])</div><div class='add'>+          new_uri = Bundler::URI.parse(response["location"])</div><div class='ctx'>           if new_uri.host == uri.host</div><div class='ctx'>             new_uri.user = uri.user</div><div class='ctx'>             new_uri.password = uri.password</div><div class='hunk'>@@ -34,10 +36,15 @@ module Bundler</div><div class='ctx'>           fetch(uri, new_headers)</div><div class='ctx'>         when Net::HTTPRequestEntityTooLarge</div><div class='ctx'>           raise FallbackError, response.body</div><div class='add'>+        when Net::HTTPTooManyRequests</div><div class='add'>+          raise TooManyRequestsError, response.body</div><div class='ctx'>         when Net::HTTPUnauthorized</div><div class='add'>+          raise BadAuthenticationError, uri.host if uri.userinfo</div><div class='ctx'>           raise AuthenticationRequiredError, uri.host</div><div class='add'>+        when Net::HTTPForbidden</div><div class='add'>+          raise AuthenticationForbiddenError, uri.host</div><div class='ctx'>         when Net::HTTPNotFound</div><div class='del'>-          raise FallbackError, "Net::HTTPNotFound"</div><div class='add'>+          raise FallbackError, "Net::HTTPNotFound: #{filtered_uri}"</div><div class='ctx'>         else</div><div class='ctx'>           raise HTTPError, "#{response.class}#{": #{response.body}" unless response.body.empty?}"</div><div class='ctx'>         end</div><div class='hunk'>@@ -46,7 +53,9 @@ module Bundler</div><div class='ctx'>       def request(uri, headers)</div><div class='ctx'>         validate_uri_scheme!(uri)</div><div class='ctx'> </div><div class='del'>-        Bundler.ui.debug "HTTP GET #{uri}"</div><div class='add'>+        filtered_uri = URICredentialsFilter.credential_filtered_uri(uri)</div><div class='add'>+</div><div class='add'>+        Bundler.ui.debug "HTTP GET #{filtered_uri}"</div><div class='ctx'>         req = Net::HTTP::Get.new uri.request_uri, headers</div><div class='ctx'>         if uri.user</div><div class='ctx'>           user = CGI.unescape(uri.user)</div><div class='hunk'>@@ -54,27 +63,23 @@ module Bundler</div><div class='ctx'>           req.basic_auth(user, password)</div><div class='ctx'>         end</div><div class='ctx'>         connection.request(uri, req)</div><div class='del'>-      rescue NoMethodError =&gt; e</div><div class='del'>-        raise unless ["undefined method", "use_ssl="].all? {|snippet| e.message.include? snippet }</div><div class='del'>-        raise LoadError.new("cannot load such file -- openssl")</div><div class='ctx'>       rescue OpenSSL::SSL::SSLError</div><div class='ctx'>         raise CertificateFailureError.new(uri)</div><div class='ctx'>       rescue *HTTP_ERRORS =&gt; e</div><div class='ctx'>         Bundler.ui.trace e</div><div class='del'>-        case e.message</div><div class='del'>-        when /host down:/, /getaddrinfo: nodename nor servname provided/</div><div class='add'>+        if e.is_a?(SocketError) || e.message.to_s.include?("host down:")</div><div class='ctx'>           raise NetworkDownError, "Could not reach host #{uri.host}. Check your network " \</div><div class='ctx'>             "connection and try again."</div><div class='ctx'>         else</div><div class='del'>-          raise HTTPError, "Network error while fetching #{URICredentialsFilter.credential_filtered_uri(uri)}" \</div><div class='add'>+          raise HTTPError, "Network error while fetching #{filtered_uri}" \</div><div class='ctx'>             " (#{e})"</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       def validate_uri_scheme!(uri)</div><div class='del'>-        return if uri.scheme =~ /\Ahttps?\z/</div><div class='add'>+        return if /\Ahttps?\z/.match?(uri.scheme)</div><div class='ctx'>         raise InvalidOption,</div><div class='ctx'>           "The request uri `#{uri}` has an invalid scheme (`#{uri.scheme}`). " \</div><div class='ctx'>           "Did you mean `http` or `https`?"</div><div class='head'>diff --git a/lib/bundler/fetcher/index.rb b/lib/bundler/fetcher/index.rb<br/>index 1a8064624d..c623647f01 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/fetcher/index.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/fetcher/index.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/fetcher/index.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/fetcher/index.rb</a></div><div class='hunk'>@@ -1,51 +1,24 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/fetcher/base"</div><div class='del'>-require "rubygems/remote_fetcher"</div><div class='add'>+require_relative "base"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class Fetcher</div><div class='ctx'>     class Index &lt; Base</div><div class='ctx'>       def specs(_gem_names)</div><div class='ctx'>         Bundler.rubygems.fetch_all_remote_specs(remote)</div><div class='del'>-      rescue Gem::RemoteFetcher::FetchError, OpenSSL::SSL::SSLError, Net::HTTPFatalError =&gt; e</div><div class='add'>+      rescue Gem::RemoteFetcher::FetchError =&gt; e</div><div class='ctx'>         case e.message</div><div class='ctx'>         when /certificate verify failed/</div><div class='ctx'>           raise CertificateFailureError.new(display_uri)</div><div class='ctx'>         when /401/</div><div class='del'>-          raise AuthenticationRequiredError, remote_uri</div><div class='del'>-        when /403/</div><div class='ctx'>           raise BadAuthenticationError, remote_uri if remote_uri.userinfo</div><div class='ctx'>           raise AuthenticationRequiredError, remote_uri</div><div class='add'>+        when /403/</div><div class='add'>+          raise AuthenticationForbiddenError, remote_uri</div><div class='ctx'>         else</div><div class='del'>-          Bundler.ui.trace e</div><div class='del'>-          raise HTTPError, "Could not fetch specs from #{display_uri}"</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def fetch_spec(spec)</div><div class='del'>-        spec -= [nil, "ruby", ""]</div><div class='del'>-        spec_file_name = "#{spec.join "-"}.gemspec"</div><div class='del'>-</div><div class='del'>-        uri = URI.parse("#{remote_uri}#{Gem::MARSHAL_SPEC_DIR}#{spec_file_name}.rz")</div><div class='del'>-        if uri.scheme == "file"</div><div class='del'>-          Bundler.load_marshal Bundler.rubygems.inflate(Gem.read_binary(uri.path))</div><div class='del'>-        elsif cached_spec_path = gemspec_cached_path(spec_file_name)</div><div class='del'>-          Bundler.load_gemspec(cached_spec_path)</div><div class='del'>-        else</div><div class='del'>-          Bundler.load_marshal Bundler.rubygems.inflate(downloader.fetch(uri).body)</div><div class='add'>+          raise HTTPError, "Could not fetch specs from #{display_uri} due to underlying error &lt;#{e.message}&gt;"</div><div class='ctx'>         end</div><div class='del'>-      rescue MarshalError</div><div class='del'>-        raise HTTPError, "Gemspec #{spec} contained invalid data.\n" \</div><div class='del'>-          "Your network or your gem server is probably having issues right now."</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-    private</div><div class='del'>-</div><div class='del'>-      # cached gem specification path, if one exists</div><div class='del'>-      def gemspec_cached_path(spec_file_name)</div><div class='del'>-        paths = Bundler.rubygems.spec_cache_dirs.map {|dir| File.join(dir, spec_file_name) }</div><div class='del'>-        paths.find {|path| File.file? path }</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='head'>diff --git a/lib/bundler/force_platform.rb b/lib/bundler/force_platform.rb<br/>new file mode 100644<br/>index 0000000000..249a24ecd1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/force_platform.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/force_platform.rb</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  module ForcePlatform</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    # The `:force_ruby_platform` value used by dependencies for resolution, and</div><div class='add'>+    # by locked specifications for materialization is `false` by default, except</div><div class='add'>+    # for TruffleRuby. TruffleRuby generally needs to force the RUBY platform</div><div class='add'>+    # variant unless the name is explicitly allowlisted.</div><div class='add'>+</div><div class='add'>+    def default_force_ruby_platform</div><div class='add'>+      return false unless RUBY_ENGINE == "truffleruby"</div><div class='add'>+</div><div class='add'>+      !Gem::Platform::REUSE_AS_BINARY_ON_TRUFFLERUBY.include?(name)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/friendly_errors.rb b/lib/bundler/friendly_errors.rb<br/>index ae3299a7c8..39afe8a071 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/friendly_errors.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/friendly_errors.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/friendly_errors.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/friendly_errors.rb</a></div><div class='hunk'>@@ -1,12 +1,22 @@</div><div class='del'>-# encoding: utf-8</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "cgi"</div><div class='del'>-require "bundler/vendored_thor"</div><div class='add'>+require_relative "vendored_thor"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   module FriendlyErrors</div><div class='del'>-  module_function</div><div class='add'>+    module_function</div><div class='add'>+</div><div class='add'>+    def enable!</div><div class='add'>+      @disabled = false</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def disabled?</div><div class='add'>+      @disabled</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def disable!</div><div class='add'>+      @disabled = true</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     def log_error(error)</div><div class='ctx'>       case error</div><div class='hunk'>@@ -17,21 +27,15 @@ module Bundler</div><div class='ctx'>         Bundler.ui.error error.message</div><div class='ctx'>       when GemRequireError</div><div class='ctx'>         Bundler.ui.error error.message</div><div class='del'>-        Bundler.ui.trace error.orig_exception, nil, true</div><div class='add'>+        Bundler.ui.trace error.orig_exception</div><div class='ctx'>       when BundlerError</div><div class='del'>-        Bundler.ui.error error.message, :wrap =&gt; true</div><div class='del'>-        Bundler.ui.trace error</div><div class='add'>+        if Bundler.ui.debug?</div><div class='add'>+          Bundler.ui.trace error</div><div class='add'>+        else</div><div class='add'>+          Bundler.ui.error error.message, :wrap =&gt; true</div><div class='add'>+        end</div><div class='ctx'>       when Thor::Error</div><div class='ctx'>         Bundler.ui.error error.message</div><div class='del'>-      when LoadError</div><div class='del'>-        raise error unless error.message =~ /cannot load such file -- openssl|openssl.so|libcrypto.so/</div><div class='del'>-        Bundler.ui.error "\nCould not load OpenSSL."</div><div class='del'>-        Bundler.ui.warn &lt;&lt;-WARN, :wrap =&gt; true</div><div class='del'>-          You must recompile Ruby with OpenSSL support or change the sources in your \</div><div class='del'>-          Gemfile from 'https' to 'http'. Instructions for compiling with OpenSSL \</div><div class='del'>-          using RVM are available at http://rvm.io/packages/openssl.</div><div class='del'>-        WARN</div><div class='del'>-        Bundler.ui.trace error</div><div class='ctx'>       when Interrupt</div><div class='ctx'>         Bundler.ui.error "\nQuitting..."</div><div class='ctx'>         Bundler.ui.trace error</div><div class='hunk'>@@ -45,8 +49,6 @@ module Bundler</div><div class='ctx'>           "Alternatively, you can increase the amount of memory the JVM is able to use by running Bundler with jruby -J-Xmx1024m -S bundle (JRuby defaults to 500MB)."</div><div class='ctx'>       else request_issue_report_for(error)</div><div class='ctx'>       end</div><div class='del'>-    rescue</div><div class='del'>-      raise error</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def exit_status(error)</div><div class='hunk'>@@ -59,40 +61,11 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def request_issue_report_for(e)</div><div class='del'>-      Bundler.ui.info &lt;&lt;-EOS.gsub(/^ {8}/, "")</div><div class='add'>+      Bundler.ui.error &lt;&lt;-EOS.gsub(/^ {8}/, ""), nil, nil</div><div class='ctx'>         --- ERROR REPORT TEMPLATE -------------------------------------------------------</div><div class='del'>-        # Error Report</div><div class='del'>-</div><div class='del'>-        ## Questions</div><div class='del'>-</div><div class='del'>-        Please fill out answers to these questions, it'll help us figure out</div><div class='del'>-        why things are going wrong.</div><div class='del'>-</div><div class='del'>-        - **What did you do?**</div><div class='del'>-</div><div class='del'>-          I ran the command `#{$PROGRAM_NAME} #{ARGV.join(" ")}`</div><div class='del'>-</div><div class='del'>-        - **What did you expect to happen?**</div><div class='del'>-</div><div class='del'>-          I expected Bundler to...</div><div class='del'>-</div><div class='del'>-        - **What happened instead?**</div><div class='del'>-</div><div class='del'>-          Instead, what happened was...</div><div class='del'>-</div><div class='del'>-        - **Have you tried any solutions posted on similar issues in our issue tracker, stack overflow, or google?**</div><div class='del'>-</div><div class='del'>-          I tried...</div><div class='del'>-</div><div class='del'>-        - **Have you read our issues document, https://github.com/bundler/bundler/blob/master/doc/contributing/ISSUES.md?**</div><div class='del'>-</div><div class='del'>-          ...</div><div class='del'>-</div><div class='del'>-        ## Backtrace</div><div class='ctx'> </div><div class='ctx'>         ```</div><div class='del'>-        #{e.class}: #{e.message}</div><div class='del'>-          #{e.backtrace &amp;&amp; e.backtrace.join("\n          ").chomp}</div><div class='add'>+        #{exception_message(e)}</div><div class='ctx'>         ```</div><div class='ctx'> </div><div class='ctx'>         #{Bundler::Env.report}</div><div class='hunk'>@@ -102,29 +75,51 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       Bundler.ui.error "Unfortunately, an unexpected error occurred, and Bundler cannot continue."</div><div class='ctx'> </div><div class='del'>-      Bundler.ui.warn &lt;&lt;-EOS.gsub(/^ {8}/, "")</div><div class='add'>+      Bundler.ui.error &lt;&lt;-EOS.gsub(/^ {8}/, ""), nil, :yellow</div><div class='ctx'> </div><div class='ctx'>         First, try this link to see if there are any existing issue reports for this error:</div><div class='ctx'>         #{issues_url(e)}</div><div class='ctx'> </div><div class='del'>-        If there aren't any reports for this error yet, please create copy and paste the report template above into a new issue. Don't forget to anonymize any private data! The new issue form is located at:</div><div class='del'>-        https://github.com/bundler/bundler/issues/new</div><div class='add'>+        If there aren't any reports for this error yet, please fill in the new issue form located at #{new_issue_url}, and copy and paste the report template above in there.</div><div class='add'>+      EOS</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def exception_message(error)</div><div class='add'>+      message = serialized_exception_for(error)</div><div class='add'>+      cause = error.cause</div><div class='add'>+      return message unless cause</div><div class='add'>+</div><div class='add'>+      message + serialized_exception_for(cause)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def serialized_exception_for(e)</div><div class='add'>+      &lt;&lt;-EOS.gsub(/^ {8}/, "")</div><div class='add'>+        #{e.class}: #{e.message}</div><div class='add'>+          #{e.backtrace&amp;.join("\n          ")&amp;.chomp}</div><div class='ctx'>       EOS</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def issues_url(exception)</div><div class='ctx'>       message = exception.message.lines.first.tr(":", " ").chomp</div><div class='ctx'>       message = message.split("-").first if exception.is_a?(Errno)</div><div class='del'>-      "https://github.com/bundler/bundler/search?q=" \</div><div class='add'>+      require "cgi"</div><div class='add'>+      "https://github.com/rubygems/rubygems/search?q=" \</div><div class='ctx'>         "#{CGI.escape(message)}&amp;type=Issues"</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def new_issue_url</div><div class='add'>+      "https://github.com/rubygems/rubygems/issues/new?labels=Bundler&amp;template=bundler-related-issue.md"</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def self.with_friendly_errors</div><div class='add'>+    FriendlyErrors.enable!</div><div class='ctx'>     yield</div><div class='ctx'>   rescue SignalException</div><div class='ctx'>     raise</div><div class='del'>-  rescue Exception =&gt; e</div><div class='add'>+  rescue Exception =&gt; e # rubocop:disable Lint/RescueException</div><div class='add'>+    raise if FriendlyErrors.disabled?</div><div class='add'>+</div><div class='ctx'>     FriendlyErrors.log_error(e)</div><div class='ctx'>     exit FriendlyErrors.exit_status(e)</div><div class='ctx'>   end</div><div class='head'>diff --git a/lib/bundler/gem_helper.rb b/lib/bundler/gem_helper.rb<br/>index e7673cba88..dcf759cded 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/gem_helper.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gem_helper.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/gem_helper.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/gem_helper.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/vendored_thor" unless defined?(Thor)</div><div class='del'>-require "bundler"</div><div class='add'>+require_relative "../bundler"</div><div class='add'>+require "shellwords"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class GemHelper</div><div class='hunk'>@@ -15,22 +15,28 @@ module Bundler</div><div class='ctx'>         new(opts[:dir], opts[:name]).install</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def tag_prefix=(prefix)</div><div class='add'>+        instance.tag_prefix = prefix</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def gemspec(&amp;block)</div><div class='ctx'>         gemspec = instance.gemspec</div><div class='del'>-        block.call(gemspec) if block</div><div class='add'>+        block&amp;.call(gemspec)</div><div class='ctx'>         gemspec</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     attr_reader :spec_path, :base, :gemspec</div><div class='ctx'> </div><div class='add'>+    attr_writer :tag_prefix</div><div class='add'>+</div><div class='ctx'>     def initialize(base = nil, name = nil)</div><div class='del'>-      Bundler.ui = UI::Shell.new</div><div class='del'>-      @base = (base ||= SharedHelpers.pwd)</div><div class='del'>-      gemspecs = name ? [File.join(base, "#{name}.gemspec")] : Dir[File.join(base, "{,*}.gemspec")]</div><div class='add'>+      @base = File.expand_path(base || SharedHelpers.pwd)</div><div class='add'>+      gemspecs = name ? [File.join(@base, "#{name}.gemspec")] : Gem::Util.glob_files_in_dir("{,*}.gemspec", @base)</div><div class='ctx'>       raise "Unable to determine name from existing gemspec. Use :name =&gt; 'gemname' in #install_tasks to manually set it." unless gemspecs.size == 1</div><div class='ctx'>       @spec_path = gemspecs.first</div><div class='ctx'>       @gemspec = Bundler.load_gemspec(@spec_path)</div><div class='add'>+      @tag_prefix = ""</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def install</div><div class='hunk'>@@ -41,6 +47,11 @@ module Bundler</div><div class='ctx'>         built_gem_path = build_gem</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      desc "Generate SHA512 checksum if #{name}-#{version}.gem into the checksums directory."</div><div class='add'>+      task "build:checksum" =&gt; "build" do</div><div class='add'>+        build_checksum(built_gem_path)</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       desc "Build and install #{name}-#{version}.gem into system gems."</div><div class='ctx'>       task "install" =&gt; "build" do</div><div class='ctx'>         install_gem(built_gem_path)</div><div class='hunk'>@@ -65,7 +76,7 @@ module Bundler</div><div class='ctx'>         tag_version { git_push(args[:remote]) } unless already_tagged?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      task "release:rubygem_push" do</div><div class='add'>+      task "release:rubygem_push" =&gt; "build" do</div><div class='ctx'>         rubygem_push(built_gem_path) if gem_push?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -74,7 +85,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def build_gem</div><div class='ctx'>       file_name = nil</div><div class='del'>-      sh("gem build -V '#{spec_path}'") do</div><div class='add'>+      sh([*gem_command, "build", "-V", spec_path]) do</div><div class='ctx'>         file_name = File.basename(built_gem_path)</div><div class='ctx'>         SharedHelpers.filesystem_access(File.join(base, "pkg")) {|p| FileUtils.mkdir_p(p) }</div><div class='ctx'>         FileUtils.mv(built_gem_path, "pkg")</div><div class='hunk'>@@ -85,32 +96,54 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def install_gem(built_gem_path = nil, local = false)</div><div class='ctx'>       built_gem_path ||= build_gem</div><div class='del'>-      out, _ = sh_with_code("gem install '#{built_gem_path}'#{" --local" if local}")</div><div class='del'>-      raise "Couldn't install gem, run `gem install #{built_gem_path}' for more detailed output" unless out[/Successfully installed/]</div><div class='add'>+      cmd = [*gem_command, "install", built_gem_path.to_s]</div><div class='add'>+      cmd &lt;&lt; "--local" if local</div><div class='add'>+      sh(cmd)</div><div class='ctx'>       Bundler.ui.confirm "#{name} (#{version}) installed."</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  protected</div><div class='add'>+    def build_checksum(built_gem_path = nil)</div><div class='add'>+      built_gem_path ||= build_gem</div><div class='add'>+      SharedHelpers.filesystem_access(File.join(base, "checksums")) {|p| FileUtils.mkdir_p(p) }</div><div class='add'>+      file_name = "#{File.basename(built_gem_path)}.sha512"</div><div class='add'>+      require "digest/sha2"</div><div class='add'>+      checksum = ::Digest::SHA512.file(built_gem_path).hexdigest</div><div class='add'>+      target = File.join(base, "checksums", file_name)</div><div class='add'>+      File.write(target, checksum + "\n")</div><div class='add'>+      Bundler.ui.confirm "#{name} #{version} checksum written to checksums/#{file_name}."</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    protected</div><div class='ctx'> </div><div class='ctx'>     def rubygem_push(path)</div><div class='del'>-      gem_command = "gem push '#{path}'"</div><div class='del'>-      gem_command += " --key #{gem_key}" if gem_key</div><div class='del'>-      gem_command += " --host #{allowed_push_host}" if allowed_push_host</div><div class='del'>-      unless allowed_push_host || Bundler.user_home.join(".gem/credentials").file?</div><div class='del'>-        raise "Your rubygems.org credentials aren't set. Run `gem push` to set them."</div><div class='del'>-      end</div><div class='del'>-      sh(gem_command)</div><div class='add'>+      cmd = [*gem_command, "push", path]</div><div class='add'>+      cmd &lt;&lt; "--key" &lt;&lt; gem_key if gem_key</div><div class='add'>+      cmd &lt;&lt; "--host" &lt;&lt; allowed_push_host if allowed_push_host</div><div class='add'>+      sh_with_input(cmd)</div><div class='ctx'>       Bundler.ui.confirm "Pushed #{name} #{version} to #{gem_push_host}"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def built_gem_path</div><div class='del'>-      Dir[File.join(base, "#{name}-*.gem")].sort_by {|f| File.mtime(f) }.last</div><div class='add'>+      Gem::Util.glob_files_in_dir("#{name}-*.gem", base).sort_by {|f| File.mtime(f) }.last</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def git_push(remote = "")</div><div class='del'>-      perform_git_push remote</div><div class='del'>-      perform_git_push "#{remote} --tags"</div><div class='del'>-      Bundler.ui.confirm "Pushed git commits and tags."</div><div class='add'>+    def git_push(remote = nil)</div><div class='add'>+      remote ||= default_remote</div><div class='add'>+      sh("git push #{remote} refs/heads/#{current_branch}".shellsplit)</div><div class='add'>+      sh("git push #{remote} refs/tags/#{version_tag}".shellsplit)</div><div class='add'>+      Bundler.ui.confirm "Pushed git commits and release tag."</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def default_remote</div><div class='add'>+      remote_for_branch, status = sh_with_status(%W[git config --get branch.#{current_branch}.remote])</div><div class='add'>+      return "origin" unless status.success?</div><div class='add'>+</div><div class='add'>+      remote_for_branch.strip</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def current_branch</div><div class='add'>+      # We can replace this with `git branch --show-current` once we drop support for git &lt; 2.22.0</div><div class='add'>+      sh(%w[git rev-parse --abbrev-ref HEAD]).gsub(%r{\Aheads/}, "").strip</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def allowed_push_host</div><div class='hunk'>@@ -119,20 +152,13 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def gem_push_host</div><div class='ctx'>       env_rubygems_host = ENV["RUBYGEMS_HOST"]</div><div class='del'>-      env_rubygems_host = nil if</div><div class='del'>-        env_rubygems_host &amp;&amp; env_rubygems_host.empty?</div><div class='add'>+      env_rubygems_host = nil if env_rubygems_host&amp;.empty?</div><div class='ctx'> </div><div class='ctx'>       allowed_push_host || env_rubygems_host || "rubygems.org"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def perform_git_push(options = "")</div><div class='del'>-      cmd = "git push #{options}"</div><div class='del'>-      out, code = sh_with_code(cmd)</div><div class='del'>-      raise "Couldn't git push. `#{cmd}' failed with the following output:\n\n#{out}\n" unless code == 0</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def already_tagged?</div><div class='del'>-      return false unless sh("git tag").split(/\n/).include?(version_tag)</div><div class='add'>+      return false unless sh(%w[git tag]).split(/\n/).include?(version_tag)</div><div class='ctx'>       Bundler.ui.confirm "Tag #{version_tag} has already been created."</div><div class='ctx'>       true</div><div class='ctx'>     end</div><div class='hunk'>@@ -142,20 +168,20 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def clean?</div><div class='del'>-      sh_with_code("git diff --exit-code")[1] == 0</div><div class='add'>+      sh_with_status(%w[git diff --exit-code])[1].success?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def committed?</div><div class='del'>-      sh_with_code("git diff-index --quiet --cached HEAD")[1] == 0</div><div class='add'>+      sh_with_status(%w[git diff-index --quiet --cached HEAD])[1].success?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def tag_version</div><div class='del'>-      sh "git tag -m \"Version #{version}\" #{version_tag}"</div><div class='add'>+      sh %W[git tag -m Version\ #{version} #{version_tag}]</div><div class='ctx'>       Bundler.ui.confirm "Tagged #{version_tag}."</div><div class='ctx'>       yield if block_given?</div><div class='ctx'>     rescue RuntimeError</div><div class='ctx'>       Bundler.ui.error "Untagging #{version_tag} due to error."</div><div class='del'>-      sh_with_code "git tag -d #{version_tag}"</div><div class='add'>+      sh_with_status %W[git tag -d #{version_tag}]</div><div class='ctx'>       raise</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -164,29 +190,34 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def version_tag</div><div class='del'>-      "v#{version}"</div><div class='add'>+      "#{@tag_prefix}v#{version}"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def name</div><div class='ctx'>       gemspec.name</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def sh_with_input(cmd)</div><div class='add'>+      Bundler.ui.debug(cmd)</div><div class='add'>+      SharedHelpers.chdir(base) do</div><div class='add'>+        abort unless Kernel.system(*cmd)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def sh(cmd, &amp;block)</div><div class='del'>-      out, code = sh_with_code(cmd, &amp;block)</div><div class='del'>-      unless code.zero?</div><div class='del'>-        raise(out.empty? ? "Running `#{cmd}` failed. Run this command directly for more detailed output." : out)</div><div class='add'>+      out, status = sh_with_status(cmd, &amp;block)</div><div class='add'>+      unless status.success?</div><div class='add'>+        raise("Running `#{cmd.shelljoin}` failed with the following output:\n\n#{out}\n")</div><div class='ctx'>       end</div><div class='ctx'>       out</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def sh_with_code(cmd, &amp;block)</div><div class='del'>-      cmd += " 2&gt;&amp;1"</div><div class='del'>-      outbuf = String.new</div><div class='add'>+    def sh_with_status(cmd, &amp;block)</div><div class='ctx'>       Bundler.ui.debug(cmd)</div><div class='ctx'>       SharedHelpers.chdir(base) do</div><div class='del'>-        outbuf = `#{cmd}`</div><div class='del'>-        status = $?.exitstatus</div><div class='del'>-        block.call(outbuf) if status.zero? &amp;&amp; block</div><div class='add'>+        outbuf = IO.popen(cmd, :err =&gt; [:child, :out], &amp;:read)</div><div class='add'>+        status = $?</div><div class='add'>+        block&amp;.call(outbuf) if status.success?</div><div class='ctx'>         [outbuf, status]</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -198,5 +229,9 @@ module Bundler</div><div class='ctx'>     def gem_push?</div><div class='ctx'>       !%w[n no nil false off 0].include?(ENV["gem_push"].to_s.downcase)</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def gem_command</div><div class='add'>+      ENV["GEM_COMMAND"]&amp;.shellsplit || ["gem"]</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/gem_helpers.rb b/lib/bundler/gem_helpers.rb<br/>index 019ae10c66..2e6d788f9c 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/gem_helpers.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gem_helpers.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/gem_helpers.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/gem_helpers.rb</a></div><div class='hunk'>@@ -2,7 +2,7 @@</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   module GemHelpers</div><div class='del'>-    GENERIC_CACHE = {} # rubocop:disable MutableConstant</div><div class='add'>+    GENERIC_CACHE = { Gem::Platform::RUBY =&gt; Gem::Platform::RUBY } # rubocop:disable Style/MutableConstant</div><div class='ctx'>     GENERICS = [</div><div class='ctx'>       [Gem::Platform.new("java"), Gem::Platform.new("java")],</div><div class='ctx'>       [Gem::Platform.new("mswin32"), Gem::Platform.new("mswin32")],</div><div class='hunk'>@@ -10,12 +10,11 @@ module Bundler</div><div class='ctx'>       [Gem::Platform.new("universal-mingw32"), Gem::Platform.new("universal-mingw32")],</div><div class='ctx'>       [Gem::Platform.new("x64-mingw32"), Gem::Platform.new("x64-mingw32")],</div><div class='ctx'>       [Gem::Platform.new("x86_64-mingw32"), Gem::Platform.new("x64-mingw32")],</div><div class='del'>-      [Gem::Platform.new("mingw32"), Gem::Platform.new("x86-mingw32")]</div><div class='add'>+      [Gem::Platform.new("x64-mingw-ucrt"), Gem::Platform.new("x64-mingw-ucrt")],</div><div class='add'>+      [Gem::Platform.new("mingw32"), Gem::Platform.new("x86-mingw32")],</div><div class='ctx'>     ].freeze</div><div class='ctx'> </div><div class='ctx'>     def generic(p)</div><div class='del'>-      return p if p == Gem::Platform::RUBY</div><div class='del'>-</div><div class='ctx'>       GENERIC_CACHE[p] ||= begin</div><div class='ctx'>         _, found = GENERICS.find do |match, _generic|</div><div class='ctx'>           p.os == match.os &amp;&amp; (!match.cpu || p.cpu == match.cpu)</div><div class='hunk'>@@ -26,46 +25,49 @@ module Bundler</div><div class='ctx'>     module_function :generic</div><div class='ctx'> </div><div class='ctx'>     def generic_local_platform</div><div class='del'>-      generic(Bundler.local_platform)</div><div class='add'>+      generic(local_platform)</div><div class='ctx'>     end</div><div class='ctx'>     module_function :generic_local_platform</div><div class='ctx'> </div><div class='add'>+    def local_platform</div><div class='add'>+      Bundler.local_platform</div><div class='add'>+    end</div><div class='add'>+    module_function :local_platform</div><div class='add'>+</div><div class='ctx'>     def platform_specificity_match(spec_platform, user_platform)</div><div class='ctx'>       spec_platform = Gem::Platform.new(spec_platform)</div><div class='del'>-      return PlatformMatch::EXACT_MATCH if spec_platform == user_platform</div><div class='del'>-      return PlatformMatch::WORST_MATCH if spec_platform.nil? || spec_platform == Gem::Platform::RUBY || user_platform == Gem::Platform::RUBY</div><div class='del'>-</div><div class='del'>-      PlatformMatch.new(</div><div class='del'>-        PlatformMatch.os_match(spec_platform, user_platform),</div><div class='del'>-        PlatformMatch.cpu_match(spec_platform, user_platform),</div><div class='del'>-        PlatformMatch.platform_version_match(spec_platform, user_platform)</div><div class='del'>-      )</div><div class='add'>+</div><div class='add'>+      PlatformMatch.specificity_score(spec_platform, user_platform)</div><div class='ctx'>     end</div><div class='ctx'>     module_function :platform_specificity_match</div><div class='ctx'> </div><div class='ctx'>     def select_best_platform_match(specs, platform)</div><div class='del'>-      specs.select {|spec| spec.match_platform(platform) }.</div><div class='del'>-        min_by {|spec| platform_specificity_match(spec.platform, platform) }</div><div class='add'>+      matching = specs.select {|spec| spec.match_platform(platform) }</div><div class='add'>+</div><div class='add'>+      sort_best_platform_match(matching, platform)</div><div class='ctx'>     end</div><div class='ctx'>     module_function :select_best_platform_match</div><div class='ctx'> </div><div class='del'>-    PlatformMatch = Struct.new(:os_match, :cpu_match, :platform_version_match)</div><div class='del'>-    class PlatformMatch</div><div class='del'>-      def &lt;=&gt;(other)</div><div class='del'>-        return nil unless other.is_a?(PlatformMatch)</div><div class='add'>+    def sort_best_platform_match(matching, platform)</div><div class='add'>+      exact = matching.select {|spec| spec.platform == platform }</div><div class='add'>+      return exact if exact.any?</div><div class='ctx'> </div><div class='del'>-        m = os_match &lt;=&gt; other.os_match</div><div class='del'>-        return m unless m.zero?</div><div class='add'>+      sorted_matching = matching.sort_by {|spec| platform_specificity_match(spec.platform, platform) }</div><div class='add'>+      exemplary_spec = sorted_matching.first</div><div class='ctx'> </div><div class='del'>-        m = cpu_match &lt;=&gt; other.cpu_match</div><div class='del'>-        return m unless m.zero?</div><div class='add'>+      sorted_matching.take_while {|spec| same_specificity(platform, spec, exemplary_spec) &amp;&amp; same_deps(spec, exemplary_spec) }</div><div class='add'>+    end</div><div class='add'>+    module_function :sort_best_platform_match</div><div class='ctx'> </div><div class='del'>-        m = platform_version_match &lt;=&gt; other.platform_version_match</div><div class='del'>-        m</div><div class='del'>-      end</div><div class='add'>+    class PlatformMatch</div><div class='add'>+      def self.specificity_score(spec_platform, user_platform)</div><div class='add'>+        return -1 if spec_platform == user_platform</div><div class='add'>+        return 1_000_000 if spec_platform.nil? || spec_platform == Gem::Platform::RUBY || user_platform == Gem::Platform::RUBY</div><div class='ctx'> </div><div class='del'>-      EXACT_MATCH = new(-1, -1, -1).freeze</div><div class='del'>-      WORST_MATCH = new(1_000_000, 1_000_000, 1_000_000).freeze</div><div class='add'>+        os_match(spec_platform, user_platform) +</div><div class='add'>+          cpu_match(spec_platform, user_platform) * 10 +</div><div class='add'>+          platform_version_match(spec_platform, user_platform) * 100</div><div class='add'>+      end</div><div class='ctx'> </div><div class='ctx'>       def self.os_match(spec_platform, user_platform)</div><div class='ctx'>         if spec_platform.os == user_platform.os</div><div class='hunk'>@@ -97,5 +99,19 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def same_specificity(platform, spec, exemplary_spec)</div><div class='add'>+      platform_specificity_match(spec.platform, platform) == platform_specificity_match(exemplary_spec.platform, platform)</div><div class='add'>+    end</div><div class='add'>+    module_function :same_specificity</div><div class='add'>+</div><div class='add'>+    def same_deps(spec, exemplary_spec)</div><div class='add'>+      same_runtime_deps = spec.dependencies.sort == exemplary_spec.dependencies.sort</div><div class='add'>+      return same_runtime_deps unless spec.is_a?(Gem::Specification) &amp;&amp; exemplary_spec.is_a?(Gem::Specification)</div><div class='add'>+</div><div class='add'>+      same_metadata_deps = spec.required_ruby_version == exemplary_spec.required_ruby_version &amp;&amp; spec.required_rubygems_version == exemplary_spec.required_rubygems_version</div><div class='add'>+      same_runtime_deps &amp;&amp; same_metadata_deps</div><div class='add'>+    end</div><div class='add'>+    module_function :same_deps</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/gem_remote_fetcher.rb b/lib/bundler/gem_remote_fetcher.rb<br/>deleted file mode 100644<br/>index 9577535d63..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/gem_remote_fetcher.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gem_remote_fetcher.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,43 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require "rubygems/remote_fetcher"</div><div class='del'>-</div><div class='del'>-module Bundler</div><div class='del'>-  # Adds support for setting custom HTTP headers when fetching gems from the</div><div class='del'>-  # server.</div><div class='del'>-  #</div><div class='del'>-  # TODO: Get rid of this when and if gemstash only supports RubyGems versions</div><div class='del'>-  # that contain https://github.com/rubygems/rubygems/commit/3db265cc20b2f813.</div><div class='del'>-  class GemRemoteFetcher &lt; Gem::RemoteFetcher</div><div class='del'>-    attr_accessor :headers</div><div class='del'>-</div><div class='del'>-    # Extracted from RubyGems 2.4.</div><div class='del'>-    def fetch_http(uri, last_modified = nil, head = false, depth = 0)</div><div class='del'>-      fetch_type = head ? Net::HTTP::Head : Net::HTTP::Get</div><div class='del'>-      # beginning of change</div><div class='del'>-      response   = request uri, fetch_type, last_modified do |req|</div><div class='del'>-        headers.each {|k, v| req.add_field(k, v) } if headers</div><div class='del'>-      end</div><div class='del'>-      # end of change</div><div class='del'>-</div><div class='del'>-      case response</div><div class='del'>-      when Net::HTTPOK, Net::HTTPNotModified then</div><div class='del'>-        response.uri = uri if response.respond_to? :uri</div><div class='del'>-        head ? response : response.body</div><div class='del'>-      when Net::HTTPMovedPermanently, Net::HTTPFound, Net::HTTPSeeOther,</div><div class='del'>-           Net::HTTPTemporaryRedirect then</div><div class='del'>-        raise FetchError.new("too many redirects", uri) if depth &gt; 10</div><div class='del'>-</div><div class='del'>-        location = URI.parse response["Location"]</div><div class='del'>-</div><div class='del'>-        if https?(uri) &amp;&amp; !https?(location)</div><div class='del'>-          raise FetchError.new("redirecting to non-https resource: #{location}", uri)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        fetch_http(location, last_modified, head, depth + 1)</div><div class='del'>-      else</div><div class='del'>-        raise FetchError.new("bad response #{response.message} #{response.code}", uri)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/gem_tasks.rb b/lib/bundler/gem_tasks.rb<br/>index f736517bd7..bc725d3602 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/gem_tasks.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gem_tasks.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/gem_tasks.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/gem_tasks.rb</a></div><div class='hunk'>@@ -3,5 +3,5 @@</div><div class='ctx'> require "rake/clean"</div><div class='ctx'> CLOBBER.include "pkg"</div><div class='ctx'> </div><div class='del'>-require "bundler/gem_helper"</div><div class='add'>+require_relative "gem_helper"</div><div class='ctx'> Bundler::GemHelper.install_tasks</div><div class='head'>diff --git a/lib/bundler/gem_version_promoter.rb b/lib/bundler/gem_version_promoter.rb<br/>index adb951a7a0..d281f46eeb 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/gem_version_promoter.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gem_version_promoter.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/gem_version_promoter.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/gem_version_promoter.rb</a></div><div class='hunk'>@@ -7,14 +7,13 @@ module Bundler</div><div class='ctx'>   # available dependency versions as found in its index, before returning it to</div><div class='ctx'>   # to the resolution engine to select the best version.</div><div class='ctx'>   class GemVersionPromoter</div><div class='del'>-    DEBUG = ENV["DEBUG_RESOLVER"]</div><div class='del'>-</div><div class='del'>-    attr_reader :level, :locked_specs, :unlock_gems</div><div class='add'>+    attr_reader :level</div><div class='add'>+    attr_accessor :pre</div><div class='ctx'> </div><div class='ctx'>     # By default, strict is false, meaning every available version of a gem</div><div class='ctx'>     # is returned from sort_versions. The order gives preference to the</div><div class='ctx'>     # requested level (:patch, :minor, :major) but in complicated requirement</div><div class='del'>-    # cases some gems will by necessity by promoted past the requested level,</div><div class='add'>+    # cases some gems will by necessity be promoted past the requested level,</div><div class='ctx'>     # or even reverted to older versions.</div><div class='ctx'>     #</div><div class='ctx'>     # If strict is set to true, the results from sort_versions will be</div><div class='hunk'>@@ -24,24 +23,13 @@ module Bundler</div><div class='ctx'>     # existing in the referenced source.</div><div class='ctx'>     attr_accessor :strict</div><div class='ctx'> </div><div class='del'>-    attr_accessor :prerelease_specified</div><div class='del'>-</div><div class='del'>-    # Given a list of locked_specs and a list of gems to unlock creates a</div><div class='del'>-    # GemVersionPromoter instance.</div><div class='add'>+    # Creates a GemVersionPromoter instance.</div><div class='ctx'>     #</div><div class='del'>-    # @param locked_specs [SpecSet] All current locked specs. Unlike Definition</div><div class='del'>-    #   where this list is empty if all gems are being updated, this should</div><div class='del'>-    #   always be populated for all gems so this class can properly function.</div><div class='del'>-    # @param unlock_gems [String] List of gem names being unlocked. If empty,</div><div class='del'>-    #   all gems will be considered unlocked.</div><div class='ctx'>     # @return [GemVersionPromoter]</div><div class='del'>-    def initialize(locked_specs = SpecSet.new([]), unlock_gems = [])</div><div class='add'>+    def initialize</div><div class='ctx'>       @level = :major</div><div class='ctx'>       @strict = false</div><div class='del'>-      @locked_specs = locked_specs</div><div class='del'>-      @unlock_gems = unlock_gems</div><div class='del'>-      @sort_versions = {}</div><div class='del'>-      @prerelease_specified = {}</div><div class='add'>+      @pre = false</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # @param value [Symbol] One of three Symbols: :major, :minor or :patch.</div><div class='hunk'>@@ -55,37 +43,19 @@ module Bundler</div><div class='ctx'>       @level = v</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Given a Dependency and an Array of SpecGroups of available versions for a</div><div class='del'>-    # gem, this method will return the Array of SpecGroups sorted (and possibly</div><div class='del'>-    # truncated if strict is true) in an order to give preference to the current</div><div class='del'>-    # level (:major, :minor or :patch) when resolution is deciding what versions</div><div class='del'>-    # best resolve all dependencies in the bundle.</div><div class='del'>-    # @param dep [Dependency] The Dependency of the gem.</div><div class='del'>-    # @param spec_groups [SpecGroup] An array of SpecGroups for the same gem</div><div class='del'>-    #    named in the @dep param.</div><div class='del'>-    # @return [SpecGroup] A new instance of the SpecGroup Array sorted and</div><div class='add'>+    # Given a Resolver::Package and an Array of Specifications of available</div><div class='add'>+    # versions for a gem, this method will return the Array of Specifications</div><div class='add'>+    # sorted (and possibly truncated if strict is true) in an order to give</div><div class='add'>+    # preference to the current level (:major, :minor or :patch) when resolution</div><div class='add'>+    # is deciding what versions best resolve all dependencies in the bundle.</div><div class='add'>+    # @param package [Resolver::Package] The package being resolved.</div><div class='add'>+    # @param specs [Specification] An array of Specifications for the package.</div><div class='add'>+    # @return [Specification] A new instance of the Specification Array sorted and</div><div class='ctx'>     #    possibly filtered.</div><div class='del'>-    def sort_versions(dep, spec_groups)</div><div class='del'>-      before_result = "before sort_versions: #{debug_format_result(dep, spec_groups).inspect}" if DEBUG</div><div class='del'>-</div><div class='del'>-      @sort_versions[dep] ||= begin</div><div class='del'>-        gem_name = dep.name</div><div class='add'>+    def sort_versions(package, specs)</div><div class='add'>+      specs = filter_dep_specs(specs, package) if strict</div><div class='ctx'> </div><div class='del'>-        # An Array per version returned, different entries for different platforms.</div><div class='del'>-        # We only need the version here so it's ok to hard code this to the first instance.</div><div class='del'>-        locked_spec = locked_specs[gem_name].first</div><div class='del'>-</div><div class='del'>-        if strict</div><div class='del'>-          filter_dep_specs(spec_groups, locked_spec)</div><div class='del'>-        else</div><div class='del'>-          sort_dep_specs(spec_groups, locked_spec)</div><div class='del'>-        end.tap do |specs|</div><div class='del'>-          if DEBUG</div><div class='del'>-            STDERR.puts before_result</div><div class='del'>-            STDERR.puts " after sort_versions: #{debug_format_result(dep, specs).inspect}"</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='add'>+      sort_dep_specs(specs, package)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # @return [bool] Convenience method for testing value of level variable.</div><div class='hunk'>@@ -98,80 +68,72 @@ module Bundler</div><div class='ctx'>       level == :minor</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    # @return [bool] Convenience method for testing value of pre variable.</div><div class='add'>+    def pre?</div><div class='add'>+      pre == true</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-    def filter_dep_specs(spec_groups, locked_spec)</div><div class='del'>-      res = spec_groups.select do |spec_group|</div><div class='del'>-        if locked_spec &amp;&amp; !major?</div><div class='del'>-          gsv = spec_group.version</div><div class='del'>-          lsv = locked_spec.version</div><div class='add'>+    private</div><div class='ctx'> </div><div class='del'>-          must_match = minor? ? [0] : [0, 1]</div><div class='add'>+    def filter_dep_specs(specs, package)</div><div class='add'>+      locked_version = package.locked_version</div><div class='add'>+      return specs if locked_version.nil? || major?</div><div class='ctx'> </div><div class='del'>-          matches = must_match.map {|idx| gsv.segments[idx] == lsv.segments[idx] }</div><div class='del'>-          (matches.uniq == [true]) ? (gsv &gt;= lsv) : false</div><div class='del'>-        else</div><div class='del'>-          true</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='add'>+      specs.select do |spec|</div><div class='add'>+        gsv = spec.version</div><div class='ctx'> </div><div class='del'>-      sort_dep_specs(res, locked_spec)</div><div class='del'>-    end</div><div class='add'>+        must_match = minor? ? [0] : [0, 1]</div><div class='ctx'> </div><div class='del'>-    def sort_dep_specs(spec_groups, locked_spec)</div><div class='del'>-      return spec_groups unless locked_spec</div><div class='del'>-      @gem_name = locked_spec.name</div><div class='del'>-      @locked_version = locked_spec.version</div><div class='add'>+        all_match = must_match.all? {|idx| gsv.segments[idx] == locked_version.segments[idx] }</div><div class='add'>+        all_match &amp;&amp; gsv &gt;= locked_version</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      result = spec_groups.sort do |a, b|</div><div class='del'>-        @a_ver = a.version</div><div class='del'>-        @b_ver = b.version</div><div class='add'>+    def sort_dep_specs(specs, package)</div><div class='add'>+      locked_version = package.locked_version</div><div class='ctx'> </div><div class='del'>-        unless @prerelease_specified[@gem_name]</div><div class='del'>-          a_pre = @a_ver.prerelease?</div><div class='del'>-          b_pre = @b_ver.prerelease?</div><div class='add'>+      result = specs.sort do |a, b|</div><div class='add'>+        unless package.prerelease_specified? || pre?</div><div class='add'>+          a_pre = a.prerelease?</div><div class='add'>+          b_pre = b.prerelease?</div><div class='ctx'> </div><div class='ctx'>           next -1 if a_pre &amp;&amp; !b_pre</div><div class='ctx'>           next  1 if b_pre &amp;&amp; !a_pre</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         if major?</div><div class='del'>-          @a_ver &lt;=&gt; @b_ver</div><div class='del'>-        elsif either_version_older_than_locked</div><div class='del'>-          @a_ver &lt;=&gt; @b_ver</div><div class='del'>-        elsif segments_do_not_match(:major)</div><div class='del'>-          @b_ver &lt;=&gt; @a_ver</div><div class='del'>-        elsif !minor? &amp;&amp; segments_do_not_match(:minor)</div><div class='del'>-          @b_ver &lt;=&gt; @a_ver</div><div class='add'>+          a &lt;=&gt; b</div><div class='add'>+        elsif either_version_older_than_locked?(a, b, locked_version)</div><div class='add'>+          a &lt;=&gt; b</div><div class='add'>+        elsif segments_do_not_match?(a, b, :major)</div><div class='add'>+          b &lt;=&gt; a</div><div class='add'>+        elsif !minor? &amp;&amp; segments_do_not_match?(a, b, :minor)</div><div class='add'>+          b &lt;=&gt; a</div><div class='ctx'>         else</div><div class='del'>-          @a_ver &lt;=&gt; @b_ver</div><div class='add'>+          a &lt;=&gt; b</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='del'>-      post_sort(result)</div><div class='add'>+      post_sort(result, package.unlock?, locked_version)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def either_version_older_than_locked</div><div class='del'>-      @a_ver &lt; @locked_version || @b_ver &lt; @locked_version</div><div class='add'>+    def either_version_older_than_locked?(a, b, locked_version)</div><div class='add'>+      locked_version &amp;&amp; (a.version &lt; locked_version || b.version &lt; locked_version)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def segments_do_not_match(level)</div><div class='add'>+    def segments_do_not_match?(a, b, level)</div><div class='ctx'>       index = [:major, :minor].index(level)</div><div class='del'>-      @a_ver.segments[index] != @b_ver.segments[index]</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def unlocking_gem?</div><div class='del'>-      unlock_gems.empty? || unlock_gems.include?(@gem_name)</div><div class='add'>+      a.segments[index] != b.segments[index]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Specific version moves can't always reliably be done during sorting</div><div class='ctx'>     # as not all elements are compared against each other.</div><div class='del'>-    def post_sort(result)</div><div class='add'>+    def post_sort(result, unlock, locked_version)</div><div class='ctx'>       # default :major behavior in Bundler does not do this</div><div class='ctx'>       return result if major?</div><div class='del'>-      if unlocking_gem?</div><div class='add'>+      if unlock || locked_version.nil?</div><div class='ctx'>         result</div><div class='ctx'>       else</div><div class='del'>-        move_version_to_end(result, @locked_version)</div><div class='add'>+        move_version_to_end(result, locked_version)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -179,12 +141,5 @@ module Bundler</div><div class='ctx'>       move, keep = result.partition {|s| s.version.to_s == version.to_s }</div><div class='ctx'>       keep.concat(move)</div><div class='ctx'>     end</div><div class='del'>-</div><div class='del'>-    def debug_format_result(dep, spec_groups)</div><div class='del'>-      a = [dep.to_s,</div><div class='del'>-           spec_groups.map {|sg| [sg.version, sg.dependencies_for_activated_platforms.map {|dp| [dp.name, dp.requirement.to_s] }] }]</div><div class='del'>-      last_map = a.last.map {|sg_data| [sg_data.first.version, sg_data.last.map {|aa| aa.join(" ") }] }</div><div class='del'>-      [a.first, last_map, level, strict ? :strict : :not_strict]</div><div class='del'>-    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/gemdeps.rb b/lib/bundler/gemdeps.rb<br/>deleted file mode 100644<br/>index cd4b25d0e6..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/gemdeps.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/gemdeps.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,29 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler</div><div class='del'>-  class Gemdeps</div><div class='del'>-    def initialize(runtime)</div><div class='del'>-      @runtime = runtime</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def requested_specs</div><div class='del'>-      @runtime.requested_specs</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def specs</div><div class='del'>-      @runtime.specs</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def dependencies</div><div class='del'>-      @runtime.dependencies</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def current_dependencies</div><div class='del'>-      @runtime.current_dependencies</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def requires</div><div class='del'>-      @runtime.requires</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/graph.rb b/lib/bundler/graph.rb<br/>index de6bba0214..3c008e63e3 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/graph.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/graph.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/graph.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/graph.rb</a></div><div class='hunk'>@@ -27,7 +27,7 @@ module Bundler</div><div class='ctx'>       GraphVizClient.new(self).run</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def _populate_relations</div><div class='ctx'>       parent_dependencies = _groups.values.to_set.flatten</div><div class='hunk'>@@ -114,10 +114,10 @@ module Bundler</div><div class='ctx'>         @groups.each do |group|</div><div class='ctx'>           g.add_nodes(</div><div class='ctx'>             group, {</div><div class='del'>-              :style     =&gt; "filled",</div><div class='add'>+              :style =&gt; "filled",</div><div class='ctx'>               :fillcolor =&gt; "#B9B9D5",</div><div class='del'>-              :shape     =&gt; "box3d",</div><div class='del'>-              :fontsize  =&gt; 16</div><div class='add'>+              :shape =&gt; "box3d",</div><div class='add'>+              :fontsize =&gt; 16,</div><div class='ctx'>             }.merge(@node_options[group])</div><div class='ctx'>           )</div><div class='ctx'>         end</div><div class='hunk'>@@ -142,7 +142,7 @@ module Bundler</div><div class='ctx'>             g.output @output_format.to_sym =&gt; "#{@output_file}.#{@output_format}"</div><div class='ctx'>             Bundler.ui.info "#{@output_file}.#{@output_format}"</div><div class='ctx'>           rescue ArgumentError =&gt; e</div><div class='del'>-            $stderr.puts "Unsupported output format. See Ruby-Graphviz/lib/graphviz/constants.rb"</div><div class='add'>+            warn "Unsupported output format. See Ruby-Graphviz/lib/graphviz/constants.rb"</div><div class='ctx'>             raise e</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='head'>diff --git a/lib/bundler/index.rb b/lib/bundler/index.rb<br/>index 9166a92738..b8c599f63a 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/index.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/index.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/index.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/index.rb</a></div><div class='hunk'>@@ -1,7 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "set"</div><div class='del'>-</div><div class='ctx'> module Bundler</div><div class='ctx'>   class Index</div><div class='ctx'>     include Enumerable</div><div class='hunk'>@@ -15,8 +13,8 @@ module Bundler</div><div class='ctx'>     attr_reader :specs, :all_specs, :sources</div><div class='ctx'>     protected :specs, :all_specs</div><div class='ctx'> </div><div class='del'>-    RUBY = "ruby".freeze</div><div class='del'>-    NULL = "\0".freeze</div><div class='add'>+    RUBY = "ruby"</div><div class='add'>+    NULL = "\0"</div><div class='ctx'> </div><div class='ctx'>     def initialize</div><div class='ctx'>       @sources = []</div><div class='hunk'>@@ -58,42 +56,21 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     # Search this index's specs, and any source indexes that this index knows</div><div class='ctx'>     # about, returning all of the results.</div><div class='del'>-    def search(query, base = nil)</div><div class='del'>-      sort_specs(unsorted_search(query, base))</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def unsorted_search(query, base)</div><div class='del'>-      results = local_search(query, base)</div><div class='del'>-</div><div class='del'>-      seen = results.map(&amp;:full_name).to_set unless @sources.empty?</div><div class='add'>+    def search(query)</div><div class='add'>+      results = local_search(query)</div><div class='add'>+      return results unless @sources.any?</div><div class='ctx'> </div><div class='ctx'>       @sources.each do |source|</div><div class='del'>-        source.unsorted_search(query, base).each do |spec|</div><div class='del'>-          results &lt;&lt; spec if seen.add?(spec.full_name)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      results</div><div class='del'>-    end</div><div class='del'>-    protected :unsorted_search</div><div class='del'>-</div><div class='del'>-    def self.sort_specs(specs)</div><div class='del'>-      specs.sort_by do |s|</div><div class='del'>-        platform_string = s.platform.to_s</div><div class='del'>-        [s.version, platform_string == RUBY ? NULL : platform_string]</div><div class='add'>+        results.concat(source.search(query))</div><div class='ctx'>       end</div><div class='add'>+      results.uniq(&amp;:full_name)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def sort_specs(specs)</div><div class='del'>-      self.class.sort_specs(specs)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def local_search(query, base = nil)</div><div class='add'>+    def local_search(query)</div><div class='ctx'>       case query</div><div class='ctx'>       when Gem::Specification, RemoteSpecification, LazySpecification, EndpointSpecification then search_by_spec(query)</div><div class='ctx'>       when String then specs_by_name(query)</div><div class='del'>-      when Gem::Dependency then search_by_dependency(query, base)</div><div class='del'>-      when DepProxy then search_by_dependency(query.dep, base)</div><div class='add'>+      when Array then specs_by_name_and_version(*query)</div><div class='ctx'>       else</div><div class='ctx'>         raise "You can't search for a #{query.inspect}."</div><div class='ctx'>       end</div><div class='hunk'>@@ -121,10 +98,9 @@ module Bundler</div><div class='ctx'>       names</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # returns a list of the dependencies</div><div class='ctx'>     def unmet_dependency_names</div><div class='ctx'>       dependency_names.select do |name|</div><div class='del'>-        name != "bundler" &amp;&amp; search(name).empty?</div><div class='add'>+        search(name).empty?</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -170,7 +146,7 @@ module Bundler</div><div class='ctx'>     def dependencies_eql?(spec, other_spec)</div><div class='ctx'>       deps       = spec.dependencies.select {|d| d.type != :development }</div><div class='ctx'>       other_deps = other_spec.dependencies.select {|d| d.type != :development }</div><div class='del'>-      Set.new(deps) == Set.new(other_deps)</div><div class='add'>+      deps.sort == other_deps.sort</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def add_source(index)</div><div class='hunk'>@@ -179,28 +155,14 @@ module Bundler</div><div class='ctx'>       @sources.uniq! # need to use uniq! here instead of checking for the item before adding</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='del'>-    def specs_by_name(name)</div><div class='del'>-      @specs[name].values</div><div class='add'>+    def specs_by_name_and_version(name, version)</div><div class='add'>+      specs_by_name(name).select {|spec| spec.version == version }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def search_by_dependency(dependency, base = nil)</div><div class='del'>-      @cache[base || false] ||= {}</div><div class='del'>-      @cache[base || false][dependency] ||= begin</div><div class='del'>-        specs = specs_by_name(dependency.name)</div><div class='del'>-        specs += base if base</div><div class='del'>-        found = specs.select do |spec|</div><div class='del'>-          next true if spec.source.is_a?(Source::Gemspec)</div><div class='del'>-          if base # allow all platforms when searching from a lockfile</div><div class='del'>-            dependency.matches_spec?(spec)</div><div class='del'>-          else</div><div class='del'>-            dependency.matches_spec?(spec) &amp;&amp; Gem::Platform.match(spec.platform)</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        found</div><div class='del'>-      end</div><div class='add'>+    def specs_by_name(name)</div><div class='add'>+      @specs[name].values</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     EMPTY_SEARCH = [].freeze</div><div class='head'>diff --git a/lib/bundler/injector.rb b/lib/bundler/injector.rb<br/>index 1bb29f0b36..cb644a7f69 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/injector.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/injector.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/injector.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/injector.rb</a></div><div class='hunk'>@@ -2,7 +2,7 @@</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class Injector</div><div class='del'>-    INJECTED_GEMS = "injected gems".freeze</div><div class='add'>+    INJECTED_GEMS = "injected gems"</div><div class='ctx'> </div><div class='ctx'>     def self.inject(new_deps, options = {})</div><div class='ctx'>       injector = new(new_deps, options)</div><div class='hunk'>@@ -70,11 +70,15 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>         show_warning("No gems were removed from the gemfile.") if deps.empty?</div><div class='ctx'> </div><div class='del'>-        deps.each {|dep| Bundler.ui.confirm "#{SharedHelpers.pretty_dependency(dep, false)} was removed." }</div><div class='add'>+        deps.each {|dep| Bundler.ui.confirm "#{SharedHelpers.pretty_dependency(dep)} was removed." }</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      # Invalidate the cached Bundler.definition.</div><div class='add'>+      # This prevents e.g. `bundle remove ...` from using outdated information.</div><div class='add'>+      Bundler.reset_paths!</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def conservative_version(spec)</div><div class='ctx'>       version = spec.version</div><div class='hunk'>@@ -111,8 +115,14 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         source = ", :source =&gt; \"#{d.source}\"" unless d.source.nil?</div><div class='del'>-</div><div class='del'>-        %(gem #{name}#{requirement}#{group}#{source})</div><div class='add'>+        path = ", :path =&gt; \"#{d.path}\"" unless d.path.nil?</div><div class='add'>+        git = ", :git =&gt; \"#{d.git}\"" unless d.git.nil?</div><div class='add'>+        github = ", :github =&gt; \"#{d.github}\"" unless d.github.nil?</div><div class='add'>+        branch = ", :branch =&gt; \"#{d.branch}\"" unless d.branch.nil?</div><div class='add'>+        ref = ", :ref =&gt; \"#{d.ref}\"" unless d.ref.nil?</div><div class='add'>+        require_path = ", :require =&gt; #{convert_autorequire(d.autorequire)}" unless d.autorequire.nil?</div><div class='add'>+</div><div class='add'>+        %(gem #{name}#{requirement}#{group}#{source}#{path}#{git}#{github}#{branch}#{ref}#{require_path})</div><div class='ctx'>       end.join("\n")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -123,10 +133,10 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # evalutes a gemfile to remove the specified gem</div><div class='add'>+    # evaluates a gemfile to remove the specified gem</div><div class='ctx'>     # from it.</div><div class='ctx'>     def remove_deps(gemfile_path)</div><div class='del'>-      initial_gemfile = IO.readlines(gemfile_path)</div><div class='add'>+      initial_gemfile = File.readlines(gemfile_path)</div><div class='ctx'> </div><div class='ctx'>       Bundler.ui.info "Removing gems from #{gemfile_path}"</div><div class='ctx'> </div><div class='hunk'>@@ -136,8 +146,8 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       removed_deps = remove_gems_from_dependencies(builder, @deps, gemfile_path)</div><div class='ctx'> </div><div class='del'>-      # abort the opertion if no gems were removed</div><div class='del'>-      # no need to operate on gemfile furthur</div><div class='add'>+      # abort the operation if no gems were removed</div><div class='add'>+      # no need to operate on gemfile further</div><div class='ctx'>       return [] if removed_deps.empty?</div><div class='ctx'> </div><div class='ctx'>       cleaned_gemfile = remove_gems_from_gemfile(@deps, gemfile_path)</div><div class='hunk'>@@ -153,8 +163,8 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     # @param [Dsl]      builder Dsl object of current Gemfile.</div><div class='ctx'>     # @param [Array]    gems Array of names of gems to be removed.</div><div class='del'>-    # @param [Pathname] path of the Gemfile</div><div class='del'>-    # @return [Array]   removed_deps Array of removed dependencies.</div><div class='add'>+    # @param [Pathname] gemfile_path Path of the Gemfile.</div><div class='add'>+    # @return [Array]   Array of removed dependencies.</div><div class='ctx'>     def remove_gems_from_dependencies(builder, gems, gemfile_path)</div><div class='ctx'>       removed_deps = []</div><div class='ctx'> </div><div class='hunk'>@@ -177,11 +187,22 @@ module Bundler</div><div class='ctx'>     # @param [Pathname] gemfile_path The Gemfile from which to remove dependencies.</div><div class='ctx'>     def remove_gems_from_gemfile(gems, gemfile_path)</div><div class='ctx'>       patterns = /gem\s+(['"])#{Regexp.union(gems)}\1|gem\s*\((['"])#{Regexp.union(gems)}\2\)/</div><div class='add'>+      new_gemfile = []</div><div class='add'>+      multiline_removal = false</div><div class='add'>+      File.readlines(gemfile_path).each do |line|</div><div class='add'>+        match_data = line.match(patterns)</div><div class='add'>+        if match_data &amp;&amp; is_not_within_comment?(line, match_data)</div><div class='add'>+          multiline_removal = line.rstrip.end_with?(",")</div><div class='add'>+          # skip lines which match the regex</div><div class='add'>+          next</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-      # remove lines which match the regex</div><div class='del'>-      new_gemfile = IO.readlines(gemfile_path).reject {|line| line.match(patterns) }</div><div class='add'>+        # skip followup lines until line does not end with ','</div><div class='add'>+        new_gemfile &lt;&lt; line unless multiline_removal</div><div class='add'>+        multiline_removal = line.rstrip.end_with?(",") if multiline_removal</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-      # remove lone \n and append them with other strings</div><div class='add'>+      # remove line \n and append them with other strings</div><div class='ctx'>       new_gemfile.each_with_index do |_line, index|</div><div class='ctx'>         if new_gemfile[index + 1] == "\n"</div><div class='ctx'>           new_gemfile[index] += new_gemfile[index + 1]</div><div class='hunk'>@@ -194,6 +215,13 @@ module Bundler</div><div class='ctx'>       new_gemfile.join.chomp</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # @param [String] line          Individual line of gemfile content.</div><div class='add'>+    # @param [MatchData] match_data Data about Regex match.</div><div class='add'>+    def is_not_within_comment?(line, match_data)</div><div class='add'>+      match_start_index = match_data.offset(0).first</div><div class='add'>+      !line[0..match_start_index].include?("#")</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # @param [Array] gemfile       Array of gemfile contents.</div><div class='ctx'>     # @param [String] block_name   Name of block name to look for.</div><div class='ctx'>     def remove_nested_blocks(gemfile, block_name)</div><div class='hunk'>@@ -206,8 +234,8 @@ module Bundler</div><div class='ctx'>         nested_blocks -= 1</div><div class='ctx'> </div><div class='ctx'>         gemfile.each_with_index do |line, index|</div><div class='del'>-          next unless !line.nil? &amp;&amp; line.include?(block_name)</div><div class='del'>-          if gemfile[index + 1] =~ /^\s*end\s*$/</div><div class='add'>+          next unless !line.nil? &amp;&amp; line.strip.start_with?(block_name)</div><div class='add'>+          if /^\s*end\s*$/.match?(gemfile[index + 1])</div><div class='ctx'>             gemfile[index] = nil</div><div class='ctx'>             gemfile[index + 1] = nil</div><div class='ctx'>           end</div><div class='hunk'>@@ -222,7 +250,7 @@ module Bundler</div><div class='ctx'>     # @param [Array] removed_deps      Array of removed dependencies.</div><div class='ctx'>     # @param [Array] initial_gemfile   Contents of original Gemfile before any operation.</div><div class='ctx'>     def cross_check_for_errors(gemfile_path, original_deps, removed_deps, initial_gemfile)</div><div class='del'>-      # evalute the new gemfile to look for any failure cases</div><div class='add'>+      # evaluate the new gemfile to look for any failure cases</div><div class='ctx'>       builder = Dsl.new</div><div class='ctx'>       builder.eval_gemfile(gemfile_path)</div><div class='ctx'> </div><div class='hunk'>@@ -249,5 +277,11 @@ module Bundler</div><div class='ctx'>     def show_warning(message)</div><div class='ctx'>       Bundler.ui.info Bundler.ui.add_color(message, :yellow)</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def convert_autorequire(autorequire)</div><div class='add'>+      autorequire = autorequire.first</div><div class='add'>+      return autorequire if autorequire == "false"</div><div class='add'>+      autorequire.inspect</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/inline.rb b/lib/bundler/inline.rb<br/>index 9d25f3261a..5c184f67a1 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/inline.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/inline.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/inline.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/inline.rb</a></div><div class='hunk'>@@ -1,7 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/compatibility_guard"</div><div class='del'>-</div><div class='ctx'> # Allows for declaring a Gemfile inline in a ruby script, optionally installing</div><div class='ctx'> # any gems that aren't already installed on the user's system.</div><div class='ctx'> #</div><div class='hunk'>@@ -32,43 +30,44 @@ require "bundler/compatibility_guard"</div><div class='ctx'> #          puts Pod::VERSION # =&gt; "0.34.4"</div><div class='ctx'> #</div><div class='ctx'> def gemfile(install = false, options = {}, &amp;gemfile)</div><div class='del'>-  require "bundler"</div><div class='add'>+  require_relative "../bundler"</div><div class='add'>+  Bundler.reset!</div><div class='ctx'> </div><div class='ctx'>   opts = options.dup</div><div class='ctx'>   ui = opts.delete(:ui) { Bundler::UI::Shell.new }</div><div class='add'>+  ui.level = "silent" if opts.delete(:quiet) || !install</div><div class='add'>+  Bundler.ui = ui</div><div class='ctx'>   raise ArgumentError, "Unknown options: #{opts.keys.join(", ")}" unless opts.empty?</div><div class='ctx'> </div><div class='del'>-  old_root = Bundler.method(:root)</div><div class='del'>-  def Bundler.root</div><div class='del'>-    Bundler::SharedHelpers.pwd.expand_path</div><div class='del'>-  end</div><div class='del'>-  Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", "Gemfile"</div><div class='del'>-</div><div class='del'>-  Bundler::Plugin.gemfile_install(&amp;gemfile) if Bundler.feature_flag.plugins?</div><div class='del'>-  builder = Bundler::Dsl.new</div><div class='del'>-  builder.instance_eval(&amp;gemfile)</div><div class='add'>+  Bundler.with_unbundled_env do</div><div class='add'>+    Bundler.instance_variable_set(:@bundle_path, Pathname.new(Gem.dir))</div><div class='add'>+    Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", "Gemfile"</div><div class='ctx'> </div><div class='del'>-  definition = builder.to_definition(nil, true)</div><div class='del'>-  def definition.lock(*); end</div><div class='del'>-  definition.validate_runtime!</div><div class='add'>+    Bundler::Plugin.gemfile_install(&amp;gemfile) if Bundler.feature_flag.plugins?</div><div class='add'>+    builder = Bundler::Dsl.new</div><div class='add'>+    builder.instance_eval(&amp;gemfile)</div><div class='add'>+    builder.check_primary_source_safety</div><div class='ctx'> </div><div class='del'>-  missing_specs = proc do</div><div class='del'>-    definition.missing_specs?</div><div class='del'>-  end</div><div class='add'>+    Bundler.settings.temporary(:deployment =&gt; false, :frozen =&gt; false) do</div><div class='add'>+      definition = builder.to_definition(nil, true)</div><div class='add'>+      def definition.lock(*); end</div><div class='add'>+      definition.validate_runtime!</div><div class='ctx'> </div><div class='del'>-  Bundler.ui = ui if install</div><div class='del'>-  if install || missing_specs.call</div><div class='del'>-    Bundler.settings.temporary(:inline =&gt; true) do</div><div class='del'>-      installer = Bundler::Installer.install(Bundler.root, definition, :system =&gt; true)</div><div class='del'>-      installer.post_install_messages.each do |name, message|</div><div class='del'>-        Bundler.ui.info "Post-install message from #{name}:\n#{message}"</div><div class='add'>+      if install || definition.missing_specs?</div><div class='add'>+        Bundler.settings.temporary(:inline =&gt; true, :no_install =&gt; false) do</div><div class='add'>+          installer = Bundler::Installer.install(Bundler.root, definition, :system =&gt; true)</div><div class='add'>+          installer.post_install_messages.each do |name, message|</div><div class='add'>+            Bundler.ui.info "Post-install message from #{name}:\n#{message}"</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      runtime = Bundler::Runtime.new(nil, definition)</div><div class='add'>+      runtime.setup.require</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  runtime = Bundler::Runtime.new(nil, definition)</div><div class='del'>-  runtime.setup.require</div><div class='del'>-ensure</div><div class='del'>-  bundler_module = class &lt;&lt; Bundler; self; end</div><div class='del'>-  bundler_module.send(:define_method, :root, old_root) if old_root</div><div class='add'>+  if ENV["BUNDLE_GEMFILE"].nil?</div><div class='add'>+    ENV["BUNDLE_GEMFILE"] = ""</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/installer.rb b/lib/bundler/installer.rb<br/>index b49cfb6703..59b6a6ad22 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/installer.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/installer.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/installer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/installer.rb</a></div><div class='hunk'>@@ -1,11 +1,9 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "erb"</div><div class='del'>-require "rubygems/dependency_installer"</div><div class='del'>-require "bundler/worker"</div><div class='del'>-require "bundler/installer/parallel_installer"</div><div class='del'>-require "bundler/installer/standalone"</div><div class='del'>-require "bundler/installer/gem_installer"</div><div class='add'>+require_relative "worker"</div><div class='add'>+require_relative "installer/parallel_installer"</div><div class='add'>+require_relative "installer/standalone"</div><div class='add'>+require_relative "installer/gem_installer"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class Installer</div><div class='hunk'>@@ -15,7 +13,7 @@ module Bundler</div><div class='ctx'>       Installer.ambiguous_gems = []</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    attr_reader :post_install_messages</div><div class='add'>+    attr_reader :post_install_messages, :definition</div><div class='ctx'> </div><div class='ctx'>     # Begins the installation process for Bundler.</div><div class='ctx'>     # For more information see the #run method on this class.</div><div class='hunk'>@@ -68,7 +66,7 @@ module Bundler</div><div class='ctx'>     # require paths and save them in a `setup.rb` file. See `bundle standalone --help` for more</div><div class='ctx'>     # information.</div><div class='ctx'>     def run(options)</div><div class='del'>-      create_bundle_path</div><div class='add'>+      Bundler.create_bundle_path</div><div class='ctx'> </div><div class='ctx'>       ProcessLock.lock do</div><div class='ctx'>         if Bundler.frozen_bundle?</div><div class='hunk'>@@ -83,7 +81,6 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>         if resolve_if_needed(options)</div><div class='ctx'>           ensure_specs_are_compatible!</div><div class='del'>-          warn_on_incompatible_bundler_deps</div><div class='ctx'>           load_plugins</div><div class='ctx'>           options.delete(:jobs)</div><div class='ctx'>         else</div><div class='hunk'>@@ -91,7 +88,9 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'>         install(options)</div><div class='ctx'> </div><div class='del'>-        lock unless Bundler.frozen_bundle?</div><div class='add'>+        Gem::Specification.reset # invalidate gem specification cache so that installed gems are immediately available</div><div class='add'>+</div><div class='add'>+        lock</div><div class='ctx'>         Standalone.new(options[:standalone], @definition).generate if options[:standalone]</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -120,7 +119,7 @@ module Bundler</div><div class='ctx'>       relative_gemfile_path = relative_gemfile_path</div><div class='ctx'>       ruby_command = Thor::Util.ruby_command</div><div class='ctx'>       ruby_command = ruby_command</div><div class='del'>-      template_path = File.expand_path("../templates/Executable", __FILE__)</div><div class='add'>+      template_path = File.expand_path("templates/Executable", __dir__)</div><div class='ctx'>       if spec.name == "bundler"</div><div class='ctx'>         template_path += ".bundler"</div><div class='ctx'>         spec.executables = %(bundle)</div><div class='hunk'>@@ -135,12 +134,14 @@ module Bundler</div><div class='ctx'>           next</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        File.open(binstub_path, "w", 0o777 &amp; ~File.umask) do |f|</div><div class='del'>-          if RUBY_VERSION &gt;= "2.6"</div><div class='del'>-            f.puts ERB.new(template, :trim_mode =&gt; "-").result(binding)</div><div class='del'>-          else</div><div class='del'>-            f.puts ERB.new(template, nil, "-").result(binding)</div><div class='del'>-          end</div><div class='add'>+        mode = Gem.win_platform? ? "wb:UTF-8" : "w"</div><div class='add'>+        require "erb"</div><div class='add'>+        content = ERB.new(template, :trim_mode =&gt; "-").result(binding)</div><div class='add'>+</div><div class='add'>+        File.write(binstub_path, content, :mode =&gt; mode, :perm =&gt; 0o777 &amp; ~File.umask)</div><div class='add'>+        if Gem.win_platform? || options[:all_platforms]</div><div class='add'>+          prefix = "@ruby -x \"%~f0\" %*\n@exit /b %ERRORLEVEL%\n\n"</div><div class='add'>+          File.write("#{binstub_path}.cmd", prefix + content, :mode =&gt; mode)</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -159,7 +160,7 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def generate_standalone_bundler_executable_stubs(spec)</div><div class='add'>+    def generate_standalone_bundler_executable_stubs(spec, options = {})</div><div class='ctx'>       # double-assignment to avoid warnings about variables that will be used by ERB</div><div class='ctx'>       bin_path = Bundler.bin_path</div><div class='ctx'>       unless path = Bundler.settings[:path]</div><div class='hunk'>@@ -167,7 +168,7 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>       standalone_path = Bundler.root.join(path).relative_path_from(bin_path)</div><div class='ctx'>       standalone_path = standalone_path</div><div class='del'>-      template = File.read(File.expand_path("../templates/Executable.standalone", __FILE__))</div><div class='add'>+      template = File.read(File.expand_path("templates/Executable.standalone", __dir__))</div><div class='ctx'>       ruby_command = Thor::Util.ruby_command</div><div class='ctx'>       ruby_command = ruby_command</div><div class='ctx'> </div><div class='hunk'>@@ -175,17 +176,20 @@ module Bundler</div><div class='ctx'>         next if executable == "bundle"</div><div class='ctx'>         executable_path = Pathname(spec.full_gem_path).join(spec.bindir, executable).relative_path_from(bin_path)</div><div class='ctx'>         executable_path = executable_path</div><div class='del'>-        File.open "#{bin_path}/#{executable}", "w", 0o755 do |f|</div><div class='del'>-          if RUBY_VERSION &gt;= "2.6"</div><div class='del'>-            f.puts ERB.new(template, :trim_mode =&gt; "-").result(binding)</div><div class='del'>-          else</div><div class='del'>-            f.puts ERB.new(template, nil, "-").result(binding)</div><div class='del'>-          end</div><div class='add'>+</div><div class='add'>+        mode = Gem.win_platform? ? "wb:UTF-8" : "w"</div><div class='add'>+        require "erb"</div><div class='add'>+        content = ERB.new(template, :trim_mode =&gt; "-").result(binding)</div><div class='add'>+</div><div class='add'>+        File.write("#{bin_path}/#{executable}", content, :mode =&gt; mode, :perm =&gt; 0o755)</div><div class='add'>+        if Gem.win_platform? || options[:all_platforms]</div><div class='add'>+          prefix = "@ruby -x \"%~f0\" %*\n@exit /b %ERRORLEVEL%\n\n"</div><div class='add'>+          File.write("#{bin_path}/#{executable}.cmd", prefix + content, :mode =&gt; mode)</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     # the order that the resolver provides is significant, since</div><div class='ctx'>     # dependencies might affect the installation of a gem.</div><div class='hunk'>@@ -202,27 +206,11 @@ module Bundler</div><div class='ctx'>         return jobs</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      return 1 unless can_install_in_parallel?</div><div class='del'>-</div><div class='del'>-      auto_config_jobs = Bundler.feature_flag.auto_config_jobs?</div><div class='ctx'>       if jobs = Bundler.settings[:jobs]</div><div class='del'>-        if auto_config_jobs</div><div class='del'>-          jobs</div><div class='del'>-        else</div><div class='del'>-          [jobs.pred, 1].max</div><div class='del'>-        end</div><div class='del'>-      elsif auto_config_jobs</div><div class='del'>-        processor_count</div><div class='del'>-      else</div><div class='del'>-        1</div><div class='add'>+        return jobs</div><div class='ctx'>       end</div><div class='del'>-    end</div><div class='ctx'> </div><div class='del'>-    def processor_count</div><div class='del'>-      require "etc"</div><div class='del'>-      Etc.nprocessors</div><div class='del'>-    rescue</div><div class='del'>-      1</div><div class='add'>+      Bundler.settings.processor_count</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def load_plugins</div><div class='hunk'>@@ -230,61 +218,28 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       requested_path_gems = @definition.requested_specs.select {|s| s.source.is_a?(Source::Path) }</div><div class='ctx'>       path_plugin_files = requested_path_gems.map do |spec|</div><div class='del'>-        begin</div><div class='del'>-          Bundler.rubygems.spec_matches_for_glob(spec, "rubygems_plugin#{Bundler.rubygems.suffix_pattern}")</div><div class='del'>-        rescue TypeError</div><div class='del'>-          error_message = "#{spec.name} #{spec.version} has an invalid gemspec"</div><div class='del'>-          raise Gem::InvalidSpecificationException, error_message</div><div class='del'>-        end</div><div class='add'>+        Bundler.rubygems.spec_matches_for_glob(spec, "rubygems_plugin#{Bundler.rubygems.suffix_pattern}")</div><div class='add'>+      rescue TypeError</div><div class='add'>+        error_message = "#{spec.name} #{spec.version} has an invalid gemspec"</div><div class='add'>+        raise Gem::InvalidSpecificationException, error_message</div><div class='ctx'>       end.flatten</div><div class='ctx'>       Bundler.rubygems.load_plugin_files(path_plugin_files)</div><div class='add'>+      Bundler.rubygems.load_env_plugins</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def ensure_specs_are_compatible!</div><div class='del'>-      system_ruby = Bundler::RubyVersion.system</div><div class='del'>-      rubygems_version = Gem::Version.create(Gem::VERSION)</div><div class='ctx'>       @definition.specs.each do |spec|</div><div class='del'>-        if required_ruby_version = spec.required_ruby_version</div><div class='del'>-          unless required_ruby_version.satisfied_by?(system_ruby.gem_version)</div><div class='del'>-            raise InstallError, "#{spec.full_name} requires ruby version #{required_ruby_version}, " \</div><div class='del'>-              "which is incompatible with the current version, #{system_ruby}"</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        next unless required_rubygems_version = spec.required_rubygems_version</div><div class='del'>-        unless required_rubygems_version.satisfied_by?(rubygems_version)</div><div class='del'>-          raise InstallError, "#{spec.full_name} requires rubygems version #{required_rubygems_version}, " \</div><div class='del'>-            "which is incompatible with the current version, #{rubygems_version}"</div><div class='add'>+        unless spec.matches_current_ruby?</div><div class='add'>+          raise InstallError, "#{spec.full_name} requires ruby version #{spec.required_ruby_version}, " \</div><div class='add'>+            "which is incompatible with the current version, #{Gem.ruby_version}"</div><div class='ctx'>         end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def warn_on_incompatible_bundler_deps</div><div class='del'>-      bundler_version = Gem::Version.create(Bundler::VERSION)</div><div class='del'>-      @definition.specs.each do |spec|</div><div class='del'>-        spec.dependencies.each do |dep|</div><div class='del'>-          next if dep.type == :development</div><div class='del'>-          next unless dep.name == "bundler".freeze</div><div class='del'>-          next if dep.requirement.satisfied_by?(bundler_version)</div><div class='del'>-</div><div class='del'>-          Bundler.ui.warn "#{spec.name} (#{spec.version}) has dependency" \</div><div class='del'>-            " #{SharedHelpers.pretty_dependency(dep)}" \</div><div class='del'>-            ", which is unsatisfied by the current bundler version #{VERSION}" \</div><div class='del'>-            ", so the dependency is being ignored"</div><div class='add'>+        unless spec.matches_current_rubygems?</div><div class='add'>+          raise InstallError, "#{spec.full_name} requires rubygems version #{spec.required_rubygems_version}, " \</div><div class='add'>+            "which is incompatible with the current version, #{Gem.rubygems_version}"</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def can_install_in_parallel?</div><div class='del'>-      if Bundler.rubygems.provides?("&gt;= 2.1.0")</div><div class='del'>-        true</div><div class='del'>-      else</div><div class='del'>-        Bundler.ui.warn "RubyGems #{Gem::VERSION} is not threadsafe, so your "\</div><div class='del'>-          "gems will be installed one at a time. Upgrade to RubyGems 2.1.0 " \</div><div class='del'>-          "or higher to enable parallel gem installation."</div><div class='del'>-        false</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def install_in_parallel(size, standalone, force = false)</div><div class='ctx'>       spec_installations = ParallelInstaller.call(self, @definition.specs, size, standalone, force)</div><div class='ctx'>       spec_installations.each do |installation|</div><div class='hunk'>@@ -292,22 +247,16 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def create_bundle_path</div><div class='del'>-      SharedHelpers.filesystem_access(Bundler.bundle_path.to_s) do |p|</div><div class='del'>-        Bundler.mkdir_p(p)</div><div class='del'>-      end unless Bundler.bundle_path.exist?</div><div class='del'>-    rescue Errno::EEXIST</div><div class='del'>-      raise PathError, "Could not install to path `#{Bundler.bundle_path}` " \</div><div class='del'>-        "because a file already exists at that path. Either remove or rename the file so the directory can be created."</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     # returns whether or not a re-resolve was needed</div><div class='ctx'>     def resolve_if_needed(options)</div><div class='add'>+      @definition.resolution_mode = options</div><div class='add'>+</div><div class='ctx'>       if !@definition.unlocking? &amp;&amp; !options["force"] &amp;&amp; !Bundler.settings[:inline] &amp;&amp; Bundler.default_lockfile.file?</div><div class='ctx'>         return false if @definition.nothing_changed? &amp;&amp; !@definition.missing_specs?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      options["local"] ? @definition.resolve_with_cache! : @definition.resolve_remotely!</div><div class='add'>+      @definition.setup_sources_for_resolve</div><div class='add'>+</div><div class='ctx'>       true</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/installer/gem_installer.rb b/lib/bundler/installer/gem_installer.rb<br/>index e5e245f970..9a013eea4d 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/installer/gem_installer.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/installer/gem_installer.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/installer/gem_installer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/installer/gem_installer.rb</a></div><div class='hunk'>@@ -13,59 +13,58 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def install_from_spec</div><div class='del'>-      post_install_message = spec_settings ? install_with_settings : install</div><div class='add'>+      post_install_message = install</div><div class='ctx'>       Bundler.ui.debug "#{worker}:  #{spec.name} (#{spec.version}) from #{spec.loaded_from}"</div><div class='ctx'>       generate_executable_stubs</div><div class='ctx'>       return true, post_install_message</div><div class='del'>-    rescue Bundler::InstallHookError, Bundler::SecurityError, APIResponseMismatchError</div><div class='add'>+    rescue Bundler::InstallHookError, Bundler::SecurityError, Bundler::APIResponseMismatchError</div><div class='ctx'>       raise</div><div class='ctx'>     rescue Errno::ENOSPC</div><div class='ctx'>       return false, out_of_space_message</div><div class='del'>-    rescue StandardError =&gt; e</div><div class='add'>+    rescue Bundler::BundlerError, Gem::InstallError, Bundler::APIResponseInvalidDependenciesError =&gt; e</div><div class='ctx'>       return false, specific_failure_message(e)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def specific_failure_message(e)</div><div class='ctx'>       message = "#{e.class}: #{e.message}\n"</div><div class='del'>-      message += "  " + e.backtrace.join("\n  ") + "\n\n" if Bundler.ui.debug?</div><div class='add'>+      message += "  " + e.backtrace.join("\n  ") + "\n\n"</div><div class='ctx'>       message = message.lines.first + Bundler.ui.add_color(message.lines.drop(1).join, :clear)</div><div class='ctx'>       message + Bundler.ui.add_color(failure_message, :red)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def failure_message</div><div class='del'>-      return install_error_message if spec.source.options["git"]</div><div class='del'>-      "#{install_error_message}\n#{gem_install_message}"</div><div class='add'>+      install_error_message</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def install_error_message</div><div class='ctx'>       "An error occurred while installing #{spec.name} (#{spec.version}), and Bundler cannot continue."</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def gem_install_message</div><div class='del'>-      source = spec.source</div><div class='del'>-      return unless source.respond_to?(:remotes)</div><div class='del'>-</div><div class='del'>-      if source.remotes.size == 1</div><div class='del'>-        "Make sure that `gem install #{spec.name} -v '#{spec.version}' --source '#{source.remotes.first}'` succeeds before bundling."</div><div class='del'>-      else</div><div class='del'>-        "Make sure that `gem install #{spec.name} -v '#{spec.version}'` succeeds before bundling."</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def spec_settings</div><div class='ctx'>       # Fetch the build settings, if there are any</div><div class='del'>-      Bundler.settings["build.#{spec.name}"]</div><div class='add'>+      if settings = Bundler.settings["build.#{spec.name}"]</div><div class='add'>+        require "shellwords"</div><div class='add'>+        Shellwords.shellsplit(settings)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def install</div><div class='del'>-      spec.source.install(spec, :force =&gt; force, :ensure_builtin_gems_cached =&gt; standalone, :build_args =&gt; Array(spec_settings))</div><div class='add'>+      spec.source.install(</div><div class='add'>+        spec,</div><div class='add'>+        :force =&gt; force,</div><div class='add'>+        :ensure_builtin_gems_cached =&gt; standalone,</div><div class='add'>+        :build_args =&gt; Array(spec_settings),</div><div class='add'>+        :previous_spec =&gt; previous_spec,</div><div class='add'>+      )</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def install_with_settings</div><div class='del'>-      # Build arguments are global, so this is mutexed</div><div class='del'>-      Bundler.rubygems.install_with_build_args([spec_settings]) { install }</div><div class='add'>+    def previous_spec</div><div class='add'>+      locked_gems = installer.definition.locked_gems</div><div class='add'>+      return unless locked_gems</div><div class='add'>+</div><div class='add'>+      locked_gems.specs.find {|s| s.name == spec.name }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def out_of_space_message</div><div class='head'>diff --git a/lib/bundler/installer/parallel_installer.rb b/lib/bundler/installer/parallel_installer.rb<br/>index f8a849ccfc..83a381f592 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/installer/parallel_installer.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/installer/parallel_installer.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/installer/parallel_installer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/installer/parallel_installer.rb</a></div><div class='hunk'>@@ -1,15 +1,16 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/worker"</div><div class='del'>-require "bundler/installer/gem_installer"</div><div class='add'>+require_relative "../worker"</div><div class='add'>+require_relative "gem_installer"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class ParallelInstaller</div><div class='ctx'>     class SpecInstallation</div><div class='del'>-      attr_accessor :spec, :name, :post_install_message, :state, :error</div><div class='add'>+      attr_accessor :spec, :name, :full_name, :post_install_message, :state, :error</div><div class='ctx'>       def initialize(spec)</div><div class='ctx'>         @spec = spec</div><div class='ctx'>         @name = spec.name</div><div class='add'>+        @full_name = spec.full_name</div><div class='ctx'>         @state = :none</div><div class='ctx'>         @post_install_message = ""</div><div class='ctx'>         @error = nil</div><div class='hunk'>@@ -27,13 +28,8 @@ module Bundler</div><div class='ctx'>         state == :failed</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def installation_attempted?</div><div class='del'>-        installed? || failed?</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Only true when spec in neither installed nor already enqueued</div><div class='ctx'>       def ready_to_enqueue?</div><div class='del'>-        !enqueued? &amp;&amp; !installation_attempted?</div><div class='add'>+        state == :none</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def has_post_install_message?</div><div class='hunk'>@@ -54,14 +50,7 @@ module Bundler</div><div class='ctx'>       # Represents only the non-development dependencies, the ones that are</div><div class='ctx'>       # itself and are in the total list.</div><div class='ctx'>       def dependencies</div><div class='del'>-        @dependencies ||= begin</div><div class='del'>-          all_dependencies.reject {|dep| ignorable_dependency? dep }</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def missing_lockfile_dependencies(all_spec_names)</div><div class='del'>-        deps = all_dependencies.reject {|dep| ignorable_dependency? dep }</div><div class='del'>-        deps.reject {|dep| all_spec_names.include? dep.name }</div><div class='add'>+        @dependencies ||= all_dependencies.reject {|dep| ignorable_dependency? dep }</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Represents all dependencies</div><div class='hunk'>@@ -70,7 +59,7 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def to_s</div><div class='del'>-        "#&lt;#{self.class} #{@spec.full_name} (#{state})&gt;"</div><div class='add'>+        "#&lt;#{self.class} #{full_name} (#{state})&gt;"</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -91,11 +80,10 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def call</div><div class='del'>-      # Since `autoload` has the potential for threading issues on 1.8.7</div><div class='del'>-      # TODO:  remove in bundler 2.0</div><div class='del'>-      require "bundler/gem_remote_fetcher" if RUBY_VERSION &lt; "1.9"</div><div class='del'>-</div><div class='del'>-      check_for_corrupt_lockfile</div><div class='add'>+      if @rake</div><div class='add'>+        do_install(@rake, 0)</div><div class='add'>+        Gem::Specification.reset</div><div class='add'>+      end</div><div class='ctx'> </div><div class='ctx'>       if @size &gt; 1</div><div class='ctx'>         install_with_worker</div><div class='hunk'>@@ -103,38 +91,43 @@ module Bundler</div><div class='ctx'>         install_serially</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      handle_error if @specs.any?(&amp;:failed?)</div><div class='add'>+      check_for_unmet_dependencies</div><div class='add'>+</div><div class='add'>+      handle_error if failed_specs.any?</div><div class='ctx'>       @specs</div><div class='ctx'>     ensure</div><div class='del'>-      worker_pool &amp;&amp; worker_pool.stop</div><div class='add'>+      worker_pool&amp;.stop</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def check_for_corrupt_lockfile</div><div class='del'>-      missing_dependencies = @specs.map do |s|</div><div class='add'>+    def check_for_unmet_dependencies</div><div class='add'>+      unmet_dependencies = @specs.map do |s|</div><div class='ctx'>         [</div><div class='ctx'>           s,</div><div class='del'>-          s.missing_lockfile_dependencies(@specs.map(&amp;:name)),</div><div class='add'>+          s.dependencies.reject {|dep| @specs.any? {|spec| dep.matches_spec?(spec.spec) } },</div><div class='ctx'>         ]</div><div class='del'>-      end.reject { |a| a.last.empty? }</div><div class='del'>-      return if missing_dependencies.empty?</div><div class='add'>+      end.reject {|a| a.last.empty? }</div><div class='add'>+      return if unmet_dependencies.empty?</div><div class='ctx'> </div><div class='ctx'>       warning = []</div><div class='del'>-      warning &lt;&lt; "Your lockfile was created by an old Bundler that left some things out."</div><div class='del'>-      if @size != 1</div><div class='del'>-        warning &lt;&lt; "Because of the missing DEPENDENCIES, we can only install gems one at a time, instead of installing #{@size} at a time."</div><div class='del'>-        @size = 1</div><div class='del'>-      end</div><div class='del'>-      warning &lt;&lt; "You can fix this by adding the missing gems to your Gemfile, running bundle install, and then removing the gems from your Gemfile."</div><div class='del'>-      warning &lt;&lt; "The missing gems are:"</div><div class='del'>-</div><div class='del'>-      missing_dependencies.each do |spec, missing|</div><div class='del'>-        warning &lt;&lt; "* #{missing.map(&amp;:name).join(", ")} depended upon by #{spec.name}"</div><div class='add'>+      warning &lt;&lt; "Your lockfile doesn't include a valid resolution."</div><div class='add'>+      warning &lt;&lt; "You can fix this by regenerating your lockfile or manually editing the bad locked gems to a version that satisfies all dependencies."</div><div class='add'>+      warning &lt;&lt; "The unmet dependencies are:"</div><div class='add'>+</div><div class='add'>+      unmet_dependencies.each do |spec, unmet_spec_dependencies|</div><div class='add'>+        unmet_spec_dependencies.each do |unmet_spec_dependency|</div><div class='add'>+          found = @specs.find {|s| s.name == unmet_spec_dependency.name &amp;&amp; !unmet_spec_dependency.matches_spec?(s.spec) }</div><div class='add'>+          warning &lt;&lt; "* #{unmet_spec_dependency}, dependency of #{spec.full_name}, unsatisfied by #{found.full_name}"</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       Bundler.ui.warn(warning.join("\n"))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def failed_specs</div><div class='add'>+      @specs.select(&amp;:failed?)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     def install_with_worker</div><div class='ctx'>       enqueue_specs</div><div class='hunk'>@@ -150,7 +143,7 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def worker_pool</div><div class='del'>-      @worker_pool ||= Bundler::Worker.new @size, "Parallel Installer", lambda { |spec_install, worker_num|</div><div class='add'>+      @worker_pool ||= Bundler::Worker.new @size, "Parallel Installer", lambda {|spec_install, worker_num|</div><div class='ctx'>         do_install(spec_install, worker_num)</div><div class='ctx'>       }</div><div class='ctx'>     end</div><div class='hunk'>@@ -160,17 +153,13 @@ module Bundler</div><div class='ctx'>       gem_installer = Bundler::GemInstaller.new(</div><div class='ctx'>         spec_install.spec, @installer, @standalone, worker_num, @force</div><div class='ctx'>       )</div><div class='del'>-      success, message = begin</div><div class='del'>-        gem_installer.install_from_spec</div><div class='del'>-      rescue RuntimeError =&gt; e</div><div class='del'>-        raise e, "#{e}\n\n#{require_tree_for_spec(spec_install.spec)}"</div><div class='del'>-      end</div><div class='add'>+      success, message = gem_installer.install_from_spec</div><div class='ctx'>       if success</div><div class='ctx'>         spec_install.state = :installed</div><div class='ctx'>         spec_install.post_install_message = message unless message.nil?</div><div class='ctx'>       else</div><div class='del'>-        spec_install.state = :failed</div><div class='ctx'>         spec_install.error = "#{message}\n\n#{require_tree_for_spec(spec_install.spec)}"</div><div class='add'>+        spec_install.state = :failed</div><div class='ctx'>       end</div><div class='ctx'>       Plugin.hook(Plugin::Events::GEM_AFTER_INSTALL, spec_install)</div><div class='ctx'>       spec_install</div><div class='hunk'>@@ -194,11 +183,11 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def handle_error</div><div class='del'>-      errors = @specs.select(&amp;:failed?).map(&amp;:error)</div><div class='add'>+      errors = failed_specs.map(&amp;:error)</div><div class='ctx'>       if exception = errors.find {|e| e.is_a?(Bundler::BundlerError) }</div><div class='ctx'>         raise exception</div><div class='ctx'>       end</div><div class='del'>-      raise Bundler::InstallError, errors.map(&amp;:to_s).join("\n\n")</div><div class='add'>+      raise Bundler::InstallError, errors.join("\n\n")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def require_tree_for_spec(spec)</div><div class='hunk'>@@ -221,8 +210,6 @@ module Bundler</div><div class='ctx'>     # are installed.</div><div class='ctx'>     def enqueue_specs</div><div class='ctx'>       @specs.select(&amp;:ready_to_enqueue?).each do |spec|</div><div class='del'>-        next if @rake &amp;&amp; !@rake.installed? &amp;&amp; spec.name != @rake.name</div><div class='del'>-</div><div class='ctx'>         if spec.dependencies_installed? @specs</div><div class='ctx'>           spec.state = :enqueued</div><div class='ctx'>           worker_pool.enq spec</div><div class='head'>diff --git a/lib/bundler/installer/standalone.rb b/lib/bundler/installer/standalone.rb<br/>index ce0c9df1eb..2a8c9a432d 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/installer/standalone.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/installer/standalone.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/installer/standalone.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/installer/standalone.rb</a></div><div class='hunk'>@@ -3,7 +3,7 @@</div><div class='ctx'> module Bundler</div><div class='ctx'>   class Standalone</div><div class='ctx'>     def initialize(groups, definition)</div><div class='del'>-      @specs = groups.empty? ? definition.requested_specs : definition.specs_for(groups.map(&amp;:to_sym))</div><div class='add'>+      @specs = definition.specs_for(groups)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def generate</div><div class='hunk'>@@ -12,42 +12,92 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>       File.open File.join(bundler_path, "setup.rb"), "w" do |file|</div><div class='ctx'>         file.puts "require 'rbconfig'"</div><div class='del'>-        file.puts "# ruby 1.8.7 doesn't define RUBY_ENGINE"</div><div class='del'>-        file.puts "ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'"</div><div class='del'>-        file.puts "ruby_version = RbConfig::CONFIG[\"ruby_version\"]"</div><div class='del'>-        file.puts "path = File.expand_path('..', __FILE__)"</div><div class='add'>+        file.puts define_path_helpers</div><div class='add'>+        file.puts reverse_rubygems_kernel_mixin</div><div class='ctx'>         paths.each do |path|</div><div class='del'>-          file.puts %($:.unshift "\#{path}/#{path}")</div><div class='add'>+          if Pathname.new(path).absolute?</div><div class='add'>+            file.puts %($:.unshift "#{path}")</div><div class='add'>+          else</div><div class='add'>+            file.puts %($:.unshift File.expand_path("\#{__dir__}/#{path}"))</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def paths</div><div class='ctx'>       @specs.map do |spec|</div><div class='ctx'>         next if spec.name == "bundler"</div><div class='ctx'>         Array(spec.require_paths).map do |path|</div><div class='del'>-          gem_path(path, spec).sub(version_dir, '#{ruby_engine}/#{ruby_version}')</div><div class='add'>+          gem_path(path, spec).</div><div class='add'>+            sub(version_dir, '#{RUBY_ENGINE}/#{Gem.ruby_api_version}').</div><div class='add'>+            sub(extensions_dir, 'extensions/\k&lt;platform&gt;/#{Gem.extension_api_version}')</div><div class='ctx'>           # This is a static string intentionally. It's interpolated at a later time.</div><div class='ctx'>         end</div><div class='del'>-      end.flatten</div><div class='add'>+      end.flatten.compact</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def version_dir</div><div class='del'>-      "#{Bundler::RubyVersion.system.engine}/#{RbConfig::CONFIG["ruby_version"]}"</div><div class='add'>+      "#{RUBY_ENGINE}/#{Gem.ruby_api_version}"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def extensions_dir</div><div class='add'>+      %r{extensions/(?&lt;platform&gt;[^/]+)/#{Regexp.escape(Gem.extension_api_version)}}</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def bundler_path</div><div class='del'>-      Bundler.root.join(Bundler.settings[:path], "bundler")</div><div class='add'>+      Bundler.root.join(Bundler.settings[:path].to_s, "bundler")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def gem_path(path, spec)</div><div class='ctx'>       full_path = Pathname.new(path).absolute? ? path : File.join(spec.full_gem_path, path)</div><div class='del'>-      Pathname.new(full_path).relative_path_from(Bundler.root.join(bundler_path)).to_s</div><div class='add'>+      if spec.source.instance_of?(Source::Path) &amp;&amp; spec.source.path.absolute?</div><div class='add'>+        full_path</div><div class='add'>+      else</div><div class='add'>+        Pathname.new(full_path).relative_path_from(Bundler.root.join(bundler_path)).to_s</div><div class='add'>+      end</div><div class='ctx'>     rescue TypeError</div><div class='ctx'>       error_message = "#{spec.name} #{spec.version} has an invalid gemspec"</div><div class='ctx'>       raise Gem::InvalidSpecificationException.new(error_message)</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def define_path_helpers</div><div class='add'>+      &lt;&lt;~'END'</div><div class='add'>+        unless defined?(Gem)</div><div class='add'>+          module Gem</div><div class='add'>+            def self.ruby_api_version</div><div class='add'>+              RbConfig::CONFIG["ruby_version"]</div><div class='add'>+            end</div><div class='add'>+</div><div class='add'>+            def self.extension_api_version</div><div class='add'>+              if 'no' == RbConfig::CONFIG['ENABLE_SHARED']</div><div class='add'>+                "#{ruby_api_version}-static"</div><div class='add'>+              else</div><div class='add'>+                ruby_api_version</div><div class='add'>+              end</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      END</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def reverse_rubygems_kernel_mixin</div><div class='add'>+      &lt;&lt;~END</div><div class='add'>+      if Gem.respond_to?(:discover_gems_on_require=)</div><div class='add'>+        Gem.discover_gems_on_require = false</div><div class='add'>+      else</div><div class='add'>+        kernel = (class &lt;&lt; ::Kernel; self; end)</div><div class='add'>+        [kernel, ::Kernel].each do |k|</div><div class='add'>+          if k.private_method_defined?(:gem_original_require)</div><div class='add'>+            private_require = k.private_method_defined?(:require)</div><div class='add'>+            k.send(:remove_method, :require)</div><div class='add'>+            k.send(:define_method, :require, k.instance_method(:gem_original_require))</div><div class='add'>+            k.send(:private, :require) if private_require</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      END</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/lazy_specification.rb b/lib/bundler/lazy_specification.rb<br/>index d9cb01f810..c9b161dc0e 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/lazy_specification.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/lazy_specification.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/lazy_specification.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/lazy_specification.rb</a></div><div class='hunk'>@@ -1,30 +1,14 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "uri"</div><div class='del'>-require "bundler/match_platform"</div><div class='add'>+require_relative "force_platform"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class LazySpecification</div><div class='del'>-    Identifier = Struct.new(:name, :version, :source, :platform, :dependencies)</div><div class='del'>-    class Identifier</div><div class='del'>-      include Comparable</div><div class='del'>-      def &lt;=&gt;(other)</div><div class='del'>-        return unless other.is_a?(Identifier)</div><div class='del'>-        [name, version, platform_string] &lt;=&gt; [other.name, other.version, other.platform_string]</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-    protected</div><div class='del'>-</div><div class='del'>-      def platform_string</div><div class='del'>-        platform_string = platform.to_s</div><div class='del'>-        platform_string == Index::RUBY ? Index::NULL : platform_string</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     include MatchPlatform</div><div class='add'>+    include ForcePlatform</div><div class='ctx'> </div><div class='ctx'>     attr_reader :name, :version, :dependencies, :platform</div><div class='del'>-    attr_accessor :source, :remote</div><div class='add'>+    attr_accessor :source, :remote, :force_ruby_platform</div><div class='ctx'> </div><div class='ctx'>     def initialize(name, version, platform, source = nil)</div><div class='ctx'>       @name          = name</div><div class='hunk'>@@ -32,11 +16,11 @@ module Bundler</div><div class='ctx'>       @dependencies  = []</div><div class='ctx'>       @platform      = platform || Gem::Platform::RUBY</div><div class='ctx'>       @source        = source</div><div class='del'>-      @specification = nil</div><div class='add'>+      @force_ruby_platform = default_force_ruby_platform</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def full_name</div><div class='del'>-      if platform == Gem::Platform::RUBY || platform.nil?</div><div class='add'>+      @full_name ||= if platform == Gem::Platform::RUBY</div><div class='ctx'>         "#{@name}-#{@version}"</div><div class='ctx'>       else</div><div class='ctx'>         "#{@name}-#{@version}-#{platform}"</div><div class='hunk'>@@ -44,17 +28,41 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def ==(other)</div><div class='del'>-      identifier == other.identifier</div><div class='add'>+      full_name == other.full_name</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def eql?(other)</div><div class='add'>+      full_name.eql?(other.full_name)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def hash</div><div class='add'>+      full_name.hash</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    ##</div><div class='add'>+    # Does this locked specification satisfy +dependency+?</div><div class='add'>+    #</div><div class='add'>+    # NOTE: Rubygems default requirement is "&gt;= 0", which doesn't match</div><div class='add'>+    # prereleases of 0 versions, like "0.0.0.dev" or "0.0.0.SNAPSHOT". However,</div><div class='add'>+    # bundler users expect those to work. We need to make sure that Gemfile</div><div class='add'>+    # dependencies without explicit requirements (which use "&gt;= 0" under the</div><div class='add'>+    # hood by default) are still valid for locked specs using this kind of</div><div class='add'>+    # versions. The method implements an ad-hoc fix for that. A better solution</div><div class='add'>+    # might be to change default rubygems requirement of dependencies to be "&gt;=</div><div class='add'>+    # 0.A" but that's a major refactoring likely to break things. Hopefully we</div><div class='add'>+    # can attempt it in the future.</div><div class='add'>+    #</div><div class='add'>+</div><div class='ctx'>     def satisfies?(dependency)</div><div class='del'>-      @name == dependency.name &amp;&amp; dependency.requirement.satisfied_by?(Gem::Version.new(@version))</div><div class='add'>+      effective_requirement = dependency.requirement == Gem::Requirement.default ? Gem::Requirement.new("&gt;= 0.A") : dependency.requirement</div><div class='add'>+</div><div class='add'>+      @name == dependency.name &amp;&amp; effective_requirement.satisfied_by?(Gem::Version.new(@version))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def to_lock</div><div class='ctx'>       out = String.new</div><div class='ctx'> </div><div class='del'>-      if platform == Gem::Platform::RUBY || platform.nil?</div><div class='add'>+      if platform == Gem::Platform::RUBY</div><div class='ctx'>         out &lt;&lt; "    #{name} (#{version})\n"</div><div class='ctx'>       else</div><div class='ctx'>         out &lt;&lt; "    #{name} (#{version}-#{platform})\n"</div><div class='hunk'>@@ -68,56 +76,84 @@ module Bundler</div><div class='ctx'>       out</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def __materialize__</div><div class='del'>-      search_object = Bundler.feature_flag.specific_platform? || Bundler.settings[:force_ruby_platform] ? self : Dependency.new(name, version)</div><div class='del'>-      @specification = if source.is_a?(Source::Gemspec) &amp;&amp; source.gemspec.name == name</div><div class='del'>-        source.gemspec.tap {|s| s.source = source }</div><div class='add'>+    def materialize_for_installation</div><div class='add'>+      source.local!</div><div class='add'>+</div><div class='add'>+      matching_specs = source.specs.search(use_exact_resolved_specifications? ? self : [name, version])</div><div class='add'>+      return self if matching_specs.empty?</div><div class='add'>+</div><div class='add'>+      candidates = if use_exact_resolved_specifications?</div><div class='add'>+        matching_specs</div><div class='ctx'>       else</div><div class='del'>-        search = source.specs.search(search_object).last</div><div class='del'>-        if search &amp;&amp; Gem::Platform.new(search.platform) != Gem::Platform.new(platform) &amp;&amp; !search.runtime_dependencies.-(dependencies.reject {|d| d.type == :development }).empty?</div><div class='del'>-          Bundler.ui.warn "Unable to use the platform-specific (#{search.platform}) version of #{name} (#{version}) " \</div><div class='del'>-            "because it has different dependencies from the #{platform} version. " \</div><div class='del'>-            "To use the platform-specific version of the gem, run `bundle config specific_platform true` and install again."</div><div class='del'>-          search = source.specs.search(self).last</div><div class='add'>+        target_platform = ruby_platform_materializes_to_ruby_platform? ? platform : local_platform</div><div class='add'>+</div><div class='add'>+        installable_candidates = GemHelpers.select_best_platform_match(matching_specs, target_platform)</div><div class='add'>+</div><div class='add'>+        specification = __materialize__(installable_candidates, :fallback_to_non_installable =&gt; false)</div><div class='add'>+        return specification unless specification.nil?</div><div class='add'>+</div><div class='add'>+        if target_platform != platform</div><div class='add'>+          installable_candidates = GemHelpers.select_best_platform_match(matching_specs, platform)</div><div class='ctx'>         end</div><div class='del'>-        search.dependencies = dependencies if search &amp;&amp; (search.is_a?(RemoteSpecification) || search.is_a?(EndpointSpecification))</div><div class='del'>-        search</div><div class='add'>+</div><div class='add'>+        installable_candidates</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      __materialize__(candidates)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def respond_to?(*args)</div><div class='del'>-      super || @specification ? @specification.respond_to?(*args) : nil</div><div class='add'>+    # If in frozen mode, we fallback to a non-installable candidate because by</div><div class='add'>+    # doing this we avoid re-resolving and potentially end up changing the</div><div class='add'>+    # lock file, which is not allowed. In that case, we will give a proper error</div><div class='add'>+    # about the mismatch higher up the stack, right before trying to install the</div><div class='add'>+    # bad gem.</div><div class='add'>+    def __materialize__(candidates, fallback_to_non_installable: Bundler.frozen_bundle?)</div><div class='add'>+      search = candidates.reverse.find do |spec|</div><div class='add'>+        spec.is_a?(StubSpecification) ||</div><div class='add'>+          (spec.matches_current_ruby? &amp;&amp;</div><div class='add'>+            spec.matches_current_rubygems?)</div><div class='add'>+      end</div><div class='add'>+      if search.nil? &amp;&amp; fallback_to_non_installable</div><div class='add'>+        search = candidates.last</div><div class='add'>+      else</div><div class='add'>+        search.dependencies = dependencies if search &amp;&amp; search.full_name == full_name &amp;&amp; (search.is_a?(RemoteSpecification) || search.is_a?(EndpointSpecification))</div><div class='add'>+      end</div><div class='add'>+      search</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def to_s</div><div class='del'>-      @__to_s ||= if platform == Gem::Platform::RUBY || platform.nil?</div><div class='add'>+      @to_s ||= if platform == Gem::Platform::RUBY</div><div class='ctx'>         "#{name} (#{version})"</div><div class='ctx'>       else</div><div class='ctx'>         "#{name} (#{version}-#{platform})"</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def identifier</div><div class='del'>-      @__identifier ||= Identifier.new(name, version, source, platform, dependencies)</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def git_version</div><div class='ctx'>       return unless source.is_a?(Bundler::Source::Git)</div><div class='ctx'>       " #{source.revision[0..6]}"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='del'>-    def to_ary</div><div class='del'>-      nil</div><div class='add'>+    def use_exact_resolved_specifications?</div><div class='add'>+      @use_exact_resolved_specifications ||= !source.is_a?(Source::Path) &amp;&amp; ruby_platform_materializes_to_ruby_platform?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def method_missing(method, *args, &amp;blk)</div><div class='del'>-      raise "LazySpecification has not been materialized yet (calling :#{method} #{args.inspect})" unless @specification</div><div class='del'>-</div><div class='del'>-      return super unless respond_to?(method)</div><div class='del'>-</div><div class='del'>-      @specification.send(method, *args, &amp;blk)</div><div class='add'>+    #</div><div class='add'>+    # For backwards compatibility with existing lockfiles, if the most specific</div><div class='add'>+    # locked platform is not a specific platform like x86_64-linux or</div><div class='add'>+    # universal-java-11, then we keep the previous behaviour of resolving the</div><div class='add'>+    # best platform variant at materiliazation time. For previous bundler</div><div class='add'>+    # versions (before 2.2.0) this was always the case (except when the lockfile</div><div class='add'>+    # only included non-ruby platforms), but we're also keeping this behaviour</div><div class='add'>+    # on newer bundlers unless users generate the lockfile from scratch or</div><div class='add'>+    # explicitly add a more specific platform.</div><div class='add'>+    #</div><div class='add'>+    def ruby_platform_materializes_to_ruby_platform?</div><div class='add'>+      generic_platform = generic_local_platform == Gem::Platform::JAVA ? Gem::Platform::JAVA : Gem::Platform::RUBY</div><div class='add'>+</div><div class='add'>+      !Bundler.most_specific_locked_platform?(generic_platform) || force_ruby_platform || Bundler.settings[:force_ruby_platform]</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/lockfile_generator.rb b/lib/bundler/lockfile_generator.rb<br/>index 585077d18d..f7ba51b3e6 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/lockfile_generator.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/lockfile_generator.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/lockfile_generator.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/lockfile_generator.rb</a></div><div class='hunk'>@@ -25,7 +25,7 @@ module Bundler</div><div class='ctx'>       out</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def add_sources</div><div class='ctx'>       definition.send(:sources).lock_sources.each_with_index do |source, idx|</div><div class='hunk'>@@ -45,7 +45,7 @@ module Bundler</div><div class='ctx'>       # gems with the same name, but different platform</div><div class='ctx'>       # are ordered consistently</div><div class='ctx'>       specs.sort_by(&amp;:full_name).each do |spec|</div><div class='del'>-        next if spec.name == "bundler".freeze</div><div class='add'>+        next if spec.name == "bundler"</div><div class='ctx'>         out &lt;&lt; spec.to_lock</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -60,7 +60,7 @@ module Bundler</div><div class='ctx'>       handled = []</div><div class='ctx'>       definition.dependencies.sort_by(&amp;:to_s).each do |dep|</div><div class='ctx'>         next if handled.include?(dep.name)</div><div class='del'>-        out &lt;&lt; dep.to_lock</div><div class='add'>+        out &lt;&lt; dep.to_lock &lt;&lt; "\n"</div><div class='ctx'>         handled &lt;&lt; dep.name</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -71,7 +71,7 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def add_bundled_with</div><div class='del'>-      add_section("BUNDLED WITH", definition.locked_bundler_version.to_s)</div><div class='add'>+      add_section("BUNDLED WITH", definition.bundler_version_to_lock.to_s)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def add_section(name, value)</div><div class='head'>diff --git a/lib/bundler/lockfile_parser.rb b/lib/bundler/lockfile_parser.rb<br/>index ff706fca1d..7360a36752 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/lockfile_parser.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/lockfile_parser.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/lockfile_parser.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/lockfile_parser.rb</a></div><div class='hunk'>@@ -1,43 +1,32 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-# Some versions of the Bundler 1.1 RC series introduced corrupted</div><div class='del'>-# lockfiles. There were two major problems:</div><div class='del'>-#</div><div class='del'>-# * multiple copies of the same GIT section appeared in the lockfile</div><div class='del'>-# * when this happened, those sections got multiple copies of gems</div><div class='del'>-#   in those sections.</div><div class='del'>-#</div><div class='del'>-# As a result, Bundler 1.1 contains code that fixes the earlier</div><div class='del'>-# corruption. We will remove this fix-up code in Bundler 1.2.</div><div class='del'>-</div><div class='ctx'> module Bundler</div><div class='ctx'>   class LockfileParser</div><div class='ctx'>     attr_reader :sources, :dependencies, :specs, :platforms, :bundler_version, :ruby_version</div><div class='ctx'> </div><div class='del'>-    BUNDLED      = "BUNDLED WITH".freeze</div><div class='del'>-    DEPENDENCIES = "DEPENDENCIES".freeze</div><div class='del'>-    PLATFORMS    = "PLATFORMS".freeze</div><div class='del'>-    RUBY         = "RUBY VERSION".freeze</div><div class='del'>-    GIT          = "GIT".freeze</div><div class='del'>-    GEM          = "GEM".freeze</div><div class='del'>-    PATH         = "PATH".freeze</div><div class='del'>-    PLUGIN       = "PLUGIN SOURCE".freeze</div><div class='del'>-    SPECS        = "  specs:".freeze</div><div class='del'>-    OPTIONS      = /^  ([a-z]+): (.*)$/i</div><div class='add'>+    BUNDLED      = "BUNDLED WITH"</div><div class='add'>+    DEPENDENCIES = "DEPENDENCIES"</div><div class='add'>+    PLATFORMS    = "PLATFORMS"</div><div class='add'>+    RUBY         = "RUBY VERSION"</div><div class='add'>+    GIT          = "GIT"</div><div class='add'>+    GEM          = "GEM"</div><div class='add'>+    PATH         = "PATH"</div><div class='add'>+    PLUGIN       = "PLUGIN SOURCE"</div><div class='add'>+    SPECS        = "  specs:"</div><div class='add'>+    OPTIONS      = /^  ([a-z]+): (.*)$/i.freeze</div><div class='ctx'>     SOURCE       = [GIT, GEM, PATH, PLUGIN].freeze</div><div class='ctx'> </div><div class='ctx'>     SECTIONS_BY_VERSION_INTRODUCED = {</div><div class='del'>-      # The strings have to be dup'ed for old RG on Ruby 2.3+</div><div class='del'>-      # TODO: remove dup in Bundler 2.0</div><div class='del'>-      Gem::Version.create("1.0".dup) =&gt; [DEPENDENCIES, PLATFORMS, GIT, GEM, PATH].freeze,</div><div class='del'>-      Gem::Version.create("1.10".dup) =&gt; [BUNDLED].freeze,</div><div class='del'>-      Gem::Version.create("1.12".dup) =&gt; [RUBY].freeze,</div><div class='del'>-      Gem::Version.create("1.13".dup) =&gt; [PLUGIN].freeze,</div><div class='add'>+      Gem::Version.create("1.0") =&gt; [DEPENDENCIES, PLATFORMS, GIT, GEM, PATH].freeze,</div><div class='add'>+      Gem::Version.create("1.10") =&gt; [BUNDLED].freeze,</div><div class='add'>+      Gem::Version.create("1.12") =&gt; [RUBY].freeze,</div><div class='add'>+      Gem::Version.create("1.13") =&gt; [PLUGIN].freeze,</div><div class='ctx'>     }.freeze</div><div class='ctx'> </div><div class='ctx'>     KNOWN_SECTIONS = SECTIONS_BY_VERSION_INTRODUCED.values.flatten.freeze</div><div class='ctx'> </div><div class='ctx'>     ENVIRONMENT_VERSION_SECTIONS = [BUNDLED, RUBY].freeze</div><div class='add'>+    deprecate_constant(:ENVIRONMENT_VERSION_SECTIONS)</div><div class='ctx'> </div><div class='ctx'>     def self.sections_in_lockfile(lockfile_contents)</div><div class='ctx'>       lockfile_contents.scan(/^\w[\w ]*$/).uniq</div><div class='hunk'>@@ -58,6 +47,16 @@ module Bundler</div><div class='ctx'>       attributes</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def self.bundled_with</div><div class='add'>+      lockfile = Bundler.default_lockfile</div><div class='add'>+      return unless lockfile.file?</div><div class='add'>+</div><div class='add'>+      lockfile_contents = Bundler.read_file(lockfile)</div><div class='add'>+      return unless lockfile_contents.include?(BUNDLED)</div><div class='add'>+</div><div class='add'>+      lockfile_contents.split(BUNDLED).last.strip</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def initialize(lockfile)</div><div class='ctx'>       @platforms    = []</div><div class='ctx'>       @sources      = []</div><div class='hunk'>@@ -65,9 +64,7 @@ module Bundler</div><div class='ctx'>       @state        = nil</div><div class='ctx'>       @specs        = {}</div><div class='ctx'> </div><div class='del'>-      @rubygems_aggregate = Source::Rubygems.new</div><div class='del'>-</div><div class='del'>-      if lockfile.match(/&lt;&lt;&lt;&lt;&lt;&lt;&lt;|=======|&gt;&gt;&gt;&gt;&gt;&gt;&gt;|\|\|\|\|\|\|\|/)</div><div class='add'>+      if lockfile.match?(/&lt;&lt;&lt;&lt;&lt;&lt;&lt;|=======|&gt;&gt;&gt;&gt;&gt;&gt;&gt;|\|\|\|\|\|\|\|/)</div><div class='ctx'>         raise LockfileError, "Your #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)} contains merge conflicts.\n" \</div><div class='ctx'>           "Run `git checkout HEAD -- #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)}` first to get a clean lock."</div><div class='ctx'>       end</div><div class='hunk'>@@ -84,44 +81,29 @@ module Bundler</div><div class='ctx'>           @state = :ruby</div><div class='ctx'>         elsif line == BUNDLED</div><div class='ctx'>           @state = :bundled_with</div><div class='del'>-        elsif line =~ /^[^\s]/</div><div class='add'>+        elsif /^[^\s]/.match?(line)</div><div class='ctx'>           @state = nil</div><div class='ctx'>         elsif @state</div><div class='ctx'>           send("parse_#{@state}", line)</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='del'>-      @sources &lt;&lt; @rubygems_aggregate unless Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?</div><div class='del'>-      @specs = @specs.values.sort_by(&amp;:identifier)</div><div class='del'>-      warn_for_outdated_bundler_version</div><div class='add'>+      @specs = @specs.values.sort_by(&amp;:full_name)</div><div class='ctx'>     rescue ArgumentError =&gt; e</div><div class='ctx'>       Bundler.ui.debug(e)</div><div class='ctx'>       raise LockfileError, "Your lockfile is unreadable. Run `rm #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)}` " \</div><div class='ctx'>         "and then `bundle install` to generate a new lockfile."</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def warn_for_outdated_bundler_version</div><div class='del'>-      return unless bundler_version</div><div class='del'>-      prerelease_text = bundler_version.prerelease? ? " --pre" : ""</div><div class='del'>-      current_version = Gem::Version.create(Bundler::VERSION)</div><div class='del'>-      case current_version.segments.first &lt;=&gt; bundler_version.segments.first</div><div class='del'>-      when -1</div><div class='del'>-        raise LockfileError, "You must use Bundler #{bundler_version.segments.first} or greater with this lockfile."</div><div class='del'>-      when 0</div><div class='del'>-        if current_version &lt; bundler_version</div><div class='del'>-          Bundler.ui.warn "Warning: the running version of Bundler (#{current_version}) is older " \</div><div class='del'>-               "than the version that created the lockfile (#{bundler_version}). We suggest you " \</div><div class='del'>-               "upgrade to the latest version of Bundler by running `gem " \</div><div class='del'>-               "install bundler#{prerelease_text}`.\n"</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='add'>+    def may_include_redundant_platform_specific_gems?</div><div class='add'>+      bundler_version.nil? || bundler_version &lt; Gem::Version.new("1.16.2")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     TYPES = {</div><div class='del'>-      GIT    =&gt; Bundler::Source::Git,</div><div class='del'>-      GEM    =&gt; Bundler::Source::Rubygems,</div><div class='del'>-      PATH   =&gt; Bundler::Source::Path,</div><div class='add'>+      GIT =&gt; Bundler::Source::Git,</div><div class='add'>+      GEM =&gt; Bundler::Source::Rubygems,</div><div class='add'>+      PATH =&gt; Bundler::Source::Path,</div><div class='ctx'>       PLUGIN =&gt; Bundler::Plugin,</div><div class='ctx'>     }.freeze</div><div class='ctx'> </div><div class='hunk'>@@ -134,23 +116,11 @@ module Bundler</div><div class='ctx'>           @sources &lt;&lt; @current_source</div><div class='ctx'>         when GIT</div><div class='ctx'>           @current_source = TYPES[@type].from_lock(@opts)</div><div class='del'>-          # Strip out duplicate GIT sections</div><div class='del'>-          if @sources.include?(@current_source)</div><div class='del'>-            @current_source = @sources.find {|s| s == @current_source }</div><div class='del'>-          else</div><div class='del'>-            @sources &lt;&lt; @current_source</div><div class='del'>-          end</div><div class='add'>+          @sources &lt;&lt; @current_source</div><div class='ctx'>         when GEM</div><div class='del'>-          if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?</div><div class='del'>-            @opts["remotes"] = @opts.delete("remote")</div><div class='del'>-            @current_source = TYPES[@type].from_lock(@opts)</div><div class='del'>-            @sources &lt;&lt; @current_source</div><div class='del'>-          else</div><div class='del'>-            Array(@opts["remote"]).each do |url|</div><div class='del'>-              @rubygems_aggregate.add_remote(url)</div><div class='del'>-            end</div><div class='del'>-            @current_source = @rubygems_aggregate</div><div class='del'>-          end</div><div class='add'>+          @opts["remotes"] = Array(@opts.delete("remote")).reverse</div><div class='add'>+          @current_source = TYPES[@type].from_lock(@opts)</div><div class='add'>+          @sources &lt;&lt; @current_source</div><div class='ctx'>         when PLUGIN</div><div class='ctx'>           @current_source = Plugin.source_from_lock(@opts)</div><div class='ctx'>           @sources &lt;&lt; @current_source</div><div class='hunk'>@@ -185,7 +155,7 @@ module Bundler</div><div class='ctx'>       (?:-(.*))?\))?                                     # Optional platform</div><div class='ctx'>       (!)?                                               # Optional pinned marker</div><div class='ctx'>       $                                                  # Line end</div><div class='del'>-    /xo</div><div class='add'>+    /xo.freeze</div><div class='ctx'> </div><div class='ctx'>     def parse_dependency(line)</div><div class='ctx'>       return unless line =~ NAME_VERSION</div><div class='hunk'>@@ -228,10 +198,9 @@ module Bundler</div><div class='ctx'>         platform = platform ? Gem::Platform.new(platform) : Gem::Platform::RUBY</div><div class='ctx'>         @current_spec = LazySpecification.new(name, version, platform)</div><div class='ctx'>         @current_spec.source = @current_source</div><div class='add'>+        @current_source.add_dependency_names(name)</div><div class='ctx'> </div><div class='del'>-        # Avoid introducing multiple copies of the same spec (caused by</div><div class='del'>-        # duplicate GIT sections)</div><div class='del'>-        @specs[@current_spec.identifier] ||= @current_spec</div><div class='add'>+        @specs[@current_spec.full_name] = @current_spec</div><div class='ctx'>       elsif spaces.size == 6</div><div class='ctx'>         version = version.split(",").map(&amp;:strip) if version</div><div class='ctx'>         dep = Gem::Dependency.new(name, version)</div><div class='head'>diff --git a/lib/bundler/ssl_certs/.document b/lib/bundler/man/.document<br/>index fb66f13c33..fb66f13c33 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/ssl_certs/.document?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ssl_certs/.document</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/.document?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/.document</a></div><div class='head'>diff --git a/lib/bundler/man/bundle-add.1 b/lib/bundler/man/bundle-add.1<br/>new file mode 100644<br/>index 0000000000..8549855b0d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-add.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-add.1</a></div><div class='hunk'>@@ -0,0 +1,82 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-ADD" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle add\fR \fIGEM_NAME\fR [\-\-group=GROUP] [\-\-version=VERSION] [\-\-source=SOURCE] [\-\-path=PATH] [\-\-git=GIT] [\-\-github=GITHUB] [\-\-branch=BRANCH] [\-\-ref=REF] [\-\-skip\-install] [\-\-strict] [\-\-optimistic]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Adds the named gem to the Gemfile and run \fBbundle install\fR\. \fBbundle install\fR can be avoided by using the flag \fB\-\-skip\-install\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Example:</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle add rails</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle add rails \-\-version "&lt; 3\.0, &gt; 1\.1"</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle add rails \-\-version "~&gt; 5\.0\.0" \-\-source "https://gems\.example\.com" \-\-group "development"</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle add rails \-\-skip\-install</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle add rails \-\-group "development, test"</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-version\fR, \fB\-v\fR</div><div class='add'>+Specify version requirements(s) for the added gem\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-group\fR, \fB\-g\fR</div><div class='add'>+Specify the group(s) for the added gem\. Multiple groups should be separated by commas\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-source\fR, \fB\-s\fR</div><div class='add'>+Specify the source for the added gem\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-require\fR, \fB\-r\fR</div><div class='add'>+Adds require path to gem\. Provide false, or a path as a string\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-path\fR</div><div class='add'>+Specify the file system path for the added gem\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-git\fR</div><div class='add'>+Specify the git source for the added gem\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-github\fR</div><div class='add'>+Specify the github source for the added gem\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-branch\fR</div><div class='add'>+Specify the git branch for the added gem\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-ref\fR</div><div class='add'>+Specify the git ref for the added gem\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-skip\-install\fR</div><div class='add'>+Adds the gem to the Gemfile but does not install it\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-optimistic\fR</div><div class='add'>+Adds optimistic declaration of version\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-strict\fR</div><div class='add'>+Adds strict declaration of version\.</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-add.1.ronn b/lib/bundler/man/bundle-add.1.ronn<br/>new file mode 100644<br/>index 0000000000..37c92e5fcd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-add.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-add.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,58 @@</div><div class='add'>+bundle-add(1) -- Add gem to the Gemfile and run bundle install</div><div class='add'>+================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle add` &lt;GEM_NAME&gt; [--group=GROUP] [--version=VERSION] [--source=SOURCE] [--path=PATH] [--git=GIT] [--github=GITHUB] [--branch=BRANCH] [--ref=REF] [--skip-install] [--strict] [--optimistic]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+Adds the named gem to the Gemfile and run `bundle install`. `bundle install` can be avoided by using the flag `--skip-install`.</div><div class='add'>+</div><div class='add'>+Example:</div><div class='add'>+</div><div class='add'>+bundle add rails</div><div class='add'>+</div><div class='add'>+bundle add rails --version "&lt; 3.0, &gt; 1.1"</div><div class='add'>+</div><div class='add'>+bundle add rails --version "~&gt; 5.0.0" --source "https://gems.example.com" --group "development"</div><div class='add'>+</div><div class='add'>+bundle add rails --skip-install</div><div class='add'>+</div><div class='add'>+bundle add rails --group "development, test"</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+* `--version`, `-v`:</div><div class='add'>+  Specify version requirements(s) for the added gem.</div><div class='add'>+</div><div class='add'>+* `--group`, `-g`:</div><div class='add'>+  Specify the group(s) for the added gem. Multiple groups should be separated by commas.</div><div class='add'>+</div><div class='add'>+* `--source`, `-s`:</div><div class='add'>+  Specify the source for the added gem.</div><div class='add'>+</div><div class='add'>+* `--require`, `-r`:</div><div class='add'>+  Adds require path to gem. Provide false, or a path as a string.</div><div class='add'>+</div><div class='add'>+* `--path`:</div><div class='add'>+  Specify the file system path for the added gem.</div><div class='add'>+</div><div class='add'>+* `--git`:</div><div class='add'>+  Specify the git source for the added gem.</div><div class='add'>+</div><div class='add'>+* `--github`:</div><div class='add'>+  Specify the github source for the added gem.</div><div class='add'>+</div><div class='add'>+* `--branch`:</div><div class='add'>+  Specify the git branch for the added gem.</div><div class='add'>+</div><div class='add'>+* `--ref`:</div><div class='add'>+  Specify the git ref for the added gem.</div><div class='add'>+</div><div class='add'>+* `--skip-install`:</div><div class='add'>+  Adds the gem to the Gemfile but does not install it.</div><div class='add'>+</div><div class='add'>+* `--optimistic`:</div><div class='add'>+  Adds optimistic declaration of version.</div><div class='add'>+</div><div class='add'>+* `--strict`:</div><div class='add'>+  Adds strict declaration of version.</div><div class='head'>diff --git a/lib/bundler/man/bundle-binstubs.1 b/lib/bundler/man/bundle-binstubs.1<br/>new file mode 100644<br/>index 0000000000..40c338916a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-binstubs.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-binstubs.1</a></div><div class='hunk'>@@ -0,0 +1,42 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-BINSTUBS" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-binstubs\fR \- Install the binstubs of the listed gems</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle binstubs\fR \fIGEM_NAME\fR [\-\-force] [\-\-path PATH] [\-\-standalone]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Binstubs are scripts that wrap around executables\. Bundler creates a small Ruby file (a binstub) that loads Bundler, runs the command, and puts it into \fBbin/\fR\. Binstubs are a shortcut\-or alternative\- to always using \fBbundle exec\fR\. This gives you a file that can be run directly, and one that will always run the correct gem version used by the application\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For example, if you run \fBbundle binstubs rspec\-core\fR, Bundler will create the file \fBbin/rspec\fR\. That file will contain enough code to load Bundler, tell it to load the bundled gems, and then run rspec\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This command generates binstubs for executables in \fBGEM_NAME\fR\. Binstubs are put into \fBbin\fR, or the \fB\-\-path\fR directory if one has been set\. Calling binstubs with [GEM [GEM]] will create binstubs for all given gems\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-force\fR</div><div class='add'>+Overwrite existing binstubs if they exist\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-path\fR</div><div class='add'>+The location to install the specified binstubs to\. This defaults to \fBbin\fR\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-standalone\fR</div><div class='add'>+Makes binstubs that can work without depending on Rubygems or Bundler at runtime\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-shebang\fR</div><div class='add'>+Specify a different shebang executable name than the default (default \'ruby\')</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-all\fR</div><div class='add'>+Create binstubs for all gems in the bundle\.</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-binstubs.1.ronn b/lib/bundler/man/bundle-binstubs.1.ronn<br/>new file mode 100644<br/>index 0000000000..a96186929f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-binstubs.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-binstubs.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,41 @@</div><div class='add'>+bundle-binstubs(1) -- Install the binstubs of the listed gems</div><div class='add'>+=============================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle binstubs` &lt;GEM_NAME&gt; [--force] [--path PATH] [--standalone]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Binstubs are scripts that wrap around executables. Bundler creates a</div><div class='add'>+small Ruby file (a binstub) that loads Bundler, runs the command,</div><div class='add'>+and puts it into `bin/`. Binstubs are a shortcut-or alternative-</div><div class='add'>+to always using `bundle exec`. This gives you a file that can be run</div><div class='add'>+directly, and one that will always run the correct gem version</div><div class='add'>+used by the application.</div><div class='add'>+</div><div class='add'>+For example, if you run `bundle binstubs rspec-core`, Bundler will create</div><div class='add'>+the file `bin/rspec`. That file will contain enough code to load Bundler,</div><div class='add'>+tell it to load the bundled gems, and then run rspec.</div><div class='add'>+</div><div class='add'>+This command generates binstubs for executables in `GEM_NAME`.</div><div class='add'>+Binstubs are put into `bin`, or the `--path` directory if one has been set.</div><div class='add'>+Calling binstubs with [GEM [GEM]] will create binstubs for all given gems.</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--force`:</div><div class='add'>+  Overwrite existing binstubs if they exist.</div><div class='add'>+</div><div class='add'>+* `--path`:</div><div class='add'>+  The location to install the specified binstubs to. This defaults to `bin`.</div><div class='add'>+</div><div class='add'>+* `--standalone`:</div><div class='add'>+  Makes binstubs that can work without depending on Rubygems or Bundler at</div><div class='add'>+  runtime.</div><div class='add'>+</div><div class='add'>+* `--shebang`:</div><div class='add'>+  Specify a different shebang executable name than the default (default 'ruby')</div><div class='add'>+</div><div class='add'>+* `--all`:</div><div class='add'>+  Create binstubs for all gems in the bundle.</div><div class='head'>diff --git a/lib/bundler/man/bundle-cache.1 b/lib/bundler/man/bundle-cache.1<br/>new file mode 100644<br/>index 0000000000..69b1e1e3dd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-cache.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-cache.1</a></div><div class='hunk'>@@ -0,0 +1,61 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-CACHE" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle cache\fR</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+alias: \fBpackage\fR, \fBpack\fR</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Copy all of the \fB\.gem\fR files needed to run the application into the \fBvendor/cache\fR directory\. In the future, when running \fBbundle install(1)\fR \fIbundle\-install\.1\.html\fR, use the gems in the cache in preference to the ones on \fBrubygems\.org\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "GIT AND PATH GEMS"</div><div class='add'>+The \fBbundle cache\fR command can also package \fB:git\fR and \fB:path\fR dependencies besides \.gem files\. This needs to be explicitly enabled via the \fB\-\-all\fR option\. Once used, the \fB\-\-all\fR option will be remembered\.</div><div class='add'>+.</div><div class='add'>+.SH "SUPPORT FOR MULTIPLE PLATFORMS"</div><div class='add'>+When using gems that have different packages for different platforms, Bundler supports caching of gems for other platforms where the Gemfile has been resolved (i\.e\. present in the lockfile) in \fBvendor/cache\fR\. This needs to be enabled via the \fB\-\-all\-platforms\fR option\. This setting will be remembered in your local bundler configuration\.</div><div class='add'>+.</div><div class='add'>+.SH "REMOTE FETCHING"</div><div class='add'>+By default, if you run \fBbundle install(1)\fR \fIbundle\-install\.1\.html\fR after running bundle cache(1) \fIbundle\-cache\.1\.html\fR, bundler will still connect to \fBrubygems\.org\fR to check whether a platform\-specific gem exists for any of the gems in \fBvendor/cache\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For instance, consider this Gemfile(5):</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+source "https://rubygems\.org"</div><div class='add'>+</div><div class='add'>+gem "nokogiri"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If you run \fBbundle cache\fR under C Ruby, bundler will retrieve the version of \fBnokogiri\fR for the \fB"ruby"\fR platform\. If you deploy to JRuby and run \fBbundle install\fR, bundler is forced to check to see whether a \fB"java"\fR platformed \fBnokogiri\fR exists\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Even though the \fBnokogiri\fR gem for the Ruby platform is \fItechnically\fR acceptable on JRuby, it has a C extension that does not run on JRuby\. As a result, bundler will, by default, still connect to \fBrubygems\.org\fR to check whether it has a version of one of your gems more specific to your platform\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This problem is also not limited to the \fB"java"\fR platform\. A similar (common) problem can happen when developing on Windows and deploying to Linux, or even when developing on OSX and deploying to Linux\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If you know for sure that the gems packaged in \fBvendor/cache\fR are appropriate for the platform you are on, you can run \fBbundle install \-\-local\fR to skip checking for more appropriate gems, and use the ones in \fBvendor/cache\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+One way to be sure that you have the right platformed versions of all your gems is to run \fBbundle cache\fR on an identical machine and check in the gems\. For instance, you can run \fBbundle cache\fR on an identical staging box during your staging process, and check in the \fBvendor/cache\fR before deploying to production\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+By default, bundle cache(1) \fIbundle\-cache\.1\.html\fR fetches and also installs the gems to the default location\. To package the dependencies to \fBvendor/cache\fR without installing them to the local install location, you can run \fBbundle cache \-\-no\-install\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "HISTORY"</div><div class='add'>+In Bundler 2\.1, \fBcache\fR took in the functionalities of \fBpackage\fR and now \fBpackage\fR and \fBpack\fR are aliases of \fBcache\fR\.</div><div class='head'>diff --git a/lib/bundler/man/bundle-cache.1.ronn b/lib/bundler/man/bundle-cache.1.ronn<br/>new file mode 100644<br/>index 0000000000..8112c2c551<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-cache.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-cache.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,79 @@</div><div class='add'>+bundle-cache(1) -- Package your needed `.gem` files into your application</div><div class='add'>+===========================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle cache`</div><div class='add'>+</div><div class='add'>+alias: `package`, `pack`</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Copy all of the `.gem` files needed to run the application into the</div><div class='add'>+`vendor/cache` directory. In the future, when running [`bundle install(1)`](bundle-install.1.html),</div><div class='add'>+use the gems in the cache in preference to the ones on `rubygems.org`.</div><div class='add'>+</div><div class='add'>+## GIT AND PATH GEMS</div><div class='add'>+</div><div class='add'>+The `bundle cache` command can also package `:git` and `:path` dependencies</div><div class='add'>+besides .gem files. This needs to be explicitly enabled via the `--all` option.</div><div class='add'>+Once used, the `--all` option will be remembered.</div><div class='add'>+</div><div class='add'>+## SUPPORT FOR MULTIPLE PLATFORMS</div><div class='add'>+</div><div class='add'>+When using gems that have different packages for different platforms, Bundler</div><div class='add'>+supports caching of gems for other platforms where the Gemfile has been resolved</div><div class='add'>+(i.e. present in the lockfile) in `vendor/cache`.  This needs to be enabled via</div><div class='add'>+the `--all-platforms` option. This setting will be remembered in your local</div><div class='add'>+bundler configuration.</div><div class='add'>+</div><div class='add'>+## REMOTE FETCHING</div><div class='add'>+</div><div class='add'>+By default, if you run [`bundle install(1)`](bundle-install.1.html) after running</div><div class='add'>+[bundle cache(1)](bundle-cache.1.html), bundler will still connect to `rubygems.org`</div><div class='add'>+to check whether a platform-specific gem exists for any of the gems</div><div class='add'>+in `vendor/cache`.</div><div class='add'>+</div><div class='add'>+For instance, consider this Gemfile(5):</div><div class='add'>+</div><div class='add'>+    source "https://rubygems.org"</div><div class='add'>+</div><div class='add'>+    gem "nokogiri"</div><div class='add'>+</div><div class='add'>+If you run `bundle cache` under C Ruby, bundler will retrieve</div><div class='add'>+the version of `nokogiri` for the `"ruby"` platform. If you deploy</div><div class='add'>+to JRuby and run `bundle install`, bundler is forced to check to</div><div class='add'>+see whether a `"java"` platformed `nokogiri` exists.</div><div class='add'>+</div><div class='add'>+Even though the `nokogiri` gem for the Ruby platform is</div><div class='add'>+_technically_ acceptable on JRuby, it has a C extension</div><div class='add'>+that does not run on JRuby. As a result, bundler will, by default,</div><div class='add'>+still connect to `rubygems.org` to check whether it has a version</div><div class='add'>+of one of your gems more specific to your platform.</div><div class='add'>+</div><div class='add'>+This problem is also not limited to the `"java"` platform.</div><div class='add'>+A similar (common) problem can happen when developing on Windows</div><div class='add'>+and deploying to Linux, or even when developing on OSX and</div><div class='add'>+deploying to Linux.</div><div class='add'>+</div><div class='add'>+If you know for sure that the gems packaged in `vendor/cache`</div><div class='add'>+are appropriate for the platform you are on, you can run</div><div class='add'>+`bundle install --local` to skip checking for more appropriate</div><div class='add'>+gems, and use the ones in `vendor/cache`.</div><div class='add'>+</div><div class='add'>+One way to be sure that you have the right platformed versions</div><div class='add'>+of all your gems is to run `bundle cache` on an identical</div><div class='add'>+machine and check in the gems. For instance, you can run</div><div class='add'>+`bundle cache` on an identical staging box during your</div><div class='add'>+staging process, and check in the `vendor/cache` before</div><div class='add'>+deploying to production.</div><div class='add'>+</div><div class='add'>+By default, [bundle cache(1)](bundle-cache.1.html) fetches and also</div><div class='add'>+installs the gems to the default location. To package the</div><div class='add'>+dependencies to `vendor/cache` without installing them to the</div><div class='add'>+local install location, you can run `bundle cache --no-install`.</div><div class='add'>+</div><div class='add'>+## HISTORY</div><div class='add'>+</div><div class='add'>+In Bundler 2.1, `cache` took in the functionalities of `package` and now</div><div class='add'>+`package` and `pack` are aliases of `cache`.</div><div class='head'>diff --git a/lib/bundler/man/bundle-check.1 b/lib/bundler/man/bundle-check.1<br/>new file mode 100644<br/>index 0000000000..748a37e7d1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-check.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-check.1</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-CHECK" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle check\fR [\-\-dry\-run] [\-\-gemfile=FILE] [\-\-path=PATH]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+\fBcheck\fR searches the local machine for each of the gems requested in the Gemfile\. If all gems are found, Bundler prints a success message and exits with a status of 0\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If not, the first missing gem is listed and Bundler exits status 1\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-dry\-run\fR</div><div class='add'>+Locks the [\fBGemfile(5)\fR][Gemfile(5)] before running the command\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-gemfile\fR</div><div class='add'>+Use the specified gemfile instead of the [\fBGemfile(5)\fR][Gemfile(5)]\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-path\fR</div><div class='add'>+Specify a different path than the system default (\fB$BUNDLE_PATH\fR or \fB$GEM_HOME\fR)\. Bundler will remember this value for future installs on this machine\.</div><div class='add'>+</div><div class='head'>diff --git a/man/bundle-check.ronn b/lib/bundler/man/bundle-check.1.ronn<br/>index f2846b8ff2..f2846b8ff2 100644<br/>--- a/<a href='/ruby.git/tree/man/bundle-check.ronn?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-check.ronn</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-check.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-check.1.ronn</a></div><div class='head'>diff --git a/lib/bundler/man/bundle-clean.1 b/lib/bundler/man/bundle-clean.1<br/>new file mode 100644<br/>index 0000000000..af8f13cd89<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-clean.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-clean.1</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-CLEAN" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle clean\fR [\-\-dry\-run] [\-\-force]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+This command will remove all unused gems in your bundler directory\. This is useful when you have made many changes to your gem dependencies\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-dry\-run\fR</div><div class='add'>+Print the changes, but do not clean the unused gems\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-force\fR</div><div class='add'>+Forces cleaning up unused gems even if Bundler is configured to use globally installed gems\. As a consequence, removes all system gems except for the ones in the current application\.</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-clean.1.ronn b/lib/bundler/man/bundle-clean.1.ronn<br/>new file mode 100644<br/>index 0000000000..dae27c21ee<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-clean.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-clean.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+bundle-clean(1) -- Cleans up unused gems in your bundler directory</div><div class='add'>+==================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle clean` [--dry-run] [--force]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+This command will remove all unused gems in your bundler directory. This is</div><div class='add'>+useful when you have made many changes to your gem dependencies.</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--dry-run`:</div><div class='add'>+  Print the changes, but do not clean the unused gems.</div><div class='add'>+* `--force`:</div><div class='add'>+  Forces cleaning up unused gems even if Bundler is configured to use globally installed gems. As a consequence, removes all system gems except for the ones in the current application.</div><div class='head'>diff --git a/lib/bundler/man/bundle-config.1 b/lib/bundler/man/bundle-config.1<br/>new file mode 100644<br/>index 0000000000..4442f33105<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-config.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-config.1</a></div><div class='hunk'>@@ -0,0 +1,512 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-CONFIG" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-config\fR \- Set bundler configuration options</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle config\fR list</div><div class='add'>+.</div><div class='add'>+.br</div><div class='add'>+\fBbundle config\fR [get] NAME</div><div class='add'>+.</div><div class='add'>+.br</div><div class='add'>+\fBbundle config\fR [set] NAME VALUE</div><div class='add'>+.</div><div class='add'>+.br</div><div class='add'>+\fBbundle config\fR unset NAME</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+This command allows you to interact with Bundler\'s configuration system\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Bundler loads configuration settings in this order:</div><div class='add'>+.</div><div class='add'>+.IP "1." 4</div><div class='add'>+Local config (\fB&lt;project_root&gt;/\.bundle/config\fR or \fB$BUNDLE_APP_CONFIG/config\fR)</div><div class='add'>+.</div><div class='add'>+.IP "2." 4</div><div class='add'>+Environmental variables (\fBENV\fR)</div><div class='add'>+.</div><div class='add'>+.IP "3." 4</div><div class='add'>+Global config (\fB~/\.bundle/config\fR)</div><div class='add'>+.</div><div class='add'>+.IP "4." 4</div><div class='add'>+Bundler default config</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Executing \fBbundle config list\fR will print a list of all bundler configuration for the current bundle, and where that configuration was set\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Executing \fBbundle config get &lt;name&gt;\fR will print the value of that configuration setting, and where it was set\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Executing \fBbundle config set &lt;name&gt; &lt;value&gt;\fR defaults to setting \fBlocal\fR configuration if executing from within a local application, otherwise it will set \fBglobal\fR configuration\. See \fB\-\-local\fR and \fB\-\-global\fR options below\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Executing \fBbundle config set \-\-local &lt;name&gt; &lt;value&gt;\fR will set that configuration in the directory for the local application\. The configuration will be stored in \fB&lt;project_root&gt;/\.bundle/config\fR\. If \fBBUNDLE_APP_CONFIG\fR is set, the configuration will be stored in \fB$BUNDLE_APP_CONFIG/config\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Executing \fBbundle config set \-\-global &lt;name&gt; &lt;value&gt;\fR will set that configuration to the value specified for all bundles executed as the current user\. The configuration will be stored in \fB~/\.bundle/config\fR\. If \fIname\fR already is set, \fIname\fR will be overridden and user will be warned\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Executing \fBbundle config unset &lt;name&gt;\fR will delete the configuration in both local and global sources\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Executing \fBbundle config unset \-\-global &lt;name&gt;\fR will delete the configuration only from the user configuration\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Executing \fBbundle config unset \-\-local &lt;name&gt;\fR will delete the configuration only from the local application\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Executing bundle with the \fBBUNDLE_IGNORE_CONFIG\fR environment variable set will cause it to ignore all configuration\.</div><div class='add'>+.</div><div class='add'>+.SH "REMEMBERING OPTIONS"</div><div class='add'>+Flags passed to \fBbundle install\fR or the Bundler runtime, such as \fB\-\-path foo\fR or \fB\-\-without production\fR, are remembered between commands and saved to your local application\'s configuration (normally, \fB\./\.bundle/config\fR)\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+However, this will be changed in bundler 3, so it\'s better not to rely on this behavior\. If these options must be remembered, it\'s better to set them using \fBbundle config\fR (e\.g\., \fBbundle config set \-\-local path foo\fR)\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The options that can be configured are:</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbin\fR</div><div class='add'>+Creates a directory (defaults to \fB~/bin\fR) and place any executables from the gem there\. These executables run in Bundler\'s context\. If used, you might add this directory to your environment\'s \fBPATH\fR variable\. For instance, if the \fBrails\fR gem comes with a \fBrails\fR executable, this flag will create a \fBbin/rails\fR executable that ensures that all referred dependencies will be resolved using the bundled gems\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBdeployment\fR</div><div class='add'>+In deployment mode, Bundler will \'roll\-out\' the bundle for \fBproduction\fR use\. Please check carefully if you want to have this option enabled in \fBdevelopment\fR or \fBtest\fR environments\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBonly\fR</div><div class='add'>+A space\-separated list of groups to install only gems of the specified groups\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBpath\fR</div><div class='add'>+The location to install the specified gems to\. This defaults to Rubygems\' setting\. Bundler shares this location with Rubygems, \fBgem install \.\.\.\fR will have gem installed there, too\. Therefore, gems installed without a \fB\-\-path \.\.\.\fR setting will show up by calling \fBgem list\fR\. Accordingly, gems installed to other locations will not get listed\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBwithout\fR</div><div class='add'>+A space\-separated list of groups referencing gems to skip during installation\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBwith\fR</div><div class='add'>+A space\-separated list of \fBoptional\fR groups referencing gems to include during installation\.</div><div class='add'>+.</div><div class='add'>+.SH "BUILD OPTIONS"</div><div class='add'>+You can use \fBbundle config\fR to give Bundler the flags to pass to the gem installer every time bundler tries to install a particular gem\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+A very common example, the \fBmysql\fR gem, requires Snow Leopard users to pass configuration flags to \fBgem install\fR to specify where to find the \fBmysql_config\fR executable\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem install mysql \-\- \-\-with\-mysql\-config=/usr/local/mysql/bin/mysql_config</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Since the specific location of that executable can change from machine to machine, you can specify these flags on a per\-machine basis\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config set \-\-global build\.mysql \-\-with\-mysql\-config=/usr/local/mysql/bin/mysql_config</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+After running this command, every time bundler needs to install the \fBmysql\fR gem, it will pass along the flags you specified\.</div><div class='add'>+.</div><div class='add'>+.SH "CONFIGURATION KEYS"</div><div class='add'>+Configuration keys in bundler have two forms: the canonical form and the environment variable form\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For instance, passing the \fB\-\-without\fR flag to bundle install(1) \fIbundle\-install\.1\.html\fR prevents Bundler from installing certain groups specified in the Gemfile(5)\. Bundler persists this value in \fBapp/\.bundle/config\fR so that calls to \fBBundler\.setup\fR do not try to find gems from the \fBGemfile\fR that you didn\'t install\. Additionally, subsequent calls to bundle install(1) \fIbundle\-install\.1\.html\fR remember this setting and skip those groups\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The canonical form of this configuration is \fB"without"\fR\. To convert the canonical form to the environment variable form, capitalize it, and prepend \fBBUNDLE_\fR\. The environment variable form of \fB"without"\fR is \fBBUNDLE_WITHOUT\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Any periods in the configuration keys must be replaced with two underscores when setting it via environment variables\. The configuration key \fBlocal\.rack\fR becomes the environment variable \fBBUNDLE_LOCAL__RACK\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "LIST OF AVAILABLE KEYS"</div><div class='add'>+The following is a list of all configuration keys and their purpose\. You can learn more about their operation in bundle install(1) \fIbundle\-install\.1\.html\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBallow_deployment_source_credential_changes\fR (\fBBUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES\fR): When in deployment mode, allow changing the credentials to a gem\'s source\. Ex: \fBhttps://some\.host\.com/gems/path/\fR \-&gt; \fBhttps://user_name:password@some\.host\.com/gems/path\fR</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBallow_offline_install\fR (\fBBUNDLE_ALLOW_OFFLINE_INSTALL\fR): Allow Bundler to use cached data when installing without network access\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBauto_clean_without_path\fR (\fBBUNDLE_AUTO_CLEAN_WITHOUT_PATH\fR): Automatically run \fBbundle clean\fR after installing when an explicit \fBpath\fR has not been set and Bundler is not installing into the system gems\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBauto_install\fR (\fBBUNDLE_AUTO_INSTALL\fR): Automatically run \fBbundle install\fR when gems are missing\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBbin\fR (\fBBUNDLE_BIN\fR): Install executables from gems in the bundle to the specified directory\. Defaults to \fBfalse\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBcache_all\fR (\fBBUNDLE_CACHE_ALL\fR): Cache all gems, including path and git gems\. This needs to be explicitly configured on bundler 1 and bundler 2, but will be the default on bundler 3\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBcache_all_platforms\fR (\fBBUNDLE_CACHE_ALL_PLATFORMS\fR): Cache gems for all platforms\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBcache_path\fR (\fBBUNDLE_CACHE_PATH\fR): The directory that bundler will place cached gems in when running \fBbundle package\fR, and that bundler will look in when installing gems\. Defaults to \fBvendor/cache\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBclean\fR (\fBBUNDLE_CLEAN\fR): Whether Bundler should run \fBbundle clean\fR automatically after \fBbundle install\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBconsole\fR (\fBBUNDLE_CONSOLE\fR): The console that \fBbundle console\fR starts\. Defaults to \fBirb\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBdefault_install_uses_path\fR (\fBBUNDLE_DEFAULT_INSTALL_USES_PATH\fR): Whether a \fBbundle install\fR without an explicit \fB\-\-path\fR argument defaults to installing gems in \fB\.bundle\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBdeployment\fR (\fBBUNDLE_DEPLOYMENT\fR): Disallow changes to the \fBGemfile\fR\. When the \fBGemfile\fR is changed and the lockfile has not been updated, running Bundler commands will be blocked\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBdisable_checksum_validation\fR (\fBBUNDLE_DISABLE_CHECKSUM_VALIDATION\fR): Allow installing gems even if they do not match the checksum provided by RubyGems\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBdisable_exec_load\fR (\fBBUNDLE_DISABLE_EXEC_LOAD\fR): Stop Bundler from using \fBload\fR to launch an executable in\-process in \fBbundle exec\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBdisable_local_branch_check\fR (\fBBUNDLE_DISABLE_LOCAL_BRANCH_CHECK\fR): Allow Bundler to use a local git override without a branch specified in the Gemfile\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBdisable_local_revision_check\fR (\fBBUNDLE_DISABLE_LOCAL_REVISION_CHECK\fR): Allow Bundler to use a local git override without checking if the revision present in the lockfile is present in the repository\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBdisable_shared_gems\fR (\fBBUNDLE_DISABLE_SHARED_GEMS\fR): Stop Bundler from accessing gems installed to RubyGems\' normal location\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBdisable_version_check\fR (\fBBUNDLE_DISABLE_VERSION_CHECK\fR): Stop Bundler from checking if a newer Bundler version is available on rubygems\.org\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBforce_ruby_platform\fR (\fBBUNDLE_FORCE_RUBY_PLATFORM\fR): Ignore the current machine\'s platform and install only \fBruby\fR platform gems\. As a result, gems with native extensions will be compiled from source\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBfrozen\fR (\fBBUNDLE_FROZEN\fR): Disallow changes to the \fBGemfile\fR\. When the \fBGemfile\fR is changed and the lockfile has not been updated, running Bundler commands will be blocked\. Defaults to \fBtrue\fR when \fB\-\-deployment\fR is used\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBgem\.github_username\fR (\fBBUNDLE_GEM__GITHUB_USERNAME\fR): Sets a GitHub username or organization to be used in \fBREADME\fR file when you create a new gem via \fBbundle gem\fR command\. It can be overridden by passing an explicit \fB\-\-github\-username\fR flag to \fBbundle gem\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBgem\.push_key\fR (\fBBUNDLE_GEM__PUSH_KEY\fR): Sets the \fB\-\-key\fR parameter for \fBgem push\fR when using the \fBrake release\fR command with a private gemstash server\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBgemfile\fR (\fBBUNDLE_GEMFILE\fR): The name of the file that bundler should use as the \fBGemfile\fR\. This location of this file also sets the root of the project, which is used to resolve relative paths in the \fBGemfile\fR, among other things\. By default, bundler will search up from the current working directory until it finds a \fBGemfile\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBglobal_gem_cache\fR (\fBBUNDLE_GLOBAL_GEM_CACHE\fR): Whether Bundler should cache all gems globally, rather than locally to the installing Ruby installation\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBignore_funding_requests\fR (\fBBUNDLE_IGNORE_FUNDING_REQUESTS\fR): When set, no funding requests will be printed\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBignore_messages\fR (\fBBUNDLE_IGNORE_MESSAGES\fR): When set, no post install messages will be printed\. To silence a single gem, use dot notation like \fBignore_messages\.httparty true\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBinit_gems_rb\fR (\fBBUNDLE_INIT_GEMS_RB\fR): Generate a \fBgems\.rb\fR instead of a \fBGemfile\fR when running \fBbundle init\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBjobs\fR (\fBBUNDLE_JOBS\fR): The number of gems Bundler can install in parallel\. Defaults to the number of available processors\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBno_install\fR (\fBBUNDLE_NO_INSTALL\fR): Whether \fBbundle package\fR should skip installing gems\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBno_prune\fR (\fBBUNDLE_NO_PRUNE\fR): Whether Bundler should leave outdated gems unpruned when caching\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBonly\fR (\fBBUNDLE_ONLY\fR): A space\-separated list of groups to install only gems of the specified groups\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBpath\fR (\fBBUNDLE_PATH\fR): The location on disk where all gems in your bundle will be located regardless of \fB$GEM_HOME\fR or \fB$GEM_PATH\fR values\. Bundle gems not found in this location will be installed by \fBbundle install\fR\. Defaults to \fBGem\.dir\fR\. When \-\-deployment is used, defaults to vendor/bundle\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBpath\.system\fR (\fBBUNDLE_PATH__SYSTEM\fR): Whether Bundler will install gems into the default system path (\fBGem\.dir\fR)\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBpath_relative_to_cwd\fR (\fBBUNDLE_PATH_RELATIVE_TO_CWD\fR) Makes \fB\-\-path\fR relative to the CWD instead of the \fBGemfile\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBplugins\fR (\fBBUNDLE_PLUGINS\fR): Enable Bundler\'s experimental plugin system\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBprefer_patch\fR (BUNDLE_PREFER_PATCH): Prefer updating only to next patch version during updates\. Makes \fBbundle update\fR calls equivalent to \fBbundler update \-\-patch\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBprint_only_version_number\fR (\fBBUNDLE_PRINT_ONLY_VERSION_NUMBER\fR): Print only version number from \fBbundler \-\-version\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBredirect\fR (\fBBUNDLE_REDIRECT\fR): The number of redirects allowed for network requests\. Defaults to \fB5\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBretry\fR (\fBBUNDLE_RETRY\fR): The number of times to retry failed network requests\. Defaults to \fB3\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBsetup_makes_kernel_gem_public\fR (\fBBUNDLE_SETUP_MAKES_KERNEL_GEM_PUBLIC\fR): Have \fBBundler\.setup\fR make the \fBKernel#gem\fR method public, even though RubyGems declares it as private\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBshebang\fR (\fBBUNDLE_SHEBANG\fR): The program name that should be invoked for generated binstubs\. Defaults to the ruby install name used to generate the binstub\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBsilence_deprecations\fR (\fBBUNDLE_SILENCE_DEPRECATIONS\fR): Whether Bundler should silence deprecation warnings for behavior that will be changed in the next major version\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBsilence_root_warning\fR (\fBBUNDLE_SILENCE_ROOT_WARNING\fR): Silence the warning Bundler prints when installing gems as root\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBssl_ca_cert\fR (\fBBUNDLE_SSL_CA_CERT\fR): Path to a designated CA certificate file or folder containing multiple certificates for trusted CAs in PEM format\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBssl_client_cert\fR (\fBBUNDLE_SSL_CLIENT_CERT\fR): Path to a designated file containing a X\.509 client certificate and key in PEM format\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBssl_verify_mode\fR (\fBBUNDLE_SSL_VERIFY_MODE\fR): The SSL verification mode Bundler uses when making HTTPS requests\. Defaults to verify peer\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBsystem_bindir\fR (\fBBUNDLE_SYSTEM_BINDIR\fR): The location where RubyGems installs binstubs\. Defaults to \fBGem\.bindir\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBtimeout\fR (\fBBUNDLE_TIMEOUT\fR): The seconds allowed before timing out for network requests\. Defaults to \fB10\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBupdate_requires_all_flag\fR (\fBBUNDLE_UPDATE_REQUIRES_ALL_FLAG\fR): Require passing \fB\-\-all\fR to \fBbundle update\fR when everything should be updated, and disallow passing no options to \fBbundle update\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBuser_agent\fR (\fBBUNDLE_USER_AGENT\fR): The custom user agent fragment Bundler includes in API requests\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBwith\fR (\fBBUNDLE_WITH\fR): A \fB:\fR\-separated list of groups whose gems bundler should install\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBwithout\fR (\fBBUNDLE_WITHOUT\fR): A \fB:\fR\-separated list of groups whose gems bundler should not install\.</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In general, you should set these settings per\-application by using the applicable flag to the bundle install(1) \fIbundle\-install\.1\.html\fR or bundle cache(1) \fIbundle\-cache\.1\.html\fR command\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+You can set them globally either via environment variables or \fBbundle config\fR, whichever is preferable for your setup\. If you use both, environment variables will take preference over global settings\.</div><div class='add'>+.</div><div class='add'>+.SH "LOCAL GIT REPOS"</div><div class='add'>+Bundler also allows you to work against a git repository locally instead of using the remote version\. This can be achieved by setting up a local override:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config set \-\-local local\.GEM_NAME /path/to/local/git/repository</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For example, in order to use a local Rack repository, a developer could call:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config set \-\-local local\.rack ~/Work/git/rack</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Now instead of checking out the remote git repository, the local override will be used\. Similar to a path source, every time the local git repository change, changes will be automatically picked up by Bundler\. This means a commit in the local git repo will update the revision in the \fBGemfile\.lock\fR to the local git repo revision\. This requires the same attention as git submodules\. Before pushing to the remote, you need to ensure the local override was pushed, otherwise you may point to a commit that only exists in your local machine\. You\'ll also need to CGI escape your usernames and passwords as well\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Bundler does many checks to ensure a developer won\'t work with invalid references\. Particularly, we force a developer to specify a branch in the \fBGemfile\fR in order to use this feature\. If the branch specified in the \fBGemfile\fR and the current branch in the local git repository do not match, Bundler will abort\. This ensures that a developer is always working against the correct branches, and prevents accidental locking to a different branch\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Finally, Bundler also ensures that the current revision in the \fBGemfile\.lock\fR exists in the local git repository\. By doing this, Bundler forces you to fetch the latest changes in the remotes\.</div><div class='add'>+.</div><div class='add'>+.SH "MIRRORS OF GEM SOURCES"</div><div class='add'>+Bundler supports overriding gem sources with mirrors\. This allows you to configure rubygems\.org as the gem source in your Gemfile while still using your mirror to fetch gems\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config set \-\-global mirror\.SOURCE_URL MIRROR_URL</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For example, to use a mirror of https://rubygems\.org hosted at https://example\.org:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config set \-\-global mirror\.https://rubygems\.org https://example\.org</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Each mirror also provides a fallback timeout setting\. If the mirror does not respond within the fallback timeout, Bundler will try to use the original server instead of the mirror\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config set \-\-global mirror\.SOURCE_URL\.fallback_timeout TIMEOUT</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For example, to fall back to rubygems\.org after 3 seconds:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config set \-\-global mirror\.https://rubygems\.org\.fallback_timeout 3</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The default fallback timeout is 0\.1 seconds, but the setting can currently only accept whole seconds (for example, 1, 15, or 30)\.</div><div class='add'>+.</div><div class='add'>+.SH "CREDENTIALS FOR GEM SOURCES"</div><div class='add'>+Bundler allows you to configure credentials for any gem source, which allows you to avoid putting secrets into your Gemfile\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config set \-\-global SOURCE_HOSTNAME USERNAME:PASSWORD</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For example, to save the credentials of user \fBclaudette\fR for the gem source at \fBgems\.longerous\.com\fR, you would run:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config set \-\-global gems\.longerous\.com claudette:s00pers3krit</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Or you can set the credentials as an environment variable like this:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+export BUNDLE_GEMS__LONGEROUS__COM="claudette:s00pers3krit"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For gems with a git source with HTTP(S) URL you can specify credentials like so:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config set \-\-global https://github\.com/rubygems/rubygems\.git username:password</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Or you can set the credentials as an environment variable like so:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+export BUNDLE_GITHUB__COM=username:password</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This is especially useful for private repositories on hosts such as GitHub, where you can use personal OAuth tokens:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x\-oauth\-basic</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Note that any configured credentials will be redacted by informative commands such as \fBbundle config list\fR or \fBbundle config get\fR, unless you use the \fB\-\-parseable\fR flag\. This is to avoid unintentionally leaking credentials when copy\-pasting bundler output\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Also note that to guarantee a sane mapping between valid environment variable names and valid host names, bundler makes the following transformations:</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Any \fB\-\fR characters in a host name are mapped to a triple dash (\fB___\fR) in the corresponding environment variable\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Any \fB\.\fR characters in a host name are mapped to a double dash (\fB__\fR) in the corresponding environment variable\.</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This means that if you have a gem server named \fBmy\.gem\-host\.com\fR, you\'ll need to use the \fBBUNDLE_MY__GEM___HOST__COM\fR variable to configure credentials for it through ENV\.</div><div class='add'>+.</div><div class='add'>+.SH "CONFIGURE BUNDLER DIRECTORIES"</div><div class='add'>+Bundler\'s home, config, cache and plugin directories are able to be configured through environment variables\. The default location for Bundler\'s home directory is \fB~/\.bundle\fR, which all directories inherit from by default\. The following outlines the available environment variables and their default values</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+BUNDLE_USER_HOME : $HOME/\.bundle</div><div class='add'>+BUNDLE_USER_CACHE : $BUNDLE_USER_HOME/cache</div><div class='add'>+BUNDLE_USER_CONFIG : $BUNDLE_USER_HOME/config</div><div class='add'>+BUNDLE_USER_PLUGIN : $BUNDLE_USER_HOME/plugin</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-config.1.ronn b/lib/bundler/man/bundle-config.1.ronn<br/>new file mode 100644<br/>index 0000000000..adc273ec62<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-config.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-config.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,405 @@</div><div class='add'>+bundle-config(1) -- Set bundler configuration options</div><div class='add'>+=====================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle config` list&lt;br&gt;</div><div class='add'>+`bundle config` [get] NAME&lt;br&gt;</div><div class='add'>+`bundle config` [set] NAME VALUE&lt;br&gt;</div><div class='add'>+`bundle config` unset NAME</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+This command allows you to interact with Bundler's configuration system.</div><div class='add'>+</div><div class='add'>+Bundler loads configuration settings in this order:</div><div class='add'>+</div><div class='add'>+1. Local config (`&lt;project_root&gt;/.bundle/config` or `$BUNDLE_APP_CONFIG/config`)</div><div class='add'>+2. Environmental variables (`ENV`)</div><div class='add'>+3. Global config (`~/.bundle/config`)</div><div class='add'>+4. Bundler default config</div><div class='add'>+</div><div class='add'>+Executing `bundle config list` will print a list of all bundler</div><div class='add'>+configuration for the current bundle, and where that configuration</div><div class='add'>+was set.</div><div class='add'>+</div><div class='add'>+Executing `bundle config get &lt;name&gt;` will print the value of that configuration</div><div class='add'>+setting, and where it was set.</div><div class='add'>+</div><div class='add'>+Executing `bundle config set &lt;name&gt; &lt;value&gt;` defaults to setting `local`</div><div class='add'>+configuration if executing from within a local application, otherwise it will</div><div class='add'>+set `global` configuration. See `--local` and `--global` options below.</div><div class='add'>+</div><div class='add'>+Executing `bundle config set --local &lt;name&gt; &lt;value&gt;` will set that configuration</div><div class='add'>+in the directory for the local application. The configuration will be stored in</div><div class='add'>+`&lt;project_root&gt;/.bundle/config`. If `BUNDLE_APP_CONFIG` is set, the configuration</div><div class='add'>+will be stored in `$BUNDLE_APP_CONFIG/config`.</div><div class='add'>+</div><div class='add'>+Executing `bundle config set --global &lt;name&gt; &lt;value&gt;` will set that</div><div class='add'>+configuration to the value specified for all bundles executed as the current</div><div class='add'>+user. The configuration will be stored in `~/.bundle/config`. If &lt;name&gt; already</div><div class='add'>+is set, &lt;name&gt; will be overridden and user will be warned.</div><div class='add'>+</div><div class='add'>+Executing `bundle config unset &lt;name&gt;` will delete the configuration in both</div><div class='add'>+local and global sources.</div><div class='add'>+</div><div class='add'>+Executing `bundle config unset --global &lt;name&gt;` will delete the configuration</div><div class='add'>+only from the user configuration.</div><div class='add'>+</div><div class='add'>+Executing `bundle config unset --local &lt;name&gt;` will delete the configuration</div><div class='add'>+only from the local application.</div><div class='add'>+</div><div class='add'>+Executing bundle with the `BUNDLE_IGNORE_CONFIG` environment variable set will</div><div class='add'>+cause it to ignore all configuration.</div><div class='add'>+</div><div class='add'>+## REMEMBERING OPTIONS</div><div class='add'>+</div><div class='add'>+Flags passed to `bundle install` or the Bundler runtime, such as `--path foo` or</div><div class='add'>+`--without production`, are remembered between commands and saved to your local</div><div class='add'>+application's configuration (normally, `./.bundle/config`).</div><div class='add'>+</div><div class='add'>+However, this will be changed in bundler 3, so it's better not to rely on this</div><div class='add'>+behavior. If these options must be remembered, it's better to set them using</div><div class='add'>+`bundle config` (e.g., `bundle config set --local path foo`).</div><div class='add'>+</div><div class='add'>+The options that can be configured are:</div><div class='add'>+</div><div class='add'>+* `bin`:</div><div class='add'>+   Creates a directory (defaults to `~/bin`) and place any executables from the</div><div class='add'>+   gem there. These executables run in Bundler's context. If used, you might add</div><div class='add'>+   this directory to your environment's `PATH` variable. For instance, if the</div><div class='add'>+   `rails` gem comes with a `rails` executable, this flag will create a</div><div class='add'>+   `bin/rails` executable that ensures that all referred dependencies will be</div><div class='add'>+   resolved using the bundled gems.</div><div class='add'>+</div><div class='add'>+* `deployment`:</div><div class='add'>+   In deployment mode, Bundler will 'roll-out' the bundle for</div><div class='add'>+   `production` use. Please check carefully if you want to have this option</div><div class='add'>+   enabled in `development` or `test` environments.</div><div class='add'>+</div><div class='add'>+* `only`:</div><div class='add'>+   A space-separated list of groups to install only gems of the specified groups.</div><div class='add'>+</div><div class='add'>+* `path`:</div><div class='add'>+   The location to install the specified gems to. This defaults to Rubygems'</div><div class='add'>+   setting. Bundler shares this location with Rubygems, `gem install ...` will</div><div class='add'>+   have gem installed there, too. Therefore, gems installed without a</div><div class='add'>+   `--path ...` setting will show up by calling `gem list`. Accordingly, gems</div><div class='add'>+   installed to other locations will not get listed.</div><div class='add'>+</div><div class='add'>+* `without`:</div><div class='add'>+   A space-separated list of groups referencing gems to skip during installation.</div><div class='add'>+</div><div class='add'>+* `with`:</div><div class='add'>+  A space-separated list of **optional** groups referencing gems to include during installation.</div><div class='add'>+</div><div class='add'>+## BUILD OPTIONS</div><div class='add'>+</div><div class='add'>+You can use `bundle config` to give Bundler the flags to pass to the gem</div><div class='add'>+installer every time bundler tries to install a particular gem.</div><div class='add'>+</div><div class='add'>+A very common example, the `mysql` gem, requires Snow Leopard users to</div><div class='add'>+pass configuration flags to `gem install` to specify where to find the</div><div class='add'>+`mysql_config` executable.</div><div class='add'>+</div><div class='add'>+    gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config</div><div class='add'>+</div><div class='add'>+Since the specific location of that executable can change from machine</div><div class='add'>+to machine, you can specify these flags on a per-machine basis.</div><div class='add'>+</div><div class='add'>+    bundle config set --global build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config</div><div class='add'>+</div><div class='add'>+After running this command, every time bundler needs to install the</div><div class='add'>+`mysql` gem, it will pass along the flags you specified.</div><div class='add'>+</div><div class='add'>+## CONFIGURATION KEYS</div><div class='add'>+</div><div class='add'>+Configuration keys in bundler have two forms: the canonical form and the</div><div class='add'>+environment variable form.</div><div class='add'>+</div><div class='add'>+For instance, passing the `--without` flag to [bundle install(1)](bundle-install.1.html)</div><div class='add'>+prevents Bundler from installing certain groups specified in the Gemfile(5). Bundler</div><div class='add'>+persists this value in `app/.bundle/config` so that calls to `Bundler.setup`</div><div class='add'>+do not try to find gems from the `Gemfile` that you didn't install. Additionally,</div><div class='add'>+subsequent calls to [bundle install(1)](bundle-install.1.html) remember this setting</div><div class='add'>+and skip those groups.</div><div class='add'>+</div><div class='add'>+The canonical form of this configuration is `"without"`. To convert the canonical</div><div class='add'>+form to the environment variable form, capitalize it, and prepend `BUNDLE_`. The</div><div class='add'>+environment variable form of `"without"` is `BUNDLE_WITHOUT`.</div><div class='add'>+</div><div class='add'>+Any periods in the configuration keys must be replaced with two underscores when</div><div class='add'>+setting it via environment variables. The configuration key `local.rack` becomes</div><div class='add'>+the environment variable `BUNDLE_LOCAL__RACK`.</div><div class='add'>+</div><div class='add'>+## LIST OF AVAILABLE KEYS</div><div class='add'>+</div><div class='add'>+The following is a list of all configuration keys and their purpose. You can</div><div class='add'>+learn more about their operation in [bundle install(1)](bundle-install.1.html).</div><div class='add'>+</div><div class='add'>+* `allow_deployment_source_credential_changes` (`BUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES`):</div><div class='add'>+   When in deployment mode, allow changing the credentials to a gem's source.</div><div class='add'>+   Ex: `https://some.host.com/gems/path/` -&gt; `https://user_name:password@some.host.com/gems/path`</div><div class='add'>+* `allow_offline_install` (`BUNDLE_ALLOW_OFFLINE_INSTALL`):</div><div class='add'>+   Allow Bundler to use cached data when installing without network access.</div><div class='add'>+* `auto_clean_without_path` (`BUNDLE_AUTO_CLEAN_WITHOUT_PATH`):</div><div class='add'>+   Automatically run `bundle clean` after installing when an explicit `path`</div><div class='add'>+   has not been set and Bundler is not installing into the system gems.</div><div class='add'>+* `auto_install` (`BUNDLE_AUTO_INSTALL`):</div><div class='add'>+   Automatically run `bundle install` when gems are missing.</div><div class='add'>+* `bin` (`BUNDLE_BIN`):</div><div class='add'>+   Install executables from gems in the bundle to the specified directory.</div><div class='add'>+   Defaults to `false`.</div><div class='add'>+* `cache_all` (`BUNDLE_CACHE_ALL`):</div><div class='add'>+   Cache all gems, including path and git gems. This needs to be explicitly</div><div class='add'>+   configured on bundler 1 and bundler 2, but will be the default on bundler 3.</div><div class='add'>+* `cache_all_platforms` (`BUNDLE_CACHE_ALL_PLATFORMS`):</div><div class='add'>+   Cache gems for all platforms.</div><div class='add'>+* `cache_path` (`BUNDLE_CACHE_PATH`):</div><div class='add'>+   The directory that bundler will place cached gems in when running</div><div class='add'>+   &lt;code&gt;bundle package&lt;/code&gt;, and that bundler will look in when installing gems.</div><div class='add'>+   Defaults to `vendor/cache`.</div><div class='add'>+* `clean` (`BUNDLE_CLEAN`):</div><div class='add'>+   Whether Bundler should run `bundle clean` automatically after</div><div class='add'>+   `bundle install`.</div><div class='add'>+* `console` (`BUNDLE_CONSOLE`):</div><div class='add'>+   The console that `bundle console` starts. Defaults to `irb`.</div><div class='add'>+* `default_install_uses_path` (`BUNDLE_DEFAULT_INSTALL_USES_PATH`):</div><div class='add'>+   Whether a `bundle install` without an explicit `--path` argument defaults</div><div class='add'>+   to installing gems in `.bundle`.</div><div class='add'>+* `deployment` (`BUNDLE_DEPLOYMENT`):</div><div class='add'>+   Disallow changes to the `Gemfile`. When the `Gemfile` is changed and the</div><div class='add'>+   lockfile has not been updated, running Bundler commands will be blocked.</div><div class='add'>+* `disable_checksum_validation` (`BUNDLE_DISABLE_CHECKSUM_VALIDATION`):</div><div class='add'>+   Allow installing gems even if they do not match the checksum provided by</div><div class='add'>+   RubyGems.</div><div class='add'>+* `disable_exec_load` (`BUNDLE_DISABLE_EXEC_LOAD`):</div><div class='add'>+   Stop Bundler from using `load` to launch an executable in-process in</div><div class='add'>+   `bundle exec`.</div><div class='add'>+* `disable_local_branch_check` (`BUNDLE_DISABLE_LOCAL_BRANCH_CHECK`):</div><div class='add'>+   Allow Bundler to use a local git override without a branch specified in the</div><div class='add'>+   Gemfile.</div><div class='add'>+* `disable_local_revision_check` (`BUNDLE_DISABLE_LOCAL_REVISION_CHECK`):</div><div class='add'>+   Allow Bundler to use a local git override without checking if the revision</div><div class='add'>+   present in the lockfile is present in the repository.</div><div class='add'>+* `disable_shared_gems` (`BUNDLE_DISABLE_SHARED_GEMS`):</div><div class='add'>+   Stop Bundler from accessing gems installed to RubyGems' normal location.</div><div class='add'>+* `disable_version_check` (`BUNDLE_DISABLE_VERSION_CHECK`):</div><div class='add'>+   Stop Bundler from checking if a newer Bundler version is available on</div><div class='add'>+   rubygems.org.</div><div class='add'>+* `force_ruby_platform` (`BUNDLE_FORCE_RUBY_PLATFORM`):</div><div class='add'>+   Ignore the current machine's platform and install only `ruby` platform gems.</div><div class='add'>+   As a result, gems with native extensions will be compiled from source.</div><div class='add'>+* `frozen` (`BUNDLE_FROZEN`):</div><div class='add'>+   Disallow changes to the `Gemfile`. When the `Gemfile` is changed and the</div><div class='add'>+   lockfile has not been updated, running Bundler commands will be blocked.</div><div class='add'>+   Defaults to `true` when `--deployment` is used.</div><div class='add'>+* `gem.github_username` (`BUNDLE_GEM__GITHUB_USERNAME`):</div><div class='add'>+   Sets a GitHub username or organization to be used in `README` file when you</div><div class='add'>+   create a new gem via `bundle gem` command. It can be overridden by passing an</div><div class='add'>+   explicit `--github-username` flag to `bundle gem`.</div><div class='add'>+* `gem.push_key` (`BUNDLE_GEM__PUSH_KEY`):</div><div class='add'>+   Sets the `--key` parameter for `gem push` when using the `rake release`</div><div class='add'>+   command with a private gemstash server.</div><div class='add'>+* `gemfile` (`BUNDLE_GEMFILE`):</div><div class='add'>+   The name of the file that bundler should use as the `Gemfile`. This location</div><div class='add'>+   of this file also sets the root of the project, which is used to resolve</div><div class='add'>+   relative paths in the `Gemfile`, among other things. By default, bundler</div><div class='add'>+   will search up from the current working directory until it finds a</div><div class='add'>+   `Gemfile`.</div><div class='add'>+* `global_gem_cache` (`BUNDLE_GLOBAL_GEM_CACHE`):</div><div class='add'>+   Whether Bundler should cache all gems globally, rather than locally to the</div><div class='add'>+   installing Ruby installation.</div><div class='add'>+* `ignore_funding_requests` (`BUNDLE_IGNORE_FUNDING_REQUESTS`):</div><div class='add'>+   When set, no funding requests will be printed.</div><div class='add'>+* `ignore_messages` (`BUNDLE_IGNORE_MESSAGES`):</div><div class='add'>+   When set, no post install messages will be printed. To silence a single gem,</div><div class='add'>+   use dot notation like `ignore_messages.httparty true`.</div><div class='add'>+* `init_gems_rb` (`BUNDLE_INIT_GEMS_RB`):</div><div class='add'>+   Generate a `gems.rb` instead of a `Gemfile` when running `bundle init`.</div><div class='add'>+* `jobs` (`BUNDLE_JOBS`):</div><div class='add'>+   The number of gems Bundler can install in parallel. Defaults to the number of</div><div class='add'>+   available processors.</div><div class='add'>+* `no_install` (`BUNDLE_NO_INSTALL`):</div><div class='add'>+   Whether `bundle package` should skip installing gems.</div><div class='add'>+* `no_prune` (`BUNDLE_NO_PRUNE`):</div><div class='add'>+   Whether Bundler should leave outdated gems unpruned when caching.</div><div class='add'>+* `only` (`BUNDLE_ONLY`):</div><div class='add'>+   A space-separated list of groups to install only gems of the specified groups.</div><div class='add'>+* `path` (`BUNDLE_PATH`):</div><div class='add'>+   The location on disk where all gems in your bundle will be located regardless</div><div class='add'>+   of `$GEM_HOME` or `$GEM_PATH` values. Bundle gems not found in this location</div><div class='add'>+   will be installed by `bundle install`. Defaults to `Gem.dir`. When --deployment</div><div class='add'>+   is used, defaults to vendor/bundle.</div><div class='add'>+* `path.system` (`BUNDLE_PATH__SYSTEM`):</div><div class='add'>+   Whether Bundler will install gems into the default system path (`Gem.dir`).</div><div class='add'>+* `path_relative_to_cwd` (`BUNDLE_PATH_RELATIVE_TO_CWD`)</div><div class='add'>+   Makes `--path` relative to the CWD instead of the `Gemfile`.</div><div class='add'>+* `plugins` (`BUNDLE_PLUGINS`):</div><div class='add'>+   Enable Bundler's experimental plugin system.</div><div class='add'>+* `prefer_patch` (BUNDLE_PREFER_PATCH):</div><div class='add'>+   Prefer updating only to next patch version during updates. Makes `bundle update` calls equivalent to `bundler update --patch`.</div><div class='add'>+* `print_only_version_number` (`BUNDLE_PRINT_ONLY_VERSION_NUMBER`):</div><div class='add'>+   Print only version number from `bundler --version`.</div><div class='add'>+* `redirect` (`BUNDLE_REDIRECT`):</div><div class='add'>+   The number of redirects allowed for network requests. Defaults to `5`.</div><div class='add'>+* `retry` (`BUNDLE_RETRY`):</div><div class='add'>+   The number of times to retry failed network requests. Defaults to `3`.</div><div class='add'>+* `setup_makes_kernel_gem_public` (`BUNDLE_SETUP_MAKES_KERNEL_GEM_PUBLIC`):</div><div class='add'>+   Have `Bundler.setup` make the `Kernel#gem` method public, even though</div><div class='add'>+   RubyGems declares it as private.</div><div class='add'>+* `shebang` (`BUNDLE_SHEBANG`):</div><div class='add'>+   The program name that should be invoked for generated binstubs. Defaults to</div><div class='add'>+   the ruby install name used to generate the binstub.</div><div class='add'>+* `silence_deprecations` (`BUNDLE_SILENCE_DEPRECATIONS`):</div><div class='add'>+   Whether Bundler should silence deprecation warnings for behavior that will</div><div class='add'>+   be changed in the next major version.</div><div class='add'>+* `silence_root_warning` (`BUNDLE_SILENCE_ROOT_WARNING`):</div><div class='add'>+   Silence the warning Bundler prints when installing gems as root.</div><div class='add'>+* `ssl_ca_cert` (`BUNDLE_SSL_CA_CERT`):</div><div class='add'>+   Path to a designated CA certificate file or folder containing multiple</div><div class='add'>+   certificates for trusted CAs in PEM format.</div><div class='add'>+* `ssl_client_cert` (`BUNDLE_SSL_CLIENT_CERT`):</div><div class='add'>+   Path to a designated file containing a X.509 client certificate</div><div class='add'>+   and key in PEM format.</div><div class='add'>+* `ssl_verify_mode` (`BUNDLE_SSL_VERIFY_MODE`):</div><div class='add'>+   The SSL verification mode Bundler uses when making HTTPS requests.</div><div class='add'>+   Defaults to verify peer.</div><div class='add'>+* `system_bindir` (`BUNDLE_SYSTEM_BINDIR`):</div><div class='add'>+   The location where RubyGems installs binstubs. Defaults to `Gem.bindir`.</div><div class='add'>+* `timeout` (`BUNDLE_TIMEOUT`):</div><div class='add'>+   The seconds allowed before timing out for network requests. Defaults to `10`.</div><div class='add'>+* `update_requires_all_flag` (`BUNDLE_UPDATE_REQUIRES_ALL_FLAG`):</div><div class='add'>+   Require passing `--all` to `bundle update` when everything should be updated,</div><div class='add'>+   and disallow passing no options to `bundle update`.</div><div class='add'>+* `user_agent` (`BUNDLE_USER_AGENT`):</div><div class='add'>+   The custom user agent fragment Bundler includes in API requests.</div><div class='add'>+* `with` (`BUNDLE_WITH`):</div><div class='add'>+   A `:`-separated list of groups whose gems bundler should install.</div><div class='add'>+* `without` (`BUNDLE_WITHOUT`):</div><div class='add'>+   A `:`-separated list of groups whose gems bundler should not install.</div><div class='add'>+</div><div class='add'>+In general, you should set these settings per-application by using the applicable</div><div class='add'>+flag to the [bundle install(1)](bundle-install.1.html) or [bundle cache(1)](bundle-cache.1.html) command.</div><div class='add'>+</div><div class='add'>+You can set them globally either via environment variables or `bundle config`,</div><div class='add'>+whichever is preferable for your setup. If you use both, environment variables</div><div class='add'>+will take preference over global settings.</div><div class='add'>+</div><div class='add'>+## LOCAL GIT REPOS</div><div class='add'>+</div><div class='add'>+Bundler also allows you to work against a git repository locally</div><div class='add'>+instead of using the remote version. This can be achieved by setting</div><div class='add'>+up a local override:</div><div class='add'>+</div><div class='add'>+    bundle config set --local local.GEM_NAME /path/to/local/git/repository</div><div class='add'>+</div><div class='add'>+For example, in order to use a local Rack repository, a developer could call:</div><div class='add'>+</div><div class='add'>+    bundle config set --local local.rack ~/Work/git/rack</div><div class='add'>+</div><div class='add'>+Now instead of checking out the remote git repository, the local</div><div class='add'>+override will be used. Similar to a path source, every time the local</div><div class='add'>+git repository change, changes will be automatically picked up by</div><div class='add'>+Bundler. This means a commit in the local git repo will update the</div><div class='add'>+revision in the `Gemfile.lock` to the local git repo revision. This</div><div class='add'>+requires the same attention as git submodules. Before pushing to</div><div class='add'>+the remote, you need to ensure the local override was pushed, otherwise</div><div class='add'>+you may point to a commit that only exists in your local machine.</div><div class='add'>+You'll also need to CGI escape your usernames and passwords as well.</div><div class='add'>+</div><div class='add'>+Bundler does many checks to ensure a developer won't work with</div><div class='add'>+invalid references. Particularly, we force a developer to specify</div><div class='add'>+a branch in the `Gemfile` in order to use this feature. If the branch</div><div class='add'>+specified in the `Gemfile` and the current branch in the local git</div><div class='add'>+repository do not match, Bundler will abort. This ensures that</div><div class='add'>+a developer is always working against the correct branches, and prevents</div><div class='add'>+accidental locking to a different branch.</div><div class='add'>+</div><div class='add'>+Finally, Bundler also ensures that the current revision in the</div><div class='add'>+`Gemfile.lock` exists in the local git repository. By doing this, Bundler</div><div class='add'>+forces you to fetch the latest changes in the remotes.</div><div class='add'>+</div><div class='add'>+## MIRRORS OF GEM SOURCES</div><div class='add'>+</div><div class='add'>+Bundler supports overriding gem sources with mirrors. This allows you to</div><div class='add'>+configure rubygems.org as the gem source in your Gemfile while still using your</div><div class='add'>+mirror to fetch gems.</div><div class='add'>+</div><div class='add'>+    bundle config set --global mirror.SOURCE_URL MIRROR_URL</div><div class='add'>+</div><div class='add'>+For example, to use a mirror of https://rubygems.org hosted at https://example.org:</div><div class='add'>+</div><div class='add'>+    bundle config set --global mirror.https://rubygems.org https://example.org</div><div class='add'>+</div><div class='add'>+Each mirror also provides a fallback timeout setting. If the mirror does not</div><div class='add'>+respond within the fallback timeout, Bundler will try to use the original</div><div class='add'>+server instead of the mirror.</div><div class='add'>+</div><div class='add'>+    bundle config set --global mirror.SOURCE_URL.fallback_timeout TIMEOUT</div><div class='add'>+</div><div class='add'>+For example, to fall back to rubygems.org after 3 seconds:</div><div class='add'>+</div><div class='add'>+    bundle config set --global mirror.https://rubygems.org.fallback_timeout 3</div><div class='add'>+</div><div class='add'>+The default fallback timeout is 0.1 seconds, but the setting can currently</div><div class='add'>+only accept whole seconds (for example, 1, 15, or 30).</div><div class='add'>+</div><div class='add'>+## CREDENTIALS FOR GEM SOURCES</div><div class='add'>+</div><div class='add'>+Bundler allows you to configure credentials for any gem source, which allows</div><div class='add'>+you to avoid putting secrets into your Gemfile.</div><div class='add'>+</div><div class='add'>+    bundle config set --global SOURCE_HOSTNAME USERNAME:PASSWORD</div><div class='add'>+</div><div class='add'>+For example, to save the credentials of user `claudette` for the gem source at</div><div class='add'>+`gems.longerous.com`, you would run:</div><div class='add'>+</div><div class='add'>+    bundle config set --global gems.longerous.com claudette:s00pers3krit</div><div class='add'>+</div><div class='add'>+Or you can set the credentials as an environment variable like this:</div><div class='add'>+</div><div class='add'>+    export BUNDLE_GEMS__LONGEROUS__COM="claudette:s00pers3krit"</div><div class='add'>+</div><div class='add'>+For gems with a git source with HTTP(S) URL you can specify credentials like so:</div><div class='add'>+</div><div class='add'>+    bundle config set --global https://github.com/rubygems/rubygems.git username:password</div><div class='add'>+</div><div class='add'>+Or you can set the credentials as an environment variable like so:</div><div class='add'>+</div><div class='add'>+    export BUNDLE_GITHUB__COM=username:password</div><div class='add'>+</div><div class='add'>+This is especially useful for private repositories on hosts such as GitHub,</div><div class='add'>+where you can use personal OAuth tokens:</div><div class='add'>+</div><div class='add'>+    export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x-oauth-basic</div><div class='add'>+</div><div class='add'>+Note that any configured credentials will be redacted by informative commands</div><div class='add'>+such as `bundle config list` or `bundle config get`, unless you use the</div><div class='add'>+`--parseable` flag. This is to avoid unintentionally leaking credentials when</div><div class='add'>+copy-pasting bundler output.</div><div class='add'>+</div><div class='add'>+Also note that to guarantee a sane mapping between valid environment variable</div><div class='add'>+names and valid host names, bundler makes the following transformations:</div><div class='add'>+</div><div class='add'>+* Any `-` characters in a host name are mapped to a triple dash (`___`) in the</div><div class='add'>+  corresponding environment variable.</div><div class='add'>+</div><div class='add'>+* Any `.` characters in a host name are mapped to a double dash (`__`) in the</div><div class='add'>+  corresponding environment variable.</div><div class='add'>+</div><div class='add'>+This means that if you have a gem server named `my.gem-host.com`, you'll need to</div><div class='add'>+use the `BUNDLE_MY__GEM___HOST__COM` variable to configure credentials for it</div><div class='add'>+through ENV.</div><div class='add'>+</div><div class='add'>+## CONFIGURE BUNDLER DIRECTORIES</div><div class='add'>+</div><div class='add'>+Bundler's home, config, cache and plugin directories are able to be configured</div><div class='add'>+through environment variables. The default location for Bundler's home directory is</div><div class='add'>+`~/.bundle`, which all directories inherit from by default. The following</div><div class='add'>+outlines the available environment variables and their default values</div><div class='add'>+</div><div class='add'>+    BUNDLE_USER_HOME : $HOME/.bundle</div><div class='add'>+    BUNDLE_USER_CACHE : $BUNDLE_USER_HOME/cache</div><div class='add'>+    BUNDLE_USER_CONFIG : $BUNDLE_USER_HOME/config</div><div class='add'>+    BUNDLE_USER_PLUGIN : $BUNDLE_USER_HOME/plugin</div><div class='head'>diff --git a/lib/bundler/man/bundle-console.1 b/lib/bundler/man/bundle-console.1<br/>new file mode 100644<br/>index 0000000000..24fff46cec<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-console.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-console.1</a></div><div class='hunk'>@@ -0,0 +1,53 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-CONSOLE" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-console\fR \- Deprecated way to open an IRB session with the bundle pre\-loaded</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle console\fR [GROUP]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Starts an interactive Ruby console session in the context of the current bundle\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If no \fBGROUP\fR is specified, all gems in the \fBdefault\fR group in the Gemfile(5) \fIhttps://bundler\.io/man/gemfile\.5\.html\fR are preliminarily loaded\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If \fBGROUP\fR is specified, all gems in the given group in the Gemfile in addition to the gems in \fBdefault\fR group are loaded\. Even if the given group does not exist in the Gemfile, IRB console starts without any warning or error\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The environment variable \fBBUNDLE_CONSOLE\fR or \fBbundle config set console\fR can be used to change the shell from the following:</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBirb\fR (default)</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBpry\fR (https://github\.com/pry/pry)</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBripl\fR (https://github\.com/cldwalker/ripl)</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+\fBbundle console\fR uses irb by default\. An alternative Pry or Ripl can be used with \fBbundle console\fR by adjusting the \fBconsole\fR Bundler setting\. Also make sure that \fBpry\fR or \fBripl\fR is in your Gemfile\.</div><div class='add'>+.</div><div class='add'>+.SH "EXAMPLE"</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+$ bundle config set console pry</div><div class='add'>+$ bundle console</div><div class='add'>+Resolving dependencies\.\.\.</div><div class='add'>+[1] pry(main)&gt;</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.SH "NOTES"</div><div class='add'>+This command was deprecated in Bundler 2\.1 and will be removed in 3\.0\. Use \fBbin/console\fR script, which can be generated by \fBbundle gem &lt;NAME&gt;\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "SEE ALSO"</div><div class='add'>+Gemfile(5) \fIhttps://bundler\.io/man/gemfile\.5\.html\fR</div><div class='head'>diff --git a/lib/bundler/man/bundle-console.1.ronn b/lib/bundler/man/bundle-console.1.ronn<br/>new file mode 100644<br/>index 0000000000..f9096d386a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-console.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-console.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,44 @@</div><div class='add'>+bundle-console(1) -- Deprecated way to open an IRB session with the bundle pre-loaded</div><div class='add'>+=====================================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle console` [GROUP]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Starts an interactive Ruby console session in the context of the current bundle.</div><div class='add'>+</div><div class='add'>+If no `GROUP` is specified, all gems in the `default` group in the [Gemfile(5)](https://bundler.io/man/gemfile.5.html) are</div><div class='add'>+preliminarily loaded.</div><div class='add'>+</div><div class='add'>+If `GROUP` is specified, all gems in the given group in the Gemfile in addition</div><div class='add'>+to the gems in `default` group are loaded. Even if the given group does not</div><div class='add'>+exist in the Gemfile, IRB console starts without any warning or error.</div><div class='add'>+</div><div class='add'>+The environment variable `BUNDLE_CONSOLE` or `bundle config set console` can be used to change</div><div class='add'>+the shell from the following:</div><div class='add'>+</div><div class='add'>+* `irb` (default)</div><div class='add'>+* `pry` (https://github.com/pry/pry)</div><div class='add'>+* `ripl` (https://github.com/cldwalker/ripl)</div><div class='add'>+</div><div class='add'>+`bundle console` uses irb by default. An alternative Pry or Ripl can be used with</div><div class='add'>+`bundle console` by adjusting the `console` Bundler setting. Also make sure that</div><div class='add'>+`pry` or `ripl` is in your Gemfile.</div><div class='add'>+</div><div class='add'>+## EXAMPLE</div><div class='add'>+</div><div class='add'>+    $ bundle config set console pry</div><div class='add'>+    $ bundle console</div><div class='add'>+    Resolving dependencies...</div><div class='add'>+    [1] pry(main)&gt;</div><div class='add'>+</div><div class='add'>+## NOTES</div><div class='add'>+</div><div class='add'>+This command was deprecated in Bundler 2.1 and will be removed in 3.0.</div><div class='add'>+Use `bin/console` script, which can be generated by `bundle gem &lt;NAME&gt;`.</div><div class='add'>+</div><div class='add'>+## SEE ALSO</div><div class='add'>+</div><div class='add'>+[Gemfile(5)](https://bundler.io/man/gemfile.5.html)</div><div class='head'>diff --git a/lib/bundler/man/bundle-doctor.1 b/lib/bundler/man/bundle-doctor.1<br/>new file mode 100644<br/>index 0000000000..57da8216cb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-doctor.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-doctor.1</a></div><div class='hunk'>@@ -0,0 +1,44 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-DOCTOR" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-doctor\fR \- Checks the bundle for common problems</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle doctor\fR [\-\-quiet] [\-\-gemfile=GEMFILE]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Checks your Gemfile and gem environment for common problems\. If issues are detected, Bundler prints them and exits status 1\. Otherwise, Bundler prints a success message and exits status 0\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Examples of common problems caught by bundle\-doctor include:</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Invalid Bundler settings</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Mismatched Ruby versions</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Mismatched platforms</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Uninstalled gems</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Missing dependencies</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-quiet\fR</div><div class='add'>+Only output warnings and errors\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-gemfile=&lt;gemfile&gt;\fR</div><div class='add'>+The location of the Gemfile(5) which Bundler should use\. This defaults to a Gemfile(5) in the current working directory\. In general, Bundler will assume that the location of the Gemfile(5) is also the project\'s root and will try to find \fBGemfile\.lock\fR and \fBvendor/cache\fR relative to this location\.</div><div class='add'>+</div><div class='head'>diff --git a/man/bundle-doctor.ronn b/lib/bundler/man/bundle-doctor.1.ronn<br/>index 271ee800ad..271ee800ad 100644<br/>--- a/<a href='/ruby.git/tree/man/bundle-doctor.ronn?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-doctor.ronn</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-doctor.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-doctor.1.ronn</a></div><div class='head'>diff --git a/lib/bundler/man/bundle-exec.1 b/lib/bundler/man/bundle-exec.1<br/>new file mode 100644<br/>index 0000000000..852788db7a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-exec.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-exec.1</a></div><div class='hunk'>@@ -0,0 +1,165 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-EXEC" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-exec\fR \- Execute a command in the context of the bundle</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle exec\fR [\-\-keep\-file\-descriptors] \fIcommand\fR</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+This command executes the command, making all gems specified in the [\fBGemfile(5)\fR][Gemfile(5)] available to \fBrequire\fR in Ruby programs\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Essentially, if you would normally have run something like \fBrspec spec/my_spec\.rb\fR, and you want to use the gems specified in the [\fBGemfile(5)\fR][Gemfile(5)] and installed via bundle install(1) \fIbundle\-install\.1\.html\fR, you should run \fBbundle exec rspec spec/my_spec\.rb\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Note that \fBbundle exec\fR does not require that an executable is available on your shell\'s \fB$PATH\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-keep\-file\-descriptors\fR</div><div class='add'>+Exec in Ruby 2\.0 began discarding non\-standard file descriptors\. When this flag is passed, exec will revert to the 1\.9 behaviour of passing all file descriptors to the new process\.</div><div class='add'>+.</div><div class='add'>+.SH "BUNDLE INSTALL \-\-BINSTUBS"</div><div class='add'>+If you use the \fB\-\-binstubs\fR flag in bundle install(1) \fIbundle\-install\.1\.html\fR, Bundler will automatically create a directory (which defaults to \fBapp_root/bin\fR) containing all of the executables available from gems in the bundle\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+After using \fB\-\-binstubs\fR, \fBbin/rspec spec/my_spec\.rb\fR is identical to \fBbundle exec rspec spec/my_spec\.rb\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "ENVIRONMENT MODIFICATIONS"</div><div class='add'>+\fBbundle exec\fR makes a number of changes to the shell environment, then executes the command you specify in full\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+make sure that it\'s still possible to shell out to \fBbundle\fR from inside a command invoked by \fBbundle exec\fR (using \fB$BUNDLE_BIN_PATH\fR)</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+put the directory containing executables (like \fBrails\fR, \fBrspec\fR, \fBrackup\fR) for your bundle on \fB$PATH\fR</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+make sure that if bundler is invoked in the subshell, it uses the same \fBGemfile\fR (by setting \fBBUNDLE_GEMFILE\fR)</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+add \fB\-rbundler/setup\fR to \fB$RUBYOPT\fR, which makes sure that Ruby programs invoked in the subshell can see the gems in the bundle</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+It also modifies Rubygems:</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+disallow loading additional gems not in the bundle</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+modify the \fBgem\fR method to be a no\-op if a gem matching the requirements is in the bundle, and to raise a \fBGem::LoadError\fR if it\'s not</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Define \fBGem\.refresh\fR to be a no\-op, since the source index is always frozen when using bundler, and to prevent gems from the system leaking into the environment</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Override \fBGem\.bin_path\fR to use the gems in the bundle, making system executables work</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Add all gems in the bundle into Gem\.loaded_specs</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Finally, \fBbundle exec\fR also implicitly modifies \fBGemfile\.lock\fR if the lockfile and the Gemfile do not match\. Bundler needs the Gemfile to determine things such as a gem\'s groups, \fBautorequire\fR, and platforms, etc\., and that information isn\'t stored in the lockfile\. The Gemfile and lockfile must be synced in order to \fBbundle exec\fR successfully, so \fBbundle exec\fR updates the lockfile beforehand\.</div><div class='add'>+.</div><div class='add'>+.SS "Loading"</div><div class='add'>+By default, when attempting to \fBbundle exec\fR to a file with a ruby shebang, Bundler will \fBKernel\.load\fR that file instead of using \fBKernel\.exec\fR\. For the vast majority of cases, this is a performance improvement\. In a rare few cases, this could cause some subtle side\-effects (such as dependence on the exact contents of \fB$0\fR or \fB__FILE__\fR) and the optimization can be disabled by enabling the \fBdisable_exec_load\fR setting\.</div><div class='add'>+.</div><div class='add'>+.SS "Shelling out"</div><div class='add'>+Any Ruby code that opens a subshell (like \fBsystem\fR, backticks, or \fB%x{}\fR) will automatically use the current Bundler environment\. If you need to shell out to a Ruby command that is not part of your current bundle, use the \fBwith_unbundled_env\fR method with a block\. Any subshells created inside the block will be given the environment present before Bundler was activated\. For example, Homebrew commands run Ruby, but don\'t work inside a bundle:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+Bundler\.with_unbundled_env do</div><div class='add'>+  `brew install wget`</div><div class='add'>+end</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Using \fBwith_unbundled_env\fR is also necessary if you are shelling out to a different bundle\. Any Bundler commands run in a subshell will inherit the current Gemfile, so commands that need to run in the context of a different bundle also need to use \fBwith_unbundled_env\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+Bundler\.with_unbundled_env do</div><div class='add'>+  Dir\.chdir "/other/bundler/project" do</div><div class='add'>+    `bundle exec \./script`</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Bundler provides convenience helpers that wrap \fBsystem\fR and \fBexec\fR, and they can be used like this:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+Bundler\.clean_system(\'brew install wget\')</div><div class='add'>+Bundler\.clean_exec(\'brew install wget\')</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SH "RUBYGEMS PLUGINS"</div><div class='add'>+At present, the Rubygems plugin system requires all files named \fBrubygems_plugin\.rb\fR on the load path of \fIany\fR installed gem when any Ruby code requires \fBrubygems\.rb\fR\. This includes executables installed into the system, like \fBrails\fR, \fBrackup\fR, and \fBrspec\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Since Rubygems plugins can contain arbitrary Ruby code, they commonly end up activating themselves or their dependencies\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For instance, the \fBgemcutter 0\.5\fR gem depended on \fBjson_pure\fR\. If you had that version of gemcutter installed (even if you \fIalso\fR had a newer version without this problem), Rubygems would activate \fBgemcutter 0\.5\fR and \fBjson_pure &lt;latest&gt;\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If your Gemfile(5) also contained \fBjson_pure\fR (or a gem with a dependency on \fBjson_pure\fR), the latest version on your system might conflict with the version in your Gemfile(5), or the snapshot version in your \fBGemfile\.lock\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If this happens, bundler will say:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+You have already activated json_pure 1\.4\.6 but your Gemfile</div><div class='add'>+requires json_pure 1\.4\.3\. Consider using bundle exec\.</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In this situation, you almost certainly want to remove the underlying gem with the problematic gem plugin\. In general, the authors of these plugins (in this case, the \fBgemcutter\fR gem) have released newer versions that are more careful in their plugins\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+You can find a list of all the gems containing gem plugins by running</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+ruby \-e "puts Gem\.find_files(\'rubygems_plugin\.rb\')"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+At the very least, you should remove all but the newest version of each gem plugin, and also remove all gem plugins that you aren\'t using (\fBgem uninstall gem_name\fR)\.</div><div class='head'>diff --git a/lib/bundler/man/bundle-exec.1.ronn b/lib/bundler/man/bundle-exec.1.ronn<br/>new file mode 100644<br/>index 0000000000..05948095e2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-exec.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-exec.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,152 @@</div><div class='add'>+bundle-exec(1) -- Execute a command in the context of the bundle</div><div class='add'>+================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle exec` [--keep-file-descriptors] &lt;command&gt;</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+This command executes the command, making all gems specified in the</div><div class='add'>+[`Gemfile(5)`][Gemfile(5)] available to `require` in Ruby programs.</div><div class='add'>+</div><div class='add'>+Essentially, if you would normally have run something like</div><div class='add'>+`rspec spec/my_spec.rb`, and you want to use the gems specified</div><div class='add'>+in the [`Gemfile(5)`][Gemfile(5)] and installed via [bundle install(1)](bundle-install.1.html), you</div><div class='add'>+should run `bundle exec rspec spec/my_spec.rb`.</div><div class='add'>+</div><div class='add'>+Note that `bundle exec` does not require that an executable is</div><div class='add'>+available on your shell's `$PATH`.</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--keep-file-descriptors`:</div><div class='add'>+  Exec in Ruby 2.0 began discarding non-standard file descriptors. When this</div><div class='add'>+  flag is passed, exec will revert to the 1.9 behaviour of passing all file</div><div class='add'>+  descriptors to the new process.</div><div class='add'>+</div><div class='add'>+## BUNDLE INSTALL --BINSTUBS</div><div class='add'>+</div><div class='add'>+If you use the `--binstubs` flag in [bundle install(1)](bundle-install.1.html), Bundler will</div><div class='add'>+automatically create a directory (which defaults to `app_root/bin`)</div><div class='add'>+containing all of the executables available from gems in the bundle.</div><div class='add'>+</div><div class='add'>+After using `--binstubs`, `bin/rspec spec/my_spec.rb` is identical</div><div class='add'>+to `bundle exec rspec spec/my_spec.rb`.</div><div class='add'>+</div><div class='add'>+## ENVIRONMENT MODIFICATIONS</div><div class='add'>+</div><div class='add'>+`bundle exec` makes a number of changes to the shell environment,</div><div class='add'>+then executes the command you specify in full.</div><div class='add'>+</div><div class='add'>+* make sure that it's still possible to shell out to `bundle`</div><div class='add'>+  from inside a command invoked by `bundle exec` (using</div><div class='add'>+  `$BUNDLE_BIN_PATH`)</div><div class='add'>+* put the directory containing executables (like `rails`, `rspec`,</div><div class='add'>+  `rackup`) for your bundle on `$PATH`</div><div class='add'>+* make sure that if bundler is invoked in the subshell, it uses</div><div class='add'>+  the same `Gemfile` (by setting `BUNDLE_GEMFILE`)</div><div class='add'>+* add `-rbundler/setup` to `$RUBYOPT`, which makes sure that</div><div class='add'>+  Ruby programs invoked in the subshell can see the gems in</div><div class='add'>+  the bundle</div><div class='add'>+</div><div class='add'>+It also modifies Rubygems:</div><div class='add'>+</div><div class='add'>+* disallow loading additional gems not in the bundle</div><div class='add'>+* modify the `gem` method to be a no-op if a gem matching</div><div class='add'>+  the requirements is in the bundle, and to raise a</div><div class='add'>+  `Gem::LoadError` if it's not</div><div class='add'>+* Define `Gem.refresh` to be a no-op, since the source</div><div class='add'>+  index is always frozen when using bundler, and to</div><div class='add'>+  prevent gems from the system leaking into the environment</div><div class='add'>+* Override `Gem.bin_path` to use the gems in the bundle,</div><div class='add'>+  making system executables work</div><div class='add'>+* Add all gems in the bundle into Gem.loaded_specs</div><div class='add'>+</div><div class='add'>+Finally, `bundle exec` also implicitly modifies `Gemfile.lock` if the lockfile</div><div class='add'>+and the Gemfile do not match. Bundler needs the Gemfile to determine things</div><div class='add'>+such as a gem's groups, `autorequire`, and platforms, etc., and that</div><div class='add'>+information isn't stored in the lockfile. The Gemfile and lockfile must be</div><div class='add'>+synced in order to `bundle exec` successfully, so `bundle exec`</div><div class='add'>+updates the lockfile beforehand.</div><div class='add'>+</div><div class='add'>+### Loading</div><div class='add'>+</div><div class='add'>+By default, when attempting to `bundle exec` to a file with a ruby shebang,</div><div class='add'>+Bundler will `Kernel.load` that file instead of using `Kernel.exec`. For the</div><div class='add'>+vast majority of cases, this is a performance improvement. In a rare few cases,</div><div class='add'>+this could cause some subtle side-effects (such as dependence on the exact</div><div class='add'>+contents of `$0` or `__FILE__`) and the optimization can be disabled by enabling</div><div class='add'>+the `disable_exec_load` setting.</div><div class='add'>+</div><div class='add'>+### Shelling out</div><div class='add'>+</div><div class='add'>+Any Ruby code that opens a subshell (like `system`, backticks, or `%x{}`) will</div><div class='add'>+automatically use the current Bundler environment. If you need to shell out to</div><div class='add'>+a Ruby command that is not part of your current bundle, use the</div><div class='add'>+`with_unbundled_env` method with a block. Any subshells created inside the block</div><div class='add'>+will be given the environment present before Bundler was activated. For</div><div class='add'>+example, Homebrew commands run Ruby, but don't work inside a bundle:</div><div class='add'>+</div><div class='add'>+    Bundler.with_unbundled_env do</div><div class='add'>+      `brew install wget`</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+Using `with_unbundled_env` is also necessary if you are shelling out to a different</div><div class='add'>+bundle. Any Bundler commands run in a subshell will inherit the current</div><div class='add'>+Gemfile, so commands that need to run in the context of a different bundle also</div><div class='add'>+need to use `with_unbundled_env`.</div><div class='add'>+</div><div class='add'>+    Bundler.with_unbundled_env do</div><div class='add'>+      Dir.chdir "/other/bundler/project" do</div><div class='add'>+        `bundle exec ./script`</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+Bundler provides convenience helpers that wrap `system` and `exec`, and they</div><div class='add'>+can be used like this:</div><div class='add'>+</div><div class='add'>+    Bundler.clean_system('brew install wget')</div><div class='add'>+    Bundler.clean_exec('brew install wget')</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+## RUBYGEMS PLUGINS</div><div class='add'>+</div><div class='add'>+At present, the Rubygems plugin system requires all files</div><div class='add'>+named `rubygems_plugin.rb` on the load path of _any_ installed</div><div class='add'>+gem when any Ruby code requires `rubygems.rb`. This includes</div><div class='add'>+executables installed into the system, like `rails`, `rackup`,</div><div class='add'>+and `rspec`.</div><div class='add'>+</div><div class='add'>+Since Rubygems plugins can contain arbitrary Ruby code, they</div><div class='add'>+commonly end up activating themselves or their dependencies.</div><div class='add'>+</div><div class='add'>+For instance, the `gemcutter 0.5` gem depended on `json_pure`.</div><div class='add'>+If you had that version of gemcutter installed (even if</div><div class='add'>+you _also_ had a newer version without this problem), Rubygems</div><div class='add'>+would activate `gemcutter 0.5` and `json_pure &lt;latest&gt;`.</div><div class='add'>+</div><div class='add'>+If your Gemfile(5) also contained `json_pure` (or a gem</div><div class='add'>+with a dependency on `json_pure`), the latest version on</div><div class='add'>+your system might conflict with the version in your</div><div class='add'>+Gemfile(5), or the snapshot version in your `Gemfile.lock`.</div><div class='add'>+</div><div class='add'>+If this happens, bundler will say:</div><div class='add'>+</div><div class='add'>+    You have already activated json_pure 1.4.6 but your Gemfile</div><div class='add'>+    requires json_pure 1.4.3. Consider using bundle exec.</div><div class='add'>+</div><div class='add'>+In this situation, you almost certainly want to remove the</div><div class='add'>+underlying gem with the problematic gem plugin. In general,</div><div class='add'>+the authors of these plugins (in this case, the `gemcutter`</div><div class='add'>+gem) have released newer versions that are more careful in</div><div class='add'>+their plugins.</div><div class='add'>+</div><div class='add'>+You can find a list of all the gems containing gem plugins</div><div class='add'>+by running</div><div class='add'>+</div><div class='add'>+    ruby -e "puts Gem.find_files('rubygems_plugin.rb')"</div><div class='add'>+</div><div class='add'>+At the very least, you should remove all but the newest</div><div class='add'>+version of each gem plugin, and also remove all gem plugins</div><div class='add'>+that you aren't using (`gem uninstall gem_name`).</div><div class='head'>diff --git a/lib/bundler/man/bundle-gem.1 b/lib/bundler/man/bundle-gem.1<br/>new file mode 100644<br/>index 0000000000..8339b727ce<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-gem.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-gem.1</a></div><div class='hunk'>@@ -0,0 +1,105 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-GEM" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle gem\fR \fIGEM_NAME\fR \fIOPTIONS\fR</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Generates a directory named \fBGEM_NAME\fR with a \fBRakefile\fR, \fBGEM_NAME\.gemspec\fR, and other supporting files and directories that can be used to develop a rubygem with that name\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Run \fBrake \-T\fR in the resulting project for a list of Rake tasks that can be used to test and publish the gem to rubygems\.org\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The generated project skeleton can be customized with OPTIONS, as explained below\. Note that these options can also be specified via Bundler\'s global configuration file using the following names:</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBgem\.coc\fR</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBgem\.mit\fR</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBgem\.test\fR</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-\-exe\fR or \fB\-b\fR or \fB\-\-bin\fR: Specify that Bundler should create a binary executable (as \fBexe/GEM_NAME\fR) in the generated rubygem project\. This binary will also be added to the \fBGEM_NAME\.gemspec\fR manifest\. This behavior is disabled by default\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-\-no\-exe\fR: Do not create a binary (overrides \fB\-\-exe\fR specified in the global config)\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-\-coc\fR: Add a \fBCODE_OF_CONDUCT\.md\fR file to the root of the generated project\. If this option is unspecified, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-\-no\-coc\fR: Do not create a \fBCODE_OF_CONDUCT\.md\fR (overrides \fB\-\-coc\fR specified in the global config)\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-\-ext=c\fR, \fB\-\-ext=rust\fR Add boilerplate for C or Rust (currently magnus \fIhttps://docs\.rs/magnus\fR based) extension code to the generated project\. This behavior is disabled by default\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-\-no\-ext\fR: Do not add extension code (overrides \fB\-\-ext\fR specified in the global config)\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-\-mit\fR: Add an MIT license to a \fBLICENSE\.txt\fR file in the root of the generated project\. Your name from the global git config is used for the copyright statement\. If this option is unspecified, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-\-no\-mit\fR: Do not create a \fBLICENSE\.txt\fR (overrides \fB\-\-mit\fR specified in the global config)\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-t\fR, \fB\-\-test=minitest\fR, \fB\-\-test=rspec\fR, \fB\-\-test=test\-unit\fR: Specify the test framework that Bundler should use when generating the project\. Acceptable values are \fBminitest\fR, \fBrspec\fR and \fBtest\-unit\fR\. The \fBGEM_NAME\.gemspec\fR will be configured and a skeleton test/spec directory will be created based on this option\. Given no option is specified:</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+When Bundler is configured to generate tests, this defaults to Bundler\'s global config setting \fBgem\.test\fR\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+When Bundler is configured to not generate tests, an interactive prompt will be displayed and the answer will be used for the current rubygem project\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-\-ci\fR, \fB\-\-ci=github\fR, \fB\-\-ci=gitlab\fR, \fB\-\-ci=circle\fR: Specify the continuous integration service that Bundler should use when generating the project\. Acceptable values are \fBgithub\fR, \fBgitlab\fR and \fBcircle\fR\. A configuration file will be generated in the project directory\. Given no option is specified:</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+When Bundler is configured to generate CI files, this defaults to Bundler\'s global config setting \fBgem\.ci\fR\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+When Bundler is configured to not generate CI files, an interactive prompt will be displayed and the answer will be used for the current rubygem project\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-\-linter\fR, \fB\-\-linter=rubocop\fR, \fB\-\-linter=standard\fR: Specify the linter and code formatter that Bundler should add to the project\'s development dependencies\. Acceptable values are \fBrubocop\fR and \fBstandard\fR\. A configuration file will be generated in the project directory\. Given no option is specified:</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+When Bundler is configured to add a linter, this defaults to Bundler\'s global config setting \fBgem\.linter\fR\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+When Bundler is configured not to add a linter, an interactive prompt will be displayed and the answer will be used for the current rubygem project\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB\-e\fR, \fB\-\-edit[=EDITOR]\fR: Open the resulting GEM_NAME\.gemspec in EDITOR, or the default editor if not specified\. The default is \fB$BUNDLER_EDITOR\fR, \fB$VISUAL\fR, or \fB$EDITOR\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SH "SEE ALSO"</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+bundle config(1) \fIbundle\-config\.1\.html\fR</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-gem.1.ronn b/lib/bundler/man/bundle-gem.1.ronn<br/>new file mode 100644<br/>index 0000000000..46fa2f179f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-gem.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-gem.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,117 @@</div><div class='add'>+bundle-gem(1) -- Generate a project skeleton for creating a rubygem</div><div class='add'>+====================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle gem` &lt;GEM_NAME&gt; [OPTIONS]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Generates a directory named `GEM_NAME` with a `Rakefile`, `GEM_NAME.gemspec`,</div><div class='add'>+and other supporting files and directories that can be used to develop a</div><div class='add'>+rubygem with that name.</div><div class='add'>+</div><div class='add'>+Run `rake -T` in the resulting project for a list of Rake tasks that can be used</div><div class='add'>+to test and publish the gem to rubygems.org.</div><div class='add'>+</div><div class='add'>+The generated project skeleton can be customized with OPTIONS, as explained</div><div class='add'>+below. Note that these options can also be specified via Bundler's global</div><div class='add'>+configuration file using the following names:</div><div class='add'>+</div><div class='add'>+* `gem.coc`</div><div class='add'>+* `gem.mit`</div><div class='add'>+* `gem.test`</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--exe` or `-b` or `--bin`:</div><div class='add'>+  Specify that Bundler should create a binary executable (as `exe/GEM_NAME`)</div><div class='add'>+  in the generated rubygem project. This binary will also be added to the</div><div class='add'>+  `GEM_NAME.gemspec` manifest. This behavior is disabled by default.</div><div class='add'>+</div><div class='add'>+* `--no-exe`:</div><div class='add'>+  Do not create a binary (overrides `--exe` specified in the global config).</div><div class='add'>+</div><div class='add'>+* `--coc`:</div><div class='add'>+  Add a `CODE_OF_CONDUCT.md` file to the root of the generated project. If</div><div class='add'>+  this option is unspecified, an interactive prompt will be displayed and the</div><div class='add'>+  answer will be saved in Bundler's global config for future `bundle gem` use.</div><div class='add'>+</div><div class='add'>+* `--no-coc`:</div><div class='add'>+  Do not create a `CODE_OF_CONDUCT.md` (overrides `--coc` specified in the</div><div class='add'>+  global config).</div><div class='add'>+</div><div class='add'>+* `--ext=c`, `--ext=rust`</div><div class='add'>+  Add boilerplate for C or Rust (currently [magnus](https://docs.rs/magnus) based) extension code to the generated project. This behavior</div><div class='add'>+  is disabled by default.</div><div class='add'>+</div><div class='add'>+* `--no-ext`:</div><div class='add'>+  Do not add extension code (overrides `--ext` specified in the global</div><div class='add'>+  config).</div><div class='add'>+</div><div class='add'>+* `--mit`:</div><div class='add'>+  Add an MIT license to a `LICENSE.txt` file in the root of the generated</div><div class='add'>+  project. Your name from the global git config is used for the copyright</div><div class='add'>+  statement. If this option is unspecified, an interactive prompt will be</div><div class='add'>+  displayed and the answer will be saved in Bundler's global config for future</div><div class='add'>+  `bundle gem` use.</div><div class='add'>+</div><div class='add'>+* `--no-mit`:</div><div class='add'>+  Do not create a `LICENSE.txt` (overrides `--mit` specified in the global</div><div class='add'>+  config).</div><div class='add'>+</div><div class='add'>+* `-t`, `--test=minitest`, `--test=rspec`, `--test=test-unit`:</div><div class='add'>+  Specify the test framework that Bundler should use when generating the</div><div class='add'>+  project. Acceptable values are `minitest`, `rspec` and `test-unit`. The</div><div class='add'>+  `GEM_NAME.gemspec` will be configured and a skeleton test/spec directory will</div><div class='add'>+  be created based on this option. Given no option is specified:</div><div class='add'>+</div><div class='add'>+  When Bundler is configured to generate tests, this defaults to Bundler's</div><div class='add'>+  global config setting `gem.test`.</div><div class='add'>+</div><div class='add'>+  When Bundler is configured to not generate tests, an interactive prompt will</div><div class='add'>+  be displayed and the answer will be used for the current rubygem project.</div><div class='add'>+</div><div class='add'>+  When Bundler is unconfigured, an interactive prompt will be displayed and</div><div class='add'>+  the answer will be saved in Bundler's global config for future `bundle gem`</div><div class='add'>+  use.</div><div class='add'>+</div><div class='add'>+* `--ci`, `--ci=github`, `--ci=gitlab`, `--ci=circle`:</div><div class='add'>+  Specify the continuous integration service that Bundler should use when</div><div class='add'>+  generating the project. Acceptable values are `github`, `gitlab`</div><div class='add'>+  and `circle`. A configuration file will be generated in the project directory.</div><div class='add'>+  Given no option is specified:</div><div class='add'>+</div><div class='add'>+  When Bundler is configured to generate CI files, this defaults to Bundler's</div><div class='add'>+  global config setting `gem.ci`.</div><div class='add'>+</div><div class='add'>+  When Bundler is configured to not generate CI files, an interactive prompt</div><div class='add'>+  will be displayed and the answer will be used for the current rubygem project.</div><div class='add'>+</div><div class='add'>+  When Bundler is unconfigured, an interactive prompt will be displayed and</div><div class='add'>+  the answer will be saved in Bundler's global config for future `bundle gem`</div><div class='add'>+  use.</div><div class='add'>+</div><div class='add'>+* `--linter`, `--linter=rubocop`, `--linter=standard`:</div><div class='add'>+  Specify the linter and code formatter that Bundler should add to the</div><div class='add'>+  project's development dependencies. Acceptable values are `rubocop` and</div><div class='add'>+  `standard`. A configuration file will be generated in the project directory.</div><div class='add'>+  Given no option is specified:</div><div class='add'>+</div><div class='add'>+  When Bundler is configured to add a linter, this defaults to Bundler's</div><div class='add'>+  global config setting `gem.linter`.</div><div class='add'>+</div><div class='add'>+  When Bundler is configured not to add a linter, an interactive prompt</div><div class='add'>+  will be displayed and the answer will be used for the current rubygem project.</div><div class='add'>+</div><div class='add'>+  When Bundler is unconfigured, an interactive prompt will be displayed and</div><div class='add'>+  the answer will be saved in Bundler's global config for future `bundle gem`</div><div class='add'>+  use.</div><div class='add'>+</div><div class='add'>+* `-e`, `--edit[=EDITOR]`:</div><div class='add'>+  Open the resulting GEM_NAME.gemspec in EDITOR, or the default editor if not</div><div class='add'>+  specified. The default is `$BUNDLER_EDITOR`, `$VISUAL`, or `$EDITOR`.</div><div class='add'>+</div><div class='add'>+## SEE ALSO</div><div class='add'>+</div><div class='add'>+* [bundle config(1)](bundle-config.1.html)</div><div class='head'>diff --git a/lib/bundler/man/bundle-help.1 b/lib/bundler/man/bundle-help.1<br/>new file mode 100644<br/>index 0000000000..9787c2d49f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-help.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-help.1</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-HELP" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-help\fR \- Displays detailed help for each subcommand</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle help\fR [COMMAND]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Displays detailed help for the given subcommand\. You can specify a single \fBCOMMAND\fR at the same time\. When \fBCOMMAND\fR is omitted, help for \fBhelp\fR command will be displayed\.</div><div class='head'>diff --git a/lib/bundler/man/bundle-help.1.ronn b/lib/bundler/man/bundle-help.1.ronn<br/>new file mode 100644<br/>index 0000000000..0e144aead7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-help.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-help.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+bundle-help(1) -- Displays detailed help for each subcommand</div><div class='add'>+============================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle help` [COMMAND]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Displays detailed help for the given subcommand.</div><div class='add'>+You can specify a single `COMMAND` at the same time.</div><div class='add'>+When `COMMAND` is omitted, help for `help` command will be displayed.</div><div class='head'>diff --git a/lib/bundler/man/bundle-info.1 b/lib/bundler/man/bundle-info.1<br/>new file mode 100644<br/>index 0000000000..2cced71520<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-info.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-info.1</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-INFO" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-info\fR \- Show information for the given gem in your bundle</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle info\fR [GEM_NAME] [\-\-path]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Given a gem name present in your bundle, print the basic information about it such as homepage, version, path and summary\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-path\fR</div><div class='add'>+Print the path of the given gem</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-info.1.ronn b/lib/bundler/man/bundle-info.1.ronn<br/>new file mode 100644<br/>index 0000000000..cecdeb564f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-info.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-info.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+bundle-info(1) -- Show information for the given gem in your bundle</div><div class='add'>+=========================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle info` [GEM_NAME]</div><div class='add'>+              [--path]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Given a gem name present in your bundle, print the basic information about it</div><div class='add'>+ such as homepage, version, path and summary.</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--path`:</div><div class='add'>+Print the path of the given gem</div><div class='head'>diff --git a/lib/bundler/man/bundle-init.1 b/lib/bundler/man/bundle-init.1<br/>new file mode 100644<br/>index 0000000000..c7a9a155b5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-init.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-init.1</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-INIT" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-init\fR \- Generates a Gemfile into the current working directory</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle init\fR [\-\-gemspec=FILE]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Init generates a default [\fBGemfile(5)\fR][Gemfile(5)] in the current working directory\. When adding a [\fBGemfile(5)\fR][Gemfile(5)] to a gem with a gemspec, the \fB\-\-gemspec\fR option will automatically add each dependency listed in the gemspec file to the newly created [\fBGemfile(5)\fR][Gemfile(5)]\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-gemspec\fR</div><div class='add'>+Use the specified \.gemspec to create the [\fBGemfile(5)\fR][Gemfile(5)]</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-gemfile\fR</div><div class='add'>+Use the specified name for the gemfile instead of \fBGemfile\fR</div><div class='add'>+.</div><div class='add'>+.SH "FILES"</div><div class='add'>+Included in the default [\fBGemfile(5)\fR][Gemfile(5)] generated is the line \fB# frozen_string_literal: true\fR\. This is a magic comment supported for the first time in Ruby 2\.3\. The presence of this line results in all string literals in the file being implicitly frozen\.</div><div class='add'>+.</div><div class='add'>+.SH "SEE ALSO"</div><div class='add'>+Gemfile(5) \fIhttps://bundler\.io/man/gemfile\.5\.html\fR</div><div class='head'>diff --git a/lib/bundler/man/bundle-init.1.ronn b/lib/bundler/man/bundle-init.1.ronn<br/>new file mode 100644<br/>index 0000000000..7d3cede1f6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-init.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-init.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+bundle-init(1) -- Generates a Gemfile into the current working directory</div><div class='add'>+========================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle init` [--gemspec=FILE]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Init generates a default [`Gemfile(5)`][Gemfile(5)] in the current working directory. When</div><div class='add'>+adding a [`Gemfile(5)`][Gemfile(5)] to a gem with a gemspec, the `--gemspec` option will</div><div class='add'>+automatically add each dependency listed in the gemspec file to the newly</div><div class='add'>+created [`Gemfile(5)`][Gemfile(5)].</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--gemspec`:</div><div class='add'>+  Use the specified .gemspec to create the [`Gemfile(5)`][Gemfile(5)]</div><div class='add'>+* `--gemfile`:</div><div class='add'>+  Use the specified name for the gemfile instead of `Gemfile`</div><div class='add'>+</div><div class='add'>+## FILES</div><div class='add'>+</div><div class='add'>+Included in the default [`Gemfile(5)`][Gemfile(5)]</div><div class='add'>+generated is the line `# frozen_string_literal: true`. This is a magic comment</div><div class='add'>+supported for the first time in Ruby 2.3. The presence of this line</div><div class='add'>+results in all string literals in the file being implicitly frozen.</div><div class='add'>+</div><div class='add'>+## SEE ALSO</div><div class='add'>+</div><div class='add'>+[Gemfile(5)](https://bundler.io/man/gemfile.5.html)</div><div class='head'>diff --git a/lib/bundler/man/bundle-inject.1 b/lib/bundler/man/bundle-inject.1<br/>new file mode 100644<br/>index 0000000000..9e25c29085<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-inject.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-inject.1</a></div><div class='hunk'>@@ -0,0 +1,36 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-INJECT" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle inject\fR [GEM] [VERSION]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Adds the named gem(s) with their version requirements to the resolved [\fBGemfile(5)\fR][Gemfile(5)]\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This command will add the gem to both your [\fBGemfile(5)\fR][Gemfile(5)] and Gemfile\.lock if it isn\'t listed yet\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Example:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle install</div><div class='add'>+bundle inject \'rack\' \'&gt; 0\'</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This will inject the \'rack\' gem with a version greater than 0 in your [\fBGemfile(5)\fR][Gemfile(5)] and Gemfile\.lock\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The \fBbundle inject\fR command was deprecated in Bundler 2\.1 and will be removed in Bundler 3\.0\.</div><div class='head'>diff --git a/lib/bundler/man/bundle-inject.1.ronn b/lib/bundler/man/bundle-inject.1.ronn<br/>new file mode 100644<br/>index 0000000000..95704eddad<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-inject.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-inject.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+bundle-inject(1) -- Add named gem(s) with version requirements to Gemfile</div><div class='add'>+=========================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle inject` [GEM] [VERSION]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Adds the named gem(s) with their version requirements to the resolved</div><div class='add'>+[`Gemfile(5)`][Gemfile(5)].</div><div class='add'>+</div><div class='add'>+This command will add the gem to both your [`Gemfile(5)`][Gemfile(5)] and Gemfile.lock if it</div><div class='add'>+isn't listed yet.</div><div class='add'>+</div><div class='add'>+Example:</div><div class='add'>+</div><div class='add'>+    bundle install</div><div class='add'>+    bundle inject 'rack' '&gt; 0'</div><div class='add'>+</div><div class='add'>+This will inject the 'rack' gem with a version greater than 0 in your</div><div class='add'>+[`Gemfile(5)`][Gemfile(5)] and Gemfile.lock.</div><div class='add'>+</div><div class='add'>+The `bundle inject` command was deprecated in Bundler 2.1 and will be removed in Bundler 3.0.</div><div class='head'>diff --git a/lib/bundler/man/bundle-install.1 b/lib/bundler/man/bundle-install.1<br/>new file mode 100644<br/>index 0000000000..337683af06<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-install.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-install.1</a></div><div class='hunk'>@@ -0,0 +1,313 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-INSTALL" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-install\fR \- Install the dependencies specified in your Gemfile</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle install\fR [\-\-binstubs[=DIRECTORY]] [\-\-clean] [\-\-deployment] [\-\-frozen] [\-\-full\-index] [\-\-gemfile=GEMFILE] [\-\-jobs=NUMBER] [\-\-local] [\-\-no\-cache] [\-\-no\-prune] [\-\-path PATH] [\-\-quiet] [\-\-redownload] [\-\-retry=NUMBER] [\-\-shebang] [\-\-standalone[=GROUP[ GROUP\.\.\.]]] [\-\-system] [\-\-trust\-policy=POLICY] [\-\-with=GROUP[ GROUP\.\.\.]] [\-\-without=GROUP[ GROUP\.\.\.]]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Install the gems specified in your Gemfile(5)\. If this is the first time you run bundle install (and a \fBGemfile\.lock\fR does not exist), Bundler will fetch all remote sources, resolve dependencies and install all needed gems\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If a \fBGemfile\.lock\fR does exist, and you have not updated your Gemfile(5), Bundler will fetch all remote sources, but use the dependencies specified in the \fBGemfile\.lock\fR instead of resolving dependencies\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If a \fBGemfile\.lock\fR does exist, and you have updated your Gemfile(5), Bundler will use the dependencies in the \fBGemfile\.lock\fR for all gems that you did not update, but will re\-resolve the dependencies of gems that you did update\. You can find more information about this update process below under \fICONSERVATIVE UPDATING\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+The \fB\-\-clean\fR, \fB\-\-deployment\fR, \fB\-\-frozen\fR, \fB\-\-no\-prune\fR, \fB\-\-path\fR, \fB\-\-shebang\fR, \fB\-\-system\fR, \fB\-\-without\fR and \fB\-\-with\fR options are deprecated because they only make sense if they are applied to every subsequent \fBbundle install\fR run automatically and that requires \fBbundler\fR to silently remember them\. Since \fBbundler\fR will no longer remember CLI flags in future versions, \fBbundle config\fR (see bundle\-config(1)) should be used to apply them permanently\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-binstubs[=&lt;directory&gt;]\fR</div><div class='add'>+Binstubs are scripts that wrap around executables\. Bundler creates a small Ruby file (a binstub) that loads Bundler, runs the command, and puts it in \fBbin/\fR\. This lets you link the binstub inside of an application to the exact gem version the application needs\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+Creates a directory (defaults to \fB~/bin\fR) and places any executables from the gem there\. These executables run in Bundler\'s context\. If used, you might add this directory to your environment\'s \fBPATH\fR variable\. For instance, if the \fBrails\fR gem comes with a \fBrails\fR executable, this flag will create a \fBbin/rails\fR executable that ensures that all referred dependencies will be resolved using the bundled gems\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-clean\fR</div><div class='add'>+On finishing the installation Bundler is going to remove any gems not present in the current Gemfile(5)\. Don\'t worry, gems currently in use will not be removed\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+This option is deprecated in favor of the \fBclean\fR setting\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-deployment\fR</div><div class='add'>+In \fIdeployment mode\fR, Bundler will \'roll\-out\' the bundle for production or CI use\. Please check carefully if you want to have this option enabled in your development environment\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+This option is deprecated in favor of the \fBdeployment\fR setting\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-redownload\fR</div><div class='add'>+Force download every gem, even if the required versions are already available locally\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-frozen\fR</div><div class='add'>+Do not allow the Gemfile\.lock to be updated after this install\. Exits non\-zero if there are going to be changes to the Gemfile\.lock\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+This option is deprecated in favor of the \fBfrozen\fR setting\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-full\-index\fR</div><div class='add'>+Bundler will not call Rubygems\' API endpoint (default) but download and cache a (currently big) index file of all gems\. Performance can be improved for large bundles that seldom change by enabling this option\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-gemfile=&lt;gemfile&gt;\fR</div><div class='add'>+The location of the Gemfile(5) which Bundler should use\. This defaults to a Gemfile(5) in the current working directory\. In general, Bundler will assume that the location of the Gemfile(5) is also the project\'s root and will try to find \fBGemfile\.lock\fR and \fBvendor/cache\fR relative to this location\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-jobs=[&lt;number&gt;]\fR, \fB\-j[&lt;number&gt;]\fR</div><div class='add'>+The maximum number of parallel download and install jobs\. The default is the number of available processors\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-local\fR</div><div class='add'>+Do not attempt to connect to \fBrubygems\.org\fR\. Instead, Bundler will use the gems already present in Rubygems\' cache or in \fBvendor/cache\fR\. Note that if an appropriate platform\-specific gem exists on \fBrubygems\.org\fR it will not be found\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-prefer\-local\fR</div><div class='add'>+Force using locally installed gems, or gems already present in Rubygems\' cache or in \fBvendor/cache\fR, when resolving, even if newer versions are available remotely\. Only attempt to connect to \fBrubygems\.org\fR for gems that are not present locally\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-no\-cache\fR</div><div class='add'>+Do not update the cache in \fBvendor/cache\fR with the newly bundled gems\. This does not remove any gems in the cache but keeps the newly bundled gems from being cached during the install\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-no\-prune\fR</div><div class='add'>+Don\'t remove stale gems from the cache when the installation finishes\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+This option is deprecated in favor of the \fBno_prune\fR setting\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-path=&lt;path&gt;\fR</div><div class='add'>+The location to install the specified gems to\. This defaults to Rubygems\' setting\. Bundler shares this location with Rubygems, \fBgem install \.\.\.\fR will have gem installed there, too\. Therefore, gems installed without a \fB\-\-path \.\.\.\fR setting will show up by calling \fBgem list\fR\. Accordingly, gems installed to other locations will not get listed\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+This option is deprecated in favor of the \fBpath\fR setting\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-quiet\fR</div><div class='add'>+Do not print progress information to the standard output\. Instead, Bundler will exit using a status code (\fB$?\fR)\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-retry=[&lt;number&gt;]\fR</div><div class='add'>+Retry failed network or git requests for \fInumber\fR times\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-shebang=&lt;ruby\-executable&gt;\fR</div><div class='add'>+Uses the specified ruby executable (usually \fBruby\fR) to execute the scripts created with \fB\-\-binstubs\fR\. In addition, if you use \fB\-\-binstubs\fR together with \fB\-\-shebang jruby\fR these executables will be changed to execute \fBjruby\fR instead\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+This option is deprecated in favor of the \fBshebang\fR setting\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-standalone[=&lt;list&gt;]\fR</div><div class='add'>+Makes a bundle that can work without depending on Rubygems or Bundler at runtime\. A space separated list of groups to install has to be specified\. Bundler creates a directory named \fBbundle\fR and installs the bundle there\. It also generates a \fBbundle/bundler/setup\.rb\fR file to replace Bundler\'s own setup in the manner required\. Using this option implicitly sets \fBpath\fR, which is a [remembered option][REMEMBERED OPTIONS]\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-system\fR</div><div class='add'>+Installs the gems specified in the bundle to the system\'s Rubygems location\. This overrides any previous configuration of \fB\-\-path\fR\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+This option is deprecated in favor of the \fBsystem\fR setting\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-trust\-policy=[&lt;policy&gt;]\fR</div><div class='add'>+Apply the Rubygems security policy \fIpolicy\fR, where policy is one of \fBHighSecurity\fR, \fBMediumSecurity\fR, \fBLowSecurity\fR, \fBAlmostNoSecurity\fR, or \fBNoSecurity\fR\. For more details, please see the Rubygems signing documentation linked below in \fISEE ALSO\fR\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-with=&lt;list&gt;\fR</div><div class='add'>+A space\-separated list of groups referencing gems to install\. If an optional group is given it is installed\. If a group is given that is in the remembered list of groups given to \-\-without, it is removed from that list\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+This option is deprecated in favor of the \fBwith\fR setting\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-without=&lt;list&gt;\fR</div><div class='add'>+A space\-separated list of groups referencing gems to skip during installation\. If a group is given that is in the remembered list of groups given to \-\-with, it is removed from that list\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+This option is deprecated in favor of the \fBwithout\fR setting\.</div><div class='add'>+.</div><div class='add'>+.SH "DEPLOYMENT MODE"</div><div class='add'>+Bundler\'s defaults are optimized for development\. To switch to defaults optimized for deployment and for CI, use the \fB\-\-deployment\fR flag\. Do not activate deployment mode on development machines, as it will cause an error when the Gemfile(5) is modified\.</div><div class='add'>+.</div><div class='add'>+.IP "1." 4</div><div class='add'>+A \fBGemfile\.lock\fR is required\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+To ensure that the same versions of the gems you developed with and tested with are also used in deployments, a \fBGemfile\.lock\fR is required\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+This is mainly to ensure that you remember to check your \fBGemfile\.lock\fR into version control\.</div><div class='add'>+.</div><div class='add'>+.IP "2." 4</div><div class='add'>+The \fBGemfile\.lock\fR must be up to date</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+In development, you can modify your Gemfile(5) and re\-run \fBbundle install\fR to \fIconservatively update\fR your \fBGemfile\.lock\fR snapshot\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+In deployment, your \fBGemfile\.lock\fR should be up\-to\-date with changes made in your Gemfile(5)\.</div><div class='add'>+.</div><div class='add'>+.IP "3." 4</div><div class='add'>+Gems are installed to \fBvendor/bundle\fR not your default system location</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+In development, it\'s convenient to share the gems used in your application with other applications and other scripts that run on the system\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+In deployment, isolation is a more important default\. In addition, the user deploying the application may not have permission to install gems to the system, or the web server may not have permission to read them\.</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+As a result, \fBbundle install \-\-deployment\fR installs gems to the \fBvendor/bundle\fR directory in the application\. This may be overridden using the \fB\-\-path\fR option\.</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SH "INSTALLING GROUPS"</div><div class='add'>+By default, \fBbundle install\fR will install all gems in all groups in your Gemfile(5), except those declared for a different platform\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+However, you can explicitly tell Bundler to skip installing certain groups with the \fB\-\-without\fR option\. This option takes a space\-separated list of groups\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+While the \fB\-\-without\fR option will skip \fIinstalling\fR the gems in the specified groups, it will still \fIdownload\fR those gems and use them to resolve the dependencies of every gem in your Gemfile(5)\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This is so that installing a different set of groups on another machine (such as a production server) will not change the gems and versions that you have already developed and tested against\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+\fBBundler offers a rock\-solid guarantee that the third\-party code you are running in development and testing is also the third\-party code you are running in production\. You can choose to exclude some of that code in different environments, but you will never be caught flat\-footed by different versions of third\-party code being used in different environments\.\fR</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For a simple illustration, consider the following Gemfile(5):</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+source \'https://rubygems\.org\'</div><div class='add'>+</div><div class='add'>+gem \'sinatra\'</div><div class='add'>+</div><div class='add'>+group :production do</div><div class='add'>+  gem \'rack\-perftools\-profiler\'</div><div class='add'>+end</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In this case, \fBsinatra\fR depends on any version of Rack (\fB&gt;= 1\.0\fR), while \fBrack\-perftools\-profiler\fR depends on 1\.x (\fB~&gt; 1\.0\fR)\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+When you run \fBbundle install \-\-without production\fR in development, we look at the dependencies of \fBrack\-perftools\-profiler\fR as well\. That way, you do not spend all your time developing against Rack 2\.0, using new APIs unavailable in Rack 1\.x, only to have Bundler switch to Rack 1\.2 when the \fBproduction\fR group \fIis\fR used\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This should not cause any problems in practice, because we do not attempt to \fBinstall\fR the gems in the excluded groups, and only evaluate as part of the dependency resolution process\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This also means that you cannot include different versions of the same gem in different groups, because doing so would result in different sets of dependencies used in development and production\. Because of the vagaries of the dependency resolution process, this usually affects more than the gems you list in your Gemfile(5), and can (surprisingly) radically change the gems you are using\.</div><div class='add'>+.</div><div class='add'>+.SH "THE GEMFILE\.LOCK"</div><div class='add'>+When you run \fBbundle install\fR, Bundler will persist the full names and versions of all gems that you used (including dependencies of the gems specified in the Gemfile(5)) into a file called \fBGemfile\.lock\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Bundler uses this file in all subsequent calls to \fBbundle install\fR, which guarantees that you always use the same exact code, even as your application moves across machines\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Because of the way dependency resolution works, even a seemingly small change (for instance, an update to a point\-release of a dependency of a gem in your Gemfile(5)) can result in radically different gems being needed to satisfy all dependencies\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+As a result, you \fBSHOULD\fR check your \fBGemfile\.lock\fR into version control, in both applications and gems\. If you do not, every machine that checks out your repository (including your production server) will resolve all dependencies again, which will result in different versions of third\-party code being used if \fBany\fR of the gems in the Gemfile(5) or any of their dependencies have been updated\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+When Bundler first shipped, the \fBGemfile\.lock\fR was included in the \fB\.gitignore\fR file included with generated gems\. Over time, however, it became clear that this practice forces the pain of broken dependencies onto new contributors, while leaving existing contributors potentially unaware of the problem\. Since \fBbundle install\fR is usually the first step towards a contribution, the pain of broken dependencies would discourage new contributors from contributing\. As a result, we have revised our guidance for gem authors to now recommend checking in the lock for gems\.</div><div class='add'>+.</div><div class='add'>+.SH "CONSERVATIVE UPDATING"</div><div class='add'>+When you make a change to the Gemfile(5) and then run \fBbundle install\fR, Bundler will update only the gems that you modified\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In other words, if a gem that you \fBdid not modify\fR worked before you called \fBbundle install\fR, it will continue to use the exact same versions of all dependencies as it used before the update\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Let\'s take a look at an example\. Here\'s your original Gemfile(5):</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+source \'https://rubygems\.org\'</div><div class='add'>+</div><div class='add'>+gem \'actionpack\', \'2\.3\.8\'</div><div class='add'>+gem \'activemerchant\'</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In this case, both \fBactionpack\fR and \fBactivemerchant\fR depend on \fBactivesupport\fR\. The \fBactionpack\fR gem depends on \fBactivesupport 2\.3\.8\fR and \fBrack ~&gt; 1\.1\.0\fR, while the \fBactivemerchant\fR gem depends on \fBactivesupport &gt;= 2\.3\.2\fR, \fBbraintree &gt;= 2\.0\.0\fR, and \fBbuilder &gt;= 2\.0\.0\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+When the dependencies are first resolved, Bundler will select \fBactivesupport 2\.3\.8\fR, which satisfies the requirements of both gems in your Gemfile(5)\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Next, you modify your Gemfile(5) to:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+source \'https://rubygems\.org\'</div><div class='add'>+</div><div class='add'>+gem \'actionpack\', \'3\.0\.0\.rc\'</div><div class='add'>+gem \'activemerchant\'</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The \fBactionpack 3\.0\.0\.rc\fR gem has a number of new dependencies, and updates the \fBactivesupport\fR dependency to \fB= 3\.0\.0\.rc\fR and the \fBrack\fR dependency to \fB~&gt; 1\.2\.1\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+When you run \fBbundle install\fR, Bundler notices that you changed the \fBactionpack\fR gem, but not the \fBactivemerchant\fR gem\. It evaluates the gems currently being used to satisfy its requirements:</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBactivesupport 2\.3\.8\fR</div><div class='add'>+also used to satisfy a dependency in \fBactivemerchant\fR, which is not being updated</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBrack ~&gt; 1\.1\.0\fR</div><div class='add'>+not currently being used to satisfy another dependency</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Because you did not explicitly ask to update \fBactivemerchant\fR, you would not expect it to suddenly stop working after updating \fBactionpack\fR\. However, satisfying the new \fBactivesupport 3\.0\.0\.rc\fR dependency of actionpack requires updating one of its dependencies\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Even though \fBactivemerchant\fR declares a very loose dependency that theoretically matches \fBactivesupport 3\.0\.0\.rc\fR, Bundler treats gems in your Gemfile(5) that have not changed as an atomic unit together with their dependencies\. In this case, the \fBactivemerchant\fR dependency is treated as \fBactivemerchant 1\.7\.1 + activesupport 2\.3\.8\fR, so \fBbundle install\fR will report that it cannot update \fBactionpack\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+To explicitly update \fBactionpack\fR, including its dependencies which other gems in the Gemfile(5) still depend on, run \fBbundle update actionpack\fR (see \fBbundle update(1)\fR)\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+\fBSummary\fR: In general, after making a change to the Gemfile(5) , you should first try to run \fBbundle install\fR, which will guarantee that no other gem in the Gemfile(5) is impacted by the change\. If that does not work, run bundle update(1) \fIbundle\-update\.1\.html\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "SEE ALSO"</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Gem install docs \fIhttp://guides\.rubygems\.org/rubygems\-basics/#installing\-gems\fR</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Rubygems signing docs \fIhttp://guides\.rubygems\.org/security/\fR</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-install.1.ronn b/lib/bundler/man/bundle-install.1.ronn<br/>new file mode 100644<br/>index 0000000000..be9ed0f974<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-install.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-install.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,382 @@</div><div class='add'>+bundle-install(1) -- Install the dependencies specified in your Gemfile</div><div class='add'>+=======================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle install` [--binstubs[=DIRECTORY]]</div><div class='add'>+                 [--clean]</div><div class='add'>+                 [--deployment]</div><div class='add'>+                 [--frozen]</div><div class='add'>+                 [--full-index]</div><div class='add'>+                 [--gemfile=GEMFILE]</div><div class='add'>+                 [--jobs=NUMBER]</div><div class='add'>+                 [--local]</div><div class='add'>+                 [--no-cache]</div><div class='add'>+                 [--no-prune]</div><div class='add'>+                 [--path PATH]</div><div class='add'>+                 [--quiet]</div><div class='add'>+                 [--redownload]</div><div class='add'>+                 [--retry=NUMBER]</div><div class='add'>+                 [--shebang]</div><div class='add'>+                 [--standalone[=GROUP[ GROUP...]]]</div><div class='add'>+                 [--system]</div><div class='add'>+                 [--trust-policy=POLICY]</div><div class='add'>+                 [--with=GROUP[ GROUP...]]</div><div class='add'>+                 [--without=GROUP[ GROUP...]]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Install the gems specified in your Gemfile(5). If this is the first</div><div class='add'>+time you run bundle install (and a `Gemfile.lock` does not exist),</div><div class='add'>+Bundler will fetch all remote sources, resolve dependencies and</div><div class='add'>+install all needed gems.</div><div class='add'>+</div><div class='add'>+If a `Gemfile.lock` does exist, and you have not updated your Gemfile(5),</div><div class='add'>+Bundler will fetch all remote sources, but use the dependencies</div><div class='add'>+specified in the `Gemfile.lock` instead of resolving dependencies.</div><div class='add'>+</div><div class='add'>+If a `Gemfile.lock` does exist, and you have updated your Gemfile(5),</div><div class='add'>+Bundler will use the dependencies in the `Gemfile.lock` for all gems</div><div class='add'>+that you did not update, but will re-resolve the dependencies of</div><div class='add'>+gems that you did update. You can find more information about this</div><div class='add'>+update process below under [CONSERVATIVE UPDATING][].</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+The `--clean`, `--deployment`, `--frozen`, `--no-prune`, `--path`, `--shebang`,</div><div class='add'>+`--system`, `--without` and `--with` options are deprecated because they only</div><div class='add'>+make sense if they are applied to every subsequent `bundle install` run</div><div class='add'>+automatically and that requires `bundler` to silently remember them. Since</div><div class='add'>+`bundler` will no longer remember CLI flags in future versions, `bundle config`</div><div class='add'>+(see bundle-config(1)) should be used to apply them permanently.</div><div class='add'>+</div><div class='add'>+* `--binstubs[=&lt;directory&gt;]`:</div><div class='add'>+  Binstubs are scripts that wrap around executables. Bundler creates a small Ruby</div><div class='add'>+  file (a binstub) that loads Bundler, runs the command, and puts it in `bin/`.</div><div class='add'>+  This lets you link the binstub inside of an application to the exact gem</div><div class='add'>+  version the application needs.</div><div class='add'>+</div><div class='add'>+  Creates a directory (defaults to `~/bin`) and places any executables from the</div><div class='add'>+  gem there. These executables run in Bundler's context. If used, you might add</div><div class='add'>+  this directory to your environment's `PATH` variable. For instance, if the</div><div class='add'>+  `rails` gem comes with a `rails` executable, this flag will create a</div><div class='add'>+  `bin/rails` executable that ensures that all referred dependencies will be</div><div class='add'>+  resolved using the bundled gems.</div><div class='add'>+</div><div class='add'>+* `--clean`:</div><div class='add'>+  On finishing the installation Bundler is going to remove any gems not present</div><div class='add'>+  in the current Gemfile(5). Don't worry, gems currently in use will not be</div><div class='add'>+  removed.</div><div class='add'>+</div><div class='add'>+  This option is deprecated in favor of the `clean` setting.</div><div class='add'>+</div><div class='add'>+* `--deployment`:</div><div class='add'>+  In [deployment mode][DEPLOYMENT MODE], Bundler will 'roll-out' the bundle for</div><div class='add'>+  production or CI use. Please check carefully if you want to have this option</div><div class='add'>+  enabled in your development environment.</div><div class='add'>+</div><div class='add'>+  This option is deprecated in favor of the `deployment` setting.</div><div class='add'>+</div><div class='add'>+* `--redownload`:</div><div class='add'>+  Force download every gem, even if the required versions are already available</div><div class='add'>+  locally.</div><div class='add'>+</div><div class='add'>+* `--frozen`:</div><div class='add'>+  Do not allow the Gemfile.lock to be updated after this install. Exits</div><div class='add'>+  non-zero if there are going to be changes to the Gemfile.lock.</div><div class='add'>+</div><div class='add'>+  This option is deprecated in favor of the `frozen` setting.</div><div class='add'>+</div><div class='add'>+* `--full-index`:</div><div class='add'>+  Bundler will not call Rubygems' API endpoint (default) but download and cache</div><div class='add'>+  a (currently big) index file of all gems. Performance can be improved for</div><div class='add'>+  large bundles that seldom change by enabling this option.</div><div class='add'>+</div><div class='add'>+* `--gemfile=&lt;gemfile&gt;`:</div><div class='add'>+  The location of the Gemfile(5) which Bundler should use. This defaults</div><div class='add'>+  to a Gemfile(5) in the current working directory. In general, Bundler</div><div class='add'>+  will assume that the location of the Gemfile(5) is also the project's</div><div class='add'>+  root and will try to find `Gemfile.lock` and `vendor/cache` relative</div><div class='add'>+  to this location.</div><div class='add'>+</div><div class='add'>+* `--jobs=[&lt;number&gt;]`, `-j[&lt;number&gt;]`:</div><div class='add'>+  The maximum number of parallel download and install jobs. The default is the</div><div class='add'>+  number of available processors.</div><div class='add'>+</div><div class='add'>+* `--local`:</div><div class='add'>+  Do not attempt to connect to `rubygems.org`. Instead, Bundler will use the</div><div class='add'>+  gems already present in Rubygems' cache or in `vendor/cache`. Note that if an</div><div class='add'>+  appropriate platform-specific gem exists on `rubygems.org` it will not be</div><div class='add'>+  found.</div><div class='add'>+</div><div class='add'>+* `--prefer-local`:</div><div class='add'>+  Force using locally installed gems, or gems already present in Rubygems' cache</div><div class='add'>+  or in `vendor/cache`, when resolving, even if newer versions are available</div><div class='add'>+  remotely. Only attempt to connect to `rubygems.org` for gems that are not</div><div class='add'>+  present locally.</div><div class='add'>+</div><div class='add'>+* `--no-cache`:</div><div class='add'>+  Do not update the cache in `vendor/cache` with the newly bundled gems. This</div><div class='add'>+  does not remove any gems in the cache but keeps the newly bundled gems from</div><div class='add'>+  being cached during the install.</div><div class='add'>+</div><div class='add'>+* `--no-prune`:</div><div class='add'>+  Don't remove stale gems from the cache when the installation finishes.</div><div class='add'>+</div><div class='add'>+  This option is deprecated in favor of the `no_prune` setting.</div><div class='add'>+</div><div class='add'>+* `--path=&lt;path&gt;`:</div><div class='add'>+  The location to install the specified gems to. This defaults to Rubygems'</div><div class='add'>+  setting. Bundler shares this location with Rubygems, `gem install ...` will</div><div class='add'>+  have gem installed there, too. Therefore, gems installed without a</div><div class='add'>+  `--path ...` setting will show up by calling `gem list`. Accordingly, gems</div><div class='add'>+  installed to other locations will not get listed.</div><div class='add'>+</div><div class='add'>+  This option is deprecated in favor of the `path` setting.</div><div class='add'>+</div><div class='add'>+* `--quiet`:</div><div class='add'>+  Do not print progress information to the standard output. Instead, Bundler</div><div class='add'>+  will exit using a status code (`$?`).</div><div class='add'>+</div><div class='add'>+* `--retry=[&lt;number&gt;]`:</div><div class='add'>+  Retry failed network or git requests for &lt;number&gt; times.</div><div class='add'>+</div><div class='add'>+* `--shebang=&lt;ruby-executable&gt;`:</div><div class='add'>+  Uses the specified ruby executable (usually `ruby`) to execute the scripts</div><div class='add'>+  created with `--binstubs`. In addition, if you use `--binstubs` together with</div><div class='add'>+  `--shebang jruby` these executables will be changed to execute `jruby`</div><div class='add'>+  instead.</div><div class='add'>+</div><div class='add'>+  This option is deprecated in favor of the `shebang` setting.</div><div class='add'>+</div><div class='add'>+* `--standalone[=&lt;list&gt;]`:</div><div class='add'>+  Makes a bundle that can work without depending on Rubygems or Bundler at</div><div class='add'>+  runtime. A space separated list of groups to install has to be specified.</div><div class='add'>+  Bundler creates a directory named `bundle` and installs the bundle there. It</div><div class='add'>+  also generates a `bundle/bundler/setup.rb` file to replace Bundler's own setup</div><div class='add'>+  in the manner required. Using this option implicitly sets `path`, which is a</div><div class='add'>+  [remembered option][REMEMBERED OPTIONS].</div><div class='add'>+</div><div class='add'>+* `--system`:</div><div class='add'>+  Installs the gems specified in the bundle to the system's Rubygems location.</div><div class='add'>+  This overrides any previous configuration of `--path`.</div><div class='add'>+</div><div class='add'>+  This option is deprecated in favor of the `system` setting.</div><div class='add'>+</div><div class='add'>+* `--trust-policy=[&lt;policy&gt;]`:</div><div class='add'>+  Apply the Rubygems security policy &lt;policy&gt;, where policy is one of</div><div class='add'>+  `HighSecurity`, `MediumSecurity`, `LowSecurity`, `AlmostNoSecurity`, or</div><div class='add'>+  `NoSecurity`. For more details, please see the Rubygems signing documentation</div><div class='add'>+  linked below in [SEE ALSO][].</div><div class='add'>+</div><div class='add'>+* `--with=&lt;list&gt;`:</div><div class='add'>+  A space-separated list of groups referencing gems to install. If an</div><div class='add'>+  optional group is given it is installed. If a group is given that is</div><div class='add'>+  in the remembered list of groups given to --without, it is removed</div><div class='add'>+  from that list.</div><div class='add'>+</div><div class='add'>+  This option is deprecated in favor of the `with` setting.</div><div class='add'>+</div><div class='add'>+* `--without=&lt;list&gt;`:</div><div class='add'>+  A space-separated list of groups referencing gems to skip during installation.</div><div class='add'>+  If a group is given that is in the remembered list of groups given</div><div class='add'>+  to --with, it is removed from that list.</div><div class='add'>+</div><div class='add'>+  This option is deprecated in favor of the `without` setting.</div><div class='add'>+</div><div class='add'>+## DEPLOYMENT MODE</div><div class='add'>+</div><div class='add'>+Bundler's defaults are optimized for development. To switch to</div><div class='add'>+defaults optimized for deployment and for CI, use the `--deployment`</div><div class='add'>+flag. Do not activate deployment mode on development machines, as it</div><div class='add'>+will cause an error when the Gemfile(5) is modified.</div><div class='add'>+</div><div class='add'>+1. A `Gemfile.lock` is required.</div><div class='add'>+</div><div class='add'>+   To ensure that the same versions of the gems you developed with</div><div class='add'>+   and tested with are also used in deployments, a `Gemfile.lock`</div><div class='add'>+   is required.</div><div class='add'>+</div><div class='add'>+   This is mainly to ensure that you remember to check your</div><div class='add'>+   `Gemfile.lock` into version control.</div><div class='add'>+</div><div class='add'>+2. The `Gemfile.lock` must be up to date</div><div class='add'>+</div><div class='add'>+   In development, you can modify your Gemfile(5) and re-run</div><div class='add'>+   `bundle install` to [conservatively update][CONSERVATIVE UPDATING]</div><div class='add'>+   your `Gemfile.lock` snapshot.</div><div class='add'>+</div><div class='add'>+   In deployment, your `Gemfile.lock` should be up-to-date with</div><div class='add'>+   changes made in your Gemfile(5).</div><div class='add'>+</div><div class='add'>+3. Gems are installed to `vendor/bundle` not your default system location</div><div class='add'>+</div><div class='add'>+   In development, it's convenient to share the gems used in your</div><div class='add'>+   application with other applications and other scripts that run on</div><div class='add'>+   the system.</div><div class='add'>+</div><div class='add'>+   In deployment, isolation is a more important default. In addition,</div><div class='add'>+   the user deploying the application may not have permission to install</div><div class='add'>+   gems to the system, or the web server may not have permission to</div><div class='add'>+   read them.</div><div class='add'>+</div><div class='add'>+   As a result, `bundle install --deployment` installs gems to</div><div class='add'>+   the `vendor/bundle` directory in the application. This may be</div><div class='add'>+   overridden using the `--path` option.</div><div class='add'>+</div><div class='add'>+## INSTALLING GROUPS</div><div class='add'>+</div><div class='add'>+By default, `bundle install` will install all gems in all groups</div><div class='add'>+in your Gemfile(5), except those declared for a different platform.</div><div class='add'>+</div><div class='add'>+However, you can explicitly tell Bundler to skip installing</div><div class='add'>+certain groups with the `--without` option. This option takes</div><div class='add'>+a space-separated list of groups.</div><div class='add'>+</div><div class='add'>+While the `--without` option will skip _installing_ the gems in the</div><div class='add'>+specified groups, it will still _download_ those gems and use them to</div><div class='add'>+resolve the dependencies of every gem in your Gemfile(5).</div><div class='add'>+</div><div class='add'>+This is so that installing a different set of groups on another</div><div class='add'>+ machine (such as a production server) will not change the</div><div class='add'>+gems and versions that you have already developed and tested against.</div><div class='add'>+</div><div class='add'>+`Bundler offers a rock-solid guarantee that the third-party</div><div class='add'>+code you are running in development and testing is also the</div><div class='add'>+third-party code you are running in production. You can choose</div><div class='add'>+to exclude some of that code in different environments, but you</div><div class='add'>+will never be caught flat-footed by different versions of</div><div class='add'>+third-party code being used in different environments.`</div><div class='add'>+</div><div class='add'>+For a simple illustration, consider the following Gemfile(5):</div><div class='add'>+</div><div class='add'>+    source 'https://rubygems.org'</div><div class='add'>+</div><div class='add'>+    gem 'sinatra'</div><div class='add'>+</div><div class='add'>+    group :production do</div><div class='add'>+      gem 'rack-perftools-profiler'</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+In this case, `sinatra` depends on any version of Rack (`&gt;= 1.0`), while</div><div class='add'>+`rack-perftools-profiler` depends on 1.x (`~&gt; 1.0`).</div><div class='add'>+</div><div class='add'>+When you run `bundle install --without production` in development, we</div><div class='add'>+look at the dependencies of `rack-perftools-profiler` as well. That way,</div><div class='add'>+you do not spend all your time developing against Rack 2.0, using new</div><div class='add'>+APIs unavailable in Rack 1.x, only to have Bundler switch to Rack 1.2</div><div class='add'>+when the `production` group _is_ used.</div><div class='add'>+</div><div class='add'>+This should not cause any problems in practice, because we do not</div><div class='add'>+attempt to `install` the gems in the excluded groups, and only evaluate</div><div class='add'>+as part of the dependency resolution process.</div><div class='add'>+</div><div class='add'>+This also means that you cannot include different versions of the same</div><div class='add'>+gem in different groups, because doing so would result in different</div><div class='add'>+sets of dependencies used in development and production. Because of</div><div class='add'>+the vagaries of the dependency resolution process, this usually</div><div class='add'>+affects more than the gems you list in your Gemfile(5), and can</div><div class='add'>+(surprisingly) radically change the gems you are using.</div><div class='add'>+</div><div class='add'>+## THE GEMFILE.LOCK</div><div class='add'>+</div><div class='add'>+When you run `bundle install`, Bundler will persist the full names</div><div class='add'>+and versions of all gems that you used (including dependencies of</div><div class='add'>+the gems specified in the Gemfile(5)) into a file called `Gemfile.lock`.</div><div class='add'>+</div><div class='add'>+Bundler uses this file in all subsequent calls to `bundle install`,</div><div class='add'>+which guarantees that you always use the same exact code, even</div><div class='add'>+as your application moves across machines.</div><div class='add'>+</div><div class='add'>+Because of the way dependency resolution works, even a</div><div class='add'>+seemingly small change (for instance, an update to a point-release</div><div class='add'>+of a dependency of a gem in your Gemfile(5)) can result in radically</div><div class='add'>+different gems being needed to satisfy all dependencies.</div><div class='add'>+</div><div class='add'>+As a result, you `SHOULD` check your `Gemfile.lock` into version</div><div class='add'>+control, in both applications and gems. If you do not, every machine that</div><div class='add'>+checks out your repository (including your production server) will resolve all</div><div class='add'>+dependencies again, which will result in different versions of</div><div class='add'>+third-party code being used if `any` of the gems in the Gemfile(5)</div><div class='add'>+or any of their dependencies have been updated.</div><div class='add'>+</div><div class='add'>+When Bundler first shipped, the `Gemfile.lock` was included in the `.gitignore`</div><div class='add'>+file included with generated gems.  Over time, however, it became clear that</div><div class='add'>+this practice forces the pain of broken dependencies onto new contributors,</div><div class='add'>+while leaving existing contributors potentially unaware of the problem. Since</div><div class='add'>+`bundle install` is usually the first step towards a contribution, the pain of</div><div class='add'>+broken dependencies would discourage new contributors from contributing. As a</div><div class='add'>+result, we have revised our guidance for gem authors to now recommend checking</div><div class='add'>+in the lock for gems.</div><div class='add'>+</div><div class='add'>+## CONSERVATIVE UPDATING</div><div class='add'>+</div><div class='add'>+When you make a change to the Gemfile(5) and then run `bundle install`,</div><div class='add'>+Bundler will update only the gems that you modified.</div><div class='add'>+</div><div class='add'>+In other words, if a gem that you `did not modify` worked before</div><div class='add'>+you called `bundle install`, it will continue to use the exact</div><div class='add'>+same versions of all dependencies as it used before the update.</div><div class='add'>+</div><div class='add'>+Let's take a look at an example. Here's your original Gemfile(5):</div><div class='add'>+</div><div class='add'>+    source 'https://rubygems.org'</div><div class='add'>+</div><div class='add'>+    gem 'actionpack', '2.3.8'</div><div class='add'>+    gem 'activemerchant'</div><div class='add'>+</div><div class='add'>+In this case, both `actionpack` and `activemerchant` depend on</div><div class='add'>+`activesupport`. The `actionpack` gem depends on `activesupport 2.3.8`</div><div class='add'>+and `rack ~&gt; 1.1.0`, while the `activemerchant` gem depends on</div><div class='add'>+`activesupport &gt;= 2.3.2`, `braintree &gt;= 2.0.0`, and `builder &gt;= 2.0.0`.</div><div class='add'>+</div><div class='add'>+When the dependencies are first resolved, Bundler will select</div><div class='add'>+`activesupport 2.3.8`, which satisfies the requirements of both</div><div class='add'>+gems in your Gemfile(5).</div><div class='add'>+</div><div class='add'>+Next, you modify your Gemfile(5) to:</div><div class='add'>+</div><div class='add'>+    source 'https://rubygems.org'</div><div class='add'>+</div><div class='add'>+    gem 'actionpack', '3.0.0.rc'</div><div class='add'>+    gem 'activemerchant'</div><div class='add'>+</div><div class='add'>+The `actionpack 3.0.0.rc` gem has a number of new dependencies,</div><div class='add'>+and updates the `activesupport` dependency to `= 3.0.0.rc` and</div><div class='add'>+the `rack` dependency to `~&gt; 1.2.1`.</div><div class='add'>+</div><div class='add'>+When you run `bundle install`, Bundler notices that you changed</div><div class='add'>+the `actionpack` gem, but not the `activemerchant` gem. It</div><div class='add'>+evaluates the gems currently being used to satisfy its requirements:</div><div class='add'>+</div><div class='add'>+  * `activesupport 2.3.8`:</div><div class='add'>+    also used to satisfy a dependency in `activemerchant`,</div><div class='add'>+    which is not being updated</div><div class='add'>+  * `rack ~&gt; 1.1.0`:</div><div class='add'>+    not currently being used to satisfy another dependency</div><div class='add'>+</div><div class='add'>+Because you did not explicitly ask to update `activemerchant`,</div><div class='add'>+you would not expect it to suddenly stop working after updating</div><div class='add'>+`actionpack`. However, satisfying the new `activesupport 3.0.0.rc`</div><div class='add'>+dependency of actionpack requires updating one of its dependencies.</div><div class='add'>+</div><div class='add'>+Even though `activemerchant` declares a very loose dependency</div><div class='add'>+that theoretically matches `activesupport 3.0.0.rc`, Bundler treats</div><div class='add'>+gems in your Gemfile(5) that have not changed as an atomic unit</div><div class='add'>+together with their dependencies. In this case, the `activemerchant`</div><div class='add'>+dependency is treated as `activemerchant 1.7.1 + activesupport 2.3.8`,</div><div class='add'>+so `bundle install` will report that it cannot update `actionpack`.</div><div class='add'>+</div><div class='add'>+To explicitly update `actionpack`, including its dependencies</div><div class='add'>+which other gems in the Gemfile(5) still depend on, run</div><div class='add'>+`bundle update actionpack` (see `bundle update(1)`).</div><div class='add'>+</div><div class='add'>+`Summary`: In general, after making a change to the Gemfile(5) , you</div><div class='add'>+should first try to run `bundle install`, which will guarantee that no</div><div class='add'>+other gem in the Gemfile(5) is impacted by the change. If that</div><div class='add'>+does not work, run [bundle update(1)](bundle-update.1.html).</div><div class='add'>+</div><div class='add'>+## SEE ALSO</div><div class='add'>+</div><div class='add'>+* [Gem install docs](http://guides.rubygems.org/rubygems-basics/#installing-gems)</div><div class='add'>+* [Rubygems signing docs](http://guides.rubygems.org/security/)</div><div class='head'>diff --git a/lib/bundler/man/bundle-list.1 b/lib/bundler/man/bundle-list.1<br/>new file mode 100644<br/>index 0000000000..1680e6007a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-list.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-list.1</a></div><div class='hunk'>@@ -0,0 +1,50 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-LIST" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-list\fR \- List all the gems in the bundle</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle list\fR [\-\-name\-only] [\-\-paths] [\-\-without\-group=GROUP[ GROUP\.\.\.]] [\-\-only\-group=GROUP[ GROUP\.\.\.]]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Prints a list of all the gems in the bundle including their version\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Example:</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle list \-\-name\-only</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle list \-\-paths</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle list \-\-without\-group test</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle list \-\-only\-group dev</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle list \-\-only\-group dev test \-\-paths</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-name\-only\fR</div><div class='add'>+Print only the name of each gem\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-paths\fR</div><div class='add'>+Print the path to each gem in the bundle\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-without\-group=&lt;list&gt;\fR</div><div class='add'>+A space\-separated list of groups of gems to skip during printing\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-only\-group=&lt;list&gt;\fR</div><div class='add'>+A space\-separated list of groups of gems to print\.</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-list.1.ronn b/lib/bundler/man/bundle-list.1.ronn<br/>new file mode 100644<br/>index 0000000000..dc058ecd5f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-list.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-list.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,33 @@</div><div class='add'>+bundle-list(1) -- List all the gems in the bundle</div><div class='add'>+=========================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle list` [--name-only] [--paths] [--without-group=GROUP[ GROUP...]] [--only-group=GROUP[ GROUP...]]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Prints a list of all the gems in the bundle including their version.</div><div class='add'>+</div><div class='add'>+Example:</div><div class='add'>+</div><div class='add'>+bundle list --name-only</div><div class='add'>+</div><div class='add'>+bundle list --paths</div><div class='add'>+</div><div class='add'>+bundle list --without-group test</div><div class='add'>+</div><div class='add'>+bundle list --only-group dev</div><div class='add'>+</div><div class='add'>+bundle list --only-group dev test --paths</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--name-only`:</div><div class='add'>+  Print only the name of each gem.</div><div class='add'>+* `--paths`:</div><div class='add'>+  Print the path to each gem in the bundle.</div><div class='add'>+* `--without-group=&lt;list&gt;`:</div><div class='add'>+  A space-separated list of groups of gems to skip during printing.</div><div class='add'>+* `--only-group=&lt;list&gt;`:</div><div class='add'>+  A space-separated list of groups of gems to print.</div><div class='head'>diff --git a/lib/bundler/man/bundle-lock.1 b/lib/bundler/man/bundle-lock.1<br/>new file mode 100644<br/>index 0000000000..8722c44b3d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-lock.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-lock.1</a></div><div class='hunk'>@@ -0,0 +1,84 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-LOCK" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-lock\fR \- Creates / Updates a lockfile without installing</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle lock\fR [\-\-update] [\-\-local] [\-\-print] [\-\-lockfile=PATH] [\-\-full\-index] [\-\-add\-platform] [\-\-remove\-platform] [\-\-patch] [\-\-minor] [\-\-major] [\-\-strict] [\-\-conservative]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Lock the gems specified in Gemfile\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-update=&lt;*gems&gt;\fR</div><div class='add'>+Ignores the existing lockfile\. Resolve then updates lockfile\. Taking a list of gems or updating all gems if no list is given\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-local\fR</div><div class='add'>+Do not attempt to connect to \fBrubygems\.org\fR\. Instead, Bundler will use the gems already present in Rubygems\' cache or in \fBvendor/cache\fR\. Note that if a appropriate platform\-specific gem exists on \fBrubygems\.org\fR it will not be found\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-print\fR</div><div class='add'>+Prints the lockfile to STDOUT instead of writing to the file system\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-lockfile=&lt;path&gt;\fR</div><div class='add'>+The path where the lockfile should be written to\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-full\-index\fR</div><div class='add'>+Fall back to using the single\-file index of all gems\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-add\-platform\fR</div><div class='add'>+Add a new platform to the lockfile, re\-resolving for the addition of that platform\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-remove\-platform\fR</div><div class='add'>+Remove a platform from the lockfile\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-patch\fR</div><div class='add'>+If updating, prefer updating only to next patch version\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-minor\fR</div><div class='add'>+If updating, prefer updating only to next minor version\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-major\fR</div><div class='add'>+If updating, prefer updating to next major version (default)\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-strict\fR</div><div class='add'>+If updating, do not allow any gem to be updated past latest \-\-patch | \-\-minor | \-\-major\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-conservative\fR</div><div class='add'>+If updating, use bundle install conservative update behavior and do not allow shared dependencies to be updated\.</div><div class='add'>+.</div><div class='add'>+.SH "UPDATING ALL GEMS"</div><div class='add'>+If you run \fBbundle lock\fR with \fB\-\-update\fR option without list of gems, bundler will ignore any previously installed gems and resolve all dependencies again based on the latest versions of all gems available in the sources\.</div><div class='add'>+.</div><div class='add'>+.SH "UPDATING A LIST OF GEMS"</div><div class='add'>+Sometimes, you want to update a single gem in the Gemfile(5), and leave the rest of the gems that you specified locked to the versions in the \fBGemfile\.lock\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For instance, you only want to update \fBnokogiri\fR, run \fBbundle lock \-\-update nokogiri\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Bundler will update \fBnokogiri\fR and any of its dependencies, but leave the rest of the gems that you specified locked to the versions in the \fBGemfile\.lock\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "SUPPORTING OTHER PLATFORMS"</div><div class='add'>+If you want your bundle to support platforms other than the one you\'re running locally, you can run \fBbundle lock \-\-add\-platform PLATFORM\fR to add PLATFORM to the lockfile, force bundler to re\-resolve and consider the new platform when picking gems, all without needing to have a machine that matches PLATFORM handy to install those platform\-specific gems on\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For a full explanation of gem platforms, see \fBgem help platform\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "PATCH LEVEL OPTIONS"</div><div class='add'>+See bundle update(1) \fIbundle\-update\.1\.html\fR for details\.</div><div class='head'>diff --git a/man/bundle-lock.ronn b/lib/bundler/man/bundle-lock.1.ronn<br/>index 3aa5920f5a..3aa5920f5a 100644<br/>--- a/<a href='/ruby.git/tree/man/bundle-lock.ronn?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-lock.ronn</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-lock.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-lock.1.ronn</a></div><div class='head'>diff --git a/lib/bundler/man/bundle-open.1 b/lib/bundler/man/bundle-open.1<br/>new file mode 100644<br/>index 0000000000..3513f0d09b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-open.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-open.1</a></div><div class='hunk'>@@ -0,0 +1,52 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-OPEN" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-open\fR \- Opens the source directory for a gem in your bundle</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle open\fR [GEM] [\-\-path=PATH]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Opens the source directory of the provided GEM in your editor\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For this to work the \fBEDITOR\fR or \fBBUNDLER_EDITOR\fR environment variable has to be set\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Example:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle open \'rack\'</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Will open the source directory for the \'rack\' gem in your bundle\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle open \'rack\' \-\-path \'README\.md\'</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Will open the README\.md file of the \'rack\' gem source in your bundle\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-path\fR</div><div class='add'>+Specify GEM source relative path to open\.</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-open.1.ronn b/lib/bundler/man/bundle-open.1.ronn<br/>new file mode 100644<br/>index 0000000000..a857f3a965<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-open.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-open.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+bundle-open(1) -- Opens the source directory for a gem in your bundle</div><div class='add'>+=====================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle open` [GEM] [--path=PATH]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Opens the source directory of the provided GEM in your editor.</div><div class='add'>+</div><div class='add'>+For this to work the `EDITOR` or `BUNDLER_EDITOR` environment variable has to</div><div class='add'>+be set.</div><div class='add'>+</div><div class='add'>+Example:</div><div class='add'>+</div><div class='add'>+    bundle open 'rack'</div><div class='add'>+</div><div class='add'>+Will open the source directory for the 'rack' gem in your bundle.</div><div class='add'>+</div><div class='add'>+    bundle open 'rack' --path 'README.md'</div><div class='add'>+</div><div class='add'>+Will open the README.md file of the 'rack' gem source in your bundle.</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+* `--path`:</div><div class='add'>+  Specify GEM source relative path to open.</div><div class='head'>diff --git a/lib/bundler/man/bundle-outdated.1 b/lib/bundler/man/bundle-outdated.1<br/>new file mode 100644<br/>index 0000000000..129ff00f58<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-outdated.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-outdated.1</a></div><div class='hunk'>@@ -0,0 +1,152 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-OUTDATED" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-outdated\fR \- List installed gems with newer versions available</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle outdated\fR [GEM] [\-\-local] [\-\-pre] [\-\-source] [\-\-strict] [\-\-parseable | \-\-porcelain] [\-\-group=GROUP] [\-\-groups] [\-\-patch|\-\-minor|\-\-major] [\-\-filter\-major] [\-\-filter\-minor] [\-\-filter\-patch] [\-\-only\-explicit]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Outdated lists the names and versions of gems that have a newer version available in the given source\. Calling outdated with [GEM [GEM]] will only check for newer versions of the given gems\. Prerelease gems are ignored by default\. If your gems are up to date, Bundler will exit with a status of 0\. Otherwise, it will exit 1\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-local\fR</div><div class='add'>+Do not attempt to fetch gems remotely and use the gem cache instead\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-pre\fR</div><div class='add'>+Check for newer pre\-release gems\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-source\fR</div><div class='add'>+Check against a specific source\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-strict\fR</div><div class='add'>+Only list newer versions allowed by your Gemfile requirements, also respecting conservative update flags (\-\-patch, \-\-minor, \-\-major)\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-parseable\fR, \fB\-\-porcelain\fR</div><div class='add'>+Use minimal formatting for more parseable output\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-group\fR</div><div class='add'>+List gems from a specific group\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-groups\fR</div><div class='add'>+List gems organized by groups\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-minor\fR</div><div class='add'>+Prefer updating only to next minor version\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-major\fR</div><div class='add'>+Prefer updating to next major version (default)\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-patch\fR</div><div class='add'>+Prefer updating only to next patch version\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-filter\-major\fR</div><div class='add'>+Only list major newer versions\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-filter\-minor\fR</div><div class='add'>+Only list minor newer versions\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-filter\-patch\fR</div><div class='add'>+Only list patch newer versions\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-only\-explicit\fR</div><div class='add'>+Only list gems specified in your Gemfile, not their dependencies\.</div><div class='add'>+.</div><div class='add'>+.SH "PATCH LEVEL OPTIONS"</div><div class='add'>+See bundle update(1) \fIbundle\-update\.1\.html\fR for details\.</div><div class='add'>+.</div><div class='add'>+.SH "FILTERING OUTPUT"</div><div class='add'>+The 3 filtering options do not affect the resolution of versions, merely what versions are shown in the output\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If the regular output shows the following:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+* Gem       Current  Latest  Requested  Groups</div><div class='add'>+* faker     1\.6\.5    1\.6\.6   ~&gt; 1\.4     development, test</div><div class='add'>+* hashie    1\.2\.0    3\.4\.6   = 1\.2\.0    default</div><div class='add'>+* headless  2\.2\.3    2\.3\.1   = 2\.2\.3    test</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+\fB\-\-filter\-major\fR would only show:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+* Gem       Current  Latest  Requested  Groups</div><div class='add'>+* hashie    1\.2\.0    3\.4\.6   = 1\.2\.0    default</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+\fB\-\-filter\-minor\fR would only show:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+* Gem       Current  Latest  Requested  Groups</div><div class='add'>+* headless  2\.2\.3    2\.3\.1   = 2\.2\.3    test</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+\fB\-\-filter\-patch\fR would only show:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+* Gem       Current  Latest  Requested  Groups</div><div class='add'>+* faker     1\.6\.5    1\.6\.6   ~&gt; 1\.4     development, test</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Filter options can be combined\. \fB\-\-filter\-minor\fR and \fB\-\-filter\-patch\fR would show:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+* Gem       Current  Latest  Requested  Groups</div><div class='add'>+* faker     1\.6\.5    1\.6\.6   ~&gt; 1\.4     development, test</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Combining all three \fBfilter\fR options would be the same result as providing none of them\.</div><div class='head'>diff --git a/lib/bundler/man/bundle-outdated.1.ronn b/lib/bundler/man/bundle-outdated.1.ronn<br/>new file mode 100644<br/>index 0000000000..27bf21ab9d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-outdated.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-outdated.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,105 @@</div><div class='add'>+bundle-outdated(1) -- List installed gems with newer versions available</div><div class='add'>+=======================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle outdated` [GEM] [--local]</div><div class='add'>+                        [--pre]</div><div class='add'>+                        [--source]</div><div class='add'>+                        [--strict]</div><div class='add'>+                        [--parseable | --porcelain]</div><div class='add'>+                        [--group=GROUP]</div><div class='add'>+                        [--groups]</div><div class='add'>+                        [--patch|--minor|--major]</div><div class='add'>+                        [--filter-major]</div><div class='add'>+                        [--filter-minor]</div><div class='add'>+                        [--filter-patch]</div><div class='add'>+                        [--only-explicit]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Outdated lists the names and versions of gems that have a newer version available</div><div class='add'>+in the given source. Calling outdated with [GEM [GEM]] will only check for newer</div><div class='add'>+versions of the given gems. Prerelease gems are ignored by default. If your gems</div><div class='add'>+are up to date, Bundler will exit with a status of 0. Otherwise, it will exit 1.</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--local`:</div><div class='add'>+  Do not attempt to fetch gems remotely and use the gem cache instead.</div><div class='add'>+</div><div class='add'>+* `--pre`:</div><div class='add'>+  Check for newer pre-release gems.</div><div class='add'>+</div><div class='add'>+* `--source`:</div><div class='add'>+  Check against a specific source.</div><div class='add'>+</div><div class='add'>+* `--strict`:</div><div class='add'>+  Only list newer versions allowed by your Gemfile requirements, also respecting conservative update flags (--patch, --minor, --major).</div><div class='add'>+</div><div class='add'>+* `--parseable`, `--porcelain`:</div><div class='add'>+   Use minimal formatting for more parseable output.</div><div class='add'>+</div><div class='add'>+* `--group`:</div><div class='add'>+  List gems from a specific group.</div><div class='add'>+</div><div class='add'>+* `--groups`:</div><div class='add'>+  List gems organized by groups.</div><div class='add'>+</div><div class='add'>+* `--minor`:</div><div class='add'>+  Prefer updating only to next minor version.</div><div class='add'>+</div><div class='add'>+* `--major`:</div><div class='add'>+  Prefer updating to next major version (default).</div><div class='add'>+</div><div class='add'>+* `--patch`:</div><div class='add'>+  Prefer updating only to next patch version.</div><div class='add'>+</div><div class='add'>+* `--filter-major`:</div><div class='add'>+  Only list major newer versions.</div><div class='add'>+</div><div class='add'>+* `--filter-minor`:</div><div class='add'>+  Only list minor newer versions.</div><div class='add'>+</div><div class='add'>+* `--filter-patch`:</div><div class='add'>+  Only list patch newer versions.</div><div class='add'>+</div><div class='add'>+* `--only-explicit`:</div><div class='add'>+  Only list gems specified in your Gemfile, not their dependencies.</div><div class='add'>+</div><div class='add'>+## PATCH LEVEL OPTIONS</div><div class='add'>+</div><div class='add'>+See [bundle update(1)](bundle-update.1.html) for details.</div><div class='add'>+</div><div class='add'>+## FILTERING OUTPUT</div><div class='add'>+</div><div class='add'>+The 3 filtering options do not affect the resolution of versions, merely what versions are shown</div><div class='add'>+in the output.</div><div class='add'>+</div><div class='add'>+If the regular output shows the following:</div><div class='add'>+</div><div class='add'>+    * Gem       Current  Latest  Requested  Groups</div><div class='add'>+    * faker     1.6.5    1.6.6   ~&gt; 1.4     development, test</div><div class='add'>+    * hashie    1.2.0    3.4.6   = 1.2.0    default</div><div class='add'>+    * headless  2.2.3    2.3.1   = 2.2.3    test</div><div class='add'>+</div><div class='add'>+`--filter-major` would only show:</div><div class='add'>+</div><div class='add'>+    * Gem       Current  Latest  Requested  Groups</div><div class='add'>+    * hashie    1.2.0    3.4.6   = 1.2.0    default</div><div class='add'>+</div><div class='add'>+`--filter-minor` would only show:</div><div class='add'>+</div><div class='add'>+    * Gem       Current  Latest  Requested  Groups</div><div class='add'>+    * headless  2.2.3    2.3.1   = 2.2.3    test</div><div class='add'>+</div><div class='add'>+`--filter-patch` would only show:</div><div class='add'>+</div><div class='add'>+    * Gem       Current  Latest  Requested  Groups</div><div class='add'>+    * faker     1.6.5    1.6.6   ~&gt; 1.4     development, test</div><div class='add'>+</div><div class='add'>+Filter options can be combined. `--filter-minor` and `--filter-patch` would show:</div><div class='add'>+</div><div class='add'>+    * Gem       Current  Latest  Requested  Groups</div><div class='add'>+    * faker     1.6.5    1.6.6   ~&gt; 1.4     development, test</div><div class='add'>+Combining all three `filter` options would be the same result as providing none of them.</div><div class='head'>diff --git a/lib/bundler/man/bundle-platform.1 b/lib/bundler/man/bundle-platform.1<br/>new file mode 100644<br/>index 0000000000..5021c46b4c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-platform.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-platform.1</a></div><div class='hunk'>@@ -0,0 +1,71 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-PLATFORM" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-platform\fR \- Displays platform compatibility information</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle platform\fR [\-\-ruby]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+\fBplatform\fR displays information from your Gemfile, Gemfile\.lock, and Ruby VM about your platform\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For instance, using this Gemfile(5):</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+source "https://rubygems\.org"</div><div class='add'>+</div><div class='add'>+ruby "3\.1\.2"</div><div class='add'>+</div><div class='add'>+gem "rack"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If you run \fBbundle platform\fR on Ruby 3\.1\.2, it displays the following output:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+Your platform is: x86_64\-linux</div><div class='add'>+</div><div class='add'>+Your app has gems that work on these platforms:</div><div class='add'>+* arm64\-darwin\-21</div><div class='add'>+* ruby</div><div class='add'>+* x64\-mingw\-ucrt</div><div class='add'>+* x86_64\-linux</div><div class='add'>+</div><div class='add'>+Your Gemfile specifies a Ruby version requirement:</div><div class='add'>+* ruby 3\.1\.2</div><div class='add'>+</div><div class='add'>+Your current platform satisfies the Ruby version requirement\.</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+\fBplatform\fR lists all the platforms in your \fBGemfile\.lock\fR as well as the \fBruby\fR directive if applicable from your Gemfile(5)\. It also lets you know if the \fBruby\fR directive requirement has been met\. If \fBruby\fR directive doesn\'t match the running Ruby VM, it tells you what part does not\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-ruby\fR</div><div class='add'>+It will display the ruby directive information, so you don\'t have to parse it from the Gemfile(5)\.</div><div class='add'>+.</div><div class='add'>+.SH "SEE ALSO"</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+bundle\-lock(1) \fIbundle\-lock\.1\.html\fR</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-platform.1.ronn b/lib/bundler/man/bundle-platform.1.ronn<br/>new file mode 100644<br/>index 0000000000..744acd1b43<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-platform.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-platform.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,49 @@</div><div class='add'>+bundle-platform(1) -- Displays platform compatibility information</div><div class='add'>+=================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle platform` [--ruby]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+`platform` displays information from your Gemfile, Gemfile.lock, and Ruby</div><div class='add'>+VM about your platform.</div><div class='add'>+</div><div class='add'>+For instance, using this Gemfile(5):</div><div class='add'>+</div><div class='add'>+    source "https://rubygems.org"</div><div class='add'>+</div><div class='add'>+    ruby "3.1.2"</div><div class='add'>+</div><div class='add'>+    gem "rack"</div><div class='add'>+</div><div class='add'>+If you run `bundle platform` on Ruby 3.1.2, it displays the following output:</div><div class='add'>+</div><div class='add'>+    Your platform is: x86_64-linux</div><div class='add'>+</div><div class='add'>+    Your app has gems that work on these platforms:</div><div class='add'>+    * arm64-darwin-21</div><div class='add'>+    * ruby</div><div class='add'>+    * x64-mingw-ucrt</div><div class='add'>+    * x86_64-linux</div><div class='add'>+</div><div class='add'>+    Your Gemfile specifies a Ruby version requirement:</div><div class='add'>+    * ruby 3.1.2</div><div class='add'>+</div><div class='add'>+    Your current platform satisfies the Ruby version requirement.</div><div class='add'>+</div><div class='add'>+`platform` lists all the platforms in your `Gemfile.lock` as well as the</div><div class='add'>+`ruby` directive if applicable from your Gemfile(5). It also lets you know</div><div class='add'>+if the `ruby` directive requirement has been met. If `ruby` directive doesn't</div><div class='add'>+match the running Ruby VM, it tells you what part does not.</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--ruby`:</div><div class='add'>+  It will display the ruby directive information, so you don't have to</div><div class='add'>+  parse it from the Gemfile(5).</div><div class='add'>+</div><div class='add'>+## SEE ALSO</div><div class='add'>+</div><div class='add'>+* [bundle-lock(1)](bundle-lock.1.html)</div><div class='head'>diff --git a/lib/bundler/man/bundle-plugin.1 b/lib/bundler/man/bundle-plugin.1<br/>new file mode 100644<br/>index 0000000000..ec30e1d0fd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-plugin.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-plugin.1</a></div><div class='hunk'>@@ -0,0 +1,81 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-PLUGIN" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-plugin\fR \- Manage Bundler plugins</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle plugin\fR install PLUGINS [\-\-source=\fISOURCE\fR] [\-\-version=\fIversion\fR] [\-\-git|\-\-local_git=\fIgit\-url\fR] [\-\-branch=\fIbranch\fR|\-\-ref=\fIrev\fR]</div><div class='add'>+.</div><div class='add'>+.br</div><div class='add'>+\fBbundle plugin\fR uninstall PLUGINS</div><div class='add'>+.</div><div class='add'>+.br</div><div class='add'>+\fBbundle plugin\fR list</div><div class='add'>+.</div><div class='add'>+.br</div><div class='add'>+\fBbundle plugin\fR help [COMMAND]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+You can install, uninstall, and list plugin(s) with this command to extend functionalities of Bundler\.</div><div class='add'>+.</div><div class='add'>+.SH "SUB\-COMMANDS"</div><div class='add'>+.</div><div class='add'>+.SS "install"</div><div class='add'>+Install the given plugin(s)\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBbundle plugin install bundler\-graph\fR: Install bundler\-graph gem from RubyGems\.org\. The global source, specified in source in Gemfile is ignored\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBbundle plugin install bundler\-graph \-\-source https://example\.com\fR: Install bundler\-graph gem from example\.com\. The global source, specified in source in Gemfile is not considered\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBbundle plugin install bundler\-graph \-\-version 0\.2\.1\fR: You can specify the version of the gem via \fB\-\-version\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBbundle plugin install bundler\-graph \-\-git https://github\.com/rubygems/bundler\-graph\fR: Install bundler\-graph gem from Git repository\. \fB\-\-git\fR can be replaced with \fB\-\-local\-git\fR\. You cannot use both \fB\-\-git\fR and \fB\-\-local\-git\fR\. You can use standard Git URLs like:</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBssh://[user@]host\.xz[:port]/path/to/repo\.git\fR</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBhttp[s]://host\.xz[:port]/path/to/repo\.git\fR</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fB/path/to/repo\fR</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBfile:///path/to/repo\fR</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+When you specify \fB\-\-git\fR/\fB\-\-local\-git\fR, you can use \fB\-\-branch\fR or \fB\-\-ref\fR to specify any branch, tag, or commit hash (revision) to use\. When you specify both, only the latter is used\.</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SS "uninstall"</div><div class='add'>+Uninstall the plugin(s) specified in PLUGINS\.</div><div class='add'>+.</div><div class='add'>+.SS "list"</div><div class='add'>+List the installed plugins and available commands\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+No options\.</div><div class='add'>+.</div><div class='add'>+.SS "help"</div><div class='add'>+Describe subcommands or one specific subcommand\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+No options\.</div><div class='add'>+.</div><div class='add'>+.SH "SEE ALSO"</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+How to write a Bundler plugin \fIhttps://bundler\.io/guides/bundler_plugins\.html\fR</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-plugin.1.ronn b/lib/bundler/man/bundle-plugin.1.ronn<br/>new file mode 100644<br/>index 0000000000..4f234eeba7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-plugin.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-plugin.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,59 @@</div><div class='add'>+bundle-plugin(1) -- Manage Bundler plugins</div><div class='add'>+==========================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle plugin` install PLUGINS [--source=&lt;SOURCE&gt;] [--version=&lt;version&gt;]</div><div class='add'>+                              [--git|--local_git=&lt;git-url&gt;] [--branch=&lt;branch&gt;|--ref=&lt;rev&gt;]&lt;br&gt;</div><div class='add'>+`bundle plugin` uninstall PLUGINS&lt;br&gt;</div><div class='add'>+`bundle plugin` list&lt;br&gt;</div><div class='add'>+`bundle plugin` help [COMMAND]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+You can install, uninstall, and list plugin(s) with this command to extend functionalities of Bundler.</div><div class='add'>+</div><div class='add'>+## SUB-COMMANDS</div><div class='add'>+</div><div class='add'>+### install</div><div class='add'>+</div><div class='add'>+Install the given plugin(s).</div><div class='add'>+</div><div class='add'>+* `bundle plugin install bundler-graph`:</div><div class='add'>+  Install bundler-graph gem from RubyGems.org. The global source, specified in source in Gemfile is ignored.</div><div class='add'>+</div><div class='add'>+* `bundle plugin install bundler-graph --source https://example.com`:</div><div class='add'>+  Install bundler-graph gem from example.com. The global source, specified in source in Gemfile is not considered.</div><div class='add'>+</div><div class='add'>+* `bundle plugin install bundler-graph --version 0.2.1`:</div><div class='add'>+  You can specify the version of the gem via `--version`.</div><div class='add'>+</div><div class='add'>+* `bundle plugin install bundler-graph --git https://github.com/rubygems/bundler-graph`:</div><div class='add'>+  Install bundler-graph gem from Git repository. `--git` can be replaced with `--local-git`. You cannot use both `--git` and `--local-git`. You can use standard Git URLs like:</div><div class='add'>+</div><div class='add'>+  * `ssh://[user@]host.xz[:port]/path/to/repo.git`</div><div class='add'>+  * `http[s]://host.xz[:port]/path/to/repo.git`</div><div class='add'>+  * `/path/to/repo`</div><div class='add'>+  * `file:///path/to/repo`</div><div class='add'>+</div><div class='add'>+  When you specify `--git`/`--local-git`, you can use `--branch` or `--ref` to specify any branch, tag, or commit hash (revision) to use. When you specify both, only the latter is used.</div><div class='add'>+</div><div class='add'>+### uninstall</div><div class='add'>+</div><div class='add'>+Uninstall the plugin(s) specified in PLUGINS.</div><div class='add'>+</div><div class='add'>+### list</div><div class='add'>+</div><div class='add'>+List the installed plugins and available commands.</div><div class='add'>+</div><div class='add'>+No options.</div><div class='add'>+</div><div class='add'>+### help</div><div class='add'>+</div><div class='add'>+Describe subcommands or one specific subcommand.</div><div class='add'>+</div><div class='add'>+No options.</div><div class='add'>+</div><div class='add'>+## SEE ALSO</div><div class='add'>+</div><div class='add'>+* [How to write a Bundler plugin](https://bundler.io/guides/bundler_plugins.html)</div><div class='head'>diff --git a/lib/bundler/man/bundle-pristine.1 b/lib/bundler/man/bundle-pristine.1<br/>new file mode 100644<br/>index 0000000000..af81c48d2b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-pristine.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-pristine.1</a></div><div class='hunk'>@@ -0,0 +1,34 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-PRISTINE" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-pristine\fR \- Restores installed gems to their pristine condition</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle pristine\fR</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+\fBpristine\fR restores the installed gems in the bundle to their pristine condition using the local gem cache from RubyGems\. For git gems, a forced checkout will be performed\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For further explanation, \fBbundle pristine\fR ignores unpacked files on disk\. In other words, this command utilizes the local \fB\.gem\fR cache or the gem\'s git repository as if one were installing from scratch\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Note: the Bundler gem cannot be restored to its original state with \fBpristine\fR\. One also cannot use \fBbundle pristine\fR on gems with a \'path\' option in the Gemfile, because bundler has no original copy it can restore from\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+When is it practical to use \fBbundle pristine\fR?</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+It comes in handy when a developer is debugging a gem\. \fBbundle pristine\fR is a great way to get rid of experimental changes to a gem that one may not want\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Why use \fBbundle pristine\fR over \fBgem pristine \-\-all\fR?</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Both commands are very similar\. For context: \fBbundle pristine\fR, without arguments, cleans all gems from the lockfile\. Meanwhile, \fBgem pristine \-\-all\fR cleans all installed gems for that Ruby version\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If a developer forgets which gems in their project they might have been debugging, the Rubygems \fBgem pristine [GEMNAME]\fR command may be inconvenient\. One can avoid waiting for \fBgem pristine \-\-all\fR, and instead run \fBbundle pristine\fR\.</div><div class='head'>diff --git a/man/bundle-pristine.ronn b/lib/bundler/man/bundle-pristine.1.ronn<br/>index e2d6b6a348..e2d6b6a348 100644<br/>--- a/<a href='/ruby.git/tree/man/bundle-pristine.ronn?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-pristine.ronn</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-pristine.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-pristine.1.ronn</a></div><div class='head'>diff --git a/lib/bundler/man/bundle-remove.1 b/lib/bundler/man/bundle-remove.1<br/>new file mode 100644<br/>index 0000000000..d86cf134bd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-remove.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-remove.1</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-REMOVE" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-remove\fR \- Removes gems from the Gemfile</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle remove [GEM [GEM \.\.\.]] [\-\-install]\fR</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Removes the given gems from the Gemfile while ensuring that the resulting Gemfile is still valid\. If a gem cannot be removed, a warning is printed\. If a gem is already absent from the Gemfile, and error is raised\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-install\fR</div><div class='add'>+Runs \fBbundle install\fR after the given gems have been removed from the Gemfile, which ensures that both the lockfile and the installed gems on disk are also updated to remove the given gem(s)\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Example:</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle remove rails</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle remove rails rack</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+bundle remove rails rack \-\-install</div><div class='head'>diff --git a/man/bundle-remove.ronn b/lib/bundler/man/bundle-remove.1.ronn<br/>index 40a239b4a2..40a239b4a2 100644<br/>--- a/<a href='/ruby.git/tree/man/bundle-remove.ronn?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-remove.ronn</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-remove.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-remove.1.ronn</a></div><div class='head'>diff --git a/lib/bundler/man/bundle-show.1 b/lib/bundler/man/bundle-show.1<br/>new file mode 100644<br/>index 0000000000..aa91176bf2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-show.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-show.1</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-SHOW" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle show\fR [GEM] [\-\-paths]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Without the [GEM] option, \fBshow\fR will print a list of the names and versions of all gems that are required by your [\fBGemfile(5)\fR][Gemfile(5)], sorted by name\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Calling show with [GEM] will list the exact location of that gem on your machine\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-paths\fR</div><div class='add'>+List the paths of all gems that are required by your [\fBGemfile(5)\fR][Gemfile(5)], sorted by gem name\.</div><div class='add'>+</div><div class='head'>diff --git a/man/bundle-show.ronn b/lib/bundler/man/bundle-show.1.ronn<br/>index a6a59a1445..a6a59a1445 100644<br/>--- a/<a href='/ruby.git/tree/man/bundle-show.ronn?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>man/bundle-show.ronn</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-show.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-show.1.ronn</a></div><div class='head'>diff --git a/lib/bundler/man/bundle-update.1 b/lib/bundler/man/bundle-update.1<br/>new file mode 100644<br/>index 0000000000..e4e10ad23b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-update.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-update.1</a></div><div class='hunk'>@@ -0,0 +1,394 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-UPDATE" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-update\fR \- Update your gems to the latest available versions</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle update\fR \fI*gems\fR [\-\-all] [\-\-group=NAME] [\-\-source=NAME] [\-\-local] [\-\-ruby] [\-\-bundler[=VERSION]] [\-\-full\-index] [\-\-jobs=JOBS] [\-\-quiet] [\-\-patch|\-\-minor|\-\-major] [\-\-redownload] [\-\-strict] [\-\-conservative]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Update the gems specified (all gems, if \fB\-\-all\fR flag is used), ignoring the previously installed gems specified in the \fBGemfile\.lock\fR\. In general, you should use bundle install(1) \fIbundle\-install\.1\.html\fR to install the same exact gems and versions across machines\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+You would use \fBbundle update\fR to explicitly update the version of a gem\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-all\fR</div><div class='add'>+Update all gems specified in Gemfile\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-group=&lt;name&gt;\fR, \fB\-g=[&lt;name&gt;]\fR</div><div class='add'>+Only update the gems in the specified group\. For instance, you can update all gems in the development group with \fBbundle update \-\-group development\fR\. You can also call \fBbundle update rails \-\-group test\fR to update the rails gem and all gems in the test group, for example\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-source=&lt;name&gt;\fR</div><div class='add'>+The name of a \fB:git\fR or \fB:path\fR source used in the Gemfile(5)\. For instance, with a \fB:git\fR source of \fBhttp://github\.com/rails/rails\.git\fR, you would call \fBbundle update \-\-source rails\fR</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-local\fR</div><div class='add'>+Do not attempt to fetch gems remotely and use the gem cache instead\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-ruby\fR</div><div class='add'>+Update the locked version of Ruby to the current version of Ruby\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-bundler\fR</div><div class='add'>+Update the locked version of bundler to the invoked bundler version\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-full\-index\fR</div><div class='add'>+Fall back to using the single\-file index of all gems\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-jobs=[&lt;number&gt;]\fR, \fB\-j[&lt;number&gt;]\fR</div><div class='add'>+Specify the number of jobs to run in parallel\. The default is the number of available processors\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-retry=[&lt;number&gt;]\fR</div><div class='add'>+Retry failed network or git requests for \fInumber\fR times\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-quiet\fR</div><div class='add'>+Only output warnings and errors\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-redownload\fR</div><div class='add'>+Force downloading every gem\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-patch\fR</div><div class='add'>+Prefer updating only to next patch version\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-minor\fR</div><div class='add'>+Prefer updating only to next minor version\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-major\fR</div><div class='add'>+Prefer updating to next major version (default)\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-strict\fR</div><div class='add'>+Do not allow any gem to be updated past latest \fB\-\-patch\fR | \fB\-\-minor\fR | \fB\-\-major\fR\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-conservative\fR</div><div class='add'>+Use bundle install conservative update behavior and do not allow indirect dependencies to be updated\.</div><div class='add'>+.</div><div class='add'>+.SH "UPDATING ALL GEMS"</div><div class='add'>+If you run \fBbundle update \-\-all\fR, bundler will ignore any previously installed gems and resolve all dependencies again based on the latest versions of all gems available in the sources\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Consider the following Gemfile(5):</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+source "https://rubygems\.org"</div><div class='add'>+</div><div class='add'>+gem "rails", "3\.0\.0\.rc"</div><div class='add'>+gem "nokogiri"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+When you run bundle install(1) \fIbundle\-install\.1\.html\fR the first time, bundler will resolve all of the dependencies, all the way down, and install what you need:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+Fetching gem metadata from https://rubygems\.org/\.\.\.\.\.\.\.\.\.</div><div class='add'>+Resolving dependencies\.\.\.</div><div class='add'>+Installing builder 2\.1\.2</div><div class='add'>+Installing abstract 1\.0\.0</div><div class='add'>+Installing rack 1\.2\.8</div><div class='add'>+Using bundler 1\.7\.6</div><div class='add'>+Installing rake 10\.4\.0</div><div class='add'>+Installing polyglot 0\.3\.5</div><div class='add'>+Installing mime\-types 1\.25\.1</div><div class='add'>+Installing i18n 0\.4\.2</div><div class='add'>+Installing mini_portile 0\.6\.1</div><div class='add'>+Installing tzinfo 0\.3\.42</div><div class='add'>+Installing rack\-mount 0\.6\.14</div><div class='add'>+Installing rack\-test 0\.5\.7</div><div class='add'>+Installing treetop 1\.4\.15</div><div class='add'>+Installing thor 0\.14\.6</div><div class='add'>+Installing activesupport 3\.0\.0\.rc</div><div class='add'>+Installing erubis 2\.6\.6</div><div class='add'>+Installing activemodel 3\.0\.0\.rc</div><div class='add'>+Installing arel 0\.4\.0</div><div class='add'>+Installing mail 2\.2\.20</div><div class='add'>+Installing activeresource 3\.0\.0\.rc</div><div class='add'>+Installing actionpack 3\.0\.0\.rc</div><div class='add'>+Installing activerecord 3\.0\.0\.rc</div><div class='add'>+Installing actionmailer 3\.0\.0\.rc</div><div class='add'>+Installing railties 3\.0\.0\.rc</div><div class='add'>+Installing rails 3\.0\.0\.rc</div><div class='add'>+Installing nokogiri 1\.6\.5</div><div class='add'>+</div><div class='add'>+Bundle complete! 2 Gemfile dependencies, 26 gems total\.</div><div class='add'>+Use `bundle show [gemname]` to see where a bundled gem is installed\.</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+As you can see, even though you have two gems in the Gemfile(5), your application needs 26 different gems in order to run\. Bundler remembers the exact versions it installed in \fBGemfile\.lock\fR\. The next time you run bundle install(1) \fIbundle\-install\.1\.html\fR, bundler skips the dependency resolution and installs the same gems as it installed last time\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+After checking in the \fBGemfile\.lock\fR into version control and cloning it on another machine, running bundle install(1) \fIbundle\-install\.1\.html\fR will \fIstill\fR install the gems that you installed last time\. You don\'t need to worry that a new release of \fBerubis\fR or \fBmail\fR changes the gems you use\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+However, from time to time, you might want to update the gems you are using to the newest versions that still match the gems in your Gemfile(5)\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+To do this, run \fBbundle update \-\-all\fR, which will ignore the \fBGemfile\.lock\fR, and resolve all the dependencies again\. Keep in mind that this process can result in a significantly different set of the 25 gems, based on the requirements of new gems that the gem authors released since the last time you ran \fBbundle update \-\-all\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "UPDATING A LIST OF GEMS"</div><div class='add'>+Sometimes, you want to update a single gem in the Gemfile(5), and leave the rest of the gems that you specified locked to the versions in the \fBGemfile\.lock\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For instance, in the scenario above, imagine that \fBnokogiri\fR releases version \fB1\.4\.4\fR, and you want to update it \fIwithout\fR updating Rails and all of its dependencies\. To do this, run \fBbundle update nokogiri\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Bundler will update \fBnokogiri\fR and any of its dependencies, but leave alone Rails and its dependencies\.</div><div class='add'>+.</div><div class='add'>+.SH "OVERLAPPING DEPENDENCIES"</div><div class='add'>+Sometimes, multiple gems declared in your Gemfile(5) are satisfied by the same second\-level dependency\. For instance, consider the case of \fBthin\fR and \fBrack\-perftools\-profiler\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+source "https://rubygems\.org"</div><div class='add'>+</div><div class='add'>+gem "thin"</div><div class='add'>+gem "rack\-perftools\-profiler"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The \fBthin\fR gem depends on \fBrack &gt;= 1\.0\fR, while \fBrack\-perftools\-profiler\fR depends on \fBrack ~&gt; 1\.0\fR\. If you run bundle install, you get:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+Fetching source index for https://rubygems\.org/</div><div class='add'>+Installing daemons (1\.1\.0)</div><div class='add'>+Installing eventmachine (0\.12\.10) with native extensions</div><div class='add'>+Installing open4 (1\.0\.1)</div><div class='add'>+Installing perftools\.rb (0\.4\.7) with native extensions</div><div class='add'>+Installing rack (1\.2\.1)</div><div class='add'>+Installing rack\-perftools_profiler (0\.0\.2)</div><div class='add'>+Installing thin (1\.2\.7) with native extensions</div><div class='add'>+Using bundler (1\.0\.0\.rc\.3)</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In this case, the two gems have their own set of dependencies, but they share \fBrack\fR in common\. If you run \fBbundle update thin\fR, bundler will update \fBdaemons\fR, \fBeventmachine\fR and \fBrack\fR, which are dependencies of \fBthin\fR, but not \fBopen4\fR or \fBperftools\.rb\fR, which are dependencies of \fBrack\-perftools_profiler\fR\. Note that \fBbundle update thin\fR will update \fBrack\fR even though it\'s \fIalso\fR a dependency of \fBrack\-perftools_profiler\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In short, by default, when you update a gem using \fBbundle update\fR, bundler will update all dependencies of that gem, including those that are also dependencies of another gem\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+To prevent updating indirect dependencies, prior to version 1\.14 the only option was the \fBCONSERVATIVE UPDATING\fR behavior in bundle install(1) \fIbundle\-install\.1\.html\fR:</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In this scenario, updating the \fBthin\fR version manually in the Gemfile(5), and then running bundle install(1) \fIbundle\-install\.1\.html\fR will only update \fBdaemons\fR and \fBeventmachine\fR, but not \fBrack\fR\. For more information, see the \fBCONSERVATIVE UPDATING\fR section of bundle install(1) \fIbundle\-install\.1\.html\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Starting with 1\.14, specifying the \fB\-\-conservative\fR option will also prevent indirect dependencies from being updated\.</div><div class='add'>+.</div><div class='add'>+.SH "PATCH LEVEL OPTIONS"</div><div class='add'>+Version 1\.14 introduced 4 patch\-level options that will influence how gem versions are resolved\. One of the following options can be used: \fB\-\-patch\fR, \fB\-\-minor\fR or \fB\-\-major\fR\. \fB\-\-strict\fR can be added to further influence resolution\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-patch\fR</div><div class='add'>+Prefer updating only to next patch version\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-minor\fR</div><div class='add'>+Prefer updating only to next minor version\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-major\fR</div><div class='add'>+Prefer updating to next major version (default)\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-strict\fR</div><div class='add'>+Do not allow any gem to be updated past latest \fB\-\-patch\fR | \fB\-\-minor\fR | \fB\-\-major\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+When Bundler is resolving what versions to use to satisfy declared requirements in the Gemfile or in parent gems, it looks up all available versions, filters out any versions that don\'t satisfy the requirement, and then, by default, sorts them from newest to oldest, considering them in that order\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Providing one of the patch level options (e\.g\. \fB\-\-patch\fR) changes the sort order of the satisfying versions, causing Bundler to consider the latest \fB\-\-patch\fR or \fB\-\-minor\fR version available before other versions\. Note that versions outside the stated patch level could still be resolved to if necessary to find a suitable dependency graph\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For example, if gem \'foo\' is locked at 1\.0\.2, with no gem requirement defined in the Gemfile, and versions 1\.0\.3, 1\.0\.4, 1\.1\.0, 1\.1\.1, 2\.0\.0 all exist, the default order of preference by default (\fB\-\-major\fR) will be "2\.0\.0, 1\.1\.1, 1\.1\.0, 1\.0\.4, 1\.0\.3, 1\.0\.2"\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If the \fB\-\-patch\fR option is used, the order of preference will change to "1\.0\.4, 1\.0\.3, 1\.0\.2, 1\.1\.1, 1\.1\.0, 2\.0\.0"\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If the \fB\-\-minor\fR option is used, the order of preference will change to "1\.1\.1, 1\.1\.0, 1\.0\.4, 1\.0\.3, 1\.0\.2, 2\.0\.0"\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Combining the \fB\-\-strict\fR option with any of the patch level options will remove any versions beyond the scope of the patch level option, to ensure that no gem is updated that far\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+To continue the previous example, if both \fB\-\-patch\fR and \fB\-\-strict\fR options are used, the available versions for resolution would be "1\.0\.4, 1\.0\.3, 1\.0\.2"\. If \fB\-\-minor\fR and \fB\-\-strict\fR are used, it would be "1\.1\.1, 1\.1\.0, 1\.0\.4, 1\.0\.3, 1\.0\.2"\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Gem requirements as defined in the Gemfile will still be the first determining factor for what versions are available\. If the gem requirement for \fBfoo\fR in the Gemfile is \'~&gt; 1\.0\', that will accomplish the same thing as providing the \fB\-\-minor\fR and \fB\-\-strict\fR options\.</div><div class='add'>+.</div><div class='add'>+.SH "PATCH LEVEL EXAMPLES"</div><div class='add'>+Given the following gem specifications:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+foo 1\.4\.3, requires: ~&gt; bar 2\.0</div><div class='add'>+foo 1\.4\.4, requires: ~&gt; bar 2\.0</div><div class='add'>+foo 1\.4\.5, requires: ~&gt; bar 2\.1</div><div class='add'>+foo 1\.5\.0, requires: ~&gt; bar 2\.1</div><div class='add'>+foo 1\.5\.1, requires: ~&gt; bar 3\.0</div><div class='add'>+bar with versions 2\.0\.3, 2\.0\.4, 2\.1\.0, 2\.1\.1, 3\.0\.0</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Gemfile:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem \'foo\'</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Gemfile\.lock:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+foo (1\.4\.3)</div><div class='add'>+  bar (~&gt; 2\.0)</div><div class='add'>+bar (2\.0\.3)</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Cases:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+#  Command Line                     Result</div><div class='add'>+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-</div><div class='add'>+1  bundle update \-\-patch            \'foo 1\.4\.5\', \'bar 2\.1\.1\'</div><div class='add'>+2  bundle update \-\-patch foo        \'foo 1\.4\.5\', \'bar 2\.1\.1\'</div><div class='add'>+3  bundle update \-\-minor            \'foo 1\.5\.1\', \'bar 3\.0\.0\'</div><div class='add'>+4  bundle update \-\-minor \-\-strict   \'foo 1\.5\.0\', \'bar 2\.1\.1\'</div><div class='add'>+5  bundle update \-\-patch \-\-strict   \'foo 1\.4\.4\', \'bar 2\.0\.4\'</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In case 1, bar is upgraded to 2\.1\.1, a minor version increase, because the dependency from foo 1\.4\.5 required it\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In case 2, only foo is requested to be unlocked, but bar is also allowed to move because it\'s not a declared dependency in the Gemfile\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In case 3, bar goes up a whole major release, because a minor increase is preferred now for foo, and when it goes to 1\.5\.1, it requires 3\.0\.0 of bar\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In case 4, foo is preferred up to a minor version, but 1\.5\.1 won\'t work because the \-\-strict flag removes bar 3\.0\.0 from consideration since it\'s a major increment\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In case 5, both foo and bar have any minor or major increments removed from consideration because of the \-\-strict flag, so the most they can move is up to 1\.4\.4 and 2\.0\.4\.</div><div class='add'>+.</div><div class='add'>+.SH "RECOMMENDED WORKFLOW"</div><div class='add'>+In general, when working with an application managed with bundler, you should use the following workflow:</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+After you create your Gemfile(5) for the first time, run</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+$ bundle install</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Check the resulting \fBGemfile\.lock\fR into version control</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+$ git add Gemfile\.lock</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+When checking out this repository on another development machine, run</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+$ bundle install</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+When checking out this repository on a deployment machine, run</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+$ bundle install \-\-deployment</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+After changing the Gemfile(5) to reflect a new or update dependency, run</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+$ bundle install</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Make sure to check the updated \fBGemfile\.lock\fR into version control</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+$ git add Gemfile\.lock</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+If bundle install(1) \fIbundle\-install\.1\.html\fR reports a conflict, manually update the specific gems that you changed in the Gemfile(5)</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+$ bundle update rails thin</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+If you want to update all the gems to the latest possible versions that still match the gems listed in the Gemfile(5), run</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+$ bundle update \-\-all</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-update.1.ronn b/lib/bundler/man/bundle-update.1.ronn<br/>new file mode 100644<br/>index 0000000000..fe500cdc96<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-update.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-update.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,351 @@</div><div class='add'>+bundle-update(1) -- Update your gems to the latest available versions</div><div class='add'>+=====================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle update` &lt;*gems&gt; [--all]</div><div class='add'>+                        [--group=NAME]</div><div class='add'>+                        [--source=NAME]</div><div class='add'>+                        [--local]</div><div class='add'>+                        [--ruby]</div><div class='add'>+                        [--bundler[=VERSION]]</div><div class='add'>+                        [--full-index]</div><div class='add'>+                        [--jobs=JOBS]</div><div class='add'>+                        [--quiet]</div><div class='add'>+                        [--patch|--minor|--major]</div><div class='add'>+                        [--redownload]</div><div class='add'>+                        [--strict]</div><div class='add'>+                        [--conservative]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Update the gems specified (all gems, if `--all` flag is used), ignoring</div><div class='add'>+the previously installed gems specified in the `Gemfile.lock`. In</div><div class='add'>+general, you should use [bundle install(1)](bundle-install.1.html) to install the same exact</div><div class='add'>+gems and versions across machines.</div><div class='add'>+</div><div class='add'>+You would use `bundle update` to explicitly update the version of a</div><div class='add'>+gem.</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--all`:</div><div class='add'>+  Update all gems specified in Gemfile.</div><div class='add'>+</div><div class='add'>+* `--group=&lt;name&gt;`, `-g=[&lt;name&gt;]`:</div><div class='add'>+  Only update the gems in the specified group. For instance, you can update all gems</div><div class='add'>+  in the development group with `bundle update --group development`. You can also</div><div class='add'>+  call `bundle update rails --group test` to update the rails gem and all gems in</div><div class='add'>+  the test group, for example.</div><div class='add'>+</div><div class='add'>+* `--source=&lt;name&gt;`:</div><div class='add'>+  The name of a `:git` or `:path` source used in the Gemfile(5). For</div><div class='add'>+  instance, with a `:git` source of `http://github.com/rails/rails.git`,</div><div class='add'>+  you would call `bundle update --source rails`</div><div class='add'>+</div><div class='add'>+* `--local`:</div><div class='add'>+  Do not attempt to fetch gems remotely and use the gem cache instead.</div><div class='add'>+</div><div class='add'>+* `--ruby`:</div><div class='add'>+  Update the locked version of Ruby to the current version of Ruby.</div><div class='add'>+</div><div class='add'>+* `--bundler`:</div><div class='add'>+  Update the locked version of bundler to the invoked bundler version.</div><div class='add'>+</div><div class='add'>+* `--full-index`:</div><div class='add'>+  Fall back to using the single-file index of all gems.</div><div class='add'>+</div><div class='add'>+* `--jobs=[&lt;number&gt;]`, `-j[&lt;number&gt;]`:</div><div class='add'>+  Specify the number of jobs to run in parallel. The default is the number of</div><div class='add'>+  available processors.</div><div class='add'>+</div><div class='add'>+* `--retry=[&lt;number&gt;]`:</div><div class='add'>+  Retry failed network or git requests for &lt;number&gt; times.</div><div class='add'>+</div><div class='add'>+* `--quiet`:</div><div class='add'>+  Only output warnings and errors.</div><div class='add'>+</div><div class='add'>+* `--redownload`:</div><div class='add'>+  Force downloading every gem.</div><div class='add'>+</div><div class='add'>+* `--patch`:</div><div class='add'>+  Prefer updating only to next patch version.</div><div class='add'>+</div><div class='add'>+* `--minor`:</div><div class='add'>+  Prefer updating only to next minor version.</div><div class='add'>+</div><div class='add'>+* `--major`:</div><div class='add'>+  Prefer updating to next major version (default).</div><div class='add'>+</div><div class='add'>+* `--strict`:</div><div class='add'>+  Do not allow any gem to be updated past latest `--patch` | `--minor` | `--major`.</div><div class='add'>+</div><div class='add'>+* `--conservative`:</div><div class='add'>+  Use bundle install conservative update behavior and do not allow indirect dependencies to be updated.</div><div class='add'>+</div><div class='add'>+## UPDATING ALL GEMS</div><div class='add'>+</div><div class='add'>+If you run `bundle update --all`, bundler will ignore</div><div class='add'>+any previously installed gems and resolve all dependencies again</div><div class='add'>+based on the latest versions of all gems available in the sources.</div><div class='add'>+</div><div class='add'>+Consider the following Gemfile(5):</div><div class='add'>+</div><div class='add'>+    source "https://rubygems.org"</div><div class='add'>+</div><div class='add'>+    gem "rails", "3.0.0.rc"</div><div class='add'>+    gem "nokogiri"</div><div class='add'>+</div><div class='add'>+When you run [bundle install(1)](bundle-install.1.html) the first time, bundler will resolve</div><div class='add'>+all of the dependencies, all the way down, and install what you need:</div><div class='add'>+</div><div class='add'>+    Fetching gem metadata from https://rubygems.org/.........</div><div class='add'>+    Resolving dependencies...</div><div class='add'>+    Installing builder 2.1.2</div><div class='add'>+    Installing abstract 1.0.0</div><div class='add'>+    Installing rack 1.2.8</div><div class='add'>+    Using bundler 1.7.6</div><div class='add'>+    Installing rake 10.4.0</div><div class='add'>+    Installing polyglot 0.3.5</div><div class='add'>+    Installing mime-types 1.25.1</div><div class='add'>+    Installing i18n 0.4.2</div><div class='add'>+    Installing mini_portile 0.6.1</div><div class='add'>+    Installing tzinfo 0.3.42</div><div class='add'>+    Installing rack-mount 0.6.14</div><div class='add'>+    Installing rack-test 0.5.7</div><div class='add'>+    Installing treetop 1.4.15</div><div class='add'>+    Installing thor 0.14.6</div><div class='add'>+    Installing activesupport 3.0.0.rc</div><div class='add'>+    Installing erubis 2.6.6</div><div class='add'>+    Installing activemodel 3.0.0.rc</div><div class='add'>+    Installing arel 0.4.0</div><div class='add'>+    Installing mail 2.2.20</div><div class='add'>+    Installing activeresource 3.0.0.rc</div><div class='add'>+    Installing actionpack 3.0.0.rc</div><div class='add'>+    Installing activerecord 3.0.0.rc</div><div class='add'>+    Installing actionmailer 3.0.0.rc</div><div class='add'>+    Installing railties 3.0.0.rc</div><div class='add'>+    Installing rails 3.0.0.rc</div><div class='add'>+    Installing nokogiri 1.6.5</div><div class='add'>+</div><div class='add'>+    Bundle complete! 2 Gemfile dependencies, 26 gems total.</div><div class='add'>+    Use `bundle show [gemname]` to see where a bundled gem is installed.</div><div class='add'>+</div><div class='add'>+As you can see, even though you have two gems in the Gemfile(5), your application</div><div class='add'>+needs 26 different gems in order to run. Bundler remembers the exact versions</div><div class='add'>+it installed in `Gemfile.lock`. The next time you run [bundle install(1)](bundle-install.1.html), bundler skips</div><div class='add'>+the dependency resolution and installs the same gems as it installed last time.</div><div class='add'>+</div><div class='add'>+After checking in the `Gemfile.lock` into version control and cloning it on another</div><div class='add'>+machine, running [bundle install(1)](bundle-install.1.html) will _still_ install the gems that you installed</div><div class='add'>+last time. You don't need to worry that a new release of `erubis` or `mail` changes</div><div class='add'>+the gems you use.</div><div class='add'>+</div><div class='add'>+However, from time to time, you might want to update the gems you are using to the</div><div class='add'>+newest versions that still match the gems in your Gemfile(5).</div><div class='add'>+</div><div class='add'>+To do this, run `bundle update --all`, which will ignore the `Gemfile.lock`, and resolve</div><div class='add'>+all the dependencies again. Keep in mind that this process can result in a significantly</div><div class='add'>+different set of the 25 gems, based on the requirements of new gems that the gem</div><div class='add'>+authors released since the last time you ran `bundle update --all`.</div><div class='add'>+</div><div class='add'>+## UPDATING A LIST OF GEMS</div><div class='add'>+</div><div class='add'>+Sometimes, you want to update a single gem in the Gemfile(5), and leave the rest of the</div><div class='add'>+gems that you specified locked to the versions in the `Gemfile.lock`.</div><div class='add'>+</div><div class='add'>+For instance, in the scenario above, imagine that `nokogiri` releases version `1.4.4`, and</div><div class='add'>+you want to update it _without_ updating Rails and all of its dependencies. To do this,</div><div class='add'>+run `bundle update nokogiri`.</div><div class='add'>+</div><div class='add'>+Bundler will update `nokogiri` and any of its dependencies, but leave alone Rails and</div><div class='add'>+its dependencies.</div><div class='add'>+</div><div class='add'>+## OVERLAPPING DEPENDENCIES</div><div class='add'>+</div><div class='add'>+Sometimes, multiple gems declared in your Gemfile(5) are satisfied by the same</div><div class='add'>+second-level dependency. For instance, consider the case of `thin` and</div><div class='add'>+`rack-perftools-profiler`.</div><div class='add'>+</div><div class='add'>+    source "https://rubygems.org"</div><div class='add'>+</div><div class='add'>+    gem "thin"</div><div class='add'>+    gem "rack-perftools-profiler"</div><div class='add'>+</div><div class='add'>+The `thin` gem depends on `rack &gt;= 1.0`, while `rack-perftools-profiler` depends</div><div class='add'>+on `rack ~&gt; 1.0`. If you run bundle install, you get:</div><div class='add'>+</div><div class='add'>+    Fetching source index for https://rubygems.org/</div><div class='add'>+    Installing daemons (1.1.0)</div><div class='add'>+    Installing eventmachine (0.12.10) with native extensions</div><div class='add'>+    Installing open4 (1.0.1)</div><div class='add'>+    Installing perftools.rb (0.4.7) with native extensions</div><div class='add'>+    Installing rack (1.2.1)</div><div class='add'>+    Installing rack-perftools_profiler (0.0.2)</div><div class='add'>+    Installing thin (1.2.7) with native extensions</div><div class='add'>+    Using bundler (1.0.0.rc.3)</div><div class='add'>+</div><div class='add'>+In this case, the two gems have their own set of dependencies, but they share</div><div class='add'>+`rack` in common. If you run `bundle update thin`, bundler will update `daemons`,</div><div class='add'>+`eventmachine` and `rack`, which are dependencies of `thin`, but not `open4` or</div><div class='add'>+`perftools.rb`, which are dependencies of `rack-perftools_profiler`. Note that</div><div class='add'>+`bundle update thin` will update `rack` even though it's _also_ a dependency of</div><div class='add'>+`rack-perftools_profiler`.</div><div class='add'>+</div><div class='add'>+In short, by default, when you update a gem using `bundle update`, bundler will</div><div class='add'>+update all dependencies of that gem, including those that are also dependencies</div><div class='add'>+of another gem.</div><div class='add'>+</div><div class='add'>+To prevent updating indirect dependencies, prior to version 1.14 the only option</div><div class='add'>+was the `CONSERVATIVE UPDATING` behavior in [bundle install(1)](bundle-install.1.html):</div><div class='add'>+</div><div class='add'>+In this scenario, updating the `thin` version manually in the Gemfile(5),</div><div class='add'>+and then running [bundle install(1)](bundle-install.1.html) will only update `daemons` and `eventmachine`,</div><div class='add'>+but not `rack`. For more information, see the `CONSERVATIVE UPDATING` section</div><div class='add'>+of [bundle install(1)](bundle-install.1.html).</div><div class='add'>+</div><div class='add'>+Starting with 1.14, specifying the `--conservative` option will also prevent indirect</div><div class='add'>+dependencies from being updated.</div><div class='add'>+</div><div class='add'>+## PATCH LEVEL OPTIONS</div><div class='add'>+</div><div class='add'>+Version 1.14 introduced 4 patch-level options that will influence how gem</div><div class='add'>+versions are resolved. One of the following options can be used: `--patch`,</div><div class='add'>+`--minor` or `--major`. `--strict` can be added to further influence resolution.</div><div class='add'>+</div><div class='add'>+* `--patch`:</div><div class='add'>+  Prefer updating only to next patch version.</div><div class='add'>+</div><div class='add'>+* `--minor`:</div><div class='add'>+  Prefer updating only to next minor version.</div><div class='add'>+</div><div class='add'>+* `--major`:</div><div class='add'>+  Prefer updating to next major version (default).</div><div class='add'>+</div><div class='add'>+* `--strict`:</div><div class='add'>+  Do not allow any gem to be updated past latest `--patch` | `--minor` | `--major`.</div><div class='add'>+</div><div class='add'>+When Bundler is resolving what versions to use to satisfy declared</div><div class='add'>+requirements in the Gemfile or in parent gems, it looks up all</div><div class='add'>+available versions, filters out any versions that don't satisfy</div><div class='add'>+the requirement, and then, by default, sorts them from newest to</div><div class='add'>+oldest, considering them in that order.</div><div class='add'>+</div><div class='add'>+Providing one of the patch level options (e.g. `--patch`) changes the</div><div class='add'>+sort order of the satisfying versions, causing Bundler to consider the</div><div class='add'>+latest `--patch` or `--minor` version available before other versions.</div><div class='add'>+Note that versions outside the stated patch level could still be</div><div class='add'>+resolved to if necessary to find a suitable dependency graph.</div><div class='add'>+</div><div class='add'>+For example, if gem 'foo' is locked at 1.0.2, with no gem requirement</div><div class='add'>+defined in the Gemfile, and versions 1.0.3, 1.0.4, 1.1.0, 1.1.1, 2.0.0</div><div class='add'>+all exist, the default order of preference by default (`--major`) will</div><div class='add'>+be "2.0.0, 1.1.1, 1.1.0, 1.0.4, 1.0.3, 1.0.2".</div><div class='add'>+</div><div class='add'>+If the `--patch` option is used, the order of preference will change to</div><div class='add'>+"1.0.4, 1.0.3, 1.0.2, 1.1.1, 1.1.0, 2.0.0".</div><div class='add'>+</div><div class='add'>+If the `--minor` option is used, the order of preference will change to</div><div class='add'>+"1.1.1, 1.1.0, 1.0.4, 1.0.3, 1.0.2, 2.0.0".</div><div class='add'>+</div><div class='add'>+Combining the `--strict` option with any of the patch level options</div><div class='add'>+will remove any versions beyond the scope of the patch level option,</div><div class='add'>+to ensure that no gem is updated that far.</div><div class='add'>+</div><div class='add'>+To continue the previous example, if both `--patch` and `--strict`</div><div class='add'>+options are used, the available versions for resolution would be</div><div class='add'>+"1.0.4, 1.0.3, 1.0.2". If `--minor` and `--strict` are used, it would</div><div class='add'>+be "1.1.1, 1.1.0, 1.0.4, 1.0.3, 1.0.2".</div><div class='add'>+</div><div class='add'>+Gem requirements as defined in the Gemfile will still be the first</div><div class='add'>+determining factor for what versions are available. If the gem</div><div class='add'>+requirement for `foo` in the Gemfile is '~&gt; 1.0', that will accomplish</div><div class='add'>+the same thing as providing the `--minor` and `--strict` options.</div><div class='add'>+</div><div class='add'>+## PATCH LEVEL EXAMPLES</div><div class='add'>+</div><div class='add'>+Given the following gem specifications:</div><div class='add'>+</div><div class='add'>+    foo 1.4.3, requires: ~&gt; bar 2.0</div><div class='add'>+    foo 1.4.4, requires: ~&gt; bar 2.0</div><div class='add'>+    foo 1.4.5, requires: ~&gt; bar 2.1</div><div class='add'>+    foo 1.5.0, requires: ~&gt; bar 2.1</div><div class='add'>+    foo 1.5.1, requires: ~&gt; bar 3.0</div><div class='add'>+    bar with versions 2.0.3, 2.0.4, 2.1.0, 2.1.1, 3.0.0</div><div class='add'>+</div><div class='add'>+Gemfile:</div><div class='add'>+</div><div class='add'>+    gem 'foo'</div><div class='add'>+</div><div class='add'>+Gemfile.lock:</div><div class='add'>+</div><div class='add'>+    foo (1.4.3)</div><div class='add'>+      bar (~&gt; 2.0)</div><div class='add'>+    bar (2.0.3)</div><div class='add'>+</div><div class='add'>+Cases:</div><div class='add'>+</div><div class='add'>+    #  Command Line                     Result</div><div class='add'>+    ------------------------------------------------------------</div><div class='add'>+    1  bundle update --patch            'foo 1.4.5', 'bar 2.1.1'</div><div class='add'>+    2  bundle update --patch foo        'foo 1.4.5', 'bar 2.1.1'</div><div class='add'>+    3  bundle update --minor            'foo 1.5.1', 'bar 3.0.0'</div><div class='add'>+    4  bundle update --minor --strict   'foo 1.5.0', 'bar 2.1.1'</div><div class='add'>+    5  bundle update --patch --strict   'foo 1.4.4', 'bar 2.0.4'</div><div class='add'>+</div><div class='add'>+In case 1, bar is upgraded to 2.1.1, a minor version increase, because</div><div class='add'>+the dependency from foo 1.4.5 required it.</div><div class='add'>+</div><div class='add'>+In case 2, only foo is requested to be unlocked, but bar is also</div><div class='add'>+allowed to move because it's not a declared dependency in the Gemfile.</div><div class='add'>+</div><div class='add'>+In case 3, bar goes up a whole major release, because a minor increase</div><div class='add'>+is preferred now for foo, and when it goes to 1.5.1, it requires 3.0.0</div><div class='add'>+of bar.</div><div class='add'>+</div><div class='add'>+In case 4, foo is preferred up to a minor version, but 1.5.1 won't work</div><div class='add'>+because the --strict flag removes bar 3.0.0 from consideration since</div><div class='add'>+it's a major increment.</div><div class='add'>+</div><div class='add'>+In case 5, both foo and bar have any minor or major increments removed</div><div class='add'>+from consideration because of the --strict flag, so the most they can</div><div class='add'>+move is up to 1.4.4 and 2.0.4.</div><div class='add'>+</div><div class='add'>+## RECOMMENDED WORKFLOW</div><div class='add'>+</div><div class='add'>+In general, when working with an application managed with bundler, you should</div><div class='add'>+use the following workflow:</div><div class='add'>+</div><div class='add'>+* After you create your Gemfile(5) for the first time, run</div><div class='add'>+</div><div class='add'>+    $ bundle install</div><div class='add'>+</div><div class='add'>+* Check the resulting `Gemfile.lock` into version control</div><div class='add'>+</div><div class='add'>+    $ git add Gemfile.lock</div><div class='add'>+</div><div class='add'>+* When checking out this repository on another development machine, run</div><div class='add'>+</div><div class='add'>+    $ bundle install</div><div class='add'>+</div><div class='add'>+* When checking out this repository on a deployment machine, run</div><div class='add'>+</div><div class='add'>+    $ bundle install --deployment</div><div class='add'>+</div><div class='add'>+* After changing the Gemfile(5) to reflect a new or update dependency, run</div><div class='add'>+</div><div class='add'>+    $ bundle install</div><div class='add'>+</div><div class='add'>+* Make sure to check the updated `Gemfile.lock` into version control</div><div class='add'>+</div><div class='add'>+    $ git add Gemfile.lock</div><div class='add'>+</div><div class='add'>+* If [bundle install(1)](bundle-install.1.html) reports a conflict, manually update the specific</div><div class='add'>+  gems that you changed in the Gemfile(5)</div><div class='add'>+</div><div class='add'>+    $ bundle update rails thin</div><div class='add'>+</div><div class='add'>+* If you want to update all the gems to the latest possible versions that</div><div class='add'>+  still match the gems listed in the Gemfile(5), run</div><div class='add'>+</div><div class='add'>+    $ bundle update --all</div><div class='head'>diff --git a/lib/bundler/man/bundle-version.1 b/lib/bundler/man/bundle-version.1<br/>new file mode 100644<br/>index 0000000000..5e3ed44600<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-version.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-version.1</a></div><div class='hunk'>@@ -0,0 +1,35 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-VERSION" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-version\fR \- Prints Bundler version information</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle version\fR</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Prints Bundler version information\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+No options\.</div><div class='add'>+.</div><div class='add'>+.SH "EXAMPLE"</div><div class='add'>+Print the version of Bundler with build date and commit hash of the in the Git source\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle version</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+shows \fBBundler version 2\.3\.21 (2022\-08\-24 commit d54be5fdd8)\fR for example\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+cf\. \fBbundle \-\-version\fR shows \fBBundler version 2\.3\.21\fR\.</div><div class='head'>diff --git a/lib/bundler/man/bundle-version.1.ronn b/lib/bundler/man/bundle-version.1.ronn<br/>new file mode 100644<br/>index 0000000000..46c6f0b30a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-version.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-version.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+bundle-version(1) -- Prints Bundler version information</div><div class='add'>+=======================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle version`</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Prints Bundler version information.</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+No options.</div><div class='add'>+</div><div class='add'>+## EXAMPLE</div><div class='add'>+</div><div class='add'>+Print the version of Bundler with build date and commit hash of the in the Git source.</div><div class='add'>+</div><div class='add'>+    bundle version</div><div class='add'>+</div><div class='add'>+shows `Bundler version 2.3.21 (2022-08-24 commit d54be5fdd8)` for example.</div><div class='add'>+</div><div class='add'>+cf. `bundle --version` shows `Bundler version 2.3.21`.</div><div class='head'>diff --git a/lib/bundler/man/bundle-viz.1 b/lib/bundler/man/bundle-viz.1<br/>new file mode 100644<br/>index 0000000000..d5330ec754<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-viz.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-viz.1</a></div><div class='hunk'>@@ -0,0 +1,42 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE\-VIZ" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle viz\fR [\-\-file=FILE] [\-\-format=FORMAT] [\-\-requirements] [\-\-version] [\-\-without=GROUP GROUP]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+\fBviz\fR generates a PNG file of the current \fBGemfile(5)\fR as a dependency graph\. \fBviz\fR requires the ruby\-graphviz gem (and its dependencies)\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The associated gems must also be installed via \fBbundle install(1)\fR \fIbundle\-install\.1\.html\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+\fBviz\fR command was deprecated in Bundler 2\.2\. Use bundler\-graph plugin \fIhttps://github\.com/rubygems/bundler\-graph\fR instead\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-file\fR, \fB\-f\fR</div><div class='add'>+The name to use for the generated file\. See \fB\-\-format\fR option</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-format\fR, \fB\-F\fR</div><div class='add'>+This is output format option\. Supported format is png, jpg, svg, dot \.\.\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-requirements\fR, \fB\-R\fR</div><div class='add'>+Set to show the version of each required dependency\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-version\fR, \fB\-v\fR</div><div class='add'>+Set to show each gem version\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-without\fR, \fB\-W\fR</div><div class='add'>+Exclude gems that are part of the specified named group\.</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle-viz.1.ronn b/lib/bundler/man/bundle-viz.1.ronn<br/>new file mode 100644<br/>index 0000000000..f220256943<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle-viz.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle-viz.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+bundle-viz(1) -- Generates a visual dependency graph for your Gemfile</div><div class='add'>+=====================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle viz` [--file=FILE]</div><div class='add'>+             [--format=FORMAT]</div><div class='add'>+             [--requirements]</div><div class='add'>+             [--version]</div><div class='add'>+             [--without=GROUP GROUP]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+`viz` generates a PNG file of the current `Gemfile(5)` as a dependency graph.</div><div class='add'>+`viz` requires the ruby-graphviz gem (and its dependencies).</div><div class='add'>+</div><div class='add'>+The associated gems must also be installed via [`bundle install(1)`](bundle-install.1.html).</div><div class='add'>+</div><div class='add'>+`viz` command was deprecated in Bundler 2.2. Use [bundler-graph plugin](https://github.com/rubygems/bundler-graph) instead.</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--file`, `-f`:</div><div class='add'>+  The name to use for the generated file. See `--format` option</div><div class='add'>+* `--format`, `-F`:</div><div class='add'>+  This is output format option. Supported format is png, jpg, svg, dot ...</div><div class='add'>+* `--requirements`, `-R`:</div><div class='add'>+  Set to show the version of each required dependency.</div><div class='add'>+* `--version`, `-v`:</div><div class='add'>+  Set to show each gem version.</div><div class='add'>+* `--without`, `-W`:</div><div class='add'>+  Exclude gems that are part of the specified named group.</div><div class='head'>diff --git a/lib/bundler/man/bundle.1 b/lib/bundler/man/bundle.1<br/>new file mode 100644<br/>index 0000000000..99c65a72b5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle.1?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle.1</a></div><div class='hunk'>@@ -0,0 +1,141 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "BUNDLE" "1" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBbundle\fR \- Ruby Dependency Management</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+\fBbundle\fR COMMAND [\-\-no\-color] [\-\-verbose] [ARGS]</div><div class='add'>+.</div><div class='add'>+.SH "DESCRIPTION"</div><div class='add'>+Bundler manages an \fBapplication\'s dependencies\fR through its entire life across many machines systematically and repeatably\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+See the bundler website \fIhttps://bundler\.io\fR for information on getting started, and Gemfile(5) for more information on the \fBGemfile\fR format\.</div><div class='add'>+.</div><div class='add'>+.SH "OPTIONS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-no\-color\fR</div><div class='add'>+Print all output without color</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-retry\fR, \fB\-r\fR</div><div class='add'>+Specify the number of times you wish to attempt network commands</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fB\-\-verbose\fR, \fB\-V\fR</div><div class='add'>+Print out additional logging information</div><div class='add'>+.</div><div class='add'>+.SH "BUNDLE COMMANDS"</div><div class='add'>+We divide \fBbundle\fR subcommands into primary commands and utilities:</div><div class='add'>+.</div><div class='add'>+.SH "PRIMARY COMMANDS"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle install(1)\fR \fIbundle\-install\.1\.html\fR</div><div class='add'>+Install the gems specified by the \fBGemfile\fR or \fBGemfile\.lock\fR</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle update(1)\fR \fIbundle\-update\.1\.html\fR</div><div class='add'>+Update dependencies to their latest versions</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle cache(1)\fR \fIbundle\-cache\.1\.html\fR</div><div class='add'>+Package the \.gem files required by your application into the \fBvendor/cache\fR directory (aliases: \fBbundle package\fR, \fBbundle pack\fR)</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle exec(1)\fR \fIbundle\-exec\.1\.html\fR</div><div class='add'>+Execute a script in the current bundle</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle config(1)\fR \fIbundle\-config\.1\.html\fR</div><div class='add'>+Specify and read configuration options for Bundler</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle help(1)\fR \fIbundle\-help\.1\.html\fR</div><div class='add'>+Display detailed help for each subcommand</div><div class='add'>+.</div><div class='add'>+.SH "UTILITIES"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle add(1)\fR \fIbundle\-add\.1\.html\fR</div><div class='add'>+Add the named gem to the Gemfile and run \fBbundle install\fR</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle binstubs(1)\fR \fIbundle\-binstubs\.1\.html\fR</div><div class='add'>+Generate binstubs for executables in a gem</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle check(1)\fR \fIbundle\-check\.1\.html\fR</div><div class='add'>+Determine whether the requirements for your application are installed and available to Bundler</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle show(1)\fR \fIbundle\-show\.1\.html\fR</div><div class='add'>+Show the source location of a particular gem in the bundle</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle outdated(1)\fR \fIbundle\-outdated\.1\.html\fR</div><div class='add'>+Show all of the outdated gems in the current bundle</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle console(1)\fR (deprecated)</div><div class='add'>+Start an IRB session in the current bundle</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle open(1)\fR \fIbundle\-open\.1\.html\fR</div><div class='add'>+Open an installed gem in the editor</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle lock(1)\fR \fIbundle\-lock\.1\.html\fR</div><div class='add'>+Generate a lockfile for your dependencies</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle viz(1)\fR \fIbundle\-viz\.1\.html\fR (deprecated)</div><div class='add'>+Generate a visual representation of your dependencies</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle init(1)\fR \fIbundle\-init\.1\.html\fR</div><div class='add'>+Generate a simple \fBGemfile\fR, placed in the current directory</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle gem(1)\fR \fIbundle\-gem\.1\.html\fR</div><div class='add'>+Create a simple gem, suitable for development with Bundler</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle platform(1)\fR \fIbundle\-platform\.1\.html\fR</div><div class='add'>+Display platform compatibility information</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle clean(1)\fR \fIbundle\-clean\.1\.html\fR</div><div class='add'>+Clean up unused gems in your Bundler directory</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle doctor(1)\fR \fIbundle\-doctor\.1\.html\fR</div><div class='add'>+Display warnings about common problems</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle remove(1)\fR \fIbundle\-remove\.1\.html\fR</div><div class='add'>+Removes gems from the Gemfile</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle plugin(1)\fR \fIbundle\-plugin\.1\.html\fR</div><div class='add'>+Manage Bundler plugins</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbundle version(1)\fR \fIbundle\-version\.1\.html\fR</div><div class='add'>+Prints Bundler version information</div><div class='add'>+.</div><div class='add'>+.SH "PLUGINS"</div><div class='add'>+When running a command that isn\'t listed in PRIMARY COMMANDS or UTILITIES, Bundler will try to find an executable on your path named \fBbundler\-&lt;command&gt;\fR and execute it, passing down any extra arguments to it\.</div><div class='add'>+.</div><div class='add'>+.SH "OBSOLETE"</div><div class='add'>+These commands are obsolete and should no longer be used:</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+\fBbundle inject(1)\fR</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/bundle.1.ronn b/lib/bundler/man/bundle.1.ronn<br/>new file mode 100644<br/>index 0000000000..8245effabd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/bundle.1.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/bundle.1.ronn</a></div><div class='hunk'>@@ -0,0 +1,116 @@</div><div class='add'>+bundle(1) -- Ruby Dependency Management</div><div class='add'>+=======================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+`bundle` COMMAND [--no-color] [--verbose] [ARGS]</div><div class='add'>+</div><div class='add'>+## DESCRIPTION</div><div class='add'>+</div><div class='add'>+Bundler manages an `application's dependencies` through its entire life</div><div class='add'>+across many machines systematically and repeatably.</div><div class='add'>+</div><div class='add'>+See [the bundler website](https://bundler.io) for information on getting</div><div class='add'>+started, and Gemfile(5) for more information on the `Gemfile` format.</div><div class='add'>+</div><div class='add'>+## OPTIONS</div><div class='add'>+</div><div class='add'>+* `--no-color`:</div><div class='add'>+  Print all output without color</div><div class='add'>+</div><div class='add'>+* `--retry`, `-r`:</div><div class='add'>+  Specify the number of times you wish to attempt network commands</div><div class='add'>+</div><div class='add'>+* `--verbose`, `-V`:</div><div class='add'>+  Print out additional logging information</div><div class='add'>+</div><div class='add'>+## BUNDLE COMMANDS</div><div class='add'>+</div><div class='add'>+We divide `bundle` subcommands into primary commands and utilities:</div><div class='add'>+</div><div class='add'>+## PRIMARY COMMANDS</div><div class='add'>+</div><div class='add'>+* [`bundle install(1)`](bundle-install.1.html):</div><div class='add'>+  Install the gems specified by the `Gemfile` or `Gemfile.lock`</div><div class='add'>+</div><div class='add'>+* [`bundle update(1)`](bundle-update.1.html):</div><div class='add'>+  Update dependencies to their latest versions</div><div class='add'>+</div><div class='add'>+* [`bundle cache(1)`](bundle-cache.1.html):</div><div class='add'>+  Package the .gem files required by your application into the</div><div class='add'>+  `vendor/cache` directory (aliases: `bundle package`, `bundle pack`)</div><div class='add'>+</div><div class='add'>+* [`bundle exec(1)`](bundle-exec.1.html):</div><div class='add'>+  Execute a script in the current bundle</div><div class='add'>+</div><div class='add'>+* [`bundle config(1)`](bundle-config.1.html):</div><div class='add'>+  Specify and read configuration options for Bundler</div><div class='add'>+</div><div class='add'>+* [`bundle help(1)`](bundle-help.1.html):</div><div class='add'>+  Display detailed help for each subcommand</div><div class='add'>+</div><div class='add'>+## UTILITIES</div><div class='add'>+</div><div class='add'>+* [`bundle add(1)`](bundle-add.1.html):</div><div class='add'>+  Add the named gem to the Gemfile and run `bundle install`</div><div class='add'>+</div><div class='add'>+* [`bundle binstubs(1)`](bundle-binstubs.1.html):</div><div class='add'>+  Generate binstubs for executables in a gem</div><div class='add'>+</div><div class='add'>+* [`bundle check(1)`](bundle-check.1.html):</div><div class='add'>+  Determine whether the requirements for your application are installed</div><div class='add'>+  and available to Bundler</div><div class='add'>+</div><div class='add'>+* [`bundle show(1)`](bundle-show.1.html):</div><div class='add'>+  Show the source location of a particular gem in the bundle</div><div class='add'>+</div><div class='add'>+* [`bundle outdated(1)`](bundle-outdated.1.html):</div><div class='add'>+  Show all of the outdated gems in the current bundle</div><div class='add'>+</div><div class='add'>+* `bundle console(1)` (deprecated):</div><div class='add'>+  Start an IRB session in the current bundle</div><div class='add'>+</div><div class='add'>+* [`bundle open(1)`](bundle-open.1.html):</div><div class='add'>+  Open an installed gem in the editor</div><div class='add'>+</div><div class='add'>+* [`bundle lock(1)`](bundle-lock.1.html):</div><div class='add'>+  Generate a lockfile for your dependencies</div><div class='add'>+</div><div class='add'>+* [`bundle viz(1)`](bundle-viz.1.html) (deprecated):</div><div class='add'>+  Generate a visual representation of your dependencies</div><div class='add'>+</div><div class='add'>+* [`bundle init(1)`](bundle-init.1.html):</div><div class='add'>+  Generate a simple `Gemfile`, placed in the current directory</div><div class='add'>+</div><div class='add'>+* [`bundle gem(1)`](bundle-gem.1.html):</div><div class='add'>+  Create a simple gem, suitable for development with Bundler</div><div class='add'>+</div><div class='add'>+* [`bundle platform(1)`](bundle-platform.1.html):</div><div class='add'>+  Display platform compatibility information</div><div class='add'>+</div><div class='add'>+* [`bundle clean(1)`](bundle-clean.1.html):</div><div class='add'>+  Clean up unused gems in your Bundler directory</div><div class='add'>+</div><div class='add'>+* [`bundle doctor(1)`](bundle-doctor.1.html):</div><div class='add'>+  Display warnings about common problems</div><div class='add'>+</div><div class='add'>+* [`bundle remove(1)`](bundle-remove.1.html):</div><div class='add'>+  Removes gems from the Gemfile</div><div class='add'>+</div><div class='add'>+* [`bundle plugin(1)`](bundle-plugin.1.html):</div><div class='add'>+  Manage Bundler plugins</div><div class='add'>+</div><div class='add'>+* [`bundle version(1)`](bundle-version.1.html):</div><div class='add'>+  Prints Bundler version information</div><div class='add'>+</div><div class='add'>+## PLUGINS</div><div class='add'>+</div><div class='add'>+When running a command that isn't listed in PRIMARY COMMANDS or UTILITIES,</div><div class='add'>+Bundler will try to find an executable on your path named `bundler-&lt;command&gt;`</div><div class='add'>+and execute it, passing down any extra arguments to it.</div><div class='add'>+</div><div class='add'>+## OBSOLETE</div><div class='add'>+</div><div class='add'>+These commands are obsolete and should no longer be used:</div><div class='add'>+</div><div class='add'>+* `bundle inject(1)`</div><div class='head'>diff --git a/lib/bundler/man/gemfile.5 b/lib/bundler/man/gemfile.5<br/>new file mode 100644<br/>index 0000000000..352fa0f545<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/gemfile.5?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/gemfile.5</a></div><div class='hunk'>@@ -0,0 +1,736 @@</div><div class='add'>+.\" generated with Ronn/v0.7.3</div><div class='add'>+.\" http://github.com/rtomayko/ronn/tree/0.7.3</div><div class='add'>+.</div><div class='add'>+.TH "GEMFILE" "5" "August 2023" "" ""</div><div class='add'>+.</div><div class='add'>+.SH "NAME"</div><div class='add'>+\fBGemfile\fR \- A format for describing gem dependencies for Ruby programs</div><div class='add'>+.</div><div class='add'>+.SH "SYNOPSIS"</div><div class='add'>+A \fBGemfile\fR describes the gem dependencies required to execute associated Ruby code\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Place the \fBGemfile\fR in the root of the directory containing the associated code\. For instance, in a Rails application, place the \fBGemfile\fR in the same directory as the \fBRakefile\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "SYNTAX"</div><div class='add'>+A \fBGemfile\fR is evaluated as Ruby code, in a context which makes available a number of methods used to describe the gem requirements\.</div><div class='add'>+.</div><div class='add'>+.SH "GLOBAL SOURCE"</div><div class='add'>+At the top of the \fBGemfile\fR, add a single line for the \fBRubyGems\fR source that contains the gems listed in the \fBGemfile\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+source "https://rubygems\.org"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+You can add only one global source\. In Bundler 1\.13, adding multiple global sources was deprecated\. The \fBsource\fR \fBMUST\fR be a valid RubyGems repository\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+To use more than one source of RubyGems, you should use \fI\fBsource\fR block\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+A source is checked for gems following the heuristics described in \fISOURCE PRIORITY\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+\fBNote about a behavior of the feature deprecated in Bundler 1\.13\fR: If a gem is found in more than one global source, Bundler will print a warning after installing the gem indicating which source was used, and listing the other sources where the gem is available\. A specific source can be selected for gems that need to use a non\-standard repository, suppressing this warning, by using the \fI\fB:source\fR option\fR or \fBsource\fR block\.</div><div class='add'>+.</div><div class='add'>+.SS "CREDENTIALS"</div><div class='add'>+Some gem sources require a username and password\. Use bundle config(1) \fIbundle\-config\.1\.html\fR to set the username and password for any of the sources that need it\. The command must be run once on each computer that will install the Gemfile, but this keeps the credentials from being stored in plain text in version control\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config gems\.example\.com user:password</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+For some sources, like a company Gemfury account, it may be easier to include the credentials in the Gemfile as part of the source URL\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+source "https://user:password@gems\.example\.com"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Credentials in the source URL will take precedence over credentials set using \fBconfig\fR\.</div><div class='add'>+.</div><div class='add'>+.SH "RUBY"</div><div class='add'>+If your application requires a specific Ruby version or engine, specify your requirements using the \fBruby\fR method, with the following arguments\. All parameters are \fBOPTIONAL\fR unless otherwise specified\.</div><div class='add'>+.</div><div class='add'>+.SS "VERSION (required)"</div><div class='add'>+The version of Ruby that your application requires\. If your application requires an alternate Ruby engine, such as JRuby, TruffleRuby, etc\., this should be the Ruby version that the engine is compatible with\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+ruby "3\.1\.2"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If you wish to derive your Ruby version from a version file (ie \.ruby\-version), you can use the \fBfile\fR option instead\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+ruby file: "\.ruby\-version"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SS "ENGINE"</div><div class='add'>+Each application \fImay\fR specify a Ruby engine\. If an engine is specified, an engine version \fImust\fR also be specified\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+What exactly is an Engine? \- A Ruby engine is an implementation of the Ruby language\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+For background: the reference or original implementation of the Ruby programming language is called Matz\'s Ruby Interpreter \fIhttps://en\.wikipedia\.org/wiki/Ruby_MRI\fR, or MRI for short\. This is named after Ruby creator Yukihiro Matsumoto, also known as Matz\. MRI is also known as CRuby, because it is written in C\. MRI is the most widely used Ruby engine\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+Other implementations \fIhttps://www\.ruby\-lang\.org/en/about/\fR of Ruby exist\. Some of the more well\-known implementations include JRuby \fIhttp://jruby\.org/\fR and TruffleRuby \fIhttps://www\.graalvm\.org/ruby/\fR\. Rubinius is an alternative implementation of Ruby written in Ruby\. JRuby is an implementation of Ruby on the JVM, short for Java Virtual Machine\. TruffleRuby is a Ruby implementation on the GraalVM, a language toolkit built on the JVM\.</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SS "ENGINE VERSION"</div><div class='add'>+Each application \fImay\fR specify a Ruby engine version\. If an engine version is specified, an engine \fImust\fR also be specified\. If the engine is "ruby" the engine version specified \fImust\fR match the Ruby version\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+ruby "2\.6\.8", engine: "jruby", engine_version: "9\.3\.8\.0"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SS "PATCHLEVEL"</div><div class='add'>+Each application \fImay\fR specify a Ruby patchlevel\. Specifying the patchlevel has been meaningless since Ruby 2\.1\.0 was released as the patchlevel is now uniquely determined by a combination of major, minor, and teeny version numbers\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This option was implemented in Bundler 1\.4\.0 for Ruby 2\.0 or earlier\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+ruby "3\.1\.2", patchlevel: "20"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SH "GEMS"</div><div class='add'>+Specify gem requirements using the \fBgem\fR method, with the following arguments\. All parameters are \fBOPTIONAL\fR unless otherwise specified\.</div><div class='add'>+.</div><div class='add'>+.SS "NAME (required)"</div><div class='add'>+For each gem requirement, list a single \fIgem\fR line\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "nokogiri"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SS "VERSION"</div><div class='add'>+Each \fIgem\fR \fBMAY\fR have one or more version specifiers\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "nokogiri", "&gt;= 1\.4\.2"</div><div class='add'>+gem "RedCloth", "&gt;= 4\.1\.0", "&lt; 4\.2\.0"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SS "REQUIRE AS"</div><div class='add'>+Each \fIgem\fR \fBMAY\fR specify files that should be used when autorequiring via \fBBundler\.require\fR\. You may pass an array with multiple files or \fBtrue\fR if the file you want \fBrequired\fR has the same name as \fIgem\fR or \fBfalse\fR to prevent any file from being autorequired\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "redis", require: ["redis/connection/hiredis", "redis"]</div><div class='add'>+gem "webmock", require: false</div><div class='add'>+gem "byebug", require: true</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The argument defaults to the name of the gem\. For example, these are identical:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "nokogiri"</div><div class='add'>+gem "nokogiri", require: "nokogiri"</div><div class='add'>+gem "nokogiri", require: true</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SS "GROUPS"</div><div class='add'>+Each \fIgem\fR \fBMAY\fR specify membership in one or more groups\. Any \fIgem\fR that does not specify membership in any group is placed in the \fBdefault\fR group\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "rspec", group: :test</div><div class='add'>+gem "wirble", groups: [:development, :test]</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The Bundler runtime allows its two main methods, \fBBundler\.setup\fR and \fBBundler\.require\fR, to limit their impact to particular groups\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+# setup adds gems to Ruby\'s load path</div><div class='add'>+Bundler\.setup                    # defaults to all groups</div><div class='add'>+require "bundler/setup"          # same as Bundler\.setup</div><div class='add'>+Bundler\.setup(:default)          # only set up the _default_ group</div><div class='add'>+Bundler\.setup(:test)             # only set up the _test_ group (but `not` _default_)</div><div class='add'>+Bundler\.setup(:default, :test)   # set up the _default_ and _test_ groups, but no others</div><div class='add'>+</div><div class='add'>+# require requires all of the gems in the specified groups</div><div class='add'>+Bundler\.require                  # defaults to the _default_ group</div><div class='add'>+Bundler\.require(:default)        # identical</div><div class='add'>+Bundler\.require(:default, :test) # requires the _default_ and _test_ groups</div><div class='add'>+Bundler\.require(:test)           # requires the _test_ group</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The Bundler CLI allows you to specify a list of groups whose gems \fBbundle install\fR should not install with the \fBwithout\fR configuration\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+To specify multiple groups to ignore, specify a list of groups separated by spaces\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+bundle config set \-\-local without test</div><div class='add'>+bundle config set \-\-local without development test</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Also, calling \fBBundler\.setup\fR with no parameters, or calling \fBrequire "bundler/setup"\fR will setup all groups except for the ones you excluded via \fB\-\-without\fR (since they are not available)\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Note that on \fBbundle install\fR, bundler downloads and evaluates all gems, in order to create a single canonical list of all of the required gems and their dependencies\. This means that you cannot list different versions of the same gems in different groups\. For more details, see Understanding Bundler \fIhttps://bundler\.io/rationale\.html\fR\.</div><div class='add'>+.</div><div class='add'>+.SS "PLATFORMS"</div><div class='add'>+If a gem should only be used in a particular platform or set of platforms, you can specify them\. Platforms are essentially identical to groups, except that you do not need to use the \fB\-\-without\fR install\-time flag to exclude groups of gems for other platforms\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+There are a number of \fBGemfile\fR platforms:</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBruby\fR</div><div class='add'>+C Ruby (MRI), Rubinius, or TruffleRuby, but not Windows</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBmri\fR</div><div class='add'>+C Ruby (MRI) only, but not Windows</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBwindows\fR</div><div class='add'>+Windows C Ruby (MRI), including RubyInstaller 32\-bit and 64\-bit versions</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBmswin\fR</div><div class='add'>+Windows C Ruby (MRI), including RubyInstaller 32\-bit versions</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBmswin64\fR</div><div class='add'>+Windows C Ruby (MRI), including RubyInstaller 64\-bit versions</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBrbx\fR</div><div class='add'>+Rubinius</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBjruby\fR</div><div class='add'>+JRuby</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBtruffleruby\fR</div><div class='add'>+TruffleRuby</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+On platforms \fBruby\fR, \fBmri\fR, \fBmswin\fR, \fBmswin64\fR, and \fBwindows\fR, you may additionally specify a version by appending the major and minor version numbers without a delimiter\. For example, to specify that a gem should only be used on platform \fBruby\fR version 3\.1, use:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+ruby_31</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+As with groups (above), you may specify one or more platforms:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "weakling",   platforms: :jruby</div><div class='add'>+gem "ruby\-debug", platforms: :mri_31</div><div class='add'>+gem "nokogiri",   platforms: [:windows_31, :jruby]</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+All operations involving groups (\fBbundle install\fR \fIbundle\-install\.1\.html\fR, \fBBundler\.setup\fR, \fBBundler\.require\fR) behave exactly the same as if any groups not matching the current platform were explicitly excluded\.</div><div class='add'>+.</div><div class='add'>+.SS "FORCE_RUBY_PLATFORM"</div><div class='add'>+If you always want the pure ruby variant of a gem to be chosen over platform specific variants, you can use the \fBforce_ruby_platform\fR option:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "ffi", force_ruby_platform: true</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This can be handy (assuming the pure ruby variant works fine) when:</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+You\'re having issues with the platform specific variant\.</div><div class='add'>+.</div><div class='add'>+.IP "\(bu" 4</div><div class='add'>+The platform specific variant does not yet support a newer ruby (and thus has a \fBrequired_ruby_version\fR upper bound), but you still want your Gemfile{\.lock} files to resolve under that ruby\.</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SS "SOURCE"</div><div class='add'>+You can select an alternate RubyGems repository for a gem using the \':source\' option\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "some_internal_gem", source: "https://gems\.example\.com"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+This forces the gem to be loaded from this source and ignores the global source declared at the top level of the file\. If the gem does not exist in this source, it will not be installed\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Bundler will search for child dependencies of this gem by first looking in the source selected for the parent, but if they are not found there, it will fall back on the global source\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+\fBNote about a behavior of the feature deprecated in Bundler 1\.13\fR: Selecting a specific source repository this way also suppresses the ambiguous gem warning described above in \fIGLOBAL SOURCE\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Using the \fB:source\fR option for an individual gem will also make that source available as a possible global source for any other gems which do not specify explicit sources\. Thus, when adding gems with explicit sources, it is recommended that you also ensure all other gems in the Gemfile are using explicit sources\.</div><div class='add'>+.</div><div class='add'>+.SS "GIT"</div><div class='add'>+If necessary, you can specify that a gem is located at a particular git repository using the \fB:git\fR parameter\. The repository can be accessed via several protocols:</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBHTTP(S)\fR</div><div class='add'>+gem "rails", git: "https://github\.com/rails/rails\.git"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBSSH\fR</div><div class='add'>+gem "rails", git: "git@github\.com:rails/rails\.git"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBgit\fR</div><div class='add'>+gem "rails", git: "git://github\.com/rails/rails\.git"</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If using SSH, the user that you use to run \fBbundle install\fR \fBMUST\fR have the appropriate keys available in their \fB$HOME/\.ssh\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+\fBNOTE\fR: \fBhttp://\fR and \fBgit://\fR URLs should be avoided if at all possible\. These protocols are unauthenticated, so a man\-in\-the\-middle attacker can deliver malicious code and compromise your system\. HTTPS and SSH are strongly preferred\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The \fBgroup\fR, \fBplatforms\fR, and \fBrequire\fR options are available and behave exactly the same as they would for a normal gem\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+A git repository \fBSHOULD\fR have at least one file, at the root of the directory containing the gem, with the extension \fB\.gemspec\fR\. This file \fBMUST\fR contain a valid gem specification, as expected by the \fBgem build\fR command\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If a git repository does not have a \fB\.gemspec\fR, bundler will attempt to create one, but it will not contain any dependencies, executables, or C extension compilation instructions\. As a result, it may fail to properly integrate into your application\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If a git repository does have a \fB\.gemspec\fR for the gem you attached it to, a version specifier, if provided, means that the git repository is only valid if the \fB\.gemspec\fR specifies a version matching the version specifier\. If not, bundler will print a warning\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "rails", "2\.3\.8", git: "https://github\.com/rails/rails\.git"</div><div class='add'>+# bundle install will fail, because the \.gemspec in the rails</div><div class='add'>+# repository\'s master branch specifies version 3\.0\.0</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If a git repository does \fBnot\fR have a \fB\.gemspec\fR for the gem you attached it to, a version specifier \fBMUST\fR be provided\. Bundler will use this version in the simple \fB\.gemspec\fR it creates\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Git repositories support a number of additional options\.</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBbranch\fR, \fBtag\fR, and \fBref\fR</div><div class='add'>+You \fBMUST\fR only specify at most one of these options\. The default is \fBbranch: "master"\fR\. For example:</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+gem "rails", git: "https://github\.com/rails/rails\.git", branch: "5\-0\-stable"</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+gem "rails", git: "https://github\.com/rails/rails\.git", tag: "v5\.0\.0"</div><div class='add'>+.</div><div class='add'>+.IP</div><div class='add'>+gem "rails", git: "https://github\.com/rails/rails\.git", ref: "4aded"</div><div class='add'>+.</div><div class='add'>+.TP</div><div class='add'>+\fBsubmodules\fR</div><div class='add'>+For reference, a git submodule \fIhttps://git\-scm\.com/book/en/v2/Git\-Tools\-Submodules\fR lets you have another git repository within a subfolder of your repository\. Specify \fBsubmodules: true\fR to cause bundler to expand any submodules included in the git repository</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If a git repository contains multiple \fB\.gemspecs\fR, each \fB\.gemspec\fR represents a gem located at the same place in the file system as the \fB\.gemspec\fR\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+|~rails                   [git root]</div><div class='add'>+| |\-rails\.gemspec         [rails gem located here]</div><div class='add'>+|~actionpack</div><div class='add'>+| |\-actionpack\.gemspec    [actionpack gem located here]</div><div class='add'>+|~activesupport</div><div class='add'>+| |\-activesupport\.gemspec [activesupport gem located here]</div><div class='add'>+|\.\.\.</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+To install a gem located in a git repository, bundler changes to the directory containing the gemspec, runs \fBgem build name\.gemspec\fR and then installs the resulting gem\. The \fBgem build\fR command, which comes standard with Rubygems, evaluates the \fB\.gemspec\fR in the context of the directory in which it is located\.</div><div class='add'>+.</div><div class='add'>+.SS "GIT SOURCE"</div><div class='add'>+A custom git source can be defined via the \fBgit_source\fR method\. Provide the source\'s name as an argument, and a block which receives a single argument and interpolates it into a string to return the full repo address:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+git_source(:stash){ |repo_name| "https://stash\.corp\.acme\.pl/#{repo_name}\.git" }</div><div class='add'>+gem \'rails\', stash: \'forks/rails\'</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In addition, if you wish to choose a specific branch:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "rails", stash: "forks/rails", branch: "branch_name"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SS "GITHUB"</div><div class='add'>+\fBNOTE\fR: This shorthand should be avoided until Bundler 2\.0, since it currently expands to an insecure \fBgit://\fR URL\. This allows a man\-in\-the\-middle attacker to compromise your system\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If the git repository you want to use is hosted on GitHub and is public, you can use the :github shorthand to specify the github username and repository name (without the trailing "\.git"), separated by a slash\. If both the username and repository name are the same, you can omit one\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "rails", github: "rails/rails"</div><div class='add'>+gem "rails", github: "rails"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Are both equivalent to</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "rails", git: "https://github\.com/rails/rails\.git"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Since the \fBgithub\fR method is a specialization of \fBgit_source\fR, it accepts a \fB:branch\fR named argument\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+You can also directly pass a pull request URL:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "rails", github: "https://github\.com/rails/rails/pull/43753"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Which is equivalent to:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "rails", github: "rails/rails", branch: "refs/pull/43753/head"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SS "GIST"</div><div class='add'>+If the git repository you want to use is hosted as a GitHub Gist and is public, you can use the :gist shorthand to specify the gist identifier (without the trailing "\.git")\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "the_hatch", gist: "4815162342"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Is equivalent to:</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "the_hatch", git: "https://gist\.github\.com/4815162342\.git"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Since the \fBgist\fR method is a specialization of \fBgit_source\fR, it accepts a \fB:branch\fR named argument\.</div><div class='add'>+.</div><div class='add'>+.SS "BITBUCKET"</div><div class='add'>+If the git repository you want to use is hosted on Bitbucket and is public, you can use the :bitbucket shorthand to specify the bitbucket username and repository name (without the trailing "\.git"), separated by a slash\. If both the username and repository name are the same, you can omit one\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "rails", bitbucket: "rails/rails"</div><div class='add'>+gem "rails", bitbucket: "rails"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Are both equivalent to</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "rails", git: "https://rails@bitbucket\.org/rails/rails\.git"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Since the \fBbitbucket\fR method is a specialization of \fBgit_source\fR, it accepts a \fB:branch\fR named argument\.</div><div class='add'>+.</div><div class='add'>+.SS "PATH"</div><div class='add'>+You can specify that a gem is located in a particular location on the file system\. Relative paths are resolved relative to the directory containing the \fBGemfile\fR\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Similar to the semantics of the \fB:git\fR option, the \fB:path\fR option requires that the directory in question either contains a \fB\.gemspec\fR for the gem, or that you specify an explicit version that bundler should use\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+Unlike \fB:git\fR, bundler does not compile C extensions for gems specified as paths\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+gem "rails", path: "vendor/rails"</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If you would like to use multiple local gems directly from the filesystem, you can set a global \fBpath\fR option to the path containing the gem\'s files\. This will automatically load gemspec files from subdirectories\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+path \'components\' do</div><div class='add'>+  gem \'admin_ui\'</div><div class='add'>+  gem \'public_ui\'</div><div class='add'>+end</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SH "BLOCK FORM OF SOURCE, GIT, PATH, GROUP and PLATFORMS"</div><div class='add'>+The \fB:source\fR, \fB:git\fR, \fB:path\fR, \fB:group\fR, and \fB:platforms\fR options may be applied to a group of gems by using block form\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+source "https://gems\.example\.com" do</div><div class='add'>+  gem "some_internal_gem"</div><div class='add'>+  gem "another_internal_gem"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+git "https://github\.com/rails/rails\.git" do</div><div class='add'>+  gem "activesupport"</div><div class='add'>+  gem "actionpack"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+platforms :ruby do</div><div class='add'>+  gem "ruby\-debug"</div><div class='add'>+  gem "sqlite3"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+group :development, optional: true do</div><div class='add'>+  gem "wirble"</div><div class='add'>+  gem "faker"</div><div class='add'>+end</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In the case of the group block form the :optional option can be given to prevent a group from being installed unless listed in the \fB\-\-with\fR option given to the \fBbundle install\fR command\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+In the case of the \fBgit\fR block form, the \fB:ref\fR, \fB:branch\fR, \fB:tag\fR, and \fB:submodules\fR options may be passed to the \fBgit\fR method, and all gems in the block will inherit those options\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The presence of a \fBsource\fR block in a Gemfile also makes that source available as a possible global source for any other gems which do not specify explicit sources\. Thus, when defining source blocks, it is recommended that you also ensure all other gems in the Gemfile are using explicit sources, either via source blocks or \fB:source\fR directives on individual gems\.</div><div class='add'>+.</div><div class='add'>+.SH "INSTALL_IF"</div><div class='add'>+The \fBinstall_if\fR method allows gems to be installed based on a proc or lambda\. This is especially useful for optional gems that can only be used if certain software is installed or some other conditions are met\.</div><div class='add'>+.</div><div class='add'>+.IP "" 4</div><div class='add'>+.</div><div class='add'>+.nf</div><div class='add'>+</div><div class='add'>+install_if \-&gt; { RUBY_PLATFORM =~ /darwin/ } do</div><div class='add'>+  gem "pasteboard"</div><div class='add'>+end</div><div class='add'>+.</div><div class='add'>+.fi</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+.</div><div class='add'>+.SH "GEMSPEC"</div><div class='add'>+The \fB\.gemspec\fR \fIhttp://guides\.rubygems\.org/specification\-reference/\fR file is where you provide metadata about your gem to Rubygems\. Some required Gemspec attributes include the name, description, and homepage of your gem\. This is also where you specify the dependencies your gem needs to run\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+If you wish to use Bundler to help install dependencies for a gem while it is being developed, use the \fBgemspec\fR method to pull in the dependencies listed in the \fB\.gemspec\fR file\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The \fBgemspec\fR method adds any runtime dependencies as gem requirements in the default group\. It also adds development dependencies as gem requirements in the \fBdevelopment\fR group\. Finally, it adds a gem requirement on your project (\fBpath: \'\.\'\fR)\. In conjunction with \fBBundler\.setup\fR, this allows you to require project files in your test code as you would if the project were installed as a gem; you need not manipulate the load path manually or require project files via relative paths\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+The \fBgemspec\fR method supports optional \fB:path\fR, \fB:glob\fR, \fB:name\fR, and \fB:development_group\fR options, which control where bundler looks for the \fB\.gemspec\fR, the glob it uses to look for the gemspec (defaults to: \fB{,*,*/*}\.gemspec\fR), what named \fB\.gemspec\fR it uses (if more than one is present), and which group development dependencies are included in\.</div><div class='add'>+.</div><div class='add'>+.P</div><div class='add'>+When a \fBgemspec\fR dependency encounters version conflicts during resolution, the local version under development will always be selected \-\- even if there are remote versions that better match other requirements for the \fBgemspec\fR gem\.</div><div class='add'>+.</div><div class='add'>+.SH "SOURCE PRIORITY"</div><div class='add'>+When attempting to locate a gem to satisfy a gem requirement, bundler uses the following priority order:</div><div class='add'>+.</div><div class='add'>+.IP "1." 4</div><div class='add'>+The source explicitly attached to the gem (using \fB:source\fR, \fB:path\fR, or \fB:git\fR)</div><div class='add'>+.</div><div class='add'>+.IP "2." 4</div><div class='add'>+For implicit gems (dependencies of explicit gems), any source, git, or path repository declared on the parent\. This results in bundler prioritizing the ActiveSupport gem from the Rails git repository over ones from \fBrubygems\.org\fR</div><div class='add'>+.</div><div class='add'>+.IP "3." 4</div><div class='add'>+If neither of the above conditions are met, the global source will be used\. If multiple global sources are specified, they will be prioritized from last to first, but this is deprecated since Bundler 1\.13, so Bundler prints a warning and will abort with an error in the future\.</div><div class='add'>+.</div><div class='add'>+.IP "" 0</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/man/gemfile.5.ronn b/lib/bundler/man/gemfile.5.ronn<br/>new file mode 100644<br/>index 0000000000..6749c33f59<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/gemfile.5.ronn?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/gemfile.5.ronn</a></div><div class='hunk'>@@ -0,0 +1,543 @@</div><div class='add'>+Gemfile(5) -- A format for describing gem dependencies for Ruby programs</div><div class='add'>+========================================================================</div><div class='add'>+</div><div class='add'>+## SYNOPSIS</div><div class='add'>+</div><div class='add'>+A `Gemfile` describes the gem dependencies required to execute associated</div><div class='add'>+Ruby code.</div><div class='add'>+</div><div class='add'>+Place the `Gemfile` in the root of the directory containing the associated</div><div class='add'>+code. For instance, in a Rails application, place the `Gemfile` in the same</div><div class='add'>+directory as the `Rakefile`.</div><div class='add'>+</div><div class='add'>+## SYNTAX</div><div class='add'>+</div><div class='add'>+A `Gemfile` is evaluated as Ruby code, in a context which makes available</div><div class='add'>+a number of methods used to describe the gem requirements.</div><div class='add'>+</div><div class='add'>+## GLOBAL SOURCE</div><div class='add'>+</div><div class='add'>+At the top of the `Gemfile`, add a single line for the `RubyGems` source that</div><div class='add'>+contains the gems listed in the `Gemfile`.</div><div class='add'>+</div><div class='add'>+    source "https://rubygems.org"</div><div class='add'>+</div><div class='add'>+You can add only one global source. In Bundler 1.13, adding multiple global</div><div class='add'>+sources was deprecated. The `source` `MUST` be a valid RubyGems repository.</div><div class='add'>+</div><div class='add'>+To use more than one source of RubyGems, you should use [`source` block</div><div class='add'>+](#BLOCK-FORM-OF-SOURCE-GIT-PATH-GROUP-and-PLATFORMS).</div><div class='add'>+</div><div class='add'>+A source is checked for gems following the heuristics described in</div><div class='add'>+[SOURCE PRIORITY][].</div><div class='add'>+</div><div class='add'>+**Note about a behavior of the feature deprecated in Bundler 1.13**:</div><div class='add'>+If a gem is found in more than one global source, Bundler</div><div class='add'>+will print a warning after installing the gem indicating which source was used,</div><div class='add'>+and listing the other sources where the gem is available. A specific source can</div><div class='add'>+be selected for gems that need to use a non-standard repository, suppressing</div><div class='add'>+this warning, by using the [`:source` option](#SOURCE) or `source` block.</div><div class='add'>+</div><div class='add'>+### CREDENTIALS</div><div class='add'>+</div><div class='add'>+Some gem sources require a username and password. Use [bundle config(1)](bundle-config.1.html) to set</div><div class='add'>+the username and password for any of the sources that need it. The command must</div><div class='add'>+be run once on each computer that will install the Gemfile, but this keeps the</div><div class='add'>+credentials from being stored in plain text in version control.</div><div class='add'>+</div><div class='add'>+    bundle config gems.example.com user:password</div><div class='add'>+</div><div class='add'>+For some sources, like a company Gemfury account, it may be easier to</div><div class='add'>+include the credentials in the Gemfile as part of the source URL.</div><div class='add'>+</div><div class='add'>+    source "https://user:password@gems.example.com"</div><div class='add'>+</div><div class='add'>+Credentials in the source URL will take precedence over credentials set using</div><div class='add'>+`config`.</div><div class='add'>+</div><div class='add'>+## RUBY</div><div class='add'>+</div><div class='add'>+If your application requires a specific Ruby version or engine, specify your</div><div class='add'>+requirements using the `ruby` method, with the following arguments.</div><div class='add'>+All parameters are `OPTIONAL` unless otherwise specified.</div><div class='add'>+</div><div class='add'>+### VERSION (required)</div><div class='add'>+</div><div class='add'>+The version of Ruby that your application requires. If your application</div><div class='add'>+requires an alternate Ruby engine, such as JRuby, TruffleRuby, etc., this</div><div class='add'>+should be the Ruby version that the engine is compatible with.</div><div class='add'>+</div><div class='add'>+    ruby "3.1.2"</div><div class='add'>+</div><div class='add'>+If you wish to derive your Ruby version from a version file (ie .ruby-version),</div><div class='add'>+you can use the `file` option instead.</div><div class='add'>+</div><div class='add'>+    ruby file: ".ruby-version"</div><div class='add'>+</div><div class='add'>+### ENGINE</div><div class='add'>+</div><div class='add'>+Each application _may_ specify a Ruby engine. If an engine is specified, an</div><div class='add'>+engine version _must_ also be specified.</div><div class='add'>+</div><div class='add'>+What exactly is an Engine?</div><div class='add'>+  - A Ruby engine is an implementation of the Ruby language.</div><div class='add'>+</div><div class='add'>+  - For background: the reference or original implementation of the Ruby</div><div class='add'>+    programming language is called</div><div class='add'>+    [Matz's Ruby Interpreter](https://en.wikipedia.org/wiki/Ruby_MRI), or  MRI</div><div class='add'>+    for short. This is named after Ruby creator Yukihiro Matsumoto,</div><div class='add'>+    also known as Matz. MRI is also known as CRuby, because it is written in C.</div><div class='add'>+    MRI is the most widely used Ruby engine.</div><div class='add'>+</div><div class='add'>+  - [Other implementations](https://www.ruby-lang.org/en/about/) of Ruby exist.</div><div class='add'>+    Some of the more well-known implementations include</div><div class='add'>+    [JRuby](http://jruby.org/) and [TruffleRuby](https://www.graalvm.org/ruby/).</div><div class='add'>+    Rubinius is an alternative implementation of Ruby written in Ruby.</div><div class='add'>+    JRuby is an implementation of Ruby on the JVM, short for Java Virtual Machine.</div><div class='add'>+    TruffleRuby is a Ruby implementation on the GraalVM, a language toolkit built on the JVM.</div><div class='add'>+</div><div class='add'>+### ENGINE VERSION</div><div class='add'>+</div><div class='add'>+Each application _may_ specify a Ruby engine version. If an engine version is</div><div class='add'>+specified, an engine _must_ also be specified. If the engine is "ruby" the</div><div class='add'>+engine version specified _must_ match the Ruby version.</div><div class='add'>+</div><div class='add'>+    ruby "2.6.8", engine: "jruby", engine_version: "9.3.8.0"</div><div class='add'>+</div><div class='add'>+### PATCHLEVEL</div><div class='add'>+</div><div class='add'>+Each application _may_ specify a Ruby patchlevel. Specifying the patchlevel has</div><div class='add'>+been meaningless since Ruby 2.1.0 was released as the patchlevel is now</div><div class='add'>+uniquely determined by a combination of major, minor, and teeny version numbers.</div><div class='add'>+</div><div class='add'>+This option was implemented in Bundler 1.4.0 for Ruby 2.0 or earlier.</div><div class='add'>+</div><div class='add'>+    ruby "3.1.2", patchlevel: "20"</div><div class='add'>+</div><div class='add'>+## GEMS</div><div class='add'>+</div><div class='add'>+Specify gem requirements using the `gem` method, with the following arguments.</div><div class='add'>+All parameters are `OPTIONAL` unless otherwise specified.</div><div class='add'>+</div><div class='add'>+### NAME (required)</div><div class='add'>+</div><div class='add'>+For each gem requirement, list a single _gem_ line.</div><div class='add'>+</div><div class='add'>+    gem "nokogiri"</div><div class='add'>+</div><div class='add'>+### VERSION</div><div class='add'>+</div><div class='add'>+Each _gem_ `MAY` have one or more version specifiers.</div><div class='add'>+</div><div class='add'>+    gem "nokogiri", "&gt;= 1.4.2"</div><div class='add'>+    gem "RedCloth", "&gt;= 4.1.0", "&lt; 4.2.0"</div><div class='add'>+</div><div class='add'>+### REQUIRE AS</div><div class='add'>+</div><div class='add'>+Each _gem_ `MAY` specify files that should be used when autorequiring via</div><div class='add'>+`Bundler.require`. You may pass an array with multiple files or `true` if the file</div><div class='add'>+you want `required` has the same name as _gem_ or `false` to</div><div class='add'>+prevent any file from being autorequired.</div><div class='add'>+</div><div class='add'>+    gem "redis", require: ["redis/connection/hiredis", "redis"]</div><div class='add'>+    gem "webmock", require: false</div><div class='add'>+    gem "byebug", require: true</div><div class='add'>+</div><div class='add'>+The argument defaults to the name of the gem. For example, these are identical:</div><div class='add'>+</div><div class='add'>+    gem "nokogiri"</div><div class='add'>+    gem "nokogiri", require: "nokogiri"</div><div class='add'>+    gem "nokogiri", require: true</div><div class='add'>+</div><div class='add'>+### GROUPS</div><div class='add'>+</div><div class='add'>+Each _gem_ `MAY` specify membership in one or more groups. Any _gem_ that does</div><div class='add'>+not specify membership in any group is placed in the `default` group.</div><div class='add'>+</div><div class='add'>+    gem "rspec", group: :test</div><div class='add'>+    gem "wirble", groups: [:development, :test]</div><div class='add'>+</div><div class='add'>+The Bundler runtime allows its two main methods, `Bundler.setup` and</div><div class='add'>+`Bundler.require`, to limit their impact to particular groups.</div><div class='add'>+</div><div class='add'>+    # setup adds gems to Ruby's load path</div><div class='add'>+    Bundler.setup                    # defaults to all groups</div><div class='add'>+    require "bundler/setup"          # same as Bundler.setup</div><div class='add'>+    Bundler.setup(:default)          # only set up the _default_ group</div><div class='add'>+    Bundler.setup(:test)             # only set up the _test_ group (but `not` _default_)</div><div class='add'>+    Bundler.setup(:default, :test)   # set up the _default_ and _test_ groups, but no others</div><div class='add'>+</div><div class='add'>+    # require requires all of the gems in the specified groups</div><div class='add'>+    Bundler.require                  # defaults to the _default_ group</div><div class='add'>+    Bundler.require(:default)        # identical</div><div class='add'>+    Bundler.require(:default, :test) # requires the _default_ and _test_ groups</div><div class='add'>+    Bundler.require(:test)           # requires the _test_ group</div><div class='add'>+</div><div class='add'>+The Bundler CLI allows you to specify a list of groups whose gems `bundle install` should</div><div class='add'>+not install with the `without` configuration.</div><div class='add'>+</div><div class='add'>+To specify multiple groups to ignore, specify a list of groups separated by spaces.</div><div class='add'>+</div><div class='add'>+    bundle config set --local without test</div><div class='add'>+    bundle config set --local without development test</div><div class='add'>+</div><div class='add'>+Also, calling `Bundler.setup` with no parameters, or calling `require "bundler/setup"`</div><div class='add'>+will setup all groups except for the ones you excluded via `--without` (since they</div><div class='add'>+are not available).</div><div class='add'>+</div><div class='add'>+Note that on `bundle install`, bundler downloads and evaluates all gems, in order to</div><div class='add'>+create a single canonical list of all of the required gems and their dependencies.</div><div class='add'>+This means that you cannot list different versions of the same gems in different</div><div class='add'>+groups. For more details, see [Understanding Bundler](https://bundler.io/rationale.html).</div><div class='add'>+</div><div class='add'>+### PLATFORMS</div><div class='add'>+</div><div class='add'>+If a gem should only be used in a particular platform or set of platforms, you can</div><div class='add'>+specify them. Platforms are essentially identical to groups, except that you do not</div><div class='add'>+need to use the `--without` install-time flag to exclude groups of gems for other</div><div class='add'>+platforms.</div><div class='add'>+</div><div class='add'>+There are a number of `Gemfile` platforms:</div><div class='add'>+</div><div class='add'>+  * `ruby`:</div><div class='add'>+    C Ruby (MRI), Rubinius, or TruffleRuby, but not Windows</div><div class='add'>+  * `mri`:</div><div class='add'>+    C Ruby (MRI) only, but not Windows</div><div class='add'>+  * `windows`:</div><div class='add'>+    Windows C Ruby (MRI), including RubyInstaller 32-bit and 64-bit versions</div><div class='add'>+  * `mswin`:</div><div class='add'>+    Windows C Ruby (MRI), including RubyInstaller 32-bit versions</div><div class='add'>+  * `mswin64`:</div><div class='add'>+    Windows C Ruby (MRI), including RubyInstaller 64-bit versions</div><div class='add'>+  * `rbx`:</div><div class='add'>+    Rubinius</div><div class='add'>+  * `jruby`:</div><div class='add'>+    JRuby</div><div class='add'>+  * `truffleruby`:</div><div class='add'>+    TruffleRuby</div><div class='add'>+</div><div class='add'>+On platforms `ruby`, `mri`, `mswin`, `mswin64`, and `windows`, you may</div><div class='add'>+additionally specify a version by appending the major and minor version numbers</div><div class='add'>+without a delimiter. For example, to specify that a gem should only be used on</div><div class='add'>+platform `ruby` version 3.1, use:</div><div class='add'>+</div><div class='add'>+    ruby_31</div><div class='add'>+</div><div class='add'>+As with groups (above), you may specify one or more platforms:</div><div class='add'>+</div><div class='add'>+    gem "weakling",   platforms: :jruby</div><div class='add'>+    gem "ruby-debug", platforms: :mri_31</div><div class='add'>+    gem "nokogiri",   platforms: [:windows_31, :jruby]</div><div class='add'>+</div><div class='add'>+All operations involving groups ([`bundle install`](bundle-install.1.html), `Bundler.setup`,</div><div class='add'>+`Bundler.require`) behave exactly the same as if any groups not</div><div class='add'>+matching the current platform were explicitly excluded.</div><div class='add'>+</div><div class='add'>+### FORCE_RUBY_PLATFORM</div><div class='add'>+</div><div class='add'>+If you always want the pure ruby variant of a gem to be chosen over platform</div><div class='add'>+specific variants, you can use the `force_ruby_platform` option:</div><div class='add'>+</div><div class='add'>+    gem "ffi", force_ruby_platform: true</div><div class='add'>+</div><div class='add'>+This can be handy (assuming the pure ruby variant works fine) when:</div><div class='add'>+</div><div class='add'>+* You're having issues with the platform specific variant.</div><div class='add'>+* The platform specific variant does not yet support a newer ruby (and thus has</div><div class='add'>+  a `required_ruby_version` upper bound), but you still want your Gemfile{.lock}</div><div class='add'>+  files to resolve under that ruby.</div><div class='add'>+</div><div class='add'>+### SOURCE</div><div class='add'>+</div><div class='add'>+You can select an alternate RubyGems repository for a gem using the ':source'</div><div class='add'>+option.</div><div class='add'>+</div><div class='add'>+    gem "some_internal_gem", source: "https://gems.example.com"</div><div class='add'>+</div><div class='add'>+This forces the gem to be loaded from this source and ignores the global source</div><div class='add'>+declared at the top level of the file. If the gem does not exist in this source,</div><div class='add'>+it will not be installed.</div><div class='add'>+</div><div class='add'>+Bundler will search for child dependencies of this gem by first looking in the</div><div class='add'>+source selected for the parent, but if they are not found there, it will fall</div><div class='add'>+back on the global source.</div><div class='add'>+</div><div class='add'>+**Note about a behavior of the feature deprecated in Bundler 1.13**:</div><div class='add'>+Selecting a specific source repository this way also suppresses the ambiguous</div><div class='add'>+gem warning described above in [GLOBAL SOURCE](#GLOBAL-SOURCE).</div><div class='add'>+</div><div class='add'>+Using the `:source` option for an individual gem will also make that source</div><div class='add'>+available as a possible global source for any other gems which do not specify</div><div class='add'>+explicit sources. Thus, when adding gems with explicit sources, it is</div><div class='add'>+recommended that you also ensure all other gems in the Gemfile are using</div><div class='add'>+explicit sources.</div><div class='add'>+</div><div class='add'>+### GIT</div><div class='add'>+</div><div class='add'>+If necessary, you can specify that a gem is located at a particular</div><div class='add'>+git repository using the `:git` parameter. The repository can be accessed via</div><div class='add'>+several protocols:</div><div class='add'>+</div><div class='add'>+  * `HTTP(S)`:</div><div class='add'>+    gem "rails", git: "https://github.com/rails/rails.git"</div><div class='add'>+  * `SSH`:</div><div class='add'>+    gem "rails", git: "git@github.com:rails/rails.git"</div><div class='add'>+  * `git`:</div><div class='add'>+    gem "rails", git: "git://github.com/rails/rails.git"</div><div class='add'>+</div><div class='add'>+If using SSH, the user that you use to run `bundle install` `MUST` have the</div><div class='add'>+appropriate keys available in their `$HOME/.ssh`.</div><div class='add'>+</div><div class='add'>+`NOTE`: `http://` and `git://` URLs should be avoided if at all possible. These</div><div class='add'>+protocols are unauthenticated, so a man-in-the-middle attacker can deliver</div><div class='add'>+malicious code and compromise your system. HTTPS and SSH are strongly</div><div class='add'>+preferred.</div><div class='add'>+</div><div class='add'>+The `group`, `platforms`, and `require` options are available and behave</div><div class='add'>+exactly the same as they would for a normal gem.</div><div class='add'>+</div><div class='add'>+A git repository `SHOULD` have at least one file, at the root of the</div><div class='add'>+directory containing the gem, with the extension `.gemspec`. This file</div><div class='add'>+`MUST` contain a valid gem specification, as expected by the `gem build`</div><div class='add'>+command.</div><div class='add'>+</div><div class='add'>+If a git repository does not have a `.gemspec`, bundler will attempt to</div><div class='add'>+create one, but it will not contain any dependencies, executables, or</div><div class='add'>+C extension compilation instructions. As a result, it may fail to properly</div><div class='add'>+integrate into your application.</div><div class='add'>+</div><div class='add'>+If a git repository does have a `.gemspec` for the gem you attached it</div><div class='add'>+to, a version specifier, if provided, means that the git repository is</div><div class='add'>+only valid if the `.gemspec` specifies a version matching the version</div><div class='add'>+specifier. If not, bundler will print a warning.</div><div class='add'>+</div><div class='add'>+    gem "rails", "2.3.8", git: "https://github.com/rails/rails.git"</div><div class='add'>+    # bundle install will fail, because the .gemspec in the rails</div><div class='add'>+    # repository's master branch specifies version 3.0.0</div><div class='add'>+</div><div class='add'>+If a git repository does `not` have a `.gemspec` for the gem you attached</div><div class='add'>+it to, a version specifier `MUST` be provided. Bundler will use this</div><div class='add'>+version in the simple `.gemspec` it creates.</div><div class='add'>+</div><div class='add'>+Git repositories support a number of additional options.</div><div class='add'>+</div><div class='add'>+  * `branch`, `tag`, and `ref`:</div><div class='add'>+    You `MUST` only specify at most one of these options. The default</div><div class='add'>+    is `branch: "master"`.  For example:</div><div class='add'>+</div><div class='add'>+      gem "rails", git: "https://github.com/rails/rails.git", branch: "5-0-stable"</div><div class='add'>+</div><div class='add'>+      gem "rails", git: "https://github.com/rails/rails.git", tag: "v5.0.0"</div><div class='add'>+</div><div class='add'>+      gem "rails", git: "https://github.com/rails/rails.git", ref: "4aded"</div><div class='add'>+</div><div class='add'>+  * `submodules`:</div><div class='add'>+    For reference, a [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules)</div><div class='add'>+    lets you have another git repository within a subfolder of your repository.</div><div class='add'>+    Specify `submodules: true` to cause bundler to expand any</div><div class='add'>+    submodules included in the git repository</div><div class='add'>+</div><div class='add'>+If a git repository contains multiple `.gemspecs`, each `.gemspec`</div><div class='add'>+represents a gem located at the same place in the file system as</div><div class='add'>+the `.gemspec`.</div><div class='add'>+</div><div class='add'>+    |~rails                   [git root]</div><div class='add'>+    | |-rails.gemspec         [rails gem located here]</div><div class='add'>+    |~actionpack</div><div class='add'>+    | |-actionpack.gemspec    [actionpack gem located here]</div><div class='add'>+    |~activesupport</div><div class='add'>+    | |-activesupport.gemspec [activesupport gem located here]</div><div class='add'>+    |...</div><div class='add'>+</div><div class='add'>+To install a gem located in a git repository, bundler changes to</div><div class='add'>+the directory containing the gemspec, runs `gem build name.gemspec`</div><div class='add'>+and then installs the resulting gem. The `gem build` command,</div><div class='add'>+which comes standard with Rubygems, evaluates the `.gemspec` in</div><div class='add'>+the context of the directory in which it is located.</div><div class='add'>+</div><div class='add'>+### GIT SOURCE</div><div class='add'>+</div><div class='add'>+A custom git source can be defined via the `git_source` method. Provide the source's name</div><div class='add'>+as an argument, and a block which receives a single argument and interpolates it into a</div><div class='add'>+string to return the full repo address:</div><div class='add'>+</div><div class='add'>+    git_source(:stash){ |repo_name| "https://stash.corp.acme.pl/#{repo_name}.git" }</div><div class='add'>+    gem 'rails', stash: 'forks/rails'</div><div class='add'>+</div><div class='add'>+In addition, if you wish to choose a specific branch:</div><div class='add'>+</div><div class='add'>+    gem "rails", stash: "forks/rails", branch: "branch_name"</div><div class='add'>+</div><div class='add'>+### GITHUB</div><div class='add'>+</div><div class='add'>+`NOTE`: This shorthand should be avoided until Bundler 2.0, since it</div><div class='add'>+currently expands to an insecure `git://` URL. This allows a</div><div class='add'>+man-in-the-middle attacker to compromise your system.</div><div class='add'>+</div><div class='add'>+If the git repository you want to use is hosted on GitHub and is public, you can use the</div><div class='add'>+:github shorthand to specify the github username and repository name (without the</div><div class='add'>+trailing ".git"), separated by a slash. If both the username and repository name are the</div><div class='add'>+same, you can omit one.</div><div class='add'>+</div><div class='add'>+    gem "rails", github: "rails/rails"</div><div class='add'>+    gem "rails", github: "rails"</div><div class='add'>+</div><div class='add'>+Are both equivalent to</div><div class='add'>+</div><div class='add'>+    gem "rails", git: "https://github.com/rails/rails.git"</div><div class='add'>+</div><div class='add'>+Since the `github` method is a specialization of `git_source`, it accepts a `:branch` named argument.</div><div class='add'>+</div><div class='add'>+You can also directly pass a pull request URL:</div><div class='add'>+</div><div class='add'>+    gem "rails", github: "https://github.com/rails/rails/pull/43753"</div><div class='add'>+</div><div class='add'>+Which is equivalent to:</div><div class='add'>+</div><div class='add'>+    gem "rails", github: "rails/rails", branch: "refs/pull/43753/head"</div><div class='add'>+</div><div class='add'>+### GIST</div><div class='add'>+</div><div class='add'>+If the git repository you want to use is hosted as a GitHub Gist and is public, you can use</div><div class='add'>+the :gist shorthand to specify the gist identifier (without the trailing ".git").</div><div class='add'>+</div><div class='add'>+    gem "the_hatch", gist: "4815162342"</div><div class='add'>+</div><div class='add'>+Is equivalent to:</div><div class='add'>+</div><div class='add'>+    gem "the_hatch", git: "https://gist.github.com/4815162342.git"</div><div class='add'>+</div><div class='add'>+Since the `gist` method is a specialization of `git_source`, it accepts a `:branch` named argument.</div><div class='add'>+</div><div class='add'>+### BITBUCKET</div><div class='add'>+</div><div class='add'>+If the git repository you want to use is hosted on Bitbucket and is public, you can use the</div><div class='add'>+:bitbucket shorthand to specify the bitbucket username and repository name (without the</div><div class='add'>+trailing ".git"), separated by a slash. If both the username and repository name are the</div><div class='add'>+same, you can omit one.</div><div class='add'>+</div><div class='add'>+    gem "rails", bitbucket: "rails/rails"</div><div class='add'>+    gem "rails", bitbucket: "rails"</div><div class='add'>+</div><div class='add'>+Are both equivalent to</div><div class='add'>+</div><div class='add'>+    gem "rails", git: "https://rails@bitbucket.org/rails/rails.git"</div><div class='add'>+</div><div class='add'>+Since the `bitbucket` method is a specialization of `git_source`, it accepts a `:branch` named argument.</div><div class='add'>+</div><div class='add'>+### PATH</div><div class='add'>+</div><div class='add'>+You can specify that a gem is located in a particular location</div><div class='add'>+on the file system. Relative paths are resolved relative to the</div><div class='add'>+directory containing the `Gemfile`.</div><div class='add'>+</div><div class='add'>+Similar to the semantics of the `:git` option, the `:path`</div><div class='add'>+option requires that the directory in question either contains</div><div class='add'>+a `.gemspec` for the gem, or that you specify an explicit</div><div class='add'>+version that bundler should use.</div><div class='add'>+</div><div class='add'>+Unlike `:git`, bundler does not compile C extensions for</div><div class='add'>+gems specified as paths.</div><div class='add'>+</div><div class='add'>+    gem "rails", path: "vendor/rails"</div><div class='add'>+</div><div class='add'>+If you would like to use multiple local gems directly from the filesystem, you can set a global `path` option to the path containing the gem's files. This will automatically load gemspec files from subdirectories.</div><div class='add'>+</div><div class='add'>+    path 'components' do</div><div class='add'>+      gem 'admin_ui'</div><div class='add'>+      gem 'public_ui'</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+## BLOCK FORM OF SOURCE, GIT, PATH, GROUP and PLATFORMS</div><div class='add'>+</div><div class='add'>+The `:source`, `:git`, `:path`, `:group`, and `:platforms` options may be</div><div class='add'>+applied to a group of gems by using block form.</div><div class='add'>+</div><div class='add'>+    source "https://gems.example.com" do</div><div class='add'>+      gem "some_internal_gem"</div><div class='add'>+      gem "another_internal_gem"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    git "https://github.com/rails/rails.git" do</div><div class='add'>+      gem "activesupport"</div><div class='add'>+      gem "actionpack"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    platforms :ruby do</div><div class='add'>+      gem "ruby-debug"</div><div class='add'>+      gem "sqlite3"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    group :development, optional: true do</div><div class='add'>+      gem "wirble"</div><div class='add'>+      gem "faker"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+In the case of the group block form the :optional option can be given</div><div class='add'>+to prevent a group from being installed unless listed in the `--with`</div><div class='add'>+option given to the `bundle install` command.</div><div class='add'>+</div><div class='add'>+In the case of the `git` block form, the `:ref`, `:branch`, `:tag`,</div><div class='add'>+and `:submodules` options may be passed to the `git` method, and</div><div class='add'>+all gems in the block will inherit those options.</div><div class='add'>+</div><div class='add'>+The presence of a `source` block in a Gemfile also makes that source</div><div class='add'>+available as a possible global source for any other gems which do not specify</div><div class='add'>+explicit sources. Thus, when defining source blocks, it is</div><div class='add'>+recommended that you also ensure all other gems in the Gemfile are using</div><div class='add'>+explicit sources, either via source blocks or `:source` directives on</div><div class='add'>+individual gems.</div><div class='add'>+</div><div class='add'>+## INSTALL_IF</div><div class='add'>+</div><div class='add'>+The `install_if` method allows gems to be installed based on a proc or lambda.</div><div class='add'>+This is especially useful for optional gems that can only be used if certain</div><div class='add'>+software is installed or some other conditions are met.</div><div class='add'>+</div><div class='add'>+    install_if -&gt; { RUBY_PLATFORM =~ /darwin/ } do</div><div class='add'>+      gem "pasteboard"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+## GEMSPEC</div><div class='add'>+</div><div class='add'>+The [`.gemspec`](http://guides.rubygems.org/specification-reference/) file is where</div><div class='add'>+ you provide metadata about your gem to Rubygems. Some required Gemspec</div><div class='add'>+ attributes include the name, description, and homepage of your gem. This is</div><div class='add'>+ also where you specify the dependencies your gem needs to run.</div><div class='add'>+</div><div class='add'>+If you wish to use Bundler to help install dependencies for a gem while it is</div><div class='add'>+being developed, use the `gemspec` method to pull in the dependencies listed in</div><div class='add'>+the `.gemspec` file.</div><div class='add'>+</div><div class='add'>+The `gemspec` method adds any runtime dependencies as gem requirements in the</div><div class='add'>+default group. It also adds development dependencies as gem requirements in the</div><div class='add'>+`development` group. Finally, it adds a gem requirement on your project (`path:</div><div class='add'>+'.'`). In conjunction with `Bundler.setup`, this allows you to require project</div><div class='add'>+files in your test code as you would if the project were installed as a gem; you</div><div class='add'>+need not manipulate the load path manually or require project files via relative</div><div class='add'>+paths.</div><div class='add'>+</div><div class='add'>+The `gemspec` method supports optional `:path`, `:glob`, `:name`, and `:development_group`</div><div class='add'>+options, which control where bundler looks for the `.gemspec`, the glob it uses to look</div><div class='add'>+for the gemspec (defaults to: `{,*,*/*}.gemspec`), what named `.gemspec` it uses</div><div class='add'>+(if more than one is present), and which group development dependencies are included in.</div><div class='add'>+</div><div class='add'>+When a `gemspec` dependency encounters version conflicts during resolution, the</div><div class='add'>+local version under development will always be selected -- even if there are</div><div class='add'>+remote versions that better match other requirements for the `gemspec` gem.</div><div class='add'>+</div><div class='add'>+## SOURCE PRIORITY</div><div class='add'>+</div><div class='add'>+When attempting to locate a gem to satisfy a gem requirement,</div><div class='add'>+bundler uses the following priority order:</div><div class='add'>+</div><div class='add'>+  1. The source explicitly attached to the gem (using `:source`, `:path`, or</div><div class='add'>+     `:git`)</div><div class='add'>+  2. For implicit gems (dependencies of explicit gems), any source, git, or path</div><div class='add'>+     repository declared on the parent. This results in bundler prioritizing the</div><div class='add'>+     ActiveSupport gem from the Rails git repository over ones from</div><div class='add'>+     `rubygems.org`</div><div class='add'>+  3. If neither of the above conditions are met, the global source will be used.</div><div class='add'>+     If multiple global sources are specified, they will be prioritized from</div><div class='add'>+     last to first, but this is deprecated since Bundler 1.13, so Bundler prints</div><div class='add'>+     a warning and will abort with an error in the future.</div><div class='head'>diff --git a/lib/bundler/man/index.txt b/lib/bundler/man/index.txt<br/>new file mode 100644<br/>index 0000000000..24f7633e66<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/man/index.txt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/man/index.txt</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+Gemfile(5)            gemfile.5</div><div class='add'>+bundle(1)             bundle.1</div><div class='add'>+bundle-add(1)         bundle-add.1</div><div class='add'>+bundle-binstubs(1)    bundle-binstubs.1</div><div class='add'>+bundle-cache(1)       bundle-cache.1</div><div class='add'>+bundle-check(1)       bundle-check.1</div><div class='add'>+bundle-clean(1)       bundle-clean.1</div><div class='add'>+bundle-config(1)      bundle-config.1</div><div class='add'>+bundle-console(1)     bundle-console.1</div><div class='add'>+bundle-doctor(1)      bundle-doctor.1</div><div class='add'>+bundle-exec(1)        bundle-exec.1</div><div class='add'>+bundle-gem(1)         bundle-gem.1</div><div class='add'>+bundle-help(1)        bundle-help.1</div><div class='add'>+bundle-info(1)        bundle-info.1</div><div class='add'>+bundle-init(1)        bundle-init.1</div><div class='add'>+bundle-inject(1)      bundle-inject.1</div><div class='add'>+bundle-install(1)     bundle-install.1</div><div class='add'>+bundle-list(1)        bundle-list.1</div><div class='add'>+bundle-lock(1)        bundle-lock.1</div><div class='add'>+bundle-open(1)        bundle-open.1</div><div class='add'>+bundle-outdated(1)    bundle-outdated.1</div><div class='add'>+bundle-platform(1)    bundle-platform.1</div><div class='add'>+bundle-plugin(1)      bundle-plugin.1</div><div class='add'>+bundle-pristine(1)    bundle-pristine.1</div><div class='add'>+bundle-remove(1)      bundle-remove.1</div><div class='add'>+bundle-show(1)        bundle-show.1</div><div class='add'>+bundle-update(1)      bundle-update.1</div><div class='add'>+bundle-version(1)     bundle-version.1</div><div class='add'>+bundle-viz(1)         bundle-viz.1</div><div class='head'>diff --git a/lib/bundler/match_metadata.rb b/lib/bundler/match_metadata.rb<br/>new file mode 100644<br/>index 0000000000..499036ca93<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/match_metadata.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/match_metadata.rb</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  module MatchMetadata</div><div class='add'>+    def matches_current_ruby?</div><div class='add'>+      @required_ruby_version.satisfied_by?(Gem.ruby_version)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def matches_current_rubygems?</div><div class='add'>+      @required_rubygems_version.satisfied_by?(Gem.rubygems_version)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/match_platform.rb b/lib/bundler/match_platform.rb<br/>index 56cbbfb95d..7f7e8227f9 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/match_platform.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/match_platform.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/match_platform.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/match_platform.rb</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/gem_helpers"</div><div class='add'>+require_relative "gem_helpers"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   module MatchPlatform</div><div class='hunk'>@@ -15,7 +15,6 @@ module Bundler</div><div class='ctx'>       return true if Gem::Platform::RUBY == gemspec_platform</div><div class='ctx'>       return true if local_platform == gemspec_platform</div><div class='ctx'>       gemspec_platform = Gem::Platform.new(gemspec_platform)</div><div class='del'>-      return true if GemHelpers.generic(gemspec_platform) === local_platform</div><div class='ctx'>       return true if gemspec_platform === local_platform</div><div class='ctx'> </div><div class='ctx'>       false</div><div class='head'>diff --git a/lib/bundler/match_remote_metadata.rb b/lib/bundler/match_remote_metadata.rb<br/>new file mode 100644<br/>index 0000000000..5e46d52441<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/match_remote_metadata.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/match_remote_metadata.rb</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  module FetchMetadata</div><div class='add'>+    # A fallback is included because the original version of the specification</div><div class='add'>+    # API didn't include that field, so some marshalled specs in the index have it</div><div class='add'>+    # set to +nil+.</div><div class='add'>+    def matches_current_ruby?</div><div class='add'>+      @required_ruby_version ||= _remote_specification.required_ruby_version || Gem::Requirement.default</div><div class='add'>+</div><div class='add'>+      super</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def matches_current_rubygems?</div><div class='add'>+      # A fallback is included because the original version of the specification</div><div class='add'>+      # API didn't include that field, so some marshalled specs in the index have it</div><div class='add'>+      # set to +nil+.</div><div class='add'>+      @required_rubygems_version ||= _remote_specification.required_rubygems_version || Gem::Requirement.default</div><div class='add'>+</div><div class='add'>+      super</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module MatchRemoteMetadata</div><div class='add'>+    include MatchMetadata</div><div class='add'>+</div><div class='add'>+    prepend FetchMetadata</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/mirror.rb b/lib/bundler/mirror.rb<br/>index b15190e7e5..9d437a0951 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/mirror.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/mirror.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/mirror.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/mirror.rb</a></div><div class='hunk'>@@ -43,11 +43,11 @@ module Bundler</div><div class='ctx'>         config.update_mirror(mirror)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       def fetch_valid_mirror_for(uri)</div><div class='ctx'>         downcased = uri.to_s.downcase</div><div class='del'>-        mirror = @mirrors[downcased] || @mirrors[URI(downcased).host] || Mirror.new(uri)</div><div class='add'>+        mirror = @mirrors[downcased] || @mirrors[Bundler::URI(downcased).host] || Mirror.new(uri)</div><div class='ctx'>         mirror.validate!(@prober)</div><div class='ctx'>         mirror = Mirror.new(uri) unless mirror.valid?</div><div class='ctx'>         mirror</div><div class='hunk'>@@ -74,7 +74,7 @@ module Bundler</div><div class='ctx'>         @uri = if uri.nil?</div><div class='ctx'>           nil</div><div class='ctx'>         else</div><div class='del'>-          URI(uri.to_s)</div><div class='add'>+          Bundler::URI(uri.to_s)</div><div class='ctx'>         end</div><div class='ctx'>         @valid = nil</div><div class='ctx'>       end</div><div class='hunk'>@@ -126,7 +126,7 @@ module Bundler</div><div class='ctx'>         if uri == "all"</div><div class='ctx'>           @all = true</div><div class='ctx'>         else</div><div class='del'>-          @uri = URI(uri).absolute? ? Settings.normalize_uri(uri) : uri</div><div class='add'>+          @uri = Bundler::URI(uri).absolute? ? Settings.normalize_uri(uri) : uri</div><div class='ctx'>         end</div><div class='ctx'>         @value = value</div><div class='ctx'>       end</div><div class='hunk'>@@ -148,17 +148,15 @@ module Bundler</div><div class='ctx'>     class TCPSocketProbe</div><div class='ctx'>       def replies?(mirror)</div><div class='ctx'>         MirrorSockets.new(mirror).any? do |socket, address, timeout|</div><div class='del'>-          begin</div><div class='del'>-            socket.connect_nonblock(address)</div><div class='del'>-          rescue Errno::EINPROGRESS</div><div class='del'>-            wait_for_writtable_socket(socket, address, timeout)</div><div class='del'>-          rescue RuntimeError # Connection failed somehow, again</div><div class='del'>-            false</div><div class='del'>-          end</div><div class='add'>+          socket.connect_nonblock(address)</div><div class='add'>+        rescue Errno::EINPROGRESS</div><div class='add'>+          wait_for_writtable_socket(socket, address, timeout)</div><div class='add'>+        rescue RuntimeError # Connection failed somehow, again</div><div class='add'>+          false</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       def wait_for_writtable_socket(socket, address, timeout)</div><div class='ctx'>         if IO.select(nil, [socket], nil, timeout)</div><div class='head'>diff --git a/lib/bundler/plugin.rb b/lib/bundler/plugin.rb<br/>index 53f9806b73..f3caff8963 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/plugin.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/plugin.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/plugin.rb</a></div><div class='hunk'>@@ -1,22 +1,23 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/plugin/api"</div><div class='add'>+require_relative "plugin/api"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   module Plugin</div><div class='del'>-    autoload :DSL,        "bundler/plugin/dsl"</div><div class='del'>-    autoload :Events,     "bundler/plugin/events"</div><div class='del'>-    autoload :Index,      "bundler/plugin/index"</div><div class='del'>-    autoload :Installer,  "bundler/plugin/installer"</div><div class='del'>-    autoload :SourceList, "bundler/plugin/source_list"</div><div class='add'>+    autoload :DSL,        File.expand_path("plugin/dsl", __dir__)</div><div class='add'>+    autoload :Events,     File.expand_path("plugin/events", __dir__)</div><div class='add'>+    autoload :Index,      File.expand_path("plugin/index", __dir__)</div><div class='add'>+    autoload :Installer,  File.expand_path("plugin/installer", __dir__)</div><div class='add'>+    autoload :SourceList, File.expand_path("plugin/source_list", __dir__)</div><div class='ctx'> </div><div class='ctx'>     class MalformattedPlugin &lt; PluginError; end</div><div class='ctx'>     class UndefinedCommandError &lt; PluginError; end</div><div class='ctx'>     class UnknownSourceError &lt; PluginError; end</div><div class='add'>+    class PluginInstallError &lt; PluginError; end</div><div class='ctx'> </div><div class='del'>-    PLUGIN_FILE_NAME = "plugins.rb".freeze</div><div class='add'>+    PLUGIN_FILE_NAME = "plugins.rb"</div><div class='ctx'> </div><div class='del'>-  module_function</div><div class='add'>+    module_function</div><div class='ctx'> </div><div class='ctx'>     def reset!</div><div class='ctx'>       instance_variables.each {|i| remove_instance_variable(i) }</div><div class='hunk'>@@ -35,16 +36,62 @@ module Bundler</div><div class='ctx'>     # @param [Hash] options various parameters as described in description.</div><div class='ctx'>     #               Refer to cli/plugin for available options</div><div class='ctx'>     def install(names, options)</div><div class='add'>+      raise InvalidOption, "You cannot specify `--branch` and `--ref` at the same time." if options["branch"] &amp;&amp; options["ref"]</div><div class='add'>+</div><div class='ctx'>       specs = Installer.new.install(names, options)</div><div class='ctx'> </div><div class='ctx'>       save_plugins names, specs</div><div class='del'>-    rescue PluginError =&gt; e</div><div class='del'>-      if specs</div><div class='del'>-        specs_to_delete = Hash[specs.select {|k, _v| names.include?(k) &amp;&amp; !index.commands.values.include?(k) }]</div><div class='del'>-        specs_to_delete.values.each {|spec| Bundler.rm_rf(spec.full_gem_path) }</div><div class='add'>+    rescue PluginError</div><div class='add'>+      specs_to_delete = specs.select {|k, _v| names.include?(k) &amp;&amp; !index.commands.values.include?(k) }</div><div class='add'>+      specs_to_delete.each_value {|spec| Bundler.rm_rf(spec.full_gem_path) }</div><div class='add'>+</div><div class='add'>+      raise</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Uninstalls plugins by the given names</div><div class='add'>+    #</div><div class='add'>+    # @param [Array&lt;String&gt;] names the names of plugins to be uninstalled</div><div class='add'>+    def uninstall(names, options)</div><div class='add'>+      if names.empty? &amp;&amp; !options[:all]</div><div class='add'>+        Bundler.ui.error "No plugins to uninstall. Specify at least 1 plugin to uninstall.\n"\</div><div class='add'>+          "Use --all option to uninstall all the installed plugins."</div><div class='add'>+        return</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      Bundler.ui.error "Failed to install plugin #{name}: #{e.message}\n  #{e.backtrace.join("\n ")}"</div><div class='add'>+      names = index.installed_plugins if options[:all]</div><div class='add'>+      if names.any?</div><div class='add'>+        names.each do |name|</div><div class='add'>+          if index.installed?(name)</div><div class='add'>+            Bundler.rm_rf(index.plugin_path(name))</div><div class='add'>+            index.unregister_plugin(name)</div><div class='add'>+            Bundler.ui.info "Uninstalled plugin #{name}"</div><div class='add'>+          else</div><div class='add'>+            Bundler.ui.error "Plugin #{name} is not installed \n"</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        Bundler.ui.info "No plugins installed"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # List installed plugins and commands</div><div class='add'>+    #</div><div class='add'>+    def list</div><div class='add'>+      installed_plugins = index.installed_plugins</div><div class='add'>+      if installed_plugins.any?</div><div class='add'>+        output = String.new</div><div class='add'>+        installed_plugins.each do |plugin|</div><div class='add'>+          output &lt;&lt; "#{plugin}\n"</div><div class='add'>+          output &lt;&lt; "-----\n"</div><div class='add'>+          index.plugin_commands(plugin).each do |command|</div><div class='add'>+            output &lt;&lt; "  #{command}\n"</div><div class='add'>+          end</div><div class='add'>+          output &lt;&lt; "\n"</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        output = "No plugins installed"</div><div class='add'>+      end</div><div class='add'>+      Bundler.ui.info output</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Evaluates the Gemfile with a limited DSL and installs the plugins</div><div class='hunk'>@@ -53,20 +100,23 @@ module Bundler</div><div class='ctx'>     # @param [Pathname] gemfile path</div><div class='ctx'>     # @param [Proc] block that can be evaluated for (inline) Gemfile</div><div class='ctx'>     def gemfile_install(gemfile = nil, &amp;inline)</div><div class='del'>-      builder = DSL.new</div><div class='del'>-      if block_given?</div><div class='del'>-        builder.instance_eval(&amp;inline)</div><div class='del'>-      else</div><div class='del'>-        builder.eval_gemfile(gemfile)</div><div class='add'>+      Bundler.settings.temporary(:frozen =&gt; false, :deployment =&gt; false) do</div><div class='add'>+        builder = DSL.new</div><div class='add'>+        if block_given?</div><div class='add'>+          builder.instance_eval(&amp;inline)</div><div class='add'>+        else</div><div class='add'>+          builder.eval_gemfile(gemfile)</div><div class='add'>+        end</div><div class='add'>+        builder.check_primary_source_safety</div><div class='add'>+        definition = builder.to_definition(nil, true)</div><div class='add'>+</div><div class='add'>+        return if definition.dependencies.empty?</div><div class='add'>+</div><div class='add'>+        plugins = definition.dependencies.map(&amp;:name).reject {|p| index.installed? p }</div><div class='add'>+        installed_specs = Installer.new.install_definition(definition)</div><div class='add'>+</div><div class='add'>+        save_plugins plugins, installed_specs, builder.inferred_plugins</div><div class='ctx'>       end</div><div class='del'>-      definition = builder.to_definition(nil, true)</div><div class='del'>-</div><div class='del'>-      return if definition.dependencies.empty?</div><div class='del'>-</div><div class='del'>-      plugins = definition.dependencies.map(&amp;:name).reject {|p| index.installed? p }</div><div class='del'>-      installed_specs = Installer.new.install_definition(definition)</div><div class='del'>-</div><div class='del'>-      save_plugins plugins, installed_specs, builder.inferred_plugins</div><div class='ctx'>     rescue RuntimeError =&gt; e</div><div class='ctx'>       unless e.is_a?(GemfileError)</div><div class='ctx'>         Bundler.ui.error "Failed to install plugin: #{e.message}\n  #{e.backtrace[0]}"</div><div class='hunk'>@@ -116,7 +166,7 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # To be called from Cli class to pass the command and argument to</div><div class='del'>-    # approriate plugin class</div><div class='add'>+    # appropriate plugin class</div><div class='ctx'>     def exec_command(command, args)</div><div class='ctx'>       raise UndefinedCommandError, "Command `#{command}` not found" unless command? command</div><div class='ctx'> </div><div class='hunk'>@@ -135,7 +185,7 @@ module Bundler</div><div class='ctx'>       !index.source_plugin(name.to_s).nil?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # @return [Class] that handles the source. The calss includes API::Source</div><div class='add'>+    # @return [Class] that handles the source. The class includes API::Source</div><div class='ctx'>     def source(name)</div><div class='ctx'>       raise UnknownSourceError, "Source #{name} not found" unless source? name</div><div class='ctx'> </div><div class='hunk'>@@ -197,10 +247,11 @@ module Bundler</div><div class='ctx'>     # @param [Array&lt;String&gt;] names of inferred source plugins that can be ignored</div><div class='ctx'>     def save_plugins(plugins, specs, optional_plugins = [])</div><div class='ctx'>       plugins.each do |name|</div><div class='add'>+        next if index.installed?(name)</div><div class='add'>+</div><div class='ctx'>         spec = specs[name]</div><div class='del'>-        validate_plugin! Pathname.new(spec.full_gem_path)</div><div class='del'>-        installed = register_plugin(name, spec, optional_plugins.include?(name))</div><div class='del'>-        Bundler.ui.info "Installed plugin #{name}" if installed</div><div class='add'>+</div><div class='add'>+        save_plugin(name, spec, optional_plugins.include?(name))</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -215,6 +266,22 @@ module Bundler</div><div class='ctx'>       raise MalformattedPlugin, "#{PLUGIN_FILE_NAME} was not found in the plugin." unless plugin_file.file?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Validates and registers a plugin.</div><div class='add'>+    #</div><div class='add'>+    # @param [String] name the name of the plugin</div><div class='add'>+    # @param [Specification] spec of installed plugin</div><div class='add'>+    # @param [Boolean] optional_plugin, removed if there is conflict with any</div><div class='add'>+    #                     other plugin (used for default source plugins)</div><div class='add'>+    #</div><div class='add'>+    # @raise [PluginInstallError] if validation or registration raises any error</div><div class='add'>+    def save_plugin(name, spec, optional_plugin = false)</div><div class='add'>+      validate_plugin! Pathname.new(spec.full_gem_path)</div><div class='add'>+      installed = register_plugin(name, spec, optional_plugin)</div><div class='add'>+      Bundler.ui.info "Installed plugin #{name}" if installed</div><div class='add'>+    rescue PluginError =&gt; e</div><div class='add'>+      raise PluginInstallError, "Failed to install plugin `#{spec.name}`, due to #{e.class} (#{e.message})"</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # Runs the plugins.rb file in an isolated namespace, records the plugin</div><div class='ctx'>     # actions it registers for and then passes the data to index to be stored.</div><div class='ctx'>     #</div><div class='hunk'>@@ -234,7 +301,7 @@ module Bundler</div><div class='ctx'>       @hooks_by_event = Hash.new {|h, k| h[k] = [] }</div><div class='ctx'> </div><div class='ctx'>       load_paths = spec.load_paths</div><div class='del'>-      add_to_load_path(load_paths)</div><div class='add'>+      Bundler.rubygems.add_to_load_path(load_paths)</div><div class='ctx'>       path = Pathname.new spec.full_gem_path</div><div class='ctx'> </div><div class='ctx'>       begin</div><div class='hunk'>@@ -261,12 +328,14 @@ module Bundler</div><div class='ctx'>     #</div><div class='ctx'>     # @param [String] name of the plugin</div><div class='ctx'>     def load_plugin(name)</div><div class='add'>+      return unless name &amp;&amp; !name.empty?</div><div class='add'>+</div><div class='ctx'>       # Need to ensure before this that plugin root where the rest of gems</div><div class='ctx'>       # are installed to be on load path to support plugin deps. Currently not</div><div class='ctx'>       # done to avoid conflicts</div><div class='ctx'>       path = index.plugin_path(name)</div><div class='ctx'> </div><div class='del'>-      add_to_load_path(index.load_paths(name))</div><div class='add'>+      Bundler.rubygems.add_to_load_path(index.load_paths(name))</div><div class='ctx'> </div><div class='ctx'>       load path.join(PLUGIN_FILE_NAME)</div><div class='ctx'> </div><div class='hunk'>@@ -276,17 +345,8 @@ module Bundler</div><div class='ctx'>       raise</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def add_to_load_path(load_paths)</div><div class='del'>-      if insert_index = Bundler.rubygems.load_path_insert_index</div><div class='del'>-        $LOAD_PATH.insert(insert_index, *load_paths)</div><div class='del'>-      else</div><div class='del'>-        $LOAD_PATH.unshift(*load_paths)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     class &lt;&lt; self</div><div class='del'>-      private :load_plugin, :register_plugin, :save_plugins, :validate_plugin!,</div><div class='del'>-        :add_to_load_path</div><div class='add'>+      private :load_plugin, :register_plugin, :save_plugins, :validate_plugin!</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/plugin/api.rb b/lib/bundler/plugin/api.rb<br/>index a2d5cbb4ac..ee2bffe3ab 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/plugin/api.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/api.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/plugin/api.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/plugin/api.rb</a></div><div class='hunk'>@@ -23,7 +23,7 @@ module Bundler</div><div class='ctx'>   # and hooks).</div><div class='ctx'>   module Plugin</div><div class='ctx'>     class API</div><div class='del'>-      autoload :Source, "bundler/plugin/api/source"</div><div class='add'>+      autoload :Source, File.expand_path("api/source", __dir__)</div><div class='ctx'> </div><div class='ctx'>       # The plugins should declare that they handle a command through this helper.</div><div class='ctx'>       #</div><div class='head'>diff --git a/lib/bundler/plugin/api/source.rb b/lib/bundler/plugin/api/source.rb<br/>index 586477efb5..67c45bd204 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/plugin/api/source.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/api/source.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/plugin/api/source.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/plugin/api/source.rb</a></div><div class='hunk'>@@ -1,7 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "uri"</div><div class='del'>-</div><div class='ctx'> module Bundler</div><div class='ctx'>   module Plugin</div><div class='ctx'>     class API</div><div class='hunk'>@@ -37,7 +35,7 @@ module Bundler</div><div class='ctx'>       #</div><div class='ctx'>       # @!attribute [rw] dependency_names</div><div class='ctx'>       #   @return [Array&lt;String&gt;] Names of dependencies that the source should</div><div class='del'>-      #     try to resolve. It is not necessary to use this list intenally. This</div><div class='add'>+      #     try to resolve. It is not necessary to use this list internally. This</div><div class='ctx'>       #     is present to be compatible with `Definition` and is used by</div><div class='ctx'>       #     rubygems source.</div><div class='ctx'>       module Source</div><div class='hunk'>@@ -108,7 +106,7 @@ module Bundler</div><div class='ctx'>         def install_path</div><div class='ctx'>           @install_path ||=</div><div class='ctx'>             begin</div><div class='del'>-              base_name = File.basename(URI.parse(uri).normalize.path)</div><div class='add'>+              base_name = File.basename(Bundler::URI.parse(uri).normalize.path)</div><div class='ctx'> </div><div class='ctx'>               gem_install_dir.join("#{base_name}-#{uri_hash[0..11]}")</div><div class='ctx'>             end</div><div class='hunk'>@@ -142,6 +140,13 @@ module Bundler</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='add'>+        # Set internal representation to fetch the gems/specs locally.</div><div class='add'>+        #</div><div class='add'>+        # When this is called, the source should try to fetch the specs and</div><div class='add'>+        # install from the local system.</div><div class='add'>+        def local!</div><div class='add'>+        end</div><div class='add'>+</div><div class='ctx'>         # Set internal representation to fetch the gems/specs from remote.</div><div class='ctx'>         #</div><div class='ctx'>         # When this is called, the source should try to fetch the specs and</div><div class='hunk'>@@ -170,7 +175,7 @@ module Bundler</div><div class='ctx'>         #</div><div class='ctx'>         # This is used by `app_cache_path`</div><div class='ctx'>         def app_cache_dirname</div><div class='del'>-          base_name = File.basename(URI.parse(uri).normalize.path)</div><div class='add'>+          base_name = File.basename(Bundler::URI.parse(uri).normalize.path)</div><div class='ctx'>           "#{base_name}-#{uri_hash}"</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='hunk'>@@ -196,7 +201,7 @@ module Bundler</div><div class='ctx'>         # This shall check if two source object represent the same source.</div><div class='ctx'>         #</div><div class='ctx'>         # The comparison shall take place only on the attribute that can be</div><div class='del'>-        # inferred from the options passed from Gemfile and not on attibutes</div><div class='add'>+        # inferred from the options passed from Gemfile and not on attributes</div><div class='ctx'>         # that are used to pin down the gem to specific version (e.g. Git</div><div class='ctx'>         # sources should compare on branch and tag but not on commit hash)</div><div class='ctx'>         #</div><div class='hunk'>@@ -239,7 +244,21 @@ module Bundler</div><div class='ctx'>           specs.unmet_dependency_names</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='add'>+        # Used by definition.</div><div class='add'>+        #</div><div class='ctx'>         # Note: Do not override if you don't know what you are doing.</div><div class='add'>+        def spec_names</div><div class='add'>+          specs.spec_names</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        # Used by definition.</div><div class='add'>+        #</div><div class='add'>+        # Note: Do not override if you don't know what you are doing.</div><div class='add'>+        def add_dependency_names(names)</div><div class='add'>+          @dependencies |= Array(names)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        # NOTE: Do not override if you don't know what you are doing.</div><div class='ctx'>         def can_lock?(spec)</div><div class='ctx'>           spec.source == self</div><div class='ctx'>         end</div><div class='hunk'>@@ -262,10 +281,11 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         def to_s</div><div class='del'>-          "plugin source for #{options[:type]} with uri #{uri}"</div><div class='add'>+          "plugin source for #{@type} with uri #{@uri}"</div><div class='ctx'>         end</div><div class='add'>+        alias_method :identifier, :to_s</div><div class='ctx'> </div><div class='del'>-        # Note: Do not override if you don't know what you are doing.</div><div class='add'>+        # NOTE: Do not override if you don't know what you are doing.</div><div class='ctx'>         def include?(other)</div><div class='ctx'>           other == self</div><div class='ctx'>         end</div><div class='hunk'>@@ -274,7 +294,7 @@ module Bundler</div><div class='ctx'>           SharedHelpers.digest(:SHA1).hexdigest(uri)</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        # Note: Do not override if you don't know what you are doing.</div><div class='add'>+        # NOTE: Do not override if you don't know what you are doing.</div><div class='ctx'>         def gem_install_dir</div><div class='ctx'>           Bundler.install_path</div><div class='ctx'>         end</div><div class='hunk'>@@ -289,12 +309,6 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         # @private</div><div class='del'>-        # Returns true</div><div class='del'>-        def bundler_plugin_api_source?</div><div class='del'>-          true</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # @private</div><div class='ctx'>         # This API on source might not be stable, and for now we expect plugins</div><div class='ctx'>         # to download all specs in `#specs`, so we implement the method for</div><div class='ctx'>         # compatibility purposes and leave it undocumented (and don't support)</div><div class='head'>diff --git a/lib/bundler/plugin/dsl.rb b/lib/bundler/plugin/dsl.rb<br/>index 4bfc8437e0..da751d1774 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/plugin/dsl.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/dsl.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/plugin/dsl.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/plugin/dsl.rb</a></div><div class='hunk'>@@ -10,7 +10,7 @@ module Bundler</div><div class='ctx'>       # So that we don't have to override all there methods to dummy ones</div><div class='ctx'>       # explicitly.</div><div class='ctx'>       # They will be handled by method_missing</div><div class='del'>-      [:gemspec, :gem, :path, :install_if, :platforms, :env].each {|m| undef_method m }</div><div class='add'>+      [:gemspec, :gem, :install_if, :platforms, :env].each {|m| undef_method m }</div><div class='ctx'> </div><div class='ctx'>       # This lists the plugins that was added automatically and not specified by</div><div class='ctx'>       # the user.</div><div class='head'>diff --git a/lib/bundler/plugin/index.rb b/lib/bundler/plugin/index.rb<br/>index f09587dfda..a2d5eaa38a 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/plugin/index.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/index.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/plugin/index.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/plugin/index.rb</a></div><div class='hunk'>@@ -58,7 +58,10 @@ module Bundler</div><div class='ctx'>         raise SourceConflict.new(name, common) unless common.empty?</div><div class='ctx'>         sources.each {|k| @sources[k] = name }</div><div class='ctx'> </div><div class='del'>-        hooks.each {|e| (@hooks[e] ||= []) &lt;&lt; name }</div><div class='add'>+        hooks.each do |event|</div><div class='add'>+          event_hooks = (@hooks[event] ||= []) &lt;&lt; name</div><div class='add'>+          event_hooks.uniq!</div><div class='add'>+        end</div><div class='ctx'> </div><div class='ctx'>         @plugin_paths[name] = path</div><div class='ctx'>         @load_paths[name] = load_paths</div><div class='hunk'>@@ -68,6 +71,18 @@ module Bundler</div><div class='ctx'>         raise</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def unregister_plugin(name)</div><div class='add'>+        @commands.delete_if {|_, v| v == name }</div><div class='add'>+        @sources.delete_if {|_, v| v == name }</div><div class='add'>+        @hooks.each do |hook, names|</div><div class='add'>+          names.delete(name)</div><div class='add'>+          @hooks.delete(hook) if names.empty?</div><div class='add'>+        end</div><div class='add'>+        @plugin_paths.delete(name)</div><div class='add'>+        @load_paths.delete(name)</div><div class='add'>+        save_index</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       # Path of default index file</div><div class='ctx'>       def index_file</div><div class='ctx'>         Plugin.root.join("index")</div><div class='hunk'>@@ -100,6 +115,14 @@ module Bundler</div><div class='ctx'>         @plugin_paths[name]</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def installed_plugins</div><div class='add'>+        @plugin_paths.keys</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def plugin_commands(plugin)</div><div class='add'>+        @commands.find_all {|_, n| n == plugin }.map(&amp;:first)</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def source?(source)</div><div class='ctx'>         @sources.key? source</div><div class='ctx'>       end</div><div class='hunk'>@@ -113,7 +136,7 @@ module Bundler</div><div class='ctx'>         @hooks[event] || []</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       # Reads the index file from the directory and initializes the instance</div><div class='ctx'>       # variables.</div><div class='hunk'>@@ -123,12 +146,12 @@ module Bundler</div><div class='ctx'>       # @param [Boolean] is the index file global index</div><div class='ctx'>       def load_index(index_file, global = false)</div><div class='ctx'>         SharedHelpers.filesystem_access(index_file, :read) do |index_f|</div><div class='del'>-          valid_file = index_f &amp;&amp; index_f.exist? &amp;&amp; !index_f.size.zero?</div><div class='add'>+          valid_file = index_f&amp;.exist? &amp;&amp; !index_f.size.zero?</div><div class='ctx'>           break unless valid_file</div><div class='ctx'> </div><div class='ctx'>           data = index_f.read</div><div class='ctx'> </div><div class='del'>-          require "bundler/yaml_serializer"</div><div class='add'>+          require_relative "../yaml_serializer"</div><div class='ctx'>           index = YAMLSerializer.load(data)</div><div class='ctx'> </div><div class='ctx'>           @commands.merge!(index["commands"])</div><div class='hunk'>@@ -144,14 +167,14 @@ module Bundler</div><div class='ctx'>       # to be only String key value pairs)</div><div class='ctx'>       def save_index</div><div class='ctx'>         index = {</div><div class='del'>-          "commands"     =&gt; @commands,</div><div class='del'>-          "hooks"        =&gt; @hooks,</div><div class='del'>-          "load_paths"   =&gt; @load_paths,</div><div class='add'>+          "commands" =&gt; @commands,</div><div class='add'>+          "hooks" =&gt; @hooks,</div><div class='add'>+          "load_paths" =&gt; @load_paths,</div><div class='ctx'>           "plugin_paths" =&gt; @plugin_paths,</div><div class='del'>-          "sources"      =&gt; @sources,</div><div class='add'>+          "sources" =&gt; @sources,</div><div class='ctx'>         }</div><div class='ctx'> </div><div class='del'>-        require "bundler/yaml_serializer"</div><div class='add'>+        require_relative "../yaml_serializer"</div><div class='ctx'>         SharedHelpers.filesystem_access(index_file) do |index_f|</div><div class='ctx'>           FileUtils.mkdir_p(index_f.dirname)</div><div class='ctx'>           File.open(index_f, "w") {|f| f.puts YAMLSerializer.dump(index) }</div><div class='head'>diff --git a/lib/bundler/plugin/installer.rb b/lib/bundler/plugin/installer.rb<br/>index 5379c38979..c9ff12ce4b 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/plugin/installer.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/installer.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/plugin/installer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/plugin/installer.rb</a></div><div class='hunk'>@@ -8,18 +8,21 @@ module Bundler</div><div class='ctx'>   # are heavily dependent on the Gemfile.</div><div class='ctx'>   module Plugin</div><div class='ctx'>     class Installer</div><div class='del'>-      autoload :Rubygems, "bundler/plugin/installer/rubygems"</div><div class='del'>-      autoload :Git,      "bundler/plugin/installer/git"</div><div class='add'>+      autoload :Rubygems, File.expand_path("installer/rubygems", __dir__)</div><div class='add'>+      autoload :Git,      File.expand_path("installer/git", __dir__)</div><div class='ctx'> </div><div class='ctx'>       def install(names, options)</div><div class='add'>+        check_sources_consistency!(options)</div><div class='add'>+</div><div class='ctx'>         version = options[:version] || ["&gt;= 0"]</div><div class='del'>-        Bundler.settings.temporary(:lockfile_uses_separate_rubygems_sources =&gt; false, :disable_multisource =&gt; false) do</div><div class='del'>-          if options[:git]</div><div class='del'>-            install_git(names, version, options)</div><div class='del'>-          else</div><div class='del'>-            sources = options[:source] || Bundler.rubygems.sources</div><div class='del'>-            install_rubygems(names, version, sources)</div><div class='del'>-          end</div><div class='add'>+</div><div class='add'>+        if options[:git]</div><div class='add'>+          install_git(names, version, options)</div><div class='add'>+        elsif options[:local_git]</div><div class='add'>+          install_local_git(names, version, options)</div><div class='add'>+        else</div><div class='add'>+          sources = options[:source] || Gem.sources</div><div class='add'>+          install_rubygems(names, version, sources)</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -36,24 +39,26 @@ module Bundler</div><div class='ctx'>         install_from_specs specs</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def check_sources_consistency!(options)</div><div class='add'>+        if options.key?(:git) &amp;&amp; options.key?(:local_git)</div><div class='add'>+          raise InvalidOption, "Remote and local plugin git sources can't be both specified"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'> </div><div class='ctx'>       def install_git(names, version, options)</div><div class='ctx'>         uri = options.delete(:git)</div><div class='ctx'>         options["uri"] = uri</div><div class='ctx'> </div><div class='del'>-        source_list = SourceList.new</div><div class='del'>-        source_list.add_git_source(options)</div><div class='del'>-</div><div class='del'>-        # To support both sources</div><div class='del'>-        if options[:source]</div><div class='del'>-          source_list.add_rubygems_source("remotes" =&gt; options[:source])</div><div class='del'>-        end</div><div class='add'>+        install_all_sources(names, version, options, options[:source])</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-        deps = names.map {|name| Dependency.new name, version }</div><div class='add'>+      def install_local_git(names, version, options)</div><div class='add'>+        uri = options.delete(:local_git)</div><div class='add'>+        options["uri"] = uri</div><div class='ctx'> </div><div class='del'>-        definition = Definition.new(nil, deps, source_list, true)</div><div class='del'>-        install_definition(definition)</div><div class='add'>+        install_all_sources(names, version, options, options[:source])</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Installs the plugin from rubygems source and returns the path where the</div><div class='hunk'>@@ -65,13 +70,24 @@ module Bundler</div><div class='ctx'>       #</div><div class='ctx'>       # @return [Hash] map of names to the specs of plugins installed</div><div class='ctx'>       def install_rubygems(names, version, sources)</div><div class='del'>-        deps = names.map {|name| Dependency.new name, version }</div><div class='add'>+        install_all_sources(names, version, nil, sources)</div><div class='add'>+      end</div><div class='ctx'> </div><div class='add'>+      def install_all_sources(names, version, git_source_options, rubygems_source)</div><div class='ctx'>         source_list = SourceList.new</div><div class='del'>-        source_list.add_rubygems_source("remotes" =&gt; sources)</div><div class='ctx'> </div><div class='del'>-        definition = Definition.new(nil, deps, source_list, true)</div><div class='del'>-        install_definition(definition)</div><div class='add'>+        source_list.add_git_source(git_source_options) if git_source_options</div><div class='add'>+        Array(rubygems_source).each {|remote| source_list.add_global_rubygems_remote(remote) } if rubygems_source</div><div class='add'>+</div><div class='add'>+        deps = names.map {|name| Dependency.new name, version }</div><div class='add'>+</div><div class='add'>+        Bundler.configure_gem_home_and_path(Plugin.root)</div><div class='add'>+</div><div class='add'>+        Bundler.settings.temporary(:deployment =&gt; false, :frozen =&gt; false) do</div><div class='add'>+          definition = Definition.new(nil, deps, source_list, true)</div><div class='add'>+</div><div class='add'>+          install_definition(definition)</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Installs the plugins and deps from the provided specs and returns map of</div><div class='head'>diff --git a/lib/bundler/plugin/installer/git.rb b/lib/bundler/plugin/installer/git.rb<br/>index fbb6c5e40e..deec5e99b3 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/plugin/installer/git.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/installer/git.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/plugin/installer/git.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/plugin/installer/git.rb</a></div><div class='hunk'>@@ -20,10 +20,6 @@ module Bundler</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        def version_message(spec)</div><div class='del'>-          "#{spec.name} #{spec.version}"</div><div class='del'>-        end</div><div class='del'>-</div><div class='ctx'>         def root</div><div class='ctx'>           Plugin.root</div><div class='ctx'>         end</div><div class='head'>diff --git a/lib/bundler/plugin/installer/rubygems.rb b/lib/bundler/plugin/installer/rubygems.rb<br/>index 7ae74fa93b..cb5db9c30e 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/plugin/installer/rubygems.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/installer/rubygems.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/plugin/installer/rubygems.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/plugin/installer/rubygems.rb</a></div><div class='hunk'>@@ -4,15 +4,7 @@ module Bundler</div><div class='ctx'>   module Plugin</div><div class='ctx'>     class Installer</div><div class='ctx'>       class Rubygems &lt; Bundler::Source::Rubygems</div><div class='del'>-        def version_message(spec)</div><div class='del'>-          "#{spec.name} #{spec.version}"</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-      private</div><div class='del'>-</div><div class='del'>-        def requires_sudo?</div><div class='del'>-          false # Will change on implementation of project level plugins</div><div class='del'>-        end</div><div class='add'>+        private</div><div class='ctx'> </div><div class='ctx'>         def rubygems_dir</div><div class='ctx'>           Plugin.root</div><div class='head'>diff --git a/lib/bundler/plugin/source_list.rb b/lib/bundler/plugin/source_list.rb<br/>index f0e212205f..547661cf2f 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/plugin/source_list.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/plugin/source_list.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/plugin/source_list.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/plugin/source_list.rb</a></div><div class='hunk'>@@ -17,7 +17,11 @@ module Bundler</div><div class='ctx'>         path_sources + git_sources + rubygems_sources + [metadata_source]</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      def default_source</div><div class='add'>+        git_sources.first || global_rubygems_source</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       def rubygems_aggregate_class</div><div class='ctx'>         Plugin::Installer::Rubygems</div><div class='head'>diff --git a/lib/bundler/process_lock.rb b/lib/bundler/process_lock.rb<br/>index cba4fcdba5..0297f80e2c 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/process_lock.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/process_lock.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/process_lock.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/process_lock.rb</a></div><div class='hunk'>@@ -12,7 +12,7 @@ module Bundler</div><div class='ctx'>         yield</div><div class='ctx'>         f.flock(File::LOCK_UN)</div><div class='ctx'>       end</div><div class='del'>-    rescue Errno::EACCES, Errno::ENOLCK, *[SharedHelpers.const_get_safely(:ENOTSUP, Errno)].compact</div><div class='add'>+    rescue Errno::EACCES, Errno::ENOLCK, Errno::ENOTSUP, Errno::EPERM, Errno::EROFS</div><div class='ctx'>       # In the case the user does not have access to</div><div class='ctx'>       # create the lock file or is using NFS where</div><div class='ctx'>       # locks are not available we skip locking.</div><div class='head'>diff --git a/lib/bundler/psyched_yaml.rb b/lib/bundler/psyched_yaml.rb<br/>deleted file mode 100644<br/>index e654416a5a..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/psyched_yaml.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/psyched_yaml.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,37 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-# Psych could be a gem, so try to ask for it</div><div class='del'>-begin</div><div class='del'>-  gem "psych"</div><div class='del'>-rescue LoadError</div><div class='del'>-end if defined?(gem)</div><div class='del'>-</div><div class='del'>-# Psych could be in the stdlib</div><div class='del'>-# but it's too late if Syck is already loaded</div><div class='del'>-begin</div><div class='del'>-  require "psych" unless defined?(Syck)</div><div class='del'>-rescue LoadError</div><div class='del'>-  # Apparently Psych wasn't available. Oh well.</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-# At least load the YAML stdlib, whatever that may be</div><div class='del'>-require "yaml" unless defined?(YAML.dump)</div><div class='del'>-</div><div class='del'>-module Bundler</div><div class='del'>-  # On encountering invalid YAML,</div><div class='del'>-  # Psych raises Psych::SyntaxError</div><div class='del'>-  if defined?(::Psych::SyntaxError)</div><div class='del'>-    YamlLibrarySyntaxError = ::Psych::SyntaxError</div><div class='del'>-  else # Syck raises ArgumentError</div><div class='del'>-    YamlLibrarySyntaxError = ::ArgumentError</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-require "bundler/deprecate"</div><div class='del'>-begin</div><div class='del'>-  Bundler::Deprecate.skip_during do</div><div class='del'>-    require "rubygems/safe_yaml"</div><div class='del'>-  end</div><div class='del'>-rescue LoadError</div><div class='del'>-  # it's OK if the file isn't there</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/remote_specification.rb b/lib/bundler/remote_specification.rb<br/>index 23e1234330..f626a3218e 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/remote_specification.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/remote_specification.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/remote_specification.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/remote_specification.rb</a></div><div class='hunk'>@@ -1,13 +1,12 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "uri"</div><div class='del'>-</div><div class='ctx'> module Bundler</div><div class='ctx'>   # Represents a lazily loaded gem specification, where the full specification</div><div class='ctx'>   # is on the source server in rubygems' "quick" index. The proxy object is to</div><div class='ctx'>   # be seeded with what we're given from the source's abbreviated index - the</div><div class='ctx'>   # full specification will only be fetched when necessary.</div><div class='ctx'>   class RemoteSpecification</div><div class='add'>+    include MatchRemoteMetadata</div><div class='ctx'>     include MatchPlatform</div><div class='ctx'>     include Comparable</div><div class='ctx'> </div><div class='hunk'>@@ -18,7 +17,8 @@ module Bundler</div><div class='ctx'>     def initialize(name, version, platform, spec_fetcher)</div><div class='ctx'>       @name         = name</div><div class='ctx'>       @version      = Gem::Version.create version</div><div class='del'>-      @platform     = platform</div><div class='add'>+      @original_platform = platform || Gem::Platform::RUBY</div><div class='add'>+      @platform     = Gem::Platform.new(platform)</div><div class='ctx'>       @spec_fetcher = spec_fetcher</div><div class='ctx'>       @dependencies = nil</div><div class='ctx'>     end</div><div class='hunk'>@@ -30,10 +30,10 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def full_name</div><div class='del'>-      if platform == Gem::Platform::RUBY || platform.nil?</div><div class='add'>+      @full_name ||= if @platform == Gem::Platform::RUBY</div><div class='ctx'>         "#{@name}-#{@version}"</div><div class='ctx'>       else</div><div class='del'>-        "#{@name}-#{@version}-#{platform}"</div><div class='add'>+        "#{@name}-#{@version}-#{@platform}"</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -52,6 +52,8 @@ module Bundler</div><div class='ctx'>     # once the remote gem is downloaded, the backend specification will</div><div class='ctx'>     # be swapped out.</div><div class='ctx'>     def __swap__(spec)</div><div class='add'>+      raise APIResponseInvalidDependenciesError unless spec.dependencies.all? {|d| d.is_a?(Gem::Dependency) }</div><div class='add'>+</div><div class='ctx'>       SharedHelpers.ensure_same_dependencies(self, dependencies, spec.dependencies)</div><div class='ctx'>       @_remote_specification = spec</div><div class='ctx'>     end</div><div class='hunk'>@@ -78,7 +80,8 @@ module Bundler</div><div class='ctx'>         deps = method_missing(:dependencies)</div><div class='ctx'> </div><div class='ctx'>         # allow us to handle when the specs dependencies are an array of array of string</div><div class='del'>-        # see https://github.com/bundler/bundler/issues/5797</div><div class='add'>+        # in order to delay the crash to `#__swap__` where it results in a friendlier error</div><div class='add'>+        # see https://github.com/rubygems/bundler/issues/5797</div><div class='ctx'>         deps = deps.map {|d| d.is_a?(Gem::Dependency) ? d : Gem::Dependency.new(*d) }</div><div class='ctx'> </div><div class='ctx'>         deps</div><div class='hunk'>@@ -90,16 +93,16 @@ module Bundler</div><div class='ctx'>       " #{source.revision[0..6]}"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def to_ary</div><div class='ctx'>       nil</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def _remote_specification</div><div class='del'>-      @_remote_specification ||= @spec_fetcher.fetch_spec([@name, @version, @platform])</div><div class='add'>+      @_remote_specification ||= @spec_fetcher.fetch_spec([@name, @version, @original_platform])</div><div class='ctx'>       @_remote_specification || raise(GemspecError, "Gemspec data for #{full_name} was" \</div><div class='del'>-        " missing from the server! Try installing with `--full-index` as a workaround.")</div><div class='add'>+        " missing from the server!")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def method_missing(method, *args, &amp;blk)</div><div class='head'>diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb<br/>index 545b4cc88a..2ad35bc931 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/resolver.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/resolver.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/resolver.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/resolver.rb</a></div><div class='hunk'>@@ -1,373 +1,427 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='add'>+  #</div><div class='add'>+  # This class implements the interface needed by PubGrub for resolution. It is</div><div class='add'>+  # equivalent to the `PubGrub::BasicPackageSource` class provided by PubGrub by</div><div class='add'>+  # default and used by the most simple PubGrub consumers.</div><div class='add'>+  #</div><div class='ctx'>   class Resolver</div><div class='del'>-    require "bundler/vendored_molinillo"</div><div class='del'>-    require "bundler/resolver/spec_group"</div><div class='del'>-</div><div class='del'>-    # Figures out the best possible configuration of gems that satisfies</div><div class='del'>-    # the list of passed dependencies and any child dependencies without</div><div class='del'>-    # causing any gem activation errors.</div><div class='del'>-    #</div><div class='del'>-    # ==== Parameters</div><div class='del'>-    # *dependencies&lt;Gem::Dependency&gt;:: The list of dependencies to resolve</div><div class='del'>-    #</div><div class='del'>-    # ==== Returns</div><div class='del'>-    # &lt;GemBundle&gt;,nil:: If the list of dependencies can be resolved, a</div><div class='del'>-    #   collection of gemspecs is returned. Otherwise, nil is returned.</div><div class='del'>-    def self.resolve(requirements, index, source_requirements = {}, base = [], gem_version_promoter = GemVersionPromoter.new, additional_base_requirements = [], platforms = nil)</div><div class='del'>-      platforms = Set.new(platforms) if platforms</div><div class='del'>-      base = SpecSet.new(base) unless base.is_a?(SpecSet)</div><div class='del'>-      resolver = new(index, source_requirements, base, gem_version_promoter, additional_base_requirements, platforms)</div><div class='del'>-      result = resolver.start(requirements)</div><div class='del'>-      SpecSet.new(result)</div><div class='del'>-    end</div><div class='add'>+    require_relative "vendored_pub_grub"</div><div class='add'>+    require_relative "resolver/base"</div><div class='add'>+    require_relative "resolver/candidate"</div><div class='add'>+    require_relative "resolver/incompatibility"</div><div class='add'>+    require_relative "resolver/root"</div><div class='add'>+</div><div class='add'>+    include GemHelpers</div><div class='ctx'> </div><div class='del'>-    def initialize(index, source_requirements, base, gem_version_promoter, additional_base_requirements, platforms)</div><div class='del'>-      @index = index</div><div class='del'>-      @source_requirements = source_requirements</div><div class='add'>+    def initialize(base, gem_version_promoter)</div><div class='add'>+      @source_requirements = base.source_requirements</div><div class='ctx'>       @base = base</div><div class='del'>-      @resolver = Molinillo::Resolver.new(self, self)</div><div class='del'>-      @search_for = {}</div><div class='del'>-      @base_dg = Molinillo::DependencyGraph.new</div><div class='del'>-      @base.each do |ls|</div><div class='del'>-        dep = Dependency.new(ls.name, ls.version)</div><div class='del'>-        @base_dg.add_vertex(ls.name, DepProxy.new(dep, ls.platform), true)</div><div class='del'>-      end</div><div class='del'>-      additional_base_requirements.each {|d| @base_dg.add_vertex(d.name, d) }</div><div class='del'>-      @platforms = platforms</div><div class='ctx'>       @gem_version_promoter = gem_version_promoter</div><div class='del'>-      @allow_bundler_dependency_conflicts = Bundler.feature_flag.allow_bundler_dependency_conflicts?</div><div class='del'>-      @lockfile_uses_separate_rubygems_sources = Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?</div><div class='del'>-      @use_gvp = Bundler.feature_flag.use_gem_version_promoter_for_major_updates? || !@gem_version_promoter.major?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def start(requirements)</div><div class='del'>-      @gem_version_promoter.prerelease_specified = @prerelease_specified = {}</div><div class='del'>-      requirements.each {|dep| @prerelease_specified[dep.name] ||= dep.prerelease? }</div><div class='del'>-</div><div class='del'>-      verify_gemfile_dependencies_are_found!(requirements)</div><div class='del'>-      dg = @resolver.resolve(requirements, @base_dg)</div><div class='del'>-      dg.map(&amp;:payload).</div><div class='del'>-        reject {|sg| sg.name.end_with?("\0") }.</div><div class='del'>-        map(&amp;:to_specs).flatten</div><div class='del'>-    rescue Molinillo::VersionConflict =&gt; e</div><div class='del'>-      message = version_conflict_message(e)</div><div class='del'>-      raise VersionConflict.new(e.conflicts.keys.uniq, message)</div><div class='del'>-    rescue Molinillo::CircularDependencyError =&gt; e</div><div class='del'>-      names = e.dependencies.sort_by(&amp;:name).map {|d| "gem '#{d.name}'" }</div><div class='del'>-      raise CyclicDependencyError, "Your bundle requires gems that depend" \</div><div class='del'>-        " on each other, creating an infinite loop. Please remove" \</div><div class='del'>-        " #{names.count &gt; 1 ? "either " : ""}#{names.join(" or ")}" \</div><div class='del'>-        " and try again."</div><div class='add'>+    def start</div><div class='add'>+      @requirements = @base.requirements</div><div class='add'>+      @packages = @base.packages</div><div class='add'>+</div><div class='add'>+      root, logger = setup_solver</div><div class='add'>+</div><div class='add'>+      Bundler.ui.info "Resolving dependencies...", true</div><div class='add'>+</div><div class='add'>+      solve_versions(:root =&gt; root, :logger =&gt; logger)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    include Molinillo::UI</div><div class='del'>-</div><div class='del'>-    # Conveys debug information to the user.</div><div class='del'>-    #</div><div class='del'>-    # @param [Integer] depth the current depth of the resolution process.</div><div class='del'>-    # @return [void]</div><div class='del'>-    def debug(depth = 0)</div><div class='del'>-      return unless debug?</div><div class='del'>-      debug_info = yield</div><div class='del'>-      debug_info = debug_info.inspect unless debug_info.is_a?(String)</div><div class='del'>-      STDERR.puts debug_info.split("\n").map {|s| "  " * depth + s }</div><div class='add'>+    def setup_solver</div><div class='add'>+      root = Resolver::Root.new(name_for_explicit_dependency_source)</div><div class='add'>+      root_version = Resolver::Candidate.new(0)</div><div class='add'>+</div><div class='add'>+      @all_specs = Hash.new do |specs, name|</div><div class='add'>+        specs[name] = source_for(name).specs.search(name).reject do |s|</div><div class='add'>+          s.dependencies.any? {|d| d.name == name &amp;&amp; !d.requirement.satisfied_by?(s.version) } # ignore versions that depend on themselves incorrectly</div><div class='add'>+        end.sort_by {|s| [s.version, s.platform.to_s] }</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      @sorted_versions = Hash.new do |candidates, package|</div><div class='add'>+        candidates[package] = if package.root?</div><div class='add'>+          [root_version]</div><div class='add'>+        else</div><div class='add'>+          all_versions_for(package).sort</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      root_dependencies = prepare_dependencies(@requirements, @packages)</div><div class='add'>+</div><div class='add'>+      @cached_dependencies = Hash.new do |dependencies, package|</div><div class='add'>+        dependencies[package] = if package.root?</div><div class='add'>+          { root_version =&gt; root_dependencies }</div><div class='add'>+        else</div><div class='add'>+          Hash.new do |versions, version|</div><div class='add'>+            versions[version] = to_dependency_hash(version.dependencies.reject {|d| d.name == package.name }, @packages)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      logger = Bundler::UI::Shell.new</div><div class='add'>+      logger.level = debug? ? "debug" : "warn"</div><div class='add'>+</div><div class='add'>+      [root, logger]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def debug?</div><div class='del'>-      return @debug_mode if defined?(@debug_mode)</div><div class='del'>-      @debug_mode = ENV["DEBUG_RESOLVER"] || ENV["DEBUG_RESOLVER_TREE"] || false</div><div class='add'>+    def solve_versions(root:, logger:)</div><div class='add'>+      solver = PubGrub::VersionSolver.new(:source =&gt; self, :root =&gt; root, :logger =&gt; logger)</div><div class='add'>+      result = solver.solve</div><div class='add'>+      result.map {|package, version| version.to_specs(package) }.flatten.uniq</div><div class='add'>+    rescue PubGrub::SolveFailure =&gt; e</div><div class='add'>+      incompatibility = e.incompatibility</div><div class='add'>+</div><div class='add'>+      names_to_unlock, names_to_allow_prereleases_for, extended_explanation = find_names_to_relax(incompatibility)</div><div class='add'>+</div><div class='add'>+      names_to_relax = names_to_unlock + names_to_allow_prereleases_for</div><div class='add'>+</div><div class='add'>+      if names_to_relax.any?</div><div class='add'>+        if names_to_unlock.any?</div><div class='add'>+          Bundler.ui.debug "Found conflicts with locked dependencies. Will retry with #{names_to_unlock.join(", ")} unlocked...", true</div><div class='add'>+</div><div class='add'>+          @base.unlock_names(names_to_unlock)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        if names_to_allow_prereleases_for.any?</div><div class='add'>+          Bundler.ui.debug "Found conflicts with dependencies with prereleases. Will retrying considering prereleases for #{names_to_allow_prereleases_for.join(", ")}...", true</div><div class='add'>+</div><div class='add'>+          @base.include_prereleases(names_to_allow_prereleases_for)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        root, logger = setup_solver</div><div class='add'>+</div><div class='add'>+        Bundler.ui.debug "Retrying resolution...", true</div><div class='add'>+        retry</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      explanation = e.message</div><div class='add'>+</div><div class='add'>+      if extended_explanation</div><div class='add'>+        explanation &lt;&lt; "\n\n"</div><div class='add'>+        explanation &lt;&lt; extended_explanation</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      raise SolveFailure.new(explanation)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def before_resolution</div><div class='del'>-      Bundler.ui.info "Resolving dependencies...", debug?</div><div class='add'>+    def find_names_to_relax(incompatibility)</div><div class='add'>+      names_to_unlock = []</div><div class='add'>+      names_to_allow_prereleases_for = []</div><div class='add'>+      extended_explanation = nil</div><div class='add'>+</div><div class='add'>+      while incompatibility.conflict?</div><div class='add'>+        cause = incompatibility.cause</div><div class='add'>+        incompatibility = cause.incompatibility</div><div class='add'>+</div><div class='add'>+        incompatibility.terms.each do |term|</div><div class='add'>+          package = term.package</div><div class='add'>+          name = package.name</div><div class='add'>+</div><div class='add'>+          if base_requirements[name]</div><div class='add'>+            names_to_unlock &lt;&lt; name</div><div class='add'>+          elsif package.ignores_prereleases?</div><div class='add'>+            names_to_allow_prereleases_for &lt;&lt; name</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          no_versions_incompat = [cause.incompatibility, cause.satisfier].find {|incompat| incompat.cause.is_a?(PubGrub::Incompatibility::NoVersions) }</div><div class='add'>+          next unless no_versions_incompat</div><div class='add'>+</div><div class='add'>+          extended_explanation = no_versions_incompat.extended_explanation</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      [names_to_unlock.uniq, names_to_allow_prereleases_for.uniq, extended_explanation]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def after_resolution</div><div class='del'>-      Bundler.ui.info ""</div><div class='add'>+    def parse_dependency(package, dependency)</div><div class='add'>+      range = if repository_for(package).is_a?(Source::Gemspec)</div><div class='add'>+        PubGrub::VersionRange.any</div><div class='add'>+      else</div><div class='add'>+        requirement_to_range(dependency)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      PubGrub::VersionConstraint.new(package, :range =&gt; range)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def indicate_progress</div><div class='del'>-      Bundler.ui.info ".", false unless debug?</div><div class='add'>+    def versions_for(package, range=VersionRange.any)</div><div class='add'>+      versions = range.select_versions(@sorted_versions[package])</div><div class='add'>+</div><div class='add'>+      sort_versions(package, versions)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    include Molinillo::SpecificationProvider</div><div class='add'>+    def no_versions_incompatibility_for(package, unsatisfied_term)</div><div class='add'>+      cause = PubGrub::Incompatibility::NoVersions.new(unsatisfied_term)</div><div class='add'>+      name = package.name</div><div class='add'>+      constraint = unsatisfied_term.constraint</div><div class='add'>+      constraint_string = constraint.constraint_string</div><div class='add'>+      requirements = constraint_string.split(" OR ").map {|req| Gem::Requirement.new(req.split(",")) }</div><div class='ctx'> </div><div class='del'>-    def dependencies_for(specification)</div><div class='del'>-      specification.dependencies_for_activated_platforms</div><div class='add'>+      if name == "bundler" &amp;&amp; bundler_pinned_to_current_version?</div><div class='add'>+        custom_explanation = "the current Bundler version (#{Bundler::VERSION}) does not satisfy #{constraint}"</div><div class='add'>+        extended_explanation = bundler_not_found_message(requirements)</div><div class='add'>+      else</div><div class='add'>+        specs_matching_other_platforms = filter_matching_specs(@all_specs[name], requirements)</div><div class='add'>+</div><div class='add'>+        platforms_explanation = specs_matching_other_platforms.any? ? " for any resolution platforms (#{package.platforms.join(", ")})" : ""</div><div class='add'>+        custom_explanation = "#{constraint} could not be found in #{repository_for(package)}#{platforms_explanation}"</div><div class='add'>+</div><div class='add'>+        label = "#{name} (#{constraint_string})"</div><div class='add'>+        extended_explanation = other_specs_matching_message(specs_matching_other_platforms, label) if specs_matching_other_platforms.any?</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      Incompatibility.new([unsatisfied_term], :cause =&gt; cause, :custom_explanation =&gt; custom_explanation, :extended_explanation =&gt; extended_explanation)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def search_for(dependency)</div><div class='del'>-      platform = dependency.__platform</div><div class='del'>-      dependency = dependency.dep unless dependency.is_a? Gem::Dependency</div><div class='del'>-      search = @search_for[dependency] ||= begin</div><div class='del'>-        index = index_for(dependency)</div><div class='del'>-        results = index.search(dependency, @base[dependency.name])</div><div class='add'>+    def debug?</div><div class='add'>+      ENV["BUNDLER_DEBUG_RESOLVER"] ||</div><div class='add'>+        ENV["BUNDLER_DEBUG_RESOLVER_TREE"] ||</div><div class='add'>+        ENV["DEBUG_RESOLVER"] ||</div><div class='add'>+        ENV["DEBUG_RESOLVER_TREE"] ||</div><div class='add'>+        false</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-        if vertex = @base_dg.vertex_named(dependency.name)</div><div class='del'>-          locked_requirement = vertex.payload.requirement</div><div class='del'>-        end</div><div class='add'>+    def incompatibilities_for(package, version)</div><div class='add'>+      package_deps = @cached_dependencies[package]</div><div class='add'>+      sorted_versions = @sorted_versions[package]</div><div class='add'>+      package_deps[version].map do |dep_package, dep_constraint|</div><div class='add'>+        low = high = sorted_versions.index(version)</div><div class='ctx'> </div><div class='del'>-        if !@prerelease_specified[dependency.name] &amp;&amp; (!@use_gvp || locked_requirement.nil?)</div><div class='del'>-          # Move prereleases to the beginning of the list, so they're considered</div><div class='del'>-          # last during resolution.</div><div class='del'>-          pre, results = results.partition {|spec| spec.version.prerelease? }</div><div class='del'>-          results = pre + results</div><div class='add'>+        # find version low such that all &gt;= low share the same dep</div><div class='add'>+        while low &gt; 0 &amp;&amp; package_deps[sorted_versions[low - 1]][dep_package] == dep_constraint</div><div class='add'>+          low -= 1</div><div class='ctx'>         end</div><div class='del'>-</div><div class='del'>-        spec_groups = if results.any?</div><div class='del'>-          nested = []</div><div class='del'>-          results.each do |spec|</div><div class='del'>-            version, specs = nested.last</div><div class='del'>-            if version == spec.version</div><div class='del'>-              specs &lt;&lt; spec</div><div class='del'>-            else</div><div class='del'>-              nested &lt;&lt; [spec.version, [spec]]</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-          nested.reduce([]) do |groups, (version, specs)|</div><div class='del'>-            next groups if locked_requirement &amp;&amp; !locked_requirement.satisfied_by?(version)</div><div class='del'>-            spec_group = SpecGroup.new(specs)</div><div class='del'>-            spec_group.ignores_bundler_dependencies = @allow_bundler_dependency_conflicts</div><div class='del'>-            groups &lt;&lt; spec_group</div><div class='add'>+        low =</div><div class='add'>+          if low == 0</div><div class='add'>+            nil</div><div class='add'>+          else</div><div class='add'>+            sorted_versions[low]</div><div class='ctx'>           end</div><div class='del'>-        else</div><div class='del'>-          []</div><div class='add'>+</div><div class='add'>+        # find version high such that all &lt; high share the same dep</div><div class='add'>+        while high &lt; sorted_versions.length &amp;&amp; package_deps[sorted_versions[high]][dep_package] == dep_constraint</div><div class='add'>+          high += 1</div><div class='ctx'>         end</div><div class='del'>-        # GVP handles major itself, but it's still a bit risky to trust it with it</div><div class='del'>-        # until we get it settled with new behavior. For 2.x it can take over all cases.</div><div class='del'>-        if !@use_gvp</div><div class='del'>-          spec_groups</div><div class='del'>-        else</div><div class='del'>-          @gem_version_promoter.sort_versions(dependency, spec_groups)</div><div class='add'>+        high =</div><div class='add'>+          if high == sorted_versions.length</div><div class='add'>+            nil</div><div class='add'>+          else</div><div class='add'>+            sorted_versions[high]</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+        range = PubGrub::VersionRange.new(:min =&gt; low, :max =&gt; high, :include_min =&gt; true)</div><div class='add'>+</div><div class='add'>+        self_constraint = PubGrub::VersionConstraint.new(package, :range =&gt; range)</div><div class='add'>+</div><div class='add'>+        dep_term = PubGrub::Term.new(dep_constraint, false)</div><div class='add'>+        self_term = PubGrub::Term.new(self_constraint, true)</div><div class='add'>+</div><div class='add'>+        custom_explanation = if dep_package.meta? &amp;&amp; package.root?</div><div class='add'>+          "current #{dep_package} version is #{dep_constraint.constraint_string}"</div><div class='ctx'>         end</div><div class='add'>+</div><div class='add'>+        PubGrub::Incompatibility.new([self_term, dep_term], :cause =&gt; :dependency, :custom_explanation =&gt; custom_explanation)</div><div class='ctx'>       end</div><div class='del'>-      search.select {|sg| sg.for?(platform) }.each {|sg| sg.activate_platform!(platform) }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def index_for(dependency)</div><div class='del'>-      source = @source_requirements[dependency.name]</div><div class='del'>-      if source</div><div class='del'>-        source.specs</div><div class='del'>-      elsif @lockfile_uses_separate_rubygems_sources</div><div class='del'>-        Index.build do |idx|</div><div class='del'>-          if dependency.all_sources</div><div class='del'>-            dependency.all_sources.each {|s| idx.add_source(s.specs) if s }</div><div class='del'>-          else</div><div class='del'>-            idx.add_source @source_requirements[:default].specs</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        @index</div><div class='add'>+    def all_versions_for(package)</div><div class='add'>+      name = package.name</div><div class='add'>+      results = (@base[name] + filter_prereleases(@all_specs[name], package)).uniq {|spec| [spec.version.hash, spec.platform] }</div><div class='add'>+</div><div class='add'>+      if name == "bundler" &amp;&amp; !bundler_pinned_to_current_version?</div><div class='add'>+        bundler_spec = Gem.loaded_specs["bundler"]</div><div class='add'>+        results &lt;&lt; bundler_spec if bundler_spec</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      locked_requirement = base_requirements[name]</div><div class='add'>+      results = filter_matching_specs(results, locked_requirement) if locked_requirement</div><div class='add'>+</div><div class='add'>+      versions = results.group_by(&amp;:version).reduce([]) do |groups, (version, specs)|</div><div class='add'>+        platform_specs = package.platforms.flat_map {|platform| select_best_platform_match(specs, platform) }</div><div class='add'>+        next groups if platform_specs.empty?</div><div class='add'>+</div><div class='add'>+        ruby_specs = select_best_platform_match(specs, Gem::Platform::RUBY)</div><div class='add'>+        groups &lt;&lt; Resolver::Candidate.new(version, :specs =&gt; ruby_specs) if ruby_specs.any?</div><div class='add'>+</div><div class='add'>+        next groups if platform_specs == ruby_specs || package.force_ruby_platform?</div><div class='add'>+</div><div class='add'>+        groups &lt;&lt; Resolver::Candidate.new(version, :specs =&gt; platform_specs)</div><div class='add'>+</div><div class='add'>+        groups</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      sort_versions(package, versions)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def name_for(dependency)</div><div class='del'>-      dependency.name</div><div class='add'>+    def source_for(name)</div><div class='add'>+      @source_requirements[name] || @source_requirements[:default]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def default_bundler_source</div><div class='add'>+      @source_requirements[:default_bundler]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def bundler_pinned_to_current_version?</div><div class='add'>+      !default_bundler_source.nil?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def name_for_explicit_dependency_source</div><div class='ctx'>       Bundler.default_gemfile.basename.to_s</div><div class='del'>-    rescue</div><div class='add'>+    rescue StandardError</div><div class='ctx'>       "Gemfile"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def name_for_locking_dependency_source</div><div class='del'>-      Bundler.default_lockfile.basename.to_s</div><div class='del'>-    rescue</div><div class='del'>-      "Gemfile.lock"</div><div class='del'>-    end</div><div class='add'>+    def raise_not_found!(package)</div><div class='add'>+      name = package.name</div><div class='add'>+      source = source_for(name)</div><div class='add'>+      specs = @all_specs[name]</div><div class='add'>+      matching_part = name</div><div class='add'>+      requirement_label = SharedHelpers.pretty_dependency(package.dependency)</div><div class='add'>+      cache_message = begin</div><div class='add'>+                          " or in gems cached in #{Bundler.settings.app_cache_path}" if Bundler.app_cache.exist?</div><div class='add'>+                        rescue GemfileNotFound</div><div class='add'>+                          nil</div><div class='add'>+                        end</div><div class='add'>+      specs_matching_requirement = filter_matching_specs(specs, package.dependency.requirement)</div><div class='add'>+</div><div class='add'>+      if specs_matching_requirement.any?</div><div class='add'>+        specs = specs_matching_requirement</div><div class='add'>+        matching_part = requirement_label</div><div class='add'>+        platforms = package.platforms</div><div class='add'>+        platform_label = platforms.size == 1 ? "platform '#{platforms.first}" : "platforms '#{platforms.join("', '")}"</div><div class='add'>+        requirement_label = "#{requirement_label}' with #{platform_label}"</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-    def requirement_satisfied_by?(requirement, activated, spec)</div><div class='del'>-      return false unless requirement.matches_spec?(spec) || spec.source.is_a?(Source::Gemspec)</div><div class='del'>-      spec.activate_platform!(requirement.__platform) if !@platforms || @platforms.include?(requirement.__platform)</div><div class='del'>-      true</div><div class='del'>-    end</div><div class='add'>+      message = String.new("Could not find gem '#{requirement_label}' in #{source}#{cache_message}.\n")</div><div class='ctx'> </div><div class='del'>-    def relevant_sources_for_vertex(vertex)</div><div class='del'>-      if vertex.root?</div><div class='del'>-        [@source_requirements[vertex.name]]</div><div class='del'>-      elsif @lockfile_uses_separate_rubygems_sources</div><div class='del'>-        vertex.recursive_predecessors.map do |v|</div><div class='del'>-          @source_requirements[v.name]</div><div class='del'>-        end &lt;&lt; @source_requirements[:default]</div><div class='add'>+      if specs.any?</div><div class='add'>+        message &lt;&lt; "\n#{other_specs_matching_message(specs, matching_part)}"</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      raise GemNotFound, message</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def sort_dependencies(dependencies, activated, conflicts)</div><div class='del'>-      dependencies.sort_by do |dependency|</div><div class='del'>-        dependency.all_sources = relevant_sources_for_vertex(activated.vertex_named(dependency.name))</div><div class='del'>-        name = name_for(dependency)</div><div class='del'>-        vertex = activated.vertex_named(name)</div><div class='del'>-        [</div><div class='del'>-          @base_dg.vertex_named(name) ? 0 : 1,</div><div class='del'>-          vertex.payload ? 0 : 1,</div><div class='del'>-          vertex.root? ? 0 : 1,</div><div class='del'>-          amount_constrained(dependency),</div><div class='del'>-          conflicts[name] ? 0 : 1,</div><div class='del'>-          vertex.payload ? 0 : search_for(dependency).count,</div><div class='del'>-          self.class.platform_sort_key(dependency.__platform),</div><div class='del'>-        ]</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def filter_matching_specs(specs, requirements)</div><div class='add'>+      Array(requirements).flat_map do |requirement|</div><div class='add'>+        specs.select {| spec| requirement_satisfied_by?(requirement, spec) }</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sort platforms from most general to most specific</div><div class='del'>-    def self.sort_platforms(platforms)</div><div class='del'>-      platforms.sort_by do |platform|</div><div class='del'>-        platform_sort_key(platform)</div><div class='add'>+    def filter_prereleases(specs, package)</div><div class='add'>+      return specs unless package.ignores_prereleases? &amp;&amp; specs.size &gt; 1</div><div class='add'>+</div><div class='add'>+      specs.reject {|s| s.version.prerelease? }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def requirement_satisfied_by?(requirement, spec)</div><div class='add'>+      requirement.satisfied_by?(spec.version) || spec.source.is_a?(Source::Gemspec)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def sort_versions(package, versions)</div><div class='add'>+      if versions.size &gt; 1</div><div class='add'>+        @gem_version_promoter.sort_versions(package, versions).reverse</div><div class='add'>+      else</div><div class='add'>+        versions</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def self.platform_sort_key(platform)</div><div class='del'>-      return ["", "", ""] if Gem::Platform::RUBY == platform</div><div class='del'>-      platform.to_a.map {|part| part || "" }</div><div class='add'>+    def repository_for(package)</div><div class='add'>+      source_for(package.name)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='del'>-</div><div class='del'>-    # returns an integer \in (-\infty, 0]</div><div class='del'>-    # a number closer to 0 means the dependency is less constraining</div><div class='del'>-    #</div><div class='del'>-    # dependencies w/ 0 or 1 possibilities (ignoring version requirements)</div><div class='del'>-    # are given very negative values, so they _always_ sort first,</div><div class='del'>-    # before dependencies that are unconstrained</div><div class='del'>-    def amount_constrained(dependency)</div><div class='del'>-      @amount_constrained ||= {}</div><div class='del'>-      @amount_constrained[dependency.name] ||= begin</div><div class='del'>-        if (base = @base[dependency.name]) &amp;&amp; !base.empty?</div><div class='del'>-          dependency.requirement.satisfied_by?(base.first.version) ? 0 : 1</div><div class='del'>-        else</div><div class='del'>-          all = index_for(dependency).search(dependency.name).size</div><div class='add'>+    def base_requirements</div><div class='add'>+      @base.base_requirements</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-          if all &lt;= 1</div><div class='del'>-            all - 1_000_000</div><div class='del'>-          else</div><div class='del'>-            search = search_for(dependency)</div><div class='del'>-            search = @prerelease_specified[dependency.name] ? search.count : search.count {|s| !s.version.prerelease? }</div><div class='del'>-            search - all</div><div class='del'>-          end</div><div class='add'>+    def prepare_dependencies(requirements, packages)</div><div class='add'>+      to_dependency_hash(requirements, packages).map do |dep_package, dep_constraint|</div><div class='add'>+        name = dep_package.name</div><div class='add'>+</div><div class='add'>+        next [dep_package, dep_constraint] if name == "bundler"</div><div class='add'>+</div><div class='add'>+        versions = versions_for(dep_package, dep_constraint.range)</div><div class='add'>+        if versions.empty? &amp;&amp; dep_package.ignores_prereleases?</div><div class='add'>+          @sorted_versions.delete(dep_package)</div><div class='add'>+          dep_package.consider_prereleases!</div><div class='add'>+          versions = versions_for(dep_package, dep_constraint.range)</div><div class='ctx'>         end</div><div class='del'>-      end</div><div class='add'>+        next [dep_package, dep_constraint] unless versions.empty?</div><div class='add'>+</div><div class='add'>+        next unless dep_package.current_platform?</div><div class='add'>+</div><div class='add'>+        raise_not_found!(dep_package)</div><div class='add'>+      end.compact.to_h</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def other_specs_matching_message(specs, requirement)</div><div class='add'>+      message = String.new("The source contains the following gems matching '#{requirement}':\n")</div><div class='add'>+      message &lt;&lt; specs.map {|s| "  * #{s.full_name}" }.join("\n")</div><div class='add'>+      message</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def verify_gemfile_dependencies_are_found!(requirements)</div><div class='del'>-      requirements.each do |requirement|</div><div class='del'>-        name = requirement.name</div><div class='del'>-        next if name == "bundler"</div><div class='del'>-        next unless search_for(requirement).empty?</div><div class='del'>-</div><div class='del'>-        cache_message = begin</div><div class='del'>-                            " or in gems cached in #{Bundler.settings.app_cache_path}" if Bundler.app_cache.exist?</div><div class='del'>-                          rescue GemfileNotFound</div><div class='del'>-                            nil</div><div class='del'>-                          end</div><div class='del'>-</div><div class='del'>-        if (base = @base[name]) &amp;&amp; !base.empty?</div><div class='del'>-          version = base.first.version</div><div class='del'>-          message = "You have requested:\n" \</div><div class='del'>-            "  #{name} #{requirement.requirement}\n\n" \</div><div class='del'>-            "The bundle currently has #{name} locked at #{version}.\n" \</div><div class='del'>-            "Try running `bundle update #{name}`\n\n" \</div><div class='del'>-            "If you are updating multiple gems in your Gemfile at once,\n" \</div><div class='del'>-            "try passing them all to `bundle update`"</div><div class='del'>-        elsif source = @source_requirements[name]</div><div class='del'>-          specs = source.specs[name]</div><div class='del'>-          versions_with_platforms = specs.map {|s| [s.version, s.platform] }</div><div class='del'>-          message = String.new("Could not find gem '#{SharedHelpers.pretty_dependency(requirement)}' in #{source}#{cache_message}.\n")</div><div class='del'>-          message &lt;&lt; if versions_with_platforms.any?</div><div class='del'>-                       "The source contains '#{name}' at: #{formatted_versions_with_platforms(versions_with_platforms)}"</div><div class='del'>-                     else</div><div class='del'>-                       "The source does not contain any versions of '#{name}'"</div><div class='del'>-                     end</div><div class='add'>+    def requirement_to_range(requirement)</div><div class='add'>+      ranges = requirement.requirements.map do |(op, version)|</div><div class='add'>+        ver = Resolver::Candidate.new(version).generic!</div><div class='add'>+        platform_ver = Resolver::Candidate.new(version).platform_specific!</div><div class='add'>+</div><div class='add'>+        case op</div><div class='add'>+        when "~&gt;"</div><div class='add'>+          name = "~&gt; #{ver}"</div><div class='add'>+          bump = Resolver::Candidate.new(version.bump.to_s + ".A")</div><div class='add'>+          PubGrub::VersionRange.new(:name =&gt; name, :min =&gt; ver, :max =&gt; bump, :include_min =&gt; true)</div><div class='add'>+        when "&gt;"</div><div class='add'>+          PubGrub::VersionRange.new(:min =&gt; platform_ver)</div><div class='add'>+        when "&gt;="</div><div class='add'>+          PubGrub::VersionRange.new(:min =&gt; ver, :include_min =&gt; true)</div><div class='add'>+        when "&lt;"</div><div class='add'>+          PubGrub::VersionRange.new(:max =&gt; ver)</div><div class='add'>+        when "&lt;="</div><div class='add'>+          PubGrub::VersionRange.new(:max =&gt; platform_ver, :include_max =&gt; true)</div><div class='add'>+        when "="</div><div class='add'>+          PubGrub::VersionRange.new(:min =&gt; ver, :max =&gt; platform_ver, :include_min =&gt; true, :include_max =&gt; true)</div><div class='add'>+        when "!="</div><div class='add'>+          PubGrub::VersionRange.new(:min =&gt; ver, :max =&gt; platform_ver, :include_min =&gt; true, :include_max =&gt; true).invert</div><div class='ctx'>         else</div><div class='del'>-          message = "Could not find gem '#{requirement}' in any of the gem sources " \</div><div class='del'>-            "listed in your Gemfile#{cache_message}."</div><div class='add'>+          raise "bad version specifier: #{op}"</div><div class='ctx'>         end</div><div class='del'>-        raise GemNotFound, message</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      ranges.inject(&amp;:intersect)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def formatted_versions_with_platforms(versions_with_platforms)</div><div class='del'>-      version_platform_strs = versions_with_platforms.map do |vwp|</div><div class='del'>-        version = vwp.first</div><div class='del'>-        platform = vwp.last</div><div class='del'>-        version_platform_str = String.new(version.to_s)</div><div class='del'>-        version_platform_str &lt;&lt; " #{platform}" unless platform.nil? || platform == Gem::Platform::RUBY</div><div class='del'>-        version_platform_str</div><div class='add'>+    def to_dependency_hash(dependencies, packages)</div><div class='add'>+      dependencies.inject({}) do |deps, dep|</div><div class='add'>+        package = packages[dep.name]</div><div class='add'>+</div><div class='add'>+        current_req = deps[package]</div><div class='add'>+        new_req = parse_dependency(package, dep.requirement)</div><div class='add'>+</div><div class='add'>+        deps[package] = if current_req</div><div class='add'>+          current_req.intersect(new_req)</div><div class='add'>+        else</div><div class='add'>+          new_req</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        deps</div><div class='ctx'>       end</div><div class='del'>-      version_platform_strs.join(", ")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def version_conflict_message(e)</div><div class='del'>-      e.message_with_trees(</div><div class='del'>-        :solver_name =&gt; "Bundler",</div><div class='del'>-        :possibility_type =&gt; "gem",</div><div class='del'>-        :reduce_trees =&gt; lambda do |trees|</div><div class='del'>-          # called first, because we want to reduce the amount of work required to find maximal empty sets</div><div class='del'>-          trees = trees.uniq {|t| t.flatten.map {|dep| [dep.name, dep.requirement] } }</div><div class='del'>-</div><div class='del'>-          # bail out if tree size is too big for Array#combination to make any sense</div><div class='del'>-          return trees if trees.size &gt; 15</div><div class='del'>-          maximal = 1.upto(trees.size).map do |size|</div><div class='del'>-            trees.map(&amp;:last).flatten(1).combination(size).to_a</div><div class='del'>-          end.flatten(1).select do |deps|</div><div class='del'>-            Bundler::VersionRanges.empty?(*Bundler::VersionRanges.for_many(deps.map(&amp;:requirement)))</div><div class='del'>-          end.min_by(&amp;:size)</div><div class='del'>-          trees.reject! {|t| !maximal.include?(t.last) } if maximal</div><div class='del'>-</div><div class='del'>-          trees = trees.sort_by {|t| t.flatten.map(&amp;:to_s) }</div><div class='del'>-          trees.uniq! {|t| t.flatten.map {|dep| [dep.name, dep.requirement] } }</div><div class='del'>-</div><div class='del'>-          trees.sort_by {|t| t.reverse.map(&amp;:name) }</div><div class='del'>-        end,</div><div class='del'>-        :printable_requirement =&gt; lambda {|req| SharedHelpers.pretty_dependency(req) },</div><div class='del'>-        :additional_message_for_conflict =&gt; lambda do |o, name, conflict|</div><div class='del'>-          if name == "bundler"</div><div class='del'>-            o &lt;&lt; %(\n  Current Bundler version:\n    bundler (#{Bundler::VERSION}))</div><div class='del'>-            other_bundler_required = !conflict.requirement.requirement.satisfied_by?(Gem::Version.new Bundler::VERSION)</div><div class='del'>-          end</div><div class='add'>+    def bundler_not_found_message(conflict_dependencies)</div><div class='add'>+      candidate_specs = filter_matching_specs(default_bundler_source.specs.search("bundler"), conflict_dependencies)</div><div class='ctx'> </div><div class='del'>-          if name == "bundler" &amp;&amp; other_bundler_required</div><div class='del'>-            o &lt;&lt; "\n"</div><div class='del'>-            o &lt;&lt; "This Gemfile requires a different version of Bundler.\n"</div><div class='del'>-            o &lt;&lt; "Perhaps you need to update Bundler by running `gem install bundler`?\n"</div><div class='del'>-          end</div><div class='del'>-          if conflict.locked_requirement</div><div class='del'>-            o &lt;&lt; "\n"</div><div class='del'>-            o &lt;&lt; %(Running `bundle update` will rebuild your snapshot from scratch, using only\n)</div><div class='del'>-            o &lt;&lt; %(the gems in your Gemfile, which may resolve the conflict.\n)</div><div class='del'>-          elsif !conflict.existing</div><div class='del'>-            o &lt;&lt; "\n"</div><div class='del'>-</div><div class='del'>-            relevant_sources = if conflict.requirement.source</div><div class='del'>-              [conflict.requirement.source]</div><div class='del'>-            elsif conflict.requirement.all_sources</div><div class='del'>-              conflict.requirement.all_sources</div><div class='del'>-            elsif @lockfile_uses_separate_rubygems_sources</div><div class='del'>-              # every conflict should have an explicit group of sources when we</div><div class='del'>-              # enforce strict pinning</div><div class='del'>-              raise "no source set for #{conflict}"</div><div class='del'>-            else</div><div class='del'>-              []</div><div class='del'>-            end.compact.map(&amp;:to_s).uniq.sort</div><div class='del'>-</div><div class='del'>-            o &lt;&lt; "Could not find gem '#{SharedHelpers.pretty_dependency(conflict.requirement)}'"</div><div class='del'>-            if conflict.requirement_trees.first.size &gt; 1</div><div class='del'>-              o &lt;&lt; ", which is required by "</div><div class='del'>-              o &lt;&lt; "gem '#{SharedHelpers.pretty_dependency(conflict.requirement_trees.first[-2])}',"</div><div class='del'>-            end</div><div class='del'>-            o &lt;&lt; " "</div><div class='del'>-</div><div class='del'>-            o &lt;&lt; if relevant_sources.empty?</div><div class='del'>-                   "in any of the sources.\n"</div><div class='del'>-                 else</div><div class='del'>-                   "in any of the relevant sources:\n  #{relevant_sources * "\n  "}\n"</div><div class='del'>-                 end</div><div class='del'>-          end</div><div class='del'>-        end,</div><div class='del'>-        :version_for_spec =&gt; lambda {|spec| spec.version }</div><div class='del'>-      )</div><div class='add'>+      if candidate_specs.any?</div><div class='add'>+        target_version = candidate_specs.last.version</div><div class='add'>+        new_command = [File.basename($PROGRAM_NAME), "_#{target_version}_", *ARGV].join(" ")</div><div class='add'>+        "Your bundle requires a different version of Bundler than the one you're running.\n" \</div><div class='add'>+        "Install the necessary version with `gem install bundler:#{target_version}` and rerun bundler using `#{new_command}`\n"</div><div class='add'>+      else</div><div class='add'>+        "Your bundle requires a different version of Bundler than the one you're running, and that version could not be found.\n"</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/resolver/base.rb b/lib/bundler/resolver/base.rb<br/>new file mode 100644<br/>index 0000000000..e5c3763c3f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/resolver/base.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/resolver/base.rb</a></div><div class='hunk'>@@ -0,0 +1,107 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "package"</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  class Resolver</div><div class='add'>+    class Base</div><div class='add'>+      attr_reader :packages, :requirements, :source_requirements</div><div class='add'>+</div><div class='add'>+      def initialize(source_requirements, dependencies, base, platforms, options)</div><div class='add'>+        @source_requirements = source_requirements</div><div class='add'>+</div><div class='add'>+        @base = base</div><div class='add'>+</div><div class='add'>+        @packages = Hash.new do |hash, name|</div><div class='add'>+          hash[name] = Package.new(name, platforms, **options)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        @requirements = dependencies.map do |dep|</div><div class='add'>+          dep_platforms = dep.gem_platforms(platforms)</div><div class='add'>+</div><div class='add'>+          # Dependencies scoped to external platforms are ignored</div><div class='add'>+          next if dep_platforms.empty?</div><div class='add'>+</div><div class='add'>+          name = dep.name</div><div class='add'>+</div><div class='add'>+          @packages[name] = Package.new(name, dep_platforms, **options.merge(:dependency =&gt; dep))</div><div class='add'>+</div><div class='add'>+          dep</div><div class='add'>+        end.compact</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def [](name)</div><div class='add'>+        @base[name]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def delete(specs)</div><div class='add'>+        @base.delete(specs)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def get_package(name)</div><div class='add'>+        @packages[name]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def base_requirements</div><div class='add'>+        @base_requirements ||= build_base_requirements</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def unlock_names(names)</div><div class='add'>+        indirect_pins = indirect_pins(names)</div><div class='add'>+</div><div class='add'>+        if indirect_pins.any?</div><div class='add'>+          loosen_names(indirect_pins)</div><div class='add'>+        else</div><div class='add'>+          pins = pins(names)</div><div class='add'>+</div><div class='add'>+          if pins.any?</div><div class='add'>+            loosen_names(pins)</div><div class='add'>+          else</div><div class='add'>+            unrestrict_names(names)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def include_prereleases(names)</div><div class='add'>+        names.each do |name|</div><div class='add'>+          get_package(name).consider_prereleases!</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def indirect_pins(names)</div><div class='add'>+        names.select {|name| @base_requirements[name].exact? &amp;&amp; @requirements.none? {|dep| dep.name == name } }</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def pins(names)</div><div class='add'>+        names.select {|name| @base_requirements[name].exact? }</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def loosen_names(names)</div><div class='add'>+        names.each do |name|</div><div class='add'>+          version = @base_requirements[name].requirements.first[1]</div><div class='add'>+</div><div class='add'>+          @base_requirements[name] = Gem::Requirement.new("&gt;= #{version}")</div><div class='add'>+</div><div class='add'>+          @base.delete_by_name(name)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def unrestrict_names(names)</div><div class='add'>+        names.each do |name|</div><div class='add'>+          @base_requirements.delete(name)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def build_base_requirements</div><div class='add'>+        base_requirements = {}</div><div class='add'>+        @base.each do |ls|</div><div class='add'>+          req = Gem::Requirement.new(ls.version)</div><div class='add'>+          base_requirements[ls.name] = req</div><div class='add'>+        end</div><div class='add'>+        base_requirements</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/resolver/candidate.rb b/lib/bundler/resolver/candidate.rb<br/>new file mode 100644<br/>index 0000000000..e695ef08ee<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/resolver/candidate.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/resolver/candidate.rb</a></div><div class='hunk'>@@ -0,0 +1,94 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "spec_group"</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  class Resolver</div><div class='add'>+    #</div><div class='add'>+    # This class is a PubGrub compatible "Version" class that takes Bundler</div><div class='add'>+    # resolution complexities into account.</div><div class='add'>+    #</div><div class='add'>+    # Each Resolver::Candidate has a underlying `Gem::Version` plus a set of</div><div class='add'>+    # platforms. For example, 1.1.0-x86_64-linux is a different resolution candidate</div><div class='add'>+    # from 1.1.0 (generic). This is because different platform variants of the</div><div class='add'>+    # same gem version can bring different dependencies, so they need to be</div><div class='add'>+    # considered separately.</div><div class='add'>+    #</div><div class='add'>+    # Some candidates may also keep some information explicitly about the</div><div class='add'>+    # package the refer to. These candidates are referred to as "canonical" and</div><div class='add'>+    # are used when materializing resolution results back into RubyGems</div><div class='add'>+    # specifications that can be installed, written to lock files, and so on.</div><div class='add'>+    #</div><div class='add'>+    class Candidate</div><div class='add'>+      include Comparable</div><div class='add'>+</div><div class='add'>+      attr_reader :version</div><div class='add'>+</div><div class='add'>+      def initialize(version, specs: [])</div><div class='add'>+        @spec_group = Resolver::SpecGroup.new(specs)</div><div class='add'>+        @version = Gem::Version.new(version)</div><div class='add'>+        @ruby_only = specs.map(&amp;:platform).uniq == [Gem::Platform::RUBY]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def dependencies</div><div class='add'>+        @spec_group.dependencies</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def to_specs(package)</div><div class='add'>+        return [] if package.meta?</div><div class='add'>+</div><div class='add'>+        @spec_group.to_specs(package.force_ruby_platform?)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def generic!</div><div class='add'>+        @ruby_only = true</div><div class='add'>+</div><div class='add'>+        self</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def platform_specific!</div><div class='add'>+        @ruby_only = false</div><div class='add'>+</div><div class='add'>+        self</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def prerelease?</div><div class='add'>+        @version.prerelease?</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def segments</div><div class='add'>+        @version.segments</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def sort_obj</div><div class='add'>+        [@version, @ruby_only ? -1 : 1]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def &lt;=&gt;(other)</div><div class='add'>+        return unless other.is_a?(self.class)</div><div class='add'>+</div><div class='add'>+        sort_obj &lt;=&gt; other.sort_obj</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def ==(other)</div><div class='add'>+        return unless other.is_a?(self.class)</div><div class='add'>+</div><div class='add'>+        sort_obj == other.sort_obj</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def eql?(other)</div><div class='add'>+        return unless other.is_a?(self.class)</div><div class='add'>+</div><div class='add'>+        sort_obj.eql?(other.sort_obj)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def hash</div><div class='add'>+        sort_obj.hash</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def to_s</div><div class='add'>+        @version.to_s</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/resolver/incompatibility.rb b/lib/bundler/resolver/incompatibility.rb<br/>new file mode 100644<br/>index 0000000000..c61151fbeb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/resolver/incompatibility.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/resolver/incompatibility.rb</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  class Resolver</div><div class='add'>+    class Incompatibility &lt; PubGrub::Incompatibility</div><div class='add'>+      attr_reader :extended_explanation</div><div class='add'>+</div><div class='add'>+      def initialize(terms, cause:, custom_explanation: nil, extended_explanation: nil)</div><div class='add'>+        @extended_explanation = extended_explanation</div><div class='add'>+</div><div class='add'>+        super(terms, :cause =&gt; cause, :custom_explanation =&gt; custom_explanation)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/resolver/package.rb b/lib/bundler/resolver/package.rb<br/>new file mode 100644<br/>index 0000000000..7499a75006<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/resolver/package.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/resolver/package.rb</a></div><div class='hunk'>@@ -0,0 +1,72 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  class Resolver</div><div class='add'>+    #</div><div class='add'>+    # Represents a gem being resolved, in a format PubGrub likes.</div><div class='add'>+    #</div><div class='add'>+    # The class holds the following information:</div><div class='add'>+    #</div><div class='add'>+    # * Platforms this gem will be resolved on.</div><div class='add'>+    # * The locked version of this gem resolution should favor (if any).</div><div class='add'>+    # * Whether the gem should be unlocked to its latest version.</div><div class='add'>+    # * The dependency explicit set in the Gemfile for this gem (if any).</div><div class='add'>+    #</div><div class='add'>+    class Package</div><div class='add'>+      attr_reader :name, :platforms, :dependency, :locked_version</div><div class='add'>+</div><div class='add'>+      def initialize(name, platforms, locked_specs:, unlock:, prerelease: false, dependency: nil)</div><div class='add'>+        @name = name</div><div class='add'>+        @platforms = platforms</div><div class='add'>+        @locked_version = locked_specs[name].first&amp;.version</div><div class='add'>+        @unlock = unlock</div><div class='add'>+        @dependency = dependency || Dependency.new(name, @locked_version)</div><div class='add'>+        @prerelease = @dependency.prerelease? || @locked_version&amp;.prerelease? || prerelease ? :consider_first : :ignore</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def to_s</div><div class='add'>+        @name.delete("\0")</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def root?</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def meta?</div><div class='add'>+        @name.end_with?("\0")</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def ==(other)</div><div class='add'>+        self.class == other.class &amp;&amp; @name == other.name</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def hash</div><div class='add'>+        @name.hash</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def unlock?</div><div class='add'>+        @unlock.empty? || @unlock.include?(name)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def ignores_prereleases?</div><div class='add'>+        @prerelease == :ignore</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def prerelease_specified?</div><div class='add'>+        @prerelease == :consider_first</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def consider_prereleases!</div><div class='add'>+        @prerelease = :consider_last</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def force_ruby_platform?</div><div class='add'>+        @dependency.force_ruby_platform</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def current_platform?</div><div class='add'>+        @dependency.current_platform?</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/resolver/root.rb b/lib/bundler/resolver/root.rb<br/>new file mode 100644<br/>index 0000000000..e5eb634fb8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/resolver/root.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/resolver/root.rb</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "package"</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  class Resolver</div><div class='add'>+    #</div><div class='add'>+    # Represents the Gemfile from the resolver's perspective. It's the root</div><div class='add'>+    # package and Gemfile entries depend on it.</div><div class='add'>+    #</div><div class='add'>+    class Root &lt; Package</div><div class='add'>+      def initialize(name)</div><div class='add'>+        @name = name</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def meta?</div><div class='add'>+        true</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def root?</div><div class='add'>+        true</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/resolver/spec_group.rb b/lib/bundler/resolver/spec_group.rb<br/>index 34d043aed7..b44c19a73f 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/resolver/spec_group.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/resolver/spec_group.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/resolver/spec_group.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/resolver/spec_group.rb</a></div><div class='hunk'>@@ -3,104 +3,80 @@</div><div class='ctx'> module Bundler</div><div class='ctx'>   class Resolver</div><div class='ctx'>     class SpecGroup</div><div class='del'>-      include GemHelpers</div><div class='del'>-</div><div class='del'>-      attr_accessor :name, :version, :source</div><div class='del'>-      attr_accessor :ignores_bundler_dependencies</div><div class='del'>-</div><div class='del'>-      def initialize(all_specs)</div><div class='del'>-        raise ArgumentError, "cannot initialize with an empty value" unless exemplary_spec = all_specs.first</div><div class='del'>-        @name = exemplary_spec.name</div><div class='del'>-        @version = exemplary_spec.version</div><div class='del'>-        @source = exemplary_spec.source</div><div class='del'>-</div><div class='del'>-        @activated_platforms = []</div><div class='del'>-        @dependencies = nil</div><div class='del'>-        @specs        = Hash.new do |specs, platform|</div><div class='del'>-          specs[platform] = select_best_platform_match(all_specs, platform)</div><div class='del'>-        end</div><div class='del'>-        @ignores_bundler_dependencies = true</div><div class='add'>+      def initialize(specs)</div><div class='add'>+        @specs = specs</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def to_specs</div><div class='del'>-        @activated_platforms.map do |p|</div><div class='del'>-          next unless s = @specs[p]</div><div class='del'>-          lazy_spec = LazySpecification.new(name, version, s.platform, source)</div><div class='del'>-          lazy_spec.dependencies.replace s.dependencies</div><div class='del'>-          lazy_spec</div><div class='del'>-        end.compact</div><div class='add'>+      def empty?</div><div class='add'>+        @specs.empty?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def activate_platform!(platform)</div><div class='del'>-        return unless for?(platform)</div><div class='del'>-        return if @activated_platforms.include?(platform)</div><div class='del'>-        @activated_platforms &lt;&lt; platform</div><div class='add'>+      def name</div><div class='add'>+        @name ||= exemplary_spec.name</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def for?(platform)</div><div class='del'>-        spec = @specs[platform]</div><div class='del'>-        !spec.nil?</div><div class='add'>+      def version</div><div class='add'>+        @version ||= exemplary_spec.version</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def to_s</div><div class='del'>-        @to_s ||= "#{name} (#{version})"</div><div class='add'>+      def source</div><div class='add'>+        @source ||= exemplary_spec.source</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def dependencies_for_activated_platforms</div><div class='del'>-        dependencies = @activated_platforms.map {|p| __dependencies[p] }</div><div class='del'>-        metadata_dependencies = @activated_platforms.map do |platform|</div><div class='del'>-          metadata_dependencies(@specs[platform], platform)</div><div class='add'>+      def to_specs(force_ruby_platform)</div><div class='add'>+        @specs.map do |s|</div><div class='add'>+          lazy_spec = LazySpecification.new(name, version, s.platform, source)</div><div class='add'>+          lazy_spec.force_ruby_platform = force_ruby_platform</div><div class='add'>+          lazy_spec.dependencies.replace s.dependencies</div><div class='add'>+          lazy_spec</div><div class='ctx'>         end</div><div class='del'>-        dependencies.concat(metadata_dependencies).flatten</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def ==(other)</div><div class='del'>-        return unless other.is_a?(SpecGroup)</div><div class='del'>-        name == other.name &amp;&amp;</div><div class='del'>-          version == other.version &amp;&amp;</div><div class='del'>-          source == other.source</div><div class='add'>+      def to_s</div><div class='add'>+        sorted_spec_names.join(", ")</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def eql?(other)</div><div class='del'>-        name.eql?(other.name) &amp;&amp;</div><div class='del'>-          version.eql?(other.version) &amp;&amp;</div><div class='del'>-          source.eql?(other.source)</div><div class='add'>+      def dependencies</div><div class='add'>+        @dependencies ||= @specs.map do |spec|</div><div class='add'>+          __dependencies(spec) + metadata_dependencies(spec)</div><div class='add'>+        end.flatten.uniq</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def hash</div><div class='del'>-        to_s.hash ^ source.hash</div><div class='add'>+      protected</div><div class='add'>+</div><div class='add'>+      def sorted_spec_names</div><div class='add'>+        @sorted_spec_names ||= @specs.map(&amp;:full_name).sort</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='del'>-</div><div class='del'>-      def __dependencies</div><div class='del'>-        @dependencies = Hash.new do |dependencies, platform|</div><div class='del'>-          dependencies[platform] = []</div><div class='del'>-          if spec = @specs[platform]</div><div class='del'>-            spec.dependencies.each do |dep|</div><div class='del'>-              next if dep.type == :development</div><div class='del'>-              next if @ignores_bundler_dependencies &amp;&amp; dep.name == "bundler".freeze</div><div class='del'>-              dependencies[platform] &lt;&lt; DepProxy.new(dep, platform)</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-          dependencies[platform]</div><div class='del'>-        end</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def exemplary_spec</div><div class='add'>+        @specs.first</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def metadata_dependencies(spec, platform)</div><div class='del'>-        return [] unless spec</div><div class='del'>-        # Only allow endpoint specifications since they won't hit the network to</div><div class='del'>-        # fetch the full gemspec when calling required_ruby_version</div><div class='del'>-        return [] if !spec.is_a?(EndpointSpecification) &amp;&amp; !spec.is_a?(Gem::Specification)</div><div class='add'>+      def __dependencies(spec)</div><div class='ctx'>         dependencies = []</div><div class='del'>-        if !spec.required_ruby_version.nil? &amp;&amp; !spec.required_ruby_version.none?</div><div class='del'>-          dependencies &lt;&lt; DepProxy.new(Gem::Dependency.new("ruby\0", spec.required_ruby_version), platform)</div><div class='del'>-        end</div><div class='del'>-        if !spec.required_rubygems_version.nil? &amp;&amp; !spec.required_rubygems_version.none?</div><div class='del'>-          dependencies &lt;&lt; DepProxy.new(Gem::Dependency.new("rubygems\0", spec.required_rubygems_version), platform)</div><div class='add'>+        spec.dependencies.each do |dep|</div><div class='add'>+          next if dep.type == :development</div><div class='add'>+          dependencies &lt;&lt; Dependency.new(dep.name, dep.requirement)</div><div class='ctx'>         end</div><div class='ctx'>         dependencies</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      def metadata_dependencies(spec)</div><div class='add'>+        return [] if spec.is_a?(LazySpecification)</div><div class='add'>+</div><div class='add'>+        [</div><div class='add'>+          metadata_dependency("Ruby", spec.required_ruby_version),</div><div class='add'>+          metadata_dependency("RubyGems", spec.required_rubygems_version),</div><div class='add'>+        ].compact</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def metadata_dependency(name, requirement)</div><div class='add'>+        return if requirement.nil? || requirement.none?</div><div class='add'>+</div><div class='add'>+        Dependency.new("#{name}\0", requirement)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/retry.rb b/lib/bundler/retry.rb<br/>index 244606dcc9..2415ade200 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/retry.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/retry.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/retry.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/retry.rb</a></div><div class='hunk'>@@ -32,13 +32,13 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'>     alias_method :attempts, :attempt</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def run(&amp;block)</div><div class='del'>-      @failed      = false</div><div class='add'>+      @failed = false</div><div class='ctx'>       @current_run += 1</div><div class='ctx'>       @result = block.call</div><div class='del'>-    rescue =&gt; e</div><div class='add'>+    rescue StandardError =&gt; e</div><div class='ctx'>       fail_attempt(e)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -49,7 +49,7 @@ module Bundler</div><div class='ctx'>         raise e</div><div class='ctx'>       end</div><div class='ctx'>       return true unless name</div><div class='del'>-      Bundler.ui.info "" unless Bundler.ui.debug? # Add new line incase dots preceded this</div><div class='add'>+      Bundler.ui.info "" unless Bundler.ui.debug? # Add new line in case dots preceded this</div><div class='ctx'>       Bundler.ui.warn "Retrying #{name} due to error (#{current_run.next}/#{total_runs}): #{e.class} #{e.message}", Bundler.ui.debug?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/ruby_dsl.rb b/lib/bundler/ruby_dsl.rb<br/>index f6ba220cd5..d054969e8d 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/ruby_dsl.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ruby_dsl.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/ruby_dsl.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/ruby_dsl.rb</a></div><div class='hunk'>@@ -5,11 +5,17 @@ module Bundler</div><div class='ctx'>     def ruby(*ruby_version)</div><div class='ctx'>       options = ruby_version.last.is_a?(Hash) ? ruby_version.pop : {}</div><div class='ctx'>       ruby_version.flatten!</div><div class='add'>+</div><div class='ctx'>       raise GemfileError, "Please define :engine_version" if options[:engine] &amp;&amp; options[:engine_version].nil?</div><div class='ctx'>       raise GemfileError, "Please define :engine" if options[:engine_version] &amp;&amp; options[:engine].nil?</div><div class='ctx'> </div><div class='add'>+      if options[:file]</div><div class='add'>+        raise GemfileError, "Cannot specify version when using the file option" if ruby_version.any?</div><div class='add'>+        ruby_version &lt;&lt; Bundler.read_file(options[:file]).strip</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       if options[:engine] == "ruby" &amp;&amp; options[:engine_version] &amp;&amp;</div><div class='del'>-          ruby_version != Array(options[:engine_version])</div><div class='add'>+         ruby_version != Array(options[:engine_version])</div><div class='ctx'>         raise GemfileEvalError, "ruby_version must match the :engine_version for MRI"</div><div class='ctx'>       end</div><div class='ctx'>       @ruby_version = RubyVersion.new(ruby_version, options[:patchlevel], options[:engine], options[:engine_version])</div><div class='head'>diff --git a/lib/bundler/ruby_version.rb b/lib/bundler/ruby_version.rb<br/>index e6c31a94c9..b5396abb6e 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/ruby_version.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ruby_version.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/ruby_version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/ruby_version.rb</a></div><div class='hunk'>@@ -28,16 +28,16 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       @gem_version        = Gem::Requirement.create(@versions.first).requirements.first.last</div><div class='del'>-      @input_engine       = engine &amp;&amp; engine.to_s</div><div class='del'>-      @engine             = engine &amp;&amp; engine.to_s || "ruby"</div><div class='add'>+      @input_engine       = engine&amp;.to_s</div><div class='add'>+      @engine             = engine&amp;.to_s || "ruby"</div><div class='ctx'>       @engine_versions    = (engine_version &amp;&amp; Array(engine_version)) || @versions</div><div class='ctx'>       @engine_gem_version = Gem::Requirement.create(@engine_versions.first).requirements.first.last</div><div class='del'>-      @patchlevel         = patchlevel</div><div class='add'>+      @patchlevel         = patchlevel || (@gem_version.prerelease? ? "-1" : nil)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def to_s(versions = self.versions)</div><div class='ctx'>       output = String.new("ruby #{versions_string(versions)}")</div><div class='del'>-      output &lt;&lt; "p#{patchlevel}" if patchlevel</div><div class='add'>+      output &lt;&lt; "p#{patchlevel}" if patchlevel &amp;&amp; patchlevel != "-1"</div><div class='ctx'>       output &lt;&lt; " (#{engine} #{versions_string(engine_versions)})" unless engine == "ruby"</div><div class='ctx'> </div><div class='ctx'>       output</div><div class='hunk'>@@ -46,10 +46,10 @@ module Bundler</div><div class='ctx'>     # @private</div><div class='ctx'>     PATTERN = /</div><div class='ctx'>       ruby\s</div><div class='del'>-      ([\d.]+) # ruby version</div><div class='add'>+      (\d+\.\d+\.\d+(?:\.\S+)?) # ruby version</div><div class='ctx'>       (?:p(-?\d+))? # optional patchlevel</div><div class='ctx'>       (?:\s\((\S+)\s(.+)\))? # optional engine info</div><div class='del'>-    /xo</div><div class='add'>+    /xo.freeze</div><div class='ctx'> </div><div class='ctx'>     # Returns a RubyVersion from the given string.</div><div class='ctx'>     # @param [String] the version string to match.</div><div class='hunk'>@@ -74,7 +74,7 @@ module Bundler</div><div class='ctx'>       @host ||= [</div><div class='ctx'>         RbConfig::CONFIG["host_cpu"],</div><div class='ctx'>         RbConfig::CONFIG["host_vendor"],</div><div class='del'>-        RbConfig::CONFIG["host_os"]</div><div class='add'>+        RbConfig::CONFIG["host_os"],</div><div class='ctx'>       ].join("-")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -102,43 +102,15 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def self.system</div><div class='del'>-      ruby_engine = if defined?(RUBY_ENGINE) &amp;&amp; !RUBY_ENGINE.nil?</div><div class='del'>-        RUBY_ENGINE.dup</div><div class='del'>-      else</div><div class='del'>-        # not defined in ruby 1.8.7</div><div class='del'>-        "ruby"</div><div class='del'>-      end</div><div class='del'>-      # :sob: mocking RUBY_VERSION breaks stuff on 1.8.7</div><div class='del'>-      ruby_version = ENV.fetch("BUNDLER_SPEC_RUBY_VERSION") { RUBY_VERSION }.dup</div><div class='del'>-      ruby_engine_version = case ruby_engine</div><div class='del'>-                            when "ruby"</div><div class='del'>-                              ruby_version</div><div class='del'>-                            when "rbx"</div><div class='del'>-                              Rubinius::VERSION.dup</div><div class='del'>-                            when "jruby"</div><div class='del'>-                              JRUBY_VERSION.dup</div><div class='del'>-                            else</div><div class='del'>-                              RUBY_ENGINE_VERSION.dup</div><div class='del'>-      end</div><div class='add'>+      ruby_engine = RUBY_ENGINE.dup</div><div class='add'>+      ruby_version = Gem.ruby_version.to_s</div><div class='add'>+      ruby_engine_version = RUBY_ENGINE == "ruby" ? ruby_version : RUBY_ENGINE_VERSION.dup</div><div class='ctx'>       patchlevel = RUBY_PATCHLEVEL.to_s</div><div class='ctx'> </div><div class='del'>-      @ruby_version ||= RubyVersion.new(ruby_version, patchlevel, ruby_engine, ruby_engine_version)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def to_gem_version_with_patchlevel</div><div class='del'>-      @gem_version_with_patch ||= begin</div><div class='del'>-        Gem::Version.create("#{@gem_version}.#{@patchlevel}")</div><div class='del'>-      rescue ArgumentError</div><div class='del'>-        @gem_version</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def exact?</div><div class='del'>-      return @exact if defined?(@exact)</div><div class='del'>-      @exact = versions.all? {|v| Gem::Requirement.create(v).exact? }</div><div class='add'>+      @system ||= RubyVersion.new(ruby_version, patchlevel, ruby_engine, ruby_engine_version)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def matches?(requirements, version)</div><div class='ctx'>       # Handles RUBY_PATCHLEVEL of -1 for instances like ruby-head</div><div class='head'>diff --git a/lib/bundler/rubygems_ext.rb b/lib/bundler/rubygems_ext.rb<br/>index e9f0eac355..8981612706 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/rubygems_ext.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/rubygems_ext.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/rubygems_ext.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/rubygems_ext.rb</a></div><div class='hunk'>@@ -2,53 +2,51 @@</div><div class='ctx'> </div><div class='ctx'> require "pathname"</div><div class='ctx'> </div><div class='del'>-if defined?(Gem::QuickLoader)</div><div class='del'>-  # Gem Prelude makes me a sad panda :'(</div><div class='del'>-  Gem::QuickLoader.load_full_rubygems_library</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-require "rubygems"</div><div class='ctx'> require "rubygems/specification"</div><div class='ctx'> </div><div class='del'>-begin</div><div class='del'>-  # Possible use in Gem::Specification#source below and require</div><div class='del'>-  # shouldn't be deferred.</div><div class='del'>-  require "rubygems/source"</div><div class='del'>-rescue LoadError</div><div class='del'>-  # Not available before RubyGems 2.0.0, ignore</div><div class='del'>-  nil</div><div class='add'>+# We can't let `Gem::Source` be autoloaded in the `Gem::Specification#source`</div><div class='add'>+# redefinition below, so we need to load it upfront. The reason is that if</div><div class='add'>+# Bundler monkeypatches are loaded before RubyGems activates an executable (for</div><div class='add'>+# example, through `ruby -rbundler -S irb`), gem activation might end up calling</div><div class='add'>+# the redefined `Gem::Specification#source` and triggering the `Gem::Source`</div><div class='add'>+# autoload. That would result in requiring "rubygems/source" inside another</div><div class='add'>+# require, which would trigger a monitor error and cause the `autoload` to</div><div class='add'>+# eventually fail. A better solution is probably to completely avoid autoloading</div><div class='add'>+# `Gem::Source` from the redefined `Gem::Specification#source`.</div><div class='add'>+require "rubygems/source"</div><div class='add'>+</div><div class='add'>+require_relative "match_metadata"</div><div class='add'>+require_relative "force_platform"</div><div class='add'>+require_relative "match_platform"</div><div class='add'>+</div><div class='add'>+# Cherry-pick fixes to `Gem.ruby_version` to be useful for modern Bundler</div><div class='add'>+# versions and ignore patchlevels</div><div class='add'>+# (https://github.com/rubygems/rubygems/pull/5472,</div><div class='add'>+# https://github.com/rubygems/rubygems/pull/5486). May be removed once RubyGems</div><div class='add'>+# 3.3.12 support is dropped.</div><div class='add'>+unless Gem.ruby_version.to_s == RUBY_VERSION || RUBY_PATCHLEVEL == -1</div><div class='add'>+  Gem.instance_variable_set(:@ruby_version, Gem::Version.new(RUBY_VERSION))</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-require "bundler/match_platform"</div><div class='del'>-</div><div class='ctx'> module Gem</div><div class='del'>-  @loaded_stacks = Hash.new {|h, k| h[k] = [] }</div><div class='del'>-</div><div class='ctx'>   class Specification</div><div class='add'>+    include ::Bundler::MatchMetadata</div><div class='add'>+    include ::Bundler::MatchPlatform</div><div class='add'>+</div><div class='ctx'>     attr_accessor :remote, :location, :relative_loaded_from</div><div class='ctx'> </div><div class='del'>-    if instance_methods(false).map(&amp;:to_sym).include?(:source)</div><div class='del'>-      remove_method :source</div><div class='del'>-      attr_writer :source</div><div class='del'>-      def source</div><div class='del'>-        (defined?(@source) &amp;&amp; @source) || Gem::Source::Installed.new</div><div class='del'>-      end</div><div class='del'>-    else</div><div class='del'>-      attr_accessor :source</div><div class='add'>+    remove_method :source</div><div class='add'>+    attr_writer :source</div><div class='add'>+    def source</div><div class='add'>+      (defined?(@source) &amp;&amp; @source) || Gem::Source::Installed.new</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     alias_method :rg_full_gem_path, :full_gem_path</div><div class='ctx'>     alias_method :rg_loaded_from,   :loaded_from</div><div class='ctx'> </div><div class='del'>-    attr_writer :full_gem_path unless instance_methods.include?(:full_gem_path=)</div><div class='del'>-</div><div class='ctx'>     def full_gem_path</div><div class='del'>-      # this cannot check source.is_a?(Bundler::Plugin::API::Source)</div><div class='del'>-      # because that _could_ trip the autoload, and if there are unresolved</div><div class='del'>-      # gems at that time, this method could be called inside another require,</div><div class='del'>-      # thus raising with that constant being undefined. Better to check a method</div><div class='del'>-      if source.respond_to?(:path) || (source.respond_to?(:bundler_plugin_api_source?) &amp;&amp; source.bundler_plugin_api_source?)</div><div class='del'>-        Pathname.new(loaded_from).dirname.expand_path(source.root).to_s.untaint</div><div class='add'>+      if source.respond_to?(:root)</div><div class='add'>+        Pathname.new(loaded_from).dirname.expand_path(source.root).to_s.tap {|x| x.untaint if RUBY_VERSION &lt; "2.7" }</div><div class='ctx'>       else</div><div class='ctx'>         rg_full_gem_path</div><div class='ctx'>       end</div><div class='hunk'>@@ -63,36 +61,43 @@ module Gem</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def load_paths</div><div class='del'>-      return full_require_paths if respond_to?(:full_require_paths)</div><div class='del'>-</div><div class='del'>-      require_paths.map do |require_path|</div><div class='del'>-        if require_path.include?(full_gem_path)</div><div class='del'>-          require_path</div><div class='del'>-        else</div><div class='del'>-          File.join(full_gem_path, require_path)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='add'>+      full_require_paths</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    if method_defined?(:extension_dir)</div><div class='del'>-      alias_method :rg_extension_dir, :extension_dir</div><div class='del'>-      def extension_dir</div><div class='del'>-        @bundler_extension_dir ||= if source.respond_to?(:extension_dir_name)</div><div class='del'>-          File.expand_path(File.join(extensions_dir, source.extension_dir_name))</div><div class='del'>-        else</div><div class='del'>-          rg_extension_dir</div><div class='del'>-        end</div><div class='add'>+    alias_method :rg_extension_dir, :extension_dir</div><div class='add'>+    def extension_dir</div><div class='add'>+      # following instance variable is already used in original method</div><div class='add'>+      # and that is the reason to prefix it with bundler_ and add rubocop exception</div><div class='add'>+      @bundler_extension_dir ||= if source.respond_to?(:extension_dir_name) # rubocop:disable Naming/MemoizedInstanceVariableName</div><div class='add'>+        unique_extension_dir = [source.extension_dir_name, File.basename(full_gem_path)].uniq.join("-")</div><div class='add'>+        File.expand_path(File.join(extensions_dir, unique_extension_dir))</div><div class='add'>+      else</div><div class='add'>+        rg_extension_dir</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # RubyGems 1.8+ used only.</div><div class='del'>-    methods = instance_methods(false)</div><div class='del'>-    gem_dir = methods.first.is_a?(String) ? "gem_dir" : :gem_dir</div><div class='del'>-    remove_method :gem_dir if methods.include?(gem_dir)</div><div class='add'>+    remove_method :gem_dir if instance_methods(false).include?(:gem_dir)</div><div class='ctx'>     def gem_dir</div><div class='ctx'>       full_gem_path</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    unless const_defined?(:LATEST_RUBY_WITHOUT_PATCH_VERSIONS)</div><div class='add'>+      LATEST_RUBY_WITHOUT_PATCH_VERSIONS = Gem::Version.new("2.1")</div><div class='add'>+</div><div class='add'>+      alias_method :rg_required_ruby_version=, :required_ruby_version=</div><div class='add'>+      def required_ruby_version=(req)</div><div class='add'>+        self.rg_required_ruby_version = req</div><div class='add'>+</div><div class='add'>+        @required_ruby_version.requirements.map! do |op, v|</div><div class='add'>+          if v &gt;= LATEST_RUBY_WITHOUT_PATCH_VERSIONS &amp;&amp; v.release.segments.size == 4</div><div class='add'>+            [op == "~&gt;" ? "=" : op, Gem::Version.new(v.segments.tap {|s| s.delete_at(3) }.join("."))]</div><div class='add'>+          else</div><div class='add'>+            [op, v]</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def groups</div><div class='ctx'>       @groups ||= []</div><div class='ctx'>     end</div><div class='hunk'>@@ -112,11 +117,26 @@ module Gem</div><div class='ctx'>       gemfile</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Backfill missing YAML require when not defined. Fixed since 3.1.0.pre1.</div><div class='add'>+    module YamlBackfiller</div><div class='add'>+      def to_yaml(opts = {})</div><div class='add'>+        Gem.load_yaml unless defined?(::YAML)</div><div class='add'>+</div><div class='add'>+        super(opts)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    prepend YamlBackfiller</div><div class='add'>+</div><div class='ctx'>     def nondevelopment_dependencies</div><div class='ctx'>       dependencies - development_dependencies</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    def deleted_gem?</div><div class='add'>+      !default_gem? &amp;&amp; !File.directory?(full_gem_path)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def dependencies_to_gemfile(dependencies, group = nil)</div><div class='ctx'>       gemfile = String.new</div><div class='hunk'>@@ -136,10 +156,18 @@ module Gem</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   class Dependency</div><div class='del'>-    attr_accessor :source, :groups, :all_sources</div><div class='add'>+    include ::Bundler::ForcePlatform</div><div class='add'>+</div><div class='add'>+    attr_accessor :source, :groups</div><div class='ctx'> </div><div class='ctx'>     alias_method :eql?, :==</div><div class='ctx'> </div><div class='add'>+    def force_ruby_platform</div><div class='add'>+      return @force_ruby_platform if defined?(@force_ruby_platform) &amp;&amp; !@force_ruby_platform.nil?</div><div class='add'>+</div><div class='add'>+      @force_ruby_platform = default_force_ruby_platform</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def encode_with(coder)</div><div class='ctx'>       to_yaml_properties.each do |ivar|</div><div class='ctx'>         coder[ivar.to_s.sub(/^@/, "")] = instance_variable_get(ivar)</div><div class='hunk'>@@ -147,7 +175,7 @@ module Gem</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def to_yaml_properties</div><div class='del'>-      instance_variables.reject {|p| ["@source", "@groups", "@all_sources"].include?(p.to_s) }</div><div class='add'>+      instance_variables.reject {|p| ["@source", "@groups"].include?(p.to_s) }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def to_lock</div><div class='hunk'>@@ -158,53 +186,170 @@ module Gem</div><div class='ctx'>       end</div><div class='ctx'>       out</div><div class='ctx'>     end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # comparison is done order independently since rubygems 3.2.0.rc.2</div><div class='add'>+  unless Gem::Requirement.new("&gt; 1", "&lt; 2") == Gem::Requirement.new("&lt; 2", "&gt; 1")</div><div class='add'>+    class Requirement</div><div class='add'>+      module OrderIndependentComparison</div><div class='add'>+        def ==(other)</div><div class='add'>+          return unless Gem::Requirement === other</div><div class='add'>+</div><div class='add'>+          if _requirements_sorted? &amp;&amp; other._requirements_sorted?</div><div class='add'>+            super</div><div class='add'>+          else</div><div class='add'>+            _with_sorted_requirements == other._with_sorted_requirements</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        protected</div><div class='ctx'> </div><div class='del'>-    # Backport of performance enhancement added to RubyGems 1.4</div><div class='del'>-    def matches_spec?(spec)</div><div class='del'>-      # name can be a Regexp, so use ===</div><div class='del'>-      return false unless name === spec.name</div><div class='del'>-      return true  if requirement.none?</div><div class='add'>+        def _requirements_sorted?</div><div class='add'>+          return @_requirements_sorted if defined?(@_requirements_sorted)</div><div class='add'>+          strings = as_list</div><div class='add'>+          @_requirements_sorted = strings == strings.sort</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-      requirement.satisfied_by?(spec.version)</div><div class='del'>-    end unless allocate.respond_to?(:matches_spec?)</div><div class='add'>+        def _with_sorted_requirements</div><div class='add'>+          @_with_sorted_requirements ||= _requirements_sorted? ? self : self.class.new(as_list.sort)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      prepend OrderIndependentComparison</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  class Requirement</div><div class='del'>-    # Backport of performance enhancement added to RubyGems 1.4</div><div class='del'>-    def none?</div><div class='del'>-      # note that it might be tempting to replace with with RubyGems 2.0's</div><div class='del'>-      # improved implementation. Don't. It requires `DefaultRequirement` to be</div><div class='del'>-      # defined, and more importantantly, these overrides are not used when the</div><div class='del'>-      # running RubyGems defines these methods</div><div class='del'>-      to_s == "&gt;= 0"</div><div class='del'>-    end unless allocate.respond_to?(:none?)</div><div class='del'>-</div><div class='del'>-    # Backport of performance enhancement added to RubyGems 2.2</div><div class='del'>-    def exact?</div><div class='del'>-      return false unless @requirements.size == 1</div><div class='del'>-      @requirements[0][0] == "="</div><div class='del'>-    end unless allocate.respond_to?(:exact?)</div><div class='add'>+  if Gem::Requirement.new("~&gt; 2.0").hash == Gem::Requirement.new("~&gt; 2.0.0").hash</div><div class='add'>+    class Requirement</div><div class='add'>+      module CorrectHashForLambdaOperator</div><div class='add'>+        def hash</div><div class='add'>+          if requirements.any? {|r| r.first == "~&gt;" }</div><div class='add'>+            requirements.map {|r| r.first == "~&gt;" ? [r[0], r[1].to_s] : r }.sort.hash</div><div class='add'>+          else</div><div class='add'>+            super</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      prepend CorrectHashForLambdaOperator</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  require "rubygems/platform"</div><div class='add'>+</div><div class='ctx'>   class Platform</div><div class='del'>-    JAVA  = Gem::Platform.new("java") unless defined?(JAVA)</div><div class='del'>-    MSWIN = Gem::Platform.new("mswin32") unless defined?(MSWIN)</div><div class='del'>-    MSWIN64 = Gem::Platform.new("mswin64") unless defined?(MSWIN64)</div><div class='del'>-    MINGW = Gem::Platform.new("x86-mingw32") unless defined?(MINGW)</div><div class='del'>-    X64_MINGW = Gem::Platform.new("x64-mingw32") unless defined?(X64_MINGW)</div><div class='add'>+    JAVA  = Gem::Platform.new("java")</div><div class='add'>+    MSWIN = Gem::Platform.new("mswin32")</div><div class='add'>+    MSWIN64 = Gem::Platform.new("mswin64")</div><div class='add'>+    MINGW = Gem::Platform.new("x86-mingw32")</div><div class='add'>+    X64_MINGW = [Gem::Platform.new("x64-mingw32"),</div><div class='add'>+                 Gem::Platform.new("x64-mingw-ucrt")].freeze</div><div class='add'>+    WINDOWS = [MSWIN, MSWIN64, MINGW, X64_MINGW].flatten.freeze</div><div class='add'>+    X64_LINUX = Gem::Platform.new("x86_64-linux")</div><div class='add'>+    X64_LINUX_MUSL = Gem::Platform.new("x86_64-linux-musl")</div><div class='add'>+</div><div class='add'>+    if X64_LINUX === X64_LINUX_MUSL</div><div class='add'>+      remove_method :===</div><div class='add'>+</div><div class='add'>+      def ===(other)</div><div class='add'>+        return nil unless Gem::Platform === other</div><div class='add'>+</div><div class='add'>+        # universal-mingw32 matches x64-mingw-ucrt</div><div class='add'>+        return true if (@cpu == "universal" || other.cpu == "universal") &amp;&amp;</div><div class='add'>+                       @os.start_with?("mingw") &amp;&amp; other.os.start_with?("mingw")</div><div class='add'>+</div><div class='add'>+        # cpu</div><div class='add'>+        ([nil,"universal"].include?(@cpu) || [nil, "universal"].include?(other.cpu) || @cpu == other.cpu ||</div><div class='add'>+        (@cpu == "arm" &amp;&amp; other.cpu.start_with?("arm"))) &amp;&amp;</div><div class='add'>+</div><div class='add'>+          # os</div><div class='add'>+          @os == other.os &amp;&amp;</div><div class='add'>+</div><div class='add'>+          # version</div><div class='add'>+          (</div><div class='add'>+            (@os != "linux" &amp;&amp; (@version.nil? || other.version.nil?)) ||</div><div class='add'>+            (@os == "linux" &amp;&amp; (normalized_linux_version_ext == other.normalized_linux_version_ext || ["musl#{@version}", "musleabi#{@version}", "musleabihf#{@version}"].include?(other.version))) ||</div><div class='add'>+            @version == other.version</div><div class='add'>+          )</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-    undef_method :hash if method_defined? :hash</div><div class='del'>-    def hash</div><div class='del'>-      @cpu.hash ^ @os.hash ^ @version.hash</div><div class='add'>+      # This is a copy of RubyGems 3.3.23 or higher `normalized_linux_method`.</div><div class='add'>+      # Once only 3.3.23 is supported, we can use the method in RubyGems.</div><div class='add'>+      def normalized_linux_version_ext</div><div class='add'>+        return nil unless @version</div><div class='add'>+</div><div class='add'>+        without_gnu_nor_abi_modifiers = @version.sub(/\Agnu/, "").sub(/eabi(hf)?\Z/, "")</div><div class='add'>+        return nil if without_gnu_nor_abi_modifiers.empty?</div><div class='add'>+</div><div class='add'>+        without_gnu_nor_abi_modifiers</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    undef_method :eql? if method_defined? :eql?</div><div class='del'>-    alias_method :eql?, :==</div><div class='add'>+    if RUBY_ENGINE == "truffleruby" &amp;&amp; !defined?(REUSE_AS_BINARY_ON_TRUFFLERUBY)</div><div class='add'>+      REUSE_AS_BINARY_ON_TRUFFLERUBY = %w[libv8 libv8-node sorbet-static].freeze</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='del'>-end</div><div class='ctx'> </div><div class='del'>-module Gem</div><div class='add'>+  Platform.singleton_class.module_eval do</div><div class='add'>+    unless Platform.singleton_methods.include?(:match_spec?)</div><div class='add'>+      def match_spec?(spec)</div><div class='add'>+        match_gem?(spec.platform, spec.name)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def match_gem?(platform, gem_name)</div><div class='add'>+        match_platforms?(platform, Gem.platforms)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    match_platforms_defined = Gem::Platform.respond_to?(:match_platforms?, true)</div><div class='add'>+</div><div class='add'>+    if !match_platforms_defined || Gem::Platform.send(:match_platforms?, Gem::Platform::X64_LINUX_MUSL, [Gem::Platform::X64_LINUX])</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      remove_method :match_platforms? if match_platforms_defined</div><div class='add'>+</div><div class='add'>+      def match_platforms?(platform, platforms)</div><div class='add'>+        platforms.any? do |local_platform|</div><div class='add'>+          platform.nil? ||</div><div class='add'>+            local_platform == platform ||</div><div class='add'>+            (local_platform != Gem::Platform::RUBY &amp;&amp; platform =~ local_platform)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # On universal Rubies, resolve the "universal" arch to the real CPU arch, without changing the extension directory.</div><div class='ctx'>   class Specification</div><div class='del'>-    include ::Bundler::MatchPlatform</div><div class='add'>+    if /^universal\.(?&lt;arch&gt;.*?)-/ =~ (CROSS_COMPILING || RUBY_PLATFORM)</div><div class='add'>+      local_platform = Platform.local</div><div class='add'>+      if local_platform.cpu == "universal"</div><div class='add'>+        ORIGINAL_LOCAL_PLATFORM = local_platform.to_s.freeze</div><div class='add'>+</div><div class='add'>+        local_platform.cpu = if arch == "arm64e" # arm64e is only permitted for Apple system binaries</div><div class='add'>+          "arm64"</div><div class='add'>+        else</div><div class='add'>+          arch</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def extensions_dir</div><div class='add'>+          Gem.default_ext_dir_for(base_dir) ||</div><div class='add'>+            File.join(base_dir, "extensions", ORIGINAL_LOCAL_PLATFORM,</div><div class='add'>+                      Gem.extension_api_version)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  require "rubygems/util"</div><div class='add'>+</div><div class='add'>+  Util.singleton_class.module_eval do</div><div class='add'>+    if Util.singleton_methods.include?(:glob_files_in_dir) # since 3.0.0.beta.2</div><div class='add'>+      remove_method :glob_files_in_dir</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def glob_files_in_dir(glob, base_path)</div><div class='add'>+      Dir.glob(glob, :base =&gt; base_path).map! {|f| File.expand_path(f, base_path) }</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/rubygems_gem_installer.rb b/lib/bundler/rubygems_gem_installer.rb<br/>index 2b7fa8e0f6..38035a00ac 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/rubygems_gem_installer.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/rubygems_gem_installer.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/rubygems_gem_installer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/rubygems_gem_installer.rb</a></div><div class='hunk'>@@ -4,14 +4,60 @@ require "rubygems/installer"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class RubyGemsGemInstaller &lt; Gem::Installer</div><div class='del'>-    unless respond_to?(:at)</div><div class='del'>-      def self.at(*args)</div><div class='del'>-        new(*args)</div><div class='add'>+    def check_executable_overwrite(filename)</div><div class='add'>+      # Bundler needs to install gems regardless of binstub overwriting</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def install</div><div class='add'>+      pre_install_checks</div><div class='add'>+</div><div class='add'>+      run_pre_install_hooks</div><div class='add'>+</div><div class='add'>+      spec.loaded_from = spec_file</div><div class='add'>+</div><div class='add'>+      # Completely remove any previous gem files</div><div class='add'>+      strict_rm_rf gem_dir</div><div class='add'>+      strict_rm_rf spec.extension_dir</div><div class='add'>+</div><div class='add'>+      SharedHelpers.filesystem_access(gem_dir, :create) do</div><div class='add'>+        FileUtils.mkdir_p gem_dir, :mode =&gt; 0o755</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      extract_files</div><div class='add'>+</div><div class='add'>+      build_extensions if spec.extensions.any?</div><div class='add'>+      write_build_info_file</div><div class='add'>+      run_post_build_hooks</div><div class='add'>+</div><div class='add'>+      generate_bin</div><div class='add'>+      generate_plugins</div><div class='add'>+</div><div class='add'>+      write_spec</div><div class='add'>+</div><div class='add'>+      SharedHelpers.filesystem_access("#{gem_home}/cache", :write) do</div><div class='add'>+        write_cache_file</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      say spec.post_install_message unless spec.post_install_message.nil?</div><div class='add'>+</div><div class='add'>+      run_post_install_hooks</div><div class='add'>+</div><div class='add'>+      spec</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def check_executable_overwrite(filename)</div><div class='del'>-      # Bundler needs to install gems regardless of binstub overwriting</div><div class='add'>+    def generate_plugins</div><div class='add'>+      return unless Gem::Installer.instance_methods(false).include?(:generate_plugins)</div><div class='add'>+</div><div class='add'>+      latest = Gem::Specification.stubs_for(spec.name).first</div><div class='add'>+      return if latest &amp;&amp; latest.version &gt; spec.version</div><div class='add'>+</div><div class='add'>+      ensure_writable_dir @plugins_dir</div><div class='add'>+</div><div class='add'>+      if spec.plugins.empty?</div><div class='add'>+        remove_plugins_for(spec, @plugins_dir)</div><div class='add'>+      else</div><div class='add'>+        regenerate_plugins_for(spec, @plugins_dir)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def pre_install_checks</div><div class='hunk'>@@ -20,27 +66,54 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def build_extensions</div><div class='ctx'>       extension_cache_path = options[:bundler_extension_cache_path]</div><div class='del'>-      return super unless extension_cache_path &amp;&amp; extension_dir = Bundler.rubygems.spec_extension_dir(spec)</div><div class='add'>+      extension_dir = spec.extension_dir</div><div class='add'>+      unless extension_cache_path &amp;&amp; extension_dir</div><div class='add'>+        prepare_extension_build(extension_dir)</div><div class='add'>+        return super</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-      extension_dir = Pathname.new(extension_dir)</div><div class='ctx'>       build_complete = SharedHelpers.filesystem_access(extension_cache_path.join("gem.build_complete"), :read, &amp;:file?)</div><div class='ctx'>       if build_complete &amp;&amp; !options[:force]</div><div class='del'>-        SharedHelpers.filesystem_access(extension_dir.parent, &amp;:mkpath)</div><div class='add'>+        SharedHelpers.filesystem_access(File.dirname(extension_dir)) do |p|</div><div class='add'>+          FileUtils.mkpath p</div><div class='add'>+        end</div><div class='ctx'>         SharedHelpers.filesystem_access(extension_cache_path) do</div><div class='del'>-          FileUtils.cp_r extension_cache_path, spec.extension_dir</div><div class='add'>+          FileUtils.cp_r extension_cache_path, extension_dir</div><div class='ctx'>         end</div><div class='ctx'>       else</div><div class='add'>+        prepare_extension_build(extension_dir)</div><div class='ctx'>         super</div><div class='del'>-        if extension_dir.directory? # not made for gems without extensions</div><div class='del'>-          SharedHelpers.filesystem_access(extension_cache_path.parent, &amp;:mkpath)</div><div class='del'>-          SharedHelpers.filesystem_access(extension_cache_path) do</div><div class='del'>-            FileUtils.cp_r extension_dir, extension_cache_path</div><div class='del'>-          end</div><div class='add'>+        SharedHelpers.filesystem_access(extension_cache_path.parent, &amp;:mkpath)</div><div class='add'>+        SharedHelpers.filesystem_access(extension_cache_path) do</div><div class='add'>+          FileUtils.cp_r extension_dir, extension_cache_path</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    def spec</div><div class='add'>+      if Bundler.rubygems.provides?("&lt; 3.3.12") # RubyGems implementation rescues and re-raises errors before 3.3.12 and we don't want that</div><div class='add'>+        @package.spec</div><div class='add'>+      else</div><div class='add'>+        super</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def prepare_extension_build(extension_dir)</div><div class='add'>+      SharedHelpers.filesystem_access(extension_dir, :create) do</div><div class='add'>+        FileUtils.mkdir_p extension_dir</div><div class='add'>+      end</div><div class='add'>+      require "shellwords" unless Bundler.rubygems.provides?("&gt;= 3.2.25")</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def strict_rm_rf(dir)</div><div class='add'>+      Bundler.rm_rf dir</div><div class='add'>+    rescue StandardError =&gt; e</div><div class='add'>+      raise unless File.exist?(dir)</div><div class='add'>+</div><div class='add'>+      raise DirectoryRemovalError.new(e, "Could not delete previous installation of `#{dir}`")</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     def validate_bundler_checksum(checksum)</div><div class='ctx'>       return true if Bundler.settings[:disable_checksum_validation]</div><div class='hunk'>@@ -66,7 +139,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>           If you wish to continue installing the downloaded gem, and are certain it does not pose a \</div><div class='ctx'>           security issue despite the mismatching checksum, do the following:</div><div class='del'>-          1. run `bundle config disable_checksum_validation true` to turn off checksum verification</div><div class='add'>+          1. run `bundle config set --local disable_checksum_validation true` to turn off checksum verification</div><div class='ctx'>           2. run `bundle install`</div><div class='ctx'> </div><div class='ctx'>           (More info: The expected SHA256 checksum was #{checksum.inspect}, but the \</div><div class='head'>diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb<br/>index 783d106e7b..d8b7886af7 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/rubygems_integration.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/rubygems_integration.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/rubygems_integration.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/rubygems_integration.rb</a></div><div class='hunk'>@@ -1,53 +1,60 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "monitor"</div><div class='del'>-require "rubygems"</div><div class='del'>-require "rubygems/config_file"</div><div class='add'>+require "rubygems" unless defined?(Gem)</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class RubygemsIntegration</div><div class='ctx'>     if defined?(Gem::Ext::Builder::CHDIR_MONITOR)</div><div class='ctx'>       EXT_LOCK = Gem::Ext::Builder::CHDIR_MONITOR</div><div class='ctx'>     else</div><div class='del'>-      EXT_LOCK = Monitor.new</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def self.version</div><div class='del'>-      @version ||= Gem::Version.new(Gem::VERSION)</div><div class='del'>-    end</div><div class='add'>+      require "monitor"</div><div class='ctx'> </div><div class='del'>-    def self.provides?(req_str)</div><div class='del'>-      Gem::Requirement.new(req_str).satisfied_by?(version)</div><div class='add'>+      EXT_LOCK = Monitor.new</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def initialize</div><div class='ctx'>       @replaced_methods = {}</div><div class='add'>+      backport_ext_builder_monitor</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def version</div><div class='del'>-      self.class.version</div><div class='add'>+      @version ||= Gem.rubygems_version</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def provides?(req_str)</div><div class='del'>-      self.class.provides?(req_str)</div><div class='add'>+      Gem::Requirement.new(req_str).satisfied_by?(version)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def supports_bundler_trampolining?</div><div class='add'>+      provides?("&gt;= 3.3.0.a")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def build_args</div><div class='add'>+      require "rubygems/command"</div><div class='ctx'>       Gem::Command.build_args</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def build_args=(args)</div><div class='add'>+      require "rubygems/command"</div><div class='ctx'>       Gem::Command.build_args = args</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def load_path_insert_index</div><div class='del'>-      Gem.load_path_insert_index</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def loaded_specs(name)</div><div class='ctx'>       Gem.loaded_specs[name]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def add_to_load_path(paths)</div><div class='add'>+      return Gem.add_to_load_path(*paths) if Gem.respond_to?(:add_to_load_path)</div><div class='add'>+</div><div class='add'>+      if insert_index = Gem.load_path_insert_index</div><div class='add'>+        # Gem directories must come after -I and ENV['RUBYLIB']</div><div class='add'>+        $LOAD_PATH.insert(insert_index, *paths)</div><div class='add'>+      else</div><div class='add'>+        # We are probably testing in core, -I and RUBYLIB don't apply</div><div class='add'>+        $LOAD_PATH.unshift(*paths)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def mark_loaded(spec)</div><div class='ctx'>       if spec.respond_to?(:activated=)</div><div class='ctx'>         current = Gem.loaded_specs[spec.name]</div><div class='hunk'>@@ -75,16 +82,12 @@ module Bundler</div><div class='ctx'>     def spec_missing_extensions?(spec, default = true)</div><div class='ctx'>       return spec.missing_extensions? if spec.respond_to?(:missing_extensions?)</div><div class='ctx'> </div><div class='del'>-      return false if spec_default_gem?(spec)</div><div class='add'>+      return false if spec.default_gem?</div><div class='ctx'>       return false if spec.extensions.empty?</div><div class='ctx'> </div><div class='ctx'>       default</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def spec_default_gem?(spec)</div><div class='del'>-      spec.respond_to?(:default_gem?) &amp;&amp; spec.default_gem?</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def spec_matches_for_glob(spec, glob)</div><div class='ctx'>       return spec.matches_for_glob(glob) if spec.respond_to?(:matches_for_glob)</div><div class='ctx'> </div><div class='hunk'>@@ -93,11 +96,6 @@ module Bundler</div><div class='ctx'>       end.flatten(1)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def spec_extension_dir(spec)</div><div class='del'>-      return unless spec.respond_to?(:extension_dir)</div><div class='del'>-      spec.extension_dir</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def stub_set_spec(stub, spec)</div><div class='ctx'>       stub.instance_variable_set(:@spec, spec)</div><div class='ctx'>     end</div><div class='hunk'>@@ -106,23 +104,6 @@ module Bundler</div><div class='ctx'>       obj.to_s</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def platforms</div><div class='del'>-      return [Gem::Platform::RUBY] if Bundler.settings[:force_ruby_platform]</div><div class='del'>-      Gem.platforms</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def configuration</div><div class='del'>-      require "bundler/psyched_yaml"</div><div class='del'>-      Gem.configuration</div><div class='del'>-    rescue Gem::SystemExitException, LoadError =&gt; e</div><div class='del'>-      Bundler.ui.error "#{e.class}: #{e.message}"</div><div class='del'>-      Bundler.ui.trace e</div><div class='del'>-      raise</div><div class='del'>-    rescue YamlLibrarySyntaxError =&gt; e</div><div class='del'>-      raise YamlSyntaxError.new(e, "Your RubyGems configuration, which is " \</div><div class='del'>-        "usually located in ~/.gemrc, contains invalid YAML syntax.")</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def ruby_engine</div><div class='ctx'>       Gem.ruby_engine</div><div class='ctx'>     end</div><div class='hunk'>@@ -132,24 +113,17 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def inflate(obj)</div><div class='del'>-      if defined?(Gem::Util)</div><div class='del'>-        Gem::Util.inflate(obj)</div><div class='del'>-      else</div><div class='del'>-        Gem.inflate(obj)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def sources=(val)</div><div class='del'>-      # Gem.configuration creates a new Gem::ConfigFile, which by default will read ~/.gemrc</div><div class='del'>-      # If that file exists, its settings (including sources) will overwrite the values we</div><div class='del'>-      # are about to set here. In order to avoid that, we force memoizing the config file now.</div><div class='del'>-      configuration</div><div class='del'>-</div><div class='del'>-      Gem.sources = val</div><div class='add'>+      Gem::Util.inflate(obj)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def sources</div><div class='del'>-      Gem.sources</div><div class='add'>+    def correct_for_windows_path(path)</div><div class='add'>+      if Gem::Util.respond_to?(:correct_for_windows_path)</div><div class='add'>+        Gem::Util.correct_for_windows_path(path)</div><div class='add'>+      elsif path[0].chr == "/" &amp;&amp; path[1].chr =~ /[a-z]/i &amp;&amp; path[2].chr == ":"</div><div class='add'>+        path[1..-1]</div><div class='add'>+      else</div><div class='add'>+        path</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def gem_dir</div><div class='hunk'>@@ -196,14 +170,6 @@ module Bundler</div><div class='ctx'>       Gem::MARSHAL_SPEC_DIR</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def config_map</div><div class='del'>-      Gem::ConfigMap</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def repository_subdirectories</div><div class='del'>-      %w[cache doc gems specifications]</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def clear_paths</div><div class='ctx'>       Gem.clear_paths</div><div class='ctx'>     end</div><div class='hunk'>@@ -212,26 +178,9 @@ module Bundler</div><div class='ctx'>       Gem.bin_path(gem, bin, ver)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def path_separator</div><div class='del'>-      File::PATH_SEPARATOR</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def preserve_paths</div><div class='del'>-      # this is a no-op outside of RubyGems 1.8</div><div class='del'>-      yield</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def loaded_gem_paths</div><div class='del'>-      # RubyGems 2.2+ can put binary extension into dedicated folders,</div><div class='del'>-      # therefore use RubyGems facilities to obtain their load paths.</div><div class='del'>-      if Gem::Specification.method_defined? :full_require_paths</div><div class='del'>-        loaded_gem_paths = Gem.loaded_specs.map {|_, s| s.full_require_paths }</div><div class='del'>-        loaded_gem_paths.flatten</div><div class='del'>-      else</div><div class='del'>-        $LOAD_PATH.select do |p|</div><div class='del'>-          Bundler.rubygems.gem_path.any? {|gp| p =~ /^#{Regexp.escape(gp)}/ }</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='add'>+      loaded_gem_paths = Gem.loaded_specs.map {|_, s| s.full_require_paths }</div><div class='add'>+      loaded_gem_paths.flatten</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def load_plugins</div><div class='hunk'>@@ -242,6 +191,10 @@ module Bundler</div><div class='ctx'>       Gem.load_plugin_files(files) if Gem.respond_to?(:load_plugin_files)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def load_env_plugins</div><div class='add'>+      Gem.load_env_plugins if Gem.respond_to?(:load_env_plugins)</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def ui=(obj)</div><div class='ctx'>       Gem::DefaultUserInteraction.ui = obj</div><div class='ctx'>     end</div><div class='hunk'>@@ -250,92 +203,15 @@ module Bundler</div><div class='ctx'>       EXT_LOCK</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def fetch_specs(all, pre, &amp;blk)</div><div class='del'>-      require "rubygems/spec_fetcher"</div><div class='del'>-      specs = Gem::SpecFetcher.new.list(all, pre)</div><div class='del'>-      specs.each { yield } if block_given?</div><div class='del'>-      specs</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def fetch_prerelease_specs</div><div class='del'>-      fetch_specs(false, true)</div><div class='del'>-    rescue Gem::RemoteFetcher::FetchError</div><div class='del'>-      {} # if we can't download them, there aren't any</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # TODO: This is for older versions of RubyGems... should we support the</div><div class='del'>-    # X-Gemfile-Source header on these old versions?</div><div class='del'>-    # Maybe the newer implementation will work on older RubyGems?</div><div class='del'>-    # It seems difficult to keep this implementation and still send the header.</div><div class='del'>-    def fetch_all_remote_specs(remote)</div><div class='del'>-      old_sources = Bundler.rubygems.sources</div><div class='del'>-      Bundler.rubygems.sources = [remote.uri.to_s]</div><div class='del'>-      # Fetch all specs, minus prerelease specs</div><div class='del'>-      spec_list = fetch_specs(true, false)</div><div class='del'>-      # Then fetch the prerelease specs</div><div class='del'>-      fetch_prerelease_specs.each {|k, v| spec_list[k].concat(v) }</div><div class='del'>-</div><div class='del'>-      spec_list.values.first</div><div class='del'>-    ensure</div><div class='del'>-      Bundler.rubygems.sources = old_sources</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def with_build_args(args)</div><div class='del'>-      ext_lock.synchronize do</div><div class='del'>-        old_args = build_args</div><div class='del'>-        begin</div><div class='del'>-          self.build_args = args</div><div class='del'>-          yield</div><div class='del'>-        ensure</div><div class='del'>-          self.build_args = old_args</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def install_with_build_args(args)</div><div class='del'>-      with_build_args(args) { yield }</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def gem_from_path(path, policy = nil)</div><div class='del'>-      require "rubygems/format"</div><div class='del'>-      Gem::Format.from_file_by_path(path, policy)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def spec_from_gem(path, policy = nil)</div><div class='del'>-      require "rubygems/security"</div><div class='del'>-      require "bundler/psyched_yaml"</div><div class='del'>-      gem_from_path(path, security_policies[policy]).spec</div><div class='del'>-    rescue Gem::Package::FormatError</div><div class='del'>-      raise GemspecError, "Could not read gem at #{path}. It may be corrupted."</div><div class='del'>-    rescue Exception, Gem::Exception, Gem::Security::Exception =&gt; e</div><div class='del'>-      if e.is_a?(Gem::Security::Exception) ||</div><div class='del'>-          e.message =~ /unknown trust policy|unsigned gem/i ||</div><div class='del'>-          e.message =~ /couldn't verify (meta)?data signature/i</div><div class='del'>-        raise SecurityError,</div><div class='del'>-          "The gem #{File.basename(path, ".gem")} can't be installed because " \</div><div class='del'>-          "the security policy didn't allow it, with the message: #{e.message}"</div><div class='del'>-      else</div><div class='del'>-        raise e</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def build(spec, skip_validation = false)</div><div class='del'>-      require "rubygems/builder"</div><div class='del'>-      Gem::Builder.new(spec).build</div><div class='add'>+    def spec_from_gem(path)</div><div class='add'>+      require "rubygems/package"</div><div class='add'>+      Gem::Package.new(path).spec</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def build_gem(gem_dir, spec)</div><div class='ctx'>       build(spec)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def download_gem(spec, uri, path)</div><div class='del'>-      uri = Bundler.settings.mirror_for(uri)</div><div class='del'>-      fetcher = Gem::RemoteFetcher.new(configuration[:http_proxy])</div><div class='del'>-      Bundler::Retry.new("download gem from #{uri}").attempts do</div><div class='del'>-        fetcher.download(spec, uri, path)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def security_policy_keys</div><div class='ctx'>       %w[High Medium Low AlmostNo No].map {|level| "#{level}Security" }</div><div class='ctx'>     end</div><div class='hunk'>@@ -351,22 +227,18 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def reverse_rubygems_kernel_mixin</div><div class='ctx'>       # Disable rubygems' gem activation system</div><div class='del'>-      kernel = (class &lt;&lt; ::Kernel; self; end)</div><div class='del'>-      [kernel, ::Kernel].each do |k|</div><div class='del'>-        if k.private_method_defined?(:gem_original_require)</div><div class='del'>-          redefine_method(k, :require, k.instance_method(:gem_original_require))</div><div class='add'>+      if Gem.respond_to?(:discover_gems_on_require=)</div><div class='add'>+        Gem.discover_gems_on_require = false</div><div class='add'>+      else</div><div class='add'>+        kernel = (class &lt;&lt; ::Kernel; self; end)</div><div class='add'>+        [kernel, ::Kernel].each do |k|</div><div class='add'>+          if k.private_method_defined?(:gem_original_require)</div><div class='add'>+            redefine_method(k, :require, k.instance_method(:gem_original_require))</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def binstubs_call_gem?</div><div class='del'>-      true</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def stubs_provide_full_functionality?</div><div class='del'>-      false</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def replace_gem(specs, specs_by_name)</div><div class='ctx'>       reverse_rubygems_kernel_mixin</div><div class='ctx'> </div><div class='hunk'>@@ -375,8 +247,7 @@ module Bundler</div><div class='ctx'>       kernel = (class &lt;&lt; ::Kernel; self; end)</div><div class='ctx'>       [kernel, ::Kernel].each do |kernel_class|</div><div class='ctx'>         redefine_method(kernel_class, :gem) do |dep, *reqs|</div><div class='del'>-          executables ||= specs.map(&amp;:executables).flatten if ::Bundler.rubygems.binstubs_call_gem?</div><div class='del'>-          if executables &amp;&amp; executables.include?(File.basename(caller.first.split(":").first))</div><div class='add'>+          if executables&amp;.include?(File.basename(caller.first.split(":").first))</div><div class='ctx'>             break</div><div class='ctx'>           end</div><div class='ctx'> </div><div class='hunk'>@@ -391,8 +262,13 @@ module Bundler</div><div class='ctx'>           end</div><div class='ctx'> </div><div class='ctx'>           message = if spec.nil?</div><div class='add'>+            target_file = begin</div><div class='add'>+                            Bundler.default_gemfile.basename</div><div class='add'>+                          rescue GemfileNotFound</div><div class='add'>+                            "inline Gemfile"</div><div class='add'>+                          end</div><div class='ctx'>             "#{dep.name} is not part of the bundle." \</div><div class='del'>-            " Add it to your #{Bundler.default_gemfile.basename}."</div><div class='add'>+            " Add it to your #{target_file}."</div><div class='ctx'>           else</div><div class='ctx'>             "can't activate #{dep}, already activated #{spec.full_name}. " \</div><div class='ctx'>             "Make sure all dependencies are added to Gemfile."</div><div class='hunk'>@@ -400,76 +276,54 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>           e = Gem::LoadError.new(message)</div><div class='ctx'>           e.name = dep.name</div><div class='del'>-          if e.respond_to?(:requirement=)</div><div class='del'>-            e.requirement = dep.requirement</div><div class='del'>-          elsif e.respond_to?(:version_requirement=)</div><div class='del'>-            e.version_requirement = dep.requirement</div><div class='del'>-          end</div><div class='add'>+          e.requirement = dep.requirement</div><div class='ctx'>           raise e</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        # backwards compatibility shim, see https://github.com/bundler/bundler/issues/5102</div><div class='add'>+        # backwards compatibility shim, see https://github.com/rubygems/bundler/issues/5102</div><div class='ctx'>         kernel_class.send(:public, :gem) if Bundler.feature_flag.setup_makes_kernel_gem_public?</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def stub_source_index(specs)</div><div class='del'>-      Gem::SourceIndex.send(:alias_method, :old_initialize, :initialize)</div><div class='del'>-      redefine_method(Gem::SourceIndex, :initialize) do |*args|</div><div class='del'>-        @gems = {}</div><div class='del'>-        # You're looking at this thinking: Oh! This is how I make those</div><div class='del'>-        # rubygems deprecations go away!</div><div class='del'>-        #</div><div class='del'>-        # You'd be correct BUT using of this method in production code</div><div class='del'>-        # must be approved by the rubygems team itself!</div><div class='del'>-        #</div><div class='del'>-        # This is your warning. If you use this and don't have approval</div><div class='del'>-        # we can't protect you.</div><div class='del'>-        #</div><div class='del'>-        Deprecate.skip_during do</div><div class='del'>-          self.spec_dirs = *args</div><div class='del'>-          add_specs(*specs)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     # Used to make bin stubs that are not created by bundler work</div><div class='ctx'>     # under bundler. The new Gem.bin_path only considers gems in</div><div class='ctx'>     # +specs+</div><div class='del'>-    def replace_bin_path(specs, specs_by_name)</div><div class='add'>+    def replace_bin_path(specs_by_name)</div><div class='ctx'>       gem_class = (class &lt;&lt; Gem; self; end)</div><div class='ctx'> </div><div class='ctx'>       redefine_method(gem_class, :find_spec_for_exe) do |gem_name, *args|</div><div class='ctx'>         exec_name = args.first</div><div class='add'>+        raise ArgumentError, "you must supply exec_name" unless exec_name</div><div class='ctx'> </div><div class='ctx'>         spec_with_name = specs_by_name[gem_name]</div><div class='del'>-        spec = if exec_name</div><div class='del'>-          if spec_with_name &amp;&amp; spec_with_name.executables.include?(exec_name)</div><div class='del'>-            spec_with_name</div><div class='del'>-          else</div><div class='del'>-            specs.find {|s| s.executables.include?(exec_name) }</div><div class='del'>-          end</div><div class='del'>-        else</div><div class='del'>-          spec_with_name</div><div class='del'>-        end</div><div class='add'>+        matching_specs_by_exec_name = specs_by_name.values.select {|s| s.executables.include?(exec_name) }</div><div class='add'>+        spec = matching_specs_by_exec_name.delete(spec_with_name)</div><div class='ctx'> </div><div class='del'>-        unless spec</div><div class='add'>+        unless spec || !matching_specs_by_exec_name.empty?</div><div class='ctx'>           message = "can't find executable #{exec_name} for gem #{gem_name}"</div><div class='del'>-          if !exec_name || spec_with_name.nil?</div><div class='add'>+          if spec_with_name.nil?</div><div class='ctx'>             message += ". #{gem_name} is not currently included in the bundle, " \</div><div class='ctx'>                        "perhaps you meant to add it to your #{Bundler.default_gemfile.basename}?"</div><div class='ctx'>           end</div><div class='ctx'>           raise Gem::Exception, message</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        raise Gem::Exception, "no default executable for #{spec.full_name}" unless exec_name ||= spec.default_executable</div><div class='del'>-</div><div class='del'>-        unless spec.name == gem_name</div><div class='del'>-          Bundler::SharedHelpers.major_deprecation 2,</div><div class='add'>+        unless spec</div><div class='add'>+          spec = matching_specs_by_exec_name.shift</div><div class='add'>+          warn \</div><div class='ctx'>             "Bundler is using a binstub that was created for a different gem (#{spec.name}).\n" \</div><div class='ctx'>             "You should run `bundle binstub #{gem_name}` " \</div><div class='ctx'>             "to work around a system/bundle conflict."</div><div class='ctx'>         end</div><div class='add'>+</div><div class='add'>+        unless matching_specs_by_exec_name.empty?</div><div class='add'>+          conflicting_names = matching_specs_by_exec_name.map(&amp;:name).join(", ")</div><div class='add'>+          warn \</div><div class='add'>+            "The `#{exec_name}` executable in the `#{spec.name}` gem is being loaded, but it's also present in other gems (#{conflicting_names}).\n" \</div><div class='add'>+            "If you meant to run the executable for another gem, make sure you use a project specific binstub (`bundle binstub &lt;gem_name&gt;`).\n" \</div><div class='add'>+            "If you plan to use multiple conflicting executables, generate binstubs for them and disambiguate their names."</div><div class='add'>+        end</div><div class='add'>+</div><div class='ctx'>         spec</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -499,75 +353,35 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Because Bundler has a static view of what specs are available,</div><div class='del'>-    # we don't #refresh, so stub it out.</div><div class='del'>-    def replace_refresh</div><div class='del'>-      gem_class = (class &lt;&lt; Gem; self; end)</div><div class='del'>-      redefine_method(gem_class, :refresh) {}</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     # Replace or hook into RubyGems to provide a bundlerized view</div><div class='ctx'>     # of the world.</div><div class='ctx'>     def replace_entrypoints(specs)</div><div class='del'>-      specs_by_name = specs.reduce({}) do |h, s|</div><div class='del'>-        h[s.name] = s</div><div class='del'>-        h</div><div class='del'>-      end</div><div class='add'>+      specs_by_name = add_default_gems_to(specs)</div><div class='ctx'> </div><div class='ctx'>       replace_gem(specs, specs_by_name)</div><div class='ctx'>       stub_rubygems(specs)</div><div class='del'>-      replace_bin_path(specs, specs_by_name)</div><div class='del'>-      replace_refresh</div><div class='add'>+      replace_bin_path(specs_by_name)</div><div class='ctx'> </div><div class='ctx'>       Gem.clear_paths</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # This backports the correct segment generation code from RubyGems 1.4+</div><div class='del'>-    # by monkeypatching it into the method in RubyGems 1.3.6 and 1.3.7.</div><div class='del'>-    def backport_segment_generation</div><div class='del'>-      redefine_method(Gem::Version, :segments) do</div><div class='del'>-        @segments ||= @version.scan(/[0-9]+|[a-z]+/i).map do |s|</div><div class='del'>-          /^\d+$/ =~ s ? s.to_i : s</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # This backport fixes the marshaling of @segments.</div><div class='del'>-    def backport_yaml_initialize</div><div class='del'>-      redefine_method(Gem::Version, :yaml_initialize) do |_, map|</div><div class='del'>-        @version = map["version"]</div><div class='del'>-        @segments = nil</div><div class='del'>-        @hash = nil</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # This backports base_dir which replaces installation path</div><div class='del'>-    # RubyGems 1.8+</div><div class='del'>-    def backport_base_dir</div><div class='del'>-      redefine_method(Gem::Specification, :base_dir) do</div><div class='del'>-        return Gem.dir unless loaded_from</div><div class='del'>-        File.dirname File.dirname loaded_from</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def backport_cache_file</div><div class='del'>-      redefine_method(Gem::Specification, :cache_dir) do</div><div class='del'>-        @cache_dir ||= File.join base_dir, "cache"</div><div class='add'>+    # Add default gems not already present in specs, and return them as a hash.</div><div class='add'>+    def add_default_gems_to(specs)</div><div class='add'>+      specs_by_name = specs.reduce({}) do |h, s|</div><div class='add'>+        h[s.name] = s</div><div class='add'>+        h</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      redefine_method(Gem::Specification, :cache_file) do</div><div class='del'>-        @cache_file ||= File.join cache_dir, "#{full_name}.gem"</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='add'>+      Bundler.rubygems.default_stubs.each do |stub|</div><div class='add'>+        default_spec = stub.to_spec</div><div class='add'>+        default_spec_name = default_spec.name</div><div class='add'>+        next if specs_by_name.key?(default_spec_name)</div><div class='ctx'> </div><div class='del'>-    def backport_spec_file</div><div class='del'>-      redefine_method(Gem::Specification, :spec_dir) do</div><div class='del'>-        @spec_dir ||= File.join base_dir, "specifications"</div><div class='add'>+        specs &lt;&lt; default_spec</div><div class='add'>+        specs_by_name[default_spec_name] = default_spec</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      redefine_method(Gem::Specification, :spec_file) do</div><div class='del'>-        @spec_file ||= File.join spec_dir, "#{full_name}.gemspec"</div><div class='del'>-      end</div><div class='add'>+      specs_by_name</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def undo_replacements</div><div class='hunk'>@@ -613,286 +427,136 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # RubyGems 1.4 through 1.6</div><div class='del'>-    class Legacy &lt; RubygemsIntegration</div><div class='del'>-      def initialize</div><div class='del'>-        super</div><div class='del'>-        backport_base_dir</div><div class='del'>-        backport_cache_file</div><div class='del'>-        backport_spec_file</div><div class='del'>-        backport_yaml_initialize</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def stub_rubygems(specs)</div><div class='del'>-        # RubyGems versions lower than 1.7 use SourceIndex#from_gems_in</div><div class='del'>-        source_index_class = (class &lt;&lt; Gem::SourceIndex; self; end)</div><div class='del'>-        redefine_method(source_index_class, :from_gems_in) do |*args|</div><div class='del'>-          Gem::SourceIndex.new.tap do |source_index|</div><div class='del'>-            source_index.spec_dirs = *args</div><div class='del'>-            source_index.add_specs(*specs)</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def all_specs</div><div class='del'>-        Gem.source_index.gems.values</div><div class='del'>-      end</div><div class='add'>+    def stub_rubygems(specs)</div><div class='add'>+      Gem::Specification.all = specs</div><div class='ctx'> </div><div class='del'>-      def find_name(name)</div><div class='del'>-        Gem.source_index.find_name(name)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def validate(spec)</div><div class='del'>-        # These versions of RubyGems always validate in "packaging" mode,</div><div class='del'>-        # which is too strict for the kinds of checks we care about. As a</div><div class='del'>-        # result, validation is disabled on versions of RubyGems below 1.7.</div><div class='add'>+      Gem.post_reset do</div><div class='add'>+        Gem::Specification.all = specs</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def post_reset_hooks</div><div class='add'>+      redefine_method((class &lt;&lt; Gem; self; end), :finish_resolve) do |*|</div><div class='ctx'>         []</div><div class='ctx'>       end</div><div class='del'>-</div><div class='del'>-      def reset</div><div class='del'>-      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # RubyGems versions 1.3.6 and 1.3.7</div><div class='del'>-    class Ancient &lt; Legacy</div><div class='del'>-      def initialize</div><div class='del'>-        super</div><div class='del'>-        backport_segment_generation</div><div class='del'>-      end</div><div class='add'>+    def plain_specs</div><div class='add'>+      Gem::Specification._all</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # RubyGems 1.7</div><div class='del'>-    class Transitional &lt; Legacy</div><div class='del'>-      def stub_rubygems(specs)</div><div class='del'>-        stub_source_index(specs)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def validate(spec)</div><div class='del'>-        # Missing summary is downgraded to a warning in later versions,</div><div class='del'>-        # so we set it to an empty string to prevent an exception here.</div><div class='del'>-        spec.summary ||= ""</div><div class='del'>-        RubygemsIntegration.instance_method(:validate).bind(self).call(spec)</div><div class='del'>-      end</div><div class='add'>+    def plain_specs=(specs)</div><div class='add'>+      Gem::Specification.all = specs</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # RubyGems 1.8.5-1.8.19</div><div class='del'>-    class Modern &lt; RubygemsIntegration</div><div class='del'>-      def stub_rubygems(specs)</div><div class='del'>-        Gem::Specification.all = specs</div><div class='del'>-</div><div class='del'>-        Gem.post_reset do</div><div class='del'>-          Gem::Specification.all = specs</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        stub_source_index(specs)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def all_specs</div><div class='del'>-        Gem::Specification.to_a</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def find_name(name)</div><div class='del'>-        Gem::Specification.find_all_by_name name</div><div class='del'>-      end</div><div class='add'>+    def fetch_specs(remote, name)</div><div class='add'>+      require "rubygems/remote_fetcher"</div><div class='add'>+      path = remote.uri.to_s + "#{name}.#{Gem.marshal_version}.gz"</div><div class='add'>+      fetcher = gem_remote_fetcher</div><div class='add'>+      fetcher.headers = { "X-Gemfile-Source" =&gt; remote.original_uri.to_s } if remote.original_uri</div><div class='add'>+      string = fetcher.fetch_path(path)</div><div class='add'>+      Bundler.safe_load_marshal(string)</div><div class='add'>+    rescue Gem::RemoteFetcher::FetchError</div><div class='add'>+      # it's okay for prerelease to fail</div><div class='add'>+      raise unless name == "prerelease_specs"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # RubyGems 1.8.0 to 1.8.4</div><div class='del'>-    class AlmostModern &lt; Modern</div><div class='del'>-      # RubyGems [&gt;= 1.8.0, &lt; 1.8.5] has a bug that changes Gem.dir whenever</div><div class='del'>-      # you call Gem::Installer#install with an :install_dir set. We have to</div><div class='del'>-      # change it back for our sudo mode to work.</div><div class='del'>-      def preserve_paths</div><div class='del'>-        old_dir = gem_dir</div><div class='del'>-        old_path = gem_path</div><div class='del'>-        yield</div><div class='del'>-        Gem.use_paths(old_dir, old_path)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='add'>+    def fetch_all_remote_specs(remote)</div><div class='add'>+      specs = fetch_specs(remote, "specs")</div><div class='add'>+      pres = fetch_specs(remote, "prerelease_specs") || []</div><div class='ctx'> </div><div class='del'>-    # RubyGems 1.8.20+</div><div class='del'>-    class MoreModern &lt; Modern</div><div class='del'>-      # RubyGems 1.8.20 and adds the skip_validation parameter, so that's</div><div class='del'>-      # when we start passing it through.</div><div class='del'>-      def build(spec, skip_validation = false)</div><div class='del'>-        require "rubygems/builder"</div><div class='del'>-        Gem::Builder.new(spec).build(skip_validation)</div><div class='del'>-      end</div><div class='add'>+      specs.concat(pres)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # RubyGems 2.0</div><div class='del'>-    class Future &lt; RubygemsIntegration</div><div class='del'>-      def stub_rubygems(specs)</div><div class='del'>-        Gem::Specification.all = specs</div><div class='del'>-</div><div class='del'>-        Gem.post_reset do</div><div class='del'>-          Gem::Specification.all = specs</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        redefine_method((class &lt;&lt; Gem; self; end), :finish_resolve) do |*|</div><div class='del'>-          []</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def all_specs</div><div class='del'>-        Gem::Specification.to_a</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def find_name(name)</div><div class='del'>-        Gem::Specification.find_all_by_name name</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def fetch_specs(source, remote, name)</div><div class='del'>-        path = source + "#{name}.#{Gem.marshal_version}.gz"</div><div class='del'>-        fetcher = gem_remote_fetcher</div><div class='del'>-        fetcher.headers = { "X-Gemfile-Source" =&gt; remote.original_uri.to_s } if remote.original_uri</div><div class='del'>-        string = fetcher.fetch_path(path)</div><div class='del'>-        Bundler.load_marshal(string)</div><div class='del'>-      rescue Gem::RemoteFetcher::FetchError =&gt; e</div><div class='del'>-        # it's okay for prerelease to fail</div><div class='del'>-        raise e unless name == "prerelease_specs"</div><div class='del'>-      end</div><div class='add'>+    def download_gem(spec, uri, cache_dir)</div><div class='add'>+      require "rubygems/remote_fetcher"</div><div class='add'>+      uri = Bundler.settings.mirror_for(uri)</div><div class='add'>+      fetcher = gem_remote_fetcher</div><div class='add'>+      fetcher.headers = { "X-Gemfile-Source" =&gt; spec.remote.original_uri.to_s } if spec.remote.original_uri</div><div class='add'>+      Bundler::Retry.new("download gem from #{uri}").attempts do</div><div class='add'>+        gem_file_name = spec.file_name</div><div class='add'>+        local_gem_path = File.join cache_dir, gem_file_name</div><div class='add'>+        return if File.exist? local_gem_path</div><div class='ctx'> </div><div class='del'>-      def fetch_all_remote_specs(remote)</div><div class='del'>-        source = remote.uri.is_a?(URI) ? remote.uri : URI.parse(source.to_s)</div><div class='add'>+        begin</div><div class='add'>+          remote_gem_path = uri + "gems/#{gem_file_name}"</div><div class='add'>+          remote_gem_path = remote_gem_path.to_s if provides?("&lt; 3.2.0.rc.1")</div><div class='ctx'> </div><div class='del'>-        specs = fetch_specs(source, remote, "specs")</div><div class='del'>-        pres = fetch_specs(source, remote, "prerelease_specs") || []</div><div class='add'>+          SharedHelpers.filesystem_access(local_gem_path) do</div><div class='add'>+            fetcher.cache_update_path remote_gem_path, local_gem_path</div><div class='add'>+          end</div><div class='add'>+        rescue Gem::RemoteFetcher::FetchError</div><div class='add'>+          raise if spec.original_platform == spec.platform</div><div class='ctx'> </div><div class='del'>-        specs.concat(pres)</div><div class='del'>-      end</div><div class='add'>+          original_gem_file_name = "#{spec.original_name}.gem"</div><div class='add'>+          raise if gem_file_name == original_gem_file_name</div><div class='ctx'> </div><div class='del'>-      def download_gem(spec, uri, path)</div><div class='del'>-        uri = Bundler.settings.mirror_for(uri)</div><div class='del'>-        fetcher = gem_remote_fetcher</div><div class='del'>-        fetcher.headers = { "X-Gemfile-Source" =&gt; spec.remote.original_uri.to_s } if spec.remote.original_uri</div><div class='del'>-        Bundler::Retry.new("download gem from #{uri}").attempts do</div><div class='del'>-          fetcher.download(spec, uri, path)</div><div class='add'>+          gem_file_name = original_gem_file_name</div><div class='add'>+          retry</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='add'>+    rescue Gem::RemoteFetcher::FetchError =&gt; e</div><div class='add'>+      raise Bundler::HTTPError, "Could not download gem from #{uri} due to underlying error &lt;#{e.message}&gt;"</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      def gem_remote_fetcher</div><div class='del'>-        require "resolv"</div><div class='del'>-        proxy = configuration[:http_proxy]</div><div class='del'>-        dns = Resolv::DNS.new</div><div class='del'>-        Bundler::GemRemoteFetcher.new(proxy, dns)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def gem_from_path(path, policy = nil)</div><div class='del'>-        require "rubygems/package"</div><div class='del'>-        p = Gem::Package.new(path)</div><div class='del'>-        p.security_policy = policy if policy</div><div class='del'>-        p</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def build(spec, skip_validation = false)</div><div class='del'>-        require "rubygems/package"</div><div class='del'>-        Gem::Package.build(spec, skip_validation)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def repository_subdirectories</div><div class='del'>-        Gem::REPOSITORY_SUBDIRECTORIES</div><div class='del'>-      end</div><div class='add'>+    def gem_remote_fetcher</div><div class='add'>+      require "rubygems/remote_fetcher"</div><div class='add'>+      proxy = Gem.configuration[:http_proxy]</div><div class='add'>+      Gem::RemoteFetcher.new(proxy)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      def install_with_build_args(args)</div><div class='del'>-        yield</div><div class='del'>-      end</div><div class='add'>+    def build(spec, skip_validation = false)</div><div class='add'>+      require "rubygems/package"</div><div class='add'>+      Gem::Package.build(spec, skip_validation)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      def path_separator</div><div class='del'>-        Gem.path_separator</div><div class='del'>-      end</div><div class='add'>+    def path_separator</div><div class='add'>+      Gem.path_separator</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # RubyGems 2.1.0</div><div class='del'>-    class MoreFuture &lt; Future</div><div class='del'>-      def initialize</div><div class='del'>-        super</div><div class='del'>-        backport_ext_builder_monitor</div><div class='add'>+    def all_specs</div><div class='add'>+      Gem::Specification.stubs.map do |stub|</div><div class='add'>+        StubSpecification.from_stub(stub)</div><div class='ctx'>       end</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      def all_specs</div><div class='del'>-        require "bundler/remote_specification"</div><div class='del'>-        Gem::Specification.stubs.map do |stub|</div><div class='del'>-          StubSpecification.from_stub(stub)</div><div class='add'>+    def backport_ext_builder_monitor</div><div class='add'>+      # So we can avoid requiring "rubygems/ext" in its entirety</div><div class='add'>+      Gem.module_eval &lt;&lt;-RUBY, __FILE__, __LINE__ + 1</div><div class='add'>+        module Ext</div><div class='ctx'>         end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def backport_ext_builder_monitor</div><div class='del'>-        # So we can avoid requiring "rubygems/ext" in its entirety</div><div class='del'>-        Gem.module_eval &lt;&lt;-RB, __FILE__, __LINE__ + 1</div><div class='del'>-          module Ext</div><div class='del'>-          end</div><div class='del'>-        RB</div><div class='add'>+      RUBY</div><div class='ctx'> </div><div class='del'>-        require "rubygems/ext/builder"</div><div class='add'>+      require "rubygems/ext/builder"</div><div class='ctx'> </div><div class='del'>-        Gem::Ext::Builder.class_eval do</div><div class='del'>-          unless const_defined?(:CHDIR_MONITOR)</div><div class='del'>-            const_set(:CHDIR_MONITOR, EXT_LOCK)</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          remove_const(:CHDIR_MUTEX) if const_defined?(:CHDIR_MUTEX)</div><div class='del'>-          const_set(:CHDIR_MUTEX, const_get(:CHDIR_MONITOR))</div><div class='add'>+      Gem::Ext::Builder.class_eval do</div><div class='add'>+        unless const_defined?(:CHDIR_MONITOR)</div><div class='add'>+          const_set(:CHDIR_MONITOR, EXT_LOCK)</div><div class='ctx'>         end</div><div class='del'>-      end</div><div class='ctx'> </div><div class='del'>-      if Gem::Specification.respond_to?(:stubs_for)</div><div class='del'>-        def find_name(name)</div><div class='del'>-          Gem::Specification.stubs_for(name).map(&amp;:to_spec)</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        def find_name(name)</div><div class='del'>-          Gem::Specification.stubs.find_all do |spec|</div><div class='del'>-            spec.name == name</div><div class='del'>-          end.map(&amp;:to_spec)</div><div class='del'>-        end</div><div class='add'>+        remove_const(:CHDIR_MUTEX) if const_defined?(:CHDIR_MUTEX)</div><div class='add'>+        const_set(:CHDIR_MUTEX, const_get(:CHDIR_MONITOR))</div><div class='ctx'>       end</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      def use_gemdeps(gemfile)</div><div class='del'>-        ENV["BUNDLE_GEMFILE"] ||= File.expand_path(gemfile)</div><div class='del'>-        require "bundler/gemdeps"</div><div class='del'>-        runtime = Bundler.setup</div><div class='del'>-        Bundler.ui = nil</div><div class='del'>-        activated_spec_names = runtime.requested_specs.map(&amp;:to_spec).sort_by(&amp;:name)</div><div class='del'>-        [Gemdeps.new(runtime), activated_spec_names]</div><div class='del'>-      end</div><div class='add'>+    def find_bundler(version)</div><div class='add'>+      find_name("bundler").find {|s| s.version.to_s == version }</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      if provides?("&gt;= 2.5.2")</div><div class='del'>-        # RubyGems-generated binstubs call Kernel#gem</div><div class='del'>-        def binstubs_call_gem?</div><div class='del'>-          false</div><div class='del'>-        end</div><div class='add'>+    def find_name(name)</div><div class='add'>+      Gem::Specification.stubs_for(name).map(&amp;:to_spec)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-        # only 2.5.2+ has all of the stub methods we want to use, and since this</div><div class='del'>-        # is a performance optimization _only_,</div><div class='del'>-        # we'll restrict ourselves to the most</div><div class='del'>-        # recent RG versions instead of all versions that have stubs</div><div class='del'>-        def stubs_provide_full_functionality?</div><div class='del'>-          true</div><div class='del'>-        end</div><div class='add'>+    if Gem::Specification.respond_to?(:default_stubs)</div><div class='add'>+      def default_stubs</div><div class='add'>+        Gem::Specification.default_stubs("*.gemspec")</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      def default_stubs</div><div class='add'>+        Gem::Specification.send(:default_stubs, "*.gemspec")</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def self.rubygems</div><div class='del'>-    @rubygems ||= if RubygemsIntegration.provides?("&gt;= 2.1.0")</div><div class='del'>-      RubygemsIntegration::MoreFuture.new</div><div class='del'>-    elsif RubygemsIntegration.provides?("&gt;= 1.99.99")</div><div class='del'>-      RubygemsIntegration::Future.new</div><div class='del'>-    elsif RubygemsIntegration.provides?("&gt;= 1.8.20")</div><div class='del'>-      RubygemsIntegration::MoreModern.new</div><div class='del'>-    elsif RubygemsIntegration.provides?("&gt;= 1.8.5")</div><div class='del'>-      RubygemsIntegration::Modern.new</div><div class='del'>-    elsif RubygemsIntegration.provides?("&gt;= 1.8.0")</div><div class='del'>-      RubygemsIntegration::AlmostModern.new</div><div class='del'>-    elsif RubygemsIntegration.provides?("&gt;= 1.7.0")</div><div class='del'>-      RubygemsIntegration::Transitional.new</div><div class='del'>-    elsif RubygemsIntegration.provides?("&gt;= 1.4.0")</div><div class='del'>-      RubygemsIntegration::Legacy.new</div><div class='del'>-    else # RubyGems 1.3.6 and 1.3.7</div><div class='del'>-      RubygemsIntegration::Ancient.new</div><div class='del'>-    end</div><div class='add'>+    @rubygems ||= RubygemsIntegration.new</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/runtime.rb b/lib/bundler/runtime.rb<br/>index 762e7b3ec6..95cf78dd41 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/runtime.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/runtime.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/runtime.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/runtime.rb</a></div><div class='hunk'>@@ -12,36 +12,23 @@ module Bundler</div><div class='ctx'>     def setup(*groups)</div><div class='ctx'>       @definition.ensure_equivalent_gemfile_and_lockfile if Bundler.frozen_bundle?</div><div class='ctx'> </div><div class='del'>-      groups.map!(&amp;:to_sym)</div><div class='del'>-</div><div class='ctx'>       # Has to happen first</div><div class='ctx'>       clean_load_path</div><div class='ctx'> </div><div class='del'>-      specs = groups.any? ? @definition.specs_for(groups) : requested_specs</div><div class='add'>+      specs = @definition.specs_for(groups)</div><div class='ctx'> </div><div class='ctx'>       SharedHelpers.set_bundle_environment</div><div class='ctx'>       Bundler.rubygems.replace_entrypoints(specs)</div><div class='ctx'> </div><div class='ctx'>       # Activate the specs</div><div class='ctx'>       load_paths = specs.map do |spec|</div><div class='del'>-        unless spec.loaded_from</div><div class='del'>-          raise GemNotFound, "#{spec.full_name} is missing. Run `bundle install` to get it."</div><div class='del'>-        end</div><div class='del'>-</div><div class='ctx'>         check_for_activated_spec!(spec)</div><div class='ctx'> </div><div class='ctx'>         Bundler.rubygems.mark_loaded(spec)</div><div class='ctx'>         spec.load_paths.reject {|path| $LOAD_PATH.include?(path) }</div><div class='ctx'>       end.reverse.flatten</div><div class='ctx'> </div><div class='del'>-      # See Gem::Specification#add_self_to_load_path (since RubyGems 1.8)</div><div class='del'>-      if insert_index = Bundler.rubygems.load_path_insert_index</div><div class='del'>-        # Gem directories must come after -I and ENV['RUBYLIB']</div><div class='del'>-        $LOAD_PATH.insert(insert_index, *load_paths)</div><div class='del'>-      else</div><div class='del'>-        # We are probably testing in core, -I and RUBYLIB don't apply</div><div class='del'>-        $LOAD_PATH.unshift(*load_paths)</div><div class='del'>-      end</div><div class='add'>+      Bundler.rubygems.add_to_load_path(load_paths)</div><div class='ctx'> </div><div class='ctx'>       setup_manpath</div><div class='ctx'> </div><div class='hunk'>@@ -50,14 +37,6 @@ module Bundler</div><div class='ctx'>       self</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    REQUIRE_ERRORS = [</div><div class='del'>-      /^no such file to load -- (.+)$/i,</div><div class='del'>-      /^Missing \w+ (?:file\s*)?([^\s]+.rb)$/i,</div><div class='del'>-      /^Missing API definition file in (.+)$/i,</div><div class='del'>-      /^cannot load such file -- (.+)$/i,</div><div class='del'>-      /^dlopen\([^)]*\): Library not loaded: (.+)$/i,</div><div class='del'>-    ].freeze</div><div class='del'>-</div><div class='ctx'>     def require(*groups)</div><div class='ctx'>       groups.map!(&amp;:to_sym)</div><div class='ctx'>       groups = [:default] if groups.empty?</div><div class='hunk'>@@ -86,16 +65,14 @@ module Bundler</div><div class='ctx'>             end</div><div class='ctx'>           end</div><div class='ctx'>         rescue LoadError =&gt; e</div><div class='del'>-          REQUIRE_ERRORS.find {|r| r =~ e.message }</div><div class='del'>-          raise if dep.autorequire || $1 != required_file</div><div class='add'>+          raise if dep.autorequire || e.path != required_file</div><div class='ctx'> </div><div class='ctx'>           if dep.autorequire.nil? &amp;&amp; dep.name.include?("-")</div><div class='ctx'>             begin</div><div class='ctx'>               namespaced_file = dep.name.tr("-", "/")</div><div class='ctx'>               Kernel.require namespaced_file</div><div class='ctx'>             rescue LoadError =&gt; e</div><div class='del'>-              REQUIRE_ERRORS.find {|r| r =~ e.message }</div><div class='del'>-              raise if $1 != namespaced_file</div><div class='add'>+              raise if e.path != namespaced_file</div><div class='ctx'>             end</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='hunk'>@@ -117,13 +94,13 @@ module Bundler</div><div class='ctx'>     definition_method :requires</div><div class='ctx'> </div><div class='ctx'>     def lock(opts = {})</div><div class='del'>-      return if @definition.nothing_changed? &amp;&amp; !@definition.unlocking?</div><div class='add'>+      return if @definition.no_resolve_needed?</div><div class='ctx'>       @definition.lock(Bundler.default_lockfile, opts[:preserve_unknown_sections])</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     alias_method :gems, :specs</div><div class='ctx'> </div><div class='del'>-    def cache(custom_path = nil)</div><div class='add'>+    def cache(custom_path = nil, local = false)</div><div class='ctx'>       cache_path = Bundler.app_cache(custom_path)</div><div class='ctx'>       SharedHelpers.filesystem_access(cache_path) do |p|</div><div class='ctx'>         FileUtils.mkdir_p(p)</div><div class='hunk'>@@ -131,11 +108,23 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       Bundler.ui.info "Updating files in #{Bundler.settings.app_cache_path}"</div><div class='ctx'> </div><div class='del'>-      specs_to_cache = Bundler.settings[:cache_all_platforms] ? @definition.resolve.materialized_for_all_platforms : specs</div><div class='add'>+      specs_to_cache = if Bundler.settings[:cache_all_platforms]</div><div class='add'>+        @definition.resolve.materialized_for_all_platforms</div><div class='add'>+      else</div><div class='add'>+        begin</div><div class='add'>+          specs</div><div class='add'>+        rescue GemNotFound</div><div class='add'>+          if local</div><div class='add'>+            Bundler.ui.warn "Some gems seem to be missing from your #{Bundler.settings.app_cache_path} directory."</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          raise</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       specs_to_cache.each do |spec|</div><div class='ctx'>         next if spec.name == "bundler"</div><div class='ctx'>         next if spec.source.is_a?(Source::Gemspec)</div><div class='del'>-        spec.source.send(:fetch_gem, spec) if Bundler.settings[:cache_all_platforms] &amp;&amp; spec.source.respond_to?(:fetch_gem, true)</div><div class='ctx'>         spec.source.cache(spec, custom_path) if spec.source.respond_to?(:cache)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -163,7 +152,7 @@ module Bundler</div><div class='ctx'>       gem_dirs             = Dir["#{Gem.dir}/gems/*"]</div><div class='ctx'>       gem_files            = Dir["#{Gem.dir}/cache/*.gem"]</div><div class='ctx'>       gemspec_files        = Dir["#{Gem.dir}/specifications/*.gemspec"]</div><div class='del'>-      extension_dirs       = Dir["#{Gem.dir}/extensions/*/*/*"]</div><div class='add'>+      extension_dirs       = Dir["#{Gem.dir}/extensions/*/*/*"] + Dir["#{Gem.dir}/bundler/gems/extensions/*/*/*"]</div><div class='ctx'>       spec_gem_paths       = []</div><div class='ctx'>       # need to keep git sources around</div><div class='ctx'>       spec_git_paths       = @definition.spec_git_paths</div><div class='hunk'>@@ -172,7 +161,7 @@ module Bundler</div><div class='ctx'>       spec_cache_paths     = []</div><div class='ctx'>       spec_gemspec_paths   = []</div><div class='ctx'>       spec_extension_paths = []</div><div class='del'>-      specs.each do |spec|</div><div class='add'>+      Bundler.rubygems.add_default_gems_to(specs).values.each do |spec|</div><div class='ctx'>         spec_gem_paths &lt;&lt; spec.full_gem_path</div><div class='ctx'>         # need to check here in case gems are nested like for the rails git repo</div><div class='ctx'>         md = %r{(.+bundler/gems/.+-[a-f0-9]{7,12})}.match(spec.full_gem_path)</div><div class='hunk'>@@ -220,7 +209,7 @@ module Bundler</div><div class='ctx'>       output</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def prune_gem_cache(resolve, cache_path)</div><div class='ctx'>       cached = Dir["#{cache_path}/*.gem"]</div><div class='hunk'>@@ -275,7 +264,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       return if manuals.empty?</div><div class='ctx'>       Bundler::SharedHelpers.set_env "MANPATH", manuals.concat(</div><div class='del'>-        ENV["MANPATH"].to_s.split(File::PATH_SEPARATOR)</div><div class='add'>+        ENV["MANPATH"] ? ENV["MANPATH"].to_s.split(File::PATH_SEPARATOR) : [""]</div><div class='ctx'>       ).uniq.join(File::PATH_SEPARATOR)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -301,7 +290,7 @@ module Bundler</div><div class='ctx'>       return unless activated_spec = Bundler.rubygems.loaded_specs(spec.name)</div><div class='ctx'>       return if activated_spec.version == spec.version</div><div class='ctx'> </div><div class='del'>-      suggestion = if Bundler.rubygems.spec_default_gem?(activated_spec)</div><div class='add'>+      suggestion = if activated_spec.default_gem?</div><div class='ctx'>         "Since #{spec.name} is a default gem, you can either remove your dependency on it" \</div><div class='ctx'>         " or try updating to a newer version of bundler that supports #{spec.name} as a default gem."</div><div class='ctx'>       else</div><div class='hunk'>@@ -311,11 +300,7 @@ module Bundler</div><div class='ctx'>       e = Gem::LoadError.new "You have already activated #{activated_spec.name} #{activated_spec.version}, " \</div><div class='ctx'>                              "but your Gemfile requires #{spec.name} #{spec.version}. #{suggestion}"</div><div class='ctx'>       e.name = spec.name</div><div class='del'>-      if e.respond_to?(:requirement=)</div><div class='del'>-        e.requirement = Gem::Requirement.new(spec.version.to_s)</div><div class='del'>-      else</div><div class='del'>-        e.version_requirement = Gem::Requirement.new(spec.version.to_s)</div><div class='del'>-      end</div><div class='add'>+      e.requirement = Gem::Requirement.new(spec.version.to_s)</div><div class='ctx'>       raise e</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='head'>diff --git a/lib/bundler/safe_marshal.rb b/lib/bundler/safe_marshal.rb<br/>new file mode 100644<br/>index 0000000000..50aa0f60a6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/safe_marshal.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/safe_marshal.rb</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  module SafeMarshal</div><div class='add'>+    ALLOWED_CLASSES = [</div><div class='add'>+      Array,</div><div class='add'>+      FalseClass,</div><div class='add'>+      Gem::Specification,</div><div class='add'>+      Gem::Version,</div><div class='add'>+      Hash,</div><div class='add'>+      String,</div><div class='add'>+      Symbol,</div><div class='add'>+      Time,</div><div class='add'>+      TrueClass,</div><div class='add'>+    ].freeze</div><div class='add'>+</div><div class='add'>+    ERROR = "Unexpected class %s present in marshaled data. Only %s are allowed."</div><div class='add'>+</div><div class='add'>+    PROC = proc do |object|</div><div class='add'>+      object.tap do</div><div class='add'>+        unless ALLOWED_CLASSES.include?(object.class)</div><div class='add'>+          raise TypeError, format(ERROR, object.class, ALLOWED_CLASSES.join(", "))</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.proc</div><div class='add'>+      PROC</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/self_manager.rb b/lib/bundler/self_manager.rb<br/>new file mode 100644<br/>index 0000000000..827f3f9222<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/self_manager.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/self_manager.rb</a></div><div class='hunk'>@@ -0,0 +1,168 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  #</div><div class='add'>+  # This class handles installing and switching to the version of bundler needed</div><div class='add'>+  # by an application.</div><div class='add'>+  #</div><div class='add'>+  class SelfManager</div><div class='add'>+    def restart_with_locked_bundler_if_needed</div><div class='add'>+      return unless needs_switching? &amp;&amp; installed?</div><div class='add'>+</div><div class='add'>+      restart_with(lockfile_version)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def install_locked_bundler_and_restart_with_it_if_needed</div><div class='add'>+      return unless needs_switching?</div><div class='add'>+</div><div class='add'>+      Bundler.ui.info \</div><div class='add'>+        "Bundler #{current_version} is running, but your lockfile was generated with #{lockfile_version}. " \</div><div class='add'>+        "Installing Bundler #{lockfile_version} and restarting using that version."</div><div class='add'>+</div><div class='add'>+      install_and_restart_with(lockfile_version)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def update_bundler_and_restart_with_it_if_needed(target)</div><div class='add'>+      return unless autoswitching_applies?</div><div class='add'>+</div><div class='add'>+      spec = resolve_update_version_from(target)</div><div class='add'>+      return unless spec</div><div class='add'>+</div><div class='add'>+      version = spec.version</div><div class='add'>+</div><div class='add'>+      Bundler.ui.info "Updating bundler to #{version}."</div><div class='add'>+</div><div class='add'>+      install(spec)</div><div class='add'>+</div><div class='add'>+      restart_with(version)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def install_and_restart_with(version)</div><div class='add'>+      requirement = Gem::Requirement.new(version)</div><div class='add'>+      spec = find_latest_matching_spec(requirement)</div><div class='add'>+</div><div class='add'>+      if spec.nil?</div><div class='add'>+        Bundler.ui.warn "Your lockfile is locked to a version of bundler (#{lockfile_version}) that doesn't exist at https://rubygems.org/. Going on using #{current_version}"</div><div class='add'>+        return</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      install(spec)</div><div class='add'>+    rescue StandardError =&gt; e</div><div class='add'>+      Bundler.ui.trace e</div><div class='add'>+      Bundler.ui.warn "There was an error installing the locked bundler version (#{lockfile_version}), rerun with the `--verbose` flag for more details. Going on using bundler #{current_version}."</div><div class='add'>+    else</div><div class='add'>+      restart_with(version)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def install(spec)</div><div class='add'>+      spec.source.install(spec)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def restart_with(version)</div><div class='add'>+      configured_gem_home = ENV["GEM_HOME"]</div><div class='add'>+      configured_gem_path = ENV["GEM_PATH"]</div><div class='add'>+</div><div class='add'>+      cmd = [$PROGRAM_NAME, *ARGV]</div><div class='add'>+      cmd.unshift(Gem.ruby) unless File.executable?($PROGRAM_NAME)</div><div class='add'>+</div><div class='add'>+      Bundler.with_original_env do</div><div class='add'>+        Kernel.exec(</div><div class='add'>+          { "GEM_HOME" =&gt; configured_gem_home, "GEM_PATH" =&gt; configured_gem_path, "BUNDLER_VERSION" =&gt; version.to_s },</div><div class='add'>+          *cmd</div><div class='add'>+        )</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def needs_switching?</div><div class='add'>+      autoswitching_applies? &amp;&amp;</div><div class='add'>+        released?(lockfile_version) &amp;&amp;</div><div class='add'>+        !running?(lockfile_version) &amp;&amp;</div><div class='add'>+        !updating?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def autoswitching_applies?</div><div class='add'>+      ENV["BUNDLER_VERSION"].nil? &amp;&amp;</div><div class='add'>+        Bundler.rubygems.supports_bundler_trampolining? &amp;&amp;</div><div class='add'>+        SharedHelpers.in_bundle? &amp;&amp;</div><div class='add'>+        lockfile_version</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def resolve_update_version_from(target)</div><div class='add'>+      requirement = Gem::Requirement.new(target)</div><div class='add'>+      update_candidate = find_latest_matching_spec(requirement)</div><div class='add'>+</div><div class='add'>+      if update_candidate.nil?</div><div class='add'>+        raise InvalidOption, "The `bundle update --bundler` target version (#{target}) does not exist"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      resolved_version = update_candidate.version</div><div class='add'>+      needs_update = requirement.specific? ? !running?(resolved_version) : running_older_than?(resolved_version)</div><div class='add'>+</div><div class='add'>+      return unless needs_update</div><div class='add'>+</div><div class='add'>+      update_candidate</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def local_specs</div><div class='add'>+      @local_specs ||= Bundler::Source::Rubygems.new("allow_local" =&gt; true).specs.select {|spec| spec.name == "bundler" }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def remote_specs</div><div class='add'>+      @remote_specs ||= begin</div><div class='add'>+        source = Bundler::Source::Rubygems.new("remotes" =&gt; "https://rubygems.org")</div><div class='add'>+        source.remote!</div><div class='add'>+        source.add_dependency_names("bundler")</div><div class='add'>+        source.specs</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def find_latest_matching_spec(requirement)</div><div class='add'>+      local_result = find_latest_matching_spec_from_collection(local_specs, requirement)</div><div class='add'>+      return local_result if local_result &amp;&amp; requirement.specific?</div><div class='add'>+</div><div class='add'>+      remote_result = find_latest_matching_spec_from_collection(remote_specs, requirement)</div><div class='add'>+      return remote_result if local_result.nil?</div><div class='add'>+</div><div class='add'>+      [local_result, remote_result].max</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def find_latest_matching_spec_from_collection(specs, requirement)</div><div class='add'>+      specs.sort.reverse_each.find {|spec| requirement.satisfied_by?(spec.version) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def running?(version)</div><div class='add'>+      version == current_version</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def running_older_than?(version)</div><div class='add'>+      current_version &lt; version</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def released?(version)</div><div class='add'>+      !version.to_s.end_with?(".dev")</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def updating?</div><div class='add'>+      "update".start_with?(ARGV.first || " ") &amp;&amp; ARGV[1..-1].any? {|a| a.start_with?("--bundler") }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def installed?</div><div class='add'>+      Bundler.configure</div><div class='add'>+</div><div class='add'>+      Bundler.rubygems.find_bundler(lockfile_version.to_s)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def current_version</div><div class='add'>+      @current_version ||= Gem::Version.new(Bundler::VERSION)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def lockfile_version</div><div class='add'>+      return @lockfile_version if defined?(@lockfile_version)</div><div class='add'>+</div><div class='add'>+      parsed_version = Bundler::LockfileParser.bundled_with</div><div class='add'>+      @lockfile_version = parsed_version ? Gem::Version.new(parsed_version) : nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/settings.rb b/lib/bundler/settings.rb<br/>index fe68d510ff..0af2236a45 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/settings.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/settings.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/settings.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/settings.rb</a></div><div class='hunk'>@@ -1,64 +1,49 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "uri"</div><div class='del'>-</div><div class='ctx'> module Bundler</div><div class='ctx'>   class Settings</div><div class='del'>-    autoload :Mirror,  "bundler/mirror"</div><div class='del'>-    autoload :Mirrors, "bundler/mirror"</div><div class='del'>-    autoload :Validator, "bundler/settings/validator"</div><div class='add'>+    autoload :Mirror,  File.expand_path("mirror", __dir__)</div><div class='add'>+    autoload :Mirrors, File.expand_path("mirror", __dir__)</div><div class='add'>+    autoload :Validator, File.expand_path("settings/validator", __dir__)</div><div class='ctx'> </div><div class='ctx'>     BOOL_KEYS = %w[</div><div class='del'>-      allow_bundler_dependency_conflicts</div><div class='ctx'>       allow_deployment_source_credential_changes</div><div class='ctx'>       allow_offline_install</div><div class='ctx'>       auto_clean_without_path</div><div class='ctx'>       auto_install</div><div class='del'>-      auto_config_jobs</div><div class='ctx'>       cache_all</div><div class='ctx'>       cache_all_platforms</div><div class='del'>-      cache_command_is_package</div><div class='del'>-      console_command</div><div class='add'>+      clean</div><div class='ctx'>       default_install_uses_path</div><div class='ctx'>       deployment</div><div class='del'>-      deployment_means_frozen</div><div class='ctx'>       disable_checksum_validation</div><div class='ctx'>       disable_exec_load</div><div class='ctx'>       disable_local_branch_check</div><div class='del'>-      disable_multisource</div><div class='del'>-      disable_platform_warnings</div><div class='add'>+      disable_local_revision_check</div><div class='ctx'>       disable_shared_gems</div><div class='ctx'>       disable_version_check</div><div class='del'>-      error_on_stderr</div><div class='ctx'>       force_ruby_platform</div><div class='ctx'>       forget_cli_options</div><div class='ctx'>       frozen</div><div class='add'>+      gem.changelog</div><div class='ctx'>       gem.coc</div><div class='ctx'>       gem.mit</div><div class='del'>-      global_path_appends_ruby_scope</div><div class='add'>+      git.allow_insecure</div><div class='ctx'>       global_gem_cache</div><div class='ctx'>       ignore_messages</div><div class='ctx'>       init_gems_rb</div><div class='del'>-      list_command</div><div class='del'>-      lockfile_uses_separate_rubygems_sources</div><div class='del'>-      major_deprecations</div><div class='add'>+      inline</div><div class='ctx'>       no_install</div><div class='ctx'>       no_prune</div><div class='del'>-      only_update_to_newer_versions</div><div class='ctx'>       path_relative_to_cwd</div><div class='ctx'>       path.system</div><div class='ctx'>       plugins</div><div class='del'>-      prefer_gems_rb</div><div class='add'>+      prefer_patch</div><div class='ctx'>       print_only_version_number</div><div class='ctx'>       setup_makes_kernel_gem_public</div><div class='add'>+      silence_deprecations</div><div class='ctx'>       silence_root_warning</div><div class='del'>-      skip_default_git_sources</div><div class='del'>-      specific_platform</div><div class='del'>-      suppress_install_using_messages</div><div class='del'>-      unlock_source_unlocks_spec</div><div class='ctx'>       update_requires_all_flag</div><div class='del'>-      use_gem_version_promoter_for_major_updates</div><div class='del'>-      viz_command</div><div class='ctx'>     ].freeze</div><div class='ctx'> </div><div class='ctx'>     NUMBER_KEYS = %w[</div><div class='hunk'>@@ -70,33 +55,47 @@ module Bundler</div><div class='ctx'>     ].freeze</div><div class='ctx'> </div><div class='ctx'>     ARRAY_KEYS = %w[</div><div class='add'>+      only</div><div class='ctx'>       with</div><div class='ctx'>       without</div><div class='ctx'>     ].freeze</div><div class='ctx'> </div><div class='add'>+    STRING_KEYS = %w[</div><div class='add'>+      bin</div><div class='add'>+      cache_path</div><div class='add'>+      console</div><div class='add'>+      gem.ci</div><div class='add'>+      gem.github_username</div><div class='add'>+      gem.linter</div><div class='add'>+      gem.rubocop</div><div class='add'>+      gem.test</div><div class='add'>+      gemfile</div><div class='add'>+      path</div><div class='add'>+      shebang</div><div class='add'>+      system_bindir</div><div class='add'>+      trust-policy</div><div class='add'>+    ].freeze</div><div class='add'>+</div><div class='ctx'>     DEFAULT_CONFIG = {</div><div class='del'>-      :disable_version_check =&gt; true,</div><div class='del'>-      :redirect =&gt; 5,</div><div class='del'>-      :retry =&gt; 3,</div><div class='del'>-      :timeout =&gt; 10,</div><div class='add'>+      "BUNDLE_SILENCE_DEPRECATIONS" =&gt; false,</div><div class='add'>+      "BUNDLE_DISABLE_VERSION_CHECK" =&gt; true,</div><div class='add'>+      "BUNDLE_PREFER_PATCH" =&gt; false,</div><div class='add'>+      "BUNDLE_REDIRECT" =&gt; 5,</div><div class='add'>+      "BUNDLE_RETRY" =&gt; 3,</div><div class='add'>+      "BUNDLE_TIMEOUT" =&gt; 10,</div><div class='ctx'>     }.freeze</div><div class='ctx'> </div><div class='ctx'>     def initialize(root = nil)</div><div class='ctx'>       @root            = root</div><div class='ctx'>       @local_config    = load_config(local_config_file)</div><div class='add'>+      @env_config      = ENV.to_h.select {|key, _value| key =~ /\ABUNDLE_.+/ }</div><div class='ctx'>       @global_config   = load_config(global_config_file)</div><div class='ctx'>       @temporary       = {}</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def [](name)</div><div class='ctx'>       key = key_for(name)</div><div class='del'>-      value = @temporary.fetch(key) do</div><div class='del'>-              @local_config.fetch(key) do</div><div class='del'>-              ENV.fetch(key) do</div><div class='del'>-              @global_config.fetch(key) do</div><div class='del'>-              DEFAULT_CONFIG.fetch(name) do</div><div class='del'>-                nil</div><div class='del'>-              end end end end end</div><div class='add'>+      value = configs.values.map {|config| config[key] }.compact.first</div><div class='ctx'> </div><div class='ctx'>       converted_value(value, name)</div><div class='ctx'>     end</div><div class='hunk'>@@ -106,18 +105,6 @@ module Bundler</div><div class='ctx'>         temporary(key =&gt; value)</div><div class='ctx'>         value</div><div class='ctx'>       else</div><div class='del'>-        command = if value.nil?</div><div class='del'>-          "bundle config --delete #{key}"</div><div class='del'>-        else</div><div class='del'>-          "bundle config #{key} #{Array(value).join(":")}"</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        Bundler::SharedHelpers.major_deprecation 2,\</div><div class='del'>-          "flags passed to commands " \</div><div class='del'>-          "will no longer be automatically remembered. Instead please set flags " \</div><div class='del'>-          "you want remembered between commands using `bundle config " \</div><div class='del'>-          "&lt;setting name&gt; &lt;setting value&gt;`, i.e. `#{command}`"</div><div class='del'>-</div><div class='ctx'>         set_local(key, value)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -151,13 +138,11 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def all</div><div class='del'>-      env_keys = ENV.keys.grep(/\ABUNDLE_.+/)</div><div class='del'>-</div><div class='del'>-      keys = @temporary.keys | @global_config.keys | @local_config.keys | env_keys</div><div class='add'>+      keys = @temporary.keys | @global_config.keys | @local_config.keys | @env_config.keys</div><div class='ctx'> </div><div class='ctx'>       keys.map do |key|</div><div class='del'>-        key.sub(/^BUNDLE_/, "").gsub(/__/, ".").downcase</div><div class='del'>-      end</div><div class='add'>+        key.sub(/^BUNDLE_/, "").gsub(/___/, "-").gsub(/__/, ".").downcase</div><div class='add'>+      end.sort</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def local_overrides</div><div class='hunk'>@@ -169,7 +154,11 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def mirror_for(uri)</div><div class='del'>-      uri = URI(uri.to_s) unless uri.is_a?(URI)</div><div class='add'>+      if uri.is_a?(String)</div><div class='add'>+        require_relative "vendored_uri"</div><div class='add'>+        uri = Bundler::URI(uri)</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       gem_mirrors.for(uri.to_s).uri</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -186,13 +175,11 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def locations(key)</div><div class='ctx'>       key = key_for(key)</div><div class='del'>-      locations = {}</div><div class='del'>-      locations[:temporary] = @temporary[key] if @temporary.key?(key)</div><div class='del'>-      locations[:local]  = @local_config[key] if @local_config.key?(key)</div><div class='del'>-      locations[:env]    = ENV[key] if ENV[key]</div><div class='del'>-      locations[:global] = @global_config[key] if @global_config.key?(key)</div><div class='del'>-      locations[:default] = DEFAULT_CONFIG[key] if DEFAULT_CONFIG.key?(key)</div><div class='del'>-      locations</div><div class='add'>+      configs.keys.inject({}) do |partial_locations, level|</div><div class='add'>+        value_on_level = configs[level][key]</div><div class='add'>+        partial_locations[level] = value_on_level unless value_on_level.nil?</div><div class='add'>+        partial_locations</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def pretty_values_for(exposed_key)</div><div class='hunk'>@@ -200,50 +187,60 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       locations = []</div><div class='ctx'> </div><div class='del'>-      if @temporary.key?(key)</div><div class='del'>-        locations &lt;&lt; "Set for the current command: #{converted_value(@temporary[key], exposed_key).inspect}"</div><div class='add'>+      if value = @temporary[key]</div><div class='add'>+        locations &lt;&lt; "Set for the current command: #{printable_value(value, exposed_key).inspect}"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      if @local_config.key?(key)</div><div class='del'>-        locations &lt;&lt; "Set for your local app (#{local_config_file}): #{converted_value(@local_config[key], exposed_key).inspect}"</div><div class='add'>+      if value = @local_config[key]</div><div class='add'>+        locations &lt;&lt; "Set for your local app (#{local_config_file}): #{printable_value(value, exposed_key).inspect}"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      if value = ENV[key]</div><div class='del'>-        locations &lt;&lt; "Set via #{key}: #{converted_value(value, exposed_key).inspect}"</div><div class='add'>+      if value = @env_config[key]</div><div class='add'>+        locations &lt;&lt; "Set via #{key}: #{printable_value(value, exposed_key).inspect}"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      if @global_config.key?(key)</div><div class='del'>-        locations &lt;&lt; "Set for the current user (#{global_config_file}): #{converted_value(@global_config[key], exposed_key).inspect}"</div><div class='add'>+      if value = @global_config[key]</div><div class='add'>+        locations &lt;&lt; "Set for the current user (#{global_config_file}): #{printable_value(value, exposed_key).inspect}"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       return ["You have not configured a value for `#{exposed_key}`"] if locations.empty?</div><div class='ctx'>       locations</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # for legacy reasons, in Bundler 1, the ruby scope isnt appended when the setting comes from ENV or the global config,</div><div class='del'>-    # nor do we respect :disable_shared_gems</div><div class='add'>+    def processor_count</div><div class='add'>+      require "etc"</div><div class='add'>+      Etc.nprocessors</div><div class='add'>+    rescue StandardError</div><div class='add'>+      1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # for legacy reasons, in Bundler 2, we do not respect :disable_shared_gems</div><div class='ctx'>     def path</div><div class='del'>-      key  = key_for(:path)</div><div class='del'>-      path = ENV[key] || @global_config[key]</div><div class='del'>-      if path &amp;&amp; !@temporary.key?(key) &amp;&amp; !@local_config.key?(key)</div><div class='del'>-        return Path.new(path, Bundler.feature_flag.global_path_appends_ruby_scope?, false, false)</div><div class='add'>+      configs.each do |_level, settings|</div><div class='add'>+        path = value_for("path", settings)</div><div class='add'>+        path_system = value_for("path.system", settings)</div><div class='add'>+        disabled_shared_gems = value_for("disable_shared_gems", settings)</div><div class='add'>+        next if path.nil? &amp;&amp; path_system.nil? &amp;&amp; disabled_shared_gems.nil?</div><div class='add'>+        system_path = path_system || (disabled_shared_gems == false)</div><div class='add'>+        return Path.new(path, system_path)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      system_path = self["path.system"] || (self[:disable_shared_gems] == false)</div><div class='del'>-      Path.new(self[:path], true, system_path, Bundler.feature_flag.default_install_uses_path?)</div><div class='add'>+      path = "vendor/bundle" if self[:deployment]</div><div class='add'>+</div><div class='add'>+      Path.new(path, false)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    Path = Struct.new(:explicit_path, :append_ruby_scope, :system_path, :default_install_uses_path) do</div><div class='add'>+    Path = Struct.new(:explicit_path, :system_path) do</div><div class='ctx'>       def path</div><div class='ctx'>         path = base_path</div><div class='del'>-        path = File.join(path, Bundler.ruby_scope) if append_ruby_scope &amp;&amp; !use_system_gems?</div><div class='add'>+        path = File.join(path, Bundler.ruby_scope) unless use_system_gems?</div><div class='ctx'>         path</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def use_system_gems?</div><div class='ctx'>         return true if system_path</div><div class='ctx'>         return false if explicit_path</div><div class='del'>-        !default_install_uses_path</div><div class='add'>+        !Bundler.feature_flag.default_install_uses_path?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def base_path</div><div class='hunk'>@@ -280,12 +277,6 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def allow_sudo?</div><div class='del'>-      key = key_for(:path)</div><div class='del'>-      path_configured = @temporary.key?(key) || @local_config.key?(key)</div><div class='del'>-      !path_configured</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def ignore_config?</div><div class='ctx'>       ENV["BUNDLE_IGNORE_CONFIG"]</div><div class='ctx'>     end</div><div class='hunk'>@@ -296,20 +287,32 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def validate!</div><div class='ctx'>       all.each do |raw_key|</div><div class='del'>-        [@local_config, ENV, @global_config].each do |settings|</div><div class='del'>-          value = converted_value(settings[key_for(raw_key)], raw_key)</div><div class='del'>-          Validator.validate!(raw_key, value, settings.to_hash.dup)</div><div class='add'>+        [@local_config, @env_config, @global_config].each do |settings|</div><div class='add'>+          value = value_for(raw_key, settings)</div><div class='add'>+          Validator.validate!(raw_key, value, settings.dup)</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def key_for(key)</div><div class='del'>-      key = Settings.normalize_uri(key).to_s if key.is_a?(String) &amp;&amp; /https?:/ =~ key</div><div class='del'>-      key = key.to_s.gsub(".", "__").upcase</div><div class='del'>-      "BUNDLE_#{key}"</div><div class='add'>+      self.class.key_for(key)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def configs</div><div class='add'>+      {</div><div class='add'>+        :temporary =&gt; @temporary,</div><div class='add'>+        :local =&gt; @local_config,</div><div class='add'>+        :env =&gt; @env_config,</div><div class='add'>+        :global =&gt; @global_config,</div><div class='add'>+        :default =&gt; DEFAULT_CONFIG,</div><div class='add'>+      }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    def value_for(name, config)</div><div class='add'>+      converted_value(config[key_for(name)], name)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     def parent_setting_for(name)</div><div class='ctx'>       split_specific_setting_for(name)[0]</div><div class='hunk'>@@ -327,6 +330,10 @@ module Bundler</div><div class='ctx'>       BOOL_KEYS.include?(name.to_s) || BOOL_KEYS.include?(parent_setting_for(name.to_s))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def is_string(name)</div><div class='add'>+      STRING_KEYS.include?(name.to_s) || name.to_s.start_with?("local.") || name.to_s.start_with?("mirror.") || name.to_s.start_with?("build.")</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def to_bool(value)</div><div class='ctx'>       case value</div><div class='ctx'>       when nil, /\A(false|f|no|n|0|)\z/i, false</div><div class='hunk'>@@ -344,9 +351,17 @@ module Bundler</div><div class='ctx'>       ARRAY_KEYS.include?(key.to_s)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def is_credential(key)</div><div class='add'>+      key == "gem.push_key"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def is_userinfo(value)</div><div class='add'>+      value.include?(":")</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def to_array(value)</div><div class='ctx'>       return [] unless value</div><div class='del'>-      value.split(":").map(&amp;:to_sym)</div><div class='add'>+      value.tr(" ", ":").split(":").map(&amp;:to_sym)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def array_to_s(array)</div><div class='hunk'>@@ -371,7 +386,7 @@ module Bundler</div><div class='ctx'>       return unless file</div><div class='ctx'>       SharedHelpers.filesystem_access(file) do |p|</div><div class='ctx'>         FileUtils.mkdir_p(p.dirname)</div><div class='del'>-        require "bundler/yaml_serializer"</div><div class='add'>+        require_relative "yaml_serializer"</div><div class='ctx'>         p.open("w") {|f| f.write(YAMLSerializer.dump(hash)) }</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -390,15 +405,38 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def printable_value(value, key)</div><div class='add'>+      converted = converted_value(value, key)</div><div class='add'>+      return converted unless converted.is_a?(String)</div><div class='add'>+</div><div class='add'>+      if is_string(key)</div><div class='add'>+        converted</div><div class='add'>+      elsif is_credential(key)</div><div class='add'>+        "[REDACTED]"</div><div class='add'>+      elsif is_userinfo(converted)</div><div class='add'>+        username, pass = converted.split(":", 2)</div><div class='add'>+</div><div class='add'>+        if pass == "x-oauth-basic"</div><div class='add'>+          username = "[REDACTED]"</div><div class='add'>+        else</div><div class='add'>+          pass = "[REDACTED]"</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        [username, pass].join(":")</div><div class='add'>+      else</div><div class='add'>+        converted</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def global_config_file</div><div class='ctx'>       if ENV["BUNDLE_CONFIG"] &amp;&amp; !ENV["BUNDLE_CONFIG"].empty?</div><div class='ctx'>         Pathname.new(ENV["BUNDLE_CONFIG"])</div><div class='del'>-      else</div><div class='del'>-        begin</div><div class='del'>-          Bundler.user_bundle_path("config")</div><div class='del'>-        rescue PermissionError, GenericSystemCallError</div><div class='del'>-          nil</div><div class='del'>-        end</div><div class='add'>+      elsif ENV["BUNDLE_USER_CONFIG"] &amp;&amp; !ENV["BUNDLE_USER_CONFIG"].empty?</div><div class='add'>+        Pathname.new(ENV["BUNDLE_USER_CONFIG"])</div><div class='add'>+      elsif ENV["BUNDLE_USER_HOME"] &amp;&amp; !ENV["BUNDLE_USER_HOME"].empty?</div><div class='add'>+        Pathname.new(ENV["BUNDLE_USER_HOME"]).join("config")</div><div class='add'>+      elsif Bundler.rubygems.user_home &amp;&amp; !Bundler.rubygems.user_home.empty?</div><div class='add'>+        Pathname.new(Bundler.rubygems.user_home).join(".bundle/config")</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -406,27 +444,26 @@ module Bundler</div><div class='ctx'>       Pathname.new(@root).join("config") if @root</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    CONFIG_REGEX = %r{ # rubocop:disable Style/RegexpLiteral</div><div class='del'>-      ^</div><div class='del'>-      (BUNDLE_.+):\s # the key</div><div class='del'>-      (?: !\s)? # optional exclamation mark found with ruby 1.9.3</div><div class='del'>-      (['"]?) # optional opening quote</div><div class='del'>-      (.* # contents of the value</div><div class='del'>-        (?: # optionally, up until the next key</div><div class='del'>-          (\n(?!BUNDLE).+)*</div><div class='del'>-        )</div><div class='del'>-      )</div><div class='del'>-      \2 # matching closing quote</div><div class='del'>-      $</div><div class='del'>-    }xo</div><div class='del'>-</div><div class='ctx'>     def load_config(config_file)</div><div class='ctx'>       return {} if !config_file || ignore_config?</div><div class='ctx'>       SharedHelpers.filesystem_access(config_file, :read) do |file|</div><div class='ctx'>         valid_file = file.exist? &amp;&amp; !file.size.zero?</div><div class='ctx'>         return {} unless valid_file</div><div class='del'>-        require "bundler/yaml_serializer"</div><div class='del'>-        YAMLSerializer.load file.read</div><div class='add'>+        require_relative "yaml_serializer"</div><div class='add'>+        YAMLSerializer.load(file.read).inject({}) do |config, (k, v)|</div><div class='add'>+          new_k = k</div><div class='add'>+</div><div class='add'>+          if k.include?("-")</div><div class='add'>+            Bundler.ui.warn "Your #{file} config includes `#{k}`, which contains the dash character (`-`).\n" \</div><div class='add'>+              "This is deprecated, because configuration through `ENV` should be possible, but `ENV` keys cannot include dashes.\n" \</div><div class='add'>+              "Please edit #{file} and replace any dashes in configuration keys with a triple underscore (`___`)."</div><div class='add'>+</div><div class='add'>+            new_k = k.gsub("-", "___")</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          config[new_k] = v</div><div class='add'>+          config</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -441,7 +478,13 @@ module Bundler</div><div class='ctx'>         (https?.*?) # URI</div><div class='ctx'>         (\.#{Regexp.union(PER_URI_OPTIONS)})? # optional suffix key</div><div class='ctx'>         \z</div><div class='del'>-      /ix</div><div class='add'>+      /ix.freeze</div><div class='add'>+</div><div class='add'>+    def self.key_for(key)</div><div class='add'>+      key = normalize_uri(key).to_s if key.is_a?(String) &amp;&amp; key.start_with?("http", "mirror.http")</div><div class='add'>+      key = key.to_s.gsub(".", "__").gsub("-", "___").upcase</div><div class='add'>+      "BUNDLE_#{key}"</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     # TODO: duplicates Rubygems#normalize_uri</div><div class='ctx'>     # TODO: is this the correct place to validate mirror URIs?</div><div class='hunk'>@@ -452,8 +495,9 @@ module Bundler</div><div class='ctx'>         uri = $2</div><div class='ctx'>         suffix = $3</div><div class='ctx'>       end</div><div class='del'>-      uri = "#{uri}/" unless uri.end_with?("/")</div><div class='del'>-      uri = URI(uri)</div><div class='add'>+      uri = URINormalizer.normalize_suffix(uri)</div><div class='add'>+      require_relative "vendored_uri"</div><div class='add'>+      uri = Bundler::URI(uri)</div><div class='ctx'>       unless uri.absolute?</div><div class='ctx'>         raise ArgumentError, format("Gem sources must be absolute. You provided '%s'.", uri)</div><div class='ctx'>       end</div><div class='head'>diff --git a/lib/bundler/setup.rb b/lib/bundler/setup.rb<br/>index ac6a5bf861..801fd5312a 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/setup.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/setup.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/setup.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/setup.rb</a></div><div class='hunk'>@@ -1,28 +1,30 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/shared_helpers"</div><div class='add'>+require_relative "shared_helpers"</div><div class='ctx'> </div><div class='ctx'> if Bundler::SharedHelpers.in_bundle?</div><div class='del'>-  require "bundler"</div><div class='add'>+  require_relative "../bundler"</div><div class='ctx'> </div><div class='ctx'>   if STDOUT.tty? || ENV["BUNDLER_FORCE_TTY"]</div><div class='ctx'>     begin</div><div class='del'>-      Bundler.setup</div><div class='add'>+      Bundler.ui.silence { Bundler.setup }</div><div class='ctx'>     rescue Bundler::BundlerError =&gt; e</div><div class='del'>-      puts "\e[31m#{e.message}\e[0m"</div><div class='del'>-      puts e.backtrace.join("\n") if ENV["DEBUG"]</div><div class='add'>+      Bundler.ui.error e.message</div><div class='add'>+      Bundler.ui.warn e.backtrace.join("\n") if ENV["DEBUG"]</div><div class='ctx'>       if e.is_a?(Bundler::GemNotFound)</div><div class='del'>-        puts "\e[33mRun `bundle install` to install missing gems.\e[0m"</div><div class='add'>+        suggested_cmd = "bundle install"</div><div class='add'>+        original_gemfile = Bundler.original_env["BUNDLE_GEMFILE"]</div><div class='add'>+        suggested_cmd += " --gemfile #{original_gemfile}" if original_gemfile</div><div class='add'>+        Bundler.ui.warn "Run `#{suggested_cmd}` to install missing gems."</div><div class='ctx'>       end</div><div class='ctx'>       exit e.status_code</div><div class='ctx'>     end</div><div class='ctx'>   else</div><div class='del'>-    Bundler.setup</div><div class='add'>+    Bundler.ui.silence { Bundler.setup }</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Add bundler to the load path after disabling system gems</div><div class='del'>-  bundler_lib = File.expand_path("../..", __FILE__)</div><div class='del'>-  $LOAD_PATH.unshift(bundler_lib) unless $LOAD_PATH.include?(bundler_lib)</div><div class='del'>-</div><div class='del'>-  Bundler.ui = nil</div><div class='add'>+  # We might be in the middle of shelling out to rubygems</div><div class='add'>+  # (RUBYOPT=-rbundler/setup), so we need to give rubygems the opportunity of</div><div class='add'>+  # not being silent.</div><div class='add'>+  Gem::DefaultUserInteraction.ui = nil</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/shared_helpers.rb b/lib/bundler/shared_helpers.rb<br/>index 3e2fe24b7a..d1d4e1d07a 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/shared_helpers.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/shared_helpers.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/shared_helpers.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/shared_helpers.rb</a></div><div class='hunk'>@@ -1,38 +1,25 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/compatibility_guard"</div><div class='del'>-</div><div class='ctx'> require "pathname"</div><div class='del'>-require "rubygems"</div><div class='del'>-</div><div class='del'>-require "bundler/version"</div><div class='del'>-require "bundler/constants"</div><div class='del'>-require "bundler/rubygems_integration"</div><div class='del'>-require "bundler/current_ruby"</div><div class='del'>-</div><div class='del'>-module Gem</div><div class='del'>-  class Dependency</div><div class='del'>-    # This is only needed for RubyGems &lt; 1.4</div><div class='del'>-    unless method_defined? :requirement</div><div class='del'>-      def requirement</div><div class='del'>-        version_requirements</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='add'>+require "rbconfig"</div><div class='add'>+</div><div class='add'>+require_relative "version"</div><div class='add'>+require_relative "constants"</div><div class='add'>+require_relative "rubygems_integration"</div><div class='add'>+require_relative "current_ruby"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   module SharedHelpers</div><div class='ctx'>     def root</div><div class='ctx'>       gemfile = find_gemfile</div><div class='ctx'>       raise GemfileNotFound, "Could not locate Gemfile" unless gemfile</div><div class='del'>-      Pathname.new(gemfile).untaint.expand_path.parent</div><div class='add'>+      Pathname.new(gemfile).tap {|x| x.untaint if RUBY_VERSION &lt; "2.7" }.expand_path.parent</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def default_gemfile</div><div class='del'>-      gemfile = find_gemfile(:order_matters)</div><div class='add'>+      gemfile = find_gemfile</div><div class='ctx'>       raise GemfileNotFound, "Could not locate Gemfile" unless gemfile</div><div class='del'>-      Pathname.new(gemfile).untaint.expand_path</div><div class='add'>+      Pathname.new(gemfile).tap {|x| x.untaint if RUBY_VERSION &lt; "2.7" }.expand_path</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def default_lockfile</div><div class='hunk'>@@ -41,7 +28,7 @@ module Bundler</div><div class='ctx'>       case gemfile.basename.to_s</div><div class='ctx'>       when "gems.rb" then Pathname.new(gemfile.sub(/.rb$/, ".locked"))</div><div class='ctx'>       else Pathname.new("#{gemfile}.lock")</div><div class='del'>-      end.untaint</div><div class='add'>+      end.tap {|x| x.untaint if RUBY_VERSION &lt; "2.7" }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def default_bundle_dir</div><div class='hunk'>@@ -113,9 +100,7 @@ module Bundler</div><div class='ctx'>     #</div><div class='ctx'>     # @see {Bundler::PermissionError}</div><div class='ctx'>     def filesystem_access(path, action = :write, &amp;block)</div><div class='del'>-      # Use block.call instead of yield because of a bug in Ruby 2.2.2</div><div class='del'>-      # See https://github.com/bundler/bundler/issues/5341 for details</div><div class='del'>-      block.call(path.dup.untaint)</div><div class='add'>+      yield(path.dup.tap {|x| x.untaint if RUBY_VERSION &lt; "2.7" })</div><div class='ctx'>     rescue Errno::EACCES</div><div class='ctx'>       raise PermissionError.new(path, action)</div><div class='ctx'>     rescue Errno::EAGAIN</div><div class='hunk'>@@ -124,7 +109,7 @@ module Bundler</div><div class='ctx'>       raise VirtualProtocolError.new</div><div class='ctx'>     rescue Errno::ENOSPC</div><div class='ctx'>       raise NoSpaceOnDeviceError.new(path, action)</div><div class='del'>-    rescue *[const_get_safely(:ENOTSUP, Errno)].compact</div><div class='add'>+    rescue Errno::ENOTSUP</div><div class='ctx'>       raise OperationNotSupportedError.new(path, action)</div><div class='ctx'>     rescue Errno::EEXIST, Errno::ENOENT</div><div class='ctx'>       raise</div><div class='hunk'>@@ -132,48 +117,32 @@ module Bundler</div><div class='ctx'>       raise GenericSystemCallError.new(e, "There was an error accessing `#{path}`.")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def const_get_safely(constant_name, namespace)</div><div class='del'>-      const_in_namespace = namespace.constants.include?(constant_name.to_s) ||</div><div class='del'>-        namespace.constants.include?(constant_name.to_sym)</div><div class='del'>-      return nil unless const_in_namespace</div><div class='del'>-      namespace.const_get(constant_name)</div><div class='del'>-    end</div><div class='add'>+    def major_deprecation(major_version, message, print_caller_location: false)</div><div class='add'>+      if print_caller_location</div><div class='add'>+        caller_location = caller_locations(2, 2).first</div><div class='add'>+        message = "#{message} (called at #{caller_location.path}:#{caller_location.lineno})"</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-    def major_deprecation(major_version, message)</div><div class='del'>-      if Bundler.bundler_major_version &gt;= major_version</div><div class='del'>-        require "bundler/errors"</div><div class='del'>-        raise DeprecatedError, "[REMOVED FROM #{major_version}.0] #{message}"</div><div class='add'>+      bundler_major_version = Bundler.bundler_major_version</div><div class='add'>+      if bundler_major_version &gt; major_version</div><div class='add'>+        require_relative "errors"</div><div class='add'>+        raise DeprecatedError, "[REMOVED] #{message}"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      return unless prints_major_deprecations?</div><div class='del'>-      @major_deprecation_ui ||= Bundler::UI::Shell.new("no-color" =&gt; true)</div><div class='del'>-      ui = Bundler.ui.is_a?(@major_deprecation_ui.class) ? Bundler.ui : @major_deprecation_ui</div><div class='del'>-      ui.warn("[DEPRECATED FOR #{major_version}.0] #{message}")</div><div class='add'>+      return unless bundler_major_version &gt;= major_version &amp;&amp; prints_major_deprecations?</div><div class='add'>+      Bundler.ui.warn("[DEPRECATED] #{message}")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def print_major_deprecations!</div><div class='ctx'>       multiple_gemfiles = search_up(".") do |dir|</div><div class='ctx'>         gemfiles = gemfile_names.select {|gf| File.file? File.expand_path(gf, dir) }</div><div class='ctx'>         next if gemfiles.empty?</div><div class='del'>-        break false if gemfiles.size == 1</div><div class='del'>-      end</div><div class='del'>-      if multiple_gemfiles &amp;&amp; Bundler.bundler_major_version == 1</div><div class='del'>-        Bundler::SharedHelpers.major_deprecation 2, \</div><div class='del'>-          "gems.rb and gems.locked will be preferred to Gemfile and Gemfile.lock."</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      if RUBY_VERSION &lt; "2"</div><div class='del'>-        major_deprecation(2, "Bundler will only support ruby &gt;= 2.0, you are running #{RUBY_VERSION}")</div><div class='del'>-      end</div><div class='del'>-      return if Bundler.rubygems.provides?("&gt;= 2")</div><div class='del'>-      major_deprecation(2, "Bundler will only support rubygems &gt;= 2.0, you are running #{Bundler.rubygems.version}")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def trap(signal, override = false, &amp;block)</div><div class='del'>-      prior = Signal.trap(signal) do</div><div class='del'>-        block.call</div><div class='del'>-        prior.call unless override</div><div class='add'>+        break gemfiles.size != 1</div><div class='ctx'>       end</div><div class='add'>+      return unless multiple_gemfiles</div><div class='add'>+      message = "Multiple gemfiles (gems.rb and Gemfile) detected. " \</div><div class='add'>+                "Make sure you remove Gemfile and Gemfile.lock since bundler is ignoring them in favor of gems.rb and gems.locked."</div><div class='add'>+      Bundler.ui.warn message</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def ensure_same_dependencies(spec, old_deps, new_deps)</div><div class='hunk'>@@ -191,10 +160,10 @@ module Bundler</div><div class='ctx'>         " (was expecting #{old_deps.map(&amp;:to_s)}, but the real spec has #{new_deps.map(&amp;:to_s)})"</div><div class='ctx'>       raise APIResponseMismatchError,</div><div class='ctx'>         "Downloading #{spec.full_name} revealed dependencies not in the API or the lockfile (#{extra_deps.join(", ")})." \</div><div class='del'>-        "\nEither installing with `--full-index` or running `bundle update #{spec.name}` should fix the problem."</div><div class='add'>+        "\nRunning `bundle update #{spec.name}` should fix the problem."</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def pretty_dependency(dep, print_source = false)</div><div class='add'>+    def pretty_dependency(dep)</div><div class='ctx'>       msg = String.new(dep.name)</div><div class='ctx'>       msg &lt;&lt; " (#{dep.requirement})" unless dep.requirement == Gem::Requirement.default</div><div class='ctx'> </div><div class='hunk'>@@ -203,7 +172,6 @@ module Bundler</div><div class='ctx'>         msg &lt;&lt; " " &lt;&lt; platform_string if !platform_string.empty? &amp;&amp; platform_string != Gem::Platform::RUBY</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      msg &lt;&lt; " from the `#{dep.source}` source" if print_source &amp;&amp; dep.source</div><div class='ctx'>       msg</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -211,11 +179,11 @@ module Bundler</div><div class='ctx'>       return @md5_available if defined?(@md5_available)</div><div class='ctx'>       @md5_available = begin</div><div class='ctx'>         require "openssl"</div><div class='del'>-        OpenSSL::Digest::MD5.digest("")</div><div class='add'>+        ::OpenSSL::Digest.digest("MD5", "")</div><div class='ctx'>         true</div><div class='ctx'>       rescue LoadError</div><div class='ctx'>         true</div><div class='del'>-      rescue OpenSSL::Digest::DigestError</div><div class='add'>+      rescue ::OpenSSL::Digest::DigestError</div><div class='ctx'>         false</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -229,7 +197,7 @@ module Bundler</div><div class='ctx'>       filesystem_access(gemfile_path) {|g| File.open(g, "w") {|file| file.puts contents } }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def validate_bundle_path</div><div class='ctx'>       path_separator = Bundler.rubygems.path_separator</div><div class='hunk'>@@ -243,16 +211,14 @@ module Bundler</div><div class='ctx'>       raise Bundler::PathError, message</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def find_gemfile(order_matters = false)</div><div class='add'>+    def find_gemfile</div><div class='ctx'>       given = ENV["BUNDLE_GEMFILE"]</div><div class='ctx'>       return given if given &amp;&amp; !given.empty?</div><div class='del'>-      names = gemfile_names</div><div class='del'>-      names.reverse! if order_matters &amp;&amp; Bundler.feature_flag.prefer_gems_rb?</div><div class='del'>-      find_file(*names)</div><div class='add'>+      find_file(*gemfile_names)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def gemfile_names</div><div class='del'>-      ["Gemfile", "gems.rb"]</div><div class='add'>+      ["gems.rb", "Gemfile"]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def find_file(*names)</div><div class='hunk'>@@ -269,14 +235,14 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def search_up(*names)</div><div class='ctx'>       previous = nil</div><div class='del'>-      current  = File.expand_path(SharedHelpers.pwd).untaint</div><div class='add'>+      current  = File.expand_path(SharedHelpers.pwd).tap {|x| x.untaint if RUBY_VERSION &lt; "2.7" }</div><div class='ctx'> </div><div class='ctx'>       until !File.directory?(current) || current == previous</div><div class='del'>-        if ENV["BUNDLE_SPEC_RUN"]</div><div class='add'>+        if ENV["BUNDLER_SPEC_RUN"]</div><div class='ctx'>           # avoid stepping above the tmp directory when testing</div><div class='del'>-          gemspec = if ENV["BUNDLE_RUBY"] &amp;&amp; ENV["BUNDLE_GEM"]</div><div class='add'>+          gemspec = if ENV["GEM_COMMAND"]</div><div class='ctx'>             # for Ruby Core</div><div class='del'>-            "lib/bundler.gemspec"</div><div class='add'>+            "lib/bundler/bundler.gemspec"</div><div class='ctx'>           else</div><div class='ctx'>             "bundler.gemspec"</div><div class='ctx'>           end</div><div class='hunk'>@@ -306,22 +272,19 @@ module Bundler</div><div class='ctx'>     public :set_env</div><div class='ctx'> </div><div class='ctx'>     def set_bundle_variables</div><div class='del'>-      begin</div><div class='del'>-        exe_file = Bundler.rubygems.bin_path("bundler", "bundle", VERSION)</div><div class='del'>-        unless File.exist?(exe_file)</div><div class='del'>-          exe_file = File.expand_path("../../../exe/bundle", __FILE__)</div><div class='del'>-        end</div><div class='del'>-        Bundler::SharedHelpers.set_env "BUNDLE_BIN_PATH", exe_file</div><div class='del'>-      rescue Gem::GemNotFoundException</div><div class='del'>-        exe_file = File.expand_path("../../../exe/bundle", __FILE__)</div><div class='del'>-        # for Ruby core repository</div><div class='del'>-        exe_file = File.expand_path("../../../../bin/bundle", __FILE__) unless File.exist?(exe_file)</div><div class='del'>-        Bundler::SharedHelpers.set_env "BUNDLE_BIN_PATH", exe_file</div><div class='del'>-      end</div><div class='add'>+      # bundler exe &amp; lib folders have same root folder, typical gem installation</div><div class='add'>+      exe_file = File.expand_path("../../exe/bundle", __dir__)</div><div class='add'>+</div><div class='add'>+      # for Ruby core repository testing</div><div class='add'>+      exe_file = File.expand_path("../../libexec/bundle", __dir__) unless File.exist?(exe_file)</div><div class='add'>+</div><div class='add'>+      # bundler is a default gem, exe path is separate</div><div class='add'>+      exe_file = Bundler.rubygems.bin_path("bundler", "bundle", VERSION) unless File.exist?(exe_file)</div><div class='ctx'> </div><div class='del'>-      # Set BUNDLE_GEMFILE</div><div class='del'>-      Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", find_gemfile(:order_matters).to_s</div><div class='add'>+      Bundler::SharedHelpers.set_env "BUNDLE_BIN_PATH", exe_file</div><div class='add'>+      Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", find_gemfile.to_s</div><div class='ctx'>       Bundler::SharedHelpers.set_env "BUNDLER_VERSION", Bundler::VERSION</div><div class='add'>+      Bundler::SharedHelpers.set_env "BUNDLER_SETUP", File.expand_path("setup", __dir__) unless RUBY_VERSION &lt; "2.7"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def set_path</div><div class='hunk'>@@ -333,31 +296,28 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def set_rubyopt</div><div class='ctx'>       rubyopt = [ENV["RUBYOPT"]].compact</div><div class='del'>-      return if !rubyopt.empty? &amp;&amp; rubyopt.first =~ %r{-rbundler/setup}</div><div class='del'>-      rubyopt.unshift %(-rbundler/setup)</div><div class='add'>+      setup_require = "-r#{File.expand_path("setup", __dir__)}"</div><div class='add'>+      return if !rubyopt.empty? &amp;&amp; rubyopt.first =~ /#{setup_require}/</div><div class='add'>+      rubyopt.unshift setup_require</div><div class='ctx'>       Bundler::SharedHelpers.set_env "RUBYOPT", rubyopt.join(" ")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def set_rubylib</div><div class='ctx'>       rubylib = (ENV["RUBYLIB"] || "").split(File::PATH_SEPARATOR)</div><div class='del'>-      rubylib.unshift bundler_ruby_lib</div><div class='add'>+      rubylib.unshift bundler_ruby_lib unless RbConfig::CONFIG["rubylibdir"] == bundler_ruby_lib</div><div class='ctx'>       Bundler::SharedHelpers.set_env "RUBYLIB", rubylib.uniq.join(File::PATH_SEPARATOR)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def bundler_ruby_lib</div><div class='del'>-      resolve_path File.expand_path("../..", __FILE__)</div><div class='add'>+      File.expand_path("..", __dir__)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def clean_load_path</div><div class='del'>-      # handle 1.9 where system gems are always on the load path</div><div class='del'>-      return unless defined?(::Gem)</div><div class='del'>-</div><div class='del'>-      bundler_lib = bundler_ruby_lib</div><div class='del'>-</div><div class='ctx'>       loaded_gem_paths = Bundler.rubygems.loaded_gem_paths</div><div class='ctx'> </div><div class='ctx'>       $LOAD_PATH.reject! do |p|</div><div class='del'>-        next if resolve_path(p).start_with?(bundler_lib)</div><div class='add'>+        resolved_path = resolve_path(p)</div><div class='add'>+        next if $LOADED_FEATURES.any? {|lf| lf.start_with?(resolved_path) }</div><div class='ctx'>         loaded_gem_paths.delete(p)</div><div class='ctx'>       end</div><div class='ctx'>       $LOAD_PATH.uniq!</div><div class='hunk'>@@ -365,16 +325,15 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def resolve_path(path)</div><div class='ctx'>       expanded = File.expand_path(path)</div><div class='del'>-      return expanded unless File.respond_to?(:realpath) &amp;&amp; File.exist?(expanded)</div><div class='add'>+      return expanded unless File.exist?(expanded)</div><div class='ctx'> </div><div class='ctx'>       File.realpath(expanded)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def prints_major_deprecations?</div><div class='del'>-      require "bundler"</div><div class='del'>-      deprecation_release = Bundler::VERSION.split(".").drop(1).include?("99")</div><div class='del'>-      return false if !deprecation_release &amp;&amp; !Bundler.settings[:major_deprecations]</div><div class='del'>-      require "bundler/deprecate"</div><div class='add'>+      require_relative "../bundler"</div><div class='add'>+      return false if Bundler.settings[:silence_deprecations]</div><div class='add'>+      require_relative "deprecate"</div><div class='ctx'>       return false if Bundler::Deprecate.skip</div><div class='ctx'>       true</div><div class='ctx'>     end</div><div class='head'>diff --git a/lib/bundler/similarity_detector.rb b/lib/bundler/similarity_detector.rb<br/>index b7f3ee7afa..50e66b9cab 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/similarity_detector.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/similarity_detector.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/similarity_detector.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/similarity_detector.rb</a></div><div class='hunk'>@@ -26,9 +26,9 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  protected</div><div class='add'>+    protected</div><div class='ctx'> </div><div class='del'>-    # http://www.informit.com/articles/article.aspx?p=683059&amp;seqNum=36</div><div class='add'>+    # https://www.informit.com/articles/article.aspx?p=683059&amp;seqNum=36</div><div class='ctx'>     def levenshtein_distance(this, that, ins = 2, del = 2, sub = 1)</div><div class='ctx'>       # ins, del, sub are weighted costs</div><div class='ctx'>       return nil if this.nil?</div><div class='hunk'>@@ -51,7 +51,7 @@ module Bundler</div><div class='ctx'>           dm[i][j] = [</div><div class='ctx'>             dm[i - 1][j - 1] + (this[j - 1] == that[i - 1] ? 0 : sub),</div><div class='ctx'>             dm[i][j - 1] + ins,</div><div class='del'>-            dm[i - 1][j] + del</div><div class='add'>+            dm[i - 1][j] + del,</div><div class='ctx'>           ].min</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='head'>diff --git a/lib/bundler/source.rb b/lib/bundler/source.rb<br/>index 26a3625bb1..f7f5ea7865 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/source.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/source.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/source.rb</a></div><div class='hunk'>@@ -2,11 +2,12 @@</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class Source</div><div class='del'>-    autoload :Gemspec,  "bundler/source/gemspec"</div><div class='del'>-    autoload :Git,      "bundler/source/git"</div><div class='del'>-    autoload :Metadata, "bundler/source/metadata"</div><div class='del'>-    autoload :Path,     "bundler/source/path"</div><div class='del'>-    autoload :Rubygems, "bundler/source/rubygems"</div><div class='add'>+    autoload :Gemspec,  File.expand_path("source/gemspec", __dir__)</div><div class='add'>+    autoload :Git,      File.expand_path("source/git", __dir__)</div><div class='add'>+    autoload :Metadata, File.expand_path("source/metadata", __dir__)</div><div class='add'>+    autoload :Path,     File.expand_path("source/path", __dir__)</div><div class='add'>+    autoload :Rubygems, File.expand_path("source/rubygems", __dir__)</div><div class='add'>+    autoload :RubygemsAggregate, File.expand_path("source/rubygems_aggregate", __dir__)</div><div class='ctx'> </div><div class='ctx'>     attr_accessor :dependency_names</div><div class='ctx'> </div><div class='hunk'>@@ -14,13 +15,12 @@ module Bundler</div><div class='ctx'>       specs.unmet_dependency_names</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def version_message(spec)</div><div class='add'>+    def version_message(spec, locked_spec = nil)</div><div class='ctx'>       message = "#{spec.name} #{spec.version}"</div><div class='ctx'>       message += " (#{spec.platform})" if spec.platform != Gem::Platform::RUBY &amp;&amp; !spec.platform.nil?</div><div class='ctx'> </div><div class='del'>-      if Bundler.locked_gems</div><div class='del'>-        locked_spec = Bundler.locked_gems.specs.find {|s| s.name == spec.name }</div><div class='del'>-        locked_spec_version = locked_spec.version if locked_spec</div><div class='add'>+      if locked_spec</div><div class='add'>+        locked_spec_version = locked_spec.version</div><div class='ctx'>         if locked_spec_version &amp;&amp; spec.version != locked_spec_version</div><div class='ctx'>           message += Bundler.ui.add_color(" (was #{locked_spec_version})", version_color(spec.version, locked_spec_version))</div><div class='ctx'>         end</div><div class='hunk'>@@ -33,6 +33,18 @@ module Bundler</div><div class='ctx'>       spec.source == self</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def local!; end</div><div class='add'>+</div><div class='add'>+    def local_only!; end</div><div class='add'>+</div><div class='add'>+    def cached!; end</div><div class='add'>+</div><div class='add'>+    def remote!; end</div><div class='add'>+</div><div class='add'>+    def add_dependency_names(names)</div><div class='add'>+      @dependency_names = Array(dependency_names) | Array(names)</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # it's possible that gems from one source depend on gems from some</div><div class='ctx'>     # other source, so now we download gemspecs and iterate over those</div><div class='ctx'>     # dependencies, looking for gems we don't have info on yet.</div><div class='hunk'>@@ -42,6 +54,10 @@ module Bundler</div><div class='ctx'>       specs.dependency_names</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def spec_names</div><div class='add'>+      specs.spec_names</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def include?(other)</div><div class='ctx'>       other == self</div><div class='ctx'>     end</div><div class='hunk'>@@ -50,6 +66,10 @@ module Bundler</div><div class='ctx'>       "#&lt;#{self.class}:0x#{object_id} #{self}&gt;"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def identifier</div><div class='add'>+      to_s</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def path?</div><div class='ctx'>       instance_of?(Bundler::Source::Path)</div><div class='ctx'>     end</div><div class='hunk'>@@ -63,7 +83,7 @@ module Bundler</div><div class='ctx'>       )</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def version_color(spec_version, locked_spec_version)</div><div class='ctx'>       if Gem::Version.correct?(spec_version) &amp;&amp; Gem::Version.correct?(locked_spec_version)</div><div class='hunk'>@@ -80,7 +100,7 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def print_using_message(message)</div><div class='del'>-      if !message.include?("(was ") &amp;&amp; Bundler.feature_flag.suppress_install_using_messages?</div><div class='add'>+      if !message.include?("(was ")</div><div class='ctx'>         Bundler.ui.debug message</div><div class='ctx'>       else</div><div class='ctx'>         Bundler.ui.info message</div><div class='head'>diff --git a/lib/bundler/source/git.rb b/lib/bundler/source/git.rb<br/>index 0b00608bdd..adbce5fce4 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/source/git.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/git.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/source/git.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/source/git.rb</a></div><div class='hunk'>@@ -1,14 +1,13 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/vendored_fileutils"</div><div class='del'>-require "uri"</div><div class='add'>+require_relative "../vendored_fileutils"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class Source</div><div class='ctx'>     class Git &lt; Path</div><div class='del'>-      autoload :GitProxy, "bundler/source/git/git_proxy"</div><div class='add'>+      autoload :GitProxy, File.expand_path("git/git_proxy", __dir__)</div><div class='ctx'> </div><div class='del'>-      attr_reader :uri, :ref, :branch, :options, :submodules</div><div class='add'>+      attr_reader :uri, :ref, :branch, :options, :glob, :submodules</div><div class='ctx'> </div><div class='ctx'>       def initialize(options)</div><div class='ctx'>         @options = options</div><div class='hunk'>@@ -20,10 +19,10 @@ module Bundler</div><div class='ctx'>         # Stringify options that could be set as symbols</div><div class='ctx'>         %w[ref branch tag revision].each {|k| options[k] = options[k].to_s if options[k] }</div><div class='ctx'> </div><div class='del'>-        @uri        = options["uri"] || ""</div><div class='add'>+        @uri        = URINormalizer.normalize_suffix(options["uri"] || "", :trailing_slash =&gt; false)</div><div class='ctx'>         @safe_uri   = URICredentialsFilter.credential_filtered_uri(@uri)</div><div class='ctx'>         @branch     = options["branch"]</div><div class='del'>-        @ref        = options["ref"] || options["branch"] || options["tag"] || "master"</div><div class='add'>+        @ref        = options["ref"] || options["branch"] || options["tag"]</div><div class='ctx'>         @submodules = options["submodules"]</div><div class='ctx'>         @name       = options["name"]</div><div class='ctx'>         @version    = options["version"].to_s.strip.gsub("-", ".pre.")</div><div class='hunk'>@@ -43,42 +42,65 @@ module Bundler</div><div class='ctx'>         %w[ref branch tag submodules].each do |opt|</div><div class='ctx'>           out &lt;&lt; "  #{opt}: #{options[opt]}\n" if options[opt]</div><div class='ctx'>         end</div><div class='del'>-        out &lt;&lt; "  glob: #{@glob}\n" unless @glob == DEFAULT_GLOB</div><div class='add'>+        out &lt;&lt; "  glob: #{@glob}\n" unless default_glob?</div><div class='ctx'>         out &lt;&lt; "  specs:\n"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def to_gemfile</div><div class='add'>+        specifiers = %w[ref branch tag submodules glob].map do |opt|</div><div class='add'>+          "#{opt}: #{options[opt]}" if options[opt]</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        uri_with_specifiers(specifiers)</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def hash</div><div class='del'>-        [self.class, uri, ref, branch, name, version, submodules].hash</div><div class='add'>+        [self.class, uri, ref, branch, name, version, glob, submodules].hash</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def eql?(other)</div><div class='ctx'>         other.is_a?(Git) &amp;&amp; uri == other.uri &amp;&amp; ref == other.ref &amp;&amp;</div><div class='ctx'>           branch == other.branch &amp;&amp; name == other.name &amp;&amp;</div><div class='del'>-          version == other.version &amp;&amp; submodules == other.submodules</div><div class='add'>+          version == other.version &amp;&amp; glob == other.glob &amp;&amp;</div><div class='add'>+          submodules == other.submodules</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       alias_method :==, :eql?</div><div class='ctx'> </div><div class='add'>+      def include?(other)</div><div class='add'>+        other.is_a?(Git) &amp;&amp; uri == other.uri &amp;&amp;</div><div class='add'>+          name == other.name &amp;&amp;</div><div class='add'>+          glob == other.glob &amp;&amp;</div><div class='add'>+          submodules == other.submodules</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def to_s</div><div class='del'>-        at = if local?</div><div class='del'>-          path</div><div class='del'>-        elsif user_ref = options["ref"]</div><div class='del'>-          if ref =~ /\A[a-z0-9]{4,}\z/i</div><div class='del'>-            shortref_for_display(user_ref)</div><div class='del'>-          else</div><div class='del'>-            user_ref</div><div class='del'>-          end</div><div class='del'>-        else</div><div class='del'>-          ref</div><div class='add'>+        begin</div><div class='add'>+          at = humanized_ref || current_branch</div><div class='add'>+</div><div class='add'>+          rev = "at #{at}@#{shortref_for_display(revision)}"</div><div class='add'>+        rescue GitError</div><div class='add'>+          ""</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        rev = begin</div><div class='del'>-                "@#{shortref_for_display(revision)}"</div><div class='del'>-              rescue GitError</div><div class='del'>-                nil</div><div class='del'>-              end</div><div class='add'>+        uri_with_specifiers([rev, glob_for_display])</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def identifier</div><div class='add'>+        uri_with_specifiers([humanized_ref, cached_revision, glob_for_display])</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def uri_with_specifiers(specifiers)</div><div class='add'>+        specifiers.compact!</div><div class='add'>+</div><div class='add'>+        suffix =</div><div class='add'>+          if specifiers.any?</div><div class='add'>+            " (#{specifiers.join(", ")})"</div><div class='add'>+          else</div><div class='add'>+            ""</div><div class='add'>+          end</div><div class='ctx'> </div><div class='del'>-        "#{@safe_uri} (at #{at}#{rev})"</div><div class='add'>+        "#{@safe_uri}#{suffix}"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def name</div><div class='hunk'>@@ -92,13 +114,7 @@ module Bundler</div><div class='ctx'>         @install_path ||= begin</div><div class='ctx'>           git_scope = "#{base_name}-#{shortref_for_path(revision)}"</div><div class='ctx'> </div><div class='del'>-          path = Bundler.install_path.join(git_scope)</div><div class='del'>-</div><div class='del'>-          if !path.exist? &amp;&amp; Bundler.requires_sudo?</div><div class='del'>-            Bundler.user_bundle_path.join(Bundler.ruby_scope).join(git_scope)</div><div class='del'>-          else</div><div class='del'>-            path</div><div class='del'>-          end</div><div class='add'>+          Bundler.install_path.join(git_scope)</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -118,34 +134,35 @@ module Bundler</div><div class='ctx'>       def local_override!(path)</div><div class='ctx'>         return false if local?</div><div class='ctx'> </div><div class='add'>+        original_path = path</div><div class='ctx'>         path = Pathname.new(path)</div><div class='ctx'>         path = path.expand_path(Bundler.root) unless path.relative?</div><div class='ctx'> </div><div class='del'>-        unless options["branch"] || Bundler.settings[:disable_local_branch_check]</div><div class='add'>+        unless branch || Bundler.settings[:disable_local_branch_check]</div><div class='ctx'>           raise GitError, "Cannot use local override for #{name} at #{path} because " \</div><div class='del'>-            ":branch is not specified in Gemfile. Specify a branch or use " \</div><div class='del'>-            "`bundle config --delete` to remove the local override"</div><div class='add'>+            ":branch is not specified in Gemfile. Specify a branch or run " \</div><div class='add'>+            "`bundle config unset local.#{override_for(original_path)}` to remove the local override"</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         unless path.exist?</div><div class='ctx'>           raise GitError, "Cannot use local override for #{name} because #{path} " \</div><div class='del'>-            "does not exist. Check `bundle config --delete` to remove the local override"</div><div class='add'>+            "does not exist. Run `bundle config unset local.#{override_for(original_path)}` to remove the local override"</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         set_local!(path)</div><div class='ctx'> </div><div class='ctx'>         # Create a new git proxy without the cached revision</div><div class='ctx'>         # so the Gemfile.lock always picks up the new revision.</div><div class='del'>-        @git_proxy = GitProxy.new(path, uri, ref)</div><div class='add'>+        @git_proxy = GitProxy.new(path, uri, options)</div><div class='ctx'> </div><div class='del'>-        if git_proxy.branch != options["branch"] &amp;&amp; !Bundler.settings[:disable_local_branch_check]</div><div class='add'>+        if current_branch != branch &amp;&amp; !Bundler.settings[:disable_local_branch_check]</div><div class='ctx'>           raise GitError, "Local override for #{name} at #{path} is using branch " \</div><div class='del'>-            "#{git_proxy.branch} but Gemfile specifies #{options["branch"]}"</div><div class='add'>+            "#{current_branch} but Gemfile specifies #{branch}"</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        changed = cached_revision &amp;&amp; cached_revision != git_proxy.revision</div><div class='add'>+        changed = cached_revision &amp;&amp; cached_revision != revision</div><div class='ctx'> </div><div class='del'>-        if changed &amp;&amp; !@unlocked &amp;&amp; !git_proxy.contains?(cached_revision)</div><div class='add'>+        if !Bundler.settings[:disable_local_revision_check] &amp;&amp; changed &amp;&amp; !@unlocked &amp;&amp; !git_proxy.contains?(cached_revision)</div><div class='ctx'>           raise GitError, "The Gemfile lock is pointing to revision #{shortref_for_display(cached_revision)} " \</div><div class='ctx'>             "but the current branch in your local override for #{name} does not contain such commit. " \</div><div class='ctx'>             "Please make sure your branch is up to date."</div><div class='hunk'>@@ -168,9 +185,10 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def install(spec, options = {})</div><div class='add'>+        return if Bundler.settings[:no_install]</div><div class='ctx'>         force = options[:force]</div><div class='ctx'> </div><div class='del'>-        print_using_message "Using #{version_message(spec)} from #{self}"</div><div class='add'>+        print_using_message "Using #{version_message(spec, options[:previous_spec])} from #{self}"</div><div class='ctx'> </div><div class='ctx'>         if (requires_checkout? &amp;&amp; !@copied) || force</div><div class='ctx'>           Bundler.ui.debug "  * Checking out revision: #{ref}"</div><div class='hunk'>@@ -208,13 +226,11 @@ module Bundler</div><div class='ctx'>       # across different projects, this cache will be shared.</div><div class='ctx'>       # When using local git repos, this is set to the local repo.</div><div class='ctx'>       def cache_path</div><div class='del'>-        @cache_path ||= begin</div><div class='del'>-          if Bundler.requires_sudo? || Bundler.feature_flag.global_gem_cache?</div><div class='del'>-            Bundler.user_cache</div><div class='del'>-          else</div><div class='del'>-            Bundler.bundle_path.join("cache", "bundler")</div><div class='del'>-          end.join("git", git_scope)</div><div class='del'>-        end</div><div class='add'>+        @cache_path ||= if Bundler.feature_flag.global_gem_cache?</div><div class='add'>+          Bundler.user_cache</div><div class='add'>+        else</div><div class='add'>+          Bundler.bundle_path.join("cache", "bundler")</div><div class='add'>+        end.join("git", git_scope)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def app_cache_dirname</div><div class='hunk'>@@ -225,11 +241,33 @@ module Bundler</div><div class='ctx'>         git_proxy.revision</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def current_branch</div><div class='add'>+        git_proxy.current_branch</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def allow_git_ops?</div><div class='ctx'>         @allow_remote || @allow_cached</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      def local?</div><div class='add'>+        @local</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def humanized_ref</div><div class='add'>+        if local?</div><div class='add'>+          path</div><div class='add'>+        elsif user_ref = options["ref"]</div><div class='add'>+          if /\A[a-z0-9]{4,}\z/i.match?(ref)</div><div class='add'>+            shortref_for_display(user_ref)</div><div class='add'>+          else</div><div class='add'>+            user_ref</div><div class='add'>+          end</div><div class='add'>+        elsif ref</div><div class='add'>+          ref</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'> </div><div class='ctx'>       def serialize_gemspecs_in(destination)</div><div class='ctx'>         destination = destination.expand_path(Bundler.root) if destination.relative?</div><div class='hunk'>@@ -255,12 +293,12 @@ module Bundler</div><div class='ctx'>         cached_revision &amp;&amp; super</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def local?</div><div class='del'>-        @local</div><div class='add'>+      def requires_checkout?</div><div class='add'>+        allow_git_ops? &amp;&amp; !local? &amp;&amp; !cached_revision_checked_out?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def requires_checkout?</div><div class='del'>-        allow_git_ops? &amp;&amp; !local?</div><div class='add'>+      def cached_revision_checked_out?</div><div class='add'>+        cached_revision &amp;&amp; cached_revision == revision &amp;&amp; install_path.exist?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def base_name</div><div class='hunk'>@@ -275,16 +313,26 @@ module Bundler</div><div class='ctx'>         ref[0..11]</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def glob_for_display</div><div class='add'>+        default_glob? ? nil : "glob: #{@glob}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def default_glob?</div><div class='add'>+        @glob == DEFAULT_GLOB</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def uri_hash</div><div class='del'>-        if uri =~ %r{^\w+://(\w+@)?}</div><div class='add'>+        if %r{^\w+://(\w+@)?}.match?(uri)</div><div class='ctx'>           # Downcase the domain component of the URI</div><div class='ctx'>           # and strip off a trailing slash, if one is present</div><div class='del'>-          input = URI.parse(uri).normalize.to_s.sub(%r{/$}, "")</div><div class='add'>+          input = Bundler::URI.parse(uri).normalize.to_s.sub(%r{/$}, "")</div><div class='ctx'>         else</div><div class='ctx'>           # If there is no URI scheme, assume it is an ssh/git URI</div><div class='ctx'>           input = uri</div><div class='ctx'>         end</div><div class='del'>-        SharedHelpers.digest(:SHA1).hexdigest(input)</div><div class='add'>+        # We use SHA1 here for historical reason and to preserve backward compatibility.</div><div class='add'>+        # But a transition to a simpler mangling algorithm would be welcome.</div><div class='add'>+        Bundler::Digest.sha1(input)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def cached_revision</div><div class='hunk'>@@ -296,7 +344,7 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def git_proxy</div><div class='del'>-        @git_proxy ||= GitProxy.new(cache_path, uri, ref, cached_revision, self)</div><div class='add'>+        @git_proxy ||= GitProxy.new(cache_path, uri, options, cached_revision, self)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def fetch</div><div class='hunk'>@@ -309,12 +357,10 @@ module Bundler</div><div class='ctx'>       # no-op, since we validate when re-serializing the gemspec</div><div class='ctx'>       def validate_spec(_spec); end</div><div class='ctx'> </div><div class='del'>-      if Bundler.rubygems.stubs_provide_full_functionality?</div><div class='del'>-        def load_gemspec(file)</div><div class='del'>-          stub = Gem::StubSpecification.gemspec_stub(file, install_path.parent, install_path.parent)</div><div class='del'>-          stub.full_gem_path = Pathname.new(file).dirname.expand_path(root).to_s.untaint</div><div class='del'>-          StubSpecification.from_stub(stub)</div><div class='del'>-        end</div><div class='add'>+      def load_gemspec(file)</div><div class='add'>+        stub = Gem::StubSpecification.gemspec_stub(file, install_path.parent, install_path.parent)</div><div class='add'>+        stub.full_gem_path = Pathname.new(file).dirname.expand_path(root).to_s.tap {|x| x.untaint if RUBY_VERSION &lt; "2.7" }</div><div class='add'>+        StubSpecification.from_stub(stub)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def git_scope</div><div class='hunk'>@@ -324,6 +370,10 @@ module Bundler</div><div class='ctx'>       def extension_cache_slug(_)</div><div class='ctx'>         extension_dir_name</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      def override_for(path)</div><div class='add'>+        Bundler.settings.local_overrides.key(path)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/source/git/git_proxy.rb b/lib/bundler/source/git/git_proxy.rb<br/>index cd964f7e56..fdb738e52e 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/source/git/git_proxy.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/git/git_proxy.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/source/git/git_proxy.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/source/git/git_proxy.rb</a></div><div class='hunk'>@@ -1,7 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "shellwords"</div><div class='del'>-require "tempfile"</div><div class='ctx'> module Bundler</div><div class='ctx'>   class Source</div><div class='ctx'>     class Git</div><div class='hunk'>@@ -17,27 +15,31 @@ module Bundler</div><div class='ctx'>       class GitNotAllowedError &lt; GitError</div><div class='ctx'>         def initialize(command)</div><div class='ctx'>           msg = String.new</div><div class='del'>-          msg &lt;&lt; "Bundler is trying to run a `git #{command}` at runtime. You probably need to run `bundle install`. However, "</div><div class='del'>-          msg &lt;&lt; "this error message could probably be more useful. Please submit a ticket at http://github.com/bundler/bundler/issues "</div><div class='add'>+          msg &lt;&lt; "Bundler is trying to run `#{command}` at runtime. You probably need to run `bundle install`. However, "</div><div class='add'>+          msg &lt;&lt; "this error message could probably be more useful. Please submit a ticket at https://github.com/rubygems/rubygems/issues/new?labels=Bundler&amp;template=bundler-related-issue.md "</div><div class='ctx'>           msg &lt;&lt; "with steps to reproduce as well as the following\n\nCALLER: #{caller.join("\n")}"</div><div class='ctx'>           super msg</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       class GitCommandError &lt; GitError</div><div class='del'>-        def initialize(command, path = nil, extra_info = nil)</div><div class='del'>-          msg = String.new</div><div class='del'>-          msg &lt;&lt; "Git error: command `git #{command}` in directory #{SharedHelpers.pwd} has failed."</div><div class='add'>+        attr_reader :command</div><div class='add'>+</div><div class='add'>+        def initialize(command, path, extra_info = nil)</div><div class='add'>+          @command = command</div><div class='add'>+</div><div class='add'>+          msg = String.new("Git error: command `#{command}`")</div><div class='add'>+          msg &lt;&lt; " in directory #{path}" if path</div><div class='add'>+          msg &lt;&lt; " has failed."</div><div class='ctx'>           msg &lt;&lt; "\n#{extra_info}" if extra_info</div><div class='del'>-          msg &lt;&lt; "\nIf this error persists you could try removing the cache directory '#{path}'" if path &amp;&amp; path.exist?</div><div class='ctx'>           super msg</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      class MissingGitRevisionError &lt; GitError</div><div class='del'>-        def initialize(ref, repo)</div><div class='add'>+      class MissingGitRevisionError &lt; GitCommandError</div><div class='add'>+        def initialize(command, destination_path, ref, repo)</div><div class='ctx'>           msg = "Revision #{ref} does not exist in the repository #{repo}. Maybe you misspelled it?"</div><div class='del'>-          super msg</div><div class='add'>+          super command, destination_path, msg</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -45,72 +47,59 @@ module Bundler</div><div class='ctx'>       # All actions required by the Git source is encapsulated in this</div><div class='ctx'>       # object.</div><div class='ctx'>       class GitProxy</div><div class='del'>-        attr_accessor :path, :uri, :ref</div><div class='add'>+        attr_accessor :path, :uri, :branch, :tag, :ref, :explicit_ref</div><div class='ctx'>         attr_writer :revision</div><div class='ctx'> </div><div class='del'>-        def initialize(path, uri, ref, revision = nil, git = nil)</div><div class='add'>+        def initialize(path, uri, options = {}, revision = nil, git = nil)</div><div class='ctx'>           @path     = path</div><div class='ctx'>           @uri      = uri</div><div class='del'>-          @ref      = ref</div><div class='add'>+          @branch   = options["branch"]</div><div class='add'>+          @tag      = options["tag"]</div><div class='add'>+          @ref      = options["ref"]</div><div class='add'>+          @explicit_ref = branch || tag || ref</div><div class='ctx'>           @revision = revision</div><div class='ctx'>           @git      = git</div><div class='del'>-          raise GitNotInstalledError.new if allow? &amp;&amp; !Bundler.git_present?</div><div class='add'>+          @commit_ref = nil</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         def revision</div><div class='del'>-          return @revision if @revision</div><div class='del'>-</div><div class='del'>-          begin</div><div class='del'>-            @revision ||= find_local_revision</div><div class='del'>-          rescue GitCommandError</div><div class='del'>-            raise MissingGitRevisionError.new(ref, URICredentialsFilter.credential_filtered_uri(uri))</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          @revision</div><div class='add'>+          @revision ||= allowed_with_path { find_local_revision }</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        def branch</div><div class='del'>-          @branch ||= allowed_in_path do</div><div class='del'>-            git("rev-parse --abbrev-ref HEAD").strip</div><div class='add'>+        def current_branch</div><div class='add'>+          @current_branch ||= with_path do</div><div class='add'>+            git_local("rev-parse", "--abbrev-ref", "HEAD", :dir =&gt; path).strip</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         def contains?(commit)</div><div class='del'>-          allowed_in_path do</div><div class='del'>-            result = git_null("branch --contains #{commit}")</div><div class='del'>-            $? == 0 &amp;&amp; result =~ /^\* (.*)$/</div><div class='add'>+          allowed_with_path do</div><div class='add'>+            result, status = git_null("branch", "--contains", commit, :dir =&gt; path)</div><div class='add'>+            status.success? &amp;&amp; result =~ /^\* (.*)$/</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         def version</div><div class='del'>-          git("--version").match(/(git version\s*)?((\.?\d+)+).*/)[2]</div><div class='add'>+          @version ||= full_version.match(/((\.?\d+)+).*/)[1]</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         def full_version</div><div class='del'>-          git("--version").sub("git version", "").strip</div><div class='add'>+          @full_version ||= git_local("--version").sub(/git version\s*/, "").strip</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         def checkout</div><div class='del'>-          return if path.exist? &amp;&amp; has_revision_cached?</div><div class='del'>-          extra_ref = "#{Shellwords.shellescape(ref)}:#{Shellwords.shellescape(ref)}" if ref &amp;&amp; ref.start_with?("refs/")</div><div class='add'>+          return if has_revision_cached?</div><div class='ctx'> </div><div class='del'>-          Bundler.ui.info "Fetching #{URICredentialsFilter.credential_filtered_uri(uri)}"</div><div class='add'>+          Bundler.ui.info "Fetching #{credential_filtered_uri}"</div><div class='ctx'> </div><div class='del'>-          unless path.exist?</div><div class='del'>-            SharedHelpers.filesystem_access(path.dirname) do |p|</div><div class='del'>-              FileUtils.mkdir_p(p)</div><div class='del'>-            end</div><div class='del'>-            git_retry %(clone #{uri_escaped_with_configured_credentials} "#{path}" --bare --no-hardlinks --quiet)</div><div class='del'>-            return unless extra_ref</div><div class='del'>-          end</div><div class='add'>+          extra_fetch_needed = clone_needs_extra_fetch?</div><div class='add'>+          unshallow_needed = clone_needs_unshallow?</div><div class='add'>+          return unless extra_fetch_needed || unshallow_needed</div><div class='ctx'> </div><div class='del'>-          in_path do</div><div class='del'>-            git_retry %(fetch --force --quiet --tags #{uri_escaped_with_configured_credentials} "refs/heads/*:refs/heads/*" #{extra_ref})</div><div class='del'>-          end</div><div class='add'>+          git_remote_fetch(unshallow_needed ? ["--unshallow"] : depth_args)</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         def copy_to(destination, submodules = false)</div><div class='del'>-          # method 1</div><div class='ctx'>           unless File.exist?(destination.join(".git"))</div><div class='ctx'>             begin</div><div class='ctx'>               SharedHelpers.filesystem_access(destination.dirname) do |p|</div><div class='hunk'>@@ -119,142 +108,322 @@ module Bundler</div><div class='ctx'>               SharedHelpers.filesystem_access(destination) do |p|</div><div class='ctx'>                 FileUtils.rm_rf(p)</div><div class='ctx'>               end</div><div class='del'>-              git_retry %(clone --no-checkout --quiet "#{path}" "#{destination}")</div><div class='add'>+              git "clone", "--no-checkout", "--quiet", path.to_s, destination.to_s</div><div class='ctx'>               File.chmod(((File.stat(destination).mode | 0o777) &amp; ~File.umask), destination)</div><div class='ctx'>             rescue Errno::EEXIST =&gt; e</div><div class='del'>-              file_path = e.message[%r{.*?(/.*)}, 1]</div><div class='add'>+              file_path = e.message[%r{.*?((?:[a-zA-Z]:)?/.*)}, 1]</div><div class='ctx'>               raise GitError, "Bundler could not install a gem because it needs to " \</div><div class='ctx'>                 "create a directory, but a file exists - #{file_path}. Please delete " \</div><div class='ctx'>                 "this file and try again."</div><div class='ctx'>             end</div><div class='ctx'>           end</div><div class='del'>-          # method 2</div><div class='del'>-          SharedHelpers.chdir(destination) do</div><div class='del'>-            git_retry %(fetch --force --quiet --tags "#{path}")</div><div class='ctx'> </div><div class='del'>-            begin</div><div class='del'>-              git "reset --hard #{@revision}"</div><div class='del'>-            rescue GitCommandError</div><div class='del'>-              raise MissingGitRevisionError.new(@revision, URICredentialsFilter.credential_filtered_uri(uri))</div><div class='add'>+          git "fetch", "--force", "--quiet", *extra_fetch_args, :dir =&gt; destination if @commit_ref</div><div class='add'>+</div><div class='add'>+          git "reset", "--hard", @revision, :dir =&gt; destination</div><div class='add'>+</div><div class='add'>+          if submodules</div><div class='add'>+            git_retry "submodule", "update", "--init", "--recursive", :dir =&gt; destination</div><div class='add'>+          elsif Gem::Version.create(version) &gt;= Gem::Version.create("2.9.0")</div><div class='add'>+            inner_command = "git -C $toplevel submodule deinit --force $sm_path"</div><div class='add'>+            git_retry "submodule", "foreach", "--quiet", inner_command, :dir =&gt; destination</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        private</div><div class='add'>+</div><div class='add'>+        def git_remote_fetch(args)</div><div class='add'>+          command = ["fetch", "--force", "--quiet", "--no-tags", *args, "--", configured_uri, refspec].compact</div><div class='add'>+          command_with_no_credentials = check_allowed(command)</div><div class='add'>+</div><div class='add'>+          Bundler::Retry.new("`#{command_with_no_credentials}` at #{path}", [MissingGitRevisionError]).attempts do</div><div class='add'>+            out, err, status = capture(command, path)</div><div class='add'>+            return out if status.success?</div><div class='add'>+</div><div class='add'>+            if err.include?("couldn't find remote ref") || err.include?("not our ref")</div><div class='add'>+              raise MissingGitRevisionError.new(command_with_no_credentials, path, commit || explicit_ref, credential_filtered_uri)</div><div class='add'>+            else</div><div class='add'>+              raise GitCommandError.new(command_with_no_credentials, path, err)</div><div class='ctx'>             end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-            if submodules</div><div class='del'>-              git_retry "submodule update --init --recursive"</div><div class='del'>-            elsif Gem::Version.create(version) &gt;= Gem::Version.create("2.9.0")</div><div class='del'>-              git_retry "submodule deinit --all --force"</div><div class='add'>+        def clone_needs_extra_fetch?</div><div class='add'>+          return true if path.exist?</div><div class='add'>+</div><div class='add'>+          SharedHelpers.filesystem_access(path.dirname) do |p|</div><div class='add'>+            FileUtils.mkdir_p(p)</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          command = ["clone", "--bare", "--no-hardlinks", "--quiet", *extra_clone_args, "--", configured_uri, path.to_s]</div><div class='add'>+          command_with_no_credentials = check_allowed(command)</div><div class='add'>+</div><div class='add'>+          Bundler::Retry.new("`#{command_with_no_credentials}`", [MissingGitRevisionError]).attempts do</div><div class='add'>+            _, err, status = capture(command, nil)</div><div class='add'>+            return extra_ref if status.success?</div><div class='add'>+</div><div class='add'>+            if err.include?("Could not find remote branch") || # git up to 2.49</div><div class='add'>+               err.include?("Remote branch #{branch_option} not found") # git 2.49 or higher</div><div class='add'>+              raise MissingGitRevisionError.new(command_with_no_credentials, nil, explicit_ref, credential_filtered_uri)</div><div class='add'>+            else</div><div class='add'>+              raise GitCommandError.new(command_with_no_credentials, path, err)</div><div class='ctx'>             end</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-      private</div><div class='add'>+        def clone_needs_unshallow?</div><div class='add'>+          return false unless path.join("shallow").exist?</div><div class='add'>+          return true if full_clone?</div><div class='add'>+</div><div class='add'>+          @revision &amp;&amp; @revision != head_revision</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def extra_ref</div><div class='add'>+          return false if not_pinned?</div><div class='add'>+          return true unless full_clone?</div><div class='add'>+</div><div class='add'>+          ref.start_with?("refs/")</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def depth</div><div class='add'>+          return @depth if defined?(@depth)</div><div class='add'>+</div><div class='add'>+          @depth = if !supports_fetching_unreachable_refs?</div><div class='add'>+            nil</div><div class='add'>+          elsif not_pinned? || pinned_to_full_sha?</div><div class='add'>+            1</div><div class='add'>+          elsif ref.include?("~")</div><div class='add'>+            parsed_depth = ref.split("~").last</div><div class='add'>+            parsed_depth.to_i + 1</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def refspec</div><div class='add'>+          if commit</div><div class='add'>+            @commit_ref = "refs/#{commit}-sha"</div><div class='add'>+            return "#{commit}:#{@commit_ref}"</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          reference = fully_qualified_ref</div><div class='add'>+</div><div class='add'>+          reference ||= if ref.include?("~")</div><div class='add'>+            ref.split("~").first</div><div class='add'>+          elsif ref.start_with?("refs/")</div><div class='add'>+            ref</div><div class='add'>+          else</div><div class='add'>+            "refs/*"</div><div class='add'>+          end</div><div class='ctx'> </div><div class='del'>-        # TODO: Do not rely on /dev/null.</div><div class='del'>-        # Given that open3 is not cross platform until Ruby 1.9.3,</div><div class='del'>-        # the best solution is to pipe to /dev/null if it exists.</div><div class='del'>-        # If it doesn't, everything will work fine, but the user</div><div class='del'>-        # will get the $stderr messages as well.</div><div class='del'>-        def git_null(command)</div><div class='del'>-          git("#{command} 2&gt;#{Bundler::NULL}", false)</div><div class='add'>+          "#{reference}:#{reference}"</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        def git_retry(command)</div><div class='del'>-          Bundler::Retry.new("`git #{URICredentialsFilter.credential_filtered_string(command, uri)}`", GitNotAllowedError).attempts do</div><div class='del'>-            git(command)</div><div class='add'>+        def commit</div><div class='add'>+          @commit ||= pinned_to_full_sha? ? ref : @revision</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def fully_qualified_ref</div><div class='add'>+          if branch</div><div class='add'>+            "refs/heads/#{branch}"</div><div class='add'>+          elsif tag</div><div class='add'>+            "refs/tags/#{tag}"</div><div class='add'>+          elsif ref.nil?</div><div class='add'>+            "refs/heads/#{current_branch}"</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        def git(command, check_errors = true, error_msg = nil)</div><div class='del'>-          command_with_no_credentials = URICredentialsFilter.credential_filtered_string(command, uri)</div><div class='del'>-          raise GitNotAllowedError.new(command_with_no_credentials) unless allow?</div><div class='add'>+        def not_pinned?</div><div class='add'>+          branch_option || ref.nil?</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def pinned_to_full_sha?</div><div class='add'>+          ref =~ /\A\h{40}\z/</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def git_null(*command, dir: nil)</div><div class='add'>+          check_allowed(command)</div><div class='add'>+</div><div class='add'>+          capture(command, dir, :ignore_err =&gt; true)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def git_retry(*command, dir: nil)</div><div class='add'>+          command_with_no_credentials = check_allowed(command)</div><div class='add'>+</div><div class='add'>+          Bundler::Retry.new("`#{command_with_no_credentials}` at #{dir || SharedHelpers.pwd}").attempts do</div><div class='add'>+            git(*command, :dir =&gt; dir)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-          out = SharedHelpers.with_clean_git_env do</div><div class='del'>-            capture_and_filter_stderr(uri) { `git #{command}` }</div><div class='add'>+        def git(*command, dir: nil)</div><div class='add'>+          run_command(*command, :dir =&gt; dir) do |unredacted_command|</div><div class='add'>+            check_allowed(unredacted_command)</div><div class='ctx'>           end</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-          stdout_with_no_credentials = URICredentialsFilter.credential_filtered_string(out, uri)</div><div class='del'>-          raise GitCommandError.new(command_with_no_credentials, path, error_msg) if check_errors &amp;&amp; !$?.success?</div><div class='del'>-          stdout_with_no_credentials</div><div class='add'>+        def git_local(*command, dir: nil)</div><div class='add'>+          run_command(*command, :dir =&gt; dir) do |unredacted_command|</div><div class='add'>+            redact_and_check_presence(unredacted_command)</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         def has_revision_cached?</div><div class='del'>-          return unless @revision</div><div class='del'>-          in_path { git("cat-file -e #{@revision}") }</div><div class='add'>+          return unless @revision &amp;&amp; path.exist?</div><div class='add'>+          git("cat-file", "-e", @revision, :dir =&gt; path)</div><div class='ctx'>           true</div><div class='ctx'>         rescue GitError</div><div class='ctx'>           false</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        def remove_cache</div><div class='del'>-          FileUtils.rm_rf(path)</div><div class='add'>+        def find_local_revision</div><div class='add'>+          return head_revision if explicit_ref.nil?</div><div class='add'>+</div><div class='add'>+          find_revision_for(explicit_ref)</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        def find_local_revision</div><div class='del'>-          allowed_in_path do</div><div class='del'>-            git("rev-parse --verify #{Shellwords.shellescape(ref)}", true).strip</div><div class='del'>-          end</div><div class='add'>+        def head_revision</div><div class='add'>+          verify("HEAD")</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        # Escape the URI for git commands</div><div class='del'>-        def uri_escaped_with_configured_credentials</div><div class='del'>-          remote = configured_uri_for(uri)</div><div class='del'>-          if Bundler::WINDOWS</div><div class='del'>-            # Windows quoting requires double quotes only, with double quotes</div><div class='del'>-            # inside the string escaped by being doubled.</div><div class='del'>-            '"' + remote.gsub('"') { '""' } + '"'</div><div class='del'>-          else</div><div class='del'>-            # Bash requires single quoted strings, with the single quotes escaped</div><div class='del'>-            # by ending the string, escaping the quote, and restarting the string.</div><div class='del'>-            "'" + remote.gsub("'") { "'\\''" } + "'"</div><div class='del'>-          end</div><div class='add'>+        def find_revision_for(reference)</div><div class='add'>+          verify(reference)</div><div class='add'>+        rescue GitCommandError =&gt; e</div><div class='add'>+          raise MissingGitRevisionError.new(e.command, path, reference, credential_filtered_uri)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def verify(reference)</div><div class='add'>+          git("rev-parse", "--verify", reference, :dir =&gt; path).strip</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        # Adds credentials to the URI as Fetcher#configured_uri_for does</div><div class='del'>-        def configured_uri_for(uri)</div><div class='del'>-          if /https?:/ =~ uri</div><div class='del'>-            remote = URI(uri)</div><div class='add'>+        # Adds credentials to the URI</div><div class='add'>+        def configured_uri</div><div class='add'>+          if /https?:/.match?(uri)</div><div class='add'>+            remote = Bundler::URI(uri)</div><div class='ctx'>             config_auth = Bundler.settings[remote.to_s] || Bundler.settings[remote.host]</div><div class='ctx'>             remote.userinfo ||= config_auth</div><div class='ctx'>             remote.to_s</div><div class='add'>+          elsif File.exist?(uri)</div><div class='add'>+            "file://#{uri}"</div><div class='ctx'>           else</div><div class='del'>-            uri</div><div class='add'>+            uri.to_s</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='add'>+        # Removes credentials from the URI</div><div class='add'>+        def credential_filtered_uri</div><div class='add'>+          URICredentialsFilter.credential_filtered_uri(uri)</div><div class='add'>+        end</div><div class='add'>+</div><div class='ctx'>         def allow?</div><div class='del'>-          @git ? @git.allow_git_ops? : true</div><div class='add'>+          allowed = @git ? @git.allow_git_ops? : true</div><div class='add'>+</div><div class='add'>+          raise GitNotInstalledError.new if allowed &amp;&amp; !Bundler.git_present?</div><div class='add'>+</div><div class='add'>+          allowed</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        def in_path(&amp;blk)</div><div class='add'>+        def with_path(&amp;blk)</div><div class='ctx'>           checkout unless path.exist?</div><div class='del'>-          _ = URICredentialsFilter # load it before we chdir</div><div class='del'>-          SharedHelpers.chdir(path, &amp;blk)</div><div class='add'>+          blk.call</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        def allowed_in_path</div><div class='del'>-          return in_path { yield } if allow?</div><div class='add'>+        def allowed_with_path</div><div class='add'>+          return with_path { yield } if allow?</div><div class='ctx'>           raise GitError, "The git source #{uri} is not yet checked out. Please run `bundle install` before trying to start your application"</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        # TODO: Replace this with Open3 when upgrading to bundler 2</div><div class='del'>-        # Similar to #git_null, as Open3 is not cross-platform,</div><div class='del'>-        # a temporary way is to use Tempfile to capture the stderr.</div><div class='del'>-        # When replacing this using Open3, make sure git_null is</div><div class='del'>-        # also replaced by Open3, so stdout and stderr all got handled properly.</div><div class='del'>-        def capture_and_filter_stderr(uri)</div><div class='del'>-          return_value, captured_err = ""</div><div class='del'>-          backup_stderr = STDERR.dup</div><div class='del'>-          begin</div><div class='del'>-            Tempfile.open("captured_stderr") do |f|</div><div class='del'>-              STDERR.reopen(f)</div><div class='del'>-              return_value = yield</div><div class='del'>-              f.rewind</div><div class='del'>-              captured_err = f.read</div><div class='del'>-            end</div><div class='del'>-          ensure</div><div class='del'>-            STDERR.reopen backup_stderr</div><div class='add'>+        def check_allowed(command)</div><div class='add'>+          command_with_no_credentials = redact_and_check_presence(command)</div><div class='add'>+          raise GitNotAllowedError.new(command_with_no_credentials) unless allow?</div><div class='add'>+          command_with_no_credentials</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def redact_and_check_presence(command)</div><div class='add'>+          raise GitNotInstalledError.new unless Bundler.git_present?</div><div class='add'>+</div><div class='add'>+          require "shellwords"</div><div class='add'>+          URICredentialsFilter.credential_filtered_string("git #{command.shelljoin}", uri)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def run_command(*command, dir: nil)</div><div class='add'>+          command_with_no_credentials = yield(command)</div><div class='add'>+</div><div class='add'>+          out, err, status = capture(command, dir)</div><div class='add'>+</div><div class='add'>+          raise GitCommandError.new(command_with_no_credentials, dir || SharedHelpers.pwd, err) unless status.success?</div><div class='add'>+</div><div class='add'>+          Bundler.ui.warn err unless err.empty?</div><div class='add'>+</div><div class='add'>+          out</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def capture(cmd, dir, ignore_err: false)</div><div class='add'>+          SharedHelpers.with_clean_git_env do</div><div class='add'>+            require "open3"</div><div class='add'>+            out, err, status = Open3.capture3(*capture3_args_for(cmd, dir))</div><div class='add'>+</div><div class='add'>+            filtered_out = URICredentialsFilter.credential_filtered_string(out, uri)</div><div class='add'>+            return [filtered_out, status] if ignore_err</div><div class='add'>+</div><div class='add'>+            filtered_err = URICredentialsFilter.credential_filtered_string(err, uri)</div><div class='add'>+            [filtered_out, filtered_err, status]</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def capture3_args_for(cmd, dir)</div><div class='add'>+          return ["git", *cmd] unless dir</div><div class='add'>+</div><div class='add'>+          if Bundler.feature_flag.bundler_3_mode? || supports_minus_c?</div><div class='add'>+            ["git", "-C", dir.to_s, *cmd]</div><div class='add'>+          else</div><div class='add'>+            ["git", *cmd, { :chdir =&gt; dir.to_s }]</div><div class='ctx'>           end</div><div class='del'>-          $stderr.puts URICredentialsFilter.credential_filtered_string(captured_err, uri) if uri &amp;&amp; !captured_err.empty?</div><div class='del'>-          return_value</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def extra_clone_args</div><div class='add'>+          args = depth_args</div><div class='add'>+          return [] if args.empty?</div><div class='add'>+</div><div class='add'>+          args += ["--single-branch"]</div><div class='add'>+          args.unshift("--no-tags") if supports_cloning_with_no_tags?</div><div class='add'>+</div><div class='add'>+          # If there's a locked revision, no need to clone any specific branch</div><div class='add'>+          # or tag, since we will end up checking out that locked revision</div><div class='add'>+          # anyways.</div><div class='add'>+          return args if @revision</div><div class='add'>+</div><div class='add'>+          args += ["--branch", branch_option] if branch_option</div><div class='add'>+          args</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def depth_args</div><div class='add'>+          return [] if full_clone?</div><div class='add'>+</div><div class='add'>+          ["--depth", depth.to_s]</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def extra_fetch_args</div><div class='add'>+          extra_args = [path.to_s, *depth_args]</div><div class='add'>+          extra_args.push(@commit_ref)</div><div class='add'>+          extra_args</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def branch_option</div><div class='add'>+          branch || tag</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def full_clone?</div><div class='add'>+          depth.nil?</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def supports_minus_c?</div><div class='add'>+          @supports_minus_c ||= Gem::Version.new(version) &gt;= Gem::Version.new("1.8.5")</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def supports_fetching_unreachable_refs?</div><div class='add'>+          @supports_fetching_unreachable_refs ||= Gem::Version.new(version) &gt;= Gem::Version.new("2.5.0")</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def supports_cloning_with_no_tags?</div><div class='add'>+          @supports_cloning_with_no_tags ||= Gem::Version.new(version) &gt;= Gem::Version.new("2.14.0-rc0")</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='head'>diff --git a/lib/bundler/source/metadata.rb b/lib/bundler/source/metadata.rb<br/>index 9c5657eef6..593da6d1a7 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/source/metadata.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/metadata.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/source/metadata.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/source/metadata.rb</a></div><div class='hunk'>@@ -5,23 +5,26 @@ module Bundler</div><div class='ctx'>     class Metadata &lt; Source</div><div class='ctx'>       def specs</div><div class='ctx'>         @specs ||= Index.build do |idx|</div><div class='del'>-          idx &lt;&lt; Gem::Specification.new("ruby\0", RubyVersion.system.to_gem_version_with_patchlevel)</div><div class='del'>-          idx &lt;&lt; Gem::Specification.new("rubygems\0", Gem::VERSION)</div><div class='add'>+          idx &lt;&lt; Gem::Specification.new("Ruby\0", Gem.ruby_version)</div><div class='add'>+          idx &lt;&lt; Gem::Specification.new("RubyGems\0", Gem::VERSION) do |s|</div><div class='add'>+            s.required_rubygems_version = Gem::Requirement.default</div><div class='add'>+          end</div><div class='ctx'> </div><div class='ctx'>           idx &lt;&lt; Gem::Specification.new do |s|</div><div class='ctx'>             s.name     = "bundler"</div><div class='ctx'>             s.version  = VERSION</div><div class='add'>+            s.license  = "MIT"</div><div class='ctx'>             s.platform = Gem::Platform::RUBY</div><div class='del'>-            s.source   = self</div><div class='ctx'>             s.authors  = ["bundler team"]</div><div class='ctx'>             s.bindir   = "exe"</div><div class='add'>+            s.homepage = "https://bundler.io"</div><div class='add'>+            s.summary  = "The best way to manage your application's dependencies"</div><div class='ctx'>             s.executables = %w[bundle]</div><div class='ctx'>             # can't point to the actual gemspec or else the require paths will be wrong</div><div class='del'>-            s.loaded_from = File.expand_path("..", __FILE__)</div><div class='add'>+            s.loaded_from = __dir__</div><div class='ctx'>           end</div><div class='del'>-          if loaded_spec = Bundler.rubygems.loaded_specs("bundler")</div><div class='del'>-            idx &lt;&lt; loaded_spec # this has to come after the fake gemspec, to override it</div><div class='del'>-          elsif local_spec = Bundler.rubygems.find_name("bundler").find {|s| s.version.to_s == VERSION }</div><div class='add'>+</div><div class='add'>+          if local_spec = Bundler.rubygems.find_bundler(VERSION)</div><div class='ctx'>             idx &lt;&lt; local_spec</div><div class='ctx'>           end</div><div class='ctx'> </div><div class='hunk'>@@ -29,10 +32,6 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def cached!; end</div><div class='del'>-</div><div class='del'>-      def remote!; end</div><div class='del'>-</div><div class='ctx'>       def options</div><div class='ctx'>         {}</div><div class='ctx'>       end</div><div class='head'>diff --git a/lib/bundler/source/path.rb b/lib/bundler/source/path.rb<br/>index ed734bf549..bdfcf8274a 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/source/path.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/path.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/source/path.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/source/path.rb</a></div><div class='hunk'>@@ -3,7 +3,7 @@</div><div class='ctx'> module Bundler</div><div class='ctx'>   class Source</div><div class='ctx'>     class Path &lt; Source</div><div class='del'>-      autoload :Installer, "bundler/source/path/installer"</div><div class='add'>+      autoload :Installer, File.expand_path("path/installer", __dir__)</div><div class='ctx'> </div><div class='ctx'>       attr_reader :path, :options, :root_path, :original_path</div><div class='ctx'>       attr_writer :name</div><div class='hunk'>@@ -11,7 +11,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       protected :original_path</div><div class='ctx'> </div><div class='del'>-      DEFAULT_GLOB = "{,*,*/*}.gemspec".freeze</div><div class='add'>+      DEFAULT_GLOB = "{,*,*/*}.gemspec"</div><div class='ctx'> </div><div class='ctx'>       def initialize(options)</div><div class='ctx'>         @options = options.dup</div><div class='hunk'>@@ -20,11 +20,16 @@ module Bundler</div><div class='ctx'>         @allow_cached = false</div><div class='ctx'>         @allow_remote = false</div><div class='ctx'> </div><div class='del'>-        @root_path = options["root_path"] || Bundler.root</div><div class='add'>+        @root_path = options["root_path"] || root</div><div class='ctx'> </div><div class='ctx'>         if options["path"]</div><div class='ctx'>           @path = Pathname.new(options["path"])</div><div class='del'>-          @path = expand(@path) unless @path.relative?</div><div class='add'>+          expanded_path = expand(@path)</div><div class='add'>+          @path = if @path.relative?</div><div class='add'>+            expanded_path.relative_path_from(root_path.expand_path)</div><div class='add'>+          else</div><div class='add'>+            expanded_path</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         @name    = options["name"]</div><div class='hunk'>@@ -77,7 +82,9 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def install(spec, options = {})</div><div class='del'>-        print_using_message "Using #{version_message(spec)} from #{self}"</div><div class='add'>+        using_message = "Using #{version_message(spec, options[:previous_spec])} from #{self}"</div><div class='add'>+        using_message += " and installing its executables" unless spec.executables.empty?</div><div class='add'>+        print_using_message using_message</div><div class='ctx'>         generate_bin(spec, :disable_extensions =&gt; true)</div><div class='ctx'>         nil # no post-install message</div><div class='ctx'>       end</div><div class='hunk'>@@ -120,14 +127,18 @@ module Bundler</div><div class='ctx'>         @expanded_original_path ||= expand(original_path)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       def expanded_path</div><div class='ctx'>         @expanded_path ||= expand(path)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def expand(somepath)</div><div class='del'>-        somepath.expand_path(root_path)</div><div class='add'>+        if Bundler.current_ruby.jruby? # TODO: Unify when https://github.com/rubygems/bundler/issues/7598 fixed upstream and all supported jrubies include the fix</div><div class='add'>+          somepath.expand_path(root_path).expand_path</div><div class='add'>+        else</div><div class='add'>+          somepath.expand_path(root_path)</div><div class='add'>+        end</div><div class='ctx'>       rescue ArgumentError =&gt; e</div><div class='ctx'>         Bundler.ui.debug(e)</div><div class='ctx'>         raise PathError, "There was an error while trying to use the path " \</div><div class='hunk'>@@ -136,7 +147,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       def lockfile_path</div><div class='ctx'>         return relative_path(original_path) if original_path.absolute?</div><div class='del'>-        expand(original_path).relative_path_from(Bundler.root)</div><div class='add'>+        expand(original_path).relative_path_from(root)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def app_cache_path(custom_path = nil)</div><div class='hunk'>@@ -162,7 +173,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>         if File.directory?(expanded_path)</div><div class='ctx'>           # We sort depth-first since `&lt;&lt;` will override the earlier-found specs</div><div class='del'>-          Dir["#{expanded_path}/#{@glob}"].sort_by {|p| -p.split(File::SEPARATOR).size }.each do |file|</div><div class='add'>+          Gem::Util.glob_files_in_dir(@glob, expanded_path).sort_by {|p| -p.split(File::SEPARATOR).size }.each do |file|</div><div class='ctx'>             next unless spec = load_gemspec(file)</div><div class='ctx'>             spec.source = self</div><div class='ctx'> </div><div class='hunk'>@@ -191,10 +202,10 @@ module Bundler</div><div class='ctx'>         else</div><div class='ctx'>           message = String.new("The path `#{expanded_path}` ")</div><div class='ctx'>           message &lt;&lt; if File.exist?(expanded_path)</div><div class='del'>-                       "is not a directory."</div><div class='del'>-                     else</div><div class='del'>-                       "does not exist."</div><div class='del'>-                     end</div><div class='add'>+            "is not a directory."</div><div class='add'>+          else</div><div class='add'>+            "does not exist."</div><div class='add'>+          end</div><div class='ctx'>           raise PathError, message</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='hunk'>@@ -213,13 +224,13 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>         # Some gem authors put absolute paths in their gemspec</div><div class='ctx'>         # and we have to save them from themselves</div><div class='del'>-        spec.files = spec.files.map do |p|</div><div class='del'>-          next p unless p =~ /\A#{Pathname::SEPARATOR_PAT}/</div><div class='del'>-          next if File.directory?(p)</div><div class='add'>+        spec.files = spec.files.map do |path|</div><div class='add'>+          next path unless /\A#{Pathname::SEPARATOR_PAT}/.match?(path)</div><div class='add'>+          next if File.directory?(path)</div><div class='ctx'>           begin</div><div class='del'>-            Pathname.new(p).relative_path_from(gem_dir).to_s</div><div class='add'>+            Pathname.new(path).relative_path_from(gem_dir).to_s</div><div class='ctx'>           rescue ArgumentError</div><div class='del'>-            p</div><div class='add'>+            path</div><div class='ctx'>           end</div><div class='ctx'>         end.compact</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/source/path/installer.rb b/lib/bundler/source/path/installer.rb<br/>index a0357ffa39..0af28fe770 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/source/path/installer.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/path/installer.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/source/path/installer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/source/path/installer.rb</a></div><div class='hunk'>@@ -1,5 +1,7 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='add'>+require_relative "../../rubygems_gem_installer"</div><div class='add'>+</div><div class='ctx'> module Bundler</div><div class='ctx'>   class Source</div><div class='ctx'>     class Path</div><div class='hunk'>@@ -16,47 +18,24 @@ module Bundler</div><div class='ctx'>           @build_args         = options[:build_args] || Bundler.rubygems.build_args</div><div class='ctx'>           @gem_bin_dir        = "#{Bundler.rubygems.gem_dir}/bin"</div><div class='ctx'>           @disable_extensions = options[:disable_extensions]</div><div class='del'>-</div><div class='del'>-          if Bundler.requires_sudo?</div><div class='del'>-            @tmp_dir = Bundler.tmp(spec.full_name).to_s</div><div class='del'>-            @bin_dir = "#{@tmp_dir}/bin"</div><div class='del'>-          else</div><div class='del'>-            @bin_dir = @gem_bin_dir</div><div class='del'>-          end</div><div class='add'>+          @bin_dir = @gem_bin_dir</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         def post_install</div><div class='del'>-          SharedHelpers.chdir(@gem_dir) do</div><div class='del'>-            run_hooks(:pre_install)</div><div class='del'>-</div><div class='del'>-            unless @disable_extensions</div><div class='del'>-              build_extensions</div><div class='del'>-              run_hooks(:post_build)</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-            generate_bin unless spec.executables.nil? || spec.executables.empty?</div><div class='add'>+          run_hooks(:pre_install)</div><div class='ctx'> </div><div class='del'>-            run_hooks(:post_install)</div><div class='add'>+          unless @disable_extensions</div><div class='add'>+            build_extensions</div><div class='add'>+            run_hooks(:post_build)</div><div class='ctx'>           end</div><div class='del'>-        ensure</div><div class='del'>-          Bundler.rm_rf(@tmp_dir) if Bundler.requires_sudo?</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-      private</div><div class='ctx'> </div><div class='del'>-        def generate_bin</div><div class='del'>-          super</div><div class='add'>+          generate_bin unless spec.executables.empty?</div><div class='ctx'> </div><div class='del'>-          if Bundler.requires_sudo?</div><div class='del'>-            SharedHelpers.filesystem_access(@gem_bin_dir) do |p|</div><div class='del'>-              Bundler.mkdir_p(p)</div><div class='del'>-            end</div><div class='del'>-            spec.executables.each do |exe|</div><div class='del'>-              Bundler.sudo "cp -R #{@bin_dir}/#{exe} #{@gem_bin_dir}"</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='add'>+          run_hooks(:post_install)</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='add'>+        private</div><div class='add'>+</div><div class='ctx'>         def run_hooks(type)</div><div class='ctx'>           hooks_meth = "#{type}_hooks"</div><div class='ctx'>           return unless Gem.respond_to?(hooks_meth)</div><div class='head'>diff --git a/lib/bundler/source/rubygems.rb b/lib/bundler/source/rubygems.rb<br/>index 485b388a32..af57acbbc2 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/source/rubygems.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/rubygems.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/source/rubygems.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/source/rubygems.rb</a></div><div class='hunk'>@@ -1,19 +1,16 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "uri"</div><div class='ctx'> require "rubygems/user_interaction"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class Source</div><div class='ctx'>     class Rubygems &lt; Source</div><div class='del'>-      autoload :Remote, "bundler/source/rubygems/remote"</div><div class='add'>+      autoload :Remote, File.expand_path("rubygems/remote", __dir__)</div><div class='ctx'> </div><div class='del'>-      # Use the API when installing less than X gems</div><div class='del'>-      API_REQUEST_LIMIT = 500</div><div class='ctx'>       # Ask for X gems per API request</div><div class='ctx'>       API_REQUEST_SIZE = 50</div><div class='ctx'> </div><div class='del'>-      attr_reader :remotes, :caches</div><div class='add'>+      attr_reader :remotes</div><div class='ctx'> </div><div class='ctx'>       def initialize(options = {})</div><div class='ctx'>         @options = options</div><div class='hunk'>@@ -21,18 +18,41 @@ module Bundler</div><div class='ctx'>         @dependency_names = []</div><div class='ctx'>         @allow_remote = false</div><div class='ctx'>         @allow_cached = false</div><div class='del'>-        @caches = [cache_path, *Bundler.rubygems.gem_cache]</div><div class='add'>+        @allow_local = options["allow_local"] || false</div><div class='ctx'> </div><div class='del'>-        Array(options["remotes"] || []).reverse_each {|r| add_remote(r) }</div><div class='add'>+        Array(options["remotes"]).reverse_each {|r| add_remote(r) }</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def caches</div><div class='add'>+        @caches ||= [cache_path, *Bundler.rubygems.gem_cache]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def local_only!</div><div class='add'>+        @specs = nil</div><div class='add'>+        @allow_local = true</div><div class='add'>+        @allow_cached = false</div><div class='add'>+        @allow_remote = false</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def local!</div><div class='add'>+        return if @allow_local</div><div class='add'>+</div><div class='add'>+        @specs = nil</div><div class='add'>+        @allow_local = true</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def remote!</div><div class='add'>+        return if @allow_remote</div><div class='add'>+</div><div class='ctx'>         @specs = nil</div><div class='ctx'>         @allow_remote = true</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def cached!</div><div class='add'>+        return if @allow_cached</div><div class='add'>+</div><div class='ctx'>         @specs = nil</div><div class='add'>+        @allow_local = true</div><div class='ctx'>         @allow_cached = true</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -50,9 +70,17 @@ module Bundler</div><div class='ctx'>         o.is_a?(Rubygems) &amp;&amp; (o.credless_remotes - credless_remotes).empty?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def multiple_remotes?</div><div class='add'>+        @remotes.size &gt; 1</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def no_remotes?</div><div class='add'>+        @remotes.size == 0</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def can_lock?(spec)</div><div class='del'>-        return super if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?</div><div class='del'>-        spec.source.is_a?(Rubygems)</div><div class='add'>+        return super unless multiple_remotes?</div><div class='add'>+        include?(spec.source)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def options</div><div class='hunk'>@@ -74,12 +102,28 @@ module Bundler</div><div class='ctx'>       def to_s</div><div class='ctx'>         if remotes.empty?</div><div class='ctx'>           "locally installed gems"</div><div class='del'>-        else</div><div class='del'>-          remote_names = remotes.map(&amp;:to_s).join(", ")</div><div class='add'>+        elsif @allow_remote &amp;&amp; @allow_cached &amp;&amp; @allow_local</div><div class='add'>+          "rubygems repository #{remote_names}, cached gems or installed locally"</div><div class='add'>+        elsif @allow_remote &amp;&amp; @allow_local</div><div class='ctx'>           "rubygems repository #{remote_names} or installed locally"</div><div class='add'>+        elsif @allow_remote</div><div class='add'>+          "rubygems repository #{remote_names}"</div><div class='add'>+        elsif @allow_cached &amp;&amp; @allow_local</div><div class='add'>+          "cached gems or installed locally"</div><div class='add'>+        else</div><div class='add'>+          "locally installed gems"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def identifier</div><div class='add'>+        if remotes.empty?</div><div class='add'>+          "locally installed gems"</div><div class='add'>+        else</div><div class='add'>+          "rubygems repository #{remote_names}"</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='del'>-      alias_method :name, :to_s</div><div class='add'>+      alias_method :name, :identifier</div><div class='add'>+      alias_method :to_gemfile, :identifier</div><div class='ctx'> </div><div class='ctx'>       def specs</div><div class='ctx'>         @specs ||= begin</div><div class='hunk'>@@ -88,114 +132,84 @@ module Bundler</div><div class='ctx'>           # small_idx.use large_idx.</div><div class='ctx'>           idx = @allow_remote ? remote_specs.dup : Index.new</div><div class='ctx'>           idx.use(cached_specs, :override_dupes) if @allow_cached || @allow_remote</div><div class='del'>-          idx.use(installed_specs, :override_dupes)</div><div class='add'>+          idx.use(installed_specs, :override_dupes) if @allow_local</div><div class='ctx'>           idx</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def install(spec, opts = {})</div><div class='del'>-        force = opts[:force]</div><div class='del'>-        ensure_builtin_gems_cached = opts[:ensure_builtin_gems_cached]</div><div class='add'>+      def install(spec, options = {})</div><div class='add'>+        force = options[:force]</div><div class='add'>+        ensure_builtin_gems_cached = options[:ensure_builtin_gems_cached]</div><div class='ctx'> </div><div class='del'>-        if ensure_builtin_gems_cached &amp;&amp; builtin_gem?(spec)</div><div class='del'>-          if !cached_path(spec)</div><div class='del'>-            cached_built_in_gem(spec) unless spec.remote</div><div class='del'>-            force = true</div><div class='del'>-          else</div><div class='del'>-            spec.loaded_from = loaded_from(spec)</div><div class='del'>-          end</div><div class='add'>+        if ensure_builtin_gems_cached &amp;&amp; spec.default_gem? &amp;&amp; !cached_path(spec)</div><div class='add'>+          cached_built_in_gem(spec) unless spec.remote</div><div class='add'>+          force = true</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         if installed?(spec) &amp;&amp; !force</div><div class='del'>-          print_using_message "Using #{version_message(spec)}"</div><div class='add'>+          print_using_message "Using #{version_message(spec, options[:previous_spec])}"</div><div class='ctx'>           return nil # no post-install message</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        # Download the gem to get the spec, because some specs that are returned</div><div class='del'>-        # by rubygems.org are broken and wrong.</div><div class='ctx'>         if spec.remote</div><div class='ctx'>           # Check for this spec from other sources</div><div class='del'>-          uris = [spec.remote.anonymized_uri]</div><div class='del'>-          uris += remotes_for_spec(spec).map(&amp;:anonymized_uri)</div><div class='del'>-          uris.uniq!</div><div class='add'>+          uris = [spec.remote, *remotes_for_spec(spec)].map(&amp;:anonymized_uri).uniq</div><div class='ctx'>           Installer.ambiguous_gems &lt;&lt; [spec.name, *uris] if uris.length &gt; 1</div><div class='del'>-</div><div class='del'>-          s = Bundler.rubygems.spec_from_gem(fetch_gem(spec), Bundler.settings["trust-policy"])</div><div class='del'>-          spec.__swap__(s)</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        unless Bundler.settings[:no_install]</div><div class='del'>-          message = "Installing #{version_message(spec)}"</div><div class='del'>-          message += " with native extensions" if spec.extensions.any?</div><div class='del'>-          Bundler.ui.confirm message</div><div class='add'>+        path = fetch_gem_if_possible(spec, options[:previous_spec])</div><div class='add'>+        raise GemNotFound, "Could not find #{spec.file_name} for installation" unless path</div><div class='ctx'> </div><div class='del'>-          path = cached_gem(spec)</div><div class='del'>-          if requires_sudo?</div><div class='del'>-            install_path = Bundler.tmp(spec.full_name)</div><div class='del'>-            bin_path     = install_path.join("bin")</div><div class='del'>-          else</div><div class='del'>-            install_path = rubygems_dir</div><div class='del'>-            bin_path     = Bundler.system_bindir</div><div class='del'>-          end</div><div class='add'>+        return if Bundler.settings[:no_install]</div><div class='ctx'> </div><div class='del'>-          Bundler.mkdir_p bin_path, :no_sudo =&gt; true unless spec.executables.empty? || Bundler.rubygems.provides?("&gt;= 2.7.5")</div><div class='del'>-</div><div class='del'>-          installed_spec = nil</div><div class='del'>-          Bundler.rubygems.preserve_paths do</div><div class='del'>-            installed_spec = Bundler::RubyGemsGemInstaller.at(</div><div class='del'>-              path,</div><div class='del'>-              :install_dir         =&gt; install_path.to_s,</div><div class='del'>-              :bin_dir             =&gt; bin_path.to_s,</div><div class='del'>-              :ignore_dependencies =&gt; true,</div><div class='del'>-              :wrappers            =&gt; true,</div><div class='del'>-              :env_shebang         =&gt; true,</div><div class='del'>-              :build_args          =&gt; opts[:build_args],</div><div class='del'>-              :bundler_expected_checksum =&gt; spec.respond_to?(:checksum) &amp;&amp; spec.checksum,</div><div class='del'>-              :bundler_extension_cache_path =&gt; extension_cache_path(spec)</div><div class='del'>-            ).install</div><div class='del'>-          end</div><div class='del'>-          spec.full_gem_path = installed_spec.full_gem_path</div><div class='del'>-</div><div class='del'>-          # SUDO HAX</div><div class='del'>-          if requires_sudo?</div><div class='del'>-            Bundler.rubygems.repository_subdirectories.each do |name|</div><div class='del'>-              src = File.join(install_path, name, "*")</div><div class='del'>-              dst = File.join(rubygems_dir, name)</div><div class='del'>-              if name == "extensions" &amp;&amp; Dir.glob(src).any?</div><div class='del'>-                src = File.join(src, "*/*")</div><div class='del'>-                ext_src = Dir.glob(src).first</div><div class='del'>-                ext_src.gsub!(src[0..-6], "")</div><div class='del'>-                dst = File.dirname(File.join(dst, ext_src))</div><div class='del'>-              end</div><div class='del'>-              SharedHelpers.filesystem_access(dst) do |p|</div><div class='del'>-                Bundler.mkdir_p(p)</div><div class='del'>-              end</div><div class='del'>-              Bundler.sudo "cp -R #{src} #{dst}" if Dir[src].any?</div><div class='del'>-            end</div><div class='add'>+        install_path = rubygems_dir</div><div class='add'>+        bin_path     = Bundler.system_bindir</div><div class='ctx'> </div><div class='del'>-            spec.executables.each do |exe|</div><div class='del'>-              SharedHelpers.filesystem_access(Bundler.system_bindir) do |p|</div><div class='del'>-                Bundler.mkdir_p(p)</div><div class='del'>-              end</div><div class='del'>-              Bundler.sudo "cp -R #{install_path}/bin/#{exe} #{Bundler.system_bindir}/"</div><div class='del'>-            end</div><div class='add'>+        require_relative "../rubygems_gem_installer"</div><div class='add'>+</div><div class='add'>+        installer = Bundler::RubyGemsGemInstaller.at(</div><div class='add'>+          path,</div><div class='add'>+          :security_policy =&gt; Bundler.rubygems.security_policies[Bundler.settings["trust-policy"]],</div><div class='add'>+          :install_dir =&gt; install_path.to_s,</div><div class='add'>+          :bin_dir =&gt; bin_path.to_s,</div><div class='add'>+          :ignore_dependencies =&gt; true,</div><div class='add'>+          :wrappers =&gt; true,</div><div class='add'>+          :env_shebang =&gt; true,</div><div class='add'>+          :build_args =&gt; options[:build_args],</div><div class='add'>+          :bundler_expected_checksum =&gt; spec.respond_to?(:checksum) &amp;&amp; spec.checksum,</div><div class='add'>+          :bundler_extension_cache_path =&gt; extension_cache_path(spec)</div><div class='add'>+        )</div><div class='add'>+</div><div class='add'>+        if spec.remote</div><div class='add'>+          s = begin</div><div class='add'>+            installer.spec</div><div class='add'>+          rescue Gem::Package::FormatError</div><div class='add'>+            Bundler.rm_rf(path)</div><div class='add'>+            raise</div><div class='add'>+          rescue Gem::Security::Exception =&gt; e</div><div class='add'>+            raise SecurityError,</div><div class='add'>+             "The gem #{File.basename(path, ".gem")} can't be installed because " \</div><div class='add'>+             "the security policy didn't allow it, with the message: #{e.message}"</div><div class='ctx'>           end</div><div class='del'>-          installed_spec.loaded_from = loaded_from(spec)</div><div class='add'>+</div><div class='add'>+          spec.__swap__(s)</div><div class='ctx'>         end</div><div class='del'>-        spec.loaded_from = loaded_from(spec)</div><div class='add'>+</div><div class='add'>+        message = "Installing #{version_message(spec, options[:previous_spec])}"</div><div class='add'>+        message += " with native extensions" if spec.extensions.any?</div><div class='add'>+        Bundler.ui.confirm message</div><div class='add'>+</div><div class='add'>+        installed_spec = installer.install</div><div class='add'>+</div><div class='add'>+        spec.full_gem_path = installed_spec.full_gem_path</div><div class='add'>+        spec.loaded_from = installed_spec.loaded_from</div><div class='ctx'> </div><div class='ctx'>         spec.post_install_message</div><div class='del'>-      ensure</div><div class='del'>-        Bundler.rm_rf(install_path) if requires_sudo?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def cache(spec, custom_path = nil)</div><div class='del'>-        if builtin_gem?(spec)</div><div class='del'>-          cached_path = cached_built_in_gem(spec)</div><div class='del'>-        else</div><div class='del'>-          cached_path = cached_gem(spec)</div><div class='del'>-        end</div><div class='del'>-        raise GemNotFound, "Missing gem file '#{spec.full_name}.gem'." unless cached_path</div><div class='add'>+        cached_path = Bundler.settings[:cache_all_platforms] ? fetch_gem_if_possible(spec) : cached_gem(spec)</div><div class='add'>+        raise GemNotFound, "Missing gem file '#{spec.file_name}'." unless cached_path</div><div class='ctx'>         return if File.dirname(cached_path) == Bundler.app_cache.to_s</div><div class='ctx'>         Bundler.ui.info "  * #{File.basename(cached_path)}"</div><div class='ctx'>         FileUtils.cp(cached_path, Bundler.app_cache(custom_path))</div><div class='hunk'>@@ -222,25 +236,16 @@ module Bundler</div><div class='ctx'>         @remotes.unshift(uri) unless @remotes.include?(uri)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def equivalent_remotes?(other_remotes)</div><div class='del'>-        other_remotes.map(&amp;method(:remove_auth)) == @remotes.map(&amp;method(:remove_auth))</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def replace_remotes(other_remotes, allow_equivalent = false)</div><div class='del'>-        return false if other_remotes == @remotes</div><div class='del'>-</div><div class='del'>-        equivalent = allow_equivalent &amp;&amp; equivalent_remotes?(other_remotes)</div><div class='del'>-</div><div class='del'>-        @remotes = []</div><div class='del'>-        other_remotes.reverse_each do |r|</div><div class='del'>-          add_remote r.to_s</div><div class='add'>+      def spec_names</div><div class='add'>+        if @allow_remote &amp;&amp; dependency_api_available?</div><div class='add'>+          remote_specs.spec_names</div><div class='add'>+        else</div><div class='add'>+          []</div><div class='ctx'>         end</div><div class='del'>-</div><div class='del'>-        !equivalent</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def unmet_deps</div><div class='del'>-        if @allow_remote &amp;&amp; api_fetchers.any?</div><div class='add'>+        if @allow_remote &amp;&amp; dependency_api_available?</div><div class='ctx'>           remote_specs.unmet_dependency_names</div><div class='ctx'>         else</div><div class='ctx'>           []</div><div class='hunk'>@@ -256,7 +261,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       def double_check_for(unmet_dependency_names)</div><div class='ctx'>         return unless @allow_remote</div><div class='del'>-        return unless api_fetchers.any?</div><div class='add'>+        return unless dependency_api_available?</div><div class='ctx'> </div><div class='ctx'>         unmet_dependency_names = unmet_dependency_names.call</div><div class='ctx'>         unless unmet_dependency_names.nil?</div><div class='hunk'>@@ -278,21 +283,32 @@ module Bundler</div><div class='ctx'>         remote_specs.each do |spec|</div><div class='ctx'>           case spec</div><div class='ctx'>           when EndpointSpecification, Gem::Specification, StubSpecification, LazySpecification</div><div class='del'>-            names.concat(spec.runtime_dependencies)</div><div class='add'>+            names.concat(spec.runtime_dependencies.map(&amp;:name))</div><div class='ctx'>           when RemoteSpecification # from the full index</div><div class='ctx'>             return nil</div><div class='ctx'>           else</div><div class='ctx'>             raise "unhandled spec type (#{spec.inspect})"</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='del'>-        names.map!(&amp;:name) if names</div><div class='ctx'>         names</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    protected</div><div class='add'>+      def dependency_api_available?</div><div class='add'>+        @allow_remote &amp;&amp; api_fetchers.any?</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      protected</div><div class='add'>+</div><div class='add'>+      def remote_names</div><div class='add'>+        remotes.map(&amp;:to_s).join(", ")</div><div class='add'>+      end</div><div class='ctx'> </div><div class='ctx'>       def credless_remotes</div><div class='del'>-        remotes.map(&amp;method(:suppress_configured_credentials))</div><div class='add'>+        if Bundler.settings[:allow_deployment_source_credential_changes]</div><div class='add'>+          remotes.map(&amp;method(:remove_auth))</div><div class='add'>+        else</div><div class='add'>+          remotes.map(&amp;method(:suppress_configured_credentials))</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def remotes_for_spec(spec)</div><div class='hunk'>@@ -302,29 +318,32 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def loaded_from(spec)</div><div class='del'>-        "#{rubygems_dir}/specifications/#{spec.full_name}.gemspec"</div><div class='del'>-      end</div><div class='del'>-</div><div class='ctx'>       def cached_gem(spec)</div><div class='del'>-        cached_gem = cached_path(spec)</div><div class='del'>-        unless cached_gem</div><div class='del'>-          raise Bundler::GemNotFound, "Could not find #{spec.file_name} for installation"</div><div class='add'>+        if spec.default_gem?</div><div class='add'>+          cached_built_in_gem(spec)</div><div class='add'>+        else</div><div class='add'>+          cached_path(spec)</div><div class='ctx'>         end</div><div class='del'>-        cached_gem</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def cached_path(spec)</div><div class='del'>-        possibilities = @caches.map {|p| "#{p}/#{spec.file_name}" }</div><div class='add'>+        global_cache_path = download_cache_path(spec)</div><div class='add'>+        caches &lt;&lt; global_cache_path if global_cache_path</div><div class='add'>+</div><div class='add'>+        possibilities = caches.map {|p| package_path(p, spec) }</div><div class='ctx'>         possibilities.find {|p| File.exist?(p) }</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def package_path(cache_path, spec)</div><div class='add'>+        "#{cache_path}/#{spec.file_name}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def normalize_uri(uri)</div><div class='del'>-        uri = uri.to_s</div><div class='del'>-        uri = "#{uri}/" unless uri =~ %r{/$}</div><div class='del'>-        uri = URI(uri)</div><div class='add'>+        uri = URINormalizer.normalize_suffix(uri.to_s)</div><div class='add'>+        require_relative "../vendored_uri"</div><div class='add'>+        uri = Bundler::URI(uri)</div><div class='ctx'>         raise ArgumentError, "The source must be an absolute URI. For example:\n" \</div><div class='del'>-          "source 'https://rubygems.org'" if !uri.absolute? || (uri.is_a?(URI::HTTP) &amp;&amp; uri.host.nil?)</div><div class='add'>+          "source 'https://rubygems.org'" if !uri.absolute? || (uri.is_a?(Bundler::URI::HTTP) &amp;&amp; uri.host.nil?)</div><div class='ctx'>         uri</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -348,7 +367,6 @@ module Bundler</div><div class='ctx'>       def installed_specs</div><div class='ctx'>         @installed_specs ||= Index.build do |idx|</div><div class='ctx'>           Bundler.rubygems.all_specs.reverse_each do |spec|</div><div class='del'>-            next if spec.name == "bundler"</div><div class='ctx'>             spec.source = self</div><div class='ctx'>             if Bundler.rubygems.spec_missing_extensions?(spec, false)</div><div class='ctx'>               Bundler.ui.debug "Source #{self} is ignoring #{spec} because it is missing extensions"</div><div class='hunk'>@@ -361,16 +379,11 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>       def cached_specs</div><div class='ctx'>         @cached_specs ||= begin</div><div class='del'>-          idx = installed_specs.dup</div><div class='add'>+          idx = @allow_local ? installed_specs.dup : Index.new</div><div class='ctx'> </div><div class='ctx'>           Dir["#{cache_path}/*.gem"].each do |gemfile|</div><div class='del'>-            next if gemfile =~ /^bundler\-[\d\.]+?\.gem/</div><div class='ctx'>             s ||= Bundler.rubygems.spec_from_gem(gemfile)</div><div class='ctx'>             s.source = self</div><div class='del'>-            if Bundler.rubygems.spec_missing_extensions?(s, false)</div><div class='del'>-              Bundler.ui.debug "Source #{self} is ignoring #{s} because it is missing extensions"</div><div class='del'>-              next</div><div class='del'>-            end</div><div class='ctx'>             idx &lt;&lt; s</div><div class='ctx'>           end</div><div class='ctx'> </div><div class='hunk'>@@ -389,12 +402,11 @@ module Bundler</div><div class='ctx'>           # gather lists from non-api sites</div><div class='ctx'>           fetch_names(index_fetchers, nil, idx, false)</div><div class='ctx'> </div><div class='del'>-          # because ensuring we have all the gems we need involves downloading</div><div class='del'>-          # the gemspecs of those gems, if the non-api sites contain more than</div><div class='del'>-          # about 500 gems, we treat all sites as non-api for speed.</div><div class='del'>-          allow_api = idx.size &lt; API_REQUEST_LIMIT &amp;&amp; dependency_names.size &lt; API_REQUEST_LIMIT</div><div class='del'>-          Bundler.ui.debug "Need to query more than #{API_REQUEST_LIMIT} gems." \</div><div class='del'>-            " Downloading full index instead..." unless allow_api</div><div class='add'>+          # legacy multi-remote sources need special logic to figure out</div><div class='add'>+          # dependency names and that logic can be very costly if one remote</div><div class='add'>+          # uses the dependency API but others don't. So use full indexes</div><div class='add'>+          # consistently in that particular case.</div><div class='add'>+          allow_api = !multiple_remotes?</div><div class='ctx'> </div><div class='ctx'>           fetch_names(api_fetchers, allow_api &amp;&amp; dependency_names, idx, false)</div><div class='ctx'>         end</div><div class='hunk'>@@ -403,66 +415,56 @@ module Bundler</div><div class='ctx'>       def fetch_names(fetchers, dependency_names, index, override_dupes)</div><div class='ctx'>         fetchers.each do |f|</div><div class='ctx'>           if dependency_names</div><div class='del'>-            Bundler.ui.info "Fetching gem metadata from #{f.uri}", Bundler.ui.debug?</div><div class='add'>+            Bundler.ui.info "Fetching gem metadata from #{URICredentialsFilter.credential_filtered_uri(f.uri)}", Bundler.ui.debug?</div><div class='ctx'>             index.use f.specs_with_retry(dependency_names, self), override_dupes</div><div class='ctx'>             Bundler.ui.info "" unless Bundler.ui.debug? # new line now that the dots are over</div><div class='ctx'>           else</div><div class='del'>-            Bundler.ui.info "Fetching source index from #{f.uri}"</div><div class='add'>+            Bundler.ui.info "Fetching source index from #{URICredentialsFilter.credential_filtered_uri(f.uri)}"</div><div class='ctx'>             index.use f.specs_with_retry(nil, self), override_dupes</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def fetch_gem(spec)</div><div class='del'>-        return false unless spec.remote</div><div class='add'>+      def fetch_gem_if_possible(spec, previous_spec = nil)</div><div class='add'>+        if spec.remote</div><div class='add'>+          fetch_gem(spec, previous_spec)</div><div class='add'>+        else</div><div class='add'>+          cached_gem(spec)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'> </div><div class='add'>+      def fetch_gem(spec, previous_spec = nil)</div><div class='ctx'>         spec.fetch_platform</div><div class='ctx'> </div><div class='del'>-        download_path = requires_sudo? ? Bundler.tmp(spec.full_name) : rubygems_dir</div><div class='del'>-        gem_path = "#{rubygems_dir}/cache/#{spec.full_name}.gem"</div><div class='add'>+        cache_path = download_cache_path(spec) || default_cache_path_for(rubygems_dir)</div><div class='add'>+        gem_path = package_path(cache_path, spec)</div><div class='add'>+        return gem_path if File.exist?(gem_path)</div><div class='ctx'> </div><div class='del'>-        SharedHelpers.filesystem_access("#{download_path}/cache") do |p|</div><div class='add'>+        SharedHelpers.filesystem_access(cache_path) do |p|</div><div class='ctx'>           FileUtils.mkdir_p(p)</div><div class='ctx'>         end</div><div class='del'>-        download_gem(spec, download_path)</div><div class='del'>-</div><div class='del'>-        if requires_sudo?</div><div class='del'>-          SharedHelpers.filesystem_access("#{rubygems_dir}/cache") do |p|</div><div class='del'>-            Bundler.mkdir_p(p)</div><div class='del'>-          end</div><div class='del'>-          Bundler.sudo "mv #{download_path}/cache/#{spec.full_name}.gem #{gem_path}"</div><div class='del'>-        end</div><div class='add'>+        download_gem(spec, cache_path, previous_spec)</div><div class='ctx'> </div><div class='ctx'>         gem_path</div><div class='del'>-      ensure</div><div class='del'>-        Bundler.rm_rf(download_path) if requires_sudo?</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def builtin_gem?(spec)</div><div class='del'>-        # Ruby 2.1, where all included gems have this summary</div><div class='del'>-        return true if spec.summary =~ /is bundled with Ruby/</div><div class='del'>-</div><div class='del'>-        # Ruby 2.0, where gemspecs are stored in specifications/default/</div><div class='del'>-        spec.loaded_from &amp;&amp; spec.loaded_from.include?("specifications/default/")</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def installed?(spec)</div><div class='del'>-        installed_specs[spec].any?</div><div class='add'>+        installed_specs[spec].any? &amp;&amp; !spec.deleted_gem?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def requires_sudo?</div><div class='del'>-        Bundler.requires_sudo?</div><div class='add'>+      def rubygems_dir</div><div class='add'>+        Bundler.bundle_path</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def rubygems_dir</div><div class='del'>-        Bundler.rubygems.gem_dir</div><div class='add'>+      def default_cache_path_for(dir)</div><div class='add'>+        "#{dir}/cache"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def cache_path</div><div class='ctx'>         Bundler.app_cache</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       # Checks if the requested spec exists in the global cache. If it does,</div><div class='ctx'>       # we copy it to the download path, and if it does not, we download it.</div><div class='hunk'>@@ -470,45 +472,16 @@ module Bundler</div><div class='ctx'>       # @param  [Specification] spec</div><div class='ctx'>       #         the spec we want to download or retrieve from the cache.</div><div class='ctx'>       #</div><div class='del'>-      # @param  [String] download_path</div><div class='add'>+      # @param  [String] download_cache_path</div><div class='ctx'>       #         the local directory the .gem will end up in.</div><div class='ctx'>       #</div><div class='del'>-      def download_gem(spec, download_path)</div><div class='del'>-        local_path = File.join(download_path, "cache/#{spec.full_name}.gem")</div><div class='del'>-</div><div class='del'>-        if (cache_path = download_cache_path(spec)) &amp;&amp; cache_path.file?</div><div class='del'>-          SharedHelpers.filesystem_access(local_path) do</div><div class='del'>-            FileUtils.cp(cache_path, local_path)</div><div class='del'>-          end</div><div class='del'>-        else</div><div class='del'>-          uri = spec.remote.uri</div><div class='del'>-          Bundler.ui.confirm("Fetching #{version_message(spec)}")</div><div class='del'>-          rubygems_local_path = Bundler.rubygems.download_gem(spec, uri, download_path)</div><div class='del'>-          if rubygems_local_path != local_path</div><div class='del'>-            FileUtils.mv(rubygems_local_path, local_path)</div><div class='del'>-          end</div><div class='del'>-          cache_globally(spec, local_path)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Checks if the requested spec exists in the global cache. If it does</div><div class='del'>-      # not, we create the relevant global cache subdirectory if it does not</div><div class='del'>-      # exist and copy the spec from the local cache to the global cache.</div><div class='del'>-      #</div><div class='del'>-      # @param  [Specification] spec</div><div class='del'>-      #         the spec we want to copy to the global cache.</div><div class='del'>-      #</div><div class='del'>-      # @param  [String] local_cache_path</div><div class='del'>-      #         the local directory from which we want to copy the .gem.</div><div class='add'>+      # @param  [Specification] previous_spec</div><div class='add'>+      #         the spec previously locked</div><div class='ctx'>       #</div><div class='del'>-      def cache_globally(spec, local_cache_path)</div><div class='del'>-        return unless cache_path = download_cache_path(spec)</div><div class='del'>-        return if cache_path.exist?</div><div class='del'>-</div><div class='del'>-        SharedHelpers.filesystem_access(cache_path.dirname, &amp;:mkpath)</div><div class='del'>-        SharedHelpers.filesystem_access(cache_path) do</div><div class='del'>-          FileUtils.cp(local_cache_path, cache_path)</div><div class='del'>-        end</div><div class='add'>+      def download_gem(spec, download_cache_path, previous_spec = nil)</div><div class='add'>+        uri = spec.remote.uri</div><div class='add'>+        Bundler.ui.confirm("Fetching #{version_message(spec, previous_spec)}")</div><div class='add'>+        Bundler.rubygems.download_gem(spec, uri, download_cache_path)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Returns the global cache path of the calling Rubygems::Source object.</div><div class='hunk'>@@ -527,7 +500,7 @@ module Bundler</div><div class='ctx'>         return unless remote = spec.remote</div><div class='ctx'>         return unless cache_slug = remote.cache_slug</div><div class='ctx'> </div><div class='del'>-        Bundler.user_cache.join("gems", cache_slug, spec.file_name)</div><div class='add'>+        Bundler.user_cache.join("gems", cache_slug)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def extension_cache_slug(spec)</div><div class='head'>diff --git a/lib/bundler/source/rubygems/remote.rb b/lib/bundler/source/rubygems/remote.rb<br/>index b45f33770a..82c850ffbb 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/source/rubygems/remote.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source/rubygems/remote.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/source/rubygems/remote.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/source/rubygems/remote.rb</a></div><div class='hunk'>@@ -25,8 +25,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>             cache_uri = original_uri || uri</div><div class='ctx'> </div><div class='del'>-            # URI::File of Ruby 2.6 returns empty string when given "file://".</div><div class='del'>-            host = defined?(URI::File) &amp;&amp; cache_uri.is_a?(URI::File) ? nil : cache_uri.host</div><div class='add'>+            host = cache_uri.to_s.start_with?("file://") ? nil : cache_uri.host</div><div class='ctx'> </div><div class='ctx'>             uri_parts = [host, cache_uri.user, cache_uri.port, cache_uri.path]</div><div class='ctx'>             uri_digest = SharedHelpers.digest(:MD5).hexdigest(uri_parts.compact.join("."))</div><div class='hunk'>@@ -40,7 +39,7 @@ module Bundler</div><div class='ctx'>           "rubygems remote at #{anonymized_uri}"</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-      private</div><div class='add'>+        private</div><div class='ctx'> </div><div class='ctx'>         def apply_auth(uri, auth)</div><div class='ctx'>           if auth &amp;&amp; uri.userinfo.nil?</div><div class='hunk'>@@ -49,7 +48,7 @@ module Bundler</div><div class='ctx'>           end</div><div class='ctx'> </div><div class='ctx'>           uri</div><div class='del'>-        rescue URI::InvalidComponentError</div><div class='add'>+        rescue Bundler::URI::InvalidComponentError</div><div class='ctx'>           error_message = "Please CGI escape your usernames and passwords before " \</div><div class='ctx'>                           "setting them for authentication."</div><div class='ctx'>           raise HTTPError.new(error_message)</div><div class='head'>diff --git a/lib/bundler/source/rubygems_aggregate.rb b/lib/bundler/source/rubygems_aggregate.rb<br/>new file mode 100644<br/>index 0000000000..99ef81ad54<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/source/rubygems_aggregate.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/source/rubygems_aggregate.rb</a></div><div class='hunk'>@@ -0,0 +1,68 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  class Source</div><div class='add'>+    class RubygemsAggregate</div><div class='add'>+      attr_reader :source_map, :sources</div><div class='add'>+</div><div class='add'>+      def initialize(sources, source_map)</div><div class='add'>+        @sources = sources</div><div class='add'>+        @source_map = source_map</div><div class='add'>+</div><div class='add'>+        @index = build_index</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def specs</div><div class='add'>+        @index</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def identifier</div><div class='add'>+        to_s</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def to_s</div><div class='add'>+        "any of the sources"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def build_index</div><div class='add'>+        Index.build do |idx|</div><div class='add'>+          dependency_names = source_map.pinned_spec_names</div><div class='add'>+</div><div class='add'>+          sources.all_sources.each do |source|</div><div class='add'>+            source.dependency_names = dependency_names - source_map.pinned_spec_names(source)</div><div class='add'>+            idx.add_source source.specs</div><div class='add'>+            dependency_names.concat(source.unmet_deps).uniq!</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          double_check_for_index(idx, dependency_names)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Suppose the gem Foo depends on the gem Bar.  Foo exists in Source A.  Bar has some versions that exist in both</div><div class='add'>+      # sources A and B.  At this point, the API request will have found all the versions of Bar in source A,</div><div class='add'>+      # but will not have found any versions of Bar from source B, which is a problem if the requested version</div><div class='add'>+      # of Foo specifically depends on a version of Bar that is only found in source B. This ensures that for</div><div class='add'>+      # each spec we found, we add all possible versions from all sources to the index.</div><div class='add'>+      def double_check_for_index(idx, dependency_names)</div><div class='add'>+        pinned_names = source_map.pinned_spec_names</div><div class='add'>+</div><div class='add'>+        names = :names # do this so we only have to traverse to get dependency_names from the index once</div><div class='add'>+        unmet_dependency_names = lambda do</div><div class='add'>+          return names unless names == :names</div><div class='add'>+          new_names = sources.all_sources.map(&amp;:dependency_names_to_double_check)</div><div class='add'>+          return names = nil if new_names.compact!</div><div class='add'>+          names = new_names.flatten(1).concat(dependency_names)</div><div class='add'>+          names.uniq!</div><div class='add'>+          names -= pinned_names</div><div class='add'>+          names</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        sources.all_sources.each do |source|</div><div class='add'>+          source.double_check_for(unmet_dependency_names)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/source_list.rb b/lib/bundler/source_list.rb<br/>index ac2adacb3d..4419695b7f 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/source_list.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/source_list.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/source_list.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/source_list.rb</a></div><div class='hunk'>@@ -5,24 +5,49 @@ module Bundler</div><div class='ctx'>     attr_reader :path_sources,</div><div class='ctx'>       :git_sources,</div><div class='ctx'>       :plugin_sources,</div><div class='del'>-      :global_rubygems_source,</div><div class='add'>+      :global_path_source,</div><div class='ctx'>       :metadata_source</div><div class='ctx'> </div><div class='add'>+    def global_rubygems_source</div><div class='add'>+      @global_rubygems_source ||= rubygems_aggregate_class.new("allow_local" =&gt; true)</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def initialize</div><div class='ctx'>       @path_sources           = []</div><div class='ctx'>       @git_sources            = []</div><div class='ctx'>       @plugin_sources         = []</div><div class='ctx'>       @global_rubygems_source = nil</div><div class='del'>-      @rubygems_aggregate     = rubygems_aggregate_class.new</div><div class='add'>+      @global_path_source     = nil</div><div class='ctx'>       @rubygems_sources       = []</div><div class='ctx'>       @metadata_source        = Source::Metadata.new</div><div class='add'>+</div><div class='add'>+      @merged_gem_lockfile_sections = false</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def merged_gem_lockfile_sections?</div><div class='add'>+      @merged_gem_lockfile_sections</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def merged_gem_lockfile_sections!(replacement_source)</div><div class='add'>+      @merged_gem_lockfile_sections = true</div><div class='add'>+      @global_rubygems_source = replacement_source</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def aggregate_global_source?</div><div class='add'>+      global_rubygems_source.multiple_remotes?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def implicit_global_source?</div><div class='add'>+      global_rubygems_source.no_remotes?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def add_path_source(options = {})</div><div class='ctx'>       if options["gemspec"]</div><div class='ctx'>         add_source_to_list Source::Gemspec.new(options), path_sources</div><div class='ctx'>       else</div><div class='del'>-        add_source_to_list Source::Path.new(options), path_sources</div><div class='add'>+        path_source = add_source_to_list Source::Path.new(options), path_sources</div><div class='add'>+        @global_path_source ||= path_source if options["global"]</div><div class='add'>+        path_source</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -33,35 +58,31 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def add_rubygems_source(options = {})</div><div class='del'>-      add_source_to_list Source::Rubygems.new(options), @rubygems_sources</div><div class='add'>+      new_source = Source::Rubygems.new(options)</div><div class='add'>+      return @global_rubygems_source if @global_rubygems_source == new_source</div><div class='add'>+</div><div class='add'>+      add_source_to_list new_source, @rubygems_sources</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def add_plugin_source(source, options = {})</div><div class='ctx'>       add_source_to_list Plugin.source(source).new(options), @plugin_sources</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def global_rubygems_source=(uri)</div><div class='del'>-      if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?</div><div class='del'>-        @global_rubygems_source ||= rubygems_aggregate_class.new("remotes" =&gt; uri)</div><div class='del'>-      end</div><div class='del'>-      add_rubygems_remote(uri)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def add_rubygems_remote(uri)</div><div class='del'>-      if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?</div><div class='del'>-        return if Bundler.feature_flag.disable_multisource?</div><div class='del'>-        raise InvalidOption, "`lockfile_uses_separate_rubygems_sources` cannot be set without `disable_multisource` being set"</div><div class='del'>-      end</div><div class='del'>-      @rubygems_aggregate.add_remote(uri)</div><div class='del'>-      @rubygems_aggregate</div><div class='add'>+    def add_global_rubygems_remote(uri)</div><div class='add'>+      global_rubygems_source.add_remote(uri)</div><div class='add'>+      global_rubygems_source</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def default_source</div><div class='del'>-      global_rubygems_source || @rubygems_aggregate</div><div class='add'>+      global_path_source || global_rubygems_source</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def rubygems_sources</div><div class='del'>-      @rubygems_sources + [default_source]</div><div class='add'>+      non_global_rubygems_sources + [global_rubygems_source]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def non_global_rubygems_sources</div><div class='add'>+      @rubygems_sources</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def rubygems_remotes</div><div class='hunk'>@@ -72,39 +93,51 @@ module Bundler</div><div class='ctx'>       path_sources + git_sources + plugin_sources + rubygems_sources + [metadata_source]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def non_default_explicit_sources</div><div class='add'>+      all_sources - [default_source, metadata_source]</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def get(source)</div><div class='del'>-      source_list_for(source).find {|s| equal_source?(source, s) || equivalent_source?(source, s) }</div><div class='add'>+      source_list_for(source).find {|s| equivalent_source?(source, s) }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def lock_sources</div><div class='del'>-      if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?</div><div class='del'>-        [[default_source], @rubygems_sources, git_sources, path_sources, plugin_sources].map do |sources|</div><div class='del'>-          sources.sort_by(&amp;:to_s)</div><div class='del'>-        end.flatten(1)</div><div class='add'>+      lock_other_sources + lock_rubygems_sources</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def lock_other_sources</div><div class='add'>+      (path_sources + git_sources + plugin_sources).sort_by(&amp;:identifier)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def lock_rubygems_sources</div><div class='add'>+      if merged_gem_lockfile_sections?</div><div class='add'>+        [combine_rubygems_sources]</div><div class='ctx'>       else</div><div class='del'>-        lock_sources = (path_sources + git_sources + plugin_sources).sort_by(&amp;:to_s)</div><div class='del'>-        lock_sources &lt;&lt; combine_rubygems_sources</div><div class='add'>+        rubygems_sources.sort_by(&amp;:identifier)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Returns true if there are changes</div><div class='ctx'>     def replace_sources!(replacement_sources)</div><div class='del'>-      return true if replacement_sources.empty?</div><div class='add'>+      return false if replacement_sources.empty?</div><div class='ctx'> </div><div class='del'>-      [path_sources, git_sources, plugin_sources].each do |source_list|</div><div class='del'>-        source_list.map! do |source|</div><div class='del'>-          replacement_sources.find {|s| s == source } || source</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='add'>+      @rubygems_sources, @path_sources, @git_sources, @plugin_sources = map_sources(replacement_sources)</div><div class='add'>+      @global_rubygems_source = global_replacement_source(replacement_sources)</div><div class='add'>+</div><div class='add'>+      different_sources?(lock_sources, replacement_sources)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      replacement_rubygems = !Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? &amp;&amp;</div><div class='del'>-        replacement_sources.detect {|s| s.is_a?(Source::Rubygems) }</div><div class='del'>-      @rubygems_aggregate = replacement_rubygems if replacement_rubygems</div><div class='add'>+    # Returns true if there are changes</div><div class='add'>+    def expired_sources?(replacement_sources)</div><div class='add'>+      return false if replacement_sources.empty?</div><div class='add'>+</div><div class='add'>+      lock_sources = dup_with_replaced_sources(replacement_sources).lock_sources</div><div class='ctx'> </div><div class='del'>-      return true if !equal_sources?(lock_sources, replacement_sources) &amp;&amp; !equivalent_sources?(lock_sources, replacement_sources)</div><div class='del'>-      return true if replacement_rubygems &amp;&amp; rubygems_remotes.to_set != replacement_rubygems.remotes.to_set</div><div class='add'>+      different_sources?(lock_sources, replacement_sources)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      false</div><div class='add'>+    def local_only!</div><div class='add'>+      all_sources.each(&amp;:local_only!)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def cached!</div><div class='hunk'>@@ -115,11 +148,39 @@ module Bundler</div><div class='ctx'>       all_sources.each(&amp;:remote!)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def rubygems_primary_remotes</div><div class='del'>-      @rubygems_aggregate.remotes</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def dup_with_replaced_sources(replacement_sources)</div><div class='add'>+      new_source_list = dup</div><div class='add'>+      new_source_list.replace_sources!(replacement_sources)</div><div class='add'>+      new_source_list</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    def map_sources(replacement_sources)</div><div class='add'>+      rubygems, git, plugin = [@rubygems_sources, @git_sources, @plugin_sources].map do |sources|</div><div class='add'>+        sources.map do |source|</div><div class='add'>+          replacement_sources.find {|s| s == source } || source</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      path = @path_sources.map do |source|</div><div class='add'>+        replacement_sources.find {|s| s == (source.is_a?(Source::Gemspec) ? source.as_path_source : source) } || source</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      [rubygems, path, git, plugin]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def global_replacement_source(replacement_sources)</div><div class='add'>+      replacement_source = replacement_sources.find {|s| s == global_rubygems_source }</div><div class='add'>+      return global_rubygems_source unless replacement_source</div><div class='add'>+</div><div class='add'>+      replacement_source.local!</div><div class='add'>+      replacement_source</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def different_sources?(lock_sources, replacement_sources)</div><div class='add'>+      !equivalent_sources?(lock_sources, replacement_sources)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     def rubygems_aggregate_class</div><div class='ctx'>       Source::Rubygems</div><div class='hunk'>@@ -147,40 +208,20 @@ module Bundler</div><div class='ctx'>     def warn_on_git_protocol(source)</div><div class='ctx'>       return if Bundler.settings["git.allow_insecure"]</div><div class='ctx'> </div><div class='del'>-      if source.uri =~ /^git\:/</div><div class='add'>+      if /^git\:/.match?(source.uri)</div><div class='ctx'>         Bundler.ui.warn "The git source `#{source.uri}` uses the `git` protocol, " \</div><div class='ctx'>           "which transmits data without encryption. Disable this warning with " \</div><div class='del'>-          "`bundle config git.allow_insecure true`, or switch to the `https` " \</div><div class='add'>+          "`bundle config set --local git.allow_insecure true`, or switch to the `https` " \</div><div class='ctx'>           "protocol to keep your data secure."</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def equal_sources?(lock_sources, replacement_sources)</div><div class='del'>-      lock_sources.to_set == replacement_sources.to_set</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def equal_source?(source, other_source)</div><div class='del'>-      source == other_source</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def equivalent_source?(source, other_source)</div><div class='del'>-      return false unless Bundler.settings[:allow_deployment_source_credential_changes] &amp;&amp; source.is_a?(Source::Rubygems)</div><div class='del'>-</div><div class='del'>-      equivalent_rubygems_sources?([source], [other_source])</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def equivalent_sources?(lock_sources, replacement_sources)</div><div class='del'>-      return false unless Bundler.settings[:allow_deployment_source_credential_changes]</div><div class='del'>-</div><div class='del'>-      lock_rubygems_sources, lock_other_sources = lock_sources.partition {|s| s.is_a?(Source::Rubygems) }</div><div class='del'>-      replacement_rubygems_sources, replacement_other_sources = replacement_sources.partition {|s| s.is_a?(Source::Rubygems) }</div><div class='del'>-</div><div class='del'>-      equivalent_rubygems_sources?(lock_rubygems_sources, replacement_rubygems_sources) &amp;&amp; equal_sources?(lock_other_sources, replacement_other_sources)</div><div class='add'>+      lock_sources.sort_by(&amp;:identifier) == replacement_sources.sort_by(&amp;:identifier)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def equivalent_rubygems_sources?(lock_sources, replacement_sources)</div><div class='del'>-      actual_remotes = replacement_sources.map(&amp;:remotes).flatten.uniq</div><div class='del'>-      lock_sources.all? {|s| s.equivalent_remotes?(actual_remotes) }</div><div class='add'>+    def equivalent_source?(source, other_source)</div><div class='add'>+      source == other_source</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/source_map.rb b/lib/bundler/source_map.rb<br/>new file mode 100644<br/>index 0000000000..ca73e01f9d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/source_map.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/source_map.rb</a></div><div class='hunk'>@@ -0,0 +1,71 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  class SourceMap</div><div class='add'>+    attr_reader :sources, :dependencies, :locked_specs</div><div class='add'>+</div><div class='add'>+    def initialize(sources, dependencies, locked_specs)</div><div class='add'>+      @sources = sources</div><div class='add'>+      @dependencies = dependencies</div><div class='add'>+      @locked_specs = locked_specs</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def pinned_spec_names(skip = nil)</div><div class='add'>+      direct_requirements.reject {|_, source| source == skip }.keys</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def all_requirements</div><div class='add'>+      requirements = direct_requirements.dup</div><div class='add'>+</div><div class='add'>+      unmet_deps = sources.non_default_explicit_sources.map do |source|</div><div class='add'>+        (source.spec_names - pinned_spec_names).each do |indirect_dependency_name|</div><div class='add'>+          previous_source = requirements[indirect_dependency_name]</div><div class='add'>+          if previous_source.nil?</div><div class='add'>+            requirements[indirect_dependency_name] = source</div><div class='add'>+          else</div><div class='add'>+            no_ambiguous_sources = Bundler.feature_flag.bundler_3_mode?</div><div class='add'>+</div><div class='add'>+            msg = ["The gem '#{indirect_dependency_name}' was found in multiple relevant sources."]</div><div class='add'>+            msg.concat [previous_source, source].map {|s| "  * #{s}" }.sort</div><div class='add'>+            msg &lt;&lt; "You #{no_ambiguous_sources ? :must : :should} add this gem to the source block for the source you wish it to be installed from."</div><div class='add'>+            msg = msg.join("\n")</div><div class='add'>+</div><div class='add'>+            raise SecurityError, msg if no_ambiguous_sources</div><div class='add'>+            Bundler.ui.warn "Warning: #{msg}"</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        source.unmet_deps</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      sources.default_source.add_dependency_names(unmet_deps.flatten - requirements.keys)</div><div class='add'>+</div><div class='add'>+      requirements</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def direct_requirements</div><div class='add'>+      @direct_requirements ||= begin</div><div class='add'>+        requirements = {}</div><div class='add'>+        default = sources.default_source</div><div class='add'>+        dependencies.each do |dep|</div><div class='add'>+          dep_source = dep.source || default</div><div class='add'>+          dep_source.add_dependency_names(dep.name)</div><div class='add'>+          requirements[dep.name] = dep_source</div><div class='add'>+        end</div><div class='add'>+        requirements</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def locked_requirements</div><div class='add'>+      @locked_requirements ||= begin</div><div class='add'>+        requirements = {}</div><div class='add'>+        locked_specs.each do |locked_spec|</div><div class='add'>+          source = locked_spec.source</div><div class='add'>+          source.add_dependency_names(locked_spec.name)</div><div class='add'>+          requirements[locked_spec.name] = source</div><div class='add'>+        end</div><div class='add'>+        requirements</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/spec_set.rb b/lib/bundler/spec_set.rb<br/>index 5003b2cbec..21630e3a3e 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/spec_set.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/spec_set.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/spec_set.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/spec_set.rb</a></div><div class='hunk'>@@ -1,58 +1,55 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "tsort"</div><div class='del'>-require "forwardable"</div><div class='del'>-require "set"</div><div class='add'>+require_relative "vendored_tsort"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   class SpecSet</div><div class='del'>-    extend Forwardable</div><div class='del'>-    include TSort, Enumerable</div><div class='add'>+    include Enumerable</div><div class='add'>+    include TSort</div><div class='ctx'> </div><div class='del'>-    def_delegators :@specs, :&lt;&lt;, :length, :add, :remove, :size, :empty?</div><div class='del'>-    def_delegators :sorted, :each</div><div class='add'>+    attr_reader :incomplete_specs</div><div class='ctx'> </div><div class='del'>-    def initialize(specs)</div><div class='add'>+    def initialize(specs, incomplete_specs = [])</div><div class='ctx'>       @specs = specs</div><div class='add'>+      @incomplete_specs = incomplete_specs</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def for(dependencies, skip = [], check = false, match_current_platform = false, raise_on_missing = true)</div><div class='del'>-      handled = Set.new</div><div class='del'>-      deps = dependencies.dup</div><div class='add'>+    def for(dependencies, check = false, platforms = [nil])</div><div class='add'>+      handled = ["bundler"].product(platforms).map {|k| [k, true] }.to_h</div><div class='add'>+      deps = dependencies.product(platforms)</div><div class='ctx'>       specs = []</div><div class='del'>-      skip += ["bundler"]</div><div class='ctx'> </div><div class='ctx'>       loop do</div><div class='ctx'>         break unless dep = deps.shift</div><div class='del'>-        next if !handled.add?(dep) || skip.include?(dep.name)</div><div class='ctx'> </div><div class='del'>-        if spec = spec_for_dependency(dep, match_current_platform)</div><div class='del'>-          specs &lt;&lt; spec</div><div class='add'>+        name = dep[0].name</div><div class='add'>+        platform = dep[1]</div><div class='add'>+        incomplete = false</div><div class='ctx'> </div><div class='del'>-          spec.dependencies.each do |d|</div><div class='add'>+        key = [name, platform]</div><div class='add'>+        next if handled.key?(key)</div><div class='add'>+</div><div class='add'>+        handled[key] = true</div><div class='add'>+</div><div class='add'>+        specs_for_dep = specs_for_dependency(*dep)</div><div class='add'>+        if specs_for_dep.any?</div><div class='add'>+          specs.concat(specs_for_dep)</div><div class='add'>+</div><div class='add'>+          specs_for_dep.first.dependencies.each do |d|</div><div class='ctx'>             next if d.type == :development</div><div class='del'>-            d = DepProxy.new(d, dep.__platform) unless match_current_platform</div><div class='del'>-            deps &lt;&lt; d</div><div class='add'>+            incomplete = true if d.name != "bundler" &amp;&amp; lookup[d.name].empty?</div><div class='add'>+            deps &lt;&lt; [d, dep[1]]</div><div class='ctx'>           end</div><div class='del'>-        elsif check</div><div class='del'>-          return false</div><div class='del'>-        elsif raise_on_missing</div><div class='del'>-          others = lookup[dep.name] if match_current_platform</div><div class='del'>-          message = "Unable to find a spec satisfying #{dep} in the set. Perhaps the lockfile is corrupted?"</div><div class='del'>-          message += " Found #{others.join(", ")} that did not match the current platform." if others &amp;&amp; !others.empty?</div><div class='del'>-          raise GemNotFound, message</div><div class='add'>+        else</div><div class='add'>+          incomplete = true</div><div class='ctx'>         end</div><div class='del'>-      end</div><div class='ctx'> </div><div class='del'>-      if spec = lookup["bundler"].first</div><div class='del'>-        specs &lt;&lt; spec</div><div class='add'>+        if incomplete &amp;&amp; check</div><div class='add'>+          @incomplete_specs += lookup[name].any? ? lookup[name] : [LazySpecification.new(name, nil, nil)]</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      check ? true : SpecSet.new(specs)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def valid_for?(deps)</div><div class='del'>-      self.for(deps, [], true)</div><div class='add'>+      specs.uniq</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def [](key)</div><div class='hunk'>@@ -64,7 +61,12 @@ module Bundler</div><div class='ctx'>       @specs &lt;&lt; value</div><div class='ctx'>       @lookup = nil</div><div class='ctx'>       @sorted = nil</div><div class='del'>-      value</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def delete(specs)</div><div class='add'>+      specs.each {|spec| @specs.delete(spec) }</div><div class='add'>+      @lookup = nil</div><div class='add'>+      @sorted = nil</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def sort!</div><div class='hunk'>@@ -79,38 +81,39 @@ module Bundler</div><div class='ctx'>       lookup.dup</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def materialize(deps, missing_specs = nil)</div><div class='del'>-      materialized = self.for(deps, [], false, true, !missing_specs).to_a</div><div class='del'>-      deps = materialized.map(&amp;:name).uniq</div><div class='del'>-      materialized.map! do |s|</div><div class='del'>-        next s unless s.is_a?(LazySpecification)</div><div class='del'>-        s.source.dependency_names = deps if s.source.respond_to?(:dependency_names=)</div><div class='del'>-        spec = s.__materialize__</div><div class='del'>-        unless spec</div><div class='del'>-          unless missing_specs</div><div class='del'>-            raise GemNotFound, "Could not find #{s.full_name} in any of the sources"</div><div class='del'>-          end</div><div class='del'>-          missing_specs &lt;&lt; s</div><div class='del'>-        end</div><div class='del'>-        spec</div><div class='del'>-      end</div><div class='del'>-      SpecSet.new(missing_specs ? materialized.compact : materialized)</div><div class='add'>+    def materialize(deps)</div><div class='add'>+      materialized = self.for(deps, true)</div><div class='add'>+</div><div class='add'>+      SpecSet.new(materialized, incomplete_specs)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Materialize for all the specs in the spec set, regardless of what platform they're for</div><div class='ctx'>     # This is in contrast to how for does platform filtering (and specifically different from how `materialize` calls `for` only for the current platform)</div><div class='ctx'>     # @return [Array&lt;Gem::Specification&gt;]</div><div class='ctx'>     def materialized_for_all_platforms</div><div class='del'>-      names = @specs.map(&amp;:name).uniq</div><div class='ctx'>       @specs.map do |s|</div><div class='ctx'>         next s unless s.is_a?(LazySpecification)</div><div class='del'>-        s.source.dependency_names = names if s.source.respond_to?(:dependency_names=)</div><div class='del'>-        spec = s.__materialize__</div><div class='add'>+        s.source.remote!</div><div class='add'>+        spec = s.materialize_for_installation</div><div class='ctx'>         raise GemNotFound, "Could not find #{s.full_name} in any of the sources" unless spec</div><div class='ctx'>         spec</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def incomplete_ruby_specs?(deps)</div><div class='add'>+      return false if @specs.empty?</div><div class='add'>+</div><div class='add'>+      @incomplete_specs = []</div><div class='add'>+</div><div class='add'>+      self.for(deps, true, [Gem::Platform::RUBY])</div><div class='add'>+</div><div class='add'>+      @incomplete_specs.any?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def missing_specs</div><div class='add'>+      @specs.select {|s| s.is_a?(LazySpecification) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def merge(set)</div><div class='ctx'>       arr = sorted.dup</div><div class='ctx'>       set.each do |set_spec|</div><div class='hunk'>@@ -121,10 +124,20 @@ module Bundler</div><div class='ctx'>       SpecSet.new(arr)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def -(other)</div><div class='add'>+      SpecSet.new(to_a - other.to_a)</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def find_by_name_and_platform(name, platform)</div><div class='ctx'>       @specs.detect {|spec| spec.name == name &amp;&amp; spec.match_platform(platform) }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def delete_by_name(name)</div><div class='add'>+      @specs.reject! {|spec| spec.name == name }</div><div class='add'>+      @lookup = nil</div><div class='add'>+      @sorted = nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def what_required(spec)</div><div class='ctx'>       unless req = find {|s| s.dependencies.any? {|d| d.type == :runtime &amp;&amp; d.name == spec.name } }</div><div class='ctx'>         return [spec]</div><div class='hunk'>@@ -132,7 +145,27 @@ module Bundler</div><div class='ctx'>       what_required(req) &lt;&lt; spec</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    def &lt;&lt;(spec)</div><div class='add'>+      @specs &lt;&lt; spec</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def length</div><div class='add'>+      @specs.length</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def size</div><div class='add'>+      @specs.size</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def empty?</div><div class='add'>+      @specs.empty?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def each(&amp;b)</div><div class='add'>+      sorted.each(&amp;b)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def sorted</div><div class='ctx'>       rake = @specs.find {|s| s.name == "rake" }</div><div class='hunk'>@@ -142,22 +175,18 @@ module Bundler</div><div class='ctx'>         cgems = extract_circular_gems(error)</div><div class='ctx'>         raise CyclicDependencyError, "Your bundle requires gems that depend" \</div><div class='ctx'>           " on each other, creating an infinite loop. Please remove either" \</div><div class='del'>-          " gem '#{cgems[1]}' or gem '#{cgems[0]}' and try again."</div><div class='add'>+          " gem '#{cgems[0]}' or gem '#{cgems[1]}' and try again."</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def extract_circular_gems(error)</div><div class='del'>-      if Bundler.current_ruby.mri? &amp;&amp; Bundler.current_ruby.on_19?</div><div class='del'>-        error.message.scan(/(\w+) \([^)]/).flatten</div><div class='del'>-      else</div><div class='del'>-        error.message.scan(/@name="(.*?)"/).flatten</div><div class='del'>-      end</div><div class='add'>+      error.message.scan(/@name="(.*?)"/).flatten</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def lookup</div><div class='ctx'>       @lookup ||= begin</div><div class='ctx'>         lookup = Hash.new {|h, k| h[k] = [] }</div><div class='del'>-        Index.sort_specs(@specs).reverse_each do |s|</div><div class='add'>+        @specs.each do |s|</div><div class='ctx'>           lookup[s.name] &lt;&lt; s</div><div class='ctx'>         end</div><div class='ctx'>         lookup</div><div class='hunk'>@@ -169,17 +198,12 @@ module Bundler</div><div class='ctx'>       @specs.sort_by(&amp;:name).each {|s| yield s }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def spec_for_dependency(dep, match_current_platform)</div><div class='del'>-      specs_for_platforms = lookup[dep.name]</div><div class='del'>-      if match_current_platform</div><div class='del'>-        Bundler.rubygems.platforms.reverse_each do |pl|</div><div class='del'>-          match = GemHelpers.select_best_platform_match(specs_for_platforms, pl)</div><div class='del'>-          return match if match</div><div class='del'>-        end</div><div class='del'>-        nil</div><div class='del'>-      else</div><div class='del'>-        GemHelpers.select_best_platform_match(specs_for_platforms, dep.__platform)</div><div class='del'>-      end</div><div class='add'>+    def specs_for_dependency(dep, platform)</div><div class='add'>+      specs_for_name = lookup[dep.name]</div><div class='add'>+      target_platform = dep.force_ruby_platform ? Gem::Platform::RUBY : (platform || Bundler.local_platform)</div><div class='add'>+      matching_specs = GemHelpers.select_best_platform_match(specs_for_name, target_platform)</div><div class='add'>+      matching_specs.map!(&amp;:materialize_for_installation).compact! if platform.nil?</div><div class='add'>+      matching_specs</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def tsort_each_child(s)</div><div class='head'>diff --git a/lib/bundler/ssl_certs/certificate_manager.rb b/lib/bundler/ssl_certs/certificate_manager.rb<br/>deleted file mode 100644<br/>index 26fc38ec18..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/ssl_certs/certificate_manager.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ssl_certs/certificate_manager.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,66 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require "bundler/vendored_fileutils"</div><div class='del'>-require "net/https"</div><div class='del'>-require "openssl"</div><div class='del'>-</div><div class='del'>-module Bundler</div><div class='del'>-  module SSLCerts</div><div class='del'>-    class CertificateManager</div><div class='del'>-      attr_reader :bundler_cert_path, :bundler_certs, :rubygems_certs</div><div class='del'>-</div><div class='del'>-      def self.update_from!(rubygems_path)</div><div class='del'>-        new(rubygems_path).update!</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def initialize(rubygems_path = nil)</div><div class='del'>-        if rubygems_path</div><div class='del'>-          rubygems_cert_path = File.join(rubygems_path, "lib/rubygems/ssl_certs")</div><div class='del'>-          @rubygems_certs = certificates_in(rubygems_cert_path)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        @bundler_cert_path = File.expand_path("..", __FILE__)</div><div class='del'>-        @bundler_certs = certificates_in(bundler_cert_path)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def up_to_date?</div><div class='del'>-        rubygems_certs.all? do |rc|</div><div class='del'>-          bundler_certs.find do |bc|</div><div class='del'>-            File.basename(bc) == File.basename(rc) &amp;&amp; FileUtils.compare_file(bc, rc)</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def update!</div><div class='del'>-        return if up_to_date?</div><div class='del'>-</div><div class='del'>-        FileUtils.rm bundler_certs</div><div class='del'>-        FileUtils.cp rubygems_certs, bundler_cert_path</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def connect_to(host)</div><div class='del'>-        http = Net::HTTP.new(host, 443)</div><div class='del'>-        http.use_ssl = true</div><div class='del'>-        http.verify_mode = OpenSSL::SSL::VERIFY_PEER</div><div class='del'>-        http.cert_store = store</div><div class='del'>-        http.head("/")</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-    private</div><div class='del'>-</div><div class='del'>-      def certificates_in(path)</div><div class='del'>-        Dir[File.join(path, "**/*.pem")].sort</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def store</div><div class='del'>-        @store ||= begin</div><div class='del'>-          store = OpenSSL::X509::Store.new</div><div class='del'>-          bundler_certs.each do |cert|</div><div class='del'>-            store.add_file cert</div><div class='del'>-          end</div><div class='del'>-          store</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem b/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem<br/>deleted file mode 100644<br/>index 9e6810ab70..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,23 +0,0 @@</div><div class='del'>------BEGIN CERTIFICATE-----</div><div class='del'>-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs</div><div class='del'>-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3</div><div class='del'>-d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j</div><div class='del'>-ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL</div><div class='del'>-MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3</div><div class='del'>-LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug</div><div class='del'>-RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm</div><div class='del'>-+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW</div><div class='del'>-PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM</div><div class='del'>-xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB</div><div class='del'>-Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3</div><div class='del'>-hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg</div><div class='del'>-EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF</div><div class='del'>-MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA</div><div class='del'>-FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec</div><div class='del'>-nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z</div><div class='del'>-eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF</div><div class='del'>-hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2</div><div class='del'>-Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe</div><div class='del'>-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep</div><div class='del'>-+OkuE6N36B9K</div><div class='del'>------END CERTIFICATE-----</div><div class='head'>diff --git a/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem b/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem<br/>deleted file mode 100644<br/>index 20585f1c01..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,25 +0,0 @@</div><div class='del'>------BEGIN CERTIFICATE-----</div><div class='del'>-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU</div><div class='del'>-MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs</div><div class='del'>-IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290</div><div class='del'>-MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux</div><div class='del'>-FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h</div><div class='del'>-bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v</div><div class='del'>-dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt</div><div class='del'>-H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9</div><div class='del'>-uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX</div><div class='del'>-mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX</div><div class='del'>-a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN</div><div class='del'>-E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0</div><div class='del'>-WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD</div><div class='del'>-VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0</div><div class='del'>-Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU</div><div class='del'>-cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx</div><div class='del'>-IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN</div><div class='del'>-AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH</div><div class='del'>-YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5</div><div class='del'>-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC</div><div class='del'>-Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX</div><div class='del'>-c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a</div><div class='del'>-mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=</div><div class='del'>------END CERTIFICATE-----</div><div class='head'>diff --git a/lib/bundler/stub_specification.rb b/lib/bundler/stub_specification.rb<br/>index 0dd024024a..88a4257fa4 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/stub_specification.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/stub_specification.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/stub_specification.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/stub_specification.rb</a></div><div class='hunk'>@@ -1,7 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/remote_specification"</div><div class='del'>-</div><div class='ctx'> module Bundler</div><div class='ctx'>   class StubSpecification &lt; RemoteSpecification</div><div class='ctx'>     def self.from_stub(stub)</div><div class='hunk'>@@ -13,17 +11,13 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     attr_accessor :stub, :ignored</div><div class='ctx'> </div><div class='del'>-    # Pre 2.2.0 did not include extension_dir</div><div class='del'>-    # https://github.com/rubygems/rubygems/commit/9485ca2d101b82a946d6f327f4bdcdea6d4946ea</div><div class='del'>-    if Bundler.rubygems.provides?("&gt;= 2.2.0")</div><div class='del'>-      def source=(source)</div><div class='del'>-        super</div><div class='del'>-        # Stub has no concept of source, which means that extension_dir may be wrong</div><div class='del'>-        # This is the case for git-based gems. So, instead manually assign the extension dir</div><div class='del'>-        return unless source.respond_to?(:extension_dir_name)</div><div class='del'>-        path = File.join(stub.extensions_dir, source.extension_dir_name)</div><div class='del'>-        stub.extension_dir = File.expand_path(path)</div><div class='del'>-      end</div><div class='add'>+    def source=(source)</div><div class='add'>+      super</div><div class='add'>+      # Stub has no concept of source, which means that extension_dir may be wrong</div><div class='add'>+      # This is the case for git-based gems. So, instead manually assign the extension dir</div><div class='add'>+      return unless source.respond_to?(:extension_dir_name)</div><div class='add'>+      path = File.join(stub.extensions_dir, source.extension_dir_name)</div><div class='add'>+      stub.extension_dir = File.expand_path(path)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def to_yaml</div><div class='hunk'>@@ -32,11 +26,21 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     # @!group Stub Delegates</div><div class='ctx'> </div><div class='del'>-    if Bundler.rubygems.provides?("&gt;= 2.3")</div><div class='del'>-      # This is defined directly to avoid having to load every installed spec</div><div class='del'>-      def missing_extensions?</div><div class='del'>-        stub.missing_extensions?</div><div class='del'>-      end</div><div class='add'>+    def manually_installed?</div><div class='add'>+      # This is for manually installed gems which are gems that were fixed in place after a</div><div class='add'>+      # failed installation. Once the issue was resolved, the user then manually created</div><div class='add'>+      # the gem specification using the instructions provided by `gem help install`</div><div class='add'>+      installed_by_version == Gem::Version.new(0)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # This is defined directly to avoid having to loading the full spec</div><div class='add'>+    def missing_extensions?</div><div class='add'>+      return false if default_gem?</div><div class='add'>+      return false if extensions.empty?</div><div class='add'>+      return false if File.exist? gem_build_complete_path</div><div class='add'>+      return false if manually_installed?</div><div class='add'>+</div><div class='add'>+      true</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def activated</div><div class='hunk'>@@ -47,43 +51,47 @@ module Bundler</div><div class='ctx'>       stub.instance_variable_set(:@activated, activated)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def default_gem</div><div class='del'>-      stub.default_gem</div><div class='add'>+    def extensions</div><div class='add'>+      stub.extensions</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def gem_build_complete_path</div><div class='add'>+      File.join(extension_dir, "gem.build_complete")</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def default_gem?</div><div class='add'>+      stub.default_gem?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def full_gem_path</div><div class='del'>-      # deleted gems can have their stubs return nil, so in that case grab the</div><div class='del'>-      # expired path from the full spec</div><div class='del'>-      stub.full_gem_path || method_missing(:full_gem_path)</div><div class='add'>+      stub.full_gem_path</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    if Bundler.rubygems.provides?("&gt;= 2.2.0")</div><div class='del'>-      def full_require_paths</div><div class='del'>-        stub.full_require_paths</div><div class='del'>-      end</div><div class='add'>+    def full_gem_path=(path)</div><div class='add'>+      stub.full_gem_path = path</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      # This is what we do in bundler/rubygems_ext</div><div class='del'>-      # full_require_paths is always implemented in &gt;= 2.2.0</div><div class='del'>-      def load_paths</div><div class='del'>-        full_require_paths</div><div class='del'>-      end</div><div class='add'>+    def full_require_paths</div><div class='add'>+      stub.full_require_paths</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def load_paths</div><div class='add'>+      full_require_paths</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def loaded_from</div><div class='ctx'>       stub.loaded_from</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    if Bundler.rubygems.stubs_provide_full_functionality?</div><div class='del'>-      def matches_for_glob(glob)</div><div class='del'>-        stub.matches_for_glob(glob)</div><div class='del'>-      end</div><div class='add'>+    def matches_for_glob(glob)</div><div class='add'>+      stub.matches_for_glob(glob)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def raw_require_paths</div><div class='ctx'>       stub.raw_require_paths</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def _remote_specification</div><div class='ctx'>       @_remote_specification ||= begin</div><div class='head'>diff --git a/lib/bundler/templates/Executable b/lib/bundler/templates/Executable<br/>index 3e8d5b317a..9ff6f00898 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/Executable?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/Executable</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/Executable?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/Executable</a></div><div class='hunk'>@@ -8,14 +8,12 @@</div><div class='ctx'> # this file is here to facilitate running it.</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require "pathname"</div><div class='del'>-ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../&lt;%= relative_gemfile_path %&gt;",</div><div class='del'>-  Pathname.new(__FILE__).realpath)</div><div class='add'>+ENV["BUNDLE_GEMFILE"] ||= File.expand_path("&lt;%= relative_gemfile_path %&gt;", __dir__)</div><div class='ctx'> </div><div class='del'>-bundle_binstub = File.expand_path("../bundle", __FILE__)</div><div class='add'>+bundle_binstub = File.expand_path("bundle", __dir__)</div><div class='ctx'> </div><div class='ctx'> if File.file?(bundle_binstub)</div><div class='del'>-  if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/</div><div class='add'>+  if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")</div><div class='ctx'>     load(bundle_binstub)</div><div class='ctx'>   else</div><div class='ctx'>     abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.</div><div class='head'>diff --git a/lib/bundler/templates/Executable.bundler b/lib/bundler/templates/Executable.bundler<br/>index eeda90b584..e290fe91eb 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/Executable.bundler?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/Executable.bundler</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/Executable.bundler?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/Executable.bundler</a></div><div class='hunk'>@@ -11,7 +11,7 @@</div><div class='ctx'> require "rubygems"</div><div class='ctx'> </div><div class='ctx'> m = Module.new do</div><div class='del'>-    module_function</div><div class='add'>+  module_function</div><div class='ctx'> </div><div class='ctx'>   def invoked_as_script?</div><div class='ctx'>     File.expand_path($0) == File.expand_path(__FILE__)</div><div class='hunk'>@@ -31,7 +31,7 @@ m = Module.new do</div><div class='ctx'>         bundler_version = a</div><div class='ctx'>       end</div><div class='ctx'>       next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/</div><div class='del'>-      bundler_version = $1 || "&gt;= 0.a"</div><div class='add'>+      bundler_version = $1</div><div class='ctx'>       update_index = i</div><div class='ctx'>     end</div><div class='ctx'>     bundler_version</div><div class='hunk'>@@ -41,13 +41,13 @@ m = Module.new do</div><div class='ctx'>     gemfile = ENV["BUNDLE_GEMFILE"]</div><div class='ctx'>     return gemfile if gemfile &amp;&amp; !gemfile.empty?</div><div class='ctx'> </div><div class='del'>-    File.expand_path("../&lt;%= relative_gemfile_path %&gt;", __FILE__)</div><div class='add'>+    File.expand_path("&lt;%= relative_gemfile_path %&gt;", __dir__)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def lockfile</div><div class='ctx'>     lockfile =</div><div class='ctx'>       case File.basename(gemfile)</div><div class='del'>-      when "gems.rb" then gemfile.sub(/\.rb$/, gemfile)</div><div class='add'>+      when "gems.rb" then gemfile.sub(/\.rb$/, ".locked")</div><div class='ctx'>       else "#{gemfile}.lock"</div><div class='ctx'>       end</div><div class='ctx'>     File.expand_path(lockfile)</div><div class='hunk'>@@ -60,33 +60,37 @@ m = Module.new do</div><div class='ctx'>     Regexp.last_match(1)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def bundler_version</div><div class='del'>-    @bundler_version ||= begin</div><div class='del'>-      env_var_version || cli_arg_version ||</div><div class='del'>-        lockfile_version || "#{Gem::Requirement.default}.a"</div><div class='del'>-    end</div><div class='add'>+  def bundler_requirement</div><div class='add'>+    @bundler_requirement ||=</div><div class='add'>+      env_var_version ||</div><div class='add'>+      cli_arg_version ||</div><div class='add'>+      bundler_requirement_for(lockfile_version)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def bundler_requirement_for(version)</div><div class='add'>+    return "#{Gem::Requirement.default}.a" unless version</div><div class='add'>+</div><div class='add'>+    bundler_gem_version = Gem::Version.new(version)</div><div class='add'>+</div><div class='add'>+    bundler_gem_version.approximate_recommendation</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def load_bundler!</div><div class='ctx'>     ENV["BUNDLE_GEMFILE"] ||= gemfile</div><div class='ctx'> </div><div class='del'>-    # must dup string for RG &lt; 1.8 compatibility</div><div class='del'>-    activate_bundler(bundler_version.dup)</div><div class='add'>+    activate_bundler</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def activate_bundler(bundler_version)</div><div class='del'>-    if Gem::Version.correct?(bundler_version) &amp;&amp; Gem::Version.new(bundler_version).release &lt; Gem::Version.new("2.0")</div><div class='del'>-      bundler_version = "&lt; 2"</div><div class='del'>-    end</div><div class='add'>+  def activate_bundler</div><div class='ctx'>     gem_error = activation_error_handling do</div><div class='del'>-      gem "bundler", bundler_version</div><div class='add'>+      gem "bundler", bundler_requirement</div><div class='ctx'>     end</div><div class='ctx'>     return if gem_error.nil?</div><div class='ctx'>     require_error = activation_error_handling do</div><div class='ctx'>       require "bundler/version"</div><div class='ctx'>     end</div><div class='del'>-    return if require_error.nil? &amp;&amp; Gem::Requirement.new(bundler_version).satisfied_by?(Gem::Version.new(Bundler::VERSION))</div><div class='del'>-    warn "Activating bundler (#{bundler_version}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_version}'`"</div><div class='add'>+    return if require_error.nil? &amp;&amp; Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION))</div><div class='add'>+    warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`"</div><div class='ctx'>     exit 42</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/templates/Executable.standalone b/lib/bundler/templates/Executable.standalone<br/>index 4bf0753f44..3117a27e86 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/Executable.standalone?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/Executable.standalone</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/Executable.standalone?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/Executable.standalone</a></div><div class='hunk'>@@ -1,4 +1,6 @@</div><div class='ctx'> #!/usr/bin/env &lt;%= Bundler.settings[:shebang] || RbConfig::CONFIG["ruby_install_name"] %&gt;</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='ctx'> #</div><div class='ctx'> # This file was generated by Bundler.</div><div class='ctx'> #</div><div class='hunk'>@@ -6,9 +8,7 @@</div><div class='ctx'> # this file is here to facilitate running it.</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require "pathname"</div><div class='del'>-path = Pathname.new(__FILE__)</div><div class='del'>-$:.unshift File.expand_path "../&lt;%= standalone_path %&gt;", path.realpath</div><div class='add'>+$:.unshift File.expand_path "&lt;%= standalone_path %&gt;", __dir__</div><div class='ctx'> </div><div class='ctx'> require "bundler/setup"</div><div class='del'>-load File.expand_path "../&lt;%= executable_path %&gt;", path.realpath</div><div class='add'>+load File.expand_path "&lt;%= executable_path %&gt;", __dir__</div><div class='head'>diff --git a/lib/bundler/templates/Gemfile b/lib/bundler/templates/Gemfile<br/>index 1afd2cce67..d2403f18b2 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/Gemfile?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/Gemfile</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/Gemfile?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/Gemfile</a></div><div class='hunk'>@@ -2,6 +2,4 @@</div><div class='ctx'> </div><div class='ctx'> source "https://rubygems.org"</div><div class='ctx'> </div><div class='del'>-git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }</div><div class='del'>-</div><div class='ctx'> # gem "rails"</div><div class='head'>diff --git a/lib/bundler/templates/gems.rb b/lib/bundler/templates/gems.rb<br/>deleted file mode 100644<br/>index 547cd6e8d9..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/gems.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/gems.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,8 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-# A sample gems.rb</div><div class='del'>-source "https://rubygems.org"</div><div class='del'>-</div><div class='del'>-git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }</div><div class='del'>-</div><div class='del'>-# gem "rails"</div><div class='head'>diff --git a/lib/bundler/templates/newgem/CHANGELOG.md.tt b/lib/bundler/templates/newgem/CHANGELOG.md.tt<br/>new file mode 100644<br/>index 0000000000..c9ea96d453<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/CHANGELOG.md.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/CHANGELOG.md.tt</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+## [Unreleased]</div><div class='add'>+</div><div class='add'>+## [0.1.0] - &lt;%= Time.now.strftime('%F') %&gt;</div><div class='add'>+</div><div class='add'>+- Initial release</div><div class='head'>diff --git a/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt b/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt<br/>index a3833d29d7..175b821a62 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt</a></div><div class='hunk'>@@ -2,73 +2,83 @@</div><div class='ctx'> </div><div class='ctx'> ## Our Pledge</div><div class='ctx'> </div><div class='del'>-In the interest of fostering an open and welcoming environment, we as</div><div class='del'>-contributors and maintainers pledge to making participation in our project and</div><div class='del'>-our community a harassment-free experience for everyone, regardless of age, body</div><div class='del'>-size, disability, ethnicity, gender identity and expression, level of experience,</div><div class='del'>-nationality, personal appearance, race, religion, or sexual identity and</div><div class='del'>-orientation.</div><div class='add'>+We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.</div><div class='add'>+</div><div class='add'>+We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.</div><div class='ctx'> </div><div class='ctx'> ## Our Standards</div><div class='ctx'> </div><div class='del'>-Examples of behavior that contributes to creating a positive environment</div><div class='del'>-include:</div><div class='add'>+Examples of behavior that contributes to a positive environment for our community include:</div><div class='ctx'> </div><div class='del'>-* Using welcoming and inclusive language</div><div class='del'>-* Being respectful of differing viewpoints and experiences</div><div class='del'>-* Gracefully accepting constructive criticism</div><div class='del'>-* Focusing on what is best for the community</div><div class='del'>-* Showing empathy towards other community members</div><div class='add'>+* Demonstrating empathy and kindness toward other people</div><div class='add'>+* Being respectful of differing opinions, viewpoints, and experiences</div><div class='add'>+* Giving and gracefully accepting constructive feedback</div><div class='add'>+* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience</div><div class='add'>+* Focusing on what is best not just for us as individuals, but for the overall community</div><div class='ctx'> </div><div class='del'>-Examples of unacceptable behavior by participants include:</div><div class='add'>+Examples of unacceptable behavior include:</div><div class='ctx'> </div><div class='del'>-* The use of sexualized language or imagery and unwelcome sexual attention or</div><div class='del'>-advances</div><div class='del'>-* Trolling, insulting/derogatory comments, and personal or political attacks</div><div class='add'>+* The use of sexualized language or imagery, and sexual attention or</div><div class='add'>+  advances of any kind</div><div class='add'>+* Trolling, insulting or derogatory comments, and personal or political attacks</div><div class='ctx'> * Public or private harassment</div><div class='del'>-* Publishing others' private information, such as a physical or electronic</div><div class='del'>-  address, without explicit permission</div><div class='add'>+* Publishing others' private information, such as a physical or email</div><div class='add'>+  address, without their explicit permission</div><div class='ctx'> * Other conduct which could reasonably be considered inappropriate in a</div><div class='ctx'>   professional setting</div><div class='ctx'> </div><div class='del'>-## Our Responsibilities</div><div class='add'>+## Enforcement Responsibilities</div><div class='ctx'> </div><div class='del'>-Project maintainers are responsible for clarifying the standards of acceptable</div><div class='del'>-behavior and are expected to take appropriate and fair corrective action in</div><div class='del'>-response to any instances of unacceptable behavior.</div><div class='add'>+Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.</div><div class='ctx'> </div><div class='del'>-Project maintainers have the right and responsibility to remove, edit, or</div><div class='del'>-reject comments, commits, code, wiki edits, issues, and other contributions</div><div class='del'>-that are not aligned to this Code of Conduct, or to ban temporarily or</div><div class='del'>-permanently any contributor for other behaviors that they deem inappropriate,</div><div class='del'>-threatening, offensive, or harmful.</div><div class='add'>+Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.</div><div class='ctx'> </div><div class='ctx'> ## Scope</div><div class='ctx'> </div><div class='del'>-This Code of Conduct applies both within project spaces and in public spaces</div><div class='del'>-when an individual is representing the project or its community. Examples of</div><div class='del'>-representing a project or community include using an official project e-mail</div><div class='del'>-address, posting via an official social media account, or acting as an appointed</div><div class='del'>-representative at an online or offline event. Representation of a project may be</div><div class='del'>-further defined and clarified by project maintainers.</div><div class='add'>+This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.</div><div class='ctx'> </div><div class='ctx'> ## Enforcement</div><div class='ctx'> </div><div class='del'>-Instances of abusive, harassing, or otherwise unacceptable behavior may be</div><div class='del'>-reported by contacting the project team at &lt;%= config[:email] %&gt;. All</div><div class='del'>-complaints will be reviewed and investigated and will result in a response that</div><div class='del'>-is deemed necessary and appropriate to the circumstances. The project team is</div><div class='del'>-obligated to maintain confidentiality with regard to the reporter of an incident.</div><div class='del'>-Further details of specific enforcement policies may be posted separately.</div><div class='add'>+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at &lt;%= config[:email] %&gt;. All complaints will be reviewed and investigated promptly and fairly.</div><div class='add'>+</div><div class='add'>+All community leaders are obligated to respect the privacy and security of the reporter of any incident.</div><div class='add'>+</div><div class='add'>+## Enforcement Guidelines</div><div class='add'>+</div><div class='add'>+Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:</div><div class='add'>+</div><div class='add'>+### 1. Correction</div><div class='add'>+</div><div class='add'>+**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.</div><div class='add'>+</div><div class='add'>+**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.</div><div class='add'>+</div><div class='add'>+### 2. Warning</div><div class='add'>+</div><div class='add'>+**Community Impact**: A violation through a single incident or series of actions.</div><div class='ctx'> </div><div class='del'>-Project maintainers who do not follow or enforce the Code of Conduct in good</div><div class='del'>-faith may face temporary or permanent repercussions as determined by other</div><div class='del'>-members of the project's leadership.</div><div class='add'>+**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.</div><div class='add'>+</div><div class='add'>+### 3. Temporary Ban</div><div class='add'>+</div><div class='add'>+**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.</div><div class='add'>+</div><div class='add'>+**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.</div><div class='add'>+</div><div class='add'>+### 4. Permanent Ban</div><div class='add'>+</div><div class='add'>+**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior,  harassment of an individual, or aggression toward or disparagement of classes of individuals.</div><div class='add'>+</div><div class='add'>+**Consequence**: A permanent ban from any sort of public interaction within the community.</div><div class='ctx'> </div><div class='ctx'> ## Attribution</div><div class='ctx'> </div><div class='del'>-This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,</div><div class='del'>-available at [http://contributor-covenant.org/version/1/4][version]</div><div class='add'>+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0,</div><div class='add'>+available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.</div><div class='add'>+</div><div class='add'>+Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).</div><div class='add'>+</div><div class='add'>+[homepage]: https://www.contributor-covenant.org</div><div class='ctx'> </div><div class='del'>-[homepage]: http://contributor-covenant.org</div><div class='del'>-[version]: http://contributor-covenant.org/version/1/4/</div><div class='add'>+For answers to common questions about this code of conduct, see the FAQ at</div><div class='add'>+https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.</div><div class='head'>diff --git a/lib/bundler/templates/newgem/Cargo.toml.tt b/lib/bundler/templates/newgem/Cargo.toml.tt<br/>new file mode 100644<br/>index 0000000000..f5a460c9bb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/Cargo.toml.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/Cargo.toml.tt</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+# This Cargo.toml is here to let externals tools (IDEs, etc.) know that this is</div><div class='add'>+# a Rust project. Your extensions dependencies should be added to the Cargo.toml</div><div class='add'>+# in the ext/ directory.</div><div class='add'>+</div><div class='add'>+[workspace]</div><div class='add'>+members = ["./ext/&lt;%= config[:name] %&gt;"]</div><div class='add'>+resolver = "2"</div><div class='head'>diff --git a/lib/bundler/templates/newgem/Gemfile.tt b/lib/bundler/templates/newgem/Gemfile.tt<br/>index c114bd6665..a0d2ac2826 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/Gemfile.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/Gemfile.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/Gemfile.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/Gemfile.tt</a></div><div class='hunk'>@@ -1,6 +1,26 @@</div><div class='del'>-source "https://rubygems.org"</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }</div><div class='add'>+source "https://rubygems.org"</div><div class='ctx'> </div><div class='ctx'> # Specify your gem's dependencies in &lt;%= config[:name] %&gt;.gemspec</div><div class='ctx'> gemspec</div><div class='add'>+</div><div class='add'>+gem "rake", "~&gt; 13.0"</div><div class='add'>+&lt;%- if config[:ext] -%&gt;</div><div class='add'>+</div><div class='add'>+gem "rake-compiler"</div><div class='add'>+&lt;%- if config[:ext] == 'rust' -%&gt;</div><div class='add'>+gem "rb_sys", "~&gt; 0.9.63"</div><div class='add'>+&lt;%- end -%&gt;</div><div class='add'>+&lt;%- end -%&gt;</div><div class='add'>+&lt;%- if config[:test] -%&gt;</div><div class='add'>+</div><div class='add'>+gem "&lt;%= config[:test] %&gt;", "~&gt; &lt;%= config[:test_framework_version] %&gt;"</div><div class='add'>+&lt;%- end -%&gt;</div><div class='add'>+&lt;%- if config[:linter] == "rubocop" -%&gt;</div><div class='add'>+</div><div class='add'>+gem "rubocop", "~&gt; &lt;%= config[:linter_version] %&gt;"</div><div class='add'>+&lt;%- elsif config[:linter] == "standard" -%&gt;</div><div class='add'>+</div><div class='add'>+gem "standard", "~&gt; &lt;%= config[:linter_version] %&gt;"</div><div class='add'>+&lt;%- end -%&gt;</div><div class='head'>diff --git a/lib/bundler/templates/newgem/README.md.tt b/lib/bundler/templates/newgem/README.md.tt<br/>index 868a0afe67..20eaac8a62 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/README.md.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/README.md.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/README.md.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/README.md.tt</a></div><div class='hunk'>@@ -1,24 +1,20 @@</div><div class='ctx'> # &lt;%= config[:constant_name] %&gt;</div><div class='ctx'> </div><div class='del'>-Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/&lt;%= config[:namespaced_path] %&gt;`. To experiment with that code, run `bin/console` for an interactive prompt.</div><div class='add'>+TODO: Delete this and the text below, and describe your gem</div><div class='ctx'> </div><div class='del'>-TODO: Delete this and the text above, and describe your gem</div><div class='add'>+Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/&lt;%= config[:namespaced_path] %&gt;`. To experiment with that code, run `bin/console` for an interactive prompt.</div><div class='ctx'> </div><div class='ctx'> ## Installation</div><div class='ctx'> </div><div class='del'>-Add this line to your application's Gemfile:</div><div class='add'>+TODO: Replace `UPDATE_WITH_YOUR_GEM_NAME_PRIOR_TO_RELEASE_TO_RUBYGEMS_ORG` with your gem name right after releasing it to RubyGems.org. Please do not do it earlier due to security reasons. Alternatively, replace this section with instructions to install your gem from git if you don't plan to release to RubyGems.org.</div><div class='ctx'> </div><div class='del'>-```ruby</div><div class='del'>-gem '&lt;%= config[:name] %&gt;'</div><div class='del'>-```</div><div class='add'>+Install the gem and add to the application's Gemfile by executing:</div><div class='ctx'> </div><div class='del'>-And then execute:</div><div class='add'>+    $ bundle add UPDATE_WITH_YOUR_GEM_NAME_PRIOR_TO_RELEASE_TO_RUBYGEMS_ORG</div><div class='ctx'> </div><div class='del'>-    $ bundle</div><div class='add'>+If bundler is not being used to manage dependencies, install the gem by executing:</div><div class='ctx'> </div><div class='del'>-Or install it yourself as:</div><div class='del'>-</div><div class='del'>-    $ gem install &lt;%= config[:name] %&gt;</div><div class='add'>+    $ gem install UPDATE_WITH_YOUR_GEM_NAME_PRIOR_TO_RELEASE_TO_RUBYGEMS_ORG</div><div class='ctx'> </div><div class='ctx'> ## Usage</div><div class='ctx'> </div><div class='hunk'>@@ -28,20 +24,22 @@ TODO: Write usage instructions here</div><div class='ctx'> </div><div class='ctx'> After checking out the repo, run `bin/setup` to install dependencies.&lt;% if config[:test] %&gt; Then, run `rake &lt;%= config[:test].sub('mini', '').sub('rspec', 'spec') %&gt;` to run the tests.&lt;% end %&gt; You can also run `bin/console` for an interactive prompt that will allow you to experiment.&lt;% if config[:bin] %&gt; Run `bundle exec &lt;%= config[:name] %&gt;` to use the gem in this directory, ignoring other installed copies of this gem.&lt;% end %&gt;</div><div class='ctx'> </div><div class='del'>-To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).</div><div class='add'>+To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).</div><div class='add'>+&lt;% if config[:git] -%&gt;</div><div class='ctx'> </div><div class='ctx'> ## Contributing</div><div class='ctx'> </div><div class='del'>-Bug reports and pull requests are welcome on GitHub at https://github.com/&lt;%= config[:github_username] %&gt;/&lt;%= config[:name] %&gt;.&lt;% if config[:coc] %&gt; This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.&lt;% end %&gt;</div><div class='add'>+Bug reports and pull requests are welcome on GitHub at https://github.com/&lt;%= config[:github_username] %&gt;/&lt;%= config[:name] %&gt;.&lt;% if config[:coc] %&gt; This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/&lt;%= config[:github_username] %&gt;/&lt;%= config[:name] %&gt;/blob/&lt;%= config[:git_default_branch] %&gt;/CODE_OF_CONDUCT.md).&lt;% end %&gt;</div><div class='add'>+&lt;% end -%&gt;</div><div class='ctx'> &lt;% if config[:mit] -%&gt;</div><div class='ctx'> </div><div class='ctx'> ## License</div><div class='ctx'> </div><div class='ctx'> The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).</div><div class='ctx'> &lt;% end -%&gt;</div><div class='del'>-&lt;% if config[:coc] -%&gt;</div><div class='add'>+&lt;% if config[:git] &amp;&amp; config[:coc] -%&gt;</div><div class='ctx'> </div><div class='ctx'> ## Code of Conduct</div><div class='ctx'> </div><div class='del'>-Everyone interacting in the &lt;%= config[:constant_name] %&gt; projectâ€™s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/&lt;%= config[:github_username] %&gt;/&lt;%= config[:name] %&gt;/blob/master/CODE_OF_CONDUCT.md).</div><div class='add'>+Everyone interacting in the &lt;%= config[:constant_name] %&gt; project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/&lt;%= config[:github_username] %&gt;/&lt;%= config[:name] %&gt;/blob/&lt;%= config[:git_default_branch] %&gt;/CODE_OF_CONDUCT.md).</div><div class='ctx'> &lt;% end -%&gt;</div><div class='head'>diff --git a/lib/bundler/templates/newgem/Rakefile.tt b/lib/bundler/templates/newgem/Rakefile.tt<br/>index 099da6f3ec..b5a5c4e392 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/Rakefile.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/Rakefile.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/Rakefile.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/Rakefile.tt</a></div><div class='hunk'>@@ -1,5 +1,18 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='ctx'> require "bundler/gem_tasks"</div><div class='del'>-&lt;% if config[:test] == "minitest" -%&gt;</div><div class='add'>+&lt;% default_task_names = [config[:test_task]].compact -%&gt;</div><div class='add'>+&lt;% case config[:test] -%&gt;</div><div class='add'>+&lt;% when "minitest" -%&gt;</div><div class='add'>+require "rake/testtask"</div><div class='add'>+</div><div class='add'>+Rake::TestTask.new(:test) do |t|</div><div class='add'>+  t.libs &lt;&lt; "test"</div><div class='add'>+  t.libs &lt;&lt; "lib"</div><div class='add'>+  t.test_files = FileList["test/**/test_*.rb"]</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+&lt;% when "test-unit" -%&gt;</div><div class='ctx'> require "rake/testtask"</div><div class='ctx'> </div><div class='ctx'> Rake::TestTask.new(:test) do |t|</div><div class='hunk'>@@ -8,22 +21,47 @@ Rake::TestTask.new(:test) do |t|</div><div class='ctx'>   t.test_files = FileList["test/**/*_test.rb"]</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-&lt;% elsif config[:test] == "rspec" -%&gt;</div><div class='add'>+&lt;% when "rspec" -%&gt;</div><div class='ctx'> require "rspec/core/rake_task"</div><div class='ctx'> </div><div class='ctx'> RSpec::Core::RakeTask.new(:spec)</div><div class='ctx'> </div><div class='ctx'> &lt;% end -%&gt;</div><div class='add'>+&lt;% if config[:linter] == "rubocop" -%&gt;</div><div class='add'>+&lt;% default_task_names &lt;&lt; :rubocop -%&gt;</div><div class='add'>+require "rubocop/rake_task"</div><div class='add'>+</div><div class='add'>+RuboCop::RakeTask.new</div><div class='add'>+</div><div class='add'>+&lt;% elsif config[:linter] == "standard" -%&gt;</div><div class='add'>+&lt;% default_task_names &lt;&lt; :standard -%&gt;</div><div class='add'>+require "standard/rake"</div><div class='add'>+</div><div class='add'>+&lt;% end -%&gt;</div><div class='ctx'> &lt;% if config[:ext] -%&gt;</div><div class='add'>+&lt;% default_task_names.unshift(:compile) -%&gt;</div><div class='add'>+&lt;% default_task_names.unshift(:clobber) unless config[:ext] == 'rust' -%&gt;</div><div class='add'>+&lt;% if config[:ext] == 'rust' -%&gt;</div><div class='add'>+require "rb_sys/extensiontask"</div><div class='add'>+</div><div class='add'>+task build: :compile</div><div class='add'>+</div><div class='add'>+RbSys::ExtensionTask.new(&lt;%= config[:name].inspect %&gt;) do |ext|</div><div class='add'>+  ext.lib_dir = "lib/&lt;%= config[:namespaced_path] %&gt;"</div><div class='add'>+end</div><div class='add'>+&lt;% else -%&gt;</div><div class='ctx'> require "rake/extensiontask"</div><div class='ctx'> </div><div class='del'>-task :build =&gt; :compile</div><div class='add'>+task build: :compile</div><div class='ctx'> </div><div class='ctx'> Rake::ExtensionTask.new("&lt;%= config[:underscored_name] %&gt;") do |ext|</div><div class='ctx'>   ext.lib_dir = "lib/&lt;%= config[:namespaced_path] %&gt;"</div><div class='ctx'> end</div><div class='add'>+&lt;% end -%&gt;</div><div class='ctx'> </div><div class='del'>-task :default =&gt; [:clobber, :compile, :&lt;%= config[:test_task] %&gt;]</div><div class='add'>+&lt;% end -%&gt;</div><div class='add'>+&lt;% if default_task_names.size == 1 -%&gt;</div><div class='add'>+task default: &lt;%= default_task_names.first.inspect %&gt;</div><div class='ctx'> &lt;% else -%&gt;</div><div class='del'>-task :default =&gt; :&lt;%= config[:test_task] %&gt;</div><div class='add'>+task default: %i[&lt;%= default_task_names.join(" ") %&gt;]</div><div class='ctx'> &lt;% end -%&gt;</div><div class='head'>diff --git a/lib/bundler/templates/newgem/bin/console.tt b/lib/bundler/templates/newgem/bin/console.tt<br/>index a27f82430f..c91ee65f93 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/bin/console.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/bin/console.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/bin/console.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/bin/console.tt</a></div><div class='hunk'>@@ -1,4 +1,5 @@</div><div class='ctx'> #!/usr/bin/env ruby</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> </div><div class='ctx'> require "bundler/setup"</div><div class='ctx'> require "&lt;%= config[:namespaced_path] %&gt;"</div><div class='hunk'>@@ -6,9 +7,5 @@ require "&lt;%= config[:namespaced_path] %&gt;"</div><div class='ctx'> # You can add fixtures and/or initialization code here to make experimenting</div><div class='ctx'> # with your gem easier. You can also use a different console, if you like.</div><div class='ctx'> </div><div class='del'>-# (If you use this, don't forget to add pry to your Gemfile!)</div><div class='del'>-# require "pry"</div><div class='del'>-# Pry.start</div><div class='del'>-</div><div class='ctx'> require "irb"</div><div class='ctx'> IRB.start(__FILE__)</div><div class='head'>diff --git a/lib/bundler/templates/newgem/circleci/config.yml.tt b/lib/bundler/templates/newgem/circleci/config.yml.tt<br/>new file mode 100644<br/>index 0000000000..f40f029bf1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/circleci/config.yml.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/circleci/config.yml.tt</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+version: 2.1</div><div class='add'>+jobs:</div><div class='add'>+  build:</div><div class='add'>+    docker:</div><div class='add'>+      - image: ruby:&lt;%= RUBY_VERSION %&gt;</div><div class='add'>+&lt;%- if config[:ext] == 'rust' -%&gt;</div><div class='add'>+    environment:</div><div class='add'>+      RB_SYS_FORCE_INSTALL_RUST_TOOLCHAIN: 'true'</div><div class='add'>+&lt;%- end -%&gt;</div><div class='add'>+    steps:</div><div class='add'>+      - checkout</div><div class='add'>+&lt;%- if config[:ext] == 'rust' -%&gt;</div><div class='add'>+      - run:</div><div class='add'>+          name: Install Rust/Cargo dependencies</div><div class='add'>+          command: apt-get update &amp;&amp; apt-get install -y clang</div><div class='add'>+      - run:</div><div class='add'>+          name: Install a RubyGems version that can compile rust extensions</div><div class='add'>+          command: gem update --system '&lt;%= ::Gem.rubygems_version %&gt;'</div><div class='add'>+&lt;%- end -%&gt;</div><div class='add'>+      - run:</div><div class='add'>+          name: Run the default task</div><div class='add'>+          command: |</div><div class='add'>+            gem install bundler -v &lt;%= Bundler::VERSION %&gt;</div><div class='add'>+            bundle install</div><div class='add'>+            bundle exec rake</div><div class='head'>diff --git a/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt b/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt<br/>new file mode 100644<br/>index 0000000000..c64385486e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+[package]</div><div class='add'>+name = &lt;%= config[:name].inspect %&gt;</div><div class='add'>+version = "0.1.0"</div><div class='add'>+edition = "2021"</div><div class='add'>+authors = ["&lt;%= config[:author] %&gt; &lt;&lt;%= config[:email] %&gt;&gt;"]</div><div class='add'>+&lt;%- if config[:mit] -%&gt;</div><div class='add'>+license = "MIT"</div><div class='add'>+&lt;%- end -%&gt;</div><div class='add'>+publish = false</div><div class='add'>+</div><div class='add'>+[lib]</div><div class='add'>+crate-type = ["cdylib"]</div><div class='add'>+</div><div class='add'>+[dependencies]</div><div class='add'>+magnus = { version = "0.6" }</div><div class='head'>diff --git a/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt b/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt<br/>new file mode 100644<br/>index 0000000000..0a0c5a3d09<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require "mkmf"</div><div class='add'>+</div><div class='add'>+# Makes all symbols private by default to avoid unintended conflict</div><div class='add'>+# with other gems. To explicitly export symbols you can use RUBY_FUNC_EXPORTED</div><div class='add'>+# selectively, or entirely remove this flag.</div><div class='add'>+append_cflags("-fvisibility=hidden")</div><div class='add'>+</div><div class='add'>+create_makefile(&lt;%= config[:makefile_path].inspect %&gt;)</div><div class='head'>diff --git a/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt b/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt<br/>new file mode 100644<br/>index 0000000000..e24566a17a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require "mkmf"</div><div class='add'>+require "rb_sys/mkmf"</div><div class='add'>+</div><div class='add'>+create_rust_makefile(&lt;%= config[:makefile_path].inspect %&gt;)</div><div class='head'>diff --git a/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt b/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt<br/>deleted file mode 100644<br/>index 8cfc828f94..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,3 +0,0 @@</div><div class='del'>-require "mkmf"</div><div class='del'>-</div><div class='del'>-create_makefile(&lt;%= config[:makefile_path].inspect %&gt;)</div><div class='head'>diff --git a/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt b/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt<br/>index 8177c4d202..bcd5148569 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/ext/newgem/newgem.c.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/ext/newgem/newgem.c.tt</a></div><div class='hunk'>@@ -2,7 +2,7 @@</div><div class='ctx'> </div><div class='ctx'> VALUE rb_m&lt;%= config[:constant_array].join %&gt;;</div><div class='ctx'> </div><div class='del'>-void</div><div class='add'>+RUBY_FUNC_EXPORTED void</div><div class='ctx'> Init_&lt;%= config[:underscored_name] %&gt;(void)</div><div class='ctx'> {</div><div class='ctx'>   rb_m&lt;%= config[:constant_array].join %&gt; = rb_define_module(&lt;%= config[:constant_name].inspect %&gt;);</div><div class='head'>diff --git a/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt b/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt<br/>new file mode 100644<br/>index 0000000000..ba234529a3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+use magnus::{function, prelude::*, Error, Ruby};</div><div class='add'>+</div><div class='add'>+fn hello(subject: String) -&gt; String {</div><div class='add'>+    format!("Hello from Rust, {subject}!")</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#[magnus::init]</div><div class='add'>+fn init(ruby: &amp;Ruby) -&gt; Result&lt;(), Error&gt; {</div><div class='add'>+    let module = ruby.&lt;%= config[:constant_array].map {|c| "define_module(#{c.dump})?"}.join(".") %&gt;;</div><div class='add'>+    module.define_singleton_method("hello", function!(hello, 1))?;</div><div class='add'>+    Ok(())</div><div class='add'>+}</div><div class='head'>diff --git a/lib/bundler/templates/newgem/github/workflows/main.yml.tt b/lib/bundler/templates/newgem/github/workflows/main.yml.tt<br/>new file mode 100644<br/>index 0000000000..be58dd8156<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/github/workflows/main.yml.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/github/workflows/main.yml.tt</a></div><div class='hunk'>@@ -0,0 +1,37 @@</div><div class='add'>+name: Ruby</div><div class='add'>+</div><div class='add'>+on:</div><div class='add'>+  push:</div><div class='add'>+    branches:</div><div class='add'>+      - &lt;%= config[:git_default_branch] %&gt;</div><div class='add'>+</div><div class='add'>+  pull_request:</div><div class='add'>+</div><div class='add'>+jobs:</div><div class='add'>+  build:</div><div class='add'>+    runs-on: ubuntu-latest</div><div class='add'>+    name: Ruby ${{ matrix.ruby }}</div><div class='add'>+    strategy:</div><div class='add'>+      matrix:</div><div class='add'>+        ruby:</div><div class='add'>+          - '&lt;%= RUBY_VERSION %&gt;'</div><div class='add'>+</div><div class='add'>+    steps:</div><div class='add'>+    - uses: actions/checkout@v3</div><div class='add'>+&lt;%- if config[:ext] == 'rust' -%&gt;</div><div class='add'>+    - name: Set up Ruby &amp; Rust</div><div class='add'>+      uses: oxidize-rb/actions/setup-ruby-and-rust@v1</div><div class='add'>+      with:</div><div class='add'>+        ruby-version: ${{ matrix.ruby }}</div><div class='add'>+        bundler-cache: true</div><div class='add'>+        cargo-cache: true</div><div class='add'>+        rubygems: '&lt;%= ::Gem.rubygems_version %&gt;'</div><div class='add'>+&lt;%- else -%&gt;</div><div class='add'>+    - name: Set up Ruby</div><div class='add'>+      uses: ruby/setup-ruby@v1</div><div class='add'>+      with:</div><div class='add'>+        ruby-version: ${{ matrix.ruby }}</div><div class='add'>+        bundler-cache: true</div><div class='add'>+&lt;%- end -%&gt;</div><div class='add'>+    - name: Run the default task</div><div class='add'>+      run: bundle exec rake</div><div class='head'>diff --git a/lib/bundler/templates/newgem/gitignore.tt b/lib/bundler/templates/newgem/gitignore.tt<br/>index b1c9f9986c..9b40ba5a58 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/gitignore.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/gitignore.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/gitignore.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/gitignore.tt</a></div><div class='hunk'>@@ -12,6 +12,9 @@</div><div class='ctx'> *.o</div><div class='ctx'> *.a</div><div class='ctx'> mkmf.log</div><div class='add'>+&lt;%- if config[:ext] == 'rust' -%&gt;</div><div class='add'>+target/</div><div class='add'>+&lt;%- end -%&gt;</div><div class='ctx'> &lt;%- end -%&gt;</div><div class='ctx'> &lt;%- if config[:test] == "rspec" -%&gt;</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/templates/newgem/gitlab-ci.yml.tt b/lib/bundler/templates/newgem/gitlab-ci.yml.tt<br/>new file mode 100644<br/>index 0000000000..d2e1f33736<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/gitlab-ci.yml.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/gitlab-ci.yml.tt</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+default:</div><div class='add'>+  image: ruby:&lt;%= RUBY_VERSION %&gt;</div><div class='add'>+</div><div class='add'>+  before_script:</div><div class='add'>+&lt;%- if config[:ext] == 'rust' -%&gt;</div><div class='add'>+    - apt-get update &amp;&amp; apt-get install -y clang</div><div class='add'>+    - gem update --system '&lt;%= ::Gem.rubygems_version %&gt;'</div><div class='add'>+&lt;%- end -%&gt;</div><div class='add'>+    - gem install bundler -v &lt;%= Bundler::VERSION %&gt;</div><div class='add'>+    - bundle install</div><div class='add'>+</div><div class='add'>+example_job:</div><div class='add'>+&lt;%- if config[:ext] == 'rust' -%&gt;</div><div class='add'>+  variables:</div><div class='add'>+    RB_SYS_FORCE_INSTALL_RUST_TOOLCHAIN: 'true'</div><div class='add'>+&lt;%- end -%&gt;</div><div class='add'>+  script:</div><div class='add'>+    - bundle exec rake</div><div class='head'>diff --git a/lib/bundler/templates/newgem/lib/newgem.rb.tt b/lib/bundler/templates/newgem/lib/newgem.rb.tt<br/>index fae6337c3e..caf6e32f4a 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/lib/newgem.rb.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/lib/newgem.rb.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/lib/newgem.rb.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/lib/newgem.rb.tt</a></div><div class='hunk'>@@ -1,6 +1,8 @@</div><div class='del'>-require "&lt;%= config[:namespaced_path] %&gt;/version"</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "&lt;%= File.basename(config[:namespaced_path]) %&gt;/version"</div><div class='ctx'> &lt;%- if config[:ext] -%&gt;</div><div class='del'>-require "&lt;%= config[:namespaced_path] %&gt;/&lt;%= config[:underscored_name] %&gt;"</div><div class='add'>+require_relative "&lt;%= File.basename(config[:namespaced_path]) %&gt;/&lt;%= config[:underscored_name] %&gt;"</div><div class='ctx'> &lt;%- end -%&gt;</div><div class='ctx'> </div><div class='ctx'> &lt;%- config[:constant_array].each_with_index do |c, i| -%&gt;</div><div class='head'>diff --git a/lib/bundler/templates/newgem/lib/newgem/version.rb.tt b/lib/bundler/templates/newgem/lib/newgem/version.rb.tt<br/>index 389daf5048..b5cd4cb232 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/lib/newgem/version.rb.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/lib/newgem/version.rb.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/lib/newgem/version.rb.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/lib/newgem/version.rb.tt</a></div><div class='hunk'>@@ -1,3 +1,5 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='ctx'> &lt;%- config[:constant_array].each_with_index do |c, i| -%&gt;</div><div class='ctx'> &lt;%= "  " * i %&gt;module &lt;%= c %&gt;</div><div class='ctx'> &lt;%- end -%&gt;</div><div class='head'>diff --git a/lib/bundler/templates/newgem/newgem.gemspec.tt b/lib/bundler/templates/newgem/newgem.gemspec.tt<br/>index faf6f7bbc5..bb76680379 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/newgem.gemspec.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/newgem.gemspec.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/newgem.gemspec.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/newgem.gemspec.tt</a></div><div class='hunk'>@@ -1,55 +1,51 @@</div><div class='del'>-&lt;%- if RUBY_VERSION &lt; "2.0.0" -%&gt;</div><div class='del'>-# coding: utf-8</div><div class='del'>-&lt;%- end -%&gt;</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-lib = File.expand_path("../lib", __FILE__)</div><div class='del'>-$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)</div><div class='del'>-require "&lt;%= config[:namespaced_path] %&gt;/version"</div><div class='add'>+require_relative "lib/&lt;%=config[:namespaced_path]%&gt;/version"</div><div class='ctx'> </div><div class='ctx'> Gem::Specification.new do |spec|</div><div class='del'>-  spec.name          = &lt;%= config[:name].inspect %&gt;</div><div class='del'>-  spec.version       = &lt;%= config[:constant_name] %&gt;::VERSION</div><div class='del'>-  spec.authors       = [&lt;%= config[:author].inspect %&gt;]</div><div class='del'>-  spec.email         = [&lt;%= config[:email].inspect %&gt;]</div><div class='del'>-</div><div class='del'>-  spec.summary       = %q{TODO: Write a short summary, because RubyGems requires one.}</div><div class='del'>-  spec.description   = %q{TODO: Write a longer description or delete this line.}</div><div class='del'>-  spec.homepage      = "TODO: Put your gem's website or public repo URL here."</div><div class='add'>+  spec.name = &lt;%= config[:name].inspect %&gt;</div><div class='add'>+  spec.version = &lt;%= config[:constant_name] %&gt;::VERSION</div><div class='add'>+  spec.authors = [&lt;%= config[:author].inspect %&gt;]</div><div class='add'>+  spec.email = [&lt;%= config[:email].inspect %&gt;]</div><div class='add'>+</div><div class='add'>+  spec.summary = "TODO: Write a short summary, because RubyGems requires one."</div><div class='add'>+  spec.description = "TODO: Write a longer description or delete this line."</div><div class='add'>+  spec.homepage = "TODO: Put your gem's website or public repo URL here."</div><div class='ctx'> &lt;%- if config[:mit] -%&gt;</div><div class='del'>-  spec.license       = "MIT"</div><div class='add'>+  spec.license = "MIT"</div><div class='add'>+&lt;%- end -%&gt;</div><div class='add'>+  spec.required_ruby_version = "&gt;= &lt;%= config[:required_ruby_version] %&gt;"</div><div class='add'>+&lt;%- if config[:ext] == 'rust' -%&gt;</div><div class='add'>+  spec.required_rubygems_version = "&gt;= &lt;%= config[:rust_builder_required_rubygems_version] %&gt;"</div><div class='ctx'> &lt;%- end -%&gt;</div><div class='ctx'> </div><div class='del'>-  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'</div><div class='del'>-  # to allow pushing to a single host or delete this section to allow pushing to any host.</div><div class='del'>-  if spec.respond_to?(:metadata)</div><div class='del'>-    spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"</div><div class='del'>-</div><div class='del'>-    spec.metadata["homepage_uri"] = spec.homepage</div><div class='del'>-    spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."</div><div class='del'>-    spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."</div><div class='del'>-  else</div><div class='del'>-    raise "RubyGems 2.0 or newer is required to protect against " \</div><div class='del'>-      "public gem pushes."</div><div class='del'>-  end</div><div class='add'>+  spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."</div><div class='add'>+  spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."</div><div class='ctx'> </div><div class='ctx'>   # Specify which files should be added to the gem when it is released.</div><div class='ctx'>   # The `git ls-files -z` loads the files in the RubyGem that have been added into git.</div><div class='del'>-  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='del'>-    `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  spec.files = Dir.chdir(__dir__) do</div><div class='add'>+    `git ls-files -z`.split("\x0").reject do |f|</div><div class='add'>+      (File.expand_path(f) == __FILE__) ||</div><div class='add'>+        f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor Gemfile])</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='del'>-  spec.bindir        = "exe"</div><div class='del'>-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='add'>+  spec.bindir = "exe"</div><div class='add'>+  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }</div><div class='ctx'>   spec.require_paths = ["lib"]</div><div class='del'>-&lt;%- if config[:ext] -%&gt;</div><div class='del'>-  spec.extensions    = ["ext/&lt;%= config[:underscored_name] %&gt;/extconf.rb"]</div><div class='add'>+&lt;%- if config[:ext] == 'c' -%&gt;</div><div class='add'>+  spec.extensions = ["ext/&lt;%= config[:underscored_name] %&gt;/extconf.rb"]</div><div class='ctx'> &lt;%- end -%&gt;</div><div class='del'>-</div><div class='del'>-  spec.add_development_dependency "bundler", "~&gt; &lt;%= config[:bundler_version] %&gt;"</div><div class='del'>-  spec.add_development_dependency "rake", "~&gt; 10.0"</div><div class='del'>-&lt;%- if config[:ext] -%&gt;</div><div class='del'>-  spec.add_development_dependency "rake-compiler"</div><div class='del'>-&lt;%- end -%&gt;</div><div class='del'>-&lt;%- if config[:test] -%&gt;</div><div class='del'>-  spec.add_development_dependency "&lt;%= config[:test] %&gt;", "~&gt; &lt;%= config[:test_framework_version] %&gt;"</div><div class='add'>+&lt;%- if config[:ext] == 'rust' -%&gt;</div><div class='add'>+  spec.extensions = ["ext/&lt;%= config[:underscored_name] %&gt;/Cargo.toml"]</div><div class='ctx'> &lt;%- end -%&gt;</div><div class='add'>+</div><div class='add'>+  # Uncomment to register a new dependency of your gem</div><div class='add'>+  # spec.add_dependency "example-gem", "~&gt; 1.0"</div><div class='add'>+</div><div class='add'>+  # For more information and examples about making a new gem, check out our</div><div class='add'>+  # guide at: https://bundler.io/guides/creating_gem.html</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/templates/newgem/rubocop.yml.tt b/lib/bundler/templates/newgem/rubocop.yml.tt<br/>new file mode 100644<br/>index 0000000000..9ecec78807<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/rubocop.yml.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/rubocop.yml.tt</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+AllCops:</div><div class='add'>+  TargetRubyVersion: &lt;%= ::Gem::Version.new(config[:required_ruby_version]).segments[0..1].join(".") %&gt;</div><div class='add'>+</div><div class='add'>+Style/StringLiterals:</div><div class='add'>+  Enabled: true</div><div class='add'>+  EnforcedStyle: double_quotes</div><div class='add'>+</div><div class='add'>+Style/StringLiteralsInInterpolation:</div><div class='add'>+  Enabled: true</div><div class='add'>+  EnforcedStyle: double_quotes</div><div class='add'>+</div><div class='add'>+Layout/LineLength:</div><div class='add'>+  Max: 120</div><div class='head'>diff --git a/lib/bundler/templates/newgem/sig/newgem.rbs.tt b/lib/bundler/templates/newgem/sig/newgem.rbs.tt<br/>new file mode 100644<br/>index 0000000000..eb7b380bbb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/sig/newgem.rbs.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/sig/newgem.rbs.tt</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+&lt;%- config[:constant_array].each_with_index do |c, i| -%&gt;</div><div class='add'>+&lt;%= "  " * i %&gt;module &lt;%= c %&gt;</div><div class='add'>+&lt;%- end -%&gt;</div><div class='add'>+&lt;%= "  " * config[:constant_array].size %&gt;VERSION: String</div><div class='add'>+&lt;%= "  " * config[:constant_array].size %&gt;# See the writing guide of rbs: https://github.com/ruby/rbs#guides</div><div class='add'>+&lt;%- (config[:constant_array].size-1).downto(0) do |i| -%&gt;</div><div class='add'>+&lt;%= "  " * i %&gt;end</div><div class='add'>+&lt;%- end -%&gt;</div><div class='head'>diff --git a/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt b/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt<br/>index c63b487830..82cada988c 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/spec/newgem_spec.rb.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/spec/newgem_spec.rb.tt</a></div><div class='hunk'>@@ -1,3 +1,5 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='ctx'> RSpec.describe &lt;%= config[:constant_name] %&gt; do</div><div class='ctx'>   it "has a version number" do</div><div class='ctx'>     expect(&lt;%= config[:constant_name] %&gt;::VERSION).not_to be nil</div><div class='head'>diff --git a/lib/bundler/templates/newgem/spec/spec_helper.rb.tt b/lib/bundler/templates/newgem/spec/spec_helper.rb.tt<br/>index 805cf57e01..70c6d1fcde 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/spec/spec_helper.rb.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/spec/spec_helper.rb.tt</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/spec/spec_helper.rb.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/spec/spec_helper.rb.tt</a></div><div class='hunk'>@@ -1,4 +1,5 @@</div><div class='del'>-require "bundler/setup"</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='ctx'> require "&lt;%= config[:namespaced_path] %&gt;"</div><div class='ctx'> </div><div class='ctx'> RSpec.configure do |config|</div><div class='head'>diff --git a/lib/bundler/templates/newgem/standard.yml.tt b/lib/bundler/templates/newgem/standard.yml.tt<br/>new file mode 100644<br/>index 0000000000..934b0b2c37<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/standard.yml.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/standard.yml.tt</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+# For available configuration options, see:</div><div class='add'>+#   https://github.com/testdouble/standard</div><div class='add'>+ruby_version: &lt;%= ::Gem::Version.new(config[:required_ruby_version]).segments[0..1].join(".") %&gt;</div><div class='head'>diff --git a/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt b/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt<br/>new file mode 100644<br/>index 0000000000..e05c387bfa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+$LOAD_PATH.unshift File.expand_path("../lib", __dir__)</div><div class='add'>+require "&lt;%= config[:namespaced_path] %&gt;"</div><div class='add'>+</div><div class='add'>+require "minitest/autorun"</div><div class='head'>diff --git a/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt b/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt<br/>new file mode 100644<br/>index 0000000000..4b35a63071<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require "test_helper"</div><div class='add'>+</div><div class='add'>+class &lt;%= config[:minitest_constant_name] %&gt; &lt; Minitest::Test</div><div class='add'>+  def test_that_it_has_a_version_number</div><div class='add'>+    refute_nil ::&lt;%= config[:constant_name] %&gt;::VERSION</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def test_it_does_something_useful</div><div class='add'>+    assert false</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/templates/newgem/test/newgem_test.rb.tt b/lib/bundler/templates/newgem/test/newgem_test.rb.tt<br/>deleted file mode 100644<br/>index f2af9f90e0..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/test/newgem_test.rb.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/test/newgem_test.rb.tt</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,11 +0,0 @@</div><div class='del'>-require "test_helper"</div><div class='del'>-</div><div class='del'>-class &lt;%= config[:constant_name] %&gt;Test &lt; Minitest::Test</div><div class='del'>-  def test_that_it_has_a_version_number</div><div class='del'>-    refute_nil ::&lt;%= config[:constant_name] %&gt;::VERSION</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def test_it_does_something_useful</div><div class='del'>-    assert false</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt b/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt<br/>new file mode 100644<br/>index 0000000000..5c61094e62<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt</a></div><div class='hunk'>@@ -0,0 +1,15 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require "test_helper"</div><div class='add'>+</div><div class='add'>+class &lt;%= config[:constant_name] %&gt;Test &lt; Test::Unit::TestCase</div><div class='add'>+  test "VERSION" do</div><div class='add'>+    assert do</div><div class='add'>+      ::&lt;%= config[:constant_name] %&gt;.const_defined?(:VERSION)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  test "something useful" do</div><div class='add'>+    assert_equal("expected", "actual")</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt b/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt<br/>new file mode 100644<br/>index 0000000000..6f633c6039<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+$LOAD_PATH.unshift File.expand_path("../lib", __dir__)</div><div class='add'>+require "&lt;%= config[:namespaced_path] %&gt;"</div><div class='add'>+</div><div class='add'>+require "test-unit"</div><div class='head'>diff --git a/lib/bundler/templates/newgem/test/test_helper.rb.tt b/lib/bundler/templates/newgem/test/test_helper.rb.tt<br/>deleted file mode 100644<br/>index 725e3e4647..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/test/test_helper.rb.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/test/test_helper.rb.tt</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)</div><div class='del'>-require "&lt;%= config[:namespaced_path] %&gt;"</div><div class='del'>-</div><div class='del'>-require "minitest/autorun"</div><div class='head'>diff --git a/lib/bundler/templates/newgem/travis.yml.tt b/lib/bundler/templates/newgem/travis.yml.tt<br/>deleted file mode 100644<br/>index 7a3381a889..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/templates/newgem/travis.yml.tt?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/templates/newgem/travis.yml.tt</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,7 +0,0 @@</div><div class='del'>----</div><div class='del'>-sudo: false</div><div class='del'>-language: ruby</div><div class='del'>-cache: bundler</div><div class='del'>-rvm:</div><div class='del'>-  - &lt;%= RUBY_VERSION %&gt;</div><div class='del'>-before_install: gem install bundler -v &lt;%= Bundler::VERSION %&gt;</div><div class='head'>diff --git a/lib/bundler/ui.rb b/lib/bundler/ui.rb<br/>index 8138b30d38..7a4fa03669 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/ui.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ui.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/ui.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/ui.rb</a></div><div class='hunk'>@@ -2,8 +2,8 @@</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   module UI</div><div class='del'>-    autoload :RGProxy, "bundler/ui/rg_proxy"</div><div class='del'>-    autoload :Shell,   "bundler/ui/shell"</div><div class='del'>-    autoload :Silent,  "bundler/ui/silent"</div><div class='add'>+    autoload :RGProxy, File.expand_path("ui/rg_proxy", __dir__)</div><div class='add'>+    autoload :Shell,   File.expand_path("ui/shell", __dir__)</div><div class='add'>+    autoload :Silent,  File.expand_path("ui/silent", __dir__)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/ui/rg_proxy.rb b/lib/bundler/ui/rg_proxy.rb<br/>index e2f98481db..b17ca65f53 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/ui/rg_proxy.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ui/rg_proxy.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/ui/rg_proxy.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/ui/rg_proxy.rb</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/ui"</div><div class='add'>+require_relative "../ui"</div><div class='ctx'> require "rubygems/user_interaction"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='hunk'>@@ -12,7 +12,7 @@ module Bundler</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def say(message)</div><div class='del'>-        @ui &amp;&amp; @ui.debug(message)</div><div class='add'>+        @ui&amp;.debug(message)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='head'>diff --git a/lib/bundler/ui/shell.rb b/lib/bundler/ui/shell.rb<br/>index 16e3d15713..4139585c47 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/ui/shell.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ui/shell.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/ui/shell.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/ui/shell.rb</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/vendored_thor"</div><div class='add'>+require_relative "../vendored_thor"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   module UI</div><div class='hunk'>@@ -10,9 +10,7 @@ module Bundler</div><div class='ctx'>       attr_writer :shell</div><div class='ctx'> </div><div class='ctx'>       def initialize(options = {})</div><div class='del'>-        if options["no-color"] || !$stdout.tty?</div><div class='del'>-          Thor::Base.shell = Thor::Shell::Basic</div><div class='del'>-        end</div><div class='add'>+        Thor::Base.shell = options["no-color"] ? Thor::Shell::Basic : nil</div><div class='ctx'>         @shell = Thor::Base.shell.new</div><div class='ctx'>         @level = ENV["DEBUG"] ? "debug" : "info"</div><div class='ctx'>         @warning_history = []</div><div class='hunk'>@@ -22,31 +20,52 @@ module Bundler</div><div class='ctx'>         @shell.set_color(string, *color)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def info(msg, newline = nil)</div><div class='del'>-        tell_me(msg, nil, newline) if level("info")</div><div class='add'>+      def info(msg = nil, newline = nil)</div><div class='add'>+        return unless info?</div><div class='add'>+</div><div class='add'>+        tell_me(msg || yield, nil, newline)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def confirm(msg, newline = nil)</div><div class='del'>-        tell_me(msg, :green, newline) if level("confirm")</div><div class='add'>+      def confirm(msg = nil, newline = nil)</div><div class='add'>+        return unless confirm?</div><div class='add'>+</div><div class='add'>+        tell_me(msg || yield, :green, newline)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def warn(msg, newline = nil)</div><div class='del'>-        return unless level("warn")</div><div class='add'>+      def warn(msg = nil, newline = nil, color = :yellow)</div><div class='add'>+        return unless warn?</div><div class='ctx'>         return if @warning_history.include? msg</div><div class='ctx'>         @warning_history &lt;&lt; msg</div><div class='ctx'> </div><div class='del'>-        return tell_err(msg, :yellow, newline) if Bundler.feature_flag.error_on_stderr?</div><div class='del'>-        tell_me(msg, :yellow, newline)</div><div class='add'>+        tell_err(msg || yield, color, newline)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def error(msg = nil, newline = nil, color = :red)</div><div class='add'>+        return unless error?</div><div class='add'>+</div><div class='add'>+        tell_err(msg || yield, color, newline)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def debug(msg = nil, newline = nil)</div><div class='add'>+        return unless debug?</div><div class='add'>+</div><div class='add'>+        tell_me(msg || yield, nil, newline)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def info?</div><div class='add'>+        level("info")</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def confirm?</div><div class='add'>+        level("confirm")</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def error(msg, newline = nil)</div><div class='del'>-        return unless level("error")</div><div class='del'>-        return tell_err(msg, :red, newline) if Bundler.feature_flag.error_on_stderr?</div><div class='del'>-        tell_me(msg, :red, newline)</div><div class='add'>+      def warn?</div><div class='add'>+        level("warn")</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def debug(msg, newline = nil)</div><div class='del'>-        tell_me(msg, nil, newline) if debug?</div><div class='add'>+      def error?</div><div class='add'>+        level("error")</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def debug?</div><div class='hunk'>@@ -85,7 +104,7 @@ module Bundler</div><div class='ctx'>       def trace(e, newline = nil, force = false)</div><div class='ctx'>         return unless debug? || force</div><div class='ctx'>         msg = "#{e.class}: #{e.message}\n#{e.backtrace.join("\n  ")}"</div><div class='del'>-        tell_me(msg, nil, newline)</div><div class='add'>+        tell_err(msg, nil, newline)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def silence(&amp;blk)</div><div class='hunk'>@@ -96,7 +115,7 @@ module Bundler</div><div class='ctx'>         []</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    private</div><div class='add'>+      private</div><div class='ctx'> </div><div class='ctx'>       # valimism</div><div class='ctx'>       def tell_me(msg, color = nil, newline = nil)</div><div class='head'>diff --git a/lib/bundler/ui/silent.rb b/lib/bundler/ui/silent.rb<br/>index dca1b2ac86..fa3292bdc9 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/ui/silent.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/ui/silent.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/ui/silent.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/ui/silent.rb</a></div><div class='hunk'>@@ -13,30 +13,46 @@ module Bundler</div><div class='ctx'>         string</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def info(message, newline = nil)</div><div class='add'>+      def info(message = nil, newline = nil)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def confirm(message, newline = nil)</div><div class='add'>+      def confirm(message = nil, newline = nil)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def warn(message, newline = nil)</div><div class='add'>+      def warn(message = nil, newline = nil)</div><div class='ctx'>         @warnings |= [message]</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def error(message, newline = nil)</div><div class='add'>+      def error(message = nil, newline = nil)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def debug(message, newline = nil)</div><div class='add'>+      def debug(message = nil, newline = nil)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def confirm?</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def error?</div><div class='add'>+        false</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def debug?</div><div class='ctx'>         false</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def info?</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def quiet?</div><div class='ctx'>         false</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def warn?</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def ask(message)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/uri_credentials_filter.rb b/lib/bundler/uri_credentials_filter.rb<br/>index ee3692268c..ccfaf0bc5d 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/uri_credentials_filter.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/uri_credentials_filter.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/uri_credentials_filter.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/uri_credentials_filter.rb</a></div><div class='hunk'>@@ -2,12 +2,18 @@</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   module URICredentialsFilter</div><div class='del'>-  module_function</div><div class='add'>+    module_function</div><div class='ctx'> </div><div class='ctx'>     def credential_filtered_uri(uri_to_anonymize)</div><div class='ctx'>       return uri_to_anonymize if uri_to_anonymize.nil?</div><div class='ctx'>       uri = uri_to_anonymize.dup</div><div class='del'>-      uri = URI(uri.to_s) unless uri.is_a?(URI)</div><div class='add'>+      if uri.is_a?(String)</div><div class='add'>+        return uri if File.exist?(uri)</div><div class='add'>+</div><div class='add'>+        require_relative "vendored_uri"</div><div class='add'>+        uri = Bundler::URI(uri)</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       if uri.userinfo</div><div class='ctx'>         # oauth authentication</div><div class='ctx'>         if uri.password == "x-oauth-basic" || uri.password == "x"</div><div class='hunk'>@@ -17,9 +23,9 @@ module Bundler</div><div class='ctx'>         end</div><div class='ctx'>         uri.password = nil</div><div class='ctx'>       end</div><div class='del'>-      return uri if uri_to_anonymize.is_a?(URI)</div><div class='ctx'>       return uri.to_s if uri_to_anonymize.is_a?(String)</div><div class='del'>-    rescue URI::InvalidURIError # uri is not canonical uri scheme</div><div class='add'>+      uri</div><div class='add'>+    rescue Bundler::URI::InvalidURIError # uri is not canonical uri scheme</div><div class='ctx'>       uri</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/uri_normalizer.rb b/lib/bundler/uri_normalizer.rb<br/>new file mode 100644<br/>index 0000000000..ad08593256<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/uri_normalizer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/uri_normalizer.rb</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+  module URINormalizer</div><div class='add'>+    module_function</div><div class='add'>+</div><div class='add'>+    # Normalizes uri to a consistent version, either with or without trailing</div><div class='add'>+    # slash.</div><div class='add'>+    #</div><div class='add'>+    # TODO: Currently gem sources are locked with a trailing slash, while git</div><div class='add'>+    # sources are locked without a trailing slash. This should be normalized but</div><div class='add'>+    # the inconsistency is there for now to avoid changing all lockfiles</div><div class='add'>+    # including GIT sources. We could normalize this on the next major.</div><div class='add'>+    #</div><div class='add'>+    def normalize_suffix(uri, trailing_slash: true)</div><div class='add'>+      if trailing_slash</div><div class='add'>+        uri.end_with?("/") ? uri : "#{uri}/"</div><div class='add'>+      else</div><div class='add'>+        uri.end_with?("/") ? uri.delete_suffix("/") : uri</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/.document b/lib/bundler/vendor/.document<br/>new file mode 100644<br/>index 0000000000..0c43bbd6b3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/.document?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/.document</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+# Vendored files do not need to be documented</div><div class='head'>diff --git a/lib/bundler/vendor/connection_pool/lib/connection_pool.rb b/lib/bundler/vendor/connection_pool/lib/connection_pool.rb<br/>new file mode 100644<br/>index 0000000000..455319efe3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/connection_pool/lib/connection_pool.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/connection_pool/lib/connection_pool.rb</a></div><div class='hunk'>@@ -0,0 +1,128 @@</div><div class='add'>+require "timeout"</div><div class='add'>+require_relative "connection_pool/version"</div><div class='add'>+</div><div class='add'>+class Bundler::ConnectionPool</div><div class='add'>+  class Error &lt; ::RuntimeError; end</div><div class='add'>+</div><div class='add'>+  class PoolShuttingDownError &lt; ::Bundler::ConnectionPool::Error; end</div><div class='add'>+</div><div class='add'>+  class TimeoutError &lt; ::Timeout::Error; end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# Generic connection pool class for sharing a limited number of objects or network connections</div><div class='add'>+# among many threads.  Note: pool elements are lazily created.</div><div class='add'>+#</div><div class='add'>+# Example usage with block (faster):</div><div class='add'>+#</div><div class='add'>+#    @pool = Bundler::ConnectionPool.new { Redis.new }</div><div class='add'>+#    @pool.with do |redis|</div><div class='add'>+#      redis.lpop('my-list') if redis.llen('my-list') &gt; 0</div><div class='add'>+#    end</div><div class='add'>+#</div><div class='add'>+# Using optional timeout override (for that single invocation)</div><div class='add'>+#</div><div class='add'>+#    @pool.with(timeout: 2.0) do |redis|</div><div class='add'>+#      redis.lpop('my-list') if redis.llen('my-list') &gt; 0</div><div class='add'>+#    end</div><div class='add'>+#</div><div class='add'>+# Example usage replacing an existing connection (slower):</div><div class='add'>+#</div><div class='add'>+#    $redis = Bundler::ConnectionPool.wrap { Redis.new }</div><div class='add'>+#</div><div class='add'>+#    def do_work</div><div class='add'>+#      $redis.lpop('my-list') if $redis.llen('my-list') &gt; 0</div><div class='add'>+#    end</div><div class='add'>+#</div><div class='add'>+# Accepts the following options:</div><div class='add'>+# - :size - number of connections to pool, defaults to 5</div><div class='add'>+# - :timeout - amount of time to wait for a connection if none currently available, defaults to 5 seconds</div><div class='add'>+#</div><div class='add'>+class Bundler::ConnectionPool</div><div class='add'>+  DEFAULTS = {size: 5, timeout: 5}</div><div class='add'>+</div><div class='add'>+  def self.wrap(options, &amp;block)</div><div class='add'>+    Wrapper.new(options, &amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def initialize(options = {}, &amp;block)</div><div class='add'>+    raise ArgumentError, "Connection pool requires a block" unless block</div><div class='add'>+</div><div class='add'>+    options = DEFAULTS.merge(options)</div><div class='add'>+</div><div class='add'>+    @size = Integer(options.fetch(:size))</div><div class='add'>+    @timeout = options.fetch(:timeout)</div><div class='add'>+</div><div class='add'>+    @available = TimedStack.new(@size, &amp;block)</div><div class='add'>+    @key = :"pool-#{@available.object_id}"</div><div class='add'>+    @key_count = :"pool-#{@available.object_id}-count"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def with(options = {})</div><div class='add'>+    Thread.handle_interrupt(Exception =&gt; :never) do</div><div class='add'>+      conn = checkout(options)</div><div class='add'>+      begin</div><div class='add'>+        Thread.handle_interrupt(Exception =&gt; :immediate) do</div><div class='add'>+          yield conn</div><div class='add'>+        end</div><div class='add'>+      ensure</div><div class='add'>+        checkin</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  alias_method :then, :with</div><div class='add'>+</div><div class='add'>+  def checkout(options = {})</div><div class='add'>+    if ::Thread.current[@key]</div><div class='add'>+      ::Thread.current[@key_count] += 1</div><div class='add'>+      ::Thread.current[@key]</div><div class='add'>+    else</div><div class='add'>+      ::Thread.current[@key_count] = 1</div><div class='add'>+      ::Thread.current[@key] = @available.pop(options[:timeout] || @timeout)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def checkin</div><div class='add'>+    if ::Thread.current[@key]</div><div class='add'>+      if ::Thread.current[@key_count] == 1</div><div class='add'>+        @available.push(::Thread.current[@key])</div><div class='add'>+        ::Thread.current[@key] = nil</div><div class='add'>+        ::Thread.current[@key_count] = nil</div><div class='add'>+      else</div><div class='add'>+        ::Thread.current[@key_count] -= 1</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      raise Bundler::ConnectionPool::Error, "no connections are checked out"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Shuts down the Bundler::ConnectionPool by passing each connection to +block+ and</div><div class='add'>+  # then removing it from the pool. Attempting to checkout a connection after</div><div class='add'>+  # shutdown will raise +Bundler::ConnectionPool::PoolShuttingDownError+.</div><div class='add'>+</div><div class='add'>+  def shutdown(&amp;block)</div><div class='add'>+    @available.shutdown(&amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Reloads the Bundler::ConnectionPool by passing each connection to +block+ and then</div><div class='add'>+  # removing it the pool. Subsequent checkouts will create new connections as</div><div class='add'>+  # needed.</div><div class='add'>+</div><div class='add'>+  def reload(&amp;block)</div><div class='add'>+    @available.shutdown(reload: true, &amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Size of this connection pool</div><div class='add'>+  attr_reader :size</div><div class='add'>+</div><div class='add'>+  # Number of pool entries available for checkout at this instant.</div><div class='add'>+  def available</div><div class='add'>+    @available.length</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+require_relative "connection_pool/timed_stack"</div><div class='add'>+require_relative "connection_pool/wrapper"</div><div class='head'>diff --git a/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb b/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb<br/>new file mode 100644<br/>index 0000000000..35d1d7cc35<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb</a></div><div class='hunk'>@@ -0,0 +1,174 @@</div><div class='add'>+##</div><div class='add'>+# The TimedStack manages a pool of homogeneous connections (or any resource</div><div class='add'>+# you wish to manage).  Connections are created lazily up to a given maximum</div><div class='add'>+# number.</div><div class='add'>+</div><div class='add'>+# Examples:</div><div class='add'>+#</div><div class='add'>+#    ts = TimedStack.new(1) { MyConnection.new }</div><div class='add'>+#</div><div class='add'>+#    # fetch a connection</div><div class='add'>+#    conn = ts.pop</div><div class='add'>+#</div><div class='add'>+#    # return a connection</div><div class='add'>+#    ts.push conn</div><div class='add'>+#</div><div class='add'>+#    conn = ts.pop</div><div class='add'>+#    ts.pop timeout: 5</div><div class='add'>+#    #=&gt; raises Bundler::ConnectionPool::TimeoutError after 5 seconds</div><div class='add'>+</div><div class='add'>+class Bundler::ConnectionPool::TimedStack</div><div class='add'>+  attr_reader :max</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Creates a new pool with +size+ connections that are created from the given</div><div class='add'>+  # +block+.</div><div class='add'>+</div><div class='add'>+  def initialize(size = 0, &amp;block)</div><div class='add'>+    @create_block = block</div><div class='add'>+    @created = 0</div><div class='add'>+    @que = []</div><div class='add'>+    @max = size</div><div class='add'>+    @mutex = Thread::Mutex.new</div><div class='add'>+    @resource = Thread::ConditionVariable.new</div><div class='add'>+    @shutdown_block = nil</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Returns +obj+ to the stack.  +options+ is ignored in TimedStack but may be</div><div class='add'>+  # used by subclasses that extend TimedStack.</div><div class='add'>+</div><div class='add'>+  def push(obj, options = {})</div><div class='add'>+    @mutex.synchronize do</div><div class='add'>+      if @shutdown_block</div><div class='add'>+        @shutdown_block.call(obj)</div><div class='add'>+      else</div><div class='add'>+        store_connection obj, options</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      @resource.broadcast</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  alias_method :&lt;&lt;, :push</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Retrieves a connection from the stack.  If a connection is available it is</div><div class='add'>+  # immediately returned.  If no connection is available within the given</div><div class='add'>+  # timeout a Bundler::ConnectionPool::TimeoutError is raised.</div><div class='add'>+  #</div><div class='add'>+  # +:timeout+ is the only checked entry in +options+ and is preferred over</div><div class='add'>+  # the +timeout+ argument (which will be removed in a future release).  Other</div><div class='add'>+  # options may be used by subclasses that extend TimedStack.</div><div class='add'>+</div><div class='add'>+  def pop(timeout = 0.5, options = {})</div><div class='add'>+    options, timeout = timeout, 0.5 if Hash === timeout</div><div class='add'>+    timeout = options.fetch :timeout, timeout</div><div class='add'>+</div><div class='add'>+    deadline = current_time + timeout</div><div class='add'>+    @mutex.synchronize do</div><div class='add'>+      loop do</div><div class='add'>+        raise Bundler::ConnectionPool::PoolShuttingDownError if @shutdown_block</div><div class='add'>+        return fetch_connection(options) if connection_stored?(options)</div><div class='add'>+</div><div class='add'>+        connection = try_create(options)</div><div class='add'>+        return connection if connection</div><div class='add'>+</div><div class='add'>+        to_wait = deadline - current_time</div><div class='add'>+        raise Bundler::ConnectionPool::TimeoutError, "Waited #{timeout} sec, #{length}/#{@max} available" if to_wait &lt;= 0</div><div class='add'>+        @resource.wait(@mutex, to_wait)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Shuts down the TimedStack by passing each connection to +block+ and then</div><div class='add'>+  # removing it from the pool. Attempting to checkout a connection after</div><div class='add'>+  # shutdown will raise +Bundler::ConnectionPool::PoolShuttingDownError+ unless</div><div class='add'>+  # +:reload+ is +true+.</div><div class='add'>+</div><div class='add'>+  def shutdown(reload: false, &amp;block)</div><div class='add'>+    raise ArgumentError, "shutdown must receive a block" unless block</div><div class='add'>+</div><div class='add'>+    @mutex.synchronize do</div><div class='add'>+      @shutdown_block = block</div><div class='add'>+      @resource.broadcast</div><div class='add'>+</div><div class='add'>+      shutdown_connections</div><div class='add'>+      @shutdown_block = nil if reload</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Returns +true+ if there are no available connections.</div><div class='add'>+</div><div class='add'>+  def empty?</div><div class='add'>+    (@created - @que.length) &gt;= @max</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # The number of connections available on the stack.</div><div class='add'>+</div><div class='add'>+  def length</div><div class='add'>+    @max - @created + @que.length</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  private</div><div class='add'>+</div><div class='add'>+  def current_time</div><div class='add'>+    Process.clock_gettime(Process::CLOCK_MONOTONIC)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # This is an extension point for TimedStack and is called with a mutex.</div><div class='add'>+  #</div><div class='add'>+  # This method must returns true if a connection is available on the stack.</div><div class='add'>+</div><div class='add'>+  def connection_stored?(options = nil)</div><div class='add'>+    !@que.empty?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # This is an extension point for TimedStack and is called with a mutex.</div><div class='add'>+  #</div><div class='add'>+  # This method must return a connection from the stack.</div><div class='add'>+</div><div class='add'>+  def fetch_connection(options = nil)</div><div class='add'>+    @que.pop</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # This is an extension point for TimedStack and is called with a mutex.</div><div class='add'>+  #</div><div class='add'>+  # This method must shut down all connections on the stack.</div><div class='add'>+</div><div class='add'>+  def shutdown_connections(options = nil)</div><div class='add'>+    while connection_stored?(options)</div><div class='add'>+      conn = fetch_connection(options)</div><div class='add'>+      @shutdown_block.call(conn)</div><div class='add'>+    end</div><div class='add'>+    @created = 0</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # This is an extension point for TimedStack and is called with a mutex.</div><div class='add'>+  #</div><div class='add'>+  # This method must return +obj+ to the stack.</div><div class='add'>+</div><div class='add'>+  def store_connection(obj, options = nil)</div><div class='add'>+    @que.push obj</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # This is an extension point for TimedStack and is called with a mutex.</div><div class='add'>+  #</div><div class='add'>+  # This method must create a connection if and only if the total number of</div><div class='add'>+  # connections allowed has not been met.</div><div class='add'>+</div><div class='add'>+  def try_create(options = nil)</div><div class='add'>+    unless @created == @max</div><div class='add'>+      object = @create_block.call</div><div class='add'>+      @created += 1</div><div class='add'>+      object</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb b/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb<br/>new file mode 100644<br/>index 0000000000..56ebf69902<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+class Bundler::ConnectionPool</div><div class='add'>+  VERSION = "2.3.0"</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb b/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb<br/>new file mode 100644<br/>index 0000000000..dd796d1021<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb</a></div><div class='hunk'>@@ -0,0 +1,56 @@</div><div class='add'>+class Bundler::ConnectionPool</div><div class='add'>+  class Wrapper &lt; ::BasicObject</div><div class='add'>+    METHODS = [:with, :pool_shutdown, :wrapped_pool]</div><div class='add'>+</div><div class='add'>+    def initialize(options = {}, &amp;block)</div><div class='add'>+      @pool = options.fetch(:pool) { ::Bundler::ConnectionPool.new(options, &amp;block) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def wrapped_pool</div><div class='add'>+      @pool</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def with(&amp;block)</div><div class='add'>+      @pool.with(&amp;block)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def pool_shutdown(&amp;block)</div><div class='add'>+      @pool.shutdown(&amp;block)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def pool_size</div><div class='add'>+      @pool.size</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def pool_available</div><div class='add'>+      @pool.available</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def respond_to?(id, *args)</div><div class='add'>+      METHODS.include?(id) || with { |c| c.respond_to?(id, *args) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # rubocop:disable Style/MissingRespondToMissing</div><div class='add'>+    if ::RUBY_VERSION &gt;= "3.0.0"</div><div class='add'>+      def method_missing(name, *args, **kwargs, &amp;block)</div><div class='add'>+        with do |connection|</div><div class='add'>+          connection.send(name, *args, **kwargs, &amp;block)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    elsif ::RUBY_VERSION &gt;= "2.7.0"</div><div class='add'>+      ruby2_keywords def method_missing(name, *args, &amp;block)</div><div class='add'>+        with do |connection|</div><div class='add'>+          connection.send(name, *args, &amp;block)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      def method_missing(name, *args, &amp;block)</div><div class='add'>+        with do |connection|</div><div class='add'>+          connection.send(name, *args, &amp;block)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    # rubocop:enable Style/MethodMissingSuper</div><div class='add'>+    # rubocop:enable Style/MissingRespondToMissing</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/fileutils/lib/fileutils.rb b/lib/bundler/vendor/fileutils/lib/fileutils.rb<br/>index cc69740845..211311c069 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/fileutils/lib/fileutils.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/fileutils/lib/fileutils.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/fileutils/lib/fileutils.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/fileutils/lib/fileutils.rb</a></div><div class='hunk'>@@ -1,91 +1,186 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  require 'rbconfig'</div><div class='add'>+rescue LoadError</div><div class='add'>+  # for make rjit-headers</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# Namespace for file utility methods for copying, moving, removing, etc.</div><div class='ctx'> #</div><div class='del'>-# = fileutils.rb</div><div class='add'>+# == What's Here</div><div class='ctx'> #</div><div class='del'>-# Copyright (c) 2000-2007 Minero Aoki</div><div class='add'>+# First, whatâ€™s elsewhere. \Module \Bundler::FileUtils:</div><div class='ctx'> #</div><div class='del'>-# This program is free software.</div><div class='del'>-# You can distribute/modify this program under the same terms of ruby.</div><div class='add'>+# - Inherits from {class Object}[rdoc-ref:Object].</div><div class='add'>+# - Supplements {class File}[rdoc-ref:File]</div><div class='add'>+#   (but is not included or extended there).</div><div class='ctx'> #</div><div class='del'>-# == module Bundler::FileUtils</div><div class='add'>+# Here, module \Bundler::FileUtils provides methods that are useful for:</div><div class='ctx'> #</div><div class='del'>-# Namespace for several file utility methods for copying, moving, removing, etc.</div><div class='add'>+# - {Creating}[rdoc-ref:FileUtils@Creating].</div><div class='add'>+# - {Deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='add'>+# - {Querying}[rdoc-ref:FileUtils@Querying].</div><div class='add'>+# - {Setting}[rdoc-ref:FileUtils@Setting].</div><div class='add'>+# - {Comparing}[rdoc-ref:FileUtils@Comparing].</div><div class='add'>+# - {Copying}[rdoc-ref:FileUtils@Copying].</div><div class='add'>+# - {Moving}[rdoc-ref:FileUtils@Moving].</div><div class='add'>+# - {Options}[rdoc-ref:FileUtils@Options].</div><div class='ctx'> #</div><div class='del'>-# === Module Functions</div><div class='add'>+# === Creating</div><div class='ctx'> #</div><div class='del'>-#   require 'bundler/vendor/fileutils/lib/fileutils'</div><div class='add'>+# - ::mkdir: Creates directories.</div><div class='add'>+# - ::mkdir_p, ::makedirs, ::mkpath: Creates directories,</div><div class='add'>+#   also creating ancestor directories as needed.</div><div class='add'>+# - ::link_entry: Creates a hard link.</div><div class='add'>+# - ::ln, ::link: Creates hard links.</div><div class='add'>+# - ::ln_s, ::symlink: Creates symbolic links.</div><div class='add'>+# - ::ln_sf: Creates symbolic links, overwriting if necessary.</div><div class='add'>+# - ::ln_sr: Creates symbolic links relative to targets</div><div class='ctx'> #</div><div class='del'>-#   Bundler::FileUtils.cd(dir, options)</div><div class='del'>-#   Bundler::FileUtils.cd(dir, options) {|dir| block }</div><div class='del'>-#   Bundler::FileUtils.pwd()</div><div class='del'>-#   Bundler::FileUtils.mkdir(dir, options)</div><div class='del'>-#   Bundler::FileUtils.mkdir(list, options)</div><div class='del'>-#   Bundler::FileUtils.mkdir_p(dir, options)</div><div class='del'>-#   Bundler::FileUtils.mkdir_p(list, options)</div><div class='del'>-#   Bundler::FileUtils.rmdir(dir, options)</div><div class='del'>-#   Bundler::FileUtils.rmdir(list, options)</div><div class='del'>-#   Bundler::FileUtils.ln(target, link, options)</div><div class='del'>-#   Bundler::FileUtils.ln(targets, dir, options)</div><div class='del'>-#   Bundler::FileUtils.ln_s(target, link, options)</div><div class='del'>-#   Bundler::FileUtils.ln_s(targets, dir, options)</div><div class='del'>-#   Bundler::FileUtils.ln_sf(target, link, options)</div><div class='del'>-#   Bundler::FileUtils.cp(src, dest, options)</div><div class='del'>-#   Bundler::FileUtils.cp(list, dir, options)</div><div class='del'>-#   Bundler::FileUtils.cp_r(src, dest, options)</div><div class='del'>-#   Bundler::FileUtils.cp_r(list, dir, options)</div><div class='del'>-#   Bundler::FileUtils.mv(src, dest, options)</div><div class='del'>-#   Bundler::FileUtils.mv(list, dir, options)</div><div class='del'>-#   Bundler::FileUtils.rm(list, options)</div><div class='del'>-#   Bundler::FileUtils.rm_r(list, options)</div><div class='del'>-#   Bundler::FileUtils.rm_rf(list, options)</div><div class='del'>-#   Bundler::FileUtils.install(src, dest, options)</div><div class='del'>-#   Bundler::FileUtils.chmod(mode, list, options)</div><div class='del'>-#   Bundler::FileUtils.chmod_R(mode, list, options)</div><div class='del'>-#   Bundler::FileUtils.chown(user, group, list, options)</div><div class='del'>-#   Bundler::FileUtils.chown_R(user, group, list, options)</div><div class='del'>-#   Bundler::FileUtils.touch(list, options)</div><div class='add'>+# === Deleting</div><div class='ctx'> #</div><div class='del'>-# The &lt;tt&gt;options&lt;/tt&gt; parameter is a hash of options, taken from the list</div><div class='del'>-# &lt;tt&gt;:force&lt;/tt&gt;, &lt;tt&gt;:noop&lt;/tt&gt;, &lt;tt&gt;:preserve&lt;/tt&gt;, and &lt;tt&gt;:verbose&lt;/tt&gt;.</div><div class='del'>-# &lt;tt&gt;:noop&lt;/tt&gt; means that no changes are made.  The other three are obvious.</div><div class='del'>-# Each method documents the options that it honours.</div><div class='add'>+# - ::remove_dir: Removes a directory and its descendants.</div><div class='add'>+# - ::remove_entry: Removes an entry, including its descendants if it is a directory.</div><div class='add'>+# - ::remove_entry_secure: Like ::remove_entry, but removes securely.</div><div class='add'>+# - ::remove_file: Removes a file entry.</div><div class='add'>+# - ::rm, ::remove: Removes entries.</div><div class='add'>+# - ::rm_f, ::safe_unlink: Like ::rm, but removes forcibly.</div><div class='add'>+# - ::rm_r: Removes entries and their descendants.</div><div class='add'>+# - ::rm_rf, ::rmtree: Like ::rm_r, but removes forcibly.</div><div class='add'>+# - ::rmdir: Removes directories.</div><div class='ctx'> #</div><div class='del'>-# All methods that have the concept of a "source" file or directory can take</div><div class='del'>-# either one file or a list of files in that argument.  See the method</div><div class='del'>-# documentation for examples.</div><div class='add'>+# === Querying</div><div class='ctx'> #</div><div class='del'>-# There are some `low level' methods, which do not accept any option:</div><div class='add'>+# - ::pwd, ::getwd: Returns the path to the working directory.</div><div class='add'>+# - ::uptodate?: Returns whether a given entry is newer than given other entries.</div><div class='ctx'> #</div><div class='del'>-#   Bundler::FileUtils.copy_entry(src, dest, preserve = false, dereference = false)</div><div class='del'>-#   Bundler::FileUtils.copy_file(src, dest, preserve = false, dereference = true)</div><div class='del'>-#   Bundler::FileUtils.copy_stream(srcstream, deststream)</div><div class='del'>-#   Bundler::FileUtils.remove_entry(path, force = false)</div><div class='del'>-#   Bundler::FileUtils.remove_entry_secure(path, force = false)</div><div class='del'>-#   Bundler::FileUtils.remove_file(path, force = false)</div><div class='del'>-#   Bundler::FileUtils.compare_file(path_a, path_b)</div><div class='del'>-#   Bundler::FileUtils.compare_stream(stream_a, stream_b)</div><div class='del'>-#   Bundler::FileUtils.uptodate?(file, cmp_list)</div><div class='add'>+# === Setting</div><div class='ctx'> #</div><div class='del'>-# == module Bundler::FileUtils::Verbose</div><div class='add'>+# - ::cd, ::chdir: Sets the working directory.</div><div class='add'>+# - ::chmod: Sets permissions for an entry.</div><div class='add'>+# - ::chmod_R: Sets permissions for an entry and its descendants.</div><div class='add'>+# - ::chown: Sets the owner and group for entries.</div><div class='add'>+# - ::chown_R: Sets the owner and group for entries and their descendants.</div><div class='add'>+# - ::touch: Sets modification and access times for entries,</div><div class='add'>+#   creating if necessary.</div><div class='ctx'> #</div><div class='del'>-# This module has all methods of Bundler::FileUtils module, but it outputs messages</div><div class='del'>-# before acting.  This equates to passing the &lt;tt&gt;:verbose&lt;/tt&gt; flag to methods</div><div class='del'>-# in Bundler::FileUtils.</div><div class='add'>+# === Comparing</div><div class='ctx'> #</div><div class='del'>-# == module Bundler::FileUtils::NoWrite</div><div class='add'>+# - ::compare_file, ::cmp, ::identical?: Returns whether two entries are identical.</div><div class='add'>+# - ::compare_stream: Returns whether two streams are identical.</div><div class='ctx'> #</div><div class='del'>-# This module has all methods of Bundler::FileUtils module, but never changes</div><div class='del'>-# files/directories.  This equates to passing the &lt;tt&gt;:noop&lt;/tt&gt; flag to methods</div><div class='del'>-# in Bundler::FileUtils.</div><div class='add'>+# === Copying</div><div class='ctx'> #</div><div class='del'>-# == module Bundler::FileUtils::DryRun</div><div class='add'>+# - ::copy_entry: Recursively copies an entry.</div><div class='add'>+# - ::copy_file: Copies an entry.</div><div class='add'>+# - ::copy_stream: Copies a stream.</div><div class='add'>+# - ::cp, ::copy: Copies files.</div><div class='add'>+# - ::cp_lr: Recursively creates hard links.</div><div class='add'>+# - ::cp_r: Recursively copies files, retaining mode, owner, and group.</div><div class='add'>+# - ::install: Recursively copies files, optionally setting mode,</div><div class='add'>+#   owner, and group.</div><div class='ctx'> #</div><div class='del'>-# This module has all methods of Bundler::FileUtils module, but never changes</div><div class='del'>-# files/directories.  This equates to passing the &lt;tt&gt;:noop&lt;/tt&gt; and</div><div class='del'>-# &lt;tt&gt;:verbose&lt;/tt&gt; flags to methods in Bundler::FileUtils.</div><div class='add'>+# === Moving</div><div class='add'>+#</div><div class='add'>+# - ::mv, ::move: Moves entries.</div><div class='add'>+#</div><div class='add'>+# === Options</div><div class='add'>+#</div><div class='add'>+# - ::collect_method: Returns the names of methods that accept a given option.</div><div class='add'>+# - ::commands: Returns the names of methods that accept options.</div><div class='add'>+# - ::have_option?: Returns whether a given method accepts a given option.</div><div class='add'>+# - ::options: Returns all option names.</div><div class='add'>+# - ::options_of: Returns the names of the options for a given method.</div><div class='add'>+#</div><div class='add'>+# == Path Arguments</div><div class='add'>+#</div><div class='add'>+# Some methods in \Bundler::FileUtils accept _path_ arguments,</div><div class='add'>+# which are interpreted as paths to filesystem entries:</div><div class='add'>+#</div><div class='add'>+# - If the argument is a string, that value is the path.</div><div class='add'>+# - If the argument has method +:to_path+, it is converted via that method.</div><div class='add'>+# - If the argument has method +:to_str+, it is converted via that method.</div><div class='add'>+#</div><div class='add'>+# == About the Examples</div><div class='add'>+#</div><div class='add'>+# Some examples here involve trees of file entries.</div><div class='add'>+# For these, we sometimes display trees using the</div><div class='add'>+# {tree command-line utility}[https://en.wikipedia.org/wiki/Tree_(command)],</div><div class='add'>+# which is a recursive directory-listing utility that produces</div><div class='add'>+# a depth-indented listing of files and directories.</div><div class='add'>+#</div><div class='add'>+# We use a helper method to launch the command and control the format:</div><div class='add'>+#</div><div class='add'>+#   def tree(dirpath = '.')</div><div class='add'>+#     command = "tree --noreport --charset=ascii #{dirpath}"</div><div class='add'>+#     system(command)</div><div class='add'>+#   end</div><div class='add'>+#</div><div class='add'>+# To illustrate:</div><div class='add'>+#</div><div class='add'>+#   tree('src0')</div><div class='add'>+#   # =&gt; src0</div><div class='add'>+#   #    |-- sub0</div><div class='add'>+#   #    |   |-- src0.txt</div><div class='add'>+#   #    |   `-- src1.txt</div><div class='add'>+#   #    `-- sub1</div><div class='add'>+#   #        |-- src2.txt</div><div class='add'>+#   #        `-- src3.txt</div><div class='add'>+#</div><div class='add'>+# == Avoiding the TOCTTOU Vulnerability</div><div class='add'>+#</div><div class='add'>+# For certain methods that recursively remove entries,</div><div class='add'>+# there is a potential vulnerability called the</div><div class='add'>+# {Time-of-check to time-of-use}[https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use],</div><div class='add'>+# or TOCTTOU, vulnerability that can exist when:</div><div class='add'>+#</div><div class='add'>+# - An ancestor directory of the entry at the target path is world writable;</div><div class='add'>+#   such directories include &lt;tt&gt;/tmp&lt;/tt&gt;.</div><div class='add'>+# - The directory tree at the target path includes:</div><div class='add'>+#</div><div class='add'>+#   - A world-writable descendant directory.</div><div class='add'>+#   - A symbolic link.</div><div class='add'>+#</div><div class='add'>+# To avoid that vulnerability, you can use this method to remove entries:</div><div class='add'>+#</div><div class='add'>+# - Bundler::FileUtils.remove_entry_secure: removes recursively</div><div class='add'>+#   if the target path points to a directory.</div><div class='add'>+#</div><div class='add'>+# Also available are these methods,</div><div class='add'>+# each of which calls \Bundler::FileUtils.remove_entry_secure:</div><div class='add'>+#</div><div class='add'>+# - Bundler::FileUtils.rm_r with keyword argument &lt;tt&gt;secure: true&lt;/tt&gt;.</div><div class='add'>+# - Bundler::FileUtils.rm_rf with keyword argument &lt;tt&gt;secure: true&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# Finally, this method for moving entries calls \Bundler::FileUtils.remove_entry_secure</div><div class='add'>+# if the source and destination are on different file systems</div><div class='add'>+# (which means that the "move" is really a copy and remove):</div><div class='add'>+#</div><div class='add'>+# - Bundler::FileUtils.mv with keyword argument &lt;tt&gt;secure: true&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# \Method \Bundler::FileUtils.remove_entry_secure removes securely</div><div class='add'>+# by applying a special pre-process:</div><div class='add'>+#</div><div class='add'>+# - If the target path points to a directory, this method uses methods</div><div class='add'>+#   {File#chown}[rdoc-ref:File#chown]</div><div class='add'>+#   and {File#chmod}[rdoc-ref:File#chmod]</div><div class='add'>+#   in removing directories.</div><div class='add'>+# - The owner of the target directory should be either the current process</div><div class='add'>+#   or the super user (root).</div><div class='add'>+#</div><div class='add'>+# WARNING: You must ensure that *ALL* parent directories cannot be</div><div class='add'>+# moved by other untrusted users.  For example, parent directories</div><div class='add'>+# should not be owned by untrusted users, and should not be world</div><div class='add'>+# writable except when the sticky bit is set.</div><div class='add'>+#</div><div class='add'>+# For details of this security vulnerability, see Perl cases:</div><div class='add'>+#</div><div class='add'>+# - {CVE-2005-0448}[https://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0448].</div><div class='add'>+# - {CVE-2004-0452}[https://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0452].</div><div class='ctx'> #</div><div class='del'>-</div><div class='ctx'> module Bundler::FileUtils</div><div class='add'>+  VERSION = "1.7.0"</div><div class='ctx'> </div><div class='ctx'>   def self.private_module_function(name)   #:nodoc:</div><div class='ctx'>     module_function name</div><div class='hunk'>@@ -93,7 +188,13 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Returns the name of the current directory.</div><div class='add'>+  # Returns a string containing the path to the current directory:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.pwd # =&gt; "/rdoc/fileutils"</div><div class='add'>+  #</div><div class='add'>+  # Bundler::FileUtils.getwd is an alias for Bundler::FileUtils.pwd.</div><div class='add'>+  #</div><div class='add'>+  # Related: Bundler::FileUtils.cd.</div><div class='ctx'>   #</div><div class='ctx'>   def pwd</div><div class='ctx'>     Dir.pwd</div><div class='hunk'>@@ -103,22 +204,46 @@ module Bundler::FileUtils</div><div class='ctx'>   alias getwd pwd</div><div class='ctx'>   module_function :getwd</div><div class='ctx'> </div><div class='add'>+  # Changes the working directory to the given +dir+, which</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments]:</div><div class='add'>+  #</div><div class='add'>+  # With no block given,</div><div class='add'>+  # changes the current directory to the directory at +dir+; returns zero:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.pwd # =&gt; "/rdoc/fileutils"</div><div class='add'>+  #   Bundler::FileUtils.cd('..')</div><div class='add'>+  #   Bundler::FileUtils.pwd # =&gt; "/rdoc"</div><div class='add'>+  #   Bundler::FileUtils.cd('fileutils')</div><div class='add'>+  #</div><div class='add'>+  # With a block given, changes the current directory to the directory</div><div class='add'>+  # at +dir+, calls the block with argument +dir+,</div><div class='add'>+  # and restores the original current directory; returns the block's value:</div><div class='ctx'>   #</div><div class='del'>-  # Changes the current directory to the directory +dir+.</div><div class='add'>+  #   Bundler::FileUtils.pwd                                     # =&gt; "/rdoc/fileutils"</div><div class='add'>+  #   Bundler::FileUtils.cd('..') { |arg| [arg, Bundler::FileUtils.pwd] } # =&gt; ["..", "/rdoc"]</div><div class='add'>+  #   Bundler::FileUtils.pwd                                     # =&gt; "/rdoc/fileutils"</div><div class='ctx'>   #</div><div class='del'>-  # If this method is called with block, resumes to the old</div><div class='del'>-  # working directory after the block execution finished.</div><div class='add'>+  # Keyword arguments:</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.cd('/', :verbose =&gt; true)   # chdir and report it</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.cd('/') do  # chdir</div><div class='del'>-  #     # ...               # do something</div><div class='del'>-  #   end                   # return to original directory</div><div class='add'>+  #     Bundler::FileUtils.cd('..')</div><div class='add'>+  #     Bundler::FileUtils.cd('fileutils')</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     cd ..</div><div class='add'>+  #     cd fileutils</div><div class='add'>+  #</div><div class='add'>+  # Bundler::FileUtils.chdir is an alias for Bundler::FileUtils.cd.</div><div class='add'>+  #</div><div class='add'>+  # Related: Bundler::FileUtils.pwd.</div><div class='ctx'>   #</div><div class='ctx'>   def cd(dir, verbose: nil, &amp;block) # :yield: dir</div><div class='ctx'>     fu_output_message "cd #{dir}" if verbose</div><div class='del'>-    Dir.chdir(dir, &amp;block)</div><div class='add'>+    result = Dir.chdir(dir, &amp;block)</div><div class='ctx'>     fu_output_message 'cd -' if verbose and block</div><div class='add'>+    result</div><div class='ctx'>   end</div><div class='ctx'>   module_function :cd</div><div class='ctx'> </div><div class='hunk'>@@ -126,11 +251,19 @@ module Bundler::FileUtils</div><div class='ctx'>   module_function :chdir</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Returns true if +new+ is newer than all +old_list+.</div><div class='del'>-  # Non-existent files are older than any file.</div><div class='add'>+  # Returns +true+ if the file at path +new+</div><div class='add'>+  # is newer than all the files at paths in array +old_list+;</div><div class='add'>+  # +false+ otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Argument +new+ and the elements of +old_list+</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments]:</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.uptodate?('hello.o', %w(hello.c hello.h)) or \</div><div class='del'>-  #       system 'make hello.o'</div><div class='add'>+  #   Bundler::FileUtils.uptodate?('Rakefile', ['Gemfile', 'README.md']) # =&gt; true</div><div class='add'>+  #   Bundler::FileUtils.uptodate?('Gemfile', ['Rakefile', 'README.md']) # =&gt; false</div><div class='add'>+  #</div><div class='add'>+  # A non-existent file is considered to be infinitely old.</div><div class='add'>+  #</div><div class='add'>+  # Related: Bundler::FileUtils.touch.</div><div class='ctx'>   #</div><div class='ctx'>   def uptodate?(new, old_list)</div><div class='ctx'>     return false unless File.exist?(new)</div><div class='hunk'>@@ -150,12 +283,39 @@ module Bundler::FileUtils</div><div class='ctx'>   private_module_function :remove_trailing_slash</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Creates one or more directories.</div><div class='add'>+  # Creates directories at the paths in the given +list+</div><div class='add'>+  # (a single path or an array of paths);</div><div class='add'>+  # returns +list+ if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # With no keyword arguments, creates a directory at each +path+ in +list+</div><div class='add'>+  # by calling: &lt;tt&gt;Dir.mkdir(path, mode)&lt;/tt&gt;;</div><div class='add'>+  # see {Dir.mkdir}[rdoc-ref:Dir.mkdir]:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.mkdir(%w[tmp0 tmp1]) # =&gt; ["tmp0", "tmp1"]</div><div class='add'>+  #   Bundler::FileUtils.mkdir('tmp4')        # =&gt; ["tmp4"]</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;mode: &lt;i&gt;mode&lt;/i&gt;&lt;/tt&gt; - also calls &lt;tt&gt;File.chmod(mode, path)&lt;/tt&gt;;</div><div class='add'>+  #   see {File.chmod}[rdoc-ref:File.chmod].</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not create directories.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.mkdir(%w[tmp0 tmp1], verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.mkdir(%w[tmp2 tmp3], mode: 0700, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     mkdir tmp0 tmp1</div><div class='add'>+  #     mkdir -m 700 tmp2 tmp3</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if any path points to an existing</div><div class='add'>+  # file or directory, or if for any reason a directory cannot be created.</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.mkdir 'test'</div><div class='del'>-  #   Bundler::FileUtils.mkdir %w( tmp data )</div><div class='del'>-  #   Bundler::FileUtils.mkdir 'notexist', :noop =&gt; true  # Does not really create.</div><div class='del'>-  #   Bundler::FileUtils.mkdir 'tmp', :mode =&gt; 0700</div><div class='add'>+  # Related: Bundler::FileUtils.mkdir_p.</div><div class='ctx'>   #</div><div class='ctx'>   def mkdir(list, mode: nil, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -169,40 +329,56 @@ module Bundler::FileUtils</div><div class='ctx'>   module_function :mkdir</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Creates a directory and all its parent directories.</div><div class='del'>-  # For example,</div><div class='add'>+  # Creates directories at the paths in the given +list+</div><div class='add'>+  # (a single path or an array of paths),</div><div class='add'>+  # also creating ancestor directories as needed;</div><div class='add'>+  # returns +list+ if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.mkdir_p '/usr/local/lib/ruby'</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  # causes to make following directories, if it does not exist.</div><div class='add'>+  # With no keyword arguments, creates a directory at each +path+ in +list+,</div><div class='add'>+  # along with any needed ancestor directories,</div><div class='add'>+  # by calling: &lt;tt&gt;Dir.mkdir(path, mode)&lt;/tt&gt;;</div><div class='add'>+  # see {Dir.mkdir}[rdoc-ref:Dir.mkdir]:</div><div class='ctx'>   #</div><div class='del'>-  # * /usr</div><div class='del'>-  # * /usr/local</div><div class='del'>-  # * /usr/local/lib</div><div class='del'>-  # * /usr/local/lib/ruby</div><div class='add'>+  #   Bundler::FileUtils.mkdir_p(%w[tmp0/tmp1 tmp2/tmp3]) # =&gt; ["tmp0/tmp1", "tmp2/tmp3"]</div><div class='add'>+  #   Bundler::FileUtils.mkdir_p('tmp4/tmp5')             # =&gt; ["tmp4/tmp5"]</div><div class='ctx'>   #</div><div class='del'>-  # You can pass several directories at a time in a list.</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;mode: &lt;i&gt;mode&lt;/i&gt;&lt;/tt&gt; - also calls &lt;tt&gt;File.chmod(mode, path)&lt;/tt&gt;;</div><div class='add'>+  #   see {File.chmod}[rdoc-ref:File.chmod].</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not create directories.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.mkdir_p(%w[tmp0 tmp1], verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.mkdir_p(%w[tmp2 tmp3], mode: 0700, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     mkdir -p tmp0 tmp1</div><div class='add'>+  #     mkdir -p -m 700 tmp2 tmp3</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if for any reason a directory cannot be created.</div><div class='add'>+  #</div><div class='add'>+  # Bundler::FileUtils.mkpath and Bundler::FileUtils.makedirs are aliases for Bundler::FileUtils.mkdir_p.</div><div class='add'>+  #</div><div class='add'>+  # Related: Bundler::FileUtils.mkdir.</div><div class='ctx'>   #</div><div class='ctx'>   def mkdir_p(list, mode: nil, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='ctx'>     fu_output_message "mkdir -p #{mode ? ('-m %03o ' % mode) : ''}#{list.join ' '}" if verbose</div><div class='ctx'>     return *list if noop</div><div class='ctx'> </div><div class='del'>-    list.map {|path| remove_trailing_slash(path)}.each do |path|</div><div class='del'>-      # optimize for the most common case</div><div class='del'>-      begin</div><div class='del'>-        fu_mkdir path, mode</div><div class='del'>-        next</div><div class='del'>-      rescue SystemCallError</div><div class='del'>-        next if File.directory?(path)</div><div class='del'>-      end</div><div class='add'>+    list.each do |item|</div><div class='add'>+      path = remove_trailing_slash(item)</div><div class='ctx'> </div><div class='ctx'>       stack = []</div><div class='del'>-      until path == stack.last   # dirname("/")=="/", dirname("C:/")=="C:/"</div><div class='add'>+      until File.directory?(path) || File.dirname(path) == path</div><div class='ctx'>         stack.push path</div><div class='ctx'>         path = File.dirname(path)</div><div class='ctx'>       end</div><div class='del'>-      stack.pop                 # root directory should exist</div><div class='ctx'>       stack.reverse_each do |dir|</div><div class='ctx'>         begin</div><div class='ctx'>           fu_mkdir dir, mode</div><div class='hunk'>@@ -233,52 +409,115 @@ module Bundler::FileUtils</div><div class='ctx'>   private_module_function :fu_mkdir</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Removes one or more directories.</div><div class='add'>+  # Removes directories at the paths in the given +list+</div><div class='add'>+  # (a single path or an array of paths);</div><div class='add'>+  # returns +list+, if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.rmdir 'somedir'</div><div class='del'>-  #   Bundler::FileUtils.rmdir %w(somedir anydir otherdir)</div><div class='del'>-  #   # Does not really remove directory; outputs message.</div><div class='del'>-  #   Bundler::FileUtils.rmdir 'somedir', :verbose =&gt; true, :noop =&gt; true</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # With no keyword arguments, removes the directory at each +path+ in +list+,</div><div class='add'>+  # by calling: &lt;tt&gt;Dir.rmdir(path)&lt;/tt&gt;;</div><div class='add'>+  # see {Dir.rmdir}[rdoc-ref:Dir.rmdir]:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.rmdir(%w[tmp0/tmp1 tmp2/tmp3]) # =&gt; ["tmp0/tmp1", "tmp2/tmp3"]</div><div class='add'>+  #   Bundler::FileUtils.rmdir('tmp4/tmp5')             # =&gt; ["tmp4/tmp5"]</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;parents: true&lt;/tt&gt; - removes successive ancestor directories</div><div class='add'>+  #   if empty.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not remove directories.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.rmdir(%w[tmp0/tmp1 tmp2/tmp3], parents: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.rmdir('tmp4/tmp5', parents: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     rmdir -p tmp0/tmp1 tmp2/tmp3</div><div class='add'>+  #     rmdir -p tmp4/tmp5</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if a directory does not exist</div><div class='add'>+  # or if for any reason a directory cannot be removed.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def rmdir(list, parents: nil, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='ctx'>     fu_output_message "rmdir #{parents ? '-p ' : ''}#{list.join ' '}" if verbose</div><div class='ctx'>     return if noop</div><div class='ctx'>     list.each do |dir|</div><div class='del'>-      begin</div><div class='del'>-        Dir.rmdir(dir = remove_trailing_slash(dir))</div><div class='del'>-        if parents</div><div class='add'>+      Dir.rmdir(dir = remove_trailing_slash(dir))</div><div class='add'>+      if parents</div><div class='add'>+        begin</div><div class='ctx'>           until (parent = File.dirname(dir)) == '.' or parent == dir</div><div class='ctx'>             dir = parent</div><div class='ctx'>             Dir.rmdir(dir)</div><div class='ctx'>           end</div><div class='add'>+        rescue Errno::ENOTEMPTY, Errno::EEXIST, Errno::ENOENT</div><div class='ctx'>         end</div><div class='del'>-      rescue Errno::ENOTEMPTY, Errno::EEXIST, Errno::ENOENT</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'>   module_function :rmdir</div><div class='ctx'> </div><div class='add'>+  # Creates {hard links}[https://en.wikipedia.org/wiki/Hard_link].</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # When +src+ is the path to an existing file</div><div class='add'>+  # and +dest+ is the path to a non-existent file,</div><div class='add'>+  # creates a hard link at +dest+ pointing to +src+; returns zero:</div><div class='add'>+  #</div><div class='add'>+  #   Dir.children('tmp0/')                    # =&gt; ["t.txt"]</div><div class='add'>+  #   Dir.children('tmp1/')                    # =&gt; []</div><div class='add'>+  #   Bundler::FileUtils.ln('tmp0/t.txt', 'tmp1/t.lnk') # =&gt; 0</div><div class='add'>+  #   Dir.children('tmp1/')                    # =&gt; ["t.lnk"]</div><div class='add'>+  #</div><div class='add'>+  # When +src+ is the path to an existing file</div><div class='add'>+  # and +dest+ is the path to an existing directory,</div><div class='add'>+  # creates a hard link at &lt;tt&gt;dest/src&lt;/tt&gt; pointing to +src+; returns zero:</div><div class='add'>+  #</div><div class='add'>+  #   Dir.children('tmp2')               # =&gt; ["t.dat"]</div><div class='add'>+  #   Dir.children('tmp3')               # =&gt; []</div><div class='add'>+  #   Bundler::FileUtils.ln('tmp2/t.dat', 'tmp3') # =&gt; 0</div><div class='add'>+  #   Dir.children('tmp3')               # =&gt; ["t.dat"]</div><div class='add'>+  #</div><div class='add'>+  # When +src+ is an array of paths to existing files</div><div class='add'>+  # and +dest+ is the path to an existing directory,</div><div class='add'>+  # then for each path +target+ in +src+,</div><div class='add'>+  # creates a hard link at &lt;tt&gt;dest/target&lt;/tt&gt; pointing to +target+;</div><div class='add'>+  # returns +src+:</div><div class='add'>+  #</div><div class='add'>+  #   Dir.children('tmp4/')                               # =&gt; []</div><div class='add'>+  #   Bundler::FileUtils.ln(['tmp0/t.txt', 'tmp2/t.dat'], 'tmp4/') # =&gt; ["tmp0/t.txt", "tmp2/t.dat"]</div><div class='add'>+  #   Dir.children('tmp4/')                               # =&gt; ["t.dat", "t.txt"]</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;force: true&lt;/tt&gt; - overwrites +dest+ if it exists.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not create links.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.ln('tmp0/t.txt', 'tmp1/t.lnk', verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.ln('tmp2/t.dat', 'tmp3', verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.ln(['tmp0/t.txt', 'tmp2/t.dat'], 'tmp4/', verbose: true)</div><div class='ctx'>   #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   Bundler::FileUtils.ln(target, link, force: nil, noop: nil, verbose: nil)</div><div class='del'>-  #   Bundler::FileUtils.ln(target,  dir, force: nil, noop: nil, verbose: nil)</div><div class='del'>-  #   Bundler::FileUtils.ln(targets, dir, force: nil, noop: nil, verbose: nil)</div><div class='add'>+  #   Output:</div><div class='ctx'>   #</div><div class='del'>-  # In the first form, creates a hard link +link+ which points to +target+.</div><div class='del'>-  # If +link+ already exists, raises Errno::EEXIST.</div><div class='del'>-  # But if the :force option is set, overwrites +link+.</div><div class='add'>+  #     ln tmp0/t.txt tmp1/t.lnk</div><div class='add'>+  #     ln tmp2/t.dat tmp3</div><div class='add'>+  #     ln tmp0/t.txt tmp2/t.dat tmp4/</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.ln 'gcc', 'cc', verbose: true</div><div class='del'>-  #   Bundler::FileUtils.ln '/usr/bin/emacs21', '/usr/bin/emacs'</div><div class='add'>+  # Raises an exception if +dest+ is the path to an existing file</div><div class='add'>+  # and keyword argument +force+ is not +true+.</div><div class='ctx'>   #</div><div class='del'>-  # In the second form, creates a link +dir/target+ pointing to +target+.</div><div class='del'>-  # In the third form, creates several hard links in the directory +dir+,</div><div class='del'>-  # pointing to each item in +targets+.</div><div class='del'>-  # If +dir+ is not a directory, raises Errno::ENOTDIR.</div><div class='add'>+  # Bundler::FileUtils#link is an alias for Bundler::FileUtils#ln.</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.cd '/sbin'</div><div class='del'>-  #   Bundler::FileUtils.ln %w(cp mv mkdir), '/bin'   # Now /sbin/cp and /bin/cp are linked.</div><div class='add'>+  # Related: Bundler::FileUtils.link_entry (has different options).</div><div class='ctx'>   #</div><div class='ctx'>   def ln(src, dest, force: nil, noop: nil, verbose: nil)</div><div class='ctx'>     fu_output_message "ln#{force ? ' -f' : ''} #{[src,dest].flatten.join ' '}" if verbose</div><div class='hunk'>@@ -293,27 +532,189 @@ module Bundler::FileUtils</div><div class='ctx'>   alias link ln</div><div class='ctx'>   module_function :link</div><div class='ctx'> </div><div class='add'>+  # Creates {hard links}[https://en.wikipedia.org/wiki/Hard_link].</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a directory and +dest+ does not exist,</div><div class='add'>+  # creates links +dest+ and descendents pointing to +src+ and its descendents:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src0')</div><div class='add'>+  #   # =&gt; src0</div><div class='add'>+  #   #    |-- sub0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- sub1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #   File.exist?('dest0') # =&gt; false</div><div class='add'>+  #   Bundler::FileUtils.cp_lr('src0', 'dest0')</div><div class='add'>+  #   tree('dest0')</div><div class='add'>+  #   # =&gt; dest0</div><div class='add'>+  #   #    |-- sub0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- sub1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #</div><div class='add'>+  # If +src+ and +dest+ are both paths to directories,</div><div class='add'>+  # creates links &lt;tt&gt;dest/src&lt;/tt&gt; and descendents</div><div class='add'>+  # pointing to +src+ and its descendents:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src1')</div><div class='add'>+  #   # =&gt; src1</div><div class='add'>+  #   #    |-- sub0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- sub1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #   Bundler::FileUtils.mkdir('dest1')</div><div class='add'>+  #   Bundler::FileUtils.cp_lr('src1', 'dest1')</div><div class='add'>+  #   tree('dest1')</div><div class='add'>+  #   # =&gt; dest1</div><div class='add'>+  #   #    `-- src1</div><div class='add'>+  #   #        |-- sub0</div><div class='add'>+  #   #        |   |-- src0.txt</div><div class='add'>+  #   #        |   `-- src1.txt</div><div class='add'>+  #   #        `-- sub1</div><div class='add'>+  #   #            |-- src2.txt</div><div class='add'>+  #   #            `-- src3.txt</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is an array of paths to entries and +dest+ is the path to a directory,</div><div class='add'>+  # for each path +filepath+ in +src+, creates a link at &lt;tt&gt;dest/filepath&lt;/tt&gt;</div><div class='add'>+  # pointing to that path:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src2')</div><div class='add'>+  #   # =&gt; src2</div><div class='add'>+  #   #    |-- sub0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- sub1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #   Bundler::FileUtils.mkdir('dest2')</div><div class='add'>+  #   Bundler::FileUtils.cp_lr(['src2/sub0', 'src2/sub1'], 'dest2')</div><div class='add'>+  #   tree('dest2')</div><div class='add'>+  #   # =&gt; dest2</div><div class='add'>+  #   #    |-- sub0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- sub1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;dereference_root: false&lt;/tt&gt; - if +src+ is a symbolic link,</div><div class='add'>+  #   does not dereference it.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not create links.</div><div class='add'>+  # - &lt;tt&gt;remove_destination: true&lt;/tt&gt; - removes +dest+ before creating links.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.cp_lr('src0', 'dest0', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.cp_lr('src1', 'dest1', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.cp_lr(['src2/sub0', 'src2/sub1'], 'dest2', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     cp -lr src0 dest0</div><div class='add'>+  #     cp -lr src1 dest1</div><div class='add'>+  #     cp -lr src2/sub0 src2/sub1 dest2</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if +dest+ is the path to an existing file or directory</div><div class='add'>+  # and keyword argument &lt;tt&gt;remove_destination: true&lt;/tt&gt; is not given.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='add'>+  #</div><div class='add'>+  def cp_lr(src, dest, noop: nil, verbose: nil,</div><div class='add'>+            dereference_root: true, remove_destination: false)</div><div class='add'>+    fu_output_message "cp -lr#{remove_destination ? ' --remove-destination' : ''} #{[src,dest].flatten.join ' '}" if verbose</div><div class='add'>+    return if noop</div><div class='add'>+    fu_each_src_dest(src, dest) do |s, d|</div><div class='add'>+      link_entry s, d, dereference_root, remove_destination</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  module_function :cp_lr</div><div class='add'>+</div><div class='add'>+  # Creates {symbolic links}[https://en.wikipedia.org/wiki/Symbolic_link].</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to an existing file:</div><div class='add'>+  #</div><div class='add'>+  # - When +dest+ is the path to a non-existent file,</div><div class='add'>+  #   creates a symbolic link at +dest+ pointing to +src+:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.touch('src0.txt')</div><div class='add'>+  #     File.exist?('dest0.txt')   # =&gt; false</div><div class='add'>+  #     Bundler::FileUtils.ln_s('src0.txt', 'dest0.txt')</div><div class='add'>+  #     File.symlink?('dest0.txt') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # - When +dest+ is the path to an existing file,</div><div class='add'>+  #   creates a symbolic link at +dest+ pointing to +src+</div><div class='add'>+  #   if and only if keyword argument &lt;tt&gt;force: true&lt;/tt&gt; is given</div><div class='add'>+  #   (raises an exception otherwise):</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.touch('src1.txt')</div><div class='add'>+  #     Bundler::FileUtils.touch('dest1.txt')</div><div class='add'>+  #     Bundler::FileUtils.ln_s('src1.txt', 'dest1.txt', force: true)</div><div class='add'>+  #     FileTest.symlink?('dest1.txt') # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   Bundler::FileUtils.ln_s(target, link, force: nil, noop: nil, verbose: nil)</div><div class='del'>-  #   Bundler::FileUtils.ln_s(target,  dir, force: nil, noop: nil, verbose: nil)</div><div class='del'>-  #   Bundler::FileUtils.ln_s(targets, dir, force: nil, noop: nil, verbose: nil)</div><div class='add'>+  #     Bundler::FileUtils.ln_s('src1.txt', 'dest1.txt') # Raises Errno::EEXIST.</div><div class='ctx'>   #</div><div class='del'>-  # In the first form, creates a symbolic link +link+ which points to +target+.</div><div class='del'>-  # If +link+ already exists, raises Errno::EEXIST.</div><div class='del'>-  # But if the :force option is set, overwrites +link+.</div><div class='add'>+  # If +dest+ is the path to a directory,</div><div class='add'>+  # creates a symbolic link at &lt;tt&gt;dest/src&lt;/tt&gt; pointing to +src+:</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.ln_s '/usr/bin/ruby', '/usr/local/bin/ruby'</div><div class='del'>-  #   Bundler::FileUtils.ln_s 'verylongsourcefilename.c', 'c', force: true</div><div class='add'>+  #   Bundler::FileUtils.touch('src2.txt')</div><div class='add'>+  #   Bundler::FileUtils.mkdir('destdir2')</div><div class='add'>+  #   Bundler::FileUtils.ln_s('src2.txt', 'destdir2')</div><div class='add'>+  #   File.symlink?('destdir2/src2.txt') # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  # In the second form, creates a link +dir/target+ pointing to +target+.</div><div class='del'>-  # In the third form, creates several symbolic links in the directory +dir+,</div><div class='del'>-  # pointing to each item in +targets+.</div><div class='del'>-  # If +dir+ is not a directory, raises Errno::ENOTDIR.</div><div class='add'>+  # If +src+ is an array of paths to existing files and +dest+ is a directory,</div><div class='add'>+  # for each child +child+ in +src+ creates a symbolic link &lt;tt&gt;dest/child&lt;/tt&gt;</div><div class='add'>+  # pointing to +child+:</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.ln_s Dir.glob('/bin/*.rb'), '/home/foo/bin'</div><div class='add'>+  #   Bundler::FileUtils.mkdir('srcdir3')</div><div class='add'>+  #   Bundler::FileUtils.touch('srcdir3/src0.txt')</div><div class='add'>+  #   Bundler::FileUtils.touch('srcdir3/src1.txt')</div><div class='add'>+  #   Bundler::FileUtils.mkdir('destdir3')</div><div class='add'>+  #   Bundler::FileUtils.ln_s(['srcdir3/src0.txt', 'srcdir3/src1.txt'], 'destdir3')</div><div class='add'>+  #   File.symlink?('destdir3/src0.txt') # =&gt; true</div><div class='add'>+  #   File.symlink?('destdir3/src1.txt') # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  def ln_s(src, dest, force: nil, noop: nil, verbose: nil)</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;force: true&lt;/tt&gt; - overwrites +dest+ if it exists.</div><div class='add'>+  # - &lt;tt&gt;relative: false&lt;/tt&gt; - create links relative to +dest+.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not create links.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.ln_s('src0.txt', 'dest0.txt', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.ln_s('src1.txt', 'destdir1', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.ln_s('src2.txt', 'dest2.txt', force: true, noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.ln_s(['srcdir3/src0.txt', 'srcdir3/src1.txt'], 'destdir3', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     ln -s src0.txt dest0.txt</div><div class='add'>+  #     ln -s src1.txt destdir1</div><div class='add'>+  #     ln -sf src2.txt dest2.txt</div><div class='add'>+  #     ln -s srcdir3/src0.txt srcdir3/src1.txt destdir3</div><div class='add'>+  #</div><div class='add'>+  # Bundler::FileUtils.symlink is an alias for Bundler::FileUtils.ln_s.</div><div class='add'>+  #</div><div class='add'>+  # Related: Bundler::FileUtils.ln_sf.</div><div class='add'>+  #</div><div class='add'>+  def ln_s(src, dest, force: nil, relative: false, target_directory: true, noop: nil, verbose: nil)</div><div class='add'>+    if relative</div><div class='add'>+      return ln_sr(src, dest, force: force, noop: noop, verbose: verbose)</div><div class='add'>+    end</div><div class='ctx'>     fu_output_message "ln -s#{force ? 'f' : ''} #{[src,dest].flatten.join ' '}" if verbose</div><div class='ctx'>     return if noop</div><div class='ctx'>     fu_each_src_dest0(src, dest) do |s,d|</div><div class='hunk'>@@ -326,29 +727,158 @@ module Bundler::FileUtils</div><div class='ctx'>   alias symlink ln_s</div><div class='ctx'>   module_function :symlink</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   Bundler::FileUtils.ln_sf(*args)</div><div class='del'>-  #</div><div class='del'>-  # Same as</div><div class='del'>-  #</div><div class='del'>-  #   Bundler::FileUtils.ln_s(*args, force: true)</div><div class='add'>+  # Like Bundler::FileUtils.ln_s, but always with keyword argument &lt;tt&gt;force: true&lt;/tt&gt; given.</div><div class='ctx'>   #</div><div class='ctx'>   def ln_sf(src, dest, noop: nil, verbose: nil)</div><div class='ctx'>     ln_s src, dest, force: true, noop: noop, verbose: verbose</div><div class='ctx'>   end</div><div class='ctx'>   module_function :ln_sf</div><div class='ctx'> </div><div class='add'>+  # Like Bundler::FileUtils.ln_s, but create links relative to +dest+.</div><div class='ctx'>   #</div><div class='del'>-  # Copies a file content +src+ to +dest+.  If +dest+ is a directory,</div><div class='del'>-  # copies +src+ to +dest/src+.</div><div class='add'>+  def ln_sr(src, dest, target_directory: true, force: nil, noop: nil, verbose: nil)</div><div class='add'>+    options = "#{force ? 'f' : ''}#{target_directory ? '' : 'T'}"</div><div class='add'>+    dest = File.path(dest)</div><div class='add'>+    srcs = Array(src)</div><div class='add'>+    link = proc do |s, target_dir_p = true|</div><div class='add'>+      s = File.path(s)</div><div class='add'>+      if target_dir_p</div><div class='add'>+        d = File.join(destdirs = dest, File.basename(s))</div><div class='add'>+      else</div><div class='add'>+        destdirs = File.dirname(d = dest)</div><div class='add'>+      end</div><div class='add'>+      destdirs = fu_split_path(File.realpath(destdirs))</div><div class='add'>+      if fu_starting_path?(s)</div><div class='add'>+        srcdirs = fu_split_path((File.realdirpath(s) rescue File.expand_path(s)))</div><div class='add'>+        base = fu_relative_components_from(srcdirs, destdirs)</div><div class='add'>+        s = File.join(*base)</div><div class='add'>+      else</div><div class='add'>+        srcdirs = fu_clean_components(*fu_split_path(s))</div><div class='add'>+        base = fu_relative_components_from(fu_split_path(Dir.pwd), destdirs)</div><div class='add'>+        while srcdirs.first&amp;. == ".." and base.last&amp;.!=("..") and !fu_starting_path?(base.last)</div><div class='add'>+          srcdirs.shift</div><div class='add'>+          base.pop</div><div class='add'>+        end</div><div class='add'>+        s = File.join(*base, *srcdirs)</div><div class='add'>+      end</div><div class='add'>+      fu_output_message "ln -s#{options} #{s} #{d}" if verbose</div><div class='add'>+      next if noop</div><div class='add'>+      remove_file d, true if force</div><div class='add'>+      File.symlink s, d</div><div class='add'>+    end</div><div class='add'>+    case srcs.size</div><div class='add'>+    when 0</div><div class='add'>+    when 1</div><div class='add'>+      link[srcs[0], target_directory &amp;&amp; File.directory?(dest)]</div><div class='add'>+    else</div><div class='add'>+      srcs.each(&amp;link)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  module_function :ln_sr</div><div class='add'>+</div><div class='add'>+  # Creates {hard links}[https://en.wikipedia.org/wiki/Hard_link]; returns +nil+.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ and +dest+</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a file and +dest+ does not exist,</div><div class='add'>+  # creates a hard link at +dest+ pointing to +src+:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.touch('src0.txt')</div><div class='add'>+  #   File.exist?('dest0.txt') # =&gt; false</div><div class='add'>+  #   Bundler::FileUtils.link_entry('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.file?('dest0.txt')  # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  # If +src+ is a list of files, then +dest+ must be a directory.</div><div class='add'>+  # If +src+ is the path to a directory and +dest+ does not exist,</div><div class='add'>+  # recursively creates hard links at +dest+ pointing to paths in +src+:</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.cp 'eval.c', 'eval.c.org'</div><div class='del'>-  #   Bundler::FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6'</div><div class='del'>-  #   Bundler::FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6', :verbose =&gt; true</div><div class='del'>-  #   Bundler::FileUtils.cp 'symlink', 'dest'   # copy content, "dest" is not a symlink</div><div class='add'>+  #   Bundler::FileUtils.mkdir_p(['src1/dir0', 'src1/dir1'])</div><div class='add'>+  #   src_file_paths = [</div><div class='add'>+  #     'src1/dir0/t0.txt',</div><div class='add'>+  #     'src1/dir0/t1.txt',</div><div class='add'>+  #     'src1/dir1/t2.txt',</div><div class='add'>+  #     'src1/dir1/t3.txt',</div><div class='add'>+  #     ]</div><div class='add'>+  #   Bundler::FileUtils.touch(src_file_paths)</div><div class='add'>+  #   File.directory?('dest1')        # =&gt; true</div><div class='add'>+  #   Bundler::FileUtils.link_entry('src1', 'dest1')</div><div class='add'>+  #   File.file?('dest1/dir0/t0.txt') # =&gt; true</div><div class='add'>+  #   File.file?('dest1/dir0/t1.txt') # =&gt; true</div><div class='add'>+  #   File.file?('dest1/dir1/t2.txt') # =&gt; true</div><div class='add'>+  #   File.file?('dest1/dir1/t3.txt') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;dereference_root: true&lt;/tt&gt; - dereferences +src+ if it is a symbolic link.</div><div class='add'>+  # - &lt;tt&gt;remove_destination: true&lt;/tt&gt; - removes +dest+ before creating links.</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if +dest+ is the path to an existing file or directory</div><div class='add'>+  # and keyword argument &lt;tt&gt;remove_destination: true&lt;/tt&gt; is not given.</div><div class='add'>+  #</div><div class='add'>+  # Related: Bundler::FileUtils.ln (has different options).</div><div class='add'>+  #</div><div class='add'>+  def link_entry(src, dest, dereference_root = false, remove_destination = false)</div><div class='add'>+    Entry_.new(src, nil, dereference_root).traverse do |ent|</div><div class='add'>+      destent = Entry_.new(dest, ent.rel, false)</div><div class='add'>+      File.unlink destent.path if remove_destination &amp;&amp; File.file?(destent.path)</div><div class='add'>+      ent.link destent.path</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  module_function :link_entry</div><div class='add'>+</div><div class='add'>+  # Copies files.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a file and +dest+ is not the path to a directory,</div><div class='add'>+  # copies +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.touch('src0.txt')</div><div class='add'>+  #   File.exist?('dest0.txt') # =&gt; false</div><div class='add'>+  #   Bundler::FileUtils.cp('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.file?('dest0.txt')  # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a file and +dest+ is the path to a directory,</div><div class='add'>+  # copies +src+ to &lt;tt&gt;dest/src&lt;/tt&gt;:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.touch('src1.txt')</div><div class='add'>+  #   Bundler::FileUtils.mkdir('dest1')</div><div class='add'>+  #   Bundler::FileUtils.cp('src1.txt', 'dest1')</div><div class='add'>+  #   File.file?('dest1/src1.txt') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is an array of paths to files and +dest+ is the path to a directory,</div><div class='add'>+  # copies from each +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   src_file_paths = ['src2.txt', 'src2.dat']</div><div class='add'>+  #   Bundler::FileUtils.touch(src_file_paths)</div><div class='add'>+  #   Bundler::FileUtils.mkdir('dest2')</div><div class='add'>+  #   Bundler::FileUtils.cp(src_file_paths, 'dest2')</div><div class='add'>+  #   File.file?('dest2/src2.txt') # =&gt; true</div><div class='add'>+  #   File.file?('dest2/src2.dat') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;preserve: true&lt;/tt&gt; - preserves file times.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not copy files.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.cp('src0.txt', 'dest0.txt', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.cp('src1.txt', 'dest1', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.cp(src_file_paths, 'dest2', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     cp src0.txt dest0.txt</div><div class='add'>+  #     cp src1.txt dest1</div><div class='add'>+  #     cp src2.txt src2.dat dest2</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if +src+ is a directory.</div><div class='add'>+  #</div><div class='add'>+  # Bundler::FileUtils.copy is an alias for Bundler::FileUtils.cp.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def cp(src, dest, preserve: nil, noop: nil, verbose: nil)</div><div class='ctx'>     fu_output_message "cp#{preserve ? ' -p' : ''} #{[src,dest].flatten.join ' '}" if verbose</div><div class='hunk'>@@ -362,26 +892,105 @@ module Bundler::FileUtils</div><div class='ctx'>   alias copy cp</div><div class='ctx'>   module_function :copy</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Copies +src+ to +dest+. If +src+ is a directory, this method copies</div><div class='del'>-  # all its contents recursively. If +dest+ is a directory, copies</div><div class='del'>-  # +src+ to +dest/src+.</div><div class='del'>-  #</div><div class='del'>-  # +src+ can be a list of files.</div><div class='del'>-  #</div><div class='del'>-  #   # Installing Ruby library "mylib" under the site_ruby</div><div class='del'>-  #   Bundler::FileUtils.rm_r site_ruby + '/mylib', :force</div><div class='del'>-  #   Bundler::FileUtils.cp_r 'lib/', site_ruby + '/mylib'</div><div class='del'>-  #</div><div class='del'>-  #   # Examples of copying several files to target directory.</div><div class='del'>-  #   Bundler::FileUtils.cp_r %w(mail.rb field.rb debug/), site_ruby + '/tmail'</div><div class='del'>-  #   Bundler::FileUtils.cp_r Dir.glob('*.rb'), '/home/foo/lib/ruby', :noop =&gt; true, :verbose =&gt; true</div><div class='del'>-  #</div><div class='del'>-  #   # If you want to copy all contents of a directory instead of the</div><div class='del'>-  #   # directory itself, c.f. src/x -&gt; dest/x, src/y -&gt; dest/y,</div><div class='del'>-  #   # use following code.</div><div class='del'>-  #   Bundler::FileUtils.cp_r 'src/.', 'dest'     # cp_r('src', 'dest') makes dest/src,</div><div class='del'>-  #                                      # but this doesn't.</div><div class='add'>+  # Recursively copies files.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # The mode, owner, and group are retained in the copy;</div><div class='add'>+  # to change those, use Bundler::FileUtils.install instead.</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a file and +dest+ is not the path to a directory,</div><div class='add'>+  # copies +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.touch('src0.txt')</div><div class='add'>+  #   File.exist?('dest0.txt') # =&gt; false</div><div class='add'>+  #   Bundler::FileUtils.cp_r('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.file?('dest0.txt')  # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a file and +dest+ is the path to a directory,</div><div class='add'>+  # copies +src+ to &lt;tt&gt;dest/src&lt;/tt&gt;:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.touch('src1.txt')</div><div class='add'>+  #   Bundler::FileUtils.mkdir('dest1')</div><div class='add'>+  #   Bundler::FileUtils.cp_r('src1.txt', 'dest1')</div><div class='add'>+  #   File.file?('dest1/src1.txt') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a directory and +dest+ does not exist,</div><div class='add'>+  # recursively copies +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src2')</div><div class='add'>+  #   # =&gt; src2</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #    |-- src2.txt</div><div class='add'>+  #   #    `-- src3.txt</div><div class='add'>+  #   Bundler::FileUtils.exist?('dest2') # =&gt; false</div><div class='add'>+  #   Bundler::FileUtils.cp_r('src2', 'dest2')</div><div class='add'>+  #   tree('dest2')</div><div class='add'>+  #   # =&gt; dest2</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #    |-- src2.txt</div><div class='add'>+  #   #    `-- src3.txt</div><div class='add'>+  #</div><div class='add'>+  # If +src+ and +dest+ are paths to directories,</div><div class='add'>+  # recursively copies +src+ to &lt;tt&gt;dest/src&lt;/tt&gt;:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src3')</div><div class='add'>+  #   # =&gt; src3</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #    |-- src2.txt</div><div class='add'>+  #   #    `-- src3.txt</div><div class='add'>+  #   Bundler::FileUtils.mkdir('dest3')</div><div class='add'>+  #   Bundler::FileUtils.cp_r('src3', 'dest3')</div><div class='add'>+  #   tree('dest3')</div><div class='add'>+  #   # =&gt; dest3</div><div class='add'>+  #   #    `-- src3</div><div class='add'>+  #   #      |-- dir0</div><div class='add'>+  #   #      |   |-- src0.txt</div><div class='add'>+  #   #      |   `-- src1.txt</div><div class='add'>+  #   #      `-- dir1</div><div class='add'>+  #   #          |-- src2.txt</div><div class='add'>+  #   #          `-- src3.txt</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is an array of paths and +dest+ is a directory,</div><div class='add'>+  # recursively copies from each path in +src+ to +dest+;</div><div class='add'>+  # the paths in +src+ may point to files and/or directories.</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;dereference_root: false&lt;/tt&gt; - if +src+ is a symbolic link,</div><div class='add'>+  #   does not dereference it.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not copy files.</div><div class='add'>+  # - &lt;tt&gt;preserve: true&lt;/tt&gt; - preserves file times.</div><div class='add'>+  # - &lt;tt&gt;remove_destination: true&lt;/tt&gt; - removes +dest+ before copying files.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.cp_r('src0.txt', 'dest0.txt', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.cp_r('src1.txt', 'dest1', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.cp_r('src2', 'dest2', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.cp_r('src3', 'dest3', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     cp -r src0.txt dest0.txt</div><div class='add'>+  #     cp -r src1.txt dest1</div><div class='add'>+  #     cp -r src2 dest2</div><div class='add'>+  #     cp -r src3 dest3</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception of +src+ is the path to a directory</div><div class='add'>+  # and +dest+ is the path to a file.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def cp_r(src, dest, preserve: nil, noop: nil, verbose: nil,</div><div class='ctx'>            dereference_root: true, remove_destination: nil)</div><div class='hunk'>@@ -393,26 +1002,59 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :cp_r</div><div class='ctx'> </div><div class='add'>+  # Recursively copies files from +src+ to +dest+.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ and +dest+</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  # Copies a file system entry +src+ to +dest+.</div><div class='del'>-  # If +src+ is a directory, this method copies its contents recursively.</div><div class='del'>-  # This method preserves file types, c.f. symlink, directory...</div><div class='del'>-  # (FIFO, device files and etc. are not supported yet)</div><div class='add'>+  # If +src+ is the path to a file, copies +src+ to +dest+:</div><div class='ctx'>   #</div><div class='del'>-  # Both of +src+ and +dest+ must be a path name.</div><div class='del'>-  # +src+ must exist, +dest+ must not exist.</div><div class='add'>+  #   Bundler::FileUtils.touch('src0.txt')</div><div class='add'>+  #   File.exist?('dest0.txt') # =&gt; false</div><div class='add'>+  #   Bundler::FileUtils.copy_entry('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.file?('dest0.txt')  # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  # If +preserve+ is true, this method preserves owner, group, and</div><div class='del'>-  # modified time.  Permissions are copied regardless +preserve+.</div><div class='add'>+  # If +src+ is a directory, recursively copies +src+ to +dest+:</div><div class='ctx'>   #</div><div class='del'>-  # If +dereference_root+ is true, this method dereference tree root.</div><div class='add'>+  #   tree('src1')</div><div class='add'>+  #   # =&gt; src1</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #   Bundler::FileUtils.copy_entry('src1', 'dest1')</div><div class='add'>+  #   tree('dest1')</div><div class='add'>+  #   # =&gt; dest1</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='ctx'>   #</div><div class='del'>-  # If +remove_destination+ is true, this method removes each destination file before copy.</div><div class='add'>+  # The recursive copying preserves file types for regular files,</div><div class='add'>+  # directories, and symbolic links;</div><div class='add'>+  # other file types (FIFO streams, device files, etc.) are not supported.</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;dereference_root: true&lt;/tt&gt; - if +src+ is a symbolic link,</div><div class='add'>+  #   follows the link.</div><div class='add'>+  # - &lt;tt&gt;preserve: true&lt;/tt&gt; - preserves file times.</div><div class='add'>+  # - &lt;tt&gt;remove_destination: true&lt;/tt&gt; - removes +dest+ before copying files.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def copy_entry(src, dest, preserve = false, dereference_root = false, remove_destination = false)</div><div class='del'>-    Entry_.new(src, nil, dereference_root).wrap_traverse(proc do |ent|</div><div class='add'>+    if dereference_root</div><div class='add'>+      src = File.realpath(src)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    Entry_.new(src, nil, false).wrap_traverse(proc do |ent|</div><div class='ctx'>       destent = Entry_.new(dest, ent.rel, false)</div><div class='del'>-      File.unlink destent.path if remove_destination &amp;&amp; File.file?(destent.path)</div><div class='add'>+      File.unlink destent.path if remove_destination &amp;&amp; (File.file?(destent.path) || File.symlink?(destent.path))</div><div class='ctx'>       ent.copy destent.path</div><div class='ctx'>     end, proc do |ent|</div><div class='ctx'>       destent = Entry_.new(dest, ent.rel, false)</div><div class='hunk'>@@ -421,9 +1063,25 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :copy_entry</div><div class='ctx'> </div><div class='add'>+  # Copies file from +src+ to +dest+, which should not be directories.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ and +dest+</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # Examples:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.touch('src0.txt')</div><div class='add'>+  #   Bundler::FileUtils.copy_file('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.file?('dest0.txt') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='ctx'>   #</div><div class='del'>-  # Copies file contents of +src+ to +dest+.</div><div class='del'>-  # Both of +src+ and +dest+ must be a path name.</div><div class='add'>+  # - &lt;tt&gt;dereference: false&lt;/tt&gt; - if +src+ is a symbolic link,</div><div class='add'>+  #   does not follow the link.</div><div class='add'>+  # - &lt;tt&gt;preserve: true&lt;/tt&gt; - preserves file times.</div><div class='add'>+  # - &lt;tt&gt;remove_destination: true&lt;/tt&gt; - removes +dest+ before copying files.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def copy_file(src, dest, preserve = false, dereference = true)</div><div class='ctx'>     ent = Entry_.new(src, nil, dereference)</div><div class='hunk'>@@ -432,25 +1090,81 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :copy_file</div><div class='ctx'> </div><div class='add'>+  # Copies \IO stream +src+ to \IO stream +dest+ via</div><div class='add'>+  # {IO.copy_stream}[rdoc-ref:IO.copy_stream].</div><div class='ctx'>   #</div><div class='del'>-  # Copies stream +src+ to +dest+.</div><div class='del'>-  # +src+ must respond to #read(n) and</div><div class='del'>-  # +dest+ must respond to #write(str).</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def copy_stream(src, dest)</div><div class='ctx'>     IO.copy_stream(src, dest)</div><div class='ctx'>   end</div><div class='ctx'>   module_function :copy_stream</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Moves file(s) +src+ to +dest+.  If +file+ and +dest+ exist on the different</div><div class='del'>-  # disk partition, the file is copied then the original file is removed.</div><div class='del'>-  #</div><div class='del'>-  #   Bundler::FileUtils.mv 'badname.rb', 'goodname.rb'</div><div class='del'>-  #   Bundler::FileUtils.mv 'stuff.rb', '/notexist/lib/ruby', :force =&gt; true  # no error</div><div class='del'>-  #</div><div class='del'>-  #   Bundler::FileUtils.mv %w(junk.txt dust.txt), '/home/foo/.trash/'</div><div class='del'>-  #   Bundler::FileUtils.mv Dir.glob('test*.rb'), 'test', :noop =&gt; true, :verbose =&gt; true</div><div class='add'>+  # Moves entries.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ and +dest+ are on different file systems,</div><div class='add'>+  # first copies, then removes +src+.</div><div class='add'>+  #</div><div class='add'>+  # May cause a local vulnerability if not called with keyword argument</div><div class='add'>+  # &lt;tt&gt;secure: true&lt;/tt&gt;;</div><div class='add'>+  # see {Avoiding the TOCTTOU Vulnerability}[rdoc-ref:FileUtils@Avoiding+the+TOCTTOU+Vulnerability].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a single file or directory and +dest+ does not exist,</div><div class='add'>+  # moves +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src0')</div><div class='add'>+  #   # =&gt; src0</div><div class='add'>+  #   #    |-- src0.txt</div><div class='add'>+  #   #    `-- src1.txt</div><div class='add'>+  #   File.exist?('dest0') # =&gt; false</div><div class='add'>+  #   Bundler::FileUtils.mv('src0', 'dest0')</div><div class='add'>+  #   File.exist?('src0')  # =&gt; false</div><div class='add'>+  #   tree('dest0')</div><div class='add'>+  #   # =&gt; dest0</div><div class='add'>+  #   #    |-- src0.txt</div><div class='add'>+  #   #    `-- src1.txt</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is an array of paths to files and directories</div><div class='add'>+  # and +dest+ is the path to a directory,</div><div class='add'>+  # copies from each path in the array to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   File.file?('src1.txt') # =&gt; true</div><div class='add'>+  #   tree('src1')</div><div class='add'>+  #   # =&gt; src1</div><div class='add'>+  #   #    |-- src.dat</div><div class='add'>+  #   #    `-- src.txt</div><div class='add'>+  #   Dir.empty?('dest1')    # =&gt; true</div><div class='add'>+  #   Bundler::FileUtils.mv(['src1.txt', 'src1'], 'dest1')</div><div class='add'>+  #   tree('dest1')</div><div class='add'>+  #   # =&gt; dest1</div><div class='add'>+  #   #    |-- src1</div><div class='add'>+  #   #    |   |-- src.dat</div><div class='add'>+  #   #    |   `-- src.txt</div><div class='add'>+  #   #    `-- src1.txt</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;force: true&lt;/tt&gt; - if the move includes removing +src+</div><div class='add'>+  #   (that is, if +src+ and +dest+ are on different file systems),</div><div class='add'>+  #   ignores raised exceptions of StandardError and its descendants.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not move files.</div><div class='add'>+  # - &lt;tt&gt;secure: true&lt;/tt&gt; - removes +src+ securely;</div><div class='add'>+  #   see details at Bundler::FileUtils.remove_entry_secure.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.mv('src0', 'dest0', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.mv(['src1.txt', 'src1'], 'dest1', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     mv src0 dest0</div><div class='add'>+  #     mv src1.txt src1 dest1</div><div class='add'>+  #</div><div class='add'>+  # Bundler::FileUtils.move is an alias for Bundler::FileUtils.mv.</div><div class='ctx'>   #</div><div class='ctx'>   def mv(src, dest, force: nil, noop: nil, verbose: nil, secure: nil)</div><div class='ctx'>     fu_output_message "mv#{force ? ' -f' : ''} #{[src,dest].flatten.join ' '}" if verbose</div><div class='hunk'>@@ -461,13 +1175,12 @@ module Bundler::FileUtils</div><div class='ctx'>         if destent.exist?</div><div class='ctx'>           if destent.directory?</div><div class='ctx'>             raise Errno::EEXIST, d</div><div class='del'>-          else</div><div class='del'>-            destent.remove_file if rename_cannot_overwrite_file?</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'>         begin</div><div class='ctx'>           File.rename s, d</div><div class='del'>-        rescue Errno::EXDEV</div><div class='add'>+        rescue Errno::EXDEV,</div><div class='add'>+               Errno::EPERM # move from unencrypted to encrypted dir (ext4)</div><div class='ctx'>           copy_entry s, d, true</div><div class='ctx'>           if secure</div><div class='ctx'>             remove_entry_secure s, force</div><div class='hunk'>@@ -485,18 +1198,34 @@ module Bundler::FileUtils</div><div class='ctx'>   alias move mv</div><div class='ctx'>   module_function :move</div><div class='ctx'> </div><div class='del'>-  def rename_cannot_overwrite_file?   #:nodoc:</div><div class='del'>-    /emx/ =~ RUBY_PLATFORM</div><div class='del'>-  end</div><div class='del'>-  private_module_function :rename_cannot_overwrite_file?</div><div class='del'>-</div><div class='add'>+  # Removes entries at the paths in the given +list+</div><div class='add'>+  # (a single path or an array of paths)</div><div class='add'>+  # returns +list+, if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # With no keyword arguments, removes files at the paths given in +list+:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.touch(['src0.txt', 'src0.dat'])</div><div class='add'>+  #   Bundler::FileUtils.rm(['src0.dat', 'src0.txt']) # =&gt; ["src0.dat", "src0.txt"]</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='ctx'>   #</div><div class='del'>-  # Remove file(s) specified in +list+.  This method cannot remove directories.</div><div class='del'>-  # All StandardErrors are ignored when the :force option is set.</div><div class='add'>+  # - &lt;tt&gt;force: true&lt;/tt&gt; - ignores raised exceptions of StandardError</div><div class='add'>+  #   and its descendants.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not remove files; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.rm %w( junk.txt dust.txt )</div><div class='del'>-  #   Bundler::FileUtils.rm Dir.glob('*.so')</div><div class='del'>-  #   Bundler::FileUtils.rm 'NotExistFile', :force =&gt; true   # never raises exception</div><div class='add'>+  #     Bundler::FileUtils.rm(['src0.dat', 'src0.txt'], noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     rm src0.dat src0.txt</div><div class='add'>+  #</div><div class='add'>+  # Bundler::FileUtils.remove is an alias for Bundler::FileUtils.rm.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def rm(list, force: nil, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -512,10 +1241,18 @@ module Bundler::FileUtils</div><div class='ctx'>   alias remove rm</div><div class='ctx'>   module_function :remove</div><div class='ctx'> </div><div class='add'>+  # Equivalent to:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.rm(list, force: true, **kwargs)</div><div class='ctx'>   #</div><div class='del'>-  # Equivalent to</div><div class='add'>+  # Argument +list+ (a single path or an array of paths)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.rm(list, :force =&gt; true)</div><div class='add'>+  # See Bundler::FileUtils.rm for keyword arguments.</div><div class='add'>+  #</div><div class='add'>+  # Bundler::FileUtils.safe_unlink is an alias for Bundler::FileUtils.rm_f.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def rm_f(list, noop: nil, verbose: nil)</div><div class='ctx'>     rm list, force: true, noop: noop, verbose: verbose</div><div class='hunk'>@@ -525,24 +1262,55 @@ module Bundler::FileUtils</div><div class='ctx'>   alias safe_unlink rm_f</div><div class='ctx'>   module_function :safe_unlink</div><div class='ctx'> </div><div class='add'>+  # Removes entries at the paths in the given +list+</div><div class='add'>+  # (a single path or an array of paths);</div><div class='add'>+  # returns +list+, if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # May cause a local vulnerability if not called with keyword argument</div><div class='add'>+  # &lt;tt&gt;secure: true&lt;/tt&gt;;</div><div class='add'>+  # see {Avoiding the TOCTTOU Vulnerability}[rdoc-ref:FileUtils@Avoiding+the+TOCTTOU+Vulnerability].</div><div class='add'>+  #</div><div class='add'>+  # For each file path, removes the file at that path:</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::FileUtils.touch(['src0.txt', 'src0.dat'])</div><div class='add'>+  #   Bundler::FileUtils.rm_r(['src0.dat', 'src0.txt'])</div><div class='add'>+  #   File.exist?('src0.txt') # =&gt; false</div><div class='add'>+  #   File.exist?('src0.dat') # =&gt; false</div><div class='add'>+  #</div><div class='add'>+  # For each directory path, recursively removes files and directories:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src1')</div><div class='add'>+  #   # =&gt; src1</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #   Bundler::FileUtils.rm_r('src1')</div><div class='add'>+  #   File.exist?('src1') # =&gt; false</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;force: true&lt;/tt&gt; - ignores raised exceptions of StandardError</div><div class='add'>+  #   and its descendants.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not remove entries; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;secure: true&lt;/tt&gt; - removes +src+ securely;</div><div class='add'>+  #   see details at Bundler::FileUtils.remove_entry_secure.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='ctx'>   #</div><div class='del'>-  # remove files +list+[0] +list+[1]... If +list+[n] is a directory,</div><div class='del'>-  # removes its all contents recursively. This method ignores</div><div class='del'>-  # StandardError when :force option is set.</div><div class='add'>+  #     Bundler::FileUtils.rm_r(['src0.dat', 'src0.txt'], noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.rm_r('src1', noop: true, verbose: true)</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.rm_r Dir.glob('/tmp/*')</div><div class='del'>-  #   Bundler::FileUtils.rm_r 'some_dir', :force =&gt; true</div><div class='add'>+  #   Output:</div><div class='ctx'>   #</div><div class='del'>-  # WARNING: This method causes local vulnerability</div><div class='del'>-  # if one of parent directories or removing directory tree are world</div><div class='del'>-  # writable (including /tmp, whose permission is 1777), and the current</div><div class='del'>-  # process has strong privilege such as Unix super user (root), and the</div><div class='del'>-  # system has symbolic link.  For secure removing, read the documentation</div><div class='del'>-  # of #remove_entry_secure carefully, and set :secure option to true.</div><div class='del'>-  # Default is :secure=&gt;false.</div><div class='add'>+  #     rm -r src0.dat src0.txt</div><div class='add'>+  #     rm -r src1</div><div class='ctx'>   #</div><div class='del'>-  # NOTE: This method calls #remove_entry_secure if :secure option is set.</div><div class='del'>-  # See also #remove_entry_secure.</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def rm_r(list, force: nil, noop: nil, verbose: nil, secure: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -558,13 +1326,22 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :rm_r</div><div class='ctx'> </div><div class='add'>+  # Equivalent to:</div><div class='ctx'>   #</div><div class='del'>-  # Equivalent to</div><div class='add'>+  #   Bundler::FileUtils.rm_r(list, force: true, **kwargs)</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.rm_r(list, :force =&gt; true)</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  # WARNING: This method causes local vulnerability.</div><div class='del'>-  # Read the documentation of #rm_r first.</div><div class='add'>+  # May cause a local vulnerability if not called with keyword argument</div><div class='add'>+  # &lt;tt&gt;secure: true&lt;/tt&gt;;</div><div class='add'>+  # see {Avoiding the TOCTTOU Vulnerability}[rdoc-ref:FileUtils@Avoiding+the+TOCTTOU+Vulnerability].</div><div class='add'>+  #</div><div class='add'>+  # See Bundler::FileUtils.rm_r for keyword arguments.</div><div class='add'>+  #</div><div class='add'>+  # Bundler::FileUtils.rmtree is an alias for Bundler::FileUtils.rm_rf.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def rm_rf(list, noop: nil, verbose: nil, secure: nil)</div><div class='ctx'>     rm_r list, force: true, noop: noop, verbose: verbose, secure: secure</div><div class='hunk'>@@ -574,37 +1351,20 @@ module Bundler::FileUtils</div><div class='ctx'>   alias rmtree rm_rf</div><div class='ctx'>   module_function :rmtree</div><div class='ctx'> </div><div class='add'>+  # Securely removes the entry given by +path+,</div><div class='add'>+  # which should be the entry for a regular file, a symbolic link,</div><div class='add'>+  # or a directory.</div><div class='ctx'>   #</div><div class='del'>-  # This method removes a file system entry +path+.  +path+ shall be a</div><div class='del'>-  # regular file, a directory, or something.  If +path+ is a directory,</div><div class='del'>-  # remove it recursively.  This method is required to avoid TOCTTOU</div><div class='del'>-  # (time-of-check-to-time-of-use) local security vulnerability of #rm_r.</div><div class='del'>-  # #rm_r causes security hole when:</div><div class='del'>-  #</div><div class='del'>-  # * Parent directory is world writable (including /tmp).</div><div class='del'>-  # * Removing directory tree includes world writable directory.</div><div class='del'>-  # * The system has symbolic link.</div><div class='del'>-  #</div><div class='del'>-  # To avoid this security hole, this method applies special preprocess.</div><div class='del'>-  # If +path+ is a directory, this method chown(2) and chmod(2) all</div><div class='del'>-  # removing directories.  This requires the current process is the</div><div class='del'>-  # owner of the removing whole directory tree, or is the super user (root).</div><div class='del'>-  #</div><div class='del'>-  # WARNING: You must ensure that *ALL* parent directories cannot be</div><div class='del'>-  # moved by other untrusted users.  For example, parent directories</div><div class='del'>-  # should not be owned by untrusted users, and should not be world</div><div class='del'>-  # writable except when the sticky bit set.</div><div class='add'>+  # Argument +path+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  # WARNING: Only the owner of the removing directory tree, or Unix super</div><div class='del'>-  # user (root) should invoke this method.  Otherwise this method does not</div><div class='del'>-  # work.</div><div class='add'>+  # Avoids a local vulnerability that can exist in certain circumstances;</div><div class='add'>+  # see {Avoiding the TOCTTOU Vulnerability}[rdoc-ref:FileUtils@Avoiding+the+TOCTTOU+Vulnerability].</div><div class='ctx'>   #</div><div class='del'>-  # For details of this security vulnerability, see Perl's case:</div><div class='add'>+  # Optional argument +force+ specifies whether to ignore</div><div class='add'>+  # raised exceptions of StandardError and its descendants.</div><div class='ctx'>   #</div><div class='del'>-  # * http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0448</div><div class='del'>-  # * http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0452</div><div class='del'>-  #</div><div class='del'>-  # For fileutils.rb, this vulnerability is reported in [ruby-dev:26100].</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def remove_entry_secure(path, force = false)</div><div class='ctx'>     unless fu_have_symlink?</div><div class='hunk'>@@ -626,22 +1386,38 @@ module Bundler::FileUtils</div><div class='ctx'>     unless parent_st.sticky?</div><div class='ctx'>       raise ArgumentError, "parent directory is world writable, Bundler::FileUtils#remove_entry_secure does not work; abort: #{path.inspect} (parent directory mode #{'%o' % parent_st.mode})"</div><div class='ctx'>     end</div><div class='add'>+</div><div class='ctx'>     # freeze tree root</div><div class='ctx'>     euid = Process.euid</div><div class='del'>-    File.open(fullpath + '/.') {|f|</div><div class='del'>-      unless fu_stat_identical_entry?(st, f.stat)</div><div class='del'>-        # symlink (TOC-to-TOU attack?)</div><div class='del'>-        File.unlink fullpath</div><div class='del'>-        return</div><div class='del'>-      end</div><div class='del'>-      f.chown euid, -1</div><div class='del'>-      f.chmod 0700</div><div class='del'>-      unless fu_stat_identical_entry?(st, File.lstat(fullpath))</div><div class='del'>-        # TOC-to-TOU attack?</div><div class='del'>-        File.unlink fullpath</div><div class='del'>-        return</div><div class='del'>-      end</div><div class='del'>-    }</div><div class='add'>+    dot_file = fullpath + "/."</div><div class='add'>+    begin</div><div class='add'>+      File.open(dot_file) {|f|</div><div class='add'>+        unless fu_stat_identical_entry?(st, f.stat)</div><div class='add'>+          # symlink (TOC-to-TOU attack?)</div><div class='add'>+          File.unlink fullpath</div><div class='add'>+          return</div><div class='add'>+        end</div><div class='add'>+        f.chown euid, -1</div><div class='add'>+        f.chmod 0700</div><div class='add'>+      }</div><div class='add'>+    rescue Errno::EISDIR # JRuby in non-native mode can't open files as dirs</div><div class='add'>+      File.lstat(dot_file).tap {|fstat|</div><div class='add'>+        unless fu_stat_identical_entry?(st, fstat)</div><div class='add'>+          # symlink (TOC-to-TOU attack?)</div><div class='add'>+          File.unlink fullpath</div><div class='add'>+          return</div><div class='add'>+        end</div><div class='add'>+        File.chown euid, -1, dot_file</div><div class='add'>+        File.chmod 0700, dot_file</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    unless fu_stat_identical_entry?(st, File.lstat(fullpath))</div><div class='add'>+      # TOC-to-TOU attack?</div><div class='add'>+      File.unlink fullpath</div><div class='add'>+      return</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # ---- tree root is frozen ----</div><div class='ctx'>     root = Entry_.new(path)</div><div class='ctx'>     root.preorder_traverse do |ent|</div><div class='hunk'>@@ -676,12 +1452,17 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :fu_stat_identical_entry?</div><div class='ctx'> </div><div class='add'>+  # Removes the entry given by +path+,</div><div class='add'>+  # which should be the entry for a regular file, a symbolic link,</div><div class='add'>+  # or a directory.</div><div class='add'>+  #</div><div class='add'>+  # Argument +path+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  # This method removes a file system entry +path+.</div><div class='del'>-  # +path+ might be a regular file, a directory, or something.</div><div class='del'>-  # If +path+ is a directory, remove it recursively.</div><div class='add'>+  # Optional argument +force+ specifies whether to ignore</div><div class='add'>+  # raised exceptions of StandardError and its descendants.</div><div class='ctx'>   #</div><div class='del'>-  # See also #remove_entry_secure.</div><div class='add'>+  # Related: Bundler::FileUtils.remove_entry_secure.</div><div class='ctx'>   #</div><div class='ctx'>   def remove_entry(path, force = false)</div><div class='ctx'>     Entry_.new(path).postorder_traverse do |ent|</div><div class='hunk'>@@ -696,9 +1477,16 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :remove_entry</div><div class='ctx'> </div><div class='add'>+  # Removes the file entry given by +path+,</div><div class='add'>+  # which should be the entry for a regular file or a symbolic link.</div><div class='add'>+  #</div><div class='add'>+  # Argument +path+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  # Removes a file +path+.</div><div class='del'>-  # This method ignores StandardError if +force+ is true.</div><div class='add'>+  # Optional argument +force+ specifies whether to ignore</div><div class='add'>+  # raised exceptions of StandardError and its descendants.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def remove_file(path, force = false)</div><div class='ctx'>     Entry_.new(path).remove_file</div><div class='hunk'>@@ -707,20 +1495,32 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :remove_file</div><div class='ctx'> </div><div class='add'>+  # Recursively removes the directory entry given by +path+,</div><div class='add'>+  # which should be the entry for a regular file, a symbolic link,</div><div class='add'>+  # or a directory.</div><div class='add'>+  #</div><div class='add'>+  # Argument +path+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # Optional argument +force+ specifies whether to ignore</div><div class='add'>+  # raised exceptions of StandardError and its descendants.</div><div class='ctx'>   #</div><div class='del'>-  # Removes a directory +dir+ and its contents recursively.</div><div class='del'>-  # This method ignores StandardError if +force+ is true.</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def remove_dir(path, force = false)</div><div class='ctx'>     remove_entry path, force   # FIXME?? check if it is a directory</div><div class='ctx'>   end</div><div class='ctx'>   module_function :remove_dir</div><div class='ctx'> </div><div class='add'>+  # Returns +true+ if the contents of files +a+ and +b+ are identical,</div><div class='add'>+  # +false+ otherwise.</div><div class='ctx'>   #</div><div class='del'>-  # Returns true if the contents of a file +a+ and a file +b+ are identical.</div><div class='add'>+  # Arguments +a+ and +b+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.compare_file('somefile', 'somefile')       #=&gt; true</div><div class='del'>-  #   Bundler::FileUtils.compare_file('/dev/null', '/dev/urandom')  #=&gt; false</div><div class='add'>+  # Bundler::FileUtils.identical? and Bundler::FileUtils.cmp are aliases for Bundler::FileUtils.compare_file.</div><div class='add'>+  #</div><div class='add'>+  # Related: Bundler::FileUtils.compare_stream.</div><div class='ctx'>   #</div><div class='ctx'>   def compare_file(a, b)</div><div class='ctx'>     return false unless File.size(a) == File.size(b)</div><div class='hunk'>@@ -737,13 +1537,20 @@ module Bundler::FileUtils</div><div class='ctx'>   module_function :identical?</div><div class='ctx'>   module_function :cmp</div><div class='ctx'> </div><div class='add'>+  # Returns +true+ if the contents of streams +a+ and +b+ are identical,</div><div class='add'>+  # +false+ otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +a+ and +b+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  # Returns true if the contents of a stream +a+ and +b+ are identical.</div><div class='add'>+  # Related: Bundler::FileUtils.compare_file.</div><div class='ctx'>   #</div><div class='ctx'>   def compare_stream(a, b)</div><div class='ctx'>     bsize = fu_stream_blksize(a, b)</div><div class='add'>+</div><div class='ctx'>     sa = String.new(capacity: bsize)</div><div class='ctx'>     sb = String.new(capacity: bsize)</div><div class='add'>+</div><div class='ctx'>     begin</div><div class='ctx'>       a.read(bsize, sa)</div><div class='ctx'>       b.read(bsize, sb)</div><div class='hunk'>@@ -753,13 +1560,69 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :compare_stream</div><div class='ctx'> </div><div class='add'>+  # Copies a file entry.</div><div class='add'>+  # See {install(1)}[https://man7.org/linux/man-pages/man1/install.1.html].</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments];</div><div class='add'>+  #</div><div class='add'>+  # If the entry at +dest+ does not exist, copies from +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   File.read('src0.txt')    # =&gt; "aaa\n"</div><div class='add'>+  #   File.exist?('dest0.txt') # =&gt; false</div><div class='add'>+  #   Bundler::FileUtils.install('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.read('dest0.txt')   # =&gt; "aaa\n"</div><div class='add'>+  #</div><div class='add'>+  # If +dest+ is a file entry, copies from +src+ to +dest+, overwriting:</div><div class='add'>+  #</div><div class='add'>+  #   File.read('src1.txt')  # =&gt; "aaa\n"</div><div class='add'>+  #   File.read('dest1.txt') # =&gt; "bbb\n"</div><div class='add'>+  #   Bundler::FileUtils.install('src1.txt', 'dest1.txt')</div><div class='add'>+  #   File.read('dest1.txt') # =&gt; "aaa\n"</div><div class='add'>+  #</div><div class='add'>+  # If +dest+ is a directory entry, copies from +src+ to &lt;tt&gt;dest/src&lt;/tt&gt;,</div><div class='add'>+  # overwriting if necessary:</div><div class='add'>+  #</div><div class='add'>+  #   File.read('src2.txt')       # =&gt; "aaa\n"</div><div class='add'>+  #   File.read('dest2/src2.txt') # =&gt; "bbb\n"</div><div class='add'>+  #   Bundler::FileUtils.install('src2.txt', 'dest2')</div><div class='add'>+  #   File.read('dest2/src2.txt') # =&gt; "aaa\n"</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is an array of paths and +dest+ points to a directory,</div><div class='add'>+  # copies each path +path+ in +src+ to &lt;tt&gt;dest/path&lt;/tt&gt;:</div><div class='add'>+  #</div><div class='add'>+  #   File.file?('src3.txt') # =&gt; true</div><div class='add'>+  #   File.file?('src3.dat') # =&gt; true</div><div class='add'>+  #   Bundler::FileUtils.mkdir('dest3')</div><div class='add'>+  #   Bundler::FileUtils.install(['src3.txt', 'src3.dat'], 'dest3')</div><div class='add'>+  #   File.file?('dest3/src3.txt') # =&gt; true</div><div class='add'>+  #   File.file?('dest3/src3.dat') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;group: &lt;i&gt;group&lt;/i&gt;&lt;/tt&gt; - changes the group if not +nil+,</div><div class='add'>+  #   using {File.chown}[rdoc-ref:File.chown].</div><div class='add'>+  # - &lt;tt&gt;mode: &lt;i&gt;permissions&lt;/i&gt;&lt;/tt&gt; - changes the permissions.</div><div class='add'>+  #   using {File.chmod}[rdoc-ref:File.chmod].</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not copy entries; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;owner: &lt;i&gt;owner&lt;/i&gt;&lt;/tt&gt; - changes the owner if not +nil+,</div><div class='add'>+  #   using {File.chown}[rdoc-ref:File.chown].</div><div class='add'>+  # - &lt;tt&gt;preserve: true&lt;/tt&gt; - preserve timestamps</div><div class='add'>+  #   using {File.utime}[rdoc-ref:File.utime].</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='ctx'>   #</div><div class='del'>-  # If +src+ is not same as +dest+, copies it and changes the permission</div><div class='del'>-  # mode to +mode+.  If +dest+ is a directory, destination is +dest+/+src+.</div><div class='del'>-  # This method removes destination before copy.</div><div class='add'>+  #     Bundler::FileUtils.install('src0.txt', 'dest0.txt', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.install('src1.txt', 'dest1.txt', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.install('src2.txt', 'dest2', noop: true, verbose: true)</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.install 'ruby', '/usr/local/bin/ruby', :mode =&gt; 0755, :verbose =&gt; true</div><div class='del'>-  #   Bundler::FileUtils.install 'lib.rb', '/usr/local/lib/ruby/site_ruby', :verbose =&gt; true</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     install -c src0.txt dest0.txt</div><div class='add'>+  #     install -c src1.txt dest1.txt</div><div class='add'>+  #     install -c src2.txt dest2</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def install(src, dest, mode: nil, owner: nil, group: nil, preserve: nil,</div><div class='ctx'>               noop: nil, verbose: nil)</div><div class='hunk'>@@ -819,11 +1682,8 @@ module Bundler::FileUtils</div><div class='ctx'>   private_module_function :apply_mask</div><div class='ctx'> </div><div class='ctx'>   def symbolic_modes_to_i(mode_sym, path)  #:nodoc:</div><div class='del'>-    mode = if File::Stat === path</div><div class='del'>-             path.mode</div><div class='del'>-           else</div><div class='del'>-             File.stat(path).mode</div><div class='del'>-           end</div><div class='add'>+    path = File.stat(path) unless File::Stat === path</div><div class='add'>+    mode = path.mode</div><div class='ctx'>     mode_sym.split(/,/).inject(mode &amp; 07777) do |current_mode, clause|</div><div class='ctx'>       target, *actions = clause.split(/([=+-])/)</div><div class='ctx'>       raise ArgumentError, "invalid file mode: #{mode_sym}" if actions.empty?</div><div class='hunk'>@@ -840,7 +1700,7 @@ module Bundler::FileUtils</div><div class='ctx'>           when "x"</div><div class='ctx'>             mask | 0111</div><div class='ctx'>           when "X"</div><div class='del'>-            if FileTest.directory? path</div><div class='add'>+            if path.directory?</div><div class='ctx'>               mask | 0111</div><div class='ctx'>             else</div><div class='ctx'>               mask</div><div class='hunk'>@@ -880,37 +1740,78 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :mode_to_s</div><div class='ctx'> </div><div class='add'>+  # Changes permissions on the entries at the paths given in +list+</div><div class='add'>+  # (a single path or an array of paths)</div><div class='add'>+  # to the permissions given by +mode+;</div><div class='add'>+  # returns +list+ if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise:</div><div class='add'>+  #</div><div class='add'>+  # - Modifies each entry that is a regular file using</div><div class='add'>+  #   {File.chmod}[rdoc-ref:File.chmod].</div><div class='add'>+  # - Modifies each entry that is a symbolic link using</div><div class='add'>+  #   {File.lchmod}[rdoc-ref:File.lchmod].</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # Argument +mode+ may be either an integer or a string:</div><div class='add'>+  #</div><div class='add'>+  # - \Integer +mode+: represents the permission bits to be set:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.chmod(0755, 'src0.txt')</div><div class='add'>+  #     Bundler::FileUtils.chmod(0644, ['src0.txt', 'src0.dat'])</div><div class='add'>+  #</div><div class='add'>+  # - \String +mode+: represents the permissions to be set:</div><div class='add'>+  #</div><div class='add'>+  #   The string is of the form &lt;tt&gt;[targets][[operator][perms[,perms]]&lt;/tt&gt;, where:</div><div class='add'>+  #</div><div class='add'>+  #   - +targets+ may be any combination of these letters:</div><div class='add'>+  #</div><div class='add'>+  #     - &lt;tt&gt;'u'&lt;/tt&gt;: permissions apply to the file's owner.</div><div class='add'>+  #     - &lt;tt&gt;'g'&lt;/tt&gt;: permissions apply to users in the file's group.</div><div class='add'>+  #     - &lt;tt&gt;'o'&lt;/tt&gt;: permissions apply to other users not in the file's group.</div><div class='add'>+  #     - &lt;tt&gt;'a'&lt;/tt&gt; (the default): permissions apply to all users.</div><div class='add'>+  #</div><div class='add'>+  #   - +operator+ may be one of these letters:</div><div class='add'>+  #</div><div class='add'>+  #     - &lt;tt&gt;'+'&lt;/tt&gt;: adds permissions.</div><div class='add'>+  #     - &lt;tt&gt;'-'&lt;/tt&gt;: removes permissions.</div><div class='add'>+  #     - &lt;tt&gt;'='&lt;/tt&gt;: sets (replaces) permissions.</div><div class='add'>+  #</div><div class='add'>+  #   - +perms+ (may be repeated, with separating commas)</div><div class='add'>+  #     may be any combination of these letters:</div><div class='add'>+  #</div><div class='add'>+  #     - &lt;tt&gt;'r'&lt;/tt&gt;: Read.</div><div class='add'>+  #     - &lt;tt&gt;'w'&lt;/tt&gt;: Write.</div><div class='add'>+  #     - &lt;tt&gt;'x'&lt;/tt&gt;: Execute (search, for a directory).</div><div class='add'>+  #     - &lt;tt&gt;'X'&lt;/tt&gt;: Search (for a directories only;</div><div class='add'>+  #       must be used with &lt;tt&gt;'+'&lt;/tt&gt;)</div><div class='add'>+  #     - &lt;tt&gt;'s'&lt;/tt&gt;: Uid or gid.</div><div class='add'>+  #     - &lt;tt&gt;'t'&lt;/tt&gt;: Sticky bit.</div><div class='add'>+  #</div><div class='add'>+  #   Examples:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.chmod('u=wrx,go=rx', 'src1.txt')</div><div class='add'>+  #     Bundler::FileUtils.chmod('u=wrx,go=rx', '/usr/bin/ruby')</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not change permissions; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.chmod(0755, 'src0.txt', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.chmod(0644, ['src0.txt', 'src0.dat'], noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.chmod('u=wrx,go=rx', 'src1.txt', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.chmod('u=wrx,go=rx', '/usr/bin/ruby', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     chmod 755 src0.txt</div><div class='add'>+  #     chmod 644 src0.txt src0.dat</div><div class='add'>+  #     chmod u=wrx,go=rx src1.txt</div><div class='add'>+  #     chmod u=wrx,go=rx /usr/bin/ruby</div><div class='add'>+  #</div><div class='add'>+  # Related: Bundler::FileUtils.chmod_R.</div><div class='ctx'>   #</div><div class='del'>-  # Changes permission bits on the named files (in +list+) to the bit pattern</div><div class='del'>-  # represented by +mode+.</div><div class='del'>-  #</div><div class='del'>-  # +mode+ is the symbolic and absolute mode can be used.</div><div class='del'>-  #</div><div class='del'>-  # Absolute mode is</div><div class='del'>-  #   Bundler::FileUtils.chmod 0755, 'somecommand'</div><div class='del'>-  #   Bundler::FileUtils.chmod 0644, %w(my.rb your.rb his.rb her.rb)</div><div class='del'>-  #   Bundler::FileUtils.chmod 0755, '/usr/bin/ruby', :verbose =&gt; true</div><div class='del'>-  #</div><div class='del'>-  # Symbolic mode is</div><div class='del'>-  #   Bundler::FileUtils.chmod "u=wrx,go=rx", 'somecommand'</div><div class='del'>-  #   Bundler::FileUtils.chmod "u=wr,go=rr", %w(my.rb your.rb his.rb her.rb)</div><div class='del'>-  #   Bundler::FileUtils.chmod "u=wrx,go=rx", '/usr/bin/ruby', :verbose =&gt; true</div><div class='del'>-  #</div><div class='del'>-  # "a" :: is user, group, other mask.</div><div class='del'>-  # "u" :: is user's mask.</div><div class='del'>-  # "g" :: is group's mask.</div><div class='del'>-  # "o" :: is other's mask.</div><div class='del'>-  # "w" :: is write permission.</div><div class='del'>-  # "r" :: is read permission.</div><div class='del'>-  # "x" :: is execute permission.</div><div class='del'>-  # "X" ::</div><div class='del'>-  #   is execute permission for directories only, must be used in conjunction with "+"</div><div class='del'>-  # "s" :: is uid, gid.</div><div class='del'>-  # "t" :: is sticky bit.</div><div class='del'>-  # "+" :: is added to a class given the specified mode.</div><div class='del'>-  # "-" :: Is removed from a given class given mode.</div><div class='del'>-  # "=" :: Is the exact nature of the class will be given a specified mode.</div><div class='del'>-</div><div class='ctx'>   def chmod(mode, list, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='ctx'>     fu_output_message sprintf('chmod %s %s', mode_to_s(mode), list.join(' ')) if verbose</div><div class='hunk'>@@ -921,12 +1822,7 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :chmod</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Changes permission bits on the named files (in +list+)</div><div class='del'>-  # to the bit pattern represented by +mode+.</div><div class='del'>-  #</div><div class='del'>-  #   Bundler::FileUtils.chmod_R 0700, "/tmp/app.#{$$}"</div><div class='del'>-  #   Bundler::FileUtils.chmod_R "u=wrx", "/tmp/app.#{$$}"</div><div class='add'>+  # Like Bundler::FileUtils.chmod, but changes permissions recursively.</div><div class='ctx'>   #</div><div class='ctx'>   def chmod_R(mode, list, noop: nil, verbose: nil, force: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -946,15 +1842,68 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :chmod_R</div><div class='ctx'> </div><div class='add'>+  # Changes the owner and group on the entries at the paths given in +list+</div><div class='add'>+  # (a single path or an array of paths)</div><div class='add'>+  # to the given +user+ and +group+;</div><div class='add'>+  # returns +list+ if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise:</div><div class='add'>+  #</div><div class='add'>+  # - Modifies each entry that is a regular file using</div><div class='add'>+  #   {File.chown}[rdoc-ref:File.chown].</div><div class='add'>+  # - Modifies each entry that is a symbolic link using</div><div class='add'>+  #   {File.lchown}[rdoc-ref:File.lchown].</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # User and group:</div><div class='add'>+  #</div><div class='add'>+  # - Argument +user+ may be a user name or a user id;</div><div class='add'>+  #   if +nil+ or +-1+, the user is not changed.</div><div class='add'>+  # - Argument +group+ may be a group name or a group id;</div><div class='add'>+  #   if +nil+ or +-1+, the group is not changed.</div><div class='add'>+  # - The user must be a member of the group.</div><div class='add'>+  #</div><div class='add'>+  # Examples:</div><div class='add'>+  #</div><div class='add'>+  #   # One path.</div><div class='add'>+  #   # User and group as string names.</div><div class='add'>+  #   File.stat('src0.txt').uid # =&gt; 1004</div><div class='add'>+  #   File.stat('src0.txt').gid # =&gt; 1004</div><div class='add'>+  #   Bundler::FileUtils.chown('user2', 'group1', 'src0.txt')</div><div class='add'>+  #   File.stat('src0.txt').uid # =&gt; 1006</div><div class='add'>+  #   File.stat('src0.txt').gid # =&gt; 1005</div><div class='ctx'>   #</div><div class='del'>-  # Changes owner and group on the named files (in +list+)</div><div class='del'>-  # to the user +user+ and the group +group+.  +user+ and +group+</div><div class='del'>-  # may be an ID (Integer/String) or a name (String).</div><div class='del'>-  # If +user+ or +group+ is nil, this method does not change</div><div class='del'>-  # the attribute.</div><div class='add'>+  #   # User and group as uid and gid.</div><div class='add'>+  #   Bundler::FileUtils.chown(1004, 1004, 'src0.txt')</div><div class='add'>+  #   File.stat('src0.txt').uid # =&gt; 1004</div><div class='add'>+  #   File.stat('src0.txt').gid # =&gt; 1004</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.chown 'root', 'staff', '/usr/local/bin/ruby'</div><div class='del'>-  #   Bundler::FileUtils.chown nil, 'bin', Dir.glob('/usr/bin/*'), :verbose =&gt; true</div><div class='add'>+  #   # Array of paths.</div><div class='add'>+  #   Bundler::FileUtils.chown(1006, 1005, ['src0.txt', 'src0.dat'])</div><div class='add'>+  #</div><div class='add'>+  #   # Directory (not recursive).</div><div class='add'>+  #   Bundler::FileUtils.chown('user2', 'group1', '.')</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not change permissions; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.chown('user2', 'group1', 'src0.txt', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.chown(1004, 1004, 'src0.txt', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.chown(1006, 1005, ['src0.txt', 'src0.dat'], noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.chown('user2', 'group1', path, noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.chown('user2', 'group1', '.', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     chown user2:group1 src0.txt</div><div class='add'>+  #     chown 1004:1004 src0.txt</div><div class='add'>+  #     chown 1006:1005 src0.txt src0.dat</div><div class='add'>+  #     chown user2:group1 src0.txt</div><div class='add'>+  #     chown user2:group1 .</div><div class='add'>+  #</div><div class='add'>+  # Related: Bundler::FileUtils.chown_R.</div><div class='ctx'>   #</div><div class='ctx'>   def chown(user, group, list, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -970,15 +1919,7 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :chown</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Changes owner and group on the named files (in +list+)</div><div class='del'>-  # to the user +user+ and the group +group+ recursively.</div><div class='del'>-  # +user+ and +group+ may be an ID (Integer/String) or</div><div class='del'>-  # a name (String).  If +user+ or +group+ is nil, this</div><div class='del'>-  # method does not change the attribute.</div><div class='del'>-  #</div><div class='del'>-  #   Bundler::FileUtils.chown_R 'www', 'www', '/var/www/htdocs'</div><div class='del'>-  #   Bundler::FileUtils.chown_R 'cvs', 'cvs', '/var/cvs', :verbose =&gt; true</div><div class='add'>+  # Like Bundler::FileUtils.chown, but changes owner and group recursively.</div><div class='ctx'>   #</div><div class='ctx'>   def chown_R(user, group, list, noop: nil, verbose: nil, force: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -1001,11 +1942,6 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :chown_R</div><div class='ctx'> </div><div class='del'>-  begin</div><div class='del'>-    require 'etc'</div><div class='del'>-  rescue LoadError # rescue LoadError for miniruby</div><div class='del'>-  end</div><div class='del'>-</div><div class='ctx'>   def fu_get_uid(user)   #:nodoc:</div><div class='ctx'>     return nil unless user</div><div class='ctx'>     case user</div><div class='hunk'>@@ -1014,6 +1950,7 @@ module Bundler::FileUtils</div><div class='ctx'>     when /\A\d+\z/</div><div class='ctx'>       user.to_i</div><div class='ctx'>     else</div><div class='add'>+      require 'etc'</div><div class='ctx'>       Etc.getpwnam(user) ? Etc.getpwnam(user).uid : nil</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='hunk'>@@ -1027,17 +1964,56 @@ module Bundler::FileUtils</div><div class='ctx'>     when /\A\d+\z/</div><div class='ctx'>       group.to_i</div><div class='ctx'>     else</div><div class='add'>+      require 'etc'</div><div class='ctx'>       Etc.getgrnam(group) ? Etc.getgrnam(group).gid : nil</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :fu_get_gid</div><div class='ctx'> </div><div class='add'>+  # Updates modification times (mtime) and access times (atime)</div><div class='add'>+  # of the entries given by the paths in +list+</div><div class='add'>+  # (a single path or an array of paths);</div><div class='add'>+  # returns +list+ if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='add'>+  #</div><div class='add'>+  # By default, creates an empty file for any path to a non-existent entry;</div><div class='add'>+  # use keyword argument +nocreate+ to raise an exception instead.</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # Examples:</div><div class='add'>+  #</div><div class='add'>+  #   # Single path.</div><div class='add'>+  #   f = File.new('src0.txt') # Existing file.</div><div class='add'>+  #   f.atime # =&gt; 2022-06-10 11:11:21.200277 -0700</div><div class='add'>+  #   f.mtime # =&gt; 2022-06-10 11:11:21.200277 -0700</div><div class='add'>+  #   Bundler::FileUtils.touch('src0.txt')</div><div class='add'>+  #   f = File.new('src0.txt')</div><div class='add'>+  #   f.atime # =&gt; 2022-06-11 08:28:09.8185343 -0700</div><div class='add'>+  #   f.mtime # =&gt; 2022-06-11 08:28:09.8185343 -0700</div><div class='add'>+  #</div><div class='add'>+  #   # Array of paths.</div><div class='add'>+  #   Bundler::FileUtils.touch(['src0.txt', 'src0.dat'])</div><div class='ctx'>   #</div><div class='del'>-  # Updates modification time (mtime) and access time (atime) of file(s) in</div><div class='del'>-  # +list+.  Files are created if they don't exist.</div><div class='add'>+  # Keyword arguments:</div><div class='ctx'>   #</div><div class='del'>-  #   Bundler::FileUtils.touch 'timestamp'</div><div class='del'>-  #   Bundler::FileUtils.touch Dir.glob('*.c');  system 'make'</div><div class='add'>+  # - &lt;tt&gt;mtime: &lt;i&gt;time&lt;/i&gt;&lt;/tt&gt; - sets the entry's mtime to the given time,</div><div class='add'>+  #   instead of the current time.</div><div class='add'>+  # - &lt;tt&gt;nocreate: true&lt;/tt&gt; - raises an exception if the entry does not exist.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not touch entries; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     Bundler::FileUtils.touch('src0.txt', noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.touch(['src0.txt', 'src0.dat'], noop: true, verbose: true)</div><div class='add'>+  #     Bundler::FileUtils.touch(path, noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     touch src0.txt</div><div class='add'>+  #     touch src0.txt src0.dat</div><div class='add'>+  #     touch src0.txt</div><div class='add'>+  #</div><div class='add'>+  # Related: Bundler::FileUtils.uptodate?.</div><div class='ctx'>   #</div><div class='ctx'>   def touch(list, noop: nil, verbose: nil, mtime: nil, nocreate: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -1067,8 +2043,11 @@ module Bundler::FileUtils</div><div class='ctx'>   module StreamUtils_</div><div class='ctx'>     private</div><div class='ctx'> </div><div class='del'>-    def fu_windows?</div><div class='del'>-      /mswin|mingw|bccwin|emx/ =~ RUBY_PLATFORM</div><div class='add'>+    case (defined?(::RbConfig) ? ::RbConfig::CONFIG['host_os'] : ::RUBY_PLATFORM)</div><div class='add'>+    when /mswin|mingw/</div><div class='add'>+      def fu_windows?; true end</div><div class='add'>+    else</div><div class='add'>+      def fu_windows?; false end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def fu_copy_stream0(src, dest, blksize = nil)   #:nodoc:</div><div class='hunk'>@@ -1192,10 +2171,12 @@ module Bundler::FileUtils</div><div class='ctx'> </div><div class='ctx'>     def entries</div><div class='ctx'>       opts = {}</div><div class='del'>-      opts[:encoding] = ::Encoding::UTF_8 if fu_windows?</div><div class='del'>-      Dir.entries(path(), opts)\</div><div class='del'>-          .reject {|n| n == '.' or n == '..' }\</div><div class='del'>-          .map {|n| Entry_.new(prefix(), join(rel(), n.untaint)) }</div><div class='add'>+      opts[:encoding] = fu_windows? ? ::Encoding::UTF_8 : path.encoding</div><div class='add'>+</div><div class='add'>+      files = Dir.children(path, **opts)</div><div class='add'>+</div><div class='add'>+      untaint = RUBY_VERSION &lt; '2.7'</div><div class='add'>+      files.map {|n| Entry_.new(prefix(), join(rel(), untaint ? n.untaint : n)) }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def stat</div><div class='hunk'>@@ -1240,6 +2221,7 @@ module Bundler::FileUtils</div><div class='ctx'>       else</div><div class='ctx'>         File.chmod mode, path()</div><div class='ctx'>       end</div><div class='add'>+    rescue Errno::EOPNOTSUPP</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def chown(uid, gid)</div><div class='hunk'>@@ -1250,6 +2232,22 @@ module Bundler::FileUtils</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def link(dest)</div><div class='add'>+      case</div><div class='add'>+      when directory?</div><div class='add'>+        if !File.exist?(dest) and descendant_directory?(dest, path)</div><div class='add'>+          raise ArgumentError, "cannot link directory %s to itself %s" % [path, dest]</div><div class='add'>+        end</div><div class='add'>+        begin</div><div class='add'>+          Dir.mkdir dest</div><div class='add'>+        rescue</div><div class='add'>+          raise unless File.directory?(dest)</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        File.link path(), dest</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def copy(dest)</div><div class='ctx'>       lstat</div><div class='ctx'>       case</div><div class='hunk'>@@ -1266,18 +2264,21 @@ module Bundler::FileUtils</div><div class='ctx'>         end</div><div class='ctx'>       when symlink?</div><div class='ctx'>         File.symlink File.readlink(path()), dest</div><div class='del'>-      when chardev?</div><div class='del'>-        raise "cannot handle device file" unless File.respond_to?(:mknod)</div><div class='del'>-        mknod dest, ?c, 0666, lstat().rdev</div><div class='del'>-      when blockdev?</div><div class='del'>-        raise "cannot handle device file" unless File.respond_to?(:mknod)</div><div class='del'>-        mknod dest, ?b, 0666, lstat().rdev</div><div class='add'>+      when chardev?, blockdev?</div><div class='add'>+        raise "cannot handle device file"</div><div class='ctx'>       when socket?</div><div class='del'>-        raise "cannot handle socket" unless File.respond_to?(:mknod)</div><div class='del'>-        mknod dest, nil, lstat().mode, 0</div><div class='add'>+        begin</div><div class='add'>+          require 'socket'</div><div class='add'>+        rescue LoadError</div><div class='add'>+          raise "cannot handle socket"</div><div class='add'>+        else</div><div class='add'>+          raise "cannot handle socket" unless defined?(UNIXServer)</div><div class='add'>+        end</div><div class='add'>+        UNIXServer.new(dest).close</div><div class='add'>+        File.chmod lstat().mode, dest</div><div class='ctx'>       when pipe?</div><div class='ctx'>         raise "cannot handle FIFO" unless File.respond_to?(:mkfifo)</div><div class='del'>-        mkfifo dest, 0666</div><div class='add'>+        File.mkfifo dest, lstat().mode</div><div class='ctx'>       when door?</div><div class='ctx'>         raise "cannot handle door: #{path()}"</div><div class='ctx'>       else</div><div class='hunk'>@@ -1315,7 +2316,7 @@ module Bundler::FileUtils</div><div class='ctx'>       if st.symlink?</div><div class='ctx'>         begin</div><div class='ctx'>           File.lchmod mode, path</div><div class='del'>-        rescue NotImplementedError</div><div class='add'>+        rescue NotImplementedError, Errno::EOPNOTSUPP</div><div class='ctx'>         end</div><div class='ctx'>       else</div><div class='ctx'>         File.chmod mode, path</div><div class='hunk'>@@ -1374,13 +2375,21 @@ module Bundler::FileUtils</div><div class='ctx'> </div><div class='ctx'>     def postorder_traverse</div><div class='ctx'>       if directory?</div><div class='del'>-        entries().each do |ent|</div><div class='add'>+        begin</div><div class='add'>+          children = entries()</div><div class='add'>+        rescue Errno::EACCES</div><div class='add'>+          # Failed to get the list of children.</div><div class='add'>+          # Assuming there is no children, try to process the parent directory.</div><div class='add'>+          yield self</div><div class='add'>+          return</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        children.each do |ent|</div><div class='ctx'>           ent.postorder_traverse do |e|</div><div class='ctx'>             yield e</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='del'>-    ensure</div><div class='ctx'>       yield self</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -1396,14 +2405,14 @@ module Bundler::FileUtils</div><div class='ctx'> </div><div class='ctx'>     private</div><div class='ctx'> </div><div class='del'>-    $fileutils_rb_have_lchmod = nil</div><div class='add'>+    @@fileutils_rb_have_lchmod = nil</div><div class='ctx'> </div><div class='ctx'>     def have_lchmod?</div><div class='ctx'>       # This is not MT-safe, but it does not matter.</div><div class='del'>-      if $fileutils_rb_have_lchmod == nil</div><div class='del'>-        $fileutils_rb_have_lchmod = check_have_lchmod?</div><div class='add'>+      if @@fileutils_rb_have_lchmod == nil</div><div class='add'>+        @@fileutils_rb_have_lchmod = check_have_lchmod?</div><div class='ctx'>       end</div><div class='del'>-      $fileutils_rb_have_lchmod</div><div class='add'>+      @@fileutils_rb_have_lchmod</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def check_have_lchmod?</div><div class='hunk'>@@ -1414,14 +2423,14 @@ module Bundler::FileUtils</div><div class='ctx'>       return false</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    $fileutils_rb_have_lchown = nil</div><div class='add'>+    @@fileutils_rb_have_lchown = nil</div><div class='ctx'> </div><div class='ctx'>     def have_lchown?</div><div class='ctx'>       # This is not MT-safe, but it does not matter.</div><div class='del'>-      if $fileutils_rb_have_lchown == nil</div><div class='del'>-        $fileutils_rb_have_lchown = check_have_lchown?</div><div class='add'>+      if @@fileutils_rb_have_lchown == nil</div><div class='add'>+        @@fileutils_rb_have_lchown = check_have_lchown?</div><div class='ctx'>       end</div><div class='del'>-      $fileutils_rb_have_lchown</div><div class='add'>+      @@fileutils_rb_have_lchown</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def check_have_lchown?</div><div class='hunk'>@@ -1435,7 +2444,15 @@ module Bundler::FileUtils</div><div class='ctx'>     def join(dir, base)</div><div class='ctx'>       return File.path(dir) if not base or base == '.'</div><div class='ctx'>       return File.path(base) if not dir or dir == '.'</div><div class='del'>-      File.join(dir, base)</div><div class='add'>+      begin</div><div class='add'>+        File.join(dir, base)</div><div class='add'>+      rescue EncodingError</div><div class='add'>+        if fu_windows?</div><div class='add'>+          File.join(dir.encode(::Encoding::UTF_8), base.encode(::Encoding::UTF_8))</div><div class='add'>+        else</div><div class='add'>+          raise</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     if File::ALT_SEPARATOR</div><div class='hunk'>@@ -1443,10 +2460,13 @@ module Bundler::FileUtils</div><div class='ctx'>     else</div><div class='ctx'>       DIRECTORY_TERM = "(?=/|\\z)"</div><div class='ctx'>     end</div><div class='del'>-    SYSCASE = File::FNM_SYSCASE.nonzero? ? "-i" : ""</div><div class='ctx'> </div><div class='ctx'>     def descendant_directory?(descendant, ascendant)</div><div class='del'>-      /\A(?#{SYSCASE}:#{Regexp.quote(ascendant)})#{DIRECTORY_TERM}/ =~ File.dirname(descendant)</div><div class='add'>+      if File::FNM_SYSCASE.nonzero?</div><div class='add'>+        File.expand_path(File.dirname(descendant)).casecmp(File.expand_path(ascendant)) == 0</div><div class='add'>+      else</div><div class='add'>+        File.expand_path(File.dirname(descendant)) == File.expand_path(ascendant)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>   end   # class Entry_</div><div class='ctx'> </div><div class='hunk'>@@ -1463,15 +2483,15 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :fu_each_src_dest</div><div class='ctx'> </div><div class='del'>-  def fu_each_src_dest0(src, dest)   #:nodoc:</div><div class='add'>+  def fu_each_src_dest0(src, dest, target_directory = true)   #:nodoc:</div><div class='ctx'>     if tmp = Array.try_convert(src)</div><div class='ctx'>       tmp.each do |s|</div><div class='ctx'>         s = File.path(s)</div><div class='del'>-        yield s, File.join(dest, File.basename(s))</div><div class='add'>+        yield s, (target_directory ? File.join(dest, File.basename(s)) : dest)</div><div class='ctx'>       end</div><div class='ctx'>     else</div><div class='ctx'>       src = File.path(src)</div><div class='del'>-      if File.directory?(dest)</div><div class='add'>+      if target_directory and File.directory?(dest)</div><div class='ctx'>         yield src, File.join(dest, File.basename(src))</div><div class='ctx'>       else</div><div class='ctx'>         yield src, File.path(dest)</div><div class='hunk'>@@ -1485,16 +2505,66 @@ module Bundler::FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :fu_same?</div><div class='ctx'> </div><div class='del'>-  @fileutils_output = $stderr</div><div class='del'>-  @fileutils_label  = ''</div><div class='del'>-</div><div class='ctx'>   def fu_output_message(msg)   #:nodoc:</div><div class='del'>-    @fileutils_output ||= $stderr</div><div class='del'>-    @fileutils_label  ||= ''</div><div class='del'>-    @fileutils_output.puts @fileutils_label + msg</div><div class='add'>+    output = @fileutils_output if defined?(@fileutils_output)</div><div class='add'>+    output ||= $stdout</div><div class='add'>+    if defined?(@fileutils_label)</div><div class='add'>+      msg = @fileutils_label + msg</div><div class='add'>+    end</div><div class='add'>+    output.puts msg</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :fu_output_message</div><div class='ctx'> </div><div class='add'>+  def fu_split_path(path)</div><div class='add'>+    path = File.path(path)</div><div class='add'>+    list = []</div><div class='add'>+    until (parent, base = File.split(path); parent == path or parent == ".")</div><div class='add'>+      list &lt;&lt; base</div><div class='add'>+      path = parent</div><div class='add'>+    end</div><div class='add'>+    list &lt;&lt; path</div><div class='add'>+    list.reverse!</div><div class='add'>+  end</div><div class='add'>+  private_module_function :fu_split_path</div><div class='add'>+</div><div class='add'>+  def fu_relative_components_from(target, base) #:nodoc:</div><div class='add'>+    i = 0</div><div class='add'>+    while target[i]&amp;.== base[i]</div><div class='add'>+      i += 1</div><div class='add'>+    end</div><div class='add'>+    Array.new(base.size-i, '..').concat(target[i..-1])</div><div class='add'>+  end</div><div class='add'>+  private_module_function :fu_relative_components_from</div><div class='add'>+</div><div class='add'>+  def fu_clean_components(*comp)</div><div class='add'>+    comp.shift while comp.first == "."</div><div class='add'>+    return comp if comp.empty?</div><div class='add'>+    clean = [comp.shift]</div><div class='add'>+    path = File.join(*clean, "") # ending with File::SEPARATOR</div><div class='add'>+    while c = comp.shift</div><div class='add'>+      if c == ".." and clean.last != ".." and !(fu_have_symlink? &amp;&amp; File.symlink?(path))</div><div class='add'>+        clean.pop</div><div class='add'>+        path.chomp!(%r((?&lt;=\A|/)[^/]+/\z), "")</div><div class='add'>+      else</div><div class='add'>+        clean &lt;&lt; c</div><div class='add'>+        path &lt;&lt; c &lt;&lt; "/"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    clean</div><div class='add'>+  end</div><div class='add'>+  private_module_function :fu_clean_components</div><div class='add'>+</div><div class='add'>+  if fu_windows?</div><div class='add'>+    def fu_starting_path?(path)</div><div class='add'>+      path&amp;.start_with?(%r(\w:|/))</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+    def fu_starting_path?(path)</div><div class='add'>+      path&amp;.start_with?("/")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  private_module_function :fu_starting_path?</div><div class='add'>+</div><div class='ctx'>   # This hash table holds command options.</div><div class='ctx'>   OPT_TABLE = {}    #:nodoc: internal use only</div><div class='ctx'>   (private_instance_methods &amp; methods(false)).inject(OPT_TABLE) {|tbl, name|</div><div class='hunk'>@@ -1502,62 +2572,66 @@ module Bundler::FileUtils</div><div class='ctx'>     tbl</div><div class='ctx'>   }</div><div class='ctx'> </div><div class='add'>+  public</div><div class='add'>+</div><div class='add'>+  # Returns an array of the string names of \Bundler::FileUtils methods</div><div class='add'>+  # that accept one or more keyword arguments:</div><div class='ctx'>   #</div><div class='del'>-  # Returns an Array of method names which have any options.</div><div class='del'>-  #</div><div class='del'>-  #   p Bundler::FileUtils.commands  #=&gt; ["chmod", "cp", "cp_r", "install", ...]</div><div class='add'>+  #   Bundler::FileUtils.commands.sort.take(3) # =&gt; ["cd", "chdir", "chmod"]</div><div class='ctx'>   #</div><div class='ctx'>   def self.commands</div><div class='ctx'>     OPT_TABLE.keys</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Returns an array of the string keyword names:</div><div class='ctx'>   #</div><div class='del'>-  # Returns an Array of option names.</div><div class='del'>-  #</div><div class='del'>-  #   p Bundler::FileUtils.options  #=&gt; ["noop", "force", "verbose", "preserve", "mode"]</div><div class='add'>+  #   Bundler::FileUtils.options.take(3) # =&gt; ["noop", "verbose", "force"]</div><div class='ctx'>   #</div><div class='ctx'>   def self.options</div><div class='ctx'>     OPT_TABLE.values.flatten.uniq.map {|sym| sym.to_s }</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Returns +true+ if method +mid+ accepts the given option +opt+, +false+ otherwise;</div><div class='add'>+  # the arguments may be strings or symbols:</div><div class='ctx'>   #</div><div class='del'>-  # Returns true if the method +mid+ have an option +opt+.</div><div class='del'>-  #</div><div class='del'>-  #   p Bundler::FileUtils.have_option?(:cp, :noop)     #=&gt; true</div><div class='del'>-  #   p Bundler::FileUtils.have_option?(:rm, :force)    #=&gt; true</div><div class='del'>-  #   p Bundler::FileUtils.have_option?(:rm, :preserve) #=&gt; false</div><div class='add'>+  #   Bundler::FileUtils.have_option?(:chmod, :noop) # =&gt; true</div><div class='add'>+  #   Bundler::FileUtils.have_option?('chmod', 'secure') # =&gt; false</div><div class='ctx'>   #</div><div class='ctx'>   def self.have_option?(mid, opt)</div><div class='ctx'>     li = OPT_TABLE[mid.to_s] or raise ArgumentError, "no such method: #{mid}"</div><div class='ctx'>     li.include?(opt)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Returns an array of the string keyword name for method +mid+;</div><div class='add'>+  # the argument may be a string or a symbol:</div><div class='ctx'>   #</div><div class='del'>-  # Returns an Array of option names of the method +mid+.</div><div class='del'>-  #</div><div class='del'>-  #   p Bundler::FileUtils.options_of(:rm)  #=&gt; ["noop", "verbose", "force"]</div><div class='add'>+  #   Bundler::FileUtils.options_of(:rm) # =&gt; ["force", "noop", "verbose"]</div><div class='add'>+  #   Bundler::FileUtils.options_of('mv') # =&gt; ["force", "noop", "verbose", "secure"]</div><div class='ctx'>   #</div><div class='ctx'>   def self.options_of(mid)</div><div class='ctx'>     OPT_TABLE[mid.to_s].map {|sym| sym.to_s }</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Returns an array of the string method names of the methods</div><div class='add'>+  # that accept the given keyword option +opt+;</div><div class='add'>+  # the argument must be a symbol:</div><div class='ctx'>   #</div><div class='del'>-  # Returns an Array of method names which have the option +opt+.</div><div class='del'>-  #</div><div class='del'>-  #   p Bundler::FileUtils.collect_method(:preserve) #=&gt; ["cp", "cp_r", "copy", "install"]</div><div class='add'>+  #   Bundler::FileUtils.collect_method(:preserve) # =&gt; ["cp", "copy", "cp_r", "install"]</div><div class='ctx'>   #</div><div class='ctx'>   def self.collect_method(opt)</div><div class='ctx'>     OPT_TABLE.keys.select {|m| OPT_TABLE[m].include?(opt) }</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  LOW_METHODS = singleton_methods(false) - collect_method(:noop).map(&amp;:intern)</div><div class='del'>-  module LowMethods</div><div class='add'>+  private</div><div class='add'>+</div><div class='add'>+  LOW_METHODS = singleton_methods(false) - collect_method(:noop).map(&amp;:intern) # :nodoc:</div><div class='add'>+  module LowMethods # :nodoc: internal use only</div><div class='ctx'>     private</div><div class='ctx'>     def _do_nothing(*)end</div><div class='ctx'>     ::Bundler::FileUtils::LOW_METHODS.map {|name| alias_method name, :_do_nothing}</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  METHODS = singleton_methods() - [:private_module_function,</div><div class='add'>+  METHODS = singleton_methods() - [:private_module_function,                  # :nodoc:</div><div class='ctx'>       :commands, :options, :have_option?, :options_of, :collect_method]</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='hunk'>@@ -1567,8 +2641,6 @@ module Bundler::FileUtils</div><div class='ctx'>   #</div><div class='ctx'>   module Verbose</div><div class='ctx'>     include Bundler::FileUtils</div><div class='del'>-    @fileutils_output  = $stderr</div><div class='del'>-    @fileutils_label   = ''</div><div class='ctx'>     names = ::Bundler::FileUtils.collect_method(:verbose)</div><div class='ctx'>     names.each do |name|</div><div class='ctx'>       module_eval(&lt;&lt;-EOS, __FILE__, __LINE__ + 1)</div><div class='hunk'>@@ -1592,8 +2664,6 @@ module Bundler::FileUtils</div><div class='ctx'>   module NoWrite</div><div class='ctx'>     include Bundler::FileUtils</div><div class='ctx'>     include LowMethods</div><div class='del'>-    @fileutils_output  = $stderr</div><div class='del'>-    @fileutils_label   = ''</div><div class='ctx'>     names = ::Bundler::FileUtils.collect_method(:noop)</div><div class='ctx'>     names.each do |name|</div><div class='ctx'>       module_eval(&lt;&lt;-EOS, __FILE__, __LINE__ + 1)</div><div class='hunk'>@@ -1618,8 +2688,6 @@ module Bundler::FileUtils</div><div class='ctx'>   module DryRun</div><div class='ctx'>     include Bundler::FileUtils</div><div class='ctx'>     include LowMethods</div><div class='del'>-    @fileutils_output  = $stderr</div><div class='del'>-    @fileutils_label   = ''</div><div class='ctx'>     names = ::Bundler::FileUtils.collect_method(:noop)</div><div class='ctx'>     names.each do |name|</div><div class='ctx'>       module_eval(&lt;&lt;-EOS, __FILE__, __LINE__ + 1)</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo.rb b/lib/bundler/vendor/molinillo/lib/molinillo.rb<br/>deleted file mode 100644<br/>index 9e2867144f..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,12 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/compatibility'</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/gem_metadata'</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/errors'</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/resolver'</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/modules/ui'</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/modules/specification_provider'</div><div class='del'>-</div><div class='del'>-# Bundler::Molinillo is a generic dependency resolution algorithm.</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb b/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb<br/>deleted file mode 100644<br/>index 3eba8e4083..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,26 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  # Hacks needed for old Ruby versions.</div><div class='del'>-  module Compatibility</div><div class='del'>-    module_function</div><div class='del'>-</div><div class='del'>-    if [].respond_to?(:flat_map)</div><div class='del'>-      # Flat map</div><div class='del'>-      # @param [Enumerable] enum an enumerable object</div><div class='del'>-      # @block the block to flat-map with</div><div class='del'>-      # @return The enum, flat-mapped</div><div class='del'>-      def flat_map(enum, &amp;blk)</div><div class='del'>-        enum.flat_map(&amp;blk)</div><div class='del'>-      end</div><div class='del'>-    else</div><div class='del'>-      # Flat map</div><div class='del'>-      # @param [Enumerable] enum an enumerable object</div><div class='del'>-      # @block the block to flat-map with</div><div class='del'>-      # @return The enum, flat-mapped</div><div class='del'>-      def flat_map(enum, &amp;blk)</div><div class='del'>-        enum.map(&amp;blk).flatten(1)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb b/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb<br/>deleted file mode 100644<br/>index bcacf35243..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,57 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  # @!visibility private</div><div class='del'>-  module Delegates</div><div class='del'>-    # Delegates all {Bundler::Molinillo::ResolutionState} methods to a `#state` property.</div><div class='del'>-    module ResolutionState</div><div class='del'>-      # (see Bundler::Molinillo::ResolutionState#name)</div><div class='del'>-      def name</div><div class='del'>-        current_state = state || Bundler::Molinillo::ResolutionState.empty</div><div class='del'>-        current_state.name</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::ResolutionState#requirements)</div><div class='del'>-      def requirements</div><div class='del'>-        current_state = state || Bundler::Molinillo::ResolutionState.empty</div><div class='del'>-        current_state.requirements</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::ResolutionState#activated)</div><div class='del'>-      def activated</div><div class='del'>-        current_state = state || Bundler::Molinillo::ResolutionState.empty</div><div class='del'>-        current_state.activated</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::ResolutionState#requirement)</div><div class='del'>-      def requirement</div><div class='del'>-        current_state = state || Bundler::Molinillo::ResolutionState.empty</div><div class='del'>-        current_state.requirement</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::ResolutionState#possibilities)</div><div class='del'>-      def possibilities</div><div class='del'>-        current_state = state || Bundler::Molinillo::ResolutionState.empty</div><div class='del'>-        current_state.possibilities</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::ResolutionState#depth)</div><div class='del'>-      def depth</div><div class='del'>-        current_state = state || Bundler::Molinillo::ResolutionState.empty</div><div class='del'>-        current_state.depth</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::ResolutionState#conflicts)</div><div class='del'>-      def conflicts</div><div class='del'>-        current_state = state || Bundler::Molinillo::ResolutionState.empty</div><div class='del'>-        current_state.conflicts</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::ResolutionState#unused_unwind_options)</div><div class='del'>-      def unused_unwind_options</div><div class='del'>-        current_state = state || Bundler::Molinillo::ResolutionState.empty</div><div class='del'>-        current_state.unused_unwind_options</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb b/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb<br/>deleted file mode 100644<br/>index ec9c770a28..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,81 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  module Delegates</div><div class='del'>-    # Delegates all {Bundler::Molinillo::SpecificationProvider} methods to a</div><div class='del'>-    # `#specification_provider` property.</div><div class='del'>-    module SpecificationProvider</div><div class='del'>-      # (see Bundler::Molinillo::SpecificationProvider#search_for)</div><div class='del'>-      def search_for(dependency)</div><div class='del'>-        with_no_such_dependency_error_handling do</div><div class='del'>-          specification_provider.search_for(dependency)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::SpecificationProvider#dependencies_for)</div><div class='del'>-      def dependencies_for(specification)</div><div class='del'>-        with_no_such_dependency_error_handling do</div><div class='del'>-          specification_provider.dependencies_for(specification)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::SpecificationProvider#requirement_satisfied_by?)</div><div class='del'>-      def requirement_satisfied_by?(requirement, activated, spec)</div><div class='del'>-        with_no_such_dependency_error_handling do</div><div class='del'>-          specification_provider.requirement_satisfied_by?(requirement, activated, spec)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::SpecificationProvider#name_for)</div><div class='del'>-      def name_for(dependency)</div><div class='del'>-        with_no_such_dependency_error_handling do</div><div class='del'>-          specification_provider.name_for(dependency)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::SpecificationProvider#name_for_explicit_dependency_source)</div><div class='del'>-      def name_for_explicit_dependency_source</div><div class='del'>-        with_no_such_dependency_error_handling do</div><div class='del'>-          specification_provider.name_for_explicit_dependency_source</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::SpecificationProvider#name_for_locking_dependency_source)</div><div class='del'>-      def name_for_locking_dependency_source</div><div class='del'>-        with_no_such_dependency_error_handling do</div><div class='del'>-          specification_provider.name_for_locking_dependency_source</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::SpecificationProvider#sort_dependencies)</div><div class='del'>-      def sort_dependencies(dependencies, activated, conflicts)</div><div class='del'>-        with_no_such_dependency_error_handling do</div><div class='del'>-          specification_provider.sort_dependencies(dependencies, activated, conflicts)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Bundler::Molinillo::SpecificationProvider#allow_missing?)</div><div class='del'>-      def allow_missing?(dependency)</div><div class='del'>-        with_no_such_dependency_error_handling do</div><div class='del'>-          specification_provider.allow_missing?(dependency)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      private</div><div class='del'>-</div><div class='del'>-      # Ensures any raised {NoSuchDependencyError} has its</div><div class='del'>-      # {NoSuchDependencyError#required_by} set.</div><div class='del'>-      # @yield</div><div class='del'>-      def with_no_such_dependency_error_handling</div><div class='del'>-        yield</div><div class='del'>-      rescue NoSuchDependencyError =&gt; error</div><div class='del'>-        if state</div><div class='del'>-          vertex = activated.vertex_named(name_for(error.dependency))</div><div class='del'>-          error.required_by += vertex.incoming_edges.map { |e| e.origin.name }</div><div class='del'>-          error.required_by &lt;&lt; name_for_explicit_dependency_source unless vertex.explicit_requirements.empty?</div><div class='del'>-        end</div><div class='del'>-        raise</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb b/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb<br/>deleted file mode 100644<br/>index 677a8bd916..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,223 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require 'set'</div><div class='del'>-require 'tsort'</div><div class='del'>-</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/log'</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex'</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  # A directed acyclic graph that is tuned to hold named dependencies</div><div class='del'>-  class DependencyGraph</div><div class='del'>-    include Enumerable</div><div class='del'>-</div><div class='del'>-    # Enumerates through the vertices of the graph.</div><div class='del'>-    # @return [Array&lt;Vertex&gt;] The graph's vertices.</div><div class='del'>-    def each</div><div class='del'>-      return vertices.values.each unless block_given?</div><div class='del'>-      vertices.values.each { |v| yield v }</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    include TSort</div><div class='del'>-</div><div class='del'>-    # @!visibility private</div><div class='del'>-    alias tsort_each_node each</div><div class='del'>-</div><div class='del'>-    # @!visibility private</div><div class='del'>-    def tsort_each_child(vertex, &amp;block)</div><div class='del'>-      vertex.successors.each(&amp;block)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Topologically sorts the given vertices.</div><div class='del'>-    # @param [Enumerable&lt;Vertex&gt;] vertices the vertices to be sorted, which must</div><div class='del'>-    #   all belong to the same graph.</div><div class='del'>-    # @return [Array&lt;Vertex&gt;] The sorted vertices.</div><div class='del'>-    def self.tsort(vertices)</div><div class='del'>-      TSort.tsort(</div><div class='del'>-        lambda { |b| vertices.each(&amp;b) },</div><div class='del'>-        lambda { |v, &amp;b| (v.successors &amp; vertices).each(&amp;b) }</div><div class='del'>-      )</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # A directed edge of a {DependencyGraph}</div><div class='del'>-    # @attr [Vertex] origin The origin of the directed edge</div><div class='del'>-    # @attr [Vertex] destination The destination of the directed edge</div><div class='del'>-    # @attr [Object] requirement The requirement the directed edge represents</div><div class='del'>-    Edge = Struct.new(:origin, :destination, :requirement)</div><div class='del'>-</div><div class='del'>-    # @return [{String =&gt; Vertex}] the vertices of the dependency graph, keyed</div><div class='del'>-    #   by {Vertex#name}</div><div class='del'>-    attr_reader :vertices</div><div class='del'>-</div><div class='del'>-    # @return [Log] the op log for this graph</div><div class='del'>-    attr_reader :log</div><div class='del'>-</div><div class='del'>-    # Initializes an empty dependency graph</div><div class='del'>-    def initialize</div><div class='del'>-      @vertices = {}</div><div class='del'>-      @log = Log.new</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Tags the current state of the dependency as the given tag</div><div class='del'>-    # @param  [Object] tag an opaque tag for the current state of the graph</div><div class='del'>-    # @return [Void]</div><div class='del'>-    def tag(tag)</div><div class='del'>-      log.tag(self, tag)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Rewinds the graph to the state tagged as `tag`</div><div class='del'>-    # @param  [Object] tag the tag to rewind to</div><div class='del'>-    # @return [Void]</div><div class='del'>-    def rewind_to(tag)</div><div class='del'>-      log.rewind_to(self, tag)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Initializes a copy of a {DependencyGraph}, ensuring that all {#vertices}</div><div class='del'>-    # are properly copied.</div><div class='del'>-    # @param [DependencyGraph] other the graph to copy.</div><div class='del'>-    def initialize_copy(other)</div><div class='del'>-      super</div><div class='del'>-      @vertices = {}</div><div class='del'>-      @log = other.log.dup</div><div class='del'>-      traverse = lambda do |new_v, old_v|</div><div class='del'>-        return if new_v.outgoing_edges.size == old_v.outgoing_edges.size</div><div class='del'>-        old_v.outgoing_edges.each do |edge|</div><div class='del'>-          destination = add_vertex(edge.destination.name, edge.destination.payload)</div><div class='del'>-          add_edge_no_circular(new_v, destination, edge.requirement)</div><div class='del'>-          traverse.call(destination, edge.destination)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      other.vertices.each do |name, vertex|</div><div class='del'>-        new_vertex = add_vertex(name, vertex.payload, vertex.root?)</div><div class='del'>-        new_vertex.explicit_requirements.replace(vertex.explicit_requirements)</div><div class='del'>-        traverse.call(new_vertex, vertex)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # @return [String] a string suitable for debugging</div><div class='del'>-    def inspect</div><div class='del'>-      "#{self.class}:#{vertices.values.inspect}"</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # @param [Hash] options options for dot output.</div><div class='del'>-    # @return [String] Returns a dot format representation of the graph</div><div class='del'>-    def to_dot(options = {})</div><div class='del'>-      edge_label = options.delete(:edge_label)</div><div class='del'>-      raise ArgumentError, "Unknown options: #{options.keys}" unless options.empty?</div><div class='del'>-</div><div class='del'>-      dot_vertices = []</div><div class='del'>-      dot_edges = []</div><div class='del'>-      vertices.each do |n, v|</div><div class='del'>-        dot_vertices &lt;&lt; "  #{n} [label=\"{#{n}|#{v.payload}}\"]"</div><div class='del'>-        v.outgoing_edges.each do |e|</div><div class='del'>-          label = edge_label ? edge_label.call(e) : e.requirement</div><div class='del'>-          dot_edges &lt;&lt; "  #{e.origin.name} -&gt; #{e.destination.name} [label=#{label.to_s.dump}]"</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      dot_vertices.uniq!</div><div class='del'>-      dot_vertices.sort!</div><div class='del'>-      dot_edges.uniq!</div><div class='del'>-      dot_edges.sort!</div><div class='del'>-</div><div class='del'>-      dot = dot_vertices.unshift('digraph G {').push('') + dot_edges.push('}')</div><div class='del'>-      dot.join("\n")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # @return [Boolean] whether the two dependency graphs are equal, determined</div><div class='del'>-    #   by a recursive traversal of each {#root_vertices} and its</div><div class='del'>-    #   {Vertex#successors}</div><div class='del'>-    def ==(other)</div><div class='del'>-      return false unless other</div><div class='del'>-      return true if equal?(other)</div><div class='del'>-      vertices.each do |name, vertex|</div><div class='del'>-        other_vertex = other.vertex_named(name)</div><div class='del'>-        return false unless other_vertex</div><div class='del'>-        return false unless vertex.payload == other_vertex.payload</div><div class='del'>-        return false unless other_vertex.successors.to_set == vertex.successors.to_set</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # @param [String] name</div><div class='del'>-    # @param [Object] payload</div><div class='del'>-    # @param [Array&lt;String&gt;] parent_names</div><div class='del'>-    # @param [Object] requirement the requirement that is requiring the child</div><div class='del'>-    # @return [void]</div><div class='del'>-    def add_child_vertex(name, payload, parent_names, requirement)</div><div class='del'>-      root = !parent_names.delete(nil) { true }</div><div class='del'>-      vertex = add_vertex(name, payload, root)</div><div class='del'>-      vertex.explicit_requirements &lt;&lt; requirement if root</div><div class='del'>-      parent_names.each do |parent_name|</div><div class='del'>-        parent_vertex = vertex_named(parent_name)</div><div class='del'>-        add_edge(parent_vertex, vertex, requirement)</div><div class='del'>-      end</div><div class='del'>-      vertex</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Adds a vertex with the given name, or updates the existing one.</div><div class='del'>-    # @param [String] name</div><div class='del'>-    # @param [Object] payload</div><div class='del'>-    # @return [Vertex] the vertex that was added to `self`</div><div class='del'>-    def add_vertex(name, payload, root = false)</div><div class='del'>-      log.add_vertex(self, name, payload, root)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Detaches the {#vertex_named} `name` {Vertex} from the graph, recursively</div><div class='del'>-    # removing any non-root vertices that were orphaned in the process</div><div class='del'>-    # @param [String] name</div><div class='del'>-    # @return [Array&lt;Vertex&gt;] the vertices which have been detached</div><div class='del'>-    def detach_vertex_named(name)</div><div class='del'>-      log.detach_vertex_named(self, name)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # @param [String] name</div><div class='del'>-    # @return [Vertex,nil] the vertex with the given name</div><div class='del'>-    def vertex_named(name)</div><div class='del'>-      vertices[name]</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # @param [String] name</div><div class='del'>-    # @return [Vertex,nil] the root vertex with the given name</div><div class='del'>-    def root_vertex_named(name)</div><div class='del'>-      vertex = vertex_named(name)</div><div class='del'>-      vertex if vertex &amp;&amp; vertex.root?</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Adds a new {Edge} to the dependency graph</div><div class='del'>-    # @param [Vertex] origin</div><div class='del'>-    # @param [Vertex] destination</div><div class='del'>-    # @param [Object] requirement the requirement that this edge represents</div><div class='del'>-    # @return [Edge] the added edge</div><div class='del'>-    def add_edge(origin, destination, requirement)</div><div class='del'>-      if destination.path_to?(origin)</div><div class='del'>-        raise CircularDependencyError.new([origin, destination])</div><div class='del'>-      end</div><div class='del'>-      add_edge_no_circular(origin, destination, requirement)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Deletes an {Edge} from the dependency graph</div><div class='del'>-    # @param [Edge] edge</div><div class='del'>-    # @return [Void]</div><div class='del'>-    def delete_edge(edge)</div><div class='del'>-      log.delete_edge(self, edge.origin.name, edge.destination.name, edge.requirement)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Sets the payload of the vertex with the given name</div><div class='del'>-    # @param [String] name the name of the vertex</div><div class='del'>-    # @param [Object] payload the payload</div><div class='del'>-    # @return [Void]</div><div class='del'>-    def set_payload(name, payload)</div><div class='del'>-      log.set_payload(self, name, payload)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    private</div><div class='del'>-</div><div class='del'>-    # Adds a new {Edge} to the dependency graph without checking for</div><div class='del'>-    # circularity.</div><div class='del'>-    # @param (see #add_edge)</div><div class='del'>-    # @return (see #add_edge)</div><div class='del'>-    def add_edge_no_circular(origin, destination, requirement)</div><div class='del'>-      log.add_edge_no_circular(self, origin.name, destination.name, requirement)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb b/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb<br/>deleted file mode 100644<br/>index c04c7eec9c..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,36 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  class DependencyGraph</div><div class='del'>-    # An action that modifies a {DependencyGraph} that is reversible.</div><div class='del'>-    # @abstract</div><div class='del'>-    class Action</div><div class='del'>-      # rubocop:disable Lint/UnusedMethodArgument</div><div class='del'>-</div><div class='del'>-      # @return [Symbol] The name of the action.</div><div class='del'>-      def self.action_name</div><div class='del'>-        raise 'Abstract'</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Performs the action on the given graph.</div><div class='del'>-      # @param  [DependencyGraph] graph the graph to perform the action on.</div><div class='del'>-      # @return [Void]</div><div class='del'>-      def up(graph)</div><div class='del'>-        raise 'Abstract'</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Reverses the action on the given graph.</div><div class='del'>-      # @param  [DependencyGraph] graph the graph to reverse the action on.</div><div class='del'>-      # @return [Void]</div><div class='del'>-      def down(graph)</div><div class='del'>-        raise 'Abstract'</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Action,Nil] The previous action</div><div class='del'>-      attr_accessor :previous</div><div class='del'>-</div><div class='del'>-      # @return [Action,Nil] The next action</div><div class='del'>-      attr_accessor :next</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb b/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb<br/>deleted file mode 100644<br/>index 9849aea2fe..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,66 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/action'</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  class DependencyGraph</div><div class='del'>-    # @!visibility private</div><div class='del'>-    # (see DependencyGraph#add_edge_no_circular)</div><div class='del'>-    class AddEdgeNoCircular &lt; Action</div><div class='del'>-      # @!group Action</div><div class='del'>-</div><div class='del'>-      # (see Action.action_name)</div><div class='del'>-      def self.action_name</div><div class='del'>-        :add_vertex</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#up)</div><div class='del'>-      def up(graph)</div><div class='del'>-        edge = make_edge(graph)</div><div class='del'>-        edge.origin.outgoing_edges &lt;&lt; edge</div><div class='del'>-        edge.destination.incoming_edges &lt;&lt; edge</div><div class='del'>-        edge</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#down)</div><div class='del'>-      def down(graph)</div><div class='del'>-        edge = make_edge(graph)</div><div class='del'>-        delete_first(edge.origin.outgoing_edges, edge)</div><div class='del'>-        delete_first(edge.destination.incoming_edges, edge)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @!group AddEdgeNoCircular</div><div class='del'>-</div><div class='del'>-      # @return [String] the name of the origin of the edge</div><div class='del'>-      attr_reader :origin</div><div class='del'>-</div><div class='del'>-      # @return [String] the name of the destination of the edge</div><div class='del'>-      attr_reader :destination</div><div class='del'>-</div><div class='del'>-      # @return [Object] the requirement that the edge represents</div><div class='del'>-      attr_reader :requirement</div><div class='del'>-</div><div class='del'>-      # @param  [DependencyGraph] graph the graph to find vertices from</div><div class='del'>-      # @return [Edge] The edge this action adds</div><div class='del'>-      def make_edge(graph)</div><div class='del'>-        Edge.new(graph.vertex_named(origin), graph.vertex_named(destination), requirement)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Initialize an action to add an edge to a dependency graph</div><div class='del'>-      # @param [String] origin the name of the origin of the edge</div><div class='del'>-      # @param [String] destination the name of the destination of the edge</div><div class='del'>-      # @param [Object] requirement the requirement that the edge represents</div><div class='del'>-      def initialize(origin, destination, requirement)</div><div class='del'>-        @origin = origin</div><div class='del'>-        @destination = destination</div><div class='del'>-        @requirement = requirement</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      private</div><div class='del'>-</div><div class='del'>-      def delete_first(array, item)</div><div class='del'>-        return unless index = array.index(item)</div><div class='del'>-        array.delete_at(index)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb b/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb<br/>deleted file mode 100644<br/>index 0a1e08255b..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,62 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/action'</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  class DependencyGraph</div><div class='del'>-    # @!visibility private</div><div class='del'>-    # (see DependencyGraph#add_vertex)</div><div class='del'>-    class AddVertex &lt; Action # :nodoc:</div><div class='del'>-      # @!group Action</div><div class='del'>-</div><div class='del'>-      # (see Action.action_name)</div><div class='del'>-      def self.action_name</div><div class='del'>-        :add_vertex</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#up)</div><div class='del'>-      def up(graph)</div><div class='del'>-        if existing = graph.vertices[name]</div><div class='del'>-          @existing_payload = existing.payload</div><div class='del'>-          @existing_root = existing.root</div><div class='del'>-        end</div><div class='del'>-        vertex = existing || Vertex.new(name, payload)</div><div class='del'>-        graph.vertices[vertex.name] = vertex</div><div class='del'>-        vertex.payload ||= payload</div><div class='del'>-        vertex.root ||= root</div><div class='del'>-        vertex</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#down)</div><div class='del'>-      def down(graph)</div><div class='del'>-        if defined?(@existing_payload)</div><div class='del'>-          vertex = graph.vertices[name]</div><div class='del'>-          vertex.payload = @existing_payload</div><div class='del'>-          vertex.root = @existing_root</div><div class='del'>-        else</div><div class='del'>-          graph.vertices.delete(name)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @!group AddVertex</div><div class='del'>-</div><div class='del'>-      # @return [String] the name of the vertex</div><div class='del'>-      attr_reader :name</div><div class='del'>-</div><div class='del'>-      # @return [Object] the payload for the vertex</div><div class='del'>-      attr_reader :payload</div><div class='del'>-</div><div class='del'>-      # @return [Boolean] whether the vertex is root or not</div><div class='del'>-      attr_reader :root</div><div class='del'>-</div><div class='del'>-      # Initialize an action to add a vertex to a dependency graph</div><div class='del'>-      # @param [String] name the name of the vertex</div><div class='del'>-      # @param [Object] payload the payload for the vertex</div><div class='del'>-      # @param [Boolean] root whether the vertex is root or not</div><div class='del'>-      def initialize(name, payload, root)</div><div class='del'>-        @name = name</div><div class='del'>-        @payload = payload</div><div class='del'>-        @root = root</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb b/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb<br/>deleted file mode 100644<br/>index 1d9f4b327d..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,63 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/action'</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  class DependencyGraph</div><div class='del'>-    # @!visibility private</div><div class='del'>-    # (see DependencyGraph#delete_edge)</div><div class='del'>-    class DeleteEdge &lt; Action</div><div class='del'>-      # @!group Action</div><div class='del'>-</div><div class='del'>-      # (see Action.action_name)</div><div class='del'>-      def self.action_name</div><div class='del'>-        :delete_edge</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#up)</div><div class='del'>-      def up(graph)</div><div class='del'>-        edge = make_edge(graph)</div><div class='del'>-        edge.origin.outgoing_edges.delete(edge)</div><div class='del'>-        edge.destination.incoming_edges.delete(edge)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#down)</div><div class='del'>-      def down(graph)</div><div class='del'>-        edge = make_edge(graph)</div><div class='del'>-        edge.origin.outgoing_edges &lt;&lt; edge</div><div class='del'>-        edge.destination.incoming_edges &lt;&lt; edge</div><div class='del'>-        edge</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @!group DeleteEdge</div><div class='del'>-</div><div class='del'>-      # @return [String] the name of the origin of the edge</div><div class='del'>-      attr_reader :origin_name</div><div class='del'>-</div><div class='del'>-      # @return [String] the name of the destination of the edge</div><div class='del'>-      attr_reader :destination_name</div><div class='del'>-</div><div class='del'>-      # @return [Object] the requirement that the edge represents</div><div class='del'>-      attr_reader :requirement</div><div class='del'>-</div><div class='del'>-      # @param  [DependencyGraph] graph the graph to find vertices from</div><div class='del'>-      # @return [Edge] The edge this action adds</div><div class='del'>-      def make_edge(graph)</div><div class='del'>-        Edge.new(</div><div class='del'>-          graph.vertex_named(origin_name),</div><div class='del'>-          graph.vertex_named(destination_name),</div><div class='del'>-          requirement</div><div class='del'>-        )</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Initialize an action to add an edge to a dependency graph</div><div class='del'>-      # @param [String] origin_name the name of the origin of the edge</div><div class='del'>-      # @param [String] destination_name the name of the destination of the edge</div><div class='del'>-      # @param [Object] requirement the requirement that the edge represents</div><div class='del'>-      def initialize(origin_name, destination_name, requirement)</div><div class='del'>-        @origin_name = origin_name</div><div class='del'>-        @destination_name = destination_name</div><div class='del'>-        @requirement = requirement</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb b/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb<br/>deleted file mode 100644<br/>index 385dcbdd06..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,61 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/action'</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  class DependencyGraph</div><div class='del'>-    # @!visibility private</div><div class='del'>-    # @see DependencyGraph#detach_vertex_named</div><div class='del'>-    class DetachVertexNamed &lt; Action</div><div class='del'>-      # @!group Action</div><div class='del'>-</div><div class='del'>-      # (see Action#name)</div><div class='del'>-      def self.action_name</div><div class='del'>-        :add_vertex</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#up)</div><div class='del'>-      def up(graph)</div><div class='del'>-        return [] unless @vertex = graph.vertices.delete(name)</div><div class='del'>-</div><div class='del'>-        removed_vertices = [@vertex]</div><div class='del'>-        @vertex.outgoing_edges.each do |e|</div><div class='del'>-          v = e.destination</div><div class='del'>-          v.incoming_edges.delete(e)</div><div class='del'>-          if !v.root? &amp;&amp; v.incoming_edges.empty?</div><div class='del'>-            removed_vertices.concat graph.detach_vertex_named(v.name)</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        @vertex.incoming_edges.each do |e|</div><div class='del'>-          v = e.origin</div><div class='del'>-          v.outgoing_edges.delete(e)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        removed_vertices</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#down)</div><div class='del'>-      def down(graph)</div><div class='del'>-        return unless @vertex</div><div class='del'>-        graph.vertices[@vertex.name] = @vertex</div><div class='del'>-        @vertex.outgoing_edges.each do |e|</div><div class='del'>-          e.destination.incoming_edges &lt;&lt; e</div><div class='del'>-        end</div><div class='del'>-        @vertex.incoming_edges.each do |e|</div><div class='del'>-          e.origin.outgoing_edges &lt;&lt; e</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @!group DetachVertexNamed</div><div class='del'>-</div><div class='del'>-      # @return [String] the name of the vertex to detach</div><div class='del'>-      attr_reader :name</div><div class='del'>-</div><div class='del'>-      # Initialize an action to detach a vertex from a dependency graph</div><div class='del'>-      # @param [String] name the name of the vertex to detach</div><div class='del'>-      def initialize(name)</div><div class='del'>-        @name = name</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb b/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb<br/>deleted file mode 100644<br/>index 8582dd19c1..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,126 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular'</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex'</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge'</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named'</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload'</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag'</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  class DependencyGraph</div><div class='del'>-    # A log for dependency graph actions</div><div class='del'>-    class Log</div><div class='del'>-      # Initializes an empty log</div><div class='del'>-      def initialize</div><div class='del'>-        @current_action = @first_action = nil</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @!macro [new] action</div><div class='del'>-      #   {include:DependencyGraph#$0}</div><div class='del'>-      #   @param [Graph] graph the graph to perform the action on</div><div class='del'>-      #   @param (see DependencyGraph#$0)</div><div class='del'>-      #   @return (see DependencyGraph#$0)</div><div class='del'>-</div><div class='del'>-      # @macro action</div><div class='del'>-      def tag(graph, tag)</div><div class='del'>-        push_action(graph, Tag.new(tag))</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @macro action</div><div class='del'>-      def add_vertex(graph, name, payload, root)</div><div class='del'>-        push_action(graph, AddVertex.new(name, payload, root))</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @macro action</div><div class='del'>-      def detach_vertex_named(graph, name)</div><div class='del'>-        push_action(graph, DetachVertexNamed.new(name))</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @macro action</div><div class='del'>-      def add_edge_no_circular(graph, origin, destination, requirement)</div><div class='del'>-        push_action(graph, AddEdgeNoCircular.new(origin, destination, requirement))</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # {include:DependencyGraph#delete_edge}</div><div class='del'>-      # @param [Graph] graph the graph to perform the action on</div><div class='del'>-      # @param [String] origin_name</div><div class='del'>-      # @param [String] destination_name</div><div class='del'>-      # @param [Object] requirement</div><div class='del'>-      # @return (see DependencyGraph#delete_edge)</div><div class='del'>-      def delete_edge(graph, origin_name, destination_name, requirement)</div><div class='del'>-        push_action(graph, DeleteEdge.new(origin_name, destination_name, requirement))</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @macro action</div><div class='del'>-      def set_payload(graph, name, payload)</div><div class='del'>-        push_action(graph, SetPayload.new(name, payload))</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Pops the most recent action from the log and undoes the action</div><div class='del'>-      # @param [DependencyGraph] graph</div><div class='del'>-      # @return [Action] the action that was popped off the log</div><div class='del'>-      def pop!(graph)</div><div class='del'>-        return unless action = @current_action</div><div class='del'>-        unless @current_action = action.previous</div><div class='del'>-          @first_action = nil</div><div class='del'>-        end</div><div class='del'>-        action.down(graph)</div><div class='del'>-        action</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      extend Enumerable</div><div class='del'>-</div><div class='del'>-      # @!visibility private</div><div class='del'>-      # Enumerates each action in the log</div><div class='del'>-      # @yield [Action]</div><div class='del'>-      def each</div><div class='del'>-        return enum_for unless block_given?</div><div class='del'>-        action = @first_action</div><div class='del'>-        loop do</div><div class='del'>-          break unless action</div><div class='del'>-          yield action</div><div class='del'>-          action = action.next</div><div class='del'>-        end</div><div class='del'>-        self</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @!visibility private</div><div class='del'>-      # Enumerates each action in the log in reverse order</div><div class='del'>-      # @yield [Action]</div><div class='del'>-      def reverse_each</div><div class='del'>-        return enum_for(:reverse_each) unless block_given?</div><div class='del'>-        action = @current_action</div><div class='del'>-        loop do</div><div class='del'>-          break unless action</div><div class='del'>-          yield action</div><div class='del'>-          action = action.previous</div><div class='del'>-        end</div><div class='del'>-        self</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @macro action</div><div class='del'>-      def rewind_to(graph, tag)</div><div class='del'>-        loop do</div><div class='del'>-          action = pop!(graph)</div><div class='del'>-          raise "No tag #{tag.inspect} found" unless action</div><div class='del'>-          break if action.class.action_name == :tag &amp;&amp; action.tag == tag</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      private</div><div class='del'>-</div><div class='del'>-      # Adds the given action to the log, running the action</div><div class='del'>-      # @param [DependencyGraph] graph</div><div class='del'>-      # @param [Action] action</div><div class='del'>-      # @return The value returned by `action.up`</div><div class='del'>-      def push_action(graph, action)</div><div class='del'>-        action.previous = @current_action</div><div class='del'>-        @current_action.next = action if @current_action</div><div class='del'>-        @current_action = action</div><div class='del'>-        @first_action ||= action</div><div class='del'>-        action.up(graph)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb b/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb<br/>deleted file mode 100644<br/>index 37286d104a..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,46 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/action'</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  class DependencyGraph</div><div class='del'>-    # @!visibility private</div><div class='del'>-    # @see DependencyGraph#set_payload</div><div class='del'>-    class SetPayload &lt; Action # :nodoc:</div><div class='del'>-      # @!group Action</div><div class='del'>-</div><div class='del'>-      # (see Action.action_name)</div><div class='del'>-      def self.action_name</div><div class='del'>-        :set_payload</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#up)</div><div class='del'>-      def up(graph)</div><div class='del'>-        vertex = graph.vertex_named(name)</div><div class='del'>-        @old_payload = vertex.payload</div><div class='del'>-        vertex.payload = payload</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#down)</div><div class='del'>-      def down(graph)</div><div class='del'>-        graph.vertex_named(name).payload = @old_payload</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @!group SetPayload</div><div class='del'>-</div><div class='del'>-      # @return [String] the name of the vertex</div><div class='del'>-      attr_reader :name</div><div class='del'>-</div><div class='del'>-      # @return [Object] the payload for the vertex</div><div class='del'>-      attr_reader :payload</div><div class='del'>-</div><div class='del'>-      # Initialize an action to add set the payload for a vertex in a dependency</div><div class='del'>-      # graph</div><div class='del'>-      # @param [String] name the name of the vertex</div><div class='del'>-      # @param [Object] payload the payload for the vertex</div><div class='del'>-      def initialize(name, payload)</div><div class='del'>-        @name = name</div><div class='del'>-        @payload = payload</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb b/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb<br/>deleted file mode 100644<br/>index d6ad16e07a..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,36 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/action'</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  class DependencyGraph</div><div class='del'>-    # @!visibility private</div><div class='del'>-    # @see DependencyGraph#tag</div><div class='del'>-    class Tag &lt; Action</div><div class='del'>-      # @!group Action</div><div class='del'>-</div><div class='del'>-      # (see Action.action_name)</div><div class='del'>-      def self.action_name</div><div class='del'>-        :tag</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#up)</div><div class='del'>-      def up(_graph)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # (see Action#down)</div><div class='del'>-      def down(_graph)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @!group Tag</div><div class='del'>-</div><div class='del'>-      # @return [Object] An opaque tag</div><div class='del'>-      attr_reader :tag</div><div class='del'>-</div><div class='del'>-      # Initialize an action to tag a state of a dependency graph</div><div class='del'>-      # @param [Object] tag an opaque tag</div><div class='del'>-      def initialize(tag)</div><div class='del'>-        @tag = tag</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb b/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb<br/>deleted file mode 100644<br/>index 7ecdc4b65a..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,136 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  class DependencyGraph</div><div class='del'>-    # A vertex in a {DependencyGraph} that encapsulates a {#name} and a</div><div class='del'>-    # {#payload}</div><div class='del'>-    class Vertex</div><div class='del'>-      # @return [String] the name of the vertex</div><div class='del'>-      attr_accessor :name</div><div class='del'>-</div><div class='del'>-      # @return [Object] the payload the vertex holds</div><div class='del'>-      attr_accessor :payload</div><div class='del'>-</div><div class='del'>-      # @return [Array&lt;Object&gt;] the explicit requirements that required</div><div class='del'>-      #   this vertex</div><div class='del'>-      attr_reader :explicit_requirements</div><div class='del'>-</div><div class='del'>-      # @return [Boolean] whether the vertex is considered a root vertex</div><div class='del'>-      attr_accessor :root</div><div class='del'>-      alias root? root</div><div class='del'>-</div><div class='del'>-      # Initializes a vertex with the given name and payload.</div><div class='del'>-      # @param [String] name see {#name}</div><div class='del'>-      # @param [Object] payload see {#payload}</div><div class='del'>-      def initialize(name, payload)</div><div class='del'>-        @name = name.frozen? ? name : name.dup.freeze</div><div class='del'>-        @payload = payload</div><div class='del'>-        @explicit_requirements = []</div><div class='del'>-        @outgoing_edges = []</div><div class='del'>-        @incoming_edges = []</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Array&lt;Object&gt;] all of the requirements that required</div><div class='del'>-      #   this vertex</div><div class='del'>-      def requirements</div><div class='del'>-        (incoming_edges.map(&amp;:requirement) + explicit_requirements).uniq</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Array&lt;Edge&gt;] the edges of {#graph} that have `self` as their</div><div class='del'>-      #   {Edge#origin}</div><div class='del'>-      attr_accessor :outgoing_edges</div><div class='del'>-</div><div class='del'>-      # @return [Array&lt;Edge&gt;] the edges of {#graph} that have `self` as their</div><div class='del'>-      #   {Edge#destination}</div><div class='del'>-      attr_accessor :incoming_edges</div><div class='del'>-</div><div class='del'>-      # @return [Array&lt;Vertex&gt;] the vertices of {#graph} that have an edge with</div><div class='del'>-      #   `self` as their {Edge#destination}</div><div class='del'>-      def predecessors</div><div class='del'>-        incoming_edges.map(&amp;:origin)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Array&lt;Vertex&gt;] the vertices of {#graph} where `self` is a</div><div class='del'>-      #   {#descendent?}</div><div class='del'>-      def recursive_predecessors</div><div class='del'>-        vertices = predecessors</div><div class='del'>-        vertices += Compatibility.flat_map(vertices, &amp;:recursive_predecessors)</div><div class='del'>-        vertices.uniq!</div><div class='del'>-        vertices</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Array&lt;Vertex&gt;] the vertices of {#graph} that have an edge with</div><div class='del'>-      #   `self` as their {Edge#origin}</div><div class='del'>-      def successors</div><div class='del'>-        outgoing_edges.map(&amp;:destination)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Array&lt;Vertex&gt;] the vertices of {#graph} where `self` is an</div><div class='del'>-      #   {#ancestor?}</div><div class='del'>-      def recursive_successors</div><div class='del'>-        vertices = successors</div><div class='del'>-        vertices += Compatibility.flat_map(vertices, &amp;:recursive_successors)</div><div class='del'>-        vertices.uniq!</div><div class='del'>-        vertices</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [String] a string suitable for debugging</div><div class='del'>-      def inspect</div><div class='del'>-        "#{self.class}:#{name}(#{payload.inspect})"</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Boolean] whether the two vertices are equal, determined</div><div class='del'>-      #   by a recursive traversal of each {Vertex#successors}</div><div class='del'>-      def ==(other)</div><div class='del'>-        return true if equal?(other)</div><div class='del'>-        shallow_eql?(other) &amp;&amp;</div><div class='del'>-          successors.to_set == other.successors.to_set</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @param  [Vertex] other the other vertex to compare to</div><div class='del'>-      # @return [Boolean] whether the two vertices are equal, determined</div><div class='del'>-      #   solely by {#name} and {#payload} equality</div><div class='del'>-      def shallow_eql?(other)</div><div class='del'>-        return true if equal?(other)</div><div class='del'>-        other &amp;&amp;</div><div class='del'>-          name == other.name &amp;&amp;</div><div class='del'>-          payload == other.payload</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      alias eql? ==</div><div class='del'>-</div><div class='del'>-      # @return [Fixnum] a hash for the vertex based upon its {#name}</div><div class='del'>-      def hash</div><div class='del'>-        name.hash</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Is there a path from `self` to `other` following edges in the</div><div class='del'>-      # dependency graph?</div><div class='del'>-      # @return true iff there is a path following edges within this {#graph}</div><div class='del'>-      def path_to?(other)</div><div class='del'>-        _path_to?(other)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      alias descendent? path_to?</div><div class='del'>-</div><div class='del'>-      # @param [Vertex] other the vertex to check if there's a path to</div><div class='del'>-      # @param [Set&lt;Vertex&gt;] visited the vertices of {#graph} that have been visited</div><div class='del'>-      # @return [Boolean] whether there is a path to `other` from `self`</div><div class='del'>-      def _path_to?(other, visited = Set.new)</div><div class='del'>-        return false unless visited.add?(self)</div><div class='del'>-        return true if equal?(other)</div><div class='del'>-        successors.any? { |v| v._path_to?(other, visited) }</div><div class='del'>-      end</div><div class='del'>-      protected :_path_to?</div><div class='del'>-</div><div class='del'>-      # Is there a path from `other` to `self` following edges in the</div><div class='del'>-      # dependency graph?</div><div class='del'>-      # @return true iff there is a path following edges within this {#graph}</div><div class='del'>-      def ancestor?(other)</div><div class='del'>-        other.path_to?(self)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      alias is_reachable_from? ancestor?</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb b/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb<br/>deleted file mode 100644<br/>index ce0931f103..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/errors.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,143 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  # An error that occurred during the resolution process</div><div class='del'>-  class ResolverError &lt; StandardError; end</div><div class='del'>-</div><div class='del'>-  # An error caused by searching for a dependency that is completely unknown,</div><div class='del'>-  # i.e. has no versions available whatsoever.</div><div class='del'>-  class NoSuchDependencyError &lt; ResolverError</div><div class='del'>-    # @return [Object] the dependency that could not be found</div><div class='del'>-    attr_accessor :dependency</div><div class='del'>-</div><div class='del'>-    # @return [Array&lt;Object&gt;] the specifications that depended upon {#dependency}</div><div class='del'>-    attr_accessor :required_by</div><div class='del'>-</div><div class='del'>-    # Initializes a new error with the given missing dependency.</div><div class='del'>-    # @param [Object] dependency @see {#dependency}</div><div class='del'>-    # @param [Array&lt;Object&gt;] required_by @see {#required_by}</div><div class='del'>-    def initialize(dependency, required_by = [])</div><div class='del'>-      @dependency = dependency</div><div class='del'>-      @required_by = required_by.uniq</div><div class='del'>-      super()</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # The error message for the missing dependency, including the specifications</div><div class='del'>-    # that had this dependency.</div><div class='del'>-    def message</div><div class='del'>-      sources = required_by.map { |r| "`#{r}`" }.join(' and ')</div><div class='del'>-      message = "Unable to find a specification for `#{dependency}`"</div><div class='del'>-      message += " depended upon by #{sources}" unless sources.empty?</div><div class='del'>-      message</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # An error caused by attempting to fulfil a dependency that was circular</div><div class='del'>-  #</div><div class='del'>-  # @note This exception will be thrown iff a {Vertex} is added to a</div><div class='del'>-  #   {DependencyGraph} that has a {DependencyGraph::Vertex#path_to?} an</div><div class='del'>-  #   existing {DependencyGraph::Vertex}</div><div class='del'>-  class CircularDependencyError &lt; ResolverError</div><div class='del'>-    # [Set&lt;Object&gt;] the dependencies responsible for causing the error</div><div class='del'>-    attr_reader :dependencies</div><div class='del'>-</div><div class='del'>-    # Initializes a new error with the given circular vertices.</div><div class='del'>-    # @param [Array&lt;DependencyGraph::Vertex&gt;] vertices the vertices in the dependency</div><div class='del'>-    #   that caused the error</div><div class='del'>-    def initialize(vertices)</div><div class='del'>-      super "There is a circular dependency between #{vertices.map(&amp;:name).join(' and ')}"</div><div class='del'>-      @dependencies = vertices.map { |vertex| vertex.payload.possibilities.last }.to_set</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # An error caused by conflicts in version</div><div class='del'>-  class VersionConflict &lt; ResolverError</div><div class='del'>-    # @return [{String =&gt; Resolution::Conflict}] the conflicts that caused</div><div class='del'>-    #   resolution to fail</div><div class='del'>-    attr_reader :conflicts</div><div class='del'>-</div><div class='del'>-    # @return [SpecificationProvider] the specification provider used during</div><div class='del'>-    #   resolution</div><div class='del'>-    attr_reader :specification_provider</div><div class='del'>-</div><div class='del'>-    # Initializes a new error with the given version conflicts.</div><div class='del'>-    # @param [{String =&gt; Resolution::Conflict}] conflicts see {#conflicts}</div><div class='del'>-    # @param [SpecificationProvider] specification_provider see {#specification_provider}</div><div class='del'>-    def initialize(conflicts, specification_provider)</div><div class='del'>-      pairs = []</div><div class='del'>-      Compatibility.flat_map(conflicts.values.flatten, &amp;:requirements).each do |conflicting|</div><div class='del'>-        conflicting.each do |source, conflict_requirements|</div><div class='del'>-          conflict_requirements.each do |c|</div><div class='del'>-            pairs &lt;&lt; [c, source]</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      super "Unable to satisfy the following requirements:\n\n" \</div><div class='del'>-        "#{pairs.map { |r, d| "- `#{r}` required by `#{d}`" }.join("\n")}"</div><div class='del'>-</div><div class='del'>-      @conflicts = conflicts</div><div class='del'>-      @specification_provider = specification_provider</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    require 'bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider'</div><div class='del'>-    include Delegates::SpecificationProvider</div><div class='del'>-</div><div class='del'>-    # @return [String] An error message that includes requirement trees,</div><div class='del'>-    #   which is much more detailed &amp; customizable than the default message</div><div class='del'>-    # @param [Hash] opts the options to create a message with.</div><div class='del'>-    # @option opts [String] :solver_name The user-facing name of the solver</div><div class='del'>-    # @option opts [String] :possibility_type The generic name of a possibility</div><div class='del'>-    # @option opts [Proc] :reduce_trees A proc that reduced the list of requirement trees</div><div class='del'>-    # @option opts [Proc] :printable_requirement A proc that pretty-prints requirements</div><div class='del'>-    # @option opts [Proc] :additional_message_for_conflict A proc that appends additional</div><div class='del'>-    #   messages for each conflict</div><div class='del'>-    # @option opts [Proc] :version_for_spec A proc that returns the version number for a</div><div class='del'>-    #   possibility</div><div class='del'>-    def message_with_trees(opts = {})</div><div class='del'>-      solver_name = opts.delete(:solver_name) { self.class.name.split('::').first }</div><div class='del'>-      possibility_type = opts.delete(:possibility_type) { 'possibility named' }</div><div class='del'>-      reduce_trees = opts.delete(:reduce_trees) { proc { |trees| trees.uniq.sort_by(&amp;:to_s) } }</div><div class='del'>-      printable_requirement = opts.delete(:printable_requirement) { proc { |req| req.to_s } }</div><div class='del'>-      additional_message_for_conflict = opts.delete(:additional_message_for_conflict) { proc {} }</div><div class='del'>-      version_for_spec = opts.delete(:version_for_spec) { proc(&amp;:to_s) }</div><div class='del'>-      incompatible_version_message_for_conflict = opts.delete(:incompatible_version_message_for_conflict) do</div><div class='del'>-        proc do |name, _conflict|</div><div class='del'>-          %(#{solver_name} could not find compatible versions for #{possibility_type} "#{name}":)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      conflicts.sort.reduce(''.dup) do |o, (name, conflict)|</div><div class='del'>-        o &lt;&lt; "\n" &lt;&lt; incompatible_version_message_for_conflict.call(name, conflict) &lt;&lt; "\n"</div><div class='del'>-        if conflict.locked_requirement</div><div class='del'>-          o &lt;&lt; %(  In snapshot (#{name_for_locking_dependency_source}):\n)</div><div class='del'>-          o &lt;&lt; %(    #{printable_requirement.call(conflict.locked_requirement)}\n)</div><div class='del'>-          o &lt;&lt; %(\n)</div><div class='del'>-        end</div><div class='del'>-        o &lt;&lt; %(  In #{name_for_explicit_dependency_source}:\n)</div><div class='del'>-        trees = reduce_trees.call(conflict.requirement_trees)</div><div class='del'>-</div><div class='del'>-        o &lt;&lt; trees.map do |tree|</div><div class='del'>-          t = ''.dup</div><div class='del'>-          depth = 2</div><div class='del'>-          tree.each do |req|</div><div class='del'>-            t &lt;&lt; '  ' * depth &lt;&lt; req.to_s</div><div class='del'>-            unless tree.last == req</div><div class='del'>-              if spec = conflict.activated_by_name[name_for(req)]</div><div class='del'>-                t &lt;&lt; %( was resolved to #{version_for_spec.call(spec)}, which)</div><div class='del'>-              end</div><div class='del'>-              t &lt;&lt; %( depends on)</div><div class='del'>-            end</div><div class='del'>-            t &lt;&lt; %(\n)</div><div class='del'>-            depth += 1</div><div class='del'>-          end</div><div class='del'>-          t</div><div class='del'>-        end.join("\n")</div><div class='del'>-</div><div class='del'>-        additional_message_for_conflict.call(o, name, conflict)</div><div class='del'>-</div><div class='del'>-        o</div><div class='del'>-      end.strip</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb b/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb<br/>deleted file mode 100644<br/>index 73f8fbf2ac..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  # The version of Bundler::Molinillo.</div><div class='del'>-  VERSION = '0.6.6'.freeze</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb b/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb<br/>deleted file mode 100644<br/>index fa094c1981..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,101 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  # Provides information about specifcations and dependencies to the resolver,</div><div class='del'>-  # allowing the {Resolver} class to remain generic while still providing power</div><div class='del'>-  # and flexibility.</div><div class='del'>-  #</div><div class='del'>-  # This module contains the methods that users of Bundler::Molinillo must to implement,</div><div class='del'>-  # using knowledge of their own model classes.</div><div class='del'>-  module SpecificationProvider</div><div class='del'>-    # Search for the specifications that match the given dependency.</div><div class='del'>-    # The specifications in the returned array will be considered in reverse</div><div class='del'>-    # order, so the latest version ought to be last.</div><div class='del'>-    # @note This method should be 'pure', i.e. the return value should depend</div><div class='del'>-    #   only on the `dependency` parameter.</div><div class='del'>-    #</div><div class='del'>-    # @param [Object] dependency</div><div class='del'>-    # @return [Array&lt;Object&gt;] the specifications that satisfy the given</div><div class='del'>-    #   `dependency`.</div><div class='del'>-    def search_for(dependency)</div><div class='del'>-      []</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns the dependencies of `specification`.</div><div class='del'>-    # @note This method should be 'pure', i.e. the return value should depend</div><div class='del'>-    #   only on the `specification` parameter.</div><div class='del'>-    #</div><div class='del'>-    # @param [Object] specification</div><div class='del'>-    # @return [Array&lt;Object&gt;] the dependencies that are required by the given</div><div class='del'>-    #   `specification`.</div><div class='del'>-    def dependencies_for(specification)</div><div class='del'>-      []</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Determines whether the given `requirement` is satisfied by the given</div><div class='del'>-    # `spec`, in the context of the current `activated` dependency graph.</div><div class='del'>-    #</div><div class='del'>-    # @param [Object] requirement</div><div class='del'>-    # @param [DependencyGraph] activated the current dependency graph in the</div><div class='del'>-    #   resolution process.</div><div class='del'>-    # @param [Object] spec</div><div class='del'>-    # @return [Boolean] whether `requirement` is satisfied by `spec` in the</div><div class='del'>-    #   context of the current `activated` dependency graph.</div><div class='del'>-    def requirement_satisfied_by?(requirement, activated, spec)</div><div class='del'>-      true</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns the name for the given `dependency`.</div><div class='del'>-    # @note This method should be 'pure', i.e. the return value should depend</div><div class='del'>-    #   only on the `dependency` parameter.</div><div class='del'>-    #</div><div class='del'>-    # @param [Object] dependency</div><div class='del'>-    # @return [String] the name for the given `dependency`.</div><div class='del'>-    def name_for(dependency)</div><div class='del'>-      dependency.to_s</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # @return [String] the name of the source of explicit dependencies, i.e.</div><div class='del'>-    #   those passed to {Resolver#resolve} directly.</div><div class='del'>-    def name_for_explicit_dependency_source</div><div class='del'>-      'user-specified dependency'</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # @return [String] the name of the source of 'locked' dependencies, i.e.</div><div class='del'>-    #   those passed to {Resolver#resolve} directly as the `base`</div><div class='del'>-    def name_for_locking_dependency_source</div><div class='del'>-      'Lockfile'</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Sort dependencies so that the ones that are easiest to resolve are first.</div><div class='del'>-    # Easiest to resolve is (usually) defined by:</div><div class='del'>-    #   1) Is this dependency already activated?</div><div class='del'>-    #   2) How relaxed are the requirements?</div><div class='del'>-    #   3) Are there any conflicts for this dependency?</div><div class='del'>-    #   4) How many possibilities are there to satisfy this dependency?</div><div class='del'>-    #</div><div class='del'>-    # @param [Array&lt;Object&gt;] dependencies</div><div class='del'>-    # @param [DependencyGraph] activated the current dependency graph in the</div><div class='del'>-    #   resolution process.</div><div class='del'>-    # @param [{String =&gt; Array&lt;Conflict&gt;}] conflicts</div><div class='del'>-    # @return [Array&lt;Object&gt;] a sorted copy of `dependencies`.</div><div class='del'>-    def sort_dependencies(dependencies, activated, conflicts)</div><div class='del'>-      dependencies.sort_by do |dependency|</div><div class='del'>-        name = name_for(dependency)</div><div class='del'>-        [</div><div class='del'>-          activated.vertex_named(name).payload ? 0 : 1,</div><div class='del'>-          conflicts[name] ? 0 : 1,</div><div class='del'>-        ]</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns whether this dependency, which has no possible matching</div><div class='del'>-    # specifications, can safely be ignored.</div><div class='del'>-    #</div><div class='del'>-    # @param [Object] dependency</div><div class='del'>-    # @return [Boolean] whether this dependency can safely be skipped.</div><div class='del'>-    def allow_missing?(dependency)</div><div class='del'>-      false</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb b/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb<br/>deleted file mode 100644<br/>index a166bc6991..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,67 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  # Conveys information about the resolution process to a user.</div><div class='del'>-  module UI</div><div class='del'>-    # The {IO} object that should be used to print output. `STDOUT`, by default.</div><div class='del'>-    #</div><div class='del'>-    # @return [IO]</div><div class='del'>-    def output</div><div class='del'>-      STDOUT</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Called roughly every {#progress_rate}, this method should convey progress</div><div class='del'>-    # to the user.</div><div class='del'>-    #</div><div class='del'>-    # @return [void]</div><div class='del'>-    def indicate_progress</div><div class='del'>-      output.print '.' unless debug?</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # How often progress should be conveyed to the user via</div><div class='del'>-    # {#indicate_progress}, in seconds. A third of a second, by default.</div><div class='del'>-    #</div><div class='del'>-    # @return [Float]</div><div class='del'>-    def progress_rate</div><div class='del'>-      0.33</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Called before resolution begins.</div><div class='del'>-    #</div><div class='del'>-    # @return [void]</div><div class='del'>-    def before_resolution</div><div class='del'>-      output.print 'Resolving dependencies...'</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Called after resolution ends (either successfully or with an error).</div><div class='del'>-    # By default, prints a newline.</div><div class='del'>-    #</div><div class='del'>-    # @return [void]</div><div class='del'>-    def after_resolution</div><div class='del'>-      output.puts</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Conveys debug information to the user.</div><div class='del'>-    #</div><div class='del'>-    # @param [Integer] depth the current depth of the resolution process.</div><div class='del'>-    # @return [void]</div><div class='del'>-    def debug(depth = 0)</div><div class='del'>-      if debug?</div><div class='del'>-        debug_info = yield</div><div class='del'>-        debug_info = debug_info.inspect unless debug_info.is_a?(String)</div><div class='del'>-        debug_info = debug_info.split("\n").map { |s| ":#{depth.to_s.rjust 4}: #{s}" }</div><div class='del'>-        output.puts debug_info</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Whether or not debug messages should be printed.</div><div class='del'>-    # By default, whether or not the `MOLINILLO_DEBUG` environment variable is</div><div class='del'>-    # set.</div><div class='del'>-    #</div><div class='del'>-    # @return [Boolean]</div><div class='del'>-    def debug?</div><div class='del'>-      return @debug_mode if defined?(@debug_mode)</div><div class='del'>-      @debug_mode = ENV['MOLINILLO_DEBUG']</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb b/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb<br/>deleted file mode 100644<br/>index 0eb665d17a..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,837 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  class Resolver</div><div class='del'>-    # A specific resolution from a given {Resolver}</div><div class='del'>-    class Resolution</div><div class='del'>-      # A conflict that the resolution process encountered</div><div class='del'>-      # @attr [Object] requirement the requirement that immediately led to the conflict</div><div class='del'>-      # @attr [{String,Nil=&gt;[Object]}] requirements the requirements that caused the conflict</div><div class='del'>-      # @attr [Object, nil] existing the existing spec that was in conflict with</div><div class='del'>-      #   the {#possibility}</div><div class='del'>-      # @attr [Object] possibility_set the set of specs that was unable to be</div><div class='del'>-      #   activated due to a conflict.</div><div class='del'>-      # @attr [Object] locked_requirement the relevant locking requirement.</div><div class='del'>-      # @attr [Array&lt;Array&lt;Object&gt;&gt;] requirement_trees the different requirement</div><div class='del'>-      #   trees that led to every requirement for the conflicting name.</div><div class='del'>-      # @attr [{String=&gt;Object}] activated_by_name the already-activated specs.</div><div class='del'>-      # @attr [Object] underlying_error an error that has occurred during resolution, and</div><div class='del'>-      #    will be raised at the end of it if no resolution is found.</div><div class='del'>-      Conflict = Struct.new(</div><div class='del'>-        :requirement,</div><div class='del'>-        :requirements,</div><div class='del'>-        :existing,</div><div class='del'>-        :possibility_set,</div><div class='del'>-        :locked_requirement,</div><div class='del'>-        :requirement_trees,</div><div class='del'>-        :activated_by_name,</div><div class='del'>-        :underlying_error</div><div class='del'>-      )</div><div class='del'>-</div><div class='del'>-      class Conflict</div><div class='del'>-        # @return [Object] a spec that was unable to be activated due to a conflict</div><div class='del'>-        def possibility</div><div class='del'>-          possibility_set &amp;&amp; possibility_set.latest_version</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # A collection of possibility states that share the same dependencies</div><div class='del'>-      # @attr [Array] dependencies the dependencies for this set of possibilities</div><div class='del'>-      # @attr [Array] possibilities the possibilities</div><div class='del'>-      PossibilitySet = Struct.new(:dependencies, :possibilities)</div><div class='del'>-</div><div class='del'>-      class PossibilitySet</div><div class='del'>-        # String representation of the possibility set, for debugging</div><div class='del'>-        def to_s</div><div class='del'>-          "[#{possibilities.join(', ')}]"</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # @return [Object] most up-to-date dependency in the possibility set</div><div class='del'>-        def latest_version</div><div class='del'>-          possibilities.last</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Details of the state to unwind to when a conflict occurs, and the cause of the unwind</div><div class='del'>-      # @attr [Integer] state_index the index of the state to unwind to</div><div class='del'>-      # @attr [Object] state_requirement the requirement of the state we're unwinding to</div><div class='del'>-      # @attr [Array] requirement_tree for the requirement we're relaxing</div><div class='del'>-      # @attr [Array] conflicting_requirements the requirements that combined to cause the conflict</div><div class='del'>-      # @attr [Array] requirement_trees for the conflict</div><div class='del'>-      # @attr [Array] requirements_unwound_to_instead array of unwind requirements that were chosen over this unwind</div><div class='del'>-      UnwindDetails = Struct.new(</div><div class='del'>-        :state_index,</div><div class='del'>-        :state_requirement,</div><div class='del'>-        :requirement_tree,</div><div class='del'>-        :conflicting_requirements,</div><div class='del'>-        :requirement_trees,</div><div class='del'>-        :requirements_unwound_to_instead</div><div class='del'>-      )</div><div class='del'>-</div><div class='del'>-      class UnwindDetails</div><div class='del'>-        include Comparable</div><div class='del'>-</div><div class='del'>-        # We compare UnwindDetails when choosing which state to unwind to. If</div><div class='del'>-        # two options have the same state_index we prefer the one most</div><div class='del'>-        # removed from a requirement that caused the conflict. Both options</div><div class='del'>-        # would unwind to the same state, but a `grandparent` option will</div><div class='del'>-        # filter out fewer of its possibilities after doing so - where a state</div><div class='del'>-        # is both a `parent` and a `grandparent` to requirements that have</div><div class='del'>-        # caused a conflict this is the correct behaviour.</div><div class='del'>-        # @param [UnwindDetail] other UnwindDetail to be compared</div><div class='del'>-        # @return [Integer] integer specifying ordering</div><div class='del'>-        def &lt;=&gt;(other)</div><div class='del'>-          if state_index &gt; other.state_index</div><div class='del'>-            1</div><div class='del'>-          elsif state_index == other.state_index</div><div class='del'>-            reversed_requirement_tree_index &lt;=&gt; other.reversed_requirement_tree_index</div><div class='del'>-          else</div><div class='del'>-            -1</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # @return [Integer] index of state requirement in reversed requirement tree</div><div class='del'>-        #    (the conflicting requirement itself will be at position 0)</div><div class='del'>-        def reversed_requirement_tree_index</div><div class='del'>-          @reversed_requirement_tree_index ||=</div><div class='del'>-            if state_requirement</div><div class='del'>-              requirement_tree.reverse.index(state_requirement)</div><div class='del'>-            else</div><div class='del'>-              999_999</div><div class='del'>-            end</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # @return [Boolean] where the requirement of the state we're unwinding</div><div class='del'>-        #    to directly caused the conflict. Note: in this case, it is</div><div class='del'>-        #    impossible for the state we're unwinding to to be a parent of</div><div class='del'>-        #    any of the other conflicting requirements (or we would have</div><div class='del'>-        #    circularity)</div><div class='del'>-        def unwinding_to_primary_requirement?</div><div class='del'>-          requirement_tree.last == state_requirement</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # @return [Array] array of sub-dependencies to avoid when choosing a</div><div class='del'>-        #    new possibility for the state we've unwound to. Only relevant for</div><div class='del'>-        #    non-primary unwinds</div><div class='del'>-        def sub_dependencies_to_avoid</div><div class='del'>-          @requirements_to_avoid ||=</div><div class='del'>-            requirement_trees.map do |tree|</div><div class='del'>-              index = tree.index(state_requirement)</div><div class='del'>-              tree[index + 1] if index</div><div class='del'>-            end.compact</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # @return [Array] array of all the requirements that led to the need for</div><div class='del'>-        #    this unwind</div><div class='del'>-        def all_requirements</div><div class='del'>-          @all_requirements ||= requirement_trees.flatten(1)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [SpecificationProvider] the provider that knows about</div><div class='del'>-      #   dependencies, requirements, specifications, versions, etc.</div><div class='del'>-      attr_reader :specification_provider</div><div class='del'>-</div><div class='del'>-      # @return [UI] the UI that knows how to communicate feedback about the</div><div class='del'>-      #   resolution process back to the user</div><div class='del'>-      attr_reader :resolver_ui</div><div class='del'>-</div><div class='del'>-      # @return [DependencyGraph] the base dependency graph to which</div><div class='del'>-      #   dependencies should be 'locked'</div><div class='del'>-      attr_reader :base</div><div class='del'>-</div><div class='del'>-      # @return [Array] the dependencies that were explicitly required</div><div class='del'>-      attr_reader :original_requested</div><div class='del'>-</div><div class='del'>-      # Initializes a new resolution.</div><div class='del'>-      # @param [SpecificationProvider] specification_provider</div><div class='del'>-      #   see {#specification_provider}</div><div class='del'>-      # @param [UI] resolver_ui see {#resolver_ui}</div><div class='del'>-      # @param [Array] requested see {#original_requested}</div><div class='del'>-      # @param [DependencyGraph] base see {#base}</div><div class='del'>-      def initialize(specification_provider, resolver_ui, requested, base)</div><div class='del'>-        @specification_provider = specification_provider</div><div class='del'>-        @resolver_ui = resolver_ui</div><div class='del'>-        @original_requested = requested</div><div class='del'>-        @base = base</div><div class='del'>-        @states = []</div><div class='del'>-        @iteration_counter = 0</div><div class='del'>-        @parents_of = Hash.new { |h, k| h[k] = [] }</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Resolves the {#original_requested} dependencies into a full dependency</div><div class='del'>-      #   graph</div><div class='del'>-      # @raise [ResolverError] if successful resolution is impossible</div><div class='del'>-      # @return [DependencyGraph] the dependency graph of successfully resolved</div><div class='del'>-      #   dependencies</div><div class='del'>-      def resolve</div><div class='del'>-        start_resolution</div><div class='del'>-</div><div class='del'>-        while state</div><div class='del'>-          break if !state.requirement &amp;&amp; state.requirements.empty?</div><div class='del'>-          indicate_progress</div><div class='del'>-          if state.respond_to?(:pop_possibility_state) # DependencyState</div><div class='del'>-            debug(depth) { "Creating possibility state for #{requirement} (#{possibilities.count} remaining)" }</div><div class='del'>-            state.pop_possibility_state.tap do |s|</div><div class='del'>-              if s</div><div class='del'>-                states.push(s)</div><div class='del'>-                activated.tag(s)</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-          process_topmost_state</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        resolve_activated_specs</div><div class='del'>-      ensure</div><div class='del'>-        end_resolution</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Integer] the number of resolver iterations in between calls to</div><div class='del'>-      #   {#resolver_ui}'s {UI#indicate_progress} method</div><div class='del'>-      attr_accessor :iteration_rate</div><div class='del'>-      private :iteration_rate</div><div class='del'>-</div><div class='del'>-      # @return [Time] the time at which resolution began</div><div class='del'>-      attr_accessor :started_at</div><div class='del'>-      private :started_at</div><div class='del'>-</div><div class='del'>-      # @return [Array&lt;ResolutionState&gt;] the stack of states for the resolution</div><div class='del'>-      attr_accessor :states</div><div class='del'>-      private :states</div><div class='del'>-</div><div class='del'>-      private</div><div class='del'>-</div><div class='del'>-      # Sets up the resolution process</div><div class='del'>-      # @return [void]</div><div class='del'>-      def start_resolution</div><div class='del'>-        @started_at = Time.now</div><div class='del'>-</div><div class='del'>-        handle_missing_or_push_dependency_state(initial_state)</div><div class='del'>-</div><div class='del'>-        debug { "Starting resolution (#{@started_at})\nUser-requested dependencies: #{original_requested}" }</div><div class='del'>-        resolver_ui.before_resolution</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def resolve_activated_specs</div><div class='del'>-        activated.vertices.each do |_, vertex|</div><div class='del'>-          next unless vertex.payload</div><div class='del'>-</div><div class='del'>-          latest_version = vertex.payload.possibilities.reverse_each.find do |possibility|</div><div class='del'>-            vertex.requirements.all? { |req| requirement_satisfied_by?(req, activated, possibility) }</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          activated.set_payload(vertex.name, latest_version)</div><div class='del'>-        end</div><div class='del'>-        activated.freeze</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Ends the resolution process</div><div class='del'>-      # @return [void]</div><div class='del'>-      def end_resolution</div><div class='del'>-        resolver_ui.after_resolution</div><div class='del'>-        debug do</div><div class='del'>-          "Finished resolution (#{@iteration_counter} steps) " \</div><div class='del'>-          "(Took #{(ended_at = Time.now) - @started_at} seconds) (#{ended_at})"</div><div class='del'>-        end</div><div class='del'>-        debug { 'Unactivated: ' + Hash[activated.vertices.reject { |_n, v| v.payload }].keys.join(', ') } if state</div><div class='del'>-        debug { 'Activated: ' + Hash[activated.vertices.select { |_n, v| v.payload }].keys.join(', ') } if state</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      require 'bundler/vendor/molinillo/lib/molinillo/state'</div><div class='del'>-      require 'bundler/vendor/molinillo/lib/molinillo/modules/specification_provider'</div><div class='del'>-</div><div class='del'>-      require 'bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state'</div><div class='del'>-      require 'bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider'</div><div class='del'>-</div><div class='del'>-      include Bundler::Molinillo::Delegates::ResolutionState</div><div class='del'>-      include Bundler::Molinillo::Delegates::SpecificationProvider</div><div class='del'>-</div><div class='del'>-      # Processes the topmost available {RequirementState} on the stack</div><div class='del'>-      # @return [void]</div><div class='del'>-      def process_topmost_state</div><div class='del'>-        if possibility</div><div class='del'>-          attempt_to_activate</div><div class='del'>-        else</div><div class='del'>-          create_conflict</div><div class='del'>-          unwind_for_conflict</div><div class='del'>-        end</div><div class='del'>-      rescue CircularDependencyError =&gt; underlying_error</div><div class='del'>-        create_conflict(underlying_error)</div><div class='del'>-        unwind_for_conflict</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Object] the current possibility that the resolution is trying</div><div class='del'>-      #   to activate</div><div class='del'>-      def possibility</div><div class='del'>-        possibilities.last</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [RequirementState] the current state the resolution is</div><div class='del'>-      #   operating upon</div><div class='del'>-      def state</div><div class='del'>-        states.last</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Creates the initial state for the resolution, based upon the</div><div class='del'>-      # {#requested} dependencies</div><div class='del'>-      # @return [DependencyState] the initial state for the resolution</div><div class='del'>-      def initial_state</div><div class='del'>-        graph = DependencyGraph.new.tap do |dg|</div><div class='del'>-          original_requested.each do |requested|</div><div class='del'>-            vertex = dg.add_vertex(name_for(requested), nil, true)</div><div class='del'>-            vertex.explicit_requirements &lt;&lt; requested</div><div class='del'>-          end</div><div class='del'>-          dg.tag(:initial_state)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        requirements = sort_dependencies(original_requested, graph, {})</div><div class='del'>-        initial_requirement = requirements.shift</div><div class='del'>-        DependencyState.new(</div><div class='del'>-          initial_requirement &amp;&amp; name_for(initial_requirement),</div><div class='del'>-          requirements,</div><div class='del'>-          graph,</div><div class='del'>-          initial_requirement,</div><div class='del'>-          possibilities_for_requirement(initial_requirement, graph),</div><div class='del'>-          0,</div><div class='del'>-          {},</div><div class='del'>-          []</div><div class='del'>-        )</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Unwinds the states stack because a conflict has been encountered</div><div class='del'>-      # @return [void]</div><div class='del'>-      def unwind_for_conflict</div><div class='del'>-        details_for_unwind = build_details_for_unwind</div><div class='del'>-        unwind_options = unused_unwind_options</div><div class='del'>-        debug(depth) { "Unwinding for conflict: #{requirement} to #{details_for_unwind.state_index / 2}" }</div><div class='del'>-        conflicts.tap do |c|</div><div class='del'>-          sliced_states = states.slice!((details_for_unwind.state_index + 1)..-1)</div><div class='del'>-          raise_error_unless_state(c)</div><div class='del'>-          activated.rewind_to(sliced_states.first || :initial_state) if sliced_states</div><div class='del'>-          state.conflicts = c</div><div class='del'>-          state.unused_unwind_options = unwind_options</div><div class='del'>-          filter_possibilities_after_unwind(details_for_unwind)</div><div class='del'>-          index = states.size - 1</div><div class='del'>-          @parents_of.each { |_, a| a.reject! { |i| i &gt;= index } }</div><div class='del'>-          state.unused_unwind_options.reject! { |uw| uw.state_index &gt;= index }</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Raises a VersionConflict error, or any underlying error, if there is no</div><div class='del'>-      # current state</div><div class='del'>-      # @return [void]</div><div class='del'>-      def raise_error_unless_state(conflicts)</div><div class='del'>-        return if state</div><div class='del'>-</div><div class='del'>-        error = conflicts.values.map(&amp;:underlying_error).compact.first</div><div class='del'>-        raise error || VersionConflict.new(conflicts, specification_provider)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [UnwindDetails] Details of the nearest index to which we could unwind</div><div class='del'>-      def build_details_for_unwind</div><div class='del'>-        # Get the possible unwinds for the current conflict</div><div class='del'>-        current_conflict = conflicts[name]</div><div class='del'>-        binding_requirements = binding_requirements_for_conflict(current_conflict)</div><div class='del'>-        unwind_details = unwind_options_for_requirements(binding_requirements)</div><div class='del'>-</div><div class='del'>-        last_detail_for_current_unwind = unwind_details.sort.last</div><div class='del'>-        current_detail = last_detail_for_current_unwind</div><div class='del'>-</div><div class='del'>-        # Look for past conflicts that could be unwound to affect the</div><div class='del'>-        # requirement tree for the current conflict</div><div class='del'>-        relevant_unused_unwinds = unused_unwind_options.select do |alternative|</div><div class='del'>-          intersecting_requirements =</div><div class='del'>-            last_detail_for_current_unwind.all_requirements &amp;</div><div class='del'>-            alternative.requirements_unwound_to_instead</div><div class='del'>-          next if intersecting_requirements.empty?</div><div class='del'>-          # Find the highest index unwind whilst looping through</div><div class='del'>-          current_detail = alternative if alternative &gt; current_detail</div><div class='del'>-          alternative</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # Add the current unwind options to the `unused_unwind_options` array.</div><div class='del'>-        # The "used" option will be filtered out during `unwind_for_conflict`.</div><div class='del'>-        state.unused_unwind_options += unwind_details.reject { |detail| detail.state_index == -1 }</div><div class='del'>-</div><div class='del'>-        # Update the requirements_unwound_to_instead on any relevant unused unwinds</div><div class='del'>-        relevant_unused_unwinds.each { |d| d.requirements_unwound_to_instead &lt;&lt; current_detail.state_requirement }</div><div class='del'>-        unwind_details.each { |d| d.requirements_unwound_to_instead &lt;&lt; current_detail.state_requirement }</div><div class='del'>-</div><div class='del'>-        current_detail</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @param [Array&lt;Object&gt;] array of requirements that combine to create a conflict</div><div class='del'>-      # @return [Array&lt;UnwindDetails&gt;] array of UnwindDetails that have a chance</div><div class='del'>-      #    of resolving the passed requirements</div><div class='del'>-      def unwind_options_for_requirements(binding_requirements)</div><div class='del'>-        unwind_details = []</div><div class='del'>-</div><div class='del'>-        trees = []</div><div class='del'>-        binding_requirements.reverse_each do |r|</div><div class='del'>-          partial_tree = [r]</div><div class='del'>-          trees &lt;&lt; partial_tree</div><div class='del'>-          unwind_details &lt;&lt; UnwindDetails.new(-1, nil, partial_tree, binding_requirements, trees, [])</div><div class='del'>-</div><div class='del'>-          # If this requirement has alternative possibilities, check if any would</div><div class='del'>-          # satisfy the other requirements that created this conflict</div><div class='del'>-          requirement_state = find_state_for(r)</div><div class='del'>-          if conflict_fixing_possibilities?(requirement_state, binding_requirements)</div><div class='del'>-            unwind_details &lt;&lt; UnwindDetails.new(</div><div class='del'>-              states.index(requirement_state),</div><div class='del'>-              r,</div><div class='del'>-              partial_tree,</div><div class='del'>-              binding_requirements,</div><div class='del'>-              trees,</div><div class='del'>-              []</div><div class='del'>-            )</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          # Next, look at the parent of this requirement, and check if the requirement</div><div class='del'>-          # could have been avoided if an alternative PossibilitySet had been chosen</div><div class='del'>-          parent_r = parent_of(r)</div><div class='del'>-          next if parent_r.nil?</div><div class='del'>-          partial_tree.unshift(parent_r)</div><div class='del'>-          requirement_state = find_state_for(parent_r)</div><div class='del'>-          if requirement_state.possibilities.any? { |set| !set.dependencies.include?(r) }</div><div class='del'>-            unwind_details &lt;&lt; UnwindDetails.new(</div><div class='del'>-              states.index(requirement_state),</div><div class='del'>-              parent_r,</div><div class='del'>-              partial_tree,</div><div class='del'>-              binding_requirements,</div><div class='del'>-              trees,</div><div class='del'>-              []</div><div class='del'>-            )</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          # Finally, look at the grandparent and up of this requirement, looking</div><div class='del'>-          # for any possibilities that wouldn't create their parent requirement</div><div class='del'>-          grandparent_r = parent_of(parent_r)</div><div class='del'>-          until grandparent_r.nil?</div><div class='del'>-            partial_tree.unshift(grandparent_r)</div><div class='del'>-            requirement_state = find_state_for(grandparent_r)</div><div class='del'>-            if requirement_state.possibilities.any? { |set| !set.dependencies.include?(parent_r) }</div><div class='del'>-              unwind_details &lt;&lt; UnwindDetails.new(</div><div class='del'>-                states.index(requirement_state),</div><div class='del'>-                grandparent_r,</div><div class='del'>-                partial_tree,</div><div class='del'>-                binding_requirements,</div><div class='del'>-                trees,</div><div class='del'>-                []</div><div class='del'>-              )</div><div class='del'>-            end</div><div class='del'>-            parent_r = grandparent_r</div><div class='del'>-            grandparent_r = parent_of(parent_r)</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        unwind_details</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @param [DependencyState] state</div><div class='del'>-      # @param [Array] array of requirements</div><div class='del'>-      # @return [Boolean] whether or not the given state has any possibilities</div><div class='del'>-      #    that could satisfy the given requirements</div><div class='del'>-      def conflict_fixing_possibilities?(state, binding_requirements)</div><div class='del'>-        return false unless state</div><div class='del'>-</div><div class='del'>-        state.possibilities.any? do |possibility_set|</div><div class='del'>-          possibility_set.possibilities.any? do |poss|</div><div class='del'>-            possibility_satisfies_requirements?(poss, binding_requirements)</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Filter's a state's possibilities to remove any that would not fix the</div><div class='del'>-      # conflict we've just rewound from</div><div class='del'>-      # @param [UnwindDetails] details of the conflict just unwound from</div><div class='del'>-      # @return [void]</div><div class='del'>-      def filter_possibilities_after_unwind(unwind_details)</div><div class='del'>-        return unless state &amp;&amp; !state.possibilities.empty?</div><div class='del'>-</div><div class='del'>-        if unwind_details.unwinding_to_primary_requirement?</div><div class='del'>-          filter_possibilities_for_primary_unwind(unwind_details)</div><div class='del'>-        else</div><div class='del'>-          filter_possibilities_for_parent_unwind(unwind_details)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Filter's a state's possibilities to remove any that would not satisfy</div><div class='del'>-      # the requirements in the conflict we've just rewound from</div><div class='del'>-      # @param [UnwindDetails] details of the conflict just unwound from</div><div class='del'>-      # @return [void]</div><div class='del'>-      def filter_possibilities_for_primary_unwind(unwind_details)</div><div class='del'>-        unwinds_to_state = unused_unwind_options.select { |uw| uw.state_index == unwind_details.state_index }</div><div class='del'>-        unwinds_to_state &lt;&lt; unwind_details</div><div class='del'>-        unwind_requirement_sets = unwinds_to_state.map(&amp;:conflicting_requirements)</div><div class='del'>-</div><div class='del'>-        state.possibilities.reject! do |possibility_set|</div><div class='del'>-          possibility_set.possibilities.none? do |poss|</div><div class='del'>-            unwind_requirement_sets.any? do |requirements|</div><div class='del'>-              possibility_satisfies_requirements?(poss, requirements)</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @param [Object] possibility a single possibility</div><div class='del'>-      # @param [Array] requirements an array of requirements</div><div class='del'>-      # @return [Boolean] whether the possibility satisfies all of the</div><div class='del'>-      #    given requirements</div><div class='del'>-      def possibility_satisfies_requirements?(possibility, requirements)</div><div class='del'>-        name = name_for(possibility)</div><div class='del'>-</div><div class='del'>-        activated.tag(:swap)</div><div class='del'>-        activated.set_payload(name, possibility) if activated.vertex_named(name)</div><div class='del'>-        satisfied = requirements.all? { |r| requirement_satisfied_by?(r, activated, possibility) }</div><div class='del'>-        activated.rewind_to(:swap)</div><div class='del'>-</div><div class='del'>-        satisfied</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Filter's a state's possibilities to remove any that would (eventually)</div><div class='del'>-      # create a requirement in the conflict we've just rewound from</div><div class='del'>-      # @param [UnwindDetails] details of the conflict just unwound from</div><div class='del'>-      # @return [void]</div><div class='del'>-      def filter_possibilities_for_parent_unwind(unwind_details)</div><div class='del'>-        unwinds_to_state = unused_unwind_options.select { |uw| uw.state_index == unwind_details.state_index }</div><div class='del'>-        unwinds_to_state &lt;&lt; unwind_details</div><div class='del'>-</div><div class='del'>-        primary_unwinds = unwinds_to_state.select(&amp;:unwinding_to_primary_requirement?).uniq</div><div class='del'>-        parent_unwinds = unwinds_to_state.uniq - primary_unwinds</div><div class='del'>-</div><div class='del'>-        allowed_possibility_sets = Compatibility.flat_map(primary_unwinds) do |unwind|</div><div class='del'>-          states[unwind.state_index].possibilities.select do |possibility_set|</div><div class='del'>-            possibility_set.possibilities.any? do |poss|</div><div class='del'>-              possibility_satisfies_requirements?(poss, unwind.conflicting_requirements)</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        requirements_to_avoid = Compatibility.flat_map(parent_unwinds, &amp;:sub_dependencies_to_avoid)</div><div class='del'>-</div><div class='del'>-        state.possibilities.reject! do |possibility_set|</div><div class='del'>-          !allowed_possibility_sets.include?(possibility_set) &amp;&amp;</div><div class='del'>-            (requirements_to_avoid - possibility_set.dependencies).empty?</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @param [Conflict] conflict</div><div class='del'>-      # @return [Array] minimal array of requirements that would cause the passed</div><div class='del'>-      #    conflict to occur.</div><div class='del'>-      def binding_requirements_for_conflict(conflict)</div><div class='del'>-        return [conflict.requirement] if conflict.possibility.nil?</div><div class='del'>-</div><div class='del'>-        possible_binding_requirements = conflict.requirements.values.flatten(1).uniq</div><div class='del'>-</div><div class='del'>-        # When thereâ€™s a `CircularDependency` error the conflicting requirement</div><div class='del'>-        # (the one causing the circular) wonâ€™t be `conflict.requirement`</div><div class='del'>-        # (which wonâ€™t be for the right state, because we wonâ€™t have created it,</div><div class='del'>-        # because itâ€™s circular).</div><div class='del'>-        # We need to make sure we have that requirement in the conflictâ€™s list,</div><div class='del'>-        # otherwise we wonâ€™t be able to unwind properly, so we just return all</div><div class='del'>-        # the requirements for the conflict.</div><div class='del'>-        return possible_binding_requirements if conflict.underlying_error</div><div class='del'>-</div><div class='del'>-        possibilities = search_for(conflict.requirement)</div><div class='del'>-</div><div class='del'>-        # If all the requirements together don't filter out all possibilities,</div><div class='del'>-        # then the only two requirements we need to consider are the initial one</div><div class='del'>-        # (where the dependency's version was first chosen) and the last</div><div class='del'>-        if binding_requirement_in_set?(nil, possible_binding_requirements, possibilities)</div><div class='del'>-          return [conflict.requirement, requirement_for_existing_name(name_for(conflict.requirement))].compact</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # Loop through the possible binding requirements, removing each one</div><div class='del'>-        # that doesn't bind. Use a `reverse_each` as we want the earliest set of</div><div class='del'>-        # binding requirements, and don't use `reject!` as we wish to refine the</div><div class='del'>-        # array *on each iteration*.</div><div class='del'>-        binding_requirements = possible_binding_requirements.dup</div><div class='del'>-        possible_binding_requirements.reverse_each do |req|</div><div class='del'>-          next if req == conflict.requirement</div><div class='del'>-          unless binding_requirement_in_set?(req, binding_requirements, possibilities)</div><div class='del'>-            binding_requirements -= [req]</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        binding_requirements</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @param [Object] requirement we wish to check</div><div class='del'>-      # @param [Array] array of requirements</div><div class='del'>-      # @param [Array] array of possibilities the requirements will be used to filter</div><div class='del'>-      # @return [Boolean] whether or not the given requirement is required to filter</div><div class='del'>-      #    out all elements of the array of possibilities.</div><div class='del'>-      def binding_requirement_in_set?(requirement, possible_binding_requirements, possibilities)</div><div class='del'>-        possibilities.any? do |poss|</div><div class='del'>-          possibility_satisfies_requirements?(poss, possible_binding_requirements - [requirement])</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Object] the requirement that led to `requirement` being added</div><div class='del'>-      #   to the list of requirements.</div><div class='del'>-      def parent_of(requirement)</div><div class='del'>-        return unless requirement</div><div class='del'>-        return unless index = @parents_of[requirement].last</div><div class='del'>-        return unless parent_state = @states[index]</div><div class='del'>-        parent_state.requirement</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Object] the requirement that led to a version of a possibility</div><div class='del'>-      #   with the given name being activated.</div><div class='del'>-      def requirement_for_existing_name(name)</div><div class='del'>-        return nil unless vertex = activated.vertex_named(name)</div><div class='del'>-        return nil unless vertex.payload</div><div class='del'>-        states.find { |s| s.name == name }.requirement</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [ResolutionState] the state whose `requirement` is the given</div><div class='del'>-      #   `requirement`.</div><div class='del'>-      def find_state_for(requirement)</div><div class='del'>-        return nil unless requirement</div><div class='del'>-        states.find { |i| requirement == i.requirement }</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Conflict] a {Conflict} that reflects the failure to activate</div><div class='del'>-      #   the {#possibility} in conjunction with the current {#state}</div><div class='del'>-      def create_conflict(underlying_error = nil)</div><div class='del'>-        vertex = activated.vertex_named(name)</div><div class='del'>-        locked_requirement = locked_requirement_named(name)</div><div class='del'>-</div><div class='del'>-        requirements = {}</div><div class='del'>-        unless vertex.explicit_requirements.empty?</div><div class='del'>-          requirements[name_for_explicit_dependency_source] = vertex.explicit_requirements</div><div class='del'>-        end</div><div class='del'>-        requirements[name_for_locking_dependency_source] = [locked_requirement] if locked_requirement</div><div class='del'>-        vertex.incoming_edges.each do |edge|</div><div class='del'>-          (requirements[edge.origin.payload.latest_version] ||= []).unshift(edge.requirement)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        activated_by_name = {}</div><div class='del'>-        activated.each { |v| activated_by_name[v.name] = v.payload.latest_version if v.payload }</div><div class='del'>-        conflicts[name] = Conflict.new(</div><div class='del'>-          requirement,</div><div class='del'>-          requirements,</div><div class='del'>-          vertex.payload &amp;&amp; vertex.payload.latest_version,</div><div class='del'>-          possibility,</div><div class='del'>-          locked_requirement,</div><div class='del'>-          requirement_trees,</div><div class='del'>-          activated_by_name,</div><div class='del'>-          underlying_error</div><div class='del'>-        )</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Array&lt;Array&lt;Object&gt;&gt;] The different requirement</div><div class='del'>-      #   trees that led to every requirement for the current spec.</div><div class='del'>-      def requirement_trees</div><div class='del'>-        vertex = activated.vertex_named(name)</div><div class='del'>-        vertex.requirements.map { |r| requirement_tree_for(r) }</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @return [Array&lt;Object&gt;] the list of requirements that led to</div><div class='del'>-      #   `requirement` being required.</div><div class='del'>-      def requirement_tree_for(requirement)</div><div class='del'>-        tree = []</div><div class='del'>-        while requirement</div><div class='del'>-          tree.unshift(requirement)</div><div class='del'>-          requirement = parent_of(requirement)</div><div class='del'>-        end</div><div class='del'>-        tree</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Indicates progress roughly once every second</div><div class='del'>-      # @return [void]</div><div class='del'>-      def indicate_progress</div><div class='del'>-        @iteration_counter += 1</div><div class='del'>-        @progress_rate ||= resolver_ui.progress_rate</div><div class='del'>-        if iteration_rate.nil?</div><div class='del'>-          if Time.now - started_at &gt;= @progress_rate</div><div class='del'>-            self.iteration_rate = @iteration_counter</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        if iteration_rate &amp;&amp; (@iteration_counter % iteration_rate) == 0</div><div class='del'>-          resolver_ui.indicate_progress</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Calls the {#resolver_ui}'s {UI#debug} method</div><div class='del'>-      # @param [Integer] depth the depth of the {#states} stack</div><div class='del'>-      # @param [Proc] block a block that yields a {#to_s}</div><div class='del'>-      # @return [void]</div><div class='del'>-      def debug(depth = 0, &amp;block)</div><div class='del'>-        resolver_ui.debug(depth, &amp;block)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Attempts to activate the current {#possibility}</div><div class='del'>-      # @return [void]</div><div class='del'>-      def attempt_to_activate</div><div class='del'>-        debug(depth) { 'Attempting to activate ' + possibility.to_s }</div><div class='del'>-        existing_vertex = activated.vertex_named(name)</div><div class='del'>-        if existing_vertex.payload</div><div class='del'>-          debug(depth) { "Found existing spec (#{existing_vertex.payload})" }</div><div class='del'>-          attempt_to_filter_existing_spec(existing_vertex)</div><div class='del'>-        else</div><div class='del'>-          latest = possibility.latest_version</div><div class='del'>-          # use reject!(!satisfied) for 1.8.7 compatibility</div><div class='del'>-          possibility.possibilities.reject! do |possibility|</div><div class='del'>-            !requirement_satisfied_by?(requirement, activated, possibility)</div><div class='del'>-          end</div><div class='del'>-          if possibility.latest_version.nil?</div><div class='del'>-            # ensure there's a possibility for better error messages</div><div class='del'>-            possibility.possibilities &lt;&lt; latest if latest</div><div class='del'>-            create_conflict</div><div class='del'>-            unwind_for_conflict</div><div class='del'>-          else</div><div class='del'>-            activate_new_spec</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Attempts to update the existing vertex's `PossibilitySet` with a filtered version</div><div class='del'>-      # @return [void]</div><div class='del'>-      def attempt_to_filter_existing_spec(vertex)</div><div class='del'>-        filtered_set = filtered_possibility_set(vertex)</div><div class='del'>-        if !filtered_set.possibilities.empty?</div><div class='del'>-          activated.set_payload(name, filtered_set)</div><div class='del'>-          new_requirements = requirements.dup</div><div class='del'>-          push_state_for_requirements(new_requirements, false)</div><div class='del'>-        else</div><div class='del'>-          create_conflict</div><div class='del'>-          debug(depth) { "Unsatisfied by existing spec (#{vertex.payload})" }</div><div class='del'>-          unwind_for_conflict</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Generates a filtered version of the existing vertex's `PossibilitySet` using the</div><div class='del'>-      # current state's `requirement`</div><div class='del'>-      # @param [Object] existing vertex</div><div class='del'>-      # @return [PossibilitySet] filtered possibility set</div><div class='del'>-      def filtered_possibility_set(vertex)</div><div class='del'>-        PossibilitySet.new(vertex.payload.dependencies, vertex.payload.possibilities &amp; possibility.possibilities)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @param [String] requirement_name the spec name to search for</div><div class='del'>-      # @return [Object] the locked spec named `requirement_name`, if one</div><div class='del'>-      #   is found on {#base}</div><div class='del'>-      def locked_requirement_named(requirement_name)</div><div class='del'>-        vertex = base.vertex_named(requirement_name)</div><div class='del'>-        vertex &amp;&amp; vertex.payload</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Add the current {#possibility} to the dependency graph of the current</div><div class='del'>-      # {#state}</div><div class='del'>-      # @return [void]</div><div class='del'>-      def activate_new_spec</div><div class='del'>-        conflicts.delete(name)</div><div class='del'>-        debug(depth) { "Activated #{name} at #{possibility}" }</div><div class='del'>-        activated.set_payload(name, possibility)</div><div class='del'>-        require_nested_dependencies_for(possibility)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Requires the dependencies that the recently activated spec has</div><div class='del'>-      # @param [Object] activated_possibility the PossibilitySet that has just been</div><div class='del'>-      #   activated</div><div class='del'>-      # @return [void]</div><div class='del'>-      def require_nested_dependencies_for(possibility_set)</div><div class='del'>-        nested_dependencies = dependencies_for(possibility_set.latest_version)</div><div class='del'>-        debug(depth) { "Requiring nested dependencies (#{nested_dependencies.join(', ')})" }</div><div class='del'>-        nested_dependencies.each do |d|</div><div class='del'>-          activated.add_child_vertex(name_for(d), nil, [name_for(possibility_set.latest_version)], d)</div><div class='del'>-          parent_index = states.size - 1</div><div class='del'>-          parents = @parents_of[d]</div><div class='del'>-          parents &lt;&lt; parent_index if parents.empty?</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        push_state_for_requirements(requirements + nested_dependencies, !nested_dependencies.empty?)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Pushes a new {DependencyState} that encapsulates both existing and new</div><div class='del'>-      # requirements</div><div class='del'>-      # @param [Array] new_requirements</div><div class='del'>-      # @return [void]</div><div class='del'>-      def push_state_for_requirements(new_requirements, requires_sort = true, new_activated = activated)</div><div class='del'>-        new_requirements = sort_dependencies(new_requirements.uniq, new_activated, conflicts) if requires_sort</div><div class='del'>-        new_requirement = nil</div><div class='del'>-        loop do</div><div class='del'>-          new_requirement = new_requirements.shift</div><div class='del'>-          break if new_requirement.nil? || states.none? { |s| s.requirement == new_requirement }</div><div class='del'>-        end</div><div class='del'>-        new_name = new_requirement ? name_for(new_requirement) : ''.freeze</div><div class='del'>-        possibilities = possibilities_for_requirement(new_requirement)</div><div class='del'>-        handle_missing_or_push_dependency_state DependencyState.new(</div><div class='del'>-          new_name, new_requirements, new_activated,</div><div class='del'>-          new_requirement, possibilities, depth, conflicts.dup, unused_unwind_options.dup</div><div class='del'>-        )</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Checks a proposed requirement with any existing locked requirement</div><div class='del'>-      # before generating an array of possibilities for it.</div><div class='del'>-      # @param [Object] the proposed requirement</div><div class='del'>-      # @return [Array] possibilities</div><div class='del'>-      def possibilities_for_requirement(requirement, activated = self.activated)</div><div class='del'>-        return [] unless requirement</div><div class='del'>-        if locked_requirement_named(name_for(requirement))</div><div class='del'>-          return locked_requirement_possibility_set(requirement, activated)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        group_possibilities(search_for(requirement))</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # @param [Object] the proposed requirement</div><div class='del'>-      # @return [Array] possibility set containing only the locked requirement, if any</div><div class='del'>-      def locked_requirement_possibility_set(requirement, activated = self.activated)</div><div class='del'>-        all_possibilities = search_for(requirement)</div><div class='del'>-        locked_requirement = locked_requirement_named(name_for(requirement))</div><div class='del'>-</div><div class='del'>-        # Longwinded way to build a possibilities array with either the locked</div><div class='del'>-        # requirement or nothing in it. Required, since the API for</div><div class='del'>-        # locked_requirement isn't guaranteed.</div><div class='del'>-        locked_possibilities = all_possibilities.select do |possibility|</div><div class='del'>-          requirement_satisfied_by?(locked_requirement, activated, possibility)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        group_possibilities(locked_possibilities)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Build an array of PossibilitySets, with each element representing a group of</div><div class='del'>-      # dependency versions that all have the same sub-dependency version constraints</div><div class='del'>-      # and are contiguous.</div><div class='del'>-      # @param [Array] an array of possibilities</div><div class='del'>-      # @return [Array] an array of possibility sets</div><div class='del'>-      def group_possibilities(possibilities)</div><div class='del'>-        possibility_sets = []</div><div class='del'>-        current_possibility_set = nil</div><div class='del'>-</div><div class='del'>-        possibilities.reverse_each do |possibility|</div><div class='del'>-          dependencies = dependencies_for(possibility)</div><div class='del'>-          if current_possibility_set &amp;&amp; current_possibility_set.dependencies == dependencies</div><div class='del'>-            current_possibility_set.possibilities.unshift(possibility)</div><div class='del'>-          else</div><div class='del'>-            possibility_sets.unshift(PossibilitySet.new(dependencies, [possibility]))</div><div class='del'>-            current_possibility_set = possibility_sets.first</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        possibility_sets</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Pushes a new {DependencyState}.</div><div class='del'>-      # If the {#specification_provider} says to</div><div class='del'>-      # {SpecificationProvider#allow_missing?} that particular requirement, and</div><div class='del'>-      # there are no possibilities for that requirement, then `state` is not</div><div class='del'>-      # pushed, and the vertex in {#activated} is removed, and we continue</div><div class='del'>-      # resolving the remaining requirements.</div><div class='del'>-      # @param [DependencyState] state</div><div class='del'>-      # @return [void]</div><div class='del'>-      def handle_missing_or_push_dependency_state(state)</div><div class='del'>-        if state.requirement &amp;&amp; state.possibilities.empty? &amp;&amp; allow_missing?(state.requirement)</div><div class='del'>-          state.activated.detach_vertex_named(state.name)</div><div class='del'>-          push_state_for_requirements(state.requirements.dup, false, state.activated)</div><div class='del'>-        else</div><div class='del'>-          states.push(state).tap { activated.tag(state) }</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb b/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb<br/>deleted file mode 100644<br/>index 7d36858778..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,46 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph'</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  # This class encapsulates a dependency resolver.</div><div class='del'>-  # The resolver is responsible for determining which set of dependencies to</div><div class='del'>-  # activate, with feedback from the {#specification_provider}</div><div class='del'>-  #</div><div class='del'>-  #</div><div class='del'>-  class Resolver</div><div class='del'>-    require 'bundler/vendor/molinillo/lib/molinillo/resolution'</div><div class='del'>-</div><div class='del'>-    # @return [SpecificationProvider] the specification provider used</div><div class='del'>-    #   in the resolution process</div><div class='del'>-    attr_reader :specification_provider</div><div class='del'>-</div><div class='del'>-    # @return [UI] the UI module used to communicate back to the user</div><div class='del'>-    #   during the resolution process</div><div class='del'>-    attr_reader :resolver_ui</div><div class='del'>-</div><div class='del'>-    # Initializes a new resolver.</div><div class='del'>-    # @param  [SpecificationProvider] specification_provider</div><div class='del'>-    #   see {#specification_provider}</div><div class='del'>-    # @param  [UI] resolver_ui</div><div class='del'>-    #   see {#resolver_ui}</div><div class='del'>-    def initialize(specification_provider, resolver_ui)</div><div class='del'>-      @specification_provider = specification_provider</div><div class='del'>-      @resolver_ui = resolver_ui</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Resolves the requested dependencies into a {DependencyGraph},</div><div class='del'>-    # locking to the base dependency graph (if specified)</div><div class='del'>-    # @param [Array] requested an array of 'requested' dependencies that the</div><div class='del'>-    #   {#specification_provider} can understand</div><div class='del'>-    # @param [DependencyGraph,nil] base the base dependency graph to which</div><div class='del'>-    #   dependencies should be 'locked'</div><div class='del'>-    def resolve(requested, base = DependencyGraph.new)</div><div class='del'>-      Resolution.new(specification_provider,</div><div class='del'>-                     resolver_ui,</div><div class='del'>-                     requested,</div><div class='del'>-                     base).</div><div class='del'>-        resolve</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/molinillo/lib/molinillo/state.rb b/lib/bundler/vendor/molinillo/lib/molinillo/state.rb<br/>deleted file mode 100644<br/>index 68fa1f54e3..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/molinillo/lib/molinillo/state.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/molinillo/lib/molinillo/state.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,58 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler::Molinillo</div><div class='del'>-  # A state that a {Resolution} can be in</div><div class='del'>-  # @attr [String] name the name of the current requirement</div><div class='del'>-  # @attr [Array&lt;Object&gt;] requirements currently unsatisfied requirements</div><div class='del'>-  # @attr [DependencyGraph] activated the graph of activated dependencies</div><div class='del'>-  # @attr [Object] requirement the current requirement</div><div class='del'>-  # @attr [Object] possibilities the possibilities to satisfy the current requirement</div><div class='del'>-  # @attr [Integer] depth the depth of the resolution</div><div class='del'>-  # @attr [Hash] conflicts unresolved conflicts, indexed by dependency name</div><div class='del'>-  # @attr [Array&lt;UnwindDetails&gt;] unused_unwind_options unwinds for previous conflicts that weren't explored</div><div class='del'>-  ResolutionState = Struct.new(</div><div class='del'>-    :name,</div><div class='del'>-    :requirements,</div><div class='del'>-    :activated,</div><div class='del'>-    :requirement,</div><div class='del'>-    :possibilities,</div><div class='del'>-    :depth,</div><div class='del'>-    :conflicts,</div><div class='del'>-    :unused_unwind_options</div><div class='del'>-  )</div><div class='del'>-</div><div class='del'>-  class ResolutionState</div><div class='del'>-    # Returns an empty resolution state</div><div class='del'>-    # @return [ResolutionState] an empty state</div><div class='del'>-    def self.empty</div><div class='del'>-      new(nil, [], DependencyGraph.new, nil, nil, 0, {}, [])</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # A state that encapsulates a set of {#requirements} with an {Array} of</div><div class='del'>-  # possibilities</div><div class='del'>-  class DependencyState &lt; ResolutionState</div><div class='del'>-    # Removes a possibility from `self`</div><div class='del'>-    # @return [PossibilityState] a state with a single possibility,</div><div class='del'>-    #  the possibility that was removed from `self`</div><div class='del'>-    def pop_possibility_state</div><div class='del'>-      PossibilityState.new(</div><div class='del'>-        name,</div><div class='del'>-        requirements.dup,</div><div class='del'>-        activated,</div><div class='del'>-        requirement,</div><div class='del'>-        [possibilities.pop],</div><div class='del'>-        depth + 1,</div><div class='del'>-        conflicts.dup,</div><div class='del'>-        unused_unwind_options.dup</div><div class='del'>-      ).tap do |state|</div><div class='del'>-        state.activated.tag(state)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # A state that encapsulates a single possibility to fulfill the given</div><div class='del'>-  # {#requirement}</div><div class='del'>-  class PossibilityState &lt; ResolutionState</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb b/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb<br/>deleted file mode 100644<br/>index e5e09080c2..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,27 +0,0 @@</div><div class='del'>-require 'net/protocol'</div><div class='del'>-</div><div class='del'>-##</div><div class='del'>-# Aaron Patterson's monkeypatch (accepted into 1.9.1) to fix Net::HTTP's speed</div><div class='del'>-# problems.</div><div class='del'>-#</div><div class='del'>-# http://gist.github.com/251244</div><div class='del'>-</div><div class='del'>-class Net::BufferedIO #:nodoc:</div><div class='del'>-  alias :old_rbuf_fill :rbuf_fill</div><div class='del'>-</div><div class='del'>-  def rbuf_fill</div><div class='del'>-    if @io.respond_to? :read_nonblock then</div><div class='del'>-      begin</div><div class='del'>-        @rbuf &lt;&lt; @io.read_nonblock(65536)</div><div class='del'>-      rescue Errno::EWOULDBLOCK, Errno::EAGAIN =&gt; e</div><div class='del'>-        retry if IO.select [@io], nil, nil, @read_timeout</div><div class='del'>-        raise Timeout::Error, e.message</div><div class='del'>-      end</div><div class='del'>-    else # SSL sockets do not have read_nonblock</div><div class='del'>-      timeout @read_timeout do</div><div class='del'>-        @rbuf &lt;&lt; @io.sysread(65536)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end if RUBY_VERSION &lt; '1.9'</div><div class='del'>-</div><div class='head'>diff --git a/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb b/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb<br/>index 7cbca5bc06..a4e1c5a750 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb</a></div><div class='hunk'>@@ -1,17 +1,7 @@</div><div class='ctx'> require 'net/http'</div><div class='del'>-begin</div><div class='del'>-  require 'net/https'</div><div class='del'>-rescue LoadError</div><div class='del'>-  # net/https or openssl</div><div class='del'>-end if RUBY_VERSION &lt; '1.9' # but only for 1.8</div><div class='del'>-require 'bundler/vendor/net-http-persistent/lib/net/http/faster'</div><div class='del'>-require 'uri'</div><div class='add'>+require_relative '../../../../uri/lib/uri'</div><div class='ctx'> require 'cgi' # for escaping</div><div class='del'>-</div><div class='del'>-begin</div><div class='del'>-  require 'net/http/pipeline'</div><div class='del'>-rescue LoadError</div><div class='del'>-end</div><div class='add'>+require_relative '../../../../connection_pool/lib/connection_pool'</div><div class='ctx'> </div><div class='ctx'> autoload :OpenSSL, 'openssl'</div><div class='ctx'> </div><div class='hunk'>@@ -22,23 +12,19 @@ autoload :OpenSSL, 'openssl'</div><div class='ctx'> # servers you wish to talk to.  For each host:port you communicate with a</div><div class='ctx'> # single persistent connection is created.</div><div class='ctx'> #</div><div class='del'>-# Multiple Bundler::Persistent::Net::HTTP::Persistent objects will share the same set of</div><div class='del'>-# connections.</div><div class='add'>+# Connections will be shared across threads through a connection pool to</div><div class='add'>+# increase reuse of connections.</div><div class='ctx'> #</div><div class='del'>-# For each thread you start a new connection will be created.  A</div><div class='del'>-# Bundler::Persistent::Net::HTTP::Persistent connection will not be shared across threads.</div><div class='del'>-#</div><div class='del'>-# You can shut down the HTTP connections when done by calling #shutdown.  You</div><div class='del'>-# should name your Bundler::Persistent::Net::HTTP::Persistent object if you intend to call this</div><div class='del'>-# method.</div><div class='add'>+# You can shut down any remaining HTTP connections when done by calling</div><div class='add'>+# #shutdown.</div><div class='ctx'> #</div><div class='ctx'> # Example:</div><div class='ctx'> #</div><div class='ctx'> #   require 'bundler/vendor/net-http-persistent/lib/net/http/persistent'</div><div class='ctx'> #</div><div class='del'>-#   uri = URI 'http://example.com/awesome/web/service'</div><div class='add'>+#   uri = Bundler::URI 'http://example.com/awesome/web/service'</div><div class='ctx'> #</div><div class='del'>-#   http = Bundler::Persistent::Net::HTTP::Persistent.new 'my_app_name'</div><div class='add'>+#   http = Bundler::Persistent::Net::HTTP::Persistent.new</div><div class='ctx'> #</div><div class='ctx'> #   # perform a GET</div><div class='ctx'> #   response = http.request uri</div><div class='hunk'>@@ -53,36 +39,40 @@ autoload :OpenSSL, 'openssl'</div><div class='ctx'> #   post = Net::HTTP::Post.new post_uri.path</div><div class='ctx'> #   post.set_form_data 'some' =&gt; 'cool data'</div><div class='ctx'> #</div><div class='del'>-#   # perform the POST, the URI is always required</div><div class='add'>+#   # perform the POST, the Bundler::URI is always required</div><div class='ctx'> #   response http.request post_uri, post</div><div class='ctx'> #</div><div class='ctx'> # Note that for GET, HEAD and other requests that do not have a body you want</div><div class='del'>-# to use URI#request_uri not URI#path.  The request_uri contains the query</div><div class='add'>+# to use Bundler::URI#request_uri not Bundler::URI#path.  The request_uri contains the query</div><div class='ctx'> # params which are sent in the body for other requests.</div><div class='ctx'> #</div><div class='del'>-# == SSL</div><div class='add'>+# == TLS/SSL</div><div class='ctx'> #</div><div class='del'>-# SSL connections are automatically created depending upon the scheme of the</div><div class='del'>-# URI.  SSL connections are automatically verified against the default</div><div class='add'>+# TLS connections are automatically created depending upon the scheme of the</div><div class='add'>+# Bundler::URI.  TLS connections are automatically verified against the default</div><div class='ctx'> # certificate store for your computer.  You can override this by changing</div><div class='ctx'> # verify_mode or by specifying an alternate cert_store.</div><div class='ctx'> #</div><div class='del'>-# Here are the SSL settings, see the individual methods for documentation:</div><div class='add'>+# Here are the TLS settings, see the individual methods for documentation:</div><div class='ctx'> #</div><div class='ctx'> # #certificate        :: This client's certificate</div><div class='del'>-# #ca_file            :: The certificate-authority</div><div class='add'>+# #ca_file            :: The certificate-authorities</div><div class='add'>+# #ca_path            :: Directory with certificate-authorities</div><div class='ctx'> # #cert_store         :: An SSL certificate store</div><div class='add'>+# #ciphers            :: List of SSl ciphers allowed</div><div class='ctx'> # #private_key        :: The client's SSL private key</div><div class='ctx'> # #reuse_ssl_sessions :: Reuse a previously opened SSL session for a new</div><div class='ctx'> #                        connection</div><div class='add'>+# #ssl_timeout        :: Session lifetime</div><div class='ctx'> # #ssl_version        :: Which specific SSL version to use</div><div class='ctx'> # #verify_callback    :: For server certificate verification</div><div class='add'>+# #verify_depth       :: Depth of certificate verification</div><div class='ctx'> # #verify_mode        :: How connections should be verified</div><div class='ctx'> #</div><div class='ctx'> # == Proxies</div><div class='ctx'> #</div><div class='ctx'> # A proxy can be set through #proxy= or at initialization time by providing a</div><div class='del'>-# second argument to ::new.  The proxy may be the URI of the proxy server or</div><div class='add'>+# second argument to ::new.  The proxy may be the Bundler::URI of the proxy server or</div><div class='ctx'> # &lt;code&gt;:ENV&lt;/code&gt; which will consult environment variables.</div><div class='ctx'> #</div><div class='ctx'> # See #proxy= and #proxy_from_env for details.</div><div class='hunk'>@@ -102,14 +92,15 @@ autoload :OpenSSL, 'openssl'</div><div class='ctx'> #</div><div class='ctx'> # === Segregation</div><div class='ctx'> #</div><div class='del'>-# By providing an application name to ::new you can separate your connections</div><div class='del'>-# from the connections of other applications.</div><div class='add'>+# Each Bundler::Persistent::Net::HTTP::Persistent instance has its own pool of connections.  There</div><div class='add'>+# is no sharing with other instances (as was true in earlier versions).</div><div class='ctx'> #</div><div class='ctx'> # === Idle Timeout</div><div class='ctx'> #</div><div class='del'>-# If a connection hasn't been used for this number of seconds it will automatically be</div><div class='del'>-# reset upon the next use to avoid attempting to send to a closed connection.</div><div class='del'>-# The default value is 5 seconds. nil means no timeout. Set through #idle_timeout.</div><div class='add'>+# If a connection hasn't been used for this number of seconds it will</div><div class='add'>+# automatically be reset upon the next use to avoid attempting to send to a</div><div class='add'>+# closed connection.  The default value is 5 seconds. nil means no timeout.</div><div class='add'>+# Set through #idle_timeout.</div><div class='ctx'> #</div><div class='ctx'> # Reducing this value may help avoid the "too many connection resets" error</div><div class='ctx'> # when sending non-idempotent requests while increasing this value will cause</div><div class='hunk'>@@ -124,8 +115,9 @@ autoload :OpenSSL, 'openssl'</div><div class='ctx'> #</div><div class='ctx'> # The number of requests that should be made before opening a new connection.</div><div class='ctx'> # Typically many keep-alive capable servers tune this to 100 or less, so the</div><div class='del'>-# 101st request will fail with ECONNRESET. If unset (default), this value has no</div><div class='del'>-# effect, if set, connections will be reset on the request after max_requests.</div><div class='add'>+# 101st request will fail with ECONNRESET. If unset (default), this value has</div><div class='add'>+# no effect, if set, connections will be reset on the request after</div><div class='add'>+# max_requests.</div><div class='ctx'> #</div><div class='ctx'> # === Open Timeout</div><div class='ctx'> #</div><div class='hunk'>@@ -137,45 +129,6 @@ autoload :OpenSSL, 'openssl'</div><div class='ctx'> # Socket options may be set on newly-created connections.  See #socket_options</div><div class='ctx'> # for details.</div><div class='ctx'> #</div><div class='del'>-# === Non-Idempotent Requests</div><div class='del'>-#</div><div class='del'>-# By default non-idempotent requests will not be retried per RFC 2616.  By</div><div class='del'>-# setting retry_change_requests to true requests will automatically be retried</div><div class='del'>-# once.</div><div class='del'>-#</div><div class='del'>-# Only do this when you know that retrying a POST or other non-idempotent</div><div class='del'>-# request is safe for your application and will not create duplicate</div><div class='del'>-# resources.</div><div class='del'>-#</div><div class='del'>-# The recommended way to handle non-idempotent requests is the following:</div><div class='del'>-#</div><div class='del'>-#   require 'bundler/vendor/net-http-persistent/lib/net/http/persistent'</div><div class='del'>-#</div><div class='del'>-#   uri = URI 'http://example.com/awesome/web/service'</div><div class='del'>-#   post_uri = uri + 'create'</div><div class='del'>-#</div><div class='del'>-#   http = Bundler::Persistent::Net::HTTP::Persistent.new 'my_app_name'</div><div class='del'>-#</div><div class='del'>-#   post = Net::HTTP::Post.new post_uri.path</div><div class='del'>-#   # ... fill in POST request</div><div class='del'>-#</div><div class='del'>-#   begin</div><div class='del'>-#     response = http.request post_uri, post</div><div class='del'>-#   rescue Bundler::Persistent::Net::HTTP::Persistent::Error</div><div class='del'>-#</div><div class='del'>-#     # POST failed, make a new request to verify the server did not process</div><div class='del'>-#     # the request</div><div class='del'>-#     exists_uri = uri + '...'</div><div class='del'>-#     response = http.get exists_uri</div><div class='del'>-#</div><div class='del'>-#     # Retry if it failed</div><div class='del'>-#     retry if response.code == '404'</div><div class='del'>-#   end</div><div class='del'>-#</div><div class='del'>-# The method of determining if the resource was created or not is unique to</div><div class='del'>-# the particular service you are using.  Of course, you will want to add</div><div class='del'>-# protection from infinite looping.</div><div class='del'>-#</div><div class='ctx'> # === Connection Termination</div><div class='ctx'> #</div><div class='ctx'> # If you are done using the Bundler::Persistent::Net::HTTP::Persistent instance you may shut down</div><div class='hunk'>@@ -201,24 +154,27 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   HAVE_OPENSSL = defined? OpenSSL::SSL # :nodoc:</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # The version of Bundler::Persistent::Net::HTTP::Persistent you are using</div><div class='add'>+  # The default connection pool size is 1/4 the allowed open files</div><div class='add'>+  # (&lt;code&gt;ulimit -n&lt;/code&gt;) or 256 if your OS does not support file handle</div><div class='add'>+  # limits (typically windows).</div><div class='ctx'> </div><div class='del'>-  VERSION = '2.9.4'</div><div class='add'>+  if Process.const_defined? :RLIMIT_NOFILE</div><div class='add'>+    open_file_limits = Process.getrlimit(Process::RLIMIT_NOFILE)</div><div class='add'>+</div><div class='add'>+    # Under JRuby on Windows Process responds to `getrlimit` but returns something that does not match docs</div><div class='add'>+    if open_file_limits.respond_to?(:first)</div><div class='add'>+      DEFAULT_POOL_SIZE = open_file_limits.first / 4</div><div class='add'>+    else</div><div class='add'>+      DEFAULT_POOL_SIZE = 256</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+    DEFAULT_POOL_SIZE = 256</div><div class='add'>+  end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Exceptions rescued for automatic retry on ruby 2.0.0.  This overlaps with</div><div class='del'>-  # the exception list for ruby 1.x.</div><div class='add'>+  # The version of Bundler::Persistent::Net::HTTP::Persistent you are using</div><div class='ctx'> </div><div class='del'>-  RETRIED_EXCEPTIONS = [ # :nodoc:</div><div class='del'>-    (Net::ReadTimeout if Net.const_defined? :ReadTimeout),</div><div class='del'>-    IOError,</div><div class='del'>-    EOFError,</div><div class='del'>-    Errno::ECONNRESET,</div><div class='del'>-    Errno::ECONNABORTED,</div><div class='del'>-    Errno::EPIPE,</div><div class='del'>-    (OpenSSL::SSL::SSLError if HAVE_OPENSSL),</div><div class='del'>-    Timeout::Error,</div><div class='del'>-  ].compact</div><div class='add'>+  VERSION = '4.0.1'</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='ctx'>   # Error class for errors raised by Bundler::Persistent::Net::HTTP::Persistent.  Various</div><div class='hunk'>@@ -241,38 +197,38 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   # NOTE:  This may not work on ruby &gt; 1.9.</div><div class='ctx'> </div><div class='ctx'>   def self.detect_idle_timeout uri, max = 10</div><div class='del'>-    uri = URI uri unless URI::Generic === uri</div><div class='add'>+    uri = Bundler::URI uri unless Bundler::URI::Generic === uri</div><div class='ctx'>     uri += '/'</div><div class='ctx'> </div><div class='ctx'>     req = Net::HTTP::Head.new uri.request_uri</div><div class='ctx'> </div><div class='ctx'>     http = new 'net-http-persistent detect_idle_timeout'</div><div class='ctx'> </div><div class='del'>-    connection = http.connection_for uri</div><div class='add'>+    http.connection_for uri do |connection|</div><div class='add'>+      sleep_time = 0</div><div class='ctx'> </div><div class='del'>-    sleep_time = 0</div><div class='add'>+      http = connection.http</div><div class='ctx'> </div><div class='del'>-    loop do</div><div class='del'>-      response = connection.request req</div><div class='add'>+      loop do</div><div class='add'>+        response = http.request req</div><div class='ctx'> </div><div class='del'>-      $stderr.puts "HEAD #{uri} =&gt; #{response.code}" if $DEBUG</div><div class='add'>+        $stderr.puts "HEAD #{uri} =&gt; #{response.code}" if $DEBUG</div><div class='ctx'> </div><div class='del'>-      unless Net::HTTPOK === response then</div><div class='del'>-        raise Error, "bad response code #{response.code} detecting idle timeout"</div><div class='del'>-      end</div><div class='add'>+        unless Net::HTTPOK === response then</div><div class='add'>+          raise Error, "bad response code #{response.code} detecting idle timeout"</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-      break if sleep_time &gt;= max</div><div class='add'>+        break if sleep_time &gt;= max</div><div class='ctx'> </div><div class='del'>-      sleep_time += 1</div><div class='add'>+        sleep_time += 1</div><div class='ctx'> </div><div class='del'>-      $stderr.puts "sleeping #{sleep_time}" if $DEBUG</div><div class='del'>-      sleep sleep_time</div><div class='add'>+        $stderr.puts "sleeping #{sleep_time}" if $DEBUG</div><div class='add'>+        sleep sleep_time</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>   rescue</div><div class='ctx'>     # ignore StandardErrors, we've probably found the idle timeout.</div><div class='ctx'>   ensure</div><div class='del'>-    http.shutdown</div><div class='del'>-</div><div class='ctx'>     return sleep_time unless $!</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -281,7 +237,9 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'> </div><div class='ctx'>   attr_reader :certificate</div><div class='ctx'> </div><div class='add'>+  ##</div><div class='ctx'>   # For Net::HTTP parity</div><div class='add'>+</div><div class='ctx'>   alias cert certificate</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='hunk'>@@ -291,12 +249,23 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   attr_reader :ca_file</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='add'>+  # A directory of SSL certificates to be used as certificate authorities.</div><div class='add'>+  # Setting this will set verify_mode to VERIFY_PEER.</div><div class='add'>+</div><div class='add'>+  attr_reader :ca_path</div><div class='add'>+</div><div class='add'>+  ##</div><div class='ctx'>   # An SSL certificate store.  Setting this will override the default</div><div class='ctx'>   # certificate store.  See verify_mode for more information.</div><div class='ctx'> </div><div class='ctx'>   attr_reader :cert_store</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='add'>+  # The ciphers allowed for SSL connections</div><div class='add'>+</div><div class='add'>+  attr_reader :ciphers</div><div class='add'>+</div><div class='add'>+  ##</div><div class='ctx'>   # Sends debug_output to this IO via Net::HTTP#set_debug_output.</div><div class='ctx'>   #</div><div class='ctx'>   # Never use this method in production code, it causes a serious security</div><div class='hunk'>@@ -310,11 +279,6 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   attr_reader :generation # :nodoc:</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Where this instance's connections live in the thread local variables</div><div class='del'>-</div><div class='del'>-  attr_reader :generation_key # :nodoc:</div><div class='del'>-</div><div class='del'>-  ##</div><div class='ctx'>   # Headers that are added to every request using Net::HTTP#add_field</div><div class='ctx'> </div><div class='ctx'>   attr_reader :headers</div><div class='hunk'>@@ -338,6 +302,13 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   attr_accessor :max_requests</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='add'>+  # Number of retries to perform if a request fails.</div><div class='add'>+  #</div><div class='add'>+  # See also #max_retries=, Net::HTTP#max_retries=.</div><div class='add'>+</div><div class='add'>+  attr_reader :max_retries</div><div class='add'>+</div><div class='add'>+  ##</div><div class='ctx'>   # The value sent in the Keep-Alive header.  Defaults to 30.  Not needed for</div><div class='ctx'>   # HTTP/1.1 servers.</div><div class='ctx'>   #</div><div class='hunk'>@@ -349,8 +320,7 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   attr_accessor :keep_alive</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # A name for this connection.  Allows you to keep your connections apart</div><div class='del'>-  # from everybody else's.</div><div class='add'>+  # The name for this collection of persistent connections.</div><div class='ctx'> </div><div class='ctx'>   attr_reader :name</div><div class='ctx'> </div><div class='hunk'>@@ -369,7 +339,9 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'> </div><div class='ctx'>   attr_reader :private_key</div><div class='ctx'> </div><div class='add'>+  ##</div><div class='ctx'>   # For Net::HTTP parity</div><div class='add'>+</div><div class='ctx'>   alias key private_key</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='hunk'>@@ -383,14 +355,19 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   attr_reader :no_proxy</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='add'>+  # Test-only accessor for the connection pool</div><div class='add'>+</div><div class='add'>+  attr_reader :pool # :nodoc:</div><div class='add'>+</div><div class='add'>+  ##</div><div class='ctx'>   # Seconds to wait until reading one block.  See Net::HTTP#read_timeout</div><div class='ctx'> </div><div class='ctx'>   attr_accessor :read_timeout</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Where this instance's request counts live in the thread local variables</div><div class='add'>+  # Seconds to wait until writing one block.  See Net::HTTP#write_timeout</div><div class='ctx'> </div><div class='del'>-  attr_reader :request_key # :nodoc:</div><div class='add'>+  attr_accessor :write_timeout</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='ctx'>   # By default SSL sessions are reused to avoid extra SSL handshakes.  Set</div><div class='hunk'>@@ -418,17 +395,33 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   attr_reader :ssl_generation # :nodoc:</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Where this instance's SSL connections live in the thread local variables</div><div class='add'>+  # SSL session lifetime</div><div class='ctx'> </div><div class='del'>-  attr_reader :ssl_generation_key # :nodoc:</div><div class='add'>+  attr_reader :ssl_timeout</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='ctx'>   # SSL version to use.</div><div class='ctx'>   #</div><div class='ctx'>   # By default, the version will be negotiated automatically between client</div><div class='del'>-  # and server.  Ruby 1.9 and newer only.</div><div class='add'>+  # and server.  Ruby 1.9 and newer only. Deprecated since Ruby 2.5.</div><div class='ctx'> </div><div class='del'>-  attr_reader :ssl_version if RUBY_VERSION &gt; '1.9'</div><div class='add'>+  attr_reader :ssl_version</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Minimum SSL version to use, e.g. :TLS1_1</div><div class='add'>+  #</div><div class='add'>+  # By default, the version will be negotiated automatically between client</div><div class='add'>+  # and server.  Ruby 2.5 and newer only.</div><div class='add'>+</div><div class='add'>+  attr_reader :min_version</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Maximum SSL version to use, e.g. :TLS1_2</div><div class='add'>+  #</div><div class='add'>+  # By default, the version will be negotiated automatically between client</div><div class='add'>+  # and server.  Ruby 2.5 and newer only.</div><div class='add'>+</div><div class='add'>+  attr_reader :max_version</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='ctx'>   # Where this instance's last-use times live in the thread local variables</div><div class='hunk'>@@ -436,50 +429,48 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   attr_reader :timeout_key # :nodoc:</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # SSL verification callback.  Used when ca_file is set.</div><div class='add'>+  # SSL verification callback.  Used when ca_file or ca_path is set.</div><div class='ctx'> </div><div class='ctx'>   attr_reader :verify_callback</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='add'>+  # Sets the depth of SSL certificate verification</div><div class='add'>+</div><div class='add'>+  attr_reader :verify_depth</div><div class='add'>+</div><div class='add'>+  ##</div><div class='ctx'>   # HTTPS verify mode.  Defaults to OpenSSL::SSL::VERIFY_PEER which verifies</div><div class='ctx'>   # the server certificate.</div><div class='ctx'>   #</div><div class='del'>-  # If no ca_file or cert_store is set the default system certificate store is</div><div class='del'>-  # used.</div><div class='add'>+  # If no ca_file, ca_path or cert_store is set the default system certificate</div><div class='add'>+  # store is used.</div><div class='ctx'>   #</div><div class='ctx'>   # You can use +verify_mode+ to override any default values.</div><div class='ctx'> </div><div class='ctx'>   attr_reader :verify_mode</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Enable retries of non-idempotent requests that change data (e.g. POST</div><div class='del'>-  # requests) when the server has disconnected.</div><div class='del'>-  #</div><div class='del'>-  # This will in the worst case lead to multiple requests with the same data,</div><div class='del'>-  # but it may be useful for some applications.  Take care when enabling</div><div class='del'>-  # this option to ensure it is safe to POST or perform other non-idempotent</div><div class='del'>-  # requests to the server.</div><div class='del'>-</div><div class='del'>-  attr_accessor :retry_change_requests</div><div class='del'>-</div><div class='del'>-  ##</div><div class='ctx'>   # Creates a new Bundler::Persistent::Net::HTTP::Persistent.</div><div class='ctx'>   #</div><div class='del'>-  # Set +name+ to keep your connections apart from everybody else's.  Not</div><div class='del'>-  # required currently, but highly recommended.  Your library name should be</div><div class='del'>-  # good enough.  This parameter will be required in a future version.</div><div class='add'>+  # Set a +name+ for fun.  Your library name should be good enough, but this</div><div class='add'>+  # otherwise has no purpose.</div><div class='ctx'>   #</div><div class='del'>-  # +proxy+ may be set to a URI::HTTP or :ENV to pick up proxy options from</div><div class='add'>+  # +proxy+ may be set to a Bundler::URI::HTTP or :ENV to pick up proxy options from</div><div class='ctx'>   # the environment.  See proxy_from_env for details.</div><div class='ctx'>   #</div><div class='del'>-  # In order to use a URI for the proxy you may need to do some extra work</div><div class='del'>-  # beyond URI parsing if the proxy requires a password:</div><div class='add'>+  # In order to use a Bundler::URI for the proxy you may need to do some extra work</div><div class='add'>+  # beyond Bundler::URI parsing if the proxy requires a password:</div><div class='ctx'>   #</div><div class='del'>-  #   proxy = URI 'http://proxy.example'</div><div class='add'>+  #   proxy = Bundler::URI 'http://proxy.example'</div><div class='ctx'>   #   proxy.user     = 'AzureDiamond'</div><div class='ctx'>   #   proxy.password = 'hunter2'</div><div class='add'>+  #</div><div class='add'>+  # Set +pool_size+ to limit the maximum number of connections allowed.</div><div class='add'>+  # Defaults to 1/4 the number of allowed file handles or 256 if your OS does</div><div class='add'>+  # not support a limit on allowed file handles.  You can have no more than</div><div class='add'>+  # this many threads with active HTTP transactions.</div><div class='ctx'> </div><div class='del'>-  def initialize name = nil, proxy = nil</div><div class='add'>+  def initialize name: nil, proxy: nil, pool_size: DEFAULT_POOL_SIZE</div><div class='ctx'>     @name = name</div><div class='ctx'> </div><div class='ctx'>     @debug_output     = nil</div><div class='hunk'>@@ -491,40 +482,41 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>     @keep_alive       = 30</div><div class='ctx'>     @open_timeout     = nil</div><div class='ctx'>     @read_timeout     = nil</div><div class='add'>+    @write_timeout    = nil</div><div class='ctx'>     @idle_timeout     = 5</div><div class='ctx'>     @max_requests     = nil</div><div class='add'>+    @max_retries      = 1</div><div class='ctx'>     @socket_options   = []</div><div class='add'>+    @ssl_generation   = 0 # incremented when SSL session variables change</div><div class='ctx'> </div><div class='ctx'>     @socket_options &lt;&lt; [Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1] if</div><div class='ctx'>       Socket.const_defined? :TCP_NODELAY</div><div class='ctx'> </div><div class='del'>-    key = ['net_http_persistent', name].compact</div><div class='del'>-    @generation_key     = [key, 'generations'    ].join('_').intern</div><div class='del'>-    @ssl_generation_key = [key, 'ssl_generations'].join('_').intern</div><div class='del'>-    @request_key        = [key, 'requests'       ].join('_').intern</div><div class='del'>-    @timeout_key        = [key, 'timeouts'       ].join('_').intern</div><div class='add'>+    @pool = Bundler::Persistent::Net::HTTP::Persistent::Pool.new size: pool_size do |http_args|</div><div class='add'>+      Bundler::Persistent::Net::HTTP::Persistent::Connection.new Net::HTTP, http_args, @ssl_generation</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     @certificate        = nil</div><div class='ctx'>     @ca_file            = nil</div><div class='add'>+    @ca_path            = nil</div><div class='add'>+    @ciphers            = nil</div><div class='ctx'>     @private_key        = nil</div><div class='add'>+    @ssl_timeout        = nil</div><div class='ctx'>     @ssl_version        = nil</div><div class='add'>+    @min_version        = nil</div><div class='add'>+    @max_version        = nil</div><div class='ctx'>     @verify_callback    = nil</div><div class='add'>+    @verify_depth       = nil</div><div class='ctx'>     @verify_mode        = nil</div><div class='ctx'>     @cert_store         = nil</div><div class='ctx'> </div><div class='del'>-    @generation         = 0 # incremented when proxy URI changes</div><div class='del'>-    @ssl_generation     = 0 # incremented when SSL session variables change</div><div class='add'>+    @generation         = 0 # incremented when proxy Bundler::URI changes</div><div class='ctx'> </div><div class='ctx'>     if HAVE_OPENSSL then</div><div class='ctx'>       @verify_mode        = OpenSSL::SSL::VERIFY_PEER</div><div class='ctx'>       @reuse_ssl_sessions = OpenSSL::SSL.const_defined? :Session</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    @retry_change_requests = false</div><div class='del'>-</div><div class='del'>-    @ruby_1 = RUBY_VERSION &lt; '2'</div><div class='del'>-    @retried_on_ruby_2 = !@ruby_1</div><div class='del'>-</div><div class='ctx'>     self.proxy = proxy if proxy</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -550,6 +542,15 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='add'>+  # Sets the SSL certificate authority path.</div><div class='add'>+</div><div class='add'>+  def ca_path= path</div><div class='add'>+    @ca_path = path</div><div class='add'>+</div><div class='add'>+    reconnect_ssl</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='ctx'>   # Overrides the default SSL certificate store used for verifying</div><div class='ctx'>   # connections.</div><div class='ctx'> </div><div class='hunk'>@@ -560,117 +561,74 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Finishes all connections on the given +thread+ that were created before</div><div class='del'>-  # the given +generation+ in the threads +generation_key+ list.</div><div class='del'>-  #</div><div class='del'>-  # See #shutdown for a bunch of scary warning about misusing this method.</div><div class='add'>+  # The ciphers allowed for SSL connections</div><div class='ctx'> </div><div class='del'>-  def cleanup(generation, thread = Thread.current,</div><div class='del'>-              generation_key = @generation_key) # :nodoc:</div><div class='del'>-    timeouts = thread[@timeout_key]</div><div class='add'>+  def ciphers= ciphers</div><div class='add'>+    @ciphers = ciphers</div><div class='ctx'> </div><div class='del'>-    (0...generation).each do |old_generation|</div><div class='del'>-      next unless thread[generation_key]</div><div class='del'>-</div><div class='del'>-      conns = thread[generation_key].delete old_generation</div><div class='del'>-</div><div class='del'>-      conns.each_value do |conn|</div><div class='del'>-        finish conn, thread</div><div class='del'>-</div><div class='del'>-        timeouts.delete conn.object_id if timeouts</div><div class='del'>-      end if conns</div><div class='del'>-    end</div><div class='add'>+    reconnect_ssl</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='ctx'>   # Creates a new connection for +uri+</div><div class='ctx'> </div><div class='ctx'>   def connection_for uri</div><div class='del'>-    Thread.current[@generation_key]     ||= Hash.new { |h,k| h[k] = {} }</div><div class='del'>-    Thread.current[@ssl_generation_key] ||= Hash.new { |h,k| h[k] = {} }</div><div class='del'>-    Thread.current[@request_key]        ||= Hash.new 0</div><div class='del'>-    Thread.current[@timeout_key]        ||= Hash.new EPOCH</div><div class='del'>-</div><div class='ctx'>     use_ssl = uri.scheme.downcase == 'https'</div><div class='ctx'> </div><div class='del'>-    if use_ssl then</div><div class='del'>-      raise Bundler::Persistent::Net::HTTP::Persistent::Error, 'OpenSSL is not available' unless</div><div class='del'>-        HAVE_OPENSSL</div><div class='del'>-</div><div class='del'>-      ssl_generation = @ssl_generation</div><div class='del'>-</div><div class='del'>-      ssl_cleanup ssl_generation</div><div class='del'>-</div><div class='del'>-      connections = Thread.current[@ssl_generation_key][ssl_generation]</div><div class='del'>-    else</div><div class='del'>-      generation = @generation</div><div class='del'>-</div><div class='del'>-      cleanup generation</div><div class='del'>-</div><div class='del'>-      connections = Thread.current[@generation_key][generation]</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    net_http_args = [uri.host, uri.port]</div><div class='del'>-    connection_id = net_http_args.join ':'</div><div class='add'>+    net_http_args = [uri.hostname, uri.port]</div><div class='ctx'> </div><div class='add'>+    # I'm unsure if uri.host or uri.hostname should be checked against</div><div class='add'>+    # the proxy bypass list.</div><div class='ctx'>     if @proxy_uri and not proxy_bypass? uri.host, uri.port then</div><div class='del'>-      connection_id &lt;&lt; @proxy_connection_id</div><div class='ctx'>       net_http_args.concat @proxy_args</div><div class='ctx'>     else</div><div class='ctx'>       net_http_args.concat [nil, nil, nil, nil]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    connection = connections[connection_id]</div><div class='add'>+    connection = @pool.checkout net_http_args</div><div class='ctx'> </div><div class='del'>-    unless connection = connections[connection_id] then</div><div class='del'>-      connections[connection_id] = http_class.new(*net_http_args)</div><div class='del'>-      connection = connections[connection_id]</div><div class='del'>-      ssl connection if use_ssl</div><div class='del'>-    else</div><div class='del'>-      reset connection if expired? connection</div><div class='del'>-    end</div><div class='add'>+    http = connection.http</div><div class='ctx'> </div><div class='del'>-    start connection unless connection.started?</div><div class='add'>+    connection.ressl @ssl_generation if</div><div class='add'>+      connection.ssl_generation != @ssl_generation</div><div class='add'>+</div><div class='add'>+    if not http.started? then</div><div class='add'>+      ssl   http if use_ssl</div><div class='add'>+      start http</div><div class='add'>+    elsif expired? connection then</div><div class='add'>+      reset connection</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-    connection.read_timeout = @read_timeout if @read_timeout</div><div class='del'>-    connection.keep_alive_timeout = @idle_timeout if @idle_timeout &amp;&amp; connection.respond_to?(:keep_alive_timeout=)</div><div class='add'>+    http.keep_alive_timeout = @idle_timeout  if @idle_timeout</div><div class='add'>+    http.max_retries        = @max_retries   if http.respond_to?(:max_retries=)</div><div class='add'>+    http.read_timeout       = @read_timeout  if @read_timeout</div><div class='add'>+    http.write_timeout      = @write_timeout if</div><div class='add'>+      @write_timeout &amp;&amp; http.respond_to?(:write_timeout=)</div><div class='ctx'> </div><div class='del'>-    connection</div><div class='add'>+    return yield connection</div><div class='ctx'>   rescue Errno::ECONNREFUSED</div><div class='del'>-    address = connection.proxy_address || connection.address</div><div class='del'>-    port    = connection.proxy_port    || connection.port</div><div class='add'>+    address = http.proxy_address || http.address</div><div class='add'>+    port    = http.proxy_port    || http.port</div><div class='ctx'> </div><div class='ctx'>     raise Error, "connection refused: #{address}:#{port}"</div><div class='ctx'>   rescue Errno::EHOSTDOWN</div><div class='del'>-    address = connection.proxy_address || connection.address</div><div class='del'>-    port    = connection.proxy_port    || connection.port</div><div class='add'>+    address = http.proxy_address || http.address</div><div class='add'>+    port    = http.proxy_port    || http.port</div><div class='ctx'> </div><div class='ctx'>     raise Error, "host down: #{address}:#{port}"</div><div class='add'>+  ensure</div><div class='add'>+    @pool.checkin net_http_args</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Returns an error message containing the number of requests performed on</div><div class='del'>-  # this connection</div><div class='del'>-</div><div class='del'>-  def error_message connection</div><div class='del'>-    requests = Thread.current[@request_key][connection.object_id] - 1 # fixup</div><div class='del'>-    last_use = Thread.current[@timeout_key][connection.object_id]</div><div class='del'>-</div><div class='del'>-    age = Time.now - last_use</div><div class='del'>-</div><div class='del'>-    "after #{requests} requests on #{connection.object_id}, " \</div><div class='del'>-      "last used #{age} seconds ago"</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # URI::escape wrapper</div><div class='add'>+  # CGI::escape wrapper</div><div class='ctx'> </div><div class='ctx'>   def escape str</div><div class='ctx'>     CGI.escape str if str</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # URI::unescape wrapper</div><div class='add'>+  # CGI::unescape wrapper</div><div class='ctx'> </div><div class='ctx'>   def unescape str</div><div class='ctx'>     CGI.unescape str if str</div><div class='hunk'>@@ -682,26 +640,23 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   # maximum request count, false otherwise.</div><div class='ctx'> </div><div class='ctx'>   def expired? connection</div><div class='del'>-    requests = Thread.current[@request_key][connection.object_id]</div><div class='del'>-    return true  if     @max_requests &amp;&amp; requests &gt;= @max_requests</div><div class='add'>+    return true  if     @max_requests &amp;&amp; connection.requests &gt;= @max_requests</div><div class='ctx'>     return false unless @idle_timeout</div><div class='ctx'>     return true  if     @idle_timeout.zero?</div><div class='ctx'> </div><div class='del'>-    last_used = Thread.current[@timeout_key][connection.object_id]</div><div class='del'>-</div><div class='del'>-    Time.now - last_used &gt; @idle_timeout</div><div class='add'>+    Time.now - connection.last_use &gt; @idle_timeout</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='ctx'>   # Starts the Net::HTTP +connection+</div><div class='ctx'> </div><div class='del'>-  def start connection</div><div class='del'>-    connection.set_debug_output @debug_output if @debug_output</div><div class='del'>-    connection.open_timeout = @open_timeout if @open_timeout</div><div class='add'>+  def start http</div><div class='add'>+    http.set_debug_output @debug_output if @debug_output</div><div class='add'>+    http.open_timeout = @open_timeout if @open_timeout</div><div class='ctx'> </div><div class='del'>-    connection.start</div><div class='add'>+    http.start</div><div class='ctx'> </div><div class='del'>-    socket = connection.instance_variable_get :@socket</div><div class='add'>+    socket = http.instance_variable_get :@socket</div><div class='ctx'> </div><div class='ctx'>     if socket then # for fakeweb</div><div class='ctx'>       @socket_options.each do |option|</div><div class='hunk'>@@ -713,96 +668,19 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   ##</div><div class='ctx'>   # Finishes the Net::HTTP +connection+</div><div class='ctx'> </div><div class='del'>-  def finish connection, thread = Thread.current</div><div class='del'>-    if requests = thread[@request_key] then</div><div class='del'>-      requests.delete connection.object_id</div><div class='del'>-    end</div><div class='del'>-</div><div class='add'>+  def finish connection</div><div class='ctx'>     connection.finish</div><div class='del'>-  rescue IOError</div><div class='del'>-  end</div><div class='ctx'> </div><div class='del'>-  def http_class # :nodoc:</div><div class='del'>-    if RUBY_VERSION &gt; '2.0' then</div><div class='del'>-      Net::HTTP</div><div class='del'>-    elsif [:Artifice, :FakeWeb, :WebMock].any? { |klass|</div><div class='del'>-             Object.const_defined?(klass)</div><div class='del'>-          } or not @reuse_ssl_sessions then</div><div class='del'>-        Net::HTTP</div><div class='del'>-    else</div><div class='del'>-      Bundler::Persistent::Net::HTTP::Persistent::SSLReuse</div><div class='del'>-    end</div><div class='add'>+    connection.http.instance_variable_set :@last_communicated, nil</div><div class='add'>+    connection.http.instance_variable_set :@ssl_session, nil unless</div><div class='add'>+      @reuse_ssl_sessions</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='ctx'>   # Returns the HTTP protocol version for +uri+</div><div class='ctx'> </div><div class='ctx'>   def http_version uri</div><div class='del'>-    @http_versions["#{uri.host}:#{uri.port}"]</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Is +req+ idempotent according to RFC 2616?</div><div class='del'>-</div><div class='del'>-  def idempotent? req</div><div class='del'>-    case req</div><div class='del'>-    when Net::HTTP::Delete, Net::HTTP::Get, Net::HTTP::Head,</div><div class='del'>-         Net::HTTP::Options, Net::HTTP::Put, Net::HTTP::Trace then</div><div class='del'>-      true</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Is the request +req+ idempotent or is retry_change_requests allowed.</div><div class='del'>-  #</div><div class='del'>-  # If +retried_on_ruby_2+ is true, true will be returned if we are on ruby,</div><div class='del'>-  # retry_change_requests is allowed and the request is not idempotent.</div><div class='del'>-</div><div class='del'>-  def can_retry? req, retried_on_ruby_2 = false</div><div class='del'>-    return @retry_change_requests &amp;&amp; !idempotent?(req) if retried_on_ruby_2</div><div class='del'>-</div><div class='del'>-    @retry_change_requests || idempotent?(req)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  if RUBY_VERSION &gt; '1.9' then</div><div class='del'>-    ##</div><div class='del'>-    # Workaround for missing Net::HTTPHeader#connection_close? on Ruby 1.8</div><div class='del'>-</div><div class='del'>-    def connection_close? header</div><div class='del'>-      header.connection_close?</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # Workaround for missing Net::HTTPHeader#connection_keep_alive? on Ruby 1.8</div><div class='del'>-</div><div class='del'>-    def connection_keep_alive? header</div><div class='del'>-      header.connection_keep_alive?</div><div class='del'>-    end</div><div class='del'>-  else</div><div class='del'>-    ##</div><div class='del'>-    # Workaround for missing Net::HTTPRequest#connection_close? on Ruby 1.8</div><div class='del'>-</div><div class='del'>-    def connection_close? header</div><div class='del'>-      header['connection'] =~ /close/ or header['proxy-connection'] =~ /close/</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ##</div><div class='del'>-    # Workaround for missing Net::HTTPRequest#connection_keep_alive? on Ruby</div><div class='del'>-    # 1.8</div><div class='del'>-</div><div class='del'>-    def connection_keep_alive? header</div><div class='del'>-      header['connection'] =~ /keep-alive/ or</div><div class='del'>-        header['proxy-connection'] =~ /keep-alive/</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Deprecated in favor of #expired?</div><div class='del'>-</div><div class='del'>-  def max_age # :nodoc:</div><div class='del'>-    return Time.now + 1 unless @idle_timeout</div><div class='del'>-</div><div class='del'>-    Time.now - @idle_timeout</div><div class='add'>+    @http_versions["#{uri.hostname}:#{uri.port}"]</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='hunk'>@@ -813,20 +691,20 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Pipelines +requests+ to the HTTP server at +uri+ yielding responses if a</div><div class='del'>-  # block is given.  Returns all responses received.</div><div class='add'>+  # Set the maximum number of retries for a request.</div><div class='ctx'>   #</div><div class='del'>-  # See</div><div class='del'>-  # Net::HTTP::Pipeline[http://docs.seattlerb.org/net-http-pipeline/Net/HTTP/Pipeline.html]</div><div class='del'>-  # for further details.</div><div class='add'>+  # Defaults to one retry.</div><div class='ctx'>   #</div><div class='del'>-  # Only if &lt;tt&gt;net-http-pipeline&lt;/tt&gt; was required before</div><div class='del'>-  # &lt;tt&gt;net-http-persistent&lt;/tt&gt; #pipeline will be present.</div><div class='add'>+  # Set this to 0 to disable retries.</div><div class='add'>+</div><div class='add'>+  def max_retries= retries</div><div class='add'>+    retries = retries.to_int</div><div class='add'>+</div><div class='add'>+    raise ArgumentError, "max_retries must be positive" if retries &lt; 0</div><div class='ctx'> </div><div class='del'>-  def pipeline uri, requests, &amp;block # :yields: responses</div><div class='del'>-    connection = connection_for uri</div><div class='add'>+    @max_retries = retries</div><div class='ctx'> </div><div class='del'>-    connection.pipeline requests, &amp;block</div><div class='add'>+    reconnect</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='hunk'>@@ -842,12 +720,12 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   alias key= private_key=</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Sets the proxy server.  The +proxy+ may be the URI of the proxy server,</div><div class='add'>+  # Sets the proxy server.  The +proxy+ may be the Bundler::URI of the proxy server,</div><div class='ctx'>   # the symbol +:ENV+ which will read the proxy from the environment or nil to</div><div class='ctx'>   # disable use of a proxy.  See #proxy_from_env for details on setting the</div><div class='ctx'>   # proxy from the environment.</div><div class='ctx'>   #</div><div class='del'>-  # If the proxy URI is set after requests have been made, the next request</div><div class='add'>+  # If the proxy Bundler::URI is set after requests have been made, the next request</div><div class='ctx'>   # will shut-down and re-open all connections.</div><div class='ctx'>   #</div><div class='ctx'>   # The +no_proxy+ query parameter can be used to specify hosts which shouldn't</div><div class='hunk'>@@ -858,16 +736,16 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   def proxy= proxy</div><div class='ctx'>     @proxy_uri = case proxy</div><div class='ctx'>                  when :ENV      then proxy_from_env</div><div class='del'>-                 when URI::HTTP then proxy</div><div class='add'>+                 when Bundler::URI::HTTP then proxy</div><div class='ctx'>                  when nil       then # ignore</div><div class='del'>-                 else raise ArgumentError, 'proxy must be :ENV or a URI::HTTP'</div><div class='add'>+                 else raise ArgumentError, 'proxy must be :ENV or a Bundler::URI::HTTP'</div><div class='ctx'>                  end</div><div class='ctx'> </div><div class='ctx'>     @no_proxy.clear</div><div class='ctx'> </div><div class='ctx'>     if @proxy_uri then</div><div class='ctx'>       @proxy_args = [</div><div class='del'>-        @proxy_uri.host,</div><div class='add'>+        @proxy_uri.hostname,</div><div class='ctx'>         @proxy_uri.port,</div><div class='ctx'>         unescape(@proxy_uri.user),</div><div class='ctx'>         unescape(@proxy_uri.password),</div><div class='hunk'>@@ -885,13 +763,13 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Creates a URI for an HTTP proxy server from ENV variables.</div><div class='add'>+  # Creates a Bundler::URI for an HTTP proxy server from ENV variables.</div><div class='ctx'>   #</div><div class='ctx'>   # If +HTTP_PROXY+ is set a proxy will be returned.</div><div class='ctx'>   #</div><div class='del'>-  # If +HTTP_PROXY_USER+ or +HTTP_PROXY_PASS+ are set the URI is given the</div><div class='add'>+  # If +HTTP_PROXY_USER+ or +HTTP_PROXY_PASS+ are set the Bundler::URI is given the</div><div class='ctx'>   # indicated user and password unless HTTP_PROXY contains either of these in</div><div class='del'>-  # the URI.</div><div class='add'>+  # the Bundler::URI.</div><div class='ctx'>   #</div><div class='ctx'>   # The +NO_PROXY+ ENV variable can be used to specify hosts which shouldn't</div><div class='ctx'>   # be reached via proxy; if set it should be a comma separated list of</div><div class='hunk'>@@ -907,7 +785,7 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'> </div><div class='ctx'>     return nil if env_proxy.nil? or env_proxy.empty?</div><div class='ctx'> </div><div class='del'>-    uri = URI normalize_uri env_proxy</div><div class='add'>+    uri = Bundler::URI normalize_uri env_proxy</div><div class='ctx'> </div><div class='ctx'>     env_no_proxy = ENV['no_proxy'] || ENV['NO_PROXY']</div><div class='ctx'> </div><div class='hunk'>@@ -942,14 +820,15 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Forces reconnection of HTTP connections.</div><div class='add'>+  # Forces reconnection of all HTTP connections, including TLS/SSL</div><div class='add'>+  # connections.</div><div class='ctx'> </div><div class='ctx'>   def reconnect</div><div class='ctx'>     @generation += 1</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Forces reconnection of SSL connections.</div><div class='add'>+  # Forces reconnection of only TLS/SSL connections.</div><div class='ctx'> </div><div class='ctx'>   def reconnect_ssl</div><div class='ctx'>     @ssl_generation += 1</div><div class='hunk'>@@ -959,18 +838,17 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   # Finishes then restarts the Net::HTTP +connection+</div><div class='ctx'> </div><div class='ctx'>   def reset connection</div><div class='del'>-    Thread.current[@request_key].delete connection.object_id</div><div class='del'>-    Thread.current[@timeout_key].delete connection.object_id</div><div class='add'>+    http = connection.http</div><div class='ctx'> </div><div class='ctx'>     finish connection</div><div class='ctx'> </div><div class='del'>-    start connection</div><div class='add'>+    start http</div><div class='ctx'>   rescue Errno::ECONNREFUSED</div><div class='del'>-    e = Error.new "connection refused: #{connection.address}:#{connection.port}"</div><div class='add'>+    e = Error.new "connection refused: #{http.address}:#{http.port}"</div><div class='ctx'>     e.set_backtrace $@</div><div class='ctx'>     raise e</div><div class='ctx'>   rescue Errno::EHOSTDOWN</div><div class='del'>-    e = Error.new "host down: #{connection.address}:#{connection.port}"</div><div class='add'>+    e = Error.new "host down: #{http.address}:#{http.port}"</div><div class='ctx'>     e.set_backtrace $@</div><div class='ctx'>     raise e</div><div class='ctx'>   end</div><div class='hunk'>@@ -982,92 +860,49 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   # If a block is passed #request behaves like Net::HTTP#request (the body of</div><div class='ctx'>   # the response will not have been read).</div><div class='ctx'>   #</div><div class='del'>-  # +req+ must be a Net::HTTPRequest subclass (see Net::HTTP for a list).</div><div class='del'>-  #</div><div class='del'>-  # If there is an error and the request is idempotent according to RFC 2616</div><div class='del'>-  # it will be retried automatically.</div><div class='add'>+  # +req+ must be a Net::HTTPGenericRequest subclass (see Net::HTTP for a list).</div><div class='ctx'> </div><div class='ctx'>   def request uri, req = nil, &amp;block</div><div class='del'>-    retried      = false</div><div class='del'>-    bad_response = false</div><div class='del'>-</div><div class='del'>-    req = request_setup req || uri</div><div class='del'>-</div><div class='del'>-    connection = connection_for uri</div><div class='del'>-    connection_id = connection.object_id</div><div class='del'>-</div><div class='del'>-    begin</div><div class='del'>-      Thread.current[@request_key][connection_id] += 1</div><div class='del'>-      response = connection.request req, &amp;block</div><div class='del'>-</div><div class='del'>-      if connection_close?(req) or</div><div class='del'>-         (response.http_version &lt;= '1.0' and</div><div class='del'>-          not connection_keep_alive?(response)) or</div><div class='del'>-         connection_close?(response) then</div><div class='del'>-        connection.finish</div><div class='add'>+    uri      = Bundler::URI uri</div><div class='add'>+    req      = request_setup req || uri</div><div class='add'>+    response = nil</div><div class='add'>+</div><div class='add'>+    connection_for uri do |connection|</div><div class='add'>+      http = connection.http</div><div class='add'>+</div><div class='add'>+      begin</div><div class='add'>+        connection.requests += 1</div><div class='add'>+</div><div class='add'>+        response = http.request req, &amp;block</div><div class='add'>+</div><div class='add'>+        if req.connection_close? or</div><div class='add'>+          (response.http_version &lt;= '1.0' and</div><div class='add'>+            not response.connection_keep_alive?) or</div><div class='add'>+            response.connection_close? then</div><div class='add'>+          finish connection</div><div class='add'>+        end</div><div class='add'>+      rescue Exception # make sure to close the connection when it was interrupted</div><div class='add'>+        finish connection</div><div class='add'>+</div><div class='add'>+        raise</div><div class='add'>+      ensure</div><div class='add'>+        connection.last_use = Time.now</div><div class='ctx'>       end</div><div class='del'>-    rescue Net::HTTPBadResponse =&gt; e</div><div class='del'>-      message = error_message connection</div><div class='del'>-</div><div class='del'>-      finish connection</div><div class='del'>-</div><div class='del'>-      raise Error, "too many bad responses #{message}" if</div><div class='del'>-        bad_response or not can_retry? req</div><div class='del'>-</div><div class='del'>-      bad_response = true</div><div class='del'>-      retry</div><div class='del'>-    rescue *RETRIED_EXCEPTIONS =&gt; e # retried on ruby 2</div><div class='del'>-      request_failed e, req, connection if</div><div class='del'>-        retried or not can_retry? req, @retried_on_ruby_2</div><div class='del'>-</div><div class='del'>-      reset connection</div><div class='del'>-</div><div class='del'>-      retried = true</div><div class='del'>-      retry</div><div class='del'>-    rescue Errno::EINVAL, Errno::ETIMEDOUT =&gt; e # not retried on ruby 2</div><div class='del'>-      request_failed e, req, connection if retried or not can_retry? req</div><div class='del'>-</div><div class='del'>-      reset connection</div><div class='del'>-</div><div class='del'>-      retried = true</div><div class='del'>-      retry</div><div class='del'>-    rescue Exception =&gt; e</div><div class='del'>-      finish connection</div><div class='del'>-</div><div class='del'>-      raise</div><div class='del'>-    ensure</div><div class='del'>-      Thread.current[@timeout_key][connection_id] = Time.now</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    @http_versions["#{uri.host}:#{uri.port}"] ||= response.http_version</div><div class='add'>+    @http_versions["#{uri.hostname}:#{uri.port}"] ||= response.http_version</div><div class='ctx'> </div><div class='ctx'>     response</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Raises an Error for +exception+ which resulted from attempting the request</div><div class='del'>-  # +req+ on the +connection+.</div><div class='del'>-  #</div><div class='del'>-  # Finishes the +connection+.</div><div class='del'>-</div><div class='del'>-  def request_failed exception, req, connection # :nodoc:</div><div class='del'>-    due_to = "(due to #{exception.message} - #{exception.class})"</div><div class='del'>-    message = "too many connection resets #{due_to} #{error_message connection}"</div><div class='del'>-</div><div class='del'>-    finish connection</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-    raise Error, message, exception.backtrace</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Creates a GET request if +req_or_uri+ is a URI and adds headers to the</div><div class='add'>+  # Creates a GET request if +req_or_uri+ is a Bundler::URI and adds headers to the</div><div class='ctx'>   # request.</div><div class='ctx'>   #</div><div class='ctx'>   # Returns the request.</div><div class='ctx'> </div><div class='ctx'>   def request_setup req_or_uri # :nodoc:</div><div class='del'>-    req = if URI === req_or_uri then</div><div class='add'>+    req = if req_or_uri.respond_to? 'request_uri' then</div><div class='ctx'>             Net::HTTP::Get.new req_or_uri.request_uri</div><div class='ctx'>           else</div><div class='ctx'>             req_or_uri</div><div class='hunk'>@@ -1090,45 +925,15 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Shuts down all connections for +thread+.</div><div class='del'>-  #</div><div class='del'>-  # Uses the current thread by default.</div><div class='del'>-  #</div><div class='del'>-  # If you've used Bundler::Persistent::Net::HTTP::Persistent across multiple threads you should</div><div class='del'>-  # call this in each thread when you're done making HTTP requests.</div><div class='del'>-  #</div><div class='del'>-  # *NOTE*: Calling shutdown for another thread can be dangerous!</div><div class='del'>-  #</div><div class='del'>-  # If the thread is still using the connection it may cause an error!  It is</div><div class='del'>-  # best to call #shutdown in the thread at the appropriate time instead!</div><div class='del'>-</div><div class='del'>-  def shutdown thread = Thread.current</div><div class='del'>-    generation = reconnect</div><div class='del'>-    cleanup generation, thread, @generation_key</div><div class='del'>-</div><div class='del'>-    ssl_generation = reconnect_ssl</div><div class='del'>-    cleanup ssl_generation, thread, @ssl_generation_key</div><div class='del'>-</div><div class='del'>-    thread[@request_key] = nil</div><div class='del'>-    thread[@timeout_key] = nil</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Shuts down all connections in all threads</div><div class='del'>-  #</div><div class='del'>-  # *NOTE*: THIS METHOD IS VERY DANGEROUS!</div><div class='add'>+  # Shuts down all connections</div><div class='ctx'>   #</div><div class='del'>-  # Do not call this method if other threads are still using their</div><div class='del'>-  # connections!  Call #shutdown at the appropriate time instead!</div><div class='add'>+  # *NOTE*: Calling shutdown for can be dangerous!</div><div class='ctx'>   #</div><div class='del'>-  # Use this method only as a last resort!</div><div class='add'>+  # If any thread is still using a connection it may cause an error!  Call</div><div class='add'>+  # #shutdown when you are completely done making requests!</div><div class='ctx'> </div><div class='del'>-  def shutdown_in_all_threads</div><div class='del'>-    Thread.list.each do |thread|</div><div class='del'>-      shutdown thread</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    nil</div><div class='add'>+  def shutdown</div><div class='add'>+    @pool.shutdown { |http| http.finish }</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='hunk'>@@ -1137,9 +942,14 @@ class Bundler::Persistent::Net::HTTP::Persistent</div><div class='ctx'>   def ssl connection</div><div class='ctx'>     connection.use_ssl = true</div><div class='ctx'> </div><div class='add'>+    connection.ciphers     = @ciphers     if @ciphers</div><div class='add'>+    connection.ssl_timeout = @ssl_timeout if @ssl_timeout</div><div class='ctx'>     connection.ssl_version = @ssl_version if @ssl_version</div><div class='add'>+    connection.min_version = @min_version if @min_version</div><div class='add'>+    connection.max_version = @max_version if @max_version</div><div class='ctx'> </div><div class='del'>-    connection.verify_mode = @verify_mode</div><div class='add'>+    connection.verify_depth = @verify_depth</div><div class='add'>+    connection.verify_mode  = @verify_mode</div><div class='ctx'> </div><div class='ctx'>     if OpenSSL::SSL::VERIFY_PEER == OpenSSL::SSL::VERIFY_NONE and</div><div class='ctx'>        not Object.const_defined?(:I_KNOW_THAT_OPENSSL_VERIFY_PEER_EQUALS_VERIFY_NONE_IS_WRONG) then</div><div class='hunk'>@@ -1168,8 +978,10 @@ application:</div><div class='ctx'>       WARNING</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    if @ca_file then</div><div class='del'>-      connection.ca_file = @ca_file</div><div class='add'>+    connection.ca_file = @ca_file if @ca_file</div><div class='add'>+    connection.ca_path = @ca_path if @ca_path</div><div class='add'>+</div><div class='add'>+    if @ca_file or @ca_path then</div><div class='ctx'>       connection.verify_mode = OpenSSL::SSL::VERIFY_PEER</div><div class='ctx'>       connection.verify_callback = @verify_callback if @verify_callback</div><div class='ctx'>     end</div><div class='hunk'>@@ -1189,11 +1001,12 @@ application:</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Finishes all connections that existed before the given SSL parameter</div><div class='del'>-  # +generation+.</div><div class='add'>+  # SSL session lifetime</div><div class='add'>+</div><div class='add'>+  def ssl_timeout= ssl_timeout</div><div class='add'>+    @ssl_timeout = ssl_timeout</div><div class='ctx'> </div><div class='del'>-  def ssl_cleanup generation # :nodoc:</div><div class='del'>-    cleanup generation, Thread.current, @ssl_generation_key</div><div class='add'>+    reconnect_ssl</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='hunk'>@@ -1203,7 +1016,34 @@ application:</div><div class='ctx'>     @ssl_version = ssl_version</div><div class='ctx'> </div><div class='ctx'>     reconnect_ssl</div><div class='del'>-  end if RUBY_VERSION &gt; '1.9'</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Minimum SSL version to use</div><div class='add'>+</div><div class='add'>+  def min_version= min_version</div><div class='add'>+    @min_version = min_version</div><div class='add'>+</div><div class='add'>+    reconnect_ssl</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # maximum SSL version to use</div><div class='add'>+</div><div class='add'>+  def max_version= max_version</div><div class='add'>+    @max_version = max_version</div><div class='add'>+</div><div class='add'>+    reconnect_ssl</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Sets the depth of SSL certificate verification</div><div class='add'>+</div><div class='add'>+  def verify_depth= verify_depth</div><div class='add'>+    @verify_depth = verify_depth</div><div class='add'>+</div><div class='add'>+    reconnect_ssl</div><div class='add'>+  end</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='ctx'>   # Sets the HTTPS verify mode.  Defaults to OpenSSL::SSL::VERIFY_PEER.</div><div class='hunk'>@@ -1226,8 +1066,8 @@ application:</div><div class='ctx'> </div><div class='ctx'>     reconnect_ssl</div><div class='ctx'>   end</div><div class='del'>-</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-require 'bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse'</div><div class='add'>+require_relative 'persistent/connection'</div><div class='add'>+require_relative 'persistent/pool'</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb b/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb<br/>new file mode 100644<br/>index 0000000000..a57a5d1352<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb</a></div><div class='hunk'>@@ -0,0 +1,40 @@</div><div class='add'>+##</div><div class='add'>+# A Net::HTTP connection wrapper that holds extra information for managing the</div><div class='add'>+# connection's lifetime.</div><div class='add'>+</div><div class='add'>+class Bundler::Persistent::Net::HTTP::Persistent::Connection # :nodoc:</div><div class='add'>+</div><div class='add'>+  attr_accessor :http</div><div class='add'>+</div><div class='add'>+  attr_accessor :last_use</div><div class='add'>+</div><div class='add'>+  attr_accessor :requests</div><div class='add'>+</div><div class='add'>+  attr_accessor :ssl_generation</div><div class='add'>+</div><div class='add'>+  def initialize http_class, http_args, ssl_generation</div><div class='add'>+    @http           = http_class.new(*http_args)</div><div class='add'>+    @ssl_generation = ssl_generation</div><div class='add'>+</div><div class='add'>+    reset</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def finish</div><div class='add'>+    @http.finish</div><div class='add'>+  rescue IOError</div><div class='add'>+  ensure</div><div class='add'>+    reset</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def reset</div><div class='add'>+    @last_use = Bundler::Persistent::Net::HTTP::Persistent::EPOCH</div><div class='add'>+    @requests = 0</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def ressl ssl_generation</div><div class='add'>+    @ssl_generation = ssl_generation</div><div class='add'>+</div><div class='add'>+    finish</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb b/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb<br/>new file mode 100644<br/>index 0000000000..9dfa6ffdb1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb</a></div><div class='hunk'>@@ -0,0 +1,53 @@</div><div class='add'>+class Bundler::Persistent::Net::HTTP::Persistent::Pool &lt; Bundler::ConnectionPool # :nodoc:</div><div class='add'>+</div><div class='add'>+  attr_reader :available # :nodoc:</div><div class='add'>+  attr_reader :key # :nodoc:</div><div class='add'>+</div><div class='add'>+  def initialize(options = {}, &amp;block)</div><div class='add'>+    super</div><div class='add'>+</div><div class='add'>+    @available = Bundler::Persistent::Net::HTTP::Persistent::TimedStackMulti.new(@size, &amp;block)</div><div class='add'>+    @key = "current-#{@available.object_id}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def checkin net_http_args</div><div class='add'>+    stack = Thread.current[@key][net_http_args] ||= []</div><div class='add'>+</div><div class='add'>+    raise Bundler::ConnectionPool::Error, 'no connections are checked out' if</div><div class='add'>+      stack.empty?</div><div class='add'>+</div><div class='add'>+    conn = stack.pop</div><div class='add'>+</div><div class='add'>+    if stack.empty?</div><div class='add'>+      @available.push conn, connection_args: net_http_args</div><div class='add'>+</div><div class='add'>+      Thread.current[@key].delete(net_http_args)</div><div class='add'>+      Thread.current[@key] = nil if Thread.current[@key].empty?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def checkout net_http_args</div><div class='add'>+    stacks = Thread.current[@key] ||= {}</div><div class='add'>+    stack  = stacks[net_http_args] ||= []</div><div class='add'>+</div><div class='add'>+    if stack.empty? then</div><div class='add'>+      conn = @available.pop connection_args: net_http_args</div><div class='add'>+    else</div><div class='add'>+      conn = stack.last</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    stack.push conn</div><div class='add'>+</div><div class='add'>+    conn</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def shutdown</div><div class='add'>+    Thread.current[@key] = nil</div><div class='add'>+    super</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+require_relative 'timed_stack_multi'</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb b/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb<br/>deleted file mode 100644<br/>index 1b6b789f6d..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,129 +0,0 @@</div><div class='del'>-##</div><div class='del'>-# This Net::HTTP subclass adds SSL session reuse and Server Name Indication</div><div class='del'>-# (SNI) RFC 3546.</div><div class='del'>-#</div><div class='del'>-# DO NOT DEPEND UPON THIS CLASS</div><div class='del'>-#</div><div class='del'>-# This class is an implementation detail and is subject to change or removal</div><div class='del'>-# at any time.</div><div class='del'>-</div><div class='del'>-class Bundler::Persistent::Net::HTTP::Persistent::SSLReuse &lt; Net::HTTP</div><div class='del'>-</div><div class='del'>-  @is_proxy_class = false</div><div class='del'>-  @proxy_addr = nil</div><div class='del'>-  @proxy_port = nil</div><div class='del'>-  @proxy_user = nil</div><div class='del'>-  @proxy_pass = nil</div><div class='del'>-</div><div class='del'>-  def initialize address, port = nil # :nodoc:</div><div class='del'>-    super</div><div class='del'>-</div><div class='del'>-    @ssl_session = nil</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # From ruby trunk r33086 including http://redmine.ruby-lang.org/issues/5341</div><div class='del'>-</div><div class='del'>-  def connect # :nodoc:</div><div class='del'>-    D "opening connection to #{conn_address()}..."</div><div class='del'>-    s = timeout(@open_timeout) { TCPSocket.open(conn_address(), conn_port()) }</div><div class='del'>-    D "opened"</div><div class='del'>-    if use_ssl?</div><div class='del'>-      ssl_parameters = Hash.new</div><div class='del'>-      iv_list = instance_variables</div><div class='del'>-      SSL_ATTRIBUTES.each do |name|</div><div class='del'>-        ivname = "@#{name}".intern</div><div class='del'>-        if iv_list.include?(ivname) and</div><div class='del'>-           value = instance_variable_get(ivname)</div><div class='del'>-          ssl_parameters[name] = value</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      unless @ssl_context then</div><div class='del'>-        @ssl_context = OpenSSL::SSL::SSLContext.new</div><div class='del'>-        @ssl_context.set_params(ssl_parameters)</div><div class='del'>-      end</div><div class='del'>-      s = OpenSSL::SSL::SSLSocket.new(s, @ssl_context)</div><div class='del'>-      s.sync_close = true</div><div class='del'>-    end</div><div class='del'>-    @socket = Net::BufferedIO.new(s)</div><div class='del'>-    @socket.read_timeout = @read_timeout</div><div class='del'>-    @socket.continue_timeout = @continue_timeout if</div><div class='del'>-      @socket.respond_to? :continue_timeout</div><div class='del'>-    @socket.debug_output = @debug_output</div><div class='del'>-    if use_ssl?</div><div class='del'>-      begin</div><div class='del'>-        if proxy?</div><div class='del'>-          @socket.writeline sprintf('CONNECT %s:%s HTTP/%s',</div><div class='del'>-                                    @address, @port, HTTPVersion)</div><div class='del'>-          @socket.writeline "Host: #{@address}:#{@port}"</div><div class='del'>-          if proxy_user</div><div class='del'>-            credential = ["#{proxy_user}:#{proxy_pass}"].pack('m')</div><div class='del'>-            credential.delete!("\r\n")</div><div class='del'>-            @socket.writeline "Proxy-Authorization: Basic #{credential}"</div><div class='del'>-          end</div><div class='del'>-          @socket.writeline ''</div><div class='del'>-          Net::HTTPResponse.read_new(@socket).value</div><div class='del'>-        end</div><div class='del'>-        s.session = @ssl_session if @ssl_session</div><div class='del'>-        # Server Name Indication (SNI) RFC 3546</div><div class='del'>-        s.hostname = @address if s.respond_to? :hostname=</div><div class='del'>-        timeout(@open_timeout) { s.connect }</div><div class='del'>-        if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE</div><div class='del'>-          s.post_connection_check(@address)</div><div class='del'>-        end</div><div class='del'>-        @ssl_session = s.session</div><div class='del'>-      rescue =&gt; exception</div><div class='del'>-        D "Conn close because of connect error #{exception}"</div><div class='del'>-        @socket.close if @socket and not @socket.closed?</div><div class='del'>-        raise exception</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    on_connect</div><div class='del'>-  end if RUBY_VERSION &gt; '1.9'</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # From ruby_1_8_7 branch r29865 including a modified</div><div class='del'>-  # http://redmine.ruby-lang.org/issues/5341</div><div class='del'>-</div><div class='del'>-  def connect # :nodoc:</div><div class='del'>-    D "opening connection to #{conn_address()}..."</div><div class='del'>-    s = timeout(@open_timeout) { TCPSocket.open(conn_address(), conn_port()) }</div><div class='del'>-    D "opened"</div><div class='del'>-    if use_ssl?</div><div class='del'>-      unless @ssl_context.verify_mode</div><div class='del'>-        warn "warning: peer certificate won't be verified in this SSL session"</div><div class='del'>-        @ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE</div><div class='del'>-      end</div><div class='del'>-      s = OpenSSL::SSL::SSLSocket.new(s, @ssl_context)</div><div class='del'>-      s.sync_close = true</div><div class='del'>-    end</div><div class='del'>-    @socket = Net::BufferedIO.new(s)</div><div class='del'>-    @socket.read_timeout = @read_timeout</div><div class='del'>-    @socket.debug_output = @debug_output</div><div class='del'>-    if use_ssl?</div><div class='del'>-      if proxy?</div><div class='del'>-        @socket.writeline sprintf('CONNECT %s:%s HTTP/%s',</div><div class='del'>-                                  @address, @port, HTTPVersion)</div><div class='del'>-        @socket.writeline "Host: #{@address}:#{@port}"</div><div class='del'>-        if proxy_user</div><div class='del'>-          credential = ["#{proxy_user}:#{proxy_pass}"].pack('m')</div><div class='del'>-          credential.delete!("\r\n")</div><div class='del'>-          @socket.writeline "Proxy-Authorization: Basic #{credential}"</div><div class='del'>-        end</div><div class='del'>-        @socket.writeline ''</div><div class='del'>-        Net::HTTPResponse.read_new(@socket).value</div><div class='del'>-      end</div><div class='del'>-      s.session = @ssl_session if @ssl_session</div><div class='del'>-      s.connect</div><div class='del'>-      if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE</div><div class='del'>-        s.post_connection_check(@address)</div><div class='del'>-      end</div><div class='del'>-      @ssl_session = s.session</div><div class='del'>-    end</div><div class='del'>-    on_connect</div><div class='del'>-  end if RUBY_VERSION &lt; '1.9'</div><div class='del'>-</div><div class='del'>-  private :connect</div><div class='del'>-</div><div class='del'>-end</div><div class='del'>-</div><div class='head'>diff --git a/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb b/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb<br/>new file mode 100644<br/>index 0000000000..2da881c554<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb</a></div><div class='hunk'>@@ -0,0 +1,79 @@</div><div class='add'>+class Bundler::Persistent::Net::HTTP::Persistent::TimedStackMulti &lt; Bundler::ConnectionPool::TimedStack # :nodoc:</div><div class='add'>+</div><div class='add'>+  ##</div><div class='add'>+  # Returns a new hash that has arrays for keys</div><div class='add'>+  #</div><div class='add'>+  # Using a class method to limit the bindings referenced by the hash's</div><div class='add'>+  # default_proc</div><div class='add'>+</div><div class='add'>+  def self.hash_of_arrays # :nodoc:</div><div class='add'>+    Hash.new { |h,k| h[k] = [] }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def initialize(size = 0, &amp;block)</div><div class='add'>+    super</div><div class='add'>+</div><div class='add'>+    @enqueued = 0</div><div class='add'>+    @ques = self.class.hash_of_arrays</div><div class='add'>+    @lru = {}</div><div class='add'>+    @key = :"connection_args-#{object_id}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def empty?</div><div class='add'>+    (@created - @enqueued) &gt;= @max</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def length</div><div class='add'>+    @max - @created + @enqueued</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  private</div><div class='add'>+</div><div class='add'>+  def connection_stored? options = {} # :nodoc:</div><div class='add'>+    !@ques[options[:connection_args]].empty?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def fetch_connection options = {} # :nodoc:</div><div class='add'>+    connection_args = options[:connection_args]</div><div class='add'>+</div><div class='add'>+    @enqueued -= 1</div><div class='add'>+    lru_update connection_args</div><div class='add'>+    @ques[connection_args].pop</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def lru_update connection_args # :nodoc:</div><div class='add'>+    @lru.delete connection_args</div><div class='add'>+    @lru[connection_args] = true</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def shutdown_connections # :nodoc:</div><div class='add'>+    @ques.each_key do |key|</div><div class='add'>+      super connection_args: key</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def store_connection obj, options = {} # :nodoc:</div><div class='add'>+    @ques[options[:connection_args]].push obj</div><div class='add'>+    @enqueued += 1</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def try_create options = {} # :nodoc:</div><div class='add'>+    connection_args = options[:connection_args]</div><div class='add'>+</div><div class='add'>+    if @created &gt;= @max &amp;&amp; @enqueued &gt;= 1</div><div class='add'>+      oldest, = @lru.first</div><div class='add'>+      @lru.delete oldest</div><div class='add'>+      @ques[oldest].pop</div><div class='add'>+</div><div class='add'>+      @created -= 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    if @created &lt; @max</div><div class='add'>+      @created += 1</div><div class='add'>+      lru_update connection_args</div><div class='add'>+      return @create_block.call(connection_args)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub.rb<br/>new file mode 100644<br/>index 0000000000..eaaba3fc98<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub.rb</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+require_relative "pub_grub/package"</div><div class='add'>+require_relative "pub_grub/static_package_source"</div><div class='add'>+require_relative "pub_grub/term"</div><div class='add'>+require_relative "pub_grub/version_range"</div><div class='add'>+require_relative "pub_grub/version_constraint"</div><div class='add'>+require_relative "pub_grub/version_union"</div><div class='add'>+require_relative "pub_grub/version_solver"</div><div class='add'>+require_relative "pub_grub/incompatibility"</div><div class='add'>+require_relative 'pub_grub/solve_failure'</div><div class='add'>+require_relative 'pub_grub/failure_writer'</div><div class='add'>+require_relative 'pub_grub/version'</div><div class='add'>+</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class &lt;&lt; self</div><div class='add'>+    attr_writer :logger</div><div class='add'>+</div><div class='add'>+    def logger</div><div class='add'>+      @logger || default_logger</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def default_logger</div><div class='add'>+      require "logger"</div><div class='add'>+</div><div class='add'>+      logger = ::Logger.new(STDERR)</div><div class='add'>+      logger.level = $DEBUG ? ::Logger::DEBUG : ::Logger::WARN</div><div class='add'>+      @logger = logger</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb<br/>new file mode 100644<br/>index 0000000000..2236a97b5b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class Assignment</div><div class='add'>+    attr_reader :term, :cause, :decision_level, :index</div><div class='add'>+    def initialize(term, cause, decision_level, index)</div><div class='add'>+      @term = term</div><div class='add'>+      @cause = cause</div><div class='add'>+      @decision_level = decision_level</div><div class='add'>+      @index = index</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.decision(package, version, decision_level, index)</div><div class='add'>+      term = Term.new(VersionConstraint.exact(package, version), true)</div><div class='add'>+      new(term, :decision, decision_level, index)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def decision?</div><div class='add'>+      cause == :decision</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb<br/>new file mode 100644<br/>index 0000000000..dce20d37ad<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb</a></div><div class='hunk'>@@ -0,0 +1,189 @@</div><div class='add'>+require_relative 'version_constraint'</div><div class='add'>+require_relative 'incompatibility'</div><div class='add'>+</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  # Types:</div><div class='add'>+  #</div><div class='add'>+  # Where possible, Bundler::PubGrub will accept user-defined types, so long as they quack.</div><div class='add'>+  #</div><div class='add'>+  # ## "Package":</div><div class='add'>+  #</div><div class='add'>+  # This class will be used to represent the various packages being solved for.</div><div class='add'>+  # .to_s will be called when displaying errors and debugging info, it should</div><div class='add'>+  # probably return the package's name.</div><div class='add'>+  # It must also have a reasonable definition of #== and #hash</div><div class='add'>+  #</div><div class='add'>+  # Example classes: String ("rails")</div><div class='add'>+  #</div><div class='add'>+  #</div><div class='add'>+  # ## "Version":</div><div class='add'>+  #</div><div class='add'>+  # This class will be used to represent a single version number.</div><div class='add'>+  #</div><div class='add'>+  # Versions don't need to store their associated package, however they will</div><div class='add'>+  # only be compared against other versions of the same package.</div><div class='add'>+  #</div><div class='add'>+  # It must be Comparible (and implement &lt;=&gt; reasonably)</div><div class='add'>+  #</div><div class='add'>+  # Example classes: Gem::Version, Integer</div><div class='add'>+  #</div><div class='add'>+  #</div><div class='add'>+  # ## "Dependency"</div><div class='add'>+  #</div><div class='add'>+  # This class represents the requirement one package has on another. It is</div><div class='add'>+  # returned by dependencies_for(package, version) and will be passed to</div><div class='add'>+  # parse_dependency to convert it to a format Bundler::PubGrub understands.</div><div class='add'>+  #</div><div class='add'>+  # It must also have a reasonable definition of #==</div><div class='add'>+  #</div><div class='add'>+  # Example classes: String ("~&gt; 1.0"), Gem::Requirement</div><div class='add'>+  #</div><div class='add'>+  class BasicPackageSource</div><div class='add'>+    # Override me!</div><div class='add'>+    #</div><div class='add'>+    # This is called per package to find all possible versions of a package.</div><div class='add'>+    #</div><div class='add'>+    # It is called at most once per-package</div><div class='add'>+    #</div><div class='add'>+    # Returns: Array of versions for a package, in preferred order of selection</div><div class='add'>+    def all_versions_for(package)</div><div class='add'>+      raise NotImplementedError</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Override me!</div><div class='add'>+    #</div><div class='add'>+    # Returns: Hash in the form of { package =&gt; requirement, ... }</div><div class='add'>+    def dependencies_for(package, version)</div><div class='add'>+      raise NotImplementedError</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Override me!</div><div class='add'>+    #</div><div class='add'>+    # Convert a (user-defined) dependency into a format Bundler::PubGrub understands.</div><div class='add'>+    #</div><div class='add'>+    # Package is passed to this method but for many implementations is not</div><div class='add'>+    # needed.</div><div class='add'>+    #</div><div class='add'>+    # Returns: either a Bundler::PubGrub::VersionRange, Bundler::PubGrub::VersionUnion, or a</div><div class='add'>+    #   Bundler::PubGrub::VersionConstraint</div><div class='add'>+    def parse_dependency(package, dependency)</div><div class='add'>+      raise NotImplementedError</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Override me!</div><div class='add'>+    #</div><div class='add'>+    # If not overridden, this will call dependencies_for with the root package.</div><div class='add'>+    #</div><div class='add'>+    # Returns: Hash in the form of { package =&gt; requirement, ... } (see dependencies_for)</div><div class='add'>+    def root_dependencies</div><div class='add'>+      dependencies_for(@root_package, @root_version)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Override me (maybe)</div><div class='add'>+    #</div><div class='add'>+    # If not overridden, the order returned by all_versions_for will be used</div><div class='add'>+    #</div><div class='add'>+    # Returns: Array of versions in preferred order</div><div class='add'>+    def sort_versions_by_preferred(package, sorted_versions)</div><div class='add'>+      indexes = @version_indexes[package]</div><div class='add'>+      sorted_versions.sort_by { |version| indexes[version] }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      @root_package = Package.root</div><div class='add'>+      @root_version = Package.root_version</div><div class='add'>+</div><div class='add'>+      @cached_versions = Hash.new do |h,k|</div><div class='add'>+        if k == @root_package</div><div class='add'>+          h[k] = [@root_version]</div><div class='add'>+        else</div><div class='add'>+          h[k] = all_versions_for(k)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      @sorted_versions = Hash.new { |h,k| h[k] = @cached_versions[k].sort }</div><div class='add'>+      @version_indexes = Hash.new { |h,k| h[k] = @cached_versions[k].each.with_index.to_h }</div><div class='add'>+</div><div class='add'>+      @cached_dependencies = Hash.new do |packages, package|</div><div class='add'>+        if package == @root_package</div><div class='add'>+          packages[package] = {</div><div class='add'>+            @root_version =&gt; root_dependencies</div><div class='add'>+          }</div><div class='add'>+        else</div><div class='add'>+          packages[package] = Hash.new do |versions, version|</div><div class='add'>+            versions[version] = dependencies_for(package, version)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def versions_for(package, range=VersionRange.any)</div><div class='add'>+      versions = range.select_versions(@sorted_versions[package])</div><div class='add'>+</div><div class='add'>+      # Conditional avoids (among other things) calling</div><div class='add'>+      # sort_versions_by_preferred with the root package</div><div class='add'>+      if versions.size &gt; 1</div><div class='add'>+        sort_versions_by_preferred(package, versions)</div><div class='add'>+      else</div><div class='add'>+        versions</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def no_versions_incompatibility_for(_package, unsatisfied_term)</div><div class='add'>+      cause = Incompatibility::NoVersions.new(unsatisfied_term)</div><div class='add'>+</div><div class='add'>+      Incompatibility.new([unsatisfied_term], cause: cause)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def incompatibilities_for(package, version)</div><div class='add'>+      package_deps = @cached_dependencies[package]</div><div class='add'>+      sorted_versions = @sorted_versions[package]</div><div class='add'>+      package_deps[version].map do |dep_package, dep_constraint_name|</div><div class='add'>+        low = high = sorted_versions.index(version)</div><div class='add'>+</div><div class='add'>+        # find version low such that all &gt;= low share the same dep</div><div class='add'>+        while low &gt; 0 &amp;&amp;</div><div class='add'>+            package_deps[sorted_versions[low - 1]][dep_package] == dep_constraint_name</div><div class='add'>+          low -= 1</div><div class='add'>+        end</div><div class='add'>+        low =</div><div class='add'>+          if low == 0</div><div class='add'>+            nil</div><div class='add'>+          else</div><div class='add'>+            sorted_versions[low]</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+        # find version high such that all &lt; high share the same dep</div><div class='add'>+        while high &lt; sorted_versions.length &amp;&amp;</div><div class='add'>+            package_deps[sorted_versions[high]][dep_package] == dep_constraint_name</div><div class='add'>+          high += 1</div><div class='add'>+        end</div><div class='add'>+        high =</div><div class='add'>+          if high == sorted_versions.length</div><div class='add'>+            nil</div><div class='add'>+          else</div><div class='add'>+            sorted_versions[high]</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+        range = VersionRange.new(min: low, max: high, include_min: true)</div><div class='add'>+</div><div class='add'>+        self_constraint = VersionConstraint.new(package, range: range)</div><div class='add'>+</div><div class='add'>+        if !@packages.include?(dep_package)</div><div class='add'>+          # no such package -&gt; this version is invalid</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        dep_constraint = parse_dependency(dep_package, dep_constraint_name)</div><div class='add'>+        if !dep_constraint</div><div class='add'>+          # falsey indicates this dependency was invalid</div><div class='add'>+          cause = Bundler::PubGrub::Incompatibility::InvalidDependency.new(dep_package, dep_constraint_name)</div><div class='add'>+          return [Incompatibility.new([Term.new(self_constraint, true)], cause: cause)]</div><div class='add'>+        elsif !dep_constraint.is_a?(VersionConstraint)</div><div class='add'>+          # Upgrade range/union to VersionConstraint</div><div class='add'>+          dep_constraint = VersionConstraint.new(dep_package, range: dep_constraint)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        Incompatibility.new([Term.new(self_constraint, true), Term.new(dep_constraint, false)], cause: :dependency)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb<br/>new file mode 100644<br/>index 0000000000..ee099b23f4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb</a></div><div class='hunk'>@@ -0,0 +1,182 @@</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class FailureWriter</div><div class='add'>+    def initialize(root)</div><div class='add'>+      @root = root</div><div class='add'>+</div><div class='add'>+      # { Incompatibility =&gt; Integer }</div><div class='add'>+      @derivations = {}</div><div class='add'>+</div><div class='add'>+      # [ [ String, Integer or nil ] ]</div><div class='add'>+      @lines = []</div><div class='add'>+</div><div class='add'>+      # { Incompatibility =&gt; Integer }</div><div class='add'>+      @line_numbers = {}</div><div class='add'>+</div><div class='add'>+      count_derivations(root)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def write</div><div class='add'>+      return @root.to_s unless @root.conflict?</div><div class='add'>+</div><div class='add'>+      visit(@root)</div><div class='add'>+</div><div class='add'>+      padding = @line_numbers.empty? ? 0 : "(#{@line_numbers.values.last}) ".length</div><div class='add'>+</div><div class='add'>+      @lines.map do |message, number|</div><div class='add'>+        next "" if message.empty?</div><div class='add'>+</div><div class='add'>+        lead = number ? "(#{number}) " : ""</div><div class='add'>+        lead = lead.ljust(padding)</div><div class='add'>+        message = message.gsub("\n", "\n" + " " * (padding + 2))</div><div class='add'>+        "#{lead}#{message}"</div><div class='add'>+      end.join("\n")</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def write_line(incompatibility, message, numbered:)</div><div class='add'>+      if numbered</div><div class='add'>+        number = @line_numbers.length + 1</div><div class='add'>+        @line_numbers[incompatibility] = number</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      @lines &lt;&lt; [message, number]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def visit(incompatibility, conclusion: false)</div><div class='add'>+      raise unless incompatibility.conflict?</div><div class='add'>+</div><div class='add'>+      numbered = conclusion || @derivations[incompatibility] &gt; 1;</div><div class='add'>+      conjunction = conclusion || incompatibility == @root ? "So," : "And"</div><div class='add'>+</div><div class='add'>+      cause = incompatibility.cause</div><div class='add'>+</div><div class='add'>+      if cause.conflict.conflict? &amp;&amp; cause.other.conflict?</div><div class='add'>+        conflict_line = @line_numbers[cause.conflict]</div><div class='add'>+        other_line = @line_numbers[cause.other]</div><div class='add'>+</div><div class='add'>+        if conflict_line &amp;&amp; other_line</div><div class='add'>+          write_line(</div><div class='add'>+            incompatibility,</div><div class='add'>+            "Because #{cause.conflict} (#{conflict_line})\nand #{cause.other} (#{other_line}),\n#{incompatibility}.",</div><div class='add'>+            numbered: numbered</div><div class='add'>+          )</div><div class='add'>+        elsif conflict_line || other_line</div><div class='add'>+          with_line    = conflict_line ? cause.conflict : cause.other</div><div class='add'>+          without_line = conflict_line ? cause.other : cause.conflict</div><div class='add'>+          line = @line_numbers[with_line]</div><div class='add'>+</div><div class='add'>+          visit(without_line);</div><div class='add'>+          write_line(</div><div class='add'>+            incompatibility,</div><div class='add'>+            "#{conjunction} because #{with_line} (#{line}),\n#{incompatibility}.",</div><div class='add'>+            numbered: numbered</div><div class='add'>+          )</div><div class='add'>+        else</div><div class='add'>+          single_line_conflict = single_line?(cause.conflict.cause)</div><div class='add'>+          single_line_other    = single_line?(cause.other.cause)</div><div class='add'>+</div><div class='add'>+          if single_line_conflict || single_line_other</div><div class='add'>+            first  = single_line_other ? cause.conflict : cause.other</div><div class='add'>+            second = single_line_other ? cause.other : cause.conflict</div><div class='add'>+            visit(first)</div><div class='add'>+            visit(second)</div><div class='add'>+            write_line(</div><div class='add'>+              incompatibility,</div><div class='add'>+              "Thus, #{incompatibility}.",</div><div class='add'>+              numbered: numbered</div><div class='add'>+            )</div><div class='add'>+          else</div><div class='add'>+            visit(cause.conflict, conclusion: true)</div><div class='add'>+            @lines &lt;&lt; ["", nil]</div><div class='add'>+            visit(cause.other)</div><div class='add'>+</div><div class='add'>+            write_line(</div><div class='add'>+              incompatibility,</div><div class='add'>+              "#{conjunction} because #{cause.conflict} (#{@line_numbers[cause.conflict]}),\n#{incompatibility}.",</div><div class='add'>+              numbered: numbered</div><div class='add'>+            )</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      elsif cause.conflict.conflict? || cause.other.conflict?</div><div class='add'>+        derived = cause.conflict.conflict? ? cause.conflict : cause.other</div><div class='add'>+        ext     = cause.conflict.conflict? ? cause.other : cause.conflict</div><div class='add'>+</div><div class='add'>+        derived_line = @line_numbers[derived]</div><div class='add'>+        if derived_line</div><div class='add'>+          write_line(</div><div class='add'>+            incompatibility,</div><div class='add'>+            "Because #{ext}\nand #{derived} (#{derived_line}),\n#{incompatibility}.",</div><div class='add'>+            numbered: numbered</div><div class='add'>+          )</div><div class='add'>+        elsif collapsible?(derived)</div><div class='add'>+          derived_cause = derived.cause</div><div class='add'>+          if derived_cause.conflict.conflict?</div><div class='add'>+            collapsed_derived = derived_cause.conflict</div><div class='add'>+            collapsed_ext = derived_cause.other</div><div class='add'>+          else</div><div class='add'>+            collapsed_derived = derived_cause.other</div><div class='add'>+            collapsed_ext = derived_cause.conflict</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          visit(collapsed_derived)</div><div class='add'>+</div><div class='add'>+          write_line(</div><div class='add'>+            incompatibility,</div><div class='add'>+            "#{conjunction} because #{collapsed_ext}\nand #{ext},\n#{incompatibility}.",</div><div class='add'>+            numbered: numbered</div><div class='add'>+          )</div><div class='add'>+        else</div><div class='add'>+          visit(derived)</div><div class='add'>+          write_line(</div><div class='add'>+            incompatibility,</div><div class='add'>+            "#{conjunction} because #{ext},\n#{incompatibility}.",</div><div class='add'>+            numbered: numbered</div><div class='add'>+          )</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        write_line(</div><div class='add'>+          incompatibility,</div><div class='add'>+          "Because #{cause.conflict}\nand #{cause.other},\n#{incompatibility}.",</div><div class='add'>+          numbered: numbered</div><div class='add'>+        )</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def single_line?(cause)</div><div class='add'>+      !cause.conflict.conflict? &amp;&amp; !cause.other.conflict?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def collapsible?(incompatibility)</div><div class='add'>+      return false if @derivations[incompatibility] &gt; 1</div><div class='add'>+</div><div class='add'>+      cause = incompatibility.cause</div><div class='add'>+      # If incompatibility is derived from two derived incompatibilities,</div><div class='add'>+      # there are too many transitive causes to display concisely.</div><div class='add'>+      return false if cause.conflict.conflict? &amp;&amp; cause.other.conflict?</div><div class='add'>+</div><div class='add'>+      # If incompatibility is derived from two external incompatibilities, it</div><div class='add'>+      # tends to be confusing to collapse it.</div><div class='add'>+      return false unless cause.conflict.conflict? || cause.other.conflict?</div><div class='add'>+</div><div class='add'>+      # If incompatibility's internal cause is numbered, collapsing it would</div><div class='add'>+      # get too noisy.</div><div class='add'>+      complex = cause.conflict.conflict? ? cause.conflict : cause.other</div><div class='add'>+</div><div class='add'>+      !@line_numbers.has_key?(complex)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def count_derivations(incompatibility)</div><div class='add'>+      if @derivations.has_key?(incompatibility)</div><div class='add'>+        @derivations[incompatibility] += 1</div><div class='add'>+      else</div><div class='add'>+        @derivations[incompatibility] = 1</div><div class='add'>+        if incompatibility.conflict?</div><div class='add'>+          cause = incompatibility.cause</div><div class='add'>+          count_derivations(cause.conflict)</div><div class='add'>+          count_derivations(cause.other)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb<br/>new file mode 100644<br/>index 0000000000..239eaf3401<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb</a></div><div class='hunk'>@@ -0,0 +1,150 @@</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class Incompatibility</div><div class='add'>+    ConflictCause = Struct.new(:incompatibility, :satisfier) do</div><div class='add'>+      alias_method :conflict, :incompatibility</div><div class='add'>+      alias_method :other, :satisfier</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    InvalidDependency = Struct.new(:package, :constraint) do</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    NoVersions = Struct.new(:constraint) do</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    attr_reader :terms, :cause</div><div class='add'>+</div><div class='add'>+    def initialize(terms, cause:, custom_explanation: nil)</div><div class='add'>+      @cause = cause</div><div class='add'>+      @terms = cleanup_terms(terms)</div><div class='add'>+      @custom_explanation = custom_explanation</div><div class='add'>+</div><div class='add'>+      if cause == :dependency &amp;&amp; @terms.length != 2</div><div class='add'>+        raise ArgumentError, "a dependency Incompatibility must have exactly two terms. Got #{@terms.inspect}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def hash</div><div class='add'>+      cause.hash ^ terms.hash</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def eql?(other)</div><div class='add'>+      cause.eql?(other.cause) &amp;&amp;</div><div class='add'>+        terms.eql?(other.terms)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def failure?</div><div class='add'>+      terms.empty? || (terms.length == 1 &amp;&amp; Package.root?(terms[0].package) &amp;&amp; terms[0].positive?)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def conflict?</div><div class='add'>+      ConflictCause === cause</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns all external incompatibilities in this incompatibility's</div><div class='add'>+    # derivation graph</div><div class='add'>+    def external_incompatibilities</div><div class='add'>+      if conflict?</div><div class='add'>+        [</div><div class='add'>+          cause.conflict,</div><div class='add'>+          cause.other</div><div class='add'>+        ].flat_map(&amp;:external_incompatibilities)</div><div class='add'>+      else</div><div class='add'>+        [this]</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def to_s</div><div class='add'>+      return @custom_explanation if @custom_explanation</div><div class='add'>+</div><div class='add'>+      case cause</div><div class='add'>+      when :root</div><div class='add'>+        "(root dependency)"</div><div class='add'>+      when :dependency</div><div class='add'>+        "#{terms[0].to_s(allow_every: true)} depends on #{terms[1].invert}"</div><div class='add'>+      when Bundler::PubGrub::Incompatibility::InvalidDependency</div><div class='add'>+        "#{terms[0].to_s(allow_every: true)} depends on unknown package #{cause.package}"</div><div class='add'>+      when Bundler::PubGrub::Incompatibility::NoVersions</div><div class='add'>+        "no versions satisfy #{cause.constraint}"</div><div class='add'>+      when Bundler::PubGrub::Incompatibility::ConflictCause</div><div class='add'>+        if failure?</div><div class='add'>+          "version solving has failed"</div><div class='add'>+        elsif terms.length == 1</div><div class='add'>+          term = terms[0]</div><div class='add'>+          if term.positive?</div><div class='add'>+            if term.constraint.any?</div><div class='add'>+              "#{term.package} cannot be used"</div><div class='add'>+            else</div><div class='add'>+              "#{term.to_s(allow_every: true)} cannot be used"</div><div class='add'>+            end</div><div class='add'>+          else</div><div class='add'>+            "#{term.invert} is required"</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          if terms.all?(&amp;:positive?)</div><div class='add'>+            if terms.length == 2</div><div class='add'>+              "#{terms[0].to_s(allow_every: true)} is incompatible with #{terms[1]}"</div><div class='add'>+            else</div><div class='add'>+              "one of #{terms.map(&amp;:to_s).join(" or ")} must be false"</div><div class='add'>+            end</div><div class='add'>+          elsif terms.all?(&amp;:negative?)</div><div class='add'>+            if terms.length == 2</div><div class='add'>+              "either #{terms[0].invert} or #{terms[1].invert}"</div><div class='add'>+            else</div><div class='add'>+              "one of #{terms.map(&amp;:invert).join(" or ")} must be true";</div><div class='add'>+            end</div><div class='add'>+          else</div><div class='add'>+            positive = terms.select(&amp;:positive?)</div><div class='add'>+            negative = terms.select(&amp;:negative?).map(&amp;:invert)</div><div class='add'>+</div><div class='add'>+            if positive.length == 1</div><div class='add'>+              "#{positive[0].to_s(allow_every: true)} requires #{negative.join(" or ")}"</div><div class='add'>+            else</div><div class='add'>+              "if #{positive.join(" and ")} then #{negative.join(" or ")}"</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        raise "unhandled cause: #{cause.inspect}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def inspect</div><div class='add'>+      "#&lt;#{self.class} #{to_s}&gt;"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def pretty_print(q)</div><div class='add'>+      q.group 2, "#&lt;#{self.class}", "&gt;" do</div><div class='add'>+        q.breakable</div><div class='add'>+        q.text to_s</div><div class='add'>+</div><div class='add'>+        q.breakable</div><div class='add'>+        q.text " caused by "</div><div class='add'>+        q.pp @cause</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def cleanup_terms(terms)</div><div class='add'>+      terms.each do |term|</div><div class='add'>+        raise "#{term.inspect} must be a term" unless term.is_a?(Term)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if terms.length != 1 &amp;&amp; ConflictCause === cause</div><div class='add'>+        terms = terms.reject do |term|</div><div class='add'>+          term.positive? &amp;&amp; Package.root?(term.package)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Optimized simple cases</div><div class='add'>+      return terms if terms.length &lt;= 1</div><div class='add'>+      return terms if terms.length == 2 &amp;&amp; terms[0].package != terms[1].package</div><div class='add'>+</div><div class='add'>+      terms.group_by(&amp;:package).map do |package, common_terms|</div><div class='add'>+        common_terms.inject do |acc, term|</div><div class='add'>+          acc.intersect(term)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb<br/>new file mode 100644<br/>index 0000000000..efb9d3da16<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb</a></div><div class='hunk'>@@ -0,0 +1,43 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class Package</div><div class='add'>+</div><div class='add'>+    attr_reader :name</div><div class='add'>+</div><div class='add'>+    def initialize(name)</div><div class='add'>+      @name = name</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def inspect</div><div class='add'>+      "#&lt;#{self.class} #{name.inspect}&gt;"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def &lt;=&gt;(other)</div><div class='add'>+      name &lt;=&gt; other.name</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    ROOT = Package.new(:root)</div><div class='add'>+    ROOT_VERSION = 0</div><div class='add'>+</div><div class='add'>+    def self.root</div><div class='add'>+      ROOT</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.root_version</div><div class='add'>+      ROOT_VERSION</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.root?(package)</div><div class='add'>+      if package.respond_to?(:root?)</div><div class='add'>+        package.root?</div><div class='add'>+      else</div><div class='add'>+        package == root</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def to_s</div><div class='add'>+      name.to_s</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb<br/>new file mode 100644<br/>index 0000000000..4c4b8ca844<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb</a></div><div class='hunk'>@@ -0,0 +1,121 @@</div><div class='add'>+require_relative 'assignment'</div><div class='add'>+</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class PartialSolution</div><div class='add'>+    attr_reader :assignments, :decisions</div><div class='add'>+    attr_reader :attempted_solutions</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      reset!</div><div class='add'>+</div><div class='add'>+      @attempted_solutions = 1</div><div class='add'>+      @backtracking = false</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def decision_level</div><div class='add'>+      @decisions.length</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def relation(term)</div><div class='add'>+      package = term.package</div><div class='add'>+      return :overlap if !@terms.key?(package)</div><div class='add'>+</div><div class='add'>+      @relation_cache[package][term] ||=</div><div class='add'>+        @terms[package].relation(term)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def satisfies?(term)</div><div class='add'>+      relation(term) == :subset</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def derive(term, cause)</div><div class='add'>+      add_assignment(Assignment.new(term, cause, decision_level, assignments.length))</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def satisfier(term)</div><div class='add'>+      assignment =</div><div class='add'>+        @assignments_by[term.package].bsearch do |assignment_by|</div><div class='add'>+          @cumulative_assignments[assignment_by].satisfies?(term)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      assignment || raise("#{term} unsatisfied")</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # A list of unsatisfied terms</div><div class='add'>+    def unsatisfied</div><div class='add'>+      @required.keys.reject do |package|</div><div class='add'>+        @decisions.key?(package)</div><div class='add'>+      end.map do |package|</div><div class='add'>+        @terms[package]</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def decide(package, version)</div><div class='add'>+      @attempted_solutions += 1 if @backtracking</div><div class='add'>+      @backtracking = false;</div><div class='add'>+</div><div class='add'>+      decisions[package] = version</div><div class='add'>+      assignment = Assignment.decision(package, version, decision_level, assignments.length)</div><div class='add'>+      add_assignment(assignment)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def backtrack(previous_level)</div><div class='add'>+      @backtracking = true</div><div class='add'>+</div><div class='add'>+      new_assignments = assignments.select do |assignment|</div><div class='add'>+        assignment.decision_level &lt;= previous_level</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      new_decisions = Hash[decisions.first(previous_level)]</div><div class='add'>+</div><div class='add'>+      reset!</div><div class='add'>+</div><div class='add'>+      @decisions = new_decisions</div><div class='add'>+</div><div class='add'>+      new_assignments.each do |assignment|</div><div class='add'>+        add_assignment(assignment)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def reset!</div><div class='add'>+      # { Array&lt;Assignment&gt; }</div><div class='add'>+      @assignments = []</div><div class='add'>+</div><div class='add'>+      # { Package =&gt; Array&lt;Assignment&gt; }</div><div class='add'>+      @assignments_by = Hash.new { |h,k| h[k] = [] }</div><div class='add'>+      @cumulative_assignments = {}.compare_by_identity</div><div class='add'>+</div><div class='add'>+      # { Package =&gt; Package::Version }</div><div class='add'>+      @decisions = {}</div><div class='add'>+</div><div class='add'>+      # { Package =&gt; Term }</div><div class='add'>+      @terms = {}</div><div class='add'>+      @relation_cache = Hash.new { |h,k| h[k] = {} }</div><div class='add'>+</div><div class='add'>+      # { Package =&gt; Boolean }</div><div class='add'>+      @required = {}</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def add_assignment(assignment)</div><div class='add'>+      term = assignment.term</div><div class='add'>+      package = term.package</div><div class='add'>+</div><div class='add'>+      @assignments &lt;&lt; assignment</div><div class='add'>+      @assignments_by[package] &lt;&lt; assignment</div><div class='add'>+</div><div class='add'>+      @required[package] = true if term.positive?</div><div class='add'>+</div><div class='add'>+      if @terms.key?(package)</div><div class='add'>+        old_term = @terms[package]</div><div class='add'>+        @terms[package] = old_term.intersect(term)</div><div class='add'>+      else</div><div class='add'>+        @terms[package] = term</div><div class='add'>+      end</div><div class='add'>+      @relation_cache[package].clear</div><div class='add'>+</div><div class='add'>+      @cumulative_assignments[assignment] = @terms[package]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb<br/>new file mode 100644<br/>index 0000000000..245c23be22<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb</a></div><div class='hunk'>@@ -0,0 +1,45 @@</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  module RubyGems</div><div class='add'>+    extend self</div><div class='add'>+</div><div class='add'>+    def requirement_to_range(requirement)</div><div class='add'>+      ranges = requirement.requirements.map do |(op, ver)|</div><div class='add'>+        case op</div><div class='add'>+        when "~&gt;"</div><div class='add'>+          name = "~&gt; #{ver}"</div><div class='add'>+          bump = ver.class.new(ver.bump.to_s + ".A")</div><div class='add'>+          VersionRange.new(name: name, min: ver, max: bump, include_min: true)</div><div class='add'>+        when "&gt;"</div><div class='add'>+          VersionRange.new(min: ver)</div><div class='add'>+        when "&gt;="</div><div class='add'>+          VersionRange.new(min: ver, include_min: true)</div><div class='add'>+        when "&lt;"</div><div class='add'>+          VersionRange.new(max: ver)</div><div class='add'>+        when "&lt;="</div><div class='add'>+          VersionRange.new(max: ver, include_max: true)</div><div class='add'>+        when "="</div><div class='add'>+          VersionRange.new(min: ver, max: ver, include_min: true, include_max: true)</div><div class='add'>+        when "!="</div><div class='add'>+          VersionRange.new(min: ver, max: ver, include_min: true, include_max: true).invert</div><div class='add'>+        else</div><div class='add'>+          raise "bad version specifier: #{op}"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      ranges.inject(&amp;:intersect)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def requirement_to_constraint(package, requirement)</div><div class='add'>+      Bundler::PubGrub::VersionConstraint.new(package, range: requirement_to_range(requirement))</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_range(dep)</div><div class='add'>+      requirement_to_range(Gem::Requirement.new(dep))</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_constraint(package, dep)</div><div class='add'>+      range = parse_range(dep)</div><div class='add'>+      Bundler::PubGrub::VersionConstraint.new(package, range: range)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb<br/>new file mode 100644<br/>index 0000000000..961a7a7c0c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb</a></div><div class='hunk'>@@ -0,0 +1,19 @@</div><div class='add'>+require_relative 'failure_writer'</div><div class='add'>+</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class SolveFailure &lt; StandardError</div><div class='add'>+    attr_reader :incompatibility</div><div class='add'>+</div><div class='add'>+    def initialize(incompatibility)</div><div class='add'>+      @incompatibility = incompatibility</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def to_s</div><div class='add'>+      "Could not find compatible versions\n\n#{explanation}"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def explanation</div><div class='add'>+      @explanation ||= FailureWriter.new(@incompatibility).write</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb<br/>new file mode 100644<br/>index 0000000000..4bf61461b2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb</a></div><div class='hunk'>@@ -0,0 +1,60 @@</div><div class='add'>+require_relative 'package'</div><div class='add'>+require_relative 'version_constraint'</div><div class='add'>+require_relative 'incompatibility'</div><div class='add'>+require_relative 'basic_package_source'</div><div class='add'>+</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class StaticPackageSource &lt; BasicPackageSource</div><div class='add'>+    class DSL</div><div class='add'>+      def initialize(packages, root_deps)</div><div class='add'>+        @packages = packages</div><div class='add'>+        @root_deps = root_deps</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def root(deps:)</div><div class='add'>+        @root_deps.update(deps)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def add(name, version, deps: {})</div><div class='add'>+        version = Gem::Version.new(version)</div><div class='add'>+        @packages[name] ||= {}</div><div class='add'>+        raise ArgumentError, "#{name} #{version} declared twice" if @packages[name].key?(version)</div><div class='add'>+        @packages[name][version] = clean_deps(name, version, deps)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      # Exclude redundant self-referencing dependencies</div><div class='add'>+      def clean_deps(name, version, deps)</div><div class='add'>+        deps.reject {|dep_name, req| name == dep_name &amp;&amp; Bundler::PubGrub::RubyGems.parse_range(req).include?(version) }</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      @root_deps = {}</div><div class='add'>+      @packages = {}</div><div class='add'>+</div><div class='add'>+      yield DSL.new(@packages, @root_deps)</div><div class='add'>+</div><div class='add'>+      super()</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def all_versions_for(package)</div><div class='add'>+      @packages[package].keys</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def root_dependencies</div><div class='add'>+      @root_deps</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def dependencies_for(package, version)</div><div class='add'>+      @packages[package][version]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_dependency(package, dependency)</div><div class='add'>+      return false unless @packages.key?(package)</div><div class='add'>+</div><div class='add'>+      Bundler::PubGrub::RubyGems.parse_constraint(package, dependency)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb<br/>new file mode 100644<br/>index 0000000000..1d0f763378<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb</a></div><div class='hunk'>@@ -0,0 +1,105 @@</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class Term</div><div class='add'>+    attr_reader :package, :constraint, :positive</div><div class='add'>+</div><div class='add'>+    def initialize(constraint, positive)</div><div class='add'>+      @constraint = constraint</div><div class='add'>+      @package = @constraint.package</div><div class='add'>+      @positive = positive</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def to_s(allow_every: false)</div><div class='add'>+      if positive</div><div class='add'>+        @constraint.to_s(allow_every: allow_every)</div><div class='add'>+      else</div><div class='add'>+        "not #{@constraint}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def hash</div><div class='add'>+      constraint.hash ^ positive.hash</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def eql?(other)</div><div class='add'>+      positive == other.positive &amp;&amp;</div><div class='add'>+        constraint.eql?(other.constraint)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def invert</div><div class='add'>+      self.class.new(@constraint, !@positive)</div><div class='add'>+    end</div><div class='add'>+    alias_method :inverse, :invert</div><div class='add'>+</div><div class='add'>+    def intersect(other)</div><div class='add'>+      raise ArgumentError, "packages must match" if package != other.package</div><div class='add'>+</div><div class='add'>+      if positive? &amp;&amp; other.positive?</div><div class='add'>+        self.class.new(constraint.intersect(other.constraint), true)</div><div class='add'>+      elsif negative? &amp;&amp; other.negative?</div><div class='add'>+        self.class.new(constraint.union(other.constraint), false)</div><div class='add'>+      else</div><div class='add'>+        positive = positive? ? self : other</div><div class='add'>+        negative = negative? ? self : other</div><div class='add'>+        self.class.new(positive.constraint.intersect(negative.constraint.invert), true)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def difference(other)</div><div class='add'>+      intersect(other.invert)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def relation(other)</div><div class='add'>+      if positive? &amp;&amp; other.positive?</div><div class='add'>+        constraint.relation(other.constraint)</div><div class='add'>+      elsif negative? &amp;&amp; other.positive?</div><div class='add'>+        if constraint.allows_all?(other.constraint)</div><div class='add'>+          :disjoint</div><div class='add'>+        else</div><div class='add'>+          :overlap</div><div class='add'>+        end</div><div class='add'>+      elsif positive? &amp;&amp; other.negative?</div><div class='add'>+        if !other.constraint.allows_any?(constraint)</div><div class='add'>+          :subset</div><div class='add'>+        elsif other.constraint.allows_all?(constraint)</div><div class='add'>+          :disjoint</div><div class='add'>+        else</div><div class='add'>+          :overlap</div><div class='add'>+        end</div><div class='add'>+      elsif negative? &amp;&amp; other.negative?</div><div class='add'>+        if constraint.allows_all?(other.constraint)</div><div class='add'>+          :subset</div><div class='add'>+        else</div><div class='add'>+          :overlap</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        raise</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def normalized_constraint</div><div class='add'>+      @normalized_constraint ||= positive ? constraint : constraint.invert</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def satisfies?(other)</div><div class='add'>+      raise ArgumentError, "packages must match" unless package == other.package</div><div class='add'>+</div><div class='add'>+      relation(other) == :subset</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def positive?</div><div class='add'>+      @positive</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def negative?</div><div class='add'>+      !positive?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def empty?</div><div class='add'>+      @empty ||= normalized_constraint.empty?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def inspect</div><div class='add'>+      "#&lt;#{self.class} #{self}&gt;"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb<br/>new file mode 100644<br/>index 0000000000..d7984b3863<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  VERSION = "0.5.0"</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb<br/>new file mode 100644<br/>index 0000000000..b71f3eaf53<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb</a></div><div class='hunk'>@@ -0,0 +1,129 @@</div><div class='add'>+require_relative 'version_range'</div><div class='add'>+</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class VersionConstraint</div><div class='add'>+    attr_reader :package, :range</div><div class='add'>+</div><div class='add'>+    # @param package [Bundler::PubGrub::Package]</div><div class='add'>+    # @param range [Bundler::PubGrub::VersionRange]</div><div class='add'>+    def initialize(package, range: nil)</div><div class='add'>+      @package = package</div><div class='add'>+      @range = range</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def hash</div><div class='add'>+      package.hash ^ range.hash</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def ==(other)</div><div class='add'>+      package == other.package &amp;&amp;</div><div class='add'>+        range == other.range</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def eql?(other)</div><div class='add'>+      package.eql?(other.package) &amp;&amp;</div><div class='add'>+        range.eql?(other.range)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      def exact(package, version)</div><div class='add'>+        range = VersionRange.new(min: version, max: version, include_min: true, include_max: true)</div><div class='add'>+        new(package, range: range)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def any(package)</div><div class='add'>+        new(package, range: VersionRange.any)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def empty(package)</div><div class='add'>+        new(package, range: VersionRange.empty)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def intersect(other)</div><div class='add'>+      unless package == other.package</div><div class='add'>+        raise ArgumentError, "Can only intersect between VersionConstraint of the same package"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      self.class.new(package, range: range.intersect(other.range))</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def union(other)</div><div class='add'>+      unless package == other.package</div><div class='add'>+        raise ArgumentError, "Can only intersect between VersionConstraint of the same package"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      self.class.new(package, range: range.union(other.range))</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def invert</div><div class='add'>+      new_range = range.invert</div><div class='add'>+      self.class.new(package, range: new_range)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def difference(other)</div><div class='add'>+      intersect(other.invert)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def allows_all?(other)</div><div class='add'>+      range.allows_all?(other.range)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def allows_any?(other)</div><div class='add'>+      range.intersects?(other.range)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def subset?(other)</div><div class='add'>+      other.allows_all?(self)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def overlap?(other)</div><div class='add'>+      other.allows_any?(self)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def disjoint?(other)</div><div class='add'>+      !overlap?(other)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def relation(other)</div><div class='add'>+      if subset?(other)</div><div class='add'>+        :subset</div><div class='add'>+      elsif overlap?(other)</div><div class='add'>+        :overlap</div><div class='add'>+      else</div><div class='add'>+        :disjoint</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def to_s(allow_every: false)</div><div class='add'>+      if Package.root?(package)</div><div class='add'>+        package.to_s</div><div class='add'>+      elsif allow_every &amp;&amp; any?</div><div class='add'>+        "every version of #{package}"</div><div class='add'>+      else</div><div class='add'>+        "#{package} #{constraint_string}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def constraint_string</div><div class='add'>+      if any?</div><div class='add'>+        "&gt;= 0"</div><div class='add'>+      else</div><div class='add'>+        range.to_s</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def empty?</div><div class='add'>+      range.empty?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Does this match every version of the package</div><div class='add'>+    def any?</div><div class='add'>+      range.any?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def inspect</div><div class='add'>+      "#&lt;#{self.class} #{self}&gt;"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb<br/>new file mode 100644<br/>index 0000000000..8d73c3f7b5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb</a></div><div class='hunk'>@@ -0,0 +1,411 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class VersionRange</div><div class='add'>+    attr_reader :min, :max, :include_min, :include_max</div><div class='add'>+</div><div class='add'>+    alias_method :include_min?, :include_min</div><div class='add'>+    alias_method :include_max?, :include_max</div><div class='add'>+</div><div class='add'>+    class Empty &lt; VersionRange</div><div class='add'>+      undef_method :min, :max</div><div class='add'>+      undef_method :include_min, :include_min?</div><div class='add'>+      undef_method :include_max, :include_max?</div><div class='add'>+</div><div class='add'>+      def initialize</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def empty?</div><div class='add'>+        true</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def eql?(other)</div><div class='add'>+        other.empty?</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def hash</div><div class='add'>+        [].hash</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def intersects?(_)</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def intersect(other)</div><div class='add'>+        self</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def allows_all?(other)</div><div class='add'>+        other.empty?</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def include?(_)</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def any?</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def to_s</div><div class='add'>+        "(no versions)"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def ==(other)</div><div class='add'>+        other.class == self.class</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def invert</div><div class='add'>+        VersionRange.any</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def select_versions(_)</div><div class='add'>+        []</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    EMPTY = Empty.new</div><div class='add'>+    Empty.singleton_class.undef_method(:new)</div><div class='add'>+</div><div class='add'>+    def self.empty</div><div class='add'>+      EMPTY</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.any</div><div class='add'>+      new</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def initialize(min: nil, max: nil, include_min: false, include_max: false, name: nil)</div><div class='add'>+      @min = min</div><div class='add'>+      @max = max</div><div class='add'>+      @include_min = include_min</div><div class='add'>+      @include_max = include_max</div><div class='add'>+      @name = name</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def hash</div><div class='add'>+      @hash ||= min.hash ^ max.hash ^ include_min.hash ^ include_max.hash</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def eql?(other)</div><div class='add'>+      if other.is_a?(VersionRange)</div><div class='add'>+        !other.empty? &amp;&amp;</div><div class='add'>+          min.eql?(other.min) &amp;&amp;</div><div class='add'>+          max.eql?(other.max) &amp;&amp;</div><div class='add'>+          include_min.eql?(other.include_min) &amp;&amp;</div><div class='add'>+          include_max.eql?(other.include_max)</div><div class='add'>+      else</div><div class='add'>+        ranges.eql?(other.ranges)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def ranges</div><div class='add'>+      [self]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def include?(version)</div><div class='add'>+      compare_version(version) == 0</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Partitions passed versions into [lower, within, higher]</div><div class='add'>+    #</div><div class='add'>+    # versions must be sorted</div><div class='add'>+    def partition_versions(versions)</div><div class='add'>+      min_index =</div><div class='add'>+        if !min || versions.empty?</div><div class='add'>+          0</div><div class='add'>+        elsif include_min?</div><div class='add'>+          (0..versions.size).bsearch { |i| versions[i].nil? || versions[i] &gt;= min }</div><div class='add'>+        else</div><div class='add'>+          (0..versions.size).bsearch { |i| versions[i].nil? || versions[i] &gt; min }</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      lower = versions.slice(0, min_index)</div><div class='add'>+      versions = versions.slice(min_index, versions.size)</div><div class='add'>+</div><div class='add'>+      max_index =</div><div class='add'>+        if !max || versions.empty?</div><div class='add'>+          versions.size</div><div class='add'>+        elsif include_max?</div><div class='add'>+          (0..versions.size).bsearch { |i| versions[i].nil? || versions[i] &gt; max }</div><div class='add'>+        else</div><div class='add'>+          (0..versions.size).bsearch { |i| versions[i].nil? || versions[i] &gt;= max }</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      [</div><div class='add'>+        lower,</div><div class='add'>+        versions.slice(0, max_index),</div><div class='add'>+        versions.slice(max_index, versions.size)</div><div class='add'>+      ]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns versions which are included by this range.</div><div class='add'>+    #</div><div class='add'>+    # versions must be sorted</div><div class='add'>+    def select_versions(versions)</div><div class='add'>+      return versions if any?</div><div class='add'>+</div><div class='add'>+      partition_versions(versions)[1]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def compare_version(version)</div><div class='add'>+      if min</div><div class='add'>+        case version &lt;=&gt; min</div><div class='add'>+        when -1</div><div class='add'>+          return -1</div><div class='add'>+        when 0</div><div class='add'>+          return -1 if !include_min</div><div class='add'>+        when 1</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if max</div><div class='add'>+        case version &lt;=&gt; max</div><div class='add'>+        when -1</div><div class='add'>+        when 0</div><div class='add'>+          return 1 if !include_max</div><div class='add'>+        when 1</div><div class='add'>+          return 1</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      0</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def strictly_lower?(other)</div><div class='add'>+      return false if !max || !other.min</div><div class='add'>+</div><div class='add'>+      case max &lt;=&gt; other.min</div><div class='add'>+      when 0</div><div class='add'>+        !include_max || !other.include_min</div><div class='add'>+      when -1</div><div class='add'>+        true</div><div class='add'>+      when 1</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def strictly_higher?(other)</div><div class='add'>+      other.strictly_lower?(self)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def intersects?(other)</div><div class='add'>+      return false if other.empty?</div><div class='add'>+      return other.intersects?(self) if other.is_a?(VersionUnion)</div><div class='add'>+      !strictly_lower?(other) &amp;&amp; !strictly_higher?(other)</div><div class='add'>+    end</div><div class='add'>+    alias_method :allows_any?, :intersects?</div><div class='add'>+</div><div class='add'>+    def intersect(other)</div><div class='add'>+      return other if other.empty?</div><div class='add'>+      return other.intersect(self) if other.is_a?(VersionUnion)</div><div class='add'>+</div><div class='add'>+      min_range =</div><div class='add'>+        if !min</div><div class='add'>+          other</div><div class='add'>+        elsif !other.min</div><div class='add'>+          self</div><div class='add'>+        else</div><div class='add'>+          case min &lt;=&gt; other.min</div><div class='add'>+          when 0</div><div class='add'>+            include_min ? other : self</div><div class='add'>+          when -1</div><div class='add'>+            other</div><div class='add'>+          when 1</div><div class='add'>+            self</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      max_range =</div><div class='add'>+        if !max</div><div class='add'>+          other</div><div class='add'>+        elsif !other.max</div><div class='add'>+          self</div><div class='add'>+        else</div><div class='add'>+          case max &lt;=&gt; other.max</div><div class='add'>+          when 0</div><div class='add'>+            include_max ? other : self</div><div class='add'>+          when -1</div><div class='add'>+            self</div><div class='add'>+          when 1</div><div class='add'>+            other</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      if !min_range.equal?(max_range) &amp;&amp; min_range.min &amp;&amp; max_range.max</div><div class='add'>+        case min_range.min &lt;=&gt; max_range.max</div><div class='add'>+        when -1</div><div class='add'>+        when 0</div><div class='add'>+          if !min_range.include_min || !max_range.include_max</div><div class='add'>+            return EMPTY</div><div class='add'>+          end</div><div class='add'>+        when 1</div><div class='add'>+          return EMPTY</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      VersionRange.new(</div><div class='add'>+        min: min_range.min,</div><div class='add'>+        include_min: min_range.include_min,</div><div class='add'>+        max: max_range.max,</div><div class='add'>+        include_max: max_range.include_max</div><div class='add'>+      )</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # The span covered by two ranges</div><div class='add'>+    #</div><div class='add'>+    # If self and other are contiguous, this builds a union of the two ranges.</div><div class='add'>+    # (if they aren't you are probably calling the wrong method)</div><div class='add'>+    def span(other)</div><div class='add'>+      return self if other.empty?</div><div class='add'>+</div><div class='add'>+      min_range =</div><div class='add'>+        if !min</div><div class='add'>+          self</div><div class='add'>+        elsif !other.min</div><div class='add'>+          other</div><div class='add'>+        else</div><div class='add'>+          case min &lt;=&gt; other.min</div><div class='add'>+          when 0</div><div class='add'>+            include_min ? self : other</div><div class='add'>+          when -1</div><div class='add'>+            self</div><div class='add'>+          when 1</div><div class='add'>+            other</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      max_range =</div><div class='add'>+        if !max</div><div class='add'>+          self</div><div class='add'>+        elsif !other.max</div><div class='add'>+          other</div><div class='add'>+        else</div><div class='add'>+          case max &lt;=&gt; other.max</div><div class='add'>+          when 0</div><div class='add'>+            include_max ? self : other</div><div class='add'>+          when -1</div><div class='add'>+            other</div><div class='add'>+          when 1</div><div class='add'>+            self</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      VersionRange.new(</div><div class='add'>+        min: min_range.min,</div><div class='add'>+        include_min: min_range.include_min,</div><div class='add'>+        max: max_range.max,</div><div class='add'>+        include_max: max_range.include_max</div><div class='add'>+      )</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def union(other)</div><div class='add'>+      return other.union(self) if other.is_a?(VersionUnion)</div><div class='add'>+</div><div class='add'>+      if contiguous_to?(other)</div><div class='add'>+        span(other)</div><div class='add'>+      else</div><div class='add'>+        VersionUnion.union([self, other])</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def contiguous_to?(other)</div><div class='add'>+      return false if other.empty?</div><div class='add'>+</div><div class='add'>+      intersects?(other) ||</div><div class='add'>+        (min == other.max &amp;&amp; (include_min || other.include_max)) ||</div><div class='add'>+        (max == other.min &amp;&amp; (include_max || other.include_min))</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def allows_all?(other)</div><div class='add'>+      return true if other.empty?</div><div class='add'>+</div><div class='add'>+      if other.is_a?(VersionUnion)</div><div class='add'>+        return VersionUnion.new([self]).allows_all?(other)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return false if max &amp;&amp; !other.max</div><div class='add'>+      return false if min &amp;&amp; !other.min</div><div class='add'>+</div><div class='add'>+      if min</div><div class='add'>+        case min &lt;=&gt; other.min</div><div class='add'>+        when -1</div><div class='add'>+        when 0</div><div class='add'>+          return false if !include_min &amp;&amp; other.include_min</div><div class='add'>+        when 1</div><div class='add'>+          return false</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if max</div><div class='add'>+        case max &lt;=&gt; other.max</div><div class='add'>+        when -1</div><div class='add'>+          return false</div><div class='add'>+        when 0</div><div class='add'>+          return false if !include_max &amp;&amp; other.include_max</div><div class='add'>+        when 1</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def any?</div><div class='add'>+      !min &amp;&amp; !max</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def empty?</div><div class='add'>+      false</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def to_s</div><div class='add'>+      @name ||= constraints.join(", ")</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def inspect</div><div class='add'>+      "#&lt;#{self.class} #{to_s}&gt;"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def upper_invert</div><div class='add'>+      return self.class.empty unless max</div><div class='add'>+</div><div class='add'>+      VersionRange.new(min: max, include_min: !include_max)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def invert</div><div class='add'>+      return self.class.empty if any?</div><div class='add'>+</div><div class='add'>+      low = VersionRange.new(max: min, include_max: !include_min)</div><div class='add'>+      high = VersionRange.new(min: max, include_min: !include_max)</div><div class='add'>+</div><div class='add'>+      if !min</div><div class='add'>+        high</div><div class='add'>+      elsif !max</div><div class='add'>+        low</div><div class='add'>+      else</div><div class='add'>+        low.union(high)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def ==(other)</div><div class='add'>+      self.class == other.class &amp;&amp;</div><div class='add'>+        min == other.min &amp;&amp;</div><div class='add'>+        max == other.max &amp;&amp;</div><div class='add'>+        include_min == other.include_min &amp;&amp;</div><div class='add'>+        include_max == other.include_max</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def constraints</div><div class='add'>+      return ["any"] if any?</div><div class='add'>+      return ["= #{min}"] if min.to_s == max.to_s</div><div class='add'>+</div><div class='add'>+      c = []</div><div class='add'>+      c &lt;&lt; "#{include_min ? "&gt;=" : "&gt;"} #{min}" if min</div><div class='add'>+      c &lt;&lt; "#{include_max ? "&lt;=" : "&lt;"} #{max}" if max</div><div class='add'>+      c</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb<br/>new file mode 100644<br/>index 0000000000..4caf6b355b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb</a></div><div class='hunk'>@@ -0,0 +1,248 @@</div><div class='add'>+require_relative 'partial_solution'</div><div class='add'>+require_relative 'term'</div><div class='add'>+require_relative 'incompatibility'</div><div class='add'>+require_relative 'solve_failure'</div><div class='add'>+</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class VersionSolver</div><div class='add'>+    attr_reader :logger</div><div class='add'>+    attr_reader :source</div><div class='add'>+    attr_reader :solution</div><div class='add'>+</div><div class='add'>+    def initialize(source:, root: Package.root, logger: Bundler::PubGrub.logger)</div><div class='add'>+      @logger = logger</div><div class='add'>+</div><div class='add'>+      @source = source</div><div class='add'>+</div><div class='add'>+      # { package =&gt; [incompatibility, ...]}</div><div class='add'>+      @incompatibilities = Hash.new do |h, k|</div><div class='add'>+        h[k] = []</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      @seen_incompatibilities = {}</div><div class='add'>+</div><div class='add'>+      @solution = PartialSolution.new</div><div class='add'>+</div><div class='add'>+      add_incompatibility Incompatibility.new([</div><div class='add'>+        Term.new(VersionConstraint.any(root), false)</div><div class='add'>+      ], cause: :root)</div><div class='add'>+</div><div class='add'>+      propagate(root)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def solved?</div><div class='add'>+      solution.unsatisfied.empty?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns true if there is more work to be done, false otherwise</div><div class='add'>+    def work</div><div class='add'>+      return false if solved?</div><div class='add'>+</div><div class='add'>+      next_package = choose_package_version</div><div class='add'>+      propagate(next_package)</div><div class='add'>+</div><div class='add'>+      if solved?</div><div class='add'>+        logger.info { "Solution found after #{solution.attempted_solutions} attempts:" }</div><div class='add'>+        solution.decisions.each do |package, version|</div><div class='add'>+          next if Package.root?(package)</div><div class='add'>+          logger.info { "* #{package} #{version}" }</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        false</div><div class='add'>+      else</div><div class='add'>+        true</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def solve</div><div class='add'>+      work until solved?</div><div class='add'>+</div><div class='add'>+      solution.decisions</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    alias_method :result, :solve</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def propagate(initial_package)</div><div class='add'>+      changed = [initial_package]</div><div class='add'>+      while package = changed.shift</div><div class='add'>+        @incompatibilities[package].reverse_each do |incompatibility|</div><div class='add'>+          result = propagate_incompatibility(incompatibility)</div><div class='add'>+          if result == :conflict</div><div class='add'>+            root_cause = resolve_conflict(incompatibility)</div><div class='add'>+            changed.clear</div><div class='add'>+            changed &lt;&lt; propagate_incompatibility(root_cause)</div><div class='add'>+          elsif result # should be a Package</div><div class='add'>+            changed &lt;&lt; result</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+        changed.uniq!</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def propagate_incompatibility(incompatibility)</div><div class='add'>+      unsatisfied = nil</div><div class='add'>+      incompatibility.terms.each do |term|</div><div class='add'>+        relation = solution.relation(term)</div><div class='add'>+        if relation == :disjoint</div><div class='add'>+          return nil</div><div class='add'>+        elsif relation == :overlap</div><div class='add'>+          # If more than one term is inconclusive, we can't deduce anything</div><div class='add'>+          return nil if unsatisfied</div><div class='add'>+          unsatisfied = term</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if !unsatisfied</div><div class='add'>+        return :conflict</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      logger.debug { "derived: #{unsatisfied.invert}" }</div><div class='add'>+</div><div class='add'>+      solution.derive(unsatisfied.invert, incompatibility)</div><div class='add'>+</div><div class='add'>+      unsatisfied.package</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def next_package_to_try</div><div class='add'>+      solution.unsatisfied.min_by do |term|</div><div class='add'>+        package = term.package</div><div class='add'>+        range = term.constraint.range</div><div class='add'>+        matching_versions = source.versions_for(package, range)</div><div class='add'>+        higher_versions = source.versions_for(package, range.upper_invert)</div><div class='add'>+</div><div class='add'>+        [matching_versions.count &lt;= 1 ? 0 : 1, higher_versions.count]</div><div class='add'>+      end.package</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def choose_package_version</div><div class='add'>+      if solution.unsatisfied.empty?</div><div class='add'>+        logger.info "No packages unsatisfied. Solving complete!"</div><div class='add'>+        return nil</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      package = next_package_to_try</div><div class='add'>+      unsatisfied_term = solution.unsatisfied.find { |t| t.package == package }</div><div class='add'>+      version = source.versions_for(package, unsatisfied_term.constraint.range).first</div><div class='add'>+      logger.debug { "attempting #{package} #{version}" }</div><div class='add'>+</div><div class='add'>+      if version.nil?</div><div class='add'>+        add_incompatibility source.no_versions_incompatibility_for(package, unsatisfied_term)</div><div class='add'>+        return package</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      conflict = false</div><div class='add'>+</div><div class='add'>+      source.incompatibilities_for(package, version).each do |incompatibility|</div><div class='add'>+        if @seen_incompatibilities.include?(incompatibility)</div><div class='add'>+          logger.debug { "knew: #{incompatibility}" }</div><div class='add'>+          next</div><div class='add'>+        end</div><div class='add'>+        @seen_incompatibilities[incompatibility] = true</div><div class='add'>+</div><div class='add'>+        add_incompatibility incompatibility</div><div class='add'>+</div><div class='add'>+        conflict ||= incompatibility.terms.all? do |term|</div><div class='add'>+          term.package == package || solution.satisfies?(term)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      unless conflict</div><div class='add'>+        logger.info { "selected #{package} #{version}" }</div><div class='add'>+</div><div class='add'>+        solution.decide(package, version)</div><div class='add'>+      else</div><div class='add'>+        logger.info { "conflict: #{conflict.inspect}" }</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      package</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def resolve_conflict(incompatibility)</div><div class='add'>+      logger.info { "conflict: #{incompatibility}" }</div><div class='add'>+</div><div class='add'>+      new_incompatibility = nil</div><div class='add'>+</div><div class='add'>+      while !incompatibility.failure?</div><div class='add'>+        most_recent_term = nil</div><div class='add'>+        most_recent_satisfier = nil</div><div class='add'>+        difference = nil</div><div class='add'>+</div><div class='add'>+        previous_level = 1</div><div class='add'>+</div><div class='add'>+        incompatibility.terms.each do |term|</div><div class='add'>+          satisfier = solution.satisfier(term)</div><div class='add'>+</div><div class='add'>+          if most_recent_satisfier.nil?</div><div class='add'>+            most_recent_term = term</div><div class='add'>+            most_recent_satisfier = satisfier</div><div class='add'>+          elsif most_recent_satisfier.index &lt; satisfier.index</div><div class='add'>+            previous_level = [previous_level, most_recent_satisfier.decision_level].max</div><div class='add'>+            most_recent_term = term</div><div class='add'>+            most_recent_satisfier = satisfier</div><div class='add'>+            difference = nil</div><div class='add'>+          else</div><div class='add'>+            previous_level = [previous_level, satisfier.decision_level].max</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          if most_recent_term == term</div><div class='add'>+            difference = most_recent_satisfier.term.difference(most_recent_term)</div><div class='add'>+            if difference.empty?</div><div class='add'>+              difference = nil</div><div class='add'>+            else</div><div class='add'>+              difference_satisfier = solution.satisfier(difference.inverse)</div><div class='add'>+              previous_level = [previous_level, difference_satisfier.decision_level].max</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        if previous_level &lt; most_recent_satisfier.decision_level ||</div><div class='add'>+            most_recent_satisfier.decision?</div><div class='add'>+</div><div class='add'>+          logger.info { "backtracking to #{previous_level}" }</div><div class='add'>+          solution.backtrack(previous_level)</div><div class='add'>+</div><div class='add'>+          if new_incompatibility</div><div class='add'>+            add_incompatibility(new_incompatibility)</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          return incompatibility</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        new_terms = []</div><div class='add'>+        new_terms += incompatibility.terms - [most_recent_term]</div><div class='add'>+        new_terms += most_recent_satisfier.cause.terms.reject { |term|</div><div class='add'>+          term.package == most_recent_satisfier.term.package</div><div class='add'>+        }</div><div class='add'>+        if difference</div><div class='add'>+          new_terms &lt;&lt; difference.invert</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        new_incompatibility = Incompatibility.new(new_terms, cause: Incompatibility::ConflictCause.new(incompatibility, most_recent_satisfier.cause))</div><div class='add'>+</div><div class='add'>+        if incompatibility.to_s == new_incompatibility.to_s</div><div class='add'>+          logger.info { "!! failed to resolve conflicts, this shouldn't have happened" }</div><div class='add'>+          break</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        incompatibility = new_incompatibility</div><div class='add'>+</div><div class='add'>+        partially = difference ? " partially" : ""</div><div class='add'>+        logger.info { "! #{most_recent_term} is#{partially} satisfied by #{most_recent_satisfier.term}" }</div><div class='add'>+        logger.info { "! which is caused by #{most_recent_satisfier.cause}" }</div><div class='add'>+        logger.info { "! thus #{incompatibility}" }</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      raise SolveFailure.new(incompatibility)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def add_incompatibility(incompatibility)</div><div class='add'>+      logger.debug { "fact: #{incompatibility}" }</div><div class='add'>+      incompatibility.terms.each do |term|</div><div class='add'>+        package = term.package</div><div class='add'>+        @incompatibilities[package] &lt;&lt; incompatibility</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb b/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb<br/>new file mode 100644<br/>index 0000000000..bbc10c3804<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb</a></div><div class='hunk'>@@ -0,0 +1,178 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler::PubGrub</div><div class='add'>+  class VersionUnion</div><div class='add'>+    attr_reader :ranges</div><div class='add'>+</div><div class='add'>+    def self.normalize_ranges(ranges)</div><div class='add'>+      ranges = ranges.flat_map do |range|</div><div class='add'>+        range.ranges</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      ranges.reject!(&amp;:empty?)</div><div class='add'>+</div><div class='add'>+      return [] if ranges.empty?</div><div class='add'>+</div><div class='add'>+      mins, ranges = ranges.partition { |r| !r.min }</div><div class='add'>+      original_ranges = mins + ranges.sort_by { |r| [r.min, r.include_min ? 0 : 1] }</div><div class='add'>+      ranges = [original_ranges.shift]</div><div class='add'>+      original_ranges.each do |range|</div><div class='add'>+        if ranges.last.contiguous_to?(range)</div><div class='add'>+          ranges &lt;&lt; ranges.pop.span(range)</div><div class='add'>+        else</div><div class='add'>+          ranges &lt;&lt; range</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      ranges</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.union(ranges, normalize: true)</div><div class='add'>+      ranges = normalize_ranges(ranges) if normalize</div><div class='add'>+</div><div class='add'>+      if ranges.size == 0</div><div class='add'>+        VersionRange.empty</div><div class='add'>+      elsif ranges.size == 1</div><div class='add'>+        ranges[0]</div><div class='add'>+      else</div><div class='add'>+        new(ranges)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def initialize(ranges)</div><div class='add'>+      raise ArgumentError unless ranges.all? { |r| r.instance_of?(VersionRange) }</div><div class='add'>+      @ranges = ranges</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def hash</div><div class='add'>+      ranges.hash</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def eql?(other)</div><div class='add'>+      ranges.eql?(other.ranges)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def include?(version)</div><div class='add'>+      !!ranges.bsearch {|r| r.compare_version(version) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def select_versions(all_versions)</div><div class='add'>+      versions = []</div><div class='add'>+      ranges.inject(all_versions) do |acc, range|</div><div class='add'>+        _, matching, higher = range.partition_versions(acc)</div><div class='add'>+        versions.concat matching</div><div class='add'>+        higher</div><div class='add'>+      end</div><div class='add'>+      versions</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def intersects?(other)</div><div class='add'>+      my_ranges = ranges.dup</div><div class='add'>+      other_ranges = other.ranges.dup</div><div class='add'>+</div><div class='add'>+      my_range = my_ranges.shift</div><div class='add'>+      other_range = other_ranges.shift</div><div class='add'>+      while my_range &amp;&amp; other_range</div><div class='add'>+        if my_range.intersects?(other_range)</div><div class='add'>+          return true</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        if !my_range.max || other_range.empty? || (other_range.max &amp;&amp; other_range.max &lt; my_range.max)</div><div class='add'>+          other_range = other_ranges.shift</div><div class='add'>+        else</div><div class='add'>+          my_range = my_ranges.shift</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    alias_method :allows_any?, :intersects?</div><div class='add'>+</div><div class='add'>+    def allows_all?(other)</div><div class='add'>+      my_ranges = ranges.dup</div><div class='add'>+</div><div class='add'>+      my_range = my_ranges.shift</div><div class='add'>+</div><div class='add'>+      other.ranges.all? do |other_range|</div><div class='add'>+        while my_range</div><div class='add'>+          break if my_range.allows_all?(other_range)</div><div class='add'>+          my_range = my_ranges.shift</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        !!my_range</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def empty?</div><div class='add'>+      false</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def any?</div><div class='add'>+      false</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def intersect(other)</div><div class='add'>+      my_ranges = ranges.dup</div><div class='add'>+      other_ranges = other.ranges.dup</div><div class='add'>+      new_ranges = []</div><div class='add'>+</div><div class='add'>+      my_range = my_ranges.shift</div><div class='add'>+      other_range = other_ranges.shift</div><div class='add'>+      while my_range &amp;&amp; other_range</div><div class='add'>+        new_ranges &lt;&lt; my_range.intersect(other_range)</div><div class='add'>+</div><div class='add'>+        if !my_range.max || other_range.empty? || (other_range.max &amp;&amp; other_range.max &lt; my_range.max)</div><div class='add'>+          other_range = other_ranges.shift</div><div class='add'>+        else</div><div class='add'>+          my_range = my_ranges.shift</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      new_ranges.reject!(&amp;:empty?)</div><div class='add'>+      VersionUnion.union(new_ranges, normalize: false)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def upper_invert</div><div class='add'>+      ranges.last.upper_invert</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def invert</div><div class='add'>+      ranges.map(&amp;:invert).inject(:intersect)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def union(other)</div><div class='add'>+      VersionUnion.union([self, other])</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def to_s</div><div class='add'>+      output = []</div><div class='add'>+</div><div class='add'>+      ranges = self.ranges.dup</div><div class='add'>+      while !ranges.empty?</div><div class='add'>+        ne = []</div><div class='add'>+        range = ranges.shift</div><div class='add'>+        while !ranges.empty? &amp;&amp; ranges[0].min.to_s == range.max.to_s</div><div class='add'>+          ne &lt;&lt; range.max</div><div class='add'>+          range = range.span(ranges.shift)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        ne.map! {|x| "!= #{x}" }</div><div class='add'>+        if ne.empty?</div><div class='add'>+          output &lt;&lt; range.to_s</div><div class='add'>+        elsif range.any?</div><div class='add'>+          output &lt;&lt; ne.join(', ')</div><div class='add'>+        else</div><div class='add'>+          output &lt;&lt; "#{range}, #{ne.join(', ')}"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      output.join(" OR ")</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def inspect</div><div class='add'>+      "#&lt;#{self.class} #{to_s}&gt;"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def ==(other)</div><div class='add'>+      self.class == other.class &amp;&amp;</div><div class='add'>+        self.ranges == other.ranges</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor.rb b/lib/bundler/vendor/thor/lib/thor.rb<br/>index 999e8b7e61..0794dbb522 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor.rb</a></div><div class='hunk'>@@ -1,7 +1,7 @@</div><div class='del'>-require "set"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/base"</div><div class='add'>+require_relative "thor/base"</div><div class='ctx'> </div><div class='ctx'> class Bundler::Thor</div><div class='add'>+  $thor_runner ||= false</div><div class='ctx'>   class &lt;&lt; self</div><div class='ctx'>     # Allows for custom "Command" package naming.</div><div class='ctx'>     #</div><div class='hunk'>@@ -90,9 +90,14 @@ class Bundler::Thor</div><div class='ctx'>     # ==== Parameters</div><div class='ctx'>     # Hash[String|Array =&gt; Symbol]:: Maps the string or the strings in the array to the given command.</div><div class='ctx'>     #</div><div class='del'>-    def map(mappings = nil)</div><div class='add'>+    def map(mappings = nil, **kw)</div><div class='ctx'>       @map ||= from_superclass(:map, {})</div><div class='ctx'> </div><div class='add'>+      if mappings &amp;&amp; !kw.empty?</div><div class='add'>+        mappings = kw.merge!(mappings)</div><div class='add'>+      else</div><div class='add'>+        mappings ||= kw</div><div class='add'>+      end</div><div class='ctx'>       if mappings</div><div class='ctx'>         mappings.each do |key, value|</div><div class='ctx'>           if key.respond_to?(:each)</div><div class='hunk'>@@ -170,7 +175,7 @@ class Bundler::Thor</div><div class='ctx'>       handle_no_command_error(meth) unless command</div><div class='ctx'> </div><div class='ctx'>       shell.say "Usage:"</div><div class='del'>-      shell.say "  #{banner(command)}"</div><div class='add'>+      shell.say "  #{banner(command).split("\n").join("\n  ")}"</div><div class='ctx'>       shell.say</div><div class='ctx'>       class_options_help(shell, nil =&gt; command.options.values)</div><div class='ctx'>       if command.long_description</div><div class='hunk'>@@ -318,7 +323,7 @@ class Bundler::Thor</div><div class='ctx'>     # ==== Parameters</div><div class='ctx'>     # Symbol ...:: A list of commands that should be affected.</div><div class='ctx'>     def stop_on_unknown_option!(*command_names)</div><div class='del'>-      stop_on_unknown_option.merge(command_names)</div><div class='add'>+      @stop_on_unknown_option = stop_on_unknown_option | command_names</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def stop_on_unknown_option?(command) #:nodoc:</div><div class='hunk'>@@ -332,7 +337,7 @@ class Bundler::Thor</div><div class='ctx'>     # ==== Parameters</div><div class='ctx'>     # Symbol ...:: A list of commands that should be affected.</div><div class='ctx'>     def disable_required_check!(*command_names)</div><div class='del'>-      disable_required_check.merge(command_names)</div><div class='add'>+      @disable_required_check = disable_required_check | command_names</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def disable_required_check?(command) #:nodoc:</div><div class='hunk'>@@ -342,12 +347,12 @@ class Bundler::Thor</div><div class='ctx'>   protected</div><div class='ctx'> </div><div class='ctx'>     def stop_on_unknown_option #:nodoc:</div><div class='del'>-      @stop_on_unknown_option ||= Set.new</div><div class='add'>+      @stop_on_unknown_option ||= []</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # help command has the required check disabled by default.</div><div class='ctx'>     def disable_required_check #:nodoc:</div><div class='del'>-      @disable_required_check ||= Set.new([:help])</div><div class='add'>+      @disable_required_check ||= [:help]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # The method responsible for dispatching given the args.</div><div class='hunk'>@@ -393,7 +398,9 @@ class Bundler::Thor</div><div class='ctx'>     # the namespace should be displayed as arguments.</div><div class='ctx'>     #</div><div class='ctx'>     def banner(command, namespace = nil, subcommand = false)</div><div class='del'>-      "#{basename} #{command.formatted_usage(self, $thor_runner, subcommand)}"</div><div class='add'>+      command.formatted_usage(self, $thor_runner, subcommand).split("\n").map do |formatted_usage|</div><div class='add'>+        "#{basename} #{formatted_usage}"</div><div class='add'>+      end.join("\n")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def baseclass #:nodoc:</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/actions.rb b/lib/bundler/vendor/thor/lib/thor/actions.rb<br/>index e6698572a9..de9b3b4c86 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/actions.rb</a></div><div class='hunk'>@@ -1,17 +1,16 @@</div><div class='del'>-require "uri"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/core_ext/io_binary_read"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/actions/create_file"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/actions/create_link"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/actions/directory"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/actions/empty_directory"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/actions/file_manipulation"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/actions/inject_into_file"</div><div class='add'>+require_relative "actions/create_file"</div><div class='add'>+require_relative "actions/create_link"</div><div class='add'>+require_relative "actions/directory"</div><div class='add'>+require_relative "actions/empty_directory"</div><div class='add'>+require_relative "actions/file_manipulation"</div><div class='add'>+require_relative "actions/inject_into_file"</div><div class='ctx'> </div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   module Actions</div><div class='ctx'>     attr_accessor :behavior</div><div class='ctx'> </div><div class='ctx'>     def self.included(base) #:nodoc:</div><div class='add'>+      super(base)</div><div class='ctx'>       base.extend ClassMethods</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -113,8 +112,10 @@ class Bundler::Thor</div><div class='ctx'>     # the script started).</div><div class='ctx'>     #</div><div class='ctx'>     def relative_to_original_destination_root(path, remove_dot = true)</div><div class='del'>-      path = path.dup</div><div class='del'>-      if path.gsub!(@destination_stack[0], ".")</div><div class='add'>+      root = @destination_stack[0]</div><div class='add'>+      if path.start_with?(root) &amp;&amp; [File::SEPARATOR, File::ALT_SEPARATOR, nil, ''].include?(path[root.size..root.size])</div><div class='add'>+        path = path.dup</div><div class='add'>+        path[0...root.size] = '.'</div><div class='ctx'>         remove_dot ? (path[2..-1] || "") : path</div><div class='ctx'>       else</div><div class='ctx'>         path</div><div class='hunk'>@@ -160,6 +161,8 @@ class Bundler::Thor</div><div class='ctx'>     # to the block you provide. The path is set back to the previous path when</div><div class='ctx'>     # the method exits.</div><div class='ctx'>     #</div><div class='add'>+    # Returns the value yielded by the block.</div><div class='add'>+    #</div><div class='ctx'>     # ==== Parameters</div><div class='ctx'>     # dir&lt;String&gt;:: the directory to move to.</div><div class='ctx'>     # config&lt;Hash&gt;:: give :verbose =&gt; true to log and use padding.</div><div class='hunk'>@@ -178,16 +181,18 @@ class Bundler::Thor</div><div class='ctx'>         FileUtils.mkdir_p(destination_root)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      result = nil</div><div class='ctx'>       if pretend</div><div class='ctx'>         # In pretend mode, just yield down to the block</div><div class='del'>-        block.arity == 1 ? yield(destination_root) : yield</div><div class='add'>+        result = block.arity == 1 ? yield(destination_root) : yield</div><div class='ctx'>       else</div><div class='ctx'>         require "fileutils"</div><div class='del'>-        FileUtils.cd(destination_root) { block.arity == 1 ? yield(destination_root) : yield }</div><div class='add'>+        FileUtils.cd(destination_root) { result = block.arity == 1 ? yield(destination_root) : yield }</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       @destination_stack.pop</div><div class='ctx'>       shell.padding -= 1 if verbose</div><div class='add'>+      result</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Goes to the root and execute the given block.</div><div class='hunk'>@@ -217,7 +222,8 @@ class Bundler::Thor</div><div class='ctx'>       shell.padding += 1 if verbose</div><div class='ctx'> </div><div class='ctx'>       contents = if is_uri</div><div class='del'>-        open(path, "Accept" =&gt; "application/x-thor-template", &amp;:read)</div><div class='add'>+        require "open-uri"</div><div class='add'>+        URI.open(path, "Accept" =&gt; "application/x-thor-template", &amp;:read)</div><div class='ctx'>       else</div><div class='ctx'>         open(path, &amp;:read)</div><div class='ctx'>       end</div><div class='hunk'>@@ -252,9 +258,22 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>       say_status :run, desc, config.fetch(:verbose, true)</div><div class='ctx'> </div><div class='del'>-      unless options[:pretend]</div><div class='del'>-        config[:capture] ? `#{command}` : system(command.to_s)</div><div class='add'>+      return if options[:pretend]</div><div class='add'>+</div><div class='add'>+      env_splat = [config[:env]] if config[:env]</div><div class='add'>+</div><div class='add'>+      if config[:capture]</div><div class='add'>+        require "open3"</div><div class='add'>+        result, status = Open3.capture2e(*env_splat, command.to_s)</div><div class='add'>+        success = status.success?</div><div class='add'>+      else</div><div class='add'>+        result = system(*env_splat, command.to_s)</div><div class='add'>+        success = result</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      abort if !success &amp;&amp; config.fetch(:abort_on_failure, self.class.exit_on_failure?)</div><div class='add'>+</div><div class='add'>+      result</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Executes a ruby script (taking into account WIN32 platform quirks).</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb b/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb<br/>index 97d22d9bbd..330fc08cae 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions/create_file.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/actions/create_file.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-require "bundler/vendor/thor/lib/thor/actions/empty_directory"</div><div class='add'>+require_relative "empty_directory"</div><div class='ctx'> </div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   module Actions</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb b/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb<br/>index 3a664401b4..fb76fcdbe9 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions/create_link.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/actions/create_link.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-require "bundler/vendor/thor/lib/thor/actions/create_file"</div><div class='add'>+require_relative "create_file"</div><div class='ctx'> </div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   module Actions</div><div class='hunk'>@@ -33,7 +33,8 @@ class Bundler::Thor</div><div class='ctx'>       # Boolean:: true if it is identical, false otherwise.</div><div class='ctx'>       #</div><div class='ctx'>       def identical?</div><div class='del'>-        exists? &amp;&amp; File.identical?(render, destination)</div><div class='add'>+        source = File.expand_path(render, File.dirname(destination))</div><div class='add'>+        exists? &amp;&amp; File.identical?(source, destination)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def invoke!</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/actions/directory.rb b/lib/bundler/vendor/thor/lib/thor/actions/directory.rb<br/>index f555f7b7e0..d37327a139 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions/directory.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions/directory.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions/directory.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/actions/directory.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-require "bundler/vendor/thor/lib/thor/actions/empty_directory"</div><div class='add'>+require_relative "empty_directory"</div><div class='ctx'> </div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   module Actions</div><div class='hunk'>@@ -56,7 +56,7 @@ class Bundler::Thor</div><div class='ctx'>       attr_reader :source</div><div class='ctx'> </div><div class='ctx'>       def initialize(base, source, destination = nil, config = {}, &amp;block)</div><div class='del'>-        @source = File.expand_path(base.find_in_source_paths(source.to_s))</div><div class='add'>+        @source = File.expand_path(Dir[Util.escape_globs(base.find_in_source_paths(source.to_s))].first)</div><div class='ctx'>         @block  = block</div><div class='ctx'>         super(base, destination, {:recursive =&gt; true}.merge(config))</div><div class='ctx'>       end</div><div class='hunk'>@@ -96,22 +96,12 @@ class Bundler::Thor</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      if RUBY_VERSION &lt; "2.0"</div><div class='del'>-        def file_level_lookup(previous_lookup)</div><div class='del'>-          File.join(previous_lookup, "{*,.[a-z]*}")</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def files(lookup)</div><div class='del'>-          Dir[lookup]</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        def file_level_lookup(previous_lookup)</div><div class='del'>-          File.join(previous_lookup, "*")</div><div class='del'>-        end</div><div class='add'>+      def file_level_lookup(previous_lookup)</div><div class='add'>+        File.join(previous_lookup, "*")</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-        def files(lookup)</div><div class='del'>-          Dir.glob(lookup, File::FNM_DOTMATCH)</div><div class='del'>-        end</div><div class='add'>+      def files(lookup)</div><div class='add'>+        Dir.glob(lookup, File::FNM_DOTMATCH)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb b/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb<br/>index 4c83bebc86..bf2a737c84 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb</a></div><div class='hunk'>@@ -23,14 +23,14 @@ class Bundler::Thor</div><div class='ctx'>       destination = args.first || source</div><div class='ctx'>       source = File.expand_path(find_in_source_paths(source.to_s))</div><div class='ctx'> </div><div class='del'>-      create_file destination, nil, config do</div><div class='add'>+      resulting_destination = create_file destination, nil, config do</div><div class='ctx'>         content = File.binread(source)</div><div class='ctx'>         content = yield(content) if block</div><div class='ctx'>         content</div><div class='ctx'>       end</div><div class='ctx'>       if config[:mode] == :preserve</div><div class='ctx'>         mode = File.stat(source).mode</div><div class='del'>-        chmod(destination, mode, config)</div><div class='add'>+        chmod(resulting_destination, mode, config)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -60,6 +60,9 @@ class Bundler::Thor</div><div class='ctx'>     # destination. If a block is given instead of destination, the content of</div><div class='ctx'>     # the url is yielded and used as location.</div><div class='ctx'>     #</div><div class='add'>+    # +get+ relies on open-uri, so passing application user input would provide</div><div class='add'>+    # a command injection attack vector.</div><div class='add'>+    #</div><div class='ctx'>     # ==== Parameters</div><div class='ctx'>     # source&lt;String&gt;:: the address of the given content.</div><div class='ctx'>     # destination&lt;String&gt;:: the relative path to the destination root.</div><div class='hunk'>@@ -77,14 +80,14 @@ class Bundler::Thor</div><div class='ctx'>       config = args.last.is_a?(Hash) ? args.pop : {}</div><div class='ctx'>       destination = args.first</div><div class='ctx'> </div><div class='del'>-      if source =~ %r{^https?\://}</div><div class='add'>+      render = if source =~ %r{^https?\://}</div><div class='ctx'>         require "open-uri"</div><div class='add'>+        URI.send(:open, source) { |input| input.binmode.read }</div><div class='ctx'>       else</div><div class='ctx'>         source = File.expand_path(find_in_source_paths(source.to_s))</div><div class='add'>+        open(source) { |input| input.binmode.read }</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      render = open(source) { |input| input.binmode.read }</div><div class='del'>-</div><div class='ctx'>       destination ||= if block_given?</div><div class='ctx'>         block.arity == 1 ? yield(render) : yield</div><div class='ctx'>       else</div><div class='hunk'>@@ -117,7 +120,13 @@ class Bundler::Thor</div><div class='ctx'>       context = config.delete(:context) || instance_eval("binding")</div><div class='ctx'> </div><div class='ctx'>       create_file destination, nil, config do</div><div class='del'>-        content = CapturableERB.new(::File.binread(source), nil, "-", "@output_buffer").tap do |erb|</div><div class='add'>+        match = ERB.version.match(/(\d+\.\d+\.\d+)/)</div><div class='add'>+        capturable_erb = if match &amp;&amp; match[1] &gt;= "2.2.0" # Ruby 2.6+</div><div class='add'>+          CapturableERB.new(::File.binread(source), :trim_mode =&gt; "-", :eoutvar =&gt; "@output_buffer")</div><div class='add'>+        else</div><div class='add'>+          CapturableERB.new(::File.binread(source), nil, "-", "@output_buffer")</div><div class='add'>+        end</div><div class='add'>+        content = capturable_erb.tap do |erb|</div><div class='ctx'>           erb.filename = source</div><div class='ctx'>         end.result(context)</div><div class='ctx'>         content = yield(content) if block</div><div class='hunk'>@@ -201,9 +210,9 @@ class Bundler::Thor</div><div class='ctx'>     #</div><div class='ctx'>     # ==== Examples</div><div class='ctx'>     #</div><div class='del'>-    #   inject_into_class "app/controllers/application_controller.rb", ApplicationController, "  filter_parameter :password\n"</div><div class='add'>+    #   inject_into_class "app/controllers/application_controller.rb", "ApplicationController", "  filter_parameter :password\n"</div><div class='ctx'>     #</div><div class='del'>-    #   inject_into_class "app/controllers/application_controller.rb", ApplicationController do</div><div class='add'>+    #   inject_into_class "app/controllers/application_controller.rb", "ApplicationController" do</div><div class='ctx'>     #     "  filter_parameter :password\n"</div><div class='ctx'>     #   end</div><div class='ctx'>     #</div><div class='hunk'>@@ -224,9 +233,9 @@ class Bundler::Thor</div><div class='ctx'>     #</div><div class='ctx'>     # ==== Examples</div><div class='ctx'>     #</div><div class='del'>-    #   inject_into_module "app/helpers/application_helper.rb", ApplicationHelper, "  def help; 'help'; end\n"</div><div class='add'>+    #   inject_into_module "app/helpers/application_helper.rb", "ApplicationHelper", "  def help; 'help'; end\n"</div><div class='ctx'>     #</div><div class='del'>-    #   inject_into_module "app/helpers/application_helper.rb", ApplicationHelper do</div><div class='add'>+    #   inject_into_module "app/helpers/application_helper.rb", "ApplicationHelper" do</div><div class='ctx'>     #     "  def help; 'help'; end\n"</div><div class='ctx'>     #   end</div><div class='ctx'>     #</div><div class='hunk'>@@ -242,7 +251,8 @@ class Bundler::Thor</div><div class='ctx'>     # path&lt;String&gt;:: path of the file to be changed</div><div class='ctx'>     # flag&lt;Regexp|String&gt;:: the regexp or string to be replaced</div><div class='ctx'>     # replacement&lt;String&gt;:: the replacement, can be also given as a block</div><div class='del'>-    # config&lt;Hash&gt;:: give :verbose =&gt; false to not log the status.</div><div class='add'>+    # config&lt;Hash&gt;:: give :verbose =&gt; false to not log the status, and</div><div class='add'>+    #                :force =&gt; true, to force the replacement regardles of runner behavior.</div><div class='ctx'>     #</div><div class='ctx'>     # ==== Example</div><div class='ctx'>     #</div><div class='hunk'>@@ -253,9 +263,10 @@ class Bundler::Thor</div><div class='ctx'>     #   end</div><div class='ctx'>     #</div><div class='ctx'>     def gsub_file(path, flag, *args, &amp;block)</div><div class='del'>-      return unless behavior == :invoke</div><div class='ctx'>       config = args.last.is_a?(Hash) ? args.pop : {}</div><div class='ctx'> </div><div class='add'>+      return unless behavior == :invoke || config.fetch(:force, false)</div><div class='add'>+</div><div class='ctx'>       path = File.expand_path(path, destination_root)</div><div class='ctx'>       say_status :gsub, relative_to_original_destination_root(path), config.fetch(:verbose, true)</div><div class='ctx'> </div><div class='hunk'>@@ -301,7 +312,7 @@ class Bundler::Thor</div><div class='ctx'>     def comment_lines(path, flag, *args)</div><div class='ctx'>       flag = flag.respond_to?(:source) ? flag.source : flag</div><div class='ctx'> </div><div class='del'>-      gsub_file(path, /^(\s*)([^#|\n]*#{flag})/, '\1# \2', *args)</div><div class='add'>+      gsub_file(path, /^(\s*)([^#\n]*#{flag})/, '\1# \2', *args)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Removes a file at the given location.</div><div class='hunk'>@@ -320,7 +331,7 @@ class Bundler::Thor</div><div class='ctx'>       path = File.expand_path(path, destination_root)</div><div class='ctx'> </div><div class='ctx'>       say_status :remove, relative_to_original_destination_root(path), config.fetch(:verbose, true)</div><div class='del'>-      if !options[:pretend] &amp;&amp; File.exist?(path)</div><div class='add'>+      if !options[:pretend] &amp;&amp; (File.exist?(path) || File.symlink?(path))</div><div class='ctx'>         require "fileutils"</div><div class='ctx'>         ::FileUtils.rm_rf(path)</div><div class='ctx'>       end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb b/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb<br/>index 349b26ff65..bf013307f1 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-require "bundler/vendor/thor/lib/thor/actions/empty_directory"</div><div class='add'>+require_relative "empty_directory"</div><div class='ctx'> </div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   module Actions</div><div class='hunk'>@@ -21,9 +21,14 @@ class Bundler::Thor</div><div class='ctx'>     #     gems.split(" ").map{ |gem| "  config.gem :#{gem}" }.join("\n")</div><div class='ctx'>     #   end</div><div class='ctx'>     #</div><div class='add'>+    WARNINGS = { unchanged_no_flag: 'File unchanged! The supplied flag value not found!' }</div><div class='add'>+</div><div class='ctx'>     def insert_into_file(destination, *args, &amp;block)</div><div class='ctx'>       data = block_given? ? block : args.shift</div><div class='del'>-      config = args.shift</div><div class='add'>+</div><div class='add'>+      config = args.shift || {}</div><div class='add'>+      config[:after] = /\z/ unless config.key?(:before) || config.key?(:after)</div><div class='add'>+</div><div class='ctx'>       action InjectIntoFile.new(self, destination, data, config)</div><div class='ctx'>     end</div><div class='ctx'>     alias_method :inject_into_file, :insert_into_file</div><div class='hunk'>@@ -45,8 +50,6 @@ class Bundler::Thor</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def invoke!</div><div class='del'>-        say_status :invoke</div><div class='del'>-</div><div class='ctx'>         content = if @behavior == :after</div><div class='ctx'>           '\0' + replacement</div><div class='ctx'>         else</div><div class='hunk'>@@ -54,7 +57,11 @@ class Bundler::Thor</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='ctx'>         if exists?</div><div class='del'>-          replace!(/#{flag}/, content, config[:force])</div><div class='add'>+          if replace!(/#{flag}/, content, config[:force])</div><div class='add'>+            say_status(:invoke)</div><div class='add'>+          else</div><div class='add'>+            say_status(:unchanged, warning: WARNINGS[:unchanged_no_flag], color: :red)</div><div class='add'>+          end</div><div class='ctx'>         else</div><div class='ctx'>           unless pretend?</div><div class='ctx'>             raise Bundler::Thor::Error, "The file #{ destination } does not appear to exist"</div><div class='hunk'>@@ -78,7 +85,7 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>     protected</div><div class='ctx'> </div><div class='del'>-      def say_status(behavior)</div><div class='add'>+      def say_status(behavior, warning: nil, color: nil)</div><div class='ctx'>         status = if behavior == :invoke</div><div class='ctx'>           if flag == /\A/</div><div class='ctx'>             :prepend</div><div class='hunk'>@@ -87,21 +94,24 @@ class Bundler::Thor</div><div class='ctx'>           else</div><div class='ctx'>             :insert</div><div class='ctx'>           end</div><div class='add'>+        elsif warning</div><div class='add'>+          warning</div><div class='ctx'>         else</div><div class='ctx'>           :subtract</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        super(status, config[:verbose])</div><div class='add'>+        super(status, (color || config[:verbose]))</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Adds the content to the file.</div><div class='ctx'>       #</div><div class='ctx'>       def replace!(regexp, string, force)</div><div class='del'>-        return if pretend?</div><div class='ctx'>         content = File.read(destination)</div><div class='ctx'>         if force || !content.include?(replacement)</div><div class='del'>-          content.gsub!(regexp, string)</div><div class='del'>-          File.open(destination, "wb") { |file| file.write(content) }</div><div class='add'>+          success = content.gsub!(regexp, string)</div><div class='add'>+</div><div class='add'>+          File.open(destination, "wb") { |file| file.write(content) } unless pretend?</div><div class='add'>+          success</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/base.rb b/lib/bundler/vendor/thor/lib/thor/base.rb<br/>index 9bd1077170..8487f9590a 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/base.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/base.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/base.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/base.rb</a></div><div class='hunk'>@@ -1,17 +1,17 @@</div><div class='del'>-require "bundler/vendor/thor/lib/thor/command"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/core_ext/ordered_hash"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/error"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/invocation"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/parser"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/shell"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/line_editor"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/util"</div><div class='add'>+require_relative "command"</div><div class='add'>+require_relative "core_ext/hash_with_indifferent_access"</div><div class='add'>+require_relative "error"</div><div class='add'>+require_relative "invocation"</div><div class='add'>+require_relative "nested_context"</div><div class='add'>+require_relative "parser"</div><div class='add'>+require_relative "shell"</div><div class='add'>+require_relative "line_editor"</div><div class='add'>+require_relative "util"</div><div class='ctx'> </div><div class='ctx'> class Bundler::Thor</div><div class='del'>-  autoload :Actions,    "bundler/vendor/thor/lib/thor/actions"</div><div class='del'>-  autoload :RakeCompat, "bundler/vendor/thor/lib/thor/rake_compat"</div><div class='del'>-  autoload :Group,      "bundler/vendor/thor/lib/thor/group"</div><div class='add'>+  autoload :Actions,    File.expand_path("actions", __dir__)</div><div class='add'>+  autoload :RakeCompat, File.expand_path("rake_compat", __dir__)</div><div class='add'>+  autoload :Group,      File.expand_path("group", __dir__)</div><div class='ctx'> </div><div class='ctx'>   # Shortcuts for help.</div><div class='ctx'>   HELP_MAPPINGS       = %w(-h -? --help -D)</div><div class='hunk'>@@ -22,6 +22,15 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>   TEMPLATE_EXTNAME = ".tt"</div><div class='ctx'> </div><div class='add'>+  class &lt;&lt; self</div><div class='add'>+    def deprecation_warning(message) #:nodoc:</div><div class='add'>+      unless ENV['THOR_SILENCE_DEPRECATION']</div><div class='add'>+        warn "Deprecation warning: #{message}\n" +</div><div class='add'>+          'You can silence deprecations warning by setting the environment variable THOR_SILENCE_DEPRECATION.'</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'>   module Base</div><div class='ctx'>     attr_accessor :options, :parent_options, :args</div><div class='ctx'> </div><div class='hunk'>@@ -89,6 +98,7 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>     class &lt;&lt; self</div><div class='ctx'>       def included(base) #:nodoc:</div><div class='add'>+        super(base)</div><div class='ctx'>         base.extend ClassMethods</div><div class='ctx'>         base.send :include, Invocation</div><div class='ctx'>         base.send :include, Shell</div><div class='hunk'>@@ -113,7 +123,7 @@ class Bundler::Thor</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Whenever a class inherits from Bundler::Thor or Bundler::Thor::Group, we should track the</div><div class='del'>-      # class and the file on Bundler::Thor::Base. This is the method responsable for it.</div><div class='add'>+      # class and the file on Bundler::Thor::Base. This is the method responsible for it.</div><div class='ctx'>       #</div><div class='ctx'>       def register_klass_file(klass) #:nodoc:</div><div class='ctx'>         file = caller[1].match(/(.*):\d+/)[1]</div><div class='hunk'>@@ -153,17 +163,20 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>       # If you want to raise an error when the default value of an option does not match</div><div class='ctx'>       # the type call check_default_type!</div><div class='del'>-      # This is disabled by default for compatibility.</div><div class='add'>+      # This will be the default; for compatibility a deprecation warning is issued if necessary.</div><div class='ctx'>       def check_default_type!</div><div class='ctx'>         @check_default_type = true</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def check_default_type #:nodoc:</div><div class='del'>-        @check_default_type ||= from_superclass(:check_default_type, false)</div><div class='add'>+      # If you want to use defaults that don't match the type of an option,</div><div class='add'>+      # either specify `check_default_type: false` or call `allow_incompatible_default_type!`</div><div class='add'>+      def allow_incompatible_default_type!</div><div class='add'>+        @check_default_type = false</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      def check_default_type? #:nodoc:</div><div class='del'>-        !!check_default_type</div><div class='add'>+      def check_default_type #:nodoc:</div><div class='add'>+        @check_default_type = from_superclass(:check_default_type, nil) unless defined?(@check_default_type)</div><div class='add'>+        @check_default_type</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # If true, option parsing is suspended as soon as an unknown option or a</div><div class='hunk'>@@ -353,22 +366,22 @@ class Bundler::Thor</div><div class='ctx'>       # Returns the commands for this Bundler::Thor class.</div><div class='ctx'>       #</div><div class='ctx'>       # ==== Returns</div><div class='del'>-      # OrderedHash:: An ordered hash with commands names as keys and Bundler::Thor::Command</div><div class='del'>-      #               objects as values.</div><div class='add'>+      # Hash:: An ordered hash with commands names as keys and Bundler::Thor::Command</div><div class='add'>+      #        objects as values.</div><div class='ctx'>       #</div><div class='ctx'>       def commands</div><div class='del'>-        @commands ||= Bundler::Thor::CoreExt::OrderedHash.new</div><div class='add'>+        @commands ||= Hash.new</div><div class='ctx'>       end</div><div class='ctx'>       alias_method :tasks, :commands</div><div class='ctx'> </div><div class='ctx'>       # Returns the commands for this Bundler::Thor class and all subclasses.</div><div class='ctx'>       #</div><div class='ctx'>       # ==== Returns</div><div class='del'>-      # OrderedHash:: An ordered hash with commands names as keys and Bundler::Thor::Command</div><div class='del'>-      #               objects as values.</div><div class='add'>+      # Hash:: An ordered hash with commands names as keys and Bundler::Thor::Command</div><div class='add'>+      #        objects as values.</div><div class='ctx'>       #</div><div class='ctx'>       def all_commands</div><div class='del'>-        @all_commands ||= from_superclass(:all_commands, Bundler::Thor::CoreExt::OrderedHash.new)</div><div class='add'>+        @all_commands ||= from_superclass(:all_commands, Hash.new)</div><div class='ctx'>         @all_commands.merge!(commands)</div><div class='ctx'>       end</div><div class='ctx'>       alias_method :all_tasks, :all_commands</div><div class='hunk'>@@ -415,14 +428,20 @@ class Bundler::Thor</div><div class='ctx'>       #     remove_command :this_is_not_a_command</div><div class='ctx'>       #   end</div><div class='ctx'>       #</div><div class='del'>-      def no_commands</div><div class='del'>-        @no_commands = true</div><div class='del'>-        yield</div><div class='del'>-      ensure</div><div class='del'>-        @no_commands = false</div><div class='add'>+      def no_commands(&amp;block)</div><div class='add'>+        no_commands_context.enter(&amp;block)</div><div class='ctx'>       end</div><div class='add'>+</div><div class='ctx'>       alias_method :no_tasks, :no_commands</div><div class='ctx'> </div><div class='add'>+      def no_commands_context</div><div class='add'>+        @no_commands_context ||= NestedContext.new</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def no_commands?</div><div class='add'>+        no_commands_context.entered?</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       # Sets the namespace for the Bundler::Thor or Bundler::Thor::Group class. By default the</div><div class='ctx'>       # namespace is retrieved from the class name. If your Bundler::Thor class is named</div><div class='ctx'>       # Scripts::MyScript, the help method, for example, will be called as:</div><div class='hunk'>@@ -466,13 +485,13 @@ class Bundler::Thor</div><div class='ctx'>         dispatch(nil, given_args.dup, nil, config)</div><div class='ctx'>       rescue Bundler::Thor::Error =&gt; e</div><div class='ctx'>         config[:debug] || ENV["THOR_DEBUG"] == "1" ? (raise e) : config[:shell].error(e.message)</div><div class='del'>-        exit(1) if exit_on_failure?</div><div class='add'>+        exit(false) if exit_on_failure?</div><div class='ctx'>       rescue Errno::EPIPE</div><div class='ctx'>         # This happens if a thor command is piped to something like `head`,</div><div class='ctx'>         # which closes the pipe when it's done reading. This will also</div><div class='ctx'>         # mean that if the pipe is closed, further unnecessary</div><div class='ctx'>         # computation will not occur.</div><div class='del'>-        exit(0)</div><div class='add'>+        exit(true)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Allows to use private methods from parent in child classes as commands.</div><div class='hunk'>@@ -493,8 +512,7 @@ class Bundler::Thor</div><div class='ctx'>       alias_method :public_task, :public_command</div><div class='ctx'> </div><div class='ctx'>       def handle_no_command_error(command, has_namespace = $thor_runner) #:nodoc:</div><div class='del'>-        raise UndefinedCommandError, "Could not find command #{command.inspect} in #{namespace.inspect} namespace." if has_namespace</div><div class='del'>-        raise UndefinedCommandError, "Could not find command #{command.inspect}."</div><div class='add'>+        raise UndefinedCommandError.new(command, all_commands.keys, (namespace if has_namespace))</div><div class='ctx'>       end</div><div class='ctx'>       alias_method :handle_no_task_error, :handle_no_command_error</div><div class='ctx'> </div><div class='hunk'>@@ -503,10 +521,16 @@ class Bundler::Thor</div><div class='ctx'>         msg = "ERROR: \"#{basename} #{name}\" was called with ".dup</div><div class='ctx'>         msg &lt;&lt; "no arguments"               if     args.empty?</div><div class='ctx'>         msg &lt;&lt; "arguments " &lt;&lt; args.inspect unless args.empty?</div><div class='del'>-        msg &lt;&lt; "\nUsage: #{banner(command).inspect}"</div><div class='add'>+        msg &lt;&lt; "\nUsage: \"#{banner(command).split("\n").join("\"\n       \"")}\""</div><div class='ctx'>         raise InvocationError, msg</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      # A flag that makes the process exit with status 1 if any error happens.</div><div class='add'>+      def exit_on_failure?</div><div class='add'>+        Bundler::Thor.deprecation_warning "Bundler::Thor exit with status 0 on errors. To keep this behavior, you must define `exit_on_failure?` in `#{self.name}`"</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>     protected</div><div class='ctx'> </div><div class='ctx'>       # Prints the class options per group. If an option does not belong to</div><div class='hunk'>@@ -564,7 +588,7 @@ class Bundler::Thor</div><div class='ctx'>       # options&lt;Hash&gt;:: Described in both class_option and method_option.</div><div class='ctx'>       # scope&lt;Hash&gt;:: Options hash that is being built up</div><div class='ctx'>       def build_option(name, options, scope) #:nodoc:</div><div class='del'>-        scope[name] = Bundler::Thor::Option.new(name, options.merge(:check_default_type =&gt; check_default_type?))</div><div class='add'>+        scope[name] = Bundler::Thor::Option.new(name, {:check_default_type =&gt; check_default_type}.merge!(options))</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Receives a hash of options, parse them and add to the scope. This is a</div><div class='hunk'>@@ -597,13 +621,15 @@ class Bundler::Thor</div><div class='ctx'>       # Everytime someone inherits from a Bundler::Thor class, register the klass</div><div class='ctx'>       # and file into baseclass.</div><div class='ctx'>       def inherited(klass)</div><div class='add'>+        super(klass)</div><div class='ctx'>         Bundler::Thor::Base.register_klass_file(klass)</div><div class='del'>-        klass.instance_variable_set(:@no_commands, false)</div><div class='add'>+        klass.instance_variable_set(:@no_commands, 0)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Fire this callback whenever a method is added. Added methods are</div><div class='ctx'>       # tracked as commands by invoking the create_command method.</div><div class='ctx'>       def method_added(meth)</div><div class='add'>+        super(meth)</div><div class='ctx'>         meth = meth.to_s</div><div class='ctx'> </div><div class='ctx'>         if meth == "initialize"</div><div class='hunk'>@@ -614,8 +640,7 @@ class Bundler::Thor</div><div class='ctx'>         # Return if it's not a public instance method</div><div class='ctx'>         return unless public_method_defined?(meth.to_sym)</div><div class='ctx'> </div><div class='del'>-        @no_commands ||= false</div><div class='del'>-        return if @no_commands || !create_command(meth)</div><div class='add'>+        return if no_commands? || !create_command(meth)</div><div class='ctx'> </div><div class='ctx'>         is_thor_reserved_word?(meth, :command)</div><div class='ctx'>         Bundler::Thor::Base.register_klass_file(self)</div><div class='hunk'>@@ -642,11 +667,6 @@ class Bundler::Thor</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      # A flag that makes the process exit with status 1 if any error happens.</div><div class='del'>-      def exit_on_failure?</div><div class='del'>-        false</div><div class='del'>-      end</div><div class='del'>-</div><div class='ctx'>       #</div><div class='ctx'>       # The basename of the program invoking the thor class.</div><div class='ctx'>       #</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/command.rb b/lib/bundler/vendor/thor/lib/thor/command.rb<br/>index c636948e5d..040c971c0c 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/command.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/command.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/command.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/command.rb</a></div><div class='hunk'>@@ -49,24 +49,32 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>       formatted ||= "".dup</div><div class='ctx'> </div><div class='del'>-      # Add usage with required arguments</div><div class='del'>-      formatted &lt;&lt; if klass &amp;&amp; !klass.arguments.empty?</div><div class='del'>-                     usage.to_s.gsub(/^#{name}/) do |match|</div><div class='del'>-                       match &lt;&lt; " " &lt;&lt; klass.arguments.map(&amp;:usage).compact.join(" ")</div><div class='del'>-                     end</div><div class='del'>-                   else</div><div class='del'>-                     usage.to_s</div><div class='del'>-                   end</div><div class='add'>+      Array(usage).map do |specific_usage|</div><div class='add'>+        formatted_specific_usage = formatted</div><div class='ctx'> </div><div class='del'>-      # Add required options</div><div class='del'>-      formatted &lt;&lt; " #{required_options}"</div><div class='add'>+        formatted_specific_usage += required_arguments_for(klass, specific_usage)</div><div class='ctx'> </div><div class='del'>-      # Strip and go!</div><div class='del'>-      formatted.strip</div><div class='add'>+        # Add required options</div><div class='add'>+        formatted_specific_usage += " #{required_options}"</div><div class='add'>+</div><div class='add'>+        # Strip and go!</div><div class='add'>+        formatted_specific_usage.strip</div><div class='add'>+      end.join("\n")</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>   protected</div><div class='ctx'> </div><div class='add'>+    # Add usage with required arguments</div><div class='add'>+    def required_arguments_for(klass, usage)</div><div class='add'>+      if klass &amp;&amp; !klass.arguments.empty?</div><div class='add'>+        usage.to_s.gsub(/^#{name}/) do |match|</div><div class='add'>+          match &lt;&lt; " " &lt;&lt; klass.arguments.map(&amp;:usage).compact.join(" ")</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        usage.to_s</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def not_debugging?(instance)</div><div class='ctx'>       !(instance.class.respond_to?(:debugging) &amp;&amp; instance.class.debugging)</div><div class='ctx'>     end</div><div class='hunk'>@@ -97,8 +105,7 @@ class Bundler::Thor</div><div class='ctx'>     def handle_argument_error?(instance, error, caller)</div><div class='ctx'>       not_debugging?(instance) &amp;&amp; (error.message =~ /wrong number of arguments/ || error.message =~ /given \d*, expected \d*/) &amp;&amp; begin</div><div class='ctx'>         saned = sans_backtrace(error.backtrace, caller)</div><div class='del'>-        # Ruby 1.9 always include the called method in the backtrace</div><div class='del'>-        saned.empty? || (saned.size == 1 &amp;&amp; RUBY_VERSION &gt;= "1.9")</div><div class='add'>+        saned.empty? || saned.size == 1</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb b/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb<br/>index c167aa33b8..3c4483e5dd 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb</a></div><div class='hunk'>@@ -28,6 +28,12 @@ class Bundler::Thor</div><div class='ctx'>         super(convert_key(key))</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      def except(*keys)</div><div class='add'>+        dup.tap do |hash|</div><div class='add'>+          keys.each { |key| hash.delete(convert_key(key)) }</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       def fetch(key, *args)</div><div class='ctx'>         super(convert_key(key), *args)</div><div class='ctx'>       end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb b/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb<br/>deleted file mode 100644<br/>index 0f6e2e0af2..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,12 +0,0 @@</div><div class='del'>-class IO #:nodoc:</div><div class='del'>-  class &lt;&lt; self</div><div class='del'>-    unless method_defined? :binread</div><div class='del'>-      def binread(file, *args)</div><div class='del'>-        raise ArgumentError, "wrong number of arguments (#{1 + args.size} for 1..3)" unless args.size &lt; 3</div><div class='del'>-        File.open(file, "rb") do |f|</div><div class='del'>-          f.read(*args)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb b/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb<br/>deleted file mode 100644<br/>index 76f1e43c65..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,129 +0,0 @@</div><div class='del'>-class Bundler::Thor</div><div class='del'>-  module CoreExt</div><div class='del'>-    class OrderedHash &lt; ::Hash</div><div class='del'>-      if RUBY_VERSION &lt; "1.9"</div><div class='del'>-        def initialize(*args, &amp;block)</div><div class='del'>-          super</div><div class='del'>-          @keys = []</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def initialize_copy(other)</div><div class='del'>-          super</div><div class='del'>-          # make a deep copy of keys</div><div class='del'>-          @keys = other.keys</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def []=(key, value)</div><div class='del'>-          @keys &lt;&lt; key unless key?(key)</div><div class='del'>-          super</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def delete(key)</div><div class='del'>-          if key? key</div><div class='del'>-            index = @keys.index(key)</div><div class='del'>-            @keys.delete_at index</div><div class='del'>-          end</div><div class='del'>-          super</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def delete_if</div><div class='del'>-          super</div><div class='del'>-          sync_keys!</div><div class='del'>-          self</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        alias_method :reject!, :delete_if</div><div class='del'>-</div><div class='del'>-        def reject(&amp;block)</div><div class='del'>-          dup.reject!(&amp;block)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def keys</div><div class='del'>-          @keys.dup</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def values</div><div class='del'>-          @keys.map { |key| self[key] }</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def to_hash</div><div class='del'>-          self</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def to_a</div><div class='del'>-          @keys.map { |key| [key, self[key]] }</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def each_key</div><div class='del'>-          return to_enum(:each_key) unless block_given?</div><div class='del'>-          @keys.each { |key| yield(key) }</div><div class='del'>-          self</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def each_value</div><div class='del'>-          return to_enum(:each_value) unless block_given?</div><div class='del'>-          @keys.each { |key| yield(self[key]) }</div><div class='del'>-          self</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def each</div><div class='del'>-          return to_enum(:each) unless block_given?</div><div class='del'>-          @keys.each { |key| yield([key, self[key]]) }</div><div class='del'>-          self</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def each_pair</div><div class='del'>-          return to_enum(:each_pair) unless block_given?</div><div class='del'>-          @keys.each { |key| yield(key, self[key]) }</div><div class='del'>-          self</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        alias_method :select, :find_all</div><div class='del'>-</div><div class='del'>-        def clear</div><div class='del'>-          super</div><div class='del'>-          @keys.clear</div><div class='del'>-          self</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def shift</div><div class='del'>-          k = @keys.first</div><div class='del'>-          v = delete(k)</div><div class='del'>-          [k, v]</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def merge!(other_hash)</div><div class='del'>-          if block_given?</div><div class='del'>-            other_hash.each { |k, v| self[k] = key?(k) ? yield(k, self[k], v) : v }</div><div class='del'>-          else</div><div class='del'>-            other_hash.each { |k, v| self[k] = v }</div><div class='del'>-          end</div><div class='del'>-          self</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        alias_method :update, :merge!</div><div class='del'>-</div><div class='del'>-        def merge(other_hash, &amp;block)</div><div class='del'>-          dup.merge!(other_hash, &amp;block)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # When replacing with another hash, the initial order of our keys must come from the other hash -ordered or not.</div><div class='del'>-        def replace(other)</div><div class='del'>-          super</div><div class='del'>-          @keys = other.keys</div><div class='del'>-          self</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def inspect</div><div class='del'>-          "#&lt;#{self.class} #{super}&gt;"</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        private</div><div class='del'>-</div><div class='del'>-        def sync_keys!</div><div class='del'>-          @keys.delete_if { |k| !key?(k) }</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/error.rb b/lib/bundler/vendor/thor/lib/thor/error.rb<br/>index 2f816081f3..03f2ce85bb 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/error.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/error.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/error.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/error.rb</a></div><div class='hunk'>@@ -1,4 +1,19 @@</div><div class='ctx'> class Bundler::Thor</div><div class='add'>+  Correctable = if defined?(DidYouMean::SpellChecker) &amp;&amp; defined?(DidYouMean::Correctable) # rubocop:disable Naming/ConstantName</div><div class='add'>+                  # In order to support versions of Ruby that don't have keyword</div><div class='add'>+                  # arguments, we need our own spell checker class that doesn't take key</div><div class='add'>+                  # words. Even though this code wouldn't be hit because of the check</div><div class='add'>+                  # above, it's still necessary because the interpreter would otherwise be</div><div class='add'>+                  # unable to parse the file.</div><div class='add'>+                  class NoKwargSpellChecker &lt; DidYouMean::SpellChecker # :nodoc:</div><div class='add'>+                    def initialize(dictionary)</div><div class='add'>+                      @dictionary = dictionary</div><div class='add'>+                    end</div><div class='add'>+                  end</div><div class='add'>+</div><div class='add'>+                  DidYouMean::Correctable</div><div class='add'>+                end</div><div class='add'>+</div><div class='ctx'>   # Bundler::Thor::Error is raised when it's caused by wrong usage of thor classes. Those</div><div class='ctx'>   # errors have their backtrace suppressed and are nicely shown to the user.</div><div class='ctx'>   #</div><div class='hunk'>@@ -10,6 +25,35 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>   # Raised when a command was not found.</div><div class='ctx'>   class UndefinedCommandError &lt; Error</div><div class='add'>+    class SpellChecker</div><div class='add'>+      attr_reader :error</div><div class='add'>+</div><div class='add'>+      def initialize(error)</div><div class='add'>+        @error = error</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def corrections</div><div class='add'>+        @corrections ||= spell_checker.correct(error.command).map(&amp;:inspect)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def spell_checker</div><div class='add'>+        NoKwargSpellChecker.new(error.all_commands)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    attr_reader :command, :all_commands</div><div class='add'>+</div><div class='add'>+    def initialize(command, all_commands, namespace)</div><div class='add'>+      @command = command</div><div class='add'>+      @all_commands = all_commands</div><div class='add'>+</div><div class='add'>+      message = "Could not find command #{command.inspect}"</div><div class='add'>+      message = namespace ? "#{message} in #{namespace.inspect} namespace." : "#{message}."</div><div class='add'>+</div><div class='add'>+      super(message)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    prepend Correctable if Correctable</div><div class='ctx'>   end</div><div class='ctx'>   UndefinedTaskError = UndefinedCommandError</div><div class='ctx'> </div><div class='hunk'>@@ -22,6 +66,33 @@ class Bundler::Thor</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   class UnknownArgumentError &lt; Error</div><div class='add'>+    class SpellChecker</div><div class='add'>+      attr_reader :error</div><div class='add'>+</div><div class='add'>+      def initialize(error)</div><div class='add'>+        @error = error</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def corrections</div><div class='add'>+        @corrections ||=</div><div class='add'>+          error.unknown.flat_map { |unknown| spell_checker.correct(unknown) }.uniq.map(&amp;:inspect)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def spell_checker</div><div class='add'>+        @spell_checker ||= NoKwargSpellChecker.new(error.switches)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    attr_reader :switches, :unknown</div><div class='add'>+</div><div class='add'>+    def initialize(switches, unknown)</div><div class='add'>+      @switches = switches</div><div class='add'>+      @unknown = unknown</div><div class='add'>+</div><div class='add'>+      super("Unknown switches #{unknown.map(&amp;:inspect).join(', ')}")</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    prepend Correctable if Correctable</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   class RequiredArgumentMissingError &lt; InvocationError</div><div class='hunk'>@@ -29,4 +100,16 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>   class MalformattedArgumentError &lt; InvocationError</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  if Correctable</div><div class='add'>+    if DidYouMean.respond_to?(:correct_error)</div><div class='add'>+      DidYouMean.correct_error(Bundler::Thor::UndefinedCommandError, UndefinedCommandError::SpellChecker)</div><div class='add'>+      DidYouMean.correct_error(Bundler::Thor::UnknownArgumentError, UnknownArgumentError::SpellChecker)</div><div class='add'>+    else</div><div class='add'>+      DidYouMean::SPELL_CHECKERS.merge!(</div><div class='add'>+        'Bundler::Thor::UndefinedCommandError' =&gt; UndefinedCommandError::SpellChecker,</div><div class='add'>+        'Bundler::Thor::UnknownArgumentError' =&gt; UnknownArgumentError::SpellChecker</div><div class='add'>+      )</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/group.rb b/lib/bundler/vendor/thor/lib/thor/group.rb<br/>index 05ddc10cd3..7861d05345 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/group.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/group.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/group.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/group.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-require "bundler/vendor/thor/lib/thor/base"</div><div class='add'>+require_relative "base"</div><div class='ctx'> </div><div class='ctx'> # Bundler::Thor has a special class called Bundler::Thor::Group. The main difference to Bundler::Thor class</div><div class='ctx'> # is that it invokes all commands at once. It also include some methods that allows</div><div class='hunk'>@@ -61,7 +61,7 @@ class Bundler::Thor::Group</div><div class='ctx'>         invocations[name] = false</div><div class='ctx'>         invocation_blocks[name] = block if block_given?</div><div class='ctx'> </div><div class='del'>-        class_eval &lt;&lt;-METHOD, __FILE__, __LINE__</div><div class='add'>+        class_eval &lt;&lt;-METHOD, __FILE__, __LINE__ + 1</div><div class='ctx'>           def _invoke_#{name.to_s.gsub(/\W/, '_')}</div><div class='ctx'>             klass, command = self.class.prepare_for_invocation(nil, #{name.inspect})</div><div class='ctx'> </div><div class='hunk'>@@ -120,7 +120,7 @@ class Bundler::Thor::Group</div><div class='ctx'>         invocations[name] = true</div><div class='ctx'>         invocation_blocks[name] = block if block_given?</div><div class='ctx'> </div><div class='del'>-        class_eval &lt;&lt;-METHOD, __FILE__, __LINE__</div><div class='add'>+        class_eval &lt;&lt;-METHOD, __FILE__, __LINE__ + 1</div><div class='ctx'>           def _invoke_from_option_#{name.to_s.gsub(/\W/, '_')}</div><div class='ctx'>             return unless options[#{name.inspect}]</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/invocation.rb b/lib/bundler/vendor/thor/lib/thor/invocation.rb<br/>index 866d2212a7..248a466f8e 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/invocation.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/invocation.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/invocation.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/invocation.rb</a></div><div class='hunk'>@@ -1,6 +1,7 @@</div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   module Invocation</div><div class='ctx'>     def self.included(base) #:nodoc:</div><div class='add'>+      super(base)</div><div class='ctx'>       base.extend ClassMethods</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/line_editor.rb b/lib/bundler/vendor/thor/lib/thor/line_editor.rb<br/>index ce81a17484..5c0c336e7a 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/line_editor.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/line_editor.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/line_editor.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/line_editor.rb</a></div><div class='hunk'>@@ -1,5 +1,5 @@</div><div class='del'>-require "bundler/vendor/thor/lib/thor/line_editor/basic"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/line_editor/readline"</div><div class='add'>+require_relative "line_editor/basic"</div><div class='add'>+require_relative "line_editor/readline"</div><div class='ctx'> </div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   module LineEditor</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb b/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb<br/>index 0adb2b3137..fe3d7c998f 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb</a></div><div class='hunk'>@@ -24,7 +24,7 @@ class Bundler::Thor</div><div class='ctx'>           $stdin.gets</div><div class='ctx'>         else</div><div class='ctx'>           # Lazy-load io/console since it is gem-ified as of 2.3</div><div class='del'>-          require "io/console" if RUBY_VERSION &gt; "1.9.2"</div><div class='add'>+          require "io/console"</div><div class='ctx'>           $stdin.noecho(&amp;:gets)</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb b/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb<br/>index dd39cff35d..120eadd06a 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb</a></div><div class='hunk'>@@ -1,19 +1,19 @@</div><div class='del'>-begin</div><div class='del'>-  require "readline"</div><div class='del'>-rescue LoadError</div><div class='del'>-end</div><div class='del'>-</div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   module LineEditor</div><div class='ctx'>     class Readline &lt; Basic</div><div class='ctx'>       def self.available?</div><div class='add'>+        begin</div><div class='add'>+          require "readline"</div><div class='add'>+        rescue LoadError</div><div class='add'>+        end</div><div class='add'>+</div><div class='ctx'>         Object.const_defined?(:Readline)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def readline</div><div class='ctx'>         if echo?</div><div class='ctx'>           ::Readline.completion_append_character = nil</div><div class='del'>-          # Ruby 1.8.7 does not allow Readline.completion_proc= to receive nil.</div><div class='add'>+          # rb-readline does not allow Readline.completion_proc= to receive nil.</div><div class='ctx'>           if complete = completion_proc</div><div class='ctx'>             ::Readline.completion_proc = complete</div><div class='ctx'>           end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/nested_context.rb b/lib/bundler/vendor/thor/lib/thor/nested_context.rb<br/>new file mode 100644<br/>index 0000000000..fd36b9d43f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/nested_context.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/nested_context.rb</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+class Bundler::Thor</div><div class='add'>+  class NestedContext</div><div class='add'>+    def initialize</div><div class='add'>+      @depth = 0</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def enter</div><div class='add'>+      push</div><div class='add'>+</div><div class='add'>+      yield</div><div class='add'>+    ensure</div><div class='add'>+      pop</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def entered?</div><div class='add'>+      @depth &gt; 0</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def push</div><div class='add'>+      @depth += 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def pop</div><div class='add'>+      @depth -= 1</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/parser.rb b/lib/bundler/vendor/thor/lib/thor/parser.rb<br/>index 08f80e565d..45394732ca 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/parser.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/parser.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/parser.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/parser.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-require "bundler/vendor/thor/lib/thor/parser/argument"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/parser/arguments"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/parser/option"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/parser/options"</div><div class='add'>+require_relative "parser/argument"</div><div class='add'>+require_relative "parser/arguments"</div><div class='add'>+require_relative "parser/option"</div><div class='add'>+require_relative "parser/options"</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb b/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb<br/>index 1fd790f4b7..3a5d82cf29 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/parser/arguments.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/parser/arguments.rb</a></div><div class='hunk'>@@ -9,7 +9,7 @@ class Bundler::Thor</div><div class='ctx'>       arguments = []</div><div class='ctx'> </div><div class='ctx'>       args.each do |item|</div><div class='del'>-        break if item =~ /^-/</div><div class='add'>+        break if item.is_a?(String) &amp;&amp; item =~ /^-/</div><div class='ctx'>         arguments &lt;&lt; item</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -30,7 +30,11 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>       arguments.each do |argument|</div><div class='ctx'>         if !argument.default.nil?</div><div class='del'>-          @assigns[argument.human_name] = argument.default</div><div class='add'>+          begin</div><div class='add'>+            @assigns[argument.human_name] = argument.default.dup</div><div class='add'>+          rescue TypeError  # Compatibility shim for un-dup-able Fixnum in Ruby &lt; 2.4</div><div class='add'>+            @assigns[argument.human_name] = argument.default</div><div class='add'>+          end</div><div class='ctx'>         elsif argument.required?</div><div class='ctx'>           @non_assigned_required &lt;&lt; argument</div><div class='ctx'>         end</div><div class='hunk'>@@ -82,7 +86,7 @@ class Bundler::Thor</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def current_is_value?</div><div class='del'>-      peek &amp;&amp; peek.to_s !~ /^-/</div><div class='add'>+      peek &amp;&amp; peek.to_s !~ /^-{1,2}\S+/</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Runs through the argument array getting strings that contains ":" and</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/parser/option.rb b/lib/bundler/vendor/thor/lib/thor/parser/option.rb<br/>index 85169b56c8..5a5af6f888 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/parser/option.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/parser/option.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/parser/option.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/parser/option.rb</a></div><div class='hunk'>@@ -1,17 +1,18 @@</div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   class Option &lt; Argument #:nodoc:</div><div class='del'>-    attr_reader :aliases, :group, :lazy_default, :hide</div><div class='add'>+    attr_reader :aliases, :group, :lazy_default, :hide, :repeatable</div><div class='ctx'> </div><div class='ctx'>     VALID_TYPES = [:boolean, :numeric, :hash, :array, :string]</div><div class='ctx'> </div><div class='ctx'>     def initialize(name, options = {})</div><div class='ctx'>       @check_default_type = options[:check_default_type]</div><div class='ctx'>       options[:required] = false unless options.key?(:required)</div><div class='add'>+      @repeatable     = options.fetch(:repeatable, false)</div><div class='ctx'>       super</div><div class='del'>-      @lazy_default = options[:lazy_default]</div><div class='del'>-      @group        = options[:group].to_s.capitalize if options[:group]</div><div class='del'>-      @aliases      = Array(options[:aliases])</div><div class='del'>-      @hide         = options[:hide]</div><div class='add'>+      @lazy_default   = options[:lazy_default]</div><div class='add'>+      @group          = options[:group].to_s.capitalize if options[:group]</div><div class='add'>+      @aliases        = Array(options[:aliases])</div><div class='add'>+      @hide           = options[:hide]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # This parse quick options given as method_options. It makes several</div><div class='hunk'>@@ -111,7 +112,7 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>     def validate!</div><div class='ctx'>       raise ArgumentError, "An option cannot be boolean and required." if boolean? &amp;&amp; required?</div><div class='del'>-      validate_default_type! if @check_default_type</div><div class='add'>+      validate_default_type!</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def validate_default_type!</div><div class='hunk'>@@ -128,7 +129,19 @@ class Bundler::Thor</div><div class='ctx'>         @default.class.name.downcase.to_sym</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      raise ArgumentError, "Expected #{@type} default value for '#{switch_name}'; got #{@default.inspect} (#{default_type})" unless default_type == @type</div><div class='add'>+      expected_type = (@repeatable &amp;&amp; @type != :hash) ? :array : @type</div><div class='add'>+</div><div class='add'>+      if default_type != expected_type</div><div class='add'>+        err = "Expected #{expected_type} default value for '#{switch_name}'; got #{@default.inspect} (#{default_type})"</div><div class='add'>+</div><div class='add'>+        if @check_default_type</div><div class='add'>+          raise ArgumentError, err</div><div class='add'>+        elsif @check_default_type == nil</div><div class='add'>+          Bundler::Thor.deprecation_warning "#{err}.\n" +</div><div class='add'>+            'This will be rejected in the future unless you explicitly pass the options `check_default_type: false`' +</div><div class='add'>+            ' or call `allow_incompatible_default_type!` in your code'</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def dasherized?</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/parser/options.rb b/lib/bundler/vendor/thor/lib/thor/parser/options.rb<br/>index 70f6366842..5bd97aba6f 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/parser/options.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/parser/options.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/parser/options.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/parser/options.rb</a></div><div class='hunk'>@@ -44,6 +44,8 @@ class Bundler::Thor</div><div class='ctx'>       @shorts = {}</div><div class='ctx'>       @switches = {}</div><div class='ctx'>       @extra = []</div><div class='add'>+      @stopped_parsing_after_extra_index = nil</div><div class='add'>+      @is_treated_as_value = false</div><div class='ctx'> </div><div class='ctx'>       options.each do |option|</div><div class='ctx'>         @switches[option.switch_name] = option</div><div class='hunk'>@@ -66,14 +68,26 @@ class Bundler::Thor</div><div class='ctx'>       if result == OPTS_END</div><div class='ctx'>         shift</div><div class='ctx'>         @parsing_options = false</div><div class='add'>+        @stopped_parsing_after_extra_index ||= @extra.size</div><div class='ctx'>         super</div><div class='ctx'>       else</div><div class='ctx'>         result</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def shift</div><div class='add'>+      @is_treated_as_value = false</div><div class='add'>+      super</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def unshift(arg, is_value: false)</div><div class='add'>+      @is_treated_as_value = is_value</div><div class='add'>+      super(arg)</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def parse(args) # rubocop:disable MethodLength</div><div class='ctx'>       @pile = args.dup</div><div class='add'>+      @is_treated_as_value = false</div><div class='ctx'>       @parsing_options = true</div><div class='ctx'> </div><div class='ctx'>       while peek</div><div class='hunk'>@@ -86,7 +100,10 @@ class Bundler::Thor</div><div class='ctx'>             when SHORT_SQ_RE</div><div class='ctx'>               unshift($1.split("").map { |f| "-#{f}" })</div><div class='ctx'>               next</div><div class='del'>-            when EQ_RE, SHORT_NUM</div><div class='add'>+            when EQ_RE</div><div class='add'>+              unshift($2, is_value: true)</div><div class='add'>+              switch = $1</div><div class='add'>+            when SHORT_NUM</div><div class='ctx'>               unshift($2)</div><div class='ctx'>               switch = $1</div><div class='ctx'>             when LONG_RE, SHORT_RE</div><div class='hunk'>@@ -95,10 +112,12 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>             switch = normalize_switch(switch)</div><div class='ctx'>             option = switch_option(switch)</div><div class='del'>-            @assigns[option.human_name] = parse_peek(switch, option)</div><div class='add'>+            result = parse_peek(switch, option)</div><div class='add'>+            assign_result!(option, result)</div><div class='ctx'>           elsif @stop_on_unknown</div><div class='ctx'>             @parsing_options = false</div><div class='ctx'>             @extra &lt;&lt; shifted</div><div class='add'>+            @stopped_parsing_after_extra_index ||= @extra.size</div><div class='ctx'>             @extra &lt;&lt; shift while peek</div><div class='ctx'>             break</div><div class='ctx'>           elsif match</div><div class='hunk'>@@ -120,18 +139,31 @@ class Bundler::Thor</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def check_unknown!</div><div class='add'>+      to_check = @stopped_parsing_after_extra_index ? @extra[0...@stopped_parsing_after_extra_index] : @extra</div><div class='add'>+</div><div class='ctx'>       # an unknown option starts with - or -- and has no more --'s afterward.</div><div class='del'>-      unknown = @extra.select { |str| str =~ /^--?(?:(?!--).)*$/ }</div><div class='del'>-      raise UnknownArgumentError, "Unknown switches '#{unknown.join(', ')}'" unless unknown.empty?</div><div class='add'>+      unknown = to_check.select { |str| str =~ /^--?(?:(?!--).)*$/ }</div><div class='add'>+      raise UnknownArgumentError.new(@switches.keys, unknown) unless unknown.empty?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>   protected</div><div class='ctx'> </div><div class='add'>+    def assign_result!(option, result)</div><div class='add'>+      if option.repeatable &amp;&amp; option.type == :hash</div><div class='add'>+        (@assigns[option.human_name] ||= {}).merge!(result)</div><div class='add'>+      elsif option.repeatable</div><div class='add'>+        (@assigns[option.human_name] ||= []) &lt;&lt; result</div><div class='add'>+      else</div><div class='add'>+        @assigns[option.human_name] = result</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # Check if the current value in peek is a registered switch.</div><div class='ctx'>     #</div><div class='ctx'>     # Two booleans are returned.  The first is true if the current value</div><div class='ctx'>     # starts with a hyphen; the second is true if it is a registered switch.</div><div class='ctx'>     def current_is_switch?</div><div class='add'>+      return [false, false] if @is_treated_as_value</div><div class='ctx'>       case peek</div><div class='ctx'>       when LONG_RE, SHORT_RE, EQ_RE, SHORT_NUM</div><div class='ctx'>         [true, switch?($1)]</div><div class='hunk'>@@ -143,6 +175,7 @@ class Bundler::Thor</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def current_is_switch_formatted?</div><div class='add'>+      return false if @is_treated_as_value</div><div class='ctx'>       case peek</div><div class='ctx'>       when LONG_RE, SHORT_RE, EQ_RE, SHORT_NUM, SHORT_SQ_RE</div><div class='ctx'>         true</div><div class='hunk'>@@ -152,11 +185,12 @@ class Bundler::Thor</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def current_is_value?</div><div class='add'>+      return true if @is_treated_as_value</div><div class='ctx'>       peek &amp;&amp; (!parsing_options? || super)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def switch?(arg)</div><div class='del'>-      switch_option(normalize_switch(arg))</div><div class='add'>+      !switch_option(normalize_switch(arg)).nil?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def switch_option(arg)</div><div class='hunk'>@@ -189,7 +223,7 @@ class Bundler::Thor</div><div class='ctx'>           shift</div><div class='ctx'>           false</div><div class='ctx'>         else</div><div class='del'>-          !no_or_skip?(switch)</div><div class='add'>+          @switches.key?(switch) || !no_or_skip?(switch)</div><div class='ctx'>         end</div><div class='ctx'>       else</div><div class='ctx'>         @switches.key?(switch) || !no_or_skip?(switch)</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/rake_compat.rb b/lib/bundler/vendor/thor/lib/thor/rake_compat.rb<br/>index 60282e2991..f8f86372cc 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/rake_compat.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/rake_compat.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/rake_compat.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/rake_compat.rb</a></div><div class='hunk'>@@ -25,6 +25,7 @@ class Bundler::Thor</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def self.included(base)</div><div class='add'>+      super(base)</div><div class='ctx'>       # Hack. Make rakefile point to invoker, so rdoc task is generated properly.</div><div class='ctx'>       rakefile = File.basename(caller[0].match(/(.*):\d+/)[1])</div><div class='ctx'>       Rake.application.instance_variable_set(:@rakefile, rakefile)</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/runner.rb b/lib/bundler/vendor/thor/lib/thor/runner.rb<br/>index b110b8d478..54c5525093 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/runner.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/runner.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/runner.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/runner.rb</a></div><div class='hunk'>@@ -1,12 +1,13 @@</div><div class='del'>-require "bundler/vendor/thor/lib/thor"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/group"</div><div class='del'>-require "bundler/vendor/thor/lib/thor/core_ext/io_binary_read"</div><div class='add'>+require_relative "../thor"</div><div class='add'>+require_relative "group"</div><div class='ctx'> </div><div class='ctx'> require "yaml"</div><div class='del'>-require "digest"</div><div class='add'>+require "digest/md5"</div><div class='ctx'> require "pathname"</div><div class='ctx'> </div><div class='ctx'> class Bundler::Thor::Runner &lt; Bundler::Thor #:nodoc: # rubocop:disable ClassLength</div><div class='add'>+  autoload :OpenURI, "open-uri"</div><div class='add'>+</div><div class='ctx'>   map "-T" =&gt; :list, "-i" =&gt; :install, "-u" =&gt; :update, "-v" =&gt; :version</div><div class='ctx'> </div><div class='ctx'>   def self.banner(command, all = false, subcommand = false)</div><div class='hunk'>@@ -65,7 +66,7 @@ class Bundler::Thor::Runner &lt; Bundler::Thor #:nodoc: # rubocop:disable ClassLeng</div><div class='ctx'>       raise Error, "Error opening file '#{name}'"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    say "Your Bundler::Thorfile contains:"</div><div class='add'>+    say "Your Thorfile contains:"</div><div class='ctx'>     say contents</div><div class='ctx'> </div><div class='ctx'>     unless options["force"]</div><div class='hunk'>@@ -90,7 +91,7 @@ class Bundler::Thor::Runner &lt; Bundler::Thor #:nodoc: # rubocop:disable ClassLeng</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     thor_yaml[as] = {</div><div class='del'>-      :filename   =&gt; Digest(:MD5).hexdigest(name + as),</div><div class='add'>+      :filename   =&gt; Digest::MD5.hexdigest(name + as),</div><div class='ctx'>       :location   =&gt; location,</div><div class='ctx'>       :namespaces =&gt; Bundler::Thor::Util.namespaces_in_content(contents, base)</div><div class='ctx'>     }</div><div class='hunk'>@@ -111,7 +112,7 @@ class Bundler::Thor::Runner &lt; Bundler::Thor #:nodoc: # rubocop:disable ClassLeng</div><div class='ctx'> </div><div class='ctx'>   desc "version", "Show Bundler::Thor version"</div><div class='ctx'>   def version</div><div class='del'>-    require "bundler/vendor/thor/lib/thor/version"</div><div class='add'>+    require_relative "version"</div><div class='ctx'>     say "Bundler::Thor #{Bundler::Thor::VERSION}"</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -204,7 +205,7 @@ private</div><div class='ctx'>     File.open(yaml_file, "w") { |f| f.puts yaml.to_yaml }</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Load the Bundler::Thorfiles. If relevant_to is supplied, looks for specific files</div><div class='add'>+  # Load the Thorfiles. If relevant_to is supplied, looks for specific files</div><div class='ctx'>   # in the thor_root instead of loading them all.</div><div class='ctx'>   #</div><div class='ctx'>   # By default, it also traverses the current path until find Bundler::Thor files, as</div><div class='hunk'>@@ -217,11 +218,11 @@ private</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Finds Bundler::Thorfiles by traversing from your current directory down to the root</div><div class='add'>+  # Finds Thorfiles by traversing from your current directory down to the root</div><div class='ctx'>   # directory of your system. If at any time we find a Bundler::Thor file, we stop.</div><div class='ctx'>   #</div><div class='del'>-  # We also ensure that system-wide Bundler::Thorfiles are loaded first, so local</div><div class='del'>-  # Bundler::Thorfiles can override them.</div><div class='add'>+  # We also ensure that system-wide Thorfiles are loaded first, so local</div><div class='add'>+  # Thorfiles can override them.</div><div class='ctx'>   #</div><div class='ctx'>   # ==== Example</div><div class='ctx'>   #</div><div class='hunk'>@@ -229,7 +230,7 @@ private</div><div class='ctx'>   #</div><div class='ctx'>   # 1. /Users/wycats/dev/thor</div><div class='ctx'>   # 2. /Users/wycats/dev</div><div class='del'>-  # 3. /Users/wycats &lt;-- we find a Bundler::Thorfile here, so we stop</div><div class='add'>+  # 3. /Users/wycats &lt;-- we find a Thorfile here, so we stop</div><div class='ctx'>   #</div><div class='ctx'>   # Suppose we start at c:\Documents and Settings\james\dev\thor ...</div><div class='ctx'>   #</div><div class='hunk'>@@ -237,7 +238,7 @@ private</div><div class='ctx'>   # 2. c:\Documents and Settings\james\dev</div><div class='ctx'>   # 3. c:\Documents and Settings\james</div><div class='ctx'>   # 4. c:\Documents and Settings</div><div class='del'>-  # 5. c:\ &lt;-- no Bundler::Thorfiles found!</div><div class='add'>+  # 5. c:\ &lt;-- no Thorfiles found!</div><div class='ctx'>   #</div><div class='ctx'>   def thorfiles(relevant_to = nil, skip_lookup = false)</div><div class='ctx'>     thorfiles = []</div><div class='hunk'>@@ -258,7 +259,7 @@ private</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Load Bundler::Thorfiles relevant to the given method. If you provide "foo:bar" it</div><div class='add'>+  # Load Thorfiles relevant to the given method. If you provide "foo:bar" it</div><div class='ctx'>   # will load all thor files in the thor.yaml that has "foo" e "foo:bar"</div><div class='ctx'>   # namespaces registered.</div><div class='ctx'>   #</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/shell.rb b/lib/bundler/vendor/thor/lib/thor/shell.rb<br/>index e945549324..a4137d1bde 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/shell.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/shell.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/shell.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/shell.rb</a></div><div class='hunk'>@@ -21,12 +21,12 @@ class Bundler::Thor</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   module Shell</div><div class='del'>-    SHELL_DELEGATED_METHODS = [:ask, :error, :set_color, :yes?, :no?, :say, :say_status, :print_in_columns, :print_table, :print_wrapped, :file_collision, :terminal_width]</div><div class='add'>+    SHELL_DELEGATED_METHODS = [:ask, :error, :set_color, :yes?, :no?, :say, :say_error, :say_status, :print_in_columns, :print_table, :print_wrapped, :file_collision, :terminal_width]</div><div class='ctx'>     attr_writer :shell</div><div class='ctx'> </div><div class='del'>-    autoload :Basic, "bundler/vendor/thor/lib/thor/shell/basic"</div><div class='del'>-    autoload :Color, "bundler/vendor/thor/lib/thor/shell/color"</div><div class='del'>-    autoload :HTML,  "bundler/vendor/thor/lib/thor/shell/html"</div><div class='add'>+    autoload :Basic, File.expand_path("shell/basic", __dir__)</div><div class='add'>+    autoload :Color, File.expand_path("shell/color", __dir__)</div><div class='add'>+    autoload :HTML,  File.expand_path("shell/html", __dir__)</div><div class='ctx'> </div><div class='ctx'>     # Add shell to initialize config values.</div><div class='ctx'>     #</div><div class='hunk'>@@ -55,7 +55,7 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>     # Common methods that are delegated to the shell.</div><div class='ctx'>     SHELL_DELEGATED_METHODS.each do |method|</div><div class='del'>-      module_eval &lt;&lt;-METHOD, __FILE__, __LINE__</div><div class='add'>+      module_eval &lt;&lt;-METHOD, __FILE__, __LINE__ + 1</div><div class='ctx'>         def #{method}(*args,&amp;block)</div><div class='ctx'>           shell.#{method}(*args,&amp;block)</div><div class='ctx'>         end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/shell/basic.rb b/lib/bundler/vendor/thor/lib/thor/shell/basic.rb<br/>index 5162390efd..ef97d52ae7 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/shell/basic.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/shell/basic.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/shell/basic.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/shell/basic.rb</a></div><div class='hunk'>@@ -1,6 +1,8 @@</div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   module Shell</div><div class='ctx'>     class Basic</div><div class='add'>+      DEFAULT_TERMINAL_WIDTH = 80</div><div class='add'>+</div><div class='ctx'>       attr_accessor :base</div><div class='ctx'>       attr_reader   :padding</div><div class='ctx'> </div><div class='hunk'>@@ -45,6 +47,10 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>       # Asks something to the user and receives a response.</div><div class='ctx'>       #</div><div class='add'>+      # If a default value is specified it will be presented to the user</div><div class='add'>+      # and allows them to select that value with an empty response. This</div><div class='add'>+      # option is ignored when limited answers are supplied.</div><div class='add'>+      #</div><div class='ctx'>       # If asked to limit the correct responses, you can pass in an</div><div class='ctx'>       # array of acceptable answers.  If one of those is not supplied,</div><div class='ctx'>       # they will be shown a message stating that one of those answers</div><div class='hunk'>@@ -61,6 +67,8 @@ class Bundler::Thor</div><div class='ctx'>       # ==== Example</div><div class='ctx'>       # ask("What is your name?")</div><div class='ctx'>       #</div><div class='add'>+      # ask("What is the planet furthest from the sun?", :default =&gt; "Pluto")</div><div class='add'>+      #</div><div class='ctx'>       # ask("What is your favorite Neopolitan flavor?", :limited_to =&gt; ["strawberry", "chocolate", "vanilla"])</div><div class='ctx'>       #</div><div class='ctx'>       # ask("What is your password?", :echo =&gt; false)</div><div class='hunk'>@@ -86,6 +94,8 @@ class Bundler::Thor</div><div class='ctx'>       # say("I know you knew that.")</div><div class='ctx'>       #</div><div class='ctx'>       def say(message = "", color = nil, force_new_line = (message.to_s !~ /( |\t)\Z/))</div><div class='add'>+        return if quiet?</div><div class='add'>+</div><div class='ctx'>         buffer = prepare_message(message, *color)</div><div class='ctx'>         buffer &lt;&lt; "\n" if force_new_line &amp;&amp; !message.to_s.end_with?("\n")</div><div class='ctx'> </div><div class='hunk'>@@ -93,6 +103,23 @@ class Bundler::Thor</div><div class='ctx'>         stdout.flush</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='add'>+      # Say (print) an error to the user. If the sentence ends with a whitespace</div><div class='add'>+      # or tab character, a new line is not appended (print + flush). Otherwise</div><div class='add'>+      # are passed straight to puts (behavior got from Highline).</div><div class='add'>+      #</div><div class='add'>+      # ==== Example</div><div class='add'>+      # say_error("error: something went wrong")</div><div class='add'>+      #</div><div class='add'>+      def say_error(message = "", color = nil, force_new_line = (message.to_s !~ /( |\t)\Z/))</div><div class='add'>+        return if quiet?</div><div class='add'>+</div><div class='add'>+        buffer = prepare_message(message, *color)</div><div class='add'>+        buffer &lt;&lt; "\n" if force_new_line &amp;&amp; !message.to_s.end_with?("\n")</div><div class='add'>+</div><div class='add'>+        stderr.print(buffer)</div><div class='add'>+        stderr.flush</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       # Say a status with the given color and appends the message. Since this</div><div class='ctx'>       # method is used frequently by actions, it allows nil or false to be given</div><div class='ctx'>       # in log_status, avoiding the message from being shown. If a Symbol is</div><div class='hunk'>@@ -101,13 +128,14 @@ class Bundler::Thor</div><div class='ctx'>       def say_status(status, message, log_status = true)</div><div class='ctx'>         return if quiet? || log_status == false</div><div class='ctx'>         spaces = "  " * (padding + 1)</div><div class='del'>-        color  = log_status.is_a?(Symbol) ? log_status : :green</div><div class='del'>-</div><div class='ctx'>         status = status.to_s.rjust(12)</div><div class='add'>+        margin = " " * status.length + spaces</div><div class='add'>+</div><div class='add'>+        color  = log_status.is_a?(Symbol) ? log_status : :green</div><div class='ctx'>         status = set_color status, color, true if color</div><div class='ctx'> </div><div class='del'>-        buffer = "#{status}#{spaces}#{message}"</div><div class='del'>-        buffer = "#{buffer}\n" unless buffer.end_with?("\n")</div><div class='add'>+        message = message.to_s.chomp.gsub(/(?&lt;!\A)^/, margin)</div><div class='add'>+        buffer = "#{status}#{spaces}#{message}\n"</div><div class='ctx'> </div><div class='ctx'>         stdout.print(buffer)</div><div class='ctx'>         stdout.flush</div><div class='hunk'>@@ -222,8 +250,21 @@ class Bundler::Thor</div><div class='ctx'>         paras = message.split("\n\n")</div><div class='ctx'> </div><div class='ctx'>         paras.map! do |unwrapped|</div><div class='del'>-          unwrapped.strip.tr("\n", " ").squeeze(" ").gsub(/.{1,#{width}}(?:\s|\Z)/) { ($&amp; + 5.chr).gsub(/\n\005/, "\n").gsub(/\005/, "\n") }</div><div class='del'>-        end</div><div class='add'>+          words = unwrapped.split(" ")</div><div class='add'>+          counter = words.first.length</div><div class='add'>+          words.inject do |memo, word|</div><div class='add'>+            word = word.gsub(/\n\005/, "\n").gsub(/\005/, "\n")</div><div class='add'>+            counter = 0 if word.include? "\n"</div><div class='add'>+            if (counter + word.length + 1) &lt; width</div><div class='add'>+              memo = "#{memo} #{word}"</div><div class='add'>+              counter += (word.length + 1)</div><div class='add'>+            else</div><div class='add'>+              memo = "#{memo}\n#{word}"</div><div class='add'>+              counter = word.length</div><div class='add'>+            end</div><div class='add'>+            memo</div><div class='add'>+          end</div><div class='add'>+        end.compact!</div><div class='ctx'> </div><div class='ctx'>         paras.each do |para|</div><div class='ctx'>           para.split("\n").each do |line|</div><div class='hunk'>@@ -239,11 +280,11 @@ class Bundler::Thor</div><div class='ctx'>       #</div><div class='ctx'>       # ==== Parameters</div><div class='ctx'>       # destination&lt;String&gt;:: the destination file to solve conflicts</div><div class='del'>-      # block&lt;Proc&gt;:: an optional block that returns the value to be used in diff</div><div class='add'>+      # block&lt;Proc&gt;:: an optional block that returns the value to be used in diff and merge</div><div class='ctx'>       #</div><div class='ctx'>       def file_collision(destination)</div><div class='ctx'>         return true if @always_force</div><div class='del'>-        options = block_given? ? "[Ynaqdh]" : "[Ynaqh]"</div><div class='add'>+        options = block_given? ? "[Ynaqdhm]" : "[Ynaqh]"</div><div class='ctx'> </div><div class='ctx'>         loop do</div><div class='ctx'>           answer = ask(</div><div class='hunk'>@@ -267,6 +308,13 @@ class Bundler::Thor</div><div class='ctx'>           when is?(:diff)</div><div class='ctx'>             show_diff(destination, yield) if block_given?</div><div class='ctx'>             say "Retrying..."</div><div class='add'>+          when is?(:merge)</div><div class='add'>+            if block_given? &amp;&amp; !merge_tool.empty?</div><div class='add'>+              merge(destination, yield)</div><div class='add'>+              return nil</div><div class='add'>+            end</div><div class='add'>+</div><div class='add'>+            say "Please specify merge tool to `THOR_MERGE` env."</div><div class='ctx'>           else</div><div class='ctx'>             say file_collision_help</div><div class='ctx'>           end</div><div class='hunk'>@@ -279,11 +327,11 @@ class Bundler::Thor</div><div class='ctx'>         result = if ENV["THOR_COLUMNS"]</div><div class='ctx'>           ENV["THOR_COLUMNS"].to_i</div><div class='ctx'>         else</div><div class='del'>-          unix? ? dynamic_width : 80</div><div class='add'>+          unix? ? dynamic_width : DEFAULT_TERMINAL_WIDTH</div><div class='ctx'>         end</div><div class='del'>-        result &lt; 10 ? 80 : result</div><div class='add'>+        result &lt; 10 ? DEFAULT_TERMINAL_WIDTH : result</div><div class='ctx'>       rescue</div><div class='del'>-        80</div><div class='add'>+        DEFAULT_TERMINAL_WIDTH</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Called if something goes wrong during the execution. This is used by Bundler::Thor</div><div class='hunk'>@@ -344,6 +392,7 @@ class Bundler::Thor</div><div class='ctx'>         q - quit, abort</div><div class='ctx'>         d - diff, show the differences between the old and the new</div><div class='ctx'>         h - help, show this help</div><div class='add'>+        m - merge, run merge tool</div><div class='ctx'>         HELP</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -376,7 +425,7 @@ class Bundler::Thor</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def unix?</div><div class='del'>-        RUBY_PLATFORM =~ /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i</div><div class='add'>+        RUBY_PLATFORM =~ /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris)/i</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def truncate(string, width)</div><div class='hunk'>@@ -423,15 +472,41 @@ class Bundler::Thor</div><div class='ctx'> </div><div class='ctx'>       def ask_filtered(statement, color, options)</div><div class='ctx'>         answer_set = options[:limited_to]</div><div class='add'>+        case_insensitive = options.fetch(:case_insensitive, false)</div><div class='ctx'>         correct_answer = nil</div><div class='ctx'>         until correct_answer</div><div class='ctx'>           answers = answer_set.join(", ")</div><div class='ctx'>           answer = ask_simply("#{statement} [#{answers}]", color, options)</div><div class='del'>-          correct_answer = answer_set.include?(answer) ? answer : nil</div><div class='add'>+          correct_answer = answer_match(answer_set, answer, case_insensitive)</div><div class='ctx'>           say("Your response must be one of: [#{answers}]. Please try again.") unless correct_answer</div><div class='ctx'>         end</div><div class='ctx'>         correct_answer</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      def answer_match(possibilities, answer, case_insensitive)</div><div class='add'>+        if case_insensitive</div><div class='add'>+          possibilities.detect{ |possibility| possibility.downcase == answer.downcase }</div><div class='add'>+        else</div><div class='add'>+          possibilities.detect{ |possibility| possibility == answer }</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def merge(destination, content) #:nodoc:</div><div class='add'>+        require "tempfile"</div><div class='add'>+        Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination)) do |temp|</div><div class='add'>+          temp.write content</div><div class='add'>+          temp.rewind</div><div class='add'>+          system %(#{merge_tool} "#{temp.path}" "#{destination}")</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def merge_tool #:nodoc:</div><div class='add'>+        @merge_tool ||= ENV["THOR_MERGE"] || git_merge_tool</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def git_merge_tool #:nodoc:</div><div class='add'>+        `git config merge.tool`.rstrip rescue ""</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/shell/color.rb b/lib/bundler/vendor/thor/lib/thor/shell/color.rb<br/>index da289cb50c..dc167ed3cc 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/shell/color.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/shell/color.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/shell/color.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/shell/color.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-require "bundler/vendor/thor/lib/thor/shell/basic"</div><div class='add'>+require_relative "basic"</div><div class='ctx'> </div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   module Shell</div><div class='hunk'>@@ -97,7 +97,15 @@ class Bundler::Thor</div><div class='ctx'>     protected</div><div class='ctx'> </div><div class='ctx'>       def can_display_colors?</div><div class='del'>-        stdout.tty?</div><div class='add'>+        are_colors_supported? &amp;&amp; !are_colors_disabled?</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def are_colors_supported?</div><div class='add'>+        stdout.tty? &amp;&amp; ENV["TERM"] != "dumb"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def are_colors_disabled?</div><div class='add'>+        !ENV['NO_COLOR'].nil?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Overwrite show_diff to show diff with colors if Diff::LCS is</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/shell/html.rb b/lib/bundler/vendor/thor/lib/thor/shell/html.rb<br/>index 83d2054988..77a6d13a23 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/shell/html.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/shell/html.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/shell/html.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/shell/html.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-require "bundler/vendor/thor/lib/thor/shell/basic"</div><div class='add'>+require_relative "basic"</div><div class='ctx'> </div><div class='ctx'> class Bundler::Thor</div><div class='ctx'>   module Shell</div><div class='hunk'>@@ -51,13 +51,13 @@ class Bundler::Thor</div><div class='ctx'>       def set_color(string, *colors)</div><div class='ctx'>         if colors.all? { |color| color.is_a?(Symbol) || color.is_a?(String) }</div><div class='ctx'>           html_colors = colors.map { |color| lookup_color(color) }</div><div class='del'>-          "&lt;span style=\"#{html_colors.join('; ')};\"&gt;#{string}&lt;/span&gt;"</div><div class='add'>+          "&lt;span style=\"#{html_colors.join('; ')};\"&gt;#{Bundler::Thor::Util.escape_html(string)}&lt;/span&gt;"</div><div class='ctx'>         else</div><div class='ctx'>           color, bold = colors</div><div class='ctx'>           html_color = self.class.const_get(color.to_s.upcase) if color.is_a?(Symbol)</div><div class='ctx'>           styles = [html_color]</div><div class='ctx'>           styles &lt;&lt; BOLD if bold</div><div class='del'>-          "&lt;span style=\"#{styles.join('; ')};\"&gt;#{string}&lt;/span&gt;"</div><div class='add'>+          "&lt;span style=\"#{styles.join('; ')};\"&gt;#{Bundler::Thor::Util.escape_html(string)}&lt;/span&gt;"</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/util.rb b/lib/bundler/vendor/thor/lib/thor/util.rb<br/>index 5d03177a28..d2572a4249 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/util.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/util.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/util.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/util.rb</a></div><div class='hunk'>@@ -27,7 +27,7 @@ class Bundler::Thor</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Receives a constant and converts it to a Bundler::Thor namespace. Since Bundler::Thor</div><div class='del'>-      # commands can be added to a sandbox, this method is also responsable for</div><div class='add'>+      # commands can be added to a sandbox, this method is also responsible for</div><div class='ctx'>       # removing the sandbox namespace.</div><div class='ctx'>       #</div><div class='ctx'>       # This method should not be used in general because it's used to deal with</div><div class='hunk'>@@ -211,7 +211,7 @@ class Bundler::Thor</div><div class='ctx'>       #</div><div class='ctx'>       def globs_for(path)</div><div class='ctx'>         path = escape_globs(path)</div><div class='del'>-        ["#{path}/Bundler::Thorfile", "#{path}/*.thor", "#{path}/tasks/*.thor", "#{path}/lib/tasks/*.thor"]</div><div class='add'>+        ["#{path}/Thorfile", "#{path}/*.thor", "#{path}/tasks/*.thor", "#{path}/lib/tasks/**/*.thor"]</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Return the path to the ruby interpreter taking into account multiple</div><div class='hunk'>@@ -263,6 +263,22 @@ class Bundler::Thor</div><div class='ctx'>       def escape_globs(path)</div><div class='ctx'>         path.to_s.gsub(/[*?{}\[\]]/, '\\\\\\&amp;')</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      # Returns a string that has had any HTML characters escaped.</div><div class='add'>+      #</div><div class='add'>+      # ==== Examples</div><div class='add'>+      #</div><div class='add'>+      #   Bundler::Thor::Util.escape_html('&lt;div&gt;')   # =&gt; "&amp;lt;div&amp;gt;"</div><div class='add'>+      #</div><div class='add'>+      # ==== Parameters</div><div class='add'>+      # String</div><div class='add'>+      #</div><div class='add'>+      # ==== Returns</div><div class='add'>+      # String</div><div class='add'>+      #</div><div class='add'>+      def escape_html(string)</div><div class='add'>+        CGI.escapeHTML(string)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/vendor/thor/lib/thor/version.rb b/lib/bundler/vendor/thor/lib/thor/version.rb<br/>index df8f18821a..48a4788b3b 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/version.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendor/thor/lib/thor/version.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/thor/lib/thor/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/thor/lib/thor/version.rb</a></div><div class='hunk'>@@ -1,3 +1,3 @@</div><div class='ctx'> class Bundler::Thor</div><div class='del'>-  VERSION = "0.20.0"</div><div class='add'>+  VERSION = "1.2.1"</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/vendor/tsort/lib/tsort.rb b/lib/bundler/vendor/tsort/lib/tsort.rb<br/>new file mode 100644<br/>index 0000000000..4a0e1a4e25<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/tsort/lib/tsort.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/tsort/lib/tsort.rb</a></div><div class='hunk'>@@ -0,0 +1,452 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+#--</div><div class='add'>+# tsort.rb - provides a module for topological sorting and strongly connected components.</div><div class='add'>+#++</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+#</div><div class='add'>+# Bundler::TSort implements topological sorting using Tarjan's algorithm for</div><div class='add'>+# strongly connected components.</div><div class='add'>+#</div><div class='add'>+# Bundler::TSort is designed to be able to be used with any object which can be</div><div class='add'>+# interpreted as a directed graph.</div><div class='add'>+#</div><div class='add'>+# Bundler::TSort requires two methods to interpret an object as a graph,</div><div class='add'>+# tsort_each_node and tsort_each_child.</div><div class='add'>+#</div><div class='add'>+# * tsort_each_node is used to iterate for all nodes over a graph.</div><div class='add'>+# * tsort_each_child is used to iterate for child nodes of a given node.</div><div class='add'>+#</div><div class='add'>+# The equality of nodes are defined by eql? and hash since</div><div class='add'>+# Bundler::TSort uses Hash internally.</div><div class='add'>+#</div><div class='add'>+# == A Simple Example</div><div class='add'>+#</div><div class='add'>+# The following example demonstrates how to mix the Bundler::TSort module into an</div><div class='add'>+# existing class (in this case, Hash). Here, we're treating each key in</div><div class='add'>+# the hash as a node in the graph, and so we simply alias the required</div><div class='add'>+# #tsort_each_node method to Hash's #each_key method. For each key in the</div><div class='add'>+# hash, the associated value is an array of the node's child nodes. This</div><div class='add'>+# choice in turn leads to our implementation of the required #tsort_each_child</div><div class='add'>+# method, which fetches the array of child nodes and then iterates over that</div><div class='add'>+# array using the user-supplied block.</div><div class='add'>+#</div><div class='add'>+#   require 'bundler/vendor/tsort/lib/tsort'</div><div class='add'>+#</div><div class='add'>+#   class Hash</div><div class='add'>+#     include Bundler::TSort</div><div class='add'>+#     alias tsort_each_node each_key</div><div class='add'>+#     def tsort_each_child(node, &amp;block)</div><div class='add'>+#       fetch(node).each(&amp;block)</div><div class='add'>+#     end</div><div class='add'>+#   end</div><div class='add'>+#</div><div class='add'>+#   {1=&gt;[2, 3], 2=&gt;[3], 3=&gt;[], 4=&gt;[]}.tsort</div><div class='add'>+#   #=&gt; [3, 2, 1, 4]</div><div class='add'>+#</div><div class='add'>+#   {1=&gt;[2], 2=&gt;[3, 4], 3=&gt;[2], 4=&gt;[]}.strongly_connected_components</div><div class='add'>+#   #=&gt; [[4], [2, 3], [1]]</div><div class='add'>+#</div><div class='add'>+# == A More Realistic Example</div><div class='add'>+#</div><div class='add'>+# A very simple `make' like tool can be implemented as follows:</div><div class='add'>+#</div><div class='add'>+#   require 'bundler/vendor/tsort/lib/tsort'</div><div class='add'>+#</div><div class='add'>+#   class Make</div><div class='add'>+#     def initialize</div><div class='add'>+#       @dep = {}</div><div class='add'>+#       @dep.default = []</div><div class='add'>+#     end</div><div class='add'>+#</div><div class='add'>+#     def rule(outputs, inputs=[], &amp;block)</div><div class='add'>+#       triple = [outputs, inputs, block]</div><div class='add'>+#       outputs.each {|f| @dep[f] = [triple]}</div><div class='add'>+#       @dep[triple] = inputs</div><div class='add'>+#     end</div><div class='add'>+#</div><div class='add'>+#     def build(target)</div><div class='add'>+#       each_strongly_connected_component_from(target) {|ns|</div><div class='add'>+#         if ns.length != 1</div><div class='add'>+#           fs = ns.delete_if {|n| Array === n}</div><div class='add'>+#           raise Bundler::TSort::Cyclic.new("cyclic dependencies: #{fs.join ', '}")</div><div class='add'>+#         end</div><div class='add'>+#         n = ns.first</div><div class='add'>+#         if Array === n</div><div class='add'>+#           outputs, inputs, block = n</div><div class='add'>+#           inputs_time = inputs.map {|f| File.mtime f}.max</div><div class='add'>+#           begin</div><div class='add'>+#             outputs_time = outputs.map {|f| File.mtime f}.min</div><div class='add'>+#           rescue Errno::ENOENT</div><div class='add'>+#             outputs_time = nil</div><div class='add'>+#           end</div><div class='add'>+#           if outputs_time == nil ||</div><div class='add'>+#              inputs_time != nil &amp;&amp; outputs_time &lt;= inputs_time</div><div class='add'>+#             sleep 1 if inputs_time != nil &amp;&amp; inputs_time.to_i == Time.now.to_i</div><div class='add'>+#             block.call</div><div class='add'>+#           end</div><div class='add'>+#         end</div><div class='add'>+#       }</div><div class='add'>+#     end</div><div class='add'>+#</div><div class='add'>+#     def tsort_each_child(node, &amp;block)</div><div class='add'>+#       @dep[node].each(&amp;block)</div><div class='add'>+#     end</div><div class='add'>+#     include Bundler::TSort</div><div class='add'>+#   end</div><div class='add'>+#</div><div class='add'>+#   def command(arg)</div><div class='add'>+#     print arg, "\n"</div><div class='add'>+#     system arg</div><div class='add'>+#   end</div><div class='add'>+#</div><div class='add'>+#   m = Make.new</div><div class='add'>+#   m.rule(%w[t1]) { command 'date &gt; t1' }</div><div class='add'>+#   m.rule(%w[t2]) { command 'date &gt; t2' }</div><div class='add'>+#   m.rule(%w[t3]) { command 'date &gt; t3' }</div><div class='add'>+#   m.rule(%w[t4], %w[t1 t3]) { command 'cat t1 t3 &gt; t4' }</div><div class='add'>+#   m.rule(%w[t5], %w[t4 t2]) { command 'cat t4 t2 &gt; t5' }</div><div class='add'>+#   m.build('t5')</div><div class='add'>+#</div><div class='add'>+# == Bugs</div><div class='add'>+#</div><div class='add'>+# * 'tsort.rb' is wrong name because this library uses</div><div class='add'>+#   Tarjan's algorithm for strongly connected components.</div><div class='add'>+#   Although 'strongly_connected_components.rb' is correct but too long.</div><div class='add'>+#</div><div class='add'>+# == References</div><div class='add'>+#</div><div class='add'>+# R. E. Tarjan, "Depth First Search and Linear Graph Algorithms",</div><div class='add'>+# &lt;em&gt;SIAM Journal on Computing&lt;/em&gt;, Vol. 1, No. 2, pp. 146-160, June 1972.</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+module Bundler::TSort</div><div class='add'>+  class Cyclic &lt; StandardError</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Returns a topologically sorted array of nodes.</div><div class='add'>+  # The array is sorted from children to parents, i.e.</div><div class='add'>+  # the first element has no child and the last node has no parent.</div><div class='add'>+  #</div><div class='add'>+  # If there is a cycle, Bundler::TSort::Cyclic is raised.</div><div class='add'>+  #</div><div class='add'>+  #   class G</div><div class='add'>+  #     include Bundler::TSort</div><div class='add'>+  #     def initialize(g)</div><div class='add'>+  #       @g = g</div><div class='add'>+  #     end</div><div class='add'>+  #     def tsort_each_child(n, &amp;b) @g[n].each(&amp;b) end</div><div class='add'>+  #     def tsort_each_node(&amp;b) @g.each_key(&amp;b) end</div><div class='add'>+  #   end</div><div class='add'>+  #</div><div class='add'>+  #   graph = G.new({1=&gt;[2, 3], 2=&gt;[4], 3=&gt;[2, 4], 4=&gt;[]})</div><div class='add'>+  #   p graph.tsort #=&gt; [4, 2, 3, 1]</div><div class='add'>+  #</div><div class='add'>+  #   graph = G.new({1=&gt;[2], 2=&gt;[3, 4], 3=&gt;[2], 4=&gt;[]})</div><div class='add'>+  #   p graph.tsort # raises Bundler::TSort::Cyclic</div><div class='add'>+  #</div><div class='add'>+  def tsort</div><div class='add'>+    each_node = method(:tsort_each_node)</div><div class='add'>+    each_child = method(:tsort_each_child)</div><div class='add'>+    Bundler::TSort.tsort(each_node, each_child)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Returns a topologically sorted array of nodes.</div><div class='add'>+  # The array is sorted from children to parents, i.e.</div><div class='add'>+  # the first element has no child and the last node has no parent.</div><div class='add'>+  #</div><div class='add'>+  # The graph is represented by _each_node_ and _each_child_.</div><div class='add'>+  # _each_node_ should have +call+ method which yields for each node in the graph.</div><div class='add'>+  # _each_child_ should have +call+ method which takes a node argument and yields for each child node.</div><div class='add'>+  #</div><div class='add'>+  # If there is a cycle, Bundler::TSort::Cyclic is raised.</div><div class='add'>+  #</div><div class='add'>+  #   g = {1=&gt;[2, 3], 2=&gt;[4], 3=&gt;[2, 4], 4=&gt;[]}</div><div class='add'>+  #   each_node = lambda {|&amp;b| g.each_key(&amp;b) }</div><div class='add'>+  #   each_child = lambda {|n, &amp;b| g[n].each(&amp;b) }</div><div class='add'>+  #   p Bundler::TSort.tsort(each_node, each_child) #=&gt; [4, 2, 3, 1]</div><div class='add'>+  #</div><div class='add'>+  #   g = {1=&gt;[2], 2=&gt;[3, 4], 3=&gt;[2], 4=&gt;[]}</div><div class='add'>+  #   each_node = lambda {|&amp;b| g.each_key(&amp;b) }</div><div class='add'>+  #   each_child = lambda {|n, &amp;b| g[n].each(&amp;b) }</div><div class='add'>+  #   p Bundler::TSort.tsort(each_node, each_child) # raises Bundler::TSort::Cyclic</div><div class='add'>+  #</div><div class='add'>+  def self.tsort(each_node, each_child)</div><div class='add'>+    tsort_each(each_node, each_child).to_a</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # The iterator version of the #tsort method.</div><div class='add'>+  # &lt;tt&gt;&lt;em&gt;obj&lt;/em&gt;.tsort_each&lt;/tt&gt; is similar to &lt;tt&gt;&lt;em&gt;obj&lt;/em&gt;.tsort.each&lt;/tt&gt;, but</div><div class='add'>+  # modification of _obj_ during the iteration may lead to unexpected results.</div><div class='add'>+  #</div><div class='add'>+  # #tsort_each returns +nil+.</div><div class='add'>+  # If there is a cycle, Bundler::TSort::Cyclic is raised.</div><div class='add'>+  #</div><div class='add'>+  #   class G</div><div class='add'>+  #     include Bundler::TSort</div><div class='add'>+  #     def initialize(g)</div><div class='add'>+  #       @g = g</div><div class='add'>+  #     end</div><div class='add'>+  #     def tsort_each_child(n, &amp;b) @g[n].each(&amp;b) end</div><div class='add'>+  #     def tsort_each_node(&amp;b) @g.each_key(&amp;b) end</div><div class='add'>+  #   end</div><div class='add'>+  #</div><div class='add'>+  #   graph = G.new({1=&gt;[2, 3], 2=&gt;[4], 3=&gt;[2, 4], 4=&gt;[]})</div><div class='add'>+  #   graph.tsort_each {|n| p n }</div><div class='add'>+  #   #=&gt; 4</div><div class='add'>+  #   #   2</div><div class='add'>+  #   #   3</div><div class='add'>+  #   #   1</div><div class='add'>+  #</div><div class='add'>+  def tsort_each(&amp;block) # :yields: node</div><div class='add'>+    each_node = method(:tsort_each_node)</div><div class='add'>+    each_child = method(:tsort_each_child)</div><div class='add'>+    Bundler::TSort.tsort_each(each_node, each_child, &amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # The iterator version of the Bundler::TSort.tsort method.</div><div class='add'>+  #</div><div class='add'>+  # The graph is represented by _each_node_ and _each_child_.</div><div class='add'>+  # _each_node_ should have +call+ method which yields for each node in the graph.</div><div class='add'>+  # _each_child_ should have +call+ method which takes a node argument and yields for each child node.</div><div class='add'>+  #</div><div class='add'>+  #   g = {1=&gt;[2, 3], 2=&gt;[4], 3=&gt;[2, 4], 4=&gt;[]}</div><div class='add'>+  #   each_node = lambda {|&amp;b| g.each_key(&amp;b) }</div><div class='add'>+  #   each_child = lambda {|n, &amp;b| g[n].each(&amp;b) }</div><div class='add'>+  #   Bundler::TSort.tsort_each(each_node, each_child) {|n| p n }</div><div class='add'>+  #   #=&gt; 4</div><div class='add'>+  #   #   2</div><div class='add'>+  #   #   3</div><div class='add'>+  #   #   1</div><div class='add'>+  #</div><div class='add'>+  def self.tsort_each(each_node, each_child) # :yields: node</div><div class='add'>+    return to_enum(__method__, each_node, each_child) unless block_given?</div><div class='add'>+</div><div class='add'>+    each_strongly_connected_component(each_node, each_child) {|component|</div><div class='add'>+      if component.size == 1</div><div class='add'>+        yield component.first</div><div class='add'>+      else</div><div class='add'>+        raise Cyclic.new("topological sort failed: #{component.inspect}")</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Returns strongly connected components as an array of arrays of nodes.</div><div class='add'>+  # The array is sorted from children to parents.</div><div class='add'>+  # Each elements of the array represents a strongly connected component.</div><div class='add'>+  #</div><div class='add'>+  #   class G</div><div class='add'>+  #     include Bundler::TSort</div><div class='add'>+  #     def initialize(g)</div><div class='add'>+  #       @g = g</div><div class='add'>+  #     end</div><div class='add'>+  #     def tsort_each_child(n, &amp;b) @g[n].each(&amp;b) end</div><div class='add'>+  #     def tsort_each_node(&amp;b) @g.each_key(&amp;b) end</div><div class='add'>+  #   end</div><div class='add'>+  #</div><div class='add'>+  #   graph = G.new({1=&gt;[2, 3], 2=&gt;[4], 3=&gt;[2, 4], 4=&gt;[]})</div><div class='add'>+  #   p graph.strongly_connected_components #=&gt; [[4], [2], [3], [1]]</div><div class='add'>+  #</div><div class='add'>+  #   graph = G.new({1=&gt;[2], 2=&gt;[3, 4], 3=&gt;[2], 4=&gt;[]})</div><div class='add'>+  #   p graph.strongly_connected_components #=&gt; [[4], [2, 3], [1]]</div><div class='add'>+  #</div><div class='add'>+  def strongly_connected_components</div><div class='add'>+    each_node = method(:tsort_each_node)</div><div class='add'>+    each_child = method(:tsort_each_child)</div><div class='add'>+    Bundler::TSort.strongly_connected_components(each_node, each_child)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Returns strongly connected components as an array of arrays of nodes.</div><div class='add'>+  # The array is sorted from children to parents.</div><div class='add'>+  # Each elements of the array represents a strongly connected component.</div><div class='add'>+  #</div><div class='add'>+  # The graph is represented by _each_node_ and _each_child_.</div><div class='add'>+  # _each_node_ should have +call+ method which yields for each node in the graph.</div><div class='add'>+  # _each_child_ should have +call+ method which takes a node argument and yields for each child node.</div><div class='add'>+  #</div><div class='add'>+  #   g = {1=&gt;[2, 3], 2=&gt;[4], 3=&gt;[2, 4], 4=&gt;[]}</div><div class='add'>+  #   each_node = lambda {|&amp;b| g.each_key(&amp;b) }</div><div class='add'>+  #   each_child = lambda {|n, &amp;b| g[n].each(&amp;b) }</div><div class='add'>+  #   p Bundler::TSort.strongly_connected_components(each_node, each_child)</div><div class='add'>+  #   #=&gt; [[4], [2], [3], [1]]</div><div class='add'>+  #</div><div class='add'>+  #   g = {1=&gt;[2], 2=&gt;[3, 4], 3=&gt;[2], 4=&gt;[]}</div><div class='add'>+  #   each_node = lambda {|&amp;b| g.each_key(&amp;b) }</div><div class='add'>+  #   each_child = lambda {|n, &amp;b| g[n].each(&amp;b) }</div><div class='add'>+  #   p Bundler::TSort.strongly_connected_components(each_node, each_child)</div><div class='add'>+  #   #=&gt; [[4], [2, 3], [1]]</div><div class='add'>+  #</div><div class='add'>+  def self.strongly_connected_components(each_node, each_child)</div><div class='add'>+    each_strongly_connected_component(each_node, each_child).to_a</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # The iterator version of the #strongly_connected_components method.</div><div class='add'>+  # &lt;tt&gt;&lt;em&gt;obj&lt;/em&gt;.each_strongly_connected_component&lt;/tt&gt; is similar to</div><div class='add'>+  # &lt;tt&gt;&lt;em&gt;obj&lt;/em&gt;.strongly_connected_components.each&lt;/tt&gt;, but</div><div class='add'>+  # modification of _obj_ during the iteration may lead to unexpected results.</div><div class='add'>+  #</div><div class='add'>+  # #each_strongly_connected_component returns +nil+.</div><div class='add'>+  #</div><div class='add'>+  #   class G</div><div class='add'>+  #     include Bundler::TSort</div><div class='add'>+  #     def initialize(g)</div><div class='add'>+  #       @g = g</div><div class='add'>+  #     end</div><div class='add'>+  #     def tsort_each_child(n, &amp;b) @g[n].each(&amp;b) end</div><div class='add'>+  #     def tsort_each_node(&amp;b) @g.each_key(&amp;b) end</div><div class='add'>+  #   end</div><div class='add'>+  #</div><div class='add'>+  #   graph = G.new({1=&gt;[2, 3], 2=&gt;[4], 3=&gt;[2, 4], 4=&gt;[]})</div><div class='add'>+  #   graph.each_strongly_connected_component {|scc| p scc }</div><div class='add'>+  #   #=&gt; [4]</div><div class='add'>+  #   #   [2]</div><div class='add'>+  #   #   [3]</div><div class='add'>+  #   #   [1]</div><div class='add'>+  #</div><div class='add'>+  #   graph = G.new({1=&gt;[2], 2=&gt;[3, 4], 3=&gt;[2], 4=&gt;[]})</div><div class='add'>+  #   graph.each_strongly_connected_component {|scc| p scc }</div><div class='add'>+  #   #=&gt; [4]</div><div class='add'>+  #   #   [2, 3]</div><div class='add'>+  #   #   [1]</div><div class='add'>+  #</div><div class='add'>+  def each_strongly_connected_component(&amp;block) # :yields: nodes</div><div class='add'>+    each_node = method(:tsort_each_node)</div><div class='add'>+    each_child = method(:tsort_each_child)</div><div class='add'>+    Bundler::TSort.each_strongly_connected_component(each_node, each_child, &amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # The iterator version of the Bundler::TSort.strongly_connected_components method.</div><div class='add'>+  #</div><div class='add'>+  # The graph is represented by _each_node_ and _each_child_.</div><div class='add'>+  # _each_node_ should have +call+ method which yields for each node in the graph.</div><div class='add'>+  # _each_child_ should have +call+ method which takes a node argument and yields for each child node.</div><div class='add'>+  #</div><div class='add'>+  #   g = {1=&gt;[2, 3], 2=&gt;[4], 3=&gt;[2, 4], 4=&gt;[]}</div><div class='add'>+  #   each_node = lambda {|&amp;b| g.each_key(&amp;b) }</div><div class='add'>+  #   each_child = lambda {|n, &amp;b| g[n].each(&amp;b) }</div><div class='add'>+  #   Bundler::TSort.each_strongly_connected_component(each_node, each_child) {|scc| p scc }</div><div class='add'>+  #   #=&gt; [4]</div><div class='add'>+  #   #   [2]</div><div class='add'>+  #   #   [3]</div><div class='add'>+  #   #   [1]</div><div class='add'>+  #</div><div class='add'>+  #   g = {1=&gt;[2], 2=&gt;[3, 4], 3=&gt;[2], 4=&gt;[]}</div><div class='add'>+  #   each_node = lambda {|&amp;b| g.each_key(&amp;b) }</div><div class='add'>+  #   each_child = lambda {|n, &amp;b| g[n].each(&amp;b) }</div><div class='add'>+  #   Bundler::TSort.each_strongly_connected_component(each_node, each_child) {|scc| p scc }</div><div class='add'>+  #   #=&gt; [4]</div><div class='add'>+  #   #   [2, 3]</div><div class='add'>+  #   #   [1]</div><div class='add'>+  #</div><div class='add'>+  def self.each_strongly_connected_component(each_node, each_child) # :yields: nodes</div><div class='add'>+    return to_enum(__method__, each_node, each_child) unless block_given?</div><div class='add'>+</div><div class='add'>+    id_map = {}</div><div class='add'>+    stack = []</div><div class='add'>+    each_node.call {|node|</div><div class='add'>+      unless id_map.include? node</div><div class='add'>+        each_strongly_connected_component_from(node, each_child, id_map, stack) {|c|</div><div class='add'>+          yield c</div><div class='add'>+        }</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+    nil</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Iterates over strongly connected component in the subgraph reachable from</div><div class='add'>+  # _node_.</div><div class='add'>+  #</div><div class='add'>+  # Return value is unspecified.</div><div class='add'>+  #</div><div class='add'>+  # #each_strongly_connected_component_from doesn't call #tsort_each_node.</div><div class='add'>+  #</div><div class='add'>+  #   class G</div><div class='add'>+  #     include Bundler::TSort</div><div class='add'>+  #     def initialize(g)</div><div class='add'>+  #       @g = g</div><div class='add'>+  #     end</div><div class='add'>+  #     def tsort_each_child(n, &amp;b) @g[n].each(&amp;b) end</div><div class='add'>+  #     def tsort_each_node(&amp;b) @g.each_key(&amp;b) end</div><div class='add'>+  #   end</div><div class='add'>+  #</div><div class='add'>+  #   graph = G.new({1=&gt;[2, 3], 2=&gt;[4], 3=&gt;[2, 4], 4=&gt;[]})</div><div class='add'>+  #   graph.each_strongly_connected_component_from(2) {|scc| p scc }</div><div class='add'>+  #   #=&gt; [4]</div><div class='add'>+  #   #   [2]</div><div class='add'>+  #</div><div class='add'>+  #   graph = G.new({1=&gt;[2], 2=&gt;[3, 4], 3=&gt;[2], 4=&gt;[]})</div><div class='add'>+  #   graph.each_strongly_connected_component_from(2) {|scc| p scc }</div><div class='add'>+  #   #=&gt; [4]</div><div class='add'>+  #   #   [2, 3]</div><div class='add'>+  #</div><div class='add'>+  def each_strongly_connected_component_from(node, id_map={}, stack=[], &amp;block) # :yields: nodes</div><div class='add'>+    Bundler::TSort.each_strongly_connected_component_from(node, method(:tsort_each_child), id_map, stack, &amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Iterates over strongly connected components in a graph.</div><div class='add'>+  # The graph is represented by _node_ and _each_child_.</div><div class='add'>+  #</div><div class='add'>+  # _node_ is the first node.</div><div class='add'>+  # _each_child_ should have +call+ method which takes a node argument</div><div class='add'>+  # and yields for each child node.</div><div class='add'>+  #</div><div class='add'>+  # Return value is unspecified.</div><div class='add'>+  #</div><div class='add'>+  # #Bundler::TSort.each_strongly_connected_component_from is a class method and</div><div class='add'>+  # it doesn't need a class to represent a graph which includes Bundler::TSort.</div><div class='add'>+  #</div><div class='add'>+  #   graph = {1=&gt;[2], 2=&gt;[3, 4], 3=&gt;[2], 4=&gt;[]}</div><div class='add'>+  #   each_child = lambda {|n, &amp;b| graph[n].each(&amp;b) }</div><div class='add'>+  #   Bundler::TSort.each_strongly_connected_component_from(1, each_child) {|scc|</div><div class='add'>+  #     p scc</div><div class='add'>+  #   }</div><div class='add'>+  #   #=&gt; [4]</div><div class='add'>+  #   #   [2, 3]</div><div class='add'>+  #   #   [1]</div><div class='add'>+  #</div><div class='add'>+  def self.each_strongly_connected_component_from(node, each_child, id_map={}, stack=[]) # :yields: nodes</div><div class='add'>+    return to_enum(__method__, node, each_child, id_map, stack) unless block_given?</div><div class='add'>+</div><div class='add'>+    minimum_id = node_id = id_map[node] = id_map.size</div><div class='add'>+    stack_length = stack.length</div><div class='add'>+    stack &lt;&lt; node</div><div class='add'>+</div><div class='add'>+    each_child.call(node) {|child|</div><div class='add'>+      if id_map.include? child</div><div class='add'>+        child_id = id_map[child]</div><div class='add'>+        minimum_id = child_id if child_id &amp;&amp; child_id &lt; minimum_id</div><div class='add'>+      else</div><div class='add'>+        sub_minimum_id =</div><div class='add'>+          each_strongly_connected_component_from(child, each_child, id_map, stack) {|c|</div><div class='add'>+            yield c</div><div class='add'>+          }</div><div class='add'>+        minimum_id = sub_minimum_id if sub_minimum_id &lt; minimum_id</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if node_id == minimum_id</div><div class='add'>+      component = stack.slice!(stack_length .. -1)</div><div class='add'>+      component.each {|n| id_map[n] = nil}</div><div class='add'>+      yield component</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    minimum_id</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Should be implemented by a extended class.</div><div class='add'>+  #</div><div class='add'>+  # #tsort_each_node is used to iterate for all nodes over a graph.</div><div class='add'>+  #</div><div class='add'>+  def tsort_each_node # :yields: node</div><div class='add'>+    raise NotImplementedError.new</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Should be implemented by a extended class.</div><div class='add'>+  #</div><div class='add'>+  # #tsort_each_child is used to iterate for child nodes of _node_.</div><div class='add'>+  #</div><div class='add'>+  def tsort_each_child(node) # :yields: child</div><div class='add'>+    raise NotImplementedError.new</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri.rb b/lib/bundler/vendor/uri/lib/uri.rb<br/>new file mode 100644<br/>index 0000000000..976320f6bd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri.rb</a></div><div class='hunk'>@@ -0,0 +1,104 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+# Bundler::URI is a module providing classes to handle Uniform Resource Identifiers</div><div class='add'>+# (RFC2396[http://tools.ietf.org/html/rfc2396]).</div><div class='add'>+#</div><div class='add'>+# == Features</div><div class='add'>+#</div><div class='add'>+# * Uniform way of handling URIs.</div><div class='add'>+# * Flexibility to introduce custom Bundler::URI schemes.</div><div class='add'>+# * Flexibility to have an alternate Bundler::URI::Parser (or just different patterns</div><div class='add'>+#   and regexp's).</div><div class='add'>+#</div><div class='add'>+# == Basic example</div><div class='add'>+#</div><div class='add'>+#   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+#</div><div class='add'>+#   uri = Bundler::URI("http://foo.com/posts?id=30&amp;limit=5#time=1305298413")</div><div class='add'>+#   #=&gt; #&lt;Bundler::URI::HTTP http://foo.com/posts?id=30&amp;limit=5#time=1305298413&gt;</div><div class='add'>+#</div><div class='add'>+#   uri.scheme    #=&gt; "http"</div><div class='add'>+#   uri.host      #=&gt; "foo.com"</div><div class='add'>+#   uri.path      #=&gt; "/posts"</div><div class='add'>+#   uri.query     #=&gt; "id=30&amp;limit=5"</div><div class='add'>+#   uri.fragment  #=&gt; "time=1305298413"</div><div class='add'>+#</div><div class='add'>+#   uri.to_s      #=&gt; "http://foo.com/posts?id=30&amp;limit=5#time=1305298413"</div><div class='add'>+#</div><div class='add'>+# == Adding custom URIs</div><div class='add'>+#</div><div class='add'>+#   module Bundler::URI</div><div class='add'>+#     class RSYNC &lt; Generic</div><div class='add'>+#       DEFAULT_PORT = 873</div><div class='add'>+#     end</div><div class='add'>+#     register_scheme 'RSYNC', RSYNC</div><div class='add'>+#   end</div><div class='add'>+#   #=&gt; Bundler::URI::RSYNC</div><div class='add'>+#</div><div class='add'>+#   Bundler::URI.scheme_list</div><div class='add'>+#   #=&gt; {"FILE"=&gt;Bundler::URI::File, "FTP"=&gt;Bundler::URI::FTP, "HTTP"=&gt;Bundler::URI::HTTP,</div><div class='add'>+#   #    "HTTPS"=&gt;Bundler::URI::HTTPS, "LDAP"=&gt;Bundler::URI::LDAP, "LDAPS"=&gt;Bundler::URI::LDAPS,</div><div class='add'>+#   #    "MAILTO"=&gt;Bundler::URI::MailTo, "RSYNC"=&gt;Bundler::URI::RSYNC}</div><div class='add'>+#</div><div class='add'>+#   uri = Bundler::URI("rsync://rsync.foo.com")</div><div class='add'>+#   #=&gt; #&lt;Bundler::URI::RSYNC rsync://rsync.foo.com&gt;</div><div class='add'>+#</div><div class='add'>+# == RFC References</div><div class='add'>+#</div><div class='add'>+# A good place to view an RFC spec is http://www.ietf.org/rfc.html.</div><div class='add'>+#</div><div class='add'>+# Here is a list of all related RFC's:</div><div class='add'>+# - RFC822[http://tools.ietf.org/html/rfc822]</div><div class='add'>+# - RFC1738[http://tools.ietf.org/html/rfc1738]</div><div class='add'>+# - RFC2255[http://tools.ietf.org/html/rfc2255]</div><div class='add'>+# - RFC2368[http://tools.ietf.org/html/rfc2368]</div><div class='add'>+# - RFC2373[http://tools.ietf.org/html/rfc2373]</div><div class='add'>+# - RFC2396[http://tools.ietf.org/html/rfc2396]</div><div class='add'>+# - RFC2732[http://tools.ietf.org/html/rfc2732]</div><div class='add'>+# - RFC3986[http://tools.ietf.org/html/rfc3986]</div><div class='add'>+#</div><div class='add'>+# == Class tree</div><div class='add'>+#</div><div class='add'>+# - Bundler::URI::Generic (in uri/generic.rb)</div><div class='add'>+#   - Bundler::URI::File - (in uri/file.rb)</div><div class='add'>+#   - Bundler::URI::FTP - (in uri/ftp.rb)</div><div class='add'>+#   - Bundler::URI::HTTP - (in uri/http.rb)</div><div class='add'>+#     - Bundler::URI::HTTPS - (in uri/https.rb)</div><div class='add'>+#   - Bundler::URI::LDAP - (in uri/ldap.rb)</div><div class='add'>+#     - Bundler::URI::LDAPS - (in uri/ldaps.rb)</div><div class='add'>+#   - Bundler::URI::MailTo - (in uri/mailto.rb)</div><div class='add'>+# - Bundler::URI::Parser - (in uri/common.rb)</div><div class='add'>+# - Bundler::URI::REGEXP - (in uri/common.rb)</div><div class='add'>+#   - Bundler::URI::REGEXP::PATTERN - (in uri/common.rb)</div><div class='add'>+# - Bundler::URI::Util - (in uri/common.rb)</div><div class='add'>+# - Bundler::URI::Error - (in uri/common.rb)</div><div class='add'>+#   - Bundler::URI::InvalidURIError - (in uri/common.rb)</div><div class='add'>+#   - Bundler::URI::InvalidComponentError - (in uri/common.rb)</div><div class='add'>+#   - Bundler::URI::BadURIError - (in uri/common.rb)</div><div class='add'>+#</div><div class='add'>+# == Copyright Info</div><div class='add'>+#</div><div class='add'>+# Author:: Akira Yamada &lt;akira@ruby-lang.org&gt;</div><div class='add'>+# Documentation::</div><div class='add'>+#   Akira Yamada &lt;akira@ruby-lang.org&gt;</div><div class='add'>+#   Dmitry V. Sabanin &lt;sdmitry@lrn.ru&gt;</div><div class='add'>+#   Vincent Batts &lt;vbatts@hashbangbash.com&gt;</div><div class='add'>+# License::</div><div class='add'>+#  Copyright (c) 2001 akira yamada &lt;akira@ruby-lang.org&gt;</div><div class='add'>+#  You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+require_relative 'uri/version'</div><div class='add'>+require_relative 'uri/common'</div><div class='add'>+require_relative 'uri/generic'</div><div class='add'>+require_relative 'uri/file'</div><div class='add'>+require_relative 'uri/ftp'</div><div class='add'>+require_relative 'uri/http'</div><div class='add'>+require_relative 'uri/https'</div><div class='add'>+require_relative 'uri/ldap'</div><div class='add'>+require_relative 'uri/ldaps'</div><div class='add'>+require_relative 'uri/mailto'</div><div class='add'>+require_relative 'uri/ws'</div><div class='add'>+require_relative 'uri/wss'</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/common.rb b/lib/bundler/vendor/uri/lib/uri/common.rb<br/>new file mode 100644<br/>index 0000000000..914a4c7581<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/common.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/common.rb</a></div><div class='hunk'>@@ -0,0 +1,729 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+#--</div><div class='add'>+# = uri/common.rb</div><div class='add'>+#</div><div class='add'>+# Author:: Akira Yamada &lt;akira@ruby-lang.org&gt;</div><div class='add'>+# License::</div><div class='add'>+#   You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+# See Bundler::URI for general documentation</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require_relative "rfc2396_parser"</div><div class='add'>+require_relative "rfc3986_parser"</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+  include RFC2396_REGEXP</div><div class='add'>+</div><div class='add'>+  REGEXP = RFC2396_REGEXP</div><div class='add'>+  Parser = RFC2396_Parser</div><div class='add'>+  RFC3986_PARSER = RFC3986_Parser.new</div><div class='add'>+  Ractor.make_shareable(RFC3986_PARSER) if defined?(Ractor)</div><div class='add'>+</div><div class='add'>+  # Bundler::URI::Parser.new</div><div class='add'>+  DEFAULT_PARSER = Parser.new</div><div class='add'>+  DEFAULT_PARSER.pattern.each_pair do |sym, str|</div><div class='add'>+    unless REGEXP::PATTERN.const_defined?(sym)</div><div class='add'>+      REGEXP::PATTERN.const_set(sym, str)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  DEFAULT_PARSER.regexp.each_pair do |sym, str|</div><div class='add'>+    const_set(sym, str)</div><div class='add'>+  end</div><div class='add'>+  Ractor.make_shareable(DEFAULT_PARSER) if defined?(Ractor)</div><div class='add'>+</div><div class='add'>+  module Util # :nodoc:</div><div class='add'>+    def make_components_hash(klass, array_hash)</div><div class='add'>+      tmp = {}</div><div class='add'>+      if array_hash.kind_of?(Array) &amp;&amp;</div><div class='add'>+          array_hash.size == klass.component.size - 1</div><div class='add'>+        klass.component[1..-1].each_index do |i|</div><div class='add'>+          begin</div><div class='add'>+            tmp[klass.component[i + 1]] = array_hash[i].clone</div><div class='add'>+          rescue TypeError</div><div class='add'>+            tmp[klass.component[i + 1]] = array_hash[i]</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      elsif array_hash.kind_of?(Hash)</div><div class='add'>+        array_hash.each do |key, value|</div><div class='add'>+          begin</div><div class='add'>+            tmp[key] = value.clone</div><div class='add'>+          rescue TypeError</div><div class='add'>+            tmp[key] = value</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        raise ArgumentError,</div><div class='add'>+          "expected Array of or Hash of components of #{klass} (#{klass.component[1..-1].join(', ')})"</div><div class='add'>+      end</div><div class='add'>+      tmp[:scheme] = klass.to_s.sub(/\A.*::/, '').downcase</div><div class='add'>+</div><div class='add'>+      return tmp</div><div class='add'>+    end</div><div class='add'>+    module_function :make_components_hash</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module Schemes</div><div class='add'>+  end</div><div class='add'>+  private_constant :Schemes</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Register the given +klass+ to be instantiated when parsing URLs with the given +scheme+.</div><div class='add'>+  # Note that currently only schemes which after .upcase are valid constant names</div><div class='add'>+  # can be registered (no -/+/. allowed).</div><div class='add'>+  #</div><div class='add'>+  def self.register_scheme(scheme, klass)</div><div class='add'>+    Schemes.const_set(scheme.to_s.upcase, klass)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Returns a Hash of the defined schemes.</div><div class='add'>+  def self.scheme_list</div><div class='add'>+    Schemes.constants.map { |name|</div><div class='add'>+      [name.to_s.upcase, Schemes.const_get(name)]</div><div class='add'>+    }.to_h</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  INITIAL_SCHEMES = scheme_list</div><div class='add'>+  private_constant :INITIAL_SCHEMES</div><div class='add'>+  Ractor.make_shareable(INITIAL_SCHEMES) if defined?(Ractor)</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Construct a Bundler::URI instance, using the scheme to detect the appropriate class</div><div class='add'>+  # from +Bundler::URI.scheme_list+.</div><div class='add'>+  #</div><div class='add'>+  def self.for(scheme, *arguments, default: Generic)</div><div class='add'>+    const_name = scheme.to_s.upcase</div><div class='add'>+</div><div class='add'>+    uri_class = INITIAL_SCHEMES[const_name]</div><div class='add'>+    uri_class ||= if /\A[A-Z]\w*\z/.match?(const_name) &amp;&amp; Schemes.const_defined?(const_name, false)</div><div class='add'>+      Schemes.const_get(const_name, false)</div><div class='add'>+    end</div><div class='add'>+    uri_class ||= default</div><div class='add'>+</div><div class='add'>+    return uri_class.new(scheme, *arguments)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Base class for all Bundler::URI exceptions.</div><div class='add'>+  #</div><div class='add'>+  class Error &lt; StandardError; end</div><div class='add'>+  #</div><div class='add'>+  # Not a Bundler::URI.</div><div class='add'>+  #</div><div class='add'>+  class InvalidURIError &lt; Error; end</div><div class='add'>+  #</div><div class='add'>+  # Not a Bundler::URI component.</div><div class='add'>+  #</div><div class='add'>+  class InvalidComponentError &lt; Error; end</div><div class='add'>+  #</div><div class='add'>+  # Bundler::URI is valid, bad usage is not.</div><div class='add'>+  #</div><div class='add'>+  class BadURIError &lt; Error; end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # == Synopsis</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI::split(uri)</div><div class='add'>+  #</div><div class='add'>+  # == Args</div><div class='add'>+  #</div><div class='add'>+  # +uri+::</div><div class='add'>+  #   String with Bundler::URI.</div><div class='add'>+  #</div><div class='add'>+  # == Description</div><div class='add'>+  #</div><div class='add'>+  # Splits the string on following parts and returns array with result:</div><div class='add'>+  #</div><div class='add'>+  # * Scheme</div><div class='add'>+  # * Userinfo</div><div class='add'>+  # * Host</div><div class='add'>+  # * Port</div><div class='add'>+  # * Registry</div><div class='add'>+  # * Path</div><div class='add'>+  # * Opaque</div><div class='add'>+  # * Query</div><div class='add'>+  # * Fragment</div><div class='add'>+  #</div><div class='add'>+  # == Usage</div><div class='add'>+  #</div><div class='add'>+  #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI.split("http://www.ruby-lang.org/")</div><div class='add'>+  #   # =&gt; ["http", nil, "www.ruby-lang.org", nil, nil, "/", nil, nil, nil]</div><div class='add'>+  #</div><div class='add'>+  def self.split(uri)</div><div class='add'>+    RFC3986_PARSER.split(uri)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # == Synopsis</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI::parse(uri_str)</div><div class='add'>+  #</div><div class='add'>+  # == Args</div><div class='add'>+  #</div><div class='add'>+  # +uri_str+::</div><div class='add'>+  #   String with Bundler::URI.</div><div class='add'>+  #</div><div class='add'>+  # == Description</div><div class='add'>+  #</div><div class='add'>+  # Creates one of the Bundler::URI's subclasses instance from the string.</div><div class='add'>+  #</div><div class='add'>+  # == Raises</div><div class='add'>+  #</div><div class='add'>+  # Bundler::URI::InvalidURIError::</div><div class='add'>+  #   Raised if Bundler::URI given is not a correct one.</div><div class='add'>+  #</div><div class='add'>+  # == Usage</div><div class='add'>+  #</div><div class='add'>+  #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+  #</div><div class='add'>+  #   uri = Bundler::URI.parse("http://www.ruby-lang.org/")</div><div class='add'>+  #   # =&gt; #&lt;Bundler::URI::HTTP http://www.ruby-lang.org/&gt;</div><div class='add'>+  #   uri.scheme</div><div class='add'>+  #   # =&gt; "http"</div><div class='add'>+  #   uri.host</div><div class='add'>+  #   # =&gt; "www.ruby-lang.org"</div><div class='add'>+  #</div><div class='add'>+  # It's recommended to first ::escape the provided +uri_str+ if there are any</div><div class='add'>+  # invalid Bundler::URI characters.</div><div class='add'>+  #</div><div class='add'>+  def self.parse(uri)</div><div class='add'>+    RFC3986_PARSER.parse(uri)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # == Synopsis</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI::join(str[, str, ...])</div><div class='add'>+  #</div><div class='add'>+  # == Args</div><div class='add'>+  #</div><div class='add'>+  # +str+::</div><div class='add'>+  #   String(s) to work with, will be converted to RFC3986 URIs before merging.</div><div class='add'>+  #</div><div class='add'>+  # == Description</div><div class='add'>+  #</div><div class='add'>+  # Joins URIs.</div><div class='add'>+  #</div><div class='add'>+  # == Usage</div><div class='add'>+  #</div><div class='add'>+  #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI.join("http://example.com/","main.rbx")</div><div class='add'>+  #   # =&gt; #&lt;Bundler::URI::HTTP http://example.com/main.rbx&gt;</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI.join('http://example.com', 'foo')</div><div class='add'>+  #   # =&gt; #&lt;Bundler::URI::HTTP http://example.com/foo&gt;</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI.join('http://example.com', '/foo', '/bar')</div><div class='add'>+  #   # =&gt; #&lt;Bundler::URI::HTTP http://example.com/bar&gt;</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI.join('http://example.com', '/foo', 'bar')</div><div class='add'>+  #   # =&gt; #&lt;Bundler::URI::HTTP http://example.com/bar&gt;</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI.join('http://example.com', '/foo/', 'bar')</div><div class='add'>+  #   # =&gt; #&lt;Bundler::URI::HTTP http://example.com/foo/bar&gt;</div><div class='add'>+  #</div><div class='add'>+  def self.join(*str)</div><div class='add'>+    RFC3986_PARSER.join(*str)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # == Synopsis</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI::extract(str[, schemes][,&amp;blk])</div><div class='add'>+  #</div><div class='add'>+  # == Args</div><div class='add'>+  #</div><div class='add'>+  # +str+::</div><div class='add'>+  #   String to extract URIs from.</div><div class='add'>+  # +schemes+::</div><div class='add'>+  #   Limit Bundler::URI matching to specific schemes.</div><div class='add'>+  #</div><div class='add'>+  # == Description</div><div class='add'>+  #</div><div class='add'>+  # Extracts URIs from a string. If block given, iterates through all matched URIs.</div><div class='add'>+  # Returns nil if block given or array with matches.</div><div class='add'>+  #</div><div class='add'>+  # == Usage</div><div class='add'>+  #</div><div class='add'>+  #   require "bundler/vendor/uri/lib/uri"</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI.extract("text here http://foo.example.org/bla and here mailto:test@example.com and here also.")</div><div class='add'>+  #   # =&gt; ["http://foo.example.com/bla", "mailto:test@example.com"]</div><div class='add'>+  #</div><div class='add'>+  def self.extract(str, schemes = nil, &amp;block)</div><div class='add'>+    warn "Bundler::URI.extract is obsolete", uplevel: 1 if $VERBOSE</div><div class='add'>+    DEFAULT_PARSER.extract(str, schemes, &amp;block)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # == Synopsis</div><div class='add'>+  #</div><div class='add'>+  #   Bundler::URI::regexp([match_schemes])</div><div class='add'>+  #</div><div class='add'>+  # == Args</div><div class='add'>+  #</div><div class='add'>+  # +match_schemes+::</div><div class='add'>+  #   Array of schemes. If given, resulting regexp matches to URIs</div><div class='add'>+  #   whose scheme is one of the match_schemes.</div><div class='add'>+  #</div><div class='add'>+  # == Description</div><div class='add'>+  #</div><div class='add'>+  # Returns a Regexp object which matches to Bundler::URI-like strings.</div><div class='add'>+  # The Regexp object returned by this method includes arbitrary</div><div class='add'>+  # number of capture group (parentheses).  Never rely on its number.</div><div class='add'>+  #</div><div class='add'>+  # == Usage</div><div class='add'>+  #</div><div class='add'>+  #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+  #</div><div class='add'>+  #   # extract first Bundler::URI from html_string</div><div class='add'>+  #   html_string.slice(Bundler::URI.regexp)</div><div class='add'>+  #</div><div class='add'>+  #   # remove ftp URIs</div><div class='add'>+  #   html_string.sub(Bundler::URI.regexp(['ftp']), '')</div><div class='add'>+  #</div><div class='add'>+  #   # You should not rely on the number of parentheses</div><div class='add'>+  #   html_string.scan(Bundler::URI.regexp) do |*matches|</div><div class='add'>+  #     p $&amp;</div><div class='add'>+  #   end</div><div class='add'>+  #</div><div class='add'>+  def self.regexp(schemes = nil)</div><div class='add'>+    warn "Bundler::URI.regexp is obsolete", uplevel: 1 if $VERBOSE</div><div class='add'>+    DEFAULT_PARSER.make_regexp(schemes)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  TBLENCWWWCOMP_ = {} # :nodoc:</div><div class='add'>+  256.times do |i|</div><div class='add'>+    TBLENCWWWCOMP_[-i.chr] = -('%%%02X' % i)</div><div class='add'>+  end</div><div class='add'>+  TBLENCURICOMP_ = TBLENCWWWCOMP_.dup.freeze</div><div class='add'>+  TBLENCWWWCOMP_[' '] = '+'</div><div class='add'>+  TBLENCWWWCOMP_.freeze</div><div class='add'>+  TBLDECWWWCOMP_ = {} # :nodoc:</div><div class='add'>+  256.times do |i|</div><div class='add'>+    h, l = i&gt;&gt;4, i&amp;15</div><div class='add'>+    TBLDECWWWCOMP_[-('%%%X%X' % [h, l])] = -i.chr</div><div class='add'>+    TBLDECWWWCOMP_[-('%%%x%X' % [h, l])] = -i.chr</div><div class='add'>+    TBLDECWWWCOMP_[-('%%%X%x' % [h, l])] = -i.chr</div><div class='add'>+    TBLDECWWWCOMP_[-('%%%x%x' % [h, l])] = -i.chr</div><div class='add'>+  end</div><div class='add'>+  TBLDECWWWCOMP_['+'] = ' '</div><div class='add'>+  TBLDECWWWCOMP_.freeze</div><div class='add'>+</div><div class='add'>+  # Encodes given +str+ to URL-encoded form data.</div><div class='add'>+  #</div><div class='add'>+  # This method doesn't convert *, -, ., 0-9, A-Z, _, a-z, but does convert SP</div><div class='add'>+  # (ASCII space) to + and converts others to %XX.</div><div class='add'>+  #</div><div class='add'>+  # If +enc+ is given, convert +str+ to the encoding before percent encoding.</div><div class='add'>+  #</div><div class='add'>+  # This is an implementation of</div><div class='add'>+  # https://www.w3.org/TR/2013/CR-html5-20130806/forms.html#url-encoded-form-data.</div><div class='add'>+  #</div><div class='add'>+  # See Bundler::URI.decode_www_form_component, Bundler::URI.encode_www_form.</div><div class='add'>+  def self.encode_www_form_component(str, enc=nil)</div><div class='add'>+    _encode_uri_component(/[^*\-.0-9A-Z_a-z]/, TBLENCWWWCOMP_, str, enc)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Decodes given +str+ of URL-encoded form data.</div><div class='add'>+  #</div><div class='add'>+  # This decodes + to SP.</div><div class='add'>+  #</div><div class='add'>+  # See Bundler::URI.encode_www_form_component, Bundler::URI.decode_www_form.</div><div class='add'>+  def self.decode_www_form_component(str, enc=Encoding::UTF_8)</div><div class='add'>+    _decode_uri_component(/\+|%\h\h/, str, enc)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Encodes +str+ using URL encoding</div><div class='add'>+  #</div><div class='add'>+  # This encodes SP to %20 instead of +.</div><div class='add'>+  def self.encode_uri_component(str, enc=nil)</div><div class='add'>+    _encode_uri_component(/[^*\-.0-9A-Z_a-z]/, TBLENCURICOMP_, str, enc)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Decodes given +str+ of URL-encoded data.</div><div class='add'>+  #</div><div class='add'>+  # This does not decode + to SP.</div><div class='add'>+  def self.decode_uri_component(str, enc=Encoding::UTF_8)</div><div class='add'>+    _decode_uri_component(/%\h\h/, str, enc)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def self._encode_uri_component(regexp, table, str, enc)</div><div class='add'>+    str = str.to_s.dup</div><div class='add'>+    if str.encoding != Encoding::ASCII_8BIT</div><div class='add'>+      if enc &amp;&amp; enc != Encoding::ASCII_8BIT</div><div class='add'>+        str.encode!(Encoding::UTF_8, invalid: :replace, undef: :replace)</div><div class='add'>+        str.encode!(enc, fallback: -&gt;(x){"&amp;##{x.ord};"})</div><div class='add'>+      end</div><div class='add'>+      str.force_encoding(Encoding::ASCII_8BIT)</div><div class='add'>+    end</div><div class='add'>+    str.gsub!(regexp, table)</div><div class='add'>+    str.force_encoding(Encoding::US_ASCII)</div><div class='add'>+  end</div><div class='add'>+  private_class_method :_encode_uri_component</div><div class='add'>+</div><div class='add'>+  def self._decode_uri_component(regexp, str, enc)</div><div class='add'>+    raise ArgumentError, "invalid %-encoding (#{str})" if /%(?!\h\h)/.match?(str)</div><div class='add'>+    str.b.gsub(regexp, TBLDECWWWCOMP_).force_encoding(enc)</div><div class='add'>+  end</div><div class='add'>+  private_class_method :_decode_uri_component</div><div class='add'>+</div><div class='add'>+  # Generates URL-encoded form data from given +enum+.</div><div class='add'>+  #</div><div class='add'>+  # This generates application/x-www-form-urlencoded data defined in HTML5</div><div class='add'>+  # from given an Enumerable object.</div><div class='add'>+  #</div><div class='add'>+  # This internally uses Bundler::URI.encode_www_form_component(str).</div><div class='add'>+  #</div><div class='add'>+  # This method doesn't convert the encoding of given items, so convert them</div><div class='add'>+  # before calling this method if you want to send data as other than original</div><div class='add'>+  # encoding or mixed encoding data. (Strings which are encoded in an HTML5</div><div class='add'>+  # ASCII incompatible encoding are converted to UTF-8.)</div><div class='add'>+  #</div><div class='add'>+  # This method doesn't handle files.  When you send a file, use</div><div class='add'>+  # multipart/form-data.</div><div class='add'>+  #</div><div class='add'>+  # This refers https://url.spec.whatwg.org/#concept-urlencoded-serializer</div><div class='add'>+  #</div><div class='add'>+  #    Bundler::URI.encode_www_form([["q", "ruby"], ["lang", "en"]])</div><div class='add'>+  #    #=&gt; "q=ruby&amp;lang=en"</div><div class='add'>+  #    Bundler::URI.encode_www_form("q" =&gt; "ruby", "lang" =&gt; "en")</div><div class='add'>+  #    #=&gt; "q=ruby&amp;lang=en"</div><div class='add'>+  #    Bundler::URI.encode_www_form("q" =&gt; ["ruby", "perl"], "lang" =&gt; "en")</div><div class='add'>+  #    #=&gt; "q=ruby&amp;q=perl&amp;lang=en"</div><div class='add'>+  #    Bundler::URI.encode_www_form([["q", "ruby"], ["q", "perl"], ["lang", "en"]])</div><div class='add'>+  #    #=&gt; "q=ruby&amp;q=perl&amp;lang=en"</div><div class='add'>+  #</div><div class='add'>+  # See Bundler::URI.encode_www_form_component, Bundler::URI.decode_www_form.</div><div class='add'>+  def self.encode_www_form(enum, enc=nil)</div><div class='add'>+    enum.map do |k,v|</div><div class='add'>+      if v.nil?</div><div class='add'>+        encode_www_form_component(k, enc)</div><div class='add'>+      elsif v.respond_to?(:to_ary)</div><div class='add'>+        v.to_ary.map do |w|</div><div class='add'>+          str = encode_www_form_component(k, enc)</div><div class='add'>+          unless w.nil?</div><div class='add'>+            str &lt;&lt; '='</div><div class='add'>+            str &lt;&lt; encode_www_form_component(w, enc)</div><div class='add'>+          end</div><div class='add'>+        end.join('&amp;')</div><div class='add'>+      else</div><div class='add'>+        str = encode_www_form_component(k, enc)</div><div class='add'>+        str &lt;&lt; '='</div><div class='add'>+        str &lt;&lt; encode_www_form_component(v, enc)</div><div class='add'>+      end</div><div class='add'>+    end.join('&amp;')</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Decodes URL-encoded form data from given +str+.</div><div class='add'>+  #</div><div class='add'>+  # This decodes application/x-www-form-urlencoded data</div><div class='add'>+  # and returns an array of key-value arrays.</div><div class='add'>+  #</div><div class='add'>+  # This refers http://url.spec.whatwg.org/#concept-urlencoded-parser,</div><div class='add'>+  # so this supports only &amp;-separator, and doesn't support ;-separator.</div><div class='add'>+  #</div><div class='add'>+  #    ary = Bundler::URI.decode_www_form("a=1&amp;a=2&amp;b=3")</div><div class='add'>+  #    ary                   #=&gt; [['a', '1'], ['a', '2'], ['b', '3']]</div><div class='add'>+  #    ary.assoc('a').last   #=&gt; '1'</div><div class='add'>+  #    ary.assoc('b').last   #=&gt; '3'</div><div class='add'>+  #    ary.rassoc('a').last  #=&gt; '2'</div><div class='add'>+  #    Hash[ary]             #=&gt; {"a"=&gt;"2", "b"=&gt;"3"}</div><div class='add'>+  #</div><div class='add'>+  # See Bundler::URI.decode_www_form_component, Bundler::URI.encode_www_form.</div><div class='add'>+  def self.decode_www_form(str, enc=Encoding::UTF_8, separator: '&amp;', use__charset_: false, isindex: false)</div><div class='add'>+    raise ArgumentError, "the input of #{self.name}.#{__method__} must be ASCII only string" unless str.ascii_only?</div><div class='add'>+    ary = []</div><div class='add'>+    return ary if str.empty?</div><div class='add'>+    enc = Encoding.find(enc)</div><div class='add'>+    str.b.each_line(separator) do |string|</div><div class='add'>+      string.chomp!(separator)</div><div class='add'>+      key, sep, val = string.partition('=')</div><div class='add'>+      if isindex</div><div class='add'>+        if sep.empty?</div><div class='add'>+          val = key</div><div class='add'>+          key = +''</div><div class='add'>+        end</div><div class='add'>+        isindex = false</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if use__charset_ and key == '_charset_' and e = get_encoding(val)</div><div class='add'>+        enc = e</div><div class='add'>+        use__charset_ = false</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      key.gsub!(/\+|%\h\h/, TBLDECWWWCOMP_)</div><div class='add'>+      if val</div><div class='add'>+        val.gsub!(/\+|%\h\h/, TBLDECWWWCOMP_)</div><div class='add'>+      else</div><div class='add'>+        val = +''</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      ary &lt;&lt; [key, val]</div><div class='add'>+    end</div><div class='add'>+    ary.each do |k, v|</div><div class='add'>+      k.force_encoding(enc)</div><div class='add'>+      k.scrub!</div><div class='add'>+      v.force_encoding(enc)</div><div class='add'>+      v.scrub!</div><div class='add'>+    end</div><div class='add'>+    ary</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  private</div><div class='add'>+=begin command for WEB_ENCODINGS_</div><div class='add'>+  curl https://encoding.spec.whatwg.org/encodings.json|</div><div class='add'>+  ruby -rjson -e 'H={}</div><div class='add'>+  h={</div><div class='add'>+    "shift_jis"=&gt;"Windows-31J",</div><div class='add'>+    "euc-jp"=&gt;"cp51932",</div><div class='add'>+    "iso-2022-jp"=&gt;"cp50221",</div><div class='add'>+    "x-mac-cyrillic"=&gt;"macCyrillic",</div><div class='add'>+  }</div><div class='add'>+  JSON($&lt;.read).map{|x|x["encodings"]}.flatten.each{|x|</div><div class='add'>+    Encoding.find(n=h.fetch(n=x["name"].downcase,n))rescue next</div><div class='add'>+    x["labels"].each{|y|H[y]=n}</div><div class='add'>+  }</div><div class='add'>+  puts "{"</div><div class='add'>+  H.each{|k,v|puts %[  #{k.dump}=&gt;#{v.dump},]}</div><div class='add'>+  puts "}"</div><div class='add'>+'</div><div class='add'>+=end</div><div class='add'>+  WEB_ENCODINGS_ = {</div><div class='add'>+    "unicode-1-1-utf-8"=&gt;"utf-8",</div><div class='add'>+    "utf-8"=&gt;"utf-8",</div><div class='add'>+    "utf8"=&gt;"utf-8",</div><div class='add'>+    "866"=&gt;"ibm866",</div><div class='add'>+    "cp866"=&gt;"ibm866",</div><div class='add'>+    "csibm866"=&gt;"ibm866",</div><div class='add'>+    "ibm866"=&gt;"ibm866",</div><div class='add'>+    "csisolatin2"=&gt;"iso-8859-2",</div><div class='add'>+    "iso-8859-2"=&gt;"iso-8859-2",</div><div class='add'>+    "iso-ir-101"=&gt;"iso-8859-2",</div><div class='add'>+    "iso8859-2"=&gt;"iso-8859-2",</div><div class='add'>+    "iso88592"=&gt;"iso-8859-2",</div><div class='add'>+    "iso_8859-2"=&gt;"iso-8859-2",</div><div class='add'>+    "iso_8859-2:1987"=&gt;"iso-8859-2",</div><div class='add'>+    "l2"=&gt;"iso-8859-2",</div><div class='add'>+    "latin2"=&gt;"iso-8859-2",</div><div class='add'>+    "csisolatin3"=&gt;"iso-8859-3",</div><div class='add'>+    "iso-8859-3"=&gt;"iso-8859-3",</div><div class='add'>+    "iso-ir-109"=&gt;"iso-8859-3",</div><div class='add'>+    "iso8859-3"=&gt;"iso-8859-3",</div><div class='add'>+    "iso88593"=&gt;"iso-8859-3",</div><div class='add'>+    "iso_8859-3"=&gt;"iso-8859-3",</div><div class='add'>+    "iso_8859-3:1988"=&gt;"iso-8859-3",</div><div class='add'>+    "l3"=&gt;"iso-8859-3",</div><div class='add'>+    "latin3"=&gt;"iso-8859-3",</div><div class='add'>+    "csisolatin4"=&gt;"iso-8859-4",</div><div class='add'>+    "iso-8859-4"=&gt;"iso-8859-4",</div><div class='add'>+    "iso-ir-110"=&gt;"iso-8859-4",</div><div class='add'>+    "iso8859-4"=&gt;"iso-8859-4",</div><div class='add'>+    "iso88594"=&gt;"iso-8859-4",</div><div class='add'>+    "iso_8859-4"=&gt;"iso-8859-4",</div><div class='add'>+    "iso_8859-4:1988"=&gt;"iso-8859-4",</div><div class='add'>+    "l4"=&gt;"iso-8859-4",</div><div class='add'>+    "latin4"=&gt;"iso-8859-4",</div><div class='add'>+    "csisolatincyrillic"=&gt;"iso-8859-5",</div><div class='add'>+    "cyrillic"=&gt;"iso-8859-5",</div><div class='add'>+    "iso-8859-5"=&gt;"iso-8859-5",</div><div class='add'>+    "iso-ir-144"=&gt;"iso-8859-5",</div><div class='add'>+    "iso8859-5"=&gt;"iso-8859-5",</div><div class='add'>+    "iso88595"=&gt;"iso-8859-5",</div><div class='add'>+    "iso_8859-5"=&gt;"iso-8859-5",</div><div class='add'>+    "iso_8859-5:1988"=&gt;"iso-8859-5",</div><div class='add'>+    "arabic"=&gt;"iso-8859-6",</div><div class='add'>+    "asmo-708"=&gt;"iso-8859-6",</div><div class='add'>+    "csiso88596e"=&gt;"iso-8859-6",</div><div class='add'>+    "csiso88596i"=&gt;"iso-8859-6",</div><div class='add'>+    "csisolatinarabic"=&gt;"iso-8859-6",</div><div class='add'>+    "ecma-114"=&gt;"iso-8859-6",</div><div class='add'>+    "iso-8859-6"=&gt;"iso-8859-6",</div><div class='add'>+    "iso-8859-6-e"=&gt;"iso-8859-6",</div><div class='add'>+    "iso-8859-6-i"=&gt;"iso-8859-6",</div><div class='add'>+    "iso-ir-127"=&gt;"iso-8859-6",</div><div class='add'>+    "iso8859-6"=&gt;"iso-8859-6",</div><div class='add'>+    "iso88596"=&gt;"iso-8859-6",</div><div class='add'>+    "iso_8859-6"=&gt;"iso-8859-6",</div><div class='add'>+    "iso_8859-6:1987"=&gt;"iso-8859-6",</div><div class='add'>+    "csisolatingreek"=&gt;"iso-8859-7",</div><div class='add'>+    "ecma-118"=&gt;"iso-8859-7",</div><div class='add'>+    "elot_928"=&gt;"iso-8859-7",</div><div class='add'>+    "greek"=&gt;"iso-8859-7",</div><div class='add'>+    "greek8"=&gt;"iso-8859-7",</div><div class='add'>+    "iso-8859-7"=&gt;"iso-8859-7",</div><div class='add'>+    "iso-ir-126"=&gt;"iso-8859-7",</div><div class='add'>+    "iso8859-7"=&gt;"iso-8859-7",</div><div class='add'>+    "iso88597"=&gt;"iso-8859-7",</div><div class='add'>+    "iso_8859-7"=&gt;"iso-8859-7",</div><div class='add'>+    "iso_8859-7:1987"=&gt;"iso-8859-7",</div><div class='add'>+    "sun_eu_greek"=&gt;"iso-8859-7",</div><div class='add'>+    "csiso88598e"=&gt;"iso-8859-8",</div><div class='add'>+    "csisolatinhebrew"=&gt;"iso-8859-8",</div><div class='add'>+    "hebrew"=&gt;"iso-8859-8",</div><div class='add'>+    "iso-8859-8"=&gt;"iso-8859-8",</div><div class='add'>+    "iso-8859-8-e"=&gt;"iso-8859-8",</div><div class='add'>+    "iso-ir-138"=&gt;"iso-8859-8",</div><div class='add'>+    "iso8859-8"=&gt;"iso-8859-8",</div><div class='add'>+    "iso88598"=&gt;"iso-8859-8",</div><div class='add'>+    "iso_8859-8"=&gt;"iso-8859-8",</div><div class='add'>+    "iso_8859-8:1988"=&gt;"iso-8859-8",</div><div class='add'>+    "visual"=&gt;"iso-8859-8",</div><div class='add'>+    "csisolatin6"=&gt;"iso-8859-10",</div><div class='add'>+    "iso-8859-10"=&gt;"iso-8859-10",</div><div class='add'>+    "iso-ir-157"=&gt;"iso-8859-10",</div><div class='add'>+    "iso8859-10"=&gt;"iso-8859-10",</div><div class='add'>+    "iso885910"=&gt;"iso-8859-10",</div><div class='add'>+    "l6"=&gt;"iso-8859-10",</div><div class='add'>+    "latin6"=&gt;"iso-8859-10",</div><div class='add'>+    "iso-8859-13"=&gt;"iso-8859-13",</div><div class='add'>+    "iso8859-13"=&gt;"iso-8859-13",</div><div class='add'>+    "iso885913"=&gt;"iso-8859-13",</div><div class='add'>+    "iso-8859-14"=&gt;"iso-8859-14",</div><div class='add'>+    "iso8859-14"=&gt;"iso-8859-14",</div><div class='add'>+    "iso885914"=&gt;"iso-8859-14",</div><div class='add'>+    "csisolatin9"=&gt;"iso-8859-15",</div><div class='add'>+    "iso-8859-15"=&gt;"iso-8859-15",</div><div class='add'>+    "iso8859-15"=&gt;"iso-8859-15",</div><div class='add'>+    "iso885915"=&gt;"iso-8859-15",</div><div class='add'>+    "iso_8859-15"=&gt;"iso-8859-15",</div><div class='add'>+    "l9"=&gt;"iso-8859-15",</div><div class='add'>+    "iso-8859-16"=&gt;"iso-8859-16",</div><div class='add'>+    "cskoi8r"=&gt;"koi8-r",</div><div class='add'>+    "koi"=&gt;"koi8-r",</div><div class='add'>+    "koi8"=&gt;"koi8-r",</div><div class='add'>+    "koi8-r"=&gt;"koi8-r",</div><div class='add'>+    "koi8_r"=&gt;"koi8-r",</div><div class='add'>+    "koi8-ru"=&gt;"koi8-u",</div><div class='add'>+    "koi8-u"=&gt;"koi8-u",</div><div class='add'>+    "dos-874"=&gt;"windows-874",</div><div class='add'>+    "iso-8859-11"=&gt;"windows-874",</div><div class='add'>+    "iso8859-11"=&gt;"windows-874",</div><div class='add'>+    "iso885911"=&gt;"windows-874",</div><div class='add'>+    "tis-620"=&gt;"windows-874",</div><div class='add'>+    "windows-874"=&gt;"windows-874",</div><div class='add'>+    "cp1250"=&gt;"windows-1250",</div><div class='add'>+    "windows-1250"=&gt;"windows-1250",</div><div class='add'>+    "x-cp1250"=&gt;"windows-1250",</div><div class='add'>+    "cp1251"=&gt;"windows-1251",</div><div class='add'>+    "windows-1251"=&gt;"windows-1251",</div><div class='add'>+    "x-cp1251"=&gt;"windows-1251",</div><div class='add'>+    "ansi_x3.4-1968"=&gt;"windows-1252",</div><div class='add'>+    "ascii"=&gt;"windows-1252",</div><div class='add'>+    "cp1252"=&gt;"windows-1252",</div><div class='add'>+    "cp819"=&gt;"windows-1252",</div><div class='add'>+    "csisolatin1"=&gt;"windows-1252",</div><div class='add'>+    "ibm819"=&gt;"windows-1252",</div><div class='add'>+    "iso-8859-1"=&gt;"windows-1252",</div><div class='add'>+    "iso-ir-100"=&gt;"windows-1252",</div><div class='add'>+    "iso8859-1"=&gt;"windows-1252",</div><div class='add'>+    "iso88591"=&gt;"windows-1252",</div><div class='add'>+    "iso_8859-1"=&gt;"windows-1252",</div><div class='add'>+    "iso_8859-1:1987"=&gt;"windows-1252",</div><div class='add'>+    "l1"=&gt;"windows-1252",</div><div class='add'>+    "latin1"=&gt;"windows-1252",</div><div class='add'>+    "us-ascii"=&gt;"windows-1252",</div><div class='add'>+    "windows-1252"=&gt;"windows-1252",</div><div class='add'>+    "x-cp1252"=&gt;"windows-1252",</div><div class='add'>+    "cp1253"=&gt;"windows-1253",</div><div class='add'>+    "windows-1253"=&gt;"windows-1253",</div><div class='add'>+    "x-cp1253"=&gt;"windows-1253",</div><div class='add'>+    "cp1254"=&gt;"windows-1254",</div><div class='add'>+    "csisolatin5"=&gt;"windows-1254",</div><div class='add'>+    "iso-8859-9"=&gt;"windows-1254",</div><div class='add'>+    "iso-ir-148"=&gt;"windows-1254",</div><div class='add'>+    "iso8859-9"=&gt;"windows-1254",</div><div class='add'>+    "iso88599"=&gt;"windows-1254",</div><div class='add'>+    "iso_8859-9"=&gt;"windows-1254",</div><div class='add'>+    "iso_8859-9:1989"=&gt;"windows-1254",</div><div class='add'>+    "l5"=&gt;"windows-1254",</div><div class='add'>+    "latin5"=&gt;"windows-1254",</div><div class='add'>+    "windows-1254"=&gt;"windows-1254",</div><div class='add'>+    "x-cp1254"=&gt;"windows-1254",</div><div class='add'>+    "cp1255"=&gt;"windows-1255",</div><div class='add'>+    "windows-1255"=&gt;"windows-1255",</div><div class='add'>+    "x-cp1255"=&gt;"windows-1255",</div><div class='add'>+    "cp1256"=&gt;"windows-1256",</div><div class='add'>+    "windows-1256"=&gt;"windows-1256",</div><div class='add'>+    "x-cp1256"=&gt;"windows-1256",</div><div class='add'>+    "cp1257"=&gt;"windows-1257",</div><div class='add'>+    "windows-1257"=&gt;"windows-1257",</div><div class='add'>+    "x-cp1257"=&gt;"windows-1257",</div><div class='add'>+    "cp1258"=&gt;"windows-1258",</div><div class='add'>+    "windows-1258"=&gt;"windows-1258",</div><div class='add'>+    "x-cp1258"=&gt;"windows-1258",</div><div class='add'>+    "x-mac-cyrillic"=&gt;"macCyrillic",</div><div class='add'>+    "x-mac-ukrainian"=&gt;"macCyrillic",</div><div class='add'>+    "chinese"=&gt;"gbk",</div><div class='add'>+    "csgb2312"=&gt;"gbk",</div><div class='add'>+    "csiso58gb231280"=&gt;"gbk",</div><div class='add'>+    "gb2312"=&gt;"gbk",</div><div class='add'>+    "gb_2312"=&gt;"gbk",</div><div class='add'>+    "gb_2312-80"=&gt;"gbk",</div><div class='add'>+    "gbk"=&gt;"gbk",</div><div class='add'>+    "iso-ir-58"=&gt;"gbk",</div><div class='add'>+    "x-gbk"=&gt;"gbk",</div><div class='add'>+    "gb18030"=&gt;"gb18030",</div><div class='add'>+    "big5"=&gt;"big5",</div><div class='add'>+    "big5-hkscs"=&gt;"big5",</div><div class='add'>+    "cn-big5"=&gt;"big5",</div><div class='add'>+    "csbig5"=&gt;"big5",</div><div class='add'>+    "x-x-big5"=&gt;"big5",</div><div class='add'>+    "cseucpkdfmtjapanese"=&gt;"cp51932",</div><div class='add'>+    "euc-jp"=&gt;"cp51932",</div><div class='add'>+    "x-euc-jp"=&gt;"cp51932",</div><div class='add'>+    "csiso2022jp"=&gt;"cp50221",</div><div class='add'>+    "iso-2022-jp"=&gt;"cp50221",</div><div class='add'>+    "csshiftjis"=&gt;"Windows-31J",</div><div class='add'>+    "ms932"=&gt;"Windows-31J",</div><div class='add'>+    "ms_kanji"=&gt;"Windows-31J",</div><div class='add'>+    "shift-jis"=&gt;"Windows-31J",</div><div class='add'>+    "shift_jis"=&gt;"Windows-31J",</div><div class='add'>+    "sjis"=&gt;"Windows-31J",</div><div class='add'>+    "windows-31j"=&gt;"Windows-31J",</div><div class='add'>+    "x-sjis"=&gt;"Windows-31J",</div><div class='add'>+    "cseuckr"=&gt;"euc-kr",</div><div class='add'>+    "csksc56011987"=&gt;"euc-kr",</div><div class='add'>+    "euc-kr"=&gt;"euc-kr",</div><div class='add'>+    "iso-ir-149"=&gt;"euc-kr",</div><div class='add'>+    "korean"=&gt;"euc-kr",</div><div class='add'>+    "ks_c_5601-1987"=&gt;"euc-kr",</div><div class='add'>+    "ks_c_5601-1989"=&gt;"euc-kr",</div><div class='add'>+    "ksc5601"=&gt;"euc-kr",</div><div class='add'>+    "ksc_5601"=&gt;"euc-kr",</div><div class='add'>+    "windows-949"=&gt;"euc-kr",</div><div class='add'>+    "utf-16be"=&gt;"utf-16be",</div><div class='add'>+    "utf-16"=&gt;"utf-16le",</div><div class='add'>+    "utf-16le"=&gt;"utf-16le",</div><div class='add'>+  } # :nodoc:</div><div class='add'>+  Ractor.make_shareable(WEB_ENCODINGS_) if defined?(Ractor)</div><div class='add'>+</div><div class='add'>+  # :nodoc:</div><div class='add'>+  # return encoding or nil</div><div class='add'>+  # http://encoding.spec.whatwg.org/#concept-encoding-get</div><div class='add'>+  def self.get_encoding(label)</div><div class='add'>+    Encoding.find(WEB_ENCODINGS_[label.to_str.strip.downcase]) rescue nil</div><div class='add'>+  end</div><div class='add'>+end # module Bundler::URI</div><div class='add'>+</div><div class='add'>+module Bundler</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Returns +uri+ converted to an Bundler::URI object.</div><div class='add'>+  #</div><div class='add'>+  def URI(uri)</div><div class='add'>+    if uri.is_a?(Bundler::URI::Generic)</div><div class='add'>+      uri</div><div class='add'>+    elsif uri = String.try_convert(uri)</div><div class='add'>+      Bundler::URI.parse(uri)</div><div class='add'>+    else</div><div class='add'>+      raise ArgumentError,</div><div class='add'>+        "bad argument (expected Bundler::URI object or Bundler::URI string)"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  module_function :URI</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/file.rb b/lib/bundler/vendor/uri/lib/uri/file.rb<br/>new file mode 100644<br/>index 0000000000..8d75a9de7a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/file.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/file.rb</a></div><div class='hunk'>@@ -0,0 +1,100 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative 'generic'</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # The "file" Bundler::URI is defined by RFC8089.</div><div class='add'>+  #</div><div class='add'>+  class File &lt; Generic</div><div class='add'>+    # A Default port of nil for Bundler::URI::File.</div><div class='add'>+    DEFAULT_PORT = nil</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # An Array of the available components for Bundler::URI::File.</div><div class='add'>+    #</div><div class='add'>+    COMPONENT = [</div><div class='add'>+      :scheme,</div><div class='add'>+      :host,</div><div class='add'>+      :path</div><div class='add'>+    ].freeze</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Creates a new Bundler::URI::File object from components, with syntax checking.</div><div class='add'>+    #</div><div class='add'>+    # The components accepted are +host+ and +path+.</div><div class='add'>+    #</div><div class='add'>+    # The components should be provided either as an Array, or as a Hash</div><div class='add'>+    # with keys formed by preceding the component names with a colon.</div><div class='add'>+    #</div><div class='add'>+    # If an Array is used, the components must be passed in the</div><div class='add'>+    # order &lt;code&gt;[host, path]&lt;/code&gt;.</div><div class='add'>+    #</div><div class='add'>+    # A path from e.g. the File class should be escaped before</div><div class='add'>+    # being passed.</div><div class='add'>+    #</div><div class='add'>+    # Examples:</div><div class='add'>+    #</div><div class='add'>+    #     require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #     uri1 = Bundler::URI::File.build(['host.example.com', '/path/file.zip'])</div><div class='add'>+    #     uri1.to_s  # =&gt; "file://host.example.com/path/file.zip"</div><div class='add'>+    #</div><div class='add'>+    #     uri2 = Bundler::URI::File.build({:host =&gt; 'host.example.com',</div><div class='add'>+    #       :path =&gt; '/ruby/src'})</div><div class='add'>+    #     uri2.to_s  # =&gt; "file://host.example.com/ruby/src"</div><div class='add'>+    #</div><div class='add'>+    #     uri3 = Bundler::URI::File.build({:path =&gt; Bundler::URI::escape('/path/my file.txt')})</div><div class='add'>+    #     uri3.to_s  # =&gt; "file:///path/my%20file.txt"</div><div class='add'>+    #</div><div class='add'>+    def self.build(args)</div><div class='add'>+      tmp = Util::make_components_hash(self, args)</div><div class='add'>+      super(tmp)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Protected setter for the host component +v+.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.host=.</div><div class='add'>+    #</div><div class='add'>+    def set_host(v)</div><div class='add'>+      v = "" if v.nil? || v == "localhost"</div><div class='add'>+      @host = v</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # do nothing</div><div class='add'>+    def set_port(v)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # raise InvalidURIError</div><div class='add'>+    def check_userinfo(user)</div><div class='add'>+      raise Bundler::URI::InvalidURIError, "can not set userinfo for file Bundler::URI"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # raise InvalidURIError</div><div class='add'>+    def check_user(user)</div><div class='add'>+      raise Bundler::URI::InvalidURIError, "can not set user for file Bundler::URI"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # raise InvalidURIError</div><div class='add'>+    def check_password(user)</div><div class='add'>+      raise Bundler::URI::InvalidURIError, "can not set password for file Bundler::URI"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # do nothing</div><div class='add'>+    def set_userinfo(v)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # do nothing</div><div class='add'>+    def set_user(v)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # do nothing</div><div class='add'>+    def set_password(v)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  register_scheme 'FILE', File</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/ftp.rb b/lib/bundler/vendor/uri/lib/uri/ftp.rb<br/>new file mode 100644<br/>index 0000000000..48b4c6718d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/ftp.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/ftp.rb</a></div><div class='hunk'>@@ -0,0 +1,267 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+# = uri/ftp.rb</div><div class='add'>+#</div><div class='add'>+# Author:: Akira Yamada &lt;akira@ruby-lang.org&gt;</div><div class='add'>+# License:: You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+# See Bundler::URI for general documentation</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require_relative 'generic'</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # FTP Bundler::URI syntax is defined by RFC1738 section 3.2.</div><div class='add'>+  #</div><div class='add'>+  # This class will be redesigned because of difference of implementations;</div><div class='add'>+  # the structure of its path. draft-hoffman-ftp-uri-04 is a draft but it</div><div class='add'>+  # is a good summary about the de facto spec.</div><div class='add'>+  # http://tools.ietf.org/html/draft-hoffman-ftp-uri-04</div><div class='add'>+  #</div><div class='add'>+  class FTP &lt; Generic</div><div class='add'>+    # A Default port of 21 for Bundler::URI::FTP.</div><div class='add'>+    DEFAULT_PORT = 21</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # An Array of the available components for Bundler::URI::FTP.</div><div class='add'>+    #</div><div class='add'>+    COMPONENT = [</div><div class='add'>+      :scheme,</div><div class='add'>+      :userinfo, :host, :port,</div><div class='add'>+      :path, :typecode</div><div class='add'>+    ].freeze</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Typecode is "a", "i", or "d".</div><div class='add'>+    #</div><div class='add'>+    # * "a" indicates a text file (the FTP command was ASCII)</div><div class='add'>+    # * "i" indicates a binary file (FTP command IMAGE)</div><div class='add'>+    # * "d" indicates the contents of a directory should be displayed</div><div class='add'>+    #</div><div class='add'>+    TYPECODE = ['a', 'i', 'd'].freeze</div><div class='add'>+</div><div class='add'>+    # Typecode prefix ";type=".</div><div class='add'>+    TYPECODE_PREFIX = ';type='.freeze</div><div class='add'>+</div><div class='add'>+    def self.new2(user, password, host, port, path,</div><div class='add'>+                  typecode = nil, arg_check = true) # :nodoc:</div><div class='add'>+      # Do not use this method!  Not tested.  [Bug #7301]</div><div class='add'>+      # This methods remains just for compatibility,</div><div class='add'>+      # Keep it undocumented until the active maintainer is assigned.</div><div class='add'>+      typecode = nil if typecode.size == 0</div><div class='add'>+      if typecode &amp;&amp; !TYPECODE.include?(typecode)</div><div class='add'>+        raise ArgumentError,</div><div class='add'>+          "bad typecode is specified: #{typecode}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # do escape</div><div class='add'>+</div><div class='add'>+      self.new('ftp',</div><div class='add'>+               [user, password],</div><div class='add'>+               host, port, nil,</div><div class='add'>+               typecode ? path + TYPECODE_PREFIX + typecode : path,</div><div class='add'>+               nil, nil, nil, arg_check)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Creates a new Bundler::URI::FTP object from components, with syntax checking.</div><div class='add'>+    #</div><div class='add'>+    # The components accepted are +userinfo+, +host+, +port+, +path+, and</div><div class='add'>+    # +typecode+.</div><div class='add'>+    #</div><div class='add'>+    # The components should be provided either as an Array, or as a Hash</div><div class='add'>+    # with keys formed by preceding the component names with a colon.</div><div class='add'>+    #</div><div class='add'>+    # If an Array is used, the components must be passed in the</div><div class='add'>+    # order &lt;code&gt;[userinfo, host, port, path, typecode]&lt;/code&gt;.</div><div class='add'>+    #</div><div class='add'>+    # If the path supplied is absolute, it will be escaped in order to</div><div class='add'>+    # make it absolute in the Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    # Examples:</div><div class='add'>+    #</div><div class='add'>+    #     require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #     uri1 = Bundler::URI::FTP.build(['user:password', 'ftp.example.com', nil,</div><div class='add'>+    #       '/path/file.zip', 'i'])</div><div class='add'>+    #     uri1.to_s  # =&gt; "ftp://user:password@ftp.example.com/%2Fpath/file.zip;type=i"</div><div class='add'>+    #</div><div class='add'>+    #     uri2 = Bundler::URI::FTP.build({:host =&gt; 'ftp.example.com',</div><div class='add'>+    #       :path =&gt; 'ruby/src'})</div><div class='add'>+    #     uri2.to_s  # =&gt; "ftp://ftp.example.com/ruby/src"</div><div class='add'>+    #</div><div class='add'>+    def self.build(args)</div><div class='add'>+</div><div class='add'>+      # Fix the incoming path to be generic URL syntax</div><div class='add'>+      # FTP path  -&gt;  URL path</div><div class='add'>+      # foo/bar       /foo/bar</div><div class='add'>+      # /foo/bar      /%2Ffoo/bar</div><div class='add'>+      #</div><div class='add'>+      if args.kind_of?(Array)</div><div class='add'>+        args[3] = '/' + args[3].sub(/^\//, '%2F')</div><div class='add'>+      else</div><div class='add'>+        args[:path] = '/' + args[:path].sub(/^\//, '%2F')</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      tmp = Util::make_components_hash(self, args)</div><div class='add'>+</div><div class='add'>+      if tmp[:typecode]</div><div class='add'>+        if tmp[:typecode].size == 1</div><div class='add'>+          tmp[:typecode] = TYPECODE_PREFIX + tmp[:typecode]</div><div class='add'>+        end</div><div class='add'>+        tmp[:path] &lt;&lt; tmp[:typecode]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return super(tmp)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Creates a new Bundler::URI::FTP object from generic URL components with no</div><div class='add'>+    # syntax checking.</div><div class='add'>+    #</div><div class='add'>+    # Unlike build(), this method does not escape the path component as</div><div class='add'>+    # required by RFC1738; instead it is treated as per RFC2396.</div><div class='add'>+    #</div><div class='add'>+    # Arguments are +scheme+, +userinfo+, +host+, +port+, +registry+, +path+,</div><div class='add'>+    # +opaque+, +query+, and +fragment+, in that order.</div><div class='add'>+    #</div><div class='add'>+    def initialize(scheme,</div><div class='add'>+                   userinfo, host, port, registry,</div><div class='add'>+                   path, opaque,</div><div class='add'>+                   query,</div><div class='add'>+                   fragment,</div><div class='add'>+                   parser = nil,</div><div class='add'>+                   arg_check = false)</div><div class='add'>+      raise InvalidURIError unless path</div><div class='add'>+      path = path.sub(/^\//,'')</div><div class='add'>+      path.sub!(/^%2F/,'/')</div><div class='add'>+      super(scheme, userinfo, host, port, registry, path, opaque,</div><div class='add'>+            query, fragment, parser, arg_check)</div><div class='add'>+      @typecode = nil</div><div class='add'>+      if tmp = @path.index(TYPECODE_PREFIX)</div><div class='add'>+        typecode = @path[tmp + TYPECODE_PREFIX.size..-1]</div><div class='add'>+        @path = @path[0..tmp - 1]</div><div class='add'>+</div><div class='add'>+        if arg_check</div><div class='add'>+          self.typecode = typecode</div><div class='add'>+        else</div><div class='add'>+          self.set_typecode(typecode)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # typecode accessor.</div><div class='add'>+    #</div><div class='add'>+    # See Bundler::URI::FTP::COMPONENT.</div><div class='add'>+    attr_reader :typecode</div><div class='add'>+</div><div class='add'>+    # Validates typecode +v+,</div><div class='add'>+    # returns +true+ or +false+.</div><div class='add'>+    #</div><div class='add'>+    def check_typecode(v)</div><div class='add'>+      if TYPECODE.include?(v)</div><div class='add'>+        return true</div><div class='add'>+      else</div><div class='add'>+        raise InvalidComponentError,</div><div class='add'>+          "bad typecode(expected #{TYPECODE.join(', ')}): #{v}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    private :check_typecode</div><div class='add'>+</div><div class='add'>+    # Private setter for the typecode +v+.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::FTP.typecode=.</div><div class='add'>+    #</div><div class='add'>+    def set_typecode(v)</div><div class='add'>+      @typecode = v</div><div class='add'>+    end</div><div class='add'>+    protected :set_typecode</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +v+::</div><div class='add'>+    #    String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Public setter for the typecode +v+</div><div class='add'>+    # (with validation).</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::FTP.check_typecode.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("ftp://john@ftp.example.com/my_file.img")</div><div class='add'>+    #   #=&gt; #&lt;Bundler::URI::FTP ftp://john@ftp.example.com/my_file.img&gt;</div><div class='add'>+    #   uri.typecode = "i"</div><div class='add'>+    #   uri</div><div class='add'>+    #   #=&gt; #&lt;Bundler::URI::FTP ftp://john@ftp.example.com/my_file.img;type=i&gt;</div><div class='add'>+    #</div><div class='add'>+    def typecode=(typecode)</div><div class='add'>+      check_typecode(typecode)</div><div class='add'>+      set_typecode(typecode)</div><div class='add'>+      typecode</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def merge(oth) # :nodoc:</div><div class='add'>+      tmp = super(oth)</div><div class='add'>+      if self != tmp</div><div class='add'>+        tmp.set_typecode(oth.typecode)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return tmp</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns the path from an FTP Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    # RFC 1738 specifically states that the path for an FTP Bundler::URI does not</div><div class='add'>+    # include the / which separates the Bundler::URI path from the Bundler::URI host. Example:</div><div class='add'>+    #</div><div class='add'>+    # &lt;code&gt;ftp://ftp.example.com/pub/ruby&lt;/code&gt;</div><div class='add'>+    #</div><div class='add'>+    # The above Bundler::URI indicates that the client should connect to</div><div class='add'>+    # ftp.example.com then cd to pub/ruby from the initial login directory.</div><div class='add'>+    #</div><div class='add'>+    # If you want to cd to an absolute directory, you must include an</div><div class='add'>+    # escaped / (%2F) in the path. Example:</div><div class='add'>+    #</div><div class='add'>+    # &lt;code&gt;ftp://ftp.example.com/%2Fpub/ruby&lt;/code&gt;</div><div class='add'>+    #</div><div class='add'>+    # This method will then return "/pub/ruby".</div><div class='add'>+    #</div><div class='add'>+    def path</div><div class='add'>+      return @path.sub(/^\//,'').sub(/^%2F/,'/')</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Private setter for the path of the Bundler::URI::FTP.</div><div class='add'>+    def set_path(v)</div><div class='add'>+      super("/" + v.sub(/^\//, "%2F"))</div><div class='add'>+    end</div><div class='add'>+    protected :set_path</div><div class='add'>+</div><div class='add'>+    # Returns a String representation of the Bundler::URI::FTP.</div><div class='add'>+    def to_s</div><div class='add'>+      save_path = nil</div><div class='add'>+      if @typecode</div><div class='add'>+        save_path = @path</div><div class='add'>+        @path = @path + TYPECODE_PREFIX + @typecode</div><div class='add'>+      end</div><div class='add'>+      str = super</div><div class='add'>+      if @typecode</div><div class='add'>+        @path = save_path</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return str</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  register_scheme 'FTP', FTP</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/generic.rb b/lib/bundler/vendor/uri/lib/uri/generic.rb<br/>new file mode 100644<br/>index 0000000000..9ae6915826<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/generic.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/generic.rb</a></div><div class='hunk'>@@ -0,0 +1,1587 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+# = uri/generic.rb</div><div class='add'>+#</div><div class='add'>+# Author:: Akira Yamada &lt;akira@ruby-lang.org&gt;</div><div class='add'>+# License:: You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+# See Bundler::URI for general documentation</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require_relative 'common'</div><div class='add'>+autoload :IPSocket, 'socket'</div><div class='add'>+autoload :IPAddr, 'ipaddr'</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # Base class for all Bundler::URI classes.</div><div class='add'>+  # Implements generic Bundler::URI syntax as per RFC 2396.</div><div class='add'>+  #</div><div class='add'>+  class Generic</div><div class='add'>+    include Bundler::URI</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # A Default port of nil for Bundler::URI::Generic.</div><div class='add'>+    #</div><div class='add'>+    DEFAULT_PORT = nil</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Returns default port.</div><div class='add'>+    #</div><div class='add'>+    def self.default_port</div><div class='add'>+      self::DEFAULT_PORT</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Returns default port.</div><div class='add'>+    #</div><div class='add'>+    def default_port</div><div class='add'>+      self.class.default_port</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # An Array of the available components for Bundler::URI::Generic.</div><div class='add'>+    #</div><div class='add'>+    COMPONENT = [</div><div class='add'>+      :scheme,</div><div class='add'>+      :userinfo, :host, :port, :registry,</div><div class='add'>+      :path, :opaque,</div><div class='add'>+      :query,</div><div class='add'>+      :fragment</div><div class='add'>+    ].freeze</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Components of the Bundler::URI in the order.</div><div class='add'>+    #</div><div class='add'>+    def self.component</div><div class='add'>+      self::COMPONENT</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    USE_REGISTRY = false # :nodoc:</div><div class='add'>+</div><div class='add'>+    def self.use_registry # :nodoc:</div><div class='add'>+      self::USE_REGISTRY</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Synopsis</div><div class='add'>+    #</div><div class='add'>+    # See ::new.</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # At first, tries to create a new Bundler::URI::Generic instance using</div><div class='add'>+    # Bundler::URI::Generic::build. But, if exception Bundler::URI::InvalidComponentError is raised,</div><div class='add'>+    # then it does Bundler::URI::Escape.escape all Bundler::URI components and tries again.</div><div class='add'>+    #</div><div class='add'>+    def self.build2(args)</div><div class='add'>+      begin</div><div class='add'>+        return self.build(args)</div><div class='add'>+      rescue InvalidComponentError</div><div class='add'>+        if args.kind_of?(Array)</div><div class='add'>+          return self.build(args.collect{|x|</div><div class='add'>+            if x.is_a?(String)</div><div class='add'>+              DEFAULT_PARSER.escape(x)</div><div class='add'>+            else</div><div class='add'>+              x</div><div class='add'>+            end</div><div class='add'>+          })</div><div class='add'>+        elsif args.kind_of?(Hash)</div><div class='add'>+          tmp = {}</div><div class='add'>+          args.each do |key, value|</div><div class='add'>+            tmp[key] = if value</div><div class='add'>+                DEFAULT_PARSER.escape(value)</div><div class='add'>+              else</div><div class='add'>+                value</div><div class='add'>+              end</div><div class='add'>+          end</div><div class='add'>+          return self.build(tmp)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Synopsis</div><div class='add'>+    #</div><div class='add'>+    # See ::new.</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Creates a new Bundler::URI::Generic instance from components of Bundler::URI::Generic</div><div class='add'>+    # with check.  Components are: scheme, userinfo, host, port, registry, path,</div><div class='add'>+    # opaque, query, and fragment. You can provide arguments either by an Array or a Hash.</div><div class='add'>+    # See ::new for hash keys to use or for order of array items.</div><div class='add'>+    #</div><div class='add'>+    def self.build(args)</div><div class='add'>+      if args.kind_of?(Array) &amp;&amp;</div><div class='add'>+          args.size == ::Bundler::URI::Generic::COMPONENT.size</div><div class='add'>+        tmp = args.dup</div><div class='add'>+      elsif args.kind_of?(Hash)</div><div class='add'>+        tmp = ::Bundler::URI::Generic::COMPONENT.collect do |c|</div><div class='add'>+          if args.include?(c)</div><div class='add'>+            args[c]</div><div class='add'>+          else</div><div class='add'>+            nil</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        component = self.class.component rescue ::Bundler::URI::Generic::COMPONENT</div><div class='add'>+        raise ArgumentError,</div><div class='add'>+        "expected Array of or Hash of components of #{self.class} (#{component.join(', ')})"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      tmp &lt;&lt; nil</div><div class='add'>+      tmp &lt;&lt; true</div><div class='add'>+      return self.new(*tmp)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +scheme+::</div><div class='add'>+    #   Protocol scheme, i.e. 'http','ftp','mailto' and so on.</div><div class='add'>+    # +userinfo+::</div><div class='add'>+    #   User name and password, i.e. 'sdmitry:bla'.</div><div class='add'>+    # +host+::</div><div class='add'>+    #   Server host name.</div><div class='add'>+    # +port+::</div><div class='add'>+    #   Server port.</div><div class='add'>+    # +registry+::</div><div class='add'>+    #   Registry of naming authorities.</div><div class='add'>+    # +path+::</div><div class='add'>+    #   Path on server.</div><div class='add'>+    # +opaque+::</div><div class='add'>+    #   Opaque part.</div><div class='add'>+    # +query+::</div><div class='add'>+    #   Query data.</div><div class='add'>+    # +fragment+::</div><div class='add'>+    #   Part of the Bundler::URI after '#' character.</div><div class='add'>+    # +parser+::</div><div class='add'>+    #   Parser for internal use [Bundler::URI::DEFAULT_PARSER by default].</div><div class='add'>+    # +arg_check+::</div><div class='add'>+    #   Check arguments [false by default].</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Creates a new Bundler::URI::Generic instance from ``generic'' components without check.</div><div class='add'>+    #</div><div class='add'>+    def initialize(scheme,</div><div class='add'>+                   userinfo, host, port, registry,</div><div class='add'>+                   path, opaque,</div><div class='add'>+                   query,</div><div class='add'>+                   fragment,</div><div class='add'>+                   parser = DEFAULT_PARSER,</div><div class='add'>+                   arg_check = false)</div><div class='add'>+      @scheme = nil</div><div class='add'>+      @user = nil</div><div class='add'>+      @password = nil</div><div class='add'>+      @host = nil</div><div class='add'>+      @port = nil</div><div class='add'>+      @path = nil</div><div class='add'>+      @query = nil</div><div class='add'>+      @opaque = nil</div><div class='add'>+      @fragment = nil</div><div class='add'>+      @parser = parser == DEFAULT_PARSER ? nil : parser</div><div class='add'>+</div><div class='add'>+      if arg_check</div><div class='add'>+        self.scheme = scheme</div><div class='add'>+        self.userinfo = userinfo</div><div class='add'>+        self.hostname = host</div><div class='add'>+        self.port = port</div><div class='add'>+        self.path = path</div><div class='add'>+        self.query = query</div><div class='add'>+        self.opaque = opaque</div><div class='add'>+        self.fragment = fragment</div><div class='add'>+      else</div><div class='add'>+        self.set_scheme(scheme)</div><div class='add'>+        self.set_userinfo(userinfo)</div><div class='add'>+        self.set_host(host)</div><div class='add'>+        self.set_port(port)</div><div class='add'>+        self.set_path(path)</div><div class='add'>+        self.query = query</div><div class='add'>+        self.set_opaque(opaque)</div><div class='add'>+        self.fragment=(fragment)</div><div class='add'>+      end</div><div class='add'>+      if registry</div><div class='add'>+        raise InvalidURIError,</div><div class='add'>+          "the scheme #{@scheme} does not accept registry part: #{registry} (or bad hostname?)"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      @scheme&amp;.freeze</div><div class='add'>+      self.set_path('') if !@path &amp;&amp; !@opaque # (see RFC2396 Section 5.2)</div><div class='add'>+      self.set_port(self.default_port) if self.default_port &amp;&amp; !@port</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Returns the scheme component of the Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI("http://foo/bar/baz").scheme #=&gt; "http"</div><div class='add'>+    #</div><div class='add'>+    attr_reader :scheme</div><div class='add'>+</div><div class='add'>+    # Returns the host component of the Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI("http://foo/bar/baz").host #=&gt; "foo"</div><div class='add'>+    #</div><div class='add'>+    # It returns nil if no host component exists.</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI("mailto:foo@example.org").host #=&gt; nil</div><div class='add'>+    #</div><div class='add'>+    # The component does not contain the port number.</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI("http://foo:8080/bar/baz").host #=&gt; "foo"</div><div class='add'>+    #</div><div class='add'>+    # Since IPv6 addresses are wrapped with brackets in URIs,</div><div class='add'>+    # this method returns IPv6 addresses wrapped with brackets.</div><div class='add'>+    # This form is not appropriate to pass to socket methods such as TCPSocket.open.</div><div class='add'>+    # If unwrapped host names are required, use the #hostname method.</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI("http://[::1]/bar/baz").host     #=&gt; "[::1]"</div><div class='add'>+    #   Bundler::URI("http://[::1]/bar/baz").hostname #=&gt; "::1"</div><div class='add'>+    #</div><div class='add'>+    attr_reader :host</div><div class='add'>+</div><div class='add'>+    # Returns the port component of the Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI("http://foo/bar/baz").port      #=&gt; 80</div><div class='add'>+    #   Bundler::URI("http://foo:8080/bar/baz").port #=&gt; 8080</div><div class='add'>+    #</div><div class='add'>+    attr_reader :port</div><div class='add'>+</div><div class='add'>+    def registry # :nodoc:</div><div class='add'>+      nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns the path component of the Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI("http://foo/bar/baz").path #=&gt; "/bar/baz"</div><div class='add'>+    #</div><div class='add'>+    attr_reader :path</div><div class='add'>+</div><div class='add'>+    # Returns the query component of the Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI("http://foo/bar/baz?search=FooBar").query #=&gt; "search=FooBar"</div><div class='add'>+    #</div><div class='add'>+    attr_reader :query</div><div class='add'>+</div><div class='add'>+    # Returns the opaque part of the Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI("mailto:foo@example.org").opaque #=&gt; "foo@example.org"</div><div class='add'>+    #   Bundler::URI("http://foo/bar/baz").opaque     #=&gt; nil</div><div class='add'>+    #</div><div class='add'>+    # The portion of the path that does not make use of the slash '/'.</div><div class='add'>+    # The path typically refers to an absolute path or an opaque part.</div><div class='add'>+    # (See RFC2396 Section 3 and 5.2.)</div><div class='add'>+    #</div><div class='add'>+    attr_reader :opaque</div><div class='add'>+</div><div class='add'>+    # Returns the fragment component of the Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI("http://foo/bar/baz?search=FooBar#ponies").fragment #=&gt; "ponies"</div><div class='add'>+    #</div><div class='add'>+    attr_reader :fragment</div><div class='add'>+</div><div class='add'>+    # Returns the parser to be used.</div><div class='add'>+    #</div><div class='add'>+    # Unless a Bundler::URI::Parser is defined, DEFAULT_PARSER is used.</div><div class='add'>+    #</div><div class='add'>+    def parser</div><div class='add'>+      if !defined?(@parser) || !@parser</div><div class='add'>+        DEFAULT_PARSER</div><div class='add'>+      else</div><div class='add'>+        @parser || DEFAULT_PARSER</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Replaces self by other Bundler::URI object.</div><div class='add'>+    #</div><div class='add'>+    def replace!(oth)</div><div class='add'>+      if self.class != oth.class</div><div class='add'>+        raise ArgumentError, "expected #{self.class} object"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      component.each do |c|</div><div class='add'>+        self.__send__("#{c}=", oth.__send__(c))</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    private :replace!</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Components of the Bundler::URI in the order.</div><div class='add'>+    #</div><div class='add'>+    def component</div><div class='add'>+      self.class.component</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Checks the scheme +v+ component against the Bundler::URI::Parser Regexp for :SCHEME.</div><div class='add'>+    #</div><div class='add'>+    def check_scheme(v)</div><div class='add'>+      if v &amp;&amp; parser.regexp[:SCHEME] !~ v</div><div class='add'>+        raise InvalidComponentError,</div><div class='add'>+          "bad component(expected scheme component): #{v}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+    private :check_scheme</div><div class='add'>+</div><div class='add'>+    # Protected setter for the scheme component +v+.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.scheme=.</div><div class='add'>+    #</div><div class='add'>+    def set_scheme(v)</div><div class='add'>+      @scheme = v&amp;.downcase</div><div class='add'>+    end</div><div class='add'>+    protected :set_scheme</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +v+::</div><div class='add'>+    #    String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Public setter for the scheme component +v+</div><div class='add'>+    # (with validation).</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.check_scheme.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://my.example.com")</div><div class='add'>+    #   uri.scheme = "https"</div><div class='add'>+    #   uri.to_s  #=&gt; "https://my.example.com"</div><div class='add'>+    #</div><div class='add'>+    def scheme=(v)</div><div class='add'>+      check_scheme(v)</div><div class='add'>+      set_scheme(v)</div><div class='add'>+      v</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Checks the +user+ and +password+.</div><div class='add'>+    #</div><div class='add'>+    # If +password+ is not provided, then +user+ is</div><div class='add'>+    # split, using Bundler::URI::Generic.split_userinfo, to</div><div class='add'>+    # pull +user+ and +password.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.check_user, Bundler::URI::Generic.check_password.</div><div class='add'>+    #</div><div class='add'>+    def check_userinfo(user, password = nil)</div><div class='add'>+      if !password</div><div class='add'>+        user, password = split_userinfo(user)</div><div class='add'>+      end</div><div class='add'>+      check_user(user)</div><div class='add'>+      check_password(password, user)</div><div class='add'>+</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+    private :check_userinfo</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Checks the user +v+ component for RFC2396 compliance</div><div class='add'>+    # and against the Bundler::URI::Parser Regexp for :USERINFO.</div><div class='add'>+    #</div><div class='add'>+    # Can not have a registry or opaque component defined,</div><div class='add'>+    # with a user component defined.</div><div class='add'>+    #</div><div class='add'>+    def check_user(v)</div><div class='add'>+      if @opaque</div><div class='add'>+        raise InvalidURIError,</div><div class='add'>+          "can not set user with opaque"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return v unless v</div><div class='add'>+</div><div class='add'>+      if parser.regexp[:USERINFO] !~ v</div><div class='add'>+        raise InvalidComponentError,</div><div class='add'>+          "bad component(expected userinfo component or user component): #{v}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+    private :check_user</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Checks the password +v+ component for RFC2396 compliance</div><div class='add'>+    # and against the Bundler::URI::Parser Regexp for :USERINFO.</div><div class='add'>+    #</div><div class='add'>+    # Can not have a registry or opaque component defined,</div><div class='add'>+    # with a user component defined.</div><div class='add'>+    #</div><div class='add'>+    def check_password(v, user = @user)</div><div class='add'>+      if @opaque</div><div class='add'>+        raise InvalidURIError,</div><div class='add'>+          "can not set password with opaque"</div><div class='add'>+      end</div><div class='add'>+      return v unless v</div><div class='add'>+</div><div class='add'>+      if !user</div><div class='add'>+        raise InvalidURIError,</div><div class='add'>+          "password component depends user component"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if parser.regexp[:USERINFO] !~ v</div><div class='add'>+        raise InvalidComponentError,</div><div class='add'>+          "bad password component"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+    private :check_password</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Sets userinfo, argument is string like 'name:pass'.</div><div class='add'>+    #</div><div class='add'>+    def userinfo=(userinfo)</div><div class='add'>+      if userinfo.nil?</div><div class='add'>+        return nil</div><div class='add'>+      end</div><div class='add'>+      check_userinfo(*userinfo)</div><div class='add'>+      set_userinfo(*userinfo)</div><div class='add'>+      # returns userinfo</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +v+::</div><div class='add'>+    #    String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Public setter for the +user+ component</div><div class='add'>+    # (with validation).</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.check_user.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://john:S3nsit1ve@my.example.com")</div><div class='add'>+    #   uri.user = "sam"</div><div class='add'>+    #   uri.to_s  #=&gt; "http://sam:V3ry_S3nsit1ve@my.example.com"</div><div class='add'>+    #</div><div class='add'>+    def user=(user)</div><div class='add'>+      check_user(user)</div><div class='add'>+      set_user(user)</div><div class='add'>+      # returns user</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +v+::</div><div class='add'>+    #    String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Public setter for the +password+ component</div><div class='add'>+    # (with validation).</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.check_password.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://john:S3nsit1ve@my.example.com")</div><div class='add'>+    #   uri.password = "V3ry_S3nsit1ve"</div><div class='add'>+    #   uri.to_s  #=&gt; "http://john:V3ry_S3nsit1ve@my.example.com"</div><div class='add'>+    #</div><div class='add'>+    def password=(password)</div><div class='add'>+      check_password(password)</div><div class='add'>+      set_password(password)</div><div class='add'>+      # returns password</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Protected setter for the +user+ component, and +password+ if available</div><div class='add'>+    # (with validation).</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.userinfo=.</div><div class='add'>+    #</div><div class='add'>+    def set_userinfo(user, password = nil)</div><div class='add'>+      unless password</div><div class='add'>+        user, password = split_userinfo(user)</div><div class='add'>+      end</div><div class='add'>+      @user     = user</div><div class='add'>+      @password = password if password</div><div class='add'>+</div><div class='add'>+      [@user, @password]</div><div class='add'>+    end</div><div class='add'>+    protected :set_userinfo</div><div class='add'>+</div><div class='add'>+    # Protected setter for the user component +v+.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.user=.</div><div class='add'>+    #</div><div class='add'>+    def set_user(v)</div><div class='add'>+      set_userinfo(v, @password)</div><div class='add'>+      v</div><div class='add'>+    end</div><div class='add'>+    protected :set_user</div><div class='add'>+</div><div class='add'>+    # Protected setter for the password component +v+.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.password=.</div><div class='add'>+    #</div><div class='add'>+    def set_password(v)</div><div class='add'>+      @password = v</div><div class='add'>+      # returns v</div><div class='add'>+    end</div><div class='add'>+    protected :set_password</div><div class='add'>+</div><div class='add'>+    # Returns the userinfo +ui+ as &lt;code&gt;[user, password]&lt;/code&gt;</div><div class='add'>+    # if properly formatted as 'user:password'.</div><div class='add'>+    def split_userinfo(ui)</div><div class='add'>+      return nil, nil unless ui</div><div class='add'>+      user, password = ui.split(':', 2)</div><div class='add'>+</div><div class='add'>+      return user, password</div><div class='add'>+    end</div><div class='add'>+    private :split_userinfo</div><div class='add'>+</div><div class='add'>+    # Escapes 'user:password' +v+ based on RFC 1738 section 3.1.</div><div class='add'>+    def escape_userpass(v)</div><div class='add'>+      parser.escape(v, /[@:\/]/o) # RFC 1738 section 3.1 #/</div><div class='add'>+    end</div><div class='add'>+    private :escape_userpass</div><div class='add'>+</div><div class='add'>+    # Returns the userinfo, either as 'user' or 'user:password'.</div><div class='add'>+    def userinfo</div><div class='add'>+      if @user.nil?</div><div class='add'>+        nil</div><div class='add'>+      elsif @password.nil?</div><div class='add'>+        @user</div><div class='add'>+      else</div><div class='add'>+        @user + ':' + @password</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns the user component (without Bundler::URI decoding).</div><div class='add'>+    def user</div><div class='add'>+      @user</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns the password component (without Bundler::URI decoding).</div><div class='add'>+    def password</div><div class='add'>+      @password</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns the user component after Bundler::URI decoding.</div><div class='add'>+    def decoded_user</div><div class='add'>+      Bundler::URI.decode_uri_component(@user) if @user</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns the password component after Bundler::URI decoding.</div><div class='add'>+    def decoded_password</div><div class='add'>+      Bundler::URI.decode_uri_component(@password) if @password</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Checks the host +v+ component for RFC2396 compliance</div><div class='add'>+    # and against the Bundler::URI::Parser Regexp for :HOST.</div><div class='add'>+    #</div><div class='add'>+    # Can not have a registry or opaque component defined,</div><div class='add'>+    # with a host component defined.</div><div class='add'>+    #</div><div class='add'>+    def check_host(v)</div><div class='add'>+      return v unless v</div><div class='add'>+</div><div class='add'>+      if @opaque</div><div class='add'>+        raise InvalidURIError,</div><div class='add'>+          "can not set host with registry or opaque"</div><div class='add'>+      elsif parser.regexp[:HOST] !~ v</div><div class='add'>+        raise InvalidComponentError,</div><div class='add'>+          "bad component(expected host component): #{v}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+    private :check_host</div><div class='add'>+</div><div class='add'>+    # Protected setter for the host component +v+.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.host=.</div><div class='add'>+    #</div><div class='add'>+    def set_host(v)</div><div class='add'>+      @host = v</div><div class='add'>+    end</div><div class='add'>+    protected :set_host</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +v+::</div><div class='add'>+    #    String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Public setter for the host component +v+</div><div class='add'>+    # (with validation).</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.check_host.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://my.example.com")</div><div class='add'>+    #   uri.host = "foo.com"</div><div class='add'>+    #   uri.to_s  #=&gt; "http://foo.com"</div><div class='add'>+    #</div><div class='add'>+    def host=(v)</div><div class='add'>+      check_host(v)</div><div class='add'>+      set_host(v)</div><div class='add'>+      v</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Extract the host part of the Bundler::URI and unwrap brackets for IPv6 addresses.</div><div class='add'>+    #</div><div class='add'>+    # This method is the same as Bundler::URI::Generic#host except</div><div class='add'>+    # brackets for IPv6 (and future IP) addresses are removed.</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI("http://[::1]/bar")</div><div class='add'>+    #   uri.hostname      #=&gt; "::1"</div><div class='add'>+    #   uri.host          #=&gt; "[::1]"</div><div class='add'>+    #</div><div class='add'>+    def hostname</div><div class='add'>+      v = self.host</div><div class='add'>+      v&amp;.start_with?('[') &amp;&amp; v.end_with?(']') ? v[1..-2] : v</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Sets the host part of the Bundler::URI as the argument with brackets for IPv6 addresses.</div><div class='add'>+    #</div><div class='add'>+    # This method is the same as Bundler::URI::Generic#host= except</div><div class='add'>+    # the argument can be a bare IPv6 address.</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI("http://foo/bar")</div><div class='add'>+    #   uri.hostname = "::1"</div><div class='add'>+    #   uri.to_s  #=&gt; "http://[::1]/bar"</div><div class='add'>+    #</div><div class='add'>+    # If the argument seems to be an IPv6 address,</div><div class='add'>+    # it is wrapped with brackets.</div><div class='add'>+    #</div><div class='add'>+    def hostname=(v)</div><div class='add'>+      v = "[#{v}]" if !(v&amp;.start_with?('[') &amp;&amp; v&amp;.end_with?(']')) &amp;&amp; v&amp;.index(':')</div><div class='add'>+      self.host = v</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Checks the port +v+ component for RFC2396 compliance</div><div class='add'>+    # and against the Bundler::URI::Parser Regexp for :PORT.</div><div class='add'>+    #</div><div class='add'>+    # Can not have a registry or opaque component defined,</div><div class='add'>+    # with a port component defined.</div><div class='add'>+    #</div><div class='add'>+    def check_port(v)</div><div class='add'>+      return v unless v</div><div class='add'>+</div><div class='add'>+      if @opaque</div><div class='add'>+        raise InvalidURIError,</div><div class='add'>+          "can not set port with registry or opaque"</div><div class='add'>+      elsif !v.kind_of?(Integer) &amp;&amp; parser.regexp[:PORT] !~ v</div><div class='add'>+        raise InvalidComponentError,</div><div class='add'>+          "bad component(expected port component): #{v.inspect}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+    private :check_port</div><div class='add'>+</div><div class='add'>+    # Protected setter for the port component +v+.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.port=.</div><div class='add'>+    #</div><div class='add'>+    def set_port(v)</div><div class='add'>+      v = v.empty? ? nil : v.to_i unless !v || v.kind_of?(Integer)</div><div class='add'>+      @port = v</div><div class='add'>+    end</div><div class='add'>+    protected :set_port</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +v+::</div><div class='add'>+    #    String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Public setter for the port component +v+</div><div class='add'>+    # (with validation).</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.check_port.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://my.example.com")</div><div class='add'>+    #   uri.port = 8080</div><div class='add'>+    #   uri.to_s  #=&gt; "http://my.example.com:8080"</div><div class='add'>+    #</div><div class='add'>+    def port=(v)</div><div class='add'>+      check_port(v)</div><div class='add'>+      set_port(v)</div><div class='add'>+      port</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def check_registry(v) # :nodoc:</div><div class='add'>+      raise InvalidURIError, "can not set registry"</div><div class='add'>+    end</div><div class='add'>+    private :check_registry</div><div class='add'>+</div><div class='add'>+    def set_registry(v) #:nodoc:</div><div class='add'>+      raise InvalidURIError, "can not set registry"</div><div class='add'>+    end</div><div class='add'>+    protected :set_registry</div><div class='add'>+</div><div class='add'>+    def registry=(v)</div><div class='add'>+      raise InvalidURIError, "can not set registry"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Checks the path +v+ component for RFC2396 compliance</div><div class='add'>+    # and against the Bundler::URI::Parser Regexp</div><div class='add'>+    # for :ABS_PATH and :REL_PATH.</div><div class='add'>+    #</div><div class='add'>+    # Can not have a opaque component defined,</div><div class='add'>+    # with a path component defined.</div><div class='add'>+    #</div><div class='add'>+    def check_path(v)</div><div class='add'>+      # raise if both hier and opaque are not nil, because:</div><div class='add'>+      # absoluteURI   = scheme ":" ( hier_part | opaque_part )</div><div class='add'>+      # hier_part     = ( net_path | abs_path ) [ "?" query ]</div><div class='add'>+      if v &amp;&amp; @opaque</div><div class='add'>+        raise InvalidURIError,</div><div class='add'>+          "path conflicts with opaque"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # If scheme is ftp, path may be relative.</div><div class='add'>+      # See RFC 1738 section 3.2.2, and RFC 2396.</div><div class='add'>+      if @scheme &amp;&amp; @scheme != "ftp"</div><div class='add'>+        if v &amp;&amp; v != '' &amp;&amp; parser.regexp[:ABS_PATH] !~ v</div><div class='add'>+          raise InvalidComponentError,</div><div class='add'>+            "bad component(expected absolute path component): #{v}"</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        if v &amp;&amp; v != '' &amp;&amp; parser.regexp[:ABS_PATH] !~ v &amp;&amp;</div><div class='add'>+           parser.regexp[:REL_PATH] !~ v</div><div class='add'>+          raise InvalidComponentError,</div><div class='add'>+            "bad component(expected relative path component): #{v}"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+    private :check_path</div><div class='add'>+</div><div class='add'>+    # Protected setter for the path component +v+.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.path=.</div><div class='add'>+    #</div><div class='add'>+    def set_path(v)</div><div class='add'>+      @path = v</div><div class='add'>+    end</div><div class='add'>+    protected :set_path</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +v+::</div><div class='add'>+    #    String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Public setter for the path component +v+</div><div class='add'>+    # (with validation).</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.check_path.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://my.example.com/pub/files")</div><div class='add'>+    #   uri.path = "/faq/"</div><div class='add'>+    #   uri.to_s  #=&gt; "http://my.example.com/faq/"</div><div class='add'>+    #</div><div class='add'>+    def path=(v)</div><div class='add'>+      check_path(v)</div><div class='add'>+      set_path(v)</div><div class='add'>+      v</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +v+::</div><div class='add'>+    #    String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Public setter for the query component +v+.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://my.example.com/?id=25")</div><div class='add'>+    #   uri.query = "id=1"</div><div class='add'>+    #   uri.to_s  #=&gt; "http://my.example.com/?id=1"</div><div class='add'>+    #</div><div class='add'>+    def query=(v)</div><div class='add'>+      return @query = nil unless v</div><div class='add'>+      raise InvalidURIError, "query conflicts with opaque" if @opaque</div><div class='add'>+</div><div class='add'>+      x = v.to_str</div><div class='add'>+      v = x.dup if x.equal? v</div><div class='add'>+      v.encode!(Encoding::UTF_8) rescue nil</div><div class='add'>+      v.delete!("\t\r\n")</div><div class='add'>+      v.force_encoding(Encoding::ASCII_8BIT)</div><div class='add'>+      raise InvalidURIError, "invalid percent escape: #{$1}" if /(%\H\H)/n.match(v)</div><div class='add'>+      v.gsub!(/(?!%\h\h|[!$-&amp;(-;=?-_a-~])./n.freeze){'%%%02X' % $&amp;.ord}</div><div class='add'>+      v.force_encoding(Encoding::US_ASCII)</div><div class='add'>+      @query = v</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Checks the opaque +v+ component for RFC2396 compliance and</div><div class='add'>+    # against the Bundler::URI::Parser Regexp for :OPAQUE.</div><div class='add'>+    #</div><div class='add'>+    # Can not have a host, port, user, or path component defined,</div><div class='add'>+    # with an opaque component defined.</div><div class='add'>+    #</div><div class='add'>+    def check_opaque(v)</div><div class='add'>+      return v unless v</div><div class='add'>+</div><div class='add'>+      # raise if both hier and opaque are not nil, because:</div><div class='add'>+      # absoluteURI   = scheme ":" ( hier_part | opaque_part )</div><div class='add'>+      # hier_part     = ( net_path | abs_path ) [ "?" query ]</div><div class='add'>+      if @host || @port || @user || @path  # userinfo = @user + ':' + @password</div><div class='add'>+        raise InvalidURIError,</div><div class='add'>+          "can not set opaque with host, port, userinfo or path"</div><div class='add'>+      elsif v &amp;&amp; parser.regexp[:OPAQUE] !~ v</div><div class='add'>+        raise InvalidComponentError,</div><div class='add'>+          "bad component(expected opaque component): #{v}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+    private :check_opaque</div><div class='add'>+</div><div class='add'>+    # Protected setter for the opaque component +v+.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.opaque=.</div><div class='add'>+    #</div><div class='add'>+    def set_opaque(v)</div><div class='add'>+      @opaque = v</div><div class='add'>+    end</div><div class='add'>+    protected :set_opaque</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +v+::</div><div class='add'>+    #    String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Public setter for the opaque component +v+</div><div class='add'>+    # (with validation).</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.check_opaque.</div><div class='add'>+    #</div><div class='add'>+    def opaque=(v)</div><div class='add'>+      check_opaque(v)</div><div class='add'>+      set_opaque(v)</div><div class='add'>+      v</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Checks the fragment +v+ component against the Bundler::URI::Parser Regexp for :FRAGMENT.</div><div class='add'>+    #</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +v+::</div><div class='add'>+    #    String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Public setter for the fragment component +v+</div><div class='add'>+    # (with validation).</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://my.example.com/?id=25#time=1305212049")</div><div class='add'>+    #   uri.fragment = "time=1305212086"</div><div class='add'>+    #   uri.to_s  #=&gt; "http://my.example.com/?id=25#time=1305212086"</div><div class='add'>+    #</div><div class='add'>+    def fragment=(v)</div><div class='add'>+      return @fragment = nil unless v</div><div class='add'>+</div><div class='add'>+      x = v.to_str</div><div class='add'>+      v = x.dup if x.equal? v</div><div class='add'>+      v.encode!(Encoding::UTF_8) rescue nil</div><div class='add'>+      v.delete!("\t\r\n")</div><div class='add'>+      v.force_encoding(Encoding::ASCII_8BIT)</div><div class='add'>+      v.gsub!(/(?!%\h\h|[!-~])./n){'%%%02X' % $&amp;.ord}</div><div class='add'>+      v.force_encoding(Encoding::US_ASCII)</div><div class='add'>+      @fragment = v</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Returns true if Bundler::URI is hierarchical.</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Bundler::URI has components listed in order of decreasing significance from left to right,</div><div class='add'>+    # see RFC3986 https://tools.ietf.org/html/rfc3986 1.2.3.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://my.example.com/")</div><div class='add'>+    #   uri.hierarchical?</div><div class='add'>+    #   #=&gt; true</div><div class='add'>+    #   uri = Bundler::URI.parse("mailto:joe@example.com")</div><div class='add'>+    #   uri.hierarchical?</div><div class='add'>+    #   #=&gt; false</div><div class='add'>+    #</div><div class='add'>+    def hierarchical?</div><div class='add'>+      if @path</div><div class='add'>+        true</div><div class='add'>+      else</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Returns true if Bundler::URI has a scheme (e.g. http:// or https://) specified.</div><div class='add'>+    #</div><div class='add'>+    def absolute?</div><div class='add'>+      if @scheme</div><div class='add'>+        true</div><div class='add'>+      else</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    alias absolute absolute?</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Returns true if Bundler::URI does not have a scheme (e.g. http:// or https://) specified.</div><div class='add'>+    #</div><div class='add'>+    def relative?</div><div class='add'>+      !absolute?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Returns an Array of the path split on '/'.</div><div class='add'>+    #</div><div class='add'>+    def split_path(path)</div><div class='add'>+      path.split("/", -1)</div><div class='add'>+    end</div><div class='add'>+    private :split_path</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Merges a base path +base+, with relative path +rel+,</div><div class='add'>+    # returns a modified base path.</div><div class='add'>+    #</div><div class='add'>+    def merge_path(base, rel)</div><div class='add'>+</div><div class='add'>+      # RFC2396, Section 5.2, 5)</div><div class='add'>+      # RFC2396, Section 5.2, 6)</div><div class='add'>+      base_path = split_path(base)</div><div class='add'>+      rel_path  = split_path(rel)</div><div class='add'>+</div><div class='add'>+      # RFC2396, Section 5.2, 6), a)</div><div class='add'>+      base_path &lt;&lt; '' if base_path.last == '..'</div><div class='add'>+      while i = base_path.index('..')</div><div class='add'>+        base_path.slice!(i - 1, 2)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if (first = rel_path.first) and first.empty?</div><div class='add'>+        base_path.clear</div><div class='add'>+        rel_path.shift</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # RFC2396, Section 5.2, 6), c)</div><div class='add'>+      # RFC2396, Section 5.2, 6), d)</div><div class='add'>+      rel_path.push('') if rel_path.last == '.' || rel_path.last == '..'</div><div class='add'>+      rel_path.delete('.')</div><div class='add'>+</div><div class='add'>+      # RFC2396, Section 5.2, 6), e)</div><div class='add'>+      tmp = []</div><div class='add'>+      rel_path.each do |x|</div><div class='add'>+        if x == '..' &amp;&amp;</div><div class='add'>+            !(tmp.empty? || tmp.last == '..')</div><div class='add'>+          tmp.pop</div><div class='add'>+        else</div><div class='add'>+          tmp &lt;&lt; x</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      add_trailer_slash = !tmp.empty?</div><div class='add'>+      if base_path.empty?</div><div class='add'>+        base_path = [''] # keep '/' for root directory</div><div class='add'>+      elsif add_trailer_slash</div><div class='add'>+        base_path.pop</div><div class='add'>+      end</div><div class='add'>+      while x = tmp.shift</div><div class='add'>+        if x == '..'</div><div class='add'>+          # RFC2396, Section 4</div><div class='add'>+          # a .. or . in an absolute path has no special meaning</div><div class='add'>+          base_path.pop if base_path.size &gt; 1</div><div class='add'>+        else</div><div class='add'>+          # if x == '..'</div><div class='add'>+          #   valid absolute (but abnormal) path "/../..."</div><div class='add'>+          # else</div><div class='add'>+          #   valid absolute path</div><div class='add'>+          # end</div><div class='add'>+          base_path &lt;&lt; x</div><div class='add'>+          tmp.each {|t| base_path &lt;&lt; t}</div><div class='add'>+          add_trailer_slash = false</div><div class='add'>+          break</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      base_path.push('') if add_trailer_slash</div><div class='add'>+</div><div class='add'>+      return base_path.join('/')</div><div class='add'>+    end</div><div class='add'>+    private :merge_path</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +oth+::</div><div class='add'>+    #    Bundler::URI or String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Destructive form of #merge.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://my.example.com")</div><div class='add'>+    #   uri.merge!("/main.rbx?page=1")</div><div class='add'>+    #   uri.to_s  # =&gt; "http://my.example.com/main.rbx?page=1"</div><div class='add'>+    #</div><div class='add'>+    def merge!(oth)</div><div class='add'>+      t = merge(oth)</div><div class='add'>+      if self == t</div><div class='add'>+        nil</div><div class='add'>+      else</div><div class='add'>+        replace!(t)</div><div class='add'>+        self</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +oth+::</div><div class='add'>+    #    Bundler::URI or String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Merges two URIs.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://my.example.com")</div><div class='add'>+    #   uri.merge("/main.rbx?page=1")</div><div class='add'>+    #   # =&gt; "http://my.example.com/main.rbx?page=1"</div><div class='add'>+    #</div><div class='add'>+    def merge(oth)</div><div class='add'>+      rel = parser.__send__(:convert_to_uri, oth)</div><div class='add'>+</div><div class='add'>+      if rel.absolute?</div><div class='add'>+        #raise BadURIError, "both Bundler::URI are absolute" if absolute?</div><div class='add'>+        # hmm... should return oth for usability?</div><div class='add'>+        return rel</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      unless self.absolute?</div><div class='add'>+        raise BadURIError, "both Bundler::URI are relative"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      base = self.dup</div><div class='add'>+</div><div class='add'>+      authority = rel.userinfo || rel.host || rel.port</div><div class='add'>+</div><div class='add'>+      # RFC2396, Section 5.2, 2)</div><div class='add'>+      if (rel.path.nil? || rel.path.empty?) &amp;&amp; !authority &amp;&amp; !rel.query</div><div class='add'>+        base.fragment=(rel.fragment) if rel.fragment</div><div class='add'>+        return base</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      base.query = nil</div><div class='add'>+      base.fragment=(nil)</div><div class='add'>+</div><div class='add'>+      # RFC2396, Section 5.2, 4)</div><div class='add'>+      if !authority</div><div class='add'>+        base.set_path(merge_path(base.path, rel.path)) if base.path &amp;&amp; rel.path</div><div class='add'>+      else</div><div class='add'>+        # RFC2396, Section 5.2, 4)</div><div class='add'>+        base.set_path(rel.path) if rel.path</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # RFC2396, Section 5.2, 7)</div><div class='add'>+      base.set_userinfo(rel.userinfo) if rel.userinfo</div><div class='add'>+      base.set_host(rel.host)         if rel.host</div><div class='add'>+      base.set_port(rel.port)         if rel.port</div><div class='add'>+      base.query = rel.query       if rel.query</div><div class='add'>+      base.fragment=(rel.fragment) if rel.fragment</div><div class='add'>+</div><div class='add'>+      return base</div><div class='add'>+    end # merge</div><div class='add'>+    alias + merge</div><div class='add'>+</div><div class='add'>+    # :stopdoc:</div><div class='add'>+    def route_from_path(src, dst)</div><div class='add'>+      case dst</div><div class='add'>+      when src</div><div class='add'>+        # RFC2396, Section 4.2</div><div class='add'>+        return ''</div><div class='add'>+      when %r{(?:\A|/)\.\.?(?:/|\z)}</div><div class='add'>+        # dst has abnormal absolute path,</div><div class='add'>+        # like "/./", "/../", "/x/../", ...</div><div class='add'>+        return dst.dup</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      src_path = src.scan(%r{[^/]*/})</div><div class='add'>+      dst_path = dst.scan(%r{[^/]*/?})</div><div class='add'>+</div><div class='add'>+      # discard same parts</div><div class='add'>+      while !dst_path.empty? &amp;&amp; dst_path.first == src_path.first</div><div class='add'>+        src_path.shift</div><div class='add'>+        dst_path.shift</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      tmp = dst_path.join</div><div class='add'>+</div><div class='add'>+      # calculate</div><div class='add'>+      if src_path.empty?</div><div class='add'>+        if tmp.empty?</div><div class='add'>+          return './'</div><div class='add'>+        elsif dst_path.first.include?(':') # (see RFC2396 Section 5)</div><div class='add'>+          return './' + tmp</div><div class='add'>+        else</div><div class='add'>+          return tmp</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return '../' * src_path.size + tmp</div><div class='add'>+    end</div><div class='add'>+    private :route_from_path</div><div class='add'>+    # :startdoc:</div><div class='add'>+</div><div class='add'>+    # :stopdoc:</div><div class='add'>+    def route_from0(oth)</div><div class='add'>+      oth = parser.__send__(:convert_to_uri, oth)</div><div class='add'>+      if self.relative?</div><div class='add'>+        raise BadURIError,</div><div class='add'>+          "relative Bundler::URI: #{self}"</div><div class='add'>+      end</div><div class='add'>+      if oth.relative?</div><div class='add'>+        raise BadURIError,</div><div class='add'>+          "relative Bundler::URI: #{oth}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if self.scheme != oth.scheme</div><div class='add'>+        return self, self.dup</div><div class='add'>+      end</div><div class='add'>+      rel = Bundler::URI::Generic.new(nil, # it is relative Bundler::URI</div><div class='add'>+                             self.userinfo, self.host, self.port,</div><div class='add'>+                             nil, self.path, self.opaque,</div><div class='add'>+                             self.query, self.fragment, parser)</div><div class='add'>+</div><div class='add'>+      if rel.userinfo != oth.userinfo ||</div><div class='add'>+          rel.host.to_s.downcase != oth.host.to_s.downcase ||</div><div class='add'>+          rel.port != oth.port</div><div class='add'>+</div><div class='add'>+        if self.userinfo.nil? &amp;&amp; self.host.nil?</div><div class='add'>+          return self, self.dup</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        rel.set_port(nil) if rel.port == oth.default_port</div><div class='add'>+        return rel, rel</div><div class='add'>+      end</div><div class='add'>+      rel.set_userinfo(nil)</div><div class='add'>+      rel.set_host(nil)</div><div class='add'>+      rel.set_port(nil)</div><div class='add'>+</div><div class='add'>+      if rel.path &amp;&amp; rel.path == oth.path</div><div class='add'>+        rel.set_path('')</div><div class='add'>+        rel.query = nil if rel.query == oth.query</div><div class='add'>+        return rel, rel</div><div class='add'>+      elsif rel.opaque &amp;&amp; rel.opaque == oth.opaque</div><div class='add'>+        rel.set_opaque('')</div><div class='add'>+        rel.query = nil if rel.query == oth.query</div><div class='add'>+        return rel, rel</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # you can modify `rel', but can not `oth'.</div><div class='add'>+      return oth, rel</div><div class='add'>+    end</div><div class='add'>+    private :route_from0</div><div class='add'>+    # :startdoc:</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +oth+::</div><div class='add'>+    #    Bundler::URI or String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Calculates relative path from oth to self.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse('http://my.example.com/main.rbx?page=1')</div><div class='add'>+    #   uri.route_from('http://my.example.com')</div><div class='add'>+    #   #=&gt; #&lt;Bundler::URI::Generic /main.rbx?page=1&gt;</div><div class='add'>+    #</div><div class='add'>+    def route_from(oth)</div><div class='add'>+      # you can modify `rel', but can not `oth'.</div><div class='add'>+      begin</div><div class='add'>+        oth, rel = route_from0(oth)</div><div class='add'>+      rescue</div><div class='add'>+        raise $!.class, $!.message</div><div class='add'>+      end</div><div class='add'>+      if oth == rel</div><div class='add'>+        return rel</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      rel.set_path(route_from_path(oth.path, self.path))</div><div class='add'>+      if rel.path == './' &amp;&amp; self.query</div><div class='add'>+        # "./?foo" -&gt; "?foo"</div><div class='add'>+        rel.set_path('')</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return rel</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    alias - route_from</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +oth+::</div><div class='add'>+    #    Bundler::URI or String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Calculates relative path to oth from self.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse('http://my.example.com')</div><div class='add'>+    #   uri.route_to('http://my.example.com/main.rbx?page=1')</div><div class='add'>+    #   #=&gt; #&lt;Bundler::URI::Generic /main.rbx?page=1&gt;</div><div class='add'>+    #</div><div class='add'>+    def route_to(oth)</div><div class='add'>+      parser.__send__(:convert_to_uri, oth).route_from(self)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Returns normalized Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI("HTTP://my.EXAMPLE.com").normalize</div><div class='add'>+    #   #=&gt; #&lt;Bundler::URI::HTTP http://my.example.com/&gt;</div><div class='add'>+    #</div><div class='add'>+    # Normalization here means:</div><div class='add'>+    #</div><div class='add'>+    # * scheme and host are converted to lowercase,</div><div class='add'>+    # * an empty path component is set to "/".</div><div class='add'>+    #</div><div class='add'>+    def normalize</div><div class='add'>+      uri = dup</div><div class='add'>+      uri.normalize!</div><div class='add'>+      uri</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Destructive version of #normalize.</div><div class='add'>+    #</div><div class='add'>+    def normalize!</div><div class='add'>+      if path&amp;.empty?</div><div class='add'>+        set_path('/')</div><div class='add'>+      end</div><div class='add'>+      if scheme &amp;&amp; scheme != scheme.downcase</div><div class='add'>+        set_scheme(self.scheme.downcase)</div><div class='add'>+      end</div><div class='add'>+      if host &amp;&amp; host != host.downcase</div><div class='add'>+        set_host(self.host.downcase)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Constructs String from Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    def to_s</div><div class='add'>+      str = ''.dup</div><div class='add'>+      if @scheme</div><div class='add'>+        str &lt;&lt; @scheme</div><div class='add'>+        str &lt;&lt; ':'</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if @opaque</div><div class='add'>+        str &lt;&lt; @opaque</div><div class='add'>+      else</div><div class='add'>+        if @host || %w[file postgres].include?(@scheme)</div><div class='add'>+          str &lt;&lt; '//'</div><div class='add'>+        end</div><div class='add'>+        if self.userinfo</div><div class='add'>+          str &lt;&lt; self.userinfo</div><div class='add'>+          str &lt;&lt; '@'</div><div class='add'>+        end</div><div class='add'>+        if @host</div><div class='add'>+          str &lt;&lt; @host</div><div class='add'>+        end</div><div class='add'>+        if @port &amp;&amp; @port != self.default_port</div><div class='add'>+          str &lt;&lt; ':'</div><div class='add'>+          str &lt;&lt; @port.to_s</div><div class='add'>+        end</div><div class='add'>+        str &lt;&lt; @path</div><div class='add'>+        if @query</div><div class='add'>+          str &lt;&lt; '?'</div><div class='add'>+          str &lt;&lt; @query</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      if @fragment</div><div class='add'>+        str &lt;&lt; '#'</div><div class='add'>+        str &lt;&lt; @fragment</div><div class='add'>+      end</div><div class='add'>+      str</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Compares two URIs.</div><div class='add'>+    #</div><div class='add'>+    def ==(oth)</div><div class='add'>+      if self.class == oth.class</div><div class='add'>+        self.normalize.component_ary == oth.normalize.component_ary</div><div class='add'>+      else</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def hash</div><div class='add'>+      self.component_ary.hash</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def eql?(oth)</div><div class='add'>+      self.class == oth.class &amp;&amp;</div><div class='add'>+      parser == oth.parser &amp;&amp;</div><div class='add'>+      self.component_ary.eql?(oth.component_ary)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+=begin</div><div class='add'>+</div><div class='add'>+--- Bundler::URI::Generic#===(oth)</div><div class='add'>+</div><div class='add'>+=end</div><div class='add'>+#    def ===(oth)</div><div class='add'>+#      raise NotImplementedError</div><div class='add'>+#    end</div><div class='add'>+</div><div class='add'>+=begin</div><div class='add'>+=end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+    # Returns an Array of the components defined from the COMPONENT Array.</div><div class='add'>+    def component_ary</div><div class='add'>+      component.collect do |x|</div><div class='add'>+        self.__send__(x)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    protected :component_ary</div><div class='add'>+</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +components+::</div><div class='add'>+    #    Multiple Symbol arguments defined in Bundler::URI::HTTP.</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Selects specified components from Bundler::URI.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse('http://myuser:mypass@my.example.com/test.rbx')</div><div class='add'>+    #   uri.select(:userinfo, :host, :path)</div><div class='add'>+    #   # =&gt; ["myuser:mypass", "my.example.com", "/test.rbx"]</div><div class='add'>+    #</div><div class='add'>+    def select(*components)</div><div class='add'>+      components.collect do |c|</div><div class='add'>+        if component.include?(c)</div><div class='add'>+          self.__send__(c)</div><div class='add'>+        else</div><div class='add'>+          raise ArgumentError,</div><div class='add'>+            "expected of components of #{self.class} (#{self.class.component.join(', ')})"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def inspect</div><div class='add'>+      "#&lt;#{self.class} #{self}&gt;"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +v+::</div><div class='add'>+    #    Bundler::URI or String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Attempts to parse other Bundler::URI +oth+,</div><div class='add'>+    # returns [parsed_oth, self].</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("http://my.example.com")</div><div class='add'>+    #   uri.coerce("http://foo.com")</div><div class='add'>+    #   #=&gt; [#&lt;Bundler::URI::HTTP http://foo.com&gt;, #&lt;Bundler::URI::HTTP http://my.example.com&gt;]</div><div class='add'>+    #</div><div class='add'>+    def coerce(oth)</div><div class='add'>+      case oth</div><div class='add'>+      when String</div><div class='add'>+        oth = parser.parse(oth)</div><div class='add'>+      else</div><div class='add'>+        super</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return oth, self</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns a proxy Bundler::URI.</div><div class='add'>+    # The proxy Bundler::URI is obtained from environment variables such as http_proxy,</div><div class='add'>+    # ftp_proxy, no_proxy, etc.</div><div class='add'>+    # If there is no proper proxy, nil is returned.</div><div class='add'>+    #</div><div class='add'>+    # If the optional parameter +env+ is specified, it is used instead of ENV.</div><div class='add'>+    #</div><div class='add'>+    # Note that capitalized variables (HTTP_PROXY, FTP_PROXY, NO_PROXY, etc.)</div><div class='add'>+    # are examined, too.</div><div class='add'>+    #</div><div class='add'>+    # But http_proxy and HTTP_PROXY is treated specially under CGI environment.</div><div class='add'>+    # It's because HTTP_PROXY may be set by Proxy: header.</div><div class='add'>+    # So HTTP_PROXY is not used.</div><div class='add'>+    # http_proxy is not used too if the variable is case insensitive.</div><div class='add'>+    # CGI_HTTP_PROXY can be used instead.</div><div class='add'>+    def find_proxy(env=ENV)</div><div class='add'>+      raise BadURIError, "relative Bundler::URI: #{self}" if self.relative?</div><div class='add'>+      name = self.scheme.downcase + '_proxy'</div><div class='add'>+      proxy_uri = nil</div><div class='add'>+      if name == 'http_proxy' &amp;&amp; env.include?('REQUEST_METHOD') # CGI?</div><div class='add'>+        # HTTP_PROXY conflicts with *_proxy for proxy settings and</div><div class='add'>+        # HTTP_* for header information in CGI.</div><div class='add'>+        # So it should be careful to use it.</div><div class='add'>+        pairs = env.reject {|k, v| /\Ahttp_proxy\z/i !~ k }</div><div class='add'>+        case pairs.length</div><div class='add'>+        when 0 # no proxy setting anyway.</div><div class='add'>+          proxy_uri = nil</div><div class='add'>+        when 1</div><div class='add'>+          k, _ = pairs.shift</div><div class='add'>+          if k == 'http_proxy' &amp;&amp; env[k.upcase] == nil</div><div class='add'>+            # http_proxy is safe to use because ENV is case sensitive.</div><div class='add'>+            proxy_uri = env[name]</div><div class='add'>+          else</div><div class='add'>+            proxy_uri = nil</div><div class='add'>+          end</div><div class='add'>+        else # http_proxy is safe to use because ENV is case sensitive.</div><div class='add'>+          proxy_uri = env.to_hash[name]</div><div class='add'>+        end</div><div class='add'>+        if !proxy_uri</div><div class='add'>+          # Use CGI_HTTP_PROXY.  cf. libwww-perl.</div><div class='add'>+          proxy_uri = env["CGI_#{name.upcase}"]</div><div class='add'>+        end</div><div class='add'>+      elsif name == 'http_proxy'</div><div class='add'>+        if RUBY_ENGINE == 'jruby' &amp;&amp; p_addr = ENV_JAVA['http.proxyHost']</div><div class='add'>+          p_port = ENV_JAVA['http.proxyPort']</div><div class='add'>+          if p_user = ENV_JAVA['http.proxyUser']</div><div class='add'>+            p_pass = ENV_JAVA['http.proxyPass']</div><div class='add'>+            proxy_uri = "http://#{p_user}:#{p_pass}@#{p_addr}:#{p_port}"</div><div class='add'>+          else</div><div class='add'>+            proxy_uri = "http://#{p_addr}:#{p_port}"</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          unless proxy_uri = env[name]</div><div class='add'>+            if proxy_uri = env[name.upcase]</div><div class='add'>+              warn 'The environment variable HTTP_PROXY is discouraged.  Use http_proxy.', uplevel: 1</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        proxy_uri = env[name] || env[name.upcase]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if proxy_uri.nil? || proxy_uri.empty?</div><div class='add'>+        return nil</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if self.hostname</div><div class='add'>+        begin</div><div class='add'>+          addr = IPSocket.getaddress(self.hostname)</div><div class='add'>+          return nil if /\A127\.|\A::1\z/ =~ addr</div><div class='add'>+        rescue SocketError</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      name = 'no_proxy'</div><div class='add'>+      if no_proxy = env[name] || env[name.upcase]</div><div class='add'>+        return nil unless Bundler::URI::Generic.use_proxy?(self.hostname, addr, self.port, no_proxy)</div><div class='add'>+      end</div><div class='add'>+      Bundler::URI.parse(proxy_uri)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.use_proxy?(hostname, addr, port, no_proxy) # :nodoc:</div><div class='add'>+      hostname = hostname.downcase</div><div class='add'>+      dothostname = ".#{hostname}"</div><div class='add'>+      no_proxy.scan(/([^:,\s]+)(?::(\d+))?/) {|p_host, p_port|</div><div class='add'>+        if !p_port || port == p_port.to_i</div><div class='add'>+          if p_host.start_with?('.')</div><div class='add'>+            return false if hostname.end_with?(p_host.downcase)</div><div class='add'>+          else</div><div class='add'>+            return false if dothostname.end_with?(".#{p_host.downcase}")</div><div class='add'>+          end</div><div class='add'>+          if addr</div><div class='add'>+            begin</div><div class='add'>+              return false if IPAddr.new(p_host).include?(addr)</div><div class='add'>+            rescue IPAddr::InvalidAddressError</div><div class='add'>+              next</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      }</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/http.rb b/lib/bundler/vendor/uri/lib/uri/http.rb<br/>new file mode 100644<br/>index 0000000000..2c44810644<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/http.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/http.rb</a></div><div class='hunk'>@@ -0,0 +1,125 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+# = uri/http.rb</div><div class='add'>+#</div><div class='add'>+# Author:: Akira Yamada &lt;akira@ruby-lang.org&gt;</div><div class='add'>+# License:: You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+# See Bundler::URI for general documentation</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require_relative 'generic'</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # The syntax of HTTP URIs is defined in RFC1738 section 3.3.</div><div class='add'>+  #</div><div class='add'>+  # Note that the Ruby Bundler::URI library allows HTTP URLs containing usernames and</div><div class='add'>+  # passwords. This is not legal as per the RFC, but used to be</div><div class='add'>+  # supported in Internet Explorer 5 and 6, before the MS04-004 security</div><div class='add'>+  # update. See &lt;URL:http://support.microsoft.com/kb/834489&gt;.</div><div class='add'>+  #</div><div class='add'>+  class HTTP &lt; Generic</div><div class='add'>+    # A Default port of 80 for Bundler::URI::HTTP.</div><div class='add'>+    DEFAULT_PORT = 80</div><div class='add'>+</div><div class='add'>+    # An Array of the available components for Bundler::URI::HTTP.</div><div class='add'>+    COMPONENT = %i[</div><div class='add'>+      scheme</div><div class='add'>+      userinfo host port</div><div class='add'>+      path</div><div class='add'>+      query</div><div class='add'>+      fragment</div><div class='add'>+    ].freeze</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Creates a new Bundler::URI::HTTP object from components, with syntax checking.</div><div class='add'>+    #</div><div class='add'>+    # The components accepted are userinfo, host, port, path, query, and</div><div class='add'>+    # fragment.</div><div class='add'>+    #</div><div class='add'>+    # The components should be provided either as an Array, or as a Hash</div><div class='add'>+    # with keys formed by preceding the component names with a colon.</div><div class='add'>+    #</div><div class='add'>+    # If an Array is used, the components must be passed in the</div><div class='add'>+    # order &lt;code&gt;[userinfo, host, port, path, query, fragment]&lt;/code&gt;.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #</div><div class='add'>+    #     uri = Bundler::URI::HTTP.build(host: 'www.example.com', path: '/foo/bar')</div><div class='add'>+    #</div><div class='add'>+    #     uri = Bundler::URI::HTTP.build([nil, "www.example.com", nil, "/path",</div><div class='add'>+    #       "query", 'fragment'])</div><div class='add'>+    #</div><div class='add'>+    # Currently, if passed userinfo components this method generates</div><div class='add'>+    # invalid HTTP URIs as per RFC 1738.</div><div class='add'>+    #</div><div class='add'>+    def self.build(args)</div><div class='add'>+      tmp = Util.make_components_hash(self, args)</div><div class='add'>+      super(tmp)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Returns the full path for an HTTP request, as required by Net::HTTP::Get.</div><div class='add'>+    #</div><div class='add'>+    # If the Bundler::URI contains a query, the full path is Bundler::URI#path + '?' + Bundler::URI#query.</div><div class='add'>+    # Otherwise, the path is simply Bundler::URI#path.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #</div><div class='add'>+    #     uri = Bundler::URI::HTTP.build(path: '/foo/bar', query: 'test=true')</div><div class='add'>+    #     uri.request_uri #  =&gt; "/foo/bar?test=true"</div><div class='add'>+    #</div><div class='add'>+    def request_uri</div><div class='add'>+      return unless @path</div><div class='add'>+</div><div class='add'>+      url = @query ? "#@path?#@query" : @path.dup</div><div class='add'>+      url.start_with?(?/.freeze) ? url : ?/ + url</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Returns the authority for an HTTP uri, as defined in</div><div class='add'>+    # https://datatracker.ietf.org/doc/html/rfc3986/#section-3.2.</div><div class='add'>+    #</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #</div><div class='add'>+    #     Bundler::URI::HTTP.build(host: 'www.example.com', path: '/foo/bar').authority #=&gt; "www.example.com"</div><div class='add'>+    #     Bundler::URI::HTTP.build(host: 'www.example.com', port: 8000, path: '/foo/bar').authority #=&gt; "www.example.com:8000"</div><div class='add'>+    #     Bundler::URI::HTTP.build(host: 'www.example.com', port: 80, path: '/foo/bar').authority #=&gt; "www.example.com"</div><div class='add'>+    #</div><div class='add'>+    def authority</div><div class='add'>+      if port == default_port</div><div class='add'>+        host</div><div class='add'>+      else</div><div class='add'>+        "#{host}:#{port}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Returns the origin for an HTTP uri, as defined in</div><div class='add'>+    # https://datatracker.ietf.org/doc/html/rfc6454.</div><div class='add'>+    #</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #</div><div class='add'>+    #     Bundler::URI::HTTP.build(host: 'www.example.com', path: '/foo/bar').origin #=&gt; "http://www.example.com"</div><div class='add'>+    #     Bundler::URI::HTTP.build(host: 'www.example.com', port: 8000, path: '/foo/bar').origin #=&gt; "http://www.example.com:8000"</div><div class='add'>+    #     Bundler::URI::HTTP.build(host: 'www.example.com', port: 80, path: '/foo/bar').origin #=&gt; "http://www.example.com"</div><div class='add'>+    #     Bundler::URI::HTTPS.build(host: 'www.example.com', path: '/foo/bar').origin #=&gt; "https://www.example.com"</div><div class='add'>+    #</div><div class='add'>+    def origin</div><div class='add'>+      "#{scheme}://#{authority}"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  register_scheme 'HTTP', HTTP</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/https.rb b/lib/bundler/vendor/uri/lib/uri/https.rb<br/>new file mode 100644<br/>index 0000000000..e4556e3ecb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/https.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/https.rb</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+# = uri/https.rb</div><div class='add'>+#</div><div class='add'>+# Author:: Akira Yamada &lt;akira@ruby-lang.org&gt;</div><div class='add'>+# License:: You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+# See Bundler::URI for general documentation</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require_relative 'http'</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+</div><div class='add'>+  # The default port for HTTPS URIs is 443, and the scheme is 'https:' rather</div><div class='add'>+  # than 'http:'. Other than that, HTTPS URIs are identical to HTTP URIs;</div><div class='add'>+  # see Bundler::URI::HTTP.</div><div class='add'>+  class HTTPS &lt; HTTP</div><div class='add'>+    # A Default port of 443 for Bundler::URI::HTTPS</div><div class='add'>+    DEFAULT_PORT = 443</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  register_scheme 'HTTPS', HTTPS</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/ldap.rb b/lib/bundler/vendor/uri/lib/uri/ldap.rb<br/>new file mode 100644<br/>index 0000000000..9811b6e2f5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/ldap.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/ldap.rb</a></div><div class='hunk'>@@ -0,0 +1,261 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+# = uri/ldap.rb</div><div class='add'>+#</div><div class='add'>+# Author::</div><div class='add'>+#  Takaaki Tateishi &lt;ttate@jaist.ac.jp&gt;</div><div class='add'>+#  Akira Yamada &lt;akira@ruby-lang.org&gt;</div><div class='add'>+# License::</div><div class='add'>+#   Bundler::URI::LDAP is copyrighted free software by Takaaki Tateishi and Akira Yamada.</div><div class='add'>+#   You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+# See Bundler::URI for general documentation</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require_relative 'generic'</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # LDAP Bundler::URI SCHEMA (described in RFC2255).</div><div class='add'>+  #--</div><div class='add'>+  # ldap://&lt;host&gt;/&lt;dn&gt;[?&lt;attrs&gt;[?&lt;scope&gt;[?&lt;filter&gt;[?&lt;extensions&gt;]]]]</div><div class='add'>+  #++</div><div class='add'>+  class LDAP &lt; Generic</div><div class='add'>+</div><div class='add'>+    # A Default port of 389 for Bundler::URI::LDAP.</div><div class='add'>+    DEFAULT_PORT = 389</div><div class='add'>+</div><div class='add'>+    # An Array of the available components for Bundler::URI::LDAP.</div><div class='add'>+    COMPONENT = [</div><div class='add'>+      :scheme,</div><div class='add'>+      :host, :port,</div><div class='add'>+      :dn,</div><div class='add'>+      :attributes,</div><div class='add'>+      :scope,</div><div class='add'>+      :filter,</div><div class='add'>+      :extensions,</div><div class='add'>+    ].freeze</div><div class='add'>+</div><div class='add'>+    # Scopes available for the starting point.</div><div class='add'>+    #</div><div class='add'>+    # * SCOPE_BASE - the Base DN</div><div class='add'>+    # * SCOPE_ONE  - one level under the Base DN, not including the base DN and</div><div class='add'>+    #   not including any entries under this</div><div class='add'>+    # * SCOPE_SUB  - subtrees, all entries at all levels</div><div class='add'>+    #</div><div class='add'>+    SCOPE = [</div><div class='add'>+      SCOPE_ONE = 'one',</div><div class='add'>+      SCOPE_SUB = 'sub',</div><div class='add'>+      SCOPE_BASE = 'base',</div><div class='add'>+    ].freeze</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Creates a new Bundler::URI::LDAP object from components, with syntax checking.</div><div class='add'>+    #</div><div class='add'>+    # The components accepted are host, port, dn, attributes,</div><div class='add'>+    # scope, filter, and extensions.</div><div class='add'>+    #</div><div class='add'>+    # The components should be provided either as an Array, or as a Hash</div><div class='add'>+    # with keys formed by preceding the component names with a colon.</div><div class='add'>+    #</div><div class='add'>+    # If an Array is used, the components must be passed in the</div><div class='add'>+    # order &lt;code&gt;[host, port, dn, attributes, scope, filter, extensions]&lt;/code&gt;.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #</div><div class='add'>+    #     uri = Bundler::URI::LDAP.build({:host =&gt; 'ldap.example.com',</div><div class='add'>+    #       :dn =&gt; '/dc=example'})</div><div class='add'>+    #</div><div class='add'>+    #     uri = Bundler::URI::LDAP.build(["ldap.example.com", nil,</div><div class='add'>+    #       "/dc=example;dc=com", "query", nil, nil, nil])</div><div class='add'>+    #</div><div class='add'>+    def self.build(args)</div><div class='add'>+      tmp = Util::make_components_hash(self, args)</div><div class='add'>+</div><div class='add'>+      if tmp[:dn]</div><div class='add'>+        tmp[:path] = tmp[:dn]</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      query = []</div><div class='add'>+      [:extensions, :filter, :scope, :attributes].collect do |x|</div><div class='add'>+        next if !tmp[x] &amp;&amp; query.size == 0</div><div class='add'>+        query.unshift(tmp[x])</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      tmp[:query] = query.join('?')</div><div class='add'>+</div><div class='add'>+      return super(tmp)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Creates a new Bundler::URI::LDAP object from generic Bundler::URI components as per</div><div class='add'>+    # RFC 2396. No LDAP-specific syntax checking is performed.</div><div class='add'>+    #</div><div class='add'>+    # Arguments are +scheme+, +userinfo+, +host+, +port+, +registry+, +path+,</div><div class='add'>+    # +opaque+, +query+, and +fragment+, in that order.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #</div><div class='add'>+    #     uri = Bundler::URI::LDAP.new("ldap", nil, "ldap.example.com", nil, nil,</div><div class='add'>+    #       "/dc=example;dc=com", nil, "query", nil)</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Generic.new.</div><div class='add'>+    #</div><div class='add'>+    def initialize(*arg)</div><div class='add'>+      super(*arg)</div><div class='add'>+</div><div class='add'>+      if @fragment</div><div class='add'>+        raise InvalidURIError, 'bad LDAP URL'</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      parse_dn</div><div class='add'>+      parse_query</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Private method to cleanup +dn+ from using the +path+ component attribute.</div><div class='add'>+    def parse_dn</div><div class='add'>+      raise InvalidURIError, 'bad LDAP URL' unless @path</div><div class='add'>+      @dn = @path[1..-1]</div><div class='add'>+    end</div><div class='add'>+    private :parse_dn</div><div class='add'>+</div><div class='add'>+    # Private method to cleanup +attributes+, +scope+, +filter+, and +extensions+</div><div class='add'>+    # from using the +query+ component attribute.</div><div class='add'>+    def parse_query</div><div class='add'>+      @attributes = nil</div><div class='add'>+      @scope      = nil</div><div class='add'>+      @filter     = nil</div><div class='add'>+      @extensions = nil</div><div class='add'>+</div><div class='add'>+      if @query</div><div class='add'>+        attrs, scope, filter, extensions = @query.split('?')</div><div class='add'>+</div><div class='add'>+        @attributes = attrs if attrs &amp;&amp; attrs.size &gt; 0</div><div class='add'>+        @scope      = scope if scope &amp;&amp; scope.size &gt; 0</div><div class='add'>+        @filter     = filter if filter &amp;&amp; filter.size &gt; 0</div><div class='add'>+        @extensions = extensions if extensions &amp;&amp; extensions.size &gt; 0</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    private :parse_query</div><div class='add'>+</div><div class='add'>+    # Private method to assemble +query+ from +attributes+, +scope+, +filter+, and +extensions+.</div><div class='add'>+    def build_path_query</div><div class='add'>+      @path = '/' + @dn</div><div class='add'>+</div><div class='add'>+      query = []</div><div class='add'>+      [@extensions, @filter, @scope, @attributes].each do |x|</div><div class='add'>+        next if !x &amp;&amp; query.size == 0</div><div class='add'>+        query.unshift(x)</div><div class='add'>+      end</div><div class='add'>+      @query = query.join('?')</div><div class='add'>+    end</div><div class='add'>+    private :build_path_query</div><div class='add'>+</div><div class='add'>+    # Returns dn.</div><div class='add'>+    def dn</div><div class='add'>+      @dn</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Private setter for dn +val+.</div><div class='add'>+    def set_dn(val)</div><div class='add'>+      @dn = val</div><div class='add'>+      build_path_query</div><div class='add'>+      @dn</div><div class='add'>+    end</div><div class='add'>+    protected :set_dn</div><div class='add'>+</div><div class='add'>+    # Setter for dn +val+.</div><div class='add'>+    def dn=(val)</div><div class='add'>+      set_dn(val)</div><div class='add'>+      val</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns attributes.</div><div class='add'>+    def attributes</div><div class='add'>+      @attributes</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Private setter for attributes +val+.</div><div class='add'>+    def set_attributes(val)</div><div class='add'>+      @attributes = val</div><div class='add'>+      build_path_query</div><div class='add'>+      @attributes</div><div class='add'>+    end</div><div class='add'>+    protected :set_attributes</div><div class='add'>+</div><div class='add'>+    # Setter for attributes +val+.</div><div class='add'>+    def attributes=(val)</div><div class='add'>+      set_attributes(val)</div><div class='add'>+      val</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns scope.</div><div class='add'>+    def scope</div><div class='add'>+      @scope</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Private setter for scope +val+.</div><div class='add'>+    def set_scope(val)</div><div class='add'>+      @scope = val</div><div class='add'>+      build_path_query</div><div class='add'>+      @scope</div><div class='add'>+    end</div><div class='add'>+    protected :set_scope</div><div class='add'>+</div><div class='add'>+    # Setter for scope +val+.</div><div class='add'>+    def scope=(val)</div><div class='add'>+      set_scope(val)</div><div class='add'>+      val</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns filter.</div><div class='add'>+    def filter</div><div class='add'>+      @filter</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Private setter for filter +val+.</div><div class='add'>+    def set_filter(val)</div><div class='add'>+      @filter = val</div><div class='add'>+      build_path_query</div><div class='add'>+      @filter</div><div class='add'>+    end</div><div class='add'>+    protected :set_filter</div><div class='add'>+</div><div class='add'>+    # Setter for filter +val+.</div><div class='add'>+    def filter=(val)</div><div class='add'>+      set_filter(val)</div><div class='add'>+      val</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns extensions.</div><div class='add'>+    def extensions</div><div class='add'>+      @extensions</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Private setter for extensions +val+.</div><div class='add'>+    def set_extensions(val)</div><div class='add'>+      @extensions = val</div><div class='add'>+      build_path_query</div><div class='add'>+      @extensions</div><div class='add'>+    end</div><div class='add'>+    protected :set_extensions</div><div class='add'>+</div><div class='add'>+    # Setter for extensions +val+.</div><div class='add'>+    def extensions=(val)</div><div class='add'>+      set_extensions(val)</div><div class='add'>+      val</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Checks if Bundler::URI has a path.</div><div class='add'>+    # For Bundler::URI::LDAP this will return +false+.</div><div class='add'>+    def hierarchical?</div><div class='add'>+      false</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  register_scheme 'LDAP', LDAP</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/ldaps.rb b/lib/bundler/vendor/uri/lib/uri/ldaps.rb<br/>new file mode 100644<br/>index 0000000000..c786168450<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/ldaps.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/ldaps.rb</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+# = uri/ldap.rb</div><div class='add'>+#</div><div class='add'>+# License:: You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+# See Bundler::URI for general documentation</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require_relative 'ldap'</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+</div><div class='add'>+  # The default port for LDAPS URIs is 636, and the scheme is 'ldaps:' rather</div><div class='add'>+  # than 'ldap:'. Other than that, LDAPS URIs are identical to LDAP URIs;</div><div class='add'>+  # see Bundler::URI::LDAP.</div><div class='add'>+  class LDAPS &lt; LDAP</div><div class='add'>+    # A Default port of 636 for Bundler::URI::LDAPS</div><div class='add'>+    DEFAULT_PORT = 636</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  register_scheme 'LDAPS', LDAPS</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/mailto.rb b/lib/bundler/vendor/uri/lib/uri/mailto.rb<br/>new file mode 100644<br/>index 0000000000..ff2e30be86<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/mailto.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/mailto.rb</a></div><div class='hunk'>@@ -0,0 +1,293 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+# = uri/mailto.rb</div><div class='add'>+#</div><div class='add'>+# Author:: Akira Yamada &lt;akira@ruby-lang.org&gt;</div><div class='add'>+# License:: You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+# See Bundler::URI for general documentation</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require_relative 'generic'</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # RFC6068, the mailto URL scheme.</div><div class='add'>+  #</div><div class='add'>+  class MailTo &lt; Generic</div><div class='add'>+    include RFC2396_REGEXP</div><div class='add'>+</div><div class='add'>+    # A Default port of nil for Bundler::URI::MailTo.</div><div class='add'>+    DEFAULT_PORT = nil</div><div class='add'>+</div><div class='add'>+    # An Array of the available components for Bundler::URI::MailTo.</div><div class='add'>+    COMPONENT = [ :scheme, :to, :headers ].freeze</div><div class='add'>+</div><div class='add'>+    # :stopdoc:</div><div class='add'>+    #  "hname" and "hvalue" are encodings of an RFC 822 header name and</div><div class='add'>+    #  value, respectively. As with "to", all URL reserved characters must</div><div class='add'>+    #  be encoded.</div><div class='add'>+    #</div><div class='add'>+    #  "#mailbox" is as specified in RFC 822 [RFC822]. This means that it</div><div class='add'>+    #  consists of zero or more comma-separated mail addresses, possibly</div><div class='add'>+    #  including "phrase" and "comment" components. Note that all URL</div><div class='add'>+    #  reserved characters in "to" must be encoded: in particular,</div><div class='add'>+    #  parentheses, commas, and the percent sign ("%"), which commonly occur</div><div class='add'>+    #  in the "mailbox" syntax.</div><div class='add'>+    #</div><div class='add'>+    #  Within mailto URLs, the characters "?", "=", "&amp;" are reserved.</div><div class='add'>+</div><div class='add'>+    # ; RFC 6068</div><div class='add'>+    # hfields      = "?" hfield *( "&amp;" hfield )</div><div class='add'>+    # hfield       = hfname "=" hfvalue</div><div class='add'>+    # hfname       = *qchar</div><div class='add'>+    # hfvalue      = *qchar</div><div class='add'>+    # qchar        = unreserved / pct-encoded / some-delims</div><div class='add'>+    # some-delims  = "!" / "$" / "'" / "(" / ")" / "*"</div><div class='add'>+    #              / "+" / "," / ";" / ":" / "@"</div><div class='add'>+    #</div><div class='add'>+    # ; RFC3986</div><div class='add'>+    # unreserved   = ALPHA / DIGIT / "-" / "." / "_" / "~"</div><div class='add'>+    # pct-encoded  = "%" HEXDIG HEXDIG</div><div class='add'>+    HEADER_REGEXP  = /\A(?&lt;hfield&gt;(?:%\h\h|[!$'-.0-;@-Z_a-z~])*=(?:%\h\h|[!$'-.0-;@-Z_a-z~])*)(?:&amp;\g&lt;hfield&gt;)*\z/</div><div class='add'>+    # practical regexp for email address</div><div class='add'>+    # https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address</div><div class='add'>+    EMAIL_REGEXP = /\A[a-zA-Z0-9.!\#$%&amp;'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\z/</div><div class='add'>+    # :startdoc:</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Creates a new Bundler::URI::MailTo object from components, with syntax checking.</div><div class='add'>+    #</div><div class='add'>+    # Components can be provided as an Array or Hash. If an Array is used,</div><div class='add'>+    # the components must be supplied as &lt;code&gt;[to, headers]&lt;/code&gt;.</div><div class='add'>+    #</div><div class='add'>+    # If a Hash is used, the keys are the component names preceded by colons.</div><div class='add'>+    #</div><div class='add'>+    # The headers can be supplied as a pre-encoded string, such as</div><div class='add'>+    # &lt;code&gt;"subject=subscribe&amp;cc=address"&lt;/code&gt;, or as an Array of Arrays</div><div class='add'>+    # like &lt;code&gt;[['subject', 'subscribe'], ['cc', 'address']]&lt;/code&gt;.</div><div class='add'>+    #</div><div class='add'>+    # Examples:</div><div class='add'>+    #</div><div class='add'>+    #    require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #    m1 = Bundler::URI::MailTo.build(['joe@example.com', 'subject=Ruby'])</div><div class='add'>+    #    m1.to_s  # =&gt; "mailto:joe@example.com?subject=Ruby"</div><div class='add'>+    #</div><div class='add'>+    #    m2 = Bundler::URI::MailTo.build(['john@example.com', [['Subject', 'Ruby'], ['Cc', 'jack@example.com']]])</div><div class='add'>+    #    m2.to_s  # =&gt; "mailto:john@example.com?Subject=Ruby&amp;Cc=jack@example.com"</div><div class='add'>+    #</div><div class='add'>+    #    m3 = Bundler::URI::MailTo.build({:to =&gt; 'listman@example.com', :headers =&gt; [['subject', 'subscribe']]})</div><div class='add'>+    #    m3.to_s  # =&gt; "mailto:listman@example.com?subject=subscribe"</div><div class='add'>+    #</div><div class='add'>+    def self.build(args)</div><div class='add'>+      tmp = Util.make_components_hash(self, args)</div><div class='add'>+</div><div class='add'>+      case tmp[:to]</div><div class='add'>+      when Array</div><div class='add'>+        tmp[:opaque] = tmp[:to].join(',')</div><div class='add'>+      when String</div><div class='add'>+        tmp[:opaque] = tmp[:to].dup</div><div class='add'>+      else</div><div class='add'>+        tmp[:opaque] = ''</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if tmp[:headers]</div><div class='add'>+        query =</div><div class='add'>+          case tmp[:headers]</div><div class='add'>+          when Array</div><div class='add'>+            tmp[:headers].collect { |x|</div><div class='add'>+              if x.kind_of?(Array)</div><div class='add'>+                x[0] + '=' + x[1..-1].join</div><div class='add'>+              else</div><div class='add'>+                x.to_s</div><div class='add'>+              end</div><div class='add'>+            }.join('&amp;')</div><div class='add'>+          when Hash</div><div class='add'>+            tmp[:headers].collect { |h,v|</div><div class='add'>+              h + '=' + v</div><div class='add'>+            }.join('&amp;')</div><div class='add'>+          else</div><div class='add'>+            tmp[:headers].to_s</div><div class='add'>+          end</div><div class='add'>+        unless query.empty?</div><div class='add'>+          tmp[:opaque] &lt;&lt; '?' &lt;&lt; query</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      super(tmp)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Creates a new Bundler::URI::MailTo object from generic URL components with</div><div class='add'>+    # no syntax checking.</div><div class='add'>+    #</div><div class='add'>+    # This method is usually called from Bundler::URI::parse, which checks</div><div class='add'>+    # the validity of each component.</div><div class='add'>+    #</div><div class='add'>+    def initialize(*arg)</div><div class='add'>+      super(*arg)</div><div class='add'>+</div><div class='add'>+      @to = nil</div><div class='add'>+      @headers = []</div><div class='add'>+</div><div class='add'>+      # The RFC3986 parser does not normally populate opaque</div><div class='add'>+      @opaque = "?#{@query}" if @query &amp;&amp; !@opaque</div><div class='add'>+</div><div class='add'>+      unless @opaque</div><div class='add'>+        raise InvalidComponentError,</div><div class='add'>+          "missing opaque part for mailto URL"</div><div class='add'>+      end</div><div class='add'>+      to, header = @opaque.split('?', 2)</div><div class='add'>+      # allow semicolon as a addr-spec separator</div><div class='add'>+      # http://support.microsoft.com/kb/820868</div><div class='add'>+      unless /\A(?:[^@,;]+@[^@,;]+(?:\z|[,;]))*\z/ =~ to</div><div class='add'>+        raise InvalidComponentError,</div><div class='add'>+          "unrecognised opaque part for mailtoURL: #{@opaque}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if arg[10] # arg_check</div><div class='add'>+        self.to = to</div><div class='add'>+        self.headers = header</div><div class='add'>+      else</div><div class='add'>+        set_to(to)</div><div class='add'>+        set_headers(header)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # The primary e-mail address of the URL, as a String.</div><div class='add'>+    attr_reader :to</div><div class='add'>+</div><div class='add'>+    # E-mail headers set by the URL, as an Array of Arrays.</div><div class='add'>+    attr_reader :headers</div><div class='add'>+</div><div class='add'>+    # Checks the to +v+ component.</div><div class='add'>+    def check_to(v)</div><div class='add'>+      return true unless v</div><div class='add'>+      return true if v.size == 0</div><div class='add'>+</div><div class='add'>+      v.split(/[,;]/).each do |addr|</div><div class='add'>+        # check url safety as path-rootless</div><div class='add'>+        if /\A(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~])*\z/ !~ addr</div><div class='add'>+          raise InvalidComponentError,</div><div class='add'>+            "an address in 'to' is invalid as Bundler::URI #{addr.dump}"</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        # check addr-spec</div><div class='add'>+        # don't s/\+/ /g</div><div class='add'>+        addr.gsub!(/%\h\h/, Bundler::URI::TBLDECWWWCOMP_)</div><div class='add'>+        if EMAIL_REGEXP !~ addr</div><div class='add'>+          raise InvalidComponentError,</div><div class='add'>+            "an address in 'to' is invalid as uri-escaped addr-spec #{addr.dump}"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+    private :check_to</div><div class='add'>+</div><div class='add'>+    # Private setter for to +v+.</div><div class='add'>+    def set_to(v)</div><div class='add'>+      @to = v</div><div class='add'>+    end</div><div class='add'>+    protected :set_to</div><div class='add'>+</div><div class='add'>+    # Setter for to +v+.</div><div class='add'>+    def to=(v)</div><div class='add'>+      check_to(v)</div><div class='add'>+      set_to(v)</div><div class='add'>+      v</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Checks the headers +v+ component against either</div><div class='add'>+    # * HEADER_REGEXP</div><div class='add'>+    def check_headers(v)</div><div class='add'>+      return true unless v</div><div class='add'>+      return true if v.size == 0</div><div class='add'>+      if HEADER_REGEXP !~ v</div><div class='add'>+        raise InvalidComponentError,</div><div class='add'>+          "bad component(expected opaque component): #{v}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+    private :check_headers</div><div class='add'>+</div><div class='add'>+    # Private setter for headers +v+.</div><div class='add'>+    def set_headers(v)</div><div class='add'>+      @headers = []</div><div class='add'>+      if v</div><div class='add'>+        v.split('&amp;').each do |x|</div><div class='add'>+          @headers &lt;&lt; x.split(/=/, 2)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    protected :set_headers</div><div class='add'>+</div><div class='add'>+    # Setter for headers +v+.</div><div class='add'>+    def headers=(v)</div><div class='add'>+      check_headers(v)</div><div class='add'>+      set_headers(v)</div><div class='add'>+      v</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Constructs String from Bundler::URI.</div><div class='add'>+    def to_s</div><div class='add'>+      @scheme + ':' +</div><div class='add'>+        if @to</div><div class='add'>+          @to</div><div class='add'>+        else</div><div class='add'>+          ''</div><div class='add'>+        end +</div><div class='add'>+        if @headers.size &gt; 0</div><div class='add'>+          '?' + @headers.collect{|x| x.join('=')}.join('&amp;')</div><div class='add'>+        else</div><div class='add'>+          ''</div><div class='add'>+        end +</div><div class='add'>+        if @fragment</div><div class='add'>+          '#' + @fragment</div><div class='add'>+        else</div><div class='add'>+          ''</div><div class='add'>+        end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns the RFC822 e-mail text equivalent of the URL, as a String.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #</div><div class='add'>+    #   require 'bundler/vendor/uri/lib/uri'</div><div class='add'>+    #</div><div class='add'>+    #   uri = Bundler::URI.parse("mailto:ruby-list@ruby-lang.org?Subject=subscribe&amp;cc=myaddr")</div><div class='add'>+    #   uri.to_mailtext</div><div class='add'>+    #   # =&gt; "To: ruby-list@ruby-lang.org\nSubject: subscribe\nCc: myaddr\n\n\n"</div><div class='add'>+    #</div><div class='add'>+    def to_mailtext</div><div class='add'>+      to = Bundler::URI.decode_www_form_component(@to)</div><div class='add'>+      head = ''</div><div class='add'>+      body = ''</div><div class='add'>+      @headers.each do |x|</div><div class='add'>+        case x[0]</div><div class='add'>+        when 'body'</div><div class='add'>+          body = Bundler::URI.decode_www_form_component(x[1])</div><div class='add'>+        when 'to'</div><div class='add'>+          to &lt;&lt; ', ' + Bundler::URI.decode_www_form_component(x[1])</div><div class='add'>+        else</div><div class='add'>+          head &lt;&lt; Bundler::URI.decode_www_form_component(x[0]).capitalize + ': ' +</div><div class='add'>+            Bundler::URI.decode_www_form_component(x[1])  + "\n"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      "To: #{to}</div><div class='add'>+#{head}</div><div class='add'>+#{body}</div><div class='add'>+"</div><div class='add'>+    end</div><div class='add'>+    alias to_rfc822text to_mailtext</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  register_scheme 'MAILTO', MailTo</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb b/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb<br/>new file mode 100644<br/>index 0000000000..09c22c9906<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb</a></div><div class='hunk'>@@ -0,0 +1,539 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+#--</div><div class='add'>+# = uri/common.rb</div><div class='add'>+#</div><div class='add'>+# Author:: Akira Yamada &lt;akira@ruby-lang.org&gt;</div><div class='add'>+# License::</div><div class='add'>+#   You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+# See Bundler::URI for general documentation</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+  #</div><div class='add'>+  # Includes Bundler::URI::REGEXP::PATTERN</div><div class='add'>+  #</div><div class='add'>+  module RFC2396_REGEXP</div><div class='add'>+    #</div><div class='add'>+    # Patterns used to parse Bundler::URI's</div><div class='add'>+    #</div><div class='add'>+    module PATTERN</div><div class='add'>+      # :stopdoc:</div><div class='add'>+</div><div class='add'>+      # RFC 2396 (Bundler::URI Generic Syntax)</div><div class='add'>+      # RFC 2732 (IPv6 Literal Addresses in URL's)</div><div class='add'>+      # RFC 2373 (IPv6 Addressing Architecture)</div><div class='add'>+</div><div class='add'>+      # alpha         = lowalpha | upalpha</div><div class='add'>+      ALPHA = "a-zA-Z"</div><div class='add'>+      # alphanum      = alpha | digit</div><div class='add'>+      ALNUM = "#{ALPHA}\\d"</div><div class='add'>+</div><div class='add'>+      # hex           = digit | "A" | "B" | "C" | "D" | "E" | "F" |</div><div class='add'>+      #                         "a" | "b" | "c" | "d" | "e" | "f"</div><div class='add'>+      HEX     = "a-fA-F\\d"</div><div class='add'>+      # escaped       = "%" hex hex</div><div class='add'>+      ESCAPED = "%[#{HEX}]{2}"</div><div class='add'>+      # mark          = "-" | "_" | "." | "!" | "~" | "*" | "'" |</div><div class='add'>+      #                 "(" | ")"</div><div class='add'>+      # unreserved    = alphanum | mark</div><div class='add'>+      UNRESERVED = "\\-_.!~*'()#{ALNUM}"</div><div class='add'>+      # reserved      = ";" | "/" | "?" | ":" | "@" | "&amp;" | "=" | "+" |</div><div class='add'>+      #                 "$" | ","</div><div class='add'>+      # reserved      = ";" | "/" | "?" | ":" | "@" | "&amp;" | "=" | "+" |</div><div class='add'>+      #                 "$" | "," | "[" | "]" (RFC 2732)</div><div class='add'>+      RESERVED = ";/?:@&amp;=+$,\\[\\]"</div><div class='add'>+</div><div class='add'>+      # domainlabel   = alphanum | alphanum *( alphanum | "-" ) alphanum</div><div class='add'>+      DOMLABEL = "(?:[#{ALNUM}](?:[-#{ALNUM}]*[#{ALNUM}])?)"</div><div class='add'>+      # toplabel      = alpha | alpha *( alphanum | "-" ) alphanum</div><div class='add'>+      TOPLABEL = "(?:[#{ALPHA}](?:[-#{ALNUM}]*[#{ALNUM}])?)"</div><div class='add'>+      # hostname      = *( domainlabel "." ) toplabel [ "." ]</div><div class='add'>+      HOSTNAME = "(?:#{DOMLABEL}\\.)*#{TOPLABEL}\\.?"</div><div class='add'>+</div><div class='add'>+      # :startdoc:</div><div class='add'>+    end # PATTERN</div><div class='add'>+</div><div class='add'>+    # :startdoc:</div><div class='add'>+  end # REGEXP</div><div class='add'>+</div><div class='add'>+  # Class that parses String's into Bundler::URI's.</div><div class='add'>+  #</div><div class='add'>+  # It contains a Hash set of patterns and Regexp's that match and validate.</div><div class='add'>+  #</div><div class='add'>+  class RFC2396_Parser</div><div class='add'>+    include RFC2396_REGEXP</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Synopsis</div><div class='add'>+    #</div><div class='add'>+    #   Bundler::URI::Parser.new([opts])</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # The constructor accepts a hash as options for parser.</div><div class='add'>+    # Keys of options are pattern names of Bundler::URI components</div><div class='add'>+    # and values of options are pattern strings.</div><div class='add'>+    # The constructor generates set of regexps for parsing URIs.</div><div class='add'>+    #</div><div class='add'>+    # You can use the following keys:</div><div class='add'>+    #</div><div class='add'>+    #   * :ESCAPED (Bundler::URI::PATTERN::ESCAPED in default)</div><div class='add'>+    #   * :UNRESERVED (Bundler::URI::PATTERN::UNRESERVED in default)</div><div class='add'>+    #   * :DOMLABEL (Bundler::URI::PATTERN::DOMLABEL in default)</div><div class='add'>+    #   * :TOPLABEL (Bundler::URI::PATTERN::TOPLABEL in default)</div><div class='add'>+    #   * :HOSTNAME (Bundler::URI::PATTERN::HOSTNAME in default)</div><div class='add'>+    #</div><div class='add'>+    # == Examples</div><div class='add'>+    #</div><div class='add'>+    #   p = Bundler::URI::Parser.new(:ESCAPED =&gt; "(?:%[a-fA-F0-9]{2}|%u[a-fA-F0-9]{4})")</div><div class='add'>+    #   u = p.parse("http://example.jp/%uABCD") #=&gt; #&lt;Bundler::URI::HTTP http://example.jp/%uABCD&gt;</div><div class='add'>+    #   Bundler::URI.parse(u.to_s) #=&gt; raises Bundler::URI::InvalidURIError</div><div class='add'>+    #</div><div class='add'>+    #   s = "http://example.com/ABCD"</div><div class='add'>+    #   u1 = p.parse(s) #=&gt; #&lt;Bundler::URI::HTTP http://example.com/ABCD&gt;</div><div class='add'>+    #   u2 = Bundler::URI.parse(s) #=&gt; #&lt;Bundler::URI::HTTP http://example.com/ABCD&gt;</div><div class='add'>+    #   u1 == u2 #=&gt; true</div><div class='add'>+    #   u1.eql?(u2) #=&gt; false</div><div class='add'>+    #</div><div class='add'>+    def initialize(opts = {})</div><div class='add'>+      @pattern = initialize_pattern(opts)</div><div class='add'>+      @pattern.each_value(&amp;:freeze)</div><div class='add'>+      @pattern.freeze</div><div class='add'>+</div><div class='add'>+      @regexp = initialize_regexp(@pattern)</div><div class='add'>+      @regexp.each_value(&amp;:freeze)</div><div class='add'>+      @regexp.freeze</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # The Hash of patterns.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Parser.initialize_pattern.</div><div class='add'>+    attr_reader :pattern</div><div class='add'>+</div><div class='add'>+    # The Hash of Regexp.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Parser.initialize_regexp.</div><div class='add'>+    attr_reader :regexp</div><div class='add'>+</div><div class='add'>+    # Returns a split Bundler::URI against +regexp[:ABS_URI]+.</div><div class='add'>+    def split(uri)</div><div class='add'>+      case uri</div><div class='add'>+      when ''</div><div class='add'>+        # null uri</div><div class='add'>+</div><div class='add'>+      when @regexp[:ABS_URI]</div><div class='add'>+        scheme, opaque, userinfo, host, port,</div><div class='add'>+          registry, path, query, fragment = $~[1..-1]</div><div class='add'>+</div><div class='add'>+        # Bundler::URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]</div><div class='add'>+</div><div class='add'>+        # absoluteURI   = scheme ":" ( hier_part | opaque_part )</div><div class='add'>+        # hier_part     = ( net_path | abs_path ) [ "?" query ]</div><div class='add'>+        # opaque_part   = uric_no_slash *uric</div><div class='add'>+</div><div class='add'>+        # abs_path      = "/"  path_segments</div><div class='add'>+        # net_path      = "//" authority [ abs_path ]</div><div class='add'>+</div><div class='add'>+        # authority     = server | reg_name</div><div class='add'>+        # server        = [ [ userinfo "@" ] hostport ]</div><div class='add'>+</div><div class='add'>+        if !scheme</div><div class='add'>+          raise InvalidURIError,</div><div class='add'>+            "bad Bundler::URI(absolute but no scheme): #{uri}"</div><div class='add'>+        end</div><div class='add'>+        if !opaque &amp;&amp; (!path &amp;&amp; (!host &amp;&amp; !registry))</div><div class='add'>+          raise InvalidURIError,</div><div class='add'>+            "bad Bundler::URI(absolute but no path): #{uri}"</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      when @regexp[:REL_URI]</div><div class='add'>+        scheme = nil</div><div class='add'>+        opaque = nil</div><div class='add'>+</div><div class='add'>+        userinfo, host, port, registry,</div><div class='add'>+          rel_segment, abs_path, query, fragment = $~[1..-1]</div><div class='add'>+        if rel_segment &amp;&amp; abs_path</div><div class='add'>+          path = rel_segment + abs_path</div><div class='add'>+        elsif rel_segment</div><div class='add'>+          path = rel_segment</div><div class='add'>+        elsif abs_path</div><div class='add'>+          path = abs_path</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        # Bundler::URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]</div><div class='add'>+</div><div class='add'>+        # relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]</div><div class='add'>+</div><div class='add'>+        # net_path      = "//" authority [ abs_path ]</div><div class='add'>+        # abs_path      = "/"  path_segments</div><div class='add'>+        # rel_path      = rel_segment [ abs_path ]</div><div class='add'>+</div><div class='add'>+        # authority     = server | reg_name</div><div class='add'>+        # server        = [ [ userinfo "@" ] hostport ]</div><div class='add'>+</div><div class='add'>+      else</div><div class='add'>+        raise InvalidURIError, "bad Bundler::URI(is not Bundler::URI?): #{uri}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      path = '' if !path &amp;&amp; !opaque # (see RFC2396 Section 5.2)</div><div class='add'>+      ret = [</div><div class='add'>+        scheme,</div><div class='add'>+        userinfo, host, port,         # X</div><div class='add'>+        registry,                     # X</div><div class='add'>+        path,                         # Y</div><div class='add'>+        opaque,                       # Y</div><div class='add'>+        query,</div><div class='add'>+        fragment</div><div class='add'>+      ]</div><div class='add'>+      return ret</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +uri+::</div><div class='add'>+    #    String</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Parses +uri+ and constructs either matching Bundler::URI scheme object</div><div class='add'>+    # (File, FTP, HTTP, HTTPS, LDAP, LDAPS, or MailTo) or Bundler::URI::Generic.</div><div class='add'>+    #</div><div class='add'>+    # == Usage</div><div class='add'>+    #</div><div class='add'>+    #   p = Bundler::URI::Parser.new</div><div class='add'>+    #   p.parse("ldap://ldap.example.com/dc=example?user=john")</div><div class='add'>+    #   #=&gt; #&lt;Bundler::URI::LDAP ldap://ldap.example.com/dc=example?user=john&gt;</div><div class='add'>+    #</div><div class='add'>+    def parse(uri)</div><div class='add'>+      Bundler::URI.for(*self.split(uri), self)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +uris+::</div><div class='add'>+    #    an Array of Strings</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Attempts to parse and merge a set of URIs.</div><div class='add'>+    #</div><div class='add'>+    def join(*uris)</div><div class='add'>+      uris[0] = convert_to_uri(uris[0])</div><div class='add'>+      uris.inject :merge</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   extract( str )</div><div class='add'>+    #   extract( str, schemes )</div><div class='add'>+    #   extract( str, schemes ) {|item| block }</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +str+::</div><div class='add'>+    #    String to search</div><div class='add'>+    # +schemes+::</div><div class='add'>+    #    Patterns to apply to +str+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Attempts to parse and merge a set of URIs.</div><div class='add'>+    # If no +block+ given, then returns the result,</div><div class='add'>+    # else it calls +block+ for each element in result.</div><div class='add'>+    #</div><div class='add'>+    # See also Bundler::URI::Parser.make_regexp.</div><div class='add'>+    #</div><div class='add'>+    def extract(str, schemes = nil)</div><div class='add'>+      if block_given?</div><div class='add'>+        str.scan(make_regexp(schemes)) { yield $&amp; }</div><div class='add'>+        nil</div><div class='add'>+      else</div><div class='add'>+        result = []</div><div class='add'>+        str.scan(make_regexp(schemes)) { result.push $&amp; }</div><div class='add'>+        result</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns Regexp that is default +self.regexp[:ABS_URI_REF]+,</div><div class='add'>+    # unless +schemes+ is provided. Then it is a Regexp.union with +self.pattern[:X_ABS_URI]+.</div><div class='add'>+    def make_regexp(schemes = nil)</div><div class='add'>+      unless schemes</div><div class='add'>+        @regexp[:ABS_URI_REF]</div><div class='add'>+      else</div><div class='add'>+        /(?=#{Regexp.union(*schemes)}:)#{@pattern[:X_ABS_URI]}/x</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   escape( str )</div><div class='add'>+    #   escape( str, unsafe )</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +str+::</div><div class='add'>+    #    String to make safe</div><div class='add'>+    # +unsafe+::</div><div class='add'>+    #    Regexp to apply. Defaults to +self.regexp[:UNSAFE]+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Constructs a safe String from +str+, removing unsafe characters,</div><div class='add'>+    # replacing them with codes.</div><div class='add'>+    #</div><div class='add'>+    def escape(str, unsafe = @regexp[:UNSAFE])</div><div class='add'>+      unless unsafe.kind_of?(Regexp)</div><div class='add'>+        # perhaps unsafe is String object</div><div class='add'>+        unsafe = Regexp.new("[#{Regexp.quote(unsafe)}]", false)</div><div class='add'>+      end</div><div class='add'>+      str.gsub(unsafe) do</div><div class='add'>+        us = $&amp;</div><div class='add'>+        tmp = ''</div><div class='add'>+        us.each_byte do |uc|</div><div class='add'>+          tmp &lt;&lt; sprintf('%%%02X', uc)</div><div class='add'>+        end</div><div class='add'>+        tmp</div><div class='add'>+      end.force_encoding(Encoding::US_ASCII)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   unescape( str )</div><div class='add'>+    #   unescape( str, escaped )</div><div class='add'>+    #</div><div class='add'>+    # == Args</div><div class='add'>+    #</div><div class='add'>+    # +str+::</div><div class='add'>+    #    String to remove escapes from</div><div class='add'>+    # +escaped+::</div><div class='add'>+    #    Regexp to apply. Defaults to +self.regexp[:ESCAPED]+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Removes escapes from +str+.</div><div class='add'>+    #</div><div class='add'>+    def unescape(str, escaped = @regexp[:ESCAPED])</div><div class='add'>+      enc = str.encoding</div><div class='add'>+      enc = Encoding::UTF_8 if enc == Encoding::US_ASCII</div><div class='add'>+      str.gsub(escaped) { [$&amp;[1, 2]].pack('H2').force_encoding(enc) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    @@to_s = Kernel.instance_method(:to_s)</div><div class='add'>+    if @@to_s.respond_to?(:bind_call)</div><div class='add'>+      def inspect</div><div class='add'>+        @@to_s.bind_call(self)</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      def inspect</div><div class='add'>+        @@to_s.bind(self).call</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    # Constructs the default Hash of patterns.</div><div class='add'>+    def initialize_pattern(opts = {})</div><div class='add'>+      ret = {}</div><div class='add'>+      ret[:ESCAPED] = escaped = (opts.delete(:ESCAPED) || PATTERN::ESCAPED)</div><div class='add'>+      ret[:UNRESERVED] = unreserved = opts.delete(:UNRESERVED) || PATTERN::UNRESERVED</div><div class='add'>+      ret[:RESERVED] = reserved = opts.delete(:RESERVED) || PATTERN::RESERVED</div><div class='add'>+      ret[:DOMLABEL] = opts.delete(:DOMLABEL) || PATTERN::DOMLABEL</div><div class='add'>+      ret[:TOPLABEL] = opts.delete(:TOPLABEL) || PATTERN::TOPLABEL</div><div class='add'>+      ret[:HOSTNAME] = hostname = opts.delete(:HOSTNAME)</div><div class='add'>+</div><div class='add'>+      # RFC 2396 (Bundler::URI Generic Syntax)</div><div class='add'>+      # RFC 2732 (IPv6 Literal Addresses in URL's)</div><div class='add'>+      # RFC 2373 (IPv6 Addressing Architecture)</div><div class='add'>+</div><div class='add'>+      # uric          = reserved | unreserved | escaped</div><div class='add'>+      ret[:URIC] = uric = "(?:[#{unreserved}#{reserved}]|#{escaped})"</div><div class='add'>+      # uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" |</div><div class='add'>+      #                 "&amp;" | "=" | "+" | "$" | ","</div><div class='add'>+      ret[:URIC_NO_SLASH] = uric_no_slash = "(?:[#{unreserved};?:@&amp;=+$,]|#{escaped})"</div><div class='add'>+      # query         = *uric</div><div class='add'>+      ret[:QUERY] = query = "#{uric}*"</div><div class='add'>+      # fragment      = *uric</div><div class='add'>+      ret[:FRAGMENT] = fragment = "#{uric}*"</div><div class='add'>+</div><div class='add'>+      # hostname      = *( domainlabel "." ) toplabel [ "." ]</div><div class='add'>+      # reg-name      = *( unreserved / pct-encoded / sub-delims ) # RFC3986</div><div class='add'>+      unless hostname</div><div class='add'>+        ret[:HOSTNAME] = hostname = "(?:[a-zA-Z0-9\\-.]|%\\h\\h)+"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # RFC 2373, APPENDIX B:</div><div class='add'>+      # IPv6address = hexpart [ ":" IPv4address ]</div><div class='add'>+      # IPv4address   = 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT</div><div class='add'>+      # hexpart = hexseq | hexseq "::" [ hexseq ] | "::" [ hexseq ]</div><div class='add'>+      # hexseq  = hex4 *( ":" hex4)</div><div class='add'>+      # hex4    = 1*4HEXDIG</div><div class='add'>+      #</div><div class='add'>+      # XXX: This definition has a flaw. "::" + IPv4address must be</div><div class='add'>+      # allowed too.  Here is a replacement.</div><div class='add'>+      #</div><div class='add'>+      # IPv4address = 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT</div><div class='add'>+      ret[:IPV4ADDR] = ipv4addr = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"</div><div class='add'>+      # hex4     = 1*4HEXDIG</div><div class='add'>+      hex4 = "[#{PATTERN::HEX}]{1,4}"</div><div class='add'>+      # lastpart = hex4 | IPv4address</div><div class='add'>+      lastpart = "(?:#{hex4}|#{ipv4addr})"</div><div class='add'>+      # hexseq1  = *( hex4 ":" ) hex4</div><div class='add'>+      hexseq1 = "(?:#{hex4}:)*#{hex4}"</div><div class='add'>+      # hexseq2  = *( hex4 ":" ) lastpart</div><div class='add'>+      hexseq2 = "(?:#{hex4}:)*#{lastpart}"</div><div class='add'>+      # IPv6address = hexseq2 | [ hexseq1 ] "::" [ hexseq2 ]</div><div class='add'>+      ret[:IPV6ADDR] = ipv6addr = "(?:#{hexseq2}|(?:#{hexseq1})?::(?:#{hexseq2})?)"</div><div class='add'>+</div><div class='add'>+      # IPv6prefix  = ( hexseq1 | [ hexseq1 ] "::" [ hexseq1 ] ) "/" 1*2DIGIT</div><div class='add'>+      # unused</div><div class='add'>+</div><div class='add'>+      # ipv6reference = "[" IPv6address "]" (RFC 2732)</div><div class='add'>+      ret[:IPV6REF] = ipv6ref = "\\[#{ipv6addr}\\]"</div><div class='add'>+</div><div class='add'>+      # host          = hostname | IPv4address</div><div class='add'>+      # host          = hostname | IPv4address | IPv6reference (RFC 2732)</div><div class='add'>+      ret[:HOST] = host = "(?:#{hostname}|#{ipv4addr}|#{ipv6ref})"</div><div class='add'>+      # port          = *digit</div><div class='add'>+      ret[:PORT] = port = '\d*'</div><div class='add'>+      # hostport      = host [ ":" port ]</div><div class='add'>+      ret[:HOSTPORT] = hostport = "#{host}(?::#{port})?"</div><div class='add'>+</div><div class='add'>+      # userinfo      = *( unreserved | escaped |</div><div class='add'>+      #                    ";" | ":" | "&amp;" | "=" | "+" | "$" | "," )</div><div class='add'>+      ret[:USERINFO] = userinfo = "(?:[#{unreserved};:&amp;=+$,]|#{escaped})*"</div><div class='add'>+</div><div class='add'>+      # pchar         = unreserved | escaped |</div><div class='add'>+      #                 ":" | "@" | "&amp;" | "=" | "+" | "$" | ","</div><div class='add'>+      pchar = "(?:[#{unreserved}:@&amp;=+$,]|#{escaped})"</div><div class='add'>+      # param         = *pchar</div><div class='add'>+      param = "#{pchar}*"</div><div class='add'>+      # segment       = *pchar *( ";" param )</div><div class='add'>+      segment = "#{pchar}*(?:;#{param})*"</div><div class='add'>+      # path_segments = segment *( "/" segment )</div><div class='add'>+      ret[:PATH_SEGMENTS] = path_segments = "#{segment}(?:/#{segment})*"</div><div class='add'>+</div><div class='add'>+      # server        = [ [ userinfo "@" ] hostport ]</div><div class='add'>+      server = "(?:#{userinfo}@)?#{hostport}"</div><div class='add'>+      # reg_name      = 1*( unreserved | escaped | "$" | "," |</div><div class='add'>+      #                     ";" | ":" | "@" | "&amp;" | "=" | "+" )</div><div class='add'>+      ret[:REG_NAME] = reg_name = "(?:[#{unreserved}$,;:@&amp;=+]|#{escaped})+"</div><div class='add'>+      # authority     = server | reg_name</div><div class='add'>+      authority = "(?:#{server}|#{reg_name})"</div><div class='add'>+</div><div class='add'>+      # rel_segment   = 1*( unreserved | escaped |</div><div class='add'>+      #                     ";" | "@" | "&amp;" | "=" | "+" | "$" | "," )</div><div class='add'>+      ret[:REL_SEGMENT] = rel_segment = "(?:[#{unreserved};@&amp;=+$,]|#{escaped})+"</div><div class='add'>+</div><div class='add'>+      # scheme        = alpha *( alpha | digit | "+" | "-" | "." )</div><div class='add'>+      ret[:SCHEME] = scheme = "[#{PATTERN::ALPHA}][\\-+.#{PATTERN::ALPHA}\\d]*"</div><div class='add'>+</div><div class='add'>+      # abs_path      = "/"  path_segments</div><div class='add'>+      ret[:ABS_PATH] = abs_path = "/#{path_segments}"</div><div class='add'>+      # rel_path      = rel_segment [ abs_path ]</div><div class='add'>+      ret[:REL_PATH] = rel_path = "#{rel_segment}(?:#{abs_path})?"</div><div class='add'>+      # net_path      = "//" authority [ abs_path ]</div><div class='add'>+      ret[:NET_PATH] = net_path = "//#{authority}(?:#{abs_path})?"</div><div class='add'>+</div><div class='add'>+      # hier_part     = ( net_path | abs_path ) [ "?" query ]</div><div class='add'>+      ret[:HIER_PART] = hier_part = "(?:#{net_path}|#{abs_path})(?:\\?(?:#{query}))?"</div><div class='add'>+      # opaque_part   = uric_no_slash *uric</div><div class='add'>+      ret[:OPAQUE_PART] = opaque_part = "#{uric_no_slash}#{uric}*"</div><div class='add'>+</div><div class='add'>+      # absoluteURI   = scheme ":" ( hier_part | opaque_part )</div><div class='add'>+      ret[:ABS_URI] = abs_uri = "#{scheme}:(?:#{hier_part}|#{opaque_part})"</div><div class='add'>+      # relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]</div><div class='add'>+      ret[:REL_URI] = rel_uri = "(?:#{net_path}|#{abs_path}|#{rel_path})(?:\\?#{query})?"</div><div class='add'>+</div><div class='add'>+      # Bundler::URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]</div><div class='add'>+      ret[:URI_REF] = "(?:#{abs_uri}|#{rel_uri})?(?:##{fragment})?"</div><div class='add'>+</div><div class='add'>+      ret[:X_ABS_URI] = "</div><div class='add'>+        (#{scheme}):                           (?# 1: scheme)</div><div class='add'>+        (?:</div><div class='add'>+           (#{opaque_part})                    (?# 2: opaque)</div><div class='add'>+        |</div><div class='add'>+           (?:(?:</div><div class='add'>+             //(?:</div><div class='add'>+                 (?:(?:(#{userinfo})@)?        (?# 3: userinfo)</div><div class='add'>+                   (?:(#{host})(?::(\\d*))?))? (?# 4: host, 5: port)</div><div class='add'>+               |</div><div class='add'>+                 (#{reg_name})                 (?# 6: registry)</div><div class='add'>+               )</div><div class='add'>+             |</div><div class='add'>+             (?!//))                           (?# XXX: '//' is the mark for hostport)</div><div class='add'>+             (#{abs_path})?                    (?# 7: path)</div><div class='add'>+           )(?:\\?(#{query}))?                 (?# 8: query)</div><div class='add'>+        )</div><div class='add'>+        (?:\\#(#{fragment}))?                  (?# 9: fragment)</div><div class='add'>+      "</div><div class='add'>+</div><div class='add'>+      ret[:X_REL_URI] = "</div><div class='add'>+        (?:</div><div class='add'>+          (?:</div><div class='add'>+            //</div><div class='add'>+            (?:</div><div class='add'>+              (?:(#{userinfo})@)?       (?# 1: userinfo)</div><div class='add'>+                (#{host})?(?::(\\d*))?  (?# 2: host, 3: port)</div><div class='add'>+            |</div><div class='add'>+              (#{reg_name})             (?# 4: registry)</div><div class='add'>+            )</div><div class='add'>+          )</div><div class='add'>+        |</div><div class='add'>+          (#{rel_segment})              (?# 5: rel_segment)</div><div class='add'>+        )?</div><div class='add'>+        (#{abs_path})?                  (?# 6: abs_path)</div><div class='add'>+        (?:\\?(#{query}))?              (?# 7: query)</div><div class='add'>+        (?:\\#(#{fragment}))?           (?# 8: fragment)</div><div class='add'>+      "</div><div class='add'>+</div><div class='add'>+      ret</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Constructs the default Hash of Regexp's.</div><div class='add'>+    def initialize_regexp(pattern)</div><div class='add'>+      ret = {}</div><div class='add'>+</div><div class='add'>+      # for Bundler::URI::split</div><div class='add'>+      ret[:ABS_URI] = Regexp.new('\A\s*+' + pattern[:X_ABS_URI] + '\s*\z', Regexp::EXTENDED)</div><div class='add'>+      ret[:REL_URI] = Regexp.new('\A\s*+' + pattern[:X_REL_URI] + '\s*\z', Regexp::EXTENDED)</div><div class='add'>+</div><div class='add'>+      # for Bundler::URI::extract</div><div class='add'>+      ret[:URI_REF]     = Regexp.new(pattern[:URI_REF])</div><div class='add'>+      ret[:ABS_URI_REF] = Regexp.new(pattern[:X_ABS_URI], Regexp::EXTENDED)</div><div class='add'>+      ret[:REL_URI_REF] = Regexp.new(pattern[:X_REL_URI], Regexp::EXTENDED)</div><div class='add'>+</div><div class='add'>+      # for Bundler::URI::escape/unescape</div><div class='add'>+      ret[:ESCAPED] = Regexp.new(pattern[:ESCAPED])</div><div class='add'>+      ret[:UNSAFE]  = Regexp.new("[^#{pattern[:UNRESERVED]}#{pattern[:RESERVED]}]")</div><div class='add'>+</div><div class='add'>+      # for Generic#initialize</div><div class='add'>+      ret[:SCHEME]   = Regexp.new("\\A#{pattern[:SCHEME]}\\z")</div><div class='add'>+      ret[:USERINFO] = Regexp.new("\\A#{pattern[:USERINFO]}\\z")</div><div class='add'>+      ret[:HOST]     = Regexp.new("\\A#{pattern[:HOST]}\\z")</div><div class='add'>+      ret[:PORT]     = Regexp.new("\\A#{pattern[:PORT]}\\z")</div><div class='add'>+      ret[:OPAQUE]   = Regexp.new("\\A#{pattern[:OPAQUE_PART]}\\z")</div><div class='add'>+      ret[:REGISTRY] = Regexp.new("\\A#{pattern[:REG_NAME]}\\z")</div><div class='add'>+      ret[:ABS_PATH] = Regexp.new("\\A#{pattern[:ABS_PATH]}\\z")</div><div class='add'>+      ret[:REL_PATH] = Regexp.new("\\A#{pattern[:REL_PATH]}\\z")</div><div class='add'>+      ret[:QUERY]    = Regexp.new("\\A#{pattern[:QUERY]}\\z")</div><div class='add'>+      ret[:FRAGMENT] = Regexp.new("\\A#{pattern[:FRAGMENT]}\\z")</div><div class='add'>+</div><div class='add'>+      ret</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def convert_to_uri(uri)</div><div class='add'>+      if uri.is_a?(Bundler::URI::Generic)</div><div class='add'>+        uri</div><div class='add'>+      elsif uri = String.try_convert(uri)</div><div class='add'>+        parse(uri)</div><div class='add'>+      else</div><div class='add'>+        raise ArgumentError,</div><div class='add'>+          "bad argument (expected Bundler::URI object or Bundler::URI string)"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+  end # class Parser</div><div class='add'>+end # module Bundler::URI</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb b/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb<br/>new file mode 100644<br/>index 0000000000..a85511c146<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb</a></div><div class='hunk'>@@ -0,0 +1,119 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+module Bundler::URI</div><div class='add'>+  class RFC3986_Parser # :nodoc:</div><div class='add'>+    # Bundler::URI defined in RFC3986</div><div class='add'>+    RFC3986_URI = /\A(?&lt;Bundler::URI&gt;(?&lt;scheme&gt;[A-Za-z][+\-.0-9A-Za-z]*+):(?&lt;hier-part&gt;\/\/(?&lt;authority&gt;(?:(?&lt;userinfo&gt;(?:%\h\h|[!$&amp;-.0-;=A-Z_a-z~])*+)@)?(?&lt;host&gt;(?&lt;IP-literal&gt;\[(?:(?&lt;IPv6address&gt;(?:\h{1,4}:){6}(?&lt;ls32&gt;\h{1,4}:\h{1,4}|(?&lt;IPv4address&gt;(?&lt;dec-octet&gt;[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]|\d)\.\g&lt;dec-octet&gt;\.\g&lt;dec-octet&gt;\.\g&lt;dec-octet&gt;))|::(?:\h{1,4}:){5}\g&lt;ls32&gt;|\h{1,4}?::(?:\h{1,4}:){4}\g&lt;ls32&gt;|(?:(?:\h{1,4}:)?\h{1,4})?::(?:\h{1,4}:){3}\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,2}\h{1,4})?::(?:\h{1,4}:){2}\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,3}\h{1,4})?::\h{1,4}:\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,4}\h{1,4})?::\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,5}\h{1,4})?::\h{1,4}|(?:(?:\h{1,4}:){,6}\h{1,4})?::)|(?&lt;IPvFuture&gt;v\h++\.[!$&amp;-.0-;=A-Z_a-z~]++))\])|\g&lt;IPv4address&gt;|(?&lt;reg-name&gt;(?:%\h\h|[!$&amp;-.0-9;=A-Z_a-z~])*+))(?::(?&lt;port&gt;\d*+))?)(?&lt;path-abempty&gt;(?:\/(?&lt;segment&gt;(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~])*+))*+)|(?&lt;path-absolute&gt;\/(?:(?&lt;segment-nz&gt;(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~])++)(?:\/\g&lt;segment&gt;)*+)?)|(?&lt;path-rootless&gt;\g&lt;segment-nz&gt;(?:\/\g&lt;segment&gt;)*+)|(?&lt;path-empty&gt;))(?:\?(?&lt;query&gt;[^#]*+))?(?:\#(?&lt;fragment&gt;(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~\/?])*+))?)\z/</div><div class='add'>+    RFC3986_relative_ref = /\A(?&lt;relative-ref&gt;(?&lt;relative-part&gt;\/\/(?&lt;authority&gt;(?:(?&lt;userinfo&gt;(?:%\h\h|[!$&amp;-.0-;=A-Z_a-z~])*+)@)?(?&lt;host&gt;(?&lt;IP-literal&gt;\[(?:(?&lt;IPv6address&gt;(?:\h{1,4}:){6}(?&lt;ls32&gt;\h{1,4}:\h{1,4}|(?&lt;IPv4address&gt;(?&lt;dec-octet&gt;[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]|\d)\.\g&lt;dec-octet&gt;\.\g&lt;dec-octet&gt;\.\g&lt;dec-octet&gt;))|::(?:\h{1,4}:){5}\g&lt;ls32&gt;|\h{1,4}?::(?:\h{1,4}:){4}\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,1}\h{1,4})?::(?:\h{1,4}:){3}\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,2}\h{1,4})?::(?:\h{1,4}:){2}\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,3}\h{1,4})?::\h{1,4}:\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,4}\h{1,4})?::\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,5}\h{1,4})?::\h{1,4}|(?:(?:\h{1,4}:){,6}\h{1,4})?::)|(?&lt;IPvFuture&gt;v\h++\.[!$&amp;-.0-;=A-Z_a-z~]++))\])|\g&lt;IPv4address&gt;|(?&lt;reg-name&gt;(?:%\h\h|[!$&amp;-.0-9;=A-Z_a-z~])++))?(?::(?&lt;port&gt;\d*+))?)(?&lt;path-abempty&gt;(?:\/(?&lt;segment&gt;(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~])*+))*+)|(?&lt;path-absolute&gt;\/(?:(?&lt;segment-nz&gt;(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~])++)(?:\/\g&lt;segment&gt;)*+)?)|(?&lt;path-noscheme&gt;(?&lt;segment-nz-nc&gt;(?:%\h\h|[!$&amp;-.0-9;=@-Z_a-z~])++)(?:\/\g&lt;segment&gt;)*+)|(?&lt;path-empty&gt;))(?:\?(?&lt;query&gt;[^#]*+))?(?:\#(?&lt;fragment&gt;(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~\/?])*+))?)\z/</div><div class='add'>+    attr_reader :regexp</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      @regexp = default_regexp.each_value(&amp;:freeze).freeze</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def split(uri) #:nodoc:</div><div class='add'>+      begin</div><div class='add'>+        uri = uri.to_str</div><div class='add'>+      rescue NoMethodError</div><div class='add'>+        raise InvalidURIError, "bad Bundler::URI(is not Bundler::URI?): #{uri.inspect}"</div><div class='add'>+      end</div><div class='add'>+      uri.ascii_only? or</div><div class='add'>+        raise InvalidURIError, "Bundler::URI must be ascii only #{uri.dump}"</div><div class='add'>+      if m = RFC3986_URI.match(uri)</div><div class='add'>+        query = m["query".freeze]</div><div class='add'>+        scheme = m["scheme".freeze]</div><div class='add'>+        opaque = m["path-rootless".freeze]</div><div class='add'>+        if opaque</div><div class='add'>+          opaque &lt;&lt; "?#{query}" if query</div><div class='add'>+          [ scheme,</div><div class='add'>+            nil, # userinfo</div><div class='add'>+            nil, # host</div><div class='add'>+            nil, # port</div><div class='add'>+            nil, # registry</div><div class='add'>+            nil, # path</div><div class='add'>+            opaque,</div><div class='add'>+            nil, # query</div><div class='add'>+            m["fragment".freeze]</div><div class='add'>+          ]</div><div class='add'>+        else # normal</div><div class='add'>+          [ scheme,</div><div class='add'>+            m["userinfo".freeze],</div><div class='add'>+            m["host".freeze],</div><div class='add'>+            m["port".freeze],</div><div class='add'>+            nil, # registry</div><div class='add'>+            (m["path-abempty".freeze] ||</div><div class='add'>+             m["path-absolute".freeze] ||</div><div class='add'>+             m["path-empty".freeze]),</div><div class='add'>+            nil, # opaque</div><div class='add'>+            query,</div><div class='add'>+            m["fragment".freeze]</div><div class='add'>+          ]</div><div class='add'>+        end</div><div class='add'>+      elsif m = RFC3986_relative_ref.match(uri)</div><div class='add'>+        [ nil, # scheme</div><div class='add'>+          m["userinfo".freeze],</div><div class='add'>+          m["host".freeze],</div><div class='add'>+          m["port".freeze],</div><div class='add'>+          nil, # registry,</div><div class='add'>+          (m["path-abempty".freeze] ||</div><div class='add'>+           m["path-absolute".freeze] ||</div><div class='add'>+           m["path-noscheme".freeze] ||</div><div class='add'>+           m["path-empty".freeze]),</div><div class='add'>+          nil, # opaque</div><div class='add'>+          m["query".freeze],</div><div class='add'>+          m["fragment".freeze]</div><div class='add'>+        ]</div><div class='add'>+      else</div><div class='add'>+        raise InvalidURIError, "bad Bundler::URI(is not Bundler::URI?): #{uri.inspect}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse(uri) # :nodoc:</div><div class='add'>+      Bundler::URI.for(*self.split(uri), self)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+    def join(*uris) # :nodoc:</div><div class='add'>+      uris[0] = convert_to_uri(uris[0])</div><div class='add'>+      uris.inject :merge</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    @@to_s = Kernel.instance_method(:to_s)</div><div class='add'>+    if @@to_s.respond_to?(:bind_call)</div><div class='add'>+      def inspect</div><div class='add'>+        @@to_s.bind_call(self)</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      def inspect</div><div class='add'>+        @@to_s.bind(self).call</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def default_regexp # :nodoc:</div><div class='add'>+      {</div><div class='add'>+        SCHEME: /\A[A-Za-z][A-Za-z0-9+\-.]*\z/,</div><div class='add'>+        USERINFO: /\A(?:%\h\h|[!$&amp;-.0-;=A-Z_a-z~])*\z/,</div><div class='add'>+        HOST: /\A(?:(?&lt;IP-literal&gt;\[(?:(?&lt;IPv6address&gt;(?:\h{1,4}:){6}(?&lt;ls32&gt;\h{1,4}:\h{1,4}|(?&lt;IPv4address&gt;(?&lt;dec-octet&gt;[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]|\d)\.\g&lt;dec-octet&gt;\.\g&lt;dec-octet&gt;\.\g&lt;dec-octet&gt;))|::(?:\h{1,4}:){5}\g&lt;ls32&gt;|\h{,4}::(?:\h{1,4}:){4}\g&lt;ls32&gt;|(?:(?:\h{1,4}:)?\h{1,4})?::(?:\h{1,4}:){3}\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,2}\h{1,4})?::(?:\h{1,4}:){2}\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,3}\h{1,4})?::\h{1,4}:\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,4}\h{1,4})?::\g&lt;ls32&gt;|(?:(?:\h{1,4}:){,5}\h{1,4})?::\h{1,4}|(?:(?:\h{1,4}:){,6}\h{1,4})?::)|(?&lt;IPvFuture&gt;v\h+\.[!$&amp;-.0-;=A-Z_a-z~]+))\])|\g&lt;IPv4address&gt;|(?&lt;reg-name&gt;(?:%\h\h|[!$&amp;-.0-9;=A-Z_a-z~])*))\z/,</div><div class='add'>+        ABS_PATH: /\A\/(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~])*(?:\/(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~])*)*\z/,</div><div class='add'>+        REL_PATH: /\A(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~])+(?:\/(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~])*)*\z/,</div><div class='add'>+        QUERY: /\A(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~\/?])*\z/,</div><div class='add'>+        FRAGMENT: /\A(?:%\h\h|[!$&amp;-.0-;=@-Z_a-z~\/?])*\z/,</div><div class='add'>+        OPAQUE: /\A(?:[^\/].*)?\z/,</div><div class='add'>+        PORT: /\A[\x09\x0a\x0c\x0d ]*+\d*[\x09\x0a\x0c\x0d ]*\z/,</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def convert_to_uri(uri)</div><div class='add'>+      if uri.is_a?(Bundler::URI::Generic)</div><div class='add'>+        uri</div><div class='add'>+      elsif uri = String.try_convert(uri)</div><div class='add'>+        parse(uri)</div><div class='add'>+      else</div><div class='add'>+        raise ArgumentError,</div><div class='add'>+          "bad argument (expected Bundler::URI object or Bundler::URI string)"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+  end # class Parser</div><div class='add'>+end # module Bundler::URI</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/version.rb b/lib/bundler/vendor/uri/lib/uri/version.rb<br/>new file mode 100644<br/>index 0000000000..84b08eee30<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/version.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+module Bundler::URI</div><div class='add'>+  # :stopdoc:</div><div class='add'>+  VERSION_CODE = '001202'.freeze</div><div class='add'>+  VERSION = VERSION_CODE.scan(/../).collect{|n| n.to_i}.join('.').freeze</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/ws.rb b/lib/bundler/vendor/uri/lib/uri/ws.rb<br/>new file mode 100644<br/>index 0000000000..10ae6f5834<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/ws.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/ws.rb</a></div><div class='hunk'>@@ -0,0 +1,83 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+# = uri/ws.rb</div><div class='add'>+#</div><div class='add'>+# Author:: Matt Muller &lt;mamuller@amazon.com&gt;</div><div class='add'>+# License:: You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+# See Bundler::URI for general documentation</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require_relative 'generic'</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # The syntax of WS URIs is defined in RFC6455 section 3.</div><div class='add'>+  #</div><div class='add'>+  # Note that the Ruby Bundler::URI library allows WS URLs containing usernames and</div><div class='add'>+  # passwords. This is not legal as per the RFC, but used to be</div><div class='add'>+  # supported in Internet Explorer 5 and 6, before the MS04-004 security</div><div class='add'>+  # update. See &lt;URL:http://support.microsoft.com/kb/834489&gt;.</div><div class='add'>+  #</div><div class='add'>+  class WS &lt; Generic</div><div class='add'>+    # A Default port of 80 for Bundler::URI::WS.</div><div class='add'>+    DEFAULT_PORT = 80</div><div class='add'>+</div><div class='add'>+    # An Array of the available components for Bundler::URI::WS.</div><div class='add'>+    COMPONENT = %i[</div><div class='add'>+      scheme</div><div class='add'>+      userinfo host port</div><div class='add'>+      path</div><div class='add'>+      query</div><div class='add'>+    ].freeze</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Creates a new Bundler::URI::WS object from components, with syntax checking.</div><div class='add'>+    #</div><div class='add'>+    # The components accepted are userinfo, host, port, path, and query.</div><div class='add'>+    #</div><div class='add'>+    # The components should be provided either as an Array, or as a Hash</div><div class='add'>+    # with keys formed by preceding the component names with a colon.</div><div class='add'>+    #</div><div class='add'>+    # If an Array is used, the components must be passed in the</div><div class='add'>+    # order &lt;code&gt;[userinfo, host, port, path, query]&lt;/code&gt;.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #</div><div class='add'>+    #     uri = Bundler::URI::WS.build(host: 'www.example.com', path: '/foo/bar')</div><div class='add'>+    #</div><div class='add'>+    #     uri = Bundler::URI::WS.build([nil, "www.example.com", nil, "/path", "query"])</div><div class='add'>+    #</div><div class='add'>+    # Currently, if passed userinfo components this method generates</div><div class='add'>+    # invalid WS URIs as per RFC 1738.</div><div class='add'>+    #</div><div class='add'>+    def self.build(args)</div><div class='add'>+      tmp = Util.make_components_hash(self, args)</div><div class='add'>+      super(tmp)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # == Description</div><div class='add'>+    #</div><div class='add'>+    # Returns the full path for a WS Bundler::URI, as required by Net::HTTP::Get.</div><div class='add'>+    #</div><div class='add'>+    # If the Bundler::URI contains a query, the full path is Bundler::URI#path + '?' + Bundler::URI#query.</div><div class='add'>+    # Otherwise, the path is simply Bundler::URI#path.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #</div><div class='add'>+    #     uri = Bundler::URI::WS.build(path: '/foo/bar', query: 'test=true')</div><div class='add'>+    #     uri.request_uri #  =&gt; "/foo/bar?test=true"</div><div class='add'>+    #</div><div class='add'>+    def request_uri</div><div class='add'>+      return unless @path</div><div class='add'>+</div><div class='add'>+      url = @query ? "#@path?#@query" : @path.dup</div><div class='add'>+      url.start_with?(?/.freeze) ? url : ?/ + url</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  register_scheme 'WS', WS</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendor/uri/lib/uri/wss.rb b/lib/bundler/vendor/uri/lib/uri/wss.rb<br/>new file mode 100644<br/>index 0000000000..e8db1ceabf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendor/uri/lib/uri/wss.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendor/uri/lib/uri/wss.rb</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+# = uri/wss.rb</div><div class='add'>+#</div><div class='add'>+# Author:: Matt Muller &lt;mamuller@amazon.com&gt;</div><div class='add'>+# License:: You can redistribute it and/or modify it under the same term as Ruby.</div><div class='add'>+#</div><div class='add'>+# See Bundler::URI for general documentation</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require_relative 'ws'</div><div class='add'>+</div><div class='add'>+module Bundler::URI</div><div class='add'>+</div><div class='add'>+  # The default port for WSS URIs is 443, and the scheme is 'wss:' rather</div><div class='add'>+  # than 'ws:'. Other than that, WSS URIs are identical to WS URIs;</div><div class='add'>+  # see Bundler::URI::WS.</div><div class='add'>+  class WSS &lt; WS</div><div class='add'>+    # A Default port of 443 for Bundler::URI::WSS</div><div class='add'>+    DEFAULT_PORT = 443</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  register_scheme 'WSS', WSS</div><div class='add'>+end</div><div class='head'>diff --git a/lib/bundler/vendored_fileutils.rb b/lib/bundler/vendored_fileutils.rb<br/>index d14e98baf7..1be1138ce2 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendored_fileutils.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendored_fileutils.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendored_fileutils.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendored_fileutils.rb</a></div><div class='hunk'>@@ -1,9 +1,4 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='ctx'> module Bundler; end</div><div class='del'>-if RUBY_VERSION &gt;= "2.4"</div><div class='del'>-  require "bundler/vendor/fileutils/lib/fileutils"</div><div class='del'>-else</div><div class='del'>-  # the version we vendor is 2.4+</div><div class='del'>-  require "fileutils"</div><div class='del'>-end</div><div class='add'>+require_relative "vendor/fileutils/lib/fileutils"</div><div class='head'>diff --git a/lib/bundler/vendored_molinillo.rb b/lib/bundler/vendored_molinillo.rb<br/>deleted file mode 100644<br/>index 061b634f72..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendored_molinillo.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendored_molinillo.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler; end</div><div class='del'>-require "bundler/vendor/molinillo/lib/molinillo"</div><div class='head'>diff --git a/lib/bundler/vendored_persistent.rb b/lib/bundler/vendored_persistent.rb<br/>index de9c42fcc1..e29f27cdfd 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendored_persistent.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendored_persistent.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendored_persistent.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendored_persistent.rb</a></div><div class='hunk'>@@ -1,12 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-# We forcibly require OpenSSL, because net/http/persistent will only autoload</div><div class='del'>-# it. On some Rubies, autoload fails but explicit require succeeds.</div><div class='del'>-begin</div><div class='del'>-  require "openssl"</div><div class='del'>-rescue LoadError</div><div class='del'>-  # some Ruby builds don't have OpenSSL</div><div class='del'>-end</div><div class='ctx'> module Bundler</div><div class='ctx'>   module Persistent</div><div class='ctx'>     module Net</div><div class='hunk'>@@ -15,38 +8,8 @@ module Bundler</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-require "bundler/vendor/net-http-persistent/lib/net/http/persistent"</div><div class='add'>+require_relative "vendor/net-http-persistent/lib/net/http/persistent"</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='del'>-  class PersistentHTTP &lt; Persistent::Net::HTTP::Persistent</div><div class='del'>-    def connection_for(uri)</div><div class='del'>-      connection = super</div><div class='del'>-      warn_old_tls_version_rubygems_connection(uri, connection)</div><div class='del'>-      connection</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def warn_old_tls_version_rubygems_connection(uri, connection)</div><div class='del'>-      return unless connection.use_ssl?</div><div class='del'>-      return unless (uri.host || "").end_with?("rubygems.org")</div><div class='del'>-</div><div class='del'>-      socket = connection.instance_variable_get(:@socket)</div><div class='del'>-      return unless socket</div><div class='del'>-      socket_io = socket.io</div><div class='del'>-      return unless socket_io.respond_to?(:ssl_version)</div><div class='del'>-      ssl_version = socket_io.ssl_version</div><div class='del'>-</div><div class='del'>-      case ssl_version</div><div class='del'>-      when /TLSv([\d\.]+)/</div><div class='del'>-        version = Gem::Version.new($1)</div><div class='del'>-        if version &lt; Gem::Version.new("1.2")</div><div class='del'>-          Bundler.ui.warn \</div><div class='del'>-            "Warning: Your Ruby version is compiled against a copy of OpenSSL that is very old. " \</div><div class='del'>-            "Starting in January 2018, RubyGems.org will refuse connection requests from these " \</div><div class='del'>-            "very old versions of OpenSSL. If you will need to continue installing gems after " \</div><div class='del'>-            "January 2018, please follow this guide to upgrade: http://ruby.to/tls-outdated.",</div><div class='del'>-            :wrap =&gt; true</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='add'>+  PersistentHTTP = Persistent::Net::HTTP::Persistent</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/vendored_pub_grub.rb b/lib/bundler/vendored_pub_grub.rb<br/>new file mode 100644<br/>index 0000000000..b36a996b29<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendored_pub_grub.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendored_pub_grub.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler; end</div><div class='add'>+require_relative "vendor/pub_grub/lib/pub_grub"</div><div class='head'>diff --git a/lib/bundler/vendored_thor.rb b/lib/bundler/vendored_thor.rb<br/>index 8cca090f55..0666cfc9b9 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vendored_thor.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vendored_thor.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendored_thor.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendored_thor.rb</a></div><div class='hunk'>@@ -2,7 +2,7 @@</div><div class='ctx'> </div><div class='ctx'> module Bundler</div><div class='ctx'>   def self.require_thor_actions</div><div class='del'>-    Kernel.send(:require, "bundler/vendor/thor/lib/thor/actions")</div><div class='add'>+    require_relative "vendor/thor/lib/thor/actions"</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-require "bundler/vendor/thor/lib/thor"</div><div class='add'>+require_relative "vendor/thor/lib/thor"</div><div class='head'>diff --git a/lib/bundler/vendored_tsort.rb b/lib/bundler/vendored_tsort.rb<br/>new file mode 100644<br/>index 0000000000..38aed0b5de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendored_tsort.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendored_tsort.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler; end</div><div class='add'>+require_relative "vendor/tsort/lib/tsort"</div><div class='head'>diff --git a/lib/bundler/vendored_uri.rb b/lib/bundler/vendored_uri.rb<br/>new file mode 100644<br/>index 0000000000..905e8158e8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vendored_uri.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vendored_uri.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module Bundler; end</div><div class='add'>+require_relative "vendor/uri/lib/uri"</div><div class='head'>diff --git a/lib/bundler/version.rb b/lib/bundler/version.rb<br/>index 01b28c08eb..8ef7be935b 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/version.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/version.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/version.rb</a></div><div class='hunk'>@@ -1,28 +1,13 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='ctx'> </div><div class='del'>-# Ruby 1.9.3 and old RubyGems don't play nice with frozen version strings</div><div class='del'>-# rubocop:disable MutableConstant</div><div class='del'>-</div><div class='ctx'> module Bundler</div><div class='del'>-  # We're doing this because we might write tests that deal</div><div class='del'>-  # with other versions of bundler and we are unsure how to</div><div class='del'>-  # handle this better.</div><div class='del'>-  VERSION = "1.17.2" unless defined?(::Bundler::VERSION)</div><div class='del'>-</div><div class='del'>-  def self.overwrite_loaded_gem_version</div><div class='del'>-    begin</div><div class='del'>-      require "rubygems"</div><div class='del'>-    rescue LoadError</div><div class='del'>-      return</div><div class='del'>-    end</div><div class='del'>-    return unless bundler_spec = Gem.loaded_specs["bundler"]</div><div class='del'>-    return if bundler_spec.version == VERSION</div><div class='del'>-    bundler_spec.version = Bundler::VERSION</div><div class='del'>-  end</div><div class='del'>-  private_class_method :overwrite_loaded_gem_version</div><div class='del'>-  overwrite_loaded_gem_version</div><div class='add'>+  VERSION = "2.4.19".freeze</div><div class='ctx'> </div><div class='ctx'>   def self.bundler_major_version</div><div class='ctx'>     @bundler_major_version ||= VERSION.split(".").first.to_i</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  def self.gem_version</div><div class='add'>+    @gem_version ||= Gem::Version.create(VERSION)</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/version_ranges.rb b/lib/bundler/version_ranges.rb<br/>deleted file mode 100644<br/>index ec25716cde..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/bundler/version_ranges.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/version_ranges.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,76 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module Bundler</div><div class='del'>-  module VersionRanges</div><div class='del'>-    NEq = Struct.new(:version)</div><div class='del'>-    ReqR = Struct.new(:left, :right)</div><div class='del'>-    class ReqR</div><div class='del'>-      Endpoint = Struct.new(:version, :inclusive)</div><div class='del'>-      def to_s</div><div class='del'>-        "#{left.inclusive ? "[" : "("}#{left.version}, #{right.version}#{right.inclusive ? "]" : ")"}"</div><div class='del'>-      end</div><div class='del'>-      INFINITY = Object.new.freeze</div><div class='del'>-      ZERO = Gem::Version.new("0.a")</div><div class='del'>-</div><div class='del'>-      def cover?(v)</div><div class='del'>-        return false if left.inclusive &amp;&amp; left.version &gt; v</div><div class='del'>-        return false if !left.inclusive &amp;&amp; left.version &gt;= v</div><div class='del'>-</div><div class='del'>-        if right.version != INFINITY</div><div class='del'>-          return false if right.inclusive &amp;&amp; right.version &lt; v</div><div class='del'>-          return false if !right.inclusive &amp;&amp; right.version &lt;= v</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        true</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def empty?</div><div class='del'>-        left.version == right.version &amp;&amp; !(left.inclusive &amp;&amp; right.inclusive)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def single?</div><div class='del'>-        left.version == right.version</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      UNIVERSAL = ReqR.new(ReqR::Endpoint.new(Gem::Version.new("0.a"), true), ReqR::Endpoint.new(ReqR::INFINITY, false)).freeze</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def self.for_many(requirements)</div><div class='del'>-      requirements = requirements.map(&amp;:requirements).flatten(1).map {|r| r.join(" ") }</div><div class='del'>-      requirements &lt;&lt; "&gt;= 0.a" if requirements.empty?</div><div class='del'>-      requirement = Gem::Requirement.new(requirements)</div><div class='del'>-      self.for(requirement)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def self.for(requirement)</div><div class='del'>-      ranges = requirement.requirements.map do |op, v|</div><div class='del'>-        case op</div><div class='del'>-        when "=" then ReqR.new(ReqR::Endpoint.new(v, true), ReqR::Endpoint.new(v, true))</div><div class='del'>-        when "!=" then NEq.new(v)</div><div class='del'>-        when "&gt;=" then ReqR.new(ReqR::Endpoint.new(v, true), ReqR::Endpoint.new(ReqR::INFINITY, false))</div><div class='del'>-        when "&gt;" then ReqR.new(ReqR::Endpoint.new(v, false), ReqR::Endpoint.new(ReqR::INFINITY, false))</div><div class='del'>-        when "&lt;" then ReqR.new(ReqR::Endpoint.new(ReqR::ZERO, true), ReqR::Endpoint.new(v, false))</div><div class='del'>-        when "&lt;=" then ReqR.new(ReqR::Endpoint.new(ReqR::ZERO, true), ReqR::Endpoint.new(v, true))</div><div class='del'>-        when "~&gt;" then ReqR.new(ReqR::Endpoint.new(v, true), ReqR::Endpoint.new(v.bump, false))</div><div class='del'>-        else raise "unknown version op #{op} in requirement #{requirement}"</div><div class='del'>-        end</div><div class='del'>-      end.uniq</div><div class='del'>-      ranges, neqs = ranges.partition {|r| !r.is_a?(NEq) }</div><div class='del'>-</div><div class='del'>-      [ranges.sort_by {|range| [range.left.version, range.left.inclusive ? 0 : 1] }, neqs.map(&amp;:version)]</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def self.empty?(ranges, neqs)</div><div class='del'>-      !ranges.reduce(ReqR::UNIVERSAL) do |last_range, curr_range|</div><div class='del'>-        next false unless last_range</div><div class='del'>-        next false if curr_range.single? &amp;&amp; neqs.include?(curr_range.left.version)</div><div class='del'>-        next curr_range if last_range.right.version == ReqR::INFINITY</div><div class='del'>-        case last_range.right.version &lt;=&gt; curr_range.left.version</div><div class='del'>-        when 1 then next curr_range</div><div class='del'>-        when 0 then next(last_range.right.inclusive &amp;&amp; curr_range.left.inclusive &amp;&amp; !neqs.include?(curr_range.left.version) &amp;&amp; curr_range)</div><div class='del'>-        when -1 then next false</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/bundler/vlad.rb b/lib/bundler/vlad.rb<br/>index 68181e7db8..538e8c3e74 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/vlad.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/vlad.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/vlad.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/vlad.rb</a></div><div class='hunk'>@@ -1,6 +1,6 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "bundler/shared_helpers"</div><div class='add'>+require_relative "shared_helpers"</div><div class='ctx'> Bundler::SharedHelpers.major_deprecation 2,</div><div class='ctx'>   "The Bundler task for Vlad"</div><div class='ctx'> </div><div class='hunk'>@@ -8,7 +8,7 @@ Bundler::SharedHelpers.major_deprecation 2,</div><div class='ctx'> #</div><div class='ctx'> # Add "require 'bundler/vlad'" in your Vlad deploy.rb, and</div><div class='ctx'> # include the vlad:bundle:install task in your vlad:deploy task.</div><div class='del'>-require "bundler/deployment"</div><div class='add'>+require_relative "deployment"</div><div class='ctx'> </div><div class='ctx'> include Rake::DSL if defined? Rake::DSL</div><div class='ctx'> </div><div class='head'>diff --git a/lib/bundler/worker.rb b/lib/bundler/worker.rb<br/>index e91cfa7805..3ebd6f01db 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/worker.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/worker.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/worker.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/worker.rb</a></div><div class='hunk'>@@ -1,7 +1,5 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> </div><div class='del'>-require "thread"</div><div class='del'>-</div><div class='ctx'> module Bundler</div><div class='ctx'>   class Worker</div><div class='ctx'>     POISON = Object.new</div><div class='hunk'>@@ -23,12 +21,12 @@ module Bundler</div><div class='ctx'>     # @param func [Proc] job to run in inside the worker pool</div><div class='ctx'>     def initialize(size, name, func)</div><div class='ctx'>       @name = name</div><div class='del'>-      @request_queue = Queue.new</div><div class='del'>-      @response_queue = Queue.new</div><div class='add'>+      @request_queue = Thread::Queue.new</div><div class='add'>+      @response_queue = Thread::Queue.new</div><div class='ctx'>       @func = func</div><div class='ctx'>       @size = size</div><div class='ctx'>       @threads = nil</div><div class='del'>-      SharedHelpers.trap("INT") { abort_threads }</div><div class='add'>+      @previous_interrupt_handler = nil</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Enqueue a request to be executed in the worker pool</div><div class='hunk'>@@ -50,7 +48,7 @@ module Bundler</div><div class='ctx'>       stop_threads</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-  private</div><div class='add'>+    private</div><div class='ctx'> </div><div class='ctx'>     def process_queue(i)</div><div class='ctx'>       loop do</div><div class='hunk'>@@ -62,7 +60,7 @@ module Bundler</div><div class='ctx'> </div><div class='ctx'>     def apply_func(obj, i)</div><div class='ctx'>       @func.call(obj, i)</div><div class='del'>-    rescue Exception =&gt; e</div><div class='add'>+    rescue Exception =&gt; e # rubocop:disable Lint/RescueException</div><div class='ctx'>       WrappedException.new(e)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -70,13 +68,16 @@ module Bundler</div><div class='ctx'>     # so as worker threads after retrieving it, shut themselves down</div><div class='ctx'>     def stop_threads</div><div class='ctx'>       return unless @threads</div><div class='add'>+</div><div class='ctx'>       @threads.each { @request_queue.enq POISON }</div><div class='ctx'>       @threads.each(&amp;:join)</div><div class='add'>+</div><div class='add'>+      remove_interrupt_handler</div><div class='add'>+</div><div class='ctx'>       @threads = nil</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def abort_threads</div><div class='del'>-      return unless @threads</div><div class='ctx'>       Bundler.ui.debug("\n#{caller.join("\n")}")</div><div class='ctx'>       @threads.each(&amp;:exit)</div><div class='ctx'>       exit 1</div><div class='hunk'>@@ -86,21 +87,31 @@ module Bundler</div><div class='ctx'>       creation_errors = []</div><div class='ctx'> </div><div class='ctx'>       @threads = Array.new(@size) do |i|</div><div class='del'>-        begin</div><div class='del'>-          Thread.start { process_queue(i) }.tap do |thread|</div><div class='del'>-            thread.name = "#{name} Worker ##{i}" if thread.respond_to?(:name=)</div><div class='del'>-          end</div><div class='del'>-        rescue ThreadError =&gt; e</div><div class='del'>-          creation_errors &lt;&lt; e</div><div class='del'>-          nil</div><div class='add'>+        Thread.start { process_queue(i) }.tap do |thread|</div><div class='add'>+          thread.name = "#{name} Worker ##{i}" if thread.respond_to?(:name=)</div><div class='ctx'>         end</div><div class='add'>+      rescue ThreadError =&gt; e</div><div class='add'>+        creation_errors &lt;&lt; e</div><div class='add'>+        nil</div><div class='ctx'>       end.compact</div><div class='ctx'> </div><div class='add'>+      add_interrupt_handler unless @threads.empty?</div><div class='add'>+</div><div class='ctx'>       return if creation_errors.empty?</div><div class='ctx'> </div><div class='ctx'>       message = "Failed to create threads for the #{name} worker: #{creation_errors.map(&amp;:to_s).uniq.join(", ")}"</div><div class='ctx'>       raise ThreadCreationError, message if @threads.empty?</div><div class='ctx'>       Bundler.ui.info message</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    def add_interrupt_handler</div><div class='add'>+      @previous_interrupt_handler = trap("INT") { abort_threads }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def remove_interrupt_handler</div><div class='add'>+      return unless @previous_interrupt_handler</div><div class='add'>+</div><div class='add'>+      trap "INT", @previous_interrupt_handler</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/bundler/yaml_serializer.rb b/lib/bundler/yaml_serializer.rb<br/>index 0fd81c40ef..d5ecbd4aef 100644<br/>--- a/<a href='/ruby.git/tree/lib/bundler/yaml_serializer.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/bundler/yaml_serializer.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/bundler/yaml_serializer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/bundler/yaml_serializer.rb</a></div><div class='hunk'>@@ -3,7 +3,7 @@</div><div class='ctx'> module Bundler</div><div class='ctx'>   # A stub yaml serializer that can handle only hashes and strings (as of now).</div><div class='ctx'>   module YAMLSerializer</div><div class='del'>-  module_function</div><div class='add'>+    module_function</div><div class='ctx'> </div><div class='ctx'>     def dump(hash)</div><div class='ctx'>       yaml = String.new("---")</div><div class='hunk'>@@ -32,7 +32,7 @@ module Bundler</div><div class='ctx'>       (.*) # value</div><div class='ctx'>       \1 # matching closing quote</div><div class='ctx'>       $</div><div class='del'>-    /xo</div><div class='add'>+    /xo.freeze</div><div class='ctx'> </div><div class='ctx'>     HASH_REGEX = /</div><div class='ctx'>       ^</div><div class='hunk'>@@ -40,12 +40,11 @@ module Bundler</div><div class='ctx'>       (.+) # key</div><div class='ctx'>       (?::(?=(?:\s|$))) # :  (without the lookahead the #key includes this when : is present in value)</div><div class='ctx'>       [ ]?</div><div class='del'>-      (?: !\s)? # optional exclamation mark found with ruby 1.9.3</div><div class='ctx'>       (['"]?) # optional opening quote</div><div class='ctx'>       (.*) # value</div><div class='ctx'>       \3 # matching closing quote</div><div class='ctx'>       $</div><div class='del'>-    /xo</div><div class='add'>+    /xo.freeze</div><div class='ctx'> </div><div class='ctx'>     def load(str)</div><div class='ctx'>       res = {}</div><div class='head'>diff --git a/lib/cgi.rb b/lib/cgi.rb<br/>index 0f44a929e4..7dc3a64941 100644<br/>--- a/<a href='/ruby.git/tree/lib/cgi.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/cgi.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/cgi.rb</a></div><div class='hunk'>@@ -162,7 +162,7 @@</div><div class='ctx'> #   cgi.has_key?('field_name')</div><div class='ctx'> #   cgi.include?('field_name')</div><div class='ctx'> #</div><div class='del'>-# CAUTION! cgi['field_name'] returned an Array with the old</div><div class='add'>+# CAUTION! &lt;code&gt;cgi['field_name']&lt;/code&gt; returned an Array with the old</div><div class='ctx'> # cgi.rb(included in Ruby 1.6)</div><div class='ctx'> #</div><div class='ctx'> # === Get form values as hash</div><div class='hunk'>@@ -253,7 +253,7 @@</div><div class='ctx'> #           end</div><div class='ctx'> #         end +</div><div class='ctx'> #         cgi.pre do</div><div class='del'>-#           CGI::escapeHTML(</div><div class='add'>+#           CGI.escapeHTML(</div><div class='ctx'> #             "params: #{cgi.params.inspect}\n" +</div><div class='ctx'> #             "cookies: #{cgi.cookies.inspect}\n" +</div><div class='ctx'> #             ENV.collect do |key, value|</div><div class='hunk'>@@ -288,6 +288,7 @@</div><div class='ctx'> #</div><div class='ctx'> </div><div class='ctx'> class CGI</div><div class='add'>+  VERSION = "0.3.7"</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> require 'cgi/core'</div><div class='head'>diff --git a/lib/cgi/cgi.gemspec b/lib/cgi/cgi.gemspec<br/>new file mode 100644<br/>index 0000000000..381c55a5ca<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/cgi/cgi.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/cgi/cgi.gemspec</a></div><div class='hunk'>@@ -0,0 +1,42 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+name = File.basename(__FILE__, ".gemspec")</div><div class='add'>+version = ["lib", Array.new(name.count("-")+1, "..").join("/")].find do |dir|</div><div class='add'>+  break File.foreach(File.join(__dir__, dir, "#{name.tr('-', '/')}.rb")) do |line|</div><div class='add'>+    /^\s*VERSION\s*=\s*"(.*)"/ =~ line and break $1</div><div class='add'>+  end rescue nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = name</div><div class='add'>+  spec.version       = version</div><div class='add'>+  spec.authors       = ["Yukihiro Matsumoto"]</div><div class='add'>+  spec.email         = ["matz@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Support for the Common Gateway Interface protocol.}</div><div class='add'>+  spec.description   = %q{Support for the Common Gateway Interface protocol.}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/cgi"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+  spec.required_ruby_version = "&gt;= 2.5.0"</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  spec.executables   = []</div><div class='add'>+</div><div class='add'>+  spec.files = [</div><div class='add'>+    "LICENSE.txt",</div><div class='add'>+    "README.md",</div><div class='add'>+    *Dir["lib{.rb,/**/*.rb}", "bin/*"]  ]</div><div class='add'>+</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+</div><div class='add'>+  if Gem::Platform === spec.platform and spec.platform =~ 'java' or RUBY_ENGINE == 'jruby'</div><div class='add'>+    spec.platform = 'java'</div><div class='add'>+    spec.require_paths &lt;&lt; "ext/java/org/jruby/ext/cgi/escape/lib"</div><div class='add'>+    spec.files += Dir["ext/java/**/*.{rb}", "lib/cgi/escape.jar"]</div><div class='add'>+  else</div><div class='add'>+    spec.files += Dir["ext/cgi/**/*.{rb,c,h,sh}", "ext/cgi/escape/depend", "lib/cgi/escape.so"]</div><div class='add'>+    spec.extensions    = ["ext/cgi/escape/extconf.rb"]</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/cgi/cookie.rb b/lib/cgi/cookie.rb<br/>index 9a0d41e2b8..1c4ef6a600 100644<br/>--- a/<a href='/ruby.git/tree/lib/cgi/cookie.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/cookie.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/cgi/cookie.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/cgi/cookie.rb</a></div><div class='hunk'>@@ -40,6 +40,10 @@ class CGI</div><div class='ctx'>   class Cookie &lt; Array</div><div class='ctx'>     @@accept_charset="UTF-8" unless defined?(@@accept_charset)</div><div class='ctx'> </div><div class='add'>+    TOKEN_RE = %r"\A[[!-~]&amp;&amp;[^()&lt;&gt;@,;:\\\"/?=\[\]{}]]+\z"</div><div class='add'>+    PATH_VALUE_RE = %r"\A[[ -~]&amp;&amp;[^;]]*\z"</div><div class='add'>+    DOMAIN_VALUE_RE = %r"\A\.?(?&lt;label&gt;(?!-)[-A-Za-z0-9]+(?&lt;!-))(?:\.\g&lt;label&gt;)*\z"</div><div class='add'>+</div><div class='ctx'>     # Create a new CGI::Cookie object.</div><div class='ctx'>     #</div><div class='ctx'>     # :call-seq:</div><div class='hunk'>@@ -57,7 +61,7 @@ class CGI</div><div class='ctx'>     #</div><div class='ctx'>     #   name:: the name of the cookie.  Required.</div><div class='ctx'>     #   value:: the cookie's value or list of values.</div><div class='del'>-    #   path:: the path for which this cookie applies.  Defaults to the</div><div class='add'>+    #   path:: the path for which this cookie applies.  Defaults to</div><div class='ctx'>     #          the value of the +SCRIPT_NAME+ environment variable.</div><div class='ctx'>     #   domain:: the domain for which this cookie applies.</div><div class='ctx'>     #   expires:: the time at which this cookie expires, as a +Time+ object.</div><div class='hunk'>@@ -72,9 +76,8 @@ class CGI</div><div class='ctx'>       @domain = nil</div><div class='ctx'>       @expires = nil</div><div class='ctx'>       if name.kind_of?(String)</div><div class='del'>-        @name = name</div><div class='del'>-        %r|^(.*/)|.match(ENV["SCRIPT_NAME"])</div><div class='del'>-        @path = ($1 or "")</div><div class='add'>+        self.name = name</div><div class='add'>+        self.path = (%r|\A(.*/)| =~ ENV["SCRIPT_NAME"] ? $1 : "")</div><div class='ctx'>         @secure = false</div><div class='ctx'>         @httponly = false</div><div class='ctx'>         return super(value)</div><div class='hunk'>@@ -85,16 +88,11 @@ class CGI</div><div class='ctx'>         raise ArgumentError, "`name' required"</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      @name = options["name"]</div><div class='add'>+      self.name = options["name"]</div><div class='ctx'>       value = Array(options["value"])</div><div class='ctx'>       # simple support for IE</div><div class='del'>-      if options["path"]</div><div class='del'>-        @path = options["path"]</div><div class='del'>-      else</div><div class='del'>-        %r|^(.*/)|.match(ENV["SCRIPT_NAME"])</div><div class='del'>-        @path = ($1 or "")</div><div class='del'>-      end</div><div class='del'>-      @domain = options["domain"]</div><div class='add'>+      self.path = options["path"] || (%r|\A(.*/)| =~ ENV["SCRIPT_NAME"] ? $1 : "")</div><div class='add'>+      self.domain = options["domain"]</div><div class='ctx'>       @expires = options["expires"]</div><div class='ctx'>       @secure = options["secure"] == true</div><div class='ctx'>       @httponly = options["httponly"] == true</div><div class='hunk'>@@ -103,11 +101,35 @@ class CGI</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Name of this cookie, as a +String+</div><div class='del'>-    attr_accessor :name</div><div class='add'>+    attr_reader :name</div><div class='add'>+    # Set name of this cookie</div><div class='add'>+    def name=(str)</div><div class='add'>+      if str and !TOKEN_RE.match?(str)</div><div class='add'>+        raise ArgumentError, "invalid name: #{str.dump}"</div><div class='add'>+      end</div><div class='add'>+      @name = str</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # Path for which this cookie applies, as a +String+</div><div class='del'>-    attr_accessor :path</div><div class='add'>+    attr_reader :path</div><div class='add'>+    # Set path for which this cookie applies</div><div class='add'>+    def path=(str)</div><div class='add'>+      if str and !PATH_VALUE_RE.match?(str)</div><div class='add'>+        raise ArgumentError, "invalid path: #{str.dump}"</div><div class='add'>+      end</div><div class='add'>+      @path = str</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # Domain for which this cookie applies, as a +String+</div><div class='del'>-    attr_accessor :domain</div><div class='add'>+    attr_reader :domain</div><div class='add'>+    # Set domain for which this cookie applies</div><div class='add'>+    def domain=(str)</div><div class='add'>+      if str and ((str = str.b).bytesize &gt; 255 or !DOMAIN_VALUE_RE.match?(str))</div><div class='add'>+        raise ArgumentError, "invalid domain: #{str.dump}"</div><div class='add'>+      end</div><div class='add'>+      @domain = str</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # Time at which this cookie expires, as a +Time+</div><div class='ctx'>     attr_accessor :expires</div><div class='ctx'>     # True if this cookie is secure; false otherwise</div><div class='hunk'>@@ -146,7 +168,7 @@ class CGI</div><div class='ctx'>       buf = "#{@name}=#{val}".dup</div><div class='ctx'>       buf &lt;&lt; "; domain=#{@domain}" if @domain</div><div class='ctx'>       buf &lt;&lt; "; path=#{@path}"     if @path</div><div class='del'>-      buf &lt;&lt; "; expires=#{CGI::rfc1123_date(@expires)}" if @expires</div><div class='add'>+      buf &lt;&lt; "; expires=#{CGI.rfc1123_date(@expires)}" if @expires</div><div class='ctx'>       buf &lt;&lt; "; secure"            if @secure</div><div class='ctx'>       buf &lt;&lt; "; HttpOnly"          if @httponly</div><div class='ctx'>       buf</div><div class='hunk'>@@ -165,13 +187,13 @@ class CGI</div><div class='ctx'>       raw_cookie.split(/;\s?/).each do |pairs|</div><div class='ctx'>         name, values = pairs.split('=',2)</div><div class='ctx'>         next unless name and values</div><div class='del'>-        name = CGI.unescape(name)</div><div class='ctx'>         values ||= ""</div><div class='ctx'>         values = values.split('&amp;').collect{|v| CGI.unescape(v,@@accept_charset) }</div><div class='ctx'>         if cookies.has_key?(name)</div><div class='del'>-          values = cookies[name].value + values</div><div class='add'>+          cookies[name].concat(values)</div><div class='add'>+        else</div><div class='add'>+          cookies[name] = Cookie.new(name, *values)</div><div class='ctx'>         end</div><div class='del'>-        cookies[name] = Cookie.new(name, *values)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       cookies</div><div class='head'>diff --git a/lib/cgi/core.rb b/lib/cgi/core.rb<br/>index c45f9b3a9e..62e606837a 100644<br/>--- a/<a href='/ruby.git/tree/lib/cgi/core.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/core.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/cgi/core.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/cgi/core.rb</a></div><div class='hunk'>@@ -188,17 +188,28 @@ class CGI</div><div class='ctx'>   # Using #header with the HTML5 tag maker will create a &lt;header&gt; element.</div><div class='ctx'>   alias :header :http_header</div><div class='ctx'> </div><div class='add'>+  def _no_crlf_check(str)</div><div class='add'>+    if str</div><div class='add'>+      str = str.to_s</div><div class='add'>+      raise "A HTTP status or header field must not include CR and LF" if str =~ /[\r\n]/</div><div class='add'>+      str</div><div class='add'>+    else</div><div class='add'>+      nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  private :_no_crlf_check</div><div class='add'>+</div><div class='ctx'>   def _header_for_string(content_type) #:nodoc:</div><div class='ctx'>     buf = ''.dup</div><div class='ctx'>     if nph?()</div><div class='del'>-      buf &lt;&lt; "#{$CGI_ENV['SERVER_PROTOCOL'] || 'HTTP/1.0'} 200 OK#{EOL}"</div><div class='add'>+      buf &lt;&lt; "#{_no_crlf_check($CGI_ENV['SERVER_PROTOCOL']) || 'HTTP/1.0'} 200 OK#{EOL}"</div><div class='ctx'>       buf &lt;&lt; "Date: #{CGI.rfc1123_date(Time.now)}#{EOL}"</div><div class='del'>-      buf &lt;&lt; "Server: #{$CGI_ENV['SERVER_SOFTWARE']}#{EOL}"</div><div class='add'>+      buf &lt;&lt; "Server: #{_no_crlf_check($CGI_ENV['SERVER_SOFTWARE'])}#{EOL}"</div><div class='ctx'>       buf &lt;&lt; "Connection: close#{EOL}"</div><div class='ctx'>     end</div><div class='del'>-    buf &lt;&lt; "Content-Type: #{content_type}#{EOL}"</div><div class='add'>+    buf &lt;&lt; "Content-Type: #{_no_crlf_check(content_type)}#{EOL}"</div><div class='ctx'>     if @output_cookies</div><div class='del'>-      @output_cookies.each {|cookie| buf &lt;&lt; "Set-Cookie: #{cookie}#{EOL}" }</div><div class='add'>+      @output_cookies.each {|cookie| buf &lt;&lt; "Set-Cookie: #{_no_crlf_check(cookie)}#{EOL}" }</div><div class='ctx'>     end</div><div class='ctx'>     return buf</div><div class='ctx'>   end # _header_for_string</div><div class='hunk'>@@ -213,9 +224,9 @@ class CGI</div><div class='ctx'>     ## NPH</div><div class='ctx'>     options.delete('nph') if defined?(MOD_RUBY)</div><div class='ctx'>     if options.delete('nph') || nph?()</div><div class='del'>-      protocol = $CGI_ENV['SERVER_PROTOCOL'] || 'HTTP/1.0'</div><div class='add'>+      protocol = _no_crlf_check($CGI_ENV['SERVER_PROTOCOL']) || 'HTTP/1.0'</div><div class='ctx'>       status = options.delete('status')</div><div class='del'>-      status = HTTP_STATUS[status] || status || '200 OK'</div><div class='add'>+      status = HTTP_STATUS[status] || _no_crlf_check(status) || '200 OK'</div><div class='ctx'>       buf &lt;&lt; "#{protocol} #{status}#{EOL}"</div><div class='ctx'>       buf &lt;&lt; "Date: #{CGI.rfc1123_date(Time.now)}#{EOL}"</div><div class='ctx'>       options['server'] ||= $CGI_ENV['SERVER_SOFTWARE'] || ''</div><div class='hunk'>@@ -223,45 +234,45 @@ class CGI</div><div class='ctx'>     end</div><div class='ctx'>     ## common headers</div><div class='ctx'>     status = options.delete('status')</div><div class='del'>-    buf &lt;&lt; "Status: #{HTTP_STATUS[status] || status}#{EOL}" if status</div><div class='add'>+    buf &lt;&lt; "Status: #{HTTP_STATUS[status] || _no_crlf_check(status)}#{EOL}" if status</div><div class='ctx'>     server = options.delete('server')</div><div class='del'>-    buf &lt;&lt; "Server: #{server}#{EOL}" if server</div><div class='add'>+    buf &lt;&lt; "Server: #{_no_crlf_check(server)}#{EOL}" if server</div><div class='ctx'>     connection = options.delete('connection')</div><div class='del'>-    buf &lt;&lt; "Connection: #{connection}#{EOL}" if connection</div><div class='add'>+    buf &lt;&lt; "Connection: #{_no_crlf_check(connection)}#{EOL}" if connection</div><div class='ctx'>     type = options.delete('type')</div><div class='del'>-    buf &lt;&lt; "Content-Type: #{type}#{EOL}" #if type</div><div class='add'>+    buf &lt;&lt; "Content-Type: #{_no_crlf_check(type)}#{EOL}" #if type</div><div class='ctx'>     length = options.delete('length')</div><div class='del'>-    buf &lt;&lt; "Content-Length: #{length}#{EOL}" if length</div><div class='add'>+    buf &lt;&lt; "Content-Length: #{_no_crlf_check(length)}#{EOL}" if length</div><div class='ctx'>     language = options.delete('language')</div><div class='del'>-    buf &lt;&lt; "Content-Language: #{language}#{EOL}" if language</div><div class='add'>+    buf &lt;&lt; "Content-Language: #{_no_crlf_check(language)}#{EOL}" if language</div><div class='ctx'>     expires = options.delete('expires')</div><div class='ctx'>     buf &lt;&lt; "Expires: #{CGI.rfc1123_date(expires)}#{EOL}" if expires</div><div class='ctx'>     ## cookie</div><div class='ctx'>     if cookie = options.delete('cookie')</div><div class='ctx'>       case cookie</div><div class='ctx'>       when String, Cookie</div><div class='del'>-        buf &lt;&lt; "Set-Cookie: #{cookie}#{EOL}"</div><div class='add'>+        buf &lt;&lt; "Set-Cookie: #{_no_crlf_check(cookie)}#{EOL}"</div><div class='ctx'>       when Array</div><div class='ctx'>         arr = cookie</div><div class='del'>-        arr.each {|c| buf &lt;&lt; "Set-Cookie: #{c}#{EOL}" }</div><div class='add'>+        arr.each {|c| buf &lt;&lt; "Set-Cookie: #{_no_crlf_check(c)}#{EOL}" }</div><div class='ctx'>       when Hash</div><div class='ctx'>         hash = cookie</div><div class='del'>-        hash.each_value {|c| buf &lt;&lt; "Set-Cookie: #{c}#{EOL}" }</div><div class='add'>+        hash.each_value {|c| buf &lt;&lt; "Set-Cookie: #{_no_crlf_check(c)}#{EOL}" }</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>     if @output_cookies</div><div class='del'>-      @output_cookies.each {|c| buf &lt;&lt; "Set-Cookie: #{c}#{EOL}" }</div><div class='add'>+      @output_cookies.each {|c| buf &lt;&lt; "Set-Cookie: #{_no_crlf_check(c)}#{EOL}" }</div><div class='ctx'>     end</div><div class='ctx'>     ## other headers</div><div class='ctx'>     options.each do |key, value|</div><div class='del'>-      buf &lt;&lt; "#{key}: #{value}#{EOL}"</div><div class='add'>+      buf &lt;&lt; "#{_no_crlf_check(key)}: #{_no_crlf_check(value)}#{EOL}"</div><div class='ctx'>     end</div><div class='ctx'>     return buf</div><div class='ctx'>   end # _header_for_hash</div><div class='ctx'>   private :_header_for_hash</div><div class='ctx'> </div><div class='ctx'>   def nph?  #:nodoc:</div><div class='del'>-    return /IIS\/(\d+)/.match($CGI_ENV['SERVER_SOFTWARE']) &amp;&amp; $1.to_i &lt; 5</div><div class='add'>+    return /IIS\/(\d+)/ =~ $CGI_ENV['SERVER_SOFTWARE'] &amp;&amp; $1.to_i &lt; 5</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def _header_for_modruby(buf)  #:nodoc:</div><div class='hunk'>@@ -375,14 +386,14 @@ class CGI</div><div class='ctx'> </div><div class='ctx'>   # Parse an HTTP query string into a hash of key=&gt;value pairs.</div><div class='ctx'>   #</div><div class='del'>-  #   params = CGI::parse("query_string")</div><div class='add'>+  #   params = CGI.parse("query_string")</div><div class='ctx'>   #     # {"name1" =&gt; ["value1", "value2", ...],</div><div class='ctx'>   #     #  "name2" =&gt; ["value1", "value2", ...], ... }</div><div class='ctx'>   #</div><div class='del'>-  def CGI::parse(query)</div><div class='add'>+  def self.parse(query)</div><div class='ctx'>     params = {}</div><div class='ctx'>     query.split(/[&amp;;]/).each do |pairs|</div><div class='del'>-      key, value = pairs.split('=',2).collect{|v| CGI::unescape(v) }</div><div class='add'>+      key, value = pairs.split('=',2).collect{|v| CGI.unescape(v) }</div><div class='ctx'> </div><div class='ctx'>       next unless key</div><div class='ctx'> </div><div class='hunk'>@@ -544,11 +555,11 @@ class CGI</div><div class='ctx'>         /Content-Disposition:.* filename=(?:"(.*?)"|([^;\r\n]*))/i.match(head)</div><div class='ctx'>         filename = $1 || $2 || ''.dup</div><div class='ctx'>         filename = CGI.unescape(filename) if unescape_filename?()</div><div class='del'>-        body.instance_variable_set(:@original_filename, filename.taint)</div><div class='add'>+        body.instance_variable_set(:@original_filename, filename)</div><div class='ctx'>         ## content type</div><div class='ctx'>         /Content-Type: (.*)/i.match(head)</div><div class='ctx'>         (content_type = $1 || ''.dup).chomp!</div><div class='del'>-        body.instance_variable_set(:@content_type, content_type.taint)</div><div class='add'>+        body.instance_variable_set(:@content_type, content_type)</div><div class='ctx'>         ## query parameter name</div><div class='ctx'>         /Content-Disposition:.* name=(?:"(.*?)"|([^;\r\n]*))/i.match(head)</div><div class='ctx'>         name = $1 || $2 || ''</div><div class='hunk'>@@ -607,6 +618,7 @@ class CGI</div><div class='ctx'>     end</div><div class='ctx'>     def unescape_filename?  #:nodoc:</div><div class='ctx'>       user_agent = $CGI_ENV['HTTP_USER_AGENT']</div><div class='add'>+      return false unless user_agent</div><div class='ctx'>       return /Mac/i.match(user_agent) &amp;&amp; /Mozilla/i.match(user_agent) &amp;&amp; !/MSIE/i.match(user_agent)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -648,7 +660,7 @@ class CGI</div><div class='ctx'>     # Reads query parameters in the @params field, and cookies into @cookies.</div><div class='ctx'>     def initialize_query()</div><div class='ctx'>       if ("POST" == env_table['REQUEST_METHOD']) and</div><div class='del'>-        %r|\Amultipart/form-data.*boundary=\"?([^\";,]+)\"?|.match(env_table['CONTENT_TYPE'])</div><div class='add'>+        %r|\Amultipart/form-data.*boundary=\"?([^\";,]+)\"?| =~ env_table['CONTENT_TYPE']</div><div class='ctx'>         current_max_multipart_length = @max_multipart_length.respond_to?(:call) ? @max_multipart_length.call : @max_multipart_length</div><div class='ctx'>         raise StandardError.new("too large multipart data.") if env_table['CONTENT_LENGTH'].to_i &gt; current_max_multipart_length</div><div class='ctx'>         boundary = $1.dup</div><div class='hunk'>@@ -656,7 +668,7 @@ class CGI</div><div class='ctx'>         @params = read_multipart(boundary, Integer(env_table['CONTENT_LENGTH']))</div><div class='ctx'>       else</div><div class='ctx'>         @multipart = false</div><div class='del'>-        @params = CGI::parse(</div><div class='add'>+        @params = CGI.parse(</div><div class='ctx'>                     case env_table['REQUEST_METHOD']</div><div class='ctx'>                     when "GET", "HEAD"</div><div class='ctx'>                       if defined?(MOD_RUBY)</div><div class='hunk'>@@ -686,7 +698,7 @@ class CGI</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      @cookies = CGI::Cookie::parse((env_table['HTTP_COOKIE'] or env_table['COOKIE']))</div><div class='add'>+      @cookies = CGI::Cookie.parse((env_table['HTTP_COOKIE'] or env_table['COOKIE']))</div><div class='ctx'>     end</div><div class='ctx'>     private :initialize_query</div><div class='ctx'> </div><div class='head'>diff --git a/lib/cgi/html.rb b/lib/cgi/html.rb<br/>index 02d847ebd3..1543943320 100644<br/>--- a/<a href='/ruby.git/tree/lib/cgi/html.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/html.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/cgi/html.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/cgi/html.rb</a></div><div class='hunk'>@@ -30,10 +30,10 @@ class CGI</div><div class='ctx'>       attributes.each do|name, value|</div><div class='ctx'>         next unless value</div><div class='ctx'>         s &lt;&lt; " "</div><div class='del'>-        s &lt;&lt; CGI::escapeHTML(name.to_s)</div><div class='add'>+        s &lt;&lt; CGI.escapeHTML(name.to_s)</div><div class='ctx'>         if value != true</div><div class='ctx'>           s &lt;&lt; '="'</div><div class='del'>-          s &lt;&lt; CGI::escapeHTML(value.to_s)</div><div class='add'>+          s &lt;&lt; CGI.escapeHTML(value.to_s)</div><div class='ctx'>           s &lt;&lt; '"'</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='hunk'>@@ -423,7 +423,7 @@ class CGI</div><div class='ctx'>       buf &lt;&lt; super(attributes)</div><div class='ctx'> </div><div class='ctx'>       if pretty</div><div class='del'>-        CGI::pretty(buf, pretty)</div><div class='add'>+        CGI.pretty(buf, pretty)</div><div class='ctx'>       else</div><div class='ctx'>         buf</div><div class='ctx'>       end</div><div class='head'>diff --git a/lib/cgi/session.rb b/lib/cgi/session.rb<br/>index 5afc7e69aa..70c7ebca42 100644<br/>--- a/<a href='/ruby.git/tree/lib/cgi/session.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/session.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/cgi/session.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/cgi/session.rb</a></div><div class='hunk'>@@ -189,6 +189,47 @@ class CGI</div><div class='ctx'>     end</div><div class='ctx'>     private :create_new_id</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+    # Create a new file to store the session data.</div><div class='add'>+    #</div><div class='add'>+    # This file will be created if it does not exist, or opened if it</div><div class='add'>+    # does.</div><div class='add'>+    #</div><div class='add'>+    # This path is generated under _tmpdir_ from _prefix_, the</div><div class='add'>+    # digested session id, and _suffix_.</div><div class='add'>+    #</div><div class='add'>+    # +option+ is a hash of options for the initializer.  The</div><div class='add'>+    # following options are recognised:</div><div class='add'>+    #</div><div class='add'>+    # tmpdir:: the directory to use for storing the FileStore</div><div class='add'>+    #          file.  Defaults to Dir::tmpdir (generally "/tmp"</div><div class='add'>+    #          on Unix systems).</div><div class='add'>+    # prefix:: the prefix to add to the session id when generating</div><div class='add'>+    #          the filename for this session's FileStore file.</div><div class='add'>+    #          Defaults to "cgi_sid_".</div><div class='add'>+    # suffix:: the prefix to add to the session id when generating</div><div class='add'>+    #          the filename for this session's FileStore file.</div><div class='add'>+    #          Defaults to the empty string.</div><div class='add'>+    def new_store_file(option={}) # :nodoc:</div><div class='add'>+      dir = option['tmpdir'] || Dir::tmpdir</div><div class='add'>+      prefix = option['prefix']</div><div class='add'>+      suffix = option['suffix']</div><div class='add'>+      require 'digest/md5'</div><div class='add'>+      md5 = Digest::MD5.hexdigest(session_id)[0,16]</div><div class='add'>+      path = dir+"/"</div><div class='add'>+      path &lt;&lt; prefix if prefix</div><div class='add'>+      path &lt;&lt; md5</div><div class='add'>+      path &lt;&lt; suffix if suffix</div><div class='add'>+      if File::exist? path</div><div class='add'>+        hash = nil</div><div class='add'>+      elsif new_session</div><div class='add'>+        hash = {}</div><div class='add'>+      else</div><div class='add'>+        raise NoSession, "uninitialized session"</div><div class='add'>+      end</div><div class='add'>+      return path, hash</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # Create a new CGI::Session object for +request+.</div><div class='ctx'>     #</div><div class='ctx'>     # +request+ is an instance of the +CGI+ class (see cgi.rb).</div><div class='hunk'>@@ -373,21 +414,8 @@ class CGI</div><div class='ctx'>       # This session's FileStore file will be created if it does</div><div class='ctx'>       # not exist, or opened if it does.</div><div class='ctx'>       def initialize(session, option={})</div><div class='del'>-        dir = option['tmpdir'] || Dir::tmpdir</div><div class='del'>-        prefix = option['prefix'] || 'cgi_sid_'</div><div class='del'>-        suffix = option['suffix'] || ''</div><div class='del'>-        id = session.session_id</div><div class='del'>-        require 'digest/md5'</div><div class='del'>-        md5 = Digest::MD5.hexdigest(id)[0,16]</div><div class='del'>-        @path = dir+"/"+prefix+md5+suffix</div><div class='del'>-        if File::exist? @path</div><div class='del'>-          @hash = nil</div><div class='del'>-        else</div><div class='del'>-          unless session.new_session</div><div class='del'>-            raise CGI::Session::NoSession, "uninitialized session"</div><div class='del'>-          end</div><div class='del'>-          @hash = {}</div><div class='del'>-        end</div><div class='add'>+        option = {'prefix' =&gt; 'cgi_sid_'}.update(option)</div><div class='add'>+        @path, @hash = session.new_store_file(option)</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Restore session state from the session's FileStore file.</div><div class='hunk'>@@ -403,7 +431,7 @@ class CGI</div><div class='ctx'>             for line in f</div><div class='ctx'>               line.chomp!</div><div class='ctx'>               k, v = line.split('=',2)</div><div class='del'>-              @hash[CGI::unescape(k)] = Marshal.restore(CGI::unescape(v))</div><div class='add'>+              @hash[CGI.unescape(k)] = Marshal.restore(CGI.unescape(v))</div><div class='ctx'>             end</div><div class='ctx'>           ensure</div><div class='ctx'>             f&amp;.close</div><div class='hunk'>@@ -421,7 +449,7 @@ class CGI</div><div class='ctx'>           lockf.flock File::LOCK_EX</div><div class='ctx'>           f = File.open(@path+".new", File::CREAT|File::TRUNC|File::WRONLY, 0600)</div><div class='ctx'>           for k,v in @hash</div><div class='del'>-            f.printf "%s=%s\n", CGI::escape(k), CGI::escape(String(Marshal.dump(v)))</div><div class='add'>+            f.printf "%s=%s\n", CGI.escape(k), CGI.escape(String(Marshal.dump(v)))</div><div class='ctx'>           end</div><div class='ctx'>           f.close</div><div class='ctx'>           File.rename @path+".new", @path</div><div class='head'>diff --git a/lib/cgi/session/pstore.rb b/lib/cgi/session/pstore.rb<br/>index 5a6e25d137..45d0d8ae2c 100644<br/>--- a/<a href='/ruby.git/tree/lib/cgi/session/pstore.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/session/pstore.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/cgi/session/pstore.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/cgi/session/pstore.rb</a></div><div class='hunk'>@@ -44,21 +44,8 @@ class CGI</div><div class='ctx'>       # This session's PStore file will be created if it does</div><div class='ctx'>       # not exist, or opened if it does.</div><div class='ctx'>       def initialize(session, option={})</div><div class='del'>-        dir = option['tmpdir'] || Dir::tmpdir</div><div class='del'>-        prefix = option['prefix'] || ''</div><div class='del'>-        id = session.session_id</div><div class='del'>-        require 'digest/md5'</div><div class='del'>-        md5 = Digest::MD5.hexdigest(id)[0,16]</div><div class='del'>-        path = dir+"/"+prefix+md5</div><div class='del'>-        path.untaint</div><div class='del'>-        if File::exist?(path)</div><div class='del'>-          @hash = nil</div><div class='del'>-        else</div><div class='del'>-          unless session.new_session</div><div class='del'>-            raise CGI::Session::NoSession, "uninitialized session"</div><div class='del'>-          end</div><div class='del'>-          @hash = {}</div><div class='del'>-        end</div><div class='add'>+        option = {'suffix'=&gt;''}.update(option)</div><div class='add'>+        path, @hash = session.new_store_file(option)</div><div class='ctx'>         @p = ::PStore.new(path)</div><div class='ctx'>         @p.transaction do |p|</div><div class='ctx'>           File.chmod(0600, p.path)</div><div class='head'>diff --git a/lib/cgi/util.rb b/lib/cgi/util.rb<br/>index 464115262f..ce77a0ccd5 100644<br/>--- a/<a href='/ruby.git/tree/lib/cgi/util.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cgi/util.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/cgi/util.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/cgi/util.rb</a></div><div class='hunk'>@@ -5,24 +5,57 @@ class CGI</div><div class='ctx'>   extend Util</div><div class='ctx'> end</div><div class='ctx'> module CGI::Util</div><div class='del'>-  @@accept_charset="UTF-8" unless defined?(@@accept_charset)</div><div class='del'>-  # URL-encode a string.</div><div class='del'>-  #   url_encoded_string = CGI::escape("'Stop!' said Fred")</div><div class='add'>+  @@accept_charset = Encoding::UTF_8 unless defined?(@@accept_charset)</div><div class='add'>+</div><div class='add'>+  # URL-encode a string into application/x-www-form-urlencoded.</div><div class='add'>+  # Space characters (+" "+) are encoded with plus signs (+"+"+)</div><div class='add'>+  #   url_encoded_string = CGI.escape("'Stop!' said Fred")</div><div class='ctx'>   #      # =&gt; "%27Stop%21%27+said+Fred"</div><div class='ctx'>   def escape(string)</div><div class='ctx'>     encoding = string.encoding</div><div class='del'>-    string.b.gsub(/([^ a-zA-Z0-9_.\-~]+)/) do |m|</div><div class='add'>+    buffer = string.b</div><div class='add'>+    buffer.gsub!(/([^ a-zA-Z0-9_.\-~]+)/) do |m|</div><div class='ctx'>       '%' + m.unpack('H2' * m.bytesize).join('%').upcase</div><div class='del'>-    end.tr(' ', '+').force_encoding(encoding)</div><div class='add'>+    end</div><div class='add'>+    buffer.tr!(' ', '+')</div><div class='add'>+    buffer.force_encoding(encoding)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # URL-decode a string with encoding(optional).</div><div class='del'>-  #   string = CGI::unescape("%27Stop%21%27+said+Fred")</div><div class='add'>+  # URL-decode an application/x-www-form-urlencoded string with encoding(optional).</div><div class='add'>+  #   string = CGI.unescape("%27Stop%21%27+said+Fred")</div><div class='ctx'>   #      # =&gt; "'Stop!' said Fred"</div><div class='del'>-  def unescape(string,encoding=@@accept_charset)</div><div class='del'>-    str=string.tr('+', ' ').b.gsub(/((?:%[0-9a-fA-F]{2})+)/) do |m|</div><div class='add'>+  def unescape(string, encoding = @@accept_charset)</div><div class='add'>+    str = string.tr('+', ' ')</div><div class='add'>+    str = str.b</div><div class='add'>+    str.gsub!(/((?:%[0-9a-fA-F]{2})+)/) do |m|</div><div class='add'>+      [m.delete('%')].pack('H*')</div><div class='add'>+    end</div><div class='add'>+    str.force_encoding(encoding)</div><div class='add'>+    str.valid_encoding? ? str : str.force_encoding(string.encoding)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # URL-encode a string following RFC 3986</div><div class='add'>+  # Space characters (+" "+) are encoded with (+"%20"+)</div><div class='add'>+  #   url_encoded_string = CGI.escape("'Stop!' said Fred")</div><div class='add'>+  #      # =&gt; "%27Stop%21%27%20said%20Fred"</div><div class='add'>+  def escapeURIComponent(string)</div><div class='add'>+    encoding = string.encoding</div><div class='add'>+    buffer = string.b</div><div class='add'>+    buffer.gsub!(/([^a-zA-Z0-9_.\-~]+)/) do |m|</div><div class='add'>+      '%' + m.unpack('H2' * m.bytesize).join('%').upcase</div><div class='add'>+    end</div><div class='add'>+    buffer.force_encoding(encoding)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # URL-decode a string following RFC 3986 with encoding(optional).</div><div class='add'>+  #   string = CGI.unescape("%27Stop%21%27+said%20Fred")</div><div class='add'>+  #      # =&gt; "'Stop!'+said Fred"</div><div class='add'>+  def unescapeURIComponent(string, encoding = @@accept_charset)</div><div class='add'>+    str = string.b</div><div class='add'>+    str.gsub!(/((?:%[0-9a-fA-F]{2})+)/) do |m|</div><div class='ctx'>       [m.delete('%')].pack('H*')</div><div class='del'>-    end.force_encoding(encoding)</div><div class='add'>+    end</div><div class='add'>+    str.force_encoding(encoding)</div><div class='ctx'>     str.valid_encoding? ? str : str.force_encoding(string.encoding)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -36,7 +69,7 @@ module CGI::Util</div><div class='ctx'>   }</div><div class='ctx'> </div><div class='ctx'>   # Escape special characters in HTML, namely '&amp;\"&lt;&gt;</div><div class='del'>-  #   CGI::escapeHTML('Usage: foo "bar" &lt;baz&gt;')</div><div class='add'>+  #   CGI.escapeHTML('Usage: foo "bar" &lt;baz&gt;')</div><div class='ctx'>   #      # =&gt; "Usage: foo &amp;quot;bar&amp;quot; &amp;lt;baz&amp;gt;"</div><div class='ctx'>   def escapeHTML(string)</div><div class='ctx'>     enc = string.encoding</div><div class='hunk'>@@ -49,9 +82,12 @@ module CGI::Util</div><div class='ctx'>       table = Hash[TABLE_FOR_ESCAPE_HTML__.map {|pair|pair.map {|s|s.encode(enc)}}]</div><div class='ctx'>       string = string.gsub(/#{"['&amp;\"&lt;&gt;]".encode(enc)}/, table)</div><div class='ctx'>       string.encode!(origenc) if origenc</div><div class='del'>-      return string</div><div class='add'>+      string</div><div class='add'>+    else</div><div class='add'>+      string = string.b</div><div class='add'>+      string.gsub!(/['&amp;\"&lt;&gt;]/, TABLE_FOR_ESCAPE_HTML__)</div><div class='add'>+      string.force_encoding(enc)</div><div class='ctx'>     end</div><div class='del'>-    string.gsub(/['&amp;\"&lt;&gt;]/, TABLE_FOR_ESCAPE_HTML__)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   begin</div><div class='hunk'>@@ -60,7 +96,7 @@ module CGI::Util</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Unescape a string that has been HTML-escaped</div><div class='del'>-  #   CGI::unescapeHTML("Usage: foo &amp;quot;bar&amp;quot; &amp;lt;baz&amp;gt;")</div><div class='add'>+  #   CGI.unescapeHTML("Usage: foo &amp;quot;bar&amp;quot; &amp;lt;baz&amp;gt;")</div><div class='ctx'>   #      # =&gt; "Usage: foo \"bar\" &lt;baz&gt;"</div><div class='ctx'>   def unescapeHTML(string)</div><div class='ctx'>     enc = string.encoding</div><div class='hunk'>@@ -90,7 +126,8 @@ module CGI::Util</div><div class='ctx'>                 when Encoding::ISO_8859_1; 256</div><div class='ctx'>                 else 128</div><div class='ctx'>                 end</div><div class='del'>-    string.gsub(/&amp;(apos|amp|quot|gt|lt|\#[0-9]+|\#[xX][0-9A-Fa-f]+);/) do</div><div class='add'>+    string = string.b</div><div class='add'>+    string.gsub!(/&amp;(apos|amp|quot|gt|lt|\#[0-9]+|\#[xX][0-9A-Fa-f]+);/) do</div><div class='ctx'>       match = $1.dup</div><div class='ctx'>       case match</div><div class='ctx'>       when 'apos'                then "'"</div><div class='hunk'>@@ -116,12 +153,13 @@ module CGI::Util</div><div class='ctx'>         "&amp;#{match};"</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='add'>+    string.force_encoding enc</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Synonym for CGI::escapeHTML(str)</div><div class='add'>+  # Synonym for CGI.escapeHTML(str)</div><div class='ctx'>   alias escape_html escapeHTML</div><div class='ctx'> </div><div class='del'>-  # Synonym for CGI::unescapeHTML(str)</div><div class='add'>+  # Synonym for CGI.unescapeHTML(str)</div><div class='ctx'>   alias unescape_html unescapeHTML</div><div class='ctx'> </div><div class='ctx'>   # Escape only the tags of certain HTML elements in +string+.</div><div class='hunk'>@@ -132,35 +170,35 @@ module CGI::Util</div><div class='ctx'>   # The attribute list of the open tag will also be escaped (for</div><div class='ctx'>   # instance, the double-quotes surrounding attribute values).</div><div class='ctx'>   #</div><div class='del'>-  #   print CGI::escapeElement('&lt;BR&gt;&lt;A HREF="url"&gt;&lt;/A&gt;', "A", "IMG")</div><div class='add'>+  #   print CGI.escapeElement('&lt;BR&gt;&lt;A HREF="url"&gt;&lt;/A&gt;', "A", "IMG")</div><div class='ctx'>   #     # "&lt;BR&gt;&amp;lt;A HREF=&amp;quot;url&amp;quot;&amp;gt;&amp;lt;/A&amp;gt"</div><div class='ctx'>   #</div><div class='del'>-  #   print CGI::escapeElement('&lt;BR&gt;&lt;A HREF="url"&gt;&lt;/A&gt;', ["A", "IMG"])</div><div class='add'>+  #   print CGI.escapeElement('&lt;BR&gt;&lt;A HREF="url"&gt;&lt;/A&gt;', ["A", "IMG"])</div><div class='ctx'>   #     # "&lt;BR&gt;&amp;lt;A HREF=&amp;quot;url&amp;quot;&amp;gt;&amp;lt;/A&amp;gt"</div><div class='ctx'>   def escapeElement(string, *elements)</div><div class='ctx'>     elements = elements[0] if elements[0].kind_of?(Array)</div><div class='ctx'>     unless elements.empty?</div><div class='del'>-      string.gsub(/&lt;\/?(?:#{elements.join("|")})(?!\w)(?:.|\n)*?&gt;/i) do</div><div class='del'>-        CGI::escapeHTML($&amp;)</div><div class='add'>+      string.gsub(/&lt;\/?(?:#{elements.join("|")})\b[^&lt;&gt;]*+&gt;?/im) do</div><div class='add'>+        CGI.escapeHTML($&amp;)</div><div class='ctx'>       end</div><div class='ctx'>     else</div><div class='ctx'>       string</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Undo escaping such as that done by CGI::escapeElement()</div><div class='add'>+  # Undo escaping such as that done by CGI.escapeElement()</div><div class='ctx'>   #</div><div class='del'>-  #   print CGI::unescapeElement(</div><div class='del'>-  #           CGI::escapeHTML('&lt;BR&gt;&lt;A HREF="url"&gt;&lt;/A&gt;'), "A", "IMG")</div><div class='add'>+  #   print CGI.unescapeElement(</div><div class='add'>+  #           CGI.escapeHTML('&lt;BR&gt;&lt;A HREF="url"&gt;&lt;/A&gt;'), "A", "IMG")</div><div class='ctx'>   #     # "&amp;lt;BR&amp;gt;&lt;A HREF="url"&gt;&lt;/A&gt;"</div><div class='ctx'>   #</div><div class='del'>-  #   print CGI::unescapeElement(</div><div class='del'>-  #           CGI::escapeHTML('&lt;BR&gt;&lt;A HREF="url"&gt;&lt;/A&gt;'), ["A", "IMG"])</div><div class='add'>+  #   print CGI.unescapeElement(</div><div class='add'>+  #           CGI.escapeHTML('&lt;BR&gt;&lt;A HREF="url"&gt;&lt;/A&gt;'), ["A", "IMG"])</div><div class='ctx'>   #     # "&amp;lt;BR&amp;gt;&lt;A HREF="url"&gt;&lt;/A&gt;"</div><div class='ctx'>   def unescapeElement(string, *elements)</div><div class='ctx'>     elements = elements[0] if elements[0].kind_of?(Array)</div><div class='ctx'>     unless elements.empty?</div><div class='del'>-      string.gsub(/&amp;lt;\/?(?:#{elements.join("|")})(?!\w)(?:.|\n)*?&amp;gt;/i) do</div><div class='add'>+      string.gsub(/&amp;lt;\/?(?:#{elements.join("|")})\b(?&gt;[^&amp;]+|&amp;(?![gl]t;)\w+;)*(?:&amp;gt;)?/im) do</div><div class='ctx'>         unescapeHTML($&amp;)</div><div class='ctx'>       end</div><div class='ctx'>     else</div><div class='hunk'>@@ -168,27 +206,18 @@ module CGI::Util</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Synonym for CGI::escapeElement(str)</div><div class='add'>+  # Synonym for CGI.escapeElement(str)</div><div class='ctx'>   alias escape_element escapeElement</div><div class='ctx'> </div><div class='del'>-  # Synonym for CGI::unescapeElement(str)</div><div class='add'>+  # Synonym for CGI.unescapeElement(str)</div><div class='ctx'>   alias unescape_element unescapeElement</div><div class='ctx'> </div><div class='del'>-  # Abbreviated day-of-week names specified by RFC 822</div><div class='del'>-  RFC822_DAYS = %w[ Sun Mon Tue Wed Thu Fri Sat ]</div><div class='del'>-</div><div class='del'>-  # Abbreviated month names specified by RFC 822</div><div class='del'>-  RFC822_MONTHS = %w[ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ]</div><div class='del'>-</div><div class='ctx'>   # Format a +Time+ object as a String using the format specified by RFC 1123.</div><div class='ctx'>   #</div><div class='del'>-  #   CGI::rfc1123_date(Time.now)</div><div class='add'>+  #   CGI.rfc1123_date(Time.now)</div><div class='ctx'>   #     # Sat, 01 Jan 2000 00:00:00 GMT</div><div class='ctx'>   def rfc1123_date(time)</div><div class='del'>-    t = time.clone.gmtime</div><div class='del'>-    return format("%s, %.2d %s %.4d %.2d:%.2d:%.2d GMT",</div><div class='del'>-                  RFC822_DAYS[t.wday], t.day, RFC822_MONTHS[t.month-1], t.year,</div><div class='del'>-                  t.hour, t.min, t.sec)</div><div class='add'>+    time.getgm.strftime("%a, %d %b %Y %T GMT")</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Prettify (indent) an HTML string.</div><div class='hunk'>@@ -196,13 +225,13 @@ module CGI::Util</div><div class='ctx'>   # +string+ is the HTML string to indent.  +shift+ is the indentation</div><div class='ctx'>   # unit to use; it defaults to two spaces.</div><div class='ctx'>   #</div><div class='del'>-  #   print CGI::pretty("&lt;HTML&gt;&lt;BODY&gt;&lt;/BODY&gt;&lt;/HTML&gt;")</div><div class='add'>+  #   print CGI.pretty("&lt;HTML&gt;&lt;BODY&gt;&lt;/BODY&gt;&lt;/HTML&gt;")</div><div class='ctx'>   #     # &lt;HTML&gt;</div><div class='ctx'>   #     #   &lt;BODY&gt;</div><div class='ctx'>   #     #   &lt;/BODY&gt;</div><div class='ctx'>   #     # &lt;/HTML&gt;</div><div class='ctx'>   #</div><div class='del'>-  #   print CGI::pretty("&lt;HTML&gt;&lt;BODY&gt;&lt;/BODY&gt;&lt;/HTML&gt;", "\t")</div><div class='add'>+  #   print CGI.pretty("&lt;HTML&gt;&lt;BODY&gt;&lt;/BODY&gt;&lt;/HTML&gt;", "\t")</div><div class='ctx'>   #     # &lt;HTML&gt;</div><div class='ctx'>   #     #         &lt;BODY&gt;</div><div class='ctx'>   #     #         &lt;/BODY&gt;</div><div class='head'>diff --git a/lib/cmath.gemspec b/lib/cmath.gemspec<br/>deleted file mode 100644<br/>index 953cfe04c4..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/cmath.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cmath.gemspec</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,23 +0,0 @@</div><div class='del'>-# coding: utf-8</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-Gem::Specification.new do |spec|</div><div class='del'>-  spec.name          = "cmath"</div><div class='del'>-  spec.version       = "1.0.0"</div><div class='del'>-  spec.authors       = ["Tadayoshi Funaba"]</div><div class='del'>-  spec.email         = [nil]</div><div class='del'>-</div><div class='del'>-  spec.summary       = "Provides Trigonometric and Transcendental functions for complex numbers"</div><div class='del'>-  spec.description   = "CMath is a library that provides trigonometric and transcendental functions for complex numbers. The functions in this module accept integers, floating-point numbers or complex numbers as arguments."</div><div class='del'>-  spec.homepage      = "https://github.com/ruby/cmath"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='del'>-</div><div class='del'>-  spec.files         = "lib/cmath.rb"</div><div class='del'>-  spec.bindir        = "exe"</div><div class='del'>-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='del'>-  spec.require_paths = ["lib"]</div><div class='del'>-  spec.required_ruby_version = "&gt;= 2.3.0"</div><div class='del'>-</div><div class='del'>-  spec.add_development_dependency "bundler"</div><div class='del'>-  spec.add_development_dependency "rake"</div><div class='del'>-end</div><div class='head'>diff --git a/lib/cmath.rb b/lib/cmath.rb<br/>deleted file mode 100644<br/>index 7dbd65e799..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/cmath.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/cmath.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,435 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-##</div><div class='del'>-# = Trigonometric and transcendental functions for complex numbers.</div><div class='del'>-#</div><div class='del'>-# CMath is a library that provides trigonometric and transcendental</div><div class='del'>-# functions for complex numbers. The functions in this module accept</div><div class='del'>-# integers, floating-point numbers or complex numbers as arguments.</div><div class='del'>-#</div><div class='del'>-# Note that the selection of functions is similar, but not identical,</div><div class='del'>-# to that in module math. The reason for having two modules is that</div><div class='del'>-# some users aren't interested in complex numbers, and perhaps don't</div><div class='del'>-# even know what they are. They would rather have Math.sqrt(-1) raise</div><div class='del'>-# an exception than return a complex number.</div><div class='del'>-#</div><div class='del'>-# For more information you can see Complex class.</div><div class='del'>-#</div><div class='del'>-# == Usage</div><div class='del'>-#</div><div class='del'>-# To start using this library, simply require cmath library:</div><div class='del'>-#</div><div class='del'>-#   require "cmath"</div><div class='del'>-</div><div class='del'>-module CMath</div><div class='del'>-</div><div class='del'>-  include Math</div><div class='del'>-</div><div class='del'>-  # Backup of Math is needed because mathn.rb replaces Math with CMath.</div><div class='del'>-  RealMath = Math # :nodoc:</div><div class='del'>-  private_constant :RealMath</div><div class='del'>-</div><div class='del'>-  %w[</div><div class='del'>-    exp</div><div class='del'>-    log</div><div class='del'>-    log2</div><div class='del'>-    log10</div><div class='del'>-    sqrt</div><div class='del'>-    cbrt</div><div class='del'>-    sin</div><div class='del'>-    cos</div><div class='del'>-    tan</div><div class='del'>-    sinh</div><div class='del'>-    cosh</div><div class='del'>-    tanh</div><div class='del'>-    asin</div><div class='del'>-    acos</div><div class='del'>-    atan</div><div class='del'>-    atan2</div><div class='del'>-    asinh</div><div class='del'>-    acosh</div><div class='del'>-    atanh</div><div class='del'>-  ].each do |meth|</div><div class='del'>-    define_method(meth + '!') do |*args, &amp;block|</div><div class='del'>-      warn("CMath##{meth}! is deprecated; use CMath##{meth} or Math##{meth}", uplevel: 1) if $VERBOSE</div><div class='del'>-      RealMath.send(meth, *args, &amp;block)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Math::E raised to the +z+ power</div><div class='del'>-  #</div><div class='del'>-  #   CMath.exp(1.i * Math::PI) #=&gt; (-1.0+1.2246467991473532e-16i)</div><div class='del'>-  def exp(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real?</div><div class='del'>-        RealMath.exp(z)</div><div class='del'>-      else</div><div class='del'>-        ere = RealMath.exp(z.real)</div><div class='del'>-        Complex(ere * RealMath.cos(z.imag),</div><div class='del'>-                ere * RealMath.sin(z.imag))</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the natural logarithm of Complex. If a second argument is given,</div><div class='del'>-  # it will be the base of logarithm.</div><div class='del'>-  #</div><div class='del'>-  #   CMath.log(1 + 4i)     #=&gt; (1.416606672028108+1.3258176636680326i)</div><div class='del'>-  #   CMath.log(1 + 4i, 10) #=&gt; (0.6152244606891369+0.5757952953408879i)</div><div class='del'>-  def log(z, b=::Math::E)</div><div class='del'>-    begin</div><div class='del'>-      if z.real? &amp;&amp; z &gt;= 0 &amp;&amp; b &gt;= 0</div><div class='del'>-        RealMath.log(z, b)</div><div class='del'>-      else</div><div class='del'>-        Complex(RealMath.log(z.abs), z.arg) / log(b)</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the base 2 logarithm of +z+</div><div class='del'>-  #</div><div class='del'>-  #   CMath.log2(-1) =&gt; (0.0+4.532360141827194i)</div><div class='del'>-  def log2(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real? and z &gt;= 0</div><div class='del'>-        RealMath.log2(z)</div><div class='del'>-      else</div><div class='del'>-        log(z) / RealMath.log(2)</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the base 10 logarithm of +z+</div><div class='del'>-  #</div><div class='del'>-  #   CMath.log10(-1) #=&gt; (0.0+1.3643763538418412i)</div><div class='del'>-  def log10(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real? and z &gt;= 0</div><div class='del'>-        RealMath.log10(z)</div><div class='del'>-      else</div><div class='del'>-        log(z) / RealMath.log(10)</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the non-negative square root of Complex.</div><div class='del'>-  #</div><div class='del'>-  #   CMath.sqrt(-1 + 0i) #=&gt; 0.0+1.0i</div><div class='del'>-  def sqrt(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real?</div><div class='del'>-        if z &lt; 0</div><div class='del'>-          Complex(0, RealMath.sqrt(-z))</div><div class='del'>-        else</div><div class='del'>-          RealMath.sqrt(z)</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        if z.imag &lt; 0 ||</div><div class='del'>-            (z.imag == 0 &amp;&amp; z.imag.to_s[0] == '-')</div><div class='del'>-          sqrt(z.conjugate).conjugate</div><div class='del'>-        else</div><div class='del'>-          r = z.abs</div><div class='del'>-          x = z.real</div><div class='del'>-          Complex(RealMath.sqrt((r + x) / 2.0), RealMath.sqrt((r - x) / 2.0))</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the principal value of the cube root of +z+</div><div class='del'>-  #</div><div class='del'>-  #   CMath.cbrt(1 + 4i) #=&gt; (1.449461632813119+0.6858152562177092i)</div><div class='del'>-  def cbrt(z)</div><div class='del'>-    z ** (1.0/3)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the sine of +z+, where +z+ is given in radians</div><div class='del'>-  #</div><div class='del'>-  #   CMath.sin(1 + 1i) #=&gt; (1.2984575814159773+0.6349639147847361i)</div><div class='del'>-  def sin(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real?</div><div class='del'>-        RealMath.sin(z)</div><div class='del'>-      else</div><div class='del'>-        Complex(RealMath.sin(z.real) * RealMath.cosh(z.imag),</div><div class='del'>-                RealMath.cos(z.real) * RealMath.sinh(z.imag))</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the cosine of +z+, where +z+ is given in radians</div><div class='del'>-  #</div><div class='del'>-  #   CMath.cos(1 + 1i) #=&gt; (0.8337300251311491-0.9888977057628651i)</div><div class='del'>-  def cos(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real?</div><div class='del'>-        RealMath.cos(z)</div><div class='del'>-      else</div><div class='del'>-        Complex(RealMath.cos(z.real) * RealMath.cosh(z.imag),</div><div class='del'>-                -RealMath.sin(z.real) * RealMath.sinh(z.imag))</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the tangent of +z+, where +z+ is given in radians</div><div class='del'>-  #</div><div class='del'>-  #   CMath.tan(1 + 1i) #=&gt; (0.27175258531951174+1.0839233273386943i)</div><div class='del'>-  def tan(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real?</div><div class='del'>-        RealMath.tan(z)</div><div class='del'>-      else</div><div class='del'>-        sin(z) / cos(z)</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the hyperbolic sine of +z+, where +z+ is given in radians</div><div class='del'>-  #</div><div class='del'>-  #   CMath.sinh(1 + 1i) #=&gt; (0.6349639147847361+1.2984575814159773i)</div><div class='del'>-  def sinh(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real?</div><div class='del'>-        RealMath.sinh(z)</div><div class='del'>-      else</div><div class='del'>-        Complex(RealMath.sinh(z.real) * RealMath.cos(z.imag),</div><div class='del'>-                RealMath.cosh(z.real) * RealMath.sin(z.imag))</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the hyperbolic cosine of +z+, where +z+ is given in radians</div><div class='del'>-  #</div><div class='del'>-  #   CMath.cosh(1 + 1i) #=&gt; (0.8337300251311491+0.9888977057628651i)</div><div class='del'>-  def cosh(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real?</div><div class='del'>-        RealMath.cosh(z)</div><div class='del'>-      else</div><div class='del'>-        Complex(RealMath.cosh(z.real) * RealMath.cos(z.imag),</div><div class='del'>-                RealMath.sinh(z.real) * RealMath.sin(z.imag))</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the hyperbolic tangent of +z+, where +z+ is given in radians</div><div class='del'>-  #</div><div class='del'>-  #   CMath.tanh(1 + 1i) #=&gt; (1.0839233273386943+0.27175258531951174i)</div><div class='del'>-  def tanh(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real?</div><div class='del'>-        RealMath.tanh(z)</div><div class='del'>-      else</div><div class='del'>-        sinh(z) / cosh(z)</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the arc sine of +z+</div><div class='del'>-  #</div><div class='del'>-  #   CMath.asin(1 + 1i) #=&gt; (0.6662394324925153+1.0612750619050355i)</div><div class='del'>-  def asin(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real? and z &gt;= -1 and z &lt;= 1</div><div class='del'>-        RealMath.asin(z)</div><div class='del'>-      else</div><div class='del'>-        (-1.0).i * log(1.0.i * z + sqrt(1.0 - z * z))</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the arc cosine of +z+</div><div class='del'>-  #</div><div class='del'>-  #   CMath.acos(1 + 1i) #=&gt; (0.9045568943023813-1.0612750619050357i)</div><div class='del'>-  def acos(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real? and z &gt;= -1 and z &lt;= 1</div><div class='del'>-        RealMath.acos(z)</div><div class='del'>-      else</div><div class='del'>-        (-1.0).i * log(z + 1.0.i * sqrt(1.0 - z * z))</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # Returns the arc tangent of +z+</div><div class='del'>-  #</div><div class='del'>-  #   CMath.atan(1 + 1i) #=&gt; (1.0172219678978514+0.4023594781085251i)</div><div class='del'>-  def atan(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real?</div><div class='del'>-        RealMath.atan(z)</div><div class='del'>-      else</div><div class='del'>-        1.0.i * log((1.0.i + z) / (1.0.i - z)) / 2.0</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # returns the arc tangent of +y+ divided by +x+ using the signs of +y+ and</div><div class='del'>-  # +x+ to determine the quadrant</div><div class='del'>-  #</div><div class='del'>-  #   CMath.atan2(1 + 1i, 0) #=&gt; (1.5707963267948966+0.0i)</div><div class='del'>-  def atan2(y,x)</div><div class='del'>-    begin</div><div class='del'>-      if y.real? and x.real?</div><div class='del'>-        RealMath.atan2(y,x)</div><div class='del'>-      else</div><div class='del'>-        (-1.0).i * log((x + 1.0.i * y) / sqrt(x * x + y * y))</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # returns the inverse hyperbolic sine of +z+</div><div class='del'>-  #</div><div class='del'>-  #   CMath.asinh(1 + 1i) #=&gt; (1.0612750619050357+0.6662394324925153i)</div><div class='del'>-  def asinh(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real?</div><div class='del'>-        RealMath.asinh(z)</div><div class='del'>-      else</div><div class='del'>-        log(z + sqrt(1.0 + z * z))</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # returns the inverse hyperbolic cosine of +z+</div><div class='del'>-  #</div><div class='del'>-  #   CMath.acosh(1 + 1i) #=&gt; (1.0612750619050357+0.9045568943023813i)</div><div class='del'>-  def acosh(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real? and z &gt;= 1</div><div class='del'>-        RealMath.acosh(z)</div><div class='del'>-      else</div><div class='del'>-        log(z + sqrt(z * z - 1.0))</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # returns the inverse hyperbolic tangent of +z+</div><div class='del'>-  #</div><div class='del'>-  #   CMath.atanh(1 + 1i) #=&gt; (0.4023594781085251+1.0172219678978514i)</div><div class='del'>-  def atanh(z)</div><div class='del'>-    begin</div><div class='del'>-      if z.real? and z &gt;= -1 and z &lt;= 1</div><div class='del'>-        RealMath.atanh(z)</div><div class='del'>-      else</div><div class='del'>-        log((1.0 + z) / (1.0 - z)) / 2.0</div><div class='del'>-      end</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      handle_no_method_error</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  module_function :exp!</div><div class='del'>-  module_function :exp</div><div class='del'>-  module_function :log!</div><div class='del'>-  module_function :log</div><div class='del'>-  module_function :log2!</div><div class='del'>-  module_function :log2</div><div class='del'>-  module_function :log10!</div><div class='del'>-  module_function :log10</div><div class='del'>-  module_function :sqrt!</div><div class='del'>-  module_function :sqrt</div><div class='del'>-  module_function :cbrt!</div><div class='del'>-  module_function :cbrt</div><div class='del'>-</div><div class='del'>-  module_function :sin!</div><div class='del'>-  module_function :sin</div><div class='del'>-  module_function :cos!</div><div class='del'>-  module_function :cos</div><div class='del'>-  module_function :tan!</div><div class='del'>-  module_function :tan</div><div class='del'>-</div><div class='del'>-  module_function :sinh!</div><div class='del'>-  module_function :sinh</div><div class='del'>-  module_function :cosh!</div><div class='del'>-  module_function :cosh</div><div class='del'>-  module_function :tanh!</div><div class='del'>-  module_function :tanh</div><div class='del'>-</div><div class='del'>-  module_function :asin!</div><div class='del'>-  module_function :asin</div><div class='del'>-  module_function :acos!</div><div class='del'>-  module_function :acos</div><div class='del'>-  module_function :atan!</div><div class='del'>-  module_function :atan</div><div class='del'>-  module_function :atan2!</div><div class='del'>-  module_function :atan2</div><div class='del'>-</div><div class='del'>-  module_function :asinh!</div><div class='del'>-  module_function :asinh</div><div class='del'>-  module_function :acosh!</div><div class='del'>-  module_function :acosh</div><div class='del'>-  module_function :atanh!</div><div class='del'>-  module_function :atanh</div><div class='del'>-</div><div class='del'>-  module_function :frexp</div><div class='del'>-  module_function :ldexp</div><div class='del'>-  module_function :hypot</div><div class='del'>-  module_function :erf</div><div class='del'>-  module_function :erfc</div><div class='del'>-  module_function :gamma</div><div class='del'>-  module_function :lgamma</div><div class='del'>-</div><div class='del'>-  private</div><div class='del'>-  def handle_no_method_error # :nodoc:</div><div class='del'>-    if $!.name == :real?</div><div class='del'>-      raise TypeError, "Numeric Number required"</div><div class='del'>-    else</div><div class='del'>-      raise</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-  module_function :handle_no_method_error</div><div class='del'>-</div><div class='del'>-end</div><div class='head'>diff --git a/lib/csv.rb b/lib/csv.rb<br/>index dca2a45b6a..0307033941 100644<br/>--- a/<a href='/ruby.git/tree/lib/csv.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/csv.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv.rb</a></div><div class='hunk'>@@ -10,18 +10,18 @@</div><div class='ctx'> #</div><div class='ctx'> # Welcome to the new and improved CSV.</div><div class='ctx'> #</div><div class='del'>-# This version of the CSV library began its life as FasterCSV.  FasterCSV was</div><div class='del'>-# intended as a replacement to Ruby's then standard CSV library.  It was</div><div class='add'>+# This version of the CSV library began its life as FasterCSV. FasterCSV was</div><div class='add'>+# intended as a replacement to Ruby's then standard CSV library. It was</div><div class='ctx'> # designed to address concerns users of that library had and it had three</div><div class='ctx'> # primary goals:</div><div class='ctx'> #</div><div class='ctx'> # 1.  Be significantly faster than CSV while remaining a pure Ruby library.</div><div class='del'>-# 2.  Use a smaller and easier to maintain code base.  (FasterCSV eventually</div><div class='del'>-#     grew larger, was also but considerably richer in features.  The parsing</div><div class='add'>+# 2.  Use a smaller and easier to maintain code base. (FasterCSV eventually</div><div class='add'>+#     grew larger, was also but considerably richer in features. The parsing</div><div class='ctx'> #     core remains quite small.)</div><div class='ctx'> # 3.  Improve on the CSV interface.</div><div class='ctx'> #</div><div class='del'>-# Obviously, the last one is subjective.  I did try to defer to the original</div><div class='add'>+# Obviously, the last one is subjective. I did try to defer to the original</div><div class='ctx'> # interface whenever I didn't have a compelling reason to change it though, so</div><div class='ctx'> # hopefully this won't be too radically different.</div><div class='ctx'> #</div><div class='hunk'>@@ -29,26 +29,26 @@</div><div class='ctx'> # the original library as of Ruby 1.9. If you are migrating code from 1.8 or</div><div class='ctx'> # earlier, you may have to change your code to comply with the new interface.</div><div class='ctx'> #</div><div class='del'>-# == What's Different From the Old CSV?</div><div class='add'>+# == What's the Different From the Old CSV?</div><div class='ctx'> #</div><div class='ctx'> # I'm sure I'll miss something, but I'll try to mention most of the major</div><div class='ctx'> # differences I am aware of, to help others quickly get up to speed:</div><div class='ctx'> #</div><div class='del'>-# === CSV Parsing</div><div class='add'>+# === \CSV Parsing</div><div class='ctx'> #</div><div class='del'>-# * This parser is m17n aware.  See CSV for full details.</div><div class='add'>+# * This parser is m17n aware. See CSV for full details.</div><div class='ctx'> # * This library has a stricter parser and will throw MalformedCSVErrors on</div><div class='ctx'> #   problematic data.</div><div class='del'>-# * This library has a less liberal idea of a line ending than CSV.  What you</div><div class='del'>-#   set as the &lt;tt&gt;:row_sep&lt;/tt&gt; is law.  It can auto-detect your line endings</div><div class='add'>+# * This library has a less liberal idea of a line ending than CSV. What you</div><div class='add'>+#   set as the &lt;tt&gt;:row_sep&lt;/tt&gt; is law. It can auto-detect your line endings</div><div class='ctx'> #   though.</div><div class='del'>-# * The old library returned empty lines as &lt;tt&gt;[nil]&lt;/tt&gt;.  This library calls</div><div class='add'>+# * The old library returned empty lines as &lt;tt&gt;[nil]&lt;/tt&gt;. This library calls</div><div class='ctx'> #   them &lt;tt&gt;[]&lt;/tt&gt;.</div><div class='ctx'> # * This library has a much faster parser.</div><div class='ctx'> #</div><div class='ctx'> # === Interface</div><div class='ctx'> #</div><div class='del'>-# * CSV now uses Hash-style parameters to set options.</div><div class='add'>+# * CSV now uses keyword parameters to set options.</div><div class='ctx'> # * CSV no longer has generate_row() or parse_row().</div><div class='ctx'> # * The old CSV's Reader and Writer classes have been dropped.</div><div class='ctx'> # * CSV::open() is now more like Ruby's open().</div><div class='hunk'>@@ -56,9 +56,9 @@</div><div class='ctx'> # * CSV now has a new() method used to wrap objects like String and IO for</div><div class='ctx'> #   reading and writing.</div><div class='ctx'> # * CSV::generate() is different from the old method.</div><div class='del'>-# * CSV no longer supports partial reads.  It works line-by-line.</div><div class='add'>+# * CSV no longer supports partial reads. It works line-by-line.</div><div class='ctx'> # * CSV no longer allows the instance methods to override the separators for</div><div class='del'>-#   performance reasons.  They must be set in the constructor.</div><div class='add'>+#   performance reasons. They must be set in the constructor.</div><div class='ctx'> #</div><div class='ctx'> # If you use this library and find yourself missing any functionality I have</div><div class='ctx'> # trimmed, please {let me know}[mailto:james@grayproductions.net].</div><div class='hunk'>@@ -70,16 +70,16 @@</div><div class='ctx'> # == What is CSV, really?</div><div class='ctx'> #</div><div class='ctx'> # CSV maintains a pretty strict definition of CSV taken directly from</div><div class='del'>-# {the RFC}[http://www.ietf.org/rfc/rfc4180.txt].  I relax the rules in only one</div><div class='del'>-# place and that is to make using this library easier.  CSV will parse all valid</div><div class='add'>+# {the RFC}[http://www.ietf.org/rfc/rfc4180.txt]. I relax the rules in only one</div><div class='add'>+# place and that is to make using this library easier. CSV will parse all valid</div><div class='ctx'> # CSV.</div><div class='ctx'> #</div><div class='del'>-# What you don't want to do is feed CSV invalid data.  Because of the way the</div><div class='add'>+# What you don't want to do is to feed CSV invalid data. Because of the way the</div><div class='ctx'> # CSV format works, it's common for a parser to need to read until the end of</div><div class='del'>-# the file to be sure a field is invalid.  This eats a lot of time and memory.</div><div class='add'>+# the file to be sure a field is invalid. This consumes a lot of time and memory.</div><div class='ctx'> #</div><div class='ctx'> # Luckily, when working with invalid CSV, Ruby's built-in methods will almost</div><div class='del'>-# always be superior in every way.  For example, parsing non-quoted fields is as</div><div class='add'>+# always be superior in every way. For example, parsing non-quoted fields is as</div><div class='ctx'> # easy as:</div><div class='ctx'> #</div><div class='ctx'> #   data.split(",")</div><div class='hunk'>@@ -90,189 +90,755 @@</div><div class='ctx'> # with any questions.</div><div class='ctx'> </div><div class='ctx'> require "forwardable"</div><div class='del'>-require "English"</div><div class='ctx'> require "date"</div><div class='ctx'> require "stringio"</div><div class='del'>-require_relative "csv/table"</div><div class='del'>-require_relative "csv/row"</div><div class='del'>-</div><div class='del'>-# This provides String#match? and Regexp#match? for Ruby 2.3.</div><div class='del'>-unless String.method_defined?(:match?)</div><div class='del'>-  class CSV</div><div class='del'>-    module MatchP</div><div class='del'>-      refine String do</div><div class='del'>-        def match?(pattern)</div><div class='del'>-          self =~ pattern</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      refine Regexp do</div><div class='del'>-        def match?(string)</div><div class='del'>-          self =~ string</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='ctx'> </div><div class='del'>-  using CSV::MatchP</div><div class='del'>-end</div><div class='add'>+require_relative "csv/fields_converter"</div><div class='add'>+require_relative "csv/input_record_separator"</div><div class='add'>+require_relative "csv/parser"</div><div class='add'>+require_relative "csv/row"</div><div class='add'>+require_relative "csv/table"</div><div class='add'>+require_relative "csv/writer"</div><div class='ctx'> </div><div class='add'>+# == \CSV</div><div class='ctx'> #</div><div class='del'>-# This class provides a complete interface to CSV files and data.  It offers</div><div class='del'>-# tools to enable you to read and write to and from Strings or IO objects, as</div><div class='del'>-# needed.</div><div class='add'>+# === In a Hurry?</div><div class='ctx'> #</div><div class='del'>-# The most generic interface of a class is:</div><div class='add'>+# If you are familiar with \CSV data and have a particular task in mind,</div><div class='add'>+# you may want to go directly to the:</div><div class='add'>+# - {Recipes for CSV}[doc/csv/recipes/recipes_rdoc.html].</div><div class='ctx'> #</div><div class='del'>-#    csv = CSV.new(string_or_io, **options)</div><div class='add'>+# Otherwise, read on here, about the API: classes, methods, and constants.</div><div class='ctx'> #</div><div class='del'>-#    # Reading: IO object should be open for read</div><div class='del'>-#    csv.read # =&gt; array of rows</div><div class='del'>-#    # or</div><div class='del'>-#    csv.each do |row|</div><div class='del'>-#      # ...</div><div class='del'>-#    end</div><div class='del'>-#    # or</div><div class='del'>-#    row = csv.shift</div><div class='add'>+# === \CSV Data</div><div class='ctx'> #</div><div class='del'>-#    # Writing: IO object should be open for write</div><div class='del'>-#    csv &lt;&lt; row</div><div class='add'>+# \CSV (comma-separated values) data is a text representation of a table:</div><div class='add'>+# - A _row_ _separator_ delimits table rows.</div><div class='add'>+#   A common row separator is the newline character &lt;tt&gt;"\n"&lt;/tt&gt;.</div><div class='add'>+# - A _column_ _separator_ delimits fields in a row.</div><div class='add'>+#   A common column separator is the comma character &lt;tt&gt;","&lt;/tt&gt;.</div><div class='ctx'> #</div><div class='del'>-# There are several specialized class methods for one-statement reading or writing,</div><div class='del'>-# described in the Specialized Methods section.</div><div class='add'>+# This \CSV \String, with row separator &lt;tt&gt;"\n"&lt;/tt&gt;</div><div class='add'>+# and column separator &lt;tt&gt;","&lt;/tt&gt;,</div><div class='add'>+# has three rows and two columns:</div><div class='add'>+#   "foo,0\nbar,1\nbaz,2\n"</div><div class='ctx'> #</div><div class='del'>-# If a String is passed into ::new, it is internally wrapped into a StringIO object.</div><div class='add'>+# Despite the name \CSV, a \CSV representation can use different separators.</div><div class='ctx'> #</div><div class='del'>-# +options+ can be used for specifying the particular CSV flavor (column</div><div class='del'>-# separators, row separators, value quoting and so on), and for data conversion,</div><div class='del'>-# see Data Conversion section for the description of the latter.</div><div class='add'>+# For more about tables, see the Wikipedia article</div><div class='add'>+# "{Table (information)}[https://en.wikipedia.org/wiki/Table_(information)]",</div><div class='add'>+# especially its section</div><div class='add'>+# "{Simple table}[https://en.wikipedia.org/wiki/Table_(information)#Simple_table]"</div><div class='ctx'> #</div><div class='del'>-# == Specialized Methods</div><div class='add'>+# == \Class \CSV</div><div class='ctx'> #</div><div class='del'>-# === Reading</div><div class='add'>+# Class \CSV provides methods for:</div><div class='add'>+# - Parsing \CSV data from a \String object, a \File (via its file path), or an \IO object.</div><div class='add'>+# - Generating \CSV data to a \String object.</div><div class='ctx'> #</div><div class='del'>-#   # From a file: all at once</div><div class='del'>-#   arr_of_rows = CSV.read("path/to/file.csv", **options)</div><div class='del'>-#   # iterator-style:</div><div class='del'>-#   CSV.foreach("path/to/file.csv", **options) do |row|</div><div class='del'>-#     # ...</div><div class='del'>-#   end</div><div class='add'>+# To make \CSV available:</div><div class='add'>+#   require 'csv'</div><div class='ctx'> #</div><div class='del'>-#   # From a string</div><div class='del'>-#   arr_of_rows = CSV.parse("CSV,data,String", **options)</div><div class='del'>-#   # or</div><div class='del'>-#   CSV.parse("CSV,data,String", **options) do |row|</div><div class='del'>-#     # ...</div><div class='del'>-#   end</div><div class='add'>+# All examples here assume that this has been done.</div><div class='add'>+#</div><div class='add'>+# == Keeping It Simple</div><div class='add'>+#</div><div class='add'>+# A \CSV object has dozens of instance methods that offer fine-grained control</div><div class='add'>+# of parsing and generating \CSV data.</div><div class='add'>+# For many needs, though, simpler approaches will do.</div><div class='add'>+#</div><div class='add'>+# This section summarizes the singleton methods in \CSV</div><div class='add'>+# that allow you to parse and generate without explicitly</div><div class='add'>+# creating \CSV objects.</div><div class='add'>+# For details, follow the links.</div><div class='add'>+#</div><div class='add'>+# === Simple Parsing</div><div class='ctx'> #</div><div class='del'>-# === Writing</div><div class='add'>+# Parsing methods commonly return either of:</div><div class='add'>+# - An \Array of Arrays of Strings:</div><div class='add'>+#   - The outer \Array is the entire "table".</div><div class='add'>+#   - Each inner \Array is a row.</div><div class='add'>+#   - Each \String is a field.</div><div class='add'>+# - A CSV::Table object.  For details, see</div><div class='add'>+#   {\CSV with Headers}[#class-CSV-label-CSV+with+Headers].</div><div class='ctx'> #</div><div class='del'>-#   # To a file</div><div class='del'>-#   CSV.open("path/to/file.csv", "wb") do |csv|</div><div class='del'>-#     csv &lt;&lt; ["row", "of", "CSV", "data"]</div><div class='del'>-#     csv &lt;&lt; ["another", "row"]</div><div class='del'>-#     # ...</div><div class='add'>+# ==== Parsing a \String</div><div class='add'>+#</div><div class='add'>+# The input to be parsed can be a string:</div><div class='add'>+#   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+#</div><div class='add'>+# \Method CSV.parse returns the entire \CSV data:</div><div class='add'>+#   CSV.parse(string) # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+#</div><div class='add'>+# \Method CSV.parse_line returns only the first row:</div><div class='add'>+#   CSV.parse_line(string) # =&gt; ["foo", "0"]</div><div class='add'>+#</div><div class='add'>+# \CSV extends class \String with instance method String#parse_csv,</div><div class='add'>+# which also returns only the first row:</div><div class='add'>+#   string.parse_csv # =&gt; ["foo", "0"]</div><div class='add'>+#</div><div class='add'>+# ==== Parsing Via a \File Path</div><div class='add'>+#</div><div class='add'>+# The input to be parsed can be in a file:</div><div class='add'>+#   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+#   path = 't.csv'</div><div class='add'>+#   File.write(path, string)</div><div class='add'>+#</div><div class='add'>+# \Method CSV.read returns the entire \CSV data:</div><div class='add'>+#  CSV.read(path) # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+#</div><div class='add'>+# \Method CSV.foreach iterates, passing each row to the given block:</div><div class='add'>+#  CSV.foreach(path) do |row|</div><div class='add'>+#    p row</div><div class='add'>+#  end</div><div class='add'>+# Output:</div><div class='add'>+#   ["foo", "0"]</div><div class='add'>+#   ["bar", "1"]</div><div class='add'>+#   ["baz", "2"]</div><div class='add'>+#</div><div class='add'>+# \Method CSV.table returns the entire \CSV data as a CSV::Table object:</div><div class='add'>+#   CSV.table(path) # =&gt; #&lt;CSV::Table mode:col_or_row row_count:3&gt;</div><div class='add'>+#</div><div class='add'>+# ==== Parsing from an Open \IO Stream</div><div class='add'>+#</div><div class='add'>+# The input to be parsed can be in an open \IO stream:</div><div class='add'>+#</div><div class='add'>+# \Method CSV.read returns the entire \CSV data:</div><div class='add'>+#   File.open(path) do |file|</div><div class='add'>+#     CSV.read(file)</div><div class='add'>+#   end # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+#</div><div class='add'>+# As does method CSV.parse:</div><div class='add'>+#   File.open(path) do |file|</div><div class='add'>+#     CSV.parse(file)</div><div class='add'>+#   end # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+#</div><div class='add'>+# \Method CSV.parse_line returns only the first row:</div><div class='add'>+#   File.open(path) do |file|</div><div class='add'>+#    CSV.parse_line(file)</div><div class='add'>+#   end # =&gt; ["foo", "0"]</div><div class='add'>+#</div><div class='add'>+# \Method CSV.foreach iterates, passing each row to the given block:</div><div class='add'>+#   File.open(path) do |file|</div><div class='add'>+#     CSV.foreach(file) do |row|</div><div class='add'>+#       p row</div><div class='add'>+#     end</div><div class='ctx'> #   end</div><div class='add'>+# Output:</div><div class='add'>+#   ["foo", "0"]</div><div class='add'>+#   ["bar", "1"]</div><div class='add'>+#   ["baz", "2"]</div><div class='add'>+#</div><div class='add'>+# \Method CSV.table returns the entire \CSV data as a CSV::Table object:</div><div class='add'>+#   File.open(path) do |file|</div><div class='add'>+#     CSV.table(file)</div><div class='add'>+#   end # =&gt; #&lt;CSV::Table mode:col_or_row row_count:3&gt;</div><div class='add'>+#</div><div class='add'>+# === Simple Generating</div><div class='add'>+#</div><div class='add'>+# \Method CSV.generate returns a \String;</div><div class='add'>+# this example uses method CSV#&lt;&lt; to append the rows</div><div class='add'>+# that are to be generated:</div><div class='add'>+#   output_string = CSV.generate do |csv|</div><div class='add'>+#     csv &lt;&lt; ['foo', 0]</div><div class='add'>+#     csv &lt;&lt; ['bar', 1]</div><div class='add'>+#     csv &lt;&lt; ['baz', 2]</div><div class='add'>+#   end</div><div class='add'>+#   output_string # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+#</div><div class='add'>+# \Method CSV.generate_line returns a \String containing the single row</div><div class='add'>+# constructed from an \Array:</div><div class='add'>+#   CSV.generate_line(['foo', '0']) # =&gt; "foo,0\n"</div><div class='add'>+#</div><div class='add'>+# \CSV extends class \Array with instance method &lt;tt&gt;Array#to_csv&lt;/tt&gt;,</div><div class='add'>+# which forms an \Array into a \String:</div><div class='add'>+#   ['foo', '0'].to_csv # =&gt; "foo,0\n"</div><div class='add'>+#</div><div class='add'>+# === "Filtering" \CSV</div><div class='ctx'> #</div><div class='del'>-#   # To a String</div><div class='del'>-#   csv_string = CSV.generate do |csv|</div><div class='del'>-#     csv &lt;&lt; ["row", "of", "CSV", "data"]</div><div class='del'>-#     csv &lt;&lt; ["another", "row"]</div><div class='del'>-#     # ...</div><div class='add'>+# \Method CSV.filter provides a Unix-style filter for \CSV data.</div><div class='add'>+# The input data is processed to form the output data:</div><div class='add'>+#   in_string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+#   out_string = ''</div><div class='add'>+#   CSV.filter(in_string, out_string) do |row|</div><div class='add'>+#     row[0] = row[0].upcase</div><div class='add'>+#     row[1] *= 4</div><div class='ctx'> #   end</div><div class='add'>+#   out_string # =&gt; "FOO,0000\nBAR,1111\nBAZ,2222\n"</div><div class='add'>+#</div><div class='add'>+# == \CSV Objects</div><div class='add'>+#</div><div class='add'>+# There are three ways to create a \CSV object:</div><div class='add'>+# - \Method CSV.new returns a new \CSV object.</div><div class='add'>+# - \Method CSV.instance returns a new or cached \CSV object.</div><div class='add'>+# - \Method \CSV() also returns a new or cached \CSV object.</div><div class='add'>+#</div><div class='add'>+# === Instance Methods</div><div class='add'>+#</div><div class='add'>+# \CSV has three groups of instance methods:</div><div class='add'>+# - Its own internally defined instance methods.</div><div class='add'>+# - Methods included by module Enumerable.</div><div class='add'>+# - Methods delegated to class IO. See below.</div><div class='add'>+#</div><div class='add'>+# ==== Delegated Methods</div><div class='add'>+#</div><div class='add'>+# For convenience, a CSV object will delegate to many methods in class IO.</div><div class='add'>+# (A few have wrapper "guard code" in \CSV.) You may call:</div><div class='add'>+# * IO#binmode</div><div class='add'>+# * #binmode?</div><div class='add'>+# * IO#close</div><div class='add'>+# * IO#close_read</div><div class='add'>+# * IO#close_write</div><div class='add'>+# * IO#closed?</div><div class='add'>+# * #eof</div><div class='add'>+# * #eof?</div><div class='add'>+# * IO#external_encoding</div><div class='add'>+# * IO#fcntl</div><div class='add'>+# * IO#fileno</div><div class='add'>+# * #flock</div><div class='add'>+# * IO#flush</div><div class='add'>+# * IO#fsync</div><div class='add'>+# * IO#internal_encoding</div><div class='add'>+# * #ioctl</div><div class='add'>+# * IO#isatty</div><div class='add'>+# * #path</div><div class='add'>+# * IO#pid</div><div class='add'>+# * IO#pos</div><div class='add'>+# * IO#pos=</div><div class='add'>+# * IO#reopen</div><div class='add'>+# * #rewind</div><div class='add'>+# * IO#seek</div><div class='add'>+# * #stat</div><div class='add'>+# * IO#string</div><div class='add'>+# * IO#sync</div><div class='add'>+# * IO#sync=</div><div class='add'>+# * IO#tell</div><div class='add'>+# * #to_i</div><div class='add'>+# * #to_io</div><div class='add'>+# * IO#truncate</div><div class='add'>+# * IO#tty?</div><div class='add'>+#</div><div class='add'>+# === Options</div><div class='add'>+#</div><div class='add'>+# The default values for options are:</div><div class='add'>+#   DEFAULT_OPTIONS = {</div><div class='add'>+#     # For both parsing and generating.</div><div class='add'>+#     col_sep:            ",",</div><div class='add'>+#     row_sep:            :auto,</div><div class='add'>+#     quote_char:         '"',</div><div class='add'>+#     # For parsing.</div><div class='add'>+#     field_size_limit:   nil,</div><div class='add'>+#     converters:         nil,</div><div class='add'>+#     unconverted_fields: nil,</div><div class='add'>+#     headers:            false,</div><div class='add'>+#     return_headers:     false,</div><div class='add'>+#     header_converters:  nil,</div><div class='add'>+#     skip_blanks:        false,</div><div class='add'>+#     skip_lines:         nil,</div><div class='add'>+#     liberal_parsing:    false,</div><div class='add'>+#     nil_value:          nil,</div><div class='add'>+#     empty_value:        "",</div><div class='add'>+#     strip:              false,</div><div class='add'>+#     # For generating.</div><div class='add'>+#     write_headers:      nil,</div><div class='add'>+#     quote_empty:        true,</div><div class='add'>+#     force_quotes:       false,</div><div class='add'>+#     write_converters:   nil,</div><div class='add'>+#     write_nil_value:    nil,</div><div class='add'>+#     write_empty_value:  "",</div><div class='add'>+#   }</div><div class='add'>+#</div><div class='add'>+# ==== Options for Parsing</div><div class='add'>+#</div><div class='add'>+# Options for parsing, described in detail below, include:</div><div class='add'>+# - +row_sep+: Specifies the row separator; used to delimit rows.</div><div class='add'>+# - +col_sep+: Specifies the column separator; used to delimit fields.</div><div class='add'>+# - +quote_char+: Specifies the quote character; used to quote fields.</div><div class='add'>+# - +field_size_limit+: Specifies the maximum field size + 1 allowed.</div><div class='add'>+#   Deprecated since 3.2.3. Use +max_field_size+ instead.</div><div class='add'>+# - +max_field_size+: Specifies the maximum field size allowed.</div><div class='add'>+# - +converters+: Specifies the field converters to be used.</div><div class='add'>+# - +unconverted_fields+: Specifies whether unconverted fields are to be available.</div><div class='add'>+# - +headers+: Specifies whether data contains headers,</div><div class='add'>+#   or specifies the headers themselves.</div><div class='add'>+# - +return_headers+: Specifies whether headers are to be returned.</div><div class='add'>+# - +header_converters+: Specifies the header converters to be used.</div><div class='add'>+# - +skip_blanks+: Specifies whether blanks lines are to be ignored.</div><div class='add'>+# - +skip_lines+: Specifies how comments lines are to be recognized.</div><div class='add'>+# - +strip+: Specifies whether leading and trailing whitespace are to be</div><div class='add'>+#   stripped from fields. This must be compatible with +col_sep+; if it is not,</div><div class='add'>+#   then an +ArgumentError+ exception will be raised.</div><div class='add'>+# - +liberal_parsing+: Specifies whether \CSV should attempt to parse</div><div class='add'>+#   non-compliant data.</div><div class='add'>+# - +nil_value+: Specifies the object that is to be substituted for each null (no-text) field.</div><div class='add'>+# - +empty_value+: Specifies the object that is to be substituted for each empty field.</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/common/row_sep.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/common/col_sep.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/common/quote_char.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/field_size_limit.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/converters.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/unconverted_fields.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/headers.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/return_headers.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/header_converters.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/skip_blanks.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/skip_lines.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/strip.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/liberal_parsing.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/nil_value.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/parsing/empty_value.rdoc</div><div class='add'>+#</div><div class='add'>+# ==== Options for Generating</div><div class='add'>+#</div><div class='add'>+# Options for generating, described in detail below, include:</div><div class='add'>+# - +row_sep+: Specifies the row separator; used to delimit rows.</div><div class='add'>+# - +col_sep+: Specifies the column separator; used to delimit fields.</div><div class='add'>+# - +quote_char+: Specifies the quote character; used to quote fields.</div><div class='add'>+# - +write_headers+: Specifies whether headers are to be written.</div><div class='add'>+# - +force_quotes+: Specifies whether each output field is to be quoted.</div><div class='add'>+# - +quote_empty+: Specifies whether each empty output field is to be quoted.</div><div class='add'>+# - +write_converters+: Specifies the field converters to be used in writing.</div><div class='add'>+# - +write_nil_value+: Specifies the object that is to be substituted for each +nil+-valued field.</div><div class='add'>+# - +write_empty_value+: Specifies the object that is to be substituted for each empty field.</div><div class='ctx'> #</div><div class='del'>-# === Shortcuts</div><div class='add'>+# :include: ../doc/csv/options/common/row_sep.rdoc</div><div class='ctx'> #</div><div class='del'>-#   # Core extensions for converting one line</div><div class='del'>-#   csv_string = ["CSV", "data"].to_csv   # to CSV</div><div class='del'>-#   csv_array  = "CSV,String".parse_csv   # from CSV</div><div class='add'>+# :include: ../doc/csv/options/common/col_sep.rdoc</div><div class='ctx'> #</div><div class='del'>-#   # CSV() method</div><div class='del'>-#   CSV             { |csv_out| csv_out &lt;&lt; %w{my data here} }  # to $stdout</div><div class='del'>-#   CSV(csv = "")   { |csv_str| csv_str &lt;&lt; %w{my data here} }  # to a String</div><div class='del'>-#   CSV($stderr)    { |csv_err| csv_err &lt;&lt; %w{my data here} }  # to $stderr</div><div class='del'>-#   CSV($stdin)     { |csv_in|  csv_in.each { |row| p row } }  # from $stdin</div><div class='add'>+# :include: ../doc/csv/options/common/quote_char.rdoc</div><div class='ctx'> #</div><div class='del'>-# == Data Conversion</div><div class='add'>+# :include: ../doc/csv/options/generating/write_headers.rdoc</div><div class='ctx'> #</div><div class='del'>-# === CSV with headers</div><div class='add'>+# :include: ../doc/csv/options/generating/force_quotes.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/generating/quote_empty.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/generating/write_converters.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/generating/write_nil_value.rdoc</div><div class='add'>+#</div><div class='add'>+# :include: ../doc/csv/options/generating/write_empty_value.rdoc</div><div class='add'>+#</div><div class='add'>+# === \CSV with Headers</div><div class='ctx'> #</div><div class='ctx'> # CSV allows to specify column names of CSV file, whether they are in data, or</div><div class='del'>-# provided separately. If headers specified, reading methods return an instance</div><div class='add'>+# provided separately. If headers are specified, reading methods return an instance</div><div class='ctx'> # of CSV::Table, consisting of CSV::Row.</div><div class='ctx'> #</div><div class='ctx'> #   # Headers are part of data</div><div class='ctx'> #   data = CSV.parse(&lt;&lt;~ROWS, headers: true)</div><div class='ctx'> #     Name,Department,Salary</div><div class='del'>-#     Bob,Engeneering,1000</div><div class='add'>+#     Bob,Engineering,1000</div><div class='ctx'> #     Jane,Sales,2000</div><div class='ctx'> #     John,Management,5000</div><div class='ctx'> #   ROWS</div><div class='ctx'> #</div><div class='ctx'> #   data.class      #=&gt; CSV::Table</div><div class='del'>-#   data.first      #=&gt; #&lt;CSV::Row "Name":"Bob" "Department":"Engeneering" "Salary":"1000"&gt;</div><div class='del'>-#   data.first.to_h #=&gt; {"Name"=&gt;"Bob", "Department"=&gt;"Engeneering", "Salary"=&gt;"1000"}</div><div class='add'>+#   data.first      #=&gt; #&lt;CSV::Row "Name":"Bob" "Department":"Engineering" "Salary":"1000"&gt;</div><div class='add'>+#   data.first.to_h #=&gt; {"Name"=&gt;"Bob", "Department"=&gt;"Engineering", "Salary"=&gt;"1000"}</div><div class='ctx'> #</div><div class='ctx'> #   # Headers provided by developer</div><div class='del'>-#   data = CSV.parse('Bob,Engeneering,1000', headers: %i[name department salary])</div><div class='del'>-#   data.first      #=&gt; #&lt;CSV::Row name:"Bob" department:"Engeneering" salary:"1000"&gt;</div><div class='del'>-#</div><div class='del'>-# === Typed data reading</div><div class='del'>-#</div><div class='del'>-# CSV allows to provide a set of data _converters_ e.g. transformations to try on input</div><div class='del'>-# data. Converter could be a symbol from CSV::Converters constant's keys, or lambda.</div><div class='del'>-#</div><div class='del'>-#   # Without any converters:</div><div class='del'>-#   CSV.parse('Bob,2018-03-01,100')</div><div class='del'>-#   #=&gt; [["Bob", "2018-03-01", "100"]]</div><div class='del'>-#</div><div class='del'>-#   # With built-in converters:</div><div class='del'>-#   CSV.parse('Bob,2018-03-01,100', converters: %i[numeric date])</div><div class='del'>-#   #=&gt; [["Bob", #&lt;Date: 2018-03-01&gt;, 100]]</div><div class='del'>-#</div><div class='del'>-#   # With custom converters:</div><div class='del'>-#   CSV.parse('Bob,2018-03-01,100', converters: [-&gt;(v) { Time.parse(v) rescue v }])</div><div class='del'>-#   #=&gt; [["Bob", 2018-03-01 00:00:00 +0200, "100"]]</div><div class='add'>+#   data = CSV.parse('Bob,Engineering,1000', headers: %i[name department salary])</div><div class='add'>+#   data.first      #=&gt; #&lt;CSV::Row name:"Bob" department:"Engineering" salary:"1000"&gt;</div><div class='add'>+#</div><div class='add'>+# === \Converters</div><div class='add'>+#</div><div class='add'>+# By default, each value (field or header) parsed by \CSV is formed into a \String.</div><div class='add'>+# You can use a _field_ _converter_ or  _header_ _converter_</div><div class='add'>+# to intercept and modify the parsed values:</div><div class='add'>+# - See {Field Converters}[#class-CSV-label-Field+Converters].</div><div class='add'>+# - See {Header Converters}[#class-CSV-label-Header+Converters].</div><div class='add'>+#</div><div class='add'>+# Also by default, each value to be written during generation is written 'as-is'.</div><div class='add'>+# You can use a _write_ _converter_ to modify values before writing.</div><div class='add'>+# - See {Write Converters}[#class-CSV-label-Write+Converters].</div><div class='add'>+#</div><div class='add'>+# ==== Specifying \Converters</div><div class='add'>+#</div><div class='add'>+# You can specify converters for parsing or generating in the +options+</div><div class='add'>+# argument to various \CSV methods:</div><div class='add'>+# - Option +converters+ for converting parsed field values.</div><div class='add'>+# - Option +header_converters+ for converting parsed header values.</div><div class='add'>+# - Option +write_converters+ for converting values to be written (generated).</div><div class='add'>+#</div><div class='add'>+# There are three forms for specifying converters:</div><div class='add'>+# - A converter proc: executable code to be used for conversion.</div><div class='add'>+# - A converter name: the name of a stored converter.</div><div class='add'>+# - A converter list: an array of converter procs, converter names, and converter lists.</div><div class='add'>+#</div><div class='add'>+# ===== Converter Procs</div><div class='add'>+#</div><div class='add'>+# This converter proc, +strip_converter+, accepts a value +field+</div><div class='add'>+# and returns &lt;tt&gt;field.strip&lt;/tt&gt;:</div><div class='add'>+#   strip_converter = proc {|field| field.strip }</div><div class='add'>+# In this call to &lt;tt&gt;CSV.parse&lt;/tt&gt;,</div><div class='add'>+# the keyword argument &lt;tt&gt;converters: string_converter&lt;/tt&gt;</div><div class='add'>+# specifies that:</div><div class='add'>+# - \Proc +string_converter+ is to be called for each parsed field.</div><div class='add'>+# - The converter's return value is to replace the +field+ value.</div><div class='add'>+# Example:</div><div class='add'>+#   string = " foo , 0 \n bar , 1 \n baz , 2 \n"</div><div class='add'>+#   array = CSV.parse(string, converters: strip_converter)</div><div class='add'>+#   array # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+#</div><div class='add'>+# A converter proc can receive a second argument, +field_info+,</div><div class='add'>+# that contains details about the field.</div><div class='add'>+# This modified +strip_converter+ displays its arguments:</div><div class='add'>+#   strip_converter = proc do |field, field_info|</div><div class='add'>+#     p [field, field_info]</div><div class='add'>+#     field.strip</div><div class='add'>+#   end</div><div class='add'>+#   string = " foo , 0 \n bar , 1 \n baz , 2 \n"</div><div class='add'>+#   array = CSV.parse(string, converters: strip_converter)</div><div class='add'>+#   array # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+# Output:</div><div class='add'>+#  [" foo ", #&lt;struct CSV::FieldInfo index=0, line=1, header=nil&gt;]</div><div class='add'>+#  [" 0 ", #&lt;struct CSV::FieldInfo index=1, line=1, header=nil&gt;]</div><div class='add'>+#  [" bar ", #&lt;struct CSV::FieldInfo index=0, line=2, header=nil&gt;]</div><div class='add'>+#  [" 1 ", #&lt;struct CSV::FieldInfo index=1, line=2, header=nil&gt;]</div><div class='add'>+#  [" baz ", #&lt;struct CSV::FieldInfo index=0, line=3, header=nil&gt;]</div><div class='add'>+#  [" 2 ", #&lt;struct CSV::FieldInfo index=1, line=3, header=nil&gt;]</div><div class='add'>+# Each CSV::FieldInfo object shows:</div><div class='add'>+# - The 0-based field index.</div><div class='add'>+# - The 1-based line index.</div><div class='add'>+# - The field header, if any.</div><div class='add'>+#</div><div class='add'>+# ===== Stored \Converters</div><div class='add'>+#</div><div class='add'>+# A converter may be given a name and stored in a structure where</div><div class='add'>+# the parsing methods can find it by name.</div><div class='add'>+#</div><div class='add'>+# The storage structure for field converters is the \Hash CSV::Converters.</div><div class='add'>+# It has several built-in converter procs:</div><div class='add'>+# - &lt;tt&gt;:integer&lt;/tt&gt;: converts each \String-embedded integer into a true \Integer.</div><div class='add'>+# - &lt;tt&gt;:float&lt;/tt&gt;: converts each \String-embedded float into a true \Float.</div><div class='add'>+# - &lt;tt&gt;:date&lt;/tt&gt;: converts each \String-embedded date into a true \Date.</div><div class='add'>+# - &lt;tt&gt;:date_time&lt;/tt&gt;: converts each \String-embedded date-time into a true \DateTime</div><div class='add'>+# .</div><div class='add'>+# This example creates a converter proc, then stores it:</div><div class='add'>+#   strip_converter = proc {|field| field.strip }</div><div class='add'>+#   CSV::Converters[:strip] = strip_converter</div><div class='add'>+# Then the parsing method call can refer to the converter</div><div class='add'>+# by its name, &lt;tt&gt;:strip&lt;/tt&gt;:</div><div class='add'>+#   string = " foo , 0 \n bar , 1 \n baz , 2 \n"</div><div class='add'>+#   array = CSV.parse(string, converters: :strip)</div><div class='add'>+#   array # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+#</div><div class='add'>+# The storage structure for header converters is the \Hash CSV::HeaderConverters,</div><div class='add'>+# which works in the same way.</div><div class='add'>+# It also has built-in converter procs:</div><div class='add'>+# - &lt;tt&gt;:downcase&lt;/tt&gt;: Downcases each header.</div><div class='add'>+# - &lt;tt&gt;:symbol&lt;/tt&gt;: Converts each header to a \Symbol.</div><div class='add'>+#</div><div class='add'>+# There is no such storage structure for write headers.</div><div class='add'>+#</div><div class='add'>+# In order for the parsing methods to access stored converters in non-main-Ractors, the</div><div class='add'>+# storage structure must be made shareable first.</div><div class='add'>+# Therefore, &lt;tt&gt;Ractor.make_shareable(CSV::Converters)&lt;/tt&gt; and</div><div class='add'>+# &lt;tt&gt;Ractor.make_shareable(CSV::HeaderConverters)&lt;/tt&gt; must be called before the creation</div><div class='add'>+# of Ractors that use the converters stored in these structures. (Since making the storage</div><div class='add'>+# structures shareable involves freezing them, any custom converters that are to be used</div><div class='add'>+# must be added first.)</div><div class='add'>+#</div><div class='add'>+# ===== Converter Lists</div><div class='add'>+#</div><div class='add'>+# A _converter_ _list_ is an \Array that may include any assortment of:</div><div class='add'>+# - Converter procs.</div><div class='add'>+# - Names of stored converters.</div><div class='add'>+# - Nested converter lists.</div><div class='add'>+#</div><div class='add'>+# Examples:</div><div class='add'>+#   numeric_converters = [:integer, :float]</div><div class='add'>+#   date_converters = [:date, :date_time]</div><div class='add'>+#   [numeric_converters, strip_converter]</div><div class='add'>+#   [strip_converter, date_converters, :float]</div><div class='add'>+#</div><div class='add'>+# Like a converter proc, a converter list may be named and stored in either</div><div class='add'>+# \CSV::Converters or CSV::HeaderConverters:</div><div class='add'>+#   CSV::Converters[:custom] = [strip_converter, date_converters, :float]</div><div class='add'>+#   CSV::HeaderConverters[:custom] = [:downcase, :symbol]</div><div class='add'>+#</div><div class='add'>+# There are two built-in converter lists:</div><div class='add'>+#   CSV::Converters[:numeric] # =&gt; [:integer, :float]</div><div class='add'>+#   CSV::Converters[:all] # =&gt; [:date_time, :numeric]</div><div class='add'>+#</div><div class='add'>+# ==== Field \Converters</div><div class='add'>+#</div><div class='add'>+# With no conversion, all parsed fields in all rows become Strings:</div><div class='add'>+#   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+#   ary = CSV.parse(string)</div><div class='add'>+#   ary # =&gt; # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+#</div><div class='add'>+# When you specify a field converter, each parsed field is passed to the converter;</div><div class='add'>+# its return value becomes the stored value for the field.</div><div class='add'>+# A converter might, for example, convert an integer embedded in a \String</div><div class='add'>+# into a true \Integer.</div><div class='add'>+# (In fact, that's what built-in field converter +:integer+ does.)</div><div class='add'>+#</div><div class='add'>+# There are three ways to use field \converters.</div><div class='add'>+#</div><div class='add'>+# - Using option {converters}[#class-CSV-label-Option+converters] with a parsing method:</div><div class='add'>+#     ary = CSV.parse(string, converters: :integer)</div><div class='add'>+#     ary # =&gt; [0, 1, 2] # =&gt; [["foo", 0], ["bar", 1], ["baz", 2]]</div><div class='add'>+# - Using option {converters}[#class-CSV-label-Option+converters] with a new \CSV instance:</div><div class='add'>+#     csv = CSV.new(string, converters: :integer)</div><div class='add'>+#     # Field converters in effect:</div><div class='add'>+#     csv.converters # =&gt; [:integer]</div><div class='add'>+#     csv.read # =&gt; [["foo", 0], ["bar", 1], ["baz", 2]]</div><div class='add'>+# - Using method #convert to add a field converter to a \CSV instance:</div><div class='add'>+#     csv = CSV.new(string)</div><div class='add'>+#     # Add a converter.</div><div class='add'>+#     csv.convert(:integer)</div><div class='add'>+#     csv.converters # =&gt; [:integer]</div><div class='add'>+#     csv.read # =&gt; [["foo", 0], ["bar", 1], ["baz", 2]]</div><div class='add'>+#</div><div class='add'>+# Installing a field converter does not affect already-read rows:</div><div class='add'>+#   csv = CSV.new(string)</div><div class='add'>+#   csv.shift # =&gt; ["foo", "0"]</div><div class='add'>+#   # Add a converter.</div><div class='add'>+#   csv.convert(:integer)</div><div class='add'>+#   csv.converters # =&gt; [:integer]</div><div class='add'>+#   csv.read # =&gt; [["bar", 1], ["baz", 2]]</div><div class='add'>+#</div><div class='add'>+# There are additional built-in \converters, and custom \converters are also supported.</div><div class='add'>+#</div><div class='add'>+# ===== Built-In Field \Converters</div><div class='add'>+#</div><div class='add'>+# The built-in field converters are in \Hash CSV::Converters:</div><div class='add'>+# - Each key is a field converter name.</div><div class='add'>+# - Each value is one of:</div><div class='add'>+#   - A \Proc field converter.</div><div class='add'>+#   - An \Array of field converter names.</div><div class='add'>+#</div><div class='add'>+# Display:</div><div class='add'>+#   CSV::Converters.each_pair do |name, value|</div><div class='add'>+#     if value.kind_of?(Proc)</div><div class='add'>+#       p [name, value.class]</div><div class='add'>+#     else</div><div class='add'>+#       p [name, value]</div><div class='add'>+#     end</div><div class='add'>+#   end</div><div class='add'>+# Output:</div><div class='add'>+#   [:integer, Proc]</div><div class='add'>+#   [:float, Proc]</div><div class='add'>+#   [:numeric, [:integer, :float]]</div><div class='add'>+#   [:date, Proc]</div><div class='add'>+#   [:date_time, Proc]</div><div class='add'>+#   [:all, [:date_time, :numeric]]</div><div class='add'>+#</div><div class='add'>+# Each of these converters transcodes values to UTF-8 before attempting conversion.</div><div class='add'>+# If a value cannot be transcoded to UTF-8 the conversion will</div><div class='add'>+# fail and the value will remain unconverted.</div><div class='add'>+#</div><div class='add'>+# Converter +:integer+ converts each field that Integer() accepts:</div><div class='add'>+#   data = '0,1,2,x'</div><div class='add'>+#   # Without the converter</div><div class='add'>+#   csv = CSV.parse_line(data)</div><div class='add'>+#   csv # =&gt; ["0", "1", "2", "x"]</div><div class='add'>+#   # With the converter</div><div class='add'>+#   csv = CSV.parse_line(data, converters: :integer)</div><div class='add'>+#   csv # =&gt; [0, 1, 2, "x"]</div><div class='add'>+#</div><div class='add'>+# Converter +:float+ converts each field that Float() accepts:</div><div class='add'>+#   data = '1.0,3.14159,x'</div><div class='add'>+#   # Without the converter</div><div class='add'>+#   csv = CSV.parse_line(data)</div><div class='add'>+#   csv # =&gt; ["1.0", "3.14159", "x"]</div><div class='add'>+#   # With the converter</div><div class='add'>+#   csv = CSV.parse_line(data, converters: :float)</div><div class='add'>+#   csv # =&gt; [1.0, 3.14159, "x"]</div><div class='add'>+#</div><div class='add'>+# Converter +:numeric+ converts with both +:integer+ and +:float+..</div><div class='add'>+#</div><div class='add'>+# Converter +:date+ converts each field that Date::parse accepts:</div><div class='add'>+#   data = '2001-02-03,x'</div><div class='add'>+#   # Without the converter</div><div class='add'>+#   csv = CSV.parse_line(data)</div><div class='add'>+#   csv # =&gt; ["2001-02-03", "x"]</div><div class='add'>+#   # With the converter</div><div class='add'>+#   csv = CSV.parse_line(data, converters: :date)</div><div class='add'>+#   csv # =&gt; [#&lt;Date: 2001-02-03 ((2451944j,0s,0n),+0s,2299161j)&gt;, "x"]</div><div class='add'>+#</div><div class='add'>+# Converter +:date_time+ converts each field that DateTime::parse accepts:</div><div class='add'>+#   data = '2020-05-07T14:59:00-05:00,x'</div><div class='add'>+#   # Without the converter</div><div class='add'>+#   csv = CSV.parse_line(data)</div><div class='add'>+#   csv # =&gt; ["2020-05-07T14:59:00-05:00", "x"]</div><div class='add'>+#   # With the converter</div><div class='add'>+#   csv = CSV.parse_line(data, converters: :date_time)</div><div class='add'>+#   csv # =&gt; [#&lt;DateTime: 2020-05-07T14:59:00-05:00 ((2458977j,71940s,0n),-18000s,2299161j)&gt;, "x"]</div><div class='add'>+#</div><div class='add'>+# Converter +:numeric+ converts with both +:date_time+ and +:numeric+..</div><div class='add'>+#</div><div class='add'>+# As seen above, method #convert adds \converters to a \CSV instance,</div><div class='add'>+# and method #converters returns an \Array of the \converters in effect:</div><div class='add'>+#   csv = CSV.new('0,1,2')</div><div class='add'>+#   csv.converters # =&gt; []</div><div class='add'>+#   csv.convert(:integer)</div><div class='add'>+#   csv.converters # =&gt; [:integer]</div><div class='add'>+#   csv.convert(:date)</div><div class='add'>+#   csv.converters # =&gt; [:integer, :date]</div><div class='add'>+#</div><div class='add'>+# ===== Custom Field \Converters</div><div class='add'>+#</div><div class='add'>+# You can define a custom field converter:</div><div class='add'>+#   strip_converter = proc {|field| field.strip }</div><div class='add'>+#   string = " foo , 0 \n bar , 1 \n baz , 2 \n"</div><div class='add'>+#   array = CSV.parse(string, converters: strip_converter)</div><div class='add'>+#   array # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+# You can register the converter in \Converters \Hash,</div><div class='add'>+# which allows you to refer to it by name:</div><div class='add'>+#   CSV::Converters[:strip] = strip_converter</div><div class='add'>+#   string = " foo , 0 \n bar , 1 \n baz , 2 \n"</div><div class='add'>+#   array = CSV.parse(string, converters: :strip)</div><div class='add'>+#   array # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+#</div><div class='add'>+# ==== Header \Converters</div><div class='add'>+#</div><div class='add'>+# Header converters operate only on headers (and not on other rows).</div><div class='add'>+#</div><div class='add'>+# There are three ways to use header \converters;</div><div class='add'>+# these examples use built-in header converter +:downcase+,</div><div class='add'>+# which downcases each parsed header.</div><div class='add'>+#</div><div class='add'>+# - Option +header_converters+ with a singleton parsing method:</div><div class='add'>+#     string = "Name,Count\nFoo,0\n,Bar,1\nBaz,2"</div><div class='add'>+#     tbl = CSV.parse(string, headers: true, header_converters: :downcase)</div><div class='add'>+#     tbl.class # =&gt; CSV::Table</div><div class='add'>+#     tbl.headers # =&gt; ["name", "count"]</div><div class='add'>+#</div><div class='add'>+# - Option +header_converters+ with a new \CSV instance:</div><div class='add'>+#     csv = CSV.new(string, header_converters: :downcase)</div><div class='add'>+#     # Header converters in effect:</div><div class='add'>+#     csv.header_converters # =&gt; [:downcase]</div><div class='add'>+#     tbl = CSV.parse(string, headers: true)</div><div class='add'>+#     tbl.headers # =&gt; ["Name", "Count"]</div><div class='add'>+#</div><div class='add'>+# - Method #header_convert adds a header converter to a \CSV instance:</div><div class='add'>+#     csv = CSV.new(string)</div><div class='add'>+#     # Add a header converter.</div><div class='add'>+#     csv.header_convert(:downcase)</div><div class='add'>+#     csv.header_converters # =&gt; [:downcase]</div><div class='add'>+#     tbl = CSV.parse(string, headers: true)</div><div class='add'>+#     tbl.headers # =&gt; ["Name", "Count"]</div><div class='add'>+#</div><div class='add'>+# ===== Built-In Header \Converters</div><div class='add'>+#</div><div class='add'>+# The built-in header \converters are in \Hash CSV::HeaderConverters.</div><div class='add'>+# The keys there are the names of the \converters:</div><div class='add'>+#   CSV::HeaderConverters.keys # =&gt; [:downcase, :symbol]</div><div class='add'>+#</div><div class='add'>+# Converter +:downcase+ converts each header by downcasing it:</div><div class='add'>+#   string = "Name,Count\nFoo,0\n,Bar,1\nBaz,2"</div><div class='add'>+#   tbl = CSV.parse(string, headers: true, header_converters: :downcase)</div><div class='add'>+#   tbl.class # =&gt; CSV::Table</div><div class='add'>+#   tbl.headers # =&gt; ["name", "count"]</div><div class='add'>+#</div><div class='add'>+# Converter +:symbol+ converts each header by making it into a \Symbol:</div><div class='add'>+#   string = "Name,Count\nFoo,0\n,Bar,1\nBaz,2"</div><div class='add'>+#   tbl = CSV.parse(string, headers: true, header_converters: :symbol)</div><div class='add'>+#   tbl.headers # =&gt; [:name, :count]</div><div class='add'>+# Details:</div><div class='add'>+# - Strips leading and trailing whitespace.</div><div class='add'>+# - Downcases the header.</div><div class='add'>+# - Replaces embedded spaces with underscores.</div><div class='add'>+# - Removes non-word characters.</div><div class='add'>+# - Makes the string into a \Symbol.</div><div class='add'>+#</div><div class='add'>+# ===== Custom Header \Converters</div><div class='add'>+#</div><div class='add'>+# You can define a custom header converter:</div><div class='add'>+#   upcase_converter = proc {|header| header.upcase }</div><div class='add'>+#   string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+#   table = CSV.parse(string, headers: true, header_converters: upcase_converter)</div><div class='add'>+#   table # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+#   table.headers # =&gt; ["NAME", "VALUE"]</div><div class='add'>+# You can register the converter in \HeaderConverters \Hash,</div><div class='add'>+# which allows you to refer to it by name:</div><div class='add'>+#   CSV::HeaderConverters[:upcase] = upcase_converter</div><div class='add'>+#   table = CSV.parse(string, headers: true, header_converters: :upcase)</div><div class='add'>+#   table # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+#   table.headers # =&gt; ["NAME", "VALUE"]</div><div class='add'>+#</div><div class='add'>+# ===== Write \Converters</div><div class='add'>+#</div><div class='add'>+# When you specify a write converter for generating \CSV,</div><div class='add'>+# each field to be written is passed to the converter;</div><div class='add'>+# its return value becomes the new value for the field.</div><div class='add'>+# A converter might, for example, strip whitespace from a field.</div><div class='add'>+#</div><div class='add'>+# Using no write converter (all fields unmodified):</div><div class='add'>+#   output_string = CSV.generate do |csv|</div><div class='add'>+#     csv &lt;&lt; [' foo ', 0]</div><div class='add'>+#     csv &lt;&lt; [' bar ', 1]</div><div class='add'>+#     csv &lt;&lt; [' baz ', 2]</div><div class='add'>+#   end</div><div class='add'>+#   output_string # =&gt; " foo ,0\n bar ,1\n baz ,2\n"</div><div class='add'>+# Using option +write_converters+ with two custom write converters:</div><div class='add'>+#   strip_converter = proc {|field| field.respond_to?(:strip) ? field.strip : field }</div><div class='add'>+#   upcase_converter = proc {|field| field.respond_to?(:upcase) ? field.upcase : field }</div><div class='add'>+#   write_converters = [strip_converter, upcase_converter]</div><div class='add'>+#   output_string = CSV.generate(write_converters: write_converters) do |csv|</div><div class='add'>+#     csv &lt;&lt; [' foo ', 0]</div><div class='add'>+#     csv &lt;&lt; [' bar ', 1]</div><div class='add'>+#     csv &lt;&lt; [' baz ', 2]</div><div class='add'>+#   end</div><div class='add'>+#   output_string # =&gt; "FOO,0\nBAR,1\nBAZ,2\n"</div><div class='ctx'> #</div><div class='del'>-# == CSV and Character Encodings (M17n or Multilingualization)</div><div class='add'>+# === Character Encodings (M17n or Multilingualization)</div><div class='ctx'> #</div><div class='ctx'> # This new CSV parser is m17n savvy.  The parser works in the Encoding of the IO</div><div class='del'>-# or String object being read from or written to.  Your data is never transcoded</div><div class='add'>+# or String object being read from or written to. Your data is never transcoded</div><div class='ctx'> # (unless you ask Ruby to transcode it for you) and will literally be parsed in</div><div class='del'>-# the Encoding it is in.  Thus CSV will return Arrays or Rows of Strings in the</div><div class='del'>-# Encoding of your data.  This is accomplished by transcoding the parser itself</div><div class='add'>+# the Encoding it is in. Thus CSV will return Arrays or Rows of Strings in the</div><div class='add'>+# Encoding of your data. This is accomplished by transcoding the parser itself</div><div class='ctx'> # into your Encoding.</div><div class='ctx'> #</div><div class='ctx'> # Some transcoding must take place, of course, to accomplish this multiencoding</div><div class='del'>-# support.  For example, &lt;tt&gt;:col_sep&lt;/tt&gt;, &lt;tt&gt;:row_sep&lt;/tt&gt;, and</div><div class='add'>+# support. For example, &lt;tt&gt;:col_sep&lt;/tt&gt;, &lt;tt&gt;:row_sep&lt;/tt&gt;, and</div><div class='ctx'> # &lt;tt&gt;:quote_char&lt;/tt&gt; must be transcoded to match your data.  Hopefully this</div><div class='ctx'> # makes the entire process feel transparent, since CSV's defaults should just</div><div class='del'>-# magically work for your data.  However, you can set these values manually in</div><div class='add'>+# magically work for your data. However, you can set these values manually in</div><div class='ctx'> # the target Encoding to avoid the translation.</div><div class='ctx'> #</div><div class='ctx'> # It's also important to note that while all of CSV's core parser is now</div><div class='del'>-# Encoding agnostic, some features are not.  For example, the built-in</div><div class='add'>+# Encoding agnostic, some features are not. For example, the built-in</div><div class='ctx'> # converters will try to transcode data to UTF-8 before making conversions.</div><div class='ctx'> # Again, you can provide custom converters that are aware of your Encodings to</div><div class='del'>-# avoid this translation.  It's just too hard for me to support native</div><div class='add'>+# avoid this translation. It's just too hard for me to support native</div><div class='ctx'> # conversions in all of Ruby's Encodings.</div><div class='ctx'> #</div><div class='del'>-# Anyway, the practical side of this is simple:  make sure IO and String objects</div><div class='add'>+# Anyway, the practical side of this is simple: make sure IO and String objects</div><div class='ctx'> # passed into CSV have the proper Encoding set and everything should just work.</div><div class='ctx'> # CSV methods that allow you to open IO objects (CSV::foreach(), CSV::open(),</div><div class='ctx'> # CSV::read(), and CSV::readlines()) do allow you to specify the Encoding.</div><div class='ctx'> #</div><div class='ctx'> # One minor exception comes when generating CSV into a String with an Encoding</div><div class='del'>-# that is not ASCII compatible.  There's no existing data for CSV to use to</div><div class='add'>+# that is not ASCII compatible. There's no existing data for CSV to use to</div><div class='ctx'> # prepare itself and thus you will probably need to manually specify the desired</div><div class='del'>-# Encoding for most of those cases.  It will try to guess using the fields in a</div><div class='add'>+# Encoding for most of those cases. It will try to guess using the fields in a</div><div class='ctx'> # row of output though, when using CSV::generate_line() or Array#to_csv().</div><div class='ctx'> #</div><div class='ctx'> # I try to point out any other Encoding issues in the documentation of methods</div><div class='ctx'> # as they come up.</div><div class='ctx'> #</div><div class='ctx'> # This has been tested to the best of my ability with all non-"dummy" Encodings</div><div class='del'>-# Ruby ships with.  However, it is brave new code and may have some bugs.</div><div class='add'>+# Ruby ships with. However, it is brave new code and may have some bugs.</div><div class='ctx'> # Please feel free to {report}[mailto:james@grayproductions.net] any issues you</div><div class='ctx'> # find with it.</div><div class='ctx'> #</div><div class='hunk'>@@ -297,8 +863,9 @@ class CSV</div><div class='ctx'>   # &lt;b&gt;&lt;tt&gt;index&lt;/tt&gt;&lt;/b&gt;::  The zero-based index of the field in its row.</div><div class='ctx'>   # &lt;b&gt;&lt;tt&gt;line&lt;/tt&gt;&lt;/b&gt;::   The line of the data source this row is from.</div><div class='ctx'>   # &lt;b&gt;&lt;tt&gt;header&lt;/tt&gt;&lt;/b&gt;:: The header for the column, when available.</div><div class='add'>+  # &lt;b&gt;&lt;tt&gt;quoted?&lt;/tt&gt;&lt;/b&gt;:: True or false, whether the original value is quoted or not.</div><div class='ctx'>   #</div><div class='del'>-  FieldInfo = Struct.new(:index, :line, :header)</div><div class='add'>+  FieldInfo = Struct.new(:index, :line, :header, :quoted?)</div><div class='ctx'> </div><div class='ctx'>   # A Regexp used to find and convert some common Date formats.</div><div class='ctx'>   DateMatcher     = / \A(?: (\w+,?\s+)?\w+\s+\d{1,2},?\s+\d{2,4} |</div><div class='hunk'>@@ -306,39 +873,20 @@ class CSV</div><div class='ctx'>   # A Regexp used to find and convert some common DateTime formats.</div><div class='ctx'>   DateTimeMatcher =</div><div class='ctx'>     / \A(?: (\w+,?\s+)?\w+\s+\d{1,2}\s+\d{1,2}:\d{1,2}:\d{1,2},?\s+\d{2,4} |</div><div class='del'>-            \d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2} |</div><div class='del'>-            # ISO-8601</div><div class='add'>+            # ISO-8601 and RFC-3339 (space instead of T) recognized by DateTime.parse</div><div class='ctx'>             \d{4}-\d{2}-\d{2}</div><div class='del'>-              (?:T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?(?:[+-]\d{2}(?::\d{2})|Z)?)?)?</div><div class='add'>+              (?:[T\s]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?(?:[+-]\d{2}(?::\d{2})|Z)?)?)?</div><div class='ctx'>         )\z /x</div><div class='ctx'> </div><div class='ctx'>   # The encoding used by all converters.</div><div class='ctx'>   ConverterEncoding = Encoding.find("UTF-8")</div><div class='ctx'> </div><div class='add'>+  # A \Hash containing the names and \Procs for the built-in field converters.</div><div class='add'>+  # See {Built-In Field Converters}[#class-CSV-label-Built-In+Field+Converters].</div><div class='ctx'>   #</div><div class='del'>-  # This Hash holds the built-in converters of CSV that can be accessed by name.</div><div class='del'>-  # You can select Converters with CSV.convert() or through the +options+ Hash</div><div class='del'>-  # passed to CSV::new().</div><div class='del'>-  #</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:integer&lt;/tt&gt;&lt;/b&gt;::    Converts any field Integer() accepts.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:float&lt;/tt&gt;&lt;/b&gt;::      Converts any field Float() accepts.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:numeric&lt;/tt&gt;&lt;/b&gt;::    A combination of &lt;tt&gt;:integer&lt;/tt&gt;</div><div class='del'>-  #                               and &lt;tt&gt;:float&lt;/tt&gt;.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:date&lt;/tt&gt;&lt;/b&gt;::       Converts any field Date::parse() accepts.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:date_time&lt;/tt&gt;&lt;/b&gt;::  Converts any field DateTime::parse() accepts.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:all&lt;/tt&gt;&lt;/b&gt;::        All built-in converters.  A combination of</div><div class='del'>-  #                               &lt;tt&gt;:date_time&lt;/tt&gt; and &lt;tt&gt;:numeric&lt;/tt&gt;.</div><div class='del'>-  #</div><div class='del'>-  # All built-in converters transcode field data to UTF-8 before attempting a</div><div class='del'>-  # conversion.  If your data cannot be transcoded to UTF-8 the conversion will</div><div class='del'>-  # fail and the field will remain unchanged.</div><div class='del'>-  #</div><div class='del'>-  # This Hash is intentionally left unfrozen and users should feel free to add</div><div class='del'>-  # values to it that can be accessed by all CSV objects.</div><div class='del'>-  #</div><div class='del'>-  # To add a combo field, the value should be an Array of names.  Combo fields</div><div class='del'>-  # can be nested with other combo fields.</div><div class='del'>-  #</div><div class='add'>+  # This \Hash is intentionally left unfrozen, and may be extended with</div><div class='add'>+  # custom field converters.</div><div class='add'>+  # See {Custom Field Converters}[#class-CSV-label-Custom+Field+Converters].</div><div class='ctx'>   Converters  = {</div><div class='ctx'>     integer:   lambda { |f|</div><div class='ctx'>       Integer(f.encode(ConverterEncoding)) rescue f</div><div class='hunk'>@@ -366,996 +914,1780 @@ class CSV</div><div class='ctx'>     all:       [:date_time, :numeric],</div><div class='ctx'>   }</div><div class='ctx'> </div><div class='add'>+  # A \Hash containing the names and \Procs for the built-in header converters.</div><div class='add'>+  # See {Built-In Header Converters}[#class-CSV-label-Built-In+Header+Converters].</div><div class='ctx'>   #</div><div class='del'>-  # This Hash holds the built-in header converters of CSV that can be accessed</div><div class='del'>-  # by name.  You can select HeaderConverters with CSV.header_convert() or</div><div class='del'>-  # through the +options+ Hash passed to CSV::new().</div><div class='del'>-  #</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:downcase&lt;/tt&gt;&lt;/b&gt;::  Calls downcase() on the header String.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:symbol&lt;/tt&gt;&lt;/b&gt;::    Leading/trailing spaces are dropped, string is</div><div class='del'>-  #                              downcased, remaining spaces are replaced with</div><div class='del'>-  #                              underscores, non-word characters are dropped,</div><div class='del'>-  #                              and finally to_sym() is called.</div><div class='del'>-  #</div><div class='del'>-  # All built-in header converters transcode header data to UTF-8 before</div><div class='del'>-  # attempting a conversion.  If your data cannot be transcoded to UTF-8 the</div><div class='del'>-  # conversion will fail and the header will remain unchanged.</div><div class='del'>-  #</div><div class='del'>-  # This Hash is intentionally left unfrozen and users should feel free to add</div><div class='del'>-  # values to it that can be accessed by all CSV objects.</div><div class='del'>-  #</div><div class='del'>-  # To add a combo field, the value should be an Array of names.  Combo fields</div><div class='del'>-  # can be nested with other combo fields.</div><div class='del'>-  #</div><div class='add'>+  # This \Hash is intentionally left unfrozen, and may be extended with</div><div class='add'>+  # custom field converters.</div><div class='add'>+  # See {Custom Header Converters}[#class-CSV-label-Custom+Header+Converters].</div><div class='ctx'>   HeaderConverters = {</div><div class='ctx'>     downcase: lambda { |h| h.encode(ConverterEncoding).downcase },</div><div class='ctx'>     symbol:   lambda { |h|</div><div class='ctx'>       h.encode(ConverterEncoding).downcase.gsub(/[^\s\w]+/, "").strip.</div><div class='ctx'>                                            gsub(/\s+/, "_").to_sym</div><div class='del'>-    }</div><div class='add'>+    },</div><div class='add'>+    symbol_raw: lambda { |h| h.encode(ConverterEncoding).to_sym }</div><div class='ctx'>   }</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # The options used when no overrides are given by calling code.  They are:</div><div class='del'>-  #</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:col_sep&lt;/tt&gt;&lt;/b&gt;::            &lt;tt&gt;","&lt;/tt&gt;</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:row_sep&lt;/tt&gt;&lt;/b&gt;::            &lt;tt&gt;:auto&lt;/tt&gt;</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:quote_char&lt;/tt&gt;&lt;/b&gt;::         &lt;tt&gt;'"'&lt;/tt&gt;</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:field_size_limit&lt;/tt&gt;&lt;/b&gt;::   +nil+</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:converters&lt;/tt&gt;&lt;/b&gt;::         +nil+</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:unconverted_fields&lt;/tt&gt;&lt;/b&gt;:: +nil+</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:headers&lt;/tt&gt;&lt;/b&gt;::            +false+</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:return_headers&lt;/tt&gt;&lt;/b&gt;::     +false+</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:header_converters&lt;/tt&gt;&lt;/b&gt;::  +nil+</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:skip_blanks&lt;/tt&gt;&lt;/b&gt;::        +false+</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:force_quotes&lt;/tt&gt;&lt;/b&gt;::       +false+</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:skip_lines&lt;/tt&gt;&lt;/b&gt;::         +nil+</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:liberal_parsing&lt;/tt&gt;&lt;/b&gt;::    +false+</div><div class='del'>-  #</div><div class='add'>+  # Default values for method options.</div><div class='ctx'>   DEFAULT_OPTIONS = {</div><div class='add'>+    # For both parsing and generating.</div><div class='ctx'>     col_sep:            ",",</div><div class='ctx'>     row_sep:            :auto,</div><div class='ctx'>     quote_char:         '"',</div><div class='add'>+    # For parsing.</div><div class='ctx'>     field_size_limit:   nil,</div><div class='add'>+    max_field_size:     nil,</div><div class='ctx'>     converters:         nil,</div><div class='ctx'>     unconverted_fields: nil,</div><div class='ctx'>     headers:            false,</div><div class='ctx'>     return_headers:     false,</div><div class='ctx'>     header_converters:  nil,</div><div class='ctx'>     skip_blanks:        false,</div><div class='del'>-    force_quotes:       false,</div><div class='ctx'>     skip_lines:         nil,</div><div class='ctx'>     liberal_parsing:    false,</div><div class='add'>+    nil_value:          nil,</div><div class='add'>+    empty_value:        "",</div><div class='add'>+    strip:              false,</div><div class='add'>+    # For generating.</div><div class='add'>+    write_headers:      nil,</div><div class='add'>+    quote_empty:        true,</div><div class='add'>+    force_quotes:       false,</div><div class='add'>+    write_converters:   nil,</div><div class='add'>+    write_nil_value:    nil,</div><div class='add'>+    write_empty_value:  "",</div><div class='ctx'>   }.freeze</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # This method will return a CSV instance, just like CSV::new(), but the</div><div class='del'>-  # instance will be cached and returned for all future calls to this method for</div><div class='del'>-  # the same +data+ object (tested by Object#object_id()) with the same</div><div class='del'>-  # +options+.</div><div class='del'>-  #</div><div class='del'>-  # If a block is given, the instance is passed to the block and the return</div><div class='del'>-  # value becomes the return value of the block.</div><div class='del'>-  #</div><div class='del'>-  def self.instance(data = $stdout, **options)</div><div class='del'>-    # create a _signature_ for this method call, data object and options</div><div class='del'>-    sig = [data.object_id] +</div><div class='del'>-          options.values_at(*DEFAULT_OPTIONS.keys.sort_by { |sym| sym.to_s })</div><div class='add'>+  class &lt;&lt; self</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   instance(string, **options)</div><div class='add'>+    #   instance(io = $stdout, **options)</div><div class='add'>+    #   instance(string, **options) {|csv| ... }</div><div class='add'>+    #   instance(io = $stdout, **options) {|csv| ... }</div><div class='add'>+    #</div><div class='add'>+    # Creates or retrieves cached \CSV objects.</div><div class='add'>+    # For arguments and options, see CSV.new.</div><div class='add'>+    #</div><div class='add'>+    # This API is not Ractor-safe.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # With no block given, returns a \CSV object.</div><div class='add'>+    #</div><div class='add'>+    # The first call to +instance+ creates and caches a \CSV object:</div><div class='add'>+    #   s0 = 's0'</div><div class='add'>+    #   csv0 = CSV.instance(s0)</div><div class='add'>+    #   csv0.class # =&gt; CSV</div><div class='add'>+    #</div><div class='add'>+    # Subsequent calls to +instance+ with that _same_ +string+ or +io+</div><div class='add'>+    # retrieve that same cached object:</div><div class='add'>+    #   csv1 = CSV.instance(s0)</div><div class='add'>+    #   csv1.class # =&gt; CSV</div><div class='add'>+    #   csv1.equal?(csv0) # =&gt; true # Same CSV object</div><div class='add'>+    #</div><div class='add'>+    # A subsequent call to +instance+ with a _different_ +string+ or +io+</div><div class='add'>+    # creates and caches a _different_ \CSV object.</div><div class='add'>+    #   s1 = 's1'</div><div class='add'>+    #   csv2 = CSV.instance(s1)</div><div class='add'>+    #   csv2.equal?(csv0) # =&gt; false # Different CSV object</div><div class='add'>+    #</div><div class='add'>+    # All the cached objects remains available:</div><div class='add'>+    #   csv3 = CSV.instance(s0)</div><div class='add'>+    #   csv3.equal?(csv0) # true # Same CSV object</div><div class='add'>+    #   csv4 = CSV.instance(s1)</div><div class='add'>+    #   csv4.equal?(csv2) # true # Same CSV object</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # When a block is given, calls the block with the created or retrieved</div><div class='add'>+    # \CSV object; returns the block's return value:</div><div class='add'>+    #   CSV.instance(s0) {|csv| :foo } # =&gt; :foo</div><div class='add'>+    def instance(data = $stdout, **options)</div><div class='add'>+      # create a _signature_ for this method call, data object and options</div><div class='add'>+      sig = [data.object_id] +</div><div class='add'>+            options.values_at(*DEFAULT_OPTIONS.keys)</div><div class='add'>+</div><div class='add'>+      # fetch or create the instance for this signature</div><div class='add'>+      @@instances ||= Hash.new</div><div class='add'>+      instance = (@@instances[sig] ||= new(data, **options))</div><div class='add'>+</div><div class='add'>+      if block_given?</div><div class='add'>+        yield instance  # run block, if given, returning result</div><div class='add'>+      else</div><div class='add'>+        instance        # or return the instance</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-    # fetch or create the instance for this signature</div><div class='del'>-    @@instances ||= Hash.new</div><div class='del'>-    instance = (@@instances[sig] ||= new(data, options))</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   filter(in_string_or_io, **options) {|row| ... } -&gt; array_of_arrays or csv_table</div><div class='add'>+    #   filter(in_string_or_io, out_string_or_io, **options) {|row| ... } -&gt; array_of_arrays or csv_table</div><div class='add'>+    #   filter(**options) {|row| ... } -&gt; array_of_arrays or csv_table</div><div class='add'>+    #</div><div class='add'>+    # - Parses \CSV from a source (\String, \IO stream, or ARGF).</div><div class='add'>+    # - Calls the given block with each parsed row:</div><div class='add'>+    #   - Without headers, each row is an \Array.</div><div class='add'>+    #   - With headers, each row is a CSV::Row.</div><div class='add'>+    # - Generates \CSV to an output (\String, \IO stream, or STDOUT).</div><div class='add'>+    # - Returns the parsed source:</div><div class='add'>+    #   - Without headers, an \Array of \Arrays.</div><div class='add'>+    #   - With headers, a CSV::Table.</div><div class='add'>+    #</div><div class='add'>+    # When +in_string_or_io+ is given, but not +out_string_or_io+,</div><div class='add'>+    # parses from the given +in_string_or_io+</div><div class='add'>+    # and generates to STDOUT.</div><div class='add'>+    #</div><div class='add'>+    # \String input without headers:</div><div class='add'>+    #</div><div class='add'>+    #   in_string = "foo,0\nbar,1\nbaz,2"</div><div class='add'>+    #   CSV.filter(in_string) do |row|</div><div class='add'>+    #     row[0].upcase!</div><div class='add'>+    #     row[1] = - row[1].to_i</div><div class='add'>+    #   end # =&gt; [["FOO", 0], ["BAR", -1], ["BAZ", -2]]</div><div class='add'>+    #</div><div class='add'>+    # Output (to STDOUT):</div><div class='add'>+    #</div><div class='add'>+    #   FOO,0</div><div class='add'>+    #   BAR,-1</div><div class='add'>+    #   BAZ,-2</div><div class='add'>+    #</div><div class='add'>+    # \String input with headers:</div><div class='add'>+    #</div><div class='add'>+    #   in_string = "Name,Value\nfoo,0\nbar,1\nbaz,2"</div><div class='add'>+    #   CSV.filter(in_string, headers: true) do |row|</div><div class='add'>+    #     row[0].upcase!</div><div class='add'>+    #     row[1] = - row[1].to_i</div><div class='add'>+    #   end # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    #</div><div class='add'>+    # Output (to STDOUT):</div><div class='add'>+    #</div><div class='add'>+    #   Name,Value</div><div class='add'>+    #   FOO,0</div><div class='add'>+    #   BAR,-1</div><div class='add'>+    #   BAZ,-2</div><div class='add'>+    #</div><div class='add'>+    # \IO stream input without headers:</div><div class='add'>+    #</div><div class='add'>+    #   File.write('t.csv', "foo,0\nbar,1\nbaz,2")</div><div class='add'>+    #   File.open('t.csv') do |in_io|</div><div class='add'>+    #     CSV.filter(in_io) do |row|</div><div class='add'>+    #       row[0].upcase!</div><div class='add'>+    #       row[1] = - row[1].to_i</div><div class='add'>+    #     end</div><div class='add'>+    #   end # =&gt; [["FOO", 0], ["BAR", -1], ["BAZ", -2]]</div><div class='add'>+    #</div><div class='add'>+    # Output (to STDOUT):</div><div class='add'>+    #</div><div class='add'>+    #   FOO,0</div><div class='add'>+    #   BAR,-1</div><div class='add'>+    #   BAZ,-2</div><div class='add'>+    #</div><div class='add'>+    # \IO stream input with headers:</div><div class='add'>+    #</div><div class='add'>+    #   File.write('t.csv', "Name,Value\nfoo,0\nbar,1\nbaz,2")</div><div class='add'>+    #   File.open('t.csv') do |in_io|</div><div class='add'>+    #     CSV.filter(in_io, headers: true) do |row|</div><div class='add'>+    #       row[0].upcase!</div><div class='add'>+    #       row[1] = - row[1].to_i</div><div class='add'>+    #     end</div><div class='add'>+    #   end # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    #</div><div class='add'>+    # Output (to STDOUT):</div><div class='add'>+    #</div><div class='add'>+    #   Name,Value</div><div class='add'>+    #   FOO,0</div><div class='add'>+    #   BAR,-1</div><div class='add'>+    #   BAZ,-2</div><div class='add'>+    #</div><div class='add'>+    # When both +in_string_or_io+ and +out_string_or_io+ are given,</div><div class='add'>+    # parses from +in_string_or_io+ and generates to +out_string_or_io+.</div><div class='add'>+    #</div><div class='add'>+    # \String output without headers:</div><div class='add'>+    #</div><div class='add'>+    #   in_string = "foo,0\nbar,1\nbaz,2"</div><div class='add'>+    #   out_string = ''</div><div class='add'>+    #   CSV.filter(in_string, out_string) do |row|</div><div class='add'>+    #     row[0].upcase!</div><div class='add'>+    #     row[1] = - row[1].to_i</div><div class='add'>+    #   end # =&gt; [["FOO", 0], ["BAR", -1], ["BAZ", -2]]</div><div class='add'>+    #   out_string # =&gt; "FOO,0\nBAR,-1\nBAZ,-2\n"</div><div class='add'>+    #</div><div class='add'>+    # \String output with headers:</div><div class='add'>+    #</div><div class='add'>+    #   in_string = "Name,Value\nfoo,0\nbar,1\nbaz,2"</div><div class='add'>+    #   out_string = ''</div><div class='add'>+    #   CSV.filter(in_string, out_string, headers: true) do |row|</div><div class='add'>+    #     row[0].upcase!</div><div class='add'>+    #     row[1] = - row[1].to_i</div><div class='add'>+    #   end # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    #   out_string # =&gt; "Name,Value\nFOO,0\nBAR,-1\nBAZ,-2\n"</div><div class='add'>+    #</div><div class='add'>+    # \IO stream output without headers:</div><div class='add'>+    #</div><div class='add'>+    #   in_string = "foo,0\nbar,1\nbaz,2"</div><div class='add'>+    #   File.open('t.csv', 'w') do |out_io|</div><div class='add'>+    #     CSV.filter(in_string, out_io) do |row|</div><div class='add'>+    #       row[0].upcase!</div><div class='add'>+    #       row[1] = - row[1].to_i</div><div class='add'>+    #     end</div><div class='add'>+    #   end # =&gt; [["FOO", 0], ["BAR", -1], ["BAZ", -2]]</div><div class='add'>+    #   File.read('t.csv') # =&gt; "FOO,0\nBAR,-1\nBAZ,-2\n"</div><div class='add'>+    #</div><div class='add'>+    # \IO stream output with headers:</div><div class='add'>+    #</div><div class='add'>+    #   in_string = "Name,Value\nfoo,0\nbar,1\nbaz,2"</div><div class='add'>+    #   File.open('t.csv', 'w') do |out_io|</div><div class='add'>+    #     CSV.filter(in_string, out_io, headers: true) do |row|</div><div class='add'>+    #       row[0].upcase!</div><div class='add'>+    #       row[1] = - row[1].to_i</div><div class='add'>+    #     end</div><div class='add'>+    #   end # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    #   File.read('t.csv') # =&gt; "Name,Value\nFOO,0\nBAR,-1\nBAZ,-2\n"</div><div class='add'>+    #</div><div class='add'>+    # When neither +in_string_or_io+ nor +out_string_or_io+ given,</div><div class='add'>+    # parses from {ARGF}[rdoc-ref:ARGF]</div><div class='add'>+    # and generates to STDOUT.</div><div class='add'>+    #</div><div class='add'>+    # Without headers:</div><div class='add'>+    #</div><div class='add'>+    #   # Put Ruby code into a file.</div><div class='add'>+    #   ruby = &lt;&lt;-EOT</div><div class='add'>+    #     require 'csv'</div><div class='add'>+    #     CSV.filter do |row|</div><div class='add'>+    #       row[0].upcase!</div><div class='add'>+    #       row[1] = - row[1].to_i</div><div class='add'>+    #     end</div><div class='add'>+    #   EOT</div><div class='add'>+    #   File.write('t.rb', ruby)</div><div class='add'>+    #   # Put some CSV into a file.</div><div class='add'>+    #   File.write('t.csv', "foo,0\nbar,1\nbaz,2")</div><div class='add'>+    #   # Run the Ruby code with CSV filename as argument.</div><div class='add'>+    #   system(Gem.ruby, "t.rb", "t.csv")</div><div class='add'>+    #</div><div class='add'>+    # Output (to STDOUT):</div><div class='add'>+    #</div><div class='add'>+    #   FOO,0</div><div class='add'>+    #   BAR,-1</div><div class='add'>+    #   BAZ,-2</div><div class='add'>+    #</div><div class='add'>+    # With headers:</div><div class='add'>+    #</div><div class='add'>+    #   # Put Ruby code into a file.</div><div class='add'>+    #   ruby = &lt;&lt;-EOT</div><div class='add'>+    #     require 'csv'</div><div class='add'>+    #     CSV.filter(headers: true) do |row|</div><div class='add'>+    #       row[0].upcase!</div><div class='add'>+    #       row[1] = - row[1].to_i</div><div class='add'>+    #     end</div><div class='add'>+    #   EOT</div><div class='add'>+    #   File.write('t.rb', ruby)</div><div class='add'>+    #   # Put some CSV into a file.</div><div class='add'>+    #   File.write('t.csv', "Name,Value\nfoo,0\nbar,1\nbaz,2")</div><div class='add'>+    #   # Run the Ruby code with CSV filename as argument.</div><div class='add'>+    #   system(Gem.ruby, "t.rb", "t.csv")</div><div class='add'>+    #</div><div class='add'>+    # Output (to STDOUT):</div><div class='add'>+    #</div><div class='add'>+    #   Name,Value</div><div class='add'>+    #   FOO,0</div><div class='add'>+    #   BAR,-1</div><div class='add'>+    #   BAZ,-2</div><div class='add'>+    #</div><div class='add'>+    # Arguments:</div><div class='add'>+    #</div><div class='add'>+    # * Argument +in_string_or_io+ must be a \String or an \IO stream.</div><div class='add'>+    # * Argument +out_string_or_io+ must be a \String or an \IO stream.</div><div class='add'>+    # * Arguments &lt;tt&gt;**options&lt;/tt&gt; must be keyword options.</div><div class='add'>+    #   See {Options for Parsing}[#class-CSV-label-Options+for+Parsing].</div><div class='add'>+    def filter(input=nil, output=nil, **options)</div><div class='add'>+      # parse options for input, output, or both</div><div class='add'>+      in_options, out_options = Hash.new, {row_sep: InputRecordSeparator.value}</div><div class='add'>+      options.each do |key, value|</div><div class='add'>+        case key</div><div class='add'>+        when /\Ain(?:put)?_(.+)\Z/</div><div class='add'>+          in_options[$1.to_sym] = value</div><div class='add'>+        when /\Aout(?:put)?_(.+)\Z/</div><div class='add'>+          out_options[$1.to_sym] = value</div><div class='add'>+        else</div><div class='add'>+          in_options[key]  = value</div><div class='add'>+          out_options[key] = value</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-    if block_given?</div><div class='del'>-      yield instance  # run block, if given, returning result</div><div class='del'>-    else</div><div class='del'>-      instance        # or return the instance</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='add'>+      # build input and output wrappers</div><div class='add'>+      input  = new(input  || ARGF, **in_options)</div><div class='add'>+      output = new(output || $stdout, **out_options)</div><div class='add'>+</div><div class='add'>+      # process headers</div><div class='add'>+      need_manual_header_output =</div><div class='add'>+        (in_options[:headers] and</div><div class='add'>+         out_options[:headers] == true and</div><div class='add'>+         out_options[:write_headers])</div><div class='add'>+      if need_manual_header_output</div><div class='add'>+        first_row = input.shift</div><div class='add'>+        if first_row</div><div class='add'>+          if first_row.is_a?(Row)</div><div class='add'>+            headers = first_row.headers</div><div class='add'>+            yield headers</div><div class='add'>+            output &lt;&lt; headers</div><div class='add'>+          end</div><div class='add'>+          yield first_row</div><div class='add'>+          output &lt;&lt; first_row</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   filter( **options ) { |row| ... }</div><div class='del'>-  #   filter( input, **options ) { |row| ... }</div><div class='del'>-  #   filter( input, output, **options ) { |row| ... }</div><div class='del'>-  #</div><div class='del'>-  # This method is a convenience for building Unix-like filters for CSV data.</div><div class='del'>-  # Each row is yielded to the provided block which can alter it as needed.</div><div class='del'>-  # After the block returns, the row is appended to +output+ altered or not.</div><div class='del'>-  #</div><div class='del'>-  # The +input+ and +output+ arguments can be anything CSV::new() accepts</div><div class='del'>-  # (generally String or IO objects).  If not given, they default to</div><div class='del'>-  # &lt;tt&gt;ARGF&lt;/tt&gt; and &lt;tt&gt;$stdout&lt;/tt&gt;.</div><div class='del'>-  #</div><div class='del'>-  # The +options+ parameter is also filtered down to CSV::new() after some</div><div class='del'>-  # clever key parsing.  Any key beginning with &lt;tt&gt;:in_&lt;/tt&gt; or</div><div class='del'>-  # &lt;tt&gt;:input_&lt;/tt&gt; will have that leading identifier stripped and will only</div><div class='del'>-  # be used in the +options+ Hash for the +input+ object.  Keys starting with</div><div class='del'>-  # &lt;tt&gt;:out_&lt;/tt&gt; or &lt;tt&gt;:output_&lt;/tt&gt; affect only +output+.  All other keys</div><div class='del'>-  # are assigned to both objects.</div><div class='del'>-  #</div><div class='del'>-  # The &lt;tt&gt;:output_row_sep&lt;/tt&gt; +option+ defaults to</div><div class='del'>-  # &lt;tt&gt;$INPUT_RECORD_SEPARATOR&lt;/tt&gt; (&lt;tt&gt;$/&lt;/tt&gt;).</div><div class='del'>-  #</div><div class='del'>-  def self.filter(input=nil, output=nil, **options)</div><div class='del'>-    # parse options for input, output, or both</div><div class='del'>-    in_options, out_options = Hash.new, {row_sep: $INPUT_RECORD_SEPARATOR}</div><div class='del'>-    options.each do |key, value|</div><div class='del'>-      case key.to_s</div><div class='del'>-      when /\Ain(?:put)?_(.+)\Z/</div><div class='del'>-        in_options[$1.to_sym] = value</div><div class='del'>-      when /\Aout(?:put)?_(.+)\Z/</div><div class='del'>-        out_options[$1.to_sym] = value</div><div class='del'>-      else</div><div class='del'>-        in_options[key]  = value</div><div class='del'>-        out_options[key] = value</div><div class='add'>+      # read, yield, write</div><div class='add'>+      input.each do |row|</div><div class='add'>+        yield row</div><div class='add'>+        output &lt;&lt; row</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='del'>-    # build input and output wrappers</div><div class='del'>-    input  = new(input  || ARGF,    in_options)</div><div class='del'>-    output = new(output || $stdout, out_options)</div><div class='del'>-</div><div class='del'>-    # read, yield, write</div><div class='del'>-    input.each do |row|</div><div class='del'>-      yield row</div><div class='del'>-      output &lt;&lt; row</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # This method is intended as the primary interface for reading CSV files.  You</div><div class='del'>-  # pass a +path+ and any +options+ you wish to set for the read.  Each row of</div><div class='del'>-  # file will be passed to the provided +block+ in turn.</div><div class='del'>-  #</div><div class='del'>-  # The +options+ parameter can be anything CSV::new() understands.  This method</div><div class='del'>-  # also understands an additional &lt;tt&gt;:encoding&lt;/tt&gt; parameter that you can use</div><div class='del'>-  # to specify the Encoding of the data in the file to be read. You must provide</div><div class='del'>-  # this unless your data is in Encoding::default_external().  CSV will use this</div><div class='del'>-  # to determine how to parse the data.  You may provide a second Encoding to</div><div class='del'>-  # have the data transcoded as it is read.  For example,</div><div class='del'>-  # &lt;tt&gt;encoding: "UTF-32BE:UTF-8"&lt;/tt&gt; would read UTF-32BE data from the file</div><div class='del'>-  # but transcode it to UTF-8 before CSV parses it.</div><div class='del'>-  #</div><div class='del'>-  def self.foreach(path, **options, &amp;block)</div><div class='del'>-    return to_enum(__method__, path, options) unless block_given?</div><div class='del'>-    open(path, options) do |csv|</div><div class='del'>-      csv.each(&amp;block)</div><div class='add'>+    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   foreach(path_or_io, mode='r', **options) {|row| ... )</div><div class='add'>+    #   foreach(path_or_io, mode='r', **options) -&gt; new_enumerator</div><div class='add'>+    #</div><div class='add'>+    # Calls the block with each row read from source +path_or_io+.</div><div class='add'>+    #</div><div class='add'>+    # \Path input without headers:</div><div class='add'>+    #</div><div class='add'>+    #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   in_path = 't.csv'</div><div class='add'>+    #   File.write(in_path, string)</div><div class='add'>+    #   CSV.foreach(in_path) {|row| p row }</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #</div><div class='add'>+    #   ["foo", "0"]</div><div class='add'>+    #   ["bar", "1"]</div><div class='add'>+    #   ["baz", "2"]</div><div class='add'>+    #</div><div class='add'>+    # \Path input with headers:</div><div class='add'>+    #</div><div class='add'>+    #   string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   in_path = 't.csv'</div><div class='add'>+    #   File.write(in_path, string)</div><div class='add'>+    #   CSV.foreach(in_path, headers: true) {|row| p row }</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #</div><div class='add'>+    #   &lt;CSV::Row "Name":"foo" "Value":"0"&gt;</div><div class='add'>+    #   &lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+    #   &lt;CSV::Row "Name":"baz" "Value":"2"&gt;</div><div class='add'>+    #</div><div class='add'>+    # \IO stream input without headers:</div><div class='add'>+    #</div><div class='add'>+    #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   path = 't.csv'</div><div class='add'>+    #   File.write(path, string)</div><div class='add'>+    #   File.open('t.csv') do |in_io|</div><div class='add'>+    #     CSV.foreach(in_io) {|row| p row }</div><div class='add'>+    #   end</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #</div><div class='add'>+    #   ["foo", "0"]</div><div class='add'>+    #   ["bar", "1"]</div><div class='add'>+    #   ["baz", "2"]</div><div class='add'>+    #</div><div class='add'>+    # \IO stream input with headers:</div><div class='add'>+    #</div><div class='add'>+    #   string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   path = 't.csv'</div><div class='add'>+    #   File.write(path, string)</div><div class='add'>+    #   File.open('t.csv') do |in_io|</div><div class='add'>+    #     CSV.foreach(in_io, headers: true) {|row| p row }</div><div class='add'>+    #   end</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #</div><div class='add'>+    #   &lt;CSV::Row "Name":"foo" "Value":"0"&gt;</div><div class='add'>+    #   &lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+    #   &lt;CSV::Row "Name":"baz" "Value":"2"&gt;</div><div class='add'>+    #</div><div class='add'>+    # With no block given, returns an \Enumerator:</div><div class='add'>+    #</div><div class='add'>+    #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   path = 't.csv'</div><div class='add'>+    #   File.write(path, string)</div><div class='add'>+    #   CSV.foreach(path) # =&gt; #&lt;Enumerator: CSV:foreach("t.csv", "r")&gt;</div><div class='add'>+    #</div><div class='add'>+    # Arguments:</div><div class='add'>+    # * Argument +path_or_io+ must be a file path or an \IO stream.</div><div class='add'>+    # * Argument +mode+, if given, must be a \File mode</div><div class='add'>+    #   See {Open Mode}[https://ruby-doc.org/core/IO.html#method-c-new-label-Open+Mode].</div><div class='add'>+    # * Arguments &lt;tt&gt;**options&lt;/tt&gt; must be keyword options.</div><div class='add'>+    #   See {Options for Parsing}[#class-CSV-label-Options+for+Parsing].</div><div class='add'>+    # * This method optionally accepts an additional &lt;tt&gt;:encoding&lt;/tt&gt; option</div><div class='add'>+    #   that you can use to specify the Encoding of the data read from +path+ or +io+.</div><div class='add'>+    #   You must provide this unless your data is in the encoding</div><div class='add'>+    #   given by &lt;tt&gt;Encoding::default_external&lt;/tt&gt;.</div><div class='add'>+    #   Parsing will use this to determine how to parse the data.</div><div class='add'>+    #   You may provide a second Encoding to</div><div class='add'>+    #   have the data transcoded as it is read. For example,</div><div class='add'>+    #     encoding: 'UTF-32BE:UTF-8'</div><div class='add'>+    #   would read +UTF-32BE+ data from the file</div><div class='add'>+    #   but transcode it to +UTF-8+ before parsing.</div><div class='add'>+    def foreach(path, mode="r", **options, &amp;block)</div><div class='add'>+      return to_enum(__method__, path, mode, **options) unless block_given?</div><div class='add'>+      open(path, mode, **options) do |csv|</div><div class='add'>+        csv.each(&amp;block)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='del'>-  end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   generate( str, **options ) { |csv| ... }</div><div class='del'>-  #   generate( **options ) { |csv| ... }</div><div class='del'>-  #</div><div class='del'>-  # This method wraps a String you provide, or an empty default String, in a</div><div class='del'>-  # CSV object which is passed to the provided block.  You can use the block to</div><div class='del'>-  # append CSV rows to the String and when the block exits, the final String</div><div class='del'>-  # will be returned.</div><div class='del'>-  #</div><div class='del'>-  # Note that a passed String *is* modified by this method.  Call dup() before</div><div class='del'>-  # passing if you need a new String.</div><div class='del'>-  #</div><div class='del'>-  # The +options+ parameter can be anything CSV::new() understands.  This method</div><div class='del'>-  # understands an additional &lt;tt&gt;:encoding&lt;/tt&gt; parameter when not passed a</div><div class='del'>-  # String to set the base Encoding for the output.  CSV needs this hint if you</div><div class='del'>-  # plan to output non-ASCII compatible data.</div><div class='del'>-  #</div><div class='del'>-  def self.generate(str=nil, **options)</div><div class='del'>-    # add a default empty String, if none was given</div><div class='del'>-    if str</div><div class='del'>-      str = StringIO.new(str)</div><div class='del'>-      str.seek(0, IO::SEEK_END)</div><div class='del'>-    else</div><div class='add'>+    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   generate(csv_string, **options) {|csv| ... }</div><div class='add'>+    #   generate(**options) {|csv| ... }</div><div class='add'>+    #</div><div class='add'>+    # * Argument +csv_string+, if given, must be a \String object;</div><div class='add'>+    #   defaults to a new empty \String.</div><div class='add'>+    # * Arguments +options+, if given, should be generating options.</div><div class='add'>+    #   See {Options for Generating}[#class-CSV-label-Options+for+Generating].</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Creates a new \CSV object via &lt;tt&gt;CSV.new(csv_string, **options)&lt;/tt&gt;;</div><div class='add'>+    # calls the block with the \CSV object, which the block may modify;</div><div class='add'>+    # returns the \String generated from the \CSV object.</div><div class='add'>+    #</div><div class='add'>+    # Note that a passed \String *is* modified by this method.</div><div class='add'>+    # Pass &lt;tt&gt;csv_string&lt;/tt&gt;.dup if the \String must be preserved.</div><div class='add'>+    #</div><div class='add'>+    # This method has one additional option: &lt;tt&gt;:encoding&lt;/tt&gt;,</div><div class='add'>+    # which sets the base Encoding for the output if no no +str+ is specified.</div><div class='add'>+    # CSV needs this hint if you plan to output non-ASCII compatible data.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Add lines:</div><div class='add'>+    #   input_string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   output_string = CSV.generate(input_string) do |csv|</div><div class='add'>+    #     csv &lt;&lt; ['bat', 3]</div><div class='add'>+    #     csv &lt;&lt; ['bam', 4]</div><div class='add'>+    #   end</div><div class='add'>+    #   output_string # =&gt; "foo,0\nbar,1\nbaz,2\nbat,3\nbam,4\n"</div><div class='add'>+    #   input_string # =&gt; "foo,0\nbar,1\nbaz,2\nbat,3\nbam,4\n"</div><div class='add'>+    #   output_string.equal?(input_string) # =&gt; true # Same string, modified</div><div class='add'>+    #</div><div class='add'>+    # Add lines into new string, preserving old string:</div><div class='add'>+    #   input_string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   output_string = CSV.generate(input_string.dup) do |csv|</div><div class='add'>+    #     csv &lt;&lt; ['bat', 3]</div><div class='add'>+    #     csv &lt;&lt; ['bam', 4]</div><div class='add'>+    #   end</div><div class='add'>+    #   output_string # =&gt; "foo,0\nbar,1\nbaz,2\nbat,3\nbam,4\n"</div><div class='add'>+    #   input_string # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   output_string.equal?(input_string) # =&gt; false # Different strings</div><div class='add'>+    #</div><div class='add'>+    # Create lines from nothing:</div><div class='add'>+    #   output_string = CSV.generate do |csv|</div><div class='add'>+    #     csv &lt;&lt; ['foo', 0]</div><div class='add'>+    #     csv &lt;&lt; ['bar', 1]</div><div class='add'>+    #     csv &lt;&lt; ['baz', 2]</div><div class='add'>+    #   end</div><div class='add'>+    #   output_string # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Raises an exception if +csv_string+ is not a \String object:</div><div class='add'>+    #   # Raises TypeError (no implicit conversion of Integer into String)</div><div class='add'>+    #   CSV.generate(0)</div><div class='add'>+    #</div><div class='add'>+    def generate(str=nil, **options)</div><div class='ctx'>       encoding = options[:encoding]</div><div class='del'>-      str      = String.new</div><div class='del'>-      str.force_encoding(encoding) if encoding</div><div class='add'>+      # add a default empty String, if none was given</div><div class='add'>+      if str</div><div class='add'>+        str = StringIO.new(str)</div><div class='add'>+        str.seek(0, IO::SEEK_END)</div><div class='add'>+        str.set_encoding(encoding) if encoding</div><div class='add'>+      else</div><div class='add'>+        str = +""</div><div class='add'>+        str.force_encoding(encoding) if encoding</div><div class='add'>+      end</div><div class='add'>+      csv = new(str, **options) # wrap</div><div class='add'>+      yield csv         # yield for appending</div><div class='add'>+      csv.string        # return final String</div><div class='ctx'>     end</div><div class='del'>-    csv = new(str, options) # wrap</div><div class='del'>-    yield csv         # yield for appending</div><div class='del'>-    csv.string        # return final String</div><div class='del'>-  end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # This method is a shortcut for converting a single row (Array) into a CSV</div><div class='del'>-  # String.</div><div class='del'>-  #</div><div class='del'>-  # The +options+ parameter can be anything CSV::new() understands.  This method</div><div class='del'>-  # understands an additional &lt;tt&gt;:encoding&lt;/tt&gt; parameter to set the base</div><div class='del'>-  # Encoding for the output.  This method will try to guess your Encoding from</div><div class='del'>-  # the first non-+nil+ field in +row+, if possible, but you may need to use</div><div class='del'>-  # this parameter as a backup plan.</div><div class='del'>-  #</div><div class='del'>-  # The &lt;tt&gt;:row_sep&lt;/tt&gt; +option+ defaults to &lt;tt&gt;$INPUT_RECORD_SEPARATOR&lt;/tt&gt;</div><div class='del'>-  # (&lt;tt&gt;$/&lt;/tt&gt;) when calling this method.</div><div class='del'>-  #</div><div class='del'>-  def self.generate_line(row, **options)</div><div class='del'>-    options = {row_sep: $INPUT_RECORD_SEPARATOR}.merge(options)</div><div class='del'>-    str = String.new</div><div class='del'>-    if options[:encoding]</div><div class='del'>-      str.force_encoding(options[:encoding])</div><div class='del'>-    elsif field = row.find { |f| not f.nil? }</div><div class='del'>-      str.force_encoding(String(field).encoding)</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   CSV.generate_line(ary)</div><div class='add'>+    #   CSV.generate_line(ary, **options)</div><div class='add'>+    #</div><div class='add'>+    # Returns the \String created by generating \CSV from +ary+</div><div class='add'>+    # using the specified +options+.</div><div class='add'>+    #</div><div class='add'>+    # Argument +ary+ must be an \Array.</div><div class='add'>+    #</div><div class='add'>+    # Special options:</div><div class='add'>+    # * Option &lt;tt&gt;:row_sep&lt;/tt&gt; defaults to &lt;tt&gt;"\n"&gt; on Ruby 3.0 or later</div><div class='add'>+    #   and &lt;tt&gt;$INPUT_RECORD_SEPARATOR&lt;/tt&gt; (&lt;tt&gt;$/&lt;/tt&gt;) otherwise.:</div><div class='add'>+    #     $INPUT_RECORD_SEPARATOR # =&gt; "\n"</div><div class='add'>+    # * This method accepts an additional option, &lt;tt&gt;:encoding&lt;/tt&gt;, which sets the base</div><div class='add'>+    #   Encoding for the output. This method will try to guess your Encoding from</div><div class='add'>+    #   the first non-+nil+ field in +row+, if possible, but you may need to use</div><div class='add'>+    #   this parameter as a backup plan.</div><div class='add'>+    #</div><div class='add'>+    # For other +options+,</div><div class='add'>+    # see {Options for Generating}[#class-CSV-label-Options+for+Generating].</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Returns the \String generated from an \Array:</div><div class='add'>+    #   CSV.generate_line(['foo', '0']) # =&gt; "foo,0\n"</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Raises an exception if +ary+ is not an \Array:</div><div class='add'>+    #   # Raises NoMethodError (undefined method `find' for :foo:Symbol)</div><div class='add'>+    #   CSV.generate_line(:foo)</div><div class='add'>+    #</div><div class='add'>+    def generate_line(row, **options)</div><div class='add'>+      options = {row_sep: InputRecordSeparator.value}.merge(options)</div><div class='add'>+      str = +""</div><div class='add'>+      if options[:encoding]</div><div class='add'>+        str.force_encoding(options[:encoding])</div><div class='add'>+      else</div><div class='add'>+        fallback_encoding = nil</div><div class='add'>+        output_encoding = nil</div><div class='add'>+        row.each do |field|</div><div class='add'>+          next unless field.is_a?(String)</div><div class='add'>+          fallback_encoding ||= field.encoding</div><div class='add'>+          next if field.ascii_only?</div><div class='add'>+          output_encoding = field.encoding</div><div class='add'>+          break</div><div class='add'>+        end</div><div class='add'>+        output_encoding ||= fallback_encoding</div><div class='add'>+        if output_encoding</div><div class='add'>+          str.force_encoding(output_encoding)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      (new(str, **options) &lt;&lt; row).string</div><div class='ctx'>     end</div><div class='del'>-    (new(str, options) &lt;&lt; row).string</div><div class='del'>-  end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   open( filename, mode = "rb", **options ) { |faster_csv| ... }</div><div class='del'>-  #   open( filename, **options ) { |faster_csv| ... }</div><div class='del'>-  #   open( filename, mode = "rb", **options )</div><div class='del'>-  #   open( filename, **options )</div><div class='del'>-  #</div><div class='del'>-  # This method opens an IO object, and wraps that with CSV.  This is intended</div><div class='del'>-  # as the primary interface for writing a CSV file.</div><div class='del'>-  #</div><div class='del'>-  # You must pass a +filename+ and may optionally add a +mode+ for Ruby's</div><div class='del'>-  # open().  You may also pass an optional Hash containing any +options+</div><div class='del'>-  # CSV::new() understands as the final argument.</div><div class='del'>-  #</div><div class='del'>-  # This method works like Ruby's open() call, in that it will pass a CSV object</div><div class='del'>-  # to a provided block and close it when the block terminates, or it will</div><div class='del'>-  # return the CSV object when no block is provided.  (*Note*: This is different</div><div class='del'>-  # from the Ruby 1.8 CSV library which passed rows to the block.  Use</div><div class='del'>-  # CSV::foreach() for that behavior.)</div><div class='del'>-  #</div><div class='del'>-  # You must provide a +mode+ with an embedded Encoding designator unless your</div><div class='del'>-  # data is in Encoding::default_external().  CSV will check the Encoding of the</div><div class='del'>-  # underlying IO object (set by the +mode+ you pass) to determine how to parse</div><div class='del'>-  # the data.   You may provide a second Encoding to have the data transcoded as</div><div class='del'>-  # it is read just as you can with a normal call to IO::open().  For example,</div><div class='del'>-  # &lt;tt&gt;"rb:UTF-32BE:UTF-8"&lt;/tt&gt; would read UTF-32BE data from the file but</div><div class='del'>-  # transcode it to UTF-8 before CSV parses it.</div><div class='del'>-  #</div><div class='del'>-  # An opened CSV object will delegate to many IO methods for convenience.  You</div><div class='del'>-  # may call:</div><div class='del'>-  #</div><div class='del'>-  # * binmode()</div><div class='del'>-  # * binmode?()</div><div class='del'>-  # * close()</div><div class='del'>-  # * close_read()</div><div class='del'>-  # * close_write()</div><div class='del'>-  # * closed?()</div><div class='del'>-  # * eof()</div><div class='del'>-  # * eof?()</div><div class='del'>-  # * external_encoding()</div><div class='del'>-  # * fcntl()</div><div class='del'>-  # * fileno()</div><div class='del'>-  # * flock()</div><div class='del'>-  # * flush()</div><div class='del'>-  # * fsync()</div><div class='del'>-  # * internal_encoding()</div><div class='del'>-  # * ioctl()</div><div class='del'>-  # * isatty()</div><div class='del'>-  # * path()</div><div class='del'>-  # * pid()</div><div class='del'>-  # * pos()</div><div class='del'>-  # * pos=()</div><div class='del'>-  # * reopen()</div><div class='del'>-  # * seek()</div><div class='del'>-  # * stat()</div><div class='del'>-  # * sync()</div><div class='del'>-  # * sync=()</div><div class='del'>-  # * tell()</div><div class='del'>-  # * to_i()</div><div class='del'>-  # * to_io()</div><div class='del'>-  # * truncate()</div><div class='del'>-  # * tty?()</div><div class='del'>-  #</div><div class='del'>-  def self.open(filename, mode="r", **options)</div><div class='del'>-    # wrap a File opened with the remaining +args+ with no newline</div><div class='del'>-    # decorator</div><div class='del'>-    file_opts = {universal_newline: false}.merge(options)</div><div class='del'>-</div><div class='del'>-    begin</div><div class='del'>-      f = File.open(filename, mode, file_opts)</div><div class='del'>-    rescue ArgumentError =&gt; e</div><div class='del'>-      raise unless /needs binmode/.match?(e.message) and mode == "r"</div><div class='del'>-      mode = "rb"</div><div class='del'>-      file_opts = {encoding: Encoding.default_external}.merge(file_opts)</div><div class='del'>-      retry</div><div class='del'>-    end</div><div class='del'>-    begin</div><div class='del'>-      csv = new(f, options)</div><div class='del'>-    rescue Exception</div><div class='del'>-      f.close</div><div class='del'>-      raise</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   CSV.generate_lines(rows)</div><div class='add'>+    #   CSV.generate_lines(rows, **options)</div><div class='add'>+    #</div><div class='add'>+    # Returns the \String created by generating \CSV from</div><div class='add'>+    # using the specified +options+.</div><div class='add'>+    #</div><div class='add'>+    # Argument +rows+ must be an \Array of row. Row is \Array of \String or \CSV::Row.</div><div class='add'>+    #</div><div class='add'>+    # Special options:</div><div class='add'>+    # * Option &lt;tt&gt;:row_sep&lt;/tt&gt; defaults to &lt;tt&gt;"\n"&lt;/tt&gt; on Ruby 3.0 or later</div><div class='add'>+    #   and &lt;tt&gt;$INPUT_RECORD_SEPARATOR&lt;/tt&gt; (&lt;tt&gt;$/&lt;/tt&gt;) otherwise.:</div><div class='add'>+    #     $INPUT_RECORD_SEPARATOR # =&gt; "\n"</div><div class='add'>+    # * This method accepts an additional option, &lt;tt&gt;:encoding&lt;/tt&gt;, which sets the base</div><div class='add'>+    #   Encoding for the output. This method will try to guess your Encoding from</div><div class='add'>+    #   the first non-+nil+ field in +row+, if possible, but you may need to use</div><div class='add'>+    #   this parameter as a backup plan.</div><div class='add'>+    #</div><div class='add'>+    # For other +options+,</div><div class='add'>+    # see {Options for Generating}[#class-CSV-label-Options+for+Generating].</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Returns the \String generated from an</div><div class='add'>+    #   CSV.generate_lines([['foo', '0'], ['bar', '1'], ['baz', '2']]) # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Raises an exception</div><div class='add'>+    #   # Raises NoMethodError (undefined method `each' for :foo:Symbol)</div><div class='add'>+    #   CSV.generate_lines(:foo)</div><div class='add'>+    #</div><div class='add'>+    def generate_lines(rows, **options)</div><div class='add'>+      self.generate(**options) do |csv|</div><div class='add'>+        rows.each do |row|</div><div class='add'>+          csv &lt;&lt; row</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # handle blocks like Ruby's open(), not like the CSV library</div><div class='del'>-    if block_given?</div><div class='add'>+    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   open(file_path, mode = "rb", **options ) -&gt; new_csv</div><div class='add'>+    #   open(io, mode = "rb", **options ) -&gt; new_csv</div><div class='add'>+    #   open(file_path, mode = "rb", **options ) { |csv| ... } -&gt; object</div><div class='add'>+    #   open(io, mode = "rb", **options ) { |csv| ... } -&gt; object</div><div class='add'>+    #</div><div class='add'>+    # possible options elements:</div><div class='add'>+    #   keyword form:</div><div class='add'>+    #     :invalid =&gt; nil      # raise error on invalid byte sequence (default)</div><div class='add'>+    #     :invalid =&gt; :replace # replace invalid byte sequence</div><div class='add'>+    #     :undef =&gt; :replace   # replace undefined conversion</div><div class='add'>+    #     :replace =&gt; string   # replacement string ("?" or "\uFFFD" if not specified)</div><div class='add'>+    #</div><div class='add'>+    # * Argument +path+, if given, must be the path to a file.</div><div class='add'>+    # :include: ../doc/csv/arguments/io.rdoc</div><div class='add'>+    # * Argument +mode+, if given, must be a \File mode</div><div class='add'>+    #   See {Open Mode}[IO.html#method-c-new-label-Open+Mode].</div><div class='add'>+    # * Arguments &lt;tt&gt;**options&lt;/tt&gt; must be keyword options.</div><div class='add'>+    #   See {Options for Generating}[#class-CSV-label-Options+for+Generating].</div><div class='add'>+    # * This method optionally accepts an additional &lt;tt&gt;:encoding&lt;/tt&gt; option</div><div class='add'>+    #   that you can use to specify the Encoding of the data read from +path+ or +io+.</div><div class='add'>+    #   You must provide this unless your data is in the encoding</div><div class='add'>+    #   given by &lt;tt&gt;Encoding::default_external&lt;/tt&gt;.</div><div class='add'>+    #   Parsing will use this to determine how to parse the data.</div><div class='add'>+    #   You may provide a second Encoding to</div><div class='add'>+    #   have the data transcoded as it is read. For example,</div><div class='add'>+    #     encoding: 'UTF-32BE:UTF-8'</div><div class='add'>+    #   would read +UTF-32BE+ data from the file</div><div class='add'>+    #   but transcode it to +UTF-8+ before parsing.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # These examples assume prior execution of:</div><div class='add'>+    #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   path = 't.csv'</div><div class='add'>+    #   File.write(path, string)</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # With no block given, returns a new \CSV object.</div><div class='add'>+    #</div><div class='add'>+    # Create a \CSV object using a file path:</div><div class='add'>+    #   csv = CSV.open(path)</div><div class='add'>+    #   csv # =&gt; #&lt;CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\""&gt;</div><div class='add'>+    #</div><div class='add'>+    # Create a \CSV object using an open \File:</div><div class='add'>+    #   csv = CSV.open(File.open(path))</div><div class='add'>+    #   csv # =&gt; #&lt;CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\""&gt;</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # With a block given, calls the block with the created \CSV object;</div><div class='add'>+    # returns the block's return value:</div><div class='add'>+    #</div><div class='add'>+    # Using a file path:</div><div class='add'>+    #   csv = CSV.open(path) {|csv| p csv}</div><div class='add'>+    #   csv # =&gt; #&lt;CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\""&gt;</div><div class='add'>+    # Output:</div><div class='add'>+    #   #&lt;CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\""&gt;</div><div class='add'>+    #</div><div class='add'>+    # Using an open \File:</div><div class='add'>+    #   csv = CSV.open(File.open(path)) {|csv| p csv}</div><div class='add'>+    #   csv # =&gt; #&lt;CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\""&gt;</div><div class='add'>+    # Output:</div><div class='add'>+    #   #&lt;CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\""&gt;</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Raises an exception if the argument is not a \String object or \IO object:</div><div class='add'>+    #   # Raises TypeError (no implicit conversion of Symbol into String)</div><div class='add'>+    #   CSV.open(:foo)</div><div class='add'>+    def open(filename, mode="r", **options)</div><div class='add'>+      # wrap a File opened with the remaining +args+ with no newline</div><div class='add'>+      # decorator</div><div class='add'>+      file_opts = options.dup</div><div class='add'>+      unless file_opts.key?(:newline)</div><div class='add'>+        file_opts[:universal_newline] ||= false</div><div class='add'>+      end</div><div class='add'>+      options.delete(:invalid)</div><div class='add'>+      options.delete(:undef)</div><div class='add'>+      options.delete(:replace)</div><div class='add'>+      options.delete_if {|k, _| /newline\z/.match?(k)}</div><div class='add'>+</div><div class='ctx'>       begin</div><div class='del'>-        yield csv</div><div class='del'>-      ensure</div><div class='del'>-        csv.close</div><div class='add'>+        f = File.open(filename, mode, **file_opts)</div><div class='add'>+      rescue ArgumentError =&gt; e</div><div class='add'>+        raise unless /needs binmode/.match?(e.message) and mode == "r"</div><div class='add'>+        mode = "rb"</div><div class='add'>+        file_opts = {encoding: Encoding.default_external}.merge(file_opts)</div><div class='add'>+        retry</div><div class='add'>+      end</div><div class='add'>+      begin</div><div class='add'>+        csv = new(f, **options)</div><div class='add'>+      rescue Exception</div><div class='add'>+        f.close</div><div class='add'>+        raise</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # handle blocks like Ruby's open(), not like the CSV library</div><div class='add'>+      if block_given?</div><div class='add'>+        begin</div><div class='add'>+          yield csv</div><div class='add'>+        ensure</div><div class='add'>+          csv.close</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        csv</div><div class='ctx'>       end</div><div class='del'>-    else</div><div class='del'>-      csv</div><div class='ctx'>     end</div><div class='del'>-  end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   parse( str, **options ) { |row| ... }</div><div class='del'>-  #   parse( str, **options )</div><div class='del'>-  #</div><div class='del'>-  # This method can be used to easily parse CSV out of a String.  You may either</div><div class='del'>-  # provide a +block+ which will be called with each row of the String in turn,</div><div class='del'>-  # or just use the returned Array of Arrays (when no +block+ is given).</div><div class='del'>-  #</div><div class='del'>-  # You pass your +str+ to read from, and an optional +options+ containing</div><div class='del'>-  # anything CSV::new() understands.</div><div class='del'>-  #</div><div class='del'>-  def self.parse(*args, &amp;block)</div><div class='del'>-    csv = new(*args)</div><div class='add'>+    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   parse(string) -&gt; array_of_arrays</div><div class='add'>+    #   parse(io) -&gt; array_of_arrays</div><div class='add'>+    #   parse(string, headers: ..., **options) -&gt; csv_table</div><div class='add'>+    #   parse(io, headers: ..., **options) -&gt; csv_table</div><div class='add'>+    #   parse(string, **options) {|row| ... }</div><div class='add'>+    #   parse(io, **options) {|row| ... }</div><div class='add'>+    #</div><div class='add'>+    # Parses +string+ or +io+ using the specified +options+.</div><div class='add'>+    #</div><div class='add'>+    # - Argument +string+ should be a \String object;</div><div class='add'>+    #   it will be put into a new StringIO object positioned at the beginning.</div><div class='add'>+    # :include: ../doc/csv/arguments/io.rdoc</div><div class='add'>+    # - Argument +options+: see {Options for Parsing}[#class-CSV-label-Options+for+Parsing]</div><div class='add'>+    #</div><div class='add'>+    # ====== Without Option +headers+</div><div class='add'>+    #</div><div class='add'>+    # Without {option +headers+}[#class-CSV-label-Option+headers] case.</div><div class='add'>+    #</div><div class='add'>+    # These examples assume prior execution of:</div><div class='add'>+    #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   path = 't.csv'</div><div class='add'>+    #   File.write(path, string)</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # With no block given, returns an \Array of Arrays formed from the source.</div><div class='add'>+    #</div><div class='add'>+    # Parse a \String:</div><div class='add'>+    #   a_of_a = CSV.parse(string)</div><div class='add'>+    #   a_of_a # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+    #</div><div class='add'>+    # Parse an open \File:</div><div class='add'>+    #   a_of_a = File.open(path) do |file|</div><div class='add'>+    #     CSV.parse(file)</div><div class='add'>+    #   end</div><div class='add'>+    #   a_of_a # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # With a block given, calls the block with each parsed row:</div><div class='add'>+    #</div><div class='add'>+    # Parse a \String:</div><div class='add'>+    #   CSV.parse(string) {|row| p row }</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #   ["foo", "0"]</div><div class='add'>+    #   ["bar", "1"]</div><div class='add'>+    #   ["baz", "2"]</div><div class='add'>+    #</div><div class='add'>+    # Parse an open \File:</div><div class='add'>+    #   File.open(path) do |file|</div><div class='add'>+    #     CSV.parse(file) {|row| p row }</div><div class='add'>+    #   end</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #   ["foo", "0"]</div><div class='add'>+    #   ["bar", "1"]</div><div class='add'>+    #   ["baz", "2"]</div><div class='add'>+    #</div><div class='add'>+    # ====== With Option +headers+</div><div class='add'>+    #</div><div class='add'>+    # With {option +headers+}[#class-CSV-label-Option+headers] case.</div><div class='add'>+    #</div><div class='add'>+    # These examples assume prior execution of:</div><div class='add'>+    #   string = "Name,Count\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   path = 't.csv'</div><div class='add'>+    #   File.write(path, string)</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # With no block given, returns a CSV::Table object formed from the source.</div><div class='add'>+    #</div><div class='add'>+    # Parse a \String:</div><div class='add'>+    #   csv_table = CSV.parse(string, headers: ['Name', 'Count'])</div><div class='add'>+    #   csv_table # =&gt; #&lt;CSV::Table mode:col_or_row row_count:5&gt;</div><div class='add'>+    #</div><div class='add'>+    # Parse an open \File:</div><div class='add'>+    #   csv_table = File.open(path) do |file|</div><div class='add'>+    #     CSV.parse(file, headers: ['Name', 'Count'])</div><div class='add'>+    #   end</div><div class='add'>+    #   csv_table # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # With a block given, calls the block with each parsed row,</div><div class='add'>+    # which has been formed into a CSV::Row object:</div><div class='add'>+    #</div><div class='add'>+    # Parse a \String:</div><div class='add'>+    #   CSV.parse(string, headers: ['Name', 'Count']) {|row| p row }</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #   # &lt;CSV::Row "Name":"foo" "Count":"0"&gt;</div><div class='add'>+    #   # &lt;CSV::Row "Name":"bar" "Count":"1"&gt;</div><div class='add'>+    #   # &lt;CSV::Row "Name":"baz" "Count":"2"&gt;</div><div class='add'>+    #</div><div class='add'>+    # Parse an open \File:</div><div class='add'>+    #   File.open(path) do |file|</div><div class='add'>+    #     CSV.parse(file, headers: ['Name', 'Count']) {|row| p row }</div><div class='add'>+    #   end</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #   # &lt;CSV::Row "Name":"foo" "Count":"0"&gt;</div><div class='add'>+    #   # &lt;CSV::Row "Name":"bar" "Count":"1"&gt;</div><div class='add'>+    #   # &lt;CSV::Row "Name":"baz" "Count":"2"&gt;</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Raises an exception if the argument is not a \String object or \IO object:</div><div class='add'>+    #   # Raises NoMethodError (undefined method `close' for :foo:Symbol)</div><div class='add'>+    #   CSV.parse(:foo)</div><div class='add'>+    def parse(str, **options, &amp;block)</div><div class='add'>+      csv = new(str, **options)</div><div class='ctx'> </div><div class='del'>-    return csv.each(&amp;block) if block_given?</div><div class='add'>+      return csv.each(&amp;block) if block_given?</div><div class='ctx'> </div><div class='del'>-    # slurp contents, if no block is given</div><div class='del'>-    begin</div><div class='del'>-      csv.read</div><div class='del'>-    ensure</div><div class='del'>-      csv.close</div><div class='add'>+      # slurp contents, if no block is given</div><div class='add'>+      begin</div><div class='add'>+        csv.read</div><div class='add'>+      ensure</div><div class='add'>+        csv.close</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='del'>-  end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # This method is a shortcut for converting a single line of a CSV String into</div><div class='del'>-  # an Array.  Note that if +line+ contains multiple rows, anything beyond the</div><div class='del'>-  # first row is ignored.</div><div class='del'>-  #</div><div class='del'>-  # The +options+ parameter can be anything CSV::new() understands.</div><div class='del'>-  #</div><div class='del'>-  def self.parse_line(line, **options)</div><div class='del'>-    new(line, options).shift</div><div class='del'>-  end</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   CSV.parse_line(string) -&gt; new_array or nil</div><div class='add'>+    #   CSV.parse_line(io) -&gt; new_array or nil</div><div class='add'>+    #   CSV.parse_line(string, **options) -&gt; new_array or nil</div><div class='add'>+    #   CSV.parse_line(io, **options) -&gt; new_array or nil</div><div class='add'>+    #   CSV.parse_line(string, headers: true, **options) -&gt; csv_row or nil</div><div class='add'>+    #   CSV.parse_line(io, headers: true, **options) -&gt; csv_row or nil</div><div class='add'>+    #</div><div class='add'>+    # Returns the data created by parsing the first line of +string+ or +io+</div><div class='add'>+    # using the specified +options+.</div><div class='add'>+    #</div><div class='add'>+    # - Argument +string+ should be a \String object;</div><div class='add'>+    #   it will be put into a new StringIO object positioned at the beginning.</div><div class='add'>+    # :include: ../doc/csv/arguments/io.rdoc</div><div class='add'>+    # - Argument +options+: see {Options for Parsing}[#class-CSV-label-Options+for+Parsing]</div><div class='add'>+    #</div><div class='add'>+    # ====== Without Option +headers+</div><div class='add'>+    #</div><div class='add'>+    # Without option +headers+, returns the first row as a new \Array.</div><div class='add'>+    #</div><div class='add'>+    # These examples assume prior execution of:</div><div class='add'>+    #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   path = 't.csv'</div><div class='add'>+    #   File.write(path, string)</div><div class='add'>+    #</div><div class='add'>+    # Parse the first line from a \String object:</div><div class='add'>+    #   CSV.parse_line(string) # =&gt; ["foo", "0"]</div><div class='add'>+    #</div><div class='add'>+    # Parse the first line from a File object:</div><div class='add'>+    #   File.open(path) do |file|</div><div class='add'>+    #     CSV.parse_line(file) # =&gt; ["foo", "0"]</div><div class='add'>+    #   end # =&gt; ["foo", "0"]</div><div class='add'>+    #</div><div class='add'>+    # Returns +nil+ if the argument is an empty \String:</div><div class='add'>+    #   CSV.parse_line('') # =&gt; nil</div><div class='add'>+    #</div><div class='add'>+    # ====== With Option +headers+</div><div class='add'>+    #</div><div class='add'>+    # With {option +headers+}[#class-CSV-label-Option+headers],</div><div class='add'>+    # returns the first row as a CSV::Row object.</div><div class='add'>+    #</div><div class='add'>+    # These examples assume prior execution of:</div><div class='add'>+    #   string = "Name,Count\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   path = 't.csv'</div><div class='add'>+    #   File.write(path, string)</div><div class='add'>+    #</div><div class='add'>+    # Parse the first line from a \String object:</div><div class='add'>+    #   CSV.parse_line(string, headers: true) # =&gt; #&lt;CSV::Row "Name":"foo" "Count":"0"&gt;</div><div class='add'>+    #</div><div class='add'>+    # Parse the first line from a File object:</div><div class='add'>+    #   File.open(path) do |file|</div><div class='add'>+    #     CSV.parse_line(file, headers: true)</div><div class='add'>+    #   end # =&gt; #&lt;CSV::Row "Name":"foo" "Count":"0"&gt;</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Raises an exception if the argument is +nil+:</div><div class='add'>+    #   # Raises ArgumentError (Cannot parse nil as CSV):</div><div class='add'>+    #   CSV.parse_line(nil)</div><div class='add'>+    #</div><div class='add'>+    def parse_line(line, **options)</div><div class='add'>+      new(line, **options).each.first</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Use to slurp a CSV file into an Array of Arrays.  Pass the +path+ to the</div><div class='del'>-  # file and any +options+ CSV::new() understands.  This method also understands</div><div class='del'>-  # an additional &lt;tt&gt;:encoding&lt;/tt&gt; parameter that you can use to specify the</div><div class='del'>-  # Encoding of the data in the file to be read. You must provide this unless</div><div class='del'>-  # your data is in Encoding::default_external().  CSV will use this to determine</div><div class='del'>-  # how to parse the data.  You may provide a second Encoding to have the data</div><div class='del'>-  # transcoded as it is read.  For example,</div><div class='del'>-  # &lt;tt&gt;encoding: "UTF-32BE:UTF-8"&lt;/tt&gt; would read UTF-32BE data from the file</div><div class='del'>-  # but transcode it to UTF-8 before CSV parses it.</div><div class='del'>-  #</div><div class='del'>-  def self.read(path, *options)</div><div class='del'>-    open(path, *options) { |csv| csv.read }</div><div class='del'>-  end</div><div class='add'>+    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   read(source, **options) -&gt; array_of_arrays</div><div class='add'>+    #   read(source, headers: true, **options) -&gt; csv_table</div><div class='add'>+    #</div><div class='add'>+    # Opens the given +source+ with the given +options+ (see CSV.open),</div><div class='add'>+    # reads the source (see CSV#read), and returns the result,</div><div class='add'>+    # which will be either an \Array of Arrays or a CSV::Table.</div><div class='add'>+    #</div><div class='add'>+    # Without headers:</div><div class='add'>+    #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   path = 't.csv'</div><div class='add'>+    #   File.write(path, string)</div><div class='add'>+    #   CSV.read(path) # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+    #</div><div class='add'>+    # With headers:</div><div class='add'>+    #   string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   path = 't.csv'</div><div class='add'>+    #   File.write(path, string)</div><div class='add'>+    #   CSV.read(path, headers: true) # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    def read(path, **options)</div><div class='add'>+      open(path, **options) { |csv| csv.read }</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-  # Alias for CSV::read().</div><div class='del'>-  def self.readlines(*args)</div><div class='del'>-    read(*args)</div><div class='del'>-  end</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   CSV.readlines(source, **options)</div><div class='add'>+    #</div><div class='add'>+    # Alias for CSV.read.</div><div class='add'>+    def readlines(path, **options)</div><div class='add'>+      read(path, **options)</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # A shortcut for:</div><div class='del'>-  #</div><div class='del'>-  #   CSV.read( path, { headers:           true,</div><div class='del'>-  #                     converters:        :numeric,</div><div class='del'>-  #                     header_converters: :symbol }.merge(options) )</div><div class='del'>-  #</div><div class='del'>-  def self.table(path, **options)</div><div class='del'>-    read( path, { headers:           true,</div><div class='del'>-                  converters:        :numeric,</div><div class='del'>-                  header_converters: :symbol }.merge(options) )</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   CSV.table(source, **options)</div><div class='add'>+    #</div><div class='add'>+    # Calls CSV.read with +source+, +options+, and certain default options:</div><div class='add'>+    # - +headers+: +true+</div><div class='add'>+    # - +converters+: +:numeric+</div><div class='add'>+    # - +header_converters+: +:symbol+</div><div class='add'>+    #</div><div class='add'>+    # Returns a CSV::Table object.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #   string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   path = 't.csv'</div><div class='add'>+    #   File.write(path, string)</div><div class='add'>+    #   CSV.table(path) # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    def table(path, **options)</div><div class='add'>+      default_options = {</div><div class='add'>+        headers:           true,</div><div class='add'>+        converters:        :numeric,</div><div class='add'>+        header_converters: :symbol,</div><div class='add'>+      }</div><div class='add'>+      options = default_options.merge(options)</div><div class='add'>+      read(path, **options)</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # This constructor will wrap either a String or IO object passed in +data+ for</div><div class='del'>-  # reading and/or writing.  In addition to the CSV instance methods, several IO</div><div class='del'>-  # methods are delegated.  (See CSV::open() for a complete list.)  If you pass</div><div class='del'>-  # a String for +data+, you can later retrieve it (after writing to it, for</div><div class='del'>-  # example) with CSV.string().</div><div class='del'>-  #</div><div class='del'>-  # Note that a wrapped String will be positioned at the beginning (for</div><div class='del'>-  # reading).  If you want it at the end (for writing), use CSV::generate().</div><div class='del'>-  # If you want any other positioning, pass a preset StringIO object instead.</div><div class='del'>-  #</div><div class='del'>-  # You may set any reading and/or writing preferences in the +options+ Hash.</div><div class='del'>-  # Available options are:</div><div class='del'>-  #</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:col_sep&lt;/tt&gt;&lt;/b&gt;::            The String placed between each field.</div><div class='del'>-  #                                       This String will be transcoded into</div><div class='del'>-  #                                       the data's Encoding before parsing.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:row_sep&lt;/tt&gt;&lt;/b&gt;::            The String appended to the end of each</div><div class='del'>-  #                                       row.  This can be set to the special</div><div class='del'>-  #                                       &lt;tt&gt;:auto&lt;/tt&gt; setting, which requests</div><div class='del'>-  #                                       that CSV automatically discover this</div><div class='del'>-  #                                       from the data.  Auto-discovery reads</div><div class='del'>-  #                                       ahead in the data looking for the next</div><div class='del'>-  #                                       &lt;tt&gt;"\r\n"&lt;/tt&gt;, &lt;tt&gt;"\n"&lt;/tt&gt;, or</div><div class='del'>-  #                                       &lt;tt&gt;"\r"&lt;/tt&gt; sequence.  A sequence</div><div class='del'>-  #                                       will be selected even if it occurs in</div><div class='del'>-  #                                       a quoted field, assuming that you</div><div class='del'>-  #                                       would have the same line endings</div><div class='del'>-  #                                       there.  If none of those sequences is</div><div class='del'>-  #                                       found, +data+ is &lt;tt&gt;ARGF&lt;/tt&gt;,</div><div class='del'>-  #                                       &lt;tt&gt;STDIN&lt;/tt&gt;, &lt;tt&gt;STDOUT&lt;/tt&gt;, or</div><div class='del'>-  #                                       &lt;tt&gt;STDERR&lt;/tt&gt;, or the stream is only</div><div class='del'>-  #                                       available for output, the default</div><div class='del'>-  #                                       &lt;tt&gt;$INPUT_RECORD_SEPARATOR&lt;/tt&gt;</div><div class='del'>-  #                                       (&lt;tt&gt;$/&lt;/tt&gt;) is used.  Obviously,</div><div class='del'>-  #                                       discovery takes a little time.  Set</div><div class='del'>-  #                                       manually if speed is important.  Also</div><div class='del'>-  #                                       note that IO objects should be opened</div><div class='del'>-  #                                       in binary mode on Windows if this</div><div class='del'>-  #                                       feature will be used as the</div><div class='del'>-  #                                       line-ending translation can cause</div><div class='del'>-  #                                       problems with resetting the document</div><div class='del'>-  #                                       position to where it was before the</div><div class='del'>-  #                                       read ahead. This String will be</div><div class='del'>-  #                                       transcoded into the data's Encoding</div><div class='del'>-  #                                       before parsing.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:quote_char&lt;/tt&gt;&lt;/b&gt;::         The character used to quote fields.</div><div class='del'>-  #                                       This has to be a single character</div><div class='del'>-  #                                       String.  This is useful for</div><div class='del'>-  #                                       application that incorrectly use</div><div class='del'>-  #                                       &lt;tt&gt;'&lt;/tt&gt; as the quote character</div><div class='del'>-  #                                       instead of the correct &lt;tt&gt;"&lt;/tt&gt;.</div><div class='del'>-  #                                       CSV will always consider a double</div><div class='del'>-  #                                       sequence of this character to be an</div><div class='del'>-  #                                       escaped quote. This String will be</div><div class='del'>-  #                                       transcoded into the data's Encoding</div><div class='del'>-  #                                       before parsing.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:field_size_limit&lt;/tt&gt;&lt;/b&gt;::   This is a maximum size CSV will read</div><div class='del'>-  #                                       ahead looking for the closing quote</div><div class='del'>-  #                                       for a field.  (In truth, it reads to</div><div class='del'>-  #                                       the first line ending beyond this</div><div class='del'>-  #                                       size.)  If a quote cannot be found</div><div class='del'>-  #                                       within the limit CSV will raise a</div><div class='del'>-  #                                       MalformedCSVError, assuming the data</div><div class='del'>-  #                                       is faulty.  You can use this limit to</div><div class='del'>-  #                                       prevent what are effectively DoS</div><div class='del'>-  #                                       attacks on the parser.  However, this</div><div class='del'>-  #                                       limit can cause a legitimate parse to</div><div class='del'>-  #                                       fail and thus is set to +nil+, or off,</div><div class='del'>-  #                                       by default.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:converters&lt;/tt&gt;&lt;/b&gt;::         An Array of names from the Converters</div><div class='del'>-  #                                       Hash and/or lambdas that handle custom</div><div class='del'>-  #                                       conversion.  A single converter</div><div class='del'>-  #                                       doesn't have to be in an Array.  All</div><div class='del'>-  #                                       built-in converters try to transcode</div><div class='del'>-  #                                       fields to UTF-8 before converting.</div><div class='del'>-  #                                       The conversion will fail if the data</div><div class='del'>-  #                                       cannot be transcoded, leaving the</div><div class='del'>-  #                                       field unchanged.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:unconverted_fields&lt;/tt&gt;&lt;/b&gt;:: If set to +true+, an</div><div class='del'>-  #                                       unconverted_fields() method will be</div><div class='del'>-  #                                       added to all returned rows (Array or</div><div class='del'>-  #                                       CSV::Row) that will return the fields</div><div class='del'>-  #                                       as they were before conversion.  Note</div><div class='del'>-  #                                       that &lt;tt&gt;:headers&lt;/tt&gt; supplied by</div><div class='del'>-  #                                       Array or String were not fields of the</div><div class='del'>-  #                                       document and thus will have an empty</div><div class='del'>-  #                                       Array attached.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:headers&lt;/tt&gt;&lt;/b&gt;::            If set to &lt;tt&gt;:first_row&lt;/tt&gt; or</div><div class='del'>-  #                                       +true+, the initial row of the CSV</div><div class='del'>-  #                                       file will be treated as a row of</div><div class='del'>-  #                                       headers.  If set to an Array, the</div><div class='del'>-  #                                       contents will be used as the headers.</div><div class='del'>-  #                                       If set to a String, the String is run</div><div class='del'>-  #                                       through a call of CSV::parse_line()</div><div class='del'>-  #                                       with the same &lt;tt&gt;:col_sep&lt;/tt&gt;,</div><div class='del'>-  #                                       &lt;tt&gt;:row_sep&lt;/tt&gt;, and</div><div class='del'>-  #                                       &lt;tt&gt;:quote_char&lt;/tt&gt; as this instance</div><div class='del'>-  #                                       to produce an Array of headers.  This</div><div class='del'>-  #                                       setting causes CSV#shift() to return</div><div class='del'>-  #                                       rows as CSV::Row objects instead of</div><div class='del'>-  #                                       Arrays and CSV#read() to return</div><div class='del'>-  #                                       CSV::Table objects instead of an Array</div><div class='del'>-  #                                       of Arrays.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:return_headers&lt;/tt&gt;&lt;/b&gt;::     When +false+, header rows are silently</div><div class='del'>-  #                                       swallowed.  If set to +true+, header</div><div class='del'>-  #                                       rows are returned in a CSV::Row object</div><div class='del'>-  #                                       with identical headers and</div><div class='del'>-  #                                       fields (save that the fields do not go</div><div class='del'>-  #                                       through the converters).</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:write_headers&lt;/tt&gt;&lt;/b&gt;::      When +true+ and &lt;tt&gt;:headers&lt;/tt&gt; is</div><div class='del'>-  #                                       set, a header row will be added to the</div><div class='del'>-  #                                       output.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:header_converters&lt;/tt&gt;&lt;/b&gt;::  Identical in functionality to</div><div class='del'>-  #                                       &lt;tt&gt;:converters&lt;/tt&gt; save that the</div><div class='del'>-  #                                       conversions are only made to header</div><div class='del'>-  #                                       rows.  All built-in converters try to</div><div class='del'>-  #                                       transcode headers to UTF-8 before</div><div class='del'>-  #                                       converting.  The conversion will fail</div><div class='del'>-  #                                       if the data cannot be transcoded,</div><div class='del'>-  #                                       leaving the header unchanged.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:skip_blanks&lt;/tt&gt;&lt;/b&gt;::        When set to a +true+ value, CSV will</div><div class='del'>-  #                                       skip over any empty rows. Note that</div><div class='del'>-  #                                       this setting will not skip rows that</div><div class='del'>-  #                                       contain column separators, even if</div><div class='del'>-  #                                       the rows contain no actual data. If</div><div class='del'>-  #                                       you want to skip rows that contain</div><div class='del'>-  #                                       separators but no content, consider</div><div class='del'>-  #                                       using &lt;tt&gt;:skip_lines&lt;/tt&gt;, or</div><div class='del'>-  #                                       inspecting fields.compact.empty? on</div><div class='del'>-  #                                       each row.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:force_quotes&lt;/tt&gt;&lt;/b&gt;::       When set to a +true+ value, CSV will</div><div class='del'>-  #                                       quote all CSV fields it creates.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:skip_lines&lt;/tt&gt;&lt;/b&gt;::         When set to an object responding to</div><div class='del'>-  #                                       &lt;tt&gt;match&lt;/tt&gt;, every line matching</div><div class='del'>-  #                                       it is considered a comment and ignored</div><div class='del'>-  #                                       during parsing. When set to a String,</div><div class='del'>-  #                                       it is first converted to a Regexp.</div><div class='del'>-  #                                       When set to +nil+ no line is considered</div><div class='del'>-  #                                       a comment. If the passed object does</div><div class='del'>-  #                                       not respond to &lt;tt&gt;match&lt;/tt&gt;,</div><div class='del'>-  #                                       &lt;tt&gt;ArgumentError&lt;/tt&gt; is thrown.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:liberal_parsing&lt;/tt&gt;&lt;/b&gt;::    When set to a +true+ value, CSV will</div><div class='del'>-  #                                       attempt to parse input not conformant</div><div class='del'>-  #                                       with RFC 4180, such as double quotes</div><div class='del'>-  #                                       in unquoted fields.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:nil_value&lt;/tt&gt;&lt;/b&gt;::          When set an object, any values of an</div><div class='del'>-  #                                       empty field are replaced by the set</div><div class='del'>-  #                                       object, not nil.</div><div class='del'>-  # &lt;b&gt;&lt;tt&gt;:empty_value&lt;/tt&gt;&lt;/b&gt;::        When set an object, any values of a</div><div class='del'>-  #                                       blank string field is replaced by</div><div class='del'>-  #                                       the set object.</div><div class='del'>-  #</div><div class='del'>-  # See CSV::DEFAULT_OPTIONS for the default settings.</div><div class='del'>-  #</div><div class='del'>-  # Options cannot be overridden in the instance methods for performance reasons,</div><div class='del'>-  # so be sure to set what you want here.</div><div class='del'>-  #</div><div class='del'>-  def initialize(data, col_sep: ",", row_sep: :auto, quote_char: '"', field_size_limit:   nil,</div><div class='del'>-                 converters: nil, unconverted_fields: nil, headers: false, return_headers: false,</div><div class='del'>-                 write_headers: nil, header_converters: nil, skip_blanks: false, force_quotes: false,</div><div class='del'>-                 skip_lines: nil, liberal_parsing: false, internal_encoding: nil, external_encoding: nil, encoding: nil,</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   CSV.new(string)</div><div class='add'>+  #   CSV.new(io)</div><div class='add'>+  #   CSV.new(string, **options)</div><div class='add'>+  #   CSV.new(io, **options)</div><div class='add'>+  #</div><div class='add'>+  # Returns the new \CSV object created using +string+ or +io+</div><div class='add'>+  # and the specified +options+.</div><div class='add'>+  #</div><div class='add'>+  # - Argument +string+ should be a \String object;</div><div class='add'>+  #   it will be put into a new StringIO object positioned at the beginning.</div><div class='add'>+  # :include: ../doc/csv/arguments/io.rdoc</div><div class='add'>+  # - Argument +options+: See:</div><div class='add'>+  #   * {Options for Parsing}[#class-CSV-label-Options+for+Parsing]</div><div class='add'>+  #   * {Options for Generating}[#class-CSV-label-Options+for+Generating]</div><div class='add'>+  #   For performance reasons, the options cannot be overridden</div><div class='add'>+  #   in a \CSV object, so those specified here will endure.</div><div class='add'>+  #</div><div class='add'>+  # In addition to the \CSV instance methods, several \IO methods are delegated.</div><div class='add'>+  # See {Delegated Methods}[#class-CSV-label-Delegated+Methods].</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Create a \CSV object from a \String object:</div><div class='add'>+  #   csv = CSV.new('foo,0')</div><div class='add'>+  #   csv # =&gt; #&lt;CSV io_type:StringIO encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\""&gt;</div><div class='add'>+  #</div><div class='add'>+  # Create a \CSV object from a \File object:</div><div class='add'>+  #   File.write('t.csv', 'foo,0')</div><div class='add'>+  #   csv = CSV.new(File.open('t.csv'))</div><div class='add'>+  #   csv # =&gt; #&lt;CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\""&gt;</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if the argument is +nil+:</div><div class='add'>+  #   # Raises ArgumentError (Cannot parse nil as CSV):</div><div class='add'>+  #   CSV.new(nil)</div><div class='add'>+  #</div><div class='add'>+  def initialize(data,</div><div class='add'>+                 col_sep: ",",</div><div class='add'>+                 row_sep: :auto,</div><div class='add'>+                 quote_char: '"',</div><div class='add'>+                 field_size_limit: nil,</div><div class='add'>+                 max_field_size: nil,</div><div class='add'>+                 converters: nil,</div><div class='add'>+                 unconverted_fields: nil,</div><div class='add'>+                 headers: false,</div><div class='add'>+                 return_headers: false,</div><div class='add'>+                 write_headers: nil,</div><div class='add'>+                 header_converters: nil,</div><div class='add'>+                 skip_blanks: false,</div><div class='add'>+                 force_quotes: false,</div><div class='add'>+                 skip_lines: nil,</div><div class='add'>+                 liberal_parsing: false,</div><div class='add'>+                 internal_encoding: nil,</div><div class='add'>+                 external_encoding: nil,</div><div class='add'>+                 encoding: nil,</div><div class='ctx'>                  nil_value: nil,</div><div class='del'>-                 empty_value: "")</div><div class='add'>+                 empty_value: "",</div><div class='add'>+                 strip: false,</div><div class='add'>+                 quote_empty: true,</div><div class='add'>+                 write_converters: nil,</div><div class='add'>+                 write_nil_value: nil,</div><div class='add'>+                 write_empty_value: "")</div><div class='ctx'>     raise ArgumentError.new("Cannot parse nil as CSV") if data.nil?</div><div class='ctx'> </div><div class='del'>-    # create the IO object we will read from</div><div class='del'>-    @io = data.is_a?(String) ? StringIO.new(data) : data</div><div class='add'>+    if data.is_a?(String)</div><div class='add'>+      if encoding</div><div class='add'>+        if encoding.is_a?(String)</div><div class='add'>+          data_external_encoding, data_internal_encoding = encoding.split(":", 2)</div><div class='add'>+          if data_internal_encoding</div><div class='add'>+            data = data.encode(data_internal_encoding, data_external_encoding)</div><div class='add'>+          else</div><div class='add'>+            data = data.dup.force_encoding(data_external_encoding)</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          data = data.dup.force_encoding(encoding)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      @io = StringIO.new(data)</div><div class='add'>+    else</div><div class='add'>+      @io = data</div><div class='add'>+    end</div><div class='ctx'>     @encoding = determine_encoding(encoding, internal_encoding)</div><div class='del'>-    #</div><div class='del'>-    # prepare for building safe regular expressions in the target encoding,</div><div class='del'>-    # if we can transcode the needed characters</div><div class='del'>-    #</div><div class='del'>-    @re_esc   = "\\".encode(@encoding).freeze rescue ""</div><div class='del'>-    @re_chars = /#{%"[-\\]\\[\\.^$?*+{}()|# \r\n\t\f\v]".encode(@encoding)}/</div><div class='del'>-    @unconverted_fields = unconverted_fields</div><div class='del'>-</div><div class='del'>-    # Stores header row settings and loads header converters, if needed.</div><div class='del'>-    @use_headers    = headers</div><div class='del'>-    @return_headers = return_headers</div><div class='del'>-    @write_headers  = write_headers</div><div class='ctx'> </div><div class='del'>-    # headers must be delayed until shift(), in case they need a row of content</div><div class='del'>-    @headers = nil</div><div class='del'>-</div><div class='del'>-    @nil_value = nil_value</div><div class='del'>-    @empty_value = empty_value</div><div class='del'>-    @empty_value_is_empty_string = (empty_value == "")</div><div class='del'>-</div><div class='del'>-    init_separators(col_sep, row_sep, quote_char, force_quotes)</div><div class='del'>-    init_parsers(skip_blanks, field_size_limit, liberal_parsing)</div><div class='del'>-    init_converters(converters, :@converters, :convert)</div><div class='del'>-    init_converters(header_converters, :@header_converters, :header_convert)</div><div class='del'>-    init_comments(skip_lines)</div><div class='add'>+    @base_fields_converter_options = {</div><div class='add'>+      nil_value: nil_value,</div><div class='add'>+      empty_value: empty_value,</div><div class='add'>+    }</div><div class='add'>+    @write_fields_converter_options = {</div><div class='add'>+      nil_value: write_nil_value,</div><div class='add'>+      empty_value: write_empty_value,</div><div class='add'>+    }</div><div class='add'>+    @initial_converters = converters</div><div class='add'>+    @initial_header_converters = header_converters</div><div class='add'>+    @initial_write_converters = write_converters</div><div class='ctx'> </div><div class='del'>-    @force_encoding = !!encoding</div><div class='add'>+    if max_field_size.nil? and field_size_limit</div><div class='add'>+      max_field_size = field_size_limit - 1</div><div class='add'>+    end</div><div class='add'>+    @parser_options = {</div><div class='add'>+      column_separator: col_sep,</div><div class='add'>+      row_separator: row_sep,</div><div class='add'>+      quote_character: quote_char,</div><div class='add'>+      max_field_size: max_field_size,</div><div class='add'>+      unconverted_fields: unconverted_fields,</div><div class='add'>+      headers: headers,</div><div class='add'>+      return_headers: return_headers,</div><div class='add'>+      skip_blanks: skip_blanks,</div><div class='add'>+      skip_lines: skip_lines,</div><div class='add'>+      liberal_parsing: liberal_parsing,</div><div class='add'>+      encoding: @encoding,</div><div class='add'>+      nil_value: nil_value,</div><div class='add'>+      empty_value: empty_value,</div><div class='add'>+      strip: strip,</div><div class='add'>+    }</div><div class='add'>+    @parser = nil</div><div class='add'>+    @parser_enumerator = nil</div><div class='add'>+    @eof_error = nil</div><div class='add'>+</div><div class='add'>+    @writer_options = {</div><div class='add'>+      encoding: @encoding,</div><div class='add'>+      force_encoding: (not encoding.nil?),</div><div class='add'>+      force_quotes: force_quotes,</div><div class='add'>+      headers: headers,</div><div class='add'>+      write_headers: write_headers,</div><div class='add'>+      column_separator: col_sep,</div><div class='add'>+      row_separator: row_sep,</div><div class='add'>+      quote_character: quote_char,</div><div class='add'>+      quote_empty: quote_empty,</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    # track our own lineno since IO gets confused about line-ends is CSV fields</div><div class='del'>-    @lineno = 0</div><div class='add'>+    @writer = nil</div><div class='add'>+    writer if @writer_options[:write_headers]</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-    # make sure headers have been assigned</div><div class='del'>-    if header_row? and [Array, String].include? @use_headers.class and @write_headers</div><div class='del'>-      parse_headers  # won't read data for Array or String</div><div class='del'>-      self &lt;&lt; @headers</div><div class='del'>-    end</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.col_sep -&gt; string</div><div class='add'>+  #</div><div class='add'>+  # Returns the encoded column separator; used for parsing and writing;</div><div class='add'>+  # see {Option +col_sep+}[#class-CSV-label-Option+col_sep]:</div><div class='add'>+  #   CSV.new('').col_sep # =&gt; ","</div><div class='add'>+  def col_sep</div><div class='add'>+    parser.column_separator</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.row_sep -&gt; string</div><div class='ctx'>   #</div><div class='del'>-  # The encoded &lt;tt&gt;:col_sep&lt;/tt&gt; used in parsing and writing.  See CSV::new</div><div class='del'>-  # for details.</div><div class='add'>+  # Returns the encoded row separator; used for parsing and writing;</div><div class='add'>+  # see {Option +row_sep+}[#class-CSV-label-Option+row_sep]:</div><div class='add'>+  #   CSV.new('').row_sep # =&gt; "\n"</div><div class='add'>+  def row_sep</div><div class='add'>+    parser.row_separator</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.quote_char -&gt; character</div><div class='ctx'>   #</div><div class='del'>-  attr_reader :col_sep</div><div class='add'>+  # Returns the encoded quote character; used for parsing and writing;</div><div class='add'>+  # see {Option +quote_char+}[#class-CSV-label-Option+quote_char]:</div><div class='add'>+  #   CSV.new('').quote_char # =&gt; "\""</div><div class='add'>+  def quote_char</div><div class='add'>+    parser.quote_character</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.field_size_limit -&gt; integer or nil</div><div class='ctx'>   #</div><div class='del'>-  # The encoded &lt;tt&gt;:row_sep&lt;/tt&gt; used in parsing and writing.  See CSV::new</div><div class='del'>-  # for details.</div><div class='add'>+  # Returns the limit for field size; used for parsing;</div><div class='add'>+  # see {Option +field_size_limit+}[#class-CSV-label-Option+field_size_limit]:</div><div class='add'>+  #   CSV.new('').field_size_limit # =&gt; nil</div><div class='ctx'>   #</div><div class='del'>-  attr_reader :row_sep</div><div class='add'>+  # Deprecated since 3.2.3. Use +max_field_size+ instead.</div><div class='add'>+  def field_size_limit</div><div class='add'>+    parser.field_size_limit</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.max_field_size -&gt; integer or nil</div><div class='ctx'>   #</div><div class='del'>-  # The encoded &lt;tt&gt;:quote_char&lt;/tt&gt; used in parsing and writing.  See CSV::new</div><div class='del'>-  # for details.</div><div class='add'>+  # Returns the limit for field size; used for parsing;</div><div class='add'>+  # see {Option +max_field_size+}[#class-CSV-label-Option+max_field_size]:</div><div class='add'>+  #   CSV.new('').max_field_size # =&gt; nil</div><div class='ctx'>   #</div><div class='del'>-  attr_reader :quote_char</div><div class='del'>-  # The limit for field size, if any.  See CSV::new for details.</div><div class='del'>-  attr_reader :field_size_limit</div><div class='del'>-</div><div class='del'>-  # The regex marking a line as a comment. See CSV::new for details</div><div class='del'>-  attr_reader :skip_lines</div><div class='add'>+  # Since 3.2.3.</div><div class='add'>+  def max_field_size</div><div class='add'>+    parser.max_field_size</div><div class='add'>+  end</div><div class='ctx'> </div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.skip_lines -&gt; regexp or nil</div><div class='ctx'>   #</div><div class='del'>-  # Returns the current list of converters in effect.  See CSV::new for details.</div><div class='del'>-  # Built-in converters will be returned by name, while others will be returned</div><div class='del'>-  # as is.</div><div class='del'>-  #</div><div class='add'>+  # Returns the \Regexp used to identify comment lines; used for parsing;</div><div class='add'>+  # see {Option +skip_lines+}[#class-CSV-label-Option+skip_lines]:</div><div class='add'>+  #   CSV.new('').skip_lines # =&gt; nil</div><div class='add'>+  def skip_lines</div><div class='add'>+    parser.skip_lines</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.converters -&gt; array</div><div class='add'>+  #</div><div class='add'>+  # Returns an \Array containing field converters;</div><div class='add'>+  # see {Field Converters}[#class-CSV-label-Field+Converters]:</div><div class='add'>+  #   csv = CSV.new('')</div><div class='add'>+  #   csv.converters # =&gt; []</div><div class='add'>+  #   csv.convert(:integer)</div><div class='add'>+  #   csv.converters # =&gt; [:integer]</div><div class='add'>+  #   csv.convert(proc {|x| x.to_s })</div><div class='add'>+  #   csv.converters</div><div class='add'>+  #</div><div class='add'>+  # Notes that you need to call</div><div class='add'>+  # +Ractor.make_shareable(CSV::Converters)+ on the main Ractor to use</div><div class='add'>+  # this method.</div><div class='ctx'>   def converters</div><div class='del'>-    @converters.map do |converter|</div><div class='add'>+    parser_fields_converter.map do |converter|</div><div class='ctx'>       name = Converters.rassoc(converter)</div><div class='ctx'>       name ? name.first : converter</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.unconverted_fields? -&gt; object</div><div class='add'>+  #</div><div class='add'>+  # Returns the value that determines whether unconverted fields are to be</div><div class='add'>+  # available; used for parsing;</div><div class='add'>+  # see {Option +unconverted_fields+}[#class-CSV-label-Option+unconverted_fields]:</div><div class='add'>+  #   CSV.new('').unconverted_fields? # =&gt; nil</div><div class='add'>+  def unconverted_fields?</div><div class='add'>+    parser.unconverted_fields?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.headers -&gt; object</div><div class='ctx'>   #</div><div class='del'>-  # Returns +true+ if unconverted_fields() to parsed results.  See CSV::new</div><div class='del'>-  # for details.</div><div class='del'>-  #</div><div class='del'>-  def unconverted_fields?() @unconverted_fields end</div><div class='del'>-  #</div><div class='del'>-  # Returns +nil+ if headers will not be used, +true+ if they will but have not</div><div class='del'>-  # yet been read, or the actual headers after they have been read.  See</div><div class='del'>-  # CSV::new for details.</div><div class='del'>-  #</div><div class='add'>+  # Returns the value that determines whether headers are used; used for parsing;</div><div class='add'>+  # see {Option +headers+}[#class-CSV-label-Option+headers]:</div><div class='add'>+  #   CSV.new('').headers # =&gt; nil</div><div class='ctx'>   def headers</div><div class='del'>-    @headers || true if @use_headers</div><div class='add'>+    if @writer</div><div class='add'>+      @writer.headers</div><div class='add'>+    else</div><div class='add'>+      parsed_headers = parser.headers</div><div class='add'>+      return parsed_headers if parsed_headers</div><div class='add'>+      raw_headers = @parser_options[:headers]</div><div class='add'>+      raw_headers = nil if raw_headers == false</div><div class='add'>+      raw_headers</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.return_headers? -&gt; true or false</div><div class='ctx'>   #</div><div class='del'>-  # Returns +true+ if headers will be returned as a row of results.</div><div class='del'>-  # See CSV::new for details.</div><div class='add'>+  # Returns the value that determines whether headers are to be returned; used for parsing;</div><div class='add'>+  # see {Option +return_headers+}[#class-CSV-label-Option+return_headers]:</div><div class='add'>+  #   CSV.new('').return_headers? # =&gt; false</div><div class='add'>+  def return_headers?</div><div class='add'>+    parser.return_headers?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.write_headers? -&gt; true or false</div><div class='ctx'>   #</div><div class='del'>-  def return_headers?()     @return_headers     end</div><div class='del'>-  # Returns +true+ if headers are written in output. See CSV::new for details.</div><div class='del'>-  def write_headers?()      @write_headers      end</div><div class='add'>+  # Returns the value that determines whether headers are to be written; used for generating;</div><div class='add'>+  # see {Option +write_headers+}[#class-CSV-label-Option+write_headers]:</div><div class='add'>+  #   CSV.new('').write_headers? # =&gt; nil</div><div class='add'>+  def write_headers?</div><div class='add'>+    @writer_options[:write_headers]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.header_converters -&gt; array</div><div class='ctx'>   #</div><div class='del'>-  # Returns the current list of converters in effect for headers.  See CSV::new</div><div class='del'>-  # for details.  Built-in converters will be returned by name, while others</div><div class='del'>-  # will be returned as is.</div><div class='add'>+  # Returns an \Array containing header converters; used for parsing;</div><div class='add'>+  # see {Header Converters}[#class-CSV-label-Header+Converters]:</div><div class='add'>+  #   CSV.new('').header_converters # =&gt; []</div><div class='ctx'>   #</div><div class='add'>+  # Notes that you need to call</div><div class='add'>+  # +Ractor.make_shareable(CSV::HeaderConverters)+ on the main Ractor</div><div class='add'>+  # to use this method.</div><div class='ctx'>   def header_converters</div><div class='del'>-    @header_converters.map do |converter|</div><div class='add'>+    header_fields_converter.map do |converter|</div><div class='ctx'>       name = HeaderConverters.rassoc(converter)</div><div class='ctx'>       name ? name.first : converter</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.skip_blanks? -&gt; true or false</div><div class='ctx'>   #</div><div class='del'>-  # Returns +true+ blank lines are skipped by the parser. See CSV::new</div><div class='del'>-  # for details.</div><div class='del'>-  #</div><div class='del'>-  def skip_blanks?()        @skip_blanks        end</div><div class='del'>-  # Returns +true+ if all output fields are quoted. See CSV::new for details.</div><div class='del'>-  def force_quotes?()       @force_quotes       end</div><div class='del'>-  # Returns +true+ if illegal input is handled. See CSV::new for details.</div><div class='del'>-  def liberal_parsing?()    @liberal_parsing    end</div><div class='add'>+  # Returns the value that determines whether blank lines are to be ignored; used for parsing;</div><div class='add'>+  # see {Option +skip_blanks+}[#class-CSV-label-Option+skip_blanks]:</div><div class='add'>+  #   CSV.new('').skip_blanks? # =&gt; false</div><div class='add'>+  def skip_blanks?</div><div class='add'>+    parser.skip_blanks?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.force_quotes? -&gt; true or false</div><div class='add'>+  #</div><div class='add'>+  # Returns the value that determines whether all output fields are to be quoted;</div><div class='add'>+  # used for generating;</div><div class='add'>+  # see {Option +force_quotes+}[#class-CSV-label-Option+force_quotes]:</div><div class='add'>+  #   CSV.new('').force_quotes? # =&gt; false</div><div class='add'>+  def force_quotes?</div><div class='add'>+    @writer_options[:force_quotes]</div><div class='add'>+  end</div><div class='ctx'> </div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.liberal_parsing? -&gt; true or false</div><div class='ctx'>   #</div><div class='del'>-  # The Encoding CSV is parsing or writing in.  This will be the Encoding you</div><div class='del'>-  # receive parsed data in and/or the Encoding data will be written in.</div><div class='add'>+  # Returns the value that determines whether illegal input is to be handled; used for parsing;</div><div class='add'>+  # see {Option +liberal_parsing+}[#class-CSV-label-Option+liberal_parsing]:</div><div class='add'>+  #   CSV.new('').liberal_parsing? # =&gt; false</div><div class='add'>+  def liberal_parsing?</div><div class='add'>+    parser.liberal_parsing?</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.encoding -&gt; encoding</div><div class='ctx'>   #</div><div class='add'>+  # Returns the encoding used for parsing and generating;</div><div class='add'>+  # see {Character Encodings (M17n or Multilingualization)}[#class-CSV-label-Character+Encodings+-28M17n+or+Multilingualization-29]:</div><div class='add'>+  #   CSV.new('').encoding # =&gt; #&lt;Encoding:UTF-8&gt;</div><div class='ctx'>   attr_reader :encoding</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # The line number of the last row read from this file.  Fields with nested</div><div class='del'>-  # line-end characters will not affect this count.</div><div class='del'>-  #</div><div class='del'>-  attr_reader :lineno, :line</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.line_no -&gt; integer</div><div class='add'>+  #</div><div class='add'>+  # Returns the count of the rows parsed or generated.</div><div class='add'>+  #</div><div class='add'>+  # Parsing:</div><div class='add'>+  #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   path = 't.csv'</div><div class='add'>+  #   File.write(path, string)</div><div class='add'>+  #   CSV.open(path) do |csv|</div><div class='add'>+  #     csv.each do |row|</div><div class='add'>+  #       p [csv.lineno, row]</div><div class='add'>+  #     end</div><div class='add'>+  #   end</div><div class='add'>+  # Output:</div><div class='add'>+  #   [1, ["foo", "0"]]</div><div class='add'>+  #   [2, ["bar", "1"]]</div><div class='add'>+  #   [3, ["baz", "2"]]</div><div class='add'>+  #</div><div class='add'>+  # Generating:</div><div class='add'>+  #   CSV.generate do |csv|</div><div class='add'>+  #     p csv.lineno; csv &lt;&lt; ['foo', 0]</div><div class='add'>+  #     p csv.lineno; csv &lt;&lt; ['bar', 1]</div><div class='add'>+  #     p csv.lineno; csv &lt;&lt; ['baz', 2]</div><div class='add'>+  #   end</div><div class='add'>+  # Output:</div><div class='add'>+  #   0</div><div class='add'>+  #   1</div><div class='add'>+  #   2</div><div class='add'>+  def lineno</div><div class='add'>+    if @writer</div><div class='add'>+      @writer.lineno</div><div class='add'>+    else</div><div class='add'>+      parser.lineno</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.line -&gt; array</div><div class='add'>+  #</div><div class='add'>+  # Returns the line most recently read:</div><div class='add'>+  #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   path = 't.csv'</div><div class='add'>+  #   File.write(path, string)</div><div class='add'>+  #   CSV.open(path) do |csv|</div><div class='add'>+  #     csv.each do |row|</div><div class='add'>+  #       p [csv.lineno, csv.line]</div><div class='add'>+  #     end</div><div class='add'>+  #   end</div><div class='add'>+  # Output:</div><div class='add'>+  #   [1, "foo,0\n"]</div><div class='add'>+  #   [2, "bar,1\n"]</div><div class='add'>+  #   [3, "baz,2\n"]</div><div class='add'>+  def line</div><div class='add'>+    parser.line</div><div class='add'>+  end</div><div class='ctx'> </div><div class='ctx'>   ### IO and StringIO Delegation ###</div><div class='ctx'> </div><div class='ctx'>   extend Forwardable</div><div class='del'>-  def_delegators :@io, :binmode, :binmode?, :close, :close_read, :close_write,</div><div class='del'>-                       :closed?, :eof, :eof?, :external_encoding, :fcntl,</div><div class='del'>-                       :fileno, :flock, :flush, :fsync, :internal_encoding,</div><div class='del'>-                       :ioctl, :isatty, :path, :pid, :pos, :pos=, :reopen,</div><div class='del'>-                       :seek, :stat, :string, :sync, :sync=, :tell, :to_i,</div><div class='del'>-                       :to_io, :truncate, :tty?</div><div class='add'>+  def_delegators :@io, :binmode, :close, :close_read, :close_write,</div><div class='add'>+                       :closed?, :external_encoding, :fcntl,</div><div class='add'>+                       :fileno, :flush, :fsync, :internal_encoding,</div><div class='add'>+                       :isatty, :pid, :pos, :pos=, :reopen,</div><div class='add'>+                       :seek, :string, :sync, :sync=, :tell,</div><div class='add'>+                       :truncate, :tty?</div><div class='add'>+</div><div class='add'>+  def binmode?</div><div class='add'>+    if @io.respond_to?(:binmode?)</div><div class='add'>+      @io.binmode?</div><div class='add'>+    else</div><div class='add'>+      false</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-  # Rewinds the underlying IO object and resets CSV's lineno() counter.</div><div class='del'>-  def rewind</div><div class='del'>-    @headers = nil</div><div class='del'>-    @lineno  = 0</div><div class='add'>+  def flock(*args)</div><div class='add'>+    raise NotImplementedError unless @io.respond_to?(:flock)</div><div class='add'>+    @io.flock(*args)</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-    @io.rewind</div><div class='add'>+  def ioctl(*args)</div><div class='add'>+    raise NotImplementedError unless @io.respond_to?(:ioctl)</div><div class='add'>+    @io.ioctl(*args)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  ### End Delegation ###</div><div class='add'>+  def path</div><div class='add'>+    @io.path if @io.respond_to?(:path)</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # The primary write method for wrapped Strings and IOs, +row+ (an Array or</div><div class='del'>-  # CSV::Row) is converted to CSV and appended to the data source.  When a</div><div class='del'>-  # CSV::Row is passed, only the row's fields() are appended to the output.</div><div class='del'>-  #</div><div class='del'>-  # The data source must be open for writing.</div><div class='del'>-  #</div><div class='del'>-  def &lt;&lt;(row)</div><div class='del'>-    # make sure headers have been assigned</div><div class='del'>-    if header_row? and [Array, String].include? @use_headers.class and !@write_headers</div><div class='del'>-      parse_headers  # won't read data for Array or String</div><div class='del'>-    end</div><div class='add'>+  def stat(*args)</div><div class='add'>+    raise NotImplementedError unless @io.respond_to?(:stat)</div><div class='add'>+    @io.stat(*args)</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-    # handle CSV::Row objects and Hashes</div><div class='del'>-    row = case row</div><div class='del'>-          when self.class::Row then row.fields</div><div class='del'>-          when Hash            then @headers.map { |header| row[header] }</div><div class='del'>-          else                      row</div><div class='del'>-          end</div><div class='add'>+  def to_i</div><div class='add'>+    raise NotImplementedError unless @io.respond_to?(:to_i)</div><div class='add'>+    @io.to_i</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-    @headers =  row if header_row?</div><div class='del'>-    @lineno  += 1</div><div class='del'>-</div><div class='del'>-    output = row.map(&amp;@quote).join(@col_sep) + @row_sep  # quote and separate</div><div class='del'>-    if @io.is_a?(StringIO)             and</div><div class='del'>-       output.encoding != (encoding = raw_encoding)</div><div class='del'>-      if @force_encoding</div><div class='del'>-        output = output.encode(encoding)</div><div class='del'>-      elsif (compatible_encoding = Encoding.compatible?(@io.string, output))</div><div class='del'>-        @io.set_encoding(compatible_encoding)</div><div class='del'>-        @io.seek(0, IO::SEEK_END)</div><div class='del'>-      end</div><div class='add'>+  def to_io</div><div class='add'>+    @io.respond_to?(:to_io) ? @io.to_io : @io</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def eof?</div><div class='add'>+    return false if @eof_error</div><div class='add'>+    begin</div><div class='add'>+      parser_enumerator.peek</div><div class='add'>+      false</div><div class='add'>+    rescue MalformedCSVError =&gt; error</div><div class='add'>+      @eof_error = error</div><div class='add'>+      false</div><div class='add'>+    rescue StopIteration</div><div class='add'>+      true</div><div class='ctx'>     end</div><div class='del'>-    @io &lt;&lt; output</div><div class='add'>+  end</div><div class='add'>+  alias_method :eof, :eof?</div><div class='add'>+</div><div class='add'>+  # Rewinds the underlying IO object and resets CSV's lineno() counter.</div><div class='add'>+  def rewind</div><div class='add'>+    @parser = nil</div><div class='add'>+    @parser_enumerator = nil</div><div class='add'>+    @eof_error = nil</div><div class='add'>+    @writer.rewind if @writer</div><div class='add'>+    @io.rewind</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  ### End Delegation ###</div><div class='ctx'> </div><div class='del'>-    self  # for chaining</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv &lt;&lt; row -&gt; self</div><div class='add'>+  #</div><div class='add'>+  # Appends a row to +self+.</div><div class='add'>+  #</div><div class='add'>+  # - Argument +row+ must be an \Array object or a CSV::Row object.</div><div class='add'>+  # - The output stream must be open for writing.</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Append Arrays:</div><div class='add'>+  #   CSV.generate do |csv|</div><div class='add'>+  #     csv &lt;&lt; ['foo', 0]</div><div class='add'>+  #     csv &lt;&lt; ['bar', 1]</div><div class='add'>+  #     csv &lt;&lt; ['baz', 2]</div><div class='add'>+  #   end # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #</div><div class='add'>+  # Append CSV::Rows:</div><div class='add'>+  #   headers = []</div><div class='add'>+  #   CSV.generate do |csv|</div><div class='add'>+  #     csv &lt;&lt; CSV::Row.new(headers, ['foo', 0])</div><div class='add'>+  #     csv &lt;&lt; CSV::Row.new(headers, ['bar', 1])</div><div class='add'>+  #     csv &lt;&lt; CSV::Row.new(headers, ['baz', 2])</div><div class='add'>+  #   end # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #</div><div class='add'>+  # Headers in CSV::Row objects are not appended:</div><div class='add'>+  #   headers = ['Name', 'Count']</div><div class='add'>+  #   CSV.generate do |csv|</div><div class='add'>+  #     csv &lt;&lt; CSV::Row.new(headers, ['foo', 0])</div><div class='add'>+  #     csv &lt;&lt; CSV::Row.new(headers, ['bar', 1])</div><div class='add'>+  #     csv &lt;&lt; CSV::Row.new(headers, ['baz', 2])</div><div class='add'>+  #   end # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if +row+ is not an \Array or \CSV::Row:</div><div class='add'>+  #   CSV.generate do |csv|</div><div class='add'>+  #     # Raises NoMethodError (undefined method `collect' for :foo:Symbol)</div><div class='add'>+  #     csv &lt;&lt; :foo</div><div class='add'>+  #   end</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if the output stream is not opened for writing:</div><div class='add'>+  #   path = 't.csv'</div><div class='add'>+  #   File.write(path, '')</div><div class='add'>+  #   File.open(path) do |file|</div><div class='add'>+  #     CSV.open(file) do |csv|</div><div class='add'>+  #       # Raises IOError (not opened for writing)</div><div class='add'>+  #       csv &lt;&lt; ['foo', 0]</div><div class='add'>+  #     end</div><div class='add'>+  #   end</div><div class='add'>+  def &lt;&lt;(row)</div><div class='add'>+    writer &lt;&lt; row</div><div class='add'>+    self</div><div class='ctx'>   end</div><div class='ctx'>   alias_method :add_row, :&lt;&lt;</div><div class='ctx'>   alias_method :puts,    :&lt;&lt;</div><div class='ctx'> </div><div class='del'>-  #</div><div class='ctx'>   # :call-seq:</div><div class='del'>-  #   convert( name )</div><div class='del'>-  #   convert { |field| ... }</div><div class='del'>-  #   convert { |field, field_info| ... }</div><div class='del'>-  #</div><div class='del'>-  # You can use this method to install a CSV::Converters built-in, or provide a</div><div class='del'>-  # block that handles a custom conversion.</div><div class='del'>-  #</div><div class='del'>-  # If you provide a block that takes one argument, it will be passed the field</div><div class='del'>-  # and is expected to return the converted value or the field itself.  If your</div><div class='del'>-  # block takes two arguments, it will also be passed a CSV::FieldInfo Struct,</div><div class='del'>-  # containing details about the field.  Again, the block should return a</div><div class='del'>-  # converted field or the field itself.</div><div class='del'>-  #</div><div class='add'>+  #   convert(converter_name) -&gt; array_of_procs</div><div class='add'>+  #   convert {|field, field_info| ... } -&gt; array_of_procs</div><div class='add'>+  #</div><div class='add'>+  # - With no block, installs a field converter (a \Proc).</div><div class='add'>+  # - With a block, defines and installs a custom field converter.</div><div class='add'>+  # - Returns the \Array of installed field converters.</div><div class='add'>+  #</div><div class='add'>+  # - Argument +converter_name+, if given, should be the name</div><div class='add'>+  #   of an existing field converter.</div><div class='add'>+  #</div><div class='add'>+  # See {Field Converters}[#class-CSV-label-Field+Converters].</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # With no block, installs a field converter:</div><div class='add'>+  #   csv = CSV.new('')</div><div class='add'>+  #   csv.convert(:integer)</div><div class='add'>+  #   csv.convert(:float)</div><div class='add'>+  #   csv.convert(:date)</div><div class='add'>+  #   csv.converters # =&gt; [:integer, :float, :date]</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # The block, if given, is called for each field:</div><div class='add'>+  # - Argument +field+ is the field value.</div><div class='add'>+  # - Argument +field_info+ is a CSV::FieldInfo object</div><div class='add'>+  #   containing details about the field.</div><div class='add'>+  #</div><div class='add'>+  # The examples here assume the prior execution of:</div><div class='add'>+  #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   path = 't.csv'</div><div class='add'>+  #   File.write(path, string)</div><div class='add'>+  #</div><div class='add'>+  # Example giving a block:</div><div class='add'>+  #   csv = CSV.open(path)</div><div class='add'>+  #   csv.convert {|field, field_info| p [field, field_info]; field.upcase }</div><div class='add'>+  #   csv.read # =&gt; [["FOO", "0"], ["BAR", "1"], ["BAZ", "2"]]</div><div class='add'>+  #</div><div class='add'>+  # Output:</div><div class='add'>+  #   ["foo", #&lt;struct CSV::FieldInfo index=0, line=1, header=nil&gt;]</div><div class='add'>+  #   ["0", #&lt;struct CSV::FieldInfo index=1, line=1, header=nil&gt;]</div><div class='add'>+  #   ["bar", #&lt;struct CSV::FieldInfo index=0, line=2, header=nil&gt;]</div><div class='add'>+  #   ["1", #&lt;struct CSV::FieldInfo index=1, line=2, header=nil&gt;]</div><div class='add'>+  #   ["baz", #&lt;struct CSV::FieldInfo index=0, line=3, header=nil&gt;]</div><div class='add'>+  #   ["2", #&lt;struct CSV::FieldInfo index=1, line=3, header=nil&gt;]</div><div class='add'>+  #</div><div class='add'>+  # The block need not return a \String object:</div><div class='add'>+  #   csv = CSV.open(path)</div><div class='add'>+  #   csv.convert {|field, field_info| field.to_sym }</div><div class='add'>+  #   csv.read # =&gt; [[:foo, :"0"], [:bar, :"1"], [:baz, :"2"]]</div><div class='add'>+  #</div><div class='add'>+  # If +converter_name+ is given, the block is not called:</div><div class='add'>+  #   csv = CSV.open(path)</div><div class='add'>+  #   csv.convert(:integer) {|field, field_info| fail 'Cannot happen' }</div><div class='add'>+  #   csv.read # =&gt; [["foo", 0], ["bar", 1], ["baz", 2]]</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Raises a parse-time exception if +converter_name+ is not the name of a built-in</div><div class='add'>+  # field converter:</div><div class='add'>+  #   csv = CSV.open(path)</div><div class='add'>+  #   csv.convert(:nosuch) =&gt; [nil]</div><div class='add'>+  #   # Raises NoMethodError (undefined method `arity' for nil:NilClass)</div><div class='add'>+  #   csv.read</div><div class='ctx'>   def convert(name = nil, &amp;converter)</div><div class='del'>-    add_converter(:@converters, self.class::Converters, name, &amp;converter)</div><div class='add'>+    parser_fields_converter.add_converter(name, &amp;converter)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='ctx'>   # :call-seq:</div><div class='del'>-  #   header_convert( name )</div><div class='del'>-  #   header_convert { |field| ... }</div><div class='del'>-  #   header_convert { |field, field_info| ... }</div><div class='del'>-  #</div><div class='del'>-  # Identical to CSV#convert(), but for header rows.</div><div class='del'>-  #</div><div class='del'>-  # Note that this method must be called before header rows are read to have any</div><div class='del'>-  # effect.</div><div class='del'>-  #</div><div class='add'>+  #   header_convert(converter_name) -&gt; array_of_procs</div><div class='add'>+  #   header_convert {|header, field_info| ... } -&gt; array_of_procs</div><div class='add'>+  #</div><div class='add'>+  # - With no block, installs a header converter (a \Proc).</div><div class='add'>+  # - With a block, defines and installs a custom header converter.</div><div class='add'>+  # - Returns the \Array of installed header converters.</div><div class='add'>+  #</div><div class='add'>+  # - Argument +converter_name+, if given, should be the name</div><div class='add'>+  #   of an existing header converter.</div><div class='add'>+  #</div><div class='add'>+  # See {Header Converters}[#class-CSV-label-Header+Converters].</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # With no block, installs a header converter:</div><div class='add'>+  #   csv = CSV.new('')</div><div class='add'>+  #   csv.header_convert(:symbol)</div><div class='add'>+  #   csv.header_convert(:downcase)</div><div class='add'>+  #   csv.header_converters # =&gt; [:symbol, :downcase]</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # The block, if given, is called for each header:</div><div class='add'>+  # - Argument +header+ is the header value.</div><div class='add'>+  # - Argument +field_info+ is a CSV::FieldInfo object</div><div class='add'>+  #   containing details about the header.</div><div class='add'>+  #</div><div class='add'>+  # The examples here assume the prior execution of:</div><div class='add'>+  #   string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   path = 't.csv'</div><div class='add'>+  #   File.write(path, string)</div><div class='add'>+  #</div><div class='add'>+  # Example giving a block:</div><div class='add'>+  #   csv = CSV.open(path, headers: true)</div><div class='add'>+  #   csv.header_convert {|header, field_info| p [header, field_info]; header.upcase }</div><div class='add'>+  #   table = csv.read</div><div class='add'>+  #   table # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+  #   table.headers # =&gt; ["NAME", "VALUE"]</div><div class='add'>+  #</div><div class='add'>+  # Output:</div><div class='add'>+  #   ["Name", #&lt;struct CSV::FieldInfo index=0, line=1, header=nil&gt;]</div><div class='add'>+  #   ["Value", #&lt;struct CSV::FieldInfo index=1, line=1, header=nil&gt;]</div><div class='add'>+</div><div class='add'>+  # The block need not return a \String object:</div><div class='add'>+  #   csv = CSV.open(path, headers: true)</div><div class='add'>+  #   csv.header_convert {|header, field_info| header.to_sym }</div><div class='add'>+  #   table = csv.read</div><div class='add'>+  #   table.headers # =&gt; [:Name, :Value]</div><div class='add'>+  #</div><div class='add'>+  # If +converter_name+ is given, the block is not called:</div><div class='add'>+  #   csv = CSV.open(path, headers: true)</div><div class='add'>+  #   csv.header_convert(:downcase) {|header, field_info| fail 'Cannot happen' }</div><div class='add'>+  #   table = csv.read</div><div class='add'>+  #   table.headers # =&gt; ["name", "value"]</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Raises a parse-time exception if +converter_name+ is not the name of a built-in</div><div class='add'>+  # field converter:</div><div class='add'>+  #   csv = CSV.open(path, headers: true)</div><div class='add'>+  #   csv.header_convert(:nosuch)</div><div class='add'>+  #   # Raises NoMethodError (undefined method `arity' for nil:NilClass)</div><div class='add'>+  #   csv.read</div><div class='ctx'>   def header_convert(name = nil, &amp;converter)</div><div class='del'>-    add_converter( :@header_converters,</div><div class='del'>-                   self.class::HeaderConverters,</div><div class='del'>-                   name,</div><div class='del'>-                   &amp;converter )</div><div class='add'>+    header_fields_converter.add_converter(name, &amp;converter)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   include Enumerable</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Yields each row of the data source in turn.</div><div class='del'>-  #</div><div class='del'>-  # Support for Enumerable.</div><div class='del'>-  #</div><div class='del'>-  # The data source must be open for reading.</div><div class='del'>-  #</div><div class='del'>-  def each</div><div class='del'>-    if block_given?</div><div class='del'>-      while row = shift</div><div class='del'>-        yield row</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.each -&gt; enumerator</div><div class='add'>+  #   csv.each {|row| ...}</div><div class='add'>+  #</div><div class='add'>+  # Calls the block with each successive row.</div><div class='add'>+  # The data source must be opened for reading.</div><div class='add'>+  #</div><div class='add'>+  # Without headers:</div><div class='add'>+  #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   csv = CSV.new(string)</div><div class='add'>+  #   csv.each do |row|</div><div class='add'>+  #     p row</div><div class='add'>+  #   end</div><div class='add'>+  # Output:</div><div class='add'>+  #   ["foo", "0"]</div><div class='add'>+  #   ["bar", "1"]</div><div class='add'>+  #   ["baz", "2"]</div><div class='add'>+  #</div><div class='add'>+  # With headers:</div><div class='add'>+  #   string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   csv = CSV.new(string, headers: true)</div><div class='add'>+  #   csv.each do |row|</div><div class='add'>+  #     p row</div><div class='add'>+  #   end</div><div class='add'>+  # Output:</div><div class='add'>+  #   &lt;CSV::Row "Name":"foo" "Value":"0"&gt;</div><div class='add'>+  #   &lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+  #   &lt;CSV::Row "Name":"baz" "Value":"2"&gt;</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if the source is not opened for reading:</div><div class='add'>+  #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   csv = CSV.new(string)</div><div class='add'>+  #   csv.close</div><div class='add'>+  #   # Raises IOError (not opened for reading)</div><div class='add'>+  #   csv.each do |row|</div><div class='add'>+  #     p row</div><div class='add'>+  #   end</div><div class='add'>+  def each(&amp;block)</div><div class='add'>+    return to_enum(__method__) unless block_given?</div><div class='add'>+    begin</div><div class='add'>+      while true</div><div class='add'>+        yield(parser_enumerator.next)</div><div class='ctx'>       end</div><div class='del'>-    else</div><div class='del'>-      to_enum</div><div class='add'>+    rescue StopIteration</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Slurps the remaining rows and returns an Array of Arrays.</div><div class='del'>-  #</div><div class='del'>-  # The data source must be open for reading.</div><div class='del'>-  #</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.read -&gt; array or csv_table</div><div class='add'>+  #</div><div class='add'>+  # Forms the remaining rows from +self+ into:</div><div class='add'>+  # - A CSV::Table object, if headers are in use.</div><div class='add'>+  # - An \Array of Arrays, otherwise.</div><div class='add'>+  #</div><div class='add'>+  # The data source must be opened for reading.</div><div class='add'>+  #</div><div class='add'>+  # Without headers:</div><div class='add'>+  #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   path = 't.csv'</div><div class='add'>+  #   File.write(path, string)</div><div class='add'>+  #   csv = CSV.open(path)</div><div class='add'>+  #   csv.read # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+  #</div><div class='add'>+  # With headers:</div><div class='add'>+  #   string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   path = 't.csv'</div><div class='add'>+  #   File.write(path, string)</div><div class='add'>+  #   csv = CSV.open(path, headers: true)</div><div class='add'>+  #   csv.read # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if the source is not opened for reading:</div><div class='add'>+  #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   csv = CSV.new(string)</div><div class='add'>+  #   csv.close</div><div class='add'>+  #   # Raises IOError (not opened for reading)</div><div class='add'>+  #   csv.read</div><div class='ctx'>   def read</div><div class='ctx'>     rows = to_a</div><div class='del'>-    if @use_headers</div><div class='del'>-      Table.new(rows)</div><div class='add'>+    if parser.use_headers?</div><div class='add'>+      Table.new(rows, headers: parser.headers)</div><div class='ctx'>     else</div><div class='ctx'>       rows</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'>   alias_method :readlines, :read</div><div class='ctx'> </div><div class='del'>-  # Returns +true+ if the next row read will be a header row.</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.header_row? -&gt; true or false</div><div class='add'>+  #</div><div class='add'>+  # Returns +true+ if the next row to be read is a header row\;</div><div class='add'>+  # +false+ otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Without headers:</div><div class='add'>+  #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   csv = CSV.new(string)</div><div class='add'>+  #   csv.header_row? # =&gt; false</div><div class='add'>+  #</div><div class='add'>+  # With headers:</div><div class='add'>+  #   string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   csv = CSV.new(string, headers: true)</div><div class='add'>+  #   csv.header_row? # =&gt; true</div><div class='add'>+  #   csv.shift # =&gt; #&lt;CSV::Row "Name":"foo" "Value":"0"&gt;</div><div class='add'>+  #   csv.header_row? # =&gt; false</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if the source is not opened for reading:</div><div class='add'>+  #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   csv = CSV.new(string)</div><div class='add'>+  #   csv.close</div><div class='add'>+  #   # Raises IOError (not opened for reading)</div><div class='add'>+  #   csv.header_row?</div><div class='ctx'>   def header_row?</div><div class='del'>-    @use_headers and @headers.nil?</div><div class='add'>+    parser.header_row?</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # The primary read method for wrapped Strings and IOs, a single row is pulled</div><div class='del'>-  # from the data source, parsed and returned as an Array of fields (if header</div><div class='del'>-  # rows are not used) or a CSV::Row (when header rows are used).</div><div class='del'>-  #</div><div class='del'>-  # The data source must be open for reading.</div><div class='del'>-  #</div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.shift -&gt; array, csv_row, or nil</div><div class='add'>+  #</div><div class='add'>+  # Returns the next row of data as:</div><div class='add'>+  # - An \Array if no headers are used.</div><div class='add'>+  # - A CSV::Row object if headers are used.</div><div class='add'>+  #</div><div class='add'>+  # The data source must be opened for reading.</div><div class='add'>+  #</div><div class='add'>+  # Without headers:</div><div class='add'>+  #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   csv = CSV.new(string)</div><div class='add'>+  #   csv.shift # =&gt; ["foo", "0"]</div><div class='add'>+  #   csv.shift # =&gt; ["bar", "1"]</div><div class='add'>+  #   csv.shift # =&gt; ["baz", "2"]</div><div class='add'>+  #   csv.shift # =&gt; nil</div><div class='add'>+  #</div><div class='add'>+  # With headers:</div><div class='add'>+  #   string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   csv = CSV.new(string, headers: true)</div><div class='add'>+  #   csv.shift # =&gt; #&lt;CSV::Row "Name":"foo" "Value":"0"&gt;</div><div class='add'>+  #   csv.shift # =&gt; #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+  #   csv.shift # =&gt; #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;</div><div class='add'>+  #   csv.shift # =&gt; nil</div><div class='add'>+  #</div><div class='add'>+  # ---</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if the source is not opened for reading:</div><div class='add'>+  #   string = "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   csv = CSV.new(string)</div><div class='add'>+  #   csv.close</div><div class='add'>+  #   # Raises IOError (not opened for reading)</div><div class='add'>+  #   csv.shift</div><div class='ctx'>   def shift</div><div class='del'>-    #########################################################################</div><div class='del'>-    ### This method is purposefully kept a bit long as simple conditional ###</div><div class='del'>-    ### checks are faster than numerous (expensive) method calls.         ###</div><div class='del'>-    #########################################################################</div><div class='del'>-</div><div class='del'>-    # handle headers not based on document content</div><div class='del'>-    if header_row? and @return_headers and</div><div class='del'>-       [Array, String].include? @use_headers.class</div><div class='del'>-      if @unconverted_fields</div><div class='del'>-        return add_unconverted_fields(parse_headers, Array.new)</div><div class='del'>-      else</div><div class='del'>-        return parse_headers</div><div class='del'>-      end</div><div class='add'>+    if @eof_error</div><div class='add'>+      eof_error, @eof_error = @eof_error, nil</div><div class='add'>+      raise eof_error</div><div class='ctx'>     end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # it can take multiple calls to &lt;tt&gt;@io.gets()&lt;/tt&gt; to get a full line,</div><div class='del'>-    # because of \r and/or \n characters embedded in quoted fields</div><div class='del'>-    #</div><div class='del'>-    in_extended_col = false</div><div class='del'>-    csv             = Array.new</div><div class='del'>-</div><div class='del'>-    loop do</div><div class='del'>-      # add another read to the line</div><div class='del'>-      unless parse = @io.gets(@row_sep)</div><div class='del'>-        return nil</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      if in_extended_col</div><div class='del'>-        @line.concat(parse)</div><div class='del'>-      else</div><div class='del'>-        @line = parse.clone</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      begin</div><div class='del'>-        parse.sub!(@parsers[:line_end], "")</div><div class='del'>-      rescue ArgumentError</div><div class='del'>-        unless parse.valid_encoding?</div><div class='del'>-          message = "Invalid byte sequence in #{parse.encoding}"</div><div class='del'>-          raise MalformedCSVError.new(message, lineno + 1)</div><div class='del'>-        end</div><div class='del'>-        raise</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      if csv.empty?</div><div class='del'>-        #</div><div class='del'>-        # I believe a blank line should be an &lt;tt&gt;Array.new&lt;/tt&gt;, not Ruby 1.8</div><div class='del'>-        # CSV's &lt;tt&gt;[nil]&lt;/tt&gt;</div><div class='del'>-        #</div><div class='del'>-        if parse.empty?</div><div class='del'>-          @lineno += 1</div><div class='del'>-          if @skip_blanks</div><div class='del'>-            next</div><div class='del'>-          elsif @unconverted_fields</div><div class='del'>-            return add_unconverted_fields(Array.new, Array.new)</div><div class='del'>-          elsif @use_headers</div><div class='del'>-            return self.class::Row.new(@headers, Array.new)</div><div class='del'>-          else</div><div class='del'>-            return Array.new</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      next if @skip_lines and @skip_lines.match parse</div><div class='del'>-</div><div class='del'>-      parts =  parse.split(@col_sep_split_separator, -1)</div><div class='del'>-      if parts.empty?</div><div class='del'>-        if in_extended_col</div><div class='del'>-          csv[-1] &lt;&lt; @col_sep   # will be replaced with a @row_sep after the parts.each loop</div><div class='del'>-        else</div><div class='del'>-          csv &lt;&lt; nil</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # This loop is the hot path of csv parsing. Some things may be non-dry</div><div class='del'>-      # for a reason. Make sure to benchmark when refactoring.</div><div class='del'>-      parts.each do |part|</div><div class='del'>-        if in_extended_col</div><div class='del'>-          # If we are continuing a previous column</div><div class='del'>-          if part.end_with?(@quote_char) &amp;&amp; part.count(@quote_char) % 2 != 0</div><div class='del'>-            # extended column ends</div><div class='del'>-            csv.last &lt;&lt; part[0..-2]</div><div class='del'>-            if csv.last.match?(@parsers[:stray_quote])</div><div class='del'>-              raise MalformedCSVError.new("Missing or stray quote",</div><div class='del'>-                                          lineno + 1)</div><div class='del'>-            end</div><div class='del'>-            csv.last.gsub!(@double_quote_char, @quote_char)</div><div class='del'>-            in_extended_col = false</div><div class='del'>-          else</div><div class='del'>-            csv.last &lt;&lt; part &lt;&lt; @col_sep</div><div class='del'>-          end</div><div class='del'>-        elsif part.start_with?(@quote_char)</div><div class='del'>-          # If we are starting a new quoted column</div><div class='del'>-          if part.count(@quote_char) % 2 != 0</div><div class='del'>-            # start an extended column</div><div class='del'>-            csv &lt;&lt; (part[1..-1] &lt;&lt; @col_sep)</div><div class='del'>-            in_extended_col =  true</div><div class='del'>-          elsif part.end_with?(@quote_char)</div><div class='del'>-            # regular quoted column</div><div class='del'>-            csv &lt;&lt; part[1..-2]</div><div class='del'>-            if csv.last.match?(@parsers[:stray_quote])</div><div class='del'>-              raise MalformedCSVError.new("Missing or stray quote",</div><div class='del'>-                                          lineno + 1)</div><div class='del'>-            end</div><div class='del'>-            csv.last.gsub!(@double_quote_char, @quote_char)</div><div class='del'>-          elsif @liberal_parsing</div><div class='del'>-            csv &lt;&lt; part</div><div class='del'>-          else</div><div class='del'>-            raise MalformedCSVError.new("Missing or stray quote",</div><div class='del'>-                                        lineno + 1)</div><div class='del'>-          end</div><div class='del'>-        elsif part.match?(@parsers[:quote_or_nl])</div><div class='del'>-          # Unquoted field with bad characters.</div><div class='del'>-          if part.match?(@parsers[:nl_or_lf])</div><div class='del'>-            message = "Unquoted fields do not allow \\r or \\n"</div><div class='del'>-            raise MalformedCSVError.new(message, lineno + 1)</div><div class='del'>-          else</div><div class='del'>-            if @liberal_parsing</div><div class='del'>-              csv &lt;&lt; part</div><div class='del'>-            else</div><div class='del'>-              raise MalformedCSVError.new("Illegal quoting", lineno + 1)</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        else</div><div class='del'>-          # Regular ole unquoted field.</div><div class='del'>-          csv &lt;&lt; (part.empty? ? nil : part)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Replace tacked on @col_sep with @row_sep if we are still in an extended</div><div class='del'>-      # column.</div><div class='del'>-      csv[-1][-1] = @row_sep if in_extended_col</div><div class='del'>-</div><div class='del'>-      if in_extended_col</div><div class='del'>-        # if we're at eof?(), a quoted field wasn't closed...</div><div class='del'>-        if @io.eof?</div><div class='del'>-          raise MalformedCSVError.new("Unclosed quoted field",</div><div class='del'>-                                      lineno + 1)</div><div class='del'>-        elsif @field_size_limit and csv.last.size &gt;= @field_size_limit</div><div class='del'>-          raise MalformedCSVError.new("Field size exceeded",</div><div class='del'>-                                      lineno + 1)</div><div class='del'>-        end</div><div class='del'>-        # otherwise, we need to loop and pull some more data to complete the row</div><div class='del'>-      else</div><div class='del'>-        @lineno += 1</div><div class='del'>-</div><div class='del'>-        # save fields unconverted fields, if needed...</div><div class='del'>-        unconverted = csv.dup if @unconverted_fields</div><div class='del'>-</div><div class='del'>-        if @use_headers</div><div class='del'>-          # parse out header rows and handle CSV::Row conversions...</div><div class='del'>-          csv = parse_headers(csv)</div><div class='del'>-        else</div><div class='del'>-          # convert fields, if needed...</div><div class='del'>-          csv = convert_fields(csv)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # inject unconverted fields and accessor, if requested...</div><div class='del'>-        if @unconverted_fields and not csv.respond_to? :unconverted_fields</div><div class='del'>-          add_unconverted_fields(csv, unconverted)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # return the results</div><div class='del'>-        break csv</div><div class='del'>-      end</div><div class='add'>+    begin</div><div class='add'>+      parser_enumerator.next</div><div class='add'>+    rescue StopIteration</div><div class='add'>+      nil</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'>   alias_method :gets,     :shift</div><div class='ctx'>   alias_method :readline, :shift</div><div class='ctx'> </div><div class='add'>+  # :call-seq:</div><div class='add'>+  #   csv.inspect -&gt; string</div><div class='ctx'>   #</div><div class='del'>-  # Returns a simplified description of the key CSV attributes in an</div><div class='del'>-  # ASCII compatible String.</div><div class='del'>-  #</div><div class='add'>+  # Returns a \String showing certain properties of +self+:</div><div class='add'>+  #   string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   csv = CSV.new(string, headers: true)</div><div class='add'>+  #   s = csv.inspect</div><div class='add'>+  #   s # =&gt; "#&lt;CSV io_type:StringIO encoding:UTF-8 lineno:0 col_sep:\",\" row_sep:\"\\n\" quote_char:\"\\\"\" headers:true&gt;"</div><div class='ctx'>   def inspect</div><div class='del'>-    str = ["&lt;#", self.class.to_s, " io_type:"]</div><div class='add'>+    str = ["#&lt;", self.class.to_s, " io_type:"]</div><div class='ctx'>     # show type of wrapped IO</div><div class='ctx'>     if    @io == $stdout then str &lt;&lt; "$stdout"</div><div class='ctx'>     elsif @io == $stdin  then str &lt;&lt; "$stdin"</div><div class='hunk'>@@ -1369,15 +2701,18 @@ class CSV</div><div class='ctx'>     # show encoding</div><div class='ctx'>     str &lt;&lt; " encoding:" &lt;&lt; @encoding.name</div><div class='ctx'>     # show other attributes</div><div class='del'>-    %w[ lineno     col_sep     row_sep</div><div class='del'>-        quote_char skip_blanks liberal_parsing ].each do |attr_name|</div><div class='del'>-      if a = instance_variable_get("@#{attr_name}")</div><div class='add'>+    ["lineno", "col_sep", "row_sep", "quote_char"].each do |attr_name|</div><div class='add'>+      if a = __send__(attr_name)</div><div class='ctx'>         str &lt;&lt; " " &lt;&lt; attr_name &lt;&lt; ":" &lt;&lt; a.inspect</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='del'>-    if @use_headers</div><div class='del'>-      str &lt;&lt; " headers:" &lt;&lt; headers.inspect</div><div class='add'>+    ["skip_blanks", "liberal_parsing"].each do |attr_name|</div><div class='add'>+      if a = __send__("#{attr_name}?")</div><div class='add'>+        str &lt;&lt; " " &lt;&lt; attr_name &lt;&lt; ":" &lt;&lt; a.inspect</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='add'>+    _headers = headers</div><div class='add'>+    str &lt;&lt; " headers:" &lt;&lt; _headers.inspect if _headers</div><div class='ctx'>     str &lt;&lt; "&gt;"</div><div class='ctx'>     begin</div><div class='ctx'>       str.join('')</div><div class='hunk'>@@ -1393,7 +2728,7 @@ class CSV</div><div class='ctx'> </div><div class='ctx'>   def determine_encoding(encoding, internal_encoding)</div><div class='ctx'>     # honor the IO encoding if we can, otherwise default to ASCII-8BIT</div><div class='del'>-    io_encoding = raw_encoding(nil)</div><div class='add'>+    io_encoding = raw_encoding</div><div class='ctx'>     return io_encoding if io_encoding</div><div class='ctx'> </div><div class='ctx'>     return Encoding.find(internal_encoding) if internal_encoding</div><div class='hunk'>@@ -1406,354 +2741,111 @@ class CSV</div><div class='ctx'>     Encoding.default_internal || Encoding.default_external</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Stores the indicated separators for later use.</div><div class='del'>-  #</div><div class='del'>-  # If auto-discovery was requested for &lt;tt&gt;@row_sep&lt;/tt&gt;, this method will read</div><div class='del'>-  # ahead in the &lt;tt&gt;@io&lt;/tt&gt; and try to find one.  +ARGF+, +STDIN+, +STDOUT+,</div><div class='del'>-  # +STDERR+ and any stream open for output only with a default</div><div class='del'>-  # &lt;tt&gt;@row_sep&lt;/tt&gt; of &lt;tt&gt;$INPUT_RECORD_SEPARATOR&lt;/tt&gt; (&lt;tt&gt;$/&lt;/tt&gt;).</div><div class='del'>-  #</div><div class='del'>-  # This method also establishes the quoting rules used for CSV output.</div><div class='del'>-  #</div><div class='del'>-  def init_separators(col_sep, row_sep, quote_char, force_quotes)</div><div class='del'>-    # store the selected separators</div><div class='del'>-    @col_sep    = col_sep.to_s.encode(@encoding)</div><div class='del'>-    if @col_sep == " "</div><div class='del'>-      @col_sep_split_separator = Regexp.new(/#{Regexp.escape(@col_sep)}/)</div><div class='del'>-    else</div><div class='del'>-      @col_sep_split_separator = @col_sep</div><div class='del'>-    end</div><div class='del'>-    @row_sep    = row_sep # encode after resolving :auto</div><div class='del'>-    @quote_char = quote_char.to_s.encode(@encoding)</div><div class='del'>-    @double_quote_char = @quote_char * 2</div><div class='del'>-</div><div class='del'>-    if @quote_char.length != 1</div><div class='del'>-      raise ArgumentError, ":quote_char has to be a single character String"</div><div class='add'>+  def normalize_converters(converters)</div><div class='add'>+    converters ||= []</div><div class='add'>+    unless converters.is_a?(Array)</div><div class='add'>+      converters = [converters]</div><div class='ctx'>     end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # automatically discover row separator when requested</div><div class='del'>-    # (not fully encoding safe)</div><div class='del'>-    #</div><div class='del'>-    if @row_sep == :auto</div><div class='del'>-      if [ARGF, STDIN, STDOUT, STDERR].include?(@io) or</div><div class='del'>-         (defined?(Zlib) and @io.class == Zlib::GzipWriter)</div><div class='del'>-        @row_sep = $INPUT_RECORD_SEPARATOR</div><div class='del'>-      else</div><div class='del'>-        begin</div><div class='del'>-          #</div><div class='del'>-          # remember where we were (pos() will raise an exception if @io is pipe</div><div class='del'>-          # or not opened for reading)</div><div class='del'>-          #</div><div class='del'>-          saved_pos = @io.pos</div><div class='del'>-          while @row_sep == :auto</div><div class='del'>-            #</div><div class='del'>-            # if we run out of data, it's probably a single line</div><div class='del'>-            # (ensure will set default value)</div><div class='del'>-            #</div><div class='del'>-            break unless sample = @io.gets(nil, 1024)</div><div class='del'>-</div><div class='del'>-            cr = encode_str("\r")</div><div class='del'>-            lf = encode_str("\n")</div><div class='del'>-            # extend sample if we're unsure of the line ending</div><div class='del'>-            if sample.end_with?(cr)</div><div class='del'>-              sample &lt;&lt; (@io.gets(nil, 1) || "")</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-            # try to find a standard separator</div><div class='del'>-            sample.each_char.each_cons(2) do |char, next_char|</div><div class='del'>-              case char</div><div class='del'>-              when cr</div><div class='del'>-                if next_char == lf</div><div class='del'>-                  @row_sep = encode_str("\r\n")</div><div class='del'>-                else</div><div class='del'>-                  @row_sep = cr</div><div class='del'>-                end</div><div class='del'>-                break</div><div class='del'>-              when lf</div><div class='del'>-                @row_sep = lf</div><div class='del'>-                break</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          # tricky seek() clone to work around GzipReader's lack of seek()</div><div class='del'>-          @io.rewind</div><div class='del'>-          # reset back to the remembered position</div><div class='del'>-          while saved_pos &gt; 1024  # avoid loading a lot of data into memory</div><div class='del'>-            @io.read(1024)</div><div class='del'>-            saved_pos -= 1024</div><div class='del'>-          end</div><div class='del'>-          @io.read(saved_pos) if saved_pos.nonzero?</div><div class='del'>-        rescue IOError         # not opened for reading</div><div class='del'>-          # do nothing:  ensure will set default</div><div class='del'>-        rescue NoMethodError   # Zlib::GzipWriter doesn't have some IO methods</div><div class='del'>-          # do nothing:  ensure will set default</div><div class='del'>-        rescue SystemCallError # pipe</div><div class='del'>-          # do nothing:  ensure will set default</div><div class='del'>-        ensure</div><div class='del'>-          #</div><div class='del'>-          # set default if we failed to detect</div><div class='del'>-          # (stream not opened for reading, a pipe, or a single line of data)</div><div class='del'>-          #</div><div class='del'>-          @row_sep = $INPUT_RECORD_SEPARATOR if @row_sep == :auto</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    @row_sep = @row_sep.to_s.encode(@encoding)</div><div class='del'>-</div><div class='del'>-    # establish quoting rules</div><div class='del'>-    @force_quotes = force_quotes</div><div class='del'>-    do_quote = lambda do |field|</div><div class='del'>-      field = String(field)</div><div class='del'>-      encoded_quote = @quote_char.encode(field.encoding)</div><div class='del'>-      encoded_quote + field.gsub(encoded_quote, encoded_quote * 2) + encoded_quote</div><div class='del'>-    end</div><div class='del'>-    quotable_chars = encode_str("\r\n", @col_sep, @quote_char)</div><div class='del'>-    @quote         = if @force_quotes</div><div class='del'>-      do_quote</div><div class='del'>-    else</div><div class='del'>-      lambda do |field|</div><div class='del'>-        if field.nil?  # represent +nil+ fields as empty unquoted fields</div><div class='del'>-          ""</div><div class='del'>-        else</div><div class='del'>-          field = String(field)  # Stringify fields</div><div class='del'>-          # represent empty fields as empty quoted fields</div><div class='del'>-          if field.empty? or</div><div class='del'>-             field.count(quotable_chars).nonzero?</div><div class='del'>-            do_quote.call(field)</div><div class='del'>-          else</div><div class='del'>-            field  # unquoted field</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='add'>+    converters.collect do |converter|</div><div class='add'>+      case converter</div><div class='add'>+      when Proc # custom code block</div><div class='add'>+        [nil, converter]</div><div class='add'>+      else # by name</div><div class='add'>+        [converter, nil]</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Pre-compiles parsers and stores them by name for access during reads.</div><div class='del'>-  def init_parsers(skip_blanks, field_size_limit, liberal_parsing)</div><div class='del'>-    # store the parser behaviors</div><div class='del'>-    @skip_blanks      = skip_blanks</div><div class='del'>-    @field_size_limit = field_size_limit</div><div class='del'>-    @liberal_parsing  = liberal_parsing</div><div class='del'>-</div><div class='del'>-    # prebuild Regexps for faster parsing</div><div class='del'>-    esc_row_sep = escape_re(@row_sep)</div><div class='del'>-    esc_quote   = escape_re(@quote_char)</div><div class='del'>-    @parsers = {</div><div class='del'>-      # for detecting parse errors</div><div class='del'>-      quote_or_nl:    encode_re("[", esc_quote, "\r\n]"),</div><div class='del'>-      nl_or_lf:       encode_re("[\r\n]"),</div><div class='del'>-      stray_quote:    encode_re( "[^", esc_quote, "]", esc_quote,</div><div class='del'>-                                 "[^", esc_quote, "]" ),</div><div class='del'>-      # safer than chomp!()</div><div class='del'>-      line_end:       encode_re(esc_row_sep, "\\z"),</div><div class='del'>-      # illegal unquoted characters</div><div class='del'>-      return_newline: encode_str("\r\n")</div><div class='del'>-    }</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Loads any converters requested during construction.</div><div class='del'>-  #</div><div class='del'>-  # If +field_name+ is set &lt;tt&gt;:converters&lt;/tt&gt; (the default) field converters</div><div class='del'>-  # are set.  When +field_name+ is &lt;tt&gt;:header_converters&lt;/tt&gt; header converters</div><div class='del'>-  # are added instead.</div><div class='ctx'>   #</div><div class='del'>-  # The &lt;tt&gt;:unconverted_fields&lt;/tt&gt; option is also activated for</div><div class='del'>-  # &lt;tt&gt;:converters&lt;/tt&gt; calls, if requested.</div><div class='add'>+  # Processes +fields+ with &lt;tt&gt;@converters&lt;/tt&gt;, or &lt;tt&gt;@header_converters&lt;/tt&gt;</div><div class='add'>+  # if +headers+ is passed as +true+, returning the converted field set. Any</div><div class='add'>+  # converter that changes the field into something other than a String halts</div><div class='add'>+  # the pipeline of conversion for that field. This is primarily an efficiency</div><div class='add'>+  # shortcut.</div><div class='ctx'>   #</div><div class='del'>-  def init_converters(converters, ivar_name, convert_method)</div><div class='del'>-    converters = case converters</div><div class='del'>-                 when nil then []</div><div class='del'>-                 when Array then converters</div><div class='del'>-                 else [converters]</div><div class='del'>-                 end</div><div class='del'>-    instance_variable_set(ivar_name, [])</div><div class='del'>-    convert = method(convert_method)</div><div class='del'>-</div><div class='del'>-    # load converters</div><div class='del'>-    converters.each do |converter|</div><div class='del'>-      if converter.is_a? Proc  # custom code block</div><div class='del'>-        convert.call(&amp;converter)</div><div class='del'>-      else                     # by name</div><div class='del'>-        convert.call(converter)</div><div class='del'>-      end</div><div class='add'>+  def convert_fields(fields, headers = false)</div><div class='add'>+    if headers</div><div class='add'>+      header_fields_converter.convert(fields, nil, 0)</div><div class='add'>+    else</div><div class='add'>+      parser_fields_converter.convert(fields, @headers, lineno)</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Stores the pattern of comments to skip from the provided options.</div><div class='ctx'>   #</div><div class='del'>-  # The pattern must respond to +.match+, else ArgumentError is raised.</div><div class='del'>-  # Strings are converted to a Regexp.</div><div class='add'>+  # Returns the encoding of the internal IO object.</div><div class='ctx'>   #</div><div class='del'>-  # See also CSV.new</div><div class='del'>-  def init_comments(skip_lines)</div><div class='del'>-    @skip_lines = skip_lines</div><div class='del'>-    @skip_lines = Regexp.new(Regexp.escape(@skip_lines)) if @skip_lines.is_a? String</div><div class='del'>-    if @skip_lines and not @skip_lines.respond_to?(:match)</div><div class='del'>-      raise ArgumentError, ":skip_lines has to respond to matches"</div><div class='add'>+  def raw_encoding</div><div class='add'>+    if @io.respond_to? :internal_encoding</div><div class='add'>+      @io.internal_encoding || @io.external_encoding</div><div class='add'>+    elsif @io.respond_to? :encoding</div><div class='add'>+      @io.encoding</div><div class='add'>+    else</div><div class='add'>+      nil</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='del'>-  #</div><div class='del'>-  # The actual work method for adding converters, used by both CSV.convert() and</div><div class='del'>-  # CSV.header_convert().</div><div class='del'>-  #</div><div class='del'>-  # This method requires the +var_name+ of the instance variable to place the</div><div class='del'>-  # converters in, the +const+ Hash to lookup named converters in, and the</div><div class='del'>-  # normal parameters of the CSV.convert() and CSV.header_convert() methods.</div><div class='del'>-  #</div><div class='del'>-  def add_converter(var_name, const, name = nil, &amp;converter)</div><div class='del'>-    if name.nil?  # custom converter</div><div class='del'>-      instance_variable_get(var_name) &lt;&lt; converter</div><div class='del'>-    else          # named converter</div><div class='del'>-      combo = const[name]</div><div class='del'>-      case combo</div><div class='del'>-      when Array  # combo converter</div><div class='del'>-        combo.each do |converter_name|</div><div class='del'>-          add_converter(var_name, const, converter_name)</div><div class='del'>-        end</div><div class='del'>-      else        # individual named converter</div><div class='del'>-        instance_variable_get(var_name) &lt;&lt; combo</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='add'>+</div><div class='add'>+  def parser_fields_converter</div><div class='add'>+    @parser_fields_converter ||= build_parser_fields_converter</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Processes +fields+ with &lt;tt&gt;@converters&lt;/tt&gt;, or &lt;tt&gt;@header_converters&lt;/tt&gt;</div><div class='del'>-  # if +headers+ is passed as +true+, returning the converted field set.  Any</div><div class='del'>-  # converter that changes the field into something other than a String halts</div><div class='del'>-  # the pipeline of conversion for that field.  This is primarily an efficiency</div><div class='del'>-  # shortcut.</div><div class='del'>-  #</div><div class='del'>-  def convert_fields(fields, headers = false)</div><div class='del'>-    if headers</div><div class='del'>-      converters = @header_converters</div><div class='del'>-    else</div><div class='del'>-      converters = @converters</div><div class='del'>-      if !@use_headers and</div><div class='del'>-          converters.empty? and</div><div class='del'>-          @nil_value.nil? and</div><div class='del'>-          @empty_value_is_empty_string</div><div class='del'>-        return fields</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='add'>+  def build_parser_fields_converter</div><div class='add'>+    specific_options = {</div><div class='add'>+      builtin_converters_name: :Converters,</div><div class='add'>+    }</div><div class='add'>+    options = @base_fields_converter_options.merge(specific_options)</div><div class='add'>+    build_fields_converter(@initial_converters, options)</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-    fields.map.with_index do |field, index|</div><div class='del'>-      if field.nil?</div><div class='del'>-        field = @nil_value</div><div class='del'>-      elsif field.empty?</div><div class='del'>-        field = @empty_value unless @empty_value_is_empty_string</div><div class='del'>-      end</div><div class='del'>-      converters.each do |converter|</div><div class='del'>-        break if headers &amp;&amp; field.nil?</div><div class='del'>-        field = if converter.arity == 1  # straight field converter</div><div class='del'>-          converter[field]</div><div class='del'>-        else                             # FieldInfo converter</div><div class='del'>-          header = @use_headers &amp;&amp; !headers ? @headers[index] : nil</div><div class='del'>-          converter[field, FieldInfo.new(index, lineno, header)]</div><div class='del'>-        end</div><div class='del'>-        break unless field.is_a? String  # short-circuit pipeline for speed</div><div class='del'>-      end</div><div class='del'>-      field  # final state of each field, converted or original</div><div class='del'>-    end</div><div class='add'>+  def header_fields_converter</div><div class='add'>+    @header_fields_converter ||= build_header_fields_converter</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # This method is used to turn a finished +row+ into a CSV::Row.  Header rows</div><div class='del'>-  # are also dealt with here, either by returning a CSV::Row with identical</div><div class='del'>-  # headers and fields (save that the fields do not go through the converters)</div><div class='del'>-  # or by reading past them to return a field row. Headers are also saved in</div><div class='del'>-  # &lt;tt&gt;@headers&lt;/tt&gt; for use in future rows.</div><div class='del'>-  #</div><div class='del'>-  # When +nil+, +row+ is assumed to be a header row not based on an actual row</div><div class='del'>-  # of the stream.</div><div class='del'>-  #</div><div class='del'>-  def parse_headers(row = nil)</div><div class='del'>-    if @headers.nil?                # header row</div><div class='del'>-      @headers = case @use_headers  # save headers</div><div class='del'>-                 # Array of headers</div><div class='del'>-                 when Array then @use_headers</div><div class='del'>-                 # CSV header String</div><div class='del'>-                 when String</div><div class='del'>-                   self.class.parse_line( @use_headers,</div><div class='del'>-                                          col_sep:    @col_sep,</div><div class='del'>-                                          row_sep:    @row_sep,</div><div class='del'>-                                          quote_char: @quote_char )</div><div class='del'>-                 # first row is headers</div><div class='del'>-                 else            row</div><div class='del'>-                 end</div><div class='del'>-</div><div class='del'>-      # prepare converted and unconverted copies</div><div class='del'>-      row      = @headers                       if row.nil?</div><div class='del'>-      @headers = convert_fields(@headers, true)</div><div class='del'>-      @headers.each { |h| h.freeze if h.is_a? String }</div><div class='del'>-</div><div class='del'>-      if @return_headers                                     # return headers</div><div class='del'>-        return self.class::Row.new(@headers, row, true)</div><div class='del'>-      elsif not [Array, String].include? @use_headers.class  # skip to field row</div><div class='del'>-        return shift</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='add'>+  def build_header_fields_converter</div><div class='add'>+    specific_options = {</div><div class='add'>+      builtin_converters_name: :HeaderConverters,</div><div class='add'>+      accept_nil: true,</div><div class='add'>+    }</div><div class='add'>+    options = @base_fields_converter_options.merge(specific_options)</div><div class='add'>+    build_fields_converter(@initial_header_converters, options)</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-    self.class::Row.new(@headers, convert_fields(row))  # field row</div><div class='add'>+  def writer_fields_converter</div><div class='add'>+    @writer_fields_converter ||= build_writer_fields_converter</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # This method injects an instance variable &lt;tt&gt;unconverted_fields&lt;/tt&gt; into</div><div class='del'>-  # +row+ and an accessor method for +row+ called unconverted_fields().  The</div><div class='del'>-  # variable is set to the contents of +fields+.</div><div class='del'>-  #</div><div class='del'>-  def add_unconverted_fields(row, fields)</div><div class='del'>-    class &lt;&lt; row</div><div class='del'>-      attr_reader :unconverted_fields</div><div class='add'>+  def build_writer_fields_converter</div><div class='add'>+    build_fields_converter(@initial_write_converters,</div><div class='add'>+                           @write_fields_converter_options)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def build_fields_converter(initial_converters, options)</div><div class='add'>+    fields_converter = FieldsConverter.new(options)</div><div class='add'>+    normalize_converters(initial_converters).each do |name, converter|</div><div class='add'>+      fields_converter.add_converter(name, &amp;converter)</div><div class='ctx'>     end</div><div class='del'>-    row.instance_variable_set(:@unconverted_fields, fields)</div><div class='del'>-    row</div><div class='add'>+    fields_converter</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # This method is an encoding safe version of Regexp::escape().  It will escape</div><div class='del'>-  # any characters that would change the meaning of a regular expression in the</div><div class='del'>-  # encoding of +str+.  Regular expression characters that cannot be transcoded</div><div class='del'>-  # to the target encoding will be skipped and no escaping will be performed if</div><div class='del'>-  # a backslash cannot be transcoded.</div><div class='del'>-  #</div><div class='del'>-  def escape_re(str)</div><div class='del'>-    str.gsub(@re_chars) {|c| @re_esc + c}</div><div class='add'>+  def parser</div><div class='add'>+    @parser ||= Parser.new(@io, parser_options)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Builds a regular expression in &lt;tt&gt;@encoding&lt;/tt&gt;.  All +chunks+ will be</div><div class='del'>-  # transcoded to that encoding.</div><div class='del'>-  #</div><div class='del'>-  def encode_re(*chunks)</div><div class='del'>-    Regexp.new(encode_str(*chunks))</div><div class='add'>+  def parser_options</div><div class='add'>+    @parser_options.merge(header_fields_converter: header_fields_converter,</div><div class='add'>+                          fields_converter: parser_fields_converter)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Builds a String in &lt;tt&gt;@encoding&lt;/tt&gt;.  All +chunks+ will be transcoded to</div><div class='del'>-  # that encoding.</div><div class='del'>-  #</div><div class='del'>-  def encode_str(*chunks)</div><div class='del'>-    chunks.map { |chunk| chunk.encode(@encoding.name) }.join('')</div><div class='add'>+  def parser_enumerator</div><div class='add'>+    @parser_enumerator ||= parser.parse</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Returns the encoding of the internal IO object or the +default+ if the</div><div class='del'>-  # encoding cannot be determined.</div><div class='del'>-  #</div><div class='del'>-  def raw_encoding(default = Encoding::ASCII_8BIT)</div><div class='del'>-    if @io.respond_to? :internal_encoding</div><div class='del'>-      @io.internal_encoding || @io.external_encoding</div><div class='del'>-    elsif @io.is_a? StringIO</div><div class='del'>-      @io.string.encoding</div><div class='del'>-    elsif @io.respond_to? :encoding</div><div class='del'>-      @io.encoding</div><div class='del'>-    else</div><div class='del'>-      default</div><div class='del'>-    end</div><div class='add'>+  def writer</div><div class='add'>+    @writer ||= Writer.new(@io, writer_options)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def writer_options</div><div class='add'>+    @writer_options.merge(header_fields_converter: header_fields_converter,</div><div class='add'>+                          fields_converter: writer_fields_converter)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='hunk'>@@ -1773,8 +2865,15 @@ end</div><div class='ctx'> #     c.read.any? { |a| a.include?("zombies") }</div><div class='ctx'> #   } #=&gt; false</div><div class='ctx'> #</div><div class='del'>-def CSV(*args, &amp;block)</div><div class='del'>-  CSV.instance(*args, &amp;block)</div><div class='add'>+# CSV options may also be given.</div><div class='add'>+#</div><div class='add'>+#   io = StringIO.new</div><div class='add'>+#   CSV(io, col_sep: ";") { |csv| csv &lt;&lt; ["a", "b", "c"] }</div><div class='add'>+#</div><div class='add'>+# This API is not Ractor-safe.</div><div class='add'>+#</div><div class='add'>+def CSV(*args, **options, &amp;block)</div><div class='add'>+  CSV.instance(*args, **options, &amp;block)</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> require_relative "csv/version"</div><div class='head'>diff --git a/lib/csv/core_ext/array.rb b/lib/csv/core_ext/array.rb<br/>index 94df7d5c35..8beb06b082 100644<br/>--- a/<a href='/ruby.git/tree/lib/csv/core_ext/array.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/core_ext/array.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/csv/core_ext/array.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/core_ext/array.rb</a></div><div class='hunk'>@@ -4,6 +4,6 @@ class Array # :nodoc:</div><div class='ctx'>   #   ["CSV", "data"].to_csv</div><div class='ctx'>   #     #=&gt; "CSV,data\n"</div><div class='ctx'>   def to_csv(**options)</div><div class='del'>-    CSV.generate_line(self, options)</div><div class='add'>+    CSV.generate_line(self, **options)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/csv/core_ext/string.rb b/lib/csv/core_ext/string.rb<br/>index 8f2070f3bd..9b1d31c2a4 100644<br/>--- a/<a href='/ruby.git/tree/lib/csv/core_ext/string.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/core_ext/string.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/csv/core_ext/string.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/core_ext/string.rb</a></div><div class='hunk'>@@ -4,6 +4,6 @@ class String # :nodoc:</div><div class='ctx'>   #   "CSV,data".parse_csv</div><div class='ctx'>   #     #=&gt; ["CSV", "data"]</div><div class='ctx'>   def parse_csv(**options)</div><div class='del'>-    CSV.parse_line(self, options)</div><div class='add'>+    CSV.parse_line(self, **options)</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/csv/csv.gemspec b/lib/csv/csv.gemspec<br/>index fae5caae19..11c5b0f2a6 100644<br/>--- a/<a href='/ruby.git/tree/lib/csv/csv.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/csv.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/lib/csv/csv.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/csv.gemspec</a></div><div class='hunk'>@@ -16,14 +16,49 @@ Gem::Specification.new do |spec|</div><div class='ctx'>   spec.summary       = "CSV Reading and Writing"</div><div class='ctx'>   spec.description   = "The CSV library provides a complete interface to CSV files and data. It offers tools to enable you to read and write to and from Strings or IO objects, as needed."</div><div class='ctx'>   spec.homepage      = "https://github.com/ruby/csv"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> </div><div class='del'>-  spec.files         = ["lib/csv.rb", "lib/csv/table.rb", "lib/csv/core_ext/string.rb", "lib/csv/core_ext/array.rb", "lib/csv/row.rb", "lib/csv/version.rb"]</div><div class='del'>-  spec.files         += ["README.md", "LICENSE.txt", "news.md"]</div><div class='del'>-  spec.require_paths = ["lib"]</div><div class='del'>-  spec.required_ruby_version = "&gt;= 2.3.0"</div><div class='add'>+  lib_path = "lib"</div><div class='add'>+  spec.require_paths = [lib_path]</div><div class='add'>+  files = []</div><div class='add'>+  lib_dir = File.join(__dir__, lib_path)</div><div class='add'>+  if File.exist?(lib_dir)</div><div class='add'>+    Dir.chdir(lib_dir) do</div><div class='add'>+      Dir.glob("**/*.rb").each do |file|</div><div class='add'>+        files &lt;&lt; "lib/#{file}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  doc_dir = File.join(__dir__, "doc")</div><div class='add'>+  if File.exist?(doc_dir)</div><div class='add'>+    Dir.chdir(doc_dir) do</div><div class='add'>+      Dir.glob("**/*.rdoc").each do |rdoc_file|</div><div class='add'>+        files &lt;&lt; "doc/#{rdoc_file}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  spec.files = files</div><div class='add'>+  spec.rdoc_options.concat(["--main", "README.md"])</div><div class='add'>+  rdoc_files = [</div><div class='add'>+    "LICENSE.txt",</div><div class='add'>+    "NEWS.md",</div><div class='add'>+    "README.md",</div><div class='add'>+  ]</div><div class='add'>+  recipes_dir = File.join(doc_dir, "csv", "recipes")</div><div class='add'>+  if File.exist?(recipes_dir)</div><div class='add'>+    Dir.chdir(recipes_dir) do</div><div class='add'>+      Dir.glob("**/*.rdoc").each do |recipe_file|</div><div class='add'>+        rdoc_files &lt;&lt; "doc/csv/recipes/#{recipe_file}"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  spec.extra_rdoc_files = rdoc_files</div><div class='ctx'> </div><div class='add'>+  spec.required_ruby_version = "&gt;= 2.5.0"</div><div class='add'>+</div><div class='add'>+  # spec.add_dependency "stringio", "&gt;= 0.1.3"</div><div class='ctx'>   spec.add_development_dependency "bundler"</div><div class='ctx'>   spec.add_development_dependency "rake"</div><div class='del'>-  spec.add_development_dependency "benchmark-ips"</div><div class='add'>+  spec.add_development_dependency "benchmark_driver"</div><div class='add'>+  spec.add_development_dependency "test-unit", "&gt;= 3.4.8"</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/csv/delete_suffix.rb b/lib/csv/delete_suffix.rb<br/>new file mode 100644<br/>index 0000000000..d457718997<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/csv/delete_suffix.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/delete_suffix.rb</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+# This provides String#delete_suffix? for Ruby 2.4.</div><div class='add'>+unless String.method_defined?(:delete_suffix)</div><div class='add'>+  class CSV</div><div class='add'>+    module DeleteSuffix</div><div class='add'>+      refine String do</div><div class='add'>+        def delete_suffix(suffix)</div><div class='add'>+          if end_with?(suffix)</div><div class='add'>+            self[0...-suffix.size]</div><div class='add'>+          else</div><div class='add'>+            self</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/csv/fields_converter.rb b/lib/csv/fields_converter.rb<br/>new file mode 100644<br/>index 0000000000..d15977d379<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/csv/fields_converter.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/fields_converter.rb</a></div><div class='hunk'>@@ -0,0 +1,89 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+class CSV</div><div class='add'>+  # Note: Don't use this class directly. This is an internal class.</div><div class='add'>+  class FieldsConverter</div><div class='add'>+    include Enumerable</div><div class='add'>+    #</div><div class='add'>+    # A CSV::FieldsConverter is a data structure for storing the</div><div class='add'>+    # fields converter properties to be passed as a parameter</div><div class='add'>+    # when parsing a new file (e.g. CSV::Parser.new(@io, parser_options))</div><div class='add'>+    #</div><div class='add'>+</div><div class='add'>+    def initialize(options={})</div><div class='add'>+      @converters = []</div><div class='add'>+      @nil_value = options[:nil_value]</div><div class='add'>+      @empty_value = options[:empty_value]</div><div class='add'>+      @empty_value_is_empty_string = (@empty_value == "")</div><div class='add'>+      @accept_nil = options[:accept_nil]</div><div class='add'>+      @builtin_converters_name = options[:builtin_converters_name]</div><div class='add'>+      @need_static_convert = need_static_convert?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def add_converter(name=nil, &amp;converter)</div><div class='add'>+      if name.nil?  # custom converter</div><div class='add'>+        @converters &lt;&lt; converter</div><div class='add'>+      else          # named converter</div><div class='add'>+        combo = builtin_converters[name]</div><div class='add'>+        case combo</div><div class='add'>+        when Array  # combo converter</div><div class='add'>+          combo.each do |sub_name|</div><div class='add'>+            add_converter(sub_name)</div><div class='add'>+          end</div><div class='add'>+        else        # individual named converter</div><div class='add'>+          @converters &lt;&lt; combo</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def each(&amp;block)</div><div class='add'>+      @converters.each(&amp;block)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def empty?</div><div class='add'>+      @converters.empty?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def convert(fields, headers, lineno, quoted_fields)</div><div class='add'>+      return fields unless need_convert?</div><div class='add'>+</div><div class='add'>+      fields.collect.with_index do |field, index|</div><div class='add'>+        if field.nil?</div><div class='add'>+          field = @nil_value</div><div class='add'>+        elsif field.is_a?(String) and field.empty?</div><div class='add'>+          field = @empty_value unless @empty_value_is_empty_string</div><div class='add'>+        end</div><div class='add'>+        @converters.each do |converter|</div><div class='add'>+          break if field.nil? and @accept_nil</div><div class='add'>+          if converter.arity == 1  # straight field converter</div><div class='add'>+            field = converter[field]</div><div class='add'>+          else                     # FieldInfo converter</div><div class='add'>+            if headers</div><div class='add'>+              header = headers[index]</div><div class='add'>+            else</div><div class='add'>+              header = nil</div><div class='add'>+            end</div><div class='add'>+            quoted = quoted_fields[index]</div><div class='add'>+            field = converter[field, FieldInfo.new(index, lineno, header, quoted)]</div><div class='add'>+          end</div><div class='add'>+          break unless field.is_a?(String)  # short-circuit pipeline for speed</div><div class='add'>+        end</div><div class='add'>+        field  # final state of each field, converted or original</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+    def need_static_convert?</div><div class='add'>+      not (@nil_value.nil? and @empty_value_is_empty_string)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def need_convert?</div><div class='add'>+      @need_static_convert or</div><div class='add'>+        (not @converters.empty?)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def builtin_converters</div><div class='add'>+      @builtin_converters ||= ::CSV.const_get(@builtin_converters_name)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/csv/input_record_separator.rb b/lib/csv/input_record_separator.rb<br/>new file mode 100644<br/>index 0000000000..7a99343c0c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/csv/input_record_separator.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/input_record_separator.rb</a></div><div class='hunk'>@@ -0,0 +1,18 @@</div><div class='add'>+require "English"</div><div class='add'>+require "stringio"</div><div class='add'>+</div><div class='add'>+class CSV</div><div class='add'>+  module InputRecordSeparator</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      if RUBY_VERSION &gt;= "3.0.0"</div><div class='add'>+        def value</div><div class='add'>+          "\n"</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        def value</div><div class='add'>+          $INPUT_RECORD_SEPARATOR</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/csv/match_p.rb b/lib/csv/match_p.rb<br/>new file mode 100644<br/>index 0000000000..775559a3eb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/csv/match_p.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/match_p.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+# This provides String#match? and Regexp#match? for Ruby 2.3.</div><div class='add'>+unless String.method_defined?(:match?)</div><div class='add'>+  class CSV</div><div class='add'>+    module MatchP</div><div class='add'>+      refine String do</div><div class='add'>+        def match?(pattern)</div><div class='add'>+          self =~ pattern</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      refine Regexp do</div><div class='add'>+        def match?(string)</div><div class='add'>+          self =~ string</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/csv/parser.rb b/lib/csv/parser.rb<br/>new file mode 100644<br/>index 0000000000..afb3131cd5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/csv/parser.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/parser.rb</a></div><div class='hunk'>@@ -0,0 +1,1289 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require "strscan"</div><div class='add'>+</div><div class='add'>+require_relative "input_record_separator"</div><div class='add'>+require_relative "row"</div><div class='add'>+require_relative "table"</div><div class='add'>+</div><div class='add'>+class CSV</div><div class='add'>+  # Note: Don't use this class directly. This is an internal class.</div><div class='add'>+  class Parser</div><div class='add'>+    #</div><div class='add'>+    # A CSV::Parser is m17n aware. The parser works in the Encoding of the IO</div><div class='add'>+    # or String object being read from or written to. Your data is never transcoded</div><div class='add'>+    # (unless you ask Ruby to transcode it for you) and will literally be parsed in</div><div class='add'>+    # the Encoding it is in. Thus CSV will return Arrays or Rows of Strings in the</div><div class='add'>+    # Encoding of your data. This is accomplished by transcoding the parser itself</div><div class='add'>+    # into your Encoding.</div><div class='add'>+    #</div><div class='add'>+</div><div class='add'>+    # Raised when encoding is invalid.</div><div class='add'>+    class InvalidEncoding &lt; StandardError</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Raised when unexpected case is happen.</div><div class='add'>+    class UnexpectedError &lt; StandardError</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # CSV::Scanner receives a CSV output, scans it and return the content.</div><div class='add'>+    # It also controls the life cycle of the object with its methods +keep_start+,</div><div class='add'>+    # +keep_end+, +keep_back+, +keep_drop+.</div><div class='add'>+    #</div><div class='add'>+    # Uses StringScanner (the official strscan gem). Strscan provides lexical</div><div class='add'>+    # scanning operations on a String. We inherit its object and take advantage</div><div class='add'>+    # on the methods. For more information, please visit:</div><div class='add'>+    # https://ruby-doc.org/stdlib-2.6.1/libdoc/strscan/rdoc/StringScanner.html</div><div class='add'>+    #</div><div class='add'>+    class Scanner &lt; StringScanner</div><div class='add'>+      alias_method :scan_all, :scan</div><div class='add'>+</div><div class='add'>+      def initialize(*args)</div><div class='add'>+        super</div><div class='add'>+        @keeps = []</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def each_line(row_separator)</div><div class='add'>+        position = pos</div><div class='add'>+        rest.each_line(row_separator) do |line|</div><div class='add'>+          position += line.bytesize</div><div class='add'>+          self.pos = position</div><div class='add'>+          yield(line)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def keep_start</div><div class='add'>+        @keeps.push(pos)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def keep_end</div><div class='add'>+        start = @keeps.pop</div><div class='add'>+        string.byteslice(start, pos - start)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def keep_back</div><div class='add'>+        self.pos = @keeps.pop</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def keep_drop</div><div class='add'>+        @keeps.pop</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # CSV::InputsScanner receives IO inputs, encoding and the chunk_size.</div><div class='add'>+    # It also controls the life cycle of the object with its methods +keep_start+,</div><div class='add'>+    # +keep_end+, +keep_back+, +keep_drop+.</div><div class='add'>+    #</div><div class='add'>+    # CSV::InputsScanner.scan() tries to match with pattern at the current position.</div><div class='add'>+    # If there's a match, the scanner advances the "scan pointer" and returns the matched string.</div><div class='add'>+    # Otherwise, the scanner returns nil.</div><div class='add'>+    #</div><div class='add'>+    # CSV::InputsScanner.rest() returns the "rest" of the string (i.e. everything after the scan pointer).</div><div class='add'>+    # If there is no more data (eos? = true), it returns "".</div><div class='add'>+    #</div><div class='add'>+    class InputsScanner</div><div class='add'>+      def initialize(inputs, encoding, row_separator, chunk_size: 8192)</div><div class='add'>+        @inputs = inputs.dup</div><div class='add'>+        @encoding = encoding</div><div class='add'>+        @row_separator = row_separator</div><div class='add'>+        @chunk_size = chunk_size</div><div class='add'>+        @last_scanner = @inputs.empty?</div><div class='add'>+        @keeps = []</div><div class='add'>+        read_chunk</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def each_line(row_separator)</div><div class='add'>+        return enum_for(__method__, row_separator) unless block_given?</div><div class='add'>+        buffer = nil</div><div class='add'>+        input = @scanner.rest</div><div class='add'>+        position = @scanner.pos</div><div class='add'>+        offset = 0</div><div class='add'>+        n_row_separator_chars = row_separator.size</div><div class='add'>+        # trace(__method__, :start, line, input)</div><div class='add'>+        while true</div><div class='add'>+          input.each_line(row_separator) do |line|</div><div class='add'>+            @scanner.pos += line.bytesize</div><div class='add'>+            if buffer</div><div class='add'>+              if n_row_separator_chars == 2 and</div><div class='add'>+                buffer.end_with?(row_separator[0]) and</div><div class='add'>+                line.start_with?(row_separator[1])</div><div class='add'>+                buffer &lt;&lt; line[0]</div><div class='add'>+                line = line[1..-1]</div><div class='add'>+                position += buffer.bytesize + offset</div><div class='add'>+                @scanner.pos = position</div><div class='add'>+                offset = 0</div><div class='add'>+                yield(buffer)</div><div class='add'>+                buffer = nil</div><div class='add'>+                next if line.empty?</div><div class='add'>+              else</div><div class='add'>+                buffer &lt;&lt; line</div><div class='add'>+                line = buffer</div><div class='add'>+                buffer = nil</div><div class='add'>+              end</div><div class='add'>+            end</div><div class='add'>+            if line.end_with?(row_separator)</div><div class='add'>+              position += line.bytesize + offset</div><div class='add'>+              @scanner.pos = position</div><div class='add'>+              offset = 0</div><div class='add'>+              yield(line)</div><div class='add'>+            else</div><div class='add'>+              buffer = line</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+          break unless read_chunk</div><div class='add'>+          input = @scanner.rest</div><div class='add'>+          position = @scanner.pos</div><div class='add'>+          offset = -buffer.bytesize if buffer</div><div class='add'>+        end</div><div class='add'>+        yield(buffer) if buffer</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def scan(pattern)</div><div class='add'>+        # trace(__method__, pattern, :start)</div><div class='add'>+        value = @scanner.scan(pattern)</div><div class='add'>+        # trace(__method__, pattern, :done, :last, value) if @last_scanner</div><div class='add'>+        return value if @last_scanner</div><div class='add'>+</div><div class='add'>+        read_chunk if value and @scanner.eos?</div><div class='add'>+        # trace(__method__, pattern, :done, value)</div><div class='add'>+        value</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def scan_all(pattern)</div><div class='add'>+        # trace(__method__, pattern, :start)</div><div class='add'>+        value = @scanner.scan(pattern)</div><div class='add'>+        # trace(__method__, pattern, :done, :last, value) if @last_scanner</div><div class='add'>+        return value if @last_scanner</div><div class='add'>+</div><div class='add'>+        return nil if value.nil?</div><div class='add'>+        while @scanner.eos? and read_chunk and (sub_value = @scanner.scan(pattern))</div><div class='add'>+          # trace(__method__, pattern, :sub, sub_value)</div><div class='add'>+          value &lt;&lt; sub_value</div><div class='add'>+        end</div><div class='add'>+        # trace(__method__, pattern, :done, value)</div><div class='add'>+        value</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def eos?</div><div class='add'>+        @scanner.eos?</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def keep_start</div><div class='add'>+        # trace(__method__, :start)</div><div class='add'>+        adjust_last_keep</div><div class='add'>+        @keeps.push([@scanner, @scanner.pos, nil])</div><div class='add'>+        # trace(__method__, :done)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def keep_end</div><div class='add'>+        # trace(__method__, :start)</div><div class='add'>+        scanner, start, buffer = @keeps.pop</div><div class='add'>+        if scanner == @scanner</div><div class='add'>+          keep = @scanner.string.byteslice(start, @scanner.pos - start)</div><div class='add'>+        else</div><div class='add'>+          keep = @scanner.string.byteslice(0, @scanner.pos)</div><div class='add'>+        end</div><div class='add'>+        if buffer</div><div class='add'>+          buffer &lt;&lt; keep</div><div class='add'>+          keep = buffer</div><div class='add'>+        end</div><div class='add'>+        # trace(__method__, :done, keep)</div><div class='add'>+        keep</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def keep_back</div><div class='add'>+        # trace(__method__, :start)</div><div class='add'>+        scanner, start, buffer = @keeps.pop</div><div class='add'>+        if buffer</div><div class='add'>+          # trace(__method__, :rescan, start, buffer)</div><div class='add'>+          string = @scanner.string</div><div class='add'>+          if scanner == @scanner</div><div class='add'>+            keep = string.byteslice(start, string.bytesize - start)</div><div class='add'>+          else</div><div class='add'>+            keep = string</div><div class='add'>+          end</div><div class='add'>+          if keep and not keep.empty?</div><div class='add'>+            @inputs.unshift(StringIO.new(keep))</div><div class='add'>+            @last_scanner = false</div><div class='add'>+          end</div><div class='add'>+          @scanner = StringScanner.new(buffer)</div><div class='add'>+        else</div><div class='add'>+          if @scanner != scanner</div><div class='add'>+            message = "scanners are different but no buffer: "</div><div class='add'>+            message += "#{@scanner.inspect}(#{@scanner.object_id}): "</div><div class='add'>+            message += "#{scanner.inspect}(#{scanner.object_id})"</div><div class='add'>+            raise UnexpectedError, message</div><div class='add'>+          end</div><div class='add'>+          # trace(__method__, :repos, start, buffer)</div><div class='add'>+          @scanner.pos = start</div><div class='add'>+        end</div><div class='add'>+        read_chunk if @scanner.eos?</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def keep_drop</div><div class='add'>+        _, _, buffer = @keeps.pop</div><div class='add'>+        # trace(__method__, :done, :empty) unless buffer</div><div class='add'>+        return unless buffer</div><div class='add'>+</div><div class='add'>+        last_keep = @keeps.last</div><div class='add'>+        # trace(__method__, :done, :no_last_keep) unless last_keep</div><div class='add'>+        return unless last_keep</div><div class='add'>+</div><div class='add'>+        if last_keep[2]</div><div class='add'>+          last_keep[2] &lt;&lt; buffer</div><div class='add'>+        else</div><div class='add'>+          last_keep[2] = buffer</div><div class='add'>+        end</div><div class='add'>+        # trace(__method__, :done)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def rest</div><div class='add'>+        @scanner.rest</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def check(pattern)</div><div class='add'>+        @scanner.check(pattern)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+      def trace(*args)</div><div class='add'>+        pp([*args, @scanner, @scanner&amp;.string, @scanner&amp;.pos, @keeps])</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def adjust_last_keep</div><div class='add'>+        # trace(__method__, :start)</div><div class='add'>+</div><div class='add'>+        keep = @keeps.last</div><div class='add'>+        # trace(__method__, :done, :empty) if keep.nil?</div><div class='add'>+        return if keep.nil?</div><div class='add'>+</div><div class='add'>+        scanner, start, buffer = keep</div><div class='add'>+        string = @scanner.string</div><div class='add'>+        if @scanner != scanner</div><div class='add'>+          start = 0</div><div class='add'>+        end</div><div class='add'>+        if start == 0 and @scanner.eos?</div><div class='add'>+          keep_data = string</div><div class='add'>+        else</div><div class='add'>+          keep_data = string.byteslice(start, @scanner.pos - start)</div><div class='add'>+        end</div><div class='add'>+        if keep_data</div><div class='add'>+          if buffer</div><div class='add'>+            buffer &lt;&lt; keep_data</div><div class='add'>+          else</div><div class='add'>+            keep[2] = keep_data.dup</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        # trace(__method__, :done)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def read_chunk</div><div class='add'>+        return false if @last_scanner</div><div class='add'>+</div><div class='add'>+        adjust_last_keep</div><div class='add'>+</div><div class='add'>+        input = @inputs.first</div><div class='add'>+        case input</div><div class='add'>+        when StringIO</div><div class='add'>+          string = input.read</div><div class='add'>+          raise InvalidEncoding unless string.valid_encoding?</div><div class='add'>+          # trace(__method__, :stringio, string)</div><div class='add'>+          @scanner = StringScanner.new(string)</div><div class='add'>+          @inputs.shift</div><div class='add'>+          @last_scanner = @inputs.empty?</div><div class='add'>+          true</div><div class='add'>+        else</div><div class='add'>+          chunk = input.gets(@row_separator, @chunk_size)</div><div class='add'>+          if chunk</div><div class='add'>+            raise InvalidEncoding unless chunk.valid_encoding?</div><div class='add'>+            # trace(__method__, :chunk, chunk)</div><div class='add'>+            @scanner = StringScanner.new(chunk)</div><div class='add'>+            if input.respond_to?(:eof?) and input.eof?</div><div class='add'>+              @inputs.shift</div><div class='add'>+              @last_scanner = @inputs.empty?</div><div class='add'>+            end</div><div class='add'>+            true</div><div class='add'>+          else</div><div class='add'>+            # trace(__method__, :no_chunk)</div><div class='add'>+            @scanner = StringScanner.new("".encode(@encoding))</div><div class='add'>+            @inputs.shift</div><div class='add'>+            @last_scanner = @inputs.empty?</div><div class='add'>+            if @last_scanner</div><div class='add'>+              false</div><div class='add'>+            else</div><div class='add'>+              read_chunk</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def initialize(input, options)</div><div class='add'>+      @input = input</div><div class='add'>+      @options = options</div><div class='add'>+      @samples = []</div><div class='add'>+</div><div class='add'>+      prepare</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def column_separator</div><div class='add'>+      @column_separator</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def row_separator</div><div class='add'>+      @row_separator</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def quote_character</div><div class='add'>+      @quote_character</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def field_size_limit</div><div class='add'>+      @max_field_size&amp;.succ</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def max_field_size</div><div class='add'>+      @max_field_size</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def skip_lines</div><div class='add'>+      @skip_lines</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def unconverted_fields?</div><div class='add'>+      @unconverted_fields</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def headers</div><div class='add'>+      @headers</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def header_row?</div><div class='add'>+      @use_headers and @headers.nil?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def return_headers?</div><div class='add'>+      @return_headers</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def skip_blanks?</div><div class='add'>+      @skip_blanks</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def liberal_parsing?</div><div class='add'>+      @liberal_parsing</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def lineno</div><div class='add'>+      @lineno</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def line</div><div class='add'>+      last_line</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse(&amp;block)</div><div class='add'>+      return to_enum(__method__) unless block_given?</div><div class='add'>+</div><div class='add'>+      if @return_headers and @headers and @raw_headers</div><div class='add'>+        headers = Row.new(@headers, @raw_headers, true)</div><div class='add'>+        if @unconverted_fields</div><div class='add'>+          headers = add_unconverted_fields(headers, [])</div><div class='add'>+        end</div><div class='add'>+        yield headers</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      begin</div><div class='add'>+        @scanner ||= build_scanner</div><div class='add'>+        if quote_character.nil?</div><div class='add'>+          parse_no_quote(&amp;block)</div><div class='add'>+        elsif @need_robust_parsing</div><div class='add'>+          parse_quotable_robust(&amp;block)</div><div class='add'>+        else</div><div class='add'>+          parse_quotable_loose(&amp;block)</div><div class='add'>+        end</div><div class='add'>+      rescue InvalidEncoding</div><div class='add'>+        if @scanner</div><div class='add'>+          ignore_broken_line</div><div class='add'>+          lineno = @lineno</div><div class='add'>+        else</div><div class='add'>+          lineno = @lineno + 1</div><div class='add'>+        end</div><div class='add'>+        message = "Invalid byte sequence in #{@encoding}"</div><div class='add'>+        raise MalformedCSVError.new(message, lineno)</div><div class='add'>+      rescue UnexpectedError =&gt; error</div><div class='add'>+        if @scanner</div><div class='add'>+          ignore_broken_line</div><div class='add'>+          lineno = @lineno</div><div class='add'>+        else</div><div class='add'>+          lineno = @lineno + 1</div><div class='add'>+        end</div><div class='add'>+        message = "This should not be happen: #{error.message}: "</div><div class='add'>+        message += "Please report this to https://github.com/ruby/csv/issues"</div><div class='add'>+        raise MalformedCSVError.new(message, lineno)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def use_headers?</div><div class='add'>+      @use_headers</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+    # A set of tasks to prepare the file in order to parse it</div><div class='add'>+    def prepare</div><div class='add'>+      prepare_variable</div><div class='add'>+      prepare_quote_character</div><div class='add'>+      prepare_backslash</div><div class='add'>+      prepare_skip_lines</div><div class='add'>+      prepare_strip</div><div class='add'>+      prepare_separators</div><div class='add'>+      validate_strip_and_col_sep_options</div><div class='add'>+      prepare_quoted</div><div class='add'>+      prepare_unquoted</div><div class='add'>+      prepare_line</div><div class='add'>+      prepare_header</div><div class='add'>+      prepare_parser</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_variable</div><div class='add'>+      @need_robust_parsing = false</div><div class='add'>+      @encoding = @options[:encoding]</div><div class='add'>+      liberal_parsing = @options[:liberal_parsing]</div><div class='add'>+      if liberal_parsing</div><div class='add'>+        @liberal_parsing = true</div><div class='add'>+        if liberal_parsing.is_a?(Hash)</div><div class='add'>+          @double_quote_outside_quote =</div><div class='add'>+            liberal_parsing[:double_quote_outside_quote]</div><div class='add'>+          @backslash_quote = liberal_parsing[:backslash_quote]</div><div class='add'>+        else</div><div class='add'>+          @double_quote_outside_quote = false</div><div class='add'>+          @backslash_quote = false</div><div class='add'>+        end</div><div class='add'>+        @need_robust_parsing = true</div><div class='add'>+      else</div><div class='add'>+        @liberal_parsing = false</div><div class='add'>+        @backslash_quote = false</div><div class='add'>+      end</div><div class='add'>+      @unconverted_fields = @options[:unconverted_fields]</div><div class='add'>+      @max_field_size = @options[:max_field_size]</div><div class='add'>+      @skip_blanks = @options[:skip_blanks]</div><div class='add'>+      @fields_converter = @options[:fields_converter]</div><div class='add'>+      @header_fields_converter = @options[:header_fields_converter]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_quote_character</div><div class='add'>+      @quote_character = @options[:quote_character]</div><div class='add'>+      if @quote_character.nil?</div><div class='add'>+        @escaped_quote_character = nil</div><div class='add'>+        @escaped_quote = nil</div><div class='add'>+      else</div><div class='add'>+        @quote_character = @quote_character.to_s.encode(@encoding)</div><div class='add'>+        if @quote_character.length != 1</div><div class='add'>+          message = ":quote_char has to be nil or a single character String"</div><div class='add'>+          raise ArgumentError, message</div><div class='add'>+        end</div><div class='add'>+        @double_quote_character = @quote_character * 2</div><div class='add'>+        @escaped_quote_character = Regexp.escape(@quote_character)</div><div class='add'>+        @escaped_quote = Regexp.new(@escaped_quote_character)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_backslash</div><div class='add'>+      return unless @backslash_quote</div><div class='add'>+</div><div class='add'>+      @backslash_character = "\\".encode(@encoding)</div><div class='add'>+</div><div class='add'>+      @escaped_backslash_character = Regexp.escape(@backslash_character)</div><div class='add'>+      @escaped_backslash = Regexp.new(@escaped_backslash_character)</div><div class='add'>+      if @quote_character.nil?</div><div class='add'>+        @backslash_quote_character = nil</div><div class='add'>+      else</div><div class='add'>+        @backslash_quote_character =</div><div class='add'>+          @backslash_character + @escaped_quote_character</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_skip_lines</div><div class='add'>+      skip_lines = @options[:skip_lines]</div><div class='add'>+      case skip_lines</div><div class='add'>+      when String</div><div class='add'>+        @skip_lines = skip_lines.encode(@encoding)</div><div class='add'>+      when Regexp, nil</div><div class='add'>+        @skip_lines = skip_lines</div><div class='add'>+      else</div><div class='add'>+        unless skip_lines.respond_to?(:match)</div><div class='add'>+          message =</div><div class='add'>+            ":skip_lines has to respond to \#match: #{skip_lines.inspect}"</div><div class='add'>+          raise ArgumentError, message</div><div class='add'>+        end</div><div class='add'>+        @skip_lines = skip_lines</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_strip</div><div class='add'>+      @strip = @options[:strip]</div><div class='add'>+      @escaped_strip = nil</div><div class='add'>+      @strip_value = nil</div><div class='add'>+      @rstrip_value = nil</div><div class='add'>+      if @strip.is_a?(String)</div><div class='add'>+        case @strip.length</div><div class='add'>+        when 0</div><div class='add'>+          raise ArgumentError, ":strip must not be an empty String"</div><div class='add'>+        when 1</div><div class='add'>+          # ok</div><div class='add'>+        else</div><div class='add'>+          raise ArgumentError, ":strip doesn't support 2 or more characters yet"</div><div class='add'>+        end</div><div class='add'>+        @strip = @strip.encode(@encoding)</div><div class='add'>+        @escaped_strip = Regexp.escape(@strip)</div><div class='add'>+        if @quote_character</div><div class='add'>+          @strip_value = Regexp.new(@escaped_strip +</div><div class='add'>+                                    "+".encode(@encoding))</div><div class='add'>+          @rstrip_value = Regexp.new(@escaped_strip +</div><div class='add'>+                                     "+\\z".encode(@encoding))</div><div class='add'>+        end</div><div class='add'>+        @need_robust_parsing = true</div><div class='add'>+      elsif @strip</div><div class='add'>+        strip_values = " \t\f\v"</div><div class='add'>+        @escaped_strip = strip_values.encode(@encoding)</div><div class='add'>+        if @quote_character</div><div class='add'>+          @strip_value = Regexp.new("[#{strip_values}]+".encode(@encoding))</div><div class='add'>+          @rstrip_value = Regexp.new("[#{strip_values}]+\\z".encode(@encoding))</div><div class='add'>+        end</div><div class='add'>+        @need_robust_parsing = true</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    begin</div><div class='add'>+      StringScanner.new("x").scan("x")</div><div class='add'>+    rescue TypeError</div><div class='add'>+      STRING_SCANNER_SCAN_ACCEPT_STRING = false</div><div class='add'>+    else</div><div class='add'>+      STRING_SCANNER_SCAN_ACCEPT_STRING = true</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_separators</div><div class='add'>+      column_separator = @options[:column_separator]</div><div class='add'>+      @column_separator = column_separator.to_s.encode(@encoding)</div><div class='add'>+      if @column_separator.size &lt; 1</div><div class='add'>+        message = ":col_sep must be 1 or more characters: "</div><div class='add'>+        message += column_separator.inspect</div><div class='add'>+        raise ArgumentError, message</div><div class='add'>+      end</div><div class='add'>+      @row_separator =</div><div class='add'>+        resolve_row_separator(@options[:row_separator]).encode(@encoding)</div><div class='add'>+</div><div class='add'>+      @escaped_column_separator = Regexp.escape(@column_separator)</div><div class='add'>+      @escaped_first_column_separator = Regexp.escape(@column_separator[0])</div><div class='add'>+      if @column_separator.size &gt; 1</div><div class='add'>+        @column_end = Regexp.new(@escaped_column_separator)</div><div class='add'>+        @column_ends = @column_separator.each_char.collect do |char|</div><div class='add'>+          Regexp.new(Regexp.escape(char))</div><div class='add'>+        end</div><div class='add'>+        @first_column_separators = Regexp.new(@escaped_first_column_separator +</div><div class='add'>+                                              "+".encode(@encoding))</div><div class='add'>+      else</div><div class='add'>+        if STRING_SCANNER_SCAN_ACCEPT_STRING</div><div class='add'>+          @column_end = @column_separator</div><div class='add'>+        else</div><div class='add'>+          @column_end = Regexp.new(@escaped_column_separator)</div><div class='add'>+        end</div><div class='add'>+        @column_ends = nil</div><div class='add'>+        @first_column_separators = nil</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      escaped_row_separator = Regexp.escape(@row_separator)</div><div class='add'>+      @row_end = Regexp.new(escaped_row_separator)</div><div class='add'>+      if @row_separator.size &gt; 1</div><div class='add'>+        @row_ends = @row_separator.each_char.collect do |char|</div><div class='add'>+          Regexp.new(Regexp.escape(char))</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        @row_ends = nil</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      @cr = "\r".encode(@encoding)</div><div class='add'>+      @lf = "\n".encode(@encoding)</div><div class='add'>+      @line_end = Regexp.new("\r\n|\n|\r".encode(@encoding))</div><div class='add'>+      @not_line_end = Regexp.new("[^\r\n]+".encode(@encoding))</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # This method verifies that there are no (obvious) ambiguities with the</div><div class='add'>+    # provided +col_sep+ and +strip+ parsing options. For example, if +col_sep+</div><div class='add'>+    # and +strip+ were both equal to +\t+, then there would be no clear way to</div><div class='add'>+    # parse the input.</div><div class='add'>+    def validate_strip_and_col_sep_options</div><div class='add'>+      return unless @strip</div><div class='add'>+</div><div class='add'>+      if @strip.is_a?(String)</div><div class='add'>+        if @column_separator.start_with?(@strip) || @column_separator.end_with?(@strip)</div><div class='add'>+          raise ArgumentError,</div><div class='add'>+                "The provided strip (#{@escaped_strip}) and " \</div><div class='add'>+                "col_sep (#{@escaped_column_separator}) options are incompatible."</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        if Regexp.new("\\A[#{@escaped_strip}]|[#{@escaped_strip}]\\z").match?(@column_separator)</div><div class='add'>+          raise ArgumentError,</div><div class='add'>+                "The provided strip (true) and " \</div><div class='add'>+                "col_sep (#{@escaped_column_separator}) options are incompatible."</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_quoted</div><div class='add'>+      if @quote_character</div><div class='add'>+        @quotes = Regexp.new(@escaped_quote_character +</div><div class='add'>+                             "+".encode(@encoding))</div><div class='add'>+        no_quoted_values = @escaped_quote_character.dup</div><div class='add'>+        if @backslash_quote</div><div class='add'>+          no_quoted_values &lt;&lt; @escaped_backslash_character</div><div class='add'>+        end</div><div class='add'>+        @quoted_value = Regexp.new("[^".encode(@encoding) +</div><div class='add'>+                                   no_quoted_values +</div><div class='add'>+                                   "]+".encode(@encoding))</div><div class='add'>+      end</div><div class='add'>+      if @escaped_strip</div><div class='add'>+        @split_column_separator = Regexp.new(@escaped_strip +</div><div class='add'>+                                             "*".encode(@encoding) +</div><div class='add'>+                                             @escaped_column_separator +</div><div class='add'>+                                             @escaped_strip +</div><div class='add'>+                                             "*".encode(@encoding))</div><div class='add'>+      else</div><div class='add'>+        if @column_separator == " ".encode(@encoding)</div><div class='add'>+          @split_column_separator = Regexp.new(@escaped_column_separator)</div><div class='add'>+        else</div><div class='add'>+          @split_column_separator = @column_separator</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_unquoted</div><div class='add'>+      return if @quote_character.nil?</div><div class='add'>+</div><div class='add'>+      no_unquoted_values = "\r\n".encode(@encoding)</div><div class='add'>+      no_unquoted_values &lt;&lt; @escaped_first_column_separator</div><div class='add'>+      unless @liberal_parsing</div><div class='add'>+        no_unquoted_values &lt;&lt; @escaped_quote_character</div><div class='add'>+      end</div><div class='add'>+      @unquoted_value = Regexp.new("[^".encode(@encoding) +</div><div class='add'>+                                   no_unquoted_values +</div><div class='add'>+                                   "]+".encode(@encoding))</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def resolve_row_separator(separator)</div><div class='add'>+      if separator == :auto</div><div class='add'>+        cr = "\r".encode(@encoding)</div><div class='add'>+        lf = "\n".encode(@encoding)</div><div class='add'>+        if @input.is_a?(StringIO)</div><div class='add'>+          pos = @input.pos</div><div class='add'>+          separator = detect_row_separator(@input.read, cr, lf)</div><div class='add'>+          @input.seek(pos)</div><div class='add'>+        elsif @input.respond_to?(:gets)</div><div class='add'>+          if @input.is_a?(File)</div><div class='add'>+            chunk_size = 32 * 1024</div><div class='add'>+          else</div><div class='add'>+            chunk_size = 1024</div><div class='add'>+          end</div><div class='add'>+          begin</div><div class='add'>+            while separator == :auto</div><div class='add'>+              #</div><div class='add'>+              # if we run out of data, it's probably a single line</div><div class='add'>+              # (ensure will set default value)</div><div class='add'>+              #</div><div class='add'>+              break unless sample = @input.gets(nil, chunk_size)</div><div class='add'>+</div><div class='add'>+              # extend sample if we're unsure of the line ending</div><div class='add'>+              if sample.end_with?(cr)</div><div class='add'>+                sample &lt;&lt; (@input.gets(nil, 1) || "")</div><div class='add'>+              end</div><div class='add'>+</div><div class='add'>+              @samples &lt;&lt; sample</div><div class='add'>+</div><div class='add'>+              separator = detect_row_separator(sample, cr, lf)</div><div class='add'>+            end</div><div class='add'>+          rescue IOError</div><div class='add'>+            # do nothing:  ensure will set default</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+        separator = InputRecordSeparator.value if separator == :auto</div><div class='add'>+      end</div><div class='add'>+      separator.to_s.encode(@encoding)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def detect_row_separator(sample, cr, lf)</div><div class='add'>+      lf_index = sample.index(lf)</div><div class='add'>+      if lf_index</div><div class='add'>+        cr_index = sample[0, lf_index].index(cr)</div><div class='add'>+      else</div><div class='add'>+        cr_index = sample.index(cr)</div><div class='add'>+      end</div><div class='add'>+      if cr_index and lf_index</div><div class='add'>+        if cr_index + 1 == lf_index</div><div class='add'>+          cr + lf</div><div class='add'>+        elsif cr_index &lt; lf_index</div><div class='add'>+          cr</div><div class='add'>+        else</div><div class='add'>+          lf</div><div class='add'>+        end</div><div class='add'>+      elsif cr_index</div><div class='add'>+        cr</div><div class='add'>+      elsif lf_index</div><div class='add'>+        lf</div><div class='add'>+      else</div><div class='add'>+        :auto</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_line</div><div class='add'>+      @lineno = 0</div><div class='add'>+      @last_line = nil</div><div class='add'>+      @scanner = nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def last_line</div><div class='add'>+      if @scanner</div><div class='add'>+        @last_line ||= @scanner.keep_end</div><div class='add'>+      else</div><div class='add'>+        @last_line</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_header</div><div class='add'>+      @return_headers = @options[:return_headers]</div><div class='add'>+</div><div class='add'>+      headers = @options[:headers]</div><div class='add'>+      case headers</div><div class='add'>+      when Array</div><div class='add'>+        @raw_headers = headers</div><div class='add'>+        quoted_fields = [false] * @raw_headers.size</div><div class='add'>+        @use_headers = true</div><div class='add'>+      when String</div><div class='add'>+        @raw_headers, quoted_fields = parse_headers(headers)</div><div class='add'>+        @use_headers = true</div><div class='add'>+      when nil, false</div><div class='add'>+        @raw_headers = nil</div><div class='add'>+        @use_headers = false</div><div class='add'>+      else</div><div class='add'>+        @raw_headers = nil</div><div class='add'>+        @use_headers = true</div><div class='add'>+      end</div><div class='add'>+      if @raw_headers</div><div class='add'>+        @headers = adjust_headers(@raw_headers, quoted_fields)</div><div class='add'>+      else</div><div class='add'>+        @headers = nil</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_headers(row)</div><div class='add'>+      quoted_fields = []</div><div class='add'>+      converter = lambda do |field, info|</div><div class='add'>+        quoted_fields &lt;&lt; info.quoted?</div><div class='add'>+        field</div><div class='add'>+      end</div><div class='add'>+      headers = CSV.parse_line(row,</div><div class='add'>+                               col_sep:    @column_separator,</div><div class='add'>+                               row_sep:    @row_separator,</div><div class='add'>+                               quote_char: @quote_character,</div><div class='add'>+                               converters: [converter])</div><div class='add'>+      [headers, quoted_fields]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def adjust_headers(headers, quoted_fields)</div><div class='add'>+      adjusted_headers = @header_fields_converter.convert(headers, nil, @lineno, quoted_fields)</div><div class='add'>+      adjusted_headers.each {|h| h.freeze if h.is_a? String}</div><div class='add'>+      adjusted_headers</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_parser</div><div class='add'>+      @may_quoted = may_quoted?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def may_quoted?</div><div class='add'>+      return false if @quote_character.nil?</div><div class='add'>+</div><div class='add'>+      if @input.is_a?(StringIO)</div><div class='add'>+        pos = @input.pos</div><div class='add'>+        sample = @input.read</div><div class='add'>+        @input.seek(pos)</div><div class='add'>+      else</div><div class='add'>+        return false if @samples.empty?</div><div class='add'>+        sample = @samples.first</div><div class='add'>+      end</div><div class='add'>+      sample[0, 128].index(@quote_character)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    class UnoptimizedStringIO # :nodoc:</div><div class='add'>+      def initialize(string)</div><div class='add'>+        @io = StringIO.new(string, "rb:#{string.encoding}")</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def gets(*args)</div><div class='add'>+        @io.gets(*args)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def each_line(*args, &amp;block)</div><div class='add'>+        @io.each_line(*args, &amp;block)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def eof?</div><div class='add'>+        @io.eof?</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    SCANNER_TEST = (ENV["CSV_PARSER_SCANNER_TEST"] == "yes")</div><div class='add'>+    if SCANNER_TEST</div><div class='add'>+      SCANNER_TEST_CHUNK_SIZE_NAME = "CSV_PARSER_SCANNER_TEST_CHUNK_SIZE"</div><div class='add'>+      SCANNER_TEST_CHUNK_SIZE_VALUE = ENV[SCANNER_TEST_CHUNK_SIZE_NAME]</div><div class='add'>+      def build_scanner</div><div class='add'>+        inputs = @samples.collect do |sample|</div><div class='add'>+          UnoptimizedStringIO.new(sample)</div><div class='add'>+        end</div><div class='add'>+        if @input.is_a?(StringIO)</div><div class='add'>+          inputs &lt;&lt; UnoptimizedStringIO.new(@input.read)</div><div class='add'>+        else</div><div class='add'>+          inputs &lt;&lt; @input</div><div class='add'>+        end</div><div class='add'>+        begin</div><div class='add'>+          chunk_size_value = ENV[SCANNER_TEST_CHUNK_SIZE_NAME]</div><div class='add'>+        rescue # Ractor::IsolationError</div><div class='add'>+          # Ractor on Ruby 3.0 can't read ENV value.</div><div class='add'>+          chunk_size_value = SCANNER_TEST_CHUNK_SIZE_VALUE</div><div class='add'>+        end</div><div class='add'>+        chunk_size = Integer((chunk_size_value || "1"), 10)</div><div class='add'>+        InputsScanner.new(inputs,</div><div class='add'>+                          @encoding,</div><div class='add'>+                          @row_separator,</div><div class='add'>+                          chunk_size: chunk_size)</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      def build_scanner</div><div class='add'>+        string = nil</div><div class='add'>+        if @samples.empty? and @input.is_a?(StringIO)</div><div class='add'>+          string = @input.read</div><div class='add'>+        elsif @samples.size == 1 and</div><div class='add'>+              @input != ARGF and</div><div class='add'>+              @input.respond_to?(:eof?) and</div><div class='add'>+              @input.eof?</div><div class='add'>+          string = @samples[0]</div><div class='add'>+        end</div><div class='add'>+        if string</div><div class='add'>+          unless string.valid_encoding?</div><div class='add'>+            index = string.lines(@row_separator).index do |line|</div><div class='add'>+              !line.valid_encoding?</div><div class='add'>+            end</div><div class='add'>+            if index</div><div class='add'>+              message = "Invalid byte sequence in #{@encoding}"</div><div class='add'>+              raise MalformedCSVError.new(message, @lineno + index + 1)</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+          Scanner.new(string)</div><div class='add'>+        else</div><div class='add'>+          inputs = @samples.collect do |sample|</div><div class='add'>+            StringIO.new(sample)</div><div class='add'>+          end</div><div class='add'>+          inputs &lt;&lt; @input</div><div class='add'>+          InputsScanner.new(inputs, @encoding, @row_separator)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def skip_needless_lines</div><div class='add'>+      return unless @skip_lines</div><div class='add'>+</div><div class='add'>+      until @scanner.eos?</div><div class='add'>+        @scanner.keep_start</div><div class='add'>+        line = @scanner.scan_all(@not_line_end) || "".encode(@encoding)</div><div class='add'>+        line &lt;&lt; @row_separator if parse_row_end</div><div class='add'>+        if skip_line?(line)</div><div class='add'>+          @lineno += 1</div><div class='add'>+          @scanner.keep_drop</div><div class='add'>+        else</div><div class='add'>+          @scanner.keep_back</div><div class='add'>+          return</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def skip_line?(line)</div><div class='add'>+      line = line.delete_suffix(@row_separator)</div><div class='add'>+      case @skip_lines</div><div class='add'>+      when String</div><div class='add'>+        line.include?(@skip_lines)</div><div class='add'>+      when Regexp</div><div class='add'>+        @skip_lines.match?(line)</div><div class='add'>+      else</div><div class='add'>+        @skip_lines.match(line)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def validate_field_size(field)</div><div class='add'>+      return unless @max_field_size</div><div class='add'>+      return if field.size &lt;= @max_field_size</div><div class='add'>+      ignore_broken_line</div><div class='add'>+      message = "Field size exceeded: #{field.size} &gt; #{@max_field_size}"</div><div class='add'>+      raise MalformedCSVError.new(message, @lineno)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_no_quote(&amp;block)</div><div class='add'>+      @scanner.each_line(@row_separator) do |line|</div><div class='add'>+        next if @skip_lines and skip_line?(line)</div><div class='add'>+        original_line = line</div><div class='add'>+        line = line.delete_suffix(@row_separator)</div><div class='add'>+</div><div class='add'>+        if line.empty?</div><div class='add'>+          next if @skip_blanks</div><div class='add'>+          row = []</div><div class='add'>+          quoted_fields = []</div><div class='add'>+        else</div><div class='add'>+          line = strip_value(line)</div><div class='add'>+          row = line.split(@split_column_separator, -1)</div><div class='add'>+          quoted_fields = [false] * row.size</div><div class='add'>+          if @max_field_size</div><div class='add'>+            row.each do |column|</div><div class='add'>+              validate_field_size(column)</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+          n_columns = row.size</div><div class='add'>+          i = 0</div><div class='add'>+          while i &lt; n_columns</div><div class='add'>+            row[i] = nil if row[i].empty?</div><div class='add'>+            i += 1</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+        @last_line = original_line</div><div class='add'>+        emit_row(row, quoted_fields, &amp;block)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_quotable_loose(&amp;block)</div><div class='add'>+      @scanner.keep_start</div><div class='add'>+      @scanner.each_line(@row_separator) do |line|</div><div class='add'>+        if @skip_lines and skip_line?(line)</div><div class='add'>+          @scanner.keep_drop</div><div class='add'>+          @scanner.keep_start</div><div class='add'>+          next</div><div class='add'>+        end</div><div class='add'>+        original_line = line</div><div class='add'>+        line = line.delete_suffix(@row_separator)</div><div class='add'>+</div><div class='add'>+        if line.empty?</div><div class='add'>+          if @skip_blanks</div><div class='add'>+            @scanner.keep_drop</div><div class='add'>+            @scanner.keep_start</div><div class='add'>+            next</div><div class='add'>+          end</div><div class='add'>+          row = []</div><div class='add'>+          quoted_fields = []</div><div class='add'>+        elsif line.include?(@cr) or line.include?(@lf)</div><div class='add'>+          @scanner.keep_back</div><div class='add'>+          @need_robust_parsing = true</div><div class='add'>+          return parse_quotable_robust(&amp;block)</div><div class='add'>+        else</div><div class='add'>+          row = line.split(@split_column_separator, -1)</div><div class='add'>+          quoted_fields = []</div><div class='add'>+          n_columns = row.size</div><div class='add'>+          i = 0</div><div class='add'>+          while i &lt; n_columns</div><div class='add'>+            column = row[i]</div><div class='add'>+            if column.empty?</div><div class='add'>+              quoted_fields &lt;&lt; false</div><div class='add'>+              row[i] = nil</div><div class='add'>+            else</div><div class='add'>+              n_quotes = column.count(@quote_character)</div><div class='add'>+              if n_quotes.zero?</div><div class='add'>+                quoted_fields &lt;&lt; false</div><div class='add'>+                # no quote</div><div class='add'>+              elsif n_quotes == 2 and</div><div class='add'>+                   column.start_with?(@quote_character) and</div><div class='add'>+                   column.end_with?(@quote_character)</div><div class='add'>+                quoted_fields &lt;&lt; true</div><div class='add'>+                row[i] = column[1..-2]</div><div class='add'>+              else</div><div class='add'>+                @scanner.keep_back</div><div class='add'>+                @need_robust_parsing = true</div><div class='add'>+                return parse_quotable_robust(&amp;block)</div><div class='add'>+              end</div><div class='add'>+              validate_field_size(row[i])</div><div class='add'>+            end</div><div class='add'>+            i += 1</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+        @scanner.keep_drop</div><div class='add'>+        @scanner.keep_start</div><div class='add'>+        @last_line = original_line</div><div class='add'>+        emit_row(row, quoted_fields, &amp;block)</div><div class='add'>+      end</div><div class='add'>+      @scanner.keep_drop</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_quotable_robust(&amp;block)</div><div class='add'>+      row = []</div><div class='add'>+      quoted_fields = []</div><div class='add'>+      skip_needless_lines</div><div class='add'>+      start_row</div><div class='add'>+      while true</div><div class='add'>+        @quoted_column_value = false</div><div class='add'>+        @unquoted_column_value = false</div><div class='add'>+        @scanner.scan_all(@strip_value) if @strip_value</div><div class='add'>+        value = parse_column_value</div><div class='add'>+        if value</div><div class='add'>+          @scanner.scan_all(@strip_value) if @strip_value</div><div class='add'>+          validate_field_size(value)</div><div class='add'>+        end</div><div class='add'>+        if parse_column_end</div><div class='add'>+          row &lt;&lt; value</div><div class='add'>+          quoted_fields &lt;&lt; @quoted_column_value</div><div class='add'>+        elsif parse_row_end</div><div class='add'>+          if row.empty? and value.nil?</div><div class='add'>+            emit_row([], [], &amp;block) unless @skip_blanks</div><div class='add'>+          else</div><div class='add'>+            row &lt;&lt; value</div><div class='add'>+            quoted_fields &lt;&lt; @quoted_column_value</div><div class='add'>+            emit_row(row, quoted_fields, &amp;block)</div><div class='add'>+            row = []</div><div class='add'>+            quoted_fields = []</div><div class='add'>+          end</div><div class='add'>+          skip_needless_lines</div><div class='add'>+          start_row</div><div class='add'>+        elsif @scanner.eos?</div><div class='add'>+          break if row.empty? and value.nil?</div><div class='add'>+          row &lt;&lt; value</div><div class='add'>+          quoted_fields &lt;&lt; @quoted_column_value</div><div class='add'>+          emit_row(row, quoted_fields, &amp;block)</div><div class='add'>+          break</div><div class='add'>+        else</div><div class='add'>+          if @quoted_column_value</div><div class='add'>+            if liberal_parsing? and (new_line = @scanner.check(@line_end))</div><div class='add'>+              message =</div><div class='add'>+                "Illegal end-of-line sequence outside of a quoted field " +</div><div class='add'>+                "&lt;#{new_line.inspect}&gt;"</div><div class='add'>+            else</div><div class='add'>+              message = "Any value after quoted field isn't allowed"</div><div class='add'>+            end</div><div class='add'>+            ignore_broken_line</div><div class='add'>+            raise MalformedCSVError.new(message, @lineno)</div><div class='add'>+          elsif @unquoted_column_value and</div><div class='add'>+                (new_line = @scanner.scan(@line_end))</div><div class='add'>+            ignore_broken_line</div><div class='add'>+            message = "Unquoted fields do not allow new line " +</div><div class='add'>+                      "&lt;#{new_line.inspect}&gt;"</div><div class='add'>+            raise MalformedCSVError.new(message, @lineno)</div><div class='add'>+          elsif @scanner.rest.start_with?(@quote_character)</div><div class='add'>+            ignore_broken_line</div><div class='add'>+            message = "Illegal quoting"</div><div class='add'>+            raise MalformedCSVError.new(message, @lineno)</div><div class='add'>+          elsif (new_line = @scanner.scan(@line_end))</div><div class='add'>+            ignore_broken_line</div><div class='add'>+            message = "New line must be &lt;#{@row_separator.inspect}&gt; " +</div><div class='add'>+                      "not &lt;#{new_line.inspect}&gt;"</div><div class='add'>+            raise MalformedCSVError.new(message, @lineno)</div><div class='add'>+          else</div><div class='add'>+            ignore_broken_line</div><div class='add'>+            raise MalformedCSVError.new("TODO: Meaningful message",</div><div class='add'>+                                        @lineno)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_column_value</div><div class='add'>+      if @liberal_parsing</div><div class='add'>+        quoted_value = parse_quoted_column_value</div><div class='add'>+        if quoted_value</div><div class='add'>+          @scanner.scan_all(@strip_value) if @strip_value</div><div class='add'>+          unquoted_value = parse_unquoted_column_value</div><div class='add'>+          if unquoted_value</div><div class='add'>+            if @double_quote_outside_quote</div><div class='add'>+              unquoted_value = unquoted_value.gsub(@quote_character * 2,</div><div class='add'>+                                                   @quote_character)</div><div class='add'>+              if quoted_value.empty? # %Q{""...} case</div><div class='add'>+                return @quote_character + unquoted_value</div><div class='add'>+              end</div><div class='add'>+            end</div><div class='add'>+            @quote_character + quoted_value + @quote_character + unquoted_value</div><div class='add'>+          else</div><div class='add'>+            quoted_value</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          parse_unquoted_column_value</div><div class='add'>+        end</div><div class='add'>+      elsif @may_quoted</div><div class='add'>+        parse_quoted_column_value ||</div><div class='add'>+          parse_unquoted_column_value</div><div class='add'>+      else</div><div class='add'>+        parse_unquoted_column_value ||</div><div class='add'>+          parse_quoted_column_value</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_unquoted_column_value</div><div class='add'>+      value = @scanner.scan_all(@unquoted_value)</div><div class='add'>+      return nil unless value</div><div class='add'>+</div><div class='add'>+      @unquoted_column_value = true</div><div class='add'>+      if @first_column_separators</div><div class='add'>+        while true</div><div class='add'>+          @scanner.keep_start</div><div class='add'>+          is_column_end = @column_ends.all? do |column_end|</div><div class='add'>+            @scanner.scan(column_end)</div><div class='add'>+          end</div><div class='add'>+          @scanner.keep_back</div><div class='add'>+          break if is_column_end</div><div class='add'>+          sub_separator = @scanner.scan_all(@first_column_separators)</div><div class='add'>+          break if sub_separator.nil?</div><div class='add'>+          value &lt;&lt; sub_separator</div><div class='add'>+          sub_value = @scanner.scan_all(@unquoted_value)</div><div class='add'>+          break if sub_value.nil?</div><div class='add'>+          value &lt;&lt; sub_value</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      value.gsub!(@backslash_quote_character, @quote_character) if @backslash_quote</div><div class='add'>+      if @rstrip_value</div><div class='add'>+        value.gsub!(@rstrip_value, "")</div><div class='add'>+      end</div><div class='add'>+      value</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_quoted_column_value</div><div class='add'>+      quotes = @scanner.scan_all(@quotes)</div><div class='add'>+      return nil unless quotes</div><div class='add'>+</div><div class='add'>+      @quoted_column_value = true</div><div class='add'>+      n_quotes = quotes.size</div><div class='add'>+      if (n_quotes % 2).zero?</div><div class='add'>+        quotes[0, (n_quotes - 2) / 2]</div><div class='add'>+      else</div><div class='add'>+        value = quotes[0, n_quotes / 2]</div><div class='add'>+        while true</div><div class='add'>+          quoted_value = @scanner.scan_all(@quoted_value)</div><div class='add'>+          value &lt;&lt; quoted_value if quoted_value</div><div class='add'>+          if @backslash_quote</div><div class='add'>+            if @scanner.scan(@escaped_backslash)</div><div class='add'>+              if @scanner.scan(@escaped_quote)</div><div class='add'>+                value &lt;&lt; @quote_character</div><div class='add'>+              else</div><div class='add'>+                value &lt;&lt; @backslash_character</div><div class='add'>+              end</div><div class='add'>+              next</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          quotes = @scanner.scan_all(@quotes)</div><div class='add'>+          unless quotes</div><div class='add'>+            ignore_broken_line</div><div class='add'>+            message = "Unclosed quoted field"</div><div class='add'>+            raise MalformedCSVError.new(message, @lineno)</div><div class='add'>+          end</div><div class='add'>+          n_quotes = quotes.size</div><div class='add'>+          if n_quotes == 1</div><div class='add'>+            break</div><div class='add'>+          else</div><div class='add'>+            value &lt;&lt; quotes[0, n_quotes / 2]</div><div class='add'>+            break if (n_quotes % 2) == 1</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+        value</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_column_end</div><div class='add'>+      return true if @scanner.scan(@column_end)</div><div class='add'>+      return false unless @column_ends</div><div class='add'>+</div><div class='add'>+      @scanner.keep_start</div><div class='add'>+      if @column_ends.all? {|column_end| @scanner.scan(column_end)}</div><div class='add'>+        @scanner.keep_drop</div><div class='add'>+        true</div><div class='add'>+      else</div><div class='add'>+        @scanner.keep_back</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def parse_row_end</div><div class='add'>+      return true if @scanner.scan(@row_end)</div><div class='add'>+      return false unless @row_ends</div><div class='add'>+      @scanner.keep_start</div><div class='add'>+      if @row_ends.all? {|row_end| @scanner.scan(row_end)}</div><div class='add'>+        @scanner.keep_drop</div><div class='add'>+        true</div><div class='add'>+      else</div><div class='add'>+        @scanner.keep_back</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def strip_value(value)</div><div class='add'>+      return value unless @strip</div><div class='add'>+      return value if value.nil?</div><div class='add'>+</div><div class='add'>+      case @strip</div><div class='add'>+      when String</div><div class='add'>+        while value.delete_prefix!(@strip)</div><div class='add'>+          # do nothing</div><div class='add'>+        end</div><div class='add'>+        while value.delete_suffix!(@strip)</div><div class='add'>+          # do nothing</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        value.strip!</div><div class='add'>+      end</div><div class='add'>+      value</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def ignore_broken_line</div><div class='add'>+      @scanner.scan_all(@not_line_end)</div><div class='add'>+      @scanner.scan_all(@line_end)</div><div class='add'>+      @lineno += 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def start_row</div><div class='add'>+      if @last_line</div><div class='add'>+        @last_line = nil</div><div class='add'>+      else</div><div class='add'>+        @scanner.keep_drop</div><div class='add'>+      end</div><div class='add'>+      @scanner.keep_start</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def emit_row(row, quoted_fields, &amp;block)</div><div class='add'>+      @lineno += 1</div><div class='add'>+</div><div class='add'>+      raw_row = row</div><div class='add'>+      if @use_headers</div><div class='add'>+        if @headers.nil?</div><div class='add'>+          @headers = adjust_headers(row, quoted_fields)</div><div class='add'>+          return unless @return_headers</div><div class='add'>+          row = Row.new(@headers, row, true)</div><div class='add'>+        else</div><div class='add'>+          row = Row.new(@headers,</div><div class='add'>+                        @fields_converter.convert(raw_row, @headers, @lineno, quoted_fields))</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        # convert fields, if needed...</div><div class='add'>+        row = @fields_converter.convert(raw_row, nil, @lineno, quoted_fields)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # inject unconverted fields and accessor, if requested...</div><div class='add'>+      if @unconverted_fields and not row.respond_to?(:unconverted_fields)</div><div class='add'>+        add_unconverted_fields(row, raw_row)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      yield(row)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # This method injects an instance variable &lt;tt&gt;unconverted_fields&lt;/tt&gt; into</div><div class='add'>+    # +row+ and an accessor method for +row+ called unconverted_fields().  The</div><div class='add'>+    # variable is set to the contents of +fields+.</div><div class='add'>+    def add_unconverted_fields(row, fields)</div><div class='add'>+      class &lt;&lt; row</div><div class='add'>+        attr_reader :unconverted_fields</div><div class='add'>+      end</div><div class='add'>+      row.instance_variable_set(:@unconverted_fields, fields)</div><div class='add'>+      row</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/csv/row.rb b/lib/csv/row.rb<br/>index 31eab2d0a4..86323f7d0a 100644<br/>--- a/<a href='/ruby.git/tree/lib/csv/row.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/row.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/csv/row.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/row.rb</a></div><div class='hunk'>@@ -3,30 +3,105 @@</div><div class='ctx'> require "forwardable"</div><div class='ctx'> </div><div class='ctx'> class CSV</div><div class='add'>+  # = \CSV::Row</div><div class='add'>+  # A \CSV::Row instance represents a \CSV table row.</div><div class='add'>+  # (see {class CSV}[../CSV.html]).</div><div class='ctx'>   #</div><div class='del'>-  # A CSV::Row is part Array and part Hash.  It retains an order for the fields</div><div class='del'>-  # and allows duplicates just as an Array would, but also allows you to access</div><div class='del'>-  # fields by name just as you could if they were in a Hash.</div><div class='add'>+  # The instance may have:</div><div class='add'>+  # - Fields: each is an object, not necessarily a \String.</div><div class='add'>+  # - Headers: each serves a key, and also need not be a \String.</div><div class='ctx'>   #</div><div class='del'>-  # All rows returned by CSV will be constructed from this class, if header row</div><div class='del'>-  # processing is activated.</div><div class='add'>+  # === Instance Methods</div><div class='add'>+  #</div><div class='add'>+  # \CSV::Row has three groups of instance methods:</div><div class='add'>+  # - Its own internally defined instance methods.</div><div class='add'>+  # - Methods included by module Enumerable.</div><div class='add'>+  # - Methods delegated to class Array.:</div><div class='add'>+  #   * Array#empty?</div><div class='add'>+  #   * Array#length</div><div class='add'>+  #   * Array#size</div><div class='add'>+  #</div><div class='add'>+  # == Creating a \CSV::Row Instance</div><div class='add'>+  #</div><div class='add'>+  # Commonly, a new \CSV::Row instance is created by parsing \CSV source</div><div class='add'>+  # that has headers:</div><div class='add'>+  #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   table = CSV.parse(source, headers: true)</div><div class='add'>+  #   table.each {|row| p row }</div><div class='add'>+  # Output:</div><div class='add'>+  #   #&lt;CSV::Row "Name":"foo" "Value":"0"&gt;</div><div class='add'>+  #   #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+  #   #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;</div><div class='add'>+  #</div><div class='add'>+  # You can also create a row directly. See ::new.</div><div class='add'>+  #</div><div class='add'>+  # == Headers</div><div class='add'>+  #</div><div class='add'>+  # Like a \CSV::Table, a \CSV::Row has headers.</div><div class='add'>+  #</div><div class='add'>+  # A \CSV::Row that was created by parsing \CSV source</div><div class='add'>+  # inherits its headers from the table:</div><div class='add'>+  #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   table = CSV.parse(source, headers: true)</div><div class='add'>+  #   row = table.first</div><div class='add'>+  #   row.headers # =&gt; ["Name", "Value"]</div><div class='add'>+  #</div><div class='add'>+  # You can also create a new row with headers;</div><div class='add'>+  # like the keys in a \Hash, the headers need not be Strings:</div><div class='add'>+  #   row = CSV::Row.new([:name, :value], ['foo', 0])</div><div class='add'>+  #   row.headers # =&gt; [:name, :value]</div><div class='add'>+  #</div><div class='add'>+  # The new row retains its headers even if added to a table</div><div class='add'>+  # that has headers:</div><div class='add'>+  #   table &lt;&lt; row # =&gt; #&lt;CSV::Table mode:col_or_row row_count:5&gt;</div><div class='add'>+  #   row.headers # =&gt; [:name, :value]</div><div class='add'>+  #   row[:name] # =&gt; "foo"</div><div class='add'>+  #   row['Name'] # =&gt; nil</div><div class='add'>+  #</div><div class='add'>+  #</div><div class='add'>+  #</div><div class='add'>+  # == Accessing Fields</div><div class='add'>+  #</div><div class='add'>+  # You may access a field in a \CSV::Row with either its \Integer index</div><div class='add'>+  # (\Array-style) or its header (\Hash-style).</div><div class='add'>+  #</div><div class='add'>+  # Fetch a field using method #[]:</div><div class='add'>+  #   row = CSV::Row.new(['Name', 'Value'], ['foo', 0])</div><div class='add'>+  #   row[1] # =&gt; 0</div><div class='add'>+  #   row['Value'] # =&gt; 0</div><div class='add'>+  #</div><div class='add'>+  # Set a field using method #[]=:</div><div class='add'>+  #   row = CSV::Row.new(['Name', 'Value'], ['foo', 0])</div><div class='add'>+  #   row # =&gt; #&lt;CSV::Row "Name":"foo" "Value":0&gt;</div><div class='add'>+  #   row[0] = 'bar'</div><div class='add'>+  #   row['Value'] = 1</div><div class='add'>+  #   row # =&gt; #&lt;CSV::Row "Name":"bar" "Value":1&gt;</div><div class='ctx'>   #</div><div class='ctx'>   class Row</div><div class='del'>-    #</div><div class='del'>-    # Construct a new CSV::Row from +headers+ and +fields+, which are expected</div><div class='del'>-    # to be Arrays.  If one Array is shorter than the other, it will be padded</div><div class='del'>-    # with +nil+ objects.</div><div class='del'>-    #</div><div class='del'>-    # The optional +header_row+ parameter can be set to +true+ to indicate, via</div><div class='del'>-    # CSV::Row.header_row?() and CSV::Row.field_row?(), that this is a header</div><div class='del'>-    # row.  Otherwise, the row is assumes to be a field row.</div><div class='del'>-    #</div><div class='del'>-    # A CSV::Row object supports the following Array methods through delegation:</div><div class='del'>-    #</div><div class='del'>-    # * empty?()</div><div class='del'>-    # * length()</div><div class='del'>-    # * size()</div><div class='del'>-    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   CSV::Row.new(headers, fields, header_row = false) -&gt; csv_row</div><div class='add'>+    #</div><div class='add'>+    # Returns the new \CSV::Row instance constructed from</div><div class='add'>+    # arguments +headers+ and +fields+; both should be Arrays;</div><div class='add'>+    # note that the fields need not be Strings:</div><div class='add'>+    #   row = CSV::Row.new(['Name', 'Value'], ['foo', 0])</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"foo" "Value":0&gt;</div><div class='add'>+    #</div><div class='add'>+    # If the \Array lengths are different, the shorter is +nil+-filled:</div><div class='add'>+    #   row = CSV::Row.new(['Name', 'Value', 'Date', 'Size'], ['foo', 0])</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"foo" "Value":0 "Date":nil "Size":nil&gt;</div><div class='add'>+    #</div><div class='add'>+    # Each \CSV::Row object is either a &lt;i&gt;field row&lt;/i&gt; or a &lt;i&gt;header row&lt;/i&gt;;</div><div class='add'>+    # by default, a new row is a field row;  for the row created above:</div><div class='add'>+    #   row.field_row? # =&gt; true</div><div class='add'>+    #   row.header_row? # =&gt; false</div><div class='add'>+    #</div><div class='add'>+    # If the optional argument +header_row+ is given as +true+,</div><div class='add'>+    # the created row is a header row:</div><div class='add'>+    #   row = CSV::Row.new(['Name', 'Value'], ['foo', 0], header_row = true)</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"foo" "Value":0&gt;</div><div class='add'>+    #   row.field_row? # =&gt; false</div><div class='add'>+    #   row.header_row? # =&gt; true</div><div class='ctx'>     def initialize(headers, fields, header_row = false)</div><div class='ctx'>       @header_row = header_row</div><div class='ctx'>       headers.each { |h| h.freeze if h.is_a? String }</div><div class='hunk'>@@ -48,43 +123,87 @@ class CSV</div><div class='ctx'>     extend Forwardable</div><div class='ctx'>     def_delegators :@row, :empty?, :length, :size</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.initialize_copy(other_row) -&gt; self</div><div class='add'>+    #</div><div class='add'>+    # Calls superclass method.</div><div class='ctx'>     def initialize_copy(other)</div><div class='del'>-      super</div><div class='del'>-      @row = @row.dup</div><div class='add'>+      super_return_value = super</div><div class='add'>+      @row = @row.collect(&amp;:dup)</div><div class='add'>+      super_return_value</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Returns +true+ if this is a header row.</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.header_row? -&gt; true or false</div><div class='add'>+    #</div><div class='add'>+    # Returns +true+ if this is a header row, +false+ otherwise.</div><div class='ctx'>     def header_row?</div><div class='ctx'>       @header_row</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Returns +true+ if this is a field row.</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.field_row? -&gt; true or false</div><div class='add'>+    #</div><div class='add'>+    # Returns +true+ if this is a field row, +false+ otherwise.</div><div class='ctx'>     def field_row?</div><div class='ctx'>       not header_row?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Returns the headers of this row.</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    row.headers -&gt; array_of_headers</div><div class='add'>+    #</div><div class='add'>+    # Returns the headers for this row:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table.first</div><div class='add'>+    #   row.headers # =&gt; ["Name", "Value"]</div><div class='ctx'>     def headers</div><div class='ctx'>       @row.map(&amp;:first)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    #</div><div class='ctx'>     # :call-seq:</div><div class='del'>-    #   field( header )</div><div class='del'>-    #   field( header, offset )</div><div class='del'>-    #   field( index )</div><div class='add'>+    #   field(index) -&gt; value</div><div class='add'>+    #   field(header) -&gt; value</div><div class='add'>+    #   field(header, offset) -&gt; value</div><div class='add'>+    #</div><div class='add'>+    # Returns the field value for the given +index+ or +header+.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Fetch field value by \Integer index:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.field(0) # =&gt; "foo"</div><div class='add'>+    #   row.field(1) # =&gt; "bar"</div><div class='add'>+    #</div><div class='add'>+    # Counts backward from the last column if +index+ is negative:</div><div class='add'>+    #   row.field(-1) # =&gt; "0"</div><div class='add'>+    #   row.field(-2) # =&gt; "foo"</div><div class='add'>+    #</div><div class='add'>+    # Returns +nil+ if +index+ is out of range:</div><div class='add'>+    #   row.field(2) # =&gt; nil</div><div class='add'>+    #   row.field(-3) # =&gt; nil</div><div class='ctx'>     #</div><div class='del'>-    # This method will return the field value by +header+ or +index+.  If a field</div><div class='del'>-    # is not found, +nil+ is returned.</div><div class='add'>+    # ---</div><div class='ctx'>     #</div><div class='del'>-    # When provided, +offset+ ensures that a header match occurs on or later</div><div class='del'>-    # than the +offset+ index.  You can use this to find duplicate headers,</div><div class='del'>-    # without resorting to hard-coding exact indices.</div><div class='add'>+    # Fetch field value by header (first found):</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.field('Name') # =&gt; "Foo"</div><div class='ctx'>     #</div><div class='add'>+    # Fetch field value by header, ignoring +offset+ leading fields:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.field('Name', 2) # =&gt; "Baz"</div><div class='add'>+    #</div><div class='add'>+    # Returns +nil+ if the header does not exist.</div><div class='ctx'>     def field(header_or_index, minimum_index = 0)</div><div class='ctx'>       # locate the pair</div><div class='ctx'>       finder = (header_or_index.is_a?(Integer) || header_or_index.is_a?(Range)) ? :[] : :assoc</div><div class='del'>-      pair   = @row[minimum_index..-1].send(finder, header_or_index)</div><div class='add'>+      pair   = @row[minimum_index..-1].public_send(finder, header_or_index)</div><div class='ctx'> </div><div class='ctx'>       # return the field if we have a pair</div><div class='ctx'>       if pair.nil?</div><div class='hunk'>@@ -97,16 +216,45 @@ class CSV</div><div class='ctx'> </div><div class='ctx'>     #</div><div class='ctx'>     # :call-seq:</div><div class='del'>-    #   fetch( header )</div><div class='del'>-    #   fetch( header ) { |row| ... }</div><div class='del'>-    #   fetch( header, default )</div><div class='del'>-    #</div><div class='del'>-    # This method will fetch the field value by +header+. It has the same</div><div class='del'>-    # behavior as Hash#fetch: if there is a field with the given +header+, its</div><div class='del'>-    # value is returned. Otherwise, if a block is given, it is yielded the</div><div class='del'>-    # +header+ and its result is returned; if a +default+ is given as the</div><div class='del'>-    # second argument, it is returned; otherwise a KeyError is raised.</div><div class='del'>-    #</div><div class='add'>+    #   fetch(header) -&gt; value</div><div class='add'>+    #   fetch(header, default) -&gt; value</div><div class='add'>+    #   fetch(header) {|row| ... } -&gt; value</div><div class='add'>+    #</div><div class='add'>+    # Returns the field value as specified by +header+.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # With the single argument +header+, returns the field value</div><div class='add'>+    # for that header (first found):</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.fetch('Name') # =&gt; "Foo"</div><div class='add'>+    #</div><div class='add'>+    # Raises exception +KeyError+ if the header does not exist.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # With arguments +header+ and +default+ given,</div><div class='add'>+    # returns the field value for the header (first found)</div><div class='add'>+    # if the header exists, otherwise returns +default+:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.fetch('Name', '') # =&gt; "Foo"</div><div class='add'>+    #   row.fetch(:nosuch, '') # =&gt; ""</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # With argument +header+ and a block given,</div><div class='add'>+    # returns the field value for the header (first found)</div><div class='add'>+    # if the header exists; otherwise calls the block</div><div class='add'>+    # and returns its return value:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.fetch('Name') {|header| fail 'Cannot happen' } # =&gt; "Foo"</div><div class='add'>+    #   row.fetch(:nosuch) {|header| "Header '#{header} not found'" } # =&gt; "Header 'nosuch not found'"</div><div class='ctx'>     def fetch(header, *varargs)</div><div class='ctx'>       raise ArgumentError, "Too many arguments" if varargs.length &gt; 1</div><div class='ctx'>       pair = @row.assoc(header)</div><div class='hunk'>@@ -123,27 +271,71 @@ class CSV</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Returns +true+ if there is a field with the given +header+.</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.has_key?(header) -&gt; true or false</div><div class='add'>+    #</div><div class='add'>+    # Returns +true+ if there is a field with the given +header+,</div><div class='add'>+    # +false+ otherwise.</div><div class='ctx'>     def has_key?(header)</div><div class='ctx'>       !!@row.assoc(header)</div><div class='ctx'>     end</div><div class='ctx'>     alias_method :include?, :has_key?</div><div class='ctx'>     alias_method :key?,     :has_key?</div><div class='ctx'>     alias_method :member?,  :has_key?</div><div class='add'>+    alias_method :header?,  :has_key?</div><div class='ctx'> </div><div class='ctx'>     #</div><div class='ctx'>     # :call-seq:</div><div class='del'>-    #   []=( header, value )</div><div class='del'>-    #   []=( header, offset, value )</div><div class='del'>-    #   []=( index, value )</div><div class='del'>-    #</div><div class='del'>-    # Looks up the field by the semantics described in CSV::Row.field() and</div><div class='del'>-    # assigns the +value+.</div><div class='del'>-    #</div><div class='del'>-    # Assigning past the end of the row with an index will set all pairs between</div><div class='del'>-    # to &lt;tt&gt;[nil, nil]&lt;/tt&gt;.  Assigning to an unused header appends the new</div><div class='del'>-    # pair.</div><div class='del'>-    #</div><div class='add'>+    #   row[index] = value -&gt; value</div><div class='add'>+    #   row[header, offset] = value -&gt; value</div><div class='add'>+    #   row[header] = value -&gt; value</div><div class='add'>+    #</div><div class='add'>+    # Assigns the field value for the given +index+ or +header+;</div><div class='add'>+    # returns +value+.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Assign field value by \Integer index:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row[0] = 'Bat'</div><div class='add'>+    #   row[1] = 3</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"Bat" "Value":3&gt;</div><div class='add'>+    #</div><div class='add'>+    # Counts backward from the last column if +index+ is negative:</div><div class='add'>+    #   row[-1] = 4</div><div class='add'>+    #   row[-2] = 'Bam'</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"Bam" "Value":4&gt;</div><div class='add'>+    #</div><div class='add'>+    # Extends the row with &lt;tt&gt;nil:nil&lt;/tt&gt; if positive +index+ is not in the row:</div><div class='add'>+    #   row[4] = 5</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"bad" "Value":4 nil:nil nil:nil nil:5&gt;</div><div class='add'>+    #</div><div class='add'>+    # Raises IndexError if negative +index+ is too small (too far from zero).</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Assign field value by header (first found):</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row['Name'] = 'Bat'</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"Bat" "Name":"Bar" "Name":"Baz"&gt;</div><div class='add'>+    #</div><div class='add'>+    # Assign field value by header, ignoring +offset+ leading fields:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row['Name', 2] = 4</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"Foo" "Name":"Bar" "Name":4&gt;</div><div class='add'>+    #</div><div class='add'>+    # Append new field by (new) header:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row['New'] = 6</div><div class='add'>+    #   row# =&gt; #&lt;CSV::Row "Name":"foo" "Value":"0" "New":6&gt;</div><div class='ctx'>     def []=(*args)</div><div class='ctx'>       value = args.pop</div><div class='ctx'> </div><div class='hunk'>@@ -166,17 +358,34 @@ class CSV</div><div class='ctx'> </div><div class='ctx'>     #</div><div class='ctx'>     # :call-seq:</div><div class='del'>-    #   &lt;&lt;( field )</div><div class='del'>-    #   &lt;&lt;( header_and_field_array )</div><div class='del'>-    #   &lt;&lt;( header_and_field_hash )</div><div class='del'>-    #</div><div class='del'>-    # If a two-element Array is provided, it is assumed to be a header and field</div><div class='del'>-    # and the pair is appended.  A Hash works the same way with the key being</div><div class='del'>-    # the header and the value being the field.  Anything else is assumed to be</div><div class='del'>-    # a lone field which is appended with a +nil+ header.</div><div class='del'>-    #</div><div class='del'>-    # This method returns the row for chaining.</div><div class='del'>-    #</div><div class='add'>+    #   row &lt;&lt; [header, value] -&gt; self</div><div class='add'>+    #   row &lt;&lt; hash -&gt; self</div><div class='add'>+    #   row &lt;&lt; value -&gt; self</div><div class='add'>+    #</div><div class='add'>+    # Adds a field to +self+; returns +self+:</div><div class='add'>+    #</div><div class='add'>+    # If the argument is a 2-element \Array &lt;tt&gt;[header, value]&lt;/tt&gt;,</div><div class='add'>+    # a field is added with the given +header+ and +value+:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row &lt;&lt; ['NAME', 'Bat']</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"Foo" "Name":"Bar" "Name":"Baz" "NAME":"Bat"&gt;</div><div class='add'>+    #</div><div class='add'>+    # If the argument is a \Hash, each &lt;tt&gt;key-value&lt;/tt&gt; pair is added</div><div class='add'>+    # as a field with header +key+ and value +value+.</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row &lt;&lt; {NAME: 'Bat', name: 'Bam'}</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"Foo" "Name":"Bar" "Name":"Baz" NAME:"Bat" name:"Bam"&gt;</div><div class='add'>+    #</div><div class='add'>+    # Otherwise, the given +value+ is added as a field with no header.</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row &lt;&lt; 'Bag'</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"Foo" "Name":"Bar" "Name":"Baz" nil:"Bag"&gt;</div><div class='ctx'>     def &lt;&lt;(arg)</div><div class='ctx'>       if arg.is_a?(Array) and arg.size == 2  # appending a header and name</div><div class='ctx'>         @row &lt;&lt; arg</div><div class='hunk'>@@ -189,13 +398,15 @@ class CSV</div><div class='ctx'>       self  # for chaining</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    #</div><div class='del'>-    # A shortcut for appending multiple fields.  Equivalent to:</div><div class='del'>-    #</div><div class='del'>-    #   args.each { |arg| csv_row &lt;&lt; arg }</div><div class='del'>-    #</div><div class='del'>-    # This method returns the row for chaining.</div><div class='del'>-    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.push(*values) -&gt; self</div><div class='add'>+    #</div><div class='add'>+    # Appends each of the given +values+ to +self+ as a field; returns +self+:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.push('Bat', 'Bam')</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"Foo" "Name":"Bar" "Name":"Baz" nil:"Bat" nil:"Bam"&gt;</div><div class='ctx'>     def push(*args)</div><div class='ctx'>       args.each { |arg| self &lt;&lt; arg }</div><div class='ctx'> </div><div class='hunk'>@@ -204,14 +415,39 @@ class CSV</div><div class='ctx'> </div><div class='ctx'>     #</div><div class='ctx'>     # :call-seq:</div><div class='del'>-    #   delete( header )</div><div class='del'>-    #   delete( header, offset )</div><div class='del'>-    #   delete( index )</div><div class='del'>-    #</div><div class='del'>-    # Used to remove a pair from the row by +header+ or +index+.  The pair is</div><div class='del'>-    # located as described in CSV::Row.field().  The deleted pair is returned,</div><div class='del'>-    # or +nil+ if a pair could not be found.</div><div class='del'>-    #</div><div class='add'>+    #   delete(index) -&gt; [header, value] or nil</div><div class='add'>+    #   delete(header) -&gt; [header, value] or empty_array</div><div class='add'>+    #   delete(header, offset) -&gt; [header, value] or empty_array</div><div class='add'>+    #</div><div class='add'>+    # Removes a specified field from +self+; returns the 2-element \Array</div><div class='add'>+    # &lt;tt&gt;[header, value]&lt;/tt&gt; if the field exists.</div><div class='add'>+    #</div><div class='add'>+    # If an \Integer argument +index+ is given,</div><div class='add'>+    # removes and returns the field at offset +index+,</div><div class='add'>+    # or returns +nil+ if the field does not exist:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.delete(1) # =&gt; ["Name", "Bar"]</div><div class='add'>+    #   row.delete(50) # =&gt; nil</div><div class='add'>+    #</div><div class='add'>+    # Otherwise, if the single argument +header+ is given,</div><div class='add'>+    # removes and returns the first-found field with the given header,</div><div class='add'>+    # of returns a new empty \Array if the field does not exist:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.delete('Name') # =&gt; ["Name", "Foo"]</div><div class='add'>+    #   row.delete('NAME') # =&gt; []</div><div class='add'>+    #</div><div class='add'>+    # If argument +header+ and \Integer argument +offset+ are given,</div><div class='add'>+    # removes and returns the first-found field with the given header</div><div class='add'>+    # whose +index+ is at least as large as +offset+:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.delete('Name', 1) # =&gt; ["Name", "Bar"]</div><div class='add'>+    #   row.delete('NAME', 1) # =&gt; []</div><div class='ctx'>     def delete(header_or_index, minimum_index = 0)</div><div class='ctx'>       if header_or_index.is_a? Integer                 # by index</div><div class='ctx'>         @row.delete_at(header_or_index)</div><div class='hunk'>@@ -222,15 +458,21 @@ class CSV</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.delete_if {|header, value| ... } -&gt; self</div><div class='ctx'>     #</div><div class='del'>-    # The provided +block+ is passed a header and field for each pair in the row</div><div class='del'>-    # and expected to return +true+ or +false+, depending on whether the pair</div><div class='del'>-    # should be deleted.</div><div class='del'>-    #</div><div class='del'>-    # This method returns the row for chaining.</div><div class='add'>+    # Removes fields from +self+ as selected by the block; returns +self+.</div><div class='ctx'>     #</div><div class='del'>-    # If no block is given, an Enumerator is returned.</div><div class='add'>+    # Removes each field for which the block returns a truthy value:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.delete_if {|header, value| value.start_with?('B') } # =&gt; true</div><div class='add'>+    #   row # =&gt; #&lt;CSV::Row "Name":"Foo"&gt;</div><div class='add'>+    #   row.delete_if {|header, value| header.start_with?('B') } # =&gt; false</div><div class='ctx'>     #</div><div class='add'>+    # If no block is given, returns a new Enumerator:</div><div class='add'>+    #   row.delete_if # =&gt; #&lt;Enumerator: #&lt;CSV::Row "Name":"Foo"&gt;:delete_if&gt;</div><div class='ctx'>     def delete_if(&amp;block)</div><div class='ctx'>       return enum_for(__method__) { size } unless block_given?</div><div class='ctx'> </div><div class='hunk'>@@ -239,14 +481,52 @@ class CSV</div><div class='ctx'>       self  # for chaining</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    #</div><div class='del'>-    # This method accepts any number of arguments which can be headers, indices,</div><div class='del'>-    # Ranges of either, or two-element Arrays containing a header and offset.</div><div class='del'>-    # Each argument will be replaced with a field lookup as described in</div><div class='del'>-    # CSV::Row.field().</div><div class='del'>-    #</div><div class='del'>-    # If called with no arguments, all fields are returned.</div><div class='del'>-    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   self.fields(*specifiers) -&gt; array_of_fields</div><div class='add'>+    #</div><div class='add'>+    # Returns field values per the given +specifiers+, which may be any mixture of:</div><div class='add'>+    # - \Integer index.</div><div class='add'>+    # - \Range of \Integer indexes.</div><div class='add'>+    # - 2-element \Array containing a header and offset.</div><div class='add'>+    # - Header.</div><div class='add'>+    # - \Range of headers.</div><div class='add'>+    #</div><div class='add'>+    # For +specifier+ in one of the first four cases above,</div><div class='add'>+    # returns the result of &lt;tt&gt;self.field(specifier)&lt;/tt&gt;;  see #field.</div><div class='add'>+    #</div><div class='add'>+    # Although there may be any number of +specifiers+,</div><div class='add'>+    # the examples here will illustrate one at a time.</div><div class='add'>+    #</div><div class='add'>+    # When the specifier is an \Integer +index+,</div><div class='add'>+    # returns &lt;tt&gt;self.field(index)&lt;/tt&gt;L</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.fields(1) # =&gt; ["Bar"]</div><div class='add'>+    #</div><div class='add'>+    # When the specifier is a \Range of \Integers +range+,</div><div class='add'>+    # returns &lt;tt&gt;self.field(range)&lt;/tt&gt;:</div><div class='add'>+    #   row.fields(1..2) # =&gt; ["Bar", "Baz"]</div><div class='add'>+    #</div><div class='add'>+    # When the specifier is a 2-element \Array +array+,</div><div class='add'>+    # returns &lt;tt&gt;self.field(array)&lt;/tt&gt;L</div><div class='add'>+    #   row.fields('Name', 1) # =&gt; ["Foo", "Bar"]</div><div class='add'>+    #</div><div class='add'>+    # When the specifier is a header +header+,</div><div class='add'>+    # returns &lt;tt&gt;self.field(header)&lt;/tt&gt;L</div><div class='add'>+    #   row.fields('Name') # =&gt; ["Foo"]</div><div class='add'>+    #</div><div class='add'>+    # When the specifier is a \Range of headers +range+,</div><div class='add'>+    # forms a new \Range +new_range+ from the indexes of</div><div class='add'>+    # &lt;tt&gt;range.start&lt;/tt&gt; and &lt;tt&gt;range.end&lt;/tt&gt;,</div><div class='add'>+    # and returns &lt;tt&gt;self.field(new_range)&lt;/tt&gt;:</div><div class='add'>+    #   source = "Name,NAME,name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.fields('Name'..'NAME') # =&gt; ["Foo", "Bar"]</div><div class='add'>+    #</div><div class='add'>+    # Returns all fields if no argument given:</div><div class='add'>+    #   row.fields # =&gt; ["Foo", "Bar", "Baz"]</div><div class='ctx'>     def fields(*headers_and_or_indices)</div><div class='ctx'>       if headers_and_or_indices.empty?  # return all fields--no arguments</div><div class='ctx'>         @row.map(&amp;:last)</div><div class='hunk'>@@ -270,15 +550,26 @@ class CSV</div><div class='ctx'>     end</div><div class='ctx'>     alias_method :values_at, :fields</div><div class='ctx'> </div><div class='del'>-    #</div><div class='ctx'>     # :call-seq:</div><div class='del'>-    #   index( header )</div><div class='del'>-    #   index( header, offset )</div><div class='del'>-    #</div><div class='del'>-    # This method will return the index of a field with the provided +header+.</div><div class='del'>-    # The +offset+ can be used to locate duplicate header names, as described in</div><div class='del'>-    # CSV::Row.field().</div><div class='del'>-    #</div><div class='add'>+    #   index(header) -&gt; index</div><div class='add'>+    #   index(header, offset) -&gt; index</div><div class='add'>+    #</div><div class='add'>+    # Returns the index for the given header, if it exists;</div><div class='add'>+    # otherwise returns +nil+.</div><div class='add'>+    #</div><div class='add'>+    # With the single argument +header+, returns the index</div><div class='add'>+    # of the first-found field with the given +header+:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.index('Name') # =&gt; 0</div><div class='add'>+    #   row.index('NAME') # =&gt; nil</div><div class='add'>+    #</div><div class='add'>+    # With arguments +header+ and +offset+,</div><div class='add'>+    # returns the index of the first-found field with given +header+,</div><div class='add'>+    # but ignoring the first +offset+ fields:</div><div class='add'>+    #   row.index('Name', 1) # =&gt; 1</div><div class='add'>+    #   row.index('Name', 3) # =&gt; nil</div><div class='ctx'>     def index(header, minimum_index = 0)</div><div class='ctx'>       # find the pair</div><div class='ctx'>       index = headers[minimum_index..-1].index(header)</div><div class='hunk'>@@ -286,30 +577,36 @@ class CSV</div><div class='ctx'>       index.nil? ? nil : index + minimum_index</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Returns +true+ if +name+ is a header for this row, and +false+ otherwise.</div><div class='del'>-    def header?(name)</div><div class='del'>-      headers.include? name</div><div class='del'>-    end</div><div class='del'>-    alias_method :include?, :header?</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns +true+ if +data+ matches a field in this row, and +false+</div><div class='del'>-    # otherwise.</div><div class='del'>-    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.field?(value) -&gt; true or false</div><div class='add'>+    #</div><div class='add'>+    # Returns +true+ if +value+ is a field in this row, +false+ otherwise:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.field?('Bar') # =&gt; true</div><div class='add'>+    #   row.field?('BAR') # =&gt; false</div><div class='ctx'>     def field?(data)</div><div class='ctx'>       fields.include? data</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     include Enumerable</div><div class='ctx'> </div><div class='del'>-    #</div><div class='del'>-    # Yields each pair of the row as header and field tuples (much like</div><div class='del'>-    # iterating over a Hash). This method returns the row for chaining.</div><div class='del'>-    #</div><div class='del'>-    # If no block is given, an Enumerator is returned.</div><div class='del'>-    #</div><div class='del'>-    # Support for Enumerable.</div><div class='del'>-    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.each {|header, value| ... } -&gt; self</div><div class='add'>+    #</div><div class='add'>+    # Calls the block with each header-value pair; returns +self+:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.each {|header, value| p [header, value] }</div><div class='add'>+    # Output:</div><div class='add'>+    #   ["Name", "Foo"]</div><div class='add'>+    #   ["Name", "Bar"]</div><div class='add'>+    #   ["Name", "Baz"]</div><div class='add'>+    #</div><div class='add'>+    # If no block is given, returns a new Enumerator:</div><div class='add'>+    #   row.each # =&gt; #&lt;Enumerator: #&lt;CSV::Row "Name":"Foo" "Name":"Bar" "Name":"Baz"&gt;:each&gt;</div><div class='ctx'>     def each(&amp;block)</div><div class='ctx'>       return enum_for(__method__) { size } unless block_given?</div><div class='ctx'> </div><div class='hunk'>@@ -320,19 +617,39 @@ class CSV</div><div class='ctx'> </div><div class='ctx'>     alias_method :each_pair, :each</div><div class='ctx'> </div><div class='del'>-    #</div><div class='del'>-    # Returns +true+ if this row contains the same headers and fields in the</div><div class='del'>-    # same order as +other+.</div><div class='del'>-    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row == other -&gt; true or false</div><div class='add'>+    #</div><div class='add'>+    # Returns +true+ if +other+ is a /CSV::Row that has the same</div><div class='add'>+    # fields (headers and values) in the same order as +self+;</div><div class='add'>+    # otherwise returns +false+:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   other_row = table[0]</div><div class='add'>+    #   row == other_row # =&gt; true</div><div class='add'>+    #   other_row = table[1]</div><div class='add'>+    #   row == other_row # =&gt; false</div><div class='ctx'>     def ==(other)</div><div class='ctx'>       return @row == other.row if other.is_a? CSV::Row</div><div class='ctx'>       @row == other</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    #</div><div class='del'>-    # Collapses the row into a simple Hash.  Be warned that this discards field</div><div class='del'>-    # order and clobbers duplicate fields.</div><div class='del'>-    #</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.to_h -&gt; hash</div><div class='add'>+    #</div><div class='add'>+    # Returns the new \Hash formed by adding each header-value pair in +self+</div><div class='add'>+    # as a key-value pair in the \Hash.</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.to_h # =&gt; {"Name"=&gt;"foo", "Value"=&gt;"0"}</div><div class='add'>+    #</div><div class='add'>+    # Header order is preserved, but repeated headers are ignored:</div><div class='add'>+    #   source = "Name,Name,Name\nFoo,Bar,Baz\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.to_h # =&gt; {"Name"=&gt;"Foo"}</div><div class='ctx'>     def to_h</div><div class='ctx'>       hash = {}</div><div class='ctx'>       each do |key, _value|</div><div class='hunk'>@@ -342,22 +659,59 @@ class CSV</div><div class='ctx'>     end</div><div class='ctx'>     alias_method :to_hash, :to_h</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.deconstruct_keys(keys) -&gt; hash</div><div class='add'>+    #</div><div class='add'>+    # Returns the new \Hash suitable for pattern matching containing only the</div><div class='add'>+    # keys specified as an argument.</div><div class='add'>+    def deconstruct_keys(keys)</div><div class='add'>+      if keys.nil?</div><div class='add'>+        to_h</div><div class='add'>+      else</div><div class='add'>+        keys.to_h { |key| [key, self[key]] }</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     alias_method :to_ary, :to_a</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.deconstruct -&gt; array</div><div class='ctx'>     #</div><div class='del'>-    # Returns the row as a CSV String.  Headers are not used.  Equivalent to:</div><div class='del'>-    #</div><div class='del'>-    #   csv_row.fields.to_csv( options )</div><div class='add'>+    # Returns the new \Array suitable for pattern matching containing the values</div><div class='add'>+    # of the row.</div><div class='add'>+    def deconstruct</div><div class='add'>+      fields</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.to_csv -&gt; csv_string</div><div class='ctx'>     #</div><div class='add'>+    # Returns the row as a \CSV String. Headers are not included:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.to_csv # =&gt; "foo,0\n"</div><div class='ctx'>     def to_csv(**options)</div><div class='del'>-      fields.to_csv(options)</div><div class='add'>+      fields.to_csv(**options)</div><div class='ctx'>     end</div><div class='ctx'>     alias_method :to_s, :to_csv</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.dig(index_or_header, *identifiers) -&gt; object</div><div class='ctx'>     #</div><div class='del'>-    # Extracts the nested value specified by the sequence of +index+ or +header+ objects by calling dig at each step,</div><div class='del'>-    # returning nil if any intermediate step is nil.</div><div class='add'>+    # Finds and returns the object in nested object that is specified</div><div class='add'>+    # by +index_or_header+ and +specifiers+.</div><div class='ctx'>     #</div><div class='add'>+    # The nested objects may be instances of various classes.</div><div class='add'>+    # See {Dig Methods}[rdoc-ref:dig_methods.rdoc].</div><div class='add'>+    #</div><div class='add'>+    # Examples:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.dig(1) # =&gt; "0"</div><div class='add'>+    #   row.dig('Value') # =&gt; "0"</div><div class='add'>+    #   row.dig(5) # =&gt; nil</div><div class='ctx'>     def dig(index_or_header, *indexes)</div><div class='ctx'>       value = field(index_or_header)</div><div class='ctx'>       if value.nil?</div><div class='hunk'>@@ -372,7 +726,17 @@ class CSV</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # A summary of fields, by header, in an ASCII compatible String.</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   row.inspect -&gt; string</div><div class='add'>+    #</div><div class='add'>+    # Returns an ASCII-compatible \String showing:</div><div class='add'>+    # - Class \CSV::Row.</div><div class='add'>+    # - Header-value pairs.</div><div class='add'>+    # Example:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   row = table[0]</div><div class='add'>+    #   row.inspect # =&gt; "#&lt;CSV::Row \"Name\":\"foo\" \"Value\":\"0\"&gt;"</div><div class='ctx'>     def inspect</div><div class='ctx'>       str = ["#&lt;", self.class.to_s]</div><div class='ctx'>       each do |header, field|</div><div class='head'>diff --git a/lib/csv/table.rb b/lib/csv/table.rb<br/>index 17a7c542e4..fb19f5453f 100644<br/>--- a/<a href='/ruby.git/tree/lib/csv/table.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/table.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/csv/table.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/table.rb</a></div><div class='hunk'>@@ -3,28 +3,210 @@</div><div class='ctx'> require "forwardable"</div><div class='ctx'> </div><div class='ctx'> class CSV</div><div class='add'>+  # = \CSV::Table</div><div class='add'>+  # A \CSV::Table instance represents \CSV data.</div><div class='add'>+  # (see {class CSV}[../CSV.html]).</div><div class='ctx'>   #</div><div class='del'>-  # A CSV::Table is a two-dimensional data structure for representing CSV</div><div class='del'>-  # documents.  Tables allow you to work with the data by row or column,</div><div class='del'>-  # manipulate the data, and even convert the results back to CSV, if needed.</div><div class='add'>+  # The instance may have:</div><div class='add'>+  # - Rows: each is a Table::Row object.</div><div class='add'>+  # - Headers: names for the columns.</div><div class='ctx'>   #</div><div class='del'>-  # All tables returned by CSV will be constructed from this class, if header</div><div class='del'>-  # row processing is activated.</div><div class='add'>+  # === Instance Methods</div><div class='ctx'>   #</div><div class='add'>+  # \CSV::Table has three groups of instance methods:</div><div class='add'>+  # - Its own internally defined instance methods.</div><div class='add'>+  # - Methods included by module Enumerable.</div><div class='add'>+  # - Methods delegated to class Array.:</div><div class='add'>+  #   * Array#empty?</div><div class='add'>+  #   * Array#length</div><div class='add'>+  #   * Array#size</div><div class='add'>+  #</div><div class='add'>+  # == Creating a \CSV::Table Instance</div><div class='add'>+  #</div><div class='add'>+  # Commonly, a new \CSV::Table instance is created by parsing \CSV source</div><div class='add'>+  # using headers:</div><div class='add'>+  #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   table = CSV.parse(source, headers: true)</div><div class='add'>+  #   table.class # =&gt; CSV::Table</div><div class='add'>+  #</div><div class='add'>+  # You can also create an instance directly. See ::new.</div><div class='add'>+  #</div><div class='add'>+  # == Headers</div><div class='add'>+  #</div><div class='add'>+  # If a table has headers, the headers serve as labels for the columns of data.</div><div class='add'>+  # Each header serves as the label for its column.</div><div class='add'>+  #</div><div class='add'>+  # The headers for a \CSV::Table object are stored as an \Array of Strings.</div><div class='add'>+  #</div><div class='add'>+  # Commonly, headers are defined in the first row of \CSV source:</div><div class='add'>+  #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   table = CSV.parse(source, headers: true)</div><div class='add'>+  #   table.headers # =&gt; ["Name", "Value"]</div><div class='add'>+  #</div><div class='add'>+  # If no headers are defined, the \Array is empty:</div><div class='add'>+  #   table = CSV::Table.new([])</div><div class='add'>+  #   table.headers # =&gt; []</div><div class='add'>+  #</div><div class='add'>+  # == Access Modes</div><div class='add'>+  #</div><div class='add'>+  # \CSV::Table provides three modes for accessing table data:</div><div class='add'>+  # - \Row mode.</div><div class='add'>+  # - Column mode.</div><div class='add'>+  # - Mixed mode (the default for a new table).</div><div class='add'>+  #</div><div class='add'>+  # The access mode for a\CSV::Table instance affects the behavior</div><div class='add'>+  # of some of its instance methods:</div><div class='add'>+  # - #[]</div><div class='add'>+  # - #[]=</div><div class='add'>+  # - #delete</div><div class='add'>+  # - #delete_if</div><div class='add'>+  # - #each</div><div class='add'>+  # - #values_at</div><div class='add'>+  #</div><div class='add'>+  # === \Row Mode</div><div class='add'>+  #</div><div class='add'>+  # Set a table to row mode with method #by_row!:</div><div class='add'>+  #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   table = CSV.parse(source, headers: true)</div><div class='add'>+  #   table.by_row! # =&gt; #&lt;CSV::Table mode:row row_count:4&gt;</div><div class='add'>+  #</div><div class='add'>+  # Specify a single row by an \Integer index:</div><div class='add'>+  #   # Get a row.</div><div class='add'>+  #   table[1] # =&gt; #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+  #   # Set a row, then get it.</div><div class='add'>+  #   table[1] = CSV::Row.new(['Name', 'Value'], ['bam', 3])</div><div class='add'>+  #   table[1] # =&gt; #&lt;CSV::Row "Name":"bam" "Value":3&gt;</div><div class='add'>+  #</div><div class='add'>+  # Specify a sequence of rows by a \Range:</div><div class='add'>+  #   # Get rows.</div><div class='add'>+  #   table[1..2] # =&gt; [#&lt;CSV::Row "Name":"bam" "Value":3&gt;, #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;]</div><div class='add'>+  #   # Set rows, then get them.</div><div class='add'>+  #   table[1..2] = [</div><div class='add'>+  #     CSV::Row.new(['Name', 'Value'], ['bat', 4]),</div><div class='add'>+  #     CSV::Row.new(['Name', 'Value'], ['bad', 5]),</div><div class='add'>+  #   ]</div><div class='add'>+  #   table[1..2] # =&gt; [["Name", #&lt;CSV::Row "Name":"bat" "Value":4&gt;], ["Value", #&lt;CSV::Row "Name":"bad" "Value":5&gt;]]</div><div class='add'>+  #</div><div class='add'>+  # === Column Mode</div><div class='add'>+  #</div><div class='add'>+  # Set a table to column mode with method #by_col!:</div><div class='add'>+  #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   table = CSV.parse(source, headers: true)</div><div class='add'>+  #   table.by_col! # =&gt; #&lt;CSV::Table mode:col row_count:4&gt;</div><div class='add'>+  #</div><div class='add'>+  # Specify a column by an \Integer index:</div><div class='add'>+  #   # Get a column.</div><div class='add'>+  #   table[0]</div><div class='add'>+  #   # Set a column, then get it.</div><div class='add'>+  #   table[0] = ['FOO', 'BAR', 'BAZ']</div><div class='add'>+  #   table[0] # =&gt; ["FOO", "BAR", "BAZ"]</div><div class='add'>+  #</div><div class='add'>+  # Specify a column by its \String header:</div><div class='add'>+  #   # Get a column.</div><div class='add'>+  #   table['Name'] # =&gt; ["FOO", "BAR", "BAZ"]</div><div class='add'>+  #   # Set a column, then get it.</div><div class='add'>+  #   table['Name'] = ['Foo', 'Bar', 'Baz']</div><div class='add'>+  #   table['Name'] # =&gt; ["Foo", "Bar", "Baz"]</div><div class='add'>+  #</div><div class='add'>+  # === Mixed Mode</div><div class='add'>+  #</div><div class='add'>+  # In mixed mode, you can refer to either rows or columns:</div><div class='add'>+  # - An \Integer index refers to a row.</div><div class='add'>+  # - A \Range index refers to multiple rows.</div><div class='add'>+  # - A \String index refers to a column.</div><div class='add'>+  #</div><div class='add'>+  # Set a table to mixed mode with method #by_col_or_row!:</div><div class='add'>+  #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+  #   table = CSV.parse(source, headers: true)</div><div class='add'>+  #   table.by_col_or_row! # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+  #</div><div class='add'>+  # Specify a single row by an \Integer index:</div><div class='add'>+  #   # Get a row.</div><div class='add'>+  #   table[1] # =&gt; #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+  #   # Set a row, then get it.</div><div class='add'>+  #   table[1] = CSV::Row.new(['Name', 'Value'], ['bam', 3])</div><div class='add'>+  #   table[1] # =&gt; #&lt;CSV::Row "Name":"bam" "Value":3&gt;</div><div class='add'>+  #</div><div class='add'>+  # Specify a sequence of rows by a \Range:</div><div class='add'>+  #   # Get rows.</div><div class='add'>+  #   table[1..2] # =&gt; [#&lt;CSV::Row "Name":"bam" "Value":3&gt;, #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;]</div><div class='add'>+  #   # Set rows, then get them.</div><div class='add'>+  #   table[1] = CSV::Row.new(['Name', 'Value'], ['bat', 4])</div><div class='add'>+  #   table[2] = CSV::Row.new(['Name', 'Value'], ['bad', 5])</div><div class='add'>+  #   table[1..2] # =&gt; [["Name", #&lt;CSV::Row "Name":"bat" "Value":4&gt;], ["Value", #&lt;CSV::Row "Name":"bad" "Value":5&gt;]]</div><div class='add'>+  #</div><div class='add'>+  # Specify a column by its \String header:</div><div class='add'>+  #   # Get a column.</div><div class='add'>+  #   table['Name'] # =&gt; ["foo", "bat", "bad"]</div><div class='add'>+  #   # Set a column, then get it.</div><div class='add'>+  #   table['Name'] = ['Foo', 'Bar', 'Baz']</div><div class='add'>+  #   table['Name'] # =&gt; ["Foo", "Bar", "Baz"]</div><div class='ctx'>   class Table</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   CSV::Table.new(array_of_rows, headers = nil) -&gt; csv_table</div><div class='add'>+    #</div><div class='add'>+    # Returns a new \CSV::Table object.</div><div class='add'>+    #</div><div class='add'>+    # - Argument +array_of_rows+ must be an \Array of CSV::Row objects.</div><div class='add'>+    # - Argument +headers+, if given, may be an \Array of Strings.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Create an empty \CSV::Table object:</div><div class='add'>+    #   table = CSV::Table.new([])</div><div class='add'>+    #   table # =&gt; #&lt;CSV::Table mode:col_or_row row_count:1&gt;</div><div class='add'>+    #</div><div class='add'>+    # Create a non-empty \CSV::Table object:</div><div class='add'>+    #   rows = [</div><div class='add'>+    #     CSV::Row.new([], []),</div><div class='add'>+    #     CSV::Row.new([], []),</div><div class='add'>+    #     CSV::Row.new([], []),</div><div class='add'>+    #   ]</div><div class='add'>+    #   table  = CSV::Table.new(rows)</div><div class='add'>+    #   table # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='ctx'>     #</div><div class='del'>-    # Construct a new CSV::Table from +array_of_rows+, which are expected</div><div class='del'>-    # to be CSV::Row objects.  All rows are assumed to have the same headers.</div><div class='add'>+    # If argument +headers+ is an \Array of Strings,</div><div class='add'>+    # those Strings become the table's headers:</div><div class='add'>+    #   table = CSV::Table.new([], headers: ['Name', 'Age'])</div><div class='add'>+    #   table.headers # =&gt; ["Name", "Age"]</div><div class='ctx'>     #</div><div class='del'>-    # A CSV::Table object supports the following Array methods through</div><div class='del'>-    # delegation:</div><div class='add'>+    # If argument +headers+ is not given and the table has rows,</div><div class='add'>+    # the headers are taken from the first row:</div><div class='add'>+    #   rows = [</div><div class='add'>+    #     CSV::Row.new(['Foo', 'Bar'], []),</div><div class='add'>+    #     CSV::Row.new(['foo', 'bar'], []),</div><div class='add'>+    #     CSV::Row.new(['FOO', 'BAR'], []),</div><div class='add'>+    #   ]</div><div class='add'>+    #   table  = CSV::Table.new(rows)</div><div class='add'>+    #   table.headers # =&gt; ["Foo", "Bar"]</div><div class='ctx'>     #</div><div class='del'>-    # * empty?()</div><div class='del'>-    # * length()</div><div class='del'>-    # * size()</div><div class='add'>+    # If argument +headers+ is not given and the table is empty (has no rows),</div><div class='add'>+    # the headers are also empty:</div><div class='add'>+    #   table  = CSV::Table.new([])</div><div class='add'>+    #   table.headers # =&gt; []</div><div class='ctx'>     #</div><div class='del'>-    def initialize(array_of_rows)</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Raises an exception if argument +array_of_rows+ is not an \Array object:</div><div class='add'>+    #   # Raises NoMethodError (undefined method `first' for :foo:Symbol):</div><div class='add'>+    #   CSV::Table.new(:foo)</div><div class='add'>+    #</div><div class='add'>+    # Raises an exception if an element of +array_of_rows+ is not a \CSV::Table object:</div><div class='add'>+    #   # Raises NoMethodError (undefined method `headers' for :foo:Symbol):</div><div class='add'>+    #   CSV::Table.new([:foo])</div><div class='add'>+    def initialize(array_of_rows, headers: nil)</div><div class='ctx'>       @table = array_of_rows</div><div class='add'>+      @headers = headers</div><div class='add'>+      unless @headers</div><div class='add'>+        if @table.empty?</div><div class='add'>+          @headers = []</div><div class='add'>+        else</div><div class='add'>+          @headers = @table.first.headers</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       @mode  = :col_or_row</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -40,103 +222,295 @@ class CSV</div><div class='ctx'>     extend Forwardable</div><div class='ctx'>     def_delegators :@table, :empty?, :length, :size</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.by_col -&gt; table_dup</div><div class='ctx'>     #</div><div class='del'>-    # Returns a duplicate table object, in column mode.  This is handy for</div><div class='del'>-    # chaining in a single call without changing the table mode, but be aware</div><div class='del'>-    # that this method can consume a fair amount of memory for bigger data sets.</div><div class='add'>+    # Returns a duplicate of +self+, in column mode</div><div class='add'>+    # (see {Column Mode}[#class-CSV::Table-label-Column+Mode]):</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.mode # =&gt; :col_or_row</div><div class='add'>+    #   dup_table = table.by_col</div><div class='add'>+    #   dup_table.mode # =&gt; :col</div><div class='add'>+    #   dup_table.equal?(table) # =&gt; false # It's a dup</div><div class='ctx'>     #</div><div class='del'>-    # This method returns the duplicate table for chaining.  Don't chain</div><div class='del'>-    # destructive methods (like []=()) this way though, since you are working</div><div class='del'>-    # with a duplicate.</div><div class='add'>+    # This may be used to chain method calls without changing the mode</div><div class='add'>+    # (but also will affect performance and memory usage):</div><div class='add'>+    #   dup_table.by_col['Name']</div><div class='ctx'>     #</div><div class='add'>+    # Also note that changes to the duplicate table will not affect the original.</div><div class='ctx'>     def by_col</div><div class='ctx'>       self.class.new(@table.dup).by_col!</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.by_col! -&gt; self</div><div class='ctx'>     #</div><div class='del'>-    # Switches the mode of this table to column mode.  All calls to indexing and</div><div class='del'>-    # iteration methods will work with columns until the mode is changed again.</div><div class='del'>-    #</div><div class='del'>-    # This method returns the table and is safe to chain.</div><div class='del'>-    #</div><div class='add'>+    # Sets the mode for +self+ to column mode</div><div class='add'>+    # (see {Column Mode}[#class-CSV::Table-label-Column+Mode]); returns +self+:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.mode # =&gt; :col_or_row</div><div class='add'>+    #   table1 = table.by_col!</div><div class='add'>+    #   table.mode # =&gt; :col</div><div class='add'>+    #   table1.equal?(table) # =&gt; true # Returned self</div><div class='ctx'>     def by_col!</div><div class='ctx'>       @mode = :col</div><div class='ctx'> </div><div class='ctx'>       self</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.by_col_or_row -&gt; table_dup</div><div class='ctx'>     #</div><div class='del'>-    # Returns a duplicate table object, in mixed mode.  This is handy for</div><div class='del'>-    # chaining in a single call without changing the table mode, but be aware</div><div class='del'>-    # that this method can consume a fair amount of memory for bigger data sets.</div><div class='add'>+    # Returns a duplicate of +self+, in mixed mode</div><div class='add'>+    # (see {Mixed Mode}[#class-CSV::Table-label-Mixed+Mode]):</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true).by_col!</div><div class='add'>+    #   table.mode # =&gt; :col</div><div class='add'>+    #   dup_table = table.by_col_or_row</div><div class='add'>+    #   dup_table.mode # =&gt; :col_or_row</div><div class='add'>+    #   dup_table.equal?(table) # =&gt; false # It's a dup</div><div class='ctx'>     #</div><div class='del'>-    # This method returns the duplicate table for chaining.  Don't chain</div><div class='del'>-    # destructive methods (like []=()) this way though, since you are working</div><div class='del'>-    # with a duplicate.</div><div class='add'>+    # This may be used to chain method calls without changing the mode</div><div class='add'>+    # (but also will affect performance and memory usage):</div><div class='add'>+    #   dup_table.by_col_or_row['Name']</div><div class='ctx'>     #</div><div class='add'>+    # Also note that changes to the duplicate table will not affect the original.</div><div class='ctx'>     def by_col_or_row</div><div class='ctx'>       self.class.new(@table.dup).by_col_or_row!</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.by_col_or_row! -&gt; self</div><div class='ctx'>     #</div><div class='del'>-    # Switches the mode of this table to mixed mode.  All calls to indexing and</div><div class='del'>-    # iteration methods will use the default intelligent indexing system until</div><div class='del'>-    # the mode is changed again.  In mixed mode an index is assumed to be a row</div><div class='del'>-    # reference while anything else is assumed to be column access by headers.</div><div class='del'>-    #</div><div class='del'>-    # This method returns the table and is safe to chain.</div><div class='del'>-    #</div><div class='add'>+    # Sets the mode for +self+ to mixed mode</div><div class='add'>+    # (see {Mixed Mode}[#class-CSV::Table-label-Mixed+Mode]); returns +self+:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true).by_col!</div><div class='add'>+    #   table.mode # =&gt; :col</div><div class='add'>+    #   table1 = table.by_col_or_row!</div><div class='add'>+    #   table.mode # =&gt; :col_or_row</div><div class='add'>+    #   table1.equal?(table) # =&gt; true # Returned self</div><div class='ctx'>     def by_col_or_row!</div><div class='ctx'>       @mode = :col_or_row</div><div class='ctx'> </div><div class='ctx'>       self</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.by_row -&gt; table_dup</div><div class='ctx'>     #</div><div class='del'>-    # Returns a duplicate table object, in row mode.  This is handy for chaining</div><div class='del'>-    # in a single call without changing the table mode, but be aware that this</div><div class='del'>-    # method can consume a fair amount of memory for bigger data sets.</div><div class='add'>+    # Returns a duplicate of +self+, in row mode</div><div class='add'>+    # (see {Row Mode}[#class-CSV::Table-label-Row+Mode]):</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.mode # =&gt; :col_or_row</div><div class='add'>+    #   dup_table = table.by_row</div><div class='add'>+    #   dup_table.mode # =&gt; :row</div><div class='add'>+    #   dup_table.equal?(table) # =&gt; false # It's a dup</div><div class='ctx'>     #</div><div class='del'>-    # This method returns the duplicate table for chaining.  Don't chain</div><div class='del'>-    # destructive methods (like []=()) this way though, since you are working</div><div class='del'>-    # with a duplicate.</div><div class='add'>+    # This may be used to chain method calls without changing the mode</div><div class='add'>+    # (but also will affect performance and memory usage):</div><div class='add'>+    #   dup_table.by_row[1]</div><div class='ctx'>     #</div><div class='add'>+    # Also note that changes to the duplicate table will not affect the original.</div><div class='ctx'>     def by_row</div><div class='ctx'>       self.class.new(@table.dup).by_row!</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.by_row! -&gt; self</div><div class='ctx'>     #</div><div class='del'>-    # Switches the mode of this table to row mode.  All calls to indexing and</div><div class='del'>-    # iteration methods will work with rows until the mode is changed again.</div><div class='del'>-    #</div><div class='del'>-    # This method returns the table and is safe to chain.</div><div class='del'>-    #</div><div class='add'>+    # Sets the mode for +self+ to row mode</div><div class='add'>+    # (see {Row Mode}[#class-CSV::Table-label-Row+Mode]); returns +self+:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.mode # =&gt; :col_or_row</div><div class='add'>+    #   table1 = table.by_row!</div><div class='add'>+    #   table.mode # =&gt; :row</div><div class='add'>+    #   table1.equal?(table) # =&gt; true # Returned self</div><div class='ctx'>     def by_row!</div><div class='ctx'>       @mode = :row</div><div class='ctx'> </div><div class='ctx'>       self</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.headers -&gt; array_of_headers</div><div class='ctx'>     #</div><div class='del'>-    # Returns the headers for the first row of this table (assumed to match all</div><div class='del'>-    # other rows).  An empty Array is returned for empty tables.</div><div class='add'>+    # Returns a new \Array containing the \String headers for the table.</div><div class='ctx'>     #</div><div class='add'>+    # If the table is not empty, returns the headers from the first row:</div><div class='add'>+    #   rows = [</div><div class='add'>+    #     CSV::Row.new(['Foo', 'Bar'], []),</div><div class='add'>+    #     CSV::Row.new(['FOO', 'BAR'], []),</div><div class='add'>+    #     CSV::Row.new(['foo', 'bar'], []),</div><div class='add'>+    #   ]</div><div class='add'>+    #   table  = CSV::Table.new(rows)</div><div class='add'>+    #   table.headers # =&gt; ["Foo", "Bar"]</div><div class='add'>+    #   table.delete(0)</div><div class='add'>+    #   table.headers # =&gt; ["FOO", "BAR"]</div><div class='add'>+    #   table.delete(0)</div><div class='add'>+    #   table.headers # =&gt; ["foo", "bar"]</div><div class='add'>+    #</div><div class='add'>+    # If the table is empty, returns a copy of the headers in the table itself:</div><div class='add'>+    #   table.delete(0)</div><div class='add'>+    #   table.headers # =&gt; ["Foo", "Bar"]</div><div class='ctx'>     def headers</div><div class='ctx'>       if @table.empty?</div><div class='del'>-        Array.new</div><div class='add'>+        @headers.dup</div><div class='ctx'>       else</div><div class='ctx'>         @table.first.headers</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table[n] -&gt; row or column_data</div><div class='add'>+    #   table[range] -&gt; array_of_rows or array_of_column_data</div><div class='add'>+    #   table[header] -&gt; array_of_column_data</div><div class='add'>+    #</div><div class='add'>+    # Returns data from the table;  does not modify the table.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Fetch a \Row by Its \Integer Index::</div><div class='add'>+    # - Form: &lt;tt&gt;table[n]&lt;/tt&gt;, +n+ an integer.</div><div class='add'>+    # - Access mode: &lt;tt&gt;:row&lt;/tt&gt; or &lt;tt&gt;:col_or_row&lt;/tt&gt;.</div><div class='add'>+    # - Return value: _nth_ row of the table, if that row exists;</div><div class='add'>+    #   otherwise +nil+.</div><div class='add'>+    #</div><div class='add'>+    # Returns the _nth_ row of the table if that row exists:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.by_row! # =&gt; #&lt;CSV::Table mode:row row_count:4&gt;</div><div class='add'>+    #   table[1] # =&gt; #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+    #   table.by_col_or_row! # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    #   table[1] # =&gt; #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+    #</div><div class='add'>+    # Counts backward from the last row if +n+ is negative:</div><div class='add'>+    #   table[-1] # =&gt; #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;</div><div class='add'>+    #</div><div class='add'>+    # Returns +nil+ if +n+ is too large or too small:</div><div class='add'>+    #   table[4] # =&gt; nil</div><div class='add'>+    #   table[-4] # =&gt; nil</div><div class='add'>+    #</div><div class='add'>+    # Raises an exception if the access mode is &lt;tt&gt;:row&lt;/tt&gt;</div><div class='add'>+    # and +n+ is not an \Integer:</div><div class='add'>+    #   table.by_row! # =&gt; #&lt;CSV::Table mode:row row_count:4&gt;</div><div class='add'>+    #   # Raises TypeError (no implicit conversion of String into Integer):</div><div class='add'>+    #   table['Name']</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Fetch a Column by Its \Integer Index::</div><div class='add'>+    # - Form: &lt;tt&gt;table[n]&lt;/tt&gt;, +n+ an \Integer.</div><div class='add'>+    # - Access mode: &lt;tt&gt;:col&lt;/tt&gt;.</div><div class='add'>+    # - Return value: _nth_ column of the table, if that column exists;</div><div class='add'>+    #   otherwise an \Array of +nil+ fields of length &lt;tt&gt;self.size&lt;/tt&gt;.</div><div class='add'>+    #</div><div class='add'>+    # Returns the _nth_ column of the table if that column exists:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.by_col! # =&gt; #&lt;CSV::Table mode:col row_count:4&gt;</div><div class='add'>+    #   table[1] # =&gt; ["0", "1", "2"]</div><div class='add'>+    #</div><div class='add'>+    # Counts backward from the last column if +n+ is negative:</div><div class='add'>+    #   table[-2] # =&gt; ["foo", "bar", "baz"]</div><div class='add'>+    #</div><div class='add'>+    # Returns an \Array of +nil+ fields if +n+ is too large or too small:</div><div class='add'>+    #   table[4] # =&gt; [nil, nil, nil]</div><div class='add'>+    #   table[-4] # =&gt; [nil, nil, nil]</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Fetch Rows by \Range::</div><div class='add'>+    # - Form: &lt;tt&gt;table[range]&lt;/tt&gt;, +range+ a \Range object.</div><div class='add'>+    # - Access mode: &lt;tt&gt;:row&lt;/tt&gt; or &lt;tt&gt;:col_or_row&lt;/tt&gt;.</div><div class='add'>+    # - Return value: rows from the table, beginning at row &lt;tt&gt;range.start&lt;/tt&gt;,</div><div class='add'>+    #   if those rows exists.</div><div class='add'>+    #</div><div class='add'>+    # Returns rows from the table, beginning at row &lt;tt&gt;range.first&lt;/tt&gt;,</div><div class='add'>+    # if those rows exist:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.by_row! # =&gt; #&lt;CSV::Table mode:row row_count:4&gt;</div><div class='add'>+    #   rows = table[1..2] # =&gt; #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+    #   rows # =&gt; [#&lt;CSV::Row "Name":"bar" "Value":"1"&gt;, #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;]</div><div class='add'>+    #   table.by_col_or_row! # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    #   rows = table[1..2] # =&gt; #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+    #   rows # =&gt; [#&lt;CSV::Row "Name":"bar" "Value":"1"&gt;, #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;]</div><div class='add'>+    #</div><div class='add'>+    # If there are too few rows, returns all from &lt;tt&gt;range.start&lt;/tt&gt; to the end:</div><div class='add'>+    #   rows = table[1..50] # =&gt; #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+    #   rows # =&gt; [#&lt;CSV::Row "Name":"bar" "Value":"1"&gt;, #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;]</div><div class='add'>+    #</div><div class='add'>+    # Special case: if &lt;tt&gt;range.start == table.size&lt;/tt&gt;, returns an empty \Array:</div><div class='add'>+    #   table[table.size..50] # =&gt; []</div><div class='ctx'>     #</div><div class='del'>-    # In the default mixed mode, this method returns rows for index access and</div><div class='del'>-    # columns for header access.  You can force the index association by first</div><div class='del'>-    # calling by_col!() or by_row!().</div><div class='add'>+    # If &lt;tt&gt;range.end&lt;/tt&gt; is negative, calculates the ending index from the end:</div><div class='add'>+    #   rows = table[0..-1]</div><div class='add'>+    #   rows # =&gt; [#&lt;CSV::Row "Name":"foo" "Value":"0"&gt;, #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;, #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;]</div><div class='ctx'>     #</div><div class='del'>-    # Columns are returned as an Array of values.  Altering that Array has no</div><div class='del'>-    # effect on the table.</div><div class='add'>+    # If &lt;tt&gt;range.start&lt;/tt&gt; is negative, calculates the starting index from the end:</div><div class='add'>+    #   rows = table[-1..2]</div><div class='add'>+    #   rows # =&gt; [#&lt;CSV::Row "Name":"baz" "Value":"2"&gt;]</div><div class='ctx'>     #</div><div class='add'>+    # If &lt;tt&gt;range.start&lt;/tt&gt; is larger than &lt;tt&gt;table.size&lt;/tt&gt;, returns +nil+:</div><div class='add'>+    #   table[4..4] # =&gt; nil</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Fetch Columns by \Range::</div><div class='add'>+    # - Form: &lt;tt&gt;table[range]&lt;/tt&gt;, +range+ a \Range object.</div><div class='add'>+    # - Access mode: &lt;tt&gt;:col&lt;/tt&gt;.</div><div class='add'>+    # - Return value: column data from the table, beginning at column &lt;tt&gt;range.start&lt;/tt&gt;,</div><div class='add'>+    #   if those columns exist.</div><div class='add'>+    #</div><div class='add'>+    # Returns column values from the table, if the column exists;</div><div class='add'>+    # the values are arranged by row:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.by_col!</div><div class='add'>+    #   table[0..1] # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+    #</div><div class='add'>+    # Special case: if &lt;tt&gt;range.start == headers.size&lt;/tt&gt;,</div><div class='add'>+    # returns an \Array (size: &lt;tt&gt;table.size&lt;/tt&gt;) of empty \Arrays:</div><div class='add'>+    #   table[table.headers.size..50] # =&gt; [[], [], []]</div><div class='add'>+    #</div><div class='add'>+    # If &lt;tt&gt;range.end&lt;/tt&gt; is negative, calculates the ending index from the end:</div><div class='add'>+    #   table[0..-1] # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+    #</div><div class='add'>+    # If &lt;tt&gt;range.start&lt;/tt&gt; is negative, calculates the starting index from the end:</div><div class='add'>+    #   table[-2..2] # =&gt; [["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='add'>+    #</div><div class='add'>+    # If &lt;tt&gt;range.start&lt;/tt&gt; is larger than &lt;tt&gt;table.size&lt;/tt&gt;,</div><div class='add'>+    # returns an \Array of +nil+ values:</div><div class='add'>+    #   table[4..4] # =&gt; [nil, nil, nil]</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Fetch a Column by Its \String Header::</div><div class='add'>+    # - Form: &lt;tt&gt;table[header]&lt;/tt&gt;, +header+ a \String header.</div><div class='add'>+    # - Access mode: &lt;tt&gt;:col&lt;/tt&gt; or &lt;tt&gt;:col_or_row&lt;/tt&gt;</div><div class='add'>+    # - Return value: column data from the table, if that +header+ exists.</div><div class='add'>+    #</div><div class='add'>+    # Returns column values from the table, if the column exists:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.by_col! # =&gt; #&lt;CSV::Table mode:col row_count:4&gt;</div><div class='add'>+    #   table['Name'] # =&gt; ["foo", "bar", "baz"]</div><div class='add'>+    #   table.by_col_or_row! # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    #   col = table['Name']</div><div class='add'>+    #   col # =&gt; ["foo", "bar", "baz"]</div><div class='add'>+    #</div><div class='add'>+    # Modifying the returned column values does not modify the table:</div><div class='add'>+    #   col[0] = 'bat'</div><div class='add'>+    #   col # =&gt; ["bat", "bar", "baz"]</div><div class='add'>+    #   table['Name'] # =&gt; ["foo", "bar", "baz"]</div><div class='add'>+    #</div><div class='add'>+    # Returns an \Array of +nil+ values if there is no such column:</div><div class='add'>+    #   table['Nosuch'] # =&gt; [nil, nil, nil]</div><div class='ctx'>     def [](index_or_header)</div><div class='ctx'>       if @mode == :row or  # by index</div><div class='ctx'>          (@mode == :col_or_row and (index_or_header.is_a?(Integer) or index_or_header.is_a?(Range)))</div><div class='hunk'>@@ -146,22 +520,132 @@ class CSV</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table[n] = row -&gt; row</div><div class='add'>+    #   table[n] = field_or_array_of_fields -&gt; field_or_array_of_fields</div><div class='add'>+    #   table[header] = field_or_array_of_fields -&gt; field_or_array_of_fields</div><div class='add'>+    #</div><div class='add'>+    # Puts data onto the table.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Set a \Row by Its \Integer Index::</div><div class='add'>+    # - Form: &lt;tt&gt;table[n] = row&lt;/tt&gt;, +n+ an \Integer,</div><div class='add'>+    #   +row+ a \CSV::Row instance or an \Array of fields.</div><div class='add'>+    # - Access mode: &lt;tt&gt;:row&lt;/tt&gt; or &lt;tt&gt;:col_or_row&lt;/tt&gt;.</div><div class='add'>+    # - Return value: +row+.</div><div class='ctx'>     #</div><div class='del'>-    # In the default mixed mode, this method assigns rows for index access and</div><div class='del'>-    # columns for header access.  You can force the index association by first</div><div class='del'>-    # calling by_col!() or by_row!().</div><div class='add'>+    # If the row exists, it is replaced:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   new_row = CSV::Row.new(['Name', 'Value'], ['bat', 3])</div><div class='add'>+    #   table.by_row! # =&gt; #&lt;CSV::Table mode:row row_count:4&gt;</div><div class='add'>+    #   return_value = table[0] = new_row</div><div class='add'>+    #   return_value.equal?(new_row) # =&gt; true # Returned the row</div><div class='add'>+    #   table[0].to_h # =&gt; {"Name"=&gt;"bat", "Value"=&gt;3}</div><div class='ctx'>     #</div><div class='del'>-    # Rows may be set to an Array of values (which will inherit the table's</div><div class='del'>-    # headers()) or a CSV::Row.</div><div class='add'>+    # With access mode &lt;tt&gt;:col_or_row&lt;/tt&gt;:</div><div class='add'>+    #   table.by_col_or_row! # =&gt; #&lt;CSV::Table mode:col_or_row row_count:4&gt;</div><div class='add'>+    #   table[0] = CSV::Row.new(['Name', 'Value'], ['bam', 4])</div><div class='add'>+    #   table[0].to_h # =&gt; {"Name"=&gt;"bam", "Value"=&gt;4}</div><div class='ctx'>     #</div><div class='del'>-    # Columns may be set to a single value, which is copied to each row of the</div><div class='del'>-    # column, or an Array of values.  Arrays of values are assigned to rows top</div><div class='del'>-    # to bottom in row major order.  Excess values are ignored and if the Array</div><div class='del'>-    # does not have a value for each row the extra rows will receive a +nil+.</div><div class='add'>+    # With an \Array instead of a \CSV::Row, inherits headers from the table:</div><div class='add'>+    #   array = ['bad', 5]</div><div class='add'>+    #   return_value = table[0] = array</div><div class='add'>+    #   return_value.equal?(array) # =&gt; true # Returned the array</div><div class='add'>+    #   table[0].to_h # =&gt; {"Name"=&gt;"bad", "Value"=&gt;5}</div><div class='ctx'>     #</div><div class='del'>-    # Assigning to an existing column or row clobbers the data.  Assigning to</div><div class='del'>-    # new columns creates them at the right end of the table.</div><div class='add'>+    # If the row does not exist, extends the table by adding rows:</div><div class='add'>+    # assigns rows with +nil+ as needed:</div><div class='add'>+    #   table.size # =&gt; 3</div><div class='add'>+    #   table[5] = ['bag', 6]</div><div class='add'>+    #   table.size # =&gt; 6</div><div class='add'>+    #   table[3] # =&gt; nil</div><div class='add'>+    #   table[4]# =&gt; nil</div><div class='add'>+    #   table[5].to_h # =&gt; {"Name"=&gt;"bag", "Value"=&gt;6}</div><div class='ctx'>     #</div><div class='add'>+    # Note that the +nil+ rows are actually +nil+, not a row of +nil+ fields.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Set a Column by Its \Integer Index::</div><div class='add'>+    # - Form: &lt;tt&gt;table[n] = array_of_fields&lt;/tt&gt;, +n+ an \Integer,</div><div class='add'>+    #   +array_of_fields+ an \Array of \String fields.</div><div class='add'>+    # - Access mode: &lt;tt&gt;:col&lt;/tt&gt;.</div><div class='add'>+    # - Return value: +array_of_fields+.</div><div class='add'>+    #</div><div class='add'>+    # If the column exists, it is replaced:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   new_col = [3, 4, 5]</div><div class='add'>+    #   table.by_col! # =&gt; #&lt;CSV::Table mode:col row_count:4&gt;</div><div class='add'>+    #   return_value = table[1] = new_col</div><div class='add'>+    #   return_value.equal?(new_col) # =&gt; true # Returned the column</div><div class='add'>+    #   table[1] # =&gt; [3, 4, 5]</div><div class='add'>+    #   # The rows, as revised:</div><div class='add'>+    #   table.by_row! # =&gt; #&lt;CSV::Table mode:row row_count:4&gt;</div><div class='add'>+    #   table[0].to_h # =&gt; {"Name"=&gt;"foo", "Value"=&gt;3}</div><div class='add'>+    #   table[1].to_h # =&gt; {"Name"=&gt;"bar", "Value"=&gt;4}</div><div class='add'>+    #   table[2].to_h # =&gt; {"Name"=&gt;"baz", "Value"=&gt;5}</div><div class='add'>+    #   table.by_col! # =&gt; #&lt;CSV::Table mode:col row_count:4&gt;</div><div class='add'>+    #</div><div class='add'>+    # If there are too few values, fills with +nil+ values:</div><div class='add'>+    #   table[1] = [0]</div><div class='add'>+    #   table[1] # =&gt; [0, nil, nil]</div><div class='add'>+    #</div><div class='add'>+    # If there are too many values, ignores the extra values:</div><div class='add'>+    #   table[1] = [0, 1, 2, 3, 4]</div><div class='add'>+    #   table[1] # =&gt; [0, 1, 2]</div><div class='add'>+    #</div><div class='add'>+    # If a single value is given, replaces all fields in the column with that value:</div><div class='add'>+    #   table[1] = 'bat'</div><div class='add'>+    #   table[1] # =&gt; ["bat", "bat", "bat"]</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Set a Column by Its \String Header::</div><div class='add'>+    # - Form: &lt;tt&gt;table[header] = field_or_array_of_fields&lt;/tt&gt;,</div><div class='add'>+    #   +header+ a \String header, +field_or_array_of_fields+ a field value</div><div class='add'>+    #   or an \Array of \String fields.</div><div class='add'>+    # - Access mode: &lt;tt&gt;:col&lt;/tt&gt; or &lt;tt&gt;:col_or_row&lt;/tt&gt;.</div><div class='add'>+    # - Return value: +field_or_array_of_fields+.</div><div class='add'>+    #</div><div class='add'>+    # If the column exists, it is replaced:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   new_col = [3, 4, 5]</div><div class='add'>+    #   table.by_col! # =&gt; #&lt;CSV::Table mode:col row_count:4&gt;</div><div class='add'>+    #   return_value = table['Value'] = new_col</div><div class='add'>+    #   return_value.equal?(new_col) # =&gt; true # Returned the column</div><div class='add'>+    #   table['Value'] # =&gt; [3, 4, 5]</div><div class='add'>+    #   # The rows, as revised:</div><div class='add'>+    #   table.by_row! # =&gt; #&lt;CSV::Table mode:row row_count:4&gt;</div><div class='add'>+    #   table[0].to_h # =&gt; {"Name"=&gt;"foo", "Value"=&gt;3}</div><div class='add'>+    #   table[1].to_h # =&gt; {"Name"=&gt;"bar", "Value"=&gt;4}</div><div class='add'>+    #   table[2].to_h # =&gt; {"Name"=&gt;"baz", "Value"=&gt;5}</div><div class='add'>+    #   table.by_col! # =&gt; #&lt;CSV::Table mode:col row_count:4&gt;</div><div class='add'>+    #</div><div class='add'>+    # If there are too few values, fills with +nil+ values:</div><div class='add'>+    #   table['Value'] = [0]</div><div class='add'>+    #   table['Value'] # =&gt; [0, nil, nil]</div><div class='add'>+    #</div><div class='add'>+    # If there are too many values, ignores the extra values:</div><div class='add'>+    #   table['Value'] = [0, 1, 2, 3, 4]</div><div class='add'>+    #   table['Value'] # =&gt; [0, 1, 2]</div><div class='add'>+    #</div><div class='add'>+    # If the column does not exist, extends the table by adding columns:</div><div class='add'>+    #   table['Note'] = ['x', 'y', 'z']</div><div class='add'>+    #   table['Note'] # =&gt; ["x", "y", "z"]</div><div class='add'>+    #   # The rows, as revised:</div><div class='add'>+    #   table.by_row!</div><div class='add'>+    #   table[0].to_h # =&gt; {"Name"=&gt;"foo", "Value"=&gt;0, "Note"=&gt;"x"}</div><div class='add'>+    #   table[1].to_h # =&gt; {"Name"=&gt;"bar", "Value"=&gt;1, "Note"=&gt;"y"}</div><div class='add'>+    #   table[2].to_h # =&gt; {"Name"=&gt;"baz", "Value"=&gt;2, "Note"=&gt;"z"}</div><div class='add'>+    #   table.by_col!</div><div class='add'>+    #</div><div class='add'>+    # If a single value is given, replaces all fields in the column with that value:</div><div class='add'>+    #   table['Value'] = 'bat'</div><div class='add'>+    #   table['Value'] # =&gt; ["bat", "bat", "bat"]</div><div class='ctx'>     def []=(index_or_header, value)</div><div class='ctx'>       if @mode == :row or  # by index</div><div class='ctx'>          (@mode == :col_or_row and index_or_header.is_a? Integer)</div><div class='hunk'>@@ -171,6 +655,10 @@ class CSV</div><div class='ctx'>           @table[index_or_header] = value</div><div class='ctx'>         end</div><div class='ctx'>       else                 # set column</div><div class='add'>+        unless index_or_header.is_a? Integer</div><div class='add'>+          index = @headers.index(index_or_header) || @headers.size</div><div class='add'>+          @headers[index] = index_or_header</div><div class='add'>+        end</div><div class='ctx'>         if value.is_a? Array  # multiple values</div><div class='ctx'>           @table.each_with_index do |row, i|</div><div class='ctx'>             if row.header_row?</div><div class='hunk'>@@ -191,15 +679,58 @@ class CSV</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.values_at(*indexes) -&gt; array_of_rows</div><div class='add'>+    #   table.values_at(*headers) -&gt; array_of_columns_data</div><div class='add'>+    #</div><div class='add'>+    # If the access mode is &lt;tt&gt;:row&lt;/tt&gt; or &lt;tt&gt;:col_or_row&lt;/tt&gt;,</div><div class='add'>+    # and each argument is either an \Integer or a \Range,</div><div class='add'>+    # returns rows.</div><div class='add'>+    # Otherwise, returns columns data.</div><div class='ctx'>     #</div><div class='del'>-    # The mixed mode default is to treat a list of indices as row access,</div><div class='del'>-    # returning the rows indicated.  Anything else is considered columnar</div><div class='del'>-    # access.  For columnar access, the return set has an Array for each row</div><div class='del'>-    # with the values indicated by the headers in each Array.  You can force</div><div class='del'>-    # column or row mode using by_col!() or by_row!().</div><div class='add'>+    # In either case, the returned values are in the order</div><div class='add'>+    # specified by the arguments.  Arguments may be repeated.</div><div class='ctx'>     #</div><div class='del'>-    # You cannot mix column and row access.</div><div class='add'>+    # ---</div><div class='ctx'>     #</div><div class='add'>+    # Returns rows as an \Array of \CSV::Row objects.</div><div class='add'>+    #</div><div class='add'>+    # No argument:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.values_at # =&gt; []</div><div class='add'>+    #</div><div class='add'>+    # One index:</div><div class='add'>+    #   values = table.values_at(0)</div><div class='add'>+    #   values # =&gt; [#&lt;CSV::Row "Name":"foo" "Value":"0"&gt;]</div><div class='add'>+    #</div><div class='add'>+    # Two indexes:</div><div class='add'>+    #   values = table.values_at(2, 0)</div><div class='add'>+    #   values # =&gt; [#&lt;CSV::Row "Name":"baz" "Value":"2"&gt;, #&lt;CSV::Row "Name":"foo" "Value":"0"&gt;]</div><div class='add'>+    #</div><div class='add'>+    # One \Range:</div><div class='add'>+    #   values = table.values_at(1..2)</div><div class='add'>+    #   values # =&gt; [#&lt;CSV::Row "Name":"bar" "Value":"1"&gt;, #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;]</div><div class='add'>+    #</div><div class='add'>+    # \Ranges and indexes:</div><div class='add'>+    #   values = table.values_at(0..1, 1..2, 0, 2)</div><div class='add'>+    #   pp values</div><div class='add'>+    # Output:</div><div class='add'>+    #   [#&lt;CSV::Row "Name":"foo" "Value":"0"&gt;,</div><div class='add'>+    #    #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;,</div><div class='add'>+    #    #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;,</div><div class='add'>+    #    #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;,</div><div class='add'>+    #    #&lt;CSV::Row "Name":"foo" "Value":"0"&gt;,</div><div class='add'>+    #    #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;]</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Returns columns data as row Arrays,</div><div class='add'>+    # each consisting of the specified columns data for that row:</div><div class='add'>+    #   values = table.values_at('Name')</div><div class='add'>+    #   values # =&gt; [["foo"], ["bar"], ["baz"]]</div><div class='add'>+    #   values = table.values_at('Value', 'Name')</div><div class='add'>+    #   values # =&gt; [["0", "foo"], ["1", "bar"], ["2", "baz"]]</div><div class='ctx'>     def values_at(*indices_or_headers)</div><div class='ctx'>       if @mode == :row or  # by indices</div><div class='ctx'>          ( @mode == :col_or_row and indices_or_headers.all? do |index|</div><div class='hunk'>@@ -214,13 +745,20 @@ class CSV</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table &lt;&lt; row_or_array -&gt; self</div><div class='ctx'>     #</div><div class='del'>-    # Adds a new row to the bottom end of this table.  You can provide an Array,</div><div class='del'>-    # which will be converted to a CSV::Row (inheriting the table's headers()),</div><div class='del'>-    # or a CSV::Row.</div><div class='del'>-    #</div><div class='del'>-    # This method returns the table for chaining.</div><div class='add'>+    # If +row_or_array+ is a \CSV::Row object,</div><div class='add'>+    # it is appended to the table:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table &lt;&lt; CSV::Row.new(table.headers, ['bat', 3])</div><div class='add'>+    #   table[3] # =&gt; #&lt;CSV::Row "Name":"bat" "Value":3&gt;</div><div class='ctx'>     #</div><div class='add'>+    # If +row_or_array+ is an \Array, it is used to create a new</div><div class='add'>+    # \CSV::Row object which is then appended to the table:</div><div class='add'>+    #   table &lt;&lt; ['bam', 4]</div><div class='add'>+    #   table[4] # =&gt; #&lt;CSV::Row "Name":"bam" "Value":4&gt;</div><div class='ctx'>     def &lt;&lt;(row_or_array)</div><div class='ctx'>       if row_or_array.is_a? Array  # append Array</div><div class='ctx'>         @table &lt;&lt; Row.new(headers, row_or_array)</div><div class='hunk'>@@ -232,23 +770,67 @@ class CSV</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     #</div><div class='del'>-    # A shortcut for appending multiple rows.  Equivalent to:</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.push(*rows_or_arrays) -&gt; self</div><div class='ctx'>     #</div><div class='del'>-    #   rows.each { |row| self &lt;&lt; row }</div><div class='del'>-    #</div><div class='del'>-    # This method returns the table for chaining.</div><div class='add'>+    # A shortcut for appending multiple rows. Equivalent to:</div><div class='add'>+    #   rows.each {|row| self &lt;&lt; row }</div><div class='ctx'>     #</div><div class='add'>+    # Each argument may be either a \CSV::Row object or an \Array:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   rows = [</div><div class='add'>+    #     CSV::Row.new(table.headers, ['bat', 3]),</div><div class='add'>+    #     ['bam', 4]</div><div class='add'>+    #   ]</div><div class='add'>+    #   table.push(*rows)</div><div class='add'>+    #   table[3..4] # =&gt; [#&lt;CSV::Row "Name":"bat" "Value":3&gt;, #&lt;CSV::Row "Name":"bam" "Value":4&gt;]</div><div class='ctx'>     def push(*rows)</div><div class='ctx'>       rows.each { |row| self &lt;&lt; row }</div><div class='ctx'> </div><div class='ctx'>       self # for chaining</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.delete(*indexes) -&gt; deleted_values</div><div class='add'>+    #   table.delete(*headers) -&gt; deleted_values</div><div class='add'>+    #</div><div class='add'>+    # If the access mode is &lt;tt&gt;:row&lt;/tt&gt; or &lt;tt&gt;:col_or_row&lt;/tt&gt;,</div><div class='add'>+    # and each argument is either an \Integer or a \Range,</div><div class='add'>+    # returns deleted rows.</div><div class='add'>+    # Otherwise, returns deleted columns data.</div><div class='add'>+    #</div><div class='add'>+    # In either case, the returned values are in the order</div><div class='add'>+    # specified by the arguments.  Arguments may be repeated.</div><div class='add'>+    #</div><div class='add'>+    # ---</div><div class='add'>+    #</div><div class='add'>+    # Returns rows as an \Array of \CSV::Row objects.</div><div class='add'>+    #</div><div class='add'>+    # One index:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   deleted_values = table.delete(0)</div><div class='add'>+    #   deleted_values # =&gt; [#&lt;CSV::Row "Name":"foo" "Value":"0"&gt;]</div><div class='add'>+    #</div><div class='add'>+    # Two indexes:</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   deleted_values = table.delete(2, 0)</div><div class='add'>+    #   deleted_values # =&gt; [#&lt;CSV::Row "Name":"baz" "Value":"2"&gt;, #&lt;CSV::Row "Name":"foo" "Value":"0"&gt;]</div><div class='ctx'>     #</div><div class='del'>-    # Removes and returns the indicated columns or rows.  In the default mixed</div><div class='del'>-    # mode indices refer to rows and everything else is assumed to be a column</div><div class='del'>-    # headers.  Use by_col!() or by_row!() to force the lookup.</div><div class='add'>+    # ---</div><div class='ctx'>     #</div><div class='add'>+    # Returns columns data as column Arrays.</div><div class='add'>+    #</div><div class='add'>+    # One header:</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   deleted_values = table.delete('Name')</div><div class='add'>+    #   deleted_values # =&gt; ["foo", "bar", "baz"]</div><div class='add'>+    #</div><div class='add'>+    # Two headers:</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   deleted_values = table.delete('Value', 'Name')</div><div class='add'>+    #   deleted_values # =&gt; [["0", "1", "2"], ["foo", "bar", "baz"]]</div><div class='ctx'>     def delete(*indexes_or_headers)</div><div class='ctx'>       if indexes_or_headers.empty?</div><div class='ctx'>         raise ArgumentError, "wrong number of arguments (given 0, expected 1+)"</div><div class='hunk'>@@ -258,6 +840,11 @@ class CSV</div><div class='ctx'>             (@mode == :col_or_row and index_or_header.is_a? Integer)</div><div class='ctx'>           @table.delete_at(index_or_header)</div><div class='ctx'>         else                 # by header</div><div class='add'>+          if index_or_header.is_a? Integer</div><div class='add'>+            @headers.delete_at(index_or_header)</div><div class='add'>+          else</div><div class='add'>+            @headers.delete(index_or_header)</div><div class='add'>+          end</div><div class='ctx'>           @table.map { |row| row.delete(index_or_header).last }</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='hunk'>@@ -268,25 +855,43 @@ class CSV</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.delete_if {|row_or_column| ... } -&gt; self</div><div class='ctx'>     #</div><div class='del'>-    # Removes any column or row for which the block returns +true+.  In the</div><div class='del'>-    # default mixed mode or row mode, iteration is the standard row major</div><div class='del'>-    # walking of rows.  In column mode, iteration will +yield+ two element</div><div class='del'>-    # tuples containing the column name and an Array of values for that column.</div><div class='add'>+    # Removes rows or columns for which the block returns a truthy value;</div><div class='add'>+    # returns +self+.</div><div class='ctx'>     #</div><div class='del'>-    # This method returns the table for chaining.</div><div class='add'>+    # Removes rows when the access mode is &lt;tt&gt;:row&lt;/tt&gt; or &lt;tt&gt;:col_or_row&lt;/tt&gt;;</div><div class='add'>+    # calls the block with each \CSV::Row object:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.by_row! # =&gt; #&lt;CSV::Table mode:row row_count:4&gt;</div><div class='add'>+    #   table.size # =&gt; 3</div><div class='add'>+    #   table.delete_if {|row| row['Name'].start_with?('b') }</div><div class='add'>+    #   table.size # =&gt; 1</div><div class='ctx'>     #</div><div class='del'>-    # If no block is given, an Enumerator is returned.</div><div class='add'>+    # Removes columns when the access mode is &lt;tt&gt;:col&lt;/tt&gt;;</div><div class='add'>+    # calls the block with each column as a 2-element array</div><div class='add'>+    # containing the header and an \Array of column fields:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.by_col! # =&gt; #&lt;CSV::Table mode:col row_count:4&gt;</div><div class='add'>+    #   table.headers.size # =&gt; 2</div><div class='add'>+    #   table.delete_if {|column_data| column_data[1].include?('2') }</div><div class='add'>+    #   table.headers.size # =&gt; 1</div><div class='ctx'>     #</div><div class='add'>+    # Returns a new \Enumerator if no block is given:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.delete_if # =&gt; #&lt;Enumerator: #&lt;CSV::Table mode:col_or_row row_count:4&gt;:delete_if&gt;</div><div class='ctx'>     def delete_if(&amp;block)</div><div class='ctx'>       return enum_for(__method__) { @mode == :row or @mode == :col_or_row ? size : headers.size } unless block_given?</div><div class='ctx'> </div><div class='ctx'>       if @mode == :row or @mode == :col_or_row  # by index</div><div class='ctx'>         @table.delete_if(&amp;block)</div><div class='ctx'>       else                                      # by header</div><div class='del'>-        deleted = []</div><div class='ctx'>         headers.each do |header|</div><div class='del'>-          deleted &lt;&lt; delete(header) if yield([header, self[header]])</div><div class='add'>+          delete(header) if yield([header, self[header]])</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -295,20 +900,40 @@ class CSV</div><div class='ctx'> </div><div class='ctx'>     include Enumerable</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #  table.each {|row_or_column| ... ) -&gt; self</div><div class='ctx'>     #</div><div class='del'>-    # In the default mixed mode or row mode, iteration is the standard row major</div><div class='del'>-    # walking of rows.  In column mode, iteration will +yield+ two element</div><div class='del'>-    # tuples containing the column name and an Array of values for that column.</div><div class='add'>+    # Calls the block with each row or column; returns +self+.</div><div class='ctx'>     #</div><div class='del'>-    # This method returns the table for chaining.</div><div class='add'>+    # When the access mode is &lt;tt&gt;:row&lt;/tt&gt; or &lt;tt&gt;:col_or_row&lt;/tt&gt;,</div><div class='add'>+    # calls the block with each \CSV::Row object:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.by_row! # =&gt; #&lt;CSV::Table mode:row row_count:4&gt;</div><div class='add'>+    #   table.each {|row| p row }</div><div class='add'>+    # Output:</div><div class='add'>+    #   #&lt;CSV::Row "Name":"foo" "Value":"0"&gt;</div><div class='add'>+    #   #&lt;CSV::Row "Name":"bar" "Value":"1"&gt;</div><div class='add'>+    #   #&lt;CSV::Row "Name":"baz" "Value":"2"&gt;</div><div class='ctx'>     #</div><div class='del'>-    # If no block is given, an Enumerator is returned.</div><div class='add'>+    # When the access mode is &lt;tt&gt;:col&lt;/tt&gt;,</div><div class='add'>+    # calls the block with each column as a 2-element array</div><div class='add'>+    # containing the header and an \Array of column fields:</div><div class='add'>+    #   table.by_col! # =&gt; #&lt;CSV::Table mode:col row_count:4&gt;</div><div class='add'>+    #   table.each {|column_data| p column_data }</div><div class='add'>+    # Output:</div><div class='add'>+    #   ["Name", ["foo", "bar", "baz"]]</div><div class='add'>+    #   ["Value", ["0", "1", "2"]]</div><div class='ctx'>     #</div><div class='add'>+    # Returns a new \Enumerator if no block is given:</div><div class='add'>+    #   table.each # =&gt; #&lt;Enumerator: #&lt;CSV::Table mode:col row_count:4&gt;:each&gt;</div><div class='ctx'>     def each(&amp;block)</div><div class='ctx'>       return enum_for(__method__) { @mode == :col ? headers.size : size } unless block_given?</div><div class='ctx'> </div><div class='ctx'>       if @mode == :col</div><div class='del'>-        headers.each { |header| yield([header, self[header]]) }</div><div class='add'>+        headers.each.with_index do |header, i|</div><div class='add'>+          yield([header, @table.map {|row| row[header, i]}])</div><div class='add'>+        end</div><div class='ctx'>       else</div><div class='ctx'>         @table.each(&amp;block)</div><div class='ctx'>       end</div><div class='hunk'>@@ -316,16 +941,40 @@ class CSV</div><div class='ctx'>       self # for chaining</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Returns +true+ if all rows of this table ==() +other+'s rows.</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table == other_table -&gt; true or false</div><div class='add'>+    #</div><div class='add'>+    # Returns +true+ if all each row of +self+ &lt;tt&gt;==&lt;/tt&gt;</div><div class='add'>+    # the corresponding row of +other_table+, otherwise, +false+.</div><div class='add'>+    #</div><div class='add'>+    # The access mode does no affect the result.</div><div class='add'>+    #</div><div class='add'>+    # Equal tables:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   other_table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table == other_table # =&gt; true</div><div class='add'>+    #</div><div class='add'>+    # Different row count:</div><div class='add'>+    #   other_table.delete(2)</div><div class='add'>+    #   table == other_table # =&gt; false</div><div class='add'>+    #</div><div class='add'>+    # Different last row:</div><div class='add'>+    #   other_table &lt;&lt; ['bat', 3]</div><div class='add'>+    #   table == other_table # =&gt; false</div><div class='ctx'>     def ==(other)</div><div class='ctx'>       return @table == other.table if other.is_a? CSV::Table</div><div class='ctx'>       @table == other</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.to_a -&gt; array_of_arrays</div><div class='ctx'>     #</div><div class='del'>-    # Returns the table as an Array of Arrays.  Headers will be the first row,</div><div class='del'>-    # then all of the field rows will follow.</div><div class='del'>-    #</div><div class='add'>+    # Returns the table as an \Array of \Arrays;</div><div class='add'>+    # the headers are in the first row:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.to_a # =&gt; [["Name", "Value"], ["foo", "0"], ["bar", "1"], ["baz", "2"]]</div><div class='ctx'>     def to_a</div><div class='ctx'>       array = [headers]</div><div class='ctx'>       @table.each do |row|</div><div class='hunk'>@@ -335,17 +984,30 @@ class CSV</div><div class='ctx'>       array</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.to_csv(**options) -&gt; csv_string</div><div class='ctx'>     #</div><div class='del'>-    # Returns the table as a complete CSV String.  Headers will be listed first,</div><div class='del'>-    # then all of the field rows.</div><div class='add'>+    # Returns the table as \CSV string.</div><div class='add'>+    # See {Options for Generating}[../CSV.html#class-CSV-label-Options+for+Generating].</div><div class='ctx'>     #</div><div class='del'>-    # This method assumes you want the Table.headers(), unless you explicitly</div><div class='del'>-    # pass &lt;tt&gt;:write_headers =&gt; false&lt;/tt&gt;.</div><div class='add'>+    # Defaults option +write_headers+ to +true+:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.to_csv # =&gt; "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='ctx'>     #</div><div class='del'>-    def to_csv(write_headers: true, **options)</div><div class='del'>-      array = write_headers ? [headers.to_csv(options)] : []</div><div class='del'>-      @table.each do |row|</div><div class='del'>-        array.push(row.fields.to_csv(options)) unless row.header_row?</div><div class='add'>+    # Omits the headers if option +write_headers+ is given as +false+</div><div class='add'>+    # (see {Option +write_headers+}[../CSV.html#class-CSV-label-Option+write_headers]):</div><div class='add'>+    #   table.to_csv(write_headers: false) # =&gt; "foo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #</div><div class='add'>+    # Limit rows if option +limit+ is given like +2+:</div><div class='add'>+    #   table.to_csv(limit: 2) # =&gt; "Name,Value\nfoo,0\nbar,1\n"</div><div class='add'>+    def to_csv(write_headers: true, limit: nil, **options)</div><div class='add'>+      array = write_headers ? [headers.to_csv(**options)] : []</div><div class='add'>+      limit ||= @table.size</div><div class='add'>+      limit = @table.size + 1 + limit if limit &lt; 0</div><div class='add'>+      limit = 0 if limit &lt; 0</div><div class='add'>+      @table.first(limit).each do |row|</div><div class='add'>+        array.push(row.fields.to_csv(**options)) unless row.header_row?</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       array.join("")</div><div class='hunk'>@@ -370,9 +1032,24 @@ class CSV</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Shows the mode and size of this table in a US-ASCII String.</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   table.inspect =&gt; string</div><div class='add'>+    #</div><div class='add'>+    # Returns a &lt;tt&gt;US-ASCII&lt;/tt&gt;-encoded \String showing table:</div><div class='add'>+    # - Class: &lt;tt&gt;CSV::Table&lt;/tt&gt;.</div><div class='add'>+    # - Access mode: &lt;tt&gt;:row&lt;/tt&gt;, &lt;tt&gt;:col&lt;/tt&gt;, or &lt;tt&gt;:col_or_row&lt;/tt&gt;.</div><div class='add'>+    # - Size:  Row count, including the header row.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #   source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #   table = CSV.parse(source, headers: true)</div><div class='add'>+    #   table.inspect # =&gt; "#&lt;CSV::Table mode:col_or_row row_count:4&gt;\nName,Value\nfoo,0\nbar,1\nbaz,2\n"</div><div class='add'>+    #</div><div class='ctx'>     def inspect</div><div class='del'>-      "#&lt;#{self.class} mode:#{@mode} row_count:#{to_a.size}&gt;".encode("US-ASCII")</div><div class='add'>+      inspected = +"#&lt;#{self.class} mode:#{@mode} row_count:#{to_a.size}&gt;"</div><div class='add'>+      summary = to_csv(limit: 5)</div><div class='add'>+      inspected &lt;&lt; "\n" &lt;&lt; summary if summary.encoding.ascii_compatible?</div><div class='add'>+      inspected</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/csv/version.rb b/lib/csv/version.rb<br/>index d62a093418..e05d63d801 100644<br/>--- a/<a href='/ruby.git/tree/lib/csv/version.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/csv/version.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/csv/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/version.rb</a></div><div class='hunk'>@@ -2,5 +2,5 @@</div><div class='ctx'> </div><div class='ctx'> class CSV</div><div class='ctx'>   # The version of the installed library.</div><div class='del'>-  VERSION = "3.0.1"</div><div class='add'>+  VERSION = "3.2.6"</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/csv/writer.rb b/lib/csv/writer.rb<br/>new file mode 100644<br/>index 0000000000..030a295bc9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/csv/writer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/csv/writer.rb</a></div><div class='hunk'>@@ -0,0 +1,210 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "input_record_separator"</div><div class='add'>+require_relative "row"</div><div class='add'>+</div><div class='add'>+class CSV</div><div class='add'>+  # Note: Don't use this class directly. This is an internal class.</div><div class='add'>+  class Writer</div><div class='add'>+    #</div><div class='add'>+    # A CSV::Writer receives an output, prepares the header, format and output.</div><div class='add'>+    # It allows us to write new rows in the object and rewind it.</div><div class='add'>+    #</div><div class='add'>+    attr_reader :lineno</div><div class='add'>+    attr_reader :headers</div><div class='add'>+</div><div class='add'>+    def initialize(output, options)</div><div class='add'>+      @output = output</div><div class='add'>+      @options = options</div><div class='add'>+      @lineno = 0</div><div class='add'>+      @fields_converter = nil</div><div class='add'>+      prepare</div><div class='add'>+      if @options[:write_headers] and @headers</div><div class='add'>+        self &lt;&lt; @headers</div><div class='add'>+      end</div><div class='add'>+      @fields_converter = @options[:fields_converter]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Adds a new row</div><div class='add'>+    #</div><div class='add'>+    def &lt;&lt;(row)</div><div class='add'>+      case row</div><div class='add'>+      when Row</div><div class='add'>+        row = row.fields</div><div class='add'>+      when Hash</div><div class='add'>+        row = @headers.collect {|header| row[header]}</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      @headers ||= row if @use_headers</div><div class='add'>+      @lineno += 1</div><div class='add'>+</div><div class='add'>+      if @fields_converter</div><div class='add'>+        quoted_fields = [false] * row.size</div><div class='add'>+        row = @fields_converter.convert(row, nil, lineno, quoted_fields)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      i = -1</div><div class='add'>+      converted_row = row.collect do |field|</div><div class='add'>+        i += 1</div><div class='add'>+        quote(field, i)</div><div class='add'>+      end</div><div class='add'>+      line = converted_row.join(@column_separator) + @row_separator</div><div class='add'>+      if @output_encoding</div><div class='add'>+        line = line.encode(@output_encoding)</div><div class='add'>+      end</div><div class='add'>+      @output &lt;&lt; line</div><div class='add'>+</div><div class='add'>+      self</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    #</div><div class='add'>+    # Winds back to the beginning</div><div class='add'>+    #</div><div class='add'>+    def rewind</div><div class='add'>+      @lineno = 0</div><div class='add'>+      @headers = nil if @options[:headers].nil?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+    def prepare</div><div class='add'>+      @encoding = @options[:encoding]</div><div class='add'>+</div><div class='add'>+      prepare_header</div><div class='add'>+      prepare_format</div><div class='add'>+      prepare_output</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_header</div><div class='add'>+      headers = @options[:headers]</div><div class='add'>+      case headers</div><div class='add'>+      when Array</div><div class='add'>+        @headers = headers</div><div class='add'>+        @use_headers = true</div><div class='add'>+      when String</div><div class='add'>+        @headers = CSV.parse_line(headers,</div><div class='add'>+                                  col_sep: @options[:column_separator],</div><div class='add'>+                                  row_sep: @options[:row_separator],</div><div class='add'>+                                  quote_char: @options[:quote_character])</div><div class='add'>+        @use_headers = true</div><div class='add'>+      when true</div><div class='add'>+        @headers = nil</div><div class='add'>+        @use_headers = true</div><div class='add'>+      else</div><div class='add'>+        @headers = nil</div><div class='add'>+        @use_headers = false</div><div class='add'>+      end</div><div class='add'>+      return unless @headers</div><div class='add'>+</div><div class='add'>+      converter = @options[:header_fields_converter]</div><div class='add'>+      @headers = converter.convert(@headers, nil, 0, [])</div><div class='add'>+      @headers.each do |header|</div><div class='add'>+        header.freeze if header.is_a?(String)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_force_quotes_fields(force_quotes)</div><div class='add'>+      @force_quotes_fields = {}</div><div class='add'>+      force_quotes.each do |name_or_index|</div><div class='add'>+        case name_or_index</div><div class='add'>+        when Integer</div><div class='add'>+          index = name_or_index</div><div class='add'>+          @force_quotes_fields[index] = true</div><div class='add'>+        when String, Symbol</div><div class='add'>+          name = name_or_index.to_s</div><div class='add'>+          if @headers.nil?</div><div class='add'>+            message = ":headers is required when you use field name " +</div><div class='add'>+                      "in :force_quotes: " +</div><div class='add'>+                      "#{name_or_index.inspect}: #{force_quotes.inspect}"</div><div class='add'>+            raise ArgumentError, message</div><div class='add'>+          end</div><div class='add'>+          index = @headers.index(name)</div><div class='add'>+          next if index.nil?</div><div class='add'>+          @force_quotes_fields[index] = true</div><div class='add'>+        else</div><div class='add'>+          message = ":force_quotes element must be " +</div><div class='add'>+                    "field index or field name: " +</div><div class='add'>+                    "#{name_or_index.inspect}: #{force_quotes.inspect}"</div><div class='add'>+          raise ArgumentError, message</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_format</div><div class='add'>+      @column_separator = @options[:column_separator].to_s.encode(@encoding)</div><div class='add'>+      row_separator = @options[:row_separator]</div><div class='add'>+      if row_separator == :auto</div><div class='add'>+        @row_separator = InputRecordSeparator.value.encode(@encoding)</div><div class='add'>+      else</div><div class='add'>+        @row_separator = row_separator.to_s.encode(@encoding)</div><div class='add'>+      end</div><div class='add'>+      @quote_character = @options[:quote_character]</div><div class='add'>+      force_quotes = @options[:force_quotes]</div><div class='add'>+      if force_quotes.is_a?(Array)</div><div class='add'>+        prepare_force_quotes_fields(force_quotes)</div><div class='add'>+        @force_quotes = false</div><div class='add'>+      elsif force_quotes</div><div class='add'>+        @force_quotes_fields = nil</div><div class='add'>+        @force_quotes = true</div><div class='add'>+      else</div><div class='add'>+        @force_quotes_fields = nil</div><div class='add'>+        @force_quotes = false</div><div class='add'>+      end</div><div class='add'>+      unless @force_quotes</div><div class='add'>+        @quotable_pattern =</div><div class='add'>+          Regexp.new("[\r\n".encode(@encoding) +</div><div class='add'>+                     Regexp.escape(@column_separator) +</div><div class='add'>+                     Regexp.escape(@quote_character.encode(@encoding)) +</div><div class='add'>+                     "]".encode(@encoding))</div><div class='add'>+      end</div><div class='add'>+      @quote_empty = @options.fetch(:quote_empty, true)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def prepare_output</div><div class='add'>+      @output_encoding = nil</div><div class='add'>+      return unless @output.is_a?(StringIO)</div><div class='add'>+</div><div class='add'>+      output_encoding = @output.internal_encoding || @output.external_encoding</div><div class='add'>+      if @encoding != output_encoding</div><div class='add'>+        if @options[:force_encoding]</div><div class='add'>+          @output_encoding = output_encoding</div><div class='add'>+        else</div><div class='add'>+          compatible_encoding = Encoding.compatible?(@encoding, output_encoding)</div><div class='add'>+          if compatible_encoding</div><div class='add'>+            @output.set_encoding(compatible_encoding)</div><div class='add'>+            @output.seek(0, IO::SEEK_END)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def quote_field(field)</div><div class='add'>+      field = String(field)</div><div class='add'>+      encoded_quote_character = @quote_character.encode(field.encoding)</div><div class='add'>+      encoded_quote_character +</div><div class='add'>+        field.gsub(encoded_quote_character,</div><div class='add'>+                   encoded_quote_character * 2) +</div><div class='add'>+        encoded_quote_character</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def quote(field, i)</div><div class='add'>+      if @force_quotes</div><div class='add'>+        quote_field(field)</div><div class='add'>+      elsif @force_quotes_fields and @force_quotes_fields[i]</div><div class='add'>+        quote_field(field)</div><div class='add'>+      else</div><div class='add'>+        if field.nil?  # represent +nil+ fields as empty unquoted fields</div><div class='add'>+          ""</div><div class='add'>+        else</div><div class='add'>+          field = String(field)  # Stringify fields</div><div class='add'>+          # represent empty fields as empty quoted fields</div><div class='add'>+          if (@quote_empty and field.empty?) or (field.valid_encoding? and @quotable_pattern.match?(field))</div><div class='add'>+            quote_field(field)</div><div class='add'>+          else</div><div class='add'>+            field  # unquoted field</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/debug.rb b/lib/debug.rb<br/>deleted file mode 100644<br/>index 34d7d27406..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/debug.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/debug.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1111 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-# Copyright (C) 2000  Network Applied Communication Laboratory, Inc.</div><div class='del'>-# Copyright (C) 2000  Information-technology Promotion Agency, Japan</div><div class='del'>-# Copyright (C) 2000-2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='del'>-</div><div class='del'>-require 'continuation'</div><div class='del'>-</div><div class='del'>-if $SAFE &gt; 0</div><div class='del'>-  STDERR.print "-r debug.rb is not available in safe mode\n"</div><div class='del'>-  exit 1</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-require 'tracer'</div><div class='del'>-require 'pp'</div><div class='del'>-</div><div class='del'>-class Tracer # :nodoc:</div><div class='del'>-  def Tracer.trace_func(*vars)</div><div class='del'>-    Single.trace_func(*vars)</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-SCRIPT_LINES__ = {} unless defined? SCRIPT_LINES__ # :nodoc:</div><div class='del'>-</div><div class='del'>-##</div><div class='del'>-# This library provides debugging functionality to Ruby.</div><div class='del'>-#</div><div class='del'>-# To add a debugger to your code, start by requiring +debug+ in your</div><div class='del'>-# program:</div><div class='del'>-#</div><div class='del'>-#   def say(word)</div><div class='del'>-#     require 'debug'</div><div class='del'>-#     puts word</div><div class='del'>-#   end</div><div class='del'>-#</div><div class='del'>-# This will cause Ruby to interrupt execution and show a prompt when the +say+</div><div class='del'>-# method is run.</div><div class='del'>-#</div><div class='del'>-# Once you're inside the prompt, you can start debugging your program.</div><div class='del'>-#</div><div class='del'>-#   (rdb:1) p word</div><div class='del'>-#   "hello"</div><div class='del'>-#</div><div class='del'>-# == Getting help</div><div class='del'>-#</div><div class='del'>-# You can get help at any time by pressing +h+.</div><div class='del'>-#</div><div class='del'>-#   (rdb:1) h</div><div class='del'>-#   Debugger help v.-0.002b</div><div class='del'>-#   Commands</div><div class='del'>-#     b[reak] [file:|class:]&lt;line|method&gt;</div><div class='del'>-#     b[reak] [class.]&lt;line|method&gt;</div><div class='del'>-#                                set breakpoint to some position</div><div class='del'>-#     wat[ch] &lt;expression&gt;       set watchpoint to some expression</div><div class='del'>-#     cat[ch] (&lt;exception&gt;|off)  set catchpoint to an exception</div><div class='del'>-#     b[reak]                    list breakpoints</div><div class='del'>-#     cat[ch]                    show catchpoint</div><div class='del'>-#     del[ete][ nnn]             delete some or all breakpoints</div><div class='del'>-#     disp[lay] &lt;expression&gt;     add expression into display expression list</div><div class='del'>-#     undisp[lay][ nnn]          delete one particular or all display expressions</div><div class='del'>-#     c[ont]                     run until program ends or hit breakpoint</div><div class='del'>-#     s[tep][ nnn]               step (into methods) one line or till line nnn</div><div class='del'>-#     n[ext][ nnn]               go over one line or till line nnn</div><div class='del'>-#     w[here]                    display frames</div><div class='del'>-#     f[rame]                    alias for where</div><div class='del'>-#     l[ist][ (-|nn-mm)]         list program, - lists backwards</div><div class='del'>-#                                nn-mm lists given lines</div><div class='del'>-#     up[ nn]                    move to higher frame</div><div class='del'>-#     down[ nn]                  move to lower frame</div><div class='del'>-#     fin[ish]                   return to outer frame</div><div class='del'>-#     tr[ace] (on|off)           set trace mode of current thread</div><div class='del'>-#     tr[ace] (on|off) all       set trace mode of all threads</div><div class='del'>-#     q[uit]                     exit from debugger</div><div class='del'>-#     v[ar] g[lobal]             show global variables</div><div class='del'>-#     v[ar] l[ocal]              show local variables</div><div class='del'>-#     v[ar] i[nstance] &lt;object&gt;  show instance variables of object</div><div class='del'>-#     v[ar] c[onst] &lt;object&gt;     show constants of object</div><div class='del'>-#     m[ethod] i[nstance] &lt;obj&gt;  show methods of object</div><div class='del'>-#     m[ethod] &lt;class|module&gt;    show instance methods of class or module</div><div class='del'>-#     th[read] l[ist]            list all threads</div><div class='del'>-#     th[read] c[ur[rent]]       show current thread</div><div class='del'>-#     th[read] [sw[itch]] &lt;nnn&gt;  switch thread context to nnn</div><div class='del'>-#     th[read] stop &lt;nnn&gt;        stop thread nnn</div><div class='del'>-#     th[read] resume &lt;nnn&gt;      resume thread nnn</div><div class='del'>-#     p expression               evaluate expression and print its value</div><div class='del'>-#     h[elp]                     print this help</div><div class='del'>-#     &lt;everything else&gt;          evaluate</div><div class='del'>-#</div><div class='del'>-# == Usage</div><div class='del'>-#</div><div class='del'>-# The following is a list of common functionalities that the debugger</div><div class='del'>-# provides.</div><div class='del'>-#</div><div class='del'>-# === Navigating through your code</div><div class='del'>-#</div><div class='del'>-# In general, a debugger is used to find bugs in your program, which</div><div class='del'>-# often means pausing execution and inspecting variables at some point</div><div class='del'>-# in time.</div><div class='del'>-#</div><div class='del'>-# Let's look at an example:</div><div class='del'>-#</div><div class='del'>-#   def my_method(foo)</div><div class='del'>-#     require 'debug'</div><div class='del'>-#     foo = get_foo if foo.nil?</div><div class='del'>-#     raise if foo.nil?</div><div class='del'>-#   end</div><div class='del'>-#</div><div class='del'>-# When you run this program, the debugger will kick in just before the</div><div class='del'>-# +foo+ assignment.</div><div class='del'>-#</div><div class='del'>-#   (rdb:1) p foo</div><div class='del'>-#   nil</div><div class='del'>-#</div><div class='del'>-# In this example, it'd be interesting to move to the next line and</div><div class='del'>-# inspect the value of +foo+ again. You can do that by pressing +n+:</div><div class='del'>-#</div><div class='del'>-#   (rdb:1) n # goes to next line</div><div class='del'>-#   (rdb:1) p foo</div><div class='del'>-#   nil</div><div class='del'>-#</div><div class='del'>-# You now know that the original value of +foo+ was nil, and that it</div><div class='del'>-# still was nil after calling +get_foo+.</div><div class='del'>-#</div><div class='del'>-# Other useful commands for navigating through your code are:</div><div class='del'>-#</div><div class='del'>-# +c+::</div><div class='del'>-#   Runs the program until it either exists or encounters another breakpoint.</div><div class='del'>-#   You usually press +c+ when you are finished debugging your program and</div><div class='del'>-#   want to resume its execution.</div><div class='del'>-# +s+::</div><div class='del'>-#   Steps into method definition. In the previous example, +s+ would take you</div><div class='del'>-#   inside the method definition of +get_foo+.</div><div class='del'>-# +r+::</div><div class='del'>-#   Restart the program.</div><div class='del'>-# +q+::</div><div class='del'>-#   Quit the program.</div><div class='del'>-#</div><div class='del'>-# === Inspecting variables</div><div class='del'>-#</div><div class='del'>-# You can use the debugger to easily inspect both local and global variables.</div><div class='del'>-# We've seen how to inspect local variables before:</div><div class='del'>-#</div><div class='del'>-#   (rdb:1) p my_arg</div><div class='del'>-#   42</div><div class='del'>-#</div><div class='del'>-# You can also pretty print the result of variables or expressions:</div><div class='del'>-#</div><div class='del'>-#   (rdb:1) pp %w{a very long long array containing many words}</div><div class='del'>-#   ["a",</div><div class='del'>-#    "very",</div><div class='del'>-#    "long",</div><div class='del'>-#    ...</div><div class='del'>-#   ]</div><div class='del'>-#</div><div class='del'>-# You can list all local variables with +v l+:</div><div class='del'>-#</div><div class='del'>-#   (rdb:1) v l</div><div class='del'>-#     foo =&gt; "hello"</div><div class='del'>-#</div><div class='del'>-# Similarly, you can show all global variables with +v g+:</div><div class='del'>-#</div><div class='del'>-#   (rdb:1) v g</div><div class='del'>-#     all global variables</div><div class='del'>-#</div><div class='del'>-# Finally, you can omit +p+ if you simply want to evaluate a variable or</div><div class='del'>-# expression</div><div class='del'>-#</div><div class='del'>-#   (rdb:1) 5**2</div><div class='del'>-#   25</div><div class='del'>-#</div><div class='del'>-# === Going beyond basics</div><div class='del'>-#</div><div class='del'>-# Ruby Debug provides more advanced functionalities like switching</div><div class='del'>-# between threads, setting breakpoints and watch expressions, and more.</div><div class='del'>-# The full list of commands is available at any time by pressing +h+.</div><div class='del'>-#</div><div class='del'>-# == Staying out of trouble</div><div class='del'>-#</div><div class='del'>-# Make sure you remove every instance of +require 'debug'+ before</div><div class='del'>-# shipping your code. Failing to do so may result in your program</div><div class='del'>-# hanging unpredictably.</div><div class='del'>-#</div><div class='del'>-# Debug is not available in safe mode.</div><div class='del'>-</div><div class='del'>-class DEBUGGER__</div><div class='del'>-  MUTEX = Thread::Mutex.new # :nodoc:</div><div class='del'>-</div><div class='del'>-  class Context # :nodoc:</div><div class='del'>-    DEBUG_LAST_CMD = []</div><div class='del'>-</div><div class='del'>-    begin</div><div class='del'>-      require 'readline'</div><div class='del'>-      def readline(prompt, hist)</div><div class='del'>-        Readline::readline(prompt, hist)</div><div class='del'>-      end</div><div class='del'>-    rescue LoadError</div><div class='del'>-      def readline(prompt, hist)</div><div class='del'>-        STDOUT.print prompt</div><div class='del'>-        STDOUT.flush</div><div class='del'>-        line = STDIN.gets</div><div class='del'>-        exit unless line</div><div class='del'>-        line.chomp!</div><div class='del'>-        line</div><div class='del'>-      end</div><div class='del'>-      USE_READLINE = false</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def initialize</div><div class='del'>-      if Thread.current == Thread.main</div><div class='del'>-        @stop_next = 1</div><div class='del'>-      else</div><div class='del'>-        @stop_next = 0</div><div class='del'>-      end</div><div class='del'>-      @last_file = nil</div><div class='del'>-      @file = nil</div><div class='del'>-      @line = nil</div><div class='del'>-      @no_step = nil</div><div class='del'>-      @frames = []</div><div class='del'>-      @finish_pos = 0</div><div class='del'>-      @trace = false</div><div class='del'>-      @catch = "StandardError"</div><div class='del'>-      @suspend_next = false</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def stop_next(n=1)</div><div class='del'>-      @stop_next = n</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def set_suspend</div><div class='del'>-      @suspend_next = true</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def clear_suspend</div><div class='del'>-      @suspend_next = false</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def suspend_all</div><div class='del'>-      DEBUGGER__.suspend</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def resume_all</div><div class='del'>-      DEBUGGER__.resume</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def check_suspend</div><div class='del'>-      while MUTEX.synchronize {</div><div class='del'>-          if @suspend_next</div><div class='del'>-            DEBUGGER__.waiting.push Thread.current</div><div class='del'>-            @suspend_next = false</div><div class='del'>-            true</div><div class='del'>-          end</div><div class='del'>-        }</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def trace?</div><div class='del'>-      @trace</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def set_trace(arg)</div><div class='del'>-      @trace = arg</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def stdout</div><div class='del'>-      DEBUGGER__.stdout</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def break_points</div><div class='del'>-      DEBUGGER__.break_points</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def display</div><div class='del'>-      DEBUGGER__.display</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def context(th)</div><div class='del'>-      DEBUGGER__.context(th)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def set_trace_all(arg)</div><div class='del'>-      DEBUGGER__.set_trace(arg)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def set_last_thread(th)</div><div class='del'>-      DEBUGGER__.set_last_thread(th)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def debug_eval(str, binding)</div><div class='del'>-      begin</div><div class='del'>-        eval(str, binding)</div><div class='del'>-      rescue StandardError, ScriptError =&gt; e</div><div class='del'>-        at = eval("caller(1)", binding)</div><div class='del'>-        stdout.printf "%s:%s\n", at.shift, e.to_s.sub(/\(eval\):1:(in `.*?':)?/, '')</div><div class='del'>-        for i in at</div><div class='del'>-          stdout.printf "\tfrom %s\n", i</div><div class='del'>-        end</div><div class='del'>-        throw :debug_error</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def debug_silent_eval(str, binding)</div><div class='del'>-      begin</div><div class='del'>-        eval(str, binding)</div><div class='del'>-      rescue StandardError, ScriptError</div><div class='del'>-        nil</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def var_list(ary, binding)</div><div class='del'>-      ary.sort!</div><div class='del'>-      for v in ary</div><div class='del'>-        stdout.printf "  %s =&gt; %s\n", v, eval(v.to_s, binding).inspect</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def debug_variable_info(input, binding)</div><div class='del'>-      case input</div><div class='del'>-      when /^\s*g(?:lobal)?\s*$/</div><div class='del'>-        var_list(global_variables, binding)</div><div class='del'>-</div><div class='del'>-      when /^\s*l(?:ocal)?\s*$/</div><div class='del'>-        var_list(eval("local_variables", binding), binding)</div><div class='del'>-</div><div class='del'>-      when /^\s*i(?:nstance)?\s+/</div><div class='del'>-        obj = debug_eval($', binding)</div><div class='del'>-        var_list(obj.instance_variables, obj.instance_eval{binding()})</div><div class='del'>-</div><div class='del'>-      when /^\s*c(?:onst(?:ant)?)?\s+/</div><div class='del'>-        obj = debug_eval($', binding)</div><div class='del'>-        unless obj.kind_of? Module</div><div class='del'>-          stdout.print "Should be Class/Module: ", $', "\n"</div><div class='del'>-        else</div><div class='del'>-          var_list(obj.constants, obj.module_eval{binding()})</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def debug_method_info(input, binding)</div><div class='del'>-      case input</div><div class='del'>-      when /^i(:?nstance)?\s+/</div><div class='del'>-        obj = debug_eval($', binding)</div><div class='del'>-</div><div class='del'>-        len = 0</div><div class='del'>-        for v in obj.methods.sort</div><div class='del'>-          len += v.size + 1</div><div class='del'>-          if len &gt; 70</div><div class='del'>-            len = v.size + 1</div><div class='del'>-            stdout.print "\n"</div><div class='del'>-          end</div><div class='del'>-          stdout.print v, " "</div><div class='del'>-        end</div><div class='del'>-        stdout.print "\n"</div><div class='del'>-</div><div class='del'>-      else</div><div class='del'>-        obj = debug_eval(input, binding)</div><div class='del'>-        unless obj.kind_of? Module</div><div class='del'>-          stdout.print "Should be Class/Module: ", input, "\n"</div><div class='del'>-        else</div><div class='del'>-          len = 0</div><div class='del'>-          for v in obj.instance_methods(false).sort</div><div class='del'>-            len += v.size + 1</div><div class='del'>-            if len &gt; 70</div><div class='del'>-              len = v.size + 1</div><div class='del'>-              stdout.print "\n"</div><div class='del'>-            end</div><div class='del'>-            stdout.print v, " "</div><div class='del'>-          end</div><div class='del'>-          stdout.print "\n"</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def thnum</div><div class='del'>-      num = DEBUGGER__.instance_eval{@thread_list[Thread.current]}</div><div class='del'>-      unless num</div><div class='del'>-        DEBUGGER__.make_thread_list</div><div class='del'>-        num = DEBUGGER__.instance_eval{@thread_list[Thread.current]}</div><div class='del'>-      end</div><div class='del'>-      num</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def debug_command(file, line, id, binding)</div><div class='del'>-      MUTEX.lock</div><div class='del'>-      unless defined?($debugger_restart) and $debugger_restart</div><div class='del'>-        callcc{|c| $debugger_restart = c}</div><div class='del'>-      end</div><div class='del'>-      set_last_thread(Thread.current)</div><div class='del'>-      frame_pos = 0</div><div class='del'>-      binding_file = file</div><div class='del'>-      binding_line = line</div><div class='del'>-      previous_line = nil</div><div class='del'>-      if ENV['EMACS']</div><div class='del'>-        stdout.printf "\032\032%s:%d:\n", binding_file, binding_line</div><div class='del'>-      else</div><div class='del'>-        stdout.printf "%s:%d:%s", binding_file, binding_line,</div><div class='del'>-          line_at(binding_file, binding_line)</div><div class='del'>-      end</div><div class='del'>-      @frames[0] = [binding, file, line, id]</div><div class='del'>-      display_expressions(binding)</div><div class='del'>-      prompt = true</div><div class='del'>-      while prompt and input = readline("(rdb:%d) "%thnum(), true)</div><div class='del'>-        catch(:debug_error) do</div><div class='del'>-          if input == ""</div><div class='del'>-            next unless DEBUG_LAST_CMD[0]</div><div class='del'>-            input = DEBUG_LAST_CMD[0]</div><div class='del'>-            stdout.print input, "\n"</div><div class='del'>-          else</div><div class='del'>-            DEBUG_LAST_CMD[0] = input</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          case input</div><div class='del'>-          when /^\s*tr(?:ace)?(?:\s+(on|off))?(?:\s+(all))?$/</div><div class='del'>-            if defined?( $2 )</div><div class='del'>-              if $1 == 'on'</div><div class='del'>-                set_trace_all true</div><div class='del'>-              else</div><div class='del'>-                set_trace_all false</div><div class='del'>-              end</div><div class='del'>-            elsif defined?( $1 )</div><div class='del'>-              if $1 == 'on'</div><div class='del'>-                set_trace true</div><div class='del'>-              else</div><div class='del'>-                set_trace false</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-            if trace?</div><div class='del'>-              stdout.print "Trace on.\n"</div><div class='del'>-            else</div><div class='del'>-              stdout.print "Trace off.\n"</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-          when /^\s*b(?:reak)?\s+(?:(.+):)?([^.:]+)$/</div><div class='del'>-            pos = $2</div><div class='del'>-            if $1</div><div class='del'>-              klass = debug_silent_eval($1, binding)</div><div class='del'>-              file = $1</div><div class='del'>-            end</div><div class='del'>-            if pos =~ /^\d+$/</div><div class='del'>-              pname = pos</div><div class='del'>-              pos = pos.to_i</div><div class='del'>-            else</div><div class='del'>-              pname = pos = pos.intern.id2name</div><div class='del'>-            end</div><div class='del'>-            break_points.push [true, 0, klass || file, pos]</div><div class='del'>-            stdout.printf "Set breakpoint %d at %s:%s\n", break_points.size, klass || file, pname</div><div class='del'>-</div><div class='del'>-          when /^\s*b(?:reak)?\s+(.+)[#.]([^.:]+)$/</div><div class='del'>-            pos = $2.intern.id2name</div><div class='del'>-            klass = debug_eval($1, binding)</div><div class='del'>-            break_points.push [true, 0, klass, pos]</div><div class='del'>-            stdout.printf "Set breakpoint %d at %s.%s\n", break_points.size, klass, pos</div><div class='del'>-</div><div class='del'>-          when /^\s*wat(?:ch)?\s+(.+)$/</div><div class='del'>-            exp = $1</div><div class='del'>-            break_points.push [true, 1, exp]</div><div class='del'>-            stdout.printf "Set watchpoint %d:%s\n", break_points.size, exp</div><div class='del'>-</div><div class='del'>-          when /^\s*b(?:reak)?$/</div><div class='del'>-            if break_points.find{|b| b[1] == 0}</div><div class='del'>-              n = 1</div><div class='del'>-              stdout.print "Breakpoints:\n"</div><div class='del'>-              break_points.each do |b|</div><div class='del'>-                if b[0] and b[1] == 0</div><div class='del'>-                  stdout.printf "  %d %s:%s\n", n, b[2], b[3]</div><div class='del'>-                end</div><div class='del'>-                n += 1</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-            if break_points.find{|b| b[1] == 1}</div><div class='del'>-              n = 1</div><div class='del'>-              stdout.print "\n"</div><div class='del'>-              stdout.print "Watchpoints:\n"</div><div class='del'>-              for b in break_points</div><div class='del'>-                if b[0] and b[1] == 1</div><div class='del'>-                  stdout.printf "  %d %s\n", n, b[2]</div><div class='del'>-                end</div><div class='del'>-                n += 1</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-            if break_points.size == 0</div><div class='del'>-              stdout.print "No breakpoints\n"</div><div class='del'>-            else</div><div class='del'>-              stdout.print "\n"</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-          when /^\s*del(?:ete)?(?:\s+(\d+))?$/</div><div class='del'>-            pos = $1</div><div class='del'>-            unless pos</div><div class='del'>-              input = readline("Clear all breakpoints? (y/n) ", false)</div><div class='del'>-              if input == "y"</div><div class='del'>-                for b in break_points</div><div class='del'>-                  b[0] = false</div><div class='del'>-                end</div><div class='del'>-              end</div><div class='del'>-            else</div><div class='del'>-              pos = pos.to_i</div><div class='del'>-              if break_points[pos-1]</div><div class='del'>-                break_points[pos-1][0] = false</div><div class='del'>-              else</div><div class='del'>-                stdout.printf "Breakpoint %d is not defined\n", pos</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-          when /^\s*disp(?:lay)?\s+(.+)$/</div><div class='del'>-            exp = $1</div><div class='del'>-            display.push [true, exp]</div><div class='del'>-            stdout.printf "%d: ", display.size</div><div class='del'>-            display_expression(exp, binding)</div><div class='del'>-</div><div class='del'>-          when /^\s*disp(?:lay)?$/</div><div class='del'>-            display_expressions(binding)</div><div class='del'>-</div><div class='del'>-          when /^\s*undisp(?:lay)?(?:\s+(\d+))?$/</div><div class='del'>-            pos = $1</div><div class='del'>-            unless pos</div><div class='del'>-              input = readline("Clear all expressions? (y/n) ", false)</div><div class='del'>-              if input == "y"</div><div class='del'>-                for d in display</div><div class='del'>-                  d[0] = false</div><div class='del'>-                end</div><div class='del'>-              end</div><div class='del'>-            else</div><div class='del'>-              pos = pos.to_i</div><div class='del'>-              if display[pos-1]</div><div class='del'>-                display[pos-1][0] = false</div><div class='del'>-              else</div><div class='del'>-                stdout.printf "Display expression %d is not defined\n", pos</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-          when /^\s*c(?:ont)?$/</div><div class='del'>-            prompt = false</div><div class='del'>-</div><div class='del'>-          when /^\s*s(?:tep)?(?:\s+(\d+))?$/</div><div class='del'>-            if $1</div><div class='del'>-              lev = $1.to_i</div><div class='del'>-            else</div><div class='del'>-              lev = 1</div><div class='del'>-            end</div><div class='del'>-            @stop_next = lev</div><div class='del'>-            prompt = false</div><div class='del'>-</div><div class='del'>-          when /^\s*n(?:ext)?(?:\s+(\d+))?$/</div><div class='del'>-            if $1</div><div class='del'>-              lev = $1.to_i</div><div class='del'>-            else</div><div class='del'>-              lev = 1</div><div class='del'>-            end</div><div class='del'>-            @stop_next = lev</div><div class='del'>-            @no_step = @frames.size - frame_pos</div><div class='del'>-            prompt = false</div><div class='del'>-</div><div class='del'>-          when /^\s*w(?:here)?$/, /^\s*f(?:rame)?$/</div><div class='del'>-            display_frames(frame_pos)</div><div class='del'>-</div><div class='del'>-          when /^\s*l(?:ist)?(?:\s+(.+))?$/</div><div class='del'>-            if not $1</div><div class='del'>-              b = previous_line ? previous_line + 10 : binding_line - 5</div><div class='del'>-              e = b + 9</div><div class='del'>-            elsif $1 == '-'</div><div class='del'>-              b = previous_line ? previous_line - 10 : binding_line - 5</div><div class='del'>-              e = b + 9</div><div class='del'>-            else</div><div class='del'>-              b, e = $1.split(/[-,]/)</div><div class='del'>-              if e</div><div class='del'>-                b = b.to_i</div><div class='del'>-                e = e.to_i</div><div class='del'>-              else</div><div class='del'>-                b = b.to_i - 5</div><div class='del'>-                e = b + 9</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-            previous_line = b</div><div class='del'>-            display_list(b, e, binding_file, binding_line)</div><div class='del'>-</div><div class='del'>-          when /^\s*up(?:\s+(\d+))?$/</div><div class='del'>-            previous_line = nil</div><div class='del'>-            if $1</div><div class='del'>-              lev = $1.to_i</div><div class='del'>-            else</div><div class='del'>-              lev = 1</div><div class='del'>-            end</div><div class='del'>-            frame_pos += lev</div><div class='del'>-            if frame_pos &gt;= @frames.size</div><div class='del'>-              frame_pos = @frames.size - 1</div><div class='del'>-              stdout.print "At toplevel\n"</div><div class='del'>-            end</div><div class='del'>-            binding, binding_file, binding_line = @frames[frame_pos]</div><div class='del'>-            stdout.print format_frame(frame_pos)</div><div class='del'>-</div><div class='del'>-          when /^\s*down(?:\s+(\d+))?$/</div><div class='del'>-            previous_line = nil</div><div class='del'>-            if $1</div><div class='del'>-              lev = $1.to_i</div><div class='del'>-            else</div><div class='del'>-              lev = 1</div><div class='del'>-            end</div><div class='del'>-            frame_pos -= lev</div><div class='del'>-            if frame_pos &lt; 0</div><div class='del'>-              frame_pos = 0</div><div class='del'>-              stdout.print "At stack bottom\n"</div><div class='del'>-            end</div><div class='del'>-            binding, binding_file, binding_line = @frames[frame_pos]</div><div class='del'>-            stdout.print format_frame(frame_pos)</div><div class='del'>-</div><div class='del'>-          when /^\s*fin(?:ish)?$/</div><div class='del'>-            if frame_pos == @frames.size</div><div class='del'>-              stdout.print "\"finish\" not meaningful in the outermost frame.\n"</div><div class='del'>-            else</div><div class='del'>-              @finish_pos = @frames.size - frame_pos</div><div class='del'>-              frame_pos = 0</div><div class='del'>-              prompt = false</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-          when /^\s*cat(?:ch)?(?:\s+(.+))?$/</div><div class='del'>-            if $1</div><div class='del'>-              excn = $1</div><div class='del'>-              if excn == 'off'</div><div class='del'>-                @catch = nil</div><div class='del'>-                stdout.print "Clear catchpoint.\n"</div><div class='del'>-              else</div><div class='del'>-                @catch = excn</div><div class='del'>-                stdout.printf "Set catchpoint %s.\n", @catch</div><div class='del'>-              end</div><div class='del'>-            else</div><div class='del'>-              if @catch</div><div class='del'>-                stdout.printf "Catchpoint %s.\n", @catch</div><div class='del'>-              else</div><div class='del'>-                stdout.print "No catchpoint.\n"</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-          when /^\s*q(?:uit)?$/</div><div class='del'>-            input = readline("Really quit? (y/n) ", false)</div><div class='del'>-            if input == "y"</div><div class='del'>-              exit!  # exit -&gt; exit!: No graceful way to stop threads...</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-          when /^\s*v(?:ar)?\s+/</div><div class='del'>-            debug_variable_info($', binding)</div><div class='del'>-</div><div class='del'>-          when /^\s*m(?:ethod)?\s+/</div><div class='del'>-            debug_method_info($', binding)</div><div class='del'>-</div><div class='del'>-          when /^\s*th(?:read)?\s+/</div><div class='del'>-            if DEBUGGER__.debug_thread_info($', binding) == :cont</div><div class='del'>-              prompt = false</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-          when /^\s*pp\s+/</div><div class='del'>-            PP.pp(debug_eval($', binding), stdout)</div><div class='del'>-</div><div class='del'>-          when /^\s*p\s+/</div><div class='del'>-            stdout.printf "%s\n", debug_eval($', binding).inspect</div><div class='del'>-</div><div class='del'>-          when /^\s*r(?:estart)?$/</div><div class='del'>-            $debugger_restart.call</div><div class='del'>-</div><div class='del'>-          when /^\s*h(?:elp)?$/</div><div class='del'>-            debug_print_help()</div><div class='del'>-</div><div class='del'>-          else</div><div class='del'>-            v = debug_eval(input, binding)</div><div class='del'>-            stdout.printf "%s\n", v.inspect</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      MUTEX.unlock</div><div class='del'>-      resume_all</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def debug_print_help</div><div class='del'>-      stdout.print &lt;&lt;EOHELP</div><div class='del'>-Debugger help v.-0.002b</div><div class='del'>-Commands</div><div class='del'>-  b[reak] [file:|class:]&lt;line|method&gt;</div><div class='del'>-  b[reak] [class.]&lt;line|method&gt;</div><div class='del'>-                             set breakpoint to some position</div><div class='del'>-  wat[ch] &lt;expression&gt;       set watchpoint to some expression</div><div class='del'>-  cat[ch] (&lt;exception&gt;|off)  set catchpoint to an exception</div><div class='del'>-  b[reak]                    list breakpoints</div><div class='del'>-  cat[ch]                    show catchpoint</div><div class='del'>-  del[ete][ nnn]             delete some or all breakpoints</div><div class='del'>-  disp[lay] &lt;expression&gt;     add expression into display expression list</div><div class='del'>-  undisp[lay][ nnn]          delete one particular or all display expressions</div><div class='del'>-  c[ont]                     run until program ends or hit breakpoint</div><div class='del'>-  s[tep][ nnn]               step (into methods) one line or till line nnn</div><div class='del'>-  n[ext][ nnn]               go over one line or till line nnn</div><div class='del'>-  w[here]                    display frames</div><div class='del'>-  f[rame]                    alias for where</div><div class='del'>-  l[ist][ (-|nn-mm)]         list program, - lists backwards</div><div class='del'>-                             nn-mm lists given lines</div><div class='del'>-  up[ nn]                    move to higher frame</div><div class='del'>-  down[ nn]                  move to lower frame</div><div class='del'>-  fin[ish]                   return to outer frame</div><div class='del'>-  tr[ace] (on|off)           set trace mode of current thread</div><div class='del'>-  tr[ace] (on|off) all       set trace mode of all threads</div><div class='del'>-  q[uit]                     exit from debugger</div><div class='del'>-  v[ar] g[lobal]             show global variables</div><div class='del'>-  v[ar] l[ocal]              show local variables</div><div class='del'>-  v[ar] i[nstance] &lt;object&gt;  show instance variables of object</div><div class='del'>-  v[ar] c[onst] &lt;object&gt;     show constants of object</div><div class='del'>-  m[ethod] i[nstance] &lt;obj&gt;  show methods of object</div><div class='del'>-  m[ethod] &lt;class|module&gt;    show instance methods of class or module</div><div class='del'>-  th[read] l[ist]            list all threads</div><div class='del'>-  th[read] c[ur[rent]]       show current thread</div><div class='del'>-  th[read] [sw[itch]] &lt;nnn&gt;  switch thread context to nnn</div><div class='del'>-  th[read] stop &lt;nnn&gt;        stop thread nnn</div><div class='del'>-  th[read] resume &lt;nnn&gt;      resume thread nnn</div><div class='del'>-  pp expression              evaluate expression and pretty_print its value</div><div class='del'>-  p expression               evaluate expression and print its value</div><div class='del'>-  r[estart]                  restart program</div><div class='del'>-  h[elp]                     print this help</div><div class='del'>-  &lt;everything else&gt;          evaluate</div><div class='del'>-EOHELP</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def display_expressions(binding)</div><div class='del'>-      n = 1</div><div class='del'>-      for d in display</div><div class='del'>-        if d[0]</div><div class='del'>-          stdout.printf "%d: ", n</div><div class='del'>-          display_expression(d[1], binding)</div><div class='del'>-        end</div><div class='del'>-        n += 1</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def display_expression(exp, binding)</div><div class='del'>-      stdout.printf "%s = %s\n", exp, debug_silent_eval(exp, binding).to_s</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def frame_set_pos(file, line)</div><div class='del'>-      if @frames[0]</div><div class='del'>-        @frames[0][1] = file</div><div class='del'>-        @frames[0][2] = line</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def display_frames(pos)</div><div class='del'>-      0.upto(@frames.size - 1) do |n|</div><div class='del'>-        if n == pos</div><div class='del'>-          stdout.print "--&gt; "</div><div class='del'>-        else</div><div class='del'>-          stdout.print "    "</div><div class='del'>-        end</div><div class='del'>-        stdout.print format_frame(n)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def format_frame(pos)</div><div class='del'>-      _, file, line, id = @frames[pos]</div><div class='del'>-      sprintf "#%d %s:%s%s\n", pos + 1, file, line,</div><div class='del'>-        (id ? ":in `#{id.id2name}'" : "")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def script_lines(file, line)</div><div class='del'>-      unless (lines = SCRIPT_LINES__[file]) and lines != true</div><div class='del'>-        Tracer::Single.get_line(file, line) if File.exist?(file)</div><div class='del'>-        lines = SCRIPT_LINES__[file]</div><div class='del'>-        lines = nil if lines == true</div><div class='del'>-      end</div><div class='del'>-      lines</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def display_list(b, e, file, line)</div><div class='del'>-      if lines = script_lines(file, line)</div><div class='del'>-        stdout.printf "[%d, %d] in %s\n", b, e, file</div><div class='del'>-        b.upto(e) do |n|</div><div class='del'>-          if n &gt; 0 &amp;&amp; lines[n-1]</div><div class='del'>-            if n == line</div><div class='del'>-              stdout.printf "=&gt; %d  %s\n", n, lines[n-1].chomp</div><div class='del'>-            else</div><div class='del'>-              stdout.printf "   %d  %s\n", n, lines[n-1].chomp</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        stdout.printf "No sourcefile available for %s\n", file</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def line_at(file, line)</div><div class='del'>-      lines = script_lines(file, line)</div><div class='del'>-      if lines and line = lines[line-1]</div><div class='del'>-        return line</div><div class='del'>-      end</div><div class='del'>-      return "\n"</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def debug_funcname(id)</div><div class='del'>-      if id.nil?</div><div class='del'>-        "toplevel"</div><div class='del'>-      else</div><div class='del'>-        id.id2name</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def check_break_points(file, klass, pos, binding, id)</div><div class='del'>-      return false if break_points.empty?</div><div class='del'>-      n = 1</div><div class='del'>-      for b in break_points</div><div class='del'>-        if b[0]           # valid</div><div class='del'>-          if b[1] == 0    # breakpoint</div><div class='del'>-            if (b[2] == file and b[3] == pos) or</div><div class='del'>-                (klass and b[2] == klass and b[3] == pos)</div><div class='del'>-              stdout.printf "Breakpoint %d, %s at %s:%s\n", n, debug_funcname(id), file, pos</div><div class='del'>-              return true</div><div class='del'>-            end</div><div class='del'>-          elsif b[1] == 1 # watchpoint</div><div class='del'>-            if debug_silent_eval(b[2], binding)</div><div class='del'>-              stdout.printf "Watchpoint %d, %s at %s:%s\n", n, debug_funcname(id), file, pos</div><div class='del'>-              return true</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        n += 1</div><div class='del'>-      end</div><div class='del'>-      return false</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def excn_handle(file, line, id, binding)</div><div class='del'>-      if $!.class &lt;= SystemExit</div><div class='del'>-        set_trace_func nil</div><div class='del'>-        exit</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      if @catch and ($!.class.ancestors.find { |e| e.to_s == @catch })</div><div class='del'>-        stdout.printf "%s:%d: `%s' (%s)\n", file, line, $!, $!.class</div><div class='del'>-        fs = @frames.size</div><div class='del'>-        tb = caller(0)[-fs..-1]</div><div class='del'>-        if tb</div><div class='del'>-          for i in tb</div><div class='del'>-            stdout.printf "\tfrom %s\n", i</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        suspend_all</div><div class='del'>-        debug_command(file, line, id, binding)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def trace_func(event, file, line, id, binding, klass)</div><div class='del'>-      Tracer.trace_func(event, file, line, id, binding, klass) if trace?</div><div class='del'>-      context(Thread.current).check_suspend</div><div class='del'>-      @file = file</div><div class='del'>-      @line = line</div><div class='del'>-      case event</div><div class='del'>-      when 'line'</div><div class='del'>-        frame_set_pos(file, line)</div><div class='del'>-        if !@no_step or @frames.size == @no_step</div><div class='del'>-          @stop_next -= 1</div><div class='del'>-          @stop_next = -1 if @stop_next &lt; 0</div><div class='del'>-        elsif @frames.size &lt; @no_step</div><div class='del'>-          @stop_next = 0          # break here before leaving...</div><div class='del'>-        else</div><div class='del'>-          # nothing to do. skipped.</div><div class='del'>-        end</div><div class='del'>-        if @stop_next == 0 or check_break_points(file, nil, line, binding, id)</div><div class='del'>-          @no_step = nil</div><div class='del'>-          suspend_all</div><div class='del'>-          debug_command(file, line, id, binding)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-      when 'call'</div><div class='del'>-        @frames.unshift [binding, file, line, id]</div><div class='del'>-        if check_break_points(file, klass, id.id2name, binding, id)</div><div class='del'>-          suspend_all</div><div class='del'>-          debug_command(file, line, id, binding)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-      when 'c-call'</div><div class='del'>-        frame_set_pos(file, line)</div><div class='del'>-</div><div class='del'>-      when 'class'</div><div class='del'>-        @frames.unshift [binding, file, line, id]</div><div class='del'>-</div><div class='del'>-      when 'return', 'end'</div><div class='del'>-        if @frames.size == @finish_pos</div><div class='del'>-          @stop_next = 1</div><div class='del'>-          @finish_pos = 0</div><div class='del'>-        end</div><div class='del'>-        @frames.shift</div><div class='del'>-</div><div class='del'>-      when 'raise'</div><div class='del'>-        excn_handle(file, line, id, binding)</div><div class='del'>-</div><div class='del'>-      end</div><div class='del'>-      @last_file = file</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  trap("INT") { DEBUGGER__.interrupt }</div><div class='del'>-  @last_thread = Thread::main</div><div class='del'>-  @max_thread = 1</div><div class='del'>-  @thread_list = {Thread::main =&gt; 1}</div><div class='del'>-  @break_points = []</div><div class='del'>-  @display = []</div><div class='del'>-  @waiting = []</div><div class='del'>-  @stdout = STDOUT</div><div class='del'>-</div><div class='del'>-  class &lt;&lt; DEBUGGER__</div><div class='del'>-    # Returns the IO used as stdout. Defaults to STDOUT</div><div class='del'>-    def stdout</div><div class='del'>-      @stdout</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Sets the IO used as stdout. Defaults to STDOUT</div><div class='del'>-    def stdout=(s)</div><div class='del'>-      @stdout = s</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns the display expression list</div><div class='del'>-    #</div><div class='del'>-    # See DEBUGGER__ for more usage</div><div class='del'>-    def display</div><div class='del'>-      @display</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns the list of break points where execution will be stopped.</div><div class='del'>-    #</div><div class='del'>-    # See DEBUGGER__ for more usage</div><div class='del'>-    def break_points</div><div class='del'>-      @break_points</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns the list of waiting threads.</div><div class='del'>-    #</div><div class='del'>-    # When stepping through the traces of a function, thread gets suspended, to</div><div class='del'>-    # be resumed later.</div><div class='del'>-    def waiting</div><div class='del'>-      @waiting</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def set_trace( arg )</div><div class='del'>-      MUTEX.synchronize do</div><div class='del'>-        make_thread_list</div><div class='del'>-        for th, in @thread_list</div><div class='del'>-          context(th).set_trace arg</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      arg</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def set_last_thread(th)</div><div class='del'>-      @last_thread = th</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def suspend</div><div class='del'>-      MUTEX.synchronize do</div><div class='del'>-        make_thread_list</div><div class='del'>-        for th, in @thread_list</div><div class='del'>-          next if th == Thread.current</div><div class='del'>-          context(th).set_suspend</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      # Schedule other threads to suspend as soon as possible.</div><div class='del'>-      Thread.pass</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def resume</div><div class='del'>-      MUTEX.synchronize do</div><div class='del'>-        make_thread_list</div><div class='del'>-        @thread_list.each do |th,|</div><div class='del'>-          next if th == Thread.current</div><div class='del'>-          context(th).clear_suspend</div><div class='del'>-        end</div><div class='del'>-        waiting.each do |th|</div><div class='del'>-          th.run</div><div class='del'>-        end</div><div class='del'>-        waiting.clear</div><div class='del'>-      end</div><div class='del'>-      # Schedule other threads to restart as soon as possible.</div><div class='del'>-      Thread.pass</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def context(thread=Thread.current)</div><div class='del'>-      c = thread[:__debugger_data__]</div><div class='del'>-      unless c</div><div class='del'>-        thread[:__debugger_data__] = c = Context.new</div><div class='del'>-      end</div><div class='del'>-      c</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def interrupt</div><div class='del'>-      context(@last_thread).stop_next</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def get_thread(num)</div><div class='del'>-      th = @thread_list.key(num)</div><div class='del'>-      unless th</div><div class='del'>-        @stdout.print "No thread ##{num}\n"</div><div class='del'>-        throw :debug_error</div><div class='del'>-      end</div><div class='del'>-      th</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def thread_list(num)</div><div class='del'>-      th = get_thread(num)</div><div class='del'>-      if th == Thread.current</div><div class='del'>-        @stdout.print "+"</div><div class='del'>-      else</div><div class='del'>-        @stdout.print " "</div><div class='del'>-      end</div><div class='del'>-      @stdout.printf "%d ", num</div><div class='del'>-      @stdout.print th.inspect, "\t"</div><div class='del'>-      file = context(th).instance_eval{@file}</div><div class='del'>-      if file</div><div class='del'>-        @stdout.print file,":",context(th).instance_eval{@line}</div><div class='del'>-      end</div><div class='del'>-      @stdout.print "\n"</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Prints all threads in @thread_list to @stdout. Returns a sorted array of</div><div class='del'>-    # values from the @thread_list hash.</div><div class='del'>-    #</div><div class='del'>-    # While in the debugger you can list all of</div><div class='del'>-    # the threads with: &lt;b&gt;DEBUGGER__.thread_list_all&lt;/b&gt;</div><div class='del'>-    #</div><div class='del'>-    #   (rdb:1) DEBUGGER__.thread_list_all</div><div class='del'>-    #   +1 #&lt;Thread:0x007fb2320c03f0 run&gt; debug_me.rb.rb:3</div><div class='del'>-    #    2 #&lt;Thread:0x007fb23218a538@debug_me.rb.rb:3 sleep&gt;</div><div class='del'>-    #    3 #&lt;Thread:0x007fb23218b0f0@debug_me.rb.rb:3 sleep&gt;</div><div class='del'>-    #   [1, 2, 3]</div><div class='del'>-    #</div><div class='del'>-    # Your current thread is indicated by a &lt;b&gt;+&lt;/b&gt;</div><div class='del'>-    #</div><div class='del'>-    # Additionally you can list all threads with &lt;b&gt;th l&lt;/b&gt;</div><div class='del'>-    #</div><div class='del'>-    #   (rdb:1) th l</div><div class='del'>-    #    +1 #&lt;Thread:0x007f99328c0410 run&gt;  debug_me.rb:3</div><div class='del'>-    #     2 #&lt;Thread:0x007f9932938230@debug_me.rb:3 sleep&gt; debug_me.rb:3</div><div class='del'>-    #     3 #&lt;Thread:0x007f9932938e10@debug_me.rb:3 sleep&gt; debug_me.rb:3</div><div class='del'>-    #</div><div class='del'>-    # See DEBUGGER__ for more usage.</div><div class='del'>-</div><div class='del'>-    def thread_list_all</div><div class='del'>-      for th in @thread_list.values.sort</div><div class='del'>-        thread_list(th)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def make_thread_list</div><div class='del'>-      hash = {}</div><div class='del'>-      for th in Thread::list</div><div class='del'>-        if @thread_list.key? th</div><div class='del'>-          hash[th] = @thread_list[th]</div><div class='del'>-        else</div><div class='del'>-          @max_thread += 1</div><div class='del'>-          hash[th] = @max_thread</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      @thread_list = hash</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def debug_thread_info(input, binding)</div><div class='del'>-      case input</div><div class='del'>-      when /^l(?:ist)?/</div><div class='del'>-        make_thread_list</div><div class='del'>-        thread_list_all</div><div class='del'>-</div><div class='del'>-      when /^c(?:ur(?:rent)?)?$/</div><div class='del'>-        make_thread_list</div><div class='del'>-        thread_list(@thread_list[Thread.current])</div><div class='del'>-</div><div class='del'>-      when /^(?:sw(?:itch)?\s+)?(\d+)/</div><div class='del'>-        make_thread_list</div><div class='del'>-        th = get_thread($1.to_i)</div><div class='del'>-        if th == Thread.current</div><div class='del'>-          @stdout.print "It's the current thread.\n"</div><div class='del'>-        else</div><div class='del'>-          thread_list(@thread_list[th])</div><div class='del'>-          context(th).stop_next</div><div class='del'>-          th.run</div><div class='del'>-          return :cont</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-      when /^stop\s+(\d+)/</div><div class='del'>-        make_thread_list</div><div class='del'>-        th = get_thread($1.to_i)</div><div class='del'>-        if th == Thread.current</div><div class='del'>-          @stdout.print "It's the current thread.\n"</div><div class='del'>-        elsif th.stop?</div><div class='del'>-          @stdout.print "Already stopped.\n"</div><div class='del'>-        else</div><div class='del'>-          thread_list(@thread_list[th])</div><div class='del'>-          context(th).suspend</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-      when /^resume\s+(\d+)/</div><div class='del'>-        make_thread_list</div><div class='del'>-        th = get_thread($1.to_i)</div><div class='del'>-        if th == Thread.current</div><div class='del'>-          @stdout.print "It's the current thread.\n"</div><div class='del'>-        elsif !th.stop?</div><div class='del'>-          @stdout.print "Already running."</div><div class='del'>-        else</div><div class='del'>-          thread_list(@thread_list[th])</div><div class='del'>-          th.run</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  stdout.printf "Debug.rb\n"</div><div class='del'>-  stdout.printf "Emacs support available.\n\n"</div><div class='del'>-  RubyVM::InstructionSequence.compile_option = {</div><div class='del'>-    trace_instruction: true</div><div class='del'>-  }</div><div class='del'>-  set_trace_func proc { |event, file, line, id, binding, klass, *rest|</div><div class='del'>-    DEBUGGER__.context.trace_func event, file, line, id, binding, klass</div><div class='del'>-  }</div><div class='del'>-end</div><div class='head'>diff --git a/lib/delegate.rb b/lib/delegate.rb<br/>index 37819a28f4..387a5f063d 100644<br/>--- a/<a href='/ruby.git/tree/lib/delegate.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/delegate.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/delegate.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/delegate.rb</a></div><div class='hunk'>@@ -21,6 +21,8 @@</div><div class='ctx'> # SimpleDelegator's implementation serves as a nice example of the use of</div><div class='ctx'> # Delegator:</div><div class='ctx'> #</div><div class='add'>+#   require 'delegate'</div><div class='add'>+#</div><div class='ctx'> #   class SimpleDelegator &lt; Delegator</div><div class='ctx'> #     def __getobj__</div><div class='ctx'> #       @delegate_sd_obj # return object we are delegating to, required</div><div class='hunk'>@@ -37,14 +39,16 @@</div><div class='ctx'> # Be advised, RDoc will not detect delegated methods.</div><div class='ctx'> #</div><div class='ctx'> class Delegator &lt; BasicObject</div><div class='add'>+  VERSION = "0.3.0"</div><div class='add'>+</div><div class='ctx'>   kernel = ::Kernel.dup</div><div class='ctx'>   kernel.class_eval do</div><div class='ctx'>     alias __raise__ raise</div><div class='del'>-    [:to_s, :inspect, :=~, :!~, :===, :&lt;=&gt;, :hash].each do |m|</div><div class='add'>+    [:to_s, :inspect, :!~, :===, :&lt;=&gt;, :hash].each do |m|</div><div class='ctx'>       undef_method m</div><div class='ctx'>     end</div><div class='ctx'>     private_instance_methods.each do |m|</div><div class='del'>-      if /\Ablock_given\?\z|iterator\?\z|\A__.*__\z/ =~ m</div><div class='add'>+      if /\Ablock_given\?\z|\Aiterator\?\z|\A__.*__\z/ =~ m</div><div class='ctx'>         next</div><div class='ctx'>       end</div><div class='ctx'>       undef_method m</div><div class='hunk'>@@ -60,8 +64,8 @@ class Delegator &lt; BasicObject</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='ctx'>   # :method: raise</div><div class='del'>-  # Use __raise__ if your Delegator does not have a object to delegate the</div><div class='del'>-  # raise method call.</div><div class='add'>+  # Use #__raise__ if your Delegator does not have a object to delegate the</div><div class='add'>+  # #raise method call.</div><div class='ctx'>   #</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='hunk'>@@ -75,14 +79,14 @@ class Delegator &lt; BasicObject</div><div class='ctx'>   #</div><div class='ctx'>   # Handles the magic of delegation through \_\_getobj\_\_.</div><div class='ctx'>   #</div><div class='del'>-  def method_missing(m, *args, &amp;block)</div><div class='add'>+  ruby2_keywords def method_missing(m, *args, &amp;block)</div><div class='ctx'>     r = true</div><div class='ctx'>     target = self.__getobj__ {r = false}</div><div class='ctx'> </div><div class='del'>-    if r &amp;&amp; target.respond_to?(m)</div><div class='add'>+    if r &amp;&amp; target_respond_to?(target, m, false)</div><div class='ctx'>       target.__send__(m, *args, &amp;block)</div><div class='del'>-    elsif ::Kernel.respond_to?(m, true)</div><div class='del'>-      ::Kernel.instance_method(m).bind(self).(*args, &amp;block)</div><div class='add'>+    elsif ::Kernel.method_defined?(m) || ::Kernel.private_method_defined?(m)</div><div class='add'>+      ::Kernel.instance_method(m).bind_call(self, *args, &amp;block)</div><div class='ctx'>     else</div><div class='ctx'>       super(m, *args, &amp;block)</div><div class='ctx'>     end</div><div class='hunk'>@@ -95,14 +99,31 @@ class Delegator &lt; BasicObject</div><div class='ctx'>   def respond_to_missing?(m, include_private)</div><div class='ctx'>     r = true</div><div class='ctx'>     target = self.__getobj__ {r = false}</div><div class='del'>-    r &amp;&amp;= target.respond_to?(m, include_private)</div><div class='del'>-    if r &amp;&amp; include_private &amp;&amp; !target.respond_to?(m, false)</div><div class='add'>+    r &amp;&amp;= target_respond_to?(target, m, include_private)</div><div class='add'>+    if r &amp;&amp; include_private &amp;&amp; !target_respond_to?(target, m, false)</div><div class='ctx'>       warn "delegator does not forward private method \##{m}", uplevel: 3</div><div class='ctx'>       return false</div><div class='ctx'>     end</div><div class='ctx'>     r</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  KERNEL_RESPOND_TO = ::Kernel.instance_method(:respond_to?)</div><div class='add'>+  private_constant :KERNEL_RESPOND_TO</div><div class='add'>+</div><div class='add'>+  # Handle BasicObject instances</div><div class='add'>+  private def target_respond_to?(target, m, include_private)</div><div class='add'>+    case target</div><div class='add'>+    when Object</div><div class='add'>+      target.respond_to?(m, include_private)</div><div class='add'>+    else</div><div class='add'>+      if KERNEL_RESPOND_TO.bind_call(target, :respond_to?)</div><div class='add'>+        target.respond_to?(m, include_private)</div><div class='add'>+      else</div><div class='add'>+        KERNEL_RESPOND_TO.bind_call(target, m, include_private)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'>   #</div><div class='ctx'>   # Returns the methods available to this delegate object as the union</div><div class='ctx'>   # of this object's and \_\_getobj\_\_ methods.</div><div class='hunk'>@@ -201,8 +222,8 @@ class Delegator &lt; BasicObject</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def initialize_clone(obj) # :nodoc:</div><div class='del'>-    self.__setobj__(obj.__getobj__.clone)</div><div class='add'>+  def initialize_clone(obj, freeze: nil) # :nodoc:</div><div class='add'>+    self.__setobj__(obj.__getobj__.clone(freeze: freeze))</div><div class='ctx'>   end</div><div class='ctx'>   def initialize_dup(obj) # :nodoc:</div><div class='ctx'>     self.__setobj__(obj.__getobj__.dup)</div><div class='hunk'>@@ -210,35 +231,12 @@ class Delegator &lt; BasicObject</div><div class='ctx'>   private :initialize_clone, :initialize_dup</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # :method: trust</div><div class='del'>-  # Trust both the object returned by \_\_getobj\_\_ and self.</div><div class='del'>-  #</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # :method: untrust</div><div class='del'>-  # Untrust both the object returned by \_\_getobj\_\_ and self.</div><div class='del'>-  #</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # :method: taint</div><div class='del'>-  # Taint both the object returned by \_\_getobj\_\_ and self.</div><div class='del'>-  #</div><div class='del'>-</div><div class='del'>-  ##</div><div class='del'>-  # :method: untaint</div><div class='del'>-  # Untaint both the object returned by \_\_getobj\_\_ and self.</div><div class='del'>-  #</div><div class='del'>-</div><div class='del'>-  ##</div><div class='ctx'>   # :method: freeze</div><div class='ctx'>   # Freeze both the object returned by \_\_getobj\_\_ and self.</div><div class='ctx'>   #</div><div class='del'>-</div><div class='del'>-  [:trust, :untrust, :taint, :untaint, :freeze].each do |method|</div><div class='del'>-    define_method method do</div><div class='del'>-      __getobj__.send(method)</div><div class='del'>-      super()</div><div class='del'>-    end</div><div class='add'>+  def freeze</div><div class='add'>+    __getobj__.freeze</div><div class='add'>+    super()</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   @delegator_api = self.public_instance_methods</div><div class='hunk'>@@ -259,6 +257,8 @@ end</div><div class='ctx'> #     end</div><div class='ctx'> #   end</div><div class='ctx'> #</div><div class='add'>+#   require 'delegate'</div><div class='add'>+#</div><div class='ctx'> #   class UserDecorator &lt; SimpleDelegator</div><div class='ctx'> #     def birth_year</div><div class='ctx'> #       born_on.year</div><div class='hunk'>@@ -347,7 +347,7 @@ def Delegator.delegating_block(mid) # :nodoc:</div><div class='ctx'>   lambda do |*args, &amp;block|</div><div class='ctx'>     target = self.__getobj__</div><div class='ctx'>     target.__send__(mid, *args, &amp;block)</div><div class='del'>-  end</div><div class='add'>+  end.ruby2_keywords</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> #</div><div class='hunk'>@@ -360,6 +360,14 @@ end</div><div class='ctx'> #     end</div><div class='ctx'> #   end</div><div class='ctx'> #</div><div class='add'>+# or:</div><div class='add'>+#</div><div class='add'>+#   MyClass = DelegateClass(ClassToDelegateTo) do    # Step 1</div><div class='add'>+#     def initialize</div><div class='add'>+#       super(obj_of_ClassToDelegateTo)              # Step 2</div><div class='add'>+#     end</div><div class='add'>+#   end</div><div class='add'>+#</div><div class='ctx'> # Here's a sample of use from Tempfile which is really a File object with a</div><div class='ctx'> # few special rules about storage location and when the File should be</div><div class='ctx'> # deleted.  That makes for an almost textbook perfect example of how to use</div><div class='hunk'>@@ -383,11 +391,13 @@ end</div><div class='ctx'> #     # ...</div><div class='ctx'> #   end</div><div class='ctx'> #</div><div class='del'>-def DelegateClass(superclass)</div><div class='add'>+def DelegateClass(superclass, &amp;block)</div><div class='ctx'>   klass = Class.new(Delegator)</div><div class='del'>-  methods = superclass.instance_methods</div><div class='del'>-  methods -= ::Delegator.public_api</div><div class='del'>-  methods -= [:to_s, :inspect, :=~, :!~, :===]</div><div class='add'>+  ignores = [*::Delegator.public_api, :to_s, :inspect, :=~, :!~, :===]</div><div class='add'>+  protected_instance_methods = superclass.protected_instance_methods</div><div class='add'>+  protected_instance_methods -= ignores</div><div class='add'>+  public_instance_methods = superclass.public_instance_methods</div><div class='add'>+  public_instance_methods -= ignores</div><div class='ctx'>   klass.module_eval do</div><div class='ctx'>     def __getobj__ # :nodoc:</div><div class='ctx'>       unless defined?(@delegate_dc_obj)</div><div class='hunk'>@@ -400,15 +410,35 @@ def DelegateClass(superclass)</div><div class='ctx'>       __raise__ ::ArgumentError, "cannot delegate to self" if self.equal?(obj)</div><div class='ctx'>       @delegate_dc_obj = obj</div><div class='ctx'>     end</div><div class='del'>-    methods.each do |method|</div><div class='add'>+    protected_instance_methods.each do |method|</div><div class='add'>+      define_method(method, Delegator.delegating_block(method))</div><div class='add'>+      protected method</div><div class='add'>+    end</div><div class='add'>+    public_instance_methods.each do |method|</div><div class='ctx'>       define_method(method, Delegator.delegating_block(method))</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'>   klass.define_singleton_method :public_instance_methods do |all=true|</div><div class='del'>-    super(all) - superclass.protected_instance_methods</div><div class='add'>+    super(all) | superclass.public_instance_methods</div><div class='ctx'>   end</div><div class='ctx'>   klass.define_singleton_method :protected_instance_methods do |all=true|</div><div class='ctx'>     super(all) | superclass.protected_instance_methods</div><div class='ctx'>   end</div><div class='add'>+  klass.define_singleton_method :instance_methods do |all=true|</div><div class='add'>+    super(all) | superclass.instance_methods</div><div class='add'>+  end</div><div class='add'>+  klass.define_singleton_method :public_instance_method do |name|</div><div class='add'>+    super(name)</div><div class='add'>+  rescue NameError</div><div class='add'>+    raise unless self.public_instance_methods.include?(name)</div><div class='add'>+    superclass.public_instance_method(name)</div><div class='add'>+  end</div><div class='add'>+  klass.define_singleton_method :instance_method do |name|</div><div class='add'>+    super(name)</div><div class='add'>+  rescue NameError</div><div class='add'>+    raise unless self.instance_methods.include?(name)</div><div class='add'>+    superclass.instance_method(name)</div><div class='add'>+  end</div><div class='add'>+  klass.module_eval(&amp;block) if block</div><div class='ctx'>   return klass</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/delegate/delegate.gemspec b/lib/delegate/delegate.gemspec<br/>new file mode 100644<br/>index 0000000000..1cfacfeb2f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/delegate/delegate.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/delegate/delegate.gemspec</a></div><div class='hunk'>@@ -0,0 +1,29 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+name = File.basename(__FILE__, ".gemspec")</div><div class='add'>+version = ["lib", Array.new(name.count("-")+1, "..").join("/")].find do |dir|</div><div class='add'>+  break File.foreach(File.join(__dir__, dir, "#{name.tr('-', '/')}.rb")) do |line|</div><div class='add'>+    /^\s*VERSION\s*=\s*"(.*)"/ =~ line and break $1</div><div class='add'>+  end rescue nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = name</div><div class='add'>+  spec.version       = version</div><div class='add'>+  spec.authors       = ["Yukihiro Matsumoto"]</div><div class='add'>+  spec.email         = ["matz@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Provides three abilities to delegate method calls to an object.}</div><div class='add'>+  spec.description   = %q{Provides three abilities to delegate method calls to an object.}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/delegate"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z 2&gt;/dev/null`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+  spec.required_ruby_version = '&gt;= 2.7'</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean.rb b/lib/did_you_mean.rb<br/>new file mode 100644<br/>index 0000000000..2df238da06<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean.rb</a></div><div class='hunk'>@@ -0,0 +1,155 @@</div><div class='add'>+require_relative "did_you_mean/version"</div><div class='add'>+require_relative "did_you_mean/core_ext/name_error"</div><div class='add'>+</div><div class='add'>+require_relative "did_you_mean/spell_checker"</div><div class='add'>+require_relative 'did_you_mean/spell_checkers/name_error_checkers'</div><div class='add'>+require_relative 'did_you_mean/spell_checkers/method_name_checker'</div><div class='add'>+require_relative 'did_you_mean/spell_checkers/key_error_checker'</div><div class='add'>+require_relative 'did_you_mean/spell_checkers/null_checker'</div><div class='add'>+require_relative 'did_you_mean/spell_checkers/require_path_checker'</div><div class='add'>+require_relative 'did_you_mean/spell_checkers/pattern_key_name_checker'</div><div class='add'>+require_relative 'did_you_mean/formatter'</div><div class='add'>+require_relative 'did_you_mean/tree_spell_checker'</div><div class='add'>+</div><div class='add'>+# The +DidYouMean+ gem adds functionality to suggest possible method/class</div><div class='add'>+# names upon errors such as +NameError+ and +NoMethodError+. In Ruby 2.3 or</div><div class='add'>+# later, it is automatically activated during startup.</div><div class='add'>+#</div><div class='add'>+# @example</div><div class='add'>+#</div><div class='add'>+#   methosd</div><div class='add'>+#   # =&gt; NameError: undefined local variable or method `methosd' for main:Object</div><div class='add'>+#   #   Did you mean?  methods</div><div class='add'>+#   #                  method</div><div class='add'>+#</div><div class='add'>+#   OBject</div><div class='add'>+#   # =&gt; NameError: uninitialized constant OBject</div><div class='add'>+#   #    Did you mean?  Object</div><div class='add'>+#</div><div class='add'>+#   @full_name = "Yuki Nishijima"</div><div class='add'>+#   first_name, last_name = full_name.split(" ")</div><div class='add'>+#   # =&gt; NameError: undefined local variable or method `full_name' for main:Object</div><div class='add'>+#   #    Did you mean?  @full_name</div><div class='add'>+#</div><div class='add'>+#   @@full_name = "Yuki Nishijima"</div><div class='add'>+#   @@full_anme</div><div class='add'>+#   # =&gt; NameError: uninitialized class variable @@full_anme in Object</div><div class='add'>+#   #    Did you mean?  @@full_name</div><div class='add'>+#</div><div class='add'>+#   full_name = "Yuki Nishijima"</div><div class='add'>+#   full_name.starts_with?("Y")</div><div class='add'>+#   # =&gt; NoMethodError: undefined method `starts_with?' for "Yuki Nishijima":String</div><div class='add'>+#   #    Did you mean?  start_with?</div><div class='add'>+#</div><div class='add'>+#   hash = {foo: 1, bar: 2, baz: 3}</div><div class='add'>+#   hash.fetch(:fooo)</div><div class='add'>+#   # =&gt; KeyError: key not found: :fooo</div><div class='add'>+#   #    Did you mean?  :foo</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# == Disabling +did_you_mean+</div><div class='add'>+#</div><div class='add'>+# Occasionally, you may want to disable the +did_you_mean+ gem for e.g.</div><div class='add'>+# debugging issues in the error object itself. You can disable it entirely by</div><div class='add'>+# specifying +--disable-did_you_mean+ option to the +ruby+ command:</div><div class='add'>+#</div><div class='add'>+#   $ ruby --disable-did_you_mean -e "1.zeor?"</div><div class='add'>+#   -e:1:in `&lt;main&gt;': undefined method `zeor?' for 1:Integer (NameError)</div><div class='add'>+#</div><div class='add'>+# When you do not have direct access to the +ruby+ command (e.g.</div><div class='add'>+# +rails console+, +irb+), you could applyoptions using the +RUBYOPT+</div><div class='add'>+# environment variable:</div><div class='add'>+#</div><div class='add'>+#   $ RUBYOPT='--disable-did_you_mean' irb</div><div class='add'>+#   irb:0&gt; 1.zeor?</div><div class='add'>+#   # =&gt; NoMethodError (undefined method `zeor?' for 1:Integer)</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# == Getting the original error message</div><div class='add'>+#</div><div class='add'>+# Sometimes, you do not want to disable the gem entirely, but need to get the</div><div class='add'>+# original error message without suggestions (e.g. testing). In this case, you</div><div class='add'>+# could use the +#original_message+ method on the error object:</div><div class='add'>+#</div><div class='add'>+#   no_method_error = begin</div><div class='add'>+#                       1.zeor?</div><div class='add'>+#                     rescue NoMethodError =&gt; error</div><div class='add'>+#                       error</div><div class='add'>+#                     end</div><div class='add'>+#</div><div class='add'>+#   no_method_error.message</div><div class='add'>+#   # =&gt; NoMethodError (undefined method `zeor?' for 1:Integer)</div><div class='add'>+#   #    Did you mean?  zero?</div><div class='add'>+#</div><div class='add'>+#   no_method_error.original_message</div><div class='add'>+#   # =&gt; NoMethodError (undefined method `zeor?' for 1:Integer)</div><div class='add'>+#</div><div class='add'>+module DidYouMean</div><div class='add'>+  # Map of error types and spell checker objects.</div><div class='add'>+  @spell_checkers = Hash.new(NullChecker)</div><div class='add'>+</div><div class='add'>+  # Returns a sharable hash map of error types and spell checker objects.</div><div class='add'>+  def self.spell_checkers</div><div class='add'>+    @spell_checkers</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Adds +DidYouMean+ functionality to an error using a given spell checker</div><div class='add'>+  def self.correct_error(error_class, spell_checker)</div><div class='add'>+    if defined?(Ractor)</div><div class='add'>+      new_mapping = { **@spell_checkers, error_class.to_s =&gt; spell_checker }</div><div class='add'>+      new_mapping.default = NullChecker</div><div class='add'>+</div><div class='add'>+      @spell_checkers = Ractor.make_shareable(new_mapping)</div><div class='add'>+    else</div><div class='add'>+      spell_checkers[error_class.to_s] = spell_checker</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    error_class.prepend(Correctable) if error_class.is_a?(Class) &amp;&amp; !(error_class &lt; Correctable)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  correct_error NameError, NameErrorCheckers</div><div class='add'>+  correct_error KeyError, KeyErrorChecker</div><div class='add'>+  correct_error NoMethodError, MethodNameChecker</div><div class='add'>+  correct_error LoadError, RequirePathChecker if RUBY_VERSION &gt;= '2.8.0'</div><div class='add'>+  correct_error NoMatchingPatternKeyError, PatternKeyNameChecker if defined?(::NoMatchingPatternKeyError)</div><div class='add'>+</div><div class='add'>+  # TODO: Remove on 3.3:</div><div class='add'>+  class DeprecatedMapping # :nodoc:</div><div class='add'>+    def []=(key, value)</div><div class='add'>+      warn "Calling `DidYouMean::SPELL_CHECKERS[#{key.to_s}] = #{value.to_s}' has been deprecated. " \</div><div class='add'>+           "Please call `DidYouMean.correct_error(#{key.to_s}, #{value.to_s})' instead."</div><div class='add'>+</div><div class='add'>+      DidYouMean.correct_error(key, value)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def merge!(hash)</div><div class='add'>+      warn "Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name =&gt; spell_checker)' has been deprecated. " \</div><div class='add'>+           "Please call `DidYouMean.correct_error(error_name, spell_checker)' instead."</div><div class='add'>+</div><div class='add'>+      hash.each do |error_class, spell_checker|</div><div class='add'>+        DidYouMean.correct_error(error_class, spell_checker)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # TODO: Remove on 3.3:</div><div class='add'>+  SPELL_CHECKERS = DeprecatedMapping.new</div><div class='add'>+  deprecate_constant :SPELL_CHECKERS</div><div class='add'>+  private_constant :DeprecatedMapping</div><div class='add'>+</div><div class='add'>+  # Returns the currently set formatter. By default, it is set to +DidYouMean::Formatter+.</div><div class='add'>+  def self.formatter</div><div class='add'>+    if defined?(Ractor)</div><div class='add'>+      Ractor.current[:__did_you_mean_formatter__] || Formatter</div><div class='add'>+    else</div><div class='add'>+      Formatter</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Updates the primary formatter used to format the suggestions.</div><div class='add'>+  def self.formatter=(formatter)</div><div class='add'>+    if defined?(Ractor)</div><div class='add'>+      Ractor.current[:__did_you_mean_formatter__] = formatter</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/core_ext/name_error.rb b/lib/did_you_mean/core_ext/name_error.rb<br/>new file mode 100644<br/>index 0000000000..8c170c4b90<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/core_ext/name_error.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/core_ext/name_error.rb</a></div><div class='hunk'>@@ -0,0 +1,57 @@</div><div class='add'>+module DidYouMean</div><div class='add'>+  module Correctable</div><div class='add'>+    if Exception.method_defined?(:detailed_message)</div><div class='add'>+      # just for compatibility</div><div class='add'>+      def original_message</div><div class='add'>+        # we cannot use alias here because</div><div class='add'>+        to_s</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def detailed_message(highlight: true, did_you_mean: true, **)</div><div class='add'>+        msg = super.dup</div><div class='add'>+</div><div class='add'>+        return msg unless did_you_mean</div><div class='add'>+</div><div class='add'>+        suggestion = DidYouMean.formatter.message_for(corrections)</div><div class='add'>+</div><div class='add'>+        if highlight</div><div class='add'>+          suggestion = suggestion.gsub(/.+/) { "\e[1m" + $&amp; + "\e[m" }</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        msg &lt;&lt; suggestion</div><div class='add'>+        msg</div><div class='add'>+      rescue</div><div class='add'>+        super</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      SKIP_TO_S_FOR_SUPER_LOOKUP = true</div><div class='add'>+      private_constant :SKIP_TO_S_FOR_SUPER_LOOKUP</div><div class='add'>+</div><div class='add'>+      def original_message</div><div class='add'>+        meth = method(:to_s)</div><div class='add'>+        while meth.owner.const_defined?(:SKIP_TO_S_FOR_SUPER_LOOKUP)</div><div class='add'>+          meth = meth.super_method</div><div class='add'>+        end</div><div class='add'>+        meth.call</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def to_s</div><div class='add'>+        msg = super.dup</div><div class='add'>+        suggestion = DidYouMean.formatter.message_for(corrections)</div><div class='add'>+</div><div class='add'>+        msg &lt;&lt; suggestion if !msg.include?(suggestion)</div><div class='add'>+        msg</div><div class='add'>+      rescue</div><div class='add'>+        super</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def corrections</div><div class='add'>+      @corrections ||= spell_checker.corrections</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def spell_checker</div><div class='add'>+      DidYouMean.spell_checkers[self.class.to_s].new(self)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/did_you_mean.gemspec b/lib/did_you_mean/did_you_mean.gemspec<br/>new file mode 100644<br/>index 0000000000..8fe5723129<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/did_you_mean.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/did_you_mean.gemspec</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+# coding: utf-8</div><div class='add'>+lib = File.expand_path('../lib', __FILE__)</div><div class='add'>+$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)</div><div class='add'>+begin</div><div class='add'>+  require_relative "lib/did_you_mean/version"</div><div class='add'>+rescue LoadError # Fallback to load version file in ruby core repository</div><div class='add'>+  require_relative "version"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "did_you_mean"</div><div class='add'>+  spec.version       = DidYouMean::VERSION</div><div class='add'>+  spec.authors       = ["Yuki Nishijima"]</div><div class='add'>+  spec.email         = ["mail@yukinishijima.net"]</div><div class='add'>+  spec.summary       = '"Did you mean?" experience in Ruby'</div><div class='add'>+  spec.description   = 'The gem that has been saving people from typos since 2014.'</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/did_you_mean"</div><div class='add'>+  spec.license       = "MIT"</div><div class='add'>+</div><div class='add'>+  spec.files         = `git ls-files`.split($/).reject{|path| path.start_with?('evaluation/') }</div><div class='add'>+  spec.test_files    = spec.files.grep(%r{^(test)/})</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+</div><div class='add'>+  spec.required_ruby_version = '&gt;= 2.5.0'</div><div class='add'>+</div><div class='add'>+  spec.add_development_dependency "rake"</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/experimental.rb b/lib/did_you_mean/experimental.rb<br/>new file mode 100644<br/>index 0000000000..f8e37e4532<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/experimental.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/experimental.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+warn "Experimental features in the did_you_mean gem has been removed " \</div><div class='add'>+     "and `require \"did_you_mean/experimental\"' has no effect."</div><div class='head'>diff --git a/lib/did_you_mean/formatter.rb b/lib/did_you_mean/formatter.rb<br/>new file mode 100644<br/>index 0000000000..c43748f707<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/formatter.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/formatter.rb</a></div><div class='hunk'>@@ -0,0 +1,44 @@</div><div class='add'>+# frozen-string-literal: true</div><div class='add'>+</div><div class='add'>+module DidYouMean</div><div class='add'>+  # The +DidYouMean::Formatter+ is the basic, default formatter for the</div><div class='add'>+  # gem. The formatter responds to the +message_for+ method and it returns a</div><div class='add'>+  # human readable string.</div><div class='add'>+  class Formatter</div><div class='add'>+</div><div class='add'>+    # Returns a human readable string that contains +corrections+. This</div><div class='add'>+    # formatter is designed to be less verbose to not take too much screen</div><div class='add'>+    # space while being helpful enough to the user.</div><div class='add'>+    #</div><div class='add'>+    # @example</div><div class='add'>+    #</div><div class='add'>+    #   formatter = DidYouMean::Formatter.new</div><div class='add'>+    #</div><div class='add'>+    #   # displays suggestions in two lines with the leading empty line</div><div class='add'>+    #   puts formatter.message_for(["methods", "method"])</div><div class='add'>+    #</div><div class='add'>+    #   Did you mean?  methods</div><div class='add'>+    #                   method</div><div class='add'>+    #   # =&gt; nil</div><div class='add'>+    #</div><div class='add'>+    #   # displays an empty line</div><div class='add'>+    #   puts formatter.message_for([])</div><div class='add'>+    #</div><div class='add'>+    #   # =&gt; nil</div><div class='add'>+    #</div><div class='add'>+    def self.message_for(corrections)</div><div class='add'>+      corrections.empty? ? "" : "\nDid you mean?  #{corrections.join("\n               ")}"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def message_for(corrections)</div><div class='add'>+      warn "The instance method #message_for has been deprecated. Please use the class method " \</div><div class='add'>+           "DidYouMean::Formatter.message_for(...) instead."</div><div class='add'>+</div><div class='add'>+      self.class.message_for(corrections)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  PlainFormatter = Formatter</div><div class='add'>+</div><div class='add'>+  deprecate_constant :PlainFormatter</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/formatters/plain_formatter.rb b/lib/did_you_mean/formatters/plain_formatter.rb<br/>new file mode 100644<br/>index 0000000000..d669588e0f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/formatters/plain_formatter.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/formatters/plain_formatter.rb</a></div><div class='hunk'>@@ -0,0 +1,4 @@</div><div class='add'>+require_relative '../formatter'</div><div class='add'>+</div><div class='add'>+warn "`require 'did_you_mean/formatters/plain_formatter'` is deprecated. Please `require 'did_you_mean/formatter'` " \</div><div class='add'>+     "instead."</div><div class='head'>diff --git a/lib/did_you_mean/formatters/verbose_formatter.rb b/lib/did_you_mean/formatters/verbose_formatter.rb<br/>new file mode 100644<br/>index 0000000000..f6623681f2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/formatters/verbose_formatter.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/formatters/verbose_formatter.rb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+# frozen-string-literal: true</div><div class='add'>+</div><div class='add'>+warn "`require 'did_you_mean/formatters/verbose_formatter'` is deprecated and falls back to the default formatter. "</div><div class='add'>+</div><div class='add'>+require_relative '../formatter'</div><div class='add'>+</div><div class='add'>+module DidYouMean</div><div class='add'>+  # For compatibility:</div><div class='add'>+  VerboseFormatter = Formatter</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/jaro_winkler.rb b/lib/did_you_mean/jaro_winkler.rb<br/>new file mode 100644<br/>index 0000000000..56db130af4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/jaro_winkler.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/jaro_winkler.rb</a></div><div class='hunk'>@@ -0,0 +1,87 @@</div><div class='add'>+module DidYouMean</div><div class='add'>+  module Jaro</div><div class='add'>+    module_function</div><div class='add'>+</div><div class='add'>+    def distance(str1, str2)</div><div class='add'>+      str1, str2 = str2, str1 if str1.length &gt; str2.length</div><div class='add'>+      length1, length2 = str1.length, str2.length</div><div class='add'>+</div><div class='add'>+      m          = 0.0</div><div class='add'>+      t          = 0.0</div><div class='add'>+      range      = (length2 / 2).floor - 1</div><div class='add'>+      range      = 0 if range &lt; 0</div><div class='add'>+      flags1     = 0</div><div class='add'>+      flags2     = 0</div><div class='add'>+</div><div class='add'>+      # Avoid duplicating enumerable objects</div><div class='add'>+      str1_codepoints = str1.codepoints</div><div class='add'>+      str2_codepoints = str2.codepoints</div><div class='add'>+</div><div class='add'>+      i = 0</div><div class='add'>+      while i &lt; length1</div><div class='add'>+        last = i + range</div><div class='add'>+        j    = (i &gt;= range) ? i - range : 0</div><div class='add'>+</div><div class='add'>+        while j &lt;= last</div><div class='add'>+          if flags2[j] == 0 &amp;&amp; str1_codepoints[i] == str2_codepoints[j]</div><div class='add'>+            flags2 |= (1 &lt;&lt; j)</div><div class='add'>+            flags1 |= (1 &lt;&lt; i)</div><div class='add'>+            m += 1</div><div class='add'>+            break</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          j += 1</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        i += 1</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      k = i = 0</div><div class='add'>+      while i &lt; length1</div><div class='add'>+        if flags1[i] != 0</div><div class='add'>+          j = index = k</div><div class='add'>+</div><div class='add'>+          k = while j &lt; length2</div><div class='add'>+            index = j</div><div class='add'>+            break(j + 1) if flags2[j] != 0</div><div class='add'>+</div><div class='add'>+            j += 1</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          t += 1 if str1_codepoints[i] != str2_codepoints[index]</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        i += 1</div><div class='add'>+      end</div><div class='add'>+      t = (t / 2).floor</div><div class='add'>+</div><div class='add'>+      m == 0 ? 0 : (m / length1 + m / length2 + (m - t) / m) / 3</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  module JaroWinkler</div><div class='add'>+    WEIGHT    = 0.1</div><div class='add'>+    THRESHOLD = 0.7</div><div class='add'>+</div><div class='add'>+    module_function</div><div class='add'>+</div><div class='add'>+    def distance(str1, str2)</div><div class='add'>+      jaro_distance = Jaro.distance(str1, str2)</div><div class='add'>+</div><div class='add'>+      if jaro_distance &gt; THRESHOLD</div><div class='add'>+        codepoints2  = str2.codepoints</div><div class='add'>+        prefix_bonus = 0</div><div class='add'>+</div><div class='add'>+        i = 0</div><div class='add'>+        str1.each_codepoint do |char1|</div><div class='add'>+          char1 == codepoints2[i] &amp;&amp; i &lt; 4 ? prefix_bonus += 1 : break</div><div class='add'>+          i += 1</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        jaro_distance + (prefix_bonus * WEIGHT * (1 - jaro_distance))</div><div class='add'>+      else</div><div class='add'>+        jaro_distance</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/levenshtein.rb b/lib/did_you_mean/levenshtein.rb<br/>new file mode 100644<br/>index 0000000000..098053470f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/levenshtein.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/levenshtein.rb</a></div><div class='hunk'>@@ -0,0 +1,57 @@</div><div class='add'>+module DidYouMean</div><div class='add'>+  module Levenshtein # :nodoc:</div><div class='add'>+    # This code is based directly on the Text gem implementation</div><div class='add'>+    # Copyright (c) 2006-2013 Paul Battley, Michael Neumann, Tim Fletcher.</div><div class='add'>+    #</div><div class='add'>+    # Returns a value representing the "cost" of transforming str1 into str2</div><div class='add'>+    def distance(str1, str2)</div><div class='add'>+      n = str1.length</div><div class='add'>+      m = str2.length</div><div class='add'>+      return m if n.zero?</div><div class='add'>+      return n if m.zero?</div><div class='add'>+</div><div class='add'>+      d = (0..m).to_a</div><div class='add'>+      x = nil</div><div class='add'>+</div><div class='add'>+      # to avoid duplicating an enumerable object, create it outside of the loop</div><div class='add'>+      str2_codepoints = str2.codepoints</div><div class='add'>+</div><div class='add'>+      str1.each_codepoint.with_index(1) do |char1, i|</div><div class='add'>+        j = 0</div><div class='add'>+        while j &lt; m</div><div class='add'>+          cost = (char1 == str2_codepoints[j]) ? 0 : 1</div><div class='add'>+          x = min3(</div><div class='add'>+            d[j+1] + 1, # insertion</div><div class='add'>+            i + 1,      # deletion</div><div class='add'>+            d[j] + cost # substitution</div><div class='add'>+          )</div><div class='add'>+          d[j] = i</div><div class='add'>+          i = x</div><div class='add'>+</div><div class='add'>+          j += 1</div><div class='add'>+        end</div><div class='add'>+        d[m] = x</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      x</div><div class='add'>+    end</div><div class='add'>+    module_function :distance</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    # detects the minimum value out of three arguments. This method is</div><div class='add'>+    # faster than `[a, b, c].min` and puts less GC pressure.</div><div class='add'>+    # See https://github.com/ruby/did_you_mean/pull/1 for a performance</div><div class='add'>+    # benchmark.</div><div class='add'>+    def min3(a, b, c)</div><div class='add'>+      if a &lt; b &amp;&amp; a &lt; c</div><div class='add'>+        a</div><div class='add'>+      elsif b &lt; c</div><div class='add'>+        b</div><div class='add'>+      else</div><div class='add'>+        c</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    module_function :min3</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/spell_checker.rb b/lib/did_you_mean/spell_checker.rb<br/>new file mode 100644<br/>index 0000000000..37da2fc7a6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/spell_checker.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/spell_checker.rb</a></div><div class='hunk'>@@ -0,0 +1,46 @@</div><div class='add'>+# frozen-string-literal: true</div><div class='add'>+</div><div class='add'>+require_relative "levenshtein"</div><div class='add'>+require_relative "jaro_winkler"</div><div class='add'>+</div><div class='add'>+module DidYouMean</div><div class='add'>+  class SpellChecker</div><div class='add'>+    def initialize(dictionary:)</div><div class='add'>+      @dictionary = dictionary</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def correct(input)</div><div class='add'>+      normalized_input = normalize(input)</div><div class='add'>+      threshold = normalized_input.length &gt; 3 ? 0.834 : 0.77</div><div class='add'>+</div><div class='add'>+      words = @dictionary.select { |word| JaroWinkler.distance(normalize(word), normalized_input) &gt;= threshold }</div><div class='add'>+      words.reject! { |word| input.to_s == word.to_s }</div><div class='add'>+      words.sort_by! { |word| JaroWinkler.distance(word.to_s, normalized_input) }</div><div class='add'>+      words.reverse!</div><div class='add'>+</div><div class='add'>+      # Correct mistypes</div><div class='add'>+      threshold   = (normalized_input.length * 0.25).ceil</div><div class='add'>+      corrections = words.select { |c| Levenshtein.distance(normalize(c), normalized_input) &lt;= threshold }</div><div class='add'>+</div><div class='add'>+      # Correct misspells</div><div class='add'>+      if corrections.empty?</div><div class='add'>+        corrections = words.select do |word|</div><div class='add'>+          word   = normalize(word)</div><div class='add'>+          length = normalized_input.length &lt; word.length ? normalized_input.length : word.length</div><div class='add'>+</div><div class='add'>+          Levenshtein.distance(word, normalized_input) &lt; length</div><div class='add'>+        end.first(1)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      corrections</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def normalize(str_or_symbol) #:nodoc:</div><div class='add'>+      str = str_or_symbol.to_s.downcase</div><div class='add'>+      str.tr!("@", "")</div><div class='add'>+      str</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/spell_checkers/key_error_checker.rb b/lib/did_you_mean/spell_checkers/key_error_checker.rb<br/>new file mode 100644<br/>index 0000000000..be4bea7789<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/spell_checkers/key_error_checker.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/spell_checkers/key_error_checker.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+require_relative "../spell_checker"</div><div class='add'>+</div><div class='add'>+module DidYouMean</div><div class='add'>+  class KeyErrorChecker</div><div class='add'>+    def initialize(key_error)</div><div class='add'>+      @key = key_error.key</div><div class='add'>+      @keys = key_error.receiver.keys</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def corrections</div><div class='add'>+      @corrections ||= exact_matches.empty? ? SpellChecker.new(dictionary: @keys).correct(@key).map(&amp;:inspect) : exact_matches</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def exact_matches</div><div class='add'>+      @exact_matches ||= @keys.select { |word| @key == word.to_s }.map(&amp;:inspect)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/spell_checkers/method_name_checker.rb b/lib/did_you_mean/spell_checkers/method_name_checker.rb<br/>new file mode 100644<br/>index 0000000000..b5cbbb5da6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/spell_checkers/method_name_checker.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/spell_checkers/method_name_checker.rb</a></div><div class='hunk'>@@ -0,0 +1,79 @@</div><div class='add'>+require_relative "../spell_checker"</div><div class='add'>+</div><div class='add'>+module DidYouMean</div><div class='add'>+  class MethodNameChecker</div><div class='add'>+    attr_reader :method_name, :receiver</div><div class='add'>+</div><div class='add'>+    NAMES_TO_EXCLUDE = { NilClass =&gt; nil.methods }</div><div class='add'>+    NAMES_TO_EXCLUDE.default = []</div><div class='add'>+    Ractor.make_shareable(NAMES_TO_EXCLUDE) if defined?(Ractor)</div><div class='add'>+</div><div class='add'>+    # +MethodNameChecker::RB_RESERVED_WORDS+ is the list of reserved words in</div><div class='add'>+    # Ruby that take an argument. Unlike</div><div class='add'>+    # +VariableNameChecker::RB_RESERVED_WORDS+, these reserved words require</div><div class='add'>+    # an argument, and a +NoMethodError+ is raised due to the presence of the</div><div class='add'>+    # argument.</div><div class='add'>+    #</div><div class='add'>+    # The +MethodNameChecker+ will use this list to suggest a reversed word if</div><div class='add'>+    # a +NoMethodError+ is raised and found closest matches.</div><div class='add'>+    #</div><div class='add'>+    # Also see +VariableNameChecker::RB_RESERVED_WORDS+.</div><div class='add'>+    RB_RESERVED_WORDS = %i(</div><div class='add'>+      alias</div><div class='add'>+      case</div><div class='add'>+      def</div><div class='add'>+      defined?</div><div class='add'>+      elsif</div><div class='add'>+      end</div><div class='add'>+      ensure</div><div class='add'>+      for</div><div class='add'>+      rescue</div><div class='add'>+      super</div><div class='add'>+      undef</div><div class='add'>+      unless</div><div class='add'>+      until</div><div class='add'>+      when</div><div class='add'>+      while</div><div class='add'>+      yield</div><div class='add'>+    )</div><div class='add'>+</div><div class='add'>+    Ractor.make_shareable(RB_RESERVED_WORDS) if defined?(Ractor)</div><div class='add'>+</div><div class='add'>+    def initialize(exception)</div><div class='add'>+      @method_name  = exception.name</div><div class='add'>+      @receiver     = exception.receiver</div><div class='add'>+      @private_call = exception.respond_to?(:private_call?) ? exception.private_call? : false</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def corrections</div><div class='add'>+      @corrections ||= begin</div><div class='add'>+                         dictionary = method_names</div><div class='add'>+                         dictionary = RB_RESERVED_WORDS + dictionary if @private_call</div><div class='add'>+</div><div class='add'>+                         SpellChecker.new(dictionary: dictionary).correct(method_name) - names_to_exclude</div><div class='add'>+                       end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def method_names</div><div class='add'>+      if Object === receiver</div><div class='add'>+        method_names = receiver.methods + receiver.singleton_methods</div><div class='add'>+        method_names += receiver.private_methods if @private_call</div><div class='add'>+        method_names.uniq!</div><div class='add'>+        # Assume that people trying to use a writer are not interested in a reader</div><div class='add'>+        # and vice versa</div><div class='add'>+        if method_name.match?(/=\Z/)</div><div class='add'>+          method_names.select! { |name| name.match?(/=\Z/) }</div><div class='add'>+        else</div><div class='add'>+          method_names.reject! { |name| name.match?(/=\Z/) }</div><div class='add'>+        end</div><div class='add'>+        method_names</div><div class='add'>+      else</div><div class='add'>+        []</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def names_to_exclude</div><div class='add'>+      Object === receiver ? NAMES_TO_EXCLUDE[receiver.class] : []</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/spell_checkers/name_error_checkers.rb b/lib/did_you_mean/spell_checkers/name_error_checkers.rb<br/>new file mode 100644<br/>index 0000000000..6e2aaa4cb1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/spell_checkers/name_error_checkers.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/spell_checkers/name_error_checkers.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+require_relative 'name_error_checkers/class_name_checker'</div><div class='add'>+require_relative 'name_error_checkers/variable_name_checker'</div><div class='add'>+</div><div class='add'>+module DidYouMean</div><div class='add'>+  class &lt;&lt; (NameErrorCheckers = Object.new)</div><div class='add'>+    def new(exception)</div><div class='add'>+      case exception.original_message</div><div class='add'>+      when /uninitialized constant/</div><div class='add'>+        ClassNameChecker</div><div class='add'>+      when /undefined local variable or method/,</div><div class='add'>+           /undefined method/,</div><div class='add'>+           /uninitialized class variable/,</div><div class='add'>+           /no member '.*' in struct/</div><div class='add'>+        VariableNameChecker</div><div class='add'>+      else</div><div class='add'>+        NullChecker</div><div class='add'>+      end.new(exception)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb b/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb<br/>new file mode 100644<br/>index 0000000000..924265b929<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb</a></div><div class='hunk'>@@ -0,0 +1,49 @@</div><div class='add'>+# frozen-string-literal: true</div><div class='add'>+</div><div class='add'>+require_relative "../../spell_checker"</div><div class='add'>+</div><div class='add'>+module DidYouMean</div><div class='add'>+  class ClassNameChecker</div><div class='add'>+    attr_reader :class_name</div><div class='add'>+</div><div class='add'>+    def initialize(exception)</div><div class='add'>+      @class_name, @receiver, @original_message = exception.name, exception.receiver, exception.original_message</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def corrections</div><div class='add'>+      @corrections ||= SpellChecker.new(dictionary: class_names)</div><div class='add'>+                         .correct(class_name)</div><div class='add'>+                         .map(&amp;:full_name)</div><div class='add'>+                         .reject {|qualified_name| @original_message.include?(qualified_name) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def class_names</div><div class='add'>+      scopes.flat_map do |scope|</div><div class='add'>+        scope.constants.map do |c|</div><div class='add'>+          ClassName.new(c, scope == Object ? "" : "#{scope}::")</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def scopes</div><div class='add'>+      @scopes ||= @receiver.to_s.split("::").inject([Object]) do |_scopes, scope|</div><div class='add'>+        _scopes &lt;&lt; _scopes.last.const_get(scope)</div><div class='add'>+      end.uniq</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    class ClassName &lt; String</div><div class='add'>+      attr :namespace</div><div class='add'>+</div><div class='add'>+      def initialize(name, namespace = '')</div><div class='add'>+        super(name.to_s)</div><div class='add'>+        @namespace = namespace</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def full_name</div><div class='add'>+        self.class.new("#{namespace}#{self}")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private_constant :ClassName</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb b/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb<br/>new file mode 100644<br/>index 0000000000..9a6e04fe64<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb</a></div><div class='hunk'>@@ -0,0 +1,85 @@</div><div class='add'>+# frozen-string-literal: true</div><div class='add'>+</div><div class='add'>+require_relative "../../spell_checker"</div><div class='add'>+</div><div class='add'>+module DidYouMean</div><div class='add'>+  class VariableNameChecker</div><div class='add'>+    attr_reader :name, :method_names, :lvar_names, :ivar_names, :cvar_names</div><div class='add'>+</div><div class='add'>+    NAMES_TO_EXCLUDE = { 'foo' =&gt; [:fork, :for] }</div><div class='add'>+    NAMES_TO_EXCLUDE.default = []</div><div class='add'>+    Ractor.make_shareable(NAMES_TO_EXCLUDE) if defined?(Ractor)</div><div class='add'>+</div><div class='add'>+    # +VariableNameChecker::RB_RESERVED_WORDS+ is the list of all reserved</div><div class='add'>+    # words in Ruby. They could be declared like methods are, and a typo would</div><div class='add'>+    # cause Ruby to raise a +NameError+ because of the way they are declared.</div><div class='add'>+    #</div><div class='add'>+    # The +:VariableNameChecker+ will use this list to suggest a reversed word</div><div class='add'>+    # if a +NameError+ is raised and found closest matches, excluding:</div><div class='add'>+    #</div><div class='add'>+    #   * +do+</div><div class='add'>+    #   * +if+</div><div class='add'>+    #   * +in+</div><div class='add'>+    #   * +or+</div><div class='add'>+    #</div><div class='add'>+    # Also see +MethodNameChecker::RB_RESERVED_WORDS+.</div><div class='add'>+    RB_RESERVED_WORDS = %i(</div><div class='add'>+      BEGIN</div><div class='add'>+      END</div><div class='add'>+      alias</div><div class='add'>+      and</div><div class='add'>+      begin</div><div class='add'>+      break</div><div class='add'>+      case</div><div class='add'>+      class</div><div class='add'>+      def</div><div class='add'>+      defined?</div><div class='add'>+      else</div><div class='add'>+      elsif</div><div class='add'>+      end</div><div class='add'>+      ensure</div><div class='add'>+      false</div><div class='add'>+      for</div><div class='add'>+      module</div><div class='add'>+      next</div><div class='add'>+      nil</div><div class='add'>+      not</div><div class='add'>+      redo</div><div class='add'>+      rescue</div><div class='add'>+      retry</div><div class='add'>+      return</div><div class='add'>+      self</div><div class='add'>+      super</div><div class='add'>+      then</div><div class='add'>+      true</div><div class='add'>+      undef</div><div class='add'>+      unless</div><div class='add'>+      until</div><div class='add'>+      when</div><div class='add'>+      while</div><div class='add'>+      yield</div><div class='add'>+      __LINE__</div><div class='add'>+      __FILE__</div><div class='add'>+      __ENCODING__</div><div class='add'>+    )</div><div class='add'>+</div><div class='add'>+    Ractor.make_shareable(RB_RESERVED_WORDS) if defined?(Ractor)</div><div class='add'>+</div><div class='add'>+    def initialize(exception)</div><div class='add'>+      @name       = exception.name.to_s.tr("@", "")</div><div class='add'>+      @lvar_names = exception.respond_to?(:local_variables) ? exception.local_variables : []</div><div class='add'>+      receiver    = exception.receiver</div><div class='add'>+</div><div class='add'>+      @method_names = receiver.methods + receiver.private_methods</div><div class='add'>+      @ivar_names   = receiver.instance_variables</div><div class='add'>+      @cvar_names   = receiver.class.class_variables</div><div class='add'>+      @cvar_names  += receiver.class_variables if receiver.kind_of?(Module)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def corrections</div><div class='add'>+      @corrections ||= SpellChecker</div><div class='add'>+                     .new(dictionary: (RB_RESERVED_WORDS + lvar_names + method_names + ivar_names + cvar_names))</div><div class='add'>+                     .correct(name).uniq - NAMES_TO_EXCLUDE[@name]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/spell_checkers/null_checker.rb b/lib/did_you_mean/spell_checkers/null_checker.rb<br/>new file mode 100644<br/>index 0000000000..1306f69d4a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/spell_checkers/null_checker.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/spell_checkers/null_checker.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+module DidYouMean</div><div class='add'>+  class NullChecker</div><div class='add'>+    def initialize(*);  end</div><div class='add'>+    def corrections; [] end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/spell_checkers/pattern_key_name_checker.rb b/lib/did_you_mean/spell_checkers/pattern_key_name_checker.rb<br/>new file mode 100644<br/>index 0000000000..ed263c8f93<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/spell_checkers/pattern_key_name_checker.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/spell_checkers/pattern_key_name_checker.rb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+require_relative "../spell_checker"</div><div class='add'>+</div><div class='add'>+module DidYouMean</div><div class='add'>+  class PatternKeyNameChecker</div><div class='add'>+    def initialize(no_matching_pattern_key_error)</div><div class='add'>+      @key = no_matching_pattern_key_error.key</div><div class='add'>+      @keys = no_matching_pattern_key_error.matchee.keys</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def corrections</div><div class='add'>+      @corrections ||= exact_matches.empty? ? SpellChecker.new(dictionary: @keys).correct(@key).map(&amp;:inspect) : exact_matches</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def exact_matches</div><div class='add'>+      @exact_matches ||= @keys.select { |word| @key == word.to_s }.map(&amp;:inspect)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/spell_checkers/require_path_checker.rb b/lib/did_you_mean/spell_checkers/require_path_checker.rb<br/>new file mode 100644<br/>index 0000000000..586ced37de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/spell_checkers/require_path_checker.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/spell_checkers/require_path_checker.rb</a></div><div class='hunk'>@@ -0,0 +1,39 @@</div><div class='add'>+# frozen-string-literal: true</div><div class='add'>+</div><div class='add'>+require_relative "../spell_checker"</div><div class='add'>+require_relative "../tree_spell_checker"</div><div class='add'>+require "rbconfig"</div><div class='add'>+</div><div class='add'>+module DidYouMean</div><div class='add'>+  class RequirePathChecker</div><div class='add'>+    attr_reader :path</div><div class='add'>+</div><div class='add'>+    INITIAL_LOAD_PATH = $LOAD_PATH.dup.freeze</div><div class='add'>+    Ractor.make_shareable(INITIAL_LOAD_PATH) if defined?(Ractor)</div><div class='add'>+</div><div class='add'>+    ENV_SPECIFIC_EXT = ".#{RbConfig::CONFIG["DLEXT"]}"</div><div class='add'>+    Ractor.make_shareable(ENV_SPECIFIC_EXT) if defined?(Ractor)</div><div class='add'>+</div><div class='add'>+    private_constant :INITIAL_LOAD_PATH, :ENV_SPECIFIC_EXT</div><div class='add'>+</div><div class='add'>+    def self.requireables</div><div class='add'>+      @requireables ||= INITIAL_LOAD_PATH</div><div class='add'>+                          .flat_map {|path| Dir.glob("**/???*{.rb,#{ENV_SPECIFIC_EXT}}", base: path) }</div><div class='add'>+                          .map {|path| path.chomp!(".rb") || path.chomp!(ENV_SPECIFIC_EXT) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def initialize(exception)</div><div class='add'>+      @path = exception.path</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def corrections</div><div class='add'>+      @corrections ||= begin</div><div class='add'>+                         threshold     = path.size * 2</div><div class='add'>+                         dictionary    = self.class.requireables.reject {|str| str.size &gt;= threshold }</div><div class='add'>+                         spell_checker = path.include?("/") ? TreeSpellChecker : SpellChecker</div><div class='add'>+</div><div class='add'>+                         spell_checker.new(dictionary: dictionary).correct(path).uniq</div><div class='add'>+                       end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/tree_spell_checker.rb b/lib/did_you_mean/tree_spell_checker.rb<br/>new file mode 100644<br/>index 0000000000..799f07fcf0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/tree_spell_checker.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/tree_spell_checker.rb</a></div><div class='hunk'>@@ -0,0 +1,109 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+module DidYouMean</div><div class='add'>+  # spell checker for a dictionary that has a tree</div><div class='add'>+  # structure, see doc/tree_spell_checker_api.md</div><div class='add'>+  class TreeSpellChecker</div><div class='add'>+    attr_reader :dictionary, :separator, :augment</div><div class='add'>+</div><div class='add'>+    def initialize(dictionary:, separator: '/', augment: nil)</div><div class='add'>+      @dictionary = dictionary</div><div class='add'>+      @separator = separator</div><div class='add'>+      @augment = augment</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def correct(input)</div><div class='add'>+      plausibles = plausible_dimensions(input)</div><div class='add'>+      return fall_back_to_normal_spell_check(input) if plausibles.empty?</div><div class='add'>+</div><div class='add'>+      suggestions = find_suggestions(input, plausibles)</div><div class='add'>+      return fall_back_to_normal_spell_check(input) if suggestions.empty?</div><div class='add'>+</div><div class='add'>+      suggestions</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def dictionary_without_leaves</div><div class='add'>+      @dictionary_without_leaves ||= dictionary.map { |word| word.split(separator)[0..-2] }.uniq</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def tree_depth</div><div class='add'>+      @tree_depth ||= dictionary_without_leaves.max { |a, b| a.size &lt;=&gt; b.size }.size</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def dimensions</div><div class='add'>+      @dimensions ||= tree_depth.times.map do |index|</div><div class='add'>+                        dictionary_without_leaves.map { |element| element[index] }.compact.uniq</div><div class='add'>+                      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def find_leaves(path)</div><div class='add'>+      path_with_separator = "#{path}#{separator}"</div><div class='add'>+</div><div class='add'>+      dictionary</div><div class='add'>+        .select {|str| str.include?(path_with_separator) }</div><div class='add'>+        .map {|str| str.gsub(path_with_separator, '') }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def plausible_dimensions(input)</div><div class='add'>+      input.split(separator)[0..-2]</div><div class='add'>+        .map</div><div class='add'>+        .with_index { |element, index| correct_element(dimensions[index], element) if dimensions[index] }</div><div class='add'>+        .compact</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def possible_paths(states)</div><div class='add'>+      states.map { |state| state.join(separator) }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    def find_suggestions(input, plausibles)</div><div class='add'>+      states = plausibles[0].product(*plausibles[1..-1])</div><div class='add'>+      paths  = possible_paths(states)</div><div class='add'>+      leaf   = input.split(separator).last</div><div class='add'>+</div><div class='add'>+      find_ideas(paths, leaf)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def fall_back_to_normal_spell_check(input)</div><div class='add'>+      return [] unless augment</div><div class='add'>+</div><div class='add'>+      ::DidYouMean::SpellChecker.new(dictionary: dictionary).correct(input)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def find_ideas(paths, leaf)</div><div class='add'>+      paths.flat_map do |path|</div><div class='add'>+        names = find_leaves(path)</div><div class='add'>+        ideas = correct_element(names, leaf)</div><div class='add'>+</div><div class='add'>+        ideas_to_paths(ideas, leaf, names, path)</div><div class='add'>+      end.compact</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def ideas_to_paths(ideas, leaf, names, path)</div><div class='add'>+      if ideas.empty?</div><div class='add'>+        nil</div><div class='add'>+      elsif names.include?(leaf)</div><div class='add'>+        ["#{path}#{separator}#{leaf}"]</div><div class='add'>+      else</div><div class='add'>+        ideas.map {|str| "#{path}#{separator}#{str}" }</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def correct_element(names, element)</div><div class='add'>+      return names if names.size == 1</div><div class='add'>+</div><div class='add'>+      str = normalize(element)</div><div class='add'>+</div><div class='add'>+      return [str] if names.include?(str)</div><div class='add'>+</div><div class='add'>+      ::DidYouMean::SpellChecker.new(dictionary: names).correct(str)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def normalize(str)</div><div class='add'>+      str.downcase!</div><div class='add'>+      str.tr!('@', ' ') if str.include?('@')</div><div class='add'>+      str</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/did_you_mean/verbose.rb b/lib/did_you_mean/verbose.rb<br/>new file mode 100644<br/>index 0000000000..1ff19aef80<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/verbose.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/verbose.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+warn "The verbose formatter has been removed and now `require 'did_you_mean/verbose'` has no effect. Please " \</div><div class='add'>+     "remove this call."</div><div class='head'>diff --git a/lib/did_you_mean/version.rb b/lib/did_you_mean/version.rb<br/>new file mode 100644<br/>index 0000000000..5745ca1efd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/did_you_mean/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/did_you_mean/version.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+module DidYouMean</div><div class='add'>+  VERSION = "1.6.3".freeze</div><div class='add'>+end</div><div class='head'>diff --git a/lib/drb/drb.gemspec b/lib/drb/drb.gemspec<br/>new file mode 100644<br/>index 0000000000..c9d7e40a51<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/drb/drb.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/drb/drb.gemspec</a></div><div class='hunk'>@@ -0,0 +1,43 @@</div><div class='add'>+begin</div><div class='add'>+  require_relative "lib/drb/version"</div><div class='add'>+rescue LoadError # Fallback to load version file in ruby core repository</div><div class='add'>+  require_relative "version"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "drb"</div><div class='add'>+  spec.version       = DRb::VERSION</div><div class='add'>+  spec.authors       = ["Masatoshi SEKI"]</div><div class='add'>+  spec.email         = ["seki@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Distributed object system for Ruby}</div><div class='add'>+  spec.description   = %q{Distributed object system for Ruby}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/drb"</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 2.7.0")</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  spec.files         = %w[</div><div class='add'>+    LICENSE.txt</div><div class='add'>+    drb.gemspec</div><div class='add'>+    lib/drb.rb</div><div class='add'>+    lib/drb/acl.rb</div><div class='add'>+    lib/drb/drb.rb</div><div class='add'>+    lib/drb/eq.rb</div><div class='add'>+    lib/drb/extserv.rb</div><div class='add'>+    lib/drb/extservm.rb</div><div class='add'>+    lib/drb/gw.rb</div><div class='add'>+    lib/drb/invokemethod.rb</div><div class='add'>+    lib/drb/observer.rb</div><div class='add'>+    lib/drb/ssl.rb</div><div class='add'>+    lib/drb/timeridconv.rb</div><div class='add'>+    lib/drb/unix.rb</div><div class='add'>+    lib/drb/version.rb</div><div class='add'>+    lib/drb/weakidconv.rb</div><div class='add'>+  ]</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+</div><div class='add'>+  spec.add_dependency "ruby2_keywords"</div><div class='add'>+end</div><div class='head'>diff --git a/lib/drb/drb.rb b/lib/drb/drb.rb<br/>index de57362f24..23181bb834 100644<br/>--- a/<a href='/ruby.git/tree/lib/drb/drb.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/drb.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/drb/drb.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/drb/drb.rb</a></div><div class='hunk'>@@ -48,6 +48,7 @@</div><div class='ctx'> </div><div class='ctx'> require 'socket'</div><div class='ctx'> require 'io/wait'</div><div class='add'>+require 'monitor'</div><div class='ctx'> require_relative 'eq'</div><div class='ctx'> </div><div class='ctx'> #</div><div class='hunk'>@@ -159,8 +160,6 @@ require_relative 'eq'</div><div class='ctx'> #   # The object that handles requests on the server</div><div class='ctx'> #   FRONT_OBJECT=TimeServer.new</div><div class='ctx'> #</div><div class='del'>-#   $SAFE = 1   # disable eval() and friends</div><div class='del'>-#</div><div class='ctx'> #   DRb.start_service(URI, FRONT_OBJECT)</div><div class='ctx'> #   # Wait for the drb server thread to finish before exiting.</div><div class='ctx'> #   DRb.thread.join</div><div class='hunk'>@@ -234,7 +233,7 @@ require_relative 'eq'</div><div class='ctx'> #       def get_logger(name)</div><div class='ctx'> #           if !@loggers.has_key? name</div><div class='ctx'> #               # make the filename safe, then declare it to be so</div><div class='del'>-#               fname = name.gsub(/[.\/\\\:]/, "_").untaint</div><div class='add'>+#               fname = name.gsub(/[.\/\\\:]/, "_")</div><div class='ctx'> #               @loggers[name] = Logger.new(name, @basedir + "/" + fname)</div><div class='ctx'> #           end</div><div class='ctx'> #           return @loggers[name]</div><div class='hunk'>@@ -244,8 +243,6 @@ require_relative 'eq'</div><div class='ctx'> #</div><div class='ctx'> #   FRONT_OBJECT=LoggerFactory.new("/tmp/dlog")</div><div class='ctx'> #</div><div class='del'>-#   $SAFE = 1   # disable eval() and friends</div><div class='del'>-#</div><div class='ctx'> #   DRb.start_service(URI, FRONT_OBJECT)</div><div class='ctx'> #   DRb.thread.join</div><div class='ctx'> #</div><div class='hunk'>@@ -285,10 +282,7 @@ require_relative 'eq'</div><div class='ctx'> #    ro.instance_eval("`rm -rf *`")</div><div class='ctx'> #</div><div class='ctx'> # The dangers posed by instance_eval and friends are such that a</div><div class='del'>-# DRbServer should generally be run with $SAFE set to at least</div><div class='del'>-# level 1.  This will disable eval() and related calls on strings</div><div class='del'>-# passed across the wire.  The sample usage code given above follows</div><div class='del'>-# this practice.</div><div class='add'>+# DRbServer should only be used when clients are trusted.</div><div class='ctx'> #</div><div class='ctx'> # A DRbServer can be configured with an access control list to</div><div class='ctx'> # selectively allow or deny access from specified IP addresses.  The</div><div class='hunk'>@@ -377,7 +371,12 @@ module DRb</div><div class='ctx'>     # This implementation returns the object's __id__ in the local</div><div class='ctx'>     # object space.</div><div class='ctx'>     def to_id(obj)</div><div class='del'>-      obj.nil? ? nil : obj.__id__</div><div class='add'>+      case obj</div><div class='add'>+      when Object</div><div class='add'>+        obj.nil? ? nil : obj.__id__</div><div class='add'>+      when BasicObject</div><div class='add'>+        obj.__id__</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -560,7 +559,14 @@ module DRb</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def dump(obj, error=false)  # :nodoc:</div><div class='del'>-      obj = make_proxy(obj, error) if obj.kind_of? DRbUndumped</div><div class='add'>+      case obj</div><div class='add'>+      when DRbUndumped</div><div class='add'>+        obj = make_proxy(obj, error)</div><div class='add'>+      when Object</div><div class='add'>+        # nothing</div><div class='add'>+      else</div><div class='add'>+        obj = make_proxy(obj, error)</div><div class='add'>+      end</div><div class='ctx'>       begin</div><div class='ctx'>         str = Marshal::dump(obj)</div><div class='ctx'>       rescue</div><div class='hunk'>@@ -588,16 +594,9 @@ module DRb</div><div class='ctx'>       raise(DRbConnError, 'premature marshal format(can\'t read)') if str.size &lt; sz</div><div class='ctx'>       DRb.mutex.synchronize do</div><div class='ctx'>         begin</div><div class='del'>-          save = Thread.current[:drb_untaint]</div><div class='del'>-          Thread.current[:drb_untaint] = []</div><div class='ctx'>           Marshal::load(str)</div><div class='ctx'>         rescue NameError, ArgumentError</div><div class='ctx'>           DRbUnknown.new($!, str)</div><div class='del'>-        ensure</div><div class='del'>-          Thread.current[:drb_untaint].each do |x|</div><div class='del'>-            x.untaint</div><div class='del'>-          end</div><div class='del'>-          Thread.current[:drb_untaint] = save</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -837,8 +836,6 @@ module DRb</div><div class='ctx'>     # URI protocols.</div><div class='ctx'>     def self.open(uri, config)</div><div class='ctx'>       host, port, = parse_uri(uri)</div><div class='del'>-      host.untaint</div><div class='del'>-      port.untaint</div><div class='ctx'>       soc = TCPSocket.open(host, port)</div><div class='ctx'>       self.new(uri, soc, config)</div><div class='ctx'>     end</div><div class='hunk'>@@ -1011,6 +1008,8 @@ module DRb</div><div class='ctx'> </div><div class='ctx'>     def set_sockopt(soc) # :nodoc:</div><div class='ctx'>       soc.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)</div><div class='add'>+    rescue IOError, Errno::ECONNRESET, Errno::EINVAL</div><div class='add'>+      # closed/shutdown socket, ignore error</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -1053,9 +1052,6 @@ module DRb</div><div class='ctx'> </div><div class='ctx'>       if DRb.here?(uri)</div><div class='ctx'>         obj = DRb.to_obj(ref)</div><div class='del'>-        if ((! obj.tainted?) &amp;&amp; Thread.current[:drb_untaint])</div><div class='del'>-          Thread.current[:drb_untaint].push(obj)</div><div class='del'>-        end</div><div class='ctx'>         return obj</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -1092,7 +1088,14 @@ module DRb</div><div class='ctx'>     def initialize(obj, uri=nil)</div><div class='ctx'>       @uri = nil</div><div class='ctx'>       @ref = nil</div><div class='del'>-      if obj.nil?</div><div class='add'>+      case obj</div><div class='add'>+      when Object</div><div class='add'>+        is_nil = obj.nil?</div><div class='add'>+      when BasicObject</div><div class='add'>+        is_nil = false</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if is_nil</div><div class='ctx'>         return if uri.nil?</div><div class='ctx'>         @uri, option = DRbProtocol.uri_option(uri, DRb.config)</div><div class='ctx'>         @ref = DRbURIOption.new(option) unless option.nil?</div><div class='hunk'>@@ -1128,7 +1131,7 @@ module DRb</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Routes method calls to the referenced remote object.</div><div class='del'>-    def method_missing(msg_id, *a, &amp;b)</div><div class='add'>+    ruby2_keywords def method_missing(msg_id, *a, &amp;b)</div><div class='ctx'>       if DRb.here?(@uri)</div><div class='ctx'>         obj = DRb.to_obj(@ref)</div><div class='ctx'>         DRb.current_server.check_insecure_method(obj, msg_id)</div><div class='hunk'>@@ -1192,6 +1195,54 @@ module DRb</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  class ThreadObject</div><div class='add'>+    include MonitorMixin</div><div class='add'>+</div><div class='add'>+    def initialize(&amp;blk)</div><div class='add'>+      super()</div><div class='add'>+      @wait_ev = new_cond</div><div class='add'>+      @req_ev = new_cond</div><div class='add'>+      @res_ev = new_cond</div><div class='add'>+      @status = :wait</div><div class='add'>+      @req = nil</div><div class='add'>+      @res = nil</div><div class='add'>+      @thread = Thread.new(self, &amp;blk)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def alive?</div><div class='add'>+      @thread.alive?</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def kill</div><div class='add'>+      @thread.kill</div><div class='add'>+      @thread.join</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def method_missing(msg, *arg, &amp;blk)</div><div class='add'>+      synchronize do</div><div class='add'>+        @wait_ev.wait_until { @status == :wait }</div><div class='add'>+        @req = [msg] + arg</div><div class='add'>+        @status = :req</div><div class='add'>+        @req_ev.broadcast</div><div class='add'>+        @res_ev.wait_until { @status == :res }</div><div class='add'>+        value = @res</div><div class='add'>+        @req = @res = nil</div><div class='add'>+        @status = :wait</div><div class='add'>+        @wait_ev.broadcast</div><div class='add'>+        return value</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def _execute()</div><div class='add'>+      synchronize do</div><div class='add'>+        @req_ev.wait_until { @status == :req }</div><div class='add'>+        @res = yield(@req)</div><div class='add'>+        @status = :res</div><div class='add'>+        @res_ev.signal</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'>   # Class handling the connection between a DRbObject and the</div><div class='ctx'>   # server the real object lives on.</div><div class='ctx'>   #</div><div class='hunk'>@@ -1203,26 +1254,50 @@ module DRb</div><div class='ctx'>   # not normally need to deal with it directly.</div><div class='ctx'>   class DRbConn</div><div class='ctx'>     POOL_SIZE = 16  # :nodoc:</div><div class='del'>-    @mutex = Thread::Mutex.new</div><div class='del'>-    @pool = []</div><div class='ctx'> </div><div class='del'>-    def self.open(remote_uri)  # :nodoc:</div><div class='del'>-      begin</div><div class='del'>-        conn = nil</div><div class='del'>-</div><div class='del'>-        @mutex.synchronize do</div><div class='del'>-          #FIXME</div><div class='del'>-          new_pool = []</div><div class='del'>-          @pool.each do |c|</div><div class='del'>-            if conn.nil? and c.uri == remote_uri</div><div class='del'>-              conn = c if c.alive?</div><div class='add'>+    def self.make_pool</div><div class='add'>+      ThreadObject.new do |queue|</div><div class='add'>+        pool = []</div><div class='add'>+        while true</div><div class='add'>+          queue._execute do |message|</div><div class='add'>+            case(message[0])</div><div class='add'>+            when :take then</div><div class='add'>+              remote_uri = message[1]</div><div class='add'>+              conn = nil</div><div class='add'>+              new_pool = []</div><div class='add'>+              pool.each do |c|</div><div class='add'>+                if conn.nil? and c.uri == remote_uri</div><div class='add'>+                  conn = c if c.alive?</div><div class='add'>+                else</div><div class='add'>+                  new_pool.push c</div><div class='add'>+                end</div><div class='add'>+              end</div><div class='add'>+              pool = new_pool</div><div class='add'>+              conn</div><div class='add'>+            when :store then</div><div class='add'>+              conn = message[1]</div><div class='add'>+              pool.unshift(conn)</div><div class='add'>+              pool.pop.close while pool.size &gt; POOL_SIZE</div><div class='add'>+              conn</div><div class='ctx'>             else</div><div class='del'>-              new_pool.push c</div><div class='add'>+              nil</div><div class='ctx'>             end</div><div class='ctx'>           end</div><div class='del'>-          @pool = new_pool</div><div class='ctx'>         end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    @pool_proxy = nil</div><div class='add'>+</div><div class='add'>+    def self.stop_pool</div><div class='add'>+      @pool_proxy&amp;.kill</div><div class='add'>+      @pool_proxy = nil</div><div class='add'>+    end</div><div class='ctx'> </div><div class='add'>+    def self.open(remote_uri)  # :nodoc:</div><div class='add'>+      begin</div><div class='add'>+        @pool_proxy = make_pool unless @pool_proxy&amp;.alive?</div><div class='add'>+</div><div class='add'>+        conn = @pool_proxy.take(remote_uri)</div><div class='ctx'>         conn = self.new(remote_uri) unless conn</div><div class='ctx'>         succ, result = yield(conn)</div><div class='ctx'>         return succ, result</div><div class='hunk'>@@ -1230,10 +1305,7 @@ module DRb</div><div class='ctx'>       ensure</div><div class='ctx'>         if conn</div><div class='ctx'>           if succ</div><div class='del'>-            @mutex.synchronize do</div><div class='del'>-              @pool.unshift(conn)</div><div class='del'>-              @pool.pop.close while @pool.size &gt; POOL_SIZE</div><div class='del'>-            end</div><div class='add'>+            @pool_proxy.store(conn)</div><div class='ctx'>           else</div><div class='ctx'>             conn.close</div><div class='ctx'>           end</div><div class='hunk'>@@ -1279,9 +1351,8 @@ module DRb</div><div class='ctx'>     @@idconv = DRbIdConv.new</div><div class='ctx'>     @@secondary_server = nil</div><div class='ctx'>     @@argc_limit = 256</div><div class='del'>-    @@load_limit = 256 * 102400</div><div class='add'>+    @@load_limit = 0xffffffff</div><div class='ctx'>     @@verbose = false</div><div class='del'>-    @@safe_level = 0</div><div class='ctx'> </div><div class='ctx'>     # Set the default value for the :argc_limit option.</div><div class='ctx'>     #</div><div class='hunk'>@@ -1311,13 +1382,6 @@ module DRb</div><div class='ctx'>       @@idconv = idconv</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Set the default safe level to +level+.  The default safe level is 0</div><div class='del'>-    #</div><div class='del'>-    # See #new for more information.</div><div class='del'>-    def self.default_safe_level(level)</div><div class='del'>-      @@safe_level = level</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     # Set the default value of the :verbose option.</div><div class='ctx'>     #</div><div class='ctx'>     # See #new().  The initial default value is false.</div><div class='hunk'>@@ -1337,7 +1401,6 @@ module DRb</div><div class='ctx'>         :tcp_acl =&gt; @@acl,</div><div class='ctx'>         :load_limit =&gt; @@load_limit,</div><div class='ctx'>         :argc_limit =&gt; @@argc_limit,</div><div class='del'>-        :safe_level =&gt; @@safe_level</div><div class='ctx'>       }</div><div class='ctx'>       default_config.update(hash)</div><div class='ctx'>     end</div><div class='hunk'>@@ -1371,10 +1434,6 @@ module DRb</div><div class='ctx'>     # :argc_limit :: the maximum number of arguments to a remote</div><div class='ctx'>     #                method accepted by the server.  Defaults to</div><div class='ctx'>     #                256.</div><div class='del'>-    # :safe_level :: The safe level of the DRbServer.  The attribute</div><div class='del'>-    #                sets $SAFE for methods performed in the main_loop.</div><div class='del'>-    #                Defaults to 0.</div><div class='del'>-    #</div><div class='ctx'>     # The default values of these options can be modified on</div><div class='ctx'>     # a class-wide basis by the class methods #default_argc_limit,</div><div class='ctx'>     # #default_load_limit, #default_acl, #default_id_conv,</div><div class='hunk'>@@ -1406,7 +1465,6 @@ module DRb</div><div class='ctx'> </div><div class='ctx'>       @front = front</div><div class='ctx'>       @idconv = @config[:idconv]</div><div class='del'>-      @safe_level = @config[:safe_level]</div><div class='ctx'> </div><div class='ctx'>       @grp = ThreadGroup.new</div><div class='ctx'>       @thread = run</div><div class='hunk'>@@ -1433,12 +1491,6 @@ module DRb</div><div class='ctx'>     # The configuration of this DRbServer</div><div class='ctx'>     attr_reader :config</div><div class='ctx'> </div><div class='del'>-    # The safe level for this server.  This is a number corresponding to</div><div class='del'>-    # $SAFE.</div><div class='del'>-    #</div><div class='del'>-    # The default safe_level is 0</div><div class='del'>-    attr_reader :safe_level</div><div class='del'>-</div><div class='ctx'>     # Set whether to operate in verbose mode.</div><div class='ctx'>     #</div><div class='ctx'>     # In verbose mode, failed calls are logged to stdout.</div><div class='hunk'>@@ -1525,9 +1577,9 @@ module DRb</div><div class='ctx'>     # Coerce an object to a string, providing our own representation if</div><div class='ctx'>     # to_s is not defined for the object.</div><div class='ctx'>     def any_to_s(obj)</div><div class='del'>-      obj.to_s + ":#{obj.class}"</div><div class='add'>+      "#{obj}:#{obj.class}"</div><div class='ctx'>     rescue</div><div class='del'>-      sprintf("#&lt;%s:0x%lx&gt;", obj.class, obj.__id__)</div><div class='add'>+      Kernel.instance_method(:to_s).bind_call(obj)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Check that a method is callable via dRuby.</div><div class='hunk'>@@ -1543,14 +1595,27 @@ module DRb</div><div class='ctx'>       raise(ArgumentError, "#{any_to_s(msg_id)} is not a symbol") unless Symbol == msg_id.class</div><div class='ctx'>       raise(SecurityError, "insecure method `#{msg_id}'") if insecure_method?(msg_id)</div><div class='ctx'> </div><div class='del'>-      if obj.private_methods.include?(msg_id)</div><div class='del'>-        desc = any_to_s(obj)</div><div class='del'>-        raise NoMethodError, "private method `#{msg_id}' called for #{desc}"</div><div class='del'>-      elsif obj.protected_methods.include?(msg_id)</div><div class='del'>-        desc = any_to_s(obj)</div><div class='del'>-        raise NoMethodError, "protected method `#{msg_id}' called for #{desc}"</div><div class='add'>+      case obj</div><div class='add'>+      when Object</div><div class='add'>+        if obj.private_methods.include?(msg_id)</div><div class='add'>+          desc = any_to_s(obj)</div><div class='add'>+          raise NoMethodError, "private method `#{msg_id}' called for #{desc}"</div><div class='add'>+        elsif obj.protected_methods.include?(msg_id)</div><div class='add'>+          desc = any_to_s(obj)</div><div class='add'>+          raise NoMethodError, "protected method `#{msg_id}' called for #{desc}"</div><div class='add'>+        else</div><div class='add'>+          true</div><div class='add'>+        end</div><div class='ctx'>       else</div><div class='del'>-        true</div><div class='add'>+        if Kernel.instance_method(:private_methods).bind(obj).call.include?(msg_id)</div><div class='add'>+          desc = any_to_s(obj)</div><div class='add'>+          raise NoMethodError, "private method `#{msg_id}' called for #{desc}"</div><div class='add'>+        elsif Kernel.instance_method(:protected_methods).bind(obj).call.include?(msg_id)</div><div class='add'>+          desc = any_to_s(obj)</div><div class='add'>+          raise NoMethodError, "protected method `#{msg_id}' called for #{desc}"</div><div class='add'>+        else</div><div class='add'>+          true</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>     public :check_insecure_method</div><div class='hunk'>@@ -1558,49 +1623,33 @@ module DRb</div><div class='ctx'>     class InvokeMethod  # :nodoc:</div><div class='ctx'>       def initialize(drb_server, client)</div><div class='ctx'>         @drb_server = drb_server</div><div class='del'>-        @safe_level = drb_server.safe_level</div><div class='ctx'>         @client = client</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def perform</div><div class='del'>-        @result = nil</div><div class='del'>-        @succ = false</div><div class='del'>-        setup_message</div><div class='del'>-</div><div class='del'>-        if $SAFE &lt; @safe_level</div><div class='del'>-          info = Thread.current['DRb']</div><div class='del'>-          if @block</div><div class='del'>-            @result = Thread.new do</div><div class='del'>-              Thread.current['DRb'] = info</div><div class='del'>-              prev_safe_level = $SAFE</div><div class='del'>-              $SAFE = @safe_level</div><div class='del'>-              perform_with_block</div><div class='del'>-            ensure</div><div class='del'>-              $SAFE = prev_safe_level</div><div class='del'>-            end.value</div><div class='del'>-          else</div><div class='del'>-            @result = Thread.new do</div><div class='del'>-              Thread.current['DRb'] = info</div><div class='del'>-              prev_safe_level = $SAFE</div><div class='del'>-              $SAFE = @safe_level</div><div class='del'>-              perform_without_block</div><div class='del'>-            ensure</div><div class='del'>-              $SAFE = prev_safe_level</div><div class='del'>-            end.value</div><div class='del'>-          end</div><div class='add'>+        begin</div><div class='add'>+          setup_message</div><div class='add'>+        ensure</div><div class='add'>+          @result = nil</div><div class='add'>+          @succ = false</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        if @block</div><div class='add'>+          @result = perform_with_block</div><div class='ctx'>         else</div><div class='del'>-          if @block</div><div class='del'>-            @result = perform_with_block</div><div class='del'>-          else</div><div class='del'>-            @result = perform_without_block</div><div class='del'>-          end</div><div class='add'>+          @result = perform_without_block</div><div class='ctx'>         end</div><div class='ctx'>         @succ = true</div><div class='del'>-        if @msg_id == :to_ary &amp;&amp; @result.class == Array</div><div class='del'>-          @result = DRbArray.new(@result)</div><div class='add'>+        case @result</div><div class='add'>+        when Array</div><div class='add'>+          if @msg_id == :to_ary</div><div class='add'>+            @result = DRbArray.new(@result)</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='ctx'>         return @succ, @result</div><div class='del'>-      rescue StandardError, ScriptError, Interrupt</div><div class='add'>+      rescue NoMemoryError, SystemExit, SystemStackError, SecurityError</div><div class='add'>+        raise</div><div class='add'>+      rescue Exception</div><div class='ctx'>         @result = $!</div><div class='ctx'>         return @succ, @result</div><div class='ctx'>       end</div><div class='hunk'>@@ -1672,16 +1721,20 @@ module DRb</div><div class='ctx'>           client_uri = client.uri</div><div class='ctx'>           @exported_uri &lt;&lt; client_uri unless @exported_uri.include?(client_uri)</div><div class='ctx'>         end</div><div class='add'>+        _last_invoke_method = nil</div><div class='ctx'>         loop do</div><div class='ctx'>           begin</div><div class='ctx'>             succ = false</div><div class='ctx'>             invoke_method = InvokeMethod.new(self, client)</div><div class='ctx'>             succ, result = invoke_method.perform</div><div class='ctx'>             error_print(result) if !succ &amp;&amp; verbose</div><div class='del'>-            client.send_reply(succ, result)</div><div class='add'>+            unless DRbConnError === result &amp;&amp; result.message == 'connection closed'</div><div class='add'>+              client.send_reply(succ, result)</div><div class='add'>+            end</div><div class='ctx'>           rescue Exception =&gt; e</div><div class='ctx'>             error_print(e) if verbose</div><div class='ctx'>           ensure</div><div class='add'>+            _last_invoke_method = invoke_method</div><div class='ctx'>             client.close unless succ</div><div class='ctx'>             if Thread.current['DRb']['stop_service']</div><div class='ctx'>               shutdown</div><div class='head'>diff --git a/lib/drb/extserv.rb b/lib/drb/extserv.rb<br/>index a93d5d1576..9523fe84e3 100644<br/>--- a/<a href='/ruby.git/tree/lib/drb/extserv.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/extserv.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/drb/extserv.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/drb/extserv.rb</a></div><div class='hunk'>@@ -18,7 +18,7 @@ module DRb</div><div class='ctx'>       @name = name</div><div class='ctx'>       ro = DRbObject.new(nil, there)</div><div class='ctx'>       synchronize do</div><div class='del'>-        @invoker = ro.regist(name, DRbObject.new(self, @server.uri))</div><div class='add'>+        @invoker = ro.register(name, DRbObject.new(self, @server.uri))</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>     attr_reader :server</div><div class='hunk'>@@ -29,7 +29,7 @@ module DRb</div><div class='ctx'> </div><div class='ctx'>     def stop_service</div><div class='ctx'>       synchronize do</div><div class='del'>-        @invoker.unregist(@name)</div><div class='add'>+        @invoker.unregister(@name)</div><div class='ctx'>         server = @server</div><div class='ctx'>         @server = nil</div><div class='ctx'>         server.stop_service</div><div class='head'>diff --git a/lib/drb/extservm.rb b/lib/drb/extservm.rb<br/>index 040e4e3e08..9333a108e5 100644<br/>--- a/<a href='/ruby.git/tree/lib/drb/extservm.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/extservm.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/drb/extservm.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/drb/extservm.rb</a></div><div class='hunk'>@@ -44,19 +44,21 @@ module DRb</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def regist(name, ro)</div><div class='add'>+    def register(name, ro)</div><div class='ctx'>       synchronize do</div><div class='ctx'>         @servers[name] = ro</div><div class='ctx'>         @cond.signal</div><div class='ctx'>       end</div><div class='ctx'>       self</div><div class='ctx'>     end</div><div class='add'>+    alias regist register</div><div class='ctx'> </div><div class='del'>-    def unregist(name)</div><div class='add'>+    def unregister(name)</div><div class='ctx'>       synchronize do</div><div class='ctx'>         @servers.delete(name)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='add'>+    alias unregist unregister</div><div class='ctx'> </div><div class='ctx'>     private</div><div class='ctx'>     def invoke_thread</div><div class='head'>diff --git a/lib/drb/observer.rb b/lib/drb/observer.rb<br/>index 3ee15331a1..0fb7301edf 100644<br/>--- a/<a href='/ruby.git/tree/lib/drb/observer.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/observer.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/drb/observer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/drb/observer.rb</a></div><div class='hunk'>@@ -13,7 +13,7 @@ module DRb</div><div class='ctx'>         if defined? @observer_peers</div><div class='ctx'>           @observer_peers.each do |observer, method|</div><div class='ctx'>             begin</div><div class='del'>-              observer.send(method, *arg)</div><div class='add'>+              observer.__send__(method, *arg)</div><div class='ctx'>             rescue</div><div class='ctx'>               delete_observer(observer)</div><div class='ctx'>             end</div><div class='head'>diff --git a/lib/drb/ssl.rb b/lib/drb/ssl.rb<br/>index 48ba35ace7..54ab1ef395 100644<br/>--- a/<a href='/ruby.git/tree/lib/drb/ssl.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/ssl.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/drb/ssl.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/drb/ssl.rb</a></div><div class='hunk'>@@ -196,7 +196,7 @@ module DRb</div><div class='ctx'>         if comment = self[:SSLCertComment]</div><div class='ctx'>           cert.add_extension(ef.create_extension("nsComment", comment))</div><div class='ctx'>         end</div><div class='del'>-        cert.sign(rsa, OpenSSL::Digest::SHA256.new)</div><div class='add'>+        cert.sign(rsa, "SHA256")</div><div class='ctx'> </div><div class='ctx'>         @cert = cert</div><div class='ctx'>         @pkey = rsa</div><div class='hunk'>@@ -248,8 +248,6 @@ module DRb</div><div class='ctx'>     # configuration.  Either a Hash or DRb::DRbSSLSocket::SSLConfig</div><div class='ctx'>     def self.open(uri, config)</div><div class='ctx'>       host, port, = parse_uri(uri)</div><div class='del'>-      host.untaint</div><div class='del'>-      port.untaint</div><div class='ctx'>       soc = TCPSocket.open(host, port)</div><div class='ctx'>       ssl_conf = SSLConfig::new(config)</div><div class='ctx'>       ssl_conf.setup_ssl_context</div><div class='head'>diff --git a/lib/drb/unix.rb b/lib/drb/unix.rb<br/>index 89957c9e7b..1629ad3bcd 100644<br/>--- a/<a href='/ruby.git/tree/lib/drb/unix.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/drb/unix.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/drb/unix.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/drb/unix.rb</a></div><div class='hunk'>@@ -27,7 +27,6 @@ module DRb</div><div class='ctx'> </div><div class='ctx'>     def self.open(uri, config)</div><div class='ctx'>       filename, = parse_uri(uri)</div><div class='del'>-      filename.untaint</div><div class='ctx'>       soc = UNIXSocket.open(filename)</div><div class='ctx'>       self.new(uri, soc, config)</div><div class='ctx'>     end</div><div class='head'>diff --git a/lib/drb/version.rb b/lib/drb/version.rb<br/>new file mode 100644<br/>index 0000000000..10d33445b6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/drb/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/drb/version.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+module DRb</div><div class='add'>+  VERSION = "2.1.1"</div><div class='add'>+end</div><div class='head'>diff --git a/lib/drb/weakidconv.rb b/lib/drb/weakidconv.rb<br/>new file mode 100644<br/>index 0000000000..ecf0bf515f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/drb/weakidconv.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/drb/weakidconv.rb</a></div><div class='hunk'>@@ -0,0 +1,59 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+require_relative 'drb'</div><div class='add'>+require 'monitor'</div><div class='add'>+</div><div class='add'>+module DRb</div><div class='add'>+</div><div class='add'>+  # To use WeakIdConv:</div><div class='add'>+  #</div><div class='add'>+  #  DRb.start_service(nil, nil, {:idconv =&gt; DRb::WeakIdConv.new})</div><div class='add'>+</div><div class='add'>+  class WeakIdConv &lt; DRbIdConv</div><div class='add'>+    class WeakSet</div><div class='add'>+      include MonitorMixin</div><div class='add'>+      def initialize</div><div class='add'>+        super()</div><div class='add'>+        @immutable = {}</div><div class='add'>+        @map = ObjectSpace::WeakMap.new</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def add(obj)</div><div class='add'>+        synchronize do</div><div class='add'>+          begin</div><div class='add'>+            @map[obj] = self</div><div class='add'>+          rescue ArgumentError</div><div class='add'>+            @immutable[obj.__id__] = obj</div><div class='add'>+          end</div><div class='add'>+          return obj.__id__</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def fetch(ref)</div><div class='add'>+        synchronize do</div><div class='add'>+          @immutable.fetch(ref) {</div><div class='add'>+            @map.each { |key, _|</div><div class='add'>+              return key if key.__id__ == ref</div><div class='add'>+            }</div><div class='add'>+            raise RangeError.new("invalid reference")</div><div class='add'>+          }</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def initialize()</div><div class='add'>+      super()</div><div class='add'>+      @weak_set = WeakSet.new</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def to_obj(ref) # :nodoc:</div><div class='add'>+      return super if ref.nil?</div><div class='add'>+      @weak_set.fetch(ref)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def to_id(obj) # :nodoc:</div><div class='add'>+      return @weak_set.add(obj)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+# DRb.install_id_conv(WeakIdConv.new)</div><div class='head'>diff --git a/lib/e2mmap.gemspec b/lib/e2mmap.gemspec<br/>deleted file mode 100644<br/>index b9808d89ff..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/e2mmap.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/e2mmap.gemspec</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,26 +0,0 @@</div><div class='del'>-begin</div><div class='del'>-  require_relative "lib/e2mmap/version"</div><div class='del'>-rescue LoadError</div><div class='del'>-  # for Ruby core repository</div><div class='del'>-  require_relative "e2mmap/version"</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-Gem::Specification.new do |spec|</div><div class='del'>-  spec.name          = "e2mmap"</div><div class='del'>-  spec.version       = Exception2MessageMapper::VERSION</div><div class='del'>-  spec.authors       = ["Keiju ISHITSUKA"]</div><div class='del'>-  spec.email         = ["keiju@ruby-lang.org"]</div><div class='del'>-</div><div class='del'>-  spec.summary       = %q{Module for defining custom exceptions with specific messages.}</div><div class='del'>-  spec.description   = %q{Module for defining custom exceptions with specific messages.}</div><div class='del'>-  spec.homepage      = "https://github.com/ruby/e2mmap"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='del'>-</div><div class='del'>-  spec.files         = [".gitignore", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "e2mmap.gemspec", "lib/e2mmap.rb", "lib/e2mmap/version.rb"]</div><div class='del'>-  spec.bindir        = "exe"</div><div class='del'>-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='del'>-  spec.require_paths = ["lib"]</div><div class='del'>-</div><div class='del'>-  spec.add_development_dependency "bundler", "~&gt; 1.16"</div><div class='del'>-  spec.add_development_dependency "rake", "~&gt; 10.0"</div><div class='del'>-end</div><div class='head'>diff --git a/lib/e2mmap.rb b/lib/e2mmap.rb<br/>deleted file mode 100644<br/>index 1c1d7148ff..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/e2mmap.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/e2mmap.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,177 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-#</div><div class='del'>-#--</div><div class='del'>-#   e2mmap.rb - for Ruby 1.1</div><div class='del'>-#       $Release Version: 2.0$</div><div class='del'>-#       $Revision: 1.10 $</div><div class='del'>-#       by Keiju ISHITSUKA</div><div class='del'>-#</div><div class='del'>-#++</div><div class='del'>-#</div><div class='del'>-# Helper module for easily defining exceptions with predefined messages.</div><div class='del'>-#</div><div class='del'>-# == Usage</div><div class='del'>-#</div><div class='del'>-# 1.</div><div class='del'>-#   class Foo</div><div class='del'>-#     extend Exception2MessageMapper</div><div class='del'>-#     def_e2message ExistingExceptionClass, "message..."</div><div class='del'>-#     def_exception :NewExceptionClass, "message..."[, superclass]</div><div class='del'>-#     ...</div><div class='del'>-#   end</div><div class='del'>-#</div><div class='del'>-# 2.</div><div class='del'>-#   module Error</div><div class='del'>-#     extend Exception2MessageMapper</div><div class='del'>-#     def_e2message ExistingExceptionClass, "message..."</div><div class='del'>-#     def_exception :NewExceptionClass, "message..."[, superclass]</div><div class='del'>-#     ...</div><div class='del'>-#   end</div><div class='del'>-#   class Foo</div><div class='del'>-#     include Error</div><div class='del'>-#     ...</div><div class='del'>-#   end</div><div class='del'>-#</div><div class='del'>-#   foo = Foo.new</div><div class='del'>-#   foo.Fail ....</div><div class='del'>-#</div><div class='del'>-# 3.</div><div class='del'>-#   module Error</div><div class='del'>-#     extend Exception2MessageMapper</div><div class='del'>-#     def_e2message ExistingExceptionClass, "message..."</div><div class='del'>-#     def_exception :NewExceptionClass, "message..."[, superclass]</div><div class='del'>-#     ...</div><div class='del'>-#   end</div><div class='del'>-#   class Foo</div><div class='del'>-#     extend Exception2MessageMapper</div><div class='del'>-#     include Error</div><div class='del'>-#     ...</div><div class='del'>-#   end</div><div class='del'>-#</div><div class='del'>-#   Foo.Fail NewExceptionClass, arg...</div><div class='del'>-#   Foo.Fail ExistingExceptionClass, arg...</div><div class='del'>-#</div><div class='del'>-#</div><div class='del'>-module Exception2MessageMapper</div><div class='del'>-</div><div class='del'>-  E2MM = Exception2MessageMapper # :nodoc:</div><div class='del'>-</div><div class='del'>-  def E2MM.extend_object(cl)</div><div class='del'>-    super</div><div class='del'>-    cl.bind(self) unless cl &lt; E2MM</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def bind(cl)</div><div class='del'>-    self.module_eval "#{&lt;&lt;-"begin;"}\n#{&lt;&lt;-"end;"}", __FILE__, __LINE__+1</div><div class='del'>-    begin;</div><div class='del'>-      def Raise(err = nil, *rest)</div><div class='del'>-        Exception2MessageMapper.Raise(self.class, err, *rest)</div><div class='del'>-      end</div><div class='del'>-      alias Fail Raise</div><div class='del'>-</div><div class='del'>-      class &lt;&lt; self</div><div class='del'>-        undef included</div><div class='del'>-      end</div><div class='del'>-      def self.included(mod)</div><div class='del'>-        mod.extend Exception2MessageMapper</div><div class='del'>-      end</div><div class='del'>-    end;</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Fail(err, *rest)</div><div class='del'>-  #     err:    exception</div><div class='del'>-  #     rest:   message arguments</div><div class='del'>-  #</div><div class='del'>-  def Raise(err = nil, *rest)</div><div class='del'>-    E2MM.Raise(self, err, *rest)</div><div class='del'>-  end</div><div class='del'>-  alias Fail Raise</div><div class='del'>-  alias fail Raise</div><div class='del'>-</div><div class='del'>-  # def_e2message(c, m)</div><div class='del'>-  #         c:  exception</div><div class='del'>-  #         m:  message_form</div><div class='del'>-  #     define exception c with message m.</div><div class='del'>-  #</div><div class='del'>-  def def_e2message(c, m)</div><div class='del'>-    E2MM.def_e2message(self, c, m)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # def_exception(n, m, s)</div><div class='del'>-  #         n:  exception_name</div><div class='del'>-  #         m:  message_form</div><div class='del'>-  #         s:  superclass(default: StandardError)</div><div class='del'>-  #     define exception named ``c'' with message m.</div><div class='del'>-  #</div><div class='del'>-  def def_exception(n, m, s = StandardError)</div><div class='del'>-    E2MM.def_exception(self, n, m, s)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Private definitions.</div><div class='del'>-  #</div><div class='del'>-  # {[class, exp] =&gt; message, ...}</div><div class='del'>-  @MessageMap = {}</div><div class='del'>-</div><div class='del'>-  # E2MM.def_e2message(k, e, m)</div><div class='del'>-  #         k:  class to define exception under.</div><div class='del'>-  #         e:  exception</div><div class='del'>-  #         m:  message_form</div><div class='del'>-  #     define exception c with message m.</div><div class='del'>-  #</div><div class='del'>-  def E2MM.def_e2message(k, c, m)</div><div class='del'>-    E2MM.instance_eval{@MessageMap[[k, c]] = m}</div><div class='del'>-    c</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # E2MM.def_exception(k, n, m, s)</div><div class='del'>-  #         k:  class to define exception under.</div><div class='del'>-  #         n:  exception_name</div><div class='del'>-  #         m:  message_form</div><div class='del'>-  #         s:  superclass(default: StandardError)</div><div class='del'>-  #     define exception named ``c'' with message m.</div><div class='del'>-  #</div><div class='del'>-  def E2MM.def_exception(k, n, m, s = StandardError)</div><div class='del'>-    e = Class.new(s)</div><div class='del'>-    E2MM.instance_eval{@MessageMap[[k, e]] = m}</div><div class='del'>-    k.module_eval {remove_const(n)} if k.const_defined?(n, false)</div><div class='del'>-    k.const_set(n, e)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Fail(klass, err, *rest)</div><div class='del'>-  #     klass:  class to define exception under.</div><div class='del'>-  #     err:    exception</div><div class='del'>-  #     rest:   message arguments</div><div class='del'>-  #</div><div class='del'>-  def E2MM.Raise(klass = E2MM, err = nil, *rest)</div><div class='del'>-    if form = e2mm_message(klass, err)</div><div class='del'>-      b = $@.nil? ? caller(1) : $@</div><div class='del'>-      b.shift if b[0] =~ /^#{Regexp.quote(__FILE__)}:/</div><div class='del'>-      raise err, sprintf(form, *rest), b</div><div class='del'>-    else</div><div class='del'>-      E2MM.Fail E2MM, ErrNotRegisteredException, err.inspect</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-  class &lt;&lt; E2MM</div><div class='del'>-    alias Fail Raise</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def E2MM.e2mm_message(klass, exp)</div><div class='del'>-    for c in klass.ancestors</div><div class='del'>-      if mes = @MessageMap[[c,exp]]</div><div class='del'>-        m = klass.instance_eval('"' + mes + '"')</div><div class='del'>-        return m</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    nil</div><div class='del'>-  end</div><div class='del'>-  class &lt;&lt; self</div><div class='del'>-    alias message e2mm_message</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  E2MM.def_exception(E2MM,</div><div class='del'>-                     :ErrNotRegisteredException,</div><div class='del'>-                     "not registered exception(%s)")</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/lib/e2mmap/version.rb b/lib/e2mmap/version.rb<br/>deleted file mode 100644<br/>index c459aeace3..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/e2mmap/version.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/e2mmap/version.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,3 +0,0 @@</div><div class='del'>-module Exception2MessageMapper</div><div class='del'>-  VERSION = "0.1.0"</div><div class='del'>-end</div><div class='head'>diff --git a/lib/erb.gemspec b/lib/erb.gemspec<br/>new file mode 100644<br/>index 0000000000..d973cc10de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/erb.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/erb.gemspec</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+begin</div><div class='add'>+  require_relative 'lib/erb/version'</div><div class='add'>+rescue LoadError</div><div class='add'>+  # for Ruby core repository</div><div class='add'>+  require_relative 'erb/version'</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = 'erb'</div><div class='add'>+  spec.version       = ERB.const_get(:VERSION, false)</div><div class='add'>+  spec.authors       = ['Masatoshi SEKI', 'Takashi Kokubun']</div><div class='add'>+  spec.email         = ['seki@ruby-lang.org', 'takashikkbn@gmail.com']</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{An easy to use but powerful templating system for Ruby.}</div><div class='add'>+  spec.description   = %q{An easy to use but powerful templating system for Ruby.}</div><div class='add'>+  spec.homepage      = 'https://github.com/ruby/erb'</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new('&gt;= 2.5.0')</div><div class='add'>+  spec.licenses      = ['Ruby', 'BSD-2-Clause']</div><div class='add'>+</div><div class='add'>+  spec.metadata['homepage_uri'] = spec.homepage</div><div class='add'>+  spec.metadata['source_code_uri'] = spec.homepage</div><div class='add'>+</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.bindir        = 'libexec'</div><div class='add'>+  spec.executables   = ['erb']</div><div class='add'>+  spec.require_paths = ['lib']</div><div class='add'>+</div><div class='add'>+  if RUBY_ENGINE == 'jruby'</div><div class='add'>+    spec.platform = 'java'</div><div class='add'>+  else</div><div class='add'>+    spec.required_ruby_version = '&gt;= 2.7.0'</div><div class='add'>+    spec.extensions = ['ext/erb/escape/extconf.rb']</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  spec.add_dependency 'cgi', '&gt;= 0.3.3'</div><div class='add'>+end</div><div class='head'>diff --git a/lib/erb.rb b/lib/erb.rb<br/>index 5b725d7820..754419f819 100644<br/>--- a/<a href='/ruby.git/tree/lib/erb.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/erb.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/erb.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/erb.rb</a></div><div class='hunk'>@@ -12,7 +12,11 @@</div><div class='ctx'> #</div><div class='ctx'> # You can redistribute it and/or modify it under the same terms as Ruby.</div><div class='ctx'> </div><div class='del'>-require "cgi/util"</div><div class='add'>+require 'cgi/util'</div><div class='add'>+require 'erb/version'</div><div class='add'>+require 'erb/compiler'</div><div class='add'>+require 'erb/def_method'</div><div class='add'>+require 'erb/util'</div><div class='ctx'> </div><div class='ctx'> #</div><div class='ctx'> # = ERB -- Ruby Templating</div><div class='hunk'>@@ -45,7 +49,7 @@ require "cgi/util"</div><div class='ctx'> #</div><div class='ctx'> #   &lt;% Ruby code -- inline with output %&gt;</div><div class='ctx'> #   &lt;%= Ruby expression -- replace with result %&gt;</div><div class='del'>-#   &lt;%# comment -- ignored -- useful in testing %&gt;</div><div class='add'>+#   &lt;%# comment -- ignored -- useful in testing %&gt; (`&lt;% #` doesn't work. Don't use Ruby comments.)</div><div class='ctx'> #   % a line of Ruby code -- treated as &lt;% line %&gt; (optional -- see ERB.new)</div><div class='ctx'> #   %% replaced with % if first thing on a line and % processing is used</div><div class='ctx'> #   &lt;%% or %%&gt; -- replace with &lt;% or %&gt; respectively</div><div class='hunk'>@@ -57,7 +61,6 @@ require "cgi/util"</div><div class='ctx'> #</div><div class='ctx'> # There are several settings you can change when you use ERB:</div><div class='ctx'> # * the nature of the tags that are recognized;</div><div class='del'>-# * the value of &lt;tt&gt;$SAFE&lt;/tt&gt; under which the template is run;</div><div class='ctx'> # * the binding used to resolve local variables in the template.</div><div class='ctx'> #</div><div class='ctx'> # See the ERB.new and ERB#result methods for more detail.</div><div class='hunk'>@@ -248,510 +251,28 @@ require "cgi/util"</div><div class='ctx'> #</div><div class='ctx'> # == Notes</div><div class='ctx'> #</div><div class='del'>-# There are a variety of templating solutions available in various Ruby projects:</div><div class='del'>-# * ERB's big brother, eRuby, works the same but is written in C for speed;</div><div class='del'>-# * Amrita (smart at producing HTML/XML);</div><div class='del'>-# * cs/Template (written in C for speed);</div><div class='del'>-# * RDoc, distributed with Ruby, uses its own template engine, which can be reused elsewhere;</div><div class='del'>-# * and others; search {RubyGems.org}[https://rubygems.org/] or</div><div class='del'>-#   {The Ruby Toolbox}[https://www.ruby-toolbox.com/].</div><div class='add'>+# There are a variety of templating solutions available in various Ruby projects.</div><div class='add'>+# For example, RDoc, distributed with Ruby, uses its own template engine, which</div><div class='add'>+# can be reused elsewhere.</div><div class='ctx'> #</div><div class='del'>-# Rails, the web application framework, uses ERB to create views.</div><div class='add'>+# Other popular engines could be found in the corresponding</div><div class='add'>+# {Category}[https://www.ruby-toolbox.com/categories/template_engines] of</div><div class='add'>+# The Ruby Toolbox.</div><div class='ctx'> #</div><div class='ctx'> class ERB</div><div class='ctx'>   Revision = '$Date::                           $' # :nodoc: #'</div><div class='add'>+  deprecate_constant :Revision</div><div class='ctx'> </div><div class='ctx'>   # Returns revision information for the erb.rb module.</div><div class='ctx'>   def self.version</div><div class='del'>-    "erb.rb [2.2.0 #{ERB::Revision.split[1]}]"</div><div class='add'>+    VERSION</div><div class='ctx'>   end</div><div class='del'>-end</div><div class='ctx'> </div><div class='del'>-#--</div><div class='del'>-# ERB::Compiler</div><div class='del'>-class ERB</div><div class='del'>-  # = ERB::Compiler</div><div class='del'>-  #</div><div class='del'>-  # Compiles ERB templates into Ruby code; the compiled code produces the</div><div class='del'>-  # template result when evaluated. ERB::Compiler provides hooks to define how</div><div class='del'>-  # generated output is handled.</div><div class='del'>-  #</div><div class='del'>-  # Internally ERB does something like this to generate the code returned by</div><div class='del'>-  # ERB#src:</div><div class='del'>-  #</div><div class='del'>-  #   compiler = ERB::Compiler.new('&lt;&gt;')</div><div class='del'>-  #   compiler.pre_cmd    = ["_erbout=+''"]</div><div class='del'>-  #   compiler.put_cmd    = "_erbout.&lt;&lt;"</div><div class='del'>-  #   compiler.insert_cmd = "_erbout.&lt;&lt;"</div><div class='del'>-  #   compiler.post_cmd   = ["_erbout"]</div><div class='del'>-  #</div><div class='del'>-  #   code, enc = compiler.compile("Got &lt;%= obj %&gt;!\n")</div><div class='del'>-  #   puts code</div><div class='del'>-  #</div><div class='del'>-  # &lt;i&gt;Generates&lt;/i&gt;:</div><div class='del'>-  #</div><div class='del'>-  #   #coding:UTF-8</div><div class='del'>-  #   _erbout=+''; _erbout.&lt;&lt; "Got ".freeze; _erbout.&lt;&lt;(( obj ).to_s); _erbout.&lt;&lt; "!\n".freeze; _erbout</div><div class='del'>-  #</div><div class='del'>-  # By default the output is sent to the print method.  For example:</div><div class='del'>-  #</div><div class='del'>-  #   compiler = ERB::Compiler.new('&lt;&gt;')</div><div class='del'>-  #   code, enc = compiler.compile("Got &lt;%= obj %&gt;!\n")</div><div class='del'>-  #   puts code</div><div class='del'>-  #</div><div class='del'>-  # &lt;i&gt;Generates&lt;/i&gt;:</div><div class='del'>-  #</div><div class='del'>-  #   #coding:UTF-8</div><div class='del'>-  #   print "Got ".freeze; print(( obj ).to_s); print "!\n".freeze</div><div class='del'>-  #</div><div class='del'>-  # == Evaluation</div><div class='del'>-  #</div><div class='del'>-  # The compiled code can be used in any context where the names in the code</div><div class='del'>-  # correctly resolve. Using the last example, each of these print 'Got It!'</div><div class='del'>-  #</div><div class='del'>-  # Evaluate using a variable:</div><div class='del'>-  #</div><div class='del'>-  #   obj = 'It'</div><div class='del'>-  #   eval code</div><div class='del'>-  #</div><div class='del'>-  # Evaluate using an input:</div><div class='del'>-  #</div><div class='del'>-  #   mod = Module.new</div><div class='del'>-  #   mod.module_eval %{</div><div class='del'>-  #     def get(obj)</div><div class='del'>-  #       #{code}</div><div class='del'>-  #     end</div><div class='del'>-  #   }</div><div class='del'>-  #   extend mod</div><div class='del'>-  #   get('It')</div><div class='del'>-  #</div><div class='del'>-  # Evaluate using an accessor:</div><div class='del'>-  #</div><div class='del'>-  #   klass = Class.new Object</div><div class='del'>-  #   klass.class_eval %{</div><div class='del'>-  #     attr_accessor :obj</div><div class='del'>-  #     def initialize(obj)</div><div class='del'>-  #       @obj = obj</div><div class='del'>-  #     end</div><div class='del'>-  #     def get_it</div><div class='del'>-  #       #{code}</div><div class='del'>-  #     end</div><div class='del'>-  #   }</div><div class='del'>-  #   klass.new('It').get_it</div><div class='del'>-  #</div><div class='del'>-  # Good! See also ERB#def_method, ERB#def_module, and ERB#def_class.</div><div class='del'>-  class Compiler # :nodoc:</div><div class='del'>-    class PercentLine # :nodoc:</div><div class='del'>-      def initialize(str)</div><div class='del'>-        @value = str</div><div class='del'>-      end</div><div class='del'>-      attr_reader :value</div><div class='del'>-      alias :to_s :value</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    class Scanner # :nodoc:</div><div class='del'>-      @scanner_map = {}</div><div class='del'>-      class &lt;&lt; self</div><div class='del'>-        def register_scanner(klass, trim_mode, percent)</div><div class='del'>-          @scanner_map[[trim_mode, percent]] = klass</div><div class='del'>-        end</div><div class='del'>-        alias :regist_scanner :register_scanner</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def self.default_scanner=(klass)</div><div class='del'>-        @default_scanner = klass</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def self.make_scanner(src, trim_mode, percent)</div><div class='del'>-        klass = @scanner_map.fetch([trim_mode, percent], @default_scanner)</div><div class='del'>-        klass.new(src, trim_mode, percent)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      DEFAULT_STAGS = %w(&lt;%% &lt;%= &lt;%# &lt;%).freeze</div><div class='del'>-      DEFAULT_ETAGS = %w(%%&gt; %&gt;).freeze</div><div class='del'>-      def initialize(src, trim_mode, percent)</div><div class='del'>-        @src = src</div><div class='del'>-        @stag = nil</div><div class='del'>-        @stags = DEFAULT_STAGS</div><div class='del'>-        @etags = DEFAULT_ETAGS</div><div class='del'>-      end</div><div class='del'>-      attr_accessor :stag</div><div class='del'>-      attr_reader :stags, :etags</div><div class='del'>-</div><div class='del'>-      def scan; end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    class TrimScanner &lt; Scanner # :nodoc:</div><div class='del'>-      def initialize(src, trim_mode, percent)</div><div class='del'>-        super</div><div class='del'>-        @trim_mode = trim_mode</div><div class='del'>-        @percent = percent</div><div class='del'>-        if @trim_mode == '&gt;'</div><div class='del'>-          @scan_reg  = /(.*?)(%&gt;\r?\n|#{(stags + etags).join('|')}|\n|\z)/m</div><div class='del'>-          @scan_line = self.method(:trim_line1)</div><div class='del'>-        elsif @trim_mode == '&lt;&gt;'</div><div class='del'>-          @scan_reg  = /(.*?)(%&gt;\r?\n|#{(stags + etags).join('|')}|\n|\z)/m</div><div class='del'>-          @scan_line = self.method(:trim_line2)</div><div class='del'>-        elsif @trim_mode == '-'</div><div class='del'>-          @scan_reg  = /(.*?)(^[ \t]*&lt;%\-|&lt;%\-|-%&gt;\r?\n|-%&gt;|#{(stags + etags).join('|')}|\z)/m</div><div class='del'>-          @scan_line = self.method(:explicit_trim_line)</div><div class='del'>-        else</div><div class='del'>-          @scan_reg  = /(.*?)(#{(stags + etags).join('|')}|\n|\z)/m</div><div class='del'>-          @scan_line = self.method(:scan_line)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def scan(&amp;block)</div><div class='del'>-        @stag = nil</div><div class='del'>-        if @percent</div><div class='del'>-          @src.each_line do |line|</div><div class='del'>-            percent_line(line, &amp;block)</div><div class='del'>-          end</div><div class='del'>-        else</div><div class='del'>-          @scan_line.call(@src, &amp;block)</div><div class='del'>-        end</div><div class='del'>-        nil</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def percent_line(line, &amp;block)</div><div class='del'>-        if @stag || line[0] != ?%</div><div class='del'>-          return @scan_line.call(line, &amp;block)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        line[0] = ''</div><div class='del'>-        if line[0] == ?%</div><div class='del'>-          @scan_line.call(line, &amp;block)</div><div class='del'>-        else</div><div class='del'>-          yield(PercentLine.new(line.chomp))</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def scan_line(line)</div><div class='del'>-        line.scan(@scan_reg) do |tokens|</div><div class='del'>-          tokens.each do |token|</div><div class='del'>-            next if token.empty?</div><div class='del'>-            yield(token)</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def trim_line1(line)</div><div class='del'>-        line.scan(@scan_reg) do |tokens|</div><div class='del'>-          tokens.each do |token|</div><div class='del'>-            next if token.empty?</div><div class='del'>-            if token == "%&gt;\n" || token == "%&gt;\r\n"</div><div class='del'>-              yield('%&gt;')</div><div class='del'>-              yield(:cr)</div><div class='del'>-            else</div><div class='del'>-              yield(token)</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def trim_line2(line)</div><div class='del'>-        head = nil</div><div class='del'>-        line.scan(@scan_reg) do |tokens|</div><div class='del'>-          tokens.each do |token|</div><div class='del'>-            next if token.empty?</div><div class='del'>-            head = token unless head</div><div class='del'>-            if token == "%&gt;\n" || token == "%&gt;\r\n"</div><div class='del'>-              yield('%&gt;')</div><div class='del'>-              if is_erb_stag?(head)</div><div class='del'>-                yield(:cr)</div><div class='del'>-              else</div><div class='del'>-                yield("\n")</div><div class='del'>-              end</div><div class='del'>-              head = nil</div><div class='del'>-            else</div><div class='del'>-              yield(token)</div><div class='del'>-              head = nil if token == "\n"</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def explicit_trim_line(line)</div><div class='del'>-        line.scan(@scan_reg) do |tokens|</div><div class='del'>-          tokens.each do |token|</div><div class='del'>-            next if token.empty?</div><div class='del'>-            if @stag.nil? &amp;&amp; /[ \t]*&lt;%-/ =~ token</div><div class='del'>-              yield('&lt;%')</div><div class='del'>-            elsif @stag &amp;&amp; (token == "-%&gt;\n" || token == "-%&gt;\r\n")</div><div class='del'>-              yield('%&gt;')</div><div class='del'>-              yield(:cr)</div><div class='del'>-            elsif @stag &amp;&amp; token == '-%&gt;'</div><div class='del'>-              yield('%&gt;')</div><div class='del'>-            else</div><div class='del'>-              yield(token)</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      ERB_STAG = %w(&lt;%= &lt;%# &lt;%)</div><div class='del'>-      def is_erb_stag?(s)</div><div class='del'>-        ERB_STAG.member?(s)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    Scanner.default_scanner = TrimScanner</div><div class='del'>-</div><div class='del'>-    begin</div><div class='del'>-      require 'strscan'</div><div class='del'>-    rescue LoadError</div><div class='del'>-    else</div><div class='del'>-      class SimpleScanner &lt; Scanner # :nodoc:</div><div class='del'>-        def scan</div><div class='del'>-          stag_reg = (stags == DEFAULT_STAGS) ? /(.*?)(&lt;%[%=#]?|\z)/m : /(.*?)(#{stags.join('|')}|\z)/m</div><div class='del'>-          etag_reg = (etags == DEFAULT_ETAGS) ? /(.*?)(%%?&gt;|\z)/m : /(.*?)(#{etags.join('|')}|\z)/m</div><div class='del'>-          scanner = StringScanner.new(@src)</div><div class='del'>-          while ! scanner.eos?</div><div class='del'>-            scanner.scan(@stag ? etag_reg : stag_reg)</div><div class='del'>-            yield(scanner[1])</div><div class='del'>-            yield(scanner[2])</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      Scanner.register_scanner(SimpleScanner, nil, false)</div><div class='del'>-</div><div class='del'>-      class ExplicitScanner &lt; Scanner # :nodoc:</div><div class='del'>-        def scan</div><div class='del'>-          stag_reg = /(.*?)(^[ \t]*&lt;%-|&lt;%-|#{stags.join('|')}|\z)/m</div><div class='del'>-          etag_reg = /(.*?)(-%&gt;|#{etags.join('|')}|\z)/m</div><div class='del'>-          scanner = StringScanner.new(@src)</div><div class='del'>-          while ! scanner.eos?</div><div class='del'>-            scanner.scan(@stag ? etag_reg : stag_reg)</div><div class='del'>-            yield(scanner[1])</div><div class='del'>-</div><div class='del'>-            elem = scanner[2]</div><div class='del'>-            if /[ \t]*&lt;%-/ =~ elem</div><div class='del'>-              yield('&lt;%')</div><div class='del'>-            elsif elem == '-%&gt;'</div><div class='del'>-              yield('%&gt;')</div><div class='del'>-              yield(:cr) if scanner.scan(/(\r?\n|\z)/)</div><div class='del'>-            else</div><div class='del'>-              yield(elem)</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      Scanner.register_scanner(ExplicitScanner, '-', false)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    class Buffer # :nodoc:</div><div class='del'>-      def initialize(compiler, enc=nil, frozen=nil)</div><div class='del'>-        @compiler = compiler</div><div class='del'>-        @line = []</div><div class='del'>-        @script = +''</div><div class='del'>-        @script &lt;&lt; "#coding:#{enc}\n" if enc</div><div class='del'>-        @script &lt;&lt; "#frozen-string-literal:#{frozen}\n" unless frozen.nil?</div><div class='del'>-        @compiler.pre_cmd.each do |x|</div><div class='del'>-          push(x)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      attr_reader :script</div><div class='del'>-</div><div class='del'>-      def push(cmd)</div><div class='del'>-        @line &lt;&lt; cmd</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def cr</div><div class='del'>-        @script &lt;&lt; (@line.join('; '))</div><div class='del'>-        @line = []</div><div class='del'>-        @script &lt;&lt; "\n"</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def close</div><div class='del'>-        return unless @line</div><div class='del'>-        @compiler.post_cmd.each do |x|</div><div class='del'>-          push(x)</div><div class='del'>-        end</div><div class='del'>-        @script &lt;&lt; (@line.join('; '))</div><div class='del'>-        @line = nil</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def add_put_cmd(out, content)</div><div class='del'>-      out.push("#{@put_cmd} #{content.dump}.freeze#{"\n" * content.count("\n")}")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def add_insert_cmd(out, content)</div><div class='del'>-      out.push("#{@insert_cmd}((#{content}).to_s)")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Compiles an ERB template into Ruby code.  Returns an array of the code</div><div class='del'>-    # and encoding like ["code", Encoding].</div><div class='del'>-    def compile(s)</div><div class='del'>-      enc = s.encoding</div><div class='del'>-      raise ArgumentError, "#{enc} is not ASCII compatible" if enc.dummy?</div><div class='del'>-      s = s.b # see String#b</div><div class='del'>-      magic_comment = detect_magic_comment(s, enc)</div><div class='del'>-      out = Buffer.new(self, *magic_comment)</div><div class='del'>-</div><div class='del'>-      self.content = +''</div><div class='del'>-      scanner = make_scanner(s)</div><div class='del'>-      scanner.scan do |token|</div><div class='del'>-        next if token.nil?</div><div class='del'>-        next if token == ''</div><div class='del'>-        if scanner.stag.nil?</div><div class='del'>-          compile_stag(token, out, scanner)</div><div class='del'>-        else</div><div class='del'>-          compile_etag(token, out, scanner)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      add_put_cmd(out, content) if content.size &gt; 0</div><div class='del'>-      out.close</div><div class='del'>-      return out.script, *magic_comment</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def compile_stag(stag, out, scanner)</div><div class='del'>-      case stag</div><div class='del'>-      when PercentLine</div><div class='del'>-        add_put_cmd(out, content) if content.size &gt; 0</div><div class='del'>-        self.content = +''</div><div class='del'>-        out.push(stag.to_s)</div><div class='del'>-        out.cr</div><div class='del'>-      when :cr</div><div class='del'>-        out.cr</div><div class='del'>-      when '&lt;%', '&lt;%=', '&lt;%#'</div><div class='del'>-        scanner.stag = stag</div><div class='del'>-        add_put_cmd(out, content) if content.size &gt; 0</div><div class='del'>-        self.content = +''</div><div class='del'>-      when "\n"</div><div class='del'>-        content &lt;&lt; "\n"</div><div class='del'>-        add_put_cmd(out, content)</div><div class='del'>-        self.content = +''</div><div class='del'>-      when '&lt;%%'</div><div class='del'>-        content &lt;&lt; '&lt;%'</div><div class='del'>-      else</div><div class='del'>-        content &lt;&lt; stag</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def compile_etag(etag, out, scanner)</div><div class='del'>-      case etag</div><div class='del'>-      when '%&gt;'</div><div class='del'>-        compile_content(scanner.stag, out)</div><div class='del'>-        scanner.stag = nil</div><div class='del'>-        self.content = +''</div><div class='del'>-      when '%%&gt;'</div><div class='del'>-        content &lt;&lt; '%&gt;'</div><div class='del'>-      else</div><div class='del'>-        content &lt;&lt; etag</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def compile_content(stag, out)</div><div class='del'>-      case stag</div><div class='del'>-      when '&lt;%'</div><div class='del'>-        if content[-1] == ?\n</div><div class='del'>-          content.chop!</div><div class='del'>-          out.push(content)</div><div class='del'>-          out.cr</div><div class='del'>-        else</div><div class='del'>-          out.push(content)</div><div class='del'>-        end</div><div class='del'>-      when '&lt;%='</div><div class='del'>-        add_insert_cmd(out, content)</div><div class='del'>-      when '&lt;%#'</div><div class='del'>-        # commented out</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def prepare_trim_mode(mode) # :nodoc:</div><div class='del'>-      case mode</div><div class='del'>-      when 1</div><div class='del'>-        return [false, '&gt;']</div><div class='del'>-      when 2</div><div class='del'>-        return [false, '&lt;&gt;']</div><div class='del'>-      when 0, nil</div><div class='del'>-        return [false, nil]</div><div class='del'>-      when String</div><div class='del'>-        unless mode.match?(/\A(%|-|&gt;|&lt;&gt;){1,2}\z/)</div><div class='del'>-          warn_invalid_trim_mode(mode, uplevel: 5)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        perc = mode.include?('%')</div><div class='del'>-        if mode.include?('-')</div><div class='del'>-          return [perc, '-']</div><div class='del'>-        elsif mode.include?('&lt;&gt;')</div><div class='del'>-          return [perc, '&lt;&gt;']</div><div class='del'>-        elsif mode.include?('&gt;')</div><div class='del'>-          return [perc, '&gt;']</div><div class='del'>-        else</div><div class='del'>-          [perc, nil]</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        warn_invalid_trim_mode(mode, uplevel: 5)</div><div class='del'>-        return [false, nil]</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def make_scanner(src) # :nodoc:</div><div class='del'>-      Scanner.make_scanner(src, @trim_mode, @percent)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Construct a new compiler using the trim_mode. See ERB::new for available</div><div class='del'>-    # trim modes.</div><div class='del'>-    def initialize(trim_mode)</div><div class='del'>-      @percent, @trim_mode = prepare_trim_mode(trim_mode)</div><div class='del'>-      @put_cmd = 'print'</div><div class='del'>-      @insert_cmd = @put_cmd</div><div class='del'>-      @pre_cmd = []</div><div class='del'>-      @post_cmd = []</div><div class='del'>-    end</div><div class='del'>-    attr_reader :percent, :trim_mode</div><div class='del'>-</div><div class='del'>-    # The command to handle text that ends with a newline</div><div class='del'>-    attr_accessor :put_cmd</div><div class='del'>-</div><div class='del'>-    # The command to handle text that is inserted prior to a newline</div><div class='del'>-    attr_accessor :insert_cmd</div><div class='del'>-</div><div class='del'>-    # An array of commands prepended to compiled code</div><div class='del'>-    attr_accessor :pre_cmd</div><div class='del'>-</div><div class='del'>-    # An array of commands appended to compiled code</div><div class='del'>-    attr_accessor :post_cmd</div><div class='del'>-</div><div class='del'>-    private</div><div class='del'>-</div><div class='del'>-    # A buffered text in #compile</div><div class='del'>-    attr_accessor :content</div><div class='del'>-</div><div class='del'>-    def detect_magic_comment(s, enc = nil)</div><div class='del'>-      re = @percent ? /\G(?:&lt;%#(.*)%&gt;|%#(.*)\n)/ : /\G&lt;%#(.*)%&gt;/</div><div class='del'>-      frozen = nil</div><div class='del'>-      s.scan(re) do</div><div class='del'>-        comment = $+</div><div class='del'>-        comment = $1 if comment[/-\*-\s*(.*?)\s*-*-$/]</div><div class='del'>-        case comment</div><div class='del'>-        when %r"coding\s*[=:]\s*([[:alnum:]\-_]+)"</div><div class='del'>-          enc = Encoding.find($1.sub(/-(?:mac|dos|unix)/i, ''))</div><div class='del'>-        when %r"frozen[-_]string[-_]literal\s*:\s*([[:alnum:]]+)"</div><div class='del'>-          frozen = $1</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      return enc, frozen</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def warn_invalid_trim_mode(mode, uplevel:)</div><div class='del'>-      warn "Invalid ERB trim mode: #{mode.inspect} (trim_mode: nil, 0, 1, 2, or String composed of '%' and/or '-', '&gt;', '&lt;&gt;')", uplevel: uplevel + 1</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-#--</div><div class='del'>-# ERB</div><div class='del'>-class ERB</div><div class='ctx'>   #</div><div class='ctx'>   # Constructs a new ERB object with the template specified in _str_.</div><div class='ctx'>   #</div><div class='ctx'>   # An ERB object works by building a chunk of Ruby code that will output</div><div class='del'>-  # the completed template when run. If _safe_level_ is set to a non-nil value,</div><div class='del'>-  # ERB code will be run in a separate thread with &lt;b&gt;$SAFE&lt;/b&gt; set to the</div><div class='del'>-  # provided level.</div><div class='add'>+  # the completed template when run.</div><div class='ctx'>   #</div><div class='ctx'>   # If _trim_mode_ is passed a String containing one or more of the following</div><div class='ctx'>   # modifiers, ERB will adjust its code generation as listed:</div><div class='hunk'>@@ -812,27 +333,25 @@ class ERB</div><div class='ctx'>   #  A well messages pattie, breaded and fried.</div><div class='ctx'>   #</div><div class='ctx'>   def initialize(str, safe_level=NOT_GIVEN, legacy_trim_mode=NOT_GIVEN, legacy_eoutvar=NOT_GIVEN, trim_mode: nil, eoutvar: '_erbout')</div><div class='del'>-    # Complex initializer for $SAFE deprecation at Feature #14256, which should be removed at Ruby 2.7.</div><div class='add'>+    # Complex initializer for $SAFE deprecation at [Feature #14256]. Use keyword arguments to pass trim_mode or eoutvar.</div><div class='ctx'>     if safe_level != NOT_GIVEN</div><div class='del'>-      warn 'Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.', uplevel: 1 if $VERBOSE</div><div class='del'>-    else</div><div class='del'>-      safe_level = nil</div><div class='add'>+      warn 'Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.', uplevel: 1</div><div class='ctx'>     end</div><div class='ctx'>     if legacy_trim_mode != NOT_GIVEN</div><div class='del'>-      warn 'Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.', uplevel: 1 if $VERBOSE</div><div class='add'>+      warn 'Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.', uplevel: 1</div><div class='ctx'>       trim_mode = legacy_trim_mode</div><div class='ctx'>     end</div><div class='ctx'>     if legacy_eoutvar != NOT_GIVEN</div><div class='del'>-      warn 'Passing eoutvar with the 4th argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, eoutvar: ...) instead.', uplevel: 1 if $VERBOSE</div><div class='add'>+      warn 'Passing eoutvar with the 4th argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, eoutvar: ...) instead.', uplevel: 1</div><div class='ctx'>       eoutvar = legacy_eoutvar</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    @safe_level = safe_level</div><div class='ctx'>     compiler = make_compiler(trim_mode)</div><div class='ctx'>     set_eoutvar(compiler, eoutvar)</div><div class='ctx'>     @src, @encoding, @frozen_string = *compiler.compile(str)</div><div class='ctx'>     @filename = nil</div><div class='ctx'>     @lineno = 0</div><div class='add'>+    @_init = self.class.singleton_class</div><div class='ctx'>   end</div><div class='ctx'>   NOT_GIVEN = Object.new</div><div class='ctx'>   private_constant :NOT_GIVEN</div><div class='hunk'>@@ -858,6 +377,21 @@ class ERB</div><div class='ctx'>   # is run</div><div class='ctx'>   attr_accessor :lineno</div><div class='ctx'> </div><div class='add'>+  #</div><div class='add'>+  # Sets optional filename and line number that will be used in ERB code</div><div class='add'>+  # evaluation and error reporting. See also #filename= and #lineno=</div><div class='add'>+  #</div><div class='add'>+  #   erb = ERB.new('&lt;%= some_x %&gt;')</div><div class='add'>+  #   erb.render</div><div class='add'>+  #   # undefined local variable or method `some_x'</div><div class='add'>+  #   #   from (erb):1</div><div class='add'>+  #</div><div class='add'>+  #   erb.location = ['file.erb', 3]</div><div class='add'>+  #   # All subsequent error reporting would use new location</div><div class='add'>+  #   erb.render</div><div class='add'>+  #   # undefined local variable or method `some_x'</div><div class='add'>+  #   #   from file.erb:4</div><div class='add'>+  #</div><div class='ctx'>   def location=((filename, lineno))</div><div class='ctx'>     @filename = filename</div><div class='ctx'>     @lineno = lineno if lineno</div><div class='hunk'>@@ -889,17 +423,10 @@ class ERB</div><div class='ctx'>   # code evaluation.</div><div class='ctx'>   #</div><div class='ctx'>   def result(b=new_toplevel)</div><div class='del'>-    if @safe_level</div><div class='del'>-      proc do</div><div class='del'>-        prev_safe_level = $SAFE</div><div class='del'>-        $SAFE = @safe_level</div><div class='del'>-        eval(@src, b, (@filename || '(erb)'), @lineno)</div><div class='del'>-      ensure</div><div class='del'>-        $SAFE = prev_safe_level</div><div class='del'>-      end.call</div><div class='del'>-    else</div><div class='del'>-      eval(@src, b, (@filename || '(erb)'), @lineno)</div><div class='add'>+    unless @_init.equal?(self.class.singleton_class)</div><div class='add'>+      raise ArgumentError, "not initialized"</div><div class='ctx'>     end</div><div class='add'>+    eval(@src, b, (@filename || '(erb)'), @lineno)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Render a template on a new toplevel binding with local variables specified</div><div class='hunk'>@@ -977,100 +504,3 @@ class ERB</div><div class='ctx'>     cls</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-</div><div class='del'>-#--</div><div class='del'>-# ERB::Util</div><div class='del'>-class ERB</div><div class='del'>-  # A utility module for conversion routines, often handy in HTML generation.</div><div class='del'>-  module Util</div><div class='del'>-    public</div><div class='del'>-    #</div><div class='del'>-    # A utility method for escaping HTML tag characters in _s_.</div><div class='del'>-    #</div><div class='del'>-    #   require "erb"</div><div class='del'>-    #   include ERB::Util</div><div class='del'>-    #</div><div class='del'>-    #   puts html_escape("is a &gt; 0 &amp; a &lt; 10?")</div><div class='del'>-    #</div><div class='del'>-    # _Generates_</div><div class='del'>-    #</div><div class='del'>-    #   is a &amp;gt; 0 &amp;amp; a &amp;lt; 10?</div><div class='del'>-    #</div><div class='del'>-    def html_escape(s)</div><div class='del'>-      CGI.escapeHTML(s.to_s)</div><div class='del'>-    end</div><div class='del'>-    alias h html_escape</div><div class='del'>-    module_function :h</div><div class='del'>-    module_function :html_escape</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # A utility method for encoding the String _s_ as a URL.</div><div class='del'>-    #</div><div class='del'>-    #   require "erb"</div><div class='del'>-    #   include ERB::Util</div><div class='del'>-    #</div><div class='del'>-    #   puts url_encode("Programming Ruby:  The Pragmatic Programmer's Guide")</div><div class='del'>-    #</div><div class='del'>-    # _Generates_</div><div class='del'>-    #</div><div class='del'>-    #   Programming%20Ruby%3A%20%20The%20Pragmatic%20Programmer%27s%20Guide</div><div class='del'>-    #</div><div class='del'>-    def url_encode(s)</div><div class='del'>-      s.to_s.b.gsub(/[^a-zA-Z0-9_\-.~]/n) { |m|</div><div class='del'>-        sprintf("%%%02X", m.unpack1("C"))</div><div class='del'>-      }</div><div class='del'>-    end</div><div class='del'>-    alias u url_encode</div><div class='del'>-    module_function :u</div><div class='del'>-    module_function :url_encode</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-#--</div><div class='del'>-# ERB::DefMethod</div><div class='del'>-class ERB</div><div class='del'>-  # Utility module to define eRuby script as instance method.</div><div class='del'>-  #</div><div class='del'>-  # === Example</div><div class='del'>-  #</div><div class='del'>-  # example.rhtml:</div><div class='del'>-  #   &lt;% for item in @items %&gt;</div><div class='del'>-  #   &lt;b&gt;&lt;%= item %&gt;&lt;/b&gt;</div><div class='del'>-  #   &lt;% end %&gt;</div><div class='del'>-  #</div><div class='del'>-  # example.rb:</div><div class='del'>-  #   require 'erb'</div><div class='del'>-  #   class MyClass</div><div class='del'>-  #     extend ERB::DefMethod</div><div class='del'>-  #     def_erb_method('render()', 'example.rhtml')</div><div class='del'>-  #     def initialize(items)</div><div class='del'>-  #       @items = items</div><div class='del'>-  #     end</div><div class='del'>-  #   end</div><div class='del'>-  #   print MyClass.new([10,20,30]).render()</div><div class='del'>-  #</div><div class='del'>-  # result:</div><div class='del'>-  #</div><div class='del'>-  #   &lt;b&gt;10&lt;/b&gt;</div><div class='del'>-  #</div><div class='del'>-  #   &lt;b&gt;20&lt;/b&gt;</div><div class='del'>-  #</div><div class='del'>-  #   &lt;b&gt;30&lt;/b&gt;</div><div class='del'>-  #</div><div class='del'>-  module DefMethod</div><div class='del'>-    public</div><div class='del'>-    # define _methodname_ as instance method of current module, using ERB</div><div class='del'>-    # object or eRuby file</div><div class='del'>-    def def_erb_method(methodname, erb_or_fname)</div><div class='del'>-      if erb_or_fname.kind_of? String</div><div class='del'>-        fname = erb_or_fname</div><div class='del'>-        erb = ERB.new(File.read(fname))</div><div class='del'>-        erb.def_method(self, methodname, fname)</div><div class='del'>-      else</div><div class='del'>-        erb = erb_or_fname</div><div class='del'>-        erb.def_method(self, methodname, erb.filename || '(ERB)')</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    module_function :def_erb_method</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/erb/compiler.rb b/lib/erb/compiler.rb<br/>new file mode 100644<br/>index 0000000000..547d2c4c44<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/erb/compiler.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/erb/compiler.rb</a></div><div class='hunk'>@@ -0,0 +1,471 @@</div><div class='add'>+#--</div><div class='add'>+# ERB::Compiler</div><div class='add'>+#</div><div class='add'>+# Compiles ERB templates into Ruby code; the compiled code produces the</div><div class='add'>+# template result when evaluated. ERB::Compiler provides hooks to define how</div><div class='add'>+# generated output is handled.</div><div class='add'>+#</div><div class='add'>+# Internally ERB does something like this to generate the code returned by</div><div class='add'>+# ERB#src:</div><div class='add'>+#</div><div class='add'>+#   compiler = ERB::Compiler.new('&lt;&gt;')</div><div class='add'>+#   compiler.pre_cmd    = ["_erbout=+''"]</div><div class='add'>+#   compiler.put_cmd    = "_erbout.&lt;&lt;"</div><div class='add'>+#   compiler.insert_cmd = "_erbout.&lt;&lt;"</div><div class='add'>+#   compiler.post_cmd   = ["_erbout"]</div><div class='add'>+#</div><div class='add'>+#   code, enc = compiler.compile("Got &lt;%= obj %&gt;!\n")</div><div class='add'>+#   puts code</div><div class='add'>+#</div><div class='add'>+# &lt;i&gt;Generates&lt;/i&gt;:</div><div class='add'>+#</div><div class='add'>+#   #coding:UTF-8</div><div class='add'>+#   _erbout=+''; _erbout.&lt;&lt; "Got ".freeze; _erbout.&lt;&lt;(( obj ).to_s); _erbout.&lt;&lt; "!\n".freeze; _erbout</div><div class='add'>+#</div><div class='add'>+# By default the output is sent to the print method.  For example:</div><div class='add'>+#</div><div class='add'>+#   compiler = ERB::Compiler.new('&lt;&gt;')</div><div class='add'>+#   code, enc = compiler.compile("Got &lt;%= obj %&gt;!\n")</div><div class='add'>+#   puts code</div><div class='add'>+#</div><div class='add'>+# &lt;i&gt;Generates&lt;/i&gt;:</div><div class='add'>+#</div><div class='add'>+#   #coding:UTF-8</div><div class='add'>+#   print "Got ".freeze; print(( obj ).to_s); print "!\n".freeze</div><div class='add'>+#</div><div class='add'>+# == Evaluation</div><div class='add'>+#</div><div class='add'>+# The compiled code can be used in any context where the names in the code</div><div class='add'>+# correctly resolve. Using the last example, each of these print 'Got It!'</div><div class='add'>+#</div><div class='add'>+# Evaluate using a variable:</div><div class='add'>+#</div><div class='add'>+#   obj = 'It'</div><div class='add'>+#   eval code</div><div class='add'>+#</div><div class='add'>+# Evaluate using an input:</div><div class='add'>+#</div><div class='add'>+#   mod = Module.new</div><div class='add'>+#   mod.module_eval %{</div><div class='add'>+#     def get(obj)</div><div class='add'>+#       #{code}</div><div class='add'>+#     end</div><div class='add'>+#   }</div><div class='add'>+#   extend mod</div><div class='add'>+#   get('It')</div><div class='add'>+#</div><div class='add'>+# Evaluate using an accessor:</div><div class='add'>+#</div><div class='add'>+#   klass = Class.new Object</div><div class='add'>+#   klass.class_eval %{</div><div class='add'>+#     attr_accessor :obj</div><div class='add'>+#     def initialize(obj)</div><div class='add'>+#       @obj = obj</div><div class='add'>+#     end</div><div class='add'>+#     def get_it</div><div class='add'>+#       #{code}</div><div class='add'>+#     end</div><div class='add'>+#   }</div><div class='add'>+#   klass.new('It').get_it</div><div class='add'>+#</div><div class='add'>+# Good! See also ERB#def_method, ERB#def_module, and ERB#def_class.</div><div class='add'>+class ERB::Compiler # :nodoc:</div><div class='add'>+  class PercentLine # :nodoc:</div><div class='add'>+    def initialize(str)</div><div class='add'>+      @value = str</div><div class='add'>+    end</div><div class='add'>+    attr_reader :value</div><div class='add'>+    alias :to_s :value</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Scanner # :nodoc:</div><div class='add'>+    @scanner_map = {}</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      def register_scanner(klass, trim_mode, percent)</div><div class='add'>+        @scanner_map[[trim_mode, percent]] = klass</div><div class='add'>+      end</div><div class='add'>+      alias :regist_scanner :register_scanner</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.default_scanner=(klass)</div><div class='add'>+      @default_scanner = klass</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.make_scanner(src, trim_mode, percent)</div><div class='add'>+      klass = @scanner_map.fetch([trim_mode, percent], @default_scanner)</div><div class='add'>+      klass.new(src, trim_mode, percent)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    DEFAULT_STAGS = %w(&lt;%% &lt;%= &lt;%# &lt;%).freeze</div><div class='add'>+    DEFAULT_ETAGS = %w(%%&gt; %&gt;).freeze</div><div class='add'>+    def initialize(src, trim_mode, percent)</div><div class='add'>+      @src = src</div><div class='add'>+      @stag = nil</div><div class='add'>+      @stags = DEFAULT_STAGS</div><div class='add'>+      @etags = DEFAULT_ETAGS</div><div class='add'>+    end</div><div class='add'>+    attr_accessor :stag</div><div class='add'>+    attr_reader :stags, :etags</div><div class='add'>+</div><div class='add'>+    def scan; end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class TrimScanner &lt; Scanner # :nodoc:</div><div class='add'>+    def initialize(src, trim_mode, percent)</div><div class='add'>+      super</div><div class='add'>+      @trim_mode = trim_mode</div><div class='add'>+      @percent = percent</div><div class='add'>+      if @trim_mode == '&gt;'</div><div class='add'>+        @scan_reg  = /(.*?)(%&gt;\r?\n|#{(stags + etags).join('|')}|\n|\z)/m</div><div class='add'>+        @scan_line = self.method(:trim_line1)</div><div class='add'>+      elsif @trim_mode == '&lt;&gt;'</div><div class='add'>+        @scan_reg  = /(.*?)(%&gt;\r?\n|#{(stags + etags).join('|')}|\n|\z)/m</div><div class='add'>+        @scan_line = self.method(:trim_line2)</div><div class='add'>+      elsif @trim_mode == '-'</div><div class='add'>+        @scan_reg  = /(.*?)(^[ \t]*&lt;%\-|&lt;%\-|-%&gt;\r?\n|-%&gt;|#{(stags + etags).join('|')}|\z)/m</div><div class='add'>+        @scan_line = self.method(:explicit_trim_line)</div><div class='add'>+      else</div><div class='add'>+        @scan_reg  = /(.*?)(#{(stags + etags).join('|')}|\n|\z)/m</div><div class='add'>+        @scan_line = self.method(:scan_line)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def scan(&amp;block)</div><div class='add'>+      @stag = nil</div><div class='add'>+      if @percent</div><div class='add'>+        @src.each_line do |line|</div><div class='add'>+          percent_line(line, &amp;block)</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        @scan_line.call(@src, &amp;block)</div><div class='add'>+      end</div><div class='add'>+      nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def percent_line(line, &amp;block)</div><div class='add'>+      if @stag || line[0] != ?%</div><div class='add'>+        return @scan_line.call(line, &amp;block)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      line[0] = ''</div><div class='add'>+      if line[0] == ?%</div><div class='add'>+        @scan_line.call(line, &amp;block)</div><div class='add'>+      else</div><div class='add'>+        yield(PercentLine.new(line.chomp))</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def scan_line(line)</div><div class='add'>+      line.scan(@scan_reg) do |tokens|</div><div class='add'>+        tokens.each do |token|</div><div class='add'>+          next if token.empty?</div><div class='add'>+          yield(token)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def trim_line1(line)</div><div class='add'>+      line.scan(@scan_reg) do |tokens|</div><div class='add'>+        tokens.each do |token|</div><div class='add'>+          next if token.empty?</div><div class='add'>+          if token == "%&gt;\n" || token == "%&gt;\r\n"</div><div class='add'>+            yield('%&gt;')</div><div class='add'>+            yield(:cr)</div><div class='add'>+          else</div><div class='add'>+            yield(token)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def trim_line2(line)</div><div class='add'>+      head = nil</div><div class='add'>+      line.scan(@scan_reg) do |tokens|</div><div class='add'>+        tokens.each do |token|</div><div class='add'>+          next if token.empty?</div><div class='add'>+          head = token unless head</div><div class='add'>+          if token == "%&gt;\n" || token == "%&gt;\r\n"</div><div class='add'>+            yield('%&gt;')</div><div class='add'>+            if is_erb_stag?(head)</div><div class='add'>+              yield(:cr)</div><div class='add'>+            else</div><div class='add'>+              yield("\n")</div><div class='add'>+            end</div><div class='add'>+            head = nil</div><div class='add'>+          else</div><div class='add'>+            yield(token)</div><div class='add'>+            head = nil if token == "\n"</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def explicit_trim_line(line)</div><div class='add'>+      line.scan(@scan_reg) do |tokens|</div><div class='add'>+        tokens.each do |token|</div><div class='add'>+          next if token.empty?</div><div class='add'>+          if @stag.nil? &amp;&amp; /[ \t]*&lt;%-/ =~ token</div><div class='add'>+            yield('&lt;%')</div><div class='add'>+          elsif @stag &amp;&amp; (token == "-%&gt;\n" || token == "-%&gt;\r\n")</div><div class='add'>+            yield('%&gt;')</div><div class='add'>+            yield(:cr)</div><div class='add'>+          elsif @stag &amp;&amp; token == '-%&gt;'</div><div class='add'>+            yield('%&gt;')</div><div class='add'>+          else</div><div class='add'>+            yield(token)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    ERB_STAG = %w(&lt;%= &lt;%# &lt;%)</div><div class='add'>+    def is_erb_stag?(s)</div><div class='add'>+      ERB_STAG.member?(s)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  Scanner.default_scanner = TrimScanner</div><div class='add'>+</div><div class='add'>+  begin</div><div class='add'>+    require 'strscan'</div><div class='add'>+  rescue LoadError</div><div class='add'>+  else</div><div class='add'>+    class SimpleScanner &lt; Scanner # :nodoc:</div><div class='add'>+      def scan</div><div class='add'>+        stag_reg = (stags == DEFAULT_STAGS) ? /(.*?)(&lt;%[%=#]?|\z)/m : /(.*?)(#{stags.join('|')}|\z)/m</div><div class='add'>+        etag_reg = (etags == DEFAULT_ETAGS) ? /(.*?)(%%?&gt;|\z)/m : /(.*?)(#{etags.join('|')}|\z)/m</div><div class='add'>+        scanner = StringScanner.new(@src)</div><div class='add'>+        while ! scanner.eos?</div><div class='add'>+          scanner.scan(@stag ? etag_reg : stag_reg)</div><div class='add'>+          yield(scanner[1])</div><div class='add'>+          yield(scanner[2])</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    Scanner.register_scanner(SimpleScanner, nil, false)</div><div class='add'>+</div><div class='add'>+    class ExplicitScanner &lt; Scanner # :nodoc:</div><div class='add'>+      def scan</div><div class='add'>+        stag_reg = /(.*?)(^[ \t]*&lt;%-|&lt;%-|#{stags.join('|')}|\z)/m</div><div class='add'>+        etag_reg = /(.*?)(-%&gt;|#{etags.join('|')}|\z)/m</div><div class='add'>+        scanner = StringScanner.new(@src)</div><div class='add'>+        while ! scanner.eos?</div><div class='add'>+          scanner.scan(@stag ? etag_reg : stag_reg)</div><div class='add'>+          yield(scanner[1])</div><div class='add'>+</div><div class='add'>+          elem = scanner[2]</div><div class='add'>+          if /[ \t]*&lt;%-/ =~ elem</div><div class='add'>+            yield('&lt;%')</div><div class='add'>+          elsif elem == '-%&gt;'</div><div class='add'>+            yield('%&gt;')</div><div class='add'>+            yield(:cr) if scanner.scan(/(\r?\n|\z)/)</div><div class='add'>+          else</div><div class='add'>+            yield(elem)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    Scanner.register_scanner(ExplicitScanner, '-', false)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Buffer # :nodoc:</div><div class='add'>+    def initialize(compiler, enc=nil, frozen=nil)</div><div class='add'>+      @compiler = compiler</div><div class='add'>+      @line = []</div><div class='add'>+      @script = +''</div><div class='add'>+      @script &lt;&lt; "#coding:#{enc}\n" if enc</div><div class='add'>+      @script &lt;&lt; "#frozen-string-literal:#{frozen}\n" unless frozen.nil?</div><div class='add'>+      @compiler.pre_cmd.each do |x|</div><div class='add'>+        push(x)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    attr_reader :script</div><div class='add'>+</div><div class='add'>+    def push(cmd)</div><div class='add'>+      @line &lt;&lt; cmd</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def cr</div><div class='add'>+      @script &lt;&lt; (@line.join('; '))</div><div class='add'>+      @line = []</div><div class='add'>+      @script &lt;&lt; "\n"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def close</div><div class='add'>+      return unless @line</div><div class='add'>+      @compiler.post_cmd.each do |x|</div><div class='add'>+        push(x)</div><div class='add'>+      end</div><div class='add'>+      @script &lt;&lt; (@line.join('; '))</div><div class='add'>+      @line = nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def add_put_cmd(out, content)</div><div class='add'>+    out.push("#{@put_cmd} #{content.dump}.freeze#{"\n" * content.count("\n")}")</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def add_insert_cmd(out, content)</div><div class='add'>+    out.push("#{@insert_cmd}((#{content}).to_s)")</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Compiles an ERB template into Ruby code.  Returns an array of the code</div><div class='add'>+  # and encoding like ["code", Encoding].</div><div class='add'>+  def compile(s)</div><div class='add'>+    enc = s.encoding</div><div class='add'>+    raise ArgumentError, "#{enc} is not ASCII compatible" if enc.dummy?</div><div class='add'>+    s = s.b # see String#b</div><div class='add'>+    magic_comment = detect_magic_comment(s, enc)</div><div class='add'>+    out = Buffer.new(self, *magic_comment)</div><div class='add'>+</div><div class='add'>+    self.content = +''</div><div class='add'>+    scanner = make_scanner(s)</div><div class='add'>+    scanner.scan do |token|</div><div class='add'>+      next if token.nil?</div><div class='add'>+      next if token == ''</div><div class='add'>+      if scanner.stag.nil?</div><div class='add'>+        compile_stag(token, out, scanner)</div><div class='add'>+      else</div><div class='add'>+        compile_etag(token, out, scanner)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    add_put_cmd(out, content) if content.size &gt; 0</div><div class='add'>+    out.close</div><div class='add'>+    return out.script, *magic_comment</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def compile_stag(stag, out, scanner)</div><div class='add'>+    case stag</div><div class='add'>+    when PercentLine</div><div class='add'>+      add_put_cmd(out, content) if content.size &gt; 0</div><div class='add'>+      self.content = +''</div><div class='add'>+      out.push(stag.to_s)</div><div class='add'>+      out.cr</div><div class='add'>+    when :cr</div><div class='add'>+      out.cr</div><div class='add'>+    when '&lt;%', '&lt;%=', '&lt;%#'</div><div class='add'>+      scanner.stag = stag</div><div class='add'>+      add_put_cmd(out, content) if content.size &gt; 0</div><div class='add'>+      self.content = +''</div><div class='add'>+    when "\n"</div><div class='add'>+      content &lt;&lt; "\n"</div><div class='add'>+      add_put_cmd(out, content)</div><div class='add'>+      self.content = +''</div><div class='add'>+    when '&lt;%%'</div><div class='add'>+      content &lt;&lt; '&lt;%'</div><div class='add'>+    else</div><div class='add'>+      content &lt;&lt; stag</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def compile_etag(etag, out, scanner)</div><div class='add'>+    case etag</div><div class='add'>+    when '%&gt;'</div><div class='add'>+      compile_content(scanner.stag, out)</div><div class='add'>+      scanner.stag = nil</div><div class='add'>+      self.content = +''</div><div class='add'>+    when '%%&gt;'</div><div class='add'>+      content &lt;&lt; '%&gt;'</div><div class='add'>+    else</div><div class='add'>+      content &lt;&lt; etag</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def compile_content(stag, out)</div><div class='add'>+    case stag</div><div class='add'>+    when '&lt;%'</div><div class='add'>+      if content[-1] == ?\n</div><div class='add'>+        content.chop!</div><div class='add'>+        out.push(content)</div><div class='add'>+        out.cr</div><div class='add'>+      else</div><div class='add'>+        out.push(content)</div><div class='add'>+      end</div><div class='add'>+    when '&lt;%='</div><div class='add'>+      add_insert_cmd(out, content)</div><div class='add'>+    when '&lt;%#'</div><div class='add'>+      out.push("\n" * content.count("\n")) # only adjust lineno</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def prepare_trim_mode(mode) # :nodoc:</div><div class='add'>+    case mode</div><div class='add'>+    when 1</div><div class='add'>+      return [false, '&gt;']</div><div class='add'>+    when 2</div><div class='add'>+      return [false, '&lt;&gt;']</div><div class='add'>+    when 0, nil</div><div class='add'>+      return [false, nil]</div><div class='add'>+    when String</div><div class='add'>+      unless mode.match?(/\A(%|-|&gt;|&lt;&gt;){1,2}\z/)</div><div class='add'>+        warn_invalid_trim_mode(mode, uplevel: 5)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      perc = mode.include?('%')</div><div class='add'>+      if mode.include?('-')</div><div class='add'>+        return [perc, '-']</div><div class='add'>+      elsif mode.include?('&lt;&gt;')</div><div class='add'>+        return [perc, '&lt;&gt;']</div><div class='add'>+      elsif mode.include?('&gt;')</div><div class='add'>+        return [perc, '&gt;']</div><div class='add'>+      else</div><div class='add'>+        [perc, nil]</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      warn_invalid_trim_mode(mode, uplevel: 5)</div><div class='add'>+      return [false, nil]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def make_scanner(src) # :nodoc:</div><div class='add'>+    Scanner.make_scanner(src, @trim_mode, @percent)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Construct a new compiler using the trim_mode. See ERB::new for available</div><div class='add'>+  # trim modes.</div><div class='add'>+  def initialize(trim_mode)</div><div class='add'>+    @percent, @trim_mode = prepare_trim_mode(trim_mode)</div><div class='add'>+    @put_cmd = 'print'</div><div class='add'>+    @insert_cmd = @put_cmd</div><div class='add'>+    @pre_cmd = []</div><div class='add'>+    @post_cmd = []</div><div class='add'>+  end</div><div class='add'>+  attr_reader :percent, :trim_mode</div><div class='add'>+</div><div class='add'>+  # The command to handle text that ends with a newline</div><div class='add'>+  attr_accessor :put_cmd</div><div class='add'>+</div><div class='add'>+  # The command to handle text that is inserted prior to a newline</div><div class='add'>+  attr_accessor :insert_cmd</div><div class='add'>+</div><div class='add'>+  # An array of commands prepended to compiled code</div><div class='add'>+  attr_accessor :pre_cmd</div><div class='add'>+</div><div class='add'>+  # An array of commands appended to compiled code</div><div class='add'>+  attr_accessor :post_cmd</div><div class='add'>+</div><div class='add'>+  private</div><div class='add'>+</div><div class='add'>+  # A buffered text in #compile</div><div class='add'>+  attr_accessor :content</div><div class='add'>+</div><div class='add'>+  def detect_magic_comment(s, enc = nil)</div><div class='add'>+    re = @percent ? /\G(?:&lt;%#(.*)%&gt;|%#(.*)\n)/ : /\G&lt;%#(.*)%&gt;/</div><div class='add'>+    frozen = nil</div><div class='add'>+    s.scan(re) do</div><div class='add'>+      comment = $+</div><div class='add'>+      comment = $1 if comment[/-\*-\s*([^\s].*?)\s*-\*-$/]</div><div class='add'>+      case comment</div><div class='add'>+      when %r"coding\s*[=:]\s*([[:alnum:]\-_]+)"</div><div class='add'>+        enc = Encoding.find($1.sub(/-(?:mac|dos|unix)/i, ''))</div><div class='add'>+      when %r"frozen[-_]string[-_]literal\s*:\s*([[:alnum:]]+)"</div><div class='add'>+        frozen = $1</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    return enc, frozen</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def warn_invalid_trim_mode(mode, uplevel:)</div><div class='add'>+    warn "Invalid ERB trim mode: #{mode.inspect} (trim_mode: nil, 0, 1, 2, or String composed of '%' and/or '-', '&gt;', '&lt;&gt;')", uplevel: uplevel + 1</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/erb/def_method.rb b/lib/erb/def_method.rb<br/>new file mode 100644<br/>index 0000000000..17f9c0f9fa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/erb/def_method.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/erb/def_method.rb</a></div><div class='hunk'>@@ -0,0 +1,46 @@</div><div class='add'>+#--</div><div class='add'>+# ERB::DefMethod</div><div class='add'>+#</div><div class='add'>+# Utility module to define eRuby script as instance method.</div><div class='add'>+#</div><div class='add'>+# === Example</div><div class='add'>+#</div><div class='add'>+# example.rhtml:</div><div class='add'>+#   &lt;% for item in @items %&gt;</div><div class='add'>+#   &lt;b&gt;&lt;%= item %&gt;&lt;/b&gt;</div><div class='add'>+#   &lt;% end %&gt;</div><div class='add'>+#</div><div class='add'>+# example.rb:</div><div class='add'>+#   require 'erb'</div><div class='add'>+#   class MyClass</div><div class='add'>+#     extend ERB::DefMethod</div><div class='add'>+#     def_erb_method('render()', 'example.rhtml')</div><div class='add'>+#     def initialize(items)</div><div class='add'>+#       @items = items</div><div class='add'>+#     end</div><div class='add'>+#   end</div><div class='add'>+#   print MyClass.new([10,20,30]).render()</div><div class='add'>+#</div><div class='add'>+# result:</div><div class='add'>+#</div><div class='add'>+#   &lt;b&gt;10&lt;/b&gt;</div><div class='add'>+#</div><div class='add'>+#   &lt;b&gt;20&lt;/b&gt;</div><div class='add'>+#</div><div class='add'>+#   &lt;b&gt;30&lt;/b&gt;</div><div class='add'>+#</div><div class='add'>+module ERB::DefMethod</div><div class='add'>+  # define _methodname_ as instance method of current module, using ERB</div><div class='add'>+  # object or eRuby file</div><div class='add'>+  def def_erb_method(methodname, erb_or_fname)</div><div class='add'>+    if erb_or_fname.kind_of? String</div><div class='add'>+      fname = erb_or_fname</div><div class='add'>+      erb = ERB.new(File.read(fname))</div><div class='add'>+      erb.def_method(self, methodname, fname)</div><div class='add'>+    else</div><div class='add'>+      erb = erb_or_fname</div><div class='add'>+      erb.def_method(self, methodname, erb.filename || '(ERB)')</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  module_function :def_erb_method</div><div class='add'>+end</div><div class='head'>diff --git a/lib/erb/util.rb b/lib/erb/util.rb<br/>new file mode 100644<br/>index 0000000000..0c1e7482a8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/erb/util.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/erb/util.rb</a></div><div class='hunk'>@@ -0,0 +1,62 @@</div><div class='add'>+#--</div><div class='add'>+# ERB::Escape</div><div class='add'>+#</div><div class='add'>+# A subset of ERB::Util. Unlike ERB::Util#html_escape, we expect/hope</div><div class='add'>+# Rails will not monkey-patch ERB::Escape#html_escape.</div><div class='add'>+begin</div><div class='add'>+  # We don't build the C extension for JRuby, TruffleRuby, and WASM</div><div class='add'>+  if $LOAD_PATH.resolve_feature_path('erb/escape')</div><div class='add'>+    require 'erb/escape'</div><div class='add'>+  end</div><div class='add'>+rescue LoadError # resolve_feature_path raises LoadError on TruffleRuby 22.3.0</div><div class='add'>+end</div><div class='add'>+unless defined?(ERB::Escape)</div><div class='add'>+  module ERB::Escape</div><div class='add'>+    def html_escape(s)</div><div class='add'>+      CGI.escapeHTML(s.to_s)</div><div class='add'>+    end</div><div class='add'>+    module_function :html_escape</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+#--</div><div class='add'>+# ERB::Util</div><div class='add'>+#</div><div class='add'>+# A utility module for conversion routines, often handy in HTML generation.</div><div class='add'>+module ERB::Util</div><div class='add'>+  #</div><div class='add'>+  # A utility method for escaping HTML tag characters in _s_.</div><div class='add'>+  #</div><div class='add'>+  #   require "erb"</div><div class='add'>+  #   include ERB::Util</div><div class='add'>+  #</div><div class='add'>+  #   puts html_escape("is a &gt; 0 &amp; a &lt; 10?")</div><div class='add'>+  #</div><div class='add'>+  # _Generates_</div><div class='add'>+  #</div><div class='add'>+  #   is a &amp;gt; 0 &amp;amp; a &amp;lt; 10?</div><div class='add'>+  #</div><div class='add'>+  include ERB::Escape # html_escape</div><div class='add'>+  module_function :html_escape</div><div class='add'>+  alias h html_escape</div><div class='add'>+  module_function :h</div><div class='add'>+</div><div class='add'>+  #</div><div class='add'>+  # A utility method for encoding the String _s_ as a URL.</div><div class='add'>+  #</div><div class='add'>+  #   require "erb"</div><div class='add'>+  #   include ERB::Util</div><div class='add'>+  #</div><div class='add'>+  #   puts url_encode("Programming Ruby:  The Pragmatic Programmer's Guide")</div><div class='add'>+  #</div><div class='add'>+  # _Generates_</div><div class='add'>+  #</div><div class='add'>+  #   Programming%20Ruby%3A%20%20The%20Pragmatic%20Programmer%27s%20Guide</div><div class='add'>+  #</div><div class='add'>+  def url_encode(s)</div><div class='add'>+    CGI.escapeURIComponent(s.to_s)</div><div class='add'>+  end</div><div class='add'>+  alias u url_encode</div><div class='add'>+  module_function :u</div><div class='add'>+  module_function :url_encode</div><div class='add'>+end</div><div class='head'>diff --git a/lib/erb/version.rb b/lib/erb/version.rb<br/>new file mode 100644<br/>index 0000000000..38e1b76ff4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/erb/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/erb/version.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+class ERB</div><div class='add'>+  VERSION = '4.0.2'</div><div class='add'>+  private_constant :VERSION</div><div class='add'>+end</div><div class='head'>diff --git a/lib/error_highlight.rb b/lib/error_highlight.rb<br/>new file mode 100644<br/>index 0000000000..31db95d11b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/error_highlight.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/error_highlight.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+require_relative "error_highlight/base"</div><div class='add'>+require_relative "error_highlight/core_ext"</div><div class='head'>diff --git a/lib/error_highlight/base.rb b/lib/error_highlight/base.rb<br/>new file mode 100644<br/>index 0000000000..062871ee16<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/error_highlight/base.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/error_highlight/base.rb</a></div><div class='hunk'>@@ -0,0 +1,514 @@</div><div class='add'>+require_relative "version"</div><div class='add'>+</div><div class='add'>+module ErrorHighlight</div><div class='add'>+  # Identify the code fragment at that a given exception occurred.</div><div class='add'>+  #</div><div class='add'>+  # Options:</div><div class='add'>+  #</div><div class='add'>+  # point_type: :name | :args</div><div class='add'>+  #   :name (default) points the method/variable name that the exception occurred.</div><div class='add'>+  #   :args points the arguments of the method call that the exception occurred.</div><div class='add'>+  #</div><div class='add'>+  # backtrace_location: Thread::Backtrace::Location</div><div class='add'>+  #   It locates the code fragment of the given backtrace_location.</div><div class='add'>+  #   By default, it uses the first frame of backtrace_locations of the given exception.</div><div class='add'>+  #</div><div class='add'>+  # Returns:</div><div class='add'>+  #  {</div><div class='add'>+  #    first_lineno: Integer,</div><div class='add'>+  #    first_column: Integer,</div><div class='add'>+  #    last_lineno: Integer,</div><div class='add'>+  #    last_column: Integer,</div><div class='add'>+  #    snippet: String,</div><div class='add'>+  #    script_lines: [String],</div><div class='add'>+  #  } | nil</div><div class='add'>+  #</div><div class='add'>+  # Limitations:</div><div class='add'>+  #</div><div class='add'>+  # Currently, ErrorHighlight.spot only supports a single-line code fragment.</div><div class='add'>+  # Therefore, if the return value is not nil, first_lineno and last_lineno will have</div><div class='add'>+  # the same value. If the relevant code fragment spans multiple lines</div><div class='add'>+  # (e.g., Array#[] of +ary[(newline)expr(newline)]+), the method will return nil.</div><div class='add'>+  # This restriction may be removed in the future.</div><div class='add'>+  def self.spot(obj, **opts)</div><div class='add'>+    case obj</div><div class='add'>+    when Exception</div><div class='add'>+      exc = obj</div><div class='add'>+      loc = opts[:backtrace_location]</div><div class='add'>+      opts = { point_type: opts.fetch(:point_type, :name) }</div><div class='add'>+</div><div class='add'>+      unless loc</div><div class='add'>+        case exc</div><div class='add'>+        when TypeError, ArgumentError</div><div class='add'>+          opts[:point_type] = :args</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        locs = exc.backtrace_locations</div><div class='add'>+        return nil unless locs</div><div class='add'>+</div><div class='add'>+        loc = locs.first</div><div class='add'>+        return nil unless loc</div><div class='add'>+</div><div class='add'>+        opts[:name] = exc.name if NameError === obj</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      return nil unless Thread::Backtrace::Location === loc</div><div class='add'>+</div><div class='add'>+      node = RubyVM::AbstractSyntaxTree.of(loc, keep_script_lines: true)</div><div class='add'>+</div><div class='add'>+      Spotter.new(node, **opts).spot</div><div class='add'>+</div><div class='add'>+    when RubyVM::AbstractSyntaxTree::Node</div><div class='add'>+      Spotter.new(obj, **opts).spot</div><div class='add'>+</div><div class='add'>+    else</div><div class='add'>+      raise TypeError, "Exception is expected"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+  rescue SyntaxError,</div><div class='add'>+         SystemCallError, # file not found or something</div><div class='add'>+         ArgumentError # eval'ed code</div><div class='add'>+</div><div class='add'>+    return nil</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class Spotter</div><div class='add'>+    class NonAscii &lt; Exception; end</div><div class='add'>+    private_constant :NonAscii</div><div class='add'>+</div><div class='add'>+    def initialize(node, point_type: :name, name: nil)</div><div class='add'>+      @node = node</div><div class='add'>+      @point_type = point_type</div><div class='add'>+      @name = name</div><div class='add'>+</div><div class='add'>+      # Not-implemented-yet options</div><div class='add'>+      @arg = nil # Specify the index or keyword at which argument caused the TypeError/ArgumentError</div><div class='add'>+      @multiline = false # Allow multiline spot</div><div class='add'>+</div><div class='add'>+      @fetch = -&gt; (lineno, last_lineno = lineno) do</div><div class='add'>+        snippet = @node.script_lines[lineno - 1 .. last_lineno - 1].join("")</div><div class='add'>+        snippet += "\n" unless snippet.end_with?("\n")</div><div class='add'>+</div><div class='add'>+        # It require some work to support Unicode (or multibyte) characters.</div><div class='add'>+        # Tentatively, we stop highlighting if the code snippet has non-ascii characters.</div><div class='add'>+        # See https://github.com/ruby/error_highlight/issues/4</div><div class='add'>+        raise NonAscii unless snippet.ascii_only?</div><div class='add'>+</div><div class='add'>+        snippet</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def spot</div><div class='add'>+      return nil unless @node</div><div class='add'>+</div><div class='add'>+      case @node.type</div><div class='add'>+</div><div class='add'>+      when :CALL, :QCALL</div><div class='add'>+        case @point_type</div><div class='add'>+        when :name</div><div class='add'>+          spot_call_for_name</div><div class='add'>+        when :args</div><div class='add'>+          spot_call_for_args</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      when :ATTRASGN</div><div class='add'>+        case @point_type</div><div class='add'>+        when :name</div><div class='add'>+          spot_attrasgn_for_name</div><div class='add'>+        when :args</div><div class='add'>+          spot_attrasgn_for_args</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      when :OPCALL</div><div class='add'>+        case @point_type</div><div class='add'>+        when :name</div><div class='add'>+          spot_opcall_for_name</div><div class='add'>+        when :args</div><div class='add'>+          spot_opcall_for_args</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      when :FCALL</div><div class='add'>+        case @point_type</div><div class='add'>+        when :name</div><div class='add'>+          spot_fcall_for_name</div><div class='add'>+        when :args</div><div class='add'>+          spot_fcall_for_args</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      when :VCALL</div><div class='add'>+        spot_vcall</div><div class='add'>+</div><div class='add'>+      when :OP_ASGN1</div><div class='add'>+        case @point_type</div><div class='add'>+        when :name</div><div class='add'>+          spot_op_asgn1_for_name</div><div class='add'>+        when :args</div><div class='add'>+          spot_op_asgn1_for_args</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      when :OP_ASGN2</div><div class='add'>+        case @point_type</div><div class='add'>+        when :name</div><div class='add'>+          spot_op_asgn2_for_name</div><div class='add'>+        when :args</div><div class='add'>+          spot_op_asgn2_for_args</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      when :CONST</div><div class='add'>+        spot_vcall</div><div class='add'>+</div><div class='add'>+      when :COLON2</div><div class='add'>+        spot_colon2</div><div class='add'>+</div><div class='add'>+      when :COLON3</div><div class='add'>+        spot_vcall</div><div class='add'>+</div><div class='add'>+      when :OP_CDECL</div><div class='add'>+        spot_op_cdecl</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if @snippet &amp;&amp; @beg_column &amp;&amp; @end_column &amp;&amp; @beg_column &lt; @end_column</div><div class='add'>+        return {</div><div class='add'>+          first_lineno: @beg_lineno,</div><div class='add'>+          first_column: @beg_column,</div><div class='add'>+          last_lineno: @end_lineno,</div><div class='add'>+          last_column: @end_column,</div><div class='add'>+          snippet: @snippet,</div><div class='add'>+          script_lines: @node.script_lines,</div><div class='add'>+        }</div><div class='add'>+      else</div><div class='add'>+        return nil</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+    rescue NonAscii</div><div class='add'>+      nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   x.foo</div><div class='add'>+    #    ^^^^</div><div class='add'>+    #   x.foo(42)</div><div class='add'>+    #    ^^^^</div><div class='add'>+    #   x&amp;.foo</div><div class='add'>+    #    ^^^^^</div><div class='add'>+    #   x[42]</div><div class='add'>+    #    ^^^^</div><div class='add'>+    #   x += 1</div><div class='add'>+    #     ^</div><div class='add'>+    def spot_call_for_name</div><div class='add'>+      nd_recv, mid, nd_args = @node.children</div><div class='add'>+      lineno = nd_recv.last_lineno</div><div class='add'>+      lines = @fetch[lineno, @node.last_lineno]</div><div class='add'>+      if mid == :[] &amp;&amp; lines.match(/\G[\s)]*(\[(?:\s*\])?)/, nd_recv.last_column)</div><div class='add'>+        @beg_column = $~.begin(1)</div><div class='add'>+        @snippet = lines[/.*\n/]</div><div class='add'>+        @beg_lineno = @end_lineno = lineno</div><div class='add'>+        if nd_args</div><div class='add'>+          if nd_recv.last_lineno == nd_args.last_lineno &amp;&amp; @snippet.match(/\s*\]/, nd_args.last_column)</div><div class='add'>+            @end_column = $~.end(0)</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          if lines.match(/\G[\s)]*?\[\s*\]/, nd_recv.last_column)</div><div class='add'>+            @end_column = $~.end(0)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      elsif lines.match(/\G[\s)]*?(\&amp;?\.)(\s*?)(#{ Regexp.quote(mid) }).*\n/, nd_recv.last_column)</div><div class='add'>+        lines = $` + $&amp;</div><div class='add'>+        @beg_column = $~.begin($2.include?("\n") ? 3 : 1)</div><div class='add'>+        @end_column = $~.end(3)</div><div class='add'>+        if i = lines[..@beg_column].rindex("\n")</div><div class='add'>+          @beg_lineno = @end_lineno = lineno + lines[..@beg_column].count("\n")</div><div class='add'>+          @snippet = lines[i + 1..]</div><div class='add'>+          @beg_column -= i + 1</div><div class='add'>+          @end_column -= i + 1</div><div class='add'>+        else</div><div class='add'>+          @snippet = lines</div><div class='add'>+          @beg_lineno = @end_lineno = lineno</div><div class='add'>+        end</div><div class='add'>+      elsif mid.to_s =~ /\A\W+\z/ &amp;&amp; lines.match(/\G\s*(#{ Regexp.quote(mid) })=.*\n/, nd_recv.last_column)</div><div class='add'>+        @snippet = $` + $&amp;</div><div class='add'>+        @beg_column = $~.begin(1)</div><div class='add'>+        @end_column = $~.end(1)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   x.foo(42)</div><div class='add'>+    #         ^^</div><div class='add'>+    #   x[42]</div><div class='add'>+    #     ^^</div><div class='add'>+    #   x += 1</div><div class='add'>+    #        ^</div><div class='add'>+    def spot_call_for_args</div><div class='add'>+      _nd_recv, _mid, nd_args = @node.children</div><div class='add'>+      if nd_args &amp;&amp; nd_args.first_lineno == nd_args.last_lineno</div><div class='add'>+        fetch_line(nd_args.first_lineno)</div><div class='add'>+        @beg_column = nd_args.first_column</div><div class='add'>+        @end_column = nd_args.last_column</div><div class='add'>+      end</div><div class='add'>+      # TODO: support @arg</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   x.foo = 1</div><div class='add'>+    #    ^^^^^^</div><div class='add'>+    #   x[42] = 1</div><div class='add'>+    #    ^^^^^^</div><div class='add'>+    def spot_attrasgn_for_name</div><div class='add'>+      nd_recv, mid, nd_args = @node.children</div><div class='add'>+      *nd_args, _nd_last_arg, _nil = nd_args.children</div><div class='add'>+      fetch_line(nd_recv.last_lineno)</div><div class='add'>+      if mid == :[]= &amp;&amp; @snippet.match(/\G[\s)]*(\[)/, nd_recv.last_column)</div><div class='add'>+        @beg_column = $~.begin(1)</div><div class='add'>+        args_last_column = $~.end(0)</div><div class='add'>+        if nd_args.last &amp;&amp; nd_recv.last_lineno == nd_args.last.last_lineno</div><div class='add'>+          args_last_column = nd_args.last.last_column</div><div class='add'>+        end</div><div class='add'>+        if @snippet.match(/[\s)]*\]\s*=/, args_last_column)</div><div class='add'>+          @end_column = $~.end(0)</div><div class='add'>+        end</div><div class='add'>+      elsif @snippet.match(/\G[\s)]*(\.\s*#{ Regexp.quote(mid.to_s.sub(/=\z/, "")) }\s*=)/, nd_recv.last_column)</div><div class='add'>+        @beg_column = $~.begin(1)</div><div class='add'>+        @end_column = $~.end(1)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   x.foo = 1</div><div class='add'>+    #           ^</div><div class='add'>+    #   x[42] = 1</div><div class='add'>+    #     ^^^^^^^</div><div class='add'>+    #   x[] = 1</div><div class='add'>+    #     ^^^^^</div><div class='add'>+    def spot_attrasgn_for_args</div><div class='add'>+      nd_recv, mid, nd_args = @node.children</div><div class='add'>+      fetch_line(nd_recv.last_lineno)</div><div class='add'>+      if mid == :[]= &amp;&amp; @snippet.match(/\G[\s)]*\[/, nd_recv.last_column)</div><div class='add'>+        @beg_column = $~.end(0)</div><div class='add'>+        if nd_recv.last_lineno == nd_args.last_lineno</div><div class='add'>+          @end_column = nd_args.last_column</div><div class='add'>+        end</div><div class='add'>+      elsif nd_args &amp;&amp; nd_args.first_lineno == nd_args.last_lineno</div><div class='add'>+        @beg_column = nd_args.first_column</div><div class='add'>+        @end_column = nd_args.last_column</div><div class='add'>+      end</div><div class='add'>+      # TODO: support @arg</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   x + 1</div><div class='add'>+    #     ^</div><div class='add'>+    #   +x</div><div class='add'>+    #   ^</div><div class='add'>+    def spot_opcall_for_name</div><div class='add'>+      nd_recv, op, nd_arg = @node.children</div><div class='add'>+      fetch_line(nd_recv.last_lineno)</div><div class='add'>+      if nd_arg</div><div class='add'>+        # binary operator</div><div class='add'>+        if @snippet.match(/\G[\s)]*(#{ Regexp.quote(op) })/, nd_recv.last_column)</div><div class='add'>+          @beg_column = $~.begin(1)</div><div class='add'>+          @end_column = $~.end(1)</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        # unary operator</div><div class='add'>+        if @snippet[...nd_recv.first_column].match(/(#{ Regexp.quote(op.to_s.sub(/@\z/, "")) })\s*\(?\s*\z/)</div><div class='add'>+          @beg_column = $~.begin(1)</div><div class='add'>+          @end_column = $~.end(1)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   x + 1</div><div class='add'>+    #       ^</div><div class='add'>+    def spot_opcall_for_args</div><div class='add'>+      _nd_recv, _op, nd_arg = @node.children</div><div class='add'>+      if nd_arg &amp;&amp; nd_arg.first_lineno == nd_arg.last_lineno</div><div class='add'>+        # binary operator</div><div class='add'>+        fetch_line(nd_arg.first_lineno)</div><div class='add'>+        @beg_column = nd_arg.first_column</div><div class='add'>+        @end_column = nd_arg.last_column</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   foo(42)</div><div class='add'>+    #   ^^^</div><div class='add'>+    #   foo 42</div><div class='add'>+    #   ^^^</div><div class='add'>+    def spot_fcall_for_name</div><div class='add'>+      mid, _nd_args = @node.children</div><div class='add'>+      fetch_line(@node.first_lineno)</div><div class='add'>+      if @snippet.match(/(#{ Regexp.quote(mid) })/, @node.first_column)</div><div class='add'>+        @beg_column = $~.begin(1)</div><div class='add'>+        @end_column = $~.end(1)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   foo(42)</div><div class='add'>+    #       ^^</div><div class='add'>+    #   foo 42</div><div class='add'>+    #       ^^</div><div class='add'>+    def spot_fcall_for_args</div><div class='add'>+      _mid, nd_args = @node.children</div><div class='add'>+      if nd_args &amp;&amp; nd_args.first_lineno == nd_args.last_lineno</div><div class='add'>+        # binary operator</div><div class='add'>+        fetch_line(nd_args.first_lineno)</div><div class='add'>+        @beg_column = nd_args.first_column</div><div class='add'>+        @end_column = nd_args.last_column</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   foo</div><div class='add'>+    #   ^^^</div><div class='add'>+    def spot_vcall</div><div class='add'>+      if @node.first_lineno == @node.last_lineno</div><div class='add'>+        fetch_line(@node.last_lineno)</div><div class='add'>+        @beg_column = @node.first_column</div><div class='add'>+        @end_column = @node.last_column</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   x[1] += 42</div><div class='add'>+    #    ^^^    (for [])</div><div class='add'>+    #   x[1] += 42</div><div class='add'>+    #        ^  (for +)</div><div class='add'>+    #   x[1] += 42</div><div class='add'>+    #    ^^^^^^ (for []=)</div><div class='add'>+    def spot_op_asgn1_for_name</div><div class='add'>+      nd_recv, op, nd_args, _nd_rhs = @node.children</div><div class='add'>+      fetch_line(nd_recv.last_lineno)</div><div class='add'>+      if @snippet.match(/\G[\s)]*(\[)/, nd_recv.last_column)</div><div class='add'>+        bracket_beg_column = $~.begin(1)</div><div class='add'>+        args_last_column = $~.end(0)</div><div class='add'>+        if nd_args &amp;&amp; nd_recv.last_lineno == nd_args.last_lineno</div><div class='add'>+          args_last_column = nd_args.last_column</div><div class='add'>+        end</div><div class='add'>+        if @snippet.match(/\s*\](\s*)(#{ Regexp.quote(op) })=()/, args_last_column)</div><div class='add'>+          case @name</div><div class='add'>+          when :[], :[]=</div><div class='add'>+            @beg_column = bracket_beg_column</div><div class='add'>+            @end_column = $~.begin(@name == :[] ? 1 : 3)</div><div class='add'>+          when op</div><div class='add'>+            @beg_column = $~.begin(2)</div><div class='add'>+            @end_column = $~.end(2)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   x[1] += 42</div><div class='add'>+    #     ^^^^^^^^</div><div class='add'>+    def spot_op_asgn1_for_args</div><div class='add'>+      nd_recv, mid, nd_args, nd_rhs = @node.children</div><div class='add'>+      fetch_line(nd_recv.last_lineno)</div><div class='add'>+      if mid == :[]= &amp;&amp; @snippet.match(/\G\s*\[/, nd_recv.last_column)</div><div class='add'>+        @beg_column = $~.end(0)</div><div class='add'>+        if nd_recv.last_lineno == nd_rhs.last_lineno</div><div class='add'>+          @end_column = nd_rhs.last_column</div><div class='add'>+        end</div><div class='add'>+      elsif nd_args &amp;&amp; nd_args.first_lineno == nd_rhs.last_lineno</div><div class='add'>+        @beg_column = nd_args.first_column</div><div class='add'>+        @end_column = nd_rhs.last_column</div><div class='add'>+      end</div><div class='add'>+      # TODO: support @arg</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   x.foo += 42</div><div class='add'>+    #    ^^^     (for foo)</div><div class='add'>+    #   x.foo += 42</div><div class='add'>+    #         ^  (for +)</div><div class='add'>+    #   x.foo += 42</div><div class='add'>+    #    ^^^^^^^ (for foo=)</div><div class='add'>+    def spot_op_asgn2_for_name</div><div class='add'>+      nd_recv, _qcall, attr, op, _nd_rhs = @node.children</div><div class='add'>+      fetch_line(nd_recv.last_lineno)</div><div class='add'>+      if @snippet.match(/\G[\s)]*(\.)\s*#{ Regexp.quote(attr) }()\s*(#{ Regexp.quote(op) })(=)/, nd_recv.last_column)</div><div class='add'>+        case @name</div><div class='add'>+        when attr</div><div class='add'>+          @beg_column = $~.begin(1)</div><div class='add'>+          @end_column = $~.begin(2)</div><div class='add'>+        when op</div><div class='add'>+          @beg_column = $~.begin(3)</div><div class='add'>+          @end_column = $~.end(3)</div><div class='add'>+        when :"#{ attr }="</div><div class='add'>+          @beg_column = $~.begin(1)</div><div class='add'>+          @end_column = $~.end(4)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   x.foo += 42</div><div class='add'>+    #            ^^</div><div class='add'>+    def spot_op_asgn2_for_args</div><div class='add'>+      _nd_recv, _qcall, _attr, _op, nd_rhs = @node.children</div><div class='add'>+      if nd_rhs.first_lineno == nd_rhs.last_lineno</div><div class='add'>+        fetch_line(nd_rhs.first_lineno)</div><div class='add'>+        @beg_column = nd_rhs.first_column</div><div class='add'>+        @end_column = nd_rhs.last_column</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   Foo::Bar</div><div class='add'>+    #      ^^^^^</div><div class='add'>+    def spot_colon2</div><div class='add'>+      nd_parent, const = @node.children</div><div class='add'>+      if nd_parent.last_lineno == @node.last_lineno</div><div class='add'>+        fetch_line(nd_parent.last_lineno)</div><div class='add'>+        @beg_column = nd_parent.last_column</div><div class='add'>+        @end_column = @node.last_column</div><div class='add'>+      else</div><div class='add'>+        @snippet = @fetch[@node.last_lineno]</div><div class='add'>+        if @snippet[...@node.last_column].match(/#{ Regexp.quote(const) }\z/)</div><div class='add'>+          @beg_column = $~.begin(0)</div><div class='add'>+          @end_column = $~.end(0)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Example:</div><div class='add'>+    #   Foo::Bar += 1</div><div class='add'>+    #      ^^^^^^^^</div><div class='add'>+    def spot_op_cdecl</div><div class='add'>+      nd_lhs, op, _nd_rhs = @node.children</div><div class='add'>+      *nd_parent_lhs, _const = nd_lhs.children</div><div class='add'>+      if @name == op</div><div class='add'>+        @snippet = @fetch[nd_lhs.last_lineno]</div><div class='add'>+        if @snippet.match(/\G\s*(#{ Regexp.quote(op) })=/, nd_lhs.last_column)</div><div class='add'>+          @beg_column = $~.begin(1)</div><div class='add'>+          @end_column = $~.end(1)</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        # constant access error</div><div class='add'>+        @end_column = nd_lhs.last_column</div><div class='add'>+        if nd_parent_lhs.empty? # example: ::C += 1</div><div class='add'>+          if nd_lhs.first_lineno == nd_lhs.last_lineno</div><div class='add'>+            @snippet = @fetch[nd_lhs.last_lineno]</div><div class='add'>+            @beg_column = nd_lhs.first_column</div><div class='add'>+          end</div><div class='add'>+        else # example: Foo::Bar::C += 1</div><div class='add'>+          if nd_parent_lhs.last.last_lineno == nd_lhs.last_lineno</div><div class='add'>+            @snippet = @fetch[nd_lhs.last_lineno]</div><div class='add'>+            @beg_column = nd_parent_lhs.last.last_column</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def fetch_line(lineno)</div><div class='add'>+      @beg_lineno = @end_lineno = lineno</div><div class='add'>+      @snippet = @fetch[lineno]</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  private_constant :Spotter</div><div class='add'>+end</div><div class='head'>diff --git a/lib/error_highlight/core_ext.rb b/lib/error_highlight/core_ext.rb<br/>new file mode 100644<br/>index 0000000000..b69093f74e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/error_highlight/core_ext.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/error_highlight/core_ext.rb</a></div><div class='hunk'>@@ -0,0 +1,47 @@</div><div class='add'>+require_relative "formatter"</div><div class='add'>+</div><div class='add'>+module ErrorHighlight</div><div class='add'>+  module CoreExt</div><div class='add'>+    private def generate_snippet</div><div class='add'>+      spot = ErrorHighlight.spot(self)</div><div class='add'>+      return "" unless spot</div><div class='add'>+      return ErrorHighlight.formatter.message_for(spot)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    if Exception.method_defined?(:detailed_message)</div><div class='add'>+      def detailed_message(highlight: false, error_highlight: true, **)</div><div class='add'>+        return super unless error_highlight</div><div class='add'>+        snippet = generate_snippet</div><div class='add'>+        if highlight</div><div class='add'>+          snippet = snippet.gsub(/.+/) { "\e[1m" + $&amp; + "\e[m" }</div><div class='add'>+        end</div><div class='add'>+        super + snippet</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      # This is a marker to let `DidYouMean::Correctable#original_message` skip</div><div class='add'>+      # the following method definition of `to_s`.</div><div class='add'>+      # See https://github.com/ruby/did_you_mean/pull/152</div><div class='add'>+      SKIP_TO_S_FOR_SUPER_LOOKUP = true</div><div class='add'>+      private_constant :SKIP_TO_S_FOR_SUPER_LOOKUP</div><div class='add'>+</div><div class='add'>+      def to_s</div><div class='add'>+        msg = super</div><div class='add'>+        snippet = generate_snippet</div><div class='add'>+        if snippet != "" &amp;&amp; !msg.include?(snippet)</div><div class='add'>+          msg + snippet</div><div class='add'>+        else</div><div class='add'>+          msg</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  NameError.prepend(CoreExt)</div><div class='add'>+</div><div class='add'>+  if Exception.method_defined?(:detailed_message)</div><div class='add'>+    # ErrorHighlight is enabled for TypeError and ArgumentError only when Exception#detailed_message is available.</div><div class='add'>+    # This is because changing ArgumentError#message is highly incompatible.</div><div class='add'>+    TypeError.prepend(CoreExt)</div><div class='add'>+    ArgumentError.prepend(CoreExt)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/error_highlight/error_highlight.gemspec b/lib/error_highlight/error_highlight.gemspec<br/>new file mode 100644<br/>index 0000000000..b2da18df83<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/error_highlight/error_highlight.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/error_highlight/error_highlight.gemspec</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+# coding: utf-8</div><div class='add'>+lib = File.expand_path('../lib', __FILE__)</div><div class='add'>+$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)</div><div class='add'>+begin</div><div class='add'>+  require_relative "lib/error_highlight/version"</div><div class='add'>+rescue LoadError # Fallback to load version file in ruby core repository</div><div class='add'>+  require_relative "version"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "error_highlight"</div><div class='add'>+  spec.version       = ErrorHighlight::VERSION</div><div class='add'>+  spec.authors       = ["Yusuke Endoh"]</div><div class='add'>+  spec.email         = ["mame@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = 'Shows a one-line code snippet with an underline in the error backtrace'</div><div class='add'>+  spec.description   = 'The gem enhances Exception#message by adding a short explanation where the exception is raised'</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/error_highlight"</div><div class='add'>+</div><div class='add'>+  spec.license       = "MIT"</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 3.1.0.dev")</div><div class='add'>+</div><div class='add'>+  spec.files = Dir.chdir(File.expand_path(__dir__)) do</div><div class='add'>+    `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/lib/error_highlight/formatter.rb b/lib/error_highlight/formatter.rb<br/>new file mode 100644<br/>index 0000000000..20ca78d468<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/error_highlight/formatter.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/error_highlight/formatter.rb</a></div><div class='hunk'>@@ -0,0 +1,23 @@</div><div class='add'>+module ErrorHighlight</div><div class='add'>+  class DefaultFormatter</div><div class='add'>+    def self.message_for(spot)</div><div class='add'>+      # currently only a one-line code snippet is supported</div><div class='add'>+      if spot[:first_lineno] == spot[:last_lineno]</div><div class='add'>+        indent = spot[:snippet][0...spot[:first_column]].gsub(/[^\t]/, " ")</div><div class='add'>+        marker = indent + "^" * (spot[:last_column] - spot[:first_column])</div><div class='add'>+</div><div class='add'>+        "\n\n#{ spot[:snippet] }#{ marker }"</div><div class='add'>+      else</div><div class='add'>+        ""</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def self.formatter</div><div class='add'>+    Ractor.current[:__error_highlight_formatter__] || DefaultFormatter</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def self.formatter=(formatter)</div><div class='add'>+    Ractor.current[:__error_highlight_formatter__] = formatter</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/error_highlight/version.rb b/lib/error_highlight/version.rb<br/>new file mode 100644<br/>index 0000000000..5afe5f06d6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/error_highlight/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/error_highlight/version.rb</a></div><div class='hunk'>@@ -0,0 +1,3 @@</div><div class='add'>+module ErrorHighlight</div><div class='add'>+  VERSION = "0.5.1"</div><div class='add'>+end</div><div class='head'>diff --git a/lib/fileutils.gemspec b/lib/fileutils.gemspec<br/>new file mode 100644<br/>index 0000000000..76baea3039<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/fileutils.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/fileutils.gemspec</a></div><div class='hunk'>@@ -0,0 +1,31 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+source_version = ["", "lib/"].find do |dir|</div><div class='add'>+  begin</div><div class='add'>+    break File.open(File.join(__dir__, "#{dir}fileutils.rb")) {|f|</div><div class='add'>+      f.gets("\n  VERSION = ")</div><div class='add'>+      f.gets[/\s*"(.+)"/, 1]</div><div class='add'>+    }</div><div class='add'>+  rescue Errno::ENOENT</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |s|</div><div class='add'>+  s.name = "fileutils"</div><div class='add'>+  s.version = source_version</div><div class='add'>+  s.summary = "Several file utility methods for copying, moving, removing, etc."</div><div class='add'>+  s.description = "Several file utility methods for copying, moving, removing, etc."</div><div class='add'>+</div><div class='add'>+  s.require_path = %w{lib}</div><div class='add'>+  s.files = ["LICENSE.txt", "README.md", "Rakefile", "fileutils.gemspec", "lib/fileutils.rb"]</div><div class='add'>+  s.required_ruby_version = "&gt;= 2.5.0"</div><div class='add'>+</div><div class='add'>+  s.authors = ["Minero Aoki"]</div><div class='add'>+  s.email = [nil]</div><div class='add'>+  s.homepage = "https://github.com/ruby/fileutils"</div><div class='add'>+  s.licenses = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  s.metadata = {</div><div class='add'>+    "source_code_uri" =&gt; "https://github.com/ruby/fileutils"</div><div class='add'>+  }</div><div class='add'>+end</div><div class='head'>diff --git a/lib/fileutils.rb b/lib/fileutils.rb<br/>index dc7261857b..b495078f93 100644<br/>--- a/<a href='/ruby.git/tree/lib/fileutils.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/fileutils.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/fileutils.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/fileutils.rb</a></div><div class='hunk'>@@ -6,94 +6,181 @@ rescue LoadError</div><div class='ctx'>   # for make mjit-headers</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-require "fileutils/version"</div><div class='del'>-</div><div class='add'>+# Namespace for file utility methods for copying, moving, removing, etc.</div><div class='add'>+#</div><div class='add'>+# == What's Here</div><div class='add'>+#</div><div class='add'>+# First, whatâ€™s elsewhere. \Module \FileUtils:</div><div class='add'>+#</div><div class='add'>+# - Inherits from {class Object}[rdoc-ref:Object].</div><div class='add'>+# - Supplements {class File}[rdoc-ref:File]</div><div class='add'>+#   (but is not included or extended there).</div><div class='add'>+#</div><div class='add'>+# Here, module \FileUtils provides methods that are useful for:</div><div class='add'>+#</div><div class='add'>+# - {Creating}[rdoc-ref:FileUtils@Creating].</div><div class='add'>+# - {Deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='add'>+# - {Querying}[rdoc-ref:FileUtils@Querying].</div><div class='add'>+# - {Setting}[rdoc-ref:FileUtils@Setting].</div><div class='add'>+# - {Comparing}[rdoc-ref:FileUtils@Comparing].</div><div class='add'>+# - {Copying}[rdoc-ref:FileUtils@Copying].</div><div class='add'>+# - {Moving}[rdoc-ref:FileUtils@Moving].</div><div class='add'>+# - {Options}[rdoc-ref:FileUtils@Options].</div><div class='add'>+#</div><div class='add'>+# === Creating</div><div class='add'>+#</div><div class='add'>+# - ::mkdir: Creates directories.</div><div class='add'>+# - ::mkdir_p, ::makedirs, ::mkpath: Creates directories,</div><div class='add'>+#   also creating ancestor directories as needed.</div><div class='add'>+# - ::link_entry: Creates a hard link.</div><div class='add'>+# - ::ln, ::link: Creates hard links.</div><div class='add'>+# - ::ln_s, ::symlink: Creates symbolic links.</div><div class='add'>+# - ::ln_sf: Creates symbolic links, overwriting if necessary.</div><div class='add'>+# - ::ln_sr: Creates symbolic links relative to targets</div><div class='add'>+#</div><div class='add'>+# === Deleting</div><div class='add'>+#</div><div class='add'>+# - ::remove_dir: Removes a directory and its descendants.</div><div class='add'>+# - ::remove_entry: Removes an entry, including its descendants if it is a directory.</div><div class='add'>+# - ::remove_entry_secure: Like ::remove_entry, but removes securely.</div><div class='add'>+# - ::remove_file: Removes a file entry.</div><div class='add'>+# - ::rm, ::remove: Removes entries.</div><div class='add'>+# - ::rm_f, ::safe_unlink: Like ::rm, but removes forcibly.</div><div class='add'>+# - ::rm_r: Removes entries and their descendants.</div><div class='add'>+# - ::rm_rf, ::rmtree: Like ::rm_r, but removes forcibly.</div><div class='add'>+# - ::rmdir: Removes directories.</div><div class='add'>+#</div><div class='add'>+# === Querying</div><div class='add'>+#</div><div class='add'>+# - ::pwd, ::getwd: Returns the path to the working directory.</div><div class='add'>+# - ::uptodate?: Returns whether a given entry is newer than given other entries.</div><div class='add'>+#</div><div class='add'>+# === Setting</div><div class='add'>+#</div><div class='add'>+# - ::cd, ::chdir: Sets the working directory.</div><div class='add'>+# - ::chmod: Sets permissions for an entry.</div><div class='add'>+# - ::chmod_R: Sets permissions for an entry and its descendants.</div><div class='add'>+# - ::chown: Sets the owner and group for entries.</div><div class='add'>+# - ::chown_R: Sets the owner and group for entries and their descendants.</div><div class='add'>+# - ::touch: Sets modification and access times for entries,</div><div class='add'>+#   creating if necessary.</div><div class='add'>+#</div><div class='add'>+# === Comparing</div><div class='add'>+#</div><div class='add'>+# - ::compare_file, ::cmp, ::identical?: Returns whether two entries are identical.</div><div class='add'>+# - ::compare_stream: Returns whether two streams are identical.</div><div class='add'>+#</div><div class='add'>+# === Copying</div><div class='add'>+#</div><div class='add'>+# - ::copy_entry: Recursively copies an entry.</div><div class='add'>+# - ::copy_file: Copies an entry.</div><div class='add'>+# - ::copy_stream: Copies a stream.</div><div class='add'>+# - ::cp, ::copy: Copies files.</div><div class='add'>+# - ::cp_lr: Recursively creates hard links.</div><div class='add'>+# - ::cp_r: Recursively copies files, retaining mode, owner, and group.</div><div class='add'>+# - ::install: Recursively copies files, optionally setting mode,</div><div class='add'>+#   owner, and group.</div><div class='ctx'> #</div><div class='del'>-# = fileutils.rb</div><div class='add'>+# === Moving</div><div class='ctx'> #</div><div class='del'>-# Copyright (c) 2000-2007 Minero Aoki</div><div class='add'>+# - ::mv, ::move: Moves entries.</div><div class='ctx'> #</div><div class='del'>-# This program is free software.</div><div class='del'>-# You can distribute/modify this program under the same terms of ruby.</div><div class='add'>+# === Options</div><div class='ctx'> #</div><div class='del'>-# == module FileUtils</div><div class='add'>+# - ::collect_method: Returns the names of methods that accept a given option.</div><div class='add'>+# - ::commands: Returns the names of methods that accept options.</div><div class='add'>+# - ::have_option?: Returns whether a given method accepts a given option.</div><div class='add'>+# - ::options: Returns all option names.</div><div class='add'>+# - ::options_of: Returns the names of the options for a given method.</div><div class='ctx'> #</div><div class='del'>-# Namespace for several file utility methods for copying, moving, removing, etc.</div><div class='add'>+# == Path Arguments</div><div class='ctx'> #</div><div class='del'>-# === Module Functions</div><div class='add'>+# Some methods in \FileUtils accept _path_ arguments,</div><div class='add'>+# which are interpreted as paths to filesystem entries:</div><div class='ctx'> #</div><div class='del'>-#   require 'fileutils'</div><div class='add'>+# - If the argument is a string, that value is the path.</div><div class='add'>+# - If the argument has method +:to_path+, it is converted via that method.</div><div class='add'>+# - If the argument has method +:to_str+, it is converted via that method.</div><div class='ctx'> #</div><div class='del'>-#   FileUtils.cd(dir, options)</div><div class='del'>-#   FileUtils.cd(dir, options) {|dir| block }</div><div class='del'>-#   FileUtils.pwd()</div><div class='del'>-#   FileUtils.mkdir(dir, options)</div><div class='del'>-#   FileUtils.mkdir(list, options)</div><div class='del'>-#   FileUtils.mkdir_p(dir, options)</div><div class='del'>-#   FileUtils.mkdir_p(list, options)</div><div class='del'>-#   FileUtils.rmdir(dir, options)</div><div class='del'>-#   FileUtils.rmdir(list, options)</div><div class='del'>-#   FileUtils.ln(target, link, options)</div><div class='del'>-#   FileUtils.ln(targets, dir, options)</div><div class='del'>-#   FileUtils.ln_s(target, link, options)</div><div class='del'>-#   FileUtils.ln_s(targets, dir, options)</div><div class='del'>-#   FileUtils.ln_sf(target, link, options)</div><div class='del'>-#   FileUtils.cp(src, dest, options)</div><div class='del'>-#   FileUtils.cp(list, dir, options)</div><div class='del'>-#   FileUtils.cp_r(src, dest, options)</div><div class='del'>-#   FileUtils.cp_r(list, dir, options)</div><div class='del'>-#   FileUtils.mv(src, dest, options)</div><div class='del'>-#   FileUtils.mv(list, dir, options)</div><div class='del'>-#   FileUtils.rm(list, options)</div><div class='del'>-#   FileUtils.rm_r(list, options)</div><div class='del'>-#   FileUtils.rm_rf(list, options)</div><div class='del'>-#   FileUtils.install(src, dest, options)</div><div class='del'>-#   FileUtils.chmod(mode, list, options)</div><div class='del'>-#   FileUtils.chmod_R(mode, list, options)</div><div class='del'>-#   FileUtils.chown(user, group, list, options)</div><div class='del'>-#   FileUtils.chown_R(user, group, list, options)</div><div class='del'>-#   FileUtils.touch(list, options)</div><div class='add'>+# == About the Examples</div><div class='ctx'> #</div><div class='del'>-# The &lt;tt&gt;options&lt;/tt&gt; parameter is a hash of options, taken from the list</div><div class='del'>-# &lt;tt&gt;:force&lt;/tt&gt;, &lt;tt&gt;:noop&lt;/tt&gt;, &lt;tt&gt;:preserve&lt;/tt&gt;, and &lt;tt&gt;:verbose&lt;/tt&gt;.</div><div class='del'>-# &lt;tt&gt;:noop&lt;/tt&gt; means that no changes are made.  The other three are obvious.</div><div class='del'>-# Each method documents the options that it honours.</div><div class='add'>+# Some examples here involve trees of file entries.</div><div class='add'>+# For these, we sometimes display trees using the</div><div class='add'>+# {tree command-line utility}[https://en.wikipedia.org/wiki/Tree_(command)],</div><div class='add'>+# which is a recursive directory-listing utility that produces</div><div class='add'>+# a depth-indented listing of files and directories.</div><div class='ctx'> #</div><div class='del'>-# All methods that have the concept of a "source" file or directory can take</div><div class='del'>-# either one file or a list of files in that argument.  See the method</div><div class='del'>-# documentation for examples.</div><div class='add'>+# We use a helper method to launch the command and control the format:</div><div class='ctx'> #</div><div class='del'>-# There are some `low level' methods, which do not accept any option:</div><div class='add'>+#   def tree(dirpath = '.')</div><div class='add'>+#     command = "tree --noreport --charset=ascii #{dirpath}"</div><div class='add'>+#     system(command)</div><div class='add'>+#   end</div><div class='ctx'> #</div><div class='del'>-#   FileUtils.copy_entry(src, dest, preserve = false, dereference_root = false, remove_destination = false)</div><div class='del'>-#   FileUtils.copy_file(src, dest, preserve = false, dereference = true)</div><div class='del'>-#   FileUtils.copy_stream(srcstream, deststream)</div><div class='del'>-#   FileUtils.remove_entry(path, force = false)</div><div class='del'>-#   FileUtils.remove_entry_secure(path, force = false)</div><div class='del'>-#   FileUtils.remove_file(path, force = false)</div><div class='del'>-#   FileUtils.compare_file(path_a, path_b)</div><div class='del'>-#   FileUtils.compare_stream(stream_a, stream_b)</div><div class='del'>-#   FileUtils.uptodate?(file, cmp_list)</div><div class='add'>+# To illustrate:</div><div class='ctx'> #</div><div class='del'>-# == module FileUtils::Verbose</div><div class='add'>+#   tree('src0')</div><div class='add'>+#   # =&gt; src0</div><div class='add'>+#   #    |-- sub0</div><div class='add'>+#   #    |   |-- src0.txt</div><div class='add'>+#   #    |   `-- src1.txt</div><div class='add'>+#   #    `-- sub1</div><div class='add'>+#   #        |-- src2.txt</div><div class='add'>+#   #        `-- src3.txt</div><div class='ctx'> #</div><div class='del'>-# This module has all methods of FileUtils module, but it outputs messages</div><div class='del'>-# before acting.  This equates to passing the &lt;tt&gt;:verbose&lt;/tt&gt; flag to methods</div><div class='del'>-# in FileUtils.</div><div class='add'>+# == Avoiding the TOCTTOU Vulnerability</div><div class='ctx'> #</div><div class='del'>-# == module FileUtils::NoWrite</div><div class='add'>+# For certain methods that recursively remove entries,</div><div class='add'>+# there is a potential vulnerability called the</div><div class='add'>+# {Time-of-check to time-of-use}[https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use],</div><div class='add'>+# or TOCTTOU, vulnerability that can exist when:</div><div class='ctx'> #</div><div class='del'>-# This module has all methods of FileUtils module, but never changes</div><div class='del'>-# files/directories.  This equates to passing the &lt;tt&gt;:noop&lt;/tt&gt; flag to methods</div><div class='del'>-# in FileUtils.</div><div class='add'>+# - An ancestor directory of the entry at the target path is world writable;</div><div class='add'>+#   such directories include &lt;tt&gt;/tmp&lt;/tt&gt;.</div><div class='add'>+# - The directory tree at the target path includes:</div><div class='ctx'> #</div><div class='del'>-# == module FileUtils::DryRun</div><div class='add'>+#   - A world-writable descendant directory.</div><div class='add'>+#   - A symbolic link.</div><div class='ctx'> #</div><div class='del'>-# This module has all methods of FileUtils module, but never changes</div><div class='del'>-# files/directories.  This equates to passing the &lt;tt&gt;:noop&lt;/tt&gt; and</div><div class='del'>-# &lt;tt&gt;:verbose&lt;/tt&gt; flags to methods in FileUtils.</div><div class='add'>+# To avoid that vulnerability, you can use this method to remove entries:</div><div class='add'>+#</div><div class='add'>+# - FileUtils.remove_entry_secure: removes recursively</div><div class='add'>+#   if the target path points to a directory.</div><div class='add'>+#</div><div class='add'>+# Also available are these methods,</div><div class='add'>+# each of which calls \FileUtils.remove_entry_secure:</div><div class='add'>+#</div><div class='add'>+# - FileUtils.rm_r with keyword argument &lt;tt&gt;secure: true&lt;/tt&gt;.</div><div class='add'>+# - FileUtils.rm_rf with keyword argument &lt;tt&gt;secure: true&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# Finally, this method for moving entries calls \FileUtils.remove_entry_secure</div><div class='add'>+# if the source and destination are on different file systems</div><div class='add'>+# (which means that the "move" is really a copy and remove):</div><div class='add'>+#</div><div class='add'>+# - FileUtils.mv with keyword argument &lt;tt&gt;secure: true&lt;/tt&gt;.</div><div class='add'>+#</div><div class='add'>+# \Method \FileUtils.remove_entry_secure removes securely</div><div class='add'>+# by applying a special pre-process:</div><div class='add'>+#</div><div class='add'>+# - If the target path points to a directory, this method uses methods</div><div class='add'>+#   {File#chown}[rdoc-ref:File#chown]</div><div class='add'>+#   and {File#chmod}[rdoc-ref:File#chmod]</div><div class='add'>+#   in removing directories.</div><div class='add'>+# - The owner of the target directory should be either the current process</div><div class='add'>+#   or the super user (root).</div><div class='add'>+#</div><div class='add'>+# WARNING: You must ensure that *ALL* parent directories cannot be</div><div class='add'>+# moved by other untrusted users.  For example, parent directories</div><div class='add'>+# should not be owned by untrusted users, and should not be world</div><div class='add'>+# writable except when the sticky bit is set.</div><div class='add'>+#</div><div class='add'>+# For details of this security vulnerability, see Perl cases:</div><div class='add'>+#</div><div class='add'>+# - {CVE-2005-0448}[https://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0448].</div><div class='add'>+# - {CVE-2004-0452}[https://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0452].</div><div class='ctx'> #</div><div class='ctx'> module FileUtils</div><div class='add'>+  VERSION = "1.7.0"</div><div class='ctx'> </div><div class='ctx'>   def self.private_module_function(name)   #:nodoc:</div><div class='ctx'>     module_function name</div><div class='hunk'>@@ -101,7 +188,13 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Returns the name of the current directory.</div><div class='add'>+  # Returns a string containing the path to the current directory:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.pwd # =&gt; "/rdoc/fileutils"</div><div class='add'>+  #</div><div class='add'>+  # FileUtils.getwd is an alias for FileUtils.pwd.</div><div class='add'>+  #</div><div class='add'>+  # Related: FileUtils.cd.</div><div class='ctx'>   #</div><div class='ctx'>   def pwd</div><div class='ctx'>     Dir.pwd</div><div class='hunk'>@@ -111,17 +204,40 @@ module FileUtils</div><div class='ctx'>   alias getwd pwd</div><div class='ctx'>   module_function :getwd</div><div class='ctx'> </div><div class='add'>+  # Changes the working directory to the given +dir+, which</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments]:</div><div class='add'>+  #</div><div class='add'>+  # With no block given,</div><div class='add'>+  # changes the current directory to the directory at +dir+; returns zero:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.pwd # =&gt; "/rdoc/fileutils"</div><div class='add'>+  #   FileUtils.cd('..')</div><div class='add'>+  #   FileUtils.pwd # =&gt; "/rdoc"</div><div class='add'>+  #   FileUtils.cd('fileutils')</div><div class='add'>+  #</div><div class='add'>+  # With a block given, changes the current directory to the directory</div><div class='add'>+  # at +dir+, calls the block with argument +dir+,</div><div class='add'>+  # and restores the original current directory; returns the block's value:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.pwd                                     # =&gt; "/rdoc/fileutils"</div><div class='add'>+  #   FileUtils.cd('..') { |arg| [arg, FileUtils.pwd] } # =&gt; ["..", "/rdoc"]</div><div class='add'>+  #   FileUtils.pwd                                     # =&gt; "/rdoc/fileutils"</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='ctx'>   #</div><div class='del'>-  # Changes the current directory to the directory +dir+.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='ctx'>   #</div><div class='del'>-  # If this method is called with block, resumes to the old</div><div class='del'>-  # working directory after the block execution finished.</div><div class='add'>+  #     FileUtils.cd('..')</div><div class='add'>+  #     FileUtils.cd('fileutils')</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.cd('/', :verbose =&gt; true)   # chdir and report it</div><div class='add'>+  #   Output:</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.cd('/') do  # chdir</div><div class='del'>-  #     # ...               # do something</div><div class='del'>-  #   end                   # return to original directory</div><div class='add'>+  #     cd ..</div><div class='add'>+  #     cd fileutils</div><div class='add'>+  #</div><div class='add'>+  # FileUtils.chdir is an alias for FileUtils.cd.</div><div class='add'>+  #</div><div class='add'>+  # Related: FileUtils.pwd.</div><div class='ctx'>   #</div><div class='ctx'>   def cd(dir, verbose: nil, &amp;block) # :yield: dir</div><div class='ctx'>     fu_output_message "cd #{dir}" if verbose</div><div class='hunk'>@@ -135,11 +251,19 @@ module FileUtils</div><div class='ctx'>   module_function :chdir</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Returns true if +new+ is newer than all +old_list+.</div><div class='del'>-  # Non-existent files are older than any file.</div><div class='add'>+  # Returns +true+ if the file at path +new+</div><div class='add'>+  # is newer than all the files at paths in array +old_list+;</div><div class='add'>+  # +false+ otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Argument +new+ and the elements of +old_list+</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments]:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.uptodate?('Rakefile', ['Gemfile', 'README.md']) # =&gt; true</div><div class='add'>+  #   FileUtils.uptodate?('Gemfile', ['Rakefile', 'README.md']) # =&gt; false</div><div class='add'>+  #</div><div class='add'>+  # A non-existent file is considered to be infinitely old.</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.uptodate?('hello.o', %w(hello.c hello.h)) or \</div><div class='del'>-  #       system 'make hello.o'</div><div class='add'>+  # Related: FileUtils.touch.</div><div class='ctx'>   #</div><div class='ctx'>   def uptodate?(new, old_list)</div><div class='ctx'>     return false unless File.exist?(new)</div><div class='hunk'>@@ -159,12 +283,39 @@ module FileUtils</div><div class='ctx'>   private_module_function :remove_trailing_slash</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Creates one or more directories.</div><div class='add'>+  # Creates directories at the paths in the given +list+</div><div class='add'>+  # (a single path or an array of paths);</div><div class='add'>+  # returns +list+ if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # With no keyword arguments, creates a directory at each +path+ in +list+</div><div class='add'>+  # by calling: &lt;tt&gt;Dir.mkdir(path, mode)&lt;/tt&gt;;</div><div class='add'>+  # see {Dir.mkdir}[rdoc-ref:Dir.mkdir]:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.mkdir(%w[tmp0 tmp1]) # =&gt; ["tmp0", "tmp1"]</div><div class='add'>+  #   FileUtils.mkdir('tmp4')        # =&gt; ["tmp4"]</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.mkdir 'test'</div><div class='del'>-  #   FileUtils.mkdir %w( tmp data )</div><div class='del'>-  #   FileUtils.mkdir 'notexist', :noop =&gt; true  # Does not really create.</div><div class='del'>-  #   FileUtils.mkdir 'tmp', :mode =&gt; 0700</div><div class='add'>+  # - &lt;tt&gt;mode: &lt;i&gt;mode&lt;/i&gt;&lt;/tt&gt; - also calls &lt;tt&gt;File.chmod(mode, path)&lt;/tt&gt;;</div><div class='add'>+  #   see {File.chmod}[rdoc-ref:File.chmod].</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not create directories.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.mkdir(%w[tmp0 tmp1], verbose: true)</div><div class='add'>+  #     FileUtils.mkdir(%w[tmp2 tmp3], mode: 0700, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     mkdir tmp0 tmp1</div><div class='add'>+  #     mkdir -m 700 tmp2 tmp3</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if any path points to an existing</div><div class='add'>+  # file or directory, or if for any reason a directory cannot be created.</div><div class='add'>+  #</div><div class='add'>+  # Related: FileUtils.mkdir_p.</div><div class='ctx'>   #</div><div class='ctx'>   def mkdir(list, mode: nil, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -178,40 +329,56 @@ module FileUtils</div><div class='ctx'>   module_function :mkdir</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Creates a directory and all its parent directories.</div><div class='del'>-  # For example,</div><div class='add'>+  # Creates directories at the paths in the given +list+</div><div class='add'>+  # (a single path or an array of paths),</div><div class='add'>+  # also creating ancestor directories as needed;</div><div class='add'>+  # returns +list+ if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # With no keyword arguments, creates a directory at each +path+ in +list+,</div><div class='add'>+  # along with any needed ancestor directories,</div><div class='add'>+  # by calling: &lt;tt&gt;Dir.mkdir(path, mode)&lt;/tt&gt;;</div><div class='add'>+  # see {Dir.mkdir}[rdoc-ref:Dir.mkdir]:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.mkdir_p(%w[tmp0/tmp1 tmp2/tmp3]) # =&gt; ["tmp0/tmp1", "tmp2/tmp3"]</div><div class='add'>+  #   FileUtils.mkdir_p('tmp4/tmp5')             # =&gt; ["tmp4/tmp5"]</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.mkdir_p '/usr/local/lib/ruby'</div><div class='add'>+  # - &lt;tt&gt;mode: &lt;i&gt;mode&lt;/i&gt;&lt;/tt&gt; - also calls &lt;tt&gt;File.chmod(mode, path)&lt;/tt&gt;;</div><div class='add'>+  #   see {File.chmod}[rdoc-ref:File.chmod].</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not create directories.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='ctx'>   #</div><div class='del'>-  # causes to make following directories, if it does not exist.</div><div class='add'>+  #     FileUtils.mkdir_p(%w[tmp0 tmp1], verbose: true)</div><div class='add'>+  #     FileUtils.mkdir_p(%w[tmp2 tmp3], mode: 0700, verbose: true)</div><div class='ctx'>   #</div><div class='del'>-  # * /usr</div><div class='del'>-  # * /usr/local</div><div class='del'>-  # * /usr/local/lib</div><div class='del'>-  # * /usr/local/lib/ruby</div><div class='add'>+  #   Output:</div><div class='ctx'>   #</div><div class='del'>-  # You can pass several directories at a time in a list.</div><div class='add'>+  #     mkdir -p tmp0 tmp1</div><div class='add'>+  #     mkdir -p -m 700 tmp2 tmp3</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if for any reason a directory cannot be created.</div><div class='add'>+  #</div><div class='add'>+  # FileUtils.mkpath and FileUtils.makedirs are aliases for FileUtils.mkdir_p.</div><div class='add'>+  #</div><div class='add'>+  # Related: FileUtils.mkdir.</div><div class='ctx'>   #</div><div class='ctx'>   def mkdir_p(list, mode: nil, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='ctx'>     fu_output_message "mkdir -p #{mode ? ('-m %03o ' % mode) : ''}#{list.join ' '}" if verbose</div><div class='ctx'>     return *list if noop</div><div class='ctx'> </div><div class='del'>-    list.map {|path| remove_trailing_slash(path)}.each do |path|</div><div class='del'>-      # optimize for the most common case</div><div class='del'>-      begin</div><div class='del'>-        fu_mkdir path, mode</div><div class='del'>-        next</div><div class='del'>-      rescue SystemCallError</div><div class='del'>-        next if File.directory?(path)</div><div class='del'>-      end</div><div class='add'>+    list.each do |item|</div><div class='add'>+      path = remove_trailing_slash(item)</div><div class='ctx'> </div><div class='ctx'>       stack = []</div><div class='del'>-      until path == stack.last   # dirname("/")=="/", dirname("C:/")=="C:/"</div><div class='add'>+      until File.directory?(path) || File.dirname(path) == path</div><div class='ctx'>         stack.push path</div><div class='ctx'>         path = File.dirname(path)</div><div class='ctx'>       end</div><div class='del'>-      stack.pop                 # root directory should exist</div><div class='ctx'>       stack.reverse_each do |dir|</div><div class='ctx'>         begin</div><div class='ctx'>           fu_mkdir dir, mode</div><div class='hunk'>@@ -242,12 +409,39 @@ module FileUtils</div><div class='ctx'>   private_module_function :fu_mkdir</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Removes one or more directories.</div><div class='add'>+  # Removes directories at the paths in the given +list+</div><div class='add'>+  # (a single path or an array of paths);</div><div class='add'>+  # returns +list+, if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # With no keyword arguments, removes the directory at each +path+ in +list+,</div><div class='add'>+  # by calling: &lt;tt&gt;Dir.rmdir(path)&lt;/tt&gt;;</div><div class='add'>+  # see {Dir.rmdir}[rdoc-ref:Dir.rmdir]:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.rmdir(%w[tmp0/tmp1 tmp2/tmp3]) # =&gt; ["tmp0/tmp1", "tmp2/tmp3"]</div><div class='add'>+  #   FileUtils.rmdir('tmp4/tmp5')             # =&gt; ["tmp4/tmp5"]</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.rmdir 'somedir'</div><div class='del'>-  #   FileUtils.rmdir %w(somedir anydir otherdir)</div><div class='del'>-  #   # Does not really remove directory; outputs message.</div><div class='del'>-  #   FileUtils.rmdir 'somedir', :verbose =&gt; true, :noop =&gt; true</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;parents: true&lt;/tt&gt; - removes successive ancestor directories</div><div class='add'>+  #   if empty.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not remove directories.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.rmdir(%w[tmp0/tmp1 tmp2/tmp3], parents: true, verbose: true)</div><div class='add'>+  #     FileUtils.rmdir('tmp4/tmp5', parents: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     rmdir -p tmp0/tmp1 tmp2/tmp3</div><div class='add'>+  #     rmdir -p tmp4/tmp5</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if a directory does not exist</div><div class='add'>+  # or if for any reason a directory cannot be removed.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def rmdir(list, parents: nil, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -268,26 +462,62 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :rmdir</div><div class='ctx'> </div><div class='add'>+  # Creates {hard links}[https://en.wikipedia.org/wiki/Hard_link].</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # When +src+ is the path to an existing file</div><div class='add'>+  # and +dest+ is the path to a non-existent file,</div><div class='add'>+  # creates a hard link at +dest+ pointing to +src+; returns zero:</div><div class='add'>+  #</div><div class='add'>+  #   Dir.children('tmp0/')                    # =&gt; ["t.txt"]</div><div class='add'>+  #   Dir.children('tmp1/')                    # =&gt; []</div><div class='add'>+  #   FileUtils.ln('tmp0/t.txt', 'tmp1/t.lnk') # =&gt; 0</div><div class='add'>+  #   Dir.children('tmp1/')                    # =&gt; ["t.lnk"]</div><div class='ctx'>   #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   FileUtils.ln(target, link, force: nil, noop: nil, verbose: nil)</div><div class='del'>-  #   FileUtils.ln(target,  dir, force: nil, noop: nil, verbose: nil)</div><div class='del'>-  #   FileUtils.ln(targets, dir, force: nil, noop: nil, verbose: nil)</div><div class='add'>+  # When +src+ is the path to an existing file</div><div class='add'>+  # and +dest+ is the path to an existing directory,</div><div class='add'>+  # creates a hard link at &lt;tt&gt;dest/src&lt;/tt&gt; pointing to +src+; returns zero:</div><div class='ctx'>   #</div><div class='del'>-  # In the first form, creates a hard link +link+ which points to +target+.</div><div class='del'>-  # If +link+ already exists, raises Errno::EEXIST.</div><div class='del'>-  # But if the :force option is set, overwrites +link+.</div><div class='add'>+  #   Dir.children('tmp2')               # =&gt; ["t.dat"]</div><div class='add'>+  #   Dir.children('tmp3')               # =&gt; []</div><div class='add'>+  #   FileUtils.ln('tmp2/t.dat', 'tmp3') # =&gt; 0</div><div class='add'>+  #   Dir.children('tmp3')               # =&gt; ["t.dat"]</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.ln 'gcc', 'cc', verbose: true</div><div class='del'>-  #   FileUtils.ln '/usr/bin/emacs21', '/usr/bin/emacs'</div><div class='add'>+  # When +src+ is an array of paths to existing files</div><div class='add'>+  # and +dest+ is the path to an existing directory,</div><div class='add'>+  # then for each path +target+ in +src+,</div><div class='add'>+  # creates a hard link at &lt;tt&gt;dest/target&lt;/tt&gt; pointing to +target+;</div><div class='add'>+  # returns +src+:</div><div class='ctx'>   #</div><div class='del'>-  # In the second form, creates a link +dir/target+ pointing to +target+.</div><div class='del'>-  # In the third form, creates several hard links in the directory +dir+,</div><div class='del'>-  # pointing to each item in +targets+.</div><div class='del'>-  # If +dir+ is not a directory, raises Errno::ENOTDIR.</div><div class='add'>+  #   Dir.children('tmp4/')                               # =&gt; []</div><div class='add'>+  #   FileUtils.ln(['tmp0/t.txt', 'tmp2/t.dat'], 'tmp4/') # =&gt; ["tmp0/t.txt", "tmp2/t.dat"]</div><div class='add'>+  #   Dir.children('tmp4/')                               # =&gt; ["t.dat", "t.txt"]</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.cd '/sbin'</div><div class='del'>-  #   FileUtils.ln %w(cp mv mkdir), '/bin'   # Now /sbin/cp and /bin/cp are linked.</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;force: true&lt;/tt&gt; - overwrites +dest+ if it exists.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not create links.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.ln('tmp0/t.txt', 'tmp1/t.lnk', verbose: true)</div><div class='add'>+  #     FileUtils.ln('tmp2/t.dat', 'tmp3', verbose: true)</div><div class='add'>+  #     FileUtils.ln(['tmp0/t.txt', 'tmp2/t.dat'], 'tmp4/', verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     ln tmp0/t.txt tmp1/t.lnk</div><div class='add'>+  #     ln tmp2/t.dat tmp3</div><div class='add'>+  #     ln tmp0/t.txt tmp2/t.dat tmp4/</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if +dest+ is the path to an existing file</div><div class='add'>+  # and keyword argument +force+ is not +true+.</div><div class='add'>+  #</div><div class='add'>+  # FileUtils#link is an alias for FileUtils#ln.</div><div class='add'>+  #</div><div class='add'>+  # Related: FileUtils.link_entry (has different options).</div><div class='ctx'>   #</div><div class='ctx'>   def ln(src, dest, force: nil, noop: nil, verbose: nil)</div><div class='ctx'>     fu_output_message "ln#{force ? ' -f' : ''} #{[src,dest].flatten.join ' '}" if verbose</div><div class='hunk'>@@ -302,28 +532,103 @@ module FileUtils</div><div class='ctx'>   alias link ln</div><div class='ctx'>   module_function :link</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   FileUtils.cp_lr(src, dest, noop: nil, verbose: nil, dereference_root: true, remove_destination: false)</div><div class='del'>-  #</div><div class='del'>-  # Hard link +src+ to +dest+. If +src+ is a directory, this method links</div><div class='del'>-  # all its contents recursively. If +dest+ is a directory, links</div><div class='del'>-  # +src+ to +dest/src+.</div><div class='del'>-  #</div><div class='del'>-  # +src+ can be a list of files.</div><div class='del'>-  #</div><div class='del'>-  #   # Installing the library "mylib" under the site_ruby directory.</div><div class='del'>-  #   FileUtils.rm_r site_ruby + '/mylib', :force =&gt; true</div><div class='del'>-  #   FileUtils.cp_lr 'lib/', site_ruby + '/mylib'</div><div class='del'>-  #</div><div class='del'>-  #   # Examples of linking several files to target directory.</div><div class='del'>-  #   FileUtils.cp_lr %w(mail.rb field.rb debug/), site_ruby + '/tmail'</div><div class='del'>-  #   FileUtils.cp_lr Dir.glob('*.rb'), '/home/aamine/lib/ruby', :noop =&gt; true, :verbose =&gt; true</div><div class='del'>-  #</div><div class='del'>-  #   # If you want to link all contents of a directory instead of the</div><div class='del'>-  #   # directory itself, c.f. src/x -&gt; dest/x, src/y -&gt; dest/y,</div><div class='del'>-  #   # use the following code.</div><div class='del'>-  #   FileUtils.cp_lr 'src/.', 'dest'  # cp_lr('src', 'dest') makes dest/src, but this doesn't.</div><div class='add'>+  # Creates {hard links}[https://en.wikipedia.org/wiki/Hard_link].</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a directory and +dest+ does not exist,</div><div class='add'>+  # creates links +dest+ and descendents pointing to +src+ and its descendents:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src0')</div><div class='add'>+  #   # =&gt; src0</div><div class='add'>+  #   #    |-- sub0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- sub1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #   File.exist?('dest0') # =&gt; false</div><div class='add'>+  #   FileUtils.cp_lr('src0', 'dest0')</div><div class='add'>+  #   tree('dest0')</div><div class='add'>+  #   # =&gt; dest0</div><div class='add'>+  #   #    |-- sub0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- sub1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #</div><div class='add'>+  # If +src+ and +dest+ are both paths to directories,</div><div class='add'>+  # creates links &lt;tt&gt;dest/src&lt;/tt&gt; and descendents</div><div class='add'>+  # pointing to +src+ and its descendents:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src1')</div><div class='add'>+  #   # =&gt; src1</div><div class='add'>+  #   #    |-- sub0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- sub1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #   FileUtils.mkdir('dest1')</div><div class='add'>+  #   FileUtils.cp_lr('src1', 'dest1')</div><div class='add'>+  #   tree('dest1')</div><div class='add'>+  #   # =&gt; dest1</div><div class='add'>+  #   #    `-- src1</div><div class='add'>+  #   #        |-- sub0</div><div class='add'>+  #   #        |   |-- src0.txt</div><div class='add'>+  #   #        |   `-- src1.txt</div><div class='add'>+  #   #        `-- sub1</div><div class='add'>+  #   #            |-- src2.txt</div><div class='add'>+  #   #            `-- src3.txt</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is an array of paths to entries and +dest+ is the path to a directory,</div><div class='add'>+  # for each path +filepath+ in +src+, creates a link at &lt;tt&gt;dest/filepath&lt;/tt&gt;</div><div class='add'>+  # pointing to that path:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src2')</div><div class='add'>+  #   # =&gt; src2</div><div class='add'>+  #   #    |-- sub0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- sub1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #   FileUtils.mkdir('dest2')</div><div class='add'>+  #   FileUtils.cp_lr(['src2/sub0', 'src2/sub1'], 'dest2')</div><div class='add'>+  #   tree('dest2')</div><div class='add'>+  #   # =&gt; dest2</div><div class='add'>+  #   #    |-- sub0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- sub1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;dereference_root: false&lt;/tt&gt; - if +src+ is a symbolic link,</div><div class='add'>+  #   does not dereference it.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not create links.</div><div class='add'>+  # - &lt;tt&gt;remove_destination: true&lt;/tt&gt; - removes +dest+ before creating links.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.cp_lr('src0', 'dest0', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.cp_lr('src1', 'dest1', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.cp_lr(['src2/sub0', 'src2/sub1'], 'dest2', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     cp -lr src0 dest0</div><div class='add'>+  #     cp -lr src1 dest1</div><div class='add'>+  #     cp -lr src2/sub0 src2/sub1 dest2</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if +dest+ is the path to an existing file or directory</div><div class='add'>+  # and keyword argument &lt;tt&gt;remove_destination: true&lt;/tt&gt; is not given.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def cp_lr(src, dest, noop: nil, verbose: nil,</div><div class='ctx'>             dereference_root: true, remove_destination: false)</div><div class='hunk'>@@ -335,27 +640,81 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :cp_lr</div><div class='ctx'> </div><div class='add'>+  # Creates {symbolic links}[https://en.wikipedia.org/wiki/Symbolic_link].</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to an existing file:</div><div class='add'>+  #</div><div class='add'>+  # - When +dest+ is the path to a non-existent file,</div><div class='add'>+  #   creates a symbolic link at +dest+ pointing to +src+:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.touch('src0.txt')</div><div class='add'>+  #     File.exist?('dest0.txt')   # =&gt; false</div><div class='add'>+  #     FileUtils.ln_s('src0.txt', 'dest0.txt')</div><div class='add'>+  #     File.symlink?('dest0.txt') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # - When +dest+ is the path to an existing file,</div><div class='add'>+  #   creates a symbolic link at +dest+ pointing to +src+</div><div class='add'>+  #   if and only if keyword argument &lt;tt&gt;force: true&lt;/tt&gt; is given</div><div class='add'>+  #   (raises an exception otherwise):</div><div class='ctx'>   #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   FileUtils.ln_s(target, link, force: nil, noop: nil, verbose: nil)</div><div class='del'>-  #   FileUtils.ln_s(target,  dir, force: nil, noop: nil, verbose: nil)</div><div class='del'>-  #   FileUtils.ln_s(targets, dir, force: nil, noop: nil, verbose: nil)</div><div class='add'>+  #     FileUtils.touch('src1.txt')</div><div class='add'>+  #     FileUtils.touch('dest1.txt')</div><div class='add'>+  #     FileUtils.ln_s('src1.txt', 'dest1.txt', force: true)</div><div class='add'>+  #     FileTest.symlink?('dest1.txt') # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  # In the first form, creates a symbolic link +link+ which points to +target+.</div><div class='del'>-  # If +link+ already exists, raises Errno::EEXIST.</div><div class='del'>-  # But if the :force option is set, overwrites +link+.</div><div class='add'>+  #     FileUtils.ln_s('src1.txt', 'dest1.txt') # Raises Errno::EEXIST.</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.ln_s '/usr/bin/ruby', '/usr/local/bin/ruby'</div><div class='del'>-  #   FileUtils.ln_s 'verylongsourcefilename.c', 'c', force: true</div><div class='add'>+  # If +dest+ is the path to a directory,</div><div class='add'>+  # creates a symbolic link at &lt;tt&gt;dest/src&lt;/tt&gt; pointing to +src+:</div><div class='ctx'>   #</div><div class='del'>-  # In the second form, creates a link +dir/target+ pointing to +target+.</div><div class='del'>-  # In the third form, creates several symbolic links in the directory +dir+,</div><div class='del'>-  # pointing to each item in +targets+.</div><div class='del'>-  # If +dir+ is not a directory, raises Errno::ENOTDIR.</div><div class='add'>+  #   FileUtils.touch('src2.txt')</div><div class='add'>+  #   FileUtils.mkdir('destdir2')</div><div class='add'>+  #   FileUtils.ln_s('src2.txt', 'destdir2')</div><div class='add'>+  #   File.symlink?('destdir2/src2.txt') # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.ln_s Dir.glob('/bin/*.rb'), '/home/foo/bin'</div><div class='add'>+  # If +src+ is an array of paths to existing files and +dest+ is a directory,</div><div class='add'>+  # for each child +child+ in +src+ creates a symbolic link &lt;tt&gt;dest/child&lt;/tt&gt;</div><div class='add'>+  # pointing to +child+:</div><div class='ctx'>   #</div><div class='del'>-  def ln_s(src, dest, force: nil, noop: nil, verbose: nil)</div><div class='add'>+  #   FileUtils.mkdir('srcdir3')</div><div class='add'>+  #   FileUtils.touch('srcdir3/src0.txt')</div><div class='add'>+  #   FileUtils.touch('srcdir3/src1.txt')</div><div class='add'>+  #   FileUtils.mkdir('destdir3')</div><div class='add'>+  #   FileUtils.ln_s(['srcdir3/src0.txt', 'srcdir3/src1.txt'], 'destdir3')</div><div class='add'>+  #   File.symlink?('destdir3/src0.txt') # =&gt; true</div><div class='add'>+  #   File.symlink?('destdir3/src1.txt') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;force: true&lt;/tt&gt; - overwrites +dest+ if it exists.</div><div class='add'>+  # - &lt;tt&gt;relative: false&lt;/tt&gt; - create links relative to +dest+.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not create links.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.ln_s('src0.txt', 'dest0.txt', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.ln_s('src1.txt', 'destdir1', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.ln_s('src2.txt', 'dest2.txt', force: true, noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.ln_s(['srcdir3/src0.txt', 'srcdir3/src1.txt'], 'destdir3', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     ln -s src0.txt dest0.txt</div><div class='add'>+  #     ln -s src1.txt destdir1</div><div class='add'>+  #     ln -sf src2.txt dest2.txt</div><div class='add'>+  #     ln -s srcdir3/src0.txt srcdir3/src1.txt destdir3</div><div class='add'>+  #</div><div class='add'>+  # FileUtils.symlink is an alias for FileUtils.ln_s.</div><div class='add'>+  #</div><div class='add'>+  # Related: FileUtils.ln_sf.</div><div class='add'>+  #</div><div class='add'>+  def ln_s(src, dest, force: nil, relative: false, target_directory: true, noop: nil, verbose: nil)</div><div class='add'>+    if relative</div><div class='add'>+      return ln_sr(src, dest, force: force, noop: noop, verbose: verbose)</div><div class='add'>+    end</div><div class='ctx'>     fu_output_message "ln -s#{force ? 'f' : ''} #{[src,dest].flatten.join ' '}" if verbose</div><div class='ctx'>     return if noop</div><div class='ctx'>     fu_each_src_dest0(src, dest) do |s,d|</div><div class='hunk'>@@ -368,29 +727,95 @@ module FileUtils</div><div class='ctx'>   alias symlink ln_s</div><div class='ctx'>   module_function :symlink</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   FileUtils.ln_sf(*args)</div><div class='del'>-  #</div><div class='del'>-  # Same as</div><div class='del'>-  #</div><div class='del'>-  #   FileUtils.ln_s(*args, force: true)</div><div class='add'>+  # Like FileUtils.ln_s, but always with keyword argument &lt;tt&gt;force: true&lt;/tt&gt; given.</div><div class='ctx'>   #</div><div class='ctx'>   def ln_sf(src, dest, noop: nil, verbose: nil)</div><div class='ctx'>     ln_s src, dest, force: true, noop: noop, verbose: verbose</div><div class='ctx'>   end</div><div class='ctx'>   module_function :ln_sf</div><div class='ctx'> </div><div class='add'>+  # Like FileUtils.ln_s, but create links relative to +dest+.</div><div class='add'>+  #</div><div class='add'>+  def ln_sr(src, dest, target_directory: true, force: nil, noop: nil, verbose: nil)</div><div class='add'>+    options = "#{force ? 'f' : ''}#{target_directory ? '' : 'T'}"</div><div class='add'>+    dest = File.path(dest)</div><div class='add'>+    srcs = Array(src)</div><div class='add'>+    link = proc do |s, target_dir_p = true|</div><div class='add'>+      s = File.path(s)</div><div class='add'>+      if target_dir_p</div><div class='add'>+        d = File.join(destdirs = dest, File.basename(s))</div><div class='add'>+      else</div><div class='add'>+        destdirs = File.dirname(d = dest)</div><div class='add'>+      end</div><div class='add'>+      destdirs = fu_split_path(File.realpath(destdirs))</div><div class='add'>+      if fu_starting_path?(s)</div><div class='add'>+        srcdirs = fu_split_path((File.realdirpath(s) rescue File.expand_path(s)))</div><div class='add'>+        base = fu_relative_components_from(srcdirs, destdirs)</div><div class='add'>+        s = File.join(*base)</div><div class='add'>+      else</div><div class='add'>+        srcdirs = fu_clean_components(*fu_split_path(s))</div><div class='add'>+        base = fu_relative_components_from(fu_split_path(Dir.pwd), destdirs)</div><div class='add'>+        while srcdirs.first&amp;. == ".." and base.last&amp;.!=("..") and !fu_starting_path?(base.last)</div><div class='add'>+          srcdirs.shift</div><div class='add'>+          base.pop</div><div class='add'>+        end</div><div class='add'>+        s = File.join(*base, *srcdirs)</div><div class='add'>+      end</div><div class='add'>+      fu_output_message "ln -s#{options} #{s} #{d}" if verbose</div><div class='add'>+      next if noop</div><div class='add'>+      remove_file d, true if force</div><div class='add'>+      File.symlink s, d</div><div class='add'>+    end</div><div class='add'>+    case srcs.size</div><div class='add'>+    when 0</div><div class='add'>+    when 1</div><div class='add'>+      link[srcs[0], target_directory &amp;&amp; File.directory?(dest)]</div><div class='add'>+    else</div><div class='add'>+      srcs.each(&amp;link)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  module_function :ln_sr</div><div class='add'>+</div><div class='add'>+  # Creates {hard links}[https://en.wikipedia.org/wiki/Hard_link]; returns +nil+.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ and +dest+</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a file and +dest+ does not exist,</div><div class='add'>+  # creates a hard link at +dest+ pointing to +src+:</div><div class='ctx'>   #</div><div class='del'>-  # Hard links a file system entry +src+ to +dest+.</div><div class='del'>-  # If +src+ is a directory, this method links its contents recursively.</div><div class='add'>+  #   FileUtils.touch('src0.txt')</div><div class='add'>+  #   File.exist?('dest0.txt') # =&gt; false</div><div class='add'>+  #   FileUtils.link_entry('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.file?('dest0.txt')  # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  # Both of +src+ and +dest+ must be a path name.</div><div class='del'>-  # +src+ must exist, +dest+ must not exist.</div><div class='add'>+  # If +src+ is the path to a directory and +dest+ does not exist,</div><div class='add'>+  # recursively creates hard links at +dest+ pointing to paths in +src+:</div><div class='ctx'>   #</div><div class='del'>-  # If +dereference_root+ is true, this method dereferences the tree root.</div><div class='add'>+  #   FileUtils.mkdir_p(['src1/dir0', 'src1/dir1'])</div><div class='add'>+  #   src_file_paths = [</div><div class='add'>+  #     'src1/dir0/t0.txt',</div><div class='add'>+  #     'src1/dir0/t1.txt',</div><div class='add'>+  #     'src1/dir1/t2.txt',</div><div class='add'>+  #     'src1/dir1/t3.txt',</div><div class='add'>+  #     ]</div><div class='add'>+  #   FileUtils.touch(src_file_paths)</div><div class='add'>+  #   File.directory?('dest1')        # =&gt; true</div><div class='add'>+  #   FileUtils.link_entry('src1', 'dest1')</div><div class='add'>+  #   File.file?('dest1/dir0/t0.txt') # =&gt; true</div><div class='add'>+  #   File.file?('dest1/dir0/t1.txt') # =&gt; true</div><div class='add'>+  #   File.file?('dest1/dir1/t2.txt') # =&gt; true</div><div class='add'>+  #   File.file?('dest1/dir1/t3.txt') # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  # If +remove_destination+ is true, this method removes each destination file before copy.</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;dereference_root: true&lt;/tt&gt; - dereferences +src+ if it is a symbolic link.</div><div class='add'>+  # - &lt;tt&gt;remove_destination: true&lt;/tt&gt; - removes +dest+ before creating links.</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if +dest+ is the path to an existing file or directory</div><div class='add'>+  # and keyword argument &lt;tt&gt;remove_destination: true&lt;/tt&gt; is not given.</div><div class='add'>+  #</div><div class='add'>+  # Related: FileUtils.ln (has different options).</div><div class='ctx'>   #</div><div class='ctx'>   def link_entry(src, dest, dereference_root = false, remove_destination = false)</div><div class='ctx'>     Entry_.new(src, nil, dereference_root).traverse do |ent|</div><div class='hunk'>@@ -401,16 +826,59 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :link_entry</div><div class='ctx'> </div><div class='add'>+  # Copies files.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a file and +dest+ is not the path to a directory,</div><div class='add'>+  # copies +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.touch('src0.txt')</div><div class='add'>+  #   File.exist?('dest0.txt') # =&gt; false</div><div class='add'>+  #   FileUtils.cp('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.file?('dest0.txt')  # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a file and +dest+ is the path to a directory,</div><div class='add'>+  # copies +src+ to &lt;tt&gt;dest/src&lt;/tt&gt;:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.touch('src1.txt')</div><div class='add'>+  #   FileUtils.mkdir('dest1')</div><div class='add'>+  #   FileUtils.cp('src1.txt', 'dest1')</div><div class='add'>+  #   File.file?('dest1/src1.txt') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is an array of paths to files and +dest+ is the path to a directory,</div><div class='add'>+  # copies from each +src+ to +dest+:</div><div class='ctx'>   #</div><div class='del'>-  # Copies a file content +src+ to +dest+.  If +dest+ is a directory,</div><div class='del'>-  # copies +src+ to +dest/src+.</div><div class='add'>+  #   src_file_paths = ['src2.txt', 'src2.dat']</div><div class='add'>+  #   FileUtils.touch(src_file_paths)</div><div class='add'>+  #   FileUtils.mkdir('dest2')</div><div class='add'>+  #   FileUtils.cp(src_file_paths, 'dest2')</div><div class='add'>+  #   File.file?('dest2/src2.txt') # =&gt; true</div><div class='add'>+  #   File.file?('dest2/src2.dat') # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  # If +src+ is a list of files, then +dest+ must be a directory.</div><div class='add'>+  # Keyword arguments:</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.cp 'eval.c', 'eval.c.org'</div><div class='del'>-  #   FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6'</div><div class='del'>-  #   FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6', :verbose =&gt; true</div><div class='del'>-  #   FileUtils.cp 'symlink', 'dest'   # copy content, "dest" is not a symlink</div><div class='add'>+  # - &lt;tt&gt;preserve: true&lt;/tt&gt; - preserves file times.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not copy files.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.cp('src0.txt', 'dest0.txt', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.cp('src1.txt', 'dest1', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.cp(src_file_paths, 'dest2', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     cp src0.txt dest0.txt</div><div class='add'>+  #     cp src1.txt dest1</div><div class='add'>+  #     cp src2.txt src2.dat dest2</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception if +src+ is a directory.</div><div class='add'>+  #</div><div class='add'>+  # FileUtils.copy is an alias for FileUtils.cp.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def cp(src, dest, preserve: nil, noop: nil, verbose: nil)</div><div class='ctx'>     fu_output_message "cp#{preserve ? ' -p' : ''} #{[src,dest].flatten.join ' '}" if verbose</div><div class='hunk'>@@ -424,26 +892,105 @@ module FileUtils</div><div class='ctx'>   alias copy cp</div><div class='ctx'>   module_function :copy</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Copies +src+ to +dest+. If +src+ is a directory, this method copies</div><div class='del'>-  # all its contents recursively. If +dest+ is a directory, copies</div><div class='del'>-  # +src+ to +dest/src+.</div><div class='del'>-  #</div><div class='del'>-  # +src+ can be a list of files.</div><div class='del'>-  #</div><div class='del'>-  #   # Installing Ruby library "mylib" under the site_ruby</div><div class='del'>-  #   FileUtils.rm_r site_ruby + '/mylib', :force</div><div class='del'>-  #   FileUtils.cp_r 'lib/', site_ruby + '/mylib'</div><div class='del'>-  #</div><div class='del'>-  #   # Examples of copying several files to target directory.</div><div class='del'>-  #   FileUtils.cp_r %w(mail.rb field.rb debug/), site_ruby + '/tmail'</div><div class='del'>-  #   FileUtils.cp_r Dir.glob('*.rb'), '/home/foo/lib/ruby', :noop =&gt; true, :verbose =&gt; true</div><div class='del'>-  #</div><div class='del'>-  #   # If you want to copy all contents of a directory instead of the</div><div class='del'>-  #   # directory itself, c.f. src/x -&gt; dest/x, src/y -&gt; dest/y,</div><div class='del'>-  #   # use following code.</div><div class='del'>-  #   FileUtils.cp_r 'src/.', 'dest'     # cp_r('src', 'dest') makes dest/src,</div><div class='del'>-  #                                      # but this doesn't.</div><div class='add'>+  # Recursively copies files.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # The mode, owner, and group are retained in the copy;</div><div class='add'>+  # to change those, use FileUtils.install instead.</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a file and +dest+ is not the path to a directory,</div><div class='add'>+  # copies +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.touch('src0.txt')</div><div class='add'>+  #   File.exist?('dest0.txt') # =&gt; false</div><div class='add'>+  #   FileUtils.cp_r('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.file?('dest0.txt')  # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a file and +dest+ is the path to a directory,</div><div class='add'>+  # copies +src+ to &lt;tt&gt;dest/src&lt;/tt&gt;:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.touch('src1.txt')</div><div class='add'>+  #   FileUtils.mkdir('dest1')</div><div class='add'>+  #   FileUtils.cp_r('src1.txt', 'dest1')</div><div class='add'>+  #   File.file?('dest1/src1.txt') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a directory and +dest+ does not exist,</div><div class='add'>+  # recursively copies +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src2')</div><div class='add'>+  #   # =&gt; src2</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #    |-- src2.txt</div><div class='add'>+  #   #    `-- src3.txt</div><div class='add'>+  #   FileUtils.exist?('dest2') # =&gt; false</div><div class='add'>+  #   FileUtils.cp_r('src2', 'dest2')</div><div class='add'>+  #   tree('dest2')</div><div class='add'>+  #   # =&gt; dest2</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #    |-- src2.txt</div><div class='add'>+  #   #    `-- src3.txt</div><div class='add'>+  #</div><div class='add'>+  # If +src+ and +dest+ are paths to directories,</div><div class='add'>+  # recursively copies +src+ to &lt;tt&gt;dest/src&lt;/tt&gt;:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src3')</div><div class='add'>+  #   # =&gt; src3</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #    |-- src2.txt</div><div class='add'>+  #   #    `-- src3.txt</div><div class='add'>+  #   FileUtils.mkdir('dest3')</div><div class='add'>+  #   FileUtils.cp_r('src3', 'dest3')</div><div class='add'>+  #   tree('dest3')</div><div class='add'>+  #   # =&gt; dest3</div><div class='add'>+  #   #    `-- src3</div><div class='add'>+  #   #      |-- dir0</div><div class='add'>+  #   #      |   |-- src0.txt</div><div class='add'>+  #   #      |   `-- src1.txt</div><div class='add'>+  #   #      `-- dir1</div><div class='add'>+  #   #          |-- src2.txt</div><div class='add'>+  #   #          `-- src3.txt</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is an array of paths and +dest+ is a directory,</div><div class='add'>+  # recursively copies from each path in +src+ to +dest+;</div><div class='add'>+  # the paths in +src+ may point to files and/or directories.</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;dereference_root: false&lt;/tt&gt; - if +src+ is a symbolic link,</div><div class='add'>+  #   does not dereference it.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not copy files.</div><div class='add'>+  # - &lt;tt&gt;preserve: true&lt;/tt&gt; - preserves file times.</div><div class='add'>+  # - &lt;tt&gt;remove_destination: true&lt;/tt&gt; - removes +dest+ before copying files.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.cp_r('src0.txt', 'dest0.txt', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.cp_r('src1.txt', 'dest1', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.cp_r('src2', 'dest2', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.cp_r('src3', 'dest3', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     cp -r src0.txt dest0.txt</div><div class='add'>+  #     cp -r src1.txt dest1</div><div class='add'>+  #     cp -r src2 dest2</div><div class='add'>+  #     cp -r src3 dest3</div><div class='add'>+  #</div><div class='add'>+  # Raises an exception of +src+ is the path to a directory</div><div class='add'>+  # and +dest+ is the path to a file.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def cp_r(src, dest, preserve: nil, noop: nil, verbose: nil,</div><div class='ctx'>            dereference_root: true, remove_destination: nil)</div><div class='hunk'>@@ -455,24 +1002,57 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :cp_r</div><div class='ctx'> </div><div class='add'>+  # Recursively copies files from +src+ to +dest+.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ and +dest+</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a file, copies +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.touch('src0.txt')</div><div class='add'>+  #   File.exist?('dest0.txt') # =&gt; false</div><div class='add'>+  #   FileUtils.copy_entry('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.file?('dest0.txt')  # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  # Copies a file system entry +src+ to +dest+.</div><div class='del'>-  # If +src+ is a directory, this method copies its contents recursively.</div><div class='del'>-  # This method preserves file types, c.f. symlink, directory...</div><div class='del'>-  # (FIFO, device files and etc. are not supported yet)</div><div class='add'>+  # If +src+ is a directory, recursively copies +src+ to +dest+:</div><div class='ctx'>   #</div><div class='del'>-  # Both of +src+ and +dest+ must be a path name.</div><div class='del'>-  # +src+ must exist, +dest+ must not exist.</div><div class='add'>+  #   tree('src1')</div><div class='add'>+  #   # =&gt; src1</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #   FileUtils.copy_entry('src1', 'dest1')</div><div class='add'>+  #   tree('dest1')</div><div class='add'>+  #   # =&gt; dest1</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='ctx'>   #</div><div class='del'>-  # If +preserve+ is true, this method preserves owner, group, and</div><div class='del'>-  # modified time.  Permissions are copied regardless +preserve+.</div><div class='add'>+  # The recursive copying preserves file types for regular files,</div><div class='add'>+  # directories, and symbolic links;</div><div class='add'>+  # other file types (FIFO streams, device files, etc.) are not supported.</div><div class='ctx'>   #</div><div class='del'>-  # If +dereference_root+ is true, this method dereference tree root.</div><div class='add'>+  # Keyword arguments:</div><div class='ctx'>   #</div><div class='del'>-  # If +remove_destination+ is true, this method removes each destination file before copy.</div><div class='add'>+  # - &lt;tt&gt;dereference_root: true&lt;/tt&gt; - if +src+ is a symbolic link,</div><div class='add'>+  #   follows the link.</div><div class='add'>+  # - &lt;tt&gt;preserve: true&lt;/tt&gt; - preserves file times.</div><div class='add'>+  # - &lt;tt&gt;remove_destination: true&lt;/tt&gt; - removes +dest+ before copying files.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def copy_entry(src, dest, preserve = false, dereference_root = false, remove_destination = false)</div><div class='del'>-    Entry_.new(src, nil, dereference_root).wrap_traverse(proc do |ent|</div><div class='add'>+    if dereference_root</div><div class='add'>+      src = File.realpath(src)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    Entry_.new(src, nil, false).wrap_traverse(proc do |ent|</div><div class='ctx'>       destent = Entry_.new(dest, ent.rel, false)</div><div class='ctx'>       File.unlink destent.path if remove_destination &amp;&amp; (File.file?(destent.path) || File.symlink?(destent.path))</div><div class='ctx'>       ent.copy destent.path</div><div class='hunk'>@@ -483,9 +1063,25 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :copy_entry</div><div class='ctx'> </div><div class='add'>+  # Copies file from +src+ to +dest+, which should not be directories.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ and +dest+</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  # Copies file contents of +src+ to +dest+.</div><div class='del'>-  # Both of +src+ and +dest+ must be a path name.</div><div class='add'>+  # Examples:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.touch('src0.txt')</div><div class='add'>+  #   FileUtils.copy_file('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.file?('dest0.txt') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;dereference: false&lt;/tt&gt; - if +src+ is a symbolic link,</div><div class='add'>+  #   does not follow the link.</div><div class='add'>+  # - &lt;tt&gt;preserve: true&lt;/tt&gt; - preserves file times.</div><div class='add'>+  # - &lt;tt&gt;remove_destination: true&lt;/tt&gt; - removes +dest+ before copying files.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def copy_file(src, dest, preserve = false, dereference = true)</div><div class='ctx'>     ent = Entry_.new(src, nil, dereference)</div><div class='hunk'>@@ -494,25 +1090,81 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :copy_file</div><div class='ctx'> </div><div class='add'>+  # Copies \IO stream +src+ to \IO stream +dest+ via</div><div class='add'>+  # {IO.copy_stream}[rdoc-ref:IO.copy_stream].</div><div class='ctx'>   #</div><div class='del'>-  # Copies stream +src+ to +dest+.</div><div class='del'>-  # +src+ must respond to #read(n) and</div><div class='del'>-  # +dest+ must respond to #write(str).</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def copy_stream(src, dest)</div><div class='ctx'>     IO.copy_stream(src, dest)</div><div class='ctx'>   end</div><div class='ctx'>   module_function :copy_stream</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Moves file(s) +src+ to +dest+.  If +file+ and +dest+ exist on the different</div><div class='del'>-  # disk partition, the file is copied then the original file is removed.</div><div class='del'>-  #</div><div class='del'>-  #   FileUtils.mv 'badname.rb', 'goodname.rb'</div><div class='del'>-  #   FileUtils.mv 'stuff.rb', '/notexist/lib/ruby', :force =&gt; true  # no error</div><div class='del'>-  #</div><div class='del'>-  #   FileUtils.mv %w(junk.txt dust.txt), '/home/foo/.trash/'</div><div class='del'>-  #   FileUtils.mv Dir.glob('test*.rb'), 'test', :noop =&gt; true, :verbose =&gt; true</div><div class='add'>+  # Moves entries.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ and +dest+ are on different file systems,</div><div class='add'>+  # first copies, then removes +src+.</div><div class='add'>+  #</div><div class='add'>+  # May cause a local vulnerability if not called with keyword argument</div><div class='add'>+  # &lt;tt&gt;secure: true&lt;/tt&gt;;</div><div class='add'>+  # see {Avoiding the TOCTTOU Vulnerability}[rdoc-ref:FileUtils@Avoiding+the+TOCTTOU+Vulnerability].</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is the path to a single file or directory and +dest+ does not exist,</div><div class='add'>+  # moves +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src0')</div><div class='add'>+  #   # =&gt; src0</div><div class='add'>+  #   #    |-- src0.txt</div><div class='add'>+  #   #    `-- src1.txt</div><div class='add'>+  #   File.exist?('dest0') # =&gt; false</div><div class='add'>+  #   FileUtils.mv('src0', 'dest0')</div><div class='add'>+  #   File.exist?('src0')  # =&gt; false</div><div class='add'>+  #   tree('dest0')</div><div class='add'>+  #   # =&gt; dest0</div><div class='add'>+  #   #    |-- src0.txt</div><div class='add'>+  #   #    `-- src1.txt</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is an array of paths to files and directories</div><div class='add'>+  # and +dest+ is the path to a directory,</div><div class='add'>+  # copies from each path in the array to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   File.file?('src1.txt') # =&gt; true</div><div class='add'>+  #   tree('src1')</div><div class='add'>+  #   # =&gt; src1</div><div class='add'>+  #   #    |-- src.dat</div><div class='add'>+  #   #    `-- src.txt</div><div class='add'>+  #   Dir.empty?('dest1')    # =&gt; true</div><div class='add'>+  #   FileUtils.mv(['src1.txt', 'src1'], 'dest1')</div><div class='add'>+  #   tree('dest1')</div><div class='add'>+  #   # =&gt; dest1</div><div class='add'>+  #   #    |-- src1</div><div class='add'>+  #   #    |   |-- src.dat</div><div class='add'>+  #   #    |   `-- src.txt</div><div class='add'>+  #   #    `-- src1.txt</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;force: true&lt;/tt&gt; - if the move includes removing +src+</div><div class='add'>+  #   (that is, if +src+ and +dest+ are on different file systems),</div><div class='add'>+  #   ignores raised exceptions of StandardError and its descendants.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not move files.</div><div class='add'>+  # - &lt;tt&gt;secure: true&lt;/tt&gt; - removes +src+ securely;</div><div class='add'>+  #   see details at FileUtils.remove_entry_secure.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.mv('src0', 'dest0', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.mv(['src1.txt', 'src1'], 'dest1', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     mv src0 dest0</div><div class='add'>+  #     mv src1.txt src1 dest1</div><div class='add'>+  #</div><div class='add'>+  # FileUtils.move is an alias for FileUtils.mv.</div><div class='ctx'>   #</div><div class='ctx'>   def mv(src, dest, force: nil, noop: nil, verbose: nil, secure: nil)</div><div class='ctx'>     fu_output_message "mv#{force ? ' -f' : ''} #{[src,dest].flatten.join ' '}" if verbose</div><div class='hunk'>@@ -527,7 +1179,8 @@ module FileUtils</div><div class='ctx'>         end</div><div class='ctx'>         begin</div><div class='ctx'>           File.rename s, d</div><div class='del'>-        rescue Errno::EXDEV</div><div class='add'>+        rescue Errno::EXDEV,</div><div class='add'>+               Errno::EPERM # move from unencrypted to encrypted dir (ext4)</div><div class='ctx'>           copy_entry s, d, true</div><div class='ctx'>           if secure</div><div class='ctx'>             remove_entry_secure s, force</div><div class='hunk'>@@ -545,13 +1198,34 @@ module FileUtils</div><div class='ctx'>   alias move mv</div><div class='ctx'>   module_function :move</div><div class='ctx'> </div><div class='add'>+  # Removes entries at the paths in the given +list+</div><div class='add'>+  # (a single path or an array of paths)</div><div class='add'>+  # returns +list+, if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # With no keyword arguments, removes files at the paths given in +list+:</div><div class='ctx'>   #</div><div class='del'>-  # Remove file(s) specified in +list+.  This method cannot remove directories.</div><div class='del'>-  # All StandardErrors are ignored when the :force option is set.</div><div class='add'>+  #   FileUtils.touch(['src0.txt', 'src0.dat'])</div><div class='add'>+  #   FileUtils.rm(['src0.dat', 'src0.txt']) # =&gt; ["src0.dat", "src0.txt"]</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.rm %w( junk.txt dust.txt )</div><div class='del'>-  #   FileUtils.rm Dir.glob('*.so')</div><div class='del'>-  #   FileUtils.rm 'NotExistFile', :force =&gt; true   # never raises exception</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;force: true&lt;/tt&gt; - ignores raised exceptions of StandardError</div><div class='add'>+  #   and its descendants.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not remove files; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.rm(['src0.dat', 'src0.txt'], noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     rm src0.dat src0.txt</div><div class='add'>+  #</div><div class='add'>+  # FileUtils.remove is an alias for FileUtils.rm.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def rm(list, force: nil, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -567,10 +1241,18 @@ module FileUtils</div><div class='ctx'>   alias remove rm</div><div class='ctx'>   module_function :remove</div><div class='ctx'> </div><div class='add'>+  # Equivalent to:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.rm(list, force: true, **kwargs)</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ (a single path or an array of paths)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # See FileUtils.rm for keyword arguments.</div><div class='ctx'>   #</div><div class='del'>-  # Equivalent to</div><div class='add'>+  # FileUtils.safe_unlink is an alias for FileUtils.rm_f.</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.rm(list, :force =&gt; true)</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def rm_f(list, noop: nil, verbose: nil)</div><div class='ctx'>     rm list, force: true, noop: noop, verbose: verbose</div><div class='hunk'>@@ -580,24 +1262,55 @@ module FileUtils</div><div class='ctx'>   alias safe_unlink rm_f</div><div class='ctx'>   module_function :safe_unlink</div><div class='ctx'> </div><div class='add'>+  # Removes entries at the paths in the given +list+</div><div class='add'>+  # (a single path or an array of paths);</div><div class='add'>+  # returns +list+, if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='ctx'>   #</div><div class='del'>-  # remove files +list+[0] +list+[1]... If +list+[n] is a directory,</div><div class='del'>-  # removes its all contents recursively. This method ignores</div><div class='del'>-  # StandardError when :force option is set.</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.rm_r Dir.glob('/tmp/*')</div><div class='del'>-  #   FileUtils.rm_r 'some_dir', :force =&gt; true</div><div class='add'>+  # May cause a local vulnerability if not called with keyword argument</div><div class='add'>+  # &lt;tt&gt;secure: true&lt;/tt&gt;;</div><div class='add'>+  # see {Avoiding the TOCTTOU Vulnerability}[rdoc-ref:FileUtils@Avoiding+the+TOCTTOU+Vulnerability].</div><div class='ctx'>   #</div><div class='del'>-  # WARNING: This method causes local vulnerability</div><div class='del'>-  # if one of parent directories or removing directory tree are world</div><div class='del'>-  # writable (including /tmp, whose permission is 1777), and the current</div><div class='del'>-  # process has strong privilege such as Unix super user (root), and the</div><div class='del'>-  # system has symbolic link.  For secure removing, read the documentation</div><div class='del'>-  # of #remove_entry_secure carefully, and set :secure option to true.</div><div class='del'>-  # Default is :secure=&gt;false.</div><div class='add'>+  # For each file path, removes the file at that path:</div><div class='ctx'>   #</div><div class='del'>-  # NOTE: This method calls #remove_entry_secure if :secure option is set.</div><div class='del'>-  # See also #remove_entry_secure.</div><div class='add'>+  #   FileUtils.touch(['src0.txt', 'src0.dat'])</div><div class='add'>+  #   FileUtils.rm_r(['src0.dat', 'src0.txt'])</div><div class='add'>+  #   File.exist?('src0.txt') # =&gt; false</div><div class='add'>+  #   File.exist?('src0.dat') # =&gt; false</div><div class='add'>+  #</div><div class='add'>+  # For each directory path, recursively removes files and directories:</div><div class='add'>+  #</div><div class='add'>+  #   tree('src1')</div><div class='add'>+  #   # =&gt; src1</div><div class='add'>+  #   #    |-- dir0</div><div class='add'>+  #   #    |   |-- src0.txt</div><div class='add'>+  #   #    |   `-- src1.txt</div><div class='add'>+  #   #    `-- dir1</div><div class='add'>+  #   #        |-- src2.txt</div><div class='add'>+  #   #        `-- src3.txt</div><div class='add'>+  #   FileUtils.rm_r('src1')</div><div class='add'>+  #   File.exist?('src1') # =&gt; false</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;force: true&lt;/tt&gt; - ignores raised exceptions of StandardError</div><div class='add'>+  #   and its descendants.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not remove entries; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;secure: true&lt;/tt&gt; - removes +src+ securely;</div><div class='add'>+  #   see details at FileUtils.remove_entry_secure.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.rm_r(['src0.dat', 'src0.txt'], noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.rm_r('src1', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     rm -r src0.dat src0.txt</div><div class='add'>+  #     rm -r src1</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def rm_r(list, force: nil, noop: nil, verbose: nil, secure: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -613,13 +1326,22 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :rm_r</div><div class='ctx'> </div><div class='add'>+  # Equivalent to:</div><div class='add'>+  #</div><div class='add'>+  #   FileUtils.rm_r(list, force: true, **kwargs)</div><div class='ctx'>   #</div><div class='del'>-  # Equivalent to</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.rm_r(list, :force =&gt; true)</div><div class='add'>+  # May cause a local vulnerability if not called with keyword argument</div><div class='add'>+  # &lt;tt&gt;secure: true&lt;/tt&gt;;</div><div class='add'>+  # see {Avoiding the TOCTTOU Vulnerability}[rdoc-ref:FileUtils@Avoiding+the+TOCTTOU+Vulnerability].</div><div class='ctx'>   #</div><div class='del'>-  # WARNING: This method causes local vulnerability.</div><div class='del'>-  # Read the documentation of #rm_r first.</div><div class='add'>+  # See FileUtils.rm_r for keyword arguments.</div><div class='add'>+  #</div><div class='add'>+  # FileUtils.rmtree is an alias for FileUtils.rm_rf.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def rm_rf(list, noop: nil, verbose: nil, secure: nil)</div><div class='ctx'>     rm_r list, force: true, noop: noop, verbose: verbose, secure: secure</div><div class='hunk'>@@ -629,37 +1351,20 @@ module FileUtils</div><div class='ctx'>   alias rmtree rm_rf</div><div class='ctx'>   module_function :rmtree</div><div class='ctx'> </div><div class='add'>+  # Securely removes the entry given by +path+,</div><div class='add'>+  # which should be the entry for a regular file, a symbolic link,</div><div class='add'>+  # or a directory.</div><div class='ctx'>   #</div><div class='del'>-  # This method removes a file system entry +path+.  +path+ shall be a</div><div class='del'>-  # regular file, a directory, or something.  If +path+ is a directory,</div><div class='del'>-  # remove it recursively.  This method is required to avoid TOCTTOU</div><div class='del'>-  # (time-of-check-to-time-of-use) local security vulnerability of #rm_r.</div><div class='del'>-  # #rm_r causes security hole when:</div><div class='del'>-  #</div><div class='del'>-  # * Parent directory is world writable (including /tmp).</div><div class='del'>-  # * Removing directory tree includes world writable directory.</div><div class='del'>-  # * The system has symbolic link.</div><div class='del'>-  #</div><div class='del'>-  # To avoid this security hole, this method applies special preprocess.</div><div class='del'>-  # If +path+ is a directory, this method chown(2) and chmod(2) all</div><div class='del'>-  # removing directories.  This requires the current process is the</div><div class='del'>-  # owner of the removing whole directory tree, or is the super user (root).</div><div class='del'>-  #</div><div class='del'>-  # WARNING: You must ensure that *ALL* parent directories cannot be</div><div class='del'>-  # moved by other untrusted users.  For example, parent directories</div><div class='del'>-  # should not be owned by untrusted users, and should not be world</div><div class='del'>-  # writable except when the sticky bit set.</div><div class='add'>+  # Argument +path+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  # WARNING: Only the owner of the removing directory tree, or Unix super</div><div class='del'>-  # user (root) should invoke this method.  Otherwise this method does not</div><div class='del'>-  # work.</div><div class='add'>+  # Avoids a local vulnerability that can exist in certain circumstances;</div><div class='add'>+  # see {Avoiding the TOCTTOU Vulnerability}[rdoc-ref:FileUtils@Avoiding+the+TOCTTOU+Vulnerability].</div><div class='ctx'>   #</div><div class='del'>-  # For details of this security vulnerability, see Perl's case:</div><div class='add'>+  # Optional argument +force+ specifies whether to ignore</div><div class='add'>+  # raised exceptions of StandardError and its descendants.</div><div class='ctx'>   #</div><div class='del'>-  # * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0448</div><div class='del'>-  # * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0452</div><div class='del'>-  #</div><div class='del'>-  # For fileutils.rb, this vulnerability is reported in [ruby-dev:26100].</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def remove_entry_secure(path, force = false)</div><div class='ctx'>     unless fu_have_symlink?</div><div class='hunk'>@@ -695,7 +1400,7 @@ module FileUtils</div><div class='ctx'>         f.chown euid, -1</div><div class='ctx'>         f.chmod 0700</div><div class='ctx'>       }</div><div class='del'>-    rescue EISDIR # JRuby in non-native mode can't open files as dirs</div><div class='add'>+    rescue Errno::EISDIR # JRuby in non-native mode can't open files as dirs</div><div class='ctx'>       File.lstat(dot_file).tap {|fstat|</div><div class='ctx'>         unless fu_stat_identical_entry?(st, fstat)</div><div class='ctx'>           # symlink (TOC-to-TOU attack?)</div><div class='hunk'>@@ -747,12 +1452,17 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :fu_stat_identical_entry?</div><div class='ctx'> </div><div class='add'>+  # Removes the entry given by +path+,</div><div class='add'>+  # which should be the entry for a regular file, a symbolic link,</div><div class='add'>+  # or a directory.</div><div class='add'>+  #</div><div class='add'>+  # Argument +path+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  # This method removes a file system entry +path+.</div><div class='del'>-  # +path+ might be a regular file, a directory, or something.</div><div class='del'>-  # If +path+ is a directory, remove it recursively.</div><div class='add'>+  # Optional argument +force+ specifies whether to ignore</div><div class='add'>+  # raised exceptions of StandardError and its descendants.</div><div class='ctx'>   #</div><div class='del'>-  # See also #remove_entry_secure.</div><div class='add'>+  # Related: FileUtils.remove_entry_secure.</div><div class='ctx'>   #</div><div class='ctx'>   def remove_entry(path, force = false)</div><div class='ctx'>     Entry_.new(path).postorder_traverse do |ent|</div><div class='hunk'>@@ -767,9 +1477,16 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :remove_entry</div><div class='ctx'> </div><div class='add'>+  # Removes the file entry given by +path+,</div><div class='add'>+  # which should be the entry for a regular file or a symbolic link.</div><div class='add'>+  #</div><div class='add'>+  # Argument +path+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # Optional argument +force+ specifies whether to ignore</div><div class='add'>+  # raised exceptions of StandardError and its descendants.</div><div class='ctx'>   #</div><div class='del'>-  # Removes a file +path+.</div><div class='del'>-  # This method ignores StandardError if +force+ is true.</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def remove_file(path, force = false)</div><div class='ctx'>     Entry_.new(path).remove_file</div><div class='hunk'>@@ -778,20 +1495,32 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :remove_file</div><div class='ctx'> </div><div class='add'>+  # Recursively removes the directory entry given by +path+,</div><div class='add'>+  # which should be the entry for a regular file, a symbolic link,</div><div class='add'>+  # or a directory.</div><div class='ctx'>   #</div><div class='del'>-  # Removes a directory +dir+ and its contents recursively.</div><div class='del'>-  # This method ignores StandardError if +force+ is true.</div><div class='add'>+  # Argument +path+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # Optional argument +force+ specifies whether to ignore</div><div class='add'>+  # raised exceptions of StandardError and its descendants.</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for deleting}[rdoc-ref:FileUtils@Deleting].</div><div class='ctx'>   #</div><div class='ctx'>   def remove_dir(path, force = false)</div><div class='ctx'>     remove_entry path, force   # FIXME?? check if it is a directory</div><div class='ctx'>   end</div><div class='ctx'>   module_function :remove_dir</div><div class='ctx'> </div><div class='add'>+  # Returns +true+ if the contents of files +a+ and +b+ are identical,</div><div class='add'>+  # +false+ otherwise.</div><div class='add'>+  #</div><div class='add'>+  # Arguments +a+ and +b+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='ctx'>   #</div><div class='del'>-  # Returns true if the contents of a file +a+ and a file +b+ are identical.</div><div class='add'>+  # FileUtils.identical? and FileUtils.cmp are aliases for FileUtils.compare_file.</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.compare_file('somefile', 'somefile')       #=&gt; true</div><div class='del'>-  #   FileUtils.compare_file('/dev/null', '/dev/urandom')  #=&gt; false</div><div class='add'>+  # Related: FileUtils.compare_stream.</div><div class='ctx'>   #</div><div class='ctx'>   def compare_file(a, b)</div><div class='ctx'>     return false unless File.size(a) == File.size(b)</div><div class='hunk'>@@ -808,19 +1537,19 @@ module FileUtils</div><div class='ctx'>   module_function :identical?</div><div class='ctx'>   module_function :cmp</div><div class='ctx'> </div><div class='add'>+  # Returns +true+ if the contents of streams +a+ and +b+ are identical,</div><div class='add'>+  # +false+ otherwise.</div><div class='ctx'>   #</div><div class='del'>-  # Returns true if the contents of a stream +a+ and +b+ are identical.</div><div class='add'>+  # Arguments +a+ and +b+</div><div class='add'>+  # should be {interpretable as a path}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # Related: FileUtils.compare_file.</div><div class='ctx'>   #</div><div class='ctx'>   def compare_stream(a, b)</div><div class='ctx'>     bsize = fu_stream_blksize(a, b)</div><div class='ctx'> </div><div class='del'>-    if RUBY_VERSION &gt; "2.4"</div><div class='del'>-      sa = String.new(capacity: bsize)</div><div class='del'>-      sb = String.new(capacity: bsize)</div><div class='del'>-    else</div><div class='del'>-      sa = String.new</div><div class='del'>-      sb = String.new</div><div class='del'>-    end</div><div class='add'>+    sa = String.new(capacity: bsize)</div><div class='add'>+    sb = String.new(capacity: bsize)</div><div class='ctx'> </div><div class='ctx'>     begin</div><div class='ctx'>       a.read(bsize, sa)</div><div class='hunk'>@@ -831,13 +1560,69 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :compare_stream</div><div class='ctx'> </div><div class='add'>+  # Copies a file entry.</div><div class='add'>+  # See {install(1)}[https://man7.org/linux/man-pages/man1/install.1.html].</div><div class='add'>+  #</div><div class='add'>+  # Arguments +src+ (a single path or an array of paths)</div><div class='add'>+  # and +dest+ (a single path)</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments];</div><div class='add'>+  #</div><div class='add'>+  # If the entry at +dest+ does not exist, copies from +src+ to +dest+:</div><div class='add'>+  #</div><div class='add'>+  #   File.read('src0.txt')    # =&gt; "aaa\n"</div><div class='add'>+  #   File.exist?('dest0.txt') # =&gt; false</div><div class='add'>+  #   FileUtils.install('src0.txt', 'dest0.txt')</div><div class='add'>+  #   File.read('dest0.txt')   # =&gt; "aaa\n"</div><div class='add'>+  #</div><div class='add'>+  # If +dest+ is a file entry, copies from +src+ to +dest+, overwriting:</div><div class='add'>+  #</div><div class='add'>+  #   File.read('src1.txt')  # =&gt; "aaa\n"</div><div class='add'>+  #   File.read('dest1.txt') # =&gt; "bbb\n"</div><div class='add'>+  #   FileUtils.install('src1.txt', 'dest1.txt')</div><div class='add'>+  #   File.read('dest1.txt') # =&gt; "aaa\n"</div><div class='add'>+  #</div><div class='add'>+  # If +dest+ is a directory entry, copies from +src+ to &lt;tt&gt;dest/src&lt;/tt&gt;,</div><div class='add'>+  # overwriting if necessary:</div><div class='add'>+  #</div><div class='add'>+  #   File.read('src2.txt')       # =&gt; "aaa\n"</div><div class='add'>+  #   File.read('dest2/src2.txt') # =&gt; "bbb\n"</div><div class='add'>+  #   FileUtils.install('src2.txt', 'dest2')</div><div class='add'>+  #   File.read('dest2/src2.txt') # =&gt; "aaa\n"</div><div class='add'>+  #</div><div class='add'>+  # If +src+ is an array of paths and +dest+ points to a directory,</div><div class='add'>+  # copies each path +path+ in +src+ to &lt;tt&gt;dest/path&lt;/tt&gt;:</div><div class='add'>+  #</div><div class='add'>+  #   File.file?('src3.txt') # =&gt; true</div><div class='add'>+  #   File.file?('src3.dat') # =&gt; true</div><div class='add'>+  #   FileUtils.mkdir('dest3')</div><div class='add'>+  #   FileUtils.install(['src3.txt', 'src3.dat'], 'dest3')</div><div class='add'>+  #   File.file?('dest3/src3.txt') # =&gt; true</div><div class='add'>+  #   File.file?('dest3/src3.dat') # =&gt; true</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;group: &lt;i&gt;group&lt;/i&gt;&lt;/tt&gt; - changes the group if not +nil+,</div><div class='add'>+  #   using {File.chown}[rdoc-ref:File.chown].</div><div class='add'>+  # - &lt;tt&gt;mode: &lt;i&gt;permissions&lt;/i&gt;&lt;/tt&gt; - changes the permissions.</div><div class='add'>+  #   using {File.chmod}[rdoc-ref:File.chmod].</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not copy entries; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;owner: &lt;i&gt;owner&lt;/i&gt;&lt;/tt&gt; - changes the owner if not +nil+,</div><div class='add'>+  #   using {File.chown}[rdoc-ref:File.chown].</div><div class='add'>+  # - &lt;tt&gt;preserve: true&lt;/tt&gt; - preserve timestamps</div><div class='add'>+  #   using {File.utime}[rdoc-ref:File.utime].</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.install('src0.txt', 'dest0.txt', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.install('src1.txt', 'dest1.txt', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.install('src2.txt', 'dest2', noop: true, verbose: true)</div><div class='ctx'>   #</div><div class='del'>-  # If +src+ is not same as +dest+, copies it and changes the permission</div><div class='del'>-  # mode to +mode+.  If +dest+ is a directory, destination is +dest+/+src+.</div><div class='del'>-  # This method removes destination before copy.</div><div class='add'>+  #   Output:</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.install 'ruby', '/usr/local/bin/ruby', :mode =&gt; 0755, :verbose =&gt; true</div><div class='del'>-  #   FileUtils.install 'lib.rb', '/usr/local/lib/ruby/site_ruby', :verbose =&gt; true</div><div class='add'>+  #     install -c src0.txt dest0.txt</div><div class='add'>+  #     install -c src1.txt dest1.txt</div><div class='add'>+  #     install -c src2.txt dest2</div><div class='add'>+  #</div><div class='add'>+  # Related: {methods for copying}[rdoc-ref:FileUtils@Copying].</div><div class='ctx'>   #</div><div class='ctx'>   def install(src, dest, mode: nil, owner: nil, group: nil, preserve: nil,</div><div class='ctx'>               noop: nil, verbose: nil)</div><div class='hunk'>@@ -897,11 +1682,8 @@ module FileUtils</div><div class='ctx'>   private_module_function :apply_mask</div><div class='ctx'> </div><div class='ctx'>   def symbolic_modes_to_i(mode_sym, path)  #:nodoc:</div><div class='del'>-    mode = if File::Stat === path</div><div class='del'>-             path.mode</div><div class='del'>-           else</div><div class='del'>-             File.stat(path).mode</div><div class='del'>-           end</div><div class='add'>+    path = File.stat(path) unless File::Stat === path</div><div class='add'>+    mode = path.mode</div><div class='ctx'>     mode_sym.split(/,/).inject(mode &amp; 07777) do |current_mode, clause|</div><div class='ctx'>       target, *actions = clause.split(/([=+-])/)</div><div class='ctx'>       raise ArgumentError, "invalid file mode: #{mode_sym}" if actions.empty?</div><div class='hunk'>@@ -918,7 +1700,7 @@ module FileUtils</div><div class='ctx'>           when "x"</div><div class='ctx'>             mask | 0111</div><div class='ctx'>           when "X"</div><div class='del'>-            if FileTest.directory? path</div><div class='add'>+            if path.directory?</div><div class='ctx'>               mask | 0111</div><div class='ctx'>             else</div><div class='ctx'>               mask</div><div class='hunk'>@@ -958,37 +1740,78 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :mode_to_s</div><div class='ctx'> </div><div class='add'>+  # Changes permissions on the entries at the paths given in +list+</div><div class='add'>+  # (a single path or an array of paths)</div><div class='add'>+  # to the permissions given by +mode+;</div><div class='add'>+  # returns +list+ if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise:</div><div class='add'>+  #</div><div class='add'>+  # - Modifies each entry that is a regular file using</div><div class='add'>+  #   {File.chmod}[rdoc-ref:File.chmod].</div><div class='add'>+  # - Modifies each entry that is a symbolic link using</div><div class='add'>+  #   {File.lchmod}[rdoc-ref:File.lchmod].</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # Argument +mode+ may be either an integer or a string:</div><div class='add'>+  #</div><div class='add'>+  # - \Integer +mode+: represents the permission bits to be set:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.chmod(0755, 'src0.txt')</div><div class='add'>+  #     FileUtils.chmod(0644, ['src0.txt', 'src0.dat'])</div><div class='add'>+  #</div><div class='add'>+  # - \String +mode+: represents the permissions to be set:</div><div class='add'>+  #</div><div class='add'>+  #   The string is of the form &lt;tt&gt;[targets][[operator][perms[,perms]]&lt;/tt&gt;, where:</div><div class='add'>+  #</div><div class='add'>+  #   - +targets+ may be any combination of these letters:</div><div class='add'>+  #</div><div class='add'>+  #     - &lt;tt&gt;'u'&lt;/tt&gt;: permissions apply to the file's owner.</div><div class='add'>+  #     - &lt;tt&gt;'g'&lt;/tt&gt;: permissions apply to users in the file's group.</div><div class='add'>+  #     - &lt;tt&gt;'o'&lt;/tt&gt;: permissions apply to other users not in the file's group.</div><div class='add'>+  #     - &lt;tt&gt;'a'&lt;/tt&gt; (the default): permissions apply to all users.</div><div class='add'>+  #</div><div class='add'>+  #   - +operator+ may be one of these letters:</div><div class='add'>+  #</div><div class='add'>+  #     - &lt;tt&gt;'+'&lt;/tt&gt;: adds permissions.</div><div class='add'>+  #     - &lt;tt&gt;'-'&lt;/tt&gt;: removes permissions.</div><div class='add'>+  #     - &lt;tt&gt;'='&lt;/tt&gt;: sets (replaces) permissions.</div><div class='add'>+  #</div><div class='add'>+  #   - +perms+ (may be repeated, with separating commas)</div><div class='add'>+  #     may be any combination of these letters:</div><div class='add'>+  #</div><div class='add'>+  #     - &lt;tt&gt;'r'&lt;/tt&gt;: Read.</div><div class='add'>+  #     - &lt;tt&gt;'w'&lt;/tt&gt;: Write.</div><div class='add'>+  #     - &lt;tt&gt;'x'&lt;/tt&gt;: Execute (search, for a directory).</div><div class='add'>+  #     - &lt;tt&gt;'X'&lt;/tt&gt;: Search (for a directories only;</div><div class='add'>+  #       must be used with &lt;tt&gt;'+'&lt;/tt&gt;)</div><div class='add'>+  #     - &lt;tt&gt;'s'&lt;/tt&gt;: Uid or gid.</div><div class='add'>+  #     - &lt;tt&gt;'t'&lt;/tt&gt;: Sticky bit.</div><div class='add'>+  #</div><div class='add'>+  #   Examples:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.chmod('u=wrx,go=rx', 'src1.txt')</div><div class='add'>+  #     FileUtils.chmod('u=wrx,go=rx', '/usr/bin/ruby')</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not change permissions; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.chmod(0755, 'src0.txt', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.chmod(0644, ['src0.txt', 'src0.dat'], noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.chmod('u=wrx,go=rx', 'src1.txt', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.chmod('u=wrx,go=rx', '/usr/bin/ruby', noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     chmod 755 src0.txt</div><div class='add'>+  #     chmod 644 src0.txt src0.dat</div><div class='add'>+  #     chmod u=wrx,go=rx src1.txt</div><div class='add'>+  #     chmod u=wrx,go=rx /usr/bin/ruby</div><div class='add'>+  #</div><div class='add'>+  # Related: FileUtils.chmod_R.</div><div class='ctx'>   #</div><div class='del'>-  # Changes permission bits on the named files (in +list+) to the bit pattern</div><div class='del'>-  # represented by +mode+.</div><div class='del'>-  #</div><div class='del'>-  # +mode+ is the symbolic and absolute mode can be used.</div><div class='del'>-  #</div><div class='del'>-  # Absolute mode is</div><div class='del'>-  #   FileUtils.chmod 0755, 'somecommand'</div><div class='del'>-  #   FileUtils.chmod 0644, %w(my.rb your.rb his.rb her.rb)</div><div class='del'>-  #   FileUtils.chmod 0755, '/usr/bin/ruby', :verbose =&gt; true</div><div class='del'>-  #</div><div class='del'>-  # Symbolic mode is</div><div class='del'>-  #   FileUtils.chmod "u=wrx,go=rx", 'somecommand'</div><div class='del'>-  #   FileUtils.chmod "u=wr,go=rr", %w(my.rb your.rb his.rb her.rb)</div><div class='del'>-  #   FileUtils.chmod "u=wrx,go=rx", '/usr/bin/ruby', :verbose =&gt; true</div><div class='del'>-  #</div><div class='del'>-  # "a" :: is user, group, other mask.</div><div class='del'>-  # "u" :: is user's mask.</div><div class='del'>-  # "g" :: is group's mask.</div><div class='del'>-  # "o" :: is other's mask.</div><div class='del'>-  # "w" :: is write permission.</div><div class='del'>-  # "r" :: is read permission.</div><div class='del'>-  # "x" :: is execute permission.</div><div class='del'>-  # "X" ::</div><div class='del'>-  #   is execute permission for directories only, must be used in conjunction with "+"</div><div class='del'>-  # "s" :: is uid, gid.</div><div class='del'>-  # "t" :: is sticky bit.</div><div class='del'>-  # "+" :: is added to a class given the specified mode.</div><div class='del'>-  # "-" :: Is removed from a given class given mode.</div><div class='del'>-  # "=" :: Is the exact nature of the class will be given a specified mode.</div><div class='del'>-</div><div class='ctx'>   def chmod(mode, list, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='ctx'>     fu_output_message sprintf('chmod %s %s', mode_to_s(mode), list.join(' ')) if verbose</div><div class='hunk'>@@ -999,12 +1822,7 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :chmod</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Changes permission bits on the named files (in +list+)</div><div class='del'>-  # to the bit pattern represented by +mode+.</div><div class='del'>-  #</div><div class='del'>-  #   FileUtils.chmod_R 0700, "/tmp/app.#{$$}"</div><div class='del'>-  #   FileUtils.chmod_R "u=wrx", "/tmp/app.#{$$}"</div><div class='add'>+  # Like FileUtils.chmod, but changes permissions recursively.</div><div class='ctx'>   #</div><div class='ctx'>   def chmod_R(mode, list, noop: nil, verbose: nil, force: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -1024,15 +1842,68 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :chmod_R</div><div class='ctx'> </div><div class='add'>+  # Changes the owner and group on the entries at the paths given in +list+</div><div class='add'>+  # (a single path or an array of paths)</div><div class='add'>+  # to the given +user+ and +group+;</div><div class='add'>+  # returns +list+ if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise:</div><div class='add'>+  #</div><div class='add'>+  # - Modifies each entry that is a regular file using</div><div class='add'>+  #   {File.chown}[rdoc-ref:File.chown].</div><div class='add'>+  # - Modifies each entry that is a symbolic link using</div><div class='add'>+  #   {File.lchown}[rdoc-ref:File.lchown].</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # User and group:</div><div class='add'>+  #</div><div class='add'>+  # - Argument +user+ may be a user name or a user id;</div><div class='add'>+  #   if +nil+ or +-1+, the user is not changed.</div><div class='add'>+  # - Argument +group+ may be a group name or a group id;</div><div class='add'>+  #   if +nil+ or +-1+, the group is not changed.</div><div class='add'>+  # - The user must be a member of the group.</div><div class='add'>+  #</div><div class='add'>+  # Examples:</div><div class='add'>+  #</div><div class='add'>+  #   # One path.</div><div class='add'>+  #   # User and group as string names.</div><div class='add'>+  #   File.stat('src0.txt').uid # =&gt; 1004</div><div class='add'>+  #   File.stat('src0.txt').gid # =&gt; 1004</div><div class='add'>+  #   FileUtils.chown('user2', 'group1', 'src0.txt')</div><div class='add'>+  #   File.stat('src0.txt').uid # =&gt; 1006</div><div class='add'>+  #   File.stat('src0.txt').gid # =&gt; 1005</div><div class='add'>+  #</div><div class='add'>+  #   # User and group as uid and gid.</div><div class='add'>+  #   FileUtils.chown(1004, 1004, 'src0.txt')</div><div class='add'>+  #   File.stat('src0.txt').uid # =&gt; 1004</div><div class='add'>+  #   File.stat('src0.txt').gid # =&gt; 1004</div><div class='add'>+  #</div><div class='add'>+  #   # Array of paths.</div><div class='add'>+  #   FileUtils.chown(1006, 1005, ['src0.txt', 'src0.dat'])</div><div class='add'>+  #</div><div class='add'>+  #   # Directory (not recursive).</div><div class='add'>+  #   FileUtils.chown('user2', 'group1', '.')</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not change permissions; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='ctx'>   #</div><div class='del'>-  # Changes owner and group on the named files (in +list+)</div><div class='del'>-  # to the user +user+ and the group +group+.  +user+ and +group+</div><div class='del'>-  # may be an ID (Integer/String) or a name (String).</div><div class='del'>-  # If +user+ or +group+ is nil, this method does not change</div><div class='del'>-  # the attribute.</div><div class='add'>+  #     FileUtils.chown('user2', 'group1', 'src0.txt', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.chown(1004, 1004, 'src0.txt', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.chown(1006, 1005, ['src0.txt', 'src0.dat'], noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.chown('user2', 'group1', path, noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.chown('user2', 'group1', '.', noop: true, verbose: true)</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.chown 'root', 'staff', '/usr/local/bin/ruby'</div><div class='del'>-  #   FileUtils.chown nil, 'bin', Dir.glob('/usr/bin/*'), :verbose =&gt; true</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     chown user2:group1 src0.txt</div><div class='add'>+  #     chown 1004:1004 src0.txt</div><div class='add'>+  #     chown 1006:1005 src0.txt src0.dat</div><div class='add'>+  #     chown user2:group1 src0.txt</div><div class='add'>+  #     chown user2:group1 .</div><div class='add'>+  #</div><div class='add'>+  # Related: FileUtils.chown_R.</div><div class='ctx'>   #</div><div class='ctx'>   def chown(user, group, list, noop: nil, verbose: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -1048,15 +1919,7 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :chown</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Changes owner and group on the named files (in +list+)</div><div class='del'>-  # to the user +user+ and the group +group+ recursively.</div><div class='del'>-  # +user+ and +group+ may be an ID (Integer/String) or</div><div class='del'>-  # a name (String).  If +user+ or +group+ is nil, this</div><div class='del'>-  # method does not change the attribute.</div><div class='del'>-  #</div><div class='del'>-  #   FileUtils.chown_R 'www', 'www', '/var/www/htdocs'</div><div class='del'>-  #   FileUtils.chown_R 'cvs', 'cvs', '/var/cvs', :verbose =&gt; true</div><div class='add'>+  # Like FileUtils.chown, but changes owner and group recursively.</div><div class='ctx'>   #</div><div class='ctx'>   def chown_R(user, group, list, noop: nil, verbose: nil, force: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -1079,11 +1942,6 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   module_function :chown_R</div><div class='ctx'> </div><div class='del'>-  begin</div><div class='del'>-    require 'etc'</div><div class='del'>-  rescue LoadError # rescue LoadError for miniruby</div><div class='del'>-  end</div><div class='del'>-</div><div class='ctx'>   def fu_get_uid(user)   #:nodoc:</div><div class='ctx'>     return nil unless user</div><div class='ctx'>     case user</div><div class='hunk'>@@ -1092,6 +1950,7 @@ module FileUtils</div><div class='ctx'>     when /\A\d+\z/</div><div class='ctx'>       user.to_i</div><div class='ctx'>     else</div><div class='add'>+      require 'etc'</div><div class='ctx'>       Etc.getpwnam(user) ? Etc.getpwnam(user).uid : nil</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='hunk'>@@ -1105,17 +1964,56 @@ module FileUtils</div><div class='ctx'>     when /\A\d+\z/</div><div class='ctx'>       group.to_i</div><div class='ctx'>     else</div><div class='add'>+      require 'etc'</div><div class='ctx'>       Etc.getgrnam(group) ? Etc.getgrnam(group).gid : nil</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :fu_get_gid</div><div class='ctx'> </div><div class='add'>+  # Updates modification times (mtime) and access times (atime)</div><div class='add'>+  # of the entries given by the paths in +list+</div><div class='add'>+  # (a single path or an array of paths);</div><div class='add'>+  # returns +list+ if it is an array, &lt;tt&gt;[list]&lt;/tt&gt; otherwise.</div><div class='add'>+  #</div><div class='add'>+  # By default, creates an empty file for any path to a non-existent entry;</div><div class='add'>+  # use keyword argument +nocreate+ to raise an exception instead.</div><div class='add'>+  #</div><div class='add'>+  # Argument +list+ or its elements</div><div class='add'>+  # should be {interpretable as paths}[rdoc-ref:FileUtils@Path+Arguments].</div><div class='add'>+  #</div><div class='add'>+  # Examples:</div><div class='ctx'>   #</div><div class='del'>-  # Updates modification time (mtime) and access time (atime) of file(s) in</div><div class='del'>-  # +list+.  Files are created if they don't exist.</div><div class='add'>+  #   # Single path.</div><div class='add'>+  #   f = File.new('src0.txt') # Existing file.</div><div class='add'>+  #   f.atime # =&gt; 2022-06-10 11:11:21.200277 -0700</div><div class='add'>+  #   f.mtime # =&gt; 2022-06-10 11:11:21.200277 -0700</div><div class='add'>+  #   FileUtils.touch('src0.txt')</div><div class='add'>+  #   f = File.new('src0.txt')</div><div class='add'>+  #   f.atime # =&gt; 2022-06-11 08:28:09.8185343 -0700</div><div class='add'>+  #   f.mtime # =&gt; 2022-06-11 08:28:09.8185343 -0700</div><div class='ctx'>   #</div><div class='del'>-  #   FileUtils.touch 'timestamp'</div><div class='del'>-  #   FileUtils.touch Dir.glob('*.c');  system 'make'</div><div class='add'>+  #   # Array of paths.</div><div class='add'>+  #   FileUtils.touch(['src0.txt', 'src0.dat'])</div><div class='add'>+  #</div><div class='add'>+  # Keyword arguments:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;mtime: &lt;i&gt;time&lt;/i&gt;&lt;/tt&gt; - sets the entry's mtime to the given time,</div><div class='add'>+  #   instead of the current time.</div><div class='add'>+  # - &lt;tt&gt;nocreate: true&lt;/tt&gt; - raises an exception if the entry does not exist.</div><div class='add'>+  # - &lt;tt&gt;noop: true&lt;/tt&gt; - does not touch entries; returns +nil+.</div><div class='add'>+  # - &lt;tt&gt;verbose: true&lt;/tt&gt; - prints an equivalent command:</div><div class='add'>+  #</div><div class='add'>+  #     FileUtils.touch('src0.txt', noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.touch(['src0.txt', 'src0.dat'], noop: true, verbose: true)</div><div class='add'>+  #     FileUtils.touch(path, noop: true, verbose: true)</div><div class='add'>+  #</div><div class='add'>+  #   Output:</div><div class='add'>+  #</div><div class='add'>+  #     touch src0.txt</div><div class='add'>+  #     touch src0.txt src0.dat</div><div class='add'>+  #     touch src0.txt</div><div class='add'>+  #</div><div class='add'>+  # Related: FileUtils.uptodate?.</div><div class='ctx'>   #</div><div class='ctx'>   def touch(list, noop: nil, verbose: nil, mtime: nil, nocreate: nil)</div><div class='ctx'>     list = fu_list(list)</div><div class='hunk'>@@ -1273,9 +2171,12 @@ module FileUtils</div><div class='ctx'> </div><div class='ctx'>     def entries</div><div class='ctx'>       opts = {}</div><div class='del'>-      opts[:encoding] = ::Encoding::UTF_8 if fu_windows?</div><div class='del'>-      Dir.children(path, opts)\</div><div class='del'>-          .map {|n| Entry_.new(prefix(), join(rel(), n.untaint)) }</div><div class='add'>+      opts[:encoding] = fu_windows? ? ::Encoding::UTF_8 : path.encoding</div><div class='add'>+</div><div class='add'>+      files = Dir.children(path, **opts)</div><div class='add'>+</div><div class='add'>+      untaint = RUBY_VERSION &lt; '2.7'</div><div class='add'>+      files.map {|n| Entry_.new(prefix(), join(rel(), untaint ? n.untaint : n)) }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def stat</div><div class='hunk'>@@ -1320,6 +2221,7 @@ module FileUtils</div><div class='ctx'>       else</div><div class='ctx'>         File.chmod mode, path()</div><div class='ctx'>       end</div><div class='add'>+    rescue Errno::EOPNOTSUPP</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def chown(uid, gid)</div><div class='hunk'>@@ -1362,18 +2264,21 @@ module FileUtils</div><div class='ctx'>         end</div><div class='ctx'>       when symlink?</div><div class='ctx'>         File.symlink File.readlink(path()), dest</div><div class='del'>-      when chardev?</div><div class='del'>-        raise "cannot handle device file" unless File.respond_to?(:mknod)</div><div class='del'>-        mknod dest, ?c, 0666, lstat().rdev</div><div class='del'>-      when blockdev?</div><div class='del'>-        raise "cannot handle device file" unless File.respond_to?(:mknod)</div><div class='del'>-        mknod dest, ?b, 0666, lstat().rdev</div><div class='add'>+      when chardev?, blockdev?</div><div class='add'>+        raise "cannot handle device file"</div><div class='ctx'>       when socket?</div><div class='del'>-        raise "cannot handle socket" unless File.respond_to?(:mknod)</div><div class='del'>-        mknod dest, nil, lstat().mode, 0</div><div class='add'>+        begin</div><div class='add'>+          require 'socket'</div><div class='add'>+        rescue LoadError</div><div class='add'>+          raise "cannot handle socket"</div><div class='add'>+        else</div><div class='add'>+          raise "cannot handle socket" unless defined?(UNIXServer)</div><div class='add'>+        end</div><div class='add'>+        UNIXServer.new(dest).close</div><div class='add'>+        File.chmod lstat().mode, dest</div><div class='ctx'>       when pipe?</div><div class='ctx'>         raise "cannot handle FIFO" unless File.respond_to?(:mkfifo)</div><div class='del'>-        mkfifo dest, 0666</div><div class='add'>+        File.mkfifo dest, lstat().mode</div><div class='ctx'>       when door?</div><div class='ctx'>         raise "cannot handle door: #{path()}"</div><div class='ctx'>       else</div><div class='hunk'>@@ -1411,7 +2316,7 @@ module FileUtils</div><div class='ctx'>       if st.symlink?</div><div class='ctx'>         begin</div><div class='ctx'>           File.lchmod mode, path</div><div class='del'>-        rescue NotImplementedError</div><div class='add'>+        rescue NotImplementedError, Errno::EOPNOTSUPP</div><div class='ctx'>         end</div><div class='ctx'>       else</div><div class='ctx'>         File.chmod mode, path</div><div class='hunk'>@@ -1470,13 +2375,21 @@ module FileUtils</div><div class='ctx'> </div><div class='ctx'>     def postorder_traverse</div><div class='ctx'>       if directory?</div><div class='del'>-        entries().each do |ent|</div><div class='add'>+        begin</div><div class='add'>+          children = entries()</div><div class='add'>+        rescue Errno::EACCES</div><div class='add'>+          # Failed to get the list of children.</div><div class='add'>+          # Assuming there is no children, try to process the parent directory.</div><div class='add'>+          yield self</div><div class='add'>+          return</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        children.each do |ent|</div><div class='ctx'>           ent.postorder_traverse do |e|</div><div class='ctx'>             yield e</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='del'>-    ensure</div><div class='ctx'>       yield self</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -1492,14 +2405,14 @@ module FileUtils</div><div class='ctx'> </div><div class='ctx'>     private</div><div class='ctx'> </div><div class='del'>-    $fileutils_rb_have_lchmod = nil</div><div class='add'>+    @@fileutils_rb_have_lchmod = nil</div><div class='ctx'> </div><div class='ctx'>     def have_lchmod?</div><div class='ctx'>       # This is not MT-safe, but it does not matter.</div><div class='del'>-      if $fileutils_rb_have_lchmod == nil</div><div class='del'>-        $fileutils_rb_have_lchmod = check_have_lchmod?</div><div class='add'>+      if @@fileutils_rb_have_lchmod == nil</div><div class='add'>+        @@fileutils_rb_have_lchmod = check_have_lchmod?</div><div class='ctx'>       end</div><div class='del'>-      $fileutils_rb_have_lchmod</div><div class='add'>+      @@fileutils_rb_have_lchmod</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def check_have_lchmod?</div><div class='hunk'>@@ -1510,14 +2423,14 @@ module FileUtils</div><div class='ctx'>       return false</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    $fileutils_rb_have_lchown = nil</div><div class='add'>+    @@fileutils_rb_have_lchown = nil</div><div class='ctx'> </div><div class='ctx'>     def have_lchown?</div><div class='ctx'>       # This is not MT-safe, but it does not matter.</div><div class='del'>-      if $fileutils_rb_have_lchown == nil</div><div class='del'>-        $fileutils_rb_have_lchown = check_have_lchown?</div><div class='add'>+      if @@fileutils_rb_have_lchown == nil</div><div class='add'>+        @@fileutils_rb_have_lchown = check_have_lchown?</div><div class='ctx'>       end</div><div class='del'>-      $fileutils_rb_have_lchown</div><div class='add'>+      @@fileutils_rb_have_lchown</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def check_have_lchown?</div><div class='hunk'>@@ -1531,7 +2444,15 @@ module FileUtils</div><div class='ctx'>     def join(dir, base)</div><div class='ctx'>       return File.path(dir) if not base or base == '.'</div><div class='ctx'>       return File.path(base) if not dir or dir == '.'</div><div class='del'>-      File.join(dir, base)</div><div class='add'>+      begin</div><div class='add'>+        File.join(dir, base)</div><div class='add'>+      rescue EncodingError</div><div class='add'>+        if fu_windows?</div><div class='add'>+          File.join(dir.encode(::Encoding::UTF_8), base.encode(::Encoding::UTF_8))</div><div class='add'>+        else</div><div class='add'>+          raise</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     if File::ALT_SEPARATOR</div><div class='hunk'>@@ -1539,10 +2460,13 @@ module FileUtils</div><div class='ctx'>     else</div><div class='ctx'>       DIRECTORY_TERM = "(?=/|\\z)"</div><div class='ctx'>     end</div><div class='del'>-    SYSCASE = File::FNM_SYSCASE.nonzero? ? "-i" : ""</div><div class='ctx'> </div><div class='ctx'>     def descendant_directory?(descendant, ascendant)</div><div class='del'>-      /\A(?#{SYSCASE}:#{Regexp.quote(ascendant)})#{DIRECTORY_TERM}/ =~ File.dirname(descendant)</div><div class='add'>+      if File::FNM_SYSCASE.nonzero?</div><div class='add'>+        File.expand_path(File.dirname(descendant)).casecmp(File.expand_path(ascendant)) == 0</div><div class='add'>+      else</div><div class='add'>+        File.expand_path(File.dirname(descendant)) == File.expand_path(ascendant)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>   end   # class Entry_</div><div class='ctx'> </div><div class='hunk'>@@ -1559,15 +2483,15 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :fu_each_src_dest</div><div class='ctx'> </div><div class='del'>-  def fu_each_src_dest0(src, dest)   #:nodoc:</div><div class='add'>+  def fu_each_src_dest0(src, dest, target_directory = true)   #:nodoc:</div><div class='ctx'>     if tmp = Array.try_convert(src)</div><div class='ctx'>       tmp.each do |s|</div><div class='ctx'>         s = File.path(s)</div><div class='del'>-        yield s, File.join(dest, File.basename(s))</div><div class='add'>+        yield s, (target_directory ? File.join(dest, File.basename(s)) : dest)</div><div class='ctx'>       end</div><div class='ctx'>     else</div><div class='ctx'>       src = File.path(src)</div><div class='del'>-      if File.directory?(dest)</div><div class='add'>+      if target_directory and File.directory?(dest)</div><div class='ctx'>         yield src, File.join(dest, File.basename(src))</div><div class='ctx'>       else</div><div class='ctx'>         yield src, File.path(dest)</div><div class='hunk'>@@ -1581,16 +2505,66 @@ module FileUtils</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :fu_same?</div><div class='ctx'> </div><div class='del'>-  @fileutils_output = $stderr</div><div class='del'>-  @fileutils_label  = ''</div><div class='del'>-</div><div class='ctx'>   def fu_output_message(msg)   #:nodoc:</div><div class='del'>-    @fileutils_output ||= $stderr</div><div class='del'>-    @fileutils_label  ||= ''</div><div class='del'>-    @fileutils_output.puts @fileutils_label + msg</div><div class='add'>+    output = @fileutils_output if defined?(@fileutils_output)</div><div class='add'>+    output ||= $stdout</div><div class='add'>+    if defined?(@fileutils_label)</div><div class='add'>+      msg = @fileutils_label + msg</div><div class='add'>+    end</div><div class='add'>+    output.puts msg</div><div class='ctx'>   end</div><div class='ctx'>   private_module_function :fu_output_message</div><div class='ctx'> </div><div class='add'>+  def fu_split_path(path)</div><div class='add'>+    path = File.path(path)</div><div class='add'>+    list = []</div><div class='add'>+    until (parent, base = File.split(path); parent == path or parent == ".")</div><div class='add'>+      list &lt;&lt; base</div><div class='add'>+      path = parent</div><div class='add'>+    end</div><div class='add'>+    list &lt;&lt; path</div><div class='add'>+    list.reverse!</div><div class='add'>+  end</div><div class='add'>+  private_module_function :fu_split_path</div><div class='add'>+</div><div class='add'>+  def fu_relative_components_from(target, base) #:nodoc:</div><div class='add'>+    i = 0</div><div class='add'>+    while target[i]&amp;.== base[i]</div><div class='add'>+      i += 1</div><div class='add'>+    end</div><div class='add'>+    Array.new(base.size-i, '..').concat(target[i..-1])</div><div class='add'>+  end</div><div class='add'>+  private_module_function :fu_relative_components_from</div><div class='add'>+</div><div class='add'>+  def fu_clean_components(*comp)</div><div class='add'>+    comp.shift while comp.first == "."</div><div class='add'>+    return comp if comp.empty?</div><div class='add'>+    clean = [comp.shift]</div><div class='add'>+    path = File.join(*clean, "") # ending with File::SEPARATOR</div><div class='add'>+    while c = comp.shift</div><div class='add'>+      if c == ".." and clean.last != ".." and !(fu_have_symlink? &amp;&amp; File.symlink?(path))</div><div class='add'>+        clean.pop</div><div class='add'>+        path.chomp!(%r((?&lt;=\A|/)[^/]+/\z), "")</div><div class='add'>+      else</div><div class='add'>+        clean &lt;&lt; c</div><div class='add'>+        path &lt;&lt; c &lt;&lt; "/"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    clean</div><div class='add'>+  end</div><div class='add'>+  private_module_function :fu_clean_components</div><div class='add'>+</div><div class='add'>+  if fu_windows?</div><div class='add'>+    def fu_starting_path?(path)</div><div class='add'>+      path&amp;.start_with?(%r(\w:|/))</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+    def fu_starting_path?(path)</div><div class='add'>+      path&amp;.start_with?("/")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  private_module_function :fu_starting_path?</div><div class='add'>+</div><div class='ctx'>   # This hash table holds command options.</div><div class='ctx'>   OPT_TABLE = {}    #:nodoc: internal use only</div><div class='ctx'>   (private_instance_methods &amp; methods(false)).inject(OPT_TABLE) {|tbl, name|</div><div class='hunk'>@@ -1598,62 +2572,66 @@ module FileUtils</div><div class='ctx'>     tbl</div><div class='ctx'>   }</div><div class='ctx'> </div><div class='add'>+  public</div><div class='add'>+</div><div class='add'>+  # Returns an array of the string names of \FileUtils methods</div><div class='add'>+  # that accept one or more keyword arguments:</div><div class='ctx'>   #</div><div class='del'>-  # Returns an Array of method names which have any options.</div><div class='del'>-  #</div><div class='del'>-  #   p FileUtils.commands  #=&gt; ["chmod", "cp", "cp_r", "install", ...]</div><div class='add'>+  #   FileUtils.commands.sort.take(3) # =&gt; ["cd", "chdir", "chmod"]</div><div class='ctx'>   #</div><div class='ctx'>   def self.commands</div><div class='ctx'>     OPT_TABLE.keys</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Returns an array of the string keyword names:</div><div class='ctx'>   #</div><div class='del'>-  # Returns an Array of option names.</div><div class='del'>-  #</div><div class='del'>-  #   p FileUtils.options  #=&gt; ["noop", "force", "verbose", "preserve", "mode"]</div><div class='add'>+  #   FileUtils.options.take(3) # =&gt; ["noop", "verbose", "force"]</div><div class='ctx'>   #</div><div class='ctx'>   def self.options</div><div class='ctx'>     OPT_TABLE.values.flatten.uniq.map {|sym| sym.to_s }</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Returns +true+ if method +mid+ accepts the given option +opt+, +false+ otherwise;</div><div class='add'>+  # the arguments may be strings or symbols:</div><div class='ctx'>   #</div><div class='del'>-  # Returns true if the method +mid+ have an option +opt+.</div><div class='del'>-  #</div><div class='del'>-  #   p FileUtils.have_option?(:cp, :noop)     #=&gt; true</div><div class='del'>-  #   p FileUtils.have_option?(:rm, :force)    #=&gt; true</div><div class='del'>-  #   p FileUtils.have_option?(:rm, :preserve) #=&gt; false</div><div class='add'>+  #   FileUtils.have_option?(:chmod, :noop) # =&gt; true</div><div class='add'>+  #   FileUtils.have_option?('chmod', 'secure') # =&gt; false</div><div class='ctx'>   #</div><div class='ctx'>   def self.have_option?(mid, opt)</div><div class='ctx'>     li = OPT_TABLE[mid.to_s] or raise ArgumentError, "no such method: #{mid}"</div><div class='ctx'>     li.include?(opt)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Returns an array of the string keyword name for method +mid+;</div><div class='add'>+  # the argument may be a string or a symbol:</div><div class='ctx'>   #</div><div class='del'>-  # Returns an Array of option names of the method +mid+.</div><div class='del'>-  #</div><div class='del'>-  #   p FileUtils.options_of(:rm)  #=&gt; ["noop", "verbose", "force"]</div><div class='add'>+  #   FileUtils.options_of(:rm) # =&gt; ["force", "noop", "verbose"]</div><div class='add'>+  #   FileUtils.options_of('mv') # =&gt; ["force", "noop", "verbose", "secure"]</div><div class='ctx'>   #</div><div class='ctx'>   def self.options_of(mid)</div><div class='ctx'>     OPT_TABLE[mid.to_s].map {|sym| sym.to_s }</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Returns an array of the string method names of the methods</div><div class='add'>+  # that accept the given keyword option +opt+;</div><div class='add'>+  # the argument must be a symbol:</div><div class='ctx'>   #</div><div class='del'>-  # Returns an Array of method names which have the option +opt+.</div><div class='del'>-  #</div><div class='del'>-  #   p FileUtils.collect_method(:preserve) #=&gt; ["cp", "cp_r", "copy", "install"]</div><div class='add'>+  #   FileUtils.collect_method(:preserve) # =&gt; ["cp", "copy", "cp_r", "install"]</div><div class='ctx'>   #</div><div class='ctx'>   def self.collect_method(opt)</div><div class='ctx'>     OPT_TABLE.keys.select {|m| OPT_TABLE[m].include?(opt) }</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  LOW_METHODS = singleton_methods(false) - collect_method(:noop).map(&amp;:intern)</div><div class='del'>-  module LowMethods</div><div class='add'>+  private</div><div class='add'>+</div><div class='add'>+  LOW_METHODS = singleton_methods(false) - collect_method(:noop).map(&amp;:intern) # :nodoc:</div><div class='add'>+  module LowMethods # :nodoc: internal use only</div><div class='ctx'>     private</div><div class='ctx'>     def _do_nothing(*)end</div><div class='ctx'>     ::FileUtils::LOW_METHODS.map {|name| alias_method name, :_do_nothing}</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  METHODS = singleton_methods() - [:private_module_function,</div><div class='add'>+  METHODS = singleton_methods() - [:private_module_function,                  # :nodoc:</div><div class='ctx'>       :commands, :options, :have_option?, :options_of, :collect_method]</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='hunk'>@@ -1663,8 +2641,6 @@ module FileUtils</div><div class='ctx'>   #</div><div class='ctx'>   module Verbose</div><div class='ctx'>     include FileUtils</div><div class='del'>-    @fileutils_output  = $stderr</div><div class='del'>-    @fileutils_label   = ''</div><div class='ctx'>     names = ::FileUtils.collect_method(:verbose)</div><div class='ctx'>     names.each do |name|</div><div class='ctx'>       module_eval(&lt;&lt;-EOS, __FILE__, __LINE__ + 1)</div><div class='hunk'>@@ -1688,8 +2664,6 @@ module FileUtils</div><div class='ctx'>   module NoWrite</div><div class='ctx'>     include FileUtils</div><div class='ctx'>     include LowMethods</div><div class='del'>-    @fileutils_output  = $stderr</div><div class='del'>-    @fileutils_label   = ''</div><div class='ctx'>     names = ::FileUtils.collect_method(:noop)</div><div class='ctx'>     names.each do |name|</div><div class='ctx'>       module_eval(&lt;&lt;-EOS, __FILE__, __LINE__ + 1)</div><div class='hunk'>@@ -1714,8 +2688,6 @@ module FileUtils</div><div class='ctx'>   module DryRun</div><div class='ctx'>     include FileUtils</div><div class='ctx'>     include LowMethods</div><div class='del'>-    @fileutils_output  = $stderr</div><div class='del'>-    @fileutils_label   = ''</div><div class='ctx'>     names = ::FileUtils.collect_method(:noop)</div><div class='ctx'>     names.each do |name|</div><div class='ctx'>       module_eval(&lt;&lt;-EOS, __FILE__, __LINE__ + 1)</div><div class='head'>diff --git a/lib/fileutils/fileutils.gemspec b/lib/fileutils/fileutils.gemspec<br/>deleted file mode 100644<br/>index 7212883d2b..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/fileutils/fileutils.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/fileutils/fileutils.gemspec</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,32 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-begin</div><div class='del'>-  require_relative "lib/fileutils/version"</div><div class='del'>-rescue LoadError</div><div class='del'>-  # for Ruby core repository</div><div class='del'>-  require_relative "version"</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-Gem::Specification.new do |s|</div><div class='del'>-  s.name = "fileutils"</div><div class='del'>-  s.version = FileUtils::VERSION</div><div class='del'>-  s.summary = "Several file utility methods for copying, moving, removing, etc."</div><div class='del'>-  s.description = "Several file utility methods for copying, moving, removing, etc."</div><div class='del'>-</div><div class='del'>-  s.require_path = %w{lib}</div><div class='del'>-  s.files = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "fileutils.gemspec", "lib/fileutils.rb", "lib/fileutils/version.rb"]</div><div class='del'>-  s.required_ruby_version = "&gt;= 2.3.0"</div><div class='del'>-</div><div class='del'>-  s.authors = ["Minero Aoki"]</div><div class='del'>-  s.email = [nil]</div><div class='del'>-  s.homepage = "https://github.com/ruby/fileutils"</div><div class='del'>-  s.license = "BSD-2-Clause"</div><div class='del'>-</div><div class='del'>-  if s.respond_to?(:metadata=)</div><div class='del'>-    s.metadata = {</div><div class='del'>-      "source_code_uri" =&gt; "https://github.com/ruby/fileutils"</div><div class='del'>-    }</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  s.add_development_dependency 'rake'</div><div class='del'>-end</div><div class='head'>diff --git a/lib/fileutils/version.rb b/lib/fileutils/version.rb<br/>deleted file mode 100644<br/>index e82734dfec..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/fileutils/version.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/fileutils/version.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,5 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-module FileUtils</div><div class='del'>-  VERSION = "1.1.0"</div><div class='del'>-end</div><div class='head'>diff --git a/lib/find.gemspec b/lib/find.gemspec<br/>new file mode 100644<br/>index 0000000000..3f0aadcdae<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/find.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/find.gemspec</a></div><div class='hunk'>@@ -0,0 +1,24 @@</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "find"</div><div class='add'>+  spec.version       = "0.1.1"</div><div class='add'>+  spec.authors       = ['Kazuki Tsujimoto']</div><div class='add'>+  spec.email         = ['kazuki@callcc.net']</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{This module supports top-down traversal of a set of file paths.}</div><div class='add'>+  spec.description   = %q{This module supports top-down traversal of a set of file paths.}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/find"</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 2.3.0")</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  # Specify which files should be added to the gem when it is released.</div><div class='add'>+  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.bindir        = "exe"</div><div class='add'>+  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/lib/find.rb b/lib/find.rb<br/>index f97cc1b836..9bee99c66d 100644<br/>--- a/<a href='/ruby.git/tree/lib/find.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/find.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/find.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/find.rb</a></div><div class='hunk'>@@ -15,7 +15,7 @@</div><div class='ctx'> #</div><div class='ctx'> #   Find.find(ENV["HOME"]) do |path|</div><div class='ctx'> #     if FileTest.directory?(path)</div><div class='del'>-#       if File.basename(path)[0] == ?.</div><div class='add'>+#       if File.basename(path).start_with?('.')</div><div class='ctx'> #         Find.prune       # Don't look any further into this directory.</div><div class='ctx'> #       else</div><div class='ctx'> #         next</div><div class='hunk'>@@ -46,24 +46,24 @@ module Find</div><div class='ctx'>       ps = [path]</div><div class='ctx'>       while file = ps.shift</div><div class='ctx'>         catch(:prune) do</div><div class='del'>-          yield file.dup.taint</div><div class='add'>+          yield file.dup</div><div class='ctx'>           begin</div><div class='ctx'>             s = File.lstat(file)</div><div class='del'>-          rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR, Errno::ELOOP, Errno::ENAMETOOLONG</div><div class='add'>+          rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR, Errno::ELOOP, Errno::ENAMETOOLONG, Errno::EINVAL</div><div class='ctx'>             raise unless ignore_error</div><div class='ctx'>             next</div><div class='ctx'>           end</div><div class='ctx'>           if s.directory? then</div><div class='ctx'>             begin</div><div class='ctx'>               fs = Dir.children(file, encoding: enc)</div><div class='del'>-            rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR, Errno::ELOOP, Errno::ENAMETOOLONG</div><div class='add'>+            rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR, Errno::ELOOP, Errno::ENAMETOOLONG, Errno::EINVAL</div><div class='ctx'>               raise unless ignore_error</div><div class='ctx'>               next</div><div class='ctx'>             end</div><div class='ctx'>             fs.sort!</div><div class='ctx'>             fs.reverse_each {|f|</div><div class='ctx'>               f = File.join(file, f)</div><div class='del'>-              ps.unshift f.untaint</div><div class='add'>+              ps.unshift f</div><div class='ctx'>             }</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='head'>diff --git a/lib/forwardable.rb b/lib/forwardable.rb<br/>index bcd462a97c..71b4e6adad 100644<br/>--- a/<a href='/ruby.git/tree/lib/forwardable.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/forwardable.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/forwardable.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/forwardable.rb</a></div><div class='hunk'>@@ -57,10 +57,9 @@</div><div class='ctx'> #</div><div class='ctx'> # == Another example</div><div class='ctx'> #</div><div class='del'>-# We want to rely on what has come before obviously, but with delegation we can</div><div class='del'>-# take just the methods we need and even rename them as appropriate.  In many</div><div class='del'>-# cases this is preferable to inheritance, which gives us the entire old</div><div class='del'>-# interface, even if much of it isn't needed.</div><div class='add'>+# You could use Forwardable as an alternative to inheritance, when you don't want</div><div class='add'>+# to inherit all methods from the superclass. For instance, here is how you might</div><div class='add'>+# add a range of +Array+ instance methods to a new class +Queue+:</div><div class='ctx'> #</div><div class='ctx'> #   class Queue</div><div class='ctx'> #     extend Forwardable</div><div class='hunk'>@@ -77,7 +76,7 @@</div><div class='ctx'> #     def_delegators :@q, :clear, :first, :push, :shift, :size</div><div class='ctx'> #   end</div><div class='ctx'> #</div><div class='del'>-#   q = Queue.new</div><div class='add'>+#   q = Thread::Queue.new</div><div class='ctx'> #   q.enq 1, 2, 3, 4, 5</div><div class='ctx'> #   q.push 6</div><div class='ctx'> #</div><div class='hunk'>@@ -113,8 +112,10 @@ module Forwardable</div><div class='ctx'>   require 'forwardable/impl'</div><div class='ctx'> </div><div class='ctx'>   # Version of +forwardable.rb+</div><div class='del'>-  VERSION = "1.2.0"</div><div class='add'>+  VERSION = "1.3.3"</div><div class='add'>+  VERSION.freeze</div><div class='ctx'>   FORWARDABLE_VERSION = VERSION</div><div class='add'>+  FORWARDABLE_VERSION.freeze</div><div class='ctx'> </div><div class='ctx'>   @debug = nil</div><div class='ctx'>   class &lt;&lt; self</div><div class='hunk'>@@ -123,7 +124,8 @@ module Forwardable</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Takes a hash as its argument.  The key is a symbol or an array of</div><div class='del'>-  # symbols.  These symbols correspond to method names.  The value is</div><div class='add'>+  # symbols.  These symbols correspond to method names, instance variable</div><div class='add'>+  # names, or constant names (see def_delegator).  The value is</div><div class='ctx'>   # the accessor to which the methods will be delegated.</div><div class='ctx'>   #</div><div class='ctx'>   # :call-seq:</div><div class='hunk'>@@ -152,18 +154,21 @@ module Forwardable</div><div class='ctx'>   #   def_delegator :@records, :map</div><div class='ctx'>   #</div><div class='ctx'>   def def_instance_delegators(accessor, *methods)</div><div class='del'>-    methods.delete("__send__")</div><div class='del'>-    methods.delete("__id__")</div><div class='del'>-    for method in methods</div><div class='add'>+    methods.each do |method|</div><div class='add'>+      next if /\A__(?:send|id)__\z/ =~ method</div><div class='ctx'>       def_instance_delegator(accessor, method)</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Define +method+ as delegator instance method with an optional</div><div class='ctx'>   # alias name +ali+. Method calls to +ali+ will be delegated to</div><div class='del'>-  # +accessor.method+.</div><div class='add'>+  # +accessor.method+.  +accessor+ should be a method name, instance</div><div class='add'>+  # variable name, or constant name.  Use the full path to the</div><div class='add'>+  # constant if providing the constant name.</div><div class='add'>+  # Returns the name of the method defined.</div><div class='ctx'>   #</div><div class='ctx'>   #   class MyQueue</div><div class='add'>+  #     CONST = 1</div><div class='ctx'>   #     extend Forwardable</div><div class='ctx'>   #     attr_reader :queue</div><div class='ctx'>   #     def initialize</div><div class='hunk'>@@ -171,18 +176,23 @@ module Forwardable</div><div class='ctx'>   #     end</div><div class='ctx'>   #</div><div class='ctx'>   #     def_delegator :@queue, :push, :mypush</div><div class='add'>+  #     def_delegator 'MyQueue::CONST', :to_i</div><div class='ctx'>   #   end</div><div class='ctx'>   #</div><div class='ctx'>   #   q = MyQueue.new</div><div class='ctx'>   #   q.mypush 42</div><div class='ctx'>   #   q.queue    #=&gt; [42]</div><div class='ctx'>   #   q.push 23  #=&gt; NoMethodError</div><div class='add'>+  #   q.to_i     #=&gt; 1</div><div class='ctx'>   #</div><div class='ctx'>   def def_instance_delegator(accessor, method, ali = method)</div><div class='ctx'>     gen = Forwardable._delegator_method(self, accessor, method, ali)</div><div class='ctx'> </div><div class='ctx'>     # If it's not a class or module, it's an instance</div><div class='del'>-    (Module === self ? self : singleton_class).module_eval(&amp;gen)</div><div class='add'>+    mod = Module === self ? self : singleton_class</div><div class='add'>+    ret = mod.module_eval(&amp;gen)</div><div class='add'>+    mod.__send__(:ruby2_keywords, ali) if RUBY_VERSION &gt;= '2.7'</div><div class='add'>+    ret</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   alias delegate instance_delegate</div><div class='hunk'>@@ -284,9 +294,8 @@ module SingleForwardable</div><div class='ctx'>   #   def_delegator :@records, :map</div><div class='ctx'>   #</div><div class='ctx'>   def def_single_delegators(accessor, *methods)</div><div class='del'>-    methods.delete("__send__")</div><div class='del'>-    methods.delete("__id__")</div><div class='del'>-    for method in methods</div><div class='add'>+    methods.each do |method|</div><div class='add'>+      next if /\A__(?:send|id)__\z/ =~ method</div><div class='ctx'>       def_single_delegator(accessor, method)</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='hunk'>@@ -297,10 +306,13 @@ module SingleForwardable</div><div class='ctx'>   # Defines a method _method_ which delegates to _accessor_ (i.e. it calls</div><div class='ctx'>   # the method of the same name in _accessor_).  If _new_name_ is</div><div class='ctx'>   # provided, it is used as the name for the delegate method.</div><div class='add'>+  # Returns the name of the method defined.</div><div class='ctx'>   def def_single_delegator(accessor, method, ali = method)</div><div class='ctx'>     gen = Forwardable._delegator_method(self, accessor, method, ali)</div><div class='ctx'> </div><div class='del'>-    instance_eval(&amp;gen)</div><div class='add'>+    ret = instance_eval(&amp;gen)</div><div class='add'>+    singleton_class.__send__(:ruby2_keywords, ali) if RUBY_VERSION &gt;= '2.7'</div><div class='add'>+    ret</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   alias delegate single_delegate</div><div class='head'>diff --git a/lib/forwardable/forwardable.gemspec b/lib/forwardable/forwardable.gemspec<br/>index f90b82269d..9ad59c5f8a 100644<br/>--- a/<a href='/ruby.git/tree/lib/forwardable/forwardable.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/forwardable/forwardable.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/lib/forwardable/forwardable.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/forwardable/forwardable.gemspec</a></div><div class='hunk'>@@ -1,26 +1,26 @@</div><div class='del'>-begin</div><div class='del'>-  require_relative "lib/forwardable"</div><div class='del'>-rescue LoadError</div><div class='del'>-  # for Ruby core repository</div><div class='del'>-  require_relative "../forwardable"</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+name = File.basename(__FILE__, ".gemspec")</div><div class='add'>+version = ["lib", Array.new(name.count("-")+1, "..").join("/")].find do |dir|</div><div class='add'>+  break File.foreach(File.join(__dir__, dir, "#{name.tr('-', '/')}.rb")) do |line|</div><div class='add'>+    /^\s*VERSION\s*=\s*"(.*)"/ =~ line and break $1</div><div class='add'>+  end rescue nil</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> Gem::Specification.new do |spec|</div><div class='del'>-  spec.name          = "forwardable"</div><div class='del'>-  spec.version       = Forwardable::VERSION</div><div class='add'>+  spec.name          = name</div><div class='add'>+  spec.version       = version</div><div class='ctx'>   spec.authors       = ["Keiju ISHITSUKA"]</div><div class='ctx'>   spec.email         = ["keiju@ruby-lang.org"]</div><div class='ctx'> </div><div class='ctx'>   spec.summary       = %q{Provides delegation of specified methods to a designated object.}</div><div class='ctx'>   spec.description   = %q{Provides delegation of specified methods to a designated object.}</div><div class='ctx'>   spec.homepage      = "https://github.com/ruby/forwardable"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> </div><div class='del'>-  spec.files         = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "forwardable.gemspec", "lib/forwardable.rb", "lib/forwardable/impl.rb"]</div><div class='add'>+  spec.required_ruby_version = '&gt;= 2.4.0'</div><div class='add'>+  spec.files         = ["forwardable.gemspec", "lib/forwardable.rb", "lib/forwardable/impl.rb"]</div><div class='ctx'>   spec.bindir        = "exe"</div><div class='del'>-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='add'>+  spec.executables   = []</div><div class='ctx'>   spec.require_paths = ["lib"]</div><div class='del'>-</div><div class='del'>-  spec.add_development_dependency "bundler"</div><div class='del'>-  spec.add_development_dependency "rake"</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/forwardable/impl.rb b/lib/forwardable/impl.rb<br/>index 58a9dfb69c..0322c136db 100644<br/>--- a/<a href='/ruby.git/tree/lib/forwardable/impl.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/forwardable/impl.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/forwardable/impl.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/forwardable/impl.rb</a></div><div class='hunk'>@@ -1,5 +1,6 @@</div><div class='del'>-# :stopdoc:</div><div class='ctx'> module Forwardable</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='ctx'>   def self._valid_method?(method)</div><div class='ctx'>     catch {|tag|</div><div class='ctx'>       eval("BEGIN{throw tag}; ().#{method}", binding, __FILE__, __LINE__)</div><div class='head'>diff --git a/lib/getoptlong.rb b/lib/getoptlong.rb<br/>index ff7674f1cb..5ae0e1497c 100644<br/>--- a/<a href='/ruby.git/tree/lib/getoptlong.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/getoptlong.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/getoptlong.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/getoptlong.rb</a></div><div class='hunk'>@@ -6,85 +6,370 @@</div><div class='ctx'> #</div><div class='ctx'> # You may redistribute and/or modify this library under the same license</div><div class='ctx'> # terms as Ruby.</div><div class='add'>+</div><div class='add'>+# \Class \GetoptLong provides parsing both for options</div><div class='add'>+# and for regular arguments.</div><div class='ctx'> #</div><div class='del'>-# See GetoptLong for documentation.</div><div class='add'>+# Using \GetoptLong, you can define options for your program.</div><div class='add'>+# The program can then capture and respond to whatever options</div><div class='add'>+# are included in the command that executes the program.</div><div class='ctx'> #</div><div class='del'>-# Additional documents and the latest version of `getoptlong.rb' can be</div><div class='del'>-# found at http://www.sra.co.jp/people/m-kasahr/ruby/getoptlong/</div><div class='del'>-</div><div class='del'>-# The GetoptLong class allows you to parse command line options similarly to</div><div class='del'>-# the GNU getopt_long() C library call. Note, however, that GetoptLong is a</div><div class='del'>-# pure Ruby implementation.</div><div class='add'>+# A simple example: file &lt;tt&gt;simple.rb&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   :include: ../sample/getoptlong/simple.rb</div><div class='add'>+#</div><div class='add'>+# If you are somewhat familiar with options,</div><div class='add'>+# you may want to skip to this</div><div class='add'>+# {full example}[#class-GetoptLong-label-Full+Example].</div><div class='add'>+#</div><div class='add'>+# == Options</div><div class='add'>+#</div><div class='add'>+# A \GetoptLong option has:</div><div class='add'>+#</div><div class='add'>+# - A string &lt;em&gt;option name&lt;/em&gt;.</div><div class='add'>+# - Zero or more string &lt;em&gt;aliases&lt;/em&gt; for the name.</div><div class='add'>+# - An &lt;em&gt;option type&lt;/em&gt;.</div><div class='add'>+#</div><div class='add'>+# Options may be defined by calling singleton method GetoptLong.new,</div><div class='add'>+# which returns a new \GetoptLong object.</div><div class='add'>+# Options may then be processed by calling other methods</div><div class='add'>+# such as GetoptLong#each.</div><div class='add'>+#</div><div class='add'>+# === Option Name and Aliases</div><div class='add'>+#</div><div class='add'>+# In the array that defines an option,</div><div class='add'>+# the first element is the string option name.</div><div class='add'>+# Often the name takes the 'long' form, beginning with two hyphens.</div><div class='add'>+#</div><div class='add'>+# The option name may have any number of aliases,</div><div class='add'>+# which are defined by additional string elements.</div><div class='add'>+#</div><div class='add'>+# The name and each alias must be of one of two forms:</div><div class='add'>+#</div><div class='add'>+# - Two hyphens, followed by one or more letters.</div><div class='add'>+# - One hyphen, followed by a single letter.</div><div class='add'>+#</div><div class='add'>+# File &lt;tt&gt;aliases.rb&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   :include: ../sample/getoptlong/aliases.rb</div><div class='add'>+#</div><div class='add'>+# An option may be cited by its name,</div><div class='add'>+# or by any of its aliases;</div><div class='add'>+# the parsed option always reports the name, not an alias:</div><div class='add'>+#</div><div class='add'>+#   $ ruby aliases.rb -a -p --xxx --aaa -x</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   ["--xxx", ""]</div><div class='add'>+#   ["--xxx", ""]</div><div class='add'>+#   ["--xxx", ""]</div><div class='add'>+#   ["--xxx", ""]</div><div class='add'>+#   ["--xxx", ""]</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# An option may also be cited by an abbreviation of its name or any alias,</div><div class='add'>+# as long as that abbreviation is unique among the options.</div><div class='add'>+#</div><div class='add'>+# File &lt;tt&gt;abbrev.rb&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   :include: ../sample/getoptlong/abbrev.rb</div><div class='add'>+#</div><div class='add'>+# Command line:</div><div class='add'>+#</div><div class='add'>+#   $ ruby abbrev.rb --xxx --xx --xyz --xy</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   ["--xxx", ""]</div><div class='add'>+#   ["--xxx", ""]</div><div class='add'>+#   ["--xyz", ""]</div><div class='add'>+#   ["--xyz", ""]</div><div class='add'>+#</div><div class='add'>+# This command line raises GetoptLong::AmbiguousOption:</div><div class='add'>+#</div><div class='add'>+#   $ ruby abbrev.rb --x</div><div class='add'>+#</div><div class='add'>+# === Repetition</div><div class='add'>+#</div><div class='add'>+# An option may be cited more than once:</div><div class='add'>+#</div><div class='add'>+#   $ ruby abbrev.rb --xxx --xyz --xxx --xyz</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   ["--xxx", ""]</div><div class='add'>+#   ["--xyz", ""]</div><div class='add'>+#   ["--xxx", ""]</div><div class='add'>+#   ["--xyz", ""]</div><div class='add'>+#</div><div class='add'>+# === Treating Remaining Options as Arguments</div><div class='add'>+#</div><div class='add'>+# A option-like token that appears</div><div class='add'>+# anywhere after the token &lt;tt&gt;--&lt;/tt&gt; is treated as an ordinary argument,</div><div class='add'>+# and is not processed as an option:</div><div class='add'>+#</div><div class='add'>+#   $ ruby abbrev.rb --xxx --xyz -- --xxx --xyz</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   ["--xxx", ""]</div><div class='add'>+#   ["--xyz", ""]</div><div class='add'>+#</div><div class='add'>+# === Option Types</div><div class='add'>+#</div><div class='add'>+# Each option definition includes an option type,</div><div class='add'>+# which controls whether the option takes an argument.</div><div class='add'>+#</div><div class='add'>+# File &lt;tt&gt;types.rb&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   :include: ../sample/getoptlong/types.rb</div><div class='add'>+#</div><div class='add'>+# Note that an option type has to do with the &lt;em&gt;option argument&lt;/em&gt;</div><div class='add'>+# (whether it is required, optional, or forbidden),</div><div class='add'>+# not with whether the option itself is required.</div><div class='add'>+#</div><div class='add'>+# ==== Option with Required Argument</div><div class='add'>+#</div><div class='add'>+# An option of type &lt;tt&gt;GetoptLong::REQUIRED_ARGUMENT&lt;/tt&gt;</div><div class='add'>+# must be followed by an argument, which is associated with that option:</div><div class='add'>+#</div><div class='add'>+#   $ ruby types.rb --xxx foo</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   ["--xxx", "foo"]</div><div class='add'>+#</div><div class='add'>+# If the option is not last, its argument is whatever follows it</div><div class='add'>+# (even if the argument looks like another option):</div><div class='add'>+#</div><div class='add'>+#   $ ruby types.rb --xxx --yyy</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   ["--xxx", "--yyy"]</div><div class='add'>+#</div><div class='add'>+# If the option is last, an exception is raised:</div><div class='add'>+#</div><div class='add'>+#   $ ruby types.rb</div><div class='add'>+#   # Raises GetoptLong::MissingArgument</div><div class='add'>+#</div><div class='add'>+# ==== Option with Optional Argument</div><div class='add'>+#</div><div class='add'>+# An option of type &lt;tt&gt;GetoptLong::OPTIONAL_ARGUMENT&lt;/tt&gt;</div><div class='add'>+# may be followed by an argument, which if given is associated with that option.</div><div class='add'>+#</div><div class='add'>+# If the option is last, it does not have an argument:</div><div class='add'>+#</div><div class='add'>+#   $ ruby types.rb --yyy</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   ["--yyy", ""]</div><div class='add'>+#</div><div class='add'>+# If the option is followed by another option, it does not have an argument:</div><div class='add'>+#</div><div class='add'>+#   $ ruby types.rb --yyy --zzz</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   ["--yyy", ""]</div><div class='add'>+#   ["--zzz", ""]</div><div class='add'>+#</div><div class='add'>+# Otherwise the option is followed by its argument, which is associated</div><div class='add'>+# with that option:</div><div class='add'>+#</div><div class='add'>+#   $ ruby types.rb --yyy foo</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   ["--yyy", "foo"]</div><div class='add'>+#</div><div class='add'>+# ==== Option with No Argument</div><div class='add'>+#</div><div class='add'>+# An option of type &lt;tt&gt;GetoptLong::NO_ARGUMENT&lt;/tt&gt; takes no argument:</div><div class='add'>+#</div><div class='add'>+#   ruby types.rb --zzz foo</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   ["--zzz", ""]</div><div class='add'>+#</div><div class='add'>+# === ARGV</div><div class='add'>+#</div><div class='add'>+# You can process options either with method #each and a block,</div><div class='add'>+# or with method #get.</div><div class='add'>+#</div><div class='add'>+# During processing, each found option is removed, along with its argument</div><div class='add'>+# if there is one.</div><div class='add'>+# After processing, each remaining element was neither an option</div><div class='add'>+# nor the argument for an option.</div><div class='add'>+#</div><div class='add'>+# File &lt;tt&gt;argv.rb&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   :include: ../sample/getoptlong/argv.rb</div><div class='add'>+#</div><div class='add'>+# Command line:</div><div class='add'>+#</div><div class='add'>+#   $ ruby argv.rb --xxx Foo --yyy Bar Baz --zzz Bat Bam</div><div class='ctx'> #</div><div class='del'>-# GetoptLong allows for POSIX-style options like &lt;tt&gt;--file&lt;/tt&gt; as well</div><div class='del'>-# as single letter options like &lt;tt&gt;-f&lt;/tt&gt;</div><div class='add'>+# Output:</div><div class='ctx'> #</div><div class='del'>-# The empty option &lt;tt&gt;--&lt;/tt&gt; (two minus symbols) is used to end option</div><div class='del'>-# processing. This can be particularly important if options have optional</div><div class='del'>-# arguments.</div><div class='add'>+#   Original ARGV: ["--xxx", "Foo", "--yyy", "Bar", "Baz", "--zzz", "Bat", "Bam"]</div><div class='add'>+#   ["--xxx", "Foo"]</div><div class='add'>+#   ["--yyy", "Bar"]</div><div class='add'>+#   ["--zzz", ""]</div><div class='add'>+#   Remaining ARGV: ["Baz", "Bat", "Bam"]</div><div class='ctx'> #</div><div class='del'>-# Here is a simple example of usage:</div><div class='add'>+# === Ordering</div><div class='ctx'> #</div><div class='del'>-#     require 'getoptlong'</div><div class='add'>+# There are three settings that control the way the options</div><div class='add'>+# are interpreted:</div><div class='ctx'> #</div><div class='del'>-#     opts = GetoptLong.new(</div><div class='del'>-#       [ '--help', '-h', GetoptLong::NO_ARGUMENT ],</div><div class='del'>-#       [ '--repeat', '-n', GetoptLong::REQUIRED_ARGUMENT ],</div><div class='del'>-#       [ '--name', GetoptLong::OPTIONAL_ARGUMENT ]</div><div class='del'>-#     )</div><div class='add'>+# - +PERMUTE+.</div><div class='add'>+# - +REQUIRE_ORDER+.</div><div class='add'>+# - +RETURN_IN_ORDER+.</div><div class='ctx'> #</div><div class='del'>-#     dir = nil</div><div class='del'>-#     name = nil</div><div class='del'>-#     repetitions = 1</div><div class='del'>-#     opts.each do |opt, arg|</div><div class='del'>-#       case opt</div><div class='del'>-#         when '--help'</div><div class='del'>-#           puts &lt;&lt;-EOF</div><div class='del'>-#     hello [OPTION] ... DIR</div><div class='add'>+# The initial setting for a new \GetoptLong object is +REQUIRE_ORDER+</div><div class='add'>+# if environment variable +POSIXLY_CORRECT+ is defined, +PERMUTE+ otherwise.</div><div class='ctx'> #</div><div class='add'>+# ==== PERMUTE Ordering</div><div class='add'>+#</div><div class='add'>+# In the +PERMUTE+ ordering, options and other, non-option,</div><div class='add'>+# arguments may appear in any order and any mixture.</div><div class='add'>+#</div><div class='add'>+# File &lt;tt&gt;permute.rb&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   :include: ../sample/getoptlong/permute.rb</div><div class='add'>+#</div><div class='add'>+# Command line:</div><div class='add'>+#</div><div class='add'>+#   $ ruby permute.rb Foo --zzz Bar --xxx Baz --yyy Bat Bam --xxx Bag Bah</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   Original ARGV: ["Foo", "--zzz", "Bar", "--xxx", "Baz", "--yyy", "Bat", "Bam", "--xxx", "Bag", "Bah"]</div><div class='add'>+#   ["--zzz", ""]</div><div class='add'>+#   ["--xxx", "Baz"]</div><div class='add'>+#   ["--yyy", "Bat"]</div><div class='add'>+#   ["--xxx", "Bag"]</div><div class='add'>+#   Remaining ARGV: ["Foo", "Bar", "Bam", "Bah"]</div><div class='add'>+#</div><div class='add'>+# ==== REQUIRE_ORDER Ordering</div><div class='add'>+#</div><div class='add'>+# In the +REQUIRE_ORDER+ ordering, all options precede all non-options;</div><div class='add'>+# that is, each word after the first non-option word</div><div class='add'>+# is treated as a non-option word (even if it begins with a hyphen).</div><div class='add'>+#</div><div class='add'>+# File &lt;tt&gt;require_order.rb&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   :include: ../sample/getoptlong/require_order.rb</div><div class='add'>+#</div><div class='add'>+# Command line:</div><div class='add'>+#</div><div class='add'>+#   $ ruby require_order.rb --xxx Foo Bar --xxx Baz --yyy Bat -zzz</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   Original ARGV: ["--xxx", "Foo", "Bar", "--xxx", "Baz", "--yyy", "Bat", "-zzz"]</div><div class='add'>+#   ["--xxx", "Foo"]</div><div class='add'>+#   Remaining ARGV: ["Bar", "--xxx", "Baz", "--yyy", "Bat", "-zzz"]</div><div class='add'>+#</div><div class='add'>+# ==== RETURN_IN_ORDER Ordering</div><div class='add'>+#</div><div class='add'>+# In the +RETURN_IN_ORDER+ ordering, every word is treated as an option.</div><div class='add'>+# A word that begins with a hyphen (or two) is treated in the usual way;</div><div class='add'>+# a word +word+ that does not so begin is treated as an option</div><div class='add'>+# whose name is an empty string, and whose value is +word+.</div><div class='add'>+#</div><div class='add'>+# File &lt;tt&gt;return_in_order.rb&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   :include: ../sample/getoptlong/return_in_order.rb</div><div class='add'>+#</div><div class='add'>+# Command line:</div><div class='add'>+#</div><div class='add'>+#   $ ruby return_in_order.rb Foo --xxx Bar Baz --zzz Bat Bam</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   Original ARGV: ["Foo", "--xxx", "Bar", "Baz", "--zzz", "Bat", "Bam"]</div><div class='add'>+#   ["", "Foo"]</div><div class='add'>+#   ["--xxx", "Bar"]</div><div class='add'>+#   ["", "Baz"]</div><div class='add'>+#   ["--zzz", ""]</div><div class='add'>+#   ["", "Bat"]</div><div class='add'>+#   ["", "Bam"]</div><div class='add'>+#   Remaining ARGV: []</div><div class='add'>+#</div><div class='add'>+# === Full Example</div><div class='add'>+#</div><div class='add'>+# File &lt;tt&gt;fibonacci.rb&lt;/tt&gt;:</div><div class='add'>+#</div><div class='add'>+#   :include: ../sample/getoptlong/fibonacci.rb</div><div class='add'>+#</div><div class='add'>+# Command line:</div><div class='add'>+#</div><div class='add'>+#   $ ruby fibonacci.rb</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   Option --number is required.</div><div class='add'>+#   Usage:</div><div class='add'>+#</div><div class='add'>+#     -n n, --number n:</div><div class='add'>+#       Compute Fibonacci number for n.</div><div class='add'>+#     -v [boolean], --verbose [boolean]:</div><div class='add'>+#       Show intermediate results; default is 'false'.</div><div class='add'>+#     -h, --help:</div><div class='add'>+#       Show this help.</div><div class='add'>+#</div><div class='add'>+# Command line:</div><div class='add'>+#</div><div class='add'>+#   $ ruby fibonacci.rb --number</div><div class='add'>+#</div><div class='add'>+# Raises GetoptLong::MissingArgument:</div><div class='add'>+#</div><div class='add'>+#   fibonacci.rb: option `--number' requires an argument</div><div class='add'>+#</div><div class='add'>+# Command line:</div><div class='add'>+#</div><div class='add'>+#   $ ruby fibonacci.rb --number 6</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   8</div><div class='add'>+#</div><div class='add'>+# Command line:</div><div class='add'>+#</div><div class='add'>+#   $ ruby fibonacci.rb --number 6 --verbose</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#   1</div><div class='add'>+#   2</div><div class='add'>+#   3</div><div class='add'>+#   5</div><div class='add'>+#   8</div><div class='add'>+#</div><div class='add'>+# Command line:</div><div class='add'>+#</div><div class='add'>+# $ ruby fibonacci.rb --number 6 --verbose yes</div><div class='add'>+#</div><div class='add'>+# Output:</div><div class='add'>+#</div><div class='add'>+#   --verbose argument must be true or false</div><div class='add'>+#   Usage:</div><div class='add'>+#</div><div class='add'>+#     -n n, --number n:</div><div class='add'>+#       Compute Fibonacci number for n.</div><div class='add'>+#     -v [boolean], --verbose [boolean]:</div><div class='add'>+#       Show intermediate results; default is 'false'.</div><div class='ctx'> #     -h, --help:</div><div class='del'>-#        show help</div><div class='del'>-#</div><div class='del'>-#     --repeat x, -n x:</div><div class='del'>-#        repeat x times</div><div class='del'>-#</div><div class='del'>-#     --name [name]:</div><div class='del'>-#        greet user by name, if name not supplied default is John</div><div class='del'>-#</div><div class='del'>-#     DIR: The directory in which to issue the greeting.</div><div class='del'>-#           EOF</div><div class='del'>-#         when '--repeat'</div><div class='del'>-#           repetitions = arg.to_i</div><div class='del'>-#         when '--name'</div><div class='del'>-#           if arg == ''</div><div class='del'>-#             name = 'John'</div><div class='del'>-#           else</div><div class='del'>-#             name = arg</div><div class='del'>-#           end</div><div class='del'>-#       end</div><div class='del'>-#     end</div><div class='del'>-#</div><div class='del'>-#     if ARGV.length != 1</div><div class='del'>-#       puts "Missing dir argument (try --help)"</div><div class='del'>-#       exit 0</div><div class='del'>-#     end</div><div class='del'>-#</div><div class='del'>-#     dir = ARGV.shift</div><div class='del'>-#</div><div class='del'>-#     Dir.chdir(dir)</div><div class='del'>-#     for i in (1..repetitions)</div><div class='del'>-#       print "Hello"</div><div class='del'>-#       if name</div><div class='del'>-#         print ", #{name}"</div><div class='del'>-#       end</div><div class='del'>-#       puts</div><div class='del'>-#     end</div><div class='del'>-#</div><div class='del'>-# Example command line:</div><div class='del'>-#</div><div class='del'>-#     hello -n 6 --name -- /tmp</div><div class='add'>+#       Show this help.</div><div class='ctx'> #</div><div class='ctx'> class GetoptLong</div><div class='add'>+  # Version.</div><div class='add'>+  VERSION = "0.2.0"</div><div class='add'>+</div><div class='ctx'>   #</div><div class='ctx'>   # Orderings.</div><div class='ctx'>   #</div><div class='hunk'>@@ -111,20 +396,18 @@ class GetoptLong</div><div class='ctx'>   class InvalidOption    &lt; Error; end</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Set up option processing.</div><div class='del'>-  #</div><div class='del'>-  # The options to support are passed to new() as an array of arrays.</div><div class='del'>-  # Each sub-array contains any number of String option names which carry</div><div class='del'>-  # the same meaning, and one of the following flags:</div><div class='add'>+  # Returns a new \GetoptLong object based on the given +arguments+.</div><div class='add'>+  # See {Options}[#class-GetoptLong-label-Options].</div><div class='ctx'>   #</div><div class='del'>-  # GetoptLong::NO_ARGUMENT :: Option does not take an argument.</div><div class='add'>+  # Example:</div><div class='ctx'>   #</div><div class='del'>-  # GetoptLong::REQUIRED_ARGUMENT :: Option always takes an argument.</div><div class='add'>+  #   :include: ../sample/getoptlong/simple.rb</div><div class='ctx'>   #</div><div class='del'>-  # GetoptLong::OPTIONAL_ARGUMENT :: Option may or may not take an argument.</div><div class='add'>+  # Raises an exception if:</div><div class='ctx'>   #</div><div class='del'>-  # The first option name is considered to be the preferred (canonical) name.</div><div class='del'>-  # Other than that, the elements of each sub-array can be in any order.</div><div class='add'>+  # - Any of +arguments+ is not an array.</div><div class='add'>+  # - Any option name or alias is not a string.</div><div class='add'>+  # - Any option type is invalid.</div><div class='ctx'>   #</div><div class='ctx'>   def initialize(*arguments)</div><div class='ctx'>     #</div><div class='hunk'>@@ -186,54 +469,22 @@ class GetoptLong</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Sets the ordering; see {Ordering}[#class-GetoptLong-label-Ordering];</div><div class='add'>+  # returns the new ordering.</div><div class='ctx'>   #</div><div class='del'>-  # Set the handling of the ordering of options and arguments.</div><div class='del'>-  # A RuntimeError is raised if option processing has already started.</div><div class='del'>-  #</div><div class='del'>-  # The supplied value must be a member of GetoptLong::ORDERINGS. It alters</div><div class='del'>-  # the processing of options as follows:</div><div class='del'>-  #</div><div class='del'>-  # &lt;b&gt;REQUIRE_ORDER&lt;/b&gt; :</div><div class='del'>-  #</div><div class='del'>-  # Options are required to occur before non-options.</div><div class='del'>-  #</div><div class='del'>-  # Processing of options ends as soon as a word is encountered that has not</div><div class='del'>-  # been preceded by an appropriate option flag.</div><div class='del'>-  #</div><div class='del'>-  # For example, if -a and -b are options which do not take arguments,</div><div class='del'>-  # parsing command line arguments of '-a one -b two' would result in</div><div class='del'>-  # 'one', '-b', 'two' being left in ARGV, and only ('-a', '') being</div><div class='del'>-  # processed as an option/arg pair.</div><div class='del'>-  #</div><div class='del'>-  # This is the default ordering, if the environment variable</div><div class='del'>-  # POSIXLY_CORRECT is set. (This is for compatibility with GNU getopt_long.)</div><div class='del'>-  #</div><div class='del'>-  # &lt;b&gt;PERMUTE&lt;/b&gt; :</div><div class='del'>-  #</div><div class='del'>-  # Options can occur anywhere in the command line parsed. This is the</div><div class='del'>-  # default behavior.</div><div class='del'>-  #</div><div class='del'>-  # Every sequence of words which can be interpreted as an option (with or</div><div class='del'>-  # without argument) is treated as an option; non-option words are skipped.</div><div class='del'>-  #</div><div class='del'>-  # For example, if -a does not require an argument and -b optionally takes</div><div class='del'>-  # an argument, parsing '-a one -b two three' would result in ('-a','') and</div><div class='del'>-  # ('-b', 'two') being processed as option/arg pairs, and 'one','three'</div><div class='del'>-  # being left in ARGV.</div><div class='add'>+  # If the given +ordering+ is +PERMUTE+ and environment variable</div><div class='add'>+  # +POSIXLY_CORRECT+ is defined, sets the ordering to +REQUIRE_ORDER+;</div><div class='add'>+  # otherwise sets the ordering to +ordering+:</div><div class='ctx'>   #</div><div class='del'>-  # If the ordering is set to PERMUTE but the environment variable</div><div class='del'>-  # POSIXLY_CORRECT is set, REQUIRE_ORDER is used instead. This is for</div><div class='del'>-  # compatibility with GNU getopt_long.</div><div class='add'>+  #   options = GetoptLong.new</div><div class='add'>+  #   options.ordering == GetoptLong::PERMUTE # =&gt; true</div><div class='add'>+  #   options.ordering = GetoptLong::RETURN_IN_ORDER</div><div class='add'>+  #   options.ordering == GetoptLong::RETURN_IN_ORDER # =&gt; true</div><div class='add'>+  #   ENV['POSIXLY_CORRECT'] = 'true'</div><div class='add'>+  #   options.ordering = GetoptLong::PERMUTE</div><div class='add'>+  #   options.ordering == GetoptLong::REQUIRE_ORDER # =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  # &lt;b&gt;RETURN_IN_ORDER&lt;/b&gt; :</div><div class='del'>-  #</div><div class='del'>-  # All words on the command line are processed as options. Words not</div><div class='del'>-  # preceded by a short or long option flag are passed as arguments</div><div class='del'>-  # with an option of '' (empty string).</div><div class='del'>-  #</div><div class='del'>-  # For example, if -a requires an argument but -b does not, a command line</div><div class='del'>-  # of '-a one -b two three' would result in option/arg pairs of ('-a', 'one')</div><div class='del'>-  # ('-b', ''), ('', 'two'), ('', 'three') being processed.</div><div class='add'>+  # Raises an exception if +ordering+ is invalid.</div><div class='ctx'>   #</div><div class='ctx'>   def ordering=(ordering)</div><div class='ctx'>     #</div><div class='hunk'>@@ -259,14 +510,16 @@ class GetoptLong</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Return ordering.</div><div class='add'>+  # Returns the ordering setting.</div><div class='ctx'>   #</div><div class='ctx'>   attr_reader :ordering</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Set options. Takes the same argument as GetoptLong.new.</div><div class='add'>+  # Replaces existing options with those given by +arguments+,</div><div class='add'>+  # which have the same form as the arguments to ::new;</div><div class='add'>+  # returns +self+.</div><div class='ctx'>   #</div><div class='del'>-  # Raises a RuntimeError if option processing has already started.</div><div class='add'>+  # Raises an exception if option processing has begun.</div><div class='ctx'>   #</div><div class='ctx'>   def set_options(*arguments)</div><div class='ctx'>     #</div><div class='hunk'>@@ -338,22 +591,23 @@ class GetoptLong</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Set/Unset `quiet' mode.</div><div class='add'>+  # Sets quiet mode and returns the given argument:</div><div class='add'>+  #</div><div class='add'>+  # - When +false+ or +nil+, error messages are written to &lt;tt&gt;$stdout&lt;/tt&gt;.</div><div class='add'>+  # - Otherwise, error messages are not written.</div><div class='ctx'>   #</div><div class='ctx'>   attr_writer :quiet</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Return the flag of `quiet' mode.</div><div class='add'>+  # Returns the quiet mode setting.</div><div class='ctx'>   #</div><div class='ctx'>   attr_reader :quiet</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # `quiet?' is an alias of `quiet'.</div><div class='del'>-  #</div><div class='ctx'>   alias quiet? quiet</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Explicitly terminate option processing.</div><div class='add'>+  # Terminate option processing;</div><div class='add'>+  # returns +nil+ if processing has already terminated;</div><div class='add'>+  # otherwise returns +self+.</div><div class='ctx'>   #</div><div class='ctx'>   def terminate</div><div class='ctx'>     return nil if @status == STATUS_TERMINATED</div><div class='hunk'>@@ -373,14 +627,14 @@ class GetoptLong</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Returns true if option processing has terminated, false otherwise.</div><div class='add'>+  # Returns +true+ if option processing has terminated, +false+ otherwise.</div><div class='ctx'>   #</div><div class='ctx'>   def terminated?</div><div class='ctx'>     return @status == STATUS_TERMINATED</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Set an error (a protected method).</div><div class='add'>+  # \Set an error (a protected method).</div><div class='ctx'>   #</div><div class='ctx'>   def set_error(type, message)</div><div class='ctx'>     $stderr.print("#{$0}: #{message}\n") if !@quiet</div><div class='hunk'>@@ -397,32 +651,25 @@ class GetoptLong</div><div class='ctx'>   protected :set_error</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Examine whether an option processing is failed.</div><div class='add'>+  # Returns whether option processing has failed.</div><div class='ctx'>   #</div><div class='ctx'>   attr_reader :error</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # `error?' is an alias of `error'.</div><div class='del'>-  #</div><div class='ctx'>   alias error? error</div><div class='ctx'> </div><div class='ctx'>   # Return the appropriate error message in POSIX-defined format.</div><div class='del'>-  # If no error has occurred, returns nil.</div><div class='add'>+  # If no error has occurred, returns +nil+.</div><div class='ctx'>   #</div><div class='ctx'>   def error_message</div><div class='ctx'>     return @error_message</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # Get next option name and its argument, as an Array of two elements.</div><div class='del'>-  #</div><div class='del'>-  # The option name is always converted to the first (preferred)</div><div class='del'>-  # name given in the original options to GetoptLong.new.</div><div class='add'>+  # Returns the next option as a 2-element array containing:</div><div class='ctx'>   #</div><div class='del'>-  # Example: ['--option', 'value']</div><div class='add'>+  # - The option name (the name itself, not an alias).</div><div class='add'>+  # - The option value.</div><div class='ctx'>   #</div><div class='del'>-  # Returns nil if the processing is complete (as determined by</div><div class='del'>-  # STATUS_TERMINATED).</div><div class='add'>+  # Returns +nil+ if there are no more options.</div><div class='ctx'>   #</div><div class='ctx'>   def get</div><div class='ctx'>     option_name, option_argument = nil, ''</div><div class='hunk'>@@ -582,21 +829,32 @@ class GetoptLong</div><div class='ctx'> </div><div class='ctx'>     return @canonical_names[option_name], option_argument</div><div class='ctx'>   end</div><div class='add'>+  alias get_option get</div><div class='ctx'> </div><div class='ctx'>   #</div><div class='del'>-  # `get_option' is an alias of `get'.</div><div class='add'>+  # Calls the given block with each option;</div><div class='add'>+  # each option is a 2-element array containing:</div><div class='ctx'>   #</div><div class='del'>-  alias get_option get</div><div class='del'>-</div><div class='del'>-  # Iterator version of `get'.</div><div class='add'>+  # - The option name (the name itself, not an alias).</div><div class='add'>+  # - The option value.</div><div class='add'>+  #</div><div class='add'>+  # Example:</div><div class='add'>+  #</div><div class='add'>+  #   :include: ../sample/getoptlong/each.rb</div><div class='ctx'>   #</div><div class='del'>-  # The block is called repeatedly with two arguments:</div><div class='del'>-  # The first is the option name.</div><div class='del'>-  # The second is the argument which followed it (if any).</div><div class='del'>-  # Example: ('--opt', 'value')</div><div class='add'>+  # Command line:</div><div class='ctx'>   #</div><div class='del'>-  # The option name is always converted to the first (preferred)</div><div class='del'>-  # name given in the original options to GetoptLong.new.</div><div class='add'>+  #    ruby each.rb -xxx Foo -x Bar --yyy Baz -y Bat --zzz</div><div class='add'>+  #</div><div class='add'>+  # Output:</div><div class='add'>+  #</div><div class='add'>+  #   Original ARGV: ["-xxx", "Foo", "-x", "Bar", "--yyy", "Baz", "-y", "Bat", "--zzz"]</div><div class='add'>+  #   ["--xxx", "xx"]</div><div class='add'>+  #   ["--xxx", "Bar"]</div><div class='add'>+  #   ["--yyy", "Baz"]</div><div class='add'>+  #   ["--yyy", "Bat"]</div><div class='add'>+  #   ["--zzz", ""]</div><div class='add'>+  #   Remaining ARGV: ["Foo"]</div><div class='ctx'>   #</div><div class='ctx'>   def each</div><div class='ctx'>     loop do</div><div class='hunk'>@@ -605,9 +863,5 @@ class GetoptLong</div><div class='ctx'>       yield option_name, option_argument</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # `each_option' is an alias of `each'.</div><div class='del'>-  #</div><div class='ctx'>   alias each_option each</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/getoptlong/getoptlong.gemspec b/lib/getoptlong/getoptlong.gemspec<br/>new file mode 100644<br/>index 0000000000..dfe087b886<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/getoptlong/getoptlong.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/getoptlong/getoptlong.gemspec</a></div><div class='hunk'>@@ -0,0 +1,30 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+name = File.basename(__FILE__, ".gemspec")</div><div class='add'>+version = ["lib", Array.new(name.count("-")+1, "..").join("/")].find do |dir|</div><div class='add'>+  break File.foreach(File.join(__dir__, dir, "#{name.tr('-', '/')}.rb")) do |line|</div><div class='add'>+    /^\s*VERSION\s*=\s*"(.*)"/ =~ line and break $1</div><div class='add'>+  end rescue nil</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = name</div><div class='add'>+  spec.version       = version</div><div class='add'>+  spec.authors       = ["Yukihiro Matsumoto"]</div><div class='add'>+  spec.email         = ["matz@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{GetoptLong for Ruby}</div><div class='add'>+  spec.description   = spec.summary</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/getoptlong"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.metadata["homepage_uri"] = spec.homepage</div><div class='add'>+  spec.metadata["source_code_uri"] = spec.homepage</div><div class='add'>+</div><div class='add'>+  # Specify which files should be added to the gem when it is released.</div><div class='add'>+  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.</div><div class='add'>+  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do</div><div class='add'>+    `git ls-files -z 2&gt;/dev/null`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }</div><div class='add'>+  end</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+end</div><div class='head'>diff --git a/lib/ipaddr.gemspec b/lib/ipaddr.gemspec<br/>index 2de9ef4881..1f4798e43a 100644<br/>--- a/<a href='/ruby.git/tree/lib/ipaddr.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ipaddr.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/lib/ipaddr.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/ipaddr.gemspec</a></div><div class='hunk'>@@ -1,11 +1,23 @@</div><div class='ctx'> # frozen_string_literal: true</div><div class='ctx'> # coding: utf-8</div><div class='del'>-lib = File.expand_path("../lib", __FILE__)</div><div class='del'>-$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)</div><div class='add'>+</div><div class='add'>+if File.exist?(File.expand_path("ipaddr.gemspec"))</div><div class='add'>+  lib = File.expand_path("../lib", __FILE__)</div><div class='add'>+  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)</div><div class='add'>+</div><div class='add'>+  file = File.expand_path("ipaddr.rb", lib)</div><div class='add'>+else</div><div class='add'>+  # for ruby-core</div><div class='add'>+  file = File.expand_path("../ipaddr.rb", __FILE__)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+version = File.foreach(file).find do |line|</div><div class='add'>+  /^\s*VERSION\s*=\s*["'](.*)["']/ =~ line and break $1</div><div class='add'>+end</div><div class='ctx'> </div><div class='ctx'> Gem::Specification.new do |spec|</div><div class='ctx'>   spec.name          = "ipaddr"</div><div class='del'>-  spec.version       = "1.2.2"</div><div class='add'>+  spec.version       = version</div><div class='ctx'>   spec.authors       = ["Akinori MUSHA", "Hajimu UMEMOTO"]</div><div class='ctx'>   spec.email         = ["knu@idaemons.org", "ume@mahoroba.org"]</div><div class='ctx'> </div><div class='hunk'>@@ -15,14 +27,10 @@ IPAddr provides a set of methods to manipulate an IP address.</div><div class='ctx'> Both IPv4 and IPv6 are supported.</div><div class='ctx'>   DESCRIPTION</div><div class='ctx'>   spec.homepage      = "https://github.com/ruby/ipaddr"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> </div><div class='del'>-  spec.files         = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "ipaddr.gemspec", "lib/ipaddr.rb"]</div><div class='del'>-  spec.bindir        = "exe"</div><div class='del'>-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='add'>+  spec.files         = ["LICENSE.txt", "README.md", "ipaddr.gemspec", "lib/ipaddr.rb"]</div><div class='ctx'>   spec.require_paths = ["lib"]</div><div class='ctx'> </div><div class='del'>-  spec.add_development_dependency "bundler", "~&gt; 1.15"</div><div class='del'>-  spec.add_development_dependency "rake", "~&gt; 10.0"</div><div class='del'>-  spec.add_development_dependency "test-unit"</div><div class='add'>+  spec.required_ruby_version = "&gt;= 2.3"</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb<br/>index 7fff54b9d0..7a5cf94830 100644<br/>--- a/<a href='/ruby.git/tree/lib/ipaddr.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/ipaddr.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/ipaddr.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/ipaddr.rb</a></div><div class='hunk'>@@ -40,13 +40,14 @@ require 'socket'</div><div class='ctx'> #   p ipaddr3                   #=&gt; #&lt;IPAddr: IPv4:192.168.2.0/255.255.255.0&gt;</div><div class='ctx'> </div><div class='ctx'> class IPAddr</div><div class='add'>+  VERSION = "1.2.5"</div><div class='ctx'> </div><div class='ctx'>   # 32 bit mask for IPv4</div><div class='ctx'>   IN4MASK = 0xffffffff</div><div class='ctx'>   # 128 bit mask for IPv6</div><div class='ctx'>   IN6MASK = 0xffffffffffffffffffffffffffffffff</div><div class='ctx'>   # Format string for IPv6</div><div class='del'>-  IN6FORMAT = (["%.4x"] * 8).join(':')</div><div class='add'>+  IN6FORMAT = (["%.4x"] * 8).join(':').freeze</div><div class='ctx'> </div><div class='ctx'>   # Regexp _internally_ used for parsing IPv4 address.</div><div class='ctx'>   RE_IPV4ADDRLIKE = %r{</div><div class='hunk'>@@ -112,13 +113,12 @@ class IPAddr</div><div class='ctx'>   def self.ntop(addr)</div><div class='ctx'>     case addr.size</div><div class='ctx'>     when 4</div><div class='del'>-      s = addr.unpack('C4').join('.')</div><div class='add'>+      addr.unpack('C4').join('.')</div><div class='ctx'>     when 16</div><div class='del'>-      s = IN6FORMAT % addr.unpack('n8')</div><div class='add'>+      IN6FORMAT % addr.unpack('n8')</div><div class='ctx'>     else</div><div class='ctx'>       raise AddressFamilyError, "unsupported address family"</div><div class='ctx'>     end</div><div class='del'>-    return s</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Returns a new ipaddr built by bitwise AND.</div><div class='hunk'>@@ -168,34 +168,17 @@ class IPAddr</div><div class='ctx'>   #   net1 = IPAddr.new("192.168.2.0/24")</div><div class='ctx'>   #   net2 = IPAddr.new("192.168.2.100")</div><div class='ctx'>   #   net3 = IPAddr.new("192.168.3.0")</div><div class='add'>+  #   net4 = IPAddr.new("192.168.2.0/16")</div><div class='ctx'>   #   p net1.include?(net2)     #=&gt; true</div><div class='ctx'>   #   p net1.include?(net3)     #=&gt; false</div><div class='add'>+  #   p net1.include?(net4)     #=&gt; false</div><div class='add'>+  #   p net4.include?(net1)     #=&gt; true</div><div class='ctx'>   def include?(other)</div><div class='ctx'>     other = coerce_other(other)</div><div class='del'>-    if ipv4_mapped?</div><div class='del'>-      if (@mask_addr &gt;&gt; 32) != 0xffffffffffffffffffffffff</div><div class='del'>-        return false</div><div class='del'>-      end</div><div class='del'>-      mask_addr = (@mask_addr &amp; IN4MASK)</div><div class='del'>-      addr = (@addr &amp; IN4MASK)</div><div class='del'>-      family = Socket::AF_INET</div><div class='del'>-    else</div><div class='del'>-      mask_addr = @mask_addr</div><div class='del'>-      addr = @addr</div><div class='del'>-      family = @family</div><div class='del'>-    end</div><div class='del'>-    if other.ipv4_mapped?</div><div class='del'>-      other_addr = (other.to_i &amp; IN4MASK)</div><div class='del'>-      other_family = Socket::AF_INET</div><div class='del'>-    else</div><div class='del'>-      other_addr = other.to_i</div><div class='del'>-      other_family = other.family</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    if family != other_family</div><div class='del'>-      return false</div><div class='del'>-    end</div><div class='del'>-    return ((addr &amp; mask_addr) == (other_addr &amp; mask_addr))</div><div class='add'>+    return false unless other.family == family</div><div class='add'>+    range = to_range</div><div class='add'>+    other = other.to_range</div><div class='add'>+    range.begin &lt;= other.begin &amp;&amp; range.end &gt;= other.end</div><div class='ctx'>   end</div><div class='ctx'>   alias === include?</div><div class='ctx'> </div><div class='hunk'>@@ -232,7 +215,13 @@ class IPAddr</div><div class='ctx'>   # Returns a string containing the IP address representation in</div><div class='ctx'>   # canonical form.</div><div class='ctx'>   def to_string</div><div class='del'>-    return _to_string(@addr)</div><div class='add'>+    str = _to_string(@addr)</div><div class='add'>+</div><div class='add'>+    if @family == Socket::AF_INET6</div><div class='add'>+      str &lt;&lt; zone_id.to_s</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    return str</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Returns a network byte ordered string form of the IP address.</div><div class='hunk'>@@ -328,9 +317,11 @@ class IPAddr</div><div class='ctx'>   # into an IPv4-mapped IPv6 address.</div><div class='ctx'>   def ipv4_mapped</div><div class='ctx'>     if !ipv4?</div><div class='del'>-      raise InvalidAddressError, "not an IPv4 address"</div><div class='add'>+      raise InvalidAddressError, "not an IPv4 address: #{@addr}"</div><div class='ctx'>     end</div><div class='del'>-    return self.clone.set(@addr | 0xffff00000000, Socket::AF_INET6)</div><div class='add'>+    clone = self.clone.set(@addr | 0xffff00000000, Socket::AF_INET6)</div><div class='add'>+    clone.instance_variable_set(:@mask_addr, @mask_addr | 0xffffffffffffffffffffffff00000000)</div><div class='add'>+    clone</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Returns a new ipaddr built by converting the native IPv4 address</div><div class='hunk'>@@ -338,7 +329,7 @@ class IPAddr</div><div class='ctx'>   def ipv4_compat</div><div class='ctx'>     warn "IPAddr\##{__callee__} is obsolete", uplevel: 1 if $VERBOSE</div><div class='ctx'>     if !ipv4?</div><div class='del'>-      raise InvalidAddressError, "not an IPv4 address"</div><div class='add'>+      raise InvalidAddressError, "not an IPv4 address: #{@addr}"</div><div class='ctx'>     end</div><div class='ctx'>     return self.clone.set(@addr, Socket::AF_INET6)</div><div class='ctx'>   end</div><div class='hunk'>@@ -369,7 +360,7 @@ class IPAddr</div><div class='ctx'>   # Returns a string for DNS reverse lookup compatible with RFC3172.</div><div class='ctx'>   def ip6_arpa</div><div class='ctx'>     if !ipv6?</div><div class='del'>-      raise InvalidAddressError, "not an IPv6 address"</div><div class='add'>+      raise InvalidAddressError, "not an IPv6 address: #{@addr}"</div><div class='ctx'>     end</div><div class='ctx'>     return _reverse + ".ip6.arpa"</div><div class='ctx'>   end</div><div class='hunk'>@@ -377,7 +368,7 @@ class IPAddr</div><div class='ctx'>   # Returns a string for DNS reverse lookup compatible with RFC1886.</div><div class='ctx'>   def ip6_int</div><div class='ctx'>     if !ipv6?</div><div class='del'>-      raise InvalidAddressError, "not an IPv6 address"</div><div class='add'>+      raise InvalidAddressError, "not an IPv6 address: #{@addr}"</div><div class='ctx'>     end</div><div class='ctx'>     return _reverse + ".ip6.int"</div><div class='ctx'>   end</div><div class='hunk'>@@ -404,7 +395,7 @@ class IPAddr</div><div class='ctx'> </div><div class='ctx'>   # Returns a hash value used by Hash, Set, and Array classes</div><div class='ctx'>   def hash</div><div class='del'>-    return ([@addr, @mask_addr].hash &lt;&lt; 1) | (ipv4? ? 0 : 1)</div><div class='add'>+    return ([@addr, @mask_addr, @zone_id].hash &lt;&lt; 1) | (ipv4? ? 0 : 1)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Creates a Range object for the network address.</div><div class='hunk'>@@ -420,7 +411,7 @@ class IPAddr</div><div class='ctx'>       raise AddressFamilyError, "unsupported address family"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    return clone.set(begin_addr, @family)..clone.set(end_addr, @family)</div><div class='add'>+    self.class.new(begin_addr, @family)..self.class.new(end_addr, @family)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Returns the prefix length in bits for the ipaddr.</div><div class='hunk'>@@ -448,7 +439,7 @@ class IPAddr</div><div class='ctx'>     when Integer</div><div class='ctx'>       mask!(prefix)</div><div class='ctx'>     else</div><div class='del'>-      raise InvalidPrefixError, "prefix must be an integer"</div><div class='add'>+      raise InvalidPrefixError, "prefix must be an integer: #{@addr}"</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -460,11 +451,42 @@ class IPAddr</div><div class='ctx'>       af = "IPv4"</div><div class='ctx'>     when Socket::AF_INET6</div><div class='ctx'>       af = "IPv6"</div><div class='add'>+      zone_id = @zone_id.to_s</div><div class='ctx'>     else</div><div class='ctx'>       raise AddressFamilyError, "unsupported address family"</div><div class='ctx'>     end</div><div class='del'>-    return sprintf("#&lt;%s: %s:%s/%s&gt;", self.class.name,</div><div class='del'>-                   af, _to_string(@addr), _to_string(@mask_addr))</div><div class='add'>+    return sprintf("#&lt;%s: %s:%s%s/%s&gt;", self.class.name,</div><div class='add'>+                   af, _to_string(@addr), zone_id, _to_string(@mask_addr))</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Returns the netmask in string format e.g. 255.255.0.0</div><div class='add'>+  def netmask</div><div class='add'>+    _to_string(@mask_addr)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Returns the IPv6 zone identifier, if present.</div><div class='add'>+  # Raises InvalidAddressError if not an IPv6 address.</div><div class='add'>+  def zone_id</div><div class='add'>+    if @family == Socket::AF_INET6</div><div class='add'>+      @zone_id</div><div class='add'>+    else</div><div class='add'>+      raise InvalidAddressError, "not an IPv6 address"</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # Returns the IPv6 zone identifier, if present.</div><div class='add'>+  # Raises InvalidAddressError if not an IPv6 address.</div><div class='add'>+  def zone_id=(zid)</div><div class='add'>+    if @family == Socket::AF_INET6</div><div class='add'>+      case zid</div><div class='add'>+      when nil, /\A%(\w+)\z/</div><div class='add'>+        @zone_id = zid</div><div class='add'>+      else</div><div class='add'>+        raise InvalidAddressError, "invalid zone identifier for address"</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      raise InvalidAddressError, "not an IPv6 address"</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   protected</div><div class='hunk'>@@ -476,11 +498,11 @@ class IPAddr</div><div class='ctx'>     case family[0] ? family[0] : @family</div><div class='ctx'>     when Socket::AF_INET</div><div class='ctx'>       if addr &lt; 0 || addr &gt; IN4MASK</div><div class='del'>-        raise InvalidAddressError, "invalid address"</div><div class='add'>+        raise InvalidAddressError, "invalid address: #{@addr}"</div><div class='ctx'>       end</div><div class='ctx'>     when Socket::AF_INET6</div><div class='ctx'>       if addr &lt; 0 || addr &gt; IN6MASK</div><div class='del'>-        raise InvalidAddressError, "invalid address"</div><div class='add'>+        raise InvalidAddressError, "invalid address: #{@addr}"</div><div class='ctx'>       end</div><div class='ctx'>     else</div><div class='ctx'>       raise AddressFamilyError, "unsupported address family"</div><div class='hunk'>@@ -488,6 +510,9 @@ class IPAddr</div><div class='ctx'>     @addr = addr</div><div class='ctx'>     if family[0]</div><div class='ctx'>       @family = family[0]</div><div class='add'>+      if @family == Socket::AF_INET</div><div class='add'>+        @mask_addr &amp;= IN4MASK</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'>     return self</div><div class='ctx'>   end</div><div class='hunk'>@@ -496,17 +521,20 @@ class IPAddr</div><div class='ctx'>   def mask!(mask)</div><div class='ctx'>     case mask</div><div class='ctx'>     when String</div><div class='del'>-      if mask =~ /\A\d+\z/</div><div class='add'>+      case mask</div><div class='add'>+      when /\A(0|[1-9]+\d*)\z/</div><div class='ctx'>         prefixlen = mask.to_i</div><div class='add'>+      when /\A\d+\z/</div><div class='add'>+        raise InvalidPrefixError, "leading zeros in prefix"</div><div class='ctx'>       else</div><div class='ctx'>         m = IPAddr.new(mask)</div><div class='ctx'>         if m.family != @family</div><div class='del'>-          raise InvalidPrefixError, "address family is not same"</div><div class='add'>+          raise InvalidPrefixError, "address family is not same: #{@addr}"</div><div class='ctx'>         end</div><div class='ctx'>         @mask_addr = m.to_i</div><div class='ctx'>         n = @mask_addr ^ m.instance_variable_get(:@mask_addr)</div><div class='ctx'>         unless ((n + 1) &amp; n).zero?</div><div class='del'>-          raise InvalidPrefixError, "invalid mask #{mask}"</div><div class='add'>+          raise InvalidPrefixError, "invalid mask #{mask}: #{@addr}"</div><div class='ctx'>         end</div><div class='ctx'>         @addr &amp;= @mask_addr</div><div class='ctx'>         return self</div><div class='hunk'>@@ -517,13 +545,13 @@ class IPAddr</div><div class='ctx'>     case @family</div><div class='ctx'>     when Socket::AF_INET</div><div class='ctx'>       if prefixlen &lt; 0 || prefixlen &gt; 32</div><div class='del'>-        raise InvalidPrefixError, "invalid length"</div><div class='add'>+        raise InvalidPrefixError, "invalid length: #{@addr}"</div><div class='ctx'>       end</div><div class='ctx'>       masklen = 32 - prefixlen</div><div class='ctx'>       @mask_addr = ((IN4MASK &gt;&gt; masklen) &lt;&lt; masklen)</div><div class='ctx'>     when Socket::AF_INET6</div><div class='ctx'>       if prefixlen &lt; 0 || prefixlen &gt; 128</div><div class='del'>-        raise InvalidPrefixError, "invalid length"</div><div class='add'>+        raise InvalidPrefixError, "invalid length: #{@addr}"</div><div class='ctx'>       end</div><div class='ctx'>       masklen = 128 - prefixlen</div><div class='ctx'>       @mask_addr = ((IN6MASK &gt;&gt; masklen) &lt;&lt; masklen)</div><div class='hunk'>@@ -555,6 +583,7 @@ class IPAddr</div><div class='ctx'>   # those, such as &amp;, |, include? and ==, accept a string, or a packed</div><div class='ctx'>   # in_addr value instead of an IPAddr object.</div><div class='ctx'>   def initialize(addr = '::', family = Socket::AF_UNSPEC)</div><div class='add'>+    @mask_addr = nil</div><div class='ctx'>     if !addr.kind_of?(String)</div><div class='ctx'>       case family</div><div class='ctx'>       when Socket::AF_INET, Socket::AF_INET6</div><div class='hunk'>@@ -567,11 +596,16 @@ class IPAddr</div><div class='ctx'>         raise AddressFamilyError, "unsupported address family: #{family}"</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='del'>-    prefix, prefixlen = addr.split('/')</div><div class='add'>+    prefix, prefixlen = addr.split('/', 2)</div><div class='ctx'>     if prefix =~ /\A\[(.*)\]\z/i</div><div class='ctx'>       prefix = $1</div><div class='ctx'>       family = Socket::AF_INET6</div><div class='ctx'>     end</div><div class='add'>+    if prefix =~ /\A(.*)(%\w+)\z/</div><div class='add'>+      prefix = $1</div><div class='add'>+      zone_id = $2</div><div class='add'>+      family = Socket::AF_INET6</div><div class='add'>+    end</div><div class='ctx'>     # It seems AI_NUMERICHOST doesn't do the job.</div><div class='ctx'>     #Socket.getaddrinfo(left, nil, Socket::AF_INET6, Socket::SOCK_STREAM, nil,</div><div class='ctx'>     #                  Socket::AI_NUMERICHOST)</div><div class='hunk'>@@ -586,6 +620,7 @@ class IPAddr</div><div class='ctx'>       @addr = in6_addr(prefix)</div><div class='ctx'>       @family = Socket::AF_INET6</div><div class='ctx'>     end</div><div class='add'>+    @zone_id = zone_id</div><div class='ctx'>     if family != Socket::AF_UNSPEC &amp;&amp; @family != family</div><div class='ctx'>       raise AddressFamilyError, "address family mismatch"</div><div class='ctx'>     end</div><div class='hunk'>@@ -594,8 +629,6 @@ class IPAddr</div><div class='ctx'>     else</div><div class='ctx'>       @mask_addr = (@family == Socket::AF_INET) ? IN4MASK : IN6MASK</div><div class='ctx'>     end</div><div class='del'>-  rescue InvalidAddressError =&gt; e</div><div class='del'>-    raise e.class, "#{e.message}: #{addr}"</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def coerce_other(other)</div><div class='hunk'>@@ -618,8 +651,8 @@ class IPAddr</div><div class='ctx'>       octets = m.captures</div><div class='ctx'>     end</div><div class='ctx'>     octets.inject(0) { |i, s|</div><div class='del'>-      (n = s.to_i) &lt; 256 or raise InvalidAddressError, "invalid address"</div><div class='del'>-      s.match(/\A0./) and raise InvalidAddressError, "zero-filled number in IPv4 address is ambiguous"</div><div class='add'>+      (n = s.to_i) &lt; 256 or raise InvalidAddressError, "invalid address: #{@addr}"</div><div class='add'>+      s.match(/\A0./) and raise InvalidAddressError, "zero-filled number in IPv4 address is ambiguous: #{@addr}"</div><div class='ctx'>       i &lt;&lt; 8 | n</div><div class='ctx'>     }</div><div class='ctx'>   end</div><div class='hunk'>@@ -636,19 +669,19 @@ class IPAddr</div><div class='ctx'>       right = ''</div><div class='ctx'>     when RE_IPV6ADDRLIKE_COMPRESSED</div><div class='ctx'>       if $4</div><div class='del'>-        left.count(':') &lt;= 6 or raise InvalidAddressError, "invalid address"</div><div class='add'>+        left.count(':') &lt;= 6 or raise InvalidAddressError, "invalid address: #{@addr}"</div><div class='ctx'>         addr = in_addr($~[4,4])</div><div class='ctx'>         left = $1</div><div class='ctx'>         right = $3 + '0:0'</div><div class='ctx'>       else</div><div class='ctx'>         left.count(':') &lt;= ($1.empty? || $2.empty? ? 8 : 7) or</div><div class='del'>-          raise InvalidAddressError, "invalid address"</div><div class='add'>+          raise InvalidAddressError, "invalid address: #{@addr}"</div><div class='ctx'>         left = $1</div><div class='ctx'>         right = $2</div><div class='ctx'>         addr = 0</div><div class='ctx'>       end</div><div class='ctx'>     else</div><div class='del'>-      raise InvalidAddressError, "invalid address"</div><div class='add'>+      raise InvalidAddressError, "invalid address: #{@addr}"</div><div class='ctx'>     end</div><div class='ctx'>     l = left.split(':')</div><div class='ctx'>     r = right.split(':')</div><div class='hunk'>@@ -703,7 +736,7 @@ end</div><div class='ctx'> unless Socket.const_defined? :AF_INET6</div><div class='ctx'>   class Socket &lt; BasicSocket</div><div class='ctx'>     # IPv6 protocol family</div><div class='del'>-    AF_INET6 = Object.new</div><div class='add'>+    AF_INET6 = Object.new.freeze</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   class &lt;&lt; IPSocket</div><div class='head'>diff --git a/lib/irb.rb b/lib/irb.rb<br/>index ee3e649e81..2db99bcd43 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb.rb</a></div><div class='hunk'>@@ -9,17 +9,20 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='del'>-require "e2mmap"</div><div class='add'>+require "ripper"</div><div class='add'>+require "reline"</div><div class='ctx'> </div><div class='del'>-require "irb/init"</div><div class='del'>-require "irb/context"</div><div class='del'>-require "irb/extend-command"</div><div class='add'>+require_relative "irb/init"</div><div class='add'>+require_relative "irb/context"</div><div class='add'>+require_relative "irb/extend-command"</div><div class='ctx'> </div><div class='del'>-require "irb/ruby-lex"</div><div class='del'>-require "irb/input-method"</div><div class='del'>-require "irb/locale"</div><div class='add'>+require_relative "irb/ruby-lex"</div><div class='add'>+require_relative "irb/input-method"</div><div class='add'>+require_relative "irb/locale"</div><div class='add'>+require_relative "irb/color"</div><div class='ctx'> </div><div class='del'>-require "irb/version"</div><div class='add'>+require_relative "irb/version"</div><div class='add'>+require_relative "irb/easter-egg"</div><div class='ctx'> </div><div class='ctx'> # IRB stands for "interactive Ruby" and is a tool to interactively execute Ruby</div><div class='ctx'> # expressions read from the standard input.</div><div class='hunk'>@@ -43,45 +46,68 @@ require "irb/version"</div><div class='ctx'> #     irb(main):006:1&gt; end</div><div class='ctx'> #     #=&gt; nil</div><div class='ctx'> #</div><div class='del'>-# The Readline extension module can be used with irb. Use of Readline is</div><div class='del'>-# default if it's installed.</div><div class='add'>+# The singleline editor module or multiline editor module can be used with irb.</div><div class='add'>+# Use of multiline editor is default if it's installed.</div><div class='ctx'> #</div><div class='ctx'> # == Command line options</div><div class='ctx'> #</div><div class='del'>-#   Usage:  irb.rb [options] [programfile] [arguments]</div><div class='del'>-#     -f                Suppress read of ~/.irbrc</div><div class='del'>-#     -d                Set $DEBUG to true (same as `ruby -d')</div><div class='del'>-#     -r load-module    Same as `ruby -r'</div><div class='del'>-#     -I path           Specify $LOAD_PATH directory</div><div class='del'>-#     -U                Same as `ruby -U`</div><div class='del'>-#     -E enc            Same as `ruby -E`</div><div class='del'>-#     -w                Same as `ruby -w`</div><div class='del'>-#     -W[level=2]       Same as `ruby -W`</div><div class='del'>-#     --inspect         Use `inspect' for output (default except for bc mode)</div><div class='del'>-#     --noinspect       Don't use inspect for output</div><div class='del'>-#     --readline        Use Readline extension module</div><div class='del'>-#     --noreadline      Don't use Readline extension module</div><div class='del'>-#     --prompt prompt-mode</div><div class='del'>-#     --prompt-mode prompt-mode</div><div class='del'>-#                       Switch prompt mode. Pre-defined prompt modes are</div><div class='del'>-#                       `default', `simple', `xmp' and `inf-ruby'</div><div class='del'>-#     --inf-ruby-mode   Use prompt appropriate for inf-ruby-mode on emacs.</div><div class='del'>-#                       Suppresses --readline.</div><div class='del'>-#     --simple-prompt   Simple prompt mode</div><div class='del'>-#     --noprompt        No prompt mode</div><div class='del'>-#     --tracer          Display trace for each execution of commands.</div><div class='del'>-#     --back-trace-limit n</div><div class='del'>-#                       Display backtrace top n and tail n. The default</div><div class='del'>-#                       value is 16.</div><div class='del'>-#     --irb_debug n     Set internal debug level to n (not for popular use)</div><div class='del'>-#     -v, --version     Print the version of irb</div><div class='add'>+#   :include: ./irb/lc/help-message</div><div class='add'>+#</div><div class='add'>+# == Commands</div><div class='add'>+#</div><div class='add'>+# The following commands are available on IRB.</div><div class='add'>+#</div><div class='add'>+# * cwws</div><div class='add'>+#   * Show the current workspace.</div><div class='add'>+# * cb, cws, chws</div><div class='add'>+#   * Change the current workspace to an object.</div><div class='add'>+# * bindings, workspaces</div><div class='add'>+#   * Show workspaces.</div><div class='add'>+# * pushb, pushws</div><div class='add'>+#   * Push an object to the workspace stack.</div><div class='add'>+# * popb, popws</div><div class='add'>+#   * Pop a workspace from the workspace stack.</div><div class='add'>+# * load</div><div class='add'>+#   * Load a Ruby file.</div><div class='add'>+# * require</div><div class='add'>+#   * Require a Ruby file.</div><div class='add'>+# * source</div><div class='add'>+#   * Loads a given file in the current session.</div><div class='add'>+# * irb</div><div class='add'>+#   * Start a child IRB.</div><div class='add'>+# * jobs</div><div class='add'>+#   * List of current sessions.</div><div class='add'>+# * fg</div><div class='add'>+#   * Switches to the session of the given number.</div><div class='add'>+# * kill</div><div class='add'>+#   * Kills the session with the given number.</div><div class='add'>+# * help</div><div class='add'>+#   * Enter the mode to look up RI documents.</div><div class='add'>+# * irb_info</div><div class='add'>+#   * Show information about IRB.</div><div class='add'>+# * ls</div><div class='add'>+#   * Show methods, constants, and variables.</div><div class='add'>+#     -g [query] or -G [query] allows you to filter out the output.</div><div class='add'>+# * measure</div><div class='add'>+#   * measure enables the mode to measure processing time. measure :off disables it.</div><div class='add'>+# * $, show_source</div><div class='add'>+#   * Show the source code of a given method or constant.</div><div class='add'>+# * @, whereami</div><div class='add'>+#   * Show the source code around binding.irb again.</div><div class='add'>+# * debug</div><div class='add'>+#   * Start the debugger of debug.gem.</div><div class='add'>+# * break, delete, next, step, continue, finish, backtrace, info, catch</div><div class='add'>+#   * Start the debugger of debug.gem and run the command on it.</div><div class='ctx'> #</div><div class='ctx'> # == Configuration</div><div class='ctx'> #</div><div class='del'>-# IRB reads from &lt;code&gt;~/.irbrc&lt;/code&gt; when it's invoked.</div><div class='del'>-#</div><div class='del'>-# If &lt;code&gt;~/.irbrc&lt;/code&gt; doesn't exist, +irb+ will try to read in the following order:</div><div class='add'>+# IRB reads a personal initialization file when it's invoked.</div><div class='add'>+# IRB searches a file in the following order and loads the first one found.</div><div class='ctx'> #</div><div class='add'>+# * &lt;tt&gt;$IRBRC&lt;/tt&gt; (if &lt;tt&gt;$IRBRC&lt;/tt&gt; is set)</div><div class='add'>+# * &lt;tt&gt;$XDG_CONFIG_HOME/irb/irbrc&lt;/tt&gt; (if &lt;tt&gt;$XDG_CONFIG_HOME&lt;/tt&gt; is set)</div><div class='add'>+# * &lt;tt&gt;~/.irbrc&lt;/tt&gt;</div><div class='add'>+# * +.config/irb/irbrc+</div><div class='ctx'> # * +.irbrc+</div><div class='ctx'> # * +irb.rc+</div><div class='ctx'> # * +_irbrc+</div><div class='hunk'>@@ -95,38 +121,47 @@ require "irb/version"</div><div class='ctx'> #     IRB.conf[:IRB_RC] = nil</div><div class='ctx'> #     IRB.conf[:BACK_TRACE_LIMIT]=16</div><div class='ctx'> #     IRB.conf[:USE_LOADER] = false</div><div class='del'>-#     IRB.conf[:USE_READLINE] = nil</div><div class='add'>+#     IRB.conf[:USE_MULTILINE] = nil</div><div class='add'>+#     IRB.conf[:USE_SINGLELINE] = nil</div><div class='add'>+#     IRB.conf[:USE_COLORIZE] = true</div><div class='ctx'> #     IRB.conf[:USE_TRACER] = false</div><div class='add'>+#     IRB.conf[:USE_AUTOCOMPLETE] = true</div><div class='ctx'> #     IRB.conf[:IGNORE_SIGINT] = true</div><div class='ctx'> #     IRB.conf[:IGNORE_EOF] = false</div><div class='ctx'> #     IRB.conf[:PROMPT_MODE] = :DEFAULT</div><div class='ctx'> #     IRB.conf[:PROMPT] = {...}</div><div class='del'>-#     IRB.conf[:DEBUG_LEVEL]=0</div><div class='ctx'> #</div><div class='ctx'> # === Auto indentation</div><div class='ctx'> #</div><div class='del'>-# To enable auto-indent mode in irb, add the following to your +.irbrc+:</div><div class='add'>+# To disable auto-indent mode in irb, add the following to your +.irbrc+:</div><div class='ctx'> #</div><div class='del'>-#     IRB.conf[:AUTO_INDENT] = true</div><div class='add'>+#     IRB.conf[:AUTO_INDENT] = false</div><div class='ctx'> #</div><div class='ctx'> # === Autocompletion</div><div class='ctx'> #</div><div class='del'>-# To enable autocompletion for irb, add the following to your +.irbrc+:</div><div class='add'>+# To disable autocompletion for irb, add the following to your +.irbrc+:</div><div class='ctx'> #</div><div class='del'>-#     require 'irb/completion'</div><div class='add'>+#     IRB.conf[:USE_AUTOCOMPLETE] = false</div><div class='ctx'> #</div><div class='ctx'> # === History</div><div class='ctx'> #</div><div class='del'>-# By default, irb disables history and will not store any commands you used.</div><div class='del'>-#</div><div class='del'>-# If you want to enable history, add the following to your +.irbrc+:</div><div class='add'>+# By default, irb will store the last 1000 commands you used in</div><div class='add'>+# &lt;code&gt;IRB.conf[:HISTORY_FILE]&lt;/code&gt; (&lt;code&gt;~/.irb_history&lt;/code&gt; by default).</div><div class='ctx'> #</div><div class='del'>-#     IRB.conf[:SAVE_HISTORY] = 1000</div><div class='add'>+# If you want to disable history, add the following to your +.irbrc+:</div><div class='ctx'> #</div><div class='del'>-# This will now store the last 1000 commands in &lt;code&gt;~/.irb_history&lt;/code&gt;.</div><div class='add'>+#     IRB.conf[:SAVE_HISTORY] = nil</div><div class='ctx'> #</div><div class='ctx'> # See IRB::Context#save_history= for more information.</div><div class='ctx'> #</div><div class='add'>+# The history of _results_ of commands evaluated is not stored by default,</div><div class='add'>+# but can be turned on to be stored with this +.irbrc+ setting:</div><div class='add'>+#</div><div class='add'>+#     IRB.conf[:EVAL_HISTORY] = &lt;number&gt;</div><div class='add'>+#</div><div class='add'>+# See IRB::Context#eval_history= and History class. The history of command</div><div class='add'>+# results is not permanently saved in any file.</div><div class='add'>+#</div><div class='ctx'> # == Customizing the IRB Prompt</div><div class='ctx'> #</div><div class='ctx'> # In order to customize the prompt, you can change the following Hash:</div><div class='hunk'>@@ -136,7 +171,7 @@ require "irb/version"</div><div class='ctx'> # This example can be used in your +.irbrc+</div><div class='ctx'> #</div><div class='ctx'> #     IRB.conf[:PROMPT][:MY_PROMPT] = { # name of prompt mode</div><div class='del'>-#       :AUTO_INDENT =&gt; true,           # enables auto-indent mode</div><div class='add'>+#       :AUTO_INDENT =&gt; false,          # disables auto-indent mode</div><div class='ctx'> #       :PROMPT_I =&gt;  "&gt;&gt; ",		# simple prompt</div><div class='ctx'> #       :PROMPT_S =&gt; nil,		# prompt for continuated strings</div><div class='ctx'> #       :PROMPT_C =&gt; nil,		# prompt for continuated statement</div><div class='hunk'>@@ -165,6 +200,7 @@ require "irb/version"</div><div class='ctx'> #</div><div class='ctx'> #     IRB.conf[:PROMPT_MODE][:DEFAULT] = {</div><div class='ctx'> #       :PROMPT_I =&gt; "%N(%m):%03n:%i&gt; ",</div><div class='add'>+#       :PROMPT_N =&gt; "%N(%m):%03n:%i&gt; ",</div><div class='ctx'> #       :PROMPT_S =&gt; "%N(%m):%03n:%i%l ",</div><div class='ctx'> #       :PROMPT_C =&gt; "%N(%m):%03n:%i* ",</div><div class='ctx'> #       :RETURN =&gt; "%s\n" # used to printf</div><div class='hunk'>@@ -257,7 +293,7 @@ require "irb/version"</div><div class='ctx'> # On the other hand, each conf in IRB@Command+line+options is used to</div><div class='ctx'> # individually configure IRB.irb.</div><div class='ctx'> #</div><div class='del'>-# If a proc is set for IRB.conf[:IRB_RC], its will be invoked after execution</div><div class='add'>+# If a proc is set for &lt;code&gt;IRB.conf[:IRB_RC]&lt;/code&gt;, its will be invoked after execution</div><div class='ctx'> # of that proc with the context of the current session as its argument. Each</div><div class='ctx'> # session can be configured using this mechanism.</div><div class='ctx'> #</div><div class='hunk'>@@ -268,7 +304,9 @@ require "irb/version"</div><div class='ctx'> # &lt;code&gt;_&lt;/code&gt;::</div><div class='ctx'> #   The value command executed, as a local variable</div><div class='ctx'> # &lt;code&gt;__&lt;/code&gt;::</div><div class='del'>-#   The history of evaluated commands</div><div class='add'>+#   The history of evaluated commands. Available only if</div><div class='add'>+#   &lt;code&gt;IRB.conf[:EVAL_HISTORY]&lt;/code&gt; is not +nil+ (which is the default).</div><div class='add'>+#   See also IRB::Context#eval_history= and IRB::History.</div><div class='ctx'> # &lt;code&gt;__[line_no]&lt;/code&gt;::</div><div class='ctx'> #   Returns the evaluation value at the given line number, +line_no+.</div><div class='ctx'> #   If +line_no+ is a negative, the return value +line_no+ many lines before</div><div class='hunk'>@@ -304,7 +342,7 @@ require "irb/version"</div><div class='ctx'> #   # check if Foo#foo is available</div><div class='ctx'> #   irb(main):005:0&gt; Foo.instance_methods #=&gt; [:foo, ...]</div><div class='ctx'> #</div><div class='del'>-#   # change the active sesssion</div><div class='add'>+#   # change the active session</div><div class='ctx'> #   irb(main):006:0&gt; fg 2</div><div class='ctx'> #   # define Foo#bar in the context of Foo</div><div class='ctx'> #   irb.2(Foo):005:0&gt; def bar</div><div class='hunk'>@@ -383,7 +421,7 @@ module IRB</div><div class='ctx'>     irb.run(@CONF)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Calls each event hook of IRB.conf[:AT_EXIT] when the current session quits.</div><div class='add'>+  # Calls each event hook of &lt;code&gt;IRB.conf[:AT_EXIT]&lt;/code&gt; when the current session quits.</div><div class='ctx'>   def IRB.irb_at_exit</div><div class='ctx'>     @CONF[:AT_EXIT].each{|hook| hook.call}</div><div class='ctx'>   end</div><div class='hunk'>@@ -397,29 +435,63 @@ module IRB</div><div class='ctx'>   #</div><div class='ctx'>   # Will raise an Abort exception, or the given +exception+.</div><div class='ctx'>   def IRB.irb_abort(irb, exception = Abort)</div><div class='del'>-    if defined? Thread</div><div class='del'>-      irb.context.thread.raise exception, "abort then interrupt!"</div><div class='del'>-    else</div><div class='del'>-      raise exception, "abort then interrupt!"</div><div class='del'>-    end</div><div class='add'>+    irb.context.thread.raise exception, "abort then interrupt!"</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   class Irb</div><div class='add'>+    ASSIGNMENT_NODE_TYPES = [</div><div class='add'>+      # Local, instance, global, class, constant, instance, and index assignment:</div><div class='add'>+      #   "foo = bar",</div><div class='add'>+      #   "@foo = bar",</div><div class='add'>+      #   "$foo = bar",</div><div class='add'>+      #   "@@foo = bar",</div><div class='add'>+      #   "::Foo = bar",</div><div class='add'>+      #   "a::Foo = bar",</div><div class='add'>+      #   "Foo = bar"</div><div class='add'>+      #   "foo.bar = 1"</div><div class='add'>+      #   "foo[1] = bar"</div><div class='add'>+      :assign,</div><div class='add'>+</div><div class='add'>+      # Operation assignment:</div><div class='add'>+      #   "foo += bar"</div><div class='add'>+      #   "foo -= bar"</div><div class='add'>+      #   "foo ||= bar"</div><div class='add'>+      #   "foo &amp;&amp;= bar"</div><div class='add'>+      :opassign,</div><div class='add'>+</div><div class='add'>+      # Multiple assignment:</div><div class='add'>+      #   "foo, bar = 1, 2</div><div class='add'>+      :massign,</div><div class='add'>+    ]</div><div class='add'>+    # Note: instance and index assignment expressions could also be written like:</div><div class='add'>+    # "foo.bar=(1)" and "foo.[]=(1, bar)", when expressed that way, the former</div><div class='add'>+    # be parsed as :assign and echo will be suppressed, but the latter is</div><div class='add'>+    # parsed as a :method_add_arg and the output won't be suppressed</div><div class='add'>+</div><div class='ctx'>     # Creates a new irb session</div><div class='del'>-    def initialize(workspace = nil, input_method = nil, output_method = nil)</div><div class='del'>-      @context = Context.new(self, workspace, input_method, output_method)</div><div class='add'>+    def initialize(workspace = nil, input_method = nil)</div><div class='add'>+      @context = Context.new(self, workspace, input_method)</div><div class='ctx'>       @context.main.extend ExtendCommandBundle</div><div class='ctx'>       @signal_status = :IN_IRB</div><div class='del'>-</div><div class='ctx'>       @scanner = RubyLex.new</div><div class='del'>-      @scanner.exception_on_syntax_error = false</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # A hook point for `debug` command's TracePoint after :IRB_EXIT as well as its clean-up</div><div class='add'>+    def debug_break</div><div class='add'>+      # it means the debug command is executed</div><div class='add'>+      if defined?(DEBUGGER__) &amp;&amp; DEBUGGER__.respond_to?(:capture_frames_without_irb)</div><div class='add'>+        # after leaving this initial breakpoint, revert the capture_frames patch</div><div class='add'>+        DEBUGGER__.singleton_class.send(:alias_method, :capture_frames, :capture_frames_without_irb)</div><div class='add'>+        # and remove the redundant method</div><div class='add'>+        DEBUGGER__.singleton_class.send(:undef_method, :capture_frames_without_irb)</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def run(conf = IRB.conf)</div><div class='ctx'>       conf[:IRB_RC].call(context) if conf[:IRB_RC]</div><div class='ctx'>       conf[:MAIN_CONTEXT] = context</div><div class='ctx'> </div><div class='del'>-      trap("SIGINT") do</div><div class='add'>+      prev_trap = trap("SIGINT") do</div><div class='ctx'>         signal_handle</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='hunk'>@@ -428,6 +500,7 @@ module IRB</div><div class='ctx'>           eval_input</div><div class='ctx'>         end</div><div class='ctx'>       ensure</div><div class='add'>+        trap("SIGINT", prev_trap)</div><div class='ctx'>         conf[:AT_EXIT].each{|hook| hook.call}</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -458,17 +531,19 @@ module IRB</div><div class='ctx'>         else</div><div class='ctx'>           @context.io.prompt = p = ""</div><div class='ctx'>         end</div><div class='del'>-        if @context.auto_indent_mode</div><div class='add'>+        if @context.auto_indent_mode and !@context.io.respond_to?(:auto_indent)</div><div class='ctx'>           unless ltype</div><div class='del'>-            ind = prompt(@context.prompt_i, ltype, indent, line_no)[/.*\z/].size +</div><div class='add'>+            prompt_i = @context.prompt_i.nil? ? "" : @context.prompt_i</div><div class='add'>+            ind = prompt(prompt_i, ltype, indent, line_no)[/.*\z/].size +</div><div class='ctx'>               indent * 2 - p.size</div><div class='ctx'>             ind += 2 if continue</div><div class='ctx'>             @context.io.prompt = p + " " * ind if ind &gt; 0</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='add'>+        @context.io.prompt</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      @scanner.set_input(@context.io) do</div><div class='add'>+      @scanner.set_input(@context.io, context: @context) do</div><div class='ctx'>         signal_status(:IN_INPUT) do</div><div class='ctx'>           if l = @context.io.gets</div><div class='ctx'>             print l if @context.verbose?</div><div class='hunk'>@@ -479,19 +554,48 @@ module IRB</div><div class='ctx'>                 printf "Use \"exit\" to leave %s\n", @context.ap_name</div><div class='ctx'>               end</div><div class='ctx'>             else</div><div class='del'>-              print "\n"</div><div class='add'>+              print "\n" if @context.prompting?</div><div class='ctx'>             end</div><div class='ctx'>           end</div><div class='ctx'>           l</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      @scanner.each_top_level_statement do |line, line_no|</div><div class='add'>+      @scanner.set_auto_indent(@context) if @context.auto_indent_mode</div><div class='add'>+</div><div class='add'>+      @scanner.each_top_level_statement(@context) do |line, line_no|</div><div class='ctx'>         signal_status(:IN_EVAL) do</div><div class='ctx'>           begin</div><div class='del'>-            line.untaint</div><div class='del'>-            @context.evaluate(line, line_no, exception: exc)</div><div class='del'>-            output_value if @context.echo?</div><div class='add'>+            line.untaint if RUBY_VERSION &lt; '2.7'</div><div class='add'>+            if IRB.conf[:MEASURE] &amp;&amp; IRB.conf[:MEASURE_CALLBACKS].empty?</div><div class='add'>+              IRB.set_measure_callback</div><div class='add'>+            end</div><div class='add'>+            # Assignment expression check should be done before @context.evaluate to handle code like `a /2#/ if false; a = 1`</div><div class='add'>+            is_assignment = assignment_expression?(line)</div><div class='add'>+            if IRB.conf[:MEASURE] &amp;&amp; !IRB.conf[:MEASURE_CALLBACKS].empty?</div><div class='add'>+              result = nil</div><div class='add'>+              last_proc = proc{ result = @context.evaluate(line, line_no, exception: exc) }</div><div class='add'>+              IRB.conf[:MEASURE_CALLBACKS].inject(last_proc) { |chain, item|</div><div class='add'>+                _name, callback, arg = item</div><div class='add'>+                proc {</div><div class='add'>+                  callback.(@context, line, line_no, arg, exception: exc) do</div><div class='add'>+                    chain.call</div><div class='add'>+                  end</div><div class='add'>+                }</div><div class='add'>+              }.call</div><div class='add'>+              @context.set_last_value(result)</div><div class='add'>+            else</div><div class='add'>+              @context.evaluate(line, line_no, exception: exc)</div><div class='add'>+            end</div><div class='add'>+            if @context.echo?</div><div class='add'>+              if is_assignment</div><div class='add'>+                if @context.echo_on_assignment?</div><div class='add'>+                  output_value(@context.echo_on_assignment? == :truncate)</div><div class='add'>+                end</div><div class='add'>+              else</div><div class='add'>+                output_value</div><div class='add'>+              end</div><div class='add'>+            end</div><div class='ctx'>           rescue Interrupt =&gt; exc</div><div class='ctx'>           rescue SystemExit, SignalException</div><div class='ctx'>             raise</div><div class='hunk'>@@ -501,61 +605,87 @@ module IRB</div><div class='ctx'>             next</div><div class='ctx'>           end</div><div class='ctx'>           handle_exception(exc)</div><div class='add'>+          @context.workspace.local_variable_set(:_, exc)</div><div class='add'>+          exc = nil</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def convert_invalid_byte_sequence(str, enc)</div><div class='add'>+      str.force_encoding(enc)</div><div class='add'>+      str.scrub { |c|</div><div class='add'>+        c.bytes.map{ |b| "\\x#{b.to_s(16).upcase}" }.join</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def encode_with_invalid_byte_sequence(str, enc)</div><div class='add'>+      conv = Encoding::Converter.new(str.encoding, enc)</div><div class='add'>+      dst = String.new</div><div class='add'>+      begin</div><div class='add'>+        ret = conv.primitive_convert(str, dst)</div><div class='add'>+        case ret</div><div class='add'>+        when :invalid_byte_sequence</div><div class='add'>+          conv.insert_output(conv.primitive_errinfo[3].dump[1..-2])</div><div class='add'>+          redo</div><div class='add'>+        when :undefined_conversion</div><div class='add'>+          c = conv.primitive_errinfo[3].dup.force_encoding(conv.primitive_errinfo[1])</div><div class='add'>+          conv.insert_output(c.dump[1..-2])</div><div class='add'>+          redo</div><div class='add'>+        when :incomplete_input</div><div class='add'>+          conv.insert_output(conv.primitive_errinfo[3].dump[1..-2])</div><div class='add'>+        when :finished</div><div class='add'>+        end</div><div class='add'>+        break</div><div class='add'>+      end while nil</div><div class='add'>+      dst</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def handle_exception(exc)</div><div class='del'>-      if exc.backtrace &amp;&amp; exc.backtrace[0] =~ /irb(2)?(\/.*|-.*|\.rb)?:/ &amp;&amp; exc.class.to_s !~ /^IRB/ &amp;&amp;</div><div class='del'>-         !(SyntaxError === exc)</div><div class='add'>+      if exc.backtrace &amp;&amp; exc.backtrace[0] =~ /\/irb(2)?(\/.*|-.*|\.rb)?:/ &amp;&amp; exc.class.to_s !~ /^IRB/ &amp;&amp;</div><div class='add'>+         !(SyntaxError === exc) &amp;&amp; !(EncodingError === exc)</div><div class='add'>+        # The backtrace of invalid encoding hash (ex. {"\xAE": 1}) raises EncodingError without lineno.</div><div class='ctx'>         irb_bug = true</div><div class='ctx'>       else</div><div class='ctx'>         irb_bug = false</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      if STDOUT.tty?</div><div class='del'>-        attr = ATTR_TTY</div><div class='del'>-        print "#{attr[1]}Traceback#{attr[]} (most recent call last):\n"</div><div class='del'>-      else</div><div class='del'>-        attr = ATTR_PLAIN</div><div class='del'>-      end</div><div class='del'>-      messages = []</div><div class='del'>-      lasts = []</div><div class='del'>-      levels = 0</div><div class='ctx'>       if exc.backtrace</div><div class='del'>-        count = 0</div><div class='del'>-        exc.backtrace.each do |m|</div><div class='del'>-          m = @context.workspace.filter_backtrace(m) or next unless irb_bug</div><div class='del'>-          count += 1</div><div class='del'>-          if attr == ATTR_TTY</div><div class='del'>-            m = sprintf("%9d: from %s", count, m)</div><div class='add'>+        order = nil</div><div class='add'>+        if RUBY_VERSION &lt; '3.0.0'</div><div class='add'>+          if STDOUT.tty?</div><div class='add'>+            message = exc.full_message(order: :bottom)</div><div class='add'>+            order = :bottom</div><div class='ctx'>           else</div><div class='del'>-            m = "\tfrom #{m}"</div><div class='del'>-          end</div><div class='del'>-          if messages.size &lt; @context.back_trace_limit</div><div class='del'>-            messages.push(m)</div><div class='del'>-          elsif lasts.size &lt; @context.back_trace_limit</div><div class='del'>-            lasts.push(m).shift</div><div class='del'>-            levels += 1</div><div class='add'>+            message = exc.full_message(order: :top)</div><div class='add'>+            order = :top</div><div class='ctx'>           end</div><div class='add'>+        else # '3.0.0' &lt;= RUBY_VERSION</div><div class='add'>+          message = exc.full_message(order: :top)</div><div class='add'>+          order = :top</div><div class='ctx'>         end</div><div class='del'>-      end</div><div class='del'>-      if attr == ATTR_TTY</div><div class='del'>-        unless lasts.empty?</div><div class='del'>-          puts lasts.reverse</div><div class='del'>-          printf "... %d levels...\n", levels if levels &gt; 0</div><div class='del'>-        end</div><div class='del'>-        puts messages.reverse</div><div class='del'>-      end</div><div class='del'>-      m = exc.to_s.split(/\n/)</div><div class='del'>-      print "#{attr[1]}#{exc.class} (#{attr[4]}#{m.shift}#{attr[0, 1]})#{attr[]}\n"</div><div class='del'>-      puts m.map {|s| "#{attr[1]}#{s}#{attr[]}\n"}</div><div class='del'>-      if attr == ATTR_PLAIN</div><div class='del'>-        puts messages</div><div class='del'>-        unless lasts.empty?</div><div class='del'>-          puts lasts</div><div class='del'>-          printf "... %d levels...\n", levels if levels &gt; 0</div><div class='del'>-        end</div><div class='add'>+        message = convert_invalid_byte_sequence(message, exc.message.encoding)</div><div class='add'>+        message = encode_with_invalid_byte_sequence(message, IRB.conf[:LC_MESSAGES].encoding) unless message.encoding.to_s.casecmp?(IRB.conf[:LC_MESSAGES].encoding.to_s)</div><div class='add'>+        message = message.gsub(/((?:^\t.+$\n)+)/)  { |m|</div><div class='add'>+          case order</div><div class='add'>+          when :top</div><div class='add'>+            lines = m.split("\n")</div><div class='add'>+          when :bottom</div><div class='add'>+            lines = m.split("\n").reverse</div><div class='add'>+          end</div><div class='add'>+          unless irb_bug</div><div class='add'>+            lines = lines.map { |l| @context.workspace.filter_backtrace(l) }.compact</div><div class='add'>+            if lines.size &gt; @context.back_trace_limit</div><div class='add'>+              omit = lines.size - @context.back_trace_limit</div><div class='add'>+              lines = lines[0..(@context.back_trace_limit - 1)]</div><div class='add'>+              lines &lt;&lt; "\t... %d levels..." % omit</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+          lines = lines.reverse if order == :bottom</div><div class='add'>+          lines.map{ |l| l + "\n" }.join</div><div class='add'>+        }</div><div class='add'>+        # The "&lt;top (required)&gt;" in "(irb)" may be the top level of IRB so imitate the main object.</div><div class='add'>+        message = message.gsub(/\(irb\):(?&lt;num&gt;\d+):in `&lt;(?&lt;frame&gt;top \(required\))&gt;'/)  { "(irb):#{$~[:num]}:in `&lt;main&gt;'" }</div><div class='add'>+        puts message</div><div class='ctx'>       end</div><div class='ctx'>       print "Maybe IRB bug!\n" if irb_bug</div><div class='ctx'>     end</div><div class='hunk'>@@ -663,10 +793,18 @@ module IRB</div><div class='ctx'>         when "l"</div><div class='ctx'>           ltype</div><div class='ctx'>         when "i"</div><div class='del'>-          if $1</div><div class='del'>-            format("%" + $1 + "d", indent)</div><div class='add'>+          if indent &lt; 0</div><div class='add'>+            if $1</div><div class='add'>+              "-".rjust($1.to_i)</div><div class='add'>+            else</div><div class='add'>+              "-"</div><div class='add'>+            end</div><div class='ctx'>           else</div><div class='del'>-            indent.to_s</div><div class='add'>+            if $1</div><div class='add'>+              format("%" + $1 + "d", indent)</div><div class='add'>+            else</div><div class='add'>+              indent.to_s</div><div class='add'>+            end</div><div class='ctx'>           end</div><div class='ctx'>         when "n"</div><div class='ctx'>           if $1</div><div class='hunk'>@@ -681,8 +819,40 @@ module IRB</div><div class='ctx'>       p</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def output_value # :nodoc:</div><div class='del'>-      printf @context.return_format, @context.inspect_last_value</div><div class='add'>+    def output_value(omit = false) # :nodoc:</div><div class='add'>+      str = @context.inspect_last_value</div><div class='add'>+      multiline_p = str.include?("\n")</div><div class='add'>+      if omit</div><div class='add'>+        winwidth = @context.io.winsize.last</div><div class='add'>+        if multiline_p</div><div class='add'>+          first_line = str.split("\n").first</div><div class='add'>+          result = @context.newline_before_multiline_output? ? (@context.return_format % first_line) : first_line</div><div class='add'>+          output_width = Reline::Unicode.calculate_width(result, true)</div><div class='add'>+          diff_size = output_width - Reline::Unicode.calculate_width(first_line, true)</div><div class='add'>+          if diff_size.positive? and output_width &gt; winwidth</div><div class='add'>+            lines, _ = Reline::Unicode.split_by_width(first_line, winwidth - diff_size - 3)</div><div class='add'>+            str = "%s..." % lines.first</div><div class='add'>+            str += "\e[0m" if Color.colorable?</div><div class='add'>+            multiline_p = false</div><div class='add'>+          else</div><div class='add'>+            str = str.gsub(/(\A.*?\n).*/m, "\\1...")</div><div class='add'>+            str += "\e[0m" if Color.colorable?</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          output_width = Reline::Unicode.calculate_width(@context.return_format % str, true)</div><div class='add'>+          diff_size = output_width - Reline::Unicode.calculate_width(str, true)</div><div class='add'>+          if diff_size.positive? and output_width &gt; winwidth</div><div class='add'>+            lines, _ = Reline::Unicode.split_by_width(str, winwidth - diff_size - 3)</div><div class='add'>+            str = "%s..." % lines.first</div><div class='add'>+            str += "\e[0m" if Color.colorable?</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      if multiline_p &amp;&amp; @context.newline_before_multiline_output?</div><div class='add'>+        printf @context.return_format, "\n#{str}"</div><div class='add'>+      else</div><div class='add'>+        printf @context.return_format, str</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Outputs the local variables to this current session, including</div><div class='hunk'>@@ -702,6 +872,24 @@ module IRB</div><div class='ctx'>       format("#&lt;%s: %s&gt;", self.class, ary.join(", "))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    def assignment_expression?(line)</div><div class='add'>+      # Try to parse the line and check if the last of possibly multiple</div><div class='add'>+      # expressions is an assignment type.</div><div class='add'>+</div><div class='add'>+      # If the expression is invalid, Ripper.sexp should return nil which will</div><div class='add'>+      # result in false being returned. Any valid expression should return an</div><div class='add'>+      # s-expression where the second element of the top level array is an</div><div class='add'>+      # array of parsed expressions. The first element of each expression is the</div><div class='add'>+      # expression's type.</div><div class='add'>+      verbose, $VERBOSE = $VERBOSE, nil</div><div class='add'>+      code = "#{RubyLex.generate_local_variables_assign_code(@context.local_variables) || 'nil;'}\n#{line}"</div><div class='add'>+      # Get the last node_type of the line. drop(1) is to ignore the local_variables_assign_code part.</div><div class='add'>+      node_type = Ripper.sexp(code)&amp;.dig(1)&amp;.drop(1)&amp;.dig(-1, 0)</div><div class='add'>+      ASSIGNMENT_NODE_TYPES.include?(node_type)</div><div class='add'>+    ensure</div><div class='add'>+      $VERBOSE = verbose</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     ATTR_TTY = "\e[%sm"</div><div class='ctx'>     def ATTR_TTY.[](*a) self % a.join(";"); end</div><div class='ctx'>     ATTR_PLAIN = ""</div><div class='hunk'>@@ -749,8 +937,8 @@ class Binding</div><div class='ctx'>   #</div><div class='ctx'>   #     Potato.new</div><div class='ctx'>   #</div><div class='del'>-  # Running +ruby potato.rb+ will open an IRB session where +binding.irb+ is</div><div class='del'>-  # called, and you will see the following:</div><div class='add'>+  # Running &lt;code&gt;ruby potato.rb&lt;/code&gt; will open an IRB session where</div><div class='add'>+  # +binding.irb+ is called, and you will see the following:</div><div class='ctx'>   #</div><div class='ctx'>   #     $ ruby potato.rb</div><div class='ctx'>   #</div><div class='hunk'>@@ -780,7 +968,7 @@ class Binding</div><div class='ctx'>   #     irb(#&lt;Potato:0x00007feea1916670&gt;):004:0&gt; @cooked = true</div><div class='ctx'>   #     =&gt; true</div><div class='ctx'>   #</div><div class='del'>-  # You can exit the IRB session with the `exit` command. Note that exiting will</div><div class='add'>+  # You can exit the IRB session with the +exit+ command. Note that exiting will</div><div class='ctx'>   # resume execution where +binding.irb+ had paused it, as you can see from the</div><div class='ctx'>   # output printed to standard output in this example:</div><div class='ctx'>   #</div><div class='hunk'>@@ -789,10 +977,13 @@ class Binding</div><div class='ctx'>   #</div><div class='ctx'>   #</div><div class='ctx'>   # See IRB@IRB+Usage for more information.</div><div class='del'>-  def irb</div><div class='del'>-    IRB.setup(eval("__FILE__"), argv: [])</div><div class='add'>+  def irb(show_code: true)</div><div class='add'>+    IRB.setup(source_location[0], argv: [])</div><div class='ctx'>     workspace = IRB::WorkSpace.new(self)</div><div class='del'>-    STDOUT.print(workspace.code_around_binding)</div><div class='del'>-    IRB::Irb.new(workspace).run(IRB.conf)</div><div class='add'>+    STDOUT.print(workspace.code_around_binding) if show_code</div><div class='add'>+    binding_irb = IRB::Irb.new(workspace)</div><div class='add'>+    binding_irb.context.irb_path = File.expand_path(source_location[0])</div><div class='add'>+    binding_irb.run(IRB.conf)</div><div class='add'>+    binding_irb.debug_break</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/irb/.document b/lib/irb/.document<br/>new file mode 100644<br/>index 0000000000..3b0d6fa4ed<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/.document?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/.document</a></div><div class='hunk'>@@ -0,0 +1 @@</div><div class='add'>+**/*.rb</div><div class='head'>diff --git a/lib/irb/cmd/backtrace.rb b/lib/irb/cmd/backtrace.rb<br/>new file mode 100644<br/>index 0000000000..f632894618<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/backtrace.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/backtrace.rb</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "debug"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Backtrace &lt; DebugCommand</div><div class='add'>+      def self.transform_args(args)</div><div class='add'>+        args&amp;.dump</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def execute(*args)</div><div class='add'>+        super(pre_cmds: ["backtrace", *args].join(" "))</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/break.rb b/lib/irb/cmd/break.rb<br/>new file mode 100644<br/>index 0000000000..df259a90ca<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/break.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/break.rb</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "debug"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Break &lt; DebugCommand</div><div class='add'>+      def self.transform_args(args)</div><div class='add'>+        args&amp;.dump</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def execute(args = nil)</div><div class='add'>+        super(pre_cmds: "break #{args}")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/catch.rb b/lib/irb/cmd/catch.rb<br/>new file mode 100644<br/>index 0000000000..40b62c7533<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/catch.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/catch.rb</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "debug"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Catch &lt; DebugCommand</div><div class='add'>+      def self.transform_args(args)</div><div class='add'>+        args&amp;.dump</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def execute(*args)</div><div class='add'>+        super(pre_cmds: ["catch", *args].join(" "))</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/chws.rb b/lib/irb/cmd/chws.rb<br/>index e9f257791c..7c84ba0a4b 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/cmd/chws.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/chws.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/chws.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/chws.rb</a></div><div class='hunk'>@@ -13,22 +13,30 @@</div><div class='ctx'> require_relative "nop"</div><div class='ctx'> require_relative "../ext/change-ws"</div><div class='ctx'> </div><div class='del'>-# :stopdoc:</div><div class='ctx'> module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='ctx'>   module ExtendCommand</div><div class='ctx'> </div><div class='ctx'>     class CurrentWorkingWorkspace &lt; Nop</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Show the current workspace."</div><div class='add'>+</div><div class='ctx'>       def execute(*obj)</div><div class='ctx'>         irb_context.main</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     class ChangeWorkspace &lt; Nop</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Change the current workspace to an object."</div><div class='add'>+</div><div class='ctx'>       def execute(*obj)</div><div class='ctx'>         irb_context.change_workspace(*obj)</div><div class='ctx'>         irb_context.main</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='ctx'> end</div><div class='del'>-# :startdoc:</div><div class='head'>diff --git a/lib/irb/cmd/continue.rb b/lib/irb/cmd/continue.rb<br/>new file mode 100644<br/>index 0000000000..9136177eef<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/continue.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/continue.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "debug"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Continue &lt; DebugCommand</div><div class='add'>+      def execute(*args)</div><div class='add'>+        super(do_cmds: ["continue", *args].join(" "))</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/debug.rb b/lib/irb/cmd/debug.rb<br/>new file mode 100644<br/>index 0000000000..7d39b9fa27<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/debug.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/debug.rb</a></div><div class='hunk'>@@ -0,0 +1,136 @@</div><div class='add'>+require_relative "nop"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Debug &lt; Nop</div><div class='add'>+      category "Debugging"</div><div class='add'>+      description "Start the debugger of debug.gem."</div><div class='add'>+</div><div class='add'>+      BINDING_IRB_FRAME_REGEXPS = [</div><div class='add'>+        '&lt;internal:prelude&gt;',</div><div class='add'>+        binding.method(:irb).source_location.first,</div><div class='add'>+      ].map { |file| /\A#{Regexp.escape(file)}:\d+:in `irb'\z/ }</div><div class='add'>+      IRB_DIR = File.expand_path('..', __dir__)</div><div class='add'>+</div><div class='add'>+      def execute(pre_cmds: nil, do_cmds: nil)</div><div class='add'>+        unless binding_irb?</div><div class='add'>+          puts "`debug` command is only available when IRB is started with binding.irb"</div><div class='add'>+          return</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        unless setup_debugger</div><div class='add'>+          puts &lt;&lt;~MSG</div><div class='add'>+            You need to install the debug gem before using this command.</div><div class='add'>+            If you use `bundle exec`, please add `gem "debug"` into your Gemfile.</div><div class='add'>+          MSG</div><div class='add'>+          return</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        options = { oneshot: true, hook_call: false }</div><div class='add'>+        if pre_cmds || do_cmds</div><div class='add'>+          options[:command] = ['irb', pre_cmds, do_cmds]</div><div class='add'>+        end</div><div class='add'>+        if DEBUGGER__::LineBreakpoint.instance_method(:initialize).parameters.include?([:key, :skip_src])</div><div class='add'>+          options[:skip_src] = true</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        # To make debugger commands like `next` or `continue` work without asking</div><div class='add'>+        # the user to quit IRB after that, we need to exit IRB first and then hit</div><div class='add'>+        # a TracePoint on #debug_break.</div><div class='add'>+        file, lineno = IRB::Irb.instance_method(:debug_break).source_location</div><div class='add'>+        DEBUGGER__::SESSION.add_line_breakpoint(file, lineno + 1, **options)</div><div class='add'>+        # exit current Irb#run call</div><div class='add'>+        throw :IRB_EXIT</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def binding_irb?</div><div class='add'>+        caller.any? do |frame|</div><div class='add'>+          BINDING_IRB_FRAME_REGEXPS.any? do |regexp|</div><div class='add'>+            frame.match?(regexp)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      module SkipPathHelperForIRB</div><div class='add'>+        def skip_internal_path?(path)</div><div class='add'>+          # The latter can be removed once https://github.com/ruby/debug/issues/866 is resolved</div><div class='add'>+          super || path.match?(IRB_DIR) || path.match?('&lt;internal:prelude&gt;')</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def setup_debugger</div><div class='add'>+        unless defined?(DEBUGGER__::SESSION)</div><div class='add'>+          begin</div><div class='add'>+            require "debug/session"</div><div class='add'>+          rescue LoadError # debug.gem is not written in Gemfile</div><div class='add'>+            return false unless load_bundled_debug_gem</div><div class='add'>+          end</div><div class='add'>+          DEBUGGER__.start(nonstop: true)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        unless DEBUGGER__.respond_to?(:capture_frames_without_irb)</div><div class='add'>+          DEBUGGER__.singleton_class.send(:alias_method, :capture_frames_without_irb, :capture_frames)</div><div class='add'>+</div><div class='add'>+          def DEBUGGER__.capture_frames(*args)</div><div class='add'>+            frames = capture_frames_without_irb(*args)</div><div class='add'>+            frames.reject! do |frame|</div><div class='add'>+              frame.realpath&amp;.start_with?(IRB_DIR) || frame.path == "&lt;internal:prelude&gt;"</div><div class='add'>+            end</div><div class='add'>+            frames</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          DEBUGGER__::ThreadClient.prepend(SkipPathHelperForIRB)</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        true</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # This is used when debug.gem is not written in Gemfile. Even if it's not</div><div class='add'>+      # installed by `bundle install`, debug.gem is installed by default because</div><div class='add'>+      # it's a bundled gem. This method tries to activate and load that.</div><div class='add'>+      def load_bundled_debug_gem</div><div class='add'>+        # Discover latest debug.gem under GEM_PATH</div><div class='add'>+        debug_gem = Gem.paths.path.flat_map { |path| Dir.glob("#{path}/gems/debug-*") }.select do |path|</div><div class='add'>+          File.basename(path).match?(/\Adebug-\d+\.\d+\.\d+(\w+)?\z/)</div><div class='add'>+        end.sort_by do |path|</div><div class='add'>+          Gem::Version.new(File.basename(path).delete_prefix('debug-'))</div><div class='add'>+        end.last</div><div class='add'>+        return false unless debug_gem</div><div class='add'>+</div><div class='add'>+        # Discover debug/debug.so under extensions for Ruby 3.2+</div><div class='add'>+        ext_name = "/debug/debug.#{RbConfig::CONFIG['DLEXT']}"</div><div class='add'>+        ext_path = Gem.paths.path.flat_map do |path|</div><div class='add'>+          Dir.glob("#{path}/extensions/**/#{File.basename(debug_gem)}#{ext_name}")</div><div class='add'>+        end.first</div><div class='add'>+</div><div class='add'>+        # Attempt to forcibly load the bundled gem</div><div class='add'>+        if ext_path</div><div class='add'>+          $LOAD_PATH &lt;&lt; ext_path.delete_suffix(ext_name)</div><div class='add'>+        end</div><div class='add'>+        $LOAD_PATH &lt;&lt; "#{debug_gem}/lib"</div><div class='add'>+        begin</div><div class='add'>+          require "debug/session"</div><div class='add'>+          puts "Loaded #{File.basename(debug_gem)}"</div><div class='add'>+          true</div><div class='add'>+        rescue LoadError</div><div class='add'>+          false</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    class DebugCommand &lt; Debug</div><div class='add'>+      def self.category</div><div class='add'>+        "Debugging"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def self.description</div><div class='add'>+        command_name = self.name.split("::").last.downcase</div><div class='add'>+        "Start the debugger of debug.gem and run its `#{command_name}` command."</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/delete.rb b/lib/irb/cmd/delete.rb<br/>new file mode 100644<br/>index 0000000000..aeb26d2572<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/delete.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/delete.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "debug"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Delete &lt; DebugCommand</div><div class='add'>+      def execute(*args)</div><div class='add'>+        super(pre_cmds: ["delete", *args].join(" "))</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/edit.rb b/lib/irb/cmd/edit.rb<br/>new file mode 100644<br/>index 0000000000..0103891cf4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/edit.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/edit.rb</a></div><div class='hunk'>@@ -0,0 +1,61 @@</div><div class='add'>+require 'shellwords'</div><div class='add'>+require_relative "nop"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Edit &lt; Nop</div><div class='add'>+      category "Misc"</div><div class='add'>+      description 'Open a file with the editor command defined with `ENV["EDITOR"]`.'</div><div class='add'>+</div><div class='add'>+      class &lt;&lt; self</div><div class='add'>+        def transform_args(args)</div><div class='add'>+          # Return a string literal as is for backward compatibility</div><div class='add'>+          if args.nil? || args.empty? || string_literal?(args)</div><div class='add'>+            args</div><div class='add'>+          else # Otherwise, consider the input as a String for convenience</div><div class='add'>+            args.strip.dump</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def execute(*args)</div><div class='add'>+        path = args.first</div><div class='add'>+</div><div class='add'>+        if path.nil? &amp;&amp; (irb_path = @irb_context.irb_path)</div><div class='add'>+          path = irb_path</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        if !File.exist?(path)</div><div class='add'>+          require_relative "show_source"</div><div class='add'>+</div><div class='add'>+          source =</div><div class='add'>+            begin</div><div class='add'>+              ShowSource.find_source(path, @irb_context)</div><div class='add'>+            rescue NameError</div><div class='add'>+              # if user enters a path that doesn't exist, it'll cause NameError when passed here because find_source would try to evaluate it as well</div><div class='add'>+              # in this case, we should just ignore the error</div><div class='add'>+            end</div><div class='add'>+</div><div class='add'>+          if source &amp;&amp; File.exist?(source.file)</div><div class='add'>+            path = source.file</div><div class='add'>+          else</div><div class='add'>+            puts "Can not find file: #{path}"</div><div class='add'>+            return</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        if editor = ENV['EDITOR']</div><div class='add'>+          puts "command: '#{editor}'"</div><div class='add'>+          puts "   path: #{path}"</div><div class='add'>+          system(*Shellwords.split(editor), path)</div><div class='add'>+        else</div><div class='add'>+          puts "Can not find editor setting: ENV['EDITOR']"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/finish.rb b/lib/irb/cmd/finish.rb<br/>new file mode 100644<br/>index 0000000000..29f100feb5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/finish.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/finish.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "debug"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Finish &lt; DebugCommand</div><div class='add'>+      def execute(*args)</div><div class='add'>+        super(do_cmds: ["finish", *args].join(" "))</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/fork.rb b/lib/irb/cmd/fork.rb<br/>index ae4d51b5d1..255a670dce 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/cmd/fork.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/fork.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/fork.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/fork.rb</a></div><div class='hunk'>@@ -10,18 +10,20 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> </div><div class='add'>+require_relative "nop"</div><div class='ctx'> </div><div class='del'>-# :stopdoc:</div><div class='ctx'> module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='ctx'>   module ExtendCommand</div><div class='ctx'>     class Fork &lt; Nop</div><div class='ctx'>       def execute</div><div class='del'>-        pid = send ExtendCommand.irb_original_method_name("fork")</div><div class='add'>+        pid = __send__ ExtendCommand.irb_original_method_name("fork")</div><div class='ctx'>         unless pid</div><div class='ctx'>           class &lt;&lt; self</div><div class='ctx'>             alias_method :exit, ExtendCommand.irb_original_method_name('exit')</div><div class='ctx'>           end</div><div class='del'>-          if iterator?</div><div class='add'>+          if block_given?</div><div class='ctx'>             begin</div><div class='ctx'>               yield</div><div class='ctx'>             ensure</div><div class='hunk'>@@ -33,7 +35,6 @@ module IRB</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='del'>-end</div><div class='del'>-# :startdoc:</div><div class='del'>-</div><div class='ctx'> </div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/help.rb b/lib/irb/cmd/help.rb<br/>index 71590ee844..2a135cdb14 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/cmd/help.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/help.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/help.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/help.rb</a></div><div class='hunk'>@@ -9,17 +9,34 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require 'rdoc/ri/driver'</div><div class='del'>-</div><div class='ctx'> require_relative "nop"</div><div class='ctx'> </div><div class='del'>-# :stopdoc:</div><div class='ctx'> module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='ctx'>   module ExtendCommand</div><div class='ctx'>     class Help &lt; Nop</div><div class='del'>-      begin</div><div class='del'>-        Ri = RDoc::RI::Driver.new</div><div class='del'>-      rescue SystemExit</div><div class='add'>+      class &lt;&lt; self</div><div class='add'>+        def transform_args(args)</div><div class='add'>+          # Return a string literal as is for backward compatibility</div><div class='add'>+          if args.empty? || string_literal?(args)</div><div class='add'>+            args</div><div class='add'>+          else # Otherwise, consider the input as a String for convenience</div><div class='add'>+            args.strip.dump</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      category "Context"</div><div class='add'>+      description "Enter the mode to look up RI documents."</div><div class='add'>+</div><div class='add'>+      def execute(*names)</div><div class='add'>+        require 'rdoc/ri/driver'</div><div class='add'>+        opts = RDoc::RI::Driver.process_args([])</div><div class='add'>+        IRB::ExtendCommand::Help.const_set(:Ri, RDoc::RI::Driver.new(opts))</div><div class='add'>+      rescue LoadError, SystemExit</div><div class='add'>+        IRB::ExtendCommand::Help.remove_method(:execute)</div><div class='add'>+        # raise NoMethodError in ensure</div><div class='ctx'>       else</div><div class='ctx'>         def execute(*names)</div><div class='ctx'>           if names.empty?</div><div class='hunk'>@@ -35,8 +52,12 @@ module IRB</div><div class='ctx'>           end</div><div class='ctx'>           nil</div><div class='ctx'>         end</div><div class='add'>+        nil</div><div class='add'>+      ensure</div><div class='add'>+        execute(*names)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='ctx'> end</div><div class='del'>-# :startdoc:</div><div class='head'>diff --git a/lib/irb/cmd/info.rb b/lib/irb/cmd/info.rb<br/>new file mode 100644<br/>index 0000000000..2c0a32b34f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/info.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/info.rb</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "debug"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Info &lt; DebugCommand</div><div class='add'>+      def self.transform_args(args)</div><div class='add'>+        args&amp;.dump</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def execute(*args)</div><div class='add'>+        super(pre_cmds: ["info", *args].join(" "))</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/irb_info.rb b/lib/irb/cmd/irb_info.rb<br/>new file mode 100644<br/>index 0000000000..da11e8d40b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/irb_info.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/irb_info.rb</a></div><div class='hunk'>@@ -0,0 +1,37 @@</div><div class='add'>+# frozen_string_literal: false</div><div class='add'>+</div><div class='add'>+require_relative "nop"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class IrbInfo &lt; Nop</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Show information about IRB."</div><div class='add'>+</div><div class='add'>+      def execute</div><div class='add'>+        Class.new {</div><div class='add'>+          def inspect</div><div class='add'>+            str  = "Ruby version: #{RUBY_VERSION}\n"</div><div class='add'>+            str += "IRB version: #{IRB.version}\n"</div><div class='add'>+            str += "InputMethod: #{IRB.CurrentContext.io.inspect}\n"</div><div class='add'>+            str += ".irbrc path: #{IRB.rc_file}\n" if File.exist?(IRB.rc_file)</div><div class='add'>+            str += "RUBY_PLATFORM: #{RUBY_PLATFORM}\n"</div><div class='add'>+            str += "LANG env: #{ENV["LANG"]}\n" if ENV["LANG"] &amp;&amp; !ENV["LANG"].empty?</div><div class='add'>+            str += "LC_ALL env: #{ENV["LC_ALL"]}\n" if ENV["LC_ALL"] &amp;&amp; !ENV["LC_ALL"].empty?</div><div class='add'>+            str += "East Asian Ambiguous Width: #{Reline.ambiguous_width.inspect}\n"</div><div class='add'>+            if RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw|cygwin|bccwin|wince|emc/</div><div class='add'>+              codepage = `chcp`.b.sub(/.*: (\d+)\n/, '\1')</div><div class='add'>+              str += "Code page: #{codepage}\n"</div><div class='add'>+            end</div><div class='add'>+            str</div><div class='add'>+          end</div><div class='add'>+          alias_method :to_s, :inspect</div><div class='add'>+        }.new</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/load.rb b/lib/irb/cmd/load.rb<br/>index b6769a4124..2897bbd975 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/cmd/load.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/load.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/load.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/load.rb</a></div><div class='hunk'>@@ -13,21 +13,33 @@</div><div class='ctx'> require_relative "nop"</div><div class='ctx'> require_relative "../ext/loader"</div><div class='ctx'> </div><div class='del'>-# :stopdoc:</div><div class='ctx'> module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='ctx'>   module ExtendCommand</div><div class='del'>-    class Load &lt; Nop</div><div class='add'>+    class LoaderCommand &lt; Nop</div><div class='ctx'>       include IrbLoader</div><div class='ctx'> </div><div class='del'>-      def execute(file_name, priv = nil)</div><div class='del'>-        return irb_load(file_name, priv)</div><div class='add'>+      def raise_cmd_argument_error</div><div class='add'>+        raise CommandArgumentError.new("Please specify the file name.")</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    class Require &lt; Nop</div><div class='del'>-      include IrbLoader</div><div class='add'>+    class Load &lt; LoaderCommand</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Load a Ruby file."</div><div class='add'>+</div><div class='add'>+      def execute(file_name = nil, priv = nil)</div><div class='add'>+        raise_cmd_argument_error unless file_name</div><div class='add'>+        irb_load(file_name, priv)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-      def execute(file_name)</div><div class='add'>+    class Require &lt; LoaderCommand</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Require a Ruby file."</div><div class='add'>+      def execute(file_name = nil)</div><div class='add'>+        raise_cmd_argument_error unless file_name</div><div class='ctx'> </div><div class='ctx'>         rex = Regexp.new("#{Regexp.quote(file_name)}(\.o|\.rb)?")</div><div class='ctx'>         return false if $".find{|f| f =~ rex}</div><div class='hunk'>@@ -55,13 +67,16 @@ module IRB</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    class Source &lt; Nop</div><div class='del'>-      include IrbLoader</div><div class='del'>-      def execute(file_name)</div><div class='add'>+    class Source &lt; LoaderCommand</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Loads a given file in the current session."</div><div class='add'>+</div><div class='add'>+      def execute(file_name = nil)</div><div class='add'>+        raise_cmd_argument_error unless file_name</div><div class='add'>+</div><div class='ctx'>         source_file(file_name)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='del'>-</div><div class='add'>+  # :startdoc:</div><div class='ctx'> end</div><div class='del'>-# :startdoc:</div><div class='head'>diff --git a/lib/irb/cmd/ls.rb b/lib/irb/cmd/ls.rb<br/>new file mode 100644<br/>index 0000000000..b65fae2bf1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/ls.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/ls.rb</a></div><div class='hunk'>@@ -0,0 +1,116 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require "reline"</div><div class='add'>+require_relative "nop"</div><div class='add'>+require_relative "../color"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Ls &lt; Nop</div><div class='add'>+      category "Context"</div><div class='add'>+      description "Show methods, constants, and variables. `-g [query]` or `-G [query]` allows you to filter out the output."</div><div class='add'>+</div><div class='add'>+      def self.transform_args(args)</div><div class='add'>+        if match = args&amp;.match(/\A(?&lt;args&gt;.+\s|)(-g|-G)\s+(?&lt;grep&gt;[^\s]+)\s*\n\z/)</div><div class='add'>+          args = match[:args]</div><div class='add'>+          "#{args}#{',' unless args.chomp.empty?} grep: /#{match[:grep]}/"</div><div class='add'>+        else</div><div class='add'>+          args</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def execute(*arg, grep: nil)</div><div class='add'>+        o = Output.new(grep: grep)</div><div class='add'>+</div><div class='add'>+        obj    = arg.empty? ? irb_context.workspace.main : arg.first</div><div class='add'>+        locals = arg.empty? ? irb_context.workspace.binding.local_variables : []</div><div class='add'>+        klass  = (obj.class == Class || obj.class == Module ? obj : obj.class)</div><div class='add'>+</div><div class='add'>+        o.dump("constants", obj.constants) if obj.respond_to?(:constants)</div><div class='add'>+        dump_methods(o, klass, obj)</div><div class='add'>+        o.dump("instance variables", obj.instance_variables)</div><div class='add'>+        o.dump("class variables", klass.class_variables)</div><div class='add'>+        o.dump("locals", locals)</div><div class='add'>+        nil</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def dump_methods(o, klass, obj)</div><div class='add'>+        singleton_class = begin obj.singleton_class; rescue TypeError; nil end</div><div class='add'>+        maps = class_method_map((singleton_class || klass).ancestors)</div><div class='add'>+        maps.each do |mod, methods|</div><div class='add'>+          name = mod == singleton_class ? "#{klass}.methods" : "#{mod}#methods"</div><div class='add'>+          o.dump(name, methods)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def class_method_map(classes)</div><div class='add'>+        dumped = Array.new</div><div class='add'>+        classes.reject { |mod| mod &gt;= Object }.map do |mod|</div><div class='add'>+          methods = mod.public_instance_methods(false).select do |m|</div><div class='add'>+            dumped.push(m) unless dumped.include?(m)</div><div class='add'>+          end</div><div class='add'>+          [mod, methods]</div><div class='add'>+        end.reverse</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      class Output</div><div class='add'>+        MARGIN = "  "</div><div class='add'>+</div><div class='add'>+        def initialize(grep: nil)</div><div class='add'>+          @grep = grep</div><div class='add'>+          @line_width = screen_width - MARGIN.length # right padding</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def dump(name, strs)</div><div class='add'>+          strs = strs.grep(@grep) if @grep</div><div class='add'>+          strs = strs.sort</div><div class='add'>+          return if strs.empty?</div><div class='add'>+</div><div class='add'>+          # Attempt a single line</div><div class='add'>+          print "#{Color.colorize(name, [:BOLD, :BLUE])}: "</div><div class='add'>+          if fits_on_line?(strs, cols: strs.size, offset: "#{name}: ".length)</div><div class='add'>+            puts strs.join(MARGIN)</div><div class='add'>+            return</div><div class='add'>+          end</div><div class='add'>+          puts</div><div class='add'>+</div><div class='add'>+          # Dump with the largest # of columns that fits on a line</div><div class='add'>+          cols = strs.size</div><div class='add'>+          until fits_on_line?(strs, cols: cols, offset: MARGIN.length) || cols == 1</div><div class='add'>+            cols -= 1</div><div class='add'>+          end</div><div class='add'>+          widths = col_widths(strs, cols: cols)</div><div class='add'>+          strs.each_slice(cols) do |ss|</div><div class='add'>+            puts ss.map.with_index { |s, i| "#{MARGIN}%-#{widths[i]}s" % s }.join</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        private</div><div class='add'>+</div><div class='add'>+        def fits_on_line?(strs, cols:, offset: 0)</div><div class='add'>+          width = col_widths(strs, cols: cols).sum + MARGIN.length * (cols - 1)</div><div class='add'>+          width &lt;= @line_width - offset</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def col_widths(strs, cols:)</div><div class='add'>+          cols.times.map do |col|</div><div class='add'>+            (col...strs.size).step(cols).map do |i|</div><div class='add'>+              strs[i].length</div><div class='add'>+            end.max</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def screen_width</div><div class='add'>+          Reline.get_screen_size.last</div><div class='add'>+        rescue Errno::EINVAL # in `winsize': Invalid argument - &lt;STDIN&gt;</div><div class='add'>+          80</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      private_constant :Output</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/measure.rb b/lib/irb/cmd/measure.rb<br/>new file mode 100644<br/>index 0000000000..9122e2dac9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/measure.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/measure.rb</a></div><div class='hunk'>@@ -0,0 +1,48 @@</div><div class='add'>+require_relative "nop"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Measure &lt; Nop</div><div class='add'>+      category "Misc"</div><div class='add'>+      description "`measure` enables the mode to measure processing time. `measure :off` disables it."</div><div class='add'>+</div><div class='add'>+      def initialize(*args)</div><div class='add'>+        super(*args)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def execute(type = nil, arg = nil, &amp;block)</div><div class='add'>+        # Please check IRB.init_config in lib/irb/init.rb that sets</div><div class='add'>+        # IRB.conf[:MEASURE_PROC] to register default "measure" methods,</div><div class='add'>+        # "measure :time" (abbreviated as "measure") and "measure :stackprof".</div><div class='add'>+        case type</div><div class='add'>+        when :off</div><div class='add'>+          IRB.conf[:MEASURE] = nil</div><div class='add'>+          IRB.unset_measure_callback(arg)</div><div class='add'>+        when :list</div><div class='add'>+          IRB.conf[:MEASURE_CALLBACKS].each do |type_name, _, arg_val|</div><div class='add'>+            puts "- #{type_name}" + (arg_val ? "(#{arg_val.inspect})" : '')</div><div class='add'>+          end</div><div class='add'>+        when :on</div><div class='add'>+          IRB.conf[:MEASURE] = true</div><div class='add'>+          added = IRB.set_measure_callback(type, arg)</div><div class='add'>+          puts "#{added[0]} is added." if added</div><div class='add'>+        else</div><div class='add'>+          if block_given?</div><div class='add'>+            IRB.conf[:MEASURE] = true</div><div class='add'>+            added = IRB.set_measure_callback(&amp;block)</div><div class='add'>+            puts "#{added[0]} is added." if added</div><div class='add'>+          else</div><div class='add'>+            IRB.conf[:MEASURE] = true</div><div class='add'>+            added = IRB.set_measure_callback(type, arg)</div><div class='add'>+            puts "#{added[0]} is added." if added</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+        nil</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/next.rb b/lib/irb/cmd/next.rb<br/>new file mode 100644<br/>index 0000000000..d29c82e7fc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/next.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/next.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "debug"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Next &lt; DebugCommand</div><div class='add'>+      def execute(*args)</div><div class='add'>+        super(do_cmds: ["next", *args].join(" "))</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/nop.rb b/lib/irb/cmd/nop.rb<br/>index 9cf4337c28..c616c054a8 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/cmd/nop.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/nop.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/nop.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/nop.rb</a></div><div class='hunk'>@@ -9,15 +9,46 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='del'>-# :stopdoc:</div><div class='ctx'> module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='ctx'>   module ExtendCommand</div><div class='add'>+    class CommandArgumentError &lt; StandardError; end</div><div class='add'>+</div><div class='ctx'>     class Nop</div><div class='add'>+      class &lt;&lt; self</div><div class='add'>+        def category(category = nil)</div><div class='add'>+          @category = category if category</div><div class='add'>+          @category</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def description(description = nil)</div><div class='add'>+          @description = description if description</div><div class='add'>+          @description</div><div class='add'>+        end</div><div class='ctx'> </div><div class='add'>+        private</div><div class='ctx'> </div><div class='del'>-      def self.execute(conf, *opts)</div><div class='del'>-        command = new(conf)</div><div class='del'>-        command.execute(*opts)</div><div class='add'>+        def string_literal?(args)</div><div class='add'>+          sexp = Ripper.sexp(args)</div><div class='add'>+          sexp &amp;&amp; sexp.size == 2 &amp;&amp; sexp.last&amp;.first&amp;.first == :string_literal</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if RUBY_ENGINE == "ruby" &amp;&amp; RUBY_VERSION &gt;= "2.7.0"</div><div class='add'>+        def self.execute(conf, *opts, **kwargs, &amp;block)</div><div class='add'>+          command = new(conf)</div><div class='add'>+          command.execute(*opts, **kwargs, &amp;block)</div><div class='add'>+        rescue CommandArgumentError =&gt; e</div><div class='add'>+          puts e.message</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        def self.execute(conf, *opts, &amp;block)</div><div class='add'>+          command = new(conf)</div><div class='add'>+          command.execute(*opts, &amp;block)</div><div class='add'>+        rescue CommandArgumentError =&gt; e</div><div class='add'>+          puts e.message</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       def initialize(conf)</div><div class='hunk'>@@ -35,5 +66,6 @@ module IRB</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='ctx'> end</div><div class='del'>-# :startdoc:</div><div class='head'>diff --git a/lib/irb/cmd/pushws.rb b/lib/irb/cmd/pushws.rb<br/>index 187b276e48..41d2e705f1 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/cmd/pushws.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/pushws.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/pushws.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/pushws.rb</a></div><div class='hunk'>@@ -13,16 +13,23 @@</div><div class='ctx'> require_relative "nop"</div><div class='ctx'> require_relative "../ext/workspaces"</div><div class='ctx'> </div><div class='del'>-# :stopdoc:</div><div class='ctx'> module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='ctx'>   module ExtendCommand</div><div class='ctx'>     class Workspaces &lt; Nop</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Show workspaces."</div><div class='add'>+</div><div class='ctx'>       def execute(*obj)</div><div class='ctx'>         irb_context.workspaces.collect{|ws| ws.main}</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     class PushWorkspace &lt; Workspaces</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Push an object to the workspace stack."</div><div class='add'>+</div><div class='ctx'>       def execute(*obj)</div><div class='ctx'>         irb_context.push_workspace(*obj)</div><div class='ctx'>         super</div><div class='hunk'>@@ -30,12 +37,15 @@ module IRB</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     class PopWorkspace &lt; Workspaces</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Pop a workspace from the workspace stack."</div><div class='add'>+</div><div class='ctx'>       def execute(*obj)</div><div class='ctx'>         irb_context.pop_workspace(*obj)</div><div class='ctx'>         super</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='del'>-end</div><div class='del'>-# :startdoc:</div><div class='ctx'> </div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/show_cmds.rb b/lib/irb/cmd/show_cmds.rb<br/>new file mode 100644<br/>index 0000000000..acced27d48<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/show_cmds.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/show_cmds.rb</a></div><div class='hunk'>@@ -0,0 +1,39 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require "stringio"</div><div class='add'>+require_relative "nop"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class ShowCmds &lt; Nop</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "List all available commands and their description."</div><div class='add'>+</div><div class='add'>+      def execute(*args)</div><div class='add'>+        commands_info = IRB::ExtendCommandBundle.all_commands_info</div><div class='add'>+        commands_grouped_by_categories = commands_info.group_by { |cmd| cmd[:category] }</div><div class='add'>+        longest_cmd_name_length = commands_info.map { |c| c[:display_name] }.max { |a, b| a.length &lt;=&gt; b.length }.length</div><div class='add'>+</div><div class='add'>+        output = StringIO.new</div><div class='add'>+</div><div class='add'>+        commands_grouped_by_categories.each do |category, cmds|</div><div class='add'>+          output.puts Color.colorize(category, [:BOLD])</div><div class='add'>+</div><div class='add'>+          cmds.each do |cmd|</div><div class='add'>+            output.puts "  #{cmd[:display_name].to_s.ljust(longest_cmd_name_length)}    #{cmd[:description]}"</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          output.puts</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        puts output.string</div><div class='add'>+</div><div class='add'>+        nil</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/show_source.rb b/lib/irb/cmd/show_source.rb<br/>new file mode 100644<br/>index 0000000000..ea700be4bf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/show_source.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/show_source.rb</a></div><div class='hunk'>@@ -0,0 +1,112 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "nop"</div><div class='add'>+require_relative "../color"</div><div class='add'>+require_relative "../ruby-lex"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class ShowSource &lt; Nop</div><div class='add'>+      category "Context"</div><div class='add'>+      description "Show the source code of a given method or constant."</div><div class='add'>+</div><div class='add'>+      class &lt;&lt; self</div><div class='add'>+        def transform_args(args)</div><div class='add'>+          # Return a string literal as is for backward compatibility</div><div class='add'>+          if args.empty? || string_literal?(args)</div><div class='add'>+            args</div><div class='add'>+          else # Otherwise, consider the input as a String for convenience</div><div class='add'>+            args.strip.dump</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def find_source(str, irb_context)</div><div class='add'>+          case str</div><div class='add'>+          when /\A[A-Z]\w*(::[A-Z]\w*)*\z/ # Const::Name</div><div class='add'>+            eval(str, irb_context.workspace.binding) # trigger autoload</div><div class='add'>+            base = irb_context.workspace.binding.receiver.yield_self { |r| r.is_a?(Module) ? r : Object }</div><div class='add'>+            file, line = base.const_source_location(str) if base.respond_to?(:const_source_location) # Ruby 2.7+</div><div class='add'>+          when /\A(?&lt;owner&gt;[A-Z]\w*(::[A-Z]\w*)*)#(?&lt;method&gt;[^ :.]+)\z/ # Class#method</div><div class='add'>+            owner = eval(Regexp.last_match[:owner], irb_context.workspace.binding)</div><div class='add'>+            method = Regexp.last_match[:method]</div><div class='add'>+            if owner.respond_to?(:instance_method) &amp;&amp; owner.instance_methods.include?(method.to_sym)</div><div class='add'>+              file, line = owner.instance_method(method).source_location</div><div class='add'>+            end</div><div class='add'>+          when /\A((?&lt;receiver&gt;.+)(\.|::))?(?&lt;method&gt;[^ :.]+)\z/ # method, receiver.method, receiver::method</div><div class='add'>+            receiver = eval(Regexp.last_match[:receiver] || 'self', irb_context.workspace.binding)</div><div class='add'>+            method = Regexp.last_match[:method]</div><div class='add'>+            file, line = receiver.method(method).source_location if receiver.respond_to?(method)</div><div class='add'>+          end</div><div class='add'>+          if file &amp;&amp; line</div><div class='add'>+            Source.new(file: file, first_line: line, last_line: find_end(file, line))</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        private</div><div class='add'>+</div><div class='add'>+        def find_end(file, first_line)</div><div class='add'>+          return first_line unless File.exist?(file)</div><div class='add'>+          lex = RubyLex.new</div><div class='add'>+          lines = File.read(file).lines[(first_line - 1)..-1]</div><div class='add'>+          tokens = RubyLex.ripper_lex_without_warning(lines.join)</div><div class='add'>+          prev_tokens = []</div><div class='add'>+</div><div class='add'>+          # chunk with line number</div><div class='add'>+          tokens.chunk { |tok| tok.pos[0] }.each do |lnum, chunk|</div><div class='add'>+            code = lines[0..lnum].join</div><div class='add'>+            prev_tokens.concat chunk</div><div class='add'>+            continue = lex.process_continue(prev_tokens)</div><div class='add'>+            code_block_open = lex.check_code_block(code, prev_tokens)</div><div class='add'>+            if !continue &amp;&amp; !code_block_open</div><div class='add'>+              return first_line + lnum</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+          first_line</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def execute(str = nil)</div><div class='add'>+        unless str.is_a?(String)</div><div class='add'>+          puts "Error: Expected a string but got #{str.inspect}"</div><div class='add'>+          return</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        source = self.class.find_source(str, @irb_context)</div><div class='add'>+        if source &amp;&amp; File.exist?(source.file)</div><div class='add'>+          show_source(source)</div><div class='add'>+        else</div><div class='add'>+          puts "Error: Couldn't locate a definition for #{str}"</div><div class='add'>+        end</div><div class='add'>+        nil</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      # @param [IRB::ExtendCommand::ShowSource::Source] source</div><div class='add'>+      def show_source(source)</div><div class='add'>+        puts</div><div class='add'>+        puts "#{bold("From")}: #{source.file}:#{source.first_line}"</div><div class='add'>+        puts</div><div class='add'>+        code = IRB::Color.colorize_code(File.read(source.file))</div><div class='add'>+        puts code.lines[(source.first_line - 1)...source.last_line].join</div><div class='add'>+        puts</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def bold(str)</div><div class='add'>+        Color.colorize(str, [:BOLD])</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      Source = Struct.new(</div><div class='add'>+        :file,       # @param [String] - file name</div><div class='add'>+        :first_line, # @param [String] - first line</div><div class='add'>+        :last_line,  # @param [String] - last line</div><div class='add'>+        keyword_init: true,</div><div class='add'>+      )</div><div class='add'>+      private_constant :Source</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/step.rb b/lib/irb/cmd/step.rb<br/>new file mode 100644<br/>index 0000000000..2bc74a9d79<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/step.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/step.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "debug"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Step &lt; DebugCommand</div><div class='add'>+      def execute(*args)</div><div class='add'>+        super(do_cmds: ["step", *args].join(" "))</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/cmd/subirb.rb b/lib/irb/cmd/subirb.rb<br/>index 1e18607d1a..699b35fcb4 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/cmd/subirb.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/cmd/subirb.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/subirb.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/subirb.rb</a></div><div class='hunk'>@@ -10,34 +10,62 @@</div><div class='ctx'> #</div><div class='ctx'> </div><div class='ctx'> require_relative "nop"</div><div class='del'>-require_relative "../ext/multi-irb"</div><div class='ctx'> </div><div class='del'>-# :stopdoc:</div><div class='ctx'> module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='ctx'>   module ExtendCommand</div><div class='del'>-    class IrbCommand &lt; Nop</div><div class='add'>+    class MultiIRBCommand &lt; Nop</div><div class='add'>+      def initialize(conf)</div><div class='add'>+        super</div><div class='add'>+        extend_irb_context</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def extend_irb_context</div><div class='add'>+        # this extension patches IRB context like IRB.CurrentContext</div><div class='add'>+        require_relative "../ext/multi-irb"</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    class IrbCommand &lt; MultiIRBCommand</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Start a child IRB."</div><div class='add'>+</div><div class='ctx'>       def execute(*obj)</div><div class='ctx'>         IRB.irb(nil, *obj)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    class Jobs &lt; Nop</div><div class='add'>+    class Jobs &lt; MultiIRBCommand</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "List of current sessions."</div><div class='add'>+</div><div class='ctx'>       def execute</div><div class='ctx'>         IRB.JobManager</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    class Foreground &lt; Nop</div><div class='del'>-      def execute(key)</div><div class='add'>+    class Foreground &lt; MultiIRBCommand</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Switches to the session of the given number."</div><div class='add'>+</div><div class='add'>+      def execute(key = nil)</div><div class='add'>+        raise CommandArgumentError.new("Please specify the id of target IRB job (listed in the `jobs` command).") unless key</div><div class='ctx'>         IRB.JobManager.switch(key)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    class Kill &lt; Nop</div><div class='add'>+    class Kill &lt; MultiIRBCommand</div><div class='add'>+      category "IRB"</div><div class='add'>+      description "Kills the session with the given number."</div><div class='add'>+</div><div class='ctx'>       def execute(*keys)</div><div class='ctx'>         IRB.JobManager.kill(*keys)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='ctx'> end</div><div class='del'>-# :startdoc:</div><div class='head'>diff --git a/lib/irb/cmd/whereami.rb b/lib/irb/cmd/whereami.rb<br/>new file mode 100644<br/>index 0000000000..8f56ba073d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/cmd/whereami.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/cmd/whereami.rb</a></div><div class='hunk'>@@ -0,0 +1,25 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative "nop"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  module ExtendCommand</div><div class='add'>+    class Whereami &lt; Nop</div><div class='add'>+      category "Context"</div><div class='add'>+      description "Show the source code around binding.irb again."</div><div class='add'>+</div><div class='add'>+      def execute(*)</div><div class='add'>+        code = irb_context.workspace.code_around_binding</div><div class='add'>+        if code</div><div class='add'>+          puts code</div><div class='add'>+        else</div><div class='add'>+          puts "The current context doesn't have code."</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/color.rb b/lib/irb/color.rb<br/>new file mode 100644<br/>index 0000000000..6378e14856<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/color.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/color.rb</a></div><div class='hunk'>@@ -0,0 +1,266 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+require 'reline'</div><div class='add'>+require 'ripper'</div><div class='add'>+require_relative 'ruby-lex'</div><div class='add'>+</div><div class='add'>+module IRB # :nodoc:</div><div class='add'>+  module Color</div><div class='add'>+    CLEAR     = 0</div><div class='add'>+    BOLD      = 1</div><div class='add'>+    UNDERLINE = 4</div><div class='add'>+    REVERSE   = 7</div><div class='add'>+    RED       = 31</div><div class='add'>+    GREEN     = 32</div><div class='add'>+    YELLOW    = 33</div><div class='add'>+    BLUE      = 34</div><div class='add'>+    MAGENTA   = 35</div><div class='add'>+    CYAN      = 36</div><div class='add'>+</div><div class='add'>+    TOKEN_KEYWORDS = {</div><div class='add'>+      on_kw: ['nil', 'self', 'true', 'false', '__FILE__', '__LINE__', '__ENCODING__'],</div><div class='add'>+      on_const: ['ENV'],</div><div class='add'>+    }</div><div class='add'>+    private_constant :TOKEN_KEYWORDS</div><div class='add'>+</div><div class='add'>+    # A constant of all-bit 1 to match any Ripper's state in #dispatch_seq</div><div class='add'>+    ALL = -1</div><div class='add'>+    private_constant :ALL</div><div class='add'>+</div><div class='add'>+    begin</div><div class='add'>+      # Following pry's colors where possible, but sometimes having a compromise like making</div><div class='add'>+      # backtick and regexp as red (string's color, because they're sharing tokens).</div><div class='add'>+      TOKEN_SEQ_EXPRS = {</div><div class='add'>+        on_CHAR:            [[BLUE, BOLD],            ALL],</div><div class='add'>+        on_backtick:        [[RED, BOLD],             ALL],</div><div class='add'>+        on_comment:         [[BLUE, BOLD],            ALL],</div><div class='add'>+        on_const:           [[BLUE, BOLD, UNDERLINE], ALL],</div><div class='add'>+        on_embexpr_beg:     [[RED],                   ALL],</div><div class='add'>+        on_embexpr_end:     [[RED],                   ALL],</div><div class='add'>+        on_embvar:          [[RED],                   ALL],</div><div class='add'>+        on_float:           [[MAGENTA, BOLD],         ALL],</div><div class='add'>+        on_gvar:            [[GREEN, BOLD],           ALL],</div><div class='add'>+        on_heredoc_beg:     [[RED],                   ALL],</div><div class='add'>+        on_heredoc_end:     [[RED],                   ALL],</div><div class='add'>+        on_ident:           [[BLUE, BOLD],            Ripper::EXPR_ENDFN],</div><div class='add'>+        on_imaginary:       [[BLUE, BOLD],            ALL],</div><div class='add'>+        on_int:             [[BLUE, BOLD],            ALL],</div><div class='add'>+        on_kw:              [[GREEN],                 ALL],</div><div class='add'>+        on_label:           [[MAGENTA],               ALL],</div><div class='add'>+        on_label_end:       [[RED, BOLD],             ALL],</div><div class='add'>+        on_qsymbols_beg:    [[RED, BOLD],             ALL],</div><div class='add'>+        on_qwords_beg:      [[RED, BOLD],             ALL],</div><div class='add'>+        on_rational:        [[BLUE, BOLD],            ALL],</div><div class='add'>+        on_regexp_beg:      [[RED, BOLD],             ALL],</div><div class='add'>+        on_regexp_end:      [[RED, BOLD],             ALL],</div><div class='add'>+        on_symbeg:          [[YELLOW],                ALL],</div><div class='add'>+        on_symbols_beg:     [[RED, BOLD],             ALL],</div><div class='add'>+        on_tstring_beg:     [[RED, BOLD],             ALL],</div><div class='add'>+        on_tstring_content: [[RED],                   ALL],</div><div class='add'>+        on_tstring_end:     [[RED, BOLD],             ALL],</div><div class='add'>+        on_words_beg:       [[RED, BOLD],             ALL],</div><div class='add'>+        on_parse_error:     [[RED, REVERSE],          ALL],</div><div class='add'>+        compile_error:      [[RED, REVERSE],          ALL],</div><div class='add'>+        on_assign_error:    [[RED, REVERSE],          ALL],</div><div class='add'>+        on_alias_error:     [[RED, REVERSE],          ALL],</div><div class='add'>+        on_class_name_error:[[RED, REVERSE],          ALL],</div><div class='add'>+        on_param_error:     [[RED, REVERSE],          ALL],</div><div class='add'>+        on___end__:         [[GREEN],                 ALL],</div><div class='add'>+      }</div><div class='add'>+    rescue NameError</div><div class='add'>+      # Give up highlighting Ripper-incompatible older Ruby</div><div class='add'>+      TOKEN_SEQ_EXPRS = {}</div><div class='add'>+    end</div><div class='add'>+    private_constant :TOKEN_SEQ_EXPRS</div><div class='add'>+</div><div class='add'>+    ERROR_TOKENS = TOKEN_SEQ_EXPRS.keys.select { |k| k.to_s.end_with?('error') }</div><div class='add'>+    private_constant :ERROR_TOKENS</div><div class='add'>+</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      def colorable?</div><div class='add'>+        supported = $stdout.tty? &amp;&amp; (/mswin|mingw/ =~ RUBY_PLATFORM || (ENV.key?('TERM') &amp;&amp; ENV['TERM'] != 'dumb'))</div><div class='add'>+</div><div class='add'>+        # because ruby/debug also uses irb's color module selectively,</div><div class='add'>+        # irb won't be activated in that case.</div><div class='add'>+        if IRB.respond_to?(:conf)</div><div class='add'>+          supported &amp;&amp; IRB.conf.fetch(:USE_COLORIZE, true)</div><div class='add'>+        else</div><div class='add'>+          supported</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def inspect_colorable?(obj, seen: {}.compare_by_identity)</div><div class='add'>+        case obj</div><div class='add'>+        when String, Symbol, Regexp, Integer, Float, FalseClass, TrueClass, NilClass</div><div class='add'>+          true</div><div class='add'>+        when Hash</div><div class='add'>+          without_circular_ref(obj, seen: seen) do</div><div class='add'>+            obj.all? { |k, v| inspect_colorable?(k, seen: seen) &amp;&amp; inspect_colorable?(v, seen: seen) }</div><div class='add'>+          end</div><div class='add'>+        when Array</div><div class='add'>+          without_circular_ref(obj, seen: seen) do</div><div class='add'>+            obj.all? { |o| inspect_colorable?(o, seen: seen) }</div><div class='add'>+          end</div><div class='add'>+        when Range</div><div class='add'>+          inspect_colorable?(obj.begin, seen: seen) &amp;&amp; inspect_colorable?(obj.end, seen: seen)</div><div class='add'>+        when Module</div><div class='add'>+          !obj.name.nil?</div><div class='add'>+        else</div><div class='add'>+          false</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def clear(colorable: colorable?)</div><div class='add'>+        return '' unless colorable</div><div class='add'>+        "\e[#{CLEAR}m"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def colorize(text, seq, colorable: colorable?)</div><div class='add'>+        return text unless colorable</div><div class='add'>+        seq = seq.map { |s| "\e[#{const_get(s)}m" }.join('')</div><div class='add'>+        "#{seq}#{text}#{clear(colorable: colorable)}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # If `complete` is false (code is incomplete), this does not warn compile_error.</div><div class='add'>+      # This option is needed to avoid warning a user when the compile_error is happening</div><div class='add'>+      # because the input is not wrong but just incomplete.</div><div class='add'>+      def colorize_code(code, complete: true, ignore_error: false, colorable: colorable?, local_variables: [])</div><div class='add'>+        return code unless colorable</div><div class='add'>+</div><div class='add'>+        symbol_state = SymbolState.new</div><div class='add'>+        colored = +''</div><div class='add'>+        lvars_code = RubyLex.generate_local_variables_assign_code(local_variables)</div><div class='add'>+        code_with_lvars = lvars_code ? "#{lvars_code}\n#{code}" : code</div><div class='add'>+</div><div class='add'>+        scan(code_with_lvars, allow_last_error: !complete) do |token, str, expr|</div><div class='add'>+          # handle uncolorable code</div><div class='add'>+          if token.nil?</div><div class='add'>+            colored &lt;&lt; Reline::Unicode.escape_for_print(str)</div><div class='add'>+            next</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          # IRB::ColorPrinter skips colorizing fragments with any invalid token</div><div class='add'>+          if ignore_error &amp;&amp; ERROR_TOKENS.include?(token)</div><div class='add'>+            return Reline::Unicode.escape_for_print(code)</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          in_symbol = symbol_state.scan_token(token)</div><div class='add'>+          str.each_line do |line|</div><div class='add'>+            line = Reline::Unicode.escape_for_print(line)</div><div class='add'>+            if seq = dispatch_seq(token, expr, line, in_symbol: in_symbol)</div><div class='add'>+              colored &lt;&lt; seq.map { |s| "\e[#{s}m" }.join('')</div><div class='add'>+              colored &lt;&lt; line.sub(/\Z/, clear(colorable: colorable))</div><div class='add'>+            else</div><div class='add'>+              colored &lt;&lt; line</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        if lvars_code</div><div class='add'>+          raise "#{lvars_code.dump} should have no \\n" if lvars_code.include?("\n")</div><div class='add'>+          colored.sub!(/\A.+\n/, '') # delete_prefix lvars_code with colors</div><div class='add'>+        end</div><div class='add'>+        colored</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def without_circular_ref(obj, seen:, &amp;block)</div><div class='add'>+        return false if seen.key?(obj)</div><div class='add'>+        seen[obj] = true</div><div class='add'>+        block.call</div><div class='add'>+      ensure</div><div class='add'>+        seen.delete(obj)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def scan(code, allow_last_error:)</div><div class='add'>+        verbose, $VERBOSE = $VERBOSE, nil</div><div class='add'>+        RubyLex.compile_with_errors_suppressed(code) do |inner_code, line_no|</div><div class='add'>+          lexer = Ripper::Lexer.new(inner_code, '(ripper)', line_no)</div><div class='add'>+          byte_pos = 0</div><div class='add'>+          line_positions = [0]</div><div class='add'>+          inner_code.lines.each do |line|</div><div class='add'>+            line_positions &lt;&lt; line_positions.last + line.bytesize</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          on_scan = proc do |elem|</div><div class='add'>+            start_pos = line_positions[elem.pos[0] - 1] + elem.pos[1]</div><div class='add'>+</div><div class='add'>+            # yield uncolorable code</div><div class='add'>+            if byte_pos &lt; start_pos</div><div class='add'>+              yield(nil, inner_code.byteslice(byte_pos...start_pos), nil)</div><div class='add'>+            end</div><div class='add'>+</div><div class='add'>+            if byte_pos &lt;= start_pos</div><div class='add'>+              str = elem.tok</div><div class='add'>+              yield(elem.event, str, elem.state)</div><div class='add'>+              byte_pos = start_pos + str.bytesize</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          if lexer.respond_to?(:scan) # Ruby 2.7+</div><div class='add'>+            lexer.scan.each do |elem|</div><div class='add'>+              next if allow_last_error and /meets end of file|unexpected end-of-input/ =~ elem.message</div><div class='add'>+              on_scan.call(elem)</div><div class='add'>+            end</div><div class='add'>+          else</div><div class='add'>+            lexer.parse.sort_by(&amp;:pos).each do |elem|</div><div class='add'>+              on_scan.call(elem)</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+          # yield uncolorable DATA section</div><div class='add'>+          yield(nil, inner_code.byteslice(byte_pos...inner_code.bytesize), nil) if byte_pos &lt; inner_code.bytesize</div><div class='add'>+        end</div><div class='add'>+      ensure</div><div class='add'>+        $VERBOSE = verbose</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def dispatch_seq(token, expr, str, in_symbol:)</div><div class='add'>+        if ERROR_TOKENS.include?(token)</div><div class='add'>+          TOKEN_SEQ_EXPRS[token][0]</div><div class='add'>+        elsif in_symbol</div><div class='add'>+          [YELLOW]</div><div class='add'>+        elsif TOKEN_KEYWORDS.fetch(token, []).include?(str)</div><div class='add'>+          [CYAN, BOLD]</div><div class='add'>+        elsif (seq, exprs = TOKEN_SEQ_EXPRS[token]; (expr &amp; (exprs || 0)) != 0)</div><div class='add'>+          seq</div><div class='add'>+        else</div><div class='add'>+          nil</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # A class to manage a state to know whether the current token is for Symbol or not.</div><div class='add'>+    class SymbolState</div><div class='add'>+      def initialize</div><div class='add'>+        # Push `true` to detect Symbol. `false` to increase the nest level for non-Symbol.</div><div class='add'>+        @stack = []</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Return true if the token is a part of Symbol.</div><div class='add'>+      def scan_token(token)</div><div class='add'>+        prev_state = @stack.last</div><div class='add'>+        case token</div><div class='add'>+        when :on_symbeg, :on_symbols_beg, :on_qsymbols_beg</div><div class='add'>+          @stack &lt;&lt; true</div><div class='add'>+        when :on_ident, :on_op, :on_const, :on_ivar, :on_cvar, :on_gvar, :on_kw</div><div class='add'>+          if @stack.last # Pop only when it's Symbol</div><div class='add'>+            @stack.pop</div><div class='add'>+            return prev_state</div><div class='add'>+          end</div><div class='add'>+        when :on_tstring_beg</div><div class='add'>+          @stack &lt;&lt; false</div><div class='add'>+        when :on_embexpr_beg</div><div class='add'>+          @stack &lt;&lt; false</div><div class='add'>+          return prev_state</div><div class='add'>+        when :on_tstring_end # :on_tstring_end may close Symbol</div><div class='add'>+          @stack.pop</div><div class='add'>+          return prev_state</div><div class='add'>+        when :on_embexpr_end</div><div class='add'>+          @stack.pop</div><div class='add'>+        end</div><div class='add'>+        @stack.last</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    private_constant :SymbolState</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/color_printer.rb b/lib/irb/color_printer.rb<br/>new file mode 100644<br/>index 0000000000..1127bcecb4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/color_printer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/color_printer.rb</a></div><div class='hunk'>@@ -0,0 +1,50 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+require 'pp'</div><div class='add'>+require_relative 'color'</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  class ColorPrinter &lt; ::PP</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      def pp(obj, out = $&gt;, width = screen_width)</div><div class='add'>+        q = ColorPrinter.new(out, width)</div><div class='add'>+        q.guard_inspect_key {q.pp obj}</div><div class='add'>+        q.flush</div><div class='add'>+        out &lt;&lt; "\n"</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private</div><div class='add'>+</div><div class='add'>+      def screen_width</div><div class='add'>+        Reline.get_screen_size.last</div><div class='add'>+      rescue Errno::EINVAL # in `winsize': Invalid argument - &lt;STDIN&gt;</div><div class='add'>+        79</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def pp(obj)</div><div class='add'>+      if obj.is_a?(String)</div><div class='add'>+        # Avoid calling Ruby 2.4+ String#pretty_print that splits a string by "\n"</div><div class='add'>+        text(obj.inspect)</div><div class='add'>+      else</div><div class='add'>+        super</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def text(str, width = nil)</div><div class='add'>+      unless str.is_a?(String)</div><div class='add'>+        str = str.inspect</div><div class='add'>+      end</div><div class='add'>+      width ||= str.length</div><div class='add'>+</div><div class='add'>+      case str</div><div class='add'>+      when ''</div><div class='add'>+      when ',', '=&gt;', '[', ']', '{', '}', '..', '...', /\A@\w+\z/</div><div class='add'>+        super(str, width)</div><div class='add'>+      when /\A#&lt;/, '=', '&gt;'</div><div class='add'>+        super(Color.colorize(str, [:GREEN]), width)</div><div class='add'>+      else</div><div class='add'>+        super(Color.colorize_code(str, ignore_error: true), width)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/irb/completion.rb b/lib/irb/completion.rb<br/>index 390e7254dd..34640e17f9 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/completion.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/completion.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/completion.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/completion.rb</a></div><div class='hunk'>@@ -7,20 +7,43 @@</div><div class='ctx'> #       From Original Idea of shugo@ruby-lang.org</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require "readline"</div><div class='add'>+require_relative 'ruby-lex'</div><div class='ctx'> </div><div class='ctx'> module IRB</div><div class='ctx'>   module InputCompletor # :nodoc:</div><div class='add'>+    using Module.new {</div><div class='add'>+      refine ::Binding do</div><div class='add'>+        def eval_methods</div><div class='add'>+          ::Kernel.instance_method(:methods).bind(eval("self")).call</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def eval_private_methods</div><div class='add'>+          ::Kernel.instance_method(:private_methods).bind(eval("self")).call</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def eval_instance_variables</div><div class='add'>+          ::Kernel.instance_method(:instance_variables).bind(eval("self")).call</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        def eval_global_variables</div><div class='add'>+          ::Kernel.instance_method(:global_variables).bind(eval("self")).call</div><div class='add'>+        end</div><div class='ctx'> </div><div class='add'>+        def eval_class_constants</div><div class='add'>+          ::Module.instance_method(:constants).bind(eval("self.class")).call</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     # Set of reserved words used by Ruby, you should not use these for</div><div class='ctx'>     # constants or variables</div><div class='ctx'>     ReservedWords = %w[</div><div class='add'>+      __ENCODING__ __LINE__ __FILE__</div><div class='ctx'>       BEGIN END</div><div class='ctx'>       alias and</div><div class='ctx'>       begin break</div><div class='ctx'>       case class</div><div class='del'>-      def defined do</div><div class='add'>+      def defined? do</div><div class='ctx'>       else elsif end ensure</div><div class='ctx'>       false for</div><div class='ctx'>       if in</div><div class='hunk'>@@ -35,121 +58,287 @@ module IRB</div><div class='ctx'>       yield</div><div class='ctx'>     ]</div><div class='ctx'> </div><div class='del'>-    CompletionProc = proc { |input|</div><div class='del'>-      bind = IRB.conf[:MAIN_CONTEXT].workspace.binding</div><div class='add'>+    BASIC_WORD_BREAK_CHARACTERS = " \t\n`&gt;&lt;=;|&amp;{("</div><div class='add'>+</div><div class='add'>+    def self.absolute_path?(p) # TODO Remove this method after 2.6 EOL.</div><div class='add'>+      if File.respond_to?(:absolute_path?)</div><div class='add'>+        File.absolute_path?(p)</div><div class='add'>+      else</div><div class='add'>+        File.absolute_path(p) == p</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    GEM_PATHS =</div><div class='add'>+      if defined?(Gem::Specification)</div><div class='add'>+        Gem::Specification.latest_specs(true).map { |s|</div><div class='add'>+          s.require_paths.map { |p|</div><div class='add'>+            if absolute_path?(p)</div><div class='add'>+              p</div><div class='add'>+            else</div><div class='add'>+              File.join(s.full_gem_path, p)</div><div class='add'>+            end</div><div class='add'>+          }</div><div class='add'>+        }.flatten</div><div class='add'>+      else</div><div class='add'>+        []</div><div class='add'>+      end.freeze</div><div class='add'>+</div><div class='add'>+    def self.retrieve_gem_and_system_load_path</div><div class='add'>+      candidates = (GEM_PATHS | $LOAD_PATH)</div><div class='add'>+      candidates.map do |p|</div><div class='add'>+        if p.respond_to?(:to_path)</div><div class='add'>+          p.to_path</div><div class='add'>+        else</div><div class='add'>+          String(p) rescue nil</div><div class='add'>+        end</div><div class='add'>+      end.compact.sort</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.retrieve_files_to_require_from_load_path</div><div class='add'>+      @@files_from_load_path ||=</div><div class='add'>+        (</div><div class='add'>+          shortest = []</div><div class='add'>+          rest = retrieve_gem_and_system_load_path.each_with_object([]) { |path, result|</div><div class='add'>+            begin</div><div class='add'>+              names = Dir.glob("**/*.{rb,#{RbConfig::CONFIG['DLEXT']}}", base: path)</div><div class='add'>+            rescue Errno::ENOENT</div><div class='add'>+              nil</div><div class='add'>+            end</div><div class='add'>+            next if names.empty?</div><div class='add'>+            names.map! { |n| n.sub(/\.(rb|#{RbConfig::CONFIG['DLEXT']})\z/, '') }.sort!</div><div class='add'>+            shortest &lt;&lt; names.shift</div><div class='add'>+            result.concat(names)</div><div class='add'>+          }</div><div class='add'>+          shortest.sort! | rest</div><div class='add'>+        )</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def self.retrieve_files_to_require_relative_from_current_dir</div><div class='add'>+      @@files_from_current_dir ||= Dir.glob("**/*.{rb,#{RbConfig::CONFIG['DLEXT']}}", base: '.').map { |path|</div><div class='add'>+        path.sub(/\.(rb|#{RbConfig::CONFIG['DLEXT']})\z/, '')</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='ctx'> </div><div class='add'>+    CompletionRequireProc = lambda { |target, preposing = nil, postposing = nil|</div><div class='add'>+      if target =~ /\A(['"])([^'"]+)\Z/</div><div class='add'>+        quote = $1</div><div class='add'>+        actual_target = $2</div><div class='add'>+      else</div><div class='add'>+        return nil # It's not String literal</div><div class='add'>+      end</div><div class='add'>+      tokens = RubyLex.ripper_lex_without_warning(preposing.gsub(/\s*\z/, ''))</div><div class='add'>+      tok = nil</div><div class='add'>+      tokens.reverse_each do |t|</div><div class='add'>+        unless [:on_lparen, :on_sp, :on_ignored_sp, :on_nl, :on_ignored_nl, :on_comment].include?(t.event)</div><div class='add'>+          tok = t</div><div class='add'>+          break</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      result = []</div><div class='add'>+      if tok &amp;&amp; tok.event == :on_ident &amp;&amp; tok.state == Ripper::EXPR_CMDARG</div><div class='add'>+        case tok.tok</div><div class='add'>+        when 'require'</div><div class='add'>+          result = retrieve_files_to_require_from_load_path.select { |path|</div><div class='add'>+            path.start_with?(actual_target)</div><div class='add'>+          }.map { |path|</div><div class='add'>+            quote + path</div><div class='add'>+          }</div><div class='add'>+        when 'require_relative'</div><div class='add'>+          result = retrieve_files_to_require_relative_from_current_dir.select { |path|</div><div class='add'>+            path.start_with?(actual_target)</div><div class='add'>+          }.map { |path|</div><div class='add'>+            quote + path</div><div class='add'>+          }</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      result</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    CompletionProc = lambda { |target, preposing = nil, postposing = nil|</div><div class='add'>+      if preposing &amp;&amp; postposing</div><div class='add'>+        result = CompletionRequireProc.(target, preposing, postposing)</div><div class='add'>+        unless result</div><div class='add'>+          result = retrieve_completion_data(target).compact.map{ |i| i.encode(Encoding.default_external) }</div><div class='add'>+        end</div><div class='add'>+        result</div><div class='add'>+      else</div><div class='add'>+        retrieve_completion_data(target).compact.map{ |i| i.encode(Encoding.default_external) }</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    def self.retrieve_completion_data(input, bind: IRB.conf[:MAIN_CONTEXT].workspace.binding, doc_namespace: false)</div><div class='ctx'>       case input</div><div class='ctx'>       when /^((["'`]).*\2)\.([^.]*)$/</div><div class='ctx'>         # String</div><div class='ctx'>         receiver = $1</div><div class='del'>-        message = Regexp.quote($3)</div><div class='add'>+        message = $3</div><div class='ctx'> </div><div class='del'>-        candidates = String.instance_methods.collect{|m| m.to_s}</div><div class='del'>-        select_message(receiver, message, candidates)</div><div class='add'>+        if doc_namespace</div><div class='add'>+          "String.#{message}"</div><div class='add'>+        else</div><div class='add'>+          candidates = String.instance_methods.collect{|m| m.to_s}</div><div class='add'>+          select_message(receiver, message, candidates)</div><div class='add'>+        end</div><div class='ctx'> </div><div class='ctx'>       when /^(\/[^\/]*\/)\.([^.]*)$/</div><div class='ctx'>         # Regexp</div><div class='ctx'>         receiver = $1</div><div class='del'>-        message = Regexp.quote($2)</div><div class='add'>+        message = $2</div><div class='ctx'> </div><div class='del'>-        candidates = Regexp.instance_methods.collect{|m| m.to_s}</div><div class='del'>-        select_message(receiver, message, candidates)</div><div class='add'>+        if doc_namespace</div><div class='add'>+          "Regexp.#{message}"</div><div class='add'>+        else</div><div class='add'>+          candidates = Regexp.instance_methods.collect{|m| m.to_s}</div><div class='add'>+          select_message(receiver, message, candidates)</div><div class='add'>+        end</div><div class='ctx'> </div><div class='ctx'>       when /^([^\]]*\])\.([^.]*)$/</div><div class='ctx'>         # Array</div><div class='ctx'>         receiver = $1</div><div class='del'>-        message = Regexp.quote($2)</div><div class='add'>+        message = $2</div><div class='ctx'> </div><div class='del'>-        candidates = Array.instance_methods.collect{|m| m.to_s}</div><div class='del'>-        select_message(receiver, message, candidates)</div><div class='add'>+        if doc_namespace</div><div class='add'>+          "Array.#{message}"</div><div class='add'>+        else</div><div class='add'>+          candidates = Array.instance_methods.collect{|m| m.to_s}</div><div class='add'>+          select_message(receiver, message, candidates)</div><div class='add'>+        end</div><div class='ctx'> </div><div class='ctx'>       when /^([^\}]*\})\.([^.]*)$/</div><div class='ctx'>         # Proc or Hash</div><div class='ctx'>         receiver = $1</div><div class='del'>-        message = Regexp.quote($2)</div><div class='add'>+        message = $2</div><div class='ctx'> </div><div class='del'>-        candidates = Proc.instance_methods.collect{|m| m.to_s}</div><div class='del'>-        candidates |= Hash.instance_methods.collect{|m| m.to_s}</div><div class='del'>-        select_message(receiver, message, candidates)</div><div class='add'>+        if doc_namespace</div><div class='add'>+          ["Proc.#{message}", "Hash.#{message}"]</div><div class='add'>+        else</div><div class='add'>+          proc_candidates = Proc.instance_methods.collect{|m| m.to_s}</div><div class='add'>+          hash_candidates = Hash.instance_methods.collect{|m| m.to_s}</div><div class='add'>+          select_message(receiver, message, proc_candidates | hash_candidates)</div><div class='add'>+        end</div><div class='ctx'> </div><div class='ctx'>       when /^(:[^:.]*)$/</div><div class='ctx'>         # Symbol</div><div class='del'>-        if Symbol.respond_to?(:all_symbols)</div><div class='add'>+        if doc_namespace</div><div class='add'>+          nil</div><div class='add'>+        else</div><div class='ctx'>           sym = $1</div><div class='del'>-          candidates = Symbol.all_symbols.collect{|s| ":" + s.id2name}</div><div class='add'>+          candidates = Symbol.all_symbols.collect do |s|</div><div class='add'>+            ":" + s.id2name.encode(Encoding.default_external)</div><div class='add'>+          rescue EncodingError</div><div class='add'>+            # ignore</div><div class='add'>+          end</div><div class='ctx'>           candidates.grep(/^#{Regexp.quote(sym)}/)</div><div class='del'>-        else</div><div class='del'>-          []</div><div class='ctx'>         end</div><div class='del'>-</div><div class='del'>-      when /^::([A-Z][^:\.\(]*)$/</div><div class='add'>+      when /^::([A-Z][^:\.\(\)]*)$/</div><div class='ctx'>         # Absolute Constant or class methods</div><div class='ctx'>         receiver = $1</div><div class='add'>+</div><div class='ctx'>         candidates = Object.constants.collect{|m| m.to_s}</div><div class='del'>-        candidates.grep(/^#{receiver}/).collect{|e| "::" + e}</div><div class='add'>+</div><div class='add'>+        if doc_namespace</div><div class='add'>+          candidates.find { |i| i == receiver }</div><div class='add'>+        else</div><div class='add'>+          candidates.grep(/^#{receiver}/).collect{|e| "::" + e}</div><div class='add'>+        end</div><div class='ctx'> </div><div class='ctx'>       when /^([A-Z].*)::([^:.]*)$/</div><div class='ctx'>         # Constant or class methods</div><div class='ctx'>         receiver = $1</div><div class='del'>-        message = Regexp.quote($2)</div><div class='del'>-        begin</div><div class='del'>-          candidates = eval("#{receiver}.constants.collect{|m| m.to_s}", bind)</div><div class='del'>-          candidates |= eval("#{receiver}.methods.collect{|m| m.to_s}", bind)</div><div class='del'>-        rescue Exception</div><div class='del'>-          candidates = []</div><div class='add'>+        message = $2</div><div class='add'>+</div><div class='add'>+        if doc_namespace</div><div class='add'>+          "#{receiver}::#{message}"</div><div class='add'>+        else</div><div class='add'>+          begin</div><div class='add'>+            candidates = eval("#{receiver}.constants.collect{|m| m.to_s}", bind)</div><div class='add'>+            candidates |= eval("#{receiver}.methods.collect{|m| m.to_s}", bind)</div><div class='add'>+          rescue Exception</div><div class='add'>+            candidates = []</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          select_message(receiver, message, candidates.sort, "::")</div><div class='ctx'>         end</div><div class='del'>-        select_message(receiver, message, candidates, "::")</div><div class='ctx'> </div><div class='ctx'>       when /^(:[^:.]+)(\.|::)([^.]*)$/</div><div class='ctx'>         # Symbol</div><div class='ctx'>         receiver = $1</div><div class='ctx'>         sep = $2</div><div class='del'>-        message = Regexp.quote($3)</div><div class='add'>+        message = $3</div><div class='ctx'> </div><div class='del'>-        candidates = Symbol.instance_methods.collect{|m| m.to_s}</div><div class='del'>-        select_message(receiver, message, candidates, sep)</div><div class='add'>+        if doc_namespace</div><div class='add'>+          "Symbol.#{message}"</div><div class='add'>+        else</div><div class='add'>+          candidates = Symbol.instance_methods.collect{|m| m.to_s}</div><div class='add'>+          select_message(receiver, message, candidates, sep)</div><div class='add'>+        end</div><div class='ctx'> </div><div class='del'>-      when /^(-?(0[dbo])?[0-9_]+(\.[0-9_]+)?([eE]-?[0-9]+)?)(\.|::)([^.]*)$/</div><div class='add'>+      when /^(?&lt;num&gt;-?(?:0[dbo])?[0-9_]+(?:\.[0-9_]+)?(?:(?:[eE][+-]?[0-9]+)?i?|r)?)(?&lt;sep&gt;\.|::)(?&lt;mes&gt;[^.]*)$/</div><div class='ctx'>         # Numeric</div><div class='del'>-        receiver = $1</div><div class='del'>-        sep = $5</div><div class='del'>-        message = Regexp.quote($6)</div><div class='add'>+        receiver = $~[:num]</div><div class='add'>+        sep = $~[:sep]</div><div class='add'>+        message = $~[:mes]</div><div class='ctx'> </div><div class='ctx'>         begin</div><div class='del'>-          candidates = eval(receiver, bind).methods.collect{|m| m.to_s}</div><div class='add'>+          instance = eval(receiver, bind)</div><div class='add'>+</div><div class='add'>+          if doc_namespace</div><div class='add'>+            "#{instance.class.name}.#{message}"</div><div class='add'>+          else</div><div class='add'>+            candidates = instance.methods.collect{|m| m.to_s}</div><div class='add'>+            select_message(receiver, message, candidates, sep)</div><div class='add'>+          end</div><div class='ctx'>         rescue Exception</div><div class='del'>-          candidates = []</div><div class='add'>+          if doc_namespace</div><div class='add'>+            nil</div><div class='add'>+          else</div><div class='add'>+            []</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='del'>-        select_message(receiver, message, candidates, sep)</div><div class='ctx'> </div><div class='ctx'>       when /^(-?0x[0-9a-fA-F_]+)(\.|::)([^.]*)$/</div><div class='ctx'>         # Numeric(0xFFFF)</div><div class='ctx'>         receiver = $1</div><div class='ctx'>         sep = $2</div><div class='del'>-        message = Regexp.quote($3)</div><div class='add'>+        message = $3</div><div class='ctx'> </div><div class='ctx'>         begin</div><div class='del'>-          candidates = eval(receiver, bind).methods.collect{|m| m.to_s}</div><div class='add'>+          instance = eval(receiver, bind)</div><div class='add'>+          if doc_namespace</div><div class='add'>+            "#{instance.class.name}.#{message}"</div><div class='add'>+          else</div><div class='add'>+            candidates = instance.methods.collect{|m| m.to_s}</div><div class='add'>+            select_message(receiver, message, candidates, sep)</div><div class='add'>+          end</div><div class='ctx'>         rescue Exception</div><div class='del'>-          candidates = []</div><div class='add'>+          if doc_namespace</div><div class='add'>+            nil</div><div class='add'>+          else</div><div class='add'>+            []</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='del'>-        select_message(receiver, message, candidates, sep)</div><div class='ctx'> </div><div class='ctx'>       when /^(\$[^.]*)$/</div><div class='ctx'>         # global var</div><div class='del'>-        regmessage = Regexp.new(Regexp.quote($1))</div><div class='del'>-        candidates = global_variables.collect{|m| m.to_s}.grep(regmessage)</div><div class='add'>+        gvar = $1</div><div class='add'>+        all_gvars = global_variables.collect{|m| m.to_s}</div><div class='ctx'> </div><div class='del'>-      when /^([^."].*)(\.|::)([^.]*)$/</div><div class='add'>+        if doc_namespace</div><div class='add'>+          all_gvars.find{ |i| i == gvar }</div><div class='add'>+        else</div><div class='add'>+          all_gvars.grep(Regexp.new(Regexp.quote(gvar)))</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+      when /^([^.:"].*)(\.|::)([^.]*)$/</div><div class='ctx'>         # variable.func or func.func</div><div class='ctx'>         receiver = $1</div><div class='ctx'>         sep = $2</div><div class='del'>-        message = Regexp.quote($3)</div><div class='add'>+        message = $3</div><div class='ctx'> </div><div class='del'>-        gv = eval("global_variables", bind).collect{|m| m.to_s}</div><div class='del'>-        lv = eval("local_variables", bind).collect{|m| m.to_s}</div><div class='del'>-        iv = eval("instance_variables", bind).collect{|m| m.to_s}</div><div class='del'>-        cv = eval("self.class.constants", bind).collect{|m| m.to_s}</div><div class='add'>+        gv = bind.eval_global_variables.collect{|m| m.to_s}.push("true", "false", "nil")</div><div class='add'>+        lv = bind.local_variables.collect{|m| m.to_s}</div><div class='add'>+        iv = bind.eval_instance_variables.collect{|m| m.to_s}</div><div class='add'>+        cv = bind.eval_class_constants.collect{|m| m.to_s}</div><div class='ctx'> </div><div class='ctx'>         if (gv | lv | iv | cv).include?(receiver) or /^[A-Z]/ =~ receiver &amp;&amp; /\./ !~ receiver</div><div class='ctx'>           # foo.func and foo is var. OR</div><div class='hunk'>@@ -172,26 +361,84 @@ module IRB</div><div class='ctx'>           to_ignore = ignored_modules</div><div class='ctx'>           ObjectSpace.each_object(Module){|m|</div><div class='ctx'>             next if (to_ignore.include?(m) rescue true)</div><div class='add'>+            next unless m.respond_to?(:instance_methods) # JRuby has modules that represent java packages. They don't include many common ruby methods</div><div class='ctx'>             candidates.concat m.instance_methods(false).collect{|x| x.to_s}</div><div class='ctx'>           }</div><div class='ctx'>           candidates.sort!</div><div class='ctx'>           candidates.uniq!</div><div class='ctx'>         end</div><div class='del'>-        select_message(receiver, message, candidates, sep)</div><div class='add'>+</div><div class='add'>+        if doc_namespace</div><div class='add'>+          rec_class = rec.is_a?(Module) ? rec : rec.class</div><div class='add'>+          "#{rec_class.name}#{sep}#{candidates.find{ |i| i == message }}"</div><div class='add'>+        else</div><div class='add'>+          select_message(receiver, message, candidates, sep)</div><div class='add'>+        end</div><div class='ctx'> </div><div class='ctx'>       when /^\.([^.]*)$/</div><div class='ctx'>         # unknown(maybe String)</div><div class='ctx'> </div><div class='ctx'>         receiver = ""</div><div class='del'>-        message = Regexp.quote($1)</div><div class='add'>+        message = $1</div><div class='ctx'> </div><div class='ctx'>         candidates = String.instance_methods(true).collect{|m| m.to_s}</div><div class='del'>-        select_message(receiver, message, candidates)</div><div class='add'>+</div><div class='add'>+        if doc_namespace</div><div class='add'>+          "String.#{candidates.find{ |i| i == message }}"</div><div class='add'>+        else</div><div class='add'>+          select_message(receiver, message, candidates.sort)</div><div class='add'>+        end</div><div class='ctx'> </div><div class='ctx'>       else</div><div class='del'>-        candidates = eval("methods | private_methods | local_variables | instance_variables | self.class.constants", bind).collect{|m| m.to_s}</div><div class='add'>+        if doc_namespace</div><div class='add'>+          vars = (bind.local_variables | bind.eval_instance_variables).collect{|m| m.to_s}</div><div class='add'>+          perfect_match_var = vars.find{|m| m.to_s == input}</div><div class='add'>+          if perfect_match_var</div><div class='add'>+            eval("#{perfect_match_var}.class.name", bind)</div><div class='add'>+          else</div><div class='add'>+            candidates = (bind.eval_methods | bind.eval_private_methods | bind.local_variables | bind.eval_instance_variables | bind.eval_class_constants).collect{|m| m.to_s}</div><div class='add'>+            candidates |= ReservedWords</div><div class='add'>+            candidates.find{ |i| i == input }</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          candidates = (bind.eval_methods | bind.eval_private_methods | bind.local_variables | bind.eval_instance_variables | bind.eval_class_constants).collect{|m| m.to_s}</div><div class='add'>+          candidates |= ReservedWords</div><div class='add'>+          candidates.grep(/^#{Regexp.quote(input)}/).sort</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    PerfectMatchedProc = -&gt;(matched, bind: IRB.conf[:MAIN_CONTEXT].workspace.binding) {</div><div class='add'>+      begin</div><div class='add'>+        require 'rdoc'</div><div class='add'>+      rescue LoadError</div><div class='add'>+        return</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      RDocRIDriver ||= RDoc::RI::Driver.new</div><div class='ctx'> </div><div class='del'>-        (candidates|ReservedWords).grep(/^#{Regexp.quote(input)}/)</div><div class='add'>+      if matched =~ /\A(?:::)?RubyVM/ and not ENV['RUBY_YES_I_AM_NOT_A_NORMAL_USER']</div><div class='add'>+        IRB.__send__(:easter_egg)</div><div class='add'>+        return</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      namespace = retrieve_completion_data(matched, bind: bind, doc_namespace: true)</div><div class='add'>+      return unless namespace</div><div class='add'>+</div><div class='add'>+      if namespace.is_a?(Array)</div><div class='add'>+        out = RDoc::Markup::Document.new</div><div class='add'>+        namespace.each do |m|</div><div class='add'>+          begin</div><div class='add'>+            RDocRIDriver.add_method(out, m)</div><div class='add'>+          rescue RDoc::RI::Driver::NotFoundError</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+        RDocRIDriver.display(out)</div><div class='add'>+      else</div><div class='add'>+        begin</div><div class='add'>+          RDocRIDriver.display_names([namespace])</div><div class='add'>+        rescue RDoc::RI::Driver::NotFoundError</div><div class='add'>+        end</div><div class='ctx'>       end</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='hunk'>@@ -199,7 +446,7 @@ module IRB</div><div class='ctx'>     Operators = %w[% &amp; * ** + - / &lt; &lt;&lt; &lt;= &lt;=&gt; == === =~ &gt; &gt;= &gt;&gt; [] []= ^ ! != !~]</div><div class='ctx'> </div><div class='ctx'>     def self.select_message(receiver, message, candidates, sep = ".")</div><div class='del'>-      candidates.grep(/^#{message}/).collect do |e|</div><div class='add'>+      candidates.grep(/^#{Regexp.quote(message)}/).collect do |e|</div><div class='ctx'>         case e</div><div class='ctx'>         when /^[a-zA-Z_]/</div><div class='ctx'>           receiver + sep + e</div><div class='hunk'>@@ -225,7 +472,7 @@ module IRB</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      %i(IRB SLex RubyLex RubyToken).each do |sym|</div><div class='add'>+      %i(IRB RubyLex).each do |sym|</div><div class='ctx'>         next unless Object.const_defined?(sym)</div><div class='ctx'>         scanner.call(Object.const_get(sym))</div><div class='ctx'>       end</div><div class='hunk'>@@ -236,9 +483,3 @@ module IRB</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-</div><div class='del'>-if Readline.respond_to?("basic_word_break_characters=")</div><div class='del'>-  Readline.basic_word_break_characters= " \t\n`&gt;&lt;=;|&amp;{("</div><div class='del'>-end</div><div class='del'>-Readline.completion_append_character = nil</div><div class='del'>-Readline.completion_proc = IRB::InputCompletor::CompletionProc</div><div class='head'>diff --git a/lib/irb/context.rb b/lib/irb/context.rb<br/>index e8e6a118e6..91fbb2fcf1 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/context.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/context.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/context.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/context.rb</a></div><div class='hunk'>@@ -22,24 +22,46 @@ module IRB</div><div class='ctx'>     #</div><div class='ctx'>     # The optional +input_method+ argument:</div><div class='ctx'>     #</div><div class='del'>-    # +nil+::     uses stdin or Readline</div><div class='add'>+    # +nil+::     uses stdin or Reline or Readline</div><div class='ctx'>     # +String+::  uses a File</div><div class='ctx'>     # +other+::   uses this as InputMethod</div><div class='del'>-    def initialize(irb, workspace = nil, input_method = nil, output_method = nil)</div><div class='add'>+    def initialize(irb, workspace = nil, input_method = nil)</div><div class='ctx'>       @irb = irb</div><div class='ctx'>       if workspace</div><div class='ctx'>         @workspace = workspace</div><div class='ctx'>       else</div><div class='ctx'>         @workspace = WorkSpace.new</div><div class='ctx'>       end</div><div class='del'>-      @thread = Thread.current if defined? Thread</div><div class='add'>+      @thread = Thread.current</div><div class='ctx'> </div><div class='ctx'>       # copy of default configuration</div><div class='ctx'>       @ap_name = IRB.conf[:AP_NAME]</div><div class='ctx'>       @rc = IRB.conf[:RC]</div><div class='ctx'>       @load_modules = IRB.conf[:LOAD_MODULES]</div><div class='ctx'> </div><div class='del'>-      @use_readline = IRB.conf[:USE_READLINE]</div><div class='add'>+      if IRB.conf.has_key?(:USE_SINGLELINE)</div><div class='add'>+        @use_singleline = IRB.conf[:USE_SINGLELINE]</div><div class='add'>+      elsif IRB.conf.has_key?(:USE_READLINE) # backward compatibility</div><div class='add'>+        @use_singleline = IRB.conf[:USE_READLINE]</div><div class='add'>+      else</div><div class='add'>+        @use_singleline = nil</div><div class='add'>+      end</div><div class='add'>+      if IRB.conf.has_key?(:USE_MULTILINE)</div><div class='add'>+        @use_multiline = IRB.conf[:USE_MULTILINE]</div><div class='add'>+      elsif IRB.conf.has_key?(:USE_RELINE) # backward compatibility</div><div class='add'>+        warn &lt;&lt;~MSG.strip</div><div class='add'>+          USE_RELINE is deprecated, please use USE_MULTILINE instead.</div><div class='add'>+        MSG</div><div class='add'>+        @use_multiline = IRB.conf[:USE_RELINE]</div><div class='add'>+      elsif IRB.conf.has_key?(:USE_REIDLINE)</div><div class='add'>+        warn &lt;&lt;~MSG.strip</div><div class='add'>+          USE_REIDLINE is deprecated, please use USE_MULTILINE instead.</div><div class='add'>+        MSG</div><div class='add'>+        @use_multiline = IRB.conf[:USE_REIDLINE]</div><div class='add'>+      else</div><div class='add'>+        @use_multiline = nil</div><div class='add'>+      end</div><div class='add'>+      @use_autocomplete = IRB.conf[:USE_AUTOCOMPLETE]</div><div class='ctx'>       @verbose = IRB.conf[:VERBOSE]</div><div class='ctx'>       @io = nil</div><div class='ctx'> </div><div class='hunk'>@@ -64,24 +86,47 @@ module IRB</div><div class='ctx'> </div><div class='ctx'>       case input_method</div><div class='ctx'>       when nil</div><div class='del'>-        case use_readline?</div><div class='add'>+        @io = nil</div><div class='add'>+        case use_multiline?</div><div class='ctx'>         when nil</div><div class='del'>-          if (defined?(ReadlineInputMethod) &amp;&amp; STDIN.tty? &amp;&amp;</div><div class='del'>-              IRB.conf[:PROMPT_MODE] != :INF_RUBY)</div><div class='del'>-            @io = ReadlineInputMethod.new</div><div class='add'>+          if STDIN.tty? &amp;&amp; IRB.conf[:PROMPT_MODE] != :INF_RUBY &amp;&amp; !use_singleline?</div><div class='add'>+            # Both of multiline mode and singleline mode aren't specified.</div><div class='add'>+            @io = RelineInputMethod.new</div><div class='ctx'>           else</div><div class='del'>-            @io = StdioInputMethod.new</div><div class='add'>+            @io = nil</div><div class='ctx'>           end</div><div class='ctx'>         when false</div><div class='del'>-          @io = StdioInputMethod.new</div><div class='add'>+          @io = nil</div><div class='ctx'>         when true</div><div class='del'>-          if defined?(ReadlineInputMethod)</div><div class='del'>-            @io = ReadlineInputMethod.new</div><div class='add'>+          @io = RelineInputMethod.new</div><div class='add'>+        end</div><div class='add'>+        unless @io</div><div class='add'>+          case use_singleline?</div><div class='add'>+          when nil</div><div class='add'>+            if (defined?(ReadlineInputMethod) &amp;&amp; STDIN.tty? &amp;&amp;</div><div class='add'>+                IRB.conf[:PROMPT_MODE] != :INF_RUBY)</div><div class='add'>+              @io = ReadlineInputMethod.new</div><div class='add'>+            else</div><div class='add'>+              @io = nil</div><div class='add'>+            end</div><div class='add'>+          when false</div><div class='add'>+            @io = nil</div><div class='add'>+          when true</div><div class='add'>+            if defined?(ReadlineInputMethod)</div><div class='add'>+              @io = ReadlineInputMethod.new</div><div class='add'>+            else</div><div class='add'>+              @io = nil</div><div class='add'>+            end</div><div class='ctx'>           else</div><div class='del'>-            @io = StdioInputMethod.new</div><div class='add'>+            @io = nil</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='add'>+        @io = StdioInputMethod.new unless @io</div><div class='ctx'> </div><div class='add'>+      when '-'</div><div class='add'>+        @io = FileInputMethod.new($stdin)</div><div class='add'>+        @irb_name = '-'</div><div class='add'>+        @irb_path = '-'</div><div class='ctx'>       when String</div><div class='ctx'>         @io = FileInputMethod.new(input_method)</div><div class='ctx'>         @irb_name = File.basename(input_method)</div><div class='hunk'>@@ -91,17 +136,24 @@ module IRB</div><div class='ctx'>       end</div><div class='ctx'>       self.save_history = IRB.conf[:SAVE_HISTORY] if IRB.conf[:SAVE_HISTORY]</div><div class='ctx'> </div><div class='del'>-      if output_method</div><div class='del'>-        @output_method = output_method</div><div class='del'>-      else</div><div class='del'>-        @output_method = StdioOutputMethod.new</div><div class='del'>-      end</div><div class='add'>+      @extra_doc_dirs = IRB.conf[:EXTRA_DOC_DIRS]</div><div class='ctx'> </div><div class='ctx'>       @echo = IRB.conf[:ECHO]</div><div class='ctx'>       if @echo.nil?</div><div class='ctx'>         @echo = true</div><div class='ctx'>       end</div><div class='del'>-      self.debug_level = IRB.conf[:DEBUG_LEVEL]</div><div class='add'>+</div><div class='add'>+      @echo_on_assignment = IRB.conf[:ECHO_ON_ASSIGNMENT]</div><div class='add'>+      if @echo_on_assignment.nil?</div><div class='add'>+        @echo_on_assignment = :truncate</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      @newline_before_multiline_output = IRB.conf[:NEWLINE_BEFORE_MULTILINE_OUTPUT]</div><div class='add'>+      if @newline_before_multiline_output.nil?</div><div class='add'>+        @newline_before_multiline_output = true</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      @command_aliases = IRB.conf[:COMMAND_ALIASES]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # The top-level workspace, see WorkSpace#main</div><div class='hunk'>@@ -111,18 +163,18 @@ module IRB</div><div class='ctx'> </div><div class='ctx'>     # The toplevel workspace, see #home_workspace</div><div class='ctx'>     attr_reader :workspace_home</div><div class='del'>-    # WorkSpace in the current context</div><div class='add'>+    # WorkSpace in the current context.</div><div class='ctx'>     attr_accessor :workspace</div><div class='del'>-    # The current thread in this context</div><div class='add'>+    # The current thread in this context.</div><div class='ctx'>     attr_reader :thread</div><div class='del'>-    # The current input method</div><div class='add'>+    # The current input method.</div><div class='ctx'>     #</div><div class='del'>-    # Can be either StdioInputMethod, ReadlineInputMethod, FileInputMethod or</div><div class='del'>-    # other specified when the context is created. See ::new for more</div><div class='del'>-    # information on +input_method+.</div><div class='add'>+    # Can be either StdioInputMethod, ReadlineInputMethod,</div><div class='add'>+    # RelineInputMethod, FileInputMethod or other specified when the</div><div class='add'>+    # context is created. See ::new for more # information on +input_method+.</div><div class='ctx'>     attr_accessor :io</div><div class='ctx'> </div><div class='del'>-    # Current irb session</div><div class='add'>+    # Current irb session.</div><div class='ctx'>     attr_accessor :irb</div><div class='ctx'>     # A copy of the default &lt;code&gt;IRB.conf[:AP_NAME]&lt;/code&gt;</div><div class='ctx'>     attr_accessor :ap_name</div><div class='hunk'>@@ -137,26 +189,32 @@ module IRB</div><div class='ctx'>     # +input_method+ passed to Context.new</div><div class='ctx'>     attr_accessor :irb_path</div><div class='ctx'> </div><div class='del'>-    # Whether +Readline+ is enabled or not.</div><div class='add'>+    # Whether multiline editor mode is enabled or not.</div><div class='add'>+    #</div><div class='add'>+    # A copy of the default &lt;code&gt;IRB.conf[:USE_MULTILINE]&lt;/code&gt;</div><div class='add'>+    attr_reader :use_multiline</div><div class='add'>+    # Whether singleline editor mode is enabled or not.</div><div class='ctx'>     #</div><div class='del'>-    # A copy of the default &lt;code&gt;IRB.conf[:USE_READLINE]&lt;/code&gt;</div><div class='add'>+    # A copy of the default &lt;code&gt;IRB.conf[:USE_SINGLELINE]&lt;/code&gt;</div><div class='add'>+    attr_reader :use_singleline</div><div class='add'>+    # Whether colorization is enabled or not.</div><div class='ctx'>     #</div><div class='del'>-    # See #use_readline= for more information.</div><div class='del'>-    attr_reader :use_readline</div><div class='add'>+    # A copy of the default &lt;code&gt;IRB.conf[:USE_AUTOCOMPLETE]&lt;/code&gt;</div><div class='add'>+    attr_reader :use_autocomplete</div><div class='ctx'>     # A copy of the default &lt;code&gt;IRB.conf[:INSPECT_MODE]&lt;/code&gt;</div><div class='ctx'>     attr_reader :inspect_mode</div><div class='ctx'> </div><div class='ctx'>     # A copy of the default &lt;code&gt;IRB.conf[:PROMPT_MODE]&lt;/code&gt;</div><div class='ctx'>     attr_reader :prompt_mode</div><div class='del'>-    # Standard IRB prompt</div><div class='add'>+    # Standard IRB prompt.</div><div class='ctx'>     #</div><div class='ctx'>     # See IRB@Customizing+the+IRB+Prompt for more information.</div><div class='ctx'>     attr_accessor :prompt_i</div><div class='del'>-    # IRB prompt for continuated strings</div><div class='add'>+    # IRB prompt for continuated strings.</div><div class='ctx'>     #</div><div class='ctx'>     # See IRB@Customizing+the+IRB+Prompt for more information.</div><div class='ctx'>     attr_accessor :prompt_s</div><div class='del'>-    # IRB prompt for continuated statement (e.g. immediately after an +if+)</div><div class='add'>+    # IRB prompt for continuated statement. (e.g. immediately after an +if+)</div><div class='ctx'>     #</div><div class='ctx'>     # See IRB@Customizing+the+IRB+Prompt for more information.</div><div class='ctx'>     attr_accessor :prompt_c</div><div class='hunk'>@@ -165,17 +223,17 @@ module IRB</div><div class='ctx'>     # Can be either the default &lt;code&gt;IRB.conf[:AUTO_INDENT]&lt;/code&gt;, or the</div><div class='ctx'>     # mode set by #prompt_mode=</div><div class='ctx'>     #</div><div class='del'>-    # To enable auto-indentation in irb:</div><div class='add'>+    # To disable auto-indentation in irb:</div><div class='ctx'>     #</div><div class='del'>-    #     IRB.conf[:AUTO_INDENT] = true</div><div class='add'>+    #     IRB.conf[:AUTO_INDENT] = false</div><div class='ctx'>     #</div><div class='ctx'>     # or</div><div class='ctx'>     #</div><div class='del'>-    #     irb_context.auto_indent_mode = true</div><div class='add'>+    #     irb_context.auto_indent_mode = false</div><div class='ctx'>     #</div><div class='ctx'>     # or</div><div class='ctx'>     #</div><div class='del'>-    #     IRB.CurrentContext.auto_indent_mode = true</div><div class='add'>+    #     IRB.CurrentContext.auto_indent_mode = false</div><div class='ctx'>     #</div><div class='ctx'>     # See IRB@Configuration for more information.</div><div class='ctx'>     attr_accessor :auto_indent_mode</div><div class='hunk'>@@ -196,9 +254,12 @@ module IRB</div><div class='ctx'>     #</div><div class='ctx'>     # If set to +false+, &lt;code&gt;^D&lt;/code&gt; will quit irb.</div><div class='ctx'>     attr_accessor :ignore_eof</div><div class='add'>+    # Specify the installation locations of the ri file to be displayed in the</div><div class='add'>+    # document dialog.</div><div class='add'>+    attr_accessor :extra_doc_dirs</div><div class='ctx'>     # Whether to echo the return value to output or not.</div><div class='ctx'>     #</div><div class='del'>-    # Uses IRB.conf[:ECHO] if available, or defaults to +true+.</div><div class='add'>+    # Uses &lt;code&gt;IRB.conf[:ECHO]&lt;/code&gt; if available, or defaults to +true+.</div><div class='ctx'>     #</div><div class='ctx'>     #     puts "hello"</div><div class='ctx'>     #     # hello</div><div class='hunk'>@@ -207,14 +268,59 @@ module IRB</div><div class='ctx'>     #     puts "omg"</div><div class='ctx'>     #     # omg</div><div class='ctx'>     attr_accessor :echo</div><div class='add'>+    # Whether to echo for assignment expressions.</div><div class='add'>+    #</div><div class='add'>+    # If set to +false+, the value of assignment will not be shown.</div><div class='add'>+    #</div><div class='add'>+    # If set to +true+, the value of assignment will be shown.</div><div class='add'>+    #</div><div class='add'>+    # If set to +:truncate+, the value of assignment will be shown and truncated.</div><div class='add'>+    #</div><div class='add'>+    # It defaults to +:truncate+.</div><div class='add'>+    #</div><div class='add'>+    #     a = "omg"</div><div class='add'>+    #     #=&gt; omg</div><div class='add'>+    #</div><div class='add'>+    #     a = "omg" * 10</div><div class='add'>+    #     #=&gt; omgomgomgomgomgomgomg...</div><div class='add'>+    #</div><div class='add'>+    #     IRB.CurrentContext.echo_on_assignment = false</div><div class='add'>+    #     a = "omg"</div><div class='add'>+    #</div><div class='add'>+    #     IRB.CurrentContext.echo_on_assignment = true</div><div class='add'>+    #     a = "omg" * 10</div><div class='add'>+    #     #=&gt; omgomgomgomgomgomgomgomgomgomg</div><div class='add'>+    #</div><div class='add'>+    # To set the behaviour of showing on assignment in irb:</div><div class='add'>+    #</div><div class='add'>+    #     IRB.conf[:ECHO_ON_ASSIGNMENT] = :truncate or true or false</div><div class='add'>+    #</div><div class='add'>+    # or</div><div class='add'>+    #</div><div class='add'>+    #     irb_context.echo_on_assignment = :truncate or true or false</div><div class='add'>+    #</div><div class='add'>+    # or</div><div class='add'>+    #</div><div class='add'>+    #     IRB.CurrentContext.echo_on_assignment = :truncate or true or false</div><div class='add'>+    attr_accessor :echo_on_assignment</div><div class='add'>+    # Whether a newline is put before multiline output.</div><div class='add'>+    #</div><div class='add'>+    # Uses &lt;code&gt;IRB.conf[:NEWLINE_BEFORE_MULTILINE_OUTPUT]&lt;/code&gt; if available,</div><div class='add'>+    # or defaults to +true+.</div><div class='add'>+    #</div><div class='add'>+    #     "abc\ndef"</div><div class='add'>+    #     #=&gt;</div><div class='add'>+    #     abc</div><div class='add'>+    #     def</div><div class='add'>+    #     IRB.CurrentContext.newline_before_multiline_output = false</div><div class='add'>+    #     "abc\ndef"</div><div class='add'>+    #     #=&gt; abc</div><div class='add'>+    #     def</div><div class='add'>+    attr_accessor :newline_before_multiline_output</div><div class='ctx'>     # Whether verbose messages are displayed or not.</div><div class='ctx'>     #</div><div class='ctx'>     # A copy of the default &lt;code&gt;IRB.conf[:VERBOSE]&lt;/code&gt;</div><div class='ctx'>     attr_accessor :verbose</div><div class='del'>-    # The debug level of irb</div><div class='del'>-    #</div><div class='del'>-    # See #debug_level= for more information.</div><div class='del'>-    attr_reader :debug_level</div><div class='ctx'> </div><div class='ctx'>     # The limit of backtrace lines displayed as top +n+ and tail +n+.</div><div class='ctx'>     #</div><div class='hunk'>@@ -225,18 +331,37 @@ module IRB</div><div class='ctx'>     # See IRB@Command+line+options for more command line options.</div><div class='ctx'>     attr_accessor :back_trace_limit</div><div class='ctx'> </div><div class='del'>-    # Alias for #use_readline</div><div class='del'>-    alias use_readline? use_readline</div><div class='add'>+    # User-defined IRB command aliases</div><div class='add'>+    attr_accessor :command_aliases</div><div class='add'>+</div><div class='add'>+    # Alias for #use_multiline</div><div class='add'>+    alias use_multiline? use_multiline</div><div class='add'>+    # Alias for #use_singleline</div><div class='add'>+    alias use_singleline? use_singleline</div><div class='add'>+    # backward compatibility</div><div class='add'>+    alias use_reline use_multiline</div><div class='add'>+    # backward compatibility</div><div class='add'>+    alias use_reline? use_multiline</div><div class='add'>+    # backward compatibility</div><div class='add'>+    alias use_readline use_singleline</div><div class='add'>+    # backward compatibility</div><div class='add'>+    alias use_readline? use_singleline</div><div class='add'>+    # Alias for #use_autocomplete</div><div class='add'>+    alias use_autocomplete? use_autocomplete</div><div class='ctx'>     # Alias for #rc</div><div class='ctx'>     alias rc? rc</div><div class='ctx'>     alias ignore_sigint? ignore_sigint</div><div class='ctx'>     alias ignore_eof? ignore_eof</div><div class='ctx'>     alias echo? echo</div><div class='add'>+    alias echo_on_assignment? echo_on_assignment</div><div class='add'>+    alias newline_before_multiline_output? newline_before_multiline_output</div><div class='ctx'> </div><div class='ctx'>     # Returns whether messages are displayed or not.</div><div class='ctx'>     def verbose?</div><div class='ctx'>       if @verbose.nil?</div><div class='del'>-        if defined?(ReadlineInputMethod) &amp;&amp; @io.kind_of?(ReadlineInputMethod)</div><div class='add'>+        if @io.kind_of?(RelineInputMethod)</div><div class='add'>+          false</div><div class='add'>+        elsif defined?(ReadlineInputMethod) &amp;&amp; @io.kind_of?(ReadlineInputMethod)</div><div class='ctx'>           false</div><div class='ctx'>         elsif !STDIN.tty? or @io.kind_of?(FileInputMethod)</div><div class='ctx'>           true</div><div class='hunk'>@@ -249,9 +374,11 @@ module IRB</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Whether #verbose? is +true+, and +input_method+ is either</div><div class='del'>-    # StdioInputMethod or ReadlineInputMethod, see #io for more information.</div><div class='add'>+    # StdioInputMethod or RelineInputMethod or ReadlineInputMethod, see #io</div><div class='add'>+    # for more information.</div><div class='ctx'>     def prompting?</div><div class='ctx'>       verbose? || (STDIN.tty? &amp;&amp; @io.kind_of?(StdioInputMethod) ||</div><div class='add'>+                   @io.kind_of?(RelineInputMethod) ||</div><div class='ctx'>                    (defined?(ReadlineInputMethod) &amp;&amp; @io.kind_of?(ReadlineInputMethod)))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -276,6 +403,7 @@ module IRB</div><div class='ctx'>       @prompt_c = pconf[:PROMPT_C]</div><div class='ctx'>       @prompt_n = pconf[:PROMPT_N]</div><div class='ctx'>       @return_format = pconf[:RETURN]</div><div class='add'>+      @return_format = "%s\n" if @return_format == nil</div><div class='ctx'>       if ai = pconf.include?(:AUTO_INDENT)</div><div class='ctx'>         @auto_indent_mode = ai</div><div class='ctx'>       else</div><div class='hunk'>@@ -350,38 +478,27 @@ module IRB</div><div class='ctx'>       @inspect_mode</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Obsolete method.</div><div class='del'>-    #</div><div class='del'>-    # Can be set using the +--noreadline+ and +--readline+ command line</div><div class='del'>-    # options.</div><div class='del'>-    #</div><div class='del'>-    # See IRB@Command+line+options for more command line options.</div><div class='del'>-    def use_readline=(opt)</div><div class='del'>-      print "This method is obsolete."</div><div class='del'>-      print "Do nothing."</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Sets the debug level of irb</div><div class='del'>-    #</div><div class='del'>-    # Can also be set using the +--irb_debug+ command line option.</div><div class='del'>-    #</div><div class='del'>-    # See IRB@Command+line+options for more command line options.</div><div class='del'>-    def debug_level=(value)</div><div class='del'>-      @debug_level = value</div><div class='del'>-      RubyLex.debug_level = value</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Whether or not debug mode is enabled, see #debug_level=.</div><div class='del'>-    def debug?</div><div class='del'>-      @debug_level &gt; 0</div><div class='del'>-    end</div><div class='del'>-</div><div class='ctx'>     def evaluate(line, line_no, exception: nil) # :nodoc:</div><div class='ctx'>       @line_no = line_no</div><div class='ctx'>       if exception</div><div class='del'>-        line = "begin ::Kernel.raise _; rescue _.class; #{line}; end"</div><div class='add'>+        line_no -= 1</div><div class='add'>+        line = "begin ::Kernel.raise _; rescue _.class\n#{line}\n""end"</div><div class='ctx'>         @workspace.local_variable_set(:_, exception)</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      # Transform a non-identifier alias (@, $) or keywords (next, break)</div><div class='add'>+      command, args = line.split(/\s/, 2)</div><div class='add'>+      if original = command_aliases[command.to_sym]</div><div class='add'>+        line = line.gsub(/\A#{Regexp.escape(command)}/, original.to_s)</div><div class='add'>+        command = original</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      # Hook command-specific transformation</div><div class='add'>+      command_class = ExtendCommandBundle.load_command(command)</div><div class='add'>+      if command_class&amp;.respond_to?(:transform_args)</div><div class='add'>+        line = "#{command} #{command_class.transform_args(args)}"</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       set_last_value(@workspace.evaluate(self, line, irb_path, line_no))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -393,6 +510,8 @@ module IRB</div><div class='ctx'>     # Exits the current session, see IRB.irb_exit</div><div class='ctx'>     def exit(ret = 0)</div><div class='ctx'>       IRB.irb_exit(@irb, ret)</div><div class='add'>+    rescue UncaughtThrowError</div><div class='add'>+      super</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     NOPRINTING_IVARS = ["@last_value"] # :nodoc:</div><div class='hunk'>@@ -421,5 +540,21 @@ module IRB</div><div class='ctx'>     end</div><div class='ctx'>     alias __to_s__ to_s</div><div class='ctx'>     alias to_s inspect</div><div class='add'>+</div><div class='add'>+    def local_variables # :nodoc:</div><div class='add'>+      workspace.binding.local_variables</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Return true if it's aliased from the argument and it's not an identifier.</div><div class='add'>+    def symbol_alias?(command)</div><div class='add'>+      return nil if command.match?(/\A\w+\z/)</div><div class='add'>+      command_aliases.key?(command.to_sym)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Return true if the command supports transforming args</div><div class='add'>+    def transform_args?(command)</div><div class='add'>+      command = command_aliases.fetch(command.to_sym, command)</div><div class='add'>+      ExtendCommandBundle.load_command(command)&amp;.respond_to?(:transform_args)</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/irb/easter-egg.rb b/lib/irb/easter-egg.rb<br/>new file mode 100644<br/>index 0000000000..3e79692de9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/easter-egg.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/easter-egg.rb</a></div><div class='hunk'>@@ -0,0 +1,138 @@</div><div class='add'>+require "reline"</div><div class='add'>+</div><div class='add'>+module IRB</div><div class='add'>+  class &lt;&lt; self</div><div class='add'>+    class Vec</div><div class='add'>+      def initialize(x, y, z)</div><div class='add'>+        @x, @y, @z = x, y, z</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      attr_reader :x, :y, :z</div><div class='add'>+</div><div class='add'>+      def sub(other)</div><div class='add'>+        Vec.new(@x - other.x, @y - other.y, @z - other.z)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def dot(other)</div><div class='add'>+        @x*other.x + @y*other.y + @z*other.z</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def cross(other)</div><div class='add'>+        ox, oy, oz = other.x, other.y, other.z</div><div class='add'>+        Vec.new(@y*oz-@z*oy, @z*ox-@x*oz, @x*oy-@y*ox)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def normalize</div><div class='add'>+        r = Math.sqrt(self.dot(self))</div><div class='add'>+        Vec.new(@x / r, @y / r, @z / r)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    class Canvas</div><div class='add'>+      def initialize((h, w))</div><div class='add'>+        @data = (0..h-2).map { [0] * w }</div><div class='add'>+        @scale = [w / 2.0, h-2].min</div><div class='add'>+        @center = Complex(w / 2, h-2)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def line((x1, y1), (x2, y2))</div><div class='add'>+        p1 = Complex(x1, y1) / 2 * @scale + @center</div><div class='add'>+        p2 = Complex(x2, y2) / 2 * @scale + @center</div><div class='add'>+        line0(p1, p2)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      private def line0(p1, p2)</div><div class='add'>+        mid = (p1 + p2) / 2</div><div class='add'>+        if (p1 - p2).abs &lt; 1</div><div class='add'>+          x, y = mid.rect</div><div class='add'>+          @data[y / 2][x] |= (y % 2 &gt; 1 ? 2 : 1)</div><div class='add'>+        else</div><div class='add'>+          line0(p1, mid)</div><div class='add'>+          line0(p2, mid)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def draw</div><div class='add'>+        @data.each {|row| row.fill(0) }</div><div class='add'>+        yield</div><div class='add'>+        @data.map {|row| row.map {|n| " ',;"[n] }.join }.join("\n")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    class RubyModel</div><div class='add'>+      def initialize</div><div class='add'>+        @faces = init_ruby_model</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def init_ruby_model</div><div class='add'>+        cap_vertices    = (0..5).map {|i| Vec.new(*Complex.polar(1,  i        * Math::PI / 3).rect, 1) }</div><div class='add'>+        middle_vertices = (0..5).map {|i| Vec.new(*Complex.polar(2, (i + 0.5) * Math::PI / 3).rect, 0) }</div><div class='add'>+        bottom_vertex   = Vec.new(0, 0, -2)</div><div class='add'>+</div><div class='add'>+        faces = [cap_vertices]</div><div class='add'>+        6.times do |j|</div><div class='add'>+          i = j-1</div><div class='add'>+          faces &lt;&lt; [cap_vertices[i], middle_vertices[i], cap_vertices[j]]</div><div class='add'>+          faces &lt;&lt; [cap_vertices[j], middle_vertices[i], middle_vertices[j]]</div><div class='add'>+          faces &lt;&lt; [middle_vertices[i], bottom_vertex, middle_vertices[j]]</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        faces</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      def render_frame(i)</div><div class='add'>+        angle = i / 10.0</div><div class='add'>+        dir = Vec.new(*Complex.polar(1, angle).rect, Math.sin(angle)).normalize</div><div class='add'>+        dir2 = Vec.new(*Complex.polar(1, angle - Math::PI/2).rect, 0)</div><div class='add'>+        up = dir.cross(dir2)</div><div class='add'>+        nm = dir.cross(up)</div><div class='add'>+        @faces.each do |vertices|</div><div class='add'>+          v0, v1, v2, = vertices</div><div class='add'>+          if v1.sub(v0).cross(v2.sub(v0)).dot(dir) &gt; 0</div><div class='add'>+            points = vertices.map {|p| [nm.dot(p), up.dot(p)] }</div><div class='add'>+            (points + [points[0]]).each_cons(2) do |p1, p2|</div><div class='add'>+              yield p1, p2</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    private def easter_egg(type = nil)</div><div class='add'>+      type ||= [:logo, :dancing].sample</div><div class='add'>+      case type</div><div class='add'>+      when :logo</div><div class='add'>+        File.open(File.join(__dir__, 'ruby_logo.aa')) do |f|</div><div class='add'>+          require "rdoc"</div><div class='add'>+          RDoc::RI::Driver.new.page do |io|</div><div class='add'>+            IO.copy_stream(f, io)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      when :dancing</div><div class='add'>+        begin</div><div class='add'>+          canvas = Canvas.new(Reline.get_screen_size)</div><div class='add'>+          Reline::IOGate.set_winch_handler do</div><div class='add'>+            canvas = Canvas.new(Reline.get_screen_size)</div><div class='add'>+          end</div><div class='add'>+          ruby_model = RubyModel.new</div><div class='add'>+          print "\e[?1049h"</div><div class='add'>+          0.step do |i| # TODO (0..).each needs Ruby 2.6 or later</div><div class='add'>+            buff = canvas.draw do</div><div class='add'>+              ruby_model.render_frame(i) do |p1, p2|</div><div class='add'>+                canvas.line(p1, p2)</div><div class='add'>+              end</div><div class='add'>+            end</div><div class='add'>+            buff[0, 20] = "\e[0mPress Ctrl+C to stop\e[31m\e[1m"</div><div class='add'>+            print "\e[H" + buff</div><div class='add'>+            sleep 0.05</div><div class='add'>+          end</div><div class='add'>+        rescue Interrupt</div><div class='add'>+        ensure</div><div class='add'>+          print "\e[0m\e[?1049l"</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+IRB.__send__(:easter_egg, ARGV[0]&amp;.to_sym) if $0 == __FILE__</div><div class='head'>diff --git a/lib/irb/ext/change-ws.rb b/lib/irb/ext/change-ws.rb<br/>index 94bfe62bc0..4c57e44eab 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/ext/change-ws.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/change-ws.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/ext/change-ws.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/ext/change-ws.rb</a></div><div class='hunk'>@@ -43,4 +43,3 @@ module IRB # :nodoc:</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-</div><div class='head'>diff --git a/lib/irb/ext/history.rb b/lib/irb/ext/history.rb<br/>index 62363b13f4..fc304c6f6c 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/ext/history.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/history.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/ext/history.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/ext/history.rb</a></div><div class='hunk'>@@ -22,7 +22,7 @@ module IRB # :nodoc:</div><div class='ctx'>     def set_last_value(value)</div><div class='ctx'>       _set_last_value(value)</div><div class='ctx'> </div><div class='del'>-      if @eval_history</div><div class='add'>+      if defined?(@eval_history) &amp;&amp; @eval_history</div><div class='ctx'>         @eval_history_values.push @line_no, @last_value</div><div class='ctx'>         @workspace.evaluate self, "__ = IRB.CurrentContext.instance_eval{@eval_history_values}"</div><div class='ctx'>       end</div><div class='hunk'>@@ -30,9 +30,13 @@ module IRB # :nodoc:</div><div class='ctx'>       @last_value</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # The command result history limit.</div><div class='add'>+    remove_method :eval_history= if method_defined?(:eval_history=)</div><div class='add'>+    # The command result history limit. This method is not available until</div><div class='add'>+    # #eval_history= was called with non-nil value (directly or via</div><div class='add'>+    # setting &lt;code&gt;IRB.conf[:EVAL_HISTORY]&lt;/code&gt; in &lt;code&gt;.irbrc&lt;/code&gt;).</div><div class='ctx'>     attr_reader :eval_history</div><div class='del'>-    # Sets command result history limit.</div><div class='add'>+    # Sets command result history limit. Default value is set from</div><div class='add'>+    # &lt;code&gt;IRB.conf[:EVAL_HISTORY]&lt;/code&gt;.</div><div class='ctx'>     #</div><div class='ctx'>     # +no+ is an Integer or +nil+.</div><div class='ctx'>     #</div><div class='hunk'>@@ -41,6 +45,9 @@ module IRB # :nodoc:</div><div class='ctx'>     # If +no+ is 0, the number of history items is unlimited.</div><div class='ctx'>     #</div><div class='ctx'>     # If +no+ is +nil+, execution result history isn't used (default).</div><div class='add'>+    #</div><div class='add'>+    # History values are available via &lt;code&gt;__&lt;/code&gt; variable, see</div><div class='add'>+    # IRB::History.</div><div class='ctx'>     def eval_history=(no)</div><div class='ctx'>       if no</div><div class='ctx'>         if defined?(@eval_history) &amp;&amp; @eval_history</div><div class='hunk'>@@ -58,20 +65,51 @@ module IRB # :nodoc:</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  class History # :nodoc:</div><div class='del'>-</div><div class='del'>-    def initialize(size = 16)</div><div class='add'>+  # Represents history of results of previously evaluated commands.</div><div class='add'>+  #</div><div class='add'>+  # Available via &lt;code&gt;__&lt;/code&gt; variable, only if &lt;code&gt;IRB.conf[:EVAL_HISTORY]&lt;/code&gt;</div><div class='add'>+  # or &lt;code&gt;IRB::CurrentContext().eval_history&lt;/code&gt; is non-nil integer value</div><div class='add'>+  # (by default it is +nil+).</div><div class='add'>+  #</div><div class='add'>+  # Example (in `irb`):</div><div class='add'>+  #</div><div class='add'>+  #    # Initialize history</div><div class='add'>+  #    IRB::CurrentContext().eval_history = 10</div><div class='add'>+  #    # =&gt; 10</div><div class='add'>+  #</div><div class='add'>+  #    # Perform some commands...</div><div class='add'>+  #    1 + 2</div><div class='add'>+  #    # =&gt; 3</div><div class='add'>+  #    puts 'x'</div><div class='add'>+  #    # x</div><div class='add'>+  #    # =&gt; nil</div><div class='add'>+  #    raise RuntimeError</div><div class='add'>+  #    # ...error raised</div><div class='add'>+  #</div><div class='add'>+  #    # Inspect history (format is "&lt;item number&gt; &lt;evaluated value&gt;":</div><div class='add'>+  #    __</div><div class='add'>+  #    # =&gt; 1 10</div><div class='add'>+  #    # 2 3</div><div class='add'>+  #    # 3 nil</div><div class='add'>+  #</div><div class='add'>+  #    __[1]</div><div class='add'>+  #    # =&gt; 10</div><div class='add'>+  #</div><div class='add'>+  class History</div><div class='add'>+</div><div class='add'>+    def initialize(size = 16)  # :nodoc:</div><div class='ctx'>       @size = size</div><div class='ctx'>       @contents = []</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def size(size)</div><div class='add'>+    def size(size) # :nodoc:</div><div class='ctx'>       if size != 0 &amp;&amp; size &lt; @size</div><div class='ctx'>         @contents = @contents[@size - size .. @size]</div><div class='ctx'>       end</div><div class='ctx'>       @size = size</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Get one item of the content (both positive and negative indexes work).</div><div class='ctx'>     def [](idx)</div><div class='ctx'>       begin</div><div class='ctx'>         if idx &gt;= 0</div><div class='hunk'>@@ -84,14 +122,14 @@ module IRB # :nodoc:</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def push(no, val)</div><div class='add'>+    def push(no, val)  # :nodoc:</div><div class='ctx'>       @contents.push [no, val]</div><div class='ctx'>       @contents.shift if @size != 0 &amp;&amp; @contents.size &gt; @size</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     alias real_inspect inspect</div><div class='ctx'> </div><div class='del'>-    def inspect</div><div class='add'>+    def inspect  # :nodoc:</div><div class='ctx'>       if @contents.empty?</div><div class='ctx'>         return real_inspect</div><div class='ctx'>       end</div><div class='hunk'>@@ -115,5 +153,3 @@ module IRB # :nodoc:</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/lib/irb/ext/loader.rb b/lib/irb/ext/loader.rb<br/>index 840226db30..af028996e7 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/ext/loader.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/loader.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/ext/loader.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/ext/loader.rb</a></div><div class='hunk'>@@ -31,8 +31,31 @@ module IRB # :nodoc:</div><div class='ctx'>       load_file(path, priv)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    if File.respond_to?(:absolute_path?)</div><div class='add'>+      def absolute_path?(path)</div><div class='add'>+        File.absolute_path?(path)</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      separator =</div><div class='add'>+        if File::ALT_SEPARATOR</div><div class='add'>+          "[#{Regexp.quote(File::SEPARATOR + File::ALT_SEPARATOR)}]"</div><div class='add'>+        else</div><div class='add'>+          File::SEPARATOR</div><div class='add'>+        end</div><div class='add'>+      ABSOLUTE_PATH_PATTERN = # :nodoc:</div><div class='add'>+        case Dir.pwd</div><div class='add'>+        when /\A\w:/, /\A#{separator}{2}/</div><div class='add'>+          /\A(?:\w:|#{separator})#{separator}/</div><div class='add'>+        else</div><div class='add'>+          /\A#{separator}/</div><div class='add'>+        end</div><div class='add'>+      def absolute_path?(path)</div><div class='add'>+        ABSOLUTE_PATH_PATTERN =~ path</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     def search_file_from_ruby_path(fn) # :nodoc:</div><div class='del'>-      if /^#{Regexp.quote(File::Separator)}/ =~ fn</div><div class='add'>+      if absolute_path?(fn)</div><div class='ctx'>         return fn if File.exist?(fn)</div><div class='ctx'>         return nil</div><div class='ctx'>       end</div><div class='hunk'>@@ -50,16 +73,18 @@ module IRB # :nodoc:</div><div class='ctx'>     # See Irb#suspend_input_method for more information.</div><div class='ctx'>     def source_file(path)</div><div class='ctx'>       irb.suspend_name(path, File.basename(path)) do</div><div class='del'>-        irb.suspend_input_method(FileInputMethod.new(path)) do</div><div class='del'>-          |back_io|</div><div class='del'>-          irb.signal_status(:IN_LOAD) do</div><div class='del'>-            if back_io.kind_of?(FileInputMethod)</div><div class='del'>-              irb.eval_input</div><div class='del'>-            else</div><div class='del'>-              begin</div><div class='add'>+        FileInputMethod.open(path) do |io|</div><div class='add'>+          irb.suspend_input_method(io) do</div><div class='add'>+            |back_io|</div><div class='add'>+            irb.signal_status(:IN_LOAD) do</div><div class='add'>+              if back_io.kind_of?(FileInputMethod)</div><div class='ctx'>                 irb.eval_input</div><div class='del'>-              rescue LoadAbort</div><div class='del'>-                print "load abort!!\n"</div><div class='add'>+              else</div><div class='add'>+                begin</div><div class='add'>+                  irb.eval_input</div><div class='add'>+                rescue LoadAbort</div><div class='add'>+                  print "load abort!!\n"</div><div class='add'>+                end</div><div class='ctx'>               end</div><div class='ctx'>             end</div><div class='ctx'>           end</div><div class='hunk'>@@ -79,16 +104,18 @@ module IRB # :nodoc:</div><div class='ctx'>           ws = WorkSpace.new</div><div class='ctx'>         end</div><div class='ctx'>         irb.suspend_workspace(ws) do</div><div class='del'>-          irb.suspend_input_method(FileInputMethod.new(path)) do</div><div class='del'>-            |back_io|</div><div class='del'>-            irb.signal_status(:IN_LOAD) do</div><div class='del'>-              if back_io.kind_of?(FileInputMethod)</div><div class='del'>-                irb.eval_input</div><div class='del'>-              else</div><div class='del'>-                begin</div><div class='add'>+          FileInputMethod.open(path) do |io|</div><div class='add'>+            irb.suspend_input_method(io) do</div><div class='add'>+              |back_io|</div><div class='add'>+              irb.signal_status(:IN_LOAD) do</div><div class='add'>+                if back_io.kind_of?(FileInputMethod)</div><div class='ctx'>                   irb.eval_input</div><div class='del'>-                rescue LoadAbort</div><div class='del'>-                  print "load abort!!\n"</div><div class='add'>+                else</div><div class='add'>+                  begin</div><div class='add'>+                    irb.eval_input</div><div class='add'>+                  rescue LoadAbort</div><div class='add'>+                    print "load abort!!\n"</div><div class='add'>+                  end</div><div class='ctx'>                 end</div><div class='ctx'>               end</div><div class='ctx'>             end</div><div class='hunk'>@@ -126,4 +153,3 @@ module IRB # :nodoc:</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-</div><div class='head'>diff --git a/lib/irb/ext/multi-irb.rb b/lib/irb/ext/multi-irb.rb<br/>index 28d6fba832..e57d43a569 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/ext/multi-irb.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/multi-irb.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/ext/multi-irb.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/ext/multi-irb.rb</a></div><div class='hunk'>@@ -9,7 +9,6 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='del'>-IRB.fail CantShiftToMultiIrbMode unless defined?(Thread)</div><div class='ctx'> </div><div class='ctx'> module IRB</div><div class='ctx'>   class JobManager</div><div class='hunk'>@@ -67,8 +66,8 @@ module IRB</div><div class='ctx'>     # exception is raised.</div><div class='ctx'>     def switch(key)</div><div class='ctx'>       th, irb = search(key)</div><div class='del'>-      IRB.fail IrbAlreadyDead unless th.alive?</div><div class='del'>-      IRB.fail IrbSwitchedToCurrentThread if th == Thread.current</div><div class='add'>+      fail IrbAlreadyDead unless th.alive?</div><div class='add'>+      fail IrbSwitchedToCurrentThread if th == Thread.current</div><div class='ctx'>       @current_job = irb</div><div class='ctx'>       th.run</div><div class='ctx'>       Thread.stop</div><div class='hunk'>@@ -84,7 +83,7 @@ module IRB</div><div class='ctx'>     def kill(*keys)</div><div class='ctx'>       for key in keys</div><div class='ctx'>         th, _ = search(key)</div><div class='del'>-        IRB.fail IrbAlreadyDead unless th.alive?</div><div class='add'>+        fail IrbAlreadyDead unless th.alive?</div><div class='ctx'>         th.exit</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -114,7 +113,7 @@ module IRB</div><div class='ctx'>             else</div><div class='ctx'>               @jobs.find{|k, v| v.context.main.equal?(key)}</div><div class='ctx'>             end</div><div class='del'>-      IRB.fail NoSuchJob, key if job.nil?</div><div class='add'>+      fail NoSuchJob, key if job.nil?</div><div class='ctx'>       job</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -122,7 +121,7 @@ module IRB</div><div class='ctx'>     def delete(key)</div><div class='ctx'>       case key</div><div class='ctx'>       when Integer</div><div class='del'>-        IRB.fail NoSuchJob, key unless @jobs[key]</div><div class='add'>+        fail NoSuchJob, key unless @jobs[key]</div><div class='ctx'>         @jobs[key] = nil</div><div class='ctx'>       else</div><div class='ctx'>         catch(:EXISTS) do</div><div class='hunk'>@@ -135,7 +134,7 @@ module IRB</div><div class='ctx'>               throw :EXISTS</div><div class='ctx'>             end</div><div class='ctx'>           end</div><div class='del'>-          IRB.fail NoSuchJob, key</div><div class='add'>+          fail NoSuchJob, key</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>       until assoc = @jobs.pop; end unless @jobs.empty?</div><div class='head'>diff --git a/lib/irb/ext/save-history.rb b/lib/irb/ext/save-history.rb<br/>index ab64cf543d..9e7620545a 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/ext/save-history.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/save-history.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/ext/save-history.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/ext/save-history.rb</a></div><div class='hunk'>@@ -9,8 +9,6 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require "readline"</div><div class='del'>-</div><div class='ctx'> module IRB</div><div class='ctx'>   module HistorySavingAbility # :nodoc:</div><div class='ctx'>   end</div><div class='hunk'>@@ -27,7 +25,7 @@ module IRB</div><div class='ctx'>       IRB.conf[:SAVE_HISTORY]</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    remove_method :save_history= if respond_to?(:save_history=)</div><div class='add'>+    remove_method(:save_history=) if method_defined?(:save_history=)</div><div class='ctx'>     # Sets &lt;code&gt;IRB.conf[:SAVE_HISTORY]&lt;/code&gt; to the given +val+ and calls</div><div class='ctx'>     # #init_save_history with this context.</div><div class='ctx'>     #</div><div class='hunk'>@@ -58,8 +56,6 @@ module IRB</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   module HistorySavingAbility # :nodoc:</div><div class='del'>-    include Readline</div><div class='del'>-</div><div class='ctx'>     def HistorySavingAbility.extended(obj)</div><div class='ctx'>       IRB.conf[:AT_EXIT].push proc{obj.save_history}</div><div class='ctx'>       obj.load_history</div><div class='hunk'>@@ -67,19 +63,33 @@ module IRB</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def load_history</div><div class='add'>+      return unless self.class.const_defined?(:HISTORY)</div><div class='add'>+      history = self.class::HISTORY</div><div class='ctx'>       if history_file = IRB.conf[:HISTORY_FILE]</div><div class='ctx'>         history_file = File.expand_path(history_file)</div><div class='ctx'>       end</div><div class='ctx'>       history_file = IRB.rc_file("_history") unless history_file</div><div class='ctx'>       if File.exist?(history_file)</div><div class='del'>-        open(history_file) do |f|</div><div class='del'>-          f.each {|l| HISTORY &lt;&lt; l.chomp}</div><div class='add'>+        File.open(history_file, "r:#{IRB.conf[:LC_MESSAGES].encoding}") do |f|</div><div class='add'>+          f.each { |l|</div><div class='add'>+            l = l.chomp</div><div class='add'>+            if self.class == RelineInputMethod and history.last&amp;.end_with?("\\")</div><div class='add'>+              history.last.delete_suffix!("\\")</div><div class='add'>+              history.last &lt;&lt; "\n" &lt;&lt; l</div><div class='add'>+            else</div><div class='add'>+              history &lt;&lt; l</div><div class='add'>+            end</div><div class='add'>+          }</div><div class='ctx'>         end</div><div class='add'>+        @loaded_history_lines = history.size</div><div class='add'>+        @loaded_history_mtime = File.mtime(history_file)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def save_history</div><div class='del'>-      if num = IRB.conf[:SAVE_HISTORY] and (num = num.to_i) &gt; 0</div><div class='add'>+      return unless self.class.const_defined?(:HISTORY)</div><div class='add'>+      history = self.class::HISTORY</div><div class='add'>+      if num = IRB.conf[:SAVE_HISTORY] and (num = num.to_i) != 0</div><div class='ctx'>         if history_file = IRB.conf[:HISTORY_FILE]</div><div class='ctx'>           history_file = File.expand_path(history_file)</div><div class='ctx'>         end</div><div class='hunk'>@@ -91,13 +101,28 @@ module IRB</div><div class='ctx'>             File.chmod(0600, history_file)</div><div class='ctx'>           end</div><div class='ctx'>         rescue Errno::ENOENT</div><div class='add'>+        rescue Errno::EPERM</div><div class='add'>+          return</div><div class='ctx'>         rescue</div><div class='ctx'>           raise</div><div class='ctx'>         end</div><div class='ctx'> </div><div class='del'>-        open(history_file, 'w', 0600 ) do |f|</div><div class='del'>-          hist = HISTORY.to_a</div><div class='del'>-          f.puts(hist[-num..-1] || hist)</div><div class='add'>+        if File.exist?(history_file) &amp;&amp;</div><div class='add'>+           File.mtime(history_file) != @loaded_history_mtime</div><div class='add'>+          history = history[@loaded_history_lines..-1] if @loaded_history_lines</div><div class='add'>+          append_history = true</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        File.open(history_file, (append_history ? 'a' : 'w'), 0o600, encoding: IRB.conf[:LC_MESSAGES]&amp;.encoding) do |f|</div><div class='add'>+          hist = history.map{ |l| l.split("\n").join("\\\n") }</div><div class='add'>+          unless append_history</div><div class='add'>+            begin</div><div class='add'>+              hist = hist.last(num) if hist.size &gt; num and num &gt; 0</div><div class='add'>+            rescue RangeError # bignum too big to convert into `long'</div><div class='add'>+              # Do nothing because the bignum should be treated as inifinity</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+          f.puts(hist)</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='head'>diff --git a/lib/irb/ext/tracer.rb b/lib/irb/ext/tracer.rb<br/>index 200f77e341..67ac4bb965 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/ext/tracer.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/tracer.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/ext/tracer.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/ext/tracer.rb</a></div><div class='hunk'>@@ -9,7 +9,20 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='del'>-require "tracer"</div><div class='add'>+begin</div><div class='add'>+  require "tracer"</div><div class='add'>+rescue LoadError</div><div class='add'>+  $stderr.puts "Tracer extension of IRB is enabled but tracer gem doesn't found."</div><div class='add'>+  module IRB</div><div class='add'>+    TracerLoadError = true</div><div class='add'>+    class Context</div><div class='add'>+      def use_tracer=(opt)</div><div class='add'>+        # do nothing</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  return # This is about to disable loading below</div><div class='add'>+end</div><div class='ctx'> </div><div class='ctx'> module IRB</div><div class='ctx'> </div><div class='hunk'>@@ -69,4 +82,3 @@ module IRB</div><div class='ctx'> </div><div class='ctx'>   IRB.initialize_tracer</div><div class='ctx'> end</div><div class='del'>-</div><div class='head'>diff --git a/lib/irb/ext/use-loader.rb b/lib/irb/ext/use-loader.rb<br/>index cc71706671..1897bc89e0 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/ext/use-loader.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/use-loader.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/ext/use-loader.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/ext/use-loader.rb</a></div><div class='hunk'>@@ -20,10 +20,12 @@ end</div><div class='ctx'> </div><div class='ctx'> module IRB</div><div class='ctx'>   module ExtendCommandBundle</div><div class='add'>+    remove_method :irb_load if method_defined?(:irb_load)</div><div class='ctx'>     # Loads the given file similarly to Kernel#load, see IrbLoader#irb_load</div><div class='ctx'>     def irb_load(*opts, &amp;b)</div><div class='ctx'>       ExtendCommand::Load.execute(irb_context, *opts, &amp;b)</div><div class='ctx'>     end</div><div class='add'>+    remove_method :irb_require if method_defined?(:irb_require)</div><div class='ctx'>     # Loads the given file similarly to Kernel#require</div><div class='ctx'>     def irb_require(*opts, &amp;b)</div><div class='ctx'>       ExtendCommand::Require.execute(irb_context, *opts, &amp;b)</div><div class='hunk'>@@ -44,7 +46,8 @@ module IRB</div><div class='ctx'> </div><div class='ctx'>     alias use_loader? use_loader</div><div class='ctx'> </div><div class='del'>-    # Sets IRB.conf[:USE_LOADER]</div><div class='add'>+    remove_method :use_loader= if method_defined?(:use_loader=)</div><div class='add'>+    # Sets &lt;code&gt;IRB.conf[:USE_LOADER]&lt;/code&gt;</div><div class='ctx'>     #</div><div class='ctx'>     # See #use_loader for more information.</div><div class='ctx'>     def use_loader=(opt)</div><div class='hunk'>@@ -70,5 +73,3 @@ module IRB</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/lib/irb/ext/workspaces.rb b/lib/irb/ext/workspaces.rb<br/>index 5bd72c194f..730b58e64d 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/ext/workspaces.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ext/workspaces.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/ext/workspaces.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/ext/workspaces.rb</a></div><div class='hunk'>@@ -64,4 +64,3 @@ module IRB # :nodoc:</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-</div><div class='head'>diff --git a/lib/irb/extend-command.rb b/lib/irb/extend-command.rb<br/>index 064f21ba52..d0829a06c4 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/extend-command.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/extend-command.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/extend-command.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/extend-command.rb</a></div><div class='hunk'>@@ -32,7 +32,7 @@ module IRB # :nodoc:</div><div class='ctx'> </div><div class='ctx'>     # Displays current configuration.</div><div class='ctx'>     #</div><div class='del'>-    # Modifing the configuration is achieved by sending a message to IRB.conf.</div><div class='add'>+    # Modifying the configuration is achieved by sending a message to IRB.conf.</div><div class='ctx'>     def irb_context</div><div class='ctx'>       IRB.CurrentContext</div><div class='ctx'>     end</div><div class='hunk'>@@ -45,77 +45,200 @@ module IRB # :nodoc:</div><div class='ctx'>       [:quit, :irb_exit, OVERRIDE_PRIVATE_ONLY],</div><div class='ctx'>     ]</div><div class='ctx'> </div><div class='add'>+</div><div class='ctx'>     @EXTEND_COMMANDS = [</div><div class='del'>-      [:irb_current_working_workspace, :CurrentWorkingWorkspace, "irb/cmd/chws",</div><div class='del'>-       [:irb_print_working_workspace, OVERRIDE_ALL],</div><div class='del'>-       [:irb_cwws, OVERRIDE_ALL],</div><div class='del'>-       [:irb_pwws, OVERRIDE_ALL],</div><div class='del'>-       [:cwws, NO_OVERRIDE],</div><div class='del'>-       [:pwws, NO_OVERRIDE],</div><div class='del'>-       [:irb_current_working_binding, OVERRIDE_ALL],</div><div class='del'>-       [:irb_print_working_binding, OVERRIDE_ALL],</div><div class='del'>-       [:irb_cwb, OVERRIDE_ALL],</div><div class='del'>-       [:irb_pwb, OVERRIDE_ALL],</div><div class='del'>-    ],</div><div class='del'>-    [:irb_change_workspace, :ChangeWorkspace, "irb/cmd/chws",</div><div class='del'>-     [:irb_chws, OVERRIDE_ALL],</div><div class='del'>-     [:irb_cws, OVERRIDE_ALL],</div><div class='del'>-     [:chws, NO_OVERRIDE],</div><div class='del'>-     [:cws, NO_OVERRIDE],</div><div class='del'>-     [:irb_change_binding, OVERRIDE_ALL],</div><div class='del'>-     [:irb_cb, OVERRIDE_ALL],</div><div class='del'>-     [:cb, NO_OVERRIDE]],</div><div class='del'>-</div><div class='del'>-    [:irb_workspaces, :Workspaces, "irb/cmd/pushws",</div><div class='del'>-     [:workspaces, NO_OVERRIDE],</div><div class='del'>-     [:irb_bindings, OVERRIDE_ALL],</div><div class='del'>-     [:bindings, NO_OVERRIDE]],</div><div class='del'>-    [:irb_push_workspace, :PushWorkspace, "irb/cmd/pushws",</div><div class='del'>-     [:irb_pushws, OVERRIDE_ALL],</div><div class='del'>-     [:pushws, NO_OVERRIDE],</div><div class='del'>-     [:irb_push_binding, OVERRIDE_ALL],</div><div class='del'>-     [:irb_pushb, OVERRIDE_ALL],</div><div class='del'>-     [:pushb, NO_OVERRIDE]],</div><div class='del'>-    [:irb_pop_workspace, :PopWorkspace, "irb/cmd/pushws",</div><div class='del'>-     [:irb_popws, OVERRIDE_ALL],</div><div class='del'>-     [:popws, NO_OVERRIDE],</div><div class='del'>-     [:irb_pop_binding, OVERRIDE_ALL],</div><div class='del'>-     [:irb_popb, OVERRIDE_ALL],</div><div class='del'>-     [:popb, NO_OVERRIDE]],</div><div class='del'>-</div><div class='del'>-    [:irb_load, :Load, "irb/cmd/load"],</div><div class='del'>-    [:irb_require, :Require, "irb/cmd/load"],</div><div class='del'>-    [:irb_source, :Source, "irb/cmd/load",</div><div class='del'>-     [:source, NO_OVERRIDE]],</div><div class='del'>-</div><div class='del'>-    [:irb, :IrbCommand, "irb/cmd/subirb"],</div><div class='del'>-    [:irb_jobs, :Jobs, "irb/cmd/subirb",</div><div class='del'>-     [:jobs, NO_OVERRIDE]],</div><div class='del'>-    [:irb_fg, :Foreground, "irb/cmd/subirb",</div><div class='del'>-     [:fg, NO_OVERRIDE]],</div><div class='del'>-    [:irb_kill, :Kill, "irb/cmd/subirb",</div><div class='del'>-     [:kill, OVERRIDE_PRIVATE_ONLY]],</div><div class='del'>-</div><div class='del'>-    [:irb_help, :Help, "irb/cmd/help",</div><div class='del'>-     [:help, NO_OVERRIDE]],</div><div class='add'>+      [</div><div class='add'>+        :irb_current_working_workspace, :CurrentWorkingWorkspace, "cmd/chws",</div><div class='add'>+        [:cwws, NO_OVERRIDE],</div><div class='add'>+        [:pwws, NO_OVERRIDE],</div><div class='add'>+        [:irb_print_working_workspace, OVERRIDE_ALL],</div><div class='add'>+        [:irb_cwws, OVERRIDE_ALL],</div><div class='add'>+        [:irb_pwws, OVERRIDE_ALL],</div><div class='add'>+        [:irb_current_working_binding, OVERRIDE_ALL],</div><div class='add'>+        [:irb_print_working_binding, OVERRIDE_ALL],</div><div class='add'>+        [:irb_cwb, OVERRIDE_ALL],</div><div class='add'>+        [:irb_pwb, OVERRIDE_ALL],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_change_workspace, :ChangeWorkspace, "cmd/chws",</div><div class='add'>+        [:chws, NO_OVERRIDE],</div><div class='add'>+        [:cws, NO_OVERRIDE],</div><div class='add'>+        [:irb_chws, OVERRIDE_ALL],</div><div class='add'>+        [:irb_cws, OVERRIDE_ALL],</div><div class='add'>+        [:irb_change_binding, OVERRIDE_ALL],</div><div class='add'>+        [:irb_cb, OVERRIDE_ALL],</div><div class='add'>+        [:cb, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+</div><div class='add'>+      [</div><div class='add'>+        :irb_workspaces, :Workspaces, "cmd/pushws",</div><div class='add'>+        [:workspaces, NO_OVERRIDE],</div><div class='add'>+        [:irb_bindings, OVERRIDE_ALL],</div><div class='add'>+        [:bindings, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_push_workspace, :PushWorkspace, "cmd/pushws",</div><div class='add'>+        [:pushws, NO_OVERRIDE],</div><div class='add'>+        [:irb_pushws, OVERRIDE_ALL],</div><div class='add'>+        [:irb_push_binding, OVERRIDE_ALL],</div><div class='add'>+        [:irb_pushb, OVERRIDE_ALL],</div><div class='add'>+        [:pushb, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_pop_workspace, :PopWorkspace, "cmd/pushws",</div><div class='add'>+        [:popws, NO_OVERRIDE],</div><div class='add'>+        [:irb_popws, OVERRIDE_ALL],</div><div class='add'>+        [:irb_pop_binding, OVERRIDE_ALL],</div><div class='add'>+        [:irb_popb, OVERRIDE_ALL],</div><div class='add'>+        [:popb, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+</div><div class='add'>+      [</div><div class='add'>+        :irb_load, :Load, "cmd/load"],</div><div class='add'>+      [</div><div class='add'>+        :irb_require, :Require, "cmd/load"],</div><div class='add'>+      [</div><div class='add'>+        :irb_source, :Source, "cmd/load",</div><div class='add'>+        [:source, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+</div><div class='add'>+      [</div><div class='add'>+        :irb, :IrbCommand, "cmd/subirb"],</div><div class='add'>+      [</div><div class='add'>+        :irb_jobs, :Jobs, "cmd/subirb",</div><div class='add'>+        [:jobs, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_fg, :Foreground, "cmd/subirb",</div><div class='add'>+        [:fg, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_kill, :Kill, "cmd/subirb",</div><div class='add'>+        [:kill, OVERRIDE_PRIVATE_ONLY],</div><div class='add'>+      ],</div><div class='add'>+</div><div class='add'>+      [</div><div class='add'>+        :irb_debug, :Debug, "cmd/debug",</div><div class='add'>+        [:debug, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_edit, :Edit, "cmd/edit",</div><div class='add'>+        [:edit, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_break, :Break, "cmd/break",</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_catch, :Catch, "cmd/catch",</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_next, :Next, "cmd/next"</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_delete, :Delete, "cmd/delete",</div><div class='add'>+        [:delete, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_step, :Step, "cmd/step",</div><div class='add'>+        [:step, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_continue, :Continue, "cmd/continue",</div><div class='add'>+        [:continue, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_finish, :Finish, "cmd/finish",</div><div class='add'>+        [:finish, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_backtrace, :Backtrace, "cmd/backtrace",</div><div class='add'>+        [:backtrace, NO_OVERRIDE],</div><div class='add'>+        [:bt, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_debug_info, :Info, "cmd/info",</div><div class='add'>+        [:info, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+</div><div class='add'>+      [</div><div class='add'>+        :irb_help, :Help, "cmd/help",</div><div class='add'>+        [:show_doc, NO_OVERRIDE],</div><div class='add'>+        [:help, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+</div><div class='add'>+      [</div><div class='add'>+        :irb_info, :IrbInfo, "cmd/irb_info"</div><div class='add'>+      ],</div><div class='add'>+</div><div class='add'>+      [</div><div class='add'>+        :irb_ls, :Ls, "cmd/ls",</div><div class='add'>+        [:ls, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='ctx'> </div><div class='add'>+      [</div><div class='add'>+        :irb_measure, :Measure, "cmd/measure",</div><div class='add'>+        [:measure, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+</div><div class='add'>+      [</div><div class='add'>+        :irb_show_source, :ShowSource, "cmd/show_source",</div><div class='add'>+        [:show_source, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+</div><div class='add'>+      [</div><div class='add'>+        :irb_whereami, :Whereami, "cmd/whereami",</div><div class='add'>+        [:whereami, NO_OVERRIDE],</div><div class='add'>+      ],</div><div class='add'>+      [</div><div class='add'>+        :irb_show_cmds, :ShowCmds, "cmd/show_cmds",</div><div class='add'>+        [:show_cmds, NO_OVERRIDE],</div><div class='add'>+      ]</div><div class='ctx'>     ]</div><div class='ctx'> </div><div class='del'>-    # Installs the default irb commands:</div><div class='del'>-    #</div><div class='del'>-    # +irb_current_working_workspace+::   Context#main</div><div class='del'>-    # +irb_change_workspace+::            Context#change_workspace</div><div class='del'>-    # +irb_workspaces+::                  Context#workspaces</div><div class='del'>-    # +irb_push_workspace+::              Context#push_workspace</div><div class='del'>-    # +irb_pop_workspace+::               Context#pop_workspace</div><div class='del'>-    # +irb_load+::                        #irb_load</div><div class='del'>-    # +irb_require+::                     #irb_require</div><div class='del'>-    # +irb_source+::                      IrbLoader#source_file</div><div class='del'>-    # +irb+::                             IRB.irb</div><div class='del'>-    # +irb_jobs+::                        JobManager</div><div class='del'>-    # +irb_fg+::                          JobManager#switch</div><div class='del'>-    # +irb_kill+::                        JobManager#kill</div><div class='del'>-    # +irb_help+::                        IRB@Command+line+options</div><div class='add'>+</div><div class='add'>+    @@commands = []</div><div class='add'>+</div><div class='add'>+    def self.all_commands_info</div><div class='add'>+      return @@commands unless @@commands.empty?</div><div class='add'>+      user_aliases = IRB.CurrentContext.command_aliases.each_with_object({}) do |(alias_name, target), result|</div><div class='add'>+        result[target] ||= []</div><div class='add'>+        result[target] &lt;&lt; alias_name</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      @EXTEND_COMMANDS.each do |cmd_name, cmd_class, load_file, *aliases|</div><div class='add'>+        if !defined?(ExtendCommand) || !ExtendCommand.const_defined?(cmd_class, false)</div><div class='add'>+          require_relative load_file</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        klass = ExtendCommand.const_get(cmd_class, false)</div><div class='add'>+        aliases = aliases.map { |a| a.first }</div><div class='add'>+</div><div class='add'>+        if additional_aliases = user_aliases[cmd_name]</div><div class='add'>+          aliases += additional_aliases</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        display_name = aliases.shift || cmd_name</div><div class='add'>+        @@commands &lt;&lt; { display_name: display_name, description: klass.description, category: klass.category }</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      @@commands</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Convert a command name to its implementation class if such command exists</div><div class='add'>+    def self.load_command(command)</div><div class='add'>+      command = command.to_sym</div><div class='add'>+      @EXTEND_COMMANDS.each do |cmd_name, cmd_class, load_file, *aliases|</div><div class='add'>+        next if cmd_name != command &amp;&amp; aliases.all? { |alias_name, _| alias_name != command }</div><div class='add'>+</div><div class='add'>+        if !defined?(ExtendCommand) || !ExtendCommand.const_defined?(cmd_class, false)</div><div class='add'>+          require_relative load_file</div><div class='add'>+        end</div><div class='add'>+        return ExtendCommand.const_get(cmd_class, false)</div><div class='add'>+      end</div><div class='add'>+      nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Installs the default irb commands.</div><div class='ctx'>     def self.install_extend_commands</div><div class='ctx'>       for args in @EXTEND_COMMANDS</div><div class='ctx'>         def_extend_command(*args)</div><div class='hunk'>@@ -138,20 +261,24 @@ module IRB # :nodoc:</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       if load_file</div><div class='add'>+        kwargs = ", **kwargs" if RUBY_ENGINE == "ruby" &amp;&amp; RUBY_VERSION &gt;= "2.7.0"</div><div class='ctx'>         line = __LINE__; eval %[</div><div class='del'>-          def #{cmd_name}(*opts, &amp;b)</div><div class='del'>-            require "#{load_file}"</div><div class='add'>+          def #{cmd_name}(*opts#{kwargs}, &amp;b)</div><div class='add'>+            require_relative "#{load_file}"</div><div class='ctx'>             arity = ExtendCommand::#{cmd_class}.instance_method(:execute).arity</div><div class='ctx'>             args = (1..(arity &lt; 0 ? ~arity : arity)).map {|i| "arg" + i.to_s }</div><div class='del'>-            args &lt;&lt; "*opts" if arity &lt; 0</div><div class='add'>+            args &lt;&lt; "*opts#{kwargs}" if arity &lt; 0</div><div class='ctx'>             args &lt;&lt; "&amp;block"</div><div class='ctx'>             args = args.join(", ")</div><div class='ctx'>             line = __LINE__; eval %[</div><div class='del'>-              def #{cmd_name}(\#{args})</div><div class='del'>-            ExtendCommand::#{cmd_class}.execute(irb_context, \#{args})</div><div class='add'>+              unless singleton_class.class_variable_defined?(:@@#{cmd_name}_)</div><div class='add'>+                singleton_class.class_variable_set(:@@#{cmd_name}_, true)</div><div class='add'>+                def self.#{cmd_name}_(\#{args})</div><div class='add'>+                  ExtendCommand::#{cmd_class}.execute(irb_context, \#{args})</div><div class='add'>+                end</div><div class='ctx'>               end</div><div class='ctx'>             ], nil, __FILE__, line</div><div class='del'>-            send :#{cmd_name}, *opts, &amp;b</div><div class='add'>+            __send__ :#{cmd_name}_, *opts#{kwargs}, &amp;b</div><div class='ctx'>           end</div><div class='ctx'>         ], nil, __FILE__, line</div><div class='ctx'>       else</div><div class='hunk'>@@ -185,7 +312,7 @@ module IRB # :nodoc:</div><div class='ctx'>           alias_method to, from</div><div class='ctx'>         }</div><div class='ctx'>       else</div><div class='del'>-        print "irb: warn: can't alias #{to} from #{from}.\n"</div><div class='add'>+        Kernel.print "irb: warn: can't alias #{to} from #{from}.\n"</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -212,10 +339,10 @@ module IRB # :nodoc:</div><div class='ctx'>     CE = ContextExtender # :nodoc:</div><div class='ctx'> </div><div class='ctx'>     @EXTEND_COMMANDS = [</div><div class='del'>-      [:eval_history=, "irb/ext/history.rb"],</div><div class='del'>-      [:use_tracer=, "irb/ext/tracer.rb"],</div><div class='del'>-      [:use_loader=, "irb/ext/use-loader.rb"],</div><div class='del'>-      [:save_history=, "irb/ext/save-history.rb"],</div><div class='add'>+      [:eval_history=, "ext/history.rb"],</div><div class='add'>+      [:use_tracer=, "ext/tracer.rb"],</div><div class='add'>+      [:use_loader=, "ext/use-loader.rb"],</div><div class='add'>+      [:save_history=, "ext/save-history.rb"],</div><div class='ctx'>     ]</div><div class='ctx'> </div><div class='ctx'>     # Installs the default context extensions as irb commands:</div><div class='hunk'>@@ -238,8 +365,8 @@ module IRB # :nodoc:</div><div class='ctx'>       line = __LINE__; Context.module_eval %[</div><div class='ctx'>         def #{cmd_name}(*opts, &amp;b)</div><div class='ctx'>           Context.module_eval {remove_method(:#{cmd_name})}</div><div class='del'>-          require "#{load_file}"</div><div class='del'>-          send :#{cmd_name}, *opts, &amp;b</div><div class='add'>+          require_relative "#{load_file}"</div><div class='add'>+          __send__ :#{cmd_name}, *opts, &amp;b</div><div class='ctx'>         end</div><div class='ctx'>         for ali in aliases</div><div class='ctx'>           alias_method ali, cmd_name</div><div class='hunk'>@@ -262,8 +389,8 @@ module IRB # :nodoc:</div><div class='ctx'>       module_eval %[</div><div class='ctx'>         alias_method alias_name, base_method</div><div class='ctx'>         def #{base_method}(*opts)</div><div class='del'>-          send :#{extend_method}, *opts</div><div class='del'>-          send :#{alias_name}, *opts</div><div class='add'>+          __send__ :#{extend_method}, *opts</div><div class='add'>+          __send__ :#{alias_name}, *opts</div><div class='ctx'>         end</div><div class='ctx'>       ]</div><div class='ctx'>     end</div><div class='hunk'>@@ -278,8 +405,8 @@ module IRB # :nodoc:</div><div class='ctx'>       module_eval %[</div><div class='ctx'>         alias_method alias_name, base_method</div><div class='ctx'>         def #{base_method}(*opts)</div><div class='del'>-          send :#{alias_name}, *opts</div><div class='del'>-          send :#{extend_method}, *opts</div><div class='add'>+          __send__ :#{alias_name}, *opts</div><div class='add'>+          __send__ :#{extend_method}, *opts</div><div class='ctx'>         end</div><div class='ctx'>       ]</div><div class='ctx'>     end</div><div class='head'>diff --git a/lib/irb/frame.rb b/lib/irb/frame.rb<br/>index 6073809249..de54a98f1b 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/frame.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/frame.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/frame.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/frame.rb</a></div><div class='hunk'>@@ -10,13 +10,18 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require "e2mmap"</div><div class='del'>-</div><div class='ctx'> module IRB</div><div class='ctx'>   class Frame</div><div class='del'>-    extend Exception2MessageMapper</div><div class='del'>-    def_exception :FrameOverflow, "frame overflow"</div><div class='del'>-    def_exception :FrameUnderflow, "frame underflow"</div><div class='add'>+    class FrameOverflow &lt; StandardError</div><div class='add'>+      def initialize</div><div class='add'>+        super("frame overflow")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    class FrameUnderflow &lt; StandardError</div><div class='add'>+      def initialize</div><div class='add'>+        super("frame underflow")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     # Default number of stack frames</div><div class='ctx'>     INIT_STACK_TIMES = 3</div><div class='hunk'>@@ -44,7 +49,7 @@ module IRB</div><div class='ctx'>     # Raises FrameUnderflow if there are no frames in the given stack range.</div><div class='ctx'>     def top(n = 0)</div><div class='ctx'>       bind = @frames[-(n + CALL_STACK_OFFSET)]</div><div class='del'>-      Fail FrameUnderflow unless bind</div><div class='add'>+      fail FrameUnderflow unless bind</div><div class='ctx'>       bind</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -54,7 +59,7 @@ module IRB</div><div class='ctx'>     # Raises FrameOverflow if there are no frames in the given stack range.</div><div class='ctx'>     def bottom(n = 0)</div><div class='ctx'>       bind = @frames[n]</div><div class='del'>-      Fail FrameOverflow unless bind</div><div class='add'>+      fail FrameOverflow unless bind</div><div class='ctx'>       bind</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/irb/help.rb b/lib/irb/help.rb<br/>index 7868a70a6c..3eeaf841b0 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/help.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/help.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/help.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/help.rb</a></div><div class='hunk'>@@ -34,4 +34,3 @@ module IRB</div><div class='ctx'>     }</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='del'>-</div><div class='head'>diff --git a/lib/irb/init.rb b/lib/irb/init.rb<br/>index 2066d8cb64..55453cc8f7 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/init.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/init.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/init.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/init.rb</a></div><div class='hunk'>@@ -21,7 +21,7 @@ module IRB # :nodoc:</div><div class='ctx'>     IRB.load_modules</div><div class='ctx'> </div><div class='ctx'>     unless @CONF[:PROMPT][@CONF[:PROMPT_MODE]]</div><div class='del'>-      IRB.fail(UndefinedPromptMode, @CONF[:PROMPT_MODE])</div><div class='add'>+      fail UndefinedPromptMode, @CONF[:PROMPT_MODE]</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -43,17 +43,21 @@ module IRB # :nodoc:</div><div class='ctx'>     @CONF[:LOAD_MODULES] = []</div><div class='ctx'>     @CONF[:IRB_RC] = nil</div><div class='ctx'> </div><div class='del'>-    @CONF[:USE_READLINE] = false unless defined?(ReadlineInputMethod)</div><div class='add'>+    @CONF[:USE_SINGLELINE] = false unless defined?(ReadlineInputMethod)</div><div class='add'>+    @CONF[:USE_COLORIZE] = (nc = ENV['NO_COLOR']).nil? || nc.empty?</div><div class='add'>+    @CONF[:USE_AUTOCOMPLETE] = ENV.fetch("IRB_USE_AUTOCOMPLETE", "true") != "false"</div><div class='ctx'>     @CONF[:INSPECT_MODE] = true</div><div class='ctx'>     @CONF[:USE_TRACER] = false</div><div class='ctx'>     @CONF[:USE_LOADER] = false</div><div class='ctx'>     @CONF[:IGNORE_SIGINT] = true</div><div class='ctx'>     @CONF[:IGNORE_EOF] = false</div><div class='add'>+    @CONF[:EXTRA_DOC_DIRS] = []</div><div class='ctx'>     @CONF[:ECHO] = nil</div><div class='add'>+    @CONF[:ECHO_ON_ASSIGNMENT] = nil</div><div class='ctx'>     @CONF[:VERBOSE] = nil</div><div class='ctx'> </div><div class='ctx'>     @CONF[:EVAL_HISTORY] = nil</div><div class='del'>-    @CONF[:SAVE_HISTORY] = nil</div><div class='add'>+    @CONF[:SAVE_HISTORY] = 1000</div><div class='ctx'> </div><div class='ctx'>     @CONF[:BACK_TRACE_LIMIT] = 16</div><div class='ctx'> </div><div class='hunk'>@@ -82,7 +86,7 @@ module IRB # :nodoc:</div><div class='ctx'>       :SIMPLE =&gt; {</div><div class='ctx'>         :PROMPT_I =&gt; "&gt;&gt; ",</div><div class='ctx'>         :PROMPT_N =&gt; "&gt;&gt; ",</div><div class='del'>-        :PROMPT_S =&gt; nil,</div><div class='add'>+        :PROMPT_S =&gt; "%l&gt; ",</div><div class='ctx'>         :PROMPT_C =&gt; "?&gt; ",</div><div class='ctx'>         :RETURN =&gt; "=&gt; %s\n"</div><div class='ctx'>       },</div><div class='hunk'>@@ -104,16 +108,111 @@ module IRB # :nodoc:</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     @CONF[:PROMPT_MODE] = (STDIN.tty? ? :DEFAULT : :NULL)</div><div class='del'>-    @CONF[:AUTO_INDENT] = false</div><div class='add'>+    @CONF[:AUTO_INDENT] = true</div><div class='ctx'> </div><div class='del'>-    @CONF[:CONTEXT_MODE] = 3 # use binding in function on TOPLEVEL_BINDING</div><div class='add'>+    @CONF[:CONTEXT_MODE] = 4 # use a copy of TOPLEVEL_BINDING</div><div class='ctx'>     @CONF[:SINGLE_IRB] = false</div><div class='ctx'> </div><div class='add'>+    @CONF[:MEASURE] = false</div><div class='add'>+    @CONF[:MEASURE_PROC] = {}</div><div class='add'>+    @CONF[:MEASURE_PROC][:TIME] = proc { |context, code, line_no, &amp;block|</div><div class='add'>+      time = Time.now</div><div class='add'>+      result = block.()</div><div class='add'>+      now = Time.now</div><div class='add'>+      puts 'processing time: %fs' % (now - time) if IRB.conf[:MEASURE]</div><div class='add'>+      result</div><div class='add'>+    }</div><div class='add'>+    # arg can be either a symbol for the mode (:cpu, :wall, ..) or a hash for</div><div class='add'>+    # a more complete configuration.</div><div class='add'>+    # See https://github.com/tmm1/stackprof#all-options.</div><div class='add'>+    @CONF[:MEASURE_PROC][:STACKPROF] = proc { |context, code, line_no, arg, &amp;block|</div><div class='add'>+      return block.() unless IRB.conf[:MEASURE]</div><div class='add'>+      success = false</div><div class='add'>+      begin</div><div class='add'>+        require 'stackprof'</div><div class='add'>+        success = true</div><div class='add'>+      rescue LoadError</div><div class='add'>+        puts 'Please run "gem install stackprof" before measuring by StackProf.'</div><div class='add'>+      end</div><div class='add'>+      if success</div><div class='add'>+        result = nil</div><div class='add'>+        arg = { mode: arg || :cpu } unless arg.is_a?(Hash)</div><div class='add'>+        stackprof_result = StackProf.run(**arg) do</div><div class='add'>+          result = block.()</div><div class='add'>+        end</div><div class='add'>+        case stackprof_result</div><div class='add'>+        when File</div><div class='add'>+          puts "StackProf report saved to #{stackprof_result.path}"</div><div class='add'>+        when Hash</div><div class='add'>+          StackProf::Report.new(stackprof_result).print_text</div><div class='add'>+        else</div><div class='add'>+          puts "Stackprof ran with #{arg.inspect}"</div><div class='add'>+        end</div><div class='add'>+        result</div><div class='add'>+      else</div><div class='add'>+        block.()</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+    @CONF[:MEASURE_CALLBACKS] = []</div><div class='add'>+</div><div class='ctx'>     @CONF[:LC_MESSAGES] = Locale.new</div><div class='ctx'> </div><div class='ctx'>     @CONF[:AT_EXIT] = []</div><div class='ctx'> </div><div class='del'>-    @CONF[:DEBUG_LEVEL] = 0</div><div class='add'>+    @CONF[:COMMAND_ALIASES] = {</div><div class='add'>+      # Symbol aliases</div><div class='add'>+      :'$' =&gt; :show_source,</div><div class='add'>+      :'@' =&gt; :whereami,</div><div class='add'>+      # Keyword aliases</div><div class='add'>+      :break =&gt; :irb_break,</div><div class='add'>+      :catch =&gt; :irb_catch,</div><div class='add'>+      :next =&gt; :irb_next,</div><div class='add'>+    }</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def IRB.set_measure_callback(type = nil, arg = nil, &amp;block)</div><div class='add'>+    added = nil</div><div class='add'>+    if type</div><div class='add'>+      type_sym = type.upcase.to_sym</div><div class='add'>+      if IRB.conf[:MEASURE_PROC][type_sym]</div><div class='add'>+        added = [type_sym, IRB.conf[:MEASURE_PROC][type_sym], arg]</div><div class='add'>+      end</div><div class='add'>+    elsif IRB.conf[:MEASURE_PROC][:CUSTOM]</div><div class='add'>+      added = [:CUSTOM, IRB.conf[:MEASURE_PROC][:CUSTOM], arg]</div><div class='add'>+    elsif block_given?</div><div class='add'>+      added = [:BLOCK, block, arg]</div><div class='add'>+      found = IRB.conf[:MEASURE_CALLBACKS].find{ |m| m[0] == added[0] &amp;&amp; m[2] == added[2] }</div><div class='add'>+      if found</div><div class='add'>+        found[1] = block</div><div class='add'>+        return added</div><div class='add'>+      else</div><div class='add'>+        IRB.conf[:MEASURE_CALLBACKS] &lt;&lt; added</div><div class='add'>+        return added</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      added = [:TIME, IRB.conf[:MEASURE_PROC][:TIME], arg]</div><div class='add'>+    end</div><div class='add'>+    if added</div><div class='add'>+      found = IRB.conf[:MEASURE_CALLBACKS].find{ |m| m[0] == added[0] &amp;&amp; m[2] == added[2] }</div><div class='add'>+      if found</div><div class='add'>+        # already added</div><div class='add'>+        nil</div><div class='add'>+      else</div><div class='add'>+        IRB.conf[:MEASURE_CALLBACKS] &lt;&lt; added if added</div><div class='add'>+        added</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      nil</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def IRB.unset_measure_callback(type = nil)</div><div class='add'>+    if type.nil?</div><div class='add'>+      IRB.conf[:MEASURE_CALLBACKS].clear</div><div class='add'>+    else</div><div class='add'>+      type_sym = type.upcase.to_sym</div><div class='add'>+      IRB.conf[:MEASURE_CALLBACKS].reject!{ |t, | t == type_sym }</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def IRB.init_error</div><div class='hunk'>@@ -131,7 +230,7 @@ module IRB # :nodoc:</div><div class='ctx'>         $DEBUG = true</div><div class='ctx'>         $VERBOSE = true</div><div class='ctx'>       when "-w"</div><div class='del'>-        $VERBOSE = true</div><div class='add'>+        Warning[:deprecated] = $VERBOSE = true</div><div class='ctx'>       when /^-W(.+)?/</div><div class='ctx'>         opt = $1 || argv.shift</div><div class='ctx'>         case opt</div><div class='hunk'>@@ -140,7 +239,7 @@ module IRB # :nodoc:</div><div class='ctx'>         when "1"</div><div class='ctx'>           $VERBOSE = false</div><div class='ctx'>         else</div><div class='del'>-          $VERBOSE = true</div><div class='add'>+          Warning[:deprecated] = $VERBOSE = true</div><div class='ctx'>         end</div><div class='ctx'>       when /^-r(.+)?/</div><div class='ctx'>         opt = $1 || argv.shift</div><div class='hunk'>@@ -161,24 +260,61 @@ module IRB # :nodoc:</div><div class='ctx'>         end</div><div class='ctx'>       when "--noinspect"</div><div class='ctx'>         @CONF[:INSPECT_MODE] = false</div><div class='del'>-      when "--readline"</div><div class='del'>-        @CONF[:USE_READLINE] = true</div><div class='del'>-      when "--noreadline"</div><div class='del'>-        @CONF[:USE_READLINE] = false</div><div class='add'>+      when "--singleline", "--readline", "--legacy"</div><div class='add'>+        @CONF[:USE_SINGLELINE] = true</div><div class='add'>+      when "--nosingleline", "--noreadline"</div><div class='add'>+        @CONF[:USE_SINGLELINE] = false</div><div class='add'>+      when "--multiline", "--reidline"</div><div class='add'>+        if opt == "--reidline"</div><div class='add'>+          warn &lt;&lt;~MSG.strip</div><div class='add'>+            --reidline is deprecated, please use --multiline instead.</div><div class='add'>+          MSG</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        @CONF[:USE_MULTILINE] = true</div><div class='add'>+      when "--nomultiline", "--noreidline"</div><div class='add'>+        if opt == "--noreidline"</div><div class='add'>+          warn &lt;&lt;~MSG.strip</div><div class='add'>+            --noreidline is deprecated, please use --nomultiline instead.</div><div class='add'>+          MSG</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        @CONF[:USE_MULTILINE] = false</div><div class='add'>+      when /^--extra-doc-dir(?:=(.+))?/</div><div class='add'>+        opt = $1 || argv.shift</div><div class='add'>+        @CONF[:EXTRA_DOC_DIRS] &lt;&lt; opt</div><div class='ctx'>       when "--echo"</div><div class='ctx'>         @CONF[:ECHO] = true</div><div class='ctx'>       when "--noecho"</div><div class='ctx'>         @CONF[:ECHO] = false</div><div class='add'>+      when "--echo-on-assignment"</div><div class='add'>+        @CONF[:ECHO_ON_ASSIGNMENT] = true</div><div class='add'>+      when "--noecho-on-assignment"</div><div class='add'>+        @CONF[:ECHO_ON_ASSIGNMENT] = false</div><div class='add'>+      when "--truncate-echo-on-assignment"</div><div class='add'>+        @CONF[:ECHO_ON_ASSIGNMENT] = :truncate</div><div class='ctx'>       when "--verbose"</div><div class='ctx'>         @CONF[:VERBOSE] = true</div><div class='ctx'>       when "--noverbose"</div><div class='ctx'>         @CONF[:VERBOSE] = false</div><div class='add'>+      when "--colorize"</div><div class='add'>+        @CONF[:USE_COLORIZE] = true</div><div class='add'>+      when "--nocolorize"</div><div class='add'>+        @CONF[:USE_COLORIZE] = false</div><div class='add'>+      when "--autocomplete"</div><div class='add'>+        @CONF[:USE_AUTOCOMPLETE] = true</div><div class='add'>+      when "--noautocomplete"</div><div class='add'>+        @CONF[:USE_AUTOCOMPLETE] = false</div><div class='ctx'>       when /^--prompt-mode(?:=(.+))?/, /^--prompt(?:=(.+))?/</div><div class='ctx'>         opt = $1 || argv.shift</div><div class='ctx'>         prompt_mode = opt.upcase.tr("-", "_").intern</div><div class='ctx'>         @CONF[:PROMPT_MODE] = prompt_mode</div><div class='ctx'>       when "--noprompt"</div><div class='ctx'>         @CONF[:PROMPT_MODE] = :NULL</div><div class='add'>+      when "--script"</div><div class='add'>+        noscript = false</div><div class='add'>+      when "--noscript"</div><div class='add'>+        noscript = true</div><div class='ctx'>       when "--inf-ruby-mode"</div><div class='ctx'>         @CONF[:PROMPT_MODE] = :INF_RUBY</div><div class='ctx'>       when "--sample-book-mode", "--simple-prompt"</div><div class='hunk'>@@ -191,8 +327,6 @@ module IRB # :nodoc:</div><div class='ctx'>         @CONF[:CONTEXT_MODE] = ($1 || argv.shift).to_i</div><div class='ctx'>       when "--single-irb"</div><div class='ctx'>         @CONF[:SINGLE_IRB] = true</div><div class='del'>-      when /^--irb_debug(?:=(.+))?/</div><div class='del'>-        @CONF[:DEBUG_LEVEL] = ($1 || argv.shift).to_i</div><div class='ctx'>       when "-v", "--version"</div><div class='ctx'>         print IRB.version, "\n"</div><div class='ctx'>         exit 0</div><div class='hunk'>@@ -201,24 +335,28 @@ module IRB # :nodoc:</div><div class='ctx'>         IRB.print_usage</div><div class='ctx'>         exit 0</div><div class='ctx'>       when "--"</div><div class='del'>-        if opt = argv.shift</div><div class='add'>+        if !noscript &amp;&amp; (opt = argv.shift)</div><div class='ctx'>           @CONF[:SCRIPT] = opt</div><div class='ctx'>           $0 = opt</div><div class='ctx'>         end</div><div class='ctx'>         break</div><div class='del'>-      when /^-/</div><div class='del'>-        IRB.fail UnrecognizedSwitch, opt</div><div class='add'>+      when /^-./</div><div class='add'>+        fail UnrecognizedSwitch, opt</div><div class='ctx'>       else</div><div class='del'>-        @CONF[:SCRIPT] = opt</div><div class='del'>-        $0 = opt</div><div class='add'>+        if noscript</div><div class='add'>+          argv.unshift(opt)</div><div class='add'>+        else</div><div class='add'>+          @CONF[:SCRIPT] = opt</div><div class='add'>+          $0 = opt</div><div class='add'>+        end</div><div class='ctx'>         break</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='add'>+</div><div class='ctx'>     load_path.collect! do |path|</div><div class='ctx'>       /\A\.\// =~ path ? path : File.expand_path(path)</div><div class='ctx'>     end</div><div class='ctx'>     $LOAD_PATH.unshift(*load_path)</div><div class='del'>-</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # running config</div><div class='hunk'>@@ -252,7 +390,7 @@ module IRB # :nodoc:</div><div class='ctx'>     when String</div><div class='ctx'>       return rc_file</div><div class='ctx'>     else</div><div class='del'>-      IRB.fail IllegalRCNameGenerator</div><div class='add'>+      fail IllegalRCNameGenerator</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -261,14 +399,21 @@ module IRB # :nodoc:</div><div class='ctx'>     if irbrc = ENV["IRBRC"]</div><div class='ctx'>       yield proc{|rc| rc == "rc" ? irbrc : irbrc+rc}</div><div class='ctx'>     end</div><div class='add'>+    if xdg_config_home = ENV["XDG_CONFIG_HOME"]</div><div class='add'>+      irb_home = File.join(xdg_config_home, "irb")</div><div class='add'>+      if File.directory?(irb_home)</div><div class='add'>+        yield proc{|rc| irb_home + "/irb#{rc}"}</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'>     if home = ENV["HOME"]</div><div class='ctx'>       yield proc{|rc| home+"/.irb#{rc}"}</div><div class='ctx'>     end</div><div class='del'>-    home = Dir.pwd</div><div class='del'>-    yield proc{|rc| home+"/.irb#{rc}"}</div><div class='del'>-    yield proc{|rc| home+"/irb#{rc.sub(/\A_?/, '.')}"}</div><div class='del'>-    yield proc{|rc| home+"/_irb#{rc}"}</div><div class='del'>-    yield proc{|rc| home+"/$irb#{rc}"}</div><div class='add'>+    current_dir = Dir.pwd</div><div class='add'>+    yield proc{|rc| current_dir+"/.config/irb/irb#{rc}"}</div><div class='add'>+    yield proc{|rc| current_dir+"/.irb#{rc}"}</div><div class='add'>+    yield proc{|rc| current_dir+"/irb#{rc.sub(/\A_?/, '.')}"}</div><div class='add'>+    yield proc{|rc| current_dir+"/_irb#{rc}"}</div><div class='add'>+    yield proc{|rc| current_dir+"/$irb#{rc}"}</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # loading modules</div><div class='hunk'>@@ -286,15 +431,18 @@ module IRB # :nodoc:</div><div class='ctx'>   DefaultEncodings = Struct.new(:external, :internal)</div><div class='ctx'>   class &lt;&lt; IRB</div><div class='ctx'>     private</div><div class='del'>-    def set_encoding(extern, intern = nil)</div><div class='add'>+    def set_encoding(extern, intern = nil, override: true)</div><div class='ctx'>       verbose, $VERBOSE = $VERBOSE, nil</div><div class='ctx'>       Encoding.default_external = extern unless extern.nil? || extern.empty?</div><div class='ctx'>       Encoding.default_internal = intern unless intern.nil? || intern.empty?</div><div class='del'>-      @CONF[:ENCODINGS] = IRB::DefaultEncodings.new(extern, intern)</div><div class='ctx'>       [$stdin, $stdout, $stderr].each do |io|</div><div class='ctx'>         io.set_encoding(extern, intern)</div><div class='ctx'>       end</div><div class='del'>-      @CONF[:LC_MESSAGES].instance_variable_set(:@encoding, extern)</div><div class='add'>+      if override</div><div class='add'>+        @CONF[:LC_MESSAGES].instance_variable_set(:@override_encoding, extern)</div><div class='add'>+      else</div><div class='add'>+        @CONF[:LC_MESSAGES].instance_variable_set(:@encoding, extern)</div><div class='add'>+      end</div><div class='ctx'>     ensure</div><div class='ctx'>       $VERBOSE = verbose</div><div class='ctx'>     end</div><div class='head'>diff --git a/lib/irb/input-method.rb b/lib/irb/input-method.rb<br/>index f491d5a760..9480573195 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/input-method.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/input-method.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/input-method.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/input-method.rb</a></div><div class='hunk'>@@ -11,6 +11,9 @@</div><div class='ctx'> #</div><div class='ctx'> require_relative 'src_encoding'</div><div class='ctx'> require_relative 'magic-file'</div><div class='add'>+require_relative 'completion'</div><div class='add'>+require 'io/console'</div><div class='add'>+require 'reline'</div><div class='ctx'> </div><div class='ctx'> module IRB</div><div class='ctx'>   STDIN_FILE_NAME = "(line)" # :nodoc:</div><div class='hunk'>@@ -30,10 +33,18 @@ module IRB</div><div class='ctx'>     #</div><div class='ctx'>     # See IO#gets for more information.</div><div class='ctx'>     def gets</div><div class='del'>-      IRB.fail NotImplementedError, "gets"</div><div class='add'>+      fail NotImplementedError, "gets"</div><div class='ctx'>     end</div><div class='ctx'>     public :gets</div><div class='ctx'> </div><div class='add'>+    def winsize</div><div class='add'>+      if instance_variable_defined?(:@stdout) &amp;&amp; @stdout.tty?</div><div class='add'>+        @stdout.winsize</div><div class='add'>+      else</div><div class='add'>+        [24, 80]</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # Whether this input method is still readable when there is no more data to</div><div class='ctx'>     # read.</div><div class='ctx'>     #</div><div class='hunk'>@@ -41,6 +52,11 @@ module IRB</div><div class='ctx'>     def readable_after_eof?</div><div class='ctx'>       false</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    # For debug message</div><div class='add'>+    def inspect</div><div class='add'>+      'Abstract InputMethod'</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   class StdioInputMethod &lt; InputMethod</div><div class='hunk'>@@ -67,7 +83,14 @@ module IRB</div><div class='ctx'>     #</div><div class='ctx'>     # See IO#eof? for more information.</div><div class='ctx'>     def eof?</div><div class='del'>-      @stdin.eof?</div><div class='add'>+      if @stdin.wait_readable(0.00001)</div><div class='add'>+        c = @stdin.getc</div><div class='add'>+        result = c.nil? ? true : false</div><div class='add'>+        @stdin.ungetc(c) unless c.nil?</div><div class='add'>+        result</div><div class='add'>+      else # buffer is empty</div><div class='add'>+        false</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Whether this input method is still readable when there is no more data to</div><div class='hunk'>@@ -91,14 +114,31 @@ module IRB</div><div class='ctx'>     def encoding</div><div class='ctx'>       @stdin.external_encoding</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    # For debug message</div><div class='add'>+    def inspect</div><div class='add'>+      'StdioInputMethod'</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   # Use a File for IO with irb, see InputMethod</div><div class='ctx'>   class FileInputMethod &lt; InputMethod</div><div class='add'>+    class &lt;&lt; self</div><div class='add'>+      def open(file, &amp;block)</div><div class='add'>+        begin</div><div class='add'>+          io = new(file)</div><div class='add'>+          block.call(io)</div><div class='add'>+        ensure</div><div class='add'>+          io&amp;.close</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # Creates a new input method object</div><div class='ctx'>     def initialize(file)</div><div class='ctx'>       super</div><div class='del'>-      @io = IRB::MagicFile.open(file)</div><div class='add'>+      @io = file.is_a?(IO) ? file : IRB::MagicFile.open(file)</div><div class='add'>+      @external_encoding = @io.external_encoding</div><div class='ctx'>     end</div><div class='ctx'>     # The file name of this input method, usually given during initialization.</div><div class='ctx'>     attr_reader :file_name</div><div class='hunk'>@@ -108,7 +148,7 @@ module IRB</div><div class='ctx'>     #</div><div class='ctx'>     # See IO#eof? for more information.</div><div class='ctx'>     def eof?</div><div class='del'>-      @io.eof?</div><div class='add'>+      @io.closed? || @io.eof?</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Reads the next line from this input method.</div><div class='hunk'>@@ -116,22 +156,39 @@ module IRB</div><div class='ctx'>     # See IO#gets for more information.</div><div class='ctx'>     def gets</div><div class='ctx'>       print @prompt</div><div class='del'>-      l = @io.gets</div><div class='del'>-      l</div><div class='add'>+      @io.gets</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # The external encoding for standard input.</div><div class='ctx'>     def encoding</div><div class='del'>-      @io.external_encoding</div><div class='add'>+      @external_encoding</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # For debug message</div><div class='add'>+    def inspect</div><div class='add'>+      'FileInputMethod'</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def close</div><div class='add'>+      @io.close</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   begin</div><div class='del'>-    require "readline"</div><div class='ctx'>     class ReadlineInputMethod &lt; InputMethod</div><div class='del'>-      include Readline</div><div class='add'>+      def self.initialize_readline</div><div class='add'>+        require "readline"</div><div class='add'>+      rescue LoadError</div><div class='add'>+      else</div><div class='add'>+        include ::Readline</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       # Creates a new input method object using Readline</div><div class='ctx'>       def initialize</div><div class='add'>+        self.class.initialize_readline</div><div class='add'>+        if Readline.respond_to?(:encoding_system_needs)</div><div class='add'>+          IRB.__send__(:set_encoding, Readline.encoding_system_needs.name, override: false)</div><div class='add'>+        end</div><div class='ctx'>         super</div><div class='ctx'> </div><div class='ctx'>         @line_no = 0</div><div class='hunk'>@@ -140,6 +197,12 @@ module IRB</div><div class='ctx'> </div><div class='ctx'>         @stdin = IO.open(STDIN.to_i, :external_encoding =&gt; IRB.conf[:LC_MESSAGES].encoding, :internal_encoding =&gt; "-")</div><div class='ctx'>         @stdout = IO.open(STDOUT.to_i, 'w', :external_encoding =&gt; IRB.conf[:LC_MESSAGES].encoding, :internal_encoding =&gt; "-")</div><div class='add'>+</div><div class='add'>+        if Readline.respond_to?("basic_word_break_characters=")</div><div class='add'>+          Readline.basic_word_break_characters = IRB::InputCompletor::BASIC_WORD_BREAK_CHARACTERS</div><div class='add'>+        end</div><div class='add'>+        Readline.completion_append_character = nil</div><div class='add'>+        Readline.completion_proc = IRB::InputCompletor::CompletionProc</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='ctx'>       # Reads the next line from this input method.</div><div class='hunk'>@@ -186,7 +249,235 @@ module IRB</div><div class='ctx'>       def encoding</div><div class='ctx'>         @stdin.external_encoding</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      # For debug message</div><div class='add'>+      def inspect</div><div class='add'>+        readline_impl = (defined?(Reline) &amp;&amp; Readline == Reline) ? 'Reline' : 'ext/readline'</div><div class='add'>+        str = "ReadlineInputMethod with #{readline_impl} #{Readline::VERSION}"</div><div class='add'>+        inputrc_path = File.expand_path(ENV['INPUTRC'] || '~/.inputrc')</div><div class='add'>+        str += " and #{inputrc_path}" if File.exist?(inputrc_path)</div><div class='add'>+        str</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class RelineInputMethod &lt; InputMethod</div><div class='add'>+    include Reline</div><div class='add'>+</div><div class='add'>+    # Creates a new input method object using Reline</div><div class='add'>+    def initialize</div><div class='add'>+      IRB.__send__(:set_encoding, Reline.encoding_system_needs.name, override: false)</div><div class='add'>+      super</div><div class='add'>+</div><div class='add'>+      @line_no = 0</div><div class='add'>+      @line = []</div><div class='add'>+      @eof = false</div><div class='add'>+</div><div class='add'>+      @stdin = ::IO.open(STDIN.to_i, :external_encoding =&gt; IRB.conf[:LC_MESSAGES].encoding, :internal_encoding =&gt; "-")</div><div class='add'>+      @stdout = ::IO.open(STDOUT.to_i, 'w', :external_encoding =&gt; IRB.conf[:LC_MESSAGES].encoding, :internal_encoding =&gt; "-")</div><div class='add'>+</div><div class='add'>+      if Reline.respond_to?("basic_word_break_characters=")</div><div class='add'>+        Reline.basic_word_break_characters = IRB::InputCompletor::BASIC_WORD_BREAK_CHARACTERS</div><div class='add'>+      end</div><div class='add'>+      Reline.completion_append_character = nil</div><div class='add'>+      Reline.completer_quote_characters = ''</div><div class='add'>+      Reline.completion_proc = IRB::InputCompletor::CompletionProc</div><div class='add'>+      Reline.output_modifier_proc =</div><div class='add'>+        if IRB.conf[:USE_COLORIZE]</div><div class='add'>+          proc do |output, complete: |</div><div class='add'>+            next unless IRB::Color.colorable?</div><div class='add'>+            lvars = IRB.CurrentContext&amp;.local_variables || []</div><div class='add'>+            IRB::Color.colorize_code(output, complete: complete, local_variables: lvars)</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          proc do |output|</div><div class='add'>+            Reline::Unicode.escape_for_print(output)</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      Reline.dig_perfect_match_proc = IRB::InputCompletor::PerfectMatchedProc</div><div class='add'>+      Reline.autocompletion = IRB.conf[:USE_AUTOCOMPLETE]</div><div class='add'>+</div><div class='add'>+      if IRB.conf[:USE_AUTOCOMPLETE]</div><div class='add'>+        begin</div><div class='add'>+          require 'rdoc'</div><div class='add'>+          Reline.add_dialog_proc(:show_doc, SHOW_DOC_DIALOG, Reline::DEFAULT_DIALOG_CONTEXT)</div><div class='add'>+        rescue LoadError</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def check_termination(&amp;block)</div><div class='add'>+      @check_termination_proc = block</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def dynamic_prompt(&amp;block)</div><div class='add'>+      @prompt_proc = block</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def auto_indent(&amp;block)</div><div class='add'>+      @auto_indent_proc = block</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    SHOW_DOC_DIALOG = -&gt;() {</div><div class='add'>+      dialog.trap_key = nil</div><div class='add'>+      alt_d = [</div><div class='add'>+        [Reline::Key.new(nil, 0xE4, true)], # Normal Alt+d.</div><div class='add'>+        [27, 100], # Normal Alt+d when convert-meta isn't used.</div><div class='add'>+        [195, 164], # The "Ã¤" that appears when Alt+d is pressed on xterm.</div><div class='add'>+        [226, 136, 130] # The "âˆ‚" that appears when Alt+d in pressed on iTerm2.</div><div class='add'>+      ]</div><div class='add'>+</div><div class='add'>+      if just_cursor_moving and completion_journey_data.nil?</div><div class='add'>+        return nil</div><div class='add'>+      end</div><div class='add'>+      cursor_pos_to_render, result, pointer, autocomplete_dialog = context.pop(4)</div><div class='add'>+      return nil if result.nil? or pointer.nil? or pointer &lt; 0</div><div class='add'>+      name = result[pointer]</div><div class='add'>+      name = IRB::InputCompletor.retrieve_completion_data(name, doc_namespace: true)</div><div class='add'>+</div><div class='add'>+      options = {}</div><div class='add'>+      options[:extra_doc_dirs] = IRB.conf[:EXTRA_DOC_DIRS] unless IRB.conf[:EXTRA_DOC_DIRS].empty?</div><div class='add'>+      driver = RDoc::RI::Driver.new(options)</div><div class='add'>+</div><div class='add'>+      if key.match?(dialog.name)</div><div class='add'>+        begin</div><div class='add'>+          driver.display_names([name])</div><div class='add'>+        rescue RDoc::RI::Driver::NotFoundError</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      begin</div><div class='add'>+        name = driver.expand_name(name)</div><div class='add'>+      rescue RDoc::RI::Driver::NotFoundError</div><div class='add'>+        return nil</div><div class='add'>+      rescue</div><div class='add'>+        return nil # unknown error</div><div class='add'>+      end</div><div class='add'>+      doc = nil</div><div class='add'>+      used_for_class = false</div><div class='add'>+      if not name =~ /#|\./</div><div class='add'>+        found, klasses, includes, extends = driver.classes_and_includes_and_extends_for(name)</div><div class='add'>+        if not found.empty?</div><div class='add'>+          doc = driver.class_document(name, found, klasses, includes, extends)</div><div class='add'>+          used_for_class = true</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      unless used_for_class</div><div class='add'>+        doc = RDoc::Markup::Document.new</div><div class='add'>+        begin</div><div class='add'>+          driver.add_method(doc, name)</div><div class='add'>+        rescue RDoc::RI::Driver::NotFoundError</div><div class='add'>+          doc = nil</div><div class='add'>+        rescue</div><div class='add'>+          return nil # unknown error</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      return nil if doc.nil?</div><div class='add'>+      width = 40</div><div class='add'>+</div><div class='add'>+      right_x = cursor_pos_to_render.x + autocomplete_dialog.width</div><div class='add'>+      if right_x + width &gt; screen_width</div><div class='add'>+        right_width = screen_width - (right_x + 1)</div><div class='add'>+        left_x = autocomplete_dialog.column - width</div><div class='add'>+        left_x = 0 if left_x &lt; 0</div><div class='add'>+        left_width = width &gt; autocomplete_dialog.column ? autocomplete_dialog.column : width</div><div class='add'>+        if right_width.positive? and left_width.positive?</div><div class='add'>+          if right_width &gt;= left_width</div><div class='add'>+            width = right_width</div><div class='add'>+            x = right_x</div><div class='add'>+          else</div><div class='add'>+            width = left_width</div><div class='add'>+            x = left_x</div><div class='add'>+          end</div><div class='add'>+        elsif right_width.positive? and left_width &lt;= 0</div><div class='add'>+          width = right_width</div><div class='add'>+          x = right_x</div><div class='add'>+        elsif right_width &lt;= 0 and left_width.positive?</div><div class='add'>+          width = left_width</div><div class='add'>+          x = left_x</div><div class='add'>+        else # Both are negative width.</div><div class='add'>+          return nil</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        x = right_x</div><div class='add'>+      end</div><div class='add'>+      formatter = RDoc::Markup::ToAnsi.new</div><div class='add'>+      formatter.width = width</div><div class='add'>+      dialog.trap_key = alt_d</div><div class='add'>+      message = 'Press Alt+d to read the full document'</div><div class='add'>+      contents = [message] + doc.accept(formatter).split("\n")</div><div class='add'>+</div><div class='add'>+      y = cursor_pos_to_render.y</div><div class='add'>+      DialogRenderInfo.new(pos: Reline::CursorPos.new(x, y), contents: contents, width: width, bg_color: '49')</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    # Reads the next line from this input method.</div><div class='add'>+    #</div><div class='add'>+    # See IO#gets for more information.</div><div class='add'>+    def gets</div><div class='add'>+      Reline.input = @stdin</div><div class='add'>+      Reline.output = @stdout</div><div class='add'>+      Reline.prompt_proc = @prompt_proc</div><div class='add'>+      Reline.auto_indent_proc = @auto_indent_proc if @auto_indent_proc</div><div class='add'>+      if l = readmultiline(@prompt, false, &amp;@check_termination_proc)</div><div class='add'>+        HISTORY.push(l) if !l.empty?</div><div class='add'>+        @line[@line_no += 1] = l + "\n"</div><div class='add'>+      else</div><div class='add'>+        @eof = true</div><div class='add'>+        l</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Whether the end of this input method has been reached, returns +true+</div><div class='add'>+    # if there is no more data to read.</div><div class='add'>+    #</div><div class='add'>+    # See IO#eof? for more information.</div><div class='add'>+    def eof?</div><div class='add'>+      @eof</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Whether this input method is still readable when there is no more data to</div><div class='add'>+    # read.</div><div class='add'>+    #</div><div class='add'>+    # See IO#eof for more information.</div><div class='add'>+    def readable_after_eof?</div><div class='add'>+      true</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Returns the current line number for #io.</div><div class='add'>+    #</div><div class='add'>+    # #line counts the number of times #gets is called.</div><div class='add'>+    #</div><div class='add'>+    # See IO#lineno for more information.</div><div class='add'>+    def line(line_no)</div><div class='add'>+      @line[line_no]</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # The external encoding for standard input.</div><div class='add'>+    def encoding</div><div class='add'>+      @stdin.external_encoding</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # For debug message</div><div class='add'>+    def inspect</div><div class='add'>+      config = Reline::Config.new</div><div class='add'>+      str = "RelineInputMethod with Reline #{Reline::VERSION}"</div><div class='add'>+      if config.respond_to?(:inputrc_path)</div><div class='add'>+        inputrc_path = File.expand_path(config.inputrc_path)</div><div class='add'>+      else</div><div class='add'>+        inputrc_path = File.expand_path(ENV['INPUTRC'] || '~/.inputrc')</div><div class='add'>+      end</div><div class='add'>+      str += " and #{inputrc_path}" if File.exist?(inputrc_path)</div><div class='add'>+      str</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  class ReidlineInputMethod &lt; RelineInputMethod</div><div class='add'>+    def initialize</div><div class='add'>+      warn &lt;&lt;~MSG.strip</div><div class='add'>+        IRB::ReidlineInputMethod is deprecated, please use IRB::RelineInputMethod instead.</div><div class='add'>+      MSG</div><div class='add'>+      super</div><div class='ctx'>     end</div><div class='del'>-  rescue LoadError</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/irb/inspector.rb b/lib/irb/inspector.rb<br/>index f6f76712b8..d8c0ba90cf 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/inspector.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/inspector.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/inspector.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/inspector.rb</a></div><div class='hunk'>@@ -100,18 +100,19 @@ module IRB # :nodoc:</div><div class='ctx'>     # Proc to call when the input is evaluated and output in irb.</div><div class='ctx'>     def inspect_value(v)</div><div class='ctx'>       @inspect.call(v)</div><div class='add'>+    rescue</div><div class='add'>+      puts "(Object doesn't support #inspect)"</div><div class='add'>+      ''</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   Inspector.def_inspector([false, :to_s, :raw]){|v| v.to_s}</div><div class='del'>-  Inspector.def_inspector([true, :p, :inspect]){|v|</div><div class='del'>-    begin</div><div class='del'>-      v.inspect</div><div class='del'>-    rescue NoMethodError</div><div class='del'>-      puts "(Object doesn't support #inspect)"</div><div class='del'>-    end</div><div class='add'>+  Inspector.def_inspector([:p, :inspect]){|v|</div><div class='add'>+    Color.colorize_code(v.inspect, colorable: Color.colorable? &amp;&amp; Color.inspect_colorable?(v))</div><div class='add'>+  }</div><div class='add'>+  Inspector.def_inspector([true, :pp, :pretty_inspect], proc{require_relative "color_printer"}){|v|</div><div class='add'>+    IRB::ColorPrinter.pp(v, '').chomp</div><div class='ctx'>   }</div><div class='del'>-  Inspector.def_inspector([:pp, :pretty_inspect], proc{require "pp"}){|v| v.pretty_inspect.chomp}</div><div class='ctx'>   Inspector.def_inspector([:yaml, :YAML], proc{require "yaml"}){|v|</div><div class='ctx'>     begin</div><div class='ctx'>       YAML.dump(v)</div><div class='hunk'>@@ -125,8 +126,3 @@ module IRB # :nodoc:</div><div class='ctx'>     Marshal.dump(v)</div><div class='ctx'>   }</div><div class='ctx'> end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='head'>diff --git a/lib/irb/irb.gemspec b/lib/irb/irb.gemspec<br/>index 57a44fecb7..c3e8a4dc58 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/irb.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/irb.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/irb.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/irb.gemspec</a></div><div class='hunk'>@@ -8,19 +8,33 @@ end</div><div class='ctx'> Gem::Specification.new do |spec|</div><div class='ctx'>   spec.name          = "irb"</div><div class='ctx'>   spec.version       = IRB::VERSION</div><div class='del'>-  spec.authors       = ["Keiju ISHITSUKA"]</div><div class='del'>-  spec.email         = ["keiju@ruby-lang.org"]</div><div class='add'>+  spec.authors       = ["aycabta", "Keiju ISHITSUKA"]</div><div class='add'>+  spec.email         = ["aycabta@gmail.com", "keiju@ruby-lang.org"]</div><div class='ctx'> </div><div class='ctx'>   spec.summary       = %q{Interactive Ruby command-line tool for REPL (Read Eval Print Loop).}</div><div class='ctx'>   spec.description   = %q{Interactive Ruby command-line tool for REPL (Read Eval Print Loop).}</div><div class='ctx'>   spec.homepage      = "https://github.com/ruby/irb"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> </div><div class='del'>-  spec.files         = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "exe/irb", "irb.gemspec", "lib/irb.rb", "lib/irb/cmd/chws.rb", "lib/irb/cmd/fork.rb", "lib/irb/cmd/help.rb", "lib/irb/cmd/load.rb", "lib/irb/cmd/nop.rb", "lib/irb/cmd/pushws.rb", "lib/irb/cmd/subirb.rb", "lib/irb/completion.rb", "lib/irb/context.rb", "lib/irb/ext/change-ws.rb", "lib/irb/ext/history.rb", "lib/irb/ext/loader.rb", "lib/irb/ext/multi-irb.rb", "lib/irb/ext/save-history.rb", "lib/irb/ext/tracer.rb", "lib/irb/ext/use-loader.rb", "lib/irb/ext/workspaces.rb", "lib/irb/extend-command.rb", "lib/irb/frame.rb", "lib/irb/help.rb", "lib/irb/init.rb", "lib/irb/input-method.rb", "lib/irb/inspector.rb", "lib/irb/lc/.document", "lib/irb/lc/error.rb", "lib/irb/lc/help-message", "lib/irb/lc/ja/encoding_aliases.rb", "lib/irb/lc/ja/error.rb", "lib/irb/lc/ja/help-message", "lib/irb/locale.rb", "lib/irb/magic-file.rb", "lib/irb/notifier.rb", "lib/irb/output-method.rb", "lib/irb/ruby-lex.rb", "lib/irb/ruby-token.rb", "lib/irb/slex.rb", "lib/irb/src_encoding.rb", "lib/irb/version.rb", "lib/irb/workspace.rb", "lib/irb/ws-for-case-2.rb", "lib/irb/xmp.rb"]</div><div class='add'>+  spec.files         = [</div><div class='add'>+    ".document",</div><div class='add'>+    "Gemfile",</div><div class='add'>+    "LICENSE.txt",</div><div class='add'>+    "README.md",</div><div class='add'>+    "Rakefile",</div><div class='add'>+    "bin/console",</div><div class='add'>+    "bin/setup",</div><div class='add'>+    "doc/irb/irb-tools.rd.ja",</div><div class='add'>+    "doc/irb/irb.rd.ja",</div><div class='add'>+    "exe/irb",</div><div class='add'>+    "irb.gemspec",</div><div class='add'>+    "man/irb.1",</div><div class='add'>+  ] + Dir.glob("lib/**/*")</div><div class='ctx'>   spec.bindir        = "exe"</div><div class='ctx'>   spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='ctx'>   spec.require_paths = ["lib"]</div><div class='ctx'> </div><div class='del'>-  spec.add_development_dependency "bundler"</div><div class='del'>-  spec.add_development_dependency "rake"</div><div class='add'>+  spec.required_ruby_version = Gem::Requirement.new("&gt;= 2.6")</div><div class='add'>+</div><div class='add'>+  spec.add_dependency "reline", "&gt;= 0.3.0"</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/irb/lc/.document b/lib/irb/lc/.document<br/>deleted file mode 100644<br/>index 524bb9430b..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/irb/lc/.document?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/.document</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4 +0,0 @@</div><div class='del'>-# hide help-message files which contain usage information</div><div class='del'>-error.rb</div><div class='del'>-ja/encoding_aliases.rb</div><div class='del'>-ja/error.rb</div><div class='head'>diff --git a/lib/irb/lc/error.rb b/lib/irb/lc/error.rb<br/>index 6623f82d84..cb5c21cdb4 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/lc/error.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/error.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/lc/error.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/lc/error.rb</a></div><div class='hunk'>@@ -9,24 +9,60 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='del'>-require "e2mmap"</div><div class='ctx'> </div><div class='del'>-# :stopdoc:</div><div class='ctx'> module IRB</div><div class='add'>+  # :stopdoc:</div><div class='ctx'> </div><div class='del'>-  # exceptions</div><div class='del'>-  extend Exception2MessageMapper</div><div class='del'>-  def_exception :UnrecognizedSwitch, "Unrecognized switch: %s"</div><div class='del'>-  def_exception :NotImplementedError, "Need to define `%s'"</div><div class='del'>-  def_exception :CantReturnToNormalMode, "Can't return to normal mode."</div><div class='del'>-  def_exception :IllegalParameter, "Invalid parameter(%s)."</div><div class='del'>-  def_exception :IrbAlreadyDead, "Irb is already dead."</div><div class='del'>-  def_exception :IrbSwitchedToCurrentThread, "Switched to current thread."</div><div class='del'>-  def_exception :NoSuchJob, "No such job(%s)."</div><div class='del'>-  def_exception :CantShiftToMultiIrbMode, "Can't shift to multi irb mode."</div><div class='del'>-  def_exception :CantChangeBinding, "Can't change binding to (%s)."</div><div class='del'>-  def_exception :UndefinedPromptMode, "Undefined prompt mode(%s)."</div><div class='del'>-  def_exception :IllegalRCGenerator, 'Define illegal RC_NAME_GENERATOR.'</div><div class='add'>+  class UnrecognizedSwitch &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("Unrecognized switch: #{val}")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class NotImplementedError &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("Need to define `#{val}'")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class CantReturnToNormalMode &lt; StandardError</div><div class='add'>+    def initialize</div><div class='add'>+      super("Can't return to normal mode.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class IllegalParameter &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("Invalid parameter(#{val}).")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class IrbAlreadyDead &lt; StandardError</div><div class='add'>+    def initialize</div><div class='add'>+      super("Irb is already dead.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class IrbSwitchedToCurrentThread &lt; StandardError</div><div class='add'>+    def initialize</div><div class='add'>+      super("Switched to current thread.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class NoSuchJob &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("No such job(#{val}).")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class CantChangeBinding &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("Can't change binding to (#{val}).")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class UndefinedPromptMode &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("Undefined prompt mode(#{val}).")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class IllegalRCGenerator &lt; StandardError</div><div class='add'>+    def initialize</div><div class='add'>+      super("Define illegal RC_NAME_GENERATOR.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='ctx'> </div><div class='add'>+  # :startdoc:</div><div class='ctx'> end</div><div class='del'>-# :startdoc:</div><div class='head'>diff --git a/lib/irb/lc/help-message b/lib/irb/lc/help-message<br/>index d43c6a1695..5b23f4c41e 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/lc/help-message?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/help-message</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/lc/help-message?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/lc/help-message</a></div><div class='hunk'>@@ -1,49 +1,51 @@</div><div class='del'>-# -*- coding: utf-8 -*-</div><div class='del'>-#</div><div class='del'>-#   irb/lc/help-message.rb -</div><div class='del'>-#   	$Release Version: 0.9.6$</div><div class='del'>-#   	$Revision$</div><div class='del'>-#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)</div><div class='del'>-#</div><div class='del'>-# --</div><div class='del'>-#</div><div class='del'>-#</div><div class='del'>-#</div><div class='ctx'> Usage:  irb.rb [options] [programfile] [arguments]</div><div class='del'>-  -f		    Suppress read of ~/.irbrc</div><div class='del'>-  -d                Set $DEBUG to true (same as `ruby -d')</div><div class='del'>-  -r load-module    Same as `ruby -r'</div><div class='del'>-  -I path           Specify $LOAD_PATH directory</div><div class='del'>-  -U                Same as `ruby -U`</div><div class='del'>-  -E enc            Same as `ruby -E`</div><div class='del'>-  -w                Same as `ruby -w`</div><div class='del'>-  -W[level=2]       Same as `ruby -W`</div><div class='del'>-  --context-mode n  Set n[0-3] to method to create Binding Object,</div><div class='del'>-                    when new workspace was created</div><div class='del'>-  --echo            Show result(default)</div><div class='del'>-  --noecho          Don't show result</div><div class='del'>-  --inspect	    Use `inspect' for output (default except for bc mode)</div><div class='del'>-  --noinspect	    Don't use inspect for output</div><div class='del'>-  --readline        Use Readline extension module</div><div class='del'>-  --noreadline	    Don't use Readline extension module</div><div class='del'>-  --prompt prompt-mode/--prompt-mode prompt-mode</div><div class='del'>-		    Switch prompt mode. Pre-defined prompt modes are</div><div class='del'>-		    `default', `simple', `xmp' and `inf-ruby'</div><div class='add'>+  -f                Don't initialize from configuration file.</div><div class='add'>+  -d                Set $DEBUG and $VERBOSE to true (same as 'ruby -d').</div><div class='add'>+  -r load-module    Require load-module (same as 'ruby -r').</div><div class='add'>+  -I path           Specify $LOAD_PATH directory (same as 'ruby -I').</div><div class='add'>+  -U                Set external and internal encodings to UTF-8.</div><div class='add'>+  -E ex[:in]        Set default external (ex) and internal (in) encodings</div><div class='add'>+                    (same as 'ruby -E').</div><div class='add'>+  -w                Suppress warnings (same as 'ruby -w').</div><div class='add'>+  -W[level=2]       Set warning level: 0=silence, 1=medium, 2=verbose</div><div class='add'>+                    (same as 'ruby -W').</div><div class='add'>+  --context-mode n  Set n[0-4] to method to create Binding Object,</div><div class='add'>+                    when new workspace was created.</div><div class='add'>+  --extra-doc-dir   Add an extra doc dir for the doc dialog.</div><div class='add'>+  --echo            Show result (default).</div><div class='add'>+  --noecho          Don't show result.</div><div class='add'>+  --echo-on-assignment</div><div class='add'>+                    Show result on assignment.</div><div class='add'>+  --noecho-on-assignment</div><div class='add'>+                    Don't show result on assignment.</div><div class='add'>+  --truncate-echo-on-assignment</div><div class='add'>+                    Show truncated result on assignment (default).</div><div class='add'>+  --inspect         Use 'inspect' for output.</div><div class='add'>+  --noinspect       Don't use 'inspect' for output.</div><div class='add'>+  --multiline       Use multiline editor module.</div><div class='add'>+  --nomultiline     Don't use multiline editor module (default).</div><div class='add'>+  --singleline      Use single line editor module.</div><div class='add'>+  --nosingleline    Don't use single line editor module (default).</div><div class='add'>+  --colorize        Use color-highlighting (default).</div><div class='add'>+  --nocolorize      Don't use color-highlighting.</div><div class='add'>+  --autocomplete    Use auto-completion (default).</div><div class='add'>+  --noautocomplete  Don't use auto-completion.</div><div class='add'>+  --prompt prompt-mode, --prompt-mode prompt-mode</div><div class='add'>+                    Set prompt mode. Pre-defined prompt modes are:</div><div class='add'>+                    'default', 'classic', 'simple', 'inf-ruby', 'xmp', 'null'.</div><div class='ctx'>   --inf-ruby-mode   Use prompt appropriate for inf-ruby-mode on emacs.</div><div class='del'>-		    Suppresses --readline.</div><div class='del'>-  --sample-book-mode/--simple-prompt</div><div class='del'>-                    Simple prompt mode</div><div class='del'>-  --noprompt        No prompt mode</div><div class='add'>+                    Suppresses --multiline and --singleline.</div><div class='add'>+  --sample-book-mode, --simple-prompt</div><div class='add'>+                    Set prompt mode to 'simple'.</div><div class='add'>+  --noprompt        Don't output prompt.</div><div class='add'>+  --script          Script mode (default, treat first argument as script)</div><div class='add'>+  --noscript        No script mode (leave arguments in argv)</div><div class='ctx'>   --single-irb      Share self with sub-irb.</div><div class='del'>-  --tracer          Display trace for each execution of commands.</div><div class='del'>-  --back-trace-limit n</div><div class='del'>-		    Display backtrace top n and tail n. The default</div><div class='del'>-		    value is 16.</div><div class='del'>-  --irb_debug n	    Set internal debug level to n (not for popular use)</div><div class='del'>-  --verbose         Show details</div><div class='del'>-  --noverbose       Don't show details</div><div class='del'>-  -v, --version	    Print the version of irb</div><div class='del'>-  -h, --help        Print help</div><div class='del'>-  --                Separate options of irb from the list of command-line args</div><div class='del'>-</div><div class='del'>-# vim:fileencoding=utf-8</div><div class='add'>+  --tracer          Show stack trace for each command.</div><div class='add'>+  --back-trace-limit n[=16]</div><div class='add'>+                    Display backtrace top n and bottom n.</div><div class='add'>+  --verbose         Show details.</div><div class='add'>+  --noverbose       Don't show details.</div><div class='add'>+  -v, --version     Print the version of irb.</div><div class='add'>+  -h, --help        Print help.</div><div class='add'>+  --                Separate options of irb from the list of command-line args.</div><div class='head'>diff --git a/lib/irb/lc/ja/encoding_aliases.rb b/lib/irb/lc/ja/encoding_aliases.rb<br/>index c534bf0fef..08180c3ec2 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/lc/ja/encoding_aliases.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/ja/encoding_aliases.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/lc/ja/encoding_aliases.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/lc/ja/encoding_aliases.rb</a></div><div class='hunk'>@@ -1,11 +1,13 @@</div><div class='ctx'> # frozen_string_literal: false</div><div class='del'>-# :stopdoc:</div><div class='ctx'> module IRB</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='ctx'>   class Locale</div><div class='ctx'>     @@legacy_encoding_alias_map = {</div><div class='ctx'>       'ujis' =&gt; Encoding::EUC_JP,</div><div class='ctx'>       'euc' =&gt; Encoding::EUC_JP</div><div class='ctx'>     }.freeze</div><div class='ctx'>   end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='ctx'> end</div><div class='del'>-# :startdoc:</div><div class='head'>diff --git a/lib/irb/lc/ja/error.rb b/lib/irb/lc/ja/error.rb<br/>index 919363154c..5e3622cbae 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/lc/ja/error.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/ja/error.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/lc/ja/error.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/lc/ja/error.rb</a></div><div class='hunk'>@@ -9,23 +9,61 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='del'>-require "e2mmap"</div><div class='ctx'> </div><div class='del'>-# :stopdoc:</div><div class='ctx'> module IRB</div><div class='del'>-  # exceptions</div><div class='del'>-  extend Exception2MessageMapper</div><div class='del'>-  def_exception :UnrecognizedSwitch, 'ã‚¹ã‚¤ãƒƒãƒ(%s)ãŒåˆ†ã‚Šã¾ã›ã‚“'</div><div class='del'>-  def_exception :NotImplementedError, '`%s\'ã®å®šç¾©ãŒå¿…è¦ã§ã™'</div><div class='del'>-  def_exception :CantReturnToNormalMode, 'Normalãƒ¢ãƒ¼ãƒ‰ã«æˆ»ã‚Œã¾ã›ã‚“.'</div><div class='del'>-  def_exception :IllegalParameter, 'ãƒ‘ãƒ©ãƒ¡ãƒ¼ã‚¿(%s)ãŒé–“é•ã£ã¦ã„ã¾ã™.'</div><div class='del'>-  def_exception :IrbAlreadyDead, 'Irbã¯æ—¢ã«æ­»ã‚“ã§ã„ã¾ã™.'</div><div class='del'>-  def_exception :IrbSwitchedToCurrentThread, 'ã‚«ãƒ¬ãƒ³ãƒˆã‚¹ãƒ¬ãƒƒãƒ‰ã«åˆ‡ã‚Šæ›¿ã‚ã‚Šã¾ã—ãŸ.'</div><div class='del'>-  def_exception :NoSuchJob, 'ãã®ã‚ˆã†ãªã‚¸ãƒ§ãƒ–(%s)ã¯ã‚ã‚Šã¾ã›ã‚“.'</div><div class='del'>-  def_exception :CantShiftToMultiIrbMode, 'multi-irb modeã«ç§»ã‚Œã¾ã›ã‚“.'</div><div class='del'>-  def_exception :CantChangeBinding, 'ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°(%s)ã«å¤‰æ›´ã§ãã¾ã›ã‚“.'</div><div class='del'>-  def_exception :UndefinedPromptMode, 'ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆãƒ¢ãƒ¼ãƒ‰(%s)ã¯å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“.'</div><div class='del'>-  def_exception :IllegalRCNameGenerator, 'RC_NAME_GENERATORãŒæ­£ã—ãå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“.'</div><div class='add'>+  # :stopdoc:</div><div class='add'>+</div><div class='add'>+  class UnrecognizedSwitch &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("ã‚¹ã‚¤ãƒƒãƒ(#{val})ãŒåˆ†ã‚Šã¾ã›ã‚“")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class NotImplementedError &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("`#{val}'ã®å®šç¾©ãŒå¿…è¦ã§ã™")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class CantReturnToNormalMode &lt; StandardError</div><div class='add'>+    def initialize</div><div class='add'>+      super("Normalãƒ¢ãƒ¼ãƒ‰ã«æˆ»ã‚Œã¾ã›ã‚“.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class IllegalParameter &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("ãƒ‘ãƒ©ãƒ¡ãƒ¼ã‚¿(#{val})ãŒé–“é•ã£ã¦ã„ã¾ã™.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class IrbAlreadyDead &lt; StandardError</div><div class='add'>+    def initialize</div><div class='add'>+      super("Irbã¯æ—¢ã«æ­»ã‚“ã§ã„ã¾ã™.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class IrbSwitchedToCurrentThread &lt; StandardError</div><div class='add'>+    def initialize</div><div class='add'>+      super("ã‚«ãƒ¬ãƒ³ãƒˆã‚¹ãƒ¬ãƒƒãƒ‰ã«åˆ‡ã‚Šæ›¿ã‚ã‚Šã¾ã—ãŸ.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class NoSuchJob &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("ãã®ã‚ˆã†ãªã‚¸ãƒ§ãƒ–(#{val})ã¯ã‚ã‚Šã¾ã›ã‚“.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class CantChangeBinding &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°(#{val})ã«å¤‰æ›´ã§ãã¾ã›ã‚“.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class UndefinedPromptMode &lt; StandardError</div><div class='add'>+    def initialize(val)</div><div class='add'>+      super("ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆãƒ¢ãƒ¼ãƒ‰(#{val})ã¯å®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+  class IllegalRCGenerator &lt; StandardError</div><div class='add'>+    def initialize</div><div class='add'>+      super("RC_NAME_GENERATORãŒæ­£ã—ãå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“.")</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :startdoc:</div><div class='ctx'> end</div><div class='del'>-# :startdoc:</div><div class='ctx'> # vim:fileencoding=utf-8</div><div class='head'>diff --git a/lib/irb/lc/ja/help-message b/lib/irb/lc/ja/help-message<br/>index 1b24d14d28..1c15d331ea 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/lc/ja/help-message?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/lc/ja/help-message</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/lc/ja/help-message?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/lc/ja/help-message</a></div><div class='hunk'>@@ -1,13 +1,3 @@</div><div class='del'>-# -*- coding: utf-8 -*-</div><div class='del'>-#   irb/lc/ja/help-message.rb -</div><div class='del'>-#   	$Release Version: 0.9.6$</div><div class='del'>-#   	$Revision$</div><div class='del'>-#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)</div><div class='del'>-#</div><div class='del'>-# --</div><div class='del'>-#</div><div class='del'>-#</div><div class='del'>-#</div><div class='ctx'> Usage:  irb.rb [options] [programfile] [arguments]</div><div class='ctx'>   -f		    ~/.irbrc ã‚’èª­ã¿è¾¼ã¾ãªã„.</div><div class='ctx'>   -d                $DEBUG ã‚’trueã«ã™ã‚‹(ruby -d ã¨åŒã˜)</div><div class='hunk'>@@ -21,16 +11,23 @@ Usage:  irb.rb [options] [programfile] [arguments]</div><div class='ctx'> 		    ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®ä½œæˆæ–¹æ³•ã‚’ 0 ã‹ã‚‰ 3 ã®ã„ãšã‚Œã‹ã«è¨­å®šã™ã‚‹.</div><div class='ctx'>   --echo	    å®Ÿè¡Œçµæžœã‚’è¡¨ç¤ºã™ã‚‹(ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ).</div><div class='ctx'>   --noecho	    å®Ÿè¡Œçµæžœã‚’è¡¨ç¤ºã—ãªã„.</div><div class='del'>-  --inspect	    çµæžœå‡ºåŠ›ã«inspectã‚’ç”¨ã„ã‚‹(bcãƒ¢ãƒ¼ãƒ‰ä»¥å¤–ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ).</div><div class='add'>+  --inspect	    çµæžœå‡ºåŠ›ã«inspectã‚’ç”¨ã„ã‚‹.</div><div class='ctx'>   --noinspect	    çµæžœå‡ºåŠ›ã«inspectã‚’ç”¨ã„ãªã„.</div><div class='del'>-  --readline	    readlineãƒ©ã‚¤ãƒ–ãƒ©ãƒªã‚’åˆ©ç”¨ã™ã‚‹.</div><div class='del'>-  --noreadline	    readlineãƒ©ã‚¤ãƒ–ãƒ©ãƒªã‚’åˆ©ç”¨ã—ãªã„.</div><div class='add'>+  --multiline       ãƒžãƒ«ãƒãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’åˆ©ç”¨ã™ã‚‹.</div><div class='add'>+  --nomultiline     ãƒžãƒ«ãƒãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’åˆ©ç”¨ã—ãªã„.</div><div class='add'>+  --singleline      ã‚·ãƒ³ã‚°ãƒ«ãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’åˆ©ç”¨ã™ã‚‹.</div><div class='add'>+  --nosingleline    ã‚·ãƒ³ã‚°ãƒ«ãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã‚’åˆ©ç”¨ã—ãªã„.</div><div class='add'>+  --colorize	    è‰²ä»˜ã‘ã‚’åˆ©ç”¨ã™ã‚‹.</div><div class='add'>+  --nocolorize	    è‰²ä»˜ã‘ã‚’åˆ©ç”¨ã—ãªã„.</div><div class='add'>+  --autocomplete    ã‚ªãƒ¼ãƒˆã‚³ãƒ³ãƒ—ãƒªãƒ¼ãƒˆã‚’åˆ©ç”¨ã™ã‚‹.</div><div class='add'>+  --noautocomplete  ã‚ªãƒ¼ãƒˆã‚³ãƒ³ãƒ—ãƒªãƒ¼ãƒˆã‚’åˆ©ç”¨ã—ãªã„.</div><div class='ctx'>   --prompt prompt-mode/--prompt-mode prompt-mode</div><div class='ctx'> 		    ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆãƒ¢ãƒ¼ãƒ‰ã‚’åˆ‡æ›¿ãˆã¾ã™. ç¾åœ¨å®šç¾©ã•ã‚Œã¦ã„ã‚‹ãƒ—</div><div class='ctx'> 		    ãƒ­ãƒ³ãƒ—ãƒˆãƒ¢ãƒ¼ãƒ‰ã¯, default, simple, xmp, inf-rubyãŒ</div><div class='ctx'> 		    ç”¨æ„ã•ã‚Œã¦ã„ã¾ã™.</div><div class='ctx'>   --inf-ruby-mode   emacsã®inf-ruby-modeç”¨ã®ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆè¡¨ç¤ºã‚’è¡Œãªã†. ç‰¹</div><div class='del'>-		    ã«æŒ‡å®šãŒãªã„é™ã‚Š, readlineãƒ©ã‚¤ãƒ–ãƒ©ãƒªã¯ä½¿ã‚ãªããªã‚‹.</div><div class='add'>+                    ã«æŒ‡å®šãŒãªã„é™ã‚Š, ã‚·ãƒ³ã‚°ãƒ«ãƒ©ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã¨ãƒžãƒ«ãƒãƒ©</div><div class='add'>+                    ã‚¤ãƒ³ã‚¨ãƒ‡ã‚£ã‚¿ã¯ä½¿ã‚ãªããªã‚‹.</div><div class='ctx'>   --sample-book-mode/--simple-prompt</div><div class='ctx'> 		    éžå¸¸ã«ã‚·ãƒ³ãƒ—ãƒ«ãªãƒ—ãƒ­ãƒ³ãƒ—ãƒˆã‚’ç”¨ã„ã‚‹ãƒ¢ãƒ¼ãƒ‰ã§ã™.</div><div class='ctx'>   --noprompt	    ãƒ—ãƒ­ãƒ³ãƒ—ãƒˆè¡¨ç¤ºã‚’è¡Œãªã‚ãªã„.</div><div class='hunk'>@@ -41,12 +38,8 @@ Usage:  irb.rb [options] [programfile] [arguments]</div><div class='ctx'> 		    ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹è¡¨ç¤ºã‚’ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã®é ­ã‹ã‚‰ n, å¾Œã‚</div><div class='ctx'> 		    ã‹ã‚‰nã ã‘è¡Œãªã†. ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯16</div><div class='ctx'> </div><div class='del'>-  --irb_debug n	    irbã®ãƒ‡ãƒãƒƒã‚°ãƒ¬ãƒ™ãƒ«ã‚’nã«è¨­å®šã™ã‚‹(éžæŽ¨å¥¨).</div><div class='del'>-</div><div class='ctx'>   --verbose	    è©³ç´°ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å‡ºåŠ›ã™ã‚‹.</div><div class='ctx'>   --noverbose	    è©³ç´°ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å‡ºåŠ›ã—ãªã„(ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆ).</div><div class='ctx'>   -v, --version	    irbã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’è¡¨ç¤ºã™ã‚‹.</div><div class='ctx'>   -h, --help	    irb ã®ãƒ˜ãƒ«ãƒ—ã‚’è¡¨ç¤ºã™ã‚‹.</div><div class='ctx'>   --		    ä»¥é™ã®ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³å¼•æ•°ã‚’ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã¨ã—ã¦æ‰±ã‚ãªã„.</div><div class='del'>-</div><div class='del'>-# vim:fileencoding=utf-8</div><div class='head'>diff --git a/lib/irb/locale.rb b/lib/irb/locale.rb<br/>index b713f50e76..bb44b41002 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/locale.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/locale.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/locale.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/locale.rb</a></div><div class='hunk'>@@ -21,8 +21,10 @@ module IRB # :nodoc:</div><div class='ctx'>     LOCALE_DIR = "/lc/"</div><div class='ctx'> </div><div class='ctx'>     @@legacy_encoding_alias_map = {}.freeze</div><div class='add'>+    @@loaded = []</div><div class='ctx'> </div><div class='ctx'>     def initialize(locale = nil)</div><div class='add'>+      @override_encoding = nil</div><div class='ctx'>       @lang = @territory = @encoding_name = @modifier = nil</div><div class='ctx'>       @locale = locale || ENV["IRB_LANG"] || ENV["LC_MESSAGES"] || ENV["LC_ALL"] || ENV["LANG"] || "C"</div><div class='ctx'>       if m = LOCALE_NAME_RE.match(@locale)</div><div class='hunk'>@@ -39,12 +41,16 @@ module IRB # :nodoc:</div><div class='ctx'>       @encoding ||= (Encoding.find('locale') rescue Encoding::ASCII_8BIT)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    attr_reader :lang, :territory, :encoding, :modifier</div><div class='add'>+    attr_reader :lang, :territory, :modifier</div><div class='add'>+</div><div class='add'>+    def encoding</div><div class='add'>+      @override_encoding || @encoding</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     def String(mes)</div><div class='ctx'>       mes = super(mes)</div><div class='del'>-      if @encoding</div><div class='del'>-        mes.encode(@encoding, undef: :replace)</div><div class='add'>+      if encoding</div><div class='add'>+        mes.encode(encoding, undef: :replace)</div><div class='ctx'>       else</div><div class='ctx'>         mes</div><div class='ctx'>       end</div><div class='hunk'>@@ -107,7 +113,10 @@ module IRB # :nodoc:</div><div class='ctx'>     def load(file, priv=nil)</div><div class='ctx'>       found = find(file)</div><div class='ctx'>       if found</div><div class='del'>-        return real_load(found, priv)</div><div class='add'>+        unless @@loaded.include?(found)</div><div class='add'>+          @@loaded &lt;&lt; found # cache</div><div class='add'>+          return real_load(found, priv)</div><div class='add'>+        end</div><div class='ctx'>       else</div><div class='ctx'>         raise LoadError, "No such file to load -- #{file}"</div><div class='ctx'>       end</div><div class='head'>diff --git a/lib/irb/notifier.rb b/lib/irb/notifier.rb<br/>index 5a68b0e8c8..d0e413dd68 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/notifier.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/notifier.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/notifier.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/notifier.rb</a></div><div class='hunk'>@@ -10,17 +10,21 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require "e2mmap"</div><div class='ctx'> require_relative "output-method"</div><div class='ctx'> </div><div class='ctx'> module IRB</div><div class='ctx'>   # An output formatter used internally by the lexer.</div><div class='ctx'>   module Notifier</div><div class='del'>-    extend Exception2MessageMapper</div><div class='del'>-    def_exception :ErrUndefinedNotifier,</div><div class='del'>-      "undefined notifier level: %d is specified"</div><div class='del'>-    def_exception :ErrUnrecognizedLevel,</div><div class='del'>-      "unrecognized notifier level: %s is specified"</div><div class='add'>+    class ErrUndefinedNotifier &lt; StandardError</div><div class='add'>+      def initialize(val)</div><div class='add'>+        super("undefined notifier level: #{val} is specified")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    class ErrUnrecognizedLevel &lt; StandardError</div><div class='add'>+      def initialize(val)</div><div class='add'>+        super("unrecognized notifier level: #{val} is specified")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     # Define a new Notifier output source, returning a new CompositeNotifier</div><div class='ctx'>     # with the given +prefix+ and +output_method+.</div><div class='hunk'>@@ -162,10 +166,10 @@ module IRB</div><div class='ctx'>           @level_notifier = value</div><div class='ctx'>         when Integer</div><div class='ctx'>           l = @notifiers[value]</div><div class='del'>-          Notifier.Raise ErrUndefinedNotifier, value unless l</div><div class='add'>+          raise ErrUndefinedNotifier, value unless l</div><div class='ctx'>           @level_notifier = l</div><div class='ctx'>         else</div><div class='del'>-          Notifier.Raise ErrUnrecognizedLevel, value unless l</div><div class='add'>+          raise ErrUnrecognizedLevel, value unless l</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='head'>diff --git a/lib/irb/output-method.rb b/lib/irb/output-method.rb<br/>index 935a127d0a..3fda708cb0 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/output-method.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/output-method.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/output-method.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/output-method.rb</a></div><div class='hunk'>@@ -10,21 +10,21 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require "e2mmap"</div><div class='del'>-</div><div class='ctx'> module IRB</div><div class='ctx'>   # An abstract output class for IO in irb. This is mainly used internally by</div><div class='ctx'>   # IRB::Notifier. You can define your own output method to use with Irb.new,</div><div class='ctx'>   # or Context.new</div><div class='ctx'>   class OutputMethod</div><div class='del'>-    extend Exception2MessageMapper</div><div class='del'>-    def_exception :NotImplementedError, "Need to define `%s'"</div><div class='del'>-</div><div class='add'>+    class NotImplementedError &lt; StandardError</div><div class='add'>+      def initialize(val)</div><div class='add'>+        super("Need to define `#{val}'")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'> </div><div class='ctx'>     # Open this method to implement your own output method, raises a</div><div class='ctx'>     # NotImplementedError if you don't define #print in your own class.</div><div class='ctx'>     def print(*opts)</div><div class='del'>-      OutputMethod.Raise NotImplementedError, "print"</div><div class='add'>+      raise NotImplementedError, "print"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # Prints the given +opts+, with a newline delimiter.</div><div class='head'>diff --git a/lib/irb/ruby-lex.rb b/lib/irb/ruby-lex.rb<br/>index 555d1f024f..85b336fbe1 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/ruby-lex.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ruby-lex.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/ruby-lex.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/ruby-lex.rb</a></div><div class='hunk'>@@ -10,74 +10,111 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require "e2mmap"</div><div class='del'>-require_relative "slex"</div><div class='del'>-require_relative "ruby-token"</div><div class='add'>+require "ripper"</div><div class='add'>+require "jruby" if RUBY_ENGINE == "jruby"</div><div class='ctx'> </div><div class='ctx'> # :stopdoc:</div><div class='ctx'> class RubyLex</div><div class='ctx'> </div><div class='del'>-  extend Exception2MessageMapper</div><div class='del'>-  def_exception(:AlreadyDefinedToken, "Already defined token(%s)")</div><div class='del'>-  def_exception(:TkReading2TokenNoKey, "key nothing(key='%s')")</div><div class='del'>-  def_exception(:TkSymbol2TokenNoKey, "key nothing(key='%s')")</div><div class='del'>-  def_exception(:TkReading2TokenDuplicateError,</div><div class='del'>-                "key duplicate(token_n='%s', key='%s')")</div><div class='del'>-  def_exception(:SyntaxError, "%s")</div><div class='del'>-</div><div class='del'>-  def_exception(:TerminateLineInput, "Terminate Line Input")</div><div class='del'>-</div><div class='del'>-  include RubyToken</div><div class='del'>-</div><div class='del'>-  class &lt;&lt; self</div><div class='del'>-    attr_accessor :debug_level</div><div class='del'>-    def debug?</div><div class='del'>-      @debug_level &gt; 0</div><div class='add'>+  class TerminateLineInput &lt; StandardError</div><div class='add'>+    def initialize</div><div class='add'>+      super("Terminate Line Input")</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='del'>-  @debug_level = 0</div><div class='ctx'> </div><div class='ctx'>   def initialize</div><div class='del'>-    lex_init</div><div class='del'>-    set_input(STDIN)</div><div class='del'>-</div><div class='del'>-    @seek = 0</div><div class='ctx'>     @exp_line_no = @line_no = 1</div><div class='del'>-    @base_char_no = 0</div><div class='del'>-    @char_no = 0</div><div class='del'>-    @rests = []</div><div class='del'>-    @readed = []</div><div class='del'>-    @here_readed = []</div><div class='del'>-</div><div class='ctx'>     @indent = 0</div><div class='del'>-    @indent_stack = []</div><div class='del'>-    @lex_state = EXPR_BEG</div><div class='del'>-    @space_seen = false</div><div class='del'>-    @here_header = false</div><div class='del'>-    @post_symbeg = false</div><div class='del'>-</div><div class='ctx'>     @continue = false</div><div class='ctx'>     @line = ""</div><div class='del'>-</div><div class='del'>-    @skip_space = false</div><div class='del'>-    @readed_auto_clean_up = false</div><div class='del'>-    @exception_on_syntax_error = true</div><div class='del'>-</div><div class='ctx'>     @prompt = nil</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  attr_accessor :skip_space</div><div class='del'>-  attr_accessor :readed_auto_clean_up</div><div class='del'>-  attr_accessor :exception_on_syntax_error</div><div class='del'>-</div><div class='del'>-  attr_reader :seek</div><div class='del'>-  attr_reader :char_no</div><div class='del'>-  attr_reader :line_no</div><div class='del'>-  attr_reader :indent</div><div class='add'>+  def self.compile_with_errors_suppressed(code, line_no: 1)</div><div class='add'>+    begin</div><div class='add'>+      result = yield code, line_no</div><div class='add'>+    rescue ArgumentError</div><div class='add'>+      # Ruby can issue an error for the code if there is an</div><div class='add'>+      # incomplete magic comment for encoding in it. Force an</div><div class='add'>+      # expression with a new line before the code in this</div><div class='add'>+      # case to prevent magic comment handling.  To make sure</div><div class='add'>+      # line numbers in the lexed code remain the same,</div><div class='add'>+      # decrease the line number by one.</div><div class='add'>+      code = ";\n#{code}"</div><div class='add'>+      line_no -= 1</div><div class='add'>+      result = yield code, line_no</div><div class='add'>+    end</div><div class='add'>+    result</div><div class='add'>+  end</div><div class='ctx'> </div><div class='ctx'>   # io functions</div><div class='del'>-  def set_input(io, p = nil, &amp;block)</div><div class='add'>+  def set_input(io, p = nil, context:, &amp;block)</div><div class='ctx'>     @io = io</div><div class='add'>+    if @io.respond_to?(:check_termination)</div><div class='add'>+      @io.check_termination do |code|</div><div class='add'>+        if Reline::IOGate.in_pasting?</div><div class='add'>+          lex = RubyLex.new</div><div class='add'>+          rest = lex.check_termination_in_prev_line(code, context: context)</div><div class='add'>+          if rest</div><div class='add'>+            Reline.delete_text</div><div class='add'>+            rest.bytes.reverse_each do |c|</div><div class='add'>+              Reline.ungetc(c)</div><div class='add'>+            end</div><div class='add'>+            true</div><div class='add'>+          else</div><div class='add'>+            false</div><div class='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          # Accept any single-line input for symbol aliases or commands that transform args</div><div class='add'>+          command = code.split(/\s/, 2).first</div><div class='add'>+          if context.symbol_alias?(command) || context.transform_args?(command)</div><div class='add'>+            next true</div><div class='add'>+          end</div><div class='add'>+</div><div class='add'>+          code.gsub!(/\s*\z/, '').concat("\n")</div><div class='add'>+          ltype, indent, continue, code_block_open = check_state(code, context: context)</div><div class='add'>+          if ltype or indent &gt; 0 or continue or code_block_open</div><div class='add'>+            false</div><div class='add'>+          else</div><div class='add'>+            true</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    if @io.respond_to?(:dynamic_prompt)</div><div class='add'>+      @io.dynamic_prompt do |lines|</div><div class='add'>+        lines &lt;&lt; '' if lines.empty?</div><div class='add'>+        result = []</div><div class='add'>+        tokens = self.class.ripper_lex_without_warning(lines.map{ |l| l + "\n" }.join, context: context)</div><div class='add'>+        code = String.new</div><div class='add'>+        partial_tokens = []</div><div class='add'>+        unprocessed_tokens = []</div><div class='add'>+        line_num_offset = 0</div><div class='add'>+        tokens.each do |t|</div><div class='add'>+          partial_tokens &lt;&lt; t</div><div class='add'>+          unprocessed_tokens &lt;&lt; t</div><div class='add'>+          if t.tok.include?("\n")</div><div class='add'>+            t_str = t.tok</div><div class='add'>+            t_str.each_line("\n") do |s|</div><div class='add'>+              code &lt;&lt; s &lt;&lt; "\n"</div><div class='add'>+              ltype, indent, continue, code_block_open = check_state(code, partial_tokens, context: context)</div><div class='add'>+              result &lt;&lt; @prompt.call(ltype, indent, continue || code_block_open, @line_no + line_num_offset)</div><div class='add'>+              line_num_offset += 1</div><div class='add'>+            end</div><div class='add'>+            unprocessed_tokens = []</div><div class='add'>+          else</div><div class='add'>+            code &lt;&lt; t.tok</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        unless unprocessed_tokens.empty?</div><div class='add'>+          ltype, indent, continue, code_block_open = check_state(code, unprocessed_tokens, context: context)</div><div class='add'>+          result &lt;&lt; @prompt.call(ltype, indent, continue || code_block_open, @line_no + line_num_offset)</div><div class='add'>+        end</div><div class='add'>+        result</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     if p.respond_to?(:call)</div><div class='ctx'>       @input = p</div><div class='ctx'>     elsif block_given?</div><div class='hunk'>@@ -87,119 +124,108 @@ class RubyLex</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def get_readed</div><div class='del'>-    if idx = @readed.rindex("\n")</div><div class='del'>-      @base_char_no = @readed.size - (idx + 1)</div><div class='del'>-    else</div><div class='del'>-      @base_char_no += @readed.size</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    readed = @readed.join("")</div><div class='del'>-    @readed = []</div><div class='del'>-    readed</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def getc</div><div class='del'>-    while @rests.empty?</div><div class='del'>-      @rests.push nil unless buf_input</div><div class='del'>-    end</div><div class='del'>-    c = @rests.shift</div><div class='del'>-    if @here_header</div><div class='del'>-      @here_readed.push c</div><div class='del'>-    else</div><div class='del'>-      @readed.push c</div><div class='del'>-    end</div><div class='del'>-    @seek += 1</div><div class='del'>-    if c == "\n"</div><div class='del'>-      @line_no += 1</div><div class='del'>-      @char_no = 0</div><div class='add'>+  def set_prompt(p = nil, &amp;block)</div><div class='add'>+    p = block if block_given?</div><div class='add'>+    if p.respond_to?(:call)</div><div class='add'>+      @prompt = p</div><div class='ctx'>     else</div><div class='del'>-      @char_no += 1</div><div class='add'>+      @prompt = Proc.new{print p}</div><div class='ctx'>     end</div><div class='del'>-    c</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def gets</div><div class='del'>-    l = ""</div><div class='del'>-    while c = getc</div><div class='del'>-      l.concat(c)</div><div class='del'>-      break if c == "\n"</div><div class='del'>-    end</div><div class='del'>-    return nil if l == "" and c.nil?</div><div class='del'>-    l</div><div class='del'>-  end</div><div class='add'>+  ERROR_TOKENS = [</div><div class='add'>+    :on_parse_error,</div><div class='add'>+    :compile_error,</div><div class='add'>+    :on_assign_error,</div><div class='add'>+    :on_alias_error,</div><div class='add'>+    :on_class_name_error,</div><div class='add'>+    :on_param_error</div><div class='add'>+  ]</div><div class='ctx'> </div><div class='del'>-  def eof?</div><div class='del'>-    @io.eof?</div><div class='add'>+  def self.generate_local_variables_assign_code(local_variables)</div><div class='add'>+    "#{local_variables.join('=')}=nil;" unless local_variables.empty?</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def getc_of_rests</div><div class='del'>-    if @rests.empty?</div><div class='del'>-      nil</div><div class='add'>+  def self.ripper_lex_without_warning(code, context: nil)</div><div class='add'>+    verbose, $VERBOSE = $VERBOSE, nil</div><div class='add'>+    lvars_code = generate_local_variables_assign_code(context&amp;.local_variables || [])</div><div class='add'>+    if lvars_code</div><div class='add'>+      code = "#{lvars_code}\n#{code}"</div><div class='add'>+      line_no = 0</div><div class='ctx'>     else</div><div class='del'>-      getc</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def ungetc(c = nil)</div><div class='del'>-    if @here_readed.empty?</div><div class='del'>-      c2 = @readed.pop</div><div class='del'>-    else</div><div class='del'>-      c2 = @here_readed.pop</div><div class='del'>-    end</div><div class='del'>-    c = c2 unless c</div><div class='del'>-    @rests.unshift c #c =</div><div class='del'>-    @seek -= 1</div><div class='del'>-    if c == "\n"</div><div class='del'>-      @line_no -= 1</div><div class='del'>-      if idx = @readed.rindex("\n")</div><div class='del'>-        @char_no = idx + 1</div><div class='add'>+      line_no = 1</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    compile_with_errors_suppressed(code, line_no: line_no) do |inner_code, line_no|</div><div class='add'>+      lexer = Ripper::Lexer.new(inner_code, '-', line_no)</div><div class='add'>+      if lexer.respond_to?(:scan) # Ruby 2.7+</div><div class='add'>+        lexer.scan.each_with_object([]) do |t, tokens|</div><div class='add'>+          next if t.pos.first == 0</div><div class='add'>+          prev_tk = tokens.last</div><div class='add'>+          position_overlapped = prev_tk &amp;&amp; t.pos[0] == prev_tk.pos[0] &amp;&amp; t.pos[1] &lt; prev_tk.pos[1] + prev_tk.tok.bytesize</div><div class='add'>+          if position_overlapped</div><div class='add'>+            tokens[-1] = t if ERROR_TOKENS.include?(prev_tk.event) &amp;&amp; !ERROR_TOKENS.include?(t.event)</div><div class='add'>+          else</div><div class='add'>+            tokens &lt;&lt; t</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='ctx'>       else</div><div class='del'>-        @char_no = @base_char_no + @readed.size</div><div class='add'>+        lexer.parse.reject { |it| it.pos.first == 0 }.sort_by(&amp;:pos)</div><div class='ctx'>       end</div><div class='del'>-    else</div><div class='del'>-      @char_no -= 1</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def peek_equal?(str)</div><div class='del'>-    chrs = str.split(//)</div><div class='del'>-    until @rests.size &gt;= chrs.size</div><div class='del'>-      return false unless buf_input</div><div class='ctx'>     end</div><div class='del'>-    @rests[0, chrs.size] == chrs</div><div class='add'>+  ensure</div><div class='add'>+    $VERBOSE = verbose</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def peek_match?(regexp)</div><div class='del'>-    while @rests.empty?</div><div class='del'>-      return false unless buf_input</div><div class='add'>+  def find_prev_spaces(line_index)</div><div class='add'>+    return 0 if @tokens.size == 0</div><div class='add'>+    md = @tokens[0].tok.match(/(\A +)/)</div><div class='add'>+    prev_spaces = md.nil? ? 0 : md[1].count(' ')</div><div class='add'>+    line_count = 0</div><div class='add'>+    @tokens.each_with_index do |t, i|</div><div class='add'>+      if t.tok.include?("\n")</div><div class='add'>+        line_count += t.tok.count("\n")</div><div class='add'>+        if line_count &gt;= line_index</div><div class='add'>+          return prev_spaces</div><div class='add'>+        end</div><div class='add'>+        if (@tokens.size - 1) &gt; i</div><div class='add'>+          md = @tokens[i + 1].tok.match(/(\A +)/)</div><div class='add'>+          prev_spaces = md.nil? ? 0 : md[1].count(' ')</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='del'>-    regexp =~ @rests.join("")</div><div class='add'>+    prev_spaces</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def peek(i = 0)</div><div class='del'>-    while @rests.size &lt;= i</div><div class='del'>-      return nil unless buf_input</div><div class='add'>+  def set_auto_indent(context)</div><div class='add'>+    if @io.respond_to?(:auto_indent) and context.auto_indent_mode</div><div class='add'>+      @io.auto_indent do |lines, line_index, byte_pointer, is_newline|</div><div class='add'>+        if is_newline</div><div class='add'>+          @tokens = self.class.ripper_lex_without_warning(lines[0..line_index].join("\n"), context: context)</div><div class='add'>+          prev_spaces = find_prev_spaces(line_index)</div><div class='add'>+          depth_difference = check_newline_depth_difference</div><div class='add'>+          depth_difference = 0 if depth_difference &lt; 0</div><div class='add'>+          prev_spaces + depth_difference * 2</div><div class='add'>+        else</div><div class='add'>+          code = line_index.zero? ? '' : lines[0..(line_index - 1)].map{ |l| l + "\n" }.join</div><div class='add'>+          last_line = lines[line_index]&amp;.byteslice(0, byte_pointer)</div><div class='add'>+          code += last_line if last_line</div><div class='add'>+          @tokens = self.class.ripper_lex_without_warning(code, context: context)</div><div class='add'>+          check_corresponding_token_depth(lines, line_index)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='ctx'>     end</div><div class='del'>-    @rests[i]</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def buf_input</div><div class='del'>-    prompt</div><div class='del'>-    line = @input.call</div><div class='del'>-    return nil unless line</div><div class='del'>-    @rests.concat line.chars.to_a</div><div class='del'>-    true</div><div class='del'>-  end</div><div class='del'>-  private :buf_input</div><div class='del'>-</div><div class='del'>-  def set_prompt(p = nil, &amp;block)</div><div class='del'>-    p = block if block_given?</div><div class='del'>-    if p.respond_to?(:call)</div><div class='del'>-      @prompt = p</div><div class='del'>-    else</div><div class='del'>-      @prompt = Proc.new{print p}</div><div class='del'>-    end</div><div class='add'>+  def check_state(code, tokens = nil, context: nil)</div><div class='add'>+    tokens = self.class.ripper_lex_without_warning(code, context: context) unless tokens</div><div class='add'>+    ltype = process_literal_type(tokens)</div><div class='add'>+    indent = process_nesting_level(tokens)</div><div class='add'>+    continue = process_continue(tokens)</div><div class='add'>+    lvars_code = self.class.generate_local_variables_assign_code(context.local_variables)</div><div class='add'>+    code = "#{lvars_code}\n#{code}" if lvars_code</div><div class='add'>+    code_block_open = check_code_block(code, tokens)</div><div class='add'>+    [ltype, indent, continue, code_block_open]</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def prompt</div><div class='hunk'>@@ -210,34 +236,29 @@ class RubyLex</div><div class='ctx'> </div><div class='ctx'>   def initialize_input</div><div class='ctx'>     @ltype = nil</div><div class='del'>-    @quoted = nil</div><div class='ctx'>     @indent = 0</div><div class='del'>-    @indent_stack = []</div><div class='del'>-    @lex_state = EXPR_BEG</div><div class='del'>-    @space_seen = false</div><div class='del'>-    @here_header = false</div><div class='del'>-</div><div class='ctx'>     @continue = false</div><div class='del'>-    @post_symbeg = false</div><div class='del'>-</div><div class='del'>-    prompt</div><div class='del'>-</div><div class='ctx'>     @line = ""</div><div class='ctx'>     @exp_line_no = @line_no</div><div class='add'>+    @code_block_open = false</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def each_top_level_statement</div><div class='add'>+  def each_top_level_statement(context)</div><div class='ctx'>     initialize_input</div><div class='ctx'>     catch(:TERM_INPUT) do</div><div class='ctx'>       loop do</div><div class='ctx'>         begin</div><div class='del'>-          @continue = false</div><div class='ctx'>           prompt</div><div class='del'>-          unless l = lex</div><div class='add'>+          unless l = lex(context)</div><div class='ctx'>             throw :TERM_INPUT if @line == ''</div><div class='ctx'>           else</div><div class='add'>+            @line_no += l.count("\n")</div><div class='add'>+            if l == "\n"</div><div class='add'>+              @exp_line_no += 1</div><div class='add'>+              next</div><div class='add'>+            end</div><div class='ctx'>             @line.concat l</div><div class='del'>-            if @ltype or @continue or @indent &gt; 0</div><div class='add'>+            if @code_block_open or @ltype or @continue or @indent &gt; 0</div><div class='ctx'>               next</div><div class='ctx'>             end</div><div class='ctx'>           end</div><div class='hunk'>@@ -245,936 +266,601 @@ class RubyLex</div><div class='ctx'>             @line.force_encoding(@io.encoding)</div><div class='ctx'>             yield @line, @exp_line_no</div><div class='ctx'>           end</div><div class='del'>-          break unless l</div><div class='add'>+          raise TerminateLineInput if @io.eof?</div><div class='ctx'>           @line = ''</div><div class='ctx'>           @exp_line_no = @line_no</div><div class='ctx'> </div><div class='ctx'>           @indent = 0</div><div class='del'>-          @indent_stack = []</div><div class='del'>-          prompt</div><div class='ctx'>         rescue TerminateLineInput</div><div class='ctx'>           initialize_input</div><div class='ctx'>           prompt</div><div class='del'>-          get_readed</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def lex</div><div class='del'>-    continue = @continue</div><div class='del'>-    while tk = token</div><div class='del'>-      case tk</div><div class='del'>-      when TkNL, TkEND_OF_SCRIPT</div><div class='del'>-        @continue = continue unless continue.nil?</div><div class='del'>-        break unless @continue</div><div class='del'>-      when TkSPACE, TkCOMMENT</div><div class='del'>-      when TkSEMICOLON, TkBEGIN, TkELSE</div><div class='del'>-        @continue = continue = false</div><div class='del'>-      else</div><div class='del'>-        continue = nil</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    line = get_readed</div><div class='del'>-    if line == "" and tk.kind_of?(TkEND_OF_SCRIPT) || tk.nil?</div><div class='del'>-      nil</div><div class='del'>-    else</div><div class='del'>-      line</div><div class='del'>-    end</div><div class='add'>+  def lex(context)</div><div class='add'>+    line = @input.call</div><div class='add'>+    if @io.respond_to?(:check_termination)</div><div class='add'>+      return line # multiline</div><div class='add'>+    end</div><div class='add'>+    code = @line + (line.nil? ? '' : line)</div><div class='add'>+    code.gsub!(/\s*\z/, '').concat("\n")</div><div class='add'>+    @tokens = self.class.ripper_lex_without_warning(code, context: context)</div><div class='add'>+    @ltype, @indent, @continue, @code_block_open = check_state(code, @tokens, context: context)</div><div class='add'>+    line</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def token</div><div class='del'>-    @prev_seek = @seek</div><div class='del'>-    @prev_line_no = @line_no</div><div class='del'>-    @prev_char_no = @char_no</div><div class='del'>-    begin</div><div class='del'>-      begin</div><div class='del'>-        tk = @OP.match(self)</div><div class='del'>-        @space_seen = tk.kind_of?(TkSPACE)</div><div class='del'>-        @lex_state = EXPR_END if @post_symbeg &amp;&amp; tk.kind_of?(TkOp)</div><div class='del'>-        @post_symbeg = tk.kind_of?(TkSYMBEG)</div><div class='del'>-      rescue SyntaxError</div><div class='del'>-        raise if @exception_on_syntax_error</div><div class='del'>-        tk = TkError.new(@seek, @line_no, @char_no)</div><div class='del'>-      end</div><div class='del'>-    end while @skip_space and tk.kind_of?(TkSPACE)</div><div class='del'>-    if @readed_auto_clean_up</div><div class='del'>-      get_readed</div><div class='del'>-    end</div><div class='del'>-    tk</div><div class='add'>+  def process_continue(tokens = @tokens)</div><div class='add'>+    # last token is always newline</div><div class='add'>+    if tokens.size &gt;= 2 and tokens[-2].event == :on_regexp_end</div><div class='add'>+      # end of regexp literal</div><div class='add'>+      return false</div><div class='add'>+    elsif tokens.size &gt;= 2 and tokens[-2].event == :on_semicolon</div><div class='add'>+      return false</div><div class='add'>+    elsif tokens.size &gt;= 2 and tokens[-2].event == :on_kw and ['begin', 'else', 'ensure'].include?(tokens[-2].tok)</div><div class='add'>+      return false</div><div class='add'>+    elsif !tokens.empty? and tokens.last.tok == "\\\n"</div><div class='add'>+      return true</div><div class='add'>+    elsif tokens.size &gt;= 1 and tokens[-1].event == :on_heredoc_end # "EOH\n"</div><div class='add'>+      return false</div><div class='add'>+    elsif tokens.size &gt;= 2 and tokens[-2].state.anybits?(Ripper::EXPR_BEG | Ripper::EXPR_FNAME) and tokens[-2].tok !~ /\A\.\.\.?\z/</div><div class='add'>+      # end of literal except for regexp</div><div class='add'>+      # endless range at end of line is not a continue</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+    false</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  ENINDENT_CLAUSE = [</div><div class='del'>-    "case", "class", "def", "do", "for", "if",</div><div class='del'>-    "module", "unless", "until", "while", "begin"</div><div class='del'>-  ]</div><div class='del'>-  DEINDENT_CLAUSE = ["end"</div><div class='del'>-  ]</div><div class='del'>-</div><div class='del'>-  PERCENT_LTYPE = {</div><div class='del'>-    "q" =&gt; "\'",</div><div class='del'>-    "Q" =&gt; "\"",</div><div class='del'>-    "x" =&gt; "\`",</div><div class='del'>-    "r" =&gt; "/",</div><div class='del'>-    "w" =&gt; "]",</div><div class='del'>-    "W" =&gt; "]",</div><div class='del'>-    "i" =&gt; "]",</div><div class='del'>-    "I" =&gt; "]",</div><div class='del'>-    "s" =&gt; ":"</div><div class='del'>-  }</div><div class='del'>-</div><div class='del'>-  PERCENT_PAREN = {</div><div class='del'>-    "{" =&gt; "}",</div><div class='del'>-    "[" =&gt; "]",</div><div class='del'>-    "&lt;" =&gt; "&gt;",</div><div class='del'>-    "(" =&gt; ")"</div><div class='del'>-  }</div><div class='del'>-</div><div class='del'>-  Ltype2Token = {</div><div class='del'>-    "\'" =&gt; TkSTRING,</div><div class='del'>-    "\"" =&gt; TkSTRING,</div><div class='del'>-    "\`" =&gt; TkXSTRING,</div><div class='del'>-    "/" =&gt; TkREGEXP,</div><div class='del'>-    "]" =&gt; TkDSTRING,</div><div class='del'>-    ":" =&gt; TkSYMBOL</div><div class='del'>-  }</div><div class='del'>-  DLtype2Token = {</div><div class='del'>-    "\"" =&gt; TkDSTRING,</div><div class='del'>-    "\`" =&gt; TkDXSTRING,</div><div class='del'>-    "/" =&gt; TkDREGEXP,</div><div class='del'>-  }</div><div class='del'>-</div><div class='del'>-  def lex_init()</div><div class='del'>-    @OP = IRB::SLex.new</div><div class='del'>-    @OP.def_rules("\0", "\004", "\032") do |op, io|</div><div class='del'>-      Token(TkEND_OF_SCRIPT)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rules(" ", "\t", "\f", "\r", "\13") do |op, io|</div><div class='del'>-      @space_seen = true</div><div class='del'>-      while getc =~ /[ \t\f\r\13]/; end</div><div class='del'>-      ungetc</div><div class='del'>-      Token(TkSPACE)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("#") do |op, io|</div><div class='del'>-      identify_comment</div><div class='add'>+  def check_code_block(code, tokens = @tokens)</div><div class='add'>+    return true if tokens.empty?</div><div class='add'>+    if tokens.last.event == :on_heredoc_beg</div><div class='add'>+      return true</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    @OP.def_rule("=begin",</div><div class='del'>-                 proc{|op, io| @prev_char_no == 0 &amp;&amp; peek(0) =~ /\s/}) do</div><div class='del'>-      |op, io|</div><div class='del'>-      @ltype = "="</div><div class='del'>-      until getc == "\n"; end</div><div class='del'>-      until peek_equal?("=end") &amp;&amp; peek(4) =~ /\s/</div><div class='del'>-        until getc == "\n"; end</div><div class='del'>-      end</div><div class='del'>-      gets</div><div class='del'>-      @ltype = nil</div><div class='del'>-      Token(TkRD_COMMENT)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("\n") do |op, io|</div><div class='del'>-      print "\\n\n" if RubyLex.debug?</div><div class='del'>-      case @lex_state</div><div class='del'>-      when EXPR_BEG, EXPR_FNAME, EXPR_DOT</div><div class='del'>-        @continue = true</div><div class='del'>-      else</div><div class='del'>-        @continue = false</div><div class='del'>-        @lex_state = EXPR_BEG</div><div class='del'>-        until (@indent_stack.empty? ||</div><div class='del'>-            [TkLPAREN, TkLBRACK, TkLBRACE,</div><div class='del'>-             TkfLPAREN, TkfLBRACK, TkfLBRACE].include?(@indent_stack.last))</div><div class='del'>-          @indent_stack.pop</div><div class='add'>+    begin # check if parser error are available</div><div class='add'>+      verbose, $VERBOSE = $VERBOSE, nil</div><div class='add'>+      case RUBY_ENGINE</div><div class='add'>+      when 'ruby'</div><div class='add'>+        self.class.compile_with_errors_suppressed(code) do |inner_code, line_no|</div><div class='add'>+          RubyVM::InstructionSequence.compile(inner_code, nil, nil, line_no)</div><div class='ctx'>         end</div><div class='del'>-      end</div><div class='del'>-      @here_header = false</div><div class='del'>-      @here_readed = []</div><div class='del'>-      Token(TkNL)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rules("*", "**",</div><div class='del'>-                  "=", "==", "===",</div><div class='del'>-                  "=~", "&lt;=&gt;",</div><div class='del'>-                  "&lt;", "&lt;=",</div><div class='del'>-                  "&gt;", "&gt;=", "&gt;&gt;",</div><div class='del'>-                  "!", "!=", "!~") do</div><div class='del'>-      |op, io|</div><div class='del'>-      case @lex_state</div><div class='del'>-      when EXPR_FNAME, EXPR_DOT</div><div class='del'>-        @lex_state = EXPR_ARG</div><div class='add'>+      when 'jruby'</div><div class='add'>+        JRuby.compile_ir(code)</div><div class='ctx'>       else</div><div class='del'>-        @lex_state = EXPR_BEG</div><div class='del'>-      end</div><div class='del'>-      Token(op)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rules("&lt;&lt;") do</div><div class='del'>-      |op, io|</div><div class='del'>-      tk = nil</div><div class='del'>-      if @lex_state != EXPR_END &amp;&amp; @lex_state != EXPR_CLASS &amp;&amp;</div><div class='del'>-          (@lex_state != EXPR_ARG || @space_seen)</div><div class='del'>-        c = peek(0)</div><div class='del'>-        if /[-~"'`\w]/ =~ c</div><div class='del'>-          tk = identify_here_document</div><div class='add'>+        catch(:valid) do</div><div class='add'>+          eval("BEGIN { throw :valid, true }\n#{code}")</div><div class='add'>+          false</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='del'>-      unless tk</div><div class='del'>-        tk = Token(op)</div><div class='del'>-        case @lex_state</div><div class='del'>-        when EXPR_FNAME, EXPR_DOT</div><div class='del'>-          @lex_state = EXPR_ARG</div><div class='del'>-        else</div><div class='del'>-          @lex_state = EXPR_BEG</div><div class='del'>-        end</div><div class='add'>+    rescue EncodingError</div><div class='add'>+      # This is for a hash with invalid encoding symbol, {"\xAE": 1}</div><div class='add'>+    rescue SyntaxError =&gt; e</div><div class='add'>+      case e.message</div><div class='add'>+      when /unterminated (?:string|regexp) meets end of file/</div><div class='add'>+        # "unterminated regexp meets end of file"</div><div class='add'>+        #</div><div class='add'>+        #   example:</div><div class='add'>+        #     /</div><div class='add'>+        #</div><div class='add'>+        # "unterminated string meets end of file"</div><div class='add'>+        #</div><div class='add'>+        #   example:</div><div class='add'>+        #     '</div><div class='add'>+        return true</div><div class='add'>+      when /syntax error, unexpected end-of-input/</div><div class='add'>+        # "syntax error, unexpected end-of-input, expecting keyword_end"</div><div class='add'>+        #</div><div class='add'>+        #   example:</div><div class='add'>+        #     if true</div><div class='add'>+        #       hoge</div><div class='add'>+        #       if false</div><div class='add'>+        #         fuga</div><div class='add'>+        #       end</div><div class='add'>+        return true</div><div class='add'>+      when /syntax error, unexpected keyword_end/</div><div class='add'>+        # "syntax error, unexpected keyword_end"</div><div class='add'>+        #</div><div class='add'>+        #   example:</div><div class='add'>+        #     if (</div><div class='add'>+        #     end</div><div class='add'>+        #</div><div class='add'>+        #   example:</div><div class='add'>+        #     end</div><div class='add'>+        return false</div><div class='add'>+      when /syntax error, unexpected '\.'/</div><div class='add'>+        # "syntax error, unexpected '.'"</div><div class='add'>+        #</div><div class='add'>+        #   example:</div><div class='add'>+        #     .</div><div class='add'>+        return false</div><div class='add'>+      when /unexpected tREGEXP_BEG/</div><div class='add'>+        # "syntax error, unexpected tREGEXP_BEG, expecting keyword_do or '{' or '('"</div><div class='add'>+        #</div><div class='add'>+        #   example:</div><div class='add'>+        #     method / f /</div><div class='add'>+        return false</div><div class='ctx'>       end</div><div class='del'>-      tk</div><div class='add'>+    ensure</div><div class='add'>+      $VERBOSE = verbose</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    @OP.def_rules("'", '"') do</div><div class='del'>-      |op, io|</div><div class='del'>-      identify_string(op)</div><div class='del'>-    end</div><div class='add'>+    last_lex_state = tokens.last.state</div><div class='ctx'> </div><div class='del'>-    @OP.def_rules("`") do</div><div class='del'>-      |op, io|</div><div class='del'>-      if @lex_state == EXPR_FNAME</div><div class='del'>-        @lex_state = EXPR_END</div><div class='del'>-        Token(op)</div><div class='del'>-      else</div><div class='del'>-        identify_string(op)</div><div class='del'>-      end</div><div class='add'>+    if last_lex_state.allbits?(Ripper::EXPR_BEG)</div><div class='add'>+      return false</div><div class='add'>+    elsif last_lex_state.allbits?(Ripper::EXPR_DOT)</div><div class='add'>+      return true</div><div class='add'>+    elsif last_lex_state.allbits?(Ripper::EXPR_CLASS)</div><div class='add'>+      return true</div><div class='add'>+    elsif last_lex_state.allbits?(Ripper::EXPR_FNAME)</div><div class='add'>+      return true</div><div class='add'>+    elsif last_lex_state.allbits?(Ripper::EXPR_VALUE)</div><div class='add'>+      return true</div><div class='add'>+    elsif last_lex_state.allbits?(Ripper::EXPR_ARG)</div><div class='add'>+      return false</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    @OP.def_rules('?') do</div><div class='del'>-      |op, io|</div><div class='del'>-      if @lex_state == EXPR_END</div><div class='del'>-        @lex_state = EXPR_BEG</div><div class='del'>-        Token(TkQUESTION)</div><div class='add'>+    false</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def process_nesting_level(tokens = @tokens)</div><div class='add'>+    indent = 0</div><div class='add'>+    in_oneliner_def = nil</div><div class='add'>+    tokens.each_with_index { |t, index|</div><div class='add'>+      # detecting one-liner method definition</div><div class='add'>+      if in_oneliner_def.nil?</div><div class='add'>+        if t.state.allbits?(Ripper::EXPR_ENDFN)</div><div class='add'>+          in_oneliner_def = :ENDFN</div><div class='add'>+        end</div><div class='ctx'>       else</div><div class='del'>-        ch = getc</div><div class='del'>-        if @lex_state == EXPR_ARG &amp;&amp; ch =~ /\s/</div><div class='del'>-          ungetc</div><div class='del'>-          @lex_state = EXPR_BEG;</div><div class='del'>-          Token(TkQUESTION)</div><div class='add'>+        if t.state.allbits?(Ripper::EXPR_ENDFN)</div><div class='add'>+          # continuing</div><div class='add'>+        elsif t.state.allbits?(Ripper::EXPR_BEG)</div><div class='add'>+          if t.tok == '='</div><div class='add'>+            in_oneliner_def = :BODY</div><div class='add'>+          end</div><div class='ctx'>         else</div><div class='del'>-          if (ch == '\\')</div><div class='del'>-            read_escape</div><div class='add'>+          if in_oneliner_def == :BODY</div><div class='add'>+            # one-liner method definition</div><div class='add'>+            indent -= 1</div><div class='ctx'>           end</div><div class='del'>-          @lex_state = EXPR_END</div><div class='del'>-          Token(TkINTEGER)</div><div class='add'>+          in_oneliner_def = nil</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rules("&amp;", "&amp;&amp;", "|", "||") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_BEG</div><div class='del'>-      Token(op)</div><div class='del'>-    end</div><div class='ctx'> </div><div class='del'>-    @OP.def_rules("+=", "-=", "*=", "**=",</div><div class='del'>-                  "&amp;=", "|=", "^=", "&lt;&lt;=", "&gt;&gt;=", "||=", "&amp;&amp;=") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_BEG</div><div class='del'>-      op =~ /^(.*)=$/</div><div class='del'>-      Token(TkOPASGN, $1)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("+@", proc{|op, io| @lex_state == EXPR_FNAME}) do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_ARG</div><div class='del'>-      Token(op)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("-@", proc{|op, io| @lex_state == EXPR_FNAME}) do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_ARG</div><div class='del'>-      Token(op)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rules("+", "-") do</div><div class='del'>-      |op, io|</div><div class='del'>-      catch(:RET) do</div><div class='del'>-        if @lex_state == EXPR_ARG</div><div class='del'>-          if @space_seen and peek(0) =~ /[0-9]/</div><div class='del'>-            throw :RET, identify_number</div><div class='del'>-          else</div><div class='del'>-            @lex_state = EXPR_BEG</div><div class='del'>-          end</div><div class='del'>-        elsif @lex_state != EXPR_END and peek(0) =~ /[0-9]/</div><div class='del'>-          throw :RET, identify_number</div><div class='del'>-        else</div><div class='del'>-          @lex_state = EXPR_BEG</div><div class='add'>+      case t.event</div><div class='add'>+      when :on_lbracket, :on_lbrace, :on_lparen, :on_tlambeg</div><div class='add'>+        indent += 1</div><div class='add'>+      when :on_rbracket, :on_rbrace, :on_rparen</div><div class='add'>+        indent -= 1</div><div class='add'>+      when :on_kw</div><div class='add'>+        next if index &gt; 0 and tokens[index - 1].state.allbits?(Ripper::EXPR_FNAME)</div><div class='add'>+        case t.tok</div><div class='add'>+        when 'do'</div><div class='add'>+          syntax_of_do = take_corresponding_syntax_to_kw_do(tokens, index)</div><div class='add'>+          indent += 1 if syntax_of_do == :method_calling</div><div class='add'>+        when 'def', 'case', 'for', 'begin', 'class', 'module'</div><div class='add'>+          indent += 1</div><div class='add'>+        when 'if', 'unless', 'while', 'until'</div><div class='add'>+          # postfix if/unless/while/until must be Ripper::EXPR_LABEL</div><div class='add'>+          indent += 1 unless t.state.allbits?(Ripper::EXPR_LABEL)</div><div class='add'>+        when 'end'</div><div class='add'>+          indent -= 1</div><div class='ctx'>         end</div><div class='del'>-        Token(op)</div><div class='ctx'>       end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule(".") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_BEG</div><div class='del'>-      if peek(0) =~ /[0-9]/</div><div class='del'>-        ungetc</div><div class='del'>-        identify_number</div><div class='del'>-      else</div><div class='del'>-        # for "obj.if" etc.</div><div class='del'>-        @lex_state = EXPR_DOT</div><div class='del'>-        Token(TkDOT)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rules("..", "...") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_BEG</div><div class='del'>-      Token(op)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    lex_int2</div><div class='add'>+      # percent literals are not indented</div><div class='add'>+    }</div><div class='add'>+    indent</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def lex_int2</div><div class='del'>-    @OP.def_rules("]", "}", ")") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_END</div><div class='del'>-      @indent -= 1</div><div class='del'>-      @indent_stack.pop</div><div class='del'>-      Token(op)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule(":") do</div><div class='del'>-      |op, io|</div><div class='del'>-      if @lex_state == EXPR_END || peek(0) =~ /\s/</div><div class='del'>-        @lex_state = EXPR_BEG</div><div class='del'>-        Token(TkCOLON)</div><div class='del'>-      else</div><div class='del'>-        @lex_state = EXPR_FNAME</div><div class='del'>-        Token(TkSYMBEG)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("::") do</div><div class='del'>-       |op, io|</div><div class='del'>-      if @lex_state == EXPR_BEG or @lex_state == EXPR_ARG &amp;&amp; @space_seen</div><div class='del'>-        @lex_state = EXPR_BEG</div><div class='del'>-        Token(TkCOLON3)</div><div class='del'>-      else</div><div class='del'>-        @lex_state = EXPR_DOT</div><div class='del'>-        Token(TkCOLON2)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("/") do</div><div class='del'>-      |op, io|</div><div class='del'>-      if @lex_state == EXPR_BEG || @lex_state == EXPR_MID</div><div class='del'>-        identify_string(op)</div><div class='del'>-      elsif peek(0) == '='</div><div class='del'>-        getc</div><div class='del'>-        @lex_state = EXPR_BEG</div><div class='del'>-        Token(TkOPASGN, "/") #/)</div><div class='del'>-      elsif @lex_state == EXPR_ARG and @space_seen and peek(0) !~ /\s/</div><div class='del'>-        identify_string(op)</div><div class='del'>-      else</div><div class='del'>-        @lex_state = EXPR_BEG</div><div class='del'>-        Token("/") #/)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rules("^") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_BEG</div><div class='del'>-      Token("^")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rules(",") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_BEG</div><div class='del'>-      Token(op)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rules(";") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_BEG</div><div class='del'>-      until (@indent_stack.empty? ||</div><div class='del'>-          [TkLPAREN, TkLBRACK, TkLBRACE,</div><div class='del'>-           TkfLPAREN, TkfLBRACK, TkfLBRACE].include?(@indent_stack.last))</div><div class='del'>-        @indent_stack.pop</div><div class='del'>-      end</div><div class='del'>-      Token(op)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("~") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_BEG</div><div class='del'>-      Token("~")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("~@", proc{|op, io| @lex_state == EXPR_FNAME}) do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_BEG</div><div class='del'>-      Token("~")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("(") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @indent += 1</div><div class='del'>-      if @lex_state == EXPR_BEG || @lex_state == EXPR_MID</div><div class='del'>-        @lex_state = EXPR_BEG</div><div class='del'>-        tk_c = TkfLPAREN</div><div class='del'>-      else</div><div class='del'>-        @lex_state = EXPR_BEG</div><div class='del'>-        tk_c = TkLPAREN</div><div class='del'>-      end</div><div class='del'>-      @indent_stack.push tk_c</div><div class='del'>-      Token(tk_c)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("[]", proc{|op, io| @lex_state == EXPR_FNAME}) do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_ARG</div><div class='del'>-      Token("[]")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("[]=", proc{|op, io| @lex_state == EXPR_FNAME}) do</div><div class='del'>-      |op, io|</div><div class='del'>-      @lex_state = EXPR_ARG</div><div class='del'>-      Token("[]=")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("[") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @indent += 1</div><div class='del'>-      if @lex_state == EXPR_FNAME</div><div class='del'>-        tk_c = TkfLBRACK</div><div class='del'>-      else</div><div class='del'>-        if @lex_state == EXPR_BEG || @lex_state == EXPR_MID</div><div class='del'>-          tk_c = TkLBRACK</div><div class='del'>-        elsif @lex_state == EXPR_ARG &amp;&amp; @space_seen</div><div class='del'>-          tk_c = TkLBRACK</div><div class='del'>-        else</div><div class='del'>-          tk_c = TkfLBRACK</div><div class='add'>+  def is_method_calling?(tokens, index)</div><div class='add'>+    tk = tokens[index]</div><div class='add'>+    if tk.state.anybits?(Ripper::EXPR_CMDARG) and tk.event == :on_ident</div><div class='add'>+      # The target method call to pass the block with "do".</div><div class='add'>+      return true</div><div class='add'>+    elsif tk.state.anybits?(Ripper::EXPR_ARG) and tk.event == :on_ident</div><div class='add'>+      non_sp_index = tokens[0..(index - 1)].rindex{ |t| t.event != :on_sp }</div><div class='add'>+      if non_sp_index</div><div class='add'>+        prev_tk = tokens[non_sp_index]</div><div class='add'>+        if prev_tk.state.anybits?(Ripper::EXPR_DOT) and prev_tk.event == :on_period</div><div class='add'>+          # The target method call with receiver to pass the block with "do".</div><div class='add'>+          return true</div><div class='ctx'>         end</div><div class='del'>-        @lex_state = EXPR_BEG</div><div class='del'>-      end</div><div class='del'>-      @indent_stack.push tk_c</div><div class='del'>-      Token(tk_c)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("{") do</div><div class='del'>-      |op, io|</div><div class='del'>-      @indent += 1</div><div class='del'>-      if @lex_state != EXPR_END &amp;&amp; @lex_state != EXPR_ARG</div><div class='del'>-        tk_c = TkLBRACE</div><div class='del'>-      else</div><div class='del'>-        tk_c = TkfLBRACE</div><div class='del'>-      end</div><div class='del'>-      @lex_state = EXPR_BEG</div><div class='del'>-      @indent_stack.push tk_c</div><div class='del'>-      Token(tk_c)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule('\\') do</div><div class='del'>-      |op, io|</div><div class='del'>-      if getc == "\n"</div><div class='del'>-        @space_seen = true</div><div class='del'>-        @continue = true</div><div class='del'>-        Token(TkSPACE)</div><div class='del'>-      else</div><div class='del'>-        read_escape</div><div class='del'>-        Token("\\")</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule('%') do</div><div class='del'>-      |op, io|</div><div class='del'>-      if @lex_state == EXPR_BEG || @lex_state == EXPR_MID</div><div class='del'>-        identify_quotation</div><div class='del'>-      elsif peek(0) == '='</div><div class='del'>-        getc</div><div class='del'>-        Token(TkOPASGN, :%)</div><div class='del'>-      elsif @lex_state == EXPR_ARG and @space_seen and peek(0) !~ /\s/</div><div class='del'>-        identify_quotation</div><div class='del'>-      else</div><div class='del'>-        @lex_state = EXPR_BEG</div><div class='del'>-        Token("%") #))</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule('$') do</div><div class='del'>-      |op, io|</div><div class='del'>-      identify_gvar</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule('@') do</div><div class='del'>-      |op, io|</div><div class='del'>-      if peek(0) =~ /[\w@]/</div><div class='del'>-        ungetc</div><div class='del'>-        identify_identifier</div><div class='del'>-      else</div><div class='del'>-        Token("@")</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @OP.def_rule("") do</div><div class='del'>-      |op, io|</div><div class='del'>-      printf "MATCH: start %s: %s\n", op, io.inspect if RubyLex.debug?</div><div class='del'>-      if peek(0) =~ /[0-9]/</div><div class='del'>-        t = identify_number</div><div class='del'>-      elsif peek(0) =~ /[^\x00-\/:-@\[-^`{-\x7F]/</div><div class='del'>-        t = identify_identifier</div><div class='ctx'>       end</div><div class='del'>-      printf "MATCH: end %s: %s\n", op, io.inspect if RubyLex.debug?</div><div class='del'>-      t</div><div class='ctx'>     end</div><div class='del'>-</div><div class='del'>-    p @OP if RubyLex.debug?</div><div class='add'>+    false</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def identify_gvar</div><div class='del'>-    @lex_state = EXPR_END</div><div class='del'>-</div><div class='del'>-    case ch = getc</div><div class='del'>-    when /[~_*$?!@\/\\;,=:&lt;&gt;".]/   #"</div><div class='del'>-      Token(TkGVAR, "$" + ch)</div><div class='del'>-    when "-"</div><div class='del'>-      Token(TkGVAR, "$-" + getc)</div><div class='del'>-    when "&amp;", "`", "'", "+"</div><div class='del'>-      Token(TkBACK_REF, "$"+ch)</div><div class='del'>-    when /[1-9]/</div><div class='del'>-      while getc =~ /[0-9]/; end</div><div class='del'>-      ungetc</div><div class='del'>-      Token(TkNTH_REF)</div><div class='del'>-    when /\w/</div><div class='del'>-      ungetc</div><div class='del'>-      ungetc</div><div class='del'>-      identify_identifier</div><div class='del'>-    else</div><div class='del'>-      ungetc</div><div class='del'>-      Token("$")</div><div class='del'>-    end</div><div class='add'>+  def take_corresponding_syntax_to_kw_do(tokens, index)</div><div class='add'>+    syntax_of_do = nil</div><div class='add'>+    # Finding a syntax corresponding to "do".</div><div class='add'>+    index.downto(0) do |i|</div><div class='add'>+      tk = tokens[i]</div><div class='add'>+      # In "continue", the token isn't the corresponding syntax to "do".</div><div class='add'>+      non_sp_index = tokens[0..(i - 1)].rindex{ |t| t.event != :on_sp }</div><div class='add'>+      first_in_fomula = false</div><div class='add'>+      if non_sp_index.nil?</div><div class='add'>+        first_in_fomula = true</div><div class='add'>+      elsif [:on_ignored_nl, :on_nl, :on_comment].include?(tokens[non_sp_index].event)</div><div class='add'>+        first_in_fomula = true</div><div class='add'>+      end</div><div class='add'>+      if is_method_calling?(tokens, i)</div><div class='add'>+        syntax_of_do = :method_calling</div><div class='add'>+        break if first_in_fomula</div><div class='add'>+      elsif tk.event == :on_kw &amp;&amp; %w{while until for}.include?(tk.tok)</div><div class='add'>+        # A loop syntax in front of "do" found.</div><div class='add'>+        #</div><div class='add'>+        #   while cond do # also "until" or "for"</div><div class='add'>+        #   end</div><div class='add'>+        #</div><div class='add'>+        # This "do" doesn't increment indent because the loop syntax already</div><div class='add'>+        # incremented.</div><div class='add'>+        syntax_of_do = :loop_syntax</div><div class='add'>+        break if first_in_fomula</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    syntax_of_do</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def identify_identifier</div><div class='del'>-    token = ""</div><div class='del'>-    if peek(0) =~ /[$@]/</div><div class='del'>-      token.concat(c = getc)</div><div class='del'>-      if c == "@" and peek(0) == "@"</div><div class='del'>-        token.concat getc</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    while (ch = getc) =~ /[^\x00-\/:-@\[-^`{-\x7F]/</div><div class='del'>-      print ":", ch, ":" if RubyLex.debug?</div><div class='del'>-      token.concat ch</div><div class='del'>-    end</div><div class='del'>-    ungetc</div><div class='del'>-</div><div class='del'>-    if (ch == "!" || ch == "?") &amp;&amp; token[0,1] =~ /\w/ &amp;&amp; peek(0) != "="</div><div class='del'>-      token.concat getc</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # almost fix token</div><div class='del'>-</div><div class='del'>-    case token</div><div class='del'>-    when /^\$/</div><div class='del'>-      return Token(TkGVAR, token)</div><div class='del'>-    when /^\@\@/</div><div class='del'>-      @lex_state = EXPR_END</div><div class='del'>-      # p Token(TkCVAR, token)</div><div class='del'>-      return Token(TkCVAR, token)</div><div class='del'>-    when /^\@/</div><div class='del'>-      @lex_state = EXPR_END</div><div class='del'>-      return Token(TkIVAR, token)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    if @lex_state != EXPR_DOT</div><div class='del'>-      print token, "\n" if RubyLex.debug?</div><div class='del'>-</div><div class='del'>-      token_c, *trans = TkReading2Token[token]</div><div class='del'>-      if token_c</div><div class='del'>-        # reserved word?</div><div class='add'>+  def is_the_in_correspond_to_a_for(tokens, index)</div><div class='add'>+    syntax_of_in = nil</div><div class='add'>+    # Finding a syntax corresponding to "do".</div><div class='add'>+    index.downto(0) do |i|</div><div class='add'>+      tk = tokens[i]</div><div class='add'>+      # In "continue", the token isn't the corresponding syntax to "do".</div><div class='add'>+      non_sp_index = tokens[0..(i - 1)].rindex{ |t| t.event != :on_sp }</div><div class='add'>+      first_in_fomula = false</div><div class='add'>+      if non_sp_index.nil?</div><div class='add'>+        first_in_fomula = true</div><div class='add'>+      elsif [:on_ignored_nl, :on_nl, :on_comment].include?(tokens[non_sp_index].event)</div><div class='add'>+        first_in_fomula = true</div><div class='add'>+      end</div><div class='add'>+      if tk.event == :on_kw &amp;&amp; tk.tok == 'for'</div><div class='add'>+        # A loop syntax in front of "do" found.</div><div class='add'>+        #</div><div class='add'>+        #   while cond do # also "until" or "for"</div><div class='add'>+        #   end</div><div class='add'>+        #</div><div class='add'>+        # This "do" doesn't increment indent because the loop syntax already</div><div class='add'>+        # incremented.</div><div class='add'>+        syntax_of_in = :for</div><div class='add'>+      end</div><div class='add'>+      break if first_in_fomula</div><div class='add'>+    end</div><div class='add'>+    syntax_of_in</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-        if (@lex_state != EXPR_BEG &amp;&amp;</div><div class='del'>-            @lex_state != EXPR_FNAME &amp;&amp;</div><div class='del'>-            trans[1])</div><div class='del'>-          # modifiers</div><div class='del'>-          token_c = TkSymbol2Token[trans[1]]</div><div class='del'>-          @lex_state = trans[0]</div><div class='add'>+  def check_newline_depth_difference</div><div class='add'>+    depth_difference = 0</div><div class='add'>+    open_brace_on_line = 0</div><div class='add'>+    in_oneliner_def = nil</div><div class='add'>+    @tokens.each_with_index do |t, index|</div><div class='add'>+      # detecting one-liner method definition</div><div class='add'>+      if in_oneliner_def.nil?</div><div class='add'>+        if t.state.allbits?(Ripper::EXPR_ENDFN)</div><div class='add'>+          in_oneliner_def = :ENDFN</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        if t.state.allbits?(Ripper::EXPR_ENDFN)</div><div class='add'>+          # continuing</div><div class='add'>+        elsif t.state.allbits?(Ripper::EXPR_BEG)</div><div class='add'>+          if t.tok == '='</div><div class='add'>+            in_oneliner_def = :BODY</div><div class='add'>+          end</div><div class='ctx'>         else</div><div class='del'>-          if @lex_state != EXPR_FNAME and peek(0) != ':'</div><div class='del'>-            if ENINDENT_CLAUSE.include?(token)</div><div class='del'>-              # check for ``class = val'' etc.</div><div class='del'>-              valid = true</div><div class='del'>-              case token</div><div class='del'>-              when "class"</div><div class='del'>-                valid = false unless peek_match?(/^\s*(&lt;&lt;|\w|::)/)</div><div class='del'>-              when "def"</div><div class='del'>-                valid = false if peek_match?(/^\s*(([+\-\/*&amp;\|^]|&lt;&lt;|&gt;&gt;|\|\||\&amp;\&amp;)=|\&amp;\&amp;|\|\|)/)</div><div class='del'>-              when "do"</div><div class='del'>-                valid = false if peek_match?(/^\s*([+\-\/*]?=|\*|&lt;|&gt;|\&amp;)/)</div><div class='del'>-              when *ENINDENT_CLAUSE</div><div class='del'>-                valid = false if peek_match?(/^\s*([+\-\/*]?=|\*|&lt;|&gt;|\&amp;|\|)/)</div><div class='del'>-              else</div><div class='del'>-                # no nothing</div><div class='del'>-              end</div><div class='del'>-              if valid</div><div class='del'>-                if token == "do"</div><div class='del'>-                  if ![TkFOR, TkWHILE, TkUNTIL].include?(@indent_stack.last)</div><div class='del'>-                    @indent += 1</div><div class='del'>-                    @indent_stack.push token_c</div><div class='del'>-                  end</div><div class='del'>-                else</div><div class='del'>-                  @indent += 1</div><div class='del'>-                  @indent_stack.push token_c</div><div class='del'>-                end</div><div class='del'>-              end</div><div class='del'>-</div><div class='del'>-            elsif DEINDENT_CLAUSE.include?(token)</div><div class='del'>-              @indent -= 1</div><div class='del'>-              @indent_stack.pop</div><div class='del'>-            end</div><div class='del'>-            @lex_state = trans[0]</div><div class='del'>-          else</div><div class='del'>-            @lex_state = EXPR_END</div><div class='add'>+          if in_oneliner_def == :BODY</div><div class='add'>+            # one-liner method definition</div><div class='add'>+            depth_difference -= 1</div><div class='ctx'>           end</div><div class='add'>+          in_oneliner_def = nil</div><div class='ctx'>         end</div><div class='del'>-        return Token(token_c, token)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    if @lex_state == EXPR_FNAME</div><div class='del'>-      @lex_state = EXPR_END</div><div class='del'>-      if peek(0) == '='</div><div class='del'>-        token.concat getc</div><div class='del'>-      end</div><div class='del'>-    elsif @lex_state == EXPR_BEG || @lex_state == EXPR_DOT</div><div class='del'>-      @lex_state = EXPR_ARG</div><div class='del'>-    else</div><div class='del'>-      @lex_state = EXPR_END</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    if token[0, 1] =~ /[A-Z]/</div><div class='del'>-      return Token(TkCONSTANT, token)</div><div class='del'>-    elsif token[token.size - 1, 1] =~ /[!?]/</div><div class='del'>-      return Token(TkFID, token)</div><div class='del'>-    else</div><div class='del'>-      return Token(TkIDENTIFIER, token)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def identify_here_document</div><div class='del'>-    ch = getc</div><div class='del'>-    if ch == "-" || ch == "~"</div><div class='del'>-      ch = getc</div><div class='del'>-      indent = true</div><div class='del'>-    end</div><div class='del'>-    if /['"`]/ =~ ch</div><div class='del'>-      lt = ch</div><div class='del'>-      quoted = ""</div><div class='del'>-      while (c = getc) &amp;&amp; c != lt</div><div class='del'>-        quoted.concat c</div><div class='del'>-      end</div><div class='del'>-    else</div><div class='del'>-      lt = '"'</div><div class='del'>-      quoted = ch.dup</div><div class='del'>-      while (c = getc) &amp;&amp; c =~ /\w/</div><div class='del'>-        quoted.concat c</div><div class='ctx'>       end</div><div class='del'>-      ungetc</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    ltback, @ltype = @ltype, lt</div><div class='del'>-    reserve = []</div><div class='del'>-    while ch = getc</div><div class='del'>-      reserve.push ch</div><div class='del'>-      if ch == "\\"</div><div class='del'>-        reserve.push ch = getc</div><div class='del'>-      elsif ch == "\n"</div><div class='del'>-        break</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @here_header = false</div><div class='ctx'> </div><div class='del'>-    line = ""</div><div class='del'>-    while ch = getc</div><div class='del'>-      if ch == "\n"</div><div class='del'>-        if line == quoted</div><div class='del'>-          break</div><div class='add'>+      case t.event</div><div class='add'>+      when :on_ignored_nl, :on_nl, :on_comment</div><div class='add'>+        if index != (@tokens.size - 1) and in_oneliner_def != :BODY</div><div class='add'>+          depth_difference = 0</div><div class='add'>+          open_brace_on_line = 0</div><div class='ctx'>         end</div><div class='del'>-        line = ""</div><div class='del'>-      else</div><div class='del'>-        line.concat ch unless indent &amp;&amp; line == "" &amp;&amp; /\s/ =~ ch</div><div class='del'>-        if @ltype != "'" &amp;&amp; ch == "#" &amp;&amp; peek(0) == "{"</div><div class='del'>-          identify_string_dvar</div><div class='add'>+        next</div><div class='add'>+      when :on_sp</div><div class='add'>+        next</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      case t.event</div><div class='add'>+      when :on_lbracket, :on_lbrace, :on_lparen, :on_tlambeg</div><div class='add'>+        depth_difference += 1</div><div class='add'>+        open_brace_on_line += 1</div><div class='add'>+      when :on_rbracket, :on_rbrace, :on_rparen</div><div class='add'>+        depth_difference -= 1 if open_brace_on_line &gt; 0</div><div class='add'>+      when :on_kw</div><div class='add'>+        next if index &gt; 0 and @tokens[index - 1].state.allbits?(Ripper::EXPR_FNAME)</div><div class='add'>+        case t.tok</div><div class='add'>+        when 'do'</div><div class='add'>+          syntax_of_do = take_corresponding_syntax_to_kw_do(@tokens, index)</div><div class='add'>+          depth_difference += 1 if syntax_of_do == :method_calling</div><div class='add'>+        when 'def', 'case', 'for', 'begin', 'class', 'module'</div><div class='add'>+          depth_difference += 1</div><div class='add'>+        when 'if', 'unless', 'while', 'until', 'rescue'</div><div class='add'>+          # postfix if/unless/while/until/rescue must be Ripper::EXPR_LABEL</div><div class='add'>+          unless t.state.allbits?(Ripper::EXPR_LABEL)</div><div class='add'>+            depth_difference += 1</div><div class='add'>+          end</div><div class='add'>+        when 'else', 'elsif', 'ensure', 'when'</div><div class='add'>+          depth_difference += 1</div><div class='add'>+        when 'in'</div><div class='add'>+          unless is_the_in_correspond_to_a_for(@tokens, index)</div><div class='add'>+            depth_difference += 1</div><div class='add'>+          end</div><div class='add'>+        when 'end'</div><div class='add'>+          depth_difference -= 1</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='del'>-</div><div class='del'>-    @here_header = true</div><div class='del'>-    @here_readed.concat reserve</div><div class='del'>-    while ch = reserve.pop</div><div class='del'>-      ungetc ch</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    @ltype = ltback</div><div class='del'>-    @lex_state = EXPR_END</div><div class='del'>-    Token(Ltype2Token[lt])</div><div class='add'>+    depth_difference</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def identify_quotation</div><div class='del'>-    ch = getc</div><div class='del'>-    if lt = PERCENT_LTYPE[ch]</div><div class='del'>-      ch = getc</div><div class='del'>-    elsif ch =~ /\W/</div><div class='del'>-      lt = "\""</div><div class='del'>-    else</div><div class='del'>-      RubyLex.fail SyntaxError, "unknown type of %string"</div><div class='del'>-    end</div><div class='del'>-    @quoted = ch unless @quoted = PERCENT_PAREN[ch]</div><div class='del'>-    identify_string(lt, @quoted)</div><div class='del'>-  end</div><div class='add'>+  def check_corresponding_token_depth(lines, line_index)</div><div class='add'>+    corresponding_token_depth = nil</div><div class='add'>+    is_first_spaces_of_line = true</div><div class='add'>+    is_first_printable_of_line = true</div><div class='add'>+    spaces_of_nest = []</div><div class='add'>+    spaces_at_line_head = 0</div><div class='add'>+    open_brace_on_line = 0</div><div class='add'>+    in_oneliner_def = nil</div><div class='ctx'> </div><div class='del'>-  def identify_number</div><div class='del'>-    @lex_state = EXPR_END</div><div class='add'>+    if heredoc_scope?</div><div class='add'>+      return lines[line_index][/^ */].length</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-    if peek(0) == "0" &amp;&amp; peek(1) !~ /[.eE]/</div><div class='del'>-      getc</div><div class='del'>-      case peek(0)</div><div class='del'>-      when /[xX]/</div><div class='del'>-        ch = getc</div><div class='del'>-        match = /[0-9a-fA-F_]/</div><div class='del'>-      when /[bB]/</div><div class='del'>-        ch = getc</div><div class='del'>-        match = /[01_]/</div><div class='del'>-      when /[oO]/</div><div class='del'>-        ch = getc</div><div class='del'>-        match = /[0-7_]/</div><div class='del'>-      when /[dD]/</div><div class='del'>-        ch = getc</div><div class='del'>-        match = /[0-9_]/</div><div class='del'>-      when /[0-7]/</div><div class='del'>-        match = /[0-7_]/</div><div class='del'>-      when /[89]/</div><div class='del'>-        RubyLex.fail SyntaxError, "Invalid octal digit"</div><div class='add'>+    @tokens.each_with_index do |t, index|</div><div class='add'>+      # detecting one-liner method definition</div><div class='add'>+      if in_oneliner_def.nil?</div><div class='add'>+        if t.state.allbits?(Ripper::EXPR_ENDFN)</div><div class='add'>+          in_oneliner_def = :ENDFN</div><div class='add'>+        end</div><div class='ctx'>       else</div><div class='del'>-        return Token(TkINTEGER)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      len0 = true</div><div class='del'>-      non_digit = false</div><div class='del'>-      while ch = getc</div><div class='del'>-        if match =~ ch</div><div class='del'>-          if ch == "_"</div><div class='del'>-            if non_digit</div><div class='del'>-              RubyLex.fail SyntaxError, "trailing `#{ch}' in number"</div><div class='del'>-            else</div><div class='del'>-              non_digit = ch</div><div class='del'>-            end</div><div class='del'>-          else</div><div class='del'>-            non_digit = false</div><div class='del'>-            len0 = false</div><div class='add'>+        if t.state.allbits?(Ripper::EXPR_ENDFN)</div><div class='add'>+          # continuing</div><div class='add'>+        elsif t.state.allbits?(Ripper::EXPR_BEG)</div><div class='add'>+          if t.tok == '='</div><div class='add'>+            in_oneliner_def = :BODY</div><div class='ctx'>           end</div><div class='ctx'>         else</div><div class='del'>-          ungetc</div><div class='del'>-          if len0</div><div class='del'>-            RubyLex.fail SyntaxError, "numeric literal without digits"</div><div class='del'>-          end</div><div class='del'>-          if non_digit</div><div class='del'>-            RubyLex.fail SyntaxError, "trailing `#{non_digit}' in number"</div><div class='add'>+          if in_oneliner_def == :BODY</div><div class='add'>+            # one-liner method definition</div><div class='add'>+            if is_first_printable_of_line</div><div class='add'>+              corresponding_token_depth = spaces_of_nest.pop</div><div class='add'>+            else</div><div class='add'>+              spaces_of_nest.pop</div><div class='add'>+              corresponding_token_depth = nil</div><div class='add'>+            end</div><div class='ctx'>           end</div><div class='del'>-          break</div><div class='add'>+          in_oneliner_def = nil</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='del'>-      return Token(TkINTEGER)</div><div class='del'>-    end</div><div class='ctx'> </div><div class='del'>-    type = TkINTEGER</div><div class='del'>-    allow_point = true</div><div class='del'>-    allow_e = true</div><div class='del'>-    non_digit = false</div><div class='del'>-    while ch = getc</div><div class='del'>-      case ch</div><div class='del'>-      when /[0-9]/</div><div class='del'>-        non_digit = false</div><div class='del'>-      when "_"</div><div class='del'>-        non_digit = ch</div><div class='del'>-      when allow_point &amp;&amp; "."</div><div class='del'>-        if non_digit</div><div class='del'>-          RubyLex.fail SyntaxError, "trailing `#{non_digit}' in number"</div><div class='del'>-        end</div><div class='del'>-        type = TkFLOAT</div><div class='del'>-        if peek(0) !~ /[0-9]/</div><div class='del'>-          type = TkINTEGER</div><div class='del'>-          ungetc</div><div class='del'>-          break</div><div class='add'>+      case t.event</div><div class='add'>+      when :on_ignored_nl, :on_nl, :on_comment</div><div class='add'>+        if in_oneliner_def != :BODY</div><div class='add'>+          corresponding_token_depth = nil</div><div class='add'>+          spaces_at_line_head = 0</div><div class='add'>+          is_first_spaces_of_line = true</div><div class='add'>+          is_first_printable_of_line = true</div><div class='add'>+          open_brace_on_line = 0</div><div class='ctx'>         end</div><div class='del'>-        allow_point = false</div><div class='del'>-      when allow_e &amp;&amp; "e", allow_e &amp;&amp; "E"</div><div class='del'>-        if non_digit</div><div class='del'>-          RubyLex.fail SyntaxError, "trailing `#{non_digit}' in number"</div><div class='del'>-        end</div><div class='del'>-        type = TkFLOAT</div><div class='del'>-        if peek(0) =~ /[+-]/</div><div class='del'>-          getc</div><div class='add'>+        next</div><div class='add'>+      when :on_sp</div><div class='add'>+        spaces_at_line_head = t.tok.count(' ') if is_first_spaces_of_line</div><div class='add'>+        is_first_spaces_of_line = false</div><div class='add'>+        next</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      case t.event</div><div class='add'>+      when :on_lbracket, :on_lbrace, :on_lparen, :on_tlambeg</div><div class='add'>+        spaces_of_nest.push(spaces_at_line_head + open_brace_on_line * 2)</div><div class='add'>+        open_brace_on_line += 1</div><div class='add'>+      when :on_rbracket, :on_rbrace, :on_rparen</div><div class='add'>+        if is_first_printable_of_line</div><div class='add'>+          corresponding_token_depth = spaces_of_nest.pop</div><div class='add'>+        else</div><div class='add'>+          spaces_of_nest.pop</div><div class='add'>+          corresponding_token_depth = nil</div><div class='ctx'>         end</div><div class='del'>-        allow_e = false</div><div class='del'>-        allow_point = false</div><div class='del'>-        non_digit = ch</div><div class='del'>-      else</div><div class='del'>-        if non_digit</div><div class='del'>-          RubyLex.fail SyntaxError, "trailing `#{non_digit}' in number"</div><div class='add'>+        open_brace_on_line -= 1</div><div class='add'>+      when :on_kw</div><div class='add'>+        next if index &gt; 0 and @tokens[index - 1].state.allbits?(Ripper::EXPR_FNAME)</div><div class='add'>+        case t.tok</div><div class='add'>+        when 'do'</div><div class='add'>+          syntax_of_do = take_corresponding_syntax_to_kw_do(@tokens, index)</div><div class='add'>+          if syntax_of_do == :method_calling</div><div class='add'>+            spaces_of_nest.push(spaces_at_line_head)</div><div class='add'>+          end</div><div class='add'>+        when 'def', 'case', 'for', 'begin', 'class', 'module'</div><div class='add'>+          spaces_of_nest.push(spaces_at_line_head)</div><div class='add'>+        when 'rescue'</div><div class='add'>+          unless t.state.allbits?(Ripper::EXPR_LABEL)</div><div class='add'>+            corresponding_token_depth = spaces_of_nest.last</div><div class='add'>+          end</div><div class='add'>+        when 'if', 'unless', 'while', 'until'</div><div class='add'>+          # postfix if/unless/while/until must be Ripper::EXPR_LABEL</div><div class='add'>+          unless t.state.allbits?(Ripper::EXPR_LABEL)</div><div class='add'>+            spaces_of_nest.push(spaces_at_line_head)</div><div class='add'>+          end</div><div class='add'>+        when 'else', 'elsif', 'ensure', 'when'</div><div class='add'>+          corresponding_token_depth = spaces_of_nest.last</div><div class='add'>+        when 'in'</div><div class='add'>+          if in_keyword_case_scope?</div><div class='add'>+            corresponding_token_depth = spaces_of_nest.last</div><div class='add'>+          end</div><div class='add'>+        when 'end'</div><div class='add'>+          if is_first_printable_of_line</div><div class='add'>+            corresponding_token_depth = spaces_of_nest.pop</div><div class='add'>+          else</div><div class='add'>+            spaces_of_nest.pop</div><div class='add'>+            corresponding_token_depth = nil</div><div class='add'>+          end</div><div class='ctx'>         end</div><div class='del'>-        ungetc</div><div class='del'>-        break</div><div class='ctx'>       end</div><div class='add'>+      is_first_spaces_of_line = false</div><div class='add'>+      is_first_printable_of_line = false</div><div class='ctx'>     end</div><div class='del'>-    Token(type)</div><div class='add'>+    corresponding_token_depth</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def identify_string(ltype, quoted = ltype)</div><div class='del'>-    @ltype = ltype</div><div class='del'>-    @quoted = quoted</div><div class='del'>-    subtype = nil</div><div class='del'>-    begin</div><div class='del'>-      nest = 0</div><div class='del'>-      while ch = getc</div><div class='del'>-        if @quoted == ch and nest == 0</div><div class='del'>-          break</div><div class='del'>-        elsif @ltype != "'" &amp;&amp; ch == "#" &amp;&amp; peek(0) == "{"</div><div class='del'>-          identify_string_dvar</div><div class='del'>-        elsif @ltype != "'" &amp;&amp; @ltype != "]" &amp;&amp; @ltype != ":" and ch == "#"</div><div class='del'>-          subtype = true</div><div class='del'>-        elsif ch == '\\' and @ltype == "'" #'</div><div class='del'>-          case ch = getc</div><div class='del'>-          when "\\", "\n", "'"</div><div class='add'>+  def check_string_literal(tokens)</div><div class='add'>+    i = 0</div><div class='add'>+    start_token = []</div><div class='add'>+    end_type = []</div><div class='add'>+    pending_heredocs = []</div><div class='add'>+    while i &lt; tokens.size</div><div class='add'>+      t = tokens[i]</div><div class='add'>+      case t.event</div><div class='add'>+      when *end_type.last</div><div class='add'>+        start_token.pop</div><div class='add'>+        end_type.pop</div><div class='add'>+      when :on_tstring_beg</div><div class='add'>+        start_token &lt;&lt; t</div><div class='add'>+        end_type &lt;&lt; [:on_tstring_end, :on_label_end]</div><div class='add'>+      when :on_regexp_beg</div><div class='add'>+        start_token &lt;&lt; t</div><div class='add'>+        end_type &lt;&lt; :on_regexp_end</div><div class='add'>+      when :on_symbeg</div><div class='add'>+        acceptable_single_tokens = %i{on_ident on_const on_op on_cvar on_ivar on_gvar on_kw on_int on_backtick}</div><div class='add'>+        if (i + 1) &lt; tokens.size</div><div class='add'>+          if acceptable_single_tokens.all?{ |st| tokens[i + 1].event != st }</div><div class='add'>+            start_token &lt;&lt; t</div><div class='add'>+            end_type &lt;&lt; :on_tstring_end</div><div class='ctx'>           else</div><div class='del'>-            ungetc</div><div class='add'>+            i += 1</div><div class='ctx'>           end</div><div class='del'>-        elsif ch == '\\' #'</div><div class='del'>-          read_escape</div><div class='ctx'>         end</div><div class='del'>-        if PERCENT_PAREN.values.include?(@quoted)</div><div class='del'>-          if PERCENT_PAREN[ch] == @quoted</div><div class='del'>-            nest += 1</div><div class='del'>-          elsif ch == @quoted</div><div class='del'>-            nest -= 1</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      if @ltype == "/"</div><div class='del'>-        while /[imxoesun]/ =~ peek(0)</div><div class='del'>-          getc</div><div class='add'>+      when :on_backtick</div><div class='add'>+        if t.state.allbits?(Ripper::EXPR_BEG)</div><div class='add'>+          start_token &lt;&lt; t</div><div class='add'>+          end_type &lt;&lt; :on_tstring_end</div><div class='ctx'>         end</div><div class='add'>+      when :on_qwords_beg, :on_words_beg, :on_qsymbols_beg, :on_symbols_beg</div><div class='add'>+        start_token &lt;&lt; t</div><div class='add'>+        end_type &lt;&lt; :on_tstring_end</div><div class='add'>+      when :on_heredoc_beg</div><div class='add'>+        pending_heredocs &lt;&lt; t</div><div class='ctx'>       end</div><div class='del'>-      if subtype</div><div class='del'>-        Token(DLtype2Token[ltype])</div><div class='del'>-      else</div><div class='del'>-        Token(Ltype2Token[ltype])</div><div class='del'>-      end</div><div class='del'>-    ensure</div><div class='del'>-      @ltype = nil</div><div class='del'>-      @quoted = nil</div><div class='del'>-      @lex_state = EXPR_END</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def identify_string_dvar</div><div class='del'>-    begin</div><div class='del'>-      getc</div><div class='del'>-</div><div class='del'>-      reserve_continue = @continue</div><div class='del'>-      reserve_ltype = @ltype</div><div class='del'>-      reserve_indent = @indent</div><div class='del'>-      reserve_indent_stack = @indent_stack</div><div class='del'>-      reserve_state = @lex_state</div><div class='del'>-      reserve_quoted = @quoted</div><div class='del'>-</div><div class='del'>-      @ltype = nil</div><div class='del'>-      @quoted = nil</div><div class='del'>-      @indent = 0</div><div class='del'>-      @indent_stack = []</div><div class='del'>-      @lex_state = EXPR_BEG</div><div class='ctx'> </div><div class='del'>-      loop do</div><div class='del'>-        @continue = false</div><div class='del'>-        prompt</div><div class='del'>-        tk = token</div><div class='del'>-        if @ltype or @continue or @indent &gt;= 0</div><div class='del'>-          next</div><div class='add'>+      if pending_heredocs.any? &amp;&amp; t.tok.include?("\n")</div><div class='add'>+        pending_heredocs.reverse_each do |t|</div><div class='add'>+          start_token &lt;&lt; t</div><div class='add'>+          end_type &lt;&lt; :on_heredoc_end</div><div class='ctx'>         end</div><div class='del'>-        break if tk.kind_of?(TkRBRACE)</div><div class='add'>+        pending_heredocs = []</div><div class='ctx'>       end</div><div class='del'>-    ensure</div><div class='del'>-      @continue = reserve_continue</div><div class='del'>-      @ltype = reserve_ltype</div><div class='del'>-      @indent = reserve_indent</div><div class='del'>-      @indent_stack = reserve_indent_stack</div><div class='del'>-      @lex_state = reserve_state</div><div class='del'>-      @quoted = reserve_quoted</div><div class='add'>+      i += 1</div><div class='ctx'>     end</div><div class='add'>+    pending_heredocs.first || start_token.last</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def identify_comment</div><div class='del'>-    @ltype = "#"</div><div class='del'>-</div><div class='del'>-    while ch = getc</div><div class='del'>-      if ch == "\n"</div><div class='del'>-        @ltype = nil</div><div class='del'>-        ungetc</div><div class='del'>-        break</div><div class='add'>+  def process_literal_type(tokens = @tokens)</div><div class='add'>+    start_token = check_string_literal(tokens)</div><div class='add'>+    return nil if start_token == ""</div><div class='add'>+</div><div class='add'>+    case start_token&amp;.event</div><div class='add'>+    when :on_tstring_beg</div><div class='add'>+      case start_token&amp;.tok</div><div class='add'>+      when ?"      then ?"</div><div class='add'>+      when /^%.$/  then ?"</div><div class='add'>+      when /^%Q.$/ then ?"</div><div class='add'>+      when ?'      then ?'</div><div class='add'>+      when /^%q.$/ then ?'</div><div class='add'>+      end</div><div class='add'>+    when :on_regexp_beg   then ?/</div><div class='add'>+    when :on_symbeg       then ?:</div><div class='add'>+    when :on_backtick     then ?`</div><div class='add'>+    when :on_qwords_beg   then ?]</div><div class='add'>+    when :on_words_beg    then ?]</div><div class='add'>+    when :on_qsymbols_beg then ?]</div><div class='add'>+    when :on_symbols_beg  then ?]</div><div class='add'>+    when :on_heredoc_beg</div><div class='add'>+      start_token&amp;.tok =~ /&lt;&lt;[-~]?(['"`])[_a-zA-Z0-9]+\1/</div><div class='add'>+      case $1</div><div class='add'>+      when ?" then ?"</div><div class='add'>+      when ?' then ?'</div><div class='add'>+      when ?` then ?`</div><div class='add'>+      else         ?"</div><div class='ctx'>       end</div><div class='add'>+    else</div><div class='add'>+      nil</div><div class='ctx'>     end</div><div class='del'>-    return Token(TkCOMMENT)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def read_escape</div><div class='del'>-    case ch = getc</div><div class='del'>-    when "\n", "\r", "\f"</div><div class='del'>-    when "\\", "n", "t", "r", "f", "v", "a", "e", "b", "s" #"</div><div class='del'>-    when /[0-7]/</div><div class='del'>-      ungetc ch</div><div class='del'>-      3.times do</div><div class='del'>-        case ch = getc</div><div class='del'>-        when /[0-7]/</div><div class='del'>-        when nil</div><div class='del'>-          break</div><div class='del'>-        else</div><div class='del'>-          ungetc</div><div class='del'>-          break</div><div class='add'>+  def check_termination_in_prev_line(code, context: nil)</div><div class='add'>+    tokens = self.class.ripper_lex_without_warning(code, context: context)</div><div class='add'>+    past_first_newline = false</div><div class='add'>+    index = tokens.rindex do |t|</div><div class='add'>+      # traverse first token before last line</div><div class='add'>+      if past_first_newline</div><div class='add'>+        if t.tok.include?("\n")</div><div class='add'>+          true</div><div class='ctx'>         end</div><div class='add'>+      elsif t.tok.include?("\n")</div><div class='add'>+        past_first_newline = true</div><div class='add'>+        false</div><div class='add'>+      else</div><div class='add'>+        false</div><div class='ctx'>       end</div><div class='add'>+    end</div><div class='ctx'> </div><div class='del'>-    when "x"</div><div class='del'>-      2.times do</div><div class='del'>-        case ch = getc</div><div class='del'>-        when /[0-9a-fA-F]/</div><div class='del'>-        when nil</div><div class='del'>-          break</div><div class='del'>-        else</div><div class='del'>-          ungetc</div><div class='add'>+    if index</div><div class='add'>+      first_token = nil</div><div class='add'>+      last_line_tokens = tokens[(index + 1)..(tokens.size - 1)]</div><div class='add'>+      last_line_tokens.each do |t|</div><div class='add'>+        unless [:on_sp, :on_ignored_sp, :on_comment].include?(t.event)</div><div class='add'>+          first_token = t</div><div class='ctx'>           break</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-    when "M"</div><div class='del'>-      if (ch = getc) != '-'</div><div class='del'>-        ungetc</div><div class='add'>+      if first_token.nil?</div><div class='add'>+        return false</div><div class='add'>+      elsif first_token &amp;&amp; first_token.state == Ripper::EXPR_DOT</div><div class='add'>+        return false</div><div class='ctx'>       else</div><div class='del'>-        if (ch = getc) == "\\" #"</div><div class='del'>-          read_escape</div><div class='add'>+        tokens_without_last_line = tokens[0..index]</div><div class='add'>+        ltype = process_literal_type(tokens_without_last_line)</div><div class='add'>+        indent = process_nesting_level(tokens_without_last_line)</div><div class='add'>+        continue = process_continue(tokens_without_last_line)</div><div class='add'>+        code_block_open = check_code_block(tokens_without_last_line.map(&amp;:tok).join(''), tokens_without_last_line)</div><div class='add'>+        if ltype or indent &gt; 0 or continue or code_block_open</div><div class='add'>+          return false</div><div class='add'>+        else</div><div class='add'>+          return last_line_tokens.map(&amp;:tok).join('')</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='add'>+    end</div><div class='add'>+    false</div><div class='add'>+  end</div><div class='ctx'> </div><div class='del'>-    when "C", "c" #, "^"</div><div class='del'>-      if ch == "C" and (ch = getc) != "-"</div><div class='del'>-        ungetc</div><div class='del'>-      elsif (ch = getc) == "\\" #"</div><div class='del'>-        read_escape</div><div class='add'>+  private</div><div class='add'>+</div><div class='add'>+  def heredoc_scope?</div><div class='add'>+    heredoc_tokens = @tokens.select { |t| [:on_heredoc_beg, :on_heredoc_end].include?(t.event) }</div><div class='add'>+    heredoc_tokens[-1]&amp;.event == :on_heredoc_beg</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def in_keyword_case_scope?</div><div class='add'>+    kw_tokens = @tokens.select { |t| t.event == :on_kw &amp;&amp; ['case', 'for', 'end'].include?(t.tok) }</div><div class='add'>+    counter = 0</div><div class='add'>+    kw_tokens.reverse.each do |t|</div><div class='add'>+      if t.tok == 'case'</div><div class='add'>+        return true if counter.zero?</div><div class='add'>+        counter += 1</div><div class='add'>+      elsif t.tok == 'for'</div><div class='add'>+        counter += 1</div><div class='add'>+      elsif t.tok == 'end'</div><div class='add'>+        counter -= 1</div><div class='ctx'>       end</div><div class='del'>-    else</div><div class='del'>-      # other characters</div><div class='ctx'>     end</div><div class='add'>+    false</div><div class='ctx'>   end</div><div class='ctx'> end</div><div class='ctx'> # :startdoc:</div><div class='head'>diff --git a/lib/irb/ruby-token.rb b/lib/irb/ruby-token.rb<br/>deleted file mode 100644<br/>index af53d3c93b..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/irb/ruby-token.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/ruby-token.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,267 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-#</div><div class='del'>-#   irb/ruby-token.rb - ruby tokens</div><div class='del'>-#   	$Release Version: 0.9.6$</div><div class='del'>-#   	$Revision$</div><div class='del'>-#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)</div><div class='del'>-#</div><div class='del'>-# --</div><div class='del'>-#</div><div class='del'>-#</div><div class='del'>-#</div><div class='del'>-# :stopdoc:</div><div class='del'>-module RubyToken</div><div class='del'>-  EXPR_BEG = :EXPR_BEG</div><div class='del'>-  EXPR_MID = :EXPR_MID</div><div class='del'>-  EXPR_END = :EXPR_END</div><div class='del'>-  EXPR_ARG = :EXPR_ARG</div><div class='del'>-  EXPR_FNAME = :EXPR_FNAME</div><div class='del'>-  EXPR_DOT = :EXPR_DOT</div><div class='del'>-  EXPR_CLASS = :EXPR_CLASS</div><div class='del'>-</div><div class='del'>-  class Token</div><div class='del'>-    def initialize(seek, line_no, char_no)</div><div class='del'>-      @seek = seek</div><div class='del'>-      @line_no = line_no</div><div class='del'>-      @char_no = char_no</div><div class='del'>-    end</div><div class='del'>-    attr_reader :seek, :line_no, :char_no</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  class TkNode &lt; Token</div><div class='del'>-    def initialize(seek, line_no, char_no)</div><div class='del'>-      super</div><div class='del'>-    end</div><div class='del'>-    attr_reader :node</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  class TkId &lt; Token</div><div class='del'>-    def initialize(seek, line_no, char_no, name)</div><div class='del'>-      super(seek, line_no, char_no)</div><div class='del'>-      @name = name</div><div class='del'>-    end</div><div class='del'>-    attr_reader :name</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  class TkVal &lt; Token</div><div class='del'>-    def initialize(seek, line_no, char_no, value = nil)</div><div class='del'>-      super(seek, line_no, char_no)</div><div class='del'>-      @value = value</div><div class='del'>-    end</div><div class='del'>-    attr_reader :value</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  class TkOp &lt; Token</div><div class='del'>-    attr_accessor :name</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  class TkOPASGN &lt; TkOp</div><div class='del'>-    def initialize(seek, line_no, char_no, op)</div><div class='del'>-      super(seek, line_no, char_no)</div><div class='del'>-      op = TkReading2Token[op][0] unless op.kind_of?(Symbol)</div><div class='del'>-      @op = op</div><div class='del'>-    end</div><div class='del'>-    attr_reader :op</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  class TkUnknownChar &lt; Token</div><div class='del'>-    def initialize(seek, line_no, char_no, id)</div><div class='del'>-      super(seek, line_no, char_no)</div><div class='del'>-      @name = name</div><div class='del'>-    end</div><div class='del'>-    attr_reader :name</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  class TkError &lt; Token</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def Token(token, value = nil)</div><div class='del'>-    case token</div><div class='del'>-    when String</div><div class='del'>-      if (tk = TkReading2Token[token]).nil?</div><div class='del'>-        IRB.fail TkReading2TokenNoKey, token</div><div class='del'>-      end</div><div class='del'>-      tk = Token(tk[0], value)</div><div class='del'>-      if tk.kind_of?(TkOp)</div><div class='del'>-        tk.name = token</div><div class='del'>-      end</div><div class='del'>-      return tk</div><div class='del'>-    when Symbol</div><div class='del'>-      if (tk = TkSymbol2Token[token]).nil?</div><div class='del'>-        IRB.fail TkSymbol2TokenNoKey, token</div><div class='del'>-      end</div><div class='del'>-      return Token(tk[0], value)</div><div class='del'>-    else</div><div class='del'>-      if (token.ancestors &amp; [TkId, TkVal, TkOPASGN, TkUnknownChar]).empty?</div><div class='del'>-        token.new(@prev_seek, @prev_line_no, @prev_char_no)</div><div class='del'>-      else</div><div class='del'>-        token.new(@prev_seek, @prev_line_no, @prev_char_no, value)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  TokenDefinitions = [</div><div class='del'>-    [:TkCLASS,      TkId,  "class",  EXPR_CLASS],</div><div class='del'>-    [:TkMODULE,     TkId,  "module", EXPR_BEG],</div><div class='del'>-    [:TkDEF,	    TkId,  "def",    EXPR_FNAME],</div><div class='del'>-    [:TkUNDEF,      TkId,  "undef",  EXPR_FNAME],</div><div class='del'>-    [:TkBEGIN,      TkId,  "begin",  EXPR_BEG],</div><div class='del'>-    [:TkRESCUE,     TkId,  "rescue", EXPR_MID],</div><div class='del'>-    [:TkENSURE,     TkId,  "ensure", EXPR_BEG],</div><div class='del'>-    [:TkEND,	    TkId,  "end",    EXPR_END],</div><div class='del'>-    [:TkIF,         TkId,  "if",     EXPR_BEG, :TkIF_MOD],</div><div class='del'>-    [:TkUNLESS,     TkId,  "unless", EXPR_BEG, :TkUNLESS_MOD],</div><div class='del'>-    [:TkTHEN,	    TkId,  "then",   EXPR_BEG],</div><div class='del'>-    [:TkELSIF,      TkId,  "elsif",  EXPR_BEG],</div><div class='del'>-    [:TkELSE,	    TkId,  "else",   EXPR_BEG],</div><div class='del'>-    [:TkCASE,	    TkId,  "case",   EXPR_BEG],</div><div class='del'>-    [:TkWHEN,	    TkId,  "when",   EXPR_BEG],</div><div class='del'>-    [:TkWHILE,      TkId,  "while",  EXPR_BEG, :TkWHILE_MOD],</div><div class='del'>-    [:TkUNTIL,      TkId,  "until",  EXPR_BEG, :TkUNTIL_MOD],</div><div class='del'>-    [:TkFOR,	    TkId,  "for",    EXPR_BEG],</div><div class='del'>-    [:TkBREAK,      TkId,  "break",  EXPR_END],</div><div class='del'>-    [:TkNEXT,	    TkId,  "next",   EXPR_END],</div><div class='del'>-    [:TkREDO,	    TkId,  "redo",   EXPR_END],</div><div class='del'>-    [:TkRETRY,      TkId,  "retry",  EXPR_END],</div><div class='del'>-    [:TkIN,	    TkId,  "in",     EXPR_BEG],</div><div class='del'>-    [:TkDO,	    TkId,  "do",     EXPR_BEG],</div><div class='del'>-    [:TkRETURN,     TkId,  "return", EXPR_MID],</div><div class='del'>-    [:TkYIELD,      TkId,  "yield",  EXPR_END],</div><div class='del'>-    [:TkSUPER,      TkId,  "super",  EXPR_END],</div><div class='del'>-    [:TkSELF,	    TkId,  "self",   EXPR_END],</div><div class='del'>-    [:TkNIL, 	    TkId,  "nil",    EXPR_END],</div><div class='del'>-    [:TkTRUE,	    TkId,  "true",   EXPR_END],</div><div class='del'>-    [:TkFALSE,      TkId,  "false",  EXPR_END],</div><div class='del'>-    [:TkAND,	    TkId,  "and",    EXPR_BEG],</div><div class='del'>-    [:TkOR, 	    TkId,  "or",     EXPR_BEG],</div><div class='del'>-    [:TkNOT,	    TkId,  "not",    EXPR_BEG],</div><div class='del'>-    [:TkIF_MOD,     TkId],</div><div class='del'>-    [:TkUNLESS_MOD, TkId],</div><div class='del'>-    [:TkWHILE_MOD,  TkId],</div><div class='del'>-    [:TkUNTIL_MOD,  TkId],</div><div class='del'>-    [:TkALIAS,      TkId,  "alias",    EXPR_FNAME],</div><div class='del'>-    [:TkDEFINED,    TkId,  "defined?", EXPR_END],</div><div class='del'>-    [:TklBEGIN,     TkId,  "BEGIN",    EXPR_END],</div><div class='del'>-    [:TklEND,	    TkId,  "END",      EXPR_END],</div><div class='del'>-    [:Tk__LINE__,   TkId,  "__LINE__", EXPR_END],</div><div class='del'>-    [:Tk__FILE__,   TkId,  "__FILE__", EXPR_END],</div><div class='del'>-</div><div class='del'>-    [:TkIDENTIFIER, TkId],</div><div class='del'>-    [:TkFID,	    TkId],</div><div class='del'>-    [:TkGVAR,	    TkId],</div><div class='del'>-    [:TkCVAR,	    TkId],</div><div class='del'>-    [:TkIVAR,	    TkId],</div><div class='del'>-    [:TkCONSTANT,   TkId],</div><div class='del'>-</div><div class='del'>-    [:TkINTEGER,    TkVal],</div><div class='del'>-    [:TkFLOAT,      TkVal],</div><div class='del'>-    [:TkSTRING,     TkVal],</div><div class='del'>-    [:TkXSTRING,    TkVal],</div><div class='del'>-    [:TkREGEXP,     TkVal],</div><div class='del'>-    [:TkSYMBOL,     TkVal],</div><div class='del'>-</div><div class='del'>-    [:TkDSTRING,    TkNode],</div><div class='del'>-    [:TkDXSTRING,   TkNode],</div><div class='del'>-    [:TkDREGEXP,    TkNode],</div><div class='del'>-    [:TkNTH_REF,    TkNode],</div><div class='del'>-    [:TkBACK_REF,   TkNode],</div><div class='del'>-</div><div class='del'>-    [:TkUPLUS,      TkOp,   "+@"],</div><div class='del'>-    [:TkUMINUS,     TkOp,   "-@"],</div><div class='del'>-    [:TkPOW,	    TkOp,   "**"],</div><div class='del'>-    [:TkCMP,	    TkOp,   "&lt;=&gt;"],</div><div class='del'>-    [:TkEQ,	    TkOp,   "=="],</div><div class='del'>-    [:TkEQQ,	    TkOp,   "==="],</div><div class='del'>-    [:TkNEQ,	    TkOp,   "!="],</div><div class='del'>-    [:TkGEQ,	    TkOp,   "&gt;="],</div><div class='del'>-    [:TkLEQ,	    TkOp,   "&lt;="],</div><div class='del'>-    [:TkANDOP,      TkOp,   "&amp;&amp;"],</div><div class='del'>-    [:TkOROP,	    TkOp,   "||"],</div><div class='del'>-    [:TkMATCH,      TkOp,   "=~"],</div><div class='del'>-    [:TkNMATCH,     TkOp,   "!~"],</div><div class='del'>-    [:TkDOT2,	    TkOp,   ".."],</div><div class='del'>-    [:TkDOT3,	    TkOp,   "..."],</div><div class='del'>-    [:TkAREF,	    TkOp,   "[]"],</div><div class='del'>-    [:TkASET,	    TkOp,   "[]="],</div><div class='del'>-    [:TkLSHFT,      TkOp,   "&lt;&lt;"],</div><div class='del'>-    [:TkRSHFT,      TkOp,   "&gt;&gt;"],</div><div class='del'>-    [:TkCOLON2,     TkOp],</div><div class='del'>-    [:TkCOLON3,     TkOp],</div><div class='del'>-    [:TkASSOC,      TkOp,   "=&gt;"],</div><div class='del'>-    [:TkQUESTION,   TkOp,   "?"],	 #?</div><div class='del'>-    [:TkCOLON,      TkOp,   ":"],        #:</div><div class='del'>-</div><div class='del'>-    [:TkfLPAREN],         # func( #</div><div class='del'>-    [:TkfLBRACK],         # func[ #</div><div class='del'>-    [:TkfLBRACE],         # func{ #</div><div class='del'>-    [:TkSTAR],            # *arg</div><div class='del'>-    [:TkAMPER],           # &amp;arg #</div><div class='del'>-    [:TkSYMBEG],          # :SYMBOL</div><div class='del'>-</div><div class='del'>-    [:TkGT,	    TkOp,   "&gt;"],</div><div class='del'>-    [:TkLT,	    TkOp,   "&lt;"],</div><div class='del'>-    [:TkPLUS,	    TkOp,   "+"],</div><div class='del'>-    [:TkMINUS,      TkOp,   "-"],</div><div class='del'>-    [:TkMULT,	    TkOp,   "*"],</div><div class='del'>-    [:TkDIV,	    TkOp,   "/"],</div><div class='del'>-    [:TkMOD,	    TkOp,   "%"],</div><div class='del'>-    [:TkBITOR,      TkOp,   "|"],</div><div class='del'>-    [:TkBITXOR,     TkOp,   "^"],</div><div class='del'>-    [:TkBITAND,     TkOp,   "&amp;"],</div><div class='del'>-    [:TkBITNOT,     TkOp,   "~"],</div><div class='del'>-    [:TkNOTOP,      TkOp,   "!"],</div><div class='del'>-</div><div class='del'>-    [:TkBACKQUOTE,  TkOp,   "`"],</div><div class='del'>-</div><div class='del'>-    [:TkASSIGN,     Token,  "="],</div><div class='del'>-    [:TkDOT,	    Token,  "."],</div><div class='del'>-    [:TkLPAREN,     Token,  "("],  #(exp)</div><div class='del'>-    [:TkLBRACK,     Token,  "["],  #[arry]</div><div class='del'>-    [:TkLBRACE,     Token,  "{"],  #{hash}</div><div class='del'>-    [:TkRPAREN,     Token,  ")"],</div><div class='del'>-    [:TkRBRACK,     Token,  "]"],</div><div class='del'>-    [:TkRBRACE,     Token,  "}"],</div><div class='del'>-    [:TkCOMMA,      Token,  ","],</div><div class='del'>-    [:TkSEMICOLON,  Token,  ";"],</div><div class='del'>-</div><div class='del'>-    [:TkCOMMENT],</div><div class='del'>-    [:TkRD_COMMENT],</div><div class='del'>-    [:TkSPACE],</div><div class='del'>-    [:TkNL],</div><div class='del'>-    [:TkEND_OF_SCRIPT],</div><div class='del'>-</div><div class='del'>-    [:TkBACKSLASH,  TkUnknownChar,  "\\"],</div><div class='del'>-    [:TkAT,	    TkUnknownChar,  "@"],</div><div class='del'>-    [:TkDOLLAR,     TkUnknownChar,  "$"],</div><div class='del'>-  ]</div><div class='del'>-</div><div class='del'>-  # {reading =&gt; token_class}</div><div class='del'>-  # {reading =&gt; [token_class, *opt]}</div><div class='del'>-  TkReading2Token = {}</div><div class='del'>-  TkSymbol2Token = {}</div><div class='del'>-</div><div class='del'>-  def RubyToken.def_token(token_n, super_token = Token, reading = nil, *opts)</div><div class='del'>-    token_n = token_n.id2name if token_n.kind_of?(Symbol)</div><div class='del'>-    if RubyToken.const_defined?(token_n)</div><div class='del'>-      IRB.fail AlreadyDefinedToken, token_n</div><div class='del'>-    end</div><div class='del'>-    token_c = eval("class #{token_n} &lt; #{super_token}; end; #{token_n}")</div><div class='del'>-</div><div class='del'>-    if reading</div><div class='del'>-      if TkReading2Token[reading]</div><div class='del'>-        IRB.fail TkReading2TokenDuplicateError, token_n, reading</div><div class='del'>-      end</div><div class='del'>-      if opts.empty?</div><div class='del'>-        TkReading2Token[reading] = [token_c]</div><div class='del'>-      else</div><div class='del'>-        TkReading2Token[reading] = [token_c].concat(opts)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    TkSymbol2Token[token_n.intern] = token_c</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  for defs in TokenDefinitions</div><div class='del'>-    def_token(*defs)</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-# :startdoc:</div><div class='head'>diff --git a/lib/irb/ruby_logo.aa b/lib/irb/ruby_logo.aa<br/>new file mode 100644<br/>index 0000000000..a34a3e2f28<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/irb/ruby_logo.aa?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/ruby_logo.aa</a></div><div class='hunk'>@@ -0,0 +1,37 @@</div><div class='add'>+</div><div class='add'>+                                             -+smJYYN?mm-</div><div class='add'>+                                   HB"BBYT            TQg  NggT</div><div class='add'>+                              9Q+g       Nm,T      8g          NJW</div><div class='add'>+                          YS+              N2NJ"Sg               N?</div><div class='add'>+                       BQg                  #(  gT Nggggk          J</div><div class='add'>+                     5j                     NJ    NJ            NNge</div><div class='add'>+                  #Q                        #JJ     NgT            N(</div><div class='add'>+                @j                          bj         mT           J</div><div class='add'>+              Bj                           @/d           NJ         (</div><div class='add'>+            #q                            #((              NgT     #J</div><div class='add'>+           5d                            #(t                  mT   $d</div><div class='add'>+         #q                             @(@J                    NJB;</div><div class='add'>+        @(                             5d ? HHH H HQmgggggggmN    qD</div><div class='add'>+       5d                            #uN  2QdH                   E O</div><div class='add'>+      5                             5JSd  Nd  NJH               @d j</div><div class='add'>+     Fd                           @J4d     s     NQH           #d  (</div><div class='add'>+    #(                          #o6d       Nd       NgH       #d  #d</div><div class='add'>+    4                         B&amp;Od          v          NgT   #d   F</div><div class='add'>+   #(                       9JGd            NH            NgUd    F</div><div class='add'>+   #d                    #GJQ                d             NP     $</div><div class='add'>+   #J                 #U+#Q                  N            Q #     j</div><div class='add'>+  j /W             BQ+ BQ                     d             NJ   NJ</div><div class='add'>+  - NjJH      HBIjTQggPJQgW                   N        W     k   #J</div><div class='add'>+ #J  b  HYWgggN       j s    Nag               d     NN      b   #d</div><div class='add'>+ #J  5-              D   s         Ngg         N    d        Nd  F</div><div class='add'>+ Fd BKH2            #+    s             NNgg    J Q           J  ]</div><div class='add'>+ F H @  J           N      y                   K(d            P  I</div><div class='add'>+ F4  E  N?         #d       y                #Q   NJ          E  j</div><div class='add'>+ F   W   Nd        q         m             Bg       NxW       N(H-</div><div class='add'>+ F   d    b       @           m          Hd            gW      vKJ</div><div class='add'>+ NJ  d     K      d            s      Bg                 aT    FDd</div><div class='add'>+  b #       d    N              m  BQ                      mV  N&gt;</div><div class='add'>+   e5       Nd  #d              NggggggQWH HHHH              NJ -</div><div class='add'>+    m7       NW H            N                        HSVO1z=?11-</div><div class='add'>+      NgTH    bB        kH   WBHWWHBHWmQgg&amp;gggggNNN</div><div class='add'>+           NNggggggNN</div><div class='head'>diff --git a/lib/irb/slex.rb b/lib/irb/slex.rb<br/>deleted file mode 100644<br/>index e584b312bd..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/irb/slex.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/slex.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,282 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-#</div><div class='del'>-#   irb/slex.rb - simple lex analyzer</div><div class='del'>-#   	$Release Version: 0.9.6$</div><div class='del'>-#   	$Revision$</div><div class='del'>-#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)</div><div class='del'>-#</div><div class='del'>-# --</div><div class='del'>-#</div><div class='del'>-#</div><div class='del'>-#</div><div class='del'>-</div><div class='del'>-require "e2mmap"</div><div class='del'>-require_relative "notifier"</div><div class='del'>-</div><div class='del'>-# :stopdoc:</div><div class='del'>-module IRB</div><div class='del'>-  class SLex</div><div class='del'>-</div><div class='del'>-    extend Exception2MessageMapper</div><div class='del'>-    def_exception :ErrNodeNothing, "node nothing"</div><div class='del'>-    def_exception :ErrNodeAlreadyExists, "node already exists"</div><div class='del'>-</div><div class='del'>-    DOUT = Notifier::def_notifier("SLex::")</div><div class='del'>-    D_WARN = DOUT::def_notifier(1, "Warn: ")</div><div class='del'>-    D_DEBUG = DOUT::def_notifier(2, "Debug: ")</div><div class='del'>-    D_DETAIL = DOUT::def_notifier(4, "Detail: ")</div><div class='del'>-</div><div class='del'>-    DOUT.level = Notifier::D_NOMSG</div><div class='del'>-</div><div class='del'>-    def initialize</div><div class='del'>-      @head = Node.new("")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def def_rule(token, preproc = nil, postproc = nil, &amp;block)</div><div class='del'>-      D_DETAIL.pp token</div><div class='del'>-</div><div class='del'>-      postproc = block if block_given?</div><div class='del'>-      create(token, preproc, postproc)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def def_rules(*tokens, &amp;block)</div><div class='del'>-      if block_given?</div><div class='del'>-        p = block</div><div class='del'>-      end</div><div class='del'>-      for token in tokens</div><div class='del'>-        def_rule(token, nil, p)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def preproc(token, proc)</div><div class='del'>-      node = search(token)</div><div class='del'>-      node.preproc=proc</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # need a check?</div><div class='del'>-    def postproc(token)</div><div class='del'>-      node = search(token, proc)</div><div class='del'>-      node.postproc=proc</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def search(token)</div><div class='del'>-      @head.search(token.split(//))</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def create(token, preproc = nil, postproc = nil)</div><div class='del'>-      @head.create_subnode(token.split(//), preproc, postproc)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def match(token)</div><div class='del'>-      case token</div><div class='del'>-      when Array</div><div class='del'>-      when String</div><div class='del'>-        return match(token.split(//))</div><div class='del'>-      else</div><div class='del'>-        return @head.match_io(token)</div><div class='del'>-      end</div><div class='del'>-      ret = @head.match(token)</div><div class='del'>-      D_DETAIL.exec_if{D_DETAIL.printf "match end: %s:%s\n", ret, token.inspect}</div><div class='del'>-      ret</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def inspect</div><div class='del'>-      format("&lt;SLex: @head = %s&gt;", @head.inspect)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #----------------------------------------------------------------------</div><div class='del'>-    #</div><div class='del'>-    #   class Node -</div><div class='del'>-    #</div><div class='del'>-    #----------------------------------------------------------------------</div><div class='del'>-    class Node</div><div class='del'>-      # if postproc is nil, this node is an abstract node.</div><div class='del'>-      # if postproc is non-nil, this node is a real node.</div><div class='del'>-      def initialize(preproc = nil, postproc = nil)</div><div class='del'>-        @Tree = {}</div><div class='del'>-        @preproc = preproc</div><div class='del'>-        @postproc = postproc</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      attr_accessor :preproc</div><div class='del'>-      attr_accessor :postproc</div><div class='del'>-</div><div class='del'>-      def search(chrs, opt = nil)</div><div class='del'>-        return self if chrs.empty?</div><div class='del'>-        ch = chrs.shift</div><div class='del'>-        if node = @Tree[ch]</div><div class='del'>-          node.search(chrs, opt)</div><div class='del'>-        else</div><div class='del'>-          if opt</div><div class='del'>-            chrs.unshift ch</div><div class='del'>-            self.create_subnode(chrs)</div><div class='del'>-          else</div><div class='del'>-            SLex.fail ErrNodeNothing</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def create_subnode(chrs, preproc = nil, postproc = nil)</div><div class='del'>-        if chrs.empty?</div><div class='del'>-          if @postproc</div><div class='del'>-            D_DETAIL.pp node</div><div class='del'>-            SLex.fail ErrNodeAlreadyExists</div><div class='del'>-          else</div><div class='del'>-            D_DEBUG.puts "change abstract node to real node."</div><div class='del'>-            @preproc = preproc</div><div class='del'>-            @postproc = postproc</div><div class='del'>-          end</div><div class='del'>-          return self</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        ch = chrs.shift</div><div class='del'>-        if node = @Tree[ch]</div><div class='del'>-          if chrs.empty?</div><div class='del'>-            if node.postproc</div><div class='del'>-              DebugLogger.pp node</div><div class='del'>-              DebugLogger.pp self</div><div class='del'>-              DebugLogger.pp ch</div><div class='del'>-              DebugLogger.pp chrs</div><div class='del'>-              SLex.fail ErrNodeAlreadyExists</div><div class='del'>-            else</div><div class='del'>-              D_WARN.puts "change abstract node to real node"</div><div class='del'>-              node.preproc = preproc</div><div class='del'>-              node.postproc = postproc</div><div class='del'>-            end</div><div class='del'>-          else</div><div class='del'>-            node.create_subnode(chrs, preproc, postproc)</div><div class='del'>-          end</div><div class='del'>-        else</div><div class='del'>-          if chrs.empty?</div><div class='del'>-            node = Node.new(preproc, postproc)</div><div class='del'>-          else</div><div class='del'>-            node = Node.new</div><div class='del'>-            node.create_subnode(chrs, preproc, postproc)</div><div class='del'>-          end</div><div class='del'>-          @Tree[ch] = node</div><div class='del'>-        end</div><div class='del'>-        node</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # chrs: String</div><div class='del'>-      #       character array</div><div class='del'>-      #       io must have getc()/ungetc(); and ungetc() must be</div><div class='del'>-      #       able to be called arbitrary number of times.</div><div class='del'>-      #</div><div class='del'>-      def match(chrs, op = "")</div><div class='del'>-        D_DETAIL.print "match&gt;: ", chrs, "op:", op, "\n"</div><div class='del'>-        if chrs.empty?</div><div class='del'>-          if @preproc.nil? || @preproc.call(op, chrs)</div><div class='del'>-            DOUT.printf(D_DETAIL, "op1: %s\n", op)</div><div class='del'>-            @postproc.call(op, chrs)</div><div class='del'>-          else</div><div class='del'>-            nil</div><div class='del'>-          end</div><div class='del'>-        else</div><div class='del'>-          ch = chrs.shift</div><div class='del'>-          if node = @Tree[ch]</div><div class='del'>-            if ret = node.match(chrs, op+ch)</div><div class='del'>-              return ret</div><div class='del'>-            else</div><div class='del'>-              chrs.unshift ch</div><div class='del'>-              if @postproc and @preproc.nil? || @preproc.call(op, chrs)</div><div class='del'>-                DOUT.printf(D_DETAIL, "op2: %s\n", op.inspect)</div><div class='del'>-                ret = @postproc.call(op, chrs)</div><div class='del'>-                return ret</div><div class='del'>-              else</div><div class='del'>-                return nil</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-          else</div><div class='del'>-            chrs.unshift ch</div><div class='del'>-            if @postproc and @preproc.nil? || @preproc.call(op, chrs)</div><div class='del'>-              DOUT.printf(D_DETAIL, "op3: %s\n", op)</div><div class='del'>-              @postproc.call(op, chrs)</div><div class='del'>-              return ""</div><div class='del'>-            else</div><div class='del'>-              return nil</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def match_io(io, op = "")</div><div class='del'>-        if op == ""</div><div class='del'>-          ch = io.getc</div><div class='del'>-          if ch == nil</div><div class='del'>-            return nil</div><div class='del'>-          end</div><div class='del'>-        else</div><div class='del'>-          ch = io.getc_of_rests</div><div class='del'>-        end</div><div class='del'>-        if ch.nil?</div><div class='del'>-          if @preproc.nil? || @preproc.call(op, io)</div><div class='del'>-            D_DETAIL.printf("op1: %s\n", op)</div><div class='del'>-            @postproc.call(op, io)</div><div class='del'>-          else</div><div class='del'>-            nil</div><div class='del'>-          end</div><div class='del'>-        else</div><div class='del'>-          if node = @Tree[ch]</div><div class='del'>-            if ret = node.match_io(io, op+ch)</div><div class='del'>-              ret</div><div class='del'>-            else</div><div class='del'>-              io.ungetc ch</div><div class='del'>-              if @postproc and @preproc.nil? || @preproc.call(op, io)</div><div class='del'>-                DOUT.exec_if{D_DETAIL.printf "op2: %s\n", op.inspect}</div><div class='del'>-                @postproc.call(op, io)</div><div class='del'>-              else</div><div class='del'>-                nil</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-          else</div><div class='del'>-            io.ungetc ch</div><div class='del'>-            if @postproc and @preproc.nil? || @preproc.call(op, io)</div><div class='del'>-              D_DETAIL.printf("op3: %s\n", op)</div><div class='del'>-              @postproc.call(op, io)</div><div class='del'>-            else</div><div class='del'>-              nil</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-# :startdoc:</div><div class='del'>-</div><div class='del'>-if $0 == __FILE__</div><div class='del'>-  case $1</div><div class='del'>-  when "1"</div><div class='del'>-    tr = SLex.new</div><div class='del'>-    print "0: ", tr.inspect, "\n"</div><div class='del'>-    tr.def_rule("=") {print "=\n"}</div><div class='del'>-    print "1: ", tr.inspect, "\n"</div><div class='del'>-    tr.def_rule("==") {print "==\n"}</div><div class='del'>-    print "2: ", tr.inspect, "\n"</div><div class='del'>-</div><div class='del'>-    print "case 1:\n"</div><div class='del'>-    print tr.match("="), "\n"</div><div class='del'>-    print "case 2:\n"</div><div class='del'>-    print tr.match("=="), "\n"</div><div class='del'>-    print "case 3:\n"</div><div class='del'>-    print tr.match("=&gt;"), "\n"</div><div class='del'>-</div><div class='del'>-  when "2"</div><div class='del'>-    tr = SLex.new</div><div class='del'>-    print "0: ", tr.inspect, "\n"</div><div class='del'>-    tr.def_rule("=") {print "=\n"}</div><div class='del'>-    print "1: ", tr.inspect, "\n"</div><div class='del'>-    tr.def_rule("==", proc{false}) {print "==\n"}</div><div class='del'>-    print "2: ", tr.inspect, "\n"</div><div class='del'>-</div><div class='del'>-    print "case 1:\n"</div><div class='del'>-    print tr.match("="), "\n"</div><div class='del'>-    print "case 2:\n"</div><div class='del'>-    print tr.match("=="), "\n"</div><div class='del'>-    print "case 3:\n"</div><div class='del'>-    print tr.match("=&gt;"), "\n"</div><div class='del'>-  end</div><div class='del'>-  exit</div><div class='del'>-end</div><div class='head'>diff --git a/lib/irb/version.rb b/lib/irb/version.rb<br/>index 41cfff404c..d1c0e54fdc 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/version.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/version.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/version.rb</a></div><div class='hunk'>@@ -11,7 +11,7 @@</div><div class='ctx'> #</div><div class='ctx'> </div><div class='ctx'> module IRB # :nodoc:</div><div class='del'>-  VERSION = "1.0.0"</div><div class='add'>+  VERSION = "1.6.2"</div><div class='ctx'>   @RELEASE_VERSION = VERSION</div><div class='del'>-  @LAST_UPDATE_DATE = "2018-12-18"</div><div class='add'>+  @LAST_UPDATE_DATE = "2022-12-13"</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/irb/workspace.rb b/lib/irb/workspace.rb<br/>index 53914fb7c1..e5ef52528a 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/workspace.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/workspace.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/workspace.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/workspace.rb</a></div><div class='hunk'>@@ -9,6 +9,10 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='add'>+</div><div class='add'>+require "delegate"</div><div class='add'>+</div><div class='add'>+IRB::TOPLEVEL_BINDING = binding</div><div class='ctx'> module IRB # :nodoc:</div><div class='ctx'>   class WorkSpace</div><div class='ctx'>     # Creates a new workspace.</div><div class='hunk'>@@ -48,18 +52,26 @@ EOF</div><div class='ctx'>           end</div><div class='ctx'>           @binding = BINDING_QUEUE.pop</div><div class='ctx'> </div><div class='del'>-        when 3	# binding in function on TOPLEVEL_BINDING(default)</div><div class='del'>-          @binding = eval("def irb_binding; private; binding; end; irb_binding",</div><div class='add'>+        when 3	# binding in function on TOPLEVEL_BINDING</div><div class='add'>+          @binding = eval("self.class.remove_method(:irb_binding) if defined?(irb_binding); private; def irb_binding; binding; end; irb_binding",</div><div class='ctx'>                           TOPLEVEL_BINDING,</div><div class='ctx'>                           __FILE__,</div><div class='ctx'>                           __LINE__ - 3)</div><div class='add'>+        when 4  # binding is a copy of TOPLEVEL_BINDING (default)</div><div class='add'>+          # Note that this will typically be IRB::TOPLEVEL_BINDING</div><div class='add'>+          # This is to avoid RubyGems' local variables (see issue #17623)</div><div class='add'>+          @binding = TOPLEVEL_BINDING.dup</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='add'>+</div><div class='ctx'>       if main.empty?</div><div class='ctx'>         @main = eval("self", @binding)</div><div class='ctx'>       else</div><div class='ctx'>         @main = main[0]</div><div class='del'>-        IRB.conf[:__MAIN__] = @main</div><div class='add'>+      end</div><div class='add'>+      IRB.conf[:__MAIN__] = @main</div><div class='add'>+</div><div class='add'>+      unless main.empty?</div><div class='ctx'>         case @main</div><div class='ctx'>         when Module</div><div class='ctx'>           @binding = eval("IRB.conf[:__MAIN__].module_eval('binding', __FILE__, __LINE__)", @binding, __FILE__, __LINE__)</div><div class='hunk'>@@ -67,10 +79,32 @@ EOF</div><div class='ctx'>           begin</div><div class='ctx'>             @binding = eval("IRB.conf[:__MAIN__].instance_eval('binding', __FILE__, __LINE__)", @binding, __FILE__, __LINE__)</div><div class='ctx'>           rescue TypeError</div><div class='del'>-            IRB.fail CantChangeBinding, @main.inspect</div><div class='add'>+            fail CantChangeBinding, @main.inspect</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      case @main</div><div class='add'>+      when Object</div><div class='add'>+        use_delegator = @main.frozen?</div><div class='add'>+      else</div><div class='add'>+        use_delegator = true</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      if use_delegator</div><div class='add'>+        @main = SimpleDelegator.new(@main)</div><div class='add'>+        IRB.conf[:__MAIN__] = @main</div><div class='add'>+        @main.singleton_class.class_eval do</div><div class='add'>+          private</div><div class='add'>+          define_method(:exit) do |*a, &amp;b|</div><div class='add'>+            # Do nothing, will be overridden</div><div class='ctx'>           end</div><div class='add'>+          define_method(:binding, Kernel.instance_method(:binding))</div><div class='add'>+          define_method(:local_variables, Kernel.instance_method(:local_variables))</div><div class='ctx'>         end</div><div class='add'>+        @binding = eval("IRB.conf[:__MAIN__].instance_eval('binding', __FILE__, __LINE__)", @binding, *@binding.source_location)</div><div class='ctx'>       end</div><div class='add'>+</div><div class='ctx'>       @binding.local_variable_set(:_, nil)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='hunk'>@@ -95,46 +129,49 @@ EOF</div><div class='ctx'> </div><div class='ctx'>     # error message manipulator</div><div class='ctx'>     def filter_backtrace(bt)</div><div class='add'>+      return nil if bt =~ /\/irb\/.*\.rb/</div><div class='add'>+      return nil if bt =~ /\/irb\.rb/</div><div class='add'>+      return nil if bt =~ /tool\/lib\/.*\.rb|runner\.rb/ # for tests in Ruby repository</div><div class='ctx'>       case IRB.conf[:CONTEXT_MODE]</div><div class='del'>-      when 0</div><div class='del'>-        return nil if bt =~ /\(irb_local_binding\)/</div><div class='ctx'>       when 1</div><div class='del'>-        if(bt =~ %r!/tmp/irb-binding! or</div><div class='del'>-            bt =~ %r!irb/.*\.rb! or</div><div class='del'>-            bt =~ /irb\.rb/)</div><div class='del'>-          return nil</div><div class='del'>-        end</div><div class='del'>-      when 2</div><div class='del'>-        return nil if bt =~ /irb\/.*\.rb/</div><div class='del'>-        return nil if bt =~ /irb\.rb/</div><div class='add'>+        return nil if bt =~ %r!/tmp/irb-binding!</div><div class='ctx'>       when 3</div><div class='del'>-        return nil if bt =~ /irb\/.*\.rb/</div><div class='del'>-        return nil if bt =~ /irb\.rb/</div><div class='ctx'>         bt = bt.sub(/:\s*in `irb_binding'/, '')</div><div class='ctx'>       end</div><div class='ctx'>       bt</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def code_around_binding</div><div class='del'>-      file, pos = @binding.source_location</div><div class='add'>+      if @binding.respond_to?(:source_location)</div><div class='add'>+        file, pos = @binding.source_location</div><div class='add'>+      else</div><div class='add'>+        file, pos = @binding.eval('[__FILE__, __LINE__]')</div><div class='add'>+      end</div><div class='ctx'> </div><div class='del'>-      unless defined?(::SCRIPT_LINES__[file]) &amp;&amp; lines = ::SCRIPT_LINES__[file]</div><div class='add'>+      if defined?(::SCRIPT_LINES__[file]) &amp;&amp; lines = ::SCRIPT_LINES__[file]</div><div class='add'>+        code = ::SCRIPT_LINES__[file].join('')</div><div class='add'>+      else</div><div class='ctx'>         begin</div><div class='del'>-          lines = File.readlines(file)</div><div class='add'>+          code = File.read(file)</div><div class='ctx'>         rescue SystemCallError</div><div class='ctx'>           return</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='add'>+</div><div class='add'>+      lines = Color.colorize_code(code).lines</div><div class='ctx'>       pos -= 1</div><div class='ctx'> </div><div class='ctx'>       start_pos = [pos - 5, 0].max</div><div class='ctx'>       end_pos   = [pos + 5, lines.size - 1].min</div><div class='ctx'> </div><div class='del'>-      fmt = " %2s %#{end_pos.to_s.length}d: %s"</div><div class='add'>+      line_number_fmt = Color.colorize("%#{end_pos.to_s.length}d", [:BLUE, :BOLD])</div><div class='add'>+      fmt = " %2s #{line_number_fmt}: %s"</div><div class='add'>+</div><div class='ctx'>       body = (start_pos..end_pos).map do |current_pos|</div><div class='ctx'>         sprintf(fmt, pos == current_pos ? '=&gt;' : '', current_pos + 1, lines[current_pos])</div><div class='ctx'>       end.join("")</div><div class='del'>-      "\nFrom: #{file} @ line #{pos + 1} :\n\n#{body}\n"</div><div class='add'>+</div><div class='add'>+      "\nFrom: #{file} @ line #{pos + 1} :\n\n#{body}#{Color.clear}\n"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def IRB.delete_caller</div><div class='head'>diff --git a/lib/irb/xmp.rb b/lib/irb/xmp.rb<br/>index 60cf3b4e4d..88cbd88525 100644<br/>--- a/<a href='/ruby.git/tree/lib/irb/xmp.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/irb/xmp.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/irb/xmp.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/irb/xmp.rb</a></div><div class='hunk'>@@ -10,7 +10,7 @@</div><div class='ctx'> #</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require "irb"</div><div class='add'>+require_relative "../irb"</div><div class='ctx'> require_relative "frame"</div><div class='ctx'> </div><div class='ctx'> # An example printer for irb.</div><div class='head'>diff --git a/lib/logger.gemspec b/lib/logger.gemspec<br/>deleted file mode 100644<br/>index 815ae5bc46..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/logger.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/logger.gemspec</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,27 +0,0 @@</div><div class='del'>-begin</div><div class='del'>-  require_relative "lib/logger"</div><div class='del'>-rescue LoadError</div><div class='del'>-  # for Ruby core repository</div><div class='del'>-  require_relative "logger"</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-Gem::Specification.new do |spec|</div><div class='del'>-  spec.name          = "logger"</div><div class='del'>-  spec.version       = Logger::VERSION</div><div class='del'>-  spec.authors       = ["SHIBATA Hiroshi"]</div><div class='del'>-  spec.email         = ["hsbt@ruby-lang.org"]</div><div class='del'>-</div><div class='del'>-  spec.summary       = %q{Provides a simple logging utility for outputting messages.}</div><div class='del'>-  spec.description   = %q{Provides a simple logging utility for outputting messages.}</div><div class='del'>-  spec.homepage      = "https://github.com/ruby/logger"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='del'>-</div><div class='del'>-  spec.files         = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "lib/logger.rb", "logger.gemspec"]</div><div class='del'>-  spec.bindir        = "exe"</div><div class='del'>-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='del'>-  spec.require_paths = ["lib"]</div><div class='del'>-</div><div class='del'>-  spec.add_development_dependency "bundler", "~&gt; 1.16"</div><div class='del'>-  spec.add_development_dependency "rake", "~&gt; 10.0"</div><div class='del'>-  spec.add_development_dependency "minitest", "~&gt; 5.0"</div><div class='del'>-end</div><div class='head'>diff --git a/lib/logger.rb b/lib/logger.rb<br/>index 918caf0956..7e4dacc911 100644<br/>--- a/<a href='/ruby.git/tree/lib/logger.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/logger.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/logger.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/logger.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> # logger.rb - simple logging utility</div><div class='ctx'> # Copyright (C) 2000-2003, 2005, 2008, 2011  NAKAMURA, Hiroshi &lt;nahi@ruby-lang.org&gt;.</div><div class='ctx'> #</div><div class='hunk'>@@ -11,220 +11,363 @@</div><div class='ctx'> # A simple system for logging messages.  See Logger for more documentation.</div><div class='ctx'> </div><div class='ctx'> require 'monitor'</div><div class='add'>+require 'rbconfig'</div><div class='ctx'> </div><div class='del'>-# == Description</div><div class='add'>+require_relative 'logger/version'</div><div class='add'>+require_relative 'logger/formatter'</div><div class='add'>+require_relative 'logger/log_device'</div><div class='add'>+require_relative 'logger/severity'</div><div class='add'>+require_relative 'logger/errors'</div><div class='add'>+</div><div class='add'>+# \Class \Logger provides a simple but sophisticated logging utility that</div><div class='add'>+# you can use to create one or more</div><div class='add'>+# {event logs}[https://en.wikipedia.org/wiki/Logging_(software)#Event_logs]</div><div class='add'>+# for your program.</div><div class='add'>+# Each such log contains a chronological sequence of entries</div><div class='add'>+# that provides a record of the program's activities.</div><div class='ctx'> #</div><div class='del'>-# The Logger class provides a simple but sophisticated logging utility that</div><div class='del'>-# you can use to output messages.</div><div class='add'>+# == About the Examples</div><div class='ctx'> #</div><div class='del'>-# The messages have associated levels, such as +INFO+ or +ERROR+ that indicate</div><div class='del'>-# their importance.  You can then give the Logger a level, and only messages</div><div class='del'>-# at that level or higher will be printed.</div><div class='add'>+# All examples on this page assume that \Logger has been required:</div><div class='ctx'> #</div><div class='del'>-# The levels are:</div><div class='add'>+#   require 'logger'</div><div class='ctx'> #</div><div class='del'>-# +UNKNOWN+:: An unknown message that should always be logged.</div><div class='del'>-# +FATAL+:: An unhandleable error that results in a program crash.</div><div class='del'>-# +ERROR+:: A handleable error condition.</div><div class='del'>-# +WARN+::  A warning.</div><div class='del'>-# +INFO+::  Generic (useful) information about system operation.</div><div class='del'>-# +DEBUG+:: Low-level information for developers.</div><div class='add'>+# == Synopsis</div><div class='ctx'> #</div><div class='del'>-# For instance, in a production system, you may have your Logger set to</div><div class='del'>-# +INFO+ or even +WARN+.</div><div class='del'>-# When you are developing the system, however, you probably</div><div class='del'>-# want to know about the program's internal state, and would set the Logger to</div><div class='del'>-# +DEBUG+.</div><div class='add'>+# Create a log with Logger.new:</div><div class='ctx'> #</div><div class='del'>-# *Note*: Logger does not escape or sanitize any messages passed to it.</div><div class='del'>-# Developers should be aware of when potentially malicious data (user-input)</div><div class='del'>-# is passed to Logger, and manually escape the untrusted data:</div><div class='add'>+#   # Single log file.</div><div class='add'>+#   logger = Logger.new('t.log')</div><div class='add'>+#   # Size-based rotated logging: 3 10-megabyte files.</div><div class='add'>+#   logger = Logger.new('t.log', 3, 10485760)</div><div class='add'>+#   # Period-based rotated logging: daily (also allowed: 'weekly', 'monthly').</div><div class='add'>+#   logger = Logger.new('t.log', 'daily')</div><div class='add'>+#   # Log to an IO stream.</div><div class='add'>+#   logger = Logger.new($stdout)</div><div class='ctx'> #</div><div class='del'>-#   logger.info("User-input: #{input.dump}")</div><div class='del'>-#   logger.info("User-input: %p" % input)</div><div class='add'>+# Add entries (level, message) with Logger#add:</div><div class='ctx'> #</div><div class='del'>-# You can use #formatter= for escaping all data.</div><div class='add'>+#   logger.add(Logger::DEBUG, 'Maximal debugging info')</div><div class='add'>+#   logger.add(Logger::INFO, 'Non-error information')</div><div class='add'>+#   logger.add(Logger::WARN, 'Non-error warning')</div><div class='add'>+#   logger.add(Logger::ERROR, 'Non-fatal error')</div><div class='add'>+#   logger.add(Logger::FATAL, 'Fatal error')</div><div class='add'>+#   logger.add(Logger::UNKNOWN, 'Most severe')</div><div class='ctx'> #</div><div class='del'>-#   original_formatter = Logger::Formatter.new</div><div class='del'>-#   logger.formatter = proc { |severity, datetime, progname, msg|</div><div class='del'>-#     original_formatter.call(severity, datetime, progname, msg.dump)</div><div class='del'>-#   }</div><div class='del'>-#   logger.info(input)</div><div class='add'>+# Close the log with Logger#close:</div><div class='ctx'> #</div><div class='del'>-# === Example</div><div class='add'>+#   logger.close</div><div class='ctx'> #</div><div class='del'>-# This creates a Logger that outputs to the standard output stream, with a</div><div class='del'>-# level of +WARN+:</div><div class='add'>+# == Entries</div><div class='ctx'> #</div><div class='del'>-#   require 'logger'</div><div class='add'>+# You can add entries with method Logger#add:</div><div class='add'>+#</div><div class='add'>+#   logger.add(Logger::DEBUG, 'Maximal debugging info')</div><div class='add'>+#   logger.add(Logger::INFO, 'Non-error information')</div><div class='add'>+#   logger.add(Logger::WARN, 'Non-error warning')</div><div class='add'>+#   logger.add(Logger::ERROR, 'Non-fatal error')</div><div class='add'>+#   logger.add(Logger::FATAL, 'Fatal error')</div><div class='add'>+#   logger.add(Logger::UNKNOWN, 'Most severe')</div><div class='add'>+#</div><div class='add'>+# These shorthand methods also add entries:</div><div class='add'>+#</div><div class='add'>+#   logger.debug('Maximal debugging info')</div><div class='add'>+#   logger.info('Non-error information')</div><div class='add'>+#   logger.warn('Non-error warning')</div><div class='add'>+#   logger.error('Non-fatal error')</div><div class='add'>+#   logger.fatal('Fatal error')</div><div class='add'>+#   logger.unknown('Most severe')</div><div class='add'>+#</div><div class='add'>+# When you call any of these methods,</div><div class='add'>+# the entry may or may not be written to the log,</div><div class='add'>+# depending on the entry's severity and on the log level;</div><div class='add'>+# see {Log Level}[rdoc-ref:Logger@Log+Level]</div><div class='add'>+#</div><div class='add'>+# An entry always has:</div><div class='add'>+#</div><div class='add'>+# - A severity (the required argument to #add).</div><div class='add'>+# - An automatically created timestamp.</div><div class='add'>+#</div><div class='add'>+# And may also have:</div><div class='add'>+#</div><div class='add'>+# - A message.</div><div class='add'>+# - A program name.</div><div class='add'>+#</div><div class='add'>+# Example:</div><div class='add'>+#</div><div class='add'>+#   logger = Logger.new($stdout)</div><div class='add'>+#   logger.add(Logger::INFO, 'My message.', 'mung')</div><div class='add'>+#   # =&gt; I, [2022-05-07T17:21:46.536234 #20536]  INFO -- mung: My message.</div><div class='add'>+#</div><div class='add'>+# The default format for an entry is:</div><div class='add'>+#</div><div class='add'>+#   "%s, [%s #%d] %5s -- %s: %s\n"</div><div class='add'>+#</div><div class='add'>+# where the values to be formatted are:</div><div class='add'>+#</div><div class='add'>+# - \Severity (one letter).</div><div class='add'>+# - Timestamp.</div><div class='add'>+# - Process id.</div><div class='add'>+# - \Severity (word).</div><div class='add'>+# - Program name.</div><div class='add'>+# - Message.</div><div class='add'>+#</div><div class='add'>+# You can use a different entry format by:</div><div class='add'>+#</div><div class='add'>+# - Setting a custom format proc (affects following entries);</div><div class='add'>+#   see {formatter=}[Logger.html#attribute-i-formatter].</div><div class='add'>+# - Calling any of the methods above with a block</div><div class='add'>+#   (affects only the one entry).</div><div class='add'>+#   Doing so can have two benefits:</div><div class='add'>+#</div><div class='add'>+#   - Context: the block can evaluate the entire program context</div><div class='add'>+#     and create a context-dependent message.</div><div class='add'>+#   - Performance: the block is not evaluated unless the log level</div><div class='add'>+#     permits the entry actually to be written:</div><div class='add'>+#</div><div class='add'>+#       logger.error { my_slow_message_generator }</div><div class='add'>+#</div><div class='add'>+#     Contrast this with the string form, where the string is</div><div class='add'>+#     always evaluated, regardless of the log level:</div><div class='add'>+#</div><div class='add'>+#       logger.error("#{my_slow_message_generator}")</div><div class='ctx'> #</div><div class='del'>-#   logger = Logger.new(STDOUT)</div><div class='del'>-#   logger.level = Logger::WARN</div><div class='add'>+# === \Severity</div><div class='ctx'> #</div><div class='del'>-#   logger.debug("Created logger")</div><div class='del'>-#   logger.info("Program started")</div><div class='del'>-#   logger.warn("Nothing to do!")</div><div class='add'>+# The severity of a log entry has two effects:</div><div class='ctx'> #</div><div class='del'>-#   path = "a_non_existent_file"</div><div class='add'>+# - Determines whether the entry is selected for inclusion in the log;</div><div class='add'>+#   see {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='add'>+# - Indicates to any log reader (whether a person or a program)</div><div class='add'>+#   the relative importance of the entry.</div><div class='ctx'> #</div><div class='del'>-#   begin</div><div class='del'>-#     File.foreach(path) do |line|</div><div class='del'>-#       unless line =~ /^(\w+) = (.*)$/</div><div class='del'>-#         logger.error("Line in wrong format: #{line.chomp}")</div><div class='del'>-#       end</div><div class='del'>-#     end</div><div class='del'>-#   rescue =&gt; err</div><div class='del'>-#     logger.fatal("Caught exception; exiting")</div><div class='del'>-#     logger.fatal(err)</div><div class='del'>-#   end</div><div class='add'>+# === Timestamp</div><div class='ctx'> #</div><div class='del'>-# Because the Logger's level is set to +WARN+, only the warning, error, and</div><div class='del'>-# fatal messages are recorded.  The debug and info messages are silently</div><div class='del'>-# discarded.</div><div class='add'>+# The timestamp for a log entry is generated automatically</div><div class='add'>+# when the entry is created.</div><div class='ctx'> #</div><div class='del'>-# === Features</div><div class='add'>+# The logged timestamp is formatted by method</div><div class='add'>+# {Time#strftime}[rdoc-ref:Time#strftime]</div><div class='add'>+# using this format string:</div><div class='ctx'> #</div><div class='del'>-# There are several interesting features that Logger provides, like</div><div class='del'>-# auto-rolling of log files, setting the format of log messages, and</div><div class='del'>-# specifying a program name in conjunction with the message.  The next section</div><div class='del'>-# shows you how to achieve these things.</div><div class='add'>+#   '%Y-%m-%dT%H:%M:%S.%6N'</div><div class='ctx'> #</div><div class='add'>+# Example:</div><div class='ctx'> #</div><div class='del'>-# == HOWTOs</div><div class='add'>+#   logger = Logger.new($stdout)</div><div class='add'>+#   logger.add(Logger::INFO)</div><div class='add'>+#   # =&gt; I, [2022-05-07T17:04:32.318331 #20536]  INFO -- : nil</div><div class='ctx'> #</div><div class='del'>-# === How to create a logger</div><div class='add'>+# You can set a different format using method #datetime_format=.</div><div class='ctx'> #</div><div class='del'>-# The options below give you various choices, in more or less increasing</div><div class='del'>-# complexity.</div><div class='add'>+# === Message</div><div class='ctx'> #</div><div class='del'>-# 1. Create a logger which logs messages to STDERR/STDOUT.</div><div class='add'>+# The message is an optional argument to an entry method:</div><div class='ctx'> #</div><div class='del'>-#      logger = Logger.new(STDERR)</div><div class='del'>-#      logger = Logger.new(STDOUT)</div><div class='add'>+#   logger = Logger.new($stdout)</div><div class='add'>+#   logger.add(Logger::INFO, 'My message')</div><div class='add'>+#   # =&gt; I, [2022-05-07T18:15:37.647581 #20536]  INFO -- : My message</div><div class='ctx'> #</div><div class='del'>-# 2. Create a logger for the file which has the specified name.</div><div class='add'>+# For the default entry formatter, &lt;tt&gt;Logger::Formatter&lt;/tt&gt;,</div><div class='add'>+# the message object may be:</div><div class='ctx'> #</div><div class='del'>-#      logger = Logger.new('logfile.log')</div><div class='add'>+# - A string: used as-is.</div><div class='add'>+# - An Exception: &lt;tt&gt;message.message&lt;/tt&gt; is used.</div><div class='add'>+# - Anything else: &lt;tt&gt;message.inspect&lt;/tt&gt; is used.</div><div class='ctx'> #</div><div class='del'>-# 3. Create a logger for the specified file.</div><div class='add'>+# *Note*: Logger::Formatter does not escape or sanitize</div><div class='add'>+# the message passed to it.</div><div class='add'>+# Developers should be aware that malicious data (user input)</div><div class='add'>+# may be in the message, and should explicitly escape untrusted data.</div><div class='ctx'> #</div><div class='del'>-#      file = File.open('foo.log', File::WRONLY | File::APPEND)</div><div class='del'>-#      # To create new logfile, add File::CREAT like:</div><div class='del'>-#      # file = File.open('foo.log', File::WRONLY | File::APPEND | File::CREAT)</div><div class='del'>-#      logger = Logger.new(file)</div><div class='add'>+# You can use a custom formatter to escape message data;</div><div class='add'>+# see the example at {formatter=}[Logger.html#attribute-i-formatter].</div><div class='ctx'> #</div><div class='del'>-# 4. Create a logger which ages the logfile once it reaches a certain size.</div><div class='del'>-#    Leave 10 "old" log files where each file is about 1,024,000 bytes.</div><div class='add'>+# === Program Name</div><div class='ctx'> #</div><div class='del'>-#      logger = Logger.new('foo.log', 10, 1024000)</div><div class='add'>+# The program name is an optional argument to an entry method:</div><div class='ctx'> #</div><div class='del'>-# 5. Create a logger which ages the logfile daily/weekly/monthly.</div><div class='add'>+#   logger = Logger.new($stdout)</div><div class='add'>+#   logger.add(Logger::INFO, 'My message', 'mung')</div><div class='add'>+#   # =&gt; I, [2022-05-07T18:17:38.084716 #20536]  INFO -- mung: My message</div><div class='ctx'> #</div><div class='del'>-#      logger = Logger.new('foo.log', 'daily')</div><div class='del'>-#      logger = Logger.new('foo.log', 'weekly')</div><div class='del'>-#      logger = Logger.new('foo.log', 'monthly')</div><div class='add'>+# The default program name for a new logger may be set in the call to</div><div class='add'>+# Logger.new via optional keyword argument +progname+:</div><div class='ctx'> #</div><div class='del'>-# === How to log a message</div><div class='add'>+#   logger = Logger.new('t.log', progname: 'mung')</div><div class='ctx'> #</div><div class='del'>-# Notice the different methods (+fatal+, +error+, +info+) being used to log</div><div class='del'>-# messages of various levels?  Other methods in this family are +warn+ and</div><div class='del'>-# +debug+.  +add+ is used below to log a message of an arbitrary (perhaps</div><div class='del'>-# dynamic) level.</div><div class='add'>+# The default program name for an existing logger may be set</div><div class='add'>+# by a call to method #progname=:</div><div class='ctx'> #</div><div class='del'>-# 1. Message in a block.</div><div class='add'>+#   logger.progname = 'mung'</div><div class='ctx'> #</div><div class='del'>-#      logger.fatal { "Argument 'foo' not given." }</div><div class='add'>+# The current program name may be retrieved with method</div><div class='add'>+# {progname}[Logger.html#attribute-i-progname]:</div><div class='ctx'> #</div><div class='del'>-# 2. Message as a string.</div><div class='add'>+#   logger.progname # =&gt; "mung"</div><div class='ctx'> #</div><div class='del'>-#      logger.error "Argument #{@foo} mismatch."</div><div class='add'>+# == Log Level</div><div class='ctx'> #</div><div class='del'>-# 3. With progname.</div><div class='add'>+# The log level setting determines whether an entry is actually</div><div class='add'>+# written to the log, based on the entry's severity.</div><div class='ctx'> #</div><div class='del'>-#      logger.info('initialize') { "Initializing..." }</div><div class='add'>+# These are the defined severities (least severe to most severe):</div><div class='ctx'> #</div><div class='del'>-# 4. With severity.</div><div class='add'>+#   logger = Logger.new($stdout)</div><div class='add'>+#   logger.add(Logger::DEBUG, 'Maximal debugging info')</div><div class='add'>+#   # =&gt; D, [2022-05-07T17:57:41.776220 #20536] DEBUG -- : Maximal debugging info</div><div class='add'>+#   logger.add(Logger::INFO, 'Non-error information')</div><div class='add'>+#   # =&gt; I, [2022-05-07T17:59:14.349167 #20536]  INFO -- : Non-error information</div><div class='add'>+#   logger.add(Logger::WARN, 'Non-error warning')</div><div class='add'>+#   # =&gt; W, [2022-05-07T18:00:45.337538 #20536]  WARN -- : Non-error warning</div><div class='add'>+#   logger.add(Logger::ERROR, 'Non-fatal error')</div><div class='add'>+#   # =&gt; E, [2022-05-07T18:02:41.592912 #20536] ERROR -- : Non-fatal error</div><div class='add'>+#   logger.add(Logger::FATAL, 'Fatal error')</div><div class='add'>+#   # =&gt; F, [2022-05-07T18:05:24.703931 #20536] FATAL -- : Fatal error</div><div class='add'>+#   logger.add(Logger::UNKNOWN, 'Most severe')</div><div class='add'>+#   # =&gt; A, [2022-05-07T18:07:54.657491 #20536]   ANY -- : Most severe</div><div class='ctx'> #</div><div class='del'>-#      logger.add(Logger::FATAL) { 'Fatal error!' }</div><div class='add'>+# The default initial level setting is Logger::DEBUG, the lowest level,</div><div class='add'>+# which means that all entries are to be written, regardless of severity:</div><div class='ctx'> #</div><div class='del'>-# The block form allows you to create potentially complex log messages,</div><div class='del'>-# but to delay their evaluation until and unless the message is</div><div class='del'>-# logged.  For example, if we have the following:</div><div class='add'>+#   logger = Logger.new($stdout)</div><div class='add'>+#   logger.level # =&gt; 0</div><div class='add'>+#   logger.add(0, "My message")</div><div class='add'>+#   # =&gt; D, [2022-05-11T15:10:59.773668 #20536] DEBUG -- : My message</div><div class='ctx'> #</div><div class='del'>-#     logger.debug { "This is a " + potentially + " expensive operation" }</div><div class='add'>+# You can specify a different setting in a new logger</div><div class='add'>+# using keyword argument +level+ with an appropriate value:</div><div class='ctx'> #</div><div class='del'>-# If the logger's level is +INFO+ or higher, no debug messages will be logged,</div><div class='del'>-# and the entire block will not even be evaluated.  Compare to this:</div><div class='add'>+#   logger = Logger.new($stdout, level: Logger::ERROR)</div><div class='add'>+#   logger = Logger.new($stdout, level: 'error')</div><div class='add'>+#   logger = Logger.new($stdout, level: :error)</div><div class='add'>+#   logger.level # =&gt; 3</div><div class='ctx'> #</div><div class='del'>-#     logger.debug("This is a " + potentially + " expensive operation")</div><div class='add'>+# With this level, entries with severity Logger::ERROR and higher</div><div class='add'>+# are written, while those with lower severities are not written:</div><div class='ctx'> #</div><div class='del'>-# Here, the string concatenation is done every time, even if the log</div><div class='del'>-# level is not set to show the debug message.</div><div class='add'>+#   logger = Logger.new($stdout, level: Logger::ERROR)</div><div class='add'>+#   logger.add(3)</div><div class='add'>+#   # =&gt; E, [2022-05-11T15:17:20.933362 #20536] ERROR -- : nil</div><div class='add'>+#   logger.add(2) # Silent.</div><div class='ctx'> #</div><div class='del'>-# === How to close a logger</div><div class='add'>+# You can set the log level for an existing logger</div><div class='add'>+# with method #level=:</div><div class='ctx'> #</div><div class='del'>-#      logger.close</div><div class='add'>+#   logger.level = Logger::ERROR</div><div class='ctx'> #</div><div class='del'>-# === Setting severity threshold</div><div class='add'>+# These shorthand methods also set the level:</div><div class='ctx'> #</div><div class='del'>-# 1. Original interface.</div><div class='add'>+#   logger.debug! # =&gt; 0</div><div class='add'>+#   logger.info!  # =&gt; 1</div><div class='add'>+#   logger.warn!  # =&gt; 2</div><div class='add'>+#   logger.error! # =&gt; 3</div><div class='add'>+#   logger.fatal! # =&gt; 4</div><div class='ctx'> #</div><div class='del'>-#      logger.sev_threshold = Logger::WARN</div><div class='add'>+# You can retrieve the log level with method</div><div class='add'>+# {level}[Logger.html#attribute-i-level]:</div><div class='ctx'> #</div><div class='del'>-# 2. Log4r (somewhat) compatible interface.</div><div class='add'>+#   logger.level = Logger::ERROR</div><div class='add'>+#   logger.level # =&gt; 3</div><div class='ctx'> #</div><div class='del'>-#      logger.level = Logger::INFO</div><div class='add'>+# These methods return whether a given</div><div class='add'>+# level is to be written:</div><div class='ctx'> #</div><div class='del'>-#      # DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL &lt; UNKNOWN</div><div class='add'>+#   logger.level = Logger::ERROR</div><div class='add'>+#   logger.debug? # =&gt; false</div><div class='add'>+#   logger.info?  # =&gt; false</div><div class='add'>+#   logger.warn?  # =&gt; false</div><div class='add'>+#   logger.error? # =&gt; true</div><div class='add'>+#   logger.fatal? # =&gt; true</div><div class='ctx'> #</div><div class='del'>-# 3. Symbol or String (case insensitive)</div><div class='add'>+# == Log File Rotation</div><div class='ctx'> #</div><div class='del'>-#      logger.level = :info</div><div class='del'>-#      logger.level = 'INFO'</div><div class='add'>+# By default, a log file is a single file that grows indefinitely</div><div class='add'>+# (until explicitly closed); there is no file rotation.</div><div class='ctx'> #</div><div class='del'>-#      # :debug &lt; :info &lt; :warn &lt; :error &lt; :fatal &lt; :unknown</div><div class='add'>+# To keep log files to a manageable size,</div><div class='add'>+# you can use _log_ _file_ _rotation_, which uses multiple log files:</div><div class='ctx'> #</div><div class='del'>-# 4. Constructor</div><div class='add'>+# - Each log file has entries for a non-overlapping</div><div class='add'>+#   time interval.</div><div class='add'>+# - Only the most recent log file is open and active;</div><div class='add'>+#   the others are closed and inactive.</div><div class='ctx'> #</div><div class='del'>-#      Logger.new(logdev, level: Logger::INFO)</div><div class='del'>-#      Logger.new(logdev, level: :info)</div><div class='del'>-#      Logger.new(logdev, level: 'INFO')</div><div class='add'>+# === Size-Based Rotation</div><div class='ctx'> #</div><div class='del'>-# == Format</div><div class='add'>+# For size-based log file rotation, call Logger.new with:</div><div class='ctx'> #</div><div class='del'>-# Log messages are rendered in the output stream in a certain format by</div><div class='del'>-# default.  The default format and a sample are shown below:</div><div class='add'>+# - Argument +logdev+ as a file path.</div><div class='add'>+# - Argument +shift_age+ with a positive integer:</div><div class='add'>+#   the number of log files to be in the rotation.</div><div class='add'>+# - Argument +shift_size+ as a positive integer:</div><div class='add'>+#   the maximum size (in bytes) of each log file;</div><div class='add'>+#   defaults to 1048576 (1 megabyte).</div><div class='ctx'> #</div><div class='del'>-# Log format:</div><div class='del'>-#   SeverityID, [DateTime #pid] SeverityLabel -- ProgName: message</div><div class='add'>+# Examples:</div><div class='ctx'> #</div><div class='del'>-# Log sample:</div><div class='del'>-#   I, [1999-03-03T02:34:24.895701 #19074]  INFO -- Main: info.</div><div class='add'>+#   logger = Logger.new('t.log', 3)           # Three 1-megabyte files.</div><div class='add'>+#   logger = Logger.new('t.log', 5, 10485760) # Five 10-megabyte files.</div><div class='ctx'> #</div><div class='del'>-# You may change the date and time format via #datetime_format=.</div><div class='add'>+# For these examples, suppose:</div><div class='ctx'> #</div><div class='del'>-#   logger.datetime_format = '%Y-%m-%d %H:%M:%S'</div><div class='del'>-#         # e.g. "2004-01-03 00:54:26"</div><div class='add'>+#   logger = Logger.new('t.log', 3)</div><div class='ctx'> #</div><div class='del'>-# or via the constructor.</div><div class='add'>+# Logging begins in the new log file, +t.log+;</div><div class='add'>+# the log file is "full" and ready for rotation</div><div class='add'>+# when a new entry would cause its size to exceed +shift_size+.</div><div class='ctx'> #</div><div class='del'>-#   Logger.new(logdev, datetime_format: '%Y-%m-%d %H:%M:%S')</div><div class='add'>+# The first time +t.log+ is full:</div><div class='ctx'> #</div><div class='del'>-# Or, you may change the overall format via the #formatter= method.</div><div class='add'>+# - +t.log+ is closed and renamed to +t.log.0+.</div><div class='add'>+# - A new file +t.log+ is opened.</div><div class='ctx'> #</div><div class='del'>-#   logger.formatter = proc do |severity, datetime, progname, msg|</div><div class='del'>-#     "#{datetime}: #{msg}\n"</div><div class='del'>-#   end</div><div class='del'>-#   # e.g. "2005-09-22 08:51:08 +0900: hello world"</div><div class='add'>+# The second time +t.log+ is full:</div><div class='ctx'> #</div><div class='del'>-# or via the constructor.</div><div class='add'>+# - +t.log.0 is renamed as +t.log.1+.</div><div class='add'>+# - +t.log+ is closed and renamed to +t.log.0+.</div><div class='add'>+# - A new file +t.log+ is opened.</div><div class='ctx'> #</div><div class='del'>-#   Logger.new(logdev, formatter: proc {|severity, datetime, progname, msg|</div><div class='del'>-#     "#{datetime}: #{msg}\n"</div><div class='del'>-#   })</div><div class='add'>+# Each subsequent time that +t.log+ is full,</div><div class='add'>+# the log files are rotated:</div><div class='add'>+#</div><div class='add'>+# - +t.log.1+ is removed.</div><div class='add'>+# - +t.log.0 is renamed as +t.log.1+.</div><div class='add'>+# - +t.log+ is closed and renamed to +t.log.0+.</div><div class='add'>+# - A new file +t.log+ is opened.</div><div class='add'>+#</div><div class='add'>+# === Periodic Rotation</div><div class='add'>+#</div><div class='add'>+# For periodic rotation, call Logger.new with:</div><div class='add'>+#</div><div class='add'>+# - Argument +logdev+ as a file path.</div><div class='add'>+# - Argument +shift_age+ as a string period indicator.</div><div class='add'>+#</div><div class='add'>+# Examples:</div><div class='add'>+#</div><div class='add'>+#   logger = Logger.new('t.log', 'daily')   # Rotate log files daily.</div><div class='add'>+#   logger = Logger.new('t.log', 'weekly')  # Rotate log files weekly.</div><div class='add'>+#   logger = Logger.new('t.log', 'monthly') # Rotate log files monthly.</div><div class='add'>+#</div><div class='add'>+# Example:</div><div class='add'>+#</div><div class='add'>+#   logger = Logger.new('t.log', 'daily')</div><div class='add'>+#</div><div class='add'>+# When the given period expires:</div><div class='add'>+#</div><div class='add'>+# - The base log file, +t.log+ is closed and renamed</div><div class='add'>+#   with a date-based suffix such as +t.log.20220509+.</div><div class='add'>+# - A new log file +t.log+ is opened.</div><div class='add'>+# - Nothing is removed.</div><div class='add'>+#</div><div class='add'>+# The default format for the suffix is &lt;tt&gt;'%Y%m%d'&lt;/tt&gt;,</div><div class='add'>+# which produces a suffix similar to the one above.</div><div class='add'>+# You can set a different format using create-time option</div><div class='add'>+# +shift_period_suffix+;</div><div class='add'>+# see details and suggestions at</div><div class='add'>+# {Time#strftime}[rdoc-ref:Time#strftime].</div><div class='ctx'> #</div><div class='ctx'> class Logger</div><div class='del'>-  VERSION = "1.3.0"</div><div class='ctx'>   _, name, rev = %w$Id$</div><div class='ctx'>   if name</div><div class='ctx'>     name = name.chomp(",v")</div><div class='hunk'>@@ -232,37 +375,25 @@ class Logger</div><div class='ctx'>     name = File.basename(__FILE__)</div><div class='ctx'>   end</div><div class='ctx'>   rev ||= "v#{VERSION}"</div><div class='del'>-  ProgName = "#{name}/#{rev}".freeze</div><div class='add'>+  ProgName = "#{name}/#{rev}"</div><div class='ctx'> </div><div class='del'>-  class Error &lt; RuntimeError # :nodoc:</div><div class='del'>-  end</div><div class='del'>-  # not used after 1.2.7. just for compat.</div><div class='del'>-  class ShiftingError &lt; Error # :nodoc:</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Logging severity.</div><div class='del'>-  module Severity</div><div class='del'>-    # Low-level information, mostly for developers.</div><div class='del'>-    DEBUG = 0</div><div class='del'>-    # Generic (useful) information about system operation.</div><div class='del'>-    INFO = 1</div><div class='del'>-    # A warning.</div><div class='del'>-    WARN = 2</div><div class='del'>-    # A handleable error condition.</div><div class='del'>-    ERROR = 3</div><div class='del'>-    # An unhandleable error that results in a program crash.</div><div class='del'>-    FATAL = 4</div><div class='del'>-    # An unknown message that should always be logged.</div><div class='del'>-    UNKNOWN = 5</div><div class='del'>-  end</div><div class='ctx'>   include Severity</div><div class='ctx'> </div><div class='ctx'>   # Logging severity threshold (e.g. &lt;tt&gt;Logger::INFO&lt;/tt&gt;).</div><div class='ctx'>   attr_reader :level</div><div class='ctx'> </div><div class='del'>-  # Set logging severity threshold.</div><div class='add'>+  # Sets the log level; returns +severity+.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='add'>+  #</div><div class='add'>+  # Argument +severity+ may be an integer, a string, or a symbol:</div><div class='add'>+  #</div><div class='add'>+  #   logger.level = Logger::ERROR # =&gt; 3</div><div class='add'>+  #   logger.level = 3             # =&gt; 3</div><div class='add'>+  #   logger.level = 'error'       # =&gt; "error"</div><div class='add'>+  #   logger.level = :error        # =&gt; :error</div><div class='add'>+  #</div><div class='add'>+  # Logger#sev_threshold= is an alias for Logger#level=.</div><div class='ctx'>   #</div><div class='del'>-  # +severity+:: The Severity of the log message.</div><div class='ctx'>   def level=(severity)</div><div class='ctx'>     if severity.is_a?(Integer)</div><div class='ctx'>       @level = severity</div><div class='hunk'>@@ -289,172 +420,235 @@ class Logger</div><div class='ctx'>   # Program name to include in log messages.</div><div class='ctx'>   attr_accessor :progname</div><div class='ctx'> </div><div class='del'>-  # Set date-time format.</div><div class='add'>+  # Sets the date-time format.</div><div class='add'>+  #</div><div class='add'>+  # Argument +datetime_format+ should be either of these:</div><div class='add'>+  #</div><div class='add'>+  # - A string suitable for use as a format for method</div><div class='add'>+  #   {Time#strftime}[rdoc-ref:Time#strftime].</div><div class='add'>+  # - +nil+: the logger uses &lt;tt&gt;'%Y-%m-%dT%H:%M:%S.%6N'&lt;/tt&gt;.</div><div class='ctx'>   #</div><div class='del'>-  # +datetime_format+:: A string suitable for passing to +strftime+.</div><div class='ctx'>   def datetime_format=(datetime_format)</div><div class='ctx'>     @default_formatter.datetime_format = datetime_format</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Returns the date format being used.  See #datetime_format=</div><div class='add'>+  # Returns the date-time format; see #datetime_format=.</div><div class='add'>+  #</div><div class='ctx'>   def datetime_format</div><div class='ctx'>     @default_formatter.datetime_format</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Logging formatter, as a +Proc+ that will take four arguments and</div><div class='del'>-  # return the formatted message. The arguments are:</div><div class='add'>+  # Sets or retrieves the logger entry formatter proc.</div><div class='add'>+  #</div><div class='add'>+  # When +formatter+ is +nil+, the logger uses Logger::Formatter.</div><div class='ctx'>   #</div><div class='del'>-  # +severity+:: The Severity of the log message.</div><div class='del'>-  # +time+:: A Time instance representing when the message was logged.</div><div class='del'>-  # +progname+:: The #progname configured, or passed to the logger method.</div><div class='del'>-  # +msg+:: The _Object_ the user passed to the log message; not necessarily a</div><div class='del'>-  #         String.</div><div class='add'>+  # When +formatter+ is a proc, a new entry is formatted by the proc,</div><div class='add'>+  # which is called with four arguments:</div><div class='add'>+  #</div><div class='add'>+  # - +severity+: The severity of the entry.</div><div class='add'>+  # - +time+: A Time object representing the entry's timestamp.</div><div class='add'>+  # - +progname+: The program name for the entry.</div><div class='add'>+  # - +msg+: The message for the entry (string or string-convertible object).</div><div class='add'>+  #</div><div class='add'>+  # The proc should return a string containing the formatted entry.</div><div class='add'>+  #</div><div class='add'>+  # This custom formatter uses</div><div class='add'>+  # {String#dump}[rdoc-ref:String#dump]</div><div class='add'>+  # to escape the message string:</div><div class='add'>+  #</div><div class='add'>+  #   logger = Logger.new($stdout, progname: 'mung')</div><div class='add'>+  #   original_formatter = logger.formatter || Logger::Formatter.new</div><div class='add'>+  #   logger.formatter = proc { |severity, time, progname, msg|</div><div class='add'>+  #     original_formatter.call(severity, time, progname, msg.dump)</div><div class='add'>+  #   }</div><div class='add'>+  #   logger.add(Logger::INFO, "hello \n ''")</div><div class='add'>+  #   logger.add(Logger::INFO, "\f\x00\xff\\\"")</div><div class='add'>+  #</div><div class='add'>+  # Output:</div><div class='add'>+  #</div><div class='add'>+  #   I, [2022-05-13T13:16:29.637488 #8492]  INFO -- mung: "hello \n ''"</div><div class='add'>+  #   I, [2022-05-13T13:16:29.637610 #8492]  INFO -- mung: "\f\x00\xFF\\\""</div><div class='ctx'>   #</div><div class='del'>-  # The block should return an Object that can be written to the logging</div><div class='del'>-  # device via +write+.  The default formatter is used when no formatter is</div><div class='del'>-  # set.</div><div class='ctx'>   attr_accessor :formatter</div><div class='ctx'> </div><div class='ctx'>   alias sev_threshold level</div><div class='ctx'>   alias sev_threshold= level=</div><div class='ctx'> </div><div class='del'>-  # Returns +true+ iff the current severity level allows for the printing of</div><div class='del'>-  # +DEBUG+ messages.</div><div class='del'>-  def debug?; @level &lt;= DEBUG; end</div><div class='add'>+  # Returns +true+ if the log level allows entries with severity</div><div class='add'>+  # Logger::DEBUG to be written, +false+ otherwise.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='add'>+  #</div><div class='add'>+  def debug?; level &lt;= DEBUG; end</div><div class='ctx'> </div><div class='del'>-  # Returns +true+ iff the current severity level allows for the printing of</div><div class='del'>-  # +INFO+ messages.</div><div class='del'>-  def info?; @level &lt;= INFO; end</div><div class='add'>+  # Sets the log level to Logger::DEBUG.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='add'>+  #</div><div class='add'>+  def debug!; self.level = DEBUG; end</div><div class='ctx'> </div><div class='del'>-  # Returns +true+ iff the current severity level allows for the printing of</div><div class='del'>-  # +WARN+ messages.</div><div class='del'>-  def warn?; @level &lt;= WARN; end</div><div class='add'>+  # Returns +true+ if the log level allows entries with severity</div><div class='add'>+  # Logger::INFO to be written, +false+ otherwise.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='add'>+  #</div><div class='add'>+  def info?; level &lt;= INFO; end</div><div class='ctx'> </div><div class='del'>-  # Returns +true+ iff the current severity level allows for the printing of</div><div class='del'>-  # +ERROR+ messages.</div><div class='del'>-  def error?; @level &lt;= ERROR; end</div><div class='add'>+  # Sets the log level to Logger::INFO.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='add'>+  #</div><div class='add'>+  def info!; self.level = INFO; end</div><div class='ctx'> </div><div class='del'>-  # Returns +true+ iff the current severity level allows for the printing of</div><div class='del'>-  # +FATAL+ messages.</div><div class='del'>-  def fatal?; @level &lt;= FATAL; end</div><div class='add'>+  # Returns +true+ if the log level allows entries with severity</div><div class='add'>+  # Logger::WARN to be written, +false+ otherwise.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='add'>+  #</div><div class='add'>+  def warn?; level &lt;= WARN; end</div><div class='ctx'> </div><div class='add'>+  # Sets the log level to Logger::WARN.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='ctx'>   #</div><div class='add'>+  def warn!; self.level = WARN; end</div><div class='add'>+</div><div class='add'>+  # Returns +true+ if the log level allows entries with severity</div><div class='add'>+  # Logger::ERROR to be written, +false+ otherwise.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='add'>+  #</div><div class='add'>+  def error?; level &lt;= ERROR; end</div><div class='add'>+</div><div class='add'>+  # Sets the log level to Logger::ERROR.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='add'>+  #</div><div class='add'>+  def error!; self.level = ERROR; end</div><div class='add'>+</div><div class='add'>+  # Returns +true+ if the log level allows entries with severity</div><div class='add'>+  # Logger::FATAL to be written, +false+ otherwise.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='add'>+  #</div><div class='add'>+  def fatal?; level &lt;= FATAL; end</div><div class='add'>+</div><div class='add'>+  # Sets the log level to Logger::FATAL.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level].</div><div class='add'>+  #</div><div class='add'>+  def fatal!; self.level = FATAL; end</div><div class='add'>+</div><div class='ctx'>   # :call-seq:</div><div class='del'>-  #   Logger.new(logdev, shift_age = 0, shift_size = 1048576)</div><div class='del'>-  #   Logger.new(logdev, shift_age = 'weekly')</div><div class='del'>-  #   Logger.new(logdev, level: :info)</div><div class='del'>-  #   Logger.new(logdev, progname: 'progname')</div><div class='del'>-  #   Logger.new(logdev, formatter: formatter)</div><div class='del'>-  #   Logger.new(logdev, datetime_format: '%Y-%m-%d %H:%M:%S')</div><div class='del'>-  #</div><div class='del'>-  # === Args</div><div class='del'>-  #</div><div class='del'>-  # +logdev+::</div><div class='del'>-  #   The log device.  This is a filename (String) or IO object (typically</div><div class='del'>-  #   +STDOUT+, +STDERR+, or an open file).</div><div class='del'>-  # +shift_age+::</div><div class='del'>-  #   Number of old log files to keep, *or* frequency of rotation (+daily+,</div><div class='del'>-  #   +weekly+ or +monthly+). Default value is 0.</div><div class='del'>-  # +shift_size+::</div><div class='del'>-  #   Maximum logfile size in bytes (only applies when +shift_age+ is a number).</div><div class='del'>-  #   Defaults to +1048576+ (1MB).</div><div class='del'>-  # +level+::</div><div class='del'>-  #   Logging severity threshold. Default values is Logger::DEBUG.</div><div class='del'>-  # +progname+::</div><div class='del'>-  #   Program name to include in log messages. Default value is nil.</div><div class='del'>-  # +formatter+::</div><div class='del'>-  #   Logging formatter. Default values is an instance of Logger::Formatter.</div><div class='del'>-  # +datetime_format+::</div><div class='del'>-  #   Date and time format. Default value is '%Y-%m-%d %H:%M:%S'.</div><div class='del'>-  # +shift_period_suffix+::</div><div class='del'>-  #   The log file suffix format for +daily+, +weekly+ or +monthly+ rotation.</div><div class='del'>-  #   Default is '%Y%m%d'.</div><div class='del'>-  #</div><div class='del'>-  # === Description</div><div class='del'>-  #</div><div class='del'>-  # Create an instance.</div><div class='add'>+  #    Logger.new(logdev, shift_age = 0, shift_size = 1048576, **options)</div><div class='add'>+  #</div><div class='add'>+  # With the single argument +logdev+,</div><div class='add'>+  # returns a new logger with all default options:</div><div class='add'>+  #</div><div class='add'>+  #   Logger.new('t.log') # =&gt; #&lt;Logger:0x000001e685dc6ac8&gt;</div><div class='add'>+  #</div><div class='add'>+  # Argument +logdev+ must be one of:</div><div class='add'>+  #</div><div class='add'>+  # - A string filepath: entries are to be written</div><div class='add'>+  #   to the file at that path; if the file at that path exists,</div><div class='add'>+  #   new entries are appended.</div><div class='add'>+  # - An IO stream (typically +$stdout+, +$stderr+. or an open file):</div><div class='add'>+  #   entries are to be written to the given stream.</div><div class='add'>+  # - +nil+ or +File::NULL+: no entries are to be written.</div><div class='add'>+  #</div><div class='add'>+  # Examples:</div><div class='add'>+  #</div><div class='add'>+  #   Logger.new('t.log')</div><div class='add'>+  #   Logger.new($stdout)</div><div class='add'>+  #</div><div class='add'>+  # The keyword options are:</div><div class='add'>+  #</div><div class='add'>+  # - +level+: sets the log level; default value is Logger::DEBUG.</div><div class='add'>+  #   See {Log Level}[rdoc-ref:Logger@Log+Level]:</div><div class='add'>+  #</div><div class='add'>+  #     Logger.new('t.log', level: Logger::ERROR)</div><div class='add'>+  #</div><div class='add'>+  # - +progname+: sets the default program name; default is +nil+.</div><div class='add'>+  #   See {Program Name}[rdoc-ref:Logger@Program+Name]:</div><div class='add'>+  #</div><div class='add'>+  #     Logger.new('t.log', progname: 'mung')</div><div class='add'>+  #</div><div class='add'>+  # - +formatter+: sets the entry formatter; default is +nil+.</div><div class='add'>+  #   See {formatter=}[Logger.html#attribute-i-formatter].</div><div class='add'>+  # - +datetime_format+: sets the format for entry timestamp;</div><div class='add'>+  #   default is +nil+.</div><div class='add'>+  #   See #datetime_format=.</div><div class='add'>+  # - +binmode+: sets whether the logger writes in binary mode;</div><div class='add'>+  #   default is +false+.</div><div class='add'>+  # - +shift_period_suffix+: sets the format for the filename suffix</div><div class='add'>+  #   for periodic log file rotation; default is &lt;tt&gt;'%Y%m%d'&lt;/tt&gt;.</div><div class='add'>+  #   See {Periodic Rotation}[rdoc-ref:Logger@Periodic+Rotation].</div><div class='ctx'>   #</div><div class='ctx'>   def initialize(logdev, shift_age = 0, shift_size = 1048576, level: DEBUG,</div><div class='ctx'>                  progname: nil, formatter: nil, datetime_format: nil,</div><div class='del'>-                 shift_period_suffix: '%Y%m%d')</div><div class='add'>+                 binmode: false, shift_period_suffix: '%Y%m%d')</div><div class='ctx'>     self.level = level</div><div class='ctx'>     self.progname = progname</div><div class='ctx'>     @default_formatter = Formatter.new</div><div class='ctx'>     self.datetime_format = datetime_format</div><div class='ctx'>     self.formatter = formatter</div><div class='ctx'>     @logdev = nil</div><div class='del'>-    if logdev</div><div class='del'>-      @logdev = LogDevice.new(logdev, :shift_age =&gt; shift_age,</div><div class='del'>-        :shift_size =&gt; shift_size,</div><div class='del'>-        :shift_period_suffix =&gt; shift_period_suffix)</div><div class='add'>+    if logdev &amp;&amp; logdev != File::NULL</div><div class='add'>+      @logdev = LogDevice.new(logdev, shift_age: shift_age,</div><div class='add'>+        shift_size: shift_size,</div><div class='add'>+        shift_period_suffix: shift_period_suffix,</div><div class='add'>+        binmode: binmode)</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   Logger#reopen</div><div class='del'>-  #   Logger#reopen(logdev)</div><div class='del'>-  #</div><div class='del'>-  # === Args</div><div class='del'>-  #</div><div class='del'>-  # +logdev+::</div><div class='del'>-  #   The log device.  This is a filename (String) or IO object (typically</div><div class='del'>-  #   +STDOUT+, +STDERR+, or an open file).  reopen the same filename if</div><div class='del'>-  #   it is +nil+, do nothing for IO.  Default is +nil+.</div><div class='del'>-  #</div><div class='del'>-  # === Description</div><div class='del'>-  #</div><div class='del'>-  # Reopen a log device.</div><div class='add'>+  # Sets the logger's output stream:</div><div class='add'>+  #</div><div class='add'>+  # - If +logdev+ is +nil+, reopens the current output stream.</div><div class='add'>+  # - If +logdev+ is a filepath, opens the indicated file for append.</div><div class='add'>+  # - If +logdev+ is an IO stream</div><div class='add'>+  #   (usually &lt;tt&gt;$stdout&lt;/tt&gt;, &lt;tt&gt;$stderr&lt;/tt&gt;, or an open File object),</div><div class='add'>+  #   opens the stream for append.</div><div class='add'>+  #</div><div class='add'>+  # Example:</div><div class='add'>+  #</div><div class='add'>+  #   logger = Logger.new('t.log')</div><div class='add'>+  #   logger.add(Logger::ERROR, 'one')</div><div class='add'>+  #   logger.close</div><div class='add'>+  #   logger.add(Logger::ERROR, 'two') # Prints 'log writing failed. closed stream'</div><div class='add'>+  #   logger.reopen</div><div class='add'>+  #   logger.add(Logger::ERROR, 'three')</div><div class='add'>+  #   logger.close</div><div class='add'>+  #   File.readlines('t.log')</div><div class='add'>+  #   # =&gt;</div><div class='add'>+  #   # ["# Logfile created on 2022-05-12 14:21:19 -0500 by logger.rb/v1.5.0\n",</div><div class='add'>+  #   #  "E, [2022-05-12T14:21:27.596726 #22428] ERROR -- : one\n",</div><div class='add'>+  #   #  "E, [2022-05-12T14:23:05.847241 #22428] ERROR -- : three\n"]</div><div class='ctx'>   #</div><div class='ctx'>   def reopen(logdev = nil)</div><div class='del'>-    @logdev.reopen(logdev)</div><div class='add'>+    @logdev&amp;.reopen(logdev)</div><div class='ctx'>     self</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Creates a log entry, which may or may not be written to the log,</div><div class='add'>+  # depending on the entry's severity and on the log level.</div><div class='add'>+  # See {Log Level}[rdoc-ref:Logger@Log+Level]</div><div class='add'>+  # and {Entries}[rdoc-ref:Logger@Entries] for details.</div><div class='ctx'>   #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   Logger#add(severity, message = nil, progname = nil) { ... }</div><div class='del'>-  #</div><div class='del'>-  # === Args</div><div class='add'>+  # Examples:</div><div class='ctx'>   #</div><div class='del'>-  # +severity+::</div><div class='del'>-  #   Severity.  Constants are defined in Logger namespace: +DEBUG+, +INFO+,</div><div class='del'>-  #   +WARN+, +ERROR+, +FATAL+, or +UNKNOWN+.</div><div class='del'>-  # +message+::</div><div class='del'>-  #   The log message.  A String or Exception.</div><div class='del'>-  # +progname+::</div><div class='del'>-  #   Program name string.  Can be omitted.  Treated as a message if no</div><div class='del'>-  #   +message+ and +block+ are given.</div><div class='del'>-  # +block+::</div><div class='del'>-  #   Can be omitted.  Called to get a message string if +message+ is nil.</div><div class='add'>+  #   logger = Logger.new($stdout, progname: 'mung')</div><div class='add'>+  #   logger.add(Logger::INFO)</div><div class='add'>+  #   logger.add(Logger::ERROR, 'No good')</div><div class='add'>+  #   logger.add(Logger::ERROR, 'No good', 'gnum')</div><div class='ctx'>   #</div><div class='del'>-  # === Return</div><div class='add'>+  # Output:</div><div class='ctx'>   #</div><div class='del'>-  # When the given severity is not high enough (for this particular logger),</div><div class='del'>-  # log no message, and return +true+.</div><div class='add'>+  #   I, [2022-05-12T16:25:31.469726 #36328]  INFO -- mung: mung</div><div class='add'>+  #   E, [2022-05-12T16:25:55.349414 #36328] ERROR -- mung: No good</div><div class='add'>+  #   E, [2022-05-12T16:26:35.841134 #36328] ERROR -- gnum: No good</div><div class='ctx'>   #</div><div class='del'>-  # === Description</div><div class='add'>+  # These convenience methods have implicit severity:</div><div class='ctx'>   #</div><div class='del'>-  # Log a message if the given severity is high enough.  This is the generic</div><div class='del'>-  # logging method.  Users will be more inclined to use #debug, #info, #warn,</div><div class='del'>-  # #error, and #fatal.</div><div class='del'>-  #</div><div class='del'>-  # &lt;b&gt;Message format&lt;/b&gt;: +message+ can be any object, but it has to be</div><div class='del'>-  # converted to a String in order to log it.  Generally, +inspect+ is used</div><div class='del'>-  # if the given object is not a String.</div><div class='del'>-  # A special case is an +Exception+ object, which will be printed in detail,</div><div class='del'>-  # including message, class, and backtrace.  See #msg2str for the</div><div class='del'>-  # implementation if required.</div><div class='del'>-  #</div><div class='del'>-  # === Bugs</div><div class='del'>-  #</div><div class='del'>-  # * Logfile is not locked.</div><div class='del'>-  # * Append open does not need to lock file.</div><div class='del'>-  # * If the OS supports multi I/O, records possibly may be mixed.</div><div class='add'>+  # - #debug.</div><div class='add'>+  # - #info.</div><div class='add'>+  # - #warn.</div><div class='add'>+  # - #error.</div><div class='add'>+  # - #fatal.</div><div class='add'>+  # - #unknown.</div><div class='ctx'>   #</div><div class='ctx'>   def add(severity, message = nil, progname = nil)</div><div class='ctx'>     severity ||= UNKNOWN</div><div class='del'>-    if @logdev.nil? or severity &lt; @level</div><div class='add'>+    if @logdev.nil? or severity &lt; level</div><div class='ctx'>       return true</div><div class='ctx'>     end</div><div class='ctx'>     if progname.nil?</div><div class='hunk'>@@ -474,105 +668,72 @@ class Logger</div><div class='ctx'>   end</div><div class='ctx'>   alias log add</div><div class='ctx'> </div><div class='add'>+  # Writes the given +msg+ to the log with no formatting;</div><div class='add'>+  # returns the number of characters written,</div><div class='add'>+  # or +nil+ if no log device exists:</div><div class='add'>+  #</div><div class='add'>+  #   logger = Logger.new($stdout)</div><div class='add'>+  #   logger &lt;&lt; 'My message.' # =&gt; 10</div><div class='add'>+  #</div><div class='add'>+  # Output:</div><div class='ctx'>   #</div><div class='del'>-  # Dump given message to the log device without any formatting.  If no log</div><div class='del'>-  # device exists, return +nil+.</div><div class='add'>+  #   My message.</div><div class='ctx'>   #</div><div class='ctx'>   def &lt;&lt;(msg)</div><div class='ctx'>     @logdev&amp;.write(msg)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Log a +DEBUG+ message.</div><div class='del'>-  #</div><div class='del'>-  # See #info for more information.</div><div class='add'>+  # Equivalent to calling #add with severity &lt;tt&gt;Logger::DEBUG&lt;/tt&gt;.</div><div class='ctx'>   #</div><div class='ctx'>   def debug(progname = nil, &amp;block)</div><div class='ctx'>     add(DEBUG, nil, progname, &amp;block)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   info(message)</div><div class='del'>-  #   info(progname, &amp;block)</div><div class='del'>-  #</div><div class='del'>-  # Log an +INFO+ message.</div><div class='del'>-  #</div><div class='del'>-  # +message+:: The message to log; does not need to be a String.</div><div class='del'>-  # +progname+:: In the block form, this is the #progname to use in the</div><div class='del'>-  #              log message.  The default can be set with #progname=.</div><div class='del'>-  # +block+:: Evaluates to the message to log.  This is not evaluated unless</div><div class='del'>-  #           the logger's level is sufficient to log the message.  This</div><div class='del'>-  #           allows you to create potentially expensive logging messages that</div><div class='del'>-  #           are only called when the logger is configured to show them.</div><div class='del'>-  #</div><div class='del'>-  # === Examples</div><div class='del'>-  #</div><div class='del'>-  #   logger.info("MainApp") { "Received connection from #{ip}" }</div><div class='del'>-  #   # ...</div><div class='del'>-  #   logger.info "Waiting for input from user"</div><div class='del'>-  #   # ...</div><div class='del'>-  #   logger.info { "User typed #{input}" }</div><div class='del'>-  #</div><div class='del'>-  # You'll probably stick to the second form above, unless you want to provide a</div><div class='del'>-  # program name (which you can do with #progname= as well).</div><div class='del'>-  #</div><div class='del'>-  # === Return</div><div class='del'>-  #</div><div class='del'>-  # See #add.</div><div class='add'>+  # Equivalent to calling #add with severity &lt;tt&gt;Logger::INFO&lt;/tt&gt;.</div><div class='ctx'>   #</div><div class='ctx'>   def info(progname = nil, &amp;block)</div><div class='ctx'>     add(INFO, nil, progname, &amp;block)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Log a +WARN+ message.</div><div class='del'>-  #</div><div class='del'>-  # See #info for more information.</div><div class='add'>+  # Equivalent to calling #add with severity &lt;tt&gt;Logger::WARN&lt;/tt&gt;.</div><div class='ctx'>   #</div><div class='ctx'>   def warn(progname = nil, &amp;block)</div><div class='ctx'>     add(WARN, nil, progname, &amp;block)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Log an +ERROR+ message.</div><div class='del'>-  #</div><div class='del'>-  # See #info for more information.</div><div class='add'>+  # Equivalent to calling #add with severity &lt;tt&gt;Logger::ERROR&lt;/tt&gt;.</div><div class='ctx'>   #</div><div class='ctx'>   def error(progname = nil, &amp;block)</div><div class='ctx'>     add(ERROR, nil, progname, &amp;block)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Log a +FATAL+ message.</div><div class='del'>-  #</div><div class='del'>-  # See #info for more information.</div><div class='add'>+  # Equivalent to calling #add with severity &lt;tt&gt;Logger::FATAL&lt;/tt&gt;.</div><div class='ctx'>   #</div><div class='ctx'>   def fatal(progname = nil, &amp;block)</div><div class='ctx'>     add(FATAL, nil, progname, &amp;block)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  #</div><div class='del'>-  # Log an +UNKNOWN+ message.  This will be printed no matter what the logger's</div><div class='del'>-  # level is.</div><div class='del'>-  #</div><div class='del'>-  # See #info for more information.</div><div class='add'>+  # Equivalent to calling #add with severity &lt;tt&gt;Logger::UNKNOWN&lt;/tt&gt;.</div><div class='ctx'>   #</div><div class='ctx'>   def unknown(progname = nil, &amp;block)</div><div class='ctx'>     add(UNKNOWN, nil, progname, &amp;block)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  # Closes the logger; returns +nil+:</div><div class='ctx'>   #</div><div class='del'>-  # Close the logging device.</div><div class='add'>+  #   logger = Logger.new('t.log')</div><div class='add'>+  #   logger.close       # =&gt; nil</div><div class='add'>+  #   logger.info('foo') # Prints "log writing failed. closed stream"</div><div class='ctx'>   #</div><div class='add'>+  # Related: Logger#reopen.</div><div class='ctx'>   def close</div><div class='ctx'>     @logdev&amp;.close</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'> private</div><div class='ctx'> </div><div class='del'>-  # Severity label for logging (max 5 chars).</div><div class='del'>-  SEV_LABEL = %w(DEBUG INFO WARN ERROR FATAL ANY).each(&amp;:freeze).freeze</div><div class='add'>+  # \Severity label for logging (max 5 chars).</div><div class='add'>+  SEV_LABEL = %w(DEBUG INFO WARN ERROR FATAL ANY).freeze</div><div class='ctx'> </div><div class='ctx'>   def format_severity(severity)</div><div class='ctx'>     SEV_LABEL[severity] || 'ANY'</div><div class='hunk'>@@ -581,273 +742,4 @@ private</div><div class='ctx'>   def format_message(severity, datetime, progname, msg)</div><div class='ctx'>     (@formatter || @default_formatter).call(severity, datetime, progname, msg)</div><div class='ctx'>   end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-  # Default formatter for log messages.</div><div class='del'>-  class Formatter</div><div class='del'>-    Format = "%s, [%s#%d] %5s -- %s: %s\n".freeze</div><div class='del'>-</div><div class='del'>-    attr_accessor :datetime_format</div><div class='del'>-</div><div class='del'>-    def initialize</div><div class='del'>-      @datetime_format = nil</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def call(severity, time, progname, msg)</div><div class='del'>-      Format % [severity[0..0], format_datetime(time), $$, severity, progname,</div><div class='del'>-        msg2str(msg)]</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-  private</div><div class='del'>-</div><div class='del'>-    def format_datetime(time)</div><div class='del'>-      time.strftime(@datetime_format || "%Y-%m-%dT%H:%M:%S.%6N ".freeze)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def msg2str(msg)</div><div class='del'>-      case msg</div><div class='del'>-      when ::String</div><div class='del'>-        msg</div><div class='del'>-      when ::Exception</div><div class='del'>-        "#{ msg.message } (#{ msg.class })\n" &lt;&lt;</div><div class='del'>-          (msg.backtrace || []).join("\n")</div><div class='del'>-      else</div><div class='del'>-        msg.inspect</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  module Period</div><div class='del'>-    module_function</div><div class='del'>-</div><div class='del'>-    SiD = 24 * 60 * 60</div><div class='del'>-</div><div class='del'>-    def next_rotate_time(now, shift_age)</div><div class='del'>-      case shift_age</div><div class='del'>-      when 'daily'</div><div class='del'>-        t = Time.mktime(now.year, now.month, now.mday) + SiD</div><div class='del'>-      when 'weekly'</div><div class='del'>-        t = Time.mktime(now.year, now.month, now.mday) + SiD * (7 - now.wday)</div><div class='del'>-      when 'monthly'</div><div class='del'>-        t = Time.mktime(now.year, now.month, 1) + SiD * 32</div><div class='del'>-        return Time.mktime(t.year, t.month, 1)</div><div class='del'>-      else</div><div class='del'>-        return now</div><div class='del'>-      end</div><div class='del'>-      if t.hour.nonzero? or t.min.nonzero? or t.sec.nonzero?</div><div class='del'>-        hour = t.hour</div><div class='del'>-        t = Time.mktime(t.year, t.month, t.mday)</div><div class='del'>-        t += SiD if hour &gt; 12</div><div class='del'>-      end</div><div class='del'>-      t</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def previous_period_end(now, shift_age)</div><div class='del'>-      case shift_age</div><div class='del'>-      when 'daily'</div><div class='del'>-        t = Time.mktime(now.year, now.month, now.mday) - SiD / 2</div><div class='del'>-      when 'weekly'</div><div class='del'>-        t = Time.mktime(now.year, now.month, now.mday) - (SiD * now.wday + SiD / 2)</div><div class='del'>-      when 'monthly'</div><div class='del'>-        t = Time.mktime(now.year, now.month, 1) - SiD / 2</div><div class='del'>-      else</div><div class='del'>-        return now</div><div class='del'>-      end</div><div class='del'>-      Time.mktime(t.year, t.month, t.mday, 23, 59, 59)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Device used for logging messages.</div><div class='del'>-  class LogDevice</div><div class='del'>-    include Period</div><div class='del'>-</div><div class='del'>-    attr_reader :dev</div><div class='del'>-    attr_reader :filename</div><div class='del'>-    include MonitorMixin</div><div class='del'>-</div><div class='del'>-    def initialize(log = nil, shift_age: nil, shift_size: nil, shift_period_suffix: nil)</div><div class='del'>-      @dev = @filename = @shift_age = @shift_size = @shift_period_suffix = nil</div><div class='del'>-      mon_initialize</div><div class='del'>-      set_dev(log)</div><div class='del'>-      if @filename</div><div class='del'>-        @shift_age = shift_age || 7</div><div class='del'>-        @shift_size = shift_size || 1048576</div><div class='del'>-        @shift_period_suffix = shift_period_suffix || '%Y%m%d'</div><div class='del'>-</div><div class='del'>-        unless @shift_age.is_a?(Integer)</div><div class='del'>-          base_time = @dev.respond_to?(:stat) ? @dev.stat.mtime : Time.now</div><div class='del'>-          @next_rotate_time = next_rotate_time(base_time, @shift_age)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def write(message)</div><div class='del'>-      begin</div><div class='del'>-        synchronize do</div><div class='del'>-          if @shift_age and @dev.respond_to?(:stat)</div><div class='del'>-            begin</div><div class='del'>-              check_shift_log</div><div class='del'>-            rescue</div><div class='del'>-              warn("log shifting failed. #{$!}")</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-          begin</div><div class='del'>-            @dev.write(message)</div><div class='del'>-          rescue</div><div class='del'>-            warn("log writing failed. #{$!}")</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      rescue Exception =&gt; ignored</div><div class='del'>-        warn("log writing failed. #{ignored}")</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def close</div><div class='del'>-      begin</div><div class='del'>-        synchronize do</div><div class='del'>-          @dev.close rescue nil</div><div class='del'>-        end</div><div class='del'>-      rescue Exception</div><div class='del'>-        @dev.close rescue nil</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def reopen(log = nil)</div><div class='del'>-      # reopen the same filename if no argument, do nothing for IO</div><div class='del'>-      log ||= @filename if @filename</div><div class='del'>-      if log</div><div class='del'>-        synchronize do</div><div class='del'>-          if @filename and @dev</div><div class='del'>-            @dev.close rescue nil # close only file opened by Logger</div><div class='del'>-            @filename = nil</div><div class='del'>-          end</div><div class='del'>-          set_dev(log)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      self</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-  private</div><div class='del'>-</div><div class='del'>-    def set_dev(log)</div><div class='del'>-      if log.respond_to?(:write) and log.respond_to?(:close)</div><div class='del'>-        @dev = log</div><div class='del'>-      else</div><div class='del'>-        @dev = open_logfile(log)</div><div class='del'>-        @dev.sync = true</div><div class='del'>-        @filename = log</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def open_logfile(filename)</div><div class='del'>-      begin</div><div class='del'>-        File.open(filename, (File::WRONLY | File::APPEND))</div><div class='del'>-      rescue Errno::ENOENT</div><div class='del'>-        create_logfile(filename)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def create_logfile(filename)</div><div class='del'>-      begin</div><div class='del'>-        logdev = File.open(filename, (File::WRONLY | File::APPEND | File::CREAT | File::EXCL))</div><div class='del'>-        logdev.flock(File::LOCK_EX)</div><div class='del'>-        logdev.sync = true</div><div class='del'>-        add_log_header(logdev)</div><div class='del'>-        logdev.flock(File::LOCK_UN)</div><div class='del'>-      rescue Errno::EEXIST</div><div class='del'>-        # file is created by another process</div><div class='del'>-        logdev = open_logfile(filename)</div><div class='del'>-        logdev.sync = true</div><div class='del'>-      end</div><div class='del'>-      logdev</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def add_log_header(file)</div><div class='del'>-      file.write(</div><div class='del'>-        "# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName]</div><div class='del'>-      ) if file.size == 0</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def check_shift_log</div><div class='del'>-      if @shift_age.is_a?(Integer)</div><div class='del'>-        # Note: always returns false if '0'.</div><div class='del'>-        if @filename &amp;&amp; (@shift_age &gt; 0) &amp;&amp; (@dev.stat.size &gt; @shift_size)</div><div class='del'>-          lock_shift_log { shift_log_age }</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        now = Time.now</div><div class='del'>-        if now &gt;= @next_rotate_time</div><div class='del'>-          @next_rotate_time = next_rotate_time(now, @shift_age)</div><div class='del'>-          lock_shift_log { shift_log_period(previous_period_end(now, @shift_age)) }</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    if /mswin|mingw/ =~ RUBY_PLATFORM</div><div class='del'>-      def lock_shift_log</div><div class='del'>-        yield</div><div class='del'>-      end</div><div class='del'>-    else</div><div class='del'>-      def lock_shift_log</div><div class='del'>-        retry_limit = 8</div><div class='del'>-        retry_sleep = 0.1</div><div class='del'>-        begin</div><div class='del'>-          File.open(@filename, File::WRONLY | File::APPEND) do |lock|</div><div class='del'>-            lock.flock(File::LOCK_EX) # inter-process locking. will be unlocked at closing file</div><div class='del'>-            if File.identical?(@filename, lock) and File.identical?(lock, @dev)</div><div class='del'>-              yield # log shifting</div><div class='del'>-            else</div><div class='del'>-              # log shifted by another process (i-node before locking and i-node after locking are different)</div><div class='del'>-              @dev.close rescue nil</div><div class='del'>-              @dev = open_logfile(@filename)</div><div class='del'>-              @dev.sync = true</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        rescue Errno::ENOENT</div><div class='del'>-          # @filename file would not exist right after #rename and before #create_logfile</div><div class='del'>-          if retry_limit &lt;= 0</div><div class='del'>-            warn("log rotation inter-process lock failed. #{$!}")</div><div class='del'>-          else</div><div class='del'>-            sleep retry_sleep</div><div class='del'>-            retry_limit -= 1</div><div class='del'>-            retry_sleep *= 2</div><div class='del'>-            retry</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      rescue</div><div class='del'>-        warn("log rotation inter-process lock failed. #{$!}")</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def shift_log_age</div><div class='del'>-      (@shift_age-3).downto(0) do |i|</div><div class='del'>-        if FileTest.exist?("#{@filename}.#{i}")</div><div class='del'>-          File.rename("#{@filename}.#{i}", "#{@filename}.#{i+1}")</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      @dev.close rescue nil</div><div class='del'>-      File.rename("#{@filename}", "#{@filename}.0")</div><div class='del'>-      @dev = create_logfile(@filename)</div><div class='del'>-      return true</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def shift_log_period(period_end)</div><div class='del'>-      suffix = period_end.strftime(@shift_period_suffix)</div><div class='del'>-      age_file = "#{@filename}.#{suffix}"</div><div class='del'>-      if FileTest.exist?(age_file)</div><div class='del'>-        # try to avoid filename crash caused by Timestamp change.</div><div class='del'>-        idx = 0</div><div class='del'>-        # .99 can be overridden; avoid too much file search with 'loop do'</div><div class='del'>-        while idx &lt; 100</div><div class='del'>-          idx += 1</div><div class='del'>-          age_file = "#{@filename}.#{suffix}.#{idx}"</div><div class='del'>-          break unless FileTest.exist?(age_file)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      @dev.close rescue nil</div><div class='del'>-      File.rename("#{@filename}", age_file)</div><div class='del'>-      @dev = create_logfile(@filename)</div><div class='del'>-      return true</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/logger/errors.rb b/lib/logger/errors.rb<br/>new file mode 100644<br/>index 0000000000..88581793f0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/logger/errors.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/logger/errors.rb</a></div><div class='hunk'>@@ -0,0 +1,9 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+class Logger</div><div class='add'>+  # not used after 1.2.7. just for compat.</div><div class='add'>+  class Error &lt; RuntimeError # :nodoc:</div><div class='add'>+  end</div><div class='add'>+  class ShiftingError &lt; Error # :nodoc:</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/logger/formatter.rb b/lib/logger/formatter.rb<br/>new file mode 100644<br/>index 0000000000..c634dbf34d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/logger/formatter.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/logger/formatter.rb</a></div><div class='hunk'>@@ -0,0 +1,36 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+class Logger</div><div class='add'>+  # Default formatter for log messages.</div><div class='add'>+  class Formatter</div><div class='add'>+    Format = "%.1s, [%s #%d] %5s -- %s: %s\n"</div><div class='add'>+    DatetimeFormat = "%Y-%m-%dT%H:%M:%S.%6N"</div><div class='add'>+</div><div class='add'>+    attr_accessor :datetime_format</div><div class='add'>+</div><div class='add'>+    def initialize</div><div class='add'>+      @datetime_format = nil</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def call(severity, time, progname, msg)</div><div class='add'>+      sprintf(Format, severity, format_datetime(time), Process.pid, severity, progname, msg2str(msg))</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+  private</div><div class='add'>+</div><div class='add'>+    def format_datetime(time)</div><div class='add'>+      time.strftime(@datetime_format || DatetimeFormat)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def msg2str(msg)</div><div class='add'>+      case msg</div><div class='add'>+      when ::String</div><div class='add'>+        msg</div><div class='add'>+      when ::Exception</div><div class='add'>+        "#{ msg.message } (#{ msg.class })\n#{ msg.backtrace.join("\n") if msg.backtrace }"</div><div class='add'>+      else</div><div class='add'>+        msg.inspect</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/logger/log_device.rb b/lib/logger/log_device.rb<br/>new file mode 100644<br/>index 0000000000..84277a2656<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/logger/log_device.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/logger/log_device.rb</a></div><div class='hunk'>@@ -0,0 +1,207 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+require_relative 'period'</div><div class='add'>+</div><div class='add'>+class Logger</div><div class='add'>+  # Device used for logging messages.</div><div class='add'>+  class LogDevice</div><div class='add'>+    include Period</div><div class='add'>+</div><div class='add'>+    attr_reader :dev</div><div class='add'>+    attr_reader :filename</div><div class='add'>+    include MonitorMixin</div><div class='add'>+</div><div class='add'>+    def initialize(log = nil, shift_age: nil, shift_size: nil, shift_period_suffix: nil, binmode: false)</div><div class='add'>+      @dev = @filename = @shift_age = @shift_size = @shift_period_suffix = nil</div><div class='add'>+      @binmode = binmode</div><div class='add'>+      mon_initialize</div><div class='add'>+      set_dev(log)</div><div class='add'>+      if @filename</div><div class='add'>+        @shift_age = shift_age || 7</div><div class='add'>+        @shift_size = shift_size || 1048576</div><div class='add'>+        @shift_period_suffix = shift_period_suffix || '%Y%m%d'</div><div class='add'>+</div><div class='add'>+        unless @shift_age.is_a?(Integer)</div><div class='add'>+          base_time = @dev.respond_to?(:stat) ? @dev.stat.mtime : Time.now</div><div class='add'>+          @next_rotate_time = next_rotate_time(base_time, @shift_age)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def write(message)</div><div class='add'>+      begin</div><div class='add'>+        synchronize do</div><div class='add'>+          if @shift_age and @dev.respond_to?(:stat)</div><div class='add'>+            begin</div><div class='add'>+              check_shift_log</div><div class='add'>+            rescue</div><div class='add'>+              warn("log shifting failed. #{$!}")</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+          begin</div><div class='add'>+            @dev.write(message)</div><div class='add'>+          rescue</div><div class='add'>+            warn("log writing failed. #{$!}")</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      rescue Exception =&gt; ignored</div><div class='add'>+        warn("log writing failed. #{ignored}")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def close</div><div class='add'>+      begin</div><div class='add'>+        synchronize do</div><div class='add'>+          @dev.close rescue nil</div><div class='add'>+        end</div><div class='add'>+      rescue Exception</div><div class='add'>+        @dev.close rescue nil</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def reopen(log = nil)</div><div class='add'>+      # reopen the same filename if no argument, do nothing for IO</div><div class='add'>+      log ||= @filename if @filename</div><div class='add'>+      if log</div><div class='add'>+        synchronize do</div><div class='add'>+          if @filename and @dev</div><div class='add'>+            @dev.close rescue nil # close only file opened by Logger</div><div class='add'>+            @filename = nil</div><div class='add'>+          end</div><div class='add'>+          set_dev(log)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      self</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+  private</div><div class='add'>+</div><div class='add'>+    def set_dev(log)</div><div class='add'>+      if log.respond_to?(:write) and log.respond_to?(:close)</div><div class='add'>+        @dev = log</div><div class='add'>+        if log.respond_to?(:path) and path = log.path</div><div class='add'>+          if File.exist?(path)</div><div class='add'>+            @filename = path</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        @dev = open_logfile(log)</div><div class='add'>+        @dev.sync = true</div><div class='add'>+        @dev.binmode if @binmode</div><div class='add'>+        @filename = log</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def open_logfile(filename)</div><div class='add'>+      begin</div><div class='add'>+        File.open(filename, (File::WRONLY | File::APPEND))</div><div class='add'>+      rescue Errno::ENOENT</div><div class='add'>+        create_logfile(filename)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def create_logfile(filename)</div><div class='add'>+      begin</div><div class='add'>+        logdev = File.open(filename, (File::WRONLY | File::APPEND | File::CREAT | File::EXCL))</div><div class='add'>+        logdev.flock(File::LOCK_EX)</div><div class='add'>+        logdev.sync = true</div><div class='add'>+        logdev.binmode if @binmode</div><div class='add'>+        add_log_header(logdev)</div><div class='add'>+        logdev.flock(File::LOCK_UN)</div><div class='add'>+      rescue Errno::EEXIST</div><div class='add'>+        # file is created by another process</div><div class='add'>+        logdev = open_logfile(filename)</div><div class='add'>+        logdev.sync = true</div><div class='add'>+      end</div><div class='add'>+      logdev</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def add_log_header(file)</div><div class='add'>+      file.write(</div><div class='add'>+        "# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName]</div><div class='add'>+      ) if file.size == 0</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def check_shift_log</div><div class='add'>+      if @shift_age.is_a?(Integer)</div><div class='add'>+        # Note: always returns false if '0'.</div><div class='add'>+        if @filename &amp;&amp; (@shift_age &gt; 0) &amp;&amp; (@dev.stat.size &gt; @shift_size)</div><div class='add'>+          lock_shift_log { shift_log_age }</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        now = Time.now</div><div class='add'>+        if now &gt;= @next_rotate_time</div><div class='add'>+          @next_rotate_time = next_rotate_time(now, @shift_age)</div><div class='add'>+          lock_shift_log { shift_log_period(previous_period_end(now, @shift_age)) }</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    if /mswin|mingw|cygwin/ =~ RbConfig::CONFIG['host_os']</div><div class='add'>+      def lock_shift_log</div><div class='add'>+        yield</div><div class='add'>+      end</div><div class='add'>+    else</div><div class='add'>+      def lock_shift_log</div><div class='add'>+        retry_limit = 8</div><div class='add'>+        retry_sleep = 0.1</div><div class='add'>+        begin</div><div class='add'>+          File.open(@filename, File::WRONLY | File::APPEND) do |lock|</div><div class='add'>+            lock.flock(File::LOCK_EX) # inter-process locking. will be unlocked at closing file</div><div class='add'>+            if File.identical?(@filename, lock) and File.identical?(lock, @dev)</div><div class='add'>+              yield # log shifting</div><div class='add'>+            else</div><div class='add'>+              # log shifted by another process (i-node before locking and i-node after locking are different)</div><div class='add'>+              @dev.close rescue nil</div><div class='add'>+              @dev = open_logfile(@filename)</div><div class='add'>+              @dev.sync = true</div><div class='add'>+            end</div><div class='add'>+          end</div><div class='add'>+        rescue Errno::ENOENT</div><div class='add'>+          # @filename file would not exist right after #rename and before #create_logfile</div><div class='add'>+          if retry_limit &lt;= 0</div><div class='add'>+            warn("log rotation inter-process lock failed. #{$!}")</div><div class='add'>+          else</div><div class='add'>+            sleep retry_sleep</div><div class='add'>+            retry_limit -= 1</div><div class='add'>+            retry_sleep *= 2</div><div class='add'>+            retry</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      rescue</div><div class='add'>+        warn("log rotation inter-process lock failed. #{$!}")</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def shift_log_age</div><div class='add'>+      (@shift_age-3).downto(0) do |i|</div><div class='add'>+        if FileTest.exist?("#{@filename}.#{i}")</div><div class='add'>+          File.rename("#{@filename}.#{i}", "#{@filename}.#{i+1}")</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      @dev.close rescue nil</div><div class='add'>+      File.rename("#{@filename}", "#{@filename}.0")</div><div class='add'>+      @dev = create_logfile(@filename)</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def shift_log_period(period_end)</div><div class='add'>+      suffix = period_end.strftime(@shift_period_suffix)</div><div class='add'>+      age_file = "#{@filename}.#{suffix}"</div><div class='add'>+      if FileTest.exist?(age_file)</div><div class='add'>+        # try to avoid filename crash caused by Timestamp change.</div><div class='add'>+        idx = 0</div><div class='add'>+        # .99 can be overridden; avoid too much file search with 'loop do'</div><div class='add'>+        while idx &lt; 100</div><div class='add'>+          idx += 1</div><div class='add'>+          age_file = "#{@filename}.#{suffix}.#{idx}"</div><div class='add'>+          break unless FileTest.exist?(age_file)</div><div class='add'>+        end</div><div class='add'>+      end</div><div class='add'>+      @dev.close rescue nil</div><div class='add'>+      File.rename("#{@filename}", age_file)</div><div class='add'>+      @dev = create_logfile(@filename)</div><div class='add'>+      return true</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/logger/logger.gemspec b/lib/logger/logger.gemspec<br/>new file mode 100644<br/>index 0000000000..d12db625d9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/logger/logger.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/logger/logger.gemspec</a></div><div class='hunk'>@@ -0,0 +1,26 @@</div><div class='add'>+begin</div><div class='add'>+  require_relative "lib/logger/version"</div><div class='add'>+rescue LoadError # Fallback to load version file in ruby core repository</div><div class='add'>+  require_relative "version"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+Gem::Specification.new do |spec|</div><div class='add'>+  spec.name          = "logger"</div><div class='add'>+  spec.version       = Logger::VERSION</div><div class='add'>+  spec.authors       = ["Naotoshi Seo", "SHIBATA Hiroshi"]</div><div class='add'>+  spec.email         = ["sonots@gmail.com", "hsbt@ruby-lang.org"]</div><div class='add'>+</div><div class='add'>+  spec.summary       = %q{Provides a simple logging utility for outputting messages.}</div><div class='add'>+  spec.description   = %q{Provides a simple logging utility for outputting messages.}</div><div class='add'>+  spec.homepage      = "https://github.com/ruby/logger"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='add'>+</div><div class='add'>+  spec.files         = Dir.glob("lib/**/*.rb") + ["logger.gemspec"]</div><div class='add'>+  spec.require_paths = ["lib"]</div><div class='add'>+</div><div class='add'>+  spec.required_ruby_version = "&gt;= 2.3.0"</div><div class='add'>+</div><div class='add'>+  spec.add_development_dependency "bundler", "&gt;= 0"</div><div class='add'>+  spec.add_development_dependency "rake", "&gt;= 12.3.3"</div><div class='add'>+  spec.add_development_dependency "test-unit"</div><div class='add'>+end</div><div class='head'>diff --git a/lib/logger/period.rb b/lib/logger/period.rb<br/>new file mode 100644<br/>index 0000000000..0a291dbbbe<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/logger/period.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/logger/period.rb</a></div><div class='hunk'>@@ -0,0 +1,47 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+class Logger</div><div class='add'>+  module Period</div><div class='add'>+    module_function</div><div class='add'>+</div><div class='add'>+    SiD = 24 * 60 * 60</div><div class='add'>+</div><div class='add'>+    def next_rotate_time(now, shift_age)</div><div class='add'>+      case shift_age</div><div class='add'>+      when 'daily'</div><div class='add'>+        t = Time.mktime(now.year, now.month, now.mday) + SiD</div><div class='add'>+      when 'weekly'</div><div class='add'>+        t = Time.mktime(now.year, now.month, now.mday) + SiD * (7 - now.wday)</div><div class='add'>+      when 'monthly'</div><div class='add'>+        t = Time.mktime(now.year, now.month, 1) + SiD * 32</div><div class='add'>+        return Time.mktime(t.year, t.month, 1)</div><div class='add'>+      when 'now', 'everytime'</div><div class='add'>+        return now</div><div class='add'>+      else</div><div class='add'>+        raise ArgumentError, "invalid :shift_age #{shift_age.inspect}, should be daily, weekly, monthly, or everytime"</div><div class='add'>+      end</div><div class='add'>+      if t.hour.nonzero? or t.min.nonzero? or t.sec.nonzero?</div><div class='add'>+        hour = t.hour</div><div class='add'>+        t = Time.mktime(t.year, t.month, t.mday)</div><div class='add'>+        t += SiD if hour &gt; 12</div><div class='add'>+      end</div><div class='add'>+      t</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def previous_period_end(now, shift_age)</div><div class='add'>+      case shift_age</div><div class='add'>+      when 'daily'</div><div class='add'>+        t = Time.mktime(now.year, now.month, now.mday) - SiD / 2</div><div class='add'>+      when 'weekly'</div><div class='add'>+        t = Time.mktime(now.year, now.month, now.mday) - (SiD * now.wday + SiD / 2)</div><div class='add'>+      when 'monthly'</div><div class='add'>+        t = Time.mktime(now.year, now.month, 1) - SiD / 2</div><div class='add'>+      when 'now', 'everytime'</div><div class='add'>+        return now</div><div class='add'>+      else</div><div class='add'>+        raise ArgumentError, "invalid :shift_age #{shift_age.inspect}, should be daily, weekly, monthly, or everytime"</div><div class='add'>+      end</div><div class='add'>+      Time.mktime(t.year, t.month, t.mday, 23, 59, 59)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/logger/severity.rb b/lib/logger/severity.rb<br/>new file mode 100644<br/>index 0000000000..b38afb7d22<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/logger/severity.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/logger/severity.rb</a></div><div class='hunk'>@@ -0,0 +1,19 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+class Logger</div><div class='add'>+  # Logging severity.</div><div class='add'>+  module Severity</div><div class='add'>+    # Low-level information, mostly for developers.</div><div class='add'>+    DEBUG = 0</div><div class='add'>+    # Generic (useful) information about system operation.</div><div class='add'>+    INFO = 1</div><div class='add'>+    # A warning.</div><div class='add'>+    WARN = 2</div><div class='add'>+    # A handleable error condition.</div><div class='add'>+    ERROR = 3</div><div class='add'>+    # An unhandleable error that results in a program crash.</div><div class='add'>+    FATAL = 4</div><div class='add'>+    # An unknown message that should always be logged.</div><div class='add'>+    UNKNOWN = 5</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/lib/logger/version.rb b/lib/logger/version.rb<br/>new file mode 100644<br/>index 0000000000..f85c72eed3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/lib/logger/version.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/logger/version.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+# frozen_string_literal: true</div><div class='add'>+</div><div class='add'>+class Logger</div><div class='add'>+  VERSION = "1.5.3"</div><div class='add'>+end</div><div class='head'>diff --git a/lib/matrix.rb b/lib/matrix.rb<br/>deleted file mode 100644<br/>index 7f338bb07e..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/matrix.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/matrix.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,2374 +0,0 @@</div><div class='del'>-# encoding: utf-8</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-#</div><div class='del'>-# = matrix.rb</div><div class='del'>-#</div><div class='del'>-# An implementation of Matrix and Vector classes.</div><div class='del'>-#</div><div class='del'>-# See classes Matrix and Vector for documentation.</div><div class='del'>-#</div><div class='del'>-# Current Maintainer:: Marc-AndrÃ© Lafortune</div><div class='del'>-# Original Author:: Keiju ISHITSUKA</div><div class='del'>-# Original Documentation:: Gavin Sinclair (sourced from &lt;i&gt;Ruby in a Nutshell&lt;/i&gt; (Matsumoto, O'Reilly))</div><div class='del'>-##</div><div class='del'>-</div><div class='del'>-require "e2mmap"</div><div class='del'>-</div><div class='del'>-module ExceptionForMatrix # :nodoc:</div><div class='del'>-  extend Exception2MessageMapper</div><div class='del'>-  def_e2message(TypeError, "wrong argument type %s (expected %s)")</div><div class='del'>-  def_e2message(ArgumentError, "Wrong # of arguments(%d for %d)")</div><div class='del'>-</div><div class='del'>-  def_exception("ErrDimensionMismatch", "\#{self.name} dimension mismatch")</div><div class='del'>-  def_exception("ErrNotRegular", "Not Regular Matrix")</div><div class='del'>-  def_exception("ErrOperationNotDefined", "Operation(%s) can\\'t be defined: %s op %s")</div><div class='del'>-  def_exception("ErrOperationNotImplemented", "Sorry, Operation(%s) not implemented: %s op %s")</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-#</div><div class='del'>-# The +Matrix+ class represents a mathematical matrix. It provides methods for creating</div><div class='del'>-# matrices, operating on them arithmetically and algebraically,</div><div class='del'>-# and determining their mathematical properties such as trace, rank, inverse, determinant,</div><div class='del'>-# or eigensystem.</div><div class='del'>-#</div><div class='del'>-class Matrix</div><div class='del'>-  include Enumerable</div><div class='del'>-  include ExceptionForMatrix</div><div class='del'>-  autoload :EigenvalueDecomposition, "matrix/eigenvalue_decomposition"</div><div class='del'>-  autoload :LUPDecomposition, "matrix/lup_decomposition"</div><div class='del'>-</div><div class='del'>-  # instance creations</div><div class='del'>-  private_class_method :new</div><div class='del'>-  attr_reader :rows</div><div class='del'>-  protected :rows</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a matrix where each argument is a row.</div><div class='del'>-  #   Matrix[ [25, 93], [-1, 66] ]</div><div class='del'>-  #      =&gt;  25 93</div><div class='del'>-  #          -1 66</div><div class='del'>-  #</div><div class='del'>-  def Matrix.[](*rows)</div><div class='del'>-    rows(rows, false)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a matrix where +rows+ is an array of arrays, each of which is a row</div><div class='del'>-  # of the matrix.  If the optional argument +copy+ is false, use the given</div><div class='del'>-  # arrays as the internal structure of the matrix without copying.</div><div class='del'>-  #   Matrix.rows([[25, 93], [-1, 66]])</div><div class='del'>-  #      =&gt;  25 93</div><div class='del'>-  #          -1 66</div><div class='del'>-  #</div><div class='del'>-  def Matrix.rows(rows, copy = true)</div><div class='del'>-    rows = convert_to_array(rows, copy)</div><div class='del'>-    rows.map! do |row|</div><div class='del'>-      convert_to_array(row, copy)</div><div class='del'>-    end</div><div class='del'>-    size = (rows[0] || []).size</div><div class='del'>-    rows.each do |row|</div><div class='del'>-      raise ErrDimensionMismatch, "row size differs (#{row.size} should be #{size})" unless row.size == size</div><div class='del'>-    end</div><div class='del'>-    new rows, size</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a matrix using +columns+ as an array of column vectors.</div><div class='del'>-  #   Matrix.columns([[25, 93], [-1, 66]])</div><div class='del'>-  #      =&gt;  25 -1</div><div class='del'>-  #          93 66</div><div class='del'>-  #</div><div class='del'>-  def Matrix.columns(columns)</div><div class='del'>-    rows(columns, false).transpose</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a matrix of size +row_count+ x +column_count+.</div><div class='del'>-  # It fills the values by calling the given block,</div><div class='del'>-  # passing the current row and column.</div><div class='del'>-  # Returns an enumerator if no block is given.</div><div class='del'>-  #</div><div class='del'>-  #   m = Matrix.build(2, 4) {|row, col| col - row }</div><div class='del'>-  #     =&gt; Matrix[[0, 1, 2, 3], [-1, 0, 1, 2]]</div><div class='del'>-  #   m = Matrix.build(3) { rand }</div><div class='del'>-  #     =&gt; a 3x3 matrix with random elements</div><div class='del'>-  #</div><div class='del'>-  def Matrix.build(row_count, column_count = row_count)</div><div class='del'>-    row_count = CoercionHelper.coerce_to_int(row_count)</div><div class='del'>-    column_count = CoercionHelper.coerce_to_int(column_count)</div><div class='del'>-    raise ArgumentError if row_count &lt; 0 || column_count &lt; 0</div><div class='del'>-    return to_enum :build, row_count, column_count unless block_given?</div><div class='del'>-    rows = Array.new(row_count) do |i|</div><div class='del'>-      Array.new(column_count) do |j|</div><div class='del'>-        yield i, j</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    new rows, column_count</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a matrix where the diagonal elements are composed of +values+.</div><div class='del'>-  #   Matrix.diagonal(9, 5, -3)</div><div class='del'>-  #     =&gt;  9  0  0</div><div class='del'>-  #         0  5  0</div><div class='del'>-  #         0  0 -3</div><div class='del'>-  #</div><div class='del'>-  def Matrix.diagonal(*values)</div><div class='del'>-    size = values.size</div><div class='del'>-    return Matrix.empty if size == 0</div><div class='del'>-    rows = Array.new(size) {|j|</div><div class='del'>-      row = Array.new(size, 0)</div><div class='del'>-      row[j] = values[j]</div><div class='del'>-      row</div><div class='del'>-    }</div><div class='del'>-    new rows</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates an +n+ by +n+ diagonal matrix where each diagonal element is</div><div class='del'>-  # +value+.</div><div class='del'>-  #   Matrix.scalar(2, 5)</div><div class='del'>-  #     =&gt; 5 0</div><div class='del'>-  #        0 5</div><div class='del'>-  #</div><div class='del'>-  def Matrix.scalar(n, value)</div><div class='del'>-    diagonal(*Array.new(n, value))</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates an +n+ by +n+ identity matrix.</div><div class='del'>-  #   Matrix.identity(2)</div><div class='del'>-  #     =&gt; 1 0</div><div class='del'>-  #        0 1</div><div class='del'>-  #</div><div class='del'>-  def Matrix.identity(n)</div><div class='del'>-    scalar(n, 1)</div><div class='del'>-  end</div><div class='del'>-  class &lt;&lt; Matrix</div><div class='del'>-    alias_method :unit, :identity</div><div class='del'>-    alias_method :I, :identity</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a zero matrix.</div><div class='del'>-  #   Matrix.zero(2)</div><div class='del'>-  #     =&gt; 0 0</div><div class='del'>-  #        0 0</div><div class='del'>-  #</div><div class='del'>-  def Matrix.zero(row_count, column_count = row_count)</div><div class='del'>-    rows = Array.new(row_count){Array.new(column_count, 0)}</div><div class='del'>-    new rows, column_count</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a single-row matrix where the values of that row are as given in</div><div class='del'>-  # +row+.</div><div class='del'>-  #   Matrix.row_vector([4,5,6])</div><div class='del'>-  #     =&gt; 4 5 6</div><div class='del'>-  #</div><div class='del'>-  def Matrix.row_vector(row)</div><div class='del'>-    row = convert_to_array(row)</div><div class='del'>-    new [row]</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a single-column matrix where the values of that column are as given</div><div class='del'>-  # in +column+.</div><div class='del'>-  #   Matrix.column_vector([4,5,6])</div><div class='del'>-  #     =&gt; 4</div><div class='del'>-  #        5</div><div class='del'>-  #        6</div><div class='del'>-  #</div><div class='del'>-  def Matrix.column_vector(column)</div><div class='del'>-    column = convert_to_array(column)</div><div class='del'>-    new [column].transpose, 1</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a empty matrix of +row_count+ x +column_count+.</div><div class='del'>-  # At least one of +row_count+ or +column_count+ must be 0.</div><div class='del'>-  #</div><div class='del'>-  #   m = Matrix.empty(2, 0)</div><div class='del'>-  #   m == Matrix[ [], [] ]</div><div class='del'>-  #     =&gt; true</div><div class='del'>-  #   n = Matrix.empty(0, 3)</div><div class='del'>-  #   n == Matrix.columns([ [], [], [] ])</div><div class='del'>-  #     =&gt; true</div><div class='del'>-  #   m * n</div><div class='del'>-  #     =&gt; Matrix[[0, 0, 0], [0, 0, 0]]</div><div class='del'>-  #</div><div class='del'>-  def Matrix.empty(row_count = 0, column_count = 0)</div><div class='del'>-    raise ArgumentError, "One size must be 0" if column_count != 0 &amp;&amp; row_count != 0</div><div class='del'>-    raise ArgumentError, "Negative size" if column_count &lt; 0 || row_count &lt; 0</div><div class='del'>-</div><div class='del'>-    new([[]]*row_count, column_count)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Create a matrix by stacking matrices vertically</div><div class='del'>-  #</div><div class='del'>-  #   x = Matrix[[1, 2], [3, 4]]</div><div class='del'>-  #   y = Matrix[[5, 6], [7, 8]]</div><div class='del'>-  #   Matrix.vstack(x, y) # =&gt; Matrix[[1, 2], [3, 4], [5, 6], [7, 8]]</div><div class='del'>-  #</div><div class='del'>-  def Matrix.vstack(x, *matrices)</div><div class='del'>-    x = CoercionHelper.coerce_to_matrix(x)</div><div class='del'>-    result = x.send(:rows).map(&amp;:dup)</div><div class='del'>-    matrices.each do |m|</div><div class='del'>-      m = CoercionHelper.coerce_to_matrix(m)</div><div class='del'>-      if m.column_count != x.column_count</div><div class='del'>-        raise ErrDimensionMismatch, "The given matrices must have #{x.column_count} columns, but one has #{m.column_count}"</div><div class='del'>-      end</div><div class='del'>-      result.concat(m.send(:rows))</div><div class='del'>-    end</div><div class='del'>-    new result, x.column_count</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Create a matrix by stacking matrices horizontally</div><div class='del'>-  #</div><div class='del'>-  #   x = Matrix[[1, 2], [3, 4]]</div><div class='del'>-  #   y = Matrix[[5, 6], [7, 8]]</div><div class='del'>-  #   Matrix.hstack(x, y) # =&gt; Matrix[[1, 2, 5, 6], [3, 4, 7, 8]]</div><div class='del'>-  #</div><div class='del'>-  def Matrix.hstack(x, *matrices)</div><div class='del'>-    x = CoercionHelper.coerce_to_matrix(x)</div><div class='del'>-    result = x.send(:rows).map(&amp;:dup)</div><div class='del'>-    total_column_count = x.column_count</div><div class='del'>-    matrices.each do |m|</div><div class='del'>-      m = CoercionHelper.coerce_to_matrix(m)</div><div class='del'>-      if m.row_count != x.row_count</div><div class='del'>-        raise ErrDimensionMismatch, "The given matrices must have #{x.row_count} rows, but one has #{m.row_count}"</div><div class='del'>-      end</div><div class='del'>-      result.each_with_index do |row, i|</div><div class='del'>-        row.concat m.send(:rows)[i]</div><div class='del'>-      end</div><div class='del'>-      total_column_count += m.column_count</div><div class='del'>-    end</div><div class='del'>-    new result, total_column_count</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Create a matrix by combining matrices entrywise, using the given block</div><div class='del'>-  #</div><div class='del'>-  #   x = Matrix[[6, 6], [4, 4]]</div><div class='del'>-  #   y = Matrix[[1, 2], [3, 4]]</div><div class='del'>-  #   Matrix.combine(x, y) {|a, b| a - b} # =&gt; Matrix[[5, 4], [1, 0]]</div><div class='del'>-  #</div><div class='del'>-  def Matrix.combine(*matrices)</div><div class='del'>-    return to_enum(__method__, *matrices) unless block_given?</div><div class='del'>-</div><div class='del'>-    return Matrix.empty if matrices.empty?</div><div class='del'>-    matrices.map!(&amp;CoercionHelper.method(:coerce_to_matrix))</div><div class='del'>-    x = matrices.first</div><div class='del'>-    matrices.each do |m|</div><div class='del'>-      Matrix.Raise ErrDimensionMismatch unless x.row_count == m.row_count &amp;&amp; x.column_count == m.column_count</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    rows = Array.new(x.row_count) do |i|</div><div class='del'>-      Array.new(x.column_count) do |j|</div><div class='del'>-        yield matrices.map{|m| m[i,j]}</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    new rows, x.column_count</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def combine(*matrices, &amp;block)</div><div class='del'>-    Matrix.combine(self, *matrices, &amp;block)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Matrix.new is private; use Matrix.rows, columns, [], etc... to create.</div><div class='del'>-  #</div><div class='del'>-  def initialize(rows, column_count = rows[0].size)</div><div class='del'>-    # No checking is done at this point. rows must be an Array of Arrays.</div><div class='del'>-    # column_count must be the size of the first row, if there is one,</div><div class='del'>-    # otherwise it *must* be specified and can be any integer &gt;= 0</div><div class='del'>-    @rows = rows</div><div class='del'>-    @column_count = column_count</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  private def new_matrix(rows, column_count = rows[0].size) # :nodoc:</div><div class='del'>-    self.class.send(:new, rows, column_count) # bypass privacy of Matrix.new</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns element (+i+,+j+) of the matrix.  That is: row +i+, column +j+.</div><div class='del'>-  #</div><div class='del'>-  def [](i, j)</div><div class='del'>-    @rows.fetch(i){return nil}[j]</div><div class='del'>-  end</div><div class='del'>-  alias element []</div><div class='del'>-  alias component []</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   matrix[range, range] = matrix/element</div><div class='del'>-  #   matrix[range, integer] = vector/column_matrix/element</div><div class='del'>-  #   matrix[integer, range] = vector/row_matrix/element</div><div class='del'>-  #   matrix[integer, integer] = element</div><div class='del'>-  #</div><div class='del'>-  # Set element or elements of matrix.</div><div class='del'>-  def []=(i, j, v)</div><div class='del'>-    raise FrozenError, "can't modify frozen Matrix" if frozen?</div><div class='del'>-    rows = check_range(i, :row) or row = check_int(i, :row)</div><div class='del'>-    columns = check_range(j, :column) or column = check_int(j, :column)</div><div class='del'>-    if rows &amp;&amp; columns</div><div class='del'>-      set_row_and_col_range(rows, columns, v)</div><div class='del'>-    elsif rows</div><div class='del'>-      set_row_range(rows, column, v)</div><div class='del'>-    elsif columns</div><div class='del'>-      set_col_range(row, columns, v)</div><div class='del'>-    else</div><div class='del'>-      set_value(row, column, v)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-  alias set_element []=</div><div class='del'>-  alias set_component []=</div><div class='del'>-  private :set_element, :set_component</div><div class='del'>-</div><div class='del'>-  # Returns range or nil</div><div class='del'>-  private def check_range(val, direction)</div><div class='del'>-    return unless val.is_a?(Range)</div><div class='del'>-    count = direction == :row ? row_count : column_count</div><div class='del'>-    CoercionHelper.check_range(val, count, direction)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  private def check_int(val, direction)</div><div class='del'>-    count = direction == :row ? row_count : column_count</div><div class='del'>-    CoercionHelper.check_int(val, count, direction)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  private def set_value(row, col, value)</div><div class='del'>-    raise ErrDimensionMismatch, "Expected a a value, got a #{value.class}" if value.respond_to?(:to_matrix)</div><div class='del'>-</div><div class='del'>-    @rows[row][col] = value</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  private def set_row_and_col_range(row_range, col_range, value)</div><div class='del'>-    if value.is_a?(Matrix)</div><div class='del'>-      if row_range.size != value.row_count || col_range.size != value.column_count</div><div class='del'>-        raise ErrDimensionMismatch, [</div><div class='del'>-          'Expected a Matrix of dimensions',</div><div class='del'>-          "#{row_range.size}x#{col_range.size}",</div><div class='del'>-          'got',</div><div class='del'>-          "#{value.row_count}x#{value.column_count}",</div><div class='del'>-        ].join(' ')</div><div class='del'>-      end</div><div class='del'>-      source = value.instance_variable_get :@rows</div><div class='del'>-      row_range.each_with_index do |row, i|</div><div class='del'>-        @rows[row][col_range] = source[i]</div><div class='del'>-      end</div><div class='del'>-    elsif value.is_a?(Vector)</div><div class='del'>-      raise ErrDimensionMismatch, 'Expected a Matrix or a value, got a Vector'</div><div class='del'>-    else</div><div class='del'>-      value_to_set = Array.new(col_range.size, value)</div><div class='del'>-      row_range.each do |i|</div><div class='del'>-        @rows[i][col_range] = value_to_set</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  private def set_row_range(row_range, col, value)</div><div class='del'>-    if value.is_a?(Vector)</div><div class='del'>-      Matrix.Raise ErrDimensionMismatch unless row_range.size == value.size</div><div class='del'>-      set_column_vector(row_range, col, value)</div><div class='del'>-    elsif value.is_a?(Matrix)</div><div class='del'>-      Matrix.Raise ErrDimensionMismatch unless value.column_count == 1</div><div class='del'>-      value = value.column(0)</div><div class='del'>-      Matrix.Raise ErrDimensionMismatch unless row_range.size == value.size</div><div class='del'>-      set_column_vector(row_range, col, value)</div><div class='del'>-    else</div><div class='del'>-      @rows[row_range].each{|e| e[col] = value }</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  private def set_column_vector(row_range, col, value)</div><div class='del'>-    value.each_with_index do |e, index|</div><div class='del'>-      r = row_range.begin + index</div><div class='del'>-      @rows[r][col] = e</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  private def set_col_range(row, col_range, value)</div><div class='del'>-    value = if value.is_a?(Vector)</div><div class='del'>-      value.to_a</div><div class='del'>-    elsif value.is_a?(Matrix)</div><div class='del'>-      Matrix.Raise ErrDimensionMismatch unless value.row_count == 1</div><div class='del'>-      value.row(0).to_a</div><div class='del'>-    else</div><div class='del'>-      Array.new(col_range.size, value)</div><div class='del'>-    end</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless col_range.size == value.size</div><div class='del'>-    @rows[row][col_range] = value</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the number of rows.</div><div class='del'>-  #</div><div class='del'>-  def row_count</div><div class='del'>-    @rows.size</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  alias_method :row_size, :row_count</div><div class='del'>-  #</div><div class='del'>-  # Returns the number of columns.</div><div class='del'>-  #</div><div class='del'>-  attr_reader :column_count</div><div class='del'>-  alias_method :column_size, :column_count</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns row vector number +i+ of the matrix as a Vector (starting at 0 like</div><div class='del'>-  # an array).  When a block is given, the elements of that vector are iterated.</div><div class='del'>-  #</div><div class='del'>-  def row(i, &amp;block) # :yield: e</div><div class='del'>-    if block_given?</div><div class='del'>-      @rows.fetch(i){return self}.each(&amp;block)</div><div class='del'>-      self</div><div class='del'>-    else</div><div class='del'>-      Vector.elements(@rows.fetch(i){return nil})</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns column vector number +j+ of the matrix as a Vector (starting at 0</div><div class='del'>-  # like an array).  When a block is given, the elements of that vector are</div><div class='del'>-  # iterated.</div><div class='del'>-  #</div><div class='del'>-  def column(j) # :yield: e</div><div class='del'>-    if block_given?</div><div class='del'>-      return self if j &gt;= column_count || j &lt; -column_count</div><div class='del'>-      row_count.times do |i|</div><div class='del'>-        yield @rows[i][j]</div><div class='del'>-      end</div><div class='del'>-      self</div><div class='del'>-    else</div><div class='del'>-      return nil if j &gt;= column_count || j &lt; -column_count</div><div class='del'>-      col = Array.new(row_count) {|i|</div><div class='del'>-        @rows[i][j]</div><div class='del'>-      }</div><div class='del'>-      Vector.elements(col, false)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns a matrix that is the result of iteration of the given block over all</div><div class='del'>-  # elements of the matrix.</div><div class='del'>-  # Elements can be restricted by passing an argument:</div><div class='del'>-  # * :all (default): yields all elements</div><div class='del'>-  # * :diagonal: yields only elements on the diagonal</div><div class='del'>-  # * :off_diagonal: yields all elements except on the diagonal</div><div class='del'>-  # * :lower: yields only elements on or below the diagonal</div><div class='del'>-  # * :strict_lower: yields only elements below the diagonal</div><div class='del'>-  # * :strict_upper: yields only elements above the diagonal</div><div class='del'>-  # * :upper: yields only elements on or above the diagonal</div><div class='del'>-  #   Matrix[ [1,2], [3,4] ].collect { |e| e**2 }</div><div class='del'>-  #     =&gt; 1  4</div><div class='del'>-  #        9 16</div><div class='del'>-  #</div><div class='del'>-  def collect(which = :all, &amp;block) # :yield: e</div><div class='del'>-    return to_enum(:collect, which) unless block_given?</div><div class='del'>-    dup.collect!(which, &amp;block)</div><div class='del'>-  end</div><div class='del'>-  alias_method :map, :collect</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Invokes the given block for each element of matrix, replacing the element with the value</div><div class='del'>-  # returned by the block.</div><div class='del'>-  # Elements can be restricted by passing an argument:</div><div class='del'>-  # * :all (default): yields all elements</div><div class='del'>-  # * :diagonal: yields only elements on the diagonal</div><div class='del'>-  # * :off_diagonal: yields all elements except on the diagonal</div><div class='del'>-  # * :lower: yields only elements on or below the diagonal</div><div class='del'>-  # * :strict_lower: yields only elements below the diagonal</div><div class='del'>-  # * :strict_upper: yields only elements above the diagonal</div><div class='del'>-  # * :upper: yields only elements on or above the diagonal</div><div class='del'>-  #</div><div class='del'>-  def collect!(which = :all)</div><div class='del'>-    return to_enum(:collect!, which) unless block_given?</div><div class='del'>-    raise FrozenError, "can't modify frozen Matrix" if frozen?</div><div class='del'>-    each_with_index(which){ |e, row_index, col_index| @rows[row_index][col_index] = yield e }</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  alias map! collect!</div><div class='del'>-</div><div class='del'>-  def freeze</div><div class='del'>-    @rows.freeze</div><div class='del'>-    super</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Yields all elements of the matrix, starting with those of the first row,</div><div class='del'>-  # or returns an Enumerator if no block given.</div><div class='del'>-  # Elements can be restricted by passing an argument:</div><div class='del'>-  # * :all (default): yields all elements</div><div class='del'>-  # * :diagonal: yields only elements on the diagonal</div><div class='del'>-  # * :off_diagonal: yields all elements except on the diagonal</div><div class='del'>-  # * :lower: yields only elements on or below the diagonal</div><div class='del'>-  # * :strict_lower: yields only elements below the diagonal</div><div class='del'>-  # * :strict_upper: yields only elements above the diagonal</div><div class='del'>-  # * :upper: yields only elements on or above the diagonal</div><div class='del'>-  #</div><div class='del'>-  #   Matrix[ [1,2], [3,4] ].each { |e| puts e }</div><div class='del'>-  #     # =&gt; prints the numbers 1 to 4</div><div class='del'>-  #   Matrix[ [1,2], [3,4] ].each(:strict_lower).to_a # =&gt; [3]</div><div class='del'>-  #</div><div class='del'>-  def each(which = :all) # :yield: e</div><div class='del'>-    return to_enum :each, which unless block_given?</div><div class='del'>-    last = column_count - 1</div><div class='del'>-    case which</div><div class='del'>-    when :all</div><div class='del'>-      block = Proc.new</div><div class='del'>-      @rows.each do |row|</div><div class='del'>-        row.each(&amp;block)</div><div class='del'>-      end</div><div class='del'>-    when :diagonal</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        yield row.fetch(row_index){return self}</div><div class='del'>-      end</div><div class='del'>-    when :off_diagonal</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        column_count.times do |col_index|</div><div class='del'>-          yield row[col_index] unless row_index == col_index</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    when :lower</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        0.upto([row_index, last].min) do |col_index|</div><div class='del'>-          yield row[col_index]</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    when :strict_lower</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        [row_index, column_count].min.times do |col_index|</div><div class='del'>-          yield row[col_index]</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    when :strict_upper</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        (row_index+1).upto(last) do |col_index|</div><div class='del'>-          yield row[col_index]</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    when :upper</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        row_index.upto(last) do |col_index|</div><div class='del'>-          yield row[col_index]</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    else</div><div class='del'>-      raise ArgumentError, "expected #{which.inspect} to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper"</div><div class='del'>-    end</div><div class='del'>-    self</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Same as #each, but the row index and column index in addition to the element</div><div class='del'>-  #</div><div class='del'>-  #   Matrix[ [1,2], [3,4] ].each_with_index do |e, row, col|</div><div class='del'>-  #     puts "#{e} at #{row}, #{col}"</div><div class='del'>-  #   end</div><div class='del'>-  #     # =&gt; Prints:</div><div class='del'>-  #     #    1 at 0, 0</div><div class='del'>-  #     #    2 at 0, 1</div><div class='del'>-  #     #    3 at 1, 0</div><div class='del'>-  #     #    4 at 1, 1</div><div class='del'>-  #</div><div class='del'>-  def each_with_index(which = :all) # :yield: e, row, column</div><div class='del'>-    return to_enum :each_with_index, which unless block_given?</div><div class='del'>-    last = column_count - 1</div><div class='del'>-    case which</div><div class='del'>-    when :all</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        row.each_with_index do |e, col_index|</div><div class='del'>-          yield e, row_index, col_index</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    when :diagonal</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        yield row.fetch(row_index){return self}, row_index, row_index</div><div class='del'>-      end</div><div class='del'>-    when :off_diagonal</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        column_count.times do |col_index|</div><div class='del'>-          yield row[col_index], row_index, col_index unless row_index == col_index</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    when :lower</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        0.upto([row_index, last].min) do |col_index|</div><div class='del'>-          yield row[col_index], row_index, col_index</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    when :strict_lower</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        [row_index, column_count].min.times do |col_index|</div><div class='del'>-          yield row[col_index], row_index, col_index</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    when :strict_upper</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        (row_index+1).upto(last) do |col_index|</div><div class='del'>-          yield row[col_index], row_index, col_index</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    when :upper</div><div class='del'>-      @rows.each_with_index do |row, row_index|</div><div class='del'>-        row_index.upto(last) do |col_index|</div><div class='del'>-          yield row[col_index], row_index, col_index</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    else</div><div class='del'>-      raise ArgumentError, "expected #{which.inspect} to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper"</div><div class='del'>-    end</div><div class='del'>-    self</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  SELECTORS = {all: true, diagonal: true, off_diagonal: true, lower: true, strict_lower: true, strict_upper: true, upper: true}.freeze</div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   index(value, selector = :all) -&gt; [row, column]</div><div class='del'>-  #   index(selector = :all){ block } -&gt; [row, column]</div><div class='del'>-  #   index(selector = :all) -&gt; an_enumerator</div><div class='del'>-  #</div><div class='del'>-  # The index method is specialized to return the index as [row, column]</div><div class='del'>-  # It also accepts an optional +selector+ argument, see #each for details.</div><div class='del'>-  #</div><div class='del'>-  #   Matrix[ [1,2], [3,4] ].index(&amp;:even?) # =&gt; [0, 1]</div><div class='del'>-  #   Matrix[ [1,1], [1,1] ].index(1, :strict_lower) # =&gt; [1, 0]</div><div class='del'>-  #</div><div class='del'>-  def index(*args)</div><div class='del'>-    raise ArgumentError, "wrong number of arguments(#{args.size} for 0-2)" if args.size &gt; 2</div><div class='del'>-    which = (args.size == 2 || SELECTORS.include?(args.last)) ? args.pop : :all</div><div class='del'>-    return to_enum :find_index, which, *args unless block_given? || args.size == 1</div><div class='del'>-    if args.size == 1</div><div class='del'>-      value = args.first</div><div class='del'>-      each_with_index(which) do |e, row_index, col_index|</div><div class='del'>-        return row_index, col_index if e == value</div><div class='del'>-      end</div><div class='del'>-    else</div><div class='del'>-      each_with_index(which) do |e, row_index, col_index|</div><div class='del'>-        return row_index, col_index if yield e</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    nil</div><div class='del'>-  end</div><div class='del'>-  alias_method :find_index, :index</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns a section of the matrix.  The parameters are either:</div><div class='del'>-  # *  start_row, nrows, start_col, ncols; OR</div><div class='del'>-  # *  row_range, col_range</div><div class='del'>-  #</div><div class='del'>-  #   Matrix.diagonal(9, 5, -3).minor(0..1, 0..2)</div><div class='del'>-  #     =&gt; 9 0 0</div><div class='del'>-  #        0 5 0</div><div class='del'>-  #</div><div class='del'>-  # Like Array#[], negative indices count backward from the end of the</div><div class='del'>-  # row or column (-1 is the last element). Returns nil if the starting</div><div class='del'>-  # row or column is greater than row_count or column_count respectively.</div><div class='del'>-  #</div><div class='del'>-  def minor(*param)</div><div class='del'>-    case param.size</div><div class='del'>-    when 2</div><div class='del'>-      row_range, col_range = param</div><div class='del'>-      from_row = row_range.first</div><div class='del'>-      from_row += row_count if from_row &lt; 0</div><div class='del'>-      to_row = row_range.end</div><div class='del'>-      to_row += row_count if to_row &lt; 0</div><div class='del'>-      to_row += 1 unless row_range.exclude_end?</div><div class='del'>-      size_row = to_row - from_row</div><div class='del'>-</div><div class='del'>-      from_col = col_range.first</div><div class='del'>-      from_col += column_count if from_col &lt; 0</div><div class='del'>-      to_col = col_range.end</div><div class='del'>-      to_col += column_count if to_col &lt; 0</div><div class='del'>-      to_col += 1 unless col_range.exclude_end?</div><div class='del'>-      size_col = to_col - from_col</div><div class='del'>-    when 4</div><div class='del'>-      from_row, size_row, from_col, size_col = param</div><div class='del'>-      return nil if size_row &lt; 0 || size_col &lt; 0</div><div class='del'>-      from_row += row_count if from_row &lt; 0</div><div class='del'>-      from_col += column_count if from_col &lt; 0</div><div class='del'>-    else</div><div class='del'>-      raise ArgumentError, param.inspect</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    return nil if from_row &gt; row_count || from_col &gt; column_count || from_row &lt; 0 || from_col &lt; 0</div><div class='del'>-    rows = @rows[from_row, size_row].collect{|row|</div><div class='del'>-      row[from_col, size_col]</div><div class='del'>-    }</div><div class='del'>-    new_matrix rows, [column_count - from_col, size_col].min</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the submatrix obtained by deleting the specified row and column.</div><div class='del'>-  #</div><div class='del'>-  #   Matrix.diagonal(9, 5, -3, 4).first_minor(1, 2)</div><div class='del'>-  #     =&gt; 9 0 0</div><div class='del'>-  #        0 0 0</div><div class='del'>-  #        0 0 4</div><div class='del'>-  #</div><div class='del'>-  def first_minor(row, column)</div><div class='del'>-    raise RuntimeError, "first_minor of empty matrix is not defined" if empty?</div><div class='del'>-</div><div class='del'>-    unless 0 &lt;= row &amp;&amp; row &lt; row_count</div><div class='del'>-      raise ArgumentError, "invalid row (#{row.inspect} for 0..#{row_count - 1})"</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    unless 0 &lt;= column &amp;&amp; column &lt; column_count</div><div class='del'>-      raise ArgumentError, "invalid column (#{column.inspect} for 0..#{column_count - 1})"</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    arrays = to_a</div><div class='del'>-    arrays.delete_at(row)</div><div class='del'>-    arrays.each do |array|</div><div class='del'>-      array.delete_at(column)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    new_matrix arrays, column_count - 1</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the (row, column) cofactor which is obtained by multiplying</div><div class='del'>-  # the first minor by (-1)**(row + column).</div><div class='del'>-  #</div><div class='del'>-  #   Matrix.diagonal(9, 5, -3, 4).cofactor(1, 1)</div><div class='del'>-  #     =&gt; -108</div><div class='del'>-  #</div><div class='del'>-  def cofactor(row, column)</div><div class='del'>-    raise RuntimeError, "cofactor of empty matrix is not defined" if empty?</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-</div><div class='del'>-    det_of_minor = first_minor(row, column).determinant</div><div class='del'>-    det_of_minor * (-1) ** (row + column)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the adjugate of the matrix.</div><div class='del'>-  #</div><div class='del'>-  #   Matrix[ [7,6],[3,9] ].adjugate</div><div class='del'>-  #     =&gt; 9 -6</div><div class='del'>-  #        -3 7</div><div class='del'>-  #</div><div class='del'>-  def adjugate</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    Matrix.build(row_count, column_count) do |row, column|</div><div class='del'>-      cofactor(column, row)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the Laplace expansion along given row or column.</div><div class='del'>-  #</div><div class='del'>-  #    Matrix[[7,6], [3,9]].laplace_expansion(column: 1)</div><div class='del'>-  #     =&gt; 45</div><div class='del'>-  #</div><div class='del'>-  #    Matrix[[Vector[1, 0], Vector[0, 1]], [2, 3]].laplace_expansion(row: 0)</div><div class='del'>-  #     =&gt; Vector[3, -2]</div><div class='del'>-  #</div><div class='del'>-  #</div><div class='del'>-  def laplace_expansion(row: nil, column: nil)</div><div class='del'>-    num = row || column</div><div class='del'>-</div><div class='del'>-    if !num || (row &amp;&amp; column)</div><div class='del'>-      raise ArgumentError, "exactly one the row or column arguments must be specified"</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    raise RuntimeError, "laplace_expansion of empty matrix is not defined" if empty?</div><div class='del'>-</div><div class='del'>-    unless 0 &lt;= num &amp;&amp; num &lt; row_count</div><div class='del'>-      raise ArgumentError, "invalid num (#{num.inspect} for 0..#{row_count - 1})"</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    send(row ? :row : :column, num).map.with_index { |e, k|</div><div class='del'>-      e * cofactor(*(row ? [num, k] : [k,num]))</div><div class='del'>-    }.inject(:+)</div><div class='del'>-  end</div><div class='del'>-  alias_method :cofactor_expansion, :laplace_expansion</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # TESTING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is a diagonal matrix.</div><div class='del'>-  # Raises an error if matrix is not square.</div><div class='del'>-  #</div><div class='del'>-  def diagonal?</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    each(:off_diagonal).all?(&amp;:zero?)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is an empty matrix, i.e. if the number of rows</div><div class='del'>-  # or the number of columns is 0.</div><div class='del'>-  #</div><div class='del'>-  def empty?</div><div class='del'>-    column_count == 0 || row_count == 0</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is an hermitian matrix.</div><div class='del'>-  # Raises an error if matrix is not square.</div><div class='del'>-  #</div><div class='del'>-  def hermitian?</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    each_with_index(:upper).all? do |e, row, col|</div><div class='del'>-      e == rows[col][row].conj</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is a lower triangular matrix.</div><div class='del'>-  #</div><div class='del'>-  def lower_triangular?</div><div class='del'>-    each(:strict_upper).all?(&amp;:zero?)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is a normal matrix.</div><div class='del'>-  # Raises an error if matrix is not square.</div><div class='del'>-  #</div><div class='del'>-  def normal?</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    rows.each_with_index do |row_i, i|</div><div class='del'>-      rows.each_with_index do |row_j, j|</div><div class='del'>-        s = 0</div><div class='del'>-        rows.each_with_index do |row_k, k|</div><div class='del'>-          s += row_i[k] * row_j[k].conj - row_k[i].conj * row_k[j]</div><div class='del'>-        end</div><div class='del'>-        return false unless s == 0</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    true</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is an orthogonal matrix</div><div class='del'>-  # Raises an error if matrix is not square.</div><div class='del'>-  #</div><div class='del'>-  def orthogonal?</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    rows.each_with_index do |row, i|</div><div class='del'>-      column_count.times do |j|</div><div class='del'>-        s = 0</div><div class='del'>-        row_count.times do |k|</div><div class='del'>-          s += row[k] * rows[k][j]</div><div class='del'>-        end</div><div class='del'>-        return false unless s == (i == j ? 1 : 0)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    true</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is a permutation matrix</div><div class='del'>-  # Raises an error if matrix is not square.</div><div class='del'>-  #</div><div class='del'>-  def permutation?</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    cols = Array.new(column_count)</div><div class='del'>-    rows.each_with_index do |row, i|</div><div class='del'>-      found = false</div><div class='del'>-      row.each_with_index do |e, j|</div><div class='del'>-        if e == 1</div><div class='del'>-          return false if found || cols[j]</div><div class='del'>-          found = cols[j] = true</div><div class='del'>-        elsif e != 0</div><div class='del'>-          return false</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      return false unless found</div><div class='del'>-    end</div><div class='del'>-    true</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if all entries of the matrix are real.</div><div class='del'>-  #</div><div class='del'>-  def real?</div><div class='del'>-    all?(&amp;:real?)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is a regular (i.e. non-singular) matrix.</div><div class='del'>-  #</div><div class='del'>-  def regular?</div><div class='del'>-    not singular?</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is a singular matrix.</div><div class='del'>-  #</div><div class='del'>-  def singular?</div><div class='del'>-    determinant == 0</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is a square matrix.</div><div class='del'>-  #</div><div class='del'>-  def square?</div><div class='del'>-    column_count == row_count</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is a symmetric matrix.</div><div class='del'>-  # Raises an error if matrix is not square.</div><div class='del'>-  #</div><div class='del'>-  def symmetric?</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    each_with_index(:strict_upper) do |e, row, col|</div><div class='del'>-      return false if e != rows[col][row]</div><div class='del'>-    end</div><div class='del'>-    true</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is an antisymmetric matrix.</div><div class='del'>-  # Raises an error if matrix is not square.</div><div class='del'>-  #</div><div class='del'>-  def antisymmetric?</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    each_with_index(:upper) do |e, row, col|</div><div class='del'>-      return false unless e == -rows[col][row]</div><div class='del'>-    end</div><div class='del'>-    true</div><div class='del'>-  end</div><div class='del'>-  alias_method :skew_symmetric?, :antisymmetric?</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is a unitary matrix</div><div class='del'>-  # Raises an error if matrix is not square.</div><div class='del'>-  #</div><div class='del'>-  def unitary?</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    rows.each_with_index do |row, i|</div><div class='del'>-      column_count.times do |j|</div><div class='del'>-        s = 0</div><div class='del'>-        row_count.times do |k|</div><div class='del'>-          s += row[k].conj * rows[k][j]</div><div class='del'>-        end</div><div class='del'>-        return false unless s == (i == j ? 1 : 0)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    true</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is an upper triangular matrix.</div><div class='del'>-  #</div><div class='del'>-  def upper_triangular?</div><div class='del'>-    each(:strict_lower).all?(&amp;:zero?)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if this is a matrix with only zero elements</div><div class='del'>-  #</div><div class='del'>-  def zero?</div><div class='del'>-    all?(&amp;:zero?)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # OBJECT METHODS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ if and only if the two matrices contain equal elements.</div><div class='del'>-  #</div><div class='del'>-  def ==(other)</div><div class='del'>-    return false unless Matrix === other &amp;&amp;</div><div class='del'>-                        column_count == other.column_count # necessary for empty matrices</div><div class='del'>-    rows == other.rows</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def eql?(other)</div><div class='del'>-    return false unless Matrix === other &amp;&amp;</div><div class='del'>-                        column_count == other.column_count # necessary for empty matrices</div><div class='del'>-    rows.eql? other.rows</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Called for dup &amp; clone.</div><div class='del'>-  #</div><div class='del'>-  private def initialize_copy(m)</div><div class='del'>-    super</div><div class='del'>-    @rows = @rows.map(&amp;:dup) unless frozen?</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns a hash-code for the matrix.</div><div class='del'>-  #</div><div class='del'>-  def hash</div><div class='del'>-    @rows.hash</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # ARITHMETIC -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Matrix multiplication.</div><div class='del'>-  #   Matrix[[2,4], [6,8]] * Matrix.identity(2)</div><div class='del'>-  #     =&gt; 2 4</div><div class='del'>-  #        6 8</div><div class='del'>-  #</div><div class='del'>-  def *(m) # m is matrix or vector or number</div><div class='del'>-    case(m)</div><div class='del'>-    when Numeric</div><div class='del'>-      rows = @rows.collect {|row|</div><div class='del'>-        row.collect {|e| e * m }</div><div class='del'>-      }</div><div class='del'>-      return new_matrix rows, column_count</div><div class='del'>-    when Vector</div><div class='del'>-      m = self.class.column_vector(m)</div><div class='del'>-      r = self * m</div><div class='del'>-      return r.column(0)</div><div class='del'>-    when Matrix</div><div class='del'>-      Matrix.Raise ErrDimensionMismatch if column_count != m.row_count</div><div class='del'>-</div><div class='del'>-      rows = Array.new(row_count) {|i|</div><div class='del'>-        Array.new(m.column_count) {|j|</div><div class='del'>-          (0 ... column_count).inject(0) do |vij, k|</div><div class='del'>-            vij + self[i, k] * m[k, j]</div><div class='del'>-          end</div><div class='del'>-        }</div><div class='del'>-      }</div><div class='del'>-      return new_matrix rows, m.column_count</div><div class='del'>-    else</div><div class='del'>-      return apply_through_coercion(m, __method__)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Matrix addition.</div><div class='del'>-  #   Matrix.scalar(2,5) + Matrix[[1,0], [-4,7]]</div><div class='del'>-  #     =&gt;  6  0</div><div class='del'>-  #        -4 12</div><div class='del'>-  #</div><div class='del'>-  def +(m)</div><div class='del'>-    case m</div><div class='del'>-    when Numeric</div><div class='del'>-      Matrix.Raise ErrOperationNotDefined, "+", self.class, m.class</div><div class='del'>-    when Vector</div><div class='del'>-      m = self.class.column_vector(m)</div><div class='del'>-    when Matrix</div><div class='del'>-    else</div><div class='del'>-      return apply_through_coercion(m, __method__)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless row_count == m.row_count &amp;&amp; column_count == m.column_count</div><div class='del'>-</div><div class='del'>-    rows = Array.new(row_count) {|i|</div><div class='del'>-      Array.new(column_count) {|j|</div><div class='del'>-        self[i, j] + m[i, j]</div><div class='del'>-      }</div><div class='del'>-    }</div><div class='del'>-    new_matrix rows, column_count</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Matrix subtraction.</div><div class='del'>-  #   Matrix[[1,5], [4,2]] - Matrix[[9,3], [-4,1]]</div><div class='del'>-  #     =&gt; -8  2</div><div class='del'>-  #         8  1</div><div class='del'>-  #</div><div class='del'>-  def -(m)</div><div class='del'>-    case m</div><div class='del'>-    when Numeric</div><div class='del'>-      Matrix.Raise ErrOperationNotDefined, "-", self.class, m.class</div><div class='del'>-    when Vector</div><div class='del'>-      m = self.class.column_vector(m)</div><div class='del'>-    when Matrix</div><div class='del'>-    else</div><div class='del'>-      return apply_through_coercion(m, __method__)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless row_count == m.row_count &amp;&amp; column_count == m.column_count</div><div class='del'>-</div><div class='del'>-    rows = Array.new(row_count) {|i|</div><div class='del'>-      Array.new(column_count) {|j|</div><div class='del'>-        self[i, j] - m[i, j]</div><div class='del'>-      }</div><div class='del'>-    }</div><div class='del'>-    new_matrix rows, column_count</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Matrix division (multiplication by the inverse).</div><div class='del'>-  #   Matrix[[7,6], [3,9]] / Matrix[[2,9], [3,1]]</div><div class='del'>-  #     =&gt; -7  1</div><div class='del'>-  #        -3 -6</div><div class='del'>-  #</div><div class='del'>-  def /(other)</div><div class='del'>-    case other</div><div class='del'>-    when Numeric</div><div class='del'>-      rows = @rows.collect {|row|</div><div class='del'>-        row.collect {|e| e / other }</div><div class='del'>-      }</div><div class='del'>-      return new_matrix rows, column_count</div><div class='del'>-    when Matrix</div><div class='del'>-      return self * other.inverse</div><div class='del'>-    else</div><div class='del'>-      return apply_through_coercion(other, __method__)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Hadamard product</div><div class='del'>-  #    Matrix[[1,2], [3,4]].hadamard_product(Matrix[[1,2], [3,2]])</div><div class='del'>-  #      =&gt; 1  4</div><div class='del'>-  #         9  8</div><div class='del'>-  #</div><div class='del'>-  def hadamard_product(m)</div><div class='del'>-    combine(m){|a, b| a * b}</div><div class='del'>-  end</div><div class='del'>-  alias_method :entrywise_product, :hadamard_product</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the inverse of the matrix.</div><div class='del'>-  #   Matrix[[-1, -1], [0, -1]].inverse</div><div class='del'>-  #     =&gt; -1  1</div><div class='del'>-  #         0 -1</div><div class='del'>-  #</div><div class='del'>-  def inverse</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    self.class.I(row_count).send(:inverse_from, self)</div><div class='del'>-  end</div><div class='del'>-  alias_method :inv, :inverse</div><div class='del'>-</div><div class='del'>-  private def inverse_from(src) # :nodoc:</div><div class='del'>-    last = row_count - 1</div><div class='del'>-    a = src.to_a</div><div class='del'>-</div><div class='del'>-    0.upto(last) do |k|</div><div class='del'>-      i = k</div><div class='del'>-      akk = a[k][k].abs</div><div class='del'>-      (k+1).upto(last) do |j|</div><div class='del'>-        v = a[j][k].abs</div><div class='del'>-        if v &gt; akk</div><div class='del'>-          i = j</div><div class='del'>-          akk = v</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      Matrix.Raise ErrNotRegular if akk == 0</div><div class='del'>-      if i != k</div><div class='del'>-        a[i], a[k] = a[k], a[i]</div><div class='del'>-        @rows[i], @rows[k] = @rows[k], @rows[i]</div><div class='del'>-      end</div><div class='del'>-      akk = a[k][k]</div><div class='del'>-</div><div class='del'>-      0.upto(last) do |ii|</div><div class='del'>-        next if ii == k</div><div class='del'>-        q = a[ii][k].quo(akk)</div><div class='del'>-        a[ii][k] = 0</div><div class='del'>-</div><div class='del'>-        (k + 1).upto(last) do |j|</div><div class='del'>-          a[ii][j] -= a[k][j] * q</div><div class='del'>-        end</div><div class='del'>-        0.upto(last) do |j|</div><div class='del'>-          @rows[ii][j] -= @rows[k][j] * q</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      (k+1).upto(last) do |j|</div><div class='del'>-        a[k][j] = a[k][j].quo(akk)</div><div class='del'>-      end</div><div class='del'>-      0.upto(last) do |j|</div><div class='del'>-        @rows[k][j] = @rows[k][j].quo(akk)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    self</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Matrix exponentiation.</div><div class='del'>-  # Equivalent to multiplying the matrix by itself N times.</div><div class='del'>-  # Non integer exponents will be handled by diagonalizing the matrix.</div><div class='del'>-  #</div><div class='del'>-  #   Matrix[[7,6], [3,9]] ** 2</div><div class='del'>-  #     =&gt; 67 96</div><div class='del'>-  #        48 99</div><div class='del'>-  #</div><div class='del'>-  def **(other)</div><div class='del'>-    case other</div><div class='del'>-    when Integer</div><div class='del'>-      x = self</div><div class='del'>-      if other &lt;= 0</div><div class='del'>-        x = self.inverse</div><div class='del'>-        return self.class.identity(self.column_count) if other == 0</div><div class='del'>-        other = -other</div><div class='del'>-      end</div><div class='del'>-      z = nil</div><div class='del'>-      loop do</div><div class='del'>-        z = z ? z * x : x if other[0] == 1</div><div class='del'>-        return z if (other &gt;&gt;= 1).zero?</div><div class='del'>-        x *= x</div><div class='del'>-      end</div><div class='del'>-    when Numeric</div><div class='del'>-      v, d, v_inv = eigensystem</div><div class='del'>-      v * self.class.diagonal(*d.each(:diagonal).map{|e| e ** other}) * v_inv</div><div class='del'>-    else</div><div class='del'>-      Matrix.Raise ErrOperationNotDefined, "**", self.class, other.class</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def +@</div><div class='del'>-    self</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def -@</div><div class='del'>-    collect {|e| -e }</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # MATRIX FUNCTIONS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the determinant of the matrix.</div><div class='del'>-  #</div><div class='del'>-  # Beware that using Float values can yield erroneous results</div><div class='del'>-  # because of their lack of precision.</div><div class='del'>-  # Consider using exact types like Rational or BigDecimal instead.</div><div class='del'>-  #</div><div class='del'>-  #   Matrix[[7,6], [3,9]].determinant</div><div class='del'>-  #     =&gt; 45</div><div class='del'>-  #</div><div class='del'>-  def determinant</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    m = @rows</div><div class='del'>-    case row_count</div><div class='del'>-      # Up to 4x4, give result using Laplacian expansion by minors.</div><div class='del'>-      # This will typically be faster, as well as giving good results</div><div class='del'>-      # in case of Floats</div><div class='del'>-    when 0</div><div class='del'>-      +1</div><div class='del'>-    when 1</div><div class='del'>-      + m[0][0]</div><div class='del'>-    when 2</div><div class='del'>-      + m[0][0] * m[1][1] - m[0][1] * m[1][0]</div><div class='del'>-    when 3</div><div class='del'>-      m0, m1, m2 = m</div><div class='del'>-      + m0[0] * m1[1] * m2[2] - m0[0] * m1[2] * m2[1] \</div><div class='del'>-      - m0[1] * m1[0] * m2[2] + m0[1] * m1[2] * m2[0] \</div><div class='del'>-      + m0[2] * m1[0] * m2[1] - m0[2] * m1[1] * m2[0]</div><div class='del'>-    when 4</div><div class='del'>-      m0, m1, m2, m3 = m</div><div class='del'>-      + m0[0] * m1[1] * m2[2] * m3[3] - m0[0] * m1[1] * m2[3] * m3[2] \</div><div class='del'>-      - m0[0] * m1[2] * m2[1] * m3[3] + m0[0] * m1[2] * m2[3] * m3[1] \</div><div class='del'>-      + m0[0] * m1[3] * m2[1] * m3[2] - m0[0] * m1[3] * m2[2] * m3[1] \</div><div class='del'>-      - m0[1] * m1[0] * m2[2] * m3[3] + m0[1] * m1[0] * m2[3] * m3[2] \</div><div class='del'>-      + m0[1] * m1[2] * m2[0] * m3[3] - m0[1] * m1[2] * m2[3] * m3[0] \</div><div class='del'>-      - m0[1] * m1[3] * m2[0] * m3[2] + m0[1] * m1[3] * m2[2] * m3[0] \</div><div class='del'>-      + m0[2] * m1[0] * m2[1] * m3[3] - m0[2] * m1[0] * m2[3] * m3[1] \</div><div class='del'>-      - m0[2] * m1[1] * m2[0] * m3[3] + m0[2] * m1[1] * m2[3] * m3[0] \</div><div class='del'>-      + m0[2] * m1[3] * m2[0] * m3[1] - m0[2] * m1[3] * m2[1] * m3[0] \</div><div class='del'>-      - m0[3] * m1[0] * m2[1] * m3[2] + m0[3] * m1[0] * m2[2] * m3[1] \</div><div class='del'>-      + m0[3] * m1[1] * m2[0] * m3[2] - m0[3] * m1[1] * m2[2] * m3[0] \</div><div class='del'>-      - m0[3] * m1[2] * m2[0] * m3[1] + m0[3] * m1[2] * m2[1] * m3[0]</div><div class='del'>-    else</div><div class='del'>-      # For bigger matrices, use an efficient and general algorithm.</div><div class='del'>-      # Currently, we use the Gauss-Bareiss algorithm</div><div class='del'>-      determinant_bareiss</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-  alias_method :det, :determinant</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Private. Use Matrix#determinant</div><div class='del'>-  #</div><div class='del'>-  # Returns the determinant of the matrix, using</div><div class='del'>-  # Bareiss' multistep integer-preserving gaussian elimination.</div><div class='del'>-  # It has the same computational cost order O(n^3) as standard Gaussian elimination.</div><div class='del'>-  # Intermediate results are fraction free and of lower complexity.</div><div class='del'>-  # A matrix of Integers will have thus intermediate results that are also Integers,</div><div class='del'>-  # with smaller bignums (if any), while a matrix of Float will usually have</div><div class='del'>-  # intermediate results with better precision.</div><div class='del'>-  #</div><div class='del'>-  private def determinant_bareiss</div><div class='del'>-    size = row_count</div><div class='del'>-    last = size - 1</div><div class='del'>-    a = to_a</div><div class='del'>-    no_pivot = Proc.new{ return 0 }</div><div class='del'>-    sign = +1</div><div class='del'>-    pivot = 1</div><div class='del'>-    size.times do |k|</div><div class='del'>-      previous_pivot = pivot</div><div class='del'>-      if (pivot = a[k][k]) == 0</div><div class='del'>-        switch = (k+1 ... size).find(no_pivot) {|row|</div><div class='del'>-          a[row][k] != 0</div><div class='del'>-        }</div><div class='del'>-        a[switch], a[k] = a[k], a[switch]</div><div class='del'>-        pivot = a[k][k]</div><div class='del'>-        sign = -sign</div><div class='del'>-      end</div><div class='del'>-      (k+1).upto(last) do |i|</div><div class='del'>-        ai = a[i]</div><div class='del'>-        (k+1).upto(last) do |j|</div><div class='del'>-          ai[j] =  (pivot * ai[j] - ai[k] * a[k][j]) / previous_pivot</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    sign * pivot</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # deprecated; use Matrix#determinant</div><div class='del'>-  #</div><div class='del'>-  def determinant_e</div><div class='del'>-    warn "Matrix#determinant_e is deprecated; use #determinant", uplevel: 1</div><div class='del'>-    determinant</div><div class='del'>-  end</div><div class='del'>-  alias_method :det_e, :determinant_e</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns a new matrix resulting by stacking horizontally</div><div class='del'>-  # the receiver with the given matrices</div><div class='del'>-  #</div><div class='del'>-  #   x = Matrix[[1, 2], [3, 4]]</div><div class='del'>-  #   y = Matrix[[5, 6], [7, 8]]</div><div class='del'>-  #   x.hstack(y) # =&gt; Matrix[[1, 2, 5, 6], [3, 4, 7, 8]]</div><div class='del'>-  #</div><div class='del'>-  def hstack(*matrices)</div><div class='del'>-    self.class.hstack(self, *matrices)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the rank of the matrix.</div><div class='del'>-  # Beware that using Float values can yield erroneous results</div><div class='del'>-  # because of their lack of precision.</div><div class='del'>-  # Consider using exact types like Rational or BigDecimal instead.</div><div class='del'>-  #</div><div class='del'>-  #   Matrix[[7,6], [3,9]].rank</div><div class='del'>-  #     =&gt; 2</div><div class='del'>-  #</div><div class='del'>-  def rank</div><div class='del'>-    # We currently use Bareiss' multistep integer-preserving gaussian elimination</div><div class='del'>-    # (see comments on determinant)</div><div class='del'>-    a = to_a</div><div class='del'>-    last_column = column_count - 1</div><div class='del'>-    last_row = row_count - 1</div><div class='del'>-    pivot_row = 0</div><div class='del'>-    previous_pivot = 1</div><div class='del'>-    0.upto(last_column) do |k|</div><div class='del'>-      switch_row = (pivot_row .. last_row).find {|row|</div><div class='del'>-        a[row][k] != 0</div><div class='del'>-      }</div><div class='del'>-      if switch_row</div><div class='del'>-        a[switch_row], a[pivot_row] = a[pivot_row], a[switch_row] unless pivot_row == switch_row</div><div class='del'>-        pivot = a[pivot_row][k]</div><div class='del'>-        (pivot_row+1).upto(last_row) do |i|</div><div class='del'>-           ai = a[i]</div><div class='del'>-           (k+1).upto(last_column) do |j|</div><div class='del'>-             ai[j] =  (pivot * ai[j] - ai[k] * a[pivot_row][j]) / previous_pivot</div><div class='del'>-           end</div><div class='del'>-         end</div><div class='del'>-        pivot_row += 1</div><div class='del'>-        previous_pivot = pivot</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    pivot_row</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # deprecated; use Matrix#rank</div><div class='del'>-  #</div><div class='del'>-  def rank_e</div><div class='del'>-    warn "Matrix#rank_e is deprecated; use #rank", uplevel: 1</div><div class='del'>-    rank</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Returns a matrix with entries rounded to the given precision</div><div class='del'>-  # (see Float#round)</div><div class='del'>-  #</div><div class='del'>-  def round(ndigits=0)</div><div class='del'>-    map{|e| e.round(ndigits)}</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the trace (sum of diagonal elements) of the matrix.</div><div class='del'>-  #   Matrix[[7,6], [3,9]].trace</div><div class='del'>-  #     =&gt; 16</div><div class='del'>-  #</div><div class='del'>-  def trace</div><div class='del'>-    Matrix.Raise ErrDimensionMismatch unless square?</div><div class='del'>-    (0...column_count).inject(0) do |tr, i|</div><div class='del'>-      tr + @rows[i][i]</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-  alias_method :tr, :trace</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the transpose of the matrix.</div><div class='del'>-  #   Matrix[[1,2], [3,4], [5,6]]</div><div class='del'>-  #     =&gt; 1 2</div><div class='del'>-  #        3 4</div><div class='del'>-  #        5 6</div><div class='del'>-  #   Matrix[[1,2], [3,4], [5,6]].transpose</div><div class='del'>-  #     =&gt; 1 3 5</div><div class='del'>-  #        2 4 6</div><div class='del'>-  #</div><div class='del'>-  def transpose</div><div class='del'>-    return self.class.empty(column_count, 0) if row_count.zero?</div><div class='del'>-    new_matrix @rows.transpose, row_count</div><div class='del'>-  end</div><div class='del'>-  alias_method :t, :transpose</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns a new matrix resulting by stacking vertically</div><div class='del'>-  # the receiver with the given matrices</div><div class='del'>-  #</div><div class='del'>-  #   x = Matrix[[1, 2], [3, 4]]</div><div class='del'>-  #   y = Matrix[[5, 6], [7, 8]]</div><div class='del'>-  #   x.vstack(y) # =&gt; Matrix[[1, 2], [3, 4], [5, 6], [7, 8]]</div><div class='del'>-  #</div><div class='del'>-  def vstack(*matrices)</div><div class='del'>-    self.class.vstack(self, *matrices)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # DECOMPOSITIONS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the Eigensystem of the matrix; see +EigenvalueDecomposition+.</div><div class='del'>-  #   m = Matrix[[1, 2], [3, 4]]</div><div class='del'>-  #   v, d, v_inv = m.eigensystem</div><div class='del'>-  #   d.diagonal? # =&gt; true</div><div class='del'>-  #   v.inv == v_inv # =&gt; true</div><div class='del'>-  #   (v * d * v_inv).round(5) == m # =&gt; true</div><div class='del'>-  #</div><div class='del'>-  def eigensystem</div><div class='del'>-    EigenvalueDecomposition.new(self)</div><div class='del'>-  end</div><div class='del'>-  alias_method :eigen, :eigensystem</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the LUP decomposition of the matrix; see +LUPDecomposition+.</div><div class='del'>-  #   a = Matrix[[1, 2], [3, 4]]</div><div class='del'>-  #   l, u, p = a.lup</div><div class='del'>-  #   l.lower_triangular? # =&gt; true</div><div class='del'>-  #   u.upper_triangular? # =&gt; true</div><div class='del'>-  #   p.permutation?      # =&gt; true</div><div class='del'>-  #   l * u == p * a      # =&gt; true</div><div class='del'>-  #   a.lup.solve([2, 5]) # =&gt; Vector[(1/1), (1/2)]</div><div class='del'>-  #</div><div class='del'>-  def lup</div><div class='del'>-    LUPDecomposition.new(self)</div><div class='del'>-  end</div><div class='del'>-  alias_method :lup_decomposition, :lup</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # COMPLEX ARITHMETIC -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the conjugate of the matrix.</div><div class='del'>-  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]]</div><div class='del'>-  #     =&gt; 1+2i   i  0</div><div class='del'>-  #           1   2  3</div><div class='del'>-  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]].conjugate</div><div class='del'>-  #     =&gt; 1-2i  -i  0</div><div class='del'>-  #           1   2  3</div><div class='del'>-  #</div><div class='del'>-  def conjugate</div><div class='del'>-    collect(&amp;:conjugate)</div><div class='del'>-  end</div><div class='del'>-  alias_method :conj, :conjugate</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the imaginary part of the matrix.</div><div class='del'>-  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]]</div><div class='del'>-  #     =&gt; 1+2i  i  0</div><div class='del'>-  #           1  2  3</div><div class='del'>-  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]].imaginary</div><div class='del'>-  #     =&gt;   2i  i  0</div><div class='del'>-  #           0  0  0</div><div class='del'>-  #</div><div class='del'>-  def imaginary</div><div class='del'>-    collect(&amp;:imaginary)</div><div class='del'>-  end</div><div class='del'>-  alias_method :imag, :imaginary</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the real part of the matrix.</div><div class='del'>-  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]]</div><div class='del'>-  #     =&gt; 1+2i  i  0</div><div class='del'>-  #           1  2  3</div><div class='del'>-  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]].real</div><div class='del'>-  #     =&gt;    1  0  0</div><div class='del'>-  #           1  2  3</div><div class='del'>-  #</div><div class='del'>-  def real</div><div class='del'>-    collect(&amp;:real)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns an array containing matrices corresponding to the real and imaginary</div><div class='del'>-  # parts of the matrix</div><div class='del'>-  #</div><div class='del'>-  # m.rect == [m.real, m.imag]  # ==&gt; true for all matrices m</div><div class='del'>-  #</div><div class='del'>-  def rect</div><div class='del'>-    [real, imag]</div><div class='del'>-  end</div><div class='del'>-  alias_method :rectangular, :rect</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # CONVERTING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # The coerce method provides support for Ruby type coercion.</div><div class='del'>-  # This coercion mechanism is used by Ruby to handle mixed-type</div><div class='del'>-  # numeric operations: it is intended to find a compatible common</div><div class='del'>-  # type between the two operands of the operator.</div><div class='del'>-  # See also Numeric#coerce.</div><div class='del'>-  #</div><div class='del'>-  def coerce(other)</div><div class='del'>-    case other</div><div class='del'>-    when Numeric</div><div class='del'>-      return Scalar.new(other), self</div><div class='del'>-    else</div><div class='del'>-      raise TypeError, "#{self.class} can't be coerced into #{other.class}"</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns an array of the row vectors of the matrix.  See Vector.</div><div class='del'>-  #</div><div class='del'>-  def row_vectors</div><div class='del'>-    Array.new(row_count) {|i|</div><div class='del'>-      row(i)</div><div class='del'>-    }</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns an array of the column vectors of the matrix.  See Vector.</div><div class='del'>-  #</div><div class='del'>-  def column_vectors</div><div class='del'>-    Array.new(column_count) {|i|</div><div class='del'>-      column(i)</div><div class='del'>-    }</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Explicit conversion to a Matrix. Returns self</div><div class='del'>-  #</div><div class='del'>-  def to_matrix</div><div class='del'>-    self</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns an array of arrays that describe the rows of the matrix.</div><div class='del'>-  #</div><div class='del'>-  def to_a</div><div class='del'>-    @rows.collect(&amp;:dup)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Deprecated.</div><div class='del'>-  #</div><div class='del'>-  # Use map(&amp;:to_f)</div><div class='del'>-  def elements_to_f</div><div class='del'>-    warn "Matrix#elements_to_f is deprecated, use map(&amp;:to_f)", uplevel: 1</div><div class='del'>-    map(&amp;:to_f)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Deprecated.</div><div class='del'>-  #</div><div class='del'>-  # Use map(&amp;:to_i)</div><div class='del'>-  def elements_to_i</div><div class='del'>-    warn "Matrix#elements_to_i is deprecated, use map(&amp;:to_i)", uplevel: 1</div><div class='del'>-    map(&amp;:to_i)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Deprecated.</div><div class='del'>-  #</div><div class='del'>-  # Use map(&amp;:to_r)</div><div class='del'>-  def elements_to_r</div><div class='del'>-    warn "Matrix#elements_to_r is deprecated, use map(&amp;:to_r)", uplevel: 1</div><div class='del'>-    map(&amp;:to_r)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # PRINTING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Overrides Object#to_s</div><div class='del'>-  #</div><div class='del'>-  def to_s</div><div class='del'>-    if empty?</div><div class='del'>-      "#{self.class}.empty(#{row_count}, #{column_count})"</div><div class='del'>-    else</div><div class='del'>-      "#{self.class}[" + @rows.collect{|row|</div><div class='del'>-        "[" + row.collect{|e| e.to_s}.join(", ") + "]"</div><div class='del'>-      }.join(", ")+"]"</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Overrides Object#inspect</div><div class='del'>-  #</div><div class='del'>-  def inspect</div><div class='del'>-    if empty?</div><div class='del'>-      "#{self.class}.empty(#{row_count}, #{column_count})"</div><div class='del'>-    else</div><div class='del'>-      "#{self.class}#{@rows.inspect}"</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Private helper modules</div><div class='del'>-</div><div class='del'>-  module ConversionHelper # :nodoc:</div><div class='del'>-    #</div><div class='del'>-    # Converts the obj to an Array. If copy is set to true</div><div class='del'>-    # a copy of obj will be made if necessary.</div><div class='del'>-    #</div><div class='del'>-    private def convert_to_array(obj, copy = false) # :nodoc:</div><div class='del'>-      case obj</div><div class='del'>-      when Array</div><div class='del'>-        copy ? obj.dup : obj</div><div class='del'>-      when Vector</div><div class='del'>-        obj.to_a</div><div class='del'>-      else</div><div class='del'>-        begin</div><div class='del'>-          converted = obj.to_ary</div><div class='del'>-        rescue Exception =&gt; e</div><div class='del'>-          raise TypeError, "can't convert #{obj.class} into an Array (#{e.message})"</div><div class='del'>-        end</div><div class='del'>-        raise TypeError, "#{obj.class}#to_ary should return an Array" unless converted.is_a? Array</div><div class='del'>-        converted</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  extend ConversionHelper</div><div class='del'>-</div><div class='del'>-  module CoercionHelper # :nodoc:</div><div class='del'>-    #</div><div class='del'>-    # Applies the operator +oper+ with argument +obj+</div><div class='del'>-    # through coercion of +obj+</div><div class='del'>-    #</div><div class='del'>-    private def apply_through_coercion(obj, oper)</div><div class='del'>-      coercion = obj.coerce(self)</div><div class='del'>-      raise TypeError unless coercion.is_a?(Array) &amp;&amp; coercion.length == 2</div><div class='del'>-      coercion[0].public_send(oper, coercion[1])</div><div class='del'>-    rescue</div><div class='del'>-      raise TypeError, "#{obj.inspect} can't be coerced into #{self.class}"</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Helper method to coerce a value into a specific class.</div><div class='del'>-    # Raises a TypeError if the coercion fails or the returned value</div><div class='del'>-    # is not of the right class.</div><div class='del'>-    # (from Rubinius)</div><div class='del'>-    #</div><div class='del'>-    def self.coerce_to(obj, cls, meth) # :nodoc:</div><div class='del'>-      return obj if obj.kind_of?(cls)</div><div class='del'>-      raise TypeError, "Expected a #{cls} but got a #{obj.class}" unless obj.respond_to? meth</div><div class='del'>-      begin</div><div class='del'>-        ret = obj.__send__(meth)</div><div class='del'>-      rescue Exception =&gt; e</div><div class='del'>-        raise TypeError, "Coercion error: #{obj.inspect}.#{meth} =&gt; #{cls} failed:\n" \</div><div class='del'>-                         "(#{e.message})"</div><div class='del'>-      end</div><div class='del'>-      raise TypeError, "Coercion error: obj.#{meth} did NOT return a #{cls} (was #{ret.class})" unless ret.kind_of? cls</div><div class='del'>-      ret</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def self.coerce_to_int(obj)</div><div class='del'>-      coerce_to(obj, Integer, :to_int)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def self.coerce_to_matrix(obj)</div><div class='del'>-      coerce_to(obj, Matrix, :to_matrix)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns `nil` for non Ranges</div><div class='del'>-    # Checks range validity, return canonical range with 0 &lt;= begin &lt;= end &lt; count</div><div class='del'>-    def self.check_range(val, count, kind)</div><div class='del'>-      canonical = (val.begin + (val.begin &lt; 0 ? count : 0))..</div><div class='del'>-                  (val.end ? val.end + (val.end &lt; 0 ? count : 0) - (val.exclude_end? ? 1 : 0)</div><div class='del'>-                           : count - 1)</div><div class='del'>-      unless 0 &lt;= canonical.begin &amp;&amp; canonical.begin &lt;= canonical.end &amp;&amp; canonical.end &lt; count</div><div class='del'>-        raise IndexError, "given range #{val} is outside of #{kind} dimensions: 0...#{count}"</div><div class='del'>-      end</div><div class='del'>-      canonical</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def self.check_int(val, count, kind)</div><div class='del'>-      val = CoercionHelper.coerce_to_int(val)</div><div class='del'>-      if val &gt;= count || val &lt; -count</div><div class='del'>-        raise IndexError, "given #{kind} #{val} is outside of #{-count}...#{count}"</div><div class='del'>-      end</div><div class='del'>-      val</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  include CoercionHelper</div><div class='del'>-</div><div class='del'>-  # Private CLASS</div><div class='del'>-</div><div class='del'>-  class Scalar &lt; Numeric # :nodoc:</div><div class='del'>-    include ExceptionForMatrix</div><div class='del'>-    include CoercionHelper</div><div class='del'>-</div><div class='del'>-    def initialize(value)</div><div class='del'>-      @value = value</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # ARITHMETIC</div><div class='del'>-    def +(other)</div><div class='del'>-      case other</div><div class='del'>-      when Numeric</div><div class='del'>-        Scalar.new(@value + other)</div><div class='del'>-      when Vector, Matrix</div><div class='del'>-        Scalar.Raise ErrOperationNotDefined, "+", @value.class, other.class</div><div class='del'>-      else</div><div class='del'>-        apply_through_coercion(other, __method__)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def -(other)</div><div class='del'>-      case other</div><div class='del'>-      when Numeric</div><div class='del'>-        Scalar.new(@value - other)</div><div class='del'>-      when Vector, Matrix</div><div class='del'>-        Scalar.Raise ErrOperationNotDefined, "-", @value.class, other.class</div><div class='del'>-      else</div><div class='del'>-        apply_through_coercion(other, __method__)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def *(other)</div><div class='del'>-      case other</div><div class='del'>-      when Numeric</div><div class='del'>-        Scalar.new(@value * other)</div><div class='del'>-      when Vector, Matrix</div><div class='del'>-        other.collect{|e| @value * e}</div><div class='del'>-      else</div><div class='del'>-        apply_through_coercion(other, __method__)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def /(other)</div><div class='del'>-      case other</div><div class='del'>-      when Numeric</div><div class='del'>-        Scalar.new(@value / other)</div><div class='del'>-      when Vector</div><div class='del'>-        Scalar.Raise ErrOperationNotDefined, "/", @value.class, other.class</div><div class='del'>-      when Matrix</div><div class='del'>-        self * other.inverse</div><div class='del'>-      else</div><div class='del'>-        apply_through_coercion(other, __method__)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def **(other)</div><div class='del'>-      case other</div><div class='del'>-      when Numeric</div><div class='del'>-        Scalar.new(@value ** other)</div><div class='del'>-      when Vector</div><div class='del'>-        Scalar.Raise ErrOperationNotDefined, "**", @value.class, other.class</div><div class='del'>-      when Matrix</div><div class='del'>-        #other.powered_by(self)</div><div class='del'>-        Scalar.Raise ErrOperationNotImplemented, "**", @value.class, other.class</div><div class='del'>-      else</div><div class='del'>-        apply_through_coercion(other, __method__)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-#</div><div class='del'>-# The +Vector+ class represents a mathematical vector, which is useful in its own right, and</div><div class='del'>-# also constitutes a row or column of a Matrix.</div><div class='del'>-#</div><div class='del'>-# == Method Catalogue</div><div class='del'>-#</div><div class='del'>-# To create a Vector:</div><div class='del'>-# * Vector.[](*array)</div><div class='del'>-# * Vector.elements(array, copy = true)</div><div class='del'>-# * Vector.basis(size: n, index: k)</div><div class='del'>-# * Vector.zero(n)</div><div class='del'>-#</div><div class='del'>-# To access elements:</div><div class='del'>-# * #[](i)</div><div class='del'>-#</div><div class='del'>-# To set elements:</div><div class='del'>-# * #[]=(i, v)</div><div class='del'>-#</div><div class='del'>-# To enumerate the elements:</div><div class='del'>-# * #each2(v)</div><div class='del'>-# * #collect2(v)</div><div class='del'>-#</div><div class='del'>-# Properties of vectors:</div><div class='del'>-# * #angle_with(v)</div><div class='del'>-# * Vector.independent?(*vs)</div><div class='del'>-# * #independent?(*vs)</div><div class='del'>-# * #zero?</div><div class='del'>-#</div><div class='del'>-# Vector arithmetic:</div><div class='del'>-# * #*(x) "is matrix or number"</div><div class='del'>-# * #+(v)</div><div class='del'>-# * #-(v)</div><div class='del'>-# * #/(v)</div><div class='del'>-# * #+@</div><div class='del'>-# * #-@</div><div class='del'>-#</div><div class='del'>-# Vector functions:</div><div class='del'>-# * #inner_product(v), dot(v)</div><div class='del'>-# * #cross_product(v), cross(v)</div><div class='del'>-# * #collect</div><div class='del'>-# * #collect!</div><div class='del'>-# * #magnitude</div><div class='del'>-# * #map</div><div class='del'>-# * #map!</div><div class='del'>-# * #map2(v)</div><div class='del'>-# * #norm</div><div class='del'>-# * #normalize</div><div class='del'>-# * #r</div><div class='del'>-# * #round</div><div class='del'>-# * #size</div><div class='del'>-#</div><div class='del'>-# Conversion to other data types:</div><div class='del'>-# * #covector</div><div class='del'>-# * #to_a</div><div class='del'>-# * #coerce(other)</div><div class='del'>-#</div><div class='del'>-# String representations:</div><div class='del'>-# * #to_s</div><div class='del'>-# * #inspect</div><div class='del'>-#</div><div class='del'>-class Vector</div><div class='del'>-  include ExceptionForMatrix</div><div class='del'>-  include Enumerable</div><div class='del'>-  include Matrix::CoercionHelper</div><div class='del'>-  extend Matrix::ConversionHelper</div><div class='del'>-  #INSTANCE CREATION</div><div class='del'>-</div><div class='del'>-  private_class_method :new</div><div class='del'>-  attr_reader :elements</div><div class='del'>-  protected :elements</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a Vector from a list of elements.</div><div class='del'>-  #   Vector[7, 4, ...]</div><div class='del'>-  #</div><div class='del'>-  def Vector.[](*array)</div><div class='del'>-    new convert_to_array(array, false)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a vector from an Array.  The optional second argument specifies</div><div class='del'>-  # whether the array itself or a copy is used internally.</div><div class='del'>-  #</div><div class='del'>-  def Vector.elements(array, copy = true)</div><div class='del'>-    new convert_to_array(array, copy)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns a standard basis +n+-vector, where k is the index.</div><div class='del'>-  #</div><div class='del'>-  #    Vector.basis(size:, index:) # =&gt; Vector[0, 1, 0]</div><div class='del'>-  #</div><div class='del'>-  def Vector.basis(size:, index:)</div><div class='del'>-    raise ArgumentError, "invalid size (#{size} for 1..)" if size &lt; 1</div><div class='del'>-    raise ArgumentError, "invalid index (#{index} for 0...#{size})" unless 0 &lt;= index &amp;&amp; index &lt; size</div><div class='del'>-    array = Array.new(size, 0)</div><div class='del'>-    array[index] = 1</div><div class='del'>-    new convert_to_array(array, false)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Return a zero vector.</div><div class='del'>-  #</div><div class='del'>-  #    Vector.zero(3) =&gt; Vector[0, 0, 0]</div><div class='del'>-  #</div><div class='del'>-  def Vector.zero(size)</div><div class='del'>-    raise ArgumentError, "invalid size (#{size} for 0..)" if size &lt; 0</div><div class='del'>-    array = Array.new(size, 0)</div><div class='del'>-    new convert_to_array(array, false)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Vector.new is private; use Vector[] or Vector.elements to create.</div><div class='del'>-  #</div><div class='del'>-  def initialize(array)</div><div class='del'>-    # No checking is done at this point.</div><div class='del'>-    @elements = array</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # ACCESSING</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   vector[range]</div><div class='del'>-  #   vector[integer]</div><div class='del'>-  #</div><div class='del'>-  # Returns element or elements of the vector.</div><div class='del'>-  #</div><div class='del'>-  def [](i)</div><div class='del'>-    @elements[i]</div><div class='del'>-  end</div><div class='del'>-  alias element []</div><div class='del'>-  alias component []</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # :call-seq:</div><div class='del'>-  #   vector[range] = new_vector</div><div class='del'>-  #   vector[range] = row_matrix</div><div class='del'>-  #   vector[range] = new_element</div><div class='del'>-  #   vector[integer] = new_element</div><div class='del'>-  #</div><div class='del'>-  # Set element or elements of vector.</div><div class='del'>-  #</div><div class='del'>-  def []=(i, v)</div><div class='del'>-    raise FrozenError, "can't modify frozen Vector" if frozen?</div><div class='del'>-    if i.is_a?(Range)</div><div class='del'>-      range = Matrix::CoercionHelper.check_range(i, size, :vector)</div><div class='del'>-      set_range(range, v)</div><div class='del'>-    else</div><div class='del'>-      index = Matrix::CoercionHelper.check_int(i, size, :index)</div><div class='del'>-      set_value(index, v)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-  alias set_element []=</div><div class='del'>-  alias set_component []=</div><div class='del'>-  private :set_element, :set_component</div><div class='del'>-</div><div class='del'>-  private def set_value(index, value)</div><div class='del'>-    @elements[index] = value</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  private def set_range(range, value)</div><div class='del'>-    if value.is_a?(Vector)</div><div class='del'>-      raise ArgumentError, "vector to be set has wrong size" unless range.size == value.size</div><div class='del'>-      @elements[range] = value.elements</div><div class='del'>-    elsif value.is_a?(Matrix)</div><div class='del'>-      Matrix.Raise ErrDimensionMismatch unless value.row_count == 1</div><div class='del'>-      @elements[range] = value.row(0).elements</div><div class='del'>-    else</div><div class='del'>-      @elements[range] = Array.new(range.size, value)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Returns a vector with entries rounded to the given precision</div><div class='del'>-  # (see Float#round)</div><div class='del'>-  #</div><div class='del'>-  def round(ndigits=0)</div><div class='del'>-    map{|e| e.round(ndigits)}</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the number of elements in the vector.</div><div class='del'>-  #</div><div class='del'>-  def size</div><div class='del'>-    @elements.size</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # ENUMERATIONS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Iterate over the elements of this vector</div><div class='del'>-  #</div><div class='del'>-  def each(&amp;block)</div><div class='del'>-    return to_enum(:each) unless block_given?</div><div class='del'>-    @elements.each(&amp;block)</div><div class='del'>-    self</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Iterate over the elements of this vector and +v+ in conjunction.</div><div class='del'>-  #</div><div class='del'>-  def each2(v) # :yield: e1, e2</div><div class='del'>-    raise TypeError, "Integer is not like Vector" if v.kind_of?(Integer)</div><div class='del'>-    Vector.Raise ErrDimensionMismatch if size != v.size</div><div class='del'>-    return to_enum(:each2, v) unless block_given?</div><div class='del'>-    size.times do |i|</div><div class='del'>-      yield @elements[i], v[i]</div><div class='del'>-    end</div><div class='del'>-    self</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Collects (as in Enumerable#collect) over the elements of this vector and +v+</div><div class='del'>-  # in conjunction.</div><div class='del'>-  #</div><div class='del'>-  def collect2(v) # :yield: e1, e2</div><div class='del'>-    raise TypeError, "Integer is not like Vector" if v.kind_of?(Integer)</div><div class='del'>-    Vector.Raise ErrDimensionMismatch if size != v.size</div><div class='del'>-    return to_enum(:collect2, v) unless block_given?</div><div class='del'>-    Array.new(size) do |i|</div><div class='del'>-      yield @elements[i], v[i]</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # PROPERTIES -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ iff all of vectors are linearly independent.</div><div class='del'>-  #</div><div class='del'>-  #   Vector.independent?(Vector[1,0], Vector[0,1])</div><div class='del'>-  #     =&gt; true</div><div class='del'>-  #</div><div class='del'>-  #   Vector.independent?(Vector[1,2], Vector[2,4])</div><div class='del'>-  #     =&gt; false</div><div class='del'>-  #</div><div class='del'>-  def Vector.independent?(*vs)</div><div class='del'>-    vs.each do |v|</div><div class='del'>-      raise TypeError, "expected Vector, got #{v.class}" unless v.is_a?(Vector)</div><div class='del'>-      Vector.Raise ErrDimensionMismatch unless v.size == vs.first.size</div><div class='del'>-    end</div><div class='del'>-    return false if vs.count &gt; vs.first.size</div><div class='del'>-    Matrix[*vs].rank.eql?(vs.count)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ iff all of vectors are linearly independent.</div><div class='del'>-  #</div><div class='del'>-  #   Vector[1,0].independent?(Vector[0,1])</div><div class='del'>-  #     =&gt; true</div><div class='del'>-  #</div><div class='del'>-  #   Vector[1,2].independent?(Vector[2,4])</div><div class='del'>-  #     =&gt; false</div><div class='del'>-  #</div><div class='del'>-  def independent?(*vs)</div><div class='del'>-    self.class.independent?(self, *vs)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ iff all elements are zero.</div><div class='del'>-  #</div><div class='del'>-  def zero?</div><div class='del'>-    all?(&amp;:zero?)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def freeze</div><div class='del'>-    @elements.freeze</div><div class='del'>-    super</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Called for dup &amp; clone.</div><div class='del'>-  #</div><div class='del'>-  private def initialize_copy(v)</div><div class='del'>-    super</div><div class='del'>-    @elements = @elements.dup unless frozen?</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # COMPARING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns +true+ iff the two vectors have the same elements in the same order.</div><div class='del'>-  #</div><div class='del'>-  def ==(other)</div><div class='del'>-    return false unless Vector === other</div><div class='del'>-    @elements == other.elements</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def eql?(other)</div><div class='del'>-    return false unless Vector === other</div><div class='del'>-    @elements.eql? other.elements</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns a hash-code for the vector.</div><div class='del'>-  #</div><div class='del'>-  def hash</div><div class='del'>-    @elements.hash</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # ARITHMETIC -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Multiplies the vector by +x+, where +x+ is a number or a matrix.</div><div class='del'>-  #</div><div class='del'>-  def *(x)</div><div class='del'>-    case x</div><div class='del'>-    when Numeric</div><div class='del'>-      els = @elements.collect{|e| e * x}</div><div class='del'>-      self.class.elements(els, false)</div><div class='del'>-    when Matrix</div><div class='del'>-      Matrix.column_vector(self) * x</div><div class='del'>-    when Vector</div><div class='del'>-      Vector.Raise ErrOperationNotDefined, "*", self.class, x.class</div><div class='del'>-    else</div><div class='del'>-      apply_through_coercion(x, __method__)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Vector addition.</div><div class='del'>-  #</div><div class='del'>-  def +(v)</div><div class='del'>-    case v</div><div class='del'>-    when Vector</div><div class='del'>-      Vector.Raise ErrDimensionMismatch if size != v.size</div><div class='del'>-      els = collect2(v) {|v1, v2|</div><div class='del'>-        v1 + v2</div><div class='del'>-      }</div><div class='del'>-      self.class.elements(els, false)</div><div class='del'>-    when Matrix</div><div class='del'>-      Matrix.column_vector(self) + v</div><div class='del'>-    else</div><div class='del'>-      apply_through_coercion(v, __method__)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Vector subtraction.</div><div class='del'>-  #</div><div class='del'>-  def -(v)</div><div class='del'>-    case v</div><div class='del'>-    when Vector</div><div class='del'>-      Vector.Raise ErrDimensionMismatch if size != v.size</div><div class='del'>-      els = collect2(v) {|v1, v2|</div><div class='del'>-        v1 - v2</div><div class='del'>-      }</div><div class='del'>-      self.class.elements(els, false)</div><div class='del'>-    when Matrix</div><div class='del'>-      Matrix.column_vector(self) - v</div><div class='del'>-    else</div><div class='del'>-      apply_through_coercion(v, __method__)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Vector division.</div><div class='del'>-  #</div><div class='del'>-  def /(x)</div><div class='del'>-    case x</div><div class='del'>-    when Numeric</div><div class='del'>-      els = @elements.collect{|e| e / x}</div><div class='del'>-      self.class.elements(els, false)</div><div class='del'>-    when Matrix, Vector</div><div class='del'>-      Vector.Raise ErrOperationNotDefined, "/", self.class, x.class</div><div class='del'>-    else</div><div class='del'>-      apply_through_coercion(x, __method__)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def +@</div><div class='del'>-    self</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def -@</div><div class='del'>-    collect {|e| -e }</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # VECTOR FUNCTIONS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the inner product of this vector with the other.</div><div class='del'>-  #   Vector[4,7].inner_product Vector[10,1]  =&gt; 47</div><div class='del'>-  #</div><div class='del'>-  def inner_product(v)</div><div class='del'>-    Vector.Raise ErrDimensionMismatch if size != v.size</div><div class='del'>-</div><div class='del'>-    p = 0</div><div class='del'>-    each2(v) {|v1, v2|</div><div class='del'>-      p += v1 * v2.conj</div><div class='del'>-    }</div><div class='del'>-    p</div><div class='del'>-  end</div><div class='del'>-  alias_method :dot, :inner_product</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the cross product of this vector with the others.</div><div class='del'>-  #   Vector[1, 0, 0].cross_product Vector[0, 1, 0]   =&gt; Vector[0, 0, 1]</div><div class='del'>-  #</div><div class='del'>-  # It is generalized to other dimensions to return a vector perpendicular</div><div class='del'>-  # to the arguments.</div><div class='del'>-  #   Vector[1, 2].cross_product # =&gt; Vector[-2, 1]</div><div class='del'>-  #   Vector[1, 0, 0, 0].cross_product(</div><div class='del'>-  #      Vector[0, 1, 0, 0],</div><div class='del'>-  #      Vector[0, 0, 1, 0]</div><div class='del'>-  #   )  #=&gt; Vector[0, 0, 0, 1]</div><div class='del'>-  #</div><div class='del'>-  def cross_product(*vs)</div><div class='del'>-    raise ErrOperationNotDefined, "cross product is not defined on vectors of dimension #{size}" unless size &gt;= 2</div><div class='del'>-    raise ArgumentError, "wrong number of arguments (#{vs.size} for #{size - 2})" unless vs.size == size - 2</div><div class='del'>-    vs.each do |v|</div><div class='del'>-      raise TypeError, "expected Vector, got #{v.class}" unless v.is_a? Vector</div><div class='del'>-      Vector.Raise ErrDimensionMismatch unless v.size == size</div><div class='del'>-    end</div><div class='del'>-    case size</div><div class='del'>-    when 2</div><div class='del'>-      Vector[-@elements[1], @elements[0]]</div><div class='del'>-    when 3</div><div class='del'>-      v = vs[0]</div><div class='del'>-      Vector[ v[2]*@elements[1] - v[1]*@elements[2],</div><div class='del'>-        v[0]*@elements[2] - v[2]*@elements[0],</div><div class='del'>-        v[1]*@elements[0] - v[0]*@elements[1] ]</div><div class='del'>-    else</div><div class='del'>-      rows = self, *vs, Array.new(size) {|i| Vector.basis(size: size, index: i) }</div><div class='del'>-      Matrix.rows(rows).laplace_expansion(row: size - 1)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-  alias_method :cross, :cross_product</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Like Array#collect.</div><div class='del'>-  #</div><div class='del'>-  def collect(&amp;block) # :yield: e</div><div class='del'>-    return to_enum(:collect) unless block_given?</div><div class='del'>-    els = @elements.collect(&amp;block)</div><div class='del'>-    self.class.elements(els, false)</div><div class='del'>-  end</div><div class='del'>-  alias_method :map, :collect</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Like Array#collect!</div><div class='del'>-  #</div><div class='del'>-  def collect!(&amp;block)</div><div class='del'>-    return to_enum(:collect!) unless block_given?</div><div class='del'>-    raise FrozenError, "can't modify frozen Vector" if frozen?</div><div class='del'>-    @elements.collect!(&amp;block)</div><div class='del'>-    self</div><div class='del'>-  end</div><div class='del'>-  alias map! collect!</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the modulus (Pythagorean distance) of the vector.</div><div class='del'>-  #   Vector[5,8,2].r =&gt; 9.643650761</div><div class='del'>-  #</div><div class='del'>-  def magnitude</div><div class='del'>-    Math.sqrt(@elements.inject(0) {|v, e| v + e.abs2})</div><div class='del'>-  end</div><div class='del'>-  alias_method :r, :magnitude</div><div class='del'>-  alias_method :norm, :magnitude</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Like Vector#collect2, but returns a Vector instead of an Array.</div><div class='del'>-  #</div><div class='del'>-  def map2(v, &amp;block) # :yield: e1, e2</div><div class='del'>-    return to_enum(:map2, v) unless block_given?</div><div class='del'>-    els = collect2(v, &amp;block)</div><div class='del'>-    self.class.elements(els, false)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  class ZeroVectorError &lt; StandardError</div><div class='del'>-  end</div><div class='del'>-  #</div><div class='del'>-  # Returns a new vector with the same direction but with norm 1.</div><div class='del'>-  #   v = Vector[5,8,2].normalize</div><div class='del'>-  #   # =&gt; Vector[0.5184758473652127, 0.8295613557843402, 0.20739033894608505]</div><div class='del'>-  #   v.norm =&gt; 1.0</div><div class='del'>-  #</div><div class='del'>-  def normalize</div><div class='del'>-    n = magnitude</div><div class='del'>-    raise ZeroVectorError, "Zero vectors can not be normalized" if n == 0</div><div class='del'>-    self / n</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns an angle with another vector. Result is within the [0..Math::PI].</div><div class='del'>-  #   Vector[1,0].angle_with(Vector[0,1])</div><div class='del'>-  #   # =&gt; Math::PI / 2</div><div class='del'>-  #</div><div class='del'>-  def angle_with(v)</div><div class='del'>-    raise TypeError, "Expected a Vector, got a #{v.class}" unless v.is_a?(Vector)</div><div class='del'>-    Vector.Raise ErrDimensionMismatch if size != v.size</div><div class='del'>-    prod = magnitude * v.magnitude</div><div class='del'>-    raise ZeroVectorError, "Can't get angle of zero vector" if prod == 0</div><div class='del'>-    dot = inner_product(v)</div><div class='del'>-    if dot.abs &gt;= prod</div><div class='del'>-      dot.positive? ? 0 : Math::PI</div><div class='del'>-    else</div><div class='del'>-      Math.acos(dot / prod)</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # CONVERTING</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a single-row matrix from this vector.</div><div class='del'>-  #</div><div class='del'>-  def covector</div><div class='del'>-    Matrix.row_vector(self)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns the elements of the vector in an array.</div><div class='del'>-  #</div><div class='del'>-  def to_a</div><div class='del'>-    @elements.dup</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Return a single-column matrix from this vector</div><div class='del'>-  #</div><div class='del'>-  def to_matrix</div><div class='del'>-    Matrix.column_vector(self)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def elements_to_f</div><div class='del'>-    warn "Vector#elements_to_f is deprecated", uplevel: 1</div><div class='del'>-    map(&amp;:to_f)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def elements_to_i</div><div class='del'>-    warn "Vector#elements_to_i is deprecated", uplevel: 1</div><div class='del'>-    map(&amp;:to_i)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def elements_to_r</div><div class='del'>-    warn "Vector#elements_to_r is deprecated", uplevel: 1</div><div class='del'>-    map(&amp;:to_r)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # The coerce method provides support for Ruby type coercion.</div><div class='del'>-  # This coercion mechanism is used by Ruby to handle mixed-type</div><div class='del'>-  # numeric operations: it is intended to find a compatible common</div><div class='del'>-  # type between the two operands of the operator.</div><div class='del'>-  # See also Numeric#coerce.</div><div class='del'>-  #</div><div class='del'>-  def coerce(other)</div><div class='del'>-    case other</div><div class='del'>-    when Numeric</div><div class='del'>-      return Matrix::Scalar.new(other), self</div><div class='del'>-    else</div><div class='del'>-      raise TypeError, "#{self.class} can't be coerced into #{other.class}"</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #--</div><div class='del'>-  # PRINTING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</div><div class='del'>-  #++</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Overrides Object#to_s</div><div class='del'>-  #</div><div class='del'>-  def to_s</div><div class='del'>-    "Vector[" + @elements.join(", ") + "]"</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Overrides Object#inspect</div><div class='del'>-  #</div><div class='del'>-  def inspect</div><div class='del'>-    "Vector" + @elements.inspect</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/matrix/eigenvalue_decomposition.rb b/lib/matrix/eigenvalue_decomposition.rb<br/>deleted file mode 100644<br/>index bf6637635a..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/matrix/eigenvalue_decomposition.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/matrix/eigenvalue_decomposition.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,882 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-class Matrix</div><div class='del'>-  # Adapted from JAMA: http://math.nist.gov/javanumerics/jama/</div><div class='del'>-</div><div class='del'>-  # Eigenvalues and eigenvectors of a real matrix.</div><div class='del'>-  #</div><div class='del'>-  # Computes the eigenvalues and eigenvectors of a matrix A.</div><div class='del'>-  #</div><div class='del'>-  # If A is diagonalizable, this provides matrices V and D</div><div class='del'>-  # such that A = V*D*V.inv, where D is the diagonal matrix with entries</div><div class='del'>-  # equal to the eigenvalues and V is formed by the eigenvectors.</div><div class='del'>-  #</div><div class='del'>-  # If A is symmetric, then V is orthogonal and thus A = V*D*V.t</div><div class='del'>-</div><div class='del'>-  class EigenvalueDecomposition</div><div class='del'>-</div><div class='del'>-    # Constructs the eigenvalue decomposition for a square matrix +A+</div><div class='del'>-    #</div><div class='del'>-    def initialize(a)</div><div class='del'>-      # @d, @e: Arrays for internal storage of eigenvalues.</div><div class='del'>-      # @v: Array for internal storage of eigenvectors.</div><div class='del'>-      # @h: Array for internal storage of nonsymmetric Hessenberg form.</div><div class='del'>-      raise TypeError, "Expected Matrix but got #{a.class}" unless a.is_a?(Matrix)</div><div class='del'>-      @size = a.row_count</div><div class='del'>-      @d = Array.new(@size, 0)</div><div class='del'>-      @e = Array.new(@size, 0)</div><div class='del'>-</div><div class='del'>-      if (@symmetric = a.symmetric?)</div><div class='del'>-        @v = a.to_a</div><div class='del'>-        tridiagonalize</div><div class='del'>-        diagonalize</div><div class='del'>-      else</div><div class='del'>-        @v = Array.new(@size) { Array.new(@size, 0) }</div><div class='del'>-        @h = a.to_a</div><div class='del'>-        @ort = Array.new(@size, 0)</div><div class='del'>-        reduce_to_hessenberg</div><div class='del'>-        hessenberg_to_real_schur</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns the eigenvector matrix +V+</div><div class='del'>-    #</div><div class='del'>-    def eigenvector_matrix</div><div class='del'>-      Matrix.send(:new, build_eigenvectors.transpose)</div><div class='del'>-    end</div><div class='del'>-    alias_method :v, :eigenvector_matrix</div><div class='del'>-</div><div class='del'>-    # Returns the inverse of the eigenvector matrix +V+</div><div class='del'>-    #</div><div class='del'>-    def eigenvector_matrix_inv</div><div class='del'>-      r = Matrix.send(:new, build_eigenvectors)</div><div class='del'>-      r = r.transpose.inverse unless @symmetric</div><div class='del'>-      r</div><div class='del'>-    end</div><div class='del'>-    alias_method :v_inv, :eigenvector_matrix_inv</div><div class='del'>-</div><div class='del'>-    # Returns the eigenvalues in an array</div><div class='del'>-    #</div><div class='del'>-    def eigenvalues</div><div class='del'>-      values = @d.dup</div><div class='del'>-      @e.each_with_index{|imag, i| values[i] = Complex(values[i], imag) unless imag == 0}</div><div class='del'>-      values</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns an array of the eigenvectors</div><div class='del'>-    #</div><div class='del'>-    def eigenvectors</div><div class='del'>-      build_eigenvectors.map{|ev| Vector.send(:new, ev)}</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns the block diagonal eigenvalue matrix +D+</div><div class='del'>-    #</div><div class='del'>-    def eigenvalue_matrix</div><div class='del'>-      Matrix.diagonal(*eigenvalues)</div><div class='del'>-    end</div><div class='del'>-    alias_method :d, :eigenvalue_matrix</div><div class='del'>-</div><div class='del'>-    # Returns [eigenvector_matrix, eigenvalue_matrix, eigenvector_matrix_inv]</div><div class='del'>-    #</div><div class='del'>-    def to_ary</div><div class='del'>-      [v, d, v_inv]</div><div class='del'>-    end</div><div class='del'>-    alias_method :to_a, :to_ary</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-    private def build_eigenvectors</div><div class='del'>-      # JAMA stores complex eigenvectors in a strange way</div><div class='del'>-      # See http://web.archive.org/web/20111016032731/http://cio.nist.gov/esd/emaildir/lists/jama/msg01021.html</div><div class='del'>-      @e.each_with_index.map do |imag, i|</div><div class='del'>-        if imag == 0</div><div class='del'>-          Array.new(@size){|j| @v[j][i]}</div><div class='del'>-        elsif imag &gt; 0</div><div class='del'>-          Array.new(@size){|j| Complex(@v[j][i], @v[j][i+1])}</div><div class='del'>-        else</div><div class='del'>-          Array.new(@size){|j| Complex(@v[j][i-1], -@v[j][i])}</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Complex scalar division.</div><div class='del'>-</div><div class='del'>-    private def cdiv(xr, xi, yr, yi)</div><div class='del'>-      if (yr.abs &gt; yi.abs)</div><div class='del'>-        r = yi/yr</div><div class='del'>-        d = yr + r*yi</div><div class='del'>-        [(xr + r*xi)/d, (xi - r*xr)/d]</div><div class='del'>-      else</div><div class='del'>-        r = yr/yi</div><div class='del'>-        d = yi + r*yr</div><div class='del'>-        [(r*xr + xi)/d, (r*xi - xr)/d]</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-    # Symmetric Householder reduction to tridiagonal form.</div><div class='del'>-</div><div class='del'>-    private def tridiagonalize</div><div class='del'>-</div><div class='del'>-      #  This is derived from the Algol procedures tred2 by</div><div class='del'>-      #  Bowdler, Martin, Reinsch, and Wilkinson, Handbook for</div><div class='del'>-      #  Auto. Comp., Vol.ii-Linear Algebra, and the corresponding</div><div class='del'>-      #  Fortran subroutine in EISPACK.</div><div class='del'>-</div><div class='del'>-      @size.times do |j|</div><div class='del'>-        @d[j] = @v[@size-1][j]</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Householder reduction to tridiagonal form.</div><div class='del'>-</div><div class='del'>-      (@size-1).downto(0+1) do |i|</div><div class='del'>-</div><div class='del'>-        # Scale to avoid under/overflow.</div><div class='del'>-</div><div class='del'>-        scale = 0.0</div><div class='del'>-        h = 0.0</div><div class='del'>-        i.times do |k|</div><div class='del'>-          scale = scale + @d[k].abs</div><div class='del'>-        end</div><div class='del'>-        if (scale == 0.0)</div><div class='del'>-          @e[i] = @d[i-1]</div><div class='del'>-          i.times do |j|</div><div class='del'>-            @d[j] = @v[i-1][j]</div><div class='del'>-            @v[i][j] = 0.0</div><div class='del'>-            @v[j][i] = 0.0</div><div class='del'>-          end</div><div class='del'>-        else</div><div class='del'>-</div><div class='del'>-          # Generate Householder vector.</div><div class='del'>-</div><div class='del'>-          i.times do |k|</div><div class='del'>-            @d[k] /= scale</div><div class='del'>-            h += @d[k] * @d[k]</div><div class='del'>-          end</div><div class='del'>-          f = @d[i-1]</div><div class='del'>-          g = Math.sqrt(h)</div><div class='del'>-          if (f &gt; 0)</div><div class='del'>-            g = -g</div><div class='del'>-          end</div><div class='del'>-          @e[i] = scale * g</div><div class='del'>-          h -= f * g</div><div class='del'>-          @d[i-1] = f - g</div><div class='del'>-          i.times do |j|</div><div class='del'>-            @e[j] = 0.0</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          # Apply similarity transformation to remaining columns.</div><div class='del'>-</div><div class='del'>-          i.times do |j|</div><div class='del'>-            f = @d[j]</div><div class='del'>-            @v[j][i] = f</div><div class='del'>-            g = @e[j] + @v[j][j] * f</div><div class='del'>-            (j+1).upto(i-1) do |k|</div><div class='del'>-              g += @v[k][j] * @d[k]</div><div class='del'>-              @e[k] += @v[k][j] * f</div><div class='del'>-            end</div><div class='del'>-            @e[j] = g</div><div class='del'>-          end</div><div class='del'>-          f = 0.0</div><div class='del'>-          i.times do |j|</div><div class='del'>-            @e[j] /= h</div><div class='del'>-            f += @e[j] * @d[j]</div><div class='del'>-          end</div><div class='del'>-          hh = f / (h + h)</div><div class='del'>-          i.times do |j|</div><div class='del'>-            @e[j] -= hh * @d[j]</div><div class='del'>-          end</div><div class='del'>-          i.times do |j|</div><div class='del'>-            f = @d[j]</div><div class='del'>-            g = @e[j]</div><div class='del'>-            j.upto(i-1) do |k|</div><div class='del'>-              @v[k][j] -= (f * @e[k] + g * @d[k])</div><div class='del'>-            end</div><div class='del'>-            @d[j] = @v[i-1][j]</div><div class='del'>-            @v[i][j] = 0.0</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        @d[i] = h</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Accumulate transformations.</div><div class='del'>-</div><div class='del'>-      0.upto(@size-1-1) do |i|</div><div class='del'>-        @v[@size-1][i] = @v[i][i]</div><div class='del'>-        @v[i][i] = 1.0</div><div class='del'>-        h = @d[i+1]</div><div class='del'>-        if (h != 0.0)</div><div class='del'>-          0.upto(i) do |k|</div><div class='del'>-            @d[k] = @v[k][i+1] / h</div><div class='del'>-          end</div><div class='del'>-          0.upto(i) do |j|</div><div class='del'>-            g = 0.0</div><div class='del'>-            0.upto(i) do |k|</div><div class='del'>-              g += @v[k][i+1] * @v[k][j]</div><div class='del'>-            end</div><div class='del'>-            0.upto(i) do |k|</div><div class='del'>-              @v[k][j] -= g * @d[k]</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        0.upto(i) do |k|</div><div class='del'>-          @v[k][i+1] = 0.0</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      @size.times do |j|</div><div class='del'>-        @d[j] = @v[@size-1][j]</div><div class='del'>-        @v[@size-1][j] = 0.0</div><div class='del'>-      end</div><div class='del'>-      @v[@size-1][@size-1] = 1.0</div><div class='del'>-      @e[0] = 0.0</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-    # Symmetric tridiagonal QL algorithm.</div><div class='del'>-</div><div class='del'>-    private def diagonalize</div><div class='del'>-      #  This is derived from the Algol procedures tql2, by</div><div class='del'>-      #  Bowdler, Martin, Reinsch, and Wilkinson, Handbook for</div><div class='del'>-      #  Auto. Comp., Vol.ii-Linear Algebra, and the corresponding</div><div class='del'>-      #  Fortran subroutine in EISPACK.</div><div class='del'>-</div><div class='del'>-      1.upto(@size-1) do |i|</div><div class='del'>-        @e[i-1] = @e[i]</div><div class='del'>-      end</div><div class='del'>-      @e[@size-1] = 0.0</div><div class='del'>-</div><div class='del'>-      f = 0.0</div><div class='del'>-      tst1 = 0.0</div><div class='del'>-      eps = Float::EPSILON</div><div class='del'>-      @size.times do |l|</div><div class='del'>-</div><div class='del'>-        # Find small subdiagonal element</div><div class='del'>-</div><div class='del'>-        tst1 = [tst1, @d[l].abs + @e[l].abs].max</div><div class='del'>-        m = l</div><div class='del'>-        while (m &lt; @size) do</div><div class='del'>-          if (@e[m].abs &lt;= eps*tst1)</div><div class='del'>-            break</div><div class='del'>-          end</div><div class='del'>-          m+=1</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # If m == l, @d[l] is an eigenvalue,</div><div class='del'>-        # otherwise, iterate.</div><div class='del'>-</div><div class='del'>-        if (m &gt; l)</div><div class='del'>-          iter = 0</div><div class='del'>-          begin</div><div class='del'>-            iter = iter + 1  # (Could check iteration count here.)</div><div class='del'>-</div><div class='del'>-            # Compute implicit shift</div><div class='del'>-</div><div class='del'>-            g = @d[l]</div><div class='del'>-            p = (@d[l+1] - g) / (2.0 * @e[l])</div><div class='del'>-            r = Math.hypot(p, 1.0)</div><div class='del'>-            if (p &lt; 0)</div><div class='del'>-              r = -r</div><div class='del'>-            end</div><div class='del'>-            @d[l] = @e[l] / (p + r)</div><div class='del'>-            @d[l+1] = @e[l] * (p + r)</div><div class='del'>-            dl1 = @d[l+1]</div><div class='del'>-            h = g - @d[l]</div><div class='del'>-            (l+2).upto(@size-1) do |i|</div><div class='del'>-              @d[i] -= h</div><div class='del'>-            end</div><div class='del'>-            f += h</div><div class='del'>-</div><div class='del'>-            # Implicit QL transformation.</div><div class='del'>-</div><div class='del'>-            p = @d[m]</div><div class='del'>-            c = 1.0</div><div class='del'>-            c2 = c</div><div class='del'>-            c3 = c</div><div class='del'>-            el1 = @e[l+1]</div><div class='del'>-            s = 0.0</div><div class='del'>-            s2 = 0.0</div><div class='del'>-            (m-1).downto(l) do |i|</div><div class='del'>-              c3 = c2</div><div class='del'>-              c2 = c</div><div class='del'>-              s2 = s</div><div class='del'>-              g = c * @e[i]</div><div class='del'>-              h = c * p</div><div class='del'>-              r = Math.hypot(p, @e[i])</div><div class='del'>-              @e[i+1] = s * r</div><div class='del'>-              s = @e[i] / r</div><div class='del'>-              c = p / r</div><div class='del'>-              p = c * @d[i] - s * g</div><div class='del'>-              @d[i+1] = h + s * (c * g + s * @d[i])</div><div class='del'>-</div><div class='del'>-              # Accumulate transformation.</div><div class='del'>-</div><div class='del'>-              @size.times do |k|</div><div class='del'>-                h = @v[k][i+1]</div><div class='del'>-                @v[k][i+1] = s * @v[k][i] + c * h</div><div class='del'>-                @v[k][i] = c * @v[k][i] - s * h</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-            p = -s * s2 * c3 * el1 * @e[l] / dl1</div><div class='del'>-            @e[l] = s * p</div><div class='del'>-            @d[l] = c * p</div><div class='del'>-</div><div class='del'>-            # Check for convergence.</div><div class='del'>-</div><div class='del'>-          end while (@e[l].abs &gt; eps*tst1)</div><div class='del'>-        end</div><div class='del'>-        @d[l] = @d[l] + f</div><div class='del'>-        @e[l] = 0.0</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Sort eigenvalues and corresponding vectors.</div><div class='del'>-</div><div class='del'>-      0.upto(@size-2) do |i|</div><div class='del'>-        k = i</div><div class='del'>-        p = @d[i]</div><div class='del'>-        (i+1).upto(@size-1) do |j|</div><div class='del'>-          if (@d[j] &lt; p)</div><div class='del'>-            k = j</div><div class='del'>-            p = @d[j]</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        if (k != i)</div><div class='del'>-          @d[k] = @d[i]</div><div class='del'>-          @d[i] = p</div><div class='del'>-          @size.times do |j|</div><div class='del'>-            p = @v[j][i]</div><div class='del'>-            @v[j][i] = @v[j][k]</div><div class='del'>-            @v[j][k] = p</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Nonsymmetric reduction to Hessenberg form.</div><div class='del'>-</div><div class='del'>-    private def reduce_to_hessenberg</div><div class='del'>-      #  This is derived from the Algol procedures orthes and ortran,</div><div class='del'>-      #  by Martin and Wilkinson, Handbook for Auto. Comp.,</div><div class='del'>-      #  Vol.ii-Linear Algebra, and the corresponding</div><div class='del'>-      #  Fortran subroutines in EISPACK.</div><div class='del'>-</div><div class='del'>-      low = 0</div><div class='del'>-      high = @size-1</div><div class='del'>-</div><div class='del'>-      (low+1).upto(high-1) do |m|</div><div class='del'>-</div><div class='del'>-        # Scale column.</div><div class='del'>-</div><div class='del'>-        scale = 0.0</div><div class='del'>-        m.upto(high) do |i|</div><div class='del'>-          scale = scale + @h[i][m-1].abs</div><div class='del'>-        end</div><div class='del'>-        if (scale != 0.0)</div><div class='del'>-</div><div class='del'>-          # Compute Householder transformation.</div><div class='del'>-</div><div class='del'>-          h = 0.0</div><div class='del'>-          high.downto(m) do |i|</div><div class='del'>-            @ort[i] = @h[i][m-1]/scale</div><div class='del'>-            h += @ort[i] * @ort[i]</div><div class='del'>-          end</div><div class='del'>-          g = Math.sqrt(h)</div><div class='del'>-          if (@ort[m] &gt; 0)</div><div class='del'>-            g = -g</div><div class='del'>-          end</div><div class='del'>-          h -= @ort[m] * g</div><div class='del'>-          @ort[m] = @ort[m] - g</div><div class='del'>-</div><div class='del'>-          # Apply Householder similarity transformation</div><div class='del'>-          # @h = (I-u*u'/h)*@h*(I-u*u')/h)</div><div class='del'>-</div><div class='del'>-          m.upto(@size-1) do |j|</div><div class='del'>-            f = 0.0</div><div class='del'>-            high.downto(m) do |i|</div><div class='del'>-              f += @ort[i]*@h[i][j]</div><div class='del'>-            end</div><div class='del'>-            f = f/h</div><div class='del'>-            m.upto(high) do |i|</div><div class='del'>-              @h[i][j] -= f*@ort[i]</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          0.upto(high) do |i|</div><div class='del'>-            f = 0.0</div><div class='del'>-            high.downto(m) do |j|</div><div class='del'>-              f += @ort[j]*@h[i][j]</div><div class='del'>-            end</div><div class='del'>-            f = f/h</div><div class='del'>-            m.upto(high) do |j|</div><div class='del'>-              @h[i][j] -= f*@ort[j]</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-          @ort[m] = scale*@ort[m]</div><div class='del'>-          @h[m][m-1] = scale*g</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Accumulate transformations (Algol's ortran).</div><div class='del'>-</div><div class='del'>-      @size.times do |i|</div><div class='del'>-        @size.times do |j|</div><div class='del'>-          @v[i][j] = (i == j ? 1.0 : 0.0)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      (high-1).downto(low+1) do |m|</div><div class='del'>-        if (@h[m][m-1] != 0.0)</div><div class='del'>-          (m+1).upto(high) do |i|</div><div class='del'>-            @ort[i] = @h[i][m-1]</div><div class='del'>-          end</div><div class='del'>-          m.upto(high) do |j|</div><div class='del'>-            g = 0.0</div><div class='del'>-            m.upto(high) do |i|</div><div class='del'>-              g += @ort[i] * @v[i][j]</div><div class='del'>-            end</div><div class='del'>-            # Double division avoids possible underflow</div><div class='del'>-            g = (g / @ort[m]) / @h[m][m-1]</div><div class='del'>-            m.upto(high) do |i|</div><div class='del'>-              @v[i][j] += g * @ort[i]</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Nonsymmetric reduction from Hessenberg to real Schur form.</div><div class='del'>-</div><div class='del'>-    private def hessenberg_to_real_schur</div><div class='del'>-</div><div class='del'>-      #  This is derived from the Algol procedure hqr2,</div><div class='del'>-      #  by Martin and Wilkinson, Handbook for Auto. Comp.,</div><div class='del'>-      #  Vol.ii-Linear Algebra, and the corresponding</div><div class='del'>-      #  Fortran subroutine in EISPACK.</div><div class='del'>-</div><div class='del'>-      # Initialize</div><div class='del'>-</div><div class='del'>-      nn = @size</div><div class='del'>-      n = nn-1</div><div class='del'>-      low = 0</div><div class='del'>-      high = nn-1</div><div class='del'>-      eps = Float::EPSILON</div><div class='del'>-      exshift = 0.0</div><div class='del'>-      p = q = r = s = z = 0</div><div class='del'>-</div><div class='del'>-      # Store roots isolated by balanc and compute matrix norm</div><div class='del'>-</div><div class='del'>-      norm = 0.0</div><div class='del'>-      nn.times do |i|</div><div class='del'>-        if (i &lt; low || i &gt; high)</div><div class='del'>-          @d[i] = @h[i][i]</div><div class='del'>-          @e[i] = 0.0</div><div class='del'>-        end</div><div class='del'>-        ([i-1, 0].max).upto(nn-1) do |j|</div><div class='del'>-          norm = norm + @h[i][j].abs</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Outer loop over eigenvalue index</div><div class='del'>-</div><div class='del'>-      iter = 0</div><div class='del'>-      while (n &gt;= low) do</div><div class='del'>-</div><div class='del'>-        # Look for single small sub-diagonal element</div><div class='del'>-</div><div class='del'>-        l = n</div><div class='del'>-        while (l &gt; low) do</div><div class='del'>-          s = @h[l-1][l-1].abs + @h[l][l].abs</div><div class='del'>-          if (s == 0.0)</div><div class='del'>-            s = norm</div><div class='del'>-          end</div><div class='del'>-          if (@h[l][l-1].abs &lt; eps * s)</div><div class='del'>-            break</div><div class='del'>-          end</div><div class='del'>-          l-=1</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # Check for convergence</div><div class='del'>-        # One root found</div><div class='del'>-</div><div class='del'>-        if (l == n)</div><div class='del'>-          @h[n][n] = @h[n][n] + exshift</div><div class='del'>-          @d[n] = @h[n][n]</div><div class='del'>-          @e[n] = 0.0</div><div class='del'>-          n-=1</div><div class='del'>-          iter = 0</div><div class='del'>-</div><div class='del'>-        # Two roots found</div><div class='del'>-</div><div class='del'>-        elsif (l == n-1)</div><div class='del'>-          w = @h[n][n-1] * @h[n-1][n]</div><div class='del'>-          p = (@h[n-1][n-1] - @h[n][n]) / 2.0</div><div class='del'>-          q = p * p + w</div><div class='del'>-          z = Math.sqrt(q.abs)</div><div class='del'>-          @h[n][n] = @h[n][n] + exshift</div><div class='del'>-          @h[n-1][n-1] = @h[n-1][n-1] + exshift</div><div class='del'>-          x = @h[n][n]</div><div class='del'>-</div><div class='del'>-          # Real pair</div><div class='del'>-</div><div class='del'>-          if (q &gt;= 0)</div><div class='del'>-            if (p &gt;= 0)</div><div class='del'>-              z = p + z</div><div class='del'>-            else</div><div class='del'>-              z = p - z</div><div class='del'>-            end</div><div class='del'>-            @d[n-1] = x + z</div><div class='del'>-            @d[n] = @d[n-1]</div><div class='del'>-            if (z != 0.0)</div><div class='del'>-              @d[n] = x - w / z</div><div class='del'>-            end</div><div class='del'>-            @e[n-1] = 0.0</div><div class='del'>-            @e[n] = 0.0</div><div class='del'>-            x = @h[n][n-1]</div><div class='del'>-            s = x.abs + z.abs</div><div class='del'>-            p = x / s</div><div class='del'>-            q = z / s</div><div class='del'>-            r = Math.sqrt(p * p+q * q)</div><div class='del'>-            p /= r</div><div class='del'>-            q /= r</div><div class='del'>-</div><div class='del'>-            # Row modification</div><div class='del'>-</div><div class='del'>-            (n-1).upto(nn-1) do |j|</div><div class='del'>-              z = @h[n-1][j]</div><div class='del'>-              @h[n-1][j] = q * z + p * @h[n][j]</div><div class='del'>-              @h[n][j] = q * @h[n][j] - p * z</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-            # Column modification</div><div class='del'>-</div><div class='del'>-            0.upto(n) do |i|</div><div class='del'>-              z = @h[i][n-1]</div><div class='del'>-              @h[i][n-1] = q * z + p * @h[i][n]</div><div class='del'>-              @h[i][n] = q * @h[i][n] - p * z</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-            # Accumulate transformations</div><div class='del'>-</div><div class='del'>-            low.upto(high) do |i|</div><div class='del'>-              z = @v[i][n-1]</div><div class='del'>-              @v[i][n-1] = q * z + p * @v[i][n]</div><div class='del'>-              @v[i][n] = q * @v[i][n] - p * z</div><div class='del'>-            end</div><div class='del'>-</div><div class='del'>-          # Complex pair</div><div class='del'>-</div><div class='del'>-          else</div><div class='del'>-            @d[n-1] = x + p</div><div class='del'>-            @d[n] = x + p</div><div class='del'>-            @e[n-1] = z</div><div class='del'>-            @e[n] = -z</div><div class='del'>-          end</div><div class='del'>-          n -= 2</div><div class='del'>-          iter = 0</div><div class='del'>-</div><div class='del'>-        # No convergence yet</div><div class='del'>-</div><div class='del'>-        else</div><div class='del'>-</div><div class='del'>-          # Form shift</div><div class='del'>-</div><div class='del'>-          x = @h[n][n]</div><div class='del'>-          y = 0.0</div><div class='del'>-          w = 0.0</div><div class='del'>-          if (l &lt; n)</div><div class='del'>-            y = @h[n-1][n-1]</div><div class='del'>-            w = @h[n][n-1] * @h[n-1][n]</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          # Wilkinson's original ad hoc shift</div><div class='del'>-</div><div class='del'>-          if (iter == 10)</div><div class='del'>-            exshift += x</div><div class='del'>-            low.upto(n) do |i|</div><div class='del'>-              @h[i][i] -= x</div><div class='del'>-            end</div><div class='del'>-            s = @h[n][n-1].abs + @h[n-1][n-2].abs</div><div class='del'>-            x = y = 0.75 * s</div><div class='del'>-            w = -0.4375 * s * s</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          # MATLAB's new ad hoc shift</div><div class='del'>-</div><div class='del'>-          if (iter == 30)</div><div class='del'>-             s = (y - x) / 2.0</div><div class='del'>-             s *= s + w</div><div class='del'>-             if (s &gt; 0)</div><div class='del'>-                s = Math.sqrt(s)</div><div class='del'>-                if (y &lt; x)</div><div class='del'>-                  s = -s</div><div class='del'>-                end</div><div class='del'>-                s = x - w / ((y - x) / 2.0 + s)</div><div class='del'>-                low.upto(n) do |i|</div><div class='del'>-                  @h[i][i] -= s</div><div class='del'>-                end</div><div class='del'>-                exshift += s</div><div class='del'>-                x = y = w = 0.964</div><div class='del'>-             end</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          iter = iter + 1  # (Could check iteration count here.)</div><div class='del'>-</div><div class='del'>-          # Look for two consecutive small sub-diagonal elements</div><div class='del'>-</div><div class='del'>-          m = n-2</div><div class='del'>-          while (m &gt;= l) do</div><div class='del'>-            z = @h[m][m]</div><div class='del'>-            r = x - z</div><div class='del'>-            s = y - z</div><div class='del'>-            p = (r * s - w) / @h[m+1][m] + @h[m][m+1]</div><div class='del'>-            q = @h[m+1][m+1] - z - r - s</div><div class='del'>-            r = @h[m+2][m+1]</div><div class='del'>-            s = p.abs + q.abs + r.abs</div><div class='del'>-            p /= s</div><div class='del'>-            q /= s</div><div class='del'>-            r /= s</div><div class='del'>-            if (m == l)</div><div class='del'>-              break</div><div class='del'>-            end</div><div class='del'>-            if (@h[m][m-1].abs * (q.abs + r.abs) &lt;</div><div class='del'>-              eps * (p.abs * (@h[m-1][m-1].abs + z.abs +</div><div class='del'>-              @h[m+1][m+1].abs)))</div><div class='del'>-                break</div><div class='del'>-            end</div><div class='del'>-            m-=1</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          (m+2).upto(n) do |i|</div><div class='del'>-            @h[i][i-2] = 0.0</div><div class='del'>-            if (i &gt; m+2)</div><div class='del'>-              @h[i][i-3] = 0.0</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          # Double QR step involving rows l:n and columns m:n</div><div class='del'>-</div><div class='del'>-          m.upto(n-1) do |k|</div><div class='del'>-            notlast = (k != n-1)</div><div class='del'>-            if (k != m)</div><div class='del'>-              p = @h[k][k-1]</div><div class='del'>-              q = @h[k+1][k-1]</div><div class='del'>-              r = (notlast ? @h[k+2][k-1] : 0.0)</div><div class='del'>-              x = p.abs + q.abs + r.abs</div><div class='del'>-              next if x == 0</div><div class='del'>-              p /= x</div><div class='del'>-              q /= x</div><div class='del'>-              r /= x</div><div class='del'>-            end</div><div class='del'>-            s = Math.sqrt(p * p + q * q + r * r)</div><div class='del'>-            if (p &lt; 0)</div><div class='del'>-              s = -s</div><div class='del'>-            end</div><div class='del'>-            if (s != 0)</div><div class='del'>-              if (k != m)</div><div class='del'>-                @h[k][k-1] = -s * x</div><div class='del'>-              elsif (l != m)</div><div class='del'>-                @h[k][k-1] = -@h[k][k-1]</div><div class='del'>-              end</div><div class='del'>-              p += s</div><div class='del'>-              x = p / s</div><div class='del'>-              y = q / s</div><div class='del'>-              z = r / s</div><div class='del'>-              q /= p</div><div class='del'>-              r /= p</div><div class='del'>-</div><div class='del'>-              # Row modification</div><div class='del'>-</div><div class='del'>-              k.upto(nn-1) do |j|</div><div class='del'>-                p = @h[k][j] + q * @h[k+1][j]</div><div class='del'>-                if (notlast)</div><div class='del'>-                  p += r * @h[k+2][j]</div><div class='del'>-                  @h[k+2][j] = @h[k+2][j] - p * z</div><div class='del'>-                end</div><div class='del'>-                @h[k][j] = @h[k][j] - p * x</div><div class='del'>-                @h[k+1][j] = @h[k+1][j] - p * y</div><div class='del'>-              end</div><div class='del'>-</div><div class='del'>-              # Column modification</div><div class='del'>-</div><div class='del'>-              0.upto([n, k+3].min) do |i|</div><div class='del'>-                p = x * @h[i][k] + y * @h[i][k+1]</div><div class='del'>-                if (notlast)</div><div class='del'>-                  p += z * @h[i][k+2]</div><div class='del'>-                  @h[i][k+2] = @h[i][k+2] - p * r</div><div class='del'>-                end</div><div class='del'>-                @h[i][k] = @h[i][k] - p</div><div class='del'>-                @h[i][k+1] = @h[i][k+1] - p * q</div><div class='del'>-              end</div><div class='del'>-</div><div class='del'>-              # Accumulate transformations</div><div class='del'>-</div><div class='del'>-              low.upto(high) do |i|</div><div class='del'>-                p = x * @v[i][k] + y * @v[i][k+1]</div><div class='del'>-                if (notlast)</div><div class='del'>-                  p += z * @v[i][k+2]</div><div class='del'>-                  @v[i][k+2] = @v[i][k+2] - p * r</div><div class='del'>-                end</div><div class='del'>-                @v[i][k] = @v[i][k] - p</div><div class='del'>-                @v[i][k+1] = @v[i][k+1] - p * q</div><div class='del'>-              end</div><div class='del'>-            end  # (s != 0)</div><div class='del'>-          end  # k loop</div><div class='del'>-        end  # check convergence</div><div class='del'>-      end  # while (n &gt;= low)</div><div class='del'>-</div><div class='del'>-      # Backsubstitute to find vectors of upper triangular form</div><div class='del'>-</div><div class='del'>-      if (norm == 0.0)</div><div class='del'>-        return</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      (nn-1).downto(0) do |k|</div><div class='del'>-        p = @d[k]</div><div class='del'>-        q = @e[k]</div><div class='del'>-</div><div class='del'>-        # Real vector</div><div class='del'>-</div><div class='del'>-        if (q == 0)</div><div class='del'>-          l = k</div><div class='del'>-          @h[k][k] = 1.0</div><div class='del'>-          (k-1).downto(0) do |i|</div><div class='del'>-            w = @h[i][i] - p</div><div class='del'>-            r = 0.0</div><div class='del'>-            l.upto(k) do |j|</div><div class='del'>-              r += @h[i][j] * @h[j][k]</div><div class='del'>-            end</div><div class='del'>-            if (@e[i] &lt; 0.0)</div><div class='del'>-              z = w</div><div class='del'>-              s = r</div><div class='del'>-            else</div><div class='del'>-              l = i</div><div class='del'>-              if (@e[i] == 0.0)</div><div class='del'>-                if (w != 0.0)</div><div class='del'>-                  @h[i][k] = -r / w</div><div class='del'>-                else</div><div class='del'>-                  @h[i][k] = -r / (eps * norm)</div><div class='del'>-                end</div><div class='del'>-</div><div class='del'>-              # Solve real equations</div><div class='del'>-</div><div class='del'>-              else</div><div class='del'>-                x = @h[i][i+1]</div><div class='del'>-                y = @h[i+1][i]</div><div class='del'>-                q = (@d[i] - p) * (@d[i] - p) + @e[i] * @e[i]</div><div class='del'>-                t = (x * s - z * r) / q</div><div class='del'>-                @h[i][k] = t</div><div class='del'>-                if (x.abs &gt; z.abs)</div><div class='del'>-                  @h[i+1][k] = (-r - w * t) / x</div><div class='del'>-                else</div><div class='del'>-                  @h[i+1][k] = (-s - y * t) / z</div><div class='del'>-                end</div><div class='del'>-              end</div><div class='del'>-</div><div class='del'>-              # Overflow control</div><div class='del'>-</div><div class='del'>-              t = @h[i][k].abs</div><div class='del'>-              if ((eps * t) * t &gt; 1)</div><div class='del'>-                i.upto(k) do |j|</div><div class='del'>-                  @h[j][k] = @h[j][k] / t</div><div class='del'>-                end</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-        # Complex vector</div><div class='del'>-</div><div class='del'>-        elsif (q &lt; 0)</div><div class='del'>-          l = n-1</div><div class='del'>-</div><div class='del'>-          # Last vector component imaginary so matrix is triangular</div><div class='del'>-</div><div class='del'>-          if (@h[n][n-1].abs &gt; @h[n-1][n].abs)</div><div class='del'>-            @h[n-1][n-1] = q / @h[n][n-1]</div><div class='del'>-            @h[n-1][n] = -(@h[n][n] - p) / @h[n][n-1]</div><div class='del'>-          else</div><div class='del'>-            cdivr, cdivi = cdiv(0.0, -@h[n-1][n], @h[n-1][n-1]-p, q)</div><div class='del'>-            @h[n-1][n-1] = cdivr</div><div class='del'>-            @h[n-1][n] = cdivi</div><div class='del'>-          end</div><div class='del'>-          @h[n][n-1] = 0.0</div><div class='del'>-          @h[n][n] = 1.0</div><div class='del'>-          (n-2).downto(0) do |i|</div><div class='del'>-            ra = 0.0</div><div class='del'>-            sa = 0.0</div><div class='del'>-            l.upto(n) do |j|</div><div class='del'>-              ra = ra + @h[i][j] * @h[j][n-1]</div><div class='del'>-              sa = sa + @h[i][j] * @h[j][n]</div><div class='del'>-            end</div><div class='del'>-            w = @h[i][i] - p</div><div class='del'>-</div><div class='del'>-            if (@e[i] &lt; 0.0)</div><div class='del'>-              z = w</div><div class='del'>-              r = ra</div><div class='del'>-              s = sa</div><div class='del'>-            else</div><div class='del'>-              l = i</div><div class='del'>-              if (@e[i] == 0)</div><div class='del'>-                cdivr, cdivi = cdiv(-ra, -sa, w, q)</div><div class='del'>-                @h[i][n-1] = cdivr</div><div class='del'>-                @h[i][n] = cdivi</div><div class='del'>-              else</div><div class='del'>-</div><div class='del'>-                # Solve complex equations</div><div class='del'>-</div><div class='del'>-                x = @h[i][i+1]</div><div class='del'>-                y = @h[i+1][i]</div><div class='del'>-                vr = (@d[i] - p) * (@d[i] - p) + @e[i] * @e[i] - q * q</div><div class='del'>-                vi = (@d[i] - p) * 2.0 * q</div><div class='del'>-                if (vr == 0.0 &amp;&amp; vi == 0.0)</div><div class='del'>-                  vr = eps * norm * (w.abs + q.abs +</div><div class='del'>-                  x.abs + y.abs + z.abs)</div><div class='del'>-                end</div><div class='del'>-                cdivr, cdivi = cdiv(x*r-z*ra+q*sa, x*s-z*sa-q*ra, vr, vi)</div><div class='del'>-                @h[i][n-1] = cdivr</div><div class='del'>-                @h[i][n] = cdivi</div><div class='del'>-                if (x.abs &gt; (z.abs + q.abs))</div><div class='del'>-                  @h[i+1][n-1] = (-ra - w * @h[i][n-1] + q * @h[i][n]) / x</div><div class='del'>-                  @h[i+1][n] = (-sa - w * @h[i][n] - q * @h[i][n-1]) / x</div><div class='del'>-                else</div><div class='del'>-                  cdivr, cdivi = cdiv(-r-y*@h[i][n-1], -s-y*@h[i][n], z, q)</div><div class='del'>-                  @h[i+1][n-1] = cdivr</div><div class='del'>-                  @h[i+1][n] = cdivi</div><div class='del'>-                end</div><div class='del'>-              end</div><div class='del'>-</div><div class='del'>-              # Overflow control</div><div class='del'>-</div><div class='del'>-              t = [@h[i][n-1].abs, @h[i][n].abs].max</div><div class='del'>-              if ((eps * t) * t &gt; 1)</div><div class='del'>-                i.upto(n) do |j|</div><div class='del'>-                  @h[j][n-1] = @h[j][n-1] / t</div><div class='del'>-                  @h[j][n] = @h[j][n] / t</div><div class='del'>-                end</div><div class='del'>-              end</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Vectors of isolated roots</div><div class='del'>-</div><div class='del'>-      nn.times do |i|</div><div class='del'>-        if (i &lt; low || i &gt; high)</div><div class='del'>-          i.upto(nn-1) do |j|</div><div class='del'>-            @v[i][j] = @h[i][j]</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      # Back transformation to get eigenvectors of original matrix</div><div class='del'>-</div><div class='del'>-      (nn-1).downto(low) do |j|</div><div class='del'>-        low.upto(high) do |i|</div><div class='del'>-          z = 0.0</div><div class='del'>-          low.upto([j, high].min) do |k|</div><div class='del'>-            z += @v[i][k] * @h[k][j]</div><div class='del'>-          end</div><div class='del'>-          @v[i][j] = z</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/matrix/lup_decomposition.rb b/lib/matrix/lup_decomposition.rb<br/>deleted file mode 100644<br/>index c001770a12..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/matrix/lup_decomposition.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/matrix/lup_decomposition.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,219 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-class Matrix</div><div class='del'>-  # Adapted from JAMA: http://math.nist.gov/javanumerics/jama/</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # For an m-by-n matrix A with m &gt;= n, the LU decomposition is an m-by-n</div><div class='del'>-  # unit lower triangular matrix L, an n-by-n upper triangular matrix U,</div><div class='del'>-  # and a m-by-m permutation matrix P so that L*U = P*A.</div><div class='del'>-  # If m &lt; n, then L is m-by-m and U is m-by-n.</div><div class='del'>-  #</div><div class='del'>-  # The LUP decomposition with pivoting always exists, even if the matrix is</div><div class='del'>-  # singular, so the constructor will never fail.  The primary use of the</div><div class='del'>-  # LU decomposition is in the solution of square systems of simultaneous</div><div class='del'>-  # linear equations.  This will fail if singular? returns true.</div><div class='del'>-  #</div><div class='del'>-</div><div class='del'>-  class LUPDecomposition</div><div class='del'>-    # Returns the lower triangular factor +L+</div><div class='del'>-</div><div class='del'>-    include Matrix::ConversionHelper</div><div class='del'>-</div><div class='del'>-    def l</div><div class='del'>-      Matrix.build(@row_count, [@column_count, @row_count].min) do |i, j|</div><div class='del'>-        if (i &gt; j)</div><div class='del'>-          @lu[i][j]</div><div class='del'>-        elsif (i == j)</div><div class='del'>-          1</div><div class='del'>-        else</div><div class='del'>-          0</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns the upper triangular factor +U+</div><div class='del'>-</div><div class='del'>-    def u</div><div class='del'>-      Matrix.build([@column_count, @row_count].min, @column_count) do |i, j|</div><div class='del'>-        if (i &lt;= j)</div><div class='del'>-          @lu[i][j]</div><div class='del'>-        else</div><div class='del'>-          0</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns the permutation matrix +P+</div><div class='del'>-</div><div class='del'>-    def p</div><div class='del'>-      rows = Array.new(@row_count){Array.new(@row_count, 0)}</div><div class='del'>-      @pivots.each_with_index{|p, i| rows[i][p] = 1}</div><div class='del'>-      Matrix.send :new, rows, @row_count</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns +L+, +U+, +P+ in an array</div><div class='del'>-</div><div class='del'>-    def to_ary</div><div class='del'>-      [l, u, p]</div><div class='del'>-    end</div><div class='del'>-    alias_method :to_a, :to_ary</div><div class='del'>-</div><div class='del'>-    # Returns the pivoting indices</div><div class='del'>-</div><div class='del'>-    attr_reader :pivots</div><div class='del'>-</div><div class='del'>-    # Returns +true+ if +U+, and hence +A+, is singular.</div><div class='del'>-</div><div class='del'>-    def singular?</div><div class='del'>-      @column_count.times do |j|</div><div class='del'>-        if (@lu[j][j] == 0)</div><div class='del'>-          return true</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      false</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Returns the determinant of +A+, calculated efficiently</div><div class='del'>-    # from the factorization.</div><div class='del'>-</div><div class='del'>-    def det</div><div class='del'>-      if (@row_count != @column_count)</div><div class='del'>-        Matrix.Raise Matrix::ErrDimensionMismatch</div><div class='del'>-      end</div><div class='del'>-      d = @pivot_sign</div><div class='del'>-      @column_count.times do |j|</div><div class='del'>-        d *= @lu[j][j]</div><div class='del'>-      end</div><div class='del'>-      d</div><div class='del'>-    end</div><div class='del'>-    alias_method :determinant, :det</div><div class='del'>-</div><div class='del'>-    # Returns +m+ so that &lt;tt&gt;A*m = b&lt;/tt&gt;,</div><div class='del'>-    # or equivalently so that &lt;tt&gt;L*U*m = P*b&lt;/tt&gt;</div><div class='del'>-    # +b+ can be a Matrix or a Vector</div><div class='del'>-</div><div class='del'>-    def solve b</div><div class='del'>-      if (singular?)</div><div class='del'>-        Matrix.Raise Matrix::ErrNotRegular, "Matrix is singular."</div><div class='del'>-      end</div><div class='del'>-      if b.is_a? Matrix</div><div class='del'>-        if (b.row_count != @row_count)</div><div class='del'>-          Matrix.Raise Matrix::ErrDimensionMismatch</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # Copy right hand side with pivoting</div><div class='del'>-        nx = b.column_count</div><div class='del'>-        m = @pivots.map{|row| b.row(row).to_a}</div><div class='del'>-</div><div class='del'>-        # Solve L*Y = P*b</div><div class='del'>-        @column_count.times do |k|</div><div class='del'>-          (k+1).upto(@column_count-1) do |i|</div><div class='del'>-            nx.times do |j|</div><div class='del'>-              m[i][j] -= m[k][j]*@lu[i][k]</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        # Solve U*m = Y</div><div class='del'>-        (@column_count-1).downto(0) do |k|</div><div class='del'>-          nx.times do |j|</div><div class='del'>-            m[k][j] = m[k][j].quo(@lu[k][k])</div><div class='del'>-          end</div><div class='del'>-          k.times do |i|</div><div class='del'>-            nx.times do |j|</div><div class='del'>-              m[i][j] -= m[k][j]*@lu[i][k]</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        Matrix.send :new, m, nx</div><div class='del'>-      else # same algorithm, specialized for simpler case of a vector</div><div class='del'>-        b = convert_to_array(b)</div><div class='del'>-        if (b.size != @row_count)</div><div class='del'>-          Matrix.Raise Matrix::ErrDimensionMismatch</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # Copy right hand side with pivoting</div><div class='del'>-        m = b.values_at(*@pivots)</div><div class='del'>-</div><div class='del'>-        # Solve L*Y = P*b</div><div class='del'>-        @column_count.times do |k|</div><div class='del'>-          (k+1).upto(@column_count-1) do |i|</div><div class='del'>-            m[i] -= m[k]*@lu[i][k]</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        # Solve U*m = Y</div><div class='del'>-        (@column_count-1).downto(0) do |k|</div><div class='del'>-          m[k] = m[k].quo(@lu[k][k])</div><div class='del'>-          k.times do |i|</div><div class='del'>-            m[i] -= m[k]*@lu[i][k]</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        Vector.elements(m, false)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def initialize a</div><div class='del'>-      raise TypeError, "Expected Matrix but got #{a.class}" unless a.is_a?(Matrix)</div><div class='del'>-      # Use a "left-looking", dot-product, Crout/Doolittle algorithm.</div><div class='del'>-      @lu = a.to_a</div><div class='del'>-      @row_count = a.row_count</div><div class='del'>-      @column_count = a.column_count</div><div class='del'>-      @pivots = Array.new(@row_count)</div><div class='del'>-      @row_count.times do |i|</div><div class='del'>-         @pivots[i] = i</div><div class='del'>-      end</div><div class='del'>-      @pivot_sign = 1</div><div class='del'>-      lu_col_j = Array.new(@row_count)</div><div class='del'>-</div><div class='del'>-      # Outer loop.</div><div class='del'>-</div><div class='del'>-      @column_count.times do |j|</div><div class='del'>-</div><div class='del'>-        # Make a copy of the j-th column to localize references.</div><div class='del'>-</div><div class='del'>-        @row_count.times do |i|</div><div class='del'>-          lu_col_j[i] = @lu[i][j]</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # Apply previous transformations.</div><div class='del'>-</div><div class='del'>-        @row_count.times do |i|</div><div class='del'>-          lu_row_i = @lu[i]</div><div class='del'>-</div><div class='del'>-          # Most of the time is spent in the following dot product.</div><div class='del'>-</div><div class='del'>-          kmax = [i, j].min</div><div class='del'>-          s = 0</div><div class='del'>-          kmax.times do |k|</div><div class='del'>-            s += lu_row_i[k]*lu_col_j[k]</div><div class='del'>-          end</div><div class='del'>-</div><div class='del'>-          lu_row_i[j] = lu_col_j[i] -= s</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # Find pivot and exchange if necessary.</div><div class='del'>-</div><div class='del'>-        p = j</div><div class='del'>-        (j+1).upto(@row_count-1) do |i|</div><div class='del'>-          if (lu_col_j[i].abs &gt; lu_col_j[p].abs)</div><div class='del'>-            p = i</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        if (p != j)</div><div class='del'>-          @column_count.times do |k|</div><div class='del'>-            t = @lu[p][k]; @lu[p][k] = @lu[j][k]; @lu[j][k] = t</div><div class='del'>-          end</div><div class='del'>-          k = @pivots[p]; @pivots[p] = @pivots[j]; @pivots[j] = k</div><div class='del'>-          @pivot_sign = -@pivot_sign</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        # Compute multipliers.</div><div class='del'>-</div><div class='del'>-        if (j &lt; @row_count &amp;&amp; @lu[j][j] != 0)</div><div class='del'>-          (j+1).upto(@row_count-1) do |i|</div><div class='del'>-            @lu[i][j] = @lu[i][j].quo(@lu[j][j])</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-end</div><div class='head'>diff --git a/lib/matrix/matrix.gemspec b/lib/matrix/matrix.gemspec<br/>deleted file mode 100644<br/>index 71f0371856..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/matrix/matrix.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/matrix/matrix.gemspec</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,21 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-</div><div class='del'>-Gem::Specification.new do |spec|</div><div class='del'>-  spec.name          = "matrix"</div><div class='del'>-  spec.version       = "0.1.0"</div><div class='del'>-  spec.authors       = ["Marc-Andre Lafortune"]</div><div class='del'>-  spec.email         = ["ruby-core@marc-andre.ca"]</div><div class='del'>-</div><div class='del'>-  spec.summary       = %q{An implementation of Matrix and Vector classes.}</div><div class='del'>-  spec.description   = %q{An implementation of Matrix and Vector classes.}</div><div class='del'>-  spec.homepage      = "https://github.com/ruby/matrix"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='del'>-</div><div class='del'>-  spec.files         = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "lib/matrix.rb", "matrix.gemspec"]</div><div class='del'>-  spec.bindir        = "exe"</div><div class='del'>-  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='del'>-  spec.require_paths = ["lib"]</div><div class='del'>-</div><div class='del'>-  spec.add_development_dependency "bundler"</div><div class='del'>-  spec.add_development_dependency "rake"</div><div class='del'>-end</div><div class='head'>diff --git a/lib/mkmf.rb b/lib/mkmf.rb<br/>index 0d9d3d9f38..0fbc1cc2e5 100644<br/>--- a/<a href='/ruby.git/tree/lib/mkmf.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/mkmf.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/mkmf.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/mkmf.rb</a></div><div class='hunk'>@@ -7,9 +7,7 @@ require 'rbconfig'</div><div class='ctx'> require 'fileutils'</div><div class='ctx'> require 'shellwords'</div><div class='ctx'> </div><div class='del'>-class String</div><div class='del'>-  # :stopdoc:</div><div class='del'>-</div><div class='add'>+class String # :nodoc:</div><div class='ctx'>   # Wraps a string in escaped quotes if it contains whitespace.</div><div class='ctx'>   def quote</div><div class='ctx'>     /\s/ =~ self ? "\"#{self}\"" : "#{self}"</div><div class='hunk'>@@ -32,19 +30,13 @@ class String</div><div class='ctx'>   def sans_arguments</div><div class='ctx'>     self[/\A[^()]+/]</div><div class='ctx'>   end</div><div class='del'>-</div><div class='del'>-  # :startdoc:</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-class Array</div><div class='del'>-  # :stopdoc:</div><div class='del'>-</div><div class='add'>+class Array # :nodoc:</div><div class='ctx'>   # Wraps all strings in escaped quotes if they contain whitespace.</div><div class='ctx'>   def quote</div><div class='ctx'>     map {|s| s.quote}</div><div class='ctx'>   end</div><div class='del'>-</div><div class='del'>-  # :startdoc:</div><div class='ctx'> end</div><div class='ctx'> </div><div class='ctx'> ##</div><div class='hunk'>@@ -75,7 +67,7 @@ module MakeMakefile</div><div class='ctx'>   C_EXT = %w[c m]</div><div class='ctx'> </div><div class='ctx'>   ##</div><div class='del'>-  # Extensions for files complied with a C++ compiler</div><div class='add'>+  # Extensions for files compiled with a C++ compiler</div><div class='ctx'> </div><div class='ctx'>   CXX_EXT = %w[cc mm cxx cpp]</div><div class='ctx'>   unless File.exist?(File.join(*File.split(__FILE__).tap {|d, b| b.swapcase}))</div><div class='hunk'>@@ -207,8 +199,8 @@ module MakeMakefile</div><div class='ctx'>         ['RUBYCOMMONDIR', '$(vendordir)$(target_prefix)'],</div><div class='ctx'>         ['RUBYLIBDIR',    '$(vendorlibdir)$(target_prefix)'],</div><div class='ctx'>         ['RUBYARCHDIR',   '$(vendorarchdir)$(target_prefix)'],</div><div class='del'>-        ['HDRDIR',        '$(rubyhdrdir)/ruby$(target_prefix)'],</div><div class='del'>-        ['ARCHHDRDIR',    '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],</div><div class='add'>+        ['HDRDIR',        '$(vendorhdrdir)$(target_prefix)'],</div><div class='add'>+        ['ARCHHDRDIR',    '$(vendorarchhdrdir)$(target_prefix)'],</div><div class='ctx'>       ]</div><div class='ctx'>     else</div><div class='ctx'>       dirs = [</div><div class='hunk'>@@ -216,8 +208,8 @@ module MakeMakefile</div><div class='ctx'>         ['RUBYCOMMONDIR', '$(sitedir)$(target_prefix)'],</div><div class='ctx'>         ['RUBYLIBDIR',    '$(sitelibdir)$(target_prefix)'],</div><div class='ctx'>         ['RUBYARCHDIR',   '$(sitearchdir)$(target_prefix)'],</div><div class='del'>-        ['HDRDIR',        '$(rubyhdrdir)/ruby$(target_prefix)'],</div><div class='del'>-        ['ARCHHDRDIR',    '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],</div><div class='add'>+        ['HDRDIR',        '$(sitehdrdir)$(target_prefix)'],</div><div class='add'>+        ['ARCHHDRDIR',    '$(sitearchhdrdir)$(target_prefix)'],</div><div class='ctx'>       ]</div><div class='ctx'>     end</div><div class='ctx'>     dirs &lt;&lt; ['target_prefix', (target_prefix ? "/#{target_prefix}" : "")]</div><div class='hunk'>@@ -284,7 +276,8 @@ MESSAGE</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def split_libs(*strs)</div><div class='del'>-    strs.map {|s| s.split(/\s+(?=-|\z)/)}.flatten</div><div class='add'>+    sep = $mswin ? /\s+/ : /\s+(?=-|\z)/</div><div class='add'>+    strs.flat_map {|s| s.lstrip.split(sep)}</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def merge_libs(*libs)</div><div class='hunk'>@@ -385,38 +378,64 @@ MESSAGE</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def xsystem command, opts = nil</div><div class='add'>+  def expand_command(commands, envs = libpath_env)</div><div class='ctx'>     varpat = /\$\((\w+)\)|\$\{(\w+)\}/</div><div class='del'>-    if varpat =~ command</div><div class='del'>-      vars = Hash.new {|h, k| h[k] = ENV[k]}</div><div class='del'>-      command = command.dup</div><div class='del'>-      nil while command.gsub!(varpat) {vars[$1||$2]}</div><div class='add'>+    vars = nil</div><div class='add'>+    expand = proc do |command|</div><div class='add'>+      case command</div><div class='add'>+      when Array</div><div class='add'>+        command.map(&amp;expand)</div><div class='add'>+      when String</div><div class='add'>+        if varpat =~ command</div><div class='add'>+          vars ||= Hash.new {|h, k| h[k] = ENV[k]}</div><div class='add'>+          command = command.dup</div><div class='add'>+          nil while command.gsub!(varpat) {vars[$1||$2]}</div><div class='add'>+        end</div><div class='add'>+        command</div><div class='add'>+      else</div><div class='add'>+        command</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    if Array === commands</div><div class='add'>+      env, *commands = commands if Hash === commands.first</div><div class='add'>+      envs.merge!(env) if env</div><div class='ctx'>     end</div><div class='add'>+    return envs, expand[commands]</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def env_quote(envs)</div><div class='add'>+    envs.map {|e, v| "#{e}=#{v.quote}"}</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def xsystem command, opts = nil</div><div class='add'>+    env, command = expand_command(command)</div><div class='ctx'>     Logging::open do</div><div class='del'>-      puts command.quote</div><div class='add'>+      puts [env_quote(env), command.quote].join(' ')</div><div class='ctx'>       if opts and opts[:werror]</div><div class='ctx'>         result = nil</div><div class='ctx'>         Logging.postpone do |log|</div><div class='del'>-          output = IO.popen(libpath_env, command, &amp;:read)</div><div class='add'>+          output = IO.popen(env, command, &amp;:read)</div><div class='ctx'>           result = ($?.success? and File.zero?(log.path))</div><div class='ctx'>           output</div><div class='ctx'>         end</div><div class='ctx'>         result</div><div class='ctx'>       else</div><div class='del'>-        system(libpath_env, command)</div><div class='add'>+        system(env, *command)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def xpopen command, *mode, &amp;block</div><div class='add'>+    env, commands = expand_command(command)</div><div class='add'>+    command = [env_quote(env), command].join(' ')</div><div class='ctx'>     Logging::open do</div><div class='ctx'>       case mode[0]</div><div class='del'>-      when nil, /^r/</div><div class='add'>+      when nil, Hash, /^r/</div><div class='ctx'>         puts "#{command} |"</div><div class='ctx'>       else</div><div class='ctx'>         puts "| #{command}"</div><div class='ctx'>       end</div><div class='del'>-      IO.popen(libpath_env, command, *mode, &amp;block)</div><div class='add'>+      IO.popen(env, commands, *mode, &amp;block)</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -434,6 +453,10 @@ EOM</div><div class='ctx'> EOM</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='add'>+  def conftest_source</div><div class='add'>+    CONFTEST_C</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'>   def create_tmpsrc(src)</div><div class='ctx'>     src = "#{COMMON_HEADERS}\n#{src}"</div><div class='ctx'>     src = yield(src) if block_given?</div><div class='hunk'>@@ -442,7 +465,7 @@ EOM</div><div class='ctx'>     src.sub!(/[^\n]\z/, "\\&amp;\n")</div><div class='ctx'>     count = 0</div><div class='ctx'>     begin</div><div class='del'>-      open(CONFTEST_C, "wb") do |cfile|</div><div class='add'>+      File.open(conftest_source, "wb") do |cfile|</div><div class='ctx'>         cfile.print src</div><div class='ctx'>       end</div><div class='ctx'>     rescue Errno::EACCES</div><div class='hunk'>@@ -477,10 +500,10 @@ MSG</div><div class='ctx'>     end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def link_command(ldflags, opt="", libpath=$DEFLIBPATH|$LIBPATH)</div><div class='add'>+  def link_config(ldflags, opt="", libpath=$DEFLIBPATH|$LIBPATH)</div><div class='ctx'>     librubyarg = $extmk ? $LIBRUBYARG_STATIC : "$(LIBRUBYARG)"</div><div class='ctx'>     conf = RbConfig::CONFIG.merge('hdrdir' =&gt; $hdrdir.quote,</div><div class='del'>-                                  'src' =&gt; "#{CONFTEST_C}",</div><div class='add'>+                                  'src' =&gt; "#{conftest_source}",</div><div class='ctx'>                                   'arch_hdrdir' =&gt; $arch_hdrdir.quote,</div><div class='ctx'>                                   'top_srcdir' =&gt; $top_srcdir.quote,</div><div class='ctx'>                                   'INCFLAGS' =&gt; "#$INCFLAGS",</div><div class='hunk'>@@ -491,21 +514,29 @@ MSG</div><div class='ctx'>                                   'LOCAL_LIBS' =&gt; "#$LOCAL_LIBS #$libs",</div><div class='ctx'>                                   'LIBS' =&gt; "#{librubyarg} #{opt} #$LIBS")</div><div class='ctx'>     conf['LIBPATH'] = libpathflag(libpath.map {|s| RbConfig::expand(s.dup, conf)})</div><div class='add'>+    conf</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def link_command(ldflags, *opts)</div><div class='add'>+    conf = link_config(ldflags, *opts)</div><div class='ctx'>     RbConfig::expand(TRY_LINK.dup, conf)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def cc_command(opt="")</div><div class='add'>+  def cc_config(opt="")</div><div class='ctx'>     conf = RbConfig::CONFIG.merge('hdrdir' =&gt; $hdrdir.quote, 'srcdir' =&gt; $srcdir.quote,</div><div class='ctx'>                                   'arch_hdrdir' =&gt; $arch_hdrdir.quote,</div><div class='ctx'>                                   'top_srcdir' =&gt; $top_srcdir.quote)</div><div class='add'>+    conf</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def cc_command(opt="")</div><div class='add'>+    conf = cc_config(opt)</div><div class='ctx'>     RbConfig::expand("$(CC) #$INCFLAGS #$CPPFLAGS #$CFLAGS #$ARCH_FLAG #{opt} -c #{CONFTEST_C}",</div><div class='ctx'>                      conf)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def cpp_command(outfile, opt="")</div><div class='del'>-    conf = RbConfig::CONFIG.merge('hdrdir' =&gt; $hdrdir.quote, 'srcdir' =&gt; $srcdir.quote,</div><div class='del'>-                                  'arch_hdrdir' =&gt; $arch_hdrdir.quote,</div><div class='del'>-                                  'top_srcdir' =&gt; $top_srcdir.quote)</div><div class='add'>+    conf = cc_config(opt)</div><div class='ctx'>     if $universal and (arch_flag = conf['ARCH_FLAG']) and !arch_flag.empty?</div><div class='ctx'>       conf['ARCH_FLAG'] = arch_flag.gsub(/(?:\G|\s)-arch\s+\S+/, '')</div><div class='ctx'>     end</div><div class='hunk'>@@ -604,7 +635,7 @@ MSG</div><div class='ctx'>     MakeMakefile.rm_f "#{CONFTEST}*"</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  alias_method :try_header, (config_string('try_header') || :try_cpp)</div><div class='add'>+  alias try_header try_compile</div><div class='ctx'> </div><div class='ctx'>   def cpp_include(header)</div><div class='ctx'>     if header</div><div class='hunk'>@@ -649,16 +680,6 @@ MSG</div><div class='ctx'>     try_compile(MAIN_DOES_NOTHING, flags, {:werror =&gt; true}.update(opts))</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  def append_cflags(flags, *opts)</div><div class='del'>-    Array(flags).each do |flag|</div><div class='del'>-      if checking_for("whether #{flag} is accepted as CFLAGS") {</div><div class='del'>-           try_cflags(flag, *opts)</div><div class='del'>-         }</div><div class='del'>-        $CFLAGS &lt;&lt; " " &lt;&lt; flag</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='ctx'>   def with_ldflags(flags)</div><div class='ctx'>     ldflags = $LDFLAGS</div><div class='ctx'>     $LDFLAGS = flags.dup</div><div class='hunk'>@@ -758,11 +779,20 @@ int main() {printf("%"PRI_CONFTEST_PREFIX"#{neg ? 'd' : 'u'}\\n", conftest_const</div><div class='ctx'>   #             files.</div><div class='ctx'>   def try_func(func, libs, headers = nil, opt = "", &amp;b)</div><div class='ctx'>     headers = cpp_include(headers)</div><div class='add'>+    prepare = String.new</div><div class='ctx'>     case func</div><div class='ctx'>     when /^&amp;/</div><div class='ctx'>       decltype = proc {|x|"const volatile void *#{x}"}</div><div class='ctx'>     when /\)$/</div><div class='del'>-      call = func</div><div class='add'>+      strvars = []</div><div class='add'>+      call = func.gsub(/""/) {</div><div class='add'>+        v = "s#{strvars.size + 1}"</div><div class='add'>+        strvars &lt;&lt; v</div><div class='add'>+        v</div><div class='add'>+      }</div><div class='add'>+      unless strvars.empty?</div><div class='add'>+        prepare &lt;&lt; "char " &lt;&lt; strvars.map {|v| "#{v}[1024]"}.join(", ") &lt;&lt; "; "</div><div class='add'>+      end</div><div class='ctx'>     when nil</div><div class='ctx'>       call = ""</div><div class='ctx'>     else</div><div class='hunk'>@@ -772,7 +802,7 @@ int main() {printf("%"PRI_CONFTEST_PREFIX"#{neg ? 'd' : 'u'}\\n", conftest_const</div><div class='ctx'>     if opt and !opt.empty?</div><div class='ctx'>       [[:to_str], [:join, " "], [:to_s]].each do |meth, *args|</div><div class='ctx'>         if opt.respond_to?(meth)</div><div class='del'>-          break opt = opt.send(meth, *args)</div><div class='add'>+          break opt = opt.__send__(meth, *args)</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>       opt = "#{opt} #{libs}"</div><div class='hunk'>@@ -792,7 +822,7 @@ SRC</div><div class='ctx'> extern int t(void);</div><div class='ctx'> #{MAIN_DOES_NOTHING 't'}</div><div class='ctx'> #{"extern void #{call};" if decltype}</div><div class='del'>-int t(void) { #{call}; return 0; }</div><div class='add'>+int t(void) { #{prepare}#{call}; return 0; }</div><div class='ctx'> SRC</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -970,7 +1000,7 @@ SRC</div><div class='ctx'>       if noun</div><div class='ctx'>         [[:to_str], [:join, ","], [:to_s]].each do |meth, *args|</div><div class='ctx'>           if noun.respond_to?(meth)</div><div class='del'>-            break noun = noun.send(meth, *args)</div><div class='add'>+            break noun = noun.__send__(meth, *args)</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='ctx'>         unless noun.empty?</div><div class='hunk'>@@ -984,6 +1014,21 @@ SRC</div><div class='ctx'> </div><div class='ctx'>   # :startdoc:</div><div class='ctx'> </div><div class='add'>+  # Check whether each given C compiler flag is acceptable and append it</div><div class='add'>+  # to &lt;tt&gt;$CFLAGS&lt;/tt&gt; if so.</div><div class='add'>+  #</div><div class='add'>+  # [+flags+] a C compiler flag as a +String+ or an +Array+ of them</div><div class='add'>+  #</div><div class='add'>+  def append_cflags(flags, *opts)</div><div class='add'>+    Array(flags).each do |flag|</div><div class='add'>+      if checking_for("whether #{flag} is accepted as CFLAGS") {</div><div class='add'>+           try_cflags(flag, *opts)</div><div class='add'>+         }</div><div class='add'>+        $CFLAGS &lt;&lt; " " &lt;&lt; flag</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='ctx'>   # Returns whether or not +macro+ is defined either in the common header</div><div class='ctx'>   # files or within any +headers+ you provide.</div><div class='ctx'>   #</div><div class='hunk'>@@ -1007,6 +1052,7 @@ SRC</div><div class='ctx'>   # &lt;code&gt;--with-FOOlib&lt;/code&gt; configuration option.</div><div class='ctx'>   #</div><div class='ctx'>   def have_library(lib, func = nil, headers = nil, opt = "", &amp;b)</div><div class='add'>+    dir_config(lib)</div><div class='ctx'>     lib = with_config(lib+'lib', lib)</div><div class='ctx'>     checking_for checking_message(func &amp;&amp; func.funcall_style, LIBARG%lib, opt) do</div><div class='ctx'>       if COMMON_LIBS.include?(lib)</div><div class='hunk'>@@ -1032,8 +1078,9 @@ SRC</div><div class='ctx'>   # library paths searched and linked against.</div><div class='ctx'>   #</div><div class='ctx'>   def find_library(lib, func, *paths, &amp;b)</div><div class='add'>+    dir_config(lib)</div><div class='ctx'>     lib = with_config(lib+'lib', lib)</div><div class='del'>-    paths = paths.collect {|path| path.split(File::PATH_SEPARATOR)}.flatten</div><div class='add'>+    paths = paths.flat_map {|path| path.split(File::PATH_SEPARATOR)}</div><div class='ctx'>     checking_for checking_message(func &amp;&amp; func.funcall_style, LIBARG%lib) do</div><div class='ctx'>       libpath = $LIBPATH</div><div class='ctx'>       libs = append_library($libs, lib)</div><div class='hunk'>@@ -1105,6 +1152,7 @@ SRC</div><div class='ctx'>   # +HAVE_FOO_H+ preprocessor macro would be passed to the compiler.</div><div class='ctx'>   #</div><div class='ctx'>   def have_header(header, preheaders = nil, opt = "", &amp;b)</div><div class='add'>+    dir_config(header[/.*?(?=\/)|.*?(?=\.)/])</div><div class='ctx'>     checking_for header do</div><div class='ctx'>       if try_header(cpp_include(preheaders)+cpp_include(header), opt, &amp;b)</div><div class='ctx'>         $defs.push(format("-DHAVE_%s", header.tr_cpp))</div><div class='hunk'>@@ -1308,8 +1356,10 @@ SRC</div><div class='ctx'> </div><div class='ctx'>   # :stopdoc:</div><div class='ctx'>   STRING_OR_FAILED_FORMAT = "%s"</div><div class='del'>-  def STRING_OR_FAILED_FORMAT.%(x) # :nodoc:</div><div class='del'>-    x ? super : "failed"</div><div class='add'>+  class &lt;&lt; STRING_OR_FAILED_FORMAT # :nodoc:</div><div class='add'>+    def %(x)</div><div class='add'>+      x ? super : "failed"</div><div class='add'>+    end</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'>   def typedef_expr(type, headers)</div><div class='hunk'>@@ -1712,8 +1762,8 @@ SRC</div><div class='ctx'>     hdr &lt;&lt; "#endif\n"</div><div class='ctx'>     hdr = hdr.join("")</div><div class='ctx'>     log_src(hdr, "#{header} is")</div><div class='del'>-    unless (IO.read(header) == hdr rescue false)</div><div class='del'>-      open(header, "wb") do |hfile|</div><div class='add'>+    unless (File.read(header) == hdr rescue false)</div><div class='add'>+      File.open(header, "wb") do |hfile|</div><div class='ctx'>         hfile.write(hdr)</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -1748,6 +1798,10 @@ SRC</div><div class='ctx'>   # application.</div><div class='ctx'>   #</div><div class='ctx'>   def dir_config(target, idefault=nil, ldefault=nil)</div><div class='add'>+    if conf = $config_dirs[target]</div><div class='add'>+      return conf</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     if dir = with_config(target + "-dir", (idefault unless ldefault))</div><div class='ctx'>       defaults = Array === dir ? dir : dir.split(File::PATH_SEPARATOR)</div><div class='ctx'>       idefault = ldefault = nil</div><div class='hunk'>@@ -1778,57 +1832,62 @@ SRC</div><div class='ctx'>     end</div><div class='ctx'>     $LIBPATH = ldirs | $LIBPATH</div><div class='ctx'> </div><div class='del'>-    [idir, ldir]</div><div class='add'>+    $config_dirs[target] = [idir, ldir]</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # Returns compile/link information about an installed library in a</div><div class='del'>-  # tuple of &lt;code&gt;[cflags, ldflags, libs]&lt;/code&gt;, by using the</div><div class='del'>-  # command found first in the following commands:</div><div class='add'>+  # Returns compile/link information about an installed library in a tuple of &lt;code&gt;[cflags,</div><div class='add'>+  # ldflags, libs]&lt;/code&gt;, by using the command found first in the following commands:</div><div class='ctx'>   #</div><div class='ctx'>   # 1. If &lt;code&gt;--with-{pkg}-config={command}&lt;/code&gt; is given via</div><div class='del'>-  #    command line option: &lt;code&gt;{command} {option}&lt;/code&gt;</div><div class='add'>+  #    command line option: &lt;code&gt;{command} {options}&lt;/code&gt;</div><div class='ctx'>   #</div><div class='del'>-  # 2. &lt;code&gt;{pkg}-config {option}&lt;/code&gt;</div><div class='add'>+  # 2. &lt;code&gt;{pkg}-config {options}&lt;/code&gt;</div><div class='ctx'>   #</div><div class='del'>-  # 3. &lt;code&gt;pkg-config {option} {pkg}&lt;/code&gt;</div><div class='add'>+  # 3. &lt;code&gt;pkg-config {options} {pkg}&lt;/code&gt;</div><div class='ctx'>   #</div><div class='del'>-  # Where {option} is, for instance, &lt;code&gt;--cflags&lt;/code&gt;.</div><div class='add'>+  # Where +options+ is the option name without dashes, for instance &lt;code&gt;"cflags"&lt;/code&gt; for the</div><div class='add'>+  # &lt;code&gt;--cflags&lt;/code&gt; flag.</div><div class='ctx'>   #</div><div class='del'>-  # The values obtained are appended to +$CFLAGS+, +$LDFLAGS+ and</div><div class='del'>-  # +$libs+.</div><div class='add'>+  # The values obtained are appended to &lt;code&gt;$INCFLAGS&lt;/code&gt;, &lt;code&gt;$CFLAGS&lt;/code&gt;,</div><div class='add'>+  # &lt;code&gt;$LDFLAGS&lt;/code&gt; and &lt;code&gt;$libs&lt;/code&gt;.</div><div class='ctx'>   #</div><div class='del'>-  # If an &lt;code&gt;option&lt;/code&gt; argument is given, the config command is</div><div class='del'>-  # invoked with the option and a stripped output string is returned</div><div class='del'>-  # without modifying any of the global values mentioned above.</div><div class='del'>-  def pkg_config(pkg, option=nil)</div><div class='add'>+  # If one or more &lt;code&gt;options&lt;/code&gt; argument is given, the config command is</div><div class='add'>+  # invoked with the options and a stripped output string is returned without</div><div class='add'>+  # modifying any of the global values mentioned above.</div><div class='add'>+  def pkg_config(pkg, *options)</div><div class='add'>+    _, ldir = dir_config(pkg)</div><div class='add'>+    if ldir</div><div class='add'>+      pkg_config_path = "#{ldir}/pkgconfig"</div><div class='add'>+      if File.directory?(pkg_config_path)</div><div class='add'>+        Logging.message("PKG_CONFIG_PATH = %s\n", pkg_config_path)</div><div class='add'>+        envs = ["PKG_CONFIG_PATH"=&gt;[pkg_config_path, ENV["PKG_CONFIG_PATH"]].compact.join(File::PATH_SEPARATOR)]</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='ctx'>     if pkgconfig = with_config("#{pkg}-config") and find_executable0(pkgconfig)</div><div class='del'>-      # iff package specific config command is given</div><div class='add'>+      # if and only if package specific config command is given</div><div class='ctx'>     elsif ($PKGCONFIG ||=</div><div class='del'>-           (pkgconfig = with_config("pkg-config", ("pkg-config" unless CROSS_COMPILING))) &amp;&amp;</div><div class='add'>+           (pkgconfig = with_config("pkg-config") {config_string("PKG_CONFIG") || "pkg-config"}) &amp;&amp;</div><div class='ctx'>            find_executable0(pkgconfig) &amp;&amp; pkgconfig) and</div><div class='del'>-        xsystem("#{$PKGCONFIG} --exists #{pkg}")</div><div class='add'>+        xsystem([*envs, $PKGCONFIG, "--exists", pkg])</div><div class='ctx'>       # default to pkg-config command</div><div class='ctx'>       pkgconfig = $PKGCONFIG</div><div class='del'>-      get = proc {|opt|</div><div class='del'>-        opt = xpopen("#{$PKGCONFIG} --#{opt} #{pkg}", err:[:child, :out], &amp;:read)</div><div class='del'>-        Logging.open {puts opt.each_line.map{|s|"=&gt; #{s.inspect}"}}</div><div class='del'>-        opt.strip if $?.success?</div><div class='del'>-      }</div><div class='add'>+      args = [pkg]</div><div class='ctx'>     elsif find_executable0(pkgconfig = "#{pkg}-config")</div><div class='ctx'>       # default to package specific config command, as a last resort.</div><div class='ctx'>     else</div><div class='ctx'>       pkgconfig = nil</div><div class='ctx'>     end</div><div class='ctx'>     if pkgconfig</div><div class='del'>-      get ||= proc {|opt|</div><div class='del'>-        opt = xpopen("#{pkgconfig} --#{opt}", err:[:child, :out], &amp;:read)</div><div class='del'>-        Logging.open {puts opt.each_line.map{|s|"=&gt; #{s.inspect}"}}</div><div class='del'>-        opt.strip if $?.success?</div><div class='add'>+      get = proc {|opts|</div><div class='add'>+        opts = Array(opts).map { |o| "--#{o}" }</div><div class='add'>+        opts = xpopen([*envs, pkgconfig, *opts, *args], err:[:child, :out], &amp;:read)</div><div class='add'>+        Logging.open {puts opts.each_line.map{|s|"=&gt; #{s.inspect}"}}</div><div class='add'>+        opts.strip if $?.success?</div><div class='ctx'>       }</div><div class='ctx'>     end</div><div class='ctx'>     orig_ldflags = $LDFLAGS</div><div class='del'>-    if get and option</div><div class='del'>-      get[option]</div><div class='add'>+    if get and !options.empty?</div><div class='add'>+      get[options]</div><div class='ctx'>     elsif get and try_ldflags(ldflags = get['libs'])</div><div class='ctx'>       if incflags = get['cflags-only-I']</div><div class='ctx'>         $INCFLAGS &lt;&lt; " " &lt;&lt; incflags</div><div class='hunk'>@@ -1850,9 +1909,9 @@ SRC</div><div class='ctx'> </div><div class='ctx'>       $LDFLAGS = [orig_ldflags, ldflags].join(' ')</div><div class='ctx'>       Logging::message "package configuration for %s\n", pkg</div><div class='del'>-      Logging::message "cflags: %s\nldflags: %s\nlibs: %s\n\n",</div><div class='del'>-                       cflags, ldflags, libs</div><div class='del'>-      [cflags, ldflags, libs]</div><div class='add'>+      Logging::message "incflags: %s\ncflags: %s\nldflags: %s\nlibs: %s\n\n",</div><div class='add'>+                       incflags, cflags, ldflags, libs</div><div class='add'>+      [[incflags, cflags].join(' '), ldflags, libs]</div><div class='ctx'>     else</div><div class='ctx'>       Logging::message "package configuration for %s is not found\n", pkg</div><div class='ctx'>       nil</div><div class='hunk'>@@ -1889,7 +1948,7 @@ SRC</div><div class='ctx'>         path.sub!(/\A([A-Za-z]):(?=\/)/, '/\1')</div><div class='ctx'>         path</div><div class='ctx'>       end</div><div class='del'>-    when 'cygwin'</div><div class='add'>+    when 'cygwin', 'msys'</div><div class='ctx'>       if CONFIG['target_os'] != 'cygwin'</div><div class='ctx'>         def mkintpath(path)</div><div class='ctx'>           IO.popen(["cygpath", "-u", path], &amp;:read).chomp</div><div class='hunk'>@@ -1905,13 +1964,15 @@ SRC</div><div class='ctx'> </div><div class='ctx'>   def configuration(srcdir)</div><div class='ctx'>     mk = []</div><div class='add'>+    CONFIG['MKMF_VERBOSE'] ||= "0"</div><div class='ctx'>     vpath = $VPATH.dup</div><div class='ctx'>     CONFIG["hdrdir"] ||= $hdrdir</div><div class='ctx'>     mk &lt;&lt; %{</div><div class='ctx'> SHELL = /bin/sh</div><div class='ctx'> </div><div class='ctx'> # V=0 quiet, V=1 verbose.  other values don't work.</div><div class='del'>-V = 0</div><div class='add'>+V = #{CONFIG['MKMF_VERBOSE']}</div><div class='add'>+V0 = $(V:0=)</div><div class='ctx'> Q1 = $(V:1=)</div><div class='ctx'> Q = $(Q1:0=@)</div><div class='ctx'> ECHO1 = $(V:1=@ #{CONFIG['NULLCMD']})</div><div class='hunk'>@@ -1923,7 +1984,7 @@ NULLCMD = #{CONFIG['NULLCMD']}</div><div class='ctx'> srcdir = #{srcdir.gsub(/\$\((srcdir)\)|\$\{(srcdir)\}/) {mkintpath(CONFIG[$1||$2]).unspace}}</div><div class='ctx'> topdir = #{mkintpath(topdir = $extmk ? CONFIG["topdir"] : $topdir).unspace}</div><div class='ctx'> hdrdir = #{(hdrdir = CONFIG["hdrdir"]) == topdir ? "$(topdir)" : mkintpath(hdrdir).unspace}</div><div class='del'>-arch_hdrdir = #{$arch_hdrdir.quote}</div><div class='add'>+arch_hdrdir = #{mkintpath($arch_hdrdir).unspace}</div><div class='ctx'> PATH_SEPARATOR = #{CONFIG['PATH_SEPARATOR']}</div><div class='ctx'> VPATH = #{vpath.join(CONFIG['PATH_SEPARATOR'])}</div><div class='ctx'> }</div><div class='hunk'>@@ -1951,7 +2012,7 @@ VPATH = #{vpath.join(CONFIG['PATH_SEPARATOR'])}</div><div class='ctx'>     else</div><div class='ctx'>       sep = ""</div><div class='ctx'>     end</div><div class='del'>-    possible_command = (proc {|s| s if /top_srcdir/ !~ s} unless $extmk)</div><div class='add'>+    possible_command = (proc {|s| s if /top_srcdir|tooldir/ !~ s} unless $extmk)</div><div class='ctx'>     extconf_h = $extconf_h ? "-DRUBY_EXTCONF_H=\\\"$(RUBY_EXTCONF_H)\\\" " : $defs.join(" ") &lt;&lt; " "</div><div class='ctx'>     headers = %w[</div><div class='ctx'>       $(hdrdir)/ruby.h</div><div class='hunk'>@@ -2015,10 +2076,15 @@ sitearch = #{CONFIG['sitearch']}</div><div class='ctx'> ruby_version = #{RbConfig::CONFIG['ruby_version']}</div><div class='ctx'> ruby = #{$ruby.sub(%r[\A#{Regexp.quote(RbConfig::CONFIG['bindir'])}(?=/|\z)]) {'$(bindir)'}}</div><div class='ctx'> RUBY = $(ruby#{sep})</div><div class='add'>+BUILTRUBY = #{if defined?($builtruby) &amp;&amp; $builtruby</div><div class='add'>+    $builtruby</div><div class='add'>+  else</div><div class='add'>+    File.join('$(bindir)', CONFIG["RUBY_INSTALL_NAME"] + CONFIG['EXEEXT'])</div><div class='add'>+  end}</div><div class='ctx'> ruby_headers = #{headers.join(' ')}</div><div class='ctx'> </div><div class='ctx'> RM = #{config_string('RM', &amp;possible_command) || '$(RUBY) -run -e rm -- -f'}</div><div class='del'>-RM_RF = #{'$(RUBY) -run -e rm -- -rf'}</div><div class='add'>+RM_RF = #{config_string('RMALL', &amp;possible_command) || '$(RUBY) -run -e rm -- -rf'}</div><div class='ctx'> RMDIRS = #{config_string('RMDIRS', &amp;possible_command) || '$(RUBY) -run -e rmdir -- -p'}</div><div class='ctx'> MAKEDIRS = #{config_string('MAKEDIRS', &amp;possible_command) || '@$(RUBY) -run -e mkdir -- -p'}</div><div class='ctx'> INSTALL = #{config_string('INSTALL', &amp;possible_command) || '@$(RUBY) -run -e install -- -vp'}</div><div class='hunk'>@@ -2049,7 +2115,7 @@ preload = #{defined?($preload) &amp;&amp; $preload ? $preload.join(' ') : ''}</div><div class='ctx'>   end</div><div class='ctx'>   # :startdoc:</div><div class='ctx'> </div><div class='del'>-  # creates a stub Makefile.</div><div class='add'>+  # Creates a stub Makefile.</div><div class='ctx'>   #</div><div class='ctx'>   def dummy_makefile(srcdir)</div><div class='ctx'>     configuration(srcdir) &lt;&lt; &lt;&lt;RULES &lt;&lt; CLEANINGS</div><div class='hunk'>@@ -2115,7 +2181,6 @@ RULES</div><div class='ctx'>       line.gsub!(/\.o\b/, ".#{$OBJEXT}")</div><div class='ctx'>       line.gsub!(/\{\$\(VPATH\)\}/, "") unless $nmake</div><div class='ctx'>       line.gsub!(/\$\((?:hdr|top)dir\)\/config.h/, $config_h)</div><div class='del'>-      line.gsub!(%r"\$\(hdrdir\)/(?!ruby(?![^:;/\s]))(?=[-\w]+\.h)", '\&amp;ruby/')</div><div class='ctx'>       if $nmake &amp;&amp; /\A\s*\$\(RM|COPY\)/ =~ line</div><div class='ctx'>         line.gsub!(%r"[-\w\./]{2,}"){$&amp;.tr("/", "\\")}</div><div class='ctx'>         line.gsub!(/(\$\((?!RM|COPY)[^:)]+)(?=\))/, '\1:/=\\')</div><div class='hunk'>@@ -2204,7 +2269,7 @@ RULES</div><div class='ctx'>     message "creating Makefile\n"</div><div class='ctx'>     MakeMakefile.rm_f "#{CONFTEST}*"</div><div class='ctx'>     if CONFIG["DLEXT"] == $OBJEXT</div><div class='del'>-      for lib in libs = $libs.split</div><div class='add'>+      for lib in libs = $libs.split(' ')</div><div class='ctx'>         lib.sub!(/-l(.*)/, %%"lib\\1.#{$LIBEXT}"%)</div><div class='ctx'>       end</div><div class='ctx'>       $defs.push(format("-DEXTLIB='%s'", libs.join(",")))</div><div class='hunk'>@@ -2221,7 +2286,7 @@ RULES</div><div class='ctx'>     RbConfig.expand(srcdir = srcprefix.dup)</div><div class='ctx'> </div><div class='ctx'>     ext = ".#{$OBJEXT}"</div><div class='del'>-    orig_srcs = Dir[File.join(srcdir, "*.{#{SRC_EXT.join(%q{,})}}")].sort</div><div class='add'>+    orig_srcs = Dir[File.join(srcdir, "*.{#{SRC_EXT.join(%q{,})}}")]</div><div class='ctx'>     if not $objs</div><div class='ctx'>       srcs = $srcs || orig_srcs</div><div class='ctx'>       $objs = []</div><div class='hunk'>@@ -2231,7 +2296,7 @@ RULES</div><div class='ctx'>         h</div><div class='ctx'>       }</div><div class='ctx'>       unless objs.delete_if {|b, f| f.size == 1}.empty?</div><div class='del'>-        dups = objs.sort.map {|b, f|</div><div class='add'>+        dups = objs.map {|b, f|</div><div class='ctx'>           "#{b[/.*\./]}{#{f.collect {|n| n[/([^.]+)\z/]}.join(',')}}"</div><div class='ctx'>         }</div><div class='ctx'>         abort "source files duplication - #{dups.join(", ")}"</div><div class='hunk'>@@ -2313,15 +2378,23 @@ TIMESTAMP_DIR = #{$extout &amp;&amp; $extmk ? '$(extout)/.timestamp' : '.'}</div><div class='ctx'>     install_dirs.each {|d| conf &lt;&lt; ("%-14s= %s\n" % d) if /^[[:upper:]]/ =~ d[0]}</div><div class='ctx'>     sodir = $extout ? '$(TARGET_SO_DIR)' : '$(RUBYARCHDIR)'</div><div class='ctx'>     n = '$(TARGET_SO_DIR)$(TARGET)'</div><div class='add'>+    cleanobjs = ["$(OBJS)"]</div><div class='add'>+    if $extmk</div><div class='add'>+      %w[bc i s].each {|ex| cleanobjs &lt;&lt; "$(OBJS:.#{$OBJEXT}=.#{ex})"}</div><div class='add'>+    end</div><div class='add'>+    if target</div><div class='add'>+      config_string('cleanobjs') {|t| cleanobjs &lt;&lt; t.gsub(/\$\*/, "$(TARGET)#{deffile ? '-$(arch)': ''}")}</div><div class='add'>+    end</div><div class='ctx'>     conf &lt;&lt; "\</div><div class='ctx'> TARGET_SO_DIR =#{$extout ? " $(RUBYARCHDIR)/" : ''}</div><div class='ctx'> TARGET_SO     = $(TARGET_SO_DIR)$(DLLIB)</div><div class='ctx'> CLEANLIBS     = #{'$(TARGET_SO) ' if target}#{config_string('cleanlibs') {|t| t.gsub(/\$\*/) {n}}}</div><div class='del'>-CLEANOBJS     = *.#{$OBJEXT} #{config_string('cleanobjs') {|t| t.gsub(/\$\*/, "$(TARGET)#{deffile ? '-$(arch)': ''}")} if target} *.bak</div><div class='add'>+CLEANOBJS     = #{cleanobjs.join(' ')} *.bak</div><div class='add'>+TARGET_SO_DIR_TIMESTAMP = #{timestamp_file(sodir, target_prefix)}</div><div class='ctx'> " #"</div><div class='ctx'> </div><div class='ctx'>     conf = yield(conf) if block_given?</div><div class='del'>-    mfile = open("Makefile", "wb")</div><div class='add'>+    mfile = File.open("Makefile", "wb")</div><div class='ctx'>     mfile.puts(conf)</div><div class='ctx'>     mfile.print "</div><div class='ctx'> all:    #{$extout ? "install" : target ? "$(DLLIB)" : "Makefile"}</div><div class='hunk'>@@ -2351,7 +2424,7 @@ static: #{$extmk &amp;&amp; !$static ? "all" : "$(STATIC_LIB)#{$extout ? " install-rb" :</div><div class='ctx'>     if target</div><div class='ctx'>       f = "$(DLLIB)"</div><div class='ctx'>       dest = "$(TARGET_SO)"</div><div class='del'>-      stamp = timestamp_file(dir, target_prefix)</div><div class='add'>+      stamp = '$(TARGET_SO_DIR_TIMESTAMP)'</div><div class='ctx'>       if $extout</div><div class='ctx'>         mfile.puts dest</div><div class='ctx'>         mfile.print "clean-so::\n"</div><div class='hunk'>@@ -2420,7 +2493,9 @@ static: #{$extmk &amp;&amp; !$static ? "all" : "$(STATIC_LIB)#{$extout ? " install-rb" :</div><div class='ctx'>         end</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='del'>-    dirs.unshift(sodir) if target and !dirs.include?(sodir)</div><div class='add'>+    if target and !dirs.include?(sodir)</div><div class='add'>+      mfile.print "$(TARGET_SO_DIR_TIMESTAMP):\n\t$(Q) $(MAKEDIRS) $(@D) #{sodir}\n\t$(Q) $(TOUCH) $@\n"</div><div class='add'>+    end</div><div class='ctx'>     dirs.each do |d|</div><div class='ctx'>       t = timestamp_file(d, target_prefix)</div><div class='ctx'>       mfile.print "#{t}:\n\t$(Q) $(MAKEDIRS) $(@D) #{d}\n\t$(Q) $(TOUCH) $@\n"</div><div class='hunk'>@@ -2464,7 +2539,7 @@ site-install-rb: install-rb</div><div class='ctx'>     mfile.print "$(TARGET_SO): "</div><div class='ctx'>     mfile.print "$(DEFFILE) " if makedef</div><div class='ctx'>     mfile.print "$(OBJS) Makefile"</div><div class='del'>-    mfile.print " #{timestamp_file(sodir, target_prefix)}" if $extout</div><div class='add'>+    mfile.print " $(TARGET_SO_DIR_TIMESTAMP)" if $extout</div><div class='ctx'>     mfile.print "\n"</div><div class='ctx'>     mfile.print "\t$(ECHO) linking shared-object #{target_prefix.sub(/\A\/(.*)/, '\1/')}$(DLLIB)\n"</div><div class='ctx'>     mfile.print "\t-$(Q)$(RM) $(@#{sep})\n"</div><div class='hunk'>@@ -2478,7 +2553,7 @@ site-install-rb: install-rb</div><div class='ctx'>       mfile.print "$(ECHO) linking static-library $(@#{rsep})\n\t$(Q) "</div><div class='ctx'>       mfile.print "$(AR) #{config_string('ARFLAGS') || 'cru '}$@ $(OBJS)"</div><div class='ctx'>       config_string('RANLIB') do |ranlib|</div><div class='del'>-        mfile.print "\n\t-$(Q)#{ranlib} $(@) 2&gt; /dev/null || true"</div><div class='add'>+        mfile.print "\n\t-$(Q)#{ranlib} $(@)#{$ignore_error}"</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'>     mfile.print "\n\n"</div><div class='hunk'>@@ -2508,9 +2583,11 @@ site-install-rb: install-rb</div><div class='ctx'>     $enable_shared = config['ENABLE_SHARED'] == 'yes'</div><div class='ctx'>     $defs = []</div><div class='ctx'>     $extconf_h = nil</div><div class='add'>+    $config_dirs = {}</div><div class='add'>+</div><div class='ctx'>     if $warnflags = CONFIG['warnflags'] and CONFIG['GCC'] == 'yes'</div><div class='ctx'>       # turn warnings into errors only for bundled extensions.</div><div class='del'>-      config['warnflags'] = $warnflags.gsub(/(\A|\s)-Werror[-=]/, '\1-W')</div><div class='add'>+      config['warnflags'] = $warnflags.gsub(/(?:\A|\s)-W\Kerror[-=](?!implicit-function-declaration)/, '')</div><div class='ctx'>       if /icc\z/ =~ config['CC']</div><div class='ctx'>         config['warnflags'].gsub!(/(\A|\s)-W(?:division-by-zero|deprecated-declarations)/, '\1')</div><div class='ctx'>       end</div><div class='hunk'>@@ -2532,6 +2609,7 @@ site-install-rb: install-rb</div><div class='ctx'>     $INCFLAGS &lt;&lt; " -I$(hdrdir)/ruby/backward" unless $extmk</div><div class='ctx'>     $INCFLAGS &lt;&lt; " -I$(hdrdir) -I$(srcdir)"</div><div class='ctx'>     $DLDFLAGS = with_config("dldflags", arg_config("DLDFLAGS", config["DLDFLAGS"])).dup</div><div class='add'>+    config_string("ADDITIONAL_DLDFLAGS") {|flags| $DLDFLAGS &lt;&lt; " " &lt;&lt; flags} unless $extmk</div><div class='ctx'>     $LIBEXT = config['LIBEXT'].dup</div><div class='ctx'>     $OBJEXT = config["OBJEXT"].dup</div><div class='ctx'>     $EXEEXT = config["EXEEXT"].dup</div><div class='hunk'>@@ -2566,6 +2644,7 @@ site-install-rb: install-rb</div><div class='ctx'>     $extout_prefix ||= nil</div><div class='ctx'> </div><div class='ctx'>     $arg_config.clear</div><div class='add'>+    $config_dirs.clear</div><div class='ctx'>     dir_config("opt")</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='hunk'>@@ -2726,7 +2805,7 @@ MESSAGE</div><div class='ctx'>   ##</div><div class='ctx'>   # A C main function which does no work</div><div class='ctx'> </div><div class='del'>-  MAIN_DOES_NOTHING = config_string('MAIN_DOES_NOTHING') || "int main(int argc, char **argv)\n{\n  return 0;\n}"</div><div class='add'>+  MAIN_DOES_NOTHING = config_string('MAIN_DOES_NOTHING') || "int main(int argc, char **argv)\n{\n  return !!argv[argc];\n}"</div><div class='ctx'>   UNIVERSAL_INTS = config_string('UNIVERSAL_INTS') {|s| Shellwords.shellwords(s)} ||</div><div class='ctx'>     %w[int short long long\ long]</div><div class='ctx'> </div><div class='hunk'>@@ -2741,22 +2820,72 @@ clean-rb-default::</div><div class='ctx'> clean-rb::</div><div class='ctx'> clean-so::</div><div class='ctx'> clean: clean-so clean-static clean-rb-default clean-rb</div><div class='del'>-\t\t-$(Q)$(RM) $(CLEANLIBS#{sep}) $(CLEANOBJS#{sep}) $(CLEANFILES#{sep}) .*.time</div><div class='add'>+\t\t-$(Q)$(RM_RF) $(CLEANLIBS#{sep}) $(CLEANOBJS#{sep}) $(CLEANFILES#{sep}) .*.time</div><div class='ctx'> </div><div class='ctx'> distclean-rb-default::</div><div class='ctx'> distclean-rb::</div><div class='ctx'> distclean-so::</div><div class='ctx'> distclean-static::</div><div class='ctx'> distclean: clean distclean-so distclean-static distclean-rb-default distclean-rb</div><div class='del'>-\t\t-$(Q)$(RM) Makefile $(RUBY_EXTCONF_H) #{CONFTEST}.* mkmf.log</div><div class='add'>+\t\t-$(Q)$(RM) Makefile $(RUBY_EXTCONF_H) #{CONFTEST}.* mkmf.log#{' exts.mk' if $extmk}</div><div class='ctx'> \t\t-$(Q)$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES#{sep})</div><div class='ctx'> \t\t-$(Q)$(RMDIRS) $(DISTCLEANDIRS#{sep})#{$ignore_error}</div><div class='ctx'> </div><div class='ctx'> realclean: distclean</div><div class='ctx'> "</div><div class='add'>+</div><div class='add'>+  @lang = Hash.new(self)</div><div class='add'>+</div><div class='add'>+  def self.[](name)</div><div class='add'>+    @lang.fetch(name)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def self.[]=(name, mod)</div><div class='add'>+    @lang[name] = mod</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  self["C++"] = Module.new do</div><div class='add'>+    include MakeMakefile</div><div class='add'>+    extend self</div><div class='add'>+</div><div class='add'>+    CONFTEST_CXX = "#{CONFTEST}.#{config_string('CXX_EXT') || CXX_EXT[0]}"</div><div class='add'>+</div><div class='add'>+    TRY_LINK_CXX = config_string('TRY_LINK_CXX') ||</div><div class='add'>+                   ((cmd = TRY_LINK.gsub(/\$\(C(?:C|(FLAGS))\)/, '$(CXX\1)')) != TRY_LINK &amp;&amp; cmd) ||</div><div class='add'>+                   "$(CXX) #{OUTFLAG}#{CONFTEST}#{$EXEEXT} $(INCFLAGS) $(CPPFLAGS) " \</div><div class='add'>+                   "$(CXXFLAGS) $(src) $(LIBPATH) $(LDFLAGS) $(ARCH_FLAG) $(LOCAL_LIBS) $(LIBS)"</div><div class='add'>+</div><div class='add'>+    def have_devel?</div><div class='add'>+      unless defined? @have_devel</div><div class='add'>+        @have_devel = true</div><div class='add'>+        @have_devel = try_link(MAIN_DOES_NOTHING)</div><div class='add'>+      end</div><div class='add'>+      @have_devel</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def conftest_source</div><div class='add'>+      CONFTEST_CXX</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def cc_command(opt="")</div><div class='add'>+      conf = cc_config(opt)</div><div class='add'>+      RbConfig::expand("$(CXX) #$INCFLAGS #$CPPFLAGS #$CXXFLAGS #$ARCH_FLAG #{opt} -c #{CONFTEST_CXX}",</div><div class='add'>+                       conf)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def link_command(ldflags, *opts)</div><div class='add'>+      conf = link_config(ldflags, *opts)</div><div class='add'>+      RbConfig::expand(TRY_LINK_CXX.dup, conf)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='ctx'> end</div><div class='ctx'> </div><div class='del'>-include MakeMakefile</div><div class='add'>+# MakeMakefile::Global = #</div><div class='add'>+m = Module.new {</div><div class='add'>+  include(MakeMakefile)</div><div class='add'>+  private(*MakeMakefile.public_instance_methods(false))</div><div class='add'>+}</div><div class='add'>+include m</div><div class='ctx'> </div><div class='ctx'> if not $extmk and /\A(extconf|makefile).rb\z/ =~ File.basename($0)</div><div class='ctx'>   END {mkmf_failed($0)}</div><div class='head'>diff --git a/lib/monitor.rb b/lib/monitor.rb<br/>deleted file mode 100644<br/>index 999795c3d0..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/monitor.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/monitor.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,323 +0,0 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='del'>-# = monitor.rb</div><div class='del'>-#</div><div class='del'>-# Copyright (C) 2001  Shugo Maeda &lt;shugo@ruby-lang.org&gt;</div><div class='del'>-#</div><div class='del'>-# This library is distributed under the terms of the Ruby license.</div><div class='del'>-# You can freely distribute/modify this library.</div><div class='del'>-#</div><div class='del'>-</div><div class='del'>-#</div><div class='del'>-# In concurrent programming, a monitor is an object or module intended to be</div><div class='del'>-# used safely by more than one thread.  The defining characteristic of a</div><div class='del'>-# monitor is that its methods are executed with mutual exclusion.  That is, at</div><div class='del'>-# each point in time, at most one thread may be executing any of its methods.</div><div class='del'>-# This mutual exclusion greatly simplifies reasoning about the implementation</div><div class='del'>-# of monitors compared to reasoning about parallel code that updates a data</div><div class='del'>-# structure.</div><div class='del'>-#</div><div class='del'>-# You can read more about the general principles on the Wikipedia page for</div><div class='del'>-# Monitors[http://en.wikipedia.org/wiki/Monitor_%28synchronization%29]</div><div class='del'>-#</div><div class='del'>-# == Examples</div><div class='del'>-#</div><div class='del'>-# === Simple object.extend</div><div class='del'>-#</div><div class='del'>-#   require 'monitor.rb'</div><div class='del'>-#</div><div class='del'>-#   buf = []</div><div class='del'>-#   buf.extend(MonitorMixin)</div><div class='del'>-#   empty_cond = buf.new_cond</div><div class='del'>-#</div><div class='del'>-#   # consumer</div><div class='del'>-#   Thread.start do</div><div class='del'>-#     loop do</div><div class='del'>-#       buf.synchronize do</div><div class='del'>-#         empty_cond.wait_while { buf.empty? }</div><div class='del'>-#         print buf.shift</div><div class='del'>-#       end</div><div class='del'>-#     end</div><div class='del'>-#   end</div><div class='del'>-#</div><div class='del'>-#   # producer</div><div class='del'>-#   while line = ARGF.gets</div><div class='del'>-#     buf.synchronize do</div><div class='del'>-#       buf.push(line)</div><div class='del'>-#       empty_cond.signal</div><div class='del'>-#     end</div><div class='del'>-#   end</div><div class='del'>-#</div><div class='del'>-# The consumer thread waits for the producer thread to push a line to buf</div><div class='del'>-# while &lt;tt&gt;buf.empty?&lt;/tt&gt;.  The producer thread (main thread) reads a</div><div class='del'>-# line from ARGF and pushes it into buf then calls &lt;tt&gt;empty_cond.signal&lt;/tt&gt;</div><div class='del'>-# to notify the consumer thread of new data.</div><div class='del'>-#</div><div class='del'>-# === Simple Class include</div><div class='del'>-#</div><div class='del'>-#   require 'monitor'</div><div class='del'>-#</div><div class='del'>-#   class SynchronizedArray &lt; Array</div><div class='del'>-#</div><div class='del'>-#     include MonitorMixin</div><div class='del'>-#</div><div class='del'>-#     def initialize(*args)</div><div class='del'>-#       super(*args)</div><div class='del'>-#     end</div><div class='del'>-#</div><div class='del'>-#     alias :old_shift :shift</div><div class='del'>-#     alias :old_unshift :unshift</div><div class='del'>-#</div><div class='del'>-#     def shift(n=1)</div><div class='del'>-#       self.synchronize do</div><div class='del'>-#         self.old_shift(n)</div><div class='del'>-#       end</div><div class='del'>-#     end</div><div class='del'>-#</div><div class='del'>-#     def unshift(item)</div><div class='del'>-#       self.synchronize do</div><div class='del'>-#         self.old_unshift(item)</div><div class='del'>-#       end</div><div class='del'>-#     end</div><div class='del'>-#</div><div class='del'>-#     # other methods ...</div><div class='del'>-#   end</div><div class='del'>-#</div><div class='del'>-# +SynchronizedArray+ implements an Array with synchronized access to items.</div><div class='del'>-# This Class is implemented as subclass of Array which includes the</div><div class='del'>-# MonitorMixin module.</div><div class='del'>-#</div><div class='del'>-module MonitorMixin</div><div class='del'>-  #</div><div class='del'>-  # FIXME: This isn't documented in Nutshell.</div><div class='del'>-  #</div><div class='del'>-  # Since MonitorMixin.new_cond returns a ConditionVariable, and the example</div><div class='del'>-  # above calls while_wait and signal, this class should be documented.</div><div class='del'>-  #</div><div class='del'>-  class ConditionVariable</div><div class='del'>-    class Timeout &lt; Exception; end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Releases the lock held in the associated monitor and waits; reacquires the lock on wakeup.</div><div class='del'>-    #</div><div class='del'>-    # If +timeout+ is given, this method returns after +timeout+ seconds passed,</div><div class='del'>-    # even if no other thread doesn't signal.</div><div class='del'>-    #</div><div class='del'>-    def wait(timeout = nil)</div><div class='del'>-      Thread.handle_interrupt(Exception =&gt; :never) do</div><div class='del'>-        @monitor.__send__(:mon_check_owner)</div><div class='del'>-        count = @monitor.__send__(:mon_exit_for_cond)</div><div class='del'>-        begin</div><div class='del'>-          Thread.handle_interrupt(Exception =&gt; :immediate) do</div><div class='del'>-            @cond.wait(@monitor.instance_variable_get(:@mon_mutex), timeout)</div><div class='del'>-          end</div><div class='del'>-          return true</div><div class='del'>-        ensure</div><div class='del'>-          @monitor.__send__(:mon_enter_for_cond, count)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Calls wait repeatedly while the given block yields a truthy value.</div><div class='del'>-    #</div><div class='del'>-    def wait_while</div><div class='del'>-      while yield</div><div class='del'>-        wait</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Calls wait repeatedly until the given block yields a truthy value.</div><div class='del'>-    #</div><div class='del'>-    def wait_until</div><div class='del'>-      until yield</div><div class='del'>-        wait</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Wakes up the first thread in line waiting for this lock.</div><div class='del'>-    #</div><div class='del'>-    def signal</div><div class='del'>-      @monitor.__send__(:mon_check_owner)</div><div class='del'>-      @cond.signal</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Wakes up all threads waiting for this lock.</div><div class='del'>-    #</div><div class='del'>-    def broadcast</div><div class='del'>-      @monitor.__send__(:mon_check_owner)</div><div class='del'>-      @cond.broadcast</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    private</div><div class='del'>-</div><div class='del'>-    def initialize(monitor)</div><div class='del'>-      @monitor = monitor</div><div class='del'>-      @cond = Thread::ConditionVariable.new</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def self.extend_object(obj)</div><div class='del'>-    super(obj)</div><div class='del'>-    obj.__send__(:mon_initialize)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Attempts to enter exclusive section.  Returns +false+ if lock fails.</div><div class='del'>-  #</div><div class='del'>-  def mon_try_enter</div><div class='del'>-    if @mon_owner != Thread.current</div><div class='del'>-      unless @mon_mutex.try_lock</div><div class='del'>-        return false</div><div class='del'>-      end</div><div class='del'>-      @mon_owner = Thread.current</div><div class='del'>-      @mon_count = 0</div><div class='del'>-    end</div><div class='del'>-    @mon_count += 1</div><div class='del'>-    return true</div><div class='del'>-  end</div><div class='del'>-  # For backward compatibility</div><div class='del'>-  alias try_mon_enter mon_try_enter</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Enters exclusive section.</div><div class='del'>-  #</div><div class='del'>-  def mon_enter</div><div class='del'>-    if @mon_owner != Thread.current</div><div class='del'>-      @mon_mutex.lock</div><div class='del'>-      @mon_owner = Thread.current</div><div class='del'>-      @mon_count = 0</div><div class='del'>-    end</div><div class='del'>-    @mon_count += 1</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Leaves exclusive section.</div><div class='del'>-  #</div><div class='del'>-  def mon_exit</div><div class='del'>-    mon_check_owner</div><div class='del'>-    @mon_count -=1</div><div class='del'>-    if @mon_count == 0</div><div class='del'>-      @mon_owner = nil</div><div class='del'>-      @mon_mutex.unlock</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns true if this monitor is locked by any thread</div><div class='del'>-  #</div><div class='del'>-  def mon_locked?</div><div class='del'>-    @mon_mutex.locked?</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Returns true if this monitor is locked by current thread.</div><div class='del'>-  #</div><div class='del'>-  def mon_owned?</div><div class='del'>-    @mon_mutex.locked? &amp;&amp; @mon_owner == Thread.current</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Enters exclusive section and executes the block.  Leaves the exclusive</div><div class='del'>-  # section automatically when the block exits.  See example under</div><div class='del'>-  # +MonitorMixin+.</div><div class='del'>-  #</div><div class='del'>-  def mon_synchronize</div><div class='del'>-    mon_enter</div><div class='del'>-    begin</div><div class='del'>-      yield</div><div class='del'>-    ensure</div><div class='del'>-      mon_exit</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-  alias synchronize mon_synchronize</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # Creates a new MonitorMixin::ConditionVariable associated with the</div><div class='del'>-  # receiver.</div><div class='del'>-  #</div><div class='del'>-  def new_cond</div><div class='del'>-    return ConditionVariable.new(self)</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  private</div><div class='del'>-</div><div class='del'>-  # Use &lt;tt&gt;extend MonitorMixin&lt;/tt&gt; or &lt;tt&gt;include MonitorMixin&lt;/tt&gt; instead</div><div class='del'>-  # of this constructor.  Have look at the examples above to understand how to</div><div class='del'>-  # use this module.</div><div class='del'>-  def initialize(*args)</div><div class='del'>-    super</div><div class='del'>-    mon_initialize</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  # Initializes the MonitorMixin after being included in a class or when an</div><div class='del'>-  # object has been extended with the MonitorMixin</div><div class='del'>-  def mon_initialize</div><div class='del'>-    if defined?(@mon_mutex) &amp;&amp; @mon_mutex_owner_object_id == object_id</div><div class='del'>-      raise ThreadError, "already initialized"</div><div class='del'>-    end</div><div class='del'>-    @mon_mutex = Thread::Mutex.new</div><div class='del'>-    @mon_mutex_owner_object_id = object_id</div><div class='del'>-    @mon_owner = nil</div><div class='del'>-    @mon_count = 0</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def mon_check_owner</div><div class='del'>-    if @mon_owner != Thread.current</div><div class='del'>-      raise ThreadError, "current thread not owner"</div><div class='del'>-    end</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def mon_enter_for_cond(count)</div><div class='del'>-    @mon_owner = Thread.current</div><div class='del'>-    @mon_count = count</div><div class='del'>-  end</div><div class='del'>-</div><div class='del'>-  def mon_exit_for_cond</div><div class='del'>-    count = @mon_count</div><div class='del'>-    @mon_owner = nil</div><div class='del'>-    @mon_count = 0</div><div class='del'>-    return count</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-# Use the Monitor class when you want to have a lock object for blocks with</div><div class='del'>-# mutual exclusion.</div><div class='del'>-#</div><div class='del'>-#   require 'monitor'</div><div class='del'>-#</div><div class='del'>-#   lock = Monitor.new</div><div class='del'>-#   lock.synchronize do</div><div class='del'>-#     # exclusive access</div><div class='del'>-#   end</div><div class='del'>-#</div><div class='del'>-class Monitor</div><div class='del'>-  include MonitorMixin</div><div class='del'>-  alias try_enter try_mon_enter</div><div class='del'>-  alias enter mon_enter</div><div class='del'>-  alias exit mon_exit</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-# Documentation comments:</div><div class='del'>-#  - All documentation comes from Nutshell.</div><div class='del'>-#  - MonitorMixin.new_cond appears in the example, but is not documented in</div><div class='del'>-#    Nutshell.</div><div class='del'>-#  - All the internals (internal modules Accessible and Initializable, class</div><div class='del'>-#    ConditionVariable) appear in RDoc.  It might be good to hide them, by</div><div class='del'>-#    making them private, or marking them :nodoc:, etc.</div><div class='del'>-#  - RDoc doesn't recognise aliases, so we have mon_synchronize documented, but</div><div class='del'>-#    not synchronize.</div><div class='del'>-#  - mon_owner is in Nutshell, but appears as an accessor in a separate module</div><div class='del'>-#    here, so is hard/impossible to RDoc.  Some other useful accessors</div><div class='del'>-#    (mon_count and some queue stuff) are also in this module, and don't appear</div><div class='del'>-#    directly in the RDoc output.</div><div class='del'>-#  - in short, it may be worth changing the code layout in this file to make the</div><div class='del'>-#    documentation easier</div><div class='del'>-</div><div class='del'>-# Local variables:</div><div class='del'>-# mode: Ruby</div><div class='del'>-# tab-width: 8</div><div class='del'>-# End:</div><div class='head'>diff --git a/lib/mutex_m.gemspec b/lib/mutex_m.gemspec<br/>index 409ed5b7b2..f614dcd9a0 100644<br/>--- a/<a href='/ruby.git/tree/lib/mutex_m.gemspec?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/mutex_m.gemspec</a><br/>+++ b/<a href='/ruby.git/tree/lib/mutex_m.gemspec?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/mutex_m.gemspec</a></div><div class='hunk'>@@ -14,9 +14,9 @@ Gem::Specification.new do |spec|</div><div class='ctx'>   spec.summary       = %q{Mixin to extend objects to be handled like a Mutex.}</div><div class='ctx'>   spec.description   = %q{Mixin to extend objects to be handled like a Mutex.}</div><div class='ctx'>   spec.homepage      = "https://github.com/ruby/mutex_m"</div><div class='del'>-  spec.license       = "BSD-2-Clause"</div><div class='add'>+  spec.licenses      = ["Ruby", "BSD-2-Clause"]</div><div class='ctx'> </div><div class='del'>-  spec.files         = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "lib/mutex_m.rb", "mutex_m.gemspec"]</div><div class='add'>+  spec.files         = ["Gemfile", "LICENSE.txt", "README.md", "Rakefile", "lib/mutex_m.rb", "mutex_m.gemspec"]</div><div class='ctx'>   spec.bindir        = "exe"</div><div class='ctx'>   spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }</div><div class='ctx'>   spec.require_paths = ["lib"]</div><div class='head'>diff --git a/lib/mutex_m.rb b/lib/mutex_m.rb<br/>index dd47934bea..17ec9924e4 100644<br/>--- a/<a href='/ruby.git/tree/lib/mutex_m.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/mutex_m.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/mutex_m.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/mutex_m.rb</a></div><div class='hunk'>@@ -40,7 +40,8 @@</div><div class='ctx'> #</div><div class='ctx'> module Mutex_m</div><div class='ctx'> </div><div class='del'>-  VERSION = "0.1.0"</div><div class='add'>+  VERSION = "0.1.2"</div><div class='add'>+  Ractor.make_shareable(VERSION) if defined?(Ractor)</div><div class='ctx'> </div><div class='ctx'>   def Mutex_m.define_aliases(cl) # :nodoc:</div><div class='ctx'>     cl.module_eval %q{</div><div class='hunk'>@@ -73,32 +74,32 @@ module Mutex_m</div><div class='ctx'>     mu_initialize</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # See Mutex#synchronize</div><div class='add'>+  # See Thread::Mutex#synchronize</div><div class='ctx'>   def mu_synchronize(&amp;block)</div><div class='ctx'>     @_mutex.synchronize(&amp;block)</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # See Mutex#locked?</div><div class='add'>+  # See Thread::Mutex#locked?</div><div class='ctx'>   def mu_locked?</div><div class='ctx'>     @_mutex.locked?</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # See Mutex#try_lock</div><div class='add'>+  # See Thread::Mutex#try_lock</div><div class='ctx'>   def mu_try_lock</div><div class='ctx'>     @_mutex.try_lock</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # See Mutex#lock</div><div class='add'>+  # See Thread::Mutex#lock</div><div class='ctx'>   def mu_lock</div><div class='ctx'>     @_mutex.lock</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # See Mutex#unlock</div><div class='add'>+  # See Thread::Mutex#unlock</div><div class='ctx'>   def mu_unlock</div><div class='ctx'>     @_mutex.unlock</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='del'>-  # See Mutex#sleep</div><div class='add'>+  # See Thread::Mutex#sleep</div><div class='ctx'>   def sleep(timeout = nil)</div><div class='ctx'>     @_mutex.sleep(timeout)</div><div class='ctx'>   end</div><div class='hunk'>@@ -113,4 +114,5 @@ module Mutex_m</div><div class='ctx'>     mu_initialize</div><div class='ctx'>     super</div><div class='ctx'>   end</div><div class='add'>+  ruby2_keywords(:initialize) if respond_to?(:ruby2_keywords, true)</div><div class='ctx'> end</div><div class='head'>diff --git a/lib/net/ftp.rb b/lib/net/ftp.rb<br/>deleted file mode 100644<br/>index e68d825dcf..0000000000<br/>--- a/<a href='/ruby.git/tree/lib/net/ftp.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/ftp.rb</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1493 +0,0 @@</div><div class='del'>-# frozen_string_literal: true</div><div class='del'>-#</div><div class='del'>-# = net/ftp.rb - FTP Client Library</div><div class='del'>-#</div><div class='del'>-# Written by Shugo Maeda &lt;shugo@ruby-lang.org&gt;.</div><div class='del'>-#</div><div class='del'>-# Documentation by Gavin Sinclair, sourced from "Programming Ruby" (Hunt/Thomas)</div><div class='del'>-# and "Ruby In a Nutshell" (Matsumoto), used with permission.</div><div class='del'>-#</div><div class='del'>-# This library is distributed under the terms of the Ruby license.</div><div class='del'>-# You can freely distribute/modify this library.</div><div class='del'>-#</div><div class='del'>-# It is included in the Ruby standard library.</div><div class='del'>-#</div><div class='del'>-# See the Net::FTP class for an overview.</div><div class='del'>-#</div><div class='del'>-</div><div class='del'>-require "socket"</div><div class='del'>-require "monitor"</div><div class='del'>-require_relative "protocol"</div><div class='del'>-require "time"</div><div class='del'>-begin</div><div class='del'>-  require "openssl"</div><div class='del'>-rescue LoadError</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-module Net</div><div class='del'>-</div><div class='del'>-  # :stopdoc:</div><div class='del'>-  class FTPError &lt; StandardError; end</div><div class='del'>-  class FTPReplyError &lt; FTPError; end</div><div class='del'>-  class FTPTempError &lt; FTPError; end</div><div class='del'>-  class FTPPermError &lt; FTPError; end</div><div class='del'>-  class FTPProtoError &lt; FTPError; end</div><div class='del'>-  class FTPConnectionError &lt; FTPError; end</div><div class='del'>-  # :startdoc:</div><div class='del'>-</div><div class='del'>-  #</div><div class='del'>-  # This class implements the File Transfer Protocol.  If you have used a</div><div class='del'>-  # command-line FTP program, and are familiar with the commands, you will be</div><div class='del'>-  # able to use this class easily.  Some extra features are included to take</div><div class='del'>-  # advantage of Ruby's style and strengths.</div><div class='del'>-  #</div><div class='del'>-  # == Example</div><div class='del'>-  #</div><div class='del'>-  #   require 'net/ftp'</div><div class='del'>-  #</div><div class='del'>-  # === Example 1</div><div class='del'>-  #</div><div class='del'>-  #   ftp = Net::FTP.new('example.com')</div><div class='del'>-  #   ftp.login</div><div class='del'>-  #   files = ftp.chdir('pub/lang/ruby/contrib')</div><div class='del'>-  #   files = ftp.list('n*')</div><div class='del'>-  #   ftp.getbinaryfile('nif.rb-0.91.gz', 'nif.gz', 1024)</div><div class='del'>-  #   ftp.close</div><div class='del'>-  #</div><div class='del'>-  # === Example 2</div><div class='del'>-  #</div><div class='del'>-  #   Net::FTP.open('example.com') do |ftp|</div><div class='del'>-  #     ftp.login</div><div class='del'>-  #     files = ftp.chdir('pub/lang/ruby/contrib')</div><div class='del'>-  #     files = ftp.list('n*')</div><div class='del'>-  #     ftp.getbinaryfile('nif.rb-0.91.gz', 'nif.gz', 1024)</div><div class='del'>-  #   end</div><div class='del'>-  #</div><div class='del'>-  # == Major Methods</div><div class='del'>-  #</div><div class='del'>-  # The following are the methods most likely to be useful to users:</div><div class='del'>-  # - FTP.open</div><div class='del'>-  # - #getbinaryfile</div><div class='del'>-  # - #gettextfile</div><div class='del'>-  # - #putbinaryfile</div><div class='del'>-  # - #puttextfile</div><div class='del'>-  # - #chdir</div><div class='del'>-  # - #nlst</div><div class='del'>-  # - #size</div><div class='del'>-  # - #rename</div><div class='del'>-  # - #delete</div><div class='del'>-  #</div><div class='del'>-  class FTP &lt; Protocol</div><div class='del'>-    include MonitorMixin</div><div class='del'>-    if defined?(OpenSSL::SSL)</div><div class='del'>-      include OpenSSL</div><div class='del'>-      include SSL</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # :stopdoc:</div><div class='del'>-    FTP_PORT = 21</div><div class='del'>-    CRLF = "\r\n"</div><div class='del'>-    DEFAULT_BLOCKSIZE = BufferedIO::BUFSIZE</div><div class='del'>-    @@default_passive = true</div><div class='del'>-    # :startdoc:</div><div class='del'>-</div><div class='del'>-    # When +true+, transfers are performed in binary mode.  Default: +true+.</div><div class='del'>-    attr_reader :binary</div><div class='del'>-</div><div class='del'>-    # When +true+, the connection is in passive mode.  Default: +true+.</div><div class='del'>-    attr_accessor :passive</div><div class='del'>-</div><div class='del'>-    # When +true+, all traffic to and from the server is written</div><div class='del'>-    # to +$stdout+.  Default: +false+.</div><div class='del'>-    attr_accessor :debug_mode</div><div class='del'>-</div><div class='del'>-    # Sets or retrieves the +resume+ status, which decides whether incomplete</div><div class='del'>-    # transfers are resumed or restarted.  Default: +false+.</div><div class='del'>-    attr_accessor :resume</div><div class='del'>-</div><div class='del'>-    # Number of seconds to wait for the connection to open. Any number</div><div class='del'>-    # may be used, including Floats for fractional seconds. If the FTP</div><div class='del'>-    # object cannot open a connection in this many seconds, it raises a</div><div class='del'>-    # Net::OpenTimeout exception. The default value is +nil+.</div><div class='del'>-    attr_accessor :open_timeout</div><div class='del'>-</div><div class='del'>-    # Number of seconds to wait for the TLS handshake. Any number</div><div class='del'>-    # may be used, including Floats for fractional seconds. If the FTP</div><div class='del'>-    # object cannot complete the TLS handshake in this many seconds, it</div><div class='del'>-    # raises a Net::OpenTimeout exception. The default value is +nil+.</div><div class='del'>-    # If +ssl_handshake_timeout+ is +nil+, +open_timeout+ is used instead.</div><div class='del'>-    attr_accessor :ssl_handshake_timeout</div><div class='del'>-</div><div class='del'>-    # Number of seconds to wait for one block to be read (via one read(2)</div><div class='del'>-    # call). Any number may be used, including Floats for fractional</div><div class='del'>-    # seconds. If the FTP object cannot read data in this many seconds,</div><div class='del'>-    # it raises a Timeout::Error exception. The default value is 60 seconds.</div><div class='del'>-    attr_reader :read_timeout</div><div class='del'>-</div><div class='del'>-    # Setter for the read_timeout attribute.</div><div class='del'>-    def read_timeout=(sec)</div><div class='del'>-      @sock.read_timeout = sec</div><div class='del'>-      @read_timeout = sec</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # The server's welcome message.</div><div class='del'>-    attr_reader :welcome</div><div class='del'>-</div><div class='del'>-    # The server's last response code.</div><div class='del'>-    attr_reader :last_response_code</div><div class='del'>-    alias lastresp last_response_code</div><div class='del'>-</div><div class='del'>-    # The server's last response.</div><div class='del'>-    attr_reader :last_response</div><div class='del'>-</div><div class='del'>-    # When +true+, connections are in passive mode per default.</div><div class='del'>-    # Default: +true+.</div><div class='del'>-    def self.default_passive=(value)</div><div class='del'>-      @@default_passive = value</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # When +true+, connections are in passive mode per default.</div><div class='del'>-    # Default: +true+.</div><div class='del'>-    def self.default_passive</div><div class='del'>-      @@default_passive</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # A synonym for &lt;tt&gt;FTP.new&lt;/tt&gt;, but with a mandatory host parameter.</div><div class='del'>-    #</div><div class='del'>-    # If a block is given, it is passed the +FTP+ object, which will be closed</div><div class='del'>-    # when the block finishes, or when an exception is raised.</div><div class='del'>-    #</div><div class='del'>-    def FTP.open(host, *args)</div><div class='del'>-      if block_given?</div><div class='del'>-        ftp = new(host, *args)</div><div class='del'>-        begin</div><div class='del'>-          yield ftp</div><div class='del'>-        ensure</div><div class='del'>-          ftp.close</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        new(host, *args)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # :call-seq:</div><div class='del'>-    #    Net::FTP.new(host = nil, options = {})</div><div class='del'>-    #</div><div class='del'>-    # Creates and returns a new +FTP+ object. If a +host+ is given, a connection</div><div class='del'>-    # is made.</div><div class='del'>-    #</div><div class='del'>-    # +options+ is an option hash, each key of which is a symbol.</div><div class='del'>-    #</div><div class='del'>-    # The available options are:</div><div class='del'>-    #</div><div class='del'>-    # port::      Port number (default value is 21)</div><div class='del'>-    # ssl::       If options[:ssl] is true, then an attempt will be made</div><div class='del'>-    #             to use SSL (now TLS) to connect to the server.  For this</div><div class='del'>-    #             to work OpenSSL [OSSL] and the Ruby OpenSSL [RSSL]</div><div class='del'>-    #             extensions need to be installed.  If options[:ssl] is a</div><div class='del'>-    #             hash, it's passed to OpenSSL::SSL::SSLContext#set_params</div><div class='del'>-    #             as parameters.</div><div class='del'>-    # private_data_connection::  If true, TLS is used for data connections.</div><div class='del'>-    #                            Default: +true+ when options[:ssl] is true.</div><div class='del'>-    # username::  Username for login.  If options[:username] is the string</div><div class='del'>-    #             "anonymous" and the options[:password] is +nil+,</div><div class='del'>-    #             "anonymous@" is used as a password.</div><div class='del'>-    # password::  Password for login.</div><div class='del'>-    # account::   Account information for ACCT.</div><div class='del'>-    # passive::   When +true+, the connection is in passive mode. Default:</div><div class='del'>-    #             +true+.</div><div class='del'>-    # open_timeout::  Number of seconds to wait for the connection to open.</div><div class='del'>-    #                 See Net::FTP#open_timeout for details.  Default: +nil+.</div><div class='del'>-    # read_timeout::  Number of seconds to wait for one block to be read.</div><div class='del'>-    #                 See Net::FTP#read_timeout for details.  Default: +60+.</div><div class='del'>-    # ssl_handshake_timeout::  Number of seconds to wait for the TLS</div><div class='del'>-    #                          handshake.</div><div class='del'>-    #                          See Net::FTP#ssl_handshake_timeout for</div><div class='del'>-    #                          details.  Default: +nil+.</div><div class='del'>-    # debug_mode::  When +true+, all traffic to and from the server is</div><div class='del'>-    #               written to +$stdout+.  Default: +false+.</div><div class='del'>-    #</div><div class='del'>-    def initialize(host = nil, user_or_options = {}, passwd = nil, acct = nil)</div><div class='del'>-      super()</div><div class='del'>-      begin</div><div class='del'>-        options = user_or_options.to_hash</div><div class='del'>-      rescue NoMethodError</div><div class='del'>-        # for backward compatibility</div><div class='del'>-        options = {}</div><div class='del'>-        options[:username] = user_or_options</div><div class='del'>-        options[:password] = passwd</div><div class='del'>-        options[:account] = acct</div><div class='del'>-      end</div><div class='del'>-      @host = nil</div><div class='del'>-      if options[:ssl]</div><div class='del'>-        unless defined?(OpenSSL::SSL)</div><div class='del'>-          raise "SSL extension not installed"</div><div class='del'>-        end</div><div class='del'>-        ssl_params = options[:ssl] == true ? {} : options[:ssl]</div><div class='del'>-        @ssl_context = SSLContext.new</div><div class='del'>-        @ssl_context.set_params(ssl_params)</div><div class='del'>-        if defined?(VerifyCallbackProc)</div><div class='del'>-          @ssl_context.verify_callback = VerifyCallbackProc</div><div class='del'>-        end</div><div class='del'>-        @ssl_context.session_cache_mode =</div><div class='del'>-          OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT |</div><div class='del'>-          OpenSSL::SSL::SSLContext::SESSION_CACHE_NO_INTERNAL_STORE</div><div class='del'>-        @ssl_context.session_new_cb = proc {|sock, sess| @ssl_session = sess }</div><div class='del'>-        @ssl_session = nil</div><div class='del'>-        if options[:private_data_connection].nil?</div><div class='del'>-          @private_data_connection = true</div><div class='del'>-        else</div><div class='del'>-          @private_data_connection = options[:private_data_connection]</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        @ssl_context = nil</div><div class='del'>-        if options[:private_data_connection]</div><div class='del'>-          raise ArgumentError,</div><div class='del'>-            "private_data_connection can be set to true only when ssl is enabled"</div><div class='del'>-        end</div><div class='del'>-        @private_data_connection = false</div><div class='del'>-      end</div><div class='del'>-      @binary = true</div><div class='del'>-      if options[:passive].nil?</div><div class='del'>-        @passive = @@default_passive</div><div class='del'>-      else</div><div class='del'>-        @passive = options[:passive]</div><div class='del'>-      end</div><div class='del'>-      if options[:debug_mode].nil?</div><div class='del'>-        @debug_mode = false</div><div class='del'>-      else</div><div class='del'>-        @debug_mode = options[:debug_mode]</div><div class='del'>-      end</div><div class='del'>-      @resume = false</div><div class='del'>-      @bare_sock = @sock = NullSocket.new</div><div class='del'>-      @logged_in = false</div><div class='del'>-      @open_timeout = options[:open_timeout]</div><div class='del'>-      @ssl_handshake_timeout = options[:ssl_handshake_timeout]</div><div class='del'>-      @read_timeout = options[:read_timeout] || 60</div><div class='del'>-      if host</div><div class='del'>-        connect(host, options[:port] || FTP_PORT)</div><div class='del'>-        if options[:username]</div><div class='del'>-          login(options[:username], options[:password], options[:account])</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # A setter to toggle transfers in binary mode.</div><div class='del'>-    # +newmode+ is either +true+ or +false+</div><div class='del'>-    def binary=(newmode)</div><div class='del'>-      if newmode != @binary</div><div class='del'>-        @binary = newmode</div><div class='del'>-        send_type_command if @logged_in</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Sends a command to destination host, with the current binary sendmode</div><div class='del'>-    # type.</div><div class='del'>-    #</div><div class='del'>-    # If binary mode is +true+, then "TYPE I" (image) is sent, otherwise "TYPE</div><div class='del'>-    # A" (ascii) is sent.</div><div class='del'>-    def send_type_command # :nodoc:</div><div class='del'>-      if @binary</div><div class='del'>-        voidcmd("TYPE I")</div><div class='del'>-      else</div><div class='del'>-        voidcmd("TYPE A")</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    private :send_type_command</div><div class='del'>-</div><div class='del'>-    # Toggles transfers in binary mode and yields to a block.</div><div class='del'>-    # This preserves your current binary send mode, but allows a temporary</div><div class='del'>-    # transaction with binary sendmode of +newmode+.</div><div class='del'>-    #</div><div class='del'>-    # +newmode+ is either +true+ or +false+</div><div class='del'>-    def with_binary(newmode) # :nodoc:</div><div class='del'>-      oldmode = binary</div><div class='del'>-      self.binary = newmode</div><div class='del'>-      begin</div><div class='del'>-        yield</div><div class='del'>-      ensure</div><div class='del'>-        self.binary = oldmode</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    private :with_binary</div><div class='del'>-</div><div class='del'>-    # Obsolete</div><div class='del'>-    def return_code # :nodoc:</div><div class='del'>-      warn("Net::FTP#return_code is obsolete and do nothing", uplevel: 1)</div><div class='del'>-      return "\n"</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Obsolete</div><div class='del'>-    def return_code=(s) # :nodoc:</div><div class='del'>-      warn("Net::FTP#return_code= is obsolete and do nothing", uplevel: 1)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Constructs a socket with +host+ and +port+.</div><div class='del'>-    #</div><div class='del'>-    # If SOCKSSocket is defined and the environment (ENV) defines</div><div class='del'>-    # SOCKS_SERVER, then a SOCKSSocket is returned, else a Socket is</div><div class='del'>-    # returned.</div><div class='del'>-    def open_socket(host, port) # :nodoc:</div><div class='del'>-      return Timeout.timeout(@open_timeout, OpenTimeout) {</div><div class='del'>-        if defined? SOCKSSocket and ENV["SOCKS_SERVER"]</div><div class='del'>-          @passive = true</div><div class='del'>-          SOCKSSocket.open(host, port)</div><div class='del'>-        else</div><div class='del'>-          Socket.tcp(host, port)</div><div class='del'>-        end</div><div class='del'>-      }</div><div class='del'>-    end</div><div class='del'>-    private :open_socket</div><div class='del'>-</div><div class='del'>-    def start_tls_session(sock)</div><div class='del'>-      ssl_sock = SSLSocket.new(sock, @ssl_context)</div><div class='del'>-      ssl_sock.sync_close = true</div><div class='del'>-      ssl_sock.hostname = @host if ssl_sock.respond_to? :hostname=</div><div class='del'>-      if @ssl_session &amp;&amp;</div><div class='del'>-          Process.clock_gettime(Process::CLOCK_REALTIME) &lt; @ssl_session.time.to_f + @ssl_session.timeout</div><div class='del'>-        # ProFTPD returns 425 for data connections if session is not reused.</div><div class='del'>-        ssl_sock.session = @ssl_session</div><div class='del'>-      end</div><div class='del'>-      ssl_socket_connect(ssl_sock, @ssl_handshake_timeout || @open_timeout)</div><div class='del'>-      if @ssl_context.verify_mode != VERIFY_NONE</div><div class='del'>-        ssl_sock.post_connection_check(@host)</div><div class='del'>-      end</div><div class='del'>-      return ssl_sock</div><div class='del'>-    end</div><div class='del'>-    private :start_tls_session</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Establishes an FTP connection to host, optionally overriding the default</div><div class='del'>-    # port. If the environment variable +SOCKS_SERVER+ is set, sets up the</div><div class='del'>-    # connection through a SOCKS proxy. Raises an exception (typically</div><div class='del'>-    # &lt;tt&gt;Errno::ECONNREFUSED&lt;/tt&gt;) if the connection cannot be established.</div><div class='del'>-    #</div><div class='del'>-    def connect(host, port = FTP_PORT)</div><div class='del'>-      if @debug_mode</div><div class='del'>-        print "connect: ", host, ", ", port, "\n"</div><div class='del'>-      end</div><div class='del'>-      synchronize do</div><div class='del'>-        @host = host</div><div class='del'>-        @bare_sock = open_socket(host, port)</div><div class='del'>-        @sock = BufferedSocket.new(@bare_sock, read_timeout: @read_timeout)</div><div class='del'>-        voidresp</div><div class='del'>-        if @ssl_context</div><div class='del'>-          begin</div><div class='del'>-            voidcmd("AUTH TLS")</div><div class='del'>-            ssl_sock = start_tls_session(@bare_sock)</div><div class='del'>-            @sock = BufferedSSLSocket.new(ssl_sock, read_timeout: @read_timeout)</div><div class='del'>-            if @private_data_connection</div><div class='del'>-              voidcmd("PBSZ 0")</div><div class='del'>-              voidcmd("PROT P")</div><div class='del'>-            end</div><div class='del'>-          rescue OpenSSL::SSL::SSLError, OpenTimeout</div><div class='del'>-            @sock.close</div><div class='del'>-            raise</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Set the socket used to connect to the FTP server.</div><div class='del'>-    #</div><div class='del'>-    # May raise FTPReplyError if +get_greeting+ is false.</div><div class='del'>-    def set_socket(sock, get_greeting = true)</div><div class='del'>-      synchronize do</div><div class='del'>-        @sock = sock</div><div class='del'>-        if get_greeting</div><div class='del'>-          voidresp</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # If string +s+ includes the PASS command (password), then the contents of</div><div class='del'>-    # the password are cleaned from the string using "*"</div><div class='del'>-    def sanitize(s) # :nodoc:</div><div class='del'>-      if s =~ /^PASS /i</div><div class='del'>-        return s[0, 5] + "*" * (s.length - 5)</div><div class='del'>-      else</div><div class='del'>-        return s</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    private :sanitize</div><div class='del'>-</div><div class='del'>-    # Ensures that +line+ has a control return / line feed (CRLF) and writes</div><div class='del'>-    # it to the socket.</div><div class='del'>-    def putline(line) # :nodoc:</div><div class='del'>-      if @debug_mode</div><div class='del'>-        print "put: ", sanitize(line), "\n"</div><div class='del'>-      end</div><div class='del'>-      if /[\r\n]/ =~ line</div><div class='del'>-        raise ArgumentError, "A line must not contain CR or LF"</div><div class='del'>-      end</div><div class='del'>-      line = line + CRLF</div><div class='del'>-      @sock.write(line)</div><div class='del'>-    end</div><div class='del'>-    private :putline</div><div class='del'>-</div><div class='del'>-    # Reads a line from the sock.  If EOF, then it will raise EOFError</div><div class='del'>-    def getline # :nodoc:</div><div class='del'>-      line = @sock.readline # if get EOF, raise EOFError</div><div class='del'>-      line.sub!(/(\r\n|\n|\r)\z/n, "")</div><div class='del'>-      if @debug_mode</div><div class='del'>-        print "get: ", sanitize(line), "\n"</div><div class='del'>-      end</div><div class='del'>-      return line</div><div class='del'>-    end</div><div class='del'>-    private :getline</div><div class='del'>-</div><div class='del'>-    # Receive a section of lines until the response code's match.</div><div class='del'>-    def getmultiline # :nodoc:</div><div class='del'>-      lines = []</div><div class='del'>-      lines &lt;&lt; getline</div><div class='del'>-      code = lines.last.slice(/\A([0-9a-zA-Z]{3})-/, 1)</div><div class='del'>-      if code</div><div class='del'>-        delimiter = code + " "</div><div class='del'>-        begin</div><div class='del'>-          lines &lt;&lt; getline</div><div class='del'>-        end until lines.last.start_with?(delimiter)</div><div class='del'>-      end</div><div class='del'>-      return lines.join("\n") + "\n"</div><div class='del'>-    end</div><div class='del'>-    private :getmultiline</div><div class='del'>-</div><div class='del'>-    # Receives a response from the destination host.</div><div class='del'>-    #</div><div class='del'>-    # Returns the response code or raises FTPTempError, FTPPermError, or</div><div class='del'>-    # FTPProtoError</div><div class='del'>-    def getresp # :nodoc:</div><div class='del'>-      @last_response = getmultiline</div><div class='del'>-      @last_response_code = @last_response[0, 3]</div><div class='del'>-      case @last_response_code</div><div class='del'>-      when /\A[123]/</div><div class='del'>-        return @last_response</div><div class='del'>-      when /\A4/</div><div class='del'>-        raise FTPTempError, @last_response</div><div class='del'>-      when /\A5/</div><div class='del'>-        raise FTPPermError, @last_response</div><div class='del'>-      else</div><div class='del'>-        raise FTPProtoError, @last_response</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    private :getresp</div><div class='del'>-</div><div class='del'>-    # Receives a response.</div><div class='del'>-    #</div><div class='del'>-    # Raises FTPReplyError if the first position of the response code is not</div><div class='del'>-    # equal 2.</div><div class='del'>-    def voidresp # :nodoc:</div><div class='del'>-      resp = getresp</div><div class='del'>-      if !resp.start_with?("2")</div><div class='del'>-        raise FTPReplyError, resp</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    private :voidresp</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Sends a command and returns the response.</div><div class='del'>-    #</div><div class='del'>-    def sendcmd(cmd)</div><div class='del'>-      synchronize do</div><div class='del'>-        putline(cmd)</div><div class='del'>-        return getresp</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Sends a command and expect a response beginning with '2'.</div><div class='del'>-    #</div><div class='del'>-    def voidcmd(cmd)</div><div class='del'>-      synchronize do</div><div class='del'>-        putline(cmd)</div><div class='del'>-        voidresp</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Constructs and send the appropriate PORT (or EPRT) command</div><div class='del'>-    def sendport(host, port) # :nodoc:</div><div class='del'>-      remote_address = @bare_sock.remote_address</div><div class='del'>-      if remote_address.ipv4?</div><div class='del'>-        cmd = "PORT " + (host.split(".") + port.divmod(256)).join(",")</div><div class='del'>-      elsif remote_address.ipv6?</div><div class='del'>-        cmd = sprintf("EPRT |2|%s|%d|", host, port)</div><div class='del'>-      else</div><div class='del'>-        raise FTPProtoError, host</div><div class='del'>-      end</div><div class='del'>-      voidcmd(cmd)</div><div class='del'>-    end</div><div class='del'>-    private :sendport</div><div class='del'>-</div><div class='del'>-    # Constructs a TCPServer socket</div><div class='del'>-    def makeport # :nodoc:</div><div class='del'>-      Addrinfo.tcp(@bare_sock.local_address.ip_address, 0).listen</div><div class='del'>-    end</div><div class='del'>-    private :makeport</div><div class='del'>-</div><div class='del'>-    # sends the appropriate command to enable a passive connection</div><div class='del'>-    def makepasv # :nodoc:</div><div class='del'>-      if @bare_sock.remote_address.ipv4?</div><div class='del'>-        host, port = parse227(sendcmd("PASV"))</div><div class='del'>-      else</div><div class='del'>-        host, port = parse229(sendcmd("EPSV"))</div><div class='del'>-        #     host, port = parse228(sendcmd("LPSV"))</div><div class='del'>-      end</div><div class='del'>-      return host, port</div><div class='del'>-    end</div><div class='del'>-    private :makepasv</div><div class='del'>-</div><div class='del'>-    # Constructs a connection for transferring data</div><div class='del'>-    def transfercmd(cmd, rest_offset = nil) # :nodoc:</div><div class='del'>-      if @passive</div><div class='del'>-        host, port = makepasv</div><div class='del'>-        conn = open_socket(host, port)</div><div class='del'>-        if @resume and rest_offset</div><div class='del'>-          resp = sendcmd("REST " + rest_offset.to_s)</div><div class='del'>-          if !resp.start_with?("3")</div><div class='del'>-            raise FTPReplyError, resp</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-        resp = sendcmd(cmd)</div><div class='del'>-        # skip 2XX for some ftp servers</div><div class='del'>-        resp = getresp if resp.start_with?("2")</div><div class='del'>-        if !resp.start_with?("1")</div><div class='del'>-          raise FTPReplyError, resp</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        sock = makeport</div><div class='del'>-        begin</div><div class='del'>-          addr = sock.local_address</div><div class='del'>-          sendport(addr.ip_address, addr.ip_port)</div><div class='del'>-          if @resume and rest_offset</div><div class='del'>-            resp = sendcmd("REST " + rest_offset.to_s)</div><div class='del'>-            if !resp.start_with?("3")</div><div class='del'>-              raise FTPReplyError, resp</div><div class='del'>-            end</div><div class='del'>-          end</div><div class='del'>-          resp = sendcmd(cmd)</div><div class='del'>-          # skip 2XX for some ftp servers</div><div class='del'>-          resp = getresp if resp.start_with?("2")</div><div class='del'>-          if !resp.start_with?("1")</div><div class='del'>-            raise FTPReplyError, resp</div><div class='del'>-          end</div><div class='del'>-          conn, = sock.accept</div><div class='del'>-          sock.shutdown(Socket::SHUT_WR) rescue nil</div><div class='del'>-          sock.read rescue nil</div><div class='del'>-        ensure</div><div class='del'>-          sock.close</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      if @private_data_connection</div><div class='del'>-        return BufferedSSLSocket.new(start_tls_session(conn),</div><div class='del'>-                                     read_timeout: @read_timeout)</div><div class='del'>-      else</div><div class='del'>-        return BufferedSocket.new(conn, read_timeout: @read_timeout)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    private :transfercmd</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Logs in to the remote host.  The session must have been</div><div class='del'>-    # previously connected.  If +user+ is the string "anonymous" and</div><div class='del'>-    # the +password+ is +nil+, "anonymous@" is used as a password.  If</div><div class='del'>-    # the +acct+ parameter is not +nil+, an FTP ACCT command is sent</div><div class='del'>-    # following the successful login.  Raises an exception on error</div><div class='del'>-    # (typically &lt;tt&gt;Net::FTPPermError&lt;/tt&gt;).</div><div class='del'>-    #</div><div class='del'>-    def login(user = "anonymous", passwd = nil, acct = nil)</div><div class='del'>-      if user == "anonymous" and passwd == nil</div><div class='del'>-        passwd = "anonymous@"</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      resp = ""</div><div class='del'>-      synchronize do</div><div class='del'>-        resp = sendcmd('USER ' + user)</div><div class='del'>-        if resp.start_with?("3")</div><div class='del'>-          raise FTPReplyError, resp if passwd.nil?</div><div class='del'>-          resp = sendcmd('PASS ' + passwd)</div><div class='del'>-        end</div><div class='del'>-        if resp.start_with?("3")</div><div class='del'>-          raise FTPReplyError, resp if acct.nil?</div><div class='del'>-          resp = sendcmd('ACCT ' + acct)</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      if !resp.start_with?("2")</div><div class='del'>-        raise FTPReplyError, resp</div><div class='del'>-      end</div><div class='del'>-      @welcome = resp</div><div class='del'>-      send_type_command</div><div class='del'>-      @logged_in = true</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Puts the connection into binary (image) mode, issues the given command,</div><div class='del'>-    # and fetches the data returned, passing it to the associated block in</div><div class='del'>-    # chunks of +blocksize+ characters. Note that +cmd+ is a server command</div><div class='del'>-    # (such as "RETR myfile").</div><div class='del'>-    #</div><div class='del'>-    def retrbinary(cmd, blocksize, rest_offset = nil) # :yield: data</div><div class='del'>-      synchronize do</div><div class='del'>-        with_binary(true) do</div><div class='del'>-          begin</div><div class='del'>-            conn = transfercmd(cmd, rest_offset)</div><div class='del'>-            loop do</div><div class='del'>-              data = conn.read(blocksize)</div><div class='del'>-              break if data == nil</div><div class='del'>-              yield(data)</div><div class='del'>-            end</div><div class='del'>-            conn.shutdown(Socket::SHUT_WR)</div><div class='del'>-            conn.read_timeout = 1</div><div class='del'>-            conn.read</div><div class='del'>-          ensure</div><div class='del'>-            conn.close if conn</div><div class='del'>-          end</div><div class='del'>-          voidresp</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Puts the connection into ASCII (text) mode, issues the given command, and</div><div class='del'>-    # passes the resulting data, one line at a time, to the associated block. If</div><div class='del'>-    # no block is given, prints the lines. Note that +cmd+ is a server command</div><div class='del'>-    # (such as "RETR myfile").</div><div class='del'>-    #</div><div class='del'>-    def retrlines(cmd) # :yield: line</div><div class='del'>-      synchronize do</div><div class='del'>-        with_binary(false) do</div><div class='del'>-          begin</div><div class='del'>-            conn = transfercmd(cmd)</div><div class='del'>-            loop do</div><div class='del'>-              line = conn.gets</div><div class='del'>-              break if line == nil</div><div class='del'>-              yield(line.sub(/\r?\n\z/, ""), !line.match(/\n\z/).nil?)</div><div class='del'>-            end</div><div class='del'>-            conn.shutdown(Socket::SHUT_WR)</div><div class='del'>-            conn.read_timeout = 1</div><div class='del'>-            conn.read</div><div class='del'>-          ensure</div><div class='del'>-            conn.close if conn</div><div class='del'>-          end</div><div class='del'>-          voidresp</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Puts the connection into binary (image) mode, issues the given server-side</div><div class='del'>-    # command (such as "STOR myfile"), and sends the contents of the file named</div><div class='del'>-    # +file+ to the server. If the optional block is given, it also passes it</div><div class='del'>-    # the data, in chunks of +blocksize+ characters.</div><div class='del'>-    #</div><div class='del'>-    def storbinary(cmd, file, blocksize, rest_offset = nil) # :yield: data</div><div class='del'>-      if rest_offset</div><div class='del'>-        file.seek(rest_offset, IO::SEEK_SET)</div><div class='del'>-      end</div><div class='del'>-      synchronize do</div><div class='del'>-        with_binary(true) do</div><div class='del'>-          conn = transfercmd(cmd)</div><div class='del'>-          loop do</div><div class='del'>-            buf = file.read(blocksize)</div><div class='del'>-            break if buf == nil</div><div class='del'>-            conn.write(buf)</div><div class='del'>-            yield(buf) if block_given?</div><div class='del'>-          end</div><div class='del'>-          conn.close</div><div class='del'>-          voidresp</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    rescue Errno::EPIPE</div><div class='del'>-      # EPIPE, in this case, means that the data connection was unexpectedly</div><div class='del'>-      # terminated.  Rather than just raising EPIPE to the caller, check the</div><div class='del'>-      # response on the control connection.  If getresp doesn't raise a more</div><div class='del'>-      # appropriate exception, re-raise the original exception.</div><div class='del'>-      getresp</div><div class='del'>-      raise</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Puts the connection into ASCII (text) mode, issues the given server-side</div><div class='del'>-    # command (such as "STOR myfile"), and sends the contents of the file</div><div class='del'>-    # named +file+ to the server, one line at a time. If the optional block is</div><div class='del'>-    # given, it also passes it the lines.</div><div class='del'>-    #</div><div class='del'>-    def storlines(cmd, file) # :yield: line</div><div class='del'>-      synchronize do</div><div class='del'>-        with_binary(false) do</div><div class='del'>-          conn = transfercmd(cmd)</div><div class='del'>-          loop do</div><div class='del'>-            buf = file.gets</div><div class='del'>-            break if buf == nil</div><div class='del'>-            if buf[-2, 2] != CRLF</div><div class='del'>-              buf = buf.chomp + CRLF</div><div class='del'>-            end</div><div class='del'>-            conn.write(buf)</div><div class='del'>-            yield(buf) if block_given?</div><div class='del'>-          end</div><div class='del'>-          conn.close</div><div class='del'>-          voidresp</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    rescue Errno::EPIPE</div><div class='del'>-      # EPIPE, in this case, means that the data connection was unexpectedly</div><div class='del'>-      # terminated.  Rather than just raising EPIPE to the caller, check the</div><div class='del'>-      # response on the control connection.  If getresp doesn't raise a more</div><div class='del'>-      # appropriate exception, re-raise the original exception.</div><div class='del'>-      getresp</div><div class='del'>-      raise</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Retrieves +remotefile+ in binary mode, storing the result in +localfile+.</div><div class='del'>-    # If +localfile+ is nil, returns retrieved data.</div><div class='del'>-    # If a block is supplied, it is passed the retrieved data in +blocksize+</div><div class='del'>-    # chunks.</div><div class='del'>-    #</div><div class='del'>-    def getbinaryfile(remotefile, localfile = File.basename(remotefile),</div><div class='del'>-                      blocksize = DEFAULT_BLOCKSIZE, &amp;block) # :yield: data</div><div class='del'>-      f = nil</div><div class='del'>-      result = nil</div><div class='del'>-      if localfile</div><div class='del'>-        if @resume</div><div class='del'>-          rest_offset = File.size?(localfile)</div><div class='del'>-          f = File.open(localfile, "a")</div><div class='del'>-        else</div><div class='del'>-          rest_offset = nil</div><div class='del'>-          f = File.open(localfile, "w")</div><div class='del'>-        end</div><div class='del'>-      elsif !block_given?</div><div class='del'>-        result = String.new</div><div class='del'>-      end</div><div class='del'>-      begin</div><div class='del'>-        f&amp;.binmode</div><div class='del'>-        retrbinary("RETR #{remotefile}", blocksize, rest_offset) do |data|</div><div class='del'>-          f&amp;.write(data)</div><div class='del'>-          block&amp;.(data)</div><div class='del'>-          result&amp;.concat(data)</div><div class='del'>-        end</div><div class='del'>-        return result</div><div class='del'>-      ensure</div><div class='del'>-        f&amp;.close</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Retrieves +remotefile+ in ASCII (text) mode, storing the result in</div><div class='del'>-    # +localfile+.</div><div class='del'>-    # If +localfile+ is nil, returns retrieved data.</div><div class='del'>-    # If a block is supplied, it is passed the retrieved data one</div><div class='del'>-    # line at a time.</div><div class='del'>-    #</div><div class='del'>-    def gettextfile(remotefile, localfile = File.basename(remotefile),</div><div class='del'>-                    &amp;block) # :yield: line</div><div class='del'>-      f = nil</div><div class='del'>-      result = nil</div><div class='del'>-      if localfile</div><div class='del'>-        f = File.open(localfile, "w")</div><div class='del'>-      elsif !block_given?</div><div class='del'>-        result = String.new</div><div class='del'>-      end</div><div class='del'>-      begin</div><div class='del'>-        retrlines("RETR #{remotefile}") do |line, newline|</div><div class='del'>-          l = newline ? line + "\n" : line</div><div class='del'>-          f&amp;.print(l)</div><div class='del'>-          block&amp;.(line, newline)</div><div class='del'>-          result&amp;.concat(l)</div><div class='del'>-        end</div><div class='del'>-        return result</div><div class='del'>-      ensure</div><div class='del'>-        f&amp;.close</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Retrieves +remotefile+ in whatever mode the session is set (text or</div><div class='del'>-    # binary).  See #gettextfile and #getbinaryfile.</div><div class='del'>-    #</div><div class='del'>-    def get(remotefile, localfile = File.basename(remotefile),</div><div class='del'>-            blocksize = DEFAULT_BLOCKSIZE, &amp;block) # :yield: data</div><div class='del'>-      if @binary</div><div class='del'>-        getbinaryfile(remotefile, localfile, blocksize, &amp;block)</div><div class='del'>-      else</div><div class='del'>-        gettextfile(remotefile, localfile, &amp;block)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Transfers +localfile+ to the server in binary mode, storing the result in</div><div class='del'>-    # +remotefile+. If a block is supplied, calls it, passing in the transmitted</div><div class='del'>-    # data in +blocksize+ chunks.</div><div class='del'>-    #</div><div class='del'>-    def putbinaryfile(localfile, remotefile = File.basename(localfile),</div><div class='del'>-                      blocksize = DEFAULT_BLOCKSIZE, &amp;block) # :yield: data</div><div class='del'>-      if @resume</div><div class='del'>-        begin</div><div class='del'>-          rest_offset = size(remotefile)</div><div class='del'>-        rescue Net::FTPPermError</div><div class='del'>-          rest_offset = nil</div><div class='del'>-        end</div><div class='del'>-      else</div><div class='del'>-        rest_offset = nil</div><div class='del'>-      end</div><div class='del'>-      f = File.open(localfile)</div><div class='del'>-      begin</div><div class='del'>-        f.binmode</div><div class='del'>-        if rest_offset</div><div class='del'>-          storbinary("APPE #{remotefile}", f, blocksize, rest_offset, &amp;block)</div><div class='del'>-        else</div><div class='del'>-          storbinary("STOR #{remotefile}", f, blocksize, rest_offset, &amp;block)</div><div class='del'>-        end</div><div class='del'>-      ensure</div><div class='del'>-        f.close</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Transfers +localfile+ to the server in ASCII (text) mode, storing the result</div><div class='del'>-    # in +remotefile+. If callback or an associated block is supplied, calls it,</div><div class='del'>-    # passing in the transmitted data one line at a time.</div><div class='del'>-    #</div><div class='del'>-    def puttextfile(localfile, remotefile = File.basename(localfile), &amp;block) # :yield: line</div><div class='del'>-      f = File.open(localfile)</div><div class='del'>-      begin</div><div class='del'>-        storlines("STOR #{remotefile}", f, &amp;block)</div><div class='del'>-      ensure</div><div class='del'>-        f.close</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Transfers +localfile+ to the server in whatever mode the session is set</div><div class='del'>-    # (text or binary).  See #puttextfile and #putbinaryfile.</div><div class='del'>-    #</div><div class='del'>-    def put(localfile, remotefile = File.basename(localfile),</div><div class='del'>-            blocksize = DEFAULT_BLOCKSIZE, &amp;block)</div><div class='del'>-      if @binary</div><div class='del'>-        putbinaryfile(localfile, remotefile, blocksize, &amp;block)</div><div class='del'>-      else</div><div class='del'>-        puttextfile(localfile, remotefile, &amp;block)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Sends the ACCT command.</div><div class='del'>-    #</div><div class='del'>-    # This is a less common FTP command, to send account</div><div class='del'>-    # information if the destination host requires it.</div><div class='del'>-    #</div><div class='del'>-    def acct(account)</div><div class='del'>-      cmd = "ACCT " + account</div><div class='del'>-      voidcmd(cmd)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns an array of filenames in the remote directory.</div><div class='del'>-    #</div><div class='del'>-    def nlst(dir = nil)</div><div class='del'>-      cmd = "NLST"</div><div class='del'>-      if dir</div><div class='del'>-        cmd = "#{cmd} #{dir}"</div><div class='del'>-      end</div><div class='del'>-      files = []</div><div class='del'>-      retrlines(cmd) do |line|</div><div class='del'>-        files.push(line)</div><div class='del'>-      end</div><div class='del'>-      return files</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns an array of file information in the directory (the output is like</div><div class='del'>-    # `ls -l`).  If a block is given, it iterates through the listing.</div><div class='del'>-    #</div><div class='del'>-    def list(*args, &amp;block) # :yield: line</div><div class='del'>-      cmd = "LIST"</div><div class='del'>-      args.each do |arg|</div><div class='del'>-        cmd = "#{cmd} #{arg}"</div><div class='del'>-      end</div><div class='del'>-      lines = []</div><div class='del'>-      retrlines(cmd) do |line|</div><div class='del'>-        lines &lt;&lt; line</div><div class='del'>-      end</div><div class='del'>-      if block</div><div class='del'>-        lines.each(&amp;block)</div><div class='del'>-      end</div><div class='del'>-      return lines</div><div class='del'>-    end</div><div class='del'>-    alias ls list</div><div class='del'>-    alias dir list</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # MLSxEntry represents an entry in responses of MLST/MLSD.</div><div class='del'>-    # Each entry has the facts (e.g., size, last modification time, etc.)</div><div class='del'>-    # and the pathname.</div><div class='del'>-    #</div><div class='del'>-    class MLSxEntry</div><div class='del'>-      attr_reader :facts, :pathname</div><div class='del'>-</div><div class='del'>-      def initialize(facts, pathname)</div><div class='del'>-        @facts = facts</div><div class='del'>-        @pathname = pathname</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      standard_facts = %w(size modify create type unique perm</div><div class='del'>-                          lang media-type charset)</div><div class='del'>-      standard_facts.each do |factname|</div><div class='del'>-        define_method factname.gsub(/-/, "_") do</div><div class='del'>-          facts[factname]</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if the entry is a file (i.e., the value of the type</div><div class='del'>-      # fact is file).</div><div class='del'>-      #</div><div class='del'>-      def file?</div><div class='del'>-        return facts["type"] == "file"</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if the entry is a directory (i.e., the value of the</div><div class='del'>-      # type fact is dir, cdir, or pdir).</div><div class='del'>-      #</div><div class='del'>-      def directory?</div><div class='del'>-        if /\A[cp]?dir\z/.match(facts["type"])</div><div class='del'>-          return true</div><div class='del'>-        else</div><div class='del'>-          return false</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if the APPE command may be applied to the file.</div><div class='del'>-      #</div><div class='del'>-      def appendable?</div><div class='del'>-        return facts["perm"].include?(?a)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if files may be created in the directory by STOU,</div><div class='del'>-      # STOR, APPE, and RNTO.</div><div class='del'>-      #</div><div class='del'>-      def creatable?</div><div class='del'>-        return facts["perm"].include?(?c)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if the file or directory may be deleted by DELE/RMD.</div><div class='del'>-      #</div><div class='del'>-      def deletable?</div><div class='del'>-        return facts["perm"].include?(?d)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if the directory may be entered by CWD/CDUP.</div><div class='del'>-      #</div><div class='del'>-      def enterable?</div><div class='del'>-        return facts["perm"].include?(?e)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if the file or directory may be renamed by RNFR.</div><div class='del'>-      #</div><div class='del'>-      def renamable?</div><div class='del'>-        return facts["perm"].include?(?f)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if the listing commands, LIST, NLST, and MLSD are</div><div class='del'>-      # applied to the directory.</div><div class='del'>-      #</div><div class='del'>-      def listable?</div><div class='del'>-        return facts["perm"].include?(?l)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if the MKD command may be used to create a new</div><div class='del'>-      # directory within the directory.</div><div class='del'>-      #</div><div class='del'>-      def directory_makable?</div><div class='del'>-        return facts["perm"].include?(?m)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if the objects in the directory may be deleted, or</div><div class='del'>-      # the directory may be purged.</div><div class='del'>-      #</div><div class='del'>-      def purgeable?</div><div class='del'>-        return facts["perm"].include?(?p)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if the RETR command may be applied to the file.</div><div class='del'>-      #</div><div class='del'>-      def readable?</div><div class='del'>-        return facts["perm"].include?(?r)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      #</div><div class='del'>-      # Returns +true+ if the STOR command may be applied to the file.</div><div class='del'>-      #</div><div class='del'>-      def writable?</div><div class='del'>-        return facts["perm"].include?(?w)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    CASE_DEPENDENT_PARSER = -&gt;(value) { value }</div><div class='del'>-    CASE_INDEPENDENT_PARSER = -&gt;(value) { value.downcase }</div><div class='del'>-    DECIMAL_PARSER = -&gt;(value) { value.to_i }</div><div class='del'>-    OCTAL_PARSER = -&gt;(value) { value.to_i(8) }</div><div class='del'>-    TIME_PARSER = -&gt;(value, local = false) {</div><div class='del'>-      unless /\A(?&lt;year&gt;\d{4})(?&lt;month&gt;\d{2})(?&lt;day&gt;\d{2})</div><div class='del'>-            (?&lt;hour&gt;\d{2})(?&lt;min&gt;\d{2})(?&lt;sec&gt;\d{2})</div><div class='del'>-            (\.(?&lt;fractions&gt;\d+))?/x =~ value</div><div class='del'>-        raise FTPProtoError, "invalid time-val: #{value}"</div><div class='del'>-      end</div><div class='del'>-      usec = fractions.to_i * 10 ** (6 - fractions.to_s.size)</div><div class='del'>-      Time.send(local ? :local : :utc, year, month, day, hour, min, sec, usec)</div><div class='del'>-    }</div><div class='del'>-    FACT_PARSERS = Hash.new(CASE_DEPENDENT_PARSER)</div><div class='del'>-    FACT_PARSERS["size"] = DECIMAL_PARSER</div><div class='del'>-    FACT_PARSERS["modify"] = TIME_PARSER</div><div class='del'>-    FACT_PARSERS["create"] = TIME_PARSER</div><div class='del'>-    FACT_PARSERS["type"] = CASE_INDEPENDENT_PARSER</div><div class='del'>-    FACT_PARSERS["unique"] = CASE_DEPENDENT_PARSER</div><div class='del'>-    FACT_PARSERS["perm"] = CASE_INDEPENDENT_PARSER</div><div class='del'>-    FACT_PARSERS["lang"] = CASE_INDEPENDENT_PARSER</div><div class='del'>-    FACT_PARSERS["media-type"] = CASE_INDEPENDENT_PARSER</div><div class='del'>-    FACT_PARSERS["charset"] = CASE_INDEPENDENT_PARSER</div><div class='del'>-    FACT_PARSERS["unix.mode"] = OCTAL_PARSER</div><div class='del'>-    FACT_PARSERS["unix.owner"] = DECIMAL_PARSER</div><div class='del'>-    FACT_PARSERS["unix.group"] = DECIMAL_PARSER</div><div class='del'>-    FACT_PARSERS["unix.ctime"] = TIME_PARSER</div><div class='del'>-    FACT_PARSERS["unix.atime"] = TIME_PARSER</div><div class='del'>-</div><div class='del'>-    def parse_mlsx_entry(entry)</div><div class='del'>-      facts, pathname = entry.chomp.split(/ /, 2)</div><div class='del'>-      unless pathname</div><div class='del'>-        raise FTPProtoError, entry</div><div class='del'>-      end</div><div class='del'>-      return MLSxEntry.new(</div><div class='del'>-        facts.scan(/(.*?)=(.*?);/).each_with_object({}) {</div><div class='del'>-          |(factname, value), h|</div><div class='del'>-          name = factname.downcase</div><div class='del'>-          h[name] = FACT_PARSERS[name].(value)</div><div class='del'>-        },</div><div class='del'>-        pathname)</div><div class='del'>-    end</div><div class='del'>-    private :parse_mlsx_entry</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns data (e.g., size, last modification time, entry type, etc.)</div><div class='del'>-    # about the file or directory specified by +pathname+.</div><div class='del'>-    # If +pathname+ is omitted, the current directory is assumed.</div><div class='del'>-    #</div><div class='del'>-    def mlst(pathname = nil)</div><div class='del'>-      cmd = pathname ? "MLST #{pathname}" : "MLST"</div><div class='del'>-      resp = sendcmd(cmd)</div><div class='del'>-      if !resp.start_with?("250")</div><div class='del'>-        raise FTPReplyError, resp</div><div class='del'>-      end</div><div class='del'>-      line = resp.lines[1]</div><div class='del'>-      unless line</div><div class='del'>-        raise FTPProtoError, resp</div><div class='del'>-      end</div><div class='del'>-      entry = line.sub(/\A(250-| *)/, "")</div><div class='del'>-      return parse_mlsx_entry(entry)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns an array of the entries of the directory specified by</div><div class='del'>-    # +pathname+.</div><div class='del'>-    # Each entry has the facts (e.g., size, last modification time, etc.)</div><div class='del'>-    # and the pathname.</div><div class='del'>-    # If a block is given, it iterates through the listing.</div><div class='del'>-    # If +pathname+ is omitted, the current directory is assumed.</div><div class='del'>-    #</div><div class='del'>-    def mlsd(pathname = nil, &amp;block) # :yield: entry</div><div class='del'>-      cmd = pathname ? "MLSD #{pathname}" : "MLSD"</div><div class='del'>-      entries = []</div><div class='del'>-      retrlines(cmd) do |line|</div><div class='del'>-        entries &lt;&lt; parse_mlsx_entry(line)</div><div class='del'>-      end</div><div class='del'>-      if block</div><div class='del'>-        entries.each(&amp;block)</div><div class='del'>-      end</div><div class='del'>-      return entries</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Renames a file on the server.</div><div class='del'>-    #</div><div class='del'>-    def rename(fromname, toname)</div><div class='del'>-      resp = sendcmd("RNFR #{fromname}")</div><div class='del'>-      if !resp.start_with?("3")</div><div class='del'>-        raise FTPReplyError, resp</div><div class='del'>-      end</div><div class='del'>-      voidcmd("RNTO #{toname}")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Deletes a file on the server.</div><div class='del'>-    #</div><div class='del'>-    def delete(filename)</div><div class='del'>-      resp = sendcmd("DELE #{filename}")</div><div class='del'>-      if resp.start_with?("250")</div><div class='del'>-        return</div><div class='del'>-      elsif resp.start_with?("5")</div><div class='del'>-        raise FTPPermError, resp</div><div class='del'>-      else</div><div class='del'>-        raise FTPReplyError, resp</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Changes the (remote) directory.</div><div class='del'>-    #</div><div class='del'>-    def chdir(dirname)</div><div class='del'>-      if dirname == ".."</div><div class='del'>-        begin</div><div class='del'>-          voidcmd("CDUP")</div><div class='del'>-          return</div><div class='del'>-        rescue FTPPermError =&gt; e</div><div class='del'>-          if e.message[0, 3] != "500"</div><div class='del'>-            raise e</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-      cmd = "CWD #{dirname}"</div><div class='del'>-      voidcmd(cmd)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    def get_body(resp) # :nodoc:</div><div class='del'>-      resp.slice(/\A[0-9a-zA-Z]{3} (.*)$/, 1)</div><div class='del'>-    end</div><div class='del'>-    private :get_body</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns the size of the given (remote) filename.</div><div class='del'>-    #</div><div class='del'>-    def size(filename)</div><div class='del'>-      with_binary(true) do</div><div class='del'>-        resp = sendcmd("SIZE #{filename}")</div><div class='del'>-        if !resp.start_with?("213")</div><div class='del'>-          raise FTPReplyError, resp</div><div class='del'>-        end</div><div class='del'>-        return get_body(resp).to_i</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns the last modification time of the (remote) file.  If +local+ is</div><div class='del'>-    # +true+, it is returned as a local time, otherwise it's a UTC time.</div><div class='del'>-    #</div><div class='del'>-    def mtime(filename, local = false)</div><div class='del'>-      return TIME_PARSER.(mdtm(filename), local)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Creates a remote directory.</div><div class='del'>-    #</div><div class='del'>-    def mkdir(dirname)</div><div class='del'>-      resp = sendcmd("MKD #{dirname}")</div><div class='del'>-      return parse257(resp)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Removes a remote directory.</div><div class='del'>-    #</div><div class='del'>-    def rmdir(dirname)</div><div class='del'>-      voidcmd("RMD #{dirname}")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns the current remote directory.</div><div class='del'>-    #</div><div class='del'>-    def pwd</div><div class='del'>-      resp = sendcmd("PWD")</div><div class='del'>-      return parse257(resp)</div><div class='del'>-    end</div><div class='del'>-    alias getdir pwd</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns system information.</div><div class='del'>-    #</div><div class='del'>-    def system</div><div class='del'>-      resp = sendcmd("SYST")</div><div class='del'>-      if !resp.start_with?("215")</div><div class='del'>-        raise FTPReplyError, resp</div><div class='del'>-      end</div><div class='del'>-      return get_body(resp)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Aborts the previous command (ABOR command).</div><div class='del'>-    #</div><div class='del'>-    def abort</div><div class='del'>-      line = "ABOR" + CRLF</div><div class='del'>-      print "put: ABOR\n" if @debug_mode</div><div class='del'>-      @sock.send(line, Socket::MSG_OOB)</div><div class='del'>-      resp = getmultiline</div><div class='del'>-      unless ["426", "226", "225"].include?(resp[0, 3])</div><div class='del'>-        raise FTPProtoError, resp</div><div class='del'>-      end</div><div class='del'>-      return resp</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns the status (STAT command).</div><div class='del'>-    # pathname - when stat is invoked with pathname as a parameter it acts like</div><div class='del'>-    #            list but alot faster and over the same tcp session.</div><div class='del'>-    #</div><div class='del'>-    def status(pathname = nil)</div><div class='del'>-      line = pathname ? "STAT #{pathname}" : "STAT"</div><div class='del'>-      if /[\r\n]/ =~ line</div><div class='del'>-        raise ArgumentError, "A line must not contain CR or LF"</div><div class='del'>-      end</div><div class='del'>-      print "put: #{line}\n" if @debug_mode</div><div class='del'>-      @sock.send(line + CRLF, Socket::MSG_OOB)</div><div class='del'>-      return getresp</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns the raw last modification time of the (remote) file in the format</div><div class='del'>-    # "YYYYMMDDhhmmss" (MDTM command).</div><div class='del'>-    #</div><div class='del'>-    # Use +mtime+ if you want a parsed Time instance.</div><div class='del'>-    #</div><div class='del'>-    def mdtm(filename)</div><div class='del'>-      resp = sendcmd("MDTM #{filename}")</div><div class='del'>-      if resp.start_with?("213")</div><div class='del'>-        return get_body(resp)</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Issues the HELP command.</div><div class='del'>-    #</div><div class='del'>-    def help(arg = nil)</div><div class='del'>-      cmd = "HELP"</div><div class='del'>-      if arg</div><div class='del'>-        cmd = cmd + " " + arg</div><div class='del'>-      end</div><div class='del'>-      sendcmd(cmd)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Exits the FTP session.</div><div class='del'>-    #</div><div class='del'>-    def quit</div><div class='del'>-      voidcmd("QUIT")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Issues a NOOP command.</div><div class='del'>-    #</div><div class='del'>-    # Does nothing except return a response.</div><div class='del'>-    #</div><div class='del'>-    def noop</div><div class='del'>-      voidcmd("NOOP")</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Issues a SITE command.</div><div class='del'>-    #</div><div class='del'>-    def site(arg)</div><div class='del'>-      cmd = "SITE " + arg</div><div class='del'>-      voidcmd(cmd)</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Closes the connection.  Further operations are impossible until you open</div><div class='del'>-    # a new connection with #connect.</div><div class='del'>-    #</div><div class='del'>-    def close</div><div class='del'>-      if @sock and not @sock.closed?</div><div class='del'>-        begin</div><div class='del'>-          @sock.shutdown(Socket::SHUT_WR) rescue nil</div><div class='del'>-          orig, self.read_timeout = self.read_timeout, 3</div><div class='del'>-          @sock.read rescue nil</div><div class='del'>-        ensure</div><div class='del'>-          @sock.close</div><div class='del'>-          self.read_timeout = orig</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Returns +true+ iff the connection is closed.</div><div class='del'>-    #</div><div class='del'>-    def closed?</div><div class='del'>-      @sock == nil or @sock.closed?</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # handler for response code 227</div><div class='del'>-    # (Entering Passive Mode (h1,h2,h3,h4,p1,p2))</div><div class='del'>-    #</div><div class='del'>-    # Returns host and port.</div><div class='del'>-    def parse227(resp) # :nodoc:</div><div class='del'>-      if !resp.start_with?("227")</div><div class='del'>-        raise FTPReplyError, resp</div><div class='del'>-      end</div><div class='del'>-      if m = /\((?&lt;host&gt;\d+(,\d+){3}),(?&lt;port&gt;\d+,\d+)\)/.match(resp)</div><div class='del'>-        return parse_pasv_ipv4_host(m["host"]), parse_pasv_port(m["port"])</div><div class='del'>-      else</div><div class='del'>-        raise FTPProtoError, resp</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    private :parse227</div><div class='del'>-</div><div class='del'>-    # handler for response code 228</div><div class='del'>-    # (Entering Long Passive Mode)</div><div class='del'>-    #</div><div class='del'>-    # Returns host and port.</div><div class='del'>-    def parse228(resp) # :nodoc:</div><div class='del'>-      if !resp.start_with?("228")</div><div class='del'>-        raise FTPReplyError, resp</div><div class='del'>-      end</div><div class='del'>-      if m = /\(4,4,(?&lt;host&gt;\d+(,\d+){3}),2,(?&lt;port&gt;\d+,\d+)\)/.match(resp)</div><div class='del'>-        return parse_pasv_ipv4_host(m["host"]), parse_pasv_port(m["port"])</div><div class='del'>-      elsif m = /\(6,16,(?&lt;host&gt;\d+(,(\d+)){15}),2,(?&lt;port&gt;\d+,\d+)\)/.match(resp)</div><div class='del'>-        return parse_pasv_ipv6_host(m["host"]), parse_pasv_port(m["port"])</div><div class='del'>-      else</div><div class='del'>-        raise FTPProtoError, resp</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    private :parse228</div><div class='del'>-</div><div class='del'>-    def parse_pasv_ipv4_host(s)</div><div class='del'>-      return s.tr(",", ".")</div><div class='del'>-    end</div><div class='del'>-    private :parse_pasv_ipv4_host</div><div class='del'>-</div><div class='del'>-    def parse_pasv_ipv6_host(s)</div><div class='del'>-      return s.split(/,/).map { |i|</div><div class='del'>-        "%02x" % i.to_i</div><div class='del'>-      }.each_slice(2).map(&amp;:join).join(":")</div><div class='del'>-    end</div><div class='del'>-    private :parse_pasv_ipv6_host</div><div class='del'>-</div><div class='del'>-    def parse_pasv_port(s)</div><div class='del'>-      return s.split(/,/).map(&amp;:to_i).inject { |x, y|</div><div class='del'>-        (x &lt;&lt; 8) + y</div><div class='del'>-      }</div><div class='del'>-    end</div><div class='del'>-    private :parse_pasv_port</div><div class='del'>-</div><div class='del'>-    # handler for response code 229</div><div class='del'>-    # (Extended Passive Mode Entered)</div><div class='del'>-    #</div><div class='del'>-    # Returns host and port.</div><div class='del'>-    def parse229(resp) # :nodoc:</div><div class='del'>-      if !resp.start_with?("229")</div><div class='del'>-        raise FTPReplyError, resp</div><div class='del'>-      end</div><div class='del'>-      if m = /\((?&lt;d&gt;[!-~])\k&lt;d&gt;\k&lt;d&gt;(?&lt;port&gt;\d+)\k&lt;d&gt;\)/.match(resp)</div><div class='del'>-        return @bare_sock.remote_address.ip_address, m["port"].to_i</div><div class='del'>-      else</div><div class='del'>-        raise FTPProtoError, resp</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    private :parse229</div><div class='del'>-</div><div class='del'>-    # handler for response code 257</div><div class='del'>-    # ("PATHNAME" created)</div><div class='del'>-    #</div><div class='del'>-    # Returns host and port.</div><div class='del'>-    def parse257(resp) # :nodoc:</div><div class='del'>-      if !resp.start_with?("257")</div><div class='del'>-        raise FTPReplyError, resp</div><div class='del'>-      end</div><div class='del'>-      return resp.slice(/"(([^"]|"")*)"/, 1).to_s.gsub(/""/, '"')</div><div class='del'>-    end</div><div class='del'>-    private :parse257</div><div class='del'>-</div><div class='del'>-    # :stopdoc:</div><div class='del'>-    class NullSocket</div><div class='del'>-      def read_timeout=(sec)</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def closed?</div><div class='del'>-        true</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def close</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def method_missing(mid, *args)</div><div class='del'>-        raise FTPConnectionError, "not connected"</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    class BufferedSocket &lt; BufferedIO</div><div class='del'>-      [:local_address, :remote_address, :addr, :peeraddr, :send, :shutdown].each do |method|</div><div class='del'>-        define_method(method) { |*args|</div><div class='del'>-          @io.__send__(method, *args)</div><div class='del'>-        }</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def read(len = nil)</div><div class='del'>-        if len</div><div class='del'>-          s = super(len, String.new, true)</div><div class='del'>-          return s.empty? ? nil : s</div><div class='del'>-        else</div><div class='del'>-          result = String.new</div><div class='del'>-          while s = super(DEFAULT_BLOCKSIZE, String.new, true)</div><div class='del'>-            break if s.empty?</div><div class='del'>-            result &lt;&lt; s</div><div class='del'>-          end</div><div class='del'>-          return result</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def gets</div><div class='del'>-        line = readuntil("\n", true)</div><div class='del'>-        return line.empty? ? nil : line</div><div class='del'>-      end</div><div class='del'>-</div><div class='del'>-      def readline</div><div class='del'>-        line = gets</div><div class='del'>-        if line.nil?</div><div class='del'>-          raise EOFError, "end of file reached"</div><div class='del'>-        end</div><div class='del'>-        return line</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    if defined?(OpenSSL::SSL::SSLSocket)</div><div class='del'>-      class BufferedSSLSocket &lt;  BufferedSocket</div><div class='del'>-        def initialize(*args)</div><div class='del'>-          super</div><div class='del'>-          @is_shutdown = false</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def shutdown(*args)</div><div class='del'>-          # SSL_shutdown() will be called from SSLSocket#close, and</div><div class='del'>-          # SSL_shutdown() will send the "close notify" alert to the peer,</div><div class='del'>-          # so shutdown(2) should not be called.</div><div class='del'>-          @is_shutdown = true</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        def send(mesg, flags, dest = nil)</div><div class='del'>-          # Ignore flags and dest.</div><div class='del'>-          @io.write(mesg)</div><div class='del'>-        end</div><div class='del'>-</div><div class='del'>-        private</div><div class='del'>-</div><div class='del'>-        def rbuf_fill</div><div class='del'>-          if @is_shutdown</div><div class='del'>-            raise EOFError, "shutdown has been called"</div><div class='del'>-          else</div><div class='del'>-            super</div><div class='del'>-          end</div><div class='del'>-        end</div><div class='del'>-      end</div><div class='del'>-    end</div><div class='del'>-    # :startdoc:</div><div class='del'>-  end</div><div class='del'>-end</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-# Documentation comments:</div><div class='del'>-#  - sourced from pickaxe and nutshell, with improvements (hopefully)</div><div class='head'>diff --git a/lib/net/http.rb b/lib/net/http.rb<br/>index 31cbb7a866..387df4b8f4 100644<br/>--- a/<a href='/ruby.git/tree/lib/net/http.rb?h=v3_2_9&amp;id=6f91160fa9413e501239ab883dacc5064d0a2661'>lib/net/http.rb</a><br/>+++ b/<a href='/ruby.git/tree/lib/net/http.rb?h=v3_2_9&amp;id=8f611e0c46012e321b39efd629eb5f4f53976863'>lib/net/http.rb</a></div><div class='hunk'>@@ -1,4 +1,4 @@</div><div class='del'>-# frozen_string_literal: false</div><div class='add'>+# frozen_string_literal: true</div><div class='ctx'> #</div><div class='ctx'> # = net/http.rb</div><div class='ctx'> #</div><div class='hunk'>@@ -20,8 +20,9 @@</div><div class='ctx'> # See Net::HTTP for an overview and examples.</div><div class='ctx'> #</div><div class='ctx'> </div><div class='del'>-require_relative 'protocol'</div><div class='add'>+require 'net/protocol'</div><div class='ctx'> require 'uri'</div><div class='add'>+require 'resolv'</div><div class='ctx'> autoload :OpenSSL, 'openssl'</div><div class='ctx'> </div><div class='ctx'> module Net   #:nodoc:</div><div class='hunk'>@@ -31,386 +32,717 @@ module Net   #:nodoc:</div><div class='ctx'>   class HTTPHeaderSyntaxError &lt; StandardError; end</div><div class='ctx'>   # :startdoc:</div><div class='ctx'> </div><div class='del'>-  # == An HTTP client API for Ruby.</div><div class='add'>+  # \Class \Net::HTTP provides a rich library that implements the client</div><div class='add'>+  # in a client-server model that uses the \HTTP request-response protocol.</div><div class='add'>+  # For information about \HTTP, see:</div><div class='add'>+  #</div><div class='add'>+  # - {Hypertext Transfer Protocol}[https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol].</div><div class='add'>+  # - {Technical overview}[https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Technical_overview].</div><div class='add'>+  #</div><div class='add'>+  # == About the Examples</div><div class='add'>+  #</div><div class='add'>+  # :include: doc/net-http/examples.rdoc</div><div class='add'>+  #</div><div class='add'>+  # == Strategies</div><div class='add'>+  #</div><div class='add'>+  # - If you will make only a few GET requests,</div><div class='add'>+  #   consider using {OpenURI}[rdoc-ref:OpenURI].</div><div class='add'>+  # - If you will make only a few requests of all kinds,</div><div class='add'>+  #   consider using the various singleton convenience methods in this class.</div><div class='add'>+  #   Each of the following methods automatically starts and finishes</div><div class='add'>+  #   a {session}[rdoc-ref:Net::HTTP@Sessions] that sends a single request:</div><div class='add'>+  #</div><div class='add'>+  #     # Return string response body.</div><div class='add'>+  #     Net::HTTP.get(hostname, path)</div><div class='add'>+  #     Net::HTTP.get(uri)</div><div class='add'>+  #</div><div class='add'>+  #     # Write string response body to $stdout.</div><div class='add'>+  #     Net::HTTP.get_print(hostname, path)</div><div class='add'>+  #     Net::HTTP.get_print(uri)</div><div class='add'>+  #</div><div class='add'>+  #     # Return response as Net::HTTPResponse object.</div><div class='add'>+  #     Net::HTTP.get_response(hostname, path)</div><div class='add'>+  #     Net::HTTP.get_response(uri)</div><div class='add'>+  #     data = '{"title": "foo", "body": "bar", "userId": 1}'</div><div class='add'>+  #     Net::HTTP.post(uri, data)</div><div class='add'>+  #     params = {title: 'foo', body: 'bar', userId: 1}</div><div class='add'>+  #     Net::HTTP.post_form(uri, params)</div><div class='add'>+  #</div><div class='add'>+  # - If performance is important, consider using sessions, which lower request overhead.</div><div class='add'>+  #   This {session}[rdoc-ref:Net::HTTP@Sessions] has multiple requests for</div><div class='add'>+  #   {HTTP methods}[https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods]</div><div class='add'>+  #   and {WebDAV methods}[https://en.wikipedia.org/wiki/WebDAV#Implementation]:</div><div class='add'>+  #</div><div class='add'>+  #     Net::HTTP.start(hostname) do |http|</div><div class='add'>+  #       # Session started automatically before block execution.</div><div class='add'>+  #       http.get(path)</div><div class='add'>+  #       http.head(path)</div><div class='add'>+  #       body = 'Some text'</div><div class='add'>+  #       http.post(path, body)  # Can also have a block.</div><div class='add'>+  #       http.put(path, body)</div><div class='add'>+  #       http.delete(path)</div><div class='add'>+  #       http.options(path)</div><div class='add'>+  #       http.trace(path)</div><div class='add'>+  #       http.patch(path, body) # Can also have a block.</div><div class='add'>+  #       http.copy(path)</div><div class='add'>+  #       http.lock(path, body)</div><div class='add'>+  #       http.mkcol(path, body)</div><div class='add'>+  #       http.move(path)</div><div class='add'>+  #       http.propfind(path, body)</div><div class='add'>+  #       http.proppatch(path, body)</div><div class='add'>+  #       http.unlock(path, body)</div><div class='add'>+  #       # Session finished automatically at block exit.</div><div class='add'>+  #     end</div><div class='ctx'>   #</div><div class='del'>-  # Net::HTTP provides a rich library which can be used to build HTTP</div><div class='del'>-  # user-agents.  For more details about HTTP see</div><div class='del'>-  # [RFC2616](http://www.ietf.org/rfc/rfc2616.txt).</div><div class='add'>+  # The methods cited above are convenience methods that, via their few arguments,</div><div class='add'>+  # allow minimal control over the requests.</div><div class='add'>+  # For greater control, consider using {request objects}[rdoc-ref:Net::HTTPRequest].</div><div class='ctx'>   #</div><div class='del'>-  # Net::HTTP is designed to work closely with URI.  URI::HTTP#host,</div><div class='del'>-  # URI::HTTP#port and URI::HTTP#request_uri are designed to work with</div><div class='del'>-  # Net::HTTP.</div><div class='add'>+  # == URIs</div><div class='ctx'>   #</div><div class='del'>-  # If you are only performing a few GET requests you should try OpenURI.</div><div class='add'>+  # On the internet, a URI</div><div class='add'>+  # ({Universal Resource Identifier}[https://en.wikipedia.org/wiki/Uniform_Resource_Identifier])</div><div class='add'>+  # is a string that identifies a particular resource.</div><div class='add'>+  # It consists of some or all of: scheme, hostname, path, query, and fragment;</div><div class='add'>+  # see {URI syntax}[https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Syntax].</div><div class='ctx'>   #</div><div class='del'>-  # == Simple Examples</div><div class='add'>+  # A Ruby {URI::Generic}[rdoc-ref:URI::Generic] object</div><div class='add'>+  # represents an internet URI.</div><div class='add'>+  # It provides, among others, methods</div><div class='add'>+  # +scheme+, +hostname+, +path+, +query+, and +fragment+.</div><div class='ctx'>   #</div><div class='del'>-  # All examples assume you have loaded Net::HTTP with:</div><div class='add'>+  # === Schemes</div><div class='ctx'>   #</div><div class='del'>-  #   require 'net/http'</div><div class='add'>+  # An internet \URI has</div><div class='add'>+  # a {scheme}[https://en.wikipedia.org/wiki/List_of_URI_schemes].</div><div class='ctx'>   #</div><div class='del'>-  # This will also require 'uri' so you don't need to require it separately.</div><div class='add'>+  # The two schemes supported in \Net::HTTP are &lt;tt&gt;'https'&lt;/tt&gt; and &lt;tt&gt;'http'&lt;/tt&gt;:</div><div class='ctx'>   #</div><div class='del'>-  # The Net::HTTP methods in the following section do not persist</div><div class='del'>-  # connections.  They are not recommended if you are performing many HTTP</div><div class='del'>-  # requests.</div><div class='add'>+  #   uri.scheme                       # =&gt; "https"</div><div class='add'>+  #   URI('http://example.com').scheme # =&gt; "http"</div><div class='ctx'>   #</div><div class='del'>-  # === GET</div><div class='add'>+  # === Hostnames</div><div class='ctx'>   #</div><div class='del'>-  #   Net::HTTP.get('example.com', '/index.html') # =&gt; String</div><div class='add'>+  # A hostname identifies a server (host) to which requests may be sent:</div><div class='ctx'>   #</div><div class='del'>-  # === GET by URI</div><div class='add'>+  #   hostname = uri.hostname # =&gt; "jsonplaceholder.typicode.com"</div><div class='add'>+  #   Net::HTTP.start(hostname) do |http|</div><div class='add'>+  #     # Some HTTP stuff.</div><div class='add'>+  #   end</div><div class='ctx'>   #</div><div class='del'>-  #   uri = URI('http://example.com/index.html?count=10')</div><div class='del'>-  #   Net::HTTP.get(uri) # =&gt; String</div><div class='add'>+  # === Paths</div><div class='ctx'>   #</div><div class='del'>-  # === GET with Dynamic Parameters</div><div class='add'>+  # A host-specific path identifies a resource on the host:</div><div class='ctx'>   #</div><div class='del'>-  #   uri = URI('http://example.com/index.html')</div><div class='del'>-  #   params = { :limit =&gt; 10, :page =&gt; 3 }</div><div class='del'>-  #   uri.query = URI.encode_www_form(params)</div><div class='add'>+  #   _uri = uri.dup</div><div class='add'>+  #   _uri.path = '/todos/1'</div><div class='add'>+  #   hostname = _uri.hostname</div><div class='add'>+  #   path = _uri.path</div><div class='add'>+  #   Net::HTTP.get(hostname, path)</div><div class='ctx'>   #</div><div class='del'>-  #   res = Net::HTTP.get_response(uri)</div><div class='del'>-  #   puts res.body if res.is_a?(Net::HTTPSuccess)</div><div class='add'>+  # === Queries</div><div class='ctx'>   #</div><div class='del'>-  # === POST</div><div class='add'>+  # A host-specific query adds name/value pairs to the URI:</div><div class='ctx'>   #</div><div class='del'>-  #   uri = URI('http://www.example.com/search.cgi')</div><div class='del'>-  #   res = Net::HTTP.post_form(uri, 'q' =&gt; 'ruby', 'max' =&gt; '50')</div><div class='del'>-  #   puts res.body</div><div class='add'>+  #   _uri = uri.dup</div><div class='add'>+  #   params = {userId: 1, completed: false}</div><div class='add'>+  #   _uri.query = URI.encode_www_form(params)</div><div class='add'>+  #   _uri # =&gt; #&lt;URI::HTTPS https://jsonplaceholder.typicode.com?userId=1&amp;completed=false&gt;</div><div class='add'>+  #   Net::HTTP.get(_uri)</div><div class='ctx'>   #</div><div class='del'>-  # === POST with Multiple Values</div><div class='add'>+  # === Fragments</div><div class='ctx'>   #</div><div class='del'>-  #   uri = URI('http://www.example.com/search.cgi')</div><div class='del'>-  #   res = Net::HTTP.post_form(uri, 'q' =&gt; ['ruby', 'perl'], 'max' =&gt; '50')</div><div class='del'>-  #   puts res.body</div><div class='add'>+  # A {URI fragment}[https://en.wikipedia.org/wiki/URI_fragment] has no effect</div><div class='add'>+  # in \Net::HTTP;</div><div class='add'>+  # the same data is returned, regardless of whether a fragment is included.</div><div class='ctx'>   #</div><div class='del'>-  # == How to use Net::HTTP</div><div class='add'>+  # == Request Headers</div><div class='ctx'>   #</div><div class='del'>-  # The following example code can be used as the basis of an HTTP user-agent</div><div class='del'>-  # which can perform a variety of request types using persistent</div><div class='del'>-  # connections.</div><div class='add'>+  # Request headers may be used to pass additional information to the host,</div><div class='add'>+  # similar to arguments passed in a method call;</div><div class='add'>+  # each header is a name/value pair.</div><div class='ctx'>   #</div><div class='del'>-  #   uri = URI('http://example.com/some_path?query=string')</div><div class='add'>+  # Each of the \Net::HTTP methods that sends a request to the host</div><div class='add'>+  # has optional argument +headers+,</div><div class='add'>+  # where the headers are expressed as a hash of field-name/value pairs:</div><div class='ctx'>   #</div><div class='del'>-  #   Net::HTTP.start(uri.host, uri.port) do |http|</div><div class='del'>-  #     request = Net::HTTP::Get.new uri</div><div class='add'>+  #   headers = {Accept: 'application/json', Connection: 'Keep-Alive'}</div><div class='add'>+  #   Net::HTTP.get(uri, headers)</div><div class='ctx'>   #</div><div class='del'>-  #     response = http.request request # Net::HTTPResponse object</div><div class='del'>-  #   end</div><div class='add'>+  # See lists of both standard request fields and common request fields at</div><div class='add'>+  # {Request Fields}[https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Request_fields].</div><div class='add'>+  # A host may also accept other custom fields.</div><div class='ctx'>   #</div><div class='del'>-  # Net::HTTP::start immediately creates a connection to an HTTP server which</div><div class='del'>-  # is kept open for the duration of the block.  The connection will remain</div><div class='del'>-  # open for multiple requests in the block if the server indicates it</div><div class='del'>-  # supports persistent connections.</div><div class='add'>+  # == \HTTP Sessions</div><div class='ctx'>   #</div><div class='del'>-  # If you wish to re-use a connection across multiple HTTP requests without</div><div class='del'>-  # automatically closing it you can use ::new and then call #start and</div><div class='del'>-  # #finish manually.</div><div class='add'>+  # A _session_ is a connection between a server (host) and a client that:</div><div class='ctx'>   #</div><div class='del'>-  # The request types Net::HTTP supports are listed below in the section "HTTP</div><div class='del'>-  # Request Classes".</div><div class='add'>+  # - Is begun by instance method Net::HTTP#start.</div><div class='add'>+  # - May contain any number of requests.</div><div class='add'>+  # - Is ended by instance method Net::HTTP#finish.</div><div class='ctx'>   #</div><div class='del'>-  # For all the Net::HTTP request objects and shortcut request methods you may</div><div class='del'>-  # supply either a String for the request path or a URI from which Net::HTTP</div><div class='del'>-  # will extract the request path.</div><div class='add'>+  # See example sessions at {Strategies}[rdoc-ref:Net::HTTP@Strategies].</div><div class='ctx'>   #</div><div class='del'>-  # === Response Data</div><div class='add'>+  # === Session Using \Net::HTTP.start</div><div class='ctx'>   #</div><div class='del'>-  #   uri = URI('http://example.com/index.html')</div><div class='del'>-  #   res = Net::HTTP.get_response(uri)</div><div class='add'>+  # If you have many requests to make to a single host (and port),</div><div class='add'>+  # consider using singleton method Net::HTTP.start with a block;</div><div class='add'>+  # the method handles the session automatically by:</div><div class='ctx'>   #</div><div class='del'>-  #   # Headers</div><div class='del'>-  #   res['Set-Cookie']            # =&gt; String</div><div class='del'>-  #   res.get_fields('set-cookie') # =&gt; Array</div><div class='del'>-  #   res.to_hash['set-cookie']    # =&gt; Array</div><div class='del'>-  #   puts "Headers: #{res.to_hash.inspect}"</div><div class='add'>+  # - Calling #start before block execution.</div><div class='add'>+  # - Executing the block.</div><div class='add'>+  # - Calling #finish after block execution.</div><div class='ctx'>   #</div><div class='del'>-  #   # Status</div><div class='del'>-  #   puts res.code       # =&gt; '200'</div><div class='del'>-  #   puts res.message    # =&gt; 'OK'</div><div class='del'>-  #   puts res.class.name # =&gt; 'HTTPOK'</div><div class='add'>+  # In the block, you can use these instance methods,</div><div class='add'>+  # each of which that sends a single request:</div><div class='ctx'>   #</div><div class='del'>-  #   # Body</div><div class='del'>-  #   puts res.body if res.response_body_permitted?</div><div class='add'>+  # - {HTTP methods}[https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods]:</div><div class='ctx'>   #</div><div class='del'>-  # === Following Redirection</div><div class='add'>+  #   - #get, #request_get: GET.</div><div class='add'>+  #   - #head, #request_head: HEAD.</div><div class='add'>+  #   - #post, #request_post: POST.</div><div class='add'>+  #   - #delete: DELETE.</div><div class='add'>+  #   - #options: OPTIONS.</div><div class='add'>+  #   - #trace: TRACE.</div><div class='add'>+  #   - #patch: PATCH.</div><div class='ctx'>   #</div><div class='del'>-  # Each Net::HTTPResponse object belongs to a class for its response code.</div><div class='add'>+  # - {WebDAV methods}[https://en.wikipedia.org/wiki/WebDAV#Implementation]:</div><div class='ctx'>   #</div><div class='del'>-  # For example, all 2XX responses are instances of a Net::HTTPSuccess</div><div class='del'>-  # subclass, a 3XX response is an instance of a Net::HTTPRedirection</div><div class='del'>-  # subclass and a 200 response is an instance of the Net::HTTPOK class.  For</div><div class='del'>-  # details of response classes, see the section "HTTP Response Classes"</div><div class='del'>-  # below.</div><div class='add'>+  #   - #copy: COPY.</div><div class='add'>+  #   - #lock: LOCK.</div><div class='add'>+  #   - #mkcol: MKCOL.</div><div class='add'>+  #   - #move: MOVE.</div><div class='add'>+  #   - #propfind: PROPFIND.</div><div class='add'>+  #   - #proppatch: PROPPATCH.</div><div class='add'>+  #   - #unlock: UNLOCK.</div><div class='ctx'>   #</div><div class='del'>-  # Using a case statement you can handle various types of responses properly:</div><div class='add'>+  # === Session Using \Net::HTTP.start and \Net::HTTP.finish</div><div class='ctx'>   #</div><div class='del'>-  #   def fetch(uri_str, limit = 10)</div><div class='del'>-  #     # You should choose a better exception.</div><div class='del'>-  #     raise ArgumentError, 'too many HTTP redirects' if limit == 0</div><div class='add'>+  # You can manage a session manually using methods #start and #finish:</div><div class='ctx'>   #</div><div class='del'>-  #     response = Net::HTTP.get_response(URI(uri_str))</div><div class='add'>+  #   http = Net::HTTP.new(hostname)</div><div class='add'>+  #   http.start</div><div class='add'>+  #   http.get('/todos/1')</div><div class='add'>+  #   http.get('/todos/2')</div><div class='add'>+  #   http.delete('/posts/1')</div><div class='add'>+  #   http.finish # Needed to free resources.</div><div class='ctx'>   #</div><div class='del'>-  #     case response</div><div class='del'>-  #     when Net::HTTPSuccess then</div><div class='del'>-  #       response</div><div class='del'>-  #     when Net::HTTPRedirection then</div><div class='del'>-  #       location = response['location']</div><div class='del'>-  #       warn "redirected to #{location}"</div><div class='del'>-  #       fetch(location, limit - 1)</div><div class='del'>-  #     else</div><div class='del'>-  #       response.value</div><div class='del'>-  #     end</div><div class='del'>-  #   end</div><div class='add'>+  # === Single-Request Session</div><div class='ctx'>   #</div><div class='del'>-  #   print fetch('http://www.ruby-lang.org')</div><div class='add'>+  # Certain convenience methods automatically handle a session by:</div><div class='ctx'>   #</div><div class='del'>-  # === POST</div><div class='add'>+  # - Creating an \HTTP object</div><div class='add'>+  # - Starting a session.</div><div class='add'>+  # - Sending a single request.</div><div class='add'>+  # - Finishing the session.</div><div class='add'>+  # - Destroying the object.</div><div class='ctx'>   #</div><div class='del'>-  # A POST can be made using the Net::HTTP::Post request class.  This example</div><div class='del'>-  # creates a URL encoded POST body:</div><div class='add'>+  # Such methods that send GET requests:</div><div class='ctx'>   #</div><div class='del'>-  #   uri = URI('http://www.example.com/todo.cgi')</div><div class='del'>-  #   req = Net::HTTP::Post.new(uri)</div><div class='del'>-  #   req.set_form_data('from' =&gt; '2005-01-01', 'to' =&gt; '2005-03-31')</div><div class='add'>+  # - ::get: Returns the string response body.</div><div class='add'>+  # - ::get_print: Writes the string response body to $stdout.</div><div class='add'>+  # - ::get_response: Returns a Net::HTTPResponse object.</div><div class='ctx'>   #</div><div class='del'>-  #   res = Net::HTTP.start(uri.hostname, uri.port) do |http|</div><div class='del'>-  #     http.request(req)</div><div class='del'>-  #   end</div><div class='add'>+  # Such methods that send POST requests:</div><div class='ctx'>   #</div><div class='del'>-  #   case res</div><div class='del'>-  #   when Net::HTTPSuccess, Net::HTTPRedirection</div><div class='del'>-  #     # OK</div><div class='del'>-  #   else</div><div class='del'>-  #     res.value</div><div class='del'>-  #   end</div><div class='add'>+  # - ::post: Posts data to the host.</div><div class='add'>+  # - ::post_form: Posts form data to the host.</div><div class='ctx'>   #</div><div class='del'>-  # To send multipart/form-data use Net::HTTPHeader#set_form:</div><div class='add'>+  # == \HTTP Requests and Responses</div><div class='ctx'>   #</div><div class='del'>-  #   req = Net::HTTP::Post.new(uri)</div><div class='del'>-  #   req.set_form([['upload', File.open('foo.bar')]], 'multipart/form-data')</div><div class='add'>+  # Many of the methods above are convenience methods,</div><div class='add'>+  # each of which sends a request and returns a string</div><div class='add'>+  # without directly using \Net::HTTPRequest and \Net::HTTPResponse objects.</div><div class='ctx'>   #</div><div class='del'>-  # Other requests that can contain a body such as PUT can be created in the</div><div class='del'>-  # same way using the corresponding request class (Net::HTTP::Put).</div><div class='add'>+  # You can, however, directly create a request object, send the request,</div><div class='add'>+  # and retrieve the response object; see:</div><div class='ctx'>   #</div><div class='del'>-  # === Setting Headers</div><div class='add'>+  # - Net::HTTPRequest.</div><div class='add'>+  # - Net::HTTPResponse.</div><div class='ctx'>   #</div><div class='del'>-  # The following example performs a conditional GET using the</div><div class='del'>-  # If-Modified-Since header.  If the files has not been modified since the</div><div class='del'>-  # time in the header a Not Modified response will be returned.  See RFC 2616</div><div class='del'>-  # section 9.3 for further details.</div><div class='add'>+  # == Following Redirection</div><div class='ctx'>   #</div><div class='del'>-  #   uri = URI('http://example.com/cached_response')</div><div class='del'>-  #   file = File.stat 'cached_response'</div><div class='add'>+  # Each returned response is an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+  # See the {response class hierarchy}[rdoc-ref:Net::HTTPResponse@Response+Subclasses].</div><div class='ctx'>   #</div><div class='del'>-  #   req = Net::HTTP::Get.new(uri)</div><div class='del'>-  #   req['If-Modified-Since'] = file.mtime.rfc2822</div><div class='add'>+  # In particular, class Net::HTTPRedirection is the parent</div><div class='add'>+  # of all redirection classes.</div><div class='add'>+  # This allows you to craft a case statement to handle redirections properly:</div><div class='ctx'>   #</div><div class='del'>-  #   res = Net::HTTP.start(uri.hostname, uri.port) {|http|</div><div class='del'>-  #     http.request(req)</div><div class='del'>-  #   }</div><div class='add'>+  #   def fetch(uri, limit = 10)</div><div class='add'>+  #     # You should choose a better exception.</div><div class='add'>+  #     raise ArgumentError, 'Too many HTTP redirects' if limit == 0</div><div class='add'>+  #</div><div class='add'>+  #     res = Net::HTTP.get_response(URI(uri))</div><div class='add'>+  #     case res</div><div class='add'>+  #     when Net::HTTPSuccess     # Any success class.</div><div class='add'>+  #       res</div><div class='add'>+  #     when Net::HTTPRedirection # Any redirection class.</div><div class='add'>+  #       location = res['Location']</div><div class='add'>+  #       warn "Redirected to #{location}"</div><div class='add'>+  #       fetch(location, limit - 1)</div><div class='add'>+  #     else                      # Any other class.</div><div class='add'>+  #       res.value</div><div class='add'>+  #     end</div><div class='add'>+  #   end</div><div class='ctx'>   #</div><div class='del'>-  #   open 'cached_response', 'w' do |io|</div><div class='del'>-  #     io.write res.body</div><div class='del'>-  #   end if res.is_a?(Net::HTTPSuccess)</div><div class='add'>+  #   fetch(uri)</div><div class='ctx'>   #</div><div class='del'>-  # === Basic Authentication</div><div class='add'>+  # == Basic Authentication</div><div class='ctx'>   #</div><div class='ctx'>   # Basic authentication is performed according to</div><div class='del'>-  # [RFC2617](http://www.ietf.org/rfc/rfc2617.txt).</div><div class='del'>-  #</div><div class='del'>-  #   uri = URI('http://example.com/index.html?key=value')</div><div class='add'>+  # {RFC2617}[http://www.ietf.org/rfc/rfc2617.txt]:</div><div class='ctx'>   #</div><div class='ctx'>   #   req = Net::HTTP::Get.new(uri)</div><div class='del'>-  #   req.basic_auth 'user', 'pass'</div><div class='del'>-  #</div><div class='del'>-  #   res = Net::HTTP.start(uri.hostname, uri.port) {|http|</div><div class='add'>+  #   req.basic_auth('user', 'pass')</div><div class='add'>+  #   res = Net::HTTP.start(hostname) do |http|</div><div class='ctx'>   #     http.request(req)</div><div class='del'>-  #   }</div><div class='del'>-  #   puts res.body</div><div class='add'>+  #   end</div><div class='ctx'>   #</div><div class='del'>-  # === Streaming Response Bodies</div><div class='add'>+  # == Streaming Response Bodies</div><div class='ctx'>   #</div><div class='del'>-  # By default Net::HTTP reads an entire response into memory.  If you are</div><div class='add'>+  # By default \Net::HTTP reads an entire response into memory.  If you are</div><div class='ctx'>   # handling large files or wish to implement a progress bar you can instead</div><div class='ctx'>   # stream the body directly to an IO.</div><div class='ctx'>   #</div><div class='del'>-  #   uri = URI('http://example.com/large_file')</div><div class='del'>-  #</div><div class='del'>-  #   Net::HTTP.start(uri.host, uri.port) do |http|</div><div class='del'>-  #     request = Net::HTTP::Get.new uri</div><div class='del'>-  #</div><div class='del'>-  #     http.request request do |response|</div><div class='del'>-  #       open 'large_file', 'w' do |io|</div><div class='del'>-  #         response.read_body do |chunk|</div><div class='del'>-  #           io.write chunk</div><div class='add'>+  #   Net::HTTP.start(hostname) do |http|</div><div class='add'>+  #     req = Net::HTTP::Get.new(uri)</div><div class='add'>+  #     http.request(req) do |res|</div><div class='add'>+  #       open('t.tmp', 'w') do |f|</div><div class='add'>+  #         res.read_body do |chunk|</div><div class='add'>+  #           f.write chunk</div><div class='ctx'>   #         end</div><div class='ctx'>   #       end</div><div class='ctx'>   #     end</div><div class='ctx'>   #   end</div><div class='ctx'>   #</div><div class='del'>-  # === HTTPS</div><div class='del'>-  #</div><div class='del'>-  # HTTPS is enabled for an HTTP connection by Net::HTTP#use_ssl=.</div><div class='add'>+  # == HTTPS</div><div class='ctx'>   #</div><div class='del'>-  #   uri = URI('https://secure.example.com/some_path?query=string')</div><div class='add'>+  # HTTPS is enabled for an \HTTP connection by Net::HTTP#use_ssl=:</div><div class='ctx'>   #</div><div class='del'>-  #   Net::HTTP.start(uri.host, uri.port, :use_ssl =&gt; true) do |http|</div><div class='del'>-  #     request = Net::HTTP::Get.new uri</div><div class='del'>-  #     response = http.request request # Net::HTTPResponse object</div><div class='add'>+  #   Net::HTTP.start(hostname, :use_ssl =&gt; true) do |http|</div><div class='add'>+  #     req = Net::HTTP::Get.new(uri)</div><div class='add'>+  #     res = http.request(req)</div><div class='ctx'>   #   end</div><div class='ctx'>   #</div><div class='del'>-  # Or if you simply want to make a GET request, you may pass in an URI</div><div class='del'>-  # object that has an HTTPS URL. Net::HTTP automatically turns on TLS</div><div class='del'>-  # verification if the URI object has a 'https' URI scheme.</div><div class='add'>+  # Or if you simply want to make a GET request, you may pass in a URI</div><div class='add'>+  # object that has an \HTTPS URL. \Net::HTTP automatically turns on TLS</div><div class='add'>+  # verification if the URI object has a 'https' URI scheme:</div><div class='add'>+  #</div><div class='add'>+  #   uri # =&gt; #&lt;URI::HTTPS https://jsonplaceholder.typicode.com/&gt;</div><div class='add'>+  #   Net::HTTP.get(uri)</div><div class='add'>+  #</div><div class='add'>+  # == Proxy Server</div><div class='add'>+  #</div><div class='add'>+  # An \HTTP object can have</div><div class='add'>+  # a {proxy server}[https://en.wikipedia.org/wiki/Proxy_server].</div><div class='add'>+  #</div><div class='add'>+  # You can create an \HTTP object with a proxy server</div><div class='add'>+  # using method Net::HTTP.new or method Net::HTTP.start.</div><div class='add'>+  #</div><div class='add'>+  # The proxy may be defined either by argument +p_addr+</div><div class='add'>+  # or by environment variable &lt;tt&gt;'http_proxy'&lt;/tt&gt;.</div><div class='add'>+  #</div><div class='add'>+  # === Proxy Using Argument +p_addr+ as a \String</div><div class='add'>+  #</div><div class='add'>+  # When argument +p_addr+ is a string hostname,</div><div class='add'>+  # the returned +http+ has the given host as its proxy:</div><div class='add'>+  #</div><div class='add'>+  #   http = Net::HTTP.new(hostname, nil, 'proxy.example')</div><div class='add'>+  #   http.proxy?          # =&gt; true</div><div class='add'>+  #   http.proxy_from_env? # =&gt; false</div><div class='add'>+  #   http.proxy_address   # =&gt; "proxy.example"</div><div class='add'>+  #   # These use default values.</div><div class='add'>+  #   http.proxy_port      # =&gt; 80</div><div class='add'>+  #   http.proxy_user      # =&gt; nil</div><div class='add'>+  #   http.proxy_pass      # =&gt; nil</div><div class='add'>+  #</div><div class='add'>+  # The port, username, and password for the proxy may also be given:</div><div class='add'>+  #</div><div class='add'>+  #   http = Net::HTTP.new(hostname, nil, 'proxy.example', 8000, 'pname', 'ppass')</div><div class='add'>+  #   # =&gt; #&lt;Net::HTTP jsonplaceholder.typicode.com:80 open=false&gt;</div><div class='add'>+  #   http.proxy?          # =&gt; true</div><div class='add'>+  #   http.proxy_from_env? # =&gt; false</div><div class='add'>+  #   http.proxy_address   # =&gt; "proxy.example"</div><div class='add'>+  #   http.proxy_port      # =&gt; 8000</div><div class='add'>+  #   http.proxy_user      # =&gt; "pname"</div><div class='add'>+  #   http.proxy_pass      # =&gt; "ppass"</div><div class='ctx'>   #</div><div class='del'>-  #   uri = URI('https://example.com/')</div><div class='del'>-  #   Net::HTTP.get(uri) # =&gt; String</div><div class='add'>+  # === Proxy Using '&lt;tt&gt;ENV['http_proxy']&lt;/tt&gt;'</div><div class='ctx'>   #</div><div class='del'>-  # In previous versions of Ruby you would need to require 'net/https' to use</div><div class='del'>-  # HTTPS. This is no longer true.</div><div class='add'>+  # When environment variable &lt;tt&gt;'http_proxy'&lt;/tt&gt;</div><div class='add'>+  # is set to a \URI string,</div><div class='add'>+  # the returned +http+ will have the server at that URI as its proxy;</div><div class='add'>+  # note that the \URI string must have a protocol</div><div class='add'>+  # such as &lt;tt&gt;'http'&lt;/tt&gt; or &lt;tt&gt;'https'&lt;/tt&gt;:</div><div class='add'>+  #</div><div class='add'>+  #   ENV['http_proxy'] = 'http://example.com'</div><div class='add'>+  #   http = Net::HTTP.new(hostname)</div><div class='add'>+  #   http.proxy?          # =&gt; true</div><div class='add'>+  #   http.proxy_from_env? # =&gt; true</div><div class='add'>+  #   http.proxy_address   # =&gt; "example.com"</div><div class='add'>+  #   # These use default values.</div><div class='add'>+  #   http.proxy_port      # =&gt; 80</div><div class='add'>+  #   http.proxy_user      # =&gt; nil</div><div class='add'>+  #   http.proxy_pass      # =&gt; nil</div><div class='add'>+  #</div><div class='add'>+  # The \URI string may include proxy username, password, and port number:</div><div class='add'>+  #</div><div class='add'>+  #   ENV['http_proxy'] = 'http://pname:ppass@example.com:8000'</div><div class='add'>+  #   http = Net::HTTP.new(hostname)</div><div class='add'>+  #   http.proxy?          # =&gt; true</div><div class='add'>+  #   http.proxy_from_env? # =&gt; true</div><div class='add'>+  #   http.proxy_address   # =&gt; "example.com"</div><div class='add'>+  #   http.proxy_port      # =&gt; 8000</div><div class='add'>+  #   http.proxy_user      # =&gt; "pname"</div><div class='add'>+  #   http.proxy_pass      # =&gt; "ppass"</div><div class='add'>+  #</div><div class='add'>+  # === Filtering Proxies</div><div class='add'>+  #</div><div class='add'>+  # With method Net::HTTP.new (but not Net::HTTP.start),</div><div class='add'>+  # you can use argument +p_no_proxy+ to filter proxies:</div><div class='add'>+  #</div><div class='add'>+  # - Reject a certain address:</div><div class='add'>+  #</div><div class='add'>+  #     http = Net::HTTP.new('example.com', nil, 'proxy.example', 8000, 'pname', 'ppass', 'proxy.example')</div><div class='add'>+  #     http.proxy_address # =&gt; nil</div><div class='add'>+  #</div><div class='add'>+  # - Reject certain domains or subdomains:</div><div class='add'>+  #</div><div class='add'>+  #     http = Net::HTTP.new('example.com', nil, 'my.proxy.example', 8000, 'pname', 'ppass', 'proxy.example')</div><div class='add'>+  #     http.proxy_address # =&gt; nil</div><div class='add'>+  #</div><div class='add'>+  # - Reject certain addresses and port combinations:</div><div class='add'>+  #</div><div class='add'>+  #     http = Net::HTTP.new('example.com', nil, 'proxy.example', 8000, 'pname', 'ppass', 'proxy.example:1234')</div><div class='add'>+  #     http.proxy_address # =&gt; "proxy.example"</div><div class='add'>+  #</div><div class='add'>+  #     http = Net::HTTP.new('example.com', nil, 'proxy.example', 8000, 'pname', 'ppass', 'proxy.example:8000')</div><div class='add'>+  #     http.proxy_address # =&gt; nil</div><div class='add'>+  #</div><div class='add'>+  # - Reject a list of the types above delimited using a comma:</div><div class='add'>+  #</div><div class='add'>+  #     http = Net::HTTP.new('example.com', nil, 'proxy.example', 8000, 'pname', 'ppass', 'my.proxy,proxy.example:8000')</div><div class='add'>+  #     http.proxy_address # =&gt; nil</div><div class='add'>+  #</div><div class='add'>+  #     http = Net::HTTP.new('example.com', nil, 'my.proxy', 8000, 'pname', 'ppass', 'my.proxy,proxy.example:8000')</div><div class='add'>+  #     http.proxy_address # =&gt; nil</div><div class='add'>+  #</div><div class='add'>+  # == Compression and Decompression</div><div class='add'>+  #</div><div class='add'>+  # \Net::HTTP does not compress the body of a request before sending.</div><div class='add'>+  #</div><div class='add'>+  # By default, \Net::HTTP adds header &lt;tt&gt;'Accept-Encoding'&lt;/tt&gt;</div><div class='add'>+  # to a new {request object}[rdoc-ref:Net::HTTPRequest]:</div><div class='add'>+  #</div><div class='add'>+  #   Net::HTTP::Get.new(uri)['Accept-Encoding']</div><div class='add'>+  #   # =&gt; "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"</div><div class='add'>+  #</div><div class='add'>+  # This requests the server to zip-encode the response body if there is one;</div><div class='add'>+  # the server is not required to do so.</div><div class='add'>+  #</div><div class='add'>+  # \Net::HTTP does not automatically decompress a response body</div><div class='add'>+  # if the response has header &lt;tt&gt;'Content-Range'&lt;/tt&gt;.</div><div class='add'>+  #</div><div class='add'>+  # Otherwise decompression (or not) depends on the value of header</div><div class='add'>+  # {Content-Encoding}[https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#content-encoding-response-header]:</div><div class='add'>+  #</div><div class='add'>+  # - &lt;tt&gt;'deflate'&lt;/tt&gt;, &lt;tt&gt;'gzip'&lt;/tt&gt;, or &lt;tt&gt;'x-gzip'&lt;/tt&gt;:</div><div class='add'>+  #   decompresses the body and deletes the header.</div><div class='add'>+  # - &lt;tt&gt;'none'&lt;/tt&gt; or &lt;tt&gt;'identity'&lt;/tt&gt;:</div><div class='add'>+  #   does not decompress the body, but deletes the header.</div><div class='add'>+  # - Any other value:</div><div class='add'>+  #   leaves the body and header unchanged.</div><div class='add'>+  #</div><div class='add'>+  # == What's Here</div><div class='add'>+  #</div><div class='add'>+  # This is a categorized summary of methods and attributes.</div><div class='add'>+  #</div><div class='add'>+  # === \Net::HTTP Objects</div><div class='add'>+  #</div><div class='add'>+  # - {::new}[rdoc-ref:Net::HTTP.new]:</div><div class='add'>+  #   Creates a new instance.</div><div class='add'>+  # - {#inspect}[rdoc-ref:Net::HTTP#inspect]:</div><div class='add'>+  #   Returns a string representation of +self+.</div><div class='add'>+  #</div><div class='add'>+  # === Sessions</div><div class='add'>+  #</div><div class='add'>+  # - {::start}[rdoc-ref:Net::HTTP.start]:</div><div class='add'>+  #   Begins a new session in a new \Net::HTTP object.</div><div class='add'>+  # - {#started?}[rdoc-ref:Net::HTTP#started?]</div><div class='add'>+  #   (aliased as {#active?}[rdoc-ref:Net::HTTP#active?]):</div><div class='add'>+  #   Returns whether in a session.</div><div class='add'>+  # - {#finish}[rdoc-ref:Net::HTTP#finish]:</div><div class='add'>+  #   Ends an active session.</div><div class='add'>+  # - {#start}[rdoc-ref:Net::HTTP#start]:</div><div class='add'>+  #   Begins a new session in an existing \Net::HTTP object (+self+).</div><div class='add'>+  #</div><div class='add'>+  # === Connections</div><div class='add'>+  #</div><div class='add'>+  # - {:continue_timeout}[rdoc-ref:Net::HTTP#continue_timeout]:</div><div class='add'>+  #   Returns the continue timeout.</div><div class='add'>+  # - {#continue_timeout=}[rdoc-ref:Net::HTTP#continue_timeout=]:</div><div class='add'>+  #   Sets the continue timeout seconds.</div><div class='add'>+  # - {:keep_alive_timeout}[rdoc-ref:Net::HTTP#keep_alive_timeout]:</div><div class='add'>+  #   Returns the keep-alive timeout.</div><div class='add'>+  # - {:keep_alive_timeout=}[rdoc-ref:Net::HTTP#keep_alive_timeout=]:</div><div class='add'>+  #   Sets the keep-alive timeout.</div><div class='add'>+  # - {:max_retries}[rdoc-ref:Net::HTTP#max_retries]:</div><div class='add'>+  #   Returns the maximum retries.</div><div class='add'>+  # - {#max_retries=}[rdoc-ref:Net::HTTP#max_retries=]:</div><div class='add'>+  #   Sets the maximum retries.</div><div class='add'>+  # - {:open_timeout}[rdoc-ref:Net::HTTP#open_timeout]:</div><div class='add'>+  #   Returns the open timeout.</div><div class='add'>+  # - {:open_timeout=}[rdoc-ref:Net::HTTP#open_timeout=]:</div><div class='add'>+  #   Sets the open timeout.</div><div class='add'>+  # - {:read_timeout}[rdoc-ref:Net::HTTP#read_timeout]:</div><div class='add'>+  #   Returns the open timeout.</div><div class='add'>+  # - {:read_timeout=}[rdoc-ref:Net::HTTP#read_timeout=]:</div><div class='add'>+  #   Sets the read timeout.</div><div class='add'>+  # - {:ssl_timeout}[rdoc-ref:Net::HTTP#ssl_timeout]:</div><div class='add'>+  #   Returns the ssl timeout.</div><div class='add'>+  # - {:ssl_timeout=}[rdoc-ref:Net::HTTP#ssl_timeout=]:</div><div class='add'>+  #   Sets the ssl timeout.</div><div class='add'>+  # - {:write_timeout}[rdoc-ref:Net::HTTP#write_timeout]:</div><div class='add'>+  #   Returns the write timeout.</div><div class='add'>+  # - {write_timeout=}[rdoc-ref:Net::HTTP#write_timeout=]:</div><div class='add'>+  #   Sets the write timeout.</div><div class='add'>+  #</div><div class='add'>+  # === Requests</div><div class='add'>+  #</div><div class='add'>+  # - {::get}[rdoc-ref:Net::HTTP.get]:</div><div class='add'>+  #   Sends a GET request and returns the string response body.</div><div class='add'>+  # - {::get_print}[rdoc-ref:Net::HTTP.get_print]:</div><div class='add'>+  #   Sends a GET request and write the string response body to $stdout.</div><div class='add'>+  # - {::get_response}[rdoc-ref:Net::HTTP.get_response]:</div><div class='add'>+  #   Sends a GET request and returns a response object.</div><div class='add'>+  # - {::post_form}[rdoc-ref:Net::HTTP.post_form]:</div><div class='add'>+  #   Sends a POST request with form data and returns a response object.</div><div class='add'>+  # - {::post}[rdoc-ref:Net::HTTP.post]:</div><div class='add'>+  #   Sends a POST request with data and returns a response object.</div><div class='add'>+  # - {#copy}[rdoc-ref:Net::HTTP#copy]:</div><div class='add'>+  #   Sends a COPY request and returns a response object.</div><div class='add'>+  # - {#delete}[rdoc-ref:Net::HTTP#delete]:</div><div class='add'>+  #   Sends a DELETE request and returns a response object.</div><div class='add'>+  # - {#get}[rdoc-ref:Net::HTTP#get]:</div><div class='add'>+  #   Sends a GET request and returns a response object.</div><div class='add'>+  # - {#head}[rdoc-ref:Net::HTTP#head]:</div><div class='add'>+  #   Sends a HEAD request and returns a response object.</div><div class='add'>+  # - {#lock}[rdoc-ref:Net::HTTP#lock]:</div><div class='add'>+  #   Sends a LOCK request and returns a response object.</div><div class='add'>+  # - {#mkcol}[rdoc-ref:Net::HTTP#mkcol]:</div><div class='add'>+  #   Sends a MKCOL request and returns a response object.</div><div class='add'>+  # - {#move}[rdoc-ref:Net::HTTP#move]:</div><div class='add'>+  #   Sends a MOVE request and returns a response object.</div><div class='add'>+  # - {#options}[rdoc-ref:Net::HTTP#options]:</div><div class='add'>+  #   Sends a OPTIONS request and returns a response object.</div><div class='add'>+  # - {#patch}[rdoc-ref:Net::HTTP#patch]:</div><div class='add'>+  #   Sends a PATCH request and returns a response object.</div><div class='add'>+  # - {#post}[rdoc-ref:Net::HTTP#post]:</div><div class='add'>+  #   Sends a POST request and returns a response object.</div><div class='add'>+  # - {#propfind}[rdoc-ref:Net::HTTP#propfind]:</div><div class='add'>+  #   Sends a PROPFIND request and returns a response object.</div><div class='add'>+  # - {#proppatch}[rdoc-ref:Net::HTTP#proppatch]:</div><div class='add'>+  #   Sends a PROPPATCH request and returns a response object.</div><div class='add'>+  # - {#put}[rdoc-ref:Net::HTTP#put]:</div><div class='add'>+  #   Sends a PUT request and returns a response object.</div><div class='add'>+  # - {#request}[rdoc-ref:Net::HTTP#request]:</div><div class='add'>+  #   Sends a request and returns a response object.</div><div class='add'>+  # - {#request_get}[rdoc-ref:Net::HTTP#request_get]</div><div class='add'>+  #   (aliased as {#get2}[rdoc-ref:Net::HTTP#get2]):</div><div class='add'>+  #   Sends a GET request and forms a response object;</div><div class='add'>+  #   if a block given, calls the block with the object,</div><div class='add'>+  #   otherwise returns the object.</div><div class='add'>+  # - {#request_head}[rdoc-ref:Net::HTTP#request_head]</div><div class='add'>+  #   (aliased as {#head2}[rdoc-ref:Net::HTTP#head2]):</div><div class='add'>+  #   Sends a HEAD request and forms a response object;</div><div class='add'>+  #   if a block given, calls the block with the object,</div><div class='add'>+  #   otherwise returns the object.</div><div class='add'>+  # - {#request_post}[rdoc-ref:Net::HTTP#request_post]</div><div class='add'>+  #   (aliased as {#post2}[rdoc-ref:Net::HTTP#post2]):</div><div class='add'>+  #   Sends a POST request and forms a response object;</div><div class='add'>+  #   if a block given, calls the block with the object,</div><div class='add'>+  #   otherwise returns the object.</div><div class='add'>+  # - {#send_request}[rdoc-ref:Net::HTTP#send_request]:</div><div class='add'>+  #   Sends a request and returns a response object.</div><div class='add'>+  # - {#trace}[rdoc-ref:Net::HTTP#trace]:</div><div class='add'>+  #   Sends a TRACE request and returns a response object.</div><div class='add'>+  # - {#unlock}[rdoc-ref:Net::HTTP#unlock]:</div><div class='add'>+  #   Sends an UNLOCK request and returns a response object.</div><div class='add'>+  #</div><div class='add'>+  # === Responses</div><div class='add'>+  #</div><div class='add'>+  # - {:close_on_empty_response}[rdoc-ref:Net::HTTP#close_on_empty_response]:</div><div class='add'>+  #   Returns whether to close connection on empty response.</div><div class='add'>+  # - {:close_on_empty_response=}[rdoc-ref:Net::HTTP#close_on_empty_response=]:</div><div class='add'>+  #   Sets whether to close connection on empty response.</div><div class='add'>+  # - {:ignore_eof}[rdoc-ref:Net::HTTP#ignore_eof]:</div><div class='add'>+  #   Returns whether to ignore end-of-file when reading a response body</div><div class='add'>+  #   with &lt;tt&gt;Content-Length&lt;/tt&gt; headers.</div><div class='add'>+  # - {:ignore_eof=}[rdoc-ref:Net::HTTP#ignore_eof=]:</div><div class='add'>+  #   Sets whether to ignore end-of-file when reading a response body</div><div class='add'>+  #   with &lt;tt&gt;Content-Length&lt;/tt&gt; headers.</div><div class='add'>+  # - {:response_body_encoding}[rdoc-ref:Net::HTTP#response_body_encoding]:</div><div class='add'>+  #   Returns the encoding to use for the response body.</div><div class='add'>+  # - {#response_body_encoding=}[rdoc-ref:Net::HTTP#response_body_encoding=]:</div><div class='add'>+  #   Sets the response body encoding.</div><div class='ctx'>   #</div><div class='ctx'>   # === Proxies</div><div class='ctx'>   #</div><div class='del'>-  # Net::HTTP will automatically create a proxy from the +http_proxy+</div><div class='del'>-  # environment variable if it is present.  To disable use of +http_proxy+,</div><div class='del'>-  # pass +nil+ for the proxy address.</div><div class='del'>-  #</div><div class='del'>-  # You may also create a custom proxy:</div><div class='del'>-  #</div><div class='del'>-  #   proxy_addr = 'your.proxy.host'</div><div class='del'>-  #   proxy_port = 8080</div><div class='del'>-  #</div><div class='del'>-  #   Net::HTTP.new('example.com', nil, proxy_addr, proxy_port).start { |http|</div><div class='del'>-  #     # always proxy via your.proxy.addr:8080</div><div class='del'>-  #   }</div><div class='del'>-  #</div><div class='del'>-  # See Net::HTTP.new for further details and examples such as proxies that</div><div class='del'>-  # require a username and password.</div><div class='del'>-  #</div><div class='del'>-  # === Compression</div><div class='del'>-  #</div><div class='del'>-  # Net::HTTP automatically adds Accept-Encoding for compression of response</div><div class='del'>-  # bodies and automatically decompresses gzip and deflate responses unless a</div><div class='del'>-  # Range header was sent.</div><div class='del'>-  #</div><div class='del'>-  # Compression can be disabled through the Accept-Encoding: identity header.</div><div class='del'>-  #</div><div class='del'>-  # == HTTP Request Classes</div><div class='del'>-  #</div><div class='del'>-  # Here is the HTTP request class hierarchy.</div><div class='del'>-  #</div><div class='del'>-  # * Net::HTTPRequest</div><div class='del'>-  #   * Net::HTTP::Get</div><div class='del'>-  #   * Net::HTTP::Head</div><div class='del'>-  #   * Net::HTTP::Post</div><div class='del'>-  #   * Net::HTTP::Patch</div><div class='del'>-  #   * Net::HTTP::Put</div><div class='del'>-  #   * Net::HTTP::Proppatch</div><div class='del'>-  #   * Net::HTTP::Lock</div><div class='del'>-  #   * Net::HTTP::Unlock</div><div class='del'>-  #   * Net::HTTP::Options</div><div class='del'>-  #   * Net::HTTP::Propfind</div><div class='del'>-  #   * Net::HTTP::Delete</div><div class='del'>-  #   * Net::HTTP::Move</div><div class='del'>-  #   * Net::HTTP::Copy</div><div class='del'>-  #   * Net::HTTP::Mkcol</div><div class='del'>-  #   * Net::HTTP::Trace</div><div class='del'>-  #</div><div class='del'>-  # == HTTP Response Classes</div><div class='del'>-  #</div><div class='del'>-  # Here is HTTP response class hierarchy.  All classes are defined in Net</div><div class='del'>-  # module and are subclasses of Net::HTTPResponse.</div><div class='del'>-  #</div><div class='del'>-  # HTTPUnknownResponse:: For unhandled HTTP extensions</div><div class='del'>-  # HTTPInformation::                    1xx</div><div class='del'>-  #   HTTPContinue::                        100</div><div class='del'>-  #   HTTPSwitchProtocol::                  101</div><div class='del'>-  # HTTPSuccess::                        2xx</div><div class='del'>-  #   HTTPOK::                              200</div><div class='del'>-  #   HTTPCreated::                         201</div><div class='del'>-  #   HTTPAccepted::                        202</div><div class='del'>-  #   HTTPNonAuthoritativeInformation::     203</div><div class='del'>-  #   HTTPNoContent::                       204</div><div class='del'>-  #   HTTPResetContent::                    205</div><div class='del'>-  #   HTTPPartialContent::                  206</div><div class='del'>-  #   HTTPMultiStatus::                     207</div><div class='del'>-  #   HTTPIMUsed::                          226</div><div class='del'>-  # HTTPRedirection::                    3xx</div><div class='del'>-  #   HTTPMultipleChoices::                 300</div><div class='del'>-  #   HTTPMovedPermanently::                301</div><div class='del'>-  #   HTTPFound::                           302</div><div class='del'>-  #   HTTPSeeOther::                        303</div><div class='del'>-  #   HTTPNotModified::                     304</div><div class='del'>-  #   HTTPUseProxy::                        305</div><div class='del'>-  #   HTTPTemporaryRedirect::               307</div><div class='del'>-  # HTTPClientError::                    4xx</div><div class='del'>-  #   HTTPBadRequest::                      400</div><div class='del'>-  #   HTTPUnauthorized::                    401</div><div class='del'>-  #   HTTPPaymentRequired::                 402</div><div class='del'>-  #   HTTPForbidden::                       403</div><div class='del'>-  #   HTTPNotFound::                        404</div><div class='del'>-  #   HTTPMethodNotAllowed::                405</div><div class='del'>-  #   HTTPNotAcceptable::                   406</div><div class='del'>-  #   HTTPProxyAuthenticationRequired::     407</div><div class='del'>-  #   HTTPRequestTimeOut::                  408</div><div class='del'>-  #   HTTPConflict::                        409</div><div class='del'>-  #   HTTPGone::                            410</div><div class='del'>-  #   HTTPLengthRequired::                  411</div><div class='del'>-  #   HTTPPreconditionFailed::              412</div><div class='del'>-  #   HTTPRequestEntityTooLarge::           413</div><div class='del'>-  #   HTTPRequestURITooLong::               414</div><div class='del'>-  #   HTTPUnsupportedMediaType::            415</div><div class='del'>-  #   HTTPRequestedRangeNotSatisfiable::    416</div><div class='del'>-  #   HTTPExpectationFailed::               417</div><div class='del'>-  #   HTTPUnprocessableEntity::             422</div><div class='del'>-  #   HTTPLocked::                          423</div><div class='del'>-  #   HTTPFailedDependency::                424</div><div class='del'>-  #   HTTPUpgradeRequired::                 426</div><div class='del'>-  #   HTTPPreconditionRequired::            428</div><div class='del'>-  #   HTTPTooManyRequests::                 429</div><div class='del'>-  #   HTTPRequestHeaderFieldsTooLarge::     431</div><div class='del'>-  #   HTTPUnavailableForLegalReasons::      451</div><div class='del'>-  # HTTPServerError::                    5xx</div><div class='del'>-  #   HTTPInternalServerError::             500</div><div class='del'>-  #   HTTPNotImplemented::                  501</div><div class='del'>-  #   HTTPBadGateway::                      502</div><div class='del'>-  #   HTTPServiceUnavailable::              503</div><div class='del'>-  #   HTTPGatewayTimeOut::                  504</div><div class='del'>-  #   HTTPVersionNotSupported::             505</div><div class='del'>-  #   HTTPInsufficientStorage::             507</div><div class='del'>-  #   HTTPNetworkAuthenticationRequired::   511</div><div class='del'>-  #</div><div class='del'>-  # There is also the Net::HTTPBadResponse exception which is raised when</div><div class='del'>-  # there is a protocol error.</div><div class='add'>+  # - {:proxy_address}[rdoc-ref:Net::HTTP#proxy_address]:</div><div class='add'>+  #   Returns the proxy address.</div><div class='add'>+  # - {:proxy_address=}[rdoc-ref:Net::HTTP#proxy_address=]:</div><div class='add'>+  #   Sets the proxy address.</div><div class='add'>+  # - {::proxy_class?}[rdoc-ref:Net::HTTP.proxy_class?]:</div><div class='add'>+  #   Returns whether +self+ is a proxy class.</div><div class='add'>+  # - {#proxy?}[rdoc-ref:Net::HTTP#proxy?]:</div><div class='add'>+  #   Returns whether +self+ has a proxy.</div><div class='add'>+  # - {#proxy_address}[rdoc-ref:Net::HTTP#proxy_address]</div><div class='add'>+  #   (aliased as {#proxyaddr}[rdoc-ref:Net::HTTP#proxyaddr]):</div><div class='add'>+  #   Returns the proxy address.</div><div class='add'>+  # - {#proxy_from_env?}[rdoc-ref:Net::HTTP#proxy_from_env?]:</div><div class='add'>+  #   Returns whether the proxy is taken from an environment variable.</div><div class='add'>+  # - {:proxy_from_env=}[rdoc-ref:Net::HTTP#proxy_from_env=]:</div><div class='add'>+  #   Sets whether the proxy is to be taken from an environment variable.</div><div class='add'>+  # - {:proxy_pass}[rdoc-ref:Net::HTTP#proxy_pass]:</div><div class='add'>+  #   Returns the proxy password.</div><div class='add'>+  # - {:proxy_pass=}[rdoc-ref:Net::HTTP#proxy_pass=]:</div><div class='add'>+  #   Sets the proxy password.</div><div class='add'>+  # - {:proxy_port}[rdoc-ref:Net::HTTP#proxy_port]:</div><div class='add'>+  #   Returns the proxy port.</div><div class='add'>+  # - {:proxy_port=}[rdoc-ref:Net::HTTP#proxy_port=]:</div><div class='add'>+  #   Sets the proxy port.</div><div class='add'>+  # - {#proxy_user}[rdoc-ref:Net::HTTP#proxy_user]:</div><div class='add'>+  #   Returns the proxy user name.</div><div class='add'>+  # - {:proxy_user=}[rdoc-ref:Net::HTTP#proxy_user=]:</div><div class='add'>+  #   Sets the proxy user.</div><div class='add'>+  #</div><div class='add'>+  # === Security</div><div class='add'>+  #</div><div class='add'>+  # - {:ca_file}[rdoc-ref:Net::HTTP#ca_file]:</div><div class='add'>+  #   Returns the path to a CA certification file.</div><div class='add'>+  # - {:ca_file=}[rdoc-ref:Net::HTTP#ca_file=]:</div><div class='add'>+  #   Sets the path to a CA certification file.</div><div class='add'>+  # - {:ca_path}[rdoc-ref:Net::HTTP#ca_path]:</div><div class='add'>+  #   Returns the path of to CA directory containing certification files.</div><div class='add'>+  # - {:ca_path=}[rdoc-ref:Net::HTTP#ca_path=]:</div><div class='add'>+  #   Sets the path of to CA directory containing certification files.</div><div class='add'>+  # - {:cert}[rdoc-ref:Net::HTTP#cert]:</div><div class='add'>+  #   Returns the OpenSSL::X509::Certificate object to be used for client certification.</div><div class='add'>+  # - {:cert=}[rdoc-ref:Net::HTTP#cert=]:</div><div class='add'>+  #   Sets the OpenSSL::X509::Certificate object to be used for client certification.</div><div class='add'>+  # - {:cert_store}[rdoc-ref:Net::HTTP#cert_store]:</div><div class='add'>+  #   Returns the X509::Store to be used for verifying peer certificate.</div><div class='add'>+  # - {:cert_store=}[rdoc-ref:Net::HTTP#cert_store=]:</div><div class='add'>+  #   Sets the X509::Store to be used for verifying peer certificate.</div><div class='add'>+  # - {:ciphers}[rdoc-ref:Net::HTTP#ciphers]:</div><div class='add'>+  #   Returns the available SSL ciphers.</div><div class='add'>+  # - {:ciphers=}[rdoc-ref:Net::HTTP#ciphers=]:</div><div class='add'>+  #   Sets the available SSL ciphers.</div><div class='add'>+  # - {:extra_chain_cert}[rdoc-ref:Net::HTTP#extra_chain_cert]:</div><div class='add'>+  #   Returns the extra X509 certificates to be added to the certificate chain.</div><div class='add'>+  # - {:extra_chain_cert=}[rdoc-ref:Net::HTTP#extra_chain_cert=]:</div><div class='add'>+  #   Sets the extra X509 certificates to be added to the certificate chain.</div><div class='add'>+  # - {:key}[rdoc-ref:Net::HTTP#key]:</div><div class='add'>+  #   Returns the OpenSSL::PKey::RSA or OpenSSL::PKey::DSA object.</div><div class='add'>+  # - {:key=}[rdoc-ref:Net::HTTP#key=]:</div><div class='add'>+  #   Sets the OpenSSL::PKey::RSA or OpenSSL::PKey::DSA object.</div><div class='add'>+  # - {:max_version}[rdoc-ref:Net::HTTP#max_version]:</div><div class='add'>+  #   Returns the maximum SSL version.</div><div class='add'>+  # - {:max_version=}[rdoc-ref:Net::HTTP#max_version=]:</div><div class='add'>+  #   Sets the maximum SSL version.</div><div class='add'>+  # - {:min_version}[rdoc-ref:Net::HTTP#min_version]:</div><div class='add'>+  #   Returns the minimum SSL version.</div><div class='add'>+  # - {:min_version=}[rdoc-ref:Net::HTTP#min_version=]:</div><div class='add'>+  #   Sets the minimum SSL version.</div><div class='add'>+  # - {#peer_cert}[rdoc-ref:Net::HTTP#peer_cert]:</div><div class='add'>+  #   Returns the X509 certificate chain for the session's socket peer.</div><div class='add'>+  # - {:ssl_version}[rdoc-ref:Net::HTTP#ssl_version]:</div><div class='add'>+  #   Returns the SSL version.</div><div class='add'>+  # - {:ssl_version=}[rdoc-ref:Net::HTTP#ssl_version=]:</div><div class='add'>+  #   Sets the SSL version.</div><div class='add'>+  # - {#use_ssl=}[rdoc-ref:Net::HTTP#use_ssl=]:</div><div class='add'>+  #   Sets whether a new session is to use Transport Layer Security.</div><div class='add'>+  # - {#use_ssl?}[rdoc-ref:Net::HTTP#use_ssl?]:</div><div class='add'>+  #   Returns whether +self+ uses SSL.</div><div class='add'>+  # - {:verify_callback}[rdoc-ref:Net::HTTP#verify_callback]:</div><div class='add'>+  #   Returns the callback for the server certification verification.</div><div class='add'>+  # - {:verify_callback=}[rdoc-ref:Net::HTTP#verify_callback=]:</div><div class='add'>+  #   Sets the callback for the server certification verification.</div><div class='add'>+  # - {:verify_depth}[rdoc-ref:Net::HTTP#verify_depth]:</div><div class='add'>+  #   Returns the maximum depth for the certificate chain verification.</div><div class='add'>+  # - {:verify_depth=}[rdoc-ref:Net::HTTP#verify_depth=]:</div><div class='add'>+  #   Sets the maximum depth for the certificate chain verification.</div><div class='add'>+  # - {:verify_hostname}[rdoc-ref:Net::HTTP#verify_hostname]:</div><div class='add'>+  #   Returns the flags for server the certification verification at the beginning of the SSL/TLS session.</div><div class='add'>+  # - {:verify_hostname=}[rdoc-ref:Net::HTTP#verify_hostname=]:</div><div class='add'>+  #   Sets he flags for server the certification verification at the beginning of the SSL/TLS session.</div><div class='add'>+  # - {:verify_mode}[rdoc-ref:Net::HTTP#verify_mode]:</div><div class='add'>+  #   Returns the flags for server the certification verification at the beginning of the SSL/TLS session.</div><div class='add'>+  # - {:verify_mode=}[rdoc-ref:Net::HTTP#verify_mode=]:</div><div class='add'>+  #   Sets the flags for server the certification verification at the beginning of the SSL/TLS session.</div><div class='add'>+  #</div><div class='add'>+  # === Addresses and Ports</div><div class='add'>+  #</div><div class='add'>+  # - {:address}[rdoc-ref:Net::HTTP#address]:</div><div class='add'>+  #   Returns the string host name or host IP.</div><div class='add'>+  # - {::default_port}[rdoc-ref:Net::HTTP.default_port]:</div><div class='add'>+  #   Returns integer 80, the default port to use for HTTP requests.</div><div class='add'>+  # - {::http_default_port}[rdoc-ref:Net::HTTP.http_default_port]:</div><div class='add'>+  #   Returns integer 80, the default port to use for HTTP requests.</div><div class='add'>+  # - {::https_default_port}[rdoc-ref:Net::HTTP.https_default_port]:</div><div class='add'>+  #   Returns integer 443, the default port to use for HTTPS requests.</div><div class='add'>+  # - {#ipaddr}[rdoc-ref:Net::HTTP#ipaddr]:</div><div class='add'>+  #   Returns the IP address for the connection.</div><div class='add'>+  # - {#ipaddr=}[rdoc-ref:Net::HTTP#ipaddr=]:</div><div class='add'>+  #   Sets the IP address for the connection.</div><div class='add'>+  # - {:local_host}[rdoc-ref:Net::HTTP#local_host]:</div><div class='add'>+  #   Returns the string local host used to establish the connection.</div><div class='add'>+  # - {:local_host=}[rdoc-ref:Net::HTTP#local_host=]:</div><div class='add'>+  #   Sets the string local host used to establish the connection.</div><div class='add'>+  # - {:local_port}[rdoc-ref:Net::HTTP#local_port]:</div><div class='add'>+  #   Returns the integer local port used to establish the connection.</div><div class='add'>+  # - {:local_port=}[rdoc-ref:Net::HTTP#local_port=]:</div><div class='add'>+  #   Sets the integer local port used to establish the connection.</div><div class='add'>+  # - {:port}[rdoc-ref:Net::HTTP#port]:</div><div class='add'>+  #   Returns the integer port number.</div><div class='add'>+  #</div><div class='add'>+  # === \HTTP Version</div><div class='add'>+  #</div><div class='add'>+  # - {::version_1_2?}[rdoc-ref:Net::HTTP.version_1_2?]</div><div class='add'>+  #   (aliased as {::is_version_1_2?}[rdoc-ref:Net::HTTP.is_version_1_2?]</div><div class='add'>+  #   and {::version_1_2}[rdoc-ref:Net::HTTP.version_1_2]):</div><div class='add'>+  #   Returns true; retained for compatibility.</div><div class='add'>+  #</div><div class='add'>+  # === Debugging</div><div class='add'>+  #</div><div class='add'>+  # - {#set_debug_output}[rdoc-ref:Net::HTTP#set_debug_output]:</div><div class='add'>+  #   Sets the output stream for debugging.</div><div class='ctx'>   #</div><div class='ctx'>   class HTTP &lt; Protocol</div><div class='ctx'> </div><div class='ctx'>     # :stopdoc:</div><div class='del'>-    Revision = %q$Revision$.split[1]</div><div class='add'>+    VERSION = "0.4.1"</div><div class='ctx'>     HTTPVersion = '1.1'</div><div class='ctx'>     begin</div><div class='ctx'>       require 'zlib'</div><div class='del'>-      require 'stringio'  #for our purposes (unpacking gzip) lump these together</div><div class='ctx'>       HAVE_ZLIB=true</div><div class='ctx'>     rescue LoadError</div><div class='ctx'>       HAVE_ZLIB=false</div><div class='ctx'>     end</div><div class='ctx'>     # :startdoc:</div><div class='ctx'> </div><div class='del'>-    # Turns on net/http 1.2 (Ruby 1.8) features.</div><div class='del'>-    # Defaults to ON in Ruby 1.8 or later.</div><div class='add'>+    # Returns +true+; retained for compatibility.</div><div class='ctx'>     def HTTP.version_1_2</div><div class='ctx'>       true</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Returns true if net/http is in version 1.2 mode.</div><div class='del'>-    # Defaults to true.</div><div class='add'>+    # Returns +true+; retained for compatibility.</div><div class='ctx'>     def HTTP.version_1_2?</div><div class='ctx'>       true</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Returns +false+; retained for compatibility.</div><div class='ctx'>     def HTTP.version_1_1?  #:nodoc:</div><div class='ctx'>       false</div><div class='ctx'>     end</div><div class='hunk'>@@ -420,23 +752,14 @@ module Net   #:nodoc:</div><div class='ctx'>       alias is_version_1_2? version_1_2?   #:nodoc:</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   Net::HTTP.get_print(hostname, path, port = 80) -&gt; nil</div><div class='add'>+    #   Net::HTTP:get_print(uri, headers = {}, port = uri.port) -&gt; nil</div><div class='ctx'>     #</div><div class='del'>-    # short cut methods</div><div class='del'>-    #</div><div class='del'>-</div><div class='del'>-    #</div><div class='del'>-    # Gets the body text from the target and outputs it to $stdout.  The</div><div class='del'>-    # target can either be specified as</div><div class='del'>-    # (+uri+), or as (+host+, +path+, +port+ = 80); so:</div><div class='del'>-    #</div><div class='del'>-    #    Net::HTTP.get_print URI('http://www.example.com/index.html')</div><div class='del'>-    #</div><div class='del'>-    # or:</div><div class='del'>-    #</div><div class='del'>-    #    Net::HTTP.get_print 'www.example.com', '/index.html'</div><div class='del'>-    #</div><div class='del'>-    def HTTP.get_print(uri_or_host, path = nil, port = nil)</div><div class='del'>-      get_response(uri_or_host, path, port) {|res|</div><div class='add'>+    # Like Net::HTTP.get, but writes the returned body to $stdout;</div><div class='add'>+    # returns +nil+.</div><div class='add'>+    def HTTP.get_print(uri_or_host, path_or_headers = nil, port = nil)</div><div class='add'>+      get_response(uri_or_host, path_or_headers, port) {|res|</div><div class='ctx'>         res.read_body do |chunk|</div><div class='ctx'>           $stdout.print chunk</div><div class='ctx'>         end</div><div class='hunk'>@@ -444,57 +767,90 @@ module Net   #:nodoc:</div><div class='ctx'>       nil</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a GET request to the target and returns the HTTP response</div><div class='del'>-    # as a string.  The target can either be specified as</div><div class='del'>-    # (+uri+), or as (+host+, +path+, +port+ = 80); so:</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   Net::HTTP.get(hostname, path, port = 80) -&gt; body</div><div class='add'>+    #   Net::HTTP:get(uri, headers = {}, port = uri.port) -&gt; body</div><div class='ctx'>     #</div><div class='del'>-    #    print Net::HTTP.get(URI('http://www.example.com/index.html'))</div><div class='add'>+    # Sends a GET request and returns the \HTTP response body as a string.</div><div class='ctx'>     #</div><div class='del'>-    # or:</div><div class='add'>+    # With string arguments +hostname+ and +path+:</div><div class='ctx'>     #</div><div class='del'>-    #    print Net::HTTP.get('www.example.com', '/index.html')</div><div class='add'>+    #   hostname = 'jsonplaceholder.typicode.com'</div><div class='add'>+    #   path = '/todos/1'</div><div class='add'>+    #   puts Net::HTTP.get(hostname, path)</div><div class='ctx'>     #</div><div class='del'>-    def HTTP.get(uri_or_host, path = nil, port = nil)</div><div class='del'>-      get_response(uri_or_host, path, port).body</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # Sends a GET request to the target and returns the HTTP response</div><div class='del'>-    # as a Net::HTTPResponse object.  The target can either be specified as</div><div class='del'>-    # (+uri+), or as (+host+, +path+, +port+ = 80); so:</div><div class='add'>+    # Output:</div><div class='add'>+    #</div><div class='add'>+    #   {</div><div class='add'>+    #     "userId": 1,</div><div class='add'>+    #     "id": 1,</div><div class='add'>+    #     "title": "delectus aut autem",</div><div class='add'>+    #     "completed": false</div><div class='add'>+    #   }</div><div class='add'>+    #</div><div class='add'>+    # With URI object +uri+ and optional hash argument +headers+:</div><div class='add'>+    #</div><div class='add'>+    #   uri = URI('https://jsonplaceholder.typicode.com/todos/1')</div><div class='add'>+    #   headers = {'Content-type' =&gt; 'application/json; charset=UTF-8'}</div><div class='add'>+    #   Net::HTTP.get(uri, headers)</div><div class='ctx'>     #</div><div class='del'>-    #    res = Net::HTTP.get_response(URI('http://www.example.com/index.html'))</div><div class='del'>-    #    print res.body</div><div class='add'>+    # Related:</div><div class='ctx'>     #</div><div class='del'>-    # or:</div><div class='add'>+    # - Net::HTTP::Get: request class for \HTTP method +GET+.</div><div class='add'>+    # - Net::HTTP#get: convenience method for \HTTP method +GET+.</div><div class='ctx'>     #</div><div class='del'>-    #    res = Net::HTTP.get_response('www.example.com', '/index.html')</div><div class='del'>-    #    print res.body</div><div class='add'>+    def HTTP.get(uri_or_host, path_or_headers = nil, port = nil)</div><div class='add'>+      get_response(uri_or_host, path_or_headers, port).body</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #   Net::HTTP.get_response(hostname, path, port = 80) -&gt; http_response</div><div class='add'>+    #   Net::HTTP:get_response(uri, headers = {}, port = uri.port) -&gt; http_response</div><div class='ctx'>     #</div><div class='del'>-    def HTTP.get_response(uri_or_host, path = nil, port = nil, &amp;block)</div><div class='del'>-      if path</div><div class='add'>+    # Like Net::HTTP.get, but returns a Net::HTTPResponse object</div><div class='add'>+    # instead of the body string.</div><div class='add'>+    def HTTP.get_response(uri_or_host, path_or_headers = nil, port = nil, &amp;block)</div><div class='add'>+      if path_or_headers &amp;&amp; !path_or_headers.is_a?(Hash)</div><div class='ctx'>         host = uri_or_host</div><div class='add'>+        path = path_or_headers</div><div class='ctx'>         new(host, port || HTTP.default_port).start {|http|</div><div class='ctx'>           return http.request_get(path, &amp;block)</div><div class='ctx'>         }</div><div class='ctx'>       else</div><div class='ctx'>         uri = uri_or_host</div><div class='add'>+        headers = path_or_headers</div><div class='ctx'>         start(uri.hostname, uri.port,</div><div class='ctx'>               :use_ssl =&gt; uri.scheme == 'https') {|http|</div><div class='del'>-          return http.request_get(uri, &amp;block)</div><div class='add'>+          return http.request_get(uri, headers, &amp;block)</div><div class='ctx'>         }</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Posts data to the specified URI object.</div><div class='add'>+    # Posts data to a host; returns a Net::HTTPResponse object.</div><div class='ctx'>     #</div><div class='del'>-    # Example:</div><div class='add'>+    # Argument +url+ must be a URL;</div><div class='add'>+    # argument +data+ must be a string:</div><div class='ctx'>     #</div><div class='del'>-    #   require 'net/http'</div><div class='del'>-    #   require 'uri'</div><div class='add'>+    #   _uri = uri.dup</div><div class='add'>+    #   _uri.path = '/posts'</div><div class='add'>+    #   data = '{"title": "foo", "body": "bar", "userId": 1}'</div><div class='add'>+    #   headers = {'content-type': 'application/json'}</div><div class='add'>+    #   res = Net::HTTP.post(_uri, data, headers) # =&gt; #&lt;Net::HTTPCreated 201 Created readbody=true&gt;</div><div class='add'>+    #   puts res.body</div><div class='ctx'>     #</div><div class='del'>-    #   Net::HTTP.post URI('http://www.example.com/api/search'),</div><div class='del'>-    #                  { "q" =&gt; "ruby", "max" =&gt; "50" }.to_json,</div><div class='del'>-    #                  "Content-Type" =&gt; "application/json"</div><div class='add'>+    # Output:</div><div class='add'>+    #</div><div class='add'>+    #   {</div><div class='add'>+    #     "title": "foo",</div><div class='add'>+    #     "body": "bar",</div><div class='add'>+    #     "userId": 1,</div><div class='add'>+    #     "id": 101</div><div class='add'>+    #   }</div><div class='add'>+    #</div><div class='add'>+    # Related:</div><div class='add'>+    #</div><div class='add'>+    # - Net::HTTP::Post: request class for \HTTP method +POST+.</div><div class='add'>+    # - Net::HTTP#post: convenience method for \HTTP method +POST+.</div><div class='ctx'>     #</div><div class='ctx'>     def HTTP.post(url, data, header = nil)</div><div class='ctx'>       start(url.hostname, url.port,</div><div class='hunk'>@@ -503,23 +859,25 @@ module Net   #:nodoc:</div><div class='ctx'>       }</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Posts HTML form data to the specified URI object.</div><div class='del'>-    # The form data must be provided as a Hash mapping from String to String.</div><div class='del'>-    # Example:</div><div class='add'>+    # Posts data to a host; returns a Net::HTTPResponse object.</div><div class='ctx'>     #</div><div class='del'>-    #   { "cmd" =&gt; "search", "q" =&gt; "ruby", "max" =&gt; "50" }</div><div class='add'>+    # Argument +url+ must be a URI;</div><div class='add'>+    # argument +data+ must be a hash:</div><div class='ctx'>     #</div><div class='del'>-    # This method also does Basic Authentication iff +url+.user exists.</div><div class='del'>-    # But userinfo for authentication is deprecated (RFC3986).</div><div class='del'>-    # So this feature will be removed.</div><div class='add'>+    #   _uri = uri.dup</div><div class='add'>+    #   _uri.path = '/posts'</div><div class='add'>+    #   data = {title: 'foo', body: 'bar', userId: 1}</div><div class='add'>+    #   res = Net::HTTP.post_form(_uri, data) # =&gt; #&lt;Net::HTTPCreated 201 Created readbody=true&gt;</div><div class='add'>+    #   puts res.body</div><div class='ctx'>     #</div><div class='del'>-    # Example:</div><div class='del'>-    #</div><div class='del'>-    #   require 'net/http'</div><div class='del'>-    #   require 'uri'</div><div class='add'>+    # Output:</div><div class='ctx'>     #</div><div class='del'>-    #   Net::HTTP.post_form URI('http://www.example.com/search.cgi'),</div><div class='del'>-    #                       { "q" =&gt; "ruby", "max" =&gt; "50" }</div><div class='add'>+    #   {</div><div class='add'>+    #     "title": "foo",</div><div class='add'>+    #     "body": "bar",</div><div class='add'>+    #     "userId": "1",</div><div class='add'>+    #     "id": 101</div><div class='add'>+    #   }</div><div class='ctx'>     #</div><div class='ctx'>     def HTTP.post_form(url, params)</div><div class='ctx'>       req = Post.new(url)</div><div class='hunk'>@@ -532,20 +890,29 @@ module Net   #:nodoc:</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     #</div><div class='del'>-    # HTTP session management</div><div class='add'>+    # \HTTP session management</div><div class='ctx'>     #</div><div class='ctx'> </div><div class='del'>-    # The default port to use for HTTP requests; defaults to 80.</div><div class='add'>+    # Returns integer +80+, the default port to use for \HTTP requests:</div><div class='add'>+    #</div><div class='add'>+    #   Net::HTTP.default_port # =&gt; 80</div><div class='add'>+    #</div><div class='ctx'>     def HTTP.default_port</div><div class='ctx'>       http_default_port()</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # The default port to use for HTTP requests; defaults to 80.</div><div class='add'>+    # Returns integer +80+, the default port to use for \HTTP requests:</div><div class='add'>+    #</div><div class='add'>+    #   Net::HTTP.http_default_port # =&gt; 80</div><div class='add'>+    #</div><div class='ctx'>     def HTTP.http_default_port</div><div class='ctx'>       80</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # The default port to use for HTTPS requests; defaults to 443.</div><div class='add'>+    # Returns integer +443+, the default port to use for HTTPS requests:</div><div class='add'>+    #</div><div class='add'>+    #   Net::HTTP.https_default_port # =&gt; 443</div><div class='add'>+    #</div><div class='ctx'>     def HTTP.https_default_port</div><div class='ctx'>       443</div><div class='ctx'>     end</div><div class='hunk'>@@ -555,41 +922,98 @@ module Net   #:nodoc:</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     # :call-seq:</div><div class='del'>-    #   HTTP.start(address, port, p_addr, p_port, p_user, p_pass, &amp;block)</div><div class='del'>-    #   HTTP.start(address, port=nil, p_addr=:ENV, p_port=nil, p_user=nil, p_pass=nil, opt, &amp;block)</div><div class='del'>-    #</div><div class='del'>-    # Creates a new Net::HTTP object, then additionally opens the TCP</div><div class='del'>-    # connection and HTTP session.</div><div class='del'>-    #</div><div class='del'>-    # Arguments are the following:</div><div class='del'>-    # _address_ :: hostname or IP address of the server</div><div class='del'>-    # _port_    :: port of the server</div><div class='del'>-    # _p_addr_  :: address of proxy</div><div class='del'>-    # _p_port_  :: port of proxy</div><div class='del'>-    # _p_user_  :: user of proxy</div><div class='del'>-    # _p_pass_  :: pass of proxy</div><div class='del'>-    # _opt_     :: optional hash</div><div class='del'>-    #</div><div class='del'>-    # _opt_ sets following values by its accessor.</div><div class='del'>-    # The keys are ca_file, ca_path, cert, cert_store, ciphers,</div><div class='del'>-    # close_on_empty_response, key, open_timeout, read_timeout, write_timeout, ssl_timeout,</div><div class='del'>-    # ssl_version, use_ssl, verify_callback, verify_depth and verify_mode.</div><div class='del'>-    # If you set :use_ssl as true, you can use https and default value of</div><div class='del'>-    # verify_mode is set as OpenSSL::SSL::VERIFY_PEER.</div><div class='del'>-    #</div><div class='del'>-    # If the optional block is given, the newly</div><div class='del'>-    # created Net::HTTP object is passed to it and closed when the</div><div class='del'>-    # block finishes.  In this case, the return value of this method</div><div class='del'>-    # is the return value of the block.  If no block is given, the</div><div class='del'>-    # return value of this method is the newly created Net::HTTP object</div><div class='del'>-    # itself, and the caller is responsible for closing it upon completion</div><div class='del'>-    # using the finish() method.</div><div class='add'>+    #   HTTP.start(address, port = nil, p_addr = :ENV, p_port = nil, p_user = nil, p_pass = nil, opts) -&gt; http</div><div class='add'>+    #   HTTP.start(address, port = nil, p_addr = :ENV, p_port = nil, p_user = nil, p_pass = nil, opts) {|http| ... } -&gt; object</div><div class='add'>+    #</div><div class='add'>+    # Creates a new \Net::HTTP object, +http+, via \Net::HTTP.new:</div><div class='add'>+    #</div><div class='add'>+    # - For arguments +address+ and +port+, see Net::HTTP.new.</div><div class='add'>+    # - For proxy-defining arguments +p_addr+ through +p_pass+,</div><div class='add'>+    #   see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='add'>+    # - For argument +opts+, see below.</div><div class='add'>+    #</div><div class='add'>+    # With no block given:</div><div class='add'>+    #</div><div class='add'>+    # - Calls &lt;tt&gt;http.start&lt;/tt&gt; with no block (see #start),</div><div class='add'>+    #   which opens a TCP connection and \HTTP session.</div><div class='add'>+    # - Returns +http+.</div><div class='add'>+    # - The caller should call #finish to close the session:</div><div class='add'>+    #</div><div class='add'>+    #     http = Net::HTTP.start(hostname)</div><div class='add'>+    #     http.started? # =&gt; true</div><div class='add'>+    #     http.finish</div><div class='add'>+    #     http.started? # =&gt; false</div><div class='add'>+    #</div><div class='add'>+    # With a block given:</div><div class='add'>+    #</div><div class='add'>+    # - Calls &lt;tt&gt;http.start&lt;/tt&gt; with the block (see #start), which:</div><div class='add'>+    #</div><div class='add'>+    #   - Opens a TCP connection and \HTTP session.</div><div class='add'>+    #   - Calls the block,</div><div class='add'>+    #     which may make any number of requests to the host.</div><div class='add'>+    #   - Closes the \HTTP session and TCP connection on block exit.</div><div class='add'>+    #   - Returns the block's value +object+.</div><div class='add'>+    #</div><div class='add'>+    # - Returns +object+.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #</div><div class='add'>+    #   hostname = 'jsonplaceholder.typicode.com'</div><div class='add'>+    #   Net::HTTP.start(hostname) do |http|</div><div class='add'>+    #     puts http.get('/todos/1').body</div><div class='add'>+    #     puts http.get('/todos/2').body</div><div class='add'>+    #   end</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #</div><div class='add'>+    #   {</div><div class='add'>+    #     "userId": 1,</div><div class='add'>+    #     "id": 1,</div><div class='add'>+    #     "title": "delectus aut autem",</div><div class='add'>+    #     "completed": false</div><div class='add'>+    #   }</div><div class='add'>+    #   {</div><div class='add'>+    #     "userId": 1,</div><div class='add'>+    #     "id": 2,</div><div class='add'>+    #     "title": "quis ut nam facilis et officia qui",</div><div class='add'>+    #     "completed": false</div><div class='add'>+    #   }</div><div class='add'>+    #</div><div class='add'>+    # If the last argument given is a hash, it is the +opts+ hash,</div><div class='add'>+    # where each key is a method or accessor to be called,</div><div class='add'>+    # and its value is the value to be set.</div><div class='add'>+    #</div><div class='add'>+    # The keys may include:</div><div class='add'>+    #</div><div class='add'>+    # - #ca_file</div><div class='add'>+    # - #ca_path</div><div class='add'>+    # - #cert</div><div class='add'>+    # - #cert_store</div><div class='add'>+    # - #ciphers</div><div class='add'>+    # - #close_on_empty_response</div><div class='add'>+    # - +ipaddr+ (calls #ipaddr=)</div><div class='add'>+    # - #keep_alive_timeout</div><div class='add'>+    # - #key</div><div class='add'>+    # - #open_timeout</div><div class='add'>+    # - #read_timeout</div><div class='add'>+    # - #ssl_timeout</div><div class='add'>+    # - #ssl_version</div><div class='add'>+    # - +use_ssl+ (calls #use_ssl=)</div><div class='add'>+    # - #verify_callback</div><div class='add'>+    # - #verify_depth</div><div class='add'>+    # - #verify_mode</div><div class='add'>+    # - #write_timeout</div><div class='add'>+    #</div><div class='add'>+    # Note: If +port+ is +nil+ and &lt;tt&gt;opts[:use_ssl]&lt;/tt&gt; is a truthy value,</div><div class='add'>+    # the value passed to +new+ is Net::HTTP.https_default_port, not +port+.</div><div class='add'>+    #</div><div class='ctx'>     def HTTP.start(address, *arg, &amp;block) # :yield: +http+</div><div class='ctx'>       arg.pop if opt = Hash.try_convert(arg[-1])</div><div class='ctx'>       port, p_addr, p_port, p_user, p_pass = *arg</div><div class='ctx'>       p_addr = :ENV if arg.size &lt; 2</div><div class='ctx'>       port = https_default_port if !port &amp;&amp; opt &amp;&amp; opt[:use_ssl]</div><div class='ctx'>       http = new(address, port, p_addr, p_port, p_user, p_pass)</div><div class='add'>+      http.ipaddr = opt[:ipaddr] if opt &amp;&amp; opt[:ipaddr]</div><div class='ctx'> </div><div class='ctx'>       if opt</div><div class='ctx'>         if opt[:use_ssl]</div><div class='hunk'>@@ -609,25 +1033,34 @@ module Net   #:nodoc:</div><div class='ctx'>       alias newobj new # :nodoc:</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Creates a new Net::HTTP object without opening a TCP connection or</div><div class='del'>-    # HTTP session.</div><div class='add'>+    # Returns a new \Net::HTTP object +http+</div><div class='add'>+    # (but does not open a TCP connection or \HTTP session).</div><div class='add'>+    #</div><div class='add'>+    # With only string argument +address+ given</div><div class='add'>+    # (and &lt;tt&gt;ENV['http_proxy']&lt;/tt&gt; undefined or +nil+),</div><div class='add'>+    # the returned +http+:</div><div class='add'>+    #</div><div class='add'>+    # - Has the given address.</div><div class='add'>+    # - Has the default port number, Net::HTTP.default_port (80).</div><div class='add'>+    # - Has no proxy.</div><div class='add'>+    #</div><div class='add'>+    # Example:</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTP jsonplaceholder.typicode.com:80 open=false&gt;</div><div class='add'>+    #   http.address # =&gt; "jsonplaceholder.typicode.com"</div><div class='add'>+    #   http.port    # =&gt; 80</div><div class='add'>+    #   http.proxy?  # =&gt; false</div><div class='ctx'>     #</div><div class='del'>-    # The +address+ should be a DNS hostname or IP address, the +port+ is the</div><div class='del'>-    # port the server operates on.  If no +port+ is given the default port for</div><div class='del'>-    # HTTP or HTTPS is used.</div><div class='add'>+    # With integer argument +port+ also given,</div><div class='add'>+    # the returned +http+ has the given port:</div><div class='ctx'>     #</div><div class='del'>-    # If none of the +p_+ arguments are given, the proxy host and port are</div><div class='del'>-    # taken from the +http_proxy+ environment variable (or its uppercase</div><div class='del'>-    # equivalent) if present.  If the proxy requires authentication you must</div><div class='del'>-    # supply it by hand.  See URI::Generic#find_proxy for details of proxy</div><div class='del'>-    # detection from the environment.  To disable proxy detection set +p_addr+</div><div class='del'>-    # to nil.</div><div class='add'>+    #   http = Net::HTTP.new(hostname, 8000)</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTP jsonplaceholder.typicode.com:8000 open=false&gt;</div><div class='add'>+    #   http.port # =&gt; 8000</div><div class='ctx'>     #</div><div class='del'>-    # If you are connecting to a custom proxy, +p_addr+ specifies the DNS name</div><div class='del'>-    # or IP address of the proxy host, +p_port+ the port to use to access the</div><div class='del'>-    # proxy, +p_user+ and +p_pass+ the username and password if authorization</div><div class='del'>-    # is required to use the proxy, and p_no_proxy hosts which do not</div><div class='del'>-    # use the proxy.</div><div class='add'>+    # For proxy-defining arguments +p_addr+ through +p_no_proxy+,</div><div class='add'>+    # see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='ctx'>     #</div><div class='ctx'>     def HTTP.new(address, port = nil, p_addr = :ENV, p_port = nil, p_user = nil, p_pass = nil, p_no_proxy = nil)</div><div class='ctx'>       http = super address, port</div><div class='hunk'>@@ -641,7 +1074,7 @@ module Net   #:nodoc:</div><div class='ctx'>       elsif p_addr == :ENV then</div><div class='ctx'>         http.proxy_from_env = true</div><div class='ctx'>       else</div><div class='del'>-        if p_addr &amp;&amp; p_no_proxy &amp;&amp; !URI::Generic.use_proxy?(p_addr, p_addr, p_port, p_no_proxy)</div><div class='add'>+        if p_addr &amp;&amp; p_no_proxy &amp;&amp; !URI::Generic.use_proxy?(address, address, port, p_no_proxy)</div><div class='ctx'>           p_addr = nil</div><div class='ctx'>           p_port = nil</div><div class='ctx'>         end</div><div class='hunk'>@@ -654,12 +1087,13 @@ module Net   #:nodoc:</div><div class='ctx'>       http</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Creates a new Net::HTTP object for the specified server address,</div><div class='del'>-    # without opening the TCP connection or initializing the HTTP session.</div><div class='add'>+    # Creates a new \Net::HTTP object for the specified server address,</div><div class='add'>+    # without opening the TCP connection or initializing the \HTTP session.</div><div class='ctx'>     # The +address+ should be a DNS hostname or IP address.</div><div class='del'>-    def initialize(address, port = nil)</div><div class='add'>+    def initialize(address, port = nil) # :nodoc:</div><div class='ctx'>       @address = address</div><div class='ctx'>       @port    = (port || HTTP.default_port)</div><div class='add'>+      @ipaddr = nil</div><div class='ctx'>       @local_host = nil</div><div class='ctx'>       @local_port = nil</div><div class='ctx'>       @curr_http_version = HTTPVersion</div><div class='hunk'>@@ -674,6 +1108,8 @@ module Net   #:nodoc:</div><div class='ctx'>       @continue_timeout = nil</div><div class='ctx'>       @max_retries = 1</div><div class='ctx'>       @debug_output = nil</div><div class='add'>+      @response_body_encoding = false</div><div class='add'>+      @ignore_eof = true</div><div class='ctx'> </div><div class='ctx'>       @proxy_from_env = false</div><div class='ctx'>       @proxy_uri      = nil</div><div class='hunk'>@@ -691,6 +1127,11 @@ module Net   #:nodoc:</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Returns a string representation of +self+:</div><div class='add'>+    #</div><div class='add'>+    #   Net::HTTP.new(hostname).inspect</div><div class='add'>+    #   # =&gt; "#&lt;Net::HTTP jsonplaceholder.typicode.com:80 open=false&gt;"</div><div class='add'>+    #</div><div class='ctx'>     def inspect</div><div class='ctx'>       "#&lt;#{self.class} #{@address}:#{@port} open=#{started?}&gt;"</div><div class='ctx'>     end</div><div class='hunk'>@@ -698,60 +1139,184 @@ module Net   #:nodoc:</div><div class='ctx'>     # *WARNING* This method opens a serious security hole.</div><div class='ctx'>     # Never use this method in production code.</div><div class='ctx'>     #</div><div class='del'>-    # Sets an output stream for debugging.</div><div class='add'>+    # Sets the output stream for debugging:</div><div class='ctx'>     #</div><div class='ctx'>     #   http = Net::HTTP.new(hostname)</div><div class='del'>-    #   http.set_debug_output $stderr</div><div class='del'>-    #   http.start { .... }</div><div class='add'>+    #   File.open('t.tmp', 'w') do |file|</div><div class='add'>+    #     http.set_debug_output(file)</div><div class='add'>+    #     http.start</div><div class='add'>+    #     http.get('/nosuch/1')</div><div class='add'>+    #     http.finish</div><div class='add'>+    #   end</div><div class='add'>+    #   puts File.read('t.tmp')</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #</div><div class='add'>+    #   opening connection to jsonplaceholder.typicode.com:80...</div><div class='add'>+    #   opened</div><div class='add'>+    #   &lt;- "GET /nosuch/1 HTTP/1.1\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nUser-Agent: Ruby\r\nHost: jsonplaceholder.typicode.com\r\n\r\n"</div><div class='add'>+    #   -&gt; "HTTP/1.1 404 Not Found\r\n"</div><div class='add'>+    #   -&gt; "Date: Mon, 12 Dec 2022 21:14:11 GMT\r\n"</div><div class='add'>+    #   -&gt; "Content-Type: application/json; charset=utf-8\r\n"</div><div class='add'>+    #   -&gt; "Content-Length: 2\r\n"</div><div class='add'>+    #   -&gt; "Connection: keep-alive\r\n"</div><div class='add'>+    #   -&gt; "X-Powered-By: Express\r\n"</div><div class='add'>+    #   -&gt; "X-Ratelimit-Limit: 1000\r\n"</div><div class='add'>+    #   -&gt; "X-Ratelimit-Remaining: 999\r\n"</div><div class='add'>+    #   -&gt; "X-Ratelimit-Reset: 1670879660\r\n"</div><div class='add'>+    #   -&gt; "Vary: Origin, Accept-Encoding\r\n"</div><div class='add'>+    #   -&gt; "Access-Control-Allow-Credentials: true\r\n"</div><div class='add'>+    #   -&gt; "Cache-Control: max-age=43200\r\n"</div><div class='add'>+    #   -&gt; "Pragma: no-cache\r\n"</div><div class='add'>+    #   -&gt; "Expires: -1\r\n"</div><div class='add'>+    #   -&gt; "X-Content-Type-Options: nosniff\r\n"</div><div class='add'>+    #   -&gt; "Etag: W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\"\r\n"</div><div class='add'>+    #   -&gt; "Via: 1.1 vegur\r\n"</div><div class='add'>+    #   -&gt; "CF-Cache-Status: MISS\r\n"</div><div class='add'>+    #   -&gt; "Server-Timing: cf-q-config;dur=1.3000000762986e-05\r\n"</div><div class='add'>+    #   -&gt; "Report-To: {\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=yOr40jo%2BwS1KHzhTlVpl54beJ5Wx2FcG4gGV0XVrh3X9OlR5q4drUn2dkt5DGO4GDcE%2BVXT7CNgJvGs%2BZleIyMu8CLieFiDIvOviOY3EhHg94m0ZNZgrEdpKD0S85S507l1vsEwEHkoTm%2Ff19SiO\"}],\"group\":\"cf-nel\",\"max_age\":604800}\r\n"</div><div class='add'>+    #   -&gt; "NEL: {\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}\r\n"</div><div class='add'>+    #   -&gt; "Server: cloudflare\r\n"</div><div class='add'>+    #   -&gt; "CF-RAY: 778977dc484ce591-DFW\r\n"</div><div class='add'>+    #   -&gt; "alt-svc: h3=\":443\"; ma=86400, h3-29=\":443\"; ma=86400\r\n"</div><div class='add'>+    #   -&gt; "\r\n"</div><div class='add'>+    #   reading 2 bytes...</div><div class='add'>+    #   -&gt; "{}"</div><div class='add'>+    #   read 2 bytes</div><div class='add'>+    #   Conn keep-alive</div><div class='ctx'>     #</div><div class='ctx'>     def set_debug_output(output)</div><div class='ctx'>       warn 'Net::HTTP#set_debug_output called after HTTP started', uplevel: 1 if started?</div><div class='ctx'>       @debug_output = output</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # The DNS host name or IP address to connect to.</div><div class='add'>+    # Returns the string host name or host IP given as argument +address+ in ::new.</div><div class='ctx'>     attr_reader :address</div><div class='ctx'> </div><div class='del'>-    # The port number to connect to.</div><div class='add'>+    # Returns the integer port number given as argument +port+ in ::new.</div><div class='ctx'>     attr_reader :port</div><div class='ctx'> </div><div class='del'>-    # The local host used to establish the connection.</div><div class='add'>+    # Sets or returns the string local host used to establish the connection;</div><div class='add'>+    # initially +nil+.</div><div class='ctx'>     attr_accessor :local_host</div><div class='ctx'> </div><div class='del'>-    # The local port used to establish the connection.</div><div class='add'>+    # Sets or returns the integer local port used to establish the connection;</div><div class='add'>+    # initially +nil+.</div><div class='ctx'>     attr_accessor :local_port</div><div class='ctx'> </div><div class='add'>+    # Returns the encoding to use for the response body;</div><div class='add'>+    # see #response_body_encoding=.</div><div class='add'>+    attr_reader :response_body_encoding</div><div class='add'>+</div><div class='add'>+    # Sets the encoding to be used for the response body;</div><div class='add'>+    # returns the encoding.</div><div class='add'>+    #</div><div class='add'>+    # The given +value+ may be:</div><div class='add'>+    #</div><div class='add'>+    # - An Encoding object.</div><div class='add'>+    # - The name of an encoding.</div><div class='add'>+    # - An alias for an encoding name.</div><div class='add'>+    #</div><div class='add'>+    # See {Encoding}[rdoc-ref:Encoding].</div><div class='add'>+    #</div><div class='add'>+    # Examples:</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.response_body_encoding = Encoding::US_ASCII # =&gt; #&lt;Encoding:US-ASCII&gt;</div><div class='add'>+    #   http.response_body_encoding = 'US-ASCII'         # =&gt; "US-ASCII"</div><div class='add'>+    #   http.response_body_encoding = 'ASCII'            # =&gt; "ASCII"</div><div class='add'>+    #</div><div class='add'>+    def response_body_encoding=(value)</div><div class='add'>+      value = Encoding.find(value) if value.is_a?(String)</div><div class='add'>+      @response_body_encoding = value</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Sets whether to determine the proxy from environment variable</div><div class='add'>+    # '&lt;tt&gt;ENV['http_proxy']&lt;/tt&gt;';</div><div class='add'>+    # see {Proxy Using ENV['http_proxy']}[rdoc-ref:Net::HTTP@Proxy+Using+-27ENV-5B-27http_proxy-27-5D-27].</div><div class='ctx'>     attr_writer :proxy_from_env</div><div class='add'>+</div><div class='add'>+    # Sets the proxy address;</div><div class='add'>+    # see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='ctx'>     attr_writer :proxy_address</div><div class='add'>+</div><div class='add'>+    # Sets the proxy port;</div><div class='add'>+    # see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='ctx'>     attr_writer :proxy_port</div><div class='add'>+</div><div class='add'>+    # Sets the proxy user;</div><div class='add'>+    # see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='ctx'>     attr_writer :proxy_user</div><div class='add'>+</div><div class='add'>+    # Sets the proxy password;</div><div class='add'>+    # see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='ctx'>     attr_writer :proxy_pass</div><div class='ctx'> </div><div class='del'>-    # Number of seconds to wait for the connection to open. Any number</div><div class='del'>-    # may be used, including Floats for fractional seconds. If the HTTP</div><div class='del'>-    # object cannot open a connection in this many seconds, it raises a</div><div class='del'>-    # Net::OpenTimeout exception. The default value is 60 seconds.</div><div class='add'>+    # Returns the IP address for the connection.</div><div class='add'>+    #</div><div class='add'>+    # If the session has not been started,</div><div class='add'>+    # returns the value set by #ipaddr=,</div><div class='add'>+    # or +nil+ if it has not been set:</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.ipaddr # =&gt; nil</div><div class='add'>+    #   http.ipaddr = '172.67.155.76'</div><div class='add'>+    #   http.ipaddr # =&gt; "172.67.155.76"</div><div class='add'>+    #</div><div class='add'>+    # If the session has been started,</div><div class='add'>+    # returns the IP address from the socket:</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.start</div><div class='add'>+    #   http.ipaddr # =&gt; "172.67.155.76"</div><div class='add'>+    #   http.finish</div><div class='add'>+    #</div><div class='add'>+    def ipaddr</div><div class='add'>+      started? ?  @socket.io.peeraddr[3] : @ipaddr</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Sets the IP address for the connection:</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.ipaddr # =&gt; nil</div><div class='add'>+    #   http.ipaddr = '172.67.155.76'</div><div class='add'>+    #   http.ipaddr # =&gt; "172.67.155.76"</div><div class='add'>+    #</div><div class='add'>+    # The IP address may not be set if the session has been started.</div><div class='add'>+    def ipaddr=(addr)</div><div class='add'>+      raise IOError, "ipaddr value changed, but session already started" if started?</div><div class='add'>+      @ipaddr = addr</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # Sets or returns the numeric (\Integer or \Float) number of seconds</div><div class='add'>+    # to wait for a connection to open;</div><div class='add'>+    # initially 60.</div><div class='add'>+    # If the connection is not made in the given interval,</div><div class='add'>+    # an exception is raised.</div><div class='ctx'>     attr_accessor :open_timeout</div><div class='ctx'> </div><div class='del'>-    # Number of seconds to wait for one block to be read (via one read(2)</div><div class='del'>-    # call). Any number may be used, including Floats for fractional</div><div class='del'>-    # seconds. If the HTTP object cannot read data in this many seconds,</div><div class='del'>-    # it raises a Net::ReadTimeout exception. The default value is 60 seconds.</div><div class='add'>+    # Returns the numeric (\Integer or \Float) number of seconds</div><div class='add'>+    # to wait for one block to be read (via one read(2) call);</div><div class='add'>+    # see #read_timeout=.</div><div class='ctx'>     attr_reader :read_timeout</div><div class='ctx'> </div><div class='del'>-    # Number of seconds to wait for one block to be written (via one write(2)</div><div class='del'>-    # call). Any number may be used, including Floats for fractional</div><div class='del'>-    # seconds. If the HTTP object cannot write data in this many seconds,</div><div class='del'>-    # it raises a Net::WriteTimeout exception. The default value is 60 seconds.</div><div class='del'>-    # Net::WriteTimeout is not raised on Windows.</div><div class='add'>+    # Returns the numeric (\Integer or \Float) number of seconds</div><div class='add'>+    # to wait for one block to be written (via one write(2) call);</div><div class='add'>+    # see #write_timeout=.</div><div class='ctx'>     attr_reader :write_timeout</div><div class='ctx'> </div><div class='del'>-    # Maximum number of times to retry an idempotent request in case of</div><div class='del'>-    # Net::ReadTimeout, IOError, EOFError, Errno::ECONNRESET,</div><div class='add'>+    # Sets the maximum number of times to retry an idempotent request in case of</div><div class='add'>+    # \Net::ReadTimeout, IOError, EOFError, Errno::ECONNRESET,</div><div class='ctx'>     # Errno::ECONNABORTED, Errno::EPIPE, OpenSSL::SSL::SSLError,</div><div class='ctx'>     # Timeout::Error.</div><div class='del'>-    # Should be a non-negative integer number. Zero means no retries.</div><div class='del'>-    # The default value is 1.</div><div class='add'>+    # The initial value is 1.</div><div class='add'>+    #</div><div class='add'>+    # Argument +retries+ must be a non-negative numeric value:</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.max_retries = 2   # =&gt; 2</div><div class='add'>+    #   http.max_retries       # =&gt; 2</div><div class='add'>+    #</div><div class='ctx'>     def max_retries=(retries)</div><div class='ctx'>       retries = retries.to_int</div><div class='ctx'>       if retries &lt; 0</div><div class='hunk'>@@ -760,55 +1325,113 @@ module Net   #:nodoc:</div><div class='ctx'>       @max_retries = retries</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Returns the maximum number of times to retry an idempotent request;</div><div class='add'>+    # see #max_retries=.</div><div class='ctx'>     attr_reader :max_retries</div><div class='ctx'> </div><div class='del'>-    # Setter for the read_timeout attribute.</div><div class='add'>+    # Sets the read timeout, in seconds, for +self+ to integer +sec+;</div><div class='add'>+    # the initial value is 60.</div><div class='add'>+    #</div><div class='add'>+    # Argument +sec+ must be a non-negative numeric value:</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.read_timeout # =&gt; 60</div><div class='add'>+    #   http.get('/todos/1') # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='add'>+    #   http.read_timeout = 0</div><div class='add'>+    #   http.get('/todos/1') # Raises Net::ReadTimeout.</div><div class='add'>+    #</div><div class='ctx'>     def read_timeout=(sec)</div><div class='ctx'>       @socket.read_timeout = sec if @socket</div><div class='ctx'>       @read_timeout = sec</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Setter for the write_timeout attribute.</div><div class='add'>+    # Sets the write timeout, in seconds, for +self+ to integer +sec+;</div><div class='add'>+    # the initial value is 60.</div><div class='add'>+    #</div><div class='add'>+    # Argument +sec+ must be a non-negative numeric value:</div><div class='add'>+    #</div><div class='add'>+    #   _uri = uri.dup</div><div class='add'>+    #   _uri.path = '/posts'</div><div class='add'>+    #   body = 'bar' * 200000</div><div class='add'>+    #   data = &lt;&lt;EOF</div><div class='add'>+    #   {"title": "foo", "body": "#{body}", "userId": "1"}</div><div class='add'>+    #   EOF</div><div class='add'>+    #   headers = {'content-type': 'application/json'}</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.write_timeout # =&gt; 60</div><div class='add'>+    #   http.post(_uri.path, data, headers)</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTPCreated 201 Created readbody=true&gt;</div><div class='add'>+    #   http.write_timeout = 0</div><div class='add'>+    #   http.post(_uri.path, data, headers) # Raises Net::WriteTimeout.</div><div class='add'>+    #</div><div class='ctx'>     def write_timeout=(sec)</div><div class='ctx'>       @socket.write_timeout = sec if @socket</div><div class='ctx'>       @write_timeout = sec</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Seconds to wait for 100 Continue response. If the HTTP object does not</div><div class='del'>-    # receive a response in this many seconds it sends the request body. The</div><div class='del'>-    # default value is +nil+.</div><div class='add'>+    # Returns the continue timeout value;</div><div class='add'>+    # see continue_timeout=.</div><div class='ctx'>     attr_reader :continue_timeout</div><div class='ctx'> </div><div class='del'>-    # Setter for the continue_timeout attribute.</div><div class='add'>+    # Sets the continue timeout value,</div><div class='add'>+    # which is the number of seconds to wait for an expected 100 Continue response.</div><div class='add'>+    # If the \HTTP object does not receive a response in this many seconds</div><div class='add'>+    # it sends the request body.</div><div class='ctx'>     def continue_timeout=(sec)</div><div class='ctx'>       @socket.continue_timeout = sec if @socket</div><div class='ctx'>       @continue_timeout = sec</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Seconds to reuse the connection of the previous request.</div><div class='del'>-    # If the idle time is less than this Keep-Alive Timeout,</div><div class='del'>-    # Net::HTTP reuses the TCP/IP socket used by the previous communication.</div><div class='del'>-    # The default value is 2 seconds.</div><div class='add'>+    # Sets or returns the numeric (\Integer or \Float) number of seconds</div><div class='add'>+    # to keep the connection open after a request is sent;</div><div class='add'>+    # initially 2.</div><div class='add'>+    # If a new request is made during the given interval,</div><div class='add'>+    # the still-open connection is used;</div><div class='add'>+    # otherwise the connection will have been closed</div><div class='add'>+    # and a new connection is opened.</div><div class='ctx'>     attr_accessor :keep_alive_timeout</div><div class='ctx'> </div><div class='del'>-    # Returns true if the HTTP session has been started.</div><div class='add'>+    # Sets or returns whether to ignore end-of-file when reading a response body</div><div class='add'>+    # with &lt;tt&gt;Content-Length&lt;/tt&gt; headers;</div><div class='add'>+    # initially +true+.</div><div class='add'>+    attr_accessor :ignore_eof</div><div class='add'>+</div><div class='add'>+    # Returns +true+ if the \HTTP session has been started:</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.started? # =&gt; false</div><div class='add'>+    #   http.start</div><div class='add'>+    #   http.started? # =&gt; true</div><div class='add'>+    #   http.finish # =&gt; nil</div><div class='add'>+    #   http.started? # =&gt; false</div><div class='add'>+    #</div><div class='add'>+    #   Net::HTTP.start(hostname) do |http|</div><div class='add'>+    #     http.started?</div><div class='add'>+    #   end # =&gt; true</div><div class='add'>+    #   http.started? # =&gt; false</div><div class='add'>+    #</div><div class='ctx'>     def started?</div><div class='ctx'>       @started</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     alias active? started?   #:nodoc: obsolete</div><div class='ctx'> </div><div class='add'>+    # Sets or returns whether to close the connection when the response is empty;</div><div class='add'>+    # initially +false+.</div><div class='ctx'>     attr_accessor :close_on_empty_response</div><div class='ctx'> </div><div class='del'>-    # Returns true if SSL/TLS is being used with HTTP.</div><div class='add'>+    # Returns +true+ if +self+ uses SSL, +false+ otherwise.</div><div class='add'>+    # See Net::HTTP#use_ssl=.</div><div class='ctx'>     def use_ssl?</div><div class='ctx'>       @use_ssl</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Turn on/off SSL.</div><div class='del'>-    # This flag must be set before starting session.</div><div class='del'>-    # If you change use_ssl value after session started,</div><div class='del'>-    # a Net::HTTP object raises IOError.</div><div class='add'>+    # Sets whether a new session is to use</div><div class='add'>+    # {Transport Layer Security}[https://en.wikipedia.org/wiki/Transport_Layer_Security]:</div><div class='add'>+    #</div><div class='add'>+    # Raises IOError if attempting to change during a session.</div><div class='add'>+    #</div><div class='add'>+    # Raises OpenSSL::SSL::SSLError if the port is not an HTTPS port.</div><div class='ctx'>     def use_ssl=(flag)</div><div class='ctx'>       flag = flag ? true : false</div><div class='ctx'>       if started? and @use_ssl != flag</div><div class='hunk'>@@ -823,6 +1446,7 @@ module Net   #:nodoc:</div><div class='ctx'>       :@cert,</div><div class='ctx'>       :@cert_store,</div><div class='ctx'>       :@ciphers,</div><div class='add'>+      :@extra_chain_cert,</div><div class='ctx'>       :@key,</div><div class='ctx'>       :@ssl_timeout,</div><div class='ctx'>       :@ssl_version,</div><div class='hunk'>@@ -831,13 +1455,15 @@ module Net   #:nodoc:</div><div class='ctx'>       :@verify_callback,</div><div class='ctx'>       :@verify_depth,</div><div class='ctx'>       :@verify_mode,</div><div class='del'>-    ]</div><div class='add'>+      :@verify_hostname,</div><div class='add'>+    ] # :nodoc:</div><div class='ctx'>     SSL_ATTRIBUTES = [</div><div class='ctx'>       :ca_file,</div><div class='ctx'>       :ca_path,</div><div class='ctx'>       :cert,</div><div class='ctx'>       :cert_store,</div><div class='ctx'>       :ciphers,</div><div class='add'>+      :extra_chain_cert,</div><div class='ctx'>       :key,</div><div class='ctx'>       :ssl_timeout,</div><div class='ctx'>       :ssl_version,</div><div class='hunk'>@@ -846,56 +1472,68 @@ module Net   #:nodoc:</div><div class='ctx'>       :verify_callback,</div><div class='ctx'>       :verify_depth,</div><div class='ctx'>       :verify_mode,</div><div class='del'>-    ]</div><div class='add'>+      :verify_hostname,</div><div class='add'>+    ] # :nodoc:</div><div class='ctx'> </div><div class='del'>-    # Sets path of a CA certification file in PEM format.</div><div class='del'>-    #</div><div class='del'>-    # The file can contain several CA certificates.</div><div class='add'>+    # Sets or returns the path to a CA certification file in PEM format.</div><div class='ctx'>     attr_accessor :ca_file</div><div class='ctx'> </div><div class='del'>-    # Sets path of a CA certification directory containing certifications in</div><div class='del'>-    # PEM format.</div><div class='add'>+    # Sets or returns the path of to CA directory</div><div class='add'>+    # containing certification files in PEM format.</div><div class='ctx'>     attr_accessor :ca_path</div><div class='ctx'> </div><div class='del'>-    # Sets an OpenSSL::X509::Certificate object as client certificate.</div><div class='del'>-    # (This method is appeared in Michal Rokos's OpenSSL extension).</div><div class='add'>+    # Sets or returns the OpenSSL::X509::Certificate object</div><div class='add'>+    # to be used for client certification.</div><div class='ctx'>     attr_accessor :cert</div><div class='ctx'> </div><div class='del'>-    # Sets the X509::Store to verify peer certificate.</div><div class='add'>+    # Sets or returns the X509::Store to be used for verifying peer certificate.</div><div class='ctx'>     attr_accessor :cert_store</div><div class='ctx'> </div><div class='del'>-    # Sets the available ciphers.  See OpenSSL::SSL::SSLContext#ciphers=</div><div class='add'>+    # Sets or returns the available SSL ciphers.</div><div class='add'>+    # See {OpenSSL::SSL::SSLContext#ciphers=}[rdoc-ref:OpenSSL::SSL::SSLContext#ciphers-3D].</div><div class='ctx'>     attr_accessor :ciphers</div><div class='ctx'> </div><div class='del'>-    # Sets an OpenSSL::PKey::RSA or OpenSSL::PKey::DSA object.</div><div class='del'>-    # (This method is appeared in Michal Rokos's OpenSSL extension.)</div><div class='add'>+    # Sets or returns the extra X509 certificates to be added to the certificate chain.</div><div class='add'>+    # See {OpenSSL::SSL::SSLContext#add_certificate}[rdoc-ref:OpenSSL::SSL::SSLContext#add_certificate].</div><div class='add'>+    attr_accessor :extra_chain_cert</div><div class='add'>+</div><div class='add'>+    # Sets or returns the OpenSSL::PKey::RSA or OpenSSL::PKey::DSA object.</div><div class='ctx'>     attr_accessor :key</div><div class='ctx'> </div><div class='del'>-    # Sets the SSL timeout seconds.</div><div class='add'>+    # Sets or returns the SSL timeout seconds.</div><div class='ctx'>     attr_accessor :ssl_timeout</div><div class='ctx'> </div><div class='del'>-    # Sets the SSL version.  See OpenSSL::SSL::SSLContext#ssl_version=</div><div class='add'>+    # Sets or returns the SSL version.</div><div class='add'>+    # See {OpenSSL::SSL::SSLContext#ssl_version=}[rdoc-ref:OpenSSL::SSL::SSLContext#ssl_version-3D].</div><div class='ctx'>     attr_accessor :ssl_version</div><div class='ctx'> </div><div class='del'>-    # Sets the minimum SSL version.  See OpenSSL::SSL::SSLContext#min_version=</div><div class='add'>+    # Sets or returns the minimum SSL version.</div><div class='add'>+    # See {OpenSSL::SSL::SSLContext#min_version=}[rdoc-ref:OpenSSL::SSL::SSLContext#min_version-3D].</div><div class='ctx'>     attr_accessor :min_version</div><div class='ctx'> </div><div class='del'>-    # Sets the maximum SSL version.  See OpenSSL::SSL::SSLContext#max_version=</div><div class='add'>+    # Sets or returns the maximum SSL version.</div><div class='add'>+    # See {OpenSSL::SSL::SSLContext#max_version=}[rdoc-ref:OpenSSL::SSL::SSLContext#max_version-3D].</div><div class='ctx'>     attr_accessor :max_version</div><div class='ctx'> </div><div class='del'>-    # Sets the verify callback for the server certification verification.</div><div class='add'>+    # Sets or returns the callback for the server certification verification.</div><div class='ctx'>     attr_accessor :verify_callback</div><div class='ctx'> </div><div class='del'>-    # Sets the maximum depth for the certificate chain verification.</div><div class='add'>+    # Sets or returns the maximum depth for the certificate chain verification.</div><div class='ctx'>     attr_accessor :verify_depth</div><div class='ctx'> </div><div class='del'>-    # Sets the flags for server the certification verification at beginning of</div><div class='del'>-    # SSL/TLS session.</div><div class='del'>-    #</div><div class='add'>+    # Sets or returns the flags for server the certification verification</div><div class='add'>+    # at the beginning of the SSL/TLS session.</div><div class='ctx'>     # OpenSSL::SSL::VERIFY_NONE or OpenSSL::SSL::VERIFY_PEER are acceptable.</div><div class='ctx'>     attr_accessor :verify_mode</div><div class='ctx'> </div><div class='del'>-    # Returns the X.509 certificates the server presented.</div><div class='add'>+    # Sets or returns whether to verify that the server certificate is valid</div><div class='add'>+    # for the hostname.</div><div class='add'>+    # See {OpenSSL::SSL::SSLContext#verify_hostname=}[rdoc-ref:OpenSSL::SSL::SSLContext#attribute-i-verify_mode].</div><div class='add'>+    attr_accessor :verify_hostname</div><div class='add'>+</div><div class='add'>+    # Returns the X509 certificate chain (an array of strings)</div><div class='add'>+    # for the session's socket peer,</div><div class='add'>+    # or +nil+ if none.</div><div class='ctx'>     def peer_cert</div><div class='ctx'>       if not use_ssl? or not @socket</div><div class='ctx'>         return nil</div><div class='hunk'>@@ -903,14 +1541,26 @@ module Net   #:nodoc:</div><div class='ctx'>       @socket.io.peer_cert</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Opens a TCP connection and HTTP session.</div><div class='add'>+    # Starts an \HTTP session.</div><div class='ctx'>     #</div><div class='del'>-    # When this method is called with a block, it passes the Net::HTTP</div><div class='del'>-    # object to the block, and closes the TCP connection and HTTP session</div><div class='del'>-    # after the block has been executed.</div><div class='add'>+    # Without a block, returns +self+:</div><div class='ctx'>     #</div><div class='del'>-    # When called with a block, it returns the return value of the</div><div class='del'>-    # block; otherwise, it returns self.</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTP jsonplaceholder.typicode.com:80 open=false&gt;</div><div class='add'>+    #   http.start</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTP jsonplaceholder.typicode.com:80 open=true&gt;</div><div class='add'>+    #   http.started? # =&gt; true</div><div class='add'>+    #   http.finish</div><div class='add'>+    #</div><div class='add'>+    # With a block, calls the block with +self+,</div><div class='add'>+    # finishes the session when the block exits,</div><div class='add'>+    # and returns the block's value:</div><div class='add'>+    #</div><div class='add'>+    #   http.start do |http|</div><div class='add'>+    #     http</div><div class='add'>+    #   end</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTP jsonplaceholder.typicode.com:80 open=false&gt;</div><div class='add'>+    #   http.started? # =&gt; false</div><div class='ctx'>     #</div><div class='ctx'>     def start  # :yield: http</div><div class='ctx'>       raise IOError, 'HTTP session already opened' if @started</div><div class='hunk'>@@ -933,33 +1583,39 @@ module Net   #:nodoc:</div><div class='ctx'>     private :do_start</div><div class='ctx'> </div><div class='ctx'>     def connect</div><div class='add'>+      if use_ssl?</div><div class='add'>+        # reference early to load OpenSSL before connecting,</div><div class='add'>+        # as OpenSSL may take time to load.</div><div class='add'>+        @ssl_context = OpenSSL::SSL::SSLContext.new</div><div class='add'>+      end</div><div class='add'>+</div><div class='ctx'>       if proxy? then</div><div class='del'>-        conn_address = proxy_address</div><div class='del'>-        conn_port    = proxy_port</div><div class='add'>+        conn_addr = proxy_address</div><div class='add'>+        conn_port = proxy_port</div><div class='ctx'>       else</div><div class='del'>-        conn_address = address</div><div class='del'>-        conn_port    = port</div><div class='add'>+        conn_addr = conn_address</div><div class='add'>+        conn_port = port</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      D "opening connection to #{conn_address}:#{conn_port}..."</div><div class='add'>+      debug "opening connection to #{conn_addr}:#{conn_port}..."</div><div class='ctx'>       s = Timeout.timeout(@open_timeout, Net::OpenTimeout) {</div><div class='ctx'>         begin</div><div class='del'>-          TCPSocket.open(conn_address, conn_port, @local_host, @local_port)</div><div class='add'>+          TCPSocket.open(conn_addr, conn_port, @local_host, @local_port)</div><div class='ctx'>         rescue =&gt; e</div><div class='ctx'>           raise e, "Failed to open TCP connection to " +</div><div class='del'>-            "#{conn_address}:#{conn_port} (#{e.message})"</div><div class='add'>+            "#{conn_addr}:#{conn_port} (#{e.message})"</div><div class='ctx'>         end</div><div class='ctx'>       }</div><div class='ctx'>       s.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)</div><div class='del'>-      D "opened"</div><div class='add'>+      debug "opened"</div><div class='ctx'>       if use_ssl?</div><div class='ctx'>         if proxy?</div><div class='ctx'>           plain_sock = BufferedIO.new(s, read_timeout: @read_timeout,</div><div class='ctx'>                                       write_timeout: @write_timeout,</div><div class='ctx'>                                       continue_timeout: @continue_timeout,</div><div class='ctx'>                                       debug_output: @debug_output)</div><div class='del'>-          buf = "CONNECT #{@address}:#{@port} HTTP/#{HTTPVersion}\r\n"</div><div class='del'>-          buf &lt;&lt; "Host: #{@address}:#{@port}\r\n"</div><div class='add'>+          buf = +"CONNECT #{conn_address}:#{@port} HTTP/#{HTTPVersion}\r\n" \</div><div class='add'>+            "Host: #{@address}:#{@port}\r\n"</div><div class='ctx'>           if proxy_user</div><div class='ctx'>             credential = ["#{proxy_user}:#{proxy_pass}"].pack('m0')</div><div class='ctx'>             buf &lt;&lt; "Proxy-Authorization: Basic #{credential}\r\n"</div><div class='hunk'>@@ -973,40 +1629,63 @@ module Net   #:nodoc:</div><div class='ctx'>         ssl_parameters = Hash.new</div><div class='ctx'>         iv_list = instance_variables</div><div class='ctx'>         SSL_IVNAMES.each_with_index do |ivname, i|</div><div class='del'>-          if iv_list.include?(ivname) and</div><div class='add'>+          if iv_list.include?(ivname)</div><div class='ctx'>             value = instance_variable_get(ivname)</div><div class='del'>-            ssl_parameters[SSL_ATTRIBUTES[i]] = value if value</div><div class='add'>+            unless value.nil?</div><div class='add'>+              ssl_parameters[SSL_ATTRIBUTES[i]] = value</div><div class='add'>+            end</div><div class='ctx'>           end</div><div class='ctx'>         end</div><div class='del'>-        @ssl_context = OpenSSL::SSL::SSLContext.new</div><div class='ctx'>         @ssl_context.set_params(ssl_parameters)</div><div class='del'>-        @ssl_context.session_cache_mode =</div><div class='del'>-          OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT |</div><div class='del'>-          OpenSSL::SSL::SSLContext::SESSION_CACHE_NO_INTERNAL_STORE</div><div class='del'>-        @ssl_context.session_new_cb = proc {|sock, sess| @ssl_session = sess }</div><div class='del'>-        D "starting SSL for #{conn_address}:#{conn_port}..."</div><div class='add'>+        unless @ssl_context.session_cache_mode.nil? # a dummy method on JRuby</div><div class='add'>+          @ssl_context.session_cache_mode =</div><div class='add'>+              OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT |</div><div class='add'>+                  OpenSSL::SSL::SSLContext::SESSION_CACHE_NO_INTERNAL_STORE</div><div class='add'>+        end</div><div class='add'>+        if @ssl_context.respond_to?(:session_new_cb) # not implemented under JRuby</div><div class='add'>+          @ssl_context.session_new_cb = proc {|sock, sess| @ssl_session = sess }</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        # Still do the post_connection_check below even if connecting</div><div class='add'>+        # to IP address</div><div class='add'>+        verify_hostname = @ssl_context.verify_hostname</div><div class='add'>+</div><div class='add'>+        # Server Name Indication (SNI) RFC 3546/6066</div><div class='add'>+        case @address</div><div class='add'>+        when Resolv::IPv4::Regex, Resolv::IPv6::Regex</div><div class='add'>+          # don't set SNI, as IP addresses in SNI is not valid</div><div class='add'>+          # per RFC 6066, section 3.</div><div class='add'>+</div><div class='add'>+          # Avoid openssl warning</div><div class='add'>+          @ssl_context.verify_hostname = false</div><div class='add'>+        else</div><div class='add'>+          ssl_host_address = @address</div><div class='add'>+        end</div><div class='add'>+</div><div class='add'>+        debug "starting SSL for #{conn_addr}:#{conn_port}..."</div><div class='ctx'>         s = OpenSSL::SSL::SSLSocket.new(s, @ssl_context)</div><div class='ctx'>         s.sync_close = true</div><div class='del'>-        # Server Name Indication (SNI) RFC 3546</div><div class='del'>-        s.hostname = @address if s.respond_to? :hostname=</div><div class='add'>+        s.hostname = ssl_host_address if s.respond_to?(:hostname=) &amp;&amp; ssl_host_address</div><div class='add'>+</div><div class='ctx'>         if @ssl_session and</div><div class='ctx'>            Process.clock_gettime(Process::CLOCK_REALTIME) &lt; @ssl_session.time.to_f + @ssl_session.timeout</div><div class='ctx'>           s.session = @ssl_session</div><div class='ctx'>         end</div><div class='ctx'>         ssl_socket_connect(s, @open_timeout)</div><div class='del'>-        if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE</div><div class='add'>+        if (@ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE) &amp;&amp; verify_hostname</div><div class='ctx'>           s.post_connection_check(@address)</div><div class='ctx'>         end</div><div class='del'>-        D "SSL established, protocol: #{s.ssl_version}, cipher: #{s.cipher[0]}"</div><div class='add'>+        debug "SSL established, protocol: #{s.ssl_version}, cipher: #{s.cipher[0]}"</div><div class='ctx'>       end</div><div class='ctx'>       @socket = BufferedIO.new(s, read_timeout: @read_timeout,</div><div class='ctx'>                                write_timeout: @write_timeout,</div><div class='ctx'>                                continue_timeout: @continue_timeout,</div><div class='ctx'>                                debug_output: @debug_output)</div><div class='add'>+      @last_communicated = nil</div><div class='ctx'>       on_connect</div><div class='ctx'>     rescue =&gt; exception</div><div class='ctx'>       if s</div><div class='del'>-        D "Conn close because of connect error #{exception}"</div><div class='add'>+        debug "Conn close because of connect error #{exception}"</div><div class='ctx'>         s.close</div><div class='ctx'>       end</div><div class='ctx'>       raise</div><div class='hunk'>@@ -1017,8 +1696,15 @@ module Net   #:nodoc:</div><div class='ctx'>     end</div><div class='ctx'>     private :on_connect</div><div class='ctx'> </div><div class='del'>-    # Finishes the HTTP session and closes the TCP connection.</div><div class='del'>-    # Raises IOError if the session has not been started.</div><div class='add'>+    # Finishes the \HTTP session:</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.start</div><div class='add'>+    #   http.started? # =&gt; true</div><div class='add'>+    #   http.finish   # =&gt; nil</div><div class='add'>+    #   http.started? # =&gt; false</div><div class='add'>+    #</div><div class='add'>+    # Raises IOError if not in a session.</div><div class='ctx'>     def finish</div><div class='ctx'>       raise IOError, 'HTTP session not yet started' unless started?</div><div class='ctx'>       do_finish</div><div class='hunk'>@@ -1045,12 +1731,12 @@ module Net   #:nodoc:</div><div class='ctx'>     @proxy_user = nil</div><div class='ctx'>     @proxy_pass = nil</div><div class='ctx'> </div><div class='del'>-    # Creates an HTTP proxy class which behaves like Net::HTTP, but</div><div class='add'>+    # Creates an \HTTP proxy class which behaves like \Net::HTTP, but</div><div class='ctx'>     # performs all access via the specified proxy.</div><div class='ctx'>     #</div><div class='ctx'>     # This class is obsolete.  You may pass these same parameters directly to</div><div class='del'>-    # Net::HTTP.new.  See Net::HTTP.new for details of the arguments.</div><div class='del'>-    def HTTP.Proxy(p_addr = :ENV, p_port = nil, p_user = nil, p_pass = nil)</div><div class='add'>+    # \Net::HTTP.new.  See Net::HTTP.new for details of the arguments.</div><div class='add'>+    def HTTP.Proxy(p_addr = :ENV, p_port = nil, p_user = nil, p_pass = nil) #:nodoc:</div><div class='ctx'>       return self unless p_addr</div><div class='ctx'> </div><div class='ctx'>       Class.new(self) {</div><div class='hunk'>@@ -1072,31 +1758,37 @@ module Net   #:nodoc:</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     class &lt;&lt; HTTP</div><div class='del'>-      # returns true if self is a class which was created by HTTP::Proxy.</div><div class='add'>+      # Returns true if self is a class which was created by HTTP::Proxy.</div><div class='ctx'>       def proxy_class?</div><div class='ctx'>         defined?(@is_proxy_class) ? @is_proxy_class : false</div><div class='ctx'>       end</div><div class='ctx'> </div><div class='del'>-      # Address of proxy host. If Net::HTTP does not use a proxy, nil.</div><div class='add'>+      # Returns the address of the proxy host, or +nil+ if none;</div><div class='add'>+      # see Net::HTTP@Proxy+Server.</div><div class='ctx'>       attr_reader :proxy_address</div><div class='ctx'> </div><div class='del'>-      # Port number of proxy host. If Net::HTTP does not use a proxy, nil.</div><div class='add'>+      # Returns the port number of the proxy host, or +nil+ if none;</div><div class='add'>+      # see Net::HTTP@Proxy+Server.</div><div class='ctx'>       attr_reader :proxy_port</div><div class='ctx'> </div><div class='del'>-      # User name for accessing proxy. If Net::HTTP does not use a proxy, nil.</div><div class='add'>+      # Returns the user name for accessing the proxy, or +nil+ if none;</div><div class='add'>+      # see Net::HTTP@Proxy+Server.</div><div class='ctx'>       attr_reader :proxy_user</div><div class='ctx'> </div><div class='del'>-      # User password for accessing proxy. If Net::HTTP does not use a proxy,</div><div class='del'>-      # nil.</div><div class='add'>+      # Returns the password for accessing the proxy, or +nil+ if none;</div><div class='add'>+      # see Net::HTTP@Proxy+Server.</div><div class='ctx'>       attr_reader :proxy_pass</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # True if requests for this connection will be proxied</div><div class='add'>+    # Returns +true+ if a proxy server is defined, +false+ otherwise;</div><div class='add'>+    # see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='ctx'>     def proxy?</div><div class='ctx'>       !!(@proxy_from_env ? proxy_uri : @proxy_address)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # True if the proxy for this connection is determined from the environment</div><div class='add'>+    # Returns +true+ if the proxy server is defined in the environment,</div><div class='add'>+    # +false+ otherwise;</div><div class='add'>+    # see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='ctx'>     def proxy_from_env?</div><div class='ctx'>       @proxy_from_env</div><div class='ctx'>     end</div><div class='hunk'>@@ -1105,12 +1797,13 @@ module Net   #:nodoc:</div><div class='ctx'>     def proxy_uri # :nodoc:</div><div class='ctx'>       return if @proxy_uri == false</div><div class='ctx'>       @proxy_uri ||= URI::HTTP.new(</div><div class='del'>-        "http".freeze, nil, address, port, nil, nil, nil, nil, nil</div><div class='add'>+        "http", nil, address, port, nil, nil, nil, nil, nil</div><div class='ctx'>       ).find_proxy || false</div><div class='ctx'>       @proxy_uri || nil</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # The address of the proxy server, if one is configured.</div><div class='add'>+    # Returns the address of the proxy server, if defined, +nil+ otherwise;</div><div class='add'>+    # see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='ctx'>     def proxy_address</div><div class='ctx'>       if @proxy_from_env then</div><div class='ctx'>         proxy_uri&amp;.hostname</div><div class='hunk'>@@ -1119,7 +1812,8 @@ module Net   #:nodoc:</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # The port of the proxy server, if one is configured.</div><div class='add'>+    # Returns the port number of the proxy server, if defined, +nil+ otherwise;</div><div class='add'>+    # see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='ctx'>     def proxy_port</div><div class='ctx'>       if @proxy_from_env then</div><div class='ctx'>         proxy_uri&amp;.port</div><div class='hunk'>@@ -1128,26 +1822,23 @@ module Net   #:nodoc:</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # [Bug #12921]</div><div class='del'>-    if /linux|freebsd|darwin/ =~ RUBY_PLATFORM</div><div class='del'>-      ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE = true</div><div class='del'>-    else</div><div class='del'>-      ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE = false</div><div class='del'>-    end</div><div class='del'>-</div><div class='del'>-    # The username of the proxy server, if one is configured.</div><div class='add'>+    # Returns the user name of the proxy server, if defined, +nil+ otherwise;</div><div class='add'>+    # see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='ctx'>     def proxy_user</div><div class='del'>-      if ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE &amp;&amp; @proxy_from_env</div><div class='del'>-        proxy_uri&amp;.user</div><div class='add'>+      if @proxy_from_env</div><div class='add'>+        user = proxy_uri&amp;.user</div><div class='add'>+        unescape(user) if user</div><div class='ctx'>       else</div><div class='ctx'>         @proxy_user</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # The password of the proxy server, if one is configured.</div><div class='add'>+    # Returns the password of the proxy server, if defined, +nil+ otherwise;</div><div class='add'>+    # see {Proxy Server}[rdoc-ref:Net::HTTP@Proxy+Server].</div><div class='ctx'>     def proxy_pass</div><div class='del'>-      if ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE &amp;&amp; @proxy_from_env</div><div class='del'>-        proxy_uri&amp;.password</div><div class='add'>+      if @proxy_from_env</div><div class='add'>+        pass = proxy_uri&amp;.password</div><div class='add'>+        unescape(pass) if pass</div><div class='ctx'>       else</div><div class='ctx'>         @proxy_pass</div><div class='ctx'>       end</div><div class='hunk'>@@ -1158,10 +1849,15 @@ module Net   #:nodoc:</div><div class='ctx'> </div><div class='ctx'>     private</div><div class='ctx'> </div><div class='add'>+    def unescape(value)</div><div class='add'>+      require 'cgi/util'</div><div class='add'>+      CGI.unescape(value)</div><div class='add'>+    end</div><div class='add'>+</div><div class='ctx'>     # without proxy, obsolete</div><div class='ctx'> </div><div class='ctx'>     def conn_address # :nodoc:</div><div class='del'>-      address()</div><div class='add'>+      @ipaddr || address()</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='ctx'>     def conn_port # :nodoc:</div><div class='hunk'>@@ -1186,45 +1882,38 @@ module Net   #:nodoc:</div><div class='ctx'> </div><div class='ctx'>     public</div><div class='ctx'> </div><div class='del'>-    # Retrieves data from +path+ on the connected-to host which may be an</div><div class='del'>-    # absolute path String or a URI to extract the path from.</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    get(path, initheader = nil) {|res| ... }</div><div class='add'>+    #</div><div class='add'>+    # Sends a GET request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Get object</div><div class='add'>+    # created from string +path+ and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    # With a block given, calls the block with the response body:</div><div class='ctx'>     #</div><div class='del'>-    # +initheader+ must be a Hash like { 'Accept' =&gt; '*/*', ... },</div><div class='del'>-    # and it defaults to an empty hash.</div><div class='del'>-    # If +initheader+ doesn't have the key 'accept-encoding', then</div><div class='del'>-    # a value of "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" is used,</div><div class='del'>-    # so that gzip compression is used in preference to deflate</div><div class='del'>-    # compression, which is used in preference to no compression.</div><div class='del'>-    # Ruby doesn't have libraries to support the compress (Lempel-Ziv)</div><div class='del'>-    # compression, so that is not supported.  The intent of this is</div><div class='del'>-    # to reduce bandwidth by default.   If this routine sets up</div><div class='del'>-    # compression, then it does the decompression also, removing</div><div class='del'>-    # the header as well to prevent confusion.  Otherwise</div><div class='del'>-    # it leaves the body as it found it.</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.get('/todos/1') do |res|</div><div class='add'>+    #     p res</div><div class='add'>+    #   end # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='ctx'>     #</div><div class='del'>-    # This method returns a Net::HTTPResponse object.</div><div class='add'>+    # Output:</div><div class='ctx'>     #</div><div class='del'>-    # If called with a block, yields each fragment of the</div><div class='del'>-    # entity body in turn as a string as it is read from</div><div class='del'>-    # the socket.  Note that in this case, the returned response</div><div class='del'>-    # object will *not* contain a (meaningful) body.</div><div class='add'>+    #   "{\n  \"userId\": 1,\n  \"id\": 1,\n  \"title\": \"delectus aut autem\",\n  \"completed\": false\n}"</div><div class='ctx'>     #</div><div class='del'>-    # +dest+ argument is obsolete.</div><div class='del'>-    # It still works but you must not use it.</div><div class='add'>+    # With no block given, simply returns the response object:</div><div class='ctx'>     #</div><div class='del'>-    # This method never raises an exception.</div><div class='add'>+    #   http.get('/') # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='ctx'>     #</div><div class='del'>-    #     response = http.get('/index.html')</div><div class='add'>+    # Related:</div><div class='ctx'>     #</div><div class='del'>-    #     # using block</div><div class='del'>-    #     File.open('result.txt', 'w') {|f|</div><div class='del'>-    #       http.get('/~foo/') do |str|</div><div class='del'>-    #         f.write str</div><div class='del'>-    #       end</div><div class='del'>-    #     }</div><div class='add'>+    # - Net::HTTP::Get: request class for \HTTP method GET.</div><div class='add'>+    # - Net::HTTP.get: sends GET request, returns response body.</div><div class='ctx'>     #</div><div class='ctx'>     def get(path, initheader = nil, dest = nil, &amp;block) # :yield: +body_segment+</div><div class='ctx'>       res = nil</div><div class='add'>+</div><div class='ctx'>       request(Get.new(path, initheader)) {|r|</div><div class='ctx'>         r.read_body dest, &amp;block</div><div class='ctx'>         res = r</div><div class='hunk'>@@ -1232,198 +1921,312 @@ module Net   #:nodoc:</div><div class='ctx'>       res</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Gets only the header from +path+ on the connected-to host.</div><div class='del'>-    # +header+ is a Hash like { 'Accept' =&gt; '*/*', ... }.</div><div class='add'>+    # Sends a HEAD request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='ctx'>     #</div><div class='del'>-    # This method returns a Net::HTTPResponse object.</div><div class='add'>+    # The request is based on the Net::HTTP::Head object</div><div class='add'>+    # created from string +path+ and initial headers hash +initheader+:</div><div class='ctx'>     #</div><div class='del'>-    # This method never raises an exception.</div><div class='del'>-    #</div><div class='del'>-    #     response = nil</div><div class='del'>-    #     Net::HTTP.start('some.www.server', 80) {|http|</div><div class='del'>-    #       response = http.head('/index.html')</div><div class='del'>-    #     }</div><div class='del'>-    #     p response['content-type']</div><div class='add'>+    #   res = http.head('/todos/1') # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='add'>+    #   res.body                    # =&gt; nil</div><div class='add'>+    #   res.to_hash.take(3)</div><div class='add'>+    #   # =&gt;</div><div class='add'>+    #   [["date", ["Wed, 15 Feb 2023 15:25:42 GMT"]],</div><div class='add'>+    #    ["content-type", ["application/json; charset=utf-8"]],</div><div class='add'>+    #    ["connection", ["close"]]]</div><div class='ctx'>     #</div><div class='ctx'>     def head(path, initheader = nil)</div><div class='ctx'>       request(Head.new(path, initheader))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Posts +data+ (must be a String) to +path+. +header+ must be a Hash</div><div class='del'>-    # like { 'Accept' =&gt; '*/*', ... }.</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    post(path, data, initheader = nil) {|res| ... }</div><div class='ctx'>     #</div><div class='del'>-    # This method returns a Net::HTTPResponse object.</div><div class='add'>+    # Sends a POST request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Post object</div><div class='add'>+    # created from string +path+, string +data+, and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    # With a block given, calls the block with the response body:</div><div class='add'>+    #</div><div class='add'>+    #   data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.post('/todos', data) do |res|</div><div class='add'>+    #     p res</div><div class='add'>+    #   end # =&gt; #&lt;Net::HTTPCreated 201 Created readbody=true&gt;</div><div class='ctx'>     #</div><div class='del'>-    # If called with a block, yields each fragment of the</div><div class='del'>-    # entity body in turn as a string as it is read from</div><div class='del'>-    # the socket.  Note that in this case, the returned response</div><div class='del'>-    # object will *not* contain a (meaningful) body.</div><div class='add'>+    # Output:</div><div class='ctx'>     #</div><div class='del'>-    # +dest+ argument is obsolete.</div><div class='del'>-    # It still works but you must not use it.</div><div class='add'>+    #   "{\n  \"{\\\"userId\\\": 1, \\\"id\\\": 1, \\\"title\\\": \\\"delectus aut autem\\\", \\\"completed\\\": false}\": \"\",\n  \"id\": 201\n}"</div><div class='ctx'>     #</div><div class='del'>-    # This method never raises exception.</div><div class='add'>+    # With no block given, simply returns the response object:</div><div class='ctx'>     #</div><div class='del'>-    #     response = http.post('/cgi-bin/search.rb', 'query=foo')</div><div class='add'>+    #   http.post('/todos', data) # =&gt; #&lt;Net::HTTPCreated 201 Created readbody=true&gt;</div><div class='ctx'>     #</div><div class='del'>-    #     # using block</div><div class='del'>-    #     File.open('result.txt', 'w') {|f|</div><div class='del'>-    #       http.post('/cgi-bin/search.rb', 'query=foo') do |str|</div><div class='del'>-    #         f.write str</div><div class='del'>-    #       end</div><div class='del'>-    #     }</div><div class='add'>+    # Related:</div><div class='ctx'>     #</div><div class='del'>-    # You should set Content-Type: header field for POST.</div><div class='del'>-    # If no Content-Type: field given, this method uses</div><div class='del'>-    # "application/x-www-form-urlencoded" by default.</div><div class='add'>+    # - Net::HTTP::Post: request class for \HTTP method POST.</div><div class='add'>+    # - Net::HTTP.post: sends POST request, returns response body.</div><div class='ctx'>     #</div><div class='ctx'>     def post(path, data, initheader = nil, dest = nil, &amp;block) # :yield: +body_segment+</div><div class='ctx'>       send_entity(path, data, initheader, dest, Post, &amp;block)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a PATCH request to the +path+ and gets a response,</div><div class='del'>-    # as an HTTPResponse object.</div><div class='add'>+    # :call-seq:</div><div class='add'>+    #    patch(path, data, initheader = nil) {|res| ... }</div><div class='add'>+    #</div><div class='add'>+    # Sends a PATCH request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Patch object</div><div class='add'>+    # created from string +path+, string +data+, and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    # With a block given, calls the block with the response body:</div><div class='add'>+    #</div><div class='add'>+    #   data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.patch('/todos/1', data) do |res|</div><div class='add'>+    #     p res</div><div class='add'>+    #   end # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #</div><div class='add'>+    #   "{\n  \"userId\": 1,\n  \"id\": 1,\n  \"title\": \"delectus aut autem\",\n  \"completed\": false,\n  \"{\\\"userId\\\": 1, \\\"id\\\": 1, \\\"title\\\": \\\"delectus aut autem\\\", \\\"completed\\\": false}\": \"\"\n}"</div><div class='add'>+    #</div><div class='add'>+    # With no block given, simply returns the response object:</div><div class='add'>+    #</div><div class='add'>+    #   http.patch('/todos/1', data) # =&gt; #&lt;Net::HTTPCreated 201 Created readbody=true&gt;</div><div class='add'>+    #</div><div class='ctx'>     def patch(path, data, initheader = nil, dest = nil, &amp;block) # :yield: +body_segment+</div><div class='ctx'>       send_entity(path, data, initheader, dest, Patch, &amp;block)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def put(path, data, initheader = nil)   #:nodoc:</div><div class='add'>+    # Sends a PUT request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Put object</div><div class='add'>+    # created from string +path+, string +data+, and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.put('/todos/1', data) # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='add'>+    #</div><div class='add'>+    def put(path, data, initheader = nil)</div><div class='ctx'>       request(Put.new(path, initheader), data)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a PROPPATCH request to the +path+ and gets a response,</div><div class='del'>-    # as an HTTPResponse object.</div><div class='add'>+    # Sends a PROPPATCH request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Proppatch object</div><div class='add'>+    # created from string +path+, string +body+, and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.proppatch('/todos/1', data)</div><div class='add'>+    #</div><div class='ctx'>     def proppatch(path, body, initheader = nil)</div><div class='ctx'>       request(Proppatch.new(path, initheader), body)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a LOCK request to the +path+ and gets a response,</div><div class='del'>-    # as an HTTPResponse object.</div><div class='add'>+    # Sends a LOCK request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Lock object</div><div class='add'>+    # created from string +path+, string +body+, and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.lock('/todos/1', data)</div><div class='add'>+    #</div><div class='ctx'>     def lock(path, body, initheader = nil)</div><div class='ctx'>       request(Lock.new(path, initheader), body)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a UNLOCK request to the +path+ and gets a response,</div><div class='del'>-    # as an HTTPResponse object.</div><div class='add'>+    # Sends an UNLOCK request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Unlock object</div><div class='add'>+    # created from string +path+, string +body+, and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.unlock('/todos/1', data)</div><div class='add'>+    #</div><div class='ctx'>     def unlock(path, body, initheader = nil)</div><div class='ctx'>       request(Unlock.new(path, initheader), body)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a OPTIONS request to the +path+ and gets a response,</div><div class='del'>-    # as an HTTPResponse object.</div><div class='add'>+    # Sends an Options request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Options object</div><div class='add'>+    # created from string +path+ and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.options('/')</div><div class='add'>+    #</div><div class='ctx'>     def options(path, initheader = nil)</div><div class='ctx'>       request(Options.new(path, initheader))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a PROPFIND request to the +path+ and gets a response,</div><div class='del'>-    # as an HTTPResponse object.</div><div class='add'>+    # Sends a PROPFIND request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Propfind object</div><div class='add'>+    # created from string +path+, string +body+, and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.propfind('/todos/1', data)</div><div class='add'>+    #</div><div class='ctx'>     def propfind(path, body = nil, initheader = {'Depth' =&gt; '0'})</div><div class='ctx'>       request(Propfind.new(path, initheader), body)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a DELETE request to the +path+ and gets a response,</div><div class='del'>-    # as an HTTPResponse object.</div><div class='add'>+    # Sends a DELETE request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Delete object</div><div class='add'>+    # created from string +path+ and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.delete('/todos/1')</div><div class='add'>+    #</div><div class='ctx'>     def delete(path, initheader = {'Depth' =&gt; 'Infinity'})</div><div class='ctx'>       request(Delete.new(path, initheader))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a MOVE request to the +path+ and gets a response,</div><div class='del'>-    # as an HTTPResponse object.</div><div class='add'>+    # Sends a MOVE request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Move object</div><div class='add'>+    # created from string +path+ and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.move('/todos/1')</div><div class='add'>+    #</div><div class='ctx'>     def move(path, initheader = nil)</div><div class='ctx'>       request(Move.new(path, initheader))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a COPY request to the +path+ and gets a response,</div><div class='del'>-    # as an HTTPResponse object.</div><div class='add'>+    # Sends a COPY request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Copy object</div><div class='add'>+    # created from string +path+ and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.copy('/todos/1')</div><div class='add'>+    #</div><div class='ctx'>     def copy(path, initheader = nil)</div><div class='ctx'>       request(Copy.new(path, initheader))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a MKCOL request to the +path+ and gets a response,</div><div class='del'>-    # as an HTTPResponse object.</div><div class='add'>+    # Sends a MKCOL request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Mkcol object</div><div class='add'>+    # created from string +path+, string +body+, and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   data = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}'</div><div class='add'>+    #   http.mkcol('/todos/1', data)</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #</div><div class='ctx'>     def mkcol(path, body = nil, initheader = nil)</div><div class='ctx'>       request(Mkcol.new(path, initheader), body)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a TRACE request to the +path+ and gets a response,</div><div class='del'>-    # as an HTTPResponse object.</div><div class='add'>+    # Sends a TRACE request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Trace object</div><div class='add'>+    # created from string +path+ and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.trace('/todos/1')</div><div class='add'>+    #</div><div class='ctx'>     def trace(path, initheader = nil)</div><div class='ctx'>       request(Trace.new(path, initheader))</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a GET request to the +path+.</div><div class='del'>-    # Returns the response as a Net::HTTPResponse object.</div><div class='add'>+    # Sends a GET request to the server;</div><div class='add'>+    # forms the response into a Net::HTTPResponse object.</div><div class='ctx'>     #</div><div class='del'>-    # When called with a block, passes an HTTPResponse object to the block.</div><div class='del'>-    # The body of the response will not have been read yet;</div><div class='del'>-    # the block can process it using HTTPResponse#read_body,</div><div class='del'>-    # if desired.</div><div class='add'>+    # The request is based on the Net::HTTP::Get object</div><div class='add'>+    # created from string +path+ and initial headers hash +initheader+.</div><div class='ctx'>     #</div><div class='del'>-    # Returns the response.</div><div class='add'>+    # With no block given, returns the response object:</div><div class='ctx'>     #</div><div class='del'>-    # This method never raises Net::* exceptions.</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.request_get('/todos') # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='add'>+    #</div><div class='add'>+    # With a block given, calls the block with the response object</div><div class='add'>+    # and returns the response object:</div><div class='ctx'>     #</div><div class='del'>-    #     response = http.request_get('/index.html')</div><div class='del'>-    #     # The entity body is already read in this case.</div><div class='del'>-    #     p response['content-type']</div><div class='del'>-    #     puts response.body</div><div class='add'>+    #   http.request_get('/todos') do |res|</div><div class='add'>+    #     p res</div><div class='add'>+    #   end # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='ctx'>     #</div><div class='del'>-    #     # Using a block</div><div class='del'>-    #     http.request_get('/index.html') {|response|</div><div class='del'>-    #       p response['content-type']</div><div class='del'>-    #       response.read_body do |str|   # read body now</div><div class='del'>-    #         print str</div><div class='del'>-    #       end</div><div class='del'>-    #     }</div><div class='add'>+    # Output:</div><div class='add'>+    #</div><div class='add'>+    #   #&lt;Net::HTTPOK 200 OK readbody=false&gt;</div><div class='ctx'>     #</div><div class='ctx'>     def request_get(path, initheader = nil, &amp;block) # :yield: +response+</div><div class='ctx'>       request(Get.new(path, initheader), &amp;block)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a HEAD request to the +path+ and returns the response</div><div class='del'>-    # as a Net::HTTPResponse object.</div><div class='del'>-    #</div><div class='del'>-    # Returns the response.</div><div class='add'>+    # Sends a HEAD request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='ctx'>     #</div><div class='del'>-    # This method never raises Net::* exceptions.</div><div class='add'>+    # The request is based on the Net::HTTP::Head object</div><div class='add'>+    # created from string +path+ and initial headers hash +initheader+.</div><div class='ctx'>     #</div><div class='del'>-    #     response = http.request_head('/index.html')</div><div class='del'>-    #     p response['content-type']</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.head('/todos/1') # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='ctx'>     #</div><div class='ctx'>     def request_head(path, initheader = nil, &amp;block)</div><div class='ctx'>       request(Head.new(path, initheader), &amp;block)</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends a POST request to the +path+.</div><div class='add'>+    # Sends a POST request to the server;</div><div class='add'>+    # forms the response into a Net::HTTPResponse object.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Post object</div><div class='add'>+    # created from string +path+, string +data+, and initial headers hash +initheader+.</div><div class='ctx'>     #</div><div class='del'>-    # Returns the response as a Net::HTTPResponse object.</div><div class='add'>+    # With no block given, returns the response object:</div><div class='ctx'>     #</div><div class='del'>-    # When called with a block, the block is passed an HTTPResponse</div><div class='del'>-    # object.  The body of that response will not have been read yet;</div><div class='del'>-    # the block can process it using HTTPResponse#read_body, if desired.</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.post('/todos', 'xyzzy')</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTPCreated 201 Created readbody=true&gt;</div><div class='ctx'>     #</div><div class='del'>-    # Returns the response.</div><div class='add'>+    # With a block given, calls the block with the response body</div><div class='add'>+    # and returns the response object:</div><div class='ctx'>     #</div><div class='del'>-    # This method never raises Net::* exceptions.</div><div class='add'>+    #   http.post('/todos', 'xyzzy') do |res|</div><div class='add'>+    #     p res</div><div class='add'>+    #   end # =&gt; #&lt;Net::HTTPCreated 201 Created readbody=true&gt;</div><div class='ctx'>     #</div><div class='del'>-    #     # example</div><div class='del'>-    #     response = http.request_post('/cgi-bin/nice.rb', 'datadatadata...')</div><div class='del'>-    #     p response.status</div><div class='del'>-    #     puts response.body          # body is already read in this case</div><div class='add'>+    # Output:</div><div class='ctx'>     #</div><div class='del'>-    #     # using block</div><div class='del'>-    #     http.request_post('/cgi-bin/nice.rb', 'datadatadata...') {|response|</div><div class='del'>-    #       p response.status</div><div class='del'>-    #       p response['content-type']</div><div class='del'>-    #       response.read_body do |str|   # read body now</div><div class='del'>-    #         print str</div><div class='del'>-    #       end</div><div class='del'>-    #     }</div><div class='add'>+    #   "{\n  \"xyzzy\": \"\",\n  \"id\": 201\n}"</div><div class='ctx'>     #</div><div class='ctx'>     def request_post(path, data, initheader = nil, &amp;block) # :yield: +response+</div><div class='ctx'>       request Post.new(path, initheader), data, &amp;block</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='add'>+    # Sends a PUT request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='add'>+    #</div><div class='add'>+    # The request is based on the Net::HTTP::Put object</div><div class='add'>+    # created from string +path+, string +data+, and initial headers hash +initheader+.</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.put('/todos/1', 'xyzzy')</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='add'>+    #</div><div class='ctx'>     def request_put(path, data, initheader = nil, &amp;block)   #:nodoc:</div><div class='ctx'>       request Put.new(path, initheader), data, &amp;block</div><div class='ctx'>     end</div><div class='hunk'>@@ -1433,16 +2236,25 @@ module Net   #:nodoc:</div><div class='ctx'>     alias post2  request_post   #:nodoc: obsolete</div><div class='ctx'>     alias put2   request_put    #:nodoc: obsolete</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-    # Sends an HTTP request to the HTTP server.</div><div class='del'>-    # Also sends a DATA string if +data+ is given.</div><div class='add'>+    # Sends an \HTTP request to the server;</div><div class='add'>+    # returns an instance of a subclass of Net::HTTPResponse.</div><div class='ctx'>     #</div><div class='del'>-    # Returns a Net::HTTPResponse object.</div><div class='add'>+    # The request is based on the Net::HTTPRequest object</div><div class='add'>+    # created from string +path+, string +data+, and initial headers hash +header+.</div><div class='add'>+    # That object is an instance of the</div><div class='add'>+    # {subclass of Net::HTTPRequest}[rdoc-ref:Net::HTTPRequest@Request+Subclasses],</div><div class='add'>+    # that corresponds to the given uppercase string +name+,</div><div class='add'>+    # which must be</div><div class='add'>+    # an {HTTP request method}[https://en.wikipedia.org/wiki/HTTP#Request_methods]</div><div class='add'>+    # or a {WebDAV request method}[https://en.wikipedia.org/wiki/WebDAV#Implementation].</div><div class='ctx'>     #</div><div class='del'>-    # This method never raises Net::* exceptions.</div><div class='add'>+    # Examples:</div><div class='ctx'>     #</div><div class='del'>-    #    response = http.send_request('GET', '/index.html')</div><div class='del'>-    #    puts response.body</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='add'>+    #   http.send_request('GET', '/todos/1')</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='add'>+    #   http.send_request('POST', '/todos', 'xyzzy')</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTPCreated 201 Created readbody=true&gt;</div><div class='ctx'>     #</div><div class='ctx'>     def send_request(name, path, data = nil, header = nil)</div><div class='ctx'>       has_response_body = name != 'HEAD'</div><div class='hunk'>@@ -1450,20 +2262,35 @@ module Net   #:nodoc:</div><div class='ctx'>       request r, data</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    # Sends an HTTPRequest object +req+ to the HTTP server.</div><div class='add'>+    # Sends the given request +req+ to the server;</div><div class='add'>+    # forms the response into a Net::HTTPResponse object.</div><div class='add'>+    #</div><div class='add'>+    # The given +req+ must be an instance of a</div><div class='add'>+    # {subclass of Net::HTTPRequest}[rdoc-ref:Net::HTTPRequest@Request+Subclasses].</div><div class='add'>+    # Argument +body+ should be given only if needed for the request.</div><div class='ctx'>     #</div><div class='del'>-    # If +req+ is a Net::HTTP::Post or Net::HTTP::Put request containing</div><div class='del'>-    # data, the data is also sent. Providing data for a Net::HTTP::Head or</div><div class='del'>-    # Net::HTTP::Get request results in an ArgumentError.</div><div class='add'>+    # With no block given, returns the response object:</div><div class='add'>+    #</div><div class='add'>+    #   http = Net::HTTP.new(hostname)</div><div class='ctx'>     #</div><div class='del'>-    # Returns an HTTPResponse object.</div><div class='add'>+    #   req = Net::HTTP::Get.new('/todos/1')</div><div class='add'>+    #   http.request(req)</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='ctx'>     #</div><div class='del'>-    # When called with a block, passes an HTTPResponse object to the block.</div><div class='del'>-    # The body of the response will not have been read yet;</div><div class='del'>-    # the block can process it using HTTPResponse#read_body,</div><div class='del'>-    # if desired.</div><div class='add'>+    #   req = Net::HTTP::Post.new('/todos')</div><div class='add'>+    #   http.request(req, 'xyzzy')</div><div class='add'>+    #   # =&gt; #&lt;Net::HTTPCreated 201 Created readbody=true&gt;</div><div class='ctx'>     #</div><div class='del'>-    # This method never raises Net::* exceptions.</div><div class='add'>+    # With a block given, calls the block with the response and returns the response:</div><div class='add'>+    #</div><div class='add'>+    #   req = Net::HTTP::Get.new('/todos/1')</div><div class='add'>+    #   http.request(req) do |res|</div><div class='add'>+    #     p res</div><div class='add'>+    #   end # =&gt; #&lt;Net::HTTPOK 200 OK readbody=true&gt;</div><div class='add'>+    #</div><div class='add'>+    # Output:</div><div class='add'>+    #</div><div class='add'>+    #   #&lt;Net::HTTPOK 200 OK readbody=false&gt;</div><div class='ctx'>     #</div><div class='ctx'>     def request(req, body = nil, &amp;block)  # :yield: +response+</div><div class='ctx'>       unless started?</div><div class='hunk'>@@ -1504,10 +2331,18 @@ module Net   #:nodoc:</div><div class='ctx'>       begin</div><div class='ctx'>         begin_transport req</div><div class='ctx'>         res = catch(:response) {</div><div class='del'>-          req.exec @socket, @curr_http_version, edit_path(req.path)</div><div class='add'>+          begin</div><div class='add'>+            req.exec @socket, @curr_http_version, edit_path(req.path)</div><div class='add'>+          rescue Errno::EPIPE</div><div class='add'>+            # Failure when writing full request, but we can probably</div><div class='add'>+            # still read the received response.</div><div class='add'>+          end</div><div class='add'>+</div><div class='ctx'>           begin</div><div class='ctx'>             res = HTTPResponse.read_new(@socket)</div><div class='ctx'>             res.decode_content = req.decode_content</div><div class='add'>+            res.body_encoding = @response_body_encoding</div><div class='add'>+            res.ignore_eof = @ignore_eof</div><div class='ctx'>           end while res.kind_of?(HTTPInformation)</div><div class='ctx'> </div><div class='ctx'>           res.uri = req.uri</div><div class='hunk'>@@ -1520,17 +2355,17 @@ module Net   #:nodoc:</div><div class='ctx'>       rescue Net::OpenTimeout</div><div class='ctx'>         raise</div><div class='ctx'>       rescue Net::ReadTimeout, IOError, EOFError,</div><div class='del'>-             Errno::ECONNRESET, Errno::ECONNABORTED, Errno::EPIPE,</div><div class='add'>+             Errno::ECONNRESET, Errno::ECONNABORTED, Errno::EPIPE, Errno::ETIMEDOUT,</div><div class='ctx'>              # avoid a dependency on OpenSSL</div><div class='ctx'>              defined?(OpenSSL::SSL) ? OpenSSL::SSL::SSLError : IOError,</div><div class='ctx'>              Timeout::Error =&gt; exception</div><div class='ctx'>         if count &lt; max_retries &amp;&amp; IDEMPOTENT_METHODS_.include?(req.method)</div><div class='ctx'>           count += 1</div><div class='ctx'>           @socket.close if @socket</div><div class='del'>-          D "Conn close because of error #{exception}, and retry"</div><div class='add'>+          debug "Conn close because of error #{exception}, and retry"</div><div class='ctx'>           retry</div><div class='ctx'>         end</div><div class='del'>-        D "Conn close because of error #{exception}"</div><div class='add'>+        debug "Conn close because of error #{exception}"</div><div class='ctx'>         @socket.close if @socket</div><div class='ctx'>         raise</div><div class='ctx'>       end</div><div class='hunk'>@@ -1538,7 +2373,7 @@ module Net   #:nodoc:</div><div class='ctx'>       end_transport req, res</div><div class='ctx'>       res</div><div class='ctx'>     rescue =&gt; exception</div><div class='del'>-      D "Conn close because of error #{exception}"</div><div class='add'>+      debug "Conn close because of error #{exception}"</div><div class='ctx'>       @socket.close if @socket</div><div class='ctx'>       raise exception</div><div class='ctx'>     end</div><div class='hunk'>@@ -1548,11 +2383,11 @@ module Net   #:nodoc:</div><div class='ctx'>         connect</div><div class='ctx'>       elsif @last_communicated</div><div class='ctx'>         if @last_communicated + @keep_alive_timeout &lt; Process.clock_gettime(Process::CLOCK_MONOTONIC)</div><div class='del'>-          D 'Conn close because of keep_alive_timeout'</div><div class='add'>+          debug 'Conn close because of keep_alive_timeout'</div><div class='ctx'>           @socket.close</div><div class='ctx'>           connect</div><div class='ctx'>         elsif @socket.io.to_io.wait_readable(0) &amp;&amp; @socket.eof?</div><div class='del'>-          D "Conn close because of EOF"</div><div class='add'>+          debug "Conn close because of EOF"</div><div class='ctx'>           @socket.close</div><div class='ctx'>           connect</div><div class='ctx'>         end</div><div class='hunk'>@@ -1570,15 +2405,15 @@ module Net   #:nodoc:</div><div class='ctx'>       @curr_http_version = res.http_version</div><div class='ctx'>       @last_communicated = nil</div><div class='ctx'>       if @socket.closed?</div><div class='del'>-        D 'Conn socket closed'</div><div class='add'>+        debug 'Conn socket closed'</div><div class='ctx'>       elsif not res.body and @close_on_empty_response</div><div class='del'>-        D 'Conn close'</div><div class='add'>+        debug 'Conn close'</div><div class='ctx'>         @socket.close</div><div class='ctx'>       elsif keep_alive?(req, res)</div><div class='del'>-        D 'Conn keep-alive'</div><div class='add'>+        debug 'Conn keep-alive'</div><div class='ctx'>         @last_communicated = Process.clock_gettime(Process::CLOCK_MONOTONIC)</div><div class='ctx'>       else</div><div class='del'>-        D 'Conn close'</div><div class='add'>+        debug 'Conn close'</div><div class='ctx'>         @socket.close</div><div class='ctx'>       end</div><div class='ctx'>     end</div><div class='hunk'>@@ -1633,11 +2468,14 @@ module Net   #:nodoc:</div><div class='ctx'>       default_port == port ? addr : "#{addr}:#{port}"</div><div class='ctx'>     end</div><div class='ctx'> </div><div class='del'>-    def D(msg)</div><div class='add'>+    # Adds a message to debugging output</div><div class='add'>+    def debug(msg)</div><div class='ctx'>       return unless @debug_output</div><div class='ctx'>       @debug_output &lt;&lt; msg</div><div class='ctx'>       @debug_output &lt;&lt; "\n"</div><div class='ctx'>     end</div><div class='add'>+</div><div class='add'>+    alias_method :D, :debug</div><div class='ctx'>   end</div><div class='ctx'> </div><div class='ctx'> end</div><div class='head'>diff --git a/lib/net/http/backward.rb b/lib/net/http/backward.rb